diff --git a/deps/openssl/config/archs/BSD-x86/asm/apps/progs.c b/deps/openssl/config/archs/BSD-x86/asm/apps/progs.c index 43cef00799b86e..acc204a3e6e781 100644 --- a/deps/openssl/config/archs/BSD-x86/asm/apps/progs.c +++ b/deps/openssl/config/archs/BSD-x86/asm/apps/progs.c @@ -89,6 +89,7 @@ FUNCTION functions[] = { {FT_general, "s_time", s_time_main, s_time_options, NULL, NULL}, #endif {FT_general, "sess_id", sess_id_main, sess_id_options, NULL, NULL}, + {FT_general, "skeyutl", skeyutl_main, skeyutl_options, NULL, NULL}, {FT_general, "smime", smime_main, smime_options, NULL, NULL}, {FT_general, "speed", speed_main, speed_options, NULL, NULL}, {FT_general, "spkac", spkac_main, spkac_options, NULL, NULL}, @@ -225,9 +226,15 @@ FUNCTION functions[] = { {FT_cipher, "camellia-256-ecb", enc_main, enc_options, NULL}, #endif {FT_cipher, "base64", enc_main, enc_options, NULL}, -#ifdef ZLIB +#ifndef OPENSSL_NO_ZLIB {FT_cipher, "zlib", enc_main, enc_options, NULL}, #endif +#ifndef OPENSSL_NO_BROTLI + {FT_cipher, "brotli", enc_main, enc_options, NULL}, +#endif +#ifndef OPENSSL_NO_ZSTD + {FT_cipher, "zstd", enc_main, enc_options, NULL}, +#endif #ifndef OPENSSL_NO_DES {FT_cipher, "des", enc_main, enc_options, NULL}, #endif diff --git a/deps/openssl/config/archs/BSD-x86/asm/configdata.pm b/deps/openssl/config/archs/BSD-x86/asm/configdata.pm index 2d6abc8184cdff..8b1d446c084f87 100644 --- a/deps/openssl/config/archs/BSD-x86/asm/configdata.pm +++ b/deps/openssl/config/archs/BSD-x86/asm/configdata.pm @@ -18,6 +18,7 @@ our %config = ( "ARFLAGS" => [ "qc" ], + "ASFLAGS" => [], "CC" => "gcc", "CFLAGS" => [ "-Wall -O3 -fomit-frame-pointer" @@ -27,14 +28,16 @@ our %config = ( "CPPINCLUDES" => [], "CXXFLAGS" => [], "FIPSKEY" => "f4556650ac31d35461610bac4ed81b1a181b2d8a43ea2854cbae22ca74560813", + "FIPS_VENDOR" => "OpenSSL FIPS Provider", "HASHBANGPERL" => "/usr/bin/env perl", "LDFLAGS" => [], "LDLIBS" => [], + "OBJCOPY" => "objcopy", "PERL" => "/usr/bin/perl", "RANLIB" => "ranlib", "RC" => "windres", "RCFLAGS" => [], - "api" => "30000", + "api" => "30500", "b32" => "1", "b64" => "0", "b64l" => "0", @@ -56,11 +59,13 @@ our %config = ( "doc/build.info", "test/build.info", "engines/build.info", + "exporters/build.info", "crypto/objects/build.info", "crypto/buffer/build.info", "crypto/bio/build.info", "crypto/stack/build.info", "crypto/lhash/build.info", + "crypto/hashtable/build.info", "crypto/rand/build.info", "crypto/evp/build.info", "crypto/asn1/build.info", @@ -78,6 +83,7 @@ our %config = ( "crypto/md5/build.info", "crypto/sha/build.info", "crypto/mdc2/build.info", + "crypto/ml_kem/build.info", "crypto/hmac/build.info", "crypto/ripemd/build.info", "crypto/whrlpool/build.info", @@ -119,11 +125,19 @@ our %config = ( "crypto/cmp/build.info", "crypto/encode_decode/build.info", "crypto/ffc/build.info", + "crypto/hpke/build.info", + "crypto/thread/build.info", + "crypto/ml_dsa/build.info", + "crypto/slh_dsa/build.info", + "ssl/record/build.info", + "ssl/rio/build.info", + "ssl/quic/build.info", "apps/lib/build.info", "providers/common/build.info", "providers/implementations/build.info", "providers/fips/build.info", "doc/man1/build.info", + "ssl/record/methods/build.info", "providers/common/der/build.info", "providers/implementations/digests/build.info", "providers/implementations/ciphers/build.info", @@ -137,6 +151,7 @@ our %config = ( "providers/implementations/encode_decode/build.info", "providers/implementations/storemgmt/build.info", "providers/implementations/kem/build.info", + "providers/implementations/skeymgmt/build.info", "providers/implementations/rands/seeding/build.info" ], "build_metadata" => "", @@ -156,7 +171,7 @@ our %config = ( ], "dynamic_engines" => "0", "ex_libs" => [], - "full_version" => "3.0.17", + "full_version" => "3.5.1", "includes" => [], "lflags" => [], "lib_defines" => [ @@ -165,36 +180,51 @@ our %config = ( "libdir" => "", "major" => "3", "makedep_scheme" => "gcc", - "minor" => "0", + "minor" => "5", "openssl_api_defines" => [ - "OPENSSL_CONFIGURED_API=30000" + "OPENSSL_CONFIGURED_API=30500" ], "openssl_feature_defines" => [ "OPENSSL_RAND_SEED_OS", "OPENSSL_THREADS", "OPENSSL_NO_AFALGENG", "OPENSSL_NO_ASAN", + "OPENSSL_NO_BROTLI", + "OPENSSL_NO_BROTLI_DYNAMIC", "OPENSSL_NO_COMP", "OPENSSL_NO_CRYPTO_MDEBUG", "OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE", + "OPENSSL_NO_DEMOS", "OPENSSL_NO_EC_NISTP_64_GCC_128", "OPENSSL_NO_EGD", "OPENSSL_NO_EXTERNAL_TESTS", + "OPENSSL_NO_FIPS_JITTER", "OPENSSL_NO_FUZZ_AFL", "OPENSSL_NO_FUZZ_LIBFUZZER", + "OPENSSL_NO_H3DEMO", + "OPENSSL_NO_HQINTEROP", + "OPENSSL_NO_JITTER", "OPENSSL_NO_KTLS", "OPENSSL_NO_LOADERENG", "OPENSSL_NO_MD2", "OPENSSL_NO_MSAN", + "OPENSSL_NO_PIE", "OPENSSL_NO_RC5", "OPENSSL_NO_SCTP", "OPENSSL_NO_SSL3", "OPENSSL_NO_SSL3_METHOD", + "OPENSSL_NO_SSLKEYLOG", + "OPENSSL_NO_TFO", "OPENSSL_NO_TRACE", "OPENSSL_NO_UBSAN", "OPENSSL_NO_UNIT_TEST", "OPENSSL_NO_UPLINK", "OPENSSL_NO_WEAK_SSL_CIPHERS", + "OPENSSL_NO_WINSTORE", + "OPENSSL_NO_ZLIB", + "OPENSSL_NO_ZLIB_DYNAMIC", + "OPENSSL_NO_ZSTD", + "OPENSSL_NO_ZSTD_DYNAMIC", "OPENSSL_NO_DYNAMIC_ENGINE" ], "openssl_other_defines" => [ @@ -202,11 +232,11 @@ our %config = ( ], "openssl_sys_defines" => [], "openssldir" => "", - "options" => "enable-ssl-trace enable-fips no-afalgeng no-asan no-buildtest-c++ no-comp no-crypto-mdebug no-crypto-mdebug-backtrace no-dynamic-engine no-ec_nistp_64_gcc_128 no-egd no-external-tests no-fuzz-afl no-fuzz-libfuzzer no-ktls no-loadereng no-md2 no-msan no-rc5 no-sctp no-shared no-ssl3 no-ssl3-method no-trace no-ubsan no-unit-test no-uplink no-weak-ssl-ciphers no-zlib no-zlib-dynamic", - "patch" => "17", + "options" => "enable-ssl-trace enable-fips no-afalgeng no-asan no-brotli no-brotli-dynamic no-buildtest-c++ no-comp no-crypto-mdebug no-crypto-mdebug-backtrace no-demos no-dynamic-engine no-ec_nistp_64_gcc_128 no-egd no-external-tests no-fips-jitter no-fuzz-afl no-fuzz-libfuzzer no-h3demo no-hqinterop no-jitter no-ktls no-loadereng no-md2 no-msan no-pie no-rc5 no-sctp no-shared no-ssl3 no-ssl3-method no-sslkeylog no-tfo no-trace no-ubsan no-unit-test no-uplink no-weak-ssl-ciphers no-winstore no-zlib no-zlib-dynamic no-zstd no-zstd-dynamic", + "patch" => "1", "perl_archname" => "x86_64-linux-gnu-thread-multi", "perl_cmd" => "/usr/bin/perl", - "perl_version" => "5.38.2", + "perl_version" => "5.34.0", "perlargv" => [ "no-comp", "no-shared", @@ -236,6 +266,7 @@ our %config = ( "LDLIBS" => undef, "MT" => undef, "MTFLAGS" => undef, + "OBJCOPY" => undef, "OPENSSL_LOCAL_CONFIG_DIR" => undef, "PERL" => undef, "RANLIB" => undef, @@ -259,7 +290,7 @@ our %config = ( "shlib_version" => "3", "sourcedir" => ".", "target" => "BSD-x86", - "version" => "3.0.17" + "version" => "3.5.1" ); our %target = ( "AR" => "ar", @@ -267,6 +298,7 @@ our %target = ( "CC" => "cc", "CFLAGS" => "-Wall -O3 -fomit-frame-pointer", "HASHBANGPERL" => "/usr/bin/env perl", + "OBJCOPY" => "objcopy", "RANLIB" => "ranlib", "RC" => "windres", "_conf_fname_int" => [ @@ -277,6 +309,8 @@ our %target = ( "Configurations/shared-info.pl" ], "asm_arch" => "x86", + "bin_cflags" => "", + "bin_lflags" => "", "bn_ops" => "BN_LLONG", "build_file" => "Makefile", "build_scheme" => [ @@ -320,6 +354,8 @@ our %target = ( our @disablables = ( "acvp-tests", "afalgeng", + "apps", + "argon2", "aria", "asan", "asm", @@ -330,11 +366,14 @@ our @disablables = ( "autoload-config", "bf", "blake2", + "brotli", + "brotli-dynamic", "buildtest-c++", "bulk", "cached-fetch", "camellia", "capieng", + "winstore", "cast", "chacha", "cmac", @@ -343,11 +382,16 @@ our @disablables = ( "comp", "crypto-mdebug", "ct", + "default-thread-pool", + "demos", + "h3demo", + "hqinterop", "deprecated", "des", "devcryptoeng", "dgram", "dh", + "docs", "dsa", "dso", "dtls", @@ -357,6 +401,7 @@ our @disablables = ( "ec_nistp_64_gcc_128", "ecdh", "ecdsa", + "ecx", "egd", "engine", "err", @@ -364,10 +409,15 @@ our @disablables = ( "filenames", "fips", "fips-securitychecks", + "fips-post", + "fips-jitter", "fuzz-afl", "fuzz-libfuzzer", "gost", + "http", "idea", + "integrity-only-ciphers", + "jitter", "ktls", "legacy", "loadereng", @@ -375,6 +425,8 @@ our @disablables = ( "md2", "md4", "mdc2", + "ml-dsa", + "ml-kem", "module", "msan", "multiblock", @@ -383,10 +435,13 @@ our @disablables = ( "ocsp", "padlockeng", "pic", + "pie", "pinshared", "poly1305", "posix-io", "psk", + "quic", + "unstable-qlog", "rc2", "rc4", "rc5", @@ -400,7 +455,9 @@ our @disablables = ( "shared", "siphash", "siv", + "slh-dsa", "sm2", + "sm2-precomp", "sm3", "sm4", "sock", @@ -411,9 +468,13 @@ our @disablables = ( "ssl-trace", "static-engine", "stdio", + "sslkeylog", "tests", + "tfo", + "thread-pool", "threads", "tls", + "tls-deprecated-ec", "trace", "ts", "ubsan", @@ -424,6 +485,8 @@ our @disablables = ( "whirlpool", "zlib", "zlib-dynamic", + "zstd", + "zstd-dynamic", "ssl3", "ssl3-method", "tls1", @@ -444,32 +507,45 @@ our @disablables_int = ( our %disabled = ( "afalgeng" => "option", "asan" => "default", + "brotli" => "default", + "brotli-dynamic" => "default", "buildtest-c++" => "default", "comp" => "option", "crypto-mdebug" => "default", "crypto-mdebug-backtrace" => "default", + "demos" => "default", "dynamic-engine" => "cascade", "ec_nistp_64_gcc_128" => "default", "egd" => "default", "external-tests" => "default", + "fips-jitter" => "default", "fuzz-afl" => "default", "fuzz-libfuzzer" => "default", + "h3demo" => "default", + "hqinterop" => "default", + "jitter" => "default", "ktls" => "default", "loadereng" => "cascade", "md2" => "default", "msan" => "default", + "pie" => "default", "rc5" => "default", "sctp" => "default", "shared" => "option", "ssl3" => "default", "ssl3-method" => "default", + "sslkeylog" => "default", + "tfo" => "default", "trace" => "default", "ubsan" => "default", "unit-test" => "default", "uplink" => "no uplink_arch", "weak-ssl-ciphers" => "default", + "winstore" => "not-windows", "zlib" => "default", - "zlib-dynamic" => "default" + "zlib-dynamic" => "default", + "zstd" => "default", + "zstd-dynamic" => "default" ); our %withargs = (); our %unified_info = ( @@ -695,6 +771,11 @@ our %unified_info = ( "pod" => "1" } }, + "doc/man1/openssl-skeyutl.pod" => { + "doc/man1/openssl-skeyutl.pod.in" => { + "pod" => "1" + } + }, "doc/man1/openssl-smime.pod" => { "doc/man1/openssl-smime.pod.in" => { "pod" => "1" @@ -752,6 +833,21 @@ our %unified_info = ( } }, "generate" => { + "exporters/OpenSSLConfig.cmake" => { + "exporter" => "cmake" + }, + "exporters/OpenSSLConfigVersion.cmake" => { + "exporter" => "cmake" + }, + "exporters/libcrypto.pc" => { + "exporter" => "pkg-config" + }, + "exporters/libssl.pc" => { + "exporter" => "pkg-config" + }, + "exporters/openssl.pc" => { + "exporter" => "pkg-config" + }, "include/openssl/configuration.h" => { "skip" => "1" } @@ -772,6 +868,9 @@ our %unified_info = ( "providers/liblegacy.a" => { "noinst" => "1" }, + "providers/libtemplate.a" => { + "noinst" => "1" + }, "test/libtestutil.a" => { "has_main" => "1", "noinst" => "1" @@ -789,6 +888,9 @@ our %unified_info = ( } }, "programs" => { + "fuzz/acert-test" => { + "noinst" => "1" + }, "fuzz/asn1-test" => { "noinst" => "1" }, @@ -819,9 +921,60 @@ our %unified_info = ( "fuzz/ct-test" => { "noinst" => "1" }, + "fuzz/decoder-test" => { + "noinst" => "1" + }, + "fuzz/dtlsclient-test" => { + "noinst" => "1" + }, + "fuzz/dtlsserver-test" => { + "noinst" => "1" + }, + "fuzz/hashtable-test" => { + "noinst" => "1" + }, + "fuzz/ml-dsa-test" => { + "noinst" => "1" + }, + "fuzz/ml-kem-test" => { + "noinst" => "1" + }, + "fuzz/pem-test" => { + "noinst" => "1" + }, + "fuzz/provider-test" => { + "noinst" => "1" + }, + "fuzz/punycode-test" => { + "noinst" => "1" + }, + "fuzz/quic-client-test" => { + "noinst" => "1" + }, + "fuzz/quic-lcidm-test" => { + "noinst" => "1" + }, + "fuzz/quic-rcidm-test" => { + "noinst" => "1" + }, + "fuzz/quic-server-test" => { + "noinst" => "1" + }, + "fuzz/quic-srtm-test" => { + "noinst" => "1" + }, "fuzz/server-test" => { "noinst" => "1" }, + "fuzz/slh-dsa-test" => { + "noinst" => "1" + }, + "fuzz/smime-test" => { + "noinst" => "1" + }, + "fuzz/v3name-test" => { + "noinst" => "1" + }, "fuzz/x509-test" => { "noinst" => "1" }, @@ -873,18 +1026,30 @@ our %unified_info = ( "test/bftest" => { "noinst" => "1" }, + "test/bio_addr_test" => { + "noinst" => "1" + }, + "test/bio_base64_test" => { + "noinst" => "1" + }, "test/bio_callback_test" => { "noinst" => "1" }, "test/bio_core_test" => { "noinst" => "1" }, + "test/bio_dgram_test" => { + "noinst" => "1" + }, "test/bio_enc_test" => { "noinst" => "1" }, "test/bio_memleak_test" => { "noinst" => "1" }, + "test/bio_meth_test" => { + "noinst" => "1" + }, "test/bio_prefix_text" => { "noinst" => "1" }, @@ -894,6 +1059,9 @@ our %unified_info = ( "test/bio_readbuffer_test" => { "noinst" => "1" }, + "test/bio_tfo_test" => { + "noinst" => "1" + }, "test/bioprinttest" => { "noinst" => "1" }, @@ -903,6 +1071,9 @@ our %unified_info = ( "test/bntest" => { "noinst" => "1" }, + "test/build_wincrypt_test" => { + "noinst" => "1" + }, "test/buildtest_c_aes" => { "noinst" => "1" }, @@ -918,6 +1089,9 @@ our %unified_info = ( "test/buildtest_c_buffer" => { "noinst" => "1" }, + "test/buildtest_c_byteorder" => { + "noinst" => "1" + }, "test/buildtest_c_camellia" => { "noinst" => "1" }, @@ -942,9 +1116,6 @@ our %unified_info = ( "test/buildtest_c_core_dispatch" => { "noinst" => "1" }, - "test/buildtest_c_core_names" => { - "noinst" => "1" - }, "test/buildtest_c_core_object" => { "noinst" => "1" }, @@ -969,6 +1140,9 @@ our %unified_info = ( "test/buildtest_c_e_os2" => { "noinst" => "1" }, + "test/buildtest_c_e_ostime" => { + "noinst" => "1" + }, "test/buildtest_c_ebcdic" => { "noinst" => "1" }, @@ -996,12 +1170,18 @@ our %unified_info = ( "test/buildtest_c_hmac" => { "noinst" => "1" }, + "test/buildtest_c_hpke" => { + "noinst" => "1" + }, "test/buildtest_c_http" => { "noinst" => "1" }, "test/buildtest_c_idea" => { "noinst" => "1" }, + "test/buildtest_c_indicator" => { + "noinst" => "1" + }, "test/buildtest_c_kdf" => { "noinst" => "1" }, @@ -1017,6 +1197,9 @@ our %unified_info = ( "test/buildtest_c_mdc2" => { "noinst" => "1" }, + "test/buildtest_c_ml_kem" => { + "noinst" => "1" + }, "test/buildtest_c_modes" => { "noinst" => "1" }, @@ -1047,6 +1230,9 @@ our %unified_info = ( "test/buildtest_c_provider" => { "noinst" => "1" }, + "test/buildtest_c_quic" => { + "noinst" => "1" + }, "test/buildtest_c_rand" => { "noinst" => "1" }, @@ -1089,6 +1275,9 @@ our %unified_info = ( "test/buildtest_c_symhacks" => { "noinst" => "1" }, + "test/buildtest_c_thread" => { + "noinst" => "1" + }, "test/buildtest_c_tls1" => { "noinst" => "1" }, @@ -1104,6 +1293,12 @@ our %unified_info = ( "test/buildtest_c_whrlpool" => { "noinst" => "1" }, + "test/byteorder_test" => { + "noinst" => "1" + }, + "test/ca_internals_test" => { + "noinst" => "1" + }, "test/casttest" => { "noinst" => "1" }, @@ -1188,6 +1383,9 @@ our %unified_info = ( "test/danetest" => { "noinst" => "1" }, + "test/decoder_propq_test" => { + "noinst" => "1" + }, "test/defltfips_test" => { "noinst" => "1" }, @@ -1260,15 +1458,24 @@ our %unified_info = ( "test/evp_pkey_ctx_new_from_name" => { "noinst" => "1" }, + "test/evp_pkey_dhkem_test" => { + "noinst" => "1" + }, "test/evp_pkey_dparams_test" => { "noinst" => "1" }, "test/evp_pkey_provided_test" => { "noinst" => "1" }, + "test/evp_skey_test" => { + "noinst" => "1" + }, "test/evp_test" => { "noinst" => "1" }, + "test/evp_xof_test" => { + "noinst" => "1" + }, "test/exdatatest" => { "noinst" => "1" }, @@ -1296,6 +1503,9 @@ our %unified_info = ( "test/hmactest" => { "noinst" => "1" }, + "test/hpke_test" => { + "noinst" => "1" + }, "test/http_test" => { "noinst" => "1" }, @@ -1305,12 +1515,18 @@ our %unified_info = ( "test/igetest" => { "noinst" => "1" }, + "test/json_test" => { + "noinst" => "1" + }, "test/keymgmt_internal_test" => { "noinst" => "1" }, "test/lhash_test" => { "noinst" => "1" }, + "test/list_test" => { + "noinst" => "1" + }, "test/localetest" => { "noinst" => "1" }, @@ -1320,9 +1536,21 @@ our %unified_info = ( "test/mdc2test" => { "noinst" => "1" }, + "test/membio_test" => { + "noinst" => "1" + }, "test/memleaktest" => { "noinst" => "1" }, + "test/ml_dsa_test" => { + "noinst" => "1" + }, + "test/ml_kem_evp_extra_test" => { + "noinst" => "1" + }, + "test/ml_kem_internal_test" => { + "noinst" => "1" + }, "test/modes_internal_test" => { "noinst" => "1" }, @@ -1341,6 +1569,9 @@ our %unified_info = ( "test/packettest" => { "noinst" => "1" }, + "test/pairwise_fail_test" => { + "noinst" => "1" + }, "test/param_build_test" => { "noinst" => "1" }, @@ -1365,6 +1596,9 @@ our %unified_info = ( "test/pemtest" => { "noinst" => "1" }, + "test/pkcs12_api_test" => { + "noinst" => "1" + }, "test/pkcs12_format_test" => { "noinst" => "1" }, @@ -1380,6 +1614,9 @@ our %unified_info = ( "test/poly1305_internal_test" => { "noinst" => "1" }, + "test/priority_queue_test" => { + "noinst" => "1" + }, "test/property_test" => { "noinst" => "1" }, @@ -1389,6 +1626,9 @@ our %unified_info = ( "test/provfetchtest" => { "noinst" => "1" }, + "test/provider_default_search_path_test" => { + "noinst" => "1" + }, "test/provider_fallback_test" => { "noinst" => "1" }, @@ -1407,6 +1647,72 @@ our %unified_info = ( "test/punycode_test" => { "noinst" => "1" }, + "test/quic_ackm_test" => { + "noinst" => "1" + }, + "test/quic_cc_test" => { + "noinst" => "1" + }, + "test/quic_cfq_test" => { + "noinst" => "1" + }, + "test/quic_client_test" => { + "noinst" => "1" + }, + "test/quic_fc_test" => { + "noinst" => "1" + }, + "test/quic_fifd_test" => { + "noinst" => "1" + }, + "test/quic_lcidm_test" => { + "noinst" => "1" + }, + "test/quic_multistream_test" => { + "noinst" => "1" + }, + "test/quic_newcid_test" => { + "noinst" => "1" + }, + "test/quic_qlog_test" => { + "noinst" => "1" + }, + "test/quic_radix_test" => { + "noinst" => "1" + }, + "test/quic_rcidm_test" => { + "noinst" => "1" + }, + "test/quic_record_test" => { + "noinst" => "1" + }, + "test/quic_srt_gen_test" => { + "noinst" => "1" + }, + "test/quic_srtm_test" => { + "noinst" => "1" + }, + "test/quic_stream_test" => { + "noinst" => "1" + }, + "test/quic_tserver_test" => { + "noinst" => "1" + }, + "test/quic_txp_test" => { + "noinst" => "1" + }, + "test/quic_txpim_test" => { + "noinst" => "1" + }, + "test/quic_wire_test" => { + "noinst" => "1" + }, + "test/quicapitest" => { + "noinst" => "1" + }, + "test/quicfaultstest" => { + "noinst" => "1" + }, "test/rand_status_test" => { "noinst" => "1" }, @@ -1422,12 +1728,15 @@ our %unified_info = ( "test/rc5test" => { "noinst" => "1" }, - "test/rdrand_sanitytest" => { + "test/rdcpu_sanitytest" => { "noinst" => "1" }, "test/recordlentest" => { "noinst" => "1" }, + "test/rpktest" => { + "noinst" => "1" + }, "test/rsa_complex" => { "noinst" => "1" }, @@ -1440,6 +1749,12 @@ our %unified_info = ( "test/rsa_test" => { "noinst" => "1" }, + "test/rsa_x931_test" => { + "noinst" => "1" + }, + "test/safe_math_test" => { + "noinst" => "1" + }, "test/sanitytest" => { "noinst" => "1" }, @@ -1455,6 +1770,9 @@ our %unified_info = ( "test/siphash_internal_test" => { "noinst" => "1" }, + "test/slh_dsa_test" => { + "noinst" => "1" + }, "test/sm2_internal_test" => { "noinst" => "1" }, @@ -1476,6 +1794,9 @@ our %unified_info = ( "test/ssl_ctx_test" => { "noinst" => "1" }, + "test/ssl_handshake_rtt_test" => { + "noinst" => "1" + }, "test/ssl_old_test" => { "noinst" => "1" }, @@ -1497,12 +1818,18 @@ our %unified_info = ( "test/stack_test" => { "noinst" => "1" }, + "test/strtoultest" => { + "noinst" => "1" + }, "test/sysdefaulttest" => { "noinst" => "1" }, "test/test_test" => { "noinst" => "1" }, + "test/threadpool_test" => { + "noinst" => "1" + }, "test/threadstest" => { "noinst" => "1" }, @@ -1512,12 +1839,18 @@ our %unified_info = ( "test/time_offset_test" => { "noinst" => "1" }, + "test/time_test" => { + "noinst" => "1" + }, "test/tls13ccstest" => { "noinst" => "1" }, "test/tls13encryptiontest" => { "noinst" => "1" }, + "test/tls13groupselection_test" => { + "noinst" => "1" + }, "test/trace_api_test" => { "noinst" => "1" }, @@ -1545,6 +1878,9 @@ our %unified_info = ( "test/wpackettest" => { "noinst" => "1" }, + "test/x509_acert_test" => { + "noinst" => "1" + }, "test/x509_check_cert_pkey_test" => { "noinst" => "1" }, @@ -1554,6 +1890,15 @@ our %unified_info = ( "test/x509_internal_test" => { "noinst" => "1" }, + "test/x509_load_cert_file_test" => { + "noinst" => "1" + }, + "test/x509_req_test" => { + "noinst" => "1" + }, + "test/x509_test" => { + "noinst" => "1" + }, "test/x509_time_test" => { "noinst" => "1" }, @@ -1656,6 +2001,9 @@ our %unified_info = ( "MD5_ASM", "RC4_ASM" ], + "test/endecode_test" => [ + "STATIC_LEGACY" + ], "test/evp_extra_test" => [ "STATIC_LEGACY" ], @@ -1668,14 +2016,21 @@ our %unified_info = ( }, "depends" => { "" => [ + "OpenSSLConfigVersion.cmake", + "crypto/params_idx.c", + "exporters/OpenSSLConfigVersion.cmake", + "exporters/openssl.pc", "include/crypto/bn_conf.h", "include/crypto/dso_conf.h", + "include/internal/param_names.h", "include/openssl/asn1.h", "include/openssl/asn1t.h", "include/openssl/bio.h", "include/openssl/cmp.h", "include/openssl/cms.h", + "include/openssl/comp.h", "include/openssl/conf.h", + "include/openssl/core_names.h", "include/openssl/crmf.h", "include/openssl/crypto.h", "include/openssl/ct.h", @@ -1692,10 +2047,22 @@ our %unified_info = ( "include/openssl/ssl.h", "include/openssl/ui.h", "include/openssl/x509.h", + "include/openssl/x509_acert.h", "include/openssl/x509_vfy.h", "include/openssl/x509v3.h", + "openssl.pc", "test/provider_internal_test.cnf" ], + "OpenSSLConfig.cmake" => [ + "builddata.pm" + ], + "OpenSSLConfigVersion.cmake" => [ + "OpenSSLConfig.cmake", + "builddata.pm" + ], + "apps/ca_internals_test-bin-ca.o" => [ + "apps/progs.h" + ], "apps/lib/cmp_client_test-bin-cmp_mock_srv.o" => [ "apps/progs.h" ], @@ -1841,6 +2208,9 @@ our %unified_info = ( "apps/openssl-bin-sess_id.o" => [ "apps/progs.h" ], + "apps/openssl-bin-skeyutl.o" => [ + "apps/progs.h" + ], "apps/openssl-bin-smime.o" => [ "apps/progs.h" ], @@ -1929,6 +2299,9 @@ our %unified_info = ( "crypto/libcrypto-lib-info.o" => [ "crypto/buildinf.h" ], + "crypto/params_idx.c" => [ + "util/perl|OpenSSL/paramnames.pm" + ], "crypto/rc4/rc4-586.S" => [ "crypto/perlasm/x86asm.pl" ], @@ -2094,6 +2467,9 @@ our %unified_info = ( "doc/html/man1/openssl-sess_id.html" => [ "doc/man1/openssl-sess_id.pod" ], + "doc/html/man1/openssl-skeyutl.html" => [ + "doc/man1/openssl-skeyutl.pod" + ], "doc/html/man1/openssl-smime.html" => [ "doc/man1/openssl-smime.pod" ], @@ -2235,6 +2611,9 @@ our %unified_info = ( "doc/html/man3/BIO_get_ex_new_index.html" => [ "doc/man3/BIO_get_ex_new_index.pod" ], + "doc/html/man3/BIO_get_rpoll_descriptor.html" => [ + "doc/man3/BIO_get_rpoll_descriptor.pod" + ], "doc/html/man3/BIO_meth_new.html" => [ "doc/man3/BIO_meth_new.pod" ], @@ -2271,6 +2650,9 @@ our %unified_info = ( "doc/html/man3/BIO_s_datagram.html" => [ "doc/man3/BIO_s_datagram.pod" ], + "doc/html/man3/BIO_s_dgram_pair.html" => [ + "doc/man3/BIO_s_dgram_pair.pod" + ], "doc/html/man3/BIO_s_fd.html" => [ "doc/man3/BIO_s_fd.pod" ], @@ -2286,6 +2668,9 @@ our %unified_info = ( "doc/html/man3/BIO_s_socket.html" => [ "doc/man3/BIO_s_socket.pod" ], + "doc/html/man3/BIO_sendmmsg.html" => [ + "doc/man3/BIO_sendmmsg.pod" + ], "doc/html/man3/BIO_set_callback.html" => [ "doc/man3/BIO_set_callback.pod" ], @@ -2358,6 +2743,9 @@ our %unified_info = ( "doc/html/man3/BUF_MEM_new.html" => [ "doc/man3/BUF_MEM_new.pod" ], + "doc/html/man3/CMAC_CTX.html" => [ + "doc/man3/CMAC_CTX.pod" + ], "doc/html/man3/CMS_EncryptedData_decrypt.html" => [ "doc/man3/CMS_EncryptedData_decrypt.pod" ], @@ -2424,6 +2812,9 @@ our %unified_info = ( "doc/html/man3/CMS_verify_receipt.html" => [ "doc/man3/CMS_verify_receipt.pod" ], + "doc/html/man3/COMP_CTX_new.html" => [ + "doc/man3/COMP_CTX_new.pod" + ], "doc/html/man3/CONF_modules_free.html" => [ "doc/man3/CONF_modules_free.pod" ], @@ -2523,6 +2914,12 @@ our %unified_info = ( "doc/html/man3/DTLS_set_timer_cb.html" => [ "doc/man3/DTLS_set_timer_cb.pod" ], + "doc/html/man3/DTLSv1_get_timeout.html" => [ + "doc/man3/DTLSv1_get_timeout.pod" + ], + "doc/html/man3/DTLSv1_handle_timeout.html" => [ + "doc/man3/DTLSv1_handle_timeout.pod" + ], "doc/html/man3/DTLSv1_listen.html" => [ "doc/man3/DTLSv1_listen.pod" ], @@ -2661,6 +3058,9 @@ our %unified_info = ( "doc/html/man3/EVP_PKEY_CTX_get0_pkey.html" => [ "doc/man3/EVP_PKEY_CTX_get0_pkey.pod" ], + "doc/html/man3/EVP_PKEY_CTX_get_algor.html" => [ + "doc/man3/EVP_PKEY_CTX_get_algor.pod" + ], "doc/html/man3/EVP_PKEY_CTX_new.html" => [ "doc/man3/EVP_PKEY_CTX_new.pod" ], @@ -2778,6 +3178,12 @@ our %unified_info = ( "doc/html/man3/EVP_SIGNATURE.html" => [ "doc/man3/EVP_SIGNATURE.pod" ], + "doc/html/man3/EVP_SKEY.html" => [ + "doc/man3/EVP_SKEY.pod" + ], + "doc/html/man3/EVP_SKEYMGMT.html" => [ + "doc/man3/EVP_SKEYMGMT.pod" + ], "doc/html/man3/EVP_SealInit.html" => [ "doc/man3/EVP_SealInit.pod" ], @@ -2865,6 +3271,9 @@ our %unified_info = ( "doc/html/man3/EVP_whirlpool.html" => [ "doc/man3/EVP_whirlpool.pod" ], + "doc/html/man3/GENERAL_NAME.html" => [ + "doc/man3/GENERAL_NAME.pod" + ], "doc/html/man3/HMAC.html" => [ "doc/man3/HMAC.pod" ], @@ -2937,9 +3346,15 @@ our %unified_info = ( "doc/html/man3/OPENSSL_load_builtin_modules.html" => [ "doc/man3/OPENSSL_load_builtin_modules.pod" ], + "doc/html/man3/OPENSSL_load_u16_le.html" => [ + "doc/man3/OPENSSL_load_u16_le.pod" + ], "doc/html/man3/OPENSSL_malloc.html" => [ "doc/man3/OPENSSL_malloc.pod" ], + "doc/html/man3/OPENSSL_riscvcap.html" => [ + "doc/man3/OPENSSL_riscvcap.pod" + ], "doc/html/man3/OPENSSL_s390xcap.html" => [ "doc/man3/OPENSSL_s390xcap.pod" ], @@ -2955,12 +3370,18 @@ our %unified_info = ( "doc/html/man3/OSSL_CALLBACK.html" => [ "doc/man3/OSSL_CALLBACK.pod" ], + "doc/html/man3/OSSL_CMP_ATAV_set0.html" => [ + "doc/man3/OSSL_CMP_ATAV_set0.pod" + ], "doc/html/man3/OSSL_CMP_CTX_new.html" => [ "doc/man3/OSSL_CMP_CTX_new.pod" ], "doc/html/man3/OSSL_CMP_HDR_get0_transactionID.html" => [ "doc/man3/OSSL_CMP_HDR_get0_transactionID.pod" ], + "doc/html/man3/OSSL_CMP_ITAV_new_caCerts.html" => [ + "doc/man3/OSSL_CMP_ITAV_new_caCerts.pod" + ], "doc/html/man3/OSSL_CMP_ITAV_set0.html" => [ "doc/man3/OSSL_CMP_ITAV_set0.pod" ], @@ -3030,9 +3451,18 @@ our %unified_info = ( "doc/html/man3/OSSL_ENCODER_to_bio.html" => [ "doc/man3/OSSL_ENCODER_to_bio.pod" ], + "doc/html/man3/OSSL_ERR_STATE_save.html" => [ + "doc/man3/OSSL_ERR_STATE_save.pod" + ], "doc/html/man3/OSSL_ESS_check_signing_certs.html" => [ "doc/man3/OSSL_ESS_check_signing_certs.pod" ], + "doc/html/man3/OSSL_GENERAL_NAMES_print.html" => [ + "doc/man3/OSSL_GENERAL_NAMES_print.pod" + ], + "doc/html/man3/OSSL_HPKE_CTX_new.html" => [ + "doc/man3/OSSL_HPKE_CTX_new.pod" + ], "doc/html/man3/OSSL_HTTP_REQ_CTX.html" => [ "doc/man3/OSSL_HTTP_REQ_CTX.pod" ], @@ -3042,12 +3472,24 @@ our %unified_info = ( "doc/html/man3/OSSL_HTTP_transfer.html" => [ "doc/man3/OSSL_HTTP_transfer.pod" ], + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX.html" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX.pod" + ], + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX_print.html" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX_print.pod" + ], + "doc/html/man3/OSSL_INDICATOR_set_callback.html" => [ + "doc/man3/OSSL_INDICATOR_set_callback.pod" + ], "doc/html/man3/OSSL_ITEM.html" => [ "doc/man3/OSSL_ITEM.pod" ], "doc/html/man3/OSSL_LIB_CTX.html" => [ "doc/man3/OSSL_LIB_CTX.pod" ], + "doc/html/man3/OSSL_LIB_CTX_set_conf_diagnostics.html" => [ + "doc/man3/OSSL_LIB_CTX_set_conf_diagnostics.pod" + ], "doc/html/man3/OSSL_PARAM.html" => [ "doc/man3/OSSL_PARAM.pod" ], @@ -3063,9 +3505,15 @@ our %unified_info = ( "doc/html/man3/OSSL_PARAM_int.html" => [ "doc/man3/OSSL_PARAM_int.pod" ], + "doc/html/man3/OSSL_PARAM_print_to_bio.html" => [ + "doc/man3/OSSL_PARAM_print_to_bio.pod" + ], "doc/html/man3/OSSL_PROVIDER.html" => [ "doc/man3/OSSL_PROVIDER.pod" ], + "doc/html/man3/OSSL_QUIC_client_method.html" => [ + "doc/man3/OSSL_QUIC_client_method.pod" + ], "doc/html/man3/OSSL_SELF_TEST_new.html" => [ "doc/man3/OSSL_SELF_TEST_new.pod" ], @@ -3090,6 +3538,9 @@ our %unified_info = ( "doc/html/man3/OSSL_STORE_open.html" => [ "doc/man3/OSSL_STORE_open.pod" ], + "doc/html/man3/OSSL_sleep.html" => [ + "doc/man3/OSSL_sleep.pod" + ], "doc/html/man3/OSSL_trace_enabled.html" => [ "doc/man3/OSSL_trace_enabled.pod" ], @@ -3105,6 +3556,9 @@ our %unified_info = ( "doc/html/man3/OpenSSL_version.html" => [ "doc/man3/OpenSSL_version.pod" ], + "doc/html/man3/PBMAC1_get1_pbkdf2_param.html" => [ + "doc/man3/PBMAC1_get1_pbkdf2_param.pod" + ], "doc/html/man3/PEM_X509_INFO_read_bio_ex.html" => [ "doc/man3/PEM_X509_INFO_read_bio_ex.pod" ], @@ -3141,6 +3595,9 @@ our %unified_info = ( "doc/html/man3/PKCS12_SAFEBAG_get1_cert.html" => [ "doc/man3/PKCS12_SAFEBAG_get1_cert.pod" ], + "doc/html/man3/PKCS12_SAFEBAG_set0_attrs.html" => [ + "doc/man3/PKCS12_SAFEBAG_set0_attrs.pod" + ], "doc/html/man3/PKCS12_add1_attr_by_NID.html" => [ "doc/man3/PKCS12_add1_attr_by_NID.pod" ], @@ -3414,6 +3871,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set0_CA_list.html" => [ "doc/man3/SSL_CTX_set0_CA_list.pod" ], + "doc/html/man3/SSL_CTX_set1_cert_comp_preference.html" => [ + "doc/man3/SSL_CTX_set1_cert_comp_preference.pod" + ], "doc/html/man3/SSL_CTX_set1_curves.html" => [ "doc/man3/SSL_CTX_set1_curves.pod" ], @@ -3453,6 +3913,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_default_passwd_cb.html" => [ "doc/man3/SSL_CTX_set_default_passwd_cb.pod" ], + "doc/html/man3/SSL_CTX_set_domain_flags.html" => [ + "doc/man3/SSL_CTX_set_domain_flags.pod" + ], "doc/html/man3/SSL_CTX_set_generate_session_id.html" => [ "doc/man3/SSL_CTX_set_generate_session_id.pod" ], @@ -3474,6 +3937,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_msg_callback.html" => [ "doc/man3/SSL_CTX_set_msg_callback.pod" ], + "doc/html/man3/SSL_CTX_set_new_pending_conn_cb.html" => [ + "doc/man3/SSL_CTX_set_new_pending_conn_cb.pod" + ], "doc/html/man3/SSL_CTX_set_num_tickets.html" => [ "doc/man3/SSL_CTX_set_num_tickets.pod" ], @@ -3588,6 +4054,9 @@ our %unified_info = ( "doc/html/man3/SSL_accept.html" => [ "doc/man3/SSL_accept.pod" ], + "doc/html/man3/SSL_accept_stream.html" => [ + "doc/man3/SSL_accept_stream.pod" + ], "doc/html/man3/SSL_alert_type_string.html" => [ "doc/man3/SSL_alert_type_string.pod" ], @@ -3615,9 +4084,21 @@ our %unified_info = ( "doc/html/man3/SSL_free.html" => [ "doc/man3/SSL_free.pod" ], + "doc/html/man3/SSL_get0_connection.html" => [ + "doc/man3/SSL_get0_connection.pod" + ], + "doc/html/man3/SSL_get0_group_name.html" => [ + "doc/man3/SSL_get0_group_name.pod" + ], + "doc/html/man3/SSL_get0_peer_rpk.html" => [ + "doc/man3/SSL_get0_peer_rpk.pod" + ], "doc/html/man3/SSL_get0_peer_scts.html" => [ "doc/man3/SSL_get0_peer_scts.pod" ], + "doc/html/man3/SSL_get1_builtin_sigalgs.html" => [ + "doc/man3/SSL_get1_builtin_sigalgs.pod" + ], "doc/html/man3/SSL_get_SSL_CTX.html" => [ "doc/man3/SSL_get_SSL_CTX.pod" ], @@ -3633,6 +4114,9 @@ our %unified_info = ( "doc/html/man3/SSL_get_client_random.html" => [ "doc/man3/SSL_get_client_random.pod" ], + "doc/html/man3/SSL_get_conn_close_info.html" => [ + "doc/man3/SSL_get_conn_close_info.pod" + ], "doc/html/man3/SSL_get_current_cipher.html" => [ "doc/man3/SSL_get_current_cipher.pod" ], @@ -3642,12 +4126,18 @@ our %unified_info = ( "doc/html/man3/SSL_get_error.html" => [ "doc/man3/SSL_get_error.pod" ], + "doc/html/man3/SSL_get_event_timeout.html" => [ + "doc/man3/SSL_get_event_timeout.pod" + ], "doc/html/man3/SSL_get_extms_support.html" => [ "doc/man3/SSL_get_extms_support.pod" ], "doc/html/man3/SSL_get_fd.html" => [ "doc/man3/SSL_get_fd.pod" ], + "doc/html/man3/SSL_get_handshake_rtt.html" => [ + "doc/man3/SSL_get_handshake_rtt.pod" + ], "doc/html/man3/SSL_get_peer_cert_chain.html" => [ "doc/man3/SSL_get_peer_cert_chain.pod" ], @@ -3666,12 +4156,24 @@ our %unified_info = ( "doc/html/man3/SSL_get_rbio.html" => [ "doc/man3/SSL_get_rbio.pod" ], + "doc/html/man3/SSL_get_rpoll_descriptor.html" => [ + "doc/man3/SSL_get_rpoll_descriptor.pod" + ], "doc/html/man3/SSL_get_session.html" => [ "doc/man3/SSL_get_session.pod" ], "doc/html/man3/SSL_get_shared_sigalgs.html" => [ "doc/man3/SSL_get_shared_sigalgs.pod" ], + "doc/html/man3/SSL_get_stream_id.html" => [ + "doc/man3/SSL_get_stream_id.pod" + ], + "doc/html/man3/SSL_get_stream_read_state.html" => [ + "doc/man3/SSL_get_stream_read_state.pod" + ], + "doc/html/man3/SSL_get_value_uint.html" => [ + "doc/man3/SSL_get_value_uint.pod" + ], "doc/html/man3/SSL_get_verify_result.html" => [ "doc/man3/SSL_get_verify_result.pod" ], @@ -3681,9 +4183,15 @@ our %unified_info = ( "doc/html/man3/SSL_group_to_name.html" => [ "doc/man3/SSL_group_to_name.pod" ], + "doc/html/man3/SSL_handle_events.html" => [ + "doc/man3/SSL_handle_events.pod" + ], "doc/html/man3/SSL_in_init.html" => [ "doc/man3/SSL_in_init.pod" ], + "doc/html/man3/SSL_inject_net_dgram.html" => [ + "doc/man3/SSL_inject_net_dgram.pod" + ], "doc/html/man3/SSL_key_update.html" => [ "doc/man3/SSL_key_update.pod" ], @@ -3696,9 +4204,21 @@ our %unified_info = ( "doc/html/man3/SSL_new.html" => [ "doc/man3/SSL_new.pod" ], + "doc/html/man3/SSL_new_domain.html" => [ + "doc/man3/SSL_new_domain.pod" + ], + "doc/html/man3/SSL_new_listener.html" => [ + "doc/man3/SSL_new_listener.pod" + ], + "doc/html/man3/SSL_new_stream.html" => [ + "doc/man3/SSL_new_stream.pod" + ], "doc/html/man3/SSL_pending.html" => [ "doc/man3/SSL_pending.pod" ], + "doc/html/man3/SSL_poll.html" => [ + "doc/man3/SSL_poll.pod" + ], "doc/html/man3/SSL_read.html" => [ "doc/man3/SSL_read.pod" ], @@ -3714,24 +4234,45 @@ our %unified_info = ( "doc/html/man3/SSL_set1_host.html" => [ "doc/man3/SSL_set1_host.pod" ], + "doc/html/man3/SSL_set1_initial_peer_addr.html" => [ + "doc/man3/SSL_set1_initial_peer_addr.pod" + ], + "doc/html/man3/SSL_set1_server_cert_type.html" => [ + "doc/man3/SSL_set1_server_cert_type.pod" + ], "doc/html/man3/SSL_set_async_callback.html" => [ "doc/man3/SSL_set_async_callback.pod" ], "doc/html/man3/SSL_set_bio.html" => [ "doc/man3/SSL_set_bio.pod" ], + "doc/html/man3/SSL_set_blocking_mode.html" => [ + "doc/man3/SSL_set_blocking_mode.pod" + ], "doc/html/man3/SSL_set_connect_state.html" => [ "doc/man3/SSL_set_connect_state.pod" ], + "doc/html/man3/SSL_set_default_stream_mode.html" => [ + "doc/man3/SSL_set_default_stream_mode.pod" + ], "doc/html/man3/SSL_set_fd.html" => [ "doc/man3/SSL_set_fd.pod" ], + "doc/html/man3/SSL_set_incoming_stream_policy.html" => [ + "doc/man3/SSL_set_incoming_stream_policy.pod" + ], + "doc/html/man3/SSL_set_quic_tls_cbs.html" => [ + "doc/man3/SSL_set_quic_tls_cbs.pod" + ], "doc/html/man3/SSL_set_retry_verify.html" => [ "doc/man3/SSL_set_retry_verify.pod" ], "doc/html/man3/SSL_set_session.html" => [ "doc/man3/SSL_set_session.pod" ], + "doc/html/man3/SSL_set_session_secret_cb.html" => [ + "doc/man3/SSL_set_session_secret_cb.pod" + ], "doc/html/man3/SSL_set_shutdown.html" => [ "doc/man3/SSL_set_shutdown.pod" ], @@ -3744,6 +4285,12 @@ our %unified_info = ( "doc/html/man3/SSL_state_string.html" => [ "doc/man3/SSL_state_string.pod" ], + "doc/html/man3/SSL_stream_conclude.html" => [ + "doc/man3/SSL_stream_conclude.pod" + ], + "doc/html/man3/SSL_stream_reset.html" => [ + "doc/man3/SSL_stream_reset.pod" + ], "doc/html/man3/SSL_want.html" => [ "doc/man3/SSL_want.pod" ], @@ -3753,8 +4300,8 @@ our %unified_info = ( "doc/html/man3/TS_RESP_CTX_new.html" => [ "doc/man3/TS_RESP_CTX_new.pod" ], - "doc/html/man3/TS_VERIFY_CTX_set_certs.html" => [ - "doc/man3/TS_VERIFY_CTX_set_certs.pod" + "doc/html/man3/TS_VERIFY_CTX.html" => [ + "doc/man3/TS_VERIFY_CTX.pod" ], "doc/html/man3/UI_STRING.html" => [ "doc/man3/UI_STRING.pod" @@ -3774,6 +4321,21 @@ our %unified_info = ( "doc/html/man3/X509V3_set_ctx.html" => [ "doc/man3/X509V3_set_ctx.pod" ], + "doc/html/man3/X509_ACERT_add1_attr.html" => [ + "doc/man3/X509_ACERT_add1_attr.pod" + ], + "doc/html/man3/X509_ACERT_add_attr_nconf.html" => [ + "doc/man3/X509_ACERT_add_attr_nconf.pod" + ], + "doc/html/man3/X509_ACERT_get0_holder_baseCertId.html" => [ + "doc/man3/X509_ACERT_get0_holder_baseCertId.pod" + ], + "doc/html/man3/X509_ACERT_get_attr.html" => [ + "doc/man3/X509_ACERT_get_attr.pod" + ], + "doc/html/man3/X509_ACERT_print_ex.html" => [ + "doc/man3/X509_ACERT_print_ex.pod" + ], "doc/html/man3/X509_ALGOR_dup.html" => [ "doc/man3/X509_ALGOR_dup.pod" ], @@ -3822,6 +4384,9 @@ our %unified_info = ( "doc/html/man3/X509_SIG_get0.html" => [ "doc/man3/X509_SIG_get0.pod" ], + "doc/html/man3/X509_STORE_CTX_get_by_subject.html" => [ + "doc/man3/X509_STORE_CTX_get_by_subject.pod" + ], "doc/html/man3/X509_STORE_CTX_get_error.html" => [ "doc/man3/X509_STORE_CTX_get_error.pod" ], @@ -3888,6 +4453,9 @@ our %unified_info = ( "doc/html/man3/X509_get0_uids.html" => [ "doc/man3/X509_get0_uids.pod" ], + "doc/html/man3/X509_get_default_cert_file.html" => [ + "doc/man3/X509_get_default_cert_file.pod" + ], "doc/html/man3/X509_get_extension_flags.html" => [ "doc/man3/X509_get_extension_flags.pod" ], @@ -4011,9 +4579,15 @@ our %unified_info = ( "doc/html/man7/EVP_CIPHER-SM4.html" => [ "doc/man7/EVP_CIPHER-SM4.pod" ], + "doc/html/man7/EVP_KDF-ARGON2.html" => [ + "doc/man7/EVP_KDF-ARGON2.pod" + ], "doc/html/man7/EVP_KDF-HKDF.html" => [ "doc/man7/EVP_KDF-HKDF.pod" ], + "doc/html/man7/EVP_KDF-HMAC-DRBG.html" => [ + "doc/man7/EVP_KDF-HMAC-DRBG.pod" + ], "doc/html/man7/EVP_KDF-KB.html" => [ "doc/man7/EVP_KDF-KB.pod" ], @@ -4029,6 +4603,9 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-PKCS12KDF.html" => [ "doc/man7/EVP_KDF-PKCS12KDF.pod" ], + "doc/html/man7/EVP_KDF-PVKKDF.html" => [ + "doc/man7/EVP_KDF-PVKKDF.pod" + ], "doc/html/man7/EVP_KDF-SCRYPT.html" => [ "doc/man7/EVP_KDF-SCRYPT.pod" ], @@ -4053,9 +4630,18 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-X963.html" => [ "doc/man7/EVP_KDF-X963.pod" ], + "doc/html/man7/EVP_KEM-EC.html" => [ + "doc/man7/EVP_KEM-EC.pod" + ], + "doc/html/man7/EVP_KEM-ML-KEM.html" => [ + "doc/man7/EVP_KEM-ML-KEM.pod" + ], "doc/html/man7/EVP_KEM-RSA.html" => [ "doc/man7/EVP_KEM-RSA.pod" ], + "doc/html/man7/EVP_KEM-X25519.html" => [ + "doc/man7/EVP_KEM-X25519.pod" + ], "doc/html/man7/EVP_KEYEXCH-DH.html" => [ "doc/man7/EVP_KEYEXCH-DH.pod" ], @@ -4089,6 +4675,9 @@ our %unified_info = ( "doc/html/man7/EVP_MD-BLAKE2.html" => [ "doc/man7/EVP_MD-BLAKE2.pod" ], + "doc/html/man7/EVP_MD-KECCAK.html" => [ + "doc/man7/EVP_MD-KECCAK.pod" + ], "doc/html/man7/EVP_MD-MD2.html" => [ "doc/man7/EVP_MD-MD2.pod" ], @@ -4146,15 +4735,27 @@ our %unified_info = ( "doc/html/man7/EVP_PKEY-HMAC.html" => [ "doc/man7/EVP_PKEY-HMAC.pod" ], + "doc/html/man7/EVP_PKEY-ML-DSA.html" => [ + "doc/man7/EVP_PKEY-ML-DSA.pod" + ], + "doc/html/man7/EVP_PKEY-ML-KEM.html" => [ + "doc/man7/EVP_PKEY-ML-KEM.pod" + ], "doc/html/man7/EVP_PKEY-RSA.html" => [ "doc/man7/EVP_PKEY-RSA.pod" ], + "doc/html/man7/EVP_PKEY-SLH-DSA.html" => [ + "doc/man7/EVP_PKEY-SLH-DSA.pod" + ], "doc/html/man7/EVP_PKEY-SM2.html" => [ "doc/man7/EVP_PKEY-SM2.pod" ], "doc/html/man7/EVP_PKEY-X25519.html" => [ "doc/man7/EVP_PKEY-X25519.pod" ], + "doc/html/man7/EVP_RAND-CRNG-TEST.html" => [ + "doc/man7/EVP_RAND-CRNG-TEST.pod" + ], "doc/html/man7/EVP_RAND-CTR-DRBG.html" => [ "doc/man7/EVP_RAND-CTR-DRBG.pod" ], @@ -4164,6 +4765,9 @@ our %unified_info = ( "doc/html/man7/EVP_RAND-HMAC-DRBG.html" => [ "doc/man7/EVP_RAND-HMAC-DRBG.pod" ], + "doc/html/man7/EVP_RAND-JITTER.html" => [ + "doc/man7/EVP_RAND-JITTER.pod" + ], "doc/html/man7/EVP_RAND-SEED-SRC.html" => [ "doc/man7/EVP_RAND-SEED-SRC.pod" ], @@ -4185,9 +4789,15 @@ our %unified_info = ( "doc/html/man7/EVP_SIGNATURE-HMAC.html" => [ "doc/man7/EVP_SIGNATURE-HMAC.pod" ], + "doc/html/man7/EVP_SIGNATURE-ML-DSA.html" => [ + "doc/man7/EVP_SIGNATURE-ML-DSA.pod" + ], "doc/html/man7/EVP_SIGNATURE-RSA.html" => [ "doc/man7/EVP_SIGNATURE-RSA.pod" ], + "doc/html/man7/EVP_SIGNATURE-SLH-DSA.html" => [ + "doc/man7/EVP_SIGNATURE-SLH-DSA.pod" + ], "doc/html/man7/OSSL_PROVIDER-FIPS.html" => [ "doc/man7/OSSL_PROVIDER-FIPS.pod" ], @@ -4203,6 +4813,9 @@ our %unified_info = ( "doc/html/man7/OSSL_PROVIDER-null.html" => [ "doc/man7/OSSL_PROVIDER-null.pod" ], + "doc/html/man7/OSSL_STORE-winstore.html" => [ + "doc/man7/OSSL_STORE-winstore.pod" + ], "doc/html/man7/RAND.html" => [ "doc/man7/RAND.pod" ], @@ -4215,9 +4828,6 @@ our %unified_info = ( "doc/html/man7/bio.html" => [ "doc/man7/bio.pod" ], - "doc/html/man7/crypto.html" => [ - "doc/man7/crypto.pod" - ], "doc/html/man7/ct.html" => [ "doc/man7/ct.pod" ], @@ -4248,9 +4858,6 @@ our %unified_info = ( "doc/html/man7/life_cycle-rand.html" => [ "doc/man7/life_cycle-rand.pod" ], - "doc/html/man7/migration_guide.html" => [ - "doc/man7/migration_guide.pod" - ], "doc/html/man7/openssl-core.h.html" => [ "doc/man7/openssl-core.h.pod" ], @@ -4266,12 +4873,66 @@ our %unified_info = ( "doc/html/man7/openssl-glossary.html" => [ "doc/man7/openssl-glossary.pod" ], + "doc/html/man7/openssl-qlog.html" => [ + "doc/man7/openssl-qlog.pod" + ], + "doc/html/man7/openssl-quic-concurrency.html" => [ + "doc/man7/openssl-quic-concurrency.pod" + ], + "doc/html/man7/openssl-quic.html" => [ + "doc/man7/openssl-quic.pod" + ], "doc/html/man7/openssl-threads.html" => [ "doc/man7/openssl-threads.pod" ], "doc/html/man7/openssl_user_macros.html" => [ "doc/man7/openssl_user_macros.pod" ], + "doc/html/man7/ossl-guide-introduction.html" => [ + "doc/man7/ossl-guide-introduction.pod" + ], + "doc/html/man7/ossl-guide-libcrypto-introduction.html" => [ + "doc/man7/ossl-guide-libcrypto-introduction.pod" + ], + "doc/html/man7/ossl-guide-libraries-introduction.html" => [ + "doc/man7/ossl-guide-libraries-introduction.pod" + ], + "doc/html/man7/ossl-guide-libssl-introduction.html" => [ + "doc/man7/ossl-guide-libssl-introduction.pod" + ], + "doc/html/man7/ossl-guide-migration.html" => [ + "doc/man7/ossl-guide-migration.pod" + ], + "doc/html/man7/ossl-guide-quic-client-block.html" => [ + "doc/man7/ossl-guide-quic-client-block.pod" + ], + "doc/html/man7/ossl-guide-quic-client-non-block.html" => [ + "doc/man7/ossl-guide-quic-client-non-block.pod" + ], + "doc/html/man7/ossl-guide-quic-introduction.html" => [ + "doc/man7/ossl-guide-quic-introduction.pod" + ], + "doc/html/man7/ossl-guide-quic-multi-stream.html" => [ + "doc/man7/ossl-guide-quic-multi-stream.pod" + ], + "doc/html/man7/ossl-guide-quic-server-block.html" => [ + "doc/man7/ossl-guide-quic-server-block.pod" + ], + "doc/html/man7/ossl-guide-quic-server-non-block.html" => [ + "doc/man7/ossl-guide-quic-server-non-block.pod" + ], + "doc/html/man7/ossl-guide-tls-client-block.html" => [ + "doc/man7/ossl-guide-tls-client-block.pod" + ], + "doc/html/man7/ossl-guide-tls-client-non-block.html" => [ + "doc/man7/ossl-guide-tls-client-non-block.pod" + ], + "doc/html/man7/ossl-guide-tls-introduction.html" => [ + "doc/man7/ossl-guide-tls-introduction.pod" + ], + "doc/html/man7/ossl-guide-tls-server-block.html" => [ + "doc/man7/ossl-guide-tls-server-block.pod" + ], "doc/html/man7/ossl_store-file.html" => [ "doc/man7/ossl_store-file.pod" ], @@ -4326,6 +4987,9 @@ our %unified_info = ( "doc/html/man7/provider-signature.html" => [ "doc/man7/provider-signature.pod" ], + "doc/html/man7/provider-skeymgmt.html" => [ + "doc/man7/provider-skeymgmt.pod" + ], "doc/html/man7/provider-storemgmt.html" => [ "doc/man7/provider-storemgmt.pod" ], @@ -4335,9 +4999,6 @@ our %unified_info = ( "doc/html/man7/proxy-certificates.html" => [ "doc/man7/proxy-certificates.pod" ], - "doc/html/man7/ssl.html" => [ - "doc/man7/ssl.pod" - ], "doc/html/man7/x509.html" => [ "doc/man7/x509.pod" ], @@ -4485,6 +5146,9 @@ our %unified_info = ( "doc/man/man1/openssl-sess_id.1" => [ "doc/man1/openssl-sess_id.pod" ], + "doc/man/man1/openssl-skeyutl.1" => [ + "doc/man1/openssl-skeyutl.pod" + ], "doc/man/man1/openssl-smime.1" => [ "doc/man1/openssl-smime.pod" ], @@ -4626,6 +5290,9 @@ our %unified_info = ( "doc/man/man3/BIO_get_ex_new_index.3" => [ "doc/man3/BIO_get_ex_new_index.pod" ], + "doc/man/man3/BIO_get_rpoll_descriptor.3" => [ + "doc/man3/BIO_get_rpoll_descriptor.pod" + ], "doc/man/man3/BIO_meth_new.3" => [ "doc/man3/BIO_meth_new.pod" ], @@ -4662,6 +5329,9 @@ our %unified_info = ( "doc/man/man3/BIO_s_datagram.3" => [ "doc/man3/BIO_s_datagram.pod" ], + "doc/man/man3/BIO_s_dgram_pair.3" => [ + "doc/man3/BIO_s_dgram_pair.pod" + ], "doc/man/man3/BIO_s_fd.3" => [ "doc/man3/BIO_s_fd.pod" ], @@ -4677,6 +5347,9 @@ our %unified_info = ( "doc/man/man3/BIO_s_socket.3" => [ "doc/man3/BIO_s_socket.pod" ], + "doc/man/man3/BIO_sendmmsg.3" => [ + "doc/man3/BIO_sendmmsg.pod" + ], "doc/man/man3/BIO_set_callback.3" => [ "doc/man3/BIO_set_callback.pod" ], @@ -4749,6 +5422,9 @@ our %unified_info = ( "doc/man/man3/BUF_MEM_new.3" => [ "doc/man3/BUF_MEM_new.pod" ], + "doc/man/man3/CMAC_CTX.3" => [ + "doc/man3/CMAC_CTX.pod" + ], "doc/man/man3/CMS_EncryptedData_decrypt.3" => [ "doc/man3/CMS_EncryptedData_decrypt.pod" ], @@ -4815,6 +5491,9 @@ our %unified_info = ( "doc/man/man3/CMS_verify_receipt.3" => [ "doc/man3/CMS_verify_receipt.pod" ], + "doc/man/man3/COMP_CTX_new.3" => [ + "doc/man3/COMP_CTX_new.pod" + ], "doc/man/man3/CONF_modules_free.3" => [ "doc/man3/CONF_modules_free.pod" ], @@ -4914,6 +5593,12 @@ our %unified_info = ( "doc/man/man3/DTLS_set_timer_cb.3" => [ "doc/man3/DTLS_set_timer_cb.pod" ], + "doc/man/man3/DTLSv1_get_timeout.3" => [ + "doc/man3/DTLSv1_get_timeout.pod" + ], + "doc/man/man3/DTLSv1_handle_timeout.3" => [ + "doc/man3/DTLSv1_handle_timeout.pod" + ], "doc/man/man3/DTLSv1_listen.3" => [ "doc/man3/DTLSv1_listen.pod" ], @@ -5052,6 +5737,9 @@ our %unified_info = ( "doc/man/man3/EVP_PKEY_CTX_get0_pkey.3" => [ "doc/man3/EVP_PKEY_CTX_get0_pkey.pod" ], + "doc/man/man3/EVP_PKEY_CTX_get_algor.3" => [ + "doc/man3/EVP_PKEY_CTX_get_algor.pod" + ], "doc/man/man3/EVP_PKEY_CTX_new.3" => [ "doc/man3/EVP_PKEY_CTX_new.pod" ], @@ -5169,6 +5857,12 @@ our %unified_info = ( "doc/man/man3/EVP_SIGNATURE.3" => [ "doc/man3/EVP_SIGNATURE.pod" ], + "doc/man/man3/EVP_SKEY.3" => [ + "doc/man3/EVP_SKEY.pod" + ], + "doc/man/man3/EVP_SKEYMGMT.3" => [ + "doc/man3/EVP_SKEYMGMT.pod" + ], "doc/man/man3/EVP_SealInit.3" => [ "doc/man3/EVP_SealInit.pod" ], @@ -5256,6 +5950,9 @@ our %unified_info = ( "doc/man/man3/EVP_whirlpool.3" => [ "doc/man3/EVP_whirlpool.pod" ], + "doc/man/man3/GENERAL_NAME.3" => [ + "doc/man3/GENERAL_NAME.pod" + ], "doc/man/man3/HMAC.3" => [ "doc/man3/HMAC.pod" ], @@ -5328,9 +6025,15 @@ our %unified_info = ( "doc/man/man3/OPENSSL_load_builtin_modules.3" => [ "doc/man3/OPENSSL_load_builtin_modules.pod" ], + "doc/man/man3/OPENSSL_load_u16_le.3" => [ + "doc/man3/OPENSSL_load_u16_le.pod" + ], "doc/man/man3/OPENSSL_malloc.3" => [ "doc/man3/OPENSSL_malloc.pod" ], + "doc/man/man3/OPENSSL_riscvcap.3" => [ + "doc/man3/OPENSSL_riscvcap.pod" + ], "doc/man/man3/OPENSSL_s390xcap.3" => [ "doc/man3/OPENSSL_s390xcap.pod" ], @@ -5346,12 +6049,18 @@ our %unified_info = ( "doc/man/man3/OSSL_CALLBACK.3" => [ "doc/man3/OSSL_CALLBACK.pod" ], + "doc/man/man3/OSSL_CMP_ATAV_set0.3" => [ + "doc/man3/OSSL_CMP_ATAV_set0.pod" + ], "doc/man/man3/OSSL_CMP_CTX_new.3" => [ "doc/man3/OSSL_CMP_CTX_new.pod" ], "doc/man/man3/OSSL_CMP_HDR_get0_transactionID.3" => [ "doc/man3/OSSL_CMP_HDR_get0_transactionID.pod" ], + "doc/man/man3/OSSL_CMP_ITAV_new_caCerts.3" => [ + "doc/man3/OSSL_CMP_ITAV_new_caCerts.pod" + ], "doc/man/man3/OSSL_CMP_ITAV_set0.3" => [ "doc/man3/OSSL_CMP_ITAV_set0.pod" ], @@ -5421,9 +6130,18 @@ our %unified_info = ( "doc/man/man3/OSSL_ENCODER_to_bio.3" => [ "doc/man3/OSSL_ENCODER_to_bio.pod" ], + "doc/man/man3/OSSL_ERR_STATE_save.3" => [ + "doc/man3/OSSL_ERR_STATE_save.pod" + ], "doc/man/man3/OSSL_ESS_check_signing_certs.3" => [ "doc/man3/OSSL_ESS_check_signing_certs.pod" ], + "doc/man/man3/OSSL_GENERAL_NAMES_print.3" => [ + "doc/man3/OSSL_GENERAL_NAMES_print.pod" + ], + "doc/man/man3/OSSL_HPKE_CTX_new.3" => [ + "doc/man3/OSSL_HPKE_CTX_new.pod" + ], "doc/man/man3/OSSL_HTTP_REQ_CTX.3" => [ "doc/man3/OSSL_HTTP_REQ_CTX.pod" ], @@ -5433,12 +6151,24 @@ our %unified_info = ( "doc/man/man3/OSSL_HTTP_transfer.3" => [ "doc/man3/OSSL_HTTP_transfer.pod" ], + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX.3" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX.pod" + ], + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX_print.3" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX_print.pod" + ], + "doc/man/man3/OSSL_INDICATOR_set_callback.3" => [ + "doc/man3/OSSL_INDICATOR_set_callback.pod" + ], "doc/man/man3/OSSL_ITEM.3" => [ "doc/man3/OSSL_ITEM.pod" ], "doc/man/man3/OSSL_LIB_CTX.3" => [ "doc/man3/OSSL_LIB_CTX.pod" ], + "doc/man/man3/OSSL_LIB_CTX_set_conf_diagnostics.3" => [ + "doc/man3/OSSL_LIB_CTX_set_conf_diagnostics.pod" + ], "doc/man/man3/OSSL_PARAM.3" => [ "doc/man3/OSSL_PARAM.pod" ], @@ -5454,9 +6184,15 @@ our %unified_info = ( "doc/man/man3/OSSL_PARAM_int.3" => [ "doc/man3/OSSL_PARAM_int.pod" ], + "doc/man/man3/OSSL_PARAM_print_to_bio.3" => [ + "doc/man3/OSSL_PARAM_print_to_bio.pod" + ], "doc/man/man3/OSSL_PROVIDER.3" => [ "doc/man3/OSSL_PROVIDER.pod" ], + "doc/man/man3/OSSL_QUIC_client_method.3" => [ + "doc/man3/OSSL_QUIC_client_method.pod" + ], "doc/man/man3/OSSL_SELF_TEST_new.3" => [ "doc/man3/OSSL_SELF_TEST_new.pod" ], @@ -5481,6 +6217,9 @@ our %unified_info = ( "doc/man/man3/OSSL_STORE_open.3" => [ "doc/man3/OSSL_STORE_open.pod" ], + "doc/man/man3/OSSL_sleep.3" => [ + "doc/man3/OSSL_sleep.pod" + ], "doc/man/man3/OSSL_trace_enabled.3" => [ "doc/man3/OSSL_trace_enabled.pod" ], @@ -5496,6 +6235,9 @@ our %unified_info = ( "doc/man/man3/OpenSSL_version.3" => [ "doc/man3/OpenSSL_version.pod" ], + "doc/man/man3/PBMAC1_get1_pbkdf2_param.3" => [ + "doc/man3/PBMAC1_get1_pbkdf2_param.pod" + ], "doc/man/man3/PEM_X509_INFO_read_bio_ex.3" => [ "doc/man3/PEM_X509_INFO_read_bio_ex.pod" ], @@ -5532,6 +6274,9 @@ our %unified_info = ( "doc/man/man3/PKCS12_SAFEBAG_get1_cert.3" => [ "doc/man3/PKCS12_SAFEBAG_get1_cert.pod" ], + "doc/man/man3/PKCS12_SAFEBAG_set0_attrs.3" => [ + "doc/man3/PKCS12_SAFEBAG_set0_attrs.pod" + ], "doc/man/man3/PKCS12_add1_attr_by_NID.3" => [ "doc/man3/PKCS12_add1_attr_by_NID.pod" ], @@ -5805,6 +6550,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set0_CA_list.3" => [ "doc/man3/SSL_CTX_set0_CA_list.pod" ], + "doc/man/man3/SSL_CTX_set1_cert_comp_preference.3" => [ + "doc/man3/SSL_CTX_set1_cert_comp_preference.pod" + ], "doc/man/man3/SSL_CTX_set1_curves.3" => [ "doc/man3/SSL_CTX_set1_curves.pod" ], @@ -5844,6 +6592,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_default_passwd_cb.3" => [ "doc/man3/SSL_CTX_set_default_passwd_cb.pod" ], + "doc/man/man3/SSL_CTX_set_domain_flags.3" => [ + "doc/man3/SSL_CTX_set_domain_flags.pod" + ], "doc/man/man3/SSL_CTX_set_generate_session_id.3" => [ "doc/man3/SSL_CTX_set_generate_session_id.pod" ], @@ -5865,6 +6616,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_msg_callback.3" => [ "doc/man3/SSL_CTX_set_msg_callback.pod" ], + "doc/man/man3/SSL_CTX_set_new_pending_conn_cb.3" => [ + "doc/man3/SSL_CTX_set_new_pending_conn_cb.pod" + ], "doc/man/man3/SSL_CTX_set_num_tickets.3" => [ "doc/man3/SSL_CTX_set_num_tickets.pod" ], @@ -5979,6 +6733,9 @@ our %unified_info = ( "doc/man/man3/SSL_accept.3" => [ "doc/man3/SSL_accept.pod" ], + "doc/man/man3/SSL_accept_stream.3" => [ + "doc/man3/SSL_accept_stream.pod" + ], "doc/man/man3/SSL_alert_type_string.3" => [ "doc/man3/SSL_alert_type_string.pod" ], @@ -6006,9 +6763,21 @@ our %unified_info = ( "doc/man/man3/SSL_free.3" => [ "doc/man3/SSL_free.pod" ], + "doc/man/man3/SSL_get0_connection.3" => [ + "doc/man3/SSL_get0_connection.pod" + ], + "doc/man/man3/SSL_get0_group_name.3" => [ + "doc/man3/SSL_get0_group_name.pod" + ], + "doc/man/man3/SSL_get0_peer_rpk.3" => [ + "doc/man3/SSL_get0_peer_rpk.pod" + ], "doc/man/man3/SSL_get0_peer_scts.3" => [ "doc/man3/SSL_get0_peer_scts.pod" ], + "doc/man/man3/SSL_get1_builtin_sigalgs.3" => [ + "doc/man3/SSL_get1_builtin_sigalgs.pod" + ], "doc/man/man3/SSL_get_SSL_CTX.3" => [ "doc/man3/SSL_get_SSL_CTX.pod" ], @@ -6024,6 +6793,9 @@ our %unified_info = ( "doc/man/man3/SSL_get_client_random.3" => [ "doc/man3/SSL_get_client_random.pod" ], + "doc/man/man3/SSL_get_conn_close_info.3" => [ + "doc/man3/SSL_get_conn_close_info.pod" + ], "doc/man/man3/SSL_get_current_cipher.3" => [ "doc/man3/SSL_get_current_cipher.pod" ], @@ -6033,12 +6805,18 @@ our %unified_info = ( "doc/man/man3/SSL_get_error.3" => [ "doc/man3/SSL_get_error.pod" ], + "doc/man/man3/SSL_get_event_timeout.3" => [ + "doc/man3/SSL_get_event_timeout.pod" + ], "doc/man/man3/SSL_get_extms_support.3" => [ "doc/man3/SSL_get_extms_support.pod" ], "doc/man/man3/SSL_get_fd.3" => [ "doc/man3/SSL_get_fd.pod" ], + "doc/man/man3/SSL_get_handshake_rtt.3" => [ + "doc/man3/SSL_get_handshake_rtt.pod" + ], "doc/man/man3/SSL_get_peer_cert_chain.3" => [ "doc/man3/SSL_get_peer_cert_chain.pod" ], @@ -6057,12 +6835,24 @@ our %unified_info = ( "doc/man/man3/SSL_get_rbio.3" => [ "doc/man3/SSL_get_rbio.pod" ], + "doc/man/man3/SSL_get_rpoll_descriptor.3" => [ + "doc/man3/SSL_get_rpoll_descriptor.pod" + ], "doc/man/man3/SSL_get_session.3" => [ "doc/man3/SSL_get_session.pod" ], "doc/man/man3/SSL_get_shared_sigalgs.3" => [ "doc/man3/SSL_get_shared_sigalgs.pod" ], + "doc/man/man3/SSL_get_stream_id.3" => [ + "doc/man3/SSL_get_stream_id.pod" + ], + "doc/man/man3/SSL_get_stream_read_state.3" => [ + "doc/man3/SSL_get_stream_read_state.pod" + ], + "doc/man/man3/SSL_get_value_uint.3" => [ + "doc/man3/SSL_get_value_uint.pod" + ], "doc/man/man3/SSL_get_verify_result.3" => [ "doc/man3/SSL_get_verify_result.pod" ], @@ -6072,9 +6862,15 @@ our %unified_info = ( "doc/man/man3/SSL_group_to_name.3" => [ "doc/man3/SSL_group_to_name.pod" ], + "doc/man/man3/SSL_handle_events.3" => [ + "doc/man3/SSL_handle_events.pod" + ], "doc/man/man3/SSL_in_init.3" => [ "doc/man3/SSL_in_init.pod" ], + "doc/man/man3/SSL_inject_net_dgram.3" => [ + "doc/man3/SSL_inject_net_dgram.pod" + ], "doc/man/man3/SSL_key_update.3" => [ "doc/man3/SSL_key_update.pod" ], @@ -6087,9 +6883,21 @@ our %unified_info = ( "doc/man/man3/SSL_new.3" => [ "doc/man3/SSL_new.pod" ], + "doc/man/man3/SSL_new_domain.3" => [ + "doc/man3/SSL_new_domain.pod" + ], + "doc/man/man3/SSL_new_listener.3" => [ + "doc/man3/SSL_new_listener.pod" + ], + "doc/man/man3/SSL_new_stream.3" => [ + "doc/man3/SSL_new_stream.pod" + ], "doc/man/man3/SSL_pending.3" => [ "doc/man3/SSL_pending.pod" ], + "doc/man/man3/SSL_poll.3" => [ + "doc/man3/SSL_poll.pod" + ], "doc/man/man3/SSL_read.3" => [ "doc/man3/SSL_read.pod" ], @@ -6105,24 +6913,45 @@ our %unified_info = ( "doc/man/man3/SSL_set1_host.3" => [ "doc/man3/SSL_set1_host.pod" ], + "doc/man/man3/SSL_set1_initial_peer_addr.3" => [ + "doc/man3/SSL_set1_initial_peer_addr.pod" + ], + "doc/man/man3/SSL_set1_server_cert_type.3" => [ + "doc/man3/SSL_set1_server_cert_type.pod" + ], "doc/man/man3/SSL_set_async_callback.3" => [ "doc/man3/SSL_set_async_callback.pod" ], "doc/man/man3/SSL_set_bio.3" => [ "doc/man3/SSL_set_bio.pod" ], + "doc/man/man3/SSL_set_blocking_mode.3" => [ + "doc/man3/SSL_set_blocking_mode.pod" + ], "doc/man/man3/SSL_set_connect_state.3" => [ "doc/man3/SSL_set_connect_state.pod" ], + "doc/man/man3/SSL_set_default_stream_mode.3" => [ + "doc/man3/SSL_set_default_stream_mode.pod" + ], "doc/man/man3/SSL_set_fd.3" => [ "doc/man3/SSL_set_fd.pod" ], + "doc/man/man3/SSL_set_incoming_stream_policy.3" => [ + "doc/man3/SSL_set_incoming_stream_policy.pod" + ], + "doc/man/man3/SSL_set_quic_tls_cbs.3" => [ + "doc/man3/SSL_set_quic_tls_cbs.pod" + ], "doc/man/man3/SSL_set_retry_verify.3" => [ "doc/man3/SSL_set_retry_verify.pod" ], "doc/man/man3/SSL_set_session.3" => [ "doc/man3/SSL_set_session.pod" ], + "doc/man/man3/SSL_set_session_secret_cb.3" => [ + "doc/man3/SSL_set_session_secret_cb.pod" + ], "doc/man/man3/SSL_set_shutdown.3" => [ "doc/man3/SSL_set_shutdown.pod" ], @@ -6135,6 +6964,12 @@ our %unified_info = ( "doc/man/man3/SSL_state_string.3" => [ "doc/man3/SSL_state_string.pod" ], + "doc/man/man3/SSL_stream_conclude.3" => [ + "doc/man3/SSL_stream_conclude.pod" + ], + "doc/man/man3/SSL_stream_reset.3" => [ + "doc/man3/SSL_stream_reset.pod" + ], "doc/man/man3/SSL_want.3" => [ "doc/man3/SSL_want.pod" ], @@ -6144,8 +6979,8 @@ our %unified_info = ( "doc/man/man3/TS_RESP_CTX_new.3" => [ "doc/man3/TS_RESP_CTX_new.pod" ], - "doc/man/man3/TS_VERIFY_CTX_set_certs.3" => [ - "doc/man3/TS_VERIFY_CTX_set_certs.pod" + "doc/man/man3/TS_VERIFY_CTX.3" => [ + "doc/man3/TS_VERIFY_CTX.pod" ], "doc/man/man3/UI_STRING.3" => [ "doc/man3/UI_STRING.pod" @@ -6165,6 +7000,21 @@ our %unified_info = ( "doc/man/man3/X509V3_set_ctx.3" => [ "doc/man3/X509V3_set_ctx.pod" ], + "doc/man/man3/X509_ACERT_add1_attr.3" => [ + "doc/man3/X509_ACERT_add1_attr.pod" + ], + "doc/man/man3/X509_ACERT_add_attr_nconf.3" => [ + "doc/man3/X509_ACERT_add_attr_nconf.pod" + ], + "doc/man/man3/X509_ACERT_get0_holder_baseCertId.3" => [ + "doc/man3/X509_ACERT_get0_holder_baseCertId.pod" + ], + "doc/man/man3/X509_ACERT_get_attr.3" => [ + "doc/man3/X509_ACERT_get_attr.pod" + ], + "doc/man/man3/X509_ACERT_print_ex.3" => [ + "doc/man3/X509_ACERT_print_ex.pod" + ], "doc/man/man3/X509_ALGOR_dup.3" => [ "doc/man3/X509_ALGOR_dup.pod" ], @@ -6213,6 +7063,9 @@ our %unified_info = ( "doc/man/man3/X509_SIG_get0.3" => [ "doc/man3/X509_SIG_get0.pod" ], + "doc/man/man3/X509_STORE_CTX_get_by_subject.3" => [ + "doc/man3/X509_STORE_CTX_get_by_subject.pod" + ], "doc/man/man3/X509_STORE_CTX_get_error.3" => [ "doc/man3/X509_STORE_CTX_get_error.pod" ], @@ -6279,6 +7132,9 @@ our %unified_info = ( "doc/man/man3/X509_get0_uids.3" => [ "doc/man3/X509_get0_uids.pod" ], + "doc/man/man3/X509_get_default_cert_file.3" => [ + "doc/man3/X509_get_default_cert_file.pod" + ], "doc/man/man3/X509_get_extension_flags.3" => [ "doc/man3/X509_get_extension_flags.pod" ], @@ -6402,9 +7258,15 @@ our %unified_info = ( "doc/man/man7/EVP_CIPHER-SM4.7" => [ "doc/man7/EVP_CIPHER-SM4.pod" ], + "doc/man/man7/EVP_KDF-ARGON2.7" => [ + "doc/man7/EVP_KDF-ARGON2.pod" + ], "doc/man/man7/EVP_KDF-HKDF.7" => [ "doc/man7/EVP_KDF-HKDF.pod" ], + "doc/man/man7/EVP_KDF-HMAC-DRBG.7" => [ + "doc/man7/EVP_KDF-HMAC-DRBG.pod" + ], "doc/man/man7/EVP_KDF-KB.7" => [ "doc/man7/EVP_KDF-KB.pod" ], @@ -6420,6 +7282,9 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-PKCS12KDF.7" => [ "doc/man7/EVP_KDF-PKCS12KDF.pod" ], + "doc/man/man7/EVP_KDF-PVKKDF.7" => [ + "doc/man7/EVP_KDF-PVKKDF.pod" + ], "doc/man/man7/EVP_KDF-SCRYPT.7" => [ "doc/man7/EVP_KDF-SCRYPT.pod" ], @@ -6444,9 +7309,18 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-X963.7" => [ "doc/man7/EVP_KDF-X963.pod" ], + "doc/man/man7/EVP_KEM-EC.7" => [ + "doc/man7/EVP_KEM-EC.pod" + ], + "doc/man/man7/EVP_KEM-ML-KEM.7" => [ + "doc/man7/EVP_KEM-ML-KEM.pod" + ], "doc/man/man7/EVP_KEM-RSA.7" => [ "doc/man7/EVP_KEM-RSA.pod" ], + "doc/man/man7/EVP_KEM-X25519.7" => [ + "doc/man7/EVP_KEM-X25519.pod" + ], "doc/man/man7/EVP_KEYEXCH-DH.7" => [ "doc/man7/EVP_KEYEXCH-DH.pod" ], @@ -6480,6 +7354,9 @@ our %unified_info = ( "doc/man/man7/EVP_MD-BLAKE2.7" => [ "doc/man7/EVP_MD-BLAKE2.pod" ], + "doc/man/man7/EVP_MD-KECCAK.7" => [ + "doc/man7/EVP_MD-KECCAK.pod" + ], "doc/man/man7/EVP_MD-MD2.7" => [ "doc/man7/EVP_MD-MD2.pod" ], @@ -6537,15 +7414,27 @@ our %unified_info = ( "doc/man/man7/EVP_PKEY-HMAC.7" => [ "doc/man7/EVP_PKEY-HMAC.pod" ], + "doc/man/man7/EVP_PKEY-ML-DSA.7" => [ + "doc/man7/EVP_PKEY-ML-DSA.pod" + ], + "doc/man/man7/EVP_PKEY-ML-KEM.7" => [ + "doc/man7/EVP_PKEY-ML-KEM.pod" + ], "doc/man/man7/EVP_PKEY-RSA.7" => [ "doc/man7/EVP_PKEY-RSA.pod" ], + "doc/man/man7/EVP_PKEY-SLH-DSA.7" => [ + "doc/man7/EVP_PKEY-SLH-DSA.pod" + ], "doc/man/man7/EVP_PKEY-SM2.7" => [ "doc/man7/EVP_PKEY-SM2.pod" ], "doc/man/man7/EVP_PKEY-X25519.7" => [ "doc/man7/EVP_PKEY-X25519.pod" ], + "doc/man/man7/EVP_RAND-CRNG-TEST.7" => [ + "doc/man7/EVP_RAND-CRNG-TEST.pod" + ], "doc/man/man7/EVP_RAND-CTR-DRBG.7" => [ "doc/man7/EVP_RAND-CTR-DRBG.pod" ], @@ -6555,6 +7444,9 @@ our %unified_info = ( "doc/man/man7/EVP_RAND-HMAC-DRBG.7" => [ "doc/man7/EVP_RAND-HMAC-DRBG.pod" ], + "doc/man/man7/EVP_RAND-JITTER.7" => [ + "doc/man7/EVP_RAND-JITTER.pod" + ], "doc/man/man7/EVP_RAND-SEED-SRC.7" => [ "doc/man7/EVP_RAND-SEED-SRC.pod" ], @@ -6576,9 +7468,15 @@ our %unified_info = ( "doc/man/man7/EVP_SIGNATURE-HMAC.7" => [ "doc/man7/EVP_SIGNATURE-HMAC.pod" ], + "doc/man/man7/EVP_SIGNATURE-ML-DSA.7" => [ + "doc/man7/EVP_SIGNATURE-ML-DSA.pod" + ], "doc/man/man7/EVP_SIGNATURE-RSA.7" => [ "doc/man7/EVP_SIGNATURE-RSA.pod" ], + "doc/man/man7/EVP_SIGNATURE-SLH-DSA.7" => [ + "doc/man7/EVP_SIGNATURE-SLH-DSA.pod" + ], "doc/man/man7/OSSL_PROVIDER-FIPS.7" => [ "doc/man7/OSSL_PROVIDER-FIPS.pod" ], @@ -6594,6 +7492,9 @@ our %unified_info = ( "doc/man/man7/OSSL_PROVIDER-null.7" => [ "doc/man7/OSSL_PROVIDER-null.pod" ], + "doc/man/man7/OSSL_STORE-winstore.7" => [ + "doc/man7/OSSL_STORE-winstore.pod" + ], "doc/man/man7/RAND.7" => [ "doc/man7/RAND.pod" ], @@ -6606,9 +7507,6 @@ our %unified_info = ( "doc/man/man7/bio.7" => [ "doc/man7/bio.pod" ], - "doc/man/man7/crypto.7" => [ - "doc/man7/crypto.pod" - ], "doc/man/man7/ct.7" => [ "doc/man7/ct.pod" ], @@ -6639,9 +7537,6 @@ our %unified_info = ( "doc/man/man7/life_cycle-rand.7" => [ "doc/man7/life_cycle-rand.pod" ], - "doc/man/man7/migration_guide.7" => [ - "doc/man7/migration_guide.pod" - ], "doc/man/man7/openssl-core.h.7" => [ "doc/man7/openssl-core.h.pod" ], @@ -6657,12 +7552,66 @@ our %unified_info = ( "doc/man/man7/openssl-glossary.7" => [ "doc/man7/openssl-glossary.pod" ], + "doc/man/man7/openssl-qlog.7" => [ + "doc/man7/openssl-qlog.pod" + ], + "doc/man/man7/openssl-quic-concurrency.7" => [ + "doc/man7/openssl-quic-concurrency.pod" + ], + "doc/man/man7/openssl-quic.7" => [ + "doc/man7/openssl-quic.pod" + ], "doc/man/man7/openssl-threads.7" => [ "doc/man7/openssl-threads.pod" ], "doc/man/man7/openssl_user_macros.7" => [ "doc/man7/openssl_user_macros.pod" ], + "doc/man/man7/ossl-guide-introduction.7" => [ + "doc/man7/ossl-guide-introduction.pod" + ], + "doc/man/man7/ossl-guide-libcrypto-introduction.7" => [ + "doc/man7/ossl-guide-libcrypto-introduction.pod" + ], + "doc/man/man7/ossl-guide-libraries-introduction.7" => [ + "doc/man7/ossl-guide-libraries-introduction.pod" + ], + "doc/man/man7/ossl-guide-libssl-introduction.7" => [ + "doc/man7/ossl-guide-libssl-introduction.pod" + ], + "doc/man/man7/ossl-guide-migration.7" => [ + "doc/man7/ossl-guide-migration.pod" + ], + "doc/man/man7/ossl-guide-quic-client-block.7" => [ + "doc/man7/ossl-guide-quic-client-block.pod" + ], + "doc/man/man7/ossl-guide-quic-client-non-block.7" => [ + "doc/man7/ossl-guide-quic-client-non-block.pod" + ], + "doc/man/man7/ossl-guide-quic-introduction.7" => [ + "doc/man7/ossl-guide-quic-introduction.pod" + ], + "doc/man/man7/ossl-guide-quic-multi-stream.7" => [ + "doc/man7/ossl-guide-quic-multi-stream.pod" + ], + "doc/man/man7/ossl-guide-quic-server-block.7" => [ + "doc/man7/ossl-guide-quic-server-block.pod" + ], + "doc/man/man7/ossl-guide-quic-server-non-block.7" => [ + "doc/man7/ossl-guide-quic-server-non-block.pod" + ], + "doc/man/man7/ossl-guide-tls-client-block.7" => [ + "doc/man7/ossl-guide-tls-client-block.pod" + ], + "doc/man/man7/ossl-guide-tls-client-non-block.7" => [ + "doc/man7/ossl-guide-tls-client-non-block.pod" + ], + "doc/man/man7/ossl-guide-tls-introduction.7" => [ + "doc/man7/ossl-guide-tls-introduction.pod" + ], + "doc/man/man7/ossl-guide-tls-server-block.7" => [ + "doc/man7/ossl-guide-tls-server-block.pod" + ], "doc/man/man7/ossl_store-file.7" => [ "doc/man7/ossl_store-file.pod" ], @@ -6717,6 +7666,9 @@ our %unified_info = ( "doc/man/man7/provider-signature.7" => [ "doc/man7/provider-signature.pod" ], + "doc/man/man7/provider-skeymgmt.7" => [ + "doc/man7/provider-skeymgmt.pod" + ], "doc/man/man7/provider-storemgmt.7" => [ "doc/man7/provider-storemgmt.pod" ], @@ -6726,9 +7678,6 @@ our %unified_info = ( "doc/man/man7/proxy-certificates.7" => [ "doc/man7/proxy-certificates.pod" ], - "doc/man/man7/ssl.7" => [ - "doc/man7/ssl.pod" - ], "doc/man/man7/x509.7" => [ "doc/man7/x509.pod" ], @@ -6908,6 +7857,10 @@ our %unified_info = ( "doc/man1/openssl-sess_id.pod.in", "doc/perlvars.pm" ], + "doc/man1/openssl-skeyutl.pod" => [ + "doc/man1/openssl-skeyutl.pod.in", + "doc/perlvars.pm" + ], "doc/man1/openssl-smime.pod" => [ "doc/man1/openssl-smime.pod.in", "doc/perlvars.pm" @@ -6947,6 +7900,27 @@ our %unified_info = ( "doc/man7/openssl_user_macros.pod" => [ "doc/man7/openssl_user_macros.pod.in" ], + "exporters/OpenSSLConfig.cmake" => [ + "installdata.pm" + ], + "exporters/OpenSSLConfigVersion.cmake" => [ + "exporters/OpenSSLConfig.cmake", + "installdata.pm" + ], + "exporters/libcrypto.pc" => [ + "installdata.pm" + ], + "exporters/libssl.pc" => [ + "installdata.pm" + ], + "exporters/openssl.pc" => [ + "exporters/libcrypto.pc", + "exporters/libssl.pc", + "installdata.pm" + ], + "fuzz/acert-test" => [ + "libcrypto" + ], "fuzz/asn1-test" => [ "libcrypto", "libssl" @@ -6979,17 +7953,85 @@ our %unified_info = ( "fuzz/ct-test" => [ "libcrypto" ], + "fuzz/decoder-test" => [ + "libcrypto" + ], + "fuzz/dtlsclient-test" => [ + "libcrypto", + "libssl" + ], + "fuzz/dtlsserver-test" => [ + "libcrypto", + "libssl" + ], + "fuzz/hashtable-test" => [ + "libcrypto.a" + ], + "fuzz/ml-dsa-test" => [ + "libcrypto.a" + ], + "fuzz/ml-kem-test" => [ + "libcrypto.a" + ], + "fuzz/pem-test" => [ + "libcrypto.a" + ], + "fuzz/provider-test" => [ + "libcrypto" + ], + "fuzz/punycode-test" => [ + "libcrypto.a" + ], + "fuzz/quic-client-test" => [ + "libcrypto.a", + "libssl.a" + ], + "fuzz/quic-lcidm-test" => [ + "libcrypto.a", + "libssl.a" + ], + "fuzz/quic-rcidm-test" => [ + "libcrypto.a", + "libssl.a" + ], + "fuzz/quic-server-test" => [ + "libcrypto.a", + "libssl.a" + ], + "fuzz/quic-srtm-test" => [ + "libcrypto.a", + "libssl.a" + ], "fuzz/server-test" => [ "libcrypto", "libssl" ], + "fuzz/slh-dsa-test" => [ + "libcrypto.a" + ], + "fuzz/smime-test" => [ + "libcrypto", + "libssl" + ], + "fuzz/v3name-test" => [ + "libcrypto.a" + ], "fuzz/x509-test" => [ "libcrypto" ], + "include/internal/param_names.h" => [ + "util/perl|OpenSSL/paramnames.pm" + ], + "include/openssl/core_names.h" => [ + "util/perl|OpenSSL/paramnames.pm" + ], "libcrypto.ld" => [ "configdata.pm", "util/perl/OpenSSL/Ordinals.pm" ], + "libcrypto.pc" => [ + "builddata.pm" + ], "libssl" => [ "libcrypto" ], @@ -6997,6 +8039,14 @@ our %unified_info = ( "configdata.pm", "util/perl/OpenSSL/Ordinals.pm" ], + "libssl.pc" => [ + "builddata.pm" + ], + "openssl.pc" => [ + "builddata.pm", + "libcrypto.pc", + "libssl.pc" + ], "providers/common/der/der_digests_gen.c" => [ "providers/common/der/DIGESTS.asn1", "providers/common/der/NIST.asn1", @@ -7014,11 +8064,19 @@ our %unified_info = ( "providers/common/der/ECX.asn1", "providers/common/der/oids_to_c.pm" ], + "providers/common/der/der_ml_dsa_gen.c" => [ + "providers/common/der/ML_DSA.asn1", + "providers/common/der/oids_to_c.pm" + ], "providers/common/der/der_rsa_gen.c" => [ "providers/common/der/NIST.asn1", "providers/common/der/RSA.asn1", "providers/common/der/oids_to_c.pm" ], + "providers/common/der/der_slh_dsa_gen.c" => [ + "providers/common/der/SLH_DSA.asn1", + "providers/common/der/oids_to_c.pm" + ], "providers/common/der/der_sm2_gen.c" => [ "providers/common/der/SM2.asn1", "providers/common/der/oids_to_c.pm" @@ -7058,6 +8116,12 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ecx_key.o" => [ "providers/common/include/prov/der_ecx.h" ], + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o" => [ + "providers/common/include/prov/der_ml_dsa.h" + ], + "providers/common/der/libcommon-lib-der_ml_dsa_key.o" => [ + "providers/common/include/prov/der_ml_dsa.h" + ], "providers/common/der/libcommon-lib-der_rsa_gen.o" => [ "providers/common/include/prov/der_rsa.h" ], @@ -7065,6 +8129,12 @@ our %unified_info = ( "providers/common/include/prov/der_digests.h", "providers/common/include/prov/der_rsa.h" ], + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o" => [ + "providers/common/include/prov/der_slh_dsa.h" + ], + "providers/common/der/libcommon-lib-der_slh_dsa_key.o" => [ + "providers/common/include/prov/der_slh_dsa.h" + ], "providers/common/der/libcommon-lib-der_wrap_gen.o" => [ "providers/common/include/prov/der_wrap.h" ], @@ -7104,11 +8174,19 @@ our %unified_info = ( "providers/common/der/ECX.asn1", "providers/common/der/oids_to_c.pm" ], + "providers/common/include/prov/der_ml_dsa.h" => [ + "providers/common/der/ML_DSA.asn1", + "providers/common/der/oids_to_c.pm" + ], "providers/common/include/prov/der_rsa.h" => [ "providers/common/der/NIST.asn1", "providers/common/der/RSA.asn1", "providers/common/der/oids_to_c.pm" ], + "providers/common/include/prov/der_slh_dsa.h" => [ + "providers/common/der/SLH_DSA.asn1", + "providers/common/der/oids_to_c.pm" + ], "providers/common/include/prov/der_sm2.h" => [ "providers/common/der/SM2.asn1", "providers/common/der/oids_to_c.pm" @@ -7141,9 +8219,15 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-eddsa_sig.o" => [ "providers/common/include/prov/der_ecx.h" ], + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o" => [ + "providers/common/include/prov/der_ml_dsa.h" + ], "providers/implementations/signature/libdefault-lib-rsa_sig.o" => [ "providers/common/include/prov/der_rsa.h" ], + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o" => [ + "providers/common/include/prov/der_slh_dsa.h" + ], "providers/implementations/signature/libdefault-lib-sm2_sig.o" => [ "providers/common/include/prov/der_sm2.h" ], @@ -7156,9 +8240,15 @@ our %unified_info = ( "providers/implementations/signature/libfips-lib-eddsa_sig.o" => [ "providers/common/include/prov/der_ecx.h" ], + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o" => [ + "providers/common/include/prov/der_ml_dsa.h" + ], "providers/implementations/signature/libfips-lib-rsa_sig.o" => [ "providers/common/include/prov/der_rsa.h" ], + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o" => [ + "providers/common/include/prov/der_slh_dsa.h" + ], "providers/legacy" => [ "libcrypto", "providers/liblegacy.a" @@ -7236,6 +8326,14 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/bio_addr_test" => [ + "libcrypto", + "test/libtestutil.a" + ], + "test/bio_base64_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/bio_callback_test" => [ "libcrypto", "test/libtestutil.a" @@ -7244,6 +8342,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/bio_dgram_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/bio_enc_test" => [ "libcrypto", "test/libtestutil.a" @@ -7252,6 +8354,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/bio_meth_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/bio_prefix_text" => [ "libcrypto", "test/libtestutil.a" @@ -7264,6 +8370,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/bio_tfo_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/bioprinttest" => [ "libcrypto", "test/libtestutil.a" @@ -7276,6 +8386,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/build_wincrypt_test" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_aes" => [ "libcrypto", "libssl" @@ -7296,6 +8410,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_byteorder" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_camellia" => [ "libcrypto", "libssl" @@ -7328,10 +8446,6 @@ our %unified_info = ( "libcrypto", "libssl" ], - "test/buildtest_c_core_names" => [ - "libcrypto", - "libssl" - ], "test/buildtest_c_core_object" => [ "libcrypto", "libssl" @@ -7364,6 +8478,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_e_ostime" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_ebcdic" => [ "libcrypto", "libssl" @@ -7400,6 +8518,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_hpke" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_http" => [ "libcrypto", "libssl" @@ -7408,6 +8530,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_indicator" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_kdf" => [ "libcrypto", "libssl" @@ -7428,6 +8554,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_ml_kem" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_modes" => [ "libcrypto", "libssl" @@ -7468,6 +8598,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_quic" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_rand" => [ "libcrypto", "libssl" @@ -7524,6 +8658,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_thread" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_tls1" => [ "libcrypto", "libssl" @@ -7544,10 +8682,23 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/byteorder_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], + "test/ca_internals_test" => [ + "libssl", + "test/libtestutil.a" + ], "test/casttest" => [ "libcrypto", "test/libtestutil.a" ], + "test/cert_comp_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], "test/chacha_internal_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -7661,7 +8812,11 @@ our %unified_info = ( "libssl", "test/libtestutil.a" ], - "test/defltfips_test" => [ + "test/decoder_propq_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], + "test/defltfips_test" => [ "libcrypto", "test/libtestutil.a" ], @@ -7717,6 +8872,8 @@ our %unified_info = ( ], "test/endecode_test" => [ "libcrypto.a", + "providers/libcommon.a", + "providers/liblegacy.a", "test/libtestutil.a" ], "test/endecoder_legacy_test" => [ @@ -7760,6 +8917,10 @@ our %unified_info = ( "test/evp_pkey_ctx_new_from_name" => [ "libcrypto" ], + "test/evp_pkey_dhkem_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/evp_pkey_dparams_test" => [ "libcrypto", "test/libtestutil.a" @@ -7768,10 +8929,18 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/evp_skey_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/evp_test" => [ "libcrypto", "test/libtestutil.a" ], + "test/evp_xof_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/exdatatest" => [ "libcrypto", "test/libtestutil.a" @@ -7810,6 +8979,10 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/hpke_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/http_test" => [ "libcrypto", "test/libtestutil.a" @@ -7822,17 +8995,25 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/json_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], "test/keymgmt_internal_test" => [ "libcrypto.a", "test/libtestutil.a" ], "test/lhash_test" => [ - "libcrypto", + "libcrypto.a", "test/libtestutil.a" ], "test/libtestutil.a" => [ "libcrypto" ], + "test/list_test" => [ + "test/libtestutil.a" + ], "test/localetest" => [ "libcrypto", "test/libtestutil.a" @@ -7845,10 +9026,26 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/membio_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/memleaktest" => [ "libcrypto", "test/libtestutil.a" ], + "test/ml_dsa_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], + "test/ml_kem_evp_extra_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], + "test/ml_kem_internal_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/modes_internal_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -7873,6 +9070,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/pairwise_fail_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/param_build_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -7905,6 +9106,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/pkcs12_api_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/pkcs12_format_test" => [ "libcrypto", "test/libtestutil.a" @@ -7925,6 +9130,11 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/priority_queue_test" => [ + "libcrypto", + "libssl.a", + "test/libtestutil.a" + ], "test/property_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -7937,6 +9147,10 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/provider_default_search_path_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/provider_fallback_test" => [ "libcrypto", "test/libtestutil.a" @@ -7961,12 +9175,122 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/quic_ackm_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_cc_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_cfq_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_client_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_fc_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_fifd_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_lcidm_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_multistream_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_newcid_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_qlog_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_radix_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_rcidm_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_record_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_srt_gen_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_srtm_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_stream_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_tserver_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_txp_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_txpim_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_wire_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quicapitest" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quicfaultstest" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], "test/rand_status_test" => [ "libcrypto", "test/libtestutil.a" ], "test/rand_test" => [ - "libcrypto", + "libcrypto.a", "test/libtestutil.a" ], "test/rc2test" => [ @@ -7981,7 +9305,7 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], - "test/rdrand_sanitytest" => [ + "test/rdcpu_sanitytest" => [ "libcrypto.a", "test/libtestutil.a" ], @@ -7990,6 +9314,11 @@ our %unified_info = ( "libssl", "test/libtestutil.a" ], + "test/rpktest" => [ + "libcrypto", + "libssl", + "test/libtestutil.a" + ], "test/rsa_mp_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -8002,10 +9331,18 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], - "test/sanitytest" => [ + "test/rsa_x931_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], + "test/safe_math_test" => [ "libcrypto", "test/libtestutil.a" ], + "test/sanitytest" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/secmemtest" => [ "libcrypto", "test/libtestutil.a" @@ -8023,6 +9360,10 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/slh_dsa_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/sm2_internal_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -8052,6 +9393,11 @@ our %unified_info = ( "libssl", "test/libtestutil.a" ], + "test/ssl_handshake_rtt_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], "test/ssl_old_test" => [ "libcrypto.a", "libssl.a", @@ -8068,8 +9414,8 @@ our %unified_info = ( "test/libtestutil.a" ], "test/sslapitest" => [ - "libcrypto", - "libssl", + "libcrypto.a", + "libssl.a", "test/libtestutil.a" ], "test/sslbuffertest" => [ @@ -8086,6 +9432,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/strtoultest" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/sysdefaulttest" => [ "libcrypto", "libssl", @@ -8095,8 +9445,12 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/threadpool_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/threadstest" => [ - "libcrypto", + "libcrypto.a", "test/libtestutil.a" ], "test/threadstest_fips" => [ @@ -8107,6 +9461,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/time_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/tls13ccstest" => [ "libcrypto", "libssl", @@ -8117,6 +9475,11 @@ our %unified_info = ( "libssl.a", "test/libtestutil.a" ], + "test/tls13groupselection_test" => [ + "libcrypto", + "libssl", + "test/libtestutil.a" + ], "test/trace_api_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -8154,6 +9517,10 @@ our %unified_info = ( "libssl.a", "test/libtestutil.a" ], + "test/x509_acert_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/x509_check_cert_pkey_test" => [ "libcrypto", "test/libtestutil.a" @@ -8166,6 +9533,18 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/x509_load_cert_file_test" => [ + "libcrypto", + "test/libtestutil.a" + ], + "test/x509_req_test" => [ + "libcrypto", + "test/libtestutil.a" + ], + "test/x509_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/x509_time_test" => [ "libcrypto", "test/libtestutil.a" @@ -8180,9 +9559,13 @@ our %unified_info = ( }, "dirinfo" => { "apps" => { + "deps" => [ + "apps/ca_internals_test-bin-ca.o" + ], "products" => { "bin" => [ - "apps/openssl" + "apps/openssl", + "test/ca_internals_test" ], "script" => [ "apps/CA.pl", @@ -8193,6 +9576,14 @@ our %unified_info = ( "apps/lib" => { "deps" => [ "apps/lib/openssl-bin-cmp_mock_srv.o", + "apps/lib/ca_internals_test-bin-app_libctx.o", + "apps/lib/ca_internals_test-bin-app_provider.o", + "apps/lib/ca_internals_test-bin-app_rand.o", + "apps/lib/ca_internals_test-bin-app_x509.o", + "apps/lib/ca_internals_test-bin-apps.o", + "apps/lib/ca_internals_test-bin-apps_ui.o", + "apps/lib/ca_internals_test-bin-engine.o", + "apps/lib/ca_internals_test-bin-fmt.o", "apps/lib/cmp_client_test-bin-cmp_mock_srv.o", "apps/lib/uitest-bin-apps_ui.o", "apps/lib/libapps-lib-app_libctx.o", @@ -8201,12 +9592,14 @@ our %unified_info = ( "apps/lib/libapps-lib-app_rand.o", "apps/lib/libapps-lib-app_x509.o", "apps/lib/libapps-lib-apps.o", + "apps/lib/libapps-lib-apps_opt_printf.o", "apps/lib/libapps-lib-apps_ui.o", "apps/lib/libapps-lib-columns.o", "apps/lib/libapps-lib-engine.o", "apps/lib/libapps-lib-engine_loader.o", "apps/lib/libapps-lib-fmt.o", "apps/lib/libapps-lib-http_server.o", + "apps/lib/libapps-lib-log.o", "apps/lib/libapps-lib-names.o", "apps/lib/libapps-lib-opt.o", "apps/lib/libapps-lib-s_cb.o", @@ -8217,6 +9610,7 @@ our %unified_info = ( "products" => { "bin" => [ "apps/openssl", + "test/ca_internals_test", "test/cmp_client_test", "test/uitest" ], @@ -8228,8 +9622,12 @@ our %unified_info = ( }, "crypto" => { "deps" => [ + "crypto/asn1_time_test-bin-ctype.o", + "crypto/ca_internals_test-bin-ctype.o", + "crypto/packettest-bin-quic_vlint.o", "crypto/libcrypto-lib-asn1_dsa.o", "crypto/libcrypto-lib-bsearch.o", + "crypto/libcrypto-lib-comp_methods.o", "crypto/libcrypto-lib-context.o", "crypto/libcrypto-lib-core_algorithm.o", "crypto/libcrypto-lib-core_fetch.o", @@ -8239,10 +9637,13 @@ our %unified_info = ( "crypto/libcrypto-lib-cryptlib.o", "crypto/libcrypto-lib-ctype.o", "crypto/libcrypto-lib-cversion.o", + "crypto/libcrypto-lib-defaults.o", "crypto/libcrypto-lib-der_writer.o", + "crypto/libcrypto-lib-deterministic_nonce.o", "crypto/libcrypto-lib-ebcdic.o", "crypto/libcrypto-lib-ex_data.o", "crypto/libcrypto-lib-getenv.o", + "crypto/libcrypto-lib-indicator_core.o", "crypto/libcrypto-lib-info.o", "crypto/libcrypto-lib-init.o", "crypto/libcrypto-lib-initthread.o", @@ -8259,6 +9660,7 @@ our %unified_info = ( "crypto/libcrypto-lib-params.o", "crypto/libcrypto-lib-params_dup.o", "crypto/libcrypto-lib-params_from_text.o", + "crypto/libcrypto-lib-params_idx.o", "crypto/libcrypto-lib-passphrase.o", "crypto/libcrypto-lib-provider.o", "crypto/libcrypto-lib-provider_child.o", @@ -8266,12 +9668,16 @@ our %unified_info = ( "crypto/libcrypto-lib-provider_core.o", "crypto/libcrypto-lib-provider_predefined.o", "crypto/libcrypto-lib-punycode.o", + "crypto/libcrypto-lib-quic_vlint.o", "crypto/libcrypto-lib-self_test_core.o", + "crypto/libcrypto-lib-sleep.o", "crypto/libcrypto-lib-sparse_array.o", + "crypto/libcrypto-lib-ssl_err.o", "crypto/libcrypto-lib-threads_lib.o", "crypto/libcrypto-lib-threads_none.o", "crypto/libcrypto-lib-threads_pthread.o", "crypto/libcrypto-lib-threads_win.o", + "crypto/libcrypto-lib-time.o", "crypto/libcrypto-lib-trace.o", "crypto/libcrypto-lib-uid.o", "crypto/libcrypto-lib-x86cpuid.o", @@ -8294,6 +9700,7 @@ our %unified_info = ( "crypto/libfips-lib-params.o", "crypto/libfips-lib-params_dup.o", "crypto/libfips-lib-params_from_text.o", + "crypto/libfips-lib-params_idx.o", "crypto/libfips-lib-provider_core.o", "crypto/libfips-lib-provider_predefined.o", "crypto/libfips-lib-self_test_core.o", @@ -8302,9 +9709,15 @@ our %unified_info = ( "crypto/libfips-lib-threads_none.o", "crypto/libfips-lib-threads_pthread.o", "crypto/libfips-lib-threads_win.o", + "crypto/libfips-lib-time.o", "crypto/libfips-lib-x86cpuid.o" ], "products" => { + "bin" => [ + "test/asn1_time_test", + "test/ca_internals_test", + "test/packettest" + ], "lib" => [ "libcrypto", "providers/libfips.a" @@ -8347,6 +9760,8 @@ our %unified_info = ( }, "crypto/asn1" => { "deps" => [ + "crypto/asn1/asn1_time_test-bin-a_time.o", + "crypto/asn1/ca_internals_test-bin-a_time.o", "crypto/asn1/libcrypto-lib-a_bitstr.o", "crypto/asn1/libcrypto-lib-a_d2i_fp.o", "crypto/asn1/libcrypto-lib-a_digest.o", @@ -8413,6 +9828,10 @@ our %unified_info = ( "crypto/asn1/libcrypto-lib-x_val.o" ], "products" => { + "bin" => [ + "test/asn1_time_test", + "test/ca_internals_test" + ], "lib" => [ "libcrypto" ] @@ -8478,6 +9897,7 @@ our %unified_info = ( "crypto/bio/libcrypto-lib-bss_conn.o", "crypto/bio/libcrypto-lib-bss_core.o", "crypto/bio/libcrypto-lib-bss_dgram.o", + "crypto/bio/libcrypto-lib-bss_dgram_pair.o", "crypto/bio/libcrypto-lib-bss_fd.o", "crypto/bio/libcrypto-lib-bss_file.o", "crypto/bio/libcrypto-lib-bss_log.o", @@ -8638,6 +10058,7 @@ our %unified_info = ( "crypto/cmp/libcrypto-lib-cmp_client.o", "crypto/cmp/libcrypto-lib-cmp_ctx.o", "crypto/cmp/libcrypto-lib-cmp_err.o", + "crypto/cmp/libcrypto-lib-cmp_genm.o", "crypto/cmp/libcrypto-lib-cmp_hdr.o", "crypto/cmp/libcrypto-lib-cmp_http.o", "crypto/cmp/libcrypto-lib-cmp_msg.o", @@ -9009,7 +10430,9 @@ our %unified_info = ( "crypto/err/libcrypto-lib-err_all.o", "crypto/err/libcrypto-lib-err_all_legacy.o", "crypto/err/libcrypto-lib-err_blocks.o", - "crypto/err/libcrypto-lib-err_prn.o" + "crypto/err/libcrypto-lib-err_mark.o", + "crypto/err/libcrypto-lib-err_prn.o", + "crypto/err/libcrypto-lib-err_save.o" ], "products" => { "lib" => [ @@ -9110,7 +10533,9 @@ our %unified_info = ( "crypto/evp/libcrypto-lib-pmeth_check.o", "crypto/evp/libcrypto-lib-pmeth_gn.o", "crypto/evp/libcrypto-lib-pmeth_lib.o", + "crypto/evp/libcrypto-lib-s_lib.o", "crypto/evp/libcrypto-lib-signature.o", + "crypto/evp/libcrypto-lib-skeymgmt_meth.o", "crypto/evp/libfips-lib-asymcipher.o", "crypto/evp/libfips-lib-dh_support.o", "crypto/evp/libfips-lib-digest.o", @@ -9126,14 +10551,15 @@ our %unified_info = ( "crypto/evp/libfips-lib-kem.o", "crypto/evp/libfips-lib-keymgmt_lib.o", "crypto/evp/libfips-lib-keymgmt_meth.o", - "crypto/evp/libfips-lib-m_sigver.o", "crypto/evp/libfips-lib-mac_lib.o", "crypto/evp/libfips-lib-mac_meth.o", "crypto/evp/libfips-lib-p_lib.o", "crypto/evp/libfips-lib-pmeth_check.o", "crypto/evp/libfips-lib-pmeth_gn.o", "crypto/evp/libfips-lib-pmeth_lib.o", - "crypto/evp/libfips-lib-signature.o" + "crypto/evp/libfips-lib-s_lib.o", + "crypto/evp/libfips-lib-signature.o", + "crypto/evp/libfips-lib-skeymgmt_meth.o" ], "products" => { "lib" => [ @@ -9166,6 +10592,20 @@ our %unified_info = ( ] } }, + "crypto/hashtable" => { + "deps" => [ + "crypto/hashtable/libcrypto-lib-hashfunc.o", + "crypto/hashtable/libcrypto-lib-hashtable.o", + "crypto/hashtable/libfips-lib-hashfunc.o", + "crypto/hashtable/libfips-lib-hashtable.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, "crypto/hmac" => { "deps" => [ "crypto/hmac/libcrypto-lib-hmac.o", @@ -9178,6 +10618,17 @@ our %unified_info = ( ] } }, + "crypto/hpke" => { + "deps" => [ + "crypto/hpke/libcrypto-lib-hpke.o", + "crypto/hpke/libcrypto-lib-hpke_util.o" + ], + "products" => { + "lib" => [ + "libcrypto" + ] + } + }, "crypto/http" => { "deps" => [ "crypto/http/libcrypto-lib-http_client.o", @@ -9262,6 +10713,44 @@ our %unified_info = ( ] } }, + "crypto/ml_dsa" => { + "deps" => [ + "crypto/ml_dsa/libcrypto-lib-ml_dsa_encoders.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key_compress.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_matrix.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_ntt.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_params.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sample.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sign.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_encoders.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_key.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_key_compress.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_matrix.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_ntt.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_params.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_sample.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_sign.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, + "crypto/ml_kem" => { + "deps" => [ + "crypto/ml_kem/libcrypto-lib-ml_kem.o", + "crypto/ml_kem/libfips-lib-ml_kem.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, "crypto/modes" => { "deps" => [ "crypto/modes/libcrypto-lib-cbc128.o", @@ -9276,6 +10765,7 @@ our %unified_info = ( "crypto/modes/libcrypto-lib-siv128.o", "crypto/modes/libcrypto-lib-wrap128.o", "crypto/modes/libcrypto-lib-xts128.o", + "crypto/modes/libcrypto-lib-xts128gb.o", "crypto/modes/libfips-lib-cbc128.o", "crypto/modes/libfips-lib-ccm128.o", "crypto/modes/libfips-lib-cfb128.o", @@ -9284,7 +10774,8 @@ our %unified_info = ( "crypto/modes/libfips-lib-ghash-x86.o", "crypto/modes/libfips-lib-ofb128.o", "crypto/modes/libfips-lib-wrap128.o", - "crypto/modes/libfips-lib-xts128.o" + "crypto/modes/libfips-lib-xts128.o", + "crypto/modes/libfips-lib-xts128gb.o" ], "products" => { "lib" => [ @@ -9428,6 +10919,7 @@ our %unified_info = ( "crypto/rand/libcrypto-lib-rand_lib.o", "crypto/rand/libcrypto-lib-rand_meth.o", "crypto/rand/libcrypto-lib-rand_pool.o", + "crypto/rand/libcrypto-lib-rand_uniform.o", "crypto/rand/libcrypto-lib-randfile.o", "crypto/rand/libfips-lib-rand_lib.o" ], @@ -9578,6 +11070,36 @@ our %unified_info = ( ] } }, + "crypto/slh_dsa" => { + "deps" => [ + "crypto/slh_dsa/libcrypto-lib-slh_adrs.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa_hash_ctx.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa_key.o", + "crypto/slh_dsa/libcrypto-lib-slh_fors.o", + "crypto/slh_dsa/libcrypto-lib-slh_hash.o", + "crypto/slh_dsa/libcrypto-lib-slh_hypertree.o", + "crypto/slh_dsa/libcrypto-lib-slh_params.o", + "crypto/slh_dsa/libcrypto-lib-slh_wots.o", + "crypto/slh_dsa/libcrypto-lib-slh_xmss.o", + "crypto/slh_dsa/libfips-lib-slh_adrs.o", + "crypto/slh_dsa/libfips-lib-slh_dsa.o", + "crypto/slh_dsa/libfips-lib-slh_dsa_hash_ctx.o", + "crypto/slh_dsa/libfips-lib-slh_dsa_key.o", + "crypto/slh_dsa/libfips-lib-slh_fors.o", + "crypto/slh_dsa/libfips-lib-slh_hash.o", + "crypto/slh_dsa/libfips-lib-slh_hypertree.o", + "crypto/slh_dsa/libfips-lib-slh_params.o", + "crypto/slh_dsa/libfips-lib-slh_wots.o", + "crypto/slh_dsa/libfips-lib-slh_xmss.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, "crypto/sm2" => { "deps" => [ "crypto/sm2/libcrypto-lib-sm2_crypt.o", @@ -9651,6 +11173,38 @@ our %unified_info = ( ] } }, + "crypto/thread" => { + "deps" => [ + "crypto/thread/libcrypto-lib-api.o", + "crypto/thread/libcrypto-lib-arch.o", + "crypto/thread/libcrypto-lib-internal.o", + "crypto/thread/libfips-lib-api.o", + "crypto/thread/libfips-lib-arch.o", + "crypto/thread/libfips-lib-internal.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, + "crypto/thread/arch" => { + "deps" => [ + "crypto/thread/arch/libcrypto-lib-thread_none.o", + "crypto/thread/arch/libcrypto-lib-thread_posix.o", + "crypto/thread/arch/libcrypto-lib-thread_win.o", + "crypto/thread/arch/libfips-lib-thread_none.o", + "crypto/thread/arch/libfips-lib-thread_posix.o", + "crypto/thread/arch/libfips-lib-thread_win.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, "crypto/ts" => { "deps" => [ "crypto/ts/libcrypto-lib-ts_asn1.o", @@ -9718,14 +11272,22 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-pcy_map.o", "crypto/x509/libcrypto-lib-pcy_node.o", "crypto/x509/libcrypto-lib-pcy_tree.o", + "crypto/x509/libcrypto-lib-t_acert.o", "crypto/x509/libcrypto-lib-t_crl.o", "crypto/x509/libcrypto-lib-t_req.o", "crypto/x509/libcrypto-lib-t_x509.o", + "crypto/x509/libcrypto-lib-v3_aaa.o", + "crypto/x509/libcrypto-lib-v3_ac_tgt.o", "crypto/x509/libcrypto-lib-v3_addr.o", "crypto/x509/libcrypto-lib-v3_admis.o", "crypto/x509/libcrypto-lib-v3_akeya.o", "crypto/x509/libcrypto-lib-v3_akid.o", "crypto/x509/libcrypto-lib-v3_asid.o", + "crypto/x509/libcrypto-lib-v3_attrdesc.o", + "crypto/x509/libcrypto-lib-v3_attrmap.o", + "crypto/x509/libcrypto-lib-v3_audit_id.o", + "crypto/x509/libcrypto-lib-v3_authattid.o", + "crypto/x509/libcrypto-lib-v3_battcons.o", "crypto/x509/libcrypto-lib-v3_bcons.o", "crypto/x509/libcrypto-lib-v3_bitst.o", "crypto/x509/libcrypto-lib-v3_conf.o", @@ -9734,12 +11296,17 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_enum.o", "crypto/x509/libcrypto-lib-v3_extku.o", "crypto/x509/libcrypto-lib-v3_genn.o", + "crypto/x509/libcrypto-lib-v3_group_ac.o", "crypto/x509/libcrypto-lib-v3_ia5.o", + "crypto/x509/libcrypto-lib-v3_ind_iss.o", "crypto/x509/libcrypto-lib-v3_info.o", "crypto/x509/libcrypto-lib-v3_int.o", + "crypto/x509/libcrypto-lib-v3_iobo.o", "crypto/x509/libcrypto-lib-v3_ist.o", "crypto/x509/libcrypto-lib-v3_lib.o", "crypto/x509/libcrypto-lib-v3_ncons.o", + "crypto/x509/libcrypto-lib-v3_no_ass.o", + "crypto/x509/libcrypto-lib-v3_no_rev_avail.o", "crypto/x509/libcrypto-lib-v3_pci.o", "crypto/x509/libcrypto-lib-v3_pcia.o", "crypto/x509/libcrypto-lib-v3_pcons.o", @@ -9747,13 +11314,20 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_pmaps.o", "crypto/x509/libcrypto-lib-v3_prn.o", "crypto/x509/libcrypto-lib-v3_purp.o", + "crypto/x509/libcrypto-lib-v3_rolespec.o", "crypto/x509/libcrypto-lib-v3_san.o", + "crypto/x509/libcrypto-lib-v3_sda.o", + "crypto/x509/libcrypto-lib-v3_single_use.o", "crypto/x509/libcrypto-lib-v3_skid.o", + "crypto/x509/libcrypto-lib-v3_soa_id.o", "crypto/x509/libcrypto-lib-v3_sxnet.o", + "crypto/x509/libcrypto-lib-v3_timespec.o", "crypto/x509/libcrypto-lib-v3_tlsf.o", + "crypto/x509/libcrypto-lib-v3_usernotice.o", "crypto/x509/libcrypto-lib-v3_utf8.o", "crypto/x509/libcrypto-lib-v3_utl.o", "crypto/x509/libcrypto-lib-v3err.o", + "crypto/x509/libcrypto-lib-x509_acert.o", "crypto/x509/libcrypto-lib-x509_att.o", "crypto/x509/libcrypto-lib-x509_cmp.o", "crypto/x509/libcrypto-lib-x509_d2.o", @@ -9771,6 +11345,7 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x509_v3.o", "crypto/x509/libcrypto-lib-x509_vfy.o", "crypto/x509/libcrypto-lib-x509_vpm.o", + "crypto/x509/libcrypto-lib-x509aset.o", "crypto/x509/libcrypto-lib-x509cset.o", "crypto/x509/libcrypto-lib-x509name.o", "crypto/x509/libcrypto-lib-x509rset.o", @@ -9780,6 +11355,7 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x_attrib.o", "crypto/x509/libcrypto-lib-x_crl.o", "crypto/x509/libcrypto-lib-x_exten.o", + "crypto/x509/libcrypto-lib-x_ietfatt.o", "crypto/x509/libcrypto-lib-x_name.o", "crypto/x509/libcrypto-lib-x_pubkey.o", "crypto/x509/libcrypto-lib-x_req.o", @@ -9808,6 +11384,7 @@ our %unified_info = ( "fuzz" => { "products" => { "bin" => [ + "fuzz/acert-test", "fuzz/asn1-test", "fuzz/asn1parse-test", "fuzz/bignum-test", @@ -9818,13 +11395,31 @@ our %unified_info = ( "fuzz/conf-test", "fuzz/crl-test", "fuzz/ct-test", + "fuzz/decoder-test", + "fuzz/dtlsclient-test", + "fuzz/dtlsserver-test", + "fuzz/hashtable-test", + "fuzz/ml-dsa-test", + "fuzz/ml-kem-test", + "fuzz/pem-test", + "fuzz/provider-test", + "fuzz/punycode-test", + "fuzz/quic-client-test", + "fuzz/quic-lcidm-test", + "fuzz/quic-rcidm-test", + "fuzz/quic-server-test", + "fuzz/quic-srtm-test", "fuzz/server-test", + "fuzz/slh-dsa-test", + "fuzz/smime-test", + "fuzz/v3name-test", "fuzz/x509-test" ] } }, "providers" => { "deps" => [ + "providers/endecode_test-bin-legacyprov.o", "providers/evp_extra_test-bin-legacyprov.o", "providers/libcrypto-lib-baseprov.o", "providers/libcrypto-lib-defltprov.o", @@ -9834,6 +11429,7 @@ our %unified_info = ( ], "products" => { "bin" => [ + "test/endecode_test", "test/evp_extra_test" ], "dso" => [ @@ -9885,8 +11481,12 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ec_sig.o", "providers/common/der/libcommon-lib-der_ecx_gen.o", "providers/common/der/libcommon-lib-der_ecx_key.o", + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o", + "providers/common/der/libcommon-lib-der_ml_dsa_key.o", "providers/common/der/libcommon-lib-der_rsa_gen.o", "providers/common/der/libcommon-lib-der_rsa_key.o", + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o", + "providers/common/der/libcommon-lib-der_slh_dsa_key.o", "providers/common/der/libcommon-lib-der_wrap_gen.o", "providers/common/der/libdefault-lib-der_rsa_sig.o", "providers/common/der/libdefault-lib-der_sm2_gen.o", @@ -9905,6 +11505,7 @@ our %unified_info = ( "providers/fips" => { "deps" => [ "providers/fips/fips-dso-fips_entry.o", + "providers/fips/libfips-lib-fipsindicator.o", "providers/fips/libfips-lib-fipsprov.o", "providers/fips/libfips-lib-self_test.o", "providers/fips/libfips-lib-self_test_kats.o" @@ -9948,6 +11549,9 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_aes_ccm_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_polyval.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_ocb.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_ocb_hw.o", @@ -9972,7 +11576,13 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_cts.o", "providers/implementations/ciphers/libdefault-lib-cipher_null.o", "providers/implementations/ciphers/libdefault-lib-cipher_sm4.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_sm4_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes_common.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes_default.o", @@ -10069,7 +11679,10 @@ our %unified_info = ( "providers/implementations/encode_decode/libdefault-lib-encode_key2blob.o", "providers/implementations/encode_decode/libdefault-lib-encode_key2ms.o", "providers/implementations/encode_decode/libdefault-lib-encode_key2text.o", - "providers/implementations/encode_decode/libdefault-lib-endecoder_common.o" + "providers/implementations/encode_decode/libdefault-lib-endecoder_common.o", + "providers/implementations/encode_decode/libdefault-lib-ml_common_codecs.o", + "providers/implementations/encode_decode/libdefault-lib-ml_dsa_codecs.o", + "providers/implementations/encode_decode/libdefault-lib-ml_kem_codecs.o" ], "products" => { "lib" => [ @@ -10097,7 +11710,9 @@ our %unified_info = ( }, "providers/implementations/kdfs" => { "deps" => [ + "providers/implementations/kdfs/libdefault-lib-argon2.o", "providers/implementations/kdfs/libdefault-lib-hkdf.o", + "providers/implementations/kdfs/libdefault-lib-hmacdrbg_kdf.o", "providers/implementations/kdfs/libdefault-lib-kbkdf.o", "providers/implementations/kdfs/libdefault-lib-krb5kdf.o", "providers/implementations/kdfs/libdefault-lib-pbkdf2.o", @@ -10116,7 +11731,8 @@ our %unified_info = ( "providers/implementations/kdfs/libfips-lib-sskdf.o", "providers/implementations/kdfs/libfips-lib-tls1_prf.o", "providers/implementations/kdfs/libfips-lib-x942kdf.o", - "providers/implementations/kdfs/liblegacy-lib-pbkdf1.o" + "providers/implementations/kdfs/liblegacy-lib-pbkdf1.o", + "providers/implementations/kdfs/liblegacy-lib-pvkkdf.o" ], "products" => { "lib" => [ @@ -10128,13 +11744,22 @@ our %unified_info = ( }, "providers/implementations/kem" => { "deps" => [ + "providers/implementations/kem/libdefault-lib-ec_kem.o", + "providers/implementations/kem/libdefault-lib-ecx_kem.o", + "providers/implementations/kem/libdefault-lib-kem_util.o", + "providers/implementations/kem/libdefault-lib-ml_kem_kem.o", + "providers/implementations/kem/libdefault-lib-mlx_kem.o", "providers/implementations/kem/libdefault-lib-rsa_kem.o", - "providers/implementations/kem/libfips-lib-rsa_kem.o" + "providers/implementations/kem/libfips-lib-ml_kem_kem.o", + "providers/implementations/kem/libfips-lib-mlx_kem.o", + "providers/implementations/kem/libfips-lib-rsa_kem.o", + "providers/implementations/kem/libtemplate-lib-template_kem.o" ], "products" => { "lib" => [ "providers/libdefault.a", - "providers/libfips.a" + "providers/libfips.a", + "providers/libtemplate.a" ] } }, @@ -10146,19 +11771,29 @@ our %unified_info = ( "providers/implementations/keymgmt/libdefault-lib-ecx_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-kdf_legacy_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-mac_legacy_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-ml_dsa_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-ml_kem_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-mlx_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-rsa_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-slh_dsa_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-dh_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-dsa_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-ec_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-ecx_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-kdf_legacy_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-mac_legacy_kmgmt.o", - "providers/implementations/keymgmt/libfips-lib-rsa_kmgmt.o" + "providers/implementations/keymgmt/libfips-lib-ml_dsa_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-ml_kem_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-mlx_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-rsa_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-slh_dsa_kmgmt.o", + "providers/implementations/keymgmt/libtemplate-lib-template_kmgmt.o" ], "products" => { "lib" => [ "providers/libdefault.a", - "providers/libfips.a" + "providers/libfips.a", + "providers/libtemplate.a" ] } }, @@ -10186,18 +11821,18 @@ our %unified_info = ( }, "providers/implementations/rands" => { "deps" => [ - "providers/implementations/rands/libdefault-lib-crngt.o", "providers/implementations/rands/libdefault-lib-drbg.o", "providers/implementations/rands/libdefault-lib-drbg_ctr.o", "providers/implementations/rands/libdefault-lib-drbg_hash.o", "providers/implementations/rands/libdefault-lib-drbg_hmac.o", "providers/implementations/rands/libdefault-lib-seed_src.o", + "providers/implementations/rands/libdefault-lib-seed_src_jitter.o", "providers/implementations/rands/libdefault-lib-test_rng.o", - "providers/implementations/rands/libfips-lib-crngt.o", "providers/implementations/rands/libfips-lib-drbg.o", "providers/implementations/rands/libfips-lib-drbg_ctr.o", "providers/implementations/rands/libfips-lib-drbg_hash.o", "providers/implementations/rands/libfips-lib-drbg_hmac.o", + "providers/implementations/rands/libfips-lib-fips_crng_test.o", "providers/implementations/rands/libfips-lib-test_rng.o" ], "products" => { @@ -10226,13 +11861,31 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-ecdsa_sig.o", "providers/implementations/signature/libdefault-lib-eddsa_sig.o", "providers/implementations/signature/libdefault-lib-mac_legacy_sig.o", + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o", "providers/implementations/signature/libdefault-lib-rsa_sig.o", + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o", "providers/implementations/signature/libdefault-lib-sm2_sig.o", "providers/implementations/signature/libfips-lib-dsa_sig.o", "providers/implementations/signature/libfips-lib-ecdsa_sig.o", "providers/implementations/signature/libfips-lib-eddsa_sig.o", "providers/implementations/signature/libfips-lib-mac_legacy_sig.o", - "providers/implementations/signature/libfips-lib-rsa_sig.o" + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o", + "providers/implementations/signature/libfips-lib-rsa_sig.o", + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o" + ], + "products" => { + "lib" => [ + "providers/libdefault.a", + "providers/libfips.a" + ] + } + }, + "providers/implementations/skeymgmt" => { + "deps" => [ + "providers/implementations/skeymgmt/libdefault-lib-aes_skmgmt.o", + "providers/implementations/skeymgmt/libdefault-lib-generic.o", + "providers/implementations/skeymgmt/libfips-lib-aes_skmgmt.o", + "providers/implementations/skeymgmt/libfips-lib-generic.o" ], "products" => { "lib" => [ @@ -10260,14 +11913,15 @@ our %unified_info = ( "ssl/libssl-lib-d1_srtp.o", "ssl/libssl-lib-methods.o", "ssl/libssl-lib-pqueue.o", + "ssl/libssl-lib-priority_queue.o", "ssl/libssl-lib-s3_enc.o", "ssl/libssl-lib-s3_lib.o", "ssl/libssl-lib-s3_msg.o", "ssl/libssl-lib-ssl_asn1.o", "ssl/libssl-lib-ssl_cert.o", + "ssl/libssl-lib-ssl_cert_comp.o", "ssl/libssl-lib-ssl_ciph.o", "ssl/libssl-lib-ssl_conf.o", - "ssl/libssl-lib-ssl_err.o", "ssl/libssl-lib-ssl_err_legacy.o", "ssl/libssl-lib-ssl_init.o", "ssl/libssl-lib-ssl_lib.o", @@ -10283,32 +11937,107 @@ our %unified_info = ( "ssl/libssl-lib-t1_trce.o", "ssl/libssl-lib-tls13_enc.o", "ssl/libssl-lib-tls_depr.o", - "ssl/libssl-lib-tls_srp.o", - "ssl/libdefault-lib-s3_cbc.o", - "ssl/libfips-lib-s3_cbc.o" + "ssl/libssl-lib-tls_srp.o" ], "products" => { "lib" => [ - "libssl", - "providers/libdefault.a", - "providers/libfips.a" + "libssl" + ] + } + }, + "ssl/quic" => { + "deps" => [ + "ssl/quic/libssl-lib-cc_newreno.o", + "ssl/quic/libssl-lib-json_enc.o", + "ssl/quic/libssl-lib-qlog.o", + "ssl/quic/libssl-lib-qlog_event_helpers.o", + "ssl/quic/libssl-lib-quic_ackm.o", + "ssl/quic/libssl-lib-quic_cfq.o", + "ssl/quic/libssl-lib-quic_channel.o", + "ssl/quic/libssl-lib-quic_demux.o", + "ssl/quic/libssl-lib-quic_engine.o", + "ssl/quic/libssl-lib-quic_fc.o", + "ssl/quic/libssl-lib-quic_fifd.o", + "ssl/quic/libssl-lib-quic_impl.o", + "ssl/quic/libssl-lib-quic_lcidm.o", + "ssl/quic/libssl-lib-quic_method.o", + "ssl/quic/libssl-lib-quic_obj.o", + "ssl/quic/libssl-lib-quic_port.o", + "ssl/quic/libssl-lib-quic_rcidm.o", + "ssl/quic/libssl-lib-quic_reactor.o", + "ssl/quic/libssl-lib-quic_reactor_wait_ctx.o", + "ssl/quic/libssl-lib-quic_record_rx.o", + "ssl/quic/libssl-lib-quic_record_shared.o", + "ssl/quic/libssl-lib-quic_record_tx.o", + "ssl/quic/libssl-lib-quic_record_util.o", + "ssl/quic/libssl-lib-quic_rstream.o", + "ssl/quic/libssl-lib-quic_rx_depack.o", + "ssl/quic/libssl-lib-quic_sf_list.o", + "ssl/quic/libssl-lib-quic_srt_gen.o", + "ssl/quic/libssl-lib-quic_srtm.o", + "ssl/quic/libssl-lib-quic_sstream.o", + "ssl/quic/libssl-lib-quic_statm.o", + "ssl/quic/libssl-lib-quic_stream_map.o", + "ssl/quic/libssl-lib-quic_thread_assist.o", + "ssl/quic/libssl-lib-quic_tls.o", + "ssl/quic/libssl-lib-quic_tls_api.o", + "ssl/quic/libssl-lib-quic_trace.o", + "ssl/quic/libssl-lib-quic_tserver.o", + "ssl/quic/libssl-lib-quic_txp.o", + "ssl/quic/libssl-lib-quic_txpim.o", + "ssl/quic/libssl-lib-quic_types.o", + "ssl/quic/libssl-lib-quic_wire.o", + "ssl/quic/libssl-lib-quic_wire_pkt.o", + "ssl/quic/libssl-lib-uint_set.o" + ], + "products" => { + "lib" => [ + "libssl" ] } }, "ssl/record" => { "deps" => [ - "ssl/record/libssl-lib-dtls1_bitmap.o", "ssl/record/libssl-lib-rec_layer_d1.o", - "ssl/record/libssl-lib-rec_layer_s3.o", - "ssl/record/libssl-lib-ssl3_buffer.o", - "ssl/record/libssl-lib-ssl3_record.o", - "ssl/record/libssl-lib-ssl3_record_tls13.o", - "ssl/record/libcommon-lib-tls_pad.o" + "ssl/record/libssl-lib-rec_layer_s3.o" + ], + "products" => { + "lib" => [ + "libssl" + ] + } + }, + "ssl/record/methods" => { + "deps" => [ + "ssl/record/methods/libssl-lib-dtls_meth.o", + "ssl/record/methods/libssl-lib-ssl3_meth.o", + "ssl/record/methods/libssl-lib-tls13_meth.o", + "ssl/record/methods/libssl-lib-tls1_meth.o", + "ssl/record/methods/libssl-lib-tls_common.o", + "ssl/record/methods/libssl-lib-tls_multib.o", + "ssl/record/methods/libssl-lib-tlsany_meth.o", + "ssl/record/methods/libcommon-lib-tls_pad.o", + "ssl/record/methods/libdefault-lib-ssl3_cbc.o", + "ssl/record/methods/libfips-lib-ssl3_cbc.o" ], "products" => { "lib" => [ "libssl", - "providers/libcommon.a" + "providers/libcommon.a", + "providers/libdefault.a", + "providers/libfips.a" + ] + } + }, + "ssl/rio" => { + "deps" => [ + "ssl/rio/libssl-lib-poll_builder.o", + "ssl/rio/libssl-lib-poll_immediate.o", + "ssl/rio/libssl-lib-rio_notifier.o" + ], + "products" => { + "lib" => [ + "libssl" ] } }, @@ -10346,9 +12075,40 @@ our %unified_info = ( "test/helpers/dtlstest-bin-ssltestlib.o", "test/helpers/endecode_test-bin-predefined_dhparams.o", "test/helpers/fatalerrtest-bin-ssltestlib.o", + "test/helpers/json_test-bin-noisydgrambio.o", + "test/helpers/json_test-bin-pktsplitbio.o", + "test/helpers/json_test-bin-quictestlib.o", + "test/helpers/json_test-bin-ssltestlib.o", + "test/helpers/pkcs12_api_test-bin-pkcs12.o", "test/helpers/pkcs12_format_test-bin-pkcs12.o", + "test/helpers/quic_multistream_test-bin-noisydgrambio.o", + "test/helpers/quic_multistream_test-bin-pktsplitbio.o", + "test/helpers/quic_multistream_test-bin-quictestlib.o", + "test/helpers/quic_multistream_test-bin-ssltestlib.o", + "test/helpers/quic_newcid_test-bin-noisydgrambio.o", + "test/helpers/quic_newcid_test-bin-pktsplitbio.o", + "test/helpers/quic_newcid_test-bin-quictestlib.o", + "test/helpers/quic_newcid_test-bin-ssltestlib.o", + "test/helpers/quic_radix_test-bin-noisydgrambio.o", + "test/helpers/quic_radix_test-bin-pktsplitbio.o", + "test/helpers/quic_radix_test-bin-quictestlib.o", + "test/helpers/quic_radix_test-bin-ssltestlib.o", + "test/helpers/quic_srt_gen_test-bin-noisydgrambio.o", + "test/helpers/quic_srt_gen_test-bin-pktsplitbio.o", + "test/helpers/quic_srt_gen_test-bin-quictestlib.o", + "test/helpers/quic_srt_gen_test-bin-ssltestlib.o", + "test/helpers/quicapitest-bin-noisydgrambio.o", + "test/helpers/quicapitest-bin-pktsplitbio.o", + "test/helpers/quicapitest-bin-quictestlib.o", + "test/helpers/quicapitest-bin-ssltestlib.o", + "test/helpers/quicfaultstest-bin-noisydgrambio.o", + "test/helpers/quicfaultstest-bin-pktsplitbio.o", + "test/helpers/quicfaultstest-bin-quictestlib.o", + "test/helpers/quicfaultstest-bin-ssltestlib.o", "test/helpers/recordlentest-bin-ssltestlib.o", + "test/helpers/rpktest-bin-ssltestlib.o", "test/helpers/servername_test-bin-ssltestlib.o", + "test/helpers/ssl_handshake_rtt_test-bin-ssltestlib.o", "test/helpers/ssl_old_test-bin-predefined_dhparams.o", "test/helpers/ssl_test-bin-handshake.o", "test/helpers/ssl_test-bin-handshake_srp.o", @@ -10357,7 +12117,8 @@ our %unified_info = ( "test/helpers/sslapitest-bin-ssltestlib.o", "test/helpers/sslbuffertest-bin-ssltestlib.o", "test/helpers/sslcorrupttest-bin-ssltestlib.o", - "test/helpers/tls13ccstest-bin-ssltestlib.o" + "test/helpers/tls13ccstest-bin-ssltestlib.o", + "test/helpers/tls13groupselection_test-bin-ssltestlib.o" ], "products" => { "bin" => [ @@ -10375,16 +12136,37 @@ our %unified_info = ( "test/dtlstest", "test/endecode_test", "test/fatalerrtest", + "test/json_test", + "test/pkcs12_api_test", "test/pkcs12_format_test", + "test/quic_multistream_test", + "test/quic_newcid_test", + "test/quic_radix_test", + "test/quic_srt_gen_test", + "test/quicapitest", + "test/quicfaultstest", "test/recordlentest", + "test/rpktest", "test/servername_test", + "test/ssl_handshake_rtt_test", "test/ssl_old_test", "test/ssl_test", "test/ssl_test_ctx_test", "test/sslapitest", "test/sslbuffertest", "test/sslcorrupttest", - "test/tls13ccstest" + "test/tls13ccstest", + "test/tls13groupselection_test" + ] + } + }, + "test/radix" => { + "deps" => [ + "test/radix/quic_radix_test-bin-quic_radix.o" + ], + "products" => { + "bin" => [ + "test/quic_radix_test" ] } }, @@ -10396,6 +12178,7 @@ our %unified_info = ( "test/testutil/libtestutil-lib-driver.o", "test/testutil/libtestutil-lib-fake_random.o", "test/testutil/libtestutil-lib-format_output.o", + "test/testutil/libtestutil-lib-helper.o", "test/testutil/libtestutil-lib-load.o", "test/testutil/libtestutil-lib-main.o", "test/testutil/libtestutil-lib-options.o", @@ -10431,6 +12214,12 @@ our %unified_info = ( } }, "generate" => { + "OpenSSLConfig.cmake" => [ + "exporters/cmake/OpenSSLConfig.cmake.in" + ], + "OpenSSLConfigVersion.cmake" => [ + "exporters/cmake/OpenSSLConfigVersion.cmake.in" + ], "apps/progs.c" => [ "apps/progs.pl", "\"-C\"", @@ -10441,6 +12230,19 @@ our %unified_info = ( "\"-H\"", "\$(APPS_OPENSSL)" ], + "builddata.pm" => [ + "util/mkinstallvars.pl", + "PREFIX=.", + "BINDIR=apps", + "APPLINKDIR=ms", + "LIBDIR=", + "INCLUDEDIR=include", + "\"INCLUDEDIR=\$(SRCDIR)/include\"", + "ENGINESDIR=engines", + "MODULESDIR=providers", + "\"VERSION=\$(VERSION)\"", + "\"LDLIBS=\$(LIB_EX_LIBS)\"" + ], "crypto/aes/aes-586.S" => [ "crypto/aes/asm/aes-586.pl" ], @@ -10462,6 +12264,24 @@ our %unified_info = ( "crypto/aes/aes-ppc.s" => [ "crypto/aes/asm/aes-ppc.pl" ], + "crypto/aes/aes-riscv32-zkn.s" => [ + "crypto/aes/asm/aes-riscv32-zkn.pl" + ], + "crypto/aes/aes-riscv64-zkn.s" => [ + "crypto/aes/asm/aes-riscv64-zkn.pl" + ], + "crypto/aes/aes-riscv64-zvbb-zvkg-zvkned.s" => [ + "crypto/aes/asm/aes-riscv64-zvbb-zvkg-zvkned.pl" + ], + "crypto/aes/aes-riscv64-zvkb-zvkned.s" => [ + "crypto/aes/asm/aes-riscv64-zvkb-zvkned.pl" + ], + "crypto/aes/aes-riscv64-zvkned.s" => [ + "crypto/aes/asm/aes-riscv64-zvkned.pl" + ], + "crypto/aes/aes-riscv64.s" => [ + "crypto/aes/asm/aes-riscv64.pl" + ], "crypto/aes/aes-s390x.S" => [ "crypto/aes/asm/aes-s390x.pl" ], @@ -10489,6 +12309,9 @@ our %unified_info = ( "crypto/aes/aesni-x86_64.s" => [ "crypto/aes/asm/aesni-x86_64.pl" ], + "crypto/aes/aesni-xts-avx512.s" => [ + "crypto/aes/asm/aesni-xts-avx512.pl" + ], "crypto/aes/aesp8-ppc.s" => [ "crypto/aes/asm/aesp8-ppc.pl" ], @@ -10501,12 +12324,18 @@ our %unified_info = ( "crypto/aes/bsaes-armv7.S" => [ "crypto/aes/asm/bsaes-armv7.pl" ], + "crypto/aes/bsaes-armv8.S" => [ + "crypto/aes/asm/bsaes-armv8.pl" + ], "crypto/aes/bsaes-x86_64.s" => [ "crypto/aes/asm/bsaes-x86_64.pl" ], "crypto/aes/vpaes-armv8.S" => [ "crypto/aes/asm/vpaes-armv8.pl" ], + "crypto/aes/vpaes-loongarch64.S" => [ + "crypto/aes/asm/vpaes-loongarch64.pl" + ], "crypto/aes/vpaes-ppc.s" => [ "crypto/aes/asm/vpaes-ppc.pl" ], @@ -10567,15 +12396,33 @@ our %unified_info = ( "crypto/bn/ppc-mont.s" => [ "crypto/bn/asm/ppc-mont.pl" ], + "crypto/bn/ppc64-mont-fixed.s" => [ + "crypto/bn/asm/ppc64-mont-fixed.pl" + ], "crypto/bn/ppc64-mont.s" => [ "crypto/bn/asm/ppc64-mont.pl" ], + "crypto/bn/rsaz-2k-avx512.s" => [ + "crypto/bn/asm/rsaz-2k-avx512.pl" + ], + "crypto/bn/rsaz-2k-avxifma.s" => [ + "crypto/bn/asm/rsaz-2k-avxifma.pl" + ], + "crypto/bn/rsaz-3k-avx512.s" => [ + "crypto/bn/asm/rsaz-3k-avx512.pl" + ], + "crypto/bn/rsaz-3k-avxifma.s" => [ + "crypto/bn/asm/rsaz-3k-avxifma.pl" + ], + "crypto/bn/rsaz-4k-avx512.s" => [ + "crypto/bn/asm/rsaz-4k-avx512.pl" + ], + "crypto/bn/rsaz-4k-avxifma.s" => [ + "crypto/bn/asm/rsaz-4k-avxifma.pl" + ], "crypto/bn/rsaz-avx2.s" => [ "crypto/bn/asm/rsaz-avx2.pl" ], - "crypto/bn/rsaz-avx512.s" => [ - "crypto/bn/asm/rsaz-avx512.pl" - ], "crypto/bn/rsaz-x86_64.s" => [ "crypto/bn/asm/rsaz-x86_64.pl" ], @@ -10637,6 +12484,9 @@ our %unified_info = ( "crypto/chacha/chacha-armv4.S" => [ "crypto/chacha/asm/chacha-armv4.pl" ], + "crypto/chacha/chacha-armv8-sve.S" => [ + "crypto/chacha/asm/chacha-armv8-sve.pl" + ], "crypto/chacha/chacha-armv8.S" => [ "crypto/chacha/asm/chacha-armv8.pl" ], @@ -10649,9 +12499,19 @@ our %unified_info = ( "crypto/chacha/chacha-ia64.s" => [ "crypto/chacha/chacha-ia64.S" ], + "crypto/chacha/chacha-loongarch64.S" => [ + "crypto/chacha/asm/chacha-loongarch64.pl" + ], "crypto/chacha/chacha-ppc.s" => [ "crypto/chacha/asm/chacha-ppc.pl" ], + "crypto/chacha/chacha-riscv64-v-zbb-zvkb.s" => [ + "crypto/chacha/asm/chacha-riscv64-v-zbb.pl", + "zvkb" + ], + "crypto/chacha/chacha-riscv64-v-zbb.s" => [ + "crypto/chacha/asm/chacha-riscv64-v-zbb.pl" + ], "crypto/chacha/chacha-s390x.S" => [ "crypto/chacha/asm/chacha-s390x.pl" ], @@ -10661,6 +12521,9 @@ our %unified_info = ( "crypto/chacha/chacha-x86_64.s" => [ "crypto/chacha/asm/chacha-x86_64.pl" ], + "crypto/chacha/chachap10-ppc.s" => [ + "crypto/chacha/asm/chachap10-ppc.pl" + ], "crypto/des/crypt586.S" => [ "crypto/des/asm/crypt586.pl" ], @@ -10673,6 +12536,9 @@ our %unified_info = ( "crypto/des/dest4-sparcv9.S" => [ "crypto/des/asm/dest4-sparcv9.pl" ], + "crypto/ec/ecp_nistp384-ppc64.s" => [ + "crypto/ec/asm/ecp_nistp384-ppc64.pl" + ], "crypto/ec/ecp_nistp521-ppc64.s" => [ "crypto/ec/asm/ecp_nistp521-ppc64.pl" ], @@ -10697,6 +12563,9 @@ our %unified_info = ( "crypto/ec/ecp_nistz256-x86_64.s" => [ "crypto/ec/asm/ecp_nistz256-x86_64.pl" ], + "crypto/ec/ecp_sm2p256-armv8.S" => [ + "crypto/ec/asm/ecp_sm2p256-armv8.pl" + ], "crypto/ec/x25519-ppc64.s" => [ "crypto/ec/asm/x25519-ppc64.pl" ], @@ -10706,18 +12575,39 @@ our %unified_info = ( "crypto/ia64cpuid.s" => [ "crypto/ia64cpuid.S" ], + "crypto/loongarch64cpuid.s" => [ + "crypto/loongarch64cpuid.pl" + ], "crypto/md5/md5-586.S" => [ "crypto/md5/asm/md5-586.pl" ], + "crypto/md5/md5-aarch64.S" => [ + "crypto/md5/asm/md5-aarch64.pl" + ], + "crypto/md5/md5-loongarch64.S" => [ + "crypto/md5/asm/md5-loongarch64.pl" + ], "crypto/md5/md5-sparcv9.S" => [ "crypto/md5/asm/md5-sparcv9.pl" ], "crypto/md5/md5-x86_64.s" => [ "crypto/md5/asm/md5-x86_64.pl" ], + "crypto/modes/aes-gcm-armv8-unroll8_64.S" => [ + "crypto/modes/asm/aes-gcm-armv8-unroll8_64.pl" + ], "crypto/modes/aes-gcm-armv8_64.S" => [ "crypto/modes/asm/aes-gcm-armv8_64.pl" ], + "crypto/modes/aes-gcm-avx512.s" => [ + "crypto/modes/asm/aes-gcm-avx512.pl" + ], + "crypto/modes/aes-gcm-ppc.s" => [ + "crypto/modes/asm/aes-gcm-ppc.pl" + ], + "crypto/modes/aes-gcm-riscv64-zvkb-zvkg-zvkned.s" => [ + "crypto/modes/asm/aes-gcm-riscv64-zvkb-zvkg-zvkned.pl" + ], "crypto/modes/aesni-gcm-x86_64.s" => [ "crypto/modes/asm/aesni-gcm-x86_64.pl" ], @@ -10736,6 +12626,15 @@ our %unified_info = ( "crypto/modes/ghash-parisc.s" => [ "crypto/modes/asm/ghash-parisc.pl" ], + "crypto/modes/ghash-riscv64-zvkb-zvbc.s" => [ + "crypto/modes/asm/ghash-riscv64-zvkb-zvbc.pl" + ], + "crypto/modes/ghash-riscv64-zvkg.s" => [ + "crypto/modes/asm/ghash-riscv64-zvkg.pl" + ], + "crypto/modes/ghash-riscv64.s" => [ + "crypto/modes/asm/ghash-riscv64.pl" + ], "crypto/modes/ghash-s390x.S" => [ "crypto/modes/asm/ghash-s390x.pl" ], @@ -10754,6 +12653,9 @@ our %unified_info = ( "crypto/modes/ghashv8-armx.S" => [ "crypto/modes/asm/ghashv8-armx.pl" ], + "crypto/params_idx.c" => [ + "crypto/params_idx.c.in" + ], "crypto/pariscid.s" => [ "crypto/pariscid.pl" ], @@ -10814,6 +12716,12 @@ our %unified_info = ( "crypto/ripemd/rmd-586.S" => [ "crypto/ripemd/asm/rmd-586.pl" ], + "crypto/riscv32cpuid.s" => [ + "crypto/riscv32cpuid.pl" + ], + "crypto/riscv64cpuid.s" => [ + "crypto/riscv64cpuid.pl" + ], "crypto/s390xcpuid.S" => [ "crypto/s390xcpuid.pl" ], @@ -10922,6 +12830,9 @@ our %unified_info = ( "crypto/sha/sha256-ppc.s" => [ "crypto/sha/asm/sha512-ppc.pl" ], + "crypto/sha/sha256-riscv64-zvkb-zvknha_or_zvknhb.S" => [ + "crypto/sha/asm/sha256-riscv64-zvkb-zvknha_or_zvknhb.pl" + ], "crypto/sha/sha256-s390x.S" => [ "crypto/sha/asm/sha512-s390x.pl" ], @@ -10958,6 +12869,9 @@ our %unified_info = ( "crypto/sha/sha512-ppc.s" => [ "crypto/sha/asm/sha512-ppc.pl" ], + "crypto/sha/sha512-riscv64-zvkb-zvknhb.S" => [ + "crypto/sha/asm/sha512-riscv64-zvkb-zvknhb.pl" + ], "crypto/sha/sha512-s390x.S" => [ "crypto/sha/asm/sha512-s390x.pl" ], @@ -10970,6 +12884,24 @@ our %unified_info = ( "crypto/sha/sha512p8-ppc.s" => [ "crypto/sha/asm/sha512p8-ppc.pl" ], + "crypto/sm3/sm3-armv8.S" => [ + "crypto/sm3/asm/sm3-armv8.pl" + ], + "crypto/sm3/sm3-riscv64-zvksh.S" => [ + "crypto/sm3/asm/sm3-riscv64-zvksh.pl" + ], + "crypto/sm4/sm4-armv8.S" => [ + "crypto/sm4/asm/sm4-armv8.pl" + ], + "crypto/sm4/sm4-riscv64-zvksed.s" => [ + "crypto/sm4/asm/sm4-riscv64-zvksed.pl" + ], + "crypto/sm4/vpsm4-armv8.S" => [ + "crypto/sm4/asm/vpsm4-armv8.pl" + ], + "crypto/sm4/vpsm4_ex-armv8.S" => [ + "crypto/sm4/asm/vpsm4_ex-armv8.pl" + ], "crypto/uplink-ia64.s" => [ "ms/uplink-ia64.pl" ], @@ -11135,6 +13067,9 @@ our %unified_info = ( "doc/html/man1/openssl-sess_id.html" => [ "doc/man1/openssl-sess_id.pod" ], + "doc/html/man1/openssl-skeyutl.html" => [ + "doc/man1/openssl-skeyutl.pod" + ], "doc/html/man1/openssl-smime.html" => [ "doc/man1/openssl-smime.pod" ], @@ -11276,6 +13211,9 @@ our %unified_info = ( "doc/html/man3/BIO_get_ex_new_index.html" => [ "doc/man3/BIO_get_ex_new_index.pod" ], + "doc/html/man3/BIO_get_rpoll_descriptor.html" => [ + "doc/man3/BIO_get_rpoll_descriptor.pod" + ], "doc/html/man3/BIO_meth_new.html" => [ "doc/man3/BIO_meth_new.pod" ], @@ -11312,6 +13250,9 @@ our %unified_info = ( "doc/html/man3/BIO_s_datagram.html" => [ "doc/man3/BIO_s_datagram.pod" ], + "doc/html/man3/BIO_s_dgram_pair.html" => [ + "doc/man3/BIO_s_dgram_pair.pod" + ], "doc/html/man3/BIO_s_fd.html" => [ "doc/man3/BIO_s_fd.pod" ], @@ -11327,6 +13268,9 @@ our %unified_info = ( "doc/html/man3/BIO_s_socket.html" => [ "doc/man3/BIO_s_socket.pod" ], + "doc/html/man3/BIO_sendmmsg.html" => [ + "doc/man3/BIO_sendmmsg.pod" + ], "doc/html/man3/BIO_set_callback.html" => [ "doc/man3/BIO_set_callback.pod" ], @@ -11399,6 +13343,9 @@ our %unified_info = ( "doc/html/man3/BUF_MEM_new.html" => [ "doc/man3/BUF_MEM_new.pod" ], + "doc/html/man3/CMAC_CTX.html" => [ + "doc/man3/CMAC_CTX.pod" + ], "doc/html/man3/CMS_EncryptedData_decrypt.html" => [ "doc/man3/CMS_EncryptedData_decrypt.pod" ], @@ -11465,6 +13412,9 @@ our %unified_info = ( "doc/html/man3/CMS_verify_receipt.html" => [ "doc/man3/CMS_verify_receipt.pod" ], + "doc/html/man3/COMP_CTX_new.html" => [ + "doc/man3/COMP_CTX_new.pod" + ], "doc/html/man3/CONF_modules_free.html" => [ "doc/man3/CONF_modules_free.pod" ], @@ -11564,6 +13514,12 @@ our %unified_info = ( "doc/html/man3/DTLS_set_timer_cb.html" => [ "doc/man3/DTLS_set_timer_cb.pod" ], + "doc/html/man3/DTLSv1_get_timeout.html" => [ + "doc/man3/DTLSv1_get_timeout.pod" + ], + "doc/html/man3/DTLSv1_handle_timeout.html" => [ + "doc/man3/DTLSv1_handle_timeout.pod" + ], "doc/html/man3/DTLSv1_listen.html" => [ "doc/man3/DTLSv1_listen.pod" ], @@ -11702,6 +13658,9 @@ our %unified_info = ( "doc/html/man3/EVP_PKEY_CTX_get0_pkey.html" => [ "doc/man3/EVP_PKEY_CTX_get0_pkey.pod" ], + "doc/html/man3/EVP_PKEY_CTX_get_algor.html" => [ + "doc/man3/EVP_PKEY_CTX_get_algor.pod" + ], "doc/html/man3/EVP_PKEY_CTX_new.html" => [ "doc/man3/EVP_PKEY_CTX_new.pod" ], @@ -11819,6 +13778,12 @@ our %unified_info = ( "doc/html/man3/EVP_SIGNATURE.html" => [ "doc/man3/EVP_SIGNATURE.pod" ], + "doc/html/man3/EVP_SKEY.html" => [ + "doc/man3/EVP_SKEY.pod" + ], + "doc/html/man3/EVP_SKEYMGMT.html" => [ + "doc/man3/EVP_SKEYMGMT.pod" + ], "doc/html/man3/EVP_SealInit.html" => [ "doc/man3/EVP_SealInit.pod" ], @@ -11906,6 +13871,9 @@ our %unified_info = ( "doc/html/man3/EVP_whirlpool.html" => [ "doc/man3/EVP_whirlpool.pod" ], + "doc/html/man3/GENERAL_NAME.html" => [ + "doc/man3/GENERAL_NAME.pod" + ], "doc/html/man3/HMAC.html" => [ "doc/man3/HMAC.pod" ], @@ -11978,9 +13946,15 @@ our %unified_info = ( "doc/html/man3/OPENSSL_load_builtin_modules.html" => [ "doc/man3/OPENSSL_load_builtin_modules.pod" ], + "doc/html/man3/OPENSSL_load_u16_le.html" => [ + "doc/man3/OPENSSL_load_u16_le.pod" + ], "doc/html/man3/OPENSSL_malloc.html" => [ "doc/man3/OPENSSL_malloc.pod" ], + "doc/html/man3/OPENSSL_riscvcap.html" => [ + "doc/man3/OPENSSL_riscvcap.pod" + ], "doc/html/man3/OPENSSL_s390xcap.html" => [ "doc/man3/OPENSSL_s390xcap.pod" ], @@ -11996,12 +13970,18 @@ our %unified_info = ( "doc/html/man3/OSSL_CALLBACK.html" => [ "doc/man3/OSSL_CALLBACK.pod" ], + "doc/html/man3/OSSL_CMP_ATAV_set0.html" => [ + "doc/man3/OSSL_CMP_ATAV_set0.pod" + ], "doc/html/man3/OSSL_CMP_CTX_new.html" => [ "doc/man3/OSSL_CMP_CTX_new.pod" ], "doc/html/man3/OSSL_CMP_HDR_get0_transactionID.html" => [ "doc/man3/OSSL_CMP_HDR_get0_transactionID.pod" ], + "doc/html/man3/OSSL_CMP_ITAV_new_caCerts.html" => [ + "doc/man3/OSSL_CMP_ITAV_new_caCerts.pod" + ], "doc/html/man3/OSSL_CMP_ITAV_set0.html" => [ "doc/man3/OSSL_CMP_ITAV_set0.pod" ], @@ -12071,9 +14051,18 @@ our %unified_info = ( "doc/html/man3/OSSL_ENCODER_to_bio.html" => [ "doc/man3/OSSL_ENCODER_to_bio.pod" ], + "doc/html/man3/OSSL_ERR_STATE_save.html" => [ + "doc/man3/OSSL_ERR_STATE_save.pod" + ], "doc/html/man3/OSSL_ESS_check_signing_certs.html" => [ "doc/man3/OSSL_ESS_check_signing_certs.pod" ], + "doc/html/man3/OSSL_GENERAL_NAMES_print.html" => [ + "doc/man3/OSSL_GENERAL_NAMES_print.pod" + ], + "doc/html/man3/OSSL_HPKE_CTX_new.html" => [ + "doc/man3/OSSL_HPKE_CTX_new.pod" + ], "doc/html/man3/OSSL_HTTP_REQ_CTX.html" => [ "doc/man3/OSSL_HTTP_REQ_CTX.pod" ], @@ -12083,12 +14072,24 @@ our %unified_info = ( "doc/html/man3/OSSL_HTTP_transfer.html" => [ "doc/man3/OSSL_HTTP_transfer.pod" ], + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX.html" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX.pod" + ], + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX_print.html" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX_print.pod" + ], + "doc/html/man3/OSSL_INDICATOR_set_callback.html" => [ + "doc/man3/OSSL_INDICATOR_set_callback.pod" + ], "doc/html/man3/OSSL_ITEM.html" => [ "doc/man3/OSSL_ITEM.pod" ], "doc/html/man3/OSSL_LIB_CTX.html" => [ "doc/man3/OSSL_LIB_CTX.pod" ], + "doc/html/man3/OSSL_LIB_CTX_set_conf_diagnostics.html" => [ + "doc/man3/OSSL_LIB_CTX_set_conf_diagnostics.pod" + ], "doc/html/man3/OSSL_PARAM.html" => [ "doc/man3/OSSL_PARAM.pod" ], @@ -12104,9 +14105,15 @@ our %unified_info = ( "doc/html/man3/OSSL_PARAM_int.html" => [ "doc/man3/OSSL_PARAM_int.pod" ], + "doc/html/man3/OSSL_PARAM_print_to_bio.html" => [ + "doc/man3/OSSL_PARAM_print_to_bio.pod" + ], "doc/html/man3/OSSL_PROVIDER.html" => [ "doc/man3/OSSL_PROVIDER.pod" ], + "doc/html/man3/OSSL_QUIC_client_method.html" => [ + "doc/man3/OSSL_QUIC_client_method.pod" + ], "doc/html/man3/OSSL_SELF_TEST_new.html" => [ "doc/man3/OSSL_SELF_TEST_new.pod" ], @@ -12131,6 +14138,9 @@ our %unified_info = ( "doc/html/man3/OSSL_STORE_open.html" => [ "doc/man3/OSSL_STORE_open.pod" ], + "doc/html/man3/OSSL_sleep.html" => [ + "doc/man3/OSSL_sleep.pod" + ], "doc/html/man3/OSSL_trace_enabled.html" => [ "doc/man3/OSSL_trace_enabled.pod" ], @@ -12146,6 +14156,9 @@ our %unified_info = ( "doc/html/man3/OpenSSL_version.html" => [ "doc/man3/OpenSSL_version.pod" ], + "doc/html/man3/PBMAC1_get1_pbkdf2_param.html" => [ + "doc/man3/PBMAC1_get1_pbkdf2_param.pod" + ], "doc/html/man3/PEM_X509_INFO_read_bio_ex.html" => [ "doc/man3/PEM_X509_INFO_read_bio_ex.pod" ], @@ -12182,6 +14195,9 @@ our %unified_info = ( "doc/html/man3/PKCS12_SAFEBAG_get1_cert.html" => [ "doc/man3/PKCS12_SAFEBAG_get1_cert.pod" ], + "doc/html/man3/PKCS12_SAFEBAG_set0_attrs.html" => [ + "doc/man3/PKCS12_SAFEBAG_set0_attrs.pod" + ], "doc/html/man3/PKCS12_add1_attr_by_NID.html" => [ "doc/man3/PKCS12_add1_attr_by_NID.pod" ], @@ -12455,6 +14471,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set0_CA_list.html" => [ "doc/man3/SSL_CTX_set0_CA_list.pod" ], + "doc/html/man3/SSL_CTX_set1_cert_comp_preference.html" => [ + "doc/man3/SSL_CTX_set1_cert_comp_preference.pod" + ], "doc/html/man3/SSL_CTX_set1_curves.html" => [ "doc/man3/SSL_CTX_set1_curves.pod" ], @@ -12494,6 +14513,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_default_passwd_cb.html" => [ "doc/man3/SSL_CTX_set_default_passwd_cb.pod" ], + "doc/html/man3/SSL_CTX_set_domain_flags.html" => [ + "doc/man3/SSL_CTX_set_domain_flags.pod" + ], "doc/html/man3/SSL_CTX_set_generate_session_id.html" => [ "doc/man3/SSL_CTX_set_generate_session_id.pod" ], @@ -12515,6 +14537,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_msg_callback.html" => [ "doc/man3/SSL_CTX_set_msg_callback.pod" ], + "doc/html/man3/SSL_CTX_set_new_pending_conn_cb.html" => [ + "doc/man3/SSL_CTX_set_new_pending_conn_cb.pod" + ], "doc/html/man3/SSL_CTX_set_num_tickets.html" => [ "doc/man3/SSL_CTX_set_num_tickets.pod" ], @@ -12629,6 +14654,9 @@ our %unified_info = ( "doc/html/man3/SSL_accept.html" => [ "doc/man3/SSL_accept.pod" ], + "doc/html/man3/SSL_accept_stream.html" => [ + "doc/man3/SSL_accept_stream.pod" + ], "doc/html/man3/SSL_alert_type_string.html" => [ "doc/man3/SSL_alert_type_string.pod" ], @@ -12656,9 +14684,21 @@ our %unified_info = ( "doc/html/man3/SSL_free.html" => [ "doc/man3/SSL_free.pod" ], + "doc/html/man3/SSL_get0_connection.html" => [ + "doc/man3/SSL_get0_connection.pod" + ], + "doc/html/man3/SSL_get0_group_name.html" => [ + "doc/man3/SSL_get0_group_name.pod" + ], + "doc/html/man3/SSL_get0_peer_rpk.html" => [ + "doc/man3/SSL_get0_peer_rpk.pod" + ], "doc/html/man3/SSL_get0_peer_scts.html" => [ "doc/man3/SSL_get0_peer_scts.pod" ], + "doc/html/man3/SSL_get1_builtin_sigalgs.html" => [ + "doc/man3/SSL_get1_builtin_sigalgs.pod" + ], "doc/html/man3/SSL_get_SSL_CTX.html" => [ "doc/man3/SSL_get_SSL_CTX.pod" ], @@ -12674,6 +14714,9 @@ our %unified_info = ( "doc/html/man3/SSL_get_client_random.html" => [ "doc/man3/SSL_get_client_random.pod" ], + "doc/html/man3/SSL_get_conn_close_info.html" => [ + "doc/man3/SSL_get_conn_close_info.pod" + ], "doc/html/man3/SSL_get_current_cipher.html" => [ "doc/man3/SSL_get_current_cipher.pod" ], @@ -12683,12 +14726,18 @@ our %unified_info = ( "doc/html/man3/SSL_get_error.html" => [ "doc/man3/SSL_get_error.pod" ], + "doc/html/man3/SSL_get_event_timeout.html" => [ + "doc/man3/SSL_get_event_timeout.pod" + ], "doc/html/man3/SSL_get_extms_support.html" => [ "doc/man3/SSL_get_extms_support.pod" ], "doc/html/man3/SSL_get_fd.html" => [ "doc/man3/SSL_get_fd.pod" ], + "doc/html/man3/SSL_get_handshake_rtt.html" => [ + "doc/man3/SSL_get_handshake_rtt.pod" + ], "doc/html/man3/SSL_get_peer_cert_chain.html" => [ "doc/man3/SSL_get_peer_cert_chain.pod" ], @@ -12707,12 +14756,24 @@ our %unified_info = ( "doc/html/man3/SSL_get_rbio.html" => [ "doc/man3/SSL_get_rbio.pod" ], + "doc/html/man3/SSL_get_rpoll_descriptor.html" => [ + "doc/man3/SSL_get_rpoll_descriptor.pod" + ], "doc/html/man3/SSL_get_session.html" => [ "doc/man3/SSL_get_session.pod" ], "doc/html/man3/SSL_get_shared_sigalgs.html" => [ "doc/man3/SSL_get_shared_sigalgs.pod" ], + "doc/html/man3/SSL_get_stream_id.html" => [ + "doc/man3/SSL_get_stream_id.pod" + ], + "doc/html/man3/SSL_get_stream_read_state.html" => [ + "doc/man3/SSL_get_stream_read_state.pod" + ], + "doc/html/man3/SSL_get_value_uint.html" => [ + "doc/man3/SSL_get_value_uint.pod" + ], "doc/html/man3/SSL_get_verify_result.html" => [ "doc/man3/SSL_get_verify_result.pod" ], @@ -12722,9 +14783,15 @@ our %unified_info = ( "doc/html/man3/SSL_group_to_name.html" => [ "doc/man3/SSL_group_to_name.pod" ], + "doc/html/man3/SSL_handle_events.html" => [ + "doc/man3/SSL_handle_events.pod" + ], "doc/html/man3/SSL_in_init.html" => [ "doc/man3/SSL_in_init.pod" ], + "doc/html/man3/SSL_inject_net_dgram.html" => [ + "doc/man3/SSL_inject_net_dgram.pod" + ], "doc/html/man3/SSL_key_update.html" => [ "doc/man3/SSL_key_update.pod" ], @@ -12737,9 +14804,21 @@ our %unified_info = ( "doc/html/man3/SSL_new.html" => [ "doc/man3/SSL_new.pod" ], + "doc/html/man3/SSL_new_domain.html" => [ + "doc/man3/SSL_new_domain.pod" + ], + "doc/html/man3/SSL_new_listener.html" => [ + "doc/man3/SSL_new_listener.pod" + ], + "doc/html/man3/SSL_new_stream.html" => [ + "doc/man3/SSL_new_stream.pod" + ], "doc/html/man3/SSL_pending.html" => [ "doc/man3/SSL_pending.pod" ], + "doc/html/man3/SSL_poll.html" => [ + "doc/man3/SSL_poll.pod" + ], "doc/html/man3/SSL_read.html" => [ "doc/man3/SSL_read.pod" ], @@ -12755,24 +14834,45 @@ our %unified_info = ( "doc/html/man3/SSL_set1_host.html" => [ "doc/man3/SSL_set1_host.pod" ], + "doc/html/man3/SSL_set1_initial_peer_addr.html" => [ + "doc/man3/SSL_set1_initial_peer_addr.pod" + ], + "doc/html/man3/SSL_set1_server_cert_type.html" => [ + "doc/man3/SSL_set1_server_cert_type.pod" + ], "doc/html/man3/SSL_set_async_callback.html" => [ "doc/man3/SSL_set_async_callback.pod" ], "doc/html/man3/SSL_set_bio.html" => [ "doc/man3/SSL_set_bio.pod" ], + "doc/html/man3/SSL_set_blocking_mode.html" => [ + "doc/man3/SSL_set_blocking_mode.pod" + ], "doc/html/man3/SSL_set_connect_state.html" => [ "doc/man3/SSL_set_connect_state.pod" ], + "doc/html/man3/SSL_set_default_stream_mode.html" => [ + "doc/man3/SSL_set_default_stream_mode.pod" + ], "doc/html/man3/SSL_set_fd.html" => [ "doc/man3/SSL_set_fd.pod" ], + "doc/html/man3/SSL_set_incoming_stream_policy.html" => [ + "doc/man3/SSL_set_incoming_stream_policy.pod" + ], + "doc/html/man3/SSL_set_quic_tls_cbs.html" => [ + "doc/man3/SSL_set_quic_tls_cbs.pod" + ], "doc/html/man3/SSL_set_retry_verify.html" => [ "doc/man3/SSL_set_retry_verify.pod" ], "doc/html/man3/SSL_set_session.html" => [ "doc/man3/SSL_set_session.pod" ], + "doc/html/man3/SSL_set_session_secret_cb.html" => [ + "doc/man3/SSL_set_session_secret_cb.pod" + ], "doc/html/man3/SSL_set_shutdown.html" => [ "doc/man3/SSL_set_shutdown.pod" ], @@ -12785,6 +14885,12 @@ our %unified_info = ( "doc/html/man3/SSL_state_string.html" => [ "doc/man3/SSL_state_string.pod" ], + "doc/html/man3/SSL_stream_conclude.html" => [ + "doc/man3/SSL_stream_conclude.pod" + ], + "doc/html/man3/SSL_stream_reset.html" => [ + "doc/man3/SSL_stream_reset.pod" + ], "doc/html/man3/SSL_want.html" => [ "doc/man3/SSL_want.pod" ], @@ -12794,8 +14900,8 @@ our %unified_info = ( "doc/html/man3/TS_RESP_CTX_new.html" => [ "doc/man3/TS_RESP_CTX_new.pod" ], - "doc/html/man3/TS_VERIFY_CTX_set_certs.html" => [ - "doc/man3/TS_VERIFY_CTX_set_certs.pod" + "doc/html/man3/TS_VERIFY_CTX.html" => [ + "doc/man3/TS_VERIFY_CTX.pod" ], "doc/html/man3/UI_STRING.html" => [ "doc/man3/UI_STRING.pod" @@ -12815,6 +14921,21 @@ our %unified_info = ( "doc/html/man3/X509V3_set_ctx.html" => [ "doc/man3/X509V3_set_ctx.pod" ], + "doc/html/man3/X509_ACERT_add1_attr.html" => [ + "doc/man3/X509_ACERT_add1_attr.pod" + ], + "doc/html/man3/X509_ACERT_add_attr_nconf.html" => [ + "doc/man3/X509_ACERT_add_attr_nconf.pod" + ], + "doc/html/man3/X509_ACERT_get0_holder_baseCertId.html" => [ + "doc/man3/X509_ACERT_get0_holder_baseCertId.pod" + ], + "doc/html/man3/X509_ACERT_get_attr.html" => [ + "doc/man3/X509_ACERT_get_attr.pod" + ], + "doc/html/man3/X509_ACERT_print_ex.html" => [ + "doc/man3/X509_ACERT_print_ex.pod" + ], "doc/html/man3/X509_ALGOR_dup.html" => [ "doc/man3/X509_ALGOR_dup.pod" ], @@ -12863,6 +14984,9 @@ our %unified_info = ( "doc/html/man3/X509_SIG_get0.html" => [ "doc/man3/X509_SIG_get0.pod" ], + "doc/html/man3/X509_STORE_CTX_get_by_subject.html" => [ + "doc/man3/X509_STORE_CTX_get_by_subject.pod" + ], "doc/html/man3/X509_STORE_CTX_get_error.html" => [ "doc/man3/X509_STORE_CTX_get_error.pod" ], @@ -12929,6 +15053,9 @@ our %unified_info = ( "doc/html/man3/X509_get0_uids.html" => [ "doc/man3/X509_get0_uids.pod" ], + "doc/html/man3/X509_get_default_cert_file.html" => [ + "doc/man3/X509_get_default_cert_file.pod" + ], "doc/html/man3/X509_get_extension_flags.html" => [ "doc/man3/X509_get_extension_flags.pod" ], @@ -13052,9 +15179,15 @@ our %unified_info = ( "doc/html/man7/EVP_CIPHER-SM4.html" => [ "doc/man7/EVP_CIPHER-SM4.pod" ], + "doc/html/man7/EVP_KDF-ARGON2.html" => [ + "doc/man7/EVP_KDF-ARGON2.pod" + ], "doc/html/man7/EVP_KDF-HKDF.html" => [ "doc/man7/EVP_KDF-HKDF.pod" ], + "doc/html/man7/EVP_KDF-HMAC-DRBG.html" => [ + "doc/man7/EVP_KDF-HMAC-DRBG.pod" + ], "doc/html/man7/EVP_KDF-KB.html" => [ "doc/man7/EVP_KDF-KB.pod" ], @@ -13070,6 +15203,9 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-PKCS12KDF.html" => [ "doc/man7/EVP_KDF-PKCS12KDF.pod" ], + "doc/html/man7/EVP_KDF-PVKKDF.html" => [ + "doc/man7/EVP_KDF-PVKKDF.pod" + ], "doc/html/man7/EVP_KDF-SCRYPT.html" => [ "doc/man7/EVP_KDF-SCRYPT.pod" ], @@ -13094,9 +15230,18 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-X963.html" => [ "doc/man7/EVP_KDF-X963.pod" ], + "doc/html/man7/EVP_KEM-EC.html" => [ + "doc/man7/EVP_KEM-EC.pod" + ], + "doc/html/man7/EVP_KEM-ML-KEM.html" => [ + "doc/man7/EVP_KEM-ML-KEM.pod" + ], "doc/html/man7/EVP_KEM-RSA.html" => [ "doc/man7/EVP_KEM-RSA.pod" ], + "doc/html/man7/EVP_KEM-X25519.html" => [ + "doc/man7/EVP_KEM-X25519.pod" + ], "doc/html/man7/EVP_KEYEXCH-DH.html" => [ "doc/man7/EVP_KEYEXCH-DH.pod" ], @@ -13130,6 +15275,9 @@ our %unified_info = ( "doc/html/man7/EVP_MD-BLAKE2.html" => [ "doc/man7/EVP_MD-BLAKE2.pod" ], + "doc/html/man7/EVP_MD-KECCAK.html" => [ + "doc/man7/EVP_MD-KECCAK.pod" + ], "doc/html/man7/EVP_MD-MD2.html" => [ "doc/man7/EVP_MD-MD2.pod" ], @@ -13187,15 +15335,27 @@ our %unified_info = ( "doc/html/man7/EVP_PKEY-HMAC.html" => [ "doc/man7/EVP_PKEY-HMAC.pod" ], + "doc/html/man7/EVP_PKEY-ML-DSA.html" => [ + "doc/man7/EVP_PKEY-ML-DSA.pod" + ], + "doc/html/man7/EVP_PKEY-ML-KEM.html" => [ + "doc/man7/EVP_PKEY-ML-KEM.pod" + ], "doc/html/man7/EVP_PKEY-RSA.html" => [ "doc/man7/EVP_PKEY-RSA.pod" ], + "doc/html/man7/EVP_PKEY-SLH-DSA.html" => [ + "doc/man7/EVP_PKEY-SLH-DSA.pod" + ], "doc/html/man7/EVP_PKEY-SM2.html" => [ "doc/man7/EVP_PKEY-SM2.pod" ], "doc/html/man7/EVP_PKEY-X25519.html" => [ "doc/man7/EVP_PKEY-X25519.pod" ], + "doc/html/man7/EVP_RAND-CRNG-TEST.html" => [ + "doc/man7/EVP_RAND-CRNG-TEST.pod" + ], "doc/html/man7/EVP_RAND-CTR-DRBG.html" => [ "doc/man7/EVP_RAND-CTR-DRBG.pod" ], @@ -13205,6 +15365,9 @@ our %unified_info = ( "doc/html/man7/EVP_RAND-HMAC-DRBG.html" => [ "doc/man7/EVP_RAND-HMAC-DRBG.pod" ], + "doc/html/man7/EVP_RAND-JITTER.html" => [ + "doc/man7/EVP_RAND-JITTER.pod" + ], "doc/html/man7/EVP_RAND-SEED-SRC.html" => [ "doc/man7/EVP_RAND-SEED-SRC.pod" ], @@ -13226,9 +15389,15 @@ our %unified_info = ( "doc/html/man7/EVP_SIGNATURE-HMAC.html" => [ "doc/man7/EVP_SIGNATURE-HMAC.pod" ], + "doc/html/man7/EVP_SIGNATURE-ML-DSA.html" => [ + "doc/man7/EVP_SIGNATURE-ML-DSA.pod" + ], "doc/html/man7/EVP_SIGNATURE-RSA.html" => [ "doc/man7/EVP_SIGNATURE-RSA.pod" ], + "doc/html/man7/EVP_SIGNATURE-SLH-DSA.html" => [ + "doc/man7/EVP_SIGNATURE-SLH-DSA.pod" + ], "doc/html/man7/OSSL_PROVIDER-FIPS.html" => [ "doc/man7/OSSL_PROVIDER-FIPS.pod" ], @@ -13244,6 +15413,9 @@ our %unified_info = ( "doc/html/man7/OSSL_PROVIDER-null.html" => [ "doc/man7/OSSL_PROVIDER-null.pod" ], + "doc/html/man7/OSSL_STORE-winstore.html" => [ + "doc/man7/OSSL_STORE-winstore.pod" + ], "doc/html/man7/RAND.html" => [ "doc/man7/RAND.pod" ], @@ -13256,9 +15428,6 @@ our %unified_info = ( "doc/html/man7/bio.html" => [ "doc/man7/bio.pod" ], - "doc/html/man7/crypto.html" => [ - "doc/man7/crypto.pod" - ], "doc/html/man7/ct.html" => [ "doc/man7/ct.pod" ], @@ -13289,9 +15458,6 @@ our %unified_info = ( "doc/html/man7/life_cycle-rand.html" => [ "doc/man7/life_cycle-rand.pod" ], - "doc/html/man7/migration_guide.html" => [ - "doc/man7/migration_guide.pod" - ], "doc/html/man7/openssl-core.h.html" => [ "doc/man7/openssl-core.h.pod" ], @@ -13307,12 +15473,66 @@ our %unified_info = ( "doc/html/man7/openssl-glossary.html" => [ "doc/man7/openssl-glossary.pod" ], + "doc/html/man7/openssl-qlog.html" => [ + "doc/man7/openssl-qlog.pod" + ], + "doc/html/man7/openssl-quic-concurrency.html" => [ + "doc/man7/openssl-quic-concurrency.pod" + ], + "doc/html/man7/openssl-quic.html" => [ + "doc/man7/openssl-quic.pod" + ], "doc/html/man7/openssl-threads.html" => [ "doc/man7/openssl-threads.pod" ], "doc/html/man7/openssl_user_macros.html" => [ "doc/man7/openssl_user_macros.pod" ], + "doc/html/man7/ossl-guide-introduction.html" => [ + "doc/man7/ossl-guide-introduction.pod" + ], + "doc/html/man7/ossl-guide-libcrypto-introduction.html" => [ + "doc/man7/ossl-guide-libcrypto-introduction.pod" + ], + "doc/html/man7/ossl-guide-libraries-introduction.html" => [ + "doc/man7/ossl-guide-libraries-introduction.pod" + ], + "doc/html/man7/ossl-guide-libssl-introduction.html" => [ + "doc/man7/ossl-guide-libssl-introduction.pod" + ], + "doc/html/man7/ossl-guide-migration.html" => [ + "doc/man7/ossl-guide-migration.pod" + ], + "doc/html/man7/ossl-guide-quic-client-block.html" => [ + "doc/man7/ossl-guide-quic-client-block.pod" + ], + "doc/html/man7/ossl-guide-quic-client-non-block.html" => [ + "doc/man7/ossl-guide-quic-client-non-block.pod" + ], + "doc/html/man7/ossl-guide-quic-introduction.html" => [ + "doc/man7/ossl-guide-quic-introduction.pod" + ], + "doc/html/man7/ossl-guide-quic-multi-stream.html" => [ + "doc/man7/ossl-guide-quic-multi-stream.pod" + ], + "doc/html/man7/ossl-guide-quic-server-block.html" => [ + "doc/man7/ossl-guide-quic-server-block.pod" + ], + "doc/html/man7/ossl-guide-quic-server-non-block.html" => [ + "doc/man7/ossl-guide-quic-server-non-block.pod" + ], + "doc/html/man7/ossl-guide-tls-client-block.html" => [ + "doc/man7/ossl-guide-tls-client-block.pod" + ], + "doc/html/man7/ossl-guide-tls-client-non-block.html" => [ + "doc/man7/ossl-guide-tls-client-non-block.pod" + ], + "doc/html/man7/ossl-guide-tls-introduction.html" => [ + "doc/man7/ossl-guide-tls-introduction.pod" + ], + "doc/html/man7/ossl-guide-tls-server-block.html" => [ + "doc/man7/ossl-guide-tls-server-block.pod" + ], "doc/html/man7/ossl_store-file.html" => [ "doc/man7/ossl_store-file.pod" ], @@ -13367,6 +15587,9 @@ our %unified_info = ( "doc/html/man7/provider-signature.html" => [ "doc/man7/provider-signature.pod" ], + "doc/html/man7/provider-skeymgmt.html" => [ + "doc/man7/provider-skeymgmt.pod" + ], "doc/html/man7/provider-storemgmt.html" => [ "doc/man7/provider-storemgmt.pod" ], @@ -13376,9 +15599,6 @@ our %unified_info = ( "doc/html/man7/proxy-certificates.html" => [ "doc/man7/proxy-certificates.pod" ], - "doc/html/man7/ssl.html" => [ - "doc/man7/ssl.pod" - ], "doc/html/man7/x509.html" => [ "doc/man7/x509.pod" ], @@ -13526,6 +15746,9 @@ our %unified_info = ( "doc/man/man1/openssl-sess_id.1" => [ "doc/man1/openssl-sess_id.pod" ], + "doc/man/man1/openssl-skeyutl.1" => [ + "doc/man1/openssl-skeyutl.pod" + ], "doc/man/man1/openssl-smime.1" => [ "doc/man1/openssl-smime.pod" ], @@ -13667,6 +15890,9 @@ our %unified_info = ( "doc/man/man3/BIO_get_ex_new_index.3" => [ "doc/man3/BIO_get_ex_new_index.pod" ], + "doc/man/man3/BIO_get_rpoll_descriptor.3" => [ + "doc/man3/BIO_get_rpoll_descriptor.pod" + ], "doc/man/man3/BIO_meth_new.3" => [ "doc/man3/BIO_meth_new.pod" ], @@ -13703,6 +15929,9 @@ our %unified_info = ( "doc/man/man3/BIO_s_datagram.3" => [ "doc/man3/BIO_s_datagram.pod" ], + "doc/man/man3/BIO_s_dgram_pair.3" => [ + "doc/man3/BIO_s_dgram_pair.pod" + ], "doc/man/man3/BIO_s_fd.3" => [ "doc/man3/BIO_s_fd.pod" ], @@ -13718,6 +15947,9 @@ our %unified_info = ( "doc/man/man3/BIO_s_socket.3" => [ "doc/man3/BIO_s_socket.pod" ], + "doc/man/man3/BIO_sendmmsg.3" => [ + "doc/man3/BIO_sendmmsg.pod" + ], "doc/man/man3/BIO_set_callback.3" => [ "doc/man3/BIO_set_callback.pod" ], @@ -13790,6 +16022,9 @@ our %unified_info = ( "doc/man/man3/BUF_MEM_new.3" => [ "doc/man3/BUF_MEM_new.pod" ], + "doc/man/man3/CMAC_CTX.3" => [ + "doc/man3/CMAC_CTX.pod" + ], "doc/man/man3/CMS_EncryptedData_decrypt.3" => [ "doc/man3/CMS_EncryptedData_decrypt.pod" ], @@ -13856,6 +16091,9 @@ our %unified_info = ( "doc/man/man3/CMS_verify_receipt.3" => [ "doc/man3/CMS_verify_receipt.pod" ], + "doc/man/man3/COMP_CTX_new.3" => [ + "doc/man3/COMP_CTX_new.pod" + ], "doc/man/man3/CONF_modules_free.3" => [ "doc/man3/CONF_modules_free.pod" ], @@ -13955,6 +16193,12 @@ our %unified_info = ( "doc/man/man3/DTLS_set_timer_cb.3" => [ "doc/man3/DTLS_set_timer_cb.pod" ], + "doc/man/man3/DTLSv1_get_timeout.3" => [ + "doc/man3/DTLSv1_get_timeout.pod" + ], + "doc/man/man3/DTLSv1_handle_timeout.3" => [ + "doc/man3/DTLSv1_handle_timeout.pod" + ], "doc/man/man3/DTLSv1_listen.3" => [ "doc/man3/DTLSv1_listen.pod" ], @@ -14093,6 +16337,9 @@ our %unified_info = ( "doc/man/man3/EVP_PKEY_CTX_get0_pkey.3" => [ "doc/man3/EVP_PKEY_CTX_get0_pkey.pod" ], + "doc/man/man3/EVP_PKEY_CTX_get_algor.3" => [ + "doc/man3/EVP_PKEY_CTX_get_algor.pod" + ], "doc/man/man3/EVP_PKEY_CTX_new.3" => [ "doc/man3/EVP_PKEY_CTX_new.pod" ], @@ -14210,6 +16457,12 @@ our %unified_info = ( "doc/man/man3/EVP_SIGNATURE.3" => [ "doc/man3/EVP_SIGNATURE.pod" ], + "doc/man/man3/EVP_SKEY.3" => [ + "doc/man3/EVP_SKEY.pod" + ], + "doc/man/man3/EVP_SKEYMGMT.3" => [ + "doc/man3/EVP_SKEYMGMT.pod" + ], "doc/man/man3/EVP_SealInit.3" => [ "doc/man3/EVP_SealInit.pod" ], @@ -14297,6 +16550,9 @@ our %unified_info = ( "doc/man/man3/EVP_whirlpool.3" => [ "doc/man3/EVP_whirlpool.pod" ], + "doc/man/man3/GENERAL_NAME.3" => [ + "doc/man3/GENERAL_NAME.pod" + ], "doc/man/man3/HMAC.3" => [ "doc/man3/HMAC.pod" ], @@ -14369,9 +16625,15 @@ our %unified_info = ( "doc/man/man3/OPENSSL_load_builtin_modules.3" => [ "doc/man3/OPENSSL_load_builtin_modules.pod" ], + "doc/man/man3/OPENSSL_load_u16_le.3" => [ + "doc/man3/OPENSSL_load_u16_le.pod" + ], "doc/man/man3/OPENSSL_malloc.3" => [ "doc/man3/OPENSSL_malloc.pod" ], + "doc/man/man3/OPENSSL_riscvcap.3" => [ + "doc/man3/OPENSSL_riscvcap.pod" + ], "doc/man/man3/OPENSSL_s390xcap.3" => [ "doc/man3/OPENSSL_s390xcap.pod" ], @@ -14387,12 +16649,18 @@ our %unified_info = ( "doc/man/man3/OSSL_CALLBACK.3" => [ "doc/man3/OSSL_CALLBACK.pod" ], + "doc/man/man3/OSSL_CMP_ATAV_set0.3" => [ + "doc/man3/OSSL_CMP_ATAV_set0.pod" + ], "doc/man/man3/OSSL_CMP_CTX_new.3" => [ "doc/man3/OSSL_CMP_CTX_new.pod" ], "doc/man/man3/OSSL_CMP_HDR_get0_transactionID.3" => [ "doc/man3/OSSL_CMP_HDR_get0_transactionID.pod" ], + "doc/man/man3/OSSL_CMP_ITAV_new_caCerts.3" => [ + "doc/man3/OSSL_CMP_ITAV_new_caCerts.pod" + ], "doc/man/man3/OSSL_CMP_ITAV_set0.3" => [ "doc/man3/OSSL_CMP_ITAV_set0.pod" ], @@ -14462,9 +16730,18 @@ our %unified_info = ( "doc/man/man3/OSSL_ENCODER_to_bio.3" => [ "doc/man3/OSSL_ENCODER_to_bio.pod" ], + "doc/man/man3/OSSL_ERR_STATE_save.3" => [ + "doc/man3/OSSL_ERR_STATE_save.pod" + ], "doc/man/man3/OSSL_ESS_check_signing_certs.3" => [ "doc/man3/OSSL_ESS_check_signing_certs.pod" ], + "doc/man/man3/OSSL_GENERAL_NAMES_print.3" => [ + "doc/man3/OSSL_GENERAL_NAMES_print.pod" + ], + "doc/man/man3/OSSL_HPKE_CTX_new.3" => [ + "doc/man3/OSSL_HPKE_CTX_new.pod" + ], "doc/man/man3/OSSL_HTTP_REQ_CTX.3" => [ "doc/man3/OSSL_HTTP_REQ_CTX.pod" ], @@ -14474,12 +16751,24 @@ our %unified_info = ( "doc/man/man3/OSSL_HTTP_transfer.3" => [ "doc/man3/OSSL_HTTP_transfer.pod" ], + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX.3" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX.pod" + ], + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX_print.3" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX_print.pod" + ], + "doc/man/man3/OSSL_INDICATOR_set_callback.3" => [ + "doc/man3/OSSL_INDICATOR_set_callback.pod" + ], "doc/man/man3/OSSL_ITEM.3" => [ "doc/man3/OSSL_ITEM.pod" ], "doc/man/man3/OSSL_LIB_CTX.3" => [ "doc/man3/OSSL_LIB_CTX.pod" ], + "doc/man/man3/OSSL_LIB_CTX_set_conf_diagnostics.3" => [ + "doc/man3/OSSL_LIB_CTX_set_conf_diagnostics.pod" + ], "doc/man/man3/OSSL_PARAM.3" => [ "doc/man3/OSSL_PARAM.pod" ], @@ -14495,9 +16784,15 @@ our %unified_info = ( "doc/man/man3/OSSL_PARAM_int.3" => [ "doc/man3/OSSL_PARAM_int.pod" ], + "doc/man/man3/OSSL_PARAM_print_to_bio.3" => [ + "doc/man3/OSSL_PARAM_print_to_bio.pod" + ], "doc/man/man3/OSSL_PROVIDER.3" => [ "doc/man3/OSSL_PROVIDER.pod" ], + "doc/man/man3/OSSL_QUIC_client_method.3" => [ + "doc/man3/OSSL_QUIC_client_method.pod" + ], "doc/man/man3/OSSL_SELF_TEST_new.3" => [ "doc/man3/OSSL_SELF_TEST_new.pod" ], @@ -14522,6 +16817,9 @@ our %unified_info = ( "doc/man/man3/OSSL_STORE_open.3" => [ "doc/man3/OSSL_STORE_open.pod" ], + "doc/man/man3/OSSL_sleep.3" => [ + "doc/man3/OSSL_sleep.pod" + ], "doc/man/man3/OSSL_trace_enabled.3" => [ "doc/man3/OSSL_trace_enabled.pod" ], @@ -14537,6 +16835,9 @@ our %unified_info = ( "doc/man/man3/OpenSSL_version.3" => [ "doc/man3/OpenSSL_version.pod" ], + "doc/man/man3/PBMAC1_get1_pbkdf2_param.3" => [ + "doc/man3/PBMAC1_get1_pbkdf2_param.pod" + ], "doc/man/man3/PEM_X509_INFO_read_bio_ex.3" => [ "doc/man3/PEM_X509_INFO_read_bio_ex.pod" ], @@ -14573,6 +16874,9 @@ our %unified_info = ( "doc/man/man3/PKCS12_SAFEBAG_get1_cert.3" => [ "doc/man3/PKCS12_SAFEBAG_get1_cert.pod" ], + "doc/man/man3/PKCS12_SAFEBAG_set0_attrs.3" => [ + "doc/man3/PKCS12_SAFEBAG_set0_attrs.pod" + ], "doc/man/man3/PKCS12_add1_attr_by_NID.3" => [ "doc/man3/PKCS12_add1_attr_by_NID.pod" ], @@ -14846,6 +17150,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set0_CA_list.3" => [ "doc/man3/SSL_CTX_set0_CA_list.pod" ], + "doc/man/man3/SSL_CTX_set1_cert_comp_preference.3" => [ + "doc/man3/SSL_CTX_set1_cert_comp_preference.pod" + ], "doc/man/man3/SSL_CTX_set1_curves.3" => [ "doc/man3/SSL_CTX_set1_curves.pod" ], @@ -14885,6 +17192,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_default_passwd_cb.3" => [ "doc/man3/SSL_CTX_set_default_passwd_cb.pod" ], + "doc/man/man3/SSL_CTX_set_domain_flags.3" => [ + "doc/man3/SSL_CTX_set_domain_flags.pod" + ], "doc/man/man3/SSL_CTX_set_generate_session_id.3" => [ "doc/man3/SSL_CTX_set_generate_session_id.pod" ], @@ -14906,6 +17216,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_msg_callback.3" => [ "doc/man3/SSL_CTX_set_msg_callback.pod" ], + "doc/man/man3/SSL_CTX_set_new_pending_conn_cb.3" => [ + "doc/man3/SSL_CTX_set_new_pending_conn_cb.pod" + ], "doc/man/man3/SSL_CTX_set_num_tickets.3" => [ "doc/man3/SSL_CTX_set_num_tickets.pod" ], @@ -15020,6 +17333,9 @@ our %unified_info = ( "doc/man/man3/SSL_accept.3" => [ "doc/man3/SSL_accept.pod" ], + "doc/man/man3/SSL_accept_stream.3" => [ + "doc/man3/SSL_accept_stream.pod" + ], "doc/man/man3/SSL_alert_type_string.3" => [ "doc/man3/SSL_alert_type_string.pod" ], @@ -15047,9 +17363,21 @@ our %unified_info = ( "doc/man/man3/SSL_free.3" => [ "doc/man3/SSL_free.pod" ], + "doc/man/man3/SSL_get0_connection.3" => [ + "doc/man3/SSL_get0_connection.pod" + ], + "doc/man/man3/SSL_get0_group_name.3" => [ + "doc/man3/SSL_get0_group_name.pod" + ], + "doc/man/man3/SSL_get0_peer_rpk.3" => [ + "doc/man3/SSL_get0_peer_rpk.pod" + ], "doc/man/man3/SSL_get0_peer_scts.3" => [ "doc/man3/SSL_get0_peer_scts.pod" ], + "doc/man/man3/SSL_get1_builtin_sigalgs.3" => [ + "doc/man3/SSL_get1_builtin_sigalgs.pod" + ], "doc/man/man3/SSL_get_SSL_CTX.3" => [ "doc/man3/SSL_get_SSL_CTX.pod" ], @@ -15065,6 +17393,9 @@ our %unified_info = ( "doc/man/man3/SSL_get_client_random.3" => [ "doc/man3/SSL_get_client_random.pod" ], + "doc/man/man3/SSL_get_conn_close_info.3" => [ + "doc/man3/SSL_get_conn_close_info.pod" + ], "doc/man/man3/SSL_get_current_cipher.3" => [ "doc/man3/SSL_get_current_cipher.pod" ], @@ -15074,12 +17405,18 @@ our %unified_info = ( "doc/man/man3/SSL_get_error.3" => [ "doc/man3/SSL_get_error.pod" ], + "doc/man/man3/SSL_get_event_timeout.3" => [ + "doc/man3/SSL_get_event_timeout.pod" + ], "doc/man/man3/SSL_get_extms_support.3" => [ "doc/man3/SSL_get_extms_support.pod" ], "doc/man/man3/SSL_get_fd.3" => [ "doc/man3/SSL_get_fd.pod" ], + "doc/man/man3/SSL_get_handshake_rtt.3" => [ + "doc/man3/SSL_get_handshake_rtt.pod" + ], "doc/man/man3/SSL_get_peer_cert_chain.3" => [ "doc/man3/SSL_get_peer_cert_chain.pod" ], @@ -15098,12 +17435,24 @@ our %unified_info = ( "doc/man/man3/SSL_get_rbio.3" => [ "doc/man3/SSL_get_rbio.pod" ], + "doc/man/man3/SSL_get_rpoll_descriptor.3" => [ + "doc/man3/SSL_get_rpoll_descriptor.pod" + ], "doc/man/man3/SSL_get_session.3" => [ "doc/man3/SSL_get_session.pod" ], "doc/man/man3/SSL_get_shared_sigalgs.3" => [ "doc/man3/SSL_get_shared_sigalgs.pod" ], + "doc/man/man3/SSL_get_stream_id.3" => [ + "doc/man3/SSL_get_stream_id.pod" + ], + "doc/man/man3/SSL_get_stream_read_state.3" => [ + "doc/man3/SSL_get_stream_read_state.pod" + ], + "doc/man/man3/SSL_get_value_uint.3" => [ + "doc/man3/SSL_get_value_uint.pod" + ], "doc/man/man3/SSL_get_verify_result.3" => [ "doc/man3/SSL_get_verify_result.pod" ], @@ -15113,9 +17462,15 @@ our %unified_info = ( "doc/man/man3/SSL_group_to_name.3" => [ "doc/man3/SSL_group_to_name.pod" ], + "doc/man/man3/SSL_handle_events.3" => [ + "doc/man3/SSL_handle_events.pod" + ], "doc/man/man3/SSL_in_init.3" => [ "doc/man3/SSL_in_init.pod" ], + "doc/man/man3/SSL_inject_net_dgram.3" => [ + "doc/man3/SSL_inject_net_dgram.pod" + ], "doc/man/man3/SSL_key_update.3" => [ "doc/man3/SSL_key_update.pod" ], @@ -15128,9 +17483,21 @@ our %unified_info = ( "doc/man/man3/SSL_new.3" => [ "doc/man3/SSL_new.pod" ], + "doc/man/man3/SSL_new_domain.3" => [ + "doc/man3/SSL_new_domain.pod" + ], + "doc/man/man3/SSL_new_listener.3" => [ + "doc/man3/SSL_new_listener.pod" + ], + "doc/man/man3/SSL_new_stream.3" => [ + "doc/man3/SSL_new_stream.pod" + ], "doc/man/man3/SSL_pending.3" => [ "doc/man3/SSL_pending.pod" ], + "doc/man/man3/SSL_poll.3" => [ + "doc/man3/SSL_poll.pod" + ], "doc/man/man3/SSL_read.3" => [ "doc/man3/SSL_read.pod" ], @@ -15146,24 +17513,45 @@ our %unified_info = ( "doc/man/man3/SSL_set1_host.3" => [ "doc/man3/SSL_set1_host.pod" ], + "doc/man/man3/SSL_set1_initial_peer_addr.3" => [ + "doc/man3/SSL_set1_initial_peer_addr.pod" + ], + "doc/man/man3/SSL_set1_server_cert_type.3" => [ + "doc/man3/SSL_set1_server_cert_type.pod" + ], "doc/man/man3/SSL_set_async_callback.3" => [ "doc/man3/SSL_set_async_callback.pod" ], "doc/man/man3/SSL_set_bio.3" => [ "doc/man3/SSL_set_bio.pod" ], + "doc/man/man3/SSL_set_blocking_mode.3" => [ + "doc/man3/SSL_set_blocking_mode.pod" + ], "doc/man/man3/SSL_set_connect_state.3" => [ "doc/man3/SSL_set_connect_state.pod" ], + "doc/man/man3/SSL_set_default_stream_mode.3" => [ + "doc/man3/SSL_set_default_stream_mode.pod" + ], "doc/man/man3/SSL_set_fd.3" => [ "doc/man3/SSL_set_fd.pod" ], + "doc/man/man3/SSL_set_incoming_stream_policy.3" => [ + "doc/man3/SSL_set_incoming_stream_policy.pod" + ], + "doc/man/man3/SSL_set_quic_tls_cbs.3" => [ + "doc/man3/SSL_set_quic_tls_cbs.pod" + ], "doc/man/man3/SSL_set_retry_verify.3" => [ "doc/man3/SSL_set_retry_verify.pod" ], "doc/man/man3/SSL_set_session.3" => [ "doc/man3/SSL_set_session.pod" ], + "doc/man/man3/SSL_set_session_secret_cb.3" => [ + "doc/man3/SSL_set_session_secret_cb.pod" + ], "doc/man/man3/SSL_set_shutdown.3" => [ "doc/man3/SSL_set_shutdown.pod" ], @@ -15176,6 +17564,12 @@ our %unified_info = ( "doc/man/man3/SSL_state_string.3" => [ "doc/man3/SSL_state_string.pod" ], + "doc/man/man3/SSL_stream_conclude.3" => [ + "doc/man3/SSL_stream_conclude.pod" + ], + "doc/man/man3/SSL_stream_reset.3" => [ + "doc/man3/SSL_stream_reset.pod" + ], "doc/man/man3/SSL_want.3" => [ "doc/man3/SSL_want.pod" ], @@ -15185,8 +17579,8 @@ our %unified_info = ( "doc/man/man3/TS_RESP_CTX_new.3" => [ "doc/man3/TS_RESP_CTX_new.pod" ], - "doc/man/man3/TS_VERIFY_CTX_set_certs.3" => [ - "doc/man3/TS_VERIFY_CTX_set_certs.pod" + "doc/man/man3/TS_VERIFY_CTX.3" => [ + "doc/man3/TS_VERIFY_CTX.pod" ], "doc/man/man3/UI_STRING.3" => [ "doc/man3/UI_STRING.pod" @@ -15206,6 +17600,21 @@ our %unified_info = ( "doc/man/man3/X509V3_set_ctx.3" => [ "doc/man3/X509V3_set_ctx.pod" ], + "doc/man/man3/X509_ACERT_add1_attr.3" => [ + "doc/man3/X509_ACERT_add1_attr.pod" + ], + "doc/man/man3/X509_ACERT_add_attr_nconf.3" => [ + "doc/man3/X509_ACERT_add_attr_nconf.pod" + ], + "doc/man/man3/X509_ACERT_get0_holder_baseCertId.3" => [ + "doc/man3/X509_ACERT_get0_holder_baseCertId.pod" + ], + "doc/man/man3/X509_ACERT_get_attr.3" => [ + "doc/man3/X509_ACERT_get_attr.pod" + ], + "doc/man/man3/X509_ACERT_print_ex.3" => [ + "doc/man3/X509_ACERT_print_ex.pod" + ], "doc/man/man3/X509_ALGOR_dup.3" => [ "doc/man3/X509_ALGOR_dup.pod" ], @@ -15254,6 +17663,9 @@ our %unified_info = ( "doc/man/man3/X509_SIG_get0.3" => [ "doc/man3/X509_SIG_get0.pod" ], + "doc/man/man3/X509_STORE_CTX_get_by_subject.3" => [ + "doc/man3/X509_STORE_CTX_get_by_subject.pod" + ], "doc/man/man3/X509_STORE_CTX_get_error.3" => [ "doc/man3/X509_STORE_CTX_get_error.pod" ], @@ -15320,6 +17732,9 @@ our %unified_info = ( "doc/man/man3/X509_get0_uids.3" => [ "doc/man3/X509_get0_uids.pod" ], + "doc/man/man3/X509_get_default_cert_file.3" => [ + "doc/man3/X509_get_default_cert_file.pod" + ], "doc/man/man3/X509_get_extension_flags.3" => [ "doc/man3/X509_get_extension_flags.pod" ], @@ -15443,9 +17858,15 @@ our %unified_info = ( "doc/man/man7/EVP_CIPHER-SM4.7" => [ "doc/man7/EVP_CIPHER-SM4.pod" ], + "doc/man/man7/EVP_KDF-ARGON2.7" => [ + "doc/man7/EVP_KDF-ARGON2.pod" + ], "doc/man/man7/EVP_KDF-HKDF.7" => [ "doc/man7/EVP_KDF-HKDF.pod" ], + "doc/man/man7/EVP_KDF-HMAC-DRBG.7" => [ + "doc/man7/EVP_KDF-HMAC-DRBG.pod" + ], "doc/man/man7/EVP_KDF-KB.7" => [ "doc/man7/EVP_KDF-KB.pod" ], @@ -15461,6 +17882,9 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-PKCS12KDF.7" => [ "doc/man7/EVP_KDF-PKCS12KDF.pod" ], + "doc/man/man7/EVP_KDF-PVKKDF.7" => [ + "doc/man7/EVP_KDF-PVKKDF.pod" + ], "doc/man/man7/EVP_KDF-SCRYPT.7" => [ "doc/man7/EVP_KDF-SCRYPT.pod" ], @@ -15485,9 +17909,18 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-X963.7" => [ "doc/man7/EVP_KDF-X963.pod" ], + "doc/man/man7/EVP_KEM-EC.7" => [ + "doc/man7/EVP_KEM-EC.pod" + ], + "doc/man/man7/EVP_KEM-ML-KEM.7" => [ + "doc/man7/EVP_KEM-ML-KEM.pod" + ], "doc/man/man7/EVP_KEM-RSA.7" => [ "doc/man7/EVP_KEM-RSA.pod" ], + "doc/man/man7/EVP_KEM-X25519.7" => [ + "doc/man7/EVP_KEM-X25519.pod" + ], "doc/man/man7/EVP_KEYEXCH-DH.7" => [ "doc/man7/EVP_KEYEXCH-DH.pod" ], @@ -15521,6 +17954,9 @@ our %unified_info = ( "doc/man/man7/EVP_MD-BLAKE2.7" => [ "doc/man7/EVP_MD-BLAKE2.pod" ], + "doc/man/man7/EVP_MD-KECCAK.7" => [ + "doc/man7/EVP_MD-KECCAK.pod" + ], "doc/man/man7/EVP_MD-MD2.7" => [ "doc/man7/EVP_MD-MD2.pod" ], @@ -15578,15 +18014,27 @@ our %unified_info = ( "doc/man/man7/EVP_PKEY-HMAC.7" => [ "doc/man7/EVP_PKEY-HMAC.pod" ], + "doc/man/man7/EVP_PKEY-ML-DSA.7" => [ + "doc/man7/EVP_PKEY-ML-DSA.pod" + ], + "doc/man/man7/EVP_PKEY-ML-KEM.7" => [ + "doc/man7/EVP_PKEY-ML-KEM.pod" + ], "doc/man/man7/EVP_PKEY-RSA.7" => [ "doc/man7/EVP_PKEY-RSA.pod" ], + "doc/man/man7/EVP_PKEY-SLH-DSA.7" => [ + "doc/man7/EVP_PKEY-SLH-DSA.pod" + ], "doc/man/man7/EVP_PKEY-SM2.7" => [ "doc/man7/EVP_PKEY-SM2.pod" ], "doc/man/man7/EVP_PKEY-X25519.7" => [ "doc/man7/EVP_PKEY-X25519.pod" ], + "doc/man/man7/EVP_RAND-CRNG-TEST.7" => [ + "doc/man7/EVP_RAND-CRNG-TEST.pod" + ], "doc/man/man7/EVP_RAND-CTR-DRBG.7" => [ "doc/man7/EVP_RAND-CTR-DRBG.pod" ], @@ -15596,6 +18044,9 @@ our %unified_info = ( "doc/man/man7/EVP_RAND-HMAC-DRBG.7" => [ "doc/man7/EVP_RAND-HMAC-DRBG.pod" ], + "doc/man/man7/EVP_RAND-JITTER.7" => [ + "doc/man7/EVP_RAND-JITTER.pod" + ], "doc/man/man7/EVP_RAND-SEED-SRC.7" => [ "doc/man7/EVP_RAND-SEED-SRC.pod" ], @@ -15617,9 +18068,15 @@ our %unified_info = ( "doc/man/man7/EVP_SIGNATURE-HMAC.7" => [ "doc/man7/EVP_SIGNATURE-HMAC.pod" ], + "doc/man/man7/EVP_SIGNATURE-ML-DSA.7" => [ + "doc/man7/EVP_SIGNATURE-ML-DSA.pod" + ], "doc/man/man7/EVP_SIGNATURE-RSA.7" => [ "doc/man7/EVP_SIGNATURE-RSA.pod" ], + "doc/man/man7/EVP_SIGNATURE-SLH-DSA.7" => [ + "doc/man7/EVP_SIGNATURE-SLH-DSA.pod" + ], "doc/man/man7/OSSL_PROVIDER-FIPS.7" => [ "doc/man7/OSSL_PROVIDER-FIPS.pod" ], @@ -15635,6 +18092,9 @@ our %unified_info = ( "doc/man/man7/OSSL_PROVIDER-null.7" => [ "doc/man7/OSSL_PROVIDER-null.pod" ], + "doc/man/man7/OSSL_STORE-winstore.7" => [ + "doc/man7/OSSL_STORE-winstore.pod" + ], "doc/man/man7/RAND.7" => [ "doc/man7/RAND.pod" ], @@ -15647,9 +18107,6 @@ our %unified_info = ( "doc/man/man7/bio.7" => [ "doc/man7/bio.pod" ], - "doc/man/man7/crypto.7" => [ - "doc/man7/crypto.pod" - ], "doc/man/man7/ct.7" => [ "doc/man7/ct.pod" ], @@ -15680,9 +18137,6 @@ our %unified_info = ( "doc/man/man7/life_cycle-rand.7" => [ "doc/man7/life_cycle-rand.pod" ], - "doc/man/man7/migration_guide.7" => [ - "doc/man7/migration_guide.pod" - ], "doc/man/man7/openssl-core.h.7" => [ "doc/man7/openssl-core.h.pod" ], @@ -15698,12 +18152,66 @@ our %unified_info = ( "doc/man/man7/openssl-glossary.7" => [ "doc/man7/openssl-glossary.pod" ], + "doc/man/man7/openssl-qlog.7" => [ + "doc/man7/openssl-qlog.pod" + ], + "doc/man/man7/openssl-quic-concurrency.7" => [ + "doc/man7/openssl-quic-concurrency.pod" + ], + "doc/man/man7/openssl-quic.7" => [ + "doc/man7/openssl-quic.pod" + ], "doc/man/man7/openssl-threads.7" => [ "doc/man7/openssl-threads.pod" ], "doc/man/man7/openssl_user_macros.7" => [ "doc/man7/openssl_user_macros.pod" ], + "doc/man/man7/ossl-guide-introduction.7" => [ + "doc/man7/ossl-guide-introduction.pod" + ], + "doc/man/man7/ossl-guide-libcrypto-introduction.7" => [ + "doc/man7/ossl-guide-libcrypto-introduction.pod" + ], + "doc/man/man7/ossl-guide-libraries-introduction.7" => [ + "doc/man7/ossl-guide-libraries-introduction.pod" + ], + "doc/man/man7/ossl-guide-libssl-introduction.7" => [ + "doc/man7/ossl-guide-libssl-introduction.pod" + ], + "doc/man/man7/ossl-guide-migration.7" => [ + "doc/man7/ossl-guide-migration.pod" + ], + "doc/man/man7/ossl-guide-quic-client-block.7" => [ + "doc/man7/ossl-guide-quic-client-block.pod" + ], + "doc/man/man7/ossl-guide-quic-client-non-block.7" => [ + "doc/man7/ossl-guide-quic-client-non-block.pod" + ], + "doc/man/man7/ossl-guide-quic-introduction.7" => [ + "doc/man7/ossl-guide-quic-introduction.pod" + ], + "doc/man/man7/ossl-guide-quic-multi-stream.7" => [ + "doc/man7/ossl-guide-quic-multi-stream.pod" + ], + "doc/man/man7/ossl-guide-quic-server-block.7" => [ + "doc/man7/ossl-guide-quic-server-block.pod" + ], + "doc/man/man7/ossl-guide-quic-server-non-block.7" => [ + "doc/man7/ossl-guide-quic-server-non-block.pod" + ], + "doc/man/man7/ossl-guide-tls-client-block.7" => [ + "doc/man7/ossl-guide-tls-client-block.pod" + ], + "doc/man/man7/ossl-guide-tls-client-non-block.7" => [ + "doc/man7/ossl-guide-tls-client-non-block.pod" + ], + "doc/man/man7/ossl-guide-tls-introduction.7" => [ + "doc/man7/ossl-guide-tls-introduction.pod" + ], + "doc/man/man7/ossl-guide-tls-server-block.7" => [ + "doc/man7/ossl-guide-tls-server-block.pod" + ], "doc/man/man7/ossl_store-file.7" => [ "doc/man7/ossl_store-file.pod" ], @@ -15758,6 +18266,9 @@ our %unified_info = ( "doc/man/man7/provider-signature.7" => [ "doc/man7/provider-signature.pod" ], + "doc/man/man7/provider-skeymgmt.7" => [ + "doc/man7/provider-skeymgmt.pod" + ], "doc/man/man7/provider-storemgmt.7" => [ "doc/man7/provider-storemgmt.pod" ], @@ -15767,9 +18278,6 @@ our %unified_info = ( "doc/man/man7/proxy-certificates.7" => [ "doc/man7/proxy-certificates.pod" ], - "doc/man/man7/ssl.7" => [ - "doc/man7/ssl.pod" - ], "doc/man/man7/x509.7" => [ "doc/man7/x509.pod" ], @@ -15905,6 +18413,9 @@ our %unified_info = ( "doc/man1/openssl-sess_id.pod" => [ "doc/man1/openssl-sess_id.pod.in" ], + "doc/man1/openssl-skeyutl.pod" => [ + "doc/man1/openssl-skeyutl.pod.in" + ], "doc/man1/openssl-smime.pod" => [ "doc/man1/openssl-smime.pod.in" ], @@ -15941,12 +18452,30 @@ our %unified_info = ( "engines/e_padlock-x86_64.s" => [ "engines/asm/e_padlock-x86_64.pl" ], + "exporters/OpenSSLConfig.cmake" => [ + "exporters/cmake/OpenSSLConfig.cmake.in" + ], + "exporters/OpenSSLConfigVersion.cmake" => [ + "exporters/cmake/OpenSSLConfigVersion.cmake.in" + ], + "exporters/libcrypto.pc" => [ + "exporters/pkg-config/libcrypto.pc.in" + ], + "exporters/libssl.pc" => [ + "exporters/pkg-config/libssl.pc.in" + ], + "exporters/openssl.pc" => [ + "exporters/pkg-config/openssl.pc.in" + ], "include/crypto/bn_conf.h" => [ "include/crypto/bn_conf.h.in" ], "include/crypto/dso_conf.h" => [ "include/crypto/dso_conf.h.in" ], + "include/internal/param_names.h" => [ + "include/internal/param_names.h.in" + ], "include/openssl/asn1.h" => [ "include/openssl/asn1.h.in" ], @@ -15962,12 +18491,18 @@ our %unified_info = ( "include/openssl/cms.h" => [ "include/openssl/cms.h.in" ], + "include/openssl/comp.h" => [ + "include/openssl/comp.h.in" + ], "include/openssl/conf.h" => [ "include/openssl/conf.h.in" ], "include/openssl/configuration.h" => [ "include/openssl/configuration.h.in" ], + "include/openssl/core_names.h" => [ + "include/openssl/core_names.h.in" + ], "include/openssl/crmf.h" => [ "include/openssl/crmf.h.in" ], @@ -16016,20 +18551,47 @@ our %unified_info = ( "include/openssl/x509.h" => [ "include/openssl/x509.h.in" ], + "include/openssl/x509_acert.h" => [ + "include/openssl/x509_acert.h.in" + ], "include/openssl/x509_vfy.h" => [ "include/openssl/x509_vfy.h.in" ], "include/openssl/x509v3.h" => [ "include/openssl/x509v3.h.in" ], + "installdata.pm" => [ + "util/mkinstallvars.pl", + "\"PREFIX=\$(INSTALLTOP)\"", + "BINDIR=bin", + "\"LIBDIR=\$(LIBDIR)\"", + "\"libdir=\$(libdir)\"", + "INCLUDEDIR=include", + "APPLINKDIR=include/openssl", + "\"ENGINESDIR=\$(ENGINESDIR)\"", + "\"MODULESDIR=\$(MODULESDIR)\"", + "\"PKGCONFIGDIR=\$(PKGCONFIGDIR)\"", + "\"CMAKECONFIGDIR=\$(CMAKECONFIGDIR)\"", + "\"LDLIBS=\$(LIB_EX_LIBS)\"", + "\"VERSION=\$(VERSION)\"" + ], "libcrypto.ld" => [ "util/libcrypto.num", "libcrypto" ], + "libcrypto.pc" => [ + "exporters/pkg-config/libcrypto.pc.in" + ], "libssl.ld" => [ "util/libssl.num", "libssl" ], + "libssl.pc" => [ + "exporters/pkg-config/libssl.pc.in" + ], + "openssl.pc" => [ + "exporters/pkg-config/openssl.pc.in" + ], "providers/common/der/der_digests_gen.c" => [ "providers/common/der/der_digests_gen.c.in" ], @@ -16042,9 +18604,15 @@ our %unified_info = ( "providers/common/der/der_ecx_gen.c" => [ "providers/common/der/der_ecx_gen.c.in" ], + "providers/common/der/der_ml_dsa_gen.c" => [ + "providers/common/der/der_ml_dsa_gen.c.in" + ], "providers/common/der/der_rsa_gen.c" => [ "providers/common/der/der_rsa_gen.c.in" ], + "providers/common/der/der_slh_dsa_gen.c" => [ + "providers/common/der/der_slh_dsa_gen.c.in" + ], "providers/common/der/der_sm2_gen.c" => [ "providers/common/der/der_sm2_gen.c.in" ], @@ -16063,9 +18631,15 @@ our %unified_info = ( "providers/common/include/prov/der_ecx.h" => [ "providers/common/include/prov/der_ecx.h.in" ], + "providers/common/include/prov/der_ml_dsa.h" => [ + "providers/common/include/prov/der_ml_dsa.h.in" + ], "providers/common/include/prov/der_rsa.h" => [ "providers/common/include/prov/der_rsa.h.in" ], + "providers/common/include/prov/der_slh_dsa.h" => [ + "providers/common/include/prov/der_slh_dsa.h.in" + ], "providers/common/include/prov/der_sm2.h" => [ "providers/common/include/prov/der_sm2.h.in" ], @@ -16107,6 +18681,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "buffer" ], + "test/buildtest_byteorder.c" => [ + "test/generate_buildtest.pl", + "byteorder" + ], "test/buildtest_camellia.c" => [ "test/generate_buildtest.pl", "camellia" @@ -16139,10 +18717,6 @@ our %unified_info = ( "test/generate_buildtest.pl", "core_dispatch" ], - "test/buildtest_core_names.c" => [ - "test/generate_buildtest.pl", - "core_names" - ], "test/buildtest_core_object.c" => [ "test/generate_buildtest.pl", "core_object" @@ -16175,6 +18749,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "e_os2" ], + "test/buildtest_e_ostime.c" => [ + "test/generate_buildtest.pl", + "e_ostime" + ], "test/buildtest_ebcdic.c" => [ "test/generate_buildtest.pl", "ebcdic" @@ -16211,6 +18789,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "hmac" ], + "test/buildtest_hpke.c" => [ + "test/generate_buildtest.pl", + "hpke" + ], "test/buildtest_http.c" => [ "test/generate_buildtest.pl", "http" @@ -16219,6 +18801,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "idea" ], + "test/buildtest_indicator.c" => [ + "test/generate_buildtest.pl", + "indicator" + ], "test/buildtest_kdf.c" => [ "test/generate_buildtest.pl", "kdf" @@ -16239,6 +18825,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "mdc2" ], + "test/buildtest_ml_kem.c" => [ + "test/generate_buildtest.pl", + "ml_kem" + ], "test/buildtest_modes.c" => [ "test/generate_buildtest.pl", "modes" @@ -16279,6 +18869,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "provider" ], + "test/buildtest_quic.c" => [ + "test/generate_buildtest.pl", + "quic" + ], "test/buildtest_rand.c" => [ "test/generate_buildtest.pl", "rand" @@ -16335,6 +18929,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "symhacks" ], + "test/buildtest_thread.c" => [ + "test/generate_buildtest.pl", + "thread" + ], "test/buildtest_tls1.c" => [ "test/generate_buildtest.pl", "tls1" @@ -16415,6 +19013,7 @@ our %unified_info = ( "doc/html/man1/openssl-s_server.html", "doc/html/man1/openssl-s_time.html", "doc/html/man1/openssl-sess_id.html", + "doc/html/man1/openssl-skeyutl.html", "doc/html/man1/openssl-smime.html", "doc/html/man1/openssl-speed.html", "doc/html/man1/openssl-spkac.html", @@ -16464,6 +19063,7 @@ our %unified_info = ( "doc/html/man3/BIO_find_type.html", "doc/html/man3/BIO_get_data.html", "doc/html/man3/BIO_get_ex_new_index.html", + "doc/html/man3/BIO_get_rpoll_descriptor.html", "doc/html/man3/BIO_meth_new.html", "doc/html/man3/BIO_new.html", "doc/html/man3/BIO_new_CMS.html", @@ -16476,11 +19076,13 @@ our %unified_info = ( "doc/html/man3/BIO_s_connect.html", "doc/html/man3/BIO_s_core.html", "doc/html/man3/BIO_s_datagram.html", + "doc/html/man3/BIO_s_dgram_pair.html", "doc/html/man3/BIO_s_fd.html", "doc/html/man3/BIO_s_file.html", "doc/html/man3/BIO_s_mem.html", "doc/html/man3/BIO_s_null.html", "doc/html/man3/BIO_s_socket.html", + "doc/html/man3/BIO_sendmmsg.html", "doc/html/man3/BIO_set_callback.html", "doc/html/man3/BIO_should_retry.html", "doc/html/man3/BIO_socket_wait.html", @@ -16505,6 +19107,7 @@ our %unified_info = ( "doc/html/man3/BN_swap.html", "doc/html/man3/BN_zero.html", "doc/html/man3/BUF_MEM_new.html", + "doc/html/man3/CMAC_CTX.html", "doc/html/man3/CMS_EncryptedData_decrypt.html", "doc/html/man3/CMS_EncryptedData_encrypt.html", "doc/html/man3/CMS_EnvelopedData_create.html", @@ -16527,6 +19130,7 @@ our %unified_info = ( "doc/html/man3/CMS_uncompress.html", "doc/html/man3/CMS_verify.html", "doc/html/man3/CMS_verify_receipt.html", + "doc/html/man3/COMP_CTX_new.html", "doc/html/man3/CONF_modules_free.html", "doc/html/man3/CONF_modules_load_file.html", "doc/html/man3/CRYPTO_THREAD_run_once.html", @@ -16560,6 +19164,8 @@ our %unified_info = ( "doc/html/man3/DSA_size.html", "doc/html/man3/DTLS_get_data_mtu.html", "doc/html/man3/DTLS_set_timer_cb.html", + "doc/html/man3/DTLSv1_get_timeout.html", + "doc/html/man3/DTLSv1_handle_timeout.html", "doc/html/man3/DTLSv1_listen.html", "doc/html/man3/ECDSA_SIG_new.html", "doc/html/man3/ECDSA_sign.html", @@ -16606,6 +19212,7 @@ our %unified_info = ( "doc/html/man3/EVP_PKEY_CTX_ctrl.html", "doc/html/man3/EVP_PKEY_CTX_get0_libctx.html", "doc/html/man3/EVP_PKEY_CTX_get0_pkey.html", + "doc/html/man3/EVP_PKEY_CTX_get_algor.html", "doc/html/man3/EVP_PKEY_CTX_new.html", "doc/html/man3/EVP_PKEY_CTX_set1_pbe_pass.html", "doc/html/man3/EVP_PKEY_CTX_set_hkdf_md.html", @@ -16645,6 +19252,8 @@ our %unified_info = ( "doc/html/man3/EVP_PKEY_verify_recover.html", "doc/html/man3/EVP_RAND.html", "doc/html/man3/EVP_SIGNATURE.html", + "doc/html/man3/EVP_SKEY.html", + "doc/html/man3/EVP_SKEYMGMT.html", "doc/html/man3/EVP_SealInit.html", "doc/html/man3/EVP_SignInit.html", "doc/html/man3/EVP_VerifyInit.html", @@ -16674,6 +19283,7 @@ our %unified_info = ( "doc/html/man3/EVP_sm3.html", "doc/html/man3/EVP_sm4_cbc.html", "doc/html/man3/EVP_whirlpool.html", + "doc/html/man3/GENERAL_NAME.html", "doc/html/man3/HMAC.html", "doc/html/man3/MD5.html", "doc/html/man3/MDC2_Init.html", @@ -16698,14 +19308,18 @@ our %unified_info = ( "doc/html/man3/OPENSSL_init_ssl.html", "doc/html/man3/OPENSSL_instrument_bus.html", "doc/html/man3/OPENSSL_load_builtin_modules.html", + "doc/html/man3/OPENSSL_load_u16_le.html", "doc/html/man3/OPENSSL_malloc.html", + "doc/html/man3/OPENSSL_riscvcap.html", "doc/html/man3/OPENSSL_s390xcap.html", "doc/html/man3/OPENSSL_secure_malloc.html", "doc/html/man3/OPENSSL_strcasecmp.html", "doc/html/man3/OSSL_ALGORITHM.html", "doc/html/man3/OSSL_CALLBACK.html", + "doc/html/man3/OSSL_CMP_ATAV_set0.html", "doc/html/man3/OSSL_CMP_CTX_new.html", "doc/html/man3/OSSL_CMP_HDR_get0_transactionID.html", + "doc/html/man3/OSSL_CMP_ITAV_new_caCerts.html", "doc/html/man3/OSSL_CMP_ITAV_set0.html", "doc/html/man3/OSSL_CMP_MSG_get0_header.html", "doc/html/man3/OSSL_CMP_MSG_http_perform.html", @@ -16729,18 +19343,27 @@ our %unified_info = ( "doc/html/man3/OSSL_ENCODER_CTX.html", "doc/html/man3/OSSL_ENCODER_CTX_new_for_pkey.html", "doc/html/man3/OSSL_ENCODER_to_bio.html", + "doc/html/man3/OSSL_ERR_STATE_save.html", "doc/html/man3/OSSL_ESS_check_signing_certs.html", + "doc/html/man3/OSSL_GENERAL_NAMES_print.html", + "doc/html/man3/OSSL_HPKE_CTX_new.html", "doc/html/man3/OSSL_HTTP_REQ_CTX.html", "doc/html/man3/OSSL_HTTP_parse_url.html", "doc/html/man3/OSSL_HTTP_transfer.html", + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX.html", + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX_print.html", + "doc/html/man3/OSSL_INDICATOR_set_callback.html", "doc/html/man3/OSSL_ITEM.html", "doc/html/man3/OSSL_LIB_CTX.html", + "doc/html/man3/OSSL_LIB_CTX_set_conf_diagnostics.html", "doc/html/man3/OSSL_PARAM.html", "doc/html/man3/OSSL_PARAM_BLD.html", "doc/html/man3/OSSL_PARAM_allocate_from_text.html", "doc/html/man3/OSSL_PARAM_dup.html", "doc/html/man3/OSSL_PARAM_int.html", + "doc/html/man3/OSSL_PARAM_print_to_bio.html", "doc/html/man3/OSSL_PROVIDER.html", + "doc/html/man3/OSSL_QUIC_client_method.html", "doc/html/man3/OSSL_SELF_TEST_new.html", "doc/html/man3/OSSL_SELF_TEST_set_callback.html", "doc/html/man3/OSSL_STORE_INFO.html", @@ -16749,11 +19372,13 @@ our %unified_info = ( "doc/html/man3/OSSL_STORE_attach.html", "doc/html/man3/OSSL_STORE_expect.html", "doc/html/man3/OSSL_STORE_open.html", + "doc/html/man3/OSSL_sleep.html", "doc/html/man3/OSSL_trace_enabled.html", "doc/html/man3/OSSL_trace_get_category_num.html", "doc/html/man3/OSSL_trace_set_channel.html", "doc/html/man3/OpenSSL_add_all_algorithms.html", "doc/html/man3/OpenSSL_version.html", + "doc/html/man3/PBMAC1_get1_pbkdf2_param.html", "doc/html/man3/PEM_X509_INFO_read_bio_ex.html", "doc/html/man3/PEM_bytes_read_bio.html", "doc/html/man3/PEM_read.html", @@ -16766,6 +19391,7 @@ our %unified_info = ( "doc/html/man3/PKCS12_SAFEBAG_create_cert.html", "doc/html/man3/PKCS12_SAFEBAG_get0_attrs.html", "doc/html/man3/PKCS12_SAFEBAG_get1_cert.html", + "doc/html/man3/PKCS12_SAFEBAG_set0_attrs.html", "doc/html/man3/PKCS12_add1_attr_by_NID.html", "doc/html/man3/PKCS12_add_CSPName_asc.html", "doc/html/man3/PKCS12_add_cert.html", @@ -16857,6 +19483,7 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_sess_set_get_cb.html", "doc/html/man3/SSL_CTX_sessions.html", "doc/html/man3/SSL_CTX_set0_CA_list.html", + "doc/html/man3/SSL_CTX_set1_cert_comp_preference.html", "doc/html/man3/SSL_CTX_set1_curves.html", "doc/html/man3/SSL_CTX_set1_sigalgs.html", "doc/html/man3/SSL_CTX_set1_verify_cert_store.html", @@ -16870,6 +19497,7 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_ct_validation_callback.html", "doc/html/man3/SSL_CTX_set_ctlog_list_file.html", "doc/html/man3/SSL_CTX_set_default_passwd_cb.html", + "doc/html/man3/SSL_CTX_set_domain_flags.html", "doc/html/man3/SSL_CTX_set_generate_session_id.html", "doc/html/man3/SSL_CTX_set_info_callback.html", "doc/html/man3/SSL_CTX_set_keylog_callback.html", @@ -16877,6 +19505,7 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_min_proto_version.html", "doc/html/man3/SSL_CTX_set_mode.html", "doc/html/man3/SSL_CTX_set_msg_callback.html", + "doc/html/man3/SSL_CTX_set_new_pending_conn_cb.html", "doc/html/man3/SSL_CTX_set_num_tickets.html", "doc/html/man3/SSL_CTX_set_options.html", "doc/html/man3/SSL_CTX_set_psk_client_callback.html", @@ -16915,6 +19544,7 @@ our %unified_info = ( "doc/html/man3/SSL_SESSION_print.html", "doc/html/man3/SSL_SESSION_set1_id.html", "doc/html/man3/SSL_accept.html", + "doc/html/man3/SSL_accept_stream.html", "doc/html/man3/SSL_alert_type_string.html", "doc/html/man3/SSL_alloc_buffers.html", "doc/html/man3/SSL_check_chain.html", @@ -16924,59 +19554,90 @@ our %unified_info = ( "doc/html/man3/SSL_export_keying_material.html", "doc/html/man3/SSL_extension_supported.html", "doc/html/man3/SSL_free.html", + "doc/html/man3/SSL_get0_connection.html", + "doc/html/man3/SSL_get0_group_name.html", + "doc/html/man3/SSL_get0_peer_rpk.html", "doc/html/man3/SSL_get0_peer_scts.html", + "doc/html/man3/SSL_get1_builtin_sigalgs.html", "doc/html/man3/SSL_get_SSL_CTX.html", "doc/html/man3/SSL_get_all_async_fds.html", "doc/html/man3/SSL_get_certificate.html", "doc/html/man3/SSL_get_ciphers.html", "doc/html/man3/SSL_get_client_random.html", + "doc/html/man3/SSL_get_conn_close_info.html", "doc/html/man3/SSL_get_current_cipher.html", "doc/html/man3/SSL_get_default_timeout.html", "doc/html/man3/SSL_get_error.html", + "doc/html/man3/SSL_get_event_timeout.html", "doc/html/man3/SSL_get_extms_support.html", "doc/html/man3/SSL_get_fd.html", + "doc/html/man3/SSL_get_handshake_rtt.html", "doc/html/man3/SSL_get_peer_cert_chain.html", "doc/html/man3/SSL_get_peer_certificate.html", "doc/html/man3/SSL_get_peer_signature_nid.html", "doc/html/man3/SSL_get_peer_tmp_key.html", "doc/html/man3/SSL_get_psk_identity.html", "doc/html/man3/SSL_get_rbio.html", + "doc/html/man3/SSL_get_rpoll_descriptor.html", "doc/html/man3/SSL_get_session.html", "doc/html/man3/SSL_get_shared_sigalgs.html", + "doc/html/man3/SSL_get_stream_id.html", + "doc/html/man3/SSL_get_stream_read_state.html", + "doc/html/man3/SSL_get_value_uint.html", "doc/html/man3/SSL_get_verify_result.html", "doc/html/man3/SSL_get_version.html", "doc/html/man3/SSL_group_to_name.html", + "doc/html/man3/SSL_handle_events.html", "doc/html/man3/SSL_in_init.html", + "doc/html/man3/SSL_inject_net_dgram.html", "doc/html/man3/SSL_key_update.html", "doc/html/man3/SSL_library_init.html", "doc/html/man3/SSL_load_client_CA_file.html", "doc/html/man3/SSL_new.html", + "doc/html/man3/SSL_new_domain.html", + "doc/html/man3/SSL_new_listener.html", + "doc/html/man3/SSL_new_stream.html", "doc/html/man3/SSL_pending.html", + "doc/html/man3/SSL_poll.html", "doc/html/man3/SSL_read.html", "doc/html/man3/SSL_read_early_data.html", "doc/html/man3/SSL_rstate_string.html", "doc/html/man3/SSL_session_reused.html", "doc/html/man3/SSL_set1_host.html", + "doc/html/man3/SSL_set1_initial_peer_addr.html", + "doc/html/man3/SSL_set1_server_cert_type.html", "doc/html/man3/SSL_set_async_callback.html", "doc/html/man3/SSL_set_bio.html", + "doc/html/man3/SSL_set_blocking_mode.html", "doc/html/man3/SSL_set_connect_state.html", + "doc/html/man3/SSL_set_default_stream_mode.html", "doc/html/man3/SSL_set_fd.html", + "doc/html/man3/SSL_set_incoming_stream_policy.html", + "doc/html/man3/SSL_set_quic_tls_cbs.html", "doc/html/man3/SSL_set_retry_verify.html", "doc/html/man3/SSL_set_session.html", + "doc/html/man3/SSL_set_session_secret_cb.html", "doc/html/man3/SSL_set_shutdown.html", "doc/html/man3/SSL_set_verify_result.html", "doc/html/man3/SSL_shutdown.html", "doc/html/man3/SSL_state_string.html", + "doc/html/man3/SSL_stream_conclude.html", + "doc/html/man3/SSL_stream_reset.html", "doc/html/man3/SSL_want.html", "doc/html/man3/SSL_write.html", "doc/html/man3/TS_RESP_CTX_new.html", - "doc/html/man3/TS_VERIFY_CTX_set_certs.html", + "doc/html/man3/TS_VERIFY_CTX.html", "doc/html/man3/UI_STRING.html", "doc/html/man3/UI_UTIL_read_pw.html", "doc/html/man3/UI_create_method.html", "doc/html/man3/UI_new.html", "doc/html/man3/X509V3_get_d2i.html", "doc/html/man3/X509V3_set_ctx.html", + "doc/html/man3/X509_ACERT_add1_attr.html", + "doc/html/man3/X509_ACERT_add_attr_nconf.html", + "doc/html/man3/X509_ACERT_get0_holder_baseCertId.html", + "doc/html/man3/X509_ACERT_get_attr.html", + "doc/html/man3/X509_ACERT_print_ex.html", "doc/html/man3/X509_ALGOR_dup.html", "doc/html/man3/X509_ATTRIBUTE.html", "doc/html/man3/X509_CRL_get0_by_serial.html", @@ -16993,6 +19654,7 @@ our %unified_info = ( "doc/html/man3/X509_REQ_get_attr.html", "doc/html/man3/X509_REQ_get_extensions.html", "doc/html/man3/X509_SIG_get0.html", + "doc/html/man3/X509_STORE_CTX_get_by_subject.html", "doc/html/man3/X509_STORE_CTX_get_error.html", "doc/html/man3/X509_STORE_CTX_new.html", "doc/html/man3/X509_STORE_CTX_set_verify_cb.html", @@ -17015,6 +19677,7 @@ our %unified_info = ( "doc/html/man3/X509_get0_notBefore.html", "doc/html/man3/X509_get0_signature.html", "doc/html/man3/X509_get0_uids.html", + "doc/html/man3/X509_get_default_cert_file.html", "doc/html/man3/X509_get_extension_flags.html", "doc/html/man3/X509_get_pubkey.html", "doc/html/man3/X509_get_serialNumber.html", @@ -17060,12 +19723,15 @@ our %unified_info = ( "doc/html/man7/EVP_CIPHER-RC5.html", "doc/html/man7/EVP_CIPHER-SEED.html", "doc/html/man7/EVP_CIPHER-SM4.html", + "doc/html/man7/EVP_KDF-ARGON2.html", "doc/html/man7/EVP_KDF-HKDF.html", + "doc/html/man7/EVP_KDF-HMAC-DRBG.html", "doc/html/man7/EVP_KDF-KB.html", "doc/html/man7/EVP_KDF-KRB5KDF.html", "doc/html/man7/EVP_KDF-PBKDF1.html", "doc/html/man7/EVP_KDF-PBKDF2.html", "doc/html/man7/EVP_KDF-PKCS12KDF.html", + "doc/html/man7/EVP_KDF-PVKKDF.html", "doc/html/man7/EVP_KDF-SCRYPT.html", "doc/html/man7/EVP_KDF-SS.html", "doc/html/man7/EVP_KDF-SSHKDF.html", @@ -17074,7 +19740,10 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-X942-ASN1.html", "doc/html/man7/EVP_KDF-X942-CONCAT.html", "doc/html/man7/EVP_KDF-X963.html", + "doc/html/man7/EVP_KEM-EC.html", + "doc/html/man7/EVP_KEM-ML-KEM.html", "doc/html/man7/EVP_KEM-RSA.html", + "doc/html/man7/EVP_KEM-X25519.html", "doc/html/man7/EVP_KEYEXCH-DH.html", "doc/html/man7/EVP_KEYEXCH-ECDH.html", "doc/html/man7/EVP_KEYEXCH-X25519.html", @@ -17086,6 +19755,7 @@ our %unified_info = ( "doc/html/man7/EVP_MAC-Poly1305.html", "doc/html/man7/EVP_MAC-Siphash.html", "doc/html/man7/EVP_MD-BLAKE2.html", + "doc/html/man7/EVP_MD-KECCAK.html", "doc/html/man7/EVP_MD-MD2.html", "doc/html/man7/EVP_MD-MD4.html", "doc/html/man7/EVP_MD-MD5-SHA1.html", @@ -17105,12 +19775,17 @@ our %unified_info = ( "doc/html/man7/EVP_PKEY-EC.html", "doc/html/man7/EVP_PKEY-FFC.html", "doc/html/man7/EVP_PKEY-HMAC.html", + "doc/html/man7/EVP_PKEY-ML-DSA.html", + "doc/html/man7/EVP_PKEY-ML-KEM.html", "doc/html/man7/EVP_PKEY-RSA.html", + "doc/html/man7/EVP_PKEY-SLH-DSA.html", "doc/html/man7/EVP_PKEY-SM2.html", "doc/html/man7/EVP_PKEY-X25519.html", + "doc/html/man7/EVP_RAND-CRNG-TEST.html", "doc/html/man7/EVP_RAND-CTR-DRBG.html", "doc/html/man7/EVP_RAND-HASH-DRBG.html", "doc/html/man7/EVP_RAND-HMAC-DRBG.html", + "doc/html/man7/EVP_RAND-JITTER.html", "doc/html/man7/EVP_RAND-SEED-SRC.html", "doc/html/man7/EVP_RAND-TEST-RAND.html", "doc/html/man7/EVP_RAND.html", @@ -17118,17 +19793,19 @@ our %unified_info = ( "doc/html/man7/EVP_SIGNATURE-ECDSA.html", "doc/html/man7/EVP_SIGNATURE-ED25519.html", "doc/html/man7/EVP_SIGNATURE-HMAC.html", + "doc/html/man7/EVP_SIGNATURE-ML-DSA.html", "doc/html/man7/EVP_SIGNATURE-RSA.html", + "doc/html/man7/EVP_SIGNATURE-SLH-DSA.html", "doc/html/man7/OSSL_PROVIDER-FIPS.html", "doc/html/man7/OSSL_PROVIDER-base.html", "doc/html/man7/OSSL_PROVIDER-default.html", "doc/html/man7/OSSL_PROVIDER-legacy.html", "doc/html/man7/OSSL_PROVIDER-null.html", + "doc/html/man7/OSSL_STORE-winstore.html", "doc/html/man7/RAND.html", "doc/html/man7/RSA-PSS.html", "doc/html/man7/X25519.html", "doc/html/man7/bio.html", - "doc/html/man7/crypto.html", "doc/html/man7/ct.html", "doc/html/man7/des_modes.html", "doc/html/man7/evp.html", @@ -17139,14 +19816,31 @@ our %unified_info = ( "doc/html/man7/life_cycle-mac.html", "doc/html/man7/life_cycle-pkey.html", "doc/html/man7/life_cycle-rand.html", - "doc/html/man7/migration_guide.html", "doc/html/man7/openssl-core.h.html", "doc/html/man7/openssl-core_dispatch.h.html", "doc/html/man7/openssl-core_names.h.html", "doc/html/man7/openssl-env.html", "doc/html/man7/openssl-glossary.html", + "doc/html/man7/openssl-qlog.html", + "doc/html/man7/openssl-quic-concurrency.html", + "doc/html/man7/openssl-quic.html", "doc/html/man7/openssl-threads.html", "doc/html/man7/openssl_user_macros.html", + "doc/html/man7/ossl-guide-introduction.html", + "doc/html/man7/ossl-guide-libcrypto-introduction.html", + "doc/html/man7/ossl-guide-libraries-introduction.html", + "doc/html/man7/ossl-guide-libssl-introduction.html", + "doc/html/man7/ossl-guide-migration.html", + "doc/html/man7/ossl-guide-quic-client-block.html", + "doc/html/man7/ossl-guide-quic-client-non-block.html", + "doc/html/man7/ossl-guide-quic-introduction.html", + "doc/html/man7/ossl-guide-quic-multi-stream.html", + "doc/html/man7/ossl-guide-quic-server-block.html", + "doc/html/man7/ossl-guide-quic-server-non-block.html", + "doc/html/man7/ossl-guide-tls-client-block.html", + "doc/html/man7/ossl-guide-tls-client-non-block.html", + "doc/html/man7/ossl-guide-tls-introduction.html", + "doc/html/man7/ossl-guide-tls-server-block.html", "doc/html/man7/ossl_store-file.html", "doc/html/man7/ossl_store.html", "doc/html/man7/passphrase-encoding.html", @@ -17165,10 +19859,10 @@ our %unified_info = ( "doc/html/man7/provider-object.html", "doc/html/man7/provider-rand.html", "doc/html/man7/provider-signature.html", + "doc/html/man7/provider-skeymgmt.html", "doc/html/man7/provider-storemgmt.html", "doc/html/man7/provider.html", "doc/html/man7/proxy-certificates.html", - "doc/html/man7/ssl.html", "doc/html/man7/x509.html" ] }, @@ -17183,12 +19877,21 @@ our %unified_info = ( ] }, "includes" => { + "OpenSSLConfig.cmake" => [ + "." + ], + "OpenSSLConfigVersion.cmake" => [ + "." + ], "apps/asn1parse.o" => [ "apps" ], "apps/ca.o" => [ "apps" ], + "apps/ca_internals_test-bin-ca.o" => [ + "apps" + ], "apps/ciphers.o" => [ "apps" ], @@ -17415,6 +20118,9 @@ our %unified_info = ( "apps/openssl-bin-sess_id.o" => [ "apps" ], + "apps/openssl-bin-skeyutl.o" => [ + "apps" + ], "apps/openssl-bin-smime.o" => [ "apps" ], @@ -17502,6 +20208,9 @@ our %unified_info = ( "apps/sess_id.o" => [ "apps" ], + "apps/skeyutl.o" => [ + "apps" + ], "apps/smime.o" => [ "apps" ], @@ -17553,6 +20262,12 @@ our %unified_info = ( "crypto/aes/bsaes-armv7.o" => [ "crypto" ], + "crypto/aes/vpaes-armv8.o" => [ + "crypto" + ], + "crypto/aes/vpaes-loongarch64.o" => [ + "crypto" + ], "crypto/arm64cpuid.o" => [ "crypto" ], @@ -17604,9 +20319,15 @@ our %unified_info = ( "crypto/chacha/chacha-armv4.o" => [ "crypto" ], + "crypto/chacha/chacha-armv8-sve.o" => [ + "crypto" + ], "crypto/chacha/chacha-armv8.o" => [ "crypto" ], + "crypto/chacha/chacha-loongarch64.o" => [ + "crypto" + ], "crypto/chacha/chacha-s390x.o" => [ "crypto" ], @@ -17631,15 +20352,27 @@ our %unified_info = ( "crypto/ec/ecp_s390x_nistp.o" => [ "crypto" ], + "crypto/ec/ecp_sm2p256-armv8.o" => [ + "crypto" + ], + "crypto/ec/ecx_key.o" => [ + "crypto" + ], "crypto/ec/ecx_meth.o" => [ "crypto" ], "crypto/ec/ecx_s390x.o" => [ "crypto" ], + "crypto/ec/libcrypto-lib-ecx_key.o" => [ + "crypto" + ], "crypto/ec/libcrypto-lib-ecx_meth.o" => [ "crypto" ], + "crypto/ec/libfips-lib-ecx_key.o" => [ + "crypto" + ], "crypto/evp/e_aes.o" => [ "crypto", "crypto/modes" @@ -17711,9 +20444,18 @@ our %unified_info = ( "crypto/libfips-lib-cpuid.o" => [ "." ], + "crypto/md5/md5-aarch64.o" => [ + "crypto" + ], + "crypto/md5/md5-loongarch64.o" => [ + "crypto" + ], "crypto/md5/md5-sparcv9.o" => [ "crypto" ], + "crypto/modes/aes-gcm-armv8-unroll8_64.o" => [ + "crypto" + ], "crypto/modes/aes-gcm-armv8_64.o" => [ "crypto" ], @@ -17738,6 +20480,9 @@ our %unified_info = ( "crypto/modes/libfips-lib-gcm128.o" => [ "crypto" ], + "crypto/params_idx.c" => [ + "util/perl" + ], "crypto/poly1305/poly1305-armv4.o" => [ "crypto" ], @@ -17759,6 +20504,9 @@ our %unified_info = ( "crypto/sha/keccak1600-armv4.o" => [ "crypto" ], + "crypto/sha/keccak1600-armv8.o" => [ + "crypto" + ], "crypto/sha/sha1-armv4-large.o" => [ "crypto" ], @@ -17804,6 +20552,18 @@ our %unified_info = ( "crypto/sha/sha512-sparcv9.o" => [ "crypto" ], + "crypto/sm3/sm3-armv8.o" => [ + "crypto" + ], + "crypto/sm4/sm4-armv8.o" => [ + "crypto" + ], + "crypto/sm4/vpsm4-armv8.o" => [ + "crypto" + ], + "crypto/sm4/vpsm4_ex-armv8.o" => [ + "crypto" + ], "doc/man1/openssl-asn1parse.pod" => [ "doc" ], @@ -17936,6 +20696,9 @@ our %unified_info = ( "doc/man1/openssl-sess_id.pod" => [ "doc" ], + "doc/man1/openssl-skeyutl.pod" => [ + "doc" + ], "doc/man1/openssl-smime.pod" => [ "doc" ], @@ -17963,6 +20726,24 @@ our %unified_info = ( "doc/man1/openssl-x509.pod" => [ "doc" ], + "exporters/OpenSSLConfig.cmake" => [ + "." + ], + "exporters/OpenSSLConfigVersion.cmake" => [ + "." + ], + "exporters/libcrypto.pc" => [ + "." + ], + "exporters/libssl.pc" => [ + "." + ], + "exporters/openssl.pc" => [ + "." + ], + "fuzz/acert-test" => [ + "include" + ], "fuzz/asn1-test" => [ "include" ], @@ -17993,12 +20774,69 @@ our %unified_info = ( "fuzz/ct-test" => [ "include" ], + "fuzz/decoder-test" => [ + "include" + ], + "fuzz/dtlsclient-test" => [ + "include" + ], + "fuzz/dtlsserver-test" => [ + "include" + ], + "fuzz/hashtable-test" => [ + "include" + ], + "fuzz/ml-dsa-test" => [ + "include" + ], + "fuzz/ml-kem-test" => [ + "include" + ], + "fuzz/pem-test" => [ + "include" + ], + "fuzz/provider-test" => [ + "include" + ], + "fuzz/punycode-test" => [ + "include" + ], + "fuzz/quic-client-test" => [ + "include" + ], + "fuzz/quic-lcidm-test" => [ + "include" + ], + "fuzz/quic-rcidm-test" => [ + "include" + ], + "fuzz/quic-server-test" => [ + "include" + ], + "fuzz/quic-srtm-test" => [ + "include" + ], "fuzz/server-test" => [ "include" ], + "fuzz/slh-dsa-test" => [ + "include" + ], + "fuzz/smime-test" => [ + "include" + ], + "fuzz/v3name-test" => [ + "include" + ], "fuzz/x509-test" => [ "include" ], + "include/internal/param_names.h" => [ + "util/perl" + ], + "include/openssl/core_names.h" => [ + "util/perl" + ], "libcrypto" => [ ".", "include", @@ -18009,6 +20847,9 @@ our %unified_info = ( ".", "util/perl/OpenSSL" ], + "libcrypto.pc" => [ + "." + ], "libssl" => [ ".", "include" @@ -18017,6 +20858,12 @@ our %unified_info = ( ".", "util/perl/OpenSSL" ], + "libssl.pc" => [ + "." + ], + "openssl.pc" => [ + "." + ], "providers/common/der/der_digests_gen.c" => [ "providers/common/der" ], @@ -18056,6 +20903,15 @@ our %unified_info = ( "providers/common/der/der_ecx_key.o" => [ "providers/common/include/prov" ], + "providers/common/der/der_ml_dsa_gen.c" => [ + "providers/common/der" + ], + "providers/common/der/der_ml_dsa_gen.o" => [ + "providers/common/include/prov" + ], + "providers/common/der/der_ml_dsa_key.o" => [ + "providers/common/include/prov" + ], "providers/common/der/der_rsa_gen.c" => [ "providers/common/der" ], @@ -18068,6 +20924,15 @@ our %unified_info = ( "providers/common/der/der_rsa_sig.o" => [ "providers/common/include/prov" ], + "providers/common/der/der_slh_dsa_gen.c" => [ + "providers/common/der" + ], + "providers/common/der/der_slh_dsa_gen.o" => [ + "providers/common/include/prov" + ], + "providers/common/der/der_slh_dsa_key.o" => [ + "providers/common/include/prov" + ], "providers/common/der/der_sm2_gen.c" => [ "providers/common/der" ], @@ -18113,12 +20978,24 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ecx_key.o" => [ "providers/common/include/prov" ], + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o" => [ + "providers/common/include/prov" + ], + "providers/common/der/libcommon-lib-der_ml_dsa_key.o" => [ + "providers/common/include/prov" + ], "providers/common/der/libcommon-lib-der_rsa_gen.o" => [ "providers/common/include/prov" ], "providers/common/der/libcommon-lib-der_rsa_key.o" => [ "providers/common/include/prov" ], + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o" => [ + "providers/common/include/prov" + ], + "providers/common/der/libcommon-lib-der_slh_dsa_key.o" => [ + "providers/common/include/prov" + ], "providers/common/der/libcommon-lib-der_wrap_gen.o" => [ "providers/common/include/prov" ], @@ -18149,9 +21026,15 @@ our %unified_info = ( "providers/common/include/prov/der_ecx.h" => [ "providers/common/der" ], + "providers/common/include/prov/der_ml_dsa.h" => [ + "providers/common/der" + ], "providers/common/include/prov/der_rsa.h" => [ "providers/common/der" ], + "providers/common/include/prov/der_slh_dsa.h" => [ + "providers/common/der" + ], "providers/common/include/prov/der_sm2.h" => [ "providers/common/der" ], @@ -18194,9 +21077,15 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-eddsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/libdefault-lib-rsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/libdefault-lib-sm2_sig.o" => [ "providers/common/include/prov" ], @@ -18209,12 +21098,24 @@ our %unified_info = ( "providers/implementations/signature/libfips-lib-eddsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/libfips-lib-rsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o" => [ + "providers/common/include/prov" + ], + "providers/implementations/signature/ml_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/rsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/slh_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/sm2_sig.o" => [ "providers/common/include/prov" ], @@ -18227,28 +21128,39 @@ our %unified_info = ( "crypto", "include", "providers/implementations/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" ], "providers/libdefault.a" => [ ".", "crypto", "include", "providers/implementations/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" ], "providers/libfips.a" => [ ".", "crypto", "include", "providers/implementations/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" ], "providers/liblegacy.a" => [ ".", "crypto", "include", "providers/implementations/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" + ], + "providers/libtemplate.a" => [ + "crypto", + "include", + "providers/implementations/include", + "providers/common/include", + "providers/fips/include" ], "test/aborttest" => [ "include", @@ -18317,6 +21229,14 @@ our %unified_info = ( "include", "apps/include" ], + "test/bio_addr_test" => [ + "include", + "apps/include" + ], + "test/bio_base64_test" => [ + "include", + "apps/include" + ], "test/bio_callback_test" => [ "include", "apps/include" @@ -18325,11 +21245,20 @@ our %unified_info = ( "include", "apps/include" ], + "test/bio_dgram_test" => [ + "include", + "apps/include", + "." + ], "test/bio_enc_test" => [ "include", "apps/include" ], - "test/bio_memleak_test" => [ + "test/bio_memleak_test" => [ + "include", + "apps/include" + ], + "test/bio_meth_test" => [ "include", "apps/include" ], @@ -18346,6 +21275,11 @@ our %unified_info = ( "include", "apps/include" ], + "test/bio_tfo_test" => [ + "include", + "apps/include", + "." + ], "test/bioprinttest" => [ "include", "apps/include" @@ -18360,6 +21294,9 @@ our %unified_info = ( "include", "apps/include" ], + "test/build_wincrypt_test" => [ + "include" + ], "test/buildtest_c_aes" => [ "include" ], @@ -18375,6 +21312,9 @@ our %unified_info = ( "test/buildtest_c_buffer" => [ "include" ], + "test/buildtest_c_byteorder" => [ + "include" + ], "test/buildtest_c_camellia" => [ "include" ], @@ -18399,9 +21339,6 @@ our %unified_info = ( "test/buildtest_c_core_dispatch" => [ "include" ], - "test/buildtest_c_core_names" => [ - "include" - ], "test/buildtest_c_core_object" => [ "include" ], @@ -18426,6 +21363,9 @@ our %unified_info = ( "test/buildtest_c_e_os2" => [ "include" ], + "test/buildtest_c_e_ostime" => [ + "include" + ], "test/buildtest_c_ebcdic" => [ "include" ], @@ -18453,12 +21393,18 @@ our %unified_info = ( "test/buildtest_c_hmac" => [ "include" ], + "test/buildtest_c_hpke" => [ + "include" + ], "test/buildtest_c_http" => [ "include" ], "test/buildtest_c_idea" => [ "include" ], + "test/buildtest_c_indicator" => [ + "include" + ], "test/buildtest_c_kdf" => [ "include" ], @@ -18474,6 +21420,9 @@ our %unified_info = ( "test/buildtest_c_mdc2" => [ "include" ], + "test/buildtest_c_ml_kem" => [ + "include" + ], "test/buildtest_c_modes" => [ "include" ], @@ -18504,6 +21453,9 @@ our %unified_info = ( "test/buildtest_c_provider" => [ "include" ], + "test/buildtest_c_quic" => [ + "include" + ], "test/buildtest_c_rand" => [ "include" ], @@ -18546,6 +21498,9 @@ our %unified_info = ( "test/buildtest_c_symhacks" => [ "include" ], + "test/buildtest_c_thread" => [ + "include" + ], "test/buildtest_c_tls1" => [ "include" ], @@ -18561,10 +21516,24 @@ our %unified_info = ( "test/buildtest_c_whrlpool" => [ "include" ], + "test/byteorder_test" => [ + "include", + "apps/include" + ], + "test/ca_internals_test" => [ + ".", + "include", + "apps/include" + ], "test/casttest" => [ "include", "apps/include" ], + "test/cert_comp_test" => [ + "include", + "apps/include", + "." + ], "test/chacha_internal_test" => [ ".", "include", @@ -18688,6 +21657,11 @@ our %unified_info = ( "include", "apps/include" ], + "test/decoder_propq_test" => [ + ".", + "include", + "apps/include" + ], "test/defltfips_test" => [ "include", "apps/include" @@ -18703,7 +21677,8 @@ our %unified_info = ( "test/drbgtest" => [ "include", "apps/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" ], "test/dsa_no_digest_size_test" => [ "include", @@ -18746,7 +21721,9 @@ our %unified_info = ( "test/endecode_test" => [ ".", "include", - "apps/include" + "apps/include", + "providers/common/include", + "providers/implementations/include" ], "test/endecoder_legacy_test" => [ ".", @@ -18791,6 +21768,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/evp_pkey_dhkem_test" => [ + "include", + "apps/include" + ], "test/evp_pkey_dparams_test" => [ "include", "apps/include" @@ -18799,10 +21780,18 @@ our %unified_info = ( "include", "apps/include" ], + "test/evp_skey_test" => [ + "include", + "apps/include" + ], "test/evp_test" => [ "include", "apps/include" ], + "test/evp_xof_test" => [ + "include", + "apps/include" + ], "test/exdatatest" => [ "include", "apps/include" @@ -18903,22 +21892,62 @@ our %unified_info = ( ".", "include" ], + "test/helpers/json_test-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/helpers/pkcs12.o" => [ ".", "include" ], + "test/helpers/pkcs12_api_test-bin-pkcs12.o" => [ + ".", + "include" + ], "test/helpers/pkcs12_format_test-bin-pkcs12.o" => [ ".", "include" ], + "test/helpers/quic_multistream_test-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quic_newcid_test-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quic_radix_test-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quic_srt_gen_test-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quicapitest-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quicfaultstest-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/helpers/recordlentest-bin-ssltestlib.o" => [ ".", "include" ], + "test/helpers/rpktest-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/helpers/servername_test-bin-ssltestlib.o" => [ ".", "include" ], + "test/helpers/ssl_handshake_rtt_test-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/helpers/ssl_test-bin-handshake.o" => [ ".", "include" @@ -18952,6 +21981,10 @@ our %unified_info = ( ".", "include" ], + "test/helpers/tls13groupselection_test-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/hexstr_test" => [ ".", "include", @@ -18961,6 +21994,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/hpke_test" => [ + "include", + "apps/include" + ], "test/http_test" => [ "include", "apps/include" @@ -18973,6 +22010,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/json_test" => [ + "include", + "apps/include" + ], "test/keymgmt_internal_test" => [ ".", "include", @@ -18987,6 +22028,10 @@ our %unified_info = ( "apps/include", "." ], + "test/list_test" => [ + "include", + "apps/include" + ], "test/localetest" => [ "include", "apps/include" @@ -19000,10 +22045,27 @@ our %unified_info = ( "include", "apps/include" ], + "test/membio_test" => [ + "include", + "apps/include", + "." + ], "test/memleaktest" => [ "include", "apps/include" ], + "test/ml_dsa_test" => [ + "include", + "apps/include" + ], + "test/ml_kem_evp_extra_test" => [ + "include", + "apps/include" + ], + "test/ml_kem_internal_test" => [ + "include", + "apps/include" + ], "test/modes_internal_test" => [ ".", "include", @@ -19038,6 +22100,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/pairwise_fail_test" => [ + "include", + "apps/include" + ], "test/param_build_test" => [ "include", "apps/include" @@ -19071,6 +22137,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/pkcs12_api_test" => [ + "include", + "apps/include" + ], "test/pkcs12_format_test" => [ "include", "apps/include" @@ -19092,6 +22162,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/priority_queue_test" => [ + "include", + "apps/include" + ], "test/property_test" => [ ".", "include", @@ -19105,6 +22179,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/provider_default_search_path_test" => [ + "include", + "apps/include" + ], "test/provider_fallback_test" => [ "include", "apps/include" @@ -19131,6 +22209,97 @@ our %unified_info = ( "include", "apps/include" ], + "test/quic_ackm_test" => [ + "include", + "apps/include" + ], + "test/quic_cc_test" => [ + "include", + "apps/include" + ], + "test/quic_cfq_test" => [ + "include", + "apps/include" + ], + "test/quic_client_test" => [ + "include", + "apps/include" + ], + "test/quic_fc_test" => [ + "include", + "apps/include" + ], + "test/quic_fifd_test" => [ + "include", + "apps/include" + ], + "test/quic_lcidm_test" => [ + "include", + "apps/include" + ], + "test/quic_multistream_test" => [ + "include", + "apps/include" + ], + "test/quic_newcid_test" => [ + "include", + "apps/include", + "." + ], + "test/quic_qlog_test" => [ + "include", + "apps/include" + ], + "test/quic_radix_test" => [ + "include", + "apps/include" + ], + "test/quic_rcidm_test" => [ + "include", + "apps/include" + ], + "test/quic_record_test" => [ + "include", + "apps/include" + ], + "test/quic_srt_gen_test" => [ + "include", + "apps/include", + "." + ], + "test/quic_srtm_test" => [ + "include", + "apps/include" + ], + "test/quic_stream_test" => [ + "include", + "apps/include" + ], + "test/quic_tserver_test" => [ + "include", + "apps/include" + ], + "test/quic_txp_test" => [ + "include", + "apps/include" + ], + "test/quic_txpim_test" => [ + "include", + "apps/include" + ], + "test/quic_wire_test" => [ + "include", + "apps/include" + ], + "test/quicapitest" => [ + "include", + "apps/include" + ], + "test/quicfaultstest" => [ + "include", + "apps/include", + "." + ], "test/rand_status_test" => [ "include", "apps/include" @@ -19151,14 +22320,20 @@ our %unified_info = ( "include", "apps/include" ], - "test/rdrand_sanitytest" => [ + "test/rdcpu_sanitytest" => [ "include", - "apps/include" + "apps/include", + "crypto" ], "test/recordlentest" => [ "include", "apps/include" ], + "test/rpktest" => [ + "include", + "apps/include", + "." + ], "test/rsa_complex" => [ "include", "apps/include" @@ -19177,6 +22352,15 @@ our %unified_info = ( "include", "apps/include" ], + "test/rsa_x931_test" => [ + ".", + "include", + "apps/include" + ], + "test/safe_math_test" => [ + "include", + "apps/include" + ], "test/sanitytest" => [ "include", "apps/include" @@ -19198,6 +22382,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/slh_dsa_test" => [ + "include", + "apps/include" + ], "test/sm2_internal_test" => [ "include", "apps/include" @@ -19228,6 +22416,11 @@ our %unified_info = ( "include", "apps/include" ], + "test/ssl_handshake_rtt_test" => [ + "include", + "apps/include", + "." + ], "test/ssl_old_test" => [ ".", "include", @@ -19244,6 +22437,7 @@ our %unified_info = ( "test/sslapitest" => [ "include", "apps/include", + "providers/common/include", "." ], "test/sslbuffertest" => [ @@ -19258,6 +22452,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/strtoultest" => [ + "include", + "apps/include" + ], "test/sysdefaulttest" => [ "include", "apps/include" @@ -19266,7 +22464,13 @@ our %unified_info = ( "include", "apps/include" ], + "test/threadpool_test" => [ + ".", + "include", + "apps/include" + ], "test/threadstest" => [ + ".", "include", "apps/include" ], @@ -19278,6 +22482,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/time_test" => [ + "include", + "apps/include" + ], "test/tls13ccstest" => [ "include", "apps/include" @@ -19287,6 +22495,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/tls13groupselection_test" => [ + "include", + "apps/include" + ], "test/trace_api_test" => [ ".", "include", @@ -19325,6 +22537,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/x509_acert_test" => [ + "include", + "apps/include" + ], "test/x509_check_cert_pkey_test" => [ "include", "apps/include" @@ -19338,6 +22554,18 @@ our %unified_info = ( "include", "apps/include" ], + "test/x509_load_cert_file_test" => [ + "include", + "apps/include" + ], + "test/x509_req_test" => [ + "include", + "apps/include" + ], + "test/x509_test" => [ + "include", + "apps/include" + ], "test/x509_time_test" => [ "include", "apps/include" @@ -19359,6 +22587,7 @@ our %unified_info = ( "providers/libdefault.a", "providers/libfips.a", "providers/liblegacy.a", + "providers/libtemplate.a", "test/libtestutil.a" ], "mandocs" => { @@ -19411,6 +22640,7 @@ our %unified_info = ( "doc/man/man1/openssl-s_server.1", "doc/man/man1/openssl-s_time.1", "doc/man/man1/openssl-sess_id.1", + "doc/man/man1/openssl-skeyutl.1", "doc/man/man1/openssl-smime.1", "doc/man/man1/openssl-speed.1", "doc/man/man1/openssl-spkac.1", @@ -19460,6 +22690,7 @@ our %unified_info = ( "doc/man/man3/BIO_find_type.3", "doc/man/man3/BIO_get_data.3", "doc/man/man3/BIO_get_ex_new_index.3", + "doc/man/man3/BIO_get_rpoll_descriptor.3", "doc/man/man3/BIO_meth_new.3", "doc/man/man3/BIO_new.3", "doc/man/man3/BIO_new_CMS.3", @@ -19472,11 +22703,13 @@ our %unified_info = ( "doc/man/man3/BIO_s_connect.3", "doc/man/man3/BIO_s_core.3", "doc/man/man3/BIO_s_datagram.3", + "doc/man/man3/BIO_s_dgram_pair.3", "doc/man/man3/BIO_s_fd.3", "doc/man/man3/BIO_s_file.3", "doc/man/man3/BIO_s_mem.3", "doc/man/man3/BIO_s_null.3", "doc/man/man3/BIO_s_socket.3", + "doc/man/man3/BIO_sendmmsg.3", "doc/man/man3/BIO_set_callback.3", "doc/man/man3/BIO_should_retry.3", "doc/man/man3/BIO_socket_wait.3", @@ -19501,6 +22734,7 @@ our %unified_info = ( "doc/man/man3/BN_swap.3", "doc/man/man3/BN_zero.3", "doc/man/man3/BUF_MEM_new.3", + "doc/man/man3/CMAC_CTX.3", "doc/man/man3/CMS_EncryptedData_decrypt.3", "doc/man/man3/CMS_EncryptedData_encrypt.3", "doc/man/man3/CMS_EnvelopedData_create.3", @@ -19523,6 +22757,7 @@ our %unified_info = ( "doc/man/man3/CMS_uncompress.3", "doc/man/man3/CMS_verify.3", "doc/man/man3/CMS_verify_receipt.3", + "doc/man/man3/COMP_CTX_new.3", "doc/man/man3/CONF_modules_free.3", "doc/man/man3/CONF_modules_load_file.3", "doc/man/man3/CRYPTO_THREAD_run_once.3", @@ -19556,6 +22791,8 @@ our %unified_info = ( "doc/man/man3/DSA_size.3", "doc/man/man3/DTLS_get_data_mtu.3", "doc/man/man3/DTLS_set_timer_cb.3", + "doc/man/man3/DTLSv1_get_timeout.3", + "doc/man/man3/DTLSv1_handle_timeout.3", "doc/man/man3/DTLSv1_listen.3", "doc/man/man3/ECDSA_SIG_new.3", "doc/man/man3/ECDSA_sign.3", @@ -19602,6 +22839,7 @@ our %unified_info = ( "doc/man/man3/EVP_PKEY_CTX_ctrl.3", "doc/man/man3/EVP_PKEY_CTX_get0_libctx.3", "doc/man/man3/EVP_PKEY_CTX_get0_pkey.3", + "doc/man/man3/EVP_PKEY_CTX_get_algor.3", "doc/man/man3/EVP_PKEY_CTX_new.3", "doc/man/man3/EVP_PKEY_CTX_set1_pbe_pass.3", "doc/man/man3/EVP_PKEY_CTX_set_hkdf_md.3", @@ -19641,6 +22879,8 @@ our %unified_info = ( "doc/man/man3/EVP_PKEY_verify_recover.3", "doc/man/man3/EVP_RAND.3", "doc/man/man3/EVP_SIGNATURE.3", + "doc/man/man3/EVP_SKEY.3", + "doc/man/man3/EVP_SKEYMGMT.3", "doc/man/man3/EVP_SealInit.3", "doc/man/man3/EVP_SignInit.3", "doc/man/man3/EVP_VerifyInit.3", @@ -19670,6 +22910,7 @@ our %unified_info = ( "doc/man/man3/EVP_sm3.3", "doc/man/man3/EVP_sm4_cbc.3", "doc/man/man3/EVP_whirlpool.3", + "doc/man/man3/GENERAL_NAME.3", "doc/man/man3/HMAC.3", "doc/man/man3/MD5.3", "doc/man/man3/MDC2_Init.3", @@ -19694,14 +22935,18 @@ our %unified_info = ( "doc/man/man3/OPENSSL_init_ssl.3", "doc/man/man3/OPENSSL_instrument_bus.3", "doc/man/man3/OPENSSL_load_builtin_modules.3", + "doc/man/man3/OPENSSL_load_u16_le.3", "doc/man/man3/OPENSSL_malloc.3", + "doc/man/man3/OPENSSL_riscvcap.3", "doc/man/man3/OPENSSL_s390xcap.3", "doc/man/man3/OPENSSL_secure_malloc.3", "doc/man/man3/OPENSSL_strcasecmp.3", "doc/man/man3/OSSL_ALGORITHM.3", "doc/man/man3/OSSL_CALLBACK.3", + "doc/man/man3/OSSL_CMP_ATAV_set0.3", "doc/man/man3/OSSL_CMP_CTX_new.3", "doc/man/man3/OSSL_CMP_HDR_get0_transactionID.3", + "doc/man/man3/OSSL_CMP_ITAV_new_caCerts.3", "doc/man/man3/OSSL_CMP_ITAV_set0.3", "doc/man/man3/OSSL_CMP_MSG_get0_header.3", "doc/man/man3/OSSL_CMP_MSG_http_perform.3", @@ -19725,18 +22970,27 @@ our %unified_info = ( "doc/man/man3/OSSL_ENCODER_CTX.3", "doc/man/man3/OSSL_ENCODER_CTX_new_for_pkey.3", "doc/man/man3/OSSL_ENCODER_to_bio.3", + "doc/man/man3/OSSL_ERR_STATE_save.3", "doc/man/man3/OSSL_ESS_check_signing_certs.3", + "doc/man/man3/OSSL_GENERAL_NAMES_print.3", + "doc/man/man3/OSSL_HPKE_CTX_new.3", "doc/man/man3/OSSL_HTTP_REQ_CTX.3", "doc/man/man3/OSSL_HTTP_parse_url.3", "doc/man/man3/OSSL_HTTP_transfer.3", + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX.3", + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX_print.3", + "doc/man/man3/OSSL_INDICATOR_set_callback.3", "doc/man/man3/OSSL_ITEM.3", "doc/man/man3/OSSL_LIB_CTX.3", + "doc/man/man3/OSSL_LIB_CTX_set_conf_diagnostics.3", "doc/man/man3/OSSL_PARAM.3", "doc/man/man3/OSSL_PARAM_BLD.3", "doc/man/man3/OSSL_PARAM_allocate_from_text.3", "doc/man/man3/OSSL_PARAM_dup.3", "doc/man/man3/OSSL_PARAM_int.3", + "doc/man/man3/OSSL_PARAM_print_to_bio.3", "doc/man/man3/OSSL_PROVIDER.3", + "doc/man/man3/OSSL_QUIC_client_method.3", "doc/man/man3/OSSL_SELF_TEST_new.3", "doc/man/man3/OSSL_SELF_TEST_set_callback.3", "doc/man/man3/OSSL_STORE_INFO.3", @@ -19745,11 +22999,13 @@ our %unified_info = ( "doc/man/man3/OSSL_STORE_attach.3", "doc/man/man3/OSSL_STORE_expect.3", "doc/man/man3/OSSL_STORE_open.3", + "doc/man/man3/OSSL_sleep.3", "doc/man/man3/OSSL_trace_enabled.3", "doc/man/man3/OSSL_trace_get_category_num.3", "doc/man/man3/OSSL_trace_set_channel.3", "doc/man/man3/OpenSSL_add_all_algorithms.3", "doc/man/man3/OpenSSL_version.3", + "doc/man/man3/PBMAC1_get1_pbkdf2_param.3", "doc/man/man3/PEM_X509_INFO_read_bio_ex.3", "doc/man/man3/PEM_bytes_read_bio.3", "doc/man/man3/PEM_read.3", @@ -19762,6 +23018,7 @@ our %unified_info = ( "doc/man/man3/PKCS12_SAFEBAG_create_cert.3", "doc/man/man3/PKCS12_SAFEBAG_get0_attrs.3", "doc/man/man3/PKCS12_SAFEBAG_get1_cert.3", + "doc/man/man3/PKCS12_SAFEBAG_set0_attrs.3", "doc/man/man3/PKCS12_add1_attr_by_NID.3", "doc/man/man3/PKCS12_add_CSPName_asc.3", "doc/man/man3/PKCS12_add_cert.3", @@ -19853,6 +23110,7 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_sess_set_get_cb.3", "doc/man/man3/SSL_CTX_sessions.3", "doc/man/man3/SSL_CTX_set0_CA_list.3", + "doc/man/man3/SSL_CTX_set1_cert_comp_preference.3", "doc/man/man3/SSL_CTX_set1_curves.3", "doc/man/man3/SSL_CTX_set1_sigalgs.3", "doc/man/man3/SSL_CTX_set1_verify_cert_store.3", @@ -19866,6 +23124,7 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_ct_validation_callback.3", "doc/man/man3/SSL_CTX_set_ctlog_list_file.3", "doc/man/man3/SSL_CTX_set_default_passwd_cb.3", + "doc/man/man3/SSL_CTX_set_domain_flags.3", "doc/man/man3/SSL_CTX_set_generate_session_id.3", "doc/man/man3/SSL_CTX_set_info_callback.3", "doc/man/man3/SSL_CTX_set_keylog_callback.3", @@ -19873,6 +23132,7 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_min_proto_version.3", "doc/man/man3/SSL_CTX_set_mode.3", "doc/man/man3/SSL_CTX_set_msg_callback.3", + "doc/man/man3/SSL_CTX_set_new_pending_conn_cb.3", "doc/man/man3/SSL_CTX_set_num_tickets.3", "doc/man/man3/SSL_CTX_set_options.3", "doc/man/man3/SSL_CTX_set_psk_client_callback.3", @@ -19911,6 +23171,7 @@ our %unified_info = ( "doc/man/man3/SSL_SESSION_print.3", "doc/man/man3/SSL_SESSION_set1_id.3", "doc/man/man3/SSL_accept.3", + "doc/man/man3/SSL_accept_stream.3", "doc/man/man3/SSL_alert_type_string.3", "doc/man/man3/SSL_alloc_buffers.3", "doc/man/man3/SSL_check_chain.3", @@ -19920,59 +23181,90 @@ our %unified_info = ( "doc/man/man3/SSL_export_keying_material.3", "doc/man/man3/SSL_extension_supported.3", "doc/man/man3/SSL_free.3", + "doc/man/man3/SSL_get0_connection.3", + "doc/man/man3/SSL_get0_group_name.3", + "doc/man/man3/SSL_get0_peer_rpk.3", "doc/man/man3/SSL_get0_peer_scts.3", + "doc/man/man3/SSL_get1_builtin_sigalgs.3", "doc/man/man3/SSL_get_SSL_CTX.3", "doc/man/man3/SSL_get_all_async_fds.3", "doc/man/man3/SSL_get_certificate.3", "doc/man/man3/SSL_get_ciphers.3", "doc/man/man3/SSL_get_client_random.3", + "doc/man/man3/SSL_get_conn_close_info.3", "doc/man/man3/SSL_get_current_cipher.3", "doc/man/man3/SSL_get_default_timeout.3", "doc/man/man3/SSL_get_error.3", + "doc/man/man3/SSL_get_event_timeout.3", "doc/man/man3/SSL_get_extms_support.3", "doc/man/man3/SSL_get_fd.3", + "doc/man/man3/SSL_get_handshake_rtt.3", "doc/man/man3/SSL_get_peer_cert_chain.3", "doc/man/man3/SSL_get_peer_certificate.3", "doc/man/man3/SSL_get_peer_signature_nid.3", "doc/man/man3/SSL_get_peer_tmp_key.3", "doc/man/man3/SSL_get_psk_identity.3", "doc/man/man3/SSL_get_rbio.3", + "doc/man/man3/SSL_get_rpoll_descriptor.3", "doc/man/man3/SSL_get_session.3", "doc/man/man3/SSL_get_shared_sigalgs.3", + "doc/man/man3/SSL_get_stream_id.3", + "doc/man/man3/SSL_get_stream_read_state.3", + "doc/man/man3/SSL_get_value_uint.3", "doc/man/man3/SSL_get_verify_result.3", "doc/man/man3/SSL_get_version.3", "doc/man/man3/SSL_group_to_name.3", + "doc/man/man3/SSL_handle_events.3", "doc/man/man3/SSL_in_init.3", + "doc/man/man3/SSL_inject_net_dgram.3", "doc/man/man3/SSL_key_update.3", "doc/man/man3/SSL_library_init.3", "doc/man/man3/SSL_load_client_CA_file.3", "doc/man/man3/SSL_new.3", + "doc/man/man3/SSL_new_domain.3", + "doc/man/man3/SSL_new_listener.3", + "doc/man/man3/SSL_new_stream.3", "doc/man/man3/SSL_pending.3", + "doc/man/man3/SSL_poll.3", "doc/man/man3/SSL_read.3", "doc/man/man3/SSL_read_early_data.3", "doc/man/man3/SSL_rstate_string.3", "doc/man/man3/SSL_session_reused.3", "doc/man/man3/SSL_set1_host.3", + "doc/man/man3/SSL_set1_initial_peer_addr.3", + "doc/man/man3/SSL_set1_server_cert_type.3", "doc/man/man3/SSL_set_async_callback.3", "doc/man/man3/SSL_set_bio.3", + "doc/man/man3/SSL_set_blocking_mode.3", "doc/man/man3/SSL_set_connect_state.3", + "doc/man/man3/SSL_set_default_stream_mode.3", "doc/man/man3/SSL_set_fd.3", + "doc/man/man3/SSL_set_incoming_stream_policy.3", + "doc/man/man3/SSL_set_quic_tls_cbs.3", "doc/man/man3/SSL_set_retry_verify.3", "doc/man/man3/SSL_set_session.3", + "doc/man/man3/SSL_set_session_secret_cb.3", "doc/man/man3/SSL_set_shutdown.3", "doc/man/man3/SSL_set_verify_result.3", "doc/man/man3/SSL_shutdown.3", "doc/man/man3/SSL_state_string.3", + "doc/man/man3/SSL_stream_conclude.3", + "doc/man/man3/SSL_stream_reset.3", "doc/man/man3/SSL_want.3", "doc/man/man3/SSL_write.3", "doc/man/man3/TS_RESP_CTX_new.3", - "doc/man/man3/TS_VERIFY_CTX_set_certs.3", + "doc/man/man3/TS_VERIFY_CTX.3", "doc/man/man3/UI_STRING.3", "doc/man/man3/UI_UTIL_read_pw.3", "doc/man/man3/UI_create_method.3", "doc/man/man3/UI_new.3", "doc/man/man3/X509V3_get_d2i.3", "doc/man/man3/X509V3_set_ctx.3", + "doc/man/man3/X509_ACERT_add1_attr.3", + "doc/man/man3/X509_ACERT_add_attr_nconf.3", + "doc/man/man3/X509_ACERT_get0_holder_baseCertId.3", + "doc/man/man3/X509_ACERT_get_attr.3", + "doc/man/man3/X509_ACERT_print_ex.3", "doc/man/man3/X509_ALGOR_dup.3", "doc/man/man3/X509_ATTRIBUTE.3", "doc/man/man3/X509_CRL_get0_by_serial.3", @@ -19989,6 +23281,7 @@ our %unified_info = ( "doc/man/man3/X509_REQ_get_attr.3", "doc/man/man3/X509_REQ_get_extensions.3", "doc/man/man3/X509_SIG_get0.3", + "doc/man/man3/X509_STORE_CTX_get_by_subject.3", "doc/man/man3/X509_STORE_CTX_get_error.3", "doc/man/man3/X509_STORE_CTX_new.3", "doc/man/man3/X509_STORE_CTX_set_verify_cb.3", @@ -20011,6 +23304,7 @@ our %unified_info = ( "doc/man/man3/X509_get0_notBefore.3", "doc/man/man3/X509_get0_signature.3", "doc/man/man3/X509_get0_uids.3", + "doc/man/man3/X509_get_default_cert_file.3", "doc/man/man3/X509_get_extension_flags.3", "doc/man/man3/X509_get_pubkey.3", "doc/man/man3/X509_get_serialNumber.3", @@ -20056,12 +23350,15 @@ our %unified_info = ( "doc/man/man7/EVP_CIPHER-RC5.7", "doc/man/man7/EVP_CIPHER-SEED.7", "doc/man/man7/EVP_CIPHER-SM4.7", + "doc/man/man7/EVP_KDF-ARGON2.7", "doc/man/man7/EVP_KDF-HKDF.7", + "doc/man/man7/EVP_KDF-HMAC-DRBG.7", "doc/man/man7/EVP_KDF-KB.7", "doc/man/man7/EVP_KDF-KRB5KDF.7", "doc/man/man7/EVP_KDF-PBKDF1.7", "doc/man/man7/EVP_KDF-PBKDF2.7", "doc/man/man7/EVP_KDF-PKCS12KDF.7", + "doc/man/man7/EVP_KDF-PVKKDF.7", "doc/man/man7/EVP_KDF-SCRYPT.7", "doc/man/man7/EVP_KDF-SS.7", "doc/man/man7/EVP_KDF-SSHKDF.7", @@ -20070,7 +23367,10 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-X942-ASN1.7", "doc/man/man7/EVP_KDF-X942-CONCAT.7", "doc/man/man7/EVP_KDF-X963.7", + "doc/man/man7/EVP_KEM-EC.7", + "doc/man/man7/EVP_KEM-ML-KEM.7", "doc/man/man7/EVP_KEM-RSA.7", + "doc/man/man7/EVP_KEM-X25519.7", "doc/man/man7/EVP_KEYEXCH-DH.7", "doc/man/man7/EVP_KEYEXCH-ECDH.7", "doc/man/man7/EVP_KEYEXCH-X25519.7", @@ -20082,6 +23382,7 @@ our %unified_info = ( "doc/man/man7/EVP_MAC-Poly1305.7", "doc/man/man7/EVP_MAC-Siphash.7", "doc/man/man7/EVP_MD-BLAKE2.7", + "doc/man/man7/EVP_MD-KECCAK.7", "doc/man/man7/EVP_MD-MD2.7", "doc/man/man7/EVP_MD-MD4.7", "doc/man/man7/EVP_MD-MD5-SHA1.7", @@ -20101,12 +23402,17 @@ our %unified_info = ( "doc/man/man7/EVP_PKEY-EC.7", "doc/man/man7/EVP_PKEY-FFC.7", "doc/man/man7/EVP_PKEY-HMAC.7", + "doc/man/man7/EVP_PKEY-ML-DSA.7", + "doc/man/man7/EVP_PKEY-ML-KEM.7", "doc/man/man7/EVP_PKEY-RSA.7", + "doc/man/man7/EVP_PKEY-SLH-DSA.7", "doc/man/man7/EVP_PKEY-SM2.7", "doc/man/man7/EVP_PKEY-X25519.7", + "doc/man/man7/EVP_RAND-CRNG-TEST.7", "doc/man/man7/EVP_RAND-CTR-DRBG.7", "doc/man/man7/EVP_RAND-HASH-DRBG.7", "doc/man/man7/EVP_RAND-HMAC-DRBG.7", + "doc/man/man7/EVP_RAND-JITTER.7", "doc/man/man7/EVP_RAND-SEED-SRC.7", "doc/man/man7/EVP_RAND-TEST-RAND.7", "doc/man/man7/EVP_RAND.7", @@ -20114,17 +23420,19 @@ our %unified_info = ( "doc/man/man7/EVP_SIGNATURE-ECDSA.7", "doc/man/man7/EVP_SIGNATURE-ED25519.7", "doc/man/man7/EVP_SIGNATURE-HMAC.7", + "doc/man/man7/EVP_SIGNATURE-ML-DSA.7", "doc/man/man7/EVP_SIGNATURE-RSA.7", + "doc/man/man7/EVP_SIGNATURE-SLH-DSA.7", "doc/man/man7/OSSL_PROVIDER-FIPS.7", "doc/man/man7/OSSL_PROVIDER-base.7", "doc/man/man7/OSSL_PROVIDER-default.7", "doc/man/man7/OSSL_PROVIDER-legacy.7", "doc/man/man7/OSSL_PROVIDER-null.7", + "doc/man/man7/OSSL_STORE-winstore.7", "doc/man/man7/RAND.7", "doc/man/man7/RSA-PSS.7", "doc/man/man7/X25519.7", "doc/man/man7/bio.7", - "doc/man/man7/crypto.7", "doc/man/man7/ct.7", "doc/man/man7/des_modes.7", "doc/man/man7/evp.7", @@ -20135,14 +23443,31 @@ our %unified_info = ( "doc/man/man7/life_cycle-mac.7", "doc/man/man7/life_cycle-pkey.7", "doc/man/man7/life_cycle-rand.7", - "doc/man/man7/migration_guide.7", "doc/man/man7/openssl-core.h.7", "doc/man/man7/openssl-core_dispatch.h.7", "doc/man/man7/openssl-core_names.h.7", "doc/man/man7/openssl-env.7", "doc/man/man7/openssl-glossary.7", + "doc/man/man7/openssl-qlog.7", + "doc/man/man7/openssl-quic-concurrency.7", + "doc/man/man7/openssl-quic.7", "doc/man/man7/openssl-threads.7", "doc/man/man7/openssl_user_macros.7", + "doc/man/man7/ossl-guide-introduction.7", + "doc/man/man7/ossl-guide-libcrypto-introduction.7", + "doc/man/man7/ossl-guide-libraries-introduction.7", + "doc/man/man7/ossl-guide-libssl-introduction.7", + "doc/man/man7/ossl-guide-migration.7", + "doc/man/man7/ossl-guide-quic-client-block.7", + "doc/man/man7/ossl-guide-quic-client-non-block.7", + "doc/man/man7/ossl-guide-quic-introduction.7", + "doc/man/man7/ossl-guide-quic-multi-stream.7", + "doc/man/man7/ossl-guide-quic-server-block.7", + "doc/man/man7/ossl-guide-quic-server-non-block.7", + "doc/man/man7/ossl-guide-tls-client-block.7", + "doc/man/man7/ossl-guide-tls-client-non-block.7", + "doc/man/man7/ossl-guide-tls-introduction.7", + "doc/man/man7/ossl-guide-tls-server-block.7", "doc/man/man7/ossl_store-file.7", "doc/man/man7/ossl_store.7", "doc/man/man7/passphrase-encoding.7", @@ -20161,10 +23486,10 @@ our %unified_info = ( "doc/man/man7/provider-object.7", "doc/man/man7/provider-rand.7", "doc/man/man7/provider-signature.7", + "doc/man/man7/provider-skeymgmt.7", "doc/man/man7/provider-storemgmt.7", "doc/man/man7/provider.7", "doc/man/man7/proxy-certificates.7", - "doc/man/man7/ssl.7", "doc/man/man7/x509.7" ] }, @@ -20176,6 +23501,7 @@ our %unified_info = ( ], "programs" => [ "apps/openssl", + "fuzz/acert-test", "fuzz/asn1-test", "fuzz/asn1parse-test", "fuzz/bignum-test", @@ -20186,7 +23512,24 @@ our %unified_info = ( "fuzz/conf-test", "fuzz/crl-test", "fuzz/ct-test", + "fuzz/decoder-test", + "fuzz/dtlsclient-test", + "fuzz/dtlsserver-test", + "fuzz/hashtable-test", + "fuzz/ml-dsa-test", + "fuzz/ml-kem-test", + "fuzz/pem-test", + "fuzz/provider-test", + "fuzz/punycode-test", + "fuzz/quic-client-test", + "fuzz/quic-lcidm-test", + "fuzz/quic-rcidm-test", + "fuzz/quic-server-test", + "fuzz/quic-srtm-test", "fuzz/server-test", + "fuzz/slh-dsa-test", + "fuzz/smime-test", + "fuzz/v3name-test", "fuzz/x509-test", "test/aborttest", "test/acvp_test", @@ -20204,21 +23547,28 @@ our %unified_info = ( "test/asynctest", "test/bad_dtls_test", "test/bftest", + "test/bio_addr_test", + "test/bio_base64_test", "test/bio_callback_test", "test/bio_core_test", + "test/bio_dgram_test", "test/bio_enc_test", "test/bio_memleak_test", + "test/bio_meth_test", "test/bio_prefix_text", "test/bio_pw_callback_test", "test/bio_readbuffer_test", + "test/bio_tfo_test", "test/bioprinttest", "test/bn_internal_test", "test/bntest", + "test/build_wincrypt_test", "test/buildtest_c_aes", "test/buildtest_c_async", "test/buildtest_c_blowfish", "test/buildtest_c_bn", "test/buildtest_c_buffer", + "test/buildtest_c_byteorder", "test/buildtest_c_camellia", "test/buildtest_c_cast", "test/buildtest_c_cmac", @@ -20227,7 +23577,6 @@ our %unified_info = ( "test/buildtest_c_conftypes", "test/buildtest_c_core", "test/buildtest_c_core_dispatch", - "test/buildtest_c_core_names", "test/buildtest_c_core_object", "test/buildtest_c_cryptoerr_legacy", "test/buildtest_c_decoder", @@ -20236,6 +23585,7 @@ our %unified_info = ( "test/buildtest_c_dsa", "test/buildtest_c_dtls1", "test/buildtest_c_e_os2", + "test/buildtest_c_e_ostime", "test/buildtest_c_ebcdic", "test/buildtest_c_ec", "test/buildtest_c_ecdh", @@ -20245,13 +23595,16 @@ our %unified_info = ( "test/buildtest_c_evp", "test/buildtest_c_fips_names", "test/buildtest_c_hmac", + "test/buildtest_c_hpke", "test/buildtest_c_http", "test/buildtest_c_idea", + "test/buildtest_c_indicator", "test/buildtest_c_kdf", "test/buildtest_c_macros", "test/buildtest_c_md4", "test/buildtest_c_md5", "test/buildtest_c_mdc2", + "test/buildtest_c_ml_kem", "test/buildtest_c_modes", "test/buildtest_c_obj_mac", "test/buildtest_c_objects", @@ -20262,6 +23615,7 @@ our %unified_info = ( "test/buildtest_c_pem2", "test/buildtest_c_prov_ssl", "test/buildtest_c_provider", + "test/buildtest_c_quic", "test/buildtest_c_rand", "test/buildtest_c_rc2", "test/buildtest_c_rc4", @@ -20276,11 +23630,14 @@ our %unified_info = ( "test/buildtest_c_stack", "test/buildtest_c_store", "test/buildtest_c_symhacks", + "test/buildtest_c_thread", "test/buildtest_c_tls1", "test/buildtest_c_ts", "test/buildtest_c_txt_db", "test/buildtest_c_types", "test/buildtest_c_whrlpool", + "test/byteorder_test", + "test/ca_internals_test", "test/casttest", "test/chacha_internal_test", "test/cipher_overhead_test", @@ -20309,6 +23666,7 @@ our %unified_info = ( "test/curve448_internal_test", "test/d2i_test", "test/danetest", + "test/decoder_propq_test", "test/defltfips_test", "test/destest", "test/dhtest", @@ -20333,9 +23691,12 @@ our %unified_info = ( "test/evp_kdf_test", "test/evp_libctx_test", "test/evp_pkey_ctx_new_from_name", + "test/evp_pkey_dhkem_test", "test/evp_pkey_dparams_test", "test/evp_pkey_provided_test", + "test/evp_skey_test", "test/evp_test", + "test/evp_xof_test", "test/exdatatest", "test/exptest", "test/ext_internal_test", @@ -20345,21 +23706,29 @@ our %unified_info = ( "test/gmdifftest", "test/hexstr_test", "test/hmactest", + "test/hpke_test", "test/http_test", "test/ideatest", "test/igetest", + "test/json_test", "test/keymgmt_internal_test", "test/lhash_test", + "test/list_test", "test/localetest", "test/mdc2_internal_test", "test/mdc2test", + "test/membio_test", "test/memleaktest", + "test/ml_dsa_test", + "test/ml_kem_evp_extra_test", + "test/ml_kem_internal_test", "test/modes_internal_test", "test/namemap_internal_test", "test/nodefltctxtest", "test/ocspapitest", "test/ossl_store_test", "test/packettest", + "test/pairwise_fail_test", "test/param_build_test", "test/params_api_test", "test/params_conversion_test", @@ -20368,36 +23737,65 @@ our %unified_info = ( "test/pbetest", "test/pem_read_depr_test", "test/pemtest", + "test/pkcs12_api_test", "test/pkcs12_format_test", "test/pkcs7_test", "test/pkey_meth_kdf_test", "test/pkey_meth_test", "test/poly1305_internal_test", + "test/priority_queue_test", "test/property_test", "test/prov_config_test", "test/provfetchtest", + "test/provider_default_search_path_test", "test/provider_fallback_test", "test/provider_internal_test", "test/provider_pkey_test", "test/provider_status_test", "test/provider_test", "test/punycode_test", + "test/quic_ackm_test", + "test/quic_cc_test", + "test/quic_cfq_test", + "test/quic_client_test", + "test/quic_fc_test", + "test/quic_fifd_test", + "test/quic_lcidm_test", + "test/quic_multistream_test", + "test/quic_newcid_test", + "test/quic_qlog_test", + "test/quic_radix_test", + "test/quic_rcidm_test", + "test/quic_record_test", + "test/quic_srt_gen_test", + "test/quic_srtm_test", + "test/quic_stream_test", + "test/quic_tserver_test", + "test/quic_txp_test", + "test/quic_txpim_test", + "test/quic_wire_test", + "test/quicapitest", + "test/quicfaultstest", "test/rand_status_test", "test/rand_test", "test/rc2test", "test/rc4test", "test/rc5test", - "test/rdrand_sanitytest", + "test/rdcpu_sanitytest", "test/recordlentest", + "test/rpktest", "test/rsa_complex", "test/rsa_mp_test", "test/rsa_sp800_56b_test", "test/rsa_test", + "test/rsa_x931_test", + "test/safe_math_test", "test/sanitytest", "test/secmemtest", "test/servername_test", "test/sha_test", "test/siphash_internal_test", + "test/slh_dsa_test", "test/sm2_internal_test", "test/sm3_internal_test", "test/sm4_internal_test", @@ -20405,6 +23803,7 @@ our %unified_info = ( "test/srptest", "test/ssl_cert_table_internal_test", "test/ssl_ctx_test", + "test/ssl_handshake_rtt_test", "test/ssl_old_test", "test/ssl_test", "test/ssl_test_ctx_test", @@ -20412,13 +23811,17 @@ our %unified_info = ( "test/sslbuffertest", "test/sslcorrupttest", "test/stack_test", + "test/strtoultest", "test/sysdefaulttest", "test/test_test", + "test/threadpool_test", "test/threadstest", "test/threadstest_fips", "test/time_offset_test", + "test/time_test", "test/tls13ccstest", "test/tls13encryptiontest", + "test/tls13groupselection_test", "test/trace_api_test", "test/uitest", "test/upcallstest", @@ -20428,9 +23831,13 @@ our %unified_info = ( "test/verify_extra_test", "test/versions", "test/wpackettest", + "test/x509_acert_test", "test/x509_check_cert_pkey_test", "test/x509_dup_cert_test", "test/x509_internal_test", + "test/x509_load_cert_file_test", + "test/x509_req_test", + "test/x509_test", "test/x509_time_test", "test/x509aux" ], @@ -20446,6 +23853,33 @@ our %unified_info = ( "apps/CA.pl" => [ "apps/CA.pl.in" ], + "apps/ca_internals_test-bin-ca.o" => [ + "apps/ca.c" + ], + "apps/lib/ca_internals_test-bin-app_libctx.o" => [ + "apps/lib/app_libctx.c" + ], + "apps/lib/ca_internals_test-bin-app_provider.o" => [ + "apps/lib/app_provider.c" + ], + "apps/lib/ca_internals_test-bin-app_rand.o" => [ + "apps/lib/app_rand.c" + ], + "apps/lib/ca_internals_test-bin-app_x509.o" => [ + "apps/lib/app_x509.c" + ], + "apps/lib/ca_internals_test-bin-apps.o" => [ + "apps/lib/apps.c" + ], + "apps/lib/ca_internals_test-bin-apps_ui.o" => [ + "apps/lib/apps_ui.c" + ], + "apps/lib/ca_internals_test-bin-engine.o" => [ + "apps/lib/engine.c" + ], + "apps/lib/ca_internals_test-bin-fmt.o" => [ + "apps/lib/fmt.c" + ], "apps/lib/cmp_client_test-bin-cmp_mock_srv.o" => [ "apps/lib/cmp_mock_srv.c" ], @@ -20467,6 +23901,9 @@ our %unified_info = ( "apps/lib/libapps-lib-apps.o" => [ "apps/lib/apps.c" ], + "apps/lib/libapps-lib-apps_opt_printf.o" => [ + "apps/lib/apps_opt_printf.c" + ], "apps/lib/libapps-lib-apps_ui.o" => [ "apps/lib/apps_ui.c" ], @@ -20485,6 +23922,9 @@ our %unified_info = ( "apps/lib/libapps-lib-http_server.o" => [ "apps/lib/http_server.c" ], + "apps/lib/libapps-lib-log.o" => [ + "apps/lib/log.c" + ], "apps/lib/libapps-lib-names.o" => [ "apps/lib/names.c" ], @@ -20516,12 +23956,14 @@ our %unified_info = ( "apps/lib/libapps-lib-app_rand.o", "apps/lib/libapps-lib-app_x509.o", "apps/lib/libapps-lib-apps.o", + "apps/lib/libapps-lib-apps_opt_printf.o", "apps/lib/libapps-lib-apps_ui.o", "apps/lib/libapps-lib-columns.o", "apps/lib/libapps-lib-engine.o", "apps/lib/libapps-lib-engine_loader.o", "apps/lib/libapps-lib-fmt.o", "apps/lib/libapps-lib-http_server.o", + "apps/lib/libapps-lib-log.o", "apps/lib/libapps-lib-names.o", "apps/lib/libapps-lib-opt.o", "apps/lib/libapps-lib-s_cb.o", @@ -20575,6 +24017,7 @@ our %unified_info = ( "apps/openssl-bin-s_server.o", "apps/openssl-bin-s_time.o", "apps/openssl-bin-sess_id.o", + "apps/openssl-bin-skeyutl.o", "apps/openssl-bin-smime.o", "apps/openssl-bin-speed.o", "apps/openssl-bin-spkac.o", @@ -20720,6 +24163,9 @@ our %unified_info = ( "apps/openssl-bin-sess_id.o" => [ "apps/sess_id.c" ], + "apps/openssl-bin-skeyutl.o" => [ + "apps/skeyutl.c" + ], "apps/openssl-bin-smime.o" => [ "apps/smime.c" ], @@ -20795,6 +24241,12 @@ our %unified_info = ( "crypto/aria/libcrypto-lib-aria.o" => [ "crypto/aria/aria.c" ], + "crypto/asn1/asn1_time_test-bin-a_time.o" => [ + "crypto/asn1/a_time.c" + ], + "crypto/asn1/ca_internals_test-bin-a_time.o" => [ + "crypto/asn1/a_time.c" + ], "crypto/asn1/libcrypto-lib-a_bitstr.o" => [ "crypto/asn1/a_bitstr.c" ], @@ -20987,6 +24439,9 @@ our %unified_info = ( "crypto/asn1/libcrypto-lib-x_val.o" => [ "crypto/asn1/x_val.c" ], + "crypto/asn1_time_test-bin-ctype.o" => [ + "crypto/ctype.c" + ], "crypto/async/arch/libcrypto-lib-async_null.o" => [ "crypto/async/arch/async_null.c" ], @@ -21080,6 +24535,9 @@ our %unified_info = ( "crypto/bio/libcrypto-lib-bss_dgram.o" => [ "crypto/bio/bss_dgram.c" ], + "crypto/bio/libcrypto-lib-bss_dgram_pair.o" => [ + "crypto/bio/bss_dgram_pair.c" + ], "crypto/bio/libcrypto-lib-bss_fd.o" => [ "crypto/bio/bss_fd.c" ], @@ -21311,6 +24769,9 @@ our %unified_info = ( "crypto/buffer/libfips-lib-buffer.o" => [ "crypto/buffer/buffer.c" ], + "crypto/ca_internals_test-bin-ctype.o" => [ + "crypto/ctype.c" + ], "crypto/camellia/libcrypto-lib-cmll-x86.o" => [ "crypto/camellia/cmll-x86.S" ], @@ -21362,6 +24823,9 @@ our %unified_info = ( "crypto/cmp/libcrypto-lib-cmp_err.o" => [ "crypto/cmp/cmp_err.c" ], + "crypto/cmp/libcrypto-lib-cmp_genm.o" => [ + "crypto/cmp/cmp_genm.c" + ], "crypto/cmp/libcrypto-lib-cmp_hdr.o" => [ "crypto/cmp/cmp_hdr.c" ], @@ -22049,9 +25513,15 @@ our %unified_info = ( "crypto/err/libcrypto-lib-err_blocks.o" => [ "crypto/err/err_blocks.c" ], + "crypto/err/libcrypto-lib-err_mark.o" => [ + "crypto/err/err_mark.c" + ], "crypto/err/libcrypto-lib-err_prn.o" => [ "crypto/err/err_prn.c" ], + "crypto/err/libcrypto-lib-err_save.o" => [ + "crypto/err/err_save.c" + ], "crypto/ess/libcrypto-lib-ess_asn1.o" => [ "crypto/ess/ess_asn1.c" ], @@ -22298,9 +25768,15 @@ our %unified_info = ( "crypto/evp/libcrypto-lib-pmeth_lib.o" => [ "crypto/evp/pmeth_lib.c" ], + "crypto/evp/libcrypto-lib-s_lib.o" => [ + "crypto/evp/s_lib.c" + ], "crypto/evp/libcrypto-lib-signature.o" => [ "crypto/evp/signature.c" ], + "crypto/evp/libcrypto-lib-skeymgmt_meth.o" => [ + "crypto/evp/skeymgmt_meth.c" + ], "crypto/evp/libfips-lib-asymcipher.o" => [ "crypto/evp/asymcipher.c" ], @@ -22346,9 +25822,6 @@ our %unified_info = ( "crypto/evp/libfips-lib-keymgmt_meth.o" => [ "crypto/evp/keymgmt_meth.c" ], - "crypto/evp/libfips-lib-m_sigver.o" => [ - "crypto/evp/m_sigver.c" - ], "crypto/evp/libfips-lib-mac_lib.o" => [ "crypto/evp/mac_lib.c" ], @@ -22367,9 +25840,15 @@ our %unified_info = ( "crypto/evp/libfips-lib-pmeth_lib.o" => [ "crypto/evp/pmeth_lib.c" ], + "crypto/evp/libfips-lib-s_lib.o" => [ + "crypto/evp/s_lib.c" + ], "crypto/evp/libfips-lib-signature.o" => [ "crypto/evp/signature.c" ], + "crypto/evp/libfips-lib-skeymgmt_meth.o" => [ + "crypto/evp/skeymgmt_meth.c" + ], "crypto/ffc/libcrypto-lib-ffc_backend.o" => [ "crypto/ffc/ffc_backend.c" ], @@ -22412,12 +25891,30 @@ our %unified_info = ( "crypto/ffc/libfips-lib-ffc_params_validate.o" => [ "crypto/ffc/ffc_params_validate.c" ], + "crypto/hashtable/libcrypto-lib-hashfunc.o" => [ + "crypto/hashtable/hashfunc.c" + ], + "crypto/hashtable/libcrypto-lib-hashtable.o" => [ + "crypto/hashtable/hashtable.c" + ], + "crypto/hashtable/libfips-lib-hashfunc.o" => [ + "crypto/hashtable/hashfunc.c" + ], + "crypto/hashtable/libfips-lib-hashtable.o" => [ + "crypto/hashtable/hashtable.c" + ], "crypto/hmac/libcrypto-lib-hmac.o" => [ "crypto/hmac/hmac.c" ], "crypto/hmac/libfips-lib-hmac.o" => [ "crypto/hmac/hmac.c" ], + "crypto/hpke/libcrypto-lib-hpke.o" => [ + "crypto/hpke/hpke.c" + ], + "crypto/hpke/libcrypto-lib-hpke_util.o" => [ + "crypto/hpke/hpke_util.c" + ], "crypto/http/libcrypto-lib-http_client.o" => [ "crypto/http/http_client.c" ], @@ -22460,6 +25957,9 @@ our %unified_info = ( "crypto/libcrypto-lib-bsearch.o" => [ "crypto/bsearch.c" ], + "crypto/libcrypto-lib-comp_methods.o" => [ + "crypto/comp_methods.c" + ], "crypto/libcrypto-lib-context.o" => [ "crypto/context.c" ], @@ -22487,9 +25987,15 @@ our %unified_info = ( "crypto/libcrypto-lib-cversion.o" => [ "crypto/cversion.c" ], + "crypto/libcrypto-lib-defaults.o" => [ + "crypto/defaults.c" + ], "crypto/libcrypto-lib-der_writer.o" => [ "crypto/der_writer.c" ], + "crypto/libcrypto-lib-deterministic_nonce.o" => [ + "crypto/deterministic_nonce.c" + ], "crypto/libcrypto-lib-ebcdic.o" => [ "crypto/ebcdic.c" ], @@ -22499,6 +26005,9 @@ our %unified_info = ( "crypto/libcrypto-lib-getenv.o" => [ "crypto/getenv.c" ], + "crypto/libcrypto-lib-indicator_core.o" => [ + "crypto/indicator_core.c" + ], "crypto/libcrypto-lib-info.o" => [ "crypto/info.c" ], @@ -22547,6 +26056,9 @@ our %unified_info = ( "crypto/libcrypto-lib-params_from_text.o" => [ "crypto/params_from_text.c" ], + "crypto/libcrypto-lib-params_idx.o" => [ + "crypto/params_idx.c" + ], "crypto/libcrypto-lib-passphrase.o" => [ "crypto/passphrase.c" ], @@ -22568,12 +26080,21 @@ our %unified_info = ( "crypto/libcrypto-lib-punycode.o" => [ "crypto/punycode.c" ], + "crypto/libcrypto-lib-quic_vlint.o" => [ + "crypto/quic_vlint.c" + ], "crypto/libcrypto-lib-self_test_core.o" => [ "crypto/self_test_core.c" ], + "crypto/libcrypto-lib-sleep.o" => [ + "crypto/sleep.c" + ], "crypto/libcrypto-lib-sparse_array.o" => [ "crypto/sparse_array.c" ], + "crypto/libcrypto-lib-ssl_err.o" => [ + "crypto/ssl_err.c" + ], "crypto/libcrypto-lib-threads_lib.o" => [ "crypto/threads_lib.c" ], @@ -22586,6 +26107,9 @@ our %unified_info = ( "crypto/libcrypto-lib-threads_win.o" => [ "crypto/threads_win.c" ], + "crypto/libcrypto-lib-time.o" => [ + "crypto/time.c" + ], "crypto/libcrypto-lib-trace.o" => [ "crypto/trace.c" ], @@ -22652,6 +26176,9 @@ our %unified_info = ( "crypto/libfips-lib-params_from_text.o" => [ "crypto/params_from_text.c" ], + "crypto/libfips-lib-params_idx.o" => [ + "crypto/params_idx.c" + ], "crypto/libfips-lib-provider_core.o" => [ "crypto/provider_core.c" ], @@ -22676,6 +26203,9 @@ our %unified_info = ( "crypto/libfips-lib-threads_win.o" => [ "crypto/threads_win.c" ], + "crypto/libfips-lib-time.o" => [ + "crypto/time.c" + ], "crypto/libfips-lib-x86cpuid.o" => [ "crypto/x86cpuid.S" ], @@ -22703,6 +26233,60 @@ our %unified_info = ( "crypto/mdc2/libcrypto-lib-mdc2dgst.o" => [ "crypto/mdc2/mdc2dgst.c" ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_encoders.o" => [ + "crypto/ml_dsa/ml_dsa_encoders.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key.o" => [ + "crypto/ml_dsa/ml_dsa_key.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key_compress.o" => [ + "crypto/ml_dsa/ml_dsa_key_compress.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_matrix.o" => [ + "crypto/ml_dsa/ml_dsa_matrix.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_ntt.o" => [ + "crypto/ml_dsa/ml_dsa_ntt.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_params.o" => [ + "crypto/ml_dsa/ml_dsa_params.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sample.o" => [ + "crypto/ml_dsa/ml_dsa_sample.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sign.o" => [ + "crypto/ml_dsa/ml_dsa_sign.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_encoders.o" => [ + "crypto/ml_dsa/ml_dsa_encoders.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_key.o" => [ + "crypto/ml_dsa/ml_dsa_key.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_key_compress.o" => [ + "crypto/ml_dsa/ml_dsa_key_compress.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_matrix.o" => [ + "crypto/ml_dsa/ml_dsa_matrix.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_ntt.o" => [ + "crypto/ml_dsa/ml_dsa_ntt.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_params.o" => [ + "crypto/ml_dsa/ml_dsa_params.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_sample.o" => [ + "crypto/ml_dsa/ml_dsa_sample.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_sign.o" => [ + "crypto/ml_dsa/ml_dsa_sign.c" + ], + "crypto/ml_kem/libcrypto-lib-ml_kem.o" => [ + "crypto/ml_kem/ml_kem.c" + ], + "crypto/ml_kem/libfips-lib-ml_kem.o" => [ + "crypto/ml_kem/ml_kem.c" + ], "crypto/modes/libcrypto-lib-cbc128.o" => [ "crypto/modes/cbc128.c" ], @@ -22739,6 +26323,9 @@ our %unified_info = ( "crypto/modes/libcrypto-lib-xts128.o" => [ "crypto/modes/xts128.c" ], + "crypto/modes/libcrypto-lib-xts128gb.o" => [ + "crypto/modes/xts128gb.c" + ], "crypto/modes/libfips-lib-cbc128.o" => [ "crypto/modes/cbc128.c" ], @@ -22766,6 +26353,9 @@ our %unified_info = ( "crypto/modes/libfips-lib-xts128.o" => [ "crypto/modes/xts128.c" ], + "crypto/modes/libfips-lib-xts128gb.o" => [ + "crypto/modes/xts128gb.c" + ], "crypto/objects/libcrypto-lib-o_names.o" => [ "crypto/objects/o_names.c" ], @@ -22811,6 +26401,9 @@ our %unified_info = ( "crypto/ocsp/libcrypto-lib-v3_ocsp.o" => [ "crypto/ocsp/v3_ocsp.c" ], + "crypto/packettest-bin-quic_vlint.o" => [ + "crypto/quic_vlint.c" + ], "crypto/pem/libcrypto-lib-pem_all.o" => [ "crypto/pem/pem_all.c" ], @@ -22973,6 +26566,9 @@ our %unified_info = ( "crypto/rand/libcrypto-lib-rand_pool.o" => [ "crypto/rand/rand_pool.c" ], + "crypto/rand/libcrypto-lib-rand_uniform.o" => [ + "crypto/rand/rand_uniform.c" + ], "crypto/rand/libcrypto-lib-randfile.o" => [ "crypto/rand/randfile.c" ], @@ -23204,6 +26800,66 @@ our %unified_info = ( "crypto/siphash/libcrypto-lib-siphash.o" => [ "crypto/siphash/siphash.c" ], + "crypto/slh_dsa/libcrypto-lib-slh_adrs.o" => [ + "crypto/slh_dsa/slh_adrs.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_dsa.o" => [ + "crypto/slh_dsa/slh_dsa.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_dsa_hash_ctx.o" => [ + "crypto/slh_dsa/slh_dsa_hash_ctx.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_dsa_key.o" => [ + "crypto/slh_dsa/slh_dsa_key.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_fors.o" => [ + "crypto/slh_dsa/slh_fors.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_hash.o" => [ + "crypto/slh_dsa/slh_hash.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_hypertree.o" => [ + "crypto/slh_dsa/slh_hypertree.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_params.o" => [ + "crypto/slh_dsa/slh_params.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_wots.o" => [ + "crypto/slh_dsa/slh_wots.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_xmss.o" => [ + "crypto/slh_dsa/slh_xmss.c" + ], + "crypto/slh_dsa/libfips-lib-slh_adrs.o" => [ + "crypto/slh_dsa/slh_adrs.c" + ], + "crypto/slh_dsa/libfips-lib-slh_dsa.o" => [ + "crypto/slh_dsa/slh_dsa.c" + ], + "crypto/slh_dsa/libfips-lib-slh_dsa_hash_ctx.o" => [ + "crypto/slh_dsa/slh_dsa_hash_ctx.c" + ], + "crypto/slh_dsa/libfips-lib-slh_dsa_key.o" => [ + "crypto/slh_dsa/slh_dsa_key.c" + ], + "crypto/slh_dsa/libfips-lib-slh_fors.o" => [ + "crypto/slh_dsa/slh_fors.c" + ], + "crypto/slh_dsa/libfips-lib-slh_hash.o" => [ + "crypto/slh_dsa/slh_hash.c" + ], + "crypto/slh_dsa/libfips-lib-slh_hypertree.o" => [ + "crypto/slh_dsa/slh_hypertree.c" + ], + "crypto/slh_dsa/libfips-lib-slh_params.o" => [ + "crypto/slh_dsa/slh_params.c" + ], + "crypto/slh_dsa/libfips-lib-slh_wots.o" => [ + "crypto/slh_dsa/slh_wots.c" + ], + "crypto/slh_dsa/libfips-lib-slh_xmss.o" => [ + "crypto/slh_dsa/slh_xmss.c" + ], "crypto/sm2/libcrypto-lib-sm2_crypt.o" => [ "crypto/sm2/sm2_crypt.c" ], @@ -23258,6 +26914,42 @@ our %unified_info = ( "crypto/store/libcrypto-lib-store_strings.o" => [ "crypto/store/store_strings.c" ], + "crypto/thread/arch/libcrypto-lib-thread_none.o" => [ + "crypto/thread/arch/thread_none.c" + ], + "crypto/thread/arch/libcrypto-lib-thread_posix.o" => [ + "crypto/thread/arch/thread_posix.c" + ], + "crypto/thread/arch/libcrypto-lib-thread_win.o" => [ + "crypto/thread/arch/thread_win.c" + ], + "crypto/thread/arch/libfips-lib-thread_none.o" => [ + "crypto/thread/arch/thread_none.c" + ], + "crypto/thread/arch/libfips-lib-thread_posix.o" => [ + "crypto/thread/arch/thread_posix.c" + ], + "crypto/thread/arch/libfips-lib-thread_win.o" => [ + "crypto/thread/arch/thread_win.c" + ], + "crypto/thread/libcrypto-lib-api.o" => [ + "crypto/thread/api.c" + ], + "crypto/thread/libcrypto-lib-arch.o" => [ + "crypto/thread/arch.c" + ], + "crypto/thread/libcrypto-lib-internal.o" => [ + "crypto/thread/internal.c" + ], + "crypto/thread/libfips-lib-api.o" => [ + "crypto/thread/api.c" + ], + "crypto/thread/libfips-lib-arch.o" => [ + "crypto/thread/arch.c" + ], + "crypto/thread/libfips-lib-internal.o" => [ + "crypto/thread/internal.c" + ], "crypto/ts/libcrypto-lib-ts_asn1.o" => [ "crypto/ts/ts_asn1.c" ], @@ -23345,6 +27037,9 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-pcy_tree.o" => [ "crypto/x509/pcy_tree.c" ], + "crypto/x509/libcrypto-lib-t_acert.o" => [ + "crypto/x509/t_acert.c" + ], "crypto/x509/libcrypto-lib-t_crl.o" => [ "crypto/x509/t_crl.c" ], @@ -23354,6 +27049,12 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-t_x509.o" => [ "crypto/x509/t_x509.c" ], + "crypto/x509/libcrypto-lib-v3_aaa.o" => [ + "crypto/x509/v3_aaa.c" + ], + "crypto/x509/libcrypto-lib-v3_ac_tgt.o" => [ + "crypto/x509/v3_ac_tgt.c" + ], "crypto/x509/libcrypto-lib-v3_addr.o" => [ "crypto/x509/v3_addr.c" ], @@ -23369,6 +27070,21 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_asid.o" => [ "crypto/x509/v3_asid.c" ], + "crypto/x509/libcrypto-lib-v3_attrdesc.o" => [ + "crypto/x509/v3_attrdesc.c" + ], + "crypto/x509/libcrypto-lib-v3_attrmap.o" => [ + "crypto/x509/v3_attrmap.c" + ], + "crypto/x509/libcrypto-lib-v3_audit_id.o" => [ + "crypto/x509/v3_audit_id.c" + ], + "crypto/x509/libcrypto-lib-v3_authattid.o" => [ + "crypto/x509/v3_authattid.c" + ], + "crypto/x509/libcrypto-lib-v3_battcons.o" => [ + "crypto/x509/v3_battcons.c" + ], "crypto/x509/libcrypto-lib-v3_bcons.o" => [ "crypto/x509/v3_bcons.c" ], @@ -23393,15 +27109,24 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_genn.o" => [ "crypto/x509/v3_genn.c" ], + "crypto/x509/libcrypto-lib-v3_group_ac.o" => [ + "crypto/x509/v3_group_ac.c" + ], "crypto/x509/libcrypto-lib-v3_ia5.o" => [ "crypto/x509/v3_ia5.c" ], + "crypto/x509/libcrypto-lib-v3_ind_iss.o" => [ + "crypto/x509/v3_ind_iss.c" + ], "crypto/x509/libcrypto-lib-v3_info.o" => [ "crypto/x509/v3_info.c" ], "crypto/x509/libcrypto-lib-v3_int.o" => [ "crypto/x509/v3_int.c" ], + "crypto/x509/libcrypto-lib-v3_iobo.o" => [ + "crypto/x509/v3_iobo.c" + ], "crypto/x509/libcrypto-lib-v3_ist.o" => [ "crypto/x509/v3_ist.c" ], @@ -23411,6 +27136,12 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_ncons.o" => [ "crypto/x509/v3_ncons.c" ], + "crypto/x509/libcrypto-lib-v3_no_ass.o" => [ + "crypto/x509/v3_no_ass.c" + ], + "crypto/x509/libcrypto-lib-v3_no_rev_avail.o" => [ + "crypto/x509/v3_no_rev_avail.c" + ], "crypto/x509/libcrypto-lib-v3_pci.o" => [ "crypto/x509/v3_pci.c" ], @@ -23432,18 +27163,36 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_purp.o" => [ "crypto/x509/v3_purp.c" ], + "crypto/x509/libcrypto-lib-v3_rolespec.o" => [ + "crypto/x509/v3_rolespec.c" + ], "crypto/x509/libcrypto-lib-v3_san.o" => [ "crypto/x509/v3_san.c" ], + "crypto/x509/libcrypto-lib-v3_sda.o" => [ + "crypto/x509/v3_sda.c" + ], + "crypto/x509/libcrypto-lib-v3_single_use.o" => [ + "crypto/x509/v3_single_use.c" + ], "crypto/x509/libcrypto-lib-v3_skid.o" => [ "crypto/x509/v3_skid.c" ], + "crypto/x509/libcrypto-lib-v3_soa_id.o" => [ + "crypto/x509/v3_soa_id.c" + ], "crypto/x509/libcrypto-lib-v3_sxnet.o" => [ "crypto/x509/v3_sxnet.c" ], + "crypto/x509/libcrypto-lib-v3_timespec.o" => [ + "crypto/x509/v3_timespec.c" + ], "crypto/x509/libcrypto-lib-v3_tlsf.o" => [ "crypto/x509/v3_tlsf.c" ], + "crypto/x509/libcrypto-lib-v3_usernotice.o" => [ + "crypto/x509/v3_usernotice.c" + ], "crypto/x509/libcrypto-lib-v3_utf8.o" => [ "crypto/x509/v3_utf8.c" ], @@ -23453,6 +27202,9 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3err.o" => [ "crypto/x509/v3err.c" ], + "crypto/x509/libcrypto-lib-x509_acert.o" => [ + "crypto/x509/x509_acert.c" + ], "crypto/x509/libcrypto-lib-x509_att.o" => [ "crypto/x509/x509_att.c" ], @@ -23504,6 +27256,9 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x509_vpm.o" => [ "crypto/x509/x509_vpm.c" ], + "crypto/x509/libcrypto-lib-x509aset.o" => [ + "crypto/x509/x509aset.c" + ], "crypto/x509/libcrypto-lib-x509cset.o" => [ "crypto/x509/x509cset.c" ], @@ -23531,6 +27286,9 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x_exten.o" => [ "crypto/x509/x_exten.c" ], + "crypto/x509/libcrypto-lib-x_ietfatt.o" => [ + "crypto/x509/x_ietfatt.c" + ], "crypto/x509/libcrypto-lib-x_name.o" => [ "crypto/x509/x_name.c" ], @@ -23558,6 +27316,16 @@ our %unified_info = ( "engines/libcrypto-lib-e_padlock.o" => [ "engines/e_padlock.c" ], + "fuzz/acert-test" => [ + "fuzz/acert-test-bin-acert.o", + "fuzz/acert-test-bin-test-corpus.o" + ], + "fuzz/acert-test-bin-acert.o" => [ + "fuzz/acert.c" + ], + "fuzz/acert-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], "fuzz/asn1-test" => [ "fuzz/asn1-test-bin-asn1.o", "fuzz/asn1-test-bin-fuzz_rand.o", @@ -23670,6 +27438,190 @@ our %unified_info = ( "fuzz/ct-test-bin-test-corpus.o" => [ "fuzz/test-corpus.c" ], + "fuzz/decoder-test" => [ + "fuzz/decoder-test-bin-decoder.o", + "fuzz/decoder-test-bin-fuzz_rand.o", + "fuzz/decoder-test-bin-test-corpus.o" + ], + "fuzz/decoder-test-bin-decoder.o" => [ + "fuzz/decoder.c" + ], + "fuzz/decoder-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/decoder-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/dtlsclient-test" => [ + "fuzz/dtlsclient-test-bin-dtlsclient.o", + "fuzz/dtlsclient-test-bin-fuzz_rand.o", + "fuzz/dtlsclient-test-bin-test-corpus.o" + ], + "fuzz/dtlsclient-test-bin-dtlsclient.o" => [ + "fuzz/dtlsclient.c" + ], + "fuzz/dtlsclient-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/dtlsclient-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/dtlsserver-test" => [ + "fuzz/dtlsserver-test-bin-dtlsserver.o", + "fuzz/dtlsserver-test-bin-fuzz_rand.o", + "fuzz/dtlsserver-test-bin-test-corpus.o" + ], + "fuzz/dtlsserver-test-bin-dtlsserver.o" => [ + "fuzz/dtlsserver.c" + ], + "fuzz/dtlsserver-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/dtlsserver-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/hashtable-test" => [ + "fuzz/hashtable-test-bin-fuzz_rand.o", + "fuzz/hashtable-test-bin-hashtable.o", + "fuzz/hashtable-test-bin-test-corpus.o" + ], + "fuzz/hashtable-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/hashtable-test-bin-hashtable.o" => [ + "fuzz/hashtable.c" + ], + "fuzz/hashtable-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/ml-dsa-test" => [ + "fuzz/ml-dsa-test-bin-fuzz_rand.o", + "fuzz/ml-dsa-test-bin-ml-dsa.o", + "fuzz/ml-dsa-test-bin-test-corpus.o" + ], + "fuzz/ml-dsa-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/ml-dsa-test-bin-ml-dsa.o" => [ + "fuzz/ml-dsa.c" + ], + "fuzz/ml-dsa-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/ml-kem-test" => [ + "fuzz/ml-kem-test-bin-fuzz_rand.o", + "fuzz/ml-kem-test-bin-ml-kem.o", + "fuzz/ml-kem-test-bin-test-corpus.o" + ], + "fuzz/ml-kem-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/ml-kem-test-bin-ml-kem.o" => [ + "fuzz/ml-kem.c" + ], + "fuzz/ml-kem-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/pem-test" => [ + "fuzz/pem-test-bin-pem.o", + "fuzz/pem-test-bin-test-corpus.o" + ], + "fuzz/pem-test-bin-pem.o" => [ + "fuzz/pem.c" + ], + "fuzz/pem-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/provider-test" => [ + "fuzz/provider-test-bin-provider.o", + "fuzz/provider-test-bin-test-corpus.o" + ], + "fuzz/provider-test-bin-provider.o" => [ + "fuzz/provider.c" + ], + "fuzz/provider-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/punycode-test" => [ + "fuzz/punycode-test-bin-punycode.o", + "fuzz/punycode-test-bin-test-corpus.o" + ], + "fuzz/punycode-test-bin-punycode.o" => [ + "fuzz/punycode.c" + ], + "fuzz/punycode-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-client-test" => [ + "fuzz/quic-client-test-bin-fuzz_rand.o", + "fuzz/quic-client-test-bin-quic-client.o", + "fuzz/quic-client-test-bin-test-corpus.o" + ], + "fuzz/quic-client-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-client-test-bin-quic-client.o" => [ + "fuzz/quic-client.c" + ], + "fuzz/quic-client-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-lcidm-test" => [ + "fuzz/quic-lcidm-test-bin-fuzz_rand.o", + "fuzz/quic-lcidm-test-bin-quic-lcidm.o", + "fuzz/quic-lcidm-test-bin-test-corpus.o" + ], + "fuzz/quic-lcidm-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-lcidm-test-bin-quic-lcidm.o" => [ + "fuzz/quic-lcidm.c" + ], + "fuzz/quic-lcidm-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-rcidm-test" => [ + "fuzz/quic-rcidm-test-bin-fuzz_rand.o", + "fuzz/quic-rcidm-test-bin-quic-rcidm.o", + "fuzz/quic-rcidm-test-bin-test-corpus.o" + ], + "fuzz/quic-rcidm-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-rcidm-test-bin-quic-rcidm.o" => [ + "fuzz/quic-rcidm.c" + ], + "fuzz/quic-rcidm-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-server-test" => [ + "fuzz/quic-server-test-bin-fuzz_rand.o", + "fuzz/quic-server-test-bin-quic-server.o", + "fuzz/quic-server-test-bin-test-corpus.o" + ], + "fuzz/quic-server-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-server-test-bin-quic-server.o" => [ + "fuzz/quic-server.c" + ], + "fuzz/quic-server-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-srtm-test" => [ + "fuzz/quic-srtm-test-bin-fuzz_rand.o", + "fuzz/quic-srtm-test-bin-quic-srtm.o", + "fuzz/quic-srtm-test-bin-test-corpus.o" + ], + "fuzz/quic-srtm-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-srtm-test-bin-quic-srtm.o" => [ + "fuzz/quic-srtm.c" + ], + "fuzz/quic-srtm-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], "fuzz/server-test" => [ "fuzz/server-test-bin-fuzz_rand.o", "fuzz/server-test-bin-server.o", @@ -23684,6 +27636,40 @@ our %unified_info = ( "fuzz/server-test-bin-test-corpus.o" => [ "fuzz/test-corpus.c" ], + "fuzz/slh-dsa-test" => [ + "fuzz/slh-dsa-test-bin-fuzz_rand.o", + "fuzz/slh-dsa-test-bin-slh-dsa.o", + "fuzz/slh-dsa-test-bin-test-corpus.o" + ], + "fuzz/slh-dsa-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/slh-dsa-test-bin-slh-dsa.o" => [ + "fuzz/slh-dsa.c" + ], + "fuzz/slh-dsa-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/smime-test" => [ + "fuzz/smime-test-bin-smime.o", + "fuzz/smime-test-bin-test-corpus.o" + ], + "fuzz/smime-test-bin-smime.o" => [ + "fuzz/smime.c" + ], + "fuzz/smime-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/v3name-test" => [ + "fuzz/v3name-test-bin-test-corpus.o", + "fuzz/v3name-test-bin-v3name.o" + ], + "fuzz/v3name-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/v3name-test-bin-v3name.o" => [ + "fuzz/v3name.c" + ], "fuzz/x509-test" => [ "fuzz/x509-test-bin-fuzz_rand.o", "fuzz/x509-test-bin-test-corpus.o", @@ -23804,6 +27790,7 @@ our %unified_info = ( "crypto/bio/libcrypto-lib-bss_conn.o", "crypto/bio/libcrypto-lib-bss_core.o", "crypto/bio/libcrypto-lib-bss_dgram.o", + "crypto/bio/libcrypto-lib-bss_dgram_pair.o", "crypto/bio/libcrypto-lib-bss_fd.o", "crypto/bio/libcrypto-lib-bss_file.o", "crypto/bio/libcrypto-lib-bss_log.o", @@ -23865,6 +27852,7 @@ our %unified_info = ( "crypto/cmp/libcrypto-lib-cmp_client.o", "crypto/cmp/libcrypto-lib-cmp_ctx.o", "crypto/cmp/libcrypto-lib-cmp_err.o", + "crypto/cmp/libcrypto-lib-cmp_genm.o", "crypto/cmp/libcrypto-lib-cmp_hdr.o", "crypto/cmp/libcrypto-lib-cmp_http.o", "crypto/cmp/libcrypto-lib-cmp_msg.o", @@ -24042,7 +28030,9 @@ our %unified_info = ( "crypto/err/libcrypto-lib-err_all.o", "crypto/err/libcrypto-lib-err_all_legacy.o", "crypto/err/libcrypto-lib-err_blocks.o", + "crypto/err/libcrypto-lib-err_mark.o", "crypto/err/libcrypto-lib-err_prn.o", + "crypto/err/libcrypto-lib-err_save.o", "crypto/ess/libcrypto-lib-ess_asn1.o", "crypto/ess/libcrypto-lib-ess_err.o", "crypto/ess/libcrypto-lib-ess_lib.o", @@ -24125,7 +28115,9 @@ our %unified_info = ( "crypto/evp/libcrypto-lib-pmeth_check.o", "crypto/evp/libcrypto-lib-pmeth_gn.o", "crypto/evp/libcrypto-lib-pmeth_lib.o", + "crypto/evp/libcrypto-lib-s_lib.o", "crypto/evp/libcrypto-lib-signature.o", + "crypto/evp/libcrypto-lib-skeymgmt_meth.o", "crypto/ffc/libcrypto-lib-ffc_backend.o", "crypto/ffc/libcrypto-lib-ffc_dh.o", "crypto/ffc/libcrypto-lib-ffc_key_generate.o", @@ -24133,7 +28125,11 @@ our %unified_info = ( "crypto/ffc/libcrypto-lib-ffc_params.o", "crypto/ffc/libcrypto-lib-ffc_params_generate.o", "crypto/ffc/libcrypto-lib-ffc_params_validate.o", + "crypto/hashtable/libcrypto-lib-hashfunc.o", + "crypto/hashtable/libcrypto-lib-hashtable.o", "crypto/hmac/libcrypto-lib-hmac.o", + "crypto/hpke/libcrypto-lib-hpke.o", + "crypto/hpke/libcrypto-lib-hpke_util.o", "crypto/http/libcrypto-lib-http_client.o", "crypto/http/libcrypto-lib-http_err.o", "crypto/http/libcrypto-lib-http_lib.o", @@ -24147,6 +28143,7 @@ our %unified_info = ( "crypto/lhash/libcrypto-lib-lhash.o", "crypto/libcrypto-lib-asn1_dsa.o", "crypto/libcrypto-lib-bsearch.o", + "crypto/libcrypto-lib-comp_methods.o", "crypto/libcrypto-lib-context.o", "crypto/libcrypto-lib-core_algorithm.o", "crypto/libcrypto-lib-core_fetch.o", @@ -24156,10 +28153,13 @@ our %unified_info = ( "crypto/libcrypto-lib-cryptlib.o", "crypto/libcrypto-lib-ctype.o", "crypto/libcrypto-lib-cversion.o", + "crypto/libcrypto-lib-defaults.o", "crypto/libcrypto-lib-der_writer.o", + "crypto/libcrypto-lib-deterministic_nonce.o", "crypto/libcrypto-lib-ebcdic.o", "crypto/libcrypto-lib-ex_data.o", "crypto/libcrypto-lib-getenv.o", + "crypto/libcrypto-lib-indicator_core.o", "crypto/libcrypto-lib-info.o", "crypto/libcrypto-lib-init.o", "crypto/libcrypto-lib-initthread.o", @@ -24176,6 +28176,7 @@ our %unified_info = ( "crypto/libcrypto-lib-params.o", "crypto/libcrypto-lib-params_dup.o", "crypto/libcrypto-lib-params_from_text.o", + "crypto/libcrypto-lib-params_idx.o", "crypto/libcrypto-lib-passphrase.o", "crypto/libcrypto-lib-provider.o", "crypto/libcrypto-lib-provider_child.o", @@ -24183,12 +28184,16 @@ our %unified_info = ( "crypto/libcrypto-lib-provider_core.o", "crypto/libcrypto-lib-provider_predefined.o", "crypto/libcrypto-lib-punycode.o", + "crypto/libcrypto-lib-quic_vlint.o", "crypto/libcrypto-lib-self_test_core.o", + "crypto/libcrypto-lib-sleep.o", "crypto/libcrypto-lib-sparse_array.o", + "crypto/libcrypto-lib-ssl_err.o", "crypto/libcrypto-lib-threads_lib.o", "crypto/libcrypto-lib-threads_none.o", "crypto/libcrypto-lib-threads_pthread.o", "crypto/libcrypto-lib-threads_win.o", + "crypto/libcrypto-lib-time.o", "crypto/libcrypto-lib-trace.o", "crypto/libcrypto-lib-uid.o", "crypto/libcrypto-lib-x86cpuid.o", @@ -24200,6 +28205,15 @@ our %unified_info = ( "crypto/md5/libcrypto-lib-md5_sha1.o", "crypto/mdc2/libcrypto-lib-mdc2_one.o", "crypto/mdc2/libcrypto-lib-mdc2dgst.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_encoders.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key_compress.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_matrix.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_ntt.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_params.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sample.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sign.o", + "crypto/ml_kem/libcrypto-lib-ml_kem.o", "crypto/modes/libcrypto-lib-cbc128.o", "crypto/modes/libcrypto-lib-ccm128.o", "crypto/modes/libcrypto-lib-cfb128.o", @@ -24212,6 +28226,7 @@ our %unified_info = ( "crypto/modes/libcrypto-lib-siv128.o", "crypto/modes/libcrypto-lib-wrap128.o", "crypto/modes/libcrypto-lib-xts128.o", + "crypto/modes/libcrypto-lib-xts128gb.o", "crypto/objects/libcrypto-lib-o_names.o", "crypto/objects/libcrypto-lib-obj_dat.o", "crypto/objects/libcrypto-lib-obj_err.o", @@ -24276,6 +28291,7 @@ our %unified_info = ( "crypto/rand/libcrypto-lib-rand_lib.o", "crypto/rand/libcrypto-lib-rand_meth.o", "crypto/rand/libcrypto-lib-rand_pool.o", + "crypto/rand/libcrypto-lib-rand_uniform.o", "crypto/rand/libcrypto-lib-randfile.o", "crypto/rc2/libcrypto-lib-rc2_cbc.o", "crypto/rc2/libcrypto-lib-rc2_ecb.o", @@ -24327,6 +28343,16 @@ our %unified_info = ( "crypto/sha/libcrypto-lib-sha512-586.o", "crypto/sha/libcrypto-lib-sha512.o", "crypto/siphash/libcrypto-lib-siphash.o", + "crypto/slh_dsa/libcrypto-lib-slh_adrs.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa_hash_ctx.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa_key.o", + "crypto/slh_dsa/libcrypto-lib-slh_fors.o", + "crypto/slh_dsa/libcrypto-lib-slh_hash.o", + "crypto/slh_dsa/libcrypto-lib-slh_hypertree.o", + "crypto/slh_dsa/libcrypto-lib-slh_params.o", + "crypto/slh_dsa/libcrypto-lib-slh_wots.o", + "crypto/slh_dsa/libcrypto-lib-slh_xmss.o", "crypto/sm2/libcrypto-lib-sm2_crypt.o", "crypto/sm2/libcrypto-lib-sm2_err.o", "crypto/sm2/libcrypto-lib-sm2_key.o", @@ -24344,6 +28370,12 @@ our %unified_info = ( "crypto/store/libcrypto-lib-store_register.o", "crypto/store/libcrypto-lib-store_result.o", "crypto/store/libcrypto-lib-store_strings.o", + "crypto/thread/arch/libcrypto-lib-thread_none.o", + "crypto/thread/arch/libcrypto-lib-thread_posix.o", + "crypto/thread/arch/libcrypto-lib-thread_win.o", + "crypto/thread/libcrypto-lib-api.o", + "crypto/thread/libcrypto-lib-arch.o", + "crypto/thread/libcrypto-lib-internal.o", "crypto/ts/libcrypto-lib-ts_asn1.o", "crypto/ts/libcrypto-lib-ts_conf.o", "crypto/ts/libcrypto-lib-ts_err.o", @@ -24373,14 +28405,22 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-pcy_map.o", "crypto/x509/libcrypto-lib-pcy_node.o", "crypto/x509/libcrypto-lib-pcy_tree.o", + "crypto/x509/libcrypto-lib-t_acert.o", "crypto/x509/libcrypto-lib-t_crl.o", "crypto/x509/libcrypto-lib-t_req.o", "crypto/x509/libcrypto-lib-t_x509.o", + "crypto/x509/libcrypto-lib-v3_aaa.o", + "crypto/x509/libcrypto-lib-v3_ac_tgt.o", "crypto/x509/libcrypto-lib-v3_addr.o", "crypto/x509/libcrypto-lib-v3_admis.o", "crypto/x509/libcrypto-lib-v3_akeya.o", "crypto/x509/libcrypto-lib-v3_akid.o", "crypto/x509/libcrypto-lib-v3_asid.o", + "crypto/x509/libcrypto-lib-v3_attrdesc.o", + "crypto/x509/libcrypto-lib-v3_attrmap.o", + "crypto/x509/libcrypto-lib-v3_audit_id.o", + "crypto/x509/libcrypto-lib-v3_authattid.o", + "crypto/x509/libcrypto-lib-v3_battcons.o", "crypto/x509/libcrypto-lib-v3_bcons.o", "crypto/x509/libcrypto-lib-v3_bitst.o", "crypto/x509/libcrypto-lib-v3_conf.o", @@ -24389,12 +28429,17 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_enum.o", "crypto/x509/libcrypto-lib-v3_extku.o", "crypto/x509/libcrypto-lib-v3_genn.o", + "crypto/x509/libcrypto-lib-v3_group_ac.o", "crypto/x509/libcrypto-lib-v3_ia5.o", + "crypto/x509/libcrypto-lib-v3_ind_iss.o", "crypto/x509/libcrypto-lib-v3_info.o", "crypto/x509/libcrypto-lib-v3_int.o", + "crypto/x509/libcrypto-lib-v3_iobo.o", "crypto/x509/libcrypto-lib-v3_ist.o", "crypto/x509/libcrypto-lib-v3_lib.o", "crypto/x509/libcrypto-lib-v3_ncons.o", + "crypto/x509/libcrypto-lib-v3_no_ass.o", + "crypto/x509/libcrypto-lib-v3_no_rev_avail.o", "crypto/x509/libcrypto-lib-v3_pci.o", "crypto/x509/libcrypto-lib-v3_pcia.o", "crypto/x509/libcrypto-lib-v3_pcons.o", @@ -24402,13 +28447,20 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_pmaps.o", "crypto/x509/libcrypto-lib-v3_prn.o", "crypto/x509/libcrypto-lib-v3_purp.o", + "crypto/x509/libcrypto-lib-v3_rolespec.o", "crypto/x509/libcrypto-lib-v3_san.o", + "crypto/x509/libcrypto-lib-v3_sda.o", + "crypto/x509/libcrypto-lib-v3_single_use.o", "crypto/x509/libcrypto-lib-v3_skid.o", + "crypto/x509/libcrypto-lib-v3_soa_id.o", "crypto/x509/libcrypto-lib-v3_sxnet.o", + "crypto/x509/libcrypto-lib-v3_timespec.o", "crypto/x509/libcrypto-lib-v3_tlsf.o", + "crypto/x509/libcrypto-lib-v3_usernotice.o", "crypto/x509/libcrypto-lib-v3_utf8.o", "crypto/x509/libcrypto-lib-v3_utl.o", "crypto/x509/libcrypto-lib-v3err.o", + "crypto/x509/libcrypto-lib-x509_acert.o", "crypto/x509/libcrypto-lib-x509_att.o", "crypto/x509/libcrypto-lib-x509_cmp.o", "crypto/x509/libcrypto-lib-x509_d2.o", @@ -24426,6 +28478,7 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x509_v3.o", "crypto/x509/libcrypto-lib-x509_vfy.o", "crypto/x509/libcrypto-lib-x509_vpm.o", + "crypto/x509/libcrypto-lib-x509aset.o", "crypto/x509/libcrypto-lib-x509cset.o", "crypto/x509/libcrypto-lib-x509name.o", "crypto/x509/libcrypto-lib-x509rset.o", @@ -24435,6 +28488,7 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x_attrib.o", "crypto/x509/libcrypto-lib-x_crl.o", "crypto/x509/libcrypto-lib-x_exten.o", + "crypto/x509/libcrypto-lib-x_ietfatt.o", "crypto/x509/libcrypto-lib-x_name.o", "crypto/x509/libcrypto-lib-x_pubkey.o", "crypto/x509/libcrypto-lib-x_req.o", @@ -24457,14 +28511,15 @@ our %unified_info = ( "ssl/libssl-lib-d1_srtp.o", "ssl/libssl-lib-methods.o", "ssl/libssl-lib-pqueue.o", + "ssl/libssl-lib-priority_queue.o", "ssl/libssl-lib-s3_enc.o", "ssl/libssl-lib-s3_lib.o", "ssl/libssl-lib-s3_msg.o", "ssl/libssl-lib-ssl_asn1.o", "ssl/libssl-lib-ssl_cert.o", + "ssl/libssl-lib-ssl_cert_comp.o", "ssl/libssl-lib-ssl_ciph.o", "ssl/libssl-lib-ssl_conf.o", - "ssl/libssl-lib-ssl_err.o", "ssl/libssl-lib-ssl_err_legacy.o", "ssl/libssl-lib-ssl_init.o", "ssl/libssl-lib-ssl_lib.o", @@ -24481,12 +28536,60 @@ our %unified_info = ( "ssl/libssl-lib-tls13_enc.o", "ssl/libssl-lib-tls_depr.o", "ssl/libssl-lib-tls_srp.o", - "ssl/record/libssl-lib-dtls1_bitmap.o", + "ssl/quic/libssl-lib-cc_newreno.o", + "ssl/quic/libssl-lib-json_enc.o", + "ssl/quic/libssl-lib-qlog.o", + "ssl/quic/libssl-lib-qlog_event_helpers.o", + "ssl/quic/libssl-lib-quic_ackm.o", + "ssl/quic/libssl-lib-quic_cfq.o", + "ssl/quic/libssl-lib-quic_channel.o", + "ssl/quic/libssl-lib-quic_demux.o", + "ssl/quic/libssl-lib-quic_engine.o", + "ssl/quic/libssl-lib-quic_fc.o", + "ssl/quic/libssl-lib-quic_fifd.o", + "ssl/quic/libssl-lib-quic_impl.o", + "ssl/quic/libssl-lib-quic_lcidm.o", + "ssl/quic/libssl-lib-quic_method.o", + "ssl/quic/libssl-lib-quic_obj.o", + "ssl/quic/libssl-lib-quic_port.o", + "ssl/quic/libssl-lib-quic_rcidm.o", + "ssl/quic/libssl-lib-quic_reactor.o", + "ssl/quic/libssl-lib-quic_reactor_wait_ctx.o", + "ssl/quic/libssl-lib-quic_record_rx.o", + "ssl/quic/libssl-lib-quic_record_shared.o", + "ssl/quic/libssl-lib-quic_record_tx.o", + "ssl/quic/libssl-lib-quic_record_util.o", + "ssl/quic/libssl-lib-quic_rstream.o", + "ssl/quic/libssl-lib-quic_rx_depack.o", + "ssl/quic/libssl-lib-quic_sf_list.o", + "ssl/quic/libssl-lib-quic_srt_gen.o", + "ssl/quic/libssl-lib-quic_srtm.o", + "ssl/quic/libssl-lib-quic_sstream.o", + "ssl/quic/libssl-lib-quic_statm.o", + "ssl/quic/libssl-lib-quic_stream_map.o", + "ssl/quic/libssl-lib-quic_thread_assist.o", + "ssl/quic/libssl-lib-quic_tls.o", + "ssl/quic/libssl-lib-quic_tls_api.o", + "ssl/quic/libssl-lib-quic_trace.o", + "ssl/quic/libssl-lib-quic_tserver.o", + "ssl/quic/libssl-lib-quic_txp.o", + "ssl/quic/libssl-lib-quic_txpim.o", + "ssl/quic/libssl-lib-quic_types.o", + "ssl/quic/libssl-lib-quic_wire.o", + "ssl/quic/libssl-lib-quic_wire_pkt.o", + "ssl/quic/libssl-lib-uint_set.o", "ssl/record/libssl-lib-rec_layer_d1.o", "ssl/record/libssl-lib-rec_layer_s3.o", - "ssl/record/libssl-lib-ssl3_buffer.o", - "ssl/record/libssl-lib-ssl3_record.o", - "ssl/record/libssl-lib-ssl3_record_tls13.o", + "ssl/record/methods/libssl-lib-dtls_meth.o", + "ssl/record/methods/libssl-lib-ssl3_meth.o", + "ssl/record/methods/libssl-lib-tls13_meth.o", + "ssl/record/methods/libssl-lib-tls1_meth.o", + "ssl/record/methods/libssl-lib-tls_common.o", + "ssl/record/methods/libssl-lib-tls_multib.o", + "ssl/record/methods/libssl-lib-tlsany_meth.o", + "ssl/rio/libssl-lib-poll_builder.o", + "ssl/rio/libssl-lib-poll_immediate.o", + "ssl/rio/libssl-lib-rio_notifier.o", "ssl/statem/libssl-lib-extensions.o", "ssl/statem/libssl-lib-extensions_clnt.o", "ssl/statem/libssl-lib-extensions_cust.o", @@ -24524,12 +28627,24 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ecx_key.o" => [ "providers/common/der/der_ecx_key.c" ], + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o" => [ + "providers/common/der/der_ml_dsa_gen.c" + ], + "providers/common/der/libcommon-lib-der_ml_dsa_key.o" => [ + "providers/common/der/der_ml_dsa_key.c" + ], "providers/common/der/libcommon-lib-der_rsa_gen.o" => [ "providers/common/der/der_rsa_gen.c" ], "providers/common/der/libcommon-lib-der_rsa_key.o" => [ "providers/common/der/der_rsa_key.c" ], + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o" => [ + "providers/common/der/der_slh_dsa_gen.c" + ], + "providers/common/der/libcommon-lib-der_slh_dsa_key.o" => [ + "providers/common/der/der_slh_dsa_key.c" + ], "providers/common/der/libcommon-lib-der_wrap_gen.o" => [ "providers/common/der/der_wrap_gen.c" ], @@ -24596,6 +28711,9 @@ our %unified_info = ( "providers/common/libfips-lib-securitycheck_fips.o" => [ "providers/common/securitycheck_fips.c" ], + "providers/endecode_test-bin-legacyprov.o" => [ + "providers/legacyprov.c" + ], "providers/evp_extra_test-bin-legacyprov.o" => [ "providers/legacyprov.c" ], @@ -24606,6 +28724,9 @@ our %unified_info = ( "providers/fips/fips-dso-fips_entry.o" => [ "providers/fips/fips_entry.c" ], + "providers/fips/libfips-lib-fipsindicator.o" => [ + "providers/fips/fipsindicator.c" + ], "providers/fips/libfips-lib-fipsprov.o" => [ "providers/fips/fipsprov.c" ], @@ -24669,6 +28790,15 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_hw.o" => [ "providers/implementations/ciphers/cipher_aes_gcm_hw.c" ], + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv.o" => [ + "providers/implementations/ciphers/cipher_aes_gcm_siv.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_hw.o" => [ + "providers/implementations/ciphers/cipher_aes_gcm_siv_hw.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_polyval.o" => [ + "providers/implementations/ciphers/cipher_aes_gcm_siv_polyval.c" + ], "providers/implementations/ciphers/libdefault-lib-cipher_aes_hw.o" => [ "providers/implementations/ciphers/cipher_aes_hw.c" ], @@ -24741,9 +28871,27 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_sm4.o" => [ "providers/implementations/ciphers/cipher_sm4.c" ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm.o" => [ + "providers/implementations/ciphers/cipher_sm4_ccm.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm_hw.o" => [ + "providers/implementations/ciphers/cipher_sm4_ccm_hw.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm.o" => [ + "providers/implementations/ciphers/cipher_sm4_gcm.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm_hw.o" => [ + "providers/implementations/ciphers/cipher_sm4_gcm_hw.c" + ], "providers/implementations/ciphers/libdefault-lib-cipher_sm4_hw.o" => [ "providers/implementations/ciphers/cipher_sm4_hw.c" ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts.o" => [ + "providers/implementations/ciphers/cipher_sm4_xts.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts_hw.o" => [ + "providers/implementations/ciphers/cipher_sm4_xts_hw.c" + ], "providers/implementations/ciphers/libdefault-lib-cipher_tdes.o" => [ "providers/implementations/ciphers/cipher_tdes.c" ], @@ -24963,6 +29111,15 @@ our %unified_info = ( "providers/implementations/encode_decode/libdefault-lib-endecoder_common.o" => [ "providers/implementations/encode_decode/endecoder_common.c" ], + "providers/implementations/encode_decode/libdefault-lib-ml_common_codecs.o" => [ + "providers/implementations/encode_decode/ml_common_codecs.c" + ], + "providers/implementations/encode_decode/libdefault-lib-ml_dsa_codecs.o" => [ + "providers/implementations/encode_decode/ml_dsa_codecs.c" + ], + "providers/implementations/encode_decode/libdefault-lib-ml_kem_codecs.o" => [ + "providers/implementations/encode_decode/ml_kem_codecs.c" + ], "providers/implementations/exchange/libdefault-lib-dh_exch.o" => [ "providers/implementations/exchange/dh_exch.c" ], @@ -24987,9 +29144,15 @@ our %unified_info = ( "providers/implementations/exchange/libfips-lib-kdf_exch.o" => [ "providers/implementations/exchange/kdf_exch.c" ], + "providers/implementations/kdfs/libdefault-lib-argon2.o" => [ + "providers/implementations/kdfs/argon2.c" + ], "providers/implementations/kdfs/libdefault-lib-hkdf.o" => [ "providers/implementations/kdfs/hkdf.c" ], + "providers/implementations/kdfs/libdefault-lib-hmacdrbg_kdf.o" => [ + "providers/implementations/kdfs/hmacdrbg_kdf.c" + ], "providers/implementations/kdfs/libdefault-lib-kbkdf.o" => [ "providers/implementations/kdfs/kbkdf.c" ], @@ -25047,12 +29210,39 @@ our %unified_info = ( "providers/implementations/kdfs/liblegacy-lib-pbkdf1.o" => [ "providers/implementations/kdfs/pbkdf1.c" ], + "providers/implementations/kdfs/liblegacy-lib-pvkkdf.o" => [ + "providers/implementations/kdfs/pvkkdf.c" + ], + "providers/implementations/kem/libdefault-lib-ec_kem.o" => [ + "providers/implementations/kem/ec_kem.c" + ], + "providers/implementations/kem/libdefault-lib-ecx_kem.o" => [ + "providers/implementations/kem/ecx_kem.c" + ], + "providers/implementations/kem/libdefault-lib-kem_util.o" => [ + "providers/implementations/kem/kem_util.c" + ], + "providers/implementations/kem/libdefault-lib-ml_kem_kem.o" => [ + "providers/implementations/kem/ml_kem_kem.c" + ], + "providers/implementations/kem/libdefault-lib-mlx_kem.o" => [ + "providers/implementations/kem/mlx_kem.c" + ], "providers/implementations/kem/libdefault-lib-rsa_kem.o" => [ "providers/implementations/kem/rsa_kem.c" ], + "providers/implementations/kem/libfips-lib-ml_kem_kem.o" => [ + "providers/implementations/kem/ml_kem_kem.c" + ], + "providers/implementations/kem/libfips-lib-mlx_kem.o" => [ + "providers/implementations/kem/mlx_kem.c" + ], "providers/implementations/kem/libfips-lib-rsa_kem.o" => [ "providers/implementations/kem/rsa_kem.c" ], + "providers/implementations/kem/libtemplate-lib-template_kem.o" => [ + "providers/implementations/kem/template_kem.c" + ], "providers/implementations/keymgmt/libdefault-lib-dh_kmgmt.o" => [ "providers/implementations/keymgmt/dh_kmgmt.c" ], @@ -25071,9 +29261,21 @@ our %unified_info = ( "providers/implementations/keymgmt/libdefault-lib-mac_legacy_kmgmt.o" => [ "providers/implementations/keymgmt/mac_legacy_kmgmt.c" ], + "providers/implementations/keymgmt/libdefault-lib-ml_dsa_kmgmt.o" => [ + "providers/implementations/keymgmt/ml_dsa_kmgmt.c" + ], + "providers/implementations/keymgmt/libdefault-lib-ml_kem_kmgmt.o" => [ + "providers/implementations/keymgmt/ml_kem_kmgmt.c" + ], + "providers/implementations/keymgmt/libdefault-lib-mlx_kmgmt.o" => [ + "providers/implementations/keymgmt/mlx_kmgmt.c" + ], "providers/implementations/keymgmt/libdefault-lib-rsa_kmgmt.o" => [ "providers/implementations/keymgmt/rsa_kmgmt.c" ], + "providers/implementations/keymgmt/libdefault-lib-slh_dsa_kmgmt.o" => [ + "providers/implementations/keymgmt/slh_dsa_kmgmt.c" + ], "providers/implementations/keymgmt/libfips-lib-dh_kmgmt.o" => [ "providers/implementations/keymgmt/dh_kmgmt.c" ], @@ -25092,9 +29294,24 @@ our %unified_info = ( "providers/implementations/keymgmt/libfips-lib-mac_legacy_kmgmt.o" => [ "providers/implementations/keymgmt/mac_legacy_kmgmt.c" ], + "providers/implementations/keymgmt/libfips-lib-ml_dsa_kmgmt.o" => [ + "providers/implementations/keymgmt/ml_dsa_kmgmt.c" + ], + "providers/implementations/keymgmt/libfips-lib-ml_kem_kmgmt.o" => [ + "providers/implementations/keymgmt/ml_kem_kmgmt.c" + ], + "providers/implementations/keymgmt/libfips-lib-mlx_kmgmt.o" => [ + "providers/implementations/keymgmt/mlx_kmgmt.c" + ], "providers/implementations/keymgmt/libfips-lib-rsa_kmgmt.o" => [ "providers/implementations/keymgmt/rsa_kmgmt.c" ], + "providers/implementations/keymgmt/libfips-lib-slh_dsa_kmgmt.o" => [ + "providers/implementations/keymgmt/slh_dsa_kmgmt.c" + ], + "providers/implementations/keymgmt/libtemplate-lib-template_kmgmt.o" => [ + "providers/implementations/keymgmt/template_kmgmt.c" + ], "providers/implementations/macs/libdefault-lib-blake2b_mac.o" => [ "providers/implementations/macs/blake2b_mac.c" ], @@ -25131,9 +29348,6 @@ our %unified_info = ( "providers/implementations/macs/libfips-lib-kmac_prov.o" => [ "providers/implementations/macs/kmac_prov.c" ], - "providers/implementations/rands/libdefault-lib-crngt.o" => [ - "providers/implementations/rands/crngt.c" - ], "providers/implementations/rands/libdefault-lib-drbg.o" => [ "providers/implementations/rands/drbg.c" ], @@ -25149,12 +29363,12 @@ our %unified_info = ( "providers/implementations/rands/libdefault-lib-seed_src.o" => [ "providers/implementations/rands/seed_src.c" ], + "providers/implementations/rands/libdefault-lib-seed_src_jitter.o" => [ + "providers/implementations/rands/seed_src_jitter.c" + ], "providers/implementations/rands/libdefault-lib-test_rng.o" => [ "providers/implementations/rands/test_rng.c" ], - "providers/implementations/rands/libfips-lib-crngt.o" => [ - "providers/implementations/rands/crngt.c" - ], "providers/implementations/rands/libfips-lib-drbg.o" => [ "providers/implementations/rands/drbg.c" ], @@ -25167,6 +29381,9 @@ our %unified_info = ( "providers/implementations/rands/libfips-lib-drbg_hmac.o" => [ "providers/implementations/rands/drbg_hmac.c" ], + "providers/implementations/rands/libfips-lib-fips_crng_test.o" => [ + "providers/implementations/rands/fips_crng_test.c" + ], "providers/implementations/rands/libfips-lib-test_rng.o" => [ "providers/implementations/rands/test_rng.c" ], @@ -25194,9 +29411,15 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-mac_legacy_sig.o" => [ "providers/implementations/signature/mac_legacy_sig.c" ], + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o" => [ + "providers/implementations/signature/ml_dsa_sig.c" + ], "providers/implementations/signature/libdefault-lib-rsa_sig.o" => [ "providers/implementations/signature/rsa_sig.c" ], + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o" => [ + "providers/implementations/signature/slh_dsa_sig.c" + ], "providers/implementations/signature/libdefault-lib-sm2_sig.o" => [ "providers/implementations/signature/sm2_sig.c" ], @@ -25212,9 +29435,27 @@ our %unified_info = ( "providers/implementations/signature/libfips-lib-mac_legacy_sig.o" => [ "providers/implementations/signature/mac_legacy_sig.c" ], + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o" => [ + "providers/implementations/signature/ml_dsa_sig.c" + ], "providers/implementations/signature/libfips-lib-rsa_sig.o" => [ "providers/implementations/signature/rsa_sig.c" ], + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o" => [ + "providers/implementations/signature/slh_dsa_sig.c" + ], + "providers/implementations/skeymgmt/libdefault-lib-aes_skmgmt.o" => [ + "providers/implementations/skeymgmt/aes_skmgmt.c" + ], + "providers/implementations/skeymgmt/libdefault-lib-generic.o" => [ + "providers/implementations/skeymgmt/generic.c" + ], + "providers/implementations/skeymgmt/libfips-lib-aes_skmgmt.o" => [ + "providers/implementations/skeymgmt/aes_skmgmt.c" + ], + "providers/implementations/skeymgmt/libfips-lib-generic.o" => [ + "providers/implementations/skeymgmt/generic.c" + ], "providers/implementations/storemgmt/libdefault-lib-file_store.o" => [ "providers/implementations/storemgmt/file_store.c" ], @@ -25238,8 +29479,12 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ec_sig.o", "providers/common/der/libcommon-lib-der_ecx_gen.o", "providers/common/der/libcommon-lib-der_ecx_key.o", + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o", + "providers/common/der/libcommon-lib-der_ml_dsa_key.o", "providers/common/der/libcommon-lib-der_rsa_gen.o", "providers/common/der/libcommon-lib-der_rsa_key.o", + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o", + "providers/common/der/libcommon-lib-der_slh_dsa_key.o", "providers/common/der/libcommon-lib-der_wrap_gen.o", "providers/common/libcommon-lib-provider_ctx.o", "providers/common/libcommon-lib-provider_err.o", @@ -25251,7 +29496,7 @@ our %unified_info = ( "providers/implementations/ciphers/libcommon-lib-ciphercommon_gcm_hw.o", "providers/implementations/ciphers/libcommon-lib-ciphercommon_hw.o", "providers/implementations/digests/libcommon-lib-digestcommon.o", - "ssl/record/libcommon-lib-tls_pad.o" + "ssl/record/methods/libcommon-lib-tls_pad.o" ], "providers/libcrypto-lib-baseprov.o" => [ "providers/baseprov.c" @@ -25287,6 +29532,9 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_aes_ccm_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_polyval.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_ocb.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_ocb_hw.o", @@ -25311,7 +29559,13 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_cts.o", "providers/implementations/ciphers/libdefault-lib-cipher_null.o", "providers/implementations/ciphers/libdefault-lib-cipher_sm4.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_sm4_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes_common.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes_default.o", @@ -25340,11 +29594,16 @@ our %unified_info = ( "providers/implementations/encode_decode/libdefault-lib-encode_key2ms.o", "providers/implementations/encode_decode/libdefault-lib-encode_key2text.o", "providers/implementations/encode_decode/libdefault-lib-endecoder_common.o", + "providers/implementations/encode_decode/libdefault-lib-ml_common_codecs.o", + "providers/implementations/encode_decode/libdefault-lib-ml_dsa_codecs.o", + "providers/implementations/encode_decode/libdefault-lib-ml_kem_codecs.o", "providers/implementations/exchange/libdefault-lib-dh_exch.o", "providers/implementations/exchange/libdefault-lib-ecdh_exch.o", "providers/implementations/exchange/libdefault-lib-ecx_exch.o", "providers/implementations/exchange/libdefault-lib-kdf_exch.o", + "providers/implementations/kdfs/libdefault-lib-argon2.o", "providers/implementations/kdfs/libdefault-lib-hkdf.o", + "providers/implementations/kdfs/libdefault-lib-hmacdrbg_kdf.o", "providers/implementations/kdfs/libdefault-lib-kbkdf.o", "providers/implementations/kdfs/libdefault-lib-krb5kdf.o", "providers/implementations/kdfs/libdefault-lib-pbkdf2.o", @@ -25355,6 +29614,11 @@ our %unified_info = ( "providers/implementations/kdfs/libdefault-lib-sskdf.o", "providers/implementations/kdfs/libdefault-lib-tls1_prf.o", "providers/implementations/kdfs/libdefault-lib-x942kdf.o", + "providers/implementations/kem/libdefault-lib-ec_kem.o", + "providers/implementations/kem/libdefault-lib-ecx_kem.o", + "providers/implementations/kem/libdefault-lib-kem_util.o", + "providers/implementations/kem/libdefault-lib-ml_kem_kem.o", + "providers/implementations/kem/libdefault-lib-mlx_kem.o", "providers/implementations/kem/libdefault-lib-rsa_kem.o", "providers/implementations/keymgmt/libdefault-lib-dh_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-dsa_kmgmt.o", @@ -25362,7 +29626,11 @@ our %unified_info = ( "providers/implementations/keymgmt/libdefault-lib-ecx_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-kdf_legacy_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-mac_legacy_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-ml_dsa_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-ml_kem_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-mlx_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-rsa_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-slh_dsa_kmgmt.o", "providers/implementations/macs/libdefault-lib-blake2b_mac.o", "providers/implementations/macs/libdefault-lib-blake2s_mac.o", "providers/implementations/macs/libdefault-lib-cmac_prov.o", @@ -25371,12 +29639,12 @@ our %unified_info = ( "providers/implementations/macs/libdefault-lib-kmac_prov.o", "providers/implementations/macs/libdefault-lib-poly1305_prov.o", "providers/implementations/macs/libdefault-lib-siphash_prov.o", - "providers/implementations/rands/libdefault-lib-crngt.o", "providers/implementations/rands/libdefault-lib-drbg.o", "providers/implementations/rands/libdefault-lib-drbg_ctr.o", "providers/implementations/rands/libdefault-lib-drbg_hash.o", "providers/implementations/rands/libdefault-lib-drbg_hmac.o", "providers/implementations/rands/libdefault-lib-seed_src.o", + "providers/implementations/rands/libdefault-lib-seed_src_jitter.o", "providers/implementations/rands/libdefault-lib-test_rng.o", "providers/implementations/rands/seeding/libdefault-lib-rand_cpu_x86.o", "providers/implementations/rands/seeding/libdefault-lib-rand_tsc.o", @@ -25386,11 +29654,15 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-ecdsa_sig.o", "providers/implementations/signature/libdefault-lib-eddsa_sig.o", "providers/implementations/signature/libdefault-lib-mac_legacy_sig.o", + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o", "providers/implementations/signature/libdefault-lib-rsa_sig.o", + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o", "providers/implementations/signature/libdefault-lib-sm2_sig.o", + "providers/implementations/skeymgmt/libdefault-lib-aes_skmgmt.o", + "providers/implementations/skeymgmt/libdefault-lib-generic.o", "providers/implementations/storemgmt/libdefault-lib-file_store.o", "providers/implementations/storemgmt/libdefault-lib-file_store_any2obj.o", - "ssl/libdefault-lib-s3_cbc.o" + "ssl/record/methods/libdefault-lib-ssl3_cbc.o" ], "providers/libfips.a" => [ "crypto/aes/libfips-lib-aes-586.o", @@ -25498,14 +29770,15 @@ our %unified_info = ( "crypto/evp/libfips-lib-kem.o", "crypto/evp/libfips-lib-keymgmt_lib.o", "crypto/evp/libfips-lib-keymgmt_meth.o", - "crypto/evp/libfips-lib-m_sigver.o", "crypto/evp/libfips-lib-mac_lib.o", "crypto/evp/libfips-lib-mac_meth.o", "crypto/evp/libfips-lib-p_lib.o", "crypto/evp/libfips-lib-pmeth_check.o", "crypto/evp/libfips-lib-pmeth_gn.o", "crypto/evp/libfips-lib-pmeth_lib.o", + "crypto/evp/libfips-lib-s_lib.o", "crypto/evp/libfips-lib-signature.o", + "crypto/evp/libfips-lib-skeymgmt_meth.o", "crypto/ffc/libfips-lib-ffc_backend.o", "crypto/ffc/libfips-lib-ffc_dh.o", "crypto/ffc/libfips-lib-ffc_key_generate.o", @@ -25513,6 +29786,8 @@ our %unified_info = ( "crypto/ffc/libfips-lib-ffc_params.o", "crypto/ffc/libfips-lib-ffc_params_generate.o", "crypto/ffc/libfips-lib-ffc_params_validate.o", + "crypto/hashtable/libfips-lib-hashfunc.o", + "crypto/hashtable/libfips-lib-hashtable.o", "crypto/hmac/libfips-lib-hmac.o", "crypto/lhash/libfips-lib-lhash.o", "crypto/libfips-lib-asn1_dsa.o", @@ -25534,6 +29809,7 @@ our %unified_info = ( "crypto/libfips-lib-params.o", "crypto/libfips-lib-params_dup.o", "crypto/libfips-lib-params_from_text.o", + "crypto/libfips-lib-params_idx.o", "crypto/libfips-lib-provider_core.o", "crypto/libfips-lib-provider_predefined.o", "crypto/libfips-lib-self_test_core.o", @@ -25542,7 +29818,17 @@ our %unified_info = ( "crypto/libfips-lib-threads_none.o", "crypto/libfips-lib-threads_pthread.o", "crypto/libfips-lib-threads_win.o", + "crypto/libfips-lib-time.o", "crypto/libfips-lib-x86cpuid.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_encoders.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_key.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_key_compress.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_matrix.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_ntt.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_params.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_sample.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_sign.o", + "crypto/ml_kem/libfips-lib-ml_kem.o", "crypto/modes/libfips-lib-cbc128.o", "crypto/modes/libfips-lib-ccm128.o", "crypto/modes/libfips-lib-cfb128.o", @@ -25552,6 +29838,7 @@ our %unified_info = ( "crypto/modes/libfips-lib-ofb128.o", "crypto/modes/libfips-lib-wrap128.o", "crypto/modes/libfips-lib-xts128.o", + "crypto/modes/libfips-lib-xts128gb.o", "crypto/property/libfips-lib-defn_cache.o", "crypto/property/libfips-lib-property.o", "crypto/property/libfips-lib-property_parse.o", @@ -25583,7 +29870,23 @@ our %unified_info = ( "crypto/sha/libfips-lib-sha3.o", "crypto/sha/libfips-lib-sha512-586.o", "crypto/sha/libfips-lib-sha512.o", + "crypto/slh_dsa/libfips-lib-slh_adrs.o", + "crypto/slh_dsa/libfips-lib-slh_dsa.o", + "crypto/slh_dsa/libfips-lib-slh_dsa_hash_ctx.o", + "crypto/slh_dsa/libfips-lib-slh_dsa_key.o", + "crypto/slh_dsa/libfips-lib-slh_fors.o", + "crypto/slh_dsa/libfips-lib-slh_hash.o", + "crypto/slh_dsa/libfips-lib-slh_hypertree.o", + "crypto/slh_dsa/libfips-lib-slh_params.o", + "crypto/slh_dsa/libfips-lib-slh_wots.o", + "crypto/slh_dsa/libfips-lib-slh_xmss.o", "crypto/stack/libfips-lib-stack.o", + "crypto/thread/arch/libfips-lib-thread_none.o", + "crypto/thread/arch/libfips-lib-thread_posix.o", + "crypto/thread/arch/libfips-lib-thread_win.o", + "crypto/thread/libfips-lib-api.o", + "crypto/thread/libfips-lib-arch.o", + "crypto/thread/libfips-lib-internal.o", "providers/common/der/libfips-lib-der_rsa_sig.o", "providers/common/libfips-lib-bio_prov.o", "providers/common/libfips-lib-capabilities.o", @@ -25592,6 +29895,7 @@ our %unified_info = ( "providers/common/libfips-lib-provider_util.o", "providers/common/libfips-lib-securitycheck.o", "providers/common/libfips-lib-securitycheck_fips.o", + "providers/fips/libfips-lib-fipsindicator.o", "providers/fips/libfips-lib-fipsprov.o", "providers/fips/libfips-lib-self_test.o", "providers/fips/libfips-lib-self_test_kats.o", @@ -25629,6 +29933,8 @@ our %unified_info = ( "providers/implementations/kdfs/libfips-lib-sskdf.o", "providers/implementations/kdfs/libfips-lib-tls1_prf.o", "providers/implementations/kdfs/libfips-lib-x942kdf.o", + "providers/implementations/kem/libfips-lib-ml_kem_kem.o", + "providers/implementations/kem/libfips-lib-mlx_kem.o", "providers/implementations/kem/libfips-lib-rsa_kem.o", "providers/implementations/keymgmt/libfips-lib-dh_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-dsa_kmgmt.o", @@ -25636,24 +29942,32 @@ our %unified_info = ( "providers/implementations/keymgmt/libfips-lib-ecx_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-kdf_legacy_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-mac_legacy_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-ml_dsa_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-ml_kem_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-mlx_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-rsa_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-slh_dsa_kmgmt.o", "providers/implementations/macs/libfips-lib-cmac_prov.o", "providers/implementations/macs/libfips-lib-gmac_prov.o", "providers/implementations/macs/libfips-lib-hmac_prov.o", "providers/implementations/macs/libfips-lib-kmac_prov.o", - "providers/implementations/rands/libfips-lib-crngt.o", "providers/implementations/rands/libfips-lib-drbg.o", "providers/implementations/rands/libfips-lib-drbg_ctr.o", "providers/implementations/rands/libfips-lib-drbg_hash.o", "providers/implementations/rands/libfips-lib-drbg_hmac.o", + "providers/implementations/rands/libfips-lib-fips_crng_test.o", "providers/implementations/rands/libfips-lib-test_rng.o", "providers/implementations/signature/libfips-lib-dsa_sig.o", "providers/implementations/signature/libfips-lib-ecdsa_sig.o", "providers/implementations/signature/libfips-lib-eddsa_sig.o", "providers/implementations/signature/libfips-lib-mac_legacy_sig.o", + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o", "providers/implementations/signature/libfips-lib-rsa_sig.o", + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o", + "providers/implementations/skeymgmt/libfips-lib-aes_skmgmt.o", + "providers/implementations/skeymgmt/libfips-lib-generic.o", "providers/libcommon.a", - "ssl/libfips-lib-s3_cbc.o" + "ssl/record/methods/libfips-lib-ssl3_cbc.o" ], "providers/liblegacy-lib-prov_running.o" => [ "providers/prov_running.c" @@ -25683,13 +29997,12 @@ our %unified_info = ( "providers/implementations/digests/liblegacy-lib-ripemd_prov.o", "providers/implementations/digests/liblegacy-lib-wp_prov.o", "providers/implementations/kdfs/liblegacy-lib-pbkdf1.o", + "providers/implementations/kdfs/liblegacy-lib-pvkkdf.o", "providers/liblegacy-lib-prov_running.o" ], - "ssl/libdefault-lib-s3_cbc.o" => [ - "ssl/s3_cbc.c" - ], - "ssl/libfips-lib-s3_cbc.o" => [ - "ssl/s3_cbc.c" + "providers/libtemplate.a" => [ + "providers/implementations/kem/libtemplate-lib-template_kem.o", + "providers/implementations/keymgmt/libtemplate-lib-template_kmgmt.o" ], "ssl/libssl-lib-bio_ssl.o" => [ "ssl/bio_ssl.c" @@ -25709,6 +30022,9 @@ our %unified_info = ( "ssl/libssl-lib-pqueue.o" => [ "ssl/pqueue.c" ], + "ssl/libssl-lib-priority_queue.o" => [ + "ssl/priority_queue.c" + ], "ssl/libssl-lib-s3_enc.o" => [ "ssl/s3_enc.c" ], @@ -25724,15 +30040,15 @@ our %unified_info = ( "ssl/libssl-lib-ssl_cert.o" => [ "ssl/ssl_cert.c" ], + "ssl/libssl-lib-ssl_cert_comp.o" => [ + "ssl/ssl_cert_comp.c" + ], "ssl/libssl-lib-ssl_ciph.o" => [ "ssl/ssl_ciph.c" ], "ssl/libssl-lib-ssl_conf.o" => [ "ssl/ssl_conf.c" ], - "ssl/libssl-lib-ssl_err.o" => [ - "ssl/ssl_err.c" - ], "ssl/libssl-lib-ssl_err_legacy.o" => [ "ssl/ssl_err_legacy.c" ], @@ -25781,11 +30097,131 @@ our %unified_info = ( "ssl/libssl-lib-tls_srp.o" => [ "ssl/tls_srp.c" ], - "ssl/record/libcommon-lib-tls_pad.o" => [ - "ssl/record/tls_pad.c" + "ssl/quic/libssl-lib-cc_newreno.o" => [ + "ssl/quic/cc_newreno.c" + ], + "ssl/quic/libssl-lib-json_enc.o" => [ + "ssl/quic/json_enc.c" + ], + "ssl/quic/libssl-lib-qlog.o" => [ + "ssl/quic/qlog.c" + ], + "ssl/quic/libssl-lib-qlog_event_helpers.o" => [ + "ssl/quic/qlog_event_helpers.c" + ], + "ssl/quic/libssl-lib-quic_ackm.o" => [ + "ssl/quic/quic_ackm.c" + ], + "ssl/quic/libssl-lib-quic_cfq.o" => [ + "ssl/quic/quic_cfq.c" + ], + "ssl/quic/libssl-lib-quic_channel.o" => [ + "ssl/quic/quic_channel.c" + ], + "ssl/quic/libssl-lib-quic_demux.o" => [ + "ssl/quic/quic_demux.c" + ], + "ssl/quic/libssl-lib-quic_engine.o" => [ + "ssl/quic/quic_engine.c" + ], + "ssl/quic/libssl-lib-quic_fc.o" => [ + "ssl/quic/quic_fc.c" + ], + "ssl/quic/libssl-lib-quic_fifd.o" => [ + "ssl/quic/quic_fifd.c" + ], + "ssl/quic/libssl-lib-quic_impl.o" => [ + "ssl/quic/quic_impl.c" + ], + "ssl/quic/libssl-lib-quic_lcidm.o" => [ + "ssl/quic/quic_lcidm.c" + ], + "ssl/quic/libssl-lib-quic_method.o" => [ + "ssl/quic/quic_method.c" + ], + "ssl/quic/libssl-lib-quic_obj.o" => [ + "ssl/quic/quic_obj.c" + ], + "ssl/quic/libssl-lib-quic_port.o" => [ + "ssl/quic/quic_port.c" + ], + "ssl/quic/libssl-lib-quic_rcidm.o" => [ + "ssl/quic/quic_rcidm.c" + ], + "ssl/quic/libssl-lib-quic_reactor.o" => [ + "ssl/quic/quic_reactor.c" + ], + "ssl/quic/libssl-lib-quic_reactor_wait_ctx.o" => [ + "ssl/quic/quic_reactor_wait_ctx.c" + ], + "ssl/quic/libssl-lib-quic_record_rx.o" => [ + "ssl/quic/quic_record_rx.c" + ], + "ssl/quic/libssl-lib-quic_record_shared.o" => [ + "ssl/quic/quic_record_shared.c" + ], + "ssl/quic/libssl-lib-quic_record_tx.o" => [ + "ssl/quic/quic_record_tx.c" + ], + "ssl/quic/libssl-lib-quic_record_util.o" => [ + "ssl/quic/quic_record_util.c" + ], + "ssl/quic/libssl-lib-quic_rstream.o" => [ + "ssl/quic/quic_rstream.c" ], - "ssl/record/libssl-lib-dtls1_bitmap.o" => [ - "ssl/record/dtls1_bitmap.c" + "ssl/quic/libssl-lib-quic_rx_depack.o" => [ + "ssl/quic/quic_rx_depack.c" + ], + "ssl/quic/libssl-lib-quic_sf_list.o" => [ + "ssl/quic/quic_sf_list.c" + ], + "ssl/quic/libssl-lib-quic_srt_gen.o" => [ + "ssl/quic/quic_srt_gen.c" + ], + "ssl/quic/libssl-lib-quic_srtm.o" => [ + "ssl/quic/quic_srtm.c" + ], + "ssl/quic/libssl-lib-quic_sstream.o" => [ + "ssl/quic/quic_sstream.c" + ], + "ssl/quic/libssl-lib-quic_statm.o" => [ + "ssl/quic/quic_statm.c" + ], + "ssl/quic/libssl-lib-quic_stream_map.o" => [ + "ssl/quic/quic_stream_map.c" + ], + "ssl/quic/libssl-lib-quic_thread_assist.o" => [ + "ssl/quic/quic_thread_assist.c" + ], + "ssl/quic/libssl-lib-quic_tls.o" => [ + "ssl/quic/quic_tls.c" + ], + "ssl/quic/libssl-lib-quic_tls_api.o" => [ + "ssl/quic/quic_tls_api.c" + ], + "ssl/quic/libssl-lib-quic_trace.o" => [ + "ssl/quic/quic_trace.c" + ], + "ssl/quic/libssl-lib-quic_tserver.o" => [ + "ssl/quic/quic_tserver.c" + ], + "ssl/quic/libssl-lib-quic_txp.o" => [ + "ssl/quic/quic_txp.c" + ], + "ssl/quic/libssl-lib-quic_txpim.o" => [ + "ssl/quic/quic_txpim.c" + ], + "ssl/quic/libssl-lib-quic_types.o" => [ + "ssl/quic/quic_types.c" + ], + "ssl/quic/libssl-lib-quic_wire.o" => [ + "ssl/quic/quic_wire.c" + ], + "ssl/quic/libssl-lib-quic_wire_pkt.o" => [ + "ssl/quic/quic_wire_pkt.c" + ], + "ssl/quic/libssl-lib-uint_set.o" => [ + "ssl/quic/uint_set.c" ], "ssl/record/libssl-lib-rec_layer_d1.o" => [ "ssl/record/rec_layer_d1.c" @@ -25793,14 +30229,44 @@ our %unified_info = ( "ssl/record/libssl-lib-rec_layer_s3.o" => [ "ssl/record/rec_layer_s3.c" ], - "ssl/record/libssl-lib-ssl3_buffer.o" => [ - "ssl/record/ssl3_buffer.c" + "ssl/record/methods/libcommon-lib-tls_pad.o" => [ + "ssl/record/methods/tls_pad.c" + ], + "ssl/record/methods/libdefault-lib-ssl3_cbc.o" => [ + "ssl/record/methods/ssl3_cbc.c" + ], + "ssl/record/methods/libfips-lib-ssl3_cbc.o" => [ + "ssl/record/methods/ssl3_cbc.c" + ], + "ssl/record/methods/libssl-lib-dtls_meth.o" => [ + "ssl/record/methods/dtls_meth.c" + ], + "ssl/record/methods/libssl-lib-ssl3_meth.o" => [ + "ssl/record/methods/ssl3_meth.c" + ], + "ssl/record/methods/libssl-lib-tls13_meth.o" => [ + "ssl/record/methods/tls13_meth.c" + ], + "ssl/record/methods/libssl-lib-tls1_meth.o" => [ + "ssl/record/methods/tls1_meth.c" + ], + "ssl/record/methods/libssl-lib-tls_common.o" => [ + "ssl/record/methods/tls_common.c" ], - "ssl/record/libssl-lib-ssl3_record.o" => [ - "ssl/record/ssl3_record.c" + "ssl/record/methods/libssl-lib-tls_multib.o" => [ + "ssl/record/methods/tls_multib.c" ], - "ssl/record/libssl-lib-ssl3_record_tls13.o" => [ - "ssl/record/ssl3_record_tls13.c" + "ssl/record/methods/libssl-lib-tlsany_meth.o" => [ + "ssl/record/methods/tlsany_meth.c" + ], + "ssl/rio/libssl-lib-poll_builder.o" => [ + "ssl/rio/poll_builder.c" + ], + "ssl/rio/libssl-lib-poll_immediate.o" => [ + "ssl/rio/poll_immediate.c" + ], + "ssl/rio/libssl-lib-rio_notifier.o" => [ + "ssl/rio/rio_notifier.c" ], "ssl/statem/libssl-lib-extensions.o" => [ "ssl/statem/extensions.c" @@ -25896,6 +30362,8 @@ our %unified_info = ( "test/asn1_string_table_test.c" ], "test/asn1_time_test" => [ + "crypto/asn1/asn1_time_test-bin-a_time.o", + "crypto/asn1_time_test-bin-ctype.o", "test/asn1_time_test-bin-asn1_time_test.o" ], "test/asn1_time_test-bin-asn1_time_test.o" => [ @@ -25926,6 +30394,18 @@ our %unified_info = ( "test/bftest-bin-bftest.o" => [ "test/bftest.c" ], + "test/bio_addr_test" => [ + "test/bio_addr_test-bin-bio_addr_test.o" + ], + "test/bio_addr_test-bin-bio_addr_test.o" => [ + "test/bio_addr_test.c" + ], + "test/bio_base64_test" => [ + "test/bio_base64_test-bin-bio_base64_test.o" + ], + "test/bio_base64_test-bin-bio_base64_test.o" => [ + "test/bio_base64_test.c" + ], "test/bio_callback_test" => [ "test/bio_callback_test-bin-bio_callback_test.o" ], @@ -25938,6 +30418,12 @@ our %unified_info = ( "test/bio_core_test-bin-bio_core_test.o" => [ "test/bio_core_test.c" ], + "test/bio_dgram_test" => [ + "test/bio_dgram_test-bin-bio_dgram_test.o" + ], + "test/bio_dgram_test-bin-bio_dgram_test.o" => [ + "test/bio_dgram_test.c" + ], "test/bio_enc_test" => [ "test/bio_enc_test-bin-bio_enc_test.o" ], @@ -25950,6 +30436,12 @@ our %unified_info = ( "test/bio_memleak_test-bin-bio_memleak_test.o" => [ "test/bio_memleak_test.c" ], + "test/bio_meth_test" => [ + "test/bio_meth_test-bin-bio_meth_test.o" + ], + "test/bio_meth_test-bin-bio_meth_test.o" => [ + "test/bio_meth_test.c" + ], "test/bio_prefix_text" => [ "test/bio_prefix_text-bin-bio_prefix_text.o" ], @@ -25968,6 +30460,12 @@ our %unified_info = ( "test/bio_readbuffer_test-bin-bio_readbuffer_test.o" => [ "test/bio_readbuffer_test.c" ], + "test/bio_tfo_test" => [ + "test/bio_tfo_test-bin-bio_tfo_test.o" + ], + "test/bio_tfo_test-bin-bio_tfo_test.o" => [ + "test/bio_tfo_test.c" + ], "test/bioprinttest" => [ "test/bioprinttest-bin-bioprinttest.o" ], @@ -25986,6 +30484,12 @@ our %unified_info = ( "test/bntest-bin-bntest.o" => [ "test/bntest.c" ], + "test/build_wincrypt_test" => [ + "test/build_wincrypt_test-bin-build_wincrypt_test.o" + ], + "test/build_wincrypt_test-bin-build_wincrypt_test.o" => [ + "test/build_wincrypt_test.c" + ], "test/buildtest_c_aes" => [ "test/buildtest_c_aes-bin-buildtest_aes.o" ], @@ -26016,6 +30520,12 @@ our %unified_info = ( "test/buildtest_c_buffer-bin-buildtest_buffer.o" => [ "test/buildtest_buffer.c" ], + "test/buildtest_c_byteorder" => [ + "test/buildtest_c_byteorder-bin-buildtest_byteorder.o" + ], + "test/buildtest_c_byteorder-bin-buildtest_byteorder.o" => [ + "test/buildtest_byteorder.c" + ], "test/buildtest_c_camellia" => [ "test/buildtest_c_camellia-bin-buildtest_camellia.o" ], @@ -26064,12 +30574,6 @@ our %unified_info = ( "test/buildtest_c_core_dispatch-bin-buildtest_core_dispatch.o" => [ "test/buildtest_core_dispatch.c" ], - "test/buildtest_c_core_names" => [ - "test/buildtest_c_core_names-bin-buildtest_core_names.o" - ], - "test/buildtest_c_core_names-bin-buildtest_core_names.o" => [ - "test/buildtest_core_names.c" - ], "test/buildtest_c_core_object" => [ "test/buildtest_c_core_object-bin-buildtest_core_object.o" ], @@ -26118,6 +30622,12 @@ our %unified_info = ( "test/buildtest_c_e_os2-bin-buildtest_e_os2.o" => [ "test/buildtest_e_os2.c" ], + "test/buildtest_c_e_ostime" => [ + "test/buildtest_c_e_ostime-bin-buildtest_e_ostime.o" + ], + "test/buildtest_c_e_ostime-bin-buildtest_e_ostime.o" => [ + "test/buildtest_e_ostime.c" + ], "test/buildtest_c_ebcdic" => [ "test/buildtest_c_ebcdic-bin-buildtest_ebcdic.o" ], @@ -26172,6 +30682,12 @@ our %unified_info = ( "test/buildtest_c_hmac-bin-buildtest_hmac.o" => [ "test/buildtest_hmac.c" ], + "test/buildtest_c_hpke" => [ + "test/buildtest_c_hpke-bin-buildtest_hpke.o" + ], + "test/buildtest_c_hpke-bin-buildtest_hpke.o" => [ + "test/buildtest_hpke.c" + ], "test/buildtest_c_http" => [ "test/buildtest_c_http-bin-buildtest_http.o" ], @@ -26184,6 +30700,12 @@ our %unified_info = ( "test/buildtest_c_idea-bin-buildtest_idea.o" => [ "test/buildtest_idea.c" ], + "test/buildtest_c_indicator" => [ + "test/buildtest_c_indicator-bin-buildtest_indicator.o" + ], + "test/buildtest_c_indicator-bin-buildtest_indicator.o" => [ + "test/buildtest_indicator.c" + ], "test/buildtest_c_kdf" => [ "test/buildtest_c_kdf-bin-buildtest_kdf.o" ], @@ -26214,6 +30736,12 @@ our %unified_info = ( "test/buildtest_c_mdc2-bin-buildtest_mdc2.o" => [ "test/buildtest_mdc2.c" ], + "test/buildtest_c_ml_kem" => [ + "test/buildtest_c_ml_kem-bin-buildtest_ml_kem.o" + ], + "test/buildtest_c_ml_kem-bin-buildtest_ml_kem.o" => [ + "test/buildtest_ml_kem.c" + ], "test/buildtest_c_modes" => [ "test/buildtest_c_modes-bin-buildtest_modes.o" ], @@ -26274,6 +30802,12 @@ our %unified_info = ( "test/buildtest_c_provider-bin-buildtest_provider.o" => [ "test/buildtest_provider.c" ], + "test/buildtest_c_quic" => [ + "test/buildtest_c_quic-bin-buildtest_quic.o" + ], + "test/buildtest_c_quic-bin-buildtest_quic.o" => [ + "test/buildtest_quic.c" + ], "test/buildtest_c_rand" => [ "test/buildtest_c_rand-bin-buildtest_rand.o" ], @@ -26358,6 +30892,12 @@ our %unified_info = ( "test/buildtest_c_symhacks-bin-buildtest_symhacks.o" => [ "test/buildtest_symhacks.c" ], + "test/buildtest_c_thread" => [ + "test/buildtest_c_thread-bin-buildtest_thread.o" + ], + "test/buildtest_c_thread-bin-buildtest_thread.o" => [ + "test/buildtest_thread.c" + ], "test/buildtest_c_tls1" => [ "test/buildtest_c_tls1-bin-buildtest_tls1.o" ], @@ -26388,6 +30928,29 @@ our %unified_info = ( "test/buildtest_c_whrlpool-bin-buildtest_whrlpool.o" => [ "test/buildtest_whrlpool.c" ], + "test/byteorder_test" => [ + "test/byteorder_test-bin-byteorder_test.o" + ], + "test/byteorder_test-bin-byteorder_test.o" => [ + "test/byteorder_test.c" + ], + "test/ca_internals_test" => [ + "apps/ca_internals_test-bin-ca.o", + "apps/lib/ca_internals_test-bin-app_libctx.o", + "apps/lib/ca_internals_test-bin-app_provider.o", + "apps/lib/ca_internals_test-bin-app_rand.o", + "apps/lib/ca_internals_test-bin-app_x509.o", + "apps/lib/ca_internals_test-bin-apps.o", + "apps/lib/ca_internals_test-bin-apps_ui.o", + "apps/lib/ca_internals_test-bin-engine.o", + "apps/lib/ca_internals_test-bin-fmt.o", + "crypto/asn1/ca_internals_test-bin-a_time.o", + "crypto/ca_internals_test-bin-ctype.o", + "test/ca_internals_test-bin-ca_internals_test.o" + ], + "test/ca_internals_test-bin-ca_internals_test.o" => [ + "test/ca_internals_test.c" + ], "test/casttest" => [ "test/casttest-bin-casttest.o" ], @@ -26566,6 +31129,12 @@ our %unified_info = ( "test/danetest-bin-danetest.o" => [ "test/danetest.c" ], + "test/decoder_propq_test" => [ + "test/decoder_propq_test-bin-decoder_propq_test.o" + ], + "test/decoder_propq_test-bin-decoder_propq_test.o" => [ + "test/decoder_propq_test.c" + ], "test/defltfips_test" => [ "test/defltfips_test-bin-defltfips_test.o" ], @@ -26647,6 +31216,7 @@ our %unified_info = ( "test/ectest.c" ], "test/endecode_test" => [ + "providers/endecode_test-bin-legacyprov.o", "test/endecode_test-bin-endecode_test.o", "test/helpers/endecode_test-bin-predefined_dhparams.o" ], @@ -26679,17 +31249,29 @@ our %unified_info = ( ], "test/evp_extra_test" => [ "providers/evp_extra_test-bin-legacyprov.o", - "test/evp_extra_test-bin-evp_extra_test.o" + "test/evp_extra_test-bin-evp_extra_test.o", + "test/evp_extra_test-bin-fake_pipelineprov.o", + "test/evp_extra_test-bin-fake_rsaprov.o" ], "test/evp_extra_test-bin-evp_extra_test.o" => [ "test/evp_extra_test.c" ], + "test/evp_extra_test-bin-fake_pipelineprov.o" => [ + "test/fake_pipelineprov.c" + ], + "test/evp_extra_test-bin-fake_rsaprov.o" => [ + "test/fake_rsaprov.c" + ], "test/evp_extra_test2" => [ - "test/evp_extra_test2-bin-evp_extra_test2.o" + "test/evp_extra_test2-bin-evp_extra_test2.o", + "test/evp_extra_test2-bin-tls-provider.o" ], "test/evp_extra_test2-bin-evp_extra_test2.o" => [ "test/evp_extra_test2.c" ], + "test/evp_extra_test2-bin-tls-provider.o" => [ + "test/tls-provider.c" + ], "test/evp_fetch_prov_test" => [ "test/evp_fetch_prov_test-bin-evp_fetch_prov_test.o" ], @@ -26714,6 +31296,12 @@ our %unified_info = ( "test/evp_pkey_ctx_new_from_name-bin-evp_pkey_ctx_new_from_name.o" => [ "test/evp_pkey_ctx_new_from_name.c" ], + "test/evp_pkey_dhkem_test" => [ + "test/evp_pkey_dhkem_test-bin-evp_pkey_dhkem_test.o" + ], + "test/evp_pkey_dhkem_test-bin-evp_pkey_dhkem_test.o" => [ + "test/evp_pkey_dhkem_test.c" + ], "test/evp_pkey_dparams_test" => [ "test/evp_pkey_dparams_test-bin-evp_pkey_dparams_test.o" ], @@ -26726,12 +31314,28 @@ our %unified_info = ( "test/evp_pkey_provided_test-bin-evp_pkey_provided_test.o" => [ "test/evp_pkey_provided_test.c" ], + "test/evp_skey_test" => [ + "test/evp_skey_test-bin-evp_skey_test.o", + "test/evp_skey_test-bin-fake_cipherprov.o" + ], + "test/evp_skey_test-bin-evp_skey_test.o" => [ + "test/evp_skey_test.c" + ], + "test/evp_skey_test-bin-fake_cipherprov.o" => [ + "test/fake_cipherprov.c" + ], "test/evp_test" => [ "test/evp_test-bin-evp_test.o" ], "test/evp_test-bin-evp_test.o" => [ "test/evp_test.c" ], + "test/evp_xof_test" => [ + "test/evp_xof_test-bin-evp_xof_test.o" + ], + "test/evp_xof_test-bin-evp_xof_test.o" => [ + "test/evp_xof_test.c" + ], "test/exdatatest" => [ "test/exdatatest-bin-exdatatest.o" ], @@ -26817,15 +31421,108 @@ our %unified_info = ( "test/helpers/fatalerrtest-bin-ssltestlib.o" => [ "test/helpers/ssltestlib.c" ], + "test/helpers/json_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/json_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/json_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/json_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/pkcs12_api_test-bin-pkcs12.o" => [ + "test/helpers/pkcs12.c" + ], "test/helpers/pkcs12_format_test-bin-pkcs12.o" => [ "test/helpers/pkcs12.c" ], + "test/helpers/quic_multistream_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quic_multistream_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quic_multistream_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quic_multistream_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quic_newcid_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quic_newcid_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quic_newcid_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quic_newcid_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quic_radix_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quic_radix_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quic_radix_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quic_radix_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quic_srt_gen_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quic_srt_gen_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quic_srt_gen_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quic_srt_gen_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quicapitest-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quicapitest-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quicapitest-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quicapitest-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quicfaultstest-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quicfaultstest-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quicfaultstest-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quicfaultstest-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], "test/helpers/recordlentest-bin-ssltestlib.o" => [ "test/helpers/ssltestlib.c" ], + "test/helpers/rpktest-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], "test/helpers/servername_test-bin-ssltestlib.o" => [ "test/helpers/ssltestlib.c" ], + "test/helpers/ssl_handshake_rtt_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], "test/helpers/ssl_old_test-bin-predefined_dhparams.o" => [ "test/helpers/predefined_dhparams.c" ], @@ -26853,6 +31550,9 @@ our %unified_info = ( "test/helpers/tls13ccstest-bin-ssltestlib.o" => [ "test/helpers/ssltestlib.c" ], + "test/helpers/tls13groupselection_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], "test/hexstr_test" => [ "test/hexstr_test-bin-hexstr_test.o" ], @@ -26865,6 +31565,12 @@ our %unified_info = ( "test/hmactest-bin-hmactest.o" => [ "test/hmactest.c" ], + "test/hpke_test" => [ + "test/hpke_test-bin-hpke_test.o" + ], + "test/hpke_test-bin-hpke_test.o" => [ + "test/hpke_test.c" + ], "test/http_test" => [ "test/http_test-bin-http_test.o" ], @@ -26883,6 +31589,16 @@ our %unified_info = ( "test/igetest-bin-igetest.o" => [ "test/igetest.c" ], + "test/json_test" => [ + "test/helpers/json_test-bin-noisydgrambio.o", + "test/helpers/json_test-bin-pktsplitbio.o", + "test/helpers/json_test-bin-quictestlib.o", + "test/helpers/json_test-bin-ssltestlib.o", + "test/json_test-bin-json_test.o" + ], + "test/json_test-bin-json_test.o" => [ + "test/json_test.c" + ], "test/keymgmt_internal_test" => [ "test/keymgmt_internal_test-bin-keymgmt_internal_test.o" ], @@ -26903,6 +31619,7 @@ our %unified_info = ( "test/testutil/libtestutil-lib-driver.o", "test/testutil/libtestutil-lib-fake_random.o", "test/testutil/libtestutil-lib-format_output.o", + "test/testutil/libtestutil-lib-helper.o", "test/testutil/libtestutil-lib-load.o", "test/testutil/libtestutil-lib-main.o", "test/testutil/libtestutil-lib-options.o", @@ -26915,6 +31632,12 @@ our %unified_info = ( "test/testutil/libtestutil-lib-tests.o", "test/testutil/libtestutil-lib-testutil_init.o" ], + "test/list_test" => [ + "test/list_test-bin-list_test.o" + ], + "test/list_test-bin-list_test.o" => [ + "test/list_test.c" + ], "test/localetest" => [ "test/localetest-bin-localetest.o" ], @@ -26933,12 +31656,36 @@ our %unified_info = ( "test/mdc2test-bin-mdc2test.o" => [ "test/mdc2test.c" ], + "test/membio_test" => [ + "test/membio_test-bin-membio_test.o" + ], + "test/membio_test-bin-membio_test.o" => [ + "test/membio_test.c" + ], "test/memleaktest" => [ "test/memleaktest-bin-memleaktest.o" ], "test/memleaktest-bin-memleaktest.o" => [ "test/memleaktest.c" ], + "test/ml_dsa_test" => [ + "test/ml_dsa_test-bin-ml_dsa_test.o" + ], + "test/ml_dsa_test-bin-ml_dsa_test.o" => [ + "test/ml_dsa_test.c" + ], + "test/ml_kem_evp_extra_test" => [ + "test/ml_kem_evp_extra_test-bin-ml_kem_evp_extra_test.o" + ], + "test/ml_kem_evp_extra_test-bin-ml_kem_evp_extra_test.o" => [ + "test/ml_kem_evp_extra_test.c" + ], + "test/ml_kem_internal_test" => [ + "test/ml_kem_internal_test-bin-ml_kem_internal_test.o" + ], + "test/ml_kem_internal_test-bin-ml_kem_internal_test.o" => [ + "test/ml_kem_internal_test.c" + ], "test/modes_internal_test" => [ "test/modes_internal_test-bin-modes_internal_test.o" ], @@ -26984,11 +31731,18 @@ our %unified_info = ( "test/p_test.c" ], "test/packettest" => [ + "crypto/packettest-bin-quic_vlint.o", "test/packettest-bin-packettest.o" ], "test/packettest-bin-packettest.o" => [ "test/packettest.c" ], + "test/pairwise_fail_test" => [ + "test/pairwise_fail_test-bin-pairwise_fail_test.o" + ], + "test/pairwise_fail_test-bin-pairwise_fail_test.o" => [ + "test/pairwise_fail_test.c" + ], "test/param_build_test" => [ "test/param_build_test-bin-param_build_test.o" ], @@ -27037,6 +31791,13 @@ our %unified_info = ( "test/pemtest-bin-pemtest.o" => [ "test/pemtest.c" ], + "test/pkcs12_api_test" => [ + "test/helpers/pkcs12_api_test-bin-pkcs12.o", + "test/pkcs12_api_test-bin-pkcs12_api_test.o" + ], + "test/pkcs12_api_test-bin-pkcs12_api_test.o" => [ + "test/pkcs12_api_test.c" + ], "test/pkcs12_format_test" => [ "test/helpers/pkcs12_format_test-bin-pkcs12.o", "test/pkcs12_format_test-bin-pkcs12_format_test.o" @@ -27068,6 +31829,12 @@ our %unified_info = ( "test/poly1305_internal_test-bin-poly1305_internal_test.o" => [ "test/poly1305_internal_test.c" ], + "test/priority_queue_test" => [ + "test/priority_queue_test-bin-priority_queue_test.o" + ], + "test/priority_queue_test-bin-priority_queue_test.o" => [ + "test/priority_queue_test.c" + ], "test/property_test" => [ "test/property_test-bin-property_test.o" ], @@ -27086,6 +31853,12 @@ our %unified_info = ( "test/provfetchtest-bin-provfetchtest.o" => [ "test/provfetchtest.c" ], + "test/provider_default_search_path_test" => [ + "test/provider_default_search_path_test-bin-provider_default_search_path_test.o" + ], + "test/provider_default_search_path_test-bin-provider_default_search_path_test.o" => [ + "test/provider_default_search_path_test.c" + ], "test/provider_fallback_test" => [ "test/provider_fallback_test-bin-provider_fallback_test.o" ], @@ -27134,6 +31907,174 @@ our %unified_info = ( "test/punycode_test-bin-punycode_test.o" => [ "test/punycode_test.c" ], + "test/quic_ackm_test" => [ + "test/quic_ackm_test-bin-cc_dummy.o", + "test/quic_ackm_test-bin-quic_ackm_test.o" + ], + "test/quic_ackm_test-bin-cc_dummy.o" => [ + "test/cc_dummy.c" + ], + "test/quic_ackm_test-bin-quic_ackm_test.o" => [ + "test/quic_ackm_test.c" + ], + "test/quic_cc_test" => [ + "test/quic_cc_test-bin-quic_cc_test.o" + ], + "test/quic_cc_test-bin-quic_cc_test.o" => [ + "test/quic_cc_test.c" + ], + "test/quic_cfq_test" => [ + "test/quic_cfq_test-bin-quic_cfq_test.o" + ], + "test/quic_cfq_test-bin-quic_cfq_test.o" => [ + "test/quic_cfq_test.c" + ], + "test/quic_client_test" => [ + "test/quic_client_test-bin-quic_client_test.o" + ], + "test/quic_client_test-bin-quic_client_test.o" => [ + "test/quic_client_test.c" + ], + "test/quic_fc_test" => [ + "test/quic_fc_test-bin-quic_fc_test.o" + ], + "test/quic_fc_test-bin-quic_fc_test.o" => [ + "test/quic_fc_test.c" + ], + "test/quic_fifd_test" => [ + "test/quic_fifd_test-bin-cc_dummy.o", + "test/quic_fifd_test-bin-quic_fifd_test.o" + ], + "test/quic_fifd_test-bin-cc_dummy.o" => [ + "test/cc_dummy.c" + ], + "test/quic_fifd_test-bin-quic_fifd_test.o" => [ + "test/quic_fifd_test.c" + ], + "test/quic_lcidm_test" => [ + "test/quic_lcidm_test-bin-quic_lcidm_test.o" + ], + "test/quic_lcidm_test-bin-quic_lcidm_test.o" => [ + "test/quic_lcidm_test.c" + ], + "test/quic_multistream_test" => [ + "test/helpers/quic_multistream_test-bin-noisydgrambio.o", + "test/helpers/quic_multistream_test-bin-pktsplitbio.o", + "test/helpers/quic_multistream_test-bin-quictestlib.o", + "test/helpers/quic_multistream_test-bin-ssltestlib.o", + "test/quic_multistream_test-bin-quic_multistream_test.o" + ], + "test/quic_multistream_test-bin-quic_multistream_test.o" => [ + "test/quic_multistream_test.c" + ], + "test/quic_newcid_test" => [ + "test/helpers/quic_newcid_test-bin-noisydgrambio.o", + "test/helpers/quic_newcid_test-bin-pktsplitbio.o", + "test/helpers/quic_newcid_test-bin-quictestlib.o", + "test/helpers/quic_newcid_test-bin-ssltestlib.o", + "test/quic_newcid_test-bin-quic_newcid_test.o" + ], + "test/quic_newcid_test-bin-quic_newcid_test.o" => [ + "test/quic_newcid_test.c" + ], + "test/quic_qlog_test" => [ + "test/quic_qlog_test-bin-quic_qlog_test.o" + ], + "test/quic_qlog_test-bin-quic_qlog_test.o" => [ + "test/quic_qlog_test.c" + ], + "test/quic_radix_test" => [ + "test/helpers/quic_radix_test-bin-noisydgrambio.o", + "test/helpers/quic_radix_test-bin-pktsplitbio.o", + "test/helpers/quic_radix_test-bin-quictestlib.o", + "test/helpers/quic_radix_test-bin-ssltestlib.o", + "test/radix/quic_radix_test-bin-quic_radix.o" + ], + "test/quic_rcidm_test" => [ + "test/quic_rcidm_test-bin-quic_rcidm_test.o" + ], + "test/quic_rcidm_test-bin-quic_rcidm_test.o" => [ + "test/quic_rcidm_test.c" + ], + "test/quic_record_test" => [ + "test/quic_record_test-bin-quic_record_test.o" + ], + "test/quic_record_test-bin-quic_record_test.o" => [ + "test/quic_record_test.c" + ], + "test/quic_srt_gen_test" => [ + "test/helpers/quic_srt_gen_test-bin-noisydgrambio.o", + "test/helpers/quic_srt_gen_test-bin-pktsplitbio.o", + "test/helpers/quic_srt_gen_test-bin-quictestlib.o", + "test/helpers/quic_srt_gen_test-bin-ssltestlib.o", + "test/quic_srt_gen_test-bin-quic_srt_gen_test.o" + ], + "test/quic_srt_gen_test-bin-quic_srt_gen_test.o" => [ + "test/quic_srt_gen_test.c" + ], + "test/quic_srtm_test" => [ + "test/quic_srtm_test-bin-quic_srtm_test.o" + ], + "test/quic_srtm_test-bin-quic_srtm_test.o" => [ + "test/quic_srtm_test.c" + ], + "test/quic_stream_test" => [ + "test/quic_stream_test-bin-quic_stream_test.o" + ], + "test/quic_stream_test-bin-quic_stream_test.o" => [ + "test/quic_stream_test.c" + ], + "test/quic_tserver_test" => [ + "test/quic_tserver_test-bin-quic_tserver_test.o" + ], + "test/quic_tserver_test-bin-quic_tserver_test.o" => [ + "test/quic_tserver_test.c" + ], + "test/quic_txp_test" => [ + "test/quic_txp_test-bin-cc_dummy.o", + "test/quic_txp_test-bin-quic_txp_test.o" + ], + "test/quic_txp_test-bin-cc_dummy.o" => [ + "test/cc_dummy.c" + ], + "test/quic_txp_test-bin-quic_txp_test.o" => [ + "test/quic_txp_test.c" + ], + "test/quic_txpim_test" => [ + "test/quic_txpim_test-bin-quic_txpim_test.o" + ], + "test/quic_txpim_test-bin-quic_txpim_test.o" => [ + "test/quic_txpim_test.c" + ], + "test/quic_wire_test" => [ + "test/quic_wire_test-bin-quic_wire_test.o" + ], + "test/quic_wire_test-bin-quic_wire_test.o" => [ + "test/quic_wire_test.c" + ], + "test/quicapitest" => [ + "test/helpers/quicapitest-bin-noisydgrambio.o", + "test/helpers/quicapitest-bin-pktsplitbio.o", + "test/helpers/quicapitest-bin-quictestlib.o", + "test/helpers/quicapitest-bin-ssltestlib.o", + "test/quicapitest-bin-quicapitest.o" + ], + "test/quicapitest-bin-quicapitest.o" => [ + "test/quicapitest.c" + ], + "test/quicfaultstest" => [ + "test/helpers/quicfaultstest-bin-noisydgrambio.o", + "test/helpers/quicfaultstest-bin-pktsplitbio.o", + "test/helpers/quicfaultstest-bin-quictestlib.o", + "test/helpers/quicfaultstest-bin-ssltestlib.o", + "test/quicfaultstest-bin-quicfaultstest.o" + ], + "test/quicfaultstest-bin-quicfaultstest.o" => [ + "test/quicfaultstest.c" + ], + "test/radix/quic_radix_test-bin-quic_radix.o" => [ + "test/radix/quic_radix.c" + ], "test/rand_status_test" => [ "test/rand_status_test-bin-rand_status_test.o" ], @@ -27164,11 +32105,11 @@ our %unified_info = ( "test/rc5test-bin-rc5test.o" => [ "test/rc5test.c" ], - "test/rdrand_sanitytest" => [ - "test/rdrand_sanitytest-bin-rdrand_sanitytest.o" + "test/rdcpu_sanitytest" => [ + "test/rdcpu_sanitytest-bin-rdcpu_sanitytest.o" ], - "test/rdrand_sanitytest-bin-rdrand_sanitytest.o" => [ - "test/rdrand_sanitytest.c" + "test/rdcpu_sanitytest-bin-rdcpu_sanitytest.o" => [ + "test/rdcpu_sanitytest.c" ], "test/recordlentest" => [ "test/helpers/recordlentest-bin-ssltestlib.o", @@ -27177,6 +32118,13 @@ our %unified_info = ( "test/recordlentest-bin-recordlentest.o" => [ "test/recordlentest.c" ], + "test/rpktest" => [ + "test/helpers/rpktest-bin-ssltestlib.o", + "test/rpktest-bin-rpktest.o" + ], + "test/rpktest-bin-rpktest.o" => [ + "test/rpktest.c" + ], "test/rsa_complex" => [ "test/rsa_complex-bin-rsa_complex.o" ], @@ -27201,6 +32149,18 @@ our %unified_info = ( "test/rsa_test-bin-rsa_test.o" => [ "test/rsa_test.c" ], + "test/rsa_x931_test" => [ + "test/rsa_x931_test-bin-rsa_x931_test.o" + ], + "test/rsa_x931_test-bin-rsa_x931_test.o" => [ + "test/rsa_x931_test.c" + ], + "test/safe_math_test" => [ + "test/safe_math_test-bin-safe_math_test.o" + ], + "test/safe_math_test-bin-safe_math_test.o" => [ + "test/safe_math_test.c" + ], "test/sanitytest" => [ "test/sanitytest-bin-sanitytest.o" ], @@ -27232,6 +32192,12 @@ our %unified_info = ( "test/siphash_internal_test-bin-siphash_internal_test.o" => [ "test/siphash_internal_test.c" ], + "test/slh_dsa_test" => [ + "test/slh_dsa_test-bin-slh_dsa_test.o" + ], + "test/slh_dsa_test-bin-slh_dsa_test.o" => [ + "test/slh_dsa_test.c" + ], "test/sm2_internal_test" => [ "test/sm2_internal_test-bin-sm2_internal_test.o" ], @@ -27274,6 +32240,13 @@ our %unified_info = ( "test/ssl_ctx_test-bin-ssl_ctx_test.o" => [ "test/ssl_ctx_test.c" ], + "test/ssl_handshake_rtt_test" => [ + "test/helpers/ssl_handshake_rtt_test-bin-ssltestlib.o", + "test/ssl_handshake_rtt_test-bin-ssl_handshake_rtt_test.o" + ], + "test/ssl_handshake_rtt_test-bin-ssl_handshake_rtt_test.o" => [ + "test/ssl_handshake_rtt_test.c" + ], "test/ssl_old_test" => [ "test/helpers/ssl_old_test-bin-predefined_dhparams.o", "test/ssl_old_test-bin-ssl_old_test.o" @@ -27332,6 +32305,12 @@ our %unified_info = ( "test/stack_test-bin-stack_test.o" => [ "test/stack_test.c" ], + "test/strtoultest" => [ + "test/strtoultest-bin-strtoultest.o" + ], + "test/strtoultest-bin-strtoultest.o" => [ + "test/strtoultest.c" + ], "test/sysdefaulttest" => [ "test/sysdefaulttest-bin-sysdefaulttest.o" ], @@ -27362,6 +32341,9 @@ our %unified_info = ( "test/testutil/libtestutil-lib-format_output.o" => [ "test/testutil/format_output.c" ], + "test/testutil/libtestutil-lib-helper.o" => [ + "test/testutil/helper.c" + ], "test/testutil/libtestutil-lib-load.o" => [ "test/testutil/load.c" ], @@ -27395,6 +32377,12 @@ our %unified_info = ( "test/testutil/libtestutil-lib-testutil_init.o" => [ "test/testutil/testutil_init.c" ], + "test/threadpool_test" => [ + "test/threadpool_test-bin-threadpool_test.o" + ], + "test/threadpool_test-bin-threadpool_test.o" => [ + "test/threadpool_test.c" + ], "test/threadstest" => [ "test/threadstest-bin-threadstest.o" ], @@ -27413,6 +32401,12 @@ our %unified_info = ( "test/time_offset_test-bin-time_offset_test.o" => [ "test/time_offset_test.c" ], + "test/time_test" => [ + "test/time_test-bin-time_test.o" + ], + "test/time_test-bin-time_test.o" => [ + "test/time_test.c" + ], "test/tls13ccstest" => [ "test/helpers/tls13ccstest-bin-ssltestlib.o", "test/tls13ccstest-bin-tls13ccstest.o" @@ -27426,6 +32420,13 @@ our %unified_info = ( "test/tls13encryptiontest-bin-tls13encryptiontest.o" => [ "test/tls13encryptiontest.c" ], + "test/tls13groupselection_test" => [ + "test/helpers/tls13groupselection_test-bin-ssltestlib.o", + "test/tls13groupselection_test-bin-tls13groupselection_test.o" + ], + "test/tls13groupselection_test-bin-tls13groupselection_test.o" => [ + "test/tls13groupselection_test.c" + ], "test/trace_api_test" => [ "test/trace_api_test-bin-trace_api_test.o" ], @@ -27481,6 +32482,12 @@ our %unified_info = ( "test/wpackettest-bin-wpackettest.o" => [ "test/wpackettest.c" ], + "test/x509_acert_test" => [ + "test/x509_acert_test-bin-x509_acert_test.o" + ], + "test/x509_acert_test-bin-x509_acert_test.o" => [ + "test/x509_acert_test.c" + ], "test/x509_check_cert_pkey_test" => [ "test/x509_check_cert_pkey_test-bin-x509_check_cert_pkey_test.o" ], @@ -27499,6 +32506,24 @@ our %unified_info = ( "test/x509_internal_test-bin-x509_internal_test.o" => [ "test/x509_internal_test.c" ], + "test/x509_load_cert_file_test" => [ + "test/x509_load_cert_file_test-bin-x509_load_cert_file_test.o" + ], + "test/x509_load_cert_file_test-bin-x509_load_cert_file_test.o" => [ + "test/x509_load_cert_file_test.c" + ], + "test/x509_req_test" => [ + "test/x509_req_test-bin-x509_req_test.o" + ], + "test/x509_req_test-bin-x509_req_test.o" => [ + "test/x509_req_test.c" + ], + "test/x509_test" => [ + "test/x509_test-bin-x509_test.o" + ], + "test/x509_test-bin-x509_test.o" => [ + "test/x509_test.c" + ], "test/x509_time_test" => [ "test/x509_time_test-bin-x509_time_test.o" ], @@ -27562,6 +32587,7 @@ my @makevars = ( "LDLIBS", "MT", "MTFLAGS", + "OBJCOPY", "PERL", "RANLIB", "RC", @@ -27575,6 +32601,12 @@ my %disabled_info = ( "asan" => { "macro" => "OPENSSL_NO_ASAN" }, + "brotli" => { + "macro" => "OPENSSL_NO_BROTLI" + }, + "brotli-dynamic" => { + "macro" => "OPENSSL_NO_BROTLI_DYNAMIC" + }, "comp" => { "macro" => "OPENSSL_NO_COMP", "skipped" => [ @@ -27587,6 +32619,9 @@ my %disabled_info = ( "crypto-mdebug-backtrace" => { "macro" => "OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE" }, + "demos" => { + "macro" => "OPENSSL_NO_DEMOS" + }, "ec_nistp_64_gcc_128" => { "macro" => "OPENSSL_NO_EC_NISTP_64_GCC_128" }, @@ -27596,12 +32631,24 @@ my %disabled_info = ( "external-tests" => { "macro" => "OPENSSL_NO_EXTERNAL_TESTS" }, + "fips-jitter" => { + "macro" => "OPENSSL_NO_FIPS_JITTER" + }, "fuzz-afl" => { "macro" => "OPENSSL_NO_FUZZ_AFL" }, "fuzz-libfuzzer" => { "macro" => "OPENSSL_NO_FUZZ_LIBFUZZER" }, + "h3demo" => { + "macro" => "OPENSSL_NO_H3DEMO" + }, + "hqinterop" => { + "macro" => "OPENSSL_NO_HQINTEROP" + }, + "jitter" => { + "macro" => "OPENSSL_NO_JITTER" + }, "ktls" => { "macro" => "OPENSSL_NO_KTLS" }, @@ -27617,6 +32664,9 @@ my %disabled_info = ( "msan" => { "macro" => "OPENSSL_NO_MSAN" }, + "pie" => { + "macro" => "OPENSSL_NO_PIE" + }, "rc5" => { "macro" => "OPENSSL_NO_RC5", "skipped" => [ @@ -27632,6 +32682,12 @@ my %disabled_info = ( "ssl3-method" => { "macro" => "OPENSSL_NO_SSL3_METHOD" }, + "sslkeylog" => { + "macro" => "OPENSSL_NO_SSLKEYLOG" + }, + "tfo" => { + "macro" => "OPENSSL_NO_TFO" + }, "trace" => { "macro" => "OPENSSL_NO_TRACE" }, @@ -27646,6 +32702,21 @@ my %disabled_info = ( }, "weak-ssl-ciphers" => { "macro" => "OPENSSL_NO_WEAK_SSL_CIPHERS" + }, + "winstore" => { + "macro" => "OPENSSL_NO_WINSTORE" + }, + "zlib" => { + "macro" => "OPENSSL_NO_ZLIB" + }, + "zlib-dynamic" => { + "macro" => "OPENSSL_NO_ZLIB_DYNAMIC" + }, + "zstd" => { + "macro" => "OPENSSL_NO_ZSTD" + }, + "zstd-dynamic" => { + "macro" => "OPENSSL_NO_ZSTD_DYNAMIC" } ); my @user_crossable = qw( AR AS CC CXX CPP LD MT RANLIB RC ); @@ -27659,15 +32730,15 @@ unless (caller) { use File::Copy; use Pod::Usage; - use lib '/home/runner/work/node/node/deps/openssl/openssl/util/perl'; - use OpenSSL::fallback '/home/runner/work/node/node/deps/openssl/openssl/external/perl/MODULES.txt'; + use lib '/node/deps/openssl/openssl/util/perl'; + use OpenSSL::fallback '/node/deps/openssl/openssl/external/perl/MODULES.txt'; my $here = dirname($0); if (scalar @ARGV == 0) { # With no arguments, re-create the build file # We do that in two steps, where the first step emits perl - # snipets. + # snippets. my $buildfile = $config{build_file}; my $buildfile_template = "$buildfile.in"; @@ -27687,7 +32758,7 @@ unless (caller) { ); use lib '.'; - use lib '/home/runner/work/node/node/deps/openssl/openssl/Configurations'; + use lib '/node/deps/openssl/openssl/Configurations'; use gentemplate; open my $buildfile_template_fh, ">$buildfile_template" @@ -27704,8 +32775,8 @@ unless (caller) { my $prepend = <<'_____'; use File::Spec::Functions; -use lib '/home/runner/work/node/node/deps/openssl/openssl/util/perl'; -use lib '/home/runner/work/node/node/deps/openssl/openssl/Configurations'; +use lib '/node/deps/openssl/openssl/util/perl'; +use lib '/node/deps/openssl/openssl/Configurations'; use lib '.'; use platform; _____ diff --git a/deps/openssl/config/archs/BSD-x86/asm/crypto/aes/aes-586.S b/deps/openssl/config/archs/BSD-x86/asm/crypto/aes/aes-586.S index 54ca918323b688..cca5b86b1a282d 100644 --- a/deps/openssl/config/archs/BSD-x86/asm/crypto/aes/aes-586.S +++ b/deps/openssl/config/archs/BSD-x86/asm/crypto/aes/aes-586.S @@ -3275,4 +3275,4 @@ L056permute: .byte 65,69,83,32,102,111,114,32,120,56,54,44,32,67,82,89 .byte 80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114 .byte 111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 -.comm _OPENSSL_ia32cap_P,16 +.comm _OPENSSL_ia32cap_P,40 diff --git a/deps/openssl/config/archs/BSD-x86/asm/crypto/aes/aesni-x86.S b/deps/openssl/config/archs/BSD-x86/asm/crypto/aes/aesni-x86.S index 0dfd8d39f9fb45..33783dd53acdf2 100644 --- a/deps/openssl/config/archs/BSD-x86/asm/crypto/aes/aesni-x86.S +++ b/deps/openssl/config/archs/BSD-x86/asm/crypto/aes/aesni-x86.S @@ -3323,4 +3323,4 @@ Lkey_const: .byte 83,45,78,73,44,32,67,82,89,80,84,79,71,65,77,83 .byte 32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115 .byte 115,108,46,111,114,103,62,0 -.comm _OPENSSL_ia32cap_P,16 +.comm _OPENSSL_ia32cap_P,40 diff --git a/deps/openssl/config/archs/BSD-x86/asm/crypto/bn/bn-586.S b/deps/openssl/config/archs/BSD-x86/asm/crypto/bn/bn-586.S index 74f325b80bf104..9b5d37a1fbdb71 100644 --- a/deps/openssl/config/archs/BSD-x86/asm/crypto/bn/bn-586.S +++ b/deps/openssl/config/archs/BSD-x86/asm/crypto/bn/bn-586.S @@ -1557,4 +1557,4 @@ L032pw_end: popl %ebx popl %ebp ret -.comm _OPENSSL_ia32cap_P,16 +.comm _OPENSSL_ia32cap_P,40 diff --git a/deps/openssl/config/archs/BSD-x86/asm/crypto/bn/x86-gf2m.S b/deps/openssl/config/archs/BSD-x86/asm/crypto/bn/x86-gf2m.S index 67ddae47d13912..f3c0912cc8b3da 100644 --- a/deps/openssl/config/archs/BSD-x86/asm/crypto/bn/x86-gf2m.S +++ b/deps/openssl/config/archs/BSD-x86/asm/crypto/bn/x86-gf2m.S @@ -355,4 +355,4 @@ L001ialu: .byte 67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97 .byte 112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103 .byte 62,0 -.comm _OPENSSL_ia32cap_P,16 +.comm _OPENSSL_ia32cap_P,40 diff --git a/deps/openssl/config/archs/BSD-x86/asm/crypto/bn/x86-mont.S b/deps/openssl/config/archs/BSD-x86/asm/crypto/bn/x86-mont.S index 958fd5ceb507e6..fe41c053fc8ac2 100644 --- a/deps/openssl/config/archs/BSD-x86/asm/crypto/bn/x86-mont.S +++ b/deps/openssl/config/archs/BSD-x86/asm/crypto/bn/x86-mont.S @@ -477,4 +477,4 @@ L000just_leave: .byte 54,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121 .byte 32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46 .byte 111,114,103,62,0 -.comm _OPENSSL_ia32cap_P,16 +.comm _OPENSSL_ia32cap_P,40 diff --git a/deps/openssl/config/archs/BSD-x86/asm/crypto/buildinf.h b/deps/openssl/config/archs/BSD-x86/asm/crypto/buildinf.h index 93545e7fcec163..1d999982130022 100644 --- a/deps/openssl/config/archs/BSD-x86/asm/crypto/buildinf.h +++ b/deps/openssl/config/archs/BSD-x86/asm/crypto/buildinf.h @@ -11,7 +11,7 @@ */ #define PLATFORM "platform: BSD-x86" -#define DATE "built on: Sun Jul 20 00:45:41 2025 UTC" +#define DATE "built on: Sun Jul 27 00:45:42 2025 UTC" /* * Generate compiler_flags as an array of individual characters. This is a diff --git a/deps/openssl/config/archs/BSD-x86/asm/crypto/chacha/chacha-x86.S b/deps/openssl/config/archs/BSD-x86/asm/crypto/chacha/chacha-x86.S index 43fb04a04b222e..1c821b153dd8c5 100644 --- a/deps/openssl/config/archs/BSD-x86/asm/crypto/chacha/chacha-x86.S +++ b/deps/openssl/config/archs/BSD-x86/asm/crypto/chacha/chacha-x86.S @@ -1455,4 +1455,4 @@ L019done: popl %ebx popl %ebp ret -.comm _OPENSSL_ia32cap_P,16 +.comm _OPENSSL_ia32cap_P,40 diff --git a/deps/openssl/config/archs/BSD-x86/asm/crypto/ec/ecp_nistz256-x86.S b/deps/openssl/config/archs/BSD-x86/asm/crypto/ec/ecp_nistz256-x86.S index 44d644b785db3c..2ebea569d7ab14 100644 --- a/deps/openssl/config/archs/BSD-x86/asm/crypto/ec/ecp_nistz256-x86.S +++ b/deps/openssl/config/archs/BSD-x86/asm/crypto/ec/ecp_nistz256-x86.S @@ -5255,4 +5255,4 @@ L013pic: popl %ebx popl %ebp ret -.comm _OPENSSL_ia32cap_P,16 +.comm _OPENSSL_ia32cap_P,40 diff --git a/deps/openssl/config/archs/BSD-x86/asm/crypto/params_idx.c b/deps/openssl/config/archs/BSD-x86/asm/crypto/params_idx.c new file mode 100644 index 00000000000000..9d76ffededc24c --- /dev/null +++ b/deps/openssl/config/archs/BSD-x86/asm/crypto/params_idx.c @@ -0,0 +1,3366 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from crypto/params_idx.c.in + * + * Copyright 2023 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + +#include "internal/e_os.h" +#include "internal/param_names.h" +#include + +/* Machine generated TRIE -- generated by util/perl/OpenSSL/paramnames.pm */ +int ossl_param_find_pidx(const char *s) +{ + switch(s[0]) { + default: + break; + case 'a': + switch(s[1]) { + default: + break; + case 'c': + if (strcmp("vp-info", s + 2) == 0) + return PIDX_KDF_PARAM_X942_ACVPINFO; + break; + case 'd': + switch(s[2]) { + default: + break; + case 'd': + if (strcmp("itional-random", s + 3) == 0) + return PIDX_SIGNATURE_PARAM_ADD_RANDOM; + break; + case '\0': + return PIDX_KDF_PARAM_ARGON2_AD; + } + break; + case 'e': + if (strcmp("ad", s + 2) == 0) + return PIDX_CIPHER_PARAM_AEAD; + break; + case 'l': + switch(s[2]) { + default: + break; + case 'g': + switch(s[3]) { + default: + break; + case '_': + if (strcmp("id_param", s + 4) == 0) + return PIDX_CIPHER_PARAM_ALGORITHM_ID_PARAMS_OLD; + break; + case 'i': + if (strcmp("d-absent", s + 4) == 0) + return PIDX_DIGEST_PARAM_ALGID_ABSENT; + break; + case 'o': + switch(s[4]) { + default: + break; + case 'r': + switch(s[5]) { + default: + break; + case 'i': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case 'h': + switch(s[8]) { + default: + break; + case 'm': + switch(s[9]) { + default: + break; + case '-': + switch(s[10]) { + default: + break; + case 'i': + switch(s[11]) { + default: + break; + case 'd': + switch(s[12]) { + default: + break; + case '-': + if (strcmp("params", s + 13) == 0) + return PIDX_ALG_PARAM_ALGORITHM_ID_PARAMS; + break; + case '\0': + return PIDX_ALG_PARAM_ALGORITHM_ID; + } + } + } + } + } + } + } + } + } + } + break; + case 'i': + if (strcmp("as", s + 3) == 0) + return PIDX_STORE_PARAM_ALIAS; + } + break; + case '\0': + return PIDX_PKEY_PARAM_EC_A; + } + break; + case 'b': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("sis-type", s + 2) == 0) + return PIDX_PKEY_PARAM_EC_CHAR2_TYPE; + break; + case 'i': + if (strcmp("ts", s + 2) == 0) + return PIDX_PKEY_PARAM_BITS; + break; + case 'l': + switch(s[2]) { + default: + break; + case 'o': + switch(s[3]) { + default: + break; + case 'c': + switch(s[4]) { + default: + break; + case 'k': + switch(s[5]) { + default: + break; + case '-': + if (strcmp("size", s + 6) == 0) + return PIDX_MAC_PARAM_BLOCK_SIZE; + break; + case '_': + if (strcmp("padding", s + 6) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_BLOCK_PADDING; + break; + case 's': + if (strcmp("ize", s + 6) == 0) + return PIDX_DIGEST_PARAM_BLOCK_SIZE; + } + } + } + } + break; + case 'u': + if (strcmp("ildinfo", s + 2) == 0) + return PIDX_PROV_PARAM_BUILDINFO; + break; + case '\0': + return PIDX_PKEY_PARAM_EC_B; + } + break; + case 'c': + switch(s[1]) { + default: + break; + case '-': + if (strcmp("rounds", s + 2) == 0) + return PIDX_MAC_PARAM_C_ROUNDS; + break; + case 'e': + if (strcmp("kalg", s + 2) == 0) + return PIDX_KDF_PARAM_CEK_ALG; + break; + case 'i': + if (strcmp("pher", s + 2) == 0) + return PIDX_ALG_PARAM_CIPHER; + break; + case 'o': + switch(s[2]) { + default: + break; + case 'f': + if (strcmp("actor", s + 3) == 0) + return PIDX_PKEY_PARAM_EC_COFACTOR; + break; + case 'n': + switch(s[3]) { + default: + break; + case 's': + if (strcmp("tant", s + 4) == 0) + return PIDX_KDF_PARAM_CONSTANT; + break; + case 't': + if (strcmp("ext-string", s + 4) == 0) + return PIDX_SIGNATURE_PARAM_CONTEXT_STRING; + } + } + break; + case 't': + switch(s[2]) { + default: + break; + case 's': + switch(s[3]) { + default: + break; + case '_': + if (strcmp("mode", s + 4) == 0) + return PIDX_CIPHER_PARAM_CTS_MODE; + break; + case '\0': + return PIDX_CIPHER_PARAM_CTS; + } + } + break; + case 'u': + switch(s[2]) { + default: + break; + case 's': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case 'o': + switch(s[5]) { + default: + break; + case 'm': + switch(s[6]) { + default: + break; + case '-': + if (strcmp("iv", s + 7) == 0) + return PIDX_CIPHER_PARAM_CUSTOM_IV; + break; + case '\0': + return PIDX_MAC_PARAM_CUSTOM; + } + } + } + } + } + } + break; + case 'd': + switch(s[1]) { + default: + break; + case '-': + if (strcmp("rounds", s + 2) == 0) + return PIDX_MAC_PARAM_D_ROUNDS; + break; + case 'a': + switch(s[2]) { + default: + break; + case 't': + switch(s[3]) { + default: + break; + case 'a': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 's': + if (strcmp("tructure", s + 6) == 0) + return PIDX_OBJECT_PARAM_DATA_STRUCTURE; + break; + case 't': + if (strcmp("ype", s + 6) == 0) + return PIDX_OBJECT_PARAM_DATA_TYPE; + } + break; + case '\0': + return PIDX_OBJECT_PARAM_DATA; + } + } + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'c': + switch(s[3]) { + default: + break; + case 'o': + if (strcmp("ded-from-explicit", s + 4) == 0) + return PIDX_PKEY_PARAM_EC_DECODED_FROM_EXPLICIT_PARAMS; + break; + case 'r': + if (strcmp("ypt-only", s + 4) == 0) + return PIDX_CIPHER_PARAM_DECRYPT_ONLY; + } + break; + case 'f': + if (strcmp("ault-digest", s + 3) == 0) + return PIDX_PKEY_PARAM_DEFAULT_DIGEST; + break; + case 's': + if (strcmp("c", s + 3) == 0) + return PIDX_OBJECT_PARAM_DESC; + break; + case 't': + if (strcmp("erministic", s + 3) == 0) + return PIDX_SIGNATURE_PARAM_DETERMINISTIC; + } + break; + case 'h': + if (strcmp("kem-ikm", s + 2) == 0) + return PIDX_PKEY_PARAM_DHKEM_IKM; + break; + case 'i': + switch(s[2]) { + default: + break; + case 'g': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case 's': + switch(s[5]) { + default: + break; + case 't': + switch(s[6]) { + default: + break; + case '-': + switch(s[7]) { + default: + break; + case 'c': + if (strcmp("heck", s + 8) == 0) + return PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK; + break; + case 'n': + if (strcmp("oinit", s + 8) == 0) + return PIDX_MAC_PARAM_DIGEST_NOINIT; + break; + case 'o': + if (strcmp("neshot", s + 8) == 0) + return PIDX_MAC_PARAM_DIGEST_ONESHOT; + break; + case 'p': + if (strcmp("rops", s + 8) == 0) + return PIDX_ASYM_CIPHER_PARAM_OAEP_DIGEST_PROPS; + break; + case 's': + if (strcmp("ize", s + 8) == 0) + return PIDX_PKEY_PARAM_DIGEST_SIZE; + } + break; + case '\0': + return PIDX_STORE_PARAM_DIGEST; + } + } + } + } + break; + case 's': + if (strcmp("tid", s + 3) == 0) + return PIDX_PKEY_PARAM_DIST_ID; + } + break; + case 'r': + if (strcmp("bg-no-trunc-md", s + 2) == 0) + return PIDX_PROV_PARAM_DRBG_TRUNC_DIGEST; + break; + case 's': + if (strcmp("a-sign-disabled", s + 2) == 0) + return PIDX_PROV_PARAM_DSA_SIGN_DISABLED; + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_D; + } + break; + case 'e': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("rly_clean", s + 2) == 0) + return PIDX_KDF_PARAM_EARLY_CLEAN; + break; + case 'c': + switch(s[2]) { + default: + break; + case 'd': + switch(s[3]) { + default: + break; + case 'h': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'c': + switch(s[6]) { + default: + break; + case 'o': + switch(s[7]) { + default: + break; + case 'f': + switch(s[8]) { + default: + break; + case 'a': + switch(s[9]) { + default: + break; + case 'c': + switch(s[10]) { + default: + break; + case 't': + switch(s[11]) { + default: + break; + case 'o': + switch(s[12]) { + default: + break; + case 'r': + switch(s[13]) { + default: + break; + case '-': + switch(s[14]) { + default: + break; + case 'c': + if (strcmp("heck", s + 15) == 0) + return PIDX_PROV_PARAM_ECDH_COFACTOR_CHECK; + break; + case 'm': + if (strcmp("ode", s + 15) == 0) + return PIDX_EXCHANGE_PARAM_EC_ECDH_COFACTOR_MODE; + } + } + } + } + } + } + } + } + } + } + } + } + } + break; + case 'm': + if (strcmp("s_check", s + 2) == 0) + return PIDX_KDF_PARAM_FIPS_EMS_CHECK; + break; + case 'n': + switch(s[2]) { + default: + break; + case 'c': + switch(s[3]) { + default: + break; + case 'o': + switch(s[4]) { + default: + break; + case 'd': + switch(s[5]) { + default: + break; + case 'e': + if (strcmp("d-pub-key", s + 6) == 0) + return PIDX_PKEY_PARAM_ENCODED_PUBLIC_KEY; + break; + case 'i': + if (strcmp("ng", s + 6) == 0) + return PIDX_PKEY_PARAM_EC_ENCODING; + } + } + break; + case 'r': + switch(s[4]) { + default: + break; + case 'y': + switch(s[5]) { + default: + break; + case 'p': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case '-': + switch(s[8]) { + default: + break; + case 'c': + if (strcmp("heck", s + 9) == 0) + return PIDX_CIPHER_PARAM_FIPS_ENCRYPT_CHECK; + break; + case 'l': + if (strcmp("evel", s + 9) == 0) + return PIDX_ENCODER_PARAM_ENCRYPT_LEVEL; + } + } + } + } + } + } + break; + case 'g': + if (strcmp("ine", s + 3) == 0) + return PIDX_ALG_PARAM_ENGINE; + break; + case 't': + switch(s[3]) { + default: + break; + case 'r': + switch(s[4]) { + default: + break; + case 'o': + switch(s[5]) { + default: + break; + case 'p': + switch(s[6]) { + default: + break; + case 'y': + switch(s[7]) { + default: + break; + case '_': + if (strcmp("required", s + 8) == 0) + return PIDX_DRBG_PARAM_ENTROPY_REQUIRED; + break; + case '\0': + return PIDX_KDF_PARAM_HMACDRBG_ENTROPY; + } + } + } + } + } + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_E; + break; + case 'x': + if (strcmp("pect", s + 2) == 0) + return PIDX_STORE_PARAM_EXPECT; + } + break; + case 'f': + switch(s[1]) { + default: + break; + case 'i': + switch(s[2]) { + default: + break; + case 'e': + if (strcmp("ld-type", s + 3) == 0) + return PIDX_PKEY_PARAM_EC_FIELD_TYPE; + break; + case 'n': + if (strcmp("gerprint", s + 3) == 0) + return PIDX_STORE_PARAM_FINGERPRINT; + break; + case 'p': + if (strcmp("s-indicator", s + 3) == 0) + return PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR; + } + } + break; + case 'g': + switch(s[1]) { + default: + break; + case 'e': + switch(s[2]) { + default: + break; + case 'n': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case 'r': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case 'e': + switch(s[8]) { + default: + break; + case '\0': + return PIDX_RAND_PARAM_GENERATE; + } + break; + case 'o': + if (strcmp("r", s + 8) == 0) + return PIDX_PKEY_PARAM_EC_GENERATOR; + } + } + } + } + } + } + break; + case 'i': + if (strcmp("ndex", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_GINDEX; + break; + case 'r': + switch(s[2]) { + default: + break; + case 'o': + switch(s[3]) { + default: + break; + case 'u': + switch(s[4]) { + default: + break; + case 'p': + switch(s[5]) { + default: + break; + case '-': + if (strcmp("check", s + 6) == 0) + return PIDX_PKEY_PARAM_EC_GROUP_CHECK_TYPE; + break; + case '\0': + return PIDX_PKEY_PARAM_GROUP_NAME; + } + } + } + } + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_G; + } + break; + case 'h': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("s-randkey", s + 2) == 0) + return PIDX_CIPHER_PARAM_HAS_RAND_KEY; + break; + case 'i': + if (strcmp("ndex", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_H; + break; + case 'k': + switch(s[2]) { + default: + break; + case 'd': + switch(s[3]) { + default: + break; + case 'f': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 6) == 0) + return PIDX_PROV_PARAM_HKDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 6) == 0) + return PIDX_PROV_PARAM_HKDF_KEY_CHECK; + } + } + } + } + break; + case 'm': + if (strcmp("ac-key-check", s + 2) == 0) + return PIDX_PROV_PARAM_HMAC_KEY_CHECK; + break; + case 's': + if (strcmp("_padding", s + 2) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_HS_PADDING; + } + break; + case 'i': + switch(s[1]) { + default: + break; + case 'd': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_KDF_PARAM_PKCS12_ID; + } + break; + case 'k': + if (strcmp("me", s + 2) == 0) + return PIDX_KEM_PARAM_IKME; + break; + case 'm': + if (strcmp("plicit-rejection", s + 2) == 0) + return PIDX_PKEY_PARAM_IMPLICIT_REJECTION; + break; + case 'n': + switch(s[2]) { + default: + break; + case 'c': + if (strcmp("lude-public", s + 3) == 0) + return PIDX_PKEY_PARAM_EC_INCLUDE_PUBLIC; + break; + case 'f': + if (strcmp("o", s + 3) == 0) + return PIDX_PASSPHRASE_PARAM_INFO; + break; + case 'p': + if (strcmp("ut-type", s + 3) == 0) + return PIDX_STORE_PARAM_INPUT_TYPE; + break; + case 's': + if (strcmp("tance", s + 3) == 0) + return PIDX_SIGNATURE_PARAM_INSTANCE; + } + break; + case 't': + switch(s[2]) { + default: + break; + case 'e': + switch(s[3]) { + default: + break; + case 'r': + switch(s[4]) { + default: + break; + case 'a': + if (strcmp("tion", s + 5) == 0) + return PIDX_GEN_PARAM_ITERATION; + break; + case '\0': + return PIDX_KDF_PARAM_ITER; + } + } + } + break; + case 'v': + switch(s[2]) { + default: + break; + case '-': + if (strcmp("generated", s + 3) == 0) + return PIDX_CIPHER_PARAM_AEAD_IV_GENERATED; + break; + case 'l': + if (strcmp("en", s + 3) == 0) + return PIDX_CIPHER_PARAM_IVLEN; + break; + case '\0': + return PIDX_MAC_PARAM_IV; + } + } + break; + case 'j': + switch(s[1]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_COFACTOR; + } + break; + case 'k': + switch(s[1]) { + default: + break; + case '1': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_PP_K1; + } + break; + case '2': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_PP_K2; + } + break; + case '3': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_PP_K3; + } + break; + case 'a': + if (strcmp("t", s + 2) == 0) + return PIDX_SIGNATURE_PARAM_KAT; + break; + case 'b': + if (strcmp("kdf-key-check", s + 2) == 0) + return PIDX_PROV_PARAM_KBKDF_KEY_CHECK; + break; + case 'd': + switch(s[2]) { + default: + break; + case 'f': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'd': + switch(s[5]) { + default: + break; + case 'i': + switch(s[6]) { + default: + break; + case 'g': + switch(s[7]) { + default: + break; + case 'e': + switch(s[8]) { + default: + break; + case 's': + switch(s[9]) { + default: + break; + case 't': + switch(s[10]) { + default: + break; + case '-': + if (strcmp("props", s + 11) == 0) + return PIDX_EXCHANGE_PARAM_KDF_DIGEST_PROPS; + break; + case '\0': + return PIDX_EXCHANGE_PARAM_KDF_DIGEST; + } + } + } + } + } + } + break; + case 'o': + if (strcmp("utlen", s + 5) == 0) + return PIDX_EXCHANGE_PARAM_KDF_OUTLEN; + break; + case 't': + if (strcmp("ype", s + 5) == 0) + return PIDX_EXCHANGE_PARAM_KDF_TYPE; + break; + case 'u': + if (strcmp("km", s + 5) == 0) + return PIDX_EXCHANGE_PARAM_KDF_UKM; + } + } + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'y': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'c': + if (strcmp("heck", s + 5) == 0) + return PIDX_PKEY_PARAM_FIPS_KEY_CHECK; + break; + case 'l': + if (strcmp("ength", s + 5) == 0) + return PIDX_SKEY_PARAM_KEY_LENGTH; + } + break; + case 'b': + if (strcmp("its", s + 4) == 0) + return PIDX_CIPHER_PARAM_RC2_KEYBITS; + break; + case 'l': + if (strcmp("en", s + 4) == 0) + return PIDX_CIPHER_PARAM_KEYLEN; + break; + case '\0': + return PIDX_MAC_PARAM_KEY; + } + } + break; + case 'm': + if (strcmp("ac-key-check", s + 2) == 0) + return PIDX_PROV_PARAM_KMAC_KEY_CHECK; + } + break; + case 'l': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'b': + if (strcmp("el", s + 3) == 0) + return PIDX_KDF_PARAM_LABEL; + break; + case 'n': + if (strcmp("es", s + 3) == 0) + return PIDX_KDF_PARAM_ARGON2_LANES; + } + } + break; + case 'm': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'c': + switch(s[3]) { + default: + break; + case 'k': + if (strcmp("ey", s + 4) == 0) + return PIDX_CIPHER_PARAM_AEAD_MAC_KEY; + break; + case 'l': + if (strcmp("en", s + 4) == 0) + return PIDX_KDF_PARAM_MAC_SIZE; + break; + case '\0': + return PIDX_ALG_PARAM_MAC; + } + break; + case 'n': + if (strcmp("datory-digest", s + 3) == 0) + return PIDX_PKEY_PARAM_MANDATORY_DIGEST; + break; + case 'x': + switch(s[3]) { + default: + break; + case '-': + if (strcmp("size", s + 4) == 0) + return PIDX_PKEY_PARAM_MAX_SIZE; + break; + case '_': + switch(s[4]) { + default: + break; + case 'a': + if (strcmp("dinlen", s + 5) == 0) + return PIDX_DRBG_PARAM_MAX_ADINLEN; + break; + case 'e': + switch(s[5]) { + default: + break; + case 'a': + if (strcmp("rly_data", s + 6) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_MAX_EARLY_DATA; + break; + case 'n': + if (strcmp("tropylen", s + 6) == 0) + return PIDX_DRBG_PARAM_MAX_ENTROPYLEN; + } + break; + case 'f': + if (strcmp("rag_len", s + 5) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_MAX_FRAG_LEN; + break; + case 'n': + if (strcmp("oncelen", s + 5) == 0) + return PIDX_DRBG_PARAM_MAX_NONCELEN; + break; + case 'p': + if (strcmp("erslen", s + 5) == 0) + return PIDX_DRBG_PARAM_MAX_PERSLEN; + break; + case 'r': + if (strcmp("equest", s + 5) == 0) + return PIDX_RAND_PARAM_MAX_REQUEST; + } + break; + case 'i': + if (strcmp("um_length", s + 4) == 0) + return PIDX_DRBG_PARAM_MAX_LENGTH; + break; + case 'm': + if (strcmp("em_bytes", s + 4) == 0) + return PIDX_KDF_PARAM_SCRYPT_MAXMEM; + } + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'm': + if (strcmp("cost", s + 3) == 0) + return PIDX_KDF_PARAM_ARGON2_MEMCOST; + break; + case 's': + if (strcmp("sage-encoding", s + 3) == 0) + return PIDX_SIGNATURE_PARAM_MESSAGE_ENCODING; + } + break; + case 'g': + switch(s[2]) { + default: + break; + case 'f': + switch(s[3]) { + default: + break; + case '1': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'd': + if (strcmp("igest", s + 6) == 0) + return PIDX_PKEY_PARAM_MGF1_DIGEST; + break; + case 'p': + if (strcmp("roperties", s + 6) == 0) + return PIDX_PKEY_PARAM_MGF1_PROPERTIES; + } + } + break; + case '\0': + return PIDX_PKEY_PARAM_MASKGENFUNC; + } + } + break; + case 'i': + switch(s[2]) { + default: + break; + case 'c': + if (strcmp("alg", s + 3) == 0) + return PIDX_DIGEST_PARAM_MICALG; + break; + case 'n': + switch(s[3]) { + default: + break; + case '_': + switch(s[4]) { + default: + break; + case 'e': + if (strcmp("ntropylen", s + 5) == 0) + return PIDX_DRBG_PARAM_MIN_ENTROPYLEN; + break; + case 'n': + if (strcmp("oncelen", s + 5) == 0) + return PIDX_DRBG_PARAM_MIN_NONCELEN; + } + break; + case 'i': + if (strcmp("um_length", s + 4) == 0) + return PIDX_DRBG_PARAM_MIN_LENGTH; + } + } + break; + case 'l': + switch(s[2]) { + default: + break; + case '-': + switch(s[3]) { + default: + break; + case 'd': + switch(s[4]) { + default: + break; + case 's': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case '.': + switch(s[7]) { + default: + break; + case 'i': + if (strcmp("nput_formats", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_DSA_INPUT_FORMATS; + break; + case 'o': + if (strcmp("utput_formats", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_DSA_OUTPUT_FORMATS; + break; + case 'p': + if (strcmp("refer_seed", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_DSA_PREFER_SEED; + break; + case 'r': + if (strcmp("etain_seed", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_DSA_RETAIN_SEED; + } + } + } + } + break; + case 'k': + switch(s[4]) { + default: + break; + case 'e': + switch(s[5]) { + default: + break; + case 'm': + switch(s[6]) { + default: + break; + case '.': + switch(s[7]) { + default: + break; + case 'i': + switch(s[8]) { + default: + break; + case 'm': + if (strcmp("port_pct_type", s + 9) == 0) + return PIDX_PKEY_PARAM_ML_KEM_IMPORT_PCT_TYPE; + break; + case 'n': + if (strcmp("put_formats", s + 9) == 0) + return PIDX_PKEY_PARAM_ML_KEM_INPUT_FORMATS; + } + break; + case 'o': + if (strcmp("utput_formats", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_KEM_OUTPUT_FORMATS; + break; + case 'p': + if (strcmp("refer_seed", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_KEM_PREFER_SEED; + break; + case 'r': + if (strcmp("etain_seed", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_KEM_RETAIN_SEED; + } + } + } + } + } + } + break; + case 'o': + switch(s[2]) { + default: + break; + case 'd': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case '\0': + return PIDX_LIBSSL_RECORD_LAYER_PARAM_MODE; + } + break; + case 'u': + if (strcmp("le-filename", s + 4) == 0) + return PIDX_PROV_PARAM_CORE_MODULE_FILENAME; + } + } + break; + case 'u': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_SIGNATURE_PARAM_MU; + } + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_M; + } + break; + case 'n': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("me", s + 2) == 0) + return PIDX_STORE_PARAM_ISSUER; + break; + case 'o': + switch(s[2]) { + default: + break; + case '-': + if (strcmp("short-mac", s + 3) == 0) + return PIDX_PROV_PARAM_NO_SHORT_MAC; + break; + case 'n': + switch(s[3]) { + default: + break; + case 'c': + switch(s[4]) { + default: + break; + case 'e': + switch(s[5]) { + default: + break; + case '-': + if (strcmp("type", s + 6) == 0) + return PIDX_SIGNATURE_PARAM_NONCE_TYPE; + break; + case '\0': + return PIDX_KDF_PARAM_HMACDRBG_NONCE; + } + } + } + } + break; + case 'u': + if (strcmp("m", s + 2) == 0) + return PIDX_CIPHER_PARAM_NUM; + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_N; + } + break; + case 'o': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("ep-label", s + 2) == 0) + return PIDX_ASYM_CIPHER_PARAM_OAEP_LABEL; + break; + case 'p': + switch(s[2]) { + default: + break; + case 'e': + switch(s[3]) { + default: + break; + case 'n': + if (strcmp("ssl-version", s + 4) == 0) + return PIDX_PROV_PARAM_CORE_VERSION; + break; + case 'r': + if (strcmp("ation", s + 4) == 0) + return PIDX_KEM_PARAM_OPERATION; + } + break; + case 't': + if (strcmp("ions", s + 3) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_OPTIONS; + } + break; + case 'r': + if (strcmp("der", s + 2) == 0) + return PIDX_PKEY_PARAM_EC_ORDER; + } + break; + case 'p': + switch(s[1]) { + default: + break; + case '1': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_P1; + } + break; + case '2': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_P2; + } + break; + case 'a': + switch(s[2]) { + default: + break; + case 'd': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'm': + if (strcmp("ode", s + 5) == 0) + return PIDX_PKEY_PARAM_PAD_MODE; + break; + case 't': + if (strcmp("ype", s + 5) == 0) + return PIDX_DIGEST_PARAM_PAD_TYPE; + } + break; + case 'd': + if (strcmp("ing", s + 4) == 0) + return PIDX_CIPHER_PARAM_PADDING; + break; + case '\0': + return PIDX_EXCHANGE_PARAM_PAD; + } + break; + case 'r': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case 'y': + switch(s[5]) { + default: + break; + case 'u': + if (strcmp("-info", s + 6) == 0) + return PIDX_KDF_PARAM_X942_PARTYUINFO; + break; + case 'v': + if (strcmp("-info", s + 6) == 0) + return PIDX_KDF_PARAM_X942_PARTYVINFO; + } + } + } + break; + case 's': + if (strcmp("s", s + 3) == 0) + return PIDX_KDF_PARAM_PASSWORD; + } + break; + case 'b': + switch(s[2]) { + default: + break; + case 'i': + if (strcmp("ts", s + 3) == 0) + return PIDX_PKEY_PARAM_FFC_PBITS; + break; + case 'k': + if (strcmp("df2-lower-bound-check", s + 3) == 0) + return PIDX_PROV_PARAM_PBKDF2_LOWER_BOUND_CHECK; + } + break; + case 'c': + if (strcmp("ounter", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_PCOUNTER; + break; + case 'i': + if (strcmp("peline-tag", s + 2) == 0) + return PIDX_CIPHER_PARAM_PIPELINE_AEAD_TAG; + break; + case 'k': + if (strcmp("cs5", s + 2) == 0) + return PIDX_KDF_PARAM_PKCS5; + break; + case 'o': + switch(s[2]) { + default: + break; + case 'i': + if (strcmp("nt-format", s + 3) == 0) + return PIDX_PKEY_PARAM_EC_POINT_CONVERSION_FORMAT; + break; + case 't': + if (strcmp("ential", s + 3) == 0) + return PIDX_GEN_PARAM_POTENTIAL; + } + break; + case 'r': + switch(s[2]) { + default: + break; + case 'e': + switch(s[3]) { + default: + break; + case 'd': + if (strcmp("iction_resistance", s + 4) == 0) + return PIDX_DRBG_PARAM_PREDICTION_RESISTANCE; + break; + case 'f': + if (strcmp("ix", s + 4) == 0) + return PIDX_KDF_PARAM_PREFIX; + } + break; + case 'i': + switch(s[3]) { + default: + break; + case 'm': + if (strcmp("es", s + 4) == 0) + return PIDX_PKEY_PARAM_RSA_PRIMES; + break; + case 'v': + switch(s[4]) { + default: + break; + case '_': + if (strcmp("len", s + 5) == 0) + return PIDX_PKEY_PARAM_DH_PRIV_LEN; + break; + case '\0': + return PIDX_PKEY_PARAM_PRIV_KEY; + } + } + break; + case 'o': + switch(s[3]) { + default: + break; + case 'p': + if (strcmp("erties", s + 4) == 0) + return PIDX_STORE_PARAM_PROPERTIES; + break; + case 'v': + if (strcmp("ider-name", s + 4) == 0) + return PIDX_PROV_PARAM_CORE_PROV_NAME; + } + } + break; + case 'u': + if (strcmp("b", s + 2) == 0) + return PIDX_PKEY_PARAM_PUB_KEY; + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_P; + } + break; + case 'q': + switch(s[1]) { + default: + break; + case '1': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_Q1; + } + break; + case '2': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_Q2; + } + break; + case 'b': + if (strcmp("its", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_QBITS; + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_Q; + break; + case 'x': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_PUB_X; + } + break; + case 'y': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_PUB_Y; + } + } + break; + case 'r': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'n': + switch(s[3]) { + default: + break; + case 'd': + switch(s[4]) { + default: + break; + case 'k': + if (strcmp("ey", s + 5) == 0) + return PIDX_CIPHER_PARAM_RANDOM_KEY; + break; + case 'o': + if (strcmp("m_data", s + 5) == 0) + return PIDX_DRBG_PARAM_RANDOM_DATA; + } + } + break; + case 'w': + if (strcmp("-bytes", s + 3) == 0) + return PIDX_SKEY_PARAM_RAW_BYTES; + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'a': + switch(s[3]) { + default: + break; + case 'd': + switch(s[4]) { + default: + break; + case '_': + switch(s[5]) { + default: + break; + case 'a': + if (strcmp("head", s + 6) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_READ_AHEAD; + break; + case 'b': + if (strcmp("uffer_len", s + 6) == 0) + return PIDX_LIBSSL_RECORD_LAYER_READ_BUFFER_LEN; + } + } + } + break; + case 'f': + if (strcmp("erence", s + 3) == 0) + return PIDX_OBJECT_PARAM_REFERENCE; + break; + case 's': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case 'e': + switch(s[5]) { + default: + break; + case 'd': + switch(s[6]) { + default: + break; + case '_': + switch(s[7]) { + default: + break; + case 'c': + if (strcmp("ounter", s + 8) == 0) + return PIDX_DRBG_PARAM_RESEED_COUNTER; + break; + case 'r': + if (strcmp("equests", s + 8) == 0) + return PIDX_DRBG_PARAM_RESEED_REQUESTS; + break; + case 't': + switch(s[8]) { + default: + break; + case 'i': + switch(s[9]) { + default: + break; + case 'm': + switch(s[10]) { + default: + break; + case 'e': + switch(s[11]) { + default: + break; + case '_': + if (strcmp("interval", s + 12) == 0) + return PIDX_DRBG_PARAM_RESEED_TIME_INTERVAL; + break; + case '\0': + return PIDX_DRBG_PARAM_RESEED_TIME; + } + } + } + } + } + } + } + } + } + } + break; + case 'o': + if (strcmp("unds", s + 2) == 0) + return PIDX_CIPHER_PARAM_ROUNDS; + break; + case 's': + switch(s[2]) { + default: + break; + case 'a': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'c': + switch(s[5]) { + default: + break; + case 'o': + switch(s[6]) { + default: + break; + case 'e': + switch(s[7]) { + default: + break; + case 'f': + switch(s[8]) { + default: + break; + case 'f': + switch(s[9]) { + default: + break; + case 'i': + switch(s[10]) { + default: + break; + case 'c': + switch(s[11]) { + default: + break; + case 'i': + switch(s[12]) { + default: + break; + case 'e': + switch(s[13]) { + default: + break; + case 'n': + switch(s[14]) { + default: + break; + case 't': + switch(s[15]) { + default: + break; + case '1': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT1; + } + break; + case '2': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT2; + } + break; + case '3': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT3; + } + break; + case '4': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT4; + } + break; + case '5': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT5; + } + break; + case '6': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT6; + } + break; + case '7': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT7; + } + break; + case '8': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT8; + } + break; + case '9': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT9; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT; + } + } + } + } + } + } + } + } + } + } + } + break; + case 'd': + if (strcmp("erive-from-pq", s + 5) == 0) + return PIDX_PKEY_PARAM_RSA_DERIVE_FROM_PQ; + break; + case 'e': + switch(s[5]) { + default: + break; + case 'x': + switch(s[6]) { + default: + break; + case 'p': + switch(s[7]) { + default: + break; + case 'o': + switch(s[8]) { + default: + break; + case 'n': + switch(s[9]) { + default: + break; + case 'e': + switch(s[10]) { + default: + break; + case 'n': + switch(s[11]) { + default: + break; + case 't': + switch(s[12]) { + default: + break; + case '1': + switch(s[13]) { + default: + break; + case '0': + switch(s[14]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT10; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT1; + } + break; + case '2': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT2; + } + break; + case '3': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT3; + } + break; + case '4': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT4; + } + break; + case '5': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT5; + } + break; + case '6': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT6; + } + break; + case '7': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT7; + } + break; + case '8': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT8; + } + break; + case '9': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT9; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT; + } + } + } + } + } + } + } + } + break; + case 'f': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case 'c': + switch(s[7]) { + default: + break; + case 't': + switch(s[8]) { + default: + break; + case 'o': + switch(s[9]) { + default: + break; + case 'r': + switch(s[10]) { + default: + break; + case '1': + switch(s[11]) { + default: + break; + case '0': + switch(s[12]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR10; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR1; + } + break; + case '2': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR2; + } + break; + case '3': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR3; + } + break; + case '4': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR4; + } + break; + case '5': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR5; + } + break; + case '6': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR6; + } + break; + case '7': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR7; + } + break; + case '8': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR8; + } + break; + case '9': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR9; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR; + } + } + } + } + } + } + break; + case 'p': + switch(s[5]) { + default: + break; + case 'k': + if (strcmp("cs15-pad-disabled", s + 6) == 0) + return PIDX_PROV_PARAM_RSA_PKCS15_PAD_DISABLED; + break; + case 's': + if (strcmp("s-saltlen-check", s + 6) == 0) + return PIDX_SIGNATURE_PARAM_FIPS_RSA_PSS_SALTLEN_CHECK; + } + break; + case 's': + if (strcmp("ign-x931-pad-disabled", s + 5) == 0) + return PIDX_PROV_PARAM_RSA_SIGN_X931_PAD_DISABLED; + } + } + } + break; + case '\0': + return PIDX_KDF_PARAM_SCRYPT_R; + } + break; + case 's': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'f': + if (strcmp("eprime-generator", s + 3) == 0) + return PIDX_PKEY_PARAM_DH_GENERATOR; + break; + case 'l': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case 'l': + if (strcmp("en", s + 5) == 0) + return PIDX_SIGNATURE_PARAM_PSS_SALTLEN; + break; + case '\0': + return PIDX_MAC_PARAM_SALT; + } + } + break; + case 'v': + if (strcmp("e-parameters", s + 3) == 0) + return PIDX_ENCODER_PARAM_SAVE_PARAMETERS; + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'c': + switch(s[3]) { + default: + break; + case 'r': + if (strcmp("et", s + 4) == 0) + return PIDX_KDF_PARAM_SECRET; + break; + case 'u': + switch(s[4]) { + default: + break; + case 'r': + switch(s[5]) { + default: + break; + case 'i': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case 'y': + switch(s[8]) { + default: + break; + case '-': + switch(s[9]) { + default: + break; + case 'b': + if (strcmp("its", s + 10) == 0) + return PIDX_PKEY_PARAM_SECURITY_BITS; + break; + case 'c': + if (strcmp("hecks", s + 10) == 0) + return PIDX_PROV_PARAM_SECURITY_CHECKS; + } + } + } + } + } + } + } + break; + case 'e': + if (strcmp("d", s + 3) == 0) + return PIDX_PKEY_PARAM_SLH_DSA_SEED; + break; + case 'r': + if (strcmp("ial", s + 3) == 0) + return PIDX_STORE_PARAM_SERIAL; + break; + case 's': + if (strcmp("sion_id", s + 3) == 0) + return PIDX_KDF_PARAM_SSHKDF_SESSION_ID; + } + break; + case 'i': + switch(s[2]) { + default: + break; + case 'g': + switch(s[3]) { + default: + break; + case 'n': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'c': + if (strcmp("heck", s + 6) == 0) + return PIDX_PKEY_PARAM_FIPS_SIGN_CHECK; + break; + case 'x': + if (strcmp("931-pad-check", s + 6) == 0) + return PIDX_SIGNATURE_PARAM_FIPS_SIGN_X931_PAD_CHECK; + } + break; + case 'a': + switch(s[5]) { + default: + break; + case 't': + switch(s[6]) { + default: + break; + case 'u': + switch(s[7]) { + default: + break; + case 'r': + switch(s[8]) { + default: + break; + case 'e': + switch(s[9]) { + default: + break; + case '-': + if (strcmp("digest-check", s + 10) == 0) + return PIDX_PROV_PARAM_SIGNATURE_DIGEST_CHECK; + break; + case '\0': + return PIDX_SIGNATURE_PARAM_SIGNATURE; + } + } + } + } + } + } + } + break; + case 'z': + if (strcmp("e", s + 3) == 0) + return PIDX_MAC_PARAM_SIZE; + } + break; + case 'p': + if (strcmp("eed", s + 2) == 0) + return PIDX_CIPHER_PARAM_SPEED; + break; + case 's': + switch(s[2]) { + default: + break; + case 'h': + switch(s[3]) { + default: + break; + case 'k': + switch(s[4]) { + default: + break; + case 'd': + switch(s[5]) { + default: + break; + case 'f': + switch(s[6]) { + default: + break; + case '-': + switch(s[7]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 8) == 0) + return PIDX_PROV_PARAM_SSHKDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 8) == 0) + return PIDX_PROV_PARAM_SSHKDF_KEY_CHECK; + } + } + } + } + } + break; + case 'k': + switch(s[3]) { + default: + break; + case 'd': + switch(s[4]) { + default: + break; + case 'f': + switch(s[5]) { + default: + break; + case '-': + switch(s[6]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 7) == 0) + return PIDX_PROV_PARAM_SSKDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 7) == 0) + return PIDX_PROV_PARAM_SSKDF_KEY_CHECK; + } + } + } + } + break; + case 'l': + if (strcmp("3-ms", s + 3) == 0) + return PIDX_DIGEST_PARAM_SSL3_MS; + } + break; + case 't': + switch(s[2]) { + default: + break; + case '-': + switch(s[3]) { + default: + break; + case 'd': + if (strcmp("esc", s + 4) == 0) + return PIDX_PROV_PARAM_SELF_TEST_DESC; + break; + case 'p': + if (strcmp("hase", s + 4) == 0) + return PIDX_PROV_PARAM_SELF_TEST_PHASE; + break; + case 't': + if (strcmp("ype", s + 4) == 0) + return PIDX_PROV_PARAM_SELF_TEST_TYPE; + } + break; + case 'a': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case 'e': + switch(s[5]) { + default: + break; + case '\0': + return PIDX_RAND_PARAM_STATE; + } + break; + case 'u': + if (strcmp("s", s + 5) == 0) + return PIDX_PROV_PARAM_STATUS; + } + } + break; + case 'r': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case 'a': + if (strcmp("m_mac", s + 5) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_STREAM_MAC; + break; + case 'n': + if (strcmp("gth", s + 5) == 0) + return PIDX_RAND_PARAM_STRENGTH; + } + } + } + break; + case 'u': + switch(s[2]) { + default: + break; + case 'b': + if (strcmp("ject", s + 3) == 0) + return PIDX_STORE_PARAM_SUBJECT; + break; + case 'p': + switch(s[3]) { + default: + break; + case 'p': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'p': + switch(s[6]) { + default: + break; + case 'r': + if (strcmp("ivinfo", s + 7) == 0) + return PIDX_KDF_PARAM_X942_SUPP_PRIVINFO; + break; + case 'u': + if (strcmp("binfo", s + 7) == 0) + return PIDX_KDF_PARAM_X942_SUPP_PUBINFO; + } + } + } + } + } + } + break; + case 't': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'g': + switch(s[3]) { + default: + break; + case 'l': + if (strcmp("en", s + 4) == 0) + return PIDX_CIPHER_PARAM_AEAD_TAGLEN; + break; + case '\0': + return PIDX_CIPHER_PARAM_AEAD_TAG; + } + } + break; + case 'd': + if (strcmp("es-encrypt-disabled", s + 2) == 0) + return PIDX_PROV_PARAM_TDES_ENCRYPT_DISABLED; + break; + case 'e': + switch(s[2]) { + default: + break; + case 's': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case '-': + if (strcmp("entropy", s + 5) == 0) + return PIDX_SIGNATURE_PARAM_TEST_ENTROPY; + break; + case '_': + switch(s[5]) { + default: + break; + case 'e': + if (strcmp("ntropy", s + 6) == 0) + return PIDX_RAND_PARAM_TEST_ENTROPY; + break; + case 'n': + if (strcmp("once", s + 6) == 0) + return PIDX_RAND_PARAM_TEST_NONCE; + } + } + } + } + break; + case 'h': + if (strcmp("reads", s + 2) == 0) + return PIDX_KDF_PARAM_THREADS; + break; + case 'l': + switch(s[2]) { + default: + break; + case 's': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'c': + if (strcmp("lient-version", s + 5) == 0) + return PIDX_ASYM_CIPHER_PARAM_TLS_CLIENT_VERSION; + break; + case 'd': + if (strcmp("ata-size", s + 5) == 0) + return PIDX_MAC_PARAM_TLS_DATA_SIZE; + break; + case 'g': + switch(s[5]) { + default: + break; + case 'r': + switch(s[6]) { + default: + break; + case 'o': + switch(s[7]) { + default: + break; + case 'u': + switch(s[8]) { + default: + break; + case 'p': + switch(s[9]) { + default: + break; + case '-': + switch(s[10]) { + default: + break; + case 'a': + if (strcmp("lg", s + 11) == 0) + return PIDX_CAPABILITY_TLS_GROUP_ALG; + break; + case 'i': + switch(s[11]) { + default: + break; + case 'd': + switch(s[12]) { + default: + break; + case '\0': + return PIDX_CAPABILITY_TLS_GROUP_ID; + } + break; + case 's': + if (strcmp("-kem", s + 12) == 0) + return PIDX_CAPABILITY_TLS_GROUP_IS_KEM; + } + break; + case 'n': + switch(s[11]) { + default: + break; + case 'a': + switch(s[12]) { + default: + break; + case 'm': + switch(s[13]) { + default: + break; + case 'e': + switch(s[14]) { + default: + break; + case '-': + if (strcmp("internal", s + 15) == 0) + return PIDX_CAPABILITY_TLS_GROUP_NAME_INTERNAL; + break; + case '\0': + return PIDX_CAPABILITY_TLS_GROUP_NAME; + } + } + } + } + break; + case 's': + if (strcmp("ec-bits", s + 11) == 0) + return PIDX_CAPABILITY_TLS_GROUP_SECURITY_BITS; + } + } + } + } + } + } + break; + case 'm': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case 'c': + switch(s[7]) { + default: + break; + case '-': + if (strcmp("size", s + 8) == 0) + return PIDX_CIPHER_PARAM_TLS_MAC_SIZE; + break; + case '\0': + return PIDX_CIPHER_PARAM_TLS_MAC; + } + break; + case 'x': + switch(s[7]) { + default: + break; + case '-': + switch(s[8]) { + default: + break; + case 'd': + if (strcmp("tls", s + 9) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_MAX_DTLS; + break; + case 't': + if (strcmp("ls", s + 9) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_MAX_TLS; + } + } + } + break; + case 'i': + switch(s[6]) { + default: + break; + case 'n': + switch(s[7]) { + default: + break; + case '-': + switch(s[8]) { + default: + break; + case 'd': + if (strcmp("tls", s + 9) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_MIN_DTLS; + break; + case 't': + if (strcmp("ls", s + 9) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_MIN_TLS; + } + } + } + break; + case 'u': + if (strcmp("lti", s + 6) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK; + } + break; + case 'n': + if (strcmp("egotiated-version", s + 5) == 0) + return PIDX_ASYM_CIPHER_PARAM_TLS_NEGOTIATED_VERSION; + break; + case 's': + switch(s[5]) { + default: + break; + case 'i': + switch(s[6]) { + default: + break; + case 'g': + switch(s[7]) { + default: + break; + case 'a': + switch(s[8]) { + default: + break; + case 'l': + switch(s[9]) { + default: + break; + case 'g': + switch(s[10]) { + default: + break; + case '-': + switch(s[11]) { + default: + break; + case 'c': + if (strcmp("ode-point", s + 12) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_CODE_POINT; + break; + case 'h': + switch(s[12]) { + default: + break; + case 'a': + switch(s[13]) { + default: + break; + case 's': + switch(s[14]) { + default: + break; + case 'h': + switch(s[15]) { + default: + break; + case '-': + switch(s[16]) { + default: + break; + case 'n': + if (strcmp("ame", s + 17) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_HASH_NAME; + break; + case 'o': + if (strcmp("id", s + 17) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_HASH_OID; + } + } + } + } + } + break; + case 'i': + if (strcmp("ana-name", s + 12) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_IANA_NAME; + break; + case 'k': + switch(s[12]) { + default: + break; + case 'e': + switch(s[13]) { + default: + break; + case 'y': + switch(s[14]) { + default: + break; + case 't': + switch(s[15]) { + default: + break; + case 'y': + switch(s[16]) { + default: + break; + case 'p': + switch(s[17]) { + default: + break; + case 'e': + switch(s[18]) { + default: + break; + case '-': + if (strcmp("oid", s + 19) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_KEYTYPE_OID; + break; + case '\0': + return PIDX_CAPABILITY_TLS_SIGALG_KEYTYPE; + } + } + } + } + } + } + } + break; + case 'n': + if (strcmp("ame", s + 12) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_NAME; + break; + case 'o': + if (strcmp("id", s + 12) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_OID; + break; + case 's': + switch(s[12]) { + default: + break; + case 'e': + if (strcmp("c-bits", s + 13) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_SECURITY_BITS; + break; + case 'i': + switch(s[13]) { + default: + break; + case 'g': + switch(s[14]) { + default: + break; + case '-': + switch(s[15]) { + default: + break; + case 'n': + if (strcmp("ame", s + 16) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_SIG_NAME; + break; + case 'o': + if (strcmp("id", s + 16) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_SIG_OID; + } + } + } + } + } + } + } + } + } + } + } + break; + case 'v': + if (strcmp("ersion", s + 5) == 0) + return PIDX_CIPHER_PARAM_TLS_VERSION; + } + break; + case '1': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'p': + switch(s[6]) { + default: + break; + case 'r': + switch(s[7]) { + default: + break; + case 'f': + switch(s[8]) { + default: + break; + case '-': + switch(s[9]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 10) == 0) + return PIDX_PROV_PARAM_TLS1_PRF_DIGEST_CHECK; + break; + case 'e': + if (strcmp("ms-check", s + 10) == 0) + return PIDX_PROV_PARAM_TLS1_PRF_EMS_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 10) == 0) + return PIDX_PROV_PARAM_TLS1_PRF_KEY_CHECK; + } + } + } + } + } + break; + case '3': + switch(s[5]) { + default: + break; + case '-': + switch(s[6]) { + default: + break; + case 'k': + switch(s[7]) { + default: + break; + case 'd': + switch(s[8]) { + default: + break; + case 'f': + switch(s[9]) { + default: + break; + case '-': + switch(s[10]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 11) == 0) + return PIDX_PROV_PARAM_TLS13_KDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 11) == 0) + return PIDX_PROV_PARAM_TLS13_KDF_KEY_CHECK; + } + } + } + } + } + } + break; + case 'm': + switch(s[5]) { + default: + break; + case 'u': + switch(s[6]) { + default: + break; + case 'l': + switch(s[7]) { + default: + break; + case 't': + switch(s[8]) { + default: + break; + case 'i': + switch(s[9]) { + default: + break; + case '_': + switch(s[10]) { + default: + break; + case 'a': + switch(s[11]) { + default: + break; + case 'a': + switch(s[12]) { + default: + break; + case 'd': + switch(s[13]) { + default: + break; + case 'p': + if (strcmp("acklen", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD_PACKLEN; + break; + case '\0': + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD; + } + } + } + break; + case 'e': + switch(s[11]) { + default: + break; + case 'n': + switch(s[12]) { + default: + break; + case 'c': + switch(s[13]) { + default: + break; + case 'i': + if (strcmp("n", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_IN; + break; + case 'l': + if (strcmp("en", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_LEN; + break; + case '\0': + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC; + } + } + } + break; + case 'i': + if (strcmp("nterleave", s + 11) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_INTERLEAVE; + break; + case 'm': + switch(s[11]) { + default: + break; + case 'a': + switch(s[12]) { + default: + break; + case 'x': + switch(s[13]) { + default: + break; + case 'b': + if (strcmp("ufsz", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_BUFSIZE; + break; + case 's': + if (strcmp("ndfrag", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_SEND_FRAGMENT; + } + } + } + } + } + } + } + } + } + } + break; + case 'a': + switch(s[4]) { + default: + break; + case 'a': + switch(s[5]) { + default: + break; + case 'd': + switch(s[6]) { + default: + break; + case 'p': + if (strcmp("ad", s + 7) == 0) + return PIDX_CIPHER_PARAM_AEAD_TLS1_AAD_PAD; + break; + case '\0': + return PIDX_CIPHER_PARAM_AEAD_TLS1_AAD; + } + } + } + break; + case 'i': + switch(s[4]) { + default: + break; + case 'v': + switch(s[5]) { + default: + break; + case 'f': + if (strcmp("ixed", s + 6) == 0) + return PIDX_CIPHER_PARAM_AEAD_TLS1_IV_FIXED; + break; + case 'g': + if (strcmp("en", s + 6) == 0) + return PIDX_CIPHER_PARAM_AEAD_TLS1_GET_IV_GEN; + break; + case 'i': + if (strcmp("nv", s + 6) == 0) + return PIDX_CIPHER_PARAM_AEAD_TLS1_SET_IV_INV; + } + } + break; + case 't': + if (strcmp("ree", s + 4) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_TLSTREE; + } + } + break; + case 'p': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_TP_BASIS; + } + break; + case 'y': + if (strcmp("pe", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_TYPE; + } + break; + case 'u': + switch(s[1]) { + default: + break; + case 'k': + if (strcmp("m", s + 2) == 0) + return PIDX_KDF_PARAM_UKM; + break; + case 'p': + if (strcmp("dated-iv", s + 2) == 0) + return PIDX_CIPHER_PARAM_UPDATED_IV; + break; + case 's': + switch(s[2]) { + default: + break; + case 'e': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'b': + if (strcmp("its", s + 5) == 0) + return PIDX_CIPHER_PARAM_USE_BITS; + break; + case 'c': + if (strcmp("ofactor-flag", s + 5) == 0) + return PIDX_PKEY_PARAM_USE_COFACTOR_FLAG; + break; + case 'k': + if (strcmp("eybits", s + 5) == 0) + return PIDX_KDF_PARAM_X942_USE_KEYBITS; + break; + case 'l': + switch(s[5]) { + default: + break; + case '\0': + return PIDX_KDF_PARAM_KBKDF_USE_L; + } + break; + case 's': + if (strcmp("eparator", s + 5) == 0) + return PIDX_KDF_PARAM_KBKDF_USE_SEPARATOR; + } + break; + case '_': + switch(s[4]) { + default: + break; + case 'd': + if (strcmp("erivation_function", s + 5) == 0) + return PIDX_DRBG_PARAM_USE_DF; + break; + case 'e': + if (strcmp("tm", s + 5) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_USE_ETM; + } + } + } + } + break; + case 'v': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'l': + switch(s[3]) { + default: + break; + case 'i': + switch(s[4]) { + default: + break; + case 'd': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case 'e': + switch(s[8]) { + default: + break; + case '-': + switch(s[9]) { + default: + break; + case 'g': + switch(s[10]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_VALIDATE_G; + } + break; + case 'l': + if (strcmp("egacy", s + 10) == 0) + return PIDX_PKEY_PARAM_FFC_VALIDATE_LEGACY; + break; + case 'p': + if (strcmp("q", s + 10) == 0) + return PIDX_PKEY_PARAM_FFC_VALIDATE_PQ; + } + } + } + } + } + } + } + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'r': + switch(s[3]) { + default: + break; + case 'i': + if (strcmp("fy-message", s + 4) == 0) + return PIDX_SIGNATURE_PARAM_FIPS_VERIFY_MESSAGE; + break; + case 's': + if (strcmp("ion", s + 4) == 0) + return PIDX_PROV_PARAM_VERSION; + } + } + } + break; + case 'x': + switch(s[1]) { + default: + break; + case '9': + switch(s[2]) { + default: + break; + case '4': + if (strcmp("2kdf-key-check", s + 3) == 0) + return PIDX_PROV_PARAM_X942KDF_KEY_CHECK; + break; + case '6': + switch(s[3]) { + default: + break; + case '3': + switch(s[4]) { + default: + break; + case 'k': + switch(s[5]) { + default: + break; + case 'd': + switch(s[6]) { + default: + break; + case 'f': + switch(s[7]) { + default: + break; + case '-': + switch(s[8]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 9) == 0) + return PIDX_PROV_PARAM_X963KDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 9) == 0) + return PIDX_PROV_PARAM_X963KDF_KEY_CHECK; + } + } + } + } + } + } + } + break; + case 'c': + if (strcmp("ghash", s + 2) == 0) + return PIDX_KDF_PARAM_SSHKDF_XCGHASH; + break; + case 'o': + switch(s[2]) { + default: + break; + case 'f': + switch(s[3]) { + default: + break; + case 'l': + if (strcmp("en", s + 4) == 0) + return PIDX_DIGEST_PARAM_XOFLEN; + break; + case '\0': + return PIDX_MAC_PARAM_XOF; + } + } + break; + case 'p': + switch(s[2]) { + default: + break; + case '1': + switch(s[3]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XP1; + } + break; + case '2': + switch(s[3]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XP2; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XP; + } + break; + case 'q': + switch(s[2]) { + default: + break; + case '1': + switch(s[3]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XQ1; + } + break; + case '2': + switch(s[3]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XQ2; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XQ; + } + break; + case 't': + if (strcmp("s_standard", s + 2) == 0) + return PIDX_CIPHER_PARAM_XTS_STANDARD; + } + } + return -1; +} + +/* End of TRIE */ diff --git a/deps/openssl/config/archs/BSD-x86/asm/crypto/poly1305/poly1305-x86.S b/deps/openssl/config/archs/BSD-x86/asm/crypto/poly1305/poly1305-x86.S index 6fd5469a571356..2bf33f3c8977a0 100644 --- a/deps/openssl/config/archs/BSD-x86/asm/crypto/poly1305/poly1305-x86.S +++ b/deps/openssl/config/archs/BSD-x86/asm/crypto/poly1305/poly1305-x86.S @@ -1940,4 +1940,4 @@ Lconst_sse2: .byte 60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111 .byte 114,103,62,0 .align 2,0x90 -.comm _OPENSSL_ia32cap_P,16 +.comm _OPENSSL_ia32cap_P,40 diff --git a/deps/openssl/config/archs/BSD-x86/asm/crypto/rc4/rc4-586.S b/deps/openssl/config/archs/BSD-x86/asm/crypto/rc4/rc4-586.S index 55215f177a9f84..60042da2862cb1 100644 --- a/deps/openssl/config/archs/BSD-x86/asm/crypto/rc4/rc4-586.S +++ b/deps/openssl/config/archs/BSD-x86/asm/crypto/rc4/rc4-586.S @@ -392,4 +392,4 @@ L019opts: .byte 80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114 .byte 111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 .align 6,0x90 -.comm _OPENSSL_ia32cap_P,16 +.comm _OPENSSL_ia32cap_P,40 diff --git a/deps/openssl/config/archs/BSD-x86/asm/crypto/sha/sha1-586.S b/deps/openssl/config/archs/BSD-x86/asm/crypto/sha/sha1-586.S index 2e977b873bb848..2f16bd08c9e1f4 100644 --- a/deps/openssl/config/archs/BSD-x86/asm/crypto/sha/sha1-586.S +++ b/deps/openssl/config/archs/BSD-x86/asm/crypto/sha/sha1-586.S @@ -3983,4 +3983,4 @@ LK_XX_XX: .byte 102,111,114,109,32,102,111,114,32,120,56,54,44,32,67,82 .byte 89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112 .byte 114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 -.comm _OPENSSL_ia32cap_P,16 +.comm _OPENSSL_ia32cap_P,40 diff --git a/deps/openssl/config/archs/BSD-x86/asm/crypto/sha/sha256-586.S b/deps/openssl/config/archs/BSD-x86/asm/crypto/sha/sha256-586.S index ab935deb824c0a..c5fe87bf89cd8e 100644 --- a/deps/openssl/config/archs/BSD-x86/asm/crypto/sha/sha256-586.S +++ b/deps/openssl/config/archs/BSD-x86/asm/crypto/sha/sha256-586.S @@ -6784,4 +6784,4 @@ L018avx_bmi_00_47: popl %ebx popl %ebp ret -.comm _OPENSSL_ia32cap_P,16 +.comm _OPENSSL_ia32cap_P,40 diff --git a/deps/openssl/config/archs/BSD-x86/asm/crypto/sha/sha512-586.S b/deps/openssl/config/archs/BSD-x86/asm/crypto/sha/sha512-586.S index 0dea93b398287d..97a269ba66bcf9 100644 --- a/deps/openssl/config/archs/BSD-x86/asm/crypto/sha/sha512-586.S +++ b/deps/openssl/config/archs/BSD-x86/asm/crypto/sha/sha512-586.S @@ -2830,4 +2830,4 @@ L001K512: .byte 67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97 .byte 112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103 .byte 62,0 -.comm _OPENSSL_ia32cap_P,16 +.comm _OPENSSL_ia32cap_P,40 diff --git a/deps/openssl/config/archs/BSD-x86/asm/crypto/x86cpuid.S b/deps/openssl/config/archs/BSD-x86/asm/crypto/x86cpuid.S index 39d138a7e345d6..9420cd0c4086d9 100644 --- a/deps/openssl/config/archs/BSD-x86/asm/crypto/x86cpuid.S +++ b/deps/openssl/config/archs/BSD-x86/asm/crypto/x86cpuid.S @@ -122,6 +122,24 @@ L002generic: xorl %ecx,%ecx .byte 0x0f,0xa2 movl %ebx,8(%edi) + movl %ecx,12(%edi) + movl %edx,16(%edi) + cmpl $1,%eax + jb L005no_extended_info + movl $7,%eax + movl $1,%ecx + .byte 0x0f,0xa2 + movl %eax,20(%edi) + movl %edx,24(%edi) + movl %ebx,28(%edi) + movl %ecx,32(%edi) + andl $524288,%edx + cmpl $0,%edx + je L005no_extended_info + movl $36,%eax + movl $0,%ecx + .byte 0x0f,0xa2 + movl %ebx,36(%edi) L005no_extended_info: btl $27,%ebp jnc L006clear_avx @@ -137,6 +155,7 @@ L008clear_xmm: andl $4278190079,%esi L006clear_avx: andl $4026525695,%ebp + andl $4286578687,20(%edi) andl $4294967263,8(%edi) L007done: movl %esi,%eax @@ -583,7 +602,7 @@ L036done: popl %ebx popl %edi ret -.comm _OPENSSL_ia32cap_P,16 +.comm _OPENSSL_ia32cap_P,40 .text .type __GLOBAL_$I$_OPENSSL_cpuid_setup,@function .globl __GLOBAL_$I$_OPENSSL_cpuid_setup diff --git a/deps/openssl/config/archs/BSD-x86/asm/include/internal/param_names.h b/deps/openssl/config/archs/BSD-x86/asm/include/internal/param_names.h new file mode 100644 index 00000000000000..0a0404a57e82b9 --- /dev/null +++ b/deps/openssl/config/archs/BSD-x86/asm/include/internal/param_names.h @@ -0,0 +1,469 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from include/internal/param_names.h.in + * + * Copyright 2023 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + +int ossl_param_find_pidx(const char *s); + +/* Parameter name definitions - generated by util/perl/OpenSSL/paramnames.pm */ +#define NUM_PIDX 346 + +#define PIDX_ALG_PARAM_ALGORITHM_ID 0 +#define PIDX_ALG_PARAM_ALGORITHM_ID_PARAMS 1 +#define PIDX_ALG_PARAM_CIPHER 2 +#define PIDX_ALG_PARAM_DIGEST 3 +#define PIDX_ALG_PARAM_ENGINE 4 +#define PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR 5 +#define PIDX_ALG_PARAM_MAC 6 +#define PIDX_ALG_PARAM_PROPERTIES 7 +#define PIDX_ASYM_CIPHER_PARAM_DIGEST PIDX_PKEY_PARAM_DIGEST +#define PIDX_ASYM_CIPHER_PARAM_ENGINE PIDX_PKEY_PARAM_ENGINE +#define PIDX_ASYM_CIPHER_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_ASYM_CIPHER_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_ASYM_CIPHER_PARAM_FIPS_RSA_PKCS15_PAD_DISABLED PIDX_PROV_PARAM_RSA_PKCS15_PAD_DISABLED +#define PIDX_ASYM_CIPHER_PARAM_IMPLICIT_REJECTION 8 +#define PIDX_ASYM_CIPHER_PARAM_MGF1_DIGEST PIDX_PKEY_PARAM_MGF1_DIGEST +#define PIDX_ASYM_CIPHER_PARAM_MGF1_DIGEST_PROPS PIDX_PKEY_PARAM_MGF1_PROPERTIES +#define PIDX_ASYM_CIPHER_PARAM_OAEP_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_ASYM_CIPHER_PARAM_OAEP_DIGEST_PROPS 9 +#define PIDX_ASYM_CIPHER_PARAM_OAEP_LABEL 10 +#define PIDX_ASYM_CIPHER_PARAM_PAD_MODE PIDX_PKEY_PARAM_PAD_MODE +#define PIDX_ASYM_CIPHER_PARAM_PROPERTIES PIDX_PKEY_PARAM_PROPERTIES +#define PIDX_ASYM_CIPHER_PARAM_TLS_CLIENT_VERSION 11 +#define PIDX_ASYM_CIPHER_PARAM_TLS_NEGOTIATED_VERSION 12 +#define PIDX_CAPABILITY_TLS_GROUP_ALG 13 +#define PIDX_CAPABILITY_TLS_GROUP_ID 14 +#define PIDX_CAPABILITY_TLS_GROUP_IS_KEM 15 +#define PIDX_CAPABILITY_TLS_GROUP_MAX_DTLS 16 +#define PIDX_CAPABILITY_TLS_GROUP_MAX_TLS 17 +#define PIDX_CAPABILITY_TLS_GROUP_MIN_DTLS 18 +#define PIDX_CAPABILITY_TLS_GROUP_MIN_TLS 19 +#define PIDX_CAPABILITY_TLS_GROUP_NAME 20 +#define PIDX_CAPABILITY_TLS_GROUP_NAME_INTERNAL 21 +#define PIDX_CAPABILITY_TLS_GROUP_SECURITY_BITS 22 +#define PIDX_CAPABILITY_TLS_SIGALG_CODE_POINT 23 +#define PIDX_CAPABILITY_TLS_SIGALG_HASH_NAME 24 +#define PIDX_CAPABILITY_TLS_SIGALG_HASH_OID 25 +#define PIDX_CAPABILITY_TLS_SIGALG_IANA_NAME 26 +#define PIDX_CAPABILITY_TLS_SIGALG_KEYTYPE 27 +#define PIDX_CAPABILITY_TLS_SIGALG_KEYTYPE_OID 28 +#define PIDX_CAPABILITY_TLS_SIGALG_MAX_DTLS 16 +#define PIDX_CAPABILITY_TLS_SIGALG_MAX_TLS 17 +#define PIDX_CAPABILITY_TLS_SIGALG_MIN_DTLS 18 +#define PIDX_CAPABILITY_TLS_SIGALG_MIN_TLS 19 +#define PIDX_CAPABILITY_TLS_SIGALG_NAME 29 +#define PIDX_CAPABILITY_TLS_SIGALG_OID 30 +#define PIDX_CAPABILITY_TLS_SIGALG_SECURITY_BITS 31 +#define PIDX_CAPABILITY_TLS_SIGALG_SIG_NAME 32 +#define PIDX_CAPABILITY_TLS_SIGALG_SIG_OID 33 +#define PIDX_CIPHER_PARAM_AEAD 34 +#define PIDX_CIPHER_PARAM_AEAD_IVLEN PIDX_CIPHER_PARAM_IVLEN +#define PIDX_CIPHER_PARAM_AEAD_IV_GENERATED 35 +#define PIDX_CIPHER_PARAM_AEAD_MAC_KEY 36 +#define PIDX_CIPHER_PARAM_AEAD_TAG 37 +#define PIDX_CIPHER_PARAM_AEAD_TAGLEN 38 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_AAD 39 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_AAD_PAD 40 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_GET_IV_GEN 41 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_IV_FIXED 42 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_SET_IV_INV 43 +#define PIDX_CIPHER_PARAM_ALGORITHM_ID PIDX_ALG_PARAM_ALGORITHM_ID +#define PIDX_CIPHER_PARAM_ALGORITHM_ID_PARAMS PIDX_ALG_PARAM_ALGORITHM_ID_PARAMS +#define PIDX_CIPHER_PARAM_ALGORITHM_ID_PARAMS_OLD 44 +#define PIDX_CIPHER_PARAM_BLOCK_SIZE 45 +#define PIDX_CIPHER_PARAM_CTS 46 +#define PIDX_CIPHER_PARAM_CTS_MODE 47 +#define PIDX_CIPHER_PARAM_CUSTOM_IV 48 +#define PIDX_CIPHER_PARAM_DECRYPT_ONLY 49 +#define PIDX_CIPHER_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_CIPHER_PARAM_FIPS_ENCRYPT_CHECK 50 +#define PIDX_CIPHER_PARAM_HAS_RAND_KEY 51 +#define PIDX_CIPHER_PARAM_IV 52 +#define PIDX_CIPHER_PARAM_IVLEN 53 +#define PIDX_CIPHER_PARAM_KEYLEN 54 +#define PIDX_CIPHER_PARAM_MODE 55 +#define PIDX_CIPHER_PARAM_NUM 56 +#define PIDX_CIPHER_PARAM_PADDING 57 +#define PIDX_CIPHER_PARAM_PIPELINE_AEAD_TAG 58 +#define PIDX_CIPHER_PARAM_RANDOM_KEY 59 +#define PIDX_CIPHER_PARAM_RC2_KEYBITS 60 +#define PIDX_CIPHER_PARAM_ROUNDS 61 +#define PIDX_CIPHER_PARAM_SPEED 62 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK 63 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD 64 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD_PACKLEN 65 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC 66 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_IN 67 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_LEN 68 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_INTERLEAVE 69 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_BUFSIZE 70 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_SEND_FRAGMENT 71 +#define PIDX_CIPHER_PARAM_TLS_MAC 72 +#define PIDX_CIPHER_PARAM_TLS_MAC_SIZE 73 +#define PIDX_CIPHER_PARAM_TLS_VERSION 74 +#define PIDX_CIPHER_PARAM_UPDATED_IV 75 +#define PIDX_CIPHER_PARAM_USE_BITS 76 +#define PIDX_CIPHER_PARAM_XTS_STANDARD 77 +#define PIDX_DECODER_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_DIGEST_PARAM_ALGID_ABSENT 78 +#define PIDX_DIGEST_PARAM_BLOCK_SIZE 45 +#define PIDX_DIGEST_PARAM_MICALG 79 +#define PIDX_DIGEST_PARAM_PAD_TYPE 80 +#define PIDX_DIGEST_PARAM_SIZE 81 +#define PIDX_DIGEST_PARAM_SSL3_MS 82 +#define PIDX_DIGEST_PARAM_XOF 83 +#define PIDX_DIGEST_PARAM_XOFLEN 84 +#define PIDX_DRBG_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_DRBG_PARAM_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_DRBG_PARAM_ENTROPY_REQUIRED 85 +#define PIDX_DRBG_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_DRBG_PARAM_FIPS_DIGEST_CHECK PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK +#define PIDX_DRBG_PARAM_MAC PIDX_ALG_PARAM_MAC +#define PIDX_DRBG_PARAM_MAX_ADINLEN 86 +#define PIDX_DRBG_PARAM_MAX_ENTROPYLEN 87 +#define PIDX_DRBG_PARAM_MAX_LENGTH 88 +#define PIDX_DRBG_PARAM_MAX_NONCELEN 89 +#define PIDX_DRBG_PARAM_MAX_PERSLEN 90 +#define PIDX_DRBG_PARAM_MIN_ENTROPYLEN 91 +#define PIDX_DRBG_PARAM_MIN_LENGTH 92 +#define PIDX_DRBG_PARAM_MIN_NONCELEN 93 +#define PIDX_DRBG_PARAM_PREDICTION_RESISTANCE 94 +#define PIDX_DRBG_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_DRBG_PARAM_RANDOM_DATA 95 +#define PIDX_DRBG_PARAM_RESEED_COUNTER 96 +#define PIDX_DRBG_PARAM_RESEED_REQUESTS 97 +#define PIDX_DRBG_PARAM_RESEED_TIME 98 +#define PIDX_DRBG_PARAM_RESEED_TIME_INTERVAL 99 +#define PIDX_DRBG_PARAM_SIZE 81 +#define PIDX_DRBG_PARAM_USE_DF 100 +#define PIDX_ENCODER_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_ENCODER_PARAM_ENCRYPT_LEVEL 101 +#define PIDX_ENCODER_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_ENCODER_PARAM_SAVE_PARAMETERS 102 +#define PIDX_EXCHANGE_PARAM_EC_ECDH_COFACTOR_MODE 103 +#define PIDX_EXCHANGE_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_EXCHANGE_PARAM_FIPS_DIGEST_CHECK PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK +#define PIDX_EXCHANGE_PARAM_FIPS_ECDH_COFACTOR_CHECK PIDX_PROV_PARAM_ECDH_COFACTOR_CHECK +#define PIDX_EXCHANGE_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_EXCHANGE_PARAM_KDF_DIGEST 104 +#define PIDX_EXCHANGE_PARAM_KDF_DIGEST_PROPS 105 +#define PIDX_EXCHANGE_PARAM_KDF_OUTLEN 106 +#define PIDX_EXCHANGE_PARAM_KDF_TYPE 107 +#define PIDX_EXCHANGE_PARAM_KDF_UKM 108 +#define PIDX_EXCHANGE_PARAM_PAD 109 +#define PIDX_GEN_PARAM_ITERATION 110 +#define PIDX_GEN_PARAM_POTENTIAL 111 +#define PIDX_KDF_PARAM_ARGON2_AD 112 +#define PIDX_KDF_PARAM_ARGON2_LANES 113 +#define PIDX_KDF_PARAM_ARGON2_MEMCOST 114 +#define PIDX_KDF_PARAM_ARGON2_VERSION 115 +#define PIDX_KDF_PARAM_CEK_ALG 116 +#define PIDX_KDF_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_KDF_PARAM_CONSTANT 117 +#define PIDX_KDF_PARAM_DATA 118 +#define PIDX_KDF_PARAM_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_KDF_PARAM_EARLY_CLEAN 119 +#define PIDX_KDF_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_KDF_PARAM_FIPS_DIGEST_CHECK PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK +#define PIDX_KDF_PARAM_FIPS_EMS_CHECK 120 +#define PIDX_KDF_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_KDF_PARAM_HMACDRBG_ENTROPY 121 +#define PIDX_KDF_PARAM_HMACDRBG_NONCE 122 +#define PIDX_KDF_PARAM_INFO 123 +#define PIDX_KDF_PARAM_ITER 124 +#define PIDX_KDF_PARAM_KBKDF_R 125 +#define PIDX_KDF_PARAM_KBKDF_USE_L 126 +#define PIDX_KDF_PARAM_KBKDF_USE_SEPARATOR 127 +#define PIDX_KDF_PARAM_KEY 128 +#define PIDX_KDF_PARAM_LABEL 129 +#define PIDX_KDF_PARAM_MAC PIDX_ALG_PARAM_MAC +#define PIDX_KDF_PARAM_MAC_SIZE 130 +#define PIDX_KDF_PARAM_MODE 55 +#define PIDX_KDF_PARAM_PASSWORD 131 +#define PIDX_KDF_PARAM_PKCS12_ID 132 +#define PIDX_KDF_PARAM_PKCS5 133 +#define PIDX_KDF_PARAM_PREFIX 134 +#define PIDX_KDF_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_KDF_PARAM_SALT 135 +#define PIDX_KDF_PARAM_SCRYPT_MAXMEM 136 +#define PIDX_KDF_PARAM_SCRYPT_N 137 +#define PIDX_KDF_PARAM_SCRYPT_P 138 +#define PIDX_KDF_PARAM_SCRYPT_R 125 +#define PIDX_KDF_PARAM_SECRET 139 +#define PIDX_KDF_PARAM_SEED 140 +#define PIDX_KDF_PARAM_SIZE 81 +#define PIDX_KDF_PARAM_SSHKDF_SESSION_ID 141 +#define PIDX_KDF_PARAM_SSHKDF_TYPE 142 +#define PIDX_KDF_PARAM_SSHKDF_XCGHASH 143 +#define PIDX_KDF_PARAM_THREADS 144 +#define PIDX_KDF_PARAM_UKM 145 +#define PIDX_KDF_PARAM_X942_ACVPINFO 146 +#define PIDX_KDF_PARAM_X942_PARTYUINFO 147 +#define PIDX_KDF_PARAM_X942_PARTYVINFO 148 +#define PIDX_KDF_PARAM_X942_SUPP_PRIVINFO 149 +#define PIDX_KDF_PARAM_X942_SUPP_PUBINFO 150 +#define PIDX_KDF_PARAM_X942_USE_KEYBITS 151 +#define PIDX_KEM_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_KEM_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_KEM_PARAM_IKME 152 +#define PIDX_KEM_PARAM_OPERATION 153 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_BLOCK_PADDING 154 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_HS_PADDING 155 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_MAX_EARLY_DATA 156 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_MAX_FRAG_LEN 157 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_MODE 55 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_OPTIONS 158 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_READ_AHEAD 159 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_STREAM_MAC 160 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_TLSTREE 161 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_USE_ETM 162 +#define PIDX_LIBSSL_RECORD_LAYER_READ_BUFFER_LEN 163 +#define PIDX_MAC_PARAM_BLOCK_SIZE 164 +#define PIDX_MAC_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_MAC_PARAM_CUSTOM 165 +#define PIDX_MAC_PARAM_C_ROUNDS 166 +#define PIDX_MAC_PARAM_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_MAC_PARAM_DIGEST_NOINIT 167 +#define PIDX_MAC_PARAM_DIGEST_ONESHOT 168 +#define PIDX_MAC_PARAM_D_ROUNDS 169 +#define PIDX_MAC_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_MAC_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_MAC_PARAM_FIPS_NO_SHORT_MAC PIDX_PROV_PARAM_NO_SHORT_MAC +#define PIDX_MAC_PARAM_IV 52 +#define PIDX_MAC_PARAM_KEY 128 +#define PIDX_MAC_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_MAC_PARAM_SALT 135 +#define PIDX_MAC_PARAM_SIZE 81 +#define PIDX_MAC_PARAM_TLS_DATA_SIZE 170 +#define PIDX_MAC_PARAM_XOF 83 +#define PIDX_OBJECT_PARAM_DATA 118 +#define PIDX_OBJECT_PARAM_DATA_STRUCTURE 171 +#define PIDX_OBJECT_PARAM_DATA_TYPE 172 +#define PIDX_OBJECT_PARAM_DESC 173 +#define PIDX_OBJECT_PARAM_INPUT_TYPE 174 +#define PIDX_OBJECT_PARAM_REFERENCE 175 +#define PIDX_OBJECT_PARAM_TYPE 142 +#define PIDX_PASSPHRASE_PARAM_INFO 123 +#define PIDX_PKEY_PARAM_ALGORITHM_ID PIDX_ALG_PARAM_ALGORITHM_ID +#define PIDX_PKEY_PARAM_ALGORITHM_ID_PARAMS PIDX_ALG_PARAM_ALGORITHM_ID_PARAMS +#define PIDX_PKEY_PARAM_BITS 176 +#define PIDX_PKEY_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_PKEY_PARAM_DEFAULT_DIGEST 177 +#define PIDX_PKEY_PARAM_DHKEM_IKM 178 +#define PIDX_PKEY_PARAM_DH_GENERATOR 179 +#define PIDX_PKEY_PARAM_DH_PRIV_LEN 180 +#define PIDX_PKEY_PARAM_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_PKEY_PARAM_DIGEST_SIZE 181 +#define PIDX_PKEY_PARAM_DIST_ID 182 +#define PIDX_PKEY_PARAM_EC_A 183 +#define PIDX_PKEY_PARAM_EC_B 184 +#define PIDX_PKEY_PARAM_EC_CHAR2_M 185 +#define PIDX_PKEY_PARAM_EC_CHAR2_PP_K1 186 +#define PIDX_PKEY_PARAM_EC_CHAR2_PP_K2 187 +#define PIDX_PKEY_PARAM_EC_CHAR2_PP_K3 188 +#define PIDX_PKEY_PARAM_EC_CHAR2_TP_BASIS 189 +#define PIDX_PKEY_PARAM_EC_CHAR2_TYPE 190 +#define PIDX_PKEY_PARAM_EC_COFACTOR 191 +#define PIDX_PKEY_PARAM_EC_DECODED_FROM_EXPLICIT_PARAMS 192 +#define PIDX_PKEY_PARAM_EC_ENCODING 193 +#define PIDX_PKEY_PARAM_EC_FIELD_TYPE 194 +#define PIDX_PKEY_PARAM_EC_GENERATOR 195 +#define PIDX_PKEY_PARAM_EC_GROUP_CHECK_TYPE 196 +#define PIDX_PKEY_PARAM_EC_INCLUDE_PUBLIC 197 +#define PIDX_PKEY_PARAM_EC_ORDER 198 +#define PIDX_PKEY_PARAM_EC_P 138 +#define PIDX_PKEY_PARAM_EC_POINT_CONVERSION_FORMAT 199 +#define PIDX_PKEY_PARAM_EC_PUB_X 200 +#define PIDX_PKEY_PARAM_EC_PUB_Y 201 +#define PIDX_PKEY_PARAM_EC_SEED 140 +#define PIDX_PKEY_PARAM_ENCODED_PUBLIC_KEY 202 +#define PIDX_PKEY_PARAM_ENGINE PIDX_ALG_PARAM_ENGINE +#define PIDX_PKEY_PARAM_FFC_COFACTOR 203 +#define PIDX_PKEY_PARAM_FFC_DIGEST PIDX_PKEY_PARAM_DIGEST +#define PIDX_PKEY_PARAM_FFC_DIGEST_PROPS PIDX_PKEY_PARAM_PROPERTIES +#define PIDX_PKEY_PARAM_FFC_G 204 +#define PIDX_PKEY_PARAM_FFC_GINDEX 205 +#define PIDX_PKEY_PARAM_FFC_H 206 +#define PIDX_PKEY_PARAM_FFC_P 138 +#define PIDX_PKEY_PARAM_FFC_PBITS 207 +#define PIDX_PKEY_PARAM_FFC_PCOUNTER 208 +#define PIDX_PKEY_PARAM_FFC_Q 209 +#define PIDX_PKEY_PARAM_FFC_QBITS 210 +#define PIDX_PKEY_PARAM_FFC_SEED 140 +#define PIDX_PKEY_PARAM_FFC_TYPE 142 +#define PIDX_PKEY_PARAM_FFC_VALIDATE_G 211 +#define PIDX_PKEY_PARAM_FFC_VALIDATE_LEGACY 212 +#define PIDX_PKEY_PARAM_FFC_VALIDATE_PQ 213 +#define PIDX_PKEY_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK 214 +#define PIDX_PKEY_PARAM_FIPS_KEY_CHECK 215 +#define PIDX_PKEY_PARAM_FIPS_SIGN_CHECK 216 +#define PIDX_PKEY_PARAM_GROUP_NAME 217 +#define PIDX_PKEY_PARAM_IMPLICIT_REJECTION 8 +#define PIDX_PKEY_PARAM_MANDATORY_DIGEST 218 +#define PIDX_PKEY_PARAM_MASKGENFUNC 219 +#define PIDX_PKEY_PARAM_MAX_SIZE 220 +#define PIDX_PKEY_PARAM_MGF1_DIGEST 221 +#define PIDX_PKEY_PARAM_MGF1_PROPERTIES 222 +#define PIDX_PKEY_PARAM_ML_DSA_INPUT_FORMATS 223 +#define PIDX_PKEY_PARAM_ML_DSA_OUTPUT_FORMATS 224 +#define PIDX_PKEY_PARAM_ML_DSA_PREFER_SEED 225 +#define PIDX_PKEY_PARAM_ML_DSA_RETAIN_SEED 226 +#define PIDX_PKEY_PARAM_ML_DSA_SEED 140 +#define PIDX_PKEY_PARAM_ML_KEM_IMPORT_PCT_TYPE 227 +#define PIDX_PKEY_PARAM_ML_KEM_INPUT_FORMATS 228 +#define PIDX_PKEY_PARAM_ML_KEM_OUTPUT_FORMATS 229 +#define PIDX_PKEY_PARAM_ML_KEM_PREFER_SEED 230 +#define PIDX_PKEY_PARAM_ML_KEM_RETAIN_SEED 231 +#define PIDX_PKEY_PARAM_ML_KEM_SEED 140 +#define PIDX_PKEY_PARAM_PAD_MODE 232 +#define PIDX_PKEY_PARAM_PRIV_KEY 233 +#define PIDX_PKEY_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_PKEY_PARAM_PUB_KEY 234 +#define PIDX_PKEY_PARAM_RSA_BITS PIDX_PKEY_PARAM_BITS +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT 235 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT1 236 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT2 237 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT3 238 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT4 239 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT5 240 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT6 241 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT7 242 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT8 243 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT9 244 +#define PIDX_PKEY_PARAM_RSA_D 245 +#define PIDX_PKEY_PARAM_RSA_DERIVE_FROM_PQ 246 +#define PIDX_PKEY_PARAM_RSA_DIGEST PIDX_PKEY_PARAM_DIGEST +#define PIDX_PKEY_PARAM_RSA_DIGEST_PROPS PIDX_PKEY_PARAM_PROPERTIES +#define PIDX_PKEY_PARAM_RSA_E 247 +#define PIDX_PKEY_PARAM_RSA_EXPONENT 248 +#define PIDX_PKEY_PARAM_RSA_EXPONENT1 249 +#define PIDX_PKEY_PARAM_RSA_EXPONENT10 250 +#define PIDX_PKEY_PARAM_RSA_EXPONENT2 251 +#define PIDX_PKEY_PARAM_RSA_EXPONENT3 252 +#define PIDX_PKEY_PARAM_RSA_EXPONENT4 253 +#define PIDX_PKEY_PARAM_RSA_EXPONENT5 254 +#define PIDX_PKEY_PARAM_RSA_EXPONENT6 255 +#define PIDX_PKEY_PARAM_RSA_EXPONENT7 256 +#define PIDX_PKEY_PARAM_RSA_EXPONENT8 257 +#define PIDX_PKEY_PARAM_RSA_EXPONENT9 258 +#define PIDX_PKEY_PARAM_RSA_FACTOR 259 +#define PIDX_PKEY_PARAM_RSA_FACTOR1 260 +#define PIDX_PKEY_PARAM_RSA_FACTOR10 261 +#define PIDX_PKEY_PARAM_RSA_FACTOR2 262 +#define PIDX_PKEY_PARAM_RSA_FACTOR3 263 +#define PIDX_PKEY_PARAM_RSA_FACTOR4 264 +#define PIDX_PKEY_PARAM_RSA_FACTOR5 265 +#define PIDX_PKEY_PARAM_RSA_FACTOR6 266 +#define PIDX_PKEY_PARAM_RSA_FACTOR7 267 +#define PIDX_PKEY_PARAM_RSA_FACTOR8 268 +#define PIDX_PKEY_PARAM_RSA_FACTOR9 269 +#define PIDX_PKEY_PARAM_RSA_MASKGENFUNC PIDX_PKEY_PARAM_MASKGENFUNC +#define PIDX_PKEY_PARAM_RSA_MGF1_DIGEST PIDX_PKEY_PARAM_MGF1_DIGEST +#define PIDX_PKEY_PARAM_RSA_N 137 +#define PIDX_PKEY_PARAM_RSA_PRIMES 270 +#define PIDX_PKEY_PARAM_RSA_PSS_SALTLEN 271 +#define PIDX_PKEY_PARAM_RSA_TEST_P1 272 +#define PIDX_PKEY_PARAM_RSA_TEST_P2 273 +#define PIDX_PKEY_PARAM_RSA_TEST_Q1 274 +#define PIDX_PKEY_PARAM_RSA_TEST_Q2 275 +#define PIDX_PKEY_PARAM_RSA_TEST_XP 276 +#define PIDX_PKEY_PARAM_RSA_TEST_XP1 277 +#define PIDX_PKEY_PARAM_RSA_TEST_XP2 278 +#define PIDX_PKEY_PARAM_RSA_TEST_XQ 279 +#define PIDX_PKEY_PARAM_RSA_TEST_XQ1 280 +#define PIDX_PKEY_PARAM_RSA_TEST_XQ2 281 +#define PIDX_PKEY_PARAM_SECURITY_BITS 282 +#define PIDX_PKEY_PARAM_SLH_DSA_SEED 140 +#define PIDX_PKEY_PARAM_USE_COFACTOR_ECDH PIDX_PKEY_PARAM_USE_COFACTOR_FLAG +#define PIDX_PKEY_PARAM_USE_COFACTOR_FLAG 283 +#define PIDX_PROV_PARAM_BUILDINFO 284 +#define PIDX_PROV_PARAM_CORE_MODULE_FILENAME 285 +#define PIDX_PROV_PARAM_CORE_PROV_NAME 286 +#define PIDX_PROV_PARAM_CORE_VERSION 287 +#define PIDX_PROV_PARAM_DRBG_TRUNC_DIGEST 288 +#define PIDX_PROV_PARAM_DSA_SIGN_DISABLED 289 +#define PIDX_PROV_PARAM_ECDH_COFACTOR_CHECK 290 +#define PIDX_PROV_PARAM_HKDF_DIGEST_CHECK 291 +#define PIDX_PROV_PARAM_HKDF_KEY_CHECK 292 +#define PIDX_PROV_PARAM_HMAC_KEY_CHECK 293 +#define PIDX_PROV_PARAM_KBKDF_KEY_CHECK 294 +#define PIDX_PROV_PARAM_KMAC_KEY_CHECK 295 +#define PIDX_PROV_PARAM_NAME 296 +#define PIDX_PROV_PARAM_NO_SHORT_MAC 297 +#define PIDX_PROV_PARAM_PBKDF2_LOWER_BOUND_CHECK 298 +#define PIDX_PROV_PARAM_RSA_PKCS15_PAD_DISABLED 299 +#define PIDX_PROV_PARAM_RSA_PSS_SALTLEN_CHECK 300 +#define PIDX_PROV_PARAM_RSA_SIGN_X931_PAD_DISABLED 301 +#define PIDX_PROV_PARAM_SECURITY_CHECKS 302 +#define PIDX_PROV_PARAM_SELF_TEST_DESC 303 +#define PIDX_PROV_PARAM_SELF_TEST_PHASE 304 +#define PIDX_PROV_PARAM_SELF_TEST_TYPE 305 +#define PIDX_PROV_PARAM_SIGNATURE_DIGEST_CHECK 306 +#define PIDX_PROV_PARAM_SSHKDF_DIGEST_CHECK 307 +#define PIDX_PROV_PARAM_SSHKDF_KEY_CHECK 308 +#define PIDX_PROV_PARAM_SSKDF_DIGEST_CHECK 309 +#define PIDX_PROV_PARAM_SSKDF_KEY_CHECK 310 +#define PIDX_PROV_PARAM_STATUS 311 +#define PIDX_PROV_PARAM_TDES_ENCRYPT_DISABLED 312 +#define PIDX_PROV_PARAM_TLS13_KDF_DIGEST_CHECK 313 +#define PIDX_PROV_PARAM_TLS13_KDF_KEY_CHECK 314 +#define PIDX_PROV_PARAM_TLS1_PRF_DIGEST_CHECK 315 +#define PIDX_PROV_PARAM_TLS1_PRF_EMS_CHECK 316 +#define PIDX_PROV_PARAM_TLS1_PRF_KEY_CHECK 317 +#define PIDX_PROV_PARAM_VERSION 115 +#define PIDX_PROV_PARAM_X942KDF_KEY_CHECK 318 +#define PIDX_PROV_PARAM_X963KDF_DIGEST_CHECK 319 +#define PIDX_PROV_PARAM_X963KDF_KEY_CHECK 320 +#define PIDX_RAND_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_RAND_PARAM_GENERATE 321 +#define PIDX_RAND_PARAM_MAX_REQUEST 322 +#define PIDX_RAND_PARAM_STATE 323 +#define PIDX_RAND_PARAM_STRENGTH 324 +#define PIDX_RAND_PARAM_TEST_ENTROPY 325 +#define PIDX_RAND_PARAM_TEST_NONCE 326 +#define PIDX_SIGNATURE_PARAM_ADD_RANDOM 327 +#define PIDX_SIGNATURE_PARAM_ALGORITHM_ID PIDX_PKEY_PARAM_ALGORITHM_ID +#define PIDX_SIGNATURE_PARAM_ALGORITHM_ID_PARAMS PIDX_PKEY_PARAM_ALGORITHM_ID_PARAMS +#define PIDX_SIGNATURE_PARAM_CONTEXT_STRING 328 +#define PIDX_SIGNATURE_PARAM_DETERMINISTIC 329 +#define PIDX_SIGNATURE_PARAM_DIGEST PIDX_PKEY_PARAM_DIGEST +#define PIDX_SIGNATURE_PARAM_DIGEST_SIZE PIDX_PKEY_PARAM_DIGEST_SIZE +#define PIDX_SIGNATURE_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_SIGNATURE_PARAM_FIPS_DIGEST_CHECK PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK +#define PIDX_SIGNATURE_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_SIGNATURE_PARAM_FIPS_RSA_PSS_SALTLEN_CHECK 300 +#define PIDX_SIGNATURE_PARAM_FIPS_SIGN_CHECK PIDX_PKEY_PARAM_FIPS_SIGN_CHECK +#define PIDX_SIGNATURE_PARAM_FIPS_SIGN_X931_PAD_CHECK 330 +#define PIDX_SIGNATURE_PARAM_FIPS_VERIFY_MESSAGE 331 +#define PIDX_SIGNATURE_PARAM_INSTANCE 332 +#define PIDX_SIGNATURE_PARAM_KAT 333 +#define PIDX_SIGNATURE_PARAM_MESSAGE_ENCODING 334 +#define PIDX_SIGNATURE_PARAM_MGF1_DIGEST PIDX_PKEY_PARAM_MGF1_DIGEST +#define PIDX_SIGNATURE_PARAM_MGF1_PROPERTIES PIDX_PKEY_PARAM_MGF1_PROPERTIES +#define PIDX_SIGNATURE_PARAM_MU 335 +#define PIDX_SIGNATURE_PARAM_NONCE_TYPE 336 +#define PIDX_SIGNATURE_PARAM_PAD_MODE PIDX_PKEY_PARAM_PAD_MODE +#define PIDX_SIGNATURE_PARAM_PROPERTIES PIDX_PKEY_PARAM_PROPERTIES +#define PIDX_SIGNATURE_PARAM_PSS_SALTLEN 271 +#define PIDX_SIGNATURE_PARAM_SIGNATURE 337 +#define PIDX_SIGNATURE_PARAM_TEST_ENTROPY 338 +#define PIDX_SKEY_PARAM_KEY_LENGTH 339 +#define PIDX_SKEY_PARAM_RAW_BYTES 340 +#define PIDX_STORE_PARAM_ALIAS 341 +#define PIDX_STORE_PARAM_DIGEST 3 +#define PIDX_STORE_PARAM_EXPECT 342 +#define PIDX_STORE_PARAM_FINGERPRINT 343 +#define PIDX_STORE_PARAM_INPUT_TYPE 174 +#define PIDX_STORE_PARAM_ISSUER 296 +#define PIDX_STORE_PARAM_PROPERTIES 7 +#define PIDX_STORE_PARAM_SERIAL 344 +#define PIDX_STORE_PARAM_SUBJECT 345 diff --git a/deps/openssl/config/archs/BSD-x86/asm/include/openssl/asn1.h b/deps/openssl/config/archs/BSD-x86/asm/include/openssl/asn1.h index 21ff58e3d803d4..15e9e44674b0f3 100644 --- a/deps/openssl/config/archs/BSD-x86/asm/include/openssl/asn1.h +++ b/deps/openssl/config/archs/BSD-x86/asm/include/openssl/asn1.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/asn1.h.in * - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -21,6 +21,9 @@ # define HEADER_ASN1_H # endif +# ifndef OPENSSL_NO_STDIO +# include +# endif # include # include # include @@ -50,14 +53,14 @@ extern "C" { # define V_ASN1_PRIMITIVE_TAG 0x1f # define V_ASN1_PRIMATIVE_TAG /*compat*/ V_ASN1_PRIMITIVE_TAG -# define V_ASN1_APP_CHOOSE -2/* let the recipient choose */ -# define V_ASN1_OTHER -3/* used in ASN1_TYPE */ -# define V_ASN1_ANY -4/* used in ASN1 template code */ +# define V_ASN1_APP_CHOOSE -2 /* let the recipient choose */ +# define V_ASN1_OTHER -3 /* used in ASN1_TYPE */ +# define V_ASN1_ANY -4 /* used in ASN1 template code */ # define V_ASN1_UNDEF -1 /* ASN.1 tag values */ # define V_ASN1_EOC 0 -# define V_ASN1_BOOLEAN 1 /**/ +# define V_ASN1_BOOLEAN 1 # define V_ASN1_INTEGER 2 # define V_ASN1_BIT_STRING 3 # define V_ASN1_OCTET_STRING 4 @@ -70,19 +73,19 @@ extern "C" { # define V_ASN1_UTF8STRING 12 # define V_ASN1_SEQUENCE 16 # define V_ASN1_SET 17 -# define V_ASN1_NUMERICSTRING 18 /**/ +# define V_ASN1_NUMERICSTRING 18 # define V_ASN1_PRINTABLESTRING 19 # define V_ASN1_T61STRING 20 -# define V_ASN1_TELETEXSTRING 20/* alias */ -# define V_ASN1_VIDEOTEXSTRING 21 /**/ +# define V_ASN1_TELETEXSTRING 20 /* alias */ +# define V_ASN1_VIDEOTEXSTRING 21 # define V_ASN1_IA5STRING 22 # define V_ASN1_UTCTIME 23 -# define V_ASN1_GENERALIZEDTIME 24 /**/ -# define V_ASN1_GRAPHICSTRING 25 /**/ -# define V_ASN1_ISO64STRING 26 /**/ -# define V_ASN1_VISIBLESTRING 26/* alias */ -# define V_ASN1_GENERALSTRING 27 /**/ -# define V_ASN1_UNIVERSALSTRING 28 /**/ +# define V_ASN1_GENERALIZEDTIME 24 +# define V_ASN1_GRAPHICSTRING 25 +# define V_ASN1_ISO64STRING 26 +# define V_ASN1_VISIBLESTRING 26 /* alias */ +# define V_ASN1_GENERALSTRING 27 +# define V_ASN1_UNIVERSALSTRING 28 # define V_ASN1_BMPSTRING 30 /* @@ -155,7 +158,7 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_ALGOR, X509_ALGOR, X509_ALGOR) -# define ASN1_STRING_FLAG_BITS_LEFT 0x08/* Set if 0x07 has bits left value */ +# define ASN1_STRING_FLAG_BITS_LEFT 0x08 /* Set if 0x07 has bits left value */ /* * This indicates that the ASN1_STRING is not a real value but just a place * holder for the location where indefinite length constructed data should be @@ -275,7 +278,7 @@ typedef struct ASN1_TLC_st ASN1_TLC; /* This is just an opaque pointer */ typedef struct ASN1_VALUE_st ASN1_VALUE; -/* Declare ASN1 functions: the implement macro in in asn1t.h */ +/* Declare ASN1 functions: the implement macro is in asn1t.h */ /* * The mysterious 'extern' that's passed to some macros is innocuous, @@ -368,6 +371,7 @@ typedef struct ASN1_VALUE_st ASN1_VALUE; typedef void *d2i_of_void(void **, const unsigned char **, long); typedef int i2d_of_void(const void *, unsigned char **); +typedef int OSSL_i2d_of_void_ctx(const void *, unsigned char **, void *vctx); /*- * The following macros and typedefs allow an ASN1_ITEM @@ -996,6 +1000,8 @@ int ASN1_TYPE_get_int_octetstring(const ASN1_TYPE *a, long *num, unsigned char *data, int max_len); void *ASN1_item_unpack(const ASN1_STRING *oct, const ASN1_ITEM *it); +void *ASN1_item_unpack_ex(const ASN1_STRING *oct, const ASN1_ITEM *it, + OSSL_LIB_CTX *libctx, const char *propq); ASN1_STRING *ASN1_item_pack(void *obj, const ASN1_ITEM *it, ASN1_OCTET_STRING **oct); diff --git a/deps/openssl/config/archs/BSD-x86/asm/include/openssl/bio.h b/deps/openssl/config/archs/BSD-x86/asm/include/openssl/bio.h index f9aa74731c833c..e02f867beb0ec0 100644 --- a/deps/openssl/config/archs/BSD-x86/asm/include/openssl/bio.h +++ b/deps/openssl/config/archs/BSD-x86/asm/include/openssl/bio.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/bio.h.in * - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -67,8 +67,13 @@ extern "C" { # define BIO_TYPE_DGRAM_SCTP (24|BIO_TYPE_SOURCE_SINK|BIO_TYPE_DESCRIPTOR) # endif # define BIO_TYPE_CORE_TO_PROV (25|BIO_TYPE_SOURCE_SINK) +# define BIO_TYPE_DGRAM_PAIR (26|BIO_TYPE_SOURCE_SINK) +# define BIO_TYPE_DGRAM_MEM (27|BIO_TYPE_SOURCE_SINK) +/* Custom type starting index returned by BIO_get_new_index() */ #define BIO_TYPE_START 128 +/* Custom type maximum index that can be returned by BIO_get_new_index() */ +#define BIO_TYPE_MASK 0xFF /* * BIO_FILENAME_READ|BIO_CLOSE to open or close on free. @@ -171,6 +176,31 @@ extern "C" { # define BIO_CTRL_SET_INDENT 80 # define BIO_CTRL_GET_INDENT 81 +# define BIO_CTRL_DGRAM_GET_LOCAL_ADDR_CAP 82 +# define BIO_CTRL_DGRAM_GET_LOCAL_ADDR_ENABLE 83 +# define BIO_CTRL_DGRAM_SET_LOCAL_ADDR_ENABLE 84 +# define BIO_CTRL_DGRAM_GET_EFFECTIVE_CAPS 85 +# define BIO_CTRL_DGRAM_GET_CAPS 86 +# define BIO_CTRL_DGRAM_SET_CAPS 87 +# define BIO_CTRL_DGRAM_GET_NO_TRUNC 88 +# define BIO_CTRL_DGRAM_SET_NO_TRUNC 89 + +/* + * internal BIO: + * # define BIO_CTRL_SET_KTLS_TX_ZEROCOPY_SENDFILE 90 + */ + +# define BIO_CTRL_GET_RPOLL_DESCRIPTOR 91 +# define BIO_CTRL_GET_WPOLL_DESCRIPTOR 92 +# define BIO_CTRL_DGRAM_DETECT_PEER_ADDR 93 +# define BIO_CTRL_DGRAM_SET0_LOCAL_ADDR 94 + +# define BIO_DGRAM_CAP_NONE 0U +# define BIO_DGRAM_CAP_HANDLES_SRC_ADDR (1U << 0) +# define BIO_DGRAM_CAP_HANDLES_DST_ADDR (1U << 1) +# define BIO_DGRAM_CAP_PROVIDES_SRC_ADDR (1U << 2) +# define BIO_DGRAM_CAP_PROVIDES_DST_ADDR (1U << 3) + # ifndef OPENSSL_NO_KTLS # define BIO_get_ktls_send(b) \ (BIO_ctrl(b, BIO_CTRL_GET_KTLS_SEND, 0, NULL) > 0) @@ -208,7 +238,7 @@ extern "C" { # define BIO_FLAGS_NONCLEAR_RST 0x400 # define BIO_FLAGS_IN_EOF 0x800 -/* the BIO FLAGS values 0x1000 to 0x4000 are reserved for internal KTLS flags */ +/* the BIO FLAGS values 0x1000 to 0x8000 are reserved for internal KTLS flags */ typedef union bio_addr_st BIO_ADDR; typedef struct bio_addrinfo_st BIO_ADDRINFO; @@ -256,12 +286,14 @@ void BIO_clear_flags(BIO *b, int flags); # define BIO_RR_ACCEPT 0x03 /* These are passed by the BIO callback */ -# define BIO_CB_FREE 0x01 -# define BIO_CB_READ 0x02 -# define BIO_CB_WRITE 0x03 -# define BIO_CB_PUTS 0x04 -# define BIO_CB_GETS 0x05 -# define BIO_CB_CTRL 0x06 +# define BIO_CB_FREE 0x01 +# define BIO_CB_READ 0x02 +# define BIO_CB_WRITE 0x03 +# define BIO_CB_PUTS 0x04 +# define BIO_CB_GETS 0x05 +# define BIO_CB_CTRL 0x06 +# define BIO_CB_RECVMMSG 0x07 +# define BIO_CB_SENDMMSG 0x08 /* * The callback is called before and after the underling operation, The @@ -362,6 +394,36 @@ struct bio_dgram_sctp_prinfo { }; # endif +/* BIO_sendmmsg/BIO_recvmmsg-related definitions */ +typedef struct bio_msg_st { + void *data; + size_t data_len; + BIO_ADDR *peer, *local; + uint64_t flags; +} BIO_MSG; + +typedef struct bio_mmsg_cb_args_st { + BIO_MSG *msg; + size_t stride, num_msg; + uint64_t flags; + size_t *msgs_processed; +} BIO_MMSG_CB_ARGS; + +#define BIO_POLL_DESCRIPTOR_TYPE_NONE 0 +#define BIO_POLL_DESCRIPTOR_TYPE_SOCK_FD 1 +#define BIO_POLL_DESCRIPTOR_TYPE_SSL 2 +#define BIO_POLL_DESCRIPTOR_CUSTOM_START 8192 + +typedef struct bio_poll_descriptor_st { + uint32_t type; + union { + int fd; + void *custom; + uintptr_t custom_ui; + SSL *ssl; + } value; +} BIO_POLL_DESCRIPTOR; + /* * #define BIO_CONN_get_param_hostname BIO_ctrl */ @@ -428,10 +490,17 @@ struct bio_dgram_sctp_prinfo { # define BIO_C_SET_CONNECT_MODE 155 +# define BIO_C_SET_TFO 156 /* like BIO_C_SET_NBIO */ + +# define BIO_C_SET_SOCK_TYPE 157 +# define BIO_C_GET_SOCK_TYPE 158 +# define BIO_C_GET_DGRAM_BIO 159 + # define BIO_set_app_data(s,arg) BIO_set_ex_data(s,0,arg) # define BIO_get_app_data(s) BIO_get_ex_data(s,0) -# define BIO_set_nbio(b,n) BIO_ctrl(b,BIO_C_SET_NBIO,(n),NULL) +# define BIO_set_nbio(b,n) BIO_ctrl(b,BIO_C_SET_NBIO,(n),NULL) +# define BIO_set_tfo(b,n) BIO_ctrl(b,BIO_C_SET_TFO,(n),NULL) # ifndef OPENSSL_NO_SOCK /* IP families we support, for BIO_s_connect() and BIO_s_accept() */ @@ -452,7 +521,11 @@ struct bio_dgram_sctp_prinfo { # define BIO_get_conn_port(b) ((const char *)BIO_ptr_ctrl(b,BIO_C_GET_CONNECT,1)) # define BIO_get_conn_address(b) ((const BIO_ADDR *)BIO_ptr_ctrl(b,BIO_C_GET_CONNECT,2)) # define BIO_get_conn_ip_family(b) BIO_ctrl(b,BIO_C_GET_CONNECT,3,NULL) +# define BIO_get_conn_mode(b) BIO_ctrl(b,BIO_C_GET_CONNECT,4,NULL) # define BIO_set_conn_mode(b,n) BIO_ctrl(b,BIO_C_SET_CONNECT_MODE,(n),NULL) +# define BIO_set_sock_type(b,t) BIO_ctrl(b,BIO_C_SET_SOCK_TYPE,(t),NULL) +# define BIO_get_sock_type(b) BIO_ctrl(b,BIO_C_GET_SOCK_TYPE,0,NULL) +# define BIO_get0_dgram_bio(b, p) BIO_ctrl(b,BIO_C_GET_DGRAM_BIO,0,(void *)(BIO **)(p)) /* BIO_s_accept() */ # define BIO_set_accept_name(b,name) BIO_ctrl(b,BIO_C_SET_ACCEPT,0, \ @@ -469,6 +542,7 @@ struct bio_dgram_sctp_prinfo { (char *)(bio)) # define BIO_set_accept_ip_family(b,f) BIO_int_ctrl(b,BIO_C_SET_ACCEPT,4,f) # define BIO_get_accept_ip_family(b) BIO_ctrl(b,BIO_C_GET_ACCEPT,4,NULL) +# define BIO_set_tfo_accept(b,n) BIO_ctrl(b,BIO_C_SET_ACCEPT,5,(n)?(void *)"a":NULL) /* Aliases kept for backward compatibility */ # define BIO_BIND_NORMAL 0 @@ -596,8 +670,32 @@ int BIO_ctrl_reset_read_request(BIO *b); (int)BIO_ctrl(b, BIO_CTRL_DGRAM_GET_PEER, 0, (char *)(peer)) # define BIO_dgram_set_peer(b,peer) \ (int)BIO_ctrl(b, BIO_CTRL_DGRAM_SET_PEER, 0, (char *)(peer)) +# define BIO_dgram_detect_peer_addr(b,peer) \ + (int)BIO_ctrl(b, BIO_CTRL_DGRAM_DETECT_PEER_ADDR, 0, (char *)(peer)) # define BIO_dgram_get_mtu_overhead(b) \ (unsigned int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_MTU_OVERHEAD, 0, NULL) +# define BIO_dgram_get_local_addr_cap(b) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_LOCAL_ADDR_CAP, 0, NULL) +# define BIO_dgram_get_local_addr_enable(b, penable) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_LOCAL_ADDR_ENABLE, 0, (char *)(penable)) +# define BIO_dgram_set_local_addr_enable(b, enable) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET_LOCAL_ADDR_ENABLE, (enable), NULL) +# define BIO_dgram_get_effective_caps(b) \ + (uint32_t)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_EFFECTIVE_CAPS, 0, NULL) +# define BIO_dgram_get_caps(b) \ + (uint32_t)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_CAPS, 0, NULL) +# define BIO_dgram_set_caps(b, caps) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET_CAPS, (long)(caps), NULL) +# define BIO_dgram_get_no_trunc(b) \ + (unsigned int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_NO_TRUNC, 0, NULL) +# define BIO_dgram_set_no_trunc(b, enable) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET_NO_TRUNC, (enable), NULL) +# define BIO_dgram_get_mtu(b) \ + (unsigned int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_MTU, 0, NULL) +# define BIO_dgram_set_mtu(b, mtu) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET_MTU, (mtu), NULL) +# define BIO_dgram_set0_local_addr(b, addr) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET0_LOCAL_ADDR, 0, (addr)) /* ctrl macros for BIO_f_prefix */ # define BIO_set_prefix(b,p) BIO_ctrl((b), BIO_CTRL_SET_PREFIX, 0, (void *)(p)) @@ -640,10 +738,18 @@ void BIO_vfree(BIO *a); int BIO_up_ref(BIO *a); int BIO_read(BIO *b, void *data, int dlen); int BIO_read_ex(BIO *b, void *data, size_t dlen, size_t *readbytes); +__owur int BIO_recvmmsg(BIO *b, BIO_MSG *msg, + size_t stride, size_t num_msg, uint64_t flags, + size_t *msgs_processed); int BIO_gets(BIO *bp, char *buf, int size); int BIO_get_line(BIO *bio, char *buf, int size); int BIO_write(BIO *b, const void *data, int dlen); int BIO_write_ex(BIO *b, const void *data, size_t dlen, size_t *written); +__owur int BIO_sendmmsg(BIO *b, BIO_MSG *msg, + size_t stride, size_t num_msg, uint64_t flags, + size_t *msgs_processed); +__owur int BIO_get_rpoll_descriptor(BIO *b, BIO_POLL_DESCRIPTOR *desc); +__owur int BIO_get_wpoll_descriptor(BIO *b, BIO_POLL_DESCRIPTOR *desc); int BIO_puts(BIO *bp, const char *buf); int BIO_indent(BIO *b, int indent, int max); long BIO_ctrl(BIO *bp, int cmd, long larg, void *parg); @@ -667,6 +773,9 @@ int BIO_nwrite0(BIO *bio, char **buf); int BIO_nwrite(BIO *bio, char **buf, int num); const BIO_METHOD *BIO_s_mem(void); +# ifndef OPENSSL_NO_DGRAM +const BIO_METHOD *BIO_s_dgram_mem(void); +# endif const BIO_METHOD *BIO_s_secmem(void); BIO *BIO_new_mem_buf(const void *buf, int len); # ifndef OPENSSL_NO_SOCK @@ -686,6 +795,7 @@ const BIO_METHOD *BIO_f_nbio_test(void); const BIO_METHOD *BIO_f_prefix(void); const BIO_METHOD *BIO_s_core(void); # ifndef OPENSSL_NO_DGRAM +const BIO_METHOD *BIO_s_dgram_pair(void); const BIO_METHOD *BIO_s_datagram(void); int BIO_dgram_non_fatal_error(int error); BIO *BIO_new_dgram(int fd, int close_flag); @@ -704,6 +814,7 @@ int BIO_dgram_sctp_msg_waiting(BIO *b); # ifndef OPENSSL_NO_SOCK int BIO_sock_should_retry(int i); int BIO_sock_non_fatal_error(int error); +int BIO_err_is_non_fatal(unsigned int errcode); int BIO_socket_wait(int fd, int for_read, time_t max_time); # endif int BIO_wait(BIO *bio, time_t max_time, unsigned int nap_milliseconds); @@ -726,6 +837,8 @@ int BIO_hex_string(BIO *out, int indent, int width, const void *data, # ifndef OPENSSL_NO_SOCK BIO_ADDR *BIO_ADDR_new(void); +int BIO_ADDR_copy(BIO_ADDR *dst, const BIO_ADDR *src); +BIO_ADDR *BIO_ADDR_dup(const BIO_ADDR *ap); int BIO_ADDR_rawmake(BIO_ADDR *ap, int family, const void *where, size_t wherelen, unsigned short port); void BIO_ADDR_free(BIO_ADDR *); @@ -788,6 +901,7 @@ int BIO_sock_info(int sock, # define BIO_SOCK_KEEPALIVE 0x04 # define BIO_SOCK_NONBLOCK 0x08 # define BIO_SOCK_NODELAY 0x10 +# define BIO_SOCK_TFO 0x20 int BIO_socket(int domain, int socktype, int protocol, int options); int BIO_connect(int sock, const BIO_ADDR *addr, int options); @@ -805,6 +919,11 @@ BIO *BIO_new_fd(int fd, int close_flag); int BIO_new_bio_pair(BIO **bio1, size_t writebuf1, BIO **bio2, size_t writebuf2); +# ifndef OPENSSL_NO_DGRAM +int BIO_new_bio_dgram_pair(BIO **bio1, size_t writebuf1, + BIO **bio2, size_t writebuf2); +# endif + /* * If successful, returns 1 and in *bio1, *bio2 two BIO pair endpoints. * Otherwise returns 0 and sets *bio1 and *bio2 to NULL. Size 0 uses default @@ -849,38 +968,54 @@ ossl_bio__attr__((__format__(ossl_bio__printf__, 3, 0))); BIO_METHOD *BIO_meth_new(int type, const char *name); void BIO_meth_free(BIO_METHOD *biom); -int (*BIO_meth_get_write(const BIO_METHOD *biom)) (BIO *, const char *, int); -int (*BIO_meth_get_write_ex(const BIO_METHOD *biom)) (BIO *, const char *, size_t, - size_t *); int BIO_meth_set_write(BIO_METHOD *biom, int (*write) (BIO *, const char *, int)); int BIO_meth_set_write_ex(BIO_METHOD *biom, int (*bwrite) (BIO *, const char *, size_t, size_t *)); -int (*BIO_meth_get_read(const BIO_METHOD *biom)) (BIO *, char *, int); -int (*BIO_meth_get_read_ex(const BIO_METHOD *biom)) (BIO *, char *, size_t, size_t *); +int BIO_meth_set_sendmmsg(BIO_METHOD *biom, + int (*f) (BIO *, BIO_MSG *, size_t, size_t, + uint64_t, size_t *)); int BIO_meth_set_read(BIO_METHOD *biom, int (*read) (BIO *, char *, int)); int BIO_meth_set_read_ex(BIO_METHOD *biom, int (*bread) (BIO *, char *, size_t, size_t *)); -int (*BIO_meth_get_puts(const BIO_METHOD *biom)) (BIO *, const char *); +int BIO_meth_set_recvmmsg(BIO_METHOD *biom, + int (*f) (BIO *, BIO_MSG *, size_t, size_t, + uint64_t, size_t *)); int BIO_meth_set_puts(BIO_METHOD *biom, int (*puts) (BIO *, const char *)); -int (*BIO_meth_get_gets(const BIO_METHOD *biom)) (BIO *, char *, int); int BIO_meth_set_gets(BIO_METHOD *biom, int (*ossl_gets) (BIO *, char *, int)); -long (*BIO_meth_get_ctrl(const BIO_METHOD *biom)) (BIO *, int, long, void *); int BIO_meth_set_ctrl(BIO_METHOD *biom, long (*ctrl) (BIO *, int, long, void *)); -int (*BIO_meth_get_create(const BIO_METHOD *bion)) (BIO *); int BIO_meth_set_create(BIO_METHOD *biom, int (*create) (BIO *)); -int (*BIO_meth_get_destroy(const BIO_METHOD *biom)) (BIO *); int BIO_meth_set_destroy(BIO_METHOD *biom, int (*destroy) (BIO *)); -long (*BIO_meth_get_callback_ctrl(const BIO_METHOD *biom)) - (BIO *, int, BIO_info_cb *); int BIO_meth_set_callback_ctrl(BIO_METHOD *biom, long (*callback_ctrl) (BIO *, int, BIO_info_cb *)); - +# ifndef OPENSSL_NO_DEPRECATED_3_5 +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_write(const BIO_METHOD *biom)) (BIO *, const char *, + int); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_write_ex(const BIO_METHOD *biom)) (BIO *, const char *, + size_t, size_t *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_sendmmsg(const BIO_METHOD *biom))(BIO *, BIO_MSG *, + size_t, size_t, + uint64_t, size_t *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_read(const BIO_METHOD *biom)) (BIO *, char *, int); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_read_ex(const BIO_METHOD *biom)) (BIO *, char *, + size_t, size_t *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_recvmmsg(const BIO_METHOD *biom))(BIO *, BIO_MSG *, + size_t, size_t, + uint64_t, size_t *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_puts(const BIO_METHOD *biom)) (BIO *, const char *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_gets(const BIO_METHOD *biom)) (BIO *, char *, int); +OSSL_DEPRECATEDIN_3_5 long (*BIO_meth_get_ctrl(const BIO_METHOD *biom)) (BIO *, int, + long, void *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_create(const BIO_METHOD *bion)) (BIO *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_destroy(const BIO_METHOD *biom)) (BIO *); +OSSL_DEPRECATEDIN_3_5 long (*BIO_meth_get_callback_ctrl(const BIO_METHOD *biom)) (BIO *, int, + BIO_info_cb *); +# endif # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/BSD-x86/asm/include/openssl/cmp.h b/deps/openssl/config/archs/BSD-x86/asm/include/openssl/cmp.h index 49825570d8c303..05aed3029d594c 100644 --- a/deps/openssl/config/archs/BSD-x86/asm/include/openssl/cmp.h +++ b/deps/openssl/config/archs/BSD-x86/asm/include/openssl/cmp.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/cmp.h.in * - * Copyright 2007-2023 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2007-2024 The OpenSSL Project Authors. All Rights Reserved. * Copyright Nokia 2007-2019 * Copyright Siemens AG 2015-2019 * @@ -35,7 +35,9 @@ extern "C" { # endif -# define OSSL_CMP_PVNO 2 +# define OSSL_CMP_PVNO_2 2 +# define OSSL_CMP_PVNO_3 3 +# define OSSL_CMP_PVNO OSSL_CMP_PVNO_2 /* v2 is the default */ /*- * PKIFailureInfo ::= BIT STRING { @@ -137,7 +139,6 @@ extern "C" { # if OSSL_CMP_PKIFAILUREINFO_MAX_BIT_PATTERN > INT_MAX # error CMP_PKIFAILUREINFO_MAX bit pattern does not fit in type int # endif - typedef ASN1_BIT_STRING OSSL_CMP_PKIFAILUREINFO; # define OSSL_CMP_CTX_FAILINFO_badAlg (1 << 0) @@ -203,8 +204,8 @@ typedef ASN1_BIT_STRING OSSL_CMP_PKIFAILUREINFO; # define OSSL_CMP_PKISTATUS_revocationWarning 4 # define OSSL_CMP_PKISTATUS_revocationNotification 5 # define OSSL_CMP_PKISTATUS_keyUpdateWarning 6 - typedef ASN1_INTEGER OSSL_CMP_PKISTATUS; + DECLARE_ASN1_ITEM(OSSL_CMP_PKISTATUS) # define OSSL_CMP_CERTORENCCERT_CERTIFICATE 0 @@ -274,6 +275,46 @@ SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CMP_ITAV, OSSL_CMP_ITAV, OSSL_CMP_ITAV) #define sk_OSSL_CMP_ITAV_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_CMP_ITAV) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_CMP_ITAV_sk_type(sk), ossl_check_OSSL_CMP_ITAV_copyfunc_type(copyfunc), ossl_check_OSSL_CMP_ITAV_freefunc_type(freefunc))) #define sk_OSSL_CMP_ITAV_set_cmp_func(sk, cmp) ((sk_OSSL_CMP_ITAV_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CMP_ITAV_sk_type(sk), ossl_check_OSSL_CMP_ITAV_compfunc_type(cmp))) + +typedef struct ossl_cmp_crlstatus_st OSSL_CMP_CRLSTATUS; +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CMP_CRLSTATUS, OSSL_CMP_CRLSTATUS, OSSL_CMP_CRLSTATUS) +#define sk_OSSL_CMP_CRLSTATUS_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_value(sk, idx) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_value(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk), (idx))) +#define sk_OSSL_CMP_CRLSTATUS_new(cmp) ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_new(ossl_check_OSSL_CMP_CRLSTATUS_compfunc_type(cmp))) +#define sk_OSSL_CMP_CRLSTATUS_new_null() ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_new_null()) +#define sk_OSSL_CMP_CRLSTATUS_new_reserve(cmp, n) ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_CMP_CRLSTATUS_compfunc_type(cmp), (n))) +#define sk_OSSL_CMP_CRLSTATUS_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), (n)) +#define sk_OSSL_CMP_CRLSTATUS_free(sk) OPENSSL_sk_free(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_delete(sk, i) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_delete(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), (i))) +#define sk_OSSL_CMP_CRLSTATUS_delete_ptr(sk, ptr) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr))) +#define sk_OSSL_CMP_CRLSTATUS_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr)) +#define sk_OSSL_CMP_CRLSTATUS_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr)) +#define sk_OSSL_CMP_CRLSTATUS_pop(sk) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_pop(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk))) +#define sk_OSSL_CMP_CRLSTATUS_shift(sk) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_shift(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk))) +#define sk_OSSL_CMP_CRLSTATUS_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk),ossl_check_OSSL_CMP_CRLSTATUS_freefunc_type(freefunc)) +#define sk_OSSL_CMP_CRLSTATUS_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr), (idx)) +#define sk_OSSL_CMP_CRLSTATUS_set(sk, idx, ptr) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_set(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), (idx), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr))) +#define sk_OSSL_CMP_CRLSTATUS_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr)) +#define sk_OSSL_CMP_CRLSTATUS_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr)) +#define sk_OSSL_CMP_CRLSTATUS_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr), pnum) +#define sk_OSSL_CMP_CRLSTATUS_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_dup(sk) ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_dup(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk))) +#define sk_OSSL_CMP_CRLSTATUS_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_copyfunc_type(copyfunc), ossl_check_OSSL_CMP_CRLSTATUS_freefunc_type(freefunc))) +#define sk_OSSL_CMP_CRLSTATUS_set_cmp_func(sk, cmp) ((sk_OSSL_CMP_CRLSTATUS_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_compfunc_type(cmp))) + + +typedef OSSL_CRMF_ATTRIBUTETYPEANDVALUE OSSL_CMP_ATAV; +# define OSSL_CMP_ATAV_free OSSL_CRMF_ATTRIBUTETYPEANDVALUE_free +typedef STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) OSSL_CMP_ATAVS; +DECLARE_ASN1_FUNCTIONS(OSSL_CMP_ATAVS) +# define stack_st_OSSL_CMP_ATAV stack_st_OSSL_CRMF_ATTRIBUTETYPEANDVALUE +# define sk_OSSL_CMP_ATAV_num sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_num +# define sk_OSSL_CMP_ATAV_value sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_value +# define sk_OSSL_CMP_ATAV_push sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_push +# define sk_OSSL_CMP_ATAV_pop_free sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_pop_free + typedef struct ossl_cmp_revrepcontent_st OSSL_CMP_REVREPCONTENT; typedef struct ossl_cmp_pkisi_st OSSL_CMP_PKISI; DECLARE_ASN1_FUNCTIONS(OSSL_CMP_PKISI) @@ -375,21 +416,75 @@ void OSSL_CMP_ITAV_set0(OSSL_CMP_ITAV *itav, ASN1_OBJECT *type, ASN1_TYPE *value); ASN1_OBJECT *OSSL_CMP_ITAV_get0_type(const OSSL_CMP_ITAV *itav); ASN1_TYPE *OSSL_CMP_ITAV_get0_value(const OSSL_CMP_ITAV *itav); -int OSSL_CMP_ITAV_push0_stack_item(STACK_OF(OSSL_CMP_ITAV) **itav_sk_p, +int OSSL_CMP_ITAV_push0_stack_item(STACK_OF(OSSL_CMP_ITAV) **sk_p, OSSL_CMP_ITAV *itav); void OSSL_CMP_ITAV_free(OSSL_CMP_ITAV *itav); + +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new0_certProfile(STACK_OF(ASN1_UTF8STRING) + *certProfile); +int OSSL_CMP_ITAV_get0_certProfile(const OSSL_CMP_ITAV *itav, + STACK_OF(ASN1_UTF8STRING) **out); +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new_caCerts(const STACK_OF(X509) *caCerts); +int OSSL_CMP_ITAV_get0_caCerts(const OSSL_CMP_ITAV *itav, STACK_OF(X509) **out); + +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new_rootCaCert(const X509 *rootCaCert); +int OSSL_CMP_ITAV_get0_rootCaCert(const OSSL_CMP_ITAV *itav, X509 **out); +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new_rootCaKeyUpdate(const X509 *newWithNew, + const X509 *newWithOld, + const X509 *oldWithNew); +int OSSL_CMP_ITAV_get0_rootCaKeyUpdate(const OSSL_CMP_ITAV *itav, + X509 **newWithNew, + X509 **newWithOld, + X509 **oldWithNew); + +OSSL_CMP_CRLSTATUS *OSSL_CMP_CRLSTATUS_create(const X509_CRL *crl, + const X509 *cert, int only_DN); +OSSL_CMP_CRLSTATUS *OSSL_CMP_CRLSTATUS_new1(const DIST_POINT_NAME *dpn, + const GENERAL_NAMES *issuer, + const ASN1_TIME *thisUpdate); +int OSSL_CMP_CRLSTATUS_get0(const OSSL_CMP_CRLSTATUS *crlstatus, + DIST_POINT_NAME **dpn, GENERAL_NAMES **issuer, + ASN1_TIME **thisUpdate); +void OSSL_CMP_CRLSTATUS_free(OSSL_CMP_CRLSTATUS *crlstatus); +OSSL_CMP_ITAV +*OSSL_CMP_ITAV_new0_crlStatusList(STACK_OF(OSSL_CMP_CRLSTATUS) *crlStatusList); +int OSSL_CMP_ITAV_get0_crlStatusList(const OSSL_CMP_ITAV *itav, + STACK_OF(OSSL_CMP_CRLSTATUS) **out); +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new_crls(const X509_CRL *crls); +int OSSL_CMP_ITAV_get0_crls(const OSSL_CMP_ITAV *it, STACK_OF(X509_CRL) **out); +OSSL_CMP_ITAV +*OSSL_CMP_ITAV_new0_certReqTemplate(OSSL_CRMF_CERTTEMPLATE *certTemplate, + OSSL_CMP_ATAVS *keySpec); +int OSSL_CMP_ITAV_get1_certReqTemplate(const OSSL_CMP_ITAV *itav, + OSSL_CRMF_CERTTEMPLATE **certTemplate, + OSSL_CMP_ATAVS **keySpec); + +OSSL_CMP_ATAV *OSSL_CMP_ATAV_create(ASN1_OBJECT *type, ASN1_TYPE *value); +void OSSL_CMP_ATAV_set0(OSSL_CMP_ATAV *itav, ASN1_OBJECT *type, + ASN1_TYPE *value); +ASN1_OBJECT *OSSL_CMP_ATAV_get0_type(const OSSL_CMP_ATAV *itav); +ASN1_TYPE *OSSL_CMP_ATAV_get0_value(const OSSL_CMP_ATAV *itav); +OSSL_CMP_ATAV *OSSL_CMP_ATAV_new_algId(const X509_ALGOR *alg); +X509_ALGOR *OSSL_CMP_ATAV_get0_algId(const OSSL_CMP_ATAV *atav); +OSSL_CMP_ATAV *OSSL_CMP_ATAV_new_rsaKeyLen(int len); +int OSSL_CMP_ATAV_get_rsaKeyLen(const OSSL_CMP_ATAV *atav); +int OSSL_CMP_ATAV_push1(OSSL_CMP_ATAVS **sk_p, const OSSL_CMP_ATAV *atav); + void OSSL_CMP_MSG_free(OSSL_CMP_MSG *msg); /* from cmp_ctx.c */ OSSL_CMP_CTX *OSSL_CMP_CTX_new(OSSL_LIB_CTX *libctx, const char *propq); void OSSL_CMP_CTX_free(OSSL_CMP_CTX *ctx); int OSSL_CMP_CTX_reinit(OSSL_CMP_CTX *ctx); +OSSL_LIB_CTX *OSSL_CMP_CTX_get0_libctx(const OSSL_CMP_CTX *ctx); +const char *OSSL_CMP_CTX_get0_propq(const OSSL_CMP_CTX *ctx); /* CMP general options: */ # define OSSL_CMP_OPT_LOG_VERBOSITY 0 /* CMP transfer options: */ -# define OSSL_CMP_OPT_KEEP_ALIVE 10 -# define OSSL_CMP_OPT_MSG_TIMEOUT 11 +# define OSSL_CMP_OPT_KEEP_ALIVE 10 +# define OSSL_CMP_OPT_MSG_TIMEOUT 11 # define OSSL_CMP_OPT_TOTAL_TIMEOUT 12 +# define OSSL_CMP_OPT_USE_TLS 13 /* CMP request options: */ # define OSSL_CMP_OPT_VALIDITY_DAYS 20 # define OSSL_CMP_OPT_SUBJECTALTNAME_NODEFAULT 21 @@ -407,6 +502,7 @@ int OSSL_CMP_CTX_reinit(OSSL_CMP_CTX *ctx); # define OSSL_CMP_OPT_DIGEST_ALGNID 34 # define OSSL_CMP_OPT_IGNORE_KEYUSAGE 35 # define OSSL_CMP_OPT_PERMIT_TA_IN_EXTRACERTS_FOR_IR 36 +# define OSSL_CMP_OPT_NO_CACHE_EXTRACERTS 37 int OSSL_CMP_CTX_set_option(OSSL_CMP_CTX *ctx, int opt, int val); int OSSL_CMP_CTX_get_option(const OSSL_CMP_CTX *ctx, int opt); /* CMP-specific callback for logging and outputting the error queue: */ @@ -420,9 +516,11 @@ int OSSL_CMP_CTX_set1_server(OSSL_CMP_CTX *ctx, const char *address); int OSSL_CMP_CTX_set_serverPort(OSSL_CMP_CTX *ctx, int port); int OSSL_CMP_CTX_set1_proxy(OSSL_CMP_CTX *ctx, const char *name); int OSSL_CMP_CTX_set1_no_proxy(OSSL_CMP_CTX *ctx, const char *names); +# ifndef OPENSSL_NO_HTTP int OSSL_CMP_CTX_set_http_cb(OSSL_CMP_CTX *ctx, OSSL_HTTP_bio_cb_t cb); int OSSL_CMP_CTX_set_http_cb_arg(OSSL_CMP_CTX *ctx, void *arg); void *OSSL_CMP_CTX_get_http_cb_arg(const OSSL_CMP_CTX *ctx); +# endif typedef OSSL_CMP_MSG *(*OSSL_CMP_transfer_cb_t) (OSSL_CMP_CTX *ctx, const OSSL_CMP_MSG *req); int OSSL_CMP_CTX_set_transfer_cb(OSSL_CMP_CTX *ctx, OSSL_CMP_transfer_cb_t cb); @@ -432,7 +530,9 @@ void *OSSL_CMP_CTX_get_transfer_cb_arg(const OSSL_CMP_CTX *ctx); int OSSL_CMP_CTX_set1_srvCert(OSSL_CMP_CTX *ctx, X509 *cert); int OSSL_CMP_CTX_set1_expected_sender(OSSL_CMP_CTX *ctx, const X509_NAME *name); int OSSL_CMP_CTX_set0_trustedStore(OSSL_CMP_CTX *ctx, X509_STORE *store); +# define OSSL_CMP_CTX_set0_trusted OSSL_CMP_CTX_set0_trustedStore X509_STORE *OSSL_CMP_CTX_get0_trustedStore(const OSSL_CMP_CTX *ctx); +# define OSSL_CMP_CTX_get0_trusted OSSL_CMP_CTX_get0_trustedStore int OSSL_CMP_CTX_set1_untrusted(OSSL_CMP_CTX *ctx, STACK_OF(X509) *certs); STACK_OF(X509) *OSSL_CMP_CTX_get0_untrusted(const OSSL_CMP_CTX *ctx); /* client authentication: */ @@ -448,12 +548,15 @@ int OSSL_CMP_CTX_set1_secretValue(OSSL_CMP_CTX *ctx, int OSSL_CMP_CTX_set1_recipient(OSSL_CMP_CTX *ctx, const X509_NAME *name); int OSSL_CMP_CTX_push0_geninfo_ITAV(OSSL_CMP_CTX *ctx, OSSL_CMP_ITAV *itav); int OSSL_CMP_CTX_reset_geninfo_ITAVs(OSSL_CMP_CTX *ctx); +STACK_OF(OSSL_CMP_ITAV) + *OSSL_CMP_CTX_get0_geninfo_ITAVs(const OSSL_CMP_CTX *ctx); int OSSL_CMP_CTX_set1_extraCertsOut(OSSL_CMP_CTX *ctx, STACK_OF(X509) *extraCertsOut); /* certificate template: */ int OSSL_CMP_CTX_set0_newPkey(OSSL_CMP_CTX *ctx, int priv, EVP_PKEY *pkey); EVP_PKEY *OSSL_CMP_CTX_get0_newPkey(const OSSL_CMP_CTX *ctx, int priv); int OSSL_CMP_CTX_set1_issuer(OSSL_CMP_CTX *ctx, const X509_NAME *name); +int OSSL_CMP_CTX_set1_serialNumber(OSSL_CMP_CTX *ctx, const ASN1_INTEGER *sn); int OSSL_CMP_CTX_set1_subjectName(OSSL_CMP_CTX *ctx, const X509_NAME *name); int OSSL_CMP_CTX_push1_subjectAltName(OSSL_CMP_CTX *ctx, const GENERAL_NAME *name); @@ -477,6 +580,7 @@ int OSSL_CMP_CTX_get_status(const OSSL_CMP_CTX *ctx); OSSL_CMP_PKIFREETEXT *OSSL_CMP_CTX_get0_statusString(const OSSL_CMP_CTX *ctx); int OSSL_CMP_CTX_get_failInfoCode(const OSSL_CMP_CTX *ctx); # define OSSL_CMP_PKISI_BUFLEN 1024 +X509 *OSSL_CMP_CTX_get0_validatedSrvCert(const OSSL_CMP_CTX *ctx); X509 *OSSL_CMP_CTX_get0_newCert(const OSSL_CMP_CTX *ctx); STACK_OF(X509) *OSSL_CMP_CTX_get1_newChain(const OSSL_CMP_CTX *ctx); STACK_OF(X509) *OSSL_CMP_CTX_get1_caPubs(const OSSL_CMP_CTX *ctx); @@ -498,10 +602,13 @@ OSSL_CMP_STATUSINFO_new(int status, int fail_info, const char *text); ASN1_OCTET_STRING *OSSL_CMP_HDR_get0_transactionID(const OSSL_CMP_PKIHEADER *hdr); ASN1_OCTET_STRING *OSSL_CMP_HDR_get0_recipNonce(const OSSL_CMP_PKIHEADER *hdr); +STACK_OF(OSSL_CMP_ITAV) + *OSSL_CMP_HDR_get0_geninfo_ITAVs(const OSSL_CMP_PKIHEADER *hdr); /* from cmp_msg.c */ OSSL_CMP_PKIHEADER *OSSL_CMP_MSG_get0_header(const OSSL_CMP_MSG *msg); int OSSL_CMP_MSG_get_bodytype(const OSSL_CMP_MSG *msg); +X509_PUBKEY *OSSL_CMP_MSG_get0_certreq_publickey(const OSSL_CMP_MSG *msg); int OSSL_CMP_MSG_update_transactionID(OSSL_CMP_CTX *ctx, OSSL_CMP_MSG *msg); int OSSL_CMP_MSG_update_recipNonce(OSSL_CMP_CTX *ctx, OSSL_CMP_MSG *msg); OSSL_CRMF_MSG *OSSL_CMP_CTX_setup_CRM(OSSL_CMP_CTX *ctx, int for_KUR, int rid); @@ -517,8 +624,10 @@ int OSSL_CMP_validate_cert_path(const OSSL_CMP_CTX *ctx, X509_STORE *trusted_store, X509 *cert); /* from cmp_http.c */ +# ifndef OPENSSL_NO_HTTP OSSL_CMP_MSG *OSSL_CMP_MSG_http_perform(OSSL_CMP_CTX *ctx, const OSSL_CMP_MSG *req); +# endif /* from cmp_server.c */ typedef struct ossl_cmp_srv_ctx_st OSSL_CMP_SRV_CTX; @@ -561,6 +670,13 @@ int OSSL_CMP_SRV_CTX_init(OSSL_CMP_SRV_CTX *srv_ctx, void *custom_ctx, OSSL_CMP_SRV_error_cb_t process_error, OSSL_CMP_SRV_certConf_cb_t process_certConf, OSSL_CMP_SRV_pollReq_cb_t process_pollReq); +typedef int (*OSSL_CMP_SRV_delayed_delivery_cb_t)(OSSL_CMP_SRV_CTX *srv_ctx, + const OSSL_CMP_MSG *req); +typedef int (*OSSL_CMP_SRV_clean_transaction_cb_t)(OSSL_CMP_SRV_CTX *srv_ctx, + const ASN1_OCTET_STRING *id); +int OSSL_CMP_SRV_CTX_init_trans(OSSL_CMP_SRV_CTX *srv_ctx, + OSSL_CMP_SRV_delayed_delivery_cb_t delay, + OSSL_CMP_SRV_clean_transaction_cb_t clean); OSSL_CMP_CTX *OSSL_CMP_SRV_CTX_get0_cmp_ctx(const OSSL_CMP_SRV_CTX *srv_ctx); void *OSSL_CMP_SRV_CTX_get0_custom_ctx(const OSSL_CMP_SRV_CTX *srv_ctx); int OSSL_CMP_SRV_CTX_set_send_unprotected_errors(OSSL_CMP_SRV_CTX *srv_ctx, @@ -577,6 +693,8 @@ X509 *OSSL_CMP_exec_certreq(OSSL_CMP_CTX *ctx, int req_type, # define OSSL_CMP_CR 2 # define OSSL_CMP_P10CR 4 # define OSSL_CMP_KUR 7 +# define OSSL_CMP_GENM 21 +# define OSSL_CMP_ERROR 23 # define OSSL_CMP_exec_IR_ses(ctx) \ OSSL_CMP_exec_certreq(ctx, OSSL_CMP_IR, NULL) # define OSSL_CMP_exec_CR_ses(ctx) \ @@ -590,6 +708,18 @@ int OSSL_CMP_try_certreq(OSSL_CMP_CTX *ctx, int req_type, int OSSL_CMP_exec_RR_ses(OSSL_CMP_CTX *ctx); STACK_OF(OSSL_CMP_ITAV) *OSSL_CMP_exec_GENM_ses(OSSL_CMP_CTX *ctx); +/* from cmp_genm.c */ +int OSSL_CMP_get1_caCerts(OSSL_CMP_CTX *ctx, STACK_OF(X509) **out); +int OSSL_CMP_get1_rootCaKeyUpdate(OSSL_CMP_CTX *ctx, + const X509 *oldWithOld, X509 **newWithNew, + X509 **newWithOld, X509 **oldWithNew); +int OSSL_CMP_get1_crlUpdate(OSSL_CMP_CTX *ctx, const X509 *crlcert, + const X509_CRL *last_crl, + X509_CRL **crl); +int OSSL_CMP_get1_certReqTemplate(OSSL_CMP_CTX *ctx, + OSSL_CRMF_CERTTEMPLATE **certTemplate, + OSSL_CMP_ATAVS **keySpec); + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/BSD-x86/asm/include/openssl/cms.h b/deps/openssl/config/archs/BSD-x86/asm/include/openssl/cms.h index 3b453e6a2187a2..63afab563557b0 100644 --- a/deps/openssl/config/archs/BSD-x86/asm/include/openssl/cms.h +++ b/deps/openssl/config/archs/BSD-x86/asm/include/openssl/cms.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/cms.h.in * - * Copyright 2008-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2008-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -31,8 +31,10 @@ extern "C" { # endif +typedef struct CMS_EnvelopedData_st CMS_EnvelopedData; typedef struct CMS_ContentInfo_st CMS_ContentInfo; typedef struct CMS_SignerInfo_st CMS_SignerInfo; +typedef struct CMS_SignedData_st CMS_SignedData; typedef struct CMS_CertificateChoices CMS_CertificateChoices; typedef struct CMS_RevocationInfoChoice_st CMS_RevocationInfoChoice; typedef struct CMS_RecipientInfo_st CMS_RecipientInfo; @@ -147,10 +149,14 @@ SKM_DEFINE_STACK_OF_INTERNAL(CMS_RevocationInfoChoice, CMS_RevocationInfoChoice, #define sk_CMS_RevocationInfoChoice_set_cmp_func(sk, cmp) ((sk_CMS_RevocationInfoChoice_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_CMS_RevocationInfoChoice_sk_type(sk), ossl_check_CMS_RevocationInfoChoice_compfunc_type(cmp))) +DECLARE_ASN1_ITEM(CMS_EnvelopedData) +DECLARE_ASN1_ALLOC_FUNCTIONS(CMS_SignedData) DECLARE_ASN1_FUNCTIONS(CMS_ContentInfo) DECLARE_ASN1_FUNCTIONS(CMS_ReceiptRequest) DECLARE_ASN1_PRINT_FUNCTION(CMS_ContentInfo) +DECLARE_ASN1_DUP_FUNCTION(CMS_EnvelopedData) + CMS_ContentInfo *CMS_ContentInfo_new_ex(OSSL_LIB_CTX *libctx, const char *propq); # define CMS_SIGNERINFO_ISSUER_SERIAL 0 @@ -190,6 +196,7 @@ CMS_ContentInfo *CMS_ContentInfo_new_ex(OSSL_LIB_CTX *libctx, const char *propq) # define CMS_ASCIICRLF 0x80000 # define CMS_CADES 0x100000 # define CMS_USE_ORIGINATOR_KEYID 0x200000 +# define CMS_NO_SIGNING_TIME 0x400000 const ASN1_OBJECT *CMS_get0_type(const CMS_ContentInfo *cms); @@ -217,13 +224,16 @@ int SMIME_write_CMS(BIO *bio, CMS_ContentInfo *cms, BIO *data, int flags); int CMS_final(CMS_ContentInfo *cms, BIO *data, BIO *dcont, unsigned int flags); +int CMS_final_digest(CMS_ContentInfo *cms, + const unsigned char *md, unsigned int mdlen, BIO *dcont, + unsigned int flags); CMS_ContentInfo *CMS_sign(X509 *signcert, EVP_PKEY *pkey, STACK_OF(X509) *certs, BIO *data, unsigned int flags); CMS_ContentInfo *CMS_sign_ex(X509 *signcert, EVP_PKEY *pkey, STACK_OF(X509) *certs, BIO *data, - unsigned int flags, OSSL_LIB_CTX *ctx, + unsigned int flags, OSSL_LIB_CTX *libctx, const char *propq); CMS_ContentInfo *CMS_sign_receipt(CMS_SignerInfo *si, @@ -233,27 +243,26 @@ CMS_ContentInfo *CMS_sign_receipt(CMS_SignerInfo *si, int CMS_data(CMS_ContentInfo *cms, BIO *out, unsigned int flags); CMS_ContentInfo *CMS_data_create(BIO *in, unsigned int flags); CMS_ContentInfo *CMS_data_create_ex(BIO *in, unsigned int flags, - OSSL_LIB_CTX *ctx, const char *propq); + OSSL_LIB_CTX *libctx, const char *propq); int CMS_digest_verify(CMS_ContentInfo *cms, BIO *dcont, BIO *out, unsigned int flags); CMS_ContentInfo *CMS_digest_create(BIO *in, const EVP_MD *md, unsigned int flags); CMS_ContentInfo *CMS_digest_create_ex(BIO *in, const EVP_MD *md, - unsigned int flags, OSSL_LIB_CTX *ctx, + unsigned int flags, OSSL_LIB_CTX *libctx, const char *propq); int CMS_EncryptedData_decrypt(CMS_ContentInfo *cms, const unsigned char *key, size_t keylen, BIO *dcont, BIO *out, unsigned int flags); - CMS_ContentInfo *CMS_EncryptedData_encrypt(BIO *in, const EVP_CIPHER *cipher, const unsigned char *key, size_t keylen, unsigned int flags); CMS_ContentInfo *CMS_EncryptedData_encrypt_ex(BIO *in, const EVP_CIPHER *cipher, const unsigned char *key, size_t keylen, unsigned int flags, - OSSL_LIB_CTX *ctx, + OSSL_LIB_CTX *libctx, const char *propq); int CMS_EncryptedData_set1_key(CMS_ContentInfo *cms, const EVP_CIPHER *ciph, @@ -272,7 +281,7 @@ CMS_ContentInfo *CMS_encrypt(STACK_OF(X509) *certs, BIO *in, const EVP_CIPHER *cipher, unsigned int flags); CMS_ContentInfo *CMS_encrypt_ex(STACK_OF(X509) *certs, BIO *in, const EVP_CIPHER *cipher, unsigned int flags, - OSSL_LIB_CTX *ctx, const char *propq); + OSSL_LIB_CTX *libctx, const char *propq); int CMS_decrypt(CMS_ContentInfo *cms, EVP_PKEY *pkey, X509 *cert, BIO *dcont, BIO *out, unsigned int flags); @@ -291,12 +300,16 @@ int CMS_RecipientInfo_type(CMS_RecipientInfo *ri); EVP_PKEY_CTX *CMS_RecipientInfo_get0_pkey_ctx(CMS_RecipientInfo *ri); CMS_ContentInfo *CMS_AuthEnvelopedData_create(const EVP_CIPHER *cipher); CMS_ContentInfo * -CMS_AuthEnvelopedData_create_ex(const EVP_CIPHER *cipher, OSSL_LIB_CTX *ctx, +CMS_AuthEnvelopedData_create_ex(const EVP_CIPHER *cipher, OSSL_LIB_CTX *libctx, const char *propq); CMS_ContentInfo *CMS_EnvelopedData_create(const EVP_CIPHER *cipher); CMS_ContentInfo *CMS_EnvelopedData_create_ex(const EVP_CIPHER *cipher, - OSSL_LIB_CTX *ctx, + OSSL_LIB_CTX *libctx, const char *propq); +BIO *CMS_EnvelopedData_decrypt(CMS_EnvelopedData *env, BIO *detached_data, + EVP_PKEY *pkey, X509 *cert, + ASN1_OCTET_STRING *secret, unsigned int flags, + OSSL_LIB_CTX *libctx, const char *propq); CMS_RecipientInfo *CMS_add1_recipient_cert(CMS_ContentInfo *cms, X509 *recip, unsigned int flags); @@ -385,6 +398,11 @@ ASN1_OCTET_STRING *CMS_SignerInfo_get0_signature(CMS_SignerInfo *si); int CMS_SignerInfo_sign(CMS_SignerInfo *si); int CMS_SignerInfo_verify(CMS_SignerInfo *si); int CMS_SignerInfo_verify_content(CMS_SignerInfo *si, BIO *chain); +BIO *CMS_SignedData_verify(CMS_SignedData *sd, BIO *detached_data, + STACK_OF(X509) *scerts, X509_STORE *store, + STACK_OF(X509) *extra, STACK_OF(X509_CRL) *crls, + unsigned int flags, + OSSL_LIB_CTX *libctx, const char *propq); int CMS_add_smimecap(CMS_SignerInfo *si, STACK_OF(X509_ALGOR) *algs); int CMS_add_simple_smimecap(STACK_OF(X509_ALGOR) **algs, @@ -441,7 +459,7 @@ CMS_ReceiptRequest *CMS_ReceiptRequest_create0_ex( unsigned char *id, int idlen, int allorfirst, STACK_OF(GENERAL_NAMES) *receiptList, STACK_OF(GENERAL_NAMES) *receiptsTo, - OSSL_LIB_CTX *ctx); + OSSL_LIB_CTX *libctx); int CMS_add1_ReceiptRequest(CMS_SignerInfo *si, CMS_ReceiptRequest *rr); void CMS_ReceiptRequest_get0_values(CMS_ReceiptRequest *rr, diff --git a/deps/openssl/config/archs/BSD-x86/asm/include/openssl/comp.h b/deps/openssl/config/archs/BSD-x86/asm/include/openssl/comp.h new file mode 100644 index 00000000000000..90e39511fe8d28 --- /dev/null +++ b/deps/openssl/config/archs/BSD-x86/asm/include/openssl/comp.h @@ -0,0 +1,98 @@ +/* + * Copyright 2015-2024 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + + +#ifndef OPENSSL_COMP_H +# define OPENSSL_COMP_H +# pragma once + +# include +# ifndef OPENSSL_NO_DEPRECATED_3_0 +# define HEADER_COMP_H +# endif + +# include + +# include +# include +# ifdef __cplusplus +extern "C" { +# endif + + + +# ifndef OPENSSL_NO_COMP + +COMP_CTX *COMP_CTX_new(COMP_METHOD *meth); +const COMP_METHOD *COMP_CTX_get_method(const COMP_CTX *ctx); +int COMP_CTX_get_type(const COMP_CTX* comp); +int COMP_get_type(const COMP_METHOD *meth); +const char *COMP_get_name(const COMP_METHOD *meth); +void COMP_CTX_free(COMP_CTX *ctx); + +int COMP_compress_block(COMP_CTX *ctx, unsigned char *out, int olen, + unsigned char *in, int ilen); +int COMP_expand_block(COMP_CTX *ctx, unsigned char *out, int olen, + unsigned char *in, int ilen); + +COMP_METHOD *COMP_zlib(void); +COMP_METHOD *COMP_zlib_oneshot(void); +COMP_METHOD *COMP_brotli(void); +COMP_METHOD *COMP_brotli_oneshot(void); +COMP_METHOD *COMP_zstd(void); +COMP_METHOD *COMP_zstd_oneshot(void); + +# ifndef OPENSSL_NO_DEPRECATED_1_1_0 +# define COMP_zlib_cleanup() while(0) continue +# endif + +# ifdef OPENSSL_BIO_H +const BIO_METHOD *BIO_f_zlib(void); +const BIO_METHOD *BIO_f_brotli(void); +const BIO_METHOD *BIO_f_zstd(void); +# endif + +# endif + +typedef struct ssl_comp_st SSL_COMP; + +SKM_DEFINE_STACK_OF_INTERNAL(SSL_COMP, SSL_COMP, SSL_COMP) +#define sk_SSL_COMP_num(sk) OPENSSL_sk_num(ossl_check_const_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_value(sk, idx) ((SSL_COMP *)OPENSSL_sk_value(ossl_check_const_SSL_COMP_sk_type(sk), (idx))) +#define sk_SSL_COMP_new(cmp) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new(ossl_check_SSL_COMP_compfunc_type(cmp))) +#define sk_SSL_COMP_new_null() ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new_null()) +#define sk_SSL_COMP_new_reserve(cmp, n) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new_reserve(ossl_check_SSL_COMP_compfunc_type(cmp), (n))) +#define sk_SSL_COMP_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_SSL_COMP_sk_type(sk), (n)) +#define sk_SSL_COMP_free(sk) OPENSSL_sk_free(ossl_check_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_zero(sk) OPENSSL_sk_zero(ossl_check_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_delete(sk, i) ((SSL_COMP *)OPENSSL_sk_delete(ossl_check_SSL_COMP_sk_type(sk), (i))) +#define sk_SSL_COMP_delete_ptr(sk, ptr) ((SSL_COMP *)OPENSSL_sk_delete_ptr(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr))) +#define sk_SSL_COMP_push(sk, ptr) OPENSSL_sk_push(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) +#define sk_SSL_COMP_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) +#define sk_SSL_COMP_pop(sk) ((SSL_COMP *)OPENSSL_sk_pop(ossl_check_SSL_COMP_sk_type(sk))) +#define sk_SSL_COMP_shift(sk) ((SSL_COMP *)OPENSSL_sk_shift(ossl_check_SSL_COMP_sk_type(sk))) +#define sk_SSL_COMP_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_SSL_COMP_sk_type(sk),ossl_check_SSL_COMP_freefunc_type(freefunc)) +#define sk_SSL_COMP_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr), (idx)) +#define sk_SSL_COMP_set(sk, idx, ptr) ((SSL_COMP *)OPENSSL_sk_set(ossl_check_SSL_COMP_sk_type(sk), (idx), ossl_check_SSL_COMP_type(ptr))) +#define sk_SSL_COMP_find(sk, ptr) OPENSSL_sk_find(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) +#define sk_SSL_COMP_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) +#define sk_SSL_COMP_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr), pnum) +#define sk_SSL_COMP_sort(sk) OPENSSL_sk_sort(ossl_check_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_dup(sk) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_dup(ossl_check_const_SSL_COMP_sk_type(sk))) +#define sk_SSL_COMP_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_deep_copy(ossl_check_const_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_copyfunc_type(copyfunc), ossl_check_SSL_COMP_freefunc_type(freefunc))) +#define sk_SSL_COMP_set_cmp_func(sk, cmp) ((sk_SSL_COMP_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_compfunc_type(cmp))) + + + +# ifdef __cplusplus +} +# endif +#endif diff --git a/deps/openssl/config/archs/BSD-x86/asm/include/openssl/conf.h b/deps/openssl/config/archs/BSD-x86/asm/include/openssl/conf.h index 44989929f6c84a..38576290bf641b 100644 --- a/deps/openssl/config/archs/BSD-x86/asm/include/openssl/conf.h +++ b/deps/openssl/config/archs/BSD-x86/asm/include/openssl/conf.h @@ -27,6 +27,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -65,7 +68,7 @@ SKM_DEFINE_STACK_OF_INTERNAL(CONF_VALUE, CONF_VALUE, CONF_VALUE) #define sk_CONF_VALUE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(CONF_VALUE) *)OPENSSL_sk_deep_copy(ossl_check_const_CONF_VALUE_sk_type(sk), ossl_check_CONF_VALUE_copyfunc_type(copyfunc), ossl_check_CONF_VALUE_freefunc_type(freefunc))) #define sk_CONF_VALUE_set_cmp_func(sk, cmp) ((sk_CONF_VALUE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_CONF_VALUE_sk_type(sk), ossl_check_CONF_VALUE_compfunc_type(cmp))) DEFINE_LHASH_OF_INTERNAL(CONF_VALUE); -#define lh_CONF_VALUE_new(hfn, cmp) ((LHASH_OF(CONF_VALUE) *)OPENSSL_LH_new(ossl_check_CONF_VALUE_lh_hashfunc_type(hfn), ossl_check_CONF_VALUE_lh_compfunc_type(cmp))) +#define lh_CONF_VALUE_new(hfn, cmp) ((LHASH_OF(CONF_VALUE) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new(ossl_check_CONF_VALUE_lh_hashfunc_type(hfn), ossl_check_CONF_VALUE_lh_compfunc_type(cmp)), lh_CONF_VALUE_hash_thunk, lh_CONF_VALUE_comp_thunk, lh_CONF_VALUE_doall_thunk, lh_CONF_VALUE_doall_arg_thunk)) #define lh_CONF_VALUE_free(lh) OPENSSL_LH_free(ossl_check_CONF_VALUE_lh_type(lh)) #define lh_CONF_VALUE_flush(lh) OPENSSL_LH_flush(ossl_check_CONF_VALUE_lh_type(lh)) #define lh_CONF_VALUE_insert(lh, ptr) ((CONF_VALUE *)OPENSSL_LH_insert(ossl_check_CONF_VALUE_lh_type(lh), ossl_check_CONF_VALUE_lh_plain_type(ptr))) diff --git a/deps/openssl/config/archs/BSD-x86/asm/include/openssl/configuration.h b/deps/openssl/config/archs/BSD-x86/asm/include/openssl/configuration.h index 5ef293f853fae2..e81c58e297e557 100644 --- a/deps/openssl/config/archs/BSD-x86/asm/include/openssl/configuration.h +++ b/deps/openssl/config/archs/BSD-x86/asm/include/openssl/configuration.h @@ -27,7 +27,7 @@ extern "C" { * OpenSSL was configured with the following options: */ -# define OPENSSL_CONFIGURED_API 30000 +# define OPENSSL_CONFIGURED_API 30500 # ifndef OPENSSL_RAND_SEED_OS # define OPENSSL_RAND_SEED_OS # endif @@ -40,6 +40,12 @@ extern "C" { # ifndef OPENSSL_NO_ASAN # define OPENSSL_NO_ASAN # endif +# ifndef OPENSSL_NO_BROTLI +# define OPENSSL_NO_BROTLI +# endif +# ifndef OPENSSL_NO_BROTLI_DYNAMIC +# define OPENSSL_NO_BROTLI_DYNAMIC +# endif # ifndef OPENSSL_NO_COMP # define OPENSSL_NO_COMP # endif @@ -49,6 +55,9 @@ extern "C" { # ifndef OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE # define OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE # endif +# ifndef OPENSSL_NO_DEMOS +# define OPENSSL_NO_DEMOS +# endif # ifndef OPENSSL_NO_EC_NISTP_64_GCC_128 # define OPENSSL_NO_EC_NISTP_64_GCC_128 # endif @@ -58,12 +67,24 @@ extern "C" { # ifndef OPENSSL_NO_EXTERNAL_TESTS # define OPENSSL_NO_EXTERNAL_TESTS # endif +# ifndef OPENSSL_NO_FIPS_JITTER +# define OPENSSL_NO_FIPS_JITTER +# endif # ifndef OPENSSL_NO_FUZZ_AFL # define OPENSSL_NO_FUZZ_AFL # endif # ifndef OPENSSL_NO_FUZZ_LIBFUZZER # define OPENSSL_NO_FUZZ_LIBFUZZER # endif +# ifndef OPENSSL_NO_H3DEMO +# define OPENSSL_NO_H3DEMO +# endif +# ifndef OPENSSL_NO_HQINTEROP +# define OPENSSL_NO_HQINTEROP +# endif +# ifndef OPENSSL_NO_JITTER +# define OPENSSL_NO_JITTER +# endif # ifndef OPENSSL_NO_KTLS # define OPENSSL_NO_KTLS # endif @@ -76,6 +97,9 @@ extern "C" { # ifndef OPENSSL_NO_MSAN # define OPENSSL_NO_MSAN # endif +# ifndef OPENSSL_NO_PIE +# define OPENSSL_NO_PIE +# endif # ifndef OPENSSL_NO_RC5 # define OPENSSL_NO_RC5 # endif @@ -88,6 +112,12 @@ extern "C" { # ifndef OPENSSL_NO_SSL3_METHOD # define OPENSSL_NO_SSL3_METHOD # endif +# ifndef OPENSSL_NO_SSLKEYLOG +# define OPENSSL_NO_SSLKEYLOG +# endif +# ifndef OPENSSL_NO_TFO +# define OPENSSL_NO_TFO +# endif # ifndef OPENSSL_NO_TRACE # define OPENSSL_NO_TRACE # endif @@ -103,6 +133,21 @@ extern "C" { # ifndef OPENSSL_NO_WEAK_SSL_CIPHERS # define OPENSSL_NO_WEAK_SSL_CIPHERS # endif +# ifndef OPENSSL_NO_WINSTORE +# define OPENSSL_NO_WINSTORE +# endif +# ifndef OPENSSL_NO_ZLIB +# define OPENSSL_NO_ZLIB +# endif +# ifndef OPENSSL_NO_ZLIB_DYNAMIC +# define OPENSSL_NO_ZLIB_DYNAMIC +# endif +# ifndef OPENSSL_NO_ZSTD +# define OPENSSL_NO_ZSTD +# endif +# ifndef OPENSSL_NO_ZSTD_DYNAMIC +# define OPENSSL_NO_ZSTD_DYNAMIC +# endif # ifndef OPENSSL_NO_DYNAMIC_ENGINE # define OPENSSL_NO_DYNAMIC_ENGINE # endif @@ -124,6 +169,12 @@ extern "C" { # define RC4_INT unsigned int +# if defined(OPENSSL_NO_COMP) || (defined(OPENSSL_NO_BROTLI) && defined(OPENSSL_NO_ZSTD) && defined(OPENSSL_NO_ZLIB)) +# define OPENSSL_NO_COMP_ALG +# else +# undef OPENSSL_NO_COMP_ALG +# endif + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/BSD-x86/asm/include/openssl/core_names.h b/deps/openssl/config/archs/BSD-x86/asm/include/openssl/core_names.h new file mode 100644 index 00000000000000..e93e79a52bc910 --- /dev/null +++ b/deps/openssl/config/archs/BSD-x86/asm/include/openssl/core_names.h @@ -0,0 +1,575 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from include/openssl/core_names.h.in + * + * Copyright 2019-2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + +#ifndef OPENSSL_CORE_NAMES_H +# define OPENSSL_CORE_NAMES_H +# pragma once + +# ifdef __cplusplus +extern "C" { +# endif + +/* OSSL_CIPHER_PARAM_CTS_MODE Values */ +# define OSSL_CIPHER_CTS_MODE_CS1 "CS1" +# define OSSL_CIPHER_CTS_MODE_CS2 "CS2" +# define OSSL_CIPHER_CTS_MODE_CS3 "CS3" + +/* Known CIPHER names (not a complete list) */ +# define OSSL_CIPHER_NAME_AES_128_GCM_SIV "AES-128-GCM-SIV" +# define OSSL_CIPHER_NAME_AES_192_GCM_SIV "AES-192-GCM-SIV" +# define OSSL_CIPHER_NAME_AES_256_GCM_SIV "AES-256-GCM-SIV" + +/* Known DIGEST names (not a complete list) */ +# define OSSL_DIGEST_NAME_MD5 "MD5" +# define OSSL_DIGEST_NAME_MD5_SHA1 "MD5-SHA1" +# define OSSL_DIGEST_NAME_SHA1 "SHA1" +# define OSSL_DIGEST_NAME_SHA2_224 "SHA2-224" +# define OSSL_DIGEST_NAME_SHA2_256 "SHA2-256" +# define OSSL_DIGEST_NAME_SHA2_256_192 "SHA2-256/192" +# define OSSL_DIGEST_NAME_SHA2_384 "SHA2-384" +# define OSSL_DIGEST_NAME_SHA2_512 "SHA2-512" +# define OSSL_DIGEST_NAME_SHA2_512_224 "SHA2-512/224" +# define OSSL_DIGEST_NAME_SHA2_512_256 "SHA2-512/256" +# define OSSL_DIGEST_NAME_MD2 "MD2" +# define OSSL_DIGEST_NAME_MD4 "MD4" +# define OSSL_DIGEST_NAME_MDC2 "MDC2" +# define OSSL_DIGEST_NAME_RIPEMD160 "RIPEMD160" +# define OSSL_DIGEST_NAME_SHA3_224 "SHA3-224" +# define OSSL_DIGEST_NAME_SHA3_256 "SHA3-256" +# define OSSL_DIGEST_NAME_SHA3_384 "SHA3-384" +# define OSSL_DIGEST_NAME_SHA3_512 "SHA3-512" +# define OSSL_DIGEST_NAME_KECCAK_KMAC128 "KECCAK-KMAC-128" +# define OSSL_DIGEST_NAME_KECCAK_KMAC256 "KECCAK-KMAC-256" +# define OSSL_DIGEST_NAME_SM3 "SM3" + +/* Known MAC names */ +# define OSSL_MAC_NAME_BLAKE2BMAC "BLAKE2BMAC" +# define OSSL_MAC_NAME_BLAKE2SMAC "BLAKE2SMAC" +# define OSSL_MAC_NAME_CMAC "CMAC" +# define OSSL_MAC_NAME_GMAC "GMAC" +# define OSSL_MAC_NAME_HMAC "HMAC" +# define OSSL_MAC_NAME_KMAC128 "KMAC128" +# define OSSL_MAC_NAME_KMAC256 "KMAC256" +# define OSSL_MAC_NAME_POLY1305 "POLY1305" +# define OSSL_MAC_NAME_SIPHASH "SIPHASH" + +/* Known KDF names */ +# define OSSL_KDF_NAME_HKDF "HKDF" +# define OSSL_KDF_NAME_TLS1_3_KDF "TLS13-KDF" +# define OSSL_KDF_NAME_PBKDF1 "PBKDF1" +# define OSSL_KDF_NAME_PBKDF2 "PBKDF2" +# define OSSL_KDF_NAME_SCRYPT "SCRYPT" +# define OSSL_KDF_NAME_SSHKDF "SSHKDF" +# define OSSL_KDF_NAME_SSKDF "SSKDF" +# define OSSL_KDF_NAME_TLS1_PRF "TLS1-PRF" +# define OSSL_KDF_NAME_X942KDF_ASN1 "X942KDF-ASN1" +# define OSSL_KDF_NAME_X942KDF_CONCAT "X942KDF-CONCAT" +# define OSSL_KDF_NAME_X963KDF "X963KDF" +# define OSSL_KDF_NAME_KBKDF "KBKDF" +# define OSSL_KDF_NAME_KRB5KDF "KRB5KDF" +# define OSSL_KDF_NAME_HMACDRBGKDF "HMAC-DRBG-KDF" + +/* RSA padding modes */ +# define OSSL_PKEY_RSA_PAD_MODE_NONE "none" +# define OSSL_PKEY_RSA_PAD_MODE_PKCSV15 "pkcs1" +# define OSSL_PKEY_RSA_PAD_MODE_OAEP "oaep" +# define OSSL_PKEY_RSA_PAD_MODE_X931 "x931" +# define OSSL_PKEY_RSA_PAD_MODE_PSS "pss" + +/* RSA pss padding salt length */ +# define OSSL_PKEY_RSA_PSS_SALT_LEN_DIGEST "digest" +# define OSSL_PKEY_RSA_PSS_SALT_LEN_MAX "max" +# define OSSL_PKEY_RSA_PSS_SALT_LEN_AUTO "auto" +# define OSSL_PKEY_RSA_PSS_SALT_LEN_AUTO_DIGEST_MAX "auto-digestmax" + +/* OSSL_PKEY_PARAM_EC_ENCODING values */ +# define OSSL_PKEY_EC_ENCODING_EXPLICIT "explicit" +# define OSSL_PKEY_EC_ENCODING_GROUP "named_curve" + +# define OSSL_PKEY_EC_POINT_CONVERSION_FORMAT_UNCOMPRESSED "uncompressed" +# define OSSL_PKEY_EC_POINT_CONVERSION_FORMAT_COMPRESSED "compressed" +# define OSSL_PKEY_EC_POINT_CONVERSION_FORMAT_HYBRID "hybrid" + +# define OSSL_PKEY_EC_GROUP_CHECK_DEFAULT "default" +# define OSSL_PKEY_EC_GROUP_CHECK_NAMED "named" +# define OSSL_PKEY_EC_GROUP_CHECK_NAMED_NIST "named-nist" + +/* PROV_SKEY well known key types */ +# define OSSL_SKEY_TYPE_GENERIC "GENERIC-SECRET" +# define OSSL_SKEY_TYPE_AES "AES" + +/* OSSL_KEM_PARAM_OPERATION values */ +#define OSSL_KEM_PARAM_OPERATION_RSASVE "RSASVE" +#define OSSL_KEM_PARAM_OPERATION_DHKEM "DHKEM" + +/* Provider configuration variables */ +#define OSSL_PKEY_RETAIN_SEED "pkey_retain_seed" + +/* Parameter name definitions - generated by util/perl/OpenSSL/paramnames.pm */ +# define OSSL_ALG_PARAM_ALGORITHM_ID "algorithm-id" +# define OSSL_ALG_PARAM_ALGORITHM_ID_PARAMS "algorithm-id-params" +# define OSSL_ALG_PARAM_CIPHER "cipher" +# define OSSL_ALG_PARAM_DIGEST "digest" +# define OSSL_ALG_PARAM_ENGINE "engine" +# define OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR "fips-indicator" +# define OSSL_ALG_PARAM_MAC "mac" +# define OSSL_ALG_PARAM_PROPERTIES "properties" +# define OSSL_ASYM_CIPHER_PARAM_DIGEST OSSL_PKEY_PARAM_DIGEST +# define OSSL_ASYM_CIPHER_PARAM_ENGINE OSSL_PKEY_PARAM_ENGINE +# define OSSL_ASYM_CIPHER_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_ASYM_CIPHER_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_ASYM_CIPHER_PARAM_FIPS_RSA_PKCS15_PAD_DISABLED OSSL_PROV_PARAM_RSA_PKCS15_PAD_DISABLED +# define OSSL_ASYM_CIPHER_PARAM_IMPLICIT_REJECTION "implicit-rejection" +# define OSSL_ASYM_CIPHER_PARAM_MGF1_DIGEST OSSL_PKEY_PARAM_MGF1_DIGEST +# define OSSL_ASYM_CIPHER_PARAM_MGF1_DIGEST_PROPS OSSL_PKEY_PARAM_MGF1_PROPERTIES +# define OSSL_ASYM_CIPHER_PARAM_OAEP_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_ASYM_CIPHER_PARAM_OAEP_DIGEST_PROPS "digest-props" +# define OSSL_ASYM_CIPHER_PARAM_OAEP_LABEL "oaep-label" +# define OSSL_ASYM_CIPHER_PARAM_PAD_MODE OSSL_PKEY_PARAM_PAD_MODE +# define OSSL_ASYM_CIPHER_PARAM_PROPERTIES OSSL_PKEY_PARAM_PROPERTIES +# define OSSL_ASYM_CIPHER_PARAM_TLS_CLIENT_VERSION "tls-client-version" +# define OSSL_ASYM_CIPHER_PARAM_TLS_NEGOTIATED_VERSION "tls-negotiated-version" +# define OSSL_CAPABILITY_TLS_GROUP_ALG "tls-group-alg" +# define OSSL_CAPABILITY_TLS_GROUP_ID "tls-group-id" +# define OSSL_CAPABILITY_TLS_GROUP_IS_KEM "tls-group-is-kem" +# define OSSL_CAPABILITY_TLS_GROUP_MAX_DTLS "tls-max-dtls" +# define OSSL_CAPABILITY_TLS_GROUP_MAX_TLS "tls-max-tls" +# define OSSL_CAPABILITY_TLS_GROUP_MIN_DTLS "tls-min-dtls" +# define OSSL_CAPABILITY_TLS_GROUP_MIN_TLS "tls-min-tls" +# define OSSL_CAPABILITY_TLS_GROUP_NAME "tls-group-name" +# define OSSL_CAPABILITY_TLS_GROUP_NAME_INTERNAL "tls-group-name-internal" +# define OSSL_CAPABILITY_TLS_GROUP_SECURITY_BITS "tls-group-sec-bits" +# define OSSL_CAPABILITY_TLS_SIGALG_CODE_POINT "tls-sigalg-code-point" +# define OSSL_CAPABILITY_TLS_SIGALG_HASH_NAME "tls-sigalg-hash-name" +# define OSSL_CAPABILITY_TLS_SIGALG_HASH_OID "tls-sigalg-hash-oid" +# define OSSL_CAPABILITY_TLS_SIGALG_IANA_NAME "tls-sigalg-iana-name" +# define OSSL_CAPABILITY_TLS_SIGALG_KEYTYPE "tls-sigalg-keytype" +# define OSSL_CAPABILITY_TLS_SIGALG_KEYTYPE_OID "tls-sigalg-keytype-oid" +# define OSSL_CAPABILITY_TLS_SIGALG_MAX_DTLS "tls-max-dtls" +# define OSSL_CAPABILITY_TLS_SIGALG_MAX_TLS "tls-max-tls" +# define OSSL_CAPABILITY_TLS_SIGALG_MIN_DTLS "tls-min-dtls" +# define OSSL_CAPABILITY_TLS_SIGALG_MIN_TLS "tls-min-tls" +# define OSSL_CAPABILITY_TLS_SIGALG_NAME "tls-sigalg-name" +# define OSSL_CAPABILITY_TLS_SIGALG_OID "tls-sigalg-oid" +# define OSSL_CAPABILITY_TLS_SIGALG_SECURITY_BITS "tls-sigalg-sec-bits" +# define OSSL_CAPABILITY_TLS_SIGALG_SIG_NAME "tls-sigalg-sig-name" +# define OSSL_CAPABILITY_TLS_SIGALG_SIG_OID "tls-sigalg-sig-oid" +# define OSSL_CIPHER_PARAM_AEAD "aead" +# define OSSL_CIPHER_PARAM_AEAD_IVLEN OSSL_CIPHER_PARAM_IVLEN +# define OSSL_CIPHER_PARAM_AEAD_IV_GENERATED "iv-generated" +# define OSSL_CIPHER_PARAM_AEAD_MAC_KEY "mackey" +# define OSSL_CIPHER_PARAM_AEAD_TAG "tag" +# define OSSL_CIPHER_PARAM_AEAD_TAGLEN "taglen" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_AAD "tlsaad" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_AAD_PAD "tlsaadpad" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_GET_IV_GEN "tlsivgen" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_IV_FIXED "tlsivfixed" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_SET_IV_INV "tlsivinv" +# define OSSL_CIPHER_PARAM_ALGORITHM_ID OSSL_ALG_PARAM_ALGORITHM_ID +# define OSSL_CIPHER_PARAM_ALGORITHM_ID_PARAMS OSSL_ALG_PARAM_ALGORITHM_ID_PARAMS +# define OSSL_CIPHER_PARAM_ALGORITHM_ID_PARAMS_OLD "alg_id_param" +# define OSSL_CIPHER_PARAM_BLOCK_SIZE "blocksize" +# define OSSL_CIPHER_PARAM_CTS "cts" +# define OSSL_CIPHER_PARAM_CTS_MODE "cts_mode" +# define OSSL_CIPHER_PARAM_CUSTOM_IV "custom-iv" +# define OSSL_CIPHER_PARAM_DECRYPT_ONLY "decrypt-only" +# define OSSL_CIPHER_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_CIPHER_PARAM_FIPS_ENCRYPT_CHECK "encrypt-check" +# define OSSL_CIPHER_PARAM_HAS_RAND_KEY "has-randkey" +# define OSSL_CIPHER_PARAM_IV "iv" +# define OSSL_CIPHER_PARAM_IVLEN "ivlen" +# define OSSL_CIPHER_PARAM_KEYLEN "keylen" +# define OSSL_CIPHER_PARAM_MODE "mode" +# define OSSL_CIPHER_PARAM_NUM "num" +# define OSSL_CIPHER_PARAM_PADDING "padding" +# define OSSL_CIPHER_PARAM_PIPELINE_AEAD_TAG "pipeline-tag" +# define OSSL_CIPHER_PARAM_RANDOM_KEY "randkey" +# define OSSL_CIPHER_PARAM_RC2_KEYBITS "keybits" +# define OSSL_CIPHER_PARAM_ROUNDS "rounds" +# define OSSL_CIPHER_PARAM_SPEED "speed" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK "tls-multi" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD "tls1multi_aad" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD_PACKLEN "tls1multi_aadpacklen" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC "tls1multi_enc" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_IN "tls1multi_encin" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_LEN "tls1multi_enclen" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_INTERLEAVE "tls1multi_interleave" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_BUFSIZE "tls1multi_maxbufsz" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_SEND_FRAGMENT "tls1multi_maxsndfrag" +# define OSSL_CIPHER_PARAM_TLS_MAC "tls-mac" +# define OSSL_CIPHER_PARAM_TLS_MAC_SIZE "tls-mac-size" +# define OSSL_CIPHER_PARAM_TLS_VERSION "tls-version" +# define OSSL_CIPHER_PARAM_UPDATED_IV "updated-iv" +# define OSSL_CIPHER_PARAM_USE_BITS "use-bits" +# define OSSL_CIPHER_PARAM_XTS_STANDARD "xts_standard" +# define OSSL_DECODER_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_DIGEST_PARAM_ALGID_ABSENT "algid-absent" +# define OSSL_DIGEST_PARAM_BLOCK_SIZE "blocksize" +# define OSSL_DIGEST_PARAM_MICALG "micalg" +# define OSSL_DIGEST_PARAM_PAD_TYPE "pad-type" +# define OSSL_DIGEST_PARAM_SIZE "size" +# define OSSL_DIGEST_PARAM_SSL3_MS "ssl3-ms" +# define OSSL_DIGEST_PARAM_XOF "xof" +# define OSSL_DIGEST_PARAM_XOFLEN "xoflen" +# define OSSL_DRBG_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_DRBG_PARAM_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_DRBG_PARAM_ENTROPY_REQUIRED "entropy_required" +# define OSSL_DRBG_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_DRBG_PARAM_FIPS_DIGEST_CHECK OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK +# define OSSL_DRBG_PARAM_MAC OSSL_ALG_PARAM_MAC +# define OSSL_DRBG_PARAM_MAX_ADINLEN "max_adinlen" +# define OSSL_DRBG_PARAM_MAX_ENTROPYLEN "max_entropylen" +# define OSSL_DRBG_PARAM_MAX_LENGTH "maxium_length" +# define OSSL_DRBG_PARAM_MAX_NONCELEN "max_noncelen" +# define OSSL_DRBG_PARAM_MAX_PERSLEN "max_perslen" +# define OSSL_DRBG_PARAM_MIN_ENTROPYLEN "min_entropylen" +# define OSSL_DRBG_PARAM_MIN_LENGTH "minium_length" +# define OSSL_DRBG_PARAM_MIN_NONCELEN "min_noncelen" +# define OSSL_DRBG_PARAM_PREDICTION_RESISTANCE "prediction_resistance" +# define OSSL_DRBG_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_DRBG_PARAM_RANDOM_DATA "random_data" +# define OSSL_DRBG_PARAM_RESEED_COUNTER "reseed_counter" +# define OSSL_DRBG_PARAM_RESEED_REQUESTS "reseed_requests" +# define OSSL_DRBG_PARAM_RESEED_TIME "reseed_time" +# define OSSL_DRBG_PARAM_RESEED_TIME_INTERVAL "reseed_time_interval" +# define OSSL_DRBG_PARAM_SIZE "size" +# define OSSL_DRBG_PARAM_USE_DF "use_derivation_function" +# define OSSL_ENCODER_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_ENCODER_PARAM_ENCRYPT_LEVEL "encrypt-level" +# define OSSL_ENCODER_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_ENCODER_PARAM_SAVE_PARAMETERS "save-parameters" +# define OSSL_EXCHANGE_PARAM_EC_ECDH_COFACTOR_MODE "ecdh-cofactor-mode" +# define OSSL_EXCHANGE_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_EXCHANGE_PARAM_FIPS_DIGEST_CHECK OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK +# define OSSL_EXCHANGE_PARAM_FIPS_ECDH_COFACTOR_CHECK OSSL_PROV_PARAM_ECDH_COFACTOR_CHECK +# define OSSL_EXCHANGE_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_EXCHANGE_PARAM_KDF_DIGEST "kdf-digest" +# define OSSL_EXCHANGE_PARAM_KDF_DIGEST_PROPS "kdf-digest-props" +# define OSSL_EXCHANGE_PARAM_KDF_OUTLEN "kdf-outlen" +# define OSSL_EXCHANGE_PARAM_KDF_TYPE "kdf-type" +# define OSSL_EXCHANGE_PARAM_KDF_UKM "kdf-ukm" +# define OSSL_EXCHANGE_PARAM_PAD "pad" +# define OSSL_GEN_PARAM_ITERATION "iteration" +# define OSSL_GEN_PARAM_POTENTIAL "potential" +# define OSSL_KDF_PARAM_ARGON2_AD "ad" +# define OSSL_KDF_PARAM_ARGON2_LANES "lanes" +# define OSSL_KDF_PARAM_ARGON2_MEMCOST "memcost" +# define OSSL_KDF_PARAM_ARGON2_VERSION "version" +# define OSSL_KDF_PARAM_CEK_ALG "cekalg" +# define OSSL_KDF_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_KDF_PARAM_CONSTANT "constant" +# define OSSL_KDF_PARAM_DATA "data" +# define OSSL_KDF_PARAM_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_KDF_PARAM_EARLY_CLEAN "early_clean" +# define OSSL_KDF_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_KDF_PARAM_FIPS_DIGEST_CHECK OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK +# define OSSL_KDF_PARAM_FIPS_EMS_CHECK "ems_check" +# define OSSL_KDF_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_KDF_PARAM_HMACDRBG_ENTROPY "entropy" +# define OSSL_KDF_PARAM_HMACDRBG_NONCE "nonce" +# define OSSL_KDF_PARAM_INFO "info" +# define OSSL_KDF_PARAM_ITER "iter" +# define OSSL_KDF_PARAM_KBKDF_R "r" +# define OSSL_KDF_PARAM_KBKDF_USE_L "use-l" +# define OSSL_KDF_PARAM_KBKDF_USE_SEPARATOR "use-separator" +# define OSSL_KDF_PARAM_KEY "key" +# define OSSL_KDF_PARAM_LABEL "label" +# define OSSL_KDF_PARAM_MAC OSSL_ALG_PARAM_MAC +# define OSSL_KDF_PARAM_MAC_SIZE "maclen" +# define OSSL_KDF_PARAM_MODE "mode" +# define OSSL_KDF_PARAM_PASSWORD "pass" +# define OSSL_KDF_PARAM_PKCS12_ID "id" +# define OSSL_KDF_PARAM_PKCS5 "pkcs5" +# define OSSL_KDF_PARAM_PREFIX "prefix" +# define OSSL_KDF_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_KDF_PARAM_SALT "salt" +# define OSSL_KDF_PARAM_SCRYPT_MAXMEM "maxmem_bytes" +# define OSSL_KDF_PARAM_SCRYPT_N "n" +# define OSSL_KDF_PARAM_SCRYPT_P "p" +# define OSSL_KDF_PARAM_SCRYPT_R "r" +# define OSSL_KDF_PARAM_SECRET "secret" +# define OSSL_KDF_PARAM_SEED "seed" +# define OSSL_KDF_PARAM_SIZE "size" +# define OSSL_KDF_PARAM_SSHKDF_SESSION_ID "session_id" +# define OSSL_KDF_PARAM_SSHKDF_TYPE "type" +# define OSSL_KDF_PARAM_SSHKDF_XCGHASH "xcghash" +# define OSSL_KDF_PARAM_THREADS "threads" +# define OSSL_KDF_PARAM_UKM "ukm" +# define OSSL_KDF_PARAM_X942_ACVPINFO "acvp-info" +# define OSSL_KDF_PARAM_X942_PARTYUINFO "partyu-info" +# define OSSL_KDF_PARAM_X942_PARTYVINFO "partyv-info" +# define OSSL_KDF_PARAM_X942_SUPP_PRIVINFO "supp-privinfo" +# define OSSL_KDF_PARAM_X942_SUPP_PUBINFO "supp-pubinfo" +# define OSSL_KDF_PARAM_X942_USE_KEYBITS "use-keybits" +# define OSSL_KEM_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_KEM_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_KEM_PARAM_IKME "ikme" +# define OSSL_KEM_PARAM_OPERATION "operation" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_BLOCK_PADDING "block_padding" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_HS_PADDING "hs_padding" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_MAX_EARLY_DATA "max_early_data" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_MAX_FRAG_LEN "max_frag_len" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_MODE "mode" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_OPTIONS "options" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_READ_AHEAD "read_ahead" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_STREAM_MAC "stream_mac" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_TLSTREE "tlstree" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_USE_ETM "use_etm" +# define OSSL_LIBSSL_RECORD_LAYER_READ_BUFFER_LEN "read_buffer_len" +# define OSSL_MAC_PARAM_BLOCK_SIZE "block-size" +# define OSSL_MAC_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_MAC_PARAM_CUSTOM "custom" +# define OSSL_MAC_PARAM_C_ROUNDS "c-rounds" +# define OSSL_MAC_PARAM_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_MAC_PARAM_DIGEST_NOINIT "digest-noinit" +# define OSSL_MAC_PARAM_DIGEST_ONESHOT "digest-oneshot" +# define OSSL_MAC_PARAM_D_ROUNDS "d-rounds" +# define OSSL_MAC_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_MAC_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_MAC_PARAM_FIPS_NO_SHORT_MAC OSSL_PROV_PARAM_NO_SHORT_MAC +# define OSSL_MAC_PARAM_IV "iv" +# define OSSL_MAC_PARAM_KEY "key" +# define OSSL_MAC_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_MAC_PARAM_SALT "salt" +# define OSSL_MAC_PARAM_SIZE "size" +# define OSSL_MAC_PARAM_TLS_DATA_SIZE "tls-data-size" +# define OSSL_MAC_PARAM_XOF "xof" +# define OSSL_OBJECT_PARAM_DATA "data" +# define OSSL_OBJECT_PARAM_DATA_STRUCTURE "data-structure" +# define OSSL_OBJECT_PARAM_DATA_TYPE "data-type" +# define OSSL_OBJECT_PARAM_DESC "desc" +# define OSSL_OBJECT_PARAM_INPUT_TYPE "input-type" +# define OSSL_OBJECT_PARAM_REFERENCE "reference" +# define OSSL_OBJECT_PARAM_TYPE "type" +# define OSSL_PASSPHRASE_PARAM_INFO "info" +# define OSSL_PKEY_PARAM_ALGORITHM_ID OSSL_ALG_PARAM_ALGORITHM_ID +# define OSSL_PKEY_PARAM_ALGORITHM_ID_PARAMS OSSL_ALG_PARAM_ALGORITHM_ID_PARAMS +# define OSSL_PKEY_PARAM_BITS "bits" +# define OSSL_PKEY_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_PKEY_PARAM_DEFAULT_DIGEST "default-digest" +# define OSSL_PKEY_PARAM_DHKEM_IKM "dhkem-ikm" +# define OSSL_PKEY_PARAM_DH_GENERATOR "safeprime-generator" +# define OSSL_PKEY_PARAM_DH_PRIV_LEN "priv_len" +# define OSSL_PKEY_PARAM_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_PKEY_PARAM_DIGEST_SIZE "digest-size" +# define OSSL_PKEY_PARAM_DIST_ID "distid" +# define OSSL_PKEY_PARAM_EC_A "a" +# define OSSL_PKEY_PARAM_EC_B "b" +# define OSSL_PKEY_PARAM_EC_CHAR2_M "m" +# define OSSL_PKEY_PARAM_EC_CHAR2_PP_K1 "k1" +# define OSSL_PKEY_PARAM_EC_CHAR2_PP_K2 "k2" +# define OSSL_PKEY_PARAM_EC_CHAR2_PP_K3 "k3" +# define OSSL_PKEY_PARAM_EC_CHAR2_TP_BASIS "tp" +# define OSSL_PKEY_PARAM_EC_CHAR2_TYPE "basis-type" +# define OSSL_PKEY_PARAM_EC_COFACTOR "cofactor" +# define OSSL_PKEY_PARAM_EC_DECODED_FROM_EXPLICIT_PARAMS "decoded-from-explicit" +# define OSSL_PKEY_PARAM_EC_ENCODING "encoding" +# define OSSL_PKEY_PARAM_EC_FIELD_TYPE "field-type" +# define OSSL_PKEY_PARAM_EC_GENERATOR "generator" +# define OSSL_PKEY_PARAM_EC_GROUP_CHECK_TYPE "group-check" +# define OSSL_PKEY_PARAM_EC_INCLUDE_PUBLIC "include-public" +# define OSSL_PKEY_PARAM_EC_ORDER "order" +# define OSSL_PKEY_PARAM_EC_P "p" +# define OSSL_PKEY_PARAM_EC_POINT_CONVERSION_FORMAT "point-format" +# define OSSL_PKEY_PARAM_EC_PUB_X "qx" +# define OSSL_PKEY_PARAM_EC_PUB_Y "qy" +# define OSSL_PKEY_PARAM_EC_SEED "seed" +# define OSSL_PKEY_PARAM_ENCODED_PUBLIC_KEY "encoded-pub-key" +# define OSSL_PKEY_PARAM_ENGINE OSSL_ALG_PARAM_ENGINE +# define OSSL_PKEY_PARAM_FFC_COFACTOR "j" +# define OSSL_PKEY_PARAM_FFC_DIGEST OSSL_PKEY_PARAM_DIGEST +# define OSSL_PKEY_PARAM_FFC_DIGEST_PROPS OSSL_PKEY_PARAM_PROPERTIES +# define OSSL_PKEY_PARAM_FFC_G "g" +# define OSSL_PKEY_PARAM_FFC_GINDEX "gindex" +# define OSSL_PKEY_PARAM_FFC_H "hindex" +# define OSSL_PKEY_PARAM_FFC_P "p" +# define OSSL_PKEY_PARAM_FFC_PBITS "pbits" +# define OSSL_PKEY_PARAM_FFC_PCOUNTER "pcounter" +# define OSSL_PKEY_PARAM_FFC_Q "q" +# define OSSL_PKEY_PARAM_FFC_QBITS "qbits" +# define OSSL_PKEY_PARAM_FFC_SEED "seed" +# define OSSL_PKEY_PARAM_FFC_TYPE "type" +# define OSSL_PKEY_PARAM_FFC_VALIDATE_G "validate-g" +# define OSSL_PKEY_PARAM_FFC_VALIDATE_LEGACY "validate-legacy" +# define OSSL_PKEY_PARAM_FFC_VALIDATE_PQ "validate-pq" +# define OSSL_PKEY_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK "digest-check" +# define OSSL_PKEY_PARAM_FIPS_KEY_CHECK "key-check" +# define OSSL_PKEY_PARAM_FIPS_SIGN_CHECK "sign-check" +# define OSSL_PKEY_PARAM_GROUP_NAME "group" +# define OSSL_PKEY_PARAM_IMPLICIT_REJECTION "implicit-rejection" +# define OSSL_PKEY_PARAM_MANDATORY_DIGEST "mandatory-digest" +# define OSSL_PKEY_PARAM_MASKGENFUNC "mgf" +# define OSSL_PKEY_PARAM_MAX_SIZE "max-size" +# define OSSL_PKEY_PARAM_MGF1_DIGEST "mgf1-digest" +# define OSSL_PKEY_PARAM_MGF1_PROPERTIES "mgf1-properties" +# define OSSL_PKEY_PARAM_ML_DSA_INPUT_FORMATS "ml-dsa.input_formats" +# define OSSL_PKEY_PARAM_ML_DSA_OUTPUT_FORMATS "ml-dsa.output_formats" +# define OSSL_PKEY_PARAM_ML_DSA_PREFER_SEED "ml-dsa.prefer_seed" +# define OSSL_PKEY_PARAM_ML_DSA_RETAIN_SEED "ml-dsa.retain_seed" +# define OSSL_PKEY_PARAM_ML_DSA_SEED "seed" +# define OSSL_PKEY_PARAM_ML_KEM_IMPORT_PCT_TYPE "ml-kem.import_pct_type" +# define OSSL_PKEY_PARAM_ML_KEM_INPUT_FORMATS "ml-kem.input_formats" +# define OSSL_PKEY_PARAM_ML_KEM_OUTPUT_FORMATS "ml-kem.output_formats" +# define OSSL_PKEY_PARAM_ML_KEM_PREFER_SEED "ml-kem.prefer_seed" +# define OSSL_PKEY_PARAM_ML_KEM_RETAIN_SEED "ml-kem.retain_seed" +# define OSSL_PKEY_PARAM_ML_KEM_SEED "seed" +# define OSSL_PKEY_PARAM_PAD_MODE "pad-mode" +# define OSSL_PKEY_PARAM_PRIV_KEY "priv" +# define OSSL_PKEY_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_PKEY_PARAM_PUB_KEY "pub" +# define OSSL_PKEY_PARAM_RSA_BITS OSSL_PKEY_PARAM_BITS +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT "rsa-coefficient" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT1 "rsa-coefficient1" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT2 "rsa-coefficient2" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT3 "rsa-coefficient3" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT4 "rsa-coefficient4" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT5 "rsa-coefficient5" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT6 "rsa-coefficient6" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT7 "rsa-coefficient7" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT8 "rsa-coefficient8" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT9 "rsa-coefficient9" +# define OSSL_PKEY_PARAM_RSA_D "d" +# define OSSL_PKEY_PARAM_RSA_DERIVE_FROM_PQ "rsa-derive-from-pq" +# define OSSL_PKEY_PARAM_RSA_DIGEST OSSL_PKEY_PARAM_DIGEST +# define OSSL_PKEY_PARAM_RSA_DIGEST_PROPS OSSL_PKEY_PARAM_PROPERTIES +# define OSSL_PKEY_PARAM_RSA_E "e" +# define OSSL_PKEY_PARAM_RSA_EXPONENT "rsa-exponent" +# define OSSL_PKEY_PARAM_RSA_EXPONENT1 "rsa-exponent1" +# define OSSL_PKEY_PARAM_RSA_EXPONENT10 "rsa-exponent10" +# define OSSL_PKEY_PARAM_RSA_EXPONENT2 "rsa-exponent2" +# define OSSL_PKEY_PARAM_RSA_EXPONENT3 "rsa-exponent3" +# define OSSL_PKEY_PARAM_RSA_EXPONENT4 "rsa-exponent4" +# define OSSL_PKEY_PARAM_RSA_EXPONENT5 "rsa-exponent5" +# define OSSL_PKEY_PARAM_RSA_EXPONENT6 "rsa-exponent6" +# define OSSL_PKEY_PARAM_RSA_EXPONENT7 "rsa-exponent7" +# define OSSL_PKEY_PARAM_RSA_EXPONENT8 "rsa-exponent8" +# define OSSL_PKEY_PARAM_RSA_EXPONENT9 "rsa-exponent9" +# define OSSL_PKEY_PARAM_RSA_FACTOR "rsa-factor" +# define OSSL_PKEY_PARAM_RSA_FACTOR1 "rsa-factor1" +# define OSSL_PKEY_PARAM_RSA_FACTOR10 "rsa-factor10" +# define OSSL_PKEY_PARAM_RSA_FACTOR2 "rsa-factor2" +# define OSSL_PKEY_PARAM_RSA_FACTOR3 "rsa-factor3" +# define OSSL_PKEY_PARAM_RSA_FACTOR4 "rsa-factor4" +# define OSSL_PKEY_PARAM_RSA_FACTOR5 "rsa-factor5" +# define OSSL_PKEY_PARAM_RSA_FACTOR6 "rsa-factor6" +# define OSSL_PKEY_PARAM_RSA_FACTOR7 "rsa-factor7" +# define OSSL_PKEY_PARAM_RSA_FACTOR8 "rsa-factor8" +# define OSSL_PKEY_PARAM_RSA_FACTOR9 "rsa-factor9" +# define OSSL_PKEY_PARAM_RSA_MASKGENFUNC OSSL_PKEY_PARAM_MASKGENFUNC +# define OSSL_PKEY_PARAM_RSA_MGF1_DIGEST OSSL_PKEY_PARAM_MGF1_DIGEST +# define OSSL_PKEY_PARAM_RSA_N "n" +# define OSSL_PKEY_PARAM_RSA_PRIMES "primes" +# define OSSL_PKEY_PARAM_RSA_PSS_SALTLEN "saltlen" +# define OSSL_PKEY_PARAM_RSA_TEST_P1 "p1" +# define OSSL_PKEY_PARAM_RSA_TEST_P2 "p2" +# define OSSL_PKEY_PARAM_RSA_TEST_Q1 "q1" +# define OSSL_PKEY_PARAM_RSA_TEST_Q2 "q2" +# define OSSL_PKEY_PARAM_RSA_TEST_XP "xp" +# define OSSL_PKEY_PARAM_RSA_TEST_XP1 "xp1" +# define OSSL_PKEY_PARAM_RSA_TEST_XP2 "xp2" +# define OSSL_PKEY_PARAM_RSA_TEST_XQ "xq" +# define OSSL_PKEY_PARAM_RSA_TEST_XQ1 "xq1" +# define OSSL_PKEY_PARAM_RSA_TEST_XQ2 "xq2" +# define OSSL_PKEY_PARAM_SECURITY_BITS "security-bits" +# define OSSL_PKEY_PARAM_SLH_DSA_SEED "seed" +# define OSSL_PKEY_PARAM_USE_COFACTOR_ECDH OSSL_PKEY_PARAM_USE_COFACTOR_FLAG +# define OSSL_PKEY_PARAM_USE_COFACTOR_FLAG "use-cofactor-flag" +# define OSSL_PROV_PARAM_BUILDINFO "buildinfo" +# define OSSL_PROV_PARAM_CORE_MODULE_FILENAME "module-filename" +# define OSSL_PROV_PARAM_CORE_PROV_NAME "provider-name" +# define OSSL_PROV_PARAM_CORE_VERSION "openssl-version" +# define OSSL_PROV_PARAM_DRBG_TRUNC_DIGEST "drbg-no-trunc-md" +# define OSSL_PROV_PARAM_DSA_SIGN_DISABLED "dsa-sign-disabled" +# define OSSL_PROV_PARAM_ECDH_COFACTOR_CHECK "ecdh-cofactor-check" +# define OSSL_PROV_PARAM_HKDF_DIGEST_CHECK "hkdf-digest-check" +# define OSSL_PROV_PARAM_HKDF_KEY_CHECK "hkdf-key-check" +# define OSSL_PROV_PARAM_HMAC_KEY_CHECK "hmac-key-check" +# define OSSL_PROV_PARAM_KBKDF_KEY_CHECK "kbkdf-key-check" +# define OSSL_PROV_PARAM_KMAC_KEY_CHECK "kmac-key-check" +# define OSSL_PROV_PARAM_NAME "name" +# define OSSL_PROV_PARAM_NO_SHORT_MAC "no-short-mac" +# define OSSL_PROV_PARAM_PBKDF2_LOWER_BOUND_CHECK "pbkdf2-lower-bound-check" +# define OSSL_PROV_PARAM_RSA_PKCS15_PAD_DISABLED "rsa-pkcs15-pad-disabled" +# define OSSL_PROV_PARAM_RSA_PSS_SALTLEN_CHECK "rsa-pss-saltlen-check" +# define OSSL_PROV_PARAM_RSA_SIGN_X931_PAD_DISABLED "rsa-sign-x931-pad-disabled" +# define OSSL_PROV_PARAM_SECURITY_CHECKS "security-checks" +# define OSSL_PROV_PARAM_SELF_TEST_DESC "st-desc" +# define OSSL_PROV_PARAM_SELF_TEST_PHASE "st-phase" +# define OSSL_PROV_PARAM_SELF_TEST_TYPE "st-type" +# define OSSL_PROV_PARAM_SIGNATURE_DIGEST_CHECK "signature-digest-check" +# define OSSL_PROV_PARAM_SSHKDF_DIGEST_CHECK "sshkdf-digest-check" +# define OSSL_PROV_PARAM_SSHKDF_KEY_CHECK "sshkdf-key-check" +# define OSSL_PROV_PARAM_SSKDF_DIGEST_CHECK "sskdf-digest-check" +# define OSSL_PROV_PARAM_SSKDF_KEY_CHECK "sskdf-key-check" +# define OSSL_PROV_PARAM_STATUS "status" +# define OSSL_PROV_PARAM_TDES_ENCRYPT_DISABLED "tdes-encrypt-disabled" +# define OSSL_PROV_PARAM_TLS13_KDF_DIGEST_CHECK "tls13-kdf-digest-check" +# define OSSL_PROV_PARAM_TLS13_KDF_KEY_CHECK "tls13-kdf-key-check" +# define OSSL_PROV_PARAM_TLS1_PRF_DIGEST_CHECK "tls1-prf-digest-check" +# define OSSL_PROV_PARAM_TLS1_PRF_EMS_CHECK "tls1-prf-ems-check" +# define OSSL_PROV_PARAM_TLS1_PRF_KEY_CHECK "tls1-prf-key-check" +# define OSSL_PROV_PARAM_VERSION "version" +# define OSSL_PROV_PARAM_X942KDF_KEY_CHECK "x942kdf-key-check" +# define OSSL_PROV_PARAM_X963KDF_DIGEST_CHECK "x963kdf-digest-check" +# define OSSL_PROV_PARAM_X963KDF_KEY_CHECK "x963kdf-key-check" +# define OSSL_RAND_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_RAND_PARAM_GENERATE "generate" +# define OSSL_RAND_PARAM_MAX_REQUEST "max_request" +# define OSSL_RAND_PARAM_STATE "state" +# define OSSL_RAND_PARAM_STRENGTH "strength" +# define OSSL_RAND_PARAM_TEST_ENTROPY "test_entropy" +# define OSSL_RAND_PARAM_TEST_NONCE "test_nonce" +# define OSSL_SIGNATURE_PARAM_ADD_RANDOM "additional-random" +# define OSSL_SIGNATURE_PARAM_ALGORITHM_ID OSSL_PKEY_PARAM_ALGORITHM_ID +# define OSSL_SIGNATURE_PARAM_ALGORITHM_ID_PARAMS OSSL_PKEY_PARAM_ALGORITHM_ID_PARAMS +# define OSSL_SIGNATURE_PARAM_CONTEXT_STRING "context-string" +# define OSSL_SIGNATURE_PARAM_DETERMINISTIC "deterministic" +# define OSSL_SIGNATURE_PARAM_DIGEST OSSL_PKEY_PARAM_DIGEST +# define OSSL_SIGNATURE_PARAM_DIGEST_SIZE OSSL_PKEY_PARAM_DIGEST_SIZE +# define OSSL_SIGNATURE_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_SIGNATURE_PARAM_FIPS_DIGEST_CHECK OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK +# define OSSL_SIGNATURE_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_SIGNATURE_PARAM_FIPS_RSA_PSS_SALTLEN_CHECK "rsa-pss-saltlen-check" +# define OSSL_SIGNATURE_PARAM_FIPS_SIGN_CHECK OSSL_PKEY_PARAM_FIPS_SIGN_CHECK +# define OSSL_SIGNATURE_PARAM_FIPS_SIGN_X931_PAD_CHECK "sign-x931-pad-check" +# define OSSL_SIGNATURE_PARAM_FIPS_VERIFY_MESSAGE "verify-message" +# define OSSL_SIGNATURE_PARAM_INSTANCE "instance" +# define OSSL_SIGNATURE_PARAM_KAT "kat" +# define OSSL_SIGNATURE_PARAM_MESSAGE_ENCODING "message-encoding" +# define OSSL_SIGNATURE_PARAM_MGF1_DIGEST OSSL_PKEY_PARAM_MGF1_DIGEST +# define OSSL_SIGNATURE_PARAM_MGF1_PROPERTIES OSSL_PKEY_PARAM_MGF1_PROPERTIES +# define OSSL_SIGNATURE_PARAM_MU "mu" +# define OSSL_SIGNATURE_PARAM_NONCE_TYPE "nonce-type" +# define OSSL_SIGNATURE_PARAM_PAD_MODE OSSL_PKEY_PARAM_PAD_MODE +# define OSSL_SIGNATURE_PARAM_PROPERTIES OSSL_PKEY_PARAM_PROPERTIES +# define OSSL_SIGNATURE_PARAM_PSS_SALTLEN "saltlen" +# define OSSL_SIGNATURE_PARAM_SIGNATURE "signature" +# define OSSL_SIGNATURE_PARAM_TEST_ENTROPY "test-entropy" +# define OSSL_SKEY_PARAM_KEY_LENGTH "key-length" +# define OSSL_SKEY_PARAM_RAW_BYTES "raw-bytes" +# define OSSL_STORE_PARAM_ALIAS "alias" +# define OSSL_STORE_PARAM_DIGEST "digest" +# define OSSL_STORE_PARAM_EXPECT "expect" +# define OSSL_STORE_PARAM_FINGERPRINT "fingerprint" +# define OSSL_STORE_PARAM_INPUT_TYPE "input-type" +# define OSSL_STORE_PARAM_ISSUER "name" +# define OSSL_STORE_PARAM_PROPERTIES "properties" +# define OSSL_STORE_PARAM_SERIAL "serial" +# define OSSL_STORE_PARAM_SUBJECT "subject" + +# ifdef __cplusplus +} +# endif + +#endif diff --git a/deps/openssl/config/archs/BSD-x86/asm/include/openssl/crmf.h b/deps/openssl/config/archs/BSD-x86/asm/include/openssl/crmf.h index 71b747ed33d239..4bf550fd47daa9 100644 --- a/deps/openssl/config/archs/BSD-x86/asm/include/openssl/crmf.h +++ b/deps/openssl/config/archs/BSD-x86/asm/include/openssl/crmf.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/crmf.h.in * - * Copyright 2007-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2007-2025 The OpenSSL Project Authors. All Rights Reserved. * Copyright Nokia 2007-2019 * Copyright Siemens AG 2015-2019 * @@ -26,6 +26,7 @@ # include # include # include /* for GENERAL_NAME etc. */ +# include /* explicit #includes not strictly needed since implied by the above: */ # include @@ -43,9 +44,12 @@ extern "C" { # define OSSL_CRMF_SUBSEQUENTMESSAGE_ENCRCERT 0 # define OSSL_CRMF_SUBSEQUENTMESSAGE_CHALLENGERESP 1 - typedef struct ossl_crmf_encryptedvalue_st OSSL_CRMF_ENCRYPTEDVALUE; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_ENCRYPTEDVALUE) + +typedef struct ossl_crmf_encryptedkey_st OSSL_CRMF_ENCRYPTEDKEY; +DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_ENCRYPTEDKEY) + typedef struct ossl_crmf_msg_st OSSL_CRMF_MSG; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_MSG) DECLARE_ASN1_DUP_FUNCTION(OSSL_CRMF_MSG) @@ -77,6 +81,36 @@ SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CRMF_MSG, OSSL_CRMF_MSG, OSSL_CRMF_MSG) #define sk_OSSL_CRMF_MSG_set_cmp_func(sk, cmp) ((sk_OSSL_CRMF_MSG_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CRMF_MSG_sk_type(sk), ossl_check_OSSL_CRMF_MSG_compfunc_type(cmp))) typedef struct ossl_crmf_attributetypeandvalue_st OSSL_CRMF_ATTRIBUTETYPEANDVALUE; +void OSSL_CRMF_ATTRIBUTETYPEANDVALUE_free(OSSL_CRMF_ATTRIBUTETYPEANDVALUE *v); +DECLARE_ASN1_DUP_FUNCTION(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CRMF_ATTRIBUTETYPEANDVALUE, OSSL_CRMF_ATTRIBUTETYPEANDVALUE, OSSL_CRMF_ATTRIBUTETYPEANDVALUE) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_value(sk, idx) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_value(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), (idx))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_new(cmp) ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_new(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_compfunc_type(cmp))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_new_null() ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_new_null()) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_new_reserve(cmp, n) ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_compfunc_type(cmp), (n))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), (n)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_free(sk) OPENSSL_sk_free(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_delete(sk, i) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_delete(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), (i))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_delete_ptr(sk, ptr) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_pop(sk) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_pop(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_shift(sk) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_shift(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk),ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_freefunc_type(freefunc)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr), (idx)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_set(sk, idx, ptr) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_set(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), (idx), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr), pnum) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_dup(sk) ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_dup(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_copyfunc_type(copyfunc), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_freefunc_type(freefunc))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_set_cmp_func(sk, cmp) ((sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_compfunc_type(cmp))) + + typedef struct ossl_crmf_pbmparameter_st OSSL_CRMF_PBMPARAMETER; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_PBMPARAMETER) typedef struct ossl_crmf_poposigningkey_st OSSL_CRMF_POPOSIGNINGKEY; @@ -118,6 +152,7 @@ typedef struct ossl_crmf_singlepubinfo_st OSSL_CRMF_SINGLEPUBINFO; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_SINGLEPUBINFO) typedef struct ossl_crmf_certtemplate_st OSSL_CRMF_CERTTEMPLATE; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_CERTTEMPLATE) +DECLARE_ASN1_DUP_FUNCTION(OSSL_CRMF_CERTTEMPLATE) typedef STACK_OF(OSSL_CRMF_MSG) OSSL_CRMF_MSGS; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_MSGS) @@ -198,12 +233,14 @@ int OSSL_CRMF_MSGS_verify_popo(const OSSL_CRMF_MSGS *reqs, int rid, int acceptRAVerified, OSSL_LIB_CTX *libctx, const char *propq); OSSL_CRMF_CERTTEMPLATE *OSSL_CRMF_MSG_get0_tmpl(const OSSL_CRMF_MSG *crm); -const ASN1_INTEGER -*OSSL_CRMF_CERTTEMPLATE_get0_serialNumber(const OSSL_CRMF_CERTTEMPLATE *tmpl); +X509_PUBKEY +*OSSL_CRMF_CERTTEMPLATE_get0_publicKey(const OSSL_CRMF_CERTTEMPLATE *tmpl); const X509_NAME *OSSL_CRMF_CERTTEMPLATE_get0_subject(const OSSL_CRMF_CERTTEMPLATE *tmpl); const X509_NAME *OSSL_CRMF_CERTTEMPLATE_get0_issuer(const OSSL_CRMF_CERTTEMPLATE *tmpl); +const ASN1_INTEGER +*OSSL_CRMF_CERTTEMPLATE_get0_serialNumber(const OSSL_CRMF_CERTTEMPLATE *tmpl); X509_EXTENSIONS *OSSL_CRMF_CERTTEMPLATE_get0_extensions(const OSSL_CRMF_CERTTEMPLATE *tmpl); const X509_NAME @@ -215,10 +252,24 @@ int OSSL_CRMF_CERTTEMPLATE_fill(OSSL_CRMF_CERTTEMPLATE *tmpl, const X509_NAME *subject, const X509_NAME *issuer, const ASN1_INTEGER *serial); -X509 -*OSSL_CRMF_ENCRYPTEDVALUE_get1_encCert(const OSSL_CRMF_ENCRYPTEDVALUE *ecert, - OSSL_LIB_CTX *libctx, const char *propq, - EVP_PKEY *pkey); +X509 *OSSL_CRMF_ENCRYPTEDVALUE_get1_encCert(const OSSL_CRMF_ENCRYPTEDVALUE *ecert, + OSSL_LIB_CTX *libctx, const char *propq, + EVP_PKEY *pkey); +X509 *OSSL_CRMF_ENCRYPTEDKEY_get1_encCert(const OSSL_CRMF_ENCRYPTEDKEY *ecert, + OSSL_LIB_CTX *libctx, const char *propq, + EVP_PKEY *pkey, unsigned int flags); +unsigned char +*OSSL_CRMF_ENCRYPTEDVALUE_decrypt(const OSSL_CRMF_ENCRYPTEDVALUE *enc, + OSSL_LIB_CTX *libctx, const char *propq, + EVP_PKEY *pkey, int *outlen); +EVP_PKEY *OSSL_CRMF_ENCRYPTEDKEY_get1_pkey(const OSSL_CRMF_ENCRYPTEDKEY *encryptedKey, + X509_STORE *ts, STACK_OF(X509) *extra, EVP_PKEY *pkey, + X509 *cert, ASN1_OCTET_STRING *secret, + OSSL_LIB_CTX *libctx, const char *propq); +int OSSL_CRMF_MSG_centralkeygen_requested(const OSSL_CRMF_MSG *crm, const X509_REQ *p10cr); +# ifndef OPENSSL_NO_CMS +OSSL_CRMF_ENCRYPTEDKEY *OSSL_CRMF_ENCRYPTEDKEY_init_envdata(CMS_EnvelopedData *envdata); +# endif # ifdef __cplusplus } diff --git a/deps/openssl/config/archs/BSD-x86/asm/include/openssl/crypto.h b/deps/openssl/config/archs/BSD-x86/asm/include/openssl/crypto.h index 3f40be6d8c61d5..fd2cfd3e5a9ac4 100644 --- a/deps/openssl/config/archs/BSD-x86/asm/include/openssl/crypto.h +++ b/deps/openssl/config/archs/BSD-x86/asm/include/openssl/crypto.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/crypto.h.in * - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2024 The OpenSSL Project Authors. All Rights Reserved. * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved * * Licensed under the Apache License 2.0 (the "License"). You may not use @@ -85,9 +85,15 @@ int CRYPTO_THREAD_unlock(CRYPTO_RWLOCK *lock); void CRYPTO_THREAD_lock_free(CRYPTO_RWLOCK *lock); int CRYPTO_atomic_add(int *val, int amount, int *ret, CRYPTO_RWLOCK *lock); +int CRYPTO_atomic_add64(uint64_t *val, uint64_t op, uint64_t *ret, + CRYPTO_RWLOCK *lock); +int CRYPTO_atomic_and(uint64_t *val, uint64_t op, uint64_t *ret, + CRYPTO_RWLOCK *lock); int CRYPTO_atomic_or(uint64_t *val, uint64_t op, uint64_t *ret, CRYPTO_RWLOCK *lock); int CRYPTO_atomic_load(uint64_t *val, uint64_t *ret, CRYPTO_RWLOCK *lock); +int CRYPTO_atomic_load_int(int *val, int *ret, CRYPTO_RWLOCK *lock); +int CRYPTO_atomic_store(uint64_t *dst, uint64_t val, CRYPTO_RWLOCK *lock); /* No longer needed, so this is a no-op */ #define OPENSSL_malloc_init() while(0) continue @@ -96,6 +102,9 @@ int CRYPTO_atomic_load(uint64_t *val, uint64_t *ret, CRYPTO_RWLOCK *lock); CRYPTO_malloc(num, OPENSSL_FILE, OPENSSL_LINE) # define OPENSSL_zalloc(num) \ CRYPTO_zalloc(num, OPENSSL_FILE, OPENSSL_LINE) +# define OPENSSL_aligned_alloc(num, alignment, freeptr) \ + CRYPTO_aligned_alloc(num, alignment, freeptr, \ + OPENSSL_FILE, OPENSSL_LINE) # define OPENSSL_realloc(addr, num) \ CRYPTO_realloc(addr, num, OPENSSL_FILE, OPENSSL_LINE) # define OPENSSL_clear_realloc(addr, old_num, num) \ @@ -124,6 +133,7 @@ int CRYPTO_atomic_load(uint64_t *val, uint64_t *ret, CRYPTO_RWLOCK *lock); size_t OPENSSL_strlcpy(char *dst, const char *src, size_t siz); size_t OPENSSL_strlcat(char *dst, const char *src, size_t siz); size_t OPENSSL_strnlen(const char *str, size_t maxlen); +int OPENSSL_strtoul(const char *str, char **endptr, int base, unsigned long *num); int OPENSSL_buf2hexstr_ex(char *str, size_t str_n, size_t *strlength, const unsigned char *buf, size_t buflen, const char sep); @@ -160,6 +170,7 @@ const char *OpenSSL_version(int type); # define OPENSSL_FULL_VERSION_STRING 7 # define OPENSSL_MODULES_DIR 8 # define OPENSSL_CPU_INFO 9 +# define OPENSSL_WINCTX 10 const char *OPENSSL_info(int type); /* @@ -174,6 +185,7 @@ const char *OPENSSL_info(int type); # define OPENSSL_INFO_LIST_SEPARATOR 1006 # define OPENSSL_INFO_SEED_SOURCE 1007 # define OPENSSL_INFO_CPU_SETTINGS 1008 +# define OPENSSL_INFO_WINDOWS_CONTEXT 1009 int OPENSSL_issetugid(void); @@ -341,11 +353,14 @@ void CRYPTO_get_mem_functions(CRYPTO_malloc_fn *malloc_fn, CRYPTO_realloc_fn *realloc_fn, CRYPTO_free_fn *free_fn); -void *CRYPTO_malloc(size_t num, const char *file, int line); -void *CRYPTO_zalloc(size_t num, const char *file, int line); -void *CRYPTO_memdup(const void *str, size_t siz, const char *file, int line); -char *CRYPTO_strdup(const char *str, const char *file, int line); -char *CRYPTO_strndup(const char *str, size_t s, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_malloc(size_t num, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_zalloc(size_t num, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_aligned_alloc(size_t num, size_t align, + void **freeptr, const char *file, + int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_memdup(const void *str, size_t siz, const char *file, int line); +OSSL_CRYPTO_ALLOC char *CRYPTO_strdup(const char *str, const char *file, int line); +OSSL_CRYPTO_ALLOC char *CRYPTO_strndup(const char *str, size_t s, const char *file, int line); void CRYPTO_free(void *ptr, const char *file, int line); void CRYPTO_clear_free(void *ptr, size_t num, const char *file, int line); void *CRYPTO_realloc(void *addr, size_t num, const char *file, int line); @@ -354,8 +369,8 @@ void *CRYPTO_clear_realloc(void *addr, size_t old_num, size_t num, int CRYPTO_secure_malloc_init(size_t sz, size_t minsize); int CRYPTO_secure_malloc_done(void); -void *CRYPTO_secure_malloc(size_t num, const char *file, int line); -void *CRYPTO_secure_zalloc(size_t num, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_secure_malloc(size_t num, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_secure_zalloc(size_t num, const char *file, int line); void CRYPTO_secure_free(void *ptr, const char *file, int line); void CRYPTO_secure_clear_free(void *ptr, size_t num, const char *file, int line); @@ -376,6 +391,9 @@ void OPENSSL_cleanse(void *ptr, size_t len); # define CRYPTO_MEM_CHECK_ENABLE 0x2 /* Control and mode bit */ # define CRYPTO_MEM_CHECK_DISABLE 0x3 /* Control only */ +/* max allowed length for value of OPENSSL_MALLOC_FAILURES env var. */ +# define CRYPTO_MEM_CHECK_MAX_FS 256 + void CRYPTO_get_alloc_counts(int *mcount, int *rcount, int *fcount); # ifndef OPENSSL_NO_DEPRECATED_3_0 # define OPENSSL_mem_debug_push(info) \ @@ -551,6 +569,13 @@ int OSSL_LIB_CTX_load_config(OSSL_LIB_CTX *ctx, const char *config_file); void OSSL_LIB_CTX_free(OSSL_LIB_CTX *); OSSL_LIB_CTX *OSSL_LIB_CTX_get0_global_default(void); OSSL_LIB_CTX *OSSL_LIB_CTX_set0_default(OSSL_LIB_CTX *libctx); +int OSSL_LIB_CTX_get_conf_diagnostics(OSSL_LIB_CTX *ctx); +void OSSL_LIB_CTX_set_conf_diagnostics(OSSL_LIB_CTX *ctx, int value); + +void OSSL_sleep(uint64_t millis); + + +void *OSSL_LIB_CTX_get_data(OSSL_LIB_CTX *ctx, int index); # ifdef __cplusplus } diff --git a/deps/openssl/config/archs/BSD-x86/asm/include/openssl/ct.h b/deps/openssl/config/archs/BSD-x86/asm/include/openssl/ct.h index b6dd8c3547710a..e6dd1192a4e0b3 100644 --- a/deps/openssl/config/archs/BSD-x86/asm/include/openssl/ct.h +++ b/deps/openssl/config/archs/BSD-x86/asm/include/openssl/ct.h @@ -133,7 +133,7 @@ typedef enum { */ CT_POLICY_EVAL_CTX *CT_POLICY_EVAL_CTX_new_ex(OSSL_LIB_CTX *libctx, const char *propq); - + /* * The same as CT_POLICY_EVAL_CTX_new_ex() but the default library * context and property query string is used. diff --git a/deps/openssl/config/archs/BSD-x86/asm/include/openssl/err.h b/deps/openssl/config/archs/BSD-x86/asm/include/openssl/err.h index 2abf2483488181..daca18e7b757b0 100644 --- a/deps/openssl/config/archs/BSD-x86/asm/include/openssl/err.h +++ b/deps/openssl/config/archs/BSD-x86/asm/include/openssl/err.h @@ -1,5 +1,5 @@ /* - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -372,7 +372,7 @@ typedef struct ERR_string_data_st { } ERR_STRING_DATA; DEFINE_LHASH_OF_INTERNAL(ERR_STRING_DATA); -#define lh_ERR_STRING_DATA_new(hfn, cmp) ((LHASH_OF(ERR_STRING_DATA) *)OPENSSL_LH_new(ossl_check_ERR_STRING_DATA_lh_hashfunc_type(hfn), ossl_check_ERR_STRING_DATA_lh_compfunc_type(cmp))) +#define lh_ERR_STRING_DATA_new(hfn, cmp) ((LHASH_OF(ERR_STRING_DATA) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new(ossl_check_ERR_STRING_DATA_lh_hashfunc_type(hfn), ossl_check_ERR_STRING_DATA_lh_compfunc_type(cmp)), lh_ERR_STRING_DATA_hash_thunk, lh_ERR_STRING_DATA_comp_thunk, lh_ERR_STRING_DATA_doall_thunk, lh_ERR_STRING_DATA_doall_arg_thunk)) #define lh_ERR_STRING_DATA_free(lh) OPENSSL_LH_free(ossl_check_ERR_STRING_DATA_lh_type(lh)) #define lh_ERR_STRING_DATA_flush(lh) OPENSSL_LH_flush(ossl_check_ERR_STRING_DATA_lh_type(lh)) #define lh_ERR_STRING_DATA_insert(lh, ptr) ((ERR_STRING_DATA *)OPENSSL_LH_insert(ossl_check_ERR_STRING_DATA_lh_type(lh), ossl_check_ERR_STRING_DATA_lh_plain_type(ptr))) @@ -496,6 +496,14 @@ int ERR_get_next_error_library(void); int ERR_set_mark(void); int ERR_pop_to_mark(void); int ERR_clear_last_mark(void); +int ERR_count_to_mark(void); +int ERR_pop(void); + +ERR_STATE *OSSL_ERR_STATE_new(void); +void OSSL_ERR_STATE_save(ERR_STATE *es); +void OSSL_ERR_STATE_save_to_mark(ERR_STATE *es); +void OSSL_ERR_STATE_restore(const ERR_STATE *es); +void OSSL_ERR_STATE_free(ERR_STATE *es); #ifdef __cplusplus } diff --git a/deps/openssl/config/archs/BSD-x86/asm/include/openssl/fipskey.h b/deps/openssl/config/archs/BSD-x86/asm/include/openssl/fipskey.h index 42ba014b313ba8..929db18c678364 100644 --- a/deps/openssl/config/archs/BSD-x86/asm/include/openssl/fipskey.h +++ b/deps/openssl/config/archs/BSD-x86/asm/include/openssl/fipskey.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/fipskey.h.in * - * Copyright 2020-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2020-2024 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -29,6 +29,11 @@ extern "C" { */ #define FIPS_KEY_STRING "f4556650ac31d35461610bac4ed81b1a181b2d8a43ea2854cbae22ca74560813" +/* + * The FIPS provider vendor name, as a string. + */ +#define FIPS_VENDOR "OpenSSL FIPS Provider" + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/BSD-x86/asm/include/openssl/lhash.h b/deps/openssl/config/archs/BSD-x86/asm/include/openssl/lhash.h index 39dd6254acdeb6..62c55b20fd9716 100644 --- a/deps/openssl/config/archs/BSD-x86/asm/include/openssl/lhash.h +++ b/deps/openssl/config/archs/BSD-x86/asm/include/openssl/lhash.h @@ -1,5 +1,5 @@ /* - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2024 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -24,6 +24,9 @@ # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -31,9 +34,13 @@ extern "C" { typedef struct lhash_node_st OPENSSL_LH_NODE; typedef int (*OPENSSL_LH_COMPFUNC) (const void *, const void *); +typedef int (*OPENSSL_LH_COMPFUNCTHUNK) (const void *, const void *, OPENSSL_LH_COMPFUNC cfn); typedef unsigned long (*OPENSSL_LH_HASHFUNC) (const void *); +typedef unsigned long (*OPENSSL_LH_HASHFUNCTHUNK) (const void *, OPENSSL_LH_HASHFUNC hfn); typedef void (*OPENSSL_LH_DOALL_FUNC) (void *); +typedef void (*OPENSSL_LH_DOALL_FUNC_THUNK) (void *, OPENSSL_LH_DOALL_FUNC doall); typedef void (*OPENSSL_LH_DOALL_FUNCARG) (void *, void *); +typedef void (*OPENSSL_LH_DOALL_FUNCARG_THUNK) (void *, void *, OPENSSL_LH_DOALL_FUNCARG doall); typedef struct lhash_st OPENSSL_LHASH; /* @@ -79,26 +86,40 @@ typedef struct lhash_st OPENSSL_LHASH; int OPENSSL_LH_error(OPENSSL_LHASH *lh); OPENSSL_LHASH *OPENSSL_LH_new(OPENSSL_LH_HASHFUNC h, OPENSSL_LH_COMPFUNC c); +OPENSSL_LHASH *OPENSSL_LH_set_thunks(OPENSSL_LHASH *lh, + OPENSSL_LH_HASHFUNCTHUNK hw, + OPENSSL_LH_COMPFUNCTHUNK cw, + OPENSSL_LH_DOALL_FUNC_THUNK daw, + OPENSSL_LH_DOALL_FUNCARG_THUNK daaw); void OPENSSL_LH_free(OPENSSL_LHASH *lh); void OPENSSL_LH_flush(OPENSSL_LHASH *lh); void *OPENSSL_LH_insert(OPENSSL_LHASH *lh, void *data); void *OPENSSL_LH_delete(OPENSSL_LHASH *lh, const void *data); void *OPENSSL_LH_retrieve(OPENSSL_LHASH *lh, const void *data); void OPENSSL_LH_doall(OPENSSL_LHASH *lh, OPENSSL_LH_DOALL_FUNC func); -void OPENSSL_LH_doall_arg(OPENSSL_LHASH *lh, OPENSSL_LH_DOALL_FUNCARG func, void *arg); +void OPENSSL_LH_doall_arg(OPENSSL_LHASH *lh, + OPENSSL_LH_DOALL_FUNCARG func, void *arg); +void OPENSSL_LH_doall_arg_thunk(OPENSSL_LHASH *lh, + OPENSSL_LH_DOALL_FUNCARG_THUNK daaw, + OPENSSL_LH_DOALL_FUNCARG fn, void *arg); + unsigned long OPENSSL_LH_strhash(const char *c); unsigned long OPENSSL_LH_num_items(const OPENSSL_LHASH *lh); unsigned long OPENSSL_LH_get_down_load(const OPENSSL_LHASH *lh); void OPENSSL_LH_set_down_load(OPENSSL_LHASH *lh, unsigned long down_load); # ifndef OPENSSL_NO_STDIO -void OPENSSL_LH_stats(const OPENSSL_LHASH *lh, FILE *fp); -void OPENSSL_LH_node_stats(const OPENSSL_LHASH *lh, FILE *fp); -void OPENSSL_LH_node_usage_stats(const OPENSSL_LHASH *lh, FILE *fp); +# ifndef OPENSSL_NO_DEPRECATED_3_1 +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_stats(const OPENSSL_LHASH *lh, FILE *fp); +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_node_stats(const OPENSSL_LHASH *lh, FILE *fp); +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_node_usage_stats(const OPENSSL_LHASH *lh, FILE *fp); +# endif +# endif +# ifndef OPENSSL_NO_DEPRECATED_3_1 +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_stats_bio(const OPENSSL_LHASH *lh, BIO *out); +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_node_stats_bio(const OPENSSL_LHASH *lh, BIO *out); +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_node_usage_stats_bio(const OPENSSL_LHASH *lh, BIO *out); # endif -void OPENSSL_LH_stats_bio(const OPENSSL_LHASH *lh, BIO *out); -void OPENSSL_LH_node_stats_bio(const OPENSSL_LHASH *lh, BIO *out); -void OPENSSL_LH_node_usage_stats_bio(const OPENSSL_LHASH *lh, BIO *out); # ifndef OPENSSL_NO_DEPRECATED_1_1_0 # define _LHASH OPENSSL_LHASH @@ -129,110 +150,190 @@ void OPENSSL_LH_node_usage_stats_bio(const OPENSSL_LHASH *lh, BIO *out); /* Helper macro for internal use */ # define DEFINE_LHASH_OF_INTERNAL(type) \ - LHASH_OF(type) { union lh_##type##_dummy { void* d1; unsigned long d2; int d3; } dummy; }; \ + LHASH_OF(type) { \ + union lh_##type##_dummy { void* d1; unsigned long d2; int d3; } dummy; \ + }; \ typedef int (*lh_##type##_compfunc)(const type *a, const type *b); \ typedef unsigned long (*lh_##type##_hashfunc)(const type *a); \ typedef void (*lh_##type##_doallfunc)(type *a); \ - static ossl_unused ossl_inline type *ossl_check_##type##_lh_plain_type(type *ptr) \ + static ossl_inline unsigned long lh_##type##_hash_thunk(const void *data, OPENSSL_LH_HASHFUNC hfn) \ + { \ + unsigned long (*hfn_conv)(const type *) = (unsigned long (*)(const type *))hfn; \ + return hfn_conv((const type *)data); \ + } \ + static ossl_inline int lh_##type##_comp_thunk(const void *da, const void *db, OPENSSL_LH_COMPFUNC cfn) \ + { \ + int (*cfn_conv)(const type *, const type *) = (int (*)(const type *, const type *))cfn; \ + return cfn_conv((const type *)da, (const type *)db); \ + } \ + static ossl_inline void lh_##type##_doall_thunk(void *node, OPENSSL_LH_DOALL_FUNC doall) \ + { \ + void (*doall_conv)(type *) = (void (*)(type *))doall; \ + doall_conv((type *)node); \ + } \ + static ossl_inline void lh_##type##_doall_arg_thunk(void *node, void *arg, OPENSSL_LH_DOALL_FUNCARG doall) \ + { \ + void (*doall_conv)(type *, void *) = (void (*)(type *, void *))doall; \ + doall_conv((type *)node, arg); \ + } \ + static ossl_unused ossl_inline type *\ + ossl_check_##type##_lh_plain_type(type *ptr) \ { \ return ptr; \ } \ - static ossl_unused ossl_inline const type *ossl_check_const_##type##_lh_plain_type(const type *ptr) \ + static ossl_unused ossl_inline const type * \ + ossl_check_const_##type##_lh_plain_type(const type *ptr) \ { \ return ptr; \ } \ - static ossl_unused ossl_inline const OPENSSL_LHASH *ossl_check_const_##type##_lh_type(const LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline const OPENSSL_LHASH * \ + ossl_check_const_##type##_lh_type(const LHASH_OF(type) *lh) \ { \ return (const OPENSSL_LHASH *)lh; \ } \ - static ossl_unused ossl_inline OPENSSL_LHASH *ossl_check_##type##_lh_type(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline OPENSSL_LHASH * \ + ossl_check_##type##_lh_type(LHASH_OF(type) *lh) \ { \ return (OPENSSL_LHASH *)lh; \ } \ - static ossl_unused ossl_inline OPENSSL_LH_COMPFUNC ossl_check_##type##_lh_compfunc_type(lh_##type##_compfunc cmp) \ + static ossl_unused ossl_inline OPENSSL_LH_COMPFUNC \ + ossl_check_##type##_lh_compfunc_type(lh_##type##_compfunc cmp) \ { \ return (OPENSSL_LH_COMPFUNC)cmp; \ } \ - static ossl_unused ossl_inline OPENSSL_LH_HASHFUNC ossl_check_##type##_lh_hashfunc_type(lh_##type##_hashfunc hfn) \ + static ossl_unused ossl_inline OPENSSL_LH_HASHFUNC \ + ossl_check_##type##_lh_hashfunc_type(lh_##type##_hashfunc hfn) \ { \ return (OPENSSL_LH_HASHFUNC)hfn; \ } \ - static ossl_unused ossl_inline OPENSSL_LH_DOALL_FUNC ossl_check_##type##_lh_doallfunc_type(lh_##type##_doallfunc dfn) \ + static ossl_unused ossl_inline OPENSSL_LH_DOALL_FUNC \ + ossl_check_##type##_lh_doallfunc_type(lh_##type##_doallfunc dfn) \ { \ return (OPENSSL_LH_DOALL_FUNC)dfn; \ } \ LHASH_OF(type) -# define DEFINE_LHASH_OF(type) \ - LHASH_OF(type) { union lh_##type##_dummy { void* d1; unsigned long d2; int d3; } dummy; }; \ - static ossl_unused ossl_inline LHASH_OF(type) *lh_##type##_new(unsigned long (*hfn)(const type *), \ - int (*cfn)(const type *, const type *)) \ +# ifndef OPENSSL_NO_DEPRECATED_3_1 +# define DEFINE_LHASH_OF_DEPRECATED(type) \ + static ossl_unused ossl_inline void \ + lh_##type##_node_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ { \ - return (LHASH_OF(type) *) \ - OPENSSL_LH_new((OPENSSL_LH_HASHFUNC)hfn, (OPENSSL_LH_COMPFUNC)cfn); \ + OPENSSL_LH_node_stats_bio((const OPENSSL_LHASH *)lh, out); \ } \ - static ossl_unused ossl_inline void lh_##type##_free(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline void \ + lh_##type##_node_usage_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + { \ + OPENSSL_LH_node_usage_stats_bio((const OPENSSL_LHASH *)lh, out); \ + } \ + static ossl_unused ossl_inline void \ + lh_##type##_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + { \ + OPENSSL_LH_stats_bio((const OPENSSL_LHASH *)lh, out); \ + } +# else +# define DEFINE_LHASH_OF_DEPRECATED(type) +# endif + +# define DEFINE_LHASH_OF_EX(type) \ + LHASH_OF(type) { \ + union lh_##type##_dummy { void* d1; unsigned long d2; int d3; } dummy; \ + }; \ + static unsigned long \ + lh_##type##_hfn_thunk(const void *data, OPENSSL_LH_HASHFUNC hfn) \ + { \ + unsigned long (*hfn_conv)(const type *) = (unsigned long (*)(const type *))hfn; \ + return hfn_conv((const type *)data); \ + } \ + static int lh_##type##_cfn_thunk(const void *da, const void *db, OPENSSL_LH_COMPFUNC cfn) \ + { \ + int (*cfn_conv)(const type *, const type *) = (int (*)(const type *, const type *))cfn; \ + return cfn_conv((const type *)da, (const type *)db); \ + } \ + static ossl_unused ossl_inline void \ + lh_##type##_free(LHASH_OF(type) *lh) \ { \ OPENSSL_LH_free((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline void lh_##type##_flush(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline void \ + lh_##type##_flush(LHASH_OF(type) *lh) \ { \ OPENSSL_LH_flush((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline type *lh_##type##_insert(LHASH_OF(type) *lh, type *d) \ + static ossl_unused ossl_inline type * \ + lh_##type##_insert(LHASH_OF(type) *lh, type *d) \ { \ return (type *)OPENSSL_LH_insert((OPENSSL_LHASH *)lh, d); \ } \ - static ossl_unused ossl_inline type *lh_##type##_delete(LHASH_OF(type) *lh, const type *d) \ + static ossl_unused ossl_inline type * \ + lh_##type##_delete(LHASH_OF(type) *lh, const type *d) \ { \ return (type *)OPENSSL_LH_delete((OPENSSL_LHASH *)lh, d); \ } \ - static ossl_unused ossl_inline type *lh_##type##_retrieve(LHASH_OF(type) *lh, const type *d) \ + static ossl_unused ossl_inline type * \ + lh_##type##_retrieve(LHASH_OF(type) *lh, const type *d) \ { \ return (type *)OPENSSL_LH_retrieve((OPENSSL_LHASH *)lh, d); \ } \ - static ossl_unused ossl_inline int lh_##type##_error(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline int \ + lh_##type##_error(LHASH_OF(type) *lh) \ { \ return OPENSSL_LH_error((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline unsigned long lh_##type##_num_items(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline unsigned long \ + lh_##type##_num_items(LHASH_OF(type) *lh) \ { \ return OPENSSL_LH_num_items((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline void lh_##type##_node_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + static ossl_unused ossl_inline unsigned long \ + lh_##type##_get_down_load(LHASH_OF(type) *lh) \ { \ - OPENSSL_LH_node_stats_bio((const OPENSSL_LHASH *)lh, out); \ + return OPENSSL_LH_get_down_load((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline void lh_##type##_node_usage_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + static ossl_unused ossl_inline void \ + lh_##type##_set_down_load(LHASH_OF(type) *lh, unsigned long dl) \ { \ - OPENSSL_LH_node_usage_stats_bio((const OPENSSL_LHASH *)lh, out); \ + OPENSSL_LH_set_down_load((OPENSSL_LHASH *)lh, dl); \ } \ - static ossl_unused ossl_inline void lh_##type##_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall_thunk(void *node, OPENSSL_LH_DOALL_FUNC doall) \ { \ - OPENSSL_LH_stats_bio((const OPENSSL_LHASH *)lh, out); \ + void (*doall_conv)(type *) = (void (*)(type *))doall; \ + doall_conv((type *)node); \ } \ - static ossl_unused ossl_inline unsigned long lh_##type##_get_down_load(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall_arg_thunk(void *node, void *arg, OPENSSL_LH_DOALL_FUNCARG doall) \ { \ - return OPENSSL_LH_get_down_load((OPENSSL_LHASH *)lh); \ + void (*doall_conv)(type *, void *) = (void (*)(type *, void *))doall; \ + doall_conv((type *)node, arg); \ } \ - static ossl_unused ossl_inline void lh_##type##_set_down_load(LHASH_OF(type) *lh, unsigned long dl) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall(LHASH_OF(type) *lh, void (*doall)(type *)) \ { \ - OPENSSL_LH_set_down_load((OPENSSL_LHASH *)lh, dl); \ + OPENSSL_LH_doall((OPENSSL_LHASH *)lh, (OPENSSL_LH_DOALL_FUNC)doall); \ } \ - static ossl_unused ossl_inline void lh_##type##_doall(LHASH_OF(type) *lh, \ - void (*doall)(type *)) \ + static ossl_unused ossl_inline LHASH_OF(type) * \ + lh_##type##_new(unsigned long (*hfn)(const type *), \ + int (*cfn)(const type *, const type *)) \ { \ - OPENSSL_LH_doall((OPENSSL_LHASH *)lh, (OPENSSL_LH_DOALL_FUNC)doall); \ + return (LHASH_OF(type) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new((OPENSSL_LH_HASHFUNC)hfn, (OPENSSL_LH_COMPFUNC)cfn), \ + lh_##type##_hfn_thunk, lh_##type##_cfn_thunk, \ + lh_##type##_doall_thunk, \ + lh_##type##_doall_arg_thunk); \ } \ - static ossl_unused ossl_inline void lh_##type##_doall_arg(LHASH_OF(type) *lh, \ - void (*doallarg)(type *, void *), \ - void *arg) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall_arg(LHASH_OF(type) *lh, \ + void (*doallarg)(type *, void *), void *arg) \ { \ OPENSSL_LH_doall_arg((OPENSSL_LHASH *)lh, \ (OPENSSL_LH_DOALL_FUNCARG)doallarg, arg); \ } \ LHASH_OF(type) +# define DEFINE_LHASH_OF(type) \ + DEFINE_LHASH_OF_EX(type); \ + DEFINE_LHASH_OF_DEPRECATED(type) \ + LHASH_OF(type) + #define IMPLEMENT_LHASH_DOALL_ARG_CONST(type, argtype) \ int_implement_lhash_doall(type, argtype, const type) @@ -240,17 +341,26 @@ void OPENSSL_LH_node_usage_stats_bio(const OPENSSL_LHASH *lh, BIO *out); int_implement_lhash_doall(type, argtype, type) #define int_implement_lhash_doall(type, argtype, cbargtype) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall_##argtype##_thunk(void *node, void *arg, OPENSSL_LH_DOALL_FUNCARG fn) \ + { \ + void (*fn_conv)(cbargtype *, argtype *) = (void (*)(cbargtype *, argtype *))fn; \ + fn_conv((cbargtype *)node, (argtype *)arg); \ + } \ static ossl_unused ossl_inline void \ lh_##type##_doall_##argtype(LHASH_OF(type) *lh, \ void (*fn)(cbargtype *, argtype *), \ argtype *arg) \ { \ - OPENSSL_LH_doall_arg((OPENSSL_LHASH *)lh, (OPENSSL_LH_DOALL_FUNCARG)fn, (void *)arg); \ + OPENSSL_LH_doall_arg_thunk((OPENSSL_LHASH *)lh, \ + lh_##type##_doall_##argtype##_thunk, \ + (OPENSSL_LH_DOALL_FUNCARG)fn, \ + (void *)arg); \ } \ LHASH_OF(type) DEFINE_LHASH_OF_INTERNAL(OPENSSL_STRING); -#define lh_OPENSSL_STRING_new(hfn, cmp) ((LHASH_OF(OPENSSL_STRING) *)OPENSSL_LH_new(ossl_check_OPENSSL_STRING_lh_hashfunc_type(hfn), ossl_check_OPENSSL_STRING_lh_compfunc_type(cmp))) +#define lh_OPENSSL_STRING_new(hfn, cmp) ((LHASH_OF(OPENSSL_STRING) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new(ossl_check_OPENSSL_STRING_lh_hashfunc_type(hfn), ossl_check_OPENSSL_STRING_lh_compfunc_type(cmp)), lh_OPENSSL_STRING_hash_thunk, lh_OPENSSL_STRING_comp_thunk, lh_OPENSSL_STRING_doall_thunk, lh_OPENSSL_STRING_doall_arg_thunk)) #define lh_OPENSSL_STRING_free(lh) OPENSSL_LH_free(ossl_check_OPENSSL_STRING_lh_type(lh)) #define lh_OPENSSL_STRING_flush(lh) OPENSSL_LH_flush(ossl_check_OPENSSL_STRING_lh_type(lh)) #define lh_OPENSSL_STRING_insert(lh, ptr) ((OPENSSL_STRING *)OPENSSL_LH_insert(ossl_check_OPENSSL_STRING_lh_type(lh), ossl_check_OPENSSL_STRING_lh_plain_type(ptr))) @@ -265,7 +375,7 @@ DEFINE_LHASH_OF_INTERNAL(OPENSSL_STRING); #define lh_OPENSSL_STRING_set_down_load(lh, dl) OPENSSL_LH_set_down_load(ossl_check_OPENSSL_STRING_lh_type(lh), dl) #define lh_OPENSSL_STRING_doall(lh, dfn) OPENSSL_LH_doall(ossl_check_OPENSSL_STRING_lh_type(lh), ossl_check_OPENSSL_STRING_lh_doallfunc_type(dfn)) DEFINE_LHASH_OF_INTERNAL(OPENSSL_CSTRING); -#define lh_OPENSSL_CSTRING_new(hfn, cmp) ((LHASH_OF(OPENSSL_CSTRING) *)OPENSSL_LH_new(ossl_check_OPENSSL_CSTRING_lh_hashfunc_type(hfn), ossl_check_OPENSSL_CSTRING_lh_compfunc_type(cmp))) +#define lh_OPENSSL_CSTRING_new(hfn, cmp) ((LHASH_OF(OPENSSL_CSTRING) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new(ossl_check_OPENSSL_CSTRING_lh_hashfunc_type(hfn), ossl_check_OPENSSL_CSTRING_lh_compfunc_type(cmp)), lh_OPENSSL_CSTRING_hash_thunk, lh_OPENSSL_CSTRING_comp_thunk, lh_OPENSSL_CSTRING_doall_thunk, lh_OPENSSL_CSTRING_doall_arg_thunk)) #define lh_OPENSSL_CSTRING_free(lh) OPENSSL_LH_free(ossl_check_OPENSSL_CSTRING_lh_type(lh)) #define lh_OPENSSL_CSTRING_flush(lh) OPENSSL_LH_flush(ossl_check_OPENSSL_CSTRING_lh_type(lh)) #define lh_OPENSSL_CSTRING_insert(lh, ptr) ((OPENSSL_CSTRING *)OPENSSL_LH_insert(ossl_check_OPENSSL_CSTRING_lh_type(lh), ossl_check_OPENSSL_CSTRING_lh_plain_type(ptr))) diff --git a/deps/openssl/config/archs/BSD-x86/asm/include/openssl/opensslv.h b/deps/openssl/config/archs/BSD-x86/asm/include/openssl/opensslv.h index 5fb5bc63056fe0..dd50d89cb9982d 100644 --- a/deps/openssl/config/archs/BSD-x86/asm/include/openssl/opensslv.h +++ b/deps/openssl/config/archs/BSD-x86/asm/include/openssl/opensslv.h @@ -28,8 +28,8 @@ extern "C" { * These macros express version number MAJOR.MINOR.PATCH exactly */ # define OPENSSL_VERSION_MAJOR 3 -# define OPENSSL_VERSION_MINOR 0 -# define OPENSSL_VERSION_PATCH 17 +# define OPENSSL_VERSION_MINOR 5 +# define OPENSSL_VERSION_PATCH 1 /* * Additional version information @@ -74,8 +74,8 @@ extern "C" { * longer variant with OPENSSL_VERSION_PRE_RELEASE_STR and * OPENSSL_VERSION_BUILD_METADATA_STR appended. */ -# define OPENSSL_VERSION_STR "3.0.17" -# define OPENSSL_FULL_VERSION_STR "3.0.17" +# define OPENSSL_VERSION_STR "3.5.1" +# define OPENSSL_FULL_VERSION_STR "3.5.1" /* * SECTION 3: ADDITIONAL METADATA @@ -88,7 +88,7 @@ extern "C" { * SECTION 4: BACKWARD COMPATIBILITY */ -# define OPENSSL_VERSION_TEXT "OpenSSL 3.0.17 1 Jul 2025" +# define OPENSSL_VERSION_TEXT "OpenSSL 3.5.1 1 Jul 2025" /* Synthesize OPENSSL_VERSION_NUMBER with the layout 0xMNN00PPSL */ # ifdef OPENSSL_VERSION_PRE_RELEASE diff --git a/deps/openssl/config/archs/BSD-x86/asm/include/openssl/pkcs12.h b/deps/openssl/config/archs/BSD-x86/asm/include/openssl/pkcs12.h index c5e0cab06491ec..0809645dad0bbf 100644 --- a/deps/openssl/config/archs/BSD-x86/asm/include/openssl/pkcs12.h +++ b/deps/openssl/config/archs/BSD-x86/asm/include/openssl/pkcs12.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/pkcs12.h.in * - * Copyright 1999-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1999-2024 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -25,6 +25,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -41,6 +44,7 @@ extern "C" { # define PKCS12_MAC_KEY_LENGTH 20 +/* The macro is expected to be used only internally. Kept for backwards compatibility. */ # define PKCS12_SALT_LEN 8 /* It's not clear if these are actually needed... */ @@ -130,7 +134,9 @@ int PKCS12_SAFEBAG_get_bag_nid(const PKCS12_SAFEBAG *bag); const ASN1_TYPE *PKCS12_SAFEBAG_get0_bag_obj(const PKCS12_SAFEBAG *bag); const ASN1_OBJECT *PKCS12_SAFEBAG_get0_bag_type(const PKCS12_SAFEBAG *bag); +X509 *PKCS12_SAFEBAG_get1_cert_ex(const PKCS12_SAFEBAG *bag, OSSL_LIB_CTX *libctx, const char *propq); X509 *PKCS12_SAFEBAG_get1_cert(const PKCS12_SAFEBAG *bag); +X509_CRL *PKCS12_SAFEBAG_get1_crl_ex(const PKCS12_SAFEBAG *bag, OSSL_LIB_CTX *libctx, const char *propq); X509_CRL *PKCS12_SAFEBAG_get1_crl(const PKCS12_SAFEBAG *bag); const STACK_OF(PKCS12_SAFEBAG) * PKCS12_SAFEBAG_get0_safes(const PKCS12_SAFEBAG *bag); @@ -218,6 +224,7 @@ ASN1_TYPE *PKCS12_get_attr_gen(const STACK_OF(X509_ATTRIBUTE) *attrs, char *PKCS12_get_friendlyname(PKCS12_SAFEBAG *bag); const STACK_OF(X509_ATTRIBUTE) * PKCS12_SAFEBAG_get0_attrs(const PKCS12_SAFEBAG *bag); +void PKCS12_SAFEBAG_set0_attrs(PKCS12_SAFEBAG *bag, STACK_OF(X509_ATTRIBUTE) *attrs); unsigned char *PKCS12_pbe_crypt(const X509_ALGOR *algor, const char *pass, int passlen, const unsigned char *in, int inlen, @@ -285,6 +292,9 @@ int PKCS12_verify_mac(PKCS12 *p12, const char *pass, int passlen); int PKCS12_set_mac(PKCS12 *p12, const char *pass, int passlen, unsigned char *salt, int saltlen, int iter, const EVP_MD *md_type); +int PKCS12_set_pbmac1_pbkdf2(PKCS12 *p12, const char *pass, int passlen, + unsigned char *salt, int saltlen, int iter, + const EVP_MD *md_type, const char *prf_md_name); int PKCS12_setup_mac(PKCS12 *p12, int iter, unsigned char *salt, int saltlen, const EVP_MD *md_type); unsigned char *OPENSSL_asc2uni(const char *asc, int asclen, @@ -305,6 +315,7 @@ DECLARE_ASN1_ITEM(PKCS12_AUTHSAFES) void PKCS12_PBE_add(void); int PKCS12_parse(PKCS12 *p12, const char *pass, EVP_PKEY **pkey, X509 **cert, STACK_OF(X509) **ca); +typedef int PKCS12_create_cb(PKCS12_SAFEBAG *bag, void *cbarg); PKCS12 *PKCS12_create(const char *pass, const char *name, EVP_PKEY *pkey, X509 *cert, STACK_OF(X509) *ca, int nid_key, int nid_cert, int iter, int mac_iter, int keytype); @@ -312,6 +323,11 @@ PKCS12 *PKCS12_create_ex(const char *pass, const char *name, EVP_PKEY *pkey, X509 *cert, STACK_OF(X509) *ca, int nid_key, int nid_cert, int iter, int mac_iter, int keytype, OSSL_LIB_CTX *ctx, const char *propq); +PKCS12 *PKCS12_create_ex2(const char *pass, const char *name, EVP_PKEY *pkey, + X509 *cert, STACK_OF(X509) *ca, int nid_key, int nid_cert, + int iter, int mac_iter, int keytype, + OSSL_LIB_CTX *ctx, const char *propq, + PKCS12_create_cb *cb, void *cbarg); PKCS12_SAFEBAG *PKCS12_add_cert(STACK_OF(PKCS12_SAFEBAG) **pbags, X509 *cert); PKCS12_SAFEBAG *PKCS12_add_key(STACK_OF(PKCS12_SAFEBAG) **pbags, diff --git a/deps/openssl/config/archs/BSD-x86/asm/include/openssl/pkcs7.h b/deps/openssl/config/archs/BSD-x86/asm/include/openssl/pkcs7.h index 0ce79bf4fa160e..fa68462aff973b 100644 --- a/deps/openssl/config/archs/BSD-x86/asm/include/openssl/pkcs7.h +++ b/deps/openssl/config/archs/BSD-x86/asm/include/openssl/pkcs7.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/pkcs7.h.in * - * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -28,6 +28,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -131,8 +134,8 @@ SKM_DEFINE_STACK_OF_INTERNAL(PKCS7_RECIP_INFO, PKCS7_RECIP_INFO, PKCS7_RECIP_INF typedef struct pkcs7_signed_st { ASN1_INTEGER *version; /* version 1 */ STACK_OF(X509_ALGOR) *md_algs; /* md used */ - STACK_OF(X509) *cert; /* [ 0 ] */ - STACK_OF(X509_CRL) *crl; /* [ 1 ] */ + STACK_OF(X509) *cert; /* [ 0 ] */ /* name should be 'certificates' */ + STACK_OF(X509_CRL) *crl; /* [ 1 ] */ /* name should be 'crls' */ STACK_OF(PKCS7_SIGNER_INFO) *signer_info; struct pkcs7_st *contents; } PKCS7_SIGNED; @@ -158,8 +161,8 @@ typedef struct pkcs7_enveloped_st { typedef struct pkcs7_signedandenveloped_st { ASN1_INTEGER *version; /* version 1 */ STACK_OF(X509_ALGOR) *md_algs; /* md used */ - STACK_OF(X509) *cert; /* [ 0 ] */ - STACK_OF(X509_CRL) *crl; /* [ 1 ] */ + STACK_OF(X509) *cert; /* [ 0 ] */ /* name should be 'certificates' */ + STACK_OF(X509_CRL) *crl; /* [ 1 ] */ /* name should be 'crls' */ STACK_OF(PKCS7_SIGNER_INFO) *signer_info; PKCS7_ENC_CONTENT *enc_data; STACK_OF(PKCS7_RECIP_INFO) *recipientinfo; @@ -200,7 +203,7 @@ typedef struct pkcs7_st { /* NID_pkcs7_data */ ASN1_OCTET_STRING *data; /* NID_pkcs7_signed */ - PKCS7_SIGNED *sign; + PKCS7_SIGNED *sign; /* field name 'signed' would clash with C keyword */ /* NID_pkcs7_enveloped */ PKCS7_ENVELOPE *enveloped; /* NID_pkcs7_signedAndEnveloped */ @@ -341,13 +344,13 @@ int PKCS7_SIGNER_INFO_set(PKCS7_SIGNER_INFO *p7i, X509 *x509, EVP_PKEY *pkey, const EVP_MD *dgst); int PKCS7_SIGNER_INFO_sign(PKCS7_SIGNER_INFO *si); int PKCS7_add_signer(PKCS7 *p7, PKCS7_SIGNER_INFO *p7i); -int PKCS7_add_certificate(PKCS7 *p7, X509 *x509); -int PKCS7_add_crl(PKCS7 *p7, X509_CRL *x509); +int PKCS7_add_certificate(PKCS7 *p7, X509 *cert); +int PKCS7_add_crl(PKCS7 *p7, X509_CRL *crl); int PKCS7_content_new(PKCS7 *p7, int nid); int PKCS7_dataVerify(X509_STORE *cert_store, X509_STORE_CTX *ctx, BIO *bio, PKCS7 *p7, PKCS7_SIGNER_INFO *si); int PKCS7_signatureVerify(BIO *bio, PKCS7 *p7, PKCS7_SIGNER_INFO *si, - X509 *x509); + X509 *signer); BIO *PKCS7_dataInit(PKCS7 *p7, BIO *bio); int PKCS7_dataFinal(PKCS7 *p7, BIO *bio); diff --git a/deps/openssl/config/archs/BSD-x86/asm/include/openssl/ssl.h b/deps/openssl/config/archs/BSD-x86/asm/include/openssl/ssl.h index 3df725c56d6c5e..7e3d89c7ef3dc9 100644 --- a/deps/openssl/config/archs/BSD-x86/asm/include/openssl/ssl.h +++ b/deps/openssl/config/archs/BSD-x86/asm/include/openssl/ssl.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/ssl.h.in * - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved * Copyright 2005 Nokia. All rights reserved. * @@ -24,6 +24,7 @@ # endif # include +# include # include # include # include @@ -42,6 +43,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -231,10 +235,8 @@ typedef struct ssl_cipher_st SSL_CIPHER; typedef struct ssl_session_st SSL_SESSION; typedef struct tls_sigalgs_st TLS_SIGALGS; typedef struct ssl_conf_ctx_st SSL_CONF_CTX; -typedef struct ssl_comp_st SSL_COMP; STACK_OF(SSL_CIPHER); -STACK_OF(SSL_COMP); /* SRTP protection profiles for use with the use_srtp extension (RFC 5764)*/ typedef struct srtp_protection_profile_st { @@ -278,28 +280,31 @@ typedef int (*tls_session_secret_cb_fn)(SSL *s, void *secret, int *secret_len, /* Extension context codes */ /* This extension is only allowed in TLS */ -#define SSL_EXT_TLS_ONLY 0x0001 +#define SSL_EXT_TLS_ONLY 0x00001 /* This extension is only allowed in DTLS */ -#define SSL_EXT_DTLS_ONLY 0x0002 +#define SSL_EXT_DTLS_ONLY 0x00002 /* Some extensions may be allowed in DTLS but we don't implement them for it */ -#define SSL_EXT_TLS_IMPLEMENTATION_ONLY 0x0004 +#define SSL_EXT_TLS_IMPLEMENTATION_ONLY 0x00004 /* Most extensions are not defined for SSLv3 but EXT_TYPE_renegotiate is */ -#define SSL_EXT_SSL3_ALLOWED 0x0008 +#define SSL_EXT_SSL3_ALLOWED 0x00008 /* Extension is only defined for TLS1.2 and below */ -#define SSL_EXT_TLS1_2_AND_BELOW_ONLY 0x0010 +#define SSL_EXT_TLS1_2_AND_BELOW_ONLY 0x00010 /* Extension is only defined for TLS1.3 and above */ -#define SSL_EXT_TLS1_3_ONLY 0x0020 +#define SSL_EXT_TLS1_3_ONLY 0x00020 /* Ignore this extension during parsing if we are resuming */ -#define SSL_EXT_IGNORE_ON_RESUMPTION 0x0040 -#define SSL_EXT_CLIENT_HELLO 0x0080 +#define SSL_EXT_IGNORE_ON_RESUMPTION 0x00040 +#define SSL_EXT_CLIENT_HELLO 0x00080 /* Really means TLS1.2 or below */ -#define SSL_EXT_TLS1_2_SERVER_HELLO 0x0100 -#define SSL_EXT_TLS1_3_SERVER_HELLO 0x0200 -#define SSL_EXT_TLS1_3_ENCRYPTED_EXTENSIONS 0x0400 -#define SSL_EXT_TLS1_3_HELLO_RETRY_REQUEST 0x0800 -#define SSL_EXT_TLS1_3_CERTIFICATE 0x1000 -#define SSL_EXT_TLS1_3_NEW_SESSION_TICKET 0x2000 -#define SSL_EXT_TLS1_3_CERTIFICATE_REQUEST 0x4000 +#define SSL_EXT_TLS1_2_SERVER_HELLO 0x00100 +#define SSL_EXT_TLS1_3_SERVER_HELLO 0x00200 +#define SSL_EXT_TLS1_3_ENCRYPTED_EXTENSIONS 0x00400 +#define SSL_EXT_TLS1_3_HELLO_RETRY_REQUEST 0x00800 +#define SSL_EXT_TLS1_3_CERTIFICATE 0x01000 +#define SSL_EXT_TLS1_3_NEW_SESSION_TICKET 0x02000 +#define SSL_EXT_TLS1_3_CERTIFICATE_REQUEST 0x04000 +#define SSL_EXT_TLS1_3_CERTIFICATE_COMPRESSION 0x08000 +/* When sending a raw public key in a certificate message */ +#define SSL_EXT_TLS1_3_RAW_PUBLIC_KEY 0x10000 /* Typedefs for handling custom extensions */ @@ -404,7 +409,7 @@ typedef int (*SSL_async_callback_fn)(SSL *s, void *arg); */ # define SSL_OP_CIPHER_SERVER_PREFERENCE SSL_OP_BIT(22) /* - * If set, a server will allow a client to issue a SSLv3.0 version + * If set, a server will allow a client to issue an SSLv3.0 version * number as latest version supported in the premaster secret, even when * TLSv1.0 (version 3.1) was announced in the client hello. Normally * this is forbidden to prevent version rollback attacks. @@ -430,6 +435,19 @@ typedef int (*SSL_async_callback_fn)(SSL *s, void *arg); * interoperability with CryptoPro CSP 3.x */ # define SSL_OP_CRYPTOPRO_TLSEXT_BUG SSL_OP_BIT(31) +/* + * Disable RFC8879 certificate compression + * SSL_OP_NO_TX_CERTIFICATE_COMPRESSION: don't send compressed certificates, + * and ignore the extension when received. + * SSL_OP_NO_RX_CERTIFICATE_COMPRESSION: don't send the extension, and + * subsequently indicating that receiving is not supported + */ +# define SSL_OP_NO_TX_CERTIFICATE_COMPRESSION SSL_OP_BIT(32) +# define SSL_OP_NO_RX_CERTIFICATE_COMPRESSION SSL_OP_BIT(33) + /* Enable KTLS TX zerocopy on Linux */ +# define SSL_OP_ENABLE_KTLS_TX_ZEROCOPY_SENDFILE SSL_OP_BIT(34) + +#define SSL_OP_PREFER_NO_DHE_KEX SSL_OP_BIT(35) /* * Option "collections." @@ -574,6 +592,8 @@ typedef int (*SSL_async_callback_fn)(SSL *s, void *arg); # define CERT_PKEY_CERT_TYPE 0x400 /* Cert chain suitable to Suite B */ # define CERT_PKEY_SUITEB 0x800 +/* Cert pkey valid for raw public key use */ +# define CERT_PKEY_RPK 0x1000 # define SSL_CONF_FLAG_CMDLINE 0x1 # define SSL_CONF_FLAG_FILE 0x2 @@ -965,6 +985,7 @@ uint32_t SSL_get_recv_max_early_data(const SSL *s); # include /* This is mostly sslv3 with a few tweaks */ # include /* Datagram TLS */ # include /* Support for the use_srtp extension */ +# include #ifdef __cplusplus extern "C" { @@ -1000,32 +1021,6 @@ SKM_DEFINE_STACK_OF_INTERNAL(SSL_CIPHER, const SSL_CIPHER, SSL_CIPHER) #define sk_SSL_CIPHER_dup(sk) ((STACK_OF(SSL_CIPHER) *)OPENSSL_sk_dup(ossl_check_const_SSL_CIPHER_sk_type(sk))) #define sk_SSL_CIPHER_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(SSL_CIPHER) *)OPENSSL_sk_deep_copy(ossl_check_const_SSL_CIPHER_sk_type(sk), ossl_check_SSL_CIPHER_copyfunc_type(copyfunc), ossl_check_SSL_CIPHER_freefunc_type(freefunc))) #define sk_SSL_CIPHER_set_cmp_func(sk, cmp) ((sk_SSL_CIPHER_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_SSL_CIPHER_sk_type(sk), ossl_check_SSL_CIPHER_compfunc_type(cmp))) -SKM_DEFINE_STACK_OF_INTERNAL(SSL_COMP, SSL_COMP, SSL_COMP) -#define sk_SSL_COMP_num(sk) OPENSSL_sk_num(ossl_check_const_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_value(sk, idx) ((SSL_COMP *)OPENSSL_sk_value(ossl_check_const_SSL_COMP_sk_type(sk), (idx))) -#define sk_SSL_COMP_new(cmp) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new(ossl_check_SSL_COMP_compfunc_type(cmp))) -#define sk_SSL_COMP_new_null() ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new_null()) -#define sk_SSL_COMP_new_reserve(cmp, n) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new_reserve(ossl_check_SSL_COMP_compfunc_type(cmp), (n))) -#define sk_SSL_COMP_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_SSL_COMP_sk_type(sk), (n)) -#define sk_SSL_COMP_free(sk) OPENSSL_sk_free(ossl_check_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_zero(sk) OPENSSL_sk_zero(ossl_check_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_delete(sk, i) ((SSL_COMP *)OPENSSL_sk_delete(ossl_check_SSL_COMP_sk_type(sk), (i))) -#define sk_SSL_COMP_delete_ptr(sk, ptr) ((SSL_COMP *)OPENSSL_sk_delete_ptr(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr))) -#define sk_SSL_COMP_push(sk, ptr) OPENSSL_sk_push(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) -#define sk_SSL_COMP_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) -#define sk_SSL_COMP_pop(sk) ((SSL_COMP *)OPENSSL_sk_pop(ossl_check_SSL_COMP_sk_type(sk))) -#define sk_SSL_COMP_shift(sk) ((SSL_COMP *)OPENSSL_sk_shift(ossl_check_SSL_COMP_sk_type(sk))) -#define sk_SSL_COMP_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_SSL_COMP_sk_type(sk),ossl_check_SSL_COMP_freefunc_type(freefunc)) -#define sk_SSL_COMP_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr), (idx)) -#define sk_SSL_COMP_set(sk, idx, ptr) ((SSL_COMP *)OPENSSL_sk_set(ossl_check_SSL_COMP_sk_type(sk), (idx), ossl_check_SSL_COMP_type(ptr))) -#define sk_SSL_COMP_find(sk, ptr) OPENSSL_sk_find(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) -#define sk_SSL_COMP_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) -#define sk_SSL_COMP_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr), pnum) -#define sk_SSL_COMP_sort(sk) OPENSSL_sk_sort(ossl_check_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_dup(sk) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_dup(ossl_check_const_SSL_COMP_sk_type(sk))) -#define sk_SSL_COMP_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_deep_copy(ossl_check_const_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_copyfunc_type(copyfunc), ossl_check_SSL_COMP_freefunc_type(freefunc))) -#define sk_SSL_COMP_set_cmp_func(sk, cmp) ((sk_SSL_COMP_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_compfunc_type(cmp))) /* compatibility */ @@ -1066,6 +1061,7 @@ typedef enum { DTLS_ST_CR_HELLO_VERIFY_REQUEST, TLS_ST_CR_SRVR_HELLO, TLS_ST_CR_CERT, + TLS_ST_CR_COMP_CERT, TLS_ST_CR_CERT_STATUS, TLS_ST_CR_KEY_EXCH, TLS_ST_CR_CERT_REQ, @@ -1075,6 +1071,7 @@ typedef enum { TLS_ST_CR_FINISHED, TLS_ST_CW_CLNT_HELLO, TLS_ST_CW_CERT, + TLS_ST_CW_COMP_CERT, TLS_ST_CW_KEY_EXCH, TLS_ST_CW_CERT_VRFY, TLS_ST_CW_CHANGE, @@ -1085,10 +1082,12 @@ typedef enum { DTLS_ST_SW_HELLO_VERIFY_REQUEST, TLS_ST_SW_SRVR_HELLO, TLS_ST_SW_CERT, + TLS_ST_SW_COMP_CERT, TLS_ST_SW_KEY_EXCH, TLS_ST_SW_CERT_REQ, TLS_ST_SW_SRVR_DONE, TLS_ST_SR_CERT, + TLS_ST_SR_COMP_CERT, TLS_ST_SR_KEY_EXCH, TLS_ST_SR_CERT_VRFY, TLS_ST_SR_NEXT_PROTO, @@ -1380,9 +1379,13 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) # define SSL_CTRL_GET_SIGNATURE_NID 132 # define SSL_CTRL_GET_TMP_KEY 133 # define SSL_CTRL_GET_NEGOTIATED_GROUP 134 +# define SSL_CTRL_GET_IANA_GROUPS 135 # define SSL_CTRL_SET_RETRY_VERIFY 136 # define SSL_CTRL_GET_VERIFY_CERT_STORE 137 # define SSL_CTRL_GET_CHAIN_CERT_STORE 138 +# define SSL_CTRL_GET0_IMPLEMENTED_GROUPS 139 +# define SSL_CTRL_GET_SIGNATURE_NAME 140 +# define SSL_CTRL_GET_PEER_SIGNATURE_NAME 141 # define SSL_CERT_SET_FIRST 1 # define SSL_CERT_SET_NEXT 2 # define SSL_CERT_SET_SERVER 3 @@ -1485,10 +1488,15 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) # define SSL_get1_groups(s, glist) \ SSL_ctrl(s,SSL_CTRL_GET_GROUPS,0,(int*)(glist)) +# define SSL_get0_iana_groups(s, plst) \ + SSL_ctrl(s,SSL_CTRL_GET_IANA_GROUPS,0,(uint16_t **)(plst)) # define SSL_CTX_set1_groups(ctx, glist, glistlen) \ SSL_CTX_ctrl(ctx,SSL_CTRL_SET_GROUPS,glistlen,(int *)(glist)) # define SSL_CTX_set1_groups_list(ctx, s) \ SSL_CTX_ctrl(ctx,SSL_CTRL_SET_GROUPS_LIST,0,(char *)(s)) +# define SSL_CTX_get0_implemented_groups(ctx, all, out) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_GET0_IMPLEMENTED_GROUPS, all, \ + (STACK_OF(OPENSSL_CSTRING) *)(out)) # define SSL_set1_groups(s, glist, glistlen) \ SSL_ctrl(s,SSL_CTRL_SET_GROUPS,glistlen,(char *)(glist)) # define SSL_set1_groups_list(s, str) \ @@ -1520,8 +1528,12 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) (char *)(clist)) # define SSL_set1_client_certificate_types(s, clist, clistlen) \ SSL_ctrl(s,SSL_CTRL_SET_CLIENT_CERT_TYPES,clistlen,(char *)(clist)) +# define SSL_get0_signature_name(s, str) \ + SSL_ctrl(s,SSL_CTRL_GET_SIGNATURE_NAME,0,(1?(str):(const char **)NULL)) # define SSL_get_signature_nid(s, pn) \ SSL_ctrl(s,SSL_CTRL_GET_SIGNATURE_NID,0,pn) +# define SSL_get0_peer_signature_name(s, str) \ + SSL_ctrl(s,SSL_CTRL_GET_PEER_SIGNATURE_NAME,0,(1?(str):(const char **)NULL)) # define SSL_get_peer_signature_nid(s, pn) \ SSL_ctrl(s,SSL_CTRL_GET_PEER_SIGNATURE_NID,0,pn) # define SSL_get_peer_tmp_key(s, pk) \ @@ -1549,6 +1561,7 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) # define SSL_get_max_proto_version(s) \ SSL_ctrl(s, SSL_CTRL_GET_MAX_PROTO_VERSION, 0, NULL) +const char *SSL_get0_group_name(SSL *s); const char *SSL_group_to_name(SSL *s, int id); /* Backwards compatibility, original 1.1.0 names */ @@ -1613,7 +1626,11 @@ void SSL_CTX_set1_cert_store(SSL_CTX *, X509_STORE *); __owur int SSL_want(const SSL *s); __owur int SSL_clear(SSL *s); +#ifndef OPENSSL_NO_DEPRECATED_3_4 +OSSL_DEPRECATEDIN_3_4_FOR("not Y2038-safe, replace with SSL_CTX_flush_sessions_ex()") void SSL_CTX_flush_sessions(SSL_CTX *ctx, long tm); +#endif +void SSL_CTX_flush_sessions_ex(SSL_CTX *ctx, time_t tm); __owur const SSL_CIPHER *SSL_get_current_cipher(const SSL *s); __owur const SSL_CIPHER *SSL_get_pending_cipher(const SSL *s); @@ -1725,13 +1742,21 @@ __owur const char *SSL_state_string(const SSL *s); __owur const char *SSL_rstate_string(const SSL *s); __owur const char *SSL_state_string_long(const SSL *s); __owur const char *SSL_rstate_string_long(const SSL *s); + +#ifndef OPENSSL_NO_DEPRECATED_3_4 +OSSL_DEPRECATEDIN_3_4_FOR("not Y2038-safe, replace with SSL_SESSION_get_time_ex()") __owur long SSL_SESSION_get_time(const SSL_SESSION *s); +OSSL_DEPRECATEDIN_3_4_FOR("not Y2038-safe, replace with SSL_SESSION_set_time_ex()") __owur long SSL_SESSION_set_time(SSL_SESSION *s, long t); +#endif __owur long SSL_SESSION_get_timeout(const SSL_SESSION *s); __owur long SSL_SESSION_set_timeout(SSL_SESSION *s, long t); __owur int SSL_SESSION_get_protocol_version(const SSL_SESSION *s); __owur int SSL_SESSION_set_protocol_version(SSL_SESSION *s, int version); +__owur time_t SSL_SESSION_get_time_ex(const SSL_SESSION *s); +__owur time_t SSL_SESSION_set_time_ex(SSL_SESSION *s, time_t t); + __owur const char *SSL_SESSION_get0_hostname(const SSL_SESSION *s); __owur int SSL_SESSION_set1_hostname(SSL_SESSION *s, const char *hostname); void SSL_SESSION_get0_alpn_selected(const SSL_SESSION *s, @@ -1783,6 +1808,9 @@ __owur int SSL_has_matching_session_id(const SSL *s, unsigned int id_len); SSL_SESSION *d2i_SSL_SESSION(SSL_SESSION **a, const unsigned char **pp, long length); +SSL_SESSION *d2i_SSL_SESSION_ex(SSL_SESSION **a, const unsigned char **pp, + long length, OSSL_LIB_CTX *libctx, + const char *propq); # ifdef OPENSSL_X509_H __owur X509 *SSL_get0_peer_certificate(const SSL *s); @@ -1840,6 +1868,8 @@ __owur int SSL_CTX_set_session_id_context(SSL_CTX *ctx, SSL *SSL_new(SSL_CTX *ctx); int SSL_up_ref(SSL *s); int SSL_is_dtls(const SSL *s); +int SSL_is_tls(const SSL *s); +int SSL_is_quic(const SSL *s); __owur int SSL_set_session_id_context(SSL *ssl, const unsigned char *sid_ctx, unsigned int sid_ctx_len); @@ -1848,8 +1878,8 @@ __owur int SSL_set_purpose(SSL *ssl, int purpose); __owur int SSL_CTX_set_trust(SSL_CTX *ctx, int trust); __owur int SSL_set_trust(SSL *ssl, int trust); -__owur int SSL_set1_host(SSL *s, const char *hostname); -__owur int SSL_add1_host(SSL *s, const char *hostname); +__owur int SSL_set1_host(SSL *s, const char *host); +__owur int SSL_add1_host(SSL *s, const char *host); __owur const char *SSL_get0_peername(SSL *s); void SSL_set_hostflags(SSL *s, unsigned int flags); @@ -1924,6 +1954,11 @@ OSSL_DEPRECATEDIN_3_0 __owur char *SSL_get_srp_userinfo(SSL *s); typedef int (*SSL_client_hello_cb_fn) (SSL *s, int *al, void *arg); void SSL_CTX_set_client_hello_cb(SSL_CTX *c, SSL_client_hello_cb_fn cb, void *arg); +typedef int (*SSL_new_pending_conn_cb_fn) (SSL_CTX *ctx, SSL *new_ssl, + void *arg); +void SSL_CTX_set_new_pending_conn_cb(SSL_CTX *c, SSL_new_pending_conn_cb_fn cb, + void *arg); + int SSL_client_hello_isv2(SSL *s); unsigned int SSL_client_hello_get0_legacy_version(SSL *s); size_t SSL_client_hello_get0_random(SSL *s, const unsigned char **out); @@ -1932,6 +1967,8 @@ size_t SSL_client_hello_get0_ciphers(SSL *s, const unsigned char **out); size_t SSL_client_hello_get0_compression_methods(SSL *s, const unsigned char **out); int SSL_client_hello_get1_extensions_present(SSL *s, int **out, size_t *outlen); +int SSL_client_hello_get_extension_order(SSL *s, uint16_t *exts, + size_t *num_exts); int SSL_client_hello_get0_ext(SSL *s, unsigned int type, const unsigned char **out, size_t *outlen); @@ -1978,6 +2015,12 @@ long SSL_callback_ctrl(SSL *, int, void (*)(void)); long SSL_CTX_ctrl(SSL_CTX *ctx, int cmd, long larg, void *parg); long SSL_CTX_callback_ctrl(SSL_CTX *, int, void (*)(void)); +# define SSL_WRITE_FLAG_CONCLUDE (1U << 0) + +__owur int SSL_write_ex2(SSL *s, const void *buf, size_t num, + uint64_t flags, + size_t *written); + # define SSL_EARLY_DATA_NOT_SENT 0 # define SSL_EARLY_DATA_REJECTED 1 # define SSL_EARLY_DATA_ACCEPTED 2 @@ -1986,6 +2029,7 @@ __owur int SSL_get_early_data_status(const SSL *s); __owur int SSL_get_error(const SSL *s, int ret_code); __owur const char *SSL_get_version(const SSL *s); +__owur int SSL_get_handshake_rtt(const SSL *s, uint64_t *rtt); /* This sets the 'default' SSL version that SSL_new() will create */ # ifndef OPENSSL_NO_DEPRECATED_3_0 @@ -2281,6 +2325,8 @@ void SSL_CTX_set_record_padding_callback(SSL_CTX *ctx, void SSL_CTX_set_record_padding_callback_arg(SSL_CTX *ctx, void *arg); void *SSL_CTX_get_record_padding_callback_arg(const SSL_CTX *ctx); int SSL_CTX_set_block_padding(SSL_CTX *ctx, size_t block_size); +int SSL_CTX_set_block_padding_ex(SSL_CTX *ctx, size_t app_block_size, + size_t hs_block_size); int SSL_set_record_padding_callback(SSL *ssl, size_t (*cb) (SSL *ssl, int type, @@ -2288,12 +2334,255 @@ int SSL_set_record_padding_callback(SSL *ssl, void SSL_set_record_padding_callback_arg(SSL *ssl, void *arg); void *SSL_get_record_padding_callback_arg(const SSL *ssl); int SSL_set_block_padding(SSL *ssl, size_t block_size); - +int SSL_set_block_padding_ex(SSL *ssl, size_t app_block_size, + size_t hs_block_size); int SSL_set_num_tickets(SSL *s, size_t num_tickets); size_t SSL_get_num_tickets(const SSL *s); int SSL_CTX_set_num_tickets(SSL_CTX *ctx, size_t num_tickets); size_t SSL_CTX_get_num_tickets(const SSL_CTX *ctx); +/* QUIC support */ +int SSL_handle_events(SSL *s); +__owur int SSL_get_event_timeout(SSL *s, struct timeval *tv, int *is_infinite); +__owur int SSL_get_rpoll_descriptor(SSL *s, BIO_POLL_DESCRIPTOR *desc); +__owur int SSL_get_wpoll_descriptor(SSL *s, BIO_POLL_DESCRIPTOR *desc); +__owur int SSL_net_read_desired(SSL *s); +__owur int SSL_net_write_desired(SSL *s); +__owur int SSL_set_blocking_mode(SSL *s, int blocking); +__owur int SSL_get_blocking_mode(SSL *s); +__owur int SSL_set1_initial_peer_addr(SSL *s, const BIO_ADDR *peer_addr); +__owur SSL *SSL_get0_connection(SSL *s); +__owur int SSL_is_connection(SSL *s); + +__owur int SSL_is_listener(SSL *ssl); +__owur SSL *SSL_get0_listener(SSL *s); +#define SSL_LISTENER_FLAG_NO_VALIDATE (1UL << 1) +__owur SSL *SSL_new_listener(SSL_CTX *ctx, uint64_t flags); +__owur SSL *SSL_new_listener_from(SSL *ssl, uint64_t flags); +__owur SSL *SSL_new_from_listener(SSL *ssl, uint64_t flags); +#define SSL_ACCEPT_CONNECTION_NO_BLOCK (1UL << 0) +__owur SSL *SSL_accept_connection(SSL *ssl, uint64_t flags); +__owur size_t SSL_get_accept_connection_queue_len(SSL *ssl); +__owur int SSL_listen(SSL *ssl); + +__owur int SSL_is_domain(SSL *s); +__owur SSL *SSL_get0_domain(SSL *s); +__owur SSL *SSL_new_domain(SSL_CTX *ctx, uint64_t flags); + +#define SSL_DOMAIN_FLAG_SINGLE_THREAD (1U << 0) +#define SSL_DOMAIN_FLAG_MULTI_THREAD (1U << 1) +#define SSL_DOMAIN_FLAG_THREAD_ASSISTED (1U << 2) +#define SSL_DOMAIN_FLAG_BLOCKING (1U << 3) +#define SSL_DOMAIN_FLAG_LEGACY_BLOCKING (1U << 4) + +__owur int SSL_CTX_set_domain_flags(SSL_CTX *ctx, uint64_t domain_flags); +__owur int SSL_CTX_get_domain_flags(const SSL_CTX *ctx, uint64_t *domain_flags); +__owur int SSL_get_domain_flags(const SSL *ssl, uint64_t *domain_flags); + +#define SSL_STREAM_TYPE_NONE 0 +#define SSL_STREAM_TYPE_READ (1U << 0) +#define SSL_STREAM_TYPE_WRITE (1U << 1) +#define SSL_STREAM_TYPE_BIDI (SSL_STREAM_TYPE_READ | SSL_STREAM_TYPE_WRITE) +__owur int SSL_get_stream_type(SSL *s); + +__owur uint64_t SSL_get_stream_id(SSL *s); +__owur int SSL_is_stream_local(SSL *s); + +#define SSL_DEFAULT_STREAM_MODE_NONE 0 +#define SSL_DEFAULT_STREAM_MODE_AUTO_BIDI 1 +#define SSL_DEFAULT_STREAM_MODE_AUTO_UNI 2 +__owur int SSL_set_default_stream_mode(SSL *s, uint32_t mode); + +#define SSL_STREAM_FLAG_UNI (1U << 0) +#define SSL_STREAM_FLAG_NO_BLOCK (1U << 1) +#define SSL_STREAM_FLAG_ADVANCE (1U << 2) +__owur SSL *SSL_new_stream(SSL *s, uint64_t flags); + +#define SSL_INCOMING_STREAM_POLICY_AUTO 0 +#define SSL_INCOMING_STREAM_POLICY_ACCEPT 1 +#define SSL_INCOMING_STREAM_POLICY_REJECT 2 +__owur int SSL_set_incoming_stream_policy(SSL *s, int policy, uint64_t aec); + +#define SSL_ACCEPT_STREAM_NO_BLOCK (1U << 0) +__owur SSL *SSL_accept_stream(SSL *s, uint64_t flags); +__owur size_t SSL_get_accept_stream_queue_len(SSL *s); + +# ifndef OPENSSL_NO_QUIC +__owur int SSL_inject_net_dgram(SSL *s, const unsigned char *buf, + size_t buf_len, + const BIO_ADDR *peer, + const BIO_ADDR *local); +# endif + +typedef struct ssl_shutdown_ex_args_st { + uint64_t quic_error_code; + const char *quic_reason; +} SSL_SHUTDOWN_EX_ARGS; + +#define SSL_SHUTDOWN_FLAG_RAPID (1U << 0) +#define SSL_SHUTDOWN_FLAG_NO_STREAM_FLUSH (1U << 1) +#define SSL_SHUTDOWN_FLAG_NO_BLOCK (1U << 2) +#define SSL_SHUTDOWN_FLAG_WAIT_PEER (1U << 3) + +__owur int SSL_shutdown_ex(SSL *ssl, uint64_t flags, + const SSL_SHUTDOWN_EX_ARGS *args, + size_t args_len); + +__owur int SSL_stream_conclude(SSL *ssl, uint64_t flags); + +typedef struct ssl_stream_reset_args_st { + uint64_t quic_error_code; +} SSL_STREAM_RESET_ARGS; + +__owur int SSL_stream_reset(SSL *ssl, + const SSL_STREAM_RESET_ARGS *args, + size_t args_len); + +#define SSL_STREAM_STATE_NONE 0 +#define SSL_STREAM_STATE_OK 1 +#define SSL_STREAM_STATE_WRONG_DIR 2 +#define SSL_STREAM_STATE_FINISHED 3 +#define SSL_STREAM_STATE_RESET_LOCAL 4 +#define SSL_STREAM_STATE_RESET_REMOTE 5 +#define SSL_STREAM_STATE_CONN_CLOSED 6 +__owur int SSL_get_stream_read_state(SSL *ssl); +__owur int SSL_get_stream_write_state(SSL *ssl); + +__owur int SSL_get_stream_read_error_code(SSL *ssl, uint64_t *app_error_code); +__owur int SSL_get_stream_write_error_code(SSL *ssl, uint64_t *app_error_code); + +#define SSL_CONN_CLOSE_FLAG_LOCAL (1U << 0) +#define SSL_CONN_CLOSE_FLAG_TRANSPORT (1U << 1) + +typedef struct ssl_conn_close_info_st { + uint64_t error_code, frame_type; + const char *reason; + size_t reason_len; + uint32_t flags; +} SSL_CONN_CLOSE_INFO; + +__owur int SSL_get_conn_close_info(SSL *ssl, + SSL_CONN_CLOSE_INFO *info, + size_t info_len); + +# define SSL_VALUE_CLASS_GENERIC 0 +# define SSL_VALUE_CLASS_FEATURE_REQUEST 1 +# define SSL_VALUE_CLASS_FEATURE_PEER_REQUEST 2 +# define SSL_VALUE_CLASS_FEATURE_NEGOTIATED 3 + +# define SSL_VALUE_NONE 0 +# define SSL_VALUE_QUIC_STREAM_BIDI_LOCAL_AVAIL 1 +# define SSL_VALUE_QUIC_STREAM_BIDI_REMOTE_AVAIL 2 +# define SSL_VALUE_QUIC_STREAM_UNI_LOCAL_AVAIL 3 +# define SSL_VALUE_QUIC_STREAM_UNI_REMOTE_AVAIL 4 +# define SSL_VALUE_QUIC_IDLE_TIMEOUT 5 +# define SSL_VALUE_EVENT_HANDLING_MODE 6 +# define SSL_VALUE_STREAM_WRITE_BUF_SIZE 7 +# define SSL_VALUE_STREAM_WRITE_BUF_USED 8 +# define SSL_VALUE_STREAM_WRITE_BUF_AVAIL 9 + +# define SSL_VALUE_EVENT_HANDLING_MODE_INHERIT 0 +# define SSL_VALUE_EVENT_HANDLING_MODE_IMPLICIT 1 +# define SSL_VALUE_EVENT_HANDLING_MODE_EXPLICIT 2 + +int SSL_get_value_uint(SSL *s, uint32_t class_, uint32_t id, uint64_t *v); +int SSL_set_value_uint(SSL *s, uint32_t class_, uint32_t id, uint64_t v); + +# define SSL_get_generic_value_uint(ssl, id, v) \ + SSL_get_value_uint((ssl), SSL_VALUE_CLASS_GENERIC, (id), (v)) +# define SSL_set_generic_value_uint(ssl, id, v) \ + SSL_set_value_uint((ssl), SSL_VALUE_CLASS_GENERIC, (id), (v)) +# define SSL_get_feature_request_uint(ssl, id, v) \ + SSL_get_value_uint((ssl), SSL_VALUE_CLASS_FEATURE_REQUEST, (id), (v)) +# define SSL_set_feature_request_uint(ssl, id, v) \ + SSL_set_value_uint((ssl), SSL_VALUE_CLASS_FEATURE_REQUEST, (id), (v)) +# define SSL_get_feature_peer_request_uint(ssl, id, v) \ + SSL_get_value_uint((ssl), SSL_VALUE_CLASS_FEATURE_PEER_REQUEST, (id), (v)) +# define SSL_get_feature_negotiated_uint(ssl, id, v) \ + SSL_get_value_uint((ssl), SSL_VALUE_CLASS_FEATURE_NEGOTIATED, (id), (v)) + +# define SSL_get_quic_stream_bidi_local_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_QUIC_STREAM_BIDI_LOCAL_AVAIL, \ + (value)) +# define SSL_get_quic_stream_bidi_remote_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_QUIC_STREAM_BIDI_REMOTE_AVAIL, \ + (value)) +# define SSL_get_quic_stream_uni_local_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_QUIC_STREAM_UNI_LOCAL_AVAIL, \ + (value)) +# define SSL_get_quic_stream_uni_remote_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_QUIC_STREAM_UNI_REMOTE_AVAIL, \ + (value)) + +# define SSL_get_event_handling_mode(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_EVENT_HANDLING_MODE, \ + (value)) +# define SSL_set_event_handling_mode(ssl, value) \ + SSL_set_generic_value_uint((ssl), SSL_VALUE_EVENT_HANDLING_MODE, \ + (value)) + +# define SSL_get_stream_write_buf_size(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_STREAM_WRITE_BUF_SIZE, \ + (value)) +# define SSL_get_stream_write_buf_used(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_STREAM_WRITE_BUF_USED, \ + (value)) +# define SSL_get_stream_write_buf_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_STREAM_WRITE_BUF_AVAIL, \ + (value)) + +# define SSL_POLL_EVENT_NONE 0 + +# define SSL_POLL_EVENT_F (1U << 0) /* F (Failure) */ +# define SSL_POLL_EVENT_EL (1U << 1) /* EL (Exception on Listener) */ +# define SSL_POLL_EVENT_EC (1U << 2) /* EC (Exception on Conn) */ +# define SSL_POLL_EVENT_ECD (1U << 3) /* ECD (Exception on Conn Drained) */ +# define SSL_POLL_EVENT_ER (1U << 4) /* ER (Exception on Read) */ +# define SSL_POLL_EVENT_EW (1U << 5) /* EW (Exception on Write) */ +# define SSL_POLL_EVENT_R (1U << 6) /* R (Readable) */ +# define SSL_POLL_EVENT_W (1U << 7) /* W (Writable) */ +# define SSL_POLL_EVENT_IC (1U << 8) /* IC (Incoming Connection) */ +# define SSL_POLL_EVENT_ISB (1U << 9) /* ISB (Incoming Stream: Bidi) */ +# define SSL_POLL_EVENT_ISU (1U << 10) /* ISU (Incoming Stream: Uni) */ +# define SSL_POLL_EVENT_OSB (1U << 11) /* OSB (Outgoing Stream: Bidi) */ +# define SSL_POLL_EVENT_OSU (1U << 12) /* OSU (Outgoing Stream: Uni) */ + +# define SSL_POLL_EVENT_RW (SSL_POLL_EVENT_R | SSL_POLL_EVENT_W) +# define SSL_POLL_EVENT_RE (SSL_POLL_EVENT_R | SSL_POLL_EVENT_ER) +# define SSL_POLL_EVENT_WE (SSL_POLL_EVENT_W | SSL_POLL_EVENT_EW) +# define SSL_POLL_EVENT_RWE (SSL_POLL_EVENT_RE | SSL_POLL_EVENT_WE) +# define SSL_POLL_EVENT_E (SSL_POLL_EVENT_EL | SSL_POLL_EVENT_EC \ + | SSL_POLL_EVENT_ER | SSL_POLL_EVENT_EW) +# define SSL_POLL_EVENT_IS (SSL_POLL_EVENT_ISB | SSL_POLL_EVENT_ISU) +# define SSL_POLL_EVENT_ISE (SSL_POLL_EVENT_IS | SSL_POLL_EVENT_EC) +# define SSL_POLL_EVENT_I (SSL_POLL_EVENT_IS | SSL_POLL_EVENT_IC) +# define SSL_POLL_EVENT_OS (SSL_POLL_EVENT_OSB | SSL_POLL_EVENT_OSU) +# define SSL_POLL_EVENT_OSE (SSL_POLL_EVENT_OS | SSL_POLL_EVENT_EC) + +typedef struct ssl_poll_item_st { + BIO_POLL_DESCRIPTOR desc; + uint64_t events, revents; +} SSL_POLL_ITEM; + +# define SSL_POLL_FLAG_NO_HANDLE_EVENTS (1U << 0) + +__owur int SSL_poll(SSL_POLL_ITEM *items, + size_t num_items, + size_t stride, + const struct timeval *timeout, + uint64_t flags, + size_t *result_count); + +static ossl_inline ossl_unused BIO_POLL_DESCRIPTOR +SSL_as_poll_descriptor(SSL *s) +{ + BIO_POLL_DESCRIPTOR d; + + d.type = BIO_POLL_DESCRIPTOR_TYPE_SSL; + d.value.ssl = s; + return d; +} + # ifndef OPENSSL_NO_DEPRECATED_1_1_0 # define SSL_cache_hit(s) SSL_session_reused(s) # endif @@ -2593,6 +2882,51 @@ void SSL_set_allow_early_data_cb(SSL *s, const char *OSSL_default_cipher_list(void); const char *OSSL_default_ciphersuites(void); +/* RFC8879 Certificate compression APIs */ + +int SSL_CTX_compress_certs(SSL_CTX *ctx, int alg); +int SSL_compress_certs(SSL *ssl, int alg); + +int SSL_CTX_set1_cert_comp_preference(SSL_CTX *ctx, int *algs, size_t len); +int SSL_set1_cert_comp_preference(SSL *ssl, int *algs, size_t len); + +int SSL_CTX_set1_compressed_cert(SSL_CTX *ctx, int algorithm, unsigned char *comp_data, + size_t comp_length, size_t orig_length); +int SSL_set1_compressed_cert(SSL *ssl, int algorithm, unsigned char *comp_data, + size_t comp_length, size_t orig_length); +size_t SSL_CTX_get1_compressed_cert(SSL_CTX *ctx, int alg, unsigned char **data, size_t *orig_len); +size_t SSL_get1_compressed_cert(SSL *ssl, int alg, unsigned char **data, size_t *orig_len); + +__owur int SSL_add_expected_rpk(SSL *s, EVP_PKEY *rpk); +__owur EVP_PKEY *SSL_get0_peer_rpk(const SSL *s); +__owur EVP_PKEY *SSL_SESSION_get0_peer_rpk(SSL_SESSION *s); +__owur int SSL_get_negotiated_client_cert_type(const SSL *s); +__owur int SSL_get_negotiated_server_cert_type(const SSL *s); + +__owur int SSL_set1_client_cert_type(SSL *s, const unsigned char *val, size_t len); +__owur int SSL_set1_server_cert_type(SSL *s, const unsigned char *val, size_t len); +__owur int SSL_CTX_set1_client_cert_type(SSL_CTX *ctx, const unsigned char *val, size_t len); +__owur int SSL_CTX_set1_server_cert_type(SSL_CTX *ctx, const unsigned char *val, size_t len); +__owur int SSL_get0_client_cert_type(const SSL *s, unsigned char **t, size_t *len); +__owur int SSL_get0_server_cert_type(const SSL *s, unsigned char **t, size_t *len); +__owur int SSL_CTX_get0_client_cert_type(const SSL_CTX *ctx, unsigned char **t, size_t *len); +__owur int SSL_CTX_get0_server_cert_type(const SSL_CTX *s, unsigned char **t, size_t *len); + +/* + * Protection level. For <= TLSv1.2 only "NONE" and "APPLICATION" are used. + */ +# define OSSL_RECORD_PROTECTION_LEVEL_NONE 0 +# define OSSL_RECORD_PROTECTION_LEVEL_EARLY 1 +# define OSSL_RECORD_PROTECTION_LEVEL_HANDSHAKE 2 +# define OSSL_RECORD_PROTECTION_LEVEL_APPLICATION 3 + +int SSL_set_quic_tls_cbs(SSL *s, const OSSL_DISPATCH *qtdis, void *arg); +int SSL_set_quic_tls_transport_params(SSL *s, + const unsigned char *params, + size_t params_len); + +int SSL_set_quic_tls_early_data_enabled(SSL *s, int enabled); + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/BSD-x86/asm/include/openssl/x509.h b/deps/openssl/config/archs/BSD-x86/asm/include/openssl/x509.h index 1f7755e5b69c75..d013458c226461 100644 --- a/deps/openssl/config/archs/BSD-x86/asm/include/openssl/x509.h +++ b/deps/openssl/config/archs/BSD-x86/asm/include/openssl/x509.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/x509.h.in * - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2024 The OpenSSL Project Authors. All Rights Reserved. * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved * * Licensed under the Apache License 2.0 (the "License"). You may not use @@ -40,6 +40,9 @@ # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -162,16 +165,24 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_CRL, X509_CRL, X509_CRL) # define X509_FILETYPE_ASN1 2 # define X509_FILETYPE_DEFAULT 3 -# define X509v3_KU_DIGITAL_SIGNATURE 0x0080 -# define X509v3_KU_NON_REPUDIATION 0x0040 -# define X509v3_KU_KEY_ENCIPHERMENT 0x0020 -# define X509v3_KU_DATA_ENCIPHERMENT 0x0010 -# define X509v3_KU_KEY_AGREEMENT 0x0008 -# define X509v3_KU_KEY_CERT_SIGN 0x0004 -# define X509v3_KU_CRL_SIGN 0x0002 -# define X509v3_KU_ENCIPHER_ONLY 0x0001 -# define X509v3_KU_DECIPHER_ONLY 0x8000 -# define X509v3_KU_UNDEF 0xffff +/*- + * : + * The KeyUsage BITSTRING is treated as a little-endian integer, hence bit `0` + * is 0x80, while bit `7` is 0x01 (the LSB of the integer value), bit `8` is + * then the MSB of the second octet, or 0x8000. + */ +# define X509v3_KU_DIGITAL_SIGNATURE 0x0080 /* (0) */ +# define X509v3_KU_NON_REPUDIATION 0x0040 /* (1) */ +# define X509v3_KU_KEY_ENCIPHERMENT 0x0020 /* (2) */ +# define X509v3_KU_DATA_ENCIPHERMENT 0x0010 /* (3) */ +# define X509v3_KU_KEY_AGREEMENT 0x0008 /* (4) */ +# define X509v3_KU_KEY_CERT_SIGN 0x0004 /* (5) */ +# define X509v3_KU_CRL_SIGN 0x0002 /* (6) */ +# define X509v3_KU_ENCIPHER_ONLY 0x0001 /* (7) */ +# define X509v3_KU_DECIPHER_ONLY 0x8000 /* (8) */ +# ifndef OPENSSL_NO_DEPRECATED_3_4 +# define X509v3_KU_UNDEF 0xffff /* vestigial, not used */ +# endif struct X509_algor_st { ASN1_OBJECT *algorithm; @@ -462,7 +473,12 @@ typedef struct PBKDF2PARAM_st { X509_ALGOR *prf; } PBKDF2PARAM; -#ifndef OPENSSL_NO_SCRYPT +typedef struct { + X509_ALGOR *keyDerivationFunc; + X509_ALGOR *messageAuthScheme; +} PBMAC1PARAM; + +# ifndef OPENSSL_NO_SCRYPT typedef struct SCRYPT_PARAMS_st { ASN1_OCTET_STRING *salt; ASN1_INTEGER *costParameter; @@ -470,7 +486,7 @@ typedef struct SCRYPT_PARAMS_st { ASN1_INTEGER *parallelizationParameter; ASN1_INTEGER *keyLength; } SCRYPT_PARAMS; -#endif +# endif #ifdef __cplusplus } @@ -603,6 +619,8 @@ EVP_PKEY *d2i_PrivateKey_ex_fp(FILE *fp, EVP_PKEY **a, OSSL_LIB_CTX *libctx, const char *propq); EVP_PKEY *d2i_PrivateKey_fp(FILE *fp, EVP_PKEY **a); int i2d_PUBKEY_fp(FILE *fp, const EVP_PKEY *pkey); +EVP_PKEY *d2i_PUBKEY_ex_fp(FILE *fp, EVP_PKEY **a, OSSL_LIB_CTX *libctx, + const char *propq); EVP_PKEY *d2i_PUBKEY_fp(FILE *fp, EVP_PKEY **a); # endif @@ -651,6 +669,8 @@ EVP_PKEY *d2i_PrivateKey_ex_bio(BIO *bp, EVP_PKEY **a, OSSL_LIB_CTX *libctx, const char *propq); EVP_PKEY *d2i_PrivateKey_bio(BIO *bp, EVP_PKEY **a); int i2d_PUBKEY_bio(BIO *bp, const EVP_PKEY *pkey); +EVP_PKEY *d2i_PUBKEY_ex_bio(BIO *bp, EVP_PKEY **a, OSSL_LIB_CTX *libctx, + const char *propq); EVP_PKEY *d2i_PUBKEY_bio(BIO *bp, EVP_PKEY **a); DECLARE_ASN1_DUP_FUNCTION(X509) @@ -884,12 +904,12 @@ int X509_REQ_get_signature_nid(const X509_REQ *req); int i2d_re_X509_REQ_tbs(X509_REQ *req, unsigned char **pp); int X509_REQ_set_pubkey(X509_REQ *x, EVP_PKEY *pkey); EVP_PKEY *X509_REQ_get_pubkey(X509_REQ *req); -EVP_PKEY *X509_REQ_get0_pubkey(X509_REQ *req); +EVP_PKEY *X509_REQ_get0_pubkey(const X509_REQ *req); X509_PUBKEY *X509_REQ_get_X509_PUBKEY(X509_REQ *req); int X509_REQ_extension_nid(int nid); int *X509_REQ_get_extension_nids(void); void X509_REQ_set_extension_nids(int *nids); -STACK_OF(X509_EXTENSION) *X509_REQ_get_extensions(X509_REQ *req); +STACK_OF(X509_EXTENSION) *X509_REQ_get_extensions(OSSL_FUTURE_CONST X509_REQ *req); int X509_REQ_add_extensions_nid(X509_REQ *req, const STACK_OF(X509_EXTENSION) *exts, int nid); int X509_REQ_add_extensions(X509_REQ *req, const STACK_OF(X509_EXTENSION) *ext); @@ -950,13 +970,14 @@ X509_REVOKED_get0_extensions(const X509_REVOKED *r); X509_CRL *X509_CRL_diff(X509_CRL *base, X509_CRL *newer, EVP_PKEY *skey, const EVP_MD *md, unsigned int flags); -int X509_REQ_check_private_key(X509_REQ *x509, EVP_PKEY *pkey); +int X509_REQ_check_private_key(const X509_REQ *req, EVP_PKEY *pkey); -int X509_check_private_key(const X509 *x509, const EVP_PKEY *pkey); +int X509_check_private_key(const X509 *cert, const EVP_PKEY *pkey); int X509_chain_check_suiteb(int *perror_depth, X509 *x, STACK_OF(X509) *chain, unsigned long flags); int X509_CRL_check_suiteb(X509_CRL *crl, EVP_PKEY *pk, unsigned long flags); +void OSSL_STACK_OF_X509_free(STACK_OF(X509) *certs); STACK_OF(X509) *X509_chain_up_ref(STACK_OF(X509) *chain); int X509_issuer_and_serial_cmp(const X509 *a, const X509 *b); @@ -1077,6 +1098,8 @@ X509_EXTENSION *X509v3_get_ext(const STACK_OF(X509_EXTENSION) *x, int loc); X509_EXTENSION *X509v3_delete_ext(STACK_OF(X509_EXTENSION) *x, int loc); STACK_OF(X509_EXTENSION) *X509v3_add_ext(STACK_OF(X509_EXTENSION) **x, X509_EXTENSION *ex, int loc); +STACK_OF(X509_EXTENSION) *X509v3_add_extensions(STACK_OF(X509_EXTENSION) **target, + const STACK_OF(X509_EXTENSION) *exts); int X509_get_ext_count(const X509 *x); int X509_get_ext_by_NID(const X509 *x, int nid, int lastpos); @@ -1198,9 +1221,10 @@ X509 *X509_find_by_subject(STACK_OF(X509) *sk, const X509_NAME *name); DECLARE_ASN1_FUNCTIONS(PBEPARAM) DECLARE_ASN1_FUNCTIONS(PBE2PARAM) DECLARE_ASN1_FUNCTIONS(PBKDF2PARAM) -#ifndef OPENSSL_NO_SCRYPT +DECLARE_ASN1_FUNCTIONS(PBMAC1PARAM) +# ifndef OPENSSL_NO_SCRYPT DECLARE_ASN1_FUNCTIONS(SCRYPT_PARAMS) -#endif +# endif int PKCS5_pbe_set0_algor(X509_ALGOR *algor, int alg, int iter, const unsigned char *salt, int saltlen); @@ -1237,6 +1261,7 @@ X509_ALGOR *PKCS5_pbkdf2_set_ex(int iter, unsigned char *salt, int saltlen, int prf_nid, int keylen, OSSL_LIB_CTX *libctx); +PBKDF2PARAM *PBMAC1_get1_pbkdf2_param(const X509_ALGOR *macalg); /* PKCS#8 utilities */ DECLARE_ASN1_FUNCTIONS(PKCS8_PRIV_KEY_INFO) @@ -1262,6 +1287,8 @@ int PKCS8_pkey_add1_attr_by_OBJ(PKCS8_PRIV_KEY_INFO *p8, const ASN1_OBJECT *obj, int type, const unsigned char *bytes, int len); +void X509_PUBKEY_set0_public_key(X509_PUBKEY *pub, + unsigned char *penc, int penclen); int X509_PUBKEY_set0_param(X509_PUBKEY *pub, ASN1_OBJECT *aobj, int ptype, void *pval, unsigned char *penc, int penclen); diff --git a/deps/openssl/config/archs/BSD-x86/asm/include/openssl/x509_acert.h b/deps/openssl/config/archs/BSD-x86/asm/include/openssl/x509_acert.h new file mode 100644 index 00000000000000..9dde625677f9a9 --- /dev/null +++ b/deps/openssl/config/archs/BSD-x86/asm/include/openssl/x509_acert.h @@ -0,0 +1,294 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from include/openssl/x509_acert.h.in + * + * Copyright 2022-2024 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + + +#ifndef OPENSSL_X509_ACERT_H +# define OPENSSL_X509_ACERT_H +# pragma once + +# include +# include +# include + +typedef struct X509_acert_st X509_ACERT; +typedef struct X509_acert_info_st X509_ACERT_INFO; +typedef struct ossl_object_digest_info_st OSSL_OBJECT_DIGEST_INFO; +typedef struct ossl_issuer_serial_st OSSL_ISSUER_SERIAL; +typedef struct X509_acert_issuer_v2form_st X509_ACERT_ISSUER_V2FORM; + +DECLARE_ASN1_FUNCTIONS(X509_ACERT) +DECLARE_ASN1_DUP_FUNCTION(X509_ACERT) +DECLARE_ASN1_ITEM(X509_ACERT_INFO) +DECLARE_ASN1_ALLOC_FUNCTIONS(X509_ACERT_INFO) +DECLARE_ASN1_ALLOC_FUNCTIONS(OSSL_OBJECT_DIGEST_INFO) +DECLARE_ASN1_ALLOC_FUNCTIONS(OSSL_ISSUER_SERIAL) +DECLARE_ASN1_ALLOC_FUNCTIONS(X509_ACERT_ISSUER_V2FORM) + +# ifndef OPENSSL_NO_STDIO +X509_ACERT *d2i_X509_ACERT_fp(FILE *fp, X509_ACERT **acert); +int i2d_X509_ACERT_fp(FILE *fp, const X509_ACERT *acert); +# endif + +DECLARE_PEM_rw(X509_ACERT, X509_ACERT) + +X509_ACERT *d2i_X509_ACERT_bio(BIO *bp, X509_ACERT **acert); +int i2d_X509_ACERT_bio(BIO *bp, const X509_ACERT *acert); + +int X509_ACERT_sign(X509_ACERT *x, EVP_PKEY *pkey, const EVP_MD *md); +int X509_ACERT_sign_ctx(X509_ACERT *x, EVP_MD_CTX *ctx); +int X509_ACERT_verify(X509_ACERT *a, EVP_PKEY *r); + +# define X509_ACERT_VERSION_2 1 + +const GENERAL_NAMES *X509_ACERT_get0_holder_entityName(const X509_ACERT *x); +const OSSL_ISSUER_SERIAL *X509_ACERT_get0_holder_baseCertId(const X509_ACERT *x); +const OSSL_OBJECT_DIGEST_INFO * X509_ACERT_get0_holder_digest(const X509_ACERT *x); +const X509_NAME *X509_ACERT_get0_issuerName(const X509_ACERT *x); +long X509_ACERT_get_version(const X509_ACERT *x); +void X509_ACERT_get0_signature(const X509_ACERT *x, + const ASN1_BIT_STRING **psig, + const X509_ALGOR **palg); +int X509_ACERT_get_signature_nid(const X509_ACERT *x); +const X509_ALGOR *X509_ACERT_get0_info_sigalg(const X509_ACERT *x); +const ASN1_INTEGER *X509_ACERT_get0_serialNumber(const X509_ACERT *x); +const ASN1_TIME *X509_ACERT_get0_notBefore(const X509_ACERT *x); +const ASN1_TIME *X509_ACERT_get0_notAfter(const X509_ACERT *x); +const ASN1_BIT_STRING *X509_ACERT_get0_issuerUID(const X509_ACERT *x); + +int X509_ACERT_print(BIO *bp, X509_ACERT *x); +int X509_ACERT_print_ex(BIO *bp, X509_ACERT *x, unsigned long nmflags, + unsigned long cflag); + +int X509_ACERT_get_attr_count(const X509_ACERT *x); +int X509_ACERT_get_attr_by_NID(const X509_ACERT *x, int nid, int lastpos); +int X509_ACERT_get_attr_by_OBJ(const X509_ACERT *x, const ASN1_OBJECT *obj, + int lastpos); +X509_ATTRIBUTE *X509_ACERT_get_attr(const X509_ACERT *x, int loc); +X509_ATTRIBUTE *X509_ACERT_delete_attr(X509_ACERT *x, int loc); + +void *X509_ACERT_get_ext_d2i(const X509_ACERT *x, int nid, int *crit, int *idx); +int X509_ACERT_add1_ext_i2d(X509_ACERT *x, int nid, void *value, int crit, + unsigned long flags); +const STACK_OF(X509_EXTENSION) *X509_ACERT_get0_extensions(const X509_ACERT *x); + +# define OSSL_OBJECT_DIGEST_INFO_PUBLIC_KEY 0 +# define OSSL_OBJECT_DIGEST_INFO_PUBLIC_KEY_CERT 1 +# define OSSL_OBJECT_DIGEST_INFO_OTHER 2 /* must not be used in RFC 5755 profile */ +int X509_ACERT_set_version(X509_ACERT *x, long version); +void X509_ACERT_set0_holder_entityName(X509_ACERT *x, GENERAL_NAMES *name); +void X509_ACERT_set0_holder_baseCertId(X509_ACERT *x, OSSL_ISSUER_SERIAL *isss); +void X509_ACERT_set0_holder_digest(X509_ACERT *x, + OSSL_OBJECT_DIGEST_INFO *dinfo); + +int X509_ACERT_add1_attr(X509_ACERT *x, X509_ATTRIBUTE *attr); +int X509_ACERT_add1_attr_by_OBJ(X509_ACERT *x, const ASN1_OBJECT *obj, + int type, const void *bytes, int len); +int X509_ACERT_add1_attr_by_NID(X509_ACERT *x, int nid, int type, + const void *bytes, int len); +int X509_ACERT_add1_attr_by_txt(X509_ACERT *x, const char *attrname, int type, + const unsigned char *bytes, int len); +int X509_ACERT_add_attr_nconf(CONF *conf, const char *section, + X509_ACERT *acert); + +int X509_ACERT_set1_issuerName(X509_ACERT *x, const X509_NAME *name); +int X509_ACERT_set1_serialNumber(X509_ACERT *x, const ASN1_INTEGER *serial); +int X509_ACERT_set1_notBefore(X509_ACERT *x, const ASN1_GENERALIZEDTIME *time); +int X509_ACERT_set1_notAfter(X509_ACERT *x, const ASN1_GENERALIZEDTIME *time); + +void OSSL_OBJECT_DIGEST_INFO_get0_digest(const OSSL_OBJECT_DIGEST_INFO *o, + int *digestedObjectType, + const X509_ALGOR **digestAlgorithm, + const ASN1_BIT_STRING **digest); + +int OSSL_OBJECT_DIGEST_INFO_set1_digest(OSSL_OBJECT_DIGEST_INFO *o, + int digestedObjectType, + X509_ALGOR *digestAlgorithm, + ASN1_BIT_STRING *digest); + +const X509_NAME *OSSL_ISSUER_SERIAL_get0_issuer(const OSSL_ISSUER_SERIAL *isss); +const ASN1_INTEGER *OSSL_ISSUER_SERIAL_get0_serial(const OSSL_ISSUER_SERIAL *isss); +const ASN1_BIT_STRING *OSSL_ISSUER_SERIAL_get0_issuerUID(const OSSL_ISSUER_SERIAL *isss); + +int OSSL_ISSUER_SERIAL_set1_issuer(OSSL_ISSUER_SERIAL *isss, + const X509_NAME *issuer); +int OSSL_ISSUER_SERIAL_set1_serial(OSSL_ISSUER_SERIAL *isss, + const ASN1_INTEGER *serial); +int OSSL_ISSUER_SERIAL_set1_issuerUID(OSSL_ISSUER_SERIAL *isss, + const ASN1_BIT_STRING *uid); + +# define OSSL_IETFAS_OCTETS 0 +# define OSSL_IETFAS_OID 1 +# define OSSL_IETFAS_STRING 2 + +typedef struct OSSL_IETF_ATTR_SYNTAX_VALUE_st OSSL_IETF_ATTR_SYNTAX_VALUE; +typedef struct OSSL_IETF_ATTR_SYNTAX_st OSSL_IETF_ATTR_SYNTAX; +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_IETF_ATTR_SYNTAX_VALUE, OSSL_IETF_ATTR_SYNTAX_VALUE, OSSL_IETF_ATTR_SYNTAX_VALUE) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_value(sk, idx) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_value(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), (idx))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_new(cmp) ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_new(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_compfunc_type(cmp))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_new_null() ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_new_null()) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_new_reserve(cmp, n) ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_compfunc_type(cmp), (n))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), (n)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_free(sk) OPENSSL_sk_free(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_delete(sk, i) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_delete(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), (i))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_delete_ptr(sk, ptr) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_pop(sk) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_pop(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_shift(sk) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_shift(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk),ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_freefunc_type(freefunc)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr), (idx)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_set(sk, idx, ptr) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_set(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), (idx), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr), pnum) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_dup(sk) ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_dup(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_copyfunc_type(copyfunc), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_freefunc_type(freefunc))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_set_cmp_func(sk, cmp) ((sk_OSSL_IETF_ATTR_SYNTAX_VALUE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_compfunc_type(cmp))) + + +DECLARE_ASN1_ITEM(OSSL_IETF_ATTR_SYNTAX_VALUE) +DECLARE_ASN1_ALLOC_FUNCTIONS(OSSL_IETF_ATTR_SYNTAX_VALUE) +DECLARE_ASN1_FUNCTIONS(OSSL_IETF_ATTR_SYNTAX) + +const GENERAL_NAMES * +OSSL_IETF_ATTR_SYNTAX_get0_policyAuthority(const OSSL_IETF_ATTR_SYNTAX *a); +void OSSL_IETF_ATTR_SYNTAX_set0_policyAuthority(OSSL_IETF_ATTR_SYNTAX *a, + GENERAL_NAMES *names); + +int OSSL_IETF_ATTR_SYNTAX_get_value_num(const OSSL_IETF_ATTR_SYNTAX *a); +void *OSSL_IETF_ATTR_SYNTAX_get0_value(const OSSL_IETF_ATTR_SYNTAX *a, + int ind, int *type); +int OSSL_IETF_ATTR_SYNTAX_add1_value(OSSL_IETF_ATTR_SYNTAX *a, int type, + void *data); +int OSSL_IETF_ATTR_SYNTAX_print(BIO *bp, OSSL_IETF_ATTR_SYNTAX *a, int indent); + +struct TARGET_CERT_st { + OSSL_ISSUER_SERIAL *targetCertificate; + GENERAL_NAME *targetName; + OSSL_OBJECT_DIGEST_INFO *certDigestInfo; +}; + +typedef struct TARGET_CERT_st OSSL_TARGET_CERT; + +# define OSSL_TGT_TARGET_NAME 0 +# define OSSL_TGT_TARGET_GROUP 1 +# define OSSL_TGT_TARGET_CERT 2 + +typedef struct TARGET_st { + int type; + union { + GENERAL_NAME *targetName; + GENERAL_NAME *targetGroup; + OSSL_TARGET_CERT *targetCert; + } choice; +} OSSL_TARGET; + +typedef STACK_OF(OSSL_TARGET) OSSL_TARGETS; +typedef STACK_OF(OSSL_TARGETS) OSSL_TARGETING_INFORMATION; + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_TARGET, OSSL_TARGET, OSSL_TARGET) +#define sk_OSSL_TARGET_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_value(sk, idx) ((OSSL_TARGET *)OPENSSL_sk_value(ossl_check_const_OSSL_TARGET_sk_type(sk), (idx))) +#define sk_OSSL_TARGET_new(cmp) ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_new(ossl_check_OSSL_TARGET_compfunc_type(cmp))) +#define sk_OSSL_TARGET_new_null() ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_new_null()) +#define sk_OSSL_TARGET_new_reserve(cmp, n) ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_TARGET_compfunc_type(cmp), (n))) +#define sk_OSSL_TARGET_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_TARGET_sk_type(sk), (n)) +#define sk_OSSL_TARGET_free(sk) OPENSSL_sk_free(ossl_check_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_delete(sk, i) ((OSSL_TARGET *)OPENSSL_sk_delete(ossl_check_OSSL_TARGET_sk_type(sk), (i))) +#define sk_OSSL_TARGET_delete_ptr(sk, ptr) ((OSSL_TARGET *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr))) +#define sk_OSSL_TARGET_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr)) +#define sk_OSSL_TARGET_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr)) +#define sk_OSSL_TARGET_pop(sk) ((OSSL_TARGET *)OPENSSL_sk_pop(ossl_check_OSSL_TARGET_sk_type(sk))) +#define sk_OSSL_TARGET_shift(sk) ((OSSL_TARGET *)OPENSSL_sk_shift(ossl_check_OSSL_TARGET_sk_type(sk))) +#define sk_OSSL_TARGET_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_TARGET_sk_type(sk),ossl_check_OSSL_TARGET_freefunc_type(freefunc)) +#define sk_OSSL_TARGET_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr), (idx)) +#define sk_OSSL_TARGET_set(sk, idx, ptr) ((OSSL_TARGET *)OPENSSL_sk_set(ossl_check_OSSL_TARGET_sk_type(sk), (idx), ossl_check_OSSL_TARGET_type(ptr))) +#define sk_OSSL_TARGET_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr)) +#define sk_OSSL_TARGET_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr)) +#define sk_OSSL_TARGET_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr), pnum) +#define sk_OSSL_TARGET_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_dup(sk) ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_dup(ossl_check_const_OSSL_TARGET_sk_type(sk))) +#define sk_OSSL_TARGET_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_copyfunc_type(copyfunc), ossl_check_OSSL_TARGET_freefunc_type(freefunc))) +#define sk_OSSL_TARGET_set_cmp_func(sk, cmp) ((sk_OSSL_TARGET_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_compfunc_type(cmp))) + + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_TARGETS, OSSL_TARGETS, OSSL_TARGETS) +#define sk_OSSL_TARGETS_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_value(sk, idx) ((OSSL_TARGETS *)OPENSSL_sk_value(ossl_check_const_OSSL_TARGETS_sk_type(sk), (idx))) +#define sk_OSSL_TARGETS_new(cmp) ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_new(ossl_check_OSSL_TARGETS_compfunc_type(cmp))) +#define sk_OSSL_TARGETS_new_null() ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_new_null()) +#define sk_OSSL_TARGETS_new_reserve(cmp, n) ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_TARGETS_compfunc_type(cmp), (n))) +#define sk_OSSL_TARGETS_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_TARGETS_sk_type(sk), (n)) +#define sk_OSSL_TARGETS_free(sk) OPENSSL_sk_free(ossl_check_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_delete(sk, i) ((OSSL_TARGETS *)OPENSSL_sk_delete(ossl_check_OSSL_TARGETS_sk_type(sk), (i))) +#define sk_OSSL_TARGETS_delete_ptr(sk, ptr) ((OSSL_TARGETS *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr))) +#define sk_OSSL_TARGETS_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr)) +#define sk_OSSL_TARGETS_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr)) +#define sk_OSSL_TARGETS_pop(sk) ((OSSL_TARGETS *)OPENSSL_sk_pop(ossl_check_OSSL_TARGETS_sk_type(sk))) +#define sk_OSSL_TARGETS_shift(sk) ((OSSL_TARGETS *)OPENSSL_sk_shift(ossl_check_OSSL_TARGETS_sk_type(sk))) +#define sk_OSSL_TARGETS_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_TARGETS_sk_type(sk),ossl_check_OSSL_TARGETS_freefunc_type(freefunc)) +#define sk_OSSL_TARGETS_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr), (idx)) +#define sk_OSSL_TARGETS_set(sk, idx, ptr) ((OSSL_TARGETS *)OPENSSL_sk_set(ossl_check_OSSL_TARGETS_sk_type(sk), (idx), ossl_check_OSSL_TARGETS_type(ptr))) +#define sk_OSSL_TARGETS_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr)) +#define sk_OSSL_TARGETS_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr)) +#define sk_OSSL_TARGETS_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr), pnum) +#define sk_OSSL_TARGETS_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_dup(sk) ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_dup(ossl_check_const_OSSL_TARGETS_sk_type(sk))) +#define sk_OSSL_TARGETS_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_copyfunc_type(copyfunc), ossl_check_OSSL_TARGETS_freefunc_type(freefunc))) +#define sk_OSSL_TARGETS_set_cmp_func(sk, cmp) ((sk_OSSL_TARGETS_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_compfunc_type(cmp))) + + +DECLARE_ASN1_FUNCTIONS(OSSL_TARGET) +DECLARE_ASN1_FUNCTIONS(OSSL_TARGETS) +DECLARE_ASN1_FUNCTIONS(OSSL_TARGETING_INFORMATION) + +typedef STACK_OF(OSSL_ISSUER_SERIAL) OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX; +DECLARE_ASN1_FUNCTIONS(OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ISSUER_SERIAL, OSSL_ISSUER_SERIAL, OSSL_ISSUER_SERIAL) +#define sk_OSSL_ISSUER_SERIAL_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_value(sk, idx) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_value(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk), (idx))) +#define sk_OSSL_ISSUER_SERIAL_new(cmp) ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_new(ossl_check_OSSL_ISSUER_SERIAL_compfunc_type(cmp))) +#define sk_OSSL_ISSUER_SERIAL_new_null() ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ISSUER_SERIAL_new_reserve(cmp, n) ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ISSUER_SERIAL_compfunc_type(cmp), (n))) +#define sk_OSSL_ISSUER_SERIAL_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), (n)) +#define sk_OSSL_ISSUER_SERIAL_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_delete(sk, i) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_delete(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), (i))) +#define sk_OSSL_ISSUER_SERIAL_delete_ptr(sk, ptr) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr))) +#define sk_OSSL_ISSUER_SERIAL_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr)) +#define sk_OSSL_ISSUER_SERIAL_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr)) +#define sk_OSSL_ISSUER_SERIAL_pop(sk) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_pop(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk))) +#define sk_OSSL_ISSUER_SERIAL_shift(sk) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_shift(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk))) +#define sk_OSSL_ISSUER_SERIAL_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk),ossl_check_OSSL_ISSUER_SERIAL_freefunc_type(freefunc)) +#define sk_OSSL_ISSUER_SERIAL_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr), (idx)) +#define sk_OSSL_ISSUER_SERIAL_set(sk, idx, ptr) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_set(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), (idx), ossl_check_OSSL_ISSUER_SERIAL_type(ptr))) +#define sk_OSSL_ISSUER_SERIAL_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr)) +#define sk_OSSL_ISSUER_SERIAL_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr)) +#define sk_OSSL_ISSUER_SERIAL_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr), pnum) +#define sk_OSSL_ISSUER_SERIAL_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_dup(sk) ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk))) +#define sk_OSSL_ISSUER_SERIAL_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_copyfunc_type(copyfunc), ossl_check_OSSL_ISSUER_SERIAL_freefunc_type(freefunc))) +#define sk_OSSL_ISSUER_SERIAL_set_cmp_func(sk, cmp) ((sk_OSSL_ISSUER_SERIAL_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_compfunc_type(cmp))) + + +#endif diff --git a/deps/openssl/config/archs/BSD-x86/asm/include/openssl/x509_vfy.h b/deps/openssl/config/archs/BSD-x86/asm/include/openssl/x509_vfy.h index 29b0e147adcab1..c9bdc3b39d685d 100644 --- a/deps/openssl/config/archs/BSD-x86/asm/include/openssl/x509_vfy.h +++ b/deps/openssl/config/archs/BSD-x86/asm/include/openssl/x509_vfy.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/x509_vfy.h.in * - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -411,6 +411,7 @@ X509_LOOKUP_ctrl_ex((x), X509_L_ADD_STORE, (name), 0, NULL, \ # define X509_V_ERR_CA_CERT_MISSING_KEY_USAGE 92 # define X509_V_ERR_EXTENSIONS_REQUIRE_VERSION_3 93 # define X509_V_ERR_EC_KEY_EXPLICIT_PARAMS 94 +# define X509_V_ERR_RPK_UNTRUSTED 95 /* Certificate verify flags */ # ifndef OPENSSL_NO_DEPRECATED_1_1_0 @@ -491,71 +492,72 @@ int X509_OBJECT_set1_X509(X509_OBJECT *a, X509 *obj); X509_CRL *X509_OBJECT_get0_X509_CRL(const X509_OBJECT *a); int X509_OBJECT_set1_X509_CRL(X509_OBJECT *a, X509_CRL *obj); X509_STORE *X509_STORE_new(void); -void X509_STORE_free(X509_STORE *v); -int X509_STORE_lock(X509_STORE *ctx); -int X509_STORE_unlock(X509_STORE *ctx); -int X509_STORE_up_ref(X509_STORE *v); -STACK_OF(X509_OBJECT) *X509_STORE_get0_objects(const X509_STORE *v); -STACK_OF(X509) *X509_STORE_get1_all_certs(X509_STORE *st); -STACK_OF(X509) *X509_STORE_CTX_get1_certs(X509_STORE_CTX *st, +void X509_STORE_free(X509_STORE *xs); +int X509_STORE_lock(X509_STORE *xs); +int X509_STORE_unlock(X509_STORE *xs); +int X509_STORE_up_ref(X509_STORE *xs); +STACK_OF(X509_OBJECT) *X509_STORE_get0_objects(const X509_STORE *xs); +STACK_OF(X509_OBJECT) *X509_STORE_get1_objects(X509_STORE *xs); +STACK_OF(X509) *X509_STORE_get1_all_certs(X509_STORE *xs); +STACK_OF(X509) *X509_STORE_CTX_get1_certs(X509_STORE_CTX *xs, const X509_NAME *nm); STACK_OF(X509_CRL) *X509_STORE_CTX_get1_crls(const X509_STORE_CTX *st, const X509_NAME *nm); -int X509_STORE_set_flags(X509_STORE *ctx, unsigned long flags); -int X509_STORE_set_purpose(X509_STORE *ctx, int purpose); -int X509_STORE_set_trust(X509_STORE *ctx, int trust); -int X509_STORE_set1_param(X509_STORE *ctx, const X509_VERIFY_PARAM *pm); -X509_VERIFY_PARAM *X509_STORE_get0_param(const X509_STORE *ctx); +int X509_STORE_set_flags(X509_STORE *xs, unsigned long flags); +int X509_STORE_set_purpose(X509_STORE *xs, int purpose); +int X509_STORE_set_trust(X509_STORE *xs, int trust); +int X509_STORE_set1_param(X509_STORE *xs, const X509_VERIFY_PARAM *pm); +X509_VERIFY_PARAM *X509_STORE_get0_param(const X509_STORE *xs); -void X509_STORE_set_verify(X509_STORE *ctx, X509_STORE_CTX_verify_fn verify); +void X509_STORE_set_verify(X509_STORE *xs, X509_STORE_CTX_verify_fn verify); #define X509_STORE_set_verify_func(ctx, func) \ X509_STORE_set_verify((ctx),(func)) void X509_STORE_CTX_set_verify(X509_STORE_CTX *ctx, X509_STORE_CTX_verify_fn verify); -X509_STORE_CTX_verify_fn X509_STORE_get_verify(const X509_STORE *ctx); -void X509_STORE_set_verify_cb(X509_STORE *ctx, +X509_STORE_CTX_verify_fn X509_STORE_get_verify(const X509_STORE *xs); +void X509_STORE_set_verify_cb(X509_STORE *xs, X509_STORE_CTX_verify_cb verify_cb); # define X509_STORE_set_verify_cb_func(ctx,func) \ X509_STORE_set_verify_cb((ctx),(func)) -X509_STORE_CTX_verify_cb X509_STORE_get_verify_cb(const X509_STORE *ctx); -void X509_STORE_set_get_issuer(X509_STORE *ctx, +X509_STORE_CTX_verify_cb X509_STORE_get_verify_cb(const X509_STORE *xs); +void X509_STORE_set_get_issuer(X509_STORE *xs, X509_STORE_CTX_get_issuer_fn get_issuer); -X509_STORE_CTX_get_issuer_fn X509_STORE_get_get_issuer(const X509_STORE *ctx); -void X509_STORE_set_check_issued(X509_STORE *ctx, +X509_STORE_CTX_get_issuer_fn X509_STORE_get_get_issuer(const X509_STORE *xs); +void X509_STORE_set_check_issued(X509_STORE *xs, X509_STORE_CTX_check_issued_fn check_issued); -X509_STORE_CTX_check_issued_fn X509_STORE_get_check_issued(const X509_STORE *ctx); -void X509_STORE_set_check_revocation(X509_STORE *ctx, +X509_STORE_CTX_check_issued_fn X509_STORE_get_check_issued(const X509_STORE *s); +void X509_STORE_set_check_revocation(X509_STORE *xs, X509_STORE_CTX_check_revocation_fn check_revocation); X509_STORE_CTX_check_revocation_fn - X509_STORE_get_check_revocation(const X509_STORE *ctx); -void X509_STORE_set_get_crl(X509_STORE *ctx, + X509_STORE_get_check_revocation(const X509_STORE *xs); +void X509_STORE_set_get_crl(X509_STORE *xs, X509_STORE_CTX_get_crl_fn get_crl); -X509_STORE_CTX_get_crl_fn X509_STORE_get_get_crl(const X509_STORE *ctx); -void X509_STORE_set_check_crl(X509_STORE *ctx, +X509_STORE_CTX_get_crl_fn X509_STORE_get_get_crl(const X509_STORE *xs); +void X509_STORE_set_check_crl(X509_STORE *xs, X509_STORE_CTX_check_crl_fn check_crl); -X509_STORE_CTX_check_crl_fn X509_STORE_get_check_crl(const X509_STORE *ctx); -void X509_STORE_set_cert_crl(X509_STORE *ctx, +X509_STORE_CTX_check_crl_fn X509_STORE_get_check_crl(const X509_STORE *xs); +void X509_STORE_set_cert_crl(X509_STORE *xs, X509_STORE_CTX_cert_crl_fn cert_crl); -X509_STORE_CTX_cert_crl_fn X509_STORE_get_cert_crl(const X509_STORE *ctx); -void X509_STORE_set_check_policy(X509_STORE *ctx, +X509_STORE_CTX_cert_crl_fn X509_STORE_get_cert_crl(const X509_STORE *xs); +void X509_STORE_set_check_policy(X509_STORE *xs, X509_STORE_CTX_check_policy_fn check_policy); -X509_STORE_CTX_check_policy_fn X509_STORE_get_check_policy(const X509_STORE *ctx); -void X509_STORE_set_lookup_certs(X509_STORE *ctx, +X509_STORE_CTX_check_policy_fn X509_STORE_get_check_policy(const X509_STORE *s); +void X509_STORE_set_lookup_certs(X509_STORE *xs, X509_STORE_CTX_lookup_certs_fn lookup_certs); -X509_STORE_CTX_lookup_certs_fn X509_STORE_get_lookup_certs(const X509_STORE *ctx); -void X509_STORE_set_lookup_crls(X509_STORE *ctx, +X509_STORE_CTX_lookup_certs_fn X509_STORE_get_lookup_certs(const X509_STORE *s); +void X509_STORE_set_lookup_crls(X509_STORE *xs, X509_STORE_CTX_lookup_crls_fn lookup_crls); #define X509_STORE_set_lookup_crls_cb(ctx, func) \ X509_STORE_set_lookup_crls((ctx), (func)) -X509_STORE_CTX_lookup_crls_fn X509_STORE_get_lookup_crls(const X509_STORE *ctx); -void X509_STORE_set_cleanup(X509_STORE *ctx, +X509_STORE_CTX_lookup_crls_fn X509_STORE_get_lookup_crls(const X509_STORE *xs); +void X509_STORE_set_cleanup(X509_STORE *xs, X509_STORE_CTX_cleanup_fn cleanup); -X509_STORE_CTX_cleanup_fn X509_STORE_get_cleanup(const X509_STORE *ctx); +X509_STORE_CTX_cleanup_fn X509_STORE_get_cleanup(const X509_STORE *xs); #define X509_STORE_get_ex_new_index(l, p, newf, dupf, freef) \ CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_X509_STORE, l, p, newf, dupf, freef) -int X509_STORE_set_ex_data(X509_STORE *ctx, int idx, void *data); -void *X509_STORE_get_ex_data(const X509_STORE *ctx, int idx); +int X509_STORE_set_ex_data(X509_STORE *xs, int idx, void *data); +void *X509_STORE_get_ex_data(const X509_STORE *xs, int idx); X509_STORE_CTX *X509_STORE_CTX_new_ex(OSSL_LIB_CTX *libctx, const char *propq); X509_STORE_CTX *X509_STORE_CTX_new(void); @@ -565,11 +567,14 @@ int X509_STORE_CTX_get1_issuer(X509 **issuer, X509_STORE_CTX *ctx, X509 *x); void X509_STORE_CTX_free(X509_STORE_CTX *ctx); int X509_STORE_CTX_init(X509_STORE_CTX *ctx, X509_STORE *trust_store, X509 *target, STACK_OF(X509) *untrusted); +int X509_STORE_CTX_init_rpk(X509_STORE_CTX *ctx, X509_STORE *trust_store, + EVP_PKEY* rpk); void X509_STORE_CTX_set0_trusted_stack(X509_STORE_CTX *ctx, STACK_OF(X509) *sk); void X509_STORE_CTX_cleanup(X509_STORE_CTX *ctx); X509_STORE *X509_STORE_CTX_get0_store(const X509_STORE_CTX *ctx); X509 *X509_STORE_CTX_get0_cert(const X509_STORE_CTX *ctx); +EVP_PKEY *X509_STORE_CTX_get0_rpk(const X509_STORE_CTX *ctx); STACK_OF(X509)* X509_STORE_CTX_get0_untrusted(const X509_STORE_CTX *ctx); void X509_STORE_CTX_set0_untrusted(X509_STORE_CTX *ctx, STACK_OF(X509) *sk); void X509_STORE_CTX_set_verify_cb(X509_STORE_CTX *ctx, @@ -579,6 +584,8 @@ X509_STORE_CTX_verify_fn X509_STORE_CTX_get_verify(const X509_STORE_CTX *ctx); X509_STORE_CTX_get_issuer_fn X509_STORE_CTX_get_get_issuer(const X509_STORE_CTX *ctx); X509_STORE_CTX_check_issued_fn X509_STORE_CTX_get_check_issued(const X509_STORE_CTX *ctx); X509_STORE_CTX_check_revocation_fn X509_STORE_CTX_get_check_revocation(const X509_STORE_CTX *ctx); +void X509_STORE_CTX_set_get_crl(X509_STORE_CTX *ctx, + X509_STORE_CTX_get_crl_fn get_crl); X509_STORE_CTX_get_crl_fn X509_STORE_CTX_get_get_crl(const X509_STORE_CTX *ctx); X509_STORE_CTX_check_crl_fn X509_STORE_CTX_get_check_crl(const X509_STORE_CTX *ctx); X509_STORE_CTX_cert_crl_fn X509_STORE_CTX_get_cert_crl(const X509_STORE_CTX *ctx); @@ -600,7 +607,7 @@ X509_STORE_CTX_cleanup_fn X509_STORE_CTX_get_cleanup(const X509_STORE_CTX *ctx); # define X509_STORE_get1_crl X509_STORE_CTX_get1_crls #endif -X509_LOOKUP *X509_STORE_add_lookup(X509_STORE *v, X509_LOOKUP_METHOD *m); +X509_LOOKUP *X509_STORE_add_lookup(X509_STORE *xs, X509_LOOKUP_METHOD *m); X509_LOOKUP_METHOD *X509_LOOKUP_hash_dir(void); X509_LOOKUP_METHOD *X509_LOOKUP_file(void); X509_LOOKUP_METHOD *X509_LOOKUP_store(void); @@ -685,8 +692,8 @@ X509_LOOKUP_get_by_alias_fn X509_LOOKUP_meth_get_get_by_alias( const X509_LOOKUP_METHOD *method); -int X509_STORE_add_cert(X509_STORE *ctx, X509 *x); -int X509_STORE_add_crl(X509_STORE *ctx, X509_CRL *x); +int X509_STORE_add_cert(X509_STORE *xs, X509 *x); +int X509_STORE_add_crl(X509_STORE *xs, X509_CRL *x); int X509_STORE_CTX_get_by_subject(const X509_STORE_CTX *vs, X509_LOOKUP_TYPE type, @@ -730,23 +737,21 @@ void *X509_LOOKUP_get_method_data(const X509_LOOKUP *ctx); X509_STORE *X509_LOOKUP_get_store(const X509_LOOKUP *ctx); int X509_LOOKUP_shutdown(X509_LOOKUP *ctx); -int X509_STORE_load_file(X509_STORE *ctx, const char *file); -int X509_STORE_load_path(X509_STORE *ctx, const char *path); -int X509_STORE_load_store(X509_STORE *ctx, const char *store); -int X509_STORE_load_locations(X509_STORE *ctx, - const char *file, - const char *dir); -int X509_STORE_set_default_paths(X509_STORE *ctx); +int X509_STORE_load_file(X509_STORE *xs, const char *file); +int X509_STORE_load_path(X509_STORE *xs, const char *path); +int X509_STORE_load_store(X509_STORE *xs, const char *store); +int X509_STORE_load_locations(X509_STORE *s, const char *file, const char *dir); +int X509_STORE_set_default_paths(X509_STORE *xs); -int X509_STORE_load_file_ex(X509_STORE *ctx, const char *file, +int X509_STORE_load_file_ex(X509_STORE *xs, const char *file, OSSL_LIB_CTX *libctx, const char *propq); -int X509_STORE_load_store_ex(X509_STORE *ctx, const char *store, +int X509_STORE_load_store_ex(X509_STORE *xs, const char *store, OSSL_LIB_CTX *libctx, const char *propq); -int X509_STORE_load_locations_ex(X509_STORE *ctx, const char *file, - const char *dir, OSSL_LIB_CTX *libctx, - const char *propq); -int X509_STORE_set_default_paths_ex(X509_STORE *ctx, OSSL_LIB_CTX *libctx, - const char *propq); +int X509_STORE_load_locations_ex(X509_STORE *xs, + const char *file, const char *dir, + OSSL_LIB_CTX *libctx, const char *propq); +int X509_STORE_set_default_paths_ex(X509_STORE *xs, + OSSL_LIB_CTX *libctx, const char *propq); #define X509_STORE_CTX_get_ex_new_index(l, p, newf, dupf, freef) \ CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_X509_STORE_CTX, l, p, newf, dupf, freef) @@ -764,6 +769,7 @@ X509_STORE_CTX *X509_STORE_CTX_get0_parent_ctx(const X509_STORE_CTX *ctx); STACK_OF(X509) *X509_STORE_CTX_get0_chain(const X509_STORE_CTX *ctx); STACK_OF(X509) *X509_STORE_CTX_get1_chain(const X509_STORE_CTX *ctx); void X509_STORE_CTX_set_cert(X509_STORE_CTX *ctx, X509 *target); +void X509_STORE_CTX_set0_rpk(X509_STORE_CTX *ctx, EVP_PKEY *target); void X509_STORE_CTX_set0_verified_chain(X509_STORE_CTX *c, STACK_OF(X509) *sk); void X509_STORE_CTX_set0_crls(X509_STORE_CTX *ctx, STACK_OF(X509_CRL) *sk); int X509_STORE_CTX_set_purpose(X509_STORE_CTX *ctx, int purpose); @@ -773,6 +779,8 @@ int X509_STORE_CTX_purpose_inherit(X509_STORE_CTX *ctx, int def_purpose, void X509_STORE_CTX_set_flags(X509_STORE_CTX *ctx, unsigned long flags); void X509_STORE_CTX_set_time(X509_STORE_CTX *ctx, unsigned long flags, time_t t); +void X509_STORE_CTX_set_current_reasons(X509_STORE_CTX *ctx, + unsigned int current_reasons); X509_POLICY_TREE *X509_STORE_CTX_get0_policy_tree(const X509_STORE_CTX *ctx); int X509_STORE_CTX_get_explicit_policy(const X509_STORE_CTX *ctx); @@ -804,6 +812,7 @@ int X509_VERIFY_PARAM_clear_flags(X509_VERIFY_PARAM *param, unsigned long flags); unsigned long X509_VERIFY_PARAM_get_flags(const X509_VERIFY_PARAM *param); int X509_VERIFY_PARAM_set_purpose(X509_VERIFY_PARAM *param, int purpose); +int X509_VERIFY_PARAM_get_purpose(const X509_VERIFY_PARAM *param); int X509_VERIFY_PARAM_set_trust(X509_VERIFY_PARAM *param, int trust); void X509_VERIFY_PARAM_set_depth(X509_VERIFY_PARAM *param, int depth); void X509_VERIFY_PARAM_set_auth_level(X509_VERIFY_PARAM *param, int auth_level); diff --git a/deps/openssl/config/archs/BSD-x86/asm/include/openssl/x509v3.h b/deps/openssl/config/archs/BSD-x86/asm/include/openssl/x509v3.h index 20b67455f2061d..b8dabac35a4915 100644 --- a/deps/openssl/config/archs/BSD-x86/asm/include/openssl/x509v3.h +++ b/deps/openssl/config/archs/BSD-x86/asm/include/openssl/x509v3.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/x509v3.h.in * - * Copyright 1999-2023 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1999-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -25,6 +25,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -146,6 +149,11 @@ typedef struct BASIC_CONSTRAINTS_st { ASN1_INTEGER *pathlen; } BASIC_CONSTRAINTS; +typedef struct OSSL_BASIC_ATTR_CONSTRAINTS_st { + int authority; + ASN1_INTEGER *pathlen; +} OSSL_BASIC_ATTR_CONSTRAINTS; + typedef struct PKEY_USAGE_PERIOD_st { ASN1_GENERALIZEDTIME *notBefore; ASN1_GENERALIZEDTIME *notAfter; @@ -198,6 +206,8 @@ typedef struct ACCESS_DESCRIPTION_st { GENERAL_NAME *location; } ACCESS_DESCRIPTION; +int GENERAL_NAME_set1_X509_NAME(GENERAL_NAME **tgt, const X509_NAME *src); + SKM_DEFINE_STACK_OF_INTERNAL(ACCESS_DESCRIPTION, ACCESS_DESCRIPTION, ACCESS_DESCRIPTION) #define sk_ACCESS_DESCRIPTION_num(sk) OPENSSL_sk_num(ossl_check_const_ACCESS_DESCRIPTION_sk_type(sk)) #define sk_ACCESS_DESCRIPTION_value(sk, idx) ((ACCESS_DESCRIPTION *)OPENSSL_sk_value(ossl_check_const_ACCESS_DESCRIPTION_sk_type(sk), (idx))) @@ -294,6 +304,7 @@ typedef struct DIST_POINT_NAME_st { /* If relativename then this contains the full distribution point name */ X509_NAME *dpname; } DIST_POINT_NAME; +DECLARE_ASN1_DUP_FUNCTION(DIST_POINT_NAME) /* All existing reasons */ # define CRLDP_ALL_REASONS 0x807f @@ -659,15 +670,16 @@ struct ISSUING_DIST_POINT_st { # define EXFLAG_SAN_CRITICAL 0x80000 # define EXFLAG_NO_FINGERPRINT 0x100000 -# define KU_DIGITAL_SIGNATURE 0x0080 -# define KU_NON_REPUDIATION 0x0040 -# define KU_KEY_ENCIPHERMENT 0x0020 -# define KU_DATA_ENCIPHERMENT 0x0010 -# define KU_KEY_AGREEMENT 0x0008 -# define KU_KEY_CERT_SIGN 0x0004 -# define KU_CRL_SIGN 0x0002 -# define KU_ENCIPHER_ONLY 0x0001 -# define KU_DECIPHER_ONLY 0x8000 +/* https://datatracker.ietf.org/doc/html/rfc5280#section-4.2.1.3 */ +# define KU_DIGITAL_SIGNATURE X509v3_KU_DIGITAL_SIGNATURE +# define KU_NON_REPUDIATION X509v3_KU_NON_REPUDIATION +# define KU_KEY_ENCIPHERMENT X509v3_KU_KEY_ENCIPHERMENT +# define KU_DATA_ENCIPHERMENT X509v3_KU_DATA_ENCIPHERMENT +# define KU_KEY_AGREEMENT X509v3_KU_KEY_AGREEMENT +# define KU_KEY_CERT_SIGN X509v3_KU_KEY_CERT_SIGN +# define KU_CRL_SIGN X509v3_KU_CRL_SIGN +# define KU_ENCIPHER_ONLY X509v3_KU_ENCIPHER_ONLY +# define KU_DECIPHER_ONLY X509v3_KU_DECIPHER_ONLY # define NS_SSL_CLIENT 0x80 # define NS_SSL_SERVER 0x40 @@ -729,7 +741,7 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_PURPOSE, X509_PURPOSE, X509_PURPOSE) #define sk_X509_PURPOSE_set_cmp_func(sk, cmp) ((sk_X509_PURPOSE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_X509_PURPOSE_sk_type(sk), ossl_check_X509_PURPOSE_compfunc_type(cmp))) - +# define X509_PURPOSE_DEFAULT_ANY 0 # define X509_PURPOSE_SSL_CLIENT 1 # define X509_PURPOSE_SSL_SERVER 2 # define X509_PURPOSE_NS_SSL_SERVER 3 @@ -739,9 +751,10 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_PURPOSE, X509_PURPOSE, X509_PURPOSE) # define X509_PURPOSE_ANY 7 # define X509_PURPOSE_OCSP_HELPER 8 # define X509_PURPOSE_TIMESTAMP_SIGN 9 +# define X509_PURPOSE_CODE_SIGN 10 # define X509_PURPOSE_MIN 1 -# define X509_PURPOSE_MAX 9 +# define X509_PURPOSE_MAX 10 /* Flags for X509V3_EXT_print() */ @@ -767,6 +780,7 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_PURPOSE, X509_PURPOSE, X509_PURPOSE) # define X509V3_ADD_SILENT 0x10 DECLARE_ASN1_FUNCTIONS(BASIC_CONSTRAINTS) +DECLARE_ASN1_FUNCTIONS(OSSL_BASIC_ATTR_CONSTRAINTS) DECLARE_ASN1_FUNCTIONS(SXNET) DECLARE_ASN1_FUNCTIONS(SXNETID) @@ -976,7 +990,6 @@ int X509V3_extensions_print(BIO *out, const char *title, int X509_check_ca(X509 *x); int X509_check_purpose(X509 *x, int id, int ca); int X509_supported_extension(X509_EXTENSION *ex); -int X509_PURPOSE_set(int *p, int purpose); int X509_check_issued(X509 *issuer, X509 *subject); int X509_check_akid(const X509 *issuer, const AUTHORITY_KEYID *akid); void X509_set_proxy_flag(X509 *x); @@ -992,22 +1005,26 @@ const GENERAL_NAMES *X509_get0_authority_issuer(X509 *x); const ASN1_INTEGER *X509_get0_authority_serial(X509 *x); int X509_PURPOSE_get_count(void); -X509_PURPOSE *X509_PURPOSE_get0(int idx); +int X509_PURPOSE_get_unused_id(OSSL_LIB_CTX *libctx); int X509_PURPOSE_get_by_sname(const char *sname); int X509_PURPOSE_get_by_id(int id); int X509_PURPOSE_add(int id, int trust, int flags, int (*ck) (const X509_PURPOSE *, const X509 *, int), const char *name, const char *sname, void *arg); +void X509_PURPOSE_cleanup(void); + +X509_PURPOSE *X509_PURPOSE_get0(int idx); +int X509_PURPOSE_get_id(const X509_PURPOSE *); char *X509_PURPOSE_get0_name(const X509_PURPOSE *xp); char *X509_PURPOSE_get0_sname(const X509_PURPOSE *xp); int X509_PURPOSE_get_trust(const X509_PURPOSE *xp); -void X509_PURPOSE_cleanup(void); -int X509_PURPOSE_get_id(const X509_PURPOSE *); +int X509_PURPOSE_set(int *p, int purpose); STACK_OF(OPENSSL_STRING) *X509_get1_email(X509 *x); STACK_OF(OPENSSL_STRING) *X509_REQ_get1_email(X509_REQ *x); void X509_email_free(STACK_OF(OPENSSL_STRING) *sk); STACK_OF(OPENSSL_STRING) *X509_get1_ocsp(X509 *x); + /* Flags for X509_check_* functions */ /* @@ -1444,6 +1461,507 @@ const ASN1_PRINTABLESTRING *PROFESSION_INFO_get0_registrationNumber( void PROFESSION_INFO_set0_registrationNumber( PROFESSION_INFO *pi, ASN1_PRINTABLESTRING *rn); +int OSSL_GENERAL_NAMES_print(BIO *out, GENERAL_NAMES *gens, int indent); + +typedef STACK_OF(X509_ATTRIBUTE) OSSL_ATTRIBUTES_SYNTAX; +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTES_SYNTAX) + +typedef STACK_OF(USERNOTICE) OSSL_USER_NOTICE_SYNTAX; +DECLARE_ASN1_FUNCTIONS(OSSL_USER_NOTICE_SYNTAX) + +SKM_DEFINE_STACK_OF_INTERNAL(USERNOTICE, USERNOTICE, USERNOTICE) +#define sk_USERNOTICE_num(sk) OPENSSL_sk_num(ossl_check_const_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_value(sk, idx) ((USERNOTICE *)OPENSSL_sk_value(ossl_check_const_USERNOTICE_sk_type(sk), (idx))) +#define sk_USERNOTICE_new(cmp) ((STACK_OF(USERNOTICE) *)OPENSSL_sk_new(ossl_check_USERNOTICE_compfunc_type(cmp))) +#define sk_USERNOTICE_new_null() ((STACK_OF(USERNOTICE) *)OPENSSL_sk_new_null()) +#define sk_USERNOTICE_new_reserve(cmp, n) ((STACK_OF(USERNOTICE) *)OPENSSL_sk_new_reserve(ossl_check_USERNOTICE_compfunc_type(cmp), (n))) +#define sk_USERNOTICE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_USERNOTICE_sk_type(sk), (n)) +#define sk_USERNOTICE_free(sk) OPENSSL_sk_free(ossl_check_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_zero(sk) OPENSSL_sk_zero(ossl_check_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_delete(sk, i) ((USERNOTICE *)OPENSSL_sk_delete(ossl_check_USERNOTICE_sk_type(sk), (i))) +#define sk_USERNOTICE_delete_ptr(sk, ptr) ((USERNOTICE *)OPENSSL_sk_delete_ptr(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr))) +#define sk_USERNOTICE_push(sk, ptr) OPENSSL_sk_push(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr)) +#define sk_USERNOTICE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr)) +#define sk_USERNOTICE_pop(sk) ((USERNOTICE *)OPENSSL_sk_pop(ossl_check_USERNOTICE_sk_type(sk))) +#define sk_USERNOTICE_shift(sk) ((USERNOTICE *)OPENSSL_sk_shift(ossl_check_USERNOTICE_sk_type(sk))) +#define sk_USERNOTICE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_USERNOTICE_sk_type(sk),ossl_check_USERNOTICE_freefunc_type(freefunc)) +#define sk_USERNOTICE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr), (idx)) +#define sk_USERNOTICE_set(sk, idx, ptr) ((USERNOTICE *)OPENSSL_sk_set(ossl_check_USERNOTICE_sk_type(sk), (idx), ossl_check_USERNOTICE_type(ptr))) +#define sk_USERNOTICE_find(sk, ptr) OPENSSL_sk_find(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr)) +#define sk_USERNOTICE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr)) +#define sk_USERNOTICE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr), pnum) +#define sk_USERNOTICE_sort(sk) OPENSSL_sk_sort(ossl_check_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_dup(sk) ((STACK_OF(USERNOTICE) *)OPENSSL_sk_dup(ossl_check_const_USERNOTICE_sk_type(sk))) +#define sk_USERNOTICE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(USERNOTICE) *)OPENSSL_sk_deep_copy(ossl_check_const_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_copyfunc_type(copyfunc), ossl_check_USERNOTICE_freefunc_type(freefunc))) +#define sk_USERNOTICE_set_cmp_func(sk, cmp) ((sk_USERNOTICE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_compfunc_type(cmp))) + + +typedef struct OSSL_ROLE_SPEC_CERT_ID_st { + GENERAL_NAME *roleName; + GENERAL_NAME *roleCertIssuer; + ASN1_INTEGER *roleCertSerialNumber; + GENERAL_NAMES *roleCertLocator; +} OSSL_ROLE_SPEC_CERT_ID; + +DECLARE_ASN1_FUNCTIONS(OSSL_ROLE_SPEC_CERT_ID) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ROLE_SPEC_CERT_ID, OSSL_ROLE_SPEC_CERT_ID, OSSL_ROLE_SPEC_CERT_ID) +#define sk_OSSL_ROLE_SPEC_CERT_ID_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_value(sk, idx) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_value(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), (idx))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_new(cmp) ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_new(ossl_check_OSSL_ROLE_SPEC_CERT_ID_compfunc_type(cmp))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_new_null() ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ROLE_SPEC_CERT_ID_new_reserve(cmp, n) ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ROLE_SPEC_CERT_ID_compfunc_type(cmp), (n))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), (n)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_delete(sk, i) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_delete(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), (i))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_delete_ptr(sk, ptr) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_pop(sk) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_pop(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_shift(sk) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_shift(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk),ossl_check_OSSL_ROLE_SPEC_CERT_ID_freefunc_type(freefunc)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr), (idx)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_set(sk, idx, ptr) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_set(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), (idx), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr), pnum) +#define sk_OSSL_ROLE_SPEC_CERT_ID_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_dup(sk) ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_copyfunc_type(copyfunc), ossl_check_OSSL_ROLE_SPEC_CERT_ID_freefunc_type(freefunc))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_set_cmp_func(sk, cmp) ((sk_OSSL_ROLE_SPEC_CERT_ID_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_compfunc_type(cmp))) + + +typedef STACK_OF(OSSL_ROLE_SPEC_CERT_ID) OSSL_ROLE_SPEC_CERT_ID_SYNTAX; + +DECLARE_ASN1_FUNCTIONS(OSSL_ROLE_SPEC_CERT_ID_SYNTAX) +typedef struct OSSL_HASH_st { + X509_ALGOR *algorithmIdentifier; + ASN1_BIT_STRING *hashValue; +} OSSL_HASH; + +typedef struct OSSL_INFO_SYNTAX_POINTER_st { + GENERAL_NAMES *name; + OSSL_HASH *hash; +} OSSL_INFO_SYNTAX_POINTER; + +# define OSSL_INFO_SYNTAX_TYPE_CONTENT 0 +# define OSSL_INFO_SYNTAX_TYPE_POINTER 1 + +typedef struct OSSL_INFO_SYNTAX_st { + int type; + union { + ASN1_STRING *content; + OSSL_INFO_SYNTAX_POINTER *pointer; + } choice; +} OSSL_INFO_SYNTAX; + +typedef struct OSSL_PRIVILEGE_POLICY_ID_st { + ASN1_OBJECT *privilegePolicy; + OSSL_INFO_SYNTAX *privPolSyntax; +} OSSL_PRIVILEGE_POLICY_ID; + +typedef struct OSSL_ATTRIBUTE_DESCRIPTOR_st { + ASN1_OBJECT *identifier; + ASN1_STRING *attributeSyntax; + ASN1_UTF8STRING *name; + ASN1_UTF8STRING *description; + OSSL_PRIVILEGE_POLICY_ID *dominationRule; +} OSSL_ATTRIBUTE_DESCRIPTOR; + +DECLARE_ASN1_FUNCTIONS(OSSL_HASH) +DECLARE_ASN1_FUNCTIONS(OSSL_INFO_SYNTAX) +DECLARE_ASN1_FUNCTIONS(OSSL_INFO_SYNTAX_POINTER) +DECLARE_ASN1_FUNCTIONS(OSSL_PRIVILEGE_POLICY_ID) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_DESCRIPTOR) + +typedef struct OSSL_TIME_SPEC_ABSOLUTE_st { + ASN1_GENERALIZEDTIME *startTime; + ASN1_GENERALIZEDTIME *endTime; +} OSSL_TIME_SPEC_ABSOLUTE; + +typedef struct OSSL_DAY_TIME_st { + ASN1_INTEGER *hour; + ASN1_INTEGER *minute; + ASN1_INTEGER *second; +} OSSL_DAY_TIME; + +typedef struct OSSL_DAY_TIME_BAND_st { + OSSL_DAY_TIME *startDayTime; + OSSL_DAY_TIME *endDayTime; +} OSSL_DAY_TIME_BAND; + +# define OSSL_NAMED_DAY_TYPE_INT 0 +# define OSSL_NAMED_DAY_TYPE_BIT 1 +# define OSSL_NAMED_DAY_INT_SUN 1 +# define OSSL_NAMED_DAY_INT_MON 2 +# define OSSL_NAMED_DAY_INT_TUE 3 +# define OSSL_NAMED_DAY_INT_WED 4 +# define OSSL_NAMED_DAY_INT_THU 5 +# define OSSL_NAMED_DAY_INT_FRI 6 +# define OSSL_NAMED_DAY_INT_SAT 7 +# define OSSL_NAMED_DAY_BIT_SUN 0 +# define OSSL_NAMED_DAY_BIT_MON 1 +# define OSSL_NAMED_DAY_BIT_TUE 2 +# define OSSL_NAMED_DAY_BIT_WED 3 +# define OSSL_NAMED_DAY_BIT_THU 4 +# define OSSL_NAMED_DAY_BIT_FRI 5 +# define OSSL_NAMED_DAY_BIT_SAT 6 + +typedef struct OSSL_NAMED_DAY_st { + int type; + union { + ASN1_INTEGER *intNamedDays; + ASN1_BIT_STRING *bitNamedDays; + } choice; +} OSSL_NAMED_DAY; + +# define OSSL_TIME_SPEC_X_DAY_OF_FIRST 0 +# define OSSL_TIME_SPEC_X_DAY_OF_SECOND 1 +# define OSSL_TIME_SPEC_X_DAY_OF_THIRD 2 +# define OSSL_TIME_SPEC_X_DAY_OF_FOURTH 3 +# define OSSL_TIME_SPEC_X_DAY_OF_FIFTH 4 + +typedef struct OSSL_TIME_SPEC_X_DAY_OF_st { + int type; + union { + OSSL_NAMED_DAY *first; + OSSL_NAMED_DAY *second; + OSSL_NAMED_DAY *third; + OSSL_NAMED_DAY *fourth; + OSSL_NAMED_DAY *fifth; + } choice; +} OSSL_TIME_SPEC_X_DAY_OF; + +# define OSSL_TIME_SPEC_DAY_TYPE_INT 0 +# define OSSL_TIME_SPEC_DAY_TYPE_BIT 1 +# define OSSL_TIME_SPEC_DAY_TYPE_DAY_OF 2 +# define OSSL_TIME_SPEC_DAY_BIT_SUN 0 +# define OSSL_TIME_SPEC_DAY_BIT_MON 1 +# define OSSL_TIME_SPEC_DAY_BIT_TUE 2 +# define OSSL_TIME_SPEC_DAY_BIT_WED 3 +# define OSSL_TIME_SPEC_DAY_BIT_THU 4 +# define OSSL_TIME_SPEC_DAY_BIT_FRI 5 +# define OSSL_TIME_SPEC_DAY_BIT_SAT 6 +# define OSSL_TIME_SPEC_DAY_INT_SUN 1 +# define OSSL_TIME_SPEC_DAY_INT_MON 2 +# define OSSL_TIME_SPEC_DAY_INT_TUE 3 +# define OSSL_TIME_SPEC_DAY_INT_WED 4 +# define OSSL_TIME_SPEC_DAY_INT_THU 5 +# define OSSL_TIME_SPEC_DAY_INT_FRI 6 +# define OSSL_TIME_SPEC_DAY_INT_SAT 7 + +typedef struct OSSL_TIME_SPEC_DAY_st { + int type; + union { + STACK_OF(ASN1_INTEGER) *intDay; + ASN1_BIT_STRING *bitDay; + OSSL_TIME_SPEC_X_DAY_OF *dayOf; + } choice; +} OSSL_TIME_SPEC_DAY; + +# define OSSL_TIME_SPEC_WEEKS_TYPE_ALL 0 +# define OSSL_TIME_SPEC_WEEKS_TYPE_INT 1 +# define OSSL_TIME_SPEC_WEEKS_TYPE_BIT 2 +# define OSSL_TIME_SPEC_BIT_WEEKS_1 0 +# define OSSL_TIME_SPEC_BIT_WEEKS_2 1 +# define OSSL_TIME_SPEC_BIT_WEEKS_3 2 +# define OSSL_TIME_SPEC_BIT_WEEKS_4 3 +# define OSSL_TIME_SPEC_BIT_WEEKS_5 4 + +typedef struct OSSL_TIME_SPEC_WEEKS_st { + int type; + union { + ASN1_NULL *allWeeks; + STACK_OF(ASN1_INTEGER) *intWeek; + ASN1_BIT_STRING *bitWeek; + } choice; +} OSSL_TIME_SPEC_WEEKS; + +# define OSSL_TIME_SPEC_MONTH_TYPE_ALL 0 +# define OSSL_TIME_SPEC_MONTH_TYPE_INT 1 +# define OSSL_TIME_SPEC_MONTH_TYPE_BIT 2 +# define OSSL_TIME_SPEC_INT_MONTH_JAN 1 +# define OSSL_TIME_SPEC_INT_MONTH_FEB 2 +# define OSSL_TIME_SPEC_INT_MONTH_MAR 3 +# define OSSL_TIME_SPEC_INT_MONTH_APR 4 +# define OSSL_TIME_SPEC_INT_MONTH_MAY 5 +# define OSSL_TIME_SPEC_INT_MONTH_JUN 6 +# define OSSL_TIME_SPEC_INT_MONTH_JUL 7 +# define OSSL_TIME_SPEC_INT_MONTH_AUG 8 +# define OSSL_TIME_SPEC_INT_MONTH_SEP 9 +# define OSSL_TIME_SPEC_INT_MONTH_OCT 10 +# define OSSL_TIME_SPEC_INT_MONTH_NOV 11 +# define OSSL_TIME_SPEC_INT_MONTH_DEC 12 +# define OSSL_TIME_SPEC_BIT_MONTH_JAN 0 +# define OSSL_TIME_SPEC_BIT_MONTH_FEB 1 +# define OSSL_TIME_SPEC_BIT_MONTH_MAR 2 +# define OSSL_TIME_SPEC_BIT_MONTH_APR 3 +# define OSSL_TIME_SPEC_BIT_MONTH_MAY 4 +# define OSSL_TIME_SPEC_BIT_MONTH_JUN 5 +# define OSSL_TIME_SPEC_BIT_MONTH_JUL 6 +# define OSSL_TIME_SPEC_BIT_MONTH_AUG 7 +# define OSSL_TIME_SPEC_BIT_MONTH_SEP 8 +# define OSSL_TIME_SPEC_BIT_MONTH_OCT 9 +# define OSSL_TIME_SPEC_BIT_MONTH_NOV 10 +# define OSSL_TIME_SPEC_BIT_MONTH_DEC 11 + +typedef struct OSSL_TIME_SPEC_MONTH_st { + int type; + union { + ASN1_NULL *allMonths; + STACK_OF(ASN1_INTEGER) *intMonth; + ASN1_BIT_STRING *bitMonth; + } choice; +} OSSL_TIME_SPEC_MONTH; + +typedef struct OSSL_TIME_PERIOD_st { + STACK_OF(OSSL_DAY_TIME_BAND) *timesOfDay; + OSSL_TIME_SPEC_DAY *days; + OSSL_TIME_SPEC_WEEKS *weeks; + OSSL_TIME_SPEC_MONTH *months; + STACK_OF(ASN1_INTEGER) *years; +} OSSL_TIME_PERIOD; + +# define OSSL_TIME_SPEC_TIME_TYPE_ABSOLUTE 0 +# define OSSL_TIME_SPEC_TIME_TYPE_PERIODIC 1 + +typedef struct OSSL_TIME_SPEC_TIME_st { + int type; + union { + OSSL_TIME_SPEC_ABSOLUTE *absolute; + STACK_OF(OSSL_TIME_PERIOD) *periodic; + } choice; +} OSSL_TIME_SPEC_TIME; + +typedef struct OSSL_TIME_SPEC_st { + OSSL_TIME_SPEC_TIME *time; + ASN1_BOOLEAN notThisTime; + ASN1_INTEGER *timeZone; +} OSSL_TIME_SPEC; + +DECLARE_ASN1_FUNCTIONS(OSSL_DAY_TIME) +DECLARE_ASN1_FUNCTIONS(OSSL_DAY_TIME_BAND) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_DAY) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_WEEKS) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_MONTH) +DECLARE_ASN1_FUNCTIONS(OSSL_NAMED_DAY) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_X_DAY_OF) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_ABSOLUTE) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_TIME) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_PERIOD) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_TIME_PERIOD, OSSL_TIME_PERIOD, OSSL_TIME_PERIOD) +#define sk_OSSL_TIME_PERIOD_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_value(sk, idx) ((OSSL_TIME_PERIOD *)OPENSSL_sk_value(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk), (idx))) +#define sk_OSSL_TIME_PERIOD_new(cmp) ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_new(ossl_check_OSSL_TIME_PERIOD_compfunc_type(cmp))) +#define sk_OSSL_TIME_PERIOD_new_null() ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_new_null()) +#define sk_OSSL_TIME_PERIOD_new_reserve(cmp, n) ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_TIME_PERIOD_compfunc_type(cmp), (n))) +#define sk_OSSL_TIME_PERIOD_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), (n)) +#define sk_OSSL_TIME_PERIOD_free(sk) OPENSSL_sk_free(ossl_check_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_delete(sk, i) ((OSSL_TIME_PERIOD *)OPENSSL_sk_delete(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), (i))) +#define sk_OSSL_TIME_PERIOD_delete_ptr(sk, ptr) ((OSSL_TIME_PERIOD *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr))) +#define sk_OSSL_TIME_PERIOD_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr)) +#define sk_OSSL_TIME_PERIOD_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr)) +#define sk_OSSL_TIME_PERIOD_pop(sk) ((OSSL_TIME_PERIOD *)OPENSSL_sk_pop(ossl_check_OSSL_TIME_PERIOD_sk_type(sk))) +#define sk_OSSL_TIME_PERIOD_shift(sk) ((OSSL_TIME_PERIOD *)OPENSSL_sk_shift(ossl_check_OSSL_TIME_PERIOD_sk_type(sk))) +#define sk_OSSL_TIME_PERIOD_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_TIME_PERIOD_sk_type(sk),ossl_check_OSSL_TIME_PERIOD_freefunc_type(freefunc)) +#define sk_OSSL_TIME_PERIOD_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr), (idx)) +#define sk_OSSL_TIME_PERIOD_set(sk, idx, ptr) ((OSSL_TIME_PERIOD *)OPENSSL_sk_set(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), (idx), ossl_check_OSSL_TIME_PERIOD_type(ptr))) +#define sk_OSSL_TIME_PERIOD_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr)) +#define sk_OSSL_TIME_PERIOD_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr)) +#define sk_OSSL_TIME_PERIOD_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr), pnum) +#define sk_OSSL_TIME_PERIOD_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_dup(sk) ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_dup(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk))) +#define sk_OSSL_TIME_PERIOD_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_copyfunc_type(copyfunc), ossl_check_OSSL_TIME_PERIOD_freefunc_type(freefunc))) +#define sk_OSSL_TIME_PERIOD_set_cmp_func(sk, cmp) ((sk_OSSL_TIME_PERIOD_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_compfunc_type(cmp))) + + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_DAY_TIME_BAND, OSSL_DAY_TIME_BAND, OSSL_DAY_TIME_BAND) +#define sk_OSSL_DAY_TIME_BAND_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_value(sk, idx) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_value(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk), (idx))) +#define sk_OSSL_DAY_TIME_BAND_new(cmp) ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_new(ossl_check_OSSL_DAY_TIME_BAND_compfunc_type(cmp))) +#define sk_OSSL_DAY_TIME_BAND_new_null() ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_new_null()) +#define sk_OSSL_DAY_TIME_BAND_new_reserve(cmp, n) ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_DAY_TIME_BAND_compfunc_type(cmp), (n))) +#define sk_OSSL_DAY_TIME_BAND_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), (n)) +#define sk_OSSL_DAY_TIME_BAND_free(sk) OPENSSL_sk_free(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_delete(sk, i) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_delete(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), (i))) +#define sk_OSSL_DAY_TIME_BAND_delete_ptr(sk, ptr) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr))) +#define sk_OSSL_DAY_TIME_BAND_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr)) +#define sk_OSSL_DAY_TIME_BAND_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr)) +#define sk_OSSL_DAY_TIME_BAND_pop(sk) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_pop(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk))) +#define sk_OSSL_DAY_TIME_BAND_shift(sk) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_shift(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk))) +#define sk_OSSL_DAY_TIME_BAND_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk),ossl_check_OSSL_DAY_TIME_BAND_freefunc_type(freefunc)) +#define sk_OSSL_DAY_TIME_BAND_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr), (idx)) +#define sk_OSSL_DAY_TIME_BAND_set(sk, idx, ptr) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_set(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), (idx), ossl_check_OSSL_DAY_TIME_BAND_type(ptr))) +#define sk_OSSL_DAY_TIME_BAND_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr)) +#define sk_OSSL_DAY_TIME_BAND_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr)) +#define sk_OSSL_DAY_TIME_BAND_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr), pnum) +#define sk_OSSL_DAY_TIME_BAND_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_dup(sk) ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_dup(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk))) +#define sk_OSSL_DAY_TIME_BAND_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_copyfunc_type(copyfunc), ossl_check_OSSL_DAY_TIME_BAND_freefunc_type(freefunc))) +#define sk_OSSL_DAY_TIME_BAND_set_cmp_func(sk, cmp) ((sk_OSSL_DAY_TIME_BAND_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_compfunc_type(cmp))) + + +/* Attribute Type and Value */ +typedef struct atav_st { + ASN1_OBJECT *type; + ASN1_TYPE *value; +} OSSL_ATAV; + +typedef struct ATTRIBUTE_TYPE_MAPPING_st { + ASN1_OBJECT *local; + ASN1_OBJECT *remote; +} OSSL_ATTRIBUTE_TYPE_MAPPING; + +typedef struct ATTRIBUTE_VALUE_MAPPING_st { + OSSL_ATAV *local; + OSSL_ATAV *remote; +} OSSL_ATTRIBUTE_VALUE_MAPPING; + +# define OSSL_ATTR_MAP_TYPE 0 +# define OSSL_ATTR_MAP_VALUE 1 + +typedef struct ATTRIBUTE_MAPPING_st { + int type; + union { + OSSL_ATTRIBUTE_TYPE_MAPPING *typeMappings; + OSSL_ATTRIBUTE_VALUE_MAPPING *typeValueMappings; + } choice; +} OSSL_ATTRIBUTE_MAPPING; + +typedef STACK_OF(OSSL_ATTRIBUTE_MAPPING) OSSL_ATTRIBUTE_MAPPINGS; +DECLARE_ASN1_FUNCTIONS(OSSL_ATAV) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_TYPE_MAPPING) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_VALUE_MAPPING) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_MAPPING) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_MAPPINGS) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ATTRIBUTE_MAPPING, OSSL_ATTRIBUTE_MAPPING, OSSL_ATTRIBUTE_MAPPING) +#define sk_OSSL_ATTRIBUTE_MAPPING_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_value(sk, idx) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_value(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), (idx))) +#define sk_OSSL_ATTRIBUTE_MAPPING_new(cmp) ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_new(ossl_check_OSSL_ATTRIBUTE_MAPPING_compfunc_type(cmp))) +#define sk_OSSL_ATTRIBUTE_MAPPING_new_null() ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ATTRIBUTE_MAPPING_new_reserve(cmp, n) ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ATTRIBUTE_MAPPING_compfunc_type(cmp), (n))) +#define sk_OSSL_ATTRIBUTE_MAPPING_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), (n)) +#define sk_OSSL_ATTRIBUTE_MAPPING_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_delete(sk, i) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_delete(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), (i))) +#define sk_OSSL_ATTRIBUTE_MAPPING_delete_ptr(sk, ptr) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr))) +#define sk_OSSL_ATTRIBUTE_MAPPING_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr)) +#define sk_OSSL_ATTRIBUTE_MAPPING_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr)) +#define sk_OSSL_ATTRIBUTE_MAPPING_pop(sk) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_pop(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk))) +#define sk_OSSL_ATTRIBUTE_MAPPING_shift(sk) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_shift(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk))) +#define sk_OSSL_ATTRIBUTE_MAPPING_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk),ossl_check_OSSL_ATTRIBUTE_MAPPING_freefunc_type(freefunc)) +#define sk_OSSL_ATTRIBUTE_MAPPING_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr), (idx)) +#define sk_OSSL_ATTRIBUTE_MAPPING_set(sk, idx, ptr) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_set(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), (idx), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr))) +#define sk_OSSL_ATTRIBUTE_MAPPING_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr)) +#define sk_OSSL_ATTRIBUTE_MAPPING_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr)) +#define sk_OSSL_ATTRIBUTE_MAPPING_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr), pnum) +#define sk_OSSL_ATTRIBUTE_MAPPING_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_dup(sk) ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk))) +#define sk_OSSL_ATTRIBUTE_MAPPING_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_copyfunc_type(copyfunc), ossl_check_OSSL_ATTRIBUTE_MAPPING_freefunc_type(freefunc))) +#define sk_OSSL_ATTRIBUTE_MAPPING_set_cmp_func(sk, cmp) ((sk_OSSL_ATTRIBUTE_MAPPING_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_compfunc_type(cmp))) + + +# define OSSL_AAA_ATTRIBUTE_TYPE 0 +# define OSSL_AAA_ATTRIBUTE_VALUES 1 + +typedef struct ALLOWED_ATTRIBUTES_CHOICE_st { + int type; + union { + ASN1_OBJECT *attributeType; + X509_ATTRIBUTE *attributeTypeandValues; + } choice; +} OSSL_ALLOWED_ATTRIBUTES_CHOICE; + +typedef struct ALLOWED_ATTRIBUTES_ITEM_st { + STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *attributes; + GENERAL_NAME *holderDomain; +} OSSL_ALLOWED_ATTRIBUTES_ITEM; + +typedef STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) OSSL_ALLOWED_ATTRIBUTES_SYNTAX; + +DECLARE_ASN1_FUNCTIONS(OSSL_ALLOWED_ATTRIBUTES_CHOICE) +DECLARE_ASN1_FUNCTIONS(OSSL_ALLOWED_ATTRIBUTES_ITEM) +DECLARE_ASN1_FUNCTIONS(OSSL_ALLOWED_ATTRIBUTES_SYNTAX) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ALLOWED_ATTRIBUTES_CHOICE, OSSL_ALLOWED_ATTRIBUTES_CHOICE, OSSL_ALLOWED_ATTRIBUTES_CHOICE) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_value(sk, idx) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_value(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), (idx))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_new(cmp) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_new(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_compfunc_type(cmp))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_new_null() ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_new_reserve(cmp, n) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_compfunc_type(cmp), (n))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), (n)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_delete(sk, i) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_delete(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), (i))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_delete_ptr(sk, ptr) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_pop(sk) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_pop(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_shift(sk) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_shift(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk),ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_freefunc_type(freefunc)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr), (idx)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_set(sk, idx, ptr) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_set(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), (idx), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr), pnum) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_dup(sk) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_copyfunc_type(copyfunc), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_freefunc_type(freefunc))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_set_cmp_func(sk, cmp) ((sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_compfunc_type(cmp))) + + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ALLOWED_ATTRIBUTES_ITEM, OSSL_ALLOWED_ATTRIBUTES_ITEM, OSSL_ALLOWED_ATTRIBUTES_ITEM) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_value(sk, idx) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_value(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), (idx))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_new(cmp) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_new(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_compfunc_type(cmp))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_new_null() ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_new_reserve(cmp, n) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_compfunc_type(cmp), (n))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), (n)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_delete(sk, i) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_delete(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), (i))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_delete_ptr(sk, ptr) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_pop(sk) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_pop(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_shift(sk) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_shift(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk),ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_freefunc_type(freefunc)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr), (idx)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_set(sk, idx, ptr) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_set(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), (idx), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr), pnum) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_dup(sk) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_copyfunc_type(copyfunc), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_freefunc_type(freefunc))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_set_cmp_func(sk, cmp) ((sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_compfunc_type(cmp))) + + +typedef struct AA_DIST_POINT_st { + DIST_POINT_NAME *distpoint; + ASN1_BIT_STRING *reasons; + int dp_reasons; + ASN1_BOOLEAN indirectCRL; + ASN1_BOOLEAN containsUserAttributeCerts; + ASN1_BOOLEAN containsAACerts; + ASN1_BOOLEAN containsSOAPublicKeyCerts; +} OSSL_AA_DIST_POINT; + +DECLARE_ASN1_FUNCTIONS(OSSL_AA_DIST_POINT) + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/BSD-x86/asm/include/progs.h b/deps/openssl/config/archs/BSD-x86/asm/include/progs.h index be55f61503d405..1b62ec37dec130 100644 --- a/deps/openssl/config/archs/BSD-x86/asm/include/progs.h +++ b/deps/openssl/config/archs/BSD-x86/asm/include/progs.h @@ -56,6 +56,7 @@ extern int s_client_main(int argc, char *argv[]); extern int s_server_main(int argc, char *argv[]); extern int s_time_main(int argc, char *argv[]); extern int sess_id_main(int argc, char *argv[]); +extern int skeyutl_main(int argc, char *argv[]); extern int smime_main(int argc, char *argv[]); extern int speed_main(int argc, char *argv[]); extern int spkac_main(int argc, char *argv[]); @@ -110,6 +111,7 @@ extern const OPTIONS s_client_options[]; extern const OPTIONS s_server_options[]; extern const OPTIONS s_time_options[]; extern const OPTIONS sess_id_options[]; +extern const OPTIONS skeyutl_options[]; extern const OPTIONS smime_options[]; extern const OPTIONS speed_options[]; extern const OPTIONS spkac_options[]; diff --git a/deps/openssl/config/archs/BSD-x86/asm/openssl-cl.gypi b/deps/openssl/config/archs/BSD-x86/asm/openssl-cl.gypi index 4380305593acd1..b4d8e4514b603c 100644 --- a/deps/openssl/config/archs/BSD-x86/asm/openssl-cl.gypi +++ b/deps/openssl/config/archs/BSD-x86/asm/openssl-cl.gypi @@ -82,6 +82,7 @@ 'openssl/apps/s_server.c', 'openssl/apps/s_time.c', 'openssl/apps/sess_id.c', + 'openssl/apps/skeyutl.c', 'openssl/apps/smime.c', 'openssl/apps/speed.c', 'openssl/apps/spkac.c', @@ -97,12 +98,14 @@ 'openssl/apps/lib/app_rand.c', 'openssl/apps/lib/app_x509.c', 'openssl/apps/lib/apps.c', + 'openssl/apps/lib/apps_opt_printf.c', 'openssl/apps/lib/apps_ui.c', 'openssl/apps/lib/columns.c', 'openssl/apps/lib/engine.c', 'openssl/apps/lib/engine_loader.c', 'openssl/apps/lib/fmt.c', 'openssl/apps/lib/http_server.c', + 'openssl/apps/lib/log.c', 'openssl/apps/lib/names.c', 'openssl/apps/lib/opt.c', 'openssl/apps/lib/s_cb.c', diff --git a/deps/openssl/config/archs/BSD-x86/asm/openssl-fips.gypi b/deps/openssl/config/archs/BSD-x86/asm/openssl-fips.gypi index f900bbeb914057..8718c229855634 100644 --- a/deps/openssl/config/archs/BSD-x86/asm/openssl-fips.gypi +++ b/deps/openssl/config/archs/BSD-x86/asm/openssl-fips.gypi @@ -96,14 +96,15 @@ 'openssl/crypto/evp/kem.c', 'openssl/crypto/evp/keymgmt_lib.c', 'openssl/crypto/evp/keymgmt_meth.c', - 'openssl/crypto/evp/m_sigver.c', 'openssl/crypto/evp/mac_lib.c', 'openssl/crypto/evp/mac_meth.c', 'openssl/crypto/evp/p_lib.c', 'openssl/crypto/evp/pmeth_check.c', 'openssl/crypto/evp/pmeth_gn.c', 'openssl/crypto/evp/pmeth_lib.c', + 'openssl/crypto/evp/s_lib.c', 'openssl/crypto/evp/signature.c', + 'openssl/crypto/evp/skeymgmt_meth.c', 'openssl/crypto/ffc/ffc_backend.c', 'openssl/crypto/ffc/ffc_dh.c', 'openssl/crypto/ffc/ffc_key_generate.c', @@ -111,6 +112,8 @@ 'openssl/crypto/ffc/ffc_params.c', 'openssl/crypto/ffc/ffc_params_generate.c', 'openssl/crypto/ffc/ffc_params_validate.c', + 'openssl/crypto/hashtable/hashfunc.c', + 'openssl/crypto/hashtable/hashtable.c', 'openssl/crypto/hmac/hmac.c', 'openssl/crypto/lhash/lhash.c', 'openssl/crypto/asn1_dsa.c', @@ -140,6 +143,16 @@ 'openssl/crypto/threads_none.c', 'openssl/crypto/threads_pthread.c', 'openssl/crypto/threads_win.c', + 'openssl/crypto/time.c', + 'openssl/crypto/ml_dsa/ml_dsa_encoders.c', + 'openssl/crypto/ml_dsa/ml_dsa_key.c', + 'openssl/crypto/ml_dsa/ml_dsa_key_compress.c', + 'openssl/crypto/ml_dsa/ml_dsa_matrix.c', + 'openssl/crypto/ml_dsa/ml_dsa_ntt.c', + 'openssl/crypto/ml_dsa/ml_dsa_params.c', + 'openssl/crypto/ml_dsa/ml_dsa_sample.c', + 'openssl/crypto/ml_dsa/ml_dsa_sign.c', + 'openssl/crypto/ml_kem/ml_kem.c', 'openssl/crypto/modes/cbc128.c', 'openssl/crypto/modes/ccm128.c', 'openssl/crypto/modes/cfb128.c', @@ -148,6 +161,7 @@ 'openssl/crypto/modes/ofb128.c', 'openssl/crypto/modes/wrap128.c', 'openssl/crypto/modes/xts128.c', + 'openssl/crypto/modes/xts128gb.c', 'openssl/crypto/property/defn_cache.c', 'openssl/crypto/property/property.c', 'openssl/crypto/property/property_parse.c', @@ -176,7 +190,23 @@ 'openssl/crypto/sha/sha256.c', 'openssl/crypto/sha/sha3.c', 'openssl/crypto/sha/sha512.c', + 'openssl/crypto/slh_dsa/slh_adrs.c', + 'openssl/crypto/slh_dsa/slh_dsa.c', + 'openssl/crypto/slh_dsa/slh_dsa_hash_ctx.c', + 'openssl/crypto/slh_dsa/slh_dsa_key.c', + 'openssl/crypto/slh_dsa/slh_fors.c', + 'openssl/crypto/slh_dsa/slh_hash.c', + 'openssl/crypto/slh_dsa/slh_hypertree.c', + 'openssl/crypto/slh_dsa/slh_params.c', + 'openssl/crypto/slh_dsa/slh_wots.c', + 'openssl/crypto/slh_dsa/slh_xmss.c', 'openssl/crypto/stack/stack.c', + 'openssl/crypto/thread/arch/thread_none.c', + 'openssl/crypto/thread/arch/thread_posix.c', + 'openssl/crypto/thread/arch/thread_win.c', + 'openssl/crypto/thread/api.c', + 'openssl/crypto/thread/arch.c', + 'openssl/crypto/thread/internal.c', 'openssl/providers/common/der/der_rsa_sig.c', 'openssl/providers/common/bio_prov.c', 'openssl/providers/common/capabilities.c', @@ -185,6 +215,7 @@ 'openssl/providers/common/provider_util.c', 'openssl/providers/common/securitycheck.c', 'openssl/providers/common/securitycheck_fips.c', + 'openssl/providers/fips/fipsindicator.c', 'openssl/providers/fips/fipsprov.c', 'openssl/providers/fips/self_test.c', 'openssl/providers/fips/self_test_kats.c', @@ -222,6 +253,8 @@ 'openssl/providers/implementations/kdfs/sskdf.c', 'openssl/providers/implementations/kdfs/tls1_prf.c', 'openssl/providers/implementations/kdfs/x942kdf.c', + 'openssl/providers/implementations/kem/ml_kem_kem.c', + 'openssl/providers/implementations/kem/mlx_kem.c', 'openssl/providers/implementations/kem/rsa_kem.c', 'openssl/providers/implementations/keymgmt/dh_kmgmt.c', 'openssl/providers/implementations/keymgmt/dsa_kmgmt.c', @@ -229,29 +262,39 @@ 'openssl/providers/implementations/keymgmt/ecx_kmgmt.c', 'openssl/providers/implementations/keymgmt/kdf_legacy_kmgmt.c', 'openssl/providers/implementations/keymgmt/mac_legacy_kmgmt.c', + 'openssl/providers/implementations/keymgmt/ml_dsa_kmgmt.c', + 'openssl/providers/implementations/keymgmt/ml_kem_kmgmt.c', + 'openssl/providers/implementations/keymgmt/mlx_kmgmt.c', 'openssl/providers/implementations/keymgmt/rsa_kmgmt.c', + 'openssl/providers/implementations/keymgmt/slh_dsa_kmgmt.c', 'openssl/providers/implementations/macs/cmac_prov.c', 'openssl/providers/implementations/macs/gmac_prov.c', 'openssl/providers/implementations/macs/hmac_prov.c', 'openssl/providers/implementations/macs/kmac_prov.c', - 'openssl/providers/implementations/rands/crngt.c', 'openssl/providers/implementations/rands/drbg.c', 'openssl/providers/implementations/rands/drbg_ctr.c', 'openssl/providers/implementations/rands/drbg_hash.c', 'openssl/providers/implementations/rands/drbg_hmac.c', + 'openssl/providers/implementations/rands/fips_crng_test.c', 'openssl/providers/implementations/rands/test_rng.c', 'openssl/providers/implementations/signature/dsa_sig.c', 'openssl/providers/implementations/signature/ecdsa_sig.c', 'openssl/providers/implementations/signature/eddsa_sig.c', 'openssl/providers/implementations/signature/mac_legacy_sig.c', + 'openssl/providers/implementations/signature/ml_dsa_sig.c', 'openssl/providers/implementations/signature/rsa_sig.c', - 'openssl/ssl/s3_cbc.c', + 'openssl/providers/implementations/signature/slh_dsa_sig.c', + 'openssl/providers/implementations/skeymgmt/aes_skmgmt.c', + 'openssl/providers/implementations/skeymgmt/generic.c', + 'openssl/ssl/record/methods/ssl3_cbc.c', 'openssl/providers/common/der/der_dsa_key.c', 'openssl/providers/common/der/der_dsa_sig.c', 'openssl/providers/common/der/der_ec_key.c', 'openssl/providers/common/der/der_ec_sig.c', 'openssl/providers/common/der/der_ecx_key.c', + 'openssl/providers/common/der/der_ml_dsa_key.c', 'openssl/providers/common/der/der_rsa_key.c', + 'openssl/providers/common/der/der_slh_dsa_key.c', 'openssl/providers/common/provider_ctx.c', 'openssl/providers/common/provider_err.c', 'openssl/providers/implementations/ciphers/ciphercommon.c', @@ -262,7 +305,7 @@ 'openssl/providers/implementations/ciphers/ciphercommon_gcm_hw.c', 'openssl/providers/implementations/ciphers/ciphercommon_hw.c', 'openssl/providers/implementations/digests/digestcommon.c', - 'openssl/ssl/record/tls_pad.c', + 'openssl/ssl/record/methods/tls_pad.c', 'openssl/providers/fips/fips_entry.c', ], @@ -280,6 +323,7 @@ './config/archs/BSD-x86/asm/crypto/des/crypt586.S', './config/archs/BSD-x86/asm/crypto/des/des-586.S', './config/archs/BSD-x86/asm/crypto/ec/ecp_nistz256-x86.S', + './config/archs/BSD-x86/asm/crypto/params_idx.c', './config/archs/BSD-x86/asm/crypto/x86cpuid.S', './config/archs/BSD-x86/asm/crypto/md5/md5-586.S', './config/archs/BSD-x86/asm/crypto/modes/ghash-x86.S', @@ -296,7 +340,9 @@ './config/archs/BSD-x86/asm/providers/common/der/der_dsa_gen.c', './config/archs/BSD-x86/asm/providers/common/der/der_ec_gen.c', './config/archs/BSD-x86/asm/providers/common/der/der_ecx_gen.c', + './config/archs/BSD-x86/asm/providers/common/der/der_ml_dsa_gen.c', './config/archs/BSD-x86/asm/providers/common/der/der_rsa_gen.c', + './config/archs/BSD-x86/asm/providers/common/der/der_slh_dsa_gen.c', './config/archs/BSD-x86/asm/providers/common/der/der_wrap_gen.c', './config/archs/BSD-x86/asm/providers/legacy.ld', './config/archs/BSD-x86/asm/providers/fips.ld', diff --git a/deps/openssl/config/archs/BSD-x86/asm/openssl.gypi b/deps/openssl/config/archs/BSD-x86/asm/openssl.gypi index dbe9034311729f..2ddc8e46672933 100644 --- a/deps/openssl/config/archs/BSD-x86/asm/openssl.gypi +++ b/deps/openssl/config/archs/BSD-x86/asm/openssl.gypi @@ -7,14 +7,15 @@ 'openssl/ssl/d1_srtp.c', 'openssl/ssl/methods.c', 'openssl/ssl/pqueue.c', + 'openssl/ssl/priority_queue.c', 'openssl/ssl/s3_enc.c', 'openssl/ssl/s3_lib.c', 'openssl/ssl/s3_msg.c', 'openssl/ssl/ssl_asn1.c', 'openssl/ssl/ssl_cert.c', + 'openssl/ssl/ssl_cert_comp.c', 'openssl/ssl/ssl_ciph.c', 'openssl/ssl/ssl_conf.c', - 'openssl/ssl/ssl_err.c', 'openssl/ssl/ssl_err_legacy.c', 'openssl/ssl/ssl_init.c', 'openssl/ssl/ssl_lib.c', @@ -31,12 +32,60 @@ 'openssl/ssl/tls13_enc.c', 'openssl/ssl/tls_depr.c', 'openssl/ssl/tls_srp.c', - 'openssl/ssl/record/dtls1_bitmap.c', + 'openssl/ssl/quic/cc_newreno.c', + 'openssl/ssl/quic/json_enc.c', + 'openssl/ssl/quic/qlog.c', + 'openssl/ssl/quic/qlog_event_helpers.c', + 'openssl/ssl/quic/quic_ackm.c', + 'openssl/ssl/quic/quic_cfq.c', + 'openssl/ssl/quic/quic_channel.c', + 'openssl/ssl/quic/quic_demux.c', + 'openssl/ssl/quic/quic_engine.c', + 'openssl/ssl/quic/quic_fc.c', + 'openssl/ssl/quic/quic_fifd.c', + 'openssl/ssl/quic/quic_impl.c', + 'openssl/ssl/quic/quic_lcidm.c', + 'openssl/ssl/quic/quic_method.c', + 'openssl/ssl/quic/quic_obj.c', + 'openssl/ssl/quic/quic_port.c', + 'openssl/ssl/quic/quic_rcidm.c', + 'openssl/ssl/quic/quic_reactor.c', + 'openssl/ssl/quic/quic_reactor_wait_ctx.c', + 'openssl/ssl/quic/quic_record_rx.c', + 'openssl/ssl/quic/quic_record_shared.c', + 'openssl/ssl/quic/quic_record_tx.c', + 'openssl/ssl/quic/quic_record_util.c', + 'openssl/ssl/quic/quic_rstream.c', + 'openssl/ssl/quic/quic_rx_depack.c', + 'openssl/ssl/quic/quic_sf_list.c', + 'openssl/ssl/quic/quic_srt_gen.c', + 'openssl/ssl/quic/quic_srtm.c', + 'openssl/ssl/quic/quic_sstream.c', + 'openssl/ssl/quic/quic_statm.c', + 'openssl/ssl/quic/quic_stream_map.c', + 'openssl/ssl/quic/quic_thread_assist.c', + 'openssl/ssl/quic/quic_tls.c', + 'openssl/ssl/quic/quic_tls_api.c', + 'openssl/ssl/quic/quic_trace.c', + 'openssl/ssl/quic/quic_tserver.c', + 'openssl/ssl/quic/quic_txp.c', + 'openssl/ssl/quic/quic_txpim.c', + 'openssl/ssl/quic/quic_types.c', + 'openssl/ssl/quic/quic_wire.c', + 'openssl/ssl/quic/quic_wire_pkt.c', + 'openssl/ssl/quic/uint_set.c', 'openssl/ssl/record/rec_layer_d1.c', 'openssl/ssl/record/rec_layer_s3.c', - 'openssl/ssl/record/ssl3_buffer.c', - 'openssl/ssl/record/ssl3_record.c', - 'openssl/ssl/record/ssl3_record_tls13.c', + 'openssl/ssl/record/methods/dtls_meth.c', + 'openssl/ssl/record/methods/ssl3_meth.c', + 'openssl/ssl/record/methods/tls13_meth.c', + 'openssl/ssl/record/methods/tls1_meth.c', + 'openssl/ssl/record/methods/tls_common.c', + 'openssl/ssl/record/methods/tls_multib.c', + 'openssl/ssl/record/methods/tlsany_meth.c', + 'openssl/ssl/rio/poll_builder.c', + 'openssl/ssl/rio/poll_immediate.c', + 'openssl/ssl/rio/rio_notifier.c', 'openssl/ssl/statem/extensions.c', 'openssl/ssl/statem/extensions_clnt.c', 'openssl/ssl/statem/extensions_cust.c', @@ -147,6 +196,7 @@ 'openssl/crypto/bio/bss_conn.c', 'openssl/crypto/bio/bss_core.c', 'openssl/crypto/bio/bss_dgram.c', + 'openssl/crypto/bio/bss_dgram_pair.c', 'openssl/crypto/bio/bss_fd.c', 'openssl/crypto/bio/bss_file.c', 'openssl/crypto/bio/bss_log.c', @@ -202,6 +252,7 @@ 'openssl/crypto/cmp/cmp_client.c', 'openssl/crypto/cmp/cmp_ctx.c', 'openssl/crypto/cmp/cmp_err.c', + 'openssl/crypto/cmp/cmp_genm.c', 'openssl/crypto/cmp/cmp_hdr.c', 'openssl/crypto/cmp/cmp_http.c', 'openssl/crypto/cmp/cmp_msg.c', @@ -376,7 +427,9 @@ 'openssl/crypto/err/err_all.c', 'openssl/crypto/err/err_all_legacy.c', 'openssl/crypto/err/err_blocks.c', + 'openssl/crypto/err/err_mark.c', 'openssl/crypto/err/err_prn.c', + 'openssl/crypto/err/err_save.c', 'openssl/crypto/ess/ess_asn1.c', 'openssl/crypto/ess/ess_err.c', 'openssl/crypto/ess/ess_lib.c', @@ -459,7 +512,9 @@ 'openssl/crypto/evp/pmeth_check.c', 'openssl/crypto/evp/pmeth_gn.c', 'openssl/crypto/evp/pmeth_lib.c', + 'openssl/crypto/evp/s_lib.c', 'openssl/crypto/evp/signature.c', + 'openssl/crypto/evp/skeymgmt_meth.c', 'openssl/crypto/ffc/ffc_backend.c', 'openssl/crypto/ffc/ffc_dh.c', 'openssl/crypto/ffc/ffc_key_generate.c', @@ -467,7 +522,11 @@ 'openssl/crypto/ffc/ffc_params.c', 'openssl/crypto/ffc/ffc_params_generate.c', 'openssl/crypto/ffc/ffc_params_validate.c', + 'openssl/crypto/hashtable/hashfunc.c', + 'openssl/crypto/hashtable/hashtable.c', 'openssl/crypto/hmac/hmac.c', + 'openssl/crypto/hpke/hpke.c', + 'openssl/crypto/hpke/hpke_util.c', 'openssl/crypto/http/http_client.c', 'openssl/crypto/http/http_err.c', 'openssl/crypto/http/http_lib.c', @@ -481,6 +540,7 @@ 'openssl/crypto/lhash/lhash.c', 'openssl/crypto/asn1_dsa.c', 'openssl/crypto/bsearch.c', + 'openssl/crypto/comp_methods.c', 'openssl/crypto/context.c', 'openssl/crypto/core_algorithm.c', 'openssl/crypto/core_fetch.c', @@ -490,10 +550,13 @@ 'openssl/crypto/cryptlib.c', 'openssl/crypto/ctype.c', 'openssl/crypto/cversion.c', + 'openssl/crypto/defaults.c', 'openssl/crypto/der_writer.c', + 'openssl/crypto/deterministic_nonce.c', 'openssl/crypto/ebcdic.c', 'openssl/crypto/ex_data.c', 'openssl/crypto/getenv.c', + 'openssl/crypto/indicator_core.c', 'openssl/crypto/info.c', 'openssl/crypto/init.c', 'openssl/crypto/initthread.c', @@ -517,12 +580,16 @@ 'openssl/crypto/provider_core.c', 'openssl/crypto/provider_predefined.c', 'openssl/crypto/punycode.c', + 'openssl/crypto/quic_vlint.c', 'openssl/crypto/self_test_core.c', + 'openssl/crypto/sleep.c', 'openssl/crypto/sparse_array.c', + 'openssl/crypto/ssl_err.c', 'openssl/crypto/threads_lib.c', 'openssl/crypto/threads_none.c', 'openssl/crypto/threads_pthread.c', 'openssl/crypto/threads_win.c', + 'openssl/crypto/time.c', 'openssl/crypto/trace.c', 'openssl/crypto/uid.c', 'openssl/crypto/md4/md4_dgst.c', @@ -532,6 +599,15 @@ 'openssl/crypto/md5/md5_sha1.c', 'openssl/crypto/mdc2/mdc2_one.c', 'openssl/crypto/mdc2/mdc2dgst.c', + 'openssl/crypto/ml_dsa/ml_dsa_encoders.c', + 'openssl/crypto/ml_dsa/ml_dsa_key.c', + 'openssl/crypto/ml_dsa/ml_dsa_key_compress.c', + 'openssl/crypto/ml_dsa/ml_dsa_matrix.c', + 'openssl/crypto/ml_dsa/ml_dsa_ntt.c', + 'openssl/crypto/ml_dsa/ml_dsa_params.c', + 'openssl/crypto/ml_dsa/ml_dsa_sample.c', + 'openssl/crypto/ml_dsa/ml_dsa_sign.c', + 'openssl/crypto/ml_kem/ml_kem.c', 'openssl/crypto/modes/cbc128.c', 'openssl/crypto/modes/ccm128.c', 'openssl/crypto/modes/cfb128.c', @@ -543,6 +619,7 @@ 'openssl/crypto/modes/siv128.c', 'openssl/crypto/modes/wrap128.c', 'openssl/crypto/modes/xts128.c', + 'openssl/crypto/modes/xts128gb.c', 'openssl/crypto/objects/o_names.c', 'openssl/crypto/objects/obj_dat.c', 'openssl/crypto/objects/obj_err.c', @@ -606,6 +683,7 @@ 'openssl/crypto/rand/rand_lib.c', 'openssl/crypto/rand/rand_meth.c', 'openssl/crypto/rand/rand_pool.c', + 'openssl/crypto/rand/rand_uniform.c', 'openssl/crypto/rand/randfile.c', 'openssl/crypto/rc2/rc2_cbc.c', 'openssl/crypto/rc2/rc2_ecb.c', @@ -652,6 +730,16 @@ 'openssl/crypto/sha/sha3.c', 'openssl/crypto/sha/sha512.c', 'openssl/crypto/siphash/siphash.c', + 'openssl/crypto/slh_dsa/slh_adrs.c', + 'openssl/crypto/slh_dsa/slh_dsa.c', + 'openssl/crypto/slh_dsa/slh_dsa_hash_ctx.c', + 'openssl/crypto/slh_dsa/slh_dsa_key.c', + 'openssl/crypto/slh_dsa/slh_fors.c', + 'openssl/crypto/slh_dsa/slh_hash.c', + 'openssl/crypto/slh_dsa/slh_hypertree.c', + 'openssl/crypto/slh_dsa/slh_params.c', + 'openssl/crypto/slh_dsa/slh_wots.c', + 'openssl/crypto/slh_dsa/slh_xmss.c', 'openssl/crypto/sm2/sm2_crypt.c', 'openssl/crypto/sm2/sm2_err.c', 'openssl/crypto/sm2/sm2_key.c', @@ -669,6 +757,12 @@ 'openssl/crypto/store/store_register.c', 'openssl/crypto/store/store_result.c', 'openssl/crypto/store/store_strings.c', + 'openssl/crypto/thread/arch/thread_none.c', + 'openssl/crypto/thread/arch/thread_posix.c', + 'openssl/crypto/thread/arch/thread_win.c', + 'openssl/crypto/thread/api.c', + 'openssl/crypto/thread/arch.c', + 'openssl/crypto/thread/internal.c', 'openssl/crypto/ts/ts_asn1.c', 'openssl/crypto/ts/ts_conf.c', 'openssl/crypto/ts/ts_err.c', @@ -697,14 +791,22 @@ 'openssl/crypto/x509/pcy_map.c', 'openssl/crypto/x509/pcy_node.c', 'openssl/crypto/x509/pcy_tree.c', + 'openssl/crypto/x509/t_acert.c', 'openssl/crypto/x509/t_crl.c', 'openssl/crypto/x509/t_req.c', 'openssl/crypto/x509/t_x509.c', + 'openssl/crypto/x509/v3_aaa.c', + 'openssl/crypto/x509/v3_ac_tgt.c', 'openssl/crypto/x509/v3_addr.c', 'openssl/crypto/x509/v3_admis.c', 'openssl/crypto/x509/v3_akeya.c', 'openssl/crypto/x509/v3_akid.c', 'openssl/crypto/x509/v3_asid.c', + 'openssl/crypto/x509/v3_attrdesc.c', + 'openssl/crypto/x509/v3_attrmap.c', + 'openssl/crypto/x509/v3_audit_id.c', + 'openssl/crypto/x509/v3_authattid.c', + 'openssl/crypto/x509/v3_battcons.c', 'openssl/crypto/x509/v3_bcons.c', 'openssl/crypto/x509/v3_bitst.c', 'openssl/crypto/x509/v3_conf.c', @@ -713,12 +815,17 @@ 'openssl/crypto/x509/v3_enum.c', 'openssl/crypto/x509/v3_extku.c', 'openssl/crypto/x509/v3_genn.c', + 'openssl/crypto/x509/v3_group_ac.c', 'openssl/crypto/x509/v3_ia5.c', + 'openssl/crypto/x509/v3_ind_iss.c', 'openssl/crypto/x509/v3_info.c', 'openssl/crypto/x509/v3_int.c', + 'openssl/crypto/x509/v3_iobo.c', 'openssl/crypto/x509/v3_ist.c', 'openssl/crypto/x509/v3_lib.c', 'openssl/crypto/x509/v3_ncons.c', + 'openssl/crypto/x509/v3_no_ass.c', + 'openssl/crypto/x509/v3_no_rev_avail.c', 'openssl/crypto/x509/v3_pci.c', 'openssl/crypto/x509/v3_pcia.c', 'openssl/crypto/x509/v3_pcons.c', @@ -726,13 +833,20 @@ 'openssl/crypto/x509/v3_pmaps.c', 'openssl/crypto/x509/v3_prn.c', 'openssl/crypto/x509/v3_purp.c', + 'openssl/crypto/x509/v3_rolespec.c', 'openssl/crypto/x509/v3_san.c', + 'openssl/crypto/x509/v3_sda.c', + 'openssl/crypto/x509/v3_single_use.c', 'openssl/crypto/x509/v3_skid.c', + 'openssl/crypto/x509/v3_soa_id.c', 'openssl/crypto/x509/v3_sxnet.c', + 'openssl/crypto/x509/v3_timespec.c', 'openssl/crypto/x509/v3_tlsf.c', + 'openssl/crypto/x509/v3_usernotice.c', 'openssl/crypto/x509/v3_utf8.c', 'openssl/crypto/x509/v3_utl.c', 'openssl/crypto/x509/v3err.c', + 'openssl/crypto/x509/x509_acert.c', 'openssl/crypto/x509/x509_att.c', 'openssl/crypto/x509/x509_cmp.c', 'openssl/crypto/x509/x509_d2.c', @@ -750,6 +864,7 @@ 'openssl/crypto/x509/x509_v3.c', 'openssl/crypto/x509/x509_vfy.c', 'openssl/crypto/x509/x509_vpm.c', + 'openssl/crypto/x509/x509aset.c', 'openssl/crypto/x509/x509cset.c', 'openssl/crypto/x509/x509name.c', 'openssl/crypto/x509/x509rset.c', @@ -759,6 +874,7 @@ 'openssl/crypto/x509/x_attrib.c', 'openssl/crypto/x509/x_crl.c', 'openssl/crypto/x509/x_exten.c', + 'openssl/crypto/x509/x_ietfatt.c', 'openssl/crypto/x509/x_name.c', 'openssl/crypto/x509/x_pubkey.c', 'openssl/crypto/x509/x_req.c', @@ -791,6 +907,9 @@ 'openssl/providers/implementations/ciphers/cipher_aes_ccm_hw.c', 'openssl/providers/implementations/ciphers/cipher_aes_gcm.c', 'openssl/providers/implementations/ciphers/cipher_aes_gcm_hw.c', + 'openssl/providers/implementations/ciphers/cipher_aes_gcm_siv.c', + 'openssl/providers/implementations/ciphers/cipher_aes_gcm_siv_hw.c', + 'openssl/providers/implementations/ciphers/cipher_aes_gcm_siv_polyval.c', 'openssl/providers/implementations/ciphers/cipher_aes_hw.c', 'openssl/providers/implementations/ciphers/cipher_aes_ocb.c', 'openssl/providers/implementations/ciphers/cipher_aes_ocb_hw.c', @@ -815,7 +934,13 @@ 'openssl/providers/implementations/ciphers/cipher_cts.c', 'openssl/providers/implementations/ciphers/cipher_null.c', 'openssl/providers/implementations/ciphers/cipher_sm4.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_ccm.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_ccm_hw.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_gcm.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_gcm_hw.c', 'openssl/providers/implementations/ciphers/cipher_sm4_hw.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_xts.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_xts_hw.c', 'openssl/providers/implementations/ciphers/cipher_tdes.c', 'openssl/providers/implementations/ciphers/cipher_tdes_common.c', 'openssl/providers/implementations/ciphers/cipher_tdes_default.c', @@ -844,11 +969,16 @@ 'openssl/providers/implementations/encode_decode/encode_key2ms.c', 'openssl/providers/implementations/encode_decode/encode_key2text.c', 'openssl/providers/implementations/encode_decode/endecoder_common.c', + 'openssl/providers/implementations/encode_decode/ml_common_codecs.c', + 'openssl/providers/implementations/encode_decode/ml_dsa_codecs.c', + 'openssl/providers/implementations/encode_decode/ml_kem_codecs.c', 'openssl/providers/implementations/exchange/dh_exch.c', 'openssl/providers/implementations/exchange/ecdh_exch.c', 'openssl/providers/implementations/exchange/ecx_exch.c', 'openssl/providers/implementations/exchange/kdf_exch.c', + 'openssl/providers/implementations/kdfs/argon2.c', 'openssl/providers/implementations/kdfs/hkdf.c', + 'openssl/providers/implementations/kdfs/hmacdrbg_kdf.c', 'openssl/providers/implementations/kdfs/kbkdf.c', 'openssl/providers/implementations/kdfs/krb5kdf.c', 'openssl/providers/implementations/kdfs/pbkdf2.c', @@ -859,6 +989,11 @@ 'openssl/providers/implementations/kdfs/sskdf.c', 'openssl/providers/implementations/kdfs/tls1_prf.c', 'openssl/providers/implementations/kdfs/x942kdf.c', + 'openssl/providers/implementations/kem/ec_kem.c', + 'openssl/providers/implementations/kem/ecx_kem.c', + 'openssl/providers/implementations/kem/kem_util.c', + 'openssl/providers/implementations/kem/ml_kem_kem.c', + 'openssl/providers/implementations/kem/mlx_kem.c', 'openssl/providers/implementations/kem/rsa_kem.c', 'openssl/providers/implementations/keymgmt/dh_kmgmt.c', 'openssl/providers/implementations/keymgmt/dsa_kmgmt.c', @@ -866,7 +1001,11 @@ 'openssl/providers/implementations/keymgmt/ecx_kmgmt.c', 'openssl/providers/implementations/keymgmt/kdf_legacy_kmgmt.c', 'openssl/providers/implementations/keymgmt/mac_legacy_kmgmt.c', + 'openssl/providers/implementations/keymgmt/ml_dsa_kmgmt.c', + 'openssl/providers/implementations/keymgmt/ml_kem_kmgmt.c', + 'openssl/providers/implementations/keymgmt/mlx_kmgmt.c', 'openssl/providers/implementations/keymgmt/rsa_kmgmt.c', + 'openssl/providers/implementations/keymgmt/slh_dsa_kmgmt.c', 'openssl/providers/implementations/macs/blake2b_mac.c', 'openssl/providers/implementations/macs/blake2s_mac.c', 'openssl/providers/implementations/macs/cmac_prov.c', @@ -875,12 +1014,12 @@ 'openssl/providers/implementations/macs/kmac_prov.c', 'openssl/providers/implementations/macs/poly1305_prov.c', 'openssl/providers/implementations/macs/siphash_prov.c', - 'openssl/providers/implementations/rands/crngt.c', 'openssl/providers/implementations/rands/drbg.c', 'openssl/providers/implementations/rands/drbg_ctr.c', 'openssl/providers/implementations/rands/drbg_hash.c', 'openssl/providers/implementations/rands/drbg_hmac.c', 'openssl/providers/implementations/rands/seed_src.c', + 'openssl/providers/implementations/rands/seed_src_jitter.c', 'openssl/providers/implementations/rands/test_rng.c', 'openssl/providers/implementations/rands/seeding/rand_cpu_x86.c', 'openssl/providers/implementations/rands/seeding/rand_tsc.c', @@ -890,17 +1029,23 @@ 'openssl/providers/implementations/signature/ecdsa_sig.c', 'openssl/providers/implementations/signature/eddsa_sig.c', 'openssl/providers/implementations/signature/mac_legacy_sig.c', + 'openssl/providers/implementations/signature/ml_dsa_sig.c', 'openssl/providers/implementations/signature/rsa_sig.c', + 'openssl/providers/implementations/signature/slh_dsa_sig.c', 'openssl/providers/implementations/signature/sm2_sig.c', + 'openssl/providers/implementations/skeymgmt/aes_skmgmt.c', + 'openssl/providers/implementations/skeymgmt/generic.c', 'openssl/providers/implementations/storemgmt/file_store.c', 'openssl/providers/implementations/storemgmt/file_store_any2obj.c', - 'openssl/ssl/s3_cbc.c', + 'openssl/ssl/record/methods/ssl3_cbc.c', 'openssl/providers/common/der/der_dsa_key.c', 'openssl/providers/common/der/der_dsa_sig.c', 'openssl/providers/common/der/der_ec_key.c', 'openssl/providers/common/der/der_ec_sig.c', 'openssl/providers/common/der/der_ecx_key.c', + 'openssl/providers/common/der/der_ml_dsa_key.c', 'openssl/providers/common/der/der_rsa_key.c', + 'openssl/providers/common/der/der_slh_dsa_key.c', 'openssl/providers/common/provider_ctx.c', 'openssl/providers/common/provider_err.c', 'openssl/providers/implementations/ciphers/ciphercommon.c', @@ -911,7 +1056,7 @@ 'openssl/providers/implementations/ciphers/ciphercommon_gcm_hw.c', 'openssl/providers/implementations/ciphers/ciphercommon_hw.c', 'openssl/providers/implementations/digests/digestcommon.c', - 'openssl/ssl/record/tls_pad.c', + 'openssl/ssl/record/methods/tls_pad.c', 'openssl/providers/implementations/ciphers/cipher_blowfish.c', 'openssl/providers/implementations/ciphers/cipher_blowfish_hw.c', 'openssl/providers/implementations/ciphers/cipher_cast5.c', @@ -936,6 +1081,7 @@ 'openssl/providers/implementations/digests/ripemd_prov.c', 'openssl/providers/implementations/digests/wp_prov.c', 'openssl/providers/implementations/kdfs/pbkdf1.c', + 'openssl/providers/implementations/kdfs/pvkkdf.c', 'openssl/providers/prov_running.c', 'openssl/providers/legacyprov.c', ], @@ -953,6 +1099,7 @@ './config/archs/BSD-x86/asm/crypto/des/crypt586.S', './config/archs/BSD-x86/asm/crypto/des/des-586.S', './config/archs/BSD-x86/asm/crypto/ec/ecp_nistz256-x86.S', + './config/archs/BSD-x86/asm/crypto/params_idx.c', './config/archs/BSD-x86/asm/crypto/x86cpuid.S', './config/archs/BSD-x86/asm/crypto/md5/md5-586.S', './config/archs/BSD-x86/asm/crypto/modes/ghash-x86.S', @@ -969,7 +1116,9 @@ './config/archs/BSD-x86/asm/providers/common/der/der_dsa_gen.c', './config/archs/BSD-x86/asm/providers/common/der/der_ec_gen.c', './config/archs/BSD-x86/asm/providers/common/der/der_ecx_gen.c', + './config/archs/BSD-x86/asm/providers/common/der/der_ml_dsa_gen.c', './config/archs/BSD-x86/asm/providers/common/der/der_rsa_gen.c', + './config/archs/BSD-x86/asm/providers/common/der/der_slh_dsa_gen.c', './config/archs/BSD-x86/asm/providers/common/der/der_wrap_gen.c', './config/archs/BSD-x86/asm/providers/legacy.ld', './config/archs/BSD-x86/asm/providers/fips.ld', diff --git a/deps/openssl/config/archs/BSD-x86/asm/providers/common/der/der_ml_dsa_gen.c b/deps/openssl/config/archs/BSD-x86/asm/providers/common/der/der_ml_dsa_gen.c new file mode 100644 index 00000000000000..4a8a113a268578 --- /dev/null +++ b/deps/openssl/config/archs/BSD-x86/asm/providers/common/der/der_ml_dsa_gen.c @@ -0,0 +1,37 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from providers/common/der/der_ml_dsa_gen.c.in + * + * Copyright 2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include "prov/der_ml_dsa.h" + +/* Well known OIDs precompiled */ + +/* + * id-ml-dsa-44 OBJECT IDENTIFIER ::= { sigAlgs 17 } + */ +const unsigned char ossl_der_oid_id_ml_dsa_44[DER_OID_SZ_id_ml_dsa_44] = { + DER_OID_V_id_ml_dsa_44 +}; + +/* + * id-ml-dsa-65 OBJECT IDENTIFIER ::= { sigAlgs 18 } + */ +const unsigned char ossl_der_oid_id_ml_dsa_65[DER_OID_SZ_id_ml_dsa_65] = { + DER_OID_V_id_ml_dsa_65 +}; + +/* + * id-ml-dsa-87 OBJECT IDENTIFIER ::= { sigAlgs 19 } + */ +const unsigned char ossl_der_oid_id_ml_dsa_87[DER_OID_SZ_id_ml_dsa_87] = { + DER_OID_V_id_ml_dsa_87 +}; + diff --git a/deps/openssl/config/archs/BSD-x86/asm/providers/common/der/der_slh_dsa_gen.c b/deps/openssl/config/archs/BSD-x86/asm/providers/common/der/der_slh_dsa_gen.c new file mode 100644 index 00000000000000..1419a9515097dd --- /dev/null +++ b/deps/openssl/config/archs/BSD-x86/asm/providers/common/der/der_slh_dsa_gen.c @@ -0,0 +1,100 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from providers/common/der/der_slh_dsa_gen.c.in + * + * Copyright 2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include "prov/der_slh_dsa.h" + +/* Well known OIDs precompiled */ + +/* + * id-slh-dsa-sha2-128s OBJECT IDENTIFIER ::= { sigAlgs 20 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_128s[DER_OID_SZ_id_slh_dsa_sha2_128s] = { + DER_OID_V_id_slh_dsa_sha2_128s +}; + +/* + * id-slh-dsa-sha2-128f OBJECT IDENTIFIER ::= { sigAlgs 21 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_128f[DER_OID_SZ_id_slh_dsa_sha2_128f] = { + DER_OID_V_id_slh_dsa_sha2_128f +}; + +/* + * id-slh-dsa-sha2-192s OBJECT IDENTIFIER ::= { sigAlgs 22 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_192s[DER_OID_SZ_id_slh_dsa_sha2_192s] = { + DER_OID_V_id_slh_dsa_sha2_192s +}; + +/* + * id-slh-dsa-sha2-192f OBJECT IDENTIFIER ::= { sigAlgs 23 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_192f[DER_OID_SZ_id_slh_dsa_sha2_192f] = { + DER_OID_V_id_slh_dsa_sha2_192f +}; + +/* + * id-slh-dsa-sha2-256s OBJECT IDENTIFIER ::= { sigAlgs 24 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_256s[DER_OID_SZ_id_slh_dsa_sha2_256s] = { + DER_OID_V_id_slh_dsa_sha2_256s +}; + +/* + * id-slh-dsa-sha2-256f OBJECT IDENTIFIER ::= { sigAlgs 25 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_256f[DER_OID_SZ_id_slh_dsa_sha2_256f] = { + DER_OID_V_id_slh_dsa_sha2_256f +}; + +/* + * id-slh-dsa-shake-128s OBJECT IDENTIFIER ::= { sigAlgs 26 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_128s[DER_OID_SZ_id_slh_dsa_shake_128s] = { + DER_OID_V_id_slh_dsa_shake_128s +}; + +/* + * id-slh-dsa-shake-128f OBJECT IDENTIFIER ::= { sigAlgs 27 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_128f[DER_OID_SZ_id_slh_dsa_shake_128f] = { + DER_OID_V_id_slh_dsa_shake_128f +}; + +/* + * id-slh-dsa-shake-192s OBJECT IDENTIFIER ::= { sigAlgs 28 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_192s[DER_OID_SZ_id_slh_dsa_shake_192s] = { + DER_OID_V_id_slh_dsa_shake_192s +}; + +/* + * id-slh-dsa-shake-192f OBJECT IDENTIFIER ::= { sigAlgs 29 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_192f[DER_OID_SZ_id_slh_dsa_shake_192f] = { + DER_OID_V_id_slh_dsa_shake_192f +}; + +/* + * id-slh-dsa-shake-256s OBJECT IDENTIFIER ::= { sigAlgs 30 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_256s[DER_OID_SZ_id_slh_dsa_shake_256s] = { + DER_OID_V_id_slh_dsa_shake_256s +}; + +/* + * id-slh-dsa-shake-256f OBJECT IDENTIFIER ::= { sigAlgs 31 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_256f[DER_OID_SZ_id_slh_dsa_shake_256f] = { + DER_OID_V_id_slh_dsa_shake_256f +}; + diff --git a/deps/openssl/config/archs/BSD-x86/asm/providers/common/include/prov/der_ml_dsa.h b/deps/openssl/config/archs/BSD-x86/asm/providers/common/include/prov/der_ml_dsa.h new file mode 100644 index 00000000000000..c55f780ab4527c --- /dev/null +++ b/deps/openssl/config/archs/BSD-x86/asm/providers/common/include/prov/der_ml_dsa.h @@ -0,0 +1,40 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from providers/common/include/prov/der_ml_dsa.h.in + * + * Copyright 2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include "internal/der.h" +#include "crypto/ml_dsa.h" + +/* Well known OIDs precompiled */ + +/* + * id-ml-dsa-44 OBJECT IDENTIFIER ::= { sigAlgs 17 } + */ +#define DER_OID_V_id_ml_dsa_44 DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x11 +#define DER_OID_SZ_id_ml_dsa_44 11 +extern const unsigned char ossl_der_oid_id_ml_dsa_44[DER_OID_SZ_id_ml_dsa_44]; + +/* + * id-ml-dsa-65 OBJECT IDENTIFIER ::= { sigAlgs 18 } + */ +#define DER_OID_V_id_ml_dsa_65 DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x12 +#define DER_OID_SZ_id_ml_dsa_65 11 +extern const unsigned char ossl_der_oid_id_ml_dsa_65[DER_OID_SZ_id_ml_dsa_65]; + +/* + * id-ml-dsa-87 OBJECT IDENTIFIER ::= { sigAlgs 19 } + */ +#define DER_OID_V_id_ml_dsa_87 DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x13 +#define DER_OID_SZ_id_ml_dsa_87 11 +extern const unsigned char ossl_der_oid_id_ml_dsa_87[DER_OID_SZ_id_ml_dsa_87]; + + +int ossl_DER_w_algorithmIdentifier_ML_DSA(WPACKET *pkt, int tag, ML_DSA_KEY *key); diff --git a/deps/openssl/config/archs/BSD-x86/asm/providers/common/include/prov/der_slh_dsa.h b/deps/openssl/config/archs/BSD-x86/asm/providers/common/include/prov/der_slh_dsa.h new file mode 100644 index 00000000000000..760f8e7699be72 --- /dev/null +++ b/deps/openssl/config/archs/BSD-x86/asm/providers/common/include/prov/der_slh_dsa.h @@ -0,0 +1,103 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from providers/common/include/prov/der_slh_dsa.h.in + * + * Copyright 2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include "internal/der.h" +#include "crypto/slh_dsa.h" + +/* Well known OIDs precompiled */ + +/* + * id-slh-dsa-sha2-128s OBJECT IDENTIFIER ::= { sigAlgs 20 } + */ +#define DER_OID_V_id_slh_dsa_sha2_128s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x14 +#define DER_OID_SZ_id_slh_dsa_sha2_128s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_128s[DER_OID_SZ_id_slh_dsa_sha2_128s]; + +/* + * id-slh-dsa-sha2-128f OBJECT IDENTIFIER ::= { sigAlgs 21 } + */ +#define DER_OID_V_id_slh_dsa_sha2_128f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x15 +#define DER_OID_SZ_id_slh_dsa_sha2_128f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_128f[DER_OID_SZ_id_slh_dsa_sha2_128f]; + +/* + * id-slh-dsa-sha2-192s OBJECT IDENTIFIER ::= { sigAlgs 22 } + */ +#define DER_OID_V_id_slh_dsa_sha2_192s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x16 +#define DER_OID_SZ_id_slh_dsa_sha2_192s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_192s[DER_OID_SZ_id_slh_dsa_sha2_192s]; + +/* + * id-slh-dsa-sha2-192f OBJECT IDENTIFIER ::= { sigAlgs 23 } + */ +#define DER_OID_V_id_slh_dsa_sha2_192f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x17 +#define DER_OID_SZ_id_slh_dsa_sha2_192f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_192f[DER_OID_SZ_id_slh_dsa_sha2_192f]; + +/* + * id-slh-dsa-sha2-256s OBJECT IDENTIFIER ::= { sigAlgs 24 } + */ +#define DER_OID_V_id_slh_dsa_sha2_256s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x18 +#define DER_OID_SZ_id_slh_dsa_sha2_256s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_256s[DER_OID_SZ_id_slh_dsa_sha2_256s]; + +/* + * id-slh-dsa-sha2-256f OBJECT IDENTIFIER ::= { sigAlgs 25 } + */ +#define DER_OID_V_id_slh_dsa_sha2_256f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x19 +#define DER_OID_SZ_id_slh_dsa_sha2_256f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_256f[DER_OID_SZ_id_slh_dsa_sha2_256f]; + +/* + * id-slh-dsa-shake-128s OBJECT IDENTIFIER ::= { sigAlgs 26 } + */ +#define DER_OID_V_id_slh_dsa_shake_128s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1A +#define DER_OID_SZ_id_slh_dsa_shake_128s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_128s[DER_OID_SZ_id_slh_dsa_shake_128s]; + +/* + * id-slh-dsa-shake-128f OBJECT IDENTIFIER ::= { sigAlgs 27 } + */ +#define DER_OID_V_id_slh_dsa_shake_128f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1B +#define DER_OID_SZ_id_slh_dsa_shake_128f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_128f[DER_OID_SZ_id_slh_dsa_shake_128f]; + +/* + * id-slh-dsa-shake-192s OBJECT IDENTIFIER ::= { sigAlgs 28 } + */ +#define DER_OID_V_id_slh_dsa_shake_192s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1C +#define DER_OID_SZ_id_slh_dsa_shake_192s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_192s[DER_OID_SZ_id_slh_dsa_shake_192s]; + +/* + * id-slh-dsa-shake-192f OBJECT IDENTIFIER ::= { sigAlgs 29 } + */ +#define DER_OID_V_id_slh_dsa_shake_192f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1D +#define DER_OID_SZ_id_slh_dsa_shake_192f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_192f[DER_OID_SZ_id_slh_dsa_shake_192f]; + +/* + * id-slh-dsa-shake-256s OBJECT IDENTIFIER ::= { sigAlgs 30 } + */ +#define DER_OID_V_id_slh_dsa_shake_256s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1E +#define DER_OID_SZ_id_slh_dsa_shake_256s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_256s[DER_OID_SZ_id_slh_dsa_shake_256s]; + +/* + * id-slh-dsa-shake-256f OBJECT IDENTIFIER ::= { sigAlgs 31 } + */ +#define DER_OID_V_id_slh_dsa_shake_256f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1F +#define DER_OID_SZ_id_slh_dsa_shake_256f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_256f[DER_OID_SZ_id_slh_dsa_shake_256f]; + + +int ossl_DER_w_algorithmIdentifier_SLH_DSA(WPACKET *pkt, int tag, SLH_DSA_KEY *key); diff --git a/deps/openssl/config/archs/BSD-x86/asm_avx2/apps/progs.c b/deps/openssl/config/archs/BSD-x86/asm_avx2/apps/progs.c index 43cef00799b86e..acc204a3e6e781 100644 --- a/deps/openssl/config/archs/BSD-x86/asm_avx2/apps/progs.c +++ b/deps/openssl/config/archs/BSD-x86/asm_avx2/apps/progs.c @@ -89,6 +89,7 @@ FUNCTION functions[] = { {FT_general, "s_time", s_time_main, s_time_options, NULL, NULL}, #endif {FT_general, "sess_id", sess_id_main, sess_id_options, NULL, NULL}, + {FT_general, "skeyutl", skeyutl_main, skeyutl_options, NULL, NULL}, {FT_general, "smime", smime_main, smime_options, NULL, NULL}, {FT_general, "speed", speed_main, speed_options, NULL, NULL}, {FT_general, "spkac", spkac_main, spkac_options, NULL, NULL}, @@ -225,9 +226,15 @@ FUNCTION functions[] = { {FT_cipher, "camellia-256-ecb", enc_main, enc_options, NULL}, #endif {FT_cipher, "base64", enc_main, enc_options, NULL}, -#ifdef ZLIB +#ifndef OPENSSL_NO_ZLIB {FT_cipher, "zlib", enc_main, enc_options, NULL}, #endif +#ifndef OPENSSL_NO_BROTLI + {FT_cipher, "brotli", enc_main, enc_options, NULL}, +#endif +#ifndef OPENSSL_NO_ZSTD + {FT_cipher, "zstd", enc_main, enc_options, NULL}, +#endif #ifndef OPENSSL_NO_DES {FT_cipher, "des", enc_main, enc_options, NULL}, #endif diff --git a/deps/openssl/config/archs/BSD-x86/asm_avx2/configdata.pm b/deps/openssl/config/archs/BSD-x86/asm_avx2/configdata.pm index b1de949bf4761b..2c387c9b408429 100644 --- a/deps/openssl/config/archs/BSD-x86/asm_avx2/configdata.pm +++ b/deps/openssl/config/archs/BSD-x86/asm_avx2/configdata.pm @@ -18,6 +18,7 @@ our %config = ( "ARFLAGS" => [ "qc" ], + "ASFLAGS" => [], "CC" => "../config/fake_gcc.pl", "CFLAGS" => [ "-Wall -O3 -fomit-frame-pointer" @@ -27,14 +28,16 @@ our %config = ( "CPPINCLUDES" => [], "CXXFLAGS" => [], "FIPSKEY" => "f4556650ac31d35461610bac4ed81b1a181b2d8a43ea2854cbae22ca74560813", + "FIPS_VENDOR" => "OpenSSL FIPS Provider", "HASHBANGPERL" => "/usr/bin/env perl", "LDFLAGS" => [], "LDLIBS" => [], + "OBJCOPY" => "objcopy", "PERL" => "/usr/bin/perl", "RANLIB" => "ranlib", "RC" => "windres", "RCFLAGS" => [], - "api" => "30000", + "api" => "30500", "b32" => "1", "b64" => "0", "b64l" => "0", @@ -56,11 +59,13 @@ our %config = ( "doc/build.info", "test/build.info", "engines/build.info", + "exporters/build.info", "crypto/objects/build.info", "crypto/buffer/build.info", "crypto/bio/build.info", "crypto/stack/build.info", "crypto/lhash/build.info", + "crypto/hashtable/build.info", "crypto/rand/build.info", "crypto/evp/build.info", "crypto/asn1/build.info", @@ -78,6 +83,7 @@ our %config = ( "crypto/md5/build.info", "crypto/sha/build.info", "crypto/mdc2/build.info", + "crypto/ml_kem/build.info", "crypto/hmac/build.info", "crypto/ripemd/build.info", "crypto/whrlpool/build.info", @@ -119,11 +125,19 @@ our %config = ( "crypto/cmp/build.info", "crypto/encode_decode/build.info", "crypto/ffc/build.info", + "crypto/hpke/build.info", + "crypto/thread/build.info", + "crypto/ml_dsa/build.info", + "crypto/slh_dsa/build.info", + "ssl/record/build.info", + "ssl/rio/build.info", + "ssl/quic/build.info", "apps/lib/build.info", "providers/common/build.info", "providers/implementations/build.info", "providers/fips/build.info", "doc/man1/build.info", + "ssl/record/methods/build.info", "providers/common/der/build.info", "providers/implementations/digests/build.info", "providers/implementations/ciphers/build.info", @@ -137,6 +151,7 @@ our %config = ( "providers/implementations/encode_decode/build.info", "providers/implementations/storemgmt/build.info", "providers/implementations/kem/build.info", + "providers/implementations/skeymgmt/build.info", "providers/implementations/rands/seeding/build.info" ], "build_metadata" => "", @@ -156,7 +171,7 @@ our %config = ( ], "dynamic_engines" => "0", "ex_libs" => [], - "full_version" => "3.0.17", + "full_version" => "3.5.1", "includes" => [], "lflags" => [], "lib_defines" => [ @@ -165,36 +180,51 @@ our %config = ( "libdir" => "", "major" => "3", "makedep_scheme" => "gcc", - "minor" => "0", + "minor" => "5", "openssl_api_defines" => [ - "OPENSSL_CONFIGURED_API=30000" + "OPENSSL_CONFIGURED_API=30500" ], "openssl_feature_defines" => [ "OPENSSL_RAND_SEED_OS", "OPENSSL_THREADS", "OPENSSL_NO_AFALGENG", "OPENSSL_NO_ASAN", + "OPENSSL_NO_BROTLI", + "OPENSSL_NO_BROTLI_DYNAMIC", "OPENSSL_NO_COMP", "OPENSSL_NO_CRYPTO_MDEBUG", "OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE", + "OPENSSL_NO_DEMOS", "OPENSSL_NO_EC_NISTP_64_GCC_128", "OPENSSL_NO_EGD", "OPENSSL_NO_EXTERNAL_TESTS", + "OPENSSL_NO_FIPS_JITTER", "OPENSSL_NO_FUZZ_AFL", "OPENSSL_NO_FUZZ_LIBFUZZER", + "OPENSSL_NO_H3DEMO", + "OPENSSL_NO_HQINTEROP", + "OPENSSL_NO_JITTER", "OPENSSL_NO_KTLS", "OPENSSL_NO_LOADERENG", "OPENSSL_NO_MD2", "OPENSSL_NO_MSAN", + "OPENSSL_NO_PIE", "OPENSSL_NO_RC5", "OPENSSL_NO_SCTP", "OPENSSL_NO_SSL3", "OPENSSL_NO_SSL3_METHOD", + "OPENSSL_NO_SSLKEYLOG", + "OPENSSL_NO_TFO", "OPENSSL_NO_TRACE", "OPENSSL_NO_UBSAN", "OPENSSL_NO_UNIT_TEST", "OPENSSL_NO_UPLINK", "OPENSSL_NO_WEAK_SSL_CIPHERS", + "OPENSSL_NO_WINSTORE", + "OPENSSL_NO_ZLIB", + "OPENSSL_NO_ZLIB_DYNAMIC", + "OPENSSL_NO_ZSTD", + "OPENSSL_NO_ZSTD_DYNAMIC", "OPENSSL_NO_DYNAMIC_ENGINE" ], "openssl_other_defines" => [ @@ -202,11 +232,11 @@ our %config = ( ], "openssl_sys_defines" => [], "openssldir" => "", - "options" => "enable-ssl-trace enable-fips no-afalgeng no-asan no-buildtest-c++ no-comp no-crypto-mdebug no-crypto-mdebug-backtrace no-dynamic-engine no-ec_nistp_64_gcc_128 no-egd no-external-tests no-fuzz-afl no-fuzz-libfuzzer no-ktls no-loadereng no-md2 no-msan no-rc5 no-sctp no-shared no-ssl3 no-ssl3-method no-trace no-ubsan no-unit-test no-uplink no-weak-ssl-ciphers no-zlib no-zlib-dynamic", - "patch" => "17", + "options" => "enable-ssl-trace enable-fips no-afalgeng no-asan no-brotli no-brotli-dynamic no-buildtest-c++ no-comp no-crypto-mdebug no-crypto-mdebug-backtrace no-demos no-dynamic-engine no-ec_nistp_64_gcc_128 no-egd no-external-tests no-fips-jitter no-fuzz-afl no-fuzz-libfuzzer no-h3demo no-hqinterop no-jitter no-ktls no-loadereng no-md2 no-msan no-pie no-rc5 no-sctp no-shared no-ssl3 no-ssl3-method no-sslkeylog no-tfo no-trace no-ubsan no-unit-test no-uplink no-weak-ssl-ciphers no-winstore no-zlib no-zlib-dynamic no-zstd no-zstd-dynamic", + "patch" => "1", "perl_archname" => "x86_64-linux-gnu-thread-multi", "perl_cmd" => "/usr/bin/perl", - "perl_version" => "5.38.2", + "perl_version" => "5.34.0", "perlargv" => [ "no-comp", "no-shared", @@ -236,6 +266,7 @@ our %config = ( "LDLIBS" => undef, "MT" => undef, "MTFLAGS" => undef, + "OBJCOPY" => undef, "OPENSSL_LOCAL_CONFIG_DIR" => undef, "PERL" => undef, "RANLIB" => undef, @@ -259,7 +290,7 @@ our %config = ( "shlib_version" => "3", "sourcedir" => ".", "target" => "BSD-x86", - "version" => "3.0.17" + "version" => "3.5.1" ); our %target = ( "AR" => "ar", @@ -267,6 +298,7 @@ our %target = ( "CC" => "cc", "CFLAGS" => "-Wall -O3 -fomit-frame-pointer", "HASHBANGPERL" => "/usr/bin/env perl", + "OBJCOPY" => "objcopy", "RANLIB" => "ranlib", "RC" => "windres", "_conf_fname_int" => [ @@ -277,6 +309,8 @@ our %target = ( "Configurations/shared-info.pl" ], "asm_arch" => "x86", + "bin_cflags" => "", + "bin_lflags" => "", "bn_ops" => "BN_LLONG", "build_file" => "Makefile", "build_scheme" => [ @@ -320,6 +354,8 @@ our %target = ( our @disablables = ( "acvp-tests", "afalgeng", + "apps", + "argon2", "aria", "asan", "asm", @@ -330,11 +366,14 @@ our @disablables = ( "autoload-config", "bf", "blake2", + "brotli", + "brotli-dynamic", "buildtest-c++", "bulk", "cached-fetch", "camellia", "capieng", + "winstore", "cast", "chacha", "cmac", @@ -343,11 +382,16 @@ our @disablables = ( "comp", "crypto-mdebug", "ct", + "default-thread-pool", + "demos", + "h3demo", + "hqinterop", "deprecated", "des", "devcryptoeng", "dgram", "dh", + "docs", "dsa", "dso", "dtls", @@ -357,6 +401,7 @@ our @disablables = ( "ec_nistp_64_gcc_128", "ecdh", "ecdsa", + "ecx", "egd", "engine", "err", @@ -364,10 +409,15 @@ our @disablables = ( "filenames", "fips", "fips-securitychecks", + "fips-post", + "fips-jitter", "fuzz-afl", "fuzz-libfuzzer", "gost", + "http", "idea", + "integrity-only-ciphers", + "jitter", "ktls", "legacy", "loadereng", @@ -375,6 +425,8 @@ our @disablables = ( "md2", "md4", "mdc2", + "ml-dsa", + "ml-kem", "module", "msan", "multiblock", @@ -383,10 +435,13 @@ our @disablables = ( "ocsp", "padlockeng", "pic", + "pie", "pinshared", "poly1305", "posix-io", "psk", + "quic", + "unstable-qlog", "rc2", "rc4", "rc5", @@ -400,7 +455,9 @@ our @disablables = ( "shared", "siphash", "siv", + "slh-dsa", "sm2", + "sm2-precomp", "sm3", "sm4", "sock", @@ -411,9 +468,13 @@ our @disablables = ( "ssl-trace", "static-engine", "stdio", + "sslkeylog", "tests", + "tfo", + "thread-pool", "threads", "tls", + "tls-deprecated-ec", "trace", "ts", "ubsan", @@ -424,6 +485,8 @@ our @disablables = ( "whirlpool", "zlib", "zlib-dynamic", + "zstd", + "zstd-dynamic", "ssl3", "ssl3-method", "tls1", @@ -444,32 +507,45 @@ our @disablables_int = ( our %disabled = ( "afalgeng" => "option", "asan" => "default", + "brotli" => "default", + "brotli-dynamic" => "default", "buildtest-c++" => "default", "comp" => "option", "crypto-mdebug" => "default", "crypto-mdebug-backtrace" => "default", + "demos" => "default", "dynamic-engine" => "cascade", "ec_nistp_64_gcc_128" => "default", "egd" => "default", "external-tests" => "default", + "fips-jitter" => "default", "fuzz-afl" => "default", "fuzz-libfuzzer" => "default", + "h3demo" => "default", + "hqinterop" => "default", + "jitter" => "default", "ktls" => "default", "loadereng" => "cascade", "md2" => "default", "msan" => "default", + "pie" => "default", "rc5" => "default", "sctp" => "default", "shared" => "option", "ssl3" => "default", "ssl3-method" => "default", + "sslkeylog" => "default", + "tfo" => "default", "trace" => "default", "ubsan" => "default", "unit-test" => "default", "uplink" => "no uplink_arch", "weak-ssl-ciphers" => "default", + "winstore" => "not-windows", "zlib" => "default", - "zlib-dynamic" => "default" + "zlib-dynamic" => "default", + "zstd" => "default", + "zstd-dynamic" => "default" ); our %withargs = (); our %unified_info = ( @@ -695,6 +771,11 @@ our %unified_info = ( "pod" => "1" } }, + "doc/man1/openssl-skeyutl.pod" => { + "doc/man1/openssl-skeyutl.pod.in" => { + "pod" => "1" + } + }, "doc/man1/openssl-smime.pod" => { "doc/man1/openssl-smime.pod.in" => { "pod" => "1" @@ -752,6 +833,21 @@ our %unified_info = ( } }, "generate" => { + "exporters/OpenSSLConfig.cmake" => { + "exporter" => "cmake" + }, + "exporters/OpenSSLConfigVersion.cmake" => { + "exporter" => "cmake" + }, + "exporters/libcrypto.pc" => { + "exporter" => "pkg-config" + }, + "exporters/libssl.pc" => { + "exporter" => "pkg-config" + }, + "exporters/openssl.pc" => { + "exporter" => "pkg-config" + }, "include/openssl/configuration.h" => { "skip" => "1" } @@ -772,6 +868,9 @@ our %unified_info = ( "providers/liblegacy.a" => { "noinst" => "1" }, + "providers/libtemplate.a" => { + "noinst" => "1" + }, "test/libtestutil.a" => { "has_main" => "1", "noinst" => "1" @@ -789,6 +888,9 @@ our %unified_info = ( } }, "programs" => { + "fuzz/acert-test" => { + "noinst" => "1" + }, "fuzz/asn1-test" => { "noinst" => "1" }, @@ -819,9 +921,60 @@ our %unified_info = ( "fuzz/ct-test" => { "noinst" => "1" }, + "fuzz/decoder-test" => { + "noinst" => "1" + }, + "fuzz/dtlsclient-test" => { + "noinst" => "1" + }, + "fuzz/dtlsserver-test" => { + "noinst" => "1" + }, + "fuzz/hashtable-test" => { + "noinst" => "1" + }, + "fuzz/ml-dsa-test" => { + "noinst" => "1" + }, + "fuzz/ml-kem-test" => { + "noinst" => "1" + }, + "fuzz/pem-test" => { + "noinst" => "1" + }, + "fuzz/provider-test" => { + "noinst" => "1" + }, + "fuzz/punycode-test" => { + "noinst" => "1" + }, + "fuzz/quic-client-test" => { + "noinst" => "1" + }, + "fuzz/quic-lcidm-test" => { + "noinst" => "1" + }, + "fuzz/quic-rcidm-test" => { + "noinst" => "1" + }, + "fuzz/quic-server-test" => { + "noinst" => "1" + }, + "fuzz/quic-srtm-test" => { + "noinst" => "1" + }, "fuzz/server-test" => { "noinst" => "1" }, + "fuzz/slh-dsa-test" => { + "noinst" => "1" + }, + "fuzz/smime-test" => { + "noinst" => "1" + }, + "fuzz/v3name-test" => { + "noinst" => "1" + }, "fuzz/x509-test" => { "noinst" => "1" }, @@ -873,18 +1026,30 @@ our %unified_info = ( "test/bftest" => { "noinst" => "1" }, + "test/bio_addr_test" => { + "noinst" => "1" + }, + "test/bio_base64_test" => { + "noinst" => "1" + }, "test/bio_callback_test" => { "noinst" => "1" }, "test/bio_core_test" => { "noinst" => "1" }, + "test/bio_dgram_test" => { + "noinst" => "1" + }, "test/bio_enc_test" => { "noinst" => "1" }, "test/bio_memleak_test" => { "noinst" => "1" }, + "test/bio_meth_test" => { + "noinst" => "1" + }, "test/bio_prefix_text" => { "noinst" => "1" }, @@ -894,6 +1059,9 @@ our %unified_info = ( "test/bio_readbuffer_test" => { "noinst" => "1" }, + "test/bio_tfo_test" => { + "noinst" => "1" + }, "test/bioprinttest" => { "noinst" => "1" }, @@ -903,6 +1071,9 @@ our %unified_info = ( "test/bntest" => { "noinst" => "1" }, + "test/build_wincrypt_test" => { + "noinst" => "1" + }, "test/buildtest_c_aes" => { "noinst" => "1" }, @@ -918,6 +1089,9 @@ our %unified_info = ( "test/buildtest_c_buffer" => { "noinst" => "1" }, + "test/buildtest_c_byteorder" => { + "noinst" => "1" + }, "test/buildtest_c_camellia" => { "noinst" => "1" }, @@ -942,9 +1116,6 @@ our %unified_info = ( "test/buildtest_c_core_dispatch" => { "noinst" => "1" }, - "test/buildtest_c_core_names" => { - "noinst" => "1" - }, "test/buildtest_c_core_object" => { "noinst" => "1" }, @@ -969,6 +1140,9 @@ our %unified_info = ( "test/buildtest_c_e_os2" => { "noinst" => "1" }, + "test/buildtest_c_e_ostime" => { + "noinst" => "1" + }, "test/buildtest_c_ebcdic" => { "noinst" => "1" }, @@ -996,12 +1170,18 @@ our %unified_info = ( "test/buildtest_c_hmac" => { "noinst" => "1" }, + "test/buildtest_c_hpke" => { + "noinst" => "1" + }, "test/buildtest_c_http" => { "noinst" => "1" }, "test/buildtest_c_idea" => { "noinst" => "1" }, + "test/buildtest_c_indicator" => { + "noinst" => "1" + }, "test/buildtest_c_kdf" => { "noinst" => "1" }, @@ -1017,6 +1197,9 @@ our %unified_info = ( "test/buildtest_c_mdc2" => { "noinst" => "1" }, + "test/buildtest_c_ml_kem" => { + "noinst" => "1" + }, "test/buildtest_c_modes" => { "noinst" => "1" }, @@ -1047,6 +1230,9 @@ our %unified_info = ( "test/buildtest_c_provider" => { "noinst" => "1" }, + "test/buildtest_c_quic" => { + "noinst" => "1" + }, "test/buildtest_c_rand" => { "noinst" => "1" }, @@ -1089,6 +1275,9 @@ our %unified_info = ( "test/buildtest_c_symhacks" => { "noinst" => "1" }, + "test/buildtest_c_thread" => { + "noinst" => "1" + }, "test/buildtest_c_tls1" => { "noinst" => "1" }, @@ -1104,6 +1293,12 @@ our %unified_info = ( "test/buildtest_c_whrlpool" => { "noinst" => "1" }, + "test/byteorder_test" => { + "noinst" => "1" + }, + "test/ca_internals_test" => { + "noinst" => "1" + }, "test/casttest" => { "noinst" => "1" }, @@ -1188,6 +1383,9 @@ our %unified_info = ( "test/danetest" => { "noinst" => "1" }, + "test/decoder_propq_test" => { + "noinst" => "1" + }, "test/defltfips_test" => { "noinst" => "1" }, @@ -1260,15 +1458,24 @@ our %unified_info = ( "test/evp_pkey_ctx_new_from_name" => { "noinst" => "1" }, + "test/evp_pkey_dhkem_test" => { + "noinst" => "1" + }, "test/evp_pkey_dparams_test" => { "noinst" => "1" }, "test/evp_pkey_provided_test" => { "noinst" => "1" }, + "test/evp_skey_test" => { + "noinst" => "1" + }, "test/evp_test" => { "noinst" => "1" }, + "test/evp_xof_test" => { + "noinst" => "1" + }, "test/exdatatest" => { "noinst" => "1" }, @@ -1296,6 +1503,9 @@ our %unified_info = ( "test/hmactest" => { "noinst" => "1" }, + "test/hpke_test" => { + "noinst" => "1" + }, "test/http_test" => { "noinst" => "1" }, @@ -1305,12 +1515,18 @@ our %unified_info = ( "test/igetest" => { "noinst" => "1" }, + "test/json_test" => { + "noinst" => "1" + }, "test/keymgmt_internal_test" => { "noinst" => "1" }, "test/lhash_test" => { "noinst" => "1" }, + "test/list_test" => { + "noinst" => "1" + }, "test/localetest" => { "noinst" => "1" }, @@ -1320,9 +1536,21 @@ our %unified_info = ( "test/mdc2test" => { "noinst" => "1" }, + "test/membio_test" => { + "noinst" => "1" + }, "test/memleaktest" => { "noinst" => "1" }, + "test/ml_dsa_test" => { + "noinst" => "1" + }, + "test/ml_kem_evp_extra_test" => { + "noinst" => "1" + }, + "test/ml_kem_internal_test" => { + "noinst" => "1" + }, "test/modes_internal_test" => { "noinst" => "1" }, @@ -1341,6 +1569,9 @@ our %unified_info = ( "test/packettest" => { "noinst" => "1" }, + "test/pairwise_fail_test" => { + "noinst" => "1" + }, "test/param_build_test" => { "noinst" => "1" }, @@ -1365,6 +1596,9 @@ our %unified_info = ( "test/pemtest" => { "noinst" => "1" }, + "test/pkcs12_api_test" => { + "noinst" => "1" + }, "test/pkcs12_format_test" => { "noinst" => "1" }, @@ -1380,6 +1614,9 @@ our %unified_info = ( "test/poly1305_internal_test" => { "noinst" => "1" }, + "test/priority_queue_test" => { + "noinst" => "1" + }, "test/property_test" => { "noinst" => "1" }, @@ -1389,6 +1626,9 @@ our %unified_info = ( "test/provfetchtest" => { "noinst" => "1" }, + "test/provider_default_search_path_test" => { + "noinst" => "1" + }, "test/provider_fallback_test" => { "noinst" => "1" }, @@ -1407,6 +1647,72 @@ our %unified_info = ( "test/punycode_test" => { "noinst" => "1" }, + "test/quic_ackm_test" => { + "noinst" => "1" + }, + "test/quic_cc_test" => { + "noinst" => "1" + }, + "test/quic_cfq_test" => { + "noinst" => "1" + }, + "test/quic_client_test" => { + "noinst" => "1" + }, + "test/quic_fc_test" => { + "noinst" => "1" + }, + "test/quic_fifd_test" => { + "noinst" => "1" + }, + "test/quic_lcidm_test" => { + "noinst" => "1" + }, + "test/quic_multistream_test" => { + "noinst" => "1" + }, + "test/quic_newcid_test" => { + "noinst" => "1" + }, + "test/quic_qlog_test" => { + "noinst" => "1" + }, + "test/quic_radix_test" => { + "noinst" => "1" + }, + "test/quic_rcidm_test" => { + "noinst" => "1" + }, + "test/quic_record_test" => { + "noinst" => "1" + }, + "test/quic_srt_gen_test" => { + "noinst" => "1" + }, + "test/quic_srtm_test" => { + "noinst" => "1" + }, + "test/quic_stream_test" => { + "noinst" => "1" + }, + "test/quic_tserver_test" => { + "noinst" => "1" + }, + "test/quic_txp_test" => { + "noinst" => "1" + }, + "test/quic_txpim_test" => { + "noinst" => "1" + }, + "test/quic_wire_test" => { + "noinst" => "1" + }, + "test/quicapitest" => { + "noinst" => "1" + }, + "test/quicfaultstest" => { + "noinst" => "1" + }, "test/rand_status_test" => { "noinst" => "1" }, @@ -1422,12 +1728,15 @@ our %unified_info = ( "test/rc5test" => { "noinst" => "1" }, - "test/rdrand_sanitytest" => { + "test/rdcpu_sanitytest" => { "noinst" => "1" }, "test/recordlentest" => { "noinst" => "1" }, + "test/rpktest" => { + "noinst" => "1" + }, "test/rsa_complex" => { "noinst" => "1" }, @@ -1440,6 +1749,12 @@ our %unified_info = ( "test/rsa_test" => { "noinst" => "1" }, + "test/rsa_x931_test" => { + "noinst" => "1" + }, + "test/safe_math_test" => { + "noinst" => "1" + }, "test/sanitytest" => { "noinst" => "1" }, @@ -1455,6 +1770,9 @@ our %unified_info = ( "test/siphash_internal_test" => { "noinst" => "1" }, + "test/slh_dsa_test" => { + "noinst" => "1" + }, "test/sm2_internal_test" => { "noinst" => "1" }, @@ -1476,6 +1794,9 @@ our %unified_info = ( "test/ssl_ctx_test" => { "noinst" => "1" }, + "test/ssl_handshake_rtt_test" => { + "noinst" => "1" + }, "test/ssl_old_test" => { "noinst" => "1" }, @@ -1497,12 +1818,18 @@ our %unified_info = ( "test/stack_test" => { "noinst" => "1" }, + "test/strtoultest" => { + "noinst" => "1" + }, "test/sysdefaulttest" => { "noinst" => "1" }, "test/test_test" => { "noinst" => "1" }, + "test/threadpool_test" => { + "noinst" => "1" + }, "test/threadstest" => { "noinst" => "1" }, @@ -1512,12 +1839,18 @@ our %unified_info = ( "test/time_offset_test" => { "noinst" => "1" }, + "test/time_test" => { + "noinst" => "1" + }, "test/tls13ccstest" => { "noinst" => "1" }, "test/tls13encryptiontest" => { "noinst" => "1" }, + "test/tls13groupselection_test" => { + "noinst" => "1" + }, "test/trace_api_test" => { "noinst" => "1" }, @@ -1545,6 +1878,9 @@ our %unified_info = ( "test/wpackettest" => { "noinst" => "1" }, + "test/x509_acert_test" => { + "noinst" => "1" + }, "test/x509_check_cert_pkey_test" => { "noinst" => "1" }, @@ -1554,6 +1890,15 @@ our %unified_info = ( "test/x509_internal_test" => { "noinst" => "1" }, + "test/x509_load_cert_file_test" => { + "noinst" => "1" + }, + "test/x509_req_test" => { + "noinst" => "1" + }, + "test/x509_test" => { + "noinst" => "1" + }, "test/x509_time_test" => { "noinst" => "1" }, @@ -1656,6 +2001,9 @@ our %unified_info = ( "MD5_ASM", "RC4_ASM" ], + "test/endecode_test" => [ + "STATIC_LEGACY" + ], "test/evp_extra_test" => [ "STATIC_LEGACY" ], @@ -1668,14 +2016,21 @@ our %unified_info = ( }, "depends" => { "" => [ + "OpenSSLConfigVersion.cmake", + "crypto/params_idx.c", + "exporters/OpenSSLConfigVersion.cmake", + "exporters/openssl.pc", "include/crypto/bn_conf.h", "include/crypto/dso_conf.h", + "include/internal/param_names.h", "include/openssl/asn1.h", "include/openssl/asn1t.h", "include/openssl/bio.h", "include/openssl/cmp.h", "include/openssl/cms.h", + "include/openssl/comp.h", "include/openssl/conf.h", + "include/openssl/core_names.h", "include/openssl/crmf.h", "include/openssl/crypto.h", "include/openssl/ct.h", @@ -1692,10 +2047,22 @@ our %unified_info = ( "include/openssl/ssl.h", "include/openssl/ui.h", "include/openssl/x509.h", + "include/openssl/x509_acert.h", "include/openssl/x509_vfy.h", "include/openssl/x509v3.h", + "openssl.pc", "test/provider_internal_test.cnf" ], + "OpenSSLConfig.cmake" => [ + "builddata.pm" + ], + "OpenSSLConfigVersion.cmake" => [ + "OpenSSLConfig.cmake", + "builddata.pm" + ], + "apps/ca_internals_test-bin-ca.o" => [ + "apps/progs.h" + ], "apps/lib/cmp_client_test-bin-cmp_mock_srv.o" => [ "apps/progs.h" ], @@ -1841,6 +2208,9 @@ our %unified_info = ( "apps/openssl-bin-sess_id.o" => [ "apps/progs.h" ], + "apps/openssl-bin-skeyutl.o" => [ + "apps/progs.h" + ], "apps/openssl-bin-smime.o" => [ "apps/progs.h" ], @@ -1929,6 +2299,9 @@ our %unified_info = ( "crypto/libcrypto-lib-info.o" => [ "crypto/buildinf.h" ], + "crypto/params_idx.c" => [ + "util/perl|OpenSSL/paramnames.pm" + ], "crypto/rc4/rc4-586.S" => [ "crypto/perlasm/x86asm.pl" ], @@ -2094,6 +2467,9 @@ our %unified_info = ( "doc/html/man1/openssl-sess_id.html" => [ "doc/man1/openssl-sess_id.pod" ], + "doc/html/man1/openssl-skeyutl.html" => [ + "doc/man1/openssl-skeyutl.pod" + ], "doc/html/man1/openssl-smime.html" => [ "doc/man1/openssl-smime.pod" ], @@ -2235,6 +2611,9 @@ our %unified_info = ( "doc/html/man3/BIO_get_ex_new_index.html" => [ "doc/man3/BIO_get_ex_new_index.pod" ], + "doc/html/man3/BIO_get_rpoll_descriptor.html" => [ + "doc/man3/BIO_get_rpoll_descriptor.pod" + ], "doc/html/man3/BIO_meth_new.html" => [ "doc/man3/BIO_meth_new.pod" ], @@ -2271,6 +2650,9 @@ our %unified_info = ( "doc/html/man3/BIO_s_datagram.html" => [ "doc/man3/BIO_s_datagram.pod" ], + "doc/html/man3/BIO_s_dgram_pair.html" => [ + "doc/man3/BIO_s_dgram_pair.pod" + ], "doc/html/man3/BIO_s_fd.html" => [ "doc/man3/BIO_s_fd.pod" ], @@ -2286,6 +2668,9 @@ our %unified_info = ( "doc/html/man3/BIO_s_socket.html" => [ "doc/man3/BIO_s_socket.pod" ], + "doc/html/man3/BIO_sendmmsg.html" => [ + "doc/man3/BIO_sendmmsg.pod" + ], "doc/html/man3/BIO_set_callback.html" => [ "doc/man3/BIO_set_callback.pod" ], @@ -2358,6 +2743,9 @@ our %unified_info = ( "doc/html/man3/BUF_MEM_new.html" => [ "doc/man3/BUF_MEM_new.pod" ], + "doc/html/man3/CMAC_CTX.html" => [ + "doc/man3/CMAC_CTX.pod" + ], "doc/html/man3/CMS_EncryptedData_decrypt.html" => [ "doc/man3/CMS_EncryptedData_decrypt.pod" ], @@ -2424,6 +2812,9 @@ our %unified_info = ( "doc/html/man3/CMS_verify_receipt.html" => [ "doc/man3/CMS_verify_receipt.pod" ], + "doc/html/man3/COMP_CTX_new.html" => [ + "doc/man3/COMP_CTX_new.pod" + ], "doc/html/man3/CONF_modules_free.html" => [ "doc/man3/CONF_modules_free.pod" ], @@ -2523,6 +2914,12 @@ our %unified_info = ( "doc/html/man3/DTLS_set_timer_cb.html" => [ "doc/man3/DTLS_set_timer_cb.pod" ], + "doc/html/man3/DTLSv1_get_timeout.html" => [ + "doc/man3/DTLSv1_get_timeout.pod" + ], + "doc/html/man3/DTLSv1_handle_timeout.html" => [ + "doc/man3/DTLSv1_handle_timeout.pod" + ], "doc/html/man3/DTLSv1_listen.html" => [ "doc/man3/DTLSv1_listen.pod" ], @@ -2661,6 +3058,9 @@ our %unified_info = ( "doc/html/man3/EVP_PKEY_CTX_get0_pkey.html" => [ "doc/man3/EVP_PKEY_CTX_get0_pkey.pod" ], + "doc/html/man3/EVP_PKEY_CTX_get_algor.html" => [ + "doc/man3/EVP_PKEY_CTX_get_algor.pod" + ], "doc/html/man3/EVP_PKEY_CTX_new.html" => [ "doc/man3/EVP_PKEY_CTX_new.pod" ], @@ -2778,6 +3178,12 @@ our %unified_info = ( "doc/html/man3/EVP_SIGNATURE.html" => [ "doc/man3/EVP_SIGNATURE.pod" ], + "doc/html/man3/EVP_SKEY.html" => [ + "doc/man3/EVP_SKEY.pod" + ], + "doc/html/man3/EVP_SKEYMGMT.html" => [ + "doc/man3/EVP_SKEYMGMT.pod" + ], "doc/html/man3/EVP_SealInit.html" => [ "doc/man3/EVP_SealInit.pod" ], @@ -2865,6 +3271,9 @@ our %unified_info = ( "doc/html/man3/EVP_whirlpool.html" => [ "doc/man3/EVP_whirlpool.pod" ], + "doc/html/man3/GENERAL_NAME.html" => [ + "doc/man3/GENERAL_NAME.pod" + ], "doc/html/man3/HMAC.html" => [ "doc/man3/HMAC.pod" ], @@ -2937,9 +3346,15 @@ our %unified_info = ( "doc/html/man3/OPENSSL_load_builtin_modules.html" => [ "doc/man3/OPENSSL_load_builtin_modules.pod" ], + "doc/html/man3/OPENSSL_load_u16_le.html" => [ + "doc/man3/OPENSSL_load_u16_le.pod" + ], "doc/html/man3/OPENSSL_malloc.html" => [ "doc/man3/OPENSSL_malloc.pod" ], + "doc/html/man3/OPENSSL_riscvcap.html" => [ + "doc/man3/OPENSSL_riscvcap.pod" + ], "doc/html/man3/OPENSSL_s390xcap.html" => [ "doc/man3/OPENSSL_s390xcap.pod" ], @@ -2955,12 +3370,18 @@ our %unified_info = ( "doc/html/man3/OSSL_CALLBACK.html" => [ "doc/man3/OSSL_CALLBACK.pod" ], + "doc/html/man3/OSSL_CMP_ATAV_set0.html" => [ + "doc/man3/OSSL_CMP_ATAV_set0.pod" + ], "doc/html/man3/OSSL_CMP_CTX_new.html" => [ "doc/man3/OSSL_CMP_CTX_new.pod" ], "doc/html/man3/OSSL_CMP_HDR_get0_transactionID.html" => [ "doc/man3/OSSL_CMP_HDR_get0_transactionID.pod" ], + "doc/html/man3/OSSL_CMP_ITAV_new_caCerts.html" => [ + "doc/man3/OSSL_CMP_ITAV_new_caCerts.pod" + ], "doc/html/man3/OSSL_CMP_ITAV_set0.html" => [ "doc/man3/OSSL_CMP_ITAV_set0.pod" ], @@ -3030,9 +3451,18 @@ our %unified_info = ( "doc/html/man3/OSSL_ENCODER_to_bio.html" => [ "doc/man3/OSSL_ENCODER_to_bio.pod" ], + "doc/html/man3/OSSL_ERR_STATE_save.html" => [ + "doc/man3/OSSL_ERR_STATE_save.pod" + ], "doc/html/man3/OSSL_ESS_check_signing_certs.html" => [ "doc/man3/OSSL_ESS_check_signing_certs.pod" ], + "doc/html/man3/OSSL_GENERAL_NAMES_print.html" => [ + "doc/man3/OSSL_GENERAL_NAMES_print.pod" + ], + "doc/html/man3/OSSL_HPKE_CTX_new.html" => [ + "doc/man3/OSSL_HPKE_CTX_new.pod" + ], "doc/html/man3/OSSL_HTTP_REQ_CTX.html" => [ "doc/man3/OSSL_HTTP_REQ_CTX.pod" ], @@ -3042,12 +3472,24 @@ our %unified_info = ( "doc/html/man3/OSSL_HTTP_transfer.html" => [ "doc/man3/OSSL_HTTP_transfer.pod" ], + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX.html" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX.pod" + ], + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX_print.html" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX_print.pod" + ], + "doc/html/man3/OSSL_INDICATOR_set_callback.html" => [ + "doc/man3/OSSL_INDICATOR_set_callback.pod" + ], "doc/html/man3/OSSL_ITEM.html" => [ "doc/man3/OSSL_ITEM.pod" ], "doc/html/man3/OSSL_LIB_CTX.html" => [ "doc/man3/OSSL_LIB_CTX.pod" ], + "doc/html/man3/OSSL_LIB_CTX_set_conf_diagnostics.html" => [ + "doc/man3/OSSL_LIB_CTX_set_conf_diagnostics.pod" + ], "doc/html/man3/OSSL_PARAM.html" => [ "doc/man3/OSSL_PARAM.pod" ], @@ -3063,9 +3505,15 @@ our %unified_info = ( "doc/html/man3/OSSL_PARAM_int.html" => [ "doc/man3/OSSL_PARAM_int.pod" ], + "doc/html/man3/OSSL_PARAM_print_to_bio.html" => [ + "doc/man3/OSSL_PARAM_print_to_bio.pod" + ], "doc/html/man3/OSSL_PROVIDER.html" => [ "doc/man3/OSSL_PROVIDER.pod" ], + "doc/html/man3/OSSL_QUIC_client_method.html" => [ + "doc/man3/OSSL_QUIC_client_method.pod" + ], "doc/html/man3/OSSL_SELF_TEST_new.html" => [ "doc/man3/OSSL_SELF_TEST_new.pod" ], @@ -3090,6 +3538,9 @@ our %unified_info = ( "doc/html/man3/OSSL_STORE_open.html" => [ "doc/man3/OSSL_STORE_open.pod" ], + "doc/html/man3/OSSL_sleep.html" => [ + "doc/man3/OSSL_sleep.pod" + ], "doc/html/man3/OSSL_trace_enabled.html" => [ "doc/man3/OSSL_trace_enabled.pod" ], @@ -3105,6 +3556,9 @@ our %unified_info = ( "doc/html/man3/OpenSSL_version.html" => [ "doc/man3/OpenSSL_version.pod" ], + "doc/html/man3/PBMAC1_get1_pbkdf2_param.html" => [ + "doc/man3/PBMAC1_get1_pbkdf2_param.pod" + ], "doc/html/man3/PEM_X509_INFO_read_bio_ex.html" => [ "doc/man3/PEM_X509_INFO_read_bio_ex.pod" ], @@ -3141,6 +3595,9 @@ our %unified_info = ( "doc/html/man3/PKCS12_SAFEBAG_get1_cert.html" => [ "doc/man3/PKCS12_SAFEBAG_get1_cert.pod" ], + "doc/html/man3/PKCS12_SAFEBAG_set0_attrs.html" => [ + "doc/man3/PKCS12_SAFEBAG_set0_attrs.pod" + ], "doc/html/man3/PKCS12_add1_attr_by_NID.html" => [ "doc/man3/PKCS12_add1_attr_by_NID.pod" ], @@ -3414,6 +3871,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set0_CA_list.html" => [ "doc/man3/SSL_CTX_set0_CA_list.pod" ], + "doc/html/man3/SSL_CTX_set1_cert_comp_preference.html" => [ + "doc/man3/SSL_CTX_set1_cert_comp_preference.pod" + ], "doc/html/man3/SSL_CTX_set1_curves.html" => [ "doc/man3/SSL_CTX_set1_curves.pod" ], @@ -3453,6 +3913,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_default_passwd_cb.html" => [ "doc/man3/SSL_CTX_set_default_passwd_cb.pod" ], + "doc/html/man3/SSL_CTX_set_domain_flags.html" => [ + "doc/man3/SSL_CTX_set_domain_flags.pod" + ], "doc/html/man3/SSL_CTX_set_generate_session_id.html" => [ "doc/man3/SSL_CTX_set_generate_session_id.pod" ], @@ -3474,6 +3937,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_msg_callback.html" => [ "doc/man3/SSL_CTX_set_msg_callback.pod" ], + "doc/html/man3/SSL_CTX_set_new_pending_conn_cb.html" => [ + "doc/man3/SSL_CTX_set_new_pending_conn_cb.pod" + ], "doc/html/man3/SSL_CTX_set_num_tickets.html" => [ "doc/man3/SSL_CTX_set_num_tickets.pod" ], @@ -3588,6 +4054,9 @@ our %unified_info = ( "doc/html/man3/SSL_accept.html" => [ "doc/man3/SSL_accept.pod" ], + "doc/html/man3/SSL_accept_stream.html" => [ + "doc/man3/SSL_accept_stream.pod" + ], "doc/html/man3/SSL_alert_type_string.html" => [ "doc/man3/SSL_alert_type_string.pod" ], @@ -3615,9 +4084,21 @@ our %unified_info = ( "doc/html/man3/SSL_free.html" => [ "doc/man3/SSL_free.pod" ], + "doc/html/man3/SSL_get0_connection.html" => [ + "doc/man3/SSL_get0_connection.pod" + ], + "doc/html/man3/SSL_get0_group_name.html" => [ + "doc/man3/SSL_get0_group_name.pod" + ], + "doc/html/man3/SSL_get0_peer_rpk.html" => [ + "doc/man3/SSL_get0_peer_rpk.pod" + ], "doc/html/man3/SSL_get0_peer_scts.html" => [ "doc/man3/SSL_get0_peer_scts.pod" ], + "doc/html/man3/SSL_get1_builtin_sigalgs.html" => [ + "doc/man3/SSL_get1_builtin_sigalgs.pod" + ], "doc/html/man3/SSL_get_SSL_CTX.html" => [ "doc/man3/SSL_get_SSL_CTX.pod" ], @@ -3633,6 +4114,9 @@ our %unified_info = ( "doc/html/man3/SSL_get_client_random.html" => [ "doc/man3/SSL_get_client_random.pod" ], + "doc/html/man3/SSL_get_conn_close_info.html" => [ + "doc/man3/SSL_get_conn_close_info.pod" + ], "doc/html/man3/SSL_get_current_cipher.html" => [ "doc/man3/SSL_get_current_cipher.pod" ], @@ -3642,12 +4126,18 @@ our %unified_info = ( "doc/html/man3/SSL_get_error.html" => [ "doc/man3/SSL_get_error.pod" ], + "doc/html/man3/SSL_get_event_timeout.html" => [ + "doc/man3/SSL_get_event_timeout.pod" + ], "doc/html/man3/SSL_get_extms_support.html" => [ "doc/man3/SSL_get_extms_support.pod" ], "doc/html/man3/SSL_get_fd.html" => [ "doc/man3/SSL_get_fd.pod" ], + "doc/html/man3/SSL_get_handshake_rtt.html" => [ + "doc/man3/SSL_get_handshake_rtt.pod" + ], "doc/html/man3/SSL_get_peer_cert_chain.html" => [ "doc/man3/SSL_get_peer_cert_chain.pod" ], @@ -3666,12 +4156,24 @@ our %unified_info = ( "doc/html/man3/SSL_get_rbio.html" => [ "doc/man3/SSL_get_rbio.pod" ], + "doc/html/man3/SSL_get_rpoll_descriptor.html" => [ + "doc/man3/SSL_get_rpoll_descriptor.pod" + ], "doc/html/man3/SSL_get_session.html" => [ "doc/man3/SSL_get_session.pod" ], "doc/html/man3/SSL_get_shared_sigalgs.html" => [ "doc/man3/SSL_get_shared_sigalgs.pod" ], + "doc/html/man3/SSL_get_stream_id.html" => [ + "doc/man3/SSL_get_stream_id.pod" + ], + "doc/html/man3/SSL_get_stream_read_state.html" => [ + "doc/man3/SSL_get_stream_read_state.pod" + ], + "doc/html/man3/SSL_get_value_uint.html" => [ + "doc/man3/SSL_get_value_uint.pod" + ], "doc/html/man3/SSL_get_verify_result.html" => [ "doc/man3/SSL_get_verify_result.pod" ], @@ -3681,9 +4183,15 @@ our %unified_info = ( "doc/html/man3/SSL_group_to_name.html" => [ "doc/man3/SSL_group_to_name.pod" ], + "doc/html/man3/SSL_handle_events.html" => [ + "doc/man3/SSL_handle_events.pod" + ], "doc/html/man3/SSL_in_init.html" => [ "doc/man3/SSL_in_init.pod" ], + "doc/html/man3/SSL_inject_net_dgram.html" => [ + "doc/man3/SSL_inject_net_dgram.pod" + ], "doc/html/man3/SSL_key_update.html" => [ "doc/man3/SSL_key_update.pod" ], @@ -3696,9 +4204,21 @@ our %unified_info = ( "doc/html/man3/SSL_new.html" => [ "doc/man3/SSL_new.pod" ], + "doc/html/man3/SSL_new_domain.html" => [ + "doc/man3/SSL_new_domain.pod" + ], + "doc/html/man3/SSL_new_listener.html" => [ + "doc/man3/SSL_new_listener.pod" + ], + "doc/html/man3/SSL_new_stream.html" => [ + "doc/man3/SSL_new_stream.pod" + ], "doc/html/man3/SSL_pending.html" => [ "doc/man3/SSL_pending.pod" ], + "doc/html/man3/SSL_poll.html" => [ + "doc/man3/SSL_poll.pod" + ], "doc/html/man3/SSL_read.html" => [ "doc/man3/SSL_read.pod" ], @@ -3714,24 +4234,45 @@ our %unified_info = ( "doc/html/man3/SSL_set1_host.html" => [ "doc/man3/SSL_set1_host.pod" ], + "doc/html/man3/SSL_set1_initial_peer_addr.html" => [ + "doc/man3/SSL_set1_initial_peer_addr.pod" + ], + "doc/html/man3/SSL_set1_server_cert_type.html" => [ + "doc/man3/SSL_set1_server_cert_type.pod" + ], "doc/html/man3/SSL_set_async_callback.html" => [ "doc/man3/SSL_set_async_callback.pod" ], "doc/html/man3/SSL_set_bio.html" => [ "doc/man3/SSL_set_bio.pod" ], + "doc/html/man3/SSL_set_blocking_mode.html" => [ + "doc/man3/SSL_set_blocking_mode.pod" + ], "doc/html/man3/SSL_set_connect_state.html" => [ "doc/man3/SSL_set_connect_state.pod" ], + "doc/html/man3/SSL_set_default_stream_mode.html" => [ + "doc/man3/SSL_set_default_stream_mode.pod" + ], "doc/html/man3/SSL_set_fd.html" => [ "doc/man3/SSL_set_fd.pod" ], + "doc/html/man3/SSL_set_incoming_stream_policy.html" => [ + "doc/man3/SSL_set_incoming_stream_policy.pod" + ], + "doc/html/man3/SSL_set_quic_tls_cbs.html" => [ + "doc/man3/SSL_set_quic_tls_cbs.pod" + ], "doc/html/man3/SSL_set_retry_verify.html" => [ "doc/man3/SSL_set_retry_verify.pod" ], "doc/html/man3/SSL_set_session.html" => [ "doc/man3/SSL_set_session.pod" ], + "doc/html/man3/SSL_set_session_secret_cb.html" => [ + "doc/man3/SSL_set_session_secret_cb.pod" + ], "doc/html/man3/SSL_set_shutdown.html" => [ "doc/man3/SSL_set_shutdown.pod" ], @@ -3744,6 +4285,12 @@ our %unified_info = ( "doc/html/man3/SSL_state_string.html" => [ "doc/man3/SSL_state_string.pod" ], + "doc/html/man3/SSL_stream_conclude.html" => [ + "doc/man3/SSL_stream_conclude.pod" + ], + "doc/html/man3/SSL_stream_reset.html" => [ + "doc/man3/SSL_stream_reset.pod" + ], "doc/html/man3/SSL_want.html" => [ "doc/man3/SSL_want.pod" ], @@ -3753,8 +4300,8 @@ our %unified_info = ( "doc/html/man3/TS_RESP_CTX_new.html" => [ "doc/man3/TS_RESP_CTX_new.pod" ], - "doc/html/man3/TS_VERIFY_CTX_set_certs.html" => [ - "doc/man3/TS_VERIFY_CTX_set_certs.pod" + "doc/html/man3/TS_VERIFY_CTX.html" => [ + "doc/man3/TS_VERIFY_CTX.pod" ], "doc/html/man3/UI_STRING.html" => [ "doc/man3/UI_STRING.pod" @@ -3774,6 +4321,21 @@ our %unified_info = ( "doc/html/man3/X509V3_set_ctx.html" => [ "doc/man3/X509V3_set_ctx.pod" ], + "doc/html/man3/X509_ACERT_add1_attr.html" => [ + "doc/man3/X509_ACERT_add1_attr.pod" + ], + "doc/html/man3/X509_ACERT_add_attr_nconf.html" => [ + "doc/man3/X509_ACERT_add_attr_nconf.pod" + ], + "doc/html/man3/X509_ACERT_get0_holder_baseCertId.html" => [ + "doc/man3/X509_ACERT_get0_holder_baseCertId.pod" + ], + "doc/html/man3/X509_ACERT_get_attr.html" => [ + "doc/man3/X509_ACERT_get_attr.pod" + ], + "doc/html/man3/X509_ACERT_print_ex.html" => [ + "doc/man3/X509_ACERT_print_ex.pod" + ], "doc/html/man3/X509_ALGOR_dup.html" => [ "doc/man3/X509_ALGOR_dup.pod" ], @@ -3822,6 +4384,9 @@ our %unified_info = ( "doc/html/man3/X509_SIG_get0.html" => [ "doc/man3/X509_SIG_get0.pod" ], + "doc/html/man3/X509_STORE_CTX_get_by_subject.html" => [ + "doc/man3/X509_STORE_CTX_get_by_subject.pod" + ], "doc/html/man3/X509_STORE_CTX_get_error.html" => [ "doc/man3/X509_STORE_CTX_get_error.pod" ], @@ -3888,6 +4453,9 @@ our %unified_info = ( "doc/html/man3/X509_get0_uids.html" => [ "doc/man3/X509_get0_uids.pod" ], + "doc/html/man3/X509_get_default_cert_file.html" => [ + "doc/man3/X509_get_default_cert_file.pod" + ], "doc/html/man3/X509_get_extension_flags.html" => [ "doc/man3/X509_get_extension_flags.pod" ], @@ -4011,9 +4579,15 @@ our %unified_info = ( "doc/html/man7/EVP_CIPHER-SM4.html" => [ "doc/man7/EVP_CIPHER-SM4.pod" ], + "doc/html/man7/EVP_KDF-ARGON2.html" => [ + "doc/man7/EVP_KDF-ARGON2.pod" + ], "doc/html/man7/EVP_KDF-HKDF.html" => [ "doc/man7/EVP_KDF-HKDF.pod" ], + "doc/html/man7/EVP_KDF-HMAC-DRBG.html" => [ + "doc/man7/EVP_KDF-HMAC-DRBG.pod" + ], "doc/html/man7/EVP_KDF-KB.html" => [ "doc/man7/EVP_KDF-KB.pod" ], @@ -4029,6 +4603,9 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-PKCS12KDF.html" => [ "doc/man7/EVP_KDF-PKCS12KDF.pod" ], + "doc/html/man7/EVP_KDF-PVKKDF.html" => [ + "doc/man7/EVP_KDF-PVKKDF.pod" + ], "doc/html/man7/EVP_KDF-SCRYPT.html" => [ "doc/man7/EVP_KDF-SCRYPT.pod" ], @@ -4053,9 +4630,18 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-X963.html" => [ "doc/man7/EVP_KDF-X963.pod" ], + "doc/html/man7/EVP_KEM-EC.html" => [ + "doc/man7/EVP_KEM-EC.pod" + ], + "doc/html/man7/EVP_KEM-ML-KEM.html" => [ + "doc/man7/EVP_KEM-ML-KEM.pod" + ], "doc/html/man7/EVP_KEM-RSA.html" => [ "doc/man7/EVP_KEM-RSA.pod" ], + "doc/html/man7/EVP_KEM-X25519.html" => [ + "doc/man7/EVP_KEM-X25519.pod" + ], "doc/html/man7/EVP_KEYEXCH-DH.html" => [ "doc/man7/EVP_KEYEXCH-DH.pod" ], @@ -4089,6 +4675,9 @@ our %unified_info = ( "doc/html/man7/EVP_MD-BLAKE2.html" => [ "doc/man7/EVP_MD-BLAKE2.pod" ], + "doc/html/man7/EVP_MD-KECCAK.html" => [ + "doc/man7/EVP_MD-KECCAK.pod" + ], "doc/html/man7/EVP_MD-MD2.html" => [ "doc/man7/EVP_MD-MD2.pod" ], @@ -4146,15 +4735,27 @@ our %unified_info = ( "doc/html/man7/EVP_PKEY-HMAC.html" => [ "doc/man7/EVP_PKEY-HMAC.pod" ], + "doc/html/man7/EVP_PKEY-ML-DSA.html" => [ + "doc/man7/EVP_PKEY-ML-DSA.pod" + ], + "doc/html/man7/EVP_PKEY-ML-KEM.html" => [ + "doc/man7/EVP_PKEY-ML-KEM.pod" + ], "doc/html/man7/EVP_PKEY-RSA.html" => [ "doc/man7/EVP_PKEY-RSA.pod" ], + "doc/html/man7/EVP_PKEY-SLH-DSA.html" => [ + "doc/man7/EVP_PKEY-SLH-DSA.pod" + ], "doc/html/man7/EVP_PKEY-SM2.html" => [ "doc/man7/EVP_PKEY-SM2.pod" ], "doc/html/man7/EVP_PKEY-X25519.html" => [ "doc/man7/EVP_PKEY-X25519.pod" ], + "doc/html/man7/EVP_RAND-CRNG-TEST.html" => [ + "doc/man7/EVP_RAND-CRNG-TEST.pod" + ], "doc/html/man7/EVP_RAND-CTR-DRBG.html" => [ "doc/man7/EVP_RAND-CTR-DRBG.pod" ], @@ -4164,6 +4765,9 @@ our %unified_info = ( "doc/html/man7/EVP_RAND-HMAC-DRBG.html" => [ "doc/man7/EVP_RAND-HMAC-DRBG.pod" ], + "doc/html/man7/EVP_RAND-JITTER.html" => [ + "doc/man7/EVP_RAND-JITTER.pod" + ], "doc/html/man7/EVP_RAND-SEED-SRC.html" => [ "doc/man7/EVP_RAND-SEED-SRC.pod" ], @@ -4185,9 +4789,15 @@ our %unified_info = ( "doc/html/man7/EVP_SIGNATURE-HMAC.html" => [ "doc/man7/EVP_SIGNATURE-HMAC.pod" ], + "doc/html/man7/EVP_SIGNATURE-ML-DSA.html" => [ + "doc/man7/EVP_SIGNATURE-ML-DSA.pod" + ], "doc/html/man7/EVP_SIGNATURE-RSA.html" => [ "doc/man7/EVP_SIGNATURE-RSA.pod" ], + "doc/html/man7/EVP_SIGNATURE-SLH-DSA.html" => [ + "doc/man7/EVP_SIGNATURE-SLH-DSA.pod" + ], "doc/html/man7/OSSL_PROVIDER-FIPS.html" => [ "doc/man7/OSSL_PROVIDER-FIPS.pod" ], @@ -4203,6 +4813,9 @@ our %unified_info = ( "doc/html/man7/OSSL_PROVIDER-null.html" => [ "doc/man7/OSSL_PROVIDER-null.pod" ], + "doc/html/man7/OSSL_STORE-winstore.html" => [ + "doc/man7/OSSL_STORE-winstore.pod" + ], "doc/html/man7/RAND.html" => [ "doc/man7/RAND.pod" ], @@ -4215,9 +4828,6 @@ our %unified_info = ( "doc/html/man7/bio.html" => [ "doc/man7/bio.pod" ], - "doc/html/man7/crypto.html" => [ - "doc/man7/crypto.pod" - ], "doc/html/man7/ct.html" => [ "doc/man7/ct.pod" ], @@ -4248,9 +4858,6 @@ our %unified_info = ( "doc/html/man7/life_cycle-rand.html" => [ "doc/man7/life_cycle-rand.pod" ], - "doc/html/man7/migration_guide.html" => [ - "doc/man7/migration_guide.pod" - ], "doc/html/man7/openssl-core.h.html" => [ "doc/man7/openssl-core.h.pod" ], @@ -4266,12 +4873,66 @@ our %unified_info = ( "doc/html/man7/openssl-glossary.html" => [ "doc/man7/openssl-glossary.pod" ], + "doc/html/man7/openssl-qlog.html" => [ + "doc/man7/openssl-qlog.pod" + ], + "doc/html/man7/openssl-quic-concurrency.html" => [ + "doc/man7/openssl-quic-concurrency.pod" + ], + "doc/html/man7/openssl-quic.html" => [ + "doc/man7/openssl-quic.pod" + ], "doc/html/man7/openssl-threads.html" => [ "doc/man7/openssl-threads.pod" ], "doc/html/man7/openssl_user_macros.html" => [ "doc/man7/openssl_user_macros.pod" ], + "doc/html/man7/ossl-guide-introduction.html" => [ + "doc/man7/ossl-guide-introduction.pod" + ], + "doc/html/man7/ossl-guide-libcrypto-introduction.html" => [ + "doc/man7/ossl-guide-libcrypto-introduction.pod" + ], + "doc/html/man7/ossl-guide-libraries-introduction.html" => [ + "doc/man7/ossl-guide-libraries-introduction.pod" + ], + "doc/html/man7/ossl-guide-libssl-introduction.html" => [ + "doc/man7/ossl-guide-libssl-introduction.pod" + ], + "doc/html/man7/ossl-guide-migration.html" => [ + "doc/man7/ossl-guide-migration.pod" + ], + "doc/html/man7/ossl-guide-quic-client-block.html" => [ + "doc/man7/ossl-guide-quic-client-block.pod" + ], + "doc/html/man7/ossl-guide-quic-client-non-block.html" => [ + "doc/man7/ossl-guide-quic-client-non-block.pod" + ], + "doc/html/man7/ossl-guide-quic-introduction.html" => [ + "doc/man7/ossl-guide-quic-introduction.pod" + ], + "doc/html/man7/ossl-guide-quic-multi-stream.html" => [ + "doc/man7/ossl-guide-quic-multi-stream.pod" + ], + "doc/html/man7/ossl-guide-quic-server-block.html" => [ + "doc/man7/ossl-guide-quic-server-block.pod" + ], + "doc/html/man7/ossl-guide-quic-server-non-block.html" => [ + "doc/man7/ossl-guide-quic-server-non-block.pod" + ], + "doc/html/man7/ossl-guide-tls-client-block.html" => [ + "doc/man7/ossl-guide-tls-client-block.pod" + ], + "doc/html/man7/ossl-guide-tls-client-non-block.html" => [ + "doc/man7/ossl-guide-tls-client-non-block.pod" + ], + "doc/html/man7/ossl-guide-tls-introduction.html" => [ + "doc/man7/ossl-guide-tls-introduction.pod" + ], + "doc/html/man7/ossl-guide-tls-server-block.html" => [ + "doc/man7/ossl-guide-tls-server-block.pod" + ], "doc/html/man7/ossl_store-file.html" => [ "doc/man7/ossl_store-file.pod" ], @@ -4326,6 +4987,9 @@ our %unified_info = ( "doc/html/man7/provider-signature.html" => [ "doc/man7/provider-signature.pod" ], + "doc/html/man7/provider-skeymgmt.html" => [ + "doc/man7/provider-skeymgmt.pod" + ], "doc/html/man7/provider-storemgmt.html" => [ "doc/man7/provider-storemgmt.pod" ], @@ -4335,9 +4999,6 @@ our %unified_info = ( "doc/html/man7/proxy-certificates.html" => [ "doc/man7/proxy-certificates.pod" ], - "doc/html/man7/ssl.html" => [ - "doc/man7/ssl.pod" - ], "doc/html/man7/x509.html" => [ "doc/man7/x509.pod" ], @@ -4485,6 +5146,9 @@ our %unified_info = ( "doc/man/man1/openssl-sess_id.1" => [ "doc/man1/openssl-sess_id.pod" ], + "doc/man/man1/openssl-skeyutl.1" => [ + "doc/man1/openssl-skeyutl.pod" + ], "doc/man/man1/openssl-smime.1" => [ "doc/man1/openssl-smime.pod" ], @@ -4626,6 +5290,9 @@ our %unified_info = ( "doc/man/man3/BIO_get_ex_new_index.3" => [ "doc/man3/BIO_get_ex_new_index.pod" ], + "doc/man/man3/BIO_get_rpoll_descriptor.3" => [ + "doc/man3/BIO_get_rpoll_descriptor.pod" + ], "doc/man/man3/BIO_meth_new.3" => [ "doc/man3/BIO_meth_new.pod" ], @@ -4662,6 +5329,9 @@ our %unified_info = ( "doc/man/man3/BIO_s_datagram.3" => [ "doc/man3/BIO_s_datagram.pod" ], + "doc/man/man3/BIO_s_dgram_pair.3" => [ + "doc/man3/BIO_s_dgram_pair.pod" + ], "doc/man/man3/BIO_s_fd.3" => [ "doc/man3/BIO_s_fd.pod" ], @@ -4677,6 +5347,9 @@ our %unified_info = ( "doc/man/man3/BIO_s_socket.3" => [ "doc/man3/BIO_s_socket.pod" ], + "doc/man/man3/BIO_sendmmsg.3" => [ + "doc/man3/BIO_sendmmsg.pod" + ], "doc/man/man3/BIO_set_callback.3" => [ "doc/man3/BIO_set_callback.pod" ], @@ -4749,6 +5422,9 @@ our %unified_info = ( "doc/man/man3/BUF_MEM_new.3" => [ "doc/man3/BUF_MEM_new.pod" ], + "doc/man/man3/CMAC_CTX.3" => [ + "doc/man3/CMAC_CTX.pod" + ], "doc/man/man3/CMS_EncryptedData_decrypt.3" => [ "doc/man3/CMS_EncryptedData_decrypt.pod" ], @@ -4815,6 +5491,9 @@ our %unified_info = ( "doc/man/man3/CMS_verify_receipt.3" => [ "doc/man3/CMS_verify_receipt.pod" ], + "doc/man/man3/COMP_CTX_new.3" => [ + "doc/man3/COMP_CTX_new.pod" + ], "doc/man/man3/CONF_modules_free.3" => [ "doc/man3/CONF_modules_free.pod" ], @@ -4914,6 +5593,12 @@ our %unified_info = ( "doc/man/man3/DTLS_set_timer_cb.3" => [ "doc/man3/DTLS_set_timer_cb.pod" ], + "doc/man/man3/DTLSv1_get_timeout.3" => [ + "doc/man3/DTLSv1_get_timeout.pod" + ], + "doc/man/man3/DTLSv1_handle_timeout.3" => [ + "doc/man3/DTLSv1_handle_timeout.pod" + ], "doc/man/man3/DTLSv1_listen.3" => [ "doc/man3/DTLSv1_listen.pod" ], @@ -5052,6 +5737,9 @@ our %unified_info = ( "doc/man/man3/EVP_PKEY_CTX_get0_pkey.3" => [ "doc/man3/EVP_PKEY_CTX_get0_pkey.pod" ], + "doc/man/man3/EVP_PKEY_CTX_get_algor.3" => [ + "doc/man3/EVP_PKEY_CTX_get_algor.pod" + ], "doc/man/man3/EVP_PKEY_CTX_new.3" => [ "doc/man3/EVP_PKEY_CTX_new.pod" ], @@ -5169,6 +5857,12 @@ our %unified_info = ( "doc/man/man3/EVP_SIGNATURE.3" => [ "doc/man3/EVP_SIGNATURE.pod" ], + "doc/man/man3/EVP_SKEY.3" => [ + "doc/man3/EVP_SKEY.pod" + ], + "doc/man/man3/EVP_SKEYMGMT.3" => [ + "doc/man3/EVP_SKEYMGMT.pod" + ], "doc/man/man3/EVP_SealInit.3" => [ "doc/man3/EVP_SealInit.pod" ], @@ -5256,6 +5950,9 @@ our %unified_info = ( "doc/man/man3/EVP_whirlpool.3" => [ "doc/man3/EVP_whirlpool.pod" ], + "doc/man/man3/GENERAL_NAME.3" => [ + "doc/man3/GENERAL_NAME.pod" + ], "doc/man/man3/HMAC.3" => [ "doc/man3/HMAC.pod" ], @@ -5328,9 +6025,15 @@ our %unified_info = ( "doc/man/man3/OPENSSL_load_builtin_modules.3" => [ "doc/man3/OPENSSL_load_builtin_modules.pod" ], + "doc/man/man3/OPENSSL_load_u16_le.3" => [ + "doc/man3/OPENSSL_load_u16_le.pod" + ], "doc/man/man3/OPENSSL_malloc.3" => [ "doc/man3/OPENSSL_malloc.pod" ], + "doc/man/man3/OPENSSL_riscvcap.3" => [ + "doc/man3/OPENSSL_riscvcap.pod" + ], "doc/man/man3/OPENSSL_s390xcap.3" => [ "doc/man3/OPENSSL_s390xcap.pod" ], @@ -5346,12 +6049,18 @@ our %unified_info = ( "doc/man/man3/OSSL_CALLBACK.3" => [ "doc/man3/OSSL_CALLBACK.pod" ], + "doc/man/man3/OSSL_CMP_ATAV_set0.3" => [ + "doc/man3/OSSL_CMP_ATAV_set0.pod" + ], "doc/man/man3/OSSL_CMP_CTX_new.3" => [ "doc/man3/OSSL_CMP_CTX_new.pod" ], "doc/man/man3/OSSL_CMP_HDR_get0_transactionID.3" => [ "doc/man3/OSSL_CMP_HDR_get0_transactionID.pod" ], + "doc/man/man3/OSSL_CMP_ITAV_new_caCerts.3" => [ + "doc/man3/OSSL_CMP_ITAV_new_caCerts.pod" + ], "doc/man/man3/OSSL_CMP_ITAV_set0.3" => [ "doc/man3/OSSL_CMP_ITAV_set0.pod" ], @@ -5421,9 +6130,18 @@ our %unified_info = ( "doc/man/man3/OSSL_ENCODER_to_bio.3" => [ "doc/man3/OSSL_ENCODER_to_bio.pod" ], + "doc/man/man3/OSSL_ERR_STATE_save.3" => [ + "doc/man3/OSSL_ERR_STATE_save.pod" + ], "doc/man/man3/OSSL_ESS_check_signing_certs.3" => [ "doc/man3/OSSL_ESS_check_signing_certs.pod" ], + "doc/man/man3/OSSL_GENERAL_NAMES_print.3" => [ + "doc/man3/OSSL_GENERAL_NAMES_print.pod" + ], + "doc/man/man3/OSSL_HPKE_CTX_new.3" => [ + "doc/man3/OSSL_HPKE_CTX_new.pod" + ], "doc/man/man3/OSSL_HTTP_REQ_CTX.3" => [ "doc/man3/OSSL_HTTP_REQ_CTX.pod" ], @@ -5433,12 +6151,24 @@ our %unified_info = ( "doc/man/man3/OSSL_HTTP_transfer.3" => [ "doc/man3/OSSL_HTTP_transfer.pod" ], + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX.3" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX.pod" + ], + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX_print.3" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX_print.pod" + ], + "doc/man/man3/OSSL_INDICATOR_set_callback.3" => [ + "doc/man3/OSSL_INDICATOR_set_callback.pod" + ], "doc/man/man3/OSSL_ITEM.3" => [ "doc/man3/OSSL_ITEM.pod" ], "doc/man/man3/OSSL_LIB_CTX.3" => [ "doc/man3/OSSL_LIB_CTX.pod" ], + "doc/man/man3/OSSL_LIB_CTX_set_conf_diagnostics.3" => [ + "doc/man3/OSSL_LIB_CTX_set_conf_diagnostics.pod" + ], "doc/man/man3/OSSL_PARAM.3" => [ "doc/man3/OSSL_PARAM.pod" ], @@ -5454,9 +6184,15 @@ our %unified_info = ( "doc/man/man3/OSSL_PARAM_int.3" => [ "doc/man3/OSSL_PARAM_int.pod" ], + "doc/man/man3/OSSL_PARAM_print_to_bio.3" => [ + "doc/man3/OSSL_PARAM_print_to_bio.pod" + ], "doc/man/man3/OSSL_PROVIDER.3" => [ "doc/man3/OSSL_PROVIDER.pod" ], + "doc/man/man3/OSSL_QUIC_client_method.3" => [ + "doc/man3/OSSL_QUIC_client_method.pod" + ], "doc/man/man3/OSSL_SELF_TEST_new.3" => [ "doc/man3/OSSL_SELF_TEST_new.pod" ], @@ -5481,6 +6217,9 @@ our %unified_info = ( "doc/man/man3/OSSL_STORE_open.3" => [ "doc/man3/OSSL_STORE_open.pod" ], + "doc/man/man3/OSSL_sleep.3" => [ + "doc/man3/OSSL_sleep.pod" + ], "doc/man/man3/OSSL_trace_enabled.3" => [ "doc/man3/OSSL_trace_enabled.pod" ], @@ -5496,6 +6235,9 @@ our %unified_info = ( "doc/man/man3/OpenSSL_version.3" => [ "doc/man3/OpenSSL_version.pod" ], + "doc/man/man3/PBMAC1_get1_pbkdf2_param.3" => [ + "doc/man3/PBMAC1_get1_pbkdf2_param.pod" + ], "doc/man/man3/PEM_X509_INFO_read_bio_ex.3" => [ "doc/man3/PEM_X509_INFO_read_bio_ex.pod" ], @@ -5532,6 +6274,9 @@ our %unified_info = ( "doc/man/man3/PKCS12_SAFEBAG_get1_cert.3" => [ "doc/man3/PKCS12_SAFEBAG_get1_cert.pod" ], + "doc/man/man3/PKCS12_SAFEBAG_set0_attrs.3" => [ + "doc/man3/PKCS12_SAFEBAG_set0_attrs.pod" + ], "doc/man/man3/PKCS12_add1_attr_by_NID.3" => [ "doc/man3/PKCS12_add1_attr_by_NID.pod" ], @@ -5805,6 +6550,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set0_CA_list.3" => [ "doc/man3/SSL_CTX_set0_CA_list.pod" ], + "doc/man/man3/SSL_CTX_set1_cert_comp_preference.3" => [ + "doc/man3/SSL_CTX_set1_cert_comp_preference.pod" + ], "doc/man/man3/SSL_CTX_set1_curves.3" => [ "doc/man3/SSL_CTX_set1_curves.pod" ], @@ -5844,6 +6592,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_default_passwd_cb.3" => [ "doc/man3/SSL_CTX_set_default_passwd_cb.pod" ], + "doc/man/man3/SSL_CTX_set_domain_flags.3" => [ + "doc/man3/SSL_CTX_set_domain_flags.pod" + ], "doc/man/man3/SSL_CTX_set_generate_session_id.3" => [ "doc/man3/SSL_CTX_set_generate_session_id.pod" ], @@ -5865,6 +6616,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_msg_callback.3" => [ "doc/man3/SSL_CTX_set_msg_callback.pod" ], + "doc/man/man3/SSL_CTX_set_new_pending_conn_cb.3" => [ + "doc/man3/SSL_CTX_set_new_pending_conn_cb.pod" + ], "doc/man/man3/SSL_CTX_set_num_tickets.3" => [ "doc/man3/SSL_CTX_set_num_tickets.pod" ], @@ -5979,6 +6733,9 @@ our %unified_info = ( "doc/man/man3/SSL_accept.3" => [ "doc/man3/SSL_accept.pod" ], + "doc/man/man3/SSL_accept_stream.3" => [ + "doc/man3/SSL_accept_stream.pod" + ], "doc/man/man3/SSL_alert_type_string.3" => [ "doc/man3/SSL_alert_type_string.pod" ], @@ -6006,9 +6763,21 @@ our %unified_info = ( "doc/man/man3/SSL_free.3" => [ "doc/man3/SSL_free.pod" ], + "doc/man/man3/SSL_get0_connection.3" => [ + "doc/man3/SSL_get0_connection.pod" + ], + "doc/man/man3/SSL_get0_group_name.3" => [ + "doc/man3/SSL_get0_group_name.pod" + ], + "doc/man/man3/SSL_get0_peer_rpk.3" => [ + "doc/man3/SSL_get0_peer_rpk.pod" + ], "doc/man/man3/SSL_get0_peer_scts.3" => [ "doc/man3/SSL_get0_peer_scts.pod" ], + "doc/man/man3/SSL_get1_builtin_sigalgs.3" => [ + "doc/man3/SSL_get1_builtin_sigalgs.pod" + ], "doc/man/man3/SSL_get_SSL_CTX.3" => [ "doc/man3/SSL_get_SSL_CTX.pod" ], @@ -6024,6 +6793,9 @@ our %unified_info = ( "doc/man/man3/SSL_get_client_random.3" => [ "doc/man3/SSL_get_client_random.pod" ], + "doc/man/man3/SSL_get_conn_close_info.3" => [ + "doc/man3/SSL_get_conn_close_info.pod" + ], "doc/man/man3/SSL_get_current_cipher.3" => [ "doc/man3/SSL_get_current_cipher.pod" ], @@ -6033,12 +6805,18 @@ our %unified_info = ( "doc/man/man3/SSL_get_error.3" => [ "doc/man3/SSL_get_error.pod" ], + "doc/man/man3/SSL_get_event_timeout.3" => [ + "doc/man3/SSL_get_event_timeout.pod" + ], "doc/man/man3/SSL_get_extms_support.3" => [ "doc/man3/SSL_get_extms_support.pod" ], "doc/man/man3/SSL_get_fd.3" => [ "doc/man3/SSL_get_fd.pod" ], + "doc/man/man3/SSL_get_handshake_rtt.3" => [ + "doc/man3/SSL_get_handshake_rtt.pod" + ], "doc/man/man3/SSL_get_peer_cert_chain.3" => [ "doc/man3/SSL_get_peer_cert_chain.pod" ], @@ -6057,12 +6835,24 @@ our %unified_info = ( "doc/man/man3/SSL_get_rbio.3" => [ "doc/man3/SSL_get_rbio.pod" ], + "doc/man/man3/SSL_get_rpoll_descriptor.3" => [ + "doc/man3/SSL_get_rpoll_descriptor.pod" + ], "doc/man/man3/SSL_get_session.3" => [ "doc/man3/SSL_get_session.pod" ], "doc/man/man3/SSL_get_shared_sigalgs.3" => [ "doc/man3/SSL_get_shared_sigalgs.pod" ], + "doc/man/man3/SSL_get_stream_id.3" => [ + "doc/man3/SSL_get_stream_id.pod" + ], + "doc/man/man3/SSL_get_stream_read_state.3" => [ + "doc/man3/SSL_get_stream_read_state.pod" + ], + "doc/man/man3/SSL_get_value_uint.3" => [ + "doc/man3/SSL_get_value_uint.pod" + ], "doc/man/man3/SSL_get_verify_result.3" => [ "doc/man3/SSL_get_verify_result.pod" ], @@ -6072,9 +6862,15 @@ our %unified_info = ( "doc/man/man3/SSL_group_to_name.3" => [ "doc/man3/SSL_group_to_name.pod" ], + "doc/man/man3/SSL_handle_events.3" => [ + "doc/man3/SSL_handle_events.pod" + ], "doc/man/man3/SSL_in_init.3" => [ "doc/man3/SSL_in_init.pod" ], + "doc/man/man3/SSL_inject_net_dgram.3" => [ + "doc/man3/SSL_inject_net_dgram.pod" + ], "doc/man/man3/SSL_key_update.3" => [ "doc/man3/SSL_key_update.pod" ], @@ -6087,9 +6883,21 @@ our %unified_info = ( "doc/man/man3/SSL_new.3" => [ "doc/man3/SSL_new.pod" ], + "doc/man/man3/SSL_new_domain.3" => [ + "doc/man3/SSL_new_domain.pod" + ], + "doc/man/man3/SSL_new_listener.3" => [ + "doc/man3/SSL_new_listener.pod" + ], + "doc/man/man3/SSL_new_stream.3" => [ + "doc/man3/SSL_new_stream.pod" + ], "doc/man/man3/SSL_pending.3" => [ "doc/man3/SSL_pending.pod" ], + "doc/man/man3/SSL_poll.3" => [ + "doc/man3/SSL_poll.pod" + ], "doc/man/man3/SSL_read.3" => [ "doc/man3/SSL_read.pod" ], @@ -6105,24 +6913,45 @@ our %unified_info = ( "doc/man/man3/SSL_set1_host.3" => [ "doc/man3/SSL_set1_host.pod" ], + "doc/man/man3/SSL_set1_initial_peer_addr.3" => [ + "doc/man3/SSL_set1_initial_peer_addr.pod" + ], + "doc/man/man3/SSL_set1_server_cert_type.3" => [ + "doc/man3/SSL_set1_server_cert_type.pod" + ], "doc/man/man3/SSL_set_async_callback.3" => [ "doc/man3/SSL_set_async_callback.pod" ], "doc/man/man3/SSL_set_bio.3" => [ "doc/man3/SSL_set_bio.pod" ], + "doc/man/man3/SSL_set_blocking_mode.3" => [ + "doc/man3/SSL_set_blocking_mode.pod" + ], "doc/man/man3/SSL_set_connect_state.3" => [ "doc/man3/SSL_set_connect_state.pod" ], + "doc/man/man3/SSL_set_default_stream_mode.3" => [ + "doc/man3/SSL_set_default_stream_mode.pod" + ], "doc/man/man3/SSL_set_fd.3" => [ "doc/man3/SSL_set_fd.pod" ], + "doc/man/man3/SSL_set_incoming_stream_policy.3" => [ + "doc/man3/SSL_set_incoming_stream_policy.pod" + ], + "doc/man/man3/SSL_set_quic_tls_cbs.3" => [ + "doc/man3/SSL_set_quic_tls_cbs.pod" + ], "doc/man/man3/SSL_set_retry_verify.3" => [ "doc/man3/SSL_set_retry_verify.pod" ], "doc/man/man3/SSL_set_session.3" => [ "doc/man3/SSL_set_session.pod" ], + "doc/man/man3/SSL_set_session_secret_cb.3" => [ + "doc/man3/SSL_set_session_secret_cb.pod" + ], "doc/man/man3/SSL_set_shutdown.3" => [ "doc/man3/SSL_set_shutdown.pod" ], @@ -6135,6 +6964,12 @@ our %unified_info = ( "doc/man/man3/SSL_state_string.3" => [ "doc/man3/SSL_state_string.pod" ], + "doc/man/man3/SSL_stream_conclude.3" => [ + "doc/man3/SSL_stream_conclude.pod" + ], + "doc/man/man3/SSL_stream_reset.3" => [ + "doc/man3/SSL_stream_reset.pod" + ], "doc/man/man3/SSL_want.3" => [ "doc/man3/SSL_want.pod" ], @@ -6144,8 +6979,8 @@ our %unified_info = ( "doc/man/man3/TS_RESP_CTX_new.3" => [ "doc/man3/TS_RESP_CTX_new.pod" ], - "doc/man/man3/TS_VERIFY_CTX_set_certs.3" => [ - "doc/man3/TS_VERIFY_CTX_set_certs.pod" + "doc/man/man3/TS_VERIFY_CTX.3" => [ + "doc/man3/TS_VERIFY_CTX.pod" ], "doc/man/man3/UI_STRING.3" => [ "doc/man3/UI_STRING.pod" @@ -6165,6 +7000,21 @@ our %unified_info = ( "doc/man/man3/X509V3_set_ctx.3" => [ "doc/man3/X509V3_set_ctx.pod" ], + "doc/man/man3/X509_ACERT_add1_attr.3" => [ + "doc/man3/X509_ACERT_add1_attr.pod" + ], + "doc/man/man3/X509_ACERT_add_attr_nconf.3" => [ + "doc/man3/X509_ACERT_add_attr_nconf.pod" + ], + "doc/man/man3/X509_ACERT_get0_holder_baseCertId.3" => [ + "doc/man3/X509_ACERT_get0_holder_baseCertId.pod" + ], + "doc/man/man3/X509_ACERT_get_attr.3" => [ + "doc/man3/X509_ACERT_get_attr.pod" + ], + "doc/man/man3/X509_ACERT_print_ex.3" => [ + "doc/man3/X509_ACERT_print_ex.pod" + ], "doc/man/man3/X509_ALGOR_dup.3" => [ "doc/man3/X509_ALGOR_dup.pod" ], @@ -6213,6 +7063,9 @@ our %unified_info = ( "doc/man/man3/X509_SIG_get0.3" => [ "doc/man3/X509_SIG_get0.pod" ], + "doc/man/man3/X509_STORE_CTX_get_by_subject.3" => [ + "doc/man3/X509_STORE_CTX_get_by_subject.pod" + ], "doc/man/man3/X509_STORE_CTX_get_error.3" => [ "doc/man3/X509_STORE_CTX_get_error.pod" ], @@ -6279,6 +7132,9 @@ our %unified_info = ( "doc/man/man3/X509_get0_uids.3" => [ "doc/man3/X509_get0_uids.pod" ], + "doc/man/man3/X509_get_default_cert_file.3" => [ + "doc/man3/X509_get_default_cert_file.pod" + ], "doc/man/man3/X509_get_extension_flags.3" => [ "doc/man3/X509_get_extension_flags.pod" ], @@ -6402,9 +7258,15 @@ our %unified_info = ( "doc/man/man7/EVP_CIPHER-SM4.7" => [ "doc/man7/EVP_CIPHER-SM4.pod" ], + "doc/man/man7/EVP_KDF-ARGON2.7" => [ + "doc/man7/EVP_KDF-ARGON2.pod" + ], "doc/man/man7/EVP_KDF-HKDF.7" => [ "doc/man7/EVP_KDF-HKDF.pod" ], + "doc/man/man7/EVP_KDF-HMAC-DRBG.7" => [ + "doc/man7/EVP_KDF-HMAC-DRBG.pod" + ], "doc/man/man7/EVP_KDF-KB.7" => [ "doc/man7/EVP_KDF-KB.pod" ], @@ -6420,6 +7282,9 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-PKCS12KDF.7" => [ "doc/man7/EVP_KDF-PKCS12KDF.pod" ], + "doc/man/man7/EVP_KDF-PVKKDF.7" => [ + "doc/man7/EVP_KDF-PVKKDF.pod" + ], "doc/man/man7/EVP_KDF-SCRYPT.7" => [ "doc/man7/EVP_KDF-SCRYPT.pod" ], @@ -6444,9 +7309,18 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-X963.7" => [ "doc/man7/EVP_KDF-X963.pod" ], + "doc/man/man7/EVP_KEM-EC.7" => [ + "doc/man7/EVP_KEM-EC.pod" + ], + "doc/man/man7/EVP_KEM-ML-KEM.7" => [ + "doc/man7/EVP_KEM-ML-KEM.pod" + ], "doc/man/man7/EVP_KEM-RSA.7" => [ "doc/man7/EVP_KEM-RSA.pod" ], + "doc/man/man7/EVP_KEM-X25519.7" => [ + "doc/man7/EVP_KEM-X25519.pod" + ], "doc/man/man7/EVP_KEYEXCH-DH.7" => [ "doc/man7/EVP_KEYEXCH-DH.pod" ], @@ -6480,6 +7354,9 @@ our %unified_info = ( "doc/man/man7/EVP_MD-BLAKE2.7" => [ "doc/man7/EVP_MD-BLAKE2.pod" ], + "doc/man/man7/EVP_MD-KECCAK.7" => [ + "doc/man7/EVP_MD-KECCAK.pod" + ], "doc/man/man7/EVP_MD-MD2.7" => [ "doc/man7/EVP_MD-MD2.pod" ], @@ -6537,15 +7414,27 @@ our %unified_info = ( "doc/man/man7/EVP_PKEY-HMAC.7" => [ "doc/man7/EVP_PKEY-HMAC.pod" ], + "doc/man/man7/EVP_PKEY-ML-DSA.7" => [ + "doc/man7/EVP_PKEY-ML-DSA.pod" + ], + "doc/man/man7/EVP_PKEY-ML-KEM.7" => [ + "doc/man7/EVP_PKEY-ML-KEM.pod" + ], "doc/man/man7/EVP_PKEY-RSA.7" => [ "doc/man7/EVP_PKEY-RSA.pod" ], + "doc/man/man7/EVP_PKEY-SLH-DSA.7" => [ + "doc/man7/EVP_PKEY-SLH-DSA.pod" + ], "doc/man/man7/EVP_PKEY-SM2.7" => [ "doc/man7/EVP_PKEY-SM2.pod" ], "doc/man/man7/EVP_PKEY-X25519.7" => [ "doc/man7/EVP_PKEY-X25519.pod" ], + "doc/man/man7/EVP_RAND-CRNG-TEST.7" => [ + "doc/man7/EVP_RAND-CRNG-TEST.pod" + ], "doc/man/man7/EVP_RAND-CTR-DRBG.7" => [ "doc/man7/EVP_RAND-CTR-DRBG.pod" ], @@ -6555,6 +7444,9 @@ our %unified_info = ( "doc/man/man7/EVP_RAND-HMAC-DRBG.7" => [ "doc/man7/EVP_RAND-HMAC-DRBG.pod" ], + "doc/man/man7/EVP_RAND-JITTER.7" => [ + "doc/man7/EVP_RAND-JITTER.pod" + ], "doc/man/man7/EVP_RAND-SEED-SRC.7" => [ "doc/man7/EVP_RAND-SEED-SRC.pod" ], @@ -6576,9 +7468,15 @@ our %unified_info = ( "doc/man/man7/EVP_SIGNATURE-HMAC.7" => [ "doc/man7/EVP_SIGNATURE-HMAC.pod" ], + "doc/man/man7/EVP_SIGNATURE-ML-DSA.7" => [ + "doc/man7/EVP_SIGNATURE-ML-DSA.pod" + ], "doc/man/man7/EVP_SIGNATURE-RSA.7" => [ "doc/man7/EVP_SIGNATURE-RSA.pod" ], + "doc/man/man7/EVP_SIGNATURE-SLH-DSA.7" => [ + "doc/man7/EVP_SIGNATURE-SLH-DSA.pod" + ], "doc/man/man7/OSSL_PROVIDER-FIPS.7" => [ "doc/man7/OSSL_PROVIDER-FIPS.pod" ], @@ -6594,6 +7492,9 @@ our %unified_info = ( "doc/man/man7/OSSL_PROVIDER-null.7" => [ "doc/man7/OSSL_PROVIDER-null.pod" ], + "doc/man/man7/OSSL_STORE-winstore.7" => [ + "doc/man7/OSSL_STORE-winstore.pod" + ], "doc/man/man7/RAND.7" => [ "doc/man7/RAND.pod" ], @@ -6606,9 +7507,6 @@ our %unified_info = ( "doc/man/man7/bio.7" => [ "doc/man7/bio.pod" ], - "doc/man/man7/crypto.7" => [ - "doc/man7/crypto.pod" - ], "doc/man/man7/ct.7" => [ "doc/man7/ct.pod" ], @@ -6639,9 +7537,6 @@ our %unified_info = ( "doc/man/man7/life_cycle-rand.7" => [ "doc/man7/life_cycle-rand.pod" ], - "doc/man/man7/migration_guide.7" => [ - "doc/man7/migration_guide.pod" - ], "doc/man/man7/openssl-core.h.7" => [ "doc/man7/openssl-core.h.pod" ], @@ -6657,12 +7552,66 @@ our %unified_info = ( "doc/man/man7/openssl-glossary.7" => [ "doc/man7/openssl-glossary.pod" ], + "doc/man/man7/openssl-qlog.7" => [ + "doc/man7/openssl-qlog.pod" + ], + "doc/man/man7/openssl-quic-concurrency.7" => [ + "doc/man7/openssl-quic-concurrency.pod" + ], + "doc/man/man7/openssl-quic.7" => [ + "doc/man7/openssl-quic.pod" + ], "doc/man/man7/openssl-threads.7" => [ "doc/man7/openssl-threads.pod" ], "doc/man/man7/openssl_user_macros.7" => [ "doc/man7/openssl_user_macros.pod" ], + "doc/man/man7/ossl-guide-introduction.7" => [ + "doc/man7/ossl-guide-introduction.pod" + ], + "doc/man/man7/ossl-guide-libcrypto-introduction.7" => [ + "doc/man7/ossl-guide-libcrypto-introduction.pod" + ], + "doc/man/man7/ossl-guide-libraries-introduction.7" => [ + "doc/man7/ossl-guide-libraries-introduction.pod" + ], + "doc/man/man7/ossl-guide-libssl-introduction.7" => [ + "doc/man7/ossl-guide-libssl-introduction.pod" + ], + "doc/man/man7/ossl-guide-migration.7" => [ + "doc/man7/ossl-guide-migration.pod" + ], + "doc/man/man7/ossl-guide-quic-client-block.7" => [ + "doc/man7/ossl-guide-quic-client-block.pod" + ], + "doc/man/man7/ossl-guide-quic-client-non-block.7" => [ + "doc/man7/ossl-guide-quic-client-non-block.pod" + ], + "doc/man/man7/ossl-guide-quic-introduction.7" => [ + "doc/man7/ossl-guide-quic-introduction.pod" + ], + "doc/man/man7/ossl-guide-quic-multi-stream.7" => [ + "doc/man7/ossl-guide-quic-multi-stream.pod" + ], + "doc/man/man7/ossl-guide-quic-server-block.7" => [ + "doc/man7/ossl-guide-quic-server-block.pod" + ], + "doc/man/man7/ossl-guide-quic-server-non-block.7" => [ + "doc/man7/ossl-guide-quic-server-non-block.pod" + ], + "doc/man/man7/ossl-guide-tls-client-block.7" => [ + "doc/man7/ossl-guide-tls-client-block.pod" + ], + "doc/man/man7/ossl-guide-tls-client-non-block.7" => [ + "doc/man7/ossl-guide-tls-client-non-block.pod" + ], + "doc/man/man7/ossl-guide-tls-introduction.7" => [ + "doc/man7/ossl-guide-tls-introduction.pod" + ], + "doc/man/man7/ossl-guide-tls-server-block.7" => [ + "doc/man7/ossl-guide-tls-server-block.pod" + ], "doc/man/man7/ossl_store-file.7" => [ "doc/man7/ossl_store-file.pod" ], @@ -6717,6 +7666,9 @@ our %unified_info = ( "doc/man/man7/provider-signature.7" => [ "doc/man7/provider-signature.pod" ], + "doc/man/man7/provider-skeymgmt.7" => [ + "doc/man7/provider-skeymgmt.pod" + ], "doc/man/man7/provider-storemgmt.7" => [ "doc/man7/provider-storemgmt.pod" ], @@ -6726,9 +7678,6 @@ our %unified_info = ( "doc/man/man7/proxy-certificates.7" => [ "doc/man7/proxy-certificates.pod" ], - "doc/man/man7/ssl.7" => [ - "doc/man7/ssl.pod" - ], "doc/man/man7/x509.7" => [ "doc/man7/x509.pod" ], @@ -6908,6 +7857,10 @@ our %unified_info = ( "doc/man1/openssl-sess_id.pod.in", "doc/perlvars.pm" ], + "doc/man1/openssl-skeyutl.pod" => [ + "doc/man1/openssl-skeyutl.pod.in", + "doc/perlvars.pm" + ], "doc/man1/openssl-smime.pod" => [ "doc/man1/openssl-smime.pod.in", "doc/perlvars.pm" @@ -6947,6 +7900,27 @@ our %unified_info = ( "doc/man7/openssl_user_macros.pod" => [ "doc/man7/openssl_user_macros.pod.in" ], + "exporters/OpenSSLConfig.cmake" => [ + "installdata.pm" + ], + "exporters/OpenSSLConfigVersion.cmake" => [ + "exporters/OpenSSLConfig.cmake", + "installdata.pm" + ], + "exporters/libcrypto.pc" => [ + "installdata.pm" + ], + "exporters/libssl.pc" => [ + "installdata.pm" + ], + "exporters/openssl.pc" => [ + "exporters/libcrypto.pc", + "exporters/libssl.pc", + "installdata.pm" + ], + "fuzz/acert-test" => [ + "libcrypto" + ], "fuzz/asn1-test" => [ "libcrypto", "libssl" @@ -6979,17 +7953,85 @@ our %unified_info = ( "fuzz/ct-test" => [ "libcrypto" ], + "fuzz/decoder-test" => [ + "libcrypto" + ], + "fuzz/dtlsclient-test" => [ + "libcrypto", + "libssl" + ], + "fuzz/dtlsserver-test" => [ + "libcrypto", + "libssl" + ], + "fuzz/hashtable-test" => [ + "libcrypto.a" + ], + "fuzz/ml-dsa-test" => [ + "libcrypto.a" + ], + "fuzz/ml-kem-test" => [ + "libcrypto.a" + ], + "fuzz/pem-test" => [ + "libcrypto.a" + ], + "fuzz/provider-test" => [ + "libcrypto" + ], + "fuzz/punycode-test" => [ + "libcrypto.a" + ], + "fuzz/quic-client-test" => [ + "libcrypto.a", + "libssl.a" + ], + "fuzz/quic-lcidm-test" => [ + "libcrypto.a", + "libssl.a" + ], + "fuzz/quic-rcidm-test" => [ + "libcrypto.a", + "libssl.a" + ], + "fuzz/quic-server-test" => [ + "libcrypto.a", + "libssl.a" + ], + "fuzz/quic-srtm-test" => [ + "libcrypto.a", + "libssl.a" + ], "fuzz/server-test" => [ "libcrypto", "libssl" ], + "fuzz/slh-dsa-test" => [ + "libcrypto.a" + ], + "fuzz/smime-test" => [ + "libcrypto", + "libssl" + ], + "fuzz/v3name-test" => [ + "libcrypto.a" + ], "fuzz/x509-test" => [ "libcrypto" ], + "include/internal/param_names.h" => [ + "util/perl|OpenSSL/paramnames.pm" + ], + "include/openssl/core_names.h" => [ + "util/perl|OpenSSL/paramnames.pm" + ], "libcrypto.ld" => [ "configdata.pm", "util/perl/OpenSSL/Ordinals.pm" ], + "libcrypto.pc" => [ + "builddata.pm" + ], "libssl" => [ "libcrypto" ], @@ -6997,6 +8039,14 @@ our %unified_info = ( "configdata.pm", "util/perl/OpenSSL/Ordinals.pm" ], + "libssl.pc" => [ + "builddata.pm" + ], + "openssl.pc" => [ + "builddata.pm", + "libcrypto.pc", + "libssl.pc" + ], "providers/common/der/der_digests_gen.c" => [ "providers/common/der/DIGESTS.asn1", "providers/common/der/NIST.asn1", @@ -7014,11 +8064,19 @@ our %unified_info = ( "providers/common/der/ECX.asn1", "providers/common/der/oids_to_c.pm" ], + "providers/common/der/der_ml_dsa_gen.c" => [ + "providers/common/der/ML_DSA.asn1", + "providers/common/der/oids_to_c.pm" + ], "providers/common/der/der_rsa_gen.c" => [ "providers/common/der/NIST.asn1", "providers/common/der/RSA.asn1", "providers/common/der/oids_to_c.pm" ], + "providers/common/der/der_slh_dsa_gen.c" => [ + "providers/common/der/SLH_DSA.asn1", + "providers/common/der/oids_to_c.pm" + ], "providers/common/der/der_sm2_gen.c" => [ "providers/common/der/SM2.asn1", "providers/common/der/oids_to_c.pm" @@ -7058,6 +8116,12 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ecx_key.o" => [ "providers/common/include/prov/der_ecx.h" ], + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o" => [ + "providers/common/include/prov/der_ml_dsa.h" + ], + "providers/common/der/libcommon-lib-der_ml_dsa_key.o" => [ + "providers/common/include/prov/der_ml_dsa.h" + ], "providers/common/der/libcommon-lib-der_rsa_gen.o" => [ "providers/common/include/prov/der_rsa.h" ], @@ -7065,6 +8129,12 @@ our %unified_info = ( "providers/common/include/prov/der_digests.h", "providers/common/include/prov/der_rsa.h" ], + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o" => [ + "providers/common/include/prov/der_slh_dsa.h" + ], + "providers/common/der/libcommon-lib-der_slh_dsa_key.o" => [ + "providers/common/include/prov/der_slh_dsa.h" + ], "providers/common/der/libcommon-lib-der_wrap_gen.o" => [ "providers/common/include/prov/der_wrap.h" ], @@ -7104,11 +8174,19 @@ our %unified_info = ( "providers/common/der/ECX.asn1", "providers/common/der/oids_to_c.pm" ], + "providers/common/include/prov/der_ml_dsa.h" => [ + "providers/common/der/ML_DSA.asn1", + "providers/common/der/oids_to_c.pm" + ], "providers/common/include/prov/der_rsa.h" => [ "providers/common/der/NIST.asn1", "providers/common/der/RSA.asn1", "providers/common/der/oids_to_c.pm" ], + "providers/common/include/prov/der_slh_dsa.h" => [ + "providers/common/der/SLH_DSA.asn1", + "providers/common/der/oids_to_c.pm" + ], "providers/common/include/prov/der_sm2.h" => [ "providers/common/der/SM2.asn1", "providers/common/der/oids_to_c.pm" @@ -7141,9 +8219,15 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-eddsa_sig.o" => [ "providers/common/include/prov/der_ecx.h" ], + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o" => [ + "providers/common/include/prov/der_ml_dsa.h" + ], "providers/implementations/signature/libdefault-lib-rsa_sig.o" => [ "providers/common/include/prov/der_rsa.h" ], + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o" => [ + "providers/common/include/prov/der_slh_dsa.h" + ], "providers/implementations/signature/libdefault-lib-sm2_sig.o" => [ "providers/common/include/prov/der_sm2.h" ], @@ -7156,9 +8240,15 @@ our %unified_info = ( "providers/implementations/signature/libfips-lib-eddsa_sig.o" => [ "providers/common/include/prov/der_ecx.h" ], + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o" => [ + "providers/common/include/prov/der_ml_dsa.h" + ], "providers/implementations/signature/libfips-lib-rsa_sig.o" => [ "providers/common/include/prov/der_rsa.h" ], + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o" => [ + "providers/common/include/prov/der_slh_dsa.h" + ], "providers/legacy" => [ "libcrypto", "providers/liblegacy.a" @@ -7236,6 +8326,14 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/bio_addr_test" => [ + "libcrypto", + "test/libtestutil.a" + ], + "test/bio_base64_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/bio_callback_test" => [ "libcrypto", "test/libtestutil.a" @@ -7244,6 +8342,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/bio_dgram_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/bio_enc_test" => [ "libcrypto", "test/libtestutil.a" @@ -7252,6 +8354,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/bio_meth_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/bio_prefix_text" => [ "libcrypto", "test/libtestutil.a" @@ -7264,6 +8370,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/bio_tfo_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/bioprinttest" => [ "libcrypto", "test/libtestutil.a" @@ -7276,6 +8386,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/build_wincrypt_test" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_aes" => [ "libcrypto", "libssl" @@ -7296,6 +8410,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_byteorder" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_camellia" => [ "libcrypto", "libssl" @@ -7328,10 +8446,6 @@ our %unified_info = ( "libcrypto", "libssl" ], - "test/buildtest_c_core_names" => [ - "libcrypto", - "libssl" - ], "test/buildtest_c_core_object" => [ "libcrypto", "libssl" @@ -7364,6 +8478,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_e_ostime" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_ebcdic" => [ "libcrypto", "libssl" @@ -7400,6 +8518,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_hpke" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_http" => [ "libcrypto", "libssl" @@ -7408,6 +8530,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_indicator" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_kdf" => [ "libcrypto", "libssl" @@ -7428,6 +8554,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_ml_kem" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_modes" => [ "libcrypto", "libssl" @@ -7468,6 +8598,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_quic" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_rand" => [ "libcrypto", "libssl" @@ -7524,6 +8658,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_thread" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_tls1" => [ "libcrypto", "libssl" @@ -7544,10 +8682,23 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/byteorder_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], + "test/ca_internals_test" => [ + "libssl", + "test/libtestutil.a" + ], "test/casttest" => [ "libcrypto", "test/libtestutil.a" ], + "test/cert_comp_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], "test/chacha_internal_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -7661,7 +8812,11 @@ our %unified_info = ( "libssl", "test/libtestutil.a" ], - "test/defltfips_test" => [ + "test/decoder_propq_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], + "test/defltfips_test" => [ "libcrypto", "test/libtestutil.a" ], @@ -7717,6 +8872,8 @@ our %unified_info = ( ], "test/endecode_test" => [ "libcrypto.a", + "providers/libcommon.a", + "providers/liblegacy.a", "test/libtestutil.a" ], "test/endecoder_legacy_test" => [ @@ -7760,6 +8917,10 @@ our %unified_info = ( "test/evp_pkey_ctx_new_from_name" => [ "libcrypto" ], + "test/evp_pkey_dhkem_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/evp_pkey_dparams_test" => [ "libcrypto", "test/libtestutil.a" @@ -7768,10 +8929,18 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/evp_skey_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/evp_test" => [ "libcrypto", "test/libtestutil.a" ], + "test/evp_xof_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/exdatatest" => [ "libcrypto", "test/libtestutil.a" @@ -7810,6 +8979,10 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/hpke_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/http_test" => [ "libcrypto", "test/libtestutil.a" @@ -7822,17 +8995,25 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/json_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], "test/keymgmt_internal_test" => [ "libcrypto.a", "test/libtestutil.a" ], "test/lhash_test" => [ - "libcrypto", + "libcrypto.a", "test/libtestutil.a" ], "test/libtestutil.a" => [ "libcrypto" ], + "test/list_test" => [ + "test/libtestutil.a" + ], "test/localetest" => [ "libcrypto", "test/libtestutil.a" @@ -7845,10 +9026,26 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/membio_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/memleaktest" => [ "libcrypto", "test/libtestutil.a" ], + "test/ml_dsa_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], + "test/ml_kem_evp_extra_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], + "test/ml_kem_internal_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/modes_internal_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -7873,6 +9070,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/pairwise_fail_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/param_build_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -7905,6 +9106,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/pkcs12_api_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/pkcs12_format_test" => [ "libcrypto", "test/libtestutil.a" @@ -7925,6 +9130,11 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/priority_queue_test" => [ + "libcrypto", + "libssl.a", + "test/libtestutil.a" + ], "test/property_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -7937,6 +9147,10 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/provider_default_search_path_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/provider_fallback_test" => [ "libcrypto", "test/libtestutil.a" @@ -7961,12 +9175,122 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/quic_ackm_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_cc_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_cfq_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_client_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_fc_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_fifd_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_lcidm_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_multistream_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_newcid_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_qlog_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_radix_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_rcidm_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_record_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_srt_gen_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_srtm_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_stream_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_tserver_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_txp_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_txpim_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_wire_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quicapitest" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quicfaultstest" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], "test/rand_status_test" => [ "libcrypto", "test/libtestutil.a" ], "test/rand_test" => [ - "libcrypto", + "libcrypto.a", "test/libtestutil.a" ], "test/rc2test" => [ @@ -7981,7 +9305,7 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], - "test/rdrand_sanitytest" => [ + "test/rdcpu_sanitytest" => [ "libcrypto.a", "test/libtestutil.a" ], @@ -7990,6 +9314,11 @@ our %unified_info = ( "libssl", "test/libtestutil.a" ], + "test/rpktest" => [ + "libcrypto", + "libssl", + "test/libtestutil.a" + ], "test/rsa_mp_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -8002,10 +9331,18 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], - "test/sanitytest" => [ + "test/rsa_x931_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], + "test/safe_math_test" => [ "libcrypto", "test/libtestutil.a" ], + "test/sanitytest" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/secmemtest" => [ "libcrypto", "test/libtestutil.a" @@ -8023,6 +9360,10 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/slh_dsa_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/sm2_internal_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -8052,6 +9393,11 @@ our %unified_info = ( "libssl", "test/libtestutil.a" ], + "test/ssl_handshake_rtt_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], "test/ssl_old_test" => [ "libcrypto.a", "libssl.a", @@ -8068,8 +9414,8 @@ our %unified_info = ( "test/libtestutil.a" ], "test/sslapitest" => [ - "libcrypto", - "libssl", + "libcrypto.a", + "libssl.a", "test/libtestutil.a" ], "test/sslbuffertest" => [ @@ -8086,6 +9432,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/strtoultest" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/sysdefaulttest" => [ "libcrypto", "libssl", @@ -8095,8 +9445,12 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/threadpool_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/threadstest" => [ - "libcrypto", + "libcrypto.a", "test/libtestutil.a" ], "test/threadstest_fips" => [ @@ -8107,6 +9461,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/time_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/tls13ccstest" => [ "libcrypto", "libssl", @@ -8117,6 +9475,11 @@ our %unified_info = ( "libssl.a", "test/libtestutil.a" ], + "test/tls13groupselection_test" => [ + "libcrypto", + "libssl", + "test/libtestutil.a" + ], "test/trace_api_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -8154,6 +9517,10 @@ our %unified_info = ( "libssl.a", "test/libtestutil.a" ], + "test/x509_acert_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/x509_check_cert_pkey_test" => [ "libcrypto", "test/libtestutil.a" @@ -8166,6 +9533,18 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/x509_load_cert_file_test" => [ + "libcrypto", + "test/libtestutil.a" + ], + "test/x509_req_test" => [ + "libcrypto", + "test/libtestutil.a" + ], + "test/x509_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/x509_time_test" => [ "libcrypto", "test/libtestutil.a" @@ -8180,9 +9559,13 @@ our %unified_info = ( }, "dirinfo" => { "apps" => { + "deps" => [ + "apps/ca_internals_test-bin-ca.o" + ], "products" => { "bin" => [ - "apps/openssl" + "apps/openssl", + "test/ca_internals_test" ], "script" => [ "apps/CA.pl", @@ -8193,6 +9576,14 @@ our %unified_info = ( "apps/lib" => { "deps" => [ "apps/lib/openssl-bin-cmp_mock_srv.o", + "apps/lib/ca_internals_test-bin-app_libctx.o", + "apps/lib/ca_internals_test-bin-app_provider.o", + "apps/lib/ca_internals_test-bin-app_rand.o", + "apps/lib/ca_internals_test-bin-app_x509.o", + "apps/lib/ca_internals_test-bin-apps.o", + "apps/lib/ca_internals_test-bin-apps_ui.o", + "apps/lib/ca_internals_test-bin-engine.o", + "apps/lib/ca_internals_test-bin-fmt.o", "apps/lib/cmp_client_test-bin-cmp_mock_srv.o", "apps/lib/uitest-bin-apps_ui.o", "apps/lib/libapps-lib-app_libctx.o", @@ -8201,12 +9592,14 @@ our %unified_info = ( "apps/lib/libapps-lib-app_rand.o", "apps/lib/libapps-lib-app_x509.o", "apps/lib/libapps-lib-apps.o", + "apps/lib/libapps-lib-apps_opt_printf.o", "apps/lib/libapps-lib-apps_ui.o", "apps/lib/libapps-lib-columns.o", "apps/lib/libapps-lib-engine.o", "apps/lib/libapps-lib-engine_loader.o", "apps/lib/libapps-lib-fmt.o", "apps/lib/libapps-lib-http_server.o", + "apps/lib/libapps-lib-log.o", "apps/lib/libapps-lib-names.o", "apps/lib/libapps-lib-opt.o", "apps/lib/libapps-lib-s_cb.o", @@ -8217,6 +9610,7 @@ our %unified_info = ( "products" => { "bin" => [ "apps/openssl", + "test/ca_internals_test", "test/cmp_client_test", "test/uitest" ], @@ -8228,8 +9622,12 @@ our %unified_info = ( }, "crypto" => { "deps" => [ + "crypto/asn1_time_test-bin-ctype.o", + "crypto/ca_internals_test-bin-ctype.o", + "crypto/packettest-bin-quic_vlint.o", "crypto/libcrypto-lib-asn1_dsa.o", "crypto/libcrypto-lib-bsearch.o", + "crypto/libcrypto-lib-comp_methods.o", "crypto/libcrypto-lib-context.o", "crypto/libcrypto-lib-core_algorithm.o", "crypto/libcrypto-lib-core_fetch.o", @@ -8239,10 +9637,13 @@ our %unified_info = ( "crypto/libcrypto-lib-cryptlib.o", "crypto/libcrypto-lib-ctype.o", "crypto/libcrypto-lib-cversion.o", + "crypto/libcrypto-lib-defaults.o", "crypto/libcrypto-lib-der_writer.o", + "crypto/libcrypto-lib-deterministic_nonce.o", "crypto/libcrypto-lib-ebcdic.o", "crypto/libcrypto-lib-ex_data.o", "crypto/libcrypto-lib-getenv.o", + "crypto/libcrypto-lib-indicator_core.o", "crypto/libcrypto-lib-info.o", "crypto/libcrypto-lib-init.o", "crypto/libcrypto-lib-initthread.o", @@ -8259,6 +9660,7 @@ our %unified_info = ( "crypto/libcrypto-lib-params.o", "crypto/libcrypto-lib-params_dup.o", "crypto/libcrypto-lib-params_from_text.o", + "crypto/libcrypto-lib-params_idx.o", "crypto/libcrypto-lib-passphrase.o", "crypto/libcrypto-lib-provider.o", "crypto/libcrypto-lib-provider_child.o", @@ -8266,12 +9668,16 @@ our %unified_info = ( "crypto/libcrypto-lib-provider_core.o", "crypto/libcrypto-lib-provider_predefined.o", "crypto/libcrypto-lib-punycode.o", + "crypto/libcrypto-lib-quic_vlint.o", "crypto/libcrypto-lib-self_test_core.o", + "crypto/libcrypto-lib-sleep.o", "crypto/libcrypto-lib-sparse_array.o", + "crypto/libcrypto-lib-ssl_err.o", "crypto/libcrypto-lib-threads_lib.o", "crypto/libcrypto-lib-threads_none.o", "crypto/libcrypto-lib-threads_pthread.o", "crypto/libcrypto-lib-threads_win.o", + "crypto/libcrypto-lib-time.o", "crypto/libcrypto-lib-trace.o", "crypto/libcrypto-lib-uid.o", "crypto/libcrypto-lib-x86cpuid.o", @@ -8294,6 +9700,7 @@ our %unified_info = ( "crypto/libfips-lib-params.o", "crypto/libfips-lib-params_dup.o", "crypto/libfips-lib-params_from_text.o", + "crypto/libfips-lib-params_idx.o", "crypto/libfips-lib-provider_core.o", "crypto/libfips-lib-provider_predefined.o", "crypto/libfips-lib-self_test_core.o", @@ -8302,9 +9709,15 @@ our %unified_info = ( "crypto/libfips-lib-threads_none.o", "crypto/libfips-lib-threads_pthread.o", "crypto/libfips-lib-threads_win.o", + "crypto/libfips-lib-time.o", "crypto/libfips-lib-x86cpuid.o" ], "products" => { + "bin" => [ + "test/asn1_time_test", + "test/ca_internals_test", + "test/packettest" + ], "lib" => [ "libcrypto", "providers/libfips.a" @@ -8347,6 +9760,8 @@ our %unified_info = ( }, "crypto/asn1" => { "deps" => [ + "crypto/asn1/asn1_time_test-bin-a_time.o", + "crypto/asn1/ca_internals_test-bin-a_time.o", "crypto/asn1/libcrypto-lib-a_bitstr.o", "crypto/asn1/libcrypto-lib-a_d2i_fp.o", "crypto/asn1/libcrypto-lib-a_digest.o", @@ -8413,6 +9828,10 @@ our %unified_info = ( "crypto/asn1/libcrypto-lib-x_val.o" ], "products" => { + "bin" => [ + "test/asn1_time_test", + "test/ca_internals_test" + ], "lib" => [ "libcrypto" ] @@ -8478,6 +9897,7 @@ our %unified_info = ( "crypto/bio/libcrypto-lib-bss_conn.o", "crypto/bio/libcrypto-lib-bss_core.o", "crypto/bio/libcrypto-lib-bss_dgram.o", + "crypto/bio/libcrypto-lib-bss_dgram_pair.o", "crypto/bio/libcrypto-lib-bss_fd.o", "crypto/bio/libcrypto-lib-bss_file.o", "crypto/bio/libcrypto-lib-bss_log.o", @@ -8638,6 +10058,7 @@ our %unified_info = ( "crypto/cmp/libcrypto-lib-cmp_client.o", "crypto/cmp/libcrypto-lib-cmp_ctx.o", "crypto/cmp/libcrypto-lib-cmp_err.o", + "crypto/cmp/libcrypto-lib-cmp_genm.o", "crypto/cmp/libcrypto-lib-cmp_hdr.o", "crypto/cmp/libcrypto-lib-cmp_http.o", "crypto/cmp/libcrypto-lib-cmp_msg.o", @@ -9009,7 +10430,9 @@ our %unified_info = ( "crypto/err/libcrypto-lib-err_all.o", "crypto/err/libcrypto-lib-err_all_legacy.o", "crypto/err/libcrypto-lib-err_blocks.o", - "crypto/err/libcrypto-lib-err_prn.o" + "crypto/err/libcrypto-lib-err_mark.o", + "crypto/err/libcrypto-lib-err_prn.o", + "crypto/err/libcrypto-lib-err_save.o" ], "products" => { "lib" => [ @@ -9110,7 +10533,9 @@ our %unified_info = ( "crypto/evp/libcrypto-lib-pmeth_check.o", "crypto/evp/libcrypto-lib-pmeth_gn.o", "crypto/evp/libcrypto-lib-pmeth_lib.o", + "crypto/evp/libcrypto-lib-s_lib.o", "crypto/evp/libcrypto-lib-signature.o", + "crypto/evp/libcrypto-lib-skeymgmt_meth.o", "crypto/evp/libfips-lib-asymcipher.o", "crypto/evp/libfips-lib-dh_support.o", "crypto/evp/libfips-lib-digest.o", @@ -9126,14 +10551,15 @@ our %unified_info = ( "crypto/evp/libfips-lib-kem.o", "crypto/evp/libfips-lib-keymgmt_lib.o", "crypto/evp/libfips-lib-keymgmt_meth.o", - "crypto/evp/libfips-lib-m_sigver.o", "crypto/evp/libfips-lib-mac_lib.o", "crypto/evp/libfips-lib-mac_meth.o", "crypto/evp/libfips-lib-p_lib.o", "crypto/evp/libfips-lib-pmeth_check.o", "crypto/evp/libfips-lib-pmeth_gn.o", "crypto/evp/libfips-lib-pmeth_lib.o", - "crypto/evp/libfips-lib-signature.o" + "crypto/evp/libfips-lib-s_lib.o", + "crypto/evp/libfips-lib-signature.o", + "crypto/evp/libfips-lib-skeymgmt_meth.o" ], "products" => { "lib" => [ @@ -9166,6 +10592,20 @@ our %unified_info = ( ] } }, + "crypto/hashtable" => { + "deps" => [ + "crypto/hashtable/libcrypto-lib-hashfunc.o", + "crypto/hashtable/libcrypto-lib-hashtable.o", + "crypto/hashtable/libfips-lib-hashfunc.o", + "crypto/hashtable/libfips-lib-hashtable.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, "crypto/hmac" => { "deps" => [ "crypto/hmac/libcrypto-lib-hmac.o", @@ -9178,6 +10618,17 @@ our %unified_info = ( ] } }, + "crypto/hpke" => { + "deps" => [ + "crypto/hpke/libcrypto-lib-hpke.o", + "crypto/hpke/libcrypto-lib-hpke_util.o" + ], + "products" => { + "lib" => [ + "libcrypto" + ] + } + }, "crypto/http" => { "deps" => [ "crypto/http/libcrypto-lib-http_client.o", @@ -9262,6 +10713,44 @@ our %unified_info = ( ] } }, + "crypto/ml_dsa" => { + "deps" => [ + "crypto/ml_dsa/libcrypto-lib-ml_dsa_encoders.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key_compress.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_matrix.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_ntt.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_params.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sample.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sign.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_encoders.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_key.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_key_compress.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_matrix.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_ntt.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_params.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_sample.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_sign.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, + "crypto/ml_kem" => { + "deps" => [ + "crypto/ml_kem/libcrypto-lib-ml_kem.o", + "crypto/ml_kem/libfips-lib-ml_kem.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, "crypto/modes" => { "deps" => [ "crypto/modes/libcrypto-lib-cbc128.o", @@ -9276,6 +10765,7 @@ our %unified_info = ( "crypto/modes/libcrypto-lib-siv128.o", "crypto/modes/libcrypto-lib-wrap128.o", "crypto/modes/libcrypto-lib-xts128.o", + "crypto/modes/libcrypto-lib-xts128gb.o", "crypto/modes/libfips-lib-cbc128.o", "crypto/modes/libfips-lib-ccm128.o", "crypto/modes/libfips-lib-cfb128.o", @@ -9284,7 +10774,8 @@ our %unified_info = ( "crypto/modes/libfips-lib-ghash-x86.o", "crypto/modes/libfips-lib-ofb128.o", "crypto/modes/libfips-lib-wrap128.o", - "crypto/modes/libfips-lib-xts128.o" + "crypto/modes/libfips-lib-xts128.o", + "crypto/modes/libfips-lib-xts128gb.o" ], "products" => { "lib" => [ @@ -9428,6 +10919,7 @@ our %unified_info = ( "crypto/rand/libcrypto-lib-rand_lib.o", "crypto/rand/libcrypto-lib-rand_meth.o", "crypto/rand/libcrypto-lib-rand_pool.o", + "crypto/rand/libcrypto-lib-rand_uniform.o", "crypto/rand/libcrypto-lib-randfile.o", "crypto/rand/libfips-lib-rand_lib.o" ], @@ -9578,6 +11070,36 @@ our %unified_info = ( ] } }, + "crypto/slh_dsa" => { + "deps" => [ + "crypto/slh_dsa/libcrypto-lib-slh_adrs.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa_hash_ctx.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa_key.o", + "crypto/slh_dsa/libcrypto-lib-slh_fors.o", + "crypto/slh_dsa/libcrypto-lib-slh_hash.o", + "crypto/slh_dsa/libcrypto-lib-slh_hypertree.o", + "crypto/slh_dsa/libcrypto-lib-slh_params.o", + "crypto/slh_dsa/libcrypto-lib-slh_wots.o", + "crypto/slh_dsa/libcrypto-lib-slh_xmss.o", + "crypto/slh_dsa/libfips-lib-slh_adrs.o", + "crypto/slh_dsa/libfips-lib-slh_dsa.o", + "crypto/slh_dsa/libfips-lib-slh_dsa_hash_ctx.o", + "crypto/slh_dsa/libfips-lib-slh_dsa_key.o", + "crypto/slh_dsa/libfips-lib-slh_fors.o", + "crypto/slh_dsa/libfips-lib-slh_hash.o", + "crypto/slh_dsa/libfips-lib-slh_hypertree.o", + "crypto/slh_dsa/libfips-lib-slh_params.o", + "crypto/slh_dsa/libfips-lib-slh_wots.o", + "crypto/slh_dsa/libfips-lib-slh_xmss.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, "crypto/sm2" => { "deps" => [ "crypto/sm2/libcrypto-lib-sm2_crypt.o", @@ -9651,6 +11173,38 @@ our %unified_info = ( ] } }, + "crypto/thread" => { + "deps" => [ + "crypto/thread/libcrypto-lib-api.o", + "crypto/thread/libcrypto-lib-arch.o", + "crypto/thread/libcrypto-lib-internal.o", + "crypto/thread/libfips-lib-api.o", + "crypto/thread/libfips-lib-arch.o", + "crypto/thread/libfips-lib-internal.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, + "crypto/thread/arch" => { + "deps" => [ + "crypto/thread/arch/libcrypto-lib-thread_none.o", + "crypto/thread/arch/libcrypto-lib-thread_posix.o", + "crypto/thread/arch/libcrypto-lib-thread_win.o", + "crypto/thread/arch/libfips-lib-thread_none.o", + "crypto/thread/arch/libfips-lib-thread_posix.o", + "crypto/thread/arch/libfips-lib-thread_win.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, "crypto/ts" => { "deps" => [ "crypto/ts/libcrypto-lib-ts_asn1.o", @@ -9718,14 +11272,22 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-pcy_map.o", "crypto/x509/libcrypto-lib-pcy_node.o", "crypto/x509/libcrypto-lib-pcy_tree.o", + "crypto/x509/libcrypto-lib-t_acert.o", "crypto/x509/libcrypto-lib-t_crl.o", "crypto/x509/libcrypto-lib-t_req.o", "crypto/x509/libcrypto-lib-t_x509.o", + "crypto/x509/libcrypto-lib-v3_aaa.o", + "crypto/x509/libcrypto-lib-v3_ac_tgt.o", "crypto/x509/libcrypto-lib-v3_addr.o", "crypto/x509/libcrypto-lib-v3_admis.o", "crypto/x509/libcrypto-lib-v3_akeya.o", "crypto/x509/libcrypto-lib-v3_akid.o", "crypto/x509/libcrypto-lib-v3_asid.o", + "crypto/x509/libcrypto-lib-v3_attrdesc.o", + "crypto/x509/libcrypto-lib-v3_attrmap.o", + "crypto/x509/libcrypto-lib-v3_audit_id.o", + "crypto/x509/libcrypto-lib-v3_authattid.o", + "crypto/x509/libcrypto-lib-v3_battcons.o", "crypto/x509/libcrypto-lib-v3_bcons.o", "crypto/x509/libcrypto-lib-v3_bitst.o", "crypto/x509/libcrypto-lib-v3_conf.o", @@ -9734,12 +11296,17 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_enum.o", "crypto/x509/libcrypto-lib-v3_extku.o", "crypto/x509/libcrypto-lib-v3_genn.o", + "crypto/x509/libcrypto-lib-v3_group_ac.o", "crypto/x509/libcrypto-lib-v3_ia5.o", + "crypto/x509/libcrypto-lib-v3_ind_iss.o", "crypto/x509/libcrypto-lib-v3_info.o", "crypto/x509/libcrypto-lib-v3_int.o", + "crypto/x509/libcrypto-lib-v3_iobo.o", "crypto/x509/libcrypto-lib-v3_ist.o", "crypto/x509/libcrypto-lib-v3_lib.o", "crypto/x509/libcrypto-lib-v3_ncons.o", + "crypto/x509/libcrypto-lib-v3_no_ass.o", + "crypto/x509/libcrypto-lib-v3_no_rev_avail.o", "crypto/x509/libcrypto-lib-v3_pci.o", "crypto/x509/libcrypto-lib-v3_pcia.o", "crypto/x509/libcrypto-lib-v3_pcons.o", @@ -9747,13 +11314,20 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_pmaps.o", "crypto/x509/libcrypto-lib-v3_prn.o", "crypto/x509/libcrypto-lib-v3_purp.o", + "crypto/x509/libcrypto-lib-v3_rolespec.o", "crypto/x509/libcrypto-lib-v3_san.o", + "crypto/x509/libcrypto-lib-v3_sda.o", + "crypto/x509/libcrypto-lib-v3_single_use.o", "crypto/x509/libcrypto-lib-v3_skid.o", + "crypto/x509/libcrypto-lib-v3_soa_id.o", "crypto/x509/libcrypto-lib-v3_sxnet.o", + "crypto/x509/libcrypto-lib-v3_timespec.o", "crypto/x509/libcrypto-lib-v3_tlsf.o", + "crypto/x509/libcrypto-lib-v3_usernotice.o", "crypto/x509/libcrypto-lib-v3_utf8.o", "crypto/x509/libcrypto-lib-v3_utl.o", "crypto/x509/libcrypto-lib-v3err.o", + "crypto/x509/libcrypto-lib-x509_acert.o", "crypto/x509/libcrypto-lib-x509_att.o", "crypto/x509/libcrypto-lib-x509_cmp.o", "crypto/x509/libcrypto-lib-x509_d2.o", @@ -9771,6 +11345,7 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x509_v3.o", "crypto/x509/libcrypto-lib-x509_vfy.o", "crypto/x509/libcrypto-lib-x509_vpm.o", + "crypto/x509/libcrypto-lib-x509aset.o", "crypto/x509/libcrypto-lib-x509cset.o", "crypto/x509/libcrypto-lib-x509name.o", "crypto/x509/libcrypto-lib-x509rset.o", @@ -9780,6 +11355,7 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x_attrib.o", "crypto/x509/libcrypto-lib-x_crl.o", "crypto/x509/libcrypto-lib-x_exten.o", + "crypto/x509/libcrypto-lib-x_ietfatt.o", "crypto/x509/libcrypto-lib-x_name.o", "crypto/x509/libcrypto-lib-x_pubkey.o", "crypto/x509/libcrypto-lib-x_req.o", @@ -9808,6 +11384,7 @@ our %unified_info = ( "fuzz" => { "products" => { "bin" => [ + "fuzz/acert-test", "fuzz/asn1-test", "fuzz/asn1parse-test", "fuzz/bignum-test", @@ -9818,13 +11395,31 @@ our %unified_info = ( "fuzz/conf-test", "fuzz/crl-test", "fuzz/ct-test", + "fuzz/decoder-test", + "fuzz/dtlsclient-test", + "fuzz/dtlsserver-test", + "fuzz/hashtable-test", + "fuzz/ml-dsa-test", + "fuzz/ml-kem-test", + "fuzz/pem-test", + "fuzz/provider-test", + "fuzz/punycode-test", + "fuzz/quic-client-test", + "fuzz/quic-lcidm-test", + "fuzz/quic-rcidm-test", + "fuzz/quic-server-test", + "fuzz/quic-srtm-test", "fuzz/server-test", + "fuzz/slh-dsa-test", + "fuzz/smime-test", + "fuzz/v3name-test", "fuzz/x509-test" ] } }, "providers" => { "deps" => [ + "providers/endecode_test-bin-legacyprov.o", "providers/evp_extra_test-bin-legacyprov.o", "providers/libcrypto-lib-baseprov.o", "providers/libcrypto-lib-defltprov.o", @@ -9834,6 +11429,7 @@ our %unified_info = ( ], "products" => { "bin" => [ + "test/endecode_test", "test/evp_extra_test" ], "dso" => [ @@ -9885,8 +11481,12 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ec_sig.o", "providers/common/der/libcommon-lib-der_ecx_gen.o", "providers/common/der/libcommon-lib-der_ecx_key.o", + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o", + "providers/common/der/libcommon-lib-der_ml_dsa_key.o", "providers/common/der/libcommon-lib-der_rsa_gen.o", "providers/common/der/libcommon-lib-der_rsa_key.o", + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o", + "providers/common/der/libcommon-lib-der_slh_dsa_key.o", "providers/common/der/libcommon-lib-der_wrap_gen.o", "providers/common/der/libdefault-lib-der_rsa_sig.o", "providers/common/der/libdefault-lib-der_sm2_gen.o", @@ -9905,6 +11505,7 @@ our %unified_info = ( "providers/fips" => { "deps" => [ "providers/fips/fips-dso-fips_entry.o", + "providers/fips/libfips-lib-fipsindicator.o", "providers/fips/libfips-lib-fipsprov.o", "providers/fips/libfips-lib-self_test.o", "providers/fips/libfips-lib-self_test_kats.o" @@ -9948,6 +11549,9 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_aes_ccm_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_polyval.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_ocb.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_ocb_hw.o", @@ -9972,7 +11576,13 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_cts.o", "providers/implementations/ciphers/libdefault-lib-cipher_null.o", "providers/implementations/ciphers/libdefault-lib-cipher_sm4.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_sm4_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes_common.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes_default.o", @@ -10069,7 +11679,10 @@ our %unified_info = ( "providers/implementations/encode_decode/libdefault-lib-encode_key2blob.o", "providers/implementations/encode_decode/libdefault-lib-encode_key2ms.o", "providers/implementations/encode_decode/libdefault-lib-encode_key2text.o", - "providers/implementations/encode_decode/libdefault-lib-endecoder_common.o" + "providers/implementations/encode_decode/libdefault-lib-endecoder_common.o", + "providers/implementations/encode_decode/libdefault-lib-ml_common_codecs.o", + "providers/implementations/encode_decode/libdefault-lib-ml_dsa_codecs.o", + "providers/implementations/encode_decode/libdefault-lib-ml_kem_codecs.o" ], "products" => { "lib" => [ @@ -10097,7 +11710,9 @@ our %unified_info = ( }, "providers/implementations/kdfs" => { "deps" => [ + "providers/implementations/kdfs/libdefault-lib-argon2.o", "providers/implementations/kdfs/libdefault-lib-hkdf.o", + "providers/implementations/kdfs/libdefault-lib-hmacdrbg_kdf.o", "providers/implementations/kdfs/libdefault-lib-kbkdf.o", "providers/implementations/kdfs/libdefault-lib-krb5kdf.o", "providers/implementations/kdfs/libdefault-lib-pbkdf2.o", @@ -10116,7 +11731,8 @@ our %unified_info = ( "providers/implementations/kdfs/libfips-lib-sskdf.o", "providers/implementations/kdfs/libfips-lib-tls1_prf.o", "providers/implementations/kdfs/libfips-lib-x942kdf.o", - "providers/implementations/kdfs/liblegacy-lib-pbkdf1.o" + "providers/implementations/kdfs/liblegacy-lib-pbkdf1.o", + "providers/implementations/kdfs/liblegacy-lib-pvkkdf.o" ], "products" => { "lib" => [ @@ -10128,13 +11744,22 @@ our %unified_info = ( }, "providers/implementations/kem" => { "deps" => [ + "providers/implementations/kem/libdefault-lib-ec_kem.o", + "providers/implementations/kem/libdefault-lib-ecx_kem.o", + "providers/implementations/kem/libdefault-lib-kem_util.o", + "providers/implementations/kem/libdefault-lib-ml_kem_kem.o", + "providers/implementations/kem/libdefault-lib-mlx_kem.o", "providers/implementations/kem/libdefault-lib-rsa_kem.o", - "providers/implementations/kem/libfips-lib-rsa_kem.o" + "providers/implementations/kem/libfips-lib-ml_kem_kem.o", + "providers/implementations/kem/libfips-lib-mlx_kem.o", + "providers/implementations/kem/libfips-lib-rsa_kem.o", + "providers/implementations/kem/libtemplate-lib-template_kem.o" ], "products" => { "lib" => [ "providers/libdefault.a", - "providers/libfips.a" + "providers/libfips.a", + "providers/libtemplate.a" ] } }, @@ -10146,19 +11771,29 @@ our %unified_info = ( "providers/implementations/keymgmt/libdefault-lib-ecx_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-kdf_legacy_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-mac_legacy_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-ml_dsa_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-ml_kem_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-mlx_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-rsa_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-slh_dsa_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-dh_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-dsa_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-ec_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-ecx_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-kdf_legacy_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-mac_legacy_kmgmt.o", - "providers/implementations/keymgmt/libfips-lib-rsa_kmgmt.o" + "providers/implementations/keymgmt/libfips-lib-ml_dsa_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-ml_kem_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-mlx_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-rsa_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-slh_dsa_kmgmt.o", + "providers/implementations/keymgmt/libtemplate-lib-template_kmgmt.o" ], "products" => { "lib" => [ "providers/libdefault.a", - "providers/libfips.a" + "providers/libfips.a", + "providers/libtemplate.a" ] } }, @@ -10186,18 +11821,18 @@ our %unified_info = ( }, "providers/implementations/rands" => { "deps" => [ - "providers/implementations/rands/libdefault-lib-crngt.o", "providers/implementations/rands/libdefault-lib-drbg.o", "providers/implementations/rands/libdefault-lib-drbg_ctr.o", "providers/implementations/rands/libdefault-lib-drbg_hash.o", "providers/implementations/rands/libdefault-lib-drbg_hmac.o", "providers/implementations/rands/libdefault-lib-seed_src.o", + "providers/implementations/rands/libdefault-lib-seed_src_jitter.o", "providers/implementations/rands/libdefault-lib-test_rng.o", - "providers/implementations/rands/libfips-lib-crngt.o", "providers/implementations/rands/libfips-lib-drbg.o", "providers/implementations/rands/libfips-lib-drbg_ctr.o", "providers/implementations/rands/libfips-lib-drbg_hash.o", "providers/implementations/rands/libfips-lib-drbg_hmac.o", + "providers/implementations/rands/libfips-lib-fips_crng_test.o", "providers/implementations/rands/libfips-lib-test_rng.o" ], "products" => { @@ -10226,13 +11861,31 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-ecdsa_sig.o", "providers/implementations/signature/libdefault-lib-eddsa_sig.o", "providers/implementations/signature/libdefault-lib-mac_legacy_sig.o", + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o", "providers/implementations/signature/libdefault-lib-rsa_sig.o", + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o", "providers/implementations/signature/libdefault-lib-sm2_sig.o", "providers/implementations/signature/libfips-lib-dsa_sig.o", "providers/implementations/signature/libfips-lib-ecdsa_sig.o", "providers/implementations/signature/libfips-lib-eddsa_sig.o", "providers/implementations/signature/libfips-lib-mac_legacy_sig.o", - "providers/implementations/signature/libfips-lib-rsa_sig.o" + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o", + "providers/implementations/signature/libfips-lib-rsa_sig.o", + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o" + ], + "products" => { + "lib" => [ + "providers/libdefault.a", + "providers/libfips.a" + ] + } + }, + "providers/implementations/skeymgmt" => { + "deps" => [ + "providers/implementations/skeymgmt/libdefault-lib-aes_skmgmt.o", + "providers/implementations/skeymgmt/libdefault-lib-generic.o", + "providers/implementations/skeymgmt/libfips-lib-aes_skmgmt.o", + "providers/implementations/skeymgmt/libfips-lib-generic.o" ], "products" => { "lib" => [ @@ -10260,14 +11913,15 @@ our %unified_info = ( "ssl/libssl-lib-d1_srtp.o", "ssl/libssl-lib-methods.o", "ssl/libssl-lib-pqueue.o", + "ssl/libssl-lib-priority_queue.o", "ssl/libssl-lib-s3_enc.o", "ssl/libssl-lib-s3_lib.o", "ssl/libssl-lib-s3_msg.o", "ssl/libssl-lib-ssl_asn1.o", "ssl/libssl-lib-ssl_cert.o", + "ssl/libssl-lib-ssl_cert_comp.o", "ssl/libssl-lib-ssl_ciph.o", "ssl/libssl-lib-ssl_conf.o", - "ssl/libssl-lib-ssl_err.o", "ssl/libssl-lib-ssl_err_legacy.o", "ssl/libssl-lib-ssl_init.o", "ssl/libssl-lib-ssl_lib.o", @@ -10283,32 +11937,107 @@ our %unified_info = ( "ssl/libssl-lib-t1_trce.o", "ssl/libssl-lib-tls13_enc.o", "ssl/libssl-lib-tls_depr.o", - "ssl/libssl-lib-tls_srp.o", - "ssl/libdefault-lib-s3_cbc.o", - "ssl/libfips-lib-s3_cbc.o" + "ssl/libssl-lib-tls_srp.o" ], "products" => { "lib" => [ - "libssl", - "providers/libdefault.a", - "providers/libfips.a" + "libssl" + ] + } + }, + "ssl/quic" => { + "deps" => [ + "ssl/quic/libssl-lib-cc_newreno.o", + "ssl/quic/libssl-lib-json_enc.o", + "ssl/quic/libssl-lib-qlog.o", + "ssl/quic/libssl-lib-qlog_event_helpers.o", + "ssl/quic/libssl-lib-quic_ackm.o", + "ssl/quic/libssl-lib-quic_cfq.o", + "ssl/quic/libssl-lib-quic_channel.o", + "ssl/quic/libssl-lib-quic_demux.o", + "ssl/quic/libssl-lib-quic_engine.o", + "ssl/quic/libssl-lib-quic_fc.o", + "ssl/quic/libssl-lib-quic_fifd.o", + "ssl/quic/libssl-lib-quic_impl.o", + "ssl/quic/libssl-lib-quic_lcidm.o", + "ssl/quic/libssl-lib-quic_method.o", + "ssl/quic/libssl-lib-quic_obj.o", + "ssl/quic/libssl-lib-quic_port.o", + "ssl/quic/libssl-lib-quic_rcidm.o", + "ssl/quic/libssl-lib-quic_reactor.o", + "ssl/quic/libssl-lib-quic_reactor_wait_ctx.o", + "ssl/quic/libssl-lib-quic_record_rx.o", + "ssl/quic/libssl-lib-quic_record_shared.o", + "ssl/quic/libssl-lib-quic_record_tx.o", + "ssl/quic/libssl-lib-quic_record_util.o", + "ssl/quic/libssl-lib-quic_rstream.o", + "ssl/quic/libssl-lib-quic_rx_depack.o", + "ssl/quic/libssl-lib-quic_sf_list.o", + "ssl/quic/libssl-lib-quic_srt_gen.o", + "ssl/quic/libssl-lib-quic_srtm.o", + "ssl/quic/libssl-lib-quic_sstream.o", + "ssl/quic/libssl-lib-quic_statm.o", + "ssl/quic/libssl-lib-quic_stream_map.o", + "ssl/quic/libssl-lib-quic_thread_assist.o", + "ssl/quic/libssl-lib-quic_tls.o", + "ssl/quic/libssl-lib-quic_tls_api.o", + "ssl/quic/libssl-lib-quic_trace.o", + "ssl/quic/libssl-lib-quic_tserver.o", + "ssl/quic/libssl-lib-quic_txp.o", + "ssl/quic/libssl-lib-quic_txpim.o", + "ssl/quic/libssl-lib-quic_types.o", + "ssl/quic/libssl-lib-quic_wire.o", + "ssl/quic/libssl-lib-quic_wire_pkt.o", + "ssl/quic/libssl-lib-uint_set.o" + ], + "products" => { + "lib" => [ + "libssl" ] } }, "ssl/record" => { "deps" => [ - "ssl/record/libssl-lib-dtls1_bitmap.o", "ssl/record/libssl-lib-rec_layer_d1.o", - "ssl/record/libssl-lib-rec_layer_s3.o", - "ssl/record/libssl-lib-ssl3_buffer.o", - "ssl/record/libssl-lib-ssl3_record.o", - "ssl/record/libssl-lib-ssl3_record_tls13.o", - "ssl/record/libcommon-lib-tls_pad.o" + "ssl/record/libssl-lib-rec_layer_s3.o" + ], + "products" => { + "lib" => [ + "libssl" + ] + } + }, + "ssl/record/methods" => { + "deps" => [ + "ssl/record/methods/libssl-lib-dtls_meth.o", + "ssl/record/methods/libssl-lib-ssl3_meth.o", + "ssl/record/methods/libssl-lib-tls13_meth.o", + "ssl/record/methods/libssl-lib-tls1_meth.o", + "ssl/record/methods/libssl-lib-tls_common.o", + "ssl/record/methods/libssl-lib-tls_multib.o", + "ssl/record/methods/libssl-lib-tlsany_meth.o", + "ssl/record/methods/libcommon-lib-tls_pad.o", + "ssl/record/methods/libdefault-lib-ssl3_cbc.o", + "ssl/record/methods/libfips-lib-ssl3_cbc.o" ], "products" => { "lib" => [ "libssl", - "providers/libcommon.a" + "providers/libcommon.a", + "providers/libdefault.a", + "providers/libfips.a" + ] + } + }, + "ssl/rio" => { + "deps" => [ + "ssl/rio/libssl-lib-poll_builder.o", + "ssl/rio/libssl-lib-poll_immediate.o", + "ssl/rio/libssl-lib-rio_notifier.o" + ], + "products" => { + "lib" => [ + "libssl" ] } }, @@ -10346,9 +12075,40 @@ our %unified_info = ( "test/helpers/dtlstest-bin-ssltestlib.o", "test/helpers/endecode_test-bin-predefined_dhparams.o", "test/helpers/fatalerrtest-bin-ssltestlib.o", + "test/helpers/json_test-bin-noisydgrambio.o", + "test/helpers/json_test-bin-pktsplitbio.o", + "test/helpers/json_test-bin-quictestlib.o", + "test/helpers/json_test-bin-ssltestlib.o", + "test/helpers/pkcs12_api_test-bin-pkcs12.o", "test/helpers/pkcs12_format_test-bin-pkcs12.o", + "test/helpers/quic_multistream_test-bin-noisydgrambio.o", + "test/helpers/quic_multistream_test-bin-pktsplitbio.o", + "test/helpers/quic_multistream_test-bin-quictestlib.o", + "test/helpers/quic_multistream_test-bin-ssltestlib.o", + "test/helpers/quic_newcid_test-bin-noisydgrambio.o", + "test/helpers/quic_newcid_test-bin-pktsplitbio.o", + "test/helpers/quic_newcid_test-bin-quictestlib.o", + "test/helpers/quic_newcid_test-bin-ssltestlib.o", + "test/helpers/quic_radix_test-bin-noisydgrambio.o", + "test/helpers/quic_radix_test-bin-pktsplitbio.o", + "test/helpers/quic_radix_test-bin-quictestlib.o", + "test/helpers/quic_radix_test-bin-ssltestlib.o", + "test/helpers/quic_srt_gen_test-bin-noisydgrambio.o", + "test/helpers/quic_srt_gen_test-bin-pktsplitbio.o", + "test/helpers/quic_srt_gen_test-bin-quictestlib.o", + "test/helpers/quic_srt_gen_test-bin-ssltestlib.o", + "test/helpers/quicapitest-bin-noisydgrambio.o", + "test/helpers/quicapitest-bin-pktsplitbio.o", + "test/helpers/quicapitest-bin-quictestlib.o", + "test/helpers/quicapitest-bin-ssltestlib.o", + "test/helpers/quicfaultstest-bin-noisydgrambio.o", + "test/helpers/quicfaultstest-bin-pktsplitbio.o", + "test/helpers/quicfaultstest-bin-quictestlib.o", + "test/helpers/quicfaultstest-bin-ssltestlib.o", "test/helpers/recordlentest-bin-ssltestlib.o", + "test/helpers/rpktest-bin-ssltestlib.o", "test/helpers/servername_test-bin-ssltestlib.o", + "test/helpers/ssl_handshake_rtt_test-bin-ssltestlib.o", "test/helpers/ssl_old_test-bin-predefined_dhparams.o", "test/helpers/ssl_test-bin-handshake.o", "test/helpers/ssl_test-bin-handshake_srp.o", @@ -10357,7 +12117,8 @@ our %unified_info = ( "test/helpers/sslapitest-bin-ssltestlib.o", "test/helpers/sslbuffertest-bin-ssltestlib.o", "test/helpers/sslcorrupttest-bin-ssltestlib.o", - "test/helpers/tls13ccstest-bin-ssltestlib.o" + "test/helpers/tls13ccstest-bin-ssltestlib.o", + "test/helpers/tls13groupselection_test-bin-ssltestlib.o" ], "products" => { "bin" => [ @@ -10375,16 +12136,37 @@ our %unified_info = ( "test/dtlstest", "test/endecode_test", "test/fatalerrtest", + "test/json_test", + "test/pkcs12_api_test", "test/pkcs12_format_test", + "test/quic_multistream_test", + "test/quic_newcid_test", + "test/quic_radix_test", + "test/quic_srt_gen_test", + "test/quicapitest", + "test/quicfaultstest", "test/recordlentest", + "test/rpktest", "test/servername_test", + "test/ssl_handshake_rtt_test", "test/ssl_old_test", "test/ssl_test", "test/ssl_test_ctx_test", "test/sslapitest", "test/sslbuffertest", "test/sslcorrupttest", - "test/tls13ccstest" + "test/tls13ccstest", + "test/tls13groupselection_test" + ] + } + }, + "test/radix" => { + "deps" => [ + "test/radix/quic_radix_test-bin-quic_radix.o" + ], + "products" => { + "bin" => [ + "test/quic_radix_test" ] } }, @@ -10396,6 +12178,7 @@ our %unified_info = ( "test/testutil/libtestutil-lib-driver.o", "test/testutil/libtestutil-lib-fake_random.o", "test/testutil/libtestutil-lib-format_output.o", + "test/testutil/libtestutil-lib-helper.o", "test/testutil/libtestutil-lib-load.o", "test/testutil/libtestutil-lib-main.o", "test/testutil/libtestutil-lib-options.o", @@ -10431,6 +12214,12 @@ our %unified_info = ( } }, "generate" => { + "OpenSSLConfig.cmake" => [ + "exporters/cmake/OpenSSLConfig.cmake.in" + ], + "OpenSSLConfigVersion.cmake" => [ + "exporters/cmake/OpenSSLConfigVersion.cmake.in" + ], "apps/progs.c" => [ "apps/progs.pl", "\"-C\"", @@ -10441,6 +12230,19 @@ our %unified_info = ( "\"-H\"", "\$(APPS_OPENSSL)" ], + "builddata.pm" => [ + "util/mkinstallvars.pl", + "PREFIX=.", + "BINDIR=apps", + "APPLINKDIR=ms", + "LIBDIR=", + "INCLUDEDIR=include", + "\"INCLUDEDIR=\$(SRCDIR)/include\"", + "ENGINESDIR=engines", + "MODULESDIR=providers", + "\"VERSION=\$(VERSION)\"", + "\"LDLIBS=\$(LIB_EX_LIBS)\"" + ], "crypto/aes/aes-586.S" => [ "crypto/aes/asm/aes-586.pl" ], @@ -10462,6 +12264,24 @@ our %unified_info = ( "crypto/aes/aes-ppc.s" => [ "crypto/aes/asm/aes-ppc.pl" ], + "crypto/aes/aes-riscv32-zkn.s" => [ + "crypto/aes/asm/aes-riscv32-zkn.pl" + ], + "crypto/aes/aes-riscv64-zkn.s" => [ + "crypto/aes/asm/aes-riscv64-zkn.pl" + ], + "crypto/aes/aes-riscv64-zvbb-zvkg-zvkned.s" => [ + "crypto/aes/asm/aes-riscv64-zvbb-zvkg-zvkned.pl" + ], + "crypto/aes/aes-riscv64-zvkb-zvkned.s" => [ + "crypto/aes/asm/aes-riscv64-zvkb-zvkned.pl" + ], + "crypto/aes/aes-riscv64-zvkned.s" => [ + "crypto/aes/asm/aes-riscv64-zvkned.pl" + ], + "crypto/aes/aes-riscv64.s" => [ + "crypto/aes/asm/aes-riscv64.pl" + ], "crypto/aes/aes-s390x.S" => [ "crypto/aes/asm/aes-s390x.pl" ], @@ -10489,6 +12309,9 @@ our %unified_info = ( "crypto/aes/aesni-x86_64.s" => [ "crypto/aes/asm/aesni-x86_64.pl" ], + "crypto/aes/aesni-xts-avx512.s" => [ + "crypto/aes/asm/aesni-xts-avx512.pl" + ], "crypto/aes/aesp8-ppc.s" => [ "crypto/aes/asm/aesp8-ppc.pl" ], @@ -10501,12 +12324,18 @@ our %unified_info = ( "crypto/aes/bsaes-armv7.S" => [ "crypto/aes/asm/bsaes-armv7.pl" ], + "crypto/aes/bsaes-armv8.S" => [ + "crypto/aes/asm/bsaes-armv8.pl" + ], "crypto/aes/bsaes-x86_64.s" => [ "crypto/aes/asm/bsaes-x86_64.pl" ], "crypto/aes/vpaes-armv8.S" => [ "crypto/aes/asm/vpaes-armv8.pl" ], + "crypto/aes/vpaes-loongarch64.S" => [ + "crypto/aes/asm/vpaes-loongarch64.pl" + ], "crypto/aes/vpaes-ppc.s" => [ "crypto/aes/asm/vpaes-ppc.pl" ], @@ -10567,15 +12396,33 @@ our %unified_info = ( "crypto/bn/ppc-mont.s" => [ "crypto/bn/asm/ppc-mont.pl" ], + "crypto/bn/ppc64-mont-fixed.s" => [ + "crypto/bn/asm/ppc64-mont-fixed.pl" + ], "crypto/bn/ppc64-mont.s" => [ "crypto/bn/asm/ppc64-mont.pl" ], + "crypto/bn/rsaz-2k-avx512.s" => [ + "crypto/bn/asm/rsaz-2k-avx512.pl" + ], + "crypto/bn/rsaz-2k-avxifma.s" => [ + "crypto/bn/asm/rsaz-2k-avxifma.pl" + ], + "crypto/bn/rsaz-3k-avx512.s" => [ + "crypto/bn/asm/rsaz-3k-avx512.pl" + ], + "crypto/bn/rsaz-3k-avxifma.s" => [ + "crypto/bn/asm/rsaz-3k-avxifma.pl" + ], + "crypto/bn/rsaz-4k-avx512.s" => [ + "crypto/bn/asm/rsaz-4k-avx512.pl" + ], + "crypto/bn/rsaz-4k-avxifma.s" => [ + "crypto/bn/asm/rsaz-4k-avxifma.pl" + ], "crypto/bn/rsaz-avx2.s" => [ "crypto/bn/asm/rsaz-avx2.pl" ], - "crypto/bn/rsaz-avx512.s" => [ - "crypto/bn/asm/rsaz-avx512.pl" - ], "crypto/bn/rsaz-x86_64.s" => [ "crypto/bn/asm/rsaz-x86_64.pl" ], @@ -10637,6 +12484,9 @@ our %unified_info = ( "crypto/chacha/chacha-armv4.S" => [ "crypto/chacha/asm/chacha-armv4.pl" ], + "crypto/chacha/chacha-armv8-sve.S" => [ + "crypto/chacha/asm/chacha-armv8-sve.pl" + ], "crypto/chacha/chacha-armv8.S" => [ "crypto/chacha/asm/chacha-armv8.pl" ], @@ -10649,9 +12499,19 @@ our %unified_info = ( "crypto/chacha/chacha-ia64.s" => [ "crypto/chacha/chacha-ia64.S" ], + "crypto/chacha/chacha-loongarch64.S" => [ + "crypto/chacha/asm/chacha-loongarch64.pl" + ], "crypto/chacha/chacha-ppc.s" => [ "crypto/chacha/asm/chacha-ppc.pl" ], + "crypto/chacha/chacha-riscv64-v-zbb-zvkb.s" => [ + "crypto/chacha/asm/chacha-riscv64-v-zbb.pl", + "zvkb" + ], + "crypto/chacha/chacha-riscv64-v-zbb.s" => [ + "crypto/chacha/asm/chacha-riscv64-v-zbb.pl" + ], "crypto/chacha/chacha-s390x.S" => [ "crypto/chacha/asm/chacha-s390x.pl" ], @@ -10661,6 +12521,9 @@ our %unified_info = ( "crypto/chacha/chacha-x86_64.s" => [ "crypto/chacha/asm/chacha-x86_64.pl" ], + "crypto/chacha/chachap10-ppc.s" => [ + "crypto/chacha/asm/chachap10-ppc.pl" + ], "crypto/des/crypt586.S" => [ "crypto/des/asm/crypt586.pl" ], @@ -10673,6 +12536,9 @@ our %unified_info = ( "crypto/des/dest4-sparcv9.S" => [ "crypto/des/asm/dest4-sparcv9.pl" ], + "crypto/ec/ecp_nistp384-ppc64.s" => [ + "crypto/ec/asm/ecp_nistp384-ppc64.pl" + ], "crypto/ec/ecp_nistp521-ppc64.s" => [ "crypto/ec/asm/ecp_nistp521-ppc64.pl" ], @@ -10697,6 +12563,9 @@ our %unified_info = ( "crypto/ec/ecp_nistz256-x86_64.s" => [ "crypto/ec/asm/ecp_nistz256-x86_64.pl" ], + "crypto/ec/ecp_sm2p256-armv8.S" => [ + "crypto/ec/asm/ecp_sm2p256-armv8.pl" + ], "crypto/ec/x25519-ppc64.s" => [ "crypto/ec/asm/x25519-ppc64.pl" ], @@ -10706,18 +12575,39 @@ our %unified_info = ( "crypto/ia64cpuid.s" => [ "crypto/ia64cpuid.S" ], + "crypto/loongarch64cpuid.s" => [ + "crypto/loongarch64cpuid.pl" + ], "crypto/md5/md5-586.S" => [ "crypto/md5/asm/md5-586.pl" ], + "crypto/md5/md5-aarch64.S" => [ + "crypto/md5/asm/md5-aarch64.pl" + ], + "crypto/md5/md5-loongarch64.S" => [ + "crypto/md5/asm/md5-loongarch64.pl" + ], "crypto/md5/md5-sparcv9.S" => [ "crypto/md5/asm/md5-sparcv9.pl" ], "crypto/md5/md5-x86_64.s" => [ "crypto/md5/asm/md5-x86_64.pl" ], + "crypto/modes/aes-gcm-armv8-unroll8_64.S" => [ + "crypto/modes/asm/aes-gcm-armv8-unroll8_64.pl" + ], "crypto/modes/aes-gcm-armv8_64.S" => [ "crypto/modes/asm/aes-gcm-armv8_64.pl" ], + "crypto/modes/aes-gcm-avx512.s" => [ + "crypto/modes/asm/aes-gcm-avx512.pl" + ], + "crypto/modes/aes-gcm-ppc.s" => [ + "crypto/modes/asm/aes-gcm-ppc.pl" + ], + "crypto/modes/aes-gcm-riscv64-zvkb-zvkg-zvkned.s" => [ + "crypto/modes/asm/aes-gcm-riscv64-zvkb-zvkg-zvkned.pl" + ], "crypto/modes/aesni-gcm-x86_64.s" => [ "crypto/modes/asm/aesni-gcm-x86_64.pl" ], @@ -10736,6 +12626,15 @@ our %unified_info = ( "crypto/modes/ghash-parisc.s" => [ "crypto/modes/asm/ghash-parisc.pl" ], + "crypto/modes/ghash-riscv64-zvkb-zvbc.s" => [ + "crypto/modes/asm/ghash-riscv64-zvkb-zvbc.pl" + ], + "crypto/modes/ghash-riscv64-zvkg.s" => [ + "crypto/modes/asm/ghash-riscv64-zvkg.pl" + ], + "crypto/modes/ghash-riscv64.s" => [ + "crypto/modes/asm/ghash-riscv64.pl" + ], "crypto/modes/ghash-s390x.S" => [ "crypto/modes/asm/ghash-s390x.pl" ], @@ -10754,6 +12653,9 @@ our %unified_info = ( "crypto/modes/ghashv8-armx.S" => [ "crypto/modes/asm/ghashv8-armx.pl" ], + "crypto/params_idx.c" => [ + "crypto/params_idx.c.in" + ], "crypto/pariscid.s" => [ "crypto/pariscid.pl" ], @@ -10814,6 +12716,12 @@ our %unified_info = ( "crypto/ripemd/rmd-586.S" => [ "crypto/ripemd/asm/rmd-586.pl" ], + "crypto/riscv32cpuid.s" => [ + "crypto/riscv32cpuid.pl" + ], + "crypto/riscv64cpuid.s" => [ + "crypto/riscv64cpuid.pl" + ], "crypto/s390xcpuid.S" => [ "crypto/s390xcpuid.pl" ], @@ -10922,6 +12830,9 @@ our %unified_info = ( "crypto/sha/sha256-ppc.s" => [ "crypto/sha/asm/sha512-ppc.pl" ], + "crypto/sha/sha256-riscv64-zvkb-zvknha_or_zvknhb.S" => [ + "crypto/sha/asm/sha256-riscv64-zvkb-zvknha_or_zvknhb.pl" + ], "crypto/sha/sha256-s390x.S" => [ "crypto/sha/asm/sha512-s390x.pl" ], @@ -10958,6 +12869,9 @@ our %unified_info = ( "crypto/sha/sha512-ppc.s" => [ "crypto/sha/asm/sha512-ppc.pl" ], + "crypto/sha/sha512-riscv64-zvkb-zvknhb.S" => [ + "crypto/sha/asm/sha512-riscv64-zvkb-zvknhb.pl" + ], "crypto/sha/sha512-s390x.S" => [ "crypto/sha/asm/sha512-s390x.pl" ], @@ -10970,6 +12884,24 @@ our %unified_info = ( "crypto/sha/sha512p8-ppc.s" => [ "crypto/sha/asm/sha512p8-ppc.pl" ], + "crypto/sm3/sm3-armv8.S" => [ + "crypto/sm3/asm/sm3-armv8.pl" + ], + "crypto/sm3/sm3-riscv64-zvksh.S" => [ + "crypto/sm3/asm/sm3-riscv64-zvksh.pl" + ], + "crypto/sm4/sm4-armv8.S" => [ + "crypto/sm4/asm/sm4-armv8.pl" + ], + "crypto/sm4/sm4-riscv64-zvksed.s" => [ + "crypto/sm4/asm/sm4-riscv64-zvksed.pl" + ], + "crypto/sm4/vpsm4-armv8.S" => [ + "crypto/sm4/asm/vpsm4-armv8.pl" + ], + "crypto/sm4/vpsm4_ex-armv8.S" => [ + "crypto/sm4/asm/vpsm4_ex-armv8.pl" + ], "crypto/uplink-ia64.s" => [ "ms/uplink-ia64.pl" ], @@ -11135,6 +13067,9 @@ our %unified_info = ( "doc/html/man1/openssl-sess_id.html" => [ "doc/man1/openssl-sess_id.pod" ], + "doc/html/man1/openssl-skeyutl.html" => [ + "doc/man1/openssl-skeyutl.pod" + ], "doc/html/man1/openssl-smime.html" => [ "doc/man1/openssl-smime.pod" ], @@ -11276,6 +13211,9 @@ our %unified_info = ( "doc/html/man3/BIO_get_ex_new_index.html" => [ "doc/man3/BIO_get_ex_new_index.pod" ], + "doc/html/man3/BIO_get_rpoll_descriptor.html" => [ + "doc/man3/BIO_get_rpoll_descriptor.pod" + ], "doc/html/man3/BIO_meth_new.html" => [ "doc/man3/BIO_meth_new.pod" ], @@ -11312,6 +13250,9 @@ our %unified_info = ( "doc/html/man3/BIO_s_datagram.html" => [ "doc/man3/BIO_s_datagram.pod" ], + "doc/html/man3/BIO_s_dgram_pair.html" => [ + "doc/man3/BIO_s_dgram_pair.pod" + ], "doc/html/man3/BIO_s_fd.html" => [ "doc/man3/BIO_s_fd.pod" ], @@ -11327,6 +13268,9 @@ our %unified_info = ( "doc/html/man3/BIO_s_socket.html" => [ "doc/man3/BIO_s_socket.pod" ], + "doc/html/man3/BIO_sendmmsg.html" => [ + "doc/man3/BIO_sendmmsg.pod" + ], "doc/html/man3/BIO_set_callback.html" => [ "doc/man3/BIO_set_callback.pod" ], @@ -11399,6 +13343,9 @@ our %unified_info = ( "doc/html/man3/BUF_MEM_new.html" => [ "doc/man3/BUF_MEM_new.pod" ], + "doc/html/man3/CMAC_CTX.html" => [ + "doc/man3/CMAC_CTX.pod" + ], "doc/html/man3/CMS_EncryptedData_decrypt.html" => [ "doc/man3/CMS_EncryptedData_decrypt.pod" ], @@ -11465,6 +13412,9 @@ our %unified_info = ( "doc/html/man3/CMS_verify_receipt.html" => [ "doc/man3/CMS_verify_receipt.pod" ], + "doc/html/man3/COMP_CTX_new.html" => [ + "doc/man3/COMP_CTX_new.pod" + ], "doc/html/man3/CONF_modules_free.html" => [ "doc/man3/CONF_modules_free.pod" ], @@ -11564,6 +13514,12 @@ our %unified_info = ( "doc/html/man3/DTLS_set_timer_cb.html" => [ "doc/man3/DTLS_set_timer_cb.pod" ], + "doc/html/man3/DTLSv1_get_timeout.html" => [ + "doc/man3/DTLSv1_get_timeout.pod" + ], + "doc/html/man3/DTLSv1_handle_timeout.html" => [ + "doc/man3/DTLSv1_handle_timeout.pod" + ], "doc/html/man3/DTLSv1_listen.html" => [ "doc/man3/DTLSv1_listen.pod" ], @@ -11702,6 +13658,9 @@ our %unified_info = ( "doc/html/man3/EVP_PKEY_CTX_get0_pkey.html" => [ "doc/man3/EVP_PKEY_CTX_get0_pkey.pod" ], + "doc/html/man3/EVP_PKEY_CTX_get_algor.html" => [ + "doc/man3/EVP_PKEY_CTX_get_algor.pod" + ], "doc/html/man3/EVP_PKEY_CTX_new.html" => [ "doc/man3/EVP_PKEY_CTX_new.pod" ], @@ -11819,6 +13778,12 @@ our %unified_info = ( "doc/html/man3/EVP_SIGNATURE.html" => [ "doc/man3/EVP_SIGNATURE.pod" ], + "doc/html/man3/EVP_SKEY.html" => [ + "doc/man3/EVP_SKEY.pod" + ], + "doc/html/man3/EVP_SKEYMGMT.html" => [ + "doc/man3/EVP_SKEYMGMT.pod" + ], "doc/html/man3/EVP_SealInit.html" => [ "doc/man3/EVP_SealInit.pod" ], @@ -11906,6 +13871,9 @@ our %unified_info = ( "doc/html/man3/EVP_whirlpool.html" => [ "doc/man3/EVP_whirlpool.pod" ], + "doc/html/man3/GENERAL_NAME.html" => [ + "doc/man3/GENERAL_NAME.pod" + ], "doc/html/man3/HMAC.html" => [ "doc/man3/HMAC.pod" ], @@ -11978,9 +13946,15 @@ our %unified_info = ( "doc/html/man3/OPENSSL_load_builtin_modules.html" => [ "doc/man3/OPENSSL_load_builtin_modules.pod" ], + "doc/html/man3/OPENSSL_load_u16_le.html" => [ + "doc/man3/OPENSSL_load_u16_le.pod" + ], "doc/html/man3/OPENSSL_malloc.html" => [ "doc/man3/OPENSSL_malloc.pod" ], + "doc/html/man3/OPENSSL_riscvcap.html" => [ + "doc/man3/OPENSSL_riscvcap.pod" + ], "doc/html/man3/OPENSSL_s390xcap.html" => [ "doc/man3/OPENSSL_s390xcap.pod" ], @@ -11996,12 +13970,18 @@ our %unified_info = ( "doc/html/man3/OSSL_CALLBACK.html" => [ "doc/man3/OSSL_CALLBACK.pod" ], + "doc/html/man3/OSSL_CMP_ATAV_set0.html" => [ + "doc/man3/OSSL_CMP_ATAV_set0.pod" + ], "doc/html/man3/OSSL_CMP_CTX_new.html" => [ "doc/man3/OSSL_CMP_CTX_new.pod" ], "doc/html/man3/OSSL_CMP_HDR_get0_transactionID.html" => [ "doc/man3/OSSL_CMP_HDR_get0_transactionID.pod" ], + "doc/html/man3/OSSL_CMP_ITAV_new_caCerts.html" => [ + "doc/man3/OSSL_CMP_ITAV_new_caCerts.pod" + ], "doc/html/man3/OSSL_CMP_ITAV_set0.html" => [ "doc/man3/OSSL_CMP_ITAV_set0.pod" ], @@ -12071,9 +14051,18 @@ our %unified_info = ( "doc/html/man3/OSSL_ENCODER_to_bio.html" => [ "doc/man3/OSSL_ENCODER_to_bio.pod" ], + "doc/html/man3/OSSL_ERR_STATE_save.html" => [ + "doc/man3/OSSL_ERR_STATE_save.pod" + ], "doc/html/man3/OSSL_ESS_check_signing_certs.html" => [ "doc/man3/OSSL_ESS_check_signing_certs.pod" ], + "doc/html/man3/OSSL_GENERAL_NAMES_print.html" => [ + "doc/man3/OSSL_GENERAL_NAMES_print.pod" + ], + "doc/html/man3/OSSL_HPKE_CTX_new.html" => [ + "doc/man3/OSSL_HPKE_CTX_new.pod" + ], "doc/html/man3/OSSL_HTTP_REQ_CTX.html" => [ "doc/man3/OSSL_HTTP_REQ_CTX.pod" ], @@ -12083,12 +14072,24 @@ our %unified_info = ( "doc/html/man3/OSSL_HTTP_transfer.html" => [ "doc/man3/OSSL_HTTP_transfer.pod" ], + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX.html" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX.pod" + ], + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX_print.html" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX_print.pod" + ], + "doc/html/man3/OSSL_INDICATOR_set_callback.html" => [ + "doc/man3/OSSL_INDICATOR_set_callback.pod" + ], "doc/html/man3/OSSL_ITEM.html" => [ "doc/man3/OSSL_ITEM.pod" ], "doc/html/man3/OSSL_LIB_CTX.html" => [ "doc/man3/OSSL_LIB_CTX.pod" ], + "doc/html/man3/OSSL_LIB_CTX_set_conf_diagnostics.html" => [ + "doc/man3/OSSL_LIB_CTX_set_conf_diagnostics.pod" + ], "doc/html/man3/OSSL_PARAM.html" => [ "doc/man3/OSSL_PARAM.pod" ], @@ -12104,9 +14105,15 @@ our %unified_info = ( "doc/html/man3/OSSL_PARAM_int.html" => [ "doc/man3/OSSL_PARAM_int.pod" ], + "doc/html/man3/OSSL_PARAM_print_to_bio.html" => [ + "doc/man3/OSSL_PARAM_print_to_bio.pod" + ], "doc/html/man3/OSSL_PROVIDER.html" => [ "doc/man3/OSSL_PROVIDER.pod" ], + "doc/html/man3/OSSL_QUIC_client_method.html" => [ + "doc/man3/OSSL_QUIC_client_method.pod" + ], "doc/html/man3/OSSL_SELF_TEST_new.html" => [ "doc/man3/OSSL_SELF_TEST_new.pod" ], @@ -12131,6 +14138,9 @@ our %unified_info = ( "doc/html/man3/OSSL_STORE_open.html" => [ "doc/man3/OSSL_STORE_open.pod" ], + "doc/html/man3/OSSL_sleep.html" => [ + "doc/man3/OSSL_sleep.pod" + ], "doc/html/man3/OSSL_trace_enabled.html" => [ "doc/man3/OSSL_trace_enabled.pod" ], @@ -12146,6 +14156,9 @@ our %unified_info = ( "doc/html/man3/OpenSSL_version.html" => [ "doc/man3/OpenSSL_version.pod" ], + "doc/html/man3/PBMAC1_get1_pbkdf2_param.html" => [ + "doc/man3/PBMAC1_get1_pbkdf2_param.pod" + ], "doc/html/man3/PEM_X509_INFO_read_bio_ex.html" => [ "doc/man3/PEM_X509_INFO_read_bio_ex.pod" ], @@ -12182,6 +14195,9 @@ our %unified_info = ( "doc/html/man3/PKCS12_SAFEBAG_get1_cert.html" => [ "doc/man3/PKCS12_SAFEBAG_get1_cert.pod" ], + "doc/html/man3/PKCS12_SAFEBAG_set0_attrs.html" => [ + "doc/man3/PKCS12_SAFEBAG_set0_attrs.pod" + ], "doc/html/man3/PKCS12_add1_attr_by_NID.html" => [ "doc/man3/PKCS12_add1_attr_by_NID.pod" ], @@ -12455,6 +14471,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set0_CA_list.html" => [ "doc/man3/SSL_CTX_set0_CA_list.pod" ], + "doc/html/man3/SSL_CTX_set1_cert_comp_preference.html" => [ + "doc/man3/SSL_CTX_set1_cert_comp_preference.pod" + ], "doc/html/man3/SSL_CTX_set1_curves.html" => [ "doc/man3/SSL_CTX_set1_curves.pod" ], @@ -12494,6 +14513,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_default_passwd_cb.html" => [ "doc/man3/SSL_CTX_set_default_passwd_cb.pod" ], + "doc/html/man3/SSL_CTX_set_domain_flags.html" => [ + "doc/man3/SSL_CTX_set_domain_flags.pod" + ], "doc/html/man3/SSL_CTX_set_generate_session_id.html" => [ "doc/man3/SSL_CTX_set_generate_session_id.pod" ], @@ -12515,6 +14537,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_msg_callback.html" => [ "doc/man3/SSL_CTX_set_msg_callback.pod" ], + "doc/html/man3/SSL_CTX_set_new_pending_conn_cb.html" => [ + "doc/man3/SSL_CTX_set_new_pending_conn_cb.pod" + ], "doc/html/man3/SSL_CTX_set_num_tickets.html" => [ "doc/man3/SSL_CTX_set_num_tickets.pod" ], @@ -12629,6 +14654,9 @@ our %unified_info = ( "doc/html/man3/SSL_accept.html" => [ "doc/man3/SSL_accept.pod" ], + "doc/html/man3/SSL_accept_stream.html" => [ + "doc/man3/SSL_accept_stream.pod" + ], "doc/html/man3/SSL_alert_type_string.html" => [ "doc/man3/SSL_alert_type_string.pod" ], @@ -12656,9 +14684,21 @@ our %unified_info = ( "doc/html/man3/SSL_free.html" => [ "doc/man3/SSL_free.pod" ], + "doc/html/man3/SSL_get0_connection.html" => [ + "doc/man3/SSL_get0_connection.pod" + ], + "doc/html/man3/SSL_get0_group_name.html" => [ + "doc/man3/SSL_get0_group_name.pod" + ], + "doc/html/man3/SSL_get0_peer_rpk.html" => [ + "doc/man3/SSL_get0_peer_rpk.pod" + ], "doc/html/man3/SSL_get0_peer_scts.html" => [ "doc/man3/SSL_get0_peer_scts.pod" ], + "doc/html/man3/SSL_get1_builtin_sigalgs.html" => [ + "doc/man3/SSL_get1_builtin_sigalgs.pod" + ], "doc/html/man3/SSL_get_SSL_CTX.html" => [ "doc/man3/SSL_get_SSL_CTX.pod" ], @@ -12674,6 +14714,9 @@ our %unified_info = ( "doc/html/man3/SSL_get_client_random.html" => [ "doc/man3/SSL_get_client_random.pod" ], + "doc/html/man3/SSL_get_conn_close_info.html" => [ + "doc/man3/SSL_get_conn_close_info.pod" + ], "doc/html/man3/SSL_get_current_cipher.html" => [ "doc/man3/SSL_get_current_cipher.pod" ], @@ -12683,12 +14726,18 @@ our %unified_info = ( "doc/html/man3/SSL_get_error.html" => [ "doc/man3/SSL_get_error.pod" ], + "doc/html/man3/SSL_get_event_timeout.html" => [ + "doc/man3/SSL_get_event_timeout.pod" + ], "doc/html/man3/SSL_get_extms_support.html" => [ "doc/man3/SSL_get_extms_support.pod" ], "doc/html/man3/SSL_get_fd.html" => [ "doc/man3/SSL_get_fd.pod" ], + "doc/html/man3/SSL_get_handshake_rtt.html" => [ + "doc/man3/SSL_get_handshake_rtt.pod" + ], "doc/html/man3/SSL_get_peer_cert_chain.html" => [ "doc/man3/SSL_get_peer_cert_chain.pod" ], @@ -12707,12 +14756,24 @@ our %unified_info = ( "doc/html/man3/SSL_get_rbio.html" => [ "doc/man3/SSL_get_rbio.pod" ], + "doc/html/man3/SSL_get_rpoll_descriptor.html" => [ + "doc/man3/SSL_get_rpoll_descriptor.pod" + ], "doc/html/man3/SSL_get_session.html" => [ "doc/man3/SSL_get_session.pod" ], "doc/html/man3/SSL_get_shared_sigalgs.html" => [ "doc/man3/SSL_get_shared_sigalgs.pod" ], + "doc/html/man3/SSL_get_stream_id.html" => [ + "doc/man3/SSL_get_stream_id.pod" + ], + "doc/html/man3/SSL_get_stream_read_state.html" => [ + "doc/man3/SSL_get_stream_read_state.pod" + ], + "doc/html/man3/SSL_get_value_uint.html" => [ + "doc/man3/SSL_get_value_uint.pod" + ], "doc/html/man3/SSL_get_verify_result.html" => [ "doc/man3/SSL_get_verify_result.pod" ], @@ -12722,9 +14783,15 @@ our %unified_info = ( "doc/html/man3/SSL_group_to_name.html" => [ "doc/man3/SSL_group_to_name.pod" ], + "doc/html/man3/SSL_handle_events.html" => [ + "doc/man3/SSL_handle_events.pod" + ], "doc/html/man3/SSL_in_init.html" => [ "doc/man3/SSL_in_init.pod" ], + "doc/html/man3/SSL_inject_net_dgram.html" => [ + "doc/man3/SSL_inject_net_dgram.pod" + ], "doc/html/man3/SSL_key_update.html" => [ "doc/man3/SSL_key_update.pod" ], @@ -12737,9 +14804,21 @@ our %unified_info = ( "doc/html/man3/SSL_new.html" => [ "doc/man3/SSL_new.pod" ], + "doc/html/man3/SSL_new_domain.html" => [ + "doc/man3/SSL_new_domain.pod" + ], + "doc/html/man3/SSL_new_listener.html" => [ + "doc/man3/SSL_new_listener.pod" + ], + "doc/html/man3/SSL_new_stream.html" => [ + "doc/man3/SSL_new_stream.pod" + ], "doc/html/man3/SSL_pending.html" => [ "doc/man3/SSL_pending.pod" ], + "doc/html/man3/SSL_poll.html" => [ + "doc/man3/SSL_poll.pod" + ], "doc/html/man3/SSL_read.html" => [ "doc/man3/SSL_read.pod" ], @@ -12755,24 +14834,45 @@ our %unified_info = ( "doc/html/man3/SSL_set1_host.html" => [ "doc/man3/SSL_set1_host.pod" ], + "doc/html/man3/SSL_set1_initial_peer_addr.html" => [ + "doc/man3/SSL_set1_initial_peer_addr.pod" + ], + "doc/html/man3/SSL_set1_server_cert_type.html" => [ + "doc/man3/SSL_set1_server_cert_type.pod" + ], "doc/html/man3/SSL_set_async_callback.html" => [ "doc/man3/SSL_set_async_callback.pod" ], "doc/html/man3/SSL_set_bio.html" => [ "doc/man3/SSL_set_bio.pod" ], + "doc/html/man3/SSL_set_blocking_mode.html" => [ + "doc/man3/SSL_set_blocking_mode.pod" + ], "doc/html/man3/SSL_set_connect_state.html" => [ "doc/man3/SSL_set_connect_state.pod" ], + "doc/html/man3/SSL_set_default_stream_mode.html" => [ + "doc/man3/SSL_set_default_stream_mode.pod" + ], "doc/html/man3/SSL_set_fd.html" => [ "doc/man3/SSL_set_fd.pod" ], + "doc/html/man3/SSL_set_incoming_stream_policy.html" => [ + "doc/man3/SSL_set_incoming_stream_policy.pod" + ], + "doc/html/man3/SSL_set_quic_tls_cbs.html" => [ + "doc/man3/SSL_set_quic_tls_cbs.pod" + ], "doc/html/man3/SSL_set_retry_verify.html" => [ "doc/man3/SSL_set_retry_verify.pod" ], "doc/html/man3/SSL_set_session.html" => [ "doc/man3/SSL_set_session.pod" ], + "doc/html/man3/SSL_set_session_secret_cb.html" => [ + "doc/man3/SSL_set_session_secret_cb.pod" + ], "doc/html/man3/SSL_set_shutdown.html" => [ "doc/man3/SSL_set_shutdown.pod" ], @@ -12785,6 +14885,12 @@ our %unified_info = ( "doc/html/man3/SSL_state_string.html" => [ "doc/man3/SSL_state_string.pod" ], + "doc/html/man3/SSL_stream_conclude.html" => [ + "doc/man3/SSL_stream_conclude.pod" + ], + "doc/html/man3/SSL_stream_reset.html" => [ + "doc/man3/SSL_stream_reset.pod" + ], "doc/html/man3/SSL_want.html" => [ "doc/man3/SSL_want.pod" ], @@ -12794,8 +14900,8 @@ our %unified_info = ( "doc/html/man3/TS_RESP_CTX_new.html" => [ "doc/man3/TS_RESP_CTX_new.pod" ], - "doc/html/man3/TS_VERIFY_CTX_set_certs.html" => [ - "doc/man3/TS_VERIFY_CTX_set_certs.pod" + "doc/html/man3/TS_VERIFY_CTX.html" => [ + "doc/man3/TS_VERIFY_CTX.pod" ], "doc/html/man3/UI_STRING.html" => [ "doc/man3/UI_STRING.pod" @@ -12815,6 +14921,21 @@ our %unified_info = ( "doc/html/man3/X509V3_set_ctx.html" => [ "doc/man3/X509V3_set_ctx.pod" ], + "doc/html/man3/X509_ACERT_add1_attr.html" => [ + "doc/man3/X509_ACERT_add1_attr.pod" + ], + "doc/html/man3/X509_ACERT_add_attr_nconf.html" => [ + "doc/man3/X509_ACERT_add_attr_nconf.pod" + ], + "doc/html/man3/X509_ACERT_get0_holder_baseCertId.html" => [ + "doc/man3/X509_ACERT_get0_holder_baseCertId.pod" + ], + "doc/html/man3/X509_ACERT_get_attr.html" => [ + "doc/man3/X509_ACERT_get_attr.pod" + ], + "doc/html/man3/X509_ACERT_print_ex.html" => [ + "doc/man3/X509_ACERT_print_ex.pod" + ], "doc/html/man3/X509_ALGOR_dup.html" => [ "doc/man3/X509_ALGOR_dup.pod" ], @@ -12863,6 +14984,9 @@ our %unified_info = ( "doc/html/man3/X509_SIG_get0.html" => [ "doc/man3/X509_SIG_get0.pod" ], + "doc/html/man3/X509_STORE_CTX_get_by_subject.html" => [ + "doc/man3/X509_STORE_CTX_get_by_subject.pod" + ], "doc/html/man3/X509_STORE_CTX_get_error.html" => [ "doc/man3/X509_STORE_CTX_get_error.pod" ], @@ -12929,6 +15053,9 @@ our %unified_info = ( "doc/html/man3/X509_get0_uids.html" => [ "doc/man3/X509_get0_uids.pod" ], + "doc/html/man3/X509_get_default_cert_file.html" => [ + "doc/man3/X509_get_default_cert_file.pod" + ], "doc/html/man3/X509_get_extension_flags.html" => [ "doc/man3/X509_get_extension_flags.pod" ], @@ -13052,9 +15179,15 @@ our %unified_info = ( "doc/html/man7/EVP_CIPHER-SM4.html" => [ "doc/man7/EVP_CIPHER-SM4.pod" ], + "doc/html/man7/EVP_KDF-ARGON2.html" => [ + "doc/man7/EVP_KDF-ARGON2.pod" + ], "doc/html/man7/EVP_KDF-HKDF.html" => [ "doc/man7/EVP_KDF-HKDF.pod" ], + "doc/html/man7/EVP_KDF-HMAC-DRBG.html" => [ + "doc/man7/EVP_KDF-HMAC-DRBG.pod" + ], "doc/html/man7/EVP_KDF-KB.html" => [ "doc/man7/EVP_KDF-KB.pod" ], @@ -13070,6 +15203,9 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-PKCS12KDF.html" => [ "doc/man7/EVP_KDF-PKCS12KDF.pod" ], + "doc/html/man7/EVP_KDF-PVKKDF.html" => [ + "doc/man7/EVP_KDF-PVKKDF.pod" + ], "doc/html/man7/EVP_KDF-SCRYPT.html" => [ "doc/man7/EVP_KDF-SCRYPT.pod" ], @@ -13094,9 +15230,18 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-X963.html" => [ "doc/man7/EVP_KDF-X963.pod" ], + "doc/html/man7/EVP_KEM-EC.html" => [ + "doc/man7/EVP_KEM-EC.pod" + ], + "doc/html/man7/EVP_KEM-ML-KEM.html" => [ + "doc/man7/EVP_KEM-ML-KEM.pod" + ], "doc/html/man7/EVP_KEM-RSA.html" => [ "doc/man7/EVP_KEM-RSA.pod" ], + "doc/html/man7/EVP_KEM-X25519.html" => [ + "doc/man7/EVP_KEM-X25519.pod" + ], "doc/html/man7/EVP_KEYEXCH-DH.html" => [ "doc/man7/EVP_KEYEXCH-DH.pod" ], @@ -13130,6 +15275,9 @@ our %unified_info = ( "doc/html/man7/EVP_MD-BLAKE2.html" => [ "doc/man7/EVP_MD-BLAKE2.pod" ], + "doc/html/man7/EVP_MD-KECCAK.html" => [ + "doc/man7/EVP_MD-KECCAK.pod" + ], "doc/html/man7/EVP_MD-MD2.html" => [ "doc/man7/EVP_MD-MD2.pod" ], @@ -13187,15 +15335,27 @@ our %unified_info = ( "doc/html/man7/EVP_PKEY-HMAC.html" => [ "doc/man7/EVP_PKEY-HMAC.pod" ], + "doc/html/man7/EVP_PKEY-ML-DSA.html" => [ + "doc/man7/EVP_PKEY-ML-DSA.pod" + ], + "doc/html/man7/EVP_PKEY-ML-KEM.html" => [ + "doc/man7/EVP_PKEY-ML-KEM.pod" + ], "doc/html/man7/EVP_PKEY-RSA.html" => [ "doc/man7/EVP_PKEY-RSA.pod" ], + "doc/html/man7/EVP_PKEY-SLH-DSA.html" => [ + "doc/man7/EVP_PKEY-SLH-DSA.pod" + ], "doc/html/man7/EVP_PKEY-SM2.html" => [ "doc/man7/EVP_PKEY-SM2.pod" ], "doc/html/man7/EVP_PKEY-X25519.html" => [ "doc/man7/EVP_PKEY-X25519.pod" ], + "doc/html/man7/EVP_RAND-CRNG-TEST.html" => [ + "doc/man7/EVP_RAND-CRNG-TEST.pod" + ], "doc/html/man7/EVP_RAND-CTR-DRBG.html" => [ "doc/man7/EVP_RAND-CTR-DRBG.pod" ], @@ -13205,6 +15365,9 @@ our %unified_info = ( "doc/html/man7/EVP_RAND-HMAC-DRBG.html" => [ "doc/man7/EVP_RAND-HMAC-DRBG.pod" ], + "doc/html/man7/EVP_RAND-JITTER.html" => [ + "doc/man7/EVP_RAND-JITTER.pod" + ], "doc/html/man7/EVP_RAND-SEED-SRC.html" => [ "doc/man7/EVP_RAND-SEED-SRC.pod" ], @@ -13226,9 +15389,15 @@ our %unified_info = ( "doc/html/man7/EVP_SIGNATURE-HMAC.html" => [ "doc/man7/EVP_SIGNATURE-HMAC.pod" ], + "doc/html/man7/EVP_SIGNATURE-ML-DSA.html" => [ + "doc/man7/EVP_SIGNATURE-ML-DSA.pod" + ], "doc/html/man7/EVP_SIGNATURE-RSA.html" => [ "doc/man7/EVP_SIGNATURE-RSA.pod" ], + "doc/html/man7/EVP_SIGNATURE-SLH-DSA.html" => [ + "doc/man7/EVP_SIGNATURE-SLH-DSA.pod" + ], "doc/html/man7/OSSL_PROVIDER-FIPS.html" => [ "doc/man7/OSSL_PROVIDER-FIPS.pod" ], @@ -13244,6 +15413,9 @@ our %unified_info = ( "doc/html/man7/OSSL_PROVIDER-null.html" => [ "doc/man7/OSSL_PROVIDER-null.pod" ], + "doc/html/man7/OSSL_STORE-winstore.html" => [ + "doc/man7/OSSL_STORE-winstore.pod" + ], "doc/html/man7/RAND.html" => [ "doc/man7/RAND.pod" ], @@ -13256,9 +15428,6 @@ our %unified_info = ( "doc/html/man7/bio.html" => [ "doc/man7/bio.pod" ], - "doc/html/man7/crypto.html" => [ - "doc/man7/crypto.pod" - ], "doc/html/man7/ct.html" => [ "doc/man7/ct.pod" ], @@ -13289,9 +15458,6 @@ our %unified_info = ( "doc/html/man7/life_cycle-rand.html" => [ "doc/man7/life_cycle-rand.pod" ], - "doc/html/man7/migration_guide.html" => [ - "doc/man7/migration_guide.pod" - ], "doc/html/man7/openssl-core.h.html" => [ "doc/man7/openssl-core.h.pod" ], @@ -13307,12 +15473,66 @@ our %unified_info = ( "doc/html/man7/openssl-glossary.html" => [ "doc/man7/openssl-glossary.pod" ], + "doc/html/man7/openssl-qlog.html" => [ + "doc/man7/openssl-qlog.pod" + ], + "doc/html/man7/openssl-quic-concurrency.html" => [ + "doc/man7/openssl-quic-concurrency.pod" + ], + "doc/html/man7/openssl-quic.html" => [ + "doc/man7/openssl-quic.pod" + ], "doc/html/man7/openssl-threads.html" => [ "doc/man7/openssl-threads.pod" ], "doc/html/man7/openssl_user_macros.html" => [ "doc/man7/openssl_user_macros.pod" ], + "doc/html/man7/ossl-guide-introduction.html" => [ + "doc/man7/ossl-guide-introduction.pod" + ], + "doc/html/man7/ossl-guide-libcrypto-introduction.html" => [ + "doc/man7/ossl-guide-libcrypto-introduction.pod" + ], + "doc/html/man7/ossl-guide-libraries-introduction.html" => [ + "doc/man7/ossl-guide-libraries-introduction.pod" + ], + "doc/html/man7/ossl-guide-libssl-introduction.html" => [ + "doc/man7/ossl-guide-libssl-introduction.pod" + ], + "doc/html/man7/ossl-guide-migration.html" => [ + "doc/man7/ossl-guide-migration.pod" + ], + "doc/html/man7/ossl-guide-quic-client-block.html" => [ + "doc/man7/ossl-guide-quic-client-block.pod" + ], + "doc/html/man7/ossl-guide-quic-client-non-block.html" => [ + "doc/man7/ossl-guide-quic-client-non-block.pod" + ], + "doc/html/man7/ossl-guide-quic-introduction.html" => [ + "doc/man7/ossl-guide-quic-introduction.pod" + ], + "doc/html/man7/ossl-guide-quic-multi-stream.html" => [ + "doc/man7/ossl-guide-quic-multi-stream.pod" + ], + "doc/html/man7/ossl-guide-quic-server-block.html" => [ + "doc/man7/ossl-guide-quic-server-block.pod" + ], + "doc/html/man7/ossl-guide-quic-server-non-block.html" => [ + "doc/man7/ossl-guide-quic-server-non-block.pod" + ], + "doc/html/man7/ossl-guide-tls-client-block.html" => [ + "doc/man7/ossl-guide-tls-client-block.pod" + ], + "doc/html/man7/ossl-guide-tls-client-non-block.html" => [ + "doc/man7/ossl-guide-tls-client-non-block.pod" + ], + "doc/html/man7/ossl-guide-tls-introduction.html" => [ + "doc/man7/ossl-guide-tls-introduction.pod" + ], + "doc/html/man7/ossl-guide-tls-server-block.html" => [ + "doc/man7/ossl-guide-tls-server-block.pod" + ], "doc/html/man7/ossl_store-file.html" => [ "doc/man7/ossl_store-file.pod" ], @@ -13367,6 +15587,9 @@ our %unified_info = ( "doc/html/man7/provider-signature.html" => [ "doc/man7/provider-signature.pod" ], + "doc/html/man7/provider-skeymgmt.html" => [ + "doc/man7/provider-skeymgmt.pod" + ], "doc/html/man7/provider-storemgmt.html" => [ "doc/man7/provider-storemgmt.pod" ], @@ -13376,9 +15599,6 @@ our %unified_info = ( "doc/html/man7/proxy-certificates.html" => [ "doc/man7/proxy-certificates.pod" ], - "doc/html/man7/ssl.html" => [ - "doc/man7/ssl.pod" - ], "doc/html/man7/x509.html" => [ "doc/man7/x509.pod" ], @@ -13526,6 +15746,9 @@ our %unified_info = ( "doc/man/man1/openssl-sess_id.1" => [ "doc/man1/openssl-sess_id.pod" ], + "doc/man/man1/openssl-skeyutl.1" => [ + "doc/man1/openssl-skeyutl.pod" + ], "doc/man/man1/openssl-smime.1" => [ "doc/man1/openssl-smime.pod" ], @@ -13667,6 +15890,9 @@ our %unified_info = ( "doc/man/man3/BIO_get_ex_new_index.3" => [ "doc/man3/BIO_get_ex_new_index.pod" ], + "doc/man/man3/BIO_get_rpoll_descriptor.3" => [ + "doc/man3/BIO_get_rpoll_descriptor.pod" + ], "doc/man/man3/BIO_meth_new.3" => [ "doc/man3/BIO_meth_new.pod" ], @@ -13703,6 +15929,9 @@ our %unified_info = ( "doc/man/man3/BIO_s_datagram.3" => [ "doc/man3/BIO_s_datagram.pod" ], + "doc/man/man3/BIO_s_dgram_pair.3" => [ + "doc/man3/BIO_s_dgram_pair.pod" + ], "doc/man/man3/BIO_s_fd.3" => [ "doc/man3/BIO_s_fd.pod" ], @@ -13718,6 +15947,9 @@ our %unified_info = ( "doc/man/man3/BIO_s_socket.3" => [ "doc/man3/BIO_s_socket.pod" ], + "doc/man/man3/BIO_sendmmsg.3" => [ + "doc/man3/BIO_sendmmsg.pod" + ], "doc/man/man3/BIO_set_callback.3" => [ "doc/man3/BIO_set_callback.pod" ], @@ -13790,6 +16022,9 @@ our %unified_info = ( "doc/man/man3/BUF_MEM_new.3" => [ "doc/man3/BUF_MEM_new.pod" ], + "doc/man/man3/CMAC_CTX.3" => [ + "doc/man3/CMAC_CTX.pod" + ], "doc/man/man3/CMS_EncryptedData_decrypt.3" => [ "doc/man3/CMS_EncryptedData_decrypt.pod" ], @@ -13856,6 +16091,9 @@ our %unified_info = ( "doc/man/man3/CMS_verify_receipt.3" => [ "doc/man3/CMS_verify_receipt.pod" ], + "doc/man/man3/COMP_CTX_new.3" => [ + "doc/man3/COMP_CTX_new.pod" + ], "doc/man/man3/CONF_modules_free.3" => [ "doc/man3/CONF_modules_free.pod" ], @@ -13955,6 +16193,12 @@ our %unified_info = ( "doc/man/man3/DTLS_set_timer_cb.3" => [ "doc/man3/DTLS_set_timer_cb.pod" ], + "doc/man/man3/DTLSv1_get_timeout.3" => [ + "doc/man3/DTLSv1_get_timeout.pod" + ], + "doc/man/man3/DTLSv1_handle_timeout.3" => [ + "doc/man3/DTLSv1_handle_timeout.pod" + ], "doc/man/man3/DTLSv1_listen.3" => [ "doc/man3/DTLSv1_listen.pod" ], @@ -14093,6 +16337,9 @@ our %unified_info = ( "doc/man/man3/EVP_PKEY_CTX_get0_pkey.3" => [ "doc/man3/EVP_PKEY_CTX_get0_pkey.pod" ], + "doc/man/man3/EVP_PKEY_CTX_get_algor.3" => [ + "doc/man3/EVP_PKEY_CTX_get_algor.pod" + ], "doc/man/man3/EVP_PKEY_CTX_new.3" => [ "doc/man3/EVP_PKEY_CTX_new.pod" ], @@ -14210,6 +16457,12 @@ our %unified_info = ( "doc/man/man3/EVP_SIGNATURE.3" => [ "doc/man3/EVP_SIGNATURE.pod" ], + "doc/man/man3/EVP_SKEY.3" => [ + "doc/man3/EVP_SKEY.pod" + ], + "doc/man/man3/EVP_SKEYMGMT.3" => [ + "doc/man3/EVP_SKEYMGMT.pod" + ], "doc/man/man3/EVP_SealInit.3" => [ "doc/man3/EVP_SealInit.pod" ], @@ -14297,6 +16550,9 @@ our %unified_info = ( "doc/man/man3/EVP_whirlpool.3" => [ "doc/man3/EVP_whirlpool.pod" ], + "doc/man/man3/GENERAL_NAME.3" => [ + "doc/man3/GENERAL_NAME.pod" + ], "doc/man/man3/HMAC.3" => [ "doc/man3/HMAC.pod" ], @@ -14369,9 +16625,15 @@ our %unified_info = ( "doc/man/man3/OPENSSL_load_builtin_modules.3" => [ "doc/man3/OPENSSL_load_builtin_modules.pod" ], + "doc/man/man3/OPENSSL_load_u16_le.3" => [ + "doc/man3/OPENSSL_load_u16_le.pod" + ], "doc/man/man3/OPENSSL_malloc.3" => [ "doc/man3/OPENSSL_malloc.pod" ], + "doc/man/man3/OPENSSL_riscvcap.3" => [ + "doc/man3/OPENSSL_riscvcap.pod" + ], "doc/man/man3/OPENSSL_s390xcap.3" => [ "doc/man3/OPENSSL_s390xcap.pod" ], @@ -14387,12 +16649,18 @@ our %unified_info = ( "doc/man/man3/OSSL_CALLBACK.3" => [ "doc/man3/OSSL_CALLBACK.pod" ], + "doc/man/man3/OSSL_CMP_ATAV_set0.3" => [ + "doc/man3/OSSL_CMP_ATAV_set0.pod" + ], "doc/man/man3/OSSL_CMP_CTX_new.3" => [ "doc/man3/OSSL_CMP_CTX_new.pod" ], "doc/man/man3/OSSL_CMP_HDR_get0_transactionID.3" => [ "doc/man3/OSSL_CMP_HDR_get0_transactionID.pod" ], + "doc/man/man3/OSSL_CMP_ITAV_new_caCerts.3" => [ + "doc/man3/OSSL_CMP_ITAV_new_caCerts.pod" + ], "doc/man/man3/OSSL_CMP_ITAV_set0.3" => [ "doc/man3/OSSL_CMP_ITAV_set0.pod" ], @@ -14462,9 +16730,18 @@ our %unified_info = ( "doc/man/man3/OSSL_ENCODER_to_bio.3" => [ "doc/man3/OSSL_ENCODER_to_bio.pod" ], + "doc/man/man3/OSSL_ERR_STATE_save.3" => [ + "doc/man3/OSSL_ERR_STATE_save.pod" + ], "doc/man/man3/OSSL_ESS_check_signing_certs.3" => [ "doc/man3/OSSL_ESS_check_signing_certs.pod" ], + "doc/man/man3/OSSL_GENERAL_NAMES_print.3" => [ + "doc/man3/OSSL_GENERAL_NAMES_print.pod" + ], + "doc/man/man3/OSSL_HPKE_CTX_new.3" => [ + "doc/man3/OSSL_HPKE_CTX_new.pod" + ], "doc/man/man3/OSSL_HTTP_REQ_CTX.3" => [ "doc/man3/OSSL_HTTP_REQ_CTX.pod" ], @@ -14474,12 +16751,24 @@ our %unified_info = ( "doc/man/man3/OSSL_HTTP_transfer.3" => [ "doc/man3/OSSL_HTTP_transfer.pod" ], + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX.3" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX.pod" + ], + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX_print.3" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX_print.pod" + ], + "doc/man/man3/OSSL_INDICATOR_set_callback.3" => [ + "doc/man3/OSSL_INDICATOR_set_callback.pod" + ], "doc/man/man3/OSSL_ITEM.3" => [ "doc/man3/OSSL_ITEM.pod" ], "doc/man/man3/OSSL_LIB_CTX.3" => [ "doc/man3/OSSL_LIB_CTX.pod" ], + "doc/man/man3/OSSL_LIB_CTX_set_conf_diagnostics.3" => [ + "doc/man3/OSSL_LIB_CTX_set_conf_diagnostics.pod" + ], "doc/man/man3/OSSL_PARAM.3" => [ "doc/man3/OSSL_PARAM.pod" ], @@ -14495,9 +16784,15 @@ our %unified_info = ( "doc/man/man3/OSSL_PARAM_int.3" => [ "doc/man3/OSSL_PARAM_int.pod" ], + "doc/man/man3/OSSL_PARAM_print_to_bio.3" => [ + "doc/man3/OSSL_PARAM_print_to_bio.pod" + ], "doc/man/man3/OSSL_PROVIDER.3" => [ "doc/man3/OSSL_PROVIDER.pod" ], + "doc/man/man3/OSSL_QUIC_client_method.3" => [ + "doc/man3/OSSL_QUIC_client_method.pod" + ], "doc/man/man3/OSSL_SELF_TEST_new.3" => [ "doc/man3/OSSL_SELF_TEST_new.pod" ], @@ -14522,6 +16817,9 @@ our %unified_info = ( "doc/man/man3/OSSL_STORE_open.3" => [ "doc/man3/OSSL_STORE_open.pod" ], + "doc/man/man3/OSSL_sleep.3" => [ + "doc/man3/OSSL_sleep.pod" + ], "doc/man/man3/OSSL_trace_enabled.3" => [ "doc/man3/OSSL_trace_enabled.pod" ], @@ -14537,6 +16835,9 @@ our %unified_info = ( "doc/man/man3/OpenSSL_version.3" => [ "doc/man3/OpenSSL_version.pod" ], + "doc/man/man3/PBMAC1_get1_pbkdf2_param.3" => [ + "doc/man3/PBMAC1_get1_pbkdf2_param.pod" + ], "doc/man/man3/PEM_X509_INFO_read_bio_ex.3" => [ "doc/man3/PEM_X509_INFO_read_bio_ex.pod" ], @@ -14573,6 +16874,9 @@ our %unified_info = ( "doc/man/man3/PKCS12_SAFEBAG_get1_cert.3" => [ "doc/man3/PKCS12_SAFEBAG_get1_cert.pod" ], + "doc/man/man3/PKCS12_SAFEBAG_set0_attrs.3" => [ + "doc/man3/PKCS12_SAFEBAG_set0_attrs.pod" + ], "doc/man/man3/PKCS12_add1_attr_by_NID.3" => [ "doc/man3/PKCS12_add1_attr_by_NID.pod" ], @@ -14846,6 +17150,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set0_CA_list.3" => [ "doc/man3/SSL_CTX_set0_CA_list.pod" ], + "doc/man/man3/SSL_CTX_set1_cert_comp_preference.3" => [ + "doc/man3/SSL_CTX_set1_cert_comp_preference.pod" + ], "doc/man/man3/SSL_CTX_set1_curves.3" => [ "doc/man3/SSL_CTX_set1_curves.pod" ], @@ -14885,6 +17192,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_default_passwd_cb.3" => [ "doc/man3/SSL_CTX_set_default_passwd_cb.pod" ], + "doc/man/man3/SSL_CTX_set_domain_flags.3" => [ + "doc/man3/SSL_CTX_set_domain_flags.pod" + ], "doc/man/man3/SSL_CTX_set_generate_session_id.3" => [ "doc/man3/SSL_CTX_set_generate_session_id.pod" ], @@ -14906,6 +17216,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_msg_callback.3" => [ "doc/man3/SSL_CTX_set_msg_callback.pod" ], + "doc/man/man3/SSL_CTX_set_new_pending_conn_cb.3" => [ + "doc/man3/SSL_CTX_set_new_pending_conn_cb.pod" + ], "doc/man/man3/SSL_CTX_set_num_tickets.3" => [ "doc/man3/SSL_CTX_set_num_tickets.pod" ], @@ -15020,6 +17333,9 @@ our %unified_info = ( "doc/man/man3/SSL_accept.3" => [ "doc/man3/SSL_accept.pod" ], + "doc/man/man3/SSL_accept_stream.3" => [ + "doc/man3/SSL_accept_stream.pod" + ], "doc/man/man3/SSL_alert_type_string.3" => [ "doc/man3/SSL_alert_type_string.pod" ], @@ -15047,9 +17363,21 @@ our %unified_info = ( "doc/man/man3/SSL_free.3" => [ "doc/man3/SSL_free.pod" ], + "doc/man/man3/SSL_get0_connection.3" => [ + "doc/man3/SSL_get0_connection.pod" + ], + "doc/man/man3/SSL_get0_group_name.3" => [ + "doc/man3/SSL_get0_group_name.pod" + ], + "doc/man/man3/SSL_get0_peer_rpk.3" => [ + "doc/man3/SSL_get0_peer_rpk.pod" + ], "doc/man/man3/SSL_get0_peer_scts.3" => [ "doc/man3/SSL_get0_peer_scts.pod" ], + "doc/man/man3/SSL_get1_builtin_sigalgs.3" => [ + "doc/man3/SSL_get1_builtin_sigalgs.pod" + ], "doc/man/man3/SSL_get_SSL_CTX.3" => [ "doc/man3/SSL_get_SSL_CTX.pod" ], @@ -15065,6 +17393,9 @@ our %unified_info = ( "doc/man/man3/SSL_get_client_random.3" => [ "doc/man3/SSL_get_client_random.pod" ], + "doc/man/man3/SSL_get_conn_close_info.3" => [ + "doc/man3/SSL_get_conn_close_info.pod" + ], "doc/man/man3/SSL_get_current_cipher.3" => [ "doc/man3/SSL_get_current_cipher.pod" ], @@ -15074,12 +17405,18 @@ our %unified_info = ( "doc/man/man3/SSL_get_error.3" => [ "doc/man3/SSL_get_error.pod" ], + "doc/man/man3/SSL_get_event_timeout.3" => [ + "doc/man3/SSL_get_event_timeout.pod" + ], "doc/man/man3/SSL_get_extms_support.3" => [ "doc/man3/SSL_get_extms_support.pod" ], "doc/man/man3/SSL_get_fd.3" => [ "doc/man3/SSL_get_fd.pod" ], + "doc/man/man3/SSL_get_handshake_rtt.3" => [ + "doc/man3/SSL_get_handshake_rtt.pod" + ], "doc/man/man3/SSL_get_peer_cert_chain.3" => [ "doc/man3/SSL_get_peer_cert_chain.pod" ], @@ -15098,12 +17435,24 @@ our %unified_info = ( "doc/man/man3/SSL_get_rbio.3" => [ "doc/man3/SSL_get_rbio.pod" ], + "doc/man/man3/SSL_get_rpoll_descriptor.3" => [ + "doc/man3/SSL_get_rpoll_descriptor.pod" + ], "doc/man/man3/SSL_get_session.3" => [ "doc/man3/SSL_get_session.pod" ], "doc/man/man3/SSL_get_shared_sigalgs.3" => [ "doc/man3/SSL_get_shared_sigalgs.pod" ], + "doc/man/man3/SSL_get_stream_id.3" => [ + "doc/man3/SSL_get_stream_id.pod" + ], + "doc/man/man3/SSL_get_stream_read_state.3" => [ + "doc/man3/SSL_get_stream_read_state.pod" + ], + "doc/man/man3/SSL_get_value_uint.3" => [ + "doc/man3/SSL_get_value_uint.pod" + ], "doc/man/man3/SSL_get_verify_result.3" => [ "doc/man3/SSL_get_verify_result.pod" ], @@ -15113,9 +17462,15 @@ our %unified_info = ( "doc/man/man3/SSL_group_to_name.3" => [ "doc/man3/SSL_group_to_name.pod" ], + "doc/man/man3/SSL_handle_events.3" => [ + "doc/man3/SSL_handle_events.pod" + ], "doc/man/man3/SSL_in_init.3" => [ "doc/man3/SSL_in_init.pod" ], + "doc/man/man3/SSL_inject_net_dgram.3" => [ + "doc/man3/SSL_inject_net_dgram.pod" + ], "doc/man/man3/SSL_key_update.3" => [ "doc/man3/SSL_key_update.pod" ], @@ -15128,9 +17483,21 @@ our %unified_info = ( "doc/man/man3/SSL_new.3" => [ "doc/man3/SSL_new.pod" ], + "doc/man/man3/SSL_new_domain.3" => [ + "doc/man3/SSL_new_domain.pod" + ], + "doc/man/man3/SSL_new_listener.3" => [ + "doc/man3/SSL_new_listener.pod" + ], + "doc/man/man3/SSL_new_stream.3" => [ + "doc/man3/SSL_new_stream.pod" + ], "doc/man/man3/SSL_pending.3" => [ "doc/man3/SSL_pending.pod" ], + "doc/man/man3/SSL_poll.3" => [ + "doc/man3/SSL_poll.pod" + ], "doc/man/man3/SSL_read.3" => [ "doc/man3/SSL_read.pod" ], @@ -15146,24 +17513,45 @@ our %unified_info = ( "doc/man/man3/SSL_set1_host.3" => [ "doc/man3/SSL_set1_host.pod" ], + "doc/man/man3/SSL_set1_initial_peer_addr.3" => [ + "doc/man3/SSL_set1_initial_peer_addr.pod" + ], + "doc/man/man3/SSL_set1_server_cert_type.3" => [ + "doc/man3/SSL_set1_server_cert_type.pod" + ], "doc/man/man3/SSL_set_async_callback.3" => [ "doc/man3/SSL_set_async_callback.pod" ], "doc/man/man3/SSL_set_bio.3" => [ "doc/man3/SSL_set_bio.pod" ], + "doc/man/man3/SSL_set_blocking_mode.3" => [ + "doc/man3/SSL_set_blocking_mode.pod" + ], "doc/man/man3/SSL_set_connect_state.3" => [ "doc/man3/SSL_set_connect_state.pod" ], + "doc/man/man3/SSL_set_default_stream_mode.3" => [ + "doc/man3/SSL_set_default_stream_mode.pod" + ], "doc/man/man3/SSL_set_fd.3" => [ "doc/man3/SSL_set_fd.pod" ], + "doc/man/man3/SSL_set_incoming_stream_policy.3" => [ + "doc/man3/SSL_set_incoming_stream_policy.pod" + ], + "doc/man/man3/SSL_set_quic_tls_cbs.3" => [ + "doc/man3/SSL_set_quic_tls_cbs.pod" + ], "doc/man/man3/SSL_set_retry_verify.3" => [ "doc/man3/SSL_set_retry_verify.pod" ], "doc/man/man3/SSL_set_session.3" => [ "doc/man3/SSL_set_session.pod" ], + "doc/man/man3/SSL_set_session_secret_cb.3" => [ + "doc/man3/SSL_set_session_secret_cb.pod" + ], "doc/man/man3/SSL_set_shutdown.3" => [ "doc/man3/SSL_set_shutdown.pod" ], @@ -15176,6 +17564,12 @@ our %unified_info = ( "doc/man/man3/SSL_state_string.3" => [ "doc/man3/SSL_state_string.pod" ], + "doc/man/man3/SSL_stream_conclude.3" => [ + "doc/man3/SSL_stream_conclude.pod" + ], + "doc/man/man3/SSL_stream_reset.3" => [ + "doc/man3/SSL_stream_reset.pod" + ], "doc/man/man3/SSL_want.3" => [ "doc/man3/SSL_want.pod" ], @@ -15185,8 +17579,8 @@ our %unified_info = ( "doc/man/man3/TS_RESP_CTX_new.3" => [ "doc/man3/TS_RESP_CTX_new.pod" ], - "doc/man/man3/TS_VERIFY_CTX_set_certs.3" => [ - "doc/man3/TS_VERIFY_CTX_set_certs.pod" + "doc/man/man3/TS_VERIFY_CTX.3" => [ + "doc/man3/TS_VERIFY_CTX.pod" ], "doc/man/man3/UI_STRING.3" => [ "doc/man3/UI_STRING.pod" @@ -15206,6 +17600,21 @@ our %unified_info = ( "doc/man/man3/X509V3_set_ctx.3" => [ "doc/man3/X509V3_set_ctx.pod" ], + "doc/man/man3/X509_ACERT_add1_attr.3" => [ + "doc/man3/X509_ACERT_add1_attr.pod" + ], + "doc/man/man3/X509_ACERT_add_attr_nconf.3" => [ + "doc/man3/X509_ACERT_add_attr_nconf.pod" + ], + "doc/man/man3/X509_ACERT_get0_holder_baseCertId.3" => [ + "doc/man3/X509_ACERT_get0_holder_baseCertId.pod" + ], + "doc/man/man3/X509_ACERT_get_attr.3" => [ + "doc/man3/X509_ACERT_get_attr.pod" + ], + "doc/man/man3/X509_ACERT_print_ex.3" => [ + "doc/man3/X509_ACERT_print_ex.pod" + ], "doc/man/man3/X509_ALGOR_dup.3" => [ "doc/man3/X509_ALGOR_dup.pod" ], @@ -15254,6 +17663,9 @@ our %unified_info = ( "doc/man/man3/X509_SIG_get0.3" => [ "doc/man3/X509_SIG_get0.pod" ], + "doc/man/man3/X509_STORE_CTX_get_by_subject.3" => [ + "doc/man3/X509_STORE_CTX_get_by_subject.pod" + ], "doc/man/man3/X509_STORE_CTX_get_error.3" => [ "doc/man3/X509_STORE_CTX_get_error.pod" ], @@ -15320,6 +17732,9 @@ our %unified_info = ( "doc/man/man3/X509_get0_uids.3" => [ "doc/man3/X509_get0_uids.pod" ], + "doc/man/man3/X509_get_default_cert_file.3" => [ + "doc/man3/X509_get_default_cert_file.pod" + ], "doc/man/man3/X509_get_extension_flags.3" => [ "doc/man3/X509_get_extension_flags.pod" ], @@ -15443,9 +17858,15 @@ our %unified_info = ( "doc/man/man7/EVP_CIPHER-SM4.7" => [ "doc/man7/EVP_CIPHER-SM4.pod" ], + "doc/man/man7/EVP_KDF-ARGON2.7" => [ + "doc/man7/EVP_KDF-ARGON2.pod" + ], "doc/man/man7/EVP_KDF-HKDF.7" => [ "doc/man7/EVP_KDF-HKDF.pod" ], + "doc/man/man7/EVP_KDF-HMAC-DRBG.7" => [ + "doc/man7/EVP_KDF-HMAC-DRBG.pod" + ], "doc/man/man7/EVP_KDF-KB.7" => [ "doc/man7/EVP_KDF-KB.pod" ], @@ -15461,6 +17882,9 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-PKCS12KDF.7" => [ "doc/man7/EVP_KDF-PKCS12KDF.pod" ], + "doc/man/man7/EVP_KDF-PVKKDF.7" => [ + "doc/man7/EVP_KDF-PVKKDF.pod" + ], "doc/man/man7/EVP_KDF-SCRYPT.7" => [ "doc/man7/EVP_KDF-SCRYPT.pod" ], @@ -15485,9 +17909,18 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-X963.7" => [ "doc/man7/EVP_KDF-X963.pod" ], + "doc/man/man7/EVP_KEM-EC.7" => [ + "doc/man7/EVP_KEM-EC.pod" + ], + "doc/man/man7/EVP_KEM-ML-KEM.7" => [ + "doc/man7/EVP_KEM-ML-KEM.pod" + ], "doc/man/man7/EVP_KEM-RSA.7" => [ "doc/man7/EVP_KEM-RSA.pod" ], + "doc/man/man7/EVP_KEM-X25519.7" => [ + "doc/man7/EVP_KEM-X25519.pod" + ], "doc/man/man7/EVP_KEYEXCH-DH.7" => [ "doc/man7/EVP_KEYEXCH-DH.pod" ], @@ -15521,6 +17954,9 @@ our %unified_info = ( "doc/man/man7/EVP_MD-BLAKE2.7" => [ "doc/man7/EVP_MD-BLAKE2.pod" ], + "doc/man/man7/EVP_MD-KECCAK.7" => [ + "doc/man7/EVP_MD-KECCAK.pod" + ], "doc/man/man7/EVP_MD-MD2.7" => [ "doc/man7/EVP_MD-MD2.pod" ], @@ -15578,15 +18014,27 @@ our %unified_info = ( "doc/man/man7/EVP_PKEY-HMAC.7" => [ "doc/man7/EVP_PKEY-HMAC.pod" ], + "doc/man/man7/EVP_PKEY-ML-DSA.7" => [ + "doc/man7/EVP_PKEY-ML-DSA.pod" + ], + "doc/man/man7/EVP_PKEY-ML-KEM.7" => [ + "doc/man7/EVP_PKEY-ML-KEM.pod" + ], "doc/man/man7/EVP_PKEY-RSA.7" => [ "doc/man7/EVP_PKEY-RSA.pod" ], + "doc/man/man7/EVP_PKEY-SLH-DSA.7" => [ + "doc/man7/EVP_PKEY-SLH-DSA.pod" + ], "doc/man/man7/EVP_PKEY-SM2.7" => [ "doc/man7/EVP_PKEY-SM2.pod" ], "doc/man/man7/EVP_PKEY-X25519.7" => [ "doc/man7/EVP_PKEY-X25519.pod" ], + "doc/man/man7/EVP_RAND-CRNG-TEST.7" => [ + "doc/man7/EVP_RAND-CRNG-TEST.pod" + ], "doc/man/man7/EVP_RAND-CTR-DRBG.7" => [ "doc/man7/EVP_RAND-CTR-DRBG.pod" ], @@ -15596,6 +18044,9 @@ our %unified_info = ( "doc/man/man7/EVP_RAND-HMAC-DRBG.7" => [ "doc/man7/EVP_RAND-HMAC-DRBG.pod" ], + "doc/man/man7/EVP_RAND-JITTER.7" => [ + "doc/man7/EVP_RAND-JITTER.pod" + ], "doc/man/man7/EVP_RAND-SEED-SRC.7" => [ "doc/man7/EVP_RAND-SEED-SRC.pod" ], @@ -15617,9 +18068,15 @@ our %unified_info = ( "doc/man/man7/EVP_SIGNATURE-HMAC.7" => [ "doc/man7/EVP_SIGNATURE-HMAC.pod" ], + "doc/man/man7/EVP_SIGNATURE-ML-DSA.7" => [ + "doc/man7/EVP_SIGNATURE-ML-DSA.pod" + ], "doc/man/man7/EVP_SIGNATURE-RSA.7" => [ "doc/man7/EVP_SIGNATURE-RSA.pod" ], + "doc/man/man7/EVP_SIGNATURE-SLH-DSA.7" => [ + "doc/man7/EVP_SIGNATURE-SLH-DSA.pod" + ], "doc/man/man7/OSSL_PROVIDER-FIPS.7" => [ "doc/man7/OSSL_PROVIDER-FIPS.pod" ], @@ -15635,6 +18092,9 @@ our %unified_info = ( "doc/man/man7/OSSL_PROVIDER-null.7" => [ "doc/man7/OSSL_PROVIDER-null.pod" ], + "doc/man/man7/OSSL_STORE-winstore.7" => [ + "doc/man7/OSSL_STORE-winstore.pod" + ], "doc/man/man7/RAND.7" => [ "doc/man7/RAND.pod" ], @@ -15647,9 +18107,6 @@ our %unified_info = ( "doc/man/man7/bio.7" => [ "doc/man7/bio.pod" ], - "doc/man/man7/crypto.7" => [ - "doc/man7/crypto.pod" - ], "doc/man/man7/ct.7" => [ "doc/man7/ct.pod" ], @@ -15680,9 +18137,6 @@ our %unified_info = ( "doc/man/man7/life_cycle-rand.7" => [ "doc/man7/life_cycle-rand.pod" ], - "doc/man/man7/migration_guide.7" => [ - "doc/man7/migration_guide.pod" - ], "doc/man/man7/openssl-core.h.7" => [ "doc/man7/openssl-core.h.pod" ], @@ -15698,12 +18152,66 @@ our %unified_info = ( "doc/man/man7/openssl-glossary.7" => [ "doc/man7/openssl-glossary.pod" ], + "doc/man/man7/openssl-qlog.7" => [ + "doc/man7/openssl-qlog.pod" + ], + "doc/man/man7/openssl-quic-concurrency.7" => [ + "doc/man7/openssl-quic-concurrency.pod" + ], + "doc/man/man7/openssl-quic.7" => [ + "doc/man7/openssl-quic.pod" + ], "doc/man/man7/openssl-threads.7" => [ "doc/man7/openssl-threads.pod" ], "doc/man/man7/openssl_user_macros.7" => [ "doc/man7/openssl_user_macros.pod" ], + "doc/man/man7/ossl-guide-introduction.7" => [ + "doc/man7/ossl-guide-introduction.pod" + ], + "doc/man/man7/ossl-guide-libcrypto-introduction.7" => [ + "doc/man7/ossl-guide-libcrypto-introduction.pod" + ], + "doc/man/man7/ossl-guide-libraries-introduction.7" => [ + "doc/man7/ossl-guide-libraries-introduction.pod" + ], + "doc/man/man7/ossl-guide-libssl-introduction.7" => [ + "doc/man7/ossl-guide-libssl-introduction.pod" + ], + "doc/man/man7/ossl-guide-migration.7" => [ + "doc/man7/ossl-guide-migration.pod" + ], + "doc/man/man7/ossl-guide-quic-client-block.7" => [ + "doc/man7/ossl-guide-quic-client-block.pod" + ], + "doc/man/man7/ossl-guide-quic-client-non-block.7" => [ + "doc/man7/ossl-guide-quic-client-non-block.pod" + ], + "doc/man/man7/ossl-guide-quic-introduction.7" => [ + "doc/man7/ossl-guide-quic-introduction.pod" + ], + "doc/man/man7/ossl-guide-quic-multi-stream.7" => [ + "doc/man7/ossl-guide-quic-multi-stream.pod" + ], + "doc/man/man7/ossl-guide-quic-server-block.7" => [ + "doc/man7/ossl-guide-quic-server-block.pod" + ], + "doc/man/man7/ossl-guide-quic-server-non-block.7" => [ + "doc/man7/ossl-guide-quic-server-non-block.pod" + ], + "doc/man/man7/ossl-guide-tls-client-block.7" => [ + "doc/man7/ossl-guide-tls-client-block.pod" + ], + "doc/man/man7/ossl-guide-tls-client-non-block.7" => [ + "doc/man7/ossl-guide-tls-client-non-block.pod" + ], + "doc/man/man7/ossl-guide-tls-introduction.7" => [ + "doc/man7/ossl-guide-tls-introduction.pod" + ], + "doc/man/man7/ossl-guide-tls-server-block.7" => [ + "doc/man7/ossl-guide-tls-server-block.pod" + ], "doc/man/man7/ossl_store-file.7" => [ "doc/man7/ossl_store-file.pod" ], @@ -15758,6 +18266,9 @@ our %unified_info = ( "doc/man/man7/provider-signature.7" => [ "doc/man7/provider-signature.pod" ], + "doc/man/man7/provider-skeymgmt.7" => [ + "doc/man7/provider-skeymgmt.pod" + ], "doc/man/man7/provider-storemgmt.7" => [ "doc/man7/provider-storemgmt.pod" ], @@ -15767,9 +18278,6 @@ our %unified_info = ( "doc/man/man7/proxy-certificates.7" => [ "doc/man7/proxy-certificates.pod" ], - "doc/man/man7/ssl.7" => [ - "doc/man7/ssl.pod" - ], "doc/man/man7/x509.7" => [ "doc/man7/x509.pod" ], @@ -15905,6 +18413,9 @@ our %unified_info = ( "doc/man1/openssl-sess_id.pod" => [ "doc/man1/openssl-sess_id.pod.in" ], + "doc/man1/openssl-skeyutl.pod" => [ + "doc/man1/openssl-skeyutl.pod.in" + ], "doc/man1/openssl-smime.pod" => [ "doc/man1/openssl-smime.pod.in" ], @@ -15941,12 +18452,30 @@ our %unified_info = ( "engines/e_padlock-x86_64.s" => [ "engines/asm/e_padlock-x86_64.pl" ], + "exporters/OpenSSLConfig.cmake" => [ + "exporters/cmake/OpenSSLConfig.cmake.in" + ], + "exporters/OpenSSLConfigVersion.cmake" => [ + "exporters/cmake/OpenSSLConfigVersion.cmake.in" + ], + "exporters/libcrypto.pc" => [ + "exporters/pkg-config/libcrypto.pc.in" + ], + "exporters/libssl.pc" => [ + "exporters/pkg-config/libssl.pc.in" + ], + "exporters/openssl.pc" => [ + "exporters/pkg-config/openssl.pc.in" + ], "include/crypto/bn_conf.h" => [ "include/crypto/bn_conf.h.in" ], "include/crypto/dso_conf.h" => [ "include/crypto/dso_conf.h.in" ], + "include/internal/param_names.h" => [ + "include/internal/param_names.h.in" + ], "include/openssl/asn1.h" => [ "include/openssl/asn1.h.in" ], @@ -15962,12 +18491,18 @@ our %unified_info = ( "include/openssl/cms.h" => [ "include/openssl/cms.h.in" ], + "include/openssl/comp.h" => [ + "include/openssl/comp.h.in" + ], "include/openssl/conf.h" => [ "include/openssl/conf.h.in" ], "include/openssl/configuration.h" => [ "include/openssl/configuration.h.in" ], + "include/openssl/core_names.h" => [ + "include/openssl/core_names.h.in" + ], "include/openssl/crmf.h" => [ "include/openssl/crmf.h.in" ], @@ -16016,20 +18551,47 @@ our %unified_info = ( "include/openssl/x509.h" => [ "include/openssl/x509.h.in" ], + "include/openssl/x509_acert.h" => [ + "include/openssl/x509_acert.h.in" + ], "include/openssl/x509_vfy.h" => [ "include/openssl/x509_vfy.h.in" ], "include/openssl/x509v3.h" => [ "include/openssl/x509v3.h.in" ], + "installdata.pm" => [ + "util/mkinstallvars.pl", + "\"PREFIX=\$(INSTALLTOP)\"", + "BINDIR=bin", + "\"LIBDIR=\$(LIBDIR)\"", + "\"libdir=\$(libdir)\"", + "INCLUDEDIR=include", + "APPLINKDIR=include/openssl", + "\"ENGINESDIR=\$(ENGINESDIR)\"", + "\"MODULESDIR=\$(MODULESDIR)\"", + "\"PKGCONFIGDIR=\$(PKGCONFIGDIR)\"", + "\"CMAKECONFIGDIR=\$(CMAKECONFIGDIR)\"", + "\"LDLIBS=\$(LIB_EX_LIBS)\"", + "\"VERSION=\$(VERSION)\"" + ], "libcrypto.ld" => [ "util/libcrypto.num", "libcrypto" ], + "libcrypto.pc" => [ + "exporters/pkg-config/libcrypto.pc.in" + ], "libssl.ld" => [ "util/libssl.num", "libssl" ], + "libssl.pc" => [ + "exporters/pkg-config/libssl.pc.in" + ], + "openssl.pc" => [ + "exporters/pkg-config/openssl.pc.in" + ], "providers/common/der/der_digests_gen.c" => [ "providers/common/der/der_digests_gen.c.in" ], @@ -16042,9 +18604,15 @@ our %unified_info = ( "providers/common/der/der_ecx_gen.c" => [ "providers/common/der/der_ecx_gen.c.in" ], + "providers/common/der/der_ml_dsa_gen.c" => [ + "providers/common/der/der_ml_dsa_gen.c.in" + ], "providers/common/der/der_rsa_gen.c" => [ "providers/common/der/der_rsa_gen.c.in" ], + "providers/common/der/der_slh_dsa_gen.c" => [ + "providers/common/der/der_slh_dsa_gen.c.in" + ], "providers/common/der/der_sm2_gen.c" => [ "providers/common/der/der_sm2_gen.c.in" ], @@ -16063,9 +18631,15 @@ our %unified_info = ( "providers/common/include/prov/der_ecx.h" => [ "providers/common/include/prov/der_ecx.h.in" ], + "providers/common/include/prov/der_ml_dsa.h" => [ + "providers/common/include/prov/der_ml_dsa.h.in" + ], "providers/common/include/prov/der_rsa.h" => [ "providers/common/include/prov/der_rsa.h.in" ], + "providers/common/include/prov/der_slh_dsa.h" => [ + "providers/common/include/prov/der_slh_dsa.h.in" + ], "providers/common/include/prov/der_sm2.h" => [ "providers/common/include/prov/der_sm2.h.in" ], @@ -16107,6 +18681,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "buffer" ], + "test/buildtest_byteorder.c" => [ + "test/generate_buildtest.pl", + "byteorder" + ], "test/buildtest_camellia.c" => [ "test/generate_buildtest.pl", "camellia" @@ -16139,10 +18717,6 @@ our %unified_info = ( "test/generate_buildtest.pl", "core_dispatch" ], - "test/buildtest_core_names.c" => [ - "test/generate_buildtest.pl", - "core_names" - ], "test/buildtest_core_object.c" => [ "test/generate_buildtest.pl", "core_object" @@ -16175,6 +18749,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "e_os2" ], + "test/buildtest_e_ostime.c" => [ + "test/generate_buildtest.pl", + "e_ostime" + ], "test/buildtest_ebcdic.c" => [ "test/generate_buildtest.pl", "ebcdic" @@ -16211,6 +18789,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "hmac" ], + "test/buildtest_hpke.c" => [ + "test/generate_buildtest.pl", + "hpke" + ], "test/buildtest_http.c" => [ "test/generate_buildtest.pl", "http" @@ -16219,6 +18801,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "idea" ], + "test/buildtest_indicator.c" => [ + "test/generate_buildtest.pl", + "indicator" + ], "test/buildtest_kdf.c" => [ "test/generate_buildtest.pl", "kdf" @@ -16239,6 +18825,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "mdc2" ], + "test/buildtest_ml_kem.c" => [ + "test/generate_buildtest.pl", + "ml_kem" + ], "test/buildtest_modes.c" => [ "test/generate_buildtest.pl", "modes" @@ -16279,6 +18869,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "provider" ], + "test/buildtest_quic.c" => [ + "test/generate_buildtest.pl", + "quic" + ], "test/buildtest_rand.c" => [ "test/generate_buildtest.pl", "rand" @@ -16335,6 +18929,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "symhacks" ], + "test/buildtest_thread.c" => [ + "test/generate_buildtest.pl", + "thread" + ], "test/buildtest_tls1.c" => [ "test/generate_buildtest.pl", "tls1" @@ -16415,6 +19013,7 @@ our %unified_info = ( "doc/html/man1/openssl-s_server.html", "doc/html/man1/openssl-s_time.html", "doc/html/man1/openssl-sess_id.html", + "doc/html/man1/openssl-skeyutl.html", "doc/html/man1/openssl-smime.html", "doc/html/man1/openssl-speed.html", "doc/html/man1/openssl-spkac.html", @@ -16464,6 +19063,7 @@ our %unified_info = ( "doc/html/man3/BIO_find_type.html", "doc/html/man3/BIO_get_data.html", "doc/html/man3/BIO_get_ex_new_index.html", + "doc/html/man3/BIO_get_rpoll_descriptor.html", "doc/html/man3/BIO_meth_new.html", "doc/html/man3/BIO_new.html", "doc/html/man3/BIO_new_CMS.html", @@ -16476,11 +19076,13 @@ our %unified_info = ( "doc/html/man3/BIO_s_connect.html", "doc/html/man3/BIO_s_core.html", "doc/html/man3/BIO_s_datagram.html", + "doc/html/man3/BIO_s_dgram_pair.html", "doc/html/man3/BIO_s_fd.html", "doc/html/man3/BIO_s_file.html", "doc/html/man3/BIO_s_mem.html", "doc/html/man3/BIO_s_null.html", "doc/html/man3/BIO_s_socket.html", + "doc/html/man3/BIO_sendmmsg.html", "doc/html/man3/BIO_set_callback.html", "doc/html/man3/BIO_should_retry.html", "doc/html/man3/BIO_socket_wait.html", @@ -16505,6 +19107,7 @@ our %unified_info = ( "doc/html/man3/BN_swap.html", "doc/html/man3/BN_zero.html", "doc/html/man3/BUF_MEM_new.html", + "doc/html/man3/CMAC_CTX.html", "doc/html/man3/CMS_EncryptedData_decrypt.html", "doc/html/man3/CMS_EncryptedData_encrypt.html", "doc/html/man3/CMS_EnvelopedData_create.html", @@ -16527,6 +19130,7 @@ our %unified_info = ( "doc/html/man3/CMS_uncompress.html", "doc/html/man3/CMS_verify.html", "doc/html/man3/CMS_verify_receipt.html", + "doc/html/man3/COMP_CTX_new.html", "doc/html/man3/CONF_modules_free.html", "doc/html/man3/CONF_modules_load_file.html", "doc/html/man3/CRYPTO_THREAD_run_once.html", @@ -16560,6 +19164,8 @@ our %unified_info = ( "doc/html/man3/DSA_size.html", "doc/html/man3/DTLS_get_data_mtu.html", "doc/html/man3/DTLS_set_timer_cb.html", + "doc/html/man3/DTLSv1_get_timeout.html", + "doc/html/man3/DTLSv1_handle_timeout.html", "doc/html/man3/DTLSv1_listen.html", "doc/html/man3/ECDSA_SIG_new.html", "doc/html/man3/ECDSA_sign.html", @@ -16606,6 +19212,7 @@ our %unified_info = ( "doc/html/man3/EVP_PKEY_CTX_ctrl.html", "doc/html/man3/EVP_PKEY_CTX_get0_libctx.html", "doc/html/man3/EVP_PKEY_CTX_get0_pkey.html", + "doc/html/man3/EVP_PKEY_CTX_get_algor.html", "doc/html/man3/EVP_PKEY_CTX_new.html", "doc/html/man3/EVP_PKEY_CTX_set1_pbe_pass.html", "doc/html/man3/EVP_PKEY_CTX_set_hkdf_md.html", @@ -16645,6 +19252,8 @@ our %unified_info = ( "doc/html/man3/EVP_PKEY_verify_recover.html", "doc/html/man3/EVP_RAND.html", "doc/html/man3/EVP_SIGNATURE.html", + "doc/html/man3/EVP_SKEY.html", + "doc/html/man3/EVP_SKEYMGMT.html", "doc/html/man3/EVP_SealInit.html", "doc/html/man3/EVP_SignInit.html", "doc/html/man3/EVP_VerifyInit.html", @@ -16674,6 +19283,7 @@ our %unified_info = ( "doc/html/man3/EVP_sm3.html", "doc/html/man3/EVP_sm4_cbc.html", "doc/html/man3/EVP_whirlpool.html", + "doc/html/man3/GENERAL_NAME.html", "doc/html/man3/HMAC.html", "doc/html/man3/MD5.html", "doc/html/man3/MDC2_Init.html", @@ -16698,14 +19308,18 @@ our %unified_info = ( "doc/html/man3/OPENSSL_init_ssl.html", "doc/html/man3/OPENSSL_instrument_bus.html", "doc/html/man3/OPENSSL_load_builtin_modules.html", + "doc/html/man3/OPENSSL_load_u16_le.html", "doc/html/man3/OPENSSL_malloc.html", + "doc/html/man3/OPENSSL_riscvcap.html", "doc/html/man3/OPENSSL_s390xcap.html", "doc/html/man3/OPENSSL_secure_malloc.html", "doc/html/man3/OPENSSL_strcasecmp.html", "doc/html/man3/OSSL_ALGORITHM.html", "doc/html/man3/OSSL_CALLBACK.html", + "doc/html/man3/OSSL_CMP_ATAV_set0.html", "doc/html/man3/OSSL_CMP_CTX_new.html", "doc/html/man3/OSSL_CMP_HDR_get0_transactionID.html", + "doc/html/man3/OSSL_CMP_ITAV_new_caCerts.html", "doc/html/man3/OSSL_CMP_ITAV_set0.html", "doc/html/man3/OSSL_CMP_MSG_get0_header.html", "doc/html/man3/OSSL_CMP_MSG_http_perform.html", @@ -16729,18 +19343,27 @@ our %unified_info = ( "doc/html/man3/OSSL_ENCODER_CTX.html", "doc/html/man3/OSSL_ENCODER_CTX_new_for_pkey.html", "doc/html/man3/OSSL_ENCODER_to_bio.html", + "doc/html/man3/OSSL_ERR_STATE_save.html", "doc/html/man3/OSSL_ESS_check_signing_certs.html", + "doc/html/man3/OSSL_GENERAL_NAMES_print.html", + "doc/html/man3/OSSL_HPKE_CTX_new.html", "doc/html/man3/OSSL_HTTP_REQ_CTX.html", "doc/html/man3/OSSL_HTTP_parse_url.html", "doc/html/man3/OSSL_HTTP_transfer.html", + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX.html", + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX_print.html", + "doc/html/man3/OSSL_INDICATOR_set_callback.html", "doc/html/man3/OSSL_ITEM.html", "doc/html/man3/OSSL_LIB_CTX.html", + "doc/html/man3/OSSL_LIB_CTX_set_conf_diagnostics.html", "doc/html/man3/OSSL_PARAM.html", "doc/html/man3/OSSL_PARAM_BLD.html", "doc/html/man3/OSSL_PARAM_allocate_from_text.html", "doc/html/man3/OSSL_PARAM_dup.html", "doc/html/man3/OSSL_PARAM_int.html", + "doc/html/man3/OSSL_PARAM_print_to_bio.html", "doc/html/man3/OSSL_PROVIDER.html", + "doc/html/man3/OSSL_QUIC_client_method.html", "doc/html/man3/OSSL_SELF_TEST_new.html", "doc/html/man3/OSSL_SELF_TEST_set_callback.html", "doc/html/man3/OSSL_STORE_INFO.html", @@ -16749,11 +19372,13 @@ our %unified_info = ( "doc/html/man3/OSSL_STORE_attach.html", "doc/html/man3/OSSL_STORE_expect.html", "doc/html/man3/OSSL_STORE_open.html", + "doc/html/man3/OSSL_sleep.html", "doc/html/man3/OSSL_trace_enabled.html", "doc/html/man3/OSSL_trace_get_category_num.html", "doc/html/man3/OSSL_trace_set_channel.html", "doc/html/man3/OpenSSL_add_all_algorithms.html", "doc/html/man3/OpenSSL_version.html", + "doc/html/man3/PBMAC1_get1_pbkdf2_param.html", "doc/html/man3/PEM_X509_INFO_read_bio_ex.html", "doc/html/man3/PEM_bytes_read_bio.html", "doc/html/man3/PEM_read.html", @@ -16766,6 +19391,7 @@ our %unified_info = ( "doc/html/man3/PKCS12_SAFEBAG_create_cert.html", "doc/html/man3/PKCS12_SAFEBAG_get0_attrs.html", "doc/html/man3/PKCS12_SAFEBAG_get1_cert.html", + "doc/html/man3/PKCS12_SAFEBAG_set0_attrs.html", "doc/html/man3/PKCS12_add1_attr_by_NID.html", "doc/html/man3/PKCS12_add_CSPName_asc.html", "doc/html/man3/PKCS12_add_cert.html", @@ -16857,6 +19483,7 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_sess_set_get_cb.html", "doc/html/man3/SSL_CTX_sessions.html", "doc/html/man3/SSL_CTX_set0_CA_list.html", + "doc/html/man3/SSL_CTX_set1_cert_comp_preference.html", "doc/html/man3/SSL_CTX_set1_curves.html", "doc/html/man3/SSL_CTX_set1_sigalgs.html", "doc/html/man3/SSL_CTX_set1_verify_cert_store.html", @@ -16870,6 +19497,7 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_ct_validation_callback.html", "doc/html/man3/SSL_CTX_set_ctlog_list_file.html", "doc/html/man3/SSL_CTX_set_default_passwd_cb.html", + "doc/html/man3/SSL_CTX_set_domain_flags.html", "doc/html/man3/SSL_CTX_set_generate_session_id.html", "doc/html/man3/SSL_CTX_set_info_callback.html", "doc/html/man3/SSL_CTX_set_keylog_callback.html", @@ -16877,6 +19505,7 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_min_proto_version.html", "doc/html/man3/SSL_CTX_set_mode.html", "doc/html/man3/SSL_CTX_set_msg_callback.html", + "doc/html/man3/SSL_CTX_set_new_pending_conn_cb.html", "doc/html/man3/SSL_CTX_set_num_tickets.html", "doc/html/man3/SSL_CTX_set_options.html", "doc/html/man3/SSL_CTX_set_psk_client_callback.html", @@ -16915,6 +19544,7 @@ our %unified_info = ( "doc/html/man3/SSL_SESSION_print.html", "doc/html/man3/SSL_SESSION_set1_id.html", "doc/html/man3/SSL_accept.html", + "doc/html/man3/SSL_accept_stream.html", "doc/html/man3/SSL_alert_type_string.html", "doc/html/man3/SSL_alloc_buffers.html", "doc/html/man3/SSL_check_chain.html", @@ -16924,59 +19554,90 @@ our %unified_info = ( "doc/html/man3/SSL_export_keying_material.html", "doc/html/man3/SSL_extension_supported.html", "doc/html/man3/SSL_free.html", + "doc/html/man3/SSL_get0_connection.html", + "doc/html/man3/SSL_get0_group_name.html", + "doc/html/man3/SSL_get0_peer_rpk.html", "doc/html/man3/SSL_get0_peer_scts.html", + "doc/html/man3/SSL_get1_builtin_sigalgs.html", "doc/html/man3/SSL_get_SSL_CTX.html", "doc/html/man3/SSL_get_all_async_fds.html", "doc/html/man3/SSL_get_certificate.html", "doc/html/man3/SSL_get_ciphers.html", "doc/html/man3/SSL_get_client_random.html", + "doc/html/man3/SSL_get_conn_close_info.html", "doc/html/man3/SSL_get_current_cipher.html", "doc/html/man3/SSL_get_default_timeout.html", "doc/html/man3/SSL_get_error.html", + "doc/html/man3/SSL_get_event_timeout.html", "doc/html/man3/SSL_get_extms_support.html", "doc/html/man3/SSL_get_fd.html", + "doc/html/man3/SSL_get_handshake_rtt.html", "doc/html/man3/SSL_get_peer_cert_chain.html", "doc/html/man3/SSL_get_peer_certificate.html", "doc/html/man3/SSL_get_peer_signature_nid.html", "doc/html/man3/SSL_get_peer_tmp_key.html", "doc/html/man3/SSL_get_psk_identity.html", "doc/html/man3/SSL_get_rbio.html", + "doc/html/man3/SSL_get_rpoll_descriptor.html", "doc/html/man3/SSL_get_session.html", "doc/html/man3/SSL_get_shared_sigalgs.html", + "doc/html/man3/SSL_get_stream_id.html", + "doc/html/man3/SSL_get_stream_read_state.html", + "doc/html/man3/SSL_get_value_uint.html", "doc/html/man3/SSL_get_verify_result.html", "doc/html/man3/SSL_get_version.html", "doc/html/man3/SSL_group_to_name.html", + "doc/html/man3/SSL_handle_events.html", "doc/html/man3/SSL_in_init.html", + "doc/html/man3/SSL_inject_net_dgram.html", "doc/html/man3/SSL_key_update.html", "doc/html/man3/SSL_library_init.html", "doc/html/man3/SSL_load_client_CA_file.html", "doc/html/man3/SSL_new.html", + "doc/html/man3/SSL_new_domain.html", + "doc/html/man3/SSL_new_listener.html", + "doc/html/man3/SSL_new_stream.html", "doc/html/man3/SSL_pending.html", + "doc/html/man3/SSL_poll.html", "doc/html/man3/SSL_read.html", "doc/html/man3/SSL_read_early_data.html", "doc/html/man3/SSL_rstate_string.html", "doc/html/man3/SSL_session_reused.html", "doc/html/man3/SSL_set1_host.html", + "doc/html/man3/SSL_set1_initial_peer_addr.html", + "doc/html/man3/SSL_set1_server_cert_type.html", "doc/html/man3/SSL_set_async_callback.html", "doc/html/man3/SSL_set_bio.html", + "doc/html/man3/SSL_set_blocking_mode.html", "doc/html/man3/SSL_set_connect_state.html", + "doc/html/man3/SSL_set_default_stream_mode.html", "doc/html/man3/SSL_set_fd.html", + "doc/html/man3/SSL_set_incoming_stream_policy.html", + "doc/html/man3/SSL_set_quic_tls_cbs.html", "doc/html/man3/SSL_set_retry_verify.html", "doc/html/man3/SSL_set_session.html", + "doc/html/man3/SSL_set_session_secret_cb.html", "doc/html/man3/SSL_set_shutdown.html", "doc/html/man3/SSL_set_verify_result.html", "doc/html/man3/SSL_shutdown.html", "doc/html/man3/SSL_state_string.html", + "doc/html/man3/SSL_stream_conclude.html", + "doc/html/man3/SSL_stream_reset.html", "doc/html/man3/SSL_want.html", "doc/html/man3/SSL_write.html", "doc/html/man3/TS_RESP_CTX_new.html", - "doc/html/man3/TS_VERIFY_CTX_set_certs.html", + "doc/html/man3/TS_VERIFY_CTX.html", "doc/html/man3/UI_STRING.html", "doc/html/man3/UI_UTIL_read_pw.html", "doc/html/man3/UI_create_method.html", "doc/html/man3/UI_new.html", "doc/html/man3/X509V3_get_d2i.html", "doc/html/man3/X509V3_set_ctx.html", + "doc/html/man3/X509_ACERT_add1_attr.html", + "doc/html/man3/X509_ACERT_add_attr_nconf.html", + "doc/html/man3/X509_ACERT_get0_holder_baseCertId.html", + "doc/html/man3/X509_ACERT_get_attr.html", + "doc/html/man3/X509_ACERT_print_ex.html", "doc/html/man3/X509_ALGOR_dup.html", "doc/html/man3/X509_ATTRIBUTE.html", "doc/html/man3/X509_CRL_get0_by_serial.html", @@ -16993,6 +19654,7 @@ our %unified_info = ( "doc/html/man3/X509_REQ_get_attr.html", "doc/html/man3/X509_REQ_get_extensions.html", "doc/html/man3/X509_SIG_get0.html", + "doc/html/man3/X509_STORE_CTX_get_by_subject.html", "doc/html/man3/X509_STORE_CTX_get_error.html", "doc/html/man3/X509_STORE_CTX_new.html", "doc/html/man3/X509_STORE_CTX_set_verify_cb.html", @@ -17015,6 +19677,7 @@ our %unified_info = ( "doc/html/man3/X509_get0_notBefore.html", "doc/html/man3/X509_get0_signature.html", "doc/html/man3/X509_get0_uids.html", + "doc/html/man3/X509_get_default_cert_file.html", "doc/html/man3/X509_get_extension_flags.html", "doc/html/man3/X509_get_pubkey.html", "doc/html/man3/X509_get_serialNumber.html", @@ -17060,12 +19723,15 @@ our %unified_info = ( "doc/html/man7/EVP_CIPHER-RC5.html", "doc/html/man7/EVP_CIPHER-SEED.html", "doc/html/man7/EVP_CIPHER-SM4.html", + "doc/html/man7/EVP_KDF-ARGON2.html", "doc/html/man7/EVP_KDF-HKDF.html", + "doc/html/man7/EVP_KDF-HMAC-DRBG.html", "doc/html/man7/EVP_KDF-KB.html", "doc/html/man7/EVP_KDF-KRB5KDF.html", "doc/html/man7/EVP_KDF-PBKDF1.html", "doc/html/man7/EVP_KDF-PBKDF2.html", "doc/html/man7/EVP_KDF-PKCS12KDF.html", + "doc/html/man7/EVP_KDF-PVKKDF.html", "doc/html/man7/EVP_KDF-SCRYPT.html", "doc/html/man7/EVP_KDF-SS.html", "doc/html/man7/EVP_KDF-SSHKDF.html", @@ -17074,7 +19740,10 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-X942-ASN1.html", "doc/html/man7/EVP_KDF-X942-CONCAT.html", "doc/html/man7/EVP_KDF-X963.html", + "doc/html/man7/EVP_KEM-EC.html", + "doc/html/man7/EVP_KEM-ML-KEM.html", "doc/html/man7/EVP_KEM-RSA.html", + "doc/html/man7/EVP_KEM-X25519.html", "doc/html/man7/EVP_KEYEXCH-DH.html", "doc/html/man7/EVP_KEYEXCH-ECDH.html", "doc/html/man7/EVP_KEYEXCH-X25519.html", @@ -17086,6 +19755,7 @@ our %unified_info = ( "doc/html/man7/EVP_MAC-Poly1305.html", "doc/html/man7/EVP_MAC-Siphash.html", "doc/html/man7/EVP_MD-BLAKE2.html", + "doc/html/man7/EVP_MD-KECCAK.html", "doc/html/man7/EVP_MD-MD2.html", "doc/html/man7/EVP_MD-MD4.html", "doc/html/man7/EVP_MD-MD5-SHA1.html", @@ -17105,12 +19775,17 @@ our %unified_info = ( "doc/html/man7/EVP_PKEY-EC.html", "doc/html/man7/EVP_PKEY-FFC.html", "doc/html/man7/EVP_PKEY-HMAC.html", + "doc/html/man7/EVP_PKEY-ML-DSA.html", + "doc/html/man7/EVP_PKEY-ML-KEM.html", "doc/html/man7/EVP_PKEY-RSA.html", + "doc/html/man7/EVP_PKEY-SLH-DSA.html", "doc/html/man7/EVP_PKEY-SM2.html", "doc/html/man7/EVP_PKEY-X25519.html", + "doc/html/man7/EVP_RAND-CRNG-TEST.html", "doc/html/man7/EVP_RAND-CTR-DRBG.html", "doc/html/man7/EVP_RAND-HASH-DRBG.html", "doc/html/man7/EVP_RAND-HMAC-DRBG.html", + "doc/html/man7/EVP_RAND-JITTER.html", "doc/html/man7/EVP_RAND-SEED-SRC.html", "doc/html/man7/EVP_RAND-TEST-RAND.html", "doc/html/man7/EVP_RAND.html", @@ -17118,17 +19793,19 @@ our %unified_info = ( "doc/html/man7/EVP_SIGNATURE-ECDSA.html", "doc/html/man7/EVP_SIGNATURE-ED25519.html", "doc/html/man7/EVP_SIGNATURE-HMAC.html", + "doc/html/man7/EVP_SIGNATURE-ML-DSA.html", "doc/html/man7/EVP_SIGNATURE-RSA.html", + "doc/html/man7/EVP_SIGNATURE-SLH-DSA.html", "doc/html/man7/OSSL_PROVIDER-FIPS.html", "doc/html/man7/OSSL_PROVIDER-base.html", "doc/html/man7/OSSL_PROVIDER-default.html", "doc/html/man7/OSSL_PROVIDER-legacy.html", "doc/html/man7/OSSL_PROVIDER-null.html", + "doc/html/man7/OSSL_STORE-winstore.html", "doc/html/man7/RAND.html", "doc/html/man7/RSA-PSS.html", "doc/html/man7/X25519.html", "doc/html/man7/bio.html", - "doc/html/man7/crypto.html", "doc/html/man7/ct.html", "doc/html/man7/des_modes.html", "doc/html/man7/evp.html", @@ -17139,14 +19816,31 @@ our %unified_info = ( "doc/html/man7/life_cycle-mac.html", "doc/html/man7/life_cycle-pkey.html", "doc/html/man7/life_cycle-rand.html", - "doc/html/man7/migration_guide.html", "doc/html/man7/openssl-core.h.html", "doc/html/man7/openssl-core_dispatch.h.html", "doc/html/man7/openssl-core_names.h.html", "doc/html/man7/openssl-env.html", "doc/html/man7/openssl-glossary.html", + "doc/html/man7/openssl-qlog.html", + "doc/html/man7/openssl-quic-concurrency.html", + "doc/html/man7/openssl-quic.html", "doc/html/man7/openssl-threads.html", "doc/html/man7/openssl_user_macros.html", + "doc/html/man7/ossl-guide-introduction.html", + "doc/html/man7/ossl-guide-libcrypto-introduction.html", + "doc/html/man7/ossl-guide-libraries-introduction.html", + "doc/html/man7/ossl-guide-libssl-introduction.html", + "doc/html/man7/ossl-guide-migration.html", + "doc/html/man7/ossl-guide-quic-client-block.html", + "doc/html/man7/ossl-guide-quic-client-non-block.html", + "doc/html/man7/ossl-guide-quic-introduction.html", + "doc/html/man7/ossl-guide-quic-multi-stream.html", + "doc/html/man7/ossl-guide-quic-server-block.html", + "doc/html/man7/ossl-guide-quic-server-non-block.html", + "doc/html/man7/ossl-guide-tls-client-block.html", + "doc/html/man7/ossl-guide-tls-client-non-block.html", + "doc/html/man7/ossl-guide-tls-introduction.html", + "doc/html/man7/ossl-guide-tls-server-block.html", "doc/html/man7/ossl_store-file.html", "doc/html/man7/ossl_store.html", "doc/html/man7/passphrase-encoding.html", @@ -17165,10 +19859,10 @@ our %unified_info = ( "doc/html/man7/provider-object.html", "doc/html/man7/provider-rand.html", "doc/html/man7/provider-signature.html", + "doc/html/man7/provider-skeymgmt.html", "doc/html/man7/provider-storemgmt.html", "doc/html/man7/provider.html", "doc/html/man7/proxy-certificates.html", - "doc/html/man7/ssl.html", "doc/html/man7/x509.html" ] }, @@ -17183,12 +19877,21 @@ our %unified_info = ( ] }, "includes" => { + "OpenSSLConfig.cmake" => [ + "." + ], + "OpenSSLConfigVersion.cmake" => [ + "." + ], "apps/asn1parse.o" => [ "apps" ], "apps/ca.o" => [ "apps" ], + "apps/ca_internals_test-bin-ca.o" => [ + "apps" + ], "apps/ciphers.o" => [ "apps" ], @@ -17415,6 +20118,9 @@ our %unified_info = ( "apps/openssl-bin-sess_id.o" => [ "apps" ], + "apps/openssl-bin-skeyutl.o" => [ + "apps" + ], "apps/openssl-bin-smime.o" => [ "apps" ], @@ -17502,6 +20208,9 @@ our %unified_info = ( "apps/sess_id.o" => [ "apps" ], + "apps/skeyutl.o" => [ + "apps" + ], "apps/smime.o" => [ "apps" ], @@ -17553,6 +20262,12 @@ our %unified_info = ( "crypto/aes/bsaes-armv7.o" => [ "crypto" ], + "crypto/aes/vpaes-armv8.o" => [ + "crypto" + ], + "crypto/aes/vpaes-loongarch64.o" => [ + "crypto" + ], "crypto/arm64cpuid.o" => [ "crypto" ], @@ -17604,9 +20319,15 @@ our %unified_info = ( "crypto/chacha/chacha-armv4.o" => [ "crypto" ], + "crypto/chacha/chacha-armv8-sve.o" => [ + "crypto" + ], "crypto/chacha/chacha-armv8.o" => [ "crypto" ], + "crypto/chacha/chacha-loongarch64.o" => [ + "crypto" + ], "crypto/chacha/chacha-s390x.o" => [ "crypto" ], @@ -17631,15 +20352,27 @@ our %unified_info = ( "crypto/ec/ecp_s390x_nistp.o" => [ "crypto" ], + "crypto/ec/ecp_sm2p256-armv8.o" => [ + "crypto" + ], + "crypto/ec/ecx_key.o" => [ + "crypto" + ], "crypto/ec/ecx_meth.o" => [ "crypto" ], "crypto/ec/ecx_s390x.o" => [ "crypto" ], + "crypto/ec/libcrypto-lib-ecx_key.o" => [ + "crypto" + ], "crypto/ec/libcrypto-lib-ecx_meth.o" => [ "crypto" ], + "crypto/ec/libfips-lib-ecx_key.o" => [ + "crypto" + ], "crypto/evp/e_aes.o" => [ "crypto", "crypto/modes" @@ -17711,9 +20444,18 @@ our %unified_info = ( "crypto/libfips-lib-cpuid.o" => [ "." ], + "crypto/md5/md5-aarch64.o" => [ + "crypto" + ], + "crypto/md5/md5-loongarch64.o" => [ + "crypto" + ], "crypto/md5/md5-sparcv9.o" => [ "crypto" ], + "crypto/modes/aes-gcm-armv8-unroll8_64.o" => [ + "crypto" + ], "crypto/modes/aes-gcm-armv8_64.o" => [ "crypto" ], @@ -17738,6 +20480,9 @@ our %unified_info = ( "crypto/modes/libfips-lib-gcm128.o" => [ "crypto" ], + "crypto/params_idx.c" => [ + "util/perl" + ], "crypto/poly1305/poly1305-armv4.o" => [ "crypto" ], @@ -17759,6 +20504,9 @@ our %unified_info = ( "crypto/sha/keccak1600-armv4.o" => [ "crypto" ], + "crypto/sha/keccak1600-armv8.o" => [ + "crypto" + ], "crypto/sha/sha1-armv4-large.o" => [ "crypto" ], @@ -17804,6 +20552,18 @@ our %unified_info = ( "crypto/sha/sha512-sparcv9.o" => [ "crypto" ], + "crypto/sm3/sm3-armv8.o" => [ + "crypto" + ], + "crypto/sm4/sm4-armv8.o" => [ + "crypto" + ], + "crypto/sm4/vpsm4-armv8.o" => [ + "crypto" + ], + "crypto/sm4/vpsm4_ex-armv8.o" => [ + "crypto" + ], "doc/man1/openssl-asn1parse.pod" => [ "doc" ], @@ -17936,6 +20696,9 @@ our %unified_info = ( "doc/man1/openssl-sess_id.pod" => [ "doc" ], + "doc/man1/openssl-skeyutl.pod" => [ + "doc" + ], "doc/man1/openssl-smime.pod" => [ "doc" ], @@ -17963,6 +20726,24 @@ our %unified_info = ( "doc/man1/openssl-x509.pod" => [ "doc" ], + "exporters/OpenSSLConfig.cmake" => [ + "." + ], + "exporters/OpenSSLConfigVersion.cmake" => [ + "." + ], + "exporters/libcrypto.pc" => [ + "." + ], + "exporters/libssl.pc" => [ + "." + ], + "exporters/openssl.pc" => [ + "." + ], + "fuzz/acert-test" => [ + "include" + ], "fuzz/asn1-test" => [ "include" ], @@ -17993,12 +20774,69 @@ our %unified_info = ( "fuzz/ct-test" => [ "include" ], + "fuzz/decoder-test" => [ + "include" + ], + "fuzz/dtlsclient-test" => [ + "include" + ], + "fuzz/dtlsserver-test" => [ + "include" + ], + "fuzz/hashtable-test" => [ + "include" + ], + "fuzz/ml-dsa-test" => [ + "include" + ], + "fuzz/ml-kem-test" => [ + "include" + ], + "fuzz/pem-test" => [ + "include" + ], + "fuzz/provider-test" => [ + "include" + ], + "fuzz/punycode-test" => [ + "include" + ], + "fuzz/quic-client-test" => [ + "include" + ], + "fuzz/quic-lcidm-test" => [ + "include" + ], + "fuzz/quic-rcidm-test" => [ + "include" + ], + "fuzz/quic-server-test" => [ + "include" + ], + "fuzz/quic-srtm-test" => [ + "include" + ], "fuzz/server-test" => [ "include" ], + "fuzz/slh-dsa-test" => [ + "include" + ], + "fuzz/smime-test" => [ + "include" + ], + "fuzz/v3name-test" => [ + "include" + ], "fuzz/x509-test" => [ "include" ], + "include/internal/param_names.h" => [ + "util/perl" + ], + "include/openssl/core_names.h" => [ + "util/perl" + ], "libcrypto" => [ ".", "include", @@ -18009,6 +20847,9 @@ our %unified_info = ( ".", "util/perl/OpenSSL" ], + "libcrypto.pc" => [ + "." + ], "libssl" => [ ".", "include" @@ -18017,6 +20858,12 @@ our %unified_info = ( ".", "util/perl/OpenSSL" ], + "libssl.pc" => [ + "." + ], + "openssl.pc" => [ + "." + ], "providers/common/der/der_digests_gen.c" => [ "providers/common/der" ], @@ -18056,6 +20903,15 @@ our %unified_info = ( "providers/common/der/der_ecx_key.o" => [ "providers/common/include/prov" ], + "providers/common/der/der_ml_dsa_gen.c" => [ + "providers/common/der" + ], + "providers/common/der/der_ml_dsa_gen.o" => [ + "providers/common/include/prov" + ], + "providers/common/der/der_ml_dsa_key.o" => [ + "providers/common/include/prov" + ], "providers/common/der/der_rsa_gen.c" => [ "providers/common/der" ], @@ -18068,6 +20924,15 @@ our %unified_info = ( "providers/common/der/der_rsa_sig.o" => [ "providers/common/include/prov" ], + "providers/common/der/der_slh_dsa_gen.c" => [ + "providers/common/der" + ], + "providers/common/der/der_slh_dsa_gen.o" => [ + "providers/common/include/prov" + ], + "providers/common/der/der_slh_dsa_key.o" => [ + "providers/common/include/prov" + ], "providers/common/der/der_sm2_gen.c" => [ "providers/common/der" ], @@ -18113,12 +20978,24 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ecx_key.o" => [ "providers/common/include/prov" ], + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o" => [ + "providers/common/include/prov" + ], + "providers/common/der/libcommon-lib-der_ml_dsa_key.o" => [ + "providers/common/include/prov" + ], "providers/common/der/libcommon-lib-der_rsa_gen.o" => [ "providers/common/include/prov" ], "providers/common/der/libcommon-lib-der_rsa_key.o" => [ "providers/common/include/prov" ], + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o" => [ + "providers/common/include/prov" + ], + "providers/common/der/libcommon-lib-der_slh_dsa_key.o" => [ + "providers/common/include/prov" + ], "providers/common/der/libcommon-lib-der_wrap_gen.o" => [ "providers/common/include/prov" ], @@ -18149,9 +21026,15 @@ our %unified_info = ( "providers/common/include/prov/der_ecx.h" => [ "providers/common/der" ], + "providers/common/include/prov/der_ml_dsa.h" => [ + "providers/common/der" + ], "providers/common/include/prov/der_rsa.h" => [ "providers/common/der" ], + "providers/common/include/prov/der_slh_dsa.h" => [ + "providers/common/der" + ], "providers/common/include/prov/der_sm2.h" => [ "providers/common/der" ], @@ -18194,9 +21077,15 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-eddsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/libdefault-lib-rsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/libdefault-lib-sm2_sig.o" => [ "providers/common/include/prov" ], @@ -18209,12 +21098,24 @@ our %unified_info = ( "providers/implementations/signature/libfips-lib-eddsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/libfips-lib-rsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o" => [ + "providers/common/include/prov" + ], + "providers/implementations/signature/ml_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/rsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/slh_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/sm2_sig.o" => [ "providers/common/include/prov" ], @@ -18227,28 +21128,39 @@ our %unified_info = ( "crypto", "include", "providers/implementations/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" ], "providers/libdefault.a" => [ ".", "crypto", "include", "providers/implementations/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" ], "providers/libfips.a" => [ ".", "crypto", "include", "providers/implementations/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" ], "providers/liblegacy.a" => [ ".", "crypto", "include", "providers/implementations/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" + ], + "providers/libtemplate.a" => [ + "crypto", + "include", + "providers/implementations/include", + "providers/common/include", + "providers/fips/include" ], "test/aborttest" => [ "include", @@ -18317,6 +21229,14 @@ our %unified_info = ( "include", "apps/include" ], + "test/bio_addr_test" => [ + "include", + "apps/include" + ], + "test/bio_base64_test" => [ + "include", + "apps/include" + ], "test/bio_callback_test" => [ "include", "apps/include" @@ -18325,11 +21245,20 @@ our %unified_info = ( "include", "apps/include" ], + "test/bio_dgram_test" => [ + "include", + "apps/include", + "." + ], "test/bio_enc_test" => [ "include", "apps/include" ], - "test/bio_memleak_test" => [ + "test/bio_memleak_test" => [ + "include", + "apps/include" + ], + "test/bio_meth_test" => [ "include", "apps/include" ], @@ -18346,6 +21275,11 @@ our %unified_info = ( "include", "apps/include" ], + "test/bio_tfo_test" => [ + "include", + "apps/include", + "." + ], "test/bioprinttest" => [ "include", "apps/include" @@ -18360,6 +21294,9 @@ our %unified_info = ( "include", "apps/include" ], + "test/build_wincrypt_test" => [ + "include" + ], "test/buildtest_c_aes" => [ "include" ], @@ -18375,6 +21312,9 @@ our %unified_info = ( "test/buildtest_c_buffer" => [ "include" ], + "test/buildtest_c_byteorder" => [ + "include" + ], "test/buildtest_c_camellia" => [ "include" ], @@ -18399,9 +21339,6 @@ our %unified_info = ( "test/buildtest_c_core_dispatch" => [ "include" ], - "test/buildtest_c_core_names" => [ - "include" - ], "test/buildtest_c_core_object" => [ "include" ], @@ -18426,6 +21363,9 @@ our %unified_info = ( "test/buildtest_c_e_os2" => [ "include" ], + "test/buildtest_c_e_ostime" => [ + "include" + ], "test/buildtest_c_ebcdic" => [ "include" ], @@ -18453,12 +21393,18 @@ our %unified_info = ( "test/buildtest_c_hmac" => [ "include" ], + "test/buildtest_c_hpke" => [ + "include" + ], "test/buildtest_c_http" => [ "include" ], "test/buildtest_c_idea" => [ "include" ], + "test/buildtest_c_indicator" => [ + "include" + ], "test/buildtest_c_kdf" => [ "include" ], @@ -18474,6 +21420,9 @@ our %unified_info = ( "test/buildtest_c_mdc2" => [ "include" ], + "test/buildtest_c_ml_kem" => [ + "include" + ], "test/buildtest_c_modes" => [ "include" ], @@ -18504,6 +21453,9 @@ our %unified_info = ( "test/buildtest_c_provider" => [ "include" ], + "test/buildtest_c_quic" => [ + "include" + ], "test/buildtest_c_rand" => [ "include" ], @@ -18546,6 +21498,9 @@ our %unified_info = ( "test/buildtest_c_symhacks" => [ "include" ], + "test/buildtest_c_thread" => [ + "include" + ], "test/buildtest_c_tls1" => [ "include" ], @@ -18561,10 +21516,24 @@ our %unified_info = ( "test/buildtest_c_whrlpool" => [ "include" ], + "test/byteorder_test" => [ + "include", + "apps/include" + ], + "test/ca_internals_test" => [ + ".", + "include", + "apps/include" + ], "test/casttest" => [ "include", "apps/include" ], + "test/cert_comp_test" => [ + "include", + "apps/include", + "." + ], "test/chacha_internal_test" => [ ".", "include", @@ -18688,6 +21657,11 @@ our %unified_info = ( "include", "apps/include" ], + "test/decoder_propq_test" => [ + ".", + "include", + "apps/include" + ], "test/defltfips_test" => [ "include", "apps/include" @@ -18703,7 +21677,8 @@ our %unified_info = ( "test/drbgtest" => [ "include", "apps/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" ], "test/dsa_no_digest_size_test" => [ "include", @@ -18746,7 +21721,9 @@ our %unified_info = ( "test/endecode_test" => [ ".", "include", - "apps/include" + "apps/include", + "providers/common/include", + "providers/implementations/include" ], "test/endecoder_legacy_test" => [ ".", @@ -18791,6 +21768,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/evp_pkey_dhkem_test" => [ + "include", + "apps/include" + ], "test/evp_pkey_dparams_test" => [ "include", "apps/include" @@ -18799,10 +21780,18 @@ our %unified_info = ( "include", "apps/include" ], + "test/evp_skey_test" => [ + "include", + "apps/include" + ], "test/evp_test" => [ "include", "apps/include" ], + "test/evp_xof_test" => [ + "include", + "apps/include" + ], "test/exdatatest" => [ "include", "apps/include" @@ -18903,22 +21892,62 @@ our %unified_info = ( ".", "include" ], + "test/helpers/json_test-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/helpers/pkcs12.o" => [ ".", "include" ], + "test/helpers/pkcs12_api_test-bin-pkcs12.o" => [ + ".", + "include" + ], "test/helpers/pkcs12_format_test-bin-pkcs12.o" => [ ".", "include" ], + "test/helpers/quic_multistream_test-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quic_newcid_test-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quic_radix_test-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quic_srt_gen_test-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quicapitest-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quicfaultstest-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/helpers/recordlentest-bin-ssltestlib.o" => [ ".", "include" ], + "test/helpers/rpktest-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/helpers/servername_test-bin-ssltestlib.o" => [ ".", "include" ], + "test/helpers/ssl_handshake_rtt_test-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/helpers/ssl_test-bin-handshake.o" => [ ".", "include" @@ -18952,6 +21981,10 @@ our %unified_info = ( ".", "include" ], + "test/helpers/tls13groupselection_test-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/hexstr_test" => [ ".", "include", @@ -18961,6 +21994,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/hpke_test" => [ + "include", + "apps/include" + ], "test/http_test" => [ "include", "apps/include" @@ -18973,6 +22010,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/json_test" => [ + "include", + "apps/include" + ], "test/keymgmt_internal_test" => [ ".", "include", @@ -18987,6 +22028,10 @@ our %unified_info = ( "apps/include", "." ], + "test/list_test" => [ + "include", + "apps/include" + ], "test/localetest" => [ "include", "apps/include" @@ -19000,10 +22045,27 @@ our %unified_info = ( "include", "apps/include" ], + "test/membio_test" => [ + "include", + "apps/include", + "." + ], "test/memleaktest" => [ "include", "apps/include" ], + "test/ml_dsa_test" => [ + "include", + "apps/include" + ], + "test/ml_kem_evp_extra_test" => [ + "include", + "apps/include" + ], + "test/ml_kem_internal_test" => [ + "include", + "apps/include" + ], "test/modes_internal_test" => [ ".", "include", @@ -19038,6 +22100,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/pairwise_fail_test" => [ + "include", + "apps/include" + ], "test/param_build_test" => [ "include", "apps/include" @@ -19071,6 +22137,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/pkcs12_api_test" => [ + "include", + "apps/include" + ], "test/pkcs12_format_test" => [ "include", "apps/include" @@ -19092,6 +22162,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/priority_queue_test" => [ + "include", + "apps/include" + ], "test/property_test" => [ ".", "include", @@ -19105,6 +22179,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/provider_default_search_path_test" => [ + "include", + "apps/include" + ], "test/provider_fallback_test" => [ "include", "apps/include" @@ -19131,6 +22209,97 @@ our %unified_info = ( "include", "apps/include" ], + "test/quic_ackm_test" => [ + "include", + "apps/include" + ], + "test/quic_cc_test" => [ + "include", + "apps/include" + ], + "test/quic_cfq_test" => [ + "include", + "apps/include" + ], + "test/quic_client_test" => [ + "include", + "apps/include" + ], + "test/quic_fc_test" => [ + "include", + "apps/include" + ], + "test/quic_fifd_test" => [ + "include", + "apps/include" + ], + "test/quic_lcidm_test" => [ + "include", + "apps/include" + ], + "test/quic_multistream_test" => [ + "include", + "apps/include" + ], + "test/quic_newcid_test" => [ + "include", + "apps/include", + "." + ], + "test/quic_qlog_test" => [ + "include", + "apps/include" + ], + "test/quic_radix_test" => [ + "include", + "apps/include" + ], + "test/quic_rcidm_test" => [ + "include", + "apps/include" + ], + "test/quic_record_test" => [ + "include", + "apps/include" + ], + "test/quic_srt_gen_test" => [ + "include", + "apps/include", + "." + ], + "test/quic_srtm_test" => [ + "include", + "apps/include" + ], + "test/quic_stream_test" => [ + "include", + "apps/include" + ], + "test/quic_tserver_test" => [ + "include", + "apps/include" + ], + "test/quic_txp_test" => [ + "include", + "apps/include" + ], + "test/quic_txpim_test" => [ + "include", + "apps/include" + ], + "test/quic_wire_test" => [ + "include", + "apps/include" + ], + "test/quicapitest" => [ + "include", + "apps/include" + ], + "test/quicfaultstest" => [ + "include", + "apps/include", + "." + ], "test/rand_status_test" => [ "include", "apps/include" @@ -19151,14 +22320,20 @@ our %unified_info = ( "include", "apps/include" ], - "test/rdrand_sanitytest" => [ + "test/rdcpu_sanitytest" => [ "include", - "apps/include" + "apps/include", + "crypto" ], "test/recordlentest" => [ "include", "apps/include" ], + "test/rpktest" => [ + "include", + "apps/include", + "." + ], "test/rsa_complex" => [ "include", "apps/include" @@ -19177,6 +22352,15 @@ our %unified_info = ( "include", "apps/include" ], + "test/rsa_x931_test" => [ + ".", + "include", + "apps/include" + ], + "test/safe_math_test" => [ + "include", + "apps/include" + ], "test/sanitytest" => [ "include", "apps/include" @@ -19198,6 +22382,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/slh_dsa_test" => [ + "include", + "apps/include" + ], "test/sm2_internal_test" => [ "include", "apps/include" @@ -19228,6 +22416,11 @@ our %unified_info = ( "include", "apps/include" ], + "test/ssl_handshake_rtt_test" => [ + "include", + "apps/include", + "." + ], "test/ssl_old_test" => [ ".", "include", @@ -19244,6 +22437,7 @@ our %unified_info = ( "test/sslapitest" => [ "include", "apps/include", + "providers/common/include", "." ], "test/sslbuffertest" => [ @@ -19258,6 +22452,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/strtoultest" => [ + "include", + "apps/include" + ], "test/sysdefaulttest" => [ "include", "apps/include" @@ -19266,7 +22464,13 @@ our %unified_info = ( "include", "apps/include" ], + "test/threadpool_test" => [ + ".", + "include", + "apps/include" + ], "test/threadstest" => [ + ".", "include", "apps/include" ], @@ -19278,6 +22482,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/time_test" => [ + "include", + "apps/include" + ], "test/tls13ccstest" => [ "include", "apps/include" @@ -19287,6 +22495,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/tls13groupselection_test" => [ + "include", + "apps/include" + ], "test/trace_api_test" => [ ".", "include", @@ -19325,6 +22537,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/x509_acert_test" => [ + "include", + "apps/include" + ], "test/x509_check_cert_pkey_test" => [ "include", "apps/include" @@ -19338,6 +22554,18 @@ our %unified_info = ( "include", "apps/include" ], + "test/x509_load_cert_file_test" => [ + "include", + "apps/include" + ], + "test/x509_req_test" => [ + "include", + "apps/include" + ], + "test/x509_test" => [ + "include", + "apps/include" + ], "test/x509_time_test" => [ "include", "apps/include" @@ -19359,6 +22587,7 @@ our %unified_info = ( "providers/libdefault.a", "providers/libfips.a", "providers/liblegacy.a", + "providers/libtemplate.a", "test/libtestutil.a" ], "mandocs" => { @@ -19411,6 +22640,7 @@ our %unified_info = ( "doc/man/man1/openssl-s_server.1", "doc/man/man1/openssl-s_time.1", "doc/man/man1/openssl-sess_id.1", + "doc/man/man1/openssl-skeyutl.1", "doc/man/man1/openssl-smime.1", "doc/man/man1/openssl-speed.1", "doc/man/man1/openssl-spkac.1", @@ -19460,6 +22690,7 @@ our %unified_info = ( "doc/man/man3/BIO_find_type.3", "doc/man/man3/BIO_get_data.3", "doc/man/man3/BIO_get_ex_new_index.3", + "doc/man/man3/BIO_get_rpoll_descriptor.3", "doc/man/man3/BIO_meth_new.3", "doc/man/man3/BIO_new.3", "doc/man/man3/BIO_new_CMS.3", @@ -19472,11 +22703,13 @@ our %unified_info = ( "doc/man/man3/BIO_s_connect.3", "doc/man/man3/BIO_s_core.3", "doc/man/man3/BIO_s_datagram.3", + "doc/man/man3/BIO_s_dgram_pair.3", "doc/man/man3/BIO_s_fd.3", "doc/man/man3/BIO_s_file.3", "doc/man/man3/BIO_s_mem.3", "doc/man/man3/BIO_s_null.3", "doc/man/man3/BIO_s_socket.3", + "doc/man/man3/BIO_sendmmsg.3", "doc/man/man3/BIO_set_callback.3", "doc/man/man3/BIO_should_retry.3", "doc/man/man3/BIO_socket_wait.3", @@ -19501,6 +22734,7 @@ our %unified_info = ( "doc/man/man3/BN_swap.3", "doc/man/man3/BN_zero.3", "doc/man/man3/BUF_MEM_new.3", + "doc/man/man3/CMAC_CTX.3", "doc/man/man3/CMS_EncryptedData_decrypt.3", "doc/man/man3/CMS_EncryptedData_encrypt.3", "doc/man/man3/CMS_EnvelopedData_create.3", @@ -19523,6 +22757,7 @@ our %unified_info = ( "doc/man/man3/CMS_uncompress.3", "doc/man/man3/CMS_verify.3", "doc/man/man3/CMS_verify_receipt.3", + "doc/man/man3/COMP_CTX_new.3", "doc/man/man3/CONF_modules_free.3", "doc/man/man3/CONF_modules_load_file.3", "doc/man/man3/CRYPTO_THREAD_run_once.3", @@ -19556,6 +22791,8 @@ our %unified_info = ( "doc/man/man3/DSA_size.3", "doc/man/man3/DTLS_get_data_mtu.3", "doc/man/man3/DTLS_set_timer_cb.3", + "doc/man/man3/DTLSv1_get_timeout.3", + "doc/man/man3/DTLSv1_handle_timeout.3", "doc/man/man3/DTLSv1_listen.3", "doc/man/man3/ECDSA_SIG_new.3", "doc/man/man3/ECDSA_sign.3", @@ -19602,6 +22839,7 @@ our %unified_info = ( "doc/man/man3/EVP_PKEY_CTX_ctrl.3", "doc/man/man3/EVP_PKEY_CTX_get0_libctx.3", "doc/man/man3/EVP_PKEY_CTX_get0_pkey.3", + "doc/man/man3/EVP_PKEY_CTX_get_algor.3", "doc/man/man3/EVP_PKEY_CTX_new.3", "doc/man/man3/EVP_PKEY_CTX_set1_pbe_pass.3", "doc/man/man3/EVP_PKEY_CTX_set_hkdf_md.3", @@ -19641,6 +22879,8 @@ our %unified_info = ( "doc/man/man3/EVP_PKEY_verify_recover.3", "doc/man/man3/EVP_RAND.3", "doc/man/man3/EVP_SIGNATURE.3", + "doc/man/man3/EVP_SKEY.3", + "doc/man/man3/EVP_SKEYMGMT.3", "doc/man/man3/EVP_SealInit.3", "doc/man/man3/EVP_SignInit.3", "doc/man/man3/EVP_VerifyInit.3", @@ -19670,6 +22910,7 @@ our %unified_info = ( "doc/man/man3/EVP_sm3.3", "doc/man/man3/EVP_sm4_cbc.3", "doc/man/man3/EVP_whirlpool.3", + "doc/man/man3/GENERAL_NAME.3", "doc/man/man3/HMAC.3", "doc/man/man3/MD5.3", "doc/man/man3/MDC2_Init.3", @@ -19694,14 +22935,18 @@ our %unified_info = ( "doc/man/man3/OPENSSL_init_ssl.3", "doc/man/man3/OPENSSL_instrument_bus.3", "doc/man/man3/OPENSSL_load_builtin_modules.3", + "doc/man/man3/OPENSSL_load_u16_le.3", "doc/man/man3/OPENSSL_malloc.3", + "doc/man/man3/OPENSSL_riscvcap.3", "doc/man/man3/OPENSSL_s390xcap.3", "doc/man/man3/OPENSSL_secure_malloc.3", "doc/man/man3/OPENSSL_strcasecmp.3", "doc/man/man3/OSSL_ALGORITHM.3", "doc/man/man3/OSSL_CALLBACK.3", + "doc/man/man3/OSSL_CMP_ATAV_set0.3", "doc/man/man3/OSSL_CMP_CTX_new.3", "doc/man/man3/OSSL_CMP_HDR_get0_transactionID.3", + "doc/man/man3/OSSL_CMP_ITAV_new_caCerts.3", "doc/man/man3/OSSL_CMP_ITAV_set0.3", "doc/man/man3/OSSL_CMP_MSG_get0_header.3", "doc/man/man3/OSSL_CMP_MSG_http_perform.3", @@ -19725,18 +22970,27 @@ our %unified_info = ( "doc/man/man3/OSSL_ENCODER_CTX.3", "doc/man/man3/OSSL_ENCODER_CTX_new_for_pkey.3", "doc/man/man3/OSSL_ENCODER_to_bio.3", + "doc/man/man3/OSSL_ERR_STATE_save.3", "doc/man/man3/OSSL_ESS_check_signing_certs.3", + "doc/man/man3/OSSL_GENERAL_NAMES_print.3", + "doc/man/man3/OSSL_HPKE_CTX_new.3", "doc/man/man3/OSSL_HTTP_REQ_CTX.3", "doc/man/man3/OSSL_HTTP_parse_url.3", "doc/man/man3/OSSL_HTTP_transfer.3", + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX.3", + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX_print.3", + "doc/man/man3/OSSL_INDICATOR_set_callback.3", "doc/man/man3/OSSL_ITEM.3", "doc/man/man3/OSSL_LIB_CTX.3", + "doc/man/man3/OSSL_LIB_CTX_set_conf_diagnostics.3", "doc/man/man3/OSSL_PARAM.3", "doc/man/man3/OSSL_PARAM_BLD.3", "doc/man/man3/OSSL_PARAM_allocate_from_text.3", "doc/man/man3/OSSL_PARAM_dup.3", "doc/man/man3/OSSL_PARAM_int.3", + "doc/man/man3/OSSL_PARAM_print_to_bio.3", "doc/man/man3/OSSL_PROVIDER.3", + "doc/man/man3/OSSL_QUIC_client_method.3", "doc/man/man3/OSSL_SELF_TEST_new.3", "doc/man/man3/OSSL_SELF_TEST_set_callback.3", "doc/man/man3/OSSL_STORE_INFO.3", @@ -19745,11 +22999,13 @@ our %unified_info = ( "doc/man/man3/OSSL_STORE_attach.3", "doc/man/man3/OSSL_STORE_expect.3", "doc/man/man3/OSSL_STORE_open.3", + "doc/man/man3/OSSL_sleep.3", "doc/man/man3/OSSL_trace_enabled.3", "doc/man/man3/OSSL_trace_get_category_num.3", "doc/man/man3/OSSL_trace_set_channel.3", "doc/man/man3/OpenSSL_add_all_algorithms.3", "doc/man/man3/OpenSSL_version.3", + "doc/man/man3/PBMAC1_get1_pbkdf2_param.3", "doc/man/man3/PEM_X509_INFO_read_bio_ex.3", "doc/man/man3/PEM_bytes_read_bio.3", "doc/man/man3/PEM_read.3", @@ -19762,6 +23018,7 @@ our %unified_info = ( "doc/man/man3/PKCS12_SAFEBAG_create_cert.3", "doc/man/man3/PKCS12_SAFEBAG_get0_attrs.3", "doc/man/man3/PKCS12_SAFEBAG_get1_cert.3", + "doc/man/man3/PKCS12_SAFEBAG_set0_attrs.3", "doc/man/man3/PKCS12_add1_attr_by_NID.3", "doc/man/man3/PKCS12_add_CSPName_asc.3", "doc/man/man3/PKCS12_add_cert.3", @@ -19853,6 +23110,7 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_sess_set_get_cb.3", "doc/man/man3/SSL_CTX_sessions.3", "doc/man/man3/SSL_CTX_set0_CA_list.3", + "doc/man/man3/SSL_CTX_set1_cert_comp_preference.3", "doc/man/man3/SSL_CTX_set1_curves.3", "doc/man/man3/SSL_CTX_set1_sigalgs.3", "doc/man/man3/SSL_CTX_set1_verify_cert_store.3", @@ -19866,6 +23124,7 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_ct_validation_callback.3", "doc/man/man3/SSL_CTX_set_ctlog_list_file.3", "doc/man/man3/SSL_CTX_set_default_passwd_cb.3", + "doc/man/man3/SSL_CTX_set_domain_flags.3", "doc/man/man3/SSL_CTX_set_generate_session_id.3", "doc/man/man3/SSL_CTX_set_info_callback.3", "doc/man/man3/SSL_CTX_set_keylog_callback.3", @@ -19873,6 +23132,7 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_min_proto_version.3", "doc/man/man3/SSL_CTX_set_mode.3", "doc/man/man3/SSL_CTX_set_msg_callback.3", + "doc/man/man3/SSL_CTX_set_new_pending_conn_cb.3", "doc/man/man3/SSL_CTX_set_num_tickets.3", "doc/man/man3/SSL_CTX_set_options.3", "doc/man/man3/SSL_CTX_set_psk_client_callback.3", @@ -19911,6 +23171,7 @@ our %unified_info = ( "doc/man/man3/SSL_SESSION_print.3", "doc/man/man3/SSL_SESSION_set1_id.3", "doc/man/man3/SSL_accept.3", + "doc/man/man3/SSL_accept_stream.3", "doc/man/man3/SSL_alert_type_string.3", "doc/man/man3/SSL_alloc_buffers.3", "doc/man/man3/SSL_check_chain.3", @@ -19920,59 +23181,90 @@ our %unified_info = ( "doc/man/man3/SSL_export_keying_material.3", "doc/man/man3/SSL_extension_supported.3", "doc/man/man3/SSL_free.3", + "doc/man/man3/SSL_get0_connection.3", + "doc/man/man3/SSL_get0_group_name.3", + "doc/man/man3/SSL_get0_peer_rpk.3", "doc/man/man3/SSL_get0_peer_scts.3", + "doc/man/man3/SSL_get1_builtin_sigalgs.3", "doc/man/man3/SSL_get_SSL_CTX.3", "doc/man/man3/SSL_get_all_async_fds.3", "doc/man/man3/SSL_get_certificate.3", "doc/man/man3/SSL_get_ciphers.3", "doc/man/man3/SSL_get_client_random.3", + "doc/man/man3/SSL_get_conn_close_info.3", "doc/man/man3/SSL_get_current_cipher.3", "doc/man/man3/SSL_get_default_timeout.3", "doc/man/man3/SSL_get_error.3", + "doc/man/man3/SSL_get_event_timeout.3", "doc/man/man3/SSL_get_extms_support.3", "doc/man/man3/SSL_get_fd.3", + "doc/man/man3/SSL_get_handshake_rtt.3", "doc/man/man3/SSL_get_peer_cert_chain.3", "doc/man/man3/SSL_get_peer_certificate.3", "doc/man/man3/SSL_get_peer_signature_nid.3", "doc/man/man3/SSL_get_peer_tmp_key.3", "doc/man/man3/SSL_get_psk_identity.3", "doc/man/man3/SSL_get_rbio.3", + "doc/man/man3/SSL_get_rpoll_descriptor.3", "doc/man/man3/SSL_get_session.3", "doc/man/man3/SSL_get_shared_sigalgs.3", + "doc/man/man3/SSL_get_stream_id.3", + "doc/man/man3/SSL_get_stream_read_state.3", + "doc/man/man3/SSL_get_value_uint.3", "doc/man/man3/SSL_get_verify_result.3", "doc/man/man3/SSL_get_version.3", "doc/man/man3/SSL_group_to_name.3", + "doc/man/man3/SSL_handle_events.3", "doc/man/man3/SSL_in_init.3", + "doc/man/man3/SSL_inject_net_dgram.3", "doc/man/man3/SSL_key_update.3", "doc/man/man3/SSL_library_init.3", "doc/man/man3/SSL_load_client_CA_file.3", "doc/man/man3/SSL_new.3", + "doc/man/man3/SSL_new_domain.3", + "doc/man/man3/SSL_new_listener.3", + "doc/man/man3/SSL_new_stream.3", "doc/man/man3/SSL_pending.3", + "doc/man/man3/SSL_poll.3", "doc/man/man3/SSL_read.3", "doc/man/man3/SSL_read_early_data.3", "doc/man/man3/SSL_rstate_string.3", "doc/man/man3/SSL_session_reused.3", "doc/man/man3/SSL_set1_host.3", + "doc/man/man3/SSL_set1_initial_peer_addr.3", + "doc/man/man3/SSL_set1_server_cert_type.3", "doc/man/man3/SSL_set_async_callback.3", "doc/man/man3/SSL_set_bio.3", + "doc/man/man3/SSL_set_blocking_mode.3", "doc/man/man3/SSL_set_connect_state.3", + "doc/man/man3/SSL_set_default_stream_mode.3", "doc/man/man3/SSL_set_fd.3", + "doc/man/man3/SSL_set_incoming_stream_policy.3", + "doc/man/man3/SSL_set_quic_tls_cbs.3", "doc/man/man3/SSL_set_retry_verify.3", "doc/man/man3/SSL_set_session.3", + "doc/man/man3/SSL_set_session_secret_cb.3", "doc/man/man3/SSL_set_shutdown.3", "doc/man/man3/SSL_set_verify_result.3", "doc/man/man3/SSL_shutdown.3", "doc/man/man3/SSL_state_string.3", + "doc/man/man3/SSL_stream_conclude.3", + "doc/man/man3/SSL_stream_reset.3", "doc/man/man3/SSL_want.3", "doc/man/man3/SSL_write.3", "doc/man/man3/TS_RESP_CTX_new.3", - "doc/man/man3/TS_VERIFY_CTX_set_certs.3", + "doc/man/man3/TS_VERIFY_CTX.3", "doc/man/man3/UI_STRING.3", "doc/man/man3/UI_UTIL_read_pw.3", "doc/man/man3/UI_create_method.3", "doc/man/man3/UI_new.3", "doc/man/man3/X509V3_get_d2i.3", "doc/man/man3/X509V3_set_ctx.3", + "doc/man/man3/X509_ACERT_add1_attr.3", + "doc/man/man3/X509_ACERT_add_attr_nconf.3", + "doc/man/man3/X509_ACERT_get0_holder_baseCertId.3", + "doc/man/man3/X509_ACERT_get_attr.3", + "doc/man/man3/X509_ACERT_print_ex.3", "doc/man/man3/X509_ALGOR_dup.3", "doc/man/man3/X509_ATTRIBUTE.3", "doc/man/man3/X509_CRL_get0_by_serial.3", @@ -19989,6 +23281,7 @@ our %unified_info = ( "doc/man/man3/X509_REQ_get_attr.3", "doc/man/man3/X509_REQ_get_extensions.3", "doc/man/man3/X509_SIG_get0.3", + "doc/man/man3/X509_STORE_CTX_get_by_subject.3", "doc/man/man3/X509_STORE_CTX_get_error.3", "doc/man/man3/X509_STORE_CTX_new.3", "doc/man/man3/X509_STORE_CTX_set_verify_cb.3", @@ -20011,6 +23304,7 @@ our %unified_info = ( "doc/man/man3/X509_get0_notBefore.3", "doc/man/man3/X509_get0_signature.3", "doc/man/man3/X509_get0_uids.3", + "doc/man/man3/X509_get_default_cert_file.3", "doc/man/man3/X509_get_extension_flags.3", "doc/man/man3/X509_get_pubkey.3", "doc/man/man3/X509_get_serialNumber.3", @@ -20056,12 +23350,15 @@ our %unified_info = ( "doc/man/man7/EVP_CIPHER-RC5.7", "doc/man/man7/EVP_CIPHER-SEED.7", "doc/man/man7/EVP_CIPHER-SM4.7", + "doc/man/man7/EVP_KDF-ARGON2.7", "doc/man/man7/EVP_KDF-HKDF.7", + "doc/man/man7/EVP_KDF-HMAC-DRBG.7", "doc/man/man7/EVP_KDF-KB.7", "doc/man/man7/EVP_KDF-KRB5KDF.7", "doc/man/man7/EVP_KDF-PBKDF1.7", "doc/man/man7/EVP_KDF-PBKDF2.7", "doc/man/man7/EVP_KDF-PKCS12KDF.7", + "doc/man/man7/EVP_KDF-PVKKDF.7", "doc/man/man7/EVP_KDF-SCRYPT.7", "doc/man/man7/EVP_KDF-SS.7", "doc/man/man7/EVP_KDF-SSHKDF.7", @@ -20070,7 +23367,10 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-X942-ASN1.7", "doc/man/man7/EVP_KDF-X942-CONCAT.7", "doc/man/man7/EVP_KDF-X963.7", + "doc/man/man7/EVP_KEM-EC.7", + "doc/man/man7/EVP_KEM-ML-KEM.7", "doc/man/man7/EVP_KEM-RSA.7", + "doc/man/man7/EVP_KEM-X25519.7", "doc/man/man7/EVP_KEYEXCH-DH.7", "doc/man/man7/EVP_KEYEXCH-ECDH.7", "doc/man/man7/EVP_KEYEXCH-X25519.7", @@ -20082,6 +23382,7 @@ our %unified_info = ( "doc/man/man7/EVP_MAC-Poly1305.7", "doc/man/man7/EVP_MAC-Siphash.7", "doc/man/man7/EVP_MD-BLAKE2.7", + "doc/man/man7/EVP_MD-KECCAK.7", "doc/man/man7/EVP_MD-MD2.7", "doc/man/man7/EVP_MD-MD4.7", "doc/man/man7/EVP_MD-MD5-SHA1.7", @@ -20101,12 +23402,17 @@ our %unified_info = ( "doc/man/man7/EVP_PKEY-EC.7", "doc/man/man7/EVP_PKEY-FFC.7", "doc/man/man7/EVP_PKEY-HMAC.7", + "doc/man/man7/EVP_PKEY-ML-DSA.7", + "doc/man/man7/EVP_PKEY-ML-KEM.7", "doc/man/man7/EVP_PKEY-RSA.7", + "doc/man/man7/EVP_PKEY-SLH-DSA.7", "doc/man/man7/EVP_PKEY-SM2.7", "doc/man/man7/EVP_PKEY-X25519.7", + "doc/man/man7/EVP_RAND-CRNG-TEST.7", "doc/man/man7/EVP_RAND-CTR-DRBG.7", "doc/man/man7/EVP_RAND-HASH-DRBG.7", "doc/man/man7/EVP_RAND-HMAC-DRBG.7", + "doc/man/man7/EVP_RAND-JITTER.7", "doc/man/man7/EVP_RAND-SEED-SRC.7", "doc/man/man7/EVP_RAND-TEST-RAND.7", "doc/man/man7/EVP_RAND.7", @@ -20114,17 +23420,19 @@ our %unified_info = ( "doc/man/man7/EVP_SIGNATURE-ECDSA.7", "doc/man/man7/EVP_SIGNATURE-ED25519.7", "doc/man/man7/EVP_SIGNATURE-HMAC.7", + "doc/man/man7/EVP_SIGNATURE-ML-DSA.7", "doc/man/man7/EVP_SIGNATURE-RSA.7", + "doc/man/man7/EVP_SIGNATURE-SLH-DSA.7", "doc/man/man7/OSSL_PROVIDER-FIPS.7", "doc/man/man7/OSSL_PROVIDER-base.7", "doc/man/man7/OSSL_PROVIDER-default.7", "doc/man/man7/OSSL_PROVIDER-legacy.7", "doc/man/man7/OSSL_PROVIDER-null.7", + "doc/man/man7/OSSL_STORE-winstore.7", "doc/man/man7/RAND.7", "doc/man/man7/RSA-PSS.7", "doc/man/man7/X25519.7", "doc/man/man7/bio.7", - "doc/man/man7/crypto.7", "doc/man/man7/ct.7", "doc/man/man7/des_modes.7", "doc/man/man7/evp.7", @@ -20135,14 +23443,31 @@ our %unified_info = ( "doc/man/man7/life_cycle-mac.7", "doc/man/man7/life_cycle-pkey.7", "doc/man/man7/life_cycle-rand.7", - "doc/man/man7/migration_guide.7", "doc/man/man7/openssl-core.h.7", "doc/man/man7/openssl-core_dispatch.h.7", "doc/man/man7/openssl-core_names.h.7", "doc/man/man7/openssl-env.7", "doc/man/man7/openssl-glossary.7", + "doc/man/man7/openssl-qlog.7", + "doc/man/man7/openssl-quic-concurrency.7", + "doc/man/man7/openssl-quic.7", "doc/man/man7/openssl-threads.7", "doc/man/man7/openssl_user_macros.7", + "doc/man/man7/ossl-guide-introduction.7", + "doc/man/man7/ossl-guide-libcrypto-introduction.7", + "doc/man/man7/ossl-guide-libraries-introduction.7", + "doc/man/man7/ossl-guide-libssl-introduction.7", + "doc/man/man7/ossl-guide-migration.7", + "doc/man/man7/ossl-guide-quic-client-block.7", + "doc/man/man7/ossl-guide-quic-client-non-block.7", + "doc/man/man7/ossl-guide-quic-introduction.7", + "doc/man/man7/ossl-guide-quic-multi-stream.7", + "doc/man/man7/ossl-guide-quic-server-block.7", + "doc/man/man7/ossl-guide-quic-server-non-block.7", + "doc/man/man7/ossl-guide-tls-client-block.7", + "doc/man/man7/ossl-guide-tls-client-non-block.7", + "doc/man/man7/ossl-guide-tls-introduction.7", + "doc/man/man7/ossl-guide-tls-server-block.7", "doc/man/man7/ossl_store-file.7", "doc/man/man7/ossl_store.7", "doc/man/man7/passphrase-encoding.7", @@ -20161,10 +23486,10 @@ our %unified_info = ( "doc/man/man7/provider-object.7", "doc/man/man7/provider-rand.7", "doc/man/man7/provider-signature.7", + "doc/man/man7/provider-skeymgmt.7", "doc/man/man7/provider-storemgmt.7", "doc/man/man7/provider.7", "doc/man/man7/proxy-certificates.7", - "doc/man/man7/ssl.7", "doc/man/man7/x509.7" ] }, @@ -20176,6 +23501,7 @@ our %unified_info = ( ], "programs" => [ "apps/openssl", + "fuzz/acert-test", "fuzz/asn1-test", "fuzz/asn1parse-test", "fuzz/bignum-test", @@ -20186,7 +23512,24 @@ our %unified_info = ( "fuzz/conf-test", "fuzz/crl-test", "fuzz/ct-test", + "fuzz/decoder-test", + "fuzz/dtlsclient-test", + "fuzz/dtlsserver-test", + "fuzz/hashtable-test", + "fuzz/ml-dsa-test", + "fuzz/ml-kem-test", + "fuzz/pem-test", + "fuzz/provider-test", + "fuzz/punycode-test", + "fuzz/quic-client-test", + "fuzz/quic-lcidm-test", + "fuzz/quic-rcidm-test", + "fuzz/quic-server-test", + "fuzz/quic-srtm-test", "fuzz/server-test", + "fuzz/slh-dsa-test", + "fuzz/smime-test", + "fuzz/v3name-test", "fuzz/x509-test", "test/aborttest", "test/acvp_test", @@ -20204,21 +23547,28 @@ our %unified_info = ( "test/asynctest", "test/bad_dtls_test", "test/bftest", + "test/bio_addr_test", + "test/bio_base64_test", "test/bio_callback_test", "test/bio_core_test", + "test/bio_dgram_test", "test/bio_enc_test", "test/bio_memleak_test", + "test/bio_meth_test", "test/bio_prefix_text", "test/bio_pw_callback_test", "test/bio_readbuffer_test", + "test/bio_tfo_test", "test/bioprinttest", "test/bn_internal_test", "test/bntest", + "test/build_wincrypt_test", "test/buildtest_c_aes", "test/buildtest_c_async", "test/buildtest_c_blowfish", "test/buildtest_c_bn", "test/buildtest_c_buffer", + "test/buildtest_c_byteorder", "test/buildtest_c_camellia", "test/buildtest_c_cast", "test/buildtest_c_cmac", @@ -20227,7 +23577,6 @@ our %unified_info = ( "test/buildtest_c_conftypes", "test/buildtest_c_core", "test/buildtest_c_core_dispatch", - "test/buildtest_c_core_names", "test/buildtest_c_core_object", "test/buildtest_c_cryptoerr_legacy", "test/buildtest_c_decoder", @@ -20236,6 +23585,7 @@ our %unified_info = ( "test/buildtest_c_dsa", "test/buildtest_c_dtls1", "test/buildtest_c_e_os2", + "test/buildtest_c_e_ostime", "test/buildtest_c_ebcdic", "test/buildtest_c_ec", "test/buildtest_c_ecdh", @@ -20245,13 +23595,16 @@ our %unified_info = ( "test/buildtest_c_evp", "test/buildtest_c_fips_names", "test/buildtest_c_hmac", + "test/buildtest_c_hpke", "test/buildtest_c_http", "test/buildtest_c_idea", + "test/buildtest_c_indicator", "test/buildtest_c_kdf", "test/buildtest_c_macros", "test/buildtest_c_md4", "test/buildtest_c_md5", "test/buildtest_c_mdc2", + "test/buildtest_c_ml_kem", "test/buildtest_c_modes", "test/buildtest_c_obj_mac", "test/buildtest_c_objects", @@ -20262,6 +23615,7 @@ our %unified_info = ( "test/buildtest_c_pem2", "test/buildtest_c_prov_ssl", "test/buildtest_c_provider", + "test/buildtest_c_quic", "test/buildtest_c_rand", "test/buildtest_c_rc2", "test/buildtest_c_rc4", @@ -20276,11 +23630,14 @@ our %unified_info = ( "test/buildtest_c_stack", "test/buildtest_c_store", "test/buildtest_c_symhacks", + "test/buildtest_c_thread", "test/buildtest_c_tls1", "test/buildtest_c_ts", "test/buildtest_c_txt_db", "test/buildtest_c_types", "test/buildtest_c_whrlpool", + "test/byteorder_test", + "test/ca_internals_test", "test/casttest", "test/chacha_internal_test", "test/cipher_overhead_test", @@ -20309,6 +23666,7 @@ our %unified_info = ( "test/curve448_internal_test", "test/d2i_test", "test/danetest", + "test/decoder_propq_test", "test/defltfips_test", "test/destest", "test/dhtest", @@ -20333,9 +23691,12 @@ our %unified_info = ( "test/evp_kdf_test", "test/evp_libctx_test", "test/evp_pkey_ctx_new_from_name", + "test/evp_pkey_dhkem_test", "test/evp_pkey_dparams_test", "test/evp_pkey_provided_test", + "test/evp_skey_test", "test/evp_test", + "test/evp_xof_test", "test/exdatatest", "test/exptest", "test/ext_internal_test", @@ -20345,21 +23706,29 @@ our %unified_info = ( "test/gmdifftest", "test/hexstr_test", "test/hmactest", + "test/hpke_test", "test/http_test", "test/ideatest", "test/igetest", + "test/json_test", "test/keymgmt_internal_test", "test/lhash_test", + "test/list_test", "test/localetest", "test/mdc2_internal_test", "test/mdc2test", + "test/membio_test", "test/memleaktest", + "test/ml_dsa_test", + "test/ml_kem_evp_extra_test", + "test/ml_kem_internal_test", "test/modes_internal_test", "test/namemap_internal_test", "test/nodefltctxtest", "test/ocspapitest", "test/ossl_store_test", "test/packettest", + "test/pairwise_fail_test", "test/param_build_test", "test/params_api_test", "test/params_conversion_test", @@ -20368,36 +23737,65 @@ our %unified_info = ( "test/pbetest", "test/pem_read_depr_test", "test/pemtest", + "test/pkcs12_api_test", "test/pkcs12_format_test", "test/pkcs7_test", "test/pkey_meth_kdf_test", "test/pkey_meth_test", "test/poly1305_internal_test", + "test/priority_queue_test", "test/property_test", "test/prov_config_test", "test/provfetchtest", + "test/provider_default_search_path_test", "test/provider_fallback_test", "test/provider_internal_test", "test/provider_pkey_test", "test/provider_status_test", "test/provider_test", "test/punycode_test", + "test/quic_ackm_test", + "test/quic_cc_test", + "test/quic_cfq_test", + "test/quic_client_test", + "test/quic_fc_test", + "test/quic_fifd_test", + "test/quic_lcidm_test", + "test/quic_multistream_test", + "test/quic_newcid_test", + "test/quic_qlog_test", + "test/quic_radix_test", + "test/quic_rcidm_test", + "test/quic_record_test", + "test/quic_srt_gen_test", + "test/quic_srtm_test", + "test/quic_stream_test", + "test/quic_tserver_test", + "test/quic_txp_test", + "test/quic_txpim_test", + "test/quic_wire_test", + "test/quicapitest", + "test/quicfaultstest", "test/rand_status_test", "test/rand_test", "test/rc2test", "test/rc4test", "test/rc5test", - "test/rdrand_sanitytest", + "test/rdcpu_sanitytest", "test/recordlentest", + "test/rpktest", "test/rsa_complex", "test/rsa_mp_test", "test/rsa_sp800_56b_test", "test/rsa_test", + "test/rsa_x931_test", + "test/safe_math_test", "test/sanitytest", "test/secmemtest", "test/servername_test", "test/sha_test", "test/siphash_internal_test", + "test/slh_dsa_test", "test/sm2_internal_test", "test/sm3_internal_test", "test/sm4_internal_test", @@ -20405,6 +23803,7 @@ our %unified_info = ( "test/srptest", "test/ssl_cert_table_internal_test", "test/ssl_ctx_test", + "test/ssl_handshake_rtt_test", "test/ssl_old_test", "test/ssl_test", "test/ssl_test_ctx_test", @@ -20412,13 +23811,17 @@ our %unified_info = ( "test/sslbuffertest", "test/sslcorrupttest", "test/stack_test", + "test/strtoultest", "test/sysdefaulttest", "test/test_test", + "test/threadpool_test", "test/threadstest", "test/threadstest_fips", "test/time_offset_test", + "test/time_test", "test/tls13ccstest", "test/tls13encryptiontest", + "test/tls13groupselection_test", "test/trace_api_test", "test/uitest", "test/upcallstest", @@ -20428,9 +23831,13 @@ our %unified_info = ( "test/verify_extra_test", "test/versions", "test/wpackettest", + "test/x509_acert_test", "test/x509_check_cert_pkey_test", "test/x509_dup_cert_test", "test/x509_internal_test", + "test/x509_load_cert_file_test", + "test/x509_req_test", + "test/x509_test", "test/x509_time_test", "test/x509aux" ], @@ -20446,6 +23853,33 @@ our %unified_info = ( "apps/CA.pl" => [ "apps/CA.pl.in" ], + "apps/ca_internals_test-bin-ca.o" => [ + "apps/ca.c" + ], + "apps/lib/ca_internals_test-bin-app_libctx.o" => [ + "apps/lib/app_libctx.c" + ], + "apps/lib/ca_internals_test-bin-app_provider.o" => [ + "apps/lib/app_provider.c" + ], + "apps/lib/ca_internals_test-bin-app_rand.o" => [ + "apps/lib/app_rand.c" + ], + "apps/lib/ca_internals_test-bin-app_x509.o" => [ + "apps/lib/app_x509.c" + ], + "apps/lib/ca_internals_test-bin-apps.o" => [ + "apps/lib/apps.c" + ], + "apps/lib/ca_internals_test-bin-apps_ui.o" => [ + "apps/lib/apps_ui.c" + ], + "apps/lib/ca_internals_test-bin-engine.o" => [ + "apps/lib/engine.c" + ], + "apps/lib/ca_internals_test-bin-fmt.o" => [ + "apps/lib/fmt.c" + ], "apps/lib/cmp_client_test-bin-cmp_mock_srv.o" => [ "apps/lib/cmp_mock_srv.c" ], @@ -20467,6 +23901,9 @@ our %unified_info = ( "apps/lib/libapps-lib-apps.o" => [ "apps/lib/apps.c" ], + "apps/lib/libapps-lib-apps_opt_printf.o" => [ + "apps/lib/apps_opt_printf.c" + ], "apps/lib/libapps-lib-apps_ui.o" => [ "apps/lib/apps_ui.c" ], @@ -20485,6 +23922,9 @@ our %unified_info = ( "apps/lib/libapps-lib-http_server.o" => [ "apps/lib/http_server.c" ], + "apps/lib/libapps-lib-log.o" => [ + "apps/lib/log.c" + ], "apps/lib/libapps-lib-names.o" => [ "apps/lib/names.c" ], @@ -20516,12 +23956,14 @@ our %unified_info = ( "apps/lib/libapps-lib-app_rand.o", "apps/lib/libapps-lib-app_x509.o", "apps/lib/libapps-lib-apps.o", + "apps/lib/libapps-lib-apps_opt_printf.o", "apps/lib/libapps-lib-apps_ui.o", "apps/lib/libapps-lib-columns.o", "apps/lib/libapps-lib-engine.o", "apps/lib/libapps-lib-engine_loader.o", "apps/lib/libapps-lib-fmt.o", "apps/lib/libapps-lib-http_server.o", + "apps/lib/libapps-lib-log.o", "apps/lib/libapps-lib-names.o", "apps/lib/libapps-lib-opt.o", "apps/lib/libapps-lib-s_cb.o", @@ -20575,6 +24017,7 @@ our %unified_info = ( "apps/openssl-bin-s_server.o", "apps/openssl-bin-s_time.o", "apps/openssl-bin-sess_id.o", + "apps/openssl-bin-skeyutl.o", "apps/openssl-bin-smime.o", "apps/openssl-bin-speed.o", "apps/openssl-bin-spkac.o", @@ -20720,6 +24163,9 @@ our %unified_info = ( "apps/openssl-bin-sess_id.o" => [ "apps/sess_id.c" ], + "apps/openssl-bin-skeyutl.o" => [ + "apps/skeyutl.c" + ], "apps/openssl-bin-smime.o" => [ "apps/smime.c" ], @@ -20795,6 +24241,12 @@ our %unified_info = ( "crypto/aria/libcrypto-lib-aria.o" => [ "crypto/aria/aria.c" ], + "crypto/asn1/asn1_time_test-bin-a_time.o" => [ + "crypto/asn1/a_time.c" + ], + "crypto/asn1/ca_internals_test-bin-a_time.o" => [ + "crypto/asn1/a_time.c" + ], "crypto/asn1/libcrypto-lib-a_bitstr.o" => [ "crypto/asn1/a_bitstr.c" ], @@ -20987,6 +24439,9 @@ our %unified_info = ( "crypto/asn1/libcrypto-lib-x_val.o" => [ "crypto/asn1/x_val.c" ], + "crypto/asn1_time_test-bin-ctype.o" => [ + "crypto/ctype.c" + ], "crypto/async/arch/libcrypto-lib-async_null.o" => [ "crypto/async/arch/async_null.c" ], @@ -21080,6 +24535,9 @@ our %unified_info = ( "crypto/bio/libcrypto-lib-bss_dgram.o" => [ "crypto/bio/bss_dgram.c" ], + "crypto/bio/libcrypto-lib-bss_dgram_pair.o" => [ + "crypto/bio/bss_dgram_pair.c" + ], "crypto/bio/libcrypto-lib-bss_fd.o" => [ "crypto/bio/bss_fd.c" ], @@ -21311,6 +24769,9 @@ our %unified_info = ( "crypto/buffer/libfips-lib-buffer.o" => [ "crypto/buffer/buffer.c" ], + "crypto/ca_internals_test-bin-ctype.o" => [ + "crypto/ctype.c" + ], "crypto/camellia/libcrypto-lib-cmll-x86.o" => [ "crypto/camellia/cmll-x86.S" ], @@ -21362,6 +24823,9 @@ our %unified_info = ( "crypto/cmp/libcrypto-lib-cmp_err.o" => [ "crypto/cmp/cmp_err.c" ], + "crypto/cmp/libcrypto-lib-cmp_genm.o" => [ + "crypto/cmp/cmp_genm.c" + ], "crypto/cmp/libcrypto-lib-cmp_hdr.o" => [ "crypto/cmp/cmp_hdr.c" ], @@ -22049,9 +25513,15 @@ our %unified_info = ( "crypto/err/libcrypto-lib-err_blocks.o" => [ "crypto/err/err_blocks.c" ], + "crypto/err/libcrypto-lib-err_mark.o" => [ + "crypto/err/err_mark.c" + ], "crypto/err/libcrypto-lib-err_prn.o" => [ "crypto/err/err_prn.c" ], + "crypto/err/libcrypto-lib-err_save.o" => [ + "crypto/err/err_save.c" + ], "crypto/ess/libcrypto-lib-ess_asn1.o" => [ "crypto/ess/ess_asn1.c" ], @@ -22298,9 +25768,15 @@ our %unified_info = ( "crypto/evp/libcrypto-lib-pmeth_lib.o" => [ "crypto/evp/pmeth_lib.c" ], + "crypto/evp/libcrypto-lib-s_lib.o" => [ + "crypto/evp/s_lib.c" + ], "crypto/evp/libcrypto-lib-signature.o" => [ "crypto/evp/signature.c" ], + "crypto/evp/libcrypto-lib-skeymgmt_meth.o" => [ + "crypto/evp/skeymgmt_meth.c" + ], "crypto/evp/libfips-lib-asymcipher.o" => [ "crypto/evp/asymcipher.c" ], @@ -22346,9 +25822,6 @@ our %unified_info = ( "crypto/evp/libfips-lib-keymgmt_meth.o" => [ "crypto/evp/keymgmt_meth.c" ], - "crypto/evp/libfips-lib-m_sigver.o" => [ - "crypto/evp/m_sigver.c" - ], "crypto/evp/libfips-lib-mac_lib.o" => [ "crypto/evp/mac_lib.c" ], @@ -22367,9 +25840,15 @@ our %unified_info = ( "crypto/evp/libfips-lib-pmeth_lib.o" => [ "crypto/evp/pmeth_lib.c" ], + "crypto/evp/libfips-lib-s_lib.o" => [ + "crypto/evp/s_lib.c" + ], "crypto/evp/libfips-lib-signature.o" => [ "crypto/evp/signature.c" ], + "crypto/evp/libfips-lib-skeymgmt_meth.o" => [ + "crypto/evp/skeymgmt_meth.c" + ], "crypto/ffc/libcrypto-lib-ffc_backend.o" => [ "crypto/ffc/ffc_backend.c" ], @@ -22412,12 +25891,30 @@ our %unified_info = ( "crypto/ffc/libfips-lib-ffc_params_validate.o" => [ "crypto/ffc/ffc_params_validate.c" ], + "crypto/hashtable/libcrypto-lib-hashfunc.o" => [ + "crypto/hashtable/hashfunc.c" + ], + "crypto/hashtable/libcrypto-lib-hashtable.o" => [ + "crypto/hashtable/hashtable.c" + ], + "crypto/hashtable/libfips-lib-hashfunc.o" => [ + "crypto/hashtable/hashfunc.c" + ], + "crypto/hashtable/libfips-lib-hashtable.o" => [ + "crypto/hashtable/hashtable.c" + ], "crypto/hmac/libcrypto-lib-hmac.o" => [ "crypto/hmac/hmac.c" ], "crypto/hmac/libfips-lib-hmac.o" => [ "crypto/hmac/hmac.c" ], + "crypto/hpke/libcrypto-lib-hpke.o" => [ + "crypto/hpke/hpke.c" + ], + "crypto/hpke/libcrypto-lib-hpke_util.o" => [ + "crypto/hpke/hpke_util.c" + ], "crypto/http/libcrypto-lib-http_client.o" => [ "crypto/http/http_client.c" ], @@ -22460,6 +25957,9 @@ our %unified_info = ( "crypto/libcrypto-lib-bsearch.o" => [ "crypto/bsearch.c" ], + "crypto/libcrypto-lib-comp_methods.o" => [ + "crypto/comp_methods.c" + ], "crypto/libcrypto-lib-context.o" => [ "crypto/context.c" ], @@ -22487,9 +25987,15 @@ our %unified_info = ( "crypto/libcrypto-lib-cversion.o" => [ "crypto/cversion.c" ], + "crypto/libcrypto-lib-defaults.o" => [ + "crypto/defaults.c" + ], "crypto/libcrypto-lib-der_writer.o" => [ "crypto/der_writer.c" ], + "crypto/libcrypto-lib-deterministic_nonce.o" => [ + "crypto/deterministic_nonce.c" + ], "crypto/libcrypto-lib-ebcdic.o" => [ "crypto/ebcdic.c" ], @@ -22499,6 +26005,9 @@ our %unified_info = ( "crypto/libcrypto-lib-getenv.o" => [ "crypto/getenv.c" ], + "crypto/libcrypto-lib-indicator_core.o" => [ + "crypto/indicator_core.c" + ], "crypto/libcrypto-lib-info.o" => [ "crypto/info.c" ], @@ -22547,6 +26056,9 @@ our %unified_info = ( "crypto/libcrypto-lib-params_from_text.o" => [ "crypto/params_from_text.c" ], + "crypto/libcrypto-lib-params_idx.o" => [ + "crypto/params_idx.c" + ], "crypto/libcrypto-lib-passphrase.o" => [ "crypto/passphrase.c" ], @@ -22568,12 +26080,21 @@ our %unified_info = ( "crypto/libcrypto-lib-punycode.o" => [ "crypto/punycode.c" ], + "crypto/libcrypto-lib-quic_vlint.o" => [ + "crypto/quic_vlint.c" + ], "crypto/libcrypto-lib-self_test_core.o" => [ "crypto/self_test_core.c" ], + "crypto/libcrypto-lib-sleep.o" => [ + "crypto/sleep.c" + ], "crypto/libcrypto-lib-sparse_array.o" => [ "crypto/sparse_array.c" ], + "crypto/libcrypto-lib-ssl_err.o" => [ + "crypto/ssl_err.c" + ], "crypto/libcrypto-lib-threads_lib.o" => [ "crypto/threads_lib.c" ], @@ -22586,6 +26107,9 @@ our %unified_info = ( "crypto/libcrypto-lib-threads_win.o" => [ "crypto/threads_win.c" ], + "crypto/libcrypto-lib-time.o" => [ + "crypto/time.c" + ], "crypto/libcrypto-lib-trace.o" => [ "crypto/trace.c" ], @@ -22652,6 +26176,9 @@ our %unified_info = ( "crypto/libfips-lib-params_from_text.o" => [ "crypto/params_from_text.c" ], + "crypto/libfips-lib-params_idx.o" => [ + "crypto/params_idx.c" + ], "crypto/libfips-lib-provider_core.o" => [ "crypto/provider_core.c" ], @@ -22676,6 +26203,9 @@ our %unified_info = ( "crypto/libfips-lib-threads_win.o" => [ "crypto/threads_win.c" ], + "crypto/libfips-lib-time.o" => [ + "crypto/time.c" + ], "crypto/libfips-lib-x86cpuid.o" => [ "crypto/x86cpuid.S" ], @@ -22703,6 +26233,60 @@ our %unified_info = ( "crypto/mdc2/libcrypto-lib-mdc2dgst.o" => [ "crypto/mdc2/mdc2dgst.c" ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_encoders.o" => [ + "crypto/ml_dsa/ml_dsa_encoders.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key.o" => [ + "crypto/ml_dsa/ml_dsa_key.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key_compress.o" => [ + "crypto/ml_dsa/ml_dsa_key_compress.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_matrix.o" => [ + "crypto/ml_dsa/ml_dsa_matrix.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_ntt.o" => [ + "crypto/ml_dsa/ml_dsa_ntt.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_params.o" => [ + "crypto/ml_dsa/ml_dsa_params.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sample.o" => [ + "crypto/ml_dsa/ml_dsa_sample.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sign.o" => [ + "crypto/ml_dsa/ml_dsa_sign.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_encoders.o" => [ + "crypto/ml_dsa/ml_dsa_encoders.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_key.o" => [ + "crypto/ml_dsa/ml_dsa_key.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_key_compress.o" => [ + "crypto/ml_dsa/ml_dsa_key_compress.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_matrix.o" => [ + "crypto/ml_dsa/ml_dsa_matrix.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_ntt.o" => [ + "crypto/ml_dsa/ml_dsa_ntt.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_params.o" => [ + "crypto/ml_dsa/ml_dsa_params.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_sample.o" => [ + "crypto/ml_dsa/ml_dsa_sample.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_sign.o" => [ + "crypto/ml_dsa/ml_dsa_sign.c" + ], + "crypto/ml_kem/libcrypto-lib-ml_kem.o" => [ + "crypto/ml_kem/ml_kem.c" + ], + "crypto/ml_kem/libfips-lib-ml_kem.o" => [ + "crypto/ml_kem/ml_kem.c" + ], "crypto/modes/libcrypto-lib-cbc128.o" => [ "crypto/modes/cbc128.c" ], @@ -22739,6 +26323,9 @@ our %unified_info = ( "crypto/modes/libcrypto-lib-xts128.o" => [ "crypto/modes/xts128.c" ], + "crypto/modes/libcrypto-lib-xts128gb.o" => [ + "crypto/modes/xts128gb.c" + ], "crypto/modes/libfips-lib-cbc128.o" => [ "crypto/modes/cbc128.c" ], @@ -22766,6 +26353,9 @@ our %unified_info = ( "crypto/modes/libfips-lib-xts128.o" => [ "crypto/modes/xts128.c" ], + "crypto/modes/libfips-lib-xts128gb.o" => [ + "crypto/modes/xts128gb.c" + ], "crypto/objects/libcrypto-lib-o_names.o" => [ "crypto/objects/o_names.c" ], @@ -22811,6 +26401,9 @@ our %unified_info = ( "crypto/ocsp/libcrypto-lib-v3_ocsp.o" => [ "crypto/ocsp/v3_ocsp.c" ], + "crypto/packettest-bin-quic_vlint.o" => [ + "crypto/quic_vlint.c" + ], "crypto/pem/libcrypto-lib-pem_all.o" => [ "crypto/pem/pem_all.c" ], @@ -22973,6 +26566,9 @@ our %unified_info = ( "crypto/rand/libcrypto-lib-rand_pool.o" => [ "crypto/rand/rand_pool.c" ], + "crypto/rand/libcrypto-lib-rand_uniform.o" => [ + "crypto/rand/rand_uniform.c" + ], "crypto/rand/libcrypto-lib-randfile.o" => [ "crypto/rand/randfile.c" ], @@ -23204,6 +26800,66 @@ our %unified_info = ( "crypto/siphash/libcrypto-lib-siphash.o" => [ "crypto/siphash/siphash.c" ], + "crypto/slh_dsa/libcrypto-lib-slh_adrs.o" => [ + "crypto/slh_dsa/slh_adrs.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_dsa.o" => [ + "crypto/slh_dsa/slh_dsa.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_dsa_hash_ctx.o" => [ + "crypto/slh_dsa/slh_dsa_hash_ctx.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_dsa_key.o" => [ + "crypto/slh_dsa/slh_dsa_key.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_fors.o" => [ + "crypto/slh_dsa/slh_fors.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_hash.o" => [ + "crypto/slh_dsa/slh_hash.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_hypertree.o" => [ + "crypto/slh_dsa/slh_hypertree.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_params.o" => [ + "crypto/slh_dsa/slh_params.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_wots.o" => [ + "crypto/slh_dsa/slh_wots.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_xmss.o" => [ + "crypto/slh_dsa/slh_xmss.c" + ], + "crypto/slh_dsa/libfips-lib-slh_adrs.o" => [ + "crypto/slh_dsa/slh_adrs.c" + ], + "crypto/slh_dsa/libfips-lib-slh_dsa.o" => [ + "crypto/slh_dsa/slh_dsa.c" + ], + "crypto/slh_dsa/libfips-lib-slh_dsa_hash_ctx.o" => [ + "crypto/slh_dsa/slh_dsa_hash_ctx.c" + ], + "crypto/slh_dsa/libfips-lib-slh_dsa_key.o" => [ + "crypto/slh_dsa/slh_dsa_key.c" + ], + "crypto/slh_dsa/libfips-lib-slh_fors.o" => [ + "crypto/slh_dsa/slh_fors.c" + ], + "crypto/slh_dsa/libfips-lib-slh_hash.o" => [ + "crypto/slh_dsa/slh_hash.c" + ], + "crypto/slh_dsa/libfips-lib-slh_hypertree.o" => [ + "crypto/slh_dsa/slh_hypertree.c" + ], + "crypto/slh_dsa/libfips-lib-slh_params.o" => [ + "crypto/slh_dsa/slh_params.c" + ], + "crypto/slh_dsa/libfips-lib-slh_wots.o" => [ + "crypto/slh_dsa/slh_wots.c" + ], + "crypto/slh_dsa/libfips-lib-slh_xmss.o" => [ + "crypto/slh_dsa/slh_xmss.c" + ], "crypto/sm2/libcrypto-lib-sm2_crypt.o" => [ "crypto/sm2/sm2_crypt.c" ], @@ -23258,6 +26914,42 @@ our %unified_info = ( "crypto/store/libcrypto-lib-store_strings.o" => [ "crypto/store/store_strings.c" ], + "crypto/thread/arch/libcrypto-lib-thread_none.o" => [ + "crypto/thread/arch/thread_none.c" + ], + "crypto/thread/arch/libcrypto-lib-thread_posix.o" => [ + "crypto/thread/arch/thread_posix.c" + ], + "crypto/thread/arch/libcrypto-lib-thread_win.o" => [ + "crypto/thread/arch/thread_win.c" + ], + "crypto/thread/arch/libfips-lib-thread_none.o" => [ + "crypto/thread/arch/thread_none.c" + ], + "crypto/thread/arch/libfips-lib-thread_posix.o" => [ + "crypto/thread/arch/thread_posix.c" + ], + "crypto/thread/arch/libfips-lib-thread_win.o" => [ + "crypto/thread/arch/thread_win.c" + ], + "crypto/thread/libcrypto-lib-api.o" => [ + "crypto/thread/api.c" + ], + "crypto/thread/libcrypto-lib-arch.o" => [ + "crypto/thread/arch.c" + ], + "crypto/thread/libcrypto-lib-internal.o" => [ + "crypto/thread/internal.c" + ], + "crypto/thread/libfips-lib-api.o" => [ + "crypto/thread/api.c" + ], + "crypto/thread/libfips-lib-arch.o" => [ + "crypto/thread/arch.c" + ], + "crypto/thread/libfips-lib-internal.o" => [ + "crypto/thread/internal.c" + ], "crypto/ts/libcrypto-lib-ts_asn1.o" => [ "crypto/ts/ts_asn1.c" ], @@ -23345,6 +27037,9 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-pcy_tree.o" => [ "crypto/x509/pcy_tree.c" ], + "crypto/x509/libcrypto-lib-t_acert.o" => [ + "crypto/x509/t_acert.c" + ], "crypto/x509/libcrypto-lib-t_crl.o" => [ "crypto/x509/t_crl.c" ], @@ -23354,6 +27049,12 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-t_x509.o" => [ "crypto/x509/t_x509.c" ], + "crypto/x509/libcrypto-lib-v3_aaa.o" => [ + "crypto/x509/v3_aaa.c" + ], + "crypto/x509/libcrypto-lib-v3_ac_tgt.o" => [ + "crypto/x509/v3_ac_tgt.c" + ], "crypto/x509/libcrypto-lib-v3_addr.o" => [ "crypto/x509/v3_addr.c" ], @@ -23369,6 +27070,21 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_asid.o" => [ "crypto/x509/v3_asid.c" ], + "crypto/x509/libcrypto-lib-v3_attrdesc.o" => [ + "crypto/x509/v3_attrdesc.c" + ], + "crypto/x509/libcrypto-lib-v3_attrmap.o" => [ + "crypto/x509/v3_attrmap.c" + ], + "crypto/x509/libcrypto-lib-v3_audit_id.o" => [ + "crypto/x509/v3_audit_id.c" + ], + "crypto/x509/libcrypto-lib-v3_authattid.o" => [ + "crypto/x509/v3_authattid.c" + ], + "crypto/x509/libcrypto-lib-v3_battcons.o" => [ + "crypto/x509/v3_battcons.c" + ], "crypto/x509/libcrypto-lib-v3_bcons.o" => [ "crypto/x509/v3_bcons.c" ], @@ -23393,15 +27109,24 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_genn.o" => [ "crypto/x509/v3_genn.c" ], + "crypto/x509/libcrypto-lib-v3_group_ac.o" => [ + "crypto/x509/v3_group_ac.c" + ], "crypto/x509/libcrypto-lib-v3_ia5.o" => [ "crypto/x509/v3_ia5.c" ], + "crypto/x509/libcrypto-lib-v3_ind_iss.o" => [ + "crypto/x509/v3_ind_iss.c" + ], "crypto/x509/libcrypto-lib-v3_info.o" => [ "crypto/x509/v3_info.c" ], "crypto/x509/libcrypto-lib-v3_int.o" => [ "crypto/x509/v3_int.c" ], + "crypto/x509/libcrypto-lib-v3_iobo.o" => [ + "crypto/x509/v3_iobo.c" + ], "crypto/x509/libcrypto-lib-v3_ist.o" => [ "crypto/x509/v3_ist.c" ], @@ -23411,6 +27136,12 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_ncons.o" => [ "crypto/x509/v3_ncons.c" ], + "crypto/x509/libcrypto-lib-v3_no_ass.o" => [ + "crypto/x509/v3_no_ass.c" + ], + "crypto/x509/libcrypto-lib-v3_no_rev_avail.o" => [ + "crypto/x509/v3_no_rev_avail.c" + ], "crypto/x509/libcrypto-lib-v3_pci.o" => [ "crypto/x509/v3_pci.c" ], @@ -23432,18 +27163,36 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_purp.o" => [ "crypto/x509/v3_purp.c" ], + "crypto/x509/libcrypto-lib-v3_rolespec.o" => [ + "crypto/x509/v3_rolespec.c" + ], "crypto/x509/libcrypto-lib-v3_san.o" => [ "crypto/x509/v3_san.c" ], + "crypto/x509/libcrypto-lib-v3_sda.o" => [ + "crypto/x509/v3_sda.c" + ], + "crypto/x509/libcrypto-lib-v3_single_use.o" => [ + "crypto/x509/v3_single_use.c" + ], "crypto/x509/libcrypto-lib-v3_skid.o" => [ "crypto/x509/v3_skid.c" ], + "crypto/x509/libcrypto-lib-v3_soa_id.o" => [ + "crypto/x509/v3_soa_id.c" + ], "crypto/x509/libcrypto-lib-v3_sxnet.o" => [ "crypto/x509/v3_sxnet.c" ], + "crypto/x509/libcrypto-lib-v3_timespec.o" => [ + "crypto/x509/v3_timespec.c" + ], "crypto/x509/libcrypto-lib-v3_tlsf.o" => [ "crypto/x509/v3_tlsf.c" ], + "crypto/x509/libcrypto-lib-v3_usernotice.o" => [ + "crypto/x509/v3_usernotice.c" + ], "crypto/x509/libcrypto-lib-v3_utf8.o" => [ "crypto/x509/v3_utf8.c" ], @@ -23453,6 +27202,9 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3err.o" => [ "crypto/x509/v3err.c" ], + "crypto/x509/libcrypto-lib-x509_acert.o" => [ + "crypto/x509/x509_acert.c" + ], "crypto/x509/libcrypto-lib-x509_att.o" => [ "crypto/x509/x509_att.c" ], @@ -23504,6 +27256,9 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x509_vpm.o" => [ "crypto/x509/x509_vpm.c" ], + "crypto/x509/libcrypto-lib-x509aset.o" => [ + "crypto/x509/x509aset.c" + ], "crypto/x509/libcrypto-lib-x509cset.o" => [ "crypto/x509/x509cset.c" ], @@ -23531,6 +27286,9 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x_exten.o" => [ "crypto/x509/x_exten.c" ], + "crypto/x509/libcrypto-lib-x_ietfatt.o" => [ + "crypto/x509/x_ietfatt.c" + ], "crypto/x509/libcrypto-lib-x_name.o" => [ "crypto/x509/x_name.c" ], @@ -23558,6 +27316,16 @@ our %unified_info = ( "engines/libcrypto-lib-e_padlock.o" => [ "engines/e_padlock.c" ], + "fuzz/acert-test" => [ + "fuzz/acert-test-bin-acert.o", + "fuzz/acert-test-bin-test-corpus.o" + ], + "fuzz/acert-test-bin-acert.o" => [ + "fuzz/acert.c" + ], + "fuzz/acert-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], "fuzz/asn1-test" => [ "fuzz/asn1-test-bin-asn1.o", "fuzz/asn1-test-bin-fuzz_rand.o", @@ -23670,6 +27438,190 @@ our %unified_info = ( "fuzz/ct-test-bin-test-corpus.o" => [ "fuzz/test-corpus.c" ], + "fuzz/decoder-test" => [ + "fuzz/decoder-test-bin-decoder.o", + "fuzz/decoder-test-bin-fuzz_rand.o", + "fuzz/decoder-test-bin-test-corpus.o" + ], + "fuzz/decoder-test-bin-decoder.o" => [ + "fuzz/decoder.c" + ], + "fuzz/decoder-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/decoder-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/dtlsclient-test" => [ + "fuzz/dtlsclient-test-bin-dtlsclient.o", + "fuzz/dtlsclient-test-bin-fuzz_rand.o", + "fuzz/dtlsclient-test-bin-test-corpus.o" + ], + "fuzz/dtlsclient-test-bin-dtlsclient.o" => [ + "fuzz/dtlsclient.c" + ], + "fuzz/dtlsclient-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/dtlsclient-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/dtlsserver-test" => [ + "fuzz/dtlsserver-test-bin-dtlsserver.o", + "fuzz/dtlsserver-test-bin-fuzz_rand.o", + "fuzz/dtlsserver-test-bin-test-corpus.o" + ], + "fuzz/dtlsserver-test-bin-dtlsserver.o" => [ + "fuzz/dtlsserver.c" + ], + "fuzz/dtlsserver-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/dtlsserver-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/hashtable-test" => [ + "fuzz/hashtable-test-bin-fuzz_rand.o", + "fuzz/hashtable-test-bin-hashtable.o", + "fuzz/hashtable-test-bin-test-corpus.o" + ], + "fuzz/hashtable-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/hashtable-test-bin-hashtable.o" => [ + "fuzz/hashtable.c" + ], + "fuzz/hashtable-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/ml-dsa-test" => [ + "fuzz/ml-dsa-test-bin-fuzz_rand.o", + "fuzz/ml-dsa-test-bin-ml-dsa.o", + "fuzz/ml-dsa-test-bin-test-corpus.o" + ], + "fuzz/ml-dsa-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/ml-dsa-test-bin-ml-dsa.o" => [ + "fuzz/ml-dsa.c" + ], + "fuzz/ml-dsa-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/ml-kem-test" => [ + "fuzz/ml-kem-test-bin-fuzz_rand.o", + "fuzz/ml-kem-test-bin-ml-kem.o", + "fuzz/ml-kem-test-bin-test-corpus.o" + ], + "fuzz/ml-kem-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/ml-kem-test-bin-ml-kem.o" => [ + "fuzz/ml-kem.c" + ], + "fuzz/ml-kem-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/pem-test" => [ + "fuzz/pem-test-bin-pem.o", + "fuzz/pem-test-bin-test-corpus.o" + ], + "fuzz/pem-test-bin-pem.o" => [ + "fuzz/pem.c" + ], + "fuzz/pem-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/provider-test" => [ + "fuzz/provider-test-bin-provider.o", + "fuzz/provider-test-bin-test-corpus.o" + ], + "fuzz/provider-test-bin-provider.o" => [ + "fuzz/provider.c" + ], + "fuzz/provider-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/punycode-test" => [ + "fuzz/punycode-test-bin-punycode.o", + "fuzz/punycode-test-bin-test-corpus.o" + ], + "fuzz/punycode-test-bin-punycode.o" => [ + "fuzz/punycode.c" + ], + "fuzz/punycode-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-client-test" => [ + "fuzz/quic-client-test-bin-fuzz_rand.o", + "fuzz/quic-client-test-bin-quic-client.o", + "fuzz/quic-client-test-bin-test-corpus.o" + ], + "fuzz/quic-client-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-client-test-bin-quic-client.o" => [ + "fuzz/quic-client.c" + ], + "fuzz/quic-client-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-lcidm-test" => [ + "fuzz/quic-lcidm-test-bin-fuzz_rand.o", + "fuzz/quic-lcidm-test-bin-quic-lcidm.o", + "fuzz/quic-lcidm-test-bin-test-corpus.o" + ], + "fuzz/quic-lcidm-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-lcidm-test-bin-quic-lcidm.o" => [ + "fuzz/quic-lcidm.c" + ], + "fuzz/quic-lcidm-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-rcidm-test" => [ + "fuzz/quic-rcidm-test-bin-fuzz_rand.o", + "fuzz/quic-rcidm-test-bin-quic-rcidm.o", + "fuzz/quic-rcidm-test-bin-test-corpus.o" + ], + "fuzz/quic-rcidm-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-rcidm-test-bin-quic-rcidm.o" => [ + "fuzz/quic-rcidm.c" + ], + "fuzz/quic-rcidm-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-server-test" => [ + "fuzz/quic-server-test-bin-fuzz_rand.o", + "fuzz/quic-server-test-bin-quic-server.o", + "fuzz/quic-server-test-bin-test-corpus.o" + ], + "fuzz/quic-server-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-server-test-bin-quic-server.o" => [ + "fuzz/quic-server.c" + ], + "fuzz/quic-server-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-srtm-test" => [ + "fuzz/quic-srtm-test-bin-fuzz_rand.o", + "fuzz/quic-srtm-test-bin-quic-srtm.o", + "fuzz/quic-srtm-test-bin-test-corpus.o" + ], + "fuzz/quic-srtm-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-srtm-test-bin-quic-srtm.o" => [ + "fuzz/quic-srtm.c" + ], + "fuzz/quic-srtm-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], "fuzz/server-test" => [ "fuzz/server-test-bin-fuzz_rand.o", "fuzz/server-test-bin-server.o", @@ -23684,6 +27636,40 @@ our %unified_info = ( "fuzz/server-test-bin-test-corpus.o" => [ "fuzz/test-corpus.c" ], + "fuzz/slh-dsa-test" => [ + "fuzz/slh-dsa-test-bin-fuzz_rand.o", + "fuzz/slh-dsa-test-bin-slh-dsa.o", + "fuzz/slh-dsa-test-bin-test-corpus.o" + ], + "fuzz/slh-dsa-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/slh-dsa-test-bin-slh-dsa.o" => [ + "fuzz/slh-dsa.c" + ], + "fuzz/slh-dsa-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/smime-test" => [ + "fuzz/smime-test-bin-smime.o", + "fuzz/smime-test-bin-test-corpus.o" + ], + "fuzz/smime-test-bin-smime.o" => [ + "fuzz/smime.c" + ], + "fuzz/smime-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/v3name-test" => [ + "fuzz/v3name-test-bin-test-corpus.o", + "fuzz/v3name-test-bin-v3name.o" + ], + "fuzz/v3name-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/v3name-test-bin-v3name.o" => [ + "fuzz/v3name.c" + ], "fuzz/x509-test" => [ "fuzz/x509-test-bin-fuzz_rand.o", "fuzz/x509-test-bin-test-corpus.o", @@ -23804,6 +27790,7 @@ our %unified_info = ( "crypto/bio/libcrypto-lib-bss_conn.o", "crypto/bio/libcrypto-lib-bss_core.o", "crypto/bio/libcrypto-lib-bss_dgram.o", + "crypto/bio/libcrypto-lib-bss_dgram_pair.o", "crypto/bio/libcrypto-lib-bss_fd.o", "crypto/bio/libcrypto-lib-bss_file.o", "crypto/bio/libcrypto-lib-bss_log.o", @@ -23865,6 +27852,7 @@ our %unified_info = ( "crypto/cmp/libcrypto-lib-cmp_client.o", "crypto/cmp/libcrypto-lib-cmp_ctx.o", "crypto/cmp/libcrypto-lib-cmp_err.o", + "crypto/cmp/libcrypto-lib-cmp_genm.o", "crypto/cmp/libcrypto-lib-cmp_hdr.o", "crypto/cmp/libcrypto-lib-cmp_http.o", "crypto/cmp/libcrypto-lib-cmp_msg.o", @@ -24042,7 +28030,9 @@ our %unified_info = ( "crypto/err/libcrypto-lib-err_all.o", "crypto/err/libcrypto-lib-err_all_legacy.o", "crypto/err/libcrypto-lib-err_blocks.o", + "crypto/err/libcrypto-lib-err_mark.o", "crypto/err/libcrypto-lib-err_prn.o", + "crypto/err/libcrypto-lib-err_save.o", "crypto/ess/libcrypto-lib-ess_asn1.o", "crypto/ess/libcrypto-lib-ess_err.o", "crypto/ess/libcrypto-lib-ess_lib.o", @@ -24125,7 +28115,9 @@ our %unified_info = ( "crypto/evp/libcrypto-lib-pmeth_check.o", "crypto/evp/libcrypto-lib-pmeth_gn.o", "crypto/evp/libcrypto-lib-pmeth_lib.o", + "crypto/evp/libcrypto-lib-s_lib.o", "crypto/evp/libcrypto-lib-signature.o", + "crypto/evp/libcrypto-lib-skeymgmt_meth.o", "crypto/ffc/libcrypto-lib-ffc_backend.o", "crypto/ffc/libcrypto-lib-ffc_dh.o", "crypto/ffc/libcrypto-lib-ffc_key_generate.o", @@ -24133,7 +28125,11 @@ our %unified_info = ( "crypto/ffc/libcrypto-lib-ffc_params.o", "crypto/ffc/libcrypto-lib-ffc_params_generate.o", "crypto/ffc/libcrypto-lib-ffc_params_validate.o", + "crypto/hashtable/libcrypto-lib-hashfunc.o", + "crypto/hashtable/libcrypto-lib-hashtable.o", "crypto/hmac/libcrypto-lib-hmac.o", + "crypto/hpke/libcrypto-lib-hpke.o", + "crypto/hpke/libcrypto-lib-hpke_util.o", "crypto/http/libcrypto-lib-http_client.o", "crypto/http/libcrypto-lib-http_err.o", "crypto/http/libcrypto-lib-http_lib.o", @@ -24147,6 +28143,7 @@ our %unified_info = ( "crypto/lhash/libcrypto-lib-lhash.o", "crypto/libcrypto-lib-asn1_dsa.o", "crypto/libcrypto-lib-bsearch.o", + "crypto/libcrypto-lib-comp_methods.o", "crypto/libcrypto-lib-context.o", "crypto/libcrypto-lib-core_algorithm.o", "crypto/libcrypto-lib-core_fetch.o", @@ -24156,10 +28153,13 @@ our %unified_info = ( "crypto/libcrypto-lib-cryptlib.o", "crypto/libcrypto-lib-ctype.o", "crypto/libcrypto-lib-cversion.o", + "crypto/libcrypto-lib-defaults.o", "crypto/libcrypto-lib-der_writer.o", + "crypto/libcrypto-lib-deterministic_nonce.o", "crypto/libcrypto-lib-ebcdic.o", "crypto/libcrypto-lib-ex_data.o", "crypto/libcrypto-lib-getenv.o", + "crypto/libcrypto-lib-indicator_core.o", "crypto/libcrypto-lib-info.o", "crypto/libcrypto-lib-init.o", "crypto/libcrypto-lib-initthread.o", @@ -24176,6 +28176,7 @@ our %unified_info = ( "crypto/libcrypto-lib-params.o", "crypto/libcrypto-lib-params_dup.o", "crypto/libcrypto-lib-params_from_text.o", + "crypto/libcrypto-lib-params_idx.o", "crypto/libcrypto-lib-passphrase.o", "crypto/libcrypto-lib-provider.o", "crypto/libcrypto-lib-provider_child.o", @@ -24183,12 +28184,16 @@ our %unified_info = ( "crypto/libcrypto-lib-provider_core.o", "crypto/libcrypto-lib-provider_predefined.o", "crypto/libcrypto-lib-punycode.o", + "crypto/libcrypto-lib-quic_vlint.o", "crypto/libcrypto-lib-self_test_core.o", + "crypto/libcrypto-lib-sleep.o", "crypto/libcrypto-lib-sparse_array.o", + "crypto/libcrypto-lib-ssl_err.o", "crypto/libcrypto-lib-threads_lib.o", "crypto/libcrypto-lib-threads_none.o", "crypto/libcrypto-lib-threads_pthread.o", "crypto/libcrypto-lib-threads_win.o", + "crypto/libcrypto-lib-time.o", "crypto/libcrypto-lib-trace.o", "crypto/libcrypto-lib-uid.o", "crypto/libcrypto-lib-x86cpuid.o", @@ -24200,6 +28205,15 @@ our %unified_info = ( "crypto/md5/libcrypto-lib-md5_sha1.o", "crypto/mdc2/libcrypto-lib-mdc2_one.o", "crypto/mdc2/libcrypto-lib-mdc2dgst.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_encoders.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key_compress.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_matrix.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_ntt.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_params.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sample.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sign.o", + "crypto/ml_kem/libcrypto-lib-ml_kem.o", "crypto/modes/libcrypto-lib-cbc128.o", "crypto/modes/libcrypto-lib-ccm128.o", "crypto/modes/libcrypto-lib-cfb128.o", @@ -24212,6 +28226,7 @@ our %unified_info = ( "crypto/modes/libcrypto-lib-siv128.o", "crypto/modes/libcrypto-lib-wrap128.o", "crypto/modes/libcrypto-lib-xts128.o", + "crypto/modes/libcrypto-lib-xts128gb.o", "crypto/objects/libcrypto-lib-o_names.o", "crypto/objects/libcrypto-lib-obj_dat.o", "crypto/objects/libcrypto-lib-obj_err.o", @@ -24276,6 +28291,7 @@ our %unified_info = ( "crypto/rand/libcrypto-lib-rand_lib.o", "crypto/rand/libcrypto-lib-rand_meth.o", "crypto/rand/libcrypto-lib-rand_pool.o", + "crypto/rand/libcrypto-lib-rand_uniform.o", "crypto/rand/libcrypto-lib-randfile.o", "crypto/rc2/libcrypto-lib-rc2_cbc.o", "crypto/rc2/libcrypto-lib-rc2_ecb.o", @@ -24327,6 +28343,16 @@ our %unified_info = ( "crypto/sha/libcrypto-lib-sha512-586.o", "crypto/sha/libcrypto-lib-sha512.o", "crypto/siphash/libcrypto-lib-siphash.o", + "crypto/slh_dsa/libcrypto-lib-slh_adrs.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa_hash_ctx.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa_key.o", + "crypto/slh_dsa/libcrypto-lib-slh_fors.o", + "crypto/slh_dsa/libcrypto-lib-slh_hash.o", + "crypto/slh_dsa/libcrypto-lib-slh_hypertree.o", + "crypto/slh_dsa/libcrypto-lib-slh_params.o", + "crypto/slh_dsa/libcrypto-lib-slh_wots.o", + "crypto/slh_dsa/libcrypto-lib-slh_xmss.o", "crypto/sm2/libcrypto-lib-sm2_crypt.o", "crypto/sm2/libcrypto-lib-sm2_err.o", "crypto/sm2/libcrypto-lib-sm2_key.o", @@ -24344,6 +28370,12 @@ our %unified_info = ( "crypto/store/libcrypto-lib-store_register.o", "crypto/store/libcrypto-lib-store_result.o", "crypto/store/libcrypto-lib-store_strings.o", + "crypto/thread/arch/libcrypto-lib-thread_none.o", + "crypto/thread/arch/libcrypto-lib-thread_posix.o", + "crypto/thread/arch/libcrypto-lib-thread_win.o", + "crypto/thread/libcrypto-lib-api.o", + "crypto/thread/libcrypto-lib-arch.o", + "crypto/thread/libcrypto-lib-internal.o", "crypto/ts/libcrypto-lib-ts_asn1.o", "crypto/ts/libcrypto-lib-ts_conf.o", "crypto/ts/libcrypto-lib-ts_err.o", @@ -24373,14 +28405,22 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-pcy_map.o", "crypto/x509/libcrypto-lib-pcy_node.o", "crypto/x509/libcrypto-lib-pcy_tree.o", + "crypto/x509/libcrypto-lib-t_acert.o", "crypto/x509/libcrypto-lib-t_crl.o", "crypto/x509/libcrypto-lib-t_req.o", "crypto/x509/libcrypto-lib-t_x509.o", + "crypto/x509/libcrypto-lib-v3_aaa.o", + "crypto/x509/libcrypto-lib-v3_ac_tgt.o", "crypto/x509/libcrypto-lib-v3_addr.o", "crypto/x509/libcrypto-lib-v3_admis.o", "crypto/x509/libcrypto-lib-v3_akeya.o", "crypto/x509/libcrypto-lib-v3_akid.o", "crypto/x509/libcrypto-lib-v3_asid.o", + "crypto/x509/libcrypto-lib-v3_attrdesc.o", + "crypto/x509/libcrypto-lib-v3_attrmap.o", + "crypto/x509/libcrypto-lib-v3_audit_id.o", + "crypto/x509/libcrypto-lib-v3_authattid.o", + "crypto/x509/libcrypto-lib-v3_battcons.o", "crypto/x509/libcrypto-lib-v3_bcons.o", "crypto/x509/libcrypto-lib-v3_bitst.o", "crypto/x509/libcrypto-lib-v3_conf.o", @@ -24389,12 +28429,17 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_enum.o", "crypto/x509/libcrypto-lib-v3_extku.o", "crypto/x509/libcrypto-lib-v3_genn.o", + "crypto/x509/libcrypto-lib-v3_group_ac.o", "crypto/x509/libcrypto-lib-v3_ia5.o", + "crypto/x509/libcrypto-lib-v3_ind_iss.o", "crypto/x509/libcrypto-lib-v3_info.o", "crypto/x509/libcrypto-lib-v3_int.o", + "crypto/x509/libcrypto-lib-v3_iobo.o", "crypto/x509/libcrypto-lib-v3_ist.o", "crypto/x509/libcrypto-lib-v3_lib.o", "crypto/x509/libcrypto-lib-v3_ncons.o", + "crypto/x509/libcrypto-lib-v3_no_ass.o", + "crypto/x509/libcrypto-lib-v3_no_rev_avail.o", "crypto/x509/libcrypto-lib-v3_pci.o", "crypto/x509/libcrypto-lib-v3_pcia.o", "crypto/x509/libcrypto-lib-v3_pcons.o", @@ -24402,13 +28447,20 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_pmaps.o", "crypto/x509/libcrypto-lib-v3_prn.o", "crypto/x509/libcrypto-lib-v3_purp.o", + "crypto/x509/libcrypto-lib-v3_rolespec.o", "crypto/x509/libcrypto-lib-v3_san.o", + "crypto/x509/libcrypto-lib-v3_sda.o", + "crypto/x509/libcrypto-lib-v3_single_use.o", "crypto/x509/libcrypto-lib-v3_skid.o", + "crypto/x509/libcrypto-lib-v3_soa_id.o", "crypto/x509/libcrypto-lib-v3_sxnet.o", + "crypto/x509/libcrypto-lib-v3_timespec.o", "crypto/x509/libcrypto-lib-v3_tlsf.o", + "crypto/x509/libcrypto-lib-v3_usernotice.o", "crypto/x509/libcrypto-lib-v3_utf8.o", "crypto/x509/libcrypto-lib-v3_utl.o", "crypto/x509/libcrypto-lib-v3err.o", + "crypto/x509/libcrypto-lib-x509_acert.o", "crypto/x509/libcrypto-lib-x509_att.o", "crypto/x509/libcrypto-lib-x509_cmp.o", "crypto/x509/libcrypto-lib-x509_d2.o", @@ -24426,6 +28478,7 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x509_v3.o", "crypto/x509/libcrypto-lib-x509_vfy.o", "crypto/x509/libcrypto-lib-x509_vpm.o", + "crypto/x509/libcrypto-lib-x509aset.o", "crypto/x509/libcrypto-lib-x509cset.o", "crypto/x509/libcrypto-lib-x509name.o", "crypto/x509/libcrypto-lib-x509rset.o", @@ -24435,6 +28488,7 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x_attrib.o", "crypto/x509/libcrypto-lib-x_crl.o", "crypto/x509/libcrypto-lib-x_exten.o", + "crypto/x509/libcrypto-lib-x_ietfatt.o", "crypto/x509/libcrypto-lib-x_name.o", "crypto/x509/libcrypto-lib-x_pubkey.o", "crypto/x509/libcrypto-lib-x_req.o", @@ -24457,14 +28511,15 @@ our %unified_info = ( "ssl/libssl-lib-d1_srtp.o", "ssl/libssl-lib-methods.o", "ssl/libssl-lib-pqueue.o", + "ssl/libssl-lib-priority_queue.o", "ssl/libssl-lib-s3_enc.o", "ssl/libssl-lib-s3_lib.o", "ssl/libssl-lib-s3_msg.o", "ssl/libssl-lib-ssl_asn1.o", "ssl/libssl-lib-ssl_cert.o", + "ssl/libssl-lib-ssl_cert_comp.o", "ssl/libssl-lib-ssl_ciph.o", "ssl/libssl-lib-ssl_conf.o", - "ssl/libssl-lib-ssl_err.o", "ssl/libssl-lib-ssl_err_legacy.o", "ssl/libssl-lib-ssl_init.o", "ssl/libssl-lib-ssl_lib.o", @@ -24481,12 +28536,60 @@ our %unified_info = ( "ssl/libssl-lib-tls13_enc.o", "ssl/libssl-lib-tls_depr.o", "ssl/libssl-lib-tls_srp.o", - "ssl/record/libssl-lib-dtls1_bitmap.o", + "ssl/quic/libssl-lib-cc_newreno.o", + "ssl/quic/libssl-lib-json_enc.o", + "ssl/quic/libssl-lib-qlog.o", + "ssl/quic/libssl-lib-qlog_event_helpers.o", + "ssl/quic/libssl-lib-quic_ackm.o", + "ssl/quic/libssl-lib-quic_cfq.o", + "ssl/quic/libssl-lib-quic_channel.o", + "ssl/quic/libssl-lib-quic_demux.o", + "ssl/quic/libssl-lib-quic_engine.o", + "ssl/quic/libssl-lib-quic_fc.o", + "ssl/quic/libssl-lib-quic_fifd.o", + "ssl/quic/libssl-lib-quic_impl.o", + "ssl/quic/libssl-lib-quic_lcidm.o", + "ssl/quic/libssl-lib-quic_method.o", + "ssl/quic/libssl-lib-quic_obj.o", + "ssl/quic/libssl-lib-quic_port.o", + "ssl/quic/libssl-lib-quic_rcidm.o", + "ssl/quic/libssl-lib-quic_reactor.o", + "ssl/quic/libssl-lib-quic_reactor_wait_ctx.o", + "ssl/quic/libssl-lib-quic_record_rx.o", + "ssl/quic/libssl-lib-quic_record_shared.o", + "ssl/quic/libssl-lib-quic_record_tx.o", + "ssl/quic/libssl-lib-quic_record_util.o", + "ssl/quic/libssl-lib-quic_rstream.o", + "ssl/quic/libssl-lib-quic_rx_depack.o", + "ssl/quic/libssl-lib-quic_sf_list.o", + "ssl/quic/libssl-lib-quic_srt_gen.o", + "ssl/quic/libssl-lib-quic_srtm.o", + "ssl/quic/libssl-lib-quic_sstream.o", + "ssl/quic/libssl-lib-quic_statm.o", + "ssl/quic/libssl-lib-quic_stream_map.o", + "ssl/quic/libssl-lib-quic_thread_assist.o", + "ssl/quic/libssl-lib-quic_tls.o", + "ssl/quic/libssl-lib-quic_tls_api.o", + "ssl/quic/libssl-lib-quic_trace.o", + "ssl/quic/libssl-lib-quic_tserver.o", + "ssl/quic/libssl-lib-quic_txp.o", + "ssl/quic/libssl-lib-quic_txpim.o", + "ssl/quic/libssl-lib-quic_types.o", + "ssl/quic/libssl-lib-quic_wire.o", + "ssl/quic/libssl-lib-quic_wire_pkt.o", + "ssl/quic/libssl-lib-uint_set.o", "ssl/record/libssl-lib-rec_layer_d1.o", "ssl/record/libssl-lib-rec_layer_s3.o", - "ssl/record/libssl-lib-ssl3_buffer.o", - "ssl/record/libssl-lib-ssl3_record.o", - "ssl/record/libssl-lib-ssl3_record_tls13.o", + "ssl/record/methods/libssl-lib-dtls_meth.o", + "ssl/record/methods/libssl-lib-ssl3_meth.o", + "ssl/record/methods/libssl-lib-tls13_meth.o", + "ssl/record/methods/libssl-lib-tls1_meth.o", + "ssl/record/methods/libssl-lib-tls_common.o", + "ssl/record/methods/libssl-lib-tls_multib.o", + "ssl/record/methods/libssl-lib-tlsany_meth.o", + "ssl/rio/libssl-lib-poll_builder.o", + "ssl/rio/libssl-lib-poll_immediate.o", + "ssl/rio/libssl-lib-rio_notifier.o", "ssl/statem/libssl-lib-extensions.o", "ssl/statem/libssl-lib-extensions_clnt.o", "ssl/statem/libssl-lib-extensions_cust.o", @@ -24524,12 +28627,24 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ecx_key.o" => [ "providers/common/der/der_ecx_key.c" ], + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o" => [ + "providers/common/der/der_ml_dsa_gen.c" + ], + "providers/common/der/libcommon-lib-der_ml_dsa_key.o" => [ + "providers/common/der/der_ml_dsa_key.c" + ], "providers/common/der/libcommon-lib-der_rsa_gen.o" => [ "providers/common/der/der_rsa_gen.c" ], "providers/common/der/libcommon-lib-der_rsa_key.o" => [ "providers/common/der/der_rsa_key.c" ], + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o" => [ + "providers/common/der/der_slh_dsa_gen.c" + ], + "providers/common/der/libcommon-lib-der_slh_dsa_key.o" => [ + "providers/common/der/der_slh_dsa_key.c" + ], "providers/common/der/libcommon-lib-der_wrap_gen.o" => [ "providers/common/der/der_wrap_gen.c" ], @@ -24596,6 +28711,9 @@ our %unified_info = ( "providers/common/libfips-lib-securitycheck_fips.o" => [ "providers/common/securitycheck_fips.c" ], + "providers/endecode_test-bin-legacyprov.o" => [ + "providers/legacyprov.c" + ], "providers/evp_extra_test-bin-legacyprov.o" => [ "providers/legacyprov.c" ], @@ -24606,6 +28724,9 @@ our %unified_info = ( "providers/fips/fips-dso-fips_entry.o" => [ "providers/fips/fips_entry.c" ], + "providers/fips/libfips-lib-fipsindicator.o" => [ + "providers/fips/fipsindicator.c" + ], "providers/fips/libfips-lib-fipsprov.o" => [ "providers/fips/fipsprov.c" ], @@ -24669,6 +28790,15 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_hw.o" => [ "providers/implementations/ciphers/cipher_aes_gcm_hw.c" ], + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv.o" => [ + "providers/implementations/ciphers/cipher_aes_gcm_siv.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_hw.o" => [ + "providers/implementations/ciphers/cipher_aes_gcm_siv_hw.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_polyval.o" => [ + "providers/implementations/ciphers/cipher_aes_gcm_siv_polyval.c" + ], "providers/implementations/ciphers/libdefault-lib-cipher_aes_hw.o" => [ "providers/implementations/ciphers/cipher_aes_hw.c" ], @@ -24741,9 +28871,27 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_sm4.o" => [ "providers/implementations/ciphers/cipher_sm4.c" ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm.o" => [ + "providers/implementations/ciphers/cipher_sm4_ccm.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm_hw.o" => [ + "providers/implementations/ciphers/cipher_sm4_ccm_hw.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm.o" => [ + "providers/implementations/ciphers/cipher_sm4_gcm.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm_hw.o" => [ + "providers/implementations/ciphers/cipher_sm4_gcm_hw.c" + ], "providers/implementations/ciphers/libdefault-lib-cipher_sm4_hw.o" => [ "providers/implementations/ciphers/cipher_sm4_hw.c" ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts.o" => [ + "providers/implementations/ciphers/cipher_sm4_xts.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts_hw.o" => [ + "providers/implementations/ciphers/cipher_sm4_xts_hw.c" + ], "providers/implementations/ciphers/libdefault-lib-cipher_tdes.o" => [ "providers/implementations/ciphers/cipher_tdes.c" ], @@ -24963,6 +29111,15 @@ our %unified_info = ( "providers/implementations/encode_decode/libdefault-lib-endecoder_common.o" => [ "providers/implementations/encode_decode/endecoder_common.c" ], + "providers/implementations/encode_decode/libdefault-lib-ml_common_codecs.o" => [ + "providers/implementations/encode_decode/ml_common_codecs.c" + ], + "providers/implementations/encode_decode/libdefault-lib-ml_dsa_codecs.o" => [ + "providers/implementations/encode_decode/ml_dsa_codecs.c" + ], + "providers/implementations/encode_decode/libdefault-lib-ml_kem_codecs.o" => [ + "providers/implementations/encode_decode/ml_kem_codecs.c" + ], "providers/implementations/exchange/libdefault-lib-dh_exch.o" => [ "providers/implementations/exchange/dh_exch.c" ], @@ -24987,9 +29144,15 @@ our %unified_info = ( "providers/implementations/exchange/libfips-lib-kdf_exch.o" => [ "providers/implementations/exchange/kdf_exch.c" ], + "providers/implementations/kdfs/libdefault-lib-argon2.o" => [ + "providers/implementations/kdfs/argon2.c" + ], "providers/implementations/kdfs/libdefault-lib-hkdf.o" => [ "providers/implementations/kdfs/hkdf.c" ], + "providers/implementations/kdfs/libdefault-lib-hmacdrbg_kdf.o" => [ + "providers/implementations/kdfs/hmacdrbg_kdf.c" + ], "providers/implementations/kdfs/libdefault-lib-kbkdf.o" => [ "providers/implementations/kdfs/kbkdf.c" ], @@ -25047,12 +29210,39 @@ our %unified_info = ( "providers/implementations/kdfs/liblegacy-lib-pbkdf1.o" => [ "providers/implementations/kdfs/pbkdf1.c" ], + "providers/implementations/kdfs/liblegacy-lib-pvkkdf.o" => [ + "providers/implementations/kdfs/pvkkdf.c" + ], + "providers/implementations/kem/libdefault-lib-ec_kem.o" => [ + "providers/implementations/kem/ec_kem.c" + ], + "providers/implementations/kem/libdefault-lib-ecx_kem.o" => [ + "providers/implementations/kem/ecx_kem.c" + ], + "providers/implementations/kem/libdefault-lib-kem_util.o" => [ + "providers/implementations/kem/kem_util.c" + ], + "providers/implementations/kem/libdefault-lib-ml_kem_kem.o" => [ + "providers/implementations/kem/ml_kem_kem.c" + ], + "providers/implementations/kem/libdefault-lib-mlx_kem.o" => [ + "providers/implementations/kem/mlx_kem.c" + ], "providers/implementations/kem/libdefault-lib-rsa_kem.o" => [ "providers/implementations/kem/rsa_kem.c" ], + "providers/implementations/kem/libfips-lib-ml_kem_kem.o" => [ + "providers/implementations/kem/ml_kem_kem.c" + ], + "providers/implementations/kem/libfips-lib-mlx_kem.o" => [ + "providers/implementations/kem/mlx_kem.c" + ], "providers/implementations/kem/libfips-lib-rsa_kem.o" => [ "providers/implementations/kem/rsa_kem.c" ], + "providers/implementations/kem/libtemplate-lib-template_kem.o" => [ + "providers/implementations/kem/template_kem.c" + ], "providers/implementations/keymgmt/libdefault-lib-dh_kmgmt.o" => [ "providers/implementations/keymgmt/dh_kmgmt.c" ], @@ -25071,9 +29261,21 @@ our %unified_info = ( "providers/implementations/keymgmt/libdefault-lib-mac_legacy_kmgmt.o" => [ "providers/implementations/keymgmt/mac_legacy_kmgmt.c" ], + "providers/implementations/keymgmt/libdefault-lib-ml_dsa_kmgmt.o" => [ + "providers/implementations/keymgmt/ml_dsa_kmgmt.c" + ], + "providers/implementations/keymgmt/libdefault-lib-ml_kem_kmgmt.o" => [ + "providers/implementations/keymgmt/ml_kem_kmgmt.c" + ], + "providers/implementations/keymgmt/libdefault-lib-mlx_kmgmt.o" => [ + "providers/implementations/keymgmt/mlx_kmgmt.c" + ], "providers/implementations/keymgmt/libdefault-lib-rsa_kmgmt.o" => [ "providers/implementations/keymgmt/rsa_kmgmt.c" ], + "providers/implementations/keymgmt/libdefault-lib-slh_dsa_kmgmt.o" => [ + "providers/implementations/keymgmt/slh_dsa_kmgmt.c" + ], "providers/implementations/keymgmt/libfips-lib-dh_kmgmt.o" => [ "providers/implementations/keymgmt/dh_kmgmt.c" ], @@ -25092,9 +29294,24 @@ our %unified_info = ( "providers/implementations/keymgmt/libfips-lib-mac_legacy_kmgmt.o" => [ "providers/implementations/keymgmt/mac_legacy_kmgmt.c" ], + "providers/implementations/keymgmt/libfips-lib-ml_dsa_kmgmt.o" => [ + "providers/implementations/keymgmt/ml_dsa_kmgmt.c" + ], + "providers/implementations/keymgmt/libfips-lib-ml_kem_kmgmt.o" => [ + "providers/implementations/keymgmt/ml_kem_kmgmt.c" + ], + "providers/implementations/keymgmt/libfips-lib-mlx_kmgmt.o" => [ + "providers/implementations/keymgmt/mlx_kmgmt.c" + ], "providers/implementations/keymgmt/libfips-lib-rsa_kmgmt.o" => [ "providers/implementations/keymgmt/rsa_kmgmt.c" ], + "providers/implementations/keymgmt/libfips-lib-slh_dsa_kmgmt.o" => [ + "providers/implementations/keymgmt/slh_dsa_kmgmt.c" + ], + "providers/implementations/keymgmt/libtemplate-lib-template_kmgmt.o" => [ + "providers/implementations/keymgmt/template_kmgmt.c" + ], "providers/implementations/macs/libdefault-lib-blake2b_mac.o" => [ "providers/implementations/macs/blake2b_mac.c" ], @@ -25131,9 +29348,6 @@ our %unified_info = ( "providers/implementations/macs/libfips-lib-kmac_prov.o" => [ "providers/implementations/macs/kmac_prov.c" ], - "providers/implementations/rands/libdefault-lib-crngt.o" => [ - "providers/implementations/rands/crngt.c" - ], "providers/implementations/rands/libdefault-lib-drbg.o" => [ "providers/implementations/rands/drbg.c" ], @@ -25149,12 +29363,12 @@ our %unified_info = ( "providers/implementations/rands/libdefault-lib-seed_src.o" => [ "providers/implementations/rands/seed_src.c" ], + "providers/implementations/rands/libdefault-lib-seed_src_jitter.o" => [ + "providers/implementations/rands/seed_src_jitter.c" + ], "providers/implementations/rands/libdefault-lib-test_rng.o" => [ "providers/implementations/rands/test_rng.c" ], - "providers/implementations/rands/libfips-lib-crngt.o" => [ - "providers/implementations/rands/crngt.c" - ], "providers/implementations/rands/libfips-lib-drbg.o" => [ "providers/implementations/rands/drbg.c" ], @@ -25167,6 +29381,9 @@ our %unified_info = ( "providers/implementations/rands/libfips-lib-drbg_hmac.o" => [ "providers/implementations/rands/drbg_hmac.c" ], + "providers/implementations/rands/libfips-lib-fips_crng_test.o" => [ + "providers/implementations/rands/fips_crng_test.c" + ], "providers/implementations/rands/libfips-lib-test_rng.o" => [ "providers/implementations/rands/test_rng.c" ], @@ -25194,9 +29411,15 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-mac_legacy_sig.o" => [ "providers/implementations/signature/mac_legacy_sig.c" ], + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o" => [ + "providers/implementations/signature/ml_dsa_sig.c" + ], "providers/implementations/signature/libdefault-lib-rsa_sig.o" => [ "providers/implementations/signature/rsa_sig.c" ], + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o" => [ + "providers/implementations/signature/slh_dsa_sig.c" + ], "providers/implementations/signature/libdefault-lib-sm2_sig.o" => [ "providers/implementations/signature/sm2_sig.c" ], @@ -25212,9 +29435,27 @@ our %unified_info = ( "providers/implementations/signature/libfips-lib-mac_legacy_sig.o" => [ "providers/implementations/signature/mac_legacy_sig.c" ], + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o" => [ + "providers/implementations/signature/ml_dsa_sig.c" + ], "providers/implementations/signature/libfips-lib-rsa_sig.o" => [ "providers/implementations/signature/rsa_sig.c" ], + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o" => [ + "providers/implementations/signature/slh_dsa_sig.c" + ], + "providers/implementations/skeymgmt/libdefault-lib-aes_skmgmt.o" => [ + "providers/implementations/skeymgmt/aes_skmgmt.c" + ], + "providers/implementations/skeymgmt/libdefault-lib-generic.o" => [ + "providers/implementations/skeymgmt/generic.c" + ], + "providers/implementations/skeymgmt/libfips-lib-aes_skmgmt.o" => [ + "providers/implementations/skeymgmt/aes_skmgmt.c" + ], + "providers/implementations/skeymgmt/libfips-lib-generic.o" => [ + "providers/implementations/skeymgmt/generic.c" + ], "providers/implementations/storemgmt/libdefault-lib-file_store.o" => [ "providers/implementations/storemgmt/file_store.c" ], @@ -25238,8 +29479,12 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ec_sig.o", "providers/common/der/libcommon-lib-der_ecx_gen.o", "providers/common/der/libcommon-lib-der_ecx_key.o", + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o", + "providers/common/der/libcommon-lib-der_ml_dsa_key.o", "providers/common/der/libcommon-lib-der_rsa_gen.o", "providers/common/der/libcommon-lib-der_rsa_key.o", + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o", + "providers/common/der/libcommon-lib-der_slh_dsa_key.o", "providers/common/der/libcommon-lib-der_wrap_gen.o", "providers/common/libcommon-lib-provider_ctx.o", "providers/common/libcommon-lib-provider_err.o", @@ -25251,7 +29496,7 @@ our %unified_info = ( "providers/implementations/ciphers/libcommon-lib-ciphercommon_gcm_hw.o", "providers/implementations/ciphers/libcommon-lib-ciphercommon_hw.o", "providers/implementations/digests/libcommon-lib-digestcommon.o", - "ssl/record/libcommon-lib-tls_pad.o" + "ssl/record/methods/libcommon-lib-tls_pad.o" ], "providers/libcrypto-lib-baseprov.o" => [ "providers/baseprov.c" @@ -25287,6 +29532,9 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_aes_ccm_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_polyval.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_ocb.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_ocb_hw.o", @@ -25311,7 +29559,13 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_cts.o", "providers/implementations/ciphers/libdefault-lib-cipher_null.o", "providers/implementations/ciphers/libdefault-lib-cipher_sm4.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_sm4_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes_common.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes_default.o", @@ -25340,11 +29594,16 @@ our %unified_info = ( "providers/implementations/encode_decode/libdefault-lib-encode_key2ms.o", "providers/implementations/encode_decode/libdefault-lib-encode_key2text.o", "providers/implementations/encode_decode/libdefault-lib-endecoder_common.o", + "providers/implementations/encode_decode/libdefault-lib-ml_common_codecs.o", + "providers/implementations/encode_decode/libdefault-lib-ml_dsa_codecs.o", + "providers/implementations/encode_decode/libdefault-lib-ml_kem_codecs.o", "providers/implementations/exchange/libdefault-lib-dh_exch.o", "providers/implementations/exchange/libdefault-lib-ecdh_exch.o", "providers/implementations/exchange/libdefault-lib-ecx_exch.o", "providers/implementations/exchange/libdefault-lib-kdf_exch.o", + "providers/implementations/kdfs/libdefault-lib-argon2.o", "providers/implementations/kdfs/libdefault-lib-hkdf.o", + "providers/implementations/kdfs/libdefault-lib-hmacdrbg_kdf.o", "providers/implementations/kdfs/libdefault-lib-kbkdf.o", "providers/implementations/kdfs/libdefault-lib-krb5kdf.o", "providers/implementations/kdfs/libdefault-lib-pbkdf2.o", @@ -25355,6 +29614,11 @@ our %unified_info = ( "providers/implementations/kdfs/libdefault-lib-sskdf.o", "providers/implementations/kdfs/libdefault-lib-tls1_prf.o", "providers/implementations/kdfs/libdefault-lib-x942kdf.o", + "providers/implementations/kem/libdefault-lib-ec_kem.o", + "providers/implementations/kem/libdefault-lib-ecx_kem.o", + "providers/implementations/kem/libdefault-lib-kem_util.o", + "providers/implementations/kem/libdefault-lib-ml_kem_kem.o", + "providers/implementations/kem/libdefault-lib-mlx_kem.o", "providers/implementations/kem/libdefault-lib-rsa_kem.o", "providers/implementations/keymgmt/libdefault-lib-dh_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-dsa_kmgmt.o", @@ -25362,7 +29626,11 @@ our %unified_info = ( "providers/implementations/keymgmt/libdefault-lib-ecx_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-kdf_legacy_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-mac_legacy_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-ml_dsa_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-ml_kem_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-mlx_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-rsa_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-slh_dsa_kmgmt.o", "providers/implementations/macs/libdefault-lib-blake2b_mac.o", "providers/implementations/macs/libdefault-lib-blake2s_mac.o", "providers/implementations/macs/libdefault-lib-cmac_prov.o", @@ -25371,12 +29639,12 @@ our %unified_info = ( "providers/implementations/macs/libdefault-lib-kmac_prov.o", "providers/implementations/macs/libdefault-lib-poly1305_prov.o", "providers/implementations/macs/libdefault-lib-siphash_prov.o", - "providers/implementations/rands/libdefault-lib-crngt.o", "providers/implementations/rands/libdefault-lib-drbg.o", "providers/implementations/rands/libdefault-lib-drbg_ctr.o", "providers/implementations/rands/libdefault-lib-drbg_hash.o", "providers/implementations/rands/libdefault-lib-drbg_hmac.o", "providers/implementations/rands/libdefault-lib-seed_src.o", + "providers/implementations/rands/libdefault-lib-seed_src_jitter.o", "providers/implementations/rands/libdefault-lib-test_rng.o", "providers/implementations/rands/seeding/libdefault-lib-rand_cpu_x86.o", "providers/implementations/rands/seeding/libdefault-lib-rand_tsc.o", @@ -25386,11 +29654,15 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-ecdsa_sig.o", "providers/implementations/signature/libdefault-lib-eddsa_sig.o", "providers/implementations/signature/libdefault-lib-mac_legacy_sig.o", + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o", "providers/implementations/signature/libdefault-lib-rsa_sig.o", + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o", "providers/implementations/signature/libdefault-lib-sm2_sig.o", + "providers/implementations/skeymgmt/libdefault-lib-aes_skmgmt.o", + "providers/implementations/skeymgmt/libdefault-lib-generic.o", "providers/implementations/storemgmt/libdefault-lib-file_store.o", "providers/implementations/storemgmt/libdefault-lib-file_store_any2obj.o", - "ssl/libdefault-lib-s3_cbc.o" + "ssl/record/methods/libdefault-lib-ssl3_cbc.o" ], "providers/libfips.a" => [ "crypto/aes/libfips-lib-aes-586.o", @@ -25498,14 +29770,15 @@ our %unified_info = ( "crypto/evp/libfips-lib-kem.o", "crypto/evp/libfips-lib-keymgmt_lib.o", "crypto/evp/libfips-lib-keymgmt_meth.o", - "crypto/evp/libfips-lib-m_sigver.o", "crypto/evp/libfips-lib-mac_lib.o", "crypto/evp/libfips-lib-mac_meth.o", "crypto/evp/libfips-lib-p_lib.o", "crypto/evp/libfips-lib-pmeth_check.o", "crypto/evp/libfips-lib-pmeth_gn.o", "crypto/evp/libfips-lib-pmeth_lib.o", + "crypto/evp/libfips-lib-s_lib.o", "crypto/evp/libfips-lib-signature.o", + "crypto/evp/libfips-lib-skeymgmt_meth.o", "crypto/ffc/libfips-lib-ffc_backend.o", "crypto/ffc/libfips-lib-ffc_dh.o", "crypto/ffc/libfips-lib-ffc_key_generate.o", @@ -25513,6 +29786,8 @@ our %unified_info = ( "crypto/ffc/libfips-lib-ffc_params.o", "crypto/ffc/libfips-lib-ffc_params_generate.o", "crypto/ffc/libfips-lib-ffc_params_validate.o", + "crypto/hashtable/libfips-lib-hashfunc.o", + "crypto/hashtable/libfips-lib-hashtable.o", "crypto/hmac/libfips-lib-hmac.o", "crypto/lhash/libfips-lib-lhash.o", "crypto/libfips-lib-asn1_dsa.o", @@ -25534,6 +29809,7 @@ our %unified_info = ( "crypto/libfips-lib-params.o", "crypto/libfips-lib-params_dup.o", "crypto/libfips-lib-params_from_text.o", + "crypto/libfips-lib-params_idx.o", "crypto/libfips-lib-provider_core.o", "crypto/libfips-lib-provider_predefined.o", "crypto/libfips-lib-self_test_core.o", @@ -25542,7 +29818,17 @@ our %unified_info = ( "crypto/libfips-lib-threads_none.o", "crypto/libfips-lib-threads_pthread.o", "crypto/libfips-lib-threads_win.o", + "crypto/libfips-lib-time.o", "crypto/libfips-lib-x86cpuid.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_encoders.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_key.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_key_compress.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_matrix.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_ntt.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_params.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_sample.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_sign.o", + "crypto/ml_kem/libfips-lib-ml_kem.o", "crypto/modes/libfips-lib-cbc128.o", "crypto/modes/libfips-lib-ccm128.o", "crypto/modes/libfips-lib-cfb128.o", @@ -25552,6 +29838,7 @@ our %unified_info = ( "crypto/modes/libfips-lib-ofb128.o", "crypto/modes/libfips-lib-wrap128.o", "crypto/modes/libfips-lib-xts128.o", + "crypto/modes/libfips-lib-xts128gb.o", "crypto/property/libfips-lib-defn_cache.o", "crypto/property/libfips-lib-property.o", "crypto/property/libfips-lib-property_parse.o", @@ -25583,7 +29870,23 @@ our %unified_info = ( "crypto/sha/libfips-lib-sha3.o", "crypto/sha/libfips-lib-sha512-586.o", "crypto/sha/libfips-lib-sha512.o", + "crypto/slh_dsa/libfips-lib-slh_adrs.o", + "crypto/slh_dsa/libfips-lib-slh_dsa.o", + "crypto/slh_dsa/libfips-lib-slh_dsa_hash_ctx.o", + "crypto/slh_dsa/libfips-lib-slh_dsa_key.o", + "crypto/slh_dsa/libfips-lib-slh_fors.o", + "crypto/slh_dsa/libfips-lib-slh_hash.o", + "crypto/slh_dsa/libfips-lib-slh_hypertree.o", + "crypto/slh_dsa/libfips-lib-slh_params.o", + "crypto/slh_dsa/libfips-lib-slh_wots.o", + "crypto/slh_dsa/libfips-lib-slh_xmss.o", "crypto/stack/libfips-lib-stack.o", + "crypto/thread/arch/libfips-lib-thread_none.o", + "crypto/thread/arch/libfips-lib-thread_posix.o", + "crypto/thread/arch/libfips-lib-thread_win.o", + "crypto/thread/libfips-lib-api.o", + "crypto/thread/libfips-lib-arch.o", + "crypto/thread/libfips-lib-internal.o", "providers/common/der/libfips-lib-der_rsa_sig.o", "providers/common/libfips-lib-bio_prov.o", "providers/common/libfips-lib-capabilities.o", @@ -25592,6 +29895,7 @@ our %unified_info = ( "providers/common/libfips-lib-provider_util.o", "providers/common/libfips-lib-securitycheck.o", "providers/common/libfips-lib-securitycheck_fips.o", + "providers/fips/libfips-lib-fipsindicator.o", "providers/fips/libfips-lib-fipsprov.o", "providers/fips/libfips-lib-self_test.o", "providers/fips/libfips-lib-self_test_kats.o", @@ -25629,6 +29933,8 @@ our %unified_info = ( "providers/implementations/kdfs/libfips-lib-sskdf.o", "providers/implementations/kdfs/libfips-lib-tls1_prf.o", "providers/implementations/kdfs/libfips-lib-x942kdf.o", + "providers/implementations/kem/libfips-lib-ml_kem_kem.o", + "providers/implementations/kem/libfips-lib-mlx_kem.o", "providers/implementations/kem/libfips-lib-rsa_kem.o", "providers/implementations/keymgmt/libfips-lib-dh_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-dsa_kmgmt.o", @@ -25636,24 +29942,32 @@ our %unified_info = ( "providers/implementations/keymgmt/libfips-lib-ecx_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-kdf_legacy_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-mac_legacy_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-ml_dsa_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-ml_kem_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-mlx_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-rsa_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-slh_dsa_kmgmt.o", "providers/implementations/macs/libfips-lib-cmac_prov.o", "providers/implementations/macs/libfips-lib-gmac_prov.o", "providers/implementations/macs/libfips-lib-hmac_prov.o", "providers/implementations/macs/libfips-lib-kmac_prov.o", - "providers/implementations/rands/libfips-lib-crngt.o", "providers/implementations/rands/libfips-lib-drbg.o", "providers/implementations/rands/libfips-lib-drbg_ctr.o", "providers/implementations/rands/libfips-lib-drbg_hash.o", "providers/implementations/rands/libfips-lib-drbg_hmac.o", + "providers/implementations/rands/libfips-lib-fips_crng_test.o", "providers/implementations/rands/libfips-lib-test_rng.o", "providers/implementations/signature/libfips-lib-dsa_sig.o", "providers/implementations/signature/libfips-lib-ecdsa_sig.o", "providers/implementations/signature/libfips-lib-eddsa_sig.o", "providers/implementations/signature/libfips-lib-mac_legacy_sig.o", + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o", "providers/implementations/signature/libfips-lib-rsa_sig.o", + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o", + "providers/implementations/skeymgmt/libfips-lib-aes_skmgmt.o", + "providers/implementations/skeymgmt/libfips-lib-generic.o", "providers/libcommon.a", - "ssl/libfips-lib-s3_cbc.o" + "ssl/record/methods/libfips-lib-ssl3_cbc.o" ], "providers/liblegacy-lib-prov_running.o" => [ "providers/prov_running.c" @@ -25683,13 +29997,12 @@ our %unified_info = ( "providers/implementations/digests/liblegacy-lib-ripemd_prov.o", "providers/implementations/digests/liblegacy-lib-wp_prov.o", "providers/implementations/kdfs/liblegacy-lib-pbkdf1.o", + "providers/implementations/kdfs/liblegacy-lib-pvkkdf.o", "providers/liblegacy-lib-prov_running.o" ], - "ssl/libdefault-lib-s3_cbc.o" => [ - "ssl/s3_cbc.c" - ], - "ssl/libfips-lib-s3_cbc.o" => [ - "ssl/s3_cbc.c" + "providers/libtemplate.a" => [ + "providers/implementations/kem/libtemplate-lib-template_kem.o", + "providers/implementations/keymgmt/libtemplate-lib-template_kmgmt.o" ], "ssl/libssl-lib-bio_ssl.o" => [ "ssl/bio_ssl.c" @@ -25709,6 +30022,9 @@ our %unified_info = ( "ssl/libssl-lib-pqueue.o" => [ "ssl/pqueue.c" ], + "ssl/libssl-lib-priority_queue.o" => [ + "ssl/priority_queue.c" + ], "ssl/libssl-lib-s3_enc.o" => [ "ssl/s3_enc.c" ], @@ -25724,15 +30040,15 @@ our %unified_info = ( "ssl/libssl-lib-ssl_cert.o" => [ "ssl/ssl_cert.c" ], + "ssl/libssl-lib-ssl_cert_comp.o" => [ + "ssl/ssl_cert_comp.c" + ], "ssl/libssl-lib-ssl_ciph.o" => [ "ssl/ssl_ciph.c" ], "ssl/libssl-lib-ssl_conf.o" => [ "ssl/ssl_conf.c" ], - "ssl/libssl-lib-ssl_err.o" => [ - "ssl/ssl_err.c" - ], "ssl/libssl-lib-ssl_err_legacy.o" => [ "ssl/ssl_err_legacy.c" ], @@ -25781,11 +30097,131 @@ our %unified_info = ( "ssl/libssl-lib-tls_srp.o" => [ "ssl/tls_srp.c" ], - "ssl/record/libcommon-lib-tls_pad.o" => [ - "ssl/record/tls_pad.c" + "ssl/quic/libssl-lib-cc_newreno.o" => [ + "ssl/quic/cc_newreno.c" + ], + "ssl/quic/libssl-lib-json_enc.o" => [ + "ssl/quic/json_enc.c" + ], + "ssl/quic/libssl-lib-qlog.o" => [ + "ssl/quic/qlog.c" + ], + "ssl/quic/libssl-lib-qlog_event_helpers.o" => [ + "ssl/quic/qlog_event_helpers.c" + ], + "ssl/quic/libssl-lib-quic_ackm.o" => [ + "ssl/quic/quic_ackm.c" + ], + "ssl/quic/libssl-lib-quic_cfq.o" => [ + "ssl/quic/quic_cfq.c" + ], + "ssl/quic/libssl-lib-quic_channel.o" => [ + "ssl/quic/quic_channel.c" + ], + "ssl/quic/libssl-lib-quic_demux.o" => [ + "ssl/quic/quic_demux.c" + ], + "ssl/quic/libssl-lib-quic_engine.o" => [ + "ssl/quic/quic_engine.c" + ], + "ssl/quic/libssl-lib-quic_fc.o" => [ + "ssl/quic/quic_fc.c" + ], + "ssl/quic/libssl-lib-quic_fifd.o" => [ + "ssl/quic/quic_fifd.c" + ], + "ssl/quic/libssl-lib-quic_impl.o" => [ + "ssl/quic/quic_impl.c" + ], + "ssl/quic/libssl-lib-quic_lcidm.o" => [ + "ssl/quic/quic_lcidm.c" + ], + "ssl/quic/libssl-lib-quic_method.o" => [ + "ssl/quic/quic_method.c" + ], + "ssl/quic/libssl-lib-quic_obj.o" => [ + "ssl/quic/quic_obj.c" + ], + "ssl/quic/libssl-lib-quic_port.o" => [ + "ssl/quic/quic_port.c" + ], + "ssl/quic/libssl-lib-quic_rcidm.o" => [ + "ssl/quic/quic_rcidm.c" + ], + "ssl/quic/libssl-lib-quic_reactor.o" => [ + "ssl/quic/quic_reactor.c" + ], + "ssl/quic/libssl-lib-quic_reactor_wait_ctx.o" => [ + "ssl/quic/quic_reactor_wait_ctx.c" + ], + "ssl/quic/libssl-lib-quic_record_rx.o" => [ + "ssl/quic/quic_record_rx.c" + ], + "ssl/quic/libssl-lib-quic_record_shared.o" => [ + "ssl/quic/quic_record_shared.c" + ], + "ssl/quic/libssl-lib-quic_record_tx.o" => [ + "ssl/quic/quic_record_tx.c" + ], + "ssl/quic/libssl-lib-quic_record_util.o" => [ + "ssl/quic/quic_record_util.c" + ], + "ssl/quic/libssl-lib-quic_rstream.o" => [ + "ssl/quic/quic_rstream.c" ], - "ssl/record/libssl-lib-dtls1_bitmap.o" => [ - "ssl/record/dtls1_bitmap.c" + "ssl/quic/libssl-lib-quic_rx_depack.o" => [ + "ssl/quic/quic_rx_depack.c" + ], + "ssl/quic/libssl-lib-quic_sf_list.o" => [ + "ssl/quic/quic_sf_list.c" + ], + "ssl/quic/libssl-lib-quic_srt_gen.o" => [ + "ssl/quic/quic_srt_gen.c" + ], + "ssl/quic/libssl-lib-quic_srtm.o" => [ + "ssl/quic/quic_srtm.c" + ], + "ssl/quic/libssl-lib-quic_sstream.o" => [ + "ssl/quic/quic_sstream.c" + ], + "ssl/quic/libssl-lib-quic_statm.o" => [ + "ssl/quic/quic_statm.c" + ], + "ssl/quic/libssl-lib-quic_stream_map.o" => [ + "ssl/quic/quic_stream_map.c" + ], + "ssl/quic/libssl-lib-quic_thread_assist.o" => [ + "ssl/quic/quic_thread_assist.c" + ], + "ssl/quic/libssl-lib-quic_tls.o" => [ + "ssl/quic/quic_tls.c" + ], + "ssl/quic/libssl-lib-quic_tls_api.o" => [ + "ssl/quic/quic_tls_api.c" + ], + "ssl/quic/libssl-lib-quic_trace.o" => [ + "ssl/quic/quic_trace.c" + ], + "ssl/quic/libssl-lib-quic_tserver.o" => [ + "ssl/quic/quic_tserver.c" + ], + "ssl/quic/libssl-lib-quic_txp.o" => [ + "ssl/quic/quic_txp.c" + ], + "ssl/quic/libssl-lib-quic_txpim.o" => [ + "ssl/quic/quic_txpim.c" + ], + "ssl/quic/libssl-lib-quic_types.o" => [ + "ssl/quic/quic_types.c" + ], + "ssl/quic/libssl-lib-quic_wire.o" => [ + "ssl/quic/quic_wire.c" + ], + "ssl/quic/libssl-lib-quic_wire_pkt.o" => [ + "ssl/quic/quic_wire_pkt.c" + ], + "ssl/quic/libssl-lib-uint_set.o" => [ + "ssl/quic/uint_set.c" ], "ssl/record/libssl-lib-rec_layer_d1.o" => [ "ssl/record/rec_layer_d1.c" @@ -25793,14 +30229,44 @@ our %unified_info = ( "ssl/record/libssl-lib-rec_layer_s3.o" => [ "ssl/record/rec_layer_s3.c" ], - "ssl/record/libssl-lib-ssl3_buffer.o" => [ - "ssl/record/ssl3_buffer.c" + "ssl/record/methods/libcommon-lib-tls_pad.o" => [ + "ssl/record/methods/tls_pad.c" + ], + "ssl/record/methods/libdefault-lib-ssl3_cbc.o" => [ + "ssl/record/methods/ssl3_cbc.c" + ], + "ssl/record/methods/libfips-lib-ssl3_cbc.o" => [ + "ssl/record/methods/ssl3_cbc.c" + ], + "ssl/record/methods/libssl-lib-dtls_meth.o" => [ + "ssl/record/methods/dtls_meth.c" + ], + "ssl/record/methods/libssl-lib-ssl3_meth.o" => [ + "ssl/record/methods/ssl3_meth.c" + ], + "ssl/record/methods/libssl-lib-tls13_meth.o" => [ + "ssl/record/methods/tls13_meth.c" + ], + "ssl/record/methods/libssl-lib-tls1_meth.o" => [ + "ssl/record/methods/tls1_meth.c" + ], + "ssl/record/methods/libssl-lib-tls_common.o" => [ + "ssl/record/methods/tls_common.c" ], - "ssl/record/libssl-lib-ssl3_record.o" => [ - "ssl/record/ssl3_record.c" + "ssl/record/methods/libssl-lib-tls_multib.o" => [ + "ssl/record/methods/tls_multib.c" ], - "ssl/record/libssl-lib-ssl3_record_tls13.o" => [ - "ssl/record/ssl3_record_tls13.c" + "ssl/record/methods/libssl-lib-tlsany_meth.o" => [ + "ssl/record/methods/tlsany_meth.c" + ], + "ssl/rio/libssl-lib-poll_builder.o" => [ + "ssl/rio/poll_builder.c" + ], + "ssl/rio/libssl-lib-poll_immediate.o" => [ + "ssl/rio/poll_immediate.c" + ], + "ssl/rio/libssl-lib-rio_notifier.o" => [ + "ssl/rio/rio_notifier.c" ], "ssl/statem/libssl-lib-extensions.o" => [ "ssl/statem/extensions.c" @@ -25896,6 +30362,8 @@ our %unified_info = ( "test/asn1_string_table_test.c" ], "test/asn1_time_test" => [ + "crypto/asn1/asn1_time_test-bin-a_time.o", + "crypto/asn1_time_test-bin-ctype.o", "test/asn1_time_test-bin-asn1_time_test.o" ], "test/asn1_time_test-bin-asn1_time_test.o" => [ @@ -25926,6 +30394,18 @@ our %unified_info = ( "test/bftest-bin-bftest.o" => [ "test/bftest.c" ], + "test/bio_addr_test" => [ + "test/bio_addr_test-bin-bio_addr_test.o" + ], + "test/bio_addr_test-bin-bio_addr_test.o" => [ + "test/bio_addr_test.c" + ], + "test/bio_base64_test" => [ + "test/bio_base64_test-bin-bio_base64_test.o" + ], + "test/bio_base64_test-bin-bio_base64_test.o" => [ + "test/bio_base64_test.c" + ], "test/bio_callback_test" => [ "test/bio_callback_test-bin-bio_callback_test.o" ], @@ -25938,6 +30418,12 @@ our %unified_info = ( "test/bio_core_test-bin-bio_core_test.o" => [ "test/bio_core_test.c" ], + "test/bio_dgram_test" => [ + "test/bio_dgram_test-bin-bio_dgram_test.o" + ], + "test/bio_dgram_test-bin-bio_dgram_test.o" => [ + "test/bio_dgram_test.c" + ], "test/bio_enc_test" => [ "test/bio_enc_test-bin-bio_enc_test.o" ], @@ -25950,6 +30436,12 @@ our %unified_info = ( "test/bio_memleak_test-bin-bio_memleak_test.o" => [ "test/bio_memleak_test.c" ], + "test/bio_meth_test" => [ + "test/bio_meth_test-bin-bio_meth_test.o" + ], + "test/bio_meth_test-bin-bio_meth_test.o" => [ + "test/bio_meth_test.c" + ], "test/bio_prefix_text" => [ "test/bio_prefix_text-bin-bio_prefix_text.o" ], @@ -25968,6 +30460,12 @@ our %unified_info = ( "test/bio_readbuffer_test-bin-bio_readbuffer_test.o" => [ "test/bio_readbuffer_test.c" ], + "test/bio_tfo_test" => [ + "test/bio_tfo_test-bin-bio_tfo_test.o" + ], + "test/bio_tfo_test-bin-bio_tfo_test.o" => [ + "test/bio_tfo_test.c" + ], "test/bioprinttest" => [ "test/bioprinttest-bin-bioprinttest.o" ], @@ -25986,6 +30484,12 @@ our %unified_info = ( "test/bntest-bin-bntest.o" => [ "test/bntest.c" ], + "test/build_wincrypt_test" => [ + "test/build_wincrypt_test-bin-build_wincrypt_test.o" + ], + "test/build_wincrypt_test-bin-build_wincrypt_test.o" => [ + "test/build_wincrypt_test.c" + ], "test/buildtest_c_aes" => [ "test/buildtest_c_aes-bin-buildtest_aes.o" ], @@ -26016,6 +30520,12 @@ our %unified_info = ( "test/buildtest_c_buffer-bin-buildtest_buffer.o" => [ "test/buildtest_buffer.c" ], + "test/buildtest_c_byteorder" => [ + "test/buildtest_c_byteorder-bin-buildtest_byteorder.o" + ], + "test/buildtest_c_byteorder-bin-buildtest_byteorder.o" => [ + "test/buildtest_byteorder.c" + ], "test/buildtest_c_camellia" => [ "test/buildtest_c_camellia-bin-buildtest_camellia.o" ], @@ -26064,12 +30574,6 @@ our %unified_info = ( "test/buildtest_c_core_dispatch-bin-buildtest_core_dispatch.o" => [ "test/buildtest_core_dispatch.c" ], - "test/buildtest_c_core_names" => [ - "test/buildtest_c_core_names-bin-buildtest_core_names.o" - ], - "test/buildtest_c_core_names-bin-buildtest_core_names.o" => [ - "test/buildtest_core_names.c" - ], "test/buildtest_c_core_object" => [ "test/buildtest_c_core_object-bin-buildtest_core_object.o" ], @@ -26118,6 +30622,12 @@ our %unified_info = ( "test/buildtest_c_e_os2-bin-buildtest_e_os2.o" => [ "test/buildtest_e_os2.c" ], + "test/buildtest_c_e_ostime" => [ + "test/buildtest_c_e_ostime-bin-buildtest_e_ostime.o" + ], + "test/buildtest_c_e_ostime-bin-buildtest_e_ostime.o" => [ + "test/buildtest_e_ostime.c" + ], "test/buildtest_c_ebcdic" => [ "test/buildtest_c_ebcdic-bin-buildtest_ebcdic.o" ], @@ -26172,6 +30682,12 @@ our %unified_info = ( "test/buildtest_c_hmac-bin-buildtest_hmac.o" => [ "test/buildtest_hmac.c" ], + "test/buildtest_c_hpke" => [ + "test/buildtest_c_hpke-bin-buildtest_hpke.o" + ], + "test/buildtest_c_hpke-bin-buildtest_hpke.o" => [ + "test/buildtest_hpke.c" + ], "test/buildtest_c_http" => [ "test/buildtest_c_http-bin-buildtest_http.o" ], @@ -26184,6 +30700,12 @@ our %unified_info = ( "test/buildtest_c_idea-bin-buildtest_idea.o" => [ "test/buildtest_idea.c" ], + "test/buildtest_c_indicator" => [ + "test/buildtest_c_indicator-bin-buildtest_indicator.o" + ], + "test/buildtest_c_indicator-bin-buildtest_indicator.o" => [ + "test/buildtest_indicator.c" + ], "test/buildtest_c_kdf" => [ "test/buildtest_c_kdf-bin-buildtest_kdf.o" ], @@ -26214,6 +30736,12 @@ our %unified_info = ( "test/buildtest_c_mdc2-bin-buildtest_mdc2.o" => [ "test/buildtest_mdc2.c" ], + "test/buildtest_c_ml_kem" => [ + "test/buildtest_c_ml_kem-bin-buildtest_ml_kem.o" + ], + "test/buildtest_c_ml_kem-bin-buildtest_ml_kem.o" => [ + "test/buildtest_ml_kem.c" + ], "test/buildtest_c_modes" => [ "test/buildtest_c_modes-bin-buildtest_modes.o" ], @@ -26274,6 +30802,12 @@ our %unified_info = ( "test/buildtest_c_provider-bin-buildtest_provider.o" => [ "test/buildtest_provider.c" ], + "test/buildtest_c_quic" => [ + "test/buildtest_c_quic-bin-buildtest_quic.o" + ], + "test/buildtest_c_quic-bin-buildtest_quic.o" => [ + "test/buildtest_quic.c" + ], "test/buildtest_c_rand" => [ "test/buildtest_c_rand-bin-buildtest_rand.o" ], @@ -26358,6 +30892,12 @@ our %unified_info = ( "test/buildtest_c_symhacks-bin-buildtest_symhacks.o" => [ "test/buildtest_symhacks.c" ], + "test/buildtest_c_thread" => [ + "test/buildtest_c_thread-bin-buildtest_thread.o" + ], + "test/buildtest_c_thread-bin-buildtest_thread.o" => [ + "test/buildtest_thread.c" + ], "test/buildtest_c_tls1" => [ "test/buildtest_c_tls1-bin-buildtest_tls1.o" ], @@ -26388,6 +30928,29 @@ our %unified_info = ( "test/buildtest_c_whrlpool-bin-buildtest_whrlpool.o" => [ "test/buildtest_whrlpool.c" ], + "test/byteorder_test" => [ + "test/byteorder_test-bin-byteorder_test.o" + ], + "test/byteorder_test-bin-byteorder_test.o" => [ + "test/byteorder_test.c" + ], + "test/ca_internals_test" => [ + "apps/ca_internals_test-bin-ca.o", + "apps/lib/ca_internals_test-bin-app_libctx.o", + "apps/lib/ca_internals_test-bin-app_provider.o", + "apps/lib/ca_internals_test-bin-app_rand.o", + "apps/lib/ca_internals_test-bin-app_x509.o", + "apps/lib/ca_internals_test-bin-apps.o", + "apps/lib/ca_internals_test-bin-apps_ui.o", + "apps/lib/ca_internals_test-bin-engine.o", + "apps/lib/ca_internals_test-bin-fmt.o", + "crypto/asn1/ca_internals_test-bin-a_time.o", + "crypto/ca_internals_test-bin-ctype.o", + "test/ca_internals_test-bin-ca_internals_test.o" + ], + "test/ca_internals_test-bin-ca_internals_test.o" => [ + "test/ca_internals_test.c" + ], "test/casttest" => [ "test/casttest-bin-casttest.o" ], @@ -26566,6 +31129,12 @@ our %unified_info = ( "test/danetest-bin-danetest.o" => [ "test/danetest.c" ], + "test/decoder_propq_test" => [ + "test/decoder_propq_test-bin-decoder_propq_test.o" + ], + "test/decoder_propq_test-bin-decoder_propq_test.o" => [ + "test/decoder_propq_test.c" + ], "test/defltfips_test" => [ "test/defltfips_test-bin-defltfips_test.o" ], @@ -26647,6 +31216,7 @@ our %unified_info = ( "test/ectest.c" ], "test/endecode_test" => [ + "providers/endecode_test-bin-legacyprov.o", "test/endecode_test-bin-endecode_test.o", "test/helpers/endecode_test-bin-predefined_dhparams.o" ], @@ -26679,17 +31249,29 @@ our %unified_info = ( ], "test/evp_extra_test" => [ "providers/evp_extra_test-bin-legacyprov.o", - "test/evp_extra_test-bin-evp_extra_test.o" + "test/evp_extra_test-bin-evp_extra_test.o", + "test/evp_extra_test-bin-fake_pipelineprov.o", + "test/evp_extra_test-bin-fake_rsaprov.o" ], "test/evp_extra_test-bin-evp_extra_test.o" => [ "test/evp_extra_test.c" ], + "test/evp_extra_test-bin-fake_pipelineprov.o" => [ + "test/fake_pipelineprov.c" + ], + "test/evp_extra_test-bin-fake_rsaprov.o" => [ + "test/fake_rsaprov.c" + ], "test/evp_extra_test2" => [ - "test/evp_extra_test2-bin-evp_extra_test2.o" + "test/evp_extra_test2-bin-evp_extra_test2.o", + "test/evp_extra_test2-bin-tls-provider.o" ], "test/evp_extra_test2-bin-evp_extra_test2.o" => [ "test/evp_extra_test2.c" ], + "test/evp_extra_test2-bin-tls-provider.o" => [ + "test/tls-provider.c" + ], "test/evp_fetch_prov_test" => [ "test/evp_fetch_prov_test-bin-evp_fetch_prov_test.o" ], @@ -26714,6 +31296,12 @@ our %unified_info = ( "test/evp_pkey_ctx_new_from_name-bin-evp_pkey_ctx_new_from_name.o" => [ "test/evp_pkey_ctx_new_from_name.c" ], + "test/evp_pkey_dhkem_test" => [ + "test/evp_pkey_dhkem_test-bin-evp_pkey_dhkem_test.o" + ], + "test/evp_pkey_dhkem_test-bin-evp_pkey_dhkem_test.o" => [ + "test/evp_pkey_dhkem_test.c" + ], "test/evp_pkey_dparams_test" => [ "test/evp_pkey_dparams_test-bin-evp_pkey_dparams_test.o" ], @@ -26726,12 +31314,28 @@ our %unified_info = ( "test/evp_pkey_provided_test-bin-evp_pkey_provided_test.o" => [ "test/evp_pkey_provided_test.c" ], + "test/evp_skey_test" => [ + "test/evp_skey_test-bin-evp_skey_test.o", + "test/evp_skey_test-bin-fake_cipherprov.o" + ], + "test/evp_skey_test-bin-evp_skey_test.o" => [ + "test/evp_skey_test.c" + ], + "test/evp_skey_test-bin-fake_cipherprov.o" => [ + "test/fake_cipherprov.c" + ], "test/evp_test" => [ "test/evp_test-bin-evp_test.o" ], "test/evp_test-bin-evp_test.o" => [ "test/evp_test.c" ], + "test/evp_xof_test" => [ + "test/evp_xof_test-bin-evp_xof_test.o" + ], + "test/evp_xof_test-bin-evp_xof_test.o" => [ + "test/evp_xof_test.c" + ], "test/exdatatest" => [ "test/exdatatest-bin-exdatatest.o" ], @@ -26817,15 +31421,108 @@ our %unified_info = ( "test/helpers/fatalerrtest-bin-ssltestlib.o" => [ "test/helpers/ssltestlib.c" ], + "test/helpers/json_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/json_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/json_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/json_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/pkcs12_api_test-bin-pkcs12.o" => [ + "test/helpers/pkcs12.c" + ], "test/helpers/pkcs12_format_test-bin-pkcs12.o" => [ "test/helpers/pkcs12.c" ], + "test/helpers/quic_multistream_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quic_multistream_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quic_multistream_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quic_multistream_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quic_newcid_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quic_newcid_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quic_newcid_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quic_newcid_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quic_radix_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quic_radix_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quic_radix_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quic_radix_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quic_srt_gen_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quic_srt_gen_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quic_srt_gen_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quic_srt_gen_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quicapitest-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quicapitest-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quicapitest-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quicapitest-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quicfaultstest-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quicfaultstest-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quicfaultstest-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quicfaultstest-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], "test/helpers/recordlentest-bin-ssltestlib.o" => [ "test/helpers/ssltestlib.c" ], + "test/helpers/rpktest-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], "test/helpers/servername_test-bin-ssltestlib.o" => [ "test/helpers/ssltestlib.c" ], + "test/helpers/ssl_handshake_rtt_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], "test/helpers/ssl_old_test-bin-predefined_dhparams.o" => [ "test/helpers/predefined_dhparams.c" ], @@ -26853,6 +31550,9 @@ our %unified_info = ( "test/helpers/tls13ccstest-bin-ssltestlib.o" => [ "test/helpers/ssltestlib.c" ], + "test/helpers/tls13groupselection_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], "test/hexstr_test" => [ "test/hexstr_test-bin-hexstr_test.o" ], @@ -26865,6 +31565,12 @@ our %unified_info = ( "test/hmactest-bin-hmactest.o" => [ "test/hmactest.c" ], + "test/hpke_test" => [ + "test/hpke_test-bin-hpke_test.o" + ], + "test/hpke_test-bin-hpke_test.o" => [ + "test/hpke_test.c" + ], "test/http_test" => [ "test/http_test-bin-http_test.o" ], @@ -26883,6 +31589,16 @@ our %unified_info = ( "test/igetest-bin-igetest.o" => [ "test/igetest.c" ], + "test/json_test" => [ + "test/helpers/json_test-bin-noisydgrambio.o", + "test/helpers/json_test-bin-pktsplitbio.o", + "test/helpers/json_test-bin-quictestlib.o", + "test/helpers/json_test-bin-ssltestlib.o", + "test/json_test-bin-json_test.o" + ], + "test/json_test-bin-json_test.o" => [ + "test/json_test.c" + ], "test/keymgmt_internal_test" => [ "test/keymgmt_internal_test-bin-keymgmt_internal_test.o" ], @@ -26903,6 +31619,7 @@ our %unified_info = ( "test/testutil/libtestutil-lib-driver.o", "test/testutil/libtestutil-lib-fake_random.o", "test/testutil/libtestutil-lib-format_output.o", + "test/testutil/libtestutil-lib-helper.o", "test/testutil/libtestutil-lib-load.o", "test/testutil/libtestutil-lib-main.o", "test/testutil/libtestutil-lib-options.o", @@ -26915,6 +31632,12 @@ our %unified_info = ( "test/testutil/libtestutil-lib-tests.o", "test/testutil/libtestutil-lib-testutil_init.o" ], + "test/list_test" => [ + "test/list_test-bin-list_test.o" + ], + "test/list_test-bin-list_test.o" => [ + "test/list_test.c" + ], "test/localetest" => [ "test/localetest-bin-localetest.o" ], @@ -26933,12 +31656,36 @@ our %unified_info = ( "test/mdc2test-bin-mdc2test.o" => [ "test/mdc2test.c" ], + "test/membio_test" => [ + "test/membio_test-bin-membio_test.o" + ], + "test/membio_test-bin-membio_test.o" => [ + "test/membio_test.c" + ], "test/memleaktest" => [ "test/memleaktest-bin-memleaktest.o" ], "test/memleaktest-bin-memleaktest.o" => [ "test/memleaktest.c" ], + "test/ml_dsa_test" => [ + "test/ml_dsa_test-bin-ml_dsa_test.o" + ], + "test/ml_dsa_test-bin-ml_dsa_test.o" => [ + "test/ml_dsa_test.c" + ], + "test/ml_kem_evp_extra_test" => [ + "test/ml_kem_evp_extra_test-bin-ml_kem_evp_extra_test.o" + ], + "test/ml_kem_evp_extra_test-bin-ml_kem_evp_extra_test.o" => [ + "test/ml_kem_evp_extra_test.c" + ], + "test/ml_kem_internal_test" => [ + "test/ml_kem_internal_test-bin-ml_kem_internal_test.o" + ], + "test/ml_kem_internal_test-bin-ml_kem_internal_test.o" => [ + "test/ml_kem_internal_test.c" + ], "test/modes_internal_test" => [ "test/modes_internal_test-bin-modes_internal_test.o" ], @@ -26984,11 +31731,18 @@ our %unified_info = ( "test/p_test.c" ], "test/packettest" => [ + "crypto/packettest-bin-quic_vlint.o", "test/packettest-bin-packettest.o" ], "test/packettest-bin-packettest.o" => [ "test/packettest.c" ], + "test/pairwise_fail_test" => [ + "test/pairwise_fail_test-bin-pairwise_fail_test.o" + ], + "test/pairwise_fail_test-bin-pairwise_fail_test.o" => [ + "test/pairwise_fail_test.c" + ], "test/param_build_test" => [ "test/param_build_test-bin-param_build_test.o" ], @@ -27037,6 +31791,13 @@ our %unified_info = ( "test/pemtest-bin-pemtest.o" => [ "test/pemtest.c" ], + "test/pkcs12_api_test" => [ + "test/helpers/pkcs12_api_test-bin-pkcs12.o", + "test/pkcs12_api_test-bin-pkcs12_api_test.o" + ], + "test/pkcs12_api_test-bin-pkcs12_api_test.o" => [ + "test/pkcs12_api_test.c" + ], "test/pkcs12_format_test" => [ "test/helpers/pkcs12_format_test-bin-pkcs12.o", "test/pkcs12_format_test-bin-pkcs12_format_test.o" @@ -27068,6 +31829,12 @@ our %unified_info = ( "test/poly1305_internal_test-bin-poly1305_internal_test.o" => [ "test/poly1305_internal_test.c" ], + "test/priority_queue_test" => [ + "test/priority_queue_test-bin-priority_queue_test.o" + ], + "test/priority_queue_test-bin-priority_queue_test.o" => [ + "test/priority_queue_test.c" + ], "test/property_test" => [ "test/property_test-bin-property_test.o" ], @@ -27086,6 +31853,12 @@ our %unified_info = ( "test/provfetchtest-bin-provfetchtest.o" => [ "test/provfetchtest.c" ], + "test/provider_default_search_path_test" => [ + "test/provider_default_search_path_test-bin-provider_default_search_path_test.o" + ], + "test/provider_default_search_path_test-bin-provider_default_search_path_test.o" => [ + "test/provider_default_search_path_test.c" + ], "test/provider_fallback_test" => [ "test/provider_fallback_test-bin-provider_fallback_test.o" ], @@ -27134,6 +31907,174 @@ our %unified_info = ( "test/punycode_test-bin-punycode_test.o" => [ "test/punycode_test.c" ], + "test/quic_ackm_test" => [ + "test/quic_ackm_test-bin-cc_dummy.o", + "test/quic_ackm_test-bin-quic_ackm_test.o" + ], + "test/quic_ackm_test-bin-cc_dummy.o" => [ + "test/cc_dummy.c" + ], + "test/quic_ackm_test-bin-quic_ackm_test.o" => [ + "test/quic_ackm_test.c" + ], + "test/quic_cc_test" => [ + "test/quic_cc_test-bin-quic_cc_test.o" + ], + "test/quic_cc_test-bin-quic_cc_test.o" => [ + "test/quic_cc_test.c" + ], + "test/quic_cfq_test" => [ + "test/quic_cfq_test-bin-quic_cfq_test.o" + ], + "test/quic_cfq_test-bin-quic_cfq_test.o" => [ + "test/quic_cfq_test.c" + ], + "test/quic_client_test" => [ + "test/quic_client_test-bin-quic_client_test.o" + ], + "test/quic_client_test-bin-quic_client_test.o" => [ + "test/quic_client_test.c" + ], + "test/quic_fc_test" => [ + "test/quic_fc_test-bin-quic_fc_test.o" + ], + "test/quic_fc_test-bin-quic_fc_test.o" => [ + "test/quic_fc_test.c" + ], + "test/quic_fifd_test" => [ + "test/quic_fifd_test-bin-cc_dummy.o", + "test/quic_fifd_test-bin-quic_fifd_test.o" + ], + "test/quic_fifd_test-bin-cc_dummy.o" => [ + "test/cc_dummy.c" + ], + "test/quic_fifd_test-bin-quic_fifd_test.o" => [ + "test/quic_fifd_test.c" + ], + "test/quic_lcidm_test" => [ + "test/quic_lcidm_test-bin-quic_lcidm_test.o" + ], + "test/quic_lcidm_test-bin-quic_lcidm_test.o" => [ + "test/quic_lcidm_test.c" + ], + "test/quic_multistream_test" => [ + "test/helpers/quic_multistream_test-bin-noisydgrambio.o", + "test/helpers/quic_multistream_test-bin-pktsplitbio.o", + "test/helpers/quic_multistream_test-bin-quictestlib.o", + "test/helpers/quic_multistream_test-bin-ssltestlib.o", + "test/quic_multistream_test-bin-quic_multistream_test.o" + ], + "test/quic_multistream_test-bin-quic_multistream_test.o" => [ + "test/quic_multistream_test.c" + ], + "test/quic_newcid_test" => [ + "test/helpers/quic_newcid_test-bin-noisydgrambio.o", + "test/helpers/quic_newcid_test-bin-pktsplitbio.o", + "test/helpers/quic_newcid_test-bin-quictestlib.o", + "test/helpers/quic_newcid_test-bin-ssltestlib.o", + "test/quic_newcid_test-bin-quic_newcid_test.o" + ], + "test/quic_newcid_test-bin-quic_newcid_test.o" => [ + "test/quic_newcid_test.c" + ], + "test/quic_qlog_test" => [ + "test/quic_qlog_test-bin-quic_qlog_test.o" + ], + "test/quic_qlog_test-bin-quic_qlog_test.o" => [ + "test/quic_qlog_test.c" + ], + "test/quic_radix_test" => [ + "test/helpers/quic_radix_test-bin-noisydgrambio.o", + "test/helpers/quic_radix_test-bin-pktsplitbio.o", + "test/helpers/quic_radix_test-bin-quictestlib.o", + "test/helpers/quic_radix_test-bin-ssltestlib.o", + "test/radix/quic_radix_test-bin-quic_radix.o" + ], + "test/quic_rcidm_test" => [ + "test/quic_rcidm_test-bin-quic_rcidm_test.o" + ], + "test/quic_rcidm_test-bin-quic_rcidm_test.o" => [ + "test/quic_rcidm_test.c" + ], + "test/quic_record_test" => [ + "test/quic_record_test-bin-quic_record_test.o" + ], + "test/quic_record_test-bin-quic_record_test.o" => [ + "test/quic_record_test.c" + ], + "test/quic_srt_gen_test" => [ + "test/helpers/quic_srt_gen_test-bin-noisydgrambio.o", + "test/helpers/quic_srt_gen_test-bin-pktsplitbio.o", + "test/helpers/quic_srt_gen_test-bin-quictestlib.o", + "test/helpers/quic_srt_gen_test-bin-ssltestlib.o", + "test/quic_srt_gen_test-bin-quic_srt_gen_test.o" + ], + "test/quic_srt_gen_test-bin-quic_srt_gen_test.o" => [ + "test/quic_srt_gen_test.c" + ], + "test/quic_srtm_test" => [ + "test/quic_srtm_test-bin-quic_srtm_test.o" + ], + "test/quic_srtm_test-bin-quic_srtm_test.o" => [ + "test/quic_srtm_test.c" + ], + "test/quic_stream_test" => [ + "test/quic_stream_test-bin-quic_stream_test.o" + ], + "test/quic_stream_test-bin-quic_stream_test.o" => [ + "test/quic_stream_test.c" + ], + "test/quic_tserver_test" => [ + "test/quic_tserver_test-bin-quic_tserver_test.o" + ], + "test/quic_tserver_test-bin-quic_tserver_test.o" => [ + "test/quic_tserver_test.c" + ], + "test/quic_txp_test" => [ + "test/quic_txp_test-bin-cc_dummy.o", + "test/quic_txp_test-bin-quic_txp_test.o" + ], + "test/quic_txp_test-bin-cc_dummy.o" => [ + "test/cc_dummy.c" + ], + "test/quic_txp_test-bin-quic_txp_test.o" => [ + "test/quic_txp_test.c" + ], + "test/quic_txpim_test" => [ + "test/quic_txpim_test-bin-quic_txpim_test.o" + ], + "test/quic_txpim_test-bin-quic_txpim_test.o" => [ + "test/quic_txpim_test.c" + ], + "test/quic_wire_test" => [ + "test/quic_wire_test-bin-quic_wire_test.o" + ], + "test/quic_wire_test-bin-quic_wire_test.o" => [ + "test/quic_wire_test.c" + ], + "test/quicapitest" => [ + "test/helpers/quicapitest-bin-noisydgrambio.o", + "test/helpers/quicapitest-bin-pktsplitbio.o", + "test/helpers/quicapitest-bin-quictestlib.o", + "test/helpers/quicapitest-bin-ssltestlib.o", + "test/quicapitest-bin-quicapitest.o" + ], + "test/quicapitest-bin-quicapitest.o" => [ + "test/quicapitest.c" + ], + "test/quicfaultstest" => [ + "test/helpers/quicfaultstest-bin-noisydgrambio.o", + "test/helpers/quicfaultstest-bin-pktsplitbio.o", + "test/helpers/quicfaultstest-bin-quictestlib.o", + "test/helpers/quicfaultstest-bin-ssltestlib.o", + "test/quicfaultstest-bin-quicfaultstest.o" + ], + "test/quicfaultstest-bin-quicfaultstest.o" => [ + "test/quicfaultstest.c" + ], + "test/radix/quic_radix_test-bin-quic_radix.o" => [ + "test/radix/quic_radix.c" + ], "test/rand_status_test" => [ "test/rand_status_test-bin-rand_status_test.o" ], @@ -27164,11 +32105,11 @@ our %unified_info = ( "test/rc5test-bin-rc5test.o" => [ "test/rc5test.c" ], - "test/rdrand_sanitytest" => [ - "test/rdrand_sanitytest-bin-rdrand_sanitytest.o" + "test/rdcpu_sanitytest" => [ + "test/rdcpu_sanitytest-bin-rdcpu_sanitytest.o" ], - "test/rdrand_sanitytest-bin-rdrand_sanitytest.o" => [ - "test/rdrand_sanitytest.c" + "test/rdcpu_sanitytest-bin-rdcpu_sanitytest.o" => [ + "test/rdcpu_sanitytest.c" ], "test/recordlentest" => [ "test/helpers/recordlentest-bin-ssltestlib.o", @@ -27177,6 +32118,13 @@ our %unified_info = ( "test/recordlentest-bin-recordlentest.o" => [ "test/recordlentest.c" ], + "test/rpktest" => [ + "test/helpers/rpktest-bin-ssltestlib.o", + "test/rpktest-bin-rpktest.o" + ], + "test/rpktest-bin-rpktest.o" => [ + "test/rpktest.c" + ], "test/rsa_complex" => [ "test/rsa_complex-bin-rsa_complex.o" ], @@ -27201,6 +32149,18 @@ our %unified_info = ( "test/rsa_test-bin-rsa_test.o" => [ "test/rsa_test.c" ], + "test/rsa_x931_test" => [ + "test/rsa_x931_test-bin-rsa_x931_test.o" + ], + "test/rsa_x931_test-bin-rsa_x931_test.o" => [ + "test/rsa_x931_test.c" + ], + "test/safe_math_test" => [ + "test/safe_math_test-bin-safe_math_test.o" + ], + "test/safe_math_test-bin-safe_math_test.o" => [ + "test/safe_math_test.c" + ], "test/sanitytest" => [ "test/sanitytest-bin-sanitytest.o" ], @@ -27232,6 +32192,12 @@ our %unified_info = ( "test/siphash_internal_test-bin-siphash_internal_test.o" => [ "test/siphash_internal_test.c" ], + "test/slh_dsa_test" => [ + "test/slh_dsa_test-bin-slh_dsa_test.o" + ], + "test/slh_dsa_test-bin-slh_dsa_test.o" => [ + "test/slh_dsa_test.c" + ], "test/sm2_internal_test" => [ "test/sm2_internal_test-bin-sm2_internal_test.o" ], @@ -27274,6 +32240,13 @@ our %unified_info = ( "test/ssl_ctx_test-bin-ssl_ctx_test.o" => [ "test/ssl_ctx_test.c" ], + "test/ssl_handshake_rtt_test" => [ + "test/helpers/ssl_handshake_rtt_test-bin-ssltestlib.o", + "test/ssl_handshake_rtt_test-bin-ssl_handshake_rtt_test.o" + ], + "test/ssl_handshake_rtt_test-bin-ssl_handshake_rtt_test.o" => [ + "test/ssl_handshake_rtt_test.c" + ], "test/ssl_old_test" => [ "test/helpers/ssl_old_test-bin-predefined_dhparams.o", "test/ssl_old_test-bin-ssl_old_test.o" @@ -27332,6 +32305,12 @@ our %unified_info = ( "test/stack_test-bin-stack_test.o" => [ "test/stack_test.c" ], + "test/strtoultest" => [ + "test/strtoultest-bin-strtoultest.o" + ], + "test/strtoultest-bin-strtoultest.o" => [ + "test/strtoultest.c" + ], "test/sysdefaulttest" => [ "test/sysdefaulttest-bin-sysdefaulttest.o" ], @@ -27362,6 +32341,9 @@ our %unified_info = ( "test/testutil/libtestutil-lib-format_output.o" => [ "test/testutil/format_output.c" ], + "test/testutil/libtestutil-lib-helper.o" => [ + "test/testutil/helper.c" + ], "test/testutil/libtestutil-lib-load.o" => [ "test/testutil/load.c" ], @@ -27395,6 +32377,12 @@ our %unified_info = ( "test/testutil/libtestutil-lib-testutil_init.o" => [ "test/testutil/testutil_init.c" ], + "test/threadpool_test" => [ + "test/threadpool_test-bin-threadpool_test.o" + ], + "test/threadpool_test-bin-threadpool_test.o" => [ + "test/threadpool_test.c" + ], "test/threadstest" => [ "test/threadstest-bin-threadstest.o" ], @@ -27413,6 +32401,12 @@ our %unified_info = ( "test/time_offset_test-bin-time_offset_test.o" => [ "test/time_offset_test.c" ], + "test/time_test" => [ + "test/time_test-bin-time_test.o" + ], + "test/time_test-bin-time_test.o" => [ + "test/time_test.c" + ], "test/tls13ccstest" => [ "test/helpers/tls13ccstest-bin-ssltestlib.o", "test/tls13ccstest-bin-tls13ccstest.o" @@ -27426,6 +32420,13 @@ our %unified_info = ( "test/tls13encryptiontest-bin-tls13encryptiontest.o" => [ "test/tls13encryptiontest.c" ], + "test/tls13groupselection_test" => [ + "test/helpers/tls13groupselection_test-bin-ssltestlib.o", + "test/tls13groupselection_test-bin-tls13groupselection_test.o" + ], + "test/tls13groupselection_test-bin-tls13groupselection_test.o" => [ + "test/tls13groupselection_test.c" + ], "test/trace_api_test" => [ "test/trace_api_test-bin-trace_api_test.o" ], @@ -27481,6 +32482,12 @@ our %unified_info = ( "test/wpackettest-bin-wpackettest.o" => [ "test/wpackettest.c" ], + "test/x509_acert_test" => [ + "test/x509_acert_test-bin-x509_acert_test.o" + ], + "test/x509_acert_test-bin-x509_acert_test.o" => [ + "test/x509_acert_test.c" + ], "test/x509_check_cert_pkey_test" => [ "test/x509_check_cert_pkey_test-bin-x509_check_cert_pkey_test.o" ], @@ -27499,6 +32506,24 @@ our %unified_info = ( "test/x509_internal_test-bin-x509_internal_test.o" => [ "test/x509_internal_test.c" ], + "test/x509_load_cert_file_test" => [ + "test/x509_load_cert_file_test-bin-x509_load_cert_file_test.o" + ], + "test/x509_load_cert_file_test-bin-x509_load_cert_file_test.o" => [ + "test/x509_load_cert_file_test.c" + ], + "test/x509_req_test" => [ + "test/x509_req_test-bin-x509_req_test.o" + ], + "test/x509_req_test-bin-x509_req_test.o" => [ + "test/x509_req_test.c" + ], + "test/x509_test" => [ + "test/x509_test-bin-x509_test.o" + ], + "test/x509_test-bin-x509_test.o" => [ + "test/x509_test.c" + ], "test/x509_time_test" => [ "test/x509_time_test-bin-x509_time_test.o" ], @@ -27562,6 +32587,7 @@ my @makevars = ( "LDLIBS", "MT", "MTFLAGS", + "OBJCOPY", "PERL", "RANLIB", "RC", @@ -27575,6 +32601,12 @@ my %disabled_info = ( "asan" => { "macro" => "OPENSSL_NO_ASAN" }, + "brotli" => { + "macro" => "OPENSSL_NO_BROTLI" + }, + "brotli-dynamic" => { + "macro" => "OPENSSL_NO_BROTLI_DYNAMIC" + }, "comp" => { "macro" => "OPENSSL_NO_COMP", "skipped" => [ @@ -27587,6 +32619,9 @@ my %disabled_info = ( "crypto-mdebug-backtrace" => { "macro" => "OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE" }, + "demos" => { + "macro" => "OPENSSL_NO_DEMOS" + }, "ec_nistp_64_gcc_128" => { "macro" => "OPENSSL_NO_EC_NISTP_64_GCC_128" }, @@ -27596,12 +32631,24 @@ my %disabled_info = ( "external-tests" => { "macro" => "OPENSSL_NO_EXTERNAL_TESTS" }, + "fips-jitter" => { + "macro" => "OPENSSL_NO_FIPS_JITTER" + }, "fuzz-afl" => { "macro" => "OPENSSL_NO_FUZZ_AFL" }, "fuzz-libfuzzer" => { "macro" => "OPENSSL_NO_FUZZ_LIBFUZZER" }, + "h3demo" => { + "macro" => "OPENSSL_NO_H3DEMO" + }, + "hqinterop" => { + "macro" => "OPENSSL_NO_HQINTEROP" + }, + "jitter" => { + "macro" => "OPENSSL_NO_JITTER" + }, "ktls" => { "macro" => "OPENSSL_NO_KTLS" }, @@ -27617,6 +32664,9 @@ my %disabled_info = ( "msan" => { "macro" => "OPENSSL_NO_MSAN" }, + "pie" => { + "macro" => "OPENSSL_NO_PIE" + }, "rc5" => { "macro" => "OPENSSL_NO_RC5", "skipped" => [ @@ -27632,6 +32682,12 @@ my %disabled_info = ( "ssl3-method" => { "macro" => "OPENSSL_NO_SSL3_METHOD" }, + "sslkeylog" => { + "macro" => "OPENSSL_NO_SSLKEYLOG" + }, + "tfo" => { + "macro" => "OPENSSL_NO_TFO" + }, "trace" => { "macro" => "OPENSSL_NO_TRACE" }, @@ -27646,6 +32702,21 @@ my %disabled_info = ( }, "weak-ssl-ciphers" => { "macro" => "OPENSSL_NO_WEAK_SSL_CIPHERS" + }, + "winstore" => { + "macro" => "OPENSSL_NO_WINSTORE" + }, + "zlib" => { + "macro" => "OPENSSL_NO_ZLIB" + }, + "zlib-dynamic" => { + "macro" => "OPENSSL_NO_ZLIB_DYNAMIC" + }, + "zstd" => { + "macro" => "OPENSSL_NO_ZSTD" + }, + "zstd-dynamic" => { + "macro" => "OPENSSL_NO_ZSTD_DYNAMIC" } ); my @user_crossable = qw( AR AS CC CXX CPP LD MT RANLIB RC ); @@ -27659,15 +32730,15 @@ unless (caller) { use File::Copy; use Pod::Usage; - use lib '/home/runner/work/node/node/deps/openssl/openssl/util/perl'; - use OpenSSL::fallback '/home/runner/work/node/node/deps/openssl/openssl/external/perl/MODULES.txt'; + use lib '/node/deps/openssl/openssl/util/perl'; + use OpenSSL::fallback '/node/deps/openssl/openssl/external/perl/MODULES.txt'; my $here = dirname($0); if (scalar @ARGV == 0) { # With no arguments, re-create the build file # We do that in two steps, where the first step emits perl - # snipets. + # snippets. my $buildfile = $config{build_file}; my $buildfile_template = "$buildfile.in"; @@ -27687,7 +32758,7 @@ unless (caller) { ); use lib '.'; - use lib '/home/runner/work/node/node/deps/openssl/openssl/Configurations'; + use lib '/node/deps/openssl/openssl/Configurations'; use gentemplate; open my $buildfile_template_fh, ">$buildfile_template" @@ -27704,8 +32775,8 @@ unless (caller) { my $prepend = <<'_____'; use File::Spec::Functions; -use lib '/home/runner/work/node/node/deps/openssl/openssl/util/perl'; -use lib '/home/runner/work/node/node/deps/openssl/openssl/Configurations'; +use lib '/node/deps/openssl/openssl/util/perl'; +use lib '/node/deps/openssl/openssl/Configurations'; use lib '.'; use platform; _____ diff --git a/deps/openssl/config/archs/BSD-x86/asm_avx2/crypto/aes/aes-586.S b/deps/openssl/config/archs/BSD-x86/asm_avx2/crypto/aes/aes-586.S index 54ca918323b688..cca5b86b1a282d 100644 --- a/deps/openssl/config/archs/BSD-x86/asm_avx2/crypto/aes/aes-586.S +++ b/deps/openssl/config/archs/BSD-x86/asm_avx2/crypto/aes/aes-586.S @@ -3275,4 +3275,4 @@ L056permute: .byte 65,69,83,32,102,111,114,32,120,56,54,44,32,67,82,89 .byte 80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114 .byte 111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 -.comm _OPENSSL_ia32cap_P,16 +.comm _OPENSSL_ia32cap_P,40 diff --git a/deps/openssl/config/archs/BSD-x86/asm_avx2/crypto/aes/aesni-x86.S b/deps/openssl/config/archs/BSD-x86/asm_avx2/crypto/aes/aesni-x86.S index 0dfd8d39f9fb45..33783dd53acdf2 100644 --- a/deps/openssl/config/archs/BSD-x86/asm_avx2/crypto/aes/aesni-x86.S +++ b/deps/openssl/config/archs/BSD-x86/asm_avx2/crypto/aes/aesni-x86.S @@ -3323,4 +3323,4 @@ Lkey_const: .byte 83,45,78,73,44,32,67,82,89,80,84,79,71,65,77,83 .byte 32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115 .byte 115,108,46,111,114,103,62,0 -.comm _OPENSSL_ia32cap_P,16 +.comm _OPENSSL_ia32cap_P,40 diff --git a/deps/openssl/config/archs/BSD-x86/asm_avx2/crypto/bn/bn-586.S b/deps/openssl/config/archs/BSD-x86/asm_avx2/crypto/bn/bn-586.S index 74f325b80bf104..9b5d37a1fbdb71 100644 --- a/deps/openssl/config/archs/BSD-x86/asm_avx2/crypto/bn/bn-586.S +++ b/deps/openssl/config/archs/BSD-x86/asm_avx2/crypto/bn/bn-586.S @@ -1557,4 +1557,4 @@ L032pw_end: popl %ebx popl %ebp ret -.comm _OPENSSL_ia32cap_P,16 +.comm _OPENSSL_ia32cap_P,40 diff --git a/deps/openssl/config/archs/BSD-x86/asm_avx2/crypto/bn/x86-gf2m.S b/deps/openssl/config/archs/BSD-x86/asm_avx2/crypto/bn/x86-gf2m.S index 67ddae47d13912..f3c0912cc8b3da 100644 --- a/deps/openssl/config/archs/BSD-x86/asm_avx2/crypto/bn/x86-gf2m.S +++ b/deps/openssl/config/archs/BSD-x86/asm_avx2/crypto/bn/x86-gf2m.S @@ -355,4 +355,4 @@ L001ialu: .byte 67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97 .byte 112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103 .byte 62,0 -.comm _OPENSSL_ia32cap_P,16 +.comm _OPENSSL_ia32cap_P,40 diff --git a/deps/openssl/config/archs/BSD-x86/asm_avx2/crypto/bn/x86-mont.S b/deps/openssl/config/archs/BSD-x86/asm_avx2/crypto/bn/x86-mont.S index 958fd5ceb507e6..fe41c053fc8ac2 100644 --- a/deps/openssl/config/archs/BSD-x86/asm_avx2/crypto/bn/x86-mont.S +++ b/deps/openssl/config/archs/BSD-x86/asm_avx2/crypto/bn/x86-mont.S @@ -477,4 +477,4 @@ L000just_leave: .byte 54,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121 .byte 32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46 .byte 111,114,103,62,0 -.comm _OPENSSL_ia32cap_P,16 +.comm _OPENSSL_ia32cap_P,40 diff --git a/deps/openssl/config/archs/BSD-x86/asm_avx2/crypto/buildinf.h b/deps/openssl/config/archs/BSD-x86/asm_avx2/crypto/buildinf.h index f8db7c7b0372fa..ebf5cf73d837f5 100644 --- a/deps/openssl/config/archs/BSD-x86/asm_avx2/crypto/buildinf.h +++ b/deps/openssl/config/archs/BSD-x86/asm_avx2/crypto/buildinf.h @@ -11,7 +11,7 @@ */ #define PLATFORM "platform: BSD-x86" -#define DATE "built on: Sun Jul 20 00:45:53 2025 UTC" +#define DATE "built on: Sun Jul 27 00:45:59 2025 UTC" /* * Generate compiler_flags as an array of individual characters. This is a diff --git a/deps/openssl/config/archs/BSD-x86/asm_avx2/crypto/chacha/chacha-x86.S b/deps/openssl/config/archs/BSD-x86/asm_avx2/crypto/chacha/chacha-x86.S index 43fb04a04b222e..1c821b153dd8c5 100644 --- a/deps/openssl/config/archs/BSD-x86/asm_avx2/crypto/chacha/chacha-x86.S +++ b/deps/openssl/config/archs/BSD-x86/asm_avx2/crypto/chacha/chacha-x86.S @@ -1455,4 +1455,4 @@ L019done: popl %ebx popl %ebp ret -.comm _OPENSSL_ia32cap_P,16 +.comm _OPENSSL_ia32cap_P,40 diff --git a/deps/openssl/config/archs/BSD-x86/asm_avx2/crypto/ec/ecp_nistz256-x86.S b/deps/openssl/config/archs/BSD-x86/asm_avx2/crypto/ec/ecp_nistz256-x86.S index 44d644b785db3c..2ebea569d7ab14 100644 --- a/deps/openssl/config/archs/BSD-x86/asm_avx2/crypto/ec/ecp_nistz256-x86.S +++ b/deps/openssl/config/archs/BSD-x86/asm_avx2/crypto/ec/ecp_nistz256-x86.S @@ -5255,4 +5255,4 @@ L013pic: popl %ebx popl %ebp ret -.comm _OPENSSL_ia32cap_P,16 +.comm _OPENSSL_ia32cap_P,40 diff --git a/deps/openssl/config/archs/BSD-x86/asm_avx2/crypto/params_idx.c b/deps/openssl/config/archs/BSD-x86/asm_avx2/crypto/params_idx.c new file mode 100644 index 00000000000000..9d76ffededc24c --- /dev/null +++ b/deps/openssl/config/archs/BSD-x86/asm_avx2/crypto/params_idx.c @@ -0,0 +1,3366 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from crypto/params_idx.c.in + * + * Copyright 2023 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + +#include "internal/e_os.h" +#include "internal/param_names.h" +#include + +/* Machine generated TRIE -- generated by util/perl/OpenSSL/paramnames.pm */ +int ossl_param_find_pidx(const char *s) +{ + switch(s[0]) { + default: + break; + case 'a': + switch(s[1]) { + default: + break; + case 'c': + if (strcmp("vp-info", s + 2) == 0) + return PIDX_KDF_PARAM_X942_ACVPINFO; + break; + case 'd': + switch(s[2]) { + default: + break; + case 'd': + if (strcmp("itional-random", s + 3) == 0) + return PIDX_SIGNATURE_PARAM_ADD_RANDOM; + break; + case '\0': + return PIDX_KDF_PARAM_ARGON2_AD; + } + break; + case 'e': + if (strcmp("ad", s + 2) == 0) + return PIDX_CIPHER_PARAM_AEAD; + break; + case 'l': + switch(s[2]) { + default: + break; + case 'g': + switch(s[3]) { + default: + break; + case '_': + if (strcmp("id_param", s + 4) == 0) + return PIDX_CIPHER_PARAM_ALGORITHM_ID_PARAMS_OLD; + break; + case 'i': + if (strcmp("d-absent", s + 4) == 0) + return PIDX_DIGEST_PARAM_ALGID_ABSENT; + break; + case 'o': + switch(s[4]) { + default: + break; + case 'r': + switch(s[5]) { + default: + break; + case 'i': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case 'h': + switch(s[8]) { + default: + break; + case 'm': + switch(s[9]) { + default: + break; + case '-': + switch(s[10]) { + default: + break; + case 'i': + switch(s[11]) { + default: + break; + case 'd': + switch(s[12]) { + default: + break; + case '-': + if (strcmp("params", s + 13) == 0) + return PIDX_ALG_PARAM_ALGORITHM_ID_PARAMS; + break; + case '\0': + return PIDX_ALG_PARAM_ALGORITHM_ID; + } + } + } + } + } + } + } + } + } + } + break; + case 'i': + if (strcmp("as", s + 3) == 0) + return PIDX_STORE_PARAM_ALIAS; + } + break; + case '\0': + return PIDX_PKEY_PARAM_EC_A; + } + break; + case 'b': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("sis-type", s + 2) == 0) + return PIDX_PKEY_PARAM_EC_CHAR2_TYPE; + break; + case 'i': + if (strcmp("ts", s + 2) == 0) + return PIDX_PKEY_PARAM_BITS; + break; + case 'l': + switch(s[2]) { + default: + break; + case 'o': + switch(s[3]) { + default: + break; + case 'c': + switch(s[4]) { + default: + break; + case 'k': + switch(s[5]) { + default: + break; + case '-': + if (strcmp("size", s + 6) == 0) + return PIDX_MAC_PARAM_BLOCK_SIZE; + break; + case '_': + if (strcmp("padding", s + 6) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_BLOCK_PADDING; + break; + case 's': + if (strcmp("ize", s + 6) == 0) + return PIDX_DIGEST_PARAM_BLOCK_SIZE; + } + } + } + } + break; + case 'u': + if (strcmp("ildinfo", s + 2) == 0) + return PIDX_PROV_PARAM_BUILDINFO; + break; + case '\0': + return PIDX_PKEY_PARAM_EC_B; + } + break; + case 'c': + switch(s[1]) { + default: + break; + case '-': + if (strcmp("rounds", s + 2) == 0) + return PIDX_MAC_PARAM_C_ROUNDS; + break; + case 'e': + if (strcmp("kalg", s + 2) == 0) + return PIDX_KDF_PARAM_CEK_ALG; + break; + case 'i': + if (strcmp("pher", s + 2) == 0) + return PIDX_ALG_PARAM_CIPHER; + break; + case 'o': + switch(s[2]) { + default: + break; + case 'f': + if (strcmp("actor", s + 3) == 0) + return PIDX_PKEY_PARAM_EC_COFACTOR; + break; + case 'n': + switch(s[3]) { + default: + break; + case 's': + if (strcmp("tant", s + 4) == 0) + return PIDX_KDF_PARAM_CONSTANT; + break; + case 't': + if (strcmp("ext-string", s + 4) == 0) + return PIDX_SIGNATURE_PARAM_CONTEXT_STRING; + } + } + break; + case 't': + switch(s[2]) { + default: + break; + case 's': + switch(s[3]) { + default: + break; + case '_': + if (strcmp("mode", s + 4) == 0) + return PIDX_CIPHER_PARAM_CTS_MODE; + break; + case '\0': + return PIDX_CIPHER_PARAM_CTS; + } + } + break; + case 'u': + switch(s[2]) { + default: + break; + case 's': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case 'o': + switch(s[5]) { + default: + break; + case 'm': + switch(s[6]) { + default: + break; + case '-': + if (strcmp("iv", s + 7) == 0) + return PIDX_CIPHER_PARAM_CUSTOM_IV; + break; + case '\0': + return PIDX_MAC_PARAM_CUSTOM; + } + } + } + } + } + } + break; + case 'd': + switch(s[1]) { + default: + break; + case '-': + if (strcmp("rounds", s + 2) == 0) + return PIDX_MAC_PARAM_D_ROUNDS; + break; + case 'a': + switch(s[2]) { + default: + break; + case 't': + switch(s[3]) { + default: + break; + case 'a': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 's': + if (strcmp("tructure", s + 6) == 0) + return PIDX_OBJECT_PARAM_DATA_STRUCTURE; + break; + case 't': + if (strcmp("ype", s + 6) == 0) + return PIDX_OBJECT_PARAM_DATA_TYPE; + } + break; + case '\0': + return PIDX_OBJECT_PARAM_DATA; + } + } + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'c': + switch(s[3]) { + default: + break; + case 'o': + if (strcmp("ded-from-explicit", s + 4) == 0) + return PIDX_PKEY_PARAM_EC_DECODED_FROM_EXPLICIT_PARAMS; + break; + case 'r': + if (strcmp("ypt-only", s + 4) == 0) + return PIDX_CIPHER_PARAM_DECRYPT_ONLY; + } + break; + case 'f': + if (strcmp("ault-digest", s + 3) == 0) + return PIDX_PKEY_PARAM_DEFAULT_DIGEST; + break; + case 's': + if (strcmp("c", s + 3) == 0) + return PIDX_OBJECT_PARAM_DESC; + break; + case 't': + if (strcmp("erministic", s + 3) == 0) + return PIDX_SIGNATURE_PARAM_DETERMINISTIC; + } + break; + case 'h': + if (strcmp("kem-ikm", s + 2) == 0) + return PIDX_PKEY_PARAM_DHKEM_IKM; + break; + case 'i': + switch(s[2]) { + default: + break; + case 'g': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case 's': + switch(s[5]) { + default: + break; + case 't': + switch(s[6]) { + default: + break; + case '-': + switch(s[7]) { + default: + break; + case 'c': + if (strcmp("heck", s + 8) == 0) + return PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK; + break; + case 'n': + if (strcmp("oinit", s + 8) == 0) + return PIDX_MAC_PARAM_DIGEST_NOINIT; + break; + case 'o': + if (strcmp("neshot", s + 8) == 0) + return PIDX_MAC_PARAM_DIGEST_ONESHOT; + break; + case 'p': + if (strcmp("rops", s + 8) == 0) + return PIDX_ASYM_CIPHER_PARAM_OAEP_DIGEST_PROPS; + break; + case 's': + if (strcmp("ize", s + 8) == 0) + return PIDX_PKEY_PARAM_DIGEST_SIZE; + } + break; + case '\0': + return PIDX_STORE_PARAM_DIGEST; + } + } + } + } + break; + case 's': + if (strcmp("tid", s + 3) == 0) + return PIDX_PKEY_PARAM_DIST_ID; + } + break; + case 'r': + if (strcmp("bg-no-trunc-md", s + 2) == 0) + return PIDX_PROV_PARAM_DRBG_TRUNC_DIGEST; + break; + case 's': + if (strcmp("a-sign-disabled", s + 2) == 0) + return PIDX_PROV_PARAM_DSA_SIGN_DISABLED; + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_D; + } + break; + case 'e': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("rly_clean", s + 2) == 0) + return PIDX_KDF_PARAM_EARLY_CLEAN; + break; + case 'c': + switch(s[2]) { + default: + break; + case 'd': + switch(s[3]) { + default: + break; + case 'h': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'c': + switch(s[6]) { + default: + break; + case 'o': + switch(s[7]) { + default: + break; + case 'f': + switch(s[8]) { + default: + break; + case 'a': + switch(s[9]) { + default: + break; + case 'c': + switch(s[10]) { + default: + break; + case 't': + switch(s[11]) { + default: + break; + case 'o': + switch(s[12]) { + default: + break; + case 'r': + switch(s[13]) { + default: + break; + case '-': + switch(s[14]) { + default: + break; + case 'c': + if (strcmp("heck", s + 15) == 0) + return PIDX_PROV_PARAM_ECDH_COFACTOR_CHECK; + break; + case 'm': + if (strcmp("ode", s + 15) == 0) + return PIDX_EXCHANGE_PARAM_EC_ECDH_COFACTOR_MODE; + } + } + } + } + } + } + } + } + } + } + } + } + } + break; + case 'm': + if (strcmp("s_check", s + 2) == 0) + return PIDX_KDF_PARAM_FIPS_EMS_CHECK; + break; + case 'n': + switch(s[2]) { + default: + break; + case 'c': + switch(s[3]) { + default: + break; + case 'o': + switch(s[4]) { + default: + break; + case 'd': + switch(s[5]) { + default: + break; + case 'e': + if (strcmp("d-pub-key", s + 6) == 0) + return PIDX_PKEY_PARAM_ENCODED_PUBLIC_KEY; + break; + case 'i': + if (strcmp("ng", s + 6) == 0) + return PIDX_PKEY_PARAM_EC_ENCODING; + } + } + break; + case 'r': + switch(s[4]) { + default: + break; + case 'y': + switch(s[5]) { + default: + break; + case 'p': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case '-': + switch(s[8]) { + default: + break; + case 'c': + if (strcmp("heck", s + 9) == 0) + return PIDX_CIPHER_PARAM_FIPS_ENCRYPT_CHECK; + break; + case 'l': + if (strcmp("evel", s + 9) == 0) + return PIDX_ENCODER_PARAM_ENCRYPT_LEVEL; + } + } + } + } + } + } + break; + case 'g': + if (strcmp("ine", s + 3) == 0) + return PIDX_ALG_PARAM_ENGINE; + break; + case 't': + switch(s[3]) { + default: + break; + case 'r': + switch(s[4]) { + default: + break; + case 'o': + switch(s[5]) { + default: + break; + case 'p': + switch(s[6]) { + default: + break; + case 'y': + switch(s[7]) { + default: + break; + case '_': + if (strcmp("required", s + 8) == 0) + return PIDX_DRBG_PARAM_ENTROPY_REQUIRED; + break; + case '\0': + return PIDX_KDF_PARAM_HMACDRBG_ENTROPY; + } + } + } + } + } + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_E; + break; + case 'x': + if (strcmp("pect", s + 2) == 0) + return PIDX_STORE_PARAM_EXPECT; + } + break; + case 'f': + switch(s[1]) { + default: + break; + case 'i': + switch(s[2]) { + default: + break; + case 'e': + if (strcmp("ld-type", s + 3) == 0) + return PIDX_PKEY_PARAM_EC_FIELD_TYPE; + break; + case 'n': + if (strcmp("gerprint", s + 3) == 0) + return PIDX_STORE_PARAM_FINGERPRINT; + break; + case 'p': + if (strcmp("s-indicator", s + 3) == 0) + return PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR; + } + } + break; + case 'g': + switch(s[1]) { + default: + break; + case 'e': + switch(s[2]) { + default: + break; + case 'n': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case 'r': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case 'e': + switch(s[8]) { + default: + break; + case '\0': + return PIDX_RAND_PARAM_GENERATE; + } + break; + case 'o': + if (strcmp("r", s + 8) == 0) + return PIDX_PKEY_PARAM_EC_GENERATOR; + } + } + } + } + } + } + break; + case 'i': + if (strcmp("ndex", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_GINDEX; + break; + case 'r': + switch(s[2]) { + default: + break; + case 'o': + switch(s[3]) { + default: + break; + case 'u': + switch(s[4]) { + default: + break; + case 'p': + switch(s[5]) { + default: + break; + case '-': + if (strcmp("check", s + 6) == 0) + return PIDX_PKEY_PARAM_EC_GROUP_CHECK_TYPE; + break; + case '\0': + return PIDX_PKEY_PARAM_GROUP_NAME; + } + } + } + } + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_G; + } + break; + case 'h': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("s-randkey", s + 2) == 0) + return PIDX_CIPHER_PARAM_HAS_RAND_KEY; + break; + case 'i': + if (strcmp("ndex", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_H; + break; + case 'k': + switch(s[2]) { + default: + break; + case 'd': + switch(s[3]) { + default: + break; + case 'f': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 6) == 0) + return PIDX_PROV_PARAM_HKDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 6) == 0) + return PIDX_PROV_PARAM_HKDF_KEY_CHECK; + } + } + } + } + break; + case 'm': + if (strcmp("ac-key-check", s + 2) == 0) + return PIDX_PROV_PARAM_HMAC_KEY_CHECK; + break; + case 's': + if (strcmp("_padding", s + 2) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_HS_PADDING; + } + break; + case 'i': + switch(s[1]) { + default: + break; + case 'd': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_KDF_PARAM_PKCS12_ID; + } + break; + case 'k': + if (strcmp("me", s + 2) == 0) + return PIDX_KEM_PARAM_IKME; + break; + case 'm': + if (strcmp("plicit-rejection", s + 2) == 0) + return PIDX_PKEY_PARAM_IMPLICIT_REJECTION; + break; + case 'n': + switch(s[2]) { + default: + break; + case 'c': + if (strcmp("lude-public", s + 3) == 0) + return PIDX_PKEY_PARAM_EC_INCLUDE_PUBLIC; + break; + case 'f': + if (strcmp("o", s + 3) == 0) + return PIDX_PASSPHRASE_PARAM_INFO; + break; + case 'p': + if (strcmp("ut-type", s + 3) == 0) + return PIDX_STORE_PARAM_INPUT_TYPE; + break; + case 's': + if (strcmp("tance", s + 3) == 0) + return PIDX_SIGNATURE_PARAM_INSTANCE; + } + break; + case 't': + switch(s[2]) { + default: + break; + case 'e': + switch(s[3]) { + default: + break; + case 'r': + switch(s[4]) { + default: + break; + case 'a': + if (strcmp("tion", s + 5) == 0) + return PIDX_GEN_PARAM_ITERATION; + break; + case '\0': + return PIDX_KDF_PARAM_ITER; + } + } + } + break; + case 'v': + switch(s[2]) { + default: + break; + case '-': + if (strcmp("generated", s + 3) == 0) + return PIDX_CIPHER_PARAM_AEAD_IV_GENERATED; + break; + case 'l': + if (strcmp("en", s + 3) == 0) + return PIDX_CIPHER_PARAM_IVLEN; + break; + case '\0': + return PIDX_MAC_PARAM_IV; + } + } + break; + case 'j': + switch(s[1]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_COFACTOR; + } + break; + case 'k': + switch(s[1]) { + default: + break; + case '1': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_PP_K1; + } + break; + case '2': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_PP_K2; + } + break; + case '3': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_PP_K3; + } + break; + case 'a': + if (strcmp("t", s + 2) == 0) + return PIDX_SIGNATURE_PARAM_KAT; + break; + case 'b': + if (strcmp("kdf-key-check", s + 2) == 0) + return PIDX_PROV_PARAM_KBKDF_KEY_CHECK; + break; + case 'd': + switch(s[2]) { + default: + break; + case 'f': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'd': + switch(s[5]) { + default: + break; + case 'i': + switch(s[6]) { + default: + break; + case 'g': + switch(s[7]) { + default: + break; + case 'e': + switch(s[8]) { + default: + break; + case 's': + switch(s[9]) { + default: + break; + case 't': + switch(s[10]) { + default: + break; + case '-': + if (strcmp("props", s + 11) == 0) + return PIDX_EXCHANGE_PARAM_KDF_DIGEST_PROPS; + break; + case '\0': + return PIDX_EXCHANGE_PARAM_KDF_DIGEST; + } + } + } + } + } + } + break; + case 'o': + if (strcmp("utlen", s + 5) == 0) + return PIDX_EXCHANGE_PARAM_KDF_OUTLEN; + break; + case 't': + if (strcmp("ype", s + 5) == 0) + return PIDX_EXCHANGE_PARAM_KDF_TYPE; + break; + case 'u': + if (strcmp("km", s + 5) == 0) + return PIDX_EXCHANGE_PARAM_KDF_UKM; + } + } + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'y': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'c': + if (strcmp("heck", s + 5) == 0) + return PIDX_PKEY_PARAM_FIPS_KEY_CHECK; + break; + case 'l': + if (strcmp("ength", s + 5) == 0) + return PIDX_SKEY_PARAM_KEY_LENGTH; + } + break; + case 'b': + if (strcmp("its", s + 4) == 0) + return PIDX_CIPHER_PARAM_RC2_KEYBITS; + break; + case 'l': + if (strcmp("en", s + 4) == 0) + return PIDX_CIPHER_PARAM_KEYLEN; + break; + case '\0': + return PIDX_MAC_PARAM_KEY; + } + } + break; + case 'm': + if (strcmp("ac-key-check", s + 2) == 0) + return PIDX_PROV_PARAM_KMAC_KEY_CHECK; + } + break; + case 'l': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'b': + if (strcmp("el", s + 3) == 0) + return PIDX_KDF_PARAM_LABEL; + break; + case 'n': + if (strcmp("es", s + 3) == 0) + return PIDX_KDF_PARAM_ARGON2_LANES; + } + } + break; + case 'm': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'c': + switch(s[3]) { + default: + break; + case 'k': + if (strcmp("ey", s + 4) == 0) + return PIDX_CIPHER_PARAM_AEAD_MAC_KEY; + break; + case 'l': + if (strcmp("en", s + 4) == 0) + return PIDX_KDF_PARAM_MAC_SIZE; + break; + case '\0': + return PIDX_ALG_PARAM_MAC; + } + break; + case 'n': + if (strcmp("datory-digest", s + 3) == 0) + return PIDX_PKEY_PARAM_MANDATORY_DIGEST; + break; + case 'x': + switch(s[3]) { + default: + break; + case '-': + if (strcmp("size", s + 4) == 0) + return PIDX_PKEY_PARAM_MAX_SIZE; + break; + case '_': + switch(s[4]) { + default: + break; + case 'a': + if (strcmp("dinlen", s + 5) == 0) + return PIDX_DRBG_PARAM_MAX_ADINLEN; + break; + case 'e': + switch(s[5]) { + default: + break; + case 'a': + if (strcmp("rly_data", s + 6) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_MAX_EARLY_DATA; + break; + case 'n': + if (strcmp("tropylen", s + 6) == 0) + return PIDX_DRBG_PARAM_MAX_ENTROPYLEN; + } + break; + case 'f': + if (strcmp("rag_len", s + 5) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_MAX_FRAG_LEN; + break; + case 'n': + if (strcmp("oncelen", s + 5) == 0) + return PIDX_DRBG_PARAM_MAX_NONCELEN; + break; + case 'p': + if (strcmp("erslen", s + 5) == 0) + return PIDX_DRBG_PARAM_MAX_PERSLEN; + break; + case 'r': + if (strcmp("equest", s + 5) == 0) + return PIDX_RAND_PARAM_MAX_REQUEST; + } + break; + case 'i': + if (strcmp("um_length", s + 4) == 0) + return PIDX_DRBG_PARAM_MAX_LENGTH; + break; + case 'm': + if (strcmp("em_bytes", s + 4) == 0) + return PIDX_KDF_PARAM_SCRYPT_MAXMEM; + } + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'm': + if (strcmp("cost", s + 3) == 0) + return PIDX_KDF_PARAM_ARGON2_MEMCOST; + break; + case 's': + if (strcmp("sage-encoding", s + 3) == 0) + return PIDX_SIGNATURE_PARAM_MESSAGE_ENCODING; + } + break; + case 'g': + switch(s[2]) { + default: + break; + case 'f': + switch(s[3]) { + default: + break; + case '1': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'd': + if (strcmp("igest", s + 6) == 0) + return PIDX_PKEY_PARAM_MGF1_DIGEST; + break; + case 'p': + if (strcmp("roperties", s + 6) == 0) + return PIDX_PKEY_PARAM_MGF1_PROPERTIES; + } + } + break; + case '\0': + return PIDX_PKEY_PARAM_MASKGENFUNC; + } + } + break; + case 'i': + switch(s[2]) { + default: + break; + case 'c': + if (strcmp("alg", s + 3) == 0) + return PIDX_DIGEST_PARAM_MICALG; + break; + case 'n': + switch(s[3]) { + default: + break; + case '_': + switch(s[4]) { + default: + break; + case 'e': + if (strcmp("ntropylen", s + 5) == 0) + return PIDX_DRBG_PARAM_MIN_ENTROPYLEN; + break; + case 'n': + if (strcmp("oncelen", s + 5) == 0) + return PIDX_DRBG_PARAM_MIN_NONCELEN; + } + break; + case 'i': + if (strcmp("um_length", s + 4) == 0) + return PIDX_DRBG_PARAM_MIN_LENGTH; + } + } + break; + case 'l': + switch(s[2]) { + default: + break; + case '-': + switch(s[3]) { + default: + break; + case 'd': + switch(s[4]) { + default: + break; + case 's': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case '.': + switch(s[7]) { + default: + break; + case 'i': + if (strcmp("nput_formats", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_DSA_INPUT_FORMATS; + break; + case 'o': + if (strcmp("utput_formats", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_DSA_OUTPUT_FORMATS; + break; + case 'p': + if (strcmp("refer_seed", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_DSA_PREFER_SEED; + break; + case 'r': + if (strcmp("etain_seed", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_DSA_RETAIN_SEED; + } + } + } + } + break; + case 'k': + switch(s[4]) { + default: + break; + case 'e': + switch(s[5]) { + default: + break; + case 'm': + switch(s[6]) { + default: + break; + case '.': + switch(s[7]) { + default: + break; + case 'i': + switch(s[8]) { + default: + break; + case 'm': + if (strcmp("port_pct_type", s + 9) == 0) + return PIDX_PKEY_PARAM_ML_KEM_IMPORT_PCT_TYPE; + break; + case 'n': + if (strcmp("put_formats", s + 9) == 0) + return PIDX_PKEY_PARAM_ML_KEM_INPUT_FORMATS; + } + break; + case 'o': + if (strcmp("utput_formats", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_KEM_OUTPUT_FORMATS; + break; + case 'p': + if (strcmp("refer_seed", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_KEM_PREFER_SEED; + break; + case 'r': + if (strcmp("etain_seed", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_KEM_RETAIN_SEED; + } + } + } + } + } + } + break; + case 'o': + switch(s[2]) { + default: + break; + case 'd': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case '\0': + return PIDX_LIBSSL_RECORD_LAYER_PARAM_MODE; + } + break; + case 'u': + if (strcmp("le-filename", s + 4) == 0) + return PIDX_PROV_PARAM_CORE_MODULE_FILENAME; + } + } + break; + case 'u': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_SIGNATURE_PARAM_MU; + } + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_M; + } + break; + case 'n': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("me", s + 2) == 0) + return PIDX_STORE_PARAM_ISSUER; + break; + case 'o': + switch(s[2]) { + default: + break; + case '-': + if (strcmp("short-mac", s + 3) == 0) + return PIDX_PROV_PARAM_NO_SHORT_MAC; + break; + case 'n': + switch(s[3]) { + default: + break; + case 'c': + switch(s[4]) { + default: + break; + case 'e': + switch(s[5]) { + default: + break; + case '-': + if (strcmp("type", s + 6) == 0) + return PIDX_SIGNATURE_PARAM_NONCE_TYPE; + break; + case '\0': + return PIDX_KDF_PARAM_HMACDRBG_NONCE; + } + } + } + } + break; + case 'u': + if (strcmp("m", s + 2) == 0) + return PIDX_CIPHER_PARAM_NUM; + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_N; + } + break; + case 'o': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("ep-label", s + 2) == 0) + return PIDX_ASYM_CIPHER_PARAM_OAEP_LABEL; + break; + case 'p': + switch(s[2]) { + default: + break; + case 'e': + switch(s[3]) { + default: + break; + case 'n': + if (strcmp("ssl-version", s + 4) == 0) + return PIDX_PROV_PARAM_CORE_VERSION; + break; + case 'r': + if (strcmp("ation", s + 4) == 0) + return PIDX_KEM_PARAM_OPERATION; + } + break; + case 't': + if (strcmp("ions", s + 3) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_OPTIONS; + } + break; + case 'r': + if (strcmp("der", s + 2) == 0) + return PIDX_PKEY_PARAM_EC_ORDER; + } + break; + case 'p': + switch(s[1]) { + default: + break; + case '1': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_P1; + } + break; + case '2': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_P2; + } + break; + case 'a': + switch(s[2]) { + default: + break; + case 'd': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'm': + if (strcmp("ode", s + 5) == 0) + return PIDX_PKEY_PARAM_PAD_MODE; + break; + case 't': + if (strcmp("ype", s + 5) == 0) + return PIDX_DIGEST_PARAM_PAD_TYPE; + } + break; + case 'd': + if (strcmp("ing", s + 4) == 0) + return PIDX_CIPHER_PARAM_PADDING; + break; + case '\0': + return PIDX_EXCHANGE_PARAM_PAD; + } + break; + case 'r': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case 'y': + switch(s[5]) { + default: + break; + case 'u': + if (strcmp("-info", s + 6) == 0) + return PIDX_KDF_PARAM_X942_PARTYUINFO; + break; + case 'v': + if (strcmp("-info", s + 6) == 0) + return PIDX_KDF_PARAM_X942_PARTYVINFO; + } + } + } + break; + case 's': + if (strcmp("s", s + 3) == 0) + return PIDX_KDF_PARAM_PASSWORD; + } + break; + case 'b': + switch(s[2]) { + default: + break; + case 'i': + if (strcmp("ts", s + 3) == 0) + return PIDX_PKEY_PARAM_FFC_PBITS; + break; + case 'k': + if (strcmp("df2-lower-bound-check", s + 3) == 0) + return PIDX_PROV_PARAM_PBKDF2_LOWER_BOUND_CHECK; + } + break; + case 'c': + if (strcmp("ounter", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_PCOUNTER; + break; + case 'i': + if (strcmp("peline-tag", s + 2) == 0) + return PIDX_CIPHER_PARAM_PIPELINE_AEAD_TAG; + break; + case 'k': + if (strcmp("cs5", s + 2) == 0) + return PIDX_KDF_PARAM_PKCS5; + break; + case 'o': + switch(s[2]) { + default: + break; + case 'i': + if (strcmp("nt-format", s + 3) == 0) + return PIDX_PKEY_PARAM_EC_POINT_CONVERSION_FORMAT; + break; + case 't': + if (strcmp("ential", s + 3) == 0) + return PIDX_GEN_PARAM_POTENTIAL; + } + break; + case 'r': + switch(s[2]) { + default: + break; + case 'e': + switch(s[3]) { + default: + break; + case 'd': + if (strcmp("iction_resistance", s + 4) == 0) + return PIDX_DRBG_PARAM_PREDICTION_RESISTANCE; + break; + case 'f': + if (strcmp("ix", s + 4) == 0) + return PIDX_KDF_PARAM_PREFIX; + } + break; + case 'i': + switch(s[3]) { + default: + break; + case 'm': + if (strcmp("es", s + 4) == 0) + return PIDX_PKEY_PARAM_RSA_PRIMES; + break; + case 'v': + switch(s[4]) { + default: + break; + case '_': + if (strcmp("len", s + 5) == 0) + return PIDX_PKEY_PARAM_DH_PRIV_LEN; + break; + case '\0': + return PIDX_PKEY_PARAM_PRIV_KEY; + } + } + break; + case 'o': + switch(s[3]) { + default: + break; + case 'p': + if (strcmp("erties", s + 4) == 0) + return PIDX_STORE_PARAM_PROPERTIES; + break; + case 'v': + if (strcmp("ider-name", s + 4) == 0) + return PIDX_PROV_PARAM_CORE_PROV_NAME; + } + } + break; + case 'u': + if (strcmp("b", s + 2) == 0) + return PIDX_PKEY_PARAM_PUB_KEY; + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_P; + } + break; + case 'q': + switch(s[1]) { + default: + break; + case '1': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_Q1; + } + break; + case '2': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_Q2; + } + break; + case 'b': + if (strcmp("its", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_QBITS; + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_Q; + break; + case 'x': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_PUB_X; + } + break; + case 'y': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_PUB_Y; + } + } + break; + case 'r': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'n': + switch(s[3]) { + default: + break; + case 'd': + switch(s[4]) { + default: + break; + case 'k': + if (strcmp("ey", s + 5) == 0) + return PIDX_CIPHER_PARAM_RANDOM_KEY; + break; + case 'o': + if (strcmp("m_data", s + 5) == 0) + return PIDX_DRBG_PARAM_RANDOM_DATA; + } + } + break; + case 'w': + if (strcmp("-bytes", s + 3) == 0) + return PIDX_SKEY_PARAM_RAW_BYTES; + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'a': + switch(s[3]) { + default: + break; + case 'd': + switch(s[4]) { + default: + break; + case '_': + switch(s[5]) { + default: + break; + case 'a': + if (strcmp("head", s + 6) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_READ_AHEAD; + break; + case 'b': + if (strcmp("uffer_len", s + 6) == 0) + return PIDX_LIBSSL_RECORD_LAYER_READ_BUFFER_LEN; + } + } + } + break; + case 'f': + if (strcmp("erence", s + 3) == 0) + return PIDX_OBJECT_PARAM_REFERENCE; + break; + case 's': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case 'e': + switch(s[5]) { + default: + break; + case 'd': + switch(s[6]) { + default: + break; + case '_': + switch(s[7]) { + default: + break; + case 'c': + if (strcmp("ounter", s + 8) == 0) + return PIDX_DRBG_PARAM_RESEED_COUNTER; + break; + case 'r': + if (strcmp("equests", s + 8) == 0) + return PIDX_DRBG_PARAM_RESEED_REQUESTS; + break; + case 't': + switch(s[8]) { + default: + break; + case 'i': + switch(s[9]) { + default: + break; + case 'm': + switch(s[10]) { + default: + break; + case 'e': + switch(s[11]) { + default: + break; + case '_': + if (strcmp("interval", s + 12) == 0) + return PIDX_DRBG_PARAM_RESEED_TIME_INTERVAL; + break; + case '\0': + return PIDX_DRBG_PARAM_RESEED_TIME; + } + } + } + } + } + } + } + } + } + } + break; + case 'o': + if (strcmp("unds", s + 2) == 0) + return PIDX_CIPHER_PARAM_ROUNDS; + break; + case 's': + switch(s[2]) { + default: + break; + case 'a': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'c': + switch(s[5]) { + default: + break; + case 'o': + switch(s[6]) { + default: + break; + case 'e': + switch(s[7]) { + default: + break; + case 'f': + switch(s[8]) { + default: + break; + case 'f': + switch(s[9]) { + default: + break; + case 'i': + switch(s[10]) { + default: + break; + case 'c': + switch(s[11]) { + default: + break; + case 'i': + switch(s[12]) { + default: + break; + case 'e': + switch(s[13]) { + default: + break; + case 'n': + switch(s[14]) { + default: + break; + case 't': + switch(s[15]) { + default: + break; + case '1': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT1; + } + break; + case '2': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT2; + } + break; + case '3': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT3; + } + break; + case '4': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT4; + } + break; + case '5': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT5; + } + break; + case '6': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT6; + } + break; + case '7': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT7; + } + break; + case '8': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT8; + } + break; + case '9': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT9; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT; + } + } + } + } + } + } + } + } + } + } + } + break; + case 'd': + if (strcmp("erive-from-pq", s + 5) == 0) + return PIDX_PKEY_PARAM_RSA_DERIVE_FROM_PQ; + break; + case 'e': + switch(s[5]) { + default: + break; + case 'x': + switch(s[6]) { + default: + break; + case 'p': + switch(s[7]) { + default: + break; + case 'o': + switch(s[8]) { + default: + break; + case 'n': + switch(s[9]) { + default: + break; + case 'e': + switch(s[10]) { + default: + break; + case 'n': + switch(s[11]) { + default: + break; + case 't': + switch(s[12]) { + default: + break; + case '1': + switch(s[13]) { + default: + break; + case '0': + switch(s[14]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT10; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT1; + } + break; + case '2': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT2; + } + break; + case '3': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT3; + } + break; + case '4': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT4; + } + break; + case '5': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT5; + } + break; + case '6': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT6; + } + break; + case '7': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT7; + } + break; + case '8': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT8; + } + break; + case '9': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT9; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT; + } + } + } + } + } + } + } + } + break; + case 'f': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case 'c': + switch(s[7]) { + default: + break; + case 't': + switch(s[8]) { + default: + break; + case 'o': + switch(s[9]) { + default: + break; + case 'r': + switch(s[10]) { + default: + break; + case '1': + switch(s[11]) { + default: + break; + case '0': + switch(s[12]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR10; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR1; + } + break; + case '2': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR2; + } + break; + case '3': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR3; + } + break; + case '4': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR4; + } + break; + case '5': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR5; + } + break; + case '6': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR6; + } + break; + case '7': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR7; + } + break; + case '8': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR8; + } + break; + case '9': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR9; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR; + } + } + } + } + } + } + break; + case 'p': + switch(s[5]) { + default: + break; + case 'k': + if (strcmp("cs15-pad-disabled", s + 6) == 0) + return PIDX_PROV_PARAM_RSA_PKCS15_PAD_DISABLED; + break; + case 's': + if (strcmp("s-saltlen-check", s + 6) == 0) + return PIDX_SIGNATURE_PARAM_FIPS_RSA_PSS_SALTLEN_CHECK; + } + break; + case 's': + if (strcmp("ign-x931-pad-disabled", s + 5) == 0) + return PIDX_PROV_PARAM_RSA_SIGN_X931_PAD_DISABLED; + } + } + } + break; + case '\0': + return PIDX_KDF_PARAM_SCRYPT_R; + } + break; + case 's': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'f': + if (strcmp("eprime-generator", s + 3) == 0) + return PIDX_PKEY_PARAM_DH_GENERATOR; + break; + case 'l': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case 'l': + if (strcmp("en", s + 5) == 0) + return PIDX_SIGNATURE_PARAM_PSS_SALTLEN; + break; + case '\0': + return PIDX_MAC_PARAM_SALT; + } + } + break; + case 'v': + if (strcmp("e-parameters", s + 3) == 0) + return PIDX_ENCODER_PARAM_SAVE_PARAMETERS; + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'c': + switch(s[3]) { + default: + break; + case 'r': + if (strcmp("et", s + 4) == 0) + return PIDX_KDF_PARAM_SECRET; + break; + case 'u': + switch(s[4]) { + default: + break; + case 'r': + switch(s[5]) { + default: + break; + case 'i': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case 'y': + switch(s[8]) { + default: + break; + case '-': + switch(s[9]) { + default: + break; + case 'b': + if (strcmp("its", s + 10) == 0) + return PIDX_PKEY_PARAM_SECURITY_BITS; + break; + case 'c': + if (strcmp("hecks", s + 10) == 0) + return PIDX_PROV_PARAM_SECURITY_CHECKS; + } + } + } + } + } + } + } + break; + case 'e': + if (strcmp("d", s + 3) == 0) + return PIDX_PKEY_PARAM_SLH_DSA_SEED; + break; + case 'r': + if (strcmp("ial", s + 3) == 0) + return PIDX_STORE_PARAM_SERIAL; + break; + case 's': + if (strcmp("sion_id", s + 3) == 0) + return PIDX_KDF_PARAM_SSHKDF_SESSION_ID; + } + break; + case 'i': + switch(s[2]) { + default: + break; + case 'g': + switch(s[3]) { + default: + break; + case 'n': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'c': + if (strcmp("heck", s + 6) == 0) + return PIDX_PKEY_PARAM_FIPS_SIGN_CHECK; + break; + case 'x': + if (strcmp("931-pad-check", s + 6) == 0) + return PIDX_SIGNATURE_PARAM_FIPS_SIGN_X931_PAD_CHECK; + } + break; + case 'a': + switch(s[5]) { + default: + break; + case 't': + switch(s[6]) { + default: + break; + case 'u': + switch(s[7]) { + default: + break; + case 'r': + switch(s[8]) { + default: + break; + case 'e': + switch(s[9]) { + default: + break; + case '-': + if (strcmp("digest-check", s + 10) == 0) + return PIDX_PROV_PARAM_SIGNATURE_DIGEST_CHECK; + break; + case '\0': + return PIDX_SIGNATURE_PARAM_SIGNATURE; + } + } + } + } + } + } + } + break; + case 'z': + if (strcmp("e", s + 3) == 0) + return PIDX_MAC_PARAM_SIZE; + } + break; + case 'p': + if (strcmp("eed", s + 2) == 0) + return PIDX_CIPHER_PARAM_SPEED; + break; + case 's': + switch(s[2]) { + default: + break; + case 'h': + switch(s[3]) { + default: + break; + case 'k': + switch(s[4]) { + default: + break; + case 'd': + switch(s[5]) { + default: + break; + case 'f': + switch(s[6]) { + default: + break; + case '-': + switch(s[7]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 8) == 0) + return PIDX_PROV_PARAM_SSHKDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 8) == 0) + return PIDX_PROV_PARAM_SSHKDF_KEY_CHECK; + } + } + } + } + } + break; + case 'k': + switch(s[3]) { + default: + break; + case 'd': + switch(s[4]) { + default: + break; + case 'f': + switch(s[5]) { + default: + break; + case '-': + switch(s[6]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 7) == 0) + return PIDX_PROV_PARAM_SSKDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 7) == 0) + return PIDX_PROV_PARAM_SSKDF_KEY_CHECK; + } + } + } + } + break; + case 'l': + if (strcmp("3-ms", s + 3) == 0) + return PIDX_DIGEST_PARAM_SSL3_MS; + } + break; + case 't': + switch(s[2]) { + default: + break; + case '-': + switch(s[3]) { + default: + break; + case 'd': + if (strcmp("esc", s + 4) == 0) + return PIDX_PROV_PARAM_SELF_TEST_DESC; + break; + case 'p': + if (strcmp("hase", s + 4) == 0) + return PIDX_PROV_PARAM_SELF_TEST_PHASE; + break; + case 't': + if (strcmp("ype", s + 4) == 0) + return PIDX_PROV_PARAM_SELF_TEST_TYPE; + } + break; + case 'a': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case 'e': + switch(s[5]) { + default: + break; + case '\0': + return PIDX_RAND_PARAM_STATE; + } + break; + case 'u': + if (strcmp("s", s + 5) == 0) + return PIDX_PROV_PARAM_STATUS; + } + } + break; + case 'r': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case 'a': + if (strcmp("m_mac", s + 5) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_STREAM_MAC; + break; + case 'n': + if (strcmp("gth", s + 5) == 0) + return PIDX_RAND_PARAM_STRENGTH; + } + } + } + break; + case 'u': + switch(s[2]) { + default: + break; + case 'b': + if (strcmp("ject", s + 3) == 0) + return PIDX_STORE_PARAM_SUBJECT; + break; + case 'p': + switch(s[3]) { + default: + break; + case 'p': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'p': + switch(s[6]) { + default: + break; + case 'r': + if (strcmp("ivinfo", s + 7) == 0) + return PIDX_KDF_PARAM_X942_SUPP_PRIVINFO; + break; + case 'u': + if (strcmp("binfo", s + 7) == 0) + return PIDX_KDF_PARAM_X942_SUPP_PUBINFO; + } + } + } + } + } + } + break; + case 't': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'g': + switch(s[3]) { + default: + break; + case 'l': + if (strcmp("en", s + 4) == 0) + return PIDX_CIPHER_PARAM_AEAD_TAGLEN; + break; + case '\0': + return PIDX_CIPHER_PARAM_AEAD_TAG; + } + } + break; + case 'd': + if (strcmp("es-encrypt-disabled", s + 2) == 0) + return PIDX_PROV_PARAM_TDES_ENCRYPT_DISABLED; + break; + case 'e': + switch(s[2]) { + default: + break; + case 's': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case '-': + if (strcmp("entropy", s + 5) == 0) + return PIDX_SIGNATURE_PARAM_TEST_ENTROPY; + break; + case '_': + switch(s[5]) { + default: + break; + case 'e': + if (strcmp("ntropy", s + 6) == 0) + return PIDX_RAND_PARAM_TEST_ENTROPY; + break; + case 'n': + if (strcmp("once", s + 6) == 0) + return PIDX_RAND_PARAM_TEST_NONCE; + } + } + } + } + break; + case 'h': + if (strcmp("reads", s + 2) == 0) + return PIDX_KDF_PARAM_THREADS; + break; + case 'l': + switch(s[2]) { + default: + break; + case 's': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'c': + if (strcmp("lient-version", s + 5) == 0) + return PIDX_ASYM_CIPHER_PARAM_TLS_CLIENT_VERSION; + break; + case 'd': + if (strcmp("ata-size", s + 5) == 0) + return PIDX_MAC_PARAM_TLS_DATA_SIZE; + break; + case 'g': + switch(s[5]) { + default: + break; + case 'r': + switch(s[6]) { + default: + break; + case 'o': + switch(s[7]) { + default: + break; + case 'u': + switch(s[8]) { + default: + break; + case 'p': + switch(s[9]) { + default: + break; + case '-': + switch(s[10]) { + default: + break; + case 'a': + if (strcmp("lg", s + 11) == 0) + return PIDX_CAPABILITY_TLS_GROUP_ALG; + break; + case 'i': + switch(s[11]) { + default: + break; + case 'd': + switch(s[12]) { + default: + break; + case '\0': + return PIDX_CAPABILITY_TLS_GROUP_ID; + } + break; + case 's': + if (strcmp("-kem", s + 12) == 0) + return PIDX_CAPABILITY_TLS_GROUP_IS_KEM; + } + break; + case 'n': + switch(s[11]) { + default: + break; + case 'a': + switch(s[12]) { + default: + break; + case 'm': + switch(s[13]) { + default: + break; + case 'e': + switch(s[14]) { + default: + break; + case '-': + if (strcmp("internal", s + 15) == 0) + return PIDX_CAPABILITY_TLS_GROUP_NAME_INTERNAL; + break; + case '\0': + return PIDX_CAPABILITY_TLS_GROUP_NAME; + } + } + } + } + break; + case 's': + if (strcmp("ec-bits", s + 11) == 0) + return PIDX_CAPABILITY_TLS_GROUP_SECURITY_BITS; + } + } + } + } + } + } + break; + case 'm': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case 'c': + switch(s[7]) { + default: + break; + case '-': + if (strcmp("size", s + 8) == 0) + return PIDX_CIPHER_PARAM_TLS_MAC_SIZE; + break; + case '\0': + return PIDX_CIPHER_PARAM_TLS_MAC; + } + break; + case 'x': + switch(s[7]) { + default: + break; + case '-': + switch(s[8]) { + default: + break; + case 'd': + if (strcmp("tls", s + 9) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_MAX_DTLS; + break; + case 't': + if (strcmp("ls", s + 9) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_MAX_TLS; + } + } + } + break; + case 'i': + switch(s[6]) { + default: + break; + case 'n': + switch(s[7]) { + default: + break; + case '-': + switch(s[8]) { + default: + break; + case 'd': + if (strcmp("tls", s + 9) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_MIN_DTLS; + break; + case 't': + if (strcmp("ls", s + 9) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_MIN_TLS; + } + } + } + break; + case 'u': + if (strcmp("lti", s + 6) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK; + } + break; + case 'n': + if (strcmp("egotiated-version", s + 5) == 0) + return PIDX_ASYM_CIPHER_PARAM_TLS_NEGOTIATED_VERSION; + break; + case 's': + switch(s[5]) { + default: + break; + case 'i': + switch(s[6]) { + default: + break; + case 'g': + switch(s[7]) { + default: + break; + case 'a': + switch(s[8]) { + default: + break; + case 'l': + switch(s[9]) { + default: + break; + case 'g': + switch(s[10]) { + default: + break; + case '-': + switch(s[11]) { + default: + break; + case 'c': + if (strcmp("ode-point", s + 12) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_CODE_POINT; + break; + case 'h': + switch(s[12]) { + default: + break; + case 'a': + switch(s[13]) { + default: + break; + case 's': + switch(s[14]) { + default: + break; + case 'h': + switch(s[15]) { + default: + break; + case '-': + switch(s[16]) { + default: + break; + case 'n': + if (strcmp("ame", s + 17) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_HASH_NAME; + break; + case 'o': + if (strcmp("id", s + 17) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_HASH_OID; + } + } + } + } + } + break; + case 'i': + if (strcmp("ana-name", s + 12) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_IANA_NAME; + break; + case 'k': + switch(s[12]) { + default: + break; + case 'e': + switch(s[13]) { + default: + break; + case 'y': + switch(s[14]) { + default: + break; + case 't': + switch(s[15]) { + default: + break; + case 'y': + switch(s[16]) { + default: + break; + case 'p': + switch(s[17]) { + default: + break; + case 'e': + switch(s[18]) { + default: + break; + case '-': + if (strcmp("oid", s + 19) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_KEYTYPE_OID; + break; + case '\0': + return PIDX_CAPABILITY_TLS_SIGALG_KEYTYPE; + } + } + } + } + } + } + } + break; + case 'n': + if (strcmp("ame", s + 12) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_NAME; + break; + case 'o': + if (strcmp("id", s + 12) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_OID; + break; + case 's': + switch(s[12]) { + default: + break; + case 'e': + if (strcmp("c-bits", s + 13) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_SECURITY_BITS; + break; + case 'i': + switch(s[13]) { + default: + break; + case 'g': + switch(s[14]) { + default: + break; + case '-': + switch(s[15]) { + default: + break; + case 'n': + if (strcmp("ame", s + 16) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_SIG_NAME; + break; + case 'o': + if (strcmp("id", s + 16) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_SIG_OID; + } + } + } + } + } + } + } + } + } + } + } + break; + case 'v': + if (strcmp("ersion", s + 5) == 0) + return PIDX_CIPHER_PARAM_TLS_VERSION; + } + break; + case '1': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'p': + switch(s[6]) { + default: + break; + case 'r': + switch(s[7]) { + default: + break; + case 'f': + switch(s[8]) { + default: + break; + case '-': + switch(s[9]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 10) == 0) + return PIDX_PROV_PARAM_TLS1_PRF_DIGEST_CHECK; + break; + case 'e': + if (strcmp("ms-check", s + 10) == 0) + return PIDX_PROV_PARAM_TLS1_PRF_EMS_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 10) == 0) + return PIDX_PROV_PARAM_TLS1_PRF_KEY_CHECK; + } + } + } + } + } + break; + case '3': + switch(s[5]) { + default: + break; + case '-': + switch(s[6]) { + default: + break; + case 'k': + switch(s[7]) { + default: + break; + case 'd': + switch(s[8]) { + default: + break; + case 'f': + switch(s[9]) { + default: + break; + case '-': + switch(s[10]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 11) == 0) + return PIDX_PROV_PARAM_TLS13_KDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 11) == 0) + return PIDX_PROV_PARAM_TLS13_KDF_KEY_CHECK; + } + } + } + } + } + } + break; + case 'm': + switch(s[5]) { + default: + break; + case 'u': + switch(s[6]) { + default: + break; + case 'l': + switch(s[7]) { + default: + break; + case 't': + switch(s[8]) { + default: + break; + case 'i': + switch(s[9]) { + default: + break; + case '_': + switch(s[10]) { + default: + break; + case 'a': + switch(s[11]) { + default: + break; + case 'a': + switch(s[12]) { + default: + break; + case 'd': + switch(s[13]) { + default: + break; + case 'p': + if (strcmp("acklen", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD_PACKLEN; + break; + case '\0': + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD; + } + } + } + break; + case 'e': + switch(s[11]) { + default: + break; + case 'n': + switch(s[12]) { + default: + break; + case 'c': + switch(s[13]) { + default: + break; + case 'i': + if (strcmp("n", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_IN; + break; + case 'l': + if (strcmp("en", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_LEN; + break; + case '\0': + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC; + } + } + } + break; + case 'i': + if (strcmp("nterleave", s + 11) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_INTERLEAVE; + break; + case 'm': + switch(s[11]) { + default: + break; + case 'a': + switch(s[12]) { + default: + break; + case 'x': + switch(s[13]) { + default: + break; + case 'b': + if (strcmp("ufsz", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_BUFSIZE; + break; + case 's': + if (strcmp("ndfrag", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_SEND_FRAGMENT; + } + } + } + } + } + } + } + } + } + } + break; + case 'a': + switch(s[4]) { + default: + break; + case 'a': + switch(s[5]) { + default: + break; + case 'd': + switch(s[6]) { + default: + break; + case 'p': + if (strcmp("ad", s + 7) == 0) + return PIDX_CIPHER_PARAM_AEAD_TLS1_AAD_PAD; + break; + case '\0': + return PIDX_CIPHER_PARAM_AEAD_TLS1_AAD; + } + } + } + break; + case 'i': + switch(s[4]) { + default: + break; + case 'v': + switch(s[5]) { + default: + break; + case 'f': + if (strcmp("ixed", s + 6) == 0) + return PIDX_CIPHER_PARAM_AEAD_TLS1_IV_FIXED; + break; + case 'g': + if (strcmp("en", s + 6) == 0) + return PIDX_CIPHER_PARAM_AEAD_TLS1_GET_IV_GEN; + break; + case 'i': + if (strcmp("nv", s + 6) == 0) + return PIDX_CIPHER_PARAM_AEAD_TLS1_SET_IV_INV; + } + } + break; + case 't': + if (strcmp("ree", s + 4) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_TLSTREE; + } + } + break; + case 'p': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_TP_BASIS; + } + break; + case 'y': + if (strcmp("pe", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_TYPE; + } + break; + case 'u': + switch(s[1]) { + default: + break; + case 'k': + if (strcmp("m", s + 2) == 0) + return PIDX_KDF_PARAM_UKM; + break; + case 'p': + if (strcmp("dated-iv", s + 2) == 0) + return PIDX_CIPHER_PARAM_UPDATED_IV; + break; + case 's': + switch(s[2]) { + default: + break; + case 'e': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'b': + if (strcmp("its", s + 5) == 0) + return PIDX_CIPHER_PARAM_USE_BITS; + break; + case 'c': + if (strcmp("ofactor-flag", s + 5) == 0) + return PIDX_PKEY_PARAM_USE_COFACTOR_FLAG; + break; + case 'k': + if (strcmp("eybits", s + 5) == 0) + return PIDX_KDF_PARAM_X942_USE_KEYBITS; + break; + case 'l': + switch(s[5]) { + default: + break; + case '\0': + return PIDX_KDF_PARAM_KBKDF_USE_L; + } + break; + case 's': + if (strcmp("eparator", s + 5) == 0) + return PIDX_KDF_PARAM_KBKDF_USE_SEPARATOR; + } + break; + case '_': + switch(s[4]) { + default: + break; + case 'd': + if (strcmp("erivation_function", s + 5) == 0) + return PIDX_DRBG_PARAM_USE_DF; + break; + case 'e': + if (strcmp("tm", s + 5) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_USE_ETM; + } + } + } + } + break; + case 'v': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'l': + switch(s[3]) { + default: + break; + case 'i': + switch(s[4]) { + default: + break; + case 'd': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case 'e': + switch(s[8]) { + default: + break; + case '-': + switch(s[9]) { + default: + break; + case 'g': + switch(s[10]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_VALIDATE_G; + } + break; + case 'l': + if (strcmp("egacy", s + 10) == 0) + return PIDX_PKEY_PARAM_FFC_VALIDATE_LEGACY; + break; + case 'p': + if (strcmp("q", s + 10) == 0) + return PIDX_PKEY_PARAM_FFC_VALIDATE_PQ; + } + } + } + } + } + } + } + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'r': + switch(s[3]) { + default: + break; + case 'i': + if (strcmp("fy-message", s + 4) == 0) + return PIDX_SIGNATURE_PARAM_FIPS_VERIFY_MESSAGE; + break; + case 's': + if (strcmp("ion", s + 4) == 0) + return PIDX_PROV_PARAM_VERSION; + } + } + } + break; + case 'x': + switch(s[1]) { + default: + break; + case '9': + switch(s[2]) { + default: + break; + case '4': + if (strcmp("2kdf-key-check", s + 3) == 0) + return PIDX_PROV_PARAM_X942KDF_KEY_CHECK; + break; + case '6': + switch(s[3]) { + default: + break; + case '3': + switch(s[4]) { + default: + break; + case 'k': + switch(s[5]) { + default: + break; + case 'd': + switch(s[6]) { + default: + break; + case 'f': + switch(s[7]) { + default: + break; + case '-': + switch(s[8]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 9) == 0) + return PIDX_PROV_PARAM_X963KDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 9) == 0) + return PIDX_PROV_PARAM_X963KDF_KEY_CHECK; + } + } + } + } + } + } + } + break; + case 'c': + if (strcmp("ghash", s + 2) == 0) + return PIDX_KDF_PARAM_SSHKDF_XCGHASH; + break; + case 'o': + switch(s[2]) { + default: + break; + case 'f': + switch(s[3]) { + default: + break; + case 'l': + if (strcmp("en", s + 4) == 0) + return PIDX_DIGEST_PARAM_XOFLEN; + break; + case '\0': + return PIDX_MAC_PARAM_XOF; + } + } + break; + case 'p': + switch(s[2]) { + default: + break; + case '1': + switch(s[3]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XP1; + } + break; + case '2': + switch(s[3]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XP2; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XP; + } + break; + case 'q': + switch(s[2]) { + default: + break; + case '1': + switch(s[3]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XQ1; + } + break; + case '2': + switch(s[3]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XQ2; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XQ; + } + break; + case 't': + if (strcmp("s_standard", s + 2) == 0) + return PIDX_CIPHER_PARAM_XTS_STANDARD; + } + } + return -1; +} + +/* End of TRIE */ diff --git a/deps/openssl/config/archs/BSD-x86/asm_avx2/crypto/poly1305/poly1305-x86.S b/deps/openssl/config/archs/BSD-x86/asm_avx2/crypto/poly1305/poly1305-x86.S index 6fd5469a571356..2bf33f3c8977a0 100644 --- a/deps/openssl/config/archs/BSD-x86/asm_avx2/crypto/poly1305/poly1305-x86.S +++ b/deps/openssl/config/archs/BSD-x86/asm_avx2/crypto/poly1305/poly1305-x86.S @@ -1940,4 +1940,4 @@ Lconst_sse2: .byte 60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111 .byte 114,103,62,0 .align 2,0x90 -.comm _OPENSSL_ia32cap_P,16 +.comm _OPENSSL_ia32cap_P,40 diff --git a/deps/openssl/config/archs/BSD-x86/asm_avx2/crypto/rc4/rc4-586.S b/deps/openssl/config/archs/BSD-x86/asm_avx2/crypto/rc4/rc4-586.S index 55215f177a9f84..60042da2862cb1 100644 --- a/deps/openssl/config/archs/BSD-x86/asm_avx2/crypto/rc4/rc4-586.S +++ b/deps/openssl/config/archs/BSD-x86/asm_avx2/crypto/rc4/rc4-586.S @@ -392,4 +392,4 @@ L019opts: .byte 80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114 .byte 111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 .align 6,0x90 -.comm _OPENSSL_ia32cap_P,16 +.comm _OPENSSL_ia32cap_P,40 diff --git a/deps/openssl/config/archs/BSD-x86/asm_avx2/crypto/sha/sha1-586.S b/deps/openssl/config/archs/BSD-x86/asm_avx2/crypto/sha/sha1-586.S index 2e977b873bb848..2f16bd08c9e1f4 100644 --- a/deps/openssl/config/archs/BSD-x86/asm_avx2/crypto/sha/sha1-586.S +++ b/deps/openssl/config/archs/BSD-x86/asm_avx2/crypto/sha/sha1-586.S @@ -3983,4 +3983,4 @@ LK_XX_XX: .byte 102,111,114,109,32,102,111,114,32,120,56,54,44,32,67,82 .byte 89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112 .byte 114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 -.comm _OPENSSL_ia32cap_P,16 +.comm _OPENSSL_ia32cap_P,40 diff --git a/deps/openssl/config/archs/BSD-x86/asm_avx2/crypto/sha/sha256-586.S b/deps/openssl/config/archs/BSD-x86/asm_avx2/crypto/sha/sha256-586.S index ab935deb824c0a..c5fe87bf89cd8e 100644 --- a/deps/openssl/config/archs/BSD-x86/asm_avx2/crypto/sha/sha256-586.S +++ b/deps/openssl/config/archs/BSD-x86/asm_avx2/crypto/sha/sha256-586.S @@ -6784,4 +6784,4 @@ L018avx_bmi_00_47: popl %ebx popl %ebp ret -.comm _OPENSSL_ia32cap_P,16 +.comm _OPENSSL_ia32cap_P,40 diff --git a/deps/openssl/config/archs/BSD-x86/asm_avx2/crypto/sha/sha512-586.S b/deps/openssl/config/archs/BSD-x86/asm_avx2/crypto/sha/sha512-586.S index 0dea93b398287d..97a269ba66bcf9 100644 --- a/deps/openssl/config/archs/BSD-x86/asm_avx2/crypto/sha/sha512-586.S +++ b/deps/openssl/config/archs/BSD-x86/asm_avx2/crypto/sha/sha512-586.S @@ -2830,4 +2830,4 @@ L001K512: .byte 67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97 .byte 112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103 .byte 62,0 -.comm _OPENSSL_ia32cap_P,16 +.comm _OPENSSL_ia32cap_P,40 diff --git a/deps/openssl/config/archs/BSD-x86/asm_avx2/crypto/x86cpuid.S b/deps/openssl/config/archs/BSD-x86/asm_avx2/crypto/x86cpuid.S index 39d138a7e345d6..9420cd0c4086d9 100644 --- a/deps/openssl/config/archs/BSD-x86/asm_avx2/crypto/x86cpuid.S +++ b/deps/openssl/config/archs/BSD-x86/asm_avx2/crypto/x86cpuid.S @@ -122,6 +122,24 @@ L002generic: xorl %ecx,%ecx .byte 0x0f,0xa2 movl %ebx,8(%edi) + movl %ecx,12(%edi) + movl %edx,16(%edi) + cmpl $1,%eax + jb L005no_extended_info + movl $7,%eax + movl $1,%ecx + .byte 0x0f,0xa2 + movl %eax,20(%edi) + movl %edx,24(%edi) + movl %ebx,28(%edi) + movl %ecx,32(%edi) + andl $524288,%edx + cmpl $0,%edx + je L005no_extended_info + movl $36,%eax + movl $0,%ecx + .byte 0x0f,0xa2 + movl %ebx,36(%edi) L005no_extended_info: btl $27,%ebp jnc L006clear_avx @@ -137,6 +155,7 @@ L008clear_xmm: andl $4278190079,%esi L006clear_avx: andl $4026525695,%ebp + andl $4286578687,20(%edi) andl $4294967263,8(%edi) L007done: movl %esi,%eax @@ -583,7 +602,7 @@ L036done: popl %ebx popl %edi ret -.comm _OPENSSL_ia32cap_P,16 +.comm _OPENSSL_ia32cap_P,40 .text .type __GLOBAL_$I$_OPENSSL_cpuid_setup,@function .globl __GLOBAL_$I$_OPENSSL_cpuid_setup diff --git a/deps/openssl/config/archs/BSD-x86/asm_avx2/include/internal/param_names.h b/deps/openssl/config/archs/BSD-x86/asm_avx2/include/internal/param_names.h new file mode 100644 index 00000000000000..0a0404a57e82b9 --- /dev/null +++ b/deps/openssl/config/archs/BSD-x86/asm_avx2/include/internal/param_names.h @@ -0,0 +1,469 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from include/internal/param_names.h.in + * + * Copyright 2023 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + +int ossl_param_find_pidx(const char *s); + +/* Parameter name definitions - generated by util/perl/OpenSSL/paramnames.pm */ +#define NUM_PIDX 346 + +#define PIDX_ALG_PARAM_ALGORITHM_ID 0 +#define PIDX_ALG_PARAM_ALGORITHM_ID_PARAMS 1 +#define PIDX_ALG_PARAM_CIPHER 2 +#define PIDX_ALG_PARAM_DIGEST 3 +#define PIDX_ALG_PARAM_ENGINE 4 +#define PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR 5 +#define PIDX_ALG_PARAM_MAC 6 +#define PIDX_ALG_PARAM_PROPERTIES 7 +#define PIDX_ASYM_CIPHER_PARAM_DIGEST PIDX_PKEY_PARAM_DIGEST +#define PIDX_ASYM_CIPHER_PARAM_ENGINE PIDX_PKEY_PARAM_ENGINE +#define PIDX_ASYM_CIPHER_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_ASYM_CIPHER_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_ASYM_CIPHER_PARAM_FIPS_RSA_PKCS15_PAD_DISABLED PIDX_PROV_PARAM_RSA_PKCS15_PAD_DISABLED +#define PIDX_ASYM_CIPHER_PARAM_IMPLICIT_REJECTION 8 +#define PIDX_ASYM_CIPHER_PARAM_MGF1_DIGEST PIDX_PKEY_PARAM_MGF1_DIGEST +#define PIDX_ASYM_CIPHER_PARAM_MGF1_DIGEST_PROPS PIDX_PKEY_PARAM_MGF1_PROPERTIES +#define PIDX_ASYM_CIPHER_PARAM_OAEP_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_ASYM_CIPHER_PARAM_OAEP_DIGEST_PROPS 9 +#define PIDX_ASYM_CIPHER_PARAM_OAEP_LABEL 10 +#define PIDX_ASYM_CIPHER_PARAM_PAD_MODE PIDX_PKEY_PARAM_PAD_MODE +#define PIDX_ASYM_CIPHER_PARAM_PROPERTIES PIDX_PKEY_PARAM_PROPERTIES +#define PIDX_ASYM_CIPHER_PARAM_TLS_CLIENT_VERSION 11 +#define PIDX_ASYM_CIPHER_PARAM_TLS_NEGOTIATED_VERSION 12 +#define PIDX_CAPABILITY_TLS_GROUP_ALG 13 +#define PIDX_CAPABILITY_TLS_GROUP_ID 14 +#define PIDX_CAPABILITY_TLS_GROUP_IS_KEM 15 +#define PIDX_CAPABILITY_TLS_GROUP_MAX_DTLS 16 +#define PIDX_CAPABILITY_TLS_GROUP_MAX_TLS 17 +#define PIDX_CAPABILITY_TLS_GROUP_MIN_DTLS 18 +#define PIDX_CAPABILITY_TLS_GROUP_MIN_TLS 19 +#define PIDX_CAPABILITY_TLS_GROUP_NAME 20 +#define PIDX_CAPABILITY_TLS_GROUP_NAME_INTERNAL 21 +#define PIDX_CAPABILITY_TLS_GROUP_SECURITY_BITS 22 +#define PIDX_CAPABILITY_TLS_SIGALG_CODE_POINT 23 +#define PIDX_CAPABILITY_TLS_SIGALG_HASH_NAME 24 +#define PIDX_CAPABILITY_TLS_SIGALG_HASH_OID 25 +#define PIDX_CAPABILITY_TLS_SIGALG_IANA_NAME 26 +#define PIDX_CAPABILITY_TLS_SIGALG_KEYTYPE 27 +#define PIDX_CAPABILITY_TLS_SIGALG_KEYTYPE_OID 28 +#define PIDX_CAPABILITY_TLS_SIGALG_MAX_DTLS 16 +#define PIDX_CAPABILITY_TLS_SIGALG_MAX_TLS 17 +#define PIDX_CAPABILITY_TLS_SIGALG_MIN_DTLS 18 +#define PIDX_CAPABILITY_TLS_SIGALG_MIN_TLS 19 +#define PIDX_CAPABILITY_TLS_SIGALG_NAME 29 +#define PIDX_CAPABILITY_TLS_SIGALG_OID 30 +#define PIDX_CAPABILITY_TLS_SIGALG_SECURITY_BITS 31 +#define PIDX_CAPABILITY_TLS_SIGALG_SIG_NAME 32 +#define PIDX_CAPABILITY_TLS_SIGALG_SIG_OID 33 +#define PIDX_CIPHER_PARAM_AEAD 34 +#define PIDX_CIPHER_PARAM_AEAD_IVLEN PIDX_CIPHER_PARAM_IVLEN +#define PIDX_CIPHER_PARAM_AEAD_IV_GENERATED 35 +#define PIDX_CIPHER_PARAM_AEAD_MAC_KEY 36 +#define PIDX_CIPHER_PARAM_AEAD_TAG 37 +#define PIDX_CIPHER_PARAM_AEAD_TAGLEN 38 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_AAD 39 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_AAD_PAD 40 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_GET_IV_GEN 41 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_IV_FIXED 42 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_SET_IV_INV 43 +#define PIDX_CIPHER_PARAM_ALGORITHM_ID PIDX_ALG_PARAM_ALGORITHM_ID +#define PIDX_CIPHER_PARAM_ALGORITHM_ID_PARAMS PIDX_ALG_PARAM_ALGORITHM_ID_PARAMS +#define PIDX_CIPHER_PARAM_ALGORITHM_ID_PARAMS_OLD 44 +#define PIDX_CIPHER_PARAM_BLOCK_SIZE 45 +#define PIDX_CIPHER_PARAM_CTS 46 +#define PIDX_CIPHER_PARAM_CTS_MODE 47 +#define PIDX_CIPHER_PARAM_CUSTOM_IV 48 +#define PIDX_CIPHER_PARAM_DECRYPT_ONLY 49 +#define PIDX_CIPHER_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_CIPHER_PARAM_FIPS_ENCRYPT_CHECK 50 +#define PIDX_CIPHER_PARAM_HAS_RAND_KEY 51 +#define PIDX_CIPHER_PARAM_IV 52 +#define PIDX_CIPHER_PARAM_IVLEN 53 +#define PIDX_CIPHER_PARAM_KEYLEN 54 +#define PIDX_CIPHER_PARAM_MODE 55 +#define PIDX_CIPHER_PARAM_NUM 56 +#define PIDX_CIPHER_PARAM_PADDING 57 +#define PIDX_CIPHER_PARAM_PIPELINE_AEAD_TAG 58 +#define PIDX_CIPHER_PARAM_RANDOM_KEY 59 +#define PIDX_CIPHER_PARAM_RC2_KEYBITS 60 +#define PIDX_CIPHER_PARAM_ROUNDS 61 +#define PIDX_CIPHER_PARAM_SPEED 62 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK 63 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD 64 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD_PACKLEN 65 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC 66 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_IN 67 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_LEN 68 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_INTERLEAVE 69 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_BUFSIZE 70 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_SEND_FRAGMENT 71 +#define PIDX_CIPHER_PARAM_TLS_MAC 72 +#define PIDX_CIPHER_PARAM_TLS_MAC_SIZE 73 +#define PIDX_CIPHER_PARAM_TLS_VERSION 74 +#define PIDX_CIPHER_PARAM_UPDATED_IV 75 +#define PIDX_CIPHER_PARAM_USE_BITS 76 +#define PIDX_CIPHER_PARAM_XTS_STANDARD 77 +#define PIDX_DECODER_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_DIGEST_PARAM_ALGID_ABSENT 78 +#define PIDX_DIGEST_PARAM_BLOCK_SIZE 45 +#define PIDX_DIGEST_PARAM_MICALG 79 +#define PIDX_DIGEST_PARAM_PAD_TYPE 80 +#define PIDX_DIGEST_PARAM_SIZE 81 +#define PIDX_DIGEST_PARAM_SSL3_MS 82 +#define PIDX_DIGEST_PARAM_XOF 83 +#define PIDX_DIGEST_PARAM_XOFLEN 84 +#define PIDX_DRBG_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_DRBG_PARAM_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_DRBG_PARAM_ENTROPY_REQUIRED 85 +#define PIDX_DRBG_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_DRBG_PARAM_FIPS_DIGEST_CHECK PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK +#define PIDX_DRBG_PARAM_MAC PIDX_ALG_PARAM_MAC +#define PIDX_DRBG_PARAM_MAX_ADINLEN 86 +#define PIDX_DRBG_PARAM_MAX_ENTROPYLEN 87 +#define PIDX_DRBG_PARAM_MAX_LENGTH 88 +#define PIDX_DRBG_PARAM_MAX_NONCELEN 89 +#define PIDX_DRBG_PARAM_MAX_PERSLEN 90 +#define PIDX_DRBG_PARAM_MIN_ENTROPYLEN 91 +#define PIDX_DRBG_PARAM_MIN_LENGTH 92 +#define PIDX_DRBG_PARAM_MIN_NONCELEN 93 +#define PIDX_DRBG_PARAM_PREDICTION_RESISTANCE 94 +#define PIDX_DRBG_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_DRBG_PARAM_RANDOM_DATA 95 +#define PIDX_DRBG_PARAM_RESEED_COUNTER 96 +#define PIDX_DRBG_PARAM_RESEED_REQUESTS 97 +#define PIDX_DRBG_PARAM_RESEED_TIME 98 +#define PIDX_DRBG_PARAM_RESEED_TIME_INTERVAL 99 +#define PIDX_DRBG_PARAM_SIZE 81 +#define PIDX_DRBG_PARAM_USE_DF 100 +#define PIDX_ENCODER_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_ENCODER_PARAM_ENCRYPT_LEVEL 101 +#define PIDX_ENCODER_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_ENCODER_PARAM_SAVE_PARAMETERS 102 +#define PIDX_EXCHANGE_PARAM_EC_ECDH_COFACTOR_MODE 103 +#define PIDX_EXCHANGE_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_EXCHANGE_PARAM_FIPS_DIGEST_CHECK PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK +#define PIDX_EXCHANGE_PARAM_FIPS_ECDH_COFACTOR_CHECK PIDX_PROV_PARAM_ECDH_COFACTOR_CHECK +#define PIDX_EXCHANGE_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_EXCHANGE_PARAM_KDF_DIGEST 104 +#define PIDX_EXCHANGE_PARAM_KDF_DIGEST_PROPS 105 +#define PIDX_EXCHANGE_PARAM_KDF_OUTLEN 106 +#define PIDX_EXCHANGE_PARAM_KDF_TYPE 107 +#define PIDX_EXCHANGE_PARAM_KDF_UKM 108 +#define PIDX_EXCHANGE_PARAM_PAD 109 +#define PIDX_GEN_PARAM_ITERATION 110 +#define PIDX_GEN_PARAM_POTENTIAL 111 +#define PIDX_KDF_PARAM_ARGON2_AD 112 +#define PIDX_KDF_PARAM_ARGON2_LANES 113 +#define PIDX_KDF_PARAM_ARGON2_MEMCOST 114 +#define PIDX_KDF_PARAM_ARGON2_VERSION 115 +#define PIDX_KDF_PARAM_CEK_ALG 116 +#define PIDX_KDF_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_KDF_PARAM_CONSTANT 117 +#define PIDX_KDF_PARAM_DATA 118 +#define PIDX_KDF_PARAM_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_KDF_PARAM_EARLY_CLEAN 119 +#define PIDX_KDF_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_KDF_PARAM_FIPS_DIGEST_CHECK PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK +#define PIDX_KDF_PARAM_FIPS_EMS_CHECK 120 +#define PIDX_KDF_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_KDF_PARAM_HMACDRBG_ENTROPY 121 +#define PIDX_KDF_PARAM_HMACDRBG_NONCE 122 +#define PIDX_KDF_PARAM_INFO 123 +#define PIDX_KDF_PARAM_ITER 124 +#define PIDX_KDF_PARAM_KBKDF_R 125 +#define PIDX_KDF_PARAM_KBKDF_USE_L 126 +#define PIDX_KDF_PARAM_KBKDF_USE_SEPARATOR 127 +#define PIDX_KDF_PARAM_KEY 128 +#define PIDX_KDF_PARAM_LABEL 129 +#define PIDX_KDF_PARAM_MAC PIDX_ALG_PARAM_MAC +#define PIDX_KDF_PARAM_MAC_SIZE 130 +#define PIDX_KDF_PARAM_MODE 55 +#define PIDX_KDF_PARAM_PASSWORD 131 +#define PIDX_KDF_PARAM_PKCS12_ID 132 +#define PIDX_KDF_PARAM_PKCS5 133 +#define PIDX_KDF_PARAM_PREFIX 134 +#define PIDX_KDF_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_KDF_PARAM_SALT 135 +#define PIDX_KDF_PARAM_SCRYPT_MAXMEM 136 +#define PIDX_KDF_PARAM_SCRYPT_N 137 +#define PIDX_KDF_PARAM_SCRYPT_P 138 +#define PIDX_KDF_PARAM_SCRYPT_R 125 +#define PIDX_KDF_PARAM_SECRET 139 +#define PIDX_KDF_PARAM_SEED 140 +#define PIDX_KDF_PARAM_SIZE 81 +#define PIDX_KDF_PARAM_SSHKDF_SESSION_ID 141 +#define PIDX_KDF_PARAM_SSHKDF_TYPE 142 +#define PIDX_KDF_PARAM_SSHKDF_XCGHASH 143 +#define PIDX_KDF_PARAM_THREADS 144 +#define PIDX_KDF_PARAM_UKM 145 +#define PIDX_KDF_PARAM_X942_ACVPINFO 146 +#define PIDX_KDF_PARAM_X942_PARTYUINFO 147 +#define PIDX_KDF_PARAM_X942_PARTYVINFO 148 +#define PIDX_KDF_PARAM_X942_SUPP_PRIVINFO 149 +#define PIDX_KDF_PARAM_X942_SUPP_PUBINFO 150 +#define PIDX_KDF_PARAM_X942_USE_KEYBITS 151 +#define PIDX_KEM_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_KEM_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_KEM_PARAM_IKME 152 +#define PIDX_KEM_PARAM_OPERATION 153 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_BLOCK_PADDING 154 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_HS_PADDING 155 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_MAX_EARLY_DATA 156 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_MAX_FRAG_LEN 157 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_MODE 55 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_OPTIONS 158 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_READ_AHEAD 159 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_STREAM_MAC 160 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_TLSTREE 161 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_USE_ETM 162 +#define PIDX_LIBSSL_RECORD_LAYER_READ_BUFFER_LEN 163 +#define PIDX_MAC_PARAM_BLOCK_SIZE 164 +#define PIDX_MAC_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_MAC_PARAM_CUSTOM 165 +#define PIDX_MAC_PARAM_C_ROUNDS 166 +#define PIDX_MAC_PARAM_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_MAC_PARAM_DIGEST_NOINIT 167 +#define PIDX_MAC_PARAM_DIGEST_ONESHOT 168 +#define PIDX_MAC_PARAM_D_ROUNDS 169 +#define PIDX_MAC_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_MAC_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_MAC_PARAM_FIPS_NO_SHORT_MAC PIDX_PROV_PARAM_NO_SHORT_MAC +#define PIDX_MAC_PARAM_IV 52 +#define PIDX_MAC_PARAM_KEY 128 +#define PIDX_MAC_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_MAC_PARAM_SALT 135 +#define PIDX_MAC_PARAM_SIZE 81 +#define PIDX_MAC_PARAM_TLS_DATA_SIZE 170 +#define PIDX_MAC_PARAM_XOF 83 +#define PIDX_OBJECT_PARAM_DATA 118 +#define PIDX_OBJECT_PARAM_DATA_STRUCTURE 171 +#define PIDX_OBJECT_PARAM_DATA_TYPE 172 +#define PIDX_OBJECT_PARAM_DESC 173 +#define PIDX_OBJECT_PARAM_INPUT_TYPE 174 +#define PIDX_OBJECT_PARAM_REFERENCE 175 +#define PIDX_OBJECT_PARAM_TYPE 142 +#define PIDX_PASSPHRASE_PARAM_INFO 123 +#define PIDX_PKEY_PARAM_ALGORITHM_ID PIDX_ALG_PARAM_ALGORITHM_ID +#define PIDX_PKEY_PARAM_ALGORITHM_ID_PARAMS PIDX_ALG_PARAM_ALGORITHM_ID_PARAMS +#define PIDX_PKEY_PARAM_BITS 176 +#define PIDX_PKEY_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_PKEY_PARAM_DEFAULT_DIGEST 177 +#define PIDX_PKEY_PARAM_DHKEM_IKM 178 +#define PIDX_PKEY_PARAM_DH_GENERATOR 179 +#define PIDX_PKEY_PARAM_DH_PRIV_LEN 180 +#define PIDX_PKEY_PARAM_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_PKEY_PARAM_DIGEST_SIZE 181 +#define PIDX_PKEY_PARAM_DIST_ID 182 +#define PIDX_PKEY_PARAM_EC_A 183 +#define PIDX_PKEY_PARAM_EC_B 184 +#define PIDX_PKEY_PARAM_EC_CHAR2_M 185 +#define PIDX_PKEY_PARAM_EC_CHAR2_PP_K1 186 +#define PIDX_PKEY_PARAM_EC_CHAR2_PP_K2 187 +#define PIDX_PKEY_PARAM_EC_CHAR2_PP_K3 188 +#define PIDX_PKEY_PARAM_EC_CHAR2_TP_BASIS 189 +#define PIDX_PKEY_PARAM_EC_CHAR2_TYPE 190 +#define PIDX_PKEY_PARAM_EC_COFACTOR 191 +#define PIDX_PKEY_PARAM_EC_DECODED_FROM_EXPLICIT_PARAMS 192 +#define PIDX_PKEY_PARAM_EC_ENCODING 193 +#define PIDX_PKEY_PARAM_EC_FIELD_TYPE 194 +#define PIDX_PKEY_PARAM_EC_GENERATOR 195 +#define PIDX_PKEY_PARAM_EC_GROUP_CHECK_TYPE 196 +#define PIDX_PKEY_PARAM_EC_INCLUDE_PUBLIC 197 +#define PIDX_PKEY_PARAM_EC_ORDER 198 +#define PIDX_PKEY_PARAM_EC_P 138 +#define PIDX_PKEY_PARAM_EC_POINT_CONVERSION_FORMAT 199 +#define PIDX_PKEY_PARAM_EC_PUB_X 200 +#define PIDX_PKEY_PARAM_EC_PUB_Y 201 +#define PIDX_PKEY_PARAM_EC_SEED 140 +#define PIDX_PKEY_PARAM_ENCODED_PUBLIC_KEY 202 +#define PIDX_PKEY_PARAM_ENGINE PIDX_ALG_PARAM_ENGINE +#define PIDX_PKEY_PARAM_FFC_COFACTOR 203 +#define PIDX_PKEY_PARAM_FFC_DIGEST PIDX_PKEY_PARAM_DIGEST +#define PIDX_PKEY_PARAM_FFC_DIGEST_PROPS PIDX_PKEY_PARAM_PROPERTIES +#define PIDX_PKEY_PARAM_FFC_G 204 +#define PIDX_PKEY_PARAM_FFC_GINDEX 205 +#define PIDX_PKEY_PARAM_FFC_H 206 +#define PIDX_PKEY_PARAM_FFC_P 138 +#define PIDX_PKEY_PARAM_FFC_PBITS 207 +#define PIDX_PKEY_PARAM_FFC_PCOUNTER 208 +#define PIDX_PKEY_PARAM_FFC_Q 209 +#define PIDX_PKEY_PARAM_FFC_QBITS 210 +#define PIDX_PKEY_PARAM_FFC_SEED 140 +#define PIDX_PKEY_PARAM_FFC_TYPE 142 +#define PIDX_PKEY_PARAM_FFC_VALIDATE_G 211 +#define PIDX_PKEY_PARAM_FFC_VALIDATE_LEGACY 212 +#define PIDX_PKEY_PARAM_FFC_VALIDATE_PQ 213 +#define PIDX_PKEY_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK 214 +#define PIDX_PKEY_PARAM_FIPS_KEY_CHECK 215 +#define PIDX_PKEY_PARAM_FIPS_SIGN_CHECK 216 +#define PIDX_PKEY_PARAM_GROUP_NAME 217 +#define PIDX_PKEY_PARAM_IMPLICIT_REJECTION 8 +#define PIDX_PKEY_PARAM_MANDATORY_DIGEST 218 +#define PIDX_PKEY_PARAM_MASKGENFUNC 219 +#define PIDX_PKEY_PARAM_MAX_SIZE 220 +#define PIDX_PKEY_PARAM_MGF1_DIGEST 221 +#define PIDX_PKEY_PARAM_MGF1_PROPERTIES 222 +#define PIDX_PKEY_PARAM_ML_DSA_INPUT_FORMATS 223 +#define PIDX_PKEY_PARAM_ML_DSA_OUTPUT_FORMATS 224 +#define PIDX_PKEY_PARAM_ML_DSA_PREFER_SEED 225 +#define PIDX_PKEY_PARAM_ML_DSA_RETAIN_SEED 226 +#define PIDX_PKEY_PARAM_ML_DSA_SEED 140 +#define PIDX_PKEY_PARAM_ML_KEM_IMPORT_PCT_TYPE 227 +#define PIDX_PKEY_PARAM_ML_KEM_INPUT_FORMATS 228 +#define PIDX_PKEY_PARAM_ML_KEM_OUTPUT_FORMATS 229 +#define PIDX_PKEY_PARAM_ML_KEM_PREFER_SEED 230 +#define PIDX_PKEY_PARAM_ML_KEM_RETAIN_SEED 231 +#define PIDX_PKEY_PARAM_ML_KEM_SEED 140 +#define PIDX_PKEY_PARAM_PAD_MODE 232 +#define PIDX_PKEY_PARAM_PRIV_KEY 233 +#define PIDX_PKEY_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_PKEY_PARAM_PUB_KEY 234 +#define PIDX_PKEY_PARAM_RSA_BITS PIDX_PKEY_PARAM_BITS +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT 235 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT1 236 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT2 237 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT3 238 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT4 239 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT5 240 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT6 241 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT7 242 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT8 243 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT9 244 +#define PIDX_PKEY_PARAM_RSA_D 245 +#define PIDX_PKEY_PARAM_RSA_DERIVE_FROM_PQ 246 +#define PIDX_PKEY_PARAM_RSA_DIGEST PIDX_PKEY_PARAM_DIGEST +#define PIDX_PKEY_PARAM_RSA_DIGEST_PROPS PIDX_PKEY_PARAM_PROPERTIES +#define PIDX_PKEY_PARAM_RSA_E 247 +#define PIDX_PKEY_PARAM_RSA_EXPONENT 248 +#define PIDX_PKEY_PARAM_RSA_EXPONENT1 249 +#define PIDX_PKEY_PARAM_RSA_EXPONENT10 250 +#define PIDX_PKEY_PARAM_RSA_EXPONENT2 251 +#define PIDX_PKEY_PARAM_RSA_EXPONENT3 252 +#define PIDX_PKEY_PARAM_RSA_EXPONENT4 253 +#define PIDX_PKEY_PARAM_RSA_EXPONENT5 254 +#define PIDX_PKEY_PARAM_RSA_EXPONENT6 255 +#define PIDX_PKEY_PARAM_RSA_EXPONENT7 256 +#define PIDX_PKEY_PARAM_RSA_EXPONENT8 257 +#define PIDX_PKEY_PARAM_RSA_EXPONENT9 258 +#define PIDX_PKEY_PARAM_RSA_FACTOR 259 +#define PIDX_PKEY_PARAM_RSA_FACTOR1 260 +#define PIDX_PKEY_PARAM_RSA_FACTOR10 261 +#define PIDX_PKEY_PARAM_RSA_FACTOR2 262 +#define PIDX_PKEY_PARAM_RSA_FACTOR3 263 +#define PIDX_PKEY_PARAM_RSA_FACTOR4 264 +#define PIDX_PKEY_PARAM_RSA_FACTOR5 265 +#define PIDX_PKEY_PARAM_RSA_FACTOR6 266 +#define PIDX_PKEY_PARAM_RSA_FACTOR7 267 +#define PIDX_PKEY_PARAM_RSA_FACTOR8 268 +#define PIDX_PKEY_PARAM_RSA_FACTOR9 269 +#define PIDX_PKEY_PARAM_RSA_MASKGENFUNC PIDX_PKEY_PARAM_MASKGENFUNC +#define PIDX_PKEY_PARAM_RSA_MGF1_DIGEST PIDX_PKEY_PARAM_MGF1_DIGEST +#define PIDX_PKEY_PARAM_RSA_N 137 +#define PIDX_PKEY_PARAM_RSA_PRIMES 270 +#define PIDX_PKEY_PARAM_RSA_PSS_SALTLEN 271 +#define PIDX_PKEY_PARAM_RSA_TEST_P1 272 +#define PIDX_PKEY_PARAM_RSA_TEST_P2 273 +#define PIDX_PKEY_PARAM_RSA_TEST_Q1 274 +#define PIDX_PKEY_PARAM_RSA_TEST_Q2 275 +#define PIDX_PKEY_PARAM_RSA_TEST_XP 276 +#define PIDX_PKEY_PARAM_RSA_TEST_XP1 277 +#define PIDX_PKEY_PARAM_RSA_TEST_XP2 278 +#define PIDX_PKEY_PARAM_RSA_TEST_XQ 279 +#define PIDX_PKEY_PARAM_RSA_TEST_XQ1 280 +#define PIDX_PKEY_PARAM_RSA_TEST_XQ2 281 +#define PIDX_PKEY_PARAM_SECURITY_BITS 282 +#define PIDX_PKEY_PARAM_SLH_DSA_SEED 140 +#define PIDX_PKEY_PARAM_USE_COFACTOR_ECDH PIDX_PKEY_PARAM_USE_COFACTOR_FLAG +#define PIDX_PKEY_PARAM_USE_COFACTOR_FLAG 283 +#define PIDX_PROV_PARAM_BUILDINFO 284 +#define PIDX_PROV_PARAM_CORE_MODULE_FILENAME 285 +#define PIDX_PROV_PARAM_CORE_PROV_NAME 286 +#define PIDX_PROV_PARAM_CORE_VERSION 287 +#define PIDX_PROV_PARAM_DRBG_TRUNC_DIGEST 288 +#define PIDX_PROV_PARAM_DSA_SIGN_DISABLED 289 +#define PIDX_PROV_PARAM_ECDH_COFACTOR_CHECK 290 +#define PIDX_PROV_PARAM_HKDF_DIGEST_CHECK 291 +#define PIDX_PROV_PARAM_HKDF_KEY_CHECK 292 +#define PIDX_PROV_PARAM_HMAC_KEY_CHECK 293 +#define PIDX_PROV_PARAM_KBKDF_KEY_CHECK 294 +#define PIDX_PROV_PARAM_KMAC_KEY_CHECK 295 +#define PIDX_PROV_PARAM_NAME 296 +#define PIDX_PROV_PARAM_NO_SHORT_MAC 297 +#define PIDX_PROV_PARAM_PBKDF2_LOWER_BOUND_CHECK 298 +#define PIDX_PROV_PARAM_RSA_PKCS15_PAD_DISABLED 299 +#define PIDX_PROV_PARAM_RSA_PSS_SALTLEN_CHECK 300 +#define PIDX_PROV_PARAM_RSA_SIGN_X931_PAD_DISABLED 301 +#define PIDX_PROV_PARAM_SECURITY_CHECKS 302 +#define PIDX_PROV_PARAM_SELF_TEST_DESC 303 +#define PIDX_PROV_PARAM_SELF_TEST_PHASE 304 +#define PIDX_PROV_PARAM_SELF_TEST_TYPE 305 +#define PIDX_PROV_PARAM_SIGNATURE_DIGEST_CHECK 306 +#define PIDX_PROV_PARAM_SSHKDF_DIGEST_CHECK 307 +#define PIDX_PROV_PARAM_SSHKDF_KEY_CHECK 308 +#define PIDX_PROV_PARAM_SSKDF_DIGEST_CHECK 309 +#define PIDX_PROV_PARAM_SSKDF_KEY_CHECK 310 +#define PIDX_PROV_PARAM_STATUS 311 +#define PIDX_PROV_PARAM_TDES_ENCRYPT_DISABLED 312 +#define PIDX_PROV_PARAM_TLS13_KDF_DIGEST_CHECK 313 +#define PIDX_PROV_PARAM_TLS13_KDF_KEY_CHECK 314 +#define PIDX_PROV_PARAM_TLS1_PRF_DIGEST_CHECK 315 +#define PIDX_PROV_PARAM_TLS1_PRF_EMS_CHECK 316 +#define PIDX_PROV_PARAM_TLS1_PRF_KEY_CHECK 317 +#define PIDX_PROV_PARAM_VERSION 115 +#define PIDX_PROV_PARAM_X942KDF_KEY_CHECK 318 +#define PIDX_PROV_PARAM_X963KDF_DIGEST_CHECK 319 +#define PIDX_PROV_PARAM_X963KDF_KEY_CHECK 320 +#define PIDX_RAND_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_RAND_PARAM_GENERATE 321 +#define PIDX_RAND_PARAM_MAX_REQUEST 322 +#define PIDX_RAND_PARAM_STATE 323 +#define PIDX_RAND_PARAM_STRENGTH 324 +#define PIDX_RAND_PARAM_TEST_ENTROPY 325 +#define PIDX_RAND_PARAM_TEST_NONCE 326 +#define PIDX_SIGNATURE_PARAM_ADD_RANDOM 327 +#define PIDX_SIGNATURE_PARAM_ALGORITHM_ID PIDX_PKEY_PARAM_ALGORITHM_ID +#define PIDX_SIGNATURE_PARAM_ALGORITHM_ID_PARAMS PIDX_PKEY_PARAM_ALGORITHM_ID_PARAMS +#define PIDX_SIGNATURE_PARAM_CONTEXT_STRING 328 +#define PIDX_SIGNATURE_PARAM_DETERMINISTIC 329 +#define PIDX_SIGNATURE_PARAM_DIGEST PIDX_PKEY_PARAM_DIGEST +#define PIDX_SIGNATURE_PARAM_DIGEST_SIZE PIDX_PKEY_PARAM_DIGEST_SIZE +#define PIDX_SIGNATURE_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_SIGNATURE_PARAM_FIPS_DIGEST_CHECK PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK +#define PIDX_SIGNATURE_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_SIGNATURE_PARAM_FIPS_RSA_PSS_SALTLEN_CHECK 300 +#define PIDX_SIGNATURE_PARAM_FIPS_SIGN_CHECK PIDX_PKEY_PARAM_FIPS_SIGN_CHECK +#define PIDX_SIGNATURE_PARAM_FIPS_SIGN_X931_PAD_CHECK 330 +#define PIDX_SIGNATURE_PARAM_FIPS_VERIFY_MESSAGE 331 +#define PIDX_SIGNATURE_PARAM_INSTANCE 332 +#define PIDX_SIGNATURE_PARAM_KAT 333 +#define PIDX_SIGNATURE_PARAM_MESSAGE_ENCODING 334 +#define PIDX_SIGNATURE_PARAM_MGF1_DIGEST PIDX_PKEY_PARAM_MGF1_DIGEST +#define PIDX_SIGNATURE_PARAM_MGF1_PROPERTIES PIDX_PKEY_PARAM_MGF1_PROPERTIES +#define PIDX_SIGNATURE_PARAM_MU 335 +#define PIDX_SIGNATURE_PARAM_NONCE_TYPE 336 +#define PIDX_SIGNATURE_PARAM_PAD_MODE PIDX_PKEY_PARAM_PAD_MODE +#define PIDX_SIGNATURE_PARAM_PROPERTIES PIDX_PKEY_PARAM_PROPERTIES +#define PIDX_SIGNATURE_PARAM_PSS_SALTLEN 271 +#define PIDX_SIGNATURE_PARAM_SIGNATURE 337 +#define PIDX_SIGNATURE_PARAM_TEST_ENTROPY 338 +#define PIDX_SKEY_PARAM_KEY_LENGTH 339 +#define PIDX_SKEY_PARAM_RAW_BYTES 340 +#define PIDX_STORE_PARAM_ALIAS 341 +#define PIDX_STORE_PARAM_DIGEST 3 +#define PIDX_STORE_PARAM_EXPECT 342 +#define PIDX_STORE_PARAM_FINGERPRINT 343 +#define PIDX_STORE_PARAM_INPUT_TYPE 174 +#define PIDX_STORE_PARAM_ISSUER 296 +#define PIDX_STORE_PARAM_PROPERTIES 7 +#define PIDX_STORE_PARAM_SERIAL 344 +#define PIDX_STORE_PARAM_SUBJECT 345 diff --git a/deps/openssl/config/archs/BSD-x86/asm_avx2/include/openssl/asn1.h b/deps/openssl/config/archs/BSD-x86/asm_avx2/include/openssl/asn1.h index 21ff58e3d803d4..15e9e44674b0f3 100644 --- a/deps/openssl/config/archs/BSD-x86/asm_avx2/include/openssl/asn1.h +++ b/deps/openssl/config/archs/BSD-x86/asm_avx2/include/openssl/asn1.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/asn1.h.in * - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -21,6 +21,9 @@ # define HEADER_ASN1_H # endif +# ifndef OPENSSL_NO_STDIO +# include +# endif # include # include # include @@ -50,14 +53,14 @@ extern "C" { # define V_ASN1_PRIMITIVE_TAG 0x1f # define V_ASN1_PRIMATIVE_TAG /*compat*/ V_ASN1_PRIMITIVE_TAG -# define V_ASN1_APP_CHOOSE -2/* let the recipient choose */ -# define V_ASN1_OTHER -3/* used in ASN1_TYPE */ -# define V_ASN1_ANY -4/* used in ASN1 template code */ +# define V_ASN1_APP_CHOOSE -2 /* let the recipient choose */ +# define V_ASN1_OTHER -3 /* used in ASN1_TYPE */ +# define V_ASN1_ANY -4 /* used in ASN1 template code */ # define V_ASN1_UNDEF -1 /* ASN.1 tag values */ # define V_ASN1_EOC 0 -# define V_ASN1_BOOLEAN 1 /**/ +# define V_ASN1_BOOLEAN 1 # define V_ASN1_INTEGER 2 # define V_ASN1_BIT_STRING 3 # define V_ASN1_OCTET_STRING 4 @@ -70,19 +73,19 @@ extern "C" { # define V_ASN1_UTF8STRING 12 # define V_ASN1_SEQUENCE 16 # define V_ASN1_SET 17 -# define V_ASN1_NUMERICSTRING 18 /**/ +# define V_ASN1_NUMERICSTRING 18 # define V_ASN1_PRINTABLESTRING 19 # define V_ASN1_T61STRING 20 -# define V_ASN1_TELETEXSTRING 20/* alias */ -# define V_ASN1_VIDEOTEXSTRING 21 /**/ +# define V_ASN1_TELETEXSTRING 20 /* alias */ +# define V_ASN1_VIDEOTEXSTRING 21 # define V_ASN1_IA5STRING 22 # define V_ASN1_UTCTIME 23 -# define V_ASN1_GENERALIZEDTIME 24 /**/ -# define V_ASN1_GRAPHICSTRING 25 /**/ -# define V_ASN1_ISO64STRING 26 /**/ -# define V_ASN1_VISIBLESTRING 26/* alias */ -# define V_ASN1_GENERALSTRING 27 /**/ -# define V_ASN1_UNIVERSALSTRING 28 /**/ +# define V_ASN1_GENERALIZEDTIME 24 +# define V_ASN1_GRAPHICSTRING 25 +# define V_ASN1_ISO64STRING 26 +# define V_ASN1_VISIBLESTRING 26 /* alias */ +# define V_ASN1_GENERALSTRING 27 +# define V_ASN1_UNIVERSALSTRING 28 # define V_ASN1_BMPSTRING 30 /* @@ -155,7 +158,7 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_ALGOR, X509_ALGOR, X509_ALGOR) -# define ASN1_STRING_FLAG_BITS_LEFT 0x08/* Set if 0x07 has bits left value */ +# define ASN1_STRING_FLAG_BITS_LEFT 0x08 /* Set if 0x07 has bits left value */ /* * This indicates that the ASN1_STRING is not a real value but just a place * holder for the location where indefinite length constructed data should be @@ -275,7 +278,7 @@ typedef struct ASN1_TLC_st ASN1_TLC; /* This is just an opaque pointer */ typedef struct ASN1_VALUE_st ASN1_VALUE; -/* Declare ASN1 functions: the implement macro in in asn1t.h */ +/* Declare ASN1 functions: the implement macro is in asn1t.h */ /* * The mysterious 'extern' that's passed to some macros is innocuous, @@ -368,6 +371,7 @@ typedef struct ASN1_VALUE_st ASN1_VALUE; typedef void *d2i_of_void(void **, const unsigned char **, long); typedef int i2d_of_void(const void *, unsigned char **); +typedef int OSSL_i2d_of_void_ctx(const void *, unsigned char **, void *vctx); /*- * The following macros and typedefs allow an ASN1_ITEM @@ -996,6 +1000,8 @@ int ASN1_TYPE_get_int_octetstring(const ASN1_TYPE *a, long *num, unsigned char *data, int max_len); void *ASN1_item_unpack(const ASN1_STRING *oct, const ASN1_ITEM *it); +void *ASN1_item_unpack_ex(const ASN1_STRING *oct, const ASN1_ITEM *it, + OSSL_LIB_CTX *libctx, const char *propq); ASN1_STRING *ASN1_item_pack(void *obj, const ASN1_ITEM *it, ASN1_OCTET_STRING **oct); diff --git a/deps/openssl/config/archs/BSD-x86/asm_avx2/include/openssl/bio.h b/deps/openssl/config/archs/BSD-x86/asm_avx2/include/openssl/bio.h index f9aa74731c833c..e02f867beb0ec0 100644 --- a/deps/openssl/config/archs/BSD-x86/asm_avx2/include/openssl/bio.h +++ b/deps/openssl/config/archs/BSD-x86/asm_avx2/include/openssl/bio.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/bio.h.in * - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -67,8 +67,13 @@ extern "C" { # define BIO_TYPE_DGRAM_SCTP (24|BIO_TYPE_SOURCE_SINK|BIO_TYPE_DESCRIPTOR) # endif # define BIO_TYPE_CORE_TO_PROV (25|BIO_TYPE_SOURCE_SINK) +# define BIO_TYPE_DGRAM_PAIR (26|BIO_TYPE_SOURCE_SINK) +# define BIO_TYPE_DGRAM_MEM (27|BIO_TYPE_SOURCE_SINK) +/* Custom type starting index returned by BIO_get_new_index() */ #define BIO_TYPE_START 128 +/* Custom type maximum index that can be returned by BIO_get_new_index() */ +#define BIO_TYPE_MASK 0xFF /* * BIO_FILENAME_READ|BIO_CLOSE to open or close on free. @@ -171,6 +176,31 @@ extern "C" { # define BIO_CTRL_SET_INDENT 80 # define BIO_CTRL_GET_INDENT 81 +# define BIO_CTRL_DGRAM_GET_LOCAL_ADDR_CAP 82 +# define BIO_CTRL_DGRAM_GET_LOCAL_ADDR_ENABLE 83 +# define BIO_CTRL_DGRAM_SET_LOCAL_ADDR_ENABLE 84 +# define BIO_CTRL_DGRAM_GET_EFFECTIVE_CAPS 85 +# define BIO_CTRL_DGRAM_GET_CAPS 86 +# define BIO_CTRL_DGRAM_SET_CAPS 87 +# define BIO_CTRL_DGRAM_GET_NO_TRUNC 88 +# define BIO_CTRL_DGRAM_SET_NO_TRUNC 89 + +/* + * internal BIO: + * # define BIO_CTRL_SET_KTLS_TX_ZEROCOPY_SENDFILE 90 + */ + +# define BIO_CTRL_GET_RPOLL_DESCRIPTOR 91 +# define BIO_CTRL_GET_WPOLL_DESCRIPTOR 92 +# define BIO_CTRL_DGRAM_DETECT_PEER_ADDR 93 +# define BIO_CTRL_DGRAM_SET0_LOCAL_ADDR 94 + +# define BIO_DGRAM_CAP_NONE 0U +# define BIO_DGRAM_CAP_HANDLES_SRC_ADDR (1U << 0) +# define BIO_DGRAM_CAP_HANDLES_DST_ADDR (1U << 1) +# define BIO_DGRAM_CAP_PROVIDES_SRC_ADDR (1U << 2) +# define BIO_DGRAM_CAP_PROVIDES_DST_ADDR (1U << 3) + # ifndef OPENSSL_NO_KTLS # define BIO_get_ktls_send(b) \ (BIO_ctrl(b, BIO_CTRL_GET_KTLS_SEND, 0, NULL) > 0) @@ -208,7 +238,7 @@ extern "C" { # define BIO_FLAGS_NONCLEAR_RST 0x400 # define BIO_FLAGS_IN_EOF 0x800 -/* the BIO FLAGS values 0x1000 to 0x4000 are reserved for internal KTLS flags */ +/* the BIO FLAGS values 0x1000 to 0x8000 are reserved for internal KTLS flags */ typedef union bio_addr_st BIO_ADDR; typedef struct bio_addrinfo_st BIO_ADDRINFO; @@ -256,12 +286,14 @@ void BIO_clear_flags(BIO *b, int flags); # define BIO_RR_ACCEPT 0x03 /* These are passed by the BIO callback */ -# define BIO_CB_FREE 0x01 -# define BIO_CB_READ 0x02 -# define BIO_CB_WRITE 0x03 -# define BIO_CB_PUTS 0x04 -# define BIO_CB_GETS 0x05 -# define BIO_CB_CTRL 0x06 +# define BIO_CB_FREE 0x01 +# define BIO_CB_READ 0x02 +# define BIO_CB_WRITE 0x03 +# define BIO_CB_PUTS 0x04 +# define BIO_CB_GETS 0x05 +# define BIO_CB_CTRL 0x06 +# define BIO_CB_RECVMMSG 0x07 +# define BIO_CB_SENDMMSG 0x08 /* * The callback is called before and after the underling operation, The @@ -362,6 +394,36 @@ struct bio_dgram_sctp_prinfo { }; # endif +/* BIO_sendmmsg/BIO_recvmmsg-related definitions */ +typedef struct bio_msg_st { + void *data; + size_t data_len; + BIO_ADDR *peer, *local; + uint64_t flags; +} BIO_MSG; + +typedef struct bio_mmsg_cb_args_st { + BIO_MSG *msg; + size_t stride, num_msg; + uint64_t flags; + size_t *msgs_processed; +} BIO_MMSG_CB_ARGS; + +#define BIO_POLL_DESCRIPTOR_TYPE_NONE 0 +#define BIO_POLL_DESCRIPTOR_TYPE_SOCK_FD 1 +#define BIO_POLL_DESCRIPTOR_TYPE_SSL 2 +#define BIO_POLL_DESCRIPTOR_CUSTOM_START 8192 + +typedef struct bio_poll_descriptor_st { + uint32_t type; + union { + int fd; + void *custom; + uintptr_t custom_ui; + SSL *ssl; + } value; +} BIO_POLL_DESCRIPTOR; + /* * #define BIO_CONN_get_param_hostname BIO_ctrl */ @@ -428,10 +490,17 @@ struct bio_dgram_sctp_prinfo { # define BIO_C_SET_CONNECT_MODE 155 +# define BIO_C_SET_TFO 156 /* like BIO_C_SET_NBIO */ + +# define BIO_C_SET_SOCK_TYPE 157 +# define BIO_C_GET_SOCK_TYPE 158 +# define BIO_C_GET_DGRAM_BIO 159 + # define BIO_set_app_data(s,arg) BIO_set_ex_data(s,0,arg) # define BIO_get_app_data(s) BIO_get_ex_data(s,0) -# define BIO_set_nbio(b,n) BIO_ctrl(b,BIO_C_SET_NBIO,(n),NULL) +# define BIO_set_nbio(b,n) BIO_ctrl(b,BIO_C_SET_NBIO,(n),NULL) +# define BIO_set_tfo(b,n) BIO_ctrl(b,BIO_C_SET_TFO,(n),NULL) # ifndef OPENSSL_NO_SOCK /* IP families we support, for BIO_s_connect() and BIO_s_accept() */ @@ -452,7 +521,11 @@ struct bio_dgram_sctp_prinfo { # define BIO_get_conn_port(b) ((const char *)BIO_ptr_ctrl(b,BIO_C_GET_CONNECT,1)) # define BIO_get_conn_address(b) ((const BIO_ADDR *)BIO_ptr_ctrl(b,BIO_C_GET_CONNECT,2)) # define BIO_get_conn_ip_family(b) BIO_ctrl(b,BIO_C_GET_CONNECT,3,NULL) +# define BIO_get_conn_mode(b) BIO_ctrl(b,BIO_C_GET_CONNECT,4,NULL) # define BIO_set_conn_mode(b,n) BIO_ctrl(b,BIO_C_SET_CONNECT_MODE,(n),NULL) +# define BIO_set_sock_type(b,t) BIO_ctrl(b,BIO_C_SET_SOCK_TYPE,(t),NULL) +# define BIO_get_sock_type(b) BIO_ctrl(b,BIO_C_GET_SOCK_TYPE,0,NULL) +# define BIO_get0_dgram_bio(b, p) BIO_ctrl(b,BIO_C_GET_DGRAM_BIO,0,(void *)(BIO **)(p)) /* BIO_s_accept() */ # define BIO_set_accept_name(b,name) BIO_ctrl(b,BIO_C_SET_ACCEPT,0, \ @@ -469,6 +542,7 @@ struct bio_dgram_sctp_prinfo { (char *)(bio)) # define BIO_set_accept_ip_family(b,f) BIO_int_ctrl(b,BIO_C_SET_ACCEPT,4,f) # define BIO_get_accept_ip_family(b) BIO_ctrl(b,BIO_C_GET_ACCEPT,4,NULL) +# define BIO_set_tfo_accept(b,n) BIO_ctrl(b,BIO_C_SET_ACCEPT,5,(n)?(void *)"a":NULL) /* Aliases kept for backward compatibility */ # define BIO_BIND_NORMAL 0 @@ -596,8 +670,32 @@ int BIO_ctrl_reset_read_request(BIO *b); (int)BIO_ctrl(b, BIO_CTRL_DGRAM_GET_PEER, 0, (char *)(peer)) # define BIO_dgram_set_peer(b,peer) \ (int)BIO_ctrl(b, BIO_CTRL_DGRAM_SET_PEER, 0, (char *)(peer)) +# define BIO_dgram_detect_peer_addr(b,peer) \ + (int)BIO_ctrl(b, BIO_CTRL_DGRAM_DETECT_PEER_ADDR, 0, (char *)(peer)) # define BIO_dgram_get_mtu_overhead(b) \ (unsigned int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_MTU_OVERHEAD, 0, NULL) +# define BIO_dgram_get_local_addr_cap(b) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_LOCAL_ADDR_CAP, 0, NULL) +# define BIO_dgram_get_local_addr_enable(b, penable) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_LOCAL_ADDR_ENABLE, 0, (char *)(penable)) +# define BIO_dgram_set_local_addr_enable(b, enable) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET_LOCAL_ADDR_ENABLE, (enable), NULL) +# define BIO_dgram_get_effective_caps(b) \ + (uint32_t)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_EFFECTIVE_CAPS, 0, NULL) +# define BIO_dgram_get_caps(b) \ + (uint32_t)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_CAPS, 0, NULL) +# define BIO_dgram_set_caps(b, caps) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET_CAPS, (long)(caps), NULL) +# define BIO_dgram_get_no_trunc(b) \ + (unsigned int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_NO_TRUNC, 0, NULL) +# define BIO_dgram_set_no_trunc(b, enable) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET_NO_TRUNC, (enable), NULL) +# define BIO_dgram_get_mtu(b) \ + (unsigned int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_MTU, 0, NULL) +# define BIO_dgram_set_mtu(b, mtu) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET_MTU, (mtu), NULL) +# define BIO_dgram_set0_local_addr(b, addr) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET0_LOCAL_ADDR, 0, (addr)) /* ctrl macros for BIO_f_prefix */ # define BIO_set_prefix(b,p) BIO_ctrl((b), BIO_CTRL_SET_PREFIX, 0, (void *)(p)) @@ -640,10 +738,18 @@ void BIO_vfree(BIO *a); int BIO_up_ref(BIO *a); int BIO_read(BIO *b, void *data, int dlen); int BIO_read_ex(BIO *b, void *data, size_t dlen, size_t *readbytes); +__owur int BIO_recvmmsg(BIO *b, BIO_MSG *msg, + size_t stride, size_t num_msg, uint64_t flags, + size_t *msgs_processed); int BIO_gets(BIO *bp, char *buf, int size); int BIO_get_line(BIO *bio, char *buf, int size); int BIO_write(BIO *b, const void *data, int dlen); int BIO_write_ex(BIO *b, const void *data, size_t dlen, size_t *written); +__owur int BIO_sendmmsg(BIO *b, BIO_MSG *msg, + size_t stride, size_t num_msg, uint64_t flags, + size_t *msgs_processed); +__owur int BIO_get_rpoll_descriptor(BIO *b, BIO_POLL_DESCRIPTOR *desc); +__owur int BIO_get_wpoll_descriptor(BIO *b, BIO_POLL_DESCRIPTOR *desc); int BIO_puts(BIO *bp, const char *buf); int BIO_indent(BIO *b, int indent, int max); long BIO_ctrl(BIO *bp, int cmd, long larg, void *parg); @@ -667,6 +773,9 @@ int BIO_nwrite0(BIO *bio, char **buf); int BIO_nwrite(BIO *bio, char **buf, int num); const BIO_METHOD *BIO_s_mem(void); +# ifndef OPENSSL_NO_DGRAM +const BIO_METHOD *BIO_s_dgram_mem(void); +# endif const BIO_METHOD *BIO_s_secmem(void); BIO *BIO_new_mem_buf(const void *buf, int len); # ifndef OPENSSL_NO_SOCK @@ -686,6 +795,7 @@ const BIO_METHOD *BIO_f_nbio_test(void); const BIO_METHOD *BIO_f_prefix(void); const BIO_METHOD *BIO_s_core(void); # ifndef OPENSSL_NO_DGRAM +const BIO_METHOD *BIO_s_dgram_pair(void); const BIO_METHOD *BIO_s_datagram(void); int BIO_dgram_non_fatal_error(int error); BIO *BIO_new_dgram(int fd, int close_flag); @@ -704,6 +814,7 @@ int BIO_dgram_sctp_msg_waiting(BIO *b); # ifndef OPENSSL_NO_SOCK int BIO_sock_should_retry(int i); int BIO_sock_non_fatal_error(int error); +int BIO_err_is_non_fatal(unsigned int errcode); int BIO_socket_wait(int fd, int for_read, time_t max_time); # endif int BIO_wait(BIO *bio, time_t max_time, unsigned int nap_milliseconds); @@ -726,6 +837,8 @@ int BIO_hex_string(BIO *out, int indent, int width, const void *data, # ifndef OPENSSL_NO_SOCK BIO_ADDR *BIO_ADDR_new(void); +int BIO_ADDR_copy(BIO_ADDR *dst, const BIO_ADDR *src); +BIO_ADDR *BIO_ADDR_dup(const BIO_ADDR *ap); int BIO_ADDR_rawmake(BIO_ADDR *ap, int family, const void *where, size_t wherelen, unsigned short port); void BIO_ADDR_free(BIO_ADDR *); @@ -788,6 +901,7 @@ int BIO_sock_info(int sock, # define BIO_SOCK_KEEPALIVE 0x04 # define BIO_SOCK_NONBLOCK 0x08 # define BIO_SOCK_NODELAY 0x10 +# define BIO_SOCK_TFO 0x20 int BIO_socket(int domain, int socktype, int protocol, int options); int BIO_connect(int sock, const BIO_ADDR *addr, int options); @@ -805,6 +919,11 @@ BIO *BIO_new_fd(int fd, int close_flag); int BIO_new_bio_pair(BIO **bio1, size_t writebuf1, BIO **bio2, size_t writebuf2); +# ifndef OPENSSL_NO_DGRAM +int BIO_new_bio_dgram_pair(BIO **bio1, size_t writebuf1, + BIO **bio2, size_t writebuf2); +# endif + /* * If successful, returns 1 and in *bio1, *bio2 two BIO pair endpoints. * Otherwise returns 0 and sets *bio1 and *bio2 to NULL. Size 0 uses default @@ -849,38 +968,54 @@ ossl_bio__attr__((__format__(ossl_bio__printf__, 3, 0))); BIO_METHOD *BIO_meth_new(int type, const char *name); void BIO_meth_free(BIO_METHOD *biom); -int (*BIO_meth_get_write(const BIO_METHOD *biom)) (BIO *, const char *, int); -int (*BIO_meth_get_write_ex(const BIO_METHOD *biom)) (BIO *, const char *, size_t, - size_t *); int BIO_meth_set_write(BIO_METHOD *biom, int (*write) (BIO *, const char *, int)); int BIO_meth_set_write_ex(BIO_METHOD *biom, int (*bwrite) (BIO *, const char *, size_t, size_t *)); -int (*BIO_meth_get_read(const BIO_METHOD *biom)) (BIO *, char *, int); -int (*BIO_meth_get_read_ex(const BIO_METHOD *biom)) (BIO *, char *, size_t, size_t *); +int BIO_meth_set_sendmmsg(BIO_METHOD *biom, + int (*f) (BIO *, BIO_MSG *, size_t, size_t, + uint64_t, size_t *)); int BIO_meth_set_read(BIO_METHOD *biom, int (*read) (BIO *, char *, int)); int BIO_meth_set_read_ex(BIO_METHOD *biom, int (*bread) (BIO *, char *, size_t, size_t *)); -int (*BIO_meth_get_puts(const BIO_METHOD *biom)) (BIO *, const char *); +int BIO_meth_set_recvmmsg(BIO_METHOD *biom, + int (*f) (BIO *, BIO_MSG *, size_t, size_t, + uint64_t, size_t *)); int BIO_meth_set_puts(BIO_METHOD *biom, int (*puts) (BIO *, const char *)); -int (*BIO_meth_get_gets(const BIO_METHOD *biom)) (BIO *, char *, int); int BIO_meth_set_gets(BIO_METHOD *biom, int (*ossl_gets) (BIO *, char *, int)); -long (*BIO_meth_get_ctrl(const BIO_METHOD *biom)) (BIO *, int, long, void *); int BIO_meth_set_ctrl(BIO_METHOD *biom, long (*ctrl) (BIO *, int, long, void *)); -int (*BIO_meth_get_create(const BIO_METHOD *bion)) (BIO *); int BIO_meth_set_create(BIO_METHOD *biom, int (*create) (BIO *)); -int (*BIO_meth_get_destroy(const BIO_METHOD *biom)) (BIO *); int BIO_meth_set_destroy(BIO_METHOD *biom, int (*destroy) (BIO *)); -long (*BIO_meth_get_callback_ctrl(const BIO_METHOD *biom)) - (BIO *, int, BIO_info_cb *); int BIO_meth_set_callback_ctrl(BIO_METHOD *biom, long (*callback_ctrl) (BIO *, int, BIO_info_cb *)); - +# ifndef OPENSSL_NO_DEPRECATED_3_5 +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_write(const BIO_METHOD *biom)) (BIO *, const char *, + int); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_write_ex(const BIO_METHOD *biom)) (BIO *, const char *, + size_t, size_t *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_sendmmsg(const BIO_METHOD *biom))(BIO *, BIO_MSG *, + size_t, size_t, + uint64_t, size_t *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_read(const BIO_METHOD *biom)) (BIO *, char *, int); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_read_ex(const BIO_METHOD *biom)) (BIO *, char *, + size_t, size_t *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_recvmmsg(const BIO_METHOD *biom))(BIO *, BIO_MSG *, + size_t, size_t, + uint64_t, size_t *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_puts(const BIO_METHOD *biom)) (BIO *, const char *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_gets(const BIO_METHOD *biom)) (BIO *, char *, int); +OSSL_DEPRECATEDIN_3_5 long (*BIO_meth_get_ctrl(const BIO_METHOD *biom)) (BIO *, int, + long, void *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_create(const BIO_METHOD *bion)) (BIO *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_destroy(const BIO_METHOD *biom)) (BIO *); +OSSL_DEPRECATEDIN_3_5 long (*BIO_meth_get_callback_ctrl(const BIO_METHOD *biom)) (BIO *, int, + BIO_info_cb *); +# endif # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/BSD-x86/asm_avx2/include/openssl/cmp.h b/deps/openssl/config/archs/BSD-x86/asm_avx2/include/openssl/cmp.h index 49825570d8c303..05aed3029d594c 100644 --- a/deps/openssl/config/archs/BSD-x86/asm_avx2/include/openssl/cmp.h +++ b/deps/openssl/config/archs/BSD-x86/asm_avx2/include/openssl/cmp.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/cmp.h.in * - * Copyright 2007-2023 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2007-2024 The OpenSSL Project Authors. All Rights Reserved. * Copyright Nokia 2007-2019 * Copyright Siemens AG 2015-2019 * @@ -35,7 +35,9 @@ extern "C" { # endif -# define OSSL_CMP_PVNO 2 +# define OSSL_CMP_PVNO_2 2 +# define OSSL_CMP_PVNO_3 3 +# define OSSL_CMP_PVNO OSSL_CMP_PVNO_2 /* v2 is the default */ /*- * PKIFailureInfo ::= BIT STRING { @@ -137,7 +139,6 @@ extern "C" { # if OSSL_CMP_PKIFAILUREINFO_MAX_BIT_PATTERN > INT_MAX # error CMP_PKIFAILUREINFO_MAX bit pattern does not fit in type int # endif - typedef ASN1_BIT_STRING OSSL_CMP_PKIFAILUREINFO; # define OSSL_CMP_CTX_FAILINFO_badAlg (1 << 0) @@ -203,8 +204,8 @@ typedef ASN1_BIT_STRING OSSL_CMP_PKIFAILUREINFO; # define OSSL_CMP_PKISTATUS_revocationWarning 4 # define OSSL_CMP_PKISTATUS_revocationNotification 5 # define OSSL_CMP_PKISTATUS_keyUpdateWarning 6 - typedef ASN1_INTEGER OSSL_CMP_PKISTATUS; + DECLARE_ASN1_ITEM(OSSL_CMP_PKISTATUS) # define OSSL_CMP_CERTORENCCERT_CERTIFICATE 0 @@ -274,6 +275,46 @@ SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CMP_ITAV, OSSL_CMP_ITAV, OSSL_CMP_ITAV) #define sk_OSSL_CMP_ITAV_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_CMP_ITAV) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_CMP_ITAV_sk_type(sk), ossl_check_OSSL_CMP_ITAV_copyfunc_type(copyfunc), ossl_check_OSSL_CMP_ITAV_freefunc_type(freefunc))) #define sk_OSSL_CMP_ITAV_set_cmp_func(sk, cmp) ((sk_OSSL_CMP_ITAV_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CMP_ITAV_sk_type(sk), ossl_check_OSSL_CMP_ITAV_compfunc_type(cmp))) + +typedef struct ossl_cmp_crlstatus_st OSSL_CMP_CRLSTATUS; +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CMP_CRLSTATUS, OSSL_CMP_CRLSTATUS, OSSL_CMP_CRLSTATUS) +#define sk_OSSL_CMP_CRLSTATUS_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_value(sk, idx) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_value(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk), (idx))) +#define sk_OSSL_CMP_CRLSTATUS_new(cmp) ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_new(ossl_check_OSSL_CMP_CRLSTATUS_compfunc_type(cmp))) +#define sk_OSSL_CMP_CRLSTATUS_new_null() ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_new_null()) +#define sk_OSSL_CMP_CRLSTATUS_new_reserve(cmp, n) ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_CMP_CRLSTATUS_compfunc_type(cmp), (n))) +#define sk_OSSL_CMP_CRLSTATUS_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), (n)) +#define sk_OSSL_CMP_CRLSTATUS_free(sk) OPENSSL_sk_free(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_delete(sk, i) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_delete(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), (i))) +#define sk_OSSL_CMP_CRLSTATUS_delete_ptr(sk, ptr) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr))) +#define sk_OSSL_CMP_CRLSTATUS_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr)) +#define sk_OSSL_CMP_CRLSTATUS_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr)) +#define sk_OSSL_CMP_CRLSTATUS_pop(sk) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_pop(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk))) +#define sk_OSSL_CMP_CRLSTATUS_shift(sk) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_shift(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk))) +#define sk_OSSL_CMP_CRLSTATUS_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk),ossl_check_OSSL_CMP_CRLSTATUS_freefunc_type(freefunc)) +#define sk_OSSL_CMP_CRLSTATUS_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr), (idx)) +#define sk_OSSL_CMP_CRLSTATUS_set(sk, idx, ptr) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_set(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), (idx), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr))) +#define sk_OSSL_CMP_CRLSTATUS_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr)) +#define sk_OSSL_CMP_CRLSTATUS_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr)) +#define sk_OSSL_CMP_CRLSTATUS_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr), pnum) +#define sk_OSSL_CMP_CRLSTATUS_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_dup(sk) ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_dup(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk))) +#define sk_OSSL_CMP_CRLSTATUS_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_copyfunc_type(copyfunc), ossl_check_OSSL_CMP_CRLSTATUS_freefunc_type(freefunc))) +#define sk_OSSL_CMP_CRLSTATUS_set_cmp_func(sk, cmp) ((sk_OSSL_CMP_CRLSTATUS_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_compfunc_type(cmp))) + + +typedef OSSL_CRMF_ATTRIBUTETYPEANDVALUE OSSL_CMP_ATAV; +# define OSSL_CMP_ATAV_free OSSL_CRMF_ATTRIBUTETYPEANDVALUE_free +typedef STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) OSSL_CMP_ATAVS; +DECLARE_ASN1_FUNCTIONS(OSSL_CMP_ATAVS) +# define stack_st_OSSL_CMP_ATAV stack_st_OSSL_CRMF_ATTRIBUTETYPEANDVALUE +# define sk_OSSL_CMP_ATAV_num sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_num +# define sk_OSSL_CMP_ATAV_value sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_value +# define sk_OSSL_CMP_ATAV_push sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_push +# define sk_OSSL_CMP_ATAV_pop_free sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_pop_free + typedef struct ossl_cmp_revrepcontent_st OSSL_CMP_REVREPCONTENT; typedef struct ossl_cmp_pkisi_st OSSL_CMP_PKISI; DECLARE_ASN1_FUNCTIONS(OSSL_CMP_PKISI) @@ -375,21 +416,75 @@ void OSSL_CMP_ITAV_set0(OSSL_CMP_ITAV *itav, ASN1_OBJECT *type, ASN1_TYPE *value); ASN1_OBJECT *OSSL_CMP_ITAV_get0_type(const OSSL_CMP_ITAV *itav); ASN1_TYPE *OSSL_CMP_ITAV_get0_value(const OSSL_CMP_ITAV *itav); -int OSSL_CMP_ITAV_push0_stack_item(STACK_OF(OSSL_CMP_ITAV) **itav_sk_p, +int OSSL_CMP_ITAV_push0_stack_item(STACK_OF(OSSL_CMP_ITAV) **sk_p, OSSL_CMP_ITAV *itav); void OSSL_CMP_ITAV_free(OSSL_CMP_ITAV *itav); + +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new0_certProfile(STACK_OF(ASN1_UTF8STRING) + *certProfile); +int OSSL_CMP_ITAV_get0_certProfile(const OSSL_CMP_ITAV *itav, + STACK_OF(ASN1_UTF8STRING) **out); +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new_caCerts(const STACK_OF(X509) *caCerts); +int OSSL_CMP_ITAV_get0_caCerts(const OSSL_CMP_ITAV *itav, STACK_OF(X509) **out); + +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new_rootCaCert(const X509 *rootCaCert); +int OSSL_CMP_ITAV_get0_rootCaCert(const OSSL_CMP_ITAV *itav, X509 **out); +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new_rootCaKeyUpdate(const X509 *newWithNew, + const X509 *newWithOld, + const X509 *oldWithNew); +int OSSL_CMP_ITAV_get0_rootCaKeyUpdate(const OSSL_CMP_ITAV *itav, + X509 **newWithNew, + X509 **newWithOld, + X509 **oldWithNew); + +OSSL_CMP_CRLSTATUS *OSSL_CMP_CRLSTATUS_create(const X509_CRL *crl, + const X509 *cert, int only_DN); +OSSL_CMP_CRLSTATUS *OSSL_CMP_CRLSTATUS_new1(const DIST_POINT_NAME *dpn, + const GENERAL_NAMES *issuer, + const ASN1_TIME *thisUpdate); +int OSSL_CMP_CRLSTATUS_get0(const OSSL_CMP_CRLSTATUS *crlstatus, + DIST_POINT_NAME **dpn, GENERAL_NAMES **issuer, + ASN1_TIME **thisUpdate); +void OSSL_CMP_CRLSTATUS_free(OSSL_CMP_CRLSTATUS *crlstatus); +OSSL_CMP_ITAV +*OSSL_CMP_ITAV_new0_crlStatusList(STACK_OF(OSSL_CMP_CRLSTATUS) *crlStatusList); +int OSSL_CMP_ITAV_get0_crlStatusList(const OSSL_CMP_ITAV *itav, + STACK_OF(OSSL_CMP_CRLSTATUS) **out); +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new_crls(const X509_CRL *crls); +int OSSL_CMP_ITAV_get0_crls(const OSSL_CMP_ITAV *it, STACK_OF(X509_CRL) **out); +OSSL_CMP_ITAV +*OSSL_CMP_ITAV_new0_certReqTemplate(OSSL_CRMF_CERTTEMPLATE *certTemplate, + OSSL_CMP_ATAVS *keySpec); +int OSSL_CMP_ITAV_get1_certReqTemplate(const OSSL_CMP_ITAV *itav, + OSSL_CRMF_CERTTEMPLATE **certTemplate, + OSSL_CMP_ATAVS **keySpec); + +OSSL_CMP_ATAV *OSSL_CMP_ATAV_create(ASN1_OBJECT *type, ASN1_TYPE *value); +void OSSL_CMP_ATAV_set0(OSSL_CMP_ATAV *itav, ASN1_OBJECT *type, + ASN1_TYPE *value); +ASN1_OBJECT *OSSL_CMP_ATAV_get0_type(const OSSL_CMP_ATAV *itav); +ASN1_TYPE *OSSL_CMP_ATAV_get0_value(const OSSL_CMP_ATAV *itav); +OSSL_CMP_ATAV *OSSL_CMP_ATAV_new_algId(const X509_ALGOR *alg); +X509_ALGOR *OSSL_CMP_ATAV_get0_algId(const OSSL_CMP_ATAV *atav); +OSSL_CMP_ATAV *OSSL_CMP_ATAV_new_rsaKeyLen(int len); +int OSSL_CMP_ATAV_get_rsaKeyLen(const OSSL_CMP_ATAV *atav); +int OSSL_CMP_ATAV_push1(OSSL_CMP_ATAVS **sk_p, const OSSL_CMP_ATAV *atav); + void OSSL_CMP_MSG_free(OSSL_CMP_MSG *msg); /* from cmp_ctx.c */ OSSL_CMP_CTX *OSSL_CMP_CTX_new(OSSL_LIB_CTX *libctx, const char *propq); void OSSL_CMP_CTX_free(OSSL_CMP_CTX *ctx); int OSSL_CMP_CTX_reinit(OSSL_CMP_CTX *ctx); +OSSL_LIB_CTX *OSSL_CMP_CTX_get0_libctx(const OSSL_CMP_CTX *ctx); +const char *OSSL_CMP_CTX_get0_propq(const OSSL_CMP_CTX *ctx); /* CMP general options: */ # define OSSL_CMP_OPT_LOG_VERBOSITY 0 /* CMP transfer options: */ -# define OSSL_CMP_OPT_KEEP_ALIVE 10 -# define OSSL_CMP_OPT_MSG_TIMEOUT 11 +# define OSSL_CMP_OPT_KEEP_ALIVE 10 +# define OSSL_CMP_OPT_MSG_TIMEOUT 11 # define OSSL_CMP_OPT_TOTAL_TIMEOUT 12 +# define OSSL_CMP_OPT_USE_TLS 13 /* CMP request options: */ # define OSSL_CMP_OPT_VALIDITY_DAYS 20 # define OSSL_CMP_OPT_SUBJECTALTNAME_NODEFAULT 21 @@ -407,6 +502,7 @@ int OSSL_CMP_CTX_reinit(OSSL_CMP_CTX *ctx); # define OSSL_CMP_OPT_DIGEST_ALGNID 34 # define OSSL_CMP_OPT_IGNORE_KEYUSAGE 35 # define OSSL_CMP_OPT_PERMIT_TA_IN_EXTRACERTS_FOR_IR 36 +# define OSSL_CMP_OPT_NO_CACHE_EXTRACERTS 37 int OSSL_CMP_CTX_set_option(OSSL_CMP_CTX *ctx, int opt, int val); int OSSL_CMP_CTX_get_option(const OSSL_CMP_CTX *ctx, int opt); /* CMP-specific callback for logging and outputting the error queue: */ @@ -420,9 +516,11 @@ int OSSL_CMP_CTX_set1_server(OSSL_CMP_CTX *ctx, const char *address); int OSSL_CMP_CTX_set_serverPort(OSSL_CMP_CTX *ctx, int port); int OSSL_CMP_CTX_set1_proxy(OSSL_CMP_CTX *ctx, const char *name); int OSSL_CMP_CTX_set1_no_proxy(OSSL_CMP_CTX *ctx, const char *names); +# ifndef OPENSSL_NO_HTTP int OSSL_CMP_CTX_set_http_cb(OSSL_CMP_CTX *ctx, OSSL_HTTP_bio_cb_t cb); int OSSL_CMP_CTX_set_http_cb_arg(OSSL_CMP_CTX *ctx, void *arg); void *OSSL_CMP_CTX_get_http_cb_arg(const OSSL_CMP_CTX *ctx); +# endif typedef OSSL_CMP_MSG *(*OSSL_CMP_transfer_cb_t) (OSSL_CMP_CTX *ctx, const OSSL_CMP_MSG *req); int OSSL_CMP_CTX_set_transfer_cb(OSSL_CMP_CTX *ctx, OSSL_CMP_transfer_cb_t cb); @@ -432,7 +530,9 @@ void *OSSL_CMP_CTX_get_transfer_cb_arg(const OSSL_CMP_CTX *ctx); int OSSL_CMP_CTX_set1_srvCert(OSSL_CMP_CTX *ctx, X509 *cert); int OSSL_CMP_CTX_set1_expected_sender(OSSL_CMP_CTX *ctx, const X509_NAME *name); int OSSL_CMP_CTX_set0_trustedStore(OSSL_CMP_CTX *ctx, X509_STORE *store); +# define OSSL_CMP_CTX_set0_trusted OSSL_CMP_CTX_set0_trustedStore X509_STORE *OSSL_CMP_CTX_get0_trustedStore(const OSSL_CMP_CTX *ctx); +# define OSSL_CMP_CTX_get0_trusted OSSL_CMP_CTX_get0_trustedStore int OSSL_CMP_CTX_set1_untrusted(OSSL_CMP_CTX *ctx, STACK_OF(X509) *certs); STACK_OF(X509) *OSSL_CMP_CTX_get0_untrusted(const OSSL_CMP_CTX *ctx); /* client authentication: */ @@ -448,12 +548,15 @@ int OSSL_CMP_CTX_set1_secretValue(OSSL_CMP_CTX *ctx, int OSSL_CMP_CTX_set1_recipient(OSSL_CMP_CTX *ctx, const X509_NAME *name); int OSSL_CMP_CTX_push0_geninfo_ITAV(OSSL_CMP_CTX *ctx, OSSL_CMP_ITAV *itav); int OSSL_CMP_CTX_reset_geninfo_ITAVs(OSSL_CMP_CTX *ctx); +STACK_OF(OSSL_CMP_ITAV) + *OSSL_CMP_CTX_get0_geninfo_ITAVs(const OSSL_CMP_CTX *ctx); int OSSL_CMP_CTX_set1_extraCertsOut(OSSL_CMP_CTX *ctx, STACK_OF(X509) *extraCertsOut); /* certificate template: */ int OSSL_CMP_CTX_set0_newPkey(OSSL_CMP_CTX *ctx, int priv, EVP_PKEY *pkey); EVP_PKEY *OSSL_CMP_CTX_get0_newPkey(const OSSL_CMP_CTX *ctx, int priv); int OSSL_CMP_CTX_set1_issuer(OSSL_CMP_CTX *ctx, const X509_NAME *name); +int OSSL_CMP_CTX_set1_serialNumber(OSSL_CMP_CTX *ctx, const ASN1_INTEGER *sn); int OSSL_CMP_CTX_set1_subjectName(OSSL_CMP_CTX *ctx, const X509_NAME *name); int OSSL_CMP_CTX_push1_subjectAltName(OSSL_CMP_CTX *ctx, const GENERAL_NAME *name); @@ -477,6 +580,7 @@ int OSSL_CMP_CTX_get_status(const OSSL_CMP_CTX *ctx); OSSL_CMP_PKIFREETEXT *OSSL_CMP_CTX_get0_statusString(const OSSL_CMP_CTX *ctx); int OSSL_CMP_CTX_get_failInfoCode(const OSSL_CMP_CTX *ctx); # define OSSL_CMP_PKISI_BUFLEN 1024 +X509 *OSSL_CMP_CTX_get0_validatedSrvCert(const OSSL_CMP_CTX *ctx); X509 *OSSL_CMP_CTX_get0_newCert(const OSSL_CMP_CTX *ctx); STACK_OF(X509) *OSSL_CMP_CTX_get1_newChain(const OSSL_CMP_CTX *ctx); STACK_OF(X509) *OSSL_CMP_CTX_get1_caPubs(const OSSL_CMP_CTX *ctx); @@ -498,10 +602,13 @@ OSSL_CMP_STATUSINFO_new(int status, int fail_info, const char *text); ASN1_OCTET_STRING *OSSL_CMP_HDR_get0_transactionID(const OSSL_CMP_PKIHEADER *hdr); ASN1_OCTET_STRING *OSSL_CMP_HDR_get0_recipNonce(const OSSL_CMP_PKIHEADER *hdr); +STACK_OF(OSSL_CMP_ITAV) + *OSSL_CMP_HDR_get0_geninfo_ITAVs(const OSSL_CMP_PKIHEADER *hdr); /* from cmp_msg.c */ OSSL_CMP_PKIHEADER *OSSL_CMP_MSG_get0_header(const OSSL_CMP_MSG *msg); int OSSL_CMP_MSG_get_bodytype(const OSSL_CMP_MSG *msg); +X509_PUBKEY *OSSL_CMP_MSG_get0_certreq_publickey(const OSSL_CMP_MSG *msg); int OSSL_CMP_MSG_update_transactionID(OSSL_CMP_CTX *ctx, OSSL_CMP_MSG *msg); int OSSL_CMP_MSG_update_recipNonce(OSSL_CMP_CTX *ctx, OSSL_CMP_MSG *msg); OSSL_CRMF_MSG *OSSL_CMP_CTX_setup_CRM(OSSL_CMP_CTX *ctx, int for_KUR, int rid); @@ -517,8 +624,10 @@ int OSSL_CMP_validate_cert_path(const OSSL_CMP_CTX *ctx, X509_STORE *trusted_store, X509 *cert); /* from cmp_http.c */ +# ifndef OPENSSL_NO_HTTP OSSL_CMP_MSG *OSSL_CMP_MSG_http_perform(OSSL_CMP_CTX *ctx, const OSSL_CMP_MSG *req); +# endif /* from cmp_server.c */ typedef struct ossl_cmp_srv_ctx_st OSSL_CMP_SRV_CTX; @@ -561,6 +670,13 @@ int OSSL_CMP_SRV_CTX_init(OSSL_CMP_SRV_CTX *srv_ctx, void *custom_ctx, OSSL_CMP_SRV_error_cb_t process_error, OSSL_CMP_SRV_certConf_cb_t process_certConf, OSSL_CMP_SRV_pollReq_cb_t process_pollReq); +typedef int (*OSSL_CMP_SRV_delayed_delivery_cb_t)(OSSL_CMP_SRV_CTX *srv_ctx, + const OSSL_CMP_MSG *req); +typedef int (*OSSL_CMP_SRV_clean_transaction_cb_t)(OSSL_CMP_SRV_CTX *srv_ctx, + const ASN1_OCTET_STRING *id); +int OSSL_CMP_SRV_CTX_init_trans(OSSL_CMP_SRV_CTX *srv_ctx, + OSSL_CMP_SRV_delayed_delivery_cb_t delay, + OSSL_CMP_SRV_clean_transaction_cb_t clean); OSSL_CMP_CTX *OSSL_CMP_SRV_CTX_get0_cmp_ctx(const OSSL_CMP_SRV_CTX *srv_ctx); void *OSSL_CMP_SRV_CTX_get0_custom_ctx(const OSSL_CMP_SRV_CTX *srv_ctx); int OSSL_CMP_SRV_CTX_set_send_unprotected_errors(OSSL_CMP_SRV_CTX *srv_ctx, @@ -577,6 +693,8 @@ X509 *OSSL_CMP_exec_certreq(OSSL_CMP_CTX *ctx, int req_type, # define OSSL_CMP_CR 2 # define OSSL_CMP_P10CR 4 # define OSSL_CMP_KUR 7 +# define OSSL_CMP_GENM 21 +# define OSSL_CMP_ERROR 23 # define OSSL_CMP_exec_IR_ses(ctx) \ OSSL_CMP_exec_certreq(ctx, OSSL_CMP_IR, NULL) # define OSSL_CMP_exec_CR_ses(ctx) \ @@ -590,6 +708,18 @@ int OSSL_CMP_try_certreq(OSSL_CMP_CTX *ctx, int req_type, int OSSL_CMP_exec_RR_ses(OSSL_CMP_CTX *ctx); STACK_OF(OSSL_CMP_ITAV) *OSSL_CMP_exec_GENM_ses(OSSL_CMP_CTX *ctx); +/* from cmp_genm.c */ +int OSSL_CMP_get1_caCerts(OSSL_CMP_CTX *ctx, STACK_OF(X509) **out); +int OSSL_CMP_get1_rootCaKeyUpdate(OSSL_CMP_CTX *ctx, + const X509 *oldWithOld, X509 **newWithNew, + X509 **newWithOld, X509 **oldWithNew); +int OSSL_CMP_get1_crlUpdate(OSSL_CMP_CTX *ctx, const X509 *crlcert, + const X509_CRL *last_crl, + X509_CRL **crl); +int OSSL_CMP_get1_certReqTemplate(OSSL_CMP_CTX *ctx, + OSSL_CRMF_CERTTEMPLATE **certTemplate, + OSSL_CMP_ATAVS **keySpec); + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/BSD-x86/asm_avx2/include/openssl/cms.h b/deps/openssl/config/archs/BSD-x86/asm_avx2/include/openssl/cms.h index 3b453e6a2187a2..63afab563557b0 100644 --- a/deps/openssl/config/archs/BSD-x86/asm_avx2/include/openssl/cms.h +++ b/deps/openssl/config/archs/BSD-x86/asm_avx2/include/openssl/cms.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/cms.h.in * - * Copyright 2008-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2008-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -31,8 +31,10 @@ extern "C" { # endif +typedef struct CMS_EnvelopedData_st CMS_EnvelopedData; typedef struct CMS_ContentInfo_st CMS_ContentInfo; typedef struct CMS_SignerInfo_st CMS_SignerInfo; +typedef struct CMS_SignedData_st CMS_SignedData; typedef struct CMS_CertificateChoices CMS_CertificateChoices; typedef struct CMS_RevocationInfoChoice_st CMS_RevocationInfoChoice; typedef struct CMS_RecipientInfo_st CMS_RecipientInfo; @@ -147,10 +149,14 @@ SKM_DEFINE_STACK_OF_INTERNAL(CMS_RevocationInfoChoice, CMS_RevocationInfoChoice, #define sk_CMS_RevocationInfoChoice_set_cmp_func(sk, cmp) ((sk_CMS_RevocationInfoChoice_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_CMS_RevocationInfoChoice_sk_type(sk), ossl_check_CMS_RevocationInfoChoice_compfunc_type(cmp))) +DECLARE_ASN1_ITEM(CMS_EnvelopedData) +DECLARE_ASN1_ALLOC_FUNCTIONS(CMS_SignedData) DECLARE_ASN1_FUNCTIONS(CMS_ContentInfo) DECLARE_ASN1_FUNCTIONS(CMS_ReceiptRequest) DECLARE_ASN1_PRINT_FUNCTION(CMS_ContentInfo) +DECLARE_ASN1_DUP_FUNCTION(CMS_EnvelopedData) + CMS_ContentInfo *CMS_ContentInfo_new_ex(OSSL_LIB_CTX *libctx, const char *propq); # define CMS_SIGNERINFO_ISSUER_SERIAL 0 @@ -190,6 +196,7 @@ CMS_ContentInfo *CMS_ContentInfo_new_ex(OSSL_LIB_CTX *libctx, const char *propq) # define CMS_ASCIICRLF 0x80000 # define CMS_CADES 0x100000 # define CMS_USE_ORIGINATOR_KEYID 0x200000 +# define CMS_NO_SIGNING_TIME 0x400000 const ASN1_OBJECT *CMS_get0_type(const CMS_ContentInfo *cms); @@ -217,13 +224,16 @@ int SMIME_write_CMS(BIO *bio, CMS_ContentInfo *cms, BIO *data, int flags); int CMS_final(CMS_ContentInfo *cms, BIO *data, BIO *dcont, unsigned int flags); +int CMS_final_digest(CMS_ContentInfo *cms, + const unsigned char *md, unsigned int mdlen, BIO *dcont, + unsigned int flags); CMS_ContentInfo *CMS_sign(X509 *signcert, EVP_PKEY *pkey, STACK_OF(X509) *certs, BIO *data, unsigned int flags); CMS_ContentInfo *CMS_sign_ex(X509 *signcert, EVP_PKEY *pkey, STACK_OF(X509) *certs, BIO *data, - unsigned int flags, OSSL_LIB_CTX *ctx, + unsigned int flags, OSSL_LIB_CTX *libctx, const char *propq); CMS_ContentInfo *CMS_sign_receipt(CMS_SignerInfo *si, @@ -233,27 +243,26 @@ CMS_ContentInfo *CMS_sign_receipt(CMS_SignerInfo *si, int CMS_data(CMS_ContentInfo *cms, BIO *out, unsigned int flags); CMS_ContentInfo *CMS_data_create(BIO *in, unsigned int flags); CMS_ContentInfo *CMS_data_create_ex(BIO *in, unsigned int flags, - OSSL_LIB_CTX *ctx, const char *propq); + OSSL_LIB_CTX *libctx, const char *propq); int CMS_digest_verify(CMS_ContentInfo *cms, BIO *dcont, BIO *out, unsigned int flags); CMS_ContentInfo *CMS_digest_create(BIO *in, const EVP_MD *md, unsigned int flags); CMS_ContentInfo *CMS_digest_create_ex(BIO *in, const EVP_MD *md, - unsigned int flags, OSSL_LIB_CTX *ctx, + unsigned int flags, OSSL_LIB_CTX *libctx, const char *propq); int CMS_EncryptedData_decrypt(CMS_ContentInfo *cms, const unsigned char *key, size_t keylen, BIO *dcont, BIO *out, unsigned int flags); - CMS_ContentInfo *CMS_EncryptedData_encrypt(BIO *in, const EVP_CIPHER *cipher, const unsigned char *key, size_t keylen, unsigned int flags); CMS_ContentInfo *CMS_EncryptedData_encrypt_ex(BIO *in, const EVP_CIPHER *cipher, const unsigned char *key, size_t keylen, unsigned int flags, - OSSL_LIB_CTX *ctx, + OSSL_LIB_CTX *libctx, const char *propq); int CMS_EncryptedData_set1_key(CMS_ContentInfo *cms, const EVP_CIPHER *ciph, @@ -272,7 +281,7 @@ CMS_ContentInfo *CMS_encrypt(STACK_OF(X509) *certs, BIO *in, const EVP_CIPHER *cipher, unsigned int flags); CMS_ContentInfo *CMS_encrypt_ex(STACK_OF(X509) *certs, BIO *in, const EVP_CIPHER *cipher, unsigned int flags, - OSSL_LIB_CTX *ctx, const char *propq); + OSSL_LIB_CTX *libctx, const char *propq); int CMS_decrypt(CMS_ContentInfo *cms, EVP_PKEY *pkey, X509 *cert, BIO *dcont, BIO *out, unsigned int flags); @@ -291,12 +300,16 @@ int CMS_RecipientInfo_type(CMS_RecipientInfo *ri); EVP_PKEY_CTX *CMS_RecipientInfo_get0_pkey_ctx(CMS_RecipientInfo *ri); CMS_ContentInfo *CMS_AuthEnvelopedData_create(const EVP_CIPHER *cipher); CMS_ContentInfo * -CMS_AuthEnvelopedData_create_ex(const EVP_CIPHER *cipher, OSSL_LIB_CTX *ctx, +CMS_AuthEnvelopedData_create_ex(const EVP_CIPHER *cipher, OSSL_LIB_CTX *libctx, const char *propq); CMS_ContentInfo *CMS_EnvelopedData_create(const EVP_CIPHER *cipher); CMS_ContentInfo *CMS_EnvelopedData_create_ex(const EVP_CIPHER *cipher, - OSSL_LIB_CTX *ctx, + OSSL_LIB_CTX *libctx, const char *propq); +BIO *CMS_EnvelopedData_decrypt(CMS_EnvelopedData *env, BIO *detached_data, + EVP_PKEY *pkey, X509 *cert, + ASN1_OCTET_STRING *secret, unsigned int flags, + OSSL_LIB_CTX *libctx, const char *propq); CMS_RecipientInfo *CMS_add1_recipient_cert(CMS_ContentInfo *cms, X509 *recip, unsigned int flags); @@ -385,6 +398,11 @@ ASN1_OCTET_STRING *CMS_SignerInfo_get0_signature(CMS_SignerInfo *si); int CMS_SignerInfo_sign(CMS_SignerInfo *si); int CMS_SignerInfo_verify(CMS_SignerInfo *si); int CMS_SignerInfo_verify_content(CMS_SignerInfo *si, BIO *chain); +BIO *CMS_SignedData_verify(CMS_SignedData *sd, BIO *detached_data, + STACK_OF(X509) *scerts, X509_STORE *store, + STACK_OF(X509) *extra, STACK_OF(X509_CRL) *crls, + unsigned int flags, + OSSL_LIB_CTX *libctx, const char *propq); int CMS_add_smimecap(CMS_SignerInfo *si, STACK_OF(X509_ALGOR) *algs); int CMS_add_simple_smimecap(STACK_OF(X509_ALGOR) **algs, @@ -441,7 +459,7 @@ CMS_ReceiptRequest *CMS_ReceiptRequest_create0_ex( unsigned char *id, int idlen, int allorfirst, STACK_OF(GENERAL_NAMES) *receiptList, STACK_OF(GENERAL_NAMES) *receiptsTo, - OSSL_LIB_CTX *ctx); + OSSL_LIB_CTX *libctx); int CMS_add1_ReceiptRequest(CMS_SignerInfo *si, CMS_ReceiptRequest *rr); void CMS_ReceiptRequest_get0_values(CMS_ReceiptRequest *rr, diff --git a/deps/openssl/config/archs/BSD-x86/asm_avx2/include/openssl/comp.h b/deps/openssl/config/archs/BSD-x86/asm_avx2/include/openssl/comp.h new file mode 100644 index 00000000000000..90e39511fe8d28 --- /dev/null +++ b/deps/openssl/config/archs/BSD-x86/asm_avx2/include/openssl/comp.h @@ -0,0 +1,98 @@ +/* + * Copyright 2015-2024 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + + +#ifndef OPENSSL_COMP_H +# define OPENSSL_COMP_H +# pragma once + +# include +# ifndef OPENSSL_NO_DEPRECATED_3_0 +# define HEADER_COMP_H +# endif + +# include + +# include +# include +# ifdef __cplusplus +extern "C" { +# endif + + + +# ifndef OPENSSL_NO_COMP + +COMP_CTX *COMP_CTX_new(COMP_METHOD *meth); +const COMP_METHOD *COMP_CTX_get_method(const COMP_CTX *ctx); +int COMP_CTX_get_type(const COMP_CTX* comp); +int COMP_get_type(const COMP_METHOD *meth); +const char *COMP_get_name(const COMP_METHOD *meth); +void COMP_CTX_free(COMP_CTX *ctx); + +int COMP_compress_block(COMP_CTX *ctx, unsigned char *out, int olen, + unsigned char *in, int ilen); +int COMP_expand_block(COMP_CTX *ctx, unsigned char *out, int olen, + unsigned char *in, int ilen); + +COMP_METHOD *COMP_zlib(void); +COMP_METHOD *COMP_zlib_oneshot(void); +COMP_METHOD *COMP_brotli(void); +COMP_METHOD *COMP_brotli_oneshot(void); +COMP_METHOD *COMP_zstd(void); +COMP_METHOD *COMP_zstd_oneshot(void); + +# ifndef OPENSSL_NO_DEPRECATED_1_1_0 +# define COMP_zlib_cleanup() while(0) continue +# endif + +# ifdef OPENSSL_BIO_H +const BIO_METHOD *BIO_f_zlib(void); +const BIO_METHOD *BIO_f_brotli(void); +const BIO_METHOD *BIO_f_zstd(void); +# endif + +# endif + +typedef struct ssl_comp_st SSL_COMP; + +SKM_DEFINE_STACK_OF_INTERNAL(SSL_COMP, SSL_COMP, SSL_COMP) +#define sk_SSL_COMP_num(sk) OPENSSL_sk_num(ossl_check_const_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_value(sk, idx) ((SSL_COMP *)OPENSSL_sk_value(ossl_check_const_SSL_COMP_sk_type(sk), (idx))) +#define sk_SSL_COMP_new(cmp) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new(ossl_check_SSL_COMP_compfunc_type(cmp))) +#define sk_SSL_COMP_new_null() ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new_null()) +#define sk_SSL_COMP_new_reserve(cmp, n) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new_reserve(ossl_check_SSL_COMP_compfunc_type(cmp), (n))) +#define sk_SSL_COMP_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_SSL_COMP_sk_type(sk), (n)) +#define sk_SSL_COMP_free(sk) OPENSSL_sk_free(ossl_check_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_zero(sk) OPENSSL_sk_zero(ossl_check_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_delete(sk, i) ((SSL_COMP *)OPENSSL_sk_delete(ossl_check_SSL_COMP_sk_type(sk), (i))) +#define sk_SSL_COMP_delete_ptr(sk, ptr) ((SSL_COMP *)OPENSSL_sk_delete_ptr(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr))) +#define sk_SSL_COMP_push(sk, ptr) OPENSSL_sk_push(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) +#define sk_SSL_COMP_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) +#define sk_SSL_COMP_pop(sk) ((SSL_COMP *)OPENSSL_sk_pop(ossl_check_SSL_COMP_sk_type(sk))) +#define sk_SSL_COMP_shift(sk) ((SSL_COMP *)OPENSSL_sk_shift(ossl_check_SSL_COMP_sk_type(sk))) +#define sk_SSL_COMP_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_SSL_COMP_sk_type(sk),ossl_check_SSL_COMP_freefunc_type(freefunc)) +#define sk_SSL_COMP_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr), (idx)) +#define sk_SSL_COMP_set(sk, idx, ptr) ((SSL_COMP *)OPENSSL_sk_set(ossl_check_SSL_COMP_sk_type(sk), (idx), ossl_check_SSL_COMP_type(ptr))) +#define sk_SSL_COMP_find(sk, ptr) OPENSSL_sk_find(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) +#define sk_SSL_COMP_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) +#define sk_SSL_COMP_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr), pnum) +#define sk_SSL_COMP_sort(sk) OPENSSL_sk_sort(ossl_check_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_dup(sk) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_dup(ossl_check_const_SSL_COMP_sk_type(sk))) +#define sk_SSL_COMP_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_deep_copy(ossl_check_const_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_copyfunc_type(copyfunc), ossl_check_SSL_COMP_freefunc_type(freefunc))) +#define sk_SSL_COMP_set_cmp_func(sk, cmp) ((sk_SSL_COMP_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_compfunc_type(cmp))) + + + +# ifdef __cplusplus +} +# endif +#endif diff --git a/deps/openssl/config/archs/BSD-x86/asm_avx2/include/openssl/conf.h b/deps/openssl/config/archs/BSD-x86/asm_avx2/include/openssl/conf.h index 44989929f6c84a..38576290bf641b 100644 --- a/deps/openssl/config/archs/BSD-x86/asm_avx2/include/openssl/conf.h +++ b/deps/openssl/config/archs/BSD-x86/asm_avx2/include/openssl/conf.h @@ -27,6 +27,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -65,7 +68,7 @@ SKM_DEFINE_STACK_OF_INTERNAL(CONF_VALUE, CONF_VALUE, CONF_VALUE) #define sk_CONF_VALUE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(CONF_VALUE) *)OPENSSL_sk_deep_copy(ossl_check_const_CONF_VALUE_sk_type(sk), ossl_check_CONF_VALUE_copyfunc_type(copyfunc), ossl_check_CONF_VALUE_freefunc_type(freefunc))) #define sk_CONF_VALUE_set_cmp_func(sk, cmp) ((sk_CONF_VALUE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_CONF_VALUE_sk_type(sk), ossl_check_CONF_VALUE_compfunc_type(cmp))) DEFINE_LHASH_OF_INTERNAL(CONF_VALUE); -#define lh_CONF_VALUE_new(hfn, cmp) ((LHASH_OF(CONF_VALUE) *)OPENSSL_LH_new(ossl_check_CONF_VALUE_lh_hashfunc_type(hfn), ossl_check_CONF_VALUE_lh_compfunc_type(cmp))) +#define lh_CONF_VALUE_new(hfn, cmp) ((LHASH_OF(CONF_VALUE) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new(ossl_check_CONF_VALUE_lh_hashfunc_type(hfn), ossl_check_CONF_VALUE_lh_compfunc_type(cmp)), lh_CONF_VALUE_hash_thunk, lh_CONF_VALUE_comp_thunk, lh_CONF_VALUE_doall_thunk, lh_CONF_VALUE_doall_arg_thunk)) #define lh_CONF_VALUE_free(lh) OPENSSL_LH_free(ossl_check_CONF_VALUE_lh_type(lh)) #define lh_CONF_VALUE_flush(lh) OPENSSL_LH_flush(ossl_check_CONF_VALUE_lh_type(lh)) #define lh_CONF_VALUE_insert(lh, ptr) ((CONF_VALUE *)OPENSSL_LH_insert(ossl_check_CONF_VALUE_lh_type(lh), ossl_check_CONF_VALUE_lh_plain_type(ptr))) diff --git a/deps/openssl/config/archs/BSD-x86/asm_avx2/include/openssl/configuration.h b/deps/openssl/config/archs/BSD-x86/asm_avx2/include/openssl/configuration.h index 5ef293f853fae2..e81c58e297e557 100644 --- a/deps/openssl/config/archs/BSD-x86/asm_avx2/include/openssl/configuration.h +++ b/deps/openssl/config/archs/BSD-x86/asm_avx2/include/openssl/configuration.h @@ -27,7 +27,7 @@ extern "C" { * OpenSSL was configured with the following options: */ -# define OPENSSL_CONFIGURED_API 30000 +# define OPENSSL_CONFIGURED_API 30500 # ifndef OPENSSL_RAND_SEED_OS # define OPENSSL_RAND_SEED_OS # endif @@ -40,6 +40,12 @@ extern "C" { # ifndef OPENSSL_NO_ASAN # define OPENSSL_NO_ASAN # endif +# ifndef OPENSSL_NO_BROTLI +# define OPENSSL_NO_BROTLI +# endif +# ifndef OPENSSL_NO_BROTLI_DYNAMIC +# define OPENSSL_NO_BROTLI_DYNAMIC +# endif # ifndef OPENSSL_NO_COMP # define OPENSSL_NO_COMP # endif @@ -49,6 +55,9 @@ extern "C" { # ifndef OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE # define OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE # endif +# ifndef OPENSSL_NO_DEMOS +# define OPENSSL_NO_DEMOS +# endif # ifndef OPENSSL_NO_EC_NISTP_64_GCC_128 # define OPENSSL_NO_EC_NISTP_64_GCC_128 # endif @@ -58,12 +67,24 @@ extern "C" { # ifndef OPENSSL_NO_EXTERNAL_TESTS # define OPENSSL_NO_EXTERNAL_TESTS # endif +# ifndef OPENSSL_NO_FIPS_JITTER +# define OPENSSL_NO_FIPS_JITTER +# endif # ifndef OPENSSL_NO_FUZZ_AFL # define OPENSSL_NO_FUZZ_AFL # endif # ifndef OPENSSL_NO_FUZZ_LIBFUZZER # define OPENSSL_NO_FUZZ_LIBFUZZER # endif +# ifndef OPENSSL_NO_H3DEMO +# define OPENSSL_NO_H3DEMO +# endif +# ifndef OPENSSL_NO_HQINTEROP +# define OPENSSL_NO_HQINTEROP +# endif +# ifndef OPENSSL_NO_JITTER +# define OPENSSL_NO_JITTER +# endif # ifndef OPENSSL_NO_KTLS # define OPENSSL_NO_KTLS # endif @@ -76,6 +97,9 @@ extern "C" { # ifndef OPENSSL_NO_MSAN # define OPENSSL_NO_MSAN # endif +# ifndef OPENSSL_NO_PIE +# define OPENSSL_NO_PIE +# endif # ifndef OPENSSL_NO_RC5 # define OPENSSL_NO_RC5 # endif @@ -88,6 +112,12 @@ extern "C" { # ifndef OPENSSL_NO_SSL3_METHOD # define OPENSSL_NO_SSL3_METHOD # endif +# ifndef OPENSSL_NO_SSLKEYLOG +# define OPENSSL_NO_SSLKEYLOG +# endif +# ifndef OPENSSL_NO_TFO +# define OPENSSL_NO_TFO +# endif # ifndef OPENSSL_NO_TRACE # define OPENSSL_NO_TRACE # endif @@ -103,6 +133,21 @@ extern "C" { # ifndef OPENSSL_NO_WEAK_SSL_CIPHERS # define OPENSSL_NO_WEAK_SSL_CIPHERS # endif +# ifndef OPENSSL_NO_WINSTORE +# define OPENSSL_NO_WINSTORE +# endif +# ifndef OPENSSL_NO_ZLIB +# define OPENSSL_NO_ZLIB +# endif +# ifndef OPENSSL_NO_ZLIB_DYNAMIC +# define OPENSSL_NO_ZLIB_DYNAMIC +# endif +# ifndef OPENSSL_NO_ZSTD +# define OPENSSL_NO_ZSTD +# endif +# ifndef OPENSSL_NO_ZSTD_DYNAMIC +# define OPENSSL_NO_ZSTD_DYNAMIC +# endif # ifndef OPENSSL_NO_DYNAMIC_ENGINE # define OPENSSL_NO_DYNAMIC_ENGINE # endif @@ -124,6 +169,12 @@ extern "C" { # define RC4_INT unsigned int +# if defined(OPENSSL_NO_COMP) || (defined(OPENSSL_NO_BROTLI) && defined(OPENSSL_NO_ZSTD) && defined(OPENSSL_NO_ZLIB)) +# define OPENSSL_NO_COMP_ALG +# else +# undef OPENSSL_NO_COMP_ALG +# endif + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/BSD-x86/asm_avx2/include/openssl/core_names.h b/deps/openssl/config/archs/BSD-x86/asm_avx2/include/openssl/core_names.h new file mode 100644 index 00000000000000..e93e79a52bc910 --- /dev/null +++ b/deps/openssl/config/archs/BSD-x86/asm_avx2/include/openssl/core_names.h @@ -0,0 +1,575 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from include/openssl/core_names.h.in + * + * Copyright 2019-2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + +#ifndef OPENSSL_CORE_NAMES_H +# define OPENSSL_CORE_NAMES_H +# pragma once + +# ifdef __cplusplus +extern "C" { +# endif + +/* OSSL_CIPHER_PARAM_CTS_MODE Values */ +# define OSSL_CIPHER_CTS_MODE_CS1 "CS1" +# define OSSL_CIPHER_CTS_MODE_CS2 "CS2" +# define OSSL_CIPHER_CTS_MODE_CS3 "CS3" + +/* Known CIPHER names (not a complete list) */ +# define OSSL_CIPHER_NAME_AES_128_GCM_SIV "AES-128-GCM-SIV" +# define OSSL_CIPHER_NAME_AES_192_GCM_SIV "AES-192-GCM-SIV" +# define OSSL_CIPHER_NAME_AES_256_GCM_SIV "AES-256-GCM-SIV" + +/* Known DIGEST names (not a complete list) */ +# define OSSL_DIGEST_NAME_MD5 "MD5" +# define OSSL_DIGEST_NAME_MD5_SHA1 "MD5-SHA1" +# define OSSL_DIGEST_NAME_SHA1 "SHA1" +# define OSSL_DIGEST_NAME_SHA2_224 "SHA2-224" +# define OSSL_DIGEST_NAME_SHA2_256 "SHA2-256" +# define OSSL_DIGEST_NAME_SHA2_256_192 "SHA2-256/192" +# define OSSL_DIGEST_NAME_SHA2_384 "SHA2-384" +# define OSSL_DIGEST_NAME_SHA2_512 "SHA2-512" +# define OSSL_DIGEST_NAME_SHA2_512_224 "SHA2-512/224" +# define OSSL_DIGEST_NAME_SHA2_512_256 "SHA2-512/256" +# define OSSL_DIGEST_NAME_MD2 "MD2" +# define OSSL_DIGEST_NAME_MD4 "MD4" +# define OSSL_DIGEST_NAME_MDC2 "MDC2" +# define OSSL_DIGEST_NAME_RIPEMD160 "RIPEMD160" +# define OSSL_DIGEST_NAME_SHA3_224 "SHA3-224" +# define OSSL_DIGEST_NAME_SHA3_256 "SHA3-256" +# define OSSL_DIGEST_NAME_SHA3_384 "SHA3-384" +# define OSSL_DIGEST_NAME_SHA3_512 "SHA3-512" +# define OSSL_DIGEST_NAME_KECCAK_KMAC128 "KECCAK-KMAC-128" +# define OSSL_DIGEST_NAME_KECCAK_KMAC256 "KECCAK-KMAC-256" +# define OSSL_DIGEST_NAME_SM3 "SM3" + +/* Known MAC names */ +# define OSSL_MAC_NAME_BLAKE2BMAC "BLAKE2BMAC" +# define OSSL_MAC_NAME_BLAKE2SMAC "BLAKE2SMAC" +# define OSSL_MAC_NAME_CMAC "CMAC" +# define OSSL_MAC_NAME_GMAC "GMAC" +# define OSSL_MAC_NAME_HMAC "HMAC" +# define OSSL_MAC_NAME_KMAC128 "KMAC128" +# define OSSL_MAC_NAME_KMAC256 "KMAC256" +# define OSSL_MAC_NAME_POLY1305 "POLY1305" +# define OSSL_MAC_NAME_SIPHASH "SIPHASH" + +/* Known KDF names */ +# define OSSL_KDF_NAME_HKDF "HKDF" +# define OSSL_KDF_NAME_TLS1_3_KDF "TLS13-KDF" +# define OSSL_KDF_NAME_PBKDF1 "PBKDF1" +# define OSSL_KDF_NAME_PBKDF2 "PBKDF2" +# define OSSL_KDF_NAME_SCRYPT "SCRYPT" +# define OSSL_KDF_NAME_SSHKDF "SSHKDF" +# define OSSL_KDF_NAME_SSKDF "SSKDF" +# define OSSL_KDF_NAME_TLS1_PRF "TLS1-PRF" +# define OSSL_KDF_NAME_X942KDF_ASN1 "X942KDF-ASN1" +# define OSSL_KDF_NAME_X942KDF_CONCAT "X942KDF-CONCAT" +# define OSSL_KDF_NAME_X963KDF "X963KDF" +# define OSSL_KDF_NAME_KBKDF "KBKDF" +# define OSSL_KDF_NAME_KRB5KDF "KRB5KDF" +# define OSSL_KDF_NAME_HMACDRBGKDF "HMAC-DRBG-KDF" + +/* RSA padding modes */ +# define OSSL_PKEY_RSA_PAD_MODE_NONE "none" +# define OSSL_PKEY_RSA_PAD_MODE_PKCSV15 "pkcs1" +# define OSSL_PKEY_RSA_PAD_MODE_OAEP "oaep" +# define OSSL_PKEY_RSA_PAD_MODE_X931 "x931" +# define OSSL_PKEY_RSA_PAD_MODE_PSS "pss" + +/* RSA pss padding salt length */ +# define OSSL_PKEY_RSA_PSS_SALT_LEN_DIGEST "digest" +# define OSSL_PKEY_RSA_PSS_SALT_LEN_MAX "max" +# define OSSL_PKEY_RSA_PSS_SALT_LEN_AUTO "auto" +# define OSSL_PKEY_RSA_PSS_SALT_LEN_AUTO_DIGEST_MAX "auto-digestmax" + +/* OSSL_PKEY_PARAM_EC_ENCODING values */ +# define OSSL_PKEY_EC_ENCODING_EXPLICIT "explicit" +# define OSSL_PKEY_EC_ENCODING_GROUP "named_curve" + +# define OSSL_PKEY_EC_POINT_CONVERSION_FORMAT_UNCOMPRESSED "uncompressed" +# define OSSL_PKEY_EC_POINT_CONVERSION_FORMAT_COMPRESSED "compressed" +# define OSSL_PKEY_EC_POINT_CONVERSION_FORMAT_HYBRID "hybrid" + +# define OSSL_PKEY_EC_GROUP_CHECK_DEFAULT "default" +# define OSSL_PKEY_EC_GROUP_CHECK_NAMED "named" +# define OSSL_PKEY_EC_GROUP_CHECK_NAMED_NIST "named-nist" + +/* PROV_SKEY well known key types */ +# define OSSL_SKEY_TYPE_GENERIC "GENERIC-SECRET" +# define OSSL_SKEY_TYPE_AES "AES" + +/* OSSL_KEM_PARAM_OPERATION values */ +#define OSSL_KEM_PARAM_OPERATION_RSASVE "RSASVE" +#define OSSL_KEM_PARAM_OPERATION_DHKEM "DHKEM" + +/* Provider configuration variables */ +#define OSSL_PKEY_RETAIN_SEED "pkey_retain_seed" + +/* Parameter name definitions - generated by util/perl/OpenSSL/paramnames.pm */ +# define OSSL_ALG_PARAM_ALGORITHM_ID "algorithm-id" +# define OSSL_ALG_PARAM_ALGORITHM_ID_PARAMS "algorithm-id-params" +# define OSSL_ALG_PARAM_CIPHER "cipher" +# define OSSL_ALG_PARAM_DIGEST "digest" +# define OSSL_ALG_PARAM_ENGINE "engine" +# define OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR "fips-indicator" +# define OSSL_ALG_PARAM_MAC "mac" +# define OSSL_ALG_PARAM_PROPERTIES "properties" +# define OSSL_ASYM_CIPHER_PARAM_DIGEST OSSL_PKEY_PARAM_DIGEST +# define OSSL_ASYM_CIPHER_PARAM_ENGINE OSSL_PKEY_PARAM_ENGINE +# define OSSL_ASYM_CIPHER_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_ASYM_CIPHER_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_ASYM_CIPHER_PARAM_FIPS_RSA_PKCS15_PAD_DISABLED OSSL_PROV_PARAM_RSA_PKCS15_PAD_DISABLED +# define OSSL_ASYM_CIPHER_PARAM_IMPLICIT_REJECTION "implicit-rejection" +# define OSSL_ASYM_CIPHER_PARAM_MGF1_DIGEST OSSL_PKEY_PARAM_MGF1_DIGEST +# define OSSL_ASYM_CIPHER_PARAM_MGF1_DIGEST_PROPS OSSL_PKEY_PARAM_MGF1_PROPERTIES +# define OSSL_ASYM_CIPHER_PARAM_OAEP_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_ASYM_CIPHER_PARAM_OAEP_DIGEST_PROPS "digest-props" +# define OSSL_ASYM_CIPHER_PARAM_OAEP_LABEL "oaep-label" +# define OSSL_ASYM_CIPHER_PARAM_PAD_MODE OSSL_PKEY_PARAM_PAD_MODE +# define OSSL_ASYM_CIPHER_PARAM_PROPERTIES OSSL_PKEY_PARAM_PROPERTIES +# define OSSL_ASYM_CIPHER_PARAM_TLS_CLIENT_VERSION "tls-client-version" +# define OSSL_ASYM_CIPHER_PARAM_TLS_NEGOTIATED_VERSION "tls-negotiated-version" +# define OSSL_CAPABILITY_TLS_GROUP_ALG "tls-group-alg" +# define OSSL_CAPABILITY_TLS_GROUP_ID "tls-group-id" +# define OSSL_CAPABILITY_TLS_GROUP_IS_KEM "tls-group-is-kem" +# define OSSL_CAPABILITY_TLS_GROUP_MAX_DTLS "tls-max-dtls" +# define OSSL_CAPABILITY_TLS_GROUP_MAX_TLS "tls-max-tls" +# define OSSL_CAPABILITY_TLS_GROUP_MIN_DTLS "tls-min-dtls" +# define OSSL_CAPABILITY_TLS_GROUP_MIN_TLS "tls-min-tls" +# define OSSL_CAPABILITY_TLS_GROUP_NAME "tls-group-name" +# define OSSL_CAPABILITY_TLS_GROUP_NAME_INTERNAL "tls-group-name-internal" +# define OSSL_CAPABILITY_TLS_GROUP_SECURITY_BITS "tls-group-sec-bits" +# define OSSL_CAPABILITY_TLS_SIGALG_CODE_POINT "tls-sigalg-code-point" +# define OSSL_CAPABILITY_TLS_SIGALG_HASH_NAME "tls-sigalg-hash-name" +# define OSSL_CAPABILITY_TLS_SIGALG_HASH_OID "tls-sigalg-hash-oid" +# define OSSL_CAPABILITY_TLS_SIGALG_IANA_NAME "tls-sigalg-iana-name" +# define OSSL_CAPABILITY_TLS_SIGALG_KEYTYPE "tls-sigalg-keytype" +# define OSSL_CAPABILITY_TLS_SIGALG_KEYTYPE_OID "tls-sigalg-keytype-oid" +# define OSSL_CAPABILITY_TLS_SIGALG_MAX_DTLS "tls-max-dtls" +# define OSSL_CAPABILITY_TLS_SIGALG_MAX_TLS "tls-max-tls" +# define OSSL_CAPABILITY_TLS_SIGALG_MIN_DTLS "tls-min-dtls" +# define OSSL_CAPABILITY_TLS_SIGALG_MIN_TLS "tls-min-tls" +# define OSSL_CAPABILITY_TLS_SIGALG_NAME "tls-sigalg-name" +# define OSSL_CAPABILITY_TLS_SIGALG_OID "tls-sigalg-oid" +# define OSSL_CAPABILITY_TLS_SIGALG_SECURITY_BITS "tls-sigalg-sec-bits" +# define OSSL_CAPABILITY_TLS_SIGALG_SIG_NAME "tls-sigalg-sig-name" +# define OSSL_CAPABILITY_TLS_SIGALG_SIG_OID "tls-sigalg-sig-oid" +# define OSSL_CIPHER_PARAM_AEAD "aead" +# define OSSL_CIPHER_PARAM_AEAD_IVLEN OSSL_CIPHER_PARAM_IVLEN +# define OSSL_CIPHER_PARAM_AEAD_IV_GENERATED "iv-generated" +# define OSSL_CIPHER_PARAM_AEAD_MAC_KEY "mackey" +# define OSSL_CIPHER_PARAM_AEAD_TAG "tag" +# define OSSL_CIPHER_PARAM_AEAD_TAGLEN "taglen" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_AAD "tlsaad" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_AAD_PAD "tlsaadpad" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_GET_IV_GEN "tlsivgen" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_IV_FIXED "tlsivfixed" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_SET_IV_INV "tlsivinv" +# define OSSL_CIPHER_PARAM_ALGORITHM_ID OSSL_ALG_PARAM_ALGORITHM_ID +# define OSSL_CIPHER_PARAM_ALGORITHM_ID_PARAMS OSSL_ALG_PARAM_ALGORITHM_ID_PARAMS +# define OSSL_CIPHER_PARAM_ALGORITHM_ID_PARAMS_OLD "alg_id_param" +# define OSSL_CIPHER_PARAM_BLOCK_SIZE "blocksize" +# define OSSL_CIPHER_PARAM_CTS "cts" +# define OSSL_CIPHER_PARAM_CTS_MODE "cts_mode" +# define OSSL_CIPHER_PARAM_CUSTOM_IV "custom-iv" +# define OSSL_CIPHER_PARAM_DECRYPT_ONLY "decrypt-only" +# define OSSL_CIPHER_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_CIPHER_PARAM_FIPS_ENCRYPT_CHECK "encrypt-check" +# define OSSL_CIPHER_PARAM_HAS_RAND_KEY "has-randkey" +# define OSSL_CIPHER_PARAM_IV "iv" +# define OSSL_CIPHER_PARAM_IVLEN "ivlen" +# define OSSL_CIPHER_PARAM_KEYLEN "keylen" +# define OSSL_CIPHER_PARAM_MODE "mode" +# define OSSL_CIPHER_PARAM_NUM "num" +# define OSSL_CIPHER_PARAM_PADDING "padding" +# define OSSL_CIPHER_PARAM_PIPELINE_AEAD_TAG "pipeline-tag" +# define OSSL_CIPHER_PARAM_RANDOM_KEY "randkey" +# define OSSL_CIPHER_PARAM_RC2_KEYBITS "keybits" +# define OSSL_CIPHER_PARAM_ROUNDS "rounds" +# define OSSL_CIPHER_PARAM_SPEED "speed" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK "tls-multi" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD "tls1multi_aad" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD_PACKLEN "tls1multi_aadpacklen" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC "tls1multi_enc" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_IN "tls1multi_encin" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_LEN "tls1multi_enclen" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_INTERLEAVE "tls1multi_interleave" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_BUFSIZE "tls1multi_maxbufsz" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_SEND_FRAGMENT "tls1multi_maxsndfrag" +# define OSSL_CIPHER_PARAM_TLS_MAC "tls-mac" +# define OSSL_CIPHER_PARAM_TLS_MAC_SIZE "tls-mac-size" +# define OSSL_CIPHER_PARAM_TLS_VERSION "tls-version" +# define OSSL_CIPHER_PARAM_UPDATED_IV "updated-iv" +# define OSSL_CIPHER_PARAM_USE_BITS "use-bits" +# define OSSL_CIPHER_PARAM_XTS_STANDARD "xts_standard" +# define OSSL_DECODER_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_DIGEST_PARAM_ALGID_ABSENT "algid-absent" +# define OSSL_DIGEST_PARAM_BLOCK_SIZE "blocksize" +# define OSSL_DIGEST_PARAM_MICALG "micalg" +# define OSSL_DIGEST_PARAM_PAD_TYPE "pad-type" +# define OSSL_DIGEST_PARAM_SIZE "size" +# define OSSL_DIGEST_PARAM_SSL3_MS "ssl3-ms" +# define OSSL_DIGEST_PARAM_XOF "xof" +# define OSSL_DIGEST_PARAM_XOFLEN "xoflen" +# define OSSL_DRBG_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_DRBG_PARAM_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_DRBG_PARAM_ENTROPY_REQUIRED "entropy_required" +# define OSSL_DRBG_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_DRBG_PARAM_FIPS_DIGEST_CHECK OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK +# define OSSL_DRBG_PARAM_MAC OSSL_ALG_PARAM_MAC +# define OSSL_DRBG_PARAM_MAX_ADINLEN "max_adinlen" +# define OSSL_DRBG_PARAM_MAX_ENTROPYLEN "max_entropylen" +# define OSSL_DRBG_PARAM_MAX_LENGTH "maxium_length" +# define OSSL_DRBG_PARAM_MAX_NONCELEN "max_noncelen" +# define OSSL_DRBG_PARAM_MAX_PERSLEN "max_perslen" +# define OSSL_DRBG_PARAM_MIN_ENTROPYLEN "min_entropylen" +# define OSSL_DRBG_PARAM_MIN_LENGTH "minium_length" +# define OSSL_DRBG_PARAM_MIN_NONCELEN "min_noncelen" +# define OSSL_DRBG_PARAM_PREDICTION_RESISTANCE "prediction_resistance" +# define OSSL_DRBG_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_DRBG_PARAM_RANDOM_DATA "random_data" +# define OSSL_DRBG_PARAM_RESEED_COUNTER "reseed_counter" +# define OSSL_DRBG_PARAM_RESEED_REQUESTS "reseed_requests" +# define OSSL_DRBG_PARAM_RESEED_TIME "reseed_time" +# define OSSL_DRBG_PARAM_RESEED_TIME_INTERVAL "reseed_time_interval" +# define OSSL_DRBG_PARAM_SIZE "size" +# define OSSL_DRBG_PARAM_USE_DF "use_derivation_function" +# define OSSL_ENCODER_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_ENCODER_PARAM_ENCRYPT_LEVEL "encrypt-level" +# define OSSL_ENCODER_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_ENCODER_PARAM_SAVE_PARAMETERS "save-parameters" +# define OSSL_EXCHANGE_PARAM_EC_ECDH_COFACTOR_MODE "ecdh-cofactor-mode" +# define OSSL_EXCHANGE_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_EXCHANGE_PARAM_FIPS_DIGEST_CHECK OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK +# define OSSL_EXCHANGE_PARAM_FIPS_ECDH_COFACTOR_CHECK OSSL_PROV_PARAM_ECDH_COFACTOR_CHECK +# define OSSL_EXCHANGE_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_EXCHANGE_PARAM_KDF_DIGEST "kdf-digest" +# define OSSL_EXCHANGE_PARAM_KDF_DIGEST_PROPS "kdf-digest-props" +# define OSSL_EXCHANGE_PARAM_KDF_OUTLEN "kdf-outlen" +# define OSSL_EXCHANGE_PARAM_KDF_TYPE "kdf-type" +# define OSSL_EXCHANGE_PARAM_KDF_UKM "kdf-ukm" +# define OSSL_EXCHANGE_PARAM_PAD "pad" +# define OSSL_GEN_PARAM_ITERATION "iteration" +# define OSSL_GEN_PARAM_POTENTIAL "potential" +# define OSSL_KDF_PARAM_ARGON2_AD "ad" +# define OSSL_KDF_PARAM_ARGON2_LANES "lanes" +# define OSSL_KDF_PARAM_ARGON2_MEMCOST "memcost" +# define OSSL_KDF_PARAM_ARGON2_VERSION "version" +# define OSSL_KDF_PARAM_CEK_ALG "cekalg" +# define OSSL_KDF_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_KDF_PARAM_CONSTANT "constant" +# define OSSL_KDF_PARAM_DATA "data" +# define OSSL_KDF_PARAM_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_KDF_PARAM_EARLY_CLEAN "early_clean" +# define OSSL_KDF_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_KDF_PARAM_FIPS_DIGEST_CHECK OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK +# define OSSL_KDF_PARAM_FIPS_EMS_CHECK "ems_check" +# define OSSL_KDF_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_KDF_PARAM_HMACDRBG_ENTROPY "entropy" +# define OSSL_KDF_PARAM_HMACDRBG_NONCE "nonce" +# define OSSL_KDF_PARAM_INFO "info" +# define OSSL_KDF_PARAM_ITER "iter" +# define OSSL_KDF_PARAM_KBKDF_R "r" +# define OSSL_KDF_PARAM_KBKDF_USE_L "use-l" +# define OSSL_KDF_PARAM_KBKDF_USE_SEPARATOR "use-separator" +# define OSSL_KDF_PARAM_KEY "key" +# define OSSL_KDF_PARAM_LABEL "label" +# define OSSL_KDF_PARAM_MAC OSSL_ALG_PARAM_MAC +# define OSSL_KDF_PARAM_MAC_SIZE "maclen" +# define OSSL_KDF_PARAM_MODE "mode" +# define OSSL_KDF_PARAM_PASSWORD "pass" +# define OSSL_KDF_PARAM_PKCS12_ID "id" +# define OSSL_KDF_PARAM_PKCS5 "pkcs5" +# define OSSL_KDF_PARAM_PREFIX "prefix" +# define OSSL_KDF_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_KDF_PARAM_SALT "salt" +# define OSSL_KDF_PARAM_SCRYPT_MAXMEM "maxmem_bytes" +# define OSSL_KDF_PARAM_SCRYPT_N "n" +# define OSSL_KDF_PARAM_SCRYPT_P "p" +# define OSSL_KDF_PARAM_SCRYPT_R "r" +# define OSSL_KDF_PARAM_SECRET "secret" +# define OSSL_KDF_PARAM_SEED "seed" +# define OSSL_KDF_PARAM_SIZE "size" +# define OSSL_KDF_PARAM_SSHKDF_SESSION_ID "session_id" +# define OSSL_KDF_PARAM_SSHKDF_TYPE "type" +# define OSSL_KDF_PARAM_SSHKDF_XCGHASH "xcghash" +# define OSSL_KDF_PARAM_THREADS "threads" +# define OSSL_KDF_PARAM_UKM "ukm" +# define OSSL_KDF_PARAM_X942_ACVPINFO "acvp-info" +# define OSSL_KDF_PARAM_X942_PARTYUINFO "partyu-info" +# define OSSL_KDF_PARAM_X942_PARTYVINFO "partyv-info" +# define OSSL_KDF_PARAM_X942_SUPP_PRIVINFO "supp-privinfo" +# define OSSL_KDF_PARAM_X942_SUPP_PUBINFO "supp-pubinfo" +# define OSSL_KDF_PARAM_X942_USE_KEYBITS "use-keybits" +# define OSSL_KEM_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_KEM_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_KEM_PARAM_IKME "ikme" +# define OSSL_KEM_PARAM_OPERATION "operation" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_BLOCK_PADDING "block_padding" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_HS_PADDING "hs_padding" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_MAX_EARLY_DATA "max_early_data" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_MAX_FRAG_LEN "max_frag_len" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_MODE "mode" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_OPTIONS "options" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_READ_AHEAD "read_ahead" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_STREAM_MAC "stream_mac" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_TLSTREE "tlstree" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_USE_ETM "use_etm" +# define OSSL_LIBSSL_RECORD_LAYER_READ_BUFFER_LEN "read_buffer_len" +# define OSSL_MAC_PARAM_BLOCK_SIZE "block-size" +# define OSSL_MAC_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_MAC_PARAM_CUSTOM "custom" +# define OSSL_MAC_PARAM_C_ROUNDS "c-rounds" +# define OSSL_MAC_PARAM_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_MAC_PARAM_DIGEST_NOINIT "digest-noinit" +# define OSSL_MAC_PARAM_DIGEST_ONESHOT "digest-oneshot" +# define OSSL_MAC_PARAM_D_ROUNDS "d-rounds" +# define OSSL_MAC_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_MAC_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_MAC_PARAM_FIPS_NO_SHORT_MAC OSSL_PROV_PARAM_NO_SHORT_MAC +# define OSSL_MAC_PARAM_IV "iv" +# define OSSL_MAC_PARAM_KEY "key" +# define OSSL_MAC_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_MAC_PARAM_SALT "salt" +# define OSSL_MAC_PARAM_SIZE "size" +# define OSSL_MAC_PARAM_TLS_DATA_SIZE "tls-data-size" +# define OSSL_MAC_PARAM_XOF "xof" +# define OSSL_OBJECT_PARAM_DATA "data" +# define OSSL_OBJECT_PARAM_DATA_STRUCTURE "data-structure" +# define OSSL_OBJECT_PARAM_DATA_TYPE "data-type" +# define OSSL_OBJECT_PARAM_DESC "desc" +# define OSSL_OBJECT_PARAM_INPUT_TYPE "input-type" +# define OSSL_OBJECT_PARAM_REFERENCE "reference" +# define OSSL_OBJECT_PARAM_TYPE "type" +# define OSSL_PASSPHRASE_PARAM_INFO "info" +# define OSSL_PKEY_PARAM_ALGORITHM_ID OSSL_ALG_PARAM_ALGORITHM_ID +# define OSSL_PKEY_PARAM_ALGORITHM_ID_PARAMS OSSL_ALG_PARAM_ALGORITHM_ID_PARAMS +# define OSSL_PKEY_PARAM_BITS "bits" +# define OSSL_PKEY_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_PKEY_PARAM_DEFAULT_DIGEST "default-digest" +# define OSSL_PKEY_PARAM_DHKEM_IKM "dhkem-ikm" +# define OSSL_PKEY_PARAM_DH_GENERATOR "safeprime-generator" +# define OSSL_PKEY_PARAM_DH_PRIV_LEN "priv_len" +# define OSSL_PKEY_PARAM_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_PKEY_PARAM_DIGEST_SIZE "digest-size" +# define OSSL_PKEY_PARAM_DIST_ID "distid" +# define OSSL_PKEY_PARAM_EC_A "a" +# define OSSL_PKEY_PARAM_EC_B "b" +# define OSSL_PKEY_PARAM_EC_CHAR2_M "m" +# define OSSL_PKEY_PARAM_EC_CHAR2_PP_K1 "k1" +# define OSSL_PKEY_PARAM_EC_CHAR2_PP_K2 "k2" +# define OSSL_PKEY_PARAM_EC_CHAR2_PP_K3 "k3" +# define OSSL_PKEY_PARAM_EC_CHAR2_TP_BASIS "tp" +# define OSSL_PKEY_PARAM_EC_CHAR2_TYPE "basis-type" +# define OSSL_PKEY_PARAM_EC_COFACTOR "cofactor" +# define OSSL_PKEY_PARAM_EC_DECODED_FROM_EXPLICIT_PARAMS "decoded-from-explicit" +# define OSSL_PKEY_PARAM_EC_ENCODING "encoding" +# define OSSL_PKEY_PARAM_EC_FIELD_TYPE "field-type" +# define OSSL_PKEY_PARAM_EC_GENERATOR "generator" +# define OSSL_PKEY_PARAM_EC_GROUP_CHECK_TYPE "group-check" +# define OSSL_PKEY_PARAM_EC_INCLUDE_PUBLIC "include-public" +# define OSSL_PKEY_PARAM_EC_ORDER "order" +# define OSSL_PKEY_PARAM_EC_P "p" +# define OSSL_PKEY_PARAM_EC_POINT_CONVERSION_FORMAT "point-format" +# define OSSL_PKEY_PARAM_EC_PUB_X "qx" +# define OSSL_PKEY_PARAM_EC_PUB_Y "qy" +# define OSSL_PKEY_PARAM_EC_SEED "seed" +# define OSSL_PKEY_PARAM_ENCODED_PUBLIC_KEY "encoded-pub-key" +# define OSSL_PKEY_PARAM_ENGINE OSSL_ALG_PARAM_ENGINE +# define OSSL_PKEY_PARAM_FFC_COFACTOR "j" +# define OSSL_PKEY_PARAM_FFC_DIGEST OSSL_PKEY_PARAM_DIGEST +# define OSSL_PKEY_PARAM_FFC_DIGEST_PROPS OSSL_PKEY_PARAM_PROPERTIES +# define OSSL_PKEY_PARAM_FFC_G "g" +# define OSSL_PKEY_PARAM_FFC_GINDEX "gindex" +# define OSSL_PKEY_PARAM_FFC_H "hindex" +# define OSSL_PKEY_PARAM_FFC_P "p" +# define OSSL_PKEY_PARAM_FFC_PBITS "pbits" +# define OSSL_PKEY_PARAM_FFC_PCOUNTER "pcounter" +# define OSSL_PKEY_PARAM_FFC_Q "q" +# define OSSL_PKEY_PARAM_FFC_QBITS "qbits" +# define OSSL_PKEY_PARAM_FFC_SEED "seed" +# define OSSL_PKEY_PARAM_FFC_TYPE "type" +# define OSSL_PKEY_PARAM_FFC_VALIDATE_G "validate-g" +# define OSSL_PKEY_PARAM_FFC_VALIDATE_LEGACY "validate-legacy" +# define OSSL_PKEY_PARAM_FFC_VALIDATE_PQ "validate-pq" +# define OSSL_PKEY_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK "digest-check" +# define OSSL_PKEY_PARAM_FIPS_KEY_CHECK "key-check" +# define OSSL_PKEY_PARAM_FIPS_SIGN_CHECK "sign-check" +# define OSSL_PKEY_PARAM_GROUP_NAME "group" +# define OSSL_PKEY_PARAM_IMPLICIT_REJECTION "implicit-rejection" +# define OSSL_PKEY_PARAM_MANDATORY_DIGEST "mandatory-digest" +# define OSSL_PKEY_PARAM_MASKGENFUNC "mgf" +# define OSSL_PKEY_PARAM_MAX_SIZE "max-size" +# define OSSL_PKEY_PARAM_MGF1_DIGEST "mgf1-digest" +# define OSSL_PKEY_PARAM_MGF1_PROPERTIES "mgf1-properties" +# define OSSL_PKEY_PARAM_ML_DSA_INPUT_FORMATS "ml-dsa.input_formats" +# define OSSL_PKEY_PARAM_ML_DSA_OUTPUT_FORMATS "ml-dsa.output_formats" +# define OSSL_PKEY_PARAM_ML_DSA_PREFER_SEED "ml-dsa.prefer_seed" +# define OSSL_PKEY_PARAM_ML_DSA_RETAIN_SEED "ml-dsa.retain_seed" +# define OSSL_PKEY_PARAM_ML_DSA_SEED "seed" +# define OSSL_PKEY_PARAM_ML_KEM_IMPORT_PCT_TYPE "ml-kem.import_pct_type" +# define OSSL_PKEY_PARAM_ML_KEM_INPUT_FORMATS "ml-kem.input_formats" +# define OSSL_PKEY_PARAM_ML_KEM_OUTPUT_FORMATS "ml-kem.output_formats" +# define OSSL_PKEY_PARAM_ML_KEM_PREFER_SEED "ml-kem.prefer_seed" +# define OSSL_PKEY_PARAM_ML_KEM_RETAIN_SEED "ml-kem.retain_seed" +# define OSSL_PKEY_PARAM_ML_KEM_SEED "seed" +# define OSSL_PKEY_PARAM_PAD_MODE "pad-mode" +# define OSSL_PKEY_PARAM_PRIV_KEY "priv" +# define OSSL_PKEY_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_PKEY_PARAM_PUB_KEY "pub" +# define OSSL_PKEY_PARAM_RSA_BITS OSSL_PKEY_PARAM_BITS +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT "rsa-coefficient" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT1 "rsa-coefficient1" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT2 "rsa-coefficient2" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT3 "rsa-coefficient3" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT4 "rsa-coefficient4" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT5 "rsa-coefficient5" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT6 "rsa-coefficient6" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT7 "rsa-coefficient7" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT8 "rsa-coefficient8" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT9 "rsa-coefficient9" +# define OSSL_PKEY_PARAM_RSA_D "d" +# define OSSL_PKEY_PARAM_RSA_DERIVE_FROM_PQ "rsa-derive-from-pq" +# define OSSL_PKEY_PARAM_RSA_DIGEST OSSL_PKEY_PARAM_DIGEST +# define OSSL_PKEY_PARAM_RSA_DIGEST_PROPS OSSL_PKEY_PARAM_PROPERTIES +# define OSSL_PKEY_PARAM_RSA_E "e" +# define OSSL_PKEY_PARAM_RSA_EXPONENT "rsa-exponent" +# define OSSL_PKEY_PARAM_RSA_EXPONENT1 "rsa-exponent1" +# define OSSL_PKEY_PARAM_RSA_EXPONENT10 "rsa-exponent10" +# define OSSL_PKEY_PARAM_RSA_EXPONENT2 "rsa-exponent2" +# define OSSL_PKEY_PARAM_RSA_EXPONENT3 "rsa-exponent3" +# define OSSL_PKEY_PARAM_RSA_EXPONENT4 "rsa-exponent4" +# define OSSL_PKEY_PARAM_RSA_EXPONENT5 "rsa-exponent5" +# define OSSL_PKEY_PARAM_RSA_EXPONENT6 "rsa-exponent6" +# define OSSL_PKEY_PARAM_RSA_EXPONENT7 "rsa-exponent7" +# define OSSL_PKEY_PARAM_RSA_EXPONENT8 "rsa-exponent8" +# define OSSL_PKEY_PARAM_RSA_EXPONENT9 "rsa-exponent9" +# define OSSL_PKEY_PARAM_RSA_FACTOR "rsa-factor" +# define OSSL_PKEY_PARAM_RSA_FACTOR1 "rsa-factor1" +# define OSSL_PKEY_PARAM_RSA_FACTOR10 "rsa-factor10" +# define OSSL_PKEY_PARAM_RSA_FACTOR2 "rsa-factor2" +# define OSSL_PKEY_PARAM_RSA_FACTOR3 "rsa-factor3" +# define OSSL_PKEY_PARAM_RSA_FACTOR4 "rsa-factor4" +# define OSSL_PKEY_PARAM_RSA_FACTOR5 "rsa-factor5" +# define OSSL_PKEY_PARAM_RSA_FACTOR6 "rsa-factor6" +# define OSSL_PKEY_PARAM_RSA_FACTOR7 "rsa-factor7" +# define OSSL_PKEY_PARAM_RSA_FACTOR8 "rsa-factor8" +# define OSSL_PKEY_PARAM_RSA_FACTOR9 "rsa-factor9" +# define OSSL_PKEY_PARAM_RSA_MASKGENFUNC OSSL_PKEY_PARAM_MASKGENFUNC +# define OSSL_PKEY_PARAM_RSA_MGF1_DIGEST OSSL_PKEY_PARAM_MGF1_DIGEST +# define OSSL_PKEY_PARAM_RSA_N "n" +# define OSSL_PKEY_PARAM_RSA_PRIMES "primes" +# define OSSL_PKEY_PARAM_RSA_PSS_SALTLEN "saltlen" +# define OSSL_PKEY_PARAM_RSA_TEST_P1 "p1" +# define OSSL_PKEY_PARAM_RSA_TEST_P2 "p2" +# define OSSL_PKEY_PARAM_RSA_TEST_Q1 "q1" +# define OSSL_PKEY_PARAM_RSA_TEST_Q2 "q2" +# define OSSL_PKEY_PARAM_RSA_TEST_XP "xp" +# define OSSL_PKEY_PARAM_RSA_TEST_XP1 "xp1" +# define OSSL_PKEY_PARAM_RSA_TEST_XP2 "xp2" +# define OSSL_PKEY_PARAM_RSA_TEST_XQ "xq" +# define OSSL_PKEY_PARAM_RSA_TEST_XQ1 "xq1" +# define OSSL_PKEY_PARAM_RSA_TEST_XQ2 "xq2" +# define OSSL_PKEY_PARAM_SECURITY_BITS "security-bits" +# define OSSL_PKEY_PARAM_SLH_DSA_SEED "seed" +# define OSSL_PKEY_PARAM_USE_COFACTOR_ECDH OSSL_PKEY_PARAM_USE_COFACTOR_FLAG +# define OSSL_PKEY_PARAM_USE_COFACTOR_FLAG "use-cofactor-flag" +# define OSSL_PROV_PARAM_BUILDINFO "buildinfo" +# define OSSL_PROV_PARAM_CORE_MODULE_FILENAME "module-filename" +# define OSSL_PROV_PARAM_CORE_PROV_NAME "provider-name" +# define OSSL_PROV_PARAM_CORE_VERSION "openssl-version" +# define OSSL_PROV_PARAM_DRBG_TRUNC_DIGEST "drbg-no-trunc-md" +# define OSSL_PROV_PARAM_DSA_SIGN_DISABLED "dsa-sign-disabled" +# define OSSL_PROV_PARAM_ECDH_COFACTOR_CHECK "ecdh-cofactor-check" +# define OSSL_PROV_PARAM_HKDF_DIGEST_CHECK "hkdf-digest-check" +# define OSSL_PROV_PARAM_HKDF_KEY_CHECK "hkdf-key-check" +# define OSSL_PROV_PARAM_HMAC_KEY_CHECK "hmac-key-check" +# define OSSL_PROV_PARAM_KBKDF_KEY_CHECK "kbkdf-key-check" +# define OSSL_PROV_PARAM_KMAC_KEY_CHECK "kmac-key-check" +# define OSSL_PROV_PARAM_NAME "name" +# define OSSL_PROV_PARAM_NO_SHORT_MAC "no-short-mac" +# define OSSL_PROV_PARAM_PBKDF2_LOWER_BOUND_CHECK "pbkdf2-lower-bound-check" +# define OSSL_PROV_PARAM_RSA_PKCS15_PAD_DISABLED "rsa-pkcs15-pad-disabled" +# define OSSL_PROV_PARAM_RSA_PSS_SALTLEN_CHECK "rsa-pss-saltlen-check" +# define OSSL_PROV_PARAM_RSA_SIGN_X931_PAD_DISABLED "rsa-sign-x931-pad-disabled" +# define OSSL_PROV_PARAM_SECURITY_CHECKS "security-checks" +# define OSSL_PROV_PARAM_SELF_TEST_DESC "st-desc" +# define OSSL_PROV_PARAM_SELF_TEST_PHASE "st-phase" +# define OSSL_PROV_PARAM_SELF_TEST_TYPE "st-type" +# define OSSL_PROV_PARAM_SIGNATURE_DIGEST_CHECK "signature-digest-check" +# define OSSL_PROV_PARAM_SSHKDF_DIGEST_CHECK "sshkdf-digest-check" +# define OSSL_PROV_PARAM_SSHKDF_KEY_CHECK "sshkdf-key-check" +# define OSSL_PROV_PARAM_SSKDF_DIGEST_CHECK "sskdf-digest-check" +# define OSSL_PROV_PARAM_SSKDF_KEY_CHECK "sskdf-key-check" +# define OSSL_PROV_PARAM_STATUS "status" +# define OSSL_PROV_PARAM_TDES_ENCRYPT_DISABLED "tdes-encrypt-disabled" +# define OSSL_PROV_PARAM_TLS13_KDF_DIGEST_CHECK "tls13-kdf-digest-check" +# define OSSL_PROV_PARAM_TLS13_KDF_KEY_CHECK "tls13-kdf-key-check" +# define OSSL_PROV_PARAM_TLS1_PRF_DIGEST_CHECK "tls1-prf-digest-check" +# define OSSL_PROV_PARAM_TLS1_PRF_EMS_CHECK "tls1-prf-ems-check" +# define OSSL_PROV_PARAM_TLS1_PRF_KEY_CHECK "tls1-prf-key-check" +# define OSSL_PROV_PARAM_VERSION "version" +# define OSSL_PROV_PARAM_X942KDF_KEY_CHECK "x942kdf-key-check" +# define OSSL_PROV_PARAM_X963KDF_DIGEST_CHECK "x963kdf-digest-check" +# define OSSL_PROV_PARAM_X963KDF_KEY_CHECK "x963kdf-key-check" +# define OSSL_RAND_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_RAND_PARAM_GENERATE "generate" +# define OSSL_RAND_PARAM_MAX_REQUEST "max_request" +# define OSSL_RAND_PARAM_STATE "state" +# define OSSL_RAND_PARAM_STRENGTH "strength" +# define OSSL_RAND_PARAM_TEST_ENTROPY "test_entropy" +# define OSSL_RAND_PARAM_TEST_NONCE "test_nonce" +# define OSSL_SIGNATURE_PARAM_ADD_RANDOM "additional-random" +# define OSSL_SIGNATURE_PARAM_ALGORITHM_ID OSSL_PKEY_PARAM_ALGORITHM_ID +# define OSSL_SIGNATURE_PARAM_ALGORITHM_ID_PARAMS OSSL_PKEY_PARAM_ALGORITHM_ID_PARAMS +# define OSSL_SIGNATURE_PARAM_CONTEXT_STRING "context-string" +# define OSSL_SIGNATURE_PARAM_DETERMINISTIC "deterministic" +# define OSSL_SIGNATURE_PARAM_DIGEST OSSL_PKEY_PARAM_DIGEST +# define OSSL_SIGNATURE_PARAM_DIGEST_SIZE OSSL_PKEY_PARAM_DIGEST_SIZE +# define OSSL_SIGNATURE_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_SIGNATURE_PARAM_FIPS_DIGEST_CHECK OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK +# define OSSL_SIGNATURE_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_SIGNATURE_PARAM_FIPS_RSA_PSS_SALTLEN_CHECK "rsa-pss-saltlen-check" +# define OSSL_SIGNATURE_PARAM_FIPS_SIGN_CHECK OSSL_PKEY_PARAM_FIPS_SIGN_CHECK +# define OSSL_SIGNATURE_PARAM_FIPS_SIGN_X931_PAD_CHECK "sign-x931-pad-check" +# define OSSL_SIGNATURE_PARAM_FIPS_VERIFY_MESSAGE "verify-message" +# define OSSL_SIGNATURE_PARAM_INSTANCE "instance" +# define OSSL_SIGNATURE_PARAM_KAT "kat" +# define OSSL_SIGNATURE_PARAM_MESSAGE_ENCODING "message-encoding" +# define OSSL_SIGNATURE_PARAM_MGF1_DIGEST OSSL_PKEY_PARAM_MGF1_DIGEST +# define OSSL_SIGNATURE_PARAM_MGF1_PROPERTIES OSSL_PKEY_PARAM_MGF1_PROPERTIES +# define OSSL_SIGNATURE_PARAM_MU "mu" +# define OSSL_SIGNATURE_PARAM_NONCE_TYPE "nonce-type" +# define OSSL_SIGNATURE_PARAM_PAD_MODE OSSL_PKEY_PARAM_PAD_MODE +# define OSSL_SIGNATURE_PARAM_PROPERTIES OSSL_PKEY_PARAM_PROPERTIES +# define OSSL_SIGNATURE_PARAM_PSS_SALTLEN "saltlen" +# define OSSL_SIGNATURE_PARAM_SIGNATURE "signature" +# define OSSL_SIGNATURE_PARAM_TEST_ENTROPY "test-entropy" +# define OSSL_SKEY_PARAM_KEY_LENGTH "key-length" +# define OSSL_SKEY_PARAM_RAW_BYTES "raw-bytes" +# define OSSL_STORE_PARAM_ALIAS "alias" +# define OSSL_STORE_PARAM_DIGEST "digest" +# define OSSL_STORE_PARAM_EXPECT "expect" +# define OSSL_STORE_PARAM_FINGERPRINT "fingerprint" +# define OSSL_STORE_PARAM_INPUT_TYPE "input-type" +# define OSSL_STORE_PARAM_ISSUER "name" +# define OSSL_STORE_PARAM_PROPERTIES "properties" +# define OSSL_STORE_PARAM_SERIAL "serial" +# define OSSL_STORE_PARAM_SUBJECT "subject" + +# ifdef __cplusplus +} +# endif + +#endif diff --git a/deps/openssl/config/archs/BSD-x86/asm_avx2/include/openssl/crmf.h b/deps/openssl/config/archs/BSD-x86/asm_avx2/include/openssl/crmf.h index 71b747ed33d239..4bf550fd47daa9 100644 --- a/deps/openssl/config/archs/BSD-x86/asm_avx2/include/openssl/crmf.h +++ b/deps/openssl/config/archs/BSD-x86/asm_avx2/include/openssl/crmf.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/crmf.h.in * - * Copyright 2007-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2007-2025 The OpenSSL Project Authors. All Rights Reserved. * Copyright Nokia 2007-2019 * Copyright Siemens AG 2015-2019 * @@ -26,6 +26,7 @@ # include # include # include /* for GENERAL_NAME etc. */ +# include /* explicit #includes not strictly needed since implied by the above: */ # include @@ -43,9 +44,12 @@ extern "C" { # define OSSL_CRMF_SUBSEQUENTMESSAGE_ENCRCERT 0 # define OSSL_CRMF_SUBSEQUENTMESSAGE_CHALLENGERESP 1 - typedef struct ossl_crmf_encryptedvalue_st OSSL_CRMF_ENCRYPTEDVALUE; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_ENCRYPTEDVALUE) + +typedef struct ossl_crmf_encryptedkey_st OSSL_CRMF_ENCRYPTEDKEY; +DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_ENCRYPTEDKEY) + typedef struct ossl_crmf_msg_st OSSL_CRMF_MSG; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_MSG) DECLARE_ASN1_DUP_FUNCTION(OSSL_CRMF_MSG) @@ -77,6 +81,36 @@ SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CRMF_MSG, OSSL_CRMF_MSG, OSSL_CRMF_MSG) #define sk_OSSL_CRMF_MSG_set_cmp_func(sk, cmp) ((sk_OSSL_CRMF_MSG_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CRMF_MSG_sk_type(sk), ossl_check_OSSL_CRMF_MSG_compfunc_type(cmp))) typedef struct ossl_crmf_attributetypeandvalue_st OSSL_CRMF_ATTRIBUTETYPEANDVALUE; +void OSSL_CRMF_ATTRIBUTETYPEANDVALUE_free(OSSL_CRMF_ATTRIBUTETYPEANDVALUE *v); +DECLARE_ASN1_DUP_FUNCTION(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CRMF_ATTRIBUTETYPEANDVALUE, OSSL_CRMF_ATTRIBUTETYPEANDVALUE, OSSL_CRMF_ATTRIBUTETYPEANDVALUE) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_value(sk, idx) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_value(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), (idx))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_new(cmp) ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_new(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_compfunc_type(cmp))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_new_null() ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_new_null()) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_new_reserve(cmp, n) ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_compfunc_type(cmp), (n))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), (n)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_free(sk) OPENSSL_sk_free(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_delete(sk, i) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_delete(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), (i))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_delete_ptr(sk, ptr) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_pop(sk) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_pop(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_shift(sk) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_shift(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk),ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_freefunc_type(freefunc)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr), (idx)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_set(sk, idx, ptr) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_set(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), (idx), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr), pnum) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_dup(sk) ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_dup(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_copyfunc_type(copyfunc), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_freefunc_type(freefunc))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_set_cmp_func(sk, cmp) ((sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_compfunc_type(cmp))) + + typedef struct ossl_crmf_pbmparameter_st OSSL_CRMF_PBMPARAMETER; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_PBMPARAMETER) typedef struct ossl_crmf_poposigningkey_st OSSL_CRMF_POPOSIGNINGKEY; @@ -118,6 +152,7 @@ typedef struct ossl_crmf_singlepubinfo_st OSSL_CRMF_SINGLEPUBINFO; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_SINGLEPUBINFO) typedef struct ossl_crmf_certtemplate_st OSSL_CRMF_CERTTEMPLATE; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_CERTTEMPLATE) +DECLARE_ASN1_DUP_FUNCTION(OSSL_CRMF_CERTTEMPLATE) typedef STACK_OF(OSSL_CRMF_MSG) OSSL_CRMF_MSGS; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_MSGS) @@ -198,12 +233,14 @@ int OSSL_CRMF_MSGS_verify_popo(const OSSL_CRMF_MSGS *reqs, int rid, int acceptRAVerified, OSSL_LIB_CTX *libctx, const char *propq); OSSL_CRMF_CERTTEMPLATE *OSSL_CRMF_MSG_get0_tmpl(const OSSL_CRMF_MSG *crm); -const ASN1_INTEGER -*OSSL_CRMF_CERTTEMPLATE_get0_serialNumber(const OSSL_CRMF_CERTTEMPLATE *tmpl); +X509_PUBKEY +*OSSL_CRMF_CERTTEMPLATE_get0_publicKey(const OSSL_CRMF_CERTTEMPLATE *tmpl); const X509_NAME *OSSL_CRMF_CERTTEMPLATE_get0_subject(const OSSL_CRMF_CERTTEMPLATE *tmpl); const X509_NAME *OSSL_CRMF_CERTTEMPLATE_get0_issuer(const OSSL_CRMF_CERTTEMPLATE *tmpl); +const ASN1_INTEGER +*OSSL_CRMF_CERTTEMPLATE_get0_serialNumber(const OSSL_CRMF_CERTTEMPLATE *tmpl); X509_EXTENSIONS *OSSL_CRMF_CERTTEMPLATE_get0_extensions(const OSSL_CRMF_CERTTEMPLATE *tmpl); const X509_NAME @@ -215,10 +252,24 @@ int OSSL_CRMF_CERTTEMPLATE_fill(OSSL_CRMF_CERTTEMPLATE *tmpl, const X509_NAME *subject, const X509_NAME *issuer, const ASN1_INTEGER *serial); -X509 -*OSSL_CRMF_ENCRYPTEDVALUE_get1_encCert(const OSSL_CRMF_ENCRYPTEDVALUE *ecert, - OSSL_LIB_CTX *libctx, const char *propq, - EVP_PKEY *pkey); +X509 *OSSL_CRMF_ENCRYPTEDVALUE_get1_encCert(const OSSL_CRMF_ENCRYPTEDVALUE *ecert, + OSSL_LIB_CTX *libctx, const char *propq, + EVP_PKEY *pkey); +X509 *OSSL_CRMF_ENCRYPTEDKEY_get1_encCert(const OSSL_CRMF_ENCRYPTEDKEY *ecert, + OSSL_LIB_CTX *libctx, const char *propq, + EVP_PKEY *pkey, unsigned int flags); +unsigned char +*OSSL_CRMF_ENCRYPTEDVALUE_decrypt(const OSSL_CRMF_ENCRYPTEDVALUE *enc, + OSSL_LIB_CTX *libctx, const char *propq, + EVP_PKEY *pkey, int *outlen); +EVP_PKEY *OSSL_CRMF_ENCRYPTEDKEY_get1_pkey(const OSSL_CRMF_ENCRYPTEDKEY *encryptedKey, + X509_STORE *ts, STACK_OF(X509) *extra, EVP_PKEY *pkey, + X509 *cert, ASN1_OCTET_STRING *secret, + OSSL_LIB_CTX *libctx, const char *propq); +int OSSL_CRMF_MSG_centralkeygen_requested(const OSSL_CRMF_MSG *crm, const X509_REQ *p10cr); +# ifndef OPENSSL_NO_CMS +OSSL_CRMF_ENCRYPTEDKEY *OSSL_CRMF_ENCRYPTEDKEY_init_envdata(CMS_EnvelopedData *envdata); +# endif # ifdef __cplusplus } diff --git a/deps/openssl/config/archs/BSD-x86/asm_avx2/include/openssl/crypto.h b/deps/openssl/config/archs/BSD-x86/asm_avx2/include/openssl/crypto.h index 3f40be6d8c61d5..fd2cfd3e5a9ac4 100644 --- a/deps/openssl/config/archs/BSD-x86/asm_avx2/include/openssl/crypto.h +++ b/deps/openssl/config/archs/BSD-x86/asm_avx2/include/openssl/crypto.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/crypto.h.in * - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2024 The OpenSSL Project Authors. All Rights Reserved. * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved * * Licensed under the Apache License 2.0 (the "License"). You may not use @@ -85,9 +85,15 @@ int CRYPTO_THREAD_unlock(CRYPTO_RWLOCK *lock); void CRYPTO_THREAD_lock_free(CRYPTO_RWLOCK *lock); int CRYPTO_atomic_add(int *val, int amount, int *ret, CRYPTO_RWLOCK *lock); +int CRYPTO_atomic_add64(uint64_t *val, uint64_t op, uint64_t *ret, + CRYPTO_RWLOCK *lock); +int CRYPTO_atomic_and(uint64_t *val, uint64_t op, uint64_t *ret, + CRYPTO_RWLOCK *lock); int CRYPTO_atomic_or(uint64_t *val, uint64_t op, uint64_t *ret, CRYPTO_RWLOCK *lock); int CRYPTO_atomic_load(uint64_t *val, uint64_t *ret, CRYPTO_RWLOCK *lock); +int CRYPTO_atomic_load_int(int *val, int *ret, CRYPTO_RWLOCK *lock); +int CRYPTO_atomic_store(uint64_t *dst, uint64_t val, CRYPTO_RWLOCK *lock); /* No longer needed, so this is a no-op */ #define OPENSSL_malloc_init() while(0) continue @@ -96,6 +102,9 @@ int CRYPTO_atomic_load(uint64_t *val, uint64_t *ret, CRYPTO_RWLOCK *lock); CRYPTO_malloc(num, OPENSSL_FILE, OPENSSL_LINE) # define OPENSSL_zalloc(num) \ CRYPTO_zalloc(num, OPENSSL_FILE, OPENSSL_LINE) +# define OPENSSL_aligned_alloc(num, alignment, freeptr) \ + CRYPTO_aligned_alloc(num, alignment, freeptr, \ + OPENSSL_FILE, OPENSSL_LINE) # define OPENSSL_realloc(addr, num) \ CRYPTO_realloc(addr, num, OPENSSL_FILE, OPENSSL_LINE) # define OPENSSL_clear_realloc(addr, old_num, num) \ @@ -124,6 +133,7 @@ int CRYPTO_atomic_load(uint64_t *val, uint64_t *ret, CRYPTO_RWLOCK *lock); size_t OPENSSL_strlcpy(char *dst, const char *src, size_t siz); size_t OPENSSL_strlcat(char *dst, const char *src, size_t siz); size_t OPENSSL_strnlen(const char *str, size_t maxlen); +int OPENSSL_strtoul(const char *str, char **endptr, int base, unsigned long *num); int OPENSSL_buf2hexstr_ex(char *str, size_t str_n, size_t *strlength, const unsigned char *buf, size_t buflen, const char sep); @@ -160,6 +170,7 @@ const char *OpenSSL_version(int type); # define OPENSSL_FULL_VERSION_STRING 7 # define OPENSSL_MODULES_DIR 8 # define OPENSSL_CPU_INFO 9 +# define OPENSSL_WINCTX 10 const char *OPENSSL_info(int type); /* @@ -174,6 +185,7 @@ const char *OPENSSL_info(int type); # define OPENSSL_INFO_LIST_SEPARATOR 1006 # define OPENSSL_INFO_SEED_SOURCE 1007 # define OPENSSL_INFO_CPU_SETTINGS 1008 +# define OPENSSL_INFO_WINDOWS_CONTEXT 1009 int OPENSSL_issetugid(void); @@ -341,11 +353,14 @@ void CRYPTO_get_mem_functions(CRYPTO_malloc_fn *malloc_fn, CRYPTO_realloc_fn *realloc_fn, CRYPTO_free_fn *free_fn); -void *CRYPTO_malloc(size_t num, const char *file, int line); -void *CRYPTO_zalloc(size_t num, const char *file, int line); -void *CRYPTO_memdup(const void *str, size_t siz, const char *file, int line); -char *CRYPTO_strdup(const char *str, const char *file, int line); -char *CRYPTO_strndup(const char *str, size_t s, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_malloc(size_t num, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_zalloc(size_t num, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_aligned_alloc(size_t num, size_t align, + void **freeptr, const char *file, + int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_memdup(const void *str, size_t siz, const char *file, int line); +OSSL_CRYPTO_ALLOC char *CRYPTO_strdup(const char *str, const char *file, int line); +OSSL_CRYPTO_ALLOC char *CRYPTO_strndup(const char *str, size_t s, const char *file, int line); void CRYPTO_free(void *ptr, const char *file, int line); void CRYPTO_clear_free(void *ptr, size_t num, const char *file, int line); void *CRYPTO_realloc(void *addr, size_t num, const char *file, int line); @@ -354,8 +369,8 @@ void *CRYPTO_clear_realloc(void *addr, size_t old_num, size_t num, int CRYPTO_secure_malloc_init(size_t sz, size_t minsize); int CRYPTO_secure_malloc_done(void); -void *CRYPTO_secure_malloc(size_t num, const char *file, int line); -void *CRYPTO_secure_zalloc(size_t num, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_secure_malloc(size_t num, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_secure_zalloc(size_t num, const char *file, int line); void CRYPTO_secure_free(void *ptr, const char *file, int line); void CRYPTO_secure_clear_free(void *ptr, size_t num, const char *file, int line); @@ -376,6 +391,9 @@ void OPENSSL_cleanse(void *ptr, size_t len); # define CRYPTO_MEM_CHECK_ENABLE 0x2 /* Control and mode bit */ # define CRYPTO_MEM_CHECK_DISABLE 0x3 /* Control only */ +/* max allowed length for value of OPENSSL_MALLOC_FAILURES env var. */ +# define CRYPTO_MEM_CHECK_MAX_FS 256 + void CRYPTO_get_alloc_counts(int *mcount, int *rcount, int *fcount); # ifndef OPENSSL_NO_DEPRECATED_3_0 # define OPENSSL_mem_debug_push(info) \ @@ -551,6 +569,13 @@ int OSSL_LIB_CTX_load_config(OSSL_LIB_CTX *ctx, const char *config_file); void OSSL_LIB_CTX_free(OSSL_LIB_CTX *); OSSL_LIB_CTX *OSSL_LIB_CTX_get0_global_default(void); OSSL_LIB_CTX *OSSL_LIB_CTX_set0_default(OSSL_LIB_CTX *libctx); +int OSSL_LIB_CTX_get_conf_diagnostics(OSSL_LIB_CTX *ctx); +void OSSL_LIB_CTX_set_conf_diagnostics(OSSL_LIB_CTX *ctx, int value); + +void OSSL_sleep(uint64_t millis); + + +void *OSSL_LIB_CTX_get_data(OSSL_LIB_CTX *ctx, int index); # ifdef __cplusplus } diff --git a/deps/openssl/config/archs/BSD-x86/asm_avx2/include/openssl/ct.h b/deps/openssl/config/archs/BSD-x86/asm_avx2/include/openssl/ct.h index b6dd8c3547710a..e6dd1192a4e0b3 100644 --- a/deps/openssl/config/archs/BSD-x86/asm_avx2/include/openssl/ct.h +++ b/deps/openssl/config/archs/BSD-x86/asm_avx2/include/openssl/ct.h @@ -133,7 +133,7 @@ typedef enum { */ CT_POLICY_EVAL_CTX *CT_POLICY_EVAL_CTX_new_ex(OSSL_LIB_CTX *libctx, const char *propq); - + /* * The same as CT_POLICY_EVAL_CTX_new_ex() but the default library * context and property query string is used. diff --git a/deps/openssl/config/archs/BSD-x86/asm_avx2/include/openssl/err.h b/deps/openssl/config/archs/BSD-x86/asm_avx2/include/openssl/err.h index 2abf2483488181..daca18e7b757b0 100644 --- a/deps/openssl/config/archs/BSD-x86/asm_avx2/include/openssl/err.h +++ b/deps/openssl/config/archs/BSD-x86/asm_avx2/include/openssl/err.h @@ -1,5 +1,5 @@ /* - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -372,7 +372,7 @@ typedef struct ERR_string_data_st { } ERR_STRING_DATA; DEFINE_LHASH_OF_INTERNAL(ERR_STRING_DATA); -#define lh_ERR_STRING_DATA_new(hfn, cmp) ((LHASH_OF(ERR_STRING_DATA) *)OPENSSL_LH_new(ossl_check_ERR_STRING_DATA_lh_hashfunc_type(hfn), ossl_check_ERR_STRING_DATA_lh_compfunc_type(cmp))) +#define lh_ERR_STRING_DATA_new(hfn, cmp) ((LHASH_OF(ERR_STRING_DATA) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new(ossl_check_ERR_STRING_DATA_lh_hashfunc_type(hfn), ossl_check_ERR_STRING_DATA_lh_compfunc_type(cmp)), lh_ERR_STRING_DATA_hash_thunk, lh_ERR_STRING_DATA_comp_thunk, lh_ERR_STRING_DATA_doall_thunk, lh_ERR_STRING_DATA_doall_arg_thunk)) #define lh_ERR_STRING_DATA_free(lh) OPENSSL_LH_free(ossl_check_ERR_STRING_DATA_lh_type(lh)) #define lh_ERR_STRING_DATA_flush(lh) OPENSSL_LH_flush(ossl_check_ERR_STRING_DATA_lh_type(lh)) #define lh_ERR_STRING_DATA_insert(lh, ptr) ((ERR_STRING_DATA *)OPENSSL_LH_insert(ossl_check_ERR_STRING_DATA_lh_type(lh), ossl_check_ERR_STRING_DATA_lh_plain_type(ptr))) @@ -496,6 +496,14 @@ int ERR_get_next_error_library(void); int ERR_set_mark(void); int ERR_pop_to_mark(void); int ERR_clear_last_mark(void); +int ERR_count_to_mark(void); +int ERR_pop(void); + +ERR_STATE *OSSL_ERR_STATE_new(void); +void OSSL_ERR_STATE_save(ERR_STATE *es); +void OSSL_ERR_STATE_save_to_mark(ERR_STATE *es); +void OSSL_ERR_STATE_restore(const ERR_STATE *es); +void OSSL_ERR_STATE_free(ERR_STATE *es); #ifdef __cplusplus } diff --git a/deps/openssl/config/archs/BSD-x86/asm_avx2/include/openssl/fipskey.h b/deps/openssl/config/archs/BSD-x86/asm_avx2/include/openssl/fipskey.h index 42ba014b313ba8..929db18c678364 100644 --- a/deps/openssl/config/archs/BSD-x86/asm_avx2/include/openssl/fipskey.h +++ b/deps/openssl/config/archs/BSD-x86/asm_avx2/include/openssl/fipskey.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/fipskey.h.in * - * Copyright 2020-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2020-2024 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -29,6 +29,11 @@ extern "C" { */ #define FIPS_KEY_STRING "f4556650ac31d35461610bac4ed81b1a181b2d8a43ea2854cbae22ca74560813" +/* + * The FIPS provider vendor name, as a string. + */ +#define FIPS_VENDOR "OpenSSL FIPS Provider" + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/BSD-x86/asm_avx2/include/openssl/lhash.h b/deps/openssl/config/archs/BSD-x86/asm_avx2/include/openssl/lhash.h index 39dd6254acdeb6..62c55b20fd9716 100644 --- a/deps/openssl/config/archs/BSD-x86/asm_avx2/include/openssl/lhash.h +++ b/deps/openssl/config/archs/BSD-x86/asm_avx2/include/openssl/lhash.h @@ -1,5 +1,5 @@ /* - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2024 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -24,6 +24,9 @@ # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -31,9 +34,13 @@ extern "C" { typedef struct lhash_node_st OPENSSL_LH_NODE; typedef int (*OPENSSL_LH_COMPFUNC) (const void *, const void *); +typedef int (*OPENSSL_LH_COMPFUNCTHUNK) (const void *, const void *, OPENSSL_LH_COMPFUNC cfn); typedef unsigned long (*OPENSSL_LH_HASHFUNC) (const void *); +typedef unsigned long (*OPENSSL_LH_HASHFUNCTHUNK) (const void *, OPENSSL_LH_HASHFUNC hfn); typedef void (*OPENSSL_LH_DOALL_FUNC) (void *); +typedef void (*OPENSSL_LH_DOALL_FUNC_THUNK) (void *, OPENSSL_LH_DOALL_FUNC doall); typedef void (*OPENSSL_LH_DOALL_FUNCARG) (void *, void *); +typedef void (*OPENSSL_LH_DOALL_FUNCARG_THUNK) (void *, void *, OPENSSL_LH_DOALL_FUNCARG doall); typedef struct lhash_st OPENSSL_LHASH; /* @@ -79,26 +86,40 @@ typedef struct lhash_st OPENSSL_LHASH; int OPENSSL_LH_error(OPENSSL_LHASH *lh); OPENSSL_LHASH *OPENSSL_LH_new(OPENSSL_LH_HASHFUNC h, OPENSSL_LH_COMPFUNC c); +OPENSSL_LHASH *OPENSSL_LH_set_thunks(OPENSSL_LHASH *lh, + OPENSSL_LH_HASHFUNCTHUNK hw, + OPENSSL_LH_COMPFUNCTHUNK cw, + OPENSSL_LH_DOALL_FUNC_THUNK daw, + OPENSSL_LH_DOALL_FUNCARG_THUNK daaw); void OPENSSL_LH_free(OPENSSL_LHASH *lh); void OPENSSL_LH_flush(OPENSSL_LHASH *lh); void *OPENSSL_LH_insert(OPENSSL_LHASH *lh, void *data); void *OPENSSL_LH_delete(OPENSSL_LHASH *lh, const void *data); void *OPENSSL_LH_retrieve(OPENSSL_LHASH *lh, const void *data); void OPENSSL_LH_doall(OPENSSL_LHASH *lh, OPENSSL_LH_DOALL_FUNC func); -void OPENSSL_LH_doall_arg(OPENSSL_LHASH *lh, OPENSSL_LH_DOALL_FUNCARG func, void *arg); +void OPENSSL_LH_doall_arg(OPENSSL_LHASH *lh, + OPENSSL_LH_DOALL_FUNCARG func, void *arg); +void OPENSSL_LH_doall_arg_thunk(OPENSSL_LHASH *lh, + OPENSSL_LH_DOALL_FUNCARG_THUNK daaw, + OPENSSL_LH_DOALL_FUNCARG fn, void *arg); + unsigned long OPENSSL_LH_strhash(const char *c); unsigned long OPENSSL_LH_num_items(const OPENSSL_LHASH *lh); unsigned long OPENSSL_LH_get_down_load(const OPENSSL_LHASH *lh); void OPENSSL_LH_set_down_load(OPENSSL_LHASH *lh, unsigned long down_load); # ifndef OPENSSL_NO_STDIO -void OPENSSL_LH_stats(const OPENSSL_LHASH *lh, FILE *fp); -void OPENSSL_LH_node_stats(const OPENSSL_LHASH *lh, FILE *fp); -void OPENSSL_LH_node_usage_stats(const OPENSSL_LHASH *lh, FILE *fp); +# ifndef OPENSSL_NO_DEPRECATED_3_1 +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_stats(const OPENSSL_LHASH *lh, FILE *fp); +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_node_stats(const OPENSSL_LHASH *lh, FILE *fp); +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_node_usage_stats(const OPENSSL_LHASH *lh, FILE *fp); +# endif +# endif +# ifndef OPENSSL_NO_DEPRECATED_3_1 +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_stats_bio(const OPENSSL_LHASH *lh, BIO *out); +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_node_stats_bio(const OPENSSL_LHASH *lh, BIO *out); +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_node_usage_stats_bio(const OPENSSL_LHASH *lh, BIO *out); # endif -void OPENSSL_LH_stats_bio(const OPENSSL_LHASH *lh, BIO *out); -void OPENSSL_LH_node_stats_bio(const OPENSSL_LHASH *lh, BIO *out); -void OPENSSL_LH_node_usage_stats_bio(const OPENSSL_LHASH *lh, BIO *out); # ifndef OPENSSL_NO_DEPRECATED_1_1_0 # define _LHASH OPENSSL_LHASH @@ -129,110 +150,190 @@ void OPENSSL_LH_node_usage_stats_bio(const OPENSSL_LHASH *lh, BIO *out); /* Helper macro for internal use */ # define DEFINE_LHASH_OF_INTERNAL(type) \ - LHASH_OF(type) { union lh_##type##_dummy { void* d1; unsigned long d2; int d3; } dummy; }; \ + LHASH_OF(type) { \ + union lh_##type##_dummy { void* d1; unsigned long d2; int d3; } dummy; \ + }; \ typedef int (*lh_##type##_compfunc)(const type *a, const type *b); \ typedef unsigned long (*lh_##type##_hashfunc)(const type *a); \ typedef void (*lh_##type##_doallfunc)(type *a); \ - static ossl_unused ossl_inline type *ossl_check_##type##_lh_plain_type(type *ptr) \ + static ossl_inline unsigned long lh_##type##_hash_thunk(const void *data, OPENSSL_LH_HASHFUNC hfn) \ + { \ + unsigned long (*hfn_conv)(const type *) = (unsigned long (*)(const type *))hfn; \ + return hfn_conv((const type *)data); \ + } \ + static ossl_inline int lh_##type##_comp_thunk(const void *da, const void *db, OPENSSL_LH_COMPFUNC cfn) \ + { \ + int (*cfn_conv)(const type *, const type *) = (int (*)(const type *, const type *))cfn; \ + return cfn_conv((const type *)da, (const type *)db); \ + } \ + static ossl_inline void lh_##type##_doall_thunk(void *node, OPENSSL_LH_DOALL_FUNC doall) \ + { \ + void (*doall_conv)(type *) = (void (*)(type *))doall; \ + doall_conv((type *)node); \ + } \ + static ossl_inline void lh_##type##_doall_arg_thunk(void *node, void *arg, OPENSSL_LH_DOALL_FUNCARG doall) \ + { \ + void (*doall_conv)(type *, void *) = (void (*)(type *, void *))doall; \ + doall_conv((type *)node, arg); \ + } \ + static ossl_unused ossl_inline type *\ + ossl_check_##type##_lh_plain_type(type *ptr) \ { \ return ptr; \ } \ - static ossl_unused ossl_inline const type *ossl_check_const_##type##_lh_plain_type(const type *ptr) \ + static ossl_unused ossl_inline const type * \ + ossl_check_const_##type##_lh_plain_type(const type *ptr) \ { \ return ptr; \ } \ - static ossl_unused ossl_inline const OPENSSL_LHASH *ossl_check_const_##type##_lh_type(const LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline const OPENSSL_LHASH * \ + ossl_check_const_##type##_lh_type(const LHASH_OF(type) *lh) \ { \ return (const OPENSSL_LHASH *)lh; \ } \ - static ossl_unused ossl_inline OPENSSL_LHASH *ossl_check_##type##_lh_type(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline OPENSSL_LHASH * \ + ossl_check_##type##_lh_type(LHASH_OF(type) *lh) \ { \ return (OPENSSL_LHASH *)lh; \ } \ - static ossl_unused ossl_inline OPENSSL_LH_COMPFUNC ossl_check_##type##_lh_compfunc_type(lh_##type##_compfunc cmp) \ + static ossl_unused ossl_inline OPENSSL_LH_COMPFUNC \ + ossl_check_##type##_lh_compfunc_type(lh_##type##_compfunc cmp) \ { \ return (OPENSSL_LH_COMPFUNC)cmp; \ } \ - static ossl_unused ossl_inline OPENSSL_LH_HASHFUNC ossl_check_##type##_lh_hashfunc_type(lh_##type##_hashfunc hfn) \ + static ossl_unused ossl_inline OPENSSL_LH_HASHFUNC \ + ossl_check_##type##_lh_hashfunc_type(lh_##type##_hashfunc hfn) \ { \ return (OPENSSL_LH_HASHFUNC)hfn; \ } \ - static ossl_unused ossl_inline OPENSSL_LH_DOALL_FUNC ossl_check_##type##_lh_doallfunc_type(lh_##type##_doallfunc dfn) \ + static ossl_unused ossl_inline OPENSSL_LH_DOALL_FUNC \ + ossl_check_##type##_lh_doallfunc_type(lh_##type##_doallfunc dfn) \ { \ return (OPENSSL_LH_DOALL_FUNC)dfn; \ } \ LHASH_OF(type) -# define DEFINE_LHASH_OF(type) \ - LHASH_OF(type) { union lh_##type##_dummy { void* d1; unsigned long d2; int d3; } dummy; }; \ - static ossl_unused ossl_inline LHASH_OF(type) *lh_##type##_new(unsigned long (*hfn)(const type *), \ - int (*cfn)(const type *, const type *)) \ +# ifndef OPENSSL_NO_DEPRECATED_3_1 +# define DEFINE_LHASH_OF_DEPRECATED(type) \ + static ossl_unused ossl_inline void \ + lh_##type##_node_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ { \ - return (LHASH_OF(type) *) \ - OPENSSL_LH_new((OPENSSL_LH_HASHFUNC)hfn, (OPENSSL_LH_COMPFUNC)cfn); \ + OPENSSL_LH_node_stats_bio((const OPENSSL_LHASH *)lh, out); \ } \ - static ossl_unused ossl_inline void lh_##type##_free(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline void \ + lh_##type##_node_usage_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + { \ + OPENSSL_LH_node_usage_stats_bio((const OPENSSL_LHASH *)lh, out); \ + } \ + static ossl_unused ossl_inline void \ + lh_##type##_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + { \ + OPENSSL_LH_stats_bio((const OPENSSL_LHASH *)lh, out); \ + } +# else +# define DEFINE_LHASH_OF_DEPRECATED(type) +# endif + +# define DEFINE_LHASH_OF_EX(type) \ + LHASH_OF(type) { \ + union lh_##type##_dummy { void* d1; unsigned long d2; int d3; } dummy; \ + }; \ + static unsigned long \ + lh_##type##_hfn_thunk(const void *data, OPENSSL_LH_HASHFUNC hfn) \ + { \ + unsigned long (*hfn_conv)(const type *) = (unsigned long (*)(const type *))hfn; \ + return hfn_conv((const type *)data); \ + } \ + static int lh_##type##_cfn_thunk(const void *da, const void *db, OPENSSL_LH_COMPFUNC cfn) \ + { \ + int (*cfn_conv)(const type *, const type *) = (int (*)(const type *, const type *))cfn; \ + return cfn_conv((const type *)da, (const type *)db); \ + } \ + static ossl_unused ossl_inline void \ + lh_##type##_free(LHASH_OF(type) *lh) \ { \ OPENSSL_LH_free((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline void lh_##type##_flush(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline void \ + lh_##type##_flush(LHASH_OF(type) *lh) \ { \ OPENSSL_LH_flush((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline type *lh_##type##_insert(LHASH_OF(type) *lh, type *d) \ + static ossl_unused ossl_inline type * \ + lh_##type##_insert(LHASH_OF(type) *lh, type *d) \ { \ return (type *)OPENSSL_LH_insert((OPENSSL_LHASH *)lh, d); \ } \ - static ossl_unused ossl_inline type *lh_##type##_delete(LHASH_OF(type) *lh, const type *d) \ + static ossl_unused ossl_inline type * \ + lh_##type##_delete(LHASH_OF(type) *lh, const type *d) \ { \ return (type *)OPENSSL_LH_delete((OPENSSL_LHASH *)lh, d); \ } \ - static ossl_unused ossl_inline type *lh_##type##_retrieve(LHASH_OF(type) *lh, const type *d) \ + static ossl_unused ossl_inline type * \ + lh_##type##_retrieve(LHASH_OF(type) *lh, const type *d) \ { \ return (type *)OPENSSL_LH_retrieve((OPENSSL_LHASH *)lh, d); \ } \ - static ossl_unused ossl_inline int lh_##type##_error(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline int \ + lh_##type##_error(LHASH_OF(type) *lh) \ { \ return OPENSSL_LH_error((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline unsigned long lh_##type##_num_items(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline unsigned long \ + lh_##type##_num_items(LHASH_OF(type) *lh) \ { \ return OPENSSL_LH_num_items((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline void lh_##type##_node_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + static ossl_unused ossl_inline unsigned long \ + lh_##type##_get_down_load(LHASH_OF(type) *lh) \ { \ - OPENSSL_LH_node_stats_bio((const OPENSSL_LHASH *)lh, out); \ + return OPENSSL_LH_get_down_load((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline void lh_##type##_node_usage_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + static ossl_unused ossl_inline void \ + lh_##type##_set_down_load(LHASH_OF(type) *lh, unsigned long dl) \ { \ - OPENSSL_LH_node_usage_stats_bio((const OPENSSL_LHASH *)lh, out); \ + OPENSSL_LH_set_down_load((OPENSSL_LHASH *)lh, dl); \ } \ - static ossl_unused ossl_inline void lh_##type##_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall_thunk(void *node, OPENSSL_LH_DOALL_FUNC doall) \ { \ - OPENSSL_LH_stats_bio((const OPENSSL_LHASH *)lh, out); \ + void (*doall_conv)(type *) = (void (*)(type *))doall; \ + doall_conv((type *)node); \ } \ - static ossl_unused ossl_inline unsigned long lh_##type##_get_down_load(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall_arg_thunk(void *node, void *arg, OPENSSL_LH_DOALL_FUNCARG doall) \ { \ - return OPENSSL_LH_get_down_load((OPENSSL_LHASH *)lh); \ + void (*doall_conv)(type *, void *) = (void (*)(type *, void *))doall; \ + doall_conv((type *)node, arg); \ } \ - static ossl_unused ossl_inline void lh_##type##_set_down_load(LHASH_OF(type) *lh, unsigned long dl) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall(LHASH_OF(type) *lh, void (*doall)(type *)) \ { \ - OPENSSL_LH_set_down_load((OPENSSL_LHASH *)lh, dl); \ + OPENSSL_LH_doall((OPENSSL_LHASH *)lh, (OPENSSL_LH_DOALL_FUNC)doall); \ } \ - static ossl_unused ossl_inline void lh_##type##_doall(LHASH_OF(type) *lh, \ - void (*doall)(type *)) \ + static ossl_unused ossl_inline LHASH_OF(type) * \ + lh_##type##_new(unsigned long (*hfn)(const type *), \ + int (*cfn)(const type *, const type *)) \ { \ - OPENSSL_LH_doall((OPENSSL_LHASH *)lh, (OPENSSL_LH_DOALL_FUNC)doall); \ + return (LHASH_OF(type) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new((OPENSSL_LH_HASHFUNC)hfn, (OPENSSL_LH_COMPFUNC)cfn), \ + lh_##type##_hfn_thunk, lh_##type##_cfn_thunk, \ + lh_##type##_doall_thunk, \ + lh_##type##_doall_arg_thunk); \ } \ - static ossl_unused ossl_inline void lh_##type##_doall_arg(LHASH_OF(type) *lh, \ - void (*doallarg)(type *, void *), \ - void *arg) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall_arg(LHASH_OF(type) *lh, \ + void (*doallarg)(type *, void *), void *arg) \ { \ OPENSSL_LH_doall_arg((OPENSSL_LHASH *)lh, \ (OPENSSL_LH_DOALL_FUNCARG)doallarg, arg); \ } \ LHASH_OF(type) +# define DEFINE_LHASH_OF(type) \ + DEFINE_LHASH_OF_EX(type); \ + DEFINE_LHASH_OF_DEPRECATED(type) \ + LHASH_OF(type) + #define IMPLEMENT_LHASH_DOALL_ARG_CONST(type, argtype) \ int_implement_lhash_doall(type, argtype, const type) @@ -240,17 +341,26 @@ void OPENSSL_LH_node_usage_stats_bio(const OPENSSL_LHASH *lh, BIO *out); int_implement_lhash_doall(type, argtype, type) #define int_implement_lhash_doall(type, argtype, cbargtype) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall_##argtype##_thunk(void *node, void *arg, OPENSSL_LH_DOALL_FUNCARG fn) \ + { \ + void (*fn_conv)(cbargtype *, argtype *) = (void (*)(cbargtype *, argtype *))fn; \ + fn_conv((cbargtype *)node, (argtype *)arg); \ + } \ static ossl_unused ossl_inline void \ lh_##type##_doall_##argtype(LHASH_OF(type) *lh, \ void (*fn)(cbargtype *, argtype *), \ argtype *arg) \ { \ - OPENSSL_LH_doall_arg((OPENSSL_LHASH *)lh, (OPENSSL_LH_DOALL_FUNCARG)fn, (void *)arg); \ + OPENSSL_LH_doall_arg_thunk((OPENSSL_LHASH *)lh, \ + lh_##type##_doall_##argtype##_thunk, \ + (OPENSSL_LH_DOALL_FUNCARG)fn, \ + (void *)arg); \ } \ LHASH_OF(type) DEFINE_LHASH_OF_INTERNAL(OPENSSL_STRING); -#define lh_OPENSSL_STRING_new(hfn, cmp) ((LHASH_OF(OPENSSL_STRING) *)OPENSSL_LH_new(ossl_check_OPENSSL_STRING_lh_hashfunc_type(hfn), ossl_check_OPENSSL_STRING_lh_compfunc_type(cmp))) +#define lh_OPENSSL_STRING_new(hfn, cmp) ((LHASH_OF(OPENSSL_STRING) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new(ossl_check_OPENSSL_STRING_lh_hashfunc_type(hfn), ossl_check_OPENSSL_STRING_lh_compfunc_type(cmp)), lh_OPENSSL_STRING_hash_thunk, lh_OPENSSL_STRING_comp_thunk, lh_OPENSSL_STRING_doall_thunk, lh_OPENSSL_STRING_doall_arg_thunk)) #define lh_OPENSSL_STRING_free(lh) OPENSSL_LH_free(ossl_check_OPENSSL_STRING_lh_type(lh)) #define lh_OPENSSL_STRING_flush(lh) OPENSSL_LH_flush(ossl_check_OPENSSL_STRING_lh_type(lh)) #define lh_OPENSSL_STRING_insert(lh, ptr) ((OPENSSL_STRING *)OPENSSL_LH_insert(ossl_check_OPENSSL_STRING_lh_type(lh), ossl_check_OPENSSL_STRING_lh_plain_type(ptr))) @@ -265,7 +375,7 @@ DEFINE_LHASH_OF_INTERNAL(OPENSSL_STRING); #define lh_OPENSSL_STRING_set_down_load(lh, dl) OPENSSL_LH_set_down_load(ossl_check_OPENSSL_STRING_lh_type(lh), dl) #define lh_OPENSSL_STRING_doall(lh, dfn) OPENSSL_LH_doall(ossl_check_OPENSSL_STRING_lh_type(lh), ossl_check_OPENSSL_STRING_lh_doallfunc_type(dfn)) DEFINE_LHASH_OF_INTERNAL(OPENSSL_CSTRING); -#define lh_OPENSSL_CSTRING_new(hfn, cmp) ((LHASH_OF(OPENSSL_CSTRING) *)OPENSSL_LH_new(ossl_check_OPENSSL_CSTRING_lh_hashfunc_type(hfn), ossl_check_OPENSSL_CSTRING_lh_compfunc_type(cmp))) +#define lh_OPENSSL_CSTRING_new(hfn, cmp) ((LHASH_OF(OPENSSL_CSTRING) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new(ossl_check_OPENSSL_CSTRING_lh_hashfunc_type(hfn), ossl_check_OPENSSL_CSTRING_lh_compfunc_type(cmp)), lh_OPENSSL_CSTRING_hash_thunk, lh_OPENSSL_CSTRING_comp_thunk, lh_OPENSSL_CSTRING_doall_thunk, lh_OPENSSL_CSTRING_doall_arg_thunk)) #define lh_OPENSSL_CSTRING_free(lh) OPENSSL_LH_free(ossl_check_OPENSSL_CSTRING_lh_type(lh)) #define lh_OPENSSL_CSTRING_flush(lh) OPENSSL_LH_flush(ossl_check_OPENSSL_CSTRING_lh_type(lh)) #define lh_OPENSSL_CSTRING_insert(lh, ptr) ((OPENSSL_CSTRING *)OPENSSL_LH_insert(ossl_check_OPENSSL_CSTRING_lh_type(lh), ossl_check_OPENSSL_CSTRING_lh_plain_type(ptr))) diff --git a/deps/openssl/config/archs/BSD-x86/asm_avx2/include/openssl/opensslv.h b/deps/openssl/config/archs/BSD-x86/asm_avx2/include/openssl/opensslv.h index 5fb5bc63056fe0..dd50d89cb9982d 100644 --- a/deps/openssl/config/archs/BSD-x86/asm_avx2/include/openssl/opensslv.h +++ b/deps/openssl/config/archs/BSD-x86/asm_avx2/include/openssl/opensslv.h @@ -28,8 +28,8 @@ extern "C" { * These macros express version number MAJOR.MINOR.PATCH exactly */ # define OPENSSL_VERSION_MAJOR 3 -# define OPENSSL_VERSION_MINOR 0 -# define OPENSSL_VERSION_PATCH 17 +# define OPENSSL_VERSION_MINOR 5 +# define OPENSSL_VERSION_PATCH 1 /* * Additional version information @@ -74,8 +74,8 @@ extern "C" { * longer variant with OPENSSL_VERSION_PRE_RELEASE_STR and * OPENSSL_VERSION_BUILD_METADATA_STR appended. */ -# define OPENSSL_VERSION_STR "3.0.17" -# define OPENSSL_FULL_VERSION_STR "3.0.17" +# define OPENSSL_VERSION_STR "3.5.1" +# define OPENSSL_FULL_VERSION_STR "3.5.1" /* * SECTION 3: ADDITIONAL METADATA @@ -88,7 +88,7 @@ extern "C" { * SECTION 4: BACKWARD COMPATIBILITY */ -# define OPENSSL_VERSION_TEXT "OpenSSL 3.0.17 1 Jul 2025" +# define OPENSSL_VERSION_TEXT "OpenSSL 3.5.1 1 Jul 2025" /* Synthesize OPENSSL_VERSION_NUMBER with the layout 0xMNN00PPSL */ # ifdef OPENSSL_VERSION_PRE_RELEASE diff --git a/deps/openssl/config/archs/BSD-x86/asm_avx2/include/openssl/pkcs12.h b/deps/openssl/config/archs/BSD-x86/asm_avx2/include/openssl/pkcs12.h index c5e0cab06491ec..0809645dad0bbf 100644 --- a/deps/openssl/config/archs/BSD-x86/asm_avx2/include/openssl/pkcs12.h +++ b/deps/openssl/config/archs/BSD-x86/asm_avx2/include/openssl/pkcs12.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/pkcs12.h.in * - * Copyright 1999-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1999-2024 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -25,6 +25,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -41,6 +44,7 @@ extern "C" { # define PKCS12_MAC_KEY_LENGTH 20 +/* The macro is expected to be used only internally. Kept for backwards compatibility. */ # define PKCS12_SALT_LEN 8 /* It's not clear if these are actually needed... */ @@ -130,7 +134,9 @@ int PKCS12_SAFEBAG_get_bag_nid(const PKCS12_SAFEBAG *bag); const ASN1_TYPE *PKCS12_SAFEBAG_get0_bag_obj(const PKCS12_SAFEBAG *bag); const ASN1_OBJECT *PKCS12_SAFEBAG_get0_bag_type(const PKCS12_SAFEBAG *bag); +X509 *PKCS12_SAFEBAG_get1_cert_ex(const PKCS12_SAFEBAG *bag, OSSL_LIB_CTX *libctx, const char *propq); X509 *PKCS12_SAFEBAG_get1_cert(const PKCS12_SAFEBAG *bag); +X509_CRL *PKCS12_SAFEBAG_get1_crl_ex(const PKCS12_SAFEBAG *bag, OSSL_LIB_CTX *libctx, const char *propq); X509_CRL *PKCS12_SAFEBAG_get1_crl(const PKCS12_SAFEBAG *bag); const STACK_OF(PKCS12_SAFEBAG) * PKCS12_SAFEBAG_get0_safes(const PKCS12_SAFEBAG *bag); @@ -218,6 +224,7 @@ ASN1_TYPE *PKCS12_get_attr_gen(const STACK_OF(X509_ATTRIBUTE) *attrs, char *PKCS12_get_friendlyname(PKCS12_SAFEBAG *bag); const STACK_OF(X509_ATTRIBUTE) * PKCS12_SAFEBAG_get0_attrs(const PKCS12_SAFEBAG *bag); +void PKCS12_SAFEBAG_set0_attrs(PKCS12_SAFEBAG *bag, STACK_OF(X509_ATTRIBUTE) *attrs); unsigned char *PKCS12_pbe_crypt(const X509_ALGOR *algor, const char *pass, int passlen, const unsigned char *in, int inlen, @@ -285,6 +292,9 @@ int PKCS12_verify_mac(PKCS12 *p12, const char *pass, int passlen); int PKCS12_set_mac(PKCS12 *p12, const char *pass, int passlen, unsigned char *salt, int saltlen, int iter, const EVP_MD *md_type); +int PKCS12_set_pbmac1_pbkdf2(PKCS12 *p12, const char *pass, int passlen, + unsigned char *salt, int saltlen, int iter, + const EVP_MD *md_type, const char *prf_md_name); int PKCS12_setup_mac(PKCS12 *p12, int iter, unsigned char *salt, int saltlen, const EVP_MD *md_type); unsigned char *OPENSSL_asc2uni(const char *asc, int asclen, @@ -305,6 +315,7 @@ DECLARE_ASN1_ITEM(PKCS12_AUTHSAFES) void PKCS12_PBE_add(void); int PKCS12_parse(PKCS12 *p12, const char *pass, EVP_PKEY **pkey, X509 **cert, STACK_OF(X509) **ca); +typedef int PKCS12_create_cb(PKCS12_SAFEBAG *bag, void *cbarg); PKCS12 *PKCS12_create(const char *pass, const char *name, EVP_PKEY *pkey, X509 *cert, STACK_OF(X509) *ca, int nid_key, int nid_cert, int iter, int mac_iter, int keytype); @@ -312,6 +323,11 @@ PKCS12 *PKCS12_create_ex(const char *pass, const char *name, EVP_PKEY *pkey, X509 *cert, STACK_OF(X509) *ca, int nid_key, int nid_cert, int iter, int mac_iter, int keytype, OSSL_LIB_CTX *ctx, const char *propq); +PKCS12 *PKCS12_create_ex2(const char *pass, const char *name, EVP_PKEY *pkey, + X509 *cert, STACK_OF(X509) *ca, int nid_key, int nid_cert, + int iter, int mac_iter, int keytype, + OSSL_LIB_CTX *ctx, const char *propq, + PKCS12_create_cb *cb, void *cbarg); PKCS12_SAFEBAG *PKCS12_add_cert(STACK_OF(PKCS12_SAFEBAG) **pbags, X509 *cert); PKCS12_SAFEBAG *PKCS12_add_key(STACK_OF(PKCS12_SAFEBAG) **pbags, diff --git a/deps/openssl/config/archs/BSD-x86/asm_avx2/include/openssl/pkcs7.h b/deps/openssl/config/archs/BSD-x86/asm_avx2/include/openssl/pkcs7.h index 0ce79bf4fa160e..fa68462aff973b 100644 --- a/deps/openssl/config/archs/BSD-x86/asm_avx2/include/openssl/pkcs7.h +++ b/deps/openssl/config/archs/BSD-x86/asm_avx2/include/openssl/pkcs7.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/pkcs7.h.in * - * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -28,6 +28,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -131,8 +134,8 @@ SKM_DEFINE_STACK_OF_INTERNAL(PKCS7_RECIP_INFO, PKCS7_RECIP_INFO, PKCS7_RECIP_INF typedef struct pkcs7_signed_st { ASN1_INTEGER *version; /* version 1 */ STACK_OF(X509_ALGOR) *md_algs; /* md used */ - STACK_OF(X509) *cert; /* [ 0 ] */ - STACK_OF(X509_CRL) *crl; /* [ 1 ] */ + STACK_OF(X509) *cert; /* [ 0 ] */ /* name should be 'certificates' */ + STACK_OF(X509_CRL) *crl; /* [ 1 ] */ /* name should be 'crls' */ STACK_OF(PKCS7_SIGNER_INFO) *signer_info; struct pkcs7_st *contents; } PKCS7_SIGNED; @@ -158,8 +161,8 @@ typedef struct pkcs7_enveloped_st { typedef struct pkcs7_signedandenveloped_st { ASN1_INTEGER *version; /* version 1 */ STACK_OF(X509_ALGOR) *md_algs; /* md used */ - STACK_OF(X509) *cert; /* [ 0 ] */ - STACK_OF(X509_CRL) *crl; /* [ 1 ] */ + STACK_OF(X509) *cert; /* [ 0 ] */ /* name should be 'certificates' */ + STACK_OF(X509_CRL) *crl; /* [ 1 ] */ /* name should be 'crls' */ STACK_OF(PKCS7_SIGNER_INFO) *signer_info; PKCS7_ENC_CONTENT *enc_data; STACK_OF(PKCS7_RECIP_INFO) *recipientinfo; @@ -200,7 +203,7 @@ typedef struct pkcs7_st { /* NID_pkcs7_data */ ASN1_OCTET_STRING *data; /* NID_pkcs7_signed */ - PKCS7_SIGNED *sign; + PKCS7_SIGNED *sign; /* field name 'signed' would clash with C keyword */ /* NID_pkcs7_enveloped */ PKCS7_ENVELOPE *enveloped; /* NID_pkcs7_signedAndEnveloped */ @@ -341,13 +344,13 @@ int PKCS7_SIGNER_INFO_set(PKCS7_SIGNER_INFO *p7i, X509 *x509, EVP_PKEY *pkey, const EVP_MD *dgst); int PKCS7_SIGNER_INFO_sign(PKCS7_SIGNER_INFO *si); int PKCS7_add_signer(PKCS7 *p7, PKCS7_SIGNER_INFO *p7i); -int PKCS7_add_certificate(PKCS7 *p7, X509 *x509); -int PKCS7_add_crl(PKCS7 *p7, X509_CRL *x509); +int PKCS7_add_certificate(PKCS7 *p7, X509 *cert); +int PKCS7_add_crl(PKCS7 *p7, X509_CRL *crl); int PKCS7_content_new(PKCS7 *p7, int nid); int PKCS7_dataVerify(X509_STORE *cert_store, X509_STORE_CTX *ctx, BIO *bio, PKCS7 *p7, PKCS7_SIGNER_INFO *si); int PKCS7_signatureVerify(BIO *bio, PKCS7 *p7, PKCS7_SIGNER_INFO *si, - X509 *x509); + X509 *signer); BIO *PKCS7_dataInit(PKCS7 *p7, BIO *bio); int PKCS7_dataFinal(PKCS7 *p7, BIO *bio); diff --git a/deps/openssl/config/archs/BSD-x86/asm_avx2/include/openssl/ssl.h b/deps/openssl/config/archs/BSD-x86/asm_avx2/include/openssl/ssl.h index 3df725c56d6c5e..7e3d89c7ef3dc9 100644 --- a/deps/openssl/config/archs/BSD-x86/asm_avx2/include/openssl/ssl.h +++ b/deps/openssl/config/archs/BSD-x86/asm_avx2/include/openssl/ssl.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/ssl.h.in * - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved * Copyright 2005 Nokia. All rights reserved. * @@ -24,6 +24,7 @@ # endif # include +# include # include # include # include @@ -42,6 +43,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -231,10 +235,8 @@ typedef struct ssl_cipher_st SSL_CIPHER; typedef struct ssl_session_st SSL_SESSION; typedef struct tls_sigalgs_st TLS_SIGALGS; typedef struct ssl_conf_ctx_st SSL_CONF_CTX; -typedef struct ssl_comp_st SSL_COMP; STACK_OF(SSL_CIPHER); -STACK_OF(SSL_COMP); /* SRTP protection profiles for use with the use_srtp extension (RFC 5764)*/ typedef struct srtp_protection_profile_st { @@ -278,28 +280,31 @@ typedef int (*tls_session_secret_cb_fn)(SSL *s, void *secret, int *secret_len, /* Extension context codes */ /* This extension is only allowed in TLS */ -#define SSL_EXT_TLS_ONLY 0x0001 +#define SSL_EXT_TLS_ONLY 0x00001 /* This extension is only allowed in DTLS */ -#define SSL_EXT_DTLS_ONLY 0x0002 +#define SSL_EXT_DTLS_ONLY 0x00002 /* Some extensions may be allowed in DTLS but we don't implement them for it */ -#define SSL_EXT_TLS_IMPLEMENTATION_ONLY 0x0004 +#define SSL_EXT_TLS_IMPLEMENTATION_ONLY 0x00004 /* Most extensions are not defined for SSLv3 but EXT_TYPE_renegotiate is */ -#define SSL_EXT_SSL3_ALLOWED 0x0008 +#define SSL_EXT_SSL3_ALLOWED 0x00008 /* Extension is only defined for TLS1.2 and below */ -#define SSL_EXT_TLS1_2_AND_BELOW_ONLY 0x0010 +#define SSL_EXT_TLS1_2_AND_BELOW_ONLY 0x00010 /* Extension is only defined for TLS1.3 and above */ -#define SSL_EXT_TLS1_3_ONLY 0x0020 +#define SSL_EXT_TLS1_3_ONLY 0x00020 /* Ignore this extension during parsing if we are resuming */ -#define SSL_EXT_IGNORE_ON_RESUMPTION 0x0040 -#define SSL_EXT_CLIENT_HELLO 0x0080 +#define SSL_EXT_IGNORE_ON_RESUMPTION 0x00040 +#define SSL_EXT_CLIENT_HELLO 0x00080 /* Really means TLS1.2 or below */ -#define SSL_EXT_TLS1_2_SERVER_HELLO 0x0100 -#define SSL_EXT_TLS1_3_SERVER_HELLO 0x0200 -#define SSL_EXT_TLS1_3_ENCRYPTED_EXTENSIONS 0x0400 -#define SSL_EXT_TLS1_3_HELLO_RETRY_REQUEST 0x0800 -#define SSL_EXT_TLS1_3_CERTIFICATE 0x1000 -#define SSL_EXT_TLS1_3_NEW_SESSION_TICKET 0x2000 -#define SSL_EXT_TLS1_3_CERTIFICATE_REQUEST 0x4000 +#define SSL_EXT_TLS1_2_SERVER_HELLO 0x00100 +#define SSL_EXT_TLS1_3_SERVER_HELLO 0x00200 +#define SSL_EXT_TLS1_3_ENCRYPTED_EXTENSIONS 0x00400 +#define SSL_EXT_TLS1_3_HELLO_RETRY_REQUEST 0x00800 +#define SSL_EXT_TLS1_3_CERTIFICATE 0x01000 +#define SSL_EXT_TLS1_3_NEW_SESSION_TICKET 0x02000 +#define SSL_EXT_TLS1_3_CERTIFICATE_REQUEST 0x04000 +#define SSL_EXT_TLS1_3_CERTIFICATE_COMPRESSION 0x08000 +/* When sending a raw public key in a certificate message */ +#define SSL_EXT_TLS1_3_RAW_PUBLIC_KEY 0x10000 /* Typedefs for handling custom extensions */ @@ -404,7 +409,7 @@ typedef int (*SSL_async_callback_fn)(SSL *s, void *arg); */ # define SSL_OP_CIPHER_SERVER_PREFERENCE SSL_OP_BIT(22) /* - * If set, a server will allow a client to issue a SSLv3.0 version + * If set, a server will allow a client to issue an SSLv3.0 version * number as latest version supported in the premaster secret, even when * TLSv1.0 (version 3.1) was announced in the client hello. Normally * this is forbidden to prevent version rollback attacks. @@ -430,6 +435,19 @@ typedef int (*SSL_async_callback_fn)(SSL *s, void *arg); * interoperability with CryptoPro CSP 3.x */ # define SSL_OP_CRYPTOPRO_TLSEXT_BUG SSL_OP_BIT(31) +/* + * Disable RFC8879 certificate compression + * SSL_OP_NO_TX_CERTIFICATE_COMPRESSION: don't send compressed certificates, + * and ignore the extension when received. + * SSL_OP_NO_RX_CERTIFICATE_COMPRESSION: don't send the extension, and + * subsequently indicating that receiving is not supported + */ +# define SSL_OP_NO_TX_CERTIFICATE_COMPRESSION SSL_OP_BIT(32) +# define SSL_OP_NO_RX_CERTIFICATE_COMPRESSION SSL_OP_BIT(33) + /* Enable KTLS TX zerocopy on Linux */ +# define SSL_OP_ENABLE_KTLS_TX_ZEROCOPY_SENDFILE SSL_OP_BIT(34) + +#define SSL_OP_PREFER_NO_DHE_KEX SSL_OP_BIT(35) /* * Option "collections." @@ -574,6 +592,8 @@ typedef int (*SSL_async_callback_fn)(SSL *s, void *arg); # define CERT_PKEY_CERT_TYPE 0x400 /* Cert chain suitable to Suite B */ # define CERT_PKEY_SUITEB 0x800 +/* Cert pkey valid for raw public key use */ +# define CERT_PKEY_RPK 0x1000 # define SSL_CONF_FLAG_CMDLINE 0x1 # define SSL_CONF_FLAG_FILE 0x2 @@ -965,6 +985,7 @@ uint32_t SSL_get_recv_max_early_data(const SSL *s); # include /* This is mostly sslv3 with a few tweaks */ # include /* Datagram TLS */ # include /* Support for the use_srtp extension */ +# include #ifdef __cplusplus extern "C" { @@ -1000,32 +1021,6 @@ SKM_DEFINE_STACK_OF_INTERNAL(SSL_CIPHER, const SSL_CIPHER, SSL_CIPHER) #define sk_SSL_CIPHER_dup(sk) ((STACK_OF(SSL_CIPHER) *)OPENSSL_sk_dup(ossl_check_const_SSL_CIPHER_sk_type(sk))) #define sk_SSL_CIPHER_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(SSL_CIPHER) *)OPENSSL_sk_deep_copy(ossl_check_const_SSL_CIPHER_sk_type(sk), ossl_check_SSL_CIPHER_copyfunc_type(copyfunc), ossl_check_SSL_CIPHER_freefunc_type(freefunc))) #define sk_SSL_CIPHER_set_cmp_func(sk, cmp) ((sk_SSL_CIPHER_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_SSL_CIPHER_sk_type(sk), ossl_check_SSL_CIPHER_compfunc_type(cmp))) -SKM_DEFINE_STACK_OF_INTERNAL(SSL_COMP, SSL_COMP, SSL_COMP) -#define sk_SSL_COMP_num(sk) OPENSSL_sk_num(ossl_check_const_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_value(sk, idx) ((SSL_COMP *)OPENSSL_sk_value(ossl_check_const_SSL_COMP_sk_type(sk), (idx))) -#define sk_SSL_COMP_new(cmp) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new(ossl_check_SSL_COMP_compfunc_type(cmp))) -#define sk_SSL_COMP_new_null() ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new_null()) -#define sk_SSL_COMP_new_reserve(cmp, n) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new_reserve(ossl_check_SSL_COMP_compfunc_type(cmp), (n))) -#define sk_SSL_COMP_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_SSL_COMP_sk_type(sk), (n)) -#define sk_SSL_COMP_free(sk) OPENSSL_sk_free(ossl_check_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_zero(sk) OPENSSL_sk_zero(ossl_check_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_delete(sk, i) ((SSL_COMP *)OPENSSL_sk_delete(ossl_check_SSL_COMP_sk_type(sk), (i))) -#define sk_SSL_COMP_delete_ptr(sk, ptr) ((SSL_COMP *)OPENSSL_sk_delete_ptr(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr))) -#define sk_SSL_COMP_push(sk, ptr) OPENSSL_sk_push(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) -#define sk_SSL_COMP_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) -#define sk_SSL_COMP_pop(sk) ((SSL_COMP *)OPENSSL_sk_pop(ossl_check_SSL_COMP_sk_type(sk))) -#define sk_SSL_COMP_shift(sk) ((SSL_COMP *)OPENSSL_sk_shift(ossl_check_SSL_COMP_sk_type(sk))) -#define sk_SSL_COMP_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_SSL_COMP_sk_type(sk),ossl_check_SSL_COMP_freefunc_type(freefunc)) -#define sk_SSL_COMP_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr), (idx)) -#define sk_SSL_COMP_set(sk, idx, ptr) ((SSL_COMP *)OPENSSL_sk_set(ossl_check_SSL_COMP_sk_type(sk), (idx), ossl_check_SSL_COMP_type(ptr))) -#define sk_SSL_COMP_find(sk, ptr) OPENSSL_sk_find(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) -#define sk_SSL_COMP_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) -#define sk_SSL_COMP_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr), pnum) -#define sk_SSL_COMP_sort(sk) OPENSSL_sk_sort(ossl_check_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_dup(sk) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_dup(ossl_check_const_SSL_COMP_sk_type(sk))) -#define sk_SSL_COMP_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_deep_copy(ossl_check_const_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_copyfunc_type(copyfunc), ossl_check_SSL_COMP_freefunc_type(freefunc))) -#define sk_SSL_COMP_set_cmp_func(sk, cmp) ((sk_SSL_COMP_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_compfunc_type(cmp))) /* compatibility */ @@ -1066,6 +1061,7 @@ typedef enum { DTLS_ST_CR_HELLO_VERIFY_REQUEST, TLS_ST_CR_SRVR_HELLO, TLS_ST_CR_CERT, + TLS_ST_CR_COMP_CERT, TLS_ST_CR_CERT_STATUS, TLS_ST_CR_KEY_EXCH, TLS_ST_CR_CERT_REQ, @@ -1075,6 +1071,7 @@ typedef enum { TLS_ST_CR_FINISHED, TLS_ST_CW_CLNT_HELLO, TLS_ST_CW_CERT, + TLS_ST_CW_COMP_CERT, TLS_ST_CW_KEY_EXCH, TLS_ST_CW_CERT_VRFY, TLS_ST_CW_CHANGE, @@ -1085,10 +1082,12 @@ typedef enum { DTLS_ST_SW_HELLO_VERIFY_REQUEST, TLS_ST_SW_SRVR_HELLO, TLS_ST_SW_CERT, + TLS_ST_SW_COMP_CERT, TLS_ST_SW_KEY_EXCH, TLS_ST_SW_CERT_REQ, TLS_ST_SW_SRVR_DONE, TLS_ST_SR_CERT, + TLS_ST_SR_COMP_CERT, TLS_ST_SR_KEY_EXCH, TLS_ST_SR_CERT_VRFY, TLS_ST_SR_NEXT_PROTO, @@ -1380,9 +1379,13 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) # define SSL_CTRL_GET_SIGNATURE_NID 132 # define SSL_CTRL_GET_TMP_KEY 133 # define SSL_CTRL_GET_NEGOTIATED_GROUP 134 +# define SSL_CTRL_GET_IANA_GROUPS 135 # define SSL_CTRL_SET_RETRY_VERIFY 136 # define SSL_CTRL_GET_VERIFY_CERT_STORE 137 # define SSL_CTRL_GET_CHAIN_CERT_STORE 138 +# define SSL_CTRL_GET0_IMPLEMENTED_GROUPS 139 +# define SSL_CTRL_GET_SIGNATURE_NAME 140 +# define SSL_CTRL_GET_PEER_SIGNATURE_NAME 141 # define SSL_CERT_SET_FIRST 1 # define SSL_CERT_SET_NEXT 2 # define SSL_CERT_SET_SERVER 3 @@ -1485,10 +1488,15 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) # define SSL_get1_groups(s, glist) \ SSL_ctrl(s,SSL_CTRL_GET_GROUPS,0,(int*)(glist)) +# define SSL_get0_iana_groups(s, plst) \ + SSL_ctrl(s,SSL_CTRL_GET_IANA_GROUPS,0,(uint16_t **)(plst)) # define SSL_CTX_set1_groups(ctx, glist, glistlen) \ SSL_CTX_ctrl(ctx,SSL_CTRL_SET_GROUPS,glistlen,(int *)(glist)) # define SSL_CTX_set1_groups_list(ctx, s) \ SSL_CTX_ctrl(ctx,SSL_CTRL_SET_GROUPS_LIST,0,(char *)(s)) +# define SSL_CTX_get0_implemented_groups(ctx, all, out) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_GET0_IMPLEMENTED_GROUPS, all, \ + (STACK_OF(OPENSSL_CSTRING) *)(out)) # define SSL_set1_groups(s, glist, glistlen) \ SSL_ctrl(s,SSL_CTRL_SET_GROUPS,glistlen,(char *)(glist)) # define SSL_set1_groups_list(s, str) \ @@ -1520,8 +1528,12 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) (char *)(clist)) # define SSL_set1_client_certificate_types(s, clist, clistlen) \ SSL_ctrl(s,SSL_CTRL_SET_CLIENT_CERT_TYPES,clistlen,(char *)(clist)) +# define SSL_get0_signature_name(s, str) \ + SSL_ctrl(s,SSL_CTRL_GET_SIGNATURE_NAME,0,(1?(str):(const char **)NULL)) # define SSL_get_signature_nid(s, pn) \ SSL_ctrl(s,SSL_CTRL_GET_SIGNATURE_NID,0,pn) +# define SSL_get0_peer_signature_name(s, str) \ + SSL_ctrl(s,SSL_CTRL_GET_PEER_SIGNATURE_NAME,0,(1?(str):(const char **)NULL)) # define SSL_get_peer_signature_nid(s, pn) \ SSL_ctrl(s,SSL_CTRL_GET_PEER_SIGNATURE_NID,0,pn) # define SSL_get_peer_tmp_key(s, pk) \ @@ -1549,6 +1561,7 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) # define SSL_get_max_proto_version(s) \ SSL_ctrl(s, SSL_CTRL_GET_MAX_PROTO_VERSION, 0, NULL) +const char *SSL_get0_group_name(SSL *s); const char *SSL_group_to_name(SSL *s, int id); /* Backwards compatibility, original 1.1.0 names */ @@ -1613,7 +1626,11 @@ void SSL_CTX_set1_cert_store(SSL_CTX *, X509_STORE *); __owur int SSL_want(const SSL *s); __owur int SSL_clear(SSL *s); +#ifndef OPENSSL_NO_DEPRECATED_3_4 +OSSL_DEPRECATEDIN_3_4_FOR("not Y2038-safe, replace with SSL_CTX_flush_sessions_ex()") void SSL_CTX_flush_sessions(SSL_CTX *ctx, long tm); +#endif +void SSL_CTX_flush_sessions_ex(SSL_CTX *ctx, time_t tm); __owur const SSL_CIPHER *SSL_get_current_cipher(const SSL *s); __owur const SSL_CIPHER *SSL_get_pending_cipher(const SSL *s); @@ -1725,13 +1742,21 @@ __owur const char *SSL_state_string(const SSL *s); __owur const char *SSL_rstate_string(const SSL *s); __owur const char *SSL_state_string_long(const SSL *s); __owur const char *SSL_rstate_string_long(const SSL *s); + +#ifndef OPENSSL_NO_DEPRECATED_3_4 +OSSL_DEPRECATEDIN_3_4_FOR("not Y2038-safe, replace with SSL_SESSION_get_time_ex()") __owur long SSL_SESSION_get_time(const SSL_SESSION *s); +OSSL_DEPRECATEDIN_3_4_FOR("not Y2038-safe, replace with SSL_SESSION_set_time_ex()") __owur long SSL_SESSION_set_time(SSL_SESSION *s, long t); +#endif __owur long SSL_SESSION_get_timeout(const SSL_SESSION *s); __owur long SSL_SESSION_set_timeout(SSL_SESSION *s, long t); __owur int SSL_SESSION_get_protocol_version(const SSL_SESSION *s); __owur int SSL_SESSION_set_protocol_version(SSL_SESSION *s, int version); +__owur time_t SSL_SESSION_get_time_ex(const SSL_SESSION *s); +__owur time_t SSL_SESSION_set_time_ex(SSL_SESSION *s, time_t t); + __owur const char *SSL_SESSION_get0_hostname(const SSL_SESSION *s); __owur int SSL_SESSION_set1_hostname(SSL_SESSION *s, const char *hostname); void SSL_SESSION_get0_alpn_selected(const SSL_SESSION *s, @@ -1783,6 +1808,9 @@ __owur int SSL_has_matching_session_id(const SSL *s, unsigned int id_len); SSL_SESSION *d2i_SSL_SESSION(SSL_SESSION **a, const unsigned char **pp, long length); +SSL_SESSION *d2i_SSL_SESSION_ex(SSL_SESSION **a, const unsigned char **pp, + long length, OSSL_LIB_CTX *libctx, + const char *propq); # ifdef OPENSSL_X509_H __owur X509 *SSL_get0_peer_certificate(const SSL *s); @@ -1840,6 +1868,8 @@ __owur int SSL_CTX_set_session_id_context(SSL_CTX *ctx, SSL *SSL_new(SSL_CTX *ctx); int SSL_up_ref(SSL *s); int SSL_is_dtls(const SSL *s); +int SSL_is_tls(const SSL *s); +int SSL_is_quic(const SSL *s); __owur int SSL_set_session_id_context(SSL *ssl, const unsigned char *sid_ctx, unsigned int sid_ctx_len); @@ -1848,8 +1878,8 @@ __owur int SSL_set_purpose(SSL *ssl, int purpose); __owur int SSL_CTX_set_trust(SSL_CTX *ctx, int trust); __owur int SSL_set_trust(SSL *ssl, int trust); -__owur int SSL_set1_host(SSL *s, const char *hostname); -__owur int SSL_add1_host(SSL *s, const char *hostname); +__owur int SSL_set1_host(SSL *s, const char *host); +__owur int SSL_add1_host(SSL *s, const char *host); __owur const char *SSL_get0_peername(SSL *s); void SSL_set_hostflags(SSL *s, unsigned int flags); @@ -1924,6 +1954,11 @@ OSSL_DEPRECATEDIN_3_0 __owur char *SSL_get_srp_userinfo(SSL *s); typedef int (*SSL_client_hello_cb_fn) (SSL *s, int *al, void *arg); void SSL_CTX_set_client_hello_cb(SSL_CTX *c, SSL_client_hello_cb_fn cb, void *arg); +typedef int (*SSL_new_pending_conn_cb_fn) (SSL_CTX *ctx, SSL *new_ssl, + void *arg); +void SSL_CTX_set_new_pending_conn_cb(SSL_CTX *c, SSL_new_pending_conn_cb_fn cb, + void *arg); + int SSL_client_hello_isv2(SSL *s); unsigned int SSL_client_hello_get0_legacy_version(SSL *s); size_t SSL_client_hello_get0_random(SSL *s, const unsigned char **out); @@ -1932,6 +1967,8 @@ size_t SSL_client_hello_get0_ciphers(SSL *s, const unsigned char **out); size_t SSL_client_hello_get0_compression_methods(SSL *s, const unsigned char **out); int SSL_client_hello_get1_extensions_present(SSL *s, int **out, size_t *outlen); +int SSL_client_hello_get_extension_order(SSL *s, uint16_t *exts, + size_t *num_exts); int SSL_client_hello_get0_ext(SSL *s, unsigned int type, const unsigned char **out, size_t *outlen); @@ -1978,6 +2015,12 @@ long SSL_callback_ctrl(SSL *, int, void (*)(void)); long SSL_CTX_ctrl(SSL_CTX *ctx, int cmd, long larg, void *parg); long SSL_CTX_callback_ctrl(SSL_CTX *, int, void (*)(void)); +# define SSL_WRITE_FLAG_CONCLUDE (1U << 0) + +__owur int SSL_write_ex2(SSL *s, const void *buf, size_t num, + uint64_t flags, + size_t *written); + # define SSL_EARLY_DATA_NOT_SENT 0 # define SSL_EARLY_DATA_REJECTED 1 # define SSL_EARLY_DATA_ACCEPTED 2 @@ -1986,6 +2029,7 @@ __owur int SSL_get_early_data_status(const SSL *s); __owur int SSL_get_error(const SSL *s, int ret_code); __owur const char *SSL_get_version(const SSL *s); +__owur int SSL_get_handshake_rtt(const SSL *s, uint64_t *rtt); /* This sets the 'default' SSL version that SSL_new() will create */ # ifndef OPENSSL_NO_DEPRECATED_3_0 @@ -2281,6 +2325,8 @@ void SSL_CTX_set_record_padding_callback(SSL_CTX *ctx, void SSL_CTX_set_record_padding_callback_arg(SSL_CTX *ctx, void *arg); void *SSL_CTX_get_record_padding_callback_arg(const SSL_CTX *ctx); int SSL_CTX_set_block_padding(SSL_CTX *ctx, size_t block_size); +int SSL_CTX_set_block_padding_ex(SSL_CTX *ctx, size_t app_block_size, + size_t hs_block_size); int SSL_set_record_padding_callback(SSL *ssl, size_t (*cb) (SSL *ssl, int type, @@ -2288,12 +2334,255 @@ int SSL_set_record_padding_callback(SSL *ssl, void SSL_set_record_padding_callback_arg(SSL *ssl, void *arg); void *SSL_get_record_padding_callback_arg(const SSL *ssl); int SSL_set_block_padding(SSL *ssl, size_t block_size); - +int SSL_set_block_padding_ex(SSL *ssl, size_t app_block_size, + size_t hs_block_size); int SSL_set_num_tickets(SSL *s, size_t num_tickets); size_t SSL_get_num_tickets(const SSL *s); int SSL_CTX_set_num_tickets(SSL_CTX *ctx, size_t num_tickets); size_t SSL_CTX_get_num_tickets(const SSL_CTX *ctx); +/* QUIC support */ +int SSL_handle_events(SSL *s); +__owur int SSL_get_event_timeout(SSL *s, struct timeval *tv, int *is_infinite); +__owur int SSL_get_rpoll_descriptor(SSL *s, BIO_POLL_DESCRIPTOR *desc); +__owur int SSL_get_wpoll_descriptor(SSL *s, BIO_POLL_DESCRIPTOR *desc); +__owur int SSL_net_read_desired(SSL *s); +__owur int SSL_net_write_desired(SSL *s); +__owur int SSL_set_blocking_mode(SSL *s, int blocking); +__owur int SSL_get_blocking_mode(SSL *s); +__owur int SSL_set1_initial_peer_addr(SSL *s, const BIO_ADDR *peer_addr); +__owur SSL *SSL_get0_connection(SSL *s); +__owur int SSL_is_connection(SSL *s); + +__owur int SSL_is_listener(SSL *ssl); +__owur SSL *SSL_get0_listener(SSL *s); +#define SSL_LISTENER_FLAG_NO_VALIDATE (1UL << 1) +__owur SSL *SSL_new_listener(SSL_CTX *ctx, uint64_t flags); +__owur SSL *SSL_new_listener_from(SSL *ssl, uint64_t flags); +__owur SSL *SSL_new_from_listener(SSL *ssl, uint64_t flags); +#define SSL_ACCEPT_CONNECTION_NO_BLOCK (1UL << 0) +__owur SSL *SSL_accept_connection(SSL *ssl, uint64_t flags); +__owur size_t SSL_get_accept_connection_queue_len(SSL *ssl); +__owur int SSL_listen(SSL *ssl); + +__owur int SSL_is_domain(SSL *s); +__owur SSL *SSL_get0_domain(SSL *s); +__owur SSL *SSL_new_domain(SSL_CTX *ctx, uint64_t flags); + +#define SSL_DOMAIN_FLAG_SINGLE_THREAD (1U << 0) +#define SSL_DOMAIN_FLAG_MULTI_THREAD (1U << 1) +#define SSL_DOMAIN_FLAG_THREAD_ASSISTED (1U << 2) +#define SSL_DOMAIN_FLAG_BLOCKING (1U << 3) +#define SSL_DOMAIN_FLAG_LEGACY_BLOCKING (1U << 4) + +__owur int SSL_CTX_set_domain_flags(SSL_CTX *ctx, uint64_t domain_flags); +__owur int SSL_CTX_get_domain_flags(const SSL_CTX *ctx, uint64_t *domain_flags); +__owur int SSL_get_domain_flags(const SSL *ssl, uint64_t *domain_flags); + +#define SSL_STREAM_TYPE_NONE 0 +#define SSL_STREAM_TYPE_READ (1U << 0) +#define SSL_STREAM_TYPE_WRITE (1U << 1) +#define SSL_STREAM_TYPE_BIDI (SSL_STREAM_TYPE_READ | SSL_STREAM_TYPE_WRITE) +__owur int SSL_get_stream_type(SSL *s); + +__owur uint64_t SSL_get_stream_id(SSL *s); +__owur int SSL_is_stream_local(SSL *s); + +#define SSL_DEFAULT_STREAM_MODE_NONE 0 +#define SSL_DEFAULT_STREAM_MODE_AUTO_BIDI 1 +#define SSL_DEFAULT_STREAM_MODE_AUTO_UNI 2 +__owur int SSL_set_default_stream_mode(SSL *s, uint32_t mode); + +#define SSL_STREAM_FLAG_UNI (1U << 0) +#define SSL_STREAM_FLAG_NO_BLOCK (1U << 1) +#define SSL_STREAM_FLAG_ADVANCE (1U << 2) +__owur SSL *SSL_new_stream(SSL *s, uint64_t flags); + +#define SSL_INCOMING_STREAM_POLICY_AUTO 0 +#define SSL_INCOMING_STREAM_POLICY_ACCEPT 1 +#define SSL_INCOMING_STREAM_POLICY_REJECT 2 +__owur int SSL_set_incoming_stream_policy(SSL *s, int policy, uint64_t aec); + +#define SSL_ACCEPT_STREAM_NO_BLOCK (1U << 0) +__owur SSL *SSL_accept_stream(SSL *s, uint64_t flags); +__owur size_t SSL_get_accept_stream_queue_len(SSL *s); + +# ifndef OPENSSL_NO_QUIC +__owur int SSL_inject_net_dgram(SSL *s, const unsigned char *buf, + size_t buf_len, + const BIO_ADDR *peer, + const BIO_ADDR *local); +# endif + +typedef struct ssl_shutdown_ex_args_st { + uint64_t quic_error_code; + const char *quic_reason; +} SSL_SHUTDOWN_EX_ARGS; + +#define SSL_SHUTDOWN_FLAG_RAPID (1U << 0) +#define SSL_SHUTDOWN_FLAG_NO_STREAM_FLUSH (1U << 1) +#define SSL_SHUTDOWN_FLAG_NO_BLOCK (1U << 2) +#define SSL_SHUTDOWN_FLAG_WAIT_PEER (1U << 3) + +__owur int SSL_shutdown_ex(SSL *ssl, uint64_t flags, + const SSL_SHUTDOWN_EX_ARGS *args, + size_t args_len); + +__owur int SSL_stream_conclude(SSL *ssl, uint64_t flags); + +typedef struct ssl_stream_reset_args_st { + uint64_t quic_error_code; +} SSL_STREAM_RESET_ARGS; + +__owur int SSL_stream_reset(SSL *ssl, + const SSL_STREAM_RESET_ARGS *args, + size_t args_len); + +#define SSL_STREAM_STATE_NONE 0 +#define SSL_STREAM_STATE_OK 1 +#define SSL_STREAM_STATE_WRONG_DIR 2 +#define SSL_STREAM_STATE_FINISHED 3 +#define SSL_STREAM_STATE_RESET_LOCAL 4 +#define SSL_STREAM_STATE_RESET_REMOTE 5 +#define SSL_STREAM_STATE_CONN_CLOSED 6 +__owur int SSL_get_stream_read_state(SSL *ssl); +__owur int SSL_get_stream_write_state(SSL *ssl); + +__owur int SSL_get_stream_read_error_code(SSL *ssl, uint64_t *app_error_code); +__owur int SSL_get_stream_write_error_code(SSL *ssl, uint64_t *app_error_code); + +#define SSL_CONN_CLOSE_FLAG_LOCAL (1U << 0) +#define SSL_CONN_CLOSE_FLAG_TRANSPORT (1U << 1) + +typedef struct ssl_conn_close_info_st { + uint64_t error_code, frame_type; + const char *reason; + size_t reason_len; + uint32_t flags; +} SSL_CONN_CLOSE_INFO; + +__owur int SSL_get_conn_close_info(SSL *ssl, + SSL_CONN_CLOSE_INFO *info, + size_t info_len); + +# define SSL_VALUE_CLASS_GENERIC 0 +# define SSL_VALUE_CLASS_FEATURE_REQUEST 1 +# define SSL_VALUE_CLASS_FEATURE_PEER_REQUEST 2 +# define SSL_VALUE_CLASS_FEATURE_NEGOTIATED 3 + +# define SSL_VALUE_NONE 0 +# define SSL_VALUE_QUIC_STREAM_BIDI_LOCAL_AVAIL 1 +# define SSL_VALUE_QUIC_STREAM_BIDI_REMOTE_AVAIL 2 +# define SSL_VALUE_QUIC_STREAM_UNI_LOCAL_AVAIL 3 +# define SSL_VALUE_QUIC_STREAM_UNI_REMOTE_AVAIL 4 +# define SSL_VALUE_QUIC_IDLE_TIMEOUT 5 +# define SSL_VALUE_EVENT_HANDLING_MODE 6 +# define SSL_VALUE_STREAM_WRITE_BUF_SIZE 7 +# define SSL_VALUE_STREAM_WRITE_BUF_USED 8 +# define SSL_VALUE_STREAM_WRITE_BUF_AVAIL 9 + +# define SSL_VALUE_EVENT_HANDLING_MODE_INHERIT 0 +# define SSL_VALUE_EVENT_HANDLING_MODE_IMPLICIT 1 +# define SSL_VALUE_EVENT_HANDLING_MODE_EXPLICIT 2 + +int SSL_get_value_uint(SSL *s, uint32_t class_, uint32_t id, uint64_t *v); +int SSL_set_value_uint(SSL *s, uint32_t class_, uint32_t id, uint64_t v); + +# define SSL_get_generic_value_uint(ssl, id, v) \ + SSL_get_value_uint((ssl), SSL_VALUE_CLASS_GENERIC, (id), (v)) +# define SSL_set_generic_value_uint(ssl, id, v) \ + SSL_set_value_uint((ssl), SSL_VALUE_CLASS_GENERIC, (id), (v)) +# define SSL_get_feature_request_uint(ssl, id, v) \ + SSL_get_value_uint((ssl), SSL_VALUE_CLASS_FEATURE_REQUEST, (id), (v)) +# define SSL_set_feature_request_uint(ssl, id, v) \ + SSL_set_value_uint((ssl), SSL_VALUE_CLASS_FEATURE_REQUEST, (id), (v)) +# define SSL_get_feature_peer_request_uint(ssl, id, v) \ + SSL_get_value_uint((ssl), SSL_VALUE_CLASS_FEATURE_PEER_REQUEST, (id), (v)) +# define SSL_get_feature_negotiated_uint(ssl, id, v) \ + SSL_get_value_uint((ssl), SSL_VALUE_CLASS_FEATURE_NEGOTIATED, (id), (v)) + +# define SSL_get_quic_stream_bidi_local_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_QUIC_STREAM_BIDI_LOCAL_AVAIL, \ + (value)) +# define SSL_get_quic_stream_bidi_remote_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_QUIC_STREAM_BIDI_REMOTE_AVAIL, \ + (value)) +# define SSL_get_quic_stream_uni_local_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_QUIC_STREAM_UNI_LOCAL_AVAIL, \ + (value)) +# define SSL_get_quic_stream_uni_remote_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_QUIC_STREAM_UNI_REMOTE_AVAIL, \ + (value)) + +# define SSL_get_event_handling_mode(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_EVENT_HANDLING_MODE, \ + (value)) +# define SSL_set_event_handling_mode(ssl, value) \ + SSL_set_generic_value_uint((ssl), SSL_VALUE_EVENT_HANDLING_MODE, \ + (value)) + +# define SSL_get_stream_write_buf_size(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_STREAM_WRITE_BUF_SIZE, \ + (value)) +# define SSL_get_stream_write_buf_used(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_STREAM_WRITE_BUF_USED, \ + (value)) +# define SSL_get_stream_write_buf_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_STREAM_WRITE_BUF_AVAIL, \ + (value)) + +# define SSL_POLL_EVENT_NONE 0 + +# define SSL_POLL_EVENT_F (1U << 0) /* F (Failure) */ +# define SSL_POLL_EVENT_EL (1U << 1) /* EL (Exception on Listener) */ +# define SSL_POLL_EVENT_EC (1U << 2) /* EC (Exception on Conn) */ +# define SSL_POLL_EVENT_ECD (1U << 3) /* ECD (Exception on Conn Drained) */ +# define SSL_POLL_EVENT_ER (1U << 4) /* ER (Exception on Read) */ +# define SSL_POLL_EVENT_EW (1U << 5) /* EW (Exception on Write) */ +# define SSL_POLL_EVENT_R (1U << 6) /* R (Readable) */ +# define SSL_POLL_EVENT_W (1U << 7) /* W (Writable) */ +# define SSL_POLL_EVENT_IC (1U << 8) /* IC (Incoming Connection) */ +# define SSL_POLL_EVENT_ISB (1U << 9) /* ISB (Incoming Stream: Bidi) */ +# define SSL_POLL_EVENT_ISU (1U << 10) /* ISU (Incoming Stream: Uni) */ +# define SSL_POLL_EVENT_OSB (1U << 11) /* OSB (Outgoing Stream: Bidi) */ +# define SSL_POLL_EVENT_OSU (1U << 12) /* OSU (Outgoing Stream: Uni) */ + +# define SSL_POLL_EVENT_RW (SSL_POLL_EVENT_R | SSL_POLL_EVENT_W) +# define SSL_POLL_EVENT_RE (SSL_POLL_EVENT_R | SSL_POLL_EVENT_ER) +# define SSL_POLL_EVENT_WE (SSL_POLL_EVENT_W | SSL_POLL_EVENT_EW) +# define SSL_POLL_EVENT_RWE (SSL_POLL_EVENT_RE | SSL_POLL_EVENT_WE) +# define SSL_POLL_EVENT_E (SSL_POLL_EVENT_EL | SSL_POLL_EVENT_EC \ + | SSL_POLL_EVENT_ER | SSL_POLL_EVENT_EW) +# define SSL_POLL_EVENT_IS (SSL_POLL_EVENT_ISB | SSL_POLL_EVENT_ISU) +# define SSL_POLL_EVENT_ISE (SSL_POLL_EVENT_IS | SSL_POLL_EVENT_EC) +# define SSL_POLL_EVENT_I (SSL_POLL_EVENT_IS | SSL_POLL_EVENT_IC) +# define SSL_POLL_EVENT_OS (SSL_POLL_EVENT_OSB | SSL_POLL_EVENT_OSU) +# define SSL_POLL_EVENT_OSE (SSL_POLL_EVENT_OS | SSL_POLL_EVENT_EC) + +typedef struct ssl_poll_item_st { + BIO_POLL_DESCRIPTOR desc; + uint64_t events, revents; +} SSL_POLL_ITEM; + +# define SSL_POLL_FLAG_NO_HANDLE_EVENTS (1U << 0) + +__owur int SSL_poll(SSL_POLL_ITEM *items, + size_t num_items, + size_t stride, + const struct timeval *timeout, + uint64_t flags, + size_t *result_count); + +static ossl_inline ossl_unused BIO_POLL_DESCRIPTOR +SSL_as_poll_descriptor(SSL *s) +{ + BIO_POLL_DESCRIPTOR d; + + d.type = BIO_POLL_DESCRIPTOR_TYPE_SSL; + d.value.ssl = s; + return d; +} + # ifndef OPENSSL_NO_DEPRECATED_1_1_0 # define SSL_cache_hit(s) SSL_session_reused(s) # endif @@ -2593,6 +2882,51 @@ void SSL_set_allow_early_data_cb(SSL *s, const char *OSSL_default_cipher_list(void); const char *OSSL_default_ciphersuites(void); +/* RFC8879 Certificate compression APIs */ + +int SSL_CTX_compress_certs(SSL_CTX *ctx, int alg); +int SSL_compress_certs(SSL *ssl, int alg); + +int SSL_CTX_set1_cert_comp_preference(SSL_CTX *ctx, int *algs, size_t len); +int SSL_set1_cert_comp_preference(SSL *ssl, int *algs, size_t len); + +int SSL_CTX_set1_compressed_cert(SSL_CTX *ctx, int algorithm, unsigned char *comp_data, + size_t comp_length, size_t orig_length); +int SSL_set1_compressed_cert(SSL *ssl, int algorithm, unsigned char *comp_data, + size_t comp_length, size_t orig_length); +size_t SSL_CTX_get1_compressed_cert(SSL_CTX *ctx, int alg, unsigned char **data, size_t *orig_len); +size_t SSL_get1_compressed_cert(SSL *ssl, int alg, unsigned char **data, size_t *orig_len); + +__owur int SSL_add_expected_rpk(SSL *s, EVP_PKEY *rpk); +__owur EVP_PKEY *SSL_get0_peer_rpk(const SSL *s); +__owur EVP_PKEY *SSL_SESSION_get0_peer_rpk(SSL_SESSION *s); +__owur int SSL_get_negotiated_client_cert_type(const SSL *s); +__owur int SSL_get_negotiated_server_cert_type(const SSL *s); + +__owur int SSL_set1_client_cert_type(SSL *s, const unsigned char *val, size_t len); +__owur int SSL_set1_server_cert_type(SSL *s, const unsigned char *val, size_t len); +__owur int SSL_CTX_set1_client_cert_type(SSL_CTX *ctx, const unsigned char *val, size_t len); +__owur int SSL_CTX_set1_server_cert_type(SSL_CTX *ctx, const unsigned char *val, size_t len); +__owur int SSL_get0_client_cert_type(const SSL *s, unsigned char **t, size_t *len); +__owur int SSL_get0_server_cert_type(const SSL *s, unsigned char **t, size_t *len); +__owur int SSL_CTX_get0_client_cert_type(const SSL_CTX *ctx, unsigned char **t, size_t *len); +__owur int SSL_CTX_get0_server_cert_type(const SSL_CTX *s, unsigned char **t, size_t *len); + +/* + * Protection level. For <= TLSv1.2 only "NONE" and "APPLICATION" are used. + */ +# define OSSL_RECORD_PROTECTION_LEVEL_NONE 0 +# define OSSL_RECORD_PROTECTION_LEVEL_EARLY 1 +# define OSSL_RECORD_PROTECTION_LEVEL_HANDSHAKE 2 +# define OSSL_RECORD_PROTECTION_LEVEL_APPLICATION 3 + +int SSL_set_quic_tls_cbs(SSL *s, const OSSL_DISPATCH *qtdis, void *arg); +int SSL_set_quic_tls_transport_params(SSL *s, + const unsigned char *params, + size_t params_len); + +int SSL_set_quic_tls_early_data_enabled(SSL *s, int enabled); + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/BSD-x86/asm_avx2/include/openssl/x509.h b/deps/openssl/config/archs/BSD-x86/asm_avx2/include/openssl/x509.h index 1f7755e5b69c75..d013458c226461 100644 --- a/deps/openssl/config/archs/BSD-x86/asm_avx2/include/openssl/x509.h +++ b/deps/openssl/config/archs/BSD-x86/asm_avx2/include/openssl/x509.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/x509.h.in * - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2024 The OpenSSL Project Authors. All Rights Reserved. * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved * * Licensed under the Apache License 2.0 (the "License"). You may not use @@ -40,6 +40,9 @@ # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -162,16 +165,24 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_CRL, X509_CRL, X509_CRL) # define X509_FILETYPE_ASN1 2 # define X509_FILETYPE_DEFAULT 3 -# define X509v3_KU_DIGITAL_SIGNATURE 0x0080 -# define X509v3_KU_NON_REPUDIATION 0x0040 -# define X509v3_KU_KEY_ENCIPHERMENT 0x0020 -# define X509v3_KU_DATA_ENCIPHERMENT 0x0010 -# define X509v3_KU_KEY_AGREEMENT 0x0008 -# define X509v3_KU_KEY_CERT_SIGN 0x0004 -# define X509v3_KU_CRL_SIGN 0x0002 -# define X509v3_KU_ENCIPHER_ONLY 0x0001 -# define X509v3_KU_DECIPHER_ONLY 0x8000 -# define X509v3_KU_UNDEF 0xffff +/*- + * : + * The KeyUsage BITSTRING is treated as a little-endian integer, hence bit `0` + * is 0x80, while bit `7` is 0x01 (the LSB of the integer value), bit `8` is + * then the MSB of the second octet, or 0x8000. + */ +# define X509v3_KU_DIGITAL_SIGNATURE 0x0080 /* (0) */ +# define X509v3_KU_NON_REPUDIATION 0x0040 /* (1) */ +# define X509v3_KU_KEY_ENCIPHERMENT 0x0020 /* (2) */ +# define X509v3_KU_DATA_ENCIPHERMENT 0x0010 /* (3) */ +# define X509v3_KU_KEY_AGREEMENT 0x0008 /* (4) */ +# define X509v3_KU_KEY_CERT_SIGN 0x0004 /* (5) */ +# define X509v3_KU_CRL_SIGN 0x0002 /* (6) */ +# define X509v3_KU_ENCIPHER_ONLY 0x0001 /* (7) */ +# define X509v3_KU_DECIPHER_ONLY 0x8000 /* (8) */ +# ifndef OPENSSL_NO_DEPRECATED_3_4 +# define X509v3_KU_UNDEF 0xffff /* vestigial, not used */ +# endif struct X509_algor_st { ASN1_OBJECT *algorithm; @@ -462,7 +473,12 @@ typedef struct PBKDF2PARAM_st { X509_ALGOR *prf; } PBKDF2PARAM; -#ifndef OPENSSL_NO_SCRYPT +typedef struct { + X509_ALGOR *keyDerivationFunc; + X509_ALGOR *messageAuthScheme; +} PBMAC1PARAM; + +# ifndef OPENSSL_NO_SCRYPT typedef struct SCRYPT_PARAMS_st { ASN1_OCTET_STRING *salt; ASN1_INTEGER *costParameter; @@ -470,7 +486,7 @@ typedef struct SCRYPT_PARAMS_st { ASN1_INTEGER *parallelizationParameter; ASN1_INTEGER *keyLength; } SCRYPT_PARAMS; -#endif +# endif #ifdef __cplusplus } @@ -603,6 +619,8 @@ EVP_PKEY *d2i_PrivateKey_ex_fp(FILE *fp, EVP_PKEY **a, OSSL_LIB_CTX *libctx, const char *propq); EVP_PKEY *d2i_PrivateKey_fp(FILE *fp, EVP_PKEY **a); int i2d_PUBKEY_fp(FILE *fp, const EVP_PKEY *pkey); +EVP_PKEY *d2i_PUBKEY_ex_fp(FILE *fp, EVP_PKEY **a, OSSL_LIB_CTX *libctx, + const char *propq); EVP_PKEY *d2i_PUBKEY_fp(FILE *fp, EVP_PKEY **a); # endif @@ -651,6 +669,8 @@ EVP_PKEY *d2i_PrivateKey_ex_bio(BIO *bp, EVP_PKEY **a, OSSL_LIB_CTX *libctx, const char *propq); EVP_PKEY *d2i_PrivateKey_bio(BIO *bp, EVP_PKEY **a); int i2d_PUBKEY_bio(BIO *bp, const EVP_PKEY *pkey); +EVP_PKEY *d2i_PUBKEY_ex_bio(BIO *bp, EVP_PKEY **a, OSSL_LIB_CTX *libctx, + const char *propq); EVP_PKEY *d2i_PUBKEY_bio(BIO *bp, EVP_PKEY **a); DECLARE_ASN1_DUP_FUNCTION(X509) @@ -884,12 +904,12 @@ int X509_REQ_get_signature_nid(const X509_REQ *req); int i2d_re_X509_REQ_tbs(X509_REQ *req, unsigned char **pp); int X509_REQ_set_pubkey(X509_REQ *x, EVP_PKEY *pkey); EVP_PKEY *X509_REQ_get_pubkey(X509_REQ *req); -EVP_PKEY *X509_REQ_get0_pubkey(X509_REQ *req); +EVP_PKEY *X509_REQ_get0_pubkey(const X509_REQ *req); X509_PUBKEY *X509_REQ_get_X509_PUBKEY(X509_REQ *req); int X509_REQ_extension_nid(int nid); int *X509_REQ_get_extension_nids(void); void X509_REQ_set_extension_nids(int *nids); -STACK_OF(X509_EXTENSION) *X509_REQ_get_extensions(X509_REQ *req); +STACK_OF(X509_EXTENSION) *X509_REQ_get_extensions(OSSL_FUTURE_CONST X509_REQ *req); int X509_REQ_add_extensions_nid(X509_REQ *req, const STACK_OF(X509_EXTENSION) *exts, int nid); int X509_REQ_add_extensions(X509_REQ *req, const STACK_OF(X509_EXTENSION) *ext); @@ -950,13 +970,14 @@ X509_REVOKED_get0_extensions(const X509_REVOKED *r); X509_CRL *X509_CRL_diff(X509_CRL *base, X509_CRL *newer, EVP_PKEY *skey, const EVP_MD *md, unsigned int flags); -int X509_REQ_check_private_key(X509_REQ *x509, EVP_PKEY *pkey); +int X509_REQ_check_private_key(const X509_REQ *req, EVP_PKEY *pkey); -int X509_check_private_key(const X509 *x509, const EVP_PKEY *pkey); +int X509_check_private_key(const X509 *cert, const EVP_PKEY *pkey); int X509_chain_check_suiteb(int *perror_depth, X509 *x, STACK_OF(X509) *chain, unsigned long flags); int X509_CRL_check_suiteb(X509_CRL *crl, EVP_PKEY *pk, unsigned long flags); +void OSSL_STACK_OF_X509_free(STACK_OF(X509) *certs); STACK_OF(X509) *X509_chain_up_ref(STACK_OF(X509) *chain); int X509_issuer_and_serial_cmp(const X509 *a, const X509 *b); @@ -1077,6 +1098,8 @@ X509_EXTENSION *X509v3_get_ext(const STACK_OF(X509_EXTENSION) *x, int loc); X509_EXTENSION *X509v3_delete_ext(STACK_OF(X509_EXTENSION) *x, int loc); STACK_OF(X509_EXTENSION) *X509v3_add_ext(STACK_OF(X509_EXTENSION) **x, X509_EXTENSION *ex, int loc); +STACK_OF(X509_EXTENSION) *X509v3_add_extensions(STACK_OF(X509_EXTENSION) **target, + const STACK_OF(X509_EXTENSION) *exts); int X509_get_ext_count(const X509 *x); int X509_get_ext_by_NID(const X509 *x, int nid, int lastpos); @@ -1198,9 +1221,10 @@ X509 *X509_find_by_subject(STACK_OF(X509) *sk, const X509_NAME *name); DECLARE_ASN1_FUNCTIONS(PBEPARAM) DECLARE_ASN1_FUNCTIONS(PBE2PARAM) DECLARE_ASN1_FUNCTIONS(PBKDF2PARAM) -#ifndef OPENSSL_NO_SCRYPT +DECLARE_ASN1_FUNCTIONS(PBMAC1PARAM) +# ifndef OPENSSL_NO_SCRYPT DECLARE_ASN1_FUNCTIONS(SCRYPT_PARAMS) -#endif +# endif int PKCS5_pbe_set0_algor(X509_ALGOR *algor, int alg, int iter, const unsigned char *salt, int saltlen); @@ -1237,6 +1261,7 @@ X509_ALGOR *PKCS5_pbkdf2_set_ex(int iter, unsigned char *salt, int saltlen, int prf_nid, int keylen, OSSL_LIB_CTX *libctx); +PBKDF2PARAM *PBMAC1_get1_pbkdf2_param(const X509_ALGOR *macalg); /* PKCS#8 utilities */ DECLARE_ASN1_FUNCTIONS(PKCS8_PRIV_KEY_INFO) @@ -1262,6 +1287,8 @@ int PKCS8_pkey_add1_attr_by_OBJ(PKCS8_PRIV_KEY_INFO *p8, const ASN1_OBJECT *obj, int type, const unsigned char *bytes, int len); +void X509_PUBKEY_set0_public_key(X509_PUBKEY *pub, + unsigned char *penc, int penclen); int X509_PUBKEY_set0_param(X509_PUBKEY *pub, ASN1_OBJECT *aobj, int ptype, void *pval, unsigned char *penc, int penclen); diff --git a/deps/openssl/config/archs/BSD-x86/asm_avx2/include/openssl/x509_acert.h b/deps/openssl/config/archs/BSD-x86/asm_avx2/include/openssl/x509_acert.h new file mode 100644 index 00000000000000..9dde625677f9a9 --- /dev/null +++ b/deps/openssl/config/archs/BSD-x86/asm_avx2/include/openssl/x509_acert.h @@ -0,0 +1,294 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from include/openssl/x509_acert.h.in + * + * Copyright 2022-2024 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + + +#ifndef OPENSSL_X509_ACERT_H +# define OPENSSL_X509_ACERT_H +# pragma once + +# include +# include +# include + +typedef struct X509_acert_st X509_ACERT; +typedef struct X509_acert_info_st X509_ACERT_INFO; +typedef struct ossl_object_digest_info_st OSSL_OBJECT_DIGEST_INFO; +typedef struct ossl_issuer_serial_st OSSL_ISSUER_SERIAL; +typedef struct X509_acert_issuer_v2form_st X509_ACERT_ISSUER_V2FORM; + +DECLARE_ASN1_FUNCTIONS(X509_ACERT) +DECLARE_ASN1_DUP_FUNCTION(X509_ACERT) +DECLARE_ASN1_ITEM(X509_ACERT_INFO) +DECLARE_ASN1_ALLOC_FUNCTIONS(X509_ACERT_INFO) +DECLARE_ASN1_ALLOC_FUNCTIONS(OSSL_OBJECT_DIGEST_INFO) +DECLARE_ASN1_ALLOC_FUNCTIONS(OSSL_ISSUER_SERIAL) +DECLARE_ASN1_ALLOC_FUNCTIONS(X509_ACERT_ISSUER_V2FORM) + +# ifndef OPENSSL_NO_STDIO +X509_ACERT *d2i_X509_ACERT_fp(FILE *fp, X509_ACERT **acert); +int i2d_X509_ACERT_fp(FILE *fp, const X509_ACERT *acert); +# endif + +DECLARE_PEM_rw(X509_ACERT, X509_ACERT) + +X509_ACERT *d2i_X509_ACERT_bio(BIO *bp, X509_ACERT **acert); +int i2d_X509_ACERT_bio(BIO *bp, const X509_ACERT *acert); + +int X509_ACERT_sign(X509_ACERT *x, EVP_PKEY *pkey, const EVP_MD *md); +int X509_ACERT_sign_ctx(X509_ACERT *x, EVP_MD_CTX *ctx); +int X509_ACERT_verify(X509_ACERT *a, EVP_PKEY *r); + +# define X509_ACERT_VERSION_2 1 + +const GENERAL_NAMES *X509_ACERT_get0_holder_entityName(const X509_ACERT *x); +const OSSL_ISSUER_SERIAL *X509_ACERT_get0_holder_baseCertId(const X509_ACERT *x); +const OSSL_OBJECT_DIGEST_INFO * X509_ACERT_get0_holder_digest(const X509_ACERT *x); +const X509_NAME *X509_ACERT_get0_issuerName(const X509_ACERT *x); +long X509_ACERT_get_version(const X509_ACERT *x); +void X509_ACERT_get0_signature(const X509_ACERT *x, + const ASN1_BIT_STRING **psig, + const X509_ALGOR **palg); +int X509_ACERT_get_signature_nid(const X509_ACERT *x); +const X509_ALGOR *X509_ACERT_get0_info_sigalg(const X509_ACERT *x); +const ASN1_INTEGER *X509_ACERT_get0_serialNumber(const X509_ACERT *x); +const ASN1_TIME *X509_ACERT_get0_notBefore(const X509_ACERT *x); +const ASN1_TIME *X509_ACERT_get0_notAfter(const X509_ACERT *x); +const ASN1_BIT_STRING *X509_ACERT_get0_issuerUID(const X509_ACERT *x); + +int X509_ACERT_print(BIO *bp, X509_ACERT *x); +int X509_ACERT_print_ex(BIO *bp, X509_ACERT *x, unsigned long nmflags, + unsigned long cflag); + +int X509_ACERT_get_attr_count(const X509_ACERT *x); +int X509_ACERT_get_attr_by_NID(const X509_ACERT *x, int nid, int lastpos); +int X509_ACERT_get_attr_by_OBJ(const X509_ACERT *x, const ASN1_OBJECT *obj, + int lastpos); +X509_ATTRIBUTE *X509_ACERT_get_attr(const X509_ACERT *x, int loc); +X509_ATTRIBUTE *X509_ACERT_delete_attr(X509_ACERT *x, int loc); + +void *X509_ACERT_get_ext_d2i(const X509_ACERT *x, int nid, int *crit, int *idx); +int X509_ACERT_add1_ext_i2d(X509_ACERT *x, int nid, void *value, int crit, + unsigned long flags); +const STACK_OF(X509_EXTENSION) *X509_ACERT_get0_extensions(const X509_ACERT *x); + +# define OSSL_OBJECT_DIGEST_INFO_PUBLIC_KEY 0 +# define OSSL_OBJECT_DIGEST_INFO_PUBLIC_KEY_CERT 1 +# define OSSL_OBJECT_DIGEST_INFO_OTHER 2 /* must not be used in RFC 5755 profile */ +int X509_ACERT_set_version(X509_ACERT *x, long version); +void X509_ACERT_set0_holder_entityName(X509_ACERT *x, GENERAL_NAMES *name); +void X509_ACERT_set0_holder_baseCertId(X509_ACERT *x, OSSL_ISSUER_SERIAL *isss); +void X509_ACERT_set0_holder_digest(X509_ACERT *x, + OSSL_OBJECT_DIGEST_INFO *dinfo); + +int X509_ACERT_add1_attr(X509_ACERT *x, X509_ATTRIBUTE *attr); +int X509_ACERT_add1_attr_by_OBJ(X509_ACERT *x, const ASN1_OBJECT *obj, + int type, const void *bytes, int len); +int X509_ACERT_add1_attr_by_NID(X509_ACERT *x, int nid, int type, + const void *bytes, int len); +int X509_ACERT_add1_attr_by_txt(X509_ACERT *x, const char *attrname, int type, + const unsigned char *bytes, int len); +int X509_ACERT_add_attr_nconf(CONF *conf, const char *section, + X509_ACERT *acert); + +int X509_ACERT_set1_issuerName(X509_ACERT *x, const X509_NAME *name); +int X509_ACERT_set1_serialNumber(X509_ACERT *x, const ASN1_INTEGER *serial); +int X509_ACERT_set1_notBefore(X509_ACERT *x, const ASN1_GENERALIZEDTIME *time); +int X509_ACERT_set1_notAfter(X509_ACERT *x, const ASN1_GENERALIZEDTIME *time); + +void OSSL_OBJECT_DIGEST_INFO_get0_digest(const OSSL_OBJECT_DIGEST_INFO *o, + int *digestedObjectType, + const X509_ALGOR **digestAlgorithm, + const ASN1_BIT_STRING **digest); + +int OSSL_OBJECT_DIGEST_INFO_set1_digest(OSSL_OBJECT_DIGEST_INFO *o, + int digestedObjectType, + X509_ALGOR *digestAlgorithm, + ASN1_BIT_STRING *digest); + +const X509_NAME *OSSL_ISSUER_SERIAL_get0_issuer(const OSSL_ISSUER_SERIAL *isss); +const ASN1_INTEGER *OSSL_ISSUER_SERIAL_get0_serial(const OSSL_ISSUER_SERIAL *isss); +const ASN1_BIT_STRING *OSSL_ISSUER_SERIAL_get0_issuerUID(const OSSL_ISSUER_SERIAL *isss); + +int OSSL_ISSUER_SERIAL_set1_issuer(OSSL_ISSUER_SERIAL *isss, + const X509_NAME *issuer); +int OSSL_ISSUER_SERIAL_set1_serial(OSSL_ISSUER_SERIAL *isss, + const ASN1_INTEGER *serial); +int OSSL_ISSUER_SERIAL_set1_issuerUID(OSSL_ISSUER_SERIAL *isss, + const ASN1_BIT_STRING *uid); + +# define OSSL_IETFAS_OCTETS 0 +# define OSSL_IETFAS_OID 1 +# define OSSL_IETFAS_STRING 2 + +typedef struct OSSL_IETF_ATTR_SYNTAX_VALUE_st OSSL_IETF_ATTR_SYNTAX_VALUE; +typedef struct OSSL_IETF_ATTR_SYNTAX_st OSSL_IETF_ATTR_SYNTAX; +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_IETF_ATTR_SYNTAX_VALUE, OSSL_IETF_ATTR_SYNTAX_VALUE, OSSL_IETF_ATTR_SYNTAX_VALUE) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_value(sk, idx) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_value(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), (idx))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_new(cmp) ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_new(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_compfunc_type(cmp))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_new_null() ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_new_null()) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_new_reserve(cmp, n) ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_compfunc_type(cmp), (n))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), (n)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_free(sk) OPENSSL_sk_free(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_delete(sk, i) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_delete(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), (i))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_delete_ptr(sk, ptr) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_pop(sk) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_pop(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_shift(sk) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_shift(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk),ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_freefunc_type(freefunc)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr), (idx)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_set(sk, idx, ptr) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_set(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), (idx), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr), pnum) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_dup(sk) ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_dup(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_copyfunc_type(copyfunc), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_freefunc_type(freefunc))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_set_cmp_func(sk, cmp) ((sk_OSSL_IETF_ATTR_SYNTAX_VALUE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_compfunc_type(cmp))) + + +DECLARE_ASN1_ITEM(OSSL_IETF_ATTR_SYNTAX_VALUE) +DECLARE_ASN1_ALLOC_FUNCTIONS(OSSL_IETF_ATTR_SYNTAX_VALUE) +DECLARE_ASN1_FUNCTIONS(OSSL_IETF_ATTR_SYNTAX) + +const GENERAL_NAMES * +OSSL_IETF_ATTR_SYNTAX_get0_policyAuthority(const OSSL_IETF_ATTR_SYNTAX *a); +void OSSL_IETF_ATTR_SYNTAX_set0_policyAuthority(OSSL_IETF_ATTR_SYNTAX *a, + GENERAL_NAMES *names); + +int OSSL_IETF_ATTR_SYNTAX_get_value_num(const OSSL_IETF_ATTR_SYNTAX *a); +void *OSSL_IETF_ATTR_SYNTAX_get0_value(const OSSL_IETF_ATTR_SYNTAX *a, + int ind, int *type); +int OSSL_IETF_ATTR_SYNTAX_add1_value(OSSL_IETF_ATTR_SYNTAX *a, int type, + void *data); +int OSSL_IETF_ATTR_SYNTAX_print(BIO *bp, OSSL_IETF_ATTR_SYNTAX *a, int indent); + +struct TARGET_CERT_st { + OSSL_ISSUER_SERIAL *targetCertificate; + GENERAL_NAME *targetName; + OSSL_OBJECT_DIGEST_INFO *certDigestInfo; +}; + +typedef struct TARGET_CERT_st OSSL_TARGET_CERT; + +# define OSSL_TGT_TARGET_NAME 0 +# define OSSL_TGT_TARGET_GROUP 1 +# define OSSL_TGT_TARGET_CERT 2 + +typedef struct TARGET_st { + int type; + union { + GENERAL_NAME *targetName; + GENERAL_NAME *targetGroup; + OSSL_TARGET_CERT *targetCert; + } choice; +} OSSL_TARGET; + +typedef STACK_OF(OSSL_TARGET) OSSL_TARGETS; +typedef STACK_OF(OSSL_TARGETS) OSSL_TARGETING_INFORMATION; + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_TARGET, OSSL_TARGET, OSSL_TARGET) +#define sk_OSSL_TARGET_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_value(sk, idx) ((OSSL_TARGET *)OPENSSL_sk_value(ossl_check_const_OSSL_TARGET_sk_type(sk), (idx))) +#define sk_OSSL_TARGET_new(cmp) ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_new(ossl_check_OSSL_TARGET_compfunc_type(cmp))) +#define sk_OSSL_TARGET_new_null() ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_new_null()) +#define sk_OSSL_TARGET_new_reserve(cmp, n) ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_TARGET_compfunc_type(cmp), (n))) +#define sk_OSSL_TARGET_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_TARGET_sk_type(sk), (n)) +#define sk_OSSL_TARGET_free(sk) OPENSSL_sk_free(ossl_check_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_delete(sk, i) ((OSSL_TARGET *)OPENSSL_sk_delete(ossl_check_OSSL_TARGET_sk_type(sk), (i))) +#define sk_OSSL_TARGET_delete_ptr(sk, ptr) ((OSSL_TARGET *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr))) +#define sk_OSSL_TARGET_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr)) +#define sk_OSSL_TARGET_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr)) +#define sk_OSSL_TARGET_pop(sk) ((OSSL_TARGET *)OPENSSL_sk_pop(ossl_check_OSSL_TARGET_sk_type(sk))) +#define sk_OSSL_TARGET_shift(sk) ((OSSL_TARGET *)OPENSSL_sk_shift(ossl_check_OSSL_TARGET_sk_type(sk))) +#define sk_OSSL_TARGET_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_TARGET_sk_type(sk),ossl_check_OSSL_TARGET_freefunc_type(freefunc)) +#define sk_OSSL_TARGET_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr), (idx)) +#define sk_OSSL_TARGET_set(sk, idx, ptr) ((OSSL_TARGET *)OPENSSL_sk_set(ossl_check_OSSL_TARGET_sk_type(sk), (idx), ossl_check_OSSL_TARGET_type(ptr))) +#define sk_OSSL_TARGET_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr)) +#define sk_OSSL_TARGET_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr)) +#define sk_OSSL_TARGET_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr), pnum) +#define sk_OSSL_TARGET_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_dup(sk) ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_dup(ossl_check_const_OSSL_TARGET_sk_type(sk))) +#define sk_OSSL_TARGET_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_copyfunc_type(copyfunc), ossl_check_OSSL_TARGET_freefunc_type(freefunc))) +#define sk_OSSL_TARGET_set_cmp_func(sk, cmp) ((sk_OSSL_TARGET_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_compfunc_type(cmp))) + + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_TARGETS, OSSL_TARGETS, OSSL_TARGETS) +#define sk_OSSL_TARGETS_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_value(sk, idx) ((OSSL_TARGETS *)OPENSSL_sk_value(ossl_check_const_OSSL_TARGETS_sk_type(sk), (idx))) +#define sk_OSSL_TARGETS_new(cmp) ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_new(ossl_check_OSSL_TARGETS_compfunc_type(cmp))) +#define sk_OSSL_TARGETS_new_null() ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_new_null()) +#define sk_OSSL_TARGETS_new_reserve(cmp, n) ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_TARGETS_compfunc_type(cmp), (n))) +#define sk_OSSL_TARGETS_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_TARGETS_sk_type(sk), (n)) +#define sk_OSSL_TARGETS_free(sk) OPENSSL_sk_free(ossl_check_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_delete(sk, i) ((OSSL_TARGETS *)OPENSSL_sk_delete(ossl_check_OSSL_TARGETS_sk_type(sk), (i))) +#define sk_OSSL_TARGETS_delete_ptr(sk, ptr) ((OSSL_TARGETS *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr))) +#define sk_OSSL_TARGETS_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr)) +#define sk_OSSL_TARGETS_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr)) +#define sk_OSSL_TARGETS_pop(sk) ((OSSL_TARGETS *)OPENSSL_sk_pop(ossl_check_OSSL_TARGETS_sk_type(sk))) +#define sk_OSSL_TARGETS_shift(sk) ((OSSL_TARGETS *)OPENSSL_sk_shift(ossl_check_OSSL_TARGETS_sk_type(sk))) +#define sk_OSSL_TARGETS_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_TARGETS_sk_type(sk),ossl_check_OSSL_TARGETS_freefunc_type(freefunc)) +#define sk_OSSL_TARGETS_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr), (idx)) +#define sk_OSSL_TARGETS_set(sk, idx, ptr) ((OSSL_TARGETS *)OPENSSL_sk_set(ossl_check_OSSL_TARGETS_sk_type(sk), (idx), ossl_check_OSSL_TARGETS_type(ptr))) +#define sk_OSSL_TARGETS_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr)) +#define sk_OSSL_TARGETS_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr)) +#define sk_OSSL_TARGETS_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr), pnum) +#define sk_OSSL_TARGETS_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_dup(sk) ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_dup(ossl_check_const_OSSL_TARGETS_sk_type(sk))) +#define sk_OSSL_TARGETS_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_copyfunc_type(copyfunc), ossl_check_OSSL_TARGETS_freefunc_type(freefunc))) +#define sk_OSSL_TARGETS_set_cmp_func(sk, cmp) ((sk_OSSL_TARGETS_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_compfunc_type(cmp))) + + +DECLARE_ASN1_FUNCTIONS(OSSL_TARGET) +DECLARE_ASN1_FUNCTIONS(OSSL_TARGETS) +DECLARE_ASN1_FUNCTIONS(OSSL_TARGETING_INFORMATION) + +typedef STACK_OF(OSSL_ISSUER_SERIAL) OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX; +DECLARE_ASN1_FUNCTIONS(OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ISSUER_SERIAL, OSSL_ISSUER_SERIAL, OSSL_ISSUER_SERIAL) +#define sk_OSSL_ISSUER_SERIAL_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_value(sk, idx) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_value(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk), (idx))) +#define sk_OSSL_ISSUER_SERIAL_new(cmp) ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_new(ossl_check_OSSL_ISSUER_SERIAL_compfunc_type(cmp))) +#define sk_OSSL_ISSUER_SERIAL_new_null() ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ISSUER_SERIAL_new_reserve(cmp, n) ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ISSUER_SERIAL_compfunc_type(cmp), (n))) +#define sk_OSSL_ISSUER_SERIAL_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), (n)) +#define sk_OSSL_ISSUER_SERIAL_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_delete(sk, i) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_delete(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), (i))) +#define sk_OSSL_ISSUER_SERIAL_delete_ptr(sk, ptr) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr))) +#define sk_OSSL_ISSUER_SERIAL_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr)) +#define sk_OSSL_ISSUER_SERIAL_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr)) +#define sk_OSSL_ISSUER_SERIAL_pop(sk) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_pop(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk))) +#define sk_OSSL_ISSUER_SERIAL_shift(sk) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_shift(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk))) +#define sk_OSSL_ISSUER_SERIAL_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk),ossl_check_OSSL_ISSUER_SERIAL_freefunc_type(freefunc)) +#define sk_OSSL_ISSUER_SERIAL_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr), (idx)) +#define sk_OSSL_ISSUER_SERIAL_set(sk, idx, ptr) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_set(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), (idx), ossl_check_OSSL_ISSUER_SERIAL_type(ptr))) +#define sk_OSSL_ISSUER_SERIAL_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr)) +#define sk_OSSL_ISSUER_SERIAL_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr)) +#define sk_OSSL_ISSUER_SERIAL_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr), pnum) +#define sk_OSSL_ISSUER_SERIAL_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_dup(sk) ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk))) +#define sk_OSSL_ISSUER_SERIAL_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_copyfunc_type(copyfunc), ossl_check_OSSL_ISSUER_SERIAL_freefunc_type(freefunc))) +#define sk_OSSL_ISSUER_SERIAL_set_cmp_func(sk, cmp) ((sk_OSSL_ISSUER_SERIAL_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_compfunc_type(cmp))) + + +#endif diff --git a/deps/openssl/config/archs/BSD-x86/asm_avx2/include/openssl/x509_vfy.h b/deps/openssl/config/archs/BSD-x86/asm_avx2/include/openssl/x509_vfy.h index 29b0e147adcab1..c9bdc3b39d685d 100644 --- a/deps/openssl/config/archs/BSD-x86/asm_avx2/include/openssl/x509_vfy.h +++ b/deps/openssl/config/archs/BSD-x86/asm_avx2/include/openssl/x509_vfy.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/x509_vfy.h.in * - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -411,6 +411,7 @@ X509_LOOKUP_ctrl_ex((x), X509_L_ADD_STORE, (name), 0, NULL, \ # define X509_V_ERR_CA_CERT_MISSING_KEY_USAGE 92 # define X509_V_ERR_EXTENSIONS_REQUIRE_VERSION_3 93 # define X509_V_ERR_EC_KEY_EXPLICIT_PARAMS 94 +# define X509_V_ERR_RPK_UNTRUSTED 95 /* Certificate verify flags */ # ifndef OPENSSL_NO_DEPRECATED_1_1_0 @@ -491,71 +492,72 @@ int X509_OBJECT_set1_X509(X509_OBJECT *a, X509 *obj); X509_CRL *X509_OBJECT_get0_X509_CRL(const X509_OBJECT *a); int X509_OBJECT_set1_X509_CRL(X509_OBJECT *a, X509_CRL *obj); X509_STORE *X509_STORE_new(void); -void X509_STORE_free(X509_STORE *v); -int X509_STORE_lock(X509_STORE *ctx); -int X509_STORE_unlock(X509_STORE *ctx); -int X509_STORE_up_ref(X509_STORE *v); -STACK_OF(X509_OBJECT) *X509_STORE_get0_objects(const X509_STORE *v); -STACK_OF(X509) *X509_STORE_get1_all_certs(X509_STORE *st); -STACK_OF(X509) *X509_STORE_CTX_get1_certs(X509_STORE_CTX *st, +void X509_STORE_free(X509_STORE *xs); +int X509_STORE_lock(X509_STORE *xs); +int X509_STORE_unlock(X509_STORE *xs); +int X509_STORE_up_ref(X509_STORE *xs); +STACK_OF(X509_OBJECT) *X509_STORE_get0_objects(const X509_STORE *xs); +STACK_OF(X509_OBJECT) *X509_STORE_get1_objects(X509_STORE *xs); +STACK_OF(X509) *X509_STORE_get1_all_certs(X509_STORE *xs); +STACK_OF(X509) *X509_STORE_CTX_get1_certs(X509_STORE_CTX *xs, const X509_NAME *nm); STACK_OF(X509_CRL) *X509_STORE_CTX_get1_crls(const X509_STORE_CTX *st, const X509_NAME *nm); -int X509_STORE_set_flags(X509_STORE *ctx, unsigned long flags); -int X509_STORE_set_purpose(X509_STORE *ctx, int purpose); -int X509_STORE_set_trust(X509_STORE *ctx, int trust); -int X509_STORE_set1_param(X509_STORE *ctx, const X509_VERIFY_PARAM *pm); -X509_VERIFY_PARAM *X509_STORE_get0_param(const X509_STORE *ctx); +int X509_STORE_set_flags(X509_STORE *xs, unsigned long flags); +int X509_STORE_set_purpose(X509_STORE *xs, int purpose); +int X509_STORE_set_trust(X509_STORE *xs, int trust); +int X509_STORE_set1_param(X509_STORE *xs, const X509_VERIFY_PARAM *pm); +X509_VERIFY_PARAM *X509_STORE_get0_param(const X509_STORE *xs); -void X509_STORE_set_verify(X509_STORE *ctx, X509_STORE_CTX_verify_fn verify); +void X509_STORE_set_verify(X509_STORE *xs, X509_STORE_CTX_verify_fn verify); #define X509_STORE_set_verify_func(ctx, func) \ X509_STORE_set_verify((ctx),(func)) void X509_STORE_CTX_set_verify(X509_STORE_CTX *ctx, X509_STORE_CTX_verify_fn verify); -X509_STORE_CTX_verify_fn X509_STORE_get_verify(const X509_STORE *ctx); -void X509_STORE_set_verify_cb(X509_STORE *ctx, +X509_STORE_CTX_verify_fn X509_STORE_get_verify(const X509_STORE *xs); +void X509_STORE_set_verify_cb(X509_STORE *xs, X509_STORE_CTX_verify_cb verify_cb); # define X509_STORE_set_verify_cb_func(ctx,func) \ X509_STORE_set_verify_cb((ctx),(func)) -X509_STORE_CTX_verify_cb X509_STORE_get_verify_cb(const X509_STORE *ctx); -void X509_STORE_set_get_issuer(X509_STORE *ctx, +X509_STORE_CTX_verify_cb X509_STORE_get_verify_cb(const X509_STORE *xs); +void X509_STORE_set_get_issuer(X509_STORE *xs, X509_STORE_CTX_get_issuer_fn get_issuer); -X509_STORE_CTX_get_issuer_fn X509_STORE_get_get_issuer(const X509_STORE *ctx); -void X509_STORE_set_check_issued(X509_STORE *ctx, +X509_STORE_CTX_get_issuer_fn X509_STORE_get_get_issuer(const X509_STORE *xs); +void X509_STORE_set_check_issued(X509_STORE *xs, X509_STORE_CTX_check_issued_fn check_issued); -X509_STORE_CTX_check_issued_fn X509_STORE_get_check_issued(const X509_STORE *ctx); -void X509_STORE_set_check_revocation(X509_STORE *ctx, +X509_STORE_CTX_check_issued_fn X509_STORE_get_check_issued(const X509_STORE *s); +void X509_STORE_set_check_revocation(X509_STORE *xs, X509_STORE_CTX_check_revocation_fn check_revocation); X509_STORE_CTX_check_revocation_fn - X509_STORE_get_check_revocation(const X509_STORE *ctx); -void X509_STORE_set_get_crl(X509_STORE *ctx, + X509_STORE_get_check_revocation(const X509_STORE *xs); +void X509_STORE_set_get_crl(X509_STORE *xs, X509_STORE_CTX_get_crl_fn get_crl); -X509_STORE_CTX_get_crl_fn X509_STORE_get_get_crl(const X509_STORE *ctx); -void X509_STORE_set_check_crl(X509_STORE *ctx, +X509_STORE_CTX_get_crl_fn X509_STORE_get_get_crl(const X509_STORE *xs); +void X509_STORE_set_check_crl(X509_STORE *xs, X509_STORE_CTX_check_crl_fn check_crl); -X509_STORE_CTX_check_crl_fn X509_STORE_get_check_crl(const X509_STORE *ctx); -void X509_STORE_set_cert_crl(X509_STORE *ctx, +X509_STORE_CTX_check_crl_fn X509_STORE_get_check_crl(const X509_STORE *xs); +void X509_STORE_set_cert_crl(X509_STORE *xs, X509_STORE_CTX_cert_crl_fn cert_crl); -X509_STORE_CTX_cert_crl_fn X509_STORE_get_cert_crl(const X509_STORE *ctx); -void X509_STORE_set_check_policy(X509_STORE *ctx, +X509_STORE_CTX_cert_crl_fn X509_STORE_get_cert_crl(const X509_STORE *xs); +void X509_STORE_set_check_policy(X509_STORE *xs, X509_STORE_CTX_check_policy_fn check_policy); -X509_STORE_CTX_check_policy_fn X509_STORE_get_check_policy(const X509_STORE *ctx); -void X509_STORE_set_lookup_certs(X509_STORE *ctx, +X509_STORE_CTX_check_policy_fn X509_STORE_get_check_policy(const X509_STORE *s); +void X509_STORE_set_lookup_certs(X509_STORE *xs, X509_STORE_CTX_lookup_certs_fn lookup_certs); -X509_STORE_CTX_lookup_certs_fn X509_STORE_get_lookup_certs(const X509_STORE *ctx); -void X509_STORE_set_lookup_crls(X509_STORE *ctx, +X509_STORE_CTX_lookup_certs_fn X509_STORE_get_lookup_certs(const X509_STORE *s); +void X509_STORE_set_lookup_crls(X509_STORE *xs, X509_STORE_CTX_lookup_crls_fn lookup_crls); #define X509_STORE_set_lookup_crls_cb(ctx, func) \ X509_STORE_set_lookup_crls((ctx), (func)) -X509_STORE_CTX_lookup_crls_fn X509_STORE_get_lookup_crls(const X509_STORE *ctx); -void X509_STORE_set_cleanup(X509_STORE *ctx, +X509_STORE_CTX_lookup_crls_fn X509_STORE_get_lookup_crls(const X509_STORE *xs); +void X509_STORE_set_cleanup(X509_STORE *xs, X509_STORE_CTX_cleanup_fn cleanup); -X509_STORE_CTX_cleanup_fn X509_STORE_get_cleanup(const X509_STORE *ctx); +X509_STORE_CTX_cleanup_fn X509_STORE_get_cleanup(const X509_STORE *xs); #define X509_STORE_get_ex_new_index(l, p, newf, dupf, freef) \ CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_X509_STORE, l, p, newf, dupf, freef) -int X509_STORE_set_ex_data(X509_STORE *ctx, int idx, void *data); -void *X509_STORE_get_ex_data(const X509_STORE *ctx, int idx); +int X509_STORE_set_ex_data(X509_STORE *xs, int idx, void *data); +void *X509_STORE_get_ex_data(const X509_STORE *xs, int idx); X509_STORE_CTX *X509_STORE_CTX_new_ex(OSSL_LIB_CTX *libctx, const char *propq); X509_STORE_CTX *X509_STORE_CTX_new(void); @@ -565,11 +567,14 @@ int X509_STORE_CTX_get1_issuer(X509 **issuer, X509_STORE_CTX *ctx, X509 *x); void X509_STORE_CTX_free(X509_STORE_CTX *ctx); int X509_STORE_CTX_init(X509_STORE_CTX *ctx, X509_STORE *trust_store, X509 *target, STACK_OF(X509) *untrusted); +int X509_STORE_CTX_init_rpk(X509_STORE_CTX *ctx, X509_STORE *trust_store, + EVP_PKEY* rpk); void X509_STORE_CTX_set0_trusted_stack(X509_STORE_CTX *ctx, STACK_OF(X509) *sk); void X509_STORE_CTX_cleanup(X509_STORE_CTX *ctx); X509_STORE *X509_STORE_CTX_get0_store(const X509_STORE_CTX *ctx); X509 *X509_STORE_CTX_get0_cert(const X509_STORE_CTX *ctx); +EVP_PKEY *X509_STORE_CTX_get0_rpk(const X509_STORE_CTX *ctx); STACK_OF(X509)* X509_STORE_CTX_get0_untrusted(const X509_STORE_CTX *ctx); void X509_STORE_CTX_set0_untrusted(X509_STORE_CTX *ctx, STACK_OF(X509) *sk); void X509_STORE_CTX_set_verify_cb(X509_STORE_CTX *ctx, @@ -579,6 +584,8 @@ X509_STORE_CTX_verify_fn X509_STORE_CTX_get_verify(const X509_STORE_CTX *ctx); X509_STORE_CTX_get_issuer_fn X509_STORE_CTX_get_get_issuer(const X509_STORE_CTX *ctx); X509_STORE_CTX_check_issued_fn X509_STORE_CTX_get_check_issued(const X509_STORE_CTX *ctx); X509_STORE_CTX_check_revocation_fn X509_STORE_CTX_get_check_revocation(const X509_STORE_CTX *ctx); +void X509_STORE_CTX_set_get_crl(X509_STORE_CTX *ctx, + X509_STORE_CTX_get_crl_fn get_crl); X509_STORE_CTX_get_crl_fn X509_STORE_CTX_get_get_crl(const X509_STORE_CTX *ctx); X509_STORE_CTX_check_crl_fn X509_STORE_CTX_get_check_crl(const X509_STORE_CTX *ctx); X509_STORE_CTX_cert_crl_fn X509_STORE_CTX_get_cert_crl(const X509_STORE_CTX *ctx); @@ -600,7 +607,7 @@ X509_STORE_CTX_cleanup_fn X509_STORE_CTX_get_cleanup(const X509_STORE_CTX *ctx); # define X509_STORE_get1_crl X509_STORE_CTX_get1_crls #endif -X509_LOOKUP *X509_STORE_add_lookup(X509_STORE *v, X509_LOOKUP_METHOD *m); +X509_LOOKUP *X509_STORE_add_lookup(X509_STORE *xs, X509_LOOKUP_METHOD *m); X509_LOOKUP_METHOD *X509_LOOKUP_hash_dir(void); X509_LOOKUP_METHOD *X509_LOOKUP_file(void); X509_LOOKUP_METHOD *X509_LOOKUP_store(void); @@ -685,8 +692,8 @@ X509_LOOKUP_get_by_alias_fn X509_LOOKUP_meth_get_get_by_alias( const X509_LOOKUP_METHOD *method); -int X509_STORE_add_cert(X509_STORE *ctx, X509 *x); -int X509_STORE_add_crl(X509_STORE *ctx, X509_CRL *x); +int X509_STORE_add_cert(X509_STORE *xs, X509 *x); +int X509_STORE_add_crl(X509_STORE *xs, X509_CRL *x); int X509_STORE_CTX_get_by_subject(const X509_STORE_CTX *vs, X509_LOOKUP_TYPE type, @@ -730,23 +737,21 @@ void *X509_LOOKUP_get_method_data(const X509_LOOKUP *ctx); X509_STORE *X509_LOOKUP_get_store(const X509_LOOKUP *ctx); int X509_LOOKUP_shutdown(X509_LOOKUP *ctx); -int X509_STORE_load_file(X509_STORE *ctx, const char *file); -int X509_STORE_load_path(X509_STORE *ctx, const char *path); -int X509_STORE_load_store(X509_STORE *ctx, const char *store); -int X509_STORE_load_locations(X509_STORE *ctx, - const char *file, - const char *dir); -int X509_STORE_set_default_paths(X509_STORE *ctx); +int X509_STORE_load_file(X509_STORE *xs, const char *file); +int X509_STORE_load_path(X509_STORE *xs, const char *path); +int X509_STORE_load_store(X509_STORE *xs, const char *store); +int X509_STORE_load_locations(X509_STORE *s, const char *file, const char *dir); +int X509_STORE_set_default_paths(X509_STORE *xs); -int X509_STORE_load_file_ex(X509_STORE *ctx, const char *file, +int X509_STORE_load_file_ex(X509_STORE *xs, const char *file, OSSL_LIB_CTX *libctx, const char *propq); -int X509_STORE_load_store_ex(X509_STORE *ctx, const char *store, +int X509_STORE_load_store_ex(X509_STORE *xs, const char *store, OSSL_LIB_CTX *libctx, const char *propq); -int X509_STORE_load_locations_ex(X509_STORE *ctx, const char *file, - const char *dir, OSSL_LIB_CTX *libctx, - const char *propq); -int X509_STORE_set_default_paths_ex(X509_STORE *ctx, OSSL_LIB_CTX *libctx, - const char *propq); +int X509_STORE_load_locations_ex(X509_STORE *xs, + const char *file, const char *dir, + OSSL_LIB_CTX *libctx, const char *propq); +int X509_STORE_set_default_paths_ex(X509_STORE *xs, + OSSL_LIB_CTX *libctx, const char *propq); #define X509_STORE_CTX_get_ex_new_index(l, p, newf, dupf, freef) \ CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_X509_STORE_CTX, l, p, newf, dupf, freef) @@ -764,6 +769,7 @@ X509_STORE_CTX *X509_STORE_CTX_get0_parent_ctx(const X509_STORE_CTX *ctx); STACK_OF(X509) *X509_STORE_CTX_get0_chain(const X509_STORE_CTX *ctx); STACK_OF(X509) *X509_STORE_CTX_get1_chain(const X509_STORE_CTX *ctx); void X509_STORE_CTX_set_cert(X509_STORE_CTX *ctx, X509 *target); +void X509_STORE_CTX_set0_rpk(X509_STORE_CTX *ctx, EVP_PKEY *target); void X509_STORE_CTX_set0_verified_chain(X509_STORE_CTX *c, STACK_OF(X509) *sk); void X509_STORE_CTX_set0_crls(X509_STORE_CTX *ctx, STACK_OF(X509_CRL) *sk); int X509_STORE_CTX_set_purpose(X509_STORE_CTX *ctx, int purpose); @@ -773,6 +779,8 @@ int X509_STORE_CTX_purpose_inherit(X509_STORE_CTX *ctx, int def_purpose, void X509_STORE_CTX_set_flags(X509_STORE_CTX *ctx, unsigned long flags); void X509_STORE_CTX_set_time(X509_STORE_CTX *ctx, unsigned long flags, time_t t); +void X509_STORE_CTX_set_current_reasons(X509_STORE_CTX *ctx, + unsigned int current_reasons); X509_POLICY_TREE *X509_STORE_CTX_get0_policy_tree(const X509_STORE_CTX *ctx); int X509_STORE_CTX_get_explicit_policy(const X509_STORE_CTX *ctx); @@ -804,6 +812,7 @@ int X509_VERIFY_PARAM_clear_flags(X509_VERIFY_PARAM *param, unsigned long flags); unsigned long X509_VERIFY_PARAM_get_flags(const X509_VERIFY_PARAM *param); int X509_VERIFY_PARAM_set_purpose(X509_VERIFY_PARAM *param, int purpose); +int X509_VERIFY_PARAM_get_purpose(const X509_VERIFY_PARAM *param); int X509_VERIFY_PARAM_set_trust(X509_VERIFY_PARAM *param, int trust); void X509_VERIFY_PARAM_set_depth(X509_VERIFY_PARAM *param, int depth); void X509_VERIFY_PARAM_set_auth_level(X509_VERIFY_PARAM *param, int auth_level); diff --git a/deps/openssl/config/archs/BSD-x86/asm_avx2/include/openssl/x509v3.h b/deps/openssl/config/archs/BSD-x86/asm_avx2/include/openssl/x509v3.h index 20b67455f2061d..b8dabac35a4915 100644 --- a/deps/openssl/config/archs/BSD-x86/asm_avx2/include/openssl/x509v3.h +++ b/deps/openssl/config/archs/BSD-x86/asm_avx2/include/openssl/x509v3.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/x509v3.h.in * - * Copyright 1999-2023 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1999-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -25,6 +25,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -146,6 +149,11 @@ typedef struct BASIC_CONSTRAINTS_st { ASN1_INTEGER *pathlen; } BASIC_CONSTRAINTS; +typedef struct OSSL_BASIC_ATTR_CONSTRAINTS_st { + int authority; + ASN1_INTEGER *pathlen; +} OSSL_BASIC_ATTR_CONSTRAINTS; + typedef struct PKEY_USAGE_PERIOD_st { ASN1_GENERALIZEDTIME *notBefore; ASN1_GENERALIZEDTIME *notAfter; @@ -198,6 +206,8 @@ typedef struct ACCESS_DESCRIPTION_st { GENERAL_NAME *location; } ACCESS_DESCRIPTION; +int GENERAL_NAME_set1_X509_NAME(GENERAL_NAME **tgt, const X509_NAME *src); + SKM_DEFINE_STACK_OF_INTERNAL(ACCESS_DESCRIPTION, ACCESS_DESCRIPTION, ACCESS_DESCRIPTION) #define sk_ACCESS_DESCRIPTION_num(sk) OPENSSL_sk_num(ossl_check_const_ACCESS_DESCRIPTION_sk_type(sk)) #define sk_ACCESS_DESCRIPTION_value(sk, idx) ((ACCESS_DESCRIPTION *)OPENSSL_sk_value(ossl_check_const_ACCESS_DESCRIPTION_sk_type(sk), (idx))) @@ -294,6 +304,7 @@ typedef struct DIST_POINT_NAME_st { /* If relativename then this contains the full distribution point name */ X509_NAME *dpname; } DIST_POINT_NAME; +DECLARE_ASN1_DUP_FUNCTION(DIST_POINT_NAME) /* All existing reasons */ # define CRLDP_ALL_REASONS 0x807f @@ -659,15 +670,16 @@ struct ISSUING_DIST_POINT_st { # define EXFLAG_SAN_CRITICAL 0x80000 # define EXFLAG_NO_FINGERPRINT 0x100000 -# define KU_DIGITAL_SIGNATURE 0x0080 -# define KU_NON_REPUDIATION 0x0040 -# define KU_KEY_ENCIPHERMENT 0x0020 -# define KU_DATA_ENCIPHERMENT 0x0010 -# define KU_KEY_AGREEMENT 0x0008 -# define KU_KEY_CERT_SIGN 0x0004 -# define KU_CRL_SIGN 0x0002 -# define KU_ENCIPHER_ONLY 0x0001 -# define KU_DECIPHER_ONLY 0x8000 +/* https://datatracker.ietf.org/doc/html/rfc5280#section-4.2.1.3 */ +# define KU_DIGITAL_SIGNATURE X509v3_KU_DIGITAL_SIGNATURE +# define KU_NON_REPUDIATION X509v3_KU_NON_REPUDIATION +# define KU_KEY_ENCIPHERMENT X509v3_KU_KEY_ENCIPHERMENT +# define KU_DATA_ENCIPHERMENT X509v3_KU_DATA_ENCIPHERMENT +# define KU_KEY_AGREEMENT X509v3_KU_KEY_AGREEMENT +# define KU_KEY_CERT_SIGN X509v3_KU_KEY_CERT_SIGN +# define KU_CRL_SIGN X509v3_KU_CRL_SIGN +# define KU_ENCIPHER_ONLY X509v3_KU_ENCIPHER_ONLY +# define KU_DECIPHER_ONLY X509v3_KU_DECIPHER_ONLY # define NS_SSL_CLIENT 0x80 # define NS_SSL_SERVER 0x40 @@ -729,7 +741,7 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_PURPOSE, X509_PURPOSE, X509_PURPOSE) #define sk_X509_PURPOSE_set_cmp_func(sk, cmp) ((sk_X509_PURPOSE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_X509_PURPOSE_sk_type(sk), ossl_check_X509_PURPOSE_compfunc_type(cmp))) - +# define X509_PURPOSE_DEFAULT_ANY 0 # define X509_PURPOSE_SSL_CLIENT 1 # define X509_PURPOSE_SSL_SERVER 2 # define X509_PURPOSE_NS_SSL_SERVER 3 @@ -739,9 +751,10 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_PURPOSE, X509_PURPOSE, X509_PURPOSE) # define X509_PURPOSE_ANY 7 # define X509_PURPOSE_OCSP_HELPER 8 # define X509_PURPOSE_TIMESTAMP_SIGN 9 +# define X509_PURPOSE_CODE_SIGN 10 # define X509_PURPOSE_MIN 1 -# define X509_PURPOSE_MAX 9 +# define X509_PURPOSE_MAX 10 /* Flags for X509V3_EXT_print() */ @@ -767,6 +780,7 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_PURPOSE, X509_PURPOSE, X509_PURPOSE) # define X509V3_ADD_SILENT 0x10 DECLARE_ASN1_FUNCTIONS(BASIC_CONSTRAINTS) +DECLARE_ASN1_FUNCTIONS(OSSL_BASIC_ATTR_CONSTRAINTS) DECLARE_ASN1_FUNCTIONS(SXNET) DECLARE_ASN1_FUNCTIONS(SXNETID) @@ -976,7 +990,6 @@ int X509V3_extensions_print(BIO *out, const char *title, int X509_check_ca(X509 *x); int X509_check_purpose(X509 *x, int id, int ca); int X509_supported_extension(X509_EXTENSION *ex); -int X509_PURPOSE_set(int *p, int purpose); int X509_check_issued(X509 *issuer, X509 *subject); int X509_check_akid(const X509 *issuer, const AUTHORITY_KEYID *akid); void X509_set_proxy_flag(X509 *x); @@ -992,22 +1005,26 @@ const GENERAL_NAMES *X509_get0_authority_issuer(X509 *x); const ASN1_INTEGER *X509_get0_authority_serial(X509 *x); int X509_PURPOSE_get_count(void); -X509_PURPOSE *X509_PURPOSE_get0(int idx); +int X509_PURPOSE_get_unused_id(OSSL_LIB_CTX *libctx); int X509_PURPOSE_get_by_sname(const char *sname); int X509_PURPOSE_get_by_id(int id); int X509_PURPOSE_add(int id, int trust, int flags, int (*ck) (const X509_PURPOSE *, const X509 *, int), const char *name, const char *sname, void *arg); +void X509_PURPOSE_cleanup(void); + +X509_PURPOSE *X509_PURPOSE_get0(int idx); +int X509_PURPOSE_get_id(const X509_PURPOSE *); char *X509_PURPOSE_get0_name(const X509_PURPOSE *xp); char *X509_PURPOSE_get0_sname(const X509_PURPOSE *xp); int X509_PURPOSE_get_trust(const X509_PURPOSE *xp); -void X509_PURPOSE_cleanup(void); -int X509_PURPOSE_get_id(const X509_PURPOSE *); +int X509_PURPOSE_set(int *p, int purpose); STACK_OF(OPENSSL_STRING) *X509_get1_email(X509 *x); STACK_OF(OPENSSL_STRING) *X509_REQ_get1_email(X509_REQ *x); void X509_email_free(STACK_OF(OPENSSL_STRING) *sk); STACK_OF(OPENSSL_STRING) *X509_get1_ocsp(X509 *x); + /* Flags for X509_check_* functions */ /* @@ -1444,6 +1461,507 @@ const ASN1_PRINTABLESTRING *PROFESSION_INFO_get0_registrationNumber( void PROFESSION_INFO_set0_registrationNumber( PROFESSION_INFO *pi, ASN1_PRINTABLESTRING *rn); +int OSSL_GENERAL_NAMES_print(BIO *out, GENERAL_NAMES *gens, int indent); + +typedef STACK_OF(X509_ATTRIBUTE) OSSL_ATTRIBUTES_SYNTAX; +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTES_SYNTAX) + +typedef STACK_OF(USERNOTICE) OSSL_USER_NOTICE_SYNTAX; +DECLARE_ASN1_FUNCTIONS(OSSL_USER_NOTICE_SYNTAX) + +SKM_DEFINE_STACK_OF_INTERNAL(USERNOTICE, USERNOTICE, USERNOTICE) +#define sk_USERNOTICE_num(sk) OPENSSL_sk_num(ossl_check_const_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_value(sk, idx) ((USERNOTICE *)OPENSSL_sk_value(ossl_check_const_USERNOTICE_sk_type(sk), (idx))) +#define sk_USERNOTICE_new(cmp) ((STACK_OF(USERNOTICE) *)OPENSSL_sk_new(ossl_check_USERNOTICE_compfunc_type(cmp))) +#define sk_USERNOTICE_new_null() ((STACK_OF(USERNOTICE) *)OPENSSL_sk_new_null()) +#define sk_USERNOTICE_new_reserve(cmp, n) ((STACK_OF(USERNOTICE) *)OPENSSL_sk_new_reserve(ossl_check_USERNOTICE_compfunc_type(cmp), (n))) +#define sk_USERNOTICE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_USERNOTICE_sk_type(sk), (n)) +#define sk_USERNOTICE_free(sk) OPENSSL_sk_free(ossl_check_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_zero(sk) OPENSSL_sk_zero(ossl_check_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_delete(sk, i) ((USERNOTICE *)OPENSSL_sk_delete(ossl_check_USERNOTICE_sk_type(sk), (i))) +#define sk_USERNOTICE_delete_ptr(sk, ptr) ((USERNOTICE *)OPENSSL_sk_delete_ptr(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr))) +#define sk_USERNOTICE_push(sk, ptr) OPENSSL_sk_push(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr)) +#define sk_USERNOTICE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr)) +#define sk_USERNOTICE_pop(sk) ((USERNOTICE *)OPENSSL_sk_pop(ossl_check_USERNOTICE_sk_type(sk))) +#define sk_USERNOTICE_shift(sk) ((USERNOTICE *)OPENSSL_sk_shift(ossl_check_USERNOTICE_sk_type(sk))) +#define sk_USERNOTICE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_USERNOTICE_sk_type(sk),ossl_check_USERNOTICE_freefunc_type(freefunc)) +#define sk_USERNOTICE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr), (idx)) +#define sk_USERNOTICE_set(sk, idx, ptr) ((USERNOTICE *)OPENSSL_sk_set(ossl_check_USERNOTICE_sk_type(sk), (idx), ossl_check_USERNOTICE_type(ptr))) +#define sk_USERNOTICE_find(sk, ptr) OPENSSL_sk_find(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr)) +#define sk_USERNOTICE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr)) +#define sk_USERNOTICE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr), pnum) +#define sk_USERNOTICE_sort(sk) OPENSSL_sk_sort(ossl_check_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_dup(sk) ((STACK_OF(USERNOTICE) *)OPENSSL_sk_dup(ossl_check_const_USERNOTICE_sk_type(sk))) +#define sk_USERNOTICE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(USERNOTICE) *)OPENSSL_sk_deep_copy(ossl_check_const_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_copyfunc_type(copyfunc), ossl_check_USERNOTICE_freefunc_type(freefunc))) +#define sk_USERNOTICE_set_cmp_func(sk, cmp) ((sk_USERNOTICE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_compfunc_type(cmp))) + + +typedef struct OSSL_ROLE_SPEC_CERT_ID_st { + GENERAL_NAME *roleName; + GENERAL_NAME *roleCertIssuer; + ASN1_INTEGER *roleCertSerialNumber; + GENERAL_NAMES *roleCertLocator; +} OSSL_ROLE_SPEC_CERT_ID; + +DECLARE_ASN1_FUNCTIONS(OSSL_ROLE_SPEC_CERT_ID) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ROLE_SPEC_CERT_ID, OSSL_ROLE_SPEC_CERT_ID, OSSL_ROLE_SPEC_CERT_ID) +#define sk_OSSL_ROLE_SPEC_CERT_ID_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_value(sk, idx) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_value(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), (idx))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_new(cmp) ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_new(ossl_check_OSSL_ROLE_SPEC_CERT_ID_compfunc_type(cmp))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_new_null() ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ROLE_SPEC_CERT_ID_new_reserve(cmp, n) ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ROLE_SPEC_CERT_ID_compfunc_type(cmp), (n))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), (n)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_delete(sk, i) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_delete(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), (i))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_delete_ptr(sk, ptr) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_pop(sk) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_pop(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_shift(sk) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_shift(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk),ossl_check_OSSL_ROLE_SPEC_CERT_ID_freefunc_type(freefunc)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr), (idx)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_set(sk, idx, ptr) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_set(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), (idx), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr), pnum) +#define sk_OSSL_ROLE_SPEC_CERT_ID_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_dup(sk) ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_copyfunc_type(copyfunc), ossl_check_OSSL_ROLE_SPEC_CERT_ID_freefunc_type(freefunc))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_set_cmp_func(sk, cmp) ((sk_OSSL_ROLE_SPEC_CERT_ID_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_compfunc_type(cmp))) + + +typedef STACK_OF(OSSL_ROLE_SPEC_CERT_ID) OSSL_ROLE_SPEC_CERT_ID_SYNTAX; + +DECLARE_ASN1_FUNCTIONS(OSSL_ROLE_SPEC_CERT_ID_SYNTAX) +typedef struct OSSL_HASH_st { + X509_ALGOR *algorithmIdentifier; + ASN1_BIT_STRING *hashValue; +} OSSL_HASH; + +typedef struct OSSL_INFO_SYNTAX_POINTER_st { + GENERAL_NAMES *name; + OSSL_HASH *hash; +} OSSL_INFO_SYNTAX_POINTER; + +# define OSSL_INFO_SYNTAX_TYPE_CONTENT 0 +# define OSSL_INFO_SYNTAX_TYPE_POINTER 1 + +typedef struct OSSL_INFO_SYNTAX_st { + int type; + union { + ASN1_STRING *content; + OSSL_INFO_SYNTAX_POINTER *pointer; + } choice; +} OSSL_INFO_SYNTAX; + +typedef struct OSSL_PRIVILEGE_POLICY_ID_st { + ASN1_OBJECT *privilegePolicy; + OSSL_INFO_SYNTAX *privPolSyntax; +} OSSL_PRIVILEGE_POLICY_ID; + +typedef struct OSSL_ATTRIBUTE_DESCRIPTOR_st { + ASN1_OBJECT *identifier; + ASN1_STRING *attributeSyntax; + ASN1_UTF8STRING *name; + ASN1_UTF8STRING *description; + OSSL_PRIVILEGE_POLICY_ID *dominationRule; +} OSSL_ATTRIBUTE_DESCRIPTOR; + +DECLARE_ASN1_FUNCTIONS(OSSL_HASH) +DECLARE_ASN1_FUNCTIONS(OSSL_INFO_SYNTAX) +DECLARE_ASN1_FUNCTIONS(OSSL_INFO_SYNTAX_POINTER) +DECLARE_ASN1_FUNCTIONS(OSSL_PRIVILEGE_POLICY_ID) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_DESCRIPTOR) + +typedef struct OSSL_TIME_SPEC_ABSOLUTE_st { + ASN1_GENERALIZEDTIME *startTime; + ASN1_GENERALIZEDTIME *endTime; +} OSSL_TIME_SPEC_ABSOLUTE; + +typedef struct OSSL_DAY_TIME_st { + ASN1_INTEGER *hour; + ASN1_INTEGER *minute; + ASN1_INTEGER *second; +} OSSL_DAY_TIME; + +typedef struct OSSL_DAY_TIME_BAND_st { + OSSL_DAY_TIME *startDayTime; + OSSL_DAY_TIME *endDayTime; +} OSSL_DAY_TIME_BAND; + +# define OSSL_NAMED_DAY_TYPE_INT 0 +# define OSSL_NAMED_DAY_TYPE_BIT 1 +# define OSSL_NAMED_DAY_INT_SUN 1 +# define OSSL_NAMED_DAY_INT_MON 2 +# define OSSL_NAMED_DAY_INT_TUE 3 +# define OSSL_NAMED_DAY_INT_WED 4 +# define OSSL_NAMED_DAY_INT_THU 5 +# define OSSL_NAMED_DAY_INT_FRI 6 +# define OSSL_NAMED_DAY_INT_SAT 7 +# define OSSL_NAMED_DAY_BIT_SUN 0 +# define OSSL_NAMED_DAY_BIT_MON 1 +# define OSSL_NAMED_DAY_BIT_TUE 2 +# define OSSL_NAMED_DAY_BIT_WED 3 +# define OSSL_NAMED_DAY_BIT_THU 4 +# define OSSL_NAMED_DAY_BIT_FRI 5 +# define OSSL_NAMED_DAY_BIT_SAT 6 + +typedef struct OSSL_NAMED_DAY_st { + int type; + union { + ASN1_INTEGER *intNamedDays; + ASN1_BIT_STRING *bitNamedDays; + } choice; +} OSSL_NAMED_DAY; + +# define OSSL_TIME_SPEC_X_DAY_OF_FIRST 0 +# define OSSL_TIME_SPEC_X_DAY_OF_SECOND 1 +# define OSSL_TIME_SPEC_X_DAY_OF_THIRD 2 +# define OSSL_TIME_SPEC_X_DAY_OF_FOURTH 3 +# define OSSL_TIME_SPEC_X_DAY_OF_FIFTH 4 + +typedef struct OSSL_TIME_SPEC_X_DAY_OF_st { + int type; + union { + OSSL_NAMED_DAY *first; + OSSL_NAMED_DAY *second; + OSSL_NAMED_DAY *third; + OSSL_NAMED_DAY *fourth; + OSSL_NAMED_DAY *fifth; + } choice; +} OSSL_TIME_SPEC_X_DAY_OF; + +# define OSSL_TIME_SPEC_DAY_TYPE_INT 0 +# define OSSL_TIME_SPEC_DAY_TYPE_BIT 1 +# define OSSL_TIME_SPEC_DAY_TYPE_DAY_OF 2 +# define OSSL_TIME_SPEC_DAY_BIT_SUN 0 +# define OSSL_TIME_SPEC_DAY_BIT_MON 1 +# define OSSL_TIME_SPEC_DAY_BIT_TUE 2 +# define OSSL_TIME_SPEC_DAY_BIT_WED 3 +# define OSSL_TIME_SPEC_DAY_BIT_THU 4 +# define OSSL_TIME_SPEC_DAY_BIT_FRI 5 +# define OSSL_TIME_SPEC_DAY_BIT_SAT 6 +# define OSSL_TIME_SPEC_DAY_INT_SUN 1 +# define OSSL_TIME_SPEC_DAY_INT_MON 2 +# define OSSL_TIME_SPEC_DAY_INT_TUE 3 +# define OSSL_TIME_SPEC_DAY_INT_WED 4 +# define OSSL_TIME_SPEC_DAY_INT_THU 5 +# define OSSL_TIME_SPEC_DAY_INT_FRI 6 +# define OSSL_TIME_SPEC_DAY_INT_SAT 7 + +typedef struct OSSL_TIME_SPEC_DAY_st { + int type; + union { + STACK_OF(ASN1_INTEGER) *intDay; + ASN1_BIT_STRING *bitDay; + OSSL_TIME_SPEC_X_DAY_OF *dayOf; + } choice; +} OSSL_TIME_SPEC_DAY; + +# define OSSL_TIME_SPEC_WEEKS_TYPE_ALL 0 +# define OSSL_TIME_SPEC_WEEKS_TYPE_INT 1 +# define OSSL_TIME_SPEC_WEEKS_TYPE_BIT 2 +# define OSSL_TIME_SPEC_BIT_WEEKS_1 0 +# define OSSL_TIME_SPEC_BIT_WEEKS_2 1 +# define OSSL_TIME_SPEC_BIT_WEEKS_3 2 +# define OSSL_TIME_SPEC_BIT_WEEKS_4 3 +# define OSSL_TIME_SPEC_BIT_WEEKS_5 4 + +typedef struct OSSL_TIME_SPEC_WEEKS_st { + int type; + union { + ASN1_NULL *allWeeks; + STACK_OF(ASN1_INTEGER) *intWeek; + ASN1_BIT_STRING *bitWeek; + } choice; +} OSSL_TIME_SPEC_WEEKS; + +# define OSSL_TIME_SPEC_MONTH_TYPE_ALL 0 +# define OSSL_TIME_SPEC_MONTH_TYPE_INT 1 +# define OSSL_TIME_SPEC_MONTH_TYPE_BIT 2 +# define OSSL_TIME_SPEC_INT_MONTH_JAN 1 +# define OSSL_TIME_SPEC_INT_MONTH_FEB 2 +# define OSSL_TIME_SPEC_INT_MONTH_MAR 3 +# define OSSL_TIME_SPEC_INT_MONTH_APR 4 +# define OSSL_TIME_SPEC_INT_MONTH_MAY 5 +# define OSSL_TIME_SPEC_INT_MONTH_JUN 6 +# define OSSL_TIME_SPEC_INT_MONTH_JUL 7 +# define OSSL_TIME_SPEC_INT_MONTH_AUG 8 +# define OSSL_TIME_SPEC_INT_MONTH_SEP 9 +# define OSSL_TIME_SPEC_INT_MONTH_OCT 10 +# define OSSL_TIME_SPEC_INT_MONTH_NOV 11 +# define OSSL_TIME_SPEC_INT_MONTH_DEC 12 +# define OSSL_TIME_SPEC_BIT_MONTH_JAN 0 +# define OSSL_TIME_SPEC_BIT_MONTH_FEB 1 +# define OSSL_TIME_SPEC_BIT_MONTH_MAR 2 +# define OSSL_TIME_SPEC_BIT_MONTH_APR 3 +# define OSSL_TIME_SPEC_BIT_MONTH_MAY 4 +# define OSSL_TIME_SPEC_BIT_MONTH_JUN 5 +# define OSSL_TIME_SPEC_BIT_MONTH_JUL 6 +# define OSSL_TIME_SPEC_BIT_MONTH_AUG 7 +# define OSSL_TIME_SPEC_BIT_MONTH_SEP 8 +# define OSSL_TIME_SPEC_BIT_MONTH_OCT 9 +# define OSSL_TIME_SPEC_BIT_MONTH_NOV 10 +# define OSSL_TIME_SPEC_BIT_MONTH_DEC 11 + +typedef struct OSSL_TIME_SPEC_MONTH_st { + int type; + union { + ASN1_NULL *allMonths; + STACK_OF(ASN1_INTEGER) *intMonth; + ASN1_BIT_STRING *bitMonth; + } choice; +} OSSL_TIME_SPEC_MONTH; + +typedef struct OSSL_TIME_PERIOD_st { + STACK_OF(OSSL_DAY_TIME_BAND) *timesOfDay; + OSSL_TIME_SPEC_DAY *days; + OSSL_TIME_SPEC_WEEKS *weeks; + OSSL_TIME_SPEC_MONTH *months; + STACK_OF(ASN1_INTEGER) *years; +} OSSL_TIME_PERIOD; + +# define OSSL_TIME_SPEC_TIME_TYPE_ABSOLUTE 0 +# define OSSL_TIME_SPEC_TIME_TYPE_PERIODIC 1 + +typedef struct OSSL_TIME_SPEC_TIME_st { + int type; + union { + OSSL_TIME_SPEC_ABSOLUTE *absolute; + STACK_OF(OSSL_TIME_PERIOD) *periodic; + } choice; +} OSSL_TIME_SPEC_TIME; + +typedef struct OSSL_TIME_SPEC_st { + OSSL_TIME_SPEC_TIME *time; + ASN1_BOOLEAN notThisTime; + ASN1_INTEGER *timeZone; +} OSSL_TIME_SPEC; + +DECLARE_ASN1_FUNCTIONS(OSSL_DAY_TIME) +DECLARE_ASN1_FUNCTIONS(OSSL_DAY_TIME_BAND) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_DAY) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_WEEKS) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_MONTH) +DECLARE_ASN1_FUNCTIONS(OSSL_NAMED_DAY) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_X_DAY_OF) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_ABSOLUTE) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_TIME) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_PERIOD) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_TIME_PERIOD, OSSL_TIME_PERIOD, OSSL_TIME_PERIOD) +#define sk_OSSL_TIME_PERIOD_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_value(sk, idx) ((OSSL_TIME_PERIOD *)OPENSSL_sk_value(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk), (idx))) +#define sk_OSSL_TIME_PERIOD_new(cmp) ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_new(ossl_check_OSSL_TIME_PERIOD_compfunc_type(cmp))) +#define sk_OSSL_TIME_PERIOD_new_null() ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_new_null()) +#define sk_OSSL_TIME_PERIOD_new_reserve(cmp, n) ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_TIME_PERIOD_compfunc_type(cmp), (n))) +#define sk_OSSL_TIME_PERIOD_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), (n)) +#define sk_OSSL_TIME_PERIOD_free(sk) OPENSSL_sk_free(ossl_check_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_delete(sk, i) ((OSSL_TIME_PERIOD *)OPENSSL_sk_delete(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), (i))) +#define sk_OSSL_TIME_PERIOD_delete_ptr(sk, ptr) ((OSSL_TIME_PERIOD *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr))) +#define sk_OSSL_TIME_PERIOD_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr)) +#define sk_OSSL_TIME_PERIOD_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr)) +#define sk_OSSL_TIME_PERIOD_pop(sk) ((OSSL_TIME_PERIOD *)OPENSSL_sk_pop(ossl_check_OSSL_TIME_PERIOD_sk_type(sk))) +#define sk_OSSL_TIME_PERIOD_shift(sk) ((OSSL_TIME_PERIOD *)OPENSSL_sk_shift(ossl_check_OSSL_TIME_PERIOD_sk_type(sk))) +#define sk_OSSL_TIME_PERIOD_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_TIME_PERIOD_sk_type(sk),ossl_check_OSSL_TIME_PERIOD_freefunc_type(freefunc)) +#define sk_OSSL_TIME_PERIOD_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr), (idx)) +#define sk_OSSL_TIME_PERIOD_set(sk, idx, ptr) ((OSSL_TIME_PERIOD *)OPENSSL_sk_set(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), (idx), ossl_check_OSSL_TIME_PERIOD_type(ptr))) +#define sk_OSSL_TIME_PERIOD_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr)) +#define sk_OSSL_TIME_PERIOD_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr)) +#define sk_OSSL_TIME_PERIOD_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr), pnum) +#define sk_OSSL_TIME_PERIOD_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_dup(sk) ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_dup(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk))) +#define sk_OSSL_TIME_PERIOD_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_copyfunc_type(copyfunc), ossl_check_OSSL_TIME_PERIOD_freefunc_type(freefunc))) +#define sk_OSSL_TIME_PERIOD_set_cmp_func(sk, cmp) ((sk_OSSL_TIME_PERIOD_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_compfunc_type(cmp))) + + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_DAY_TIME_BAND, OSSL_DAY_TIME_BAND, OSSL_DAY_TIME_BAND) +#define sk_OSSL_DAY_TIME_BAND_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_value(sk, idx) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_value(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk), (idx))) +#define sk_OSSL_DAY_TIME_BAND_new(cmp) ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_new(ossl_check_OSSL_DAY_TIME_BAND_compfunc_type(cmp))) +#define sk_OSSL_DAY_TIME_BAND_new_null() ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_new_null()) +#define sk_OSSL_DAY_TIME_BAND_new_reserve(cmp, n) ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_DAY_TIME_BAND_compfunc_type(cmp), (n))) +#define sk_OSSL_DAY_TIME_BAND_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), (n)) +#define sk_OSSL_DAY_TIME_BAND_free(sk) OPENSSL_sk_free(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_delete(sk, i) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_delete(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), (i))) +#define sk_OSSL_DAY_TIME_BAND_delete_ptr(sk, ptr) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr))) +#define sk_OSSL_DAY_TIME_BAND_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr)) +#define sk_OSSL_DAY_TIME_BAND_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr)) +#define sk_OSSL_DAY_TIME_BAND_pop(sk) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_pop(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk))) +#define sk_OSSL_DAY_TIME_BAND_shift(sk) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_shift(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk))) +#define sk_OSSL_DAY_TIME_BAND_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk),ossl_check_OSSL_DAY_TIME_BAND_freefunc_type(freefunc)) +#define sk_OSSL_DAY_TIME_BAND_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr), (idx)) +#define sk_OSSL_DAY_TIME_BAND_set(sk, idx, ptr) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_set(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), (idx), ossl_check_OSSL_DAY_TIME_BAND_type(ptr))) +#define sk_OSSL_DAY_TIME_BAND_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr)) +#define sk_OSSL_DAY_TIME_BAND_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr)) +#define sk_OSSL_DAY_TIME_BAND_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr), pnum) +#define sk_OSSL_DAY_TIME_BAND_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_dup(sk) ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_dup(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk))) +#define sk_OSSL_DAY_TIME_BAND_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_copyfunc_type(copyfunc), ossl_check_OSSL_DAY_TIME_BAND_freefunc_type(freefunc))) +#define sk_OSSL_DAY_TIME_BAND_set_cmp_func(sk, cmp) ((sk_OSSL_DAY_TIME_BAND_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_compfunc_type(cmp))) + + +/* Attribute Type and Value */ +typedef struct atav_st { + ASN1_OBJECT *type; + ASN1_TYPE *value; +} OSSL_ATAV; + +typedef struct ATTRIBUTE_TYPE_MAPPING_st { + ASN1_OBJECT *local; + ASN1_OBJECT *remote; +} OSSL_ATTRIBUTE_TYPE_MAPPING; + +typedef struct ATTRIBUTE_VALUE_MAPPING_st { + OSSL_ATAV *local; + OSSL_ATAV *remote; +} OSSL_ATTRIBUTE_VALUE_MAPPING; + +# define OSSL_ATTR_MAP_TYPE 0 +# define OSSL_ATTR_MAP_VALUE 1 + +typedef struct ATTRIBUTE_MAPPING_st { + int type; + union { + OSSL_ATTRIBUTE_TYPE_MAPPING *typeMappings; + OSSL_ATTRIBUTE_VALUE_MAPPING *typeValueMappings; + } choice; +} OSSL_ATTRIBUTE_MAPPING; + +typedef STACK_OF(OSSL_ATTRIBUTE_MAPPING) OSSL_ATTRIBUTE_MAPPINGS; +DECLARE_ASN1_FUNCTIONS(OSSL_ATAV) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_TYPE_MAPPING) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_VALUE_MAPPING) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_MAPPING) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_MAPPINGS) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ATTRIBUTE_MAPPING, OSSL_ATTRIBUTE_MAPPING, OSSL_ATTRIBUTE_MAPPING) +#define sk_OSSL_ATTRIBUTE_MAPPING_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_value(sk, idx) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_value(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), (idx))) +#define sk_OSSL_ATTRIBUTE_MAPPING_new(cmp) ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_new(ossl_check_OSSL_ATTRIBUTE_MAPPING_compfunc_type(cmp))) +#define sk_OSSL_ATTRIBUTE_MAPPING_new_null() ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ATTRIBUTE_MAPPING_new_reserve(cmp, n) ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ATTRIBUTE_MAPPING_compfunc_type(cmp), (n))) +#define sk_OSSL_ATTRIBUTE_MAPPING_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), (n)) +#define sk_OSSL_ATTRIBUTE_MAPPING_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_delete(sk, i) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_delete(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), (i))) +#define sk_OSSL_ATTRIBUTE_MAPPING_delete_ptr(sk, ptr) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr))) +#define sk_OSSL_ATTRIBUTE_MAPPING_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr)) +#define sk_OSSL_ATTRIBUTE_MAPPING_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr)) +#define sk_OSSL_ATTRIBUTE_MAPPING_pop(sk) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_pop(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk))) +#define sk_OSSL_ATTRIBUTE_MAPPING_shift(sk) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_shift(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk))) +#define sk_OSSL_ATTRIBUTE_MAPPING_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk),ossl_check_OSSL_ATTRIBUTE_MAPPING_freefunc_type(freefunc)) +#define sk_OSSL_ATTRIBUTE_MAPPING_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr), (idx)) +#define sk_OSSL_ATTRIBUTE_MAPPING_set(sk, idx, ptr) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_set(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), (idx), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr))) +#define sk_OSSL_ATTRIBUTE_MAPPING_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr)) +#define sk_OSSL_ATTRIBUTE_MAPPING_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr)) +#define sk_OSSL_ATTRIBUTE_MAPPING_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr), pnum) +#define sk_OSSL_ATTRIBUTE_MAPPING_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_dup(sk) ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk))) +#define sk_OSSL_ATTRIBUTE_MAPPING_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_copyfunc_type(copyfunc), ossl_check_OSSL_ATTRIBUTE_MAPPING_freefunc_type(freefunc))) +#define sk_OSSL_ATTRIBUTE_MAPPING_set_cmp_func(sk, cmp) ((sk_OSSL_ATTRIBUTE_MAPPING_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_compfunc_type(cmp))) + + +# define OSSL_AAA_ATTRIBUTE_TYPE 0 +# define OSSL_AAA_ATTRIBUTE_VALUES 1 + +typedef struct ALLOWED_ATTRIBUTES_CHOICE_st { + int type; + union { + ASN1_OBJECT *attributeType; + X509_ATTRIBUTE *attributeTypeandValues; + } choice; +} OSSL_ALLOWED_ATTRIBUTES_CHOICE; + +typedef struct ALLOWED_ATTRIBUTES_ITEM_st { + STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *attributes; + GENERAL_NAME *holderDomain; +} OSSL_ALLOWED_ATTRIBUTES_ITEM; + +typedef STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) OSSL_ALLOWED_ATTRIBUTES_SYNTAX; + +DECLARE_ASN1_FUNCTIONS(OSSL_ALLOWED_ATTRIBUTES_CHOICE) +DECLARE_ASN1_FUNCTIONS(OSSL_ALLOWED_ATTRIBUTES_ITEM) +DECLARE_ASN1_FUNCTIONS(OSSL_ALLOWED_ATTRIBUTES_SYNTAX) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ALLOWED_ATTRIBUTES_CHOICE, OSSL_ALLOWED_ATTRIBUTES_CHOICE, OSSL_ALLOWED_ATTRIBUTES_CHOICE) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_value(sk, idx) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_value(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), (idx))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_new(cmp) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_new(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_compfunc_type(cmp))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_new_null() ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_new_reserve(cmp, n) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_compfunc_type(cmp), (n))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), (n)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_delete(sk, i) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_delete(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), (i))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_delete_ptr(sk, ptr) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_pop(sk) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_pop(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_shift(sk) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_shift(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk),ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_freefunc_type(freefunc)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr), (idx)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_set(sk, idx, ptr) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_set(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), (idx), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr), pnum) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_dup(sk) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_copyfunc_type(copyfunc), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_freefunc_type(freefunc))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_set_cmp_func(sk, cmp) ((sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_compfunc_type(cmp))) + + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ALLOWED_ATTRIBUTES_ITEM, OSSL_ALLOWED_ATTRIBUTES_ITEM, OSSL_ALLOWED_ATTRIBUTES_ITEM) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_value(sk, idx) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_value(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), (idx))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_new(cmp) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_new(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_compfunc_type(cmp))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_new_null() ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_new_reserve(cmp, n) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_compfunc_type(cmp), (n))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), (n)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_delete(sk, i) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_delete(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), (i))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_delete_ptr(sk, ptr) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_pop(sk) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_pop(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_shift(sk) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_shift(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk),ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_freefunc_type(freefunc)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr), (idx)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_set(sk, idx, ptr) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_set(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), (idx), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr), pnum) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_dup(sk) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_copyfunc_type(copyfunc), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_freefunc_type(freefunc))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_set_cmp_func(sk, cmp) ((sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_compfunc_type(cmp))) + + +typedef struct AA_DIST_POINT_st { + DIST_POINT_NAME *distpoint; + ASN1_BIT_STRING *reasons; + int dp_reasons; + ASN1_BOOLEAN indirectCRL; + ASN1_BOOLEAN containsUserAttributeCerts; + ASN1_BOOLEAN containsAACerts; + ASN1_BOOLEAN containsSOAPublicKeyCerts; +} OSSL_AA_DIST_POINT; + +DECLARE_ASN1_FUNCTIONS(OSSL_AA_DIST_POINT) + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/BSD-x86/asm_avx2/include/progs.h b/deps/openssl/config/archs/BSD-x86/asm_avx2/include/progs.h index be55f61503d405..1b62ec37dec130 100644 --- a/deps/openssl/config/archs/BSD-x86/asm_avx2/include/progs.h +++ b/deps/openssl/config/archs/BSD-x86/asm_avx2/include/progs.h @@ -56,6 +56,7 @@ extern int s_client_main(int argc, char *argv[]); extern int s_server_main(int argc, char *argv[]); extern int s_time_main(int argc, char *argv[]); extern int sess_id_main(int argc, char *argv[]); +extern int skeyutl_main(int argc, char *argv[]); extern int smime_main(int argc, char *argv[]); extern int speed_main(int argc, char *argv[]); extern int spkac_main(int argc, char *argv[]); @@ -110,6 +111,7 @@ extern const OPTIONS s_client_options[]; extern const OPTIONS s_server_options[]; extern const OPTIONS s_time_options[]; extern const OPTIONS sess_id_options[]; +extern const OPTIONS skeyutl_options[]; extern const OPTIONS smime_options[]; extern const OPTIONS speed_options[]; extern const OPTIONS spkac_options[]; diff --git a/deps/openssl/config/archs/BSD-x86/asm_avx2/openssl-cl.gypi b/deps/openssl/config/archs/BSD-x86/asm_avx2/openssl-cl.gypi index dc324536e46ce0..064444ebf23c4c 100644 --- a/deps/openssl/config/archs/BSD-x86/asm_avx2/openssl-cl.gypi +++ b/deps/openssl/config/archs/BSD-x86/asm_avx2/openssl-cl.gypi @@ -82,6 +82,7 @@ 'openssl/apps/s_server.c', 'openssl/apps/s_time.c', 'openssl/apps/sess_id.c', + 'openssl/apps/skeyutl.c', 'openssl/apps/smime.c', 'openssl/apps/speed.c', 'openssl/apps/spkac.c', @@ -97,12 +98,14 @@ 'openssl/apps/lib/app_rand.c', 'openssl/apps/lib/app_x509.c', 'openssl/apps/lib/apps.c', + 'openssl/apps/lib/apps_opt_printf.c', 'openssl/apps/lib/apps_ui.c', 'openssl/apps/lib/columns.c', 'openssl/apps/lib/engine.c', 'openssl/apps/lib/engine_loader.c', 'openssl/apps/lib/fmt.c', 'openssl/apps/lib/http_server.c', + 'openssl/apps/lib/log.c', 'openssl/apps/lib/names.c', 'openssl/apps/lib/opt.c', 'openssl/apps/lib/s_cb.c', diff --git a/deps/openssl/config/archs/BSD-x86/asm_avx2/openssl-fips.gypi b/deps/openssl/config/archs/BSD-x86/asm_avx2/openssl-fips.gypi index f9448e07fd9d12..9a52eae7b62593 100644 --- a/deps/openssl/config/archs/BSD-x86/asm_avx2/openssl-fips.gypi +++ b/deps/openssl/config/archs/BSD-x86/asm_avx2/openssl-fips.gypi @@ -96,14 +96,15 @@ 'openssl/crypto/evp/kem.c', 'openssl/crypto/evp/keymgmt_lib.c', 'openssl/crypto/evp/keymgmt_meth.c', - 'openssl/crypto/evp/m_sigver.c', 'openssl/crypto/evp/mac_lib.c', 'openssl/crypto/evp/mac_meth.c', 'openssl/crypto/evp/p_lib.c', 'openssl/crypto/evp/pmeth_check.c', 'openssl/crypto/evp/pmeth_gn.c', 'openssl/crypto/evp/pmeth_lib.c', + 'openssl/crypto/evp/s_lib.c', 'openssl/crypto/evp/signature.c', + 'openssl/crypto/evp/skeymgmt_meth.c', 'openssl/crypto/ffc/ffc_backend.c', 'openssl/crypto/ffc/ffc_dh.c', 'openssl/crypto/ffc/ffc_key_generate.c', @@ -111,6 +112,8 @@ 'openssl/crypto/ffc/ffc_params.c', 'openssl/crypto/ffc/ffc_params_generate.c', 'openssl/crypto/ffc/ffc_params_validate.c', + 'openssl/crypto/hashtable/hashfunc.c', + 'openssl/crypto/hashtable/hashtable.c', 'openssl/crypto/hmac/hmac.c', 'openssl/crypto/lhash/lhash.c', 'openssl/crypto/asn1_dsa.c', @@ -140,6 +143,16 @@ 'openssl/crypto/threads_none.c', 'openssl/crypto/threads_pthread.c', 'openssl/crypto/threads_win.c', + 'openssl/crypto/time.c', + 'openssl/crypto/ml_dsa/ml_dsa_encoders.c', + 'openssl/crypto/ml_dsa/ml_dsa_key.c', + 'openssl/crypto/ml_dsa/ml_dsa_key_compress.c', + 'openssl/crypto/ml_dsa/ml_dsa_matrix.c', + 'openssl/crypto/ml_dsa/ml_dsa_ntt.c', + 'openssl/crypto/ml_dsa/ml_dsa_params.c', + 'openssl/crypto/ml_dsa/ml_dsa_sample.c', + 'openssl/crypto/ml_dsa/ml_dsa_sign.c', + 'openssl/crypto/ml_kem/ml_kem.c', 'openssl/crypto/modes/cbc128.c', 'openssl/crypto/modes/ccm128.c', 'openssl/crypto/modes/cfb128.c', @@ -148,6 +161,7 @@ 'openssl/crypto/modes/ofb128.c', 'openssl/crypto/modes/wrap128.c', 'openssl/crypto/modes/xts128.c', + 'openssl/crypto/modes/xts128gb.c', 'openssl/crypto/property/defn_cache.c', 'openssl/crypto/property/property.c', 'openssl/crypto/property/property_parse.c', @@ -176,7 +190,23 @@ 'openssl/crypto/sha/sha256.c', 'openssl/crypto/sha/sha3.c', 'openssl/crypto/sha/sha512.c', + 'openssl/crypto/slh_dsa/slh_adrs.c', + 'openssl/crypto/slh_dsa/slh_dsa.c', + 'openssl/crypto/slh_dsa/slh_dsa_hash_ctx.c', + 'openssl/crypto/slh_dsa/slh_dsa_key.c', + 'openssl/crypto/slh_dsa/slh_fors.c', + 'openssl/crypto/slh_dsa/slh_hash.c', + 'openssl/crypto/slh_dsa/slh_hypertree.c', + 'openssl/crypto/slh_dsa/slh_params.c', + 'openssl/crypto/slh_dsa/slh_wots.c', + 'openssl/crypto/slh_dsa/slh_xmss.c', 'openssl/crypto/stack/stack.c', + 'openssl/crypto/thread/arch/thread_none.c', + 'openssl/crypto/thread/arch/thread_posix.c', + 'openssl/crypto/thread/arch/thread_win.c', + 'openssl/crypto/thread/api.c', + 'openssl/crypto/thread/arch.c', + 'openssl/crypto/thread/internal.c', 'openssl/providers/common/der/der_rsa_sig.c', 'openssl/providers/common/bio_prov.c', 'openssl/providers/common/capabilities.c', @@ -185,6 +215,7 @@ 'openssl/providers/common/provider_util.c', 'openssl/providers/common/securitycheck.c', 'openssl/providers/common/securitycheck_fips.c', + 'openssl/providers/fips/fipsindicator.c', 'openssl/providers/fips/fipsprov.c', 'openssl/providers/fips/self_test.c', 'openssl/providers/fips/self_test_kats.c', @@ -222,6 +253,8 @@ 'openssl/providers/implementations/kdfs/sskdf.c', 'openssl/providers/implementations/kdfs/tls1_prf.c', 'openssl/providers/implementations/kdfs/x942kdf.c', + 'openssl/providers/implementations/kem/ml_kem_kem.c', + 'openssl/providers/implementations/kem/mlx_kem.c', 'openssl/providers/implementations/kem/rsa_kem.c', 'openssl/providers/implementations/keymgmt/dh_kmgmt.c', 'openssl/providers/implementations/keymgmt/dsa_kmgmt.c', @@ -229,29 +262,39 @@ 'openssl/providers/implementations/keymgmt/ecx_kmgmt.c', 'openssl/providers/implementations/keymgmt/kdf_legacy_kmgmt.c', 'openssl/providers/implementations/keymgmt/mac_legacy_kmgmt.c', + 'openssl/providers/implementations/keymgmt/ml_dsa_kmgmt.c', + 'openssl/providers/implementations/keymgmt/ml_kem_kmgmt.c', + 'openssl/providers/implementations/keymgmt/mlx_kmgmt.c', 'openssl/providers/implementations/keymgmt/rsa_kmgmt.c', + 'openssl/providers/implementations/keymgmt/slh_dsa_kmgmt.c', 'openssl/providers/implementations/macs/cmac_prov.c', 'openssl/providers/implementations/macs/gmac_prov.c', 'openssl/providers/implementations/macs/hmac_prov.c', 'openssl/providers/implementations/macs/kmac_prov.c', - 'openssl/providers/implementations/rands/crngt.c', 'openssl/providers/implementations/rands/drbg.c', 'openssl/providers/implementations/rands/drbg_ctr.c', 'openssl/providers/implementations/rands/drbg_hash.c', 'openssl/providers/implementations/rands/drbg_hmac.c', + 'openssl/providers/implementations/rands/fips_crng_test.c', 'openssl/providers/implementations/rands/test_rng.c', 'openssl/providers/implementations/signature/dsa_sig.c', 'openssl/providers/implementations/signature/ecdsa_sig.c', 'openssl/providers/implementations/signature/eddsa_sig.c', 'openssl/providers/implementations/signature/mac_legacy_sig.c', + 'openssl/providers/implementations/signature/ml_dsa_sig.c', 'openssl/providers/implementations/signature/rsa_sig.c', - 'openssl/ssl/s3_cbc.c', + 'openssl/providers/implementations/signature/slh_dsa_sig.c', + 'openssl/providers/implementations/skeymgmt/aes_skmgmt.c', + 'openssl/providers/implementations/skeymgmt/generic.c', + 'openssl/ssl/record/methods/ssl3_cbc.c', 'openssl/providers/common/der/der_dsa_key.c', 'openssl/providers/common/der/der_dsa_sig.c', 'openssl/providers/common/der/der_ec_key.c', 'openssl/providers/common/der/der_ec_sig.c', 'openssl/providers/common/der/der_ecx_key.c', + 'openssl/providers/common/der/der_ml_dsa_key.c', 'openssl/providers/common/der/der_rsa_key.c', + 'openssl/providers/common/der/der_slh_dsa_key.c', 'openssl/providers/common/provider_ctx.c', 'openssl/providers/common/provider_err.c', 'openssl/providers/implementations/ciphers/ciphercommon.c', @@ -262,7 +305,7 @@ 'openssl/providers/implementations/ciphers/ciphercommon_gcm_hw.c', 'openssl/providers/implementations/ciphers/ciphercommon_hw.c', 'openssl/providers/implementations/digests/digestcommon.c', - 'openssl/ssl/record/tls_pad.c', + 'openssl/ssl/record/methods/tls_pad.c', 'openssl/providers/fips/fips_entry.c', ], @@ -280,6 +323,7 @@ './config/archs/BSD-x86/asm_avx2/crypto/des/crypt586.S', './config/archs/BSD-x86/asm_avx2/crypto/des/des-586.S', './config/archs/BSD-x86/asm_avx2/crypto/ec/ecp_nistz256-x86.S', + './config/archs/BSD-x86/asm_avx2/crypto/params_idx.c', './config/archs/BSD-x86/asm_avx2/crypto/x86cpuid.S', './config/archs/BSD-x86/asm_avx2/crypto/md5/md5-586.S', './config/archs/BSD-x86/asm_avx2/crypto/modes/ghash-x86.S', @@ -296,7 +340,9 @@ './config/archs/BSD-x86/asm_avx2/providers/common/der/der_dsa_gen.c', './config/archs/BSD-x86/asm_avx2/providers/common/der/der_ec_gen.c', './config/archs/BSD-x86/asm_avx2/providers/common/der/der_ecx_gen.c', + './config/archs/BSD-x86/asm_avx2/providers/common/der/der_ml_dsa_gen.c', './config/archs/BSD-x86/asm_avx2/providers/common/der/der_rsa_gen.c', + './config/archs/BSD-x86/asm_avx2/providers/common/der/der_slh_dsa_gen.c', './config/archs/BSD-x86/asm_avx2/providers/common/der/der_wrap_gen.c', './config/archs/BSD-x86/asm_avx2/providers/legacy.ld', './config/archs/BSD-x86/asm_avx2/providers/fips.ld', diff --git a/deps/openssl/config/archs/BSD-x86/asm_avx2/openssl.gypi b/deps/openssl/config/archs/BSD-x86/asm_avx2/openssl.gypi index 7d73b1d0fed35a..64ff3beaabdd72 100644 --- a/deps/openssl/config/archs/BSD-x86/asm_avx2/openssl.gypi +++ b/deps/openssl/config/archs/BSD-x86/asm_avx2/openssl.gypi @@ -7,14 +7,15 @@ 'openssl/ssl/d1_srtp.c', 'openssl/ssl/methods.c', 'openssl/ssl/pqueue.c', + 'openssl/ssl/priority_queue.c', 'openssl/ssl/s3_enc.c', 'openssl/ssl/s3_lib.c', 'openssl/ssl/s3_msg.c', 'openssl/ssl/ssl_asn1.c', 'openssl/ssl/ssl_cert.c', + 'openssl/ssl/ssl_cert_comp.c', 'openssl/ssl/ssl_ciph.c', 'openssl/ssl/ssl_conf.c', - 'openssl/ssl/ssl_err.c', 'openssl/ssl/ssl_err_legacy.c', 'openssl/ssl/ssl_init.c', 'openssl/ssl/ssl_lib.c', @@ -31,12 +32,60 @@ 'openssl/ssl/tls13_enc.c', 'openssl/ssl/tls_depr.c', 'openssl/ssl/tls_srp.c', - 'openssl/ssl/record/dtls1_bitmap.c', + 'openssl/ssl/quic/cc_newreno.c', + 'openssl/ssl/quic/json_enc.c', + 'openssl/ssl/quic/qlog.c', + 'openssl/ssl/quic/qlog_event_helpers.c', + 'openssl/ssl/quic/quic_ackm.c', + 'openssl/ssl/quic/quic_cfq.c', + 'openssl/ssl/quic/quic_channel.c', + 'openssl/ssl/quic/quic_demux.c', + 'openssl/ssl/quic/quic_engine.c', + 'openssl/ssl/quic/quic_fc.c', + 'openssl/ssl/quic/quic_fifd.c', + 'openssl/ssl/quic/quic_impl.c', + 'openssl/ssl/quic/quic_lcidm.c', + 'openssl/ssl/quic/quic_method.c', + 'openssl/ssl/quic/quic_obj.c', + 'openssl/ssl/quic/quic_port.c', + 'openssl/ssl/quic/quic_rcidm.c', + 'openssl/ssl/quic/quic_reactor.c', + 'openssl/ssl/quic/quic_reactor_wait_ctx.c', + 'openssl/ssl/quic/quic_record_rx.c', + 'openssl/ssl/quic/quic_record_shared.c', + 'openssl/ssl/quic/quic_record_tx.c', + 'openssl/ssl/quic/quic_record_util.c', + 'openssl/ssl/quic/quic_rstream.c', + 'openssl/ssl/quic/quic_rx_depack.c', + 'openssl/ssl/quic/quic_sf_list.c', + 'openssl/ssl/quic/quic_srt_gen.c', + 'openssl/ssl/quic/quic_srtm.c', + 'openssl/ssl/quic/quic_sstream.c', + 'openssl/ssl/quic/quic_statm.c', + 'openssl/ssl/quic/quic_stream_map.c', + 'openssl/ssl/quic/quic_thread_assist.c', + 'openssl/ssl/quic/quic_tls.c', + 'openssl/ssl/quic/quic_tls_api.c', + 'openssl/ssl/quic/quic_trace.c', + 'openssl/ssl/quic/quic_tserver.c', + 'openssl/ssl/quic/quic_txp.c', + 'openssl/ssl/quic/quic_txpim.c', + 'openssl/ssl/quic/quic_types.c', + 'openssl/ssl/quic/quic_wire.c', + 'openssl/ssl/quic/quic_wire_pkt.c', + 'openssl/ssl/quic/uint_set.c', 'openssl/ssl/record/rec_layer_d1.c', 'openssl/ssl/record/rec_layer_s3.c', - 'openssl/ssl/record/ssl3_buffer.c', - 'openssl/ssl/record/ssl3_record.c', - 'openssl/ssl/record/ssl3_record_tls13.c', + 'openssl/ssl/record/methods/dtls_meth.c', + 'openssl/ssl/record/methods/ssl3_meth.c', + 'openssl/ssl/record/methods/tls13_meth.c', + 'openssl/ssl/record/methods/tls1_meth.c', + 'openssl/ssl/record/methods/tls_common.c', + 'openssl/ssl/record/methods/tls_multib.c', + 'openssl/ssl/record/methods/tlsany_meth.c', + 'openssl/ssl/rio/poll_builder.c', + 'openssl/ssl/rio/poll_immediate.c', + 'openssl/ssl/rio/rio_notifier.c', 'openssl/ssl/statem/extensions.c', 'openssl/ssl/statem/extensions_clnt.c', 'openssl/ssl/statem/extensions_cust.c', @@ -147,6 +196,7 @@ 'openssl/crypto/bio/bss_conn.c', 'openssl/crypto/bio/bss_core.c', 'openssl/crypto/bio/bss_dgram.c', + 'openssl/crypto/bio/bss_dgram_pair.c', 'openssl/crypto/bio/bss_fd.c', 'openssl/crypto/bio/bss_file.c', 'openssl/crypto/bio/bss_log.c', @@ -202,6 +252,7 @@ 'openssl/crypto/cmp/cmp_client.c', 'openssl/crypto/cmp/cmp_ctx.c', 'openssl/crypto/cmp/cmp_err.c', + 'openssl/crypto/cmp/cmp_genm.c', 'openssl/crypto/cmp/cmp_hdr.c', 'openssl/crypto/cmp/cmp_http.c', 'openssl/crypto/cmp/cmp_msg.c', @@ -376,7 +427,9 @@ 'openssl/crypto/err/err_all.c', 'openssl/crypto/err/err_all_legacy.c', 'openssl/crypto/err/err_blocks.c', + 'openssl/crypto/err/err_mark.c', 'openssl/crypto/err/err_prn.c', + 'openssl/crypto/err/err_save.c', 'openssl/crypto/ess/ess_asn1.c', 'openssl/crypto/ess/ess_err.c', 'openssl/crypto/ess/ess_lib.c', @@ -459,7 +512,9 @@ 'openssl/crypto/evp/pmeth_check.c', 'openssl/crypto/evp/pmeth_gn.c', 'openssl/crypto/evp/pmeth_lib.c', + 'openssl/crypto/evp/s_lib.c', 'openssl/crypto/evp/signature.c', + 'openssl/crypto/evp/skeymgmt_meth.c', 'openssl/crypto/ffc/ffc_backend.c', 'openssl/crypto/ffc/ffc_dh.c', 'openssl/crypto/ffc/ffc_key_generate.c', @@ -467,7 +522,11 @@ 'openssl/crypto/ffc/ffc_params.c', 'openssl/crypto/ffc/ffc_params_generate.c', 'openssl/crypto/ffc/ffc_params_validate.c', + 'openssl/crypto/hashtable/hashfunc.c', + 'openssl/crypto/hashtable/hashtable.c', 'openssl/crypto/hmac/hmac.c', + 'openssl/crypto/hpke/hpke.c', + 'openssl/crypto/hpke/hpke_util.c', 'openssl/crypto/http/http_client.c', 'openssl/crypto/http/http_err.c', 'openssl/crypto/http/http_lib.c', @@ -481,6 +540,7 @@ 'openssl/crypto/lhash/lhash.c', 'openssl/crypto/asn1_dsa.c', 'openssl/crypto/bsearch.c', + 'openssl/crypto/comp_methods.c', 'openssl/crypto/context.c', 'openssl/crypto/core_algorithm.c', 'openssl/crypto/core_fetch.c', @@ -490,10 +550,13 @@ 'openssl/crypto/cryptlib.c', 'openssl/crypto/ctype.c', 'openssl/crypto/cversion.c', + 'openssl/crypto/defaults.c', 'openssl/crypto/der_writer.c', + 'openssl/crypto/deterministic_nonce.c', 'openssl/crypto/ebcdic.c', 'openssl/crypto/ex_data.c', 'openssl/crypto/getenv.c', + 'openssl/crypto/indicator_core.c', 'openssl/crypto/info.c', 'openssl/crypto/init.c', 'openssl/crypto/initthread.c', @@ -517,12 +580,16 @@ 'openssl/crypto/provider_core.c', 'openssl/crypto/provider_predefined.c', 'openssl/crypto/punycode.c', + 'openssl/crypto/quic_vlint.c', 'openssl/crypto/self_test_core.c', + 'openssl/crypto/sleep.c', 'openssl/crypto/sparse_array.c', + 'openssl/crypto/ssl_err.c', 'openssl/crypto/threads_lib.c', 'openssl/crypto/threads_none.c', 'openssl/crypto/threads_pthread.c', 'openssl/crypto/threads_win.c', + 'openssl/crypto/time.c', 'openssl/crypto/trace.c', 'openssl/crypto/uid.c', 'openssl/crypto/md4/md4_dgst.c', @@ -532,6 +599,15 @@ 'openssl/crypto/md5/md5_sha1.c', 'openssl/crypto/mdc2/mdc2_one.c', 'openssl/crypto/mdc2/mdc2dgst.c', + 'openssl/crypto/ml_dsa/ml_dsa_encoders.c', + 'openssl/crypto/ml_dsa/ml_dsa_key.c', + 'openssl/crypto/ml_dsa/ml_dsa_key_compress.c', + 'openssl/crypto/ml_dsa/ml_dsa_matrix.c', + 'openssl/crypto/ml_dsa/ml_dsa_ntt.c', + 'openssl/crypto/ml_dsa/ml_dsa_params.c', + 'openssl/crypto/ml_dsa/ml_dsa_sample.c', + 'openssl/crypto/ml_dsa/ml_dsa_sign.c', + 'openssl/crypto/ml_kem/ml_kem.c', 'openssl/crypto/modes/cbc128.c', 'openssl/crypto/modes/ccm128.c', 'openssl/crypto/modes/cfb128.c', @@ -543,6 +619,7 @@ 'openssl/crypto/modes/siv128.c', 'openssl/crypto/modes/wrap128.c', 'openssl/crypto/modes/xts128.c', + 'openssl/crypto/modes/xts128gb.c', 'openssl/crypto/objects/o_names.c', 'openssl/crypto/objects/obj_dat.c', 'openssl/crypto/objects/obj_err.c', @@ -606,6 +683,7 @@ 'openssl/crypto/rand/rand_lib.c', 'openssl/crypto/rand/rand_meth.c', 'openssl/crypto/rand/rand_pool.c', + 'openssl/crypto/rand/rand_uniform.c', 'openssl/crypto/rand/randfile.c', 'openssl/crypto/rc2/rc2_cbc.c', 'openssl/crypto/rc2/rc2_ecb.c', @@ -652,6 +730,16 @@ 'openssl/crypto/sha/sha3.c', 'openssl/crypto/sha/sha512.c', 'openssl/crypto/siphash/siphash.c', + 'openssl/crypto/slh_dsa/slh_adrs.c', + 'openssl/crypto/slh_dsa/slh_dsa.c', + 'openssl/crypto/slh_dsa/slh_dsa_hash_ctx.c', + 'openssl/crypto/slh_dsa/slh_dsa_key.c', + 'openssl/crypto/slh_dsa/slh_fors.c', + 'openssl/crypto/slh_dsa/slh_hash.c', + 'openssl/crypto/slh_dsa/slh_hypertree.c', + 'openssl/crypto/slh_dsa/slh_params.c', + 'openssl/crypto/slh_dsa/slh_wots.c', + 'openssl/crypto/slh_dsa/slh_xmss.c', 'openssl/crypto/sm2/sm2_crypt.c', 'openssl/crypto/sm2/sm2_err.c', 'openssl/crypto/sm2/sm2_key.c', @@ -669,6 +757,12 @@ 'openssl/crypto/store/store_register.c', 'openssl/crypto/store/store_result.c', 'openssl/crypto/store/store_strings.c', + 'openssl/crypto/thread/arch/thread_none.c', + 'openssl/crypto/thread/arch/thread_posix.c', + 'openssl/crypto/thread/arch/thread_win.c', + 'openssl/crypto/thread/api.c', + 'openssl/crypto/thread/arch.c', + 'openssl/crypto/thread/internal.c', 'openssl/crypto/ts/ts_asn1.c', 'openssl/crypto/ts/ts_conf.c', 'openssl/crypto/ts/ts_err.c', @@ -697,14 +791,22 @@ 'openssl/crypto/x509/pcy_map.c', 'openssl/crypto/x509/pcy_node.c', 'openssl/crypto/x509/pcy_tree.c', + 'openssl/crypto/x509/t_acert.c', 'openssl/crypto/x509/t_crl.c', 'openssl/crypto/x509/t_req.c', 'openssl/crypto/x509/t_x509.c', + 'openssl/crypto/x509/v3_aaa.c', + 'openssl/crypto/x509/v3_ac_tgt.c', 'openssl/crypto/x509/v3_addr.c', 'openssl/crypto/x509/v3_admis.c', 'openssl/crypto/x509/v3_akeya.c', 'openssl/crypto/x509/v3_akid.c', 'openssl/crypto/x509/v3_asid.c', + 'openssl/crypto/x509/v3_attrdesc.c', + 'openssl/crypto/x509/v3_attrmap.c', + 'openssl/crypto/x509/v3_audit_id.c', + 'openssl/crypto/x509/v3_authattid.c', + 'openssl/crypto/x509/v3_battcons.c', 'openssl/crypto/x509/v3_bcons.c', 'openssl/crypto/x509/v3_bitst.c', 'openssl/crypto/x509/v3_conf.c', @@ -713,12 +815,17 @@ 'openssl/crypto/x509/v3_enum.c', 'openssl/crypto/x509/v3_extku.c', 'openssl/crypto/x509/v3_genn.c', + 'openssl/crypto/x509/v3_group_ac.c', 'openssl/crypto/x509/v3_ia5.c', + 'openssl/crypto/x509/v3_ind_iss.c', 'openssl/crypto/x509/v3_info.c', 'openssl/crypto/x509/v3_int.c', + 'openssl/crypto/x509/v3_iobo.c', 'openssl/crypto/x509/v3_ist.c', 'openssl/crypto/x509/v3_lib.c', 'openssl/crypto/x509/v3_ncons.c', + 'openssl/crypto/x509/v3_no_ass.c', + 'openssl/crypto/x509/v3_no_rev_avail.c', 'openssl/crypto/x509/v3_pci.c', 'openssl/crypto/x509/v3_pcia.c', 'openssl/crypto/x509/v3_pcons.c', @@ -726,13 +833,20 @@ 'openssl/crypto/x509/v3_pmaps.c', 'openssl/crypto/x509/v3_prn.c', 'openssl/crypto/x509/v3_purp.c', + 'openssl/crypto/x509/v3_rolespec.c', 'openssl/crypto/x509/v3_san.c', + 'openssl/crypto/x509/v3_sda.c', + 'openssl/crypto/x509/v3_single_use.c', 'openssl/crypto/x509/v3_skid.c', + 'openssl/crypto/x509/v3_soa_id.c', 'openssl/crypto/x509/v3_sxnet.c', + 'openssl/crypto/x509/v3_timespec.c', 'openssl/crypto/x509/v3_tlsf.c', + 'openssl/crypto/x509/v3_usernotice.c', 'openssl/crypto/x509/v3_utf8.c', 'openssl/crypto/x509/v3_utl.c', 'openssl/crypto/x509/v3err.c', + 'openssl/crypto/x509/x509_acert.c', 'openssl/crypto/x509/x509_att.c', 'openssl/crypto/x509/x509_cmp.c', 'openssl/crypto/x509/x509_d2.c', @@ -750,6 +864,7 @@ 'openssl/crypto/x509/x509_v3.c', 'openssl/crypto/x509/x509_vfy.c', 'openssl/crypto/x509/x509_vpm.c', + 'openssl/crypto/x509/x509aset.c', 'openssl/crypto/x509/x509cset.c', 'openssl/crypto/x509/x509name.c', 'openssl/crypto/x509/x509rset.c', @@ -759,6 +874,7 @@ 'openssl/crypto/x509/x_attrib.c', 'openssl/crypto/x509/x_crl.c', 'openssl/crypto/x509/x_exten.c', + 'openssl/crypto/x509/x_ietfatt.c', 'openssl/crypto/x509/x_name.c', 'openssl/crypto/x509/x_pubkey.c', 'openssl/crypto/x509/x_req.c', @@ -791,6 +907,9 @@ 'openssl/providers/implementations/ciphers/cipher_aes_ccm_hw.c', 'openssl/providers/implementations/ciphers/cipher_aes_gcm.c', 'openssl/providers/implementations/ciphers/cipher_aes_gcm_hw.c', + 'openssl/providers/implementations/ciphers/cipher_aes_gcm_siv.c', + 'openssl/providers/implementations/ciphers/cipher_aes_gcm_siv_hw.c', + 'openssl/providers/implementations/ciphers/cipher_aes_gcm_siv_polyval.c', 'openssl/providers/implementations/ciphers/cipher_aes_hw.c', 'openssl/providers/implementations/ciphers/cipher_aes_ocb.c', 'openssl/providers/implementations/ciphers/cipher_aes_ocb_hw.c', @@ -815,7 +934,13 @@ 'openssl/providers/implementations/ciphers/cipher_cts.c', 'openssl/providers/implementations/ciphers/cipher_null.c', 'openssl/providers/implementations/ciphers/cipher_sm4.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_ccm.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_ccm_hw.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_gcm.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_gcm_hw.c', 'openssl/providers/implementations/ciphers/cipher_sm4_hw.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_xts.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_xts_hw.c', 'openssl/providers/implementations/ciphers/cipher_tdes.c', 'openssl/providers/implementations/ciphers/cipher_tdes_common.c', 'openssl/providers/implementations/ciphers/cipher_tdes_default.c', @@ -844,11 +969,16 @@ 'openssl/providers/implementations/encode_decode/encode_key2ms.c', 'openssl/providers/implementations/encode_decode/encode_key2text.c', 'openssl/providers/implementations/encode_decode/endecoder_common.c', + 'openssl/providers/implementations/encode_decode/ml_common_codecs.c', + 'openssl/providers/implementations/encode_decode/ml_dsa_codecs.c', + 'openssl/providers/implementations/encode_decode/ml_kem_codecs.c', 'openssl/providers/implementations/exchange/dh_exch.c', 'openssl/providers/implementations/exchange/ecdh_exch.c', 'openssl/providers/implementations/exchange/ecx_exch.c', 'openssl/providers/implementations/exchange/kdf_exch.c', + 'openssl/providers/implementations/kdfs/argon2.c', 'openssl/providers/implementations/kdfs/hkdf.c', + 'openssl/providers/implementations/kdfs/hmacdrbg_kdf.c', 'openssl/providers/implementations/kdfs/kbkdf.c', 'openssl/providers/implementations/kdfs/krb5kdf.c', 'openssl/providers/implementations/kdfs/pbkdf2.c', @@ -859,6 +989,11 @@ 'openssl/providers/implementations/kdfs/sskdf.c', 'openssl/providers/implementations/kdfs/tls1_prf.c', 'openssl/providers/implementations/kdfs/x942kdf.c', + 'openssl/providers/implementations/kem/ec_kem.c', + 'openssl/providers/implementations/kem/ecx_kem.c', + 'openssl/providers/implementations/kem/kem_util.c', + 'openssl/providers/implementations/kem/ml_kem_kem.c', + 'openssl/providers/implementations/kem/mlx_kem.c', 'openssl/providers/implementations/kem/rsa_kem.c', 'openssl/providers/implementations/keymgmt/dh_kmgmt.c', 'openssl/providers/implementations/keymgmt/dsa_kmgmt.c', @@ -866,7 +1001,11 @@ 'openssl/providers/implementations/keymgmt/ecx_kmgmt.c', 'openssl/providers/implementations/keymgmt/kdf_legacy_kmgmt.c', 'openssl/providers/implementations/keymgmt/mac_legacy_kmgmt.c', + 'openssl/providers/implementations/keymgmt/ml_dsa_kmgmt.c', + 'openssl/providers/implementations/keymgmt/ml_kem_kmgmt.c', + 'openssl/providers/implementations/keymgmt/mlx_kmgmt.c', 'openssl/providers/implementations/keymgmt/rsa_kmgmt.c', + 'openssl/providers/implementations/keymgmt/slh_dsa_kmgmt.c', 'openssl/providers/implementations/macs/blake2b_mac.c', 'openssl/providers/implementations/macs/blake2s_mac.c', 'openssl/providers/implementations/macs/cmac_prov.c', @@ -875,12 +1014,12 @@ 'openssl/providers/implementations/macs/kmac_prov.c', 'openssl/providers/implementations/macs/poly1305_prov.c', 'openssl/providers/implementations/macs/siphash_prov.c', - 'openssl/providers/implementations/rands/crngt.c', 'openssl/providers/implementations/rands/drbg.c', 'openssl/providers/implementations/rands/drbg_ctr.c', 'openssl/providers/implementations/rands/drbg_hash.c', 'openssl/providers/implementations/rands/drbg_hmac.c', 'openssl/providers/implementations/rands/seed_src.c', + 'openssl/providers/implementations/rands/seed_src_jitter.c', 'openssl/providers/implementations/rands/test_rng.c', 'openssl/providers/implementations/rands/seeding/rand_cpu_x86.c', 'openssl/providers/implementations/rands/seeding/rand_tsc.c', @@ -890,17 +1029,23 @@ 'openssl/providers/implementations/signature/ecdsa_sig.c', 'openssl/providers/implementations/signature/eddsa_sig.c', 'openssl/providers/implementations/signature/mac_legacy_sig.c', + 'openssl/providers/implementations/signature/ml_dsa_sig.c', 'openssl/providers/implementations/signature/rsa_sig.c', + 'openssl/providers/implementations/signature/slh_dsa_sig.c', 'openssl/providers/implementations/signature/sm2_sig.c', + 'openssl/providers/implementations/skeymgmt/aes_skmgmt.c', + 'openssl/providers/implementations/skeymgmt/generic.c', 'openssl/providers/implementations/storemgmt/file_store.c', 'openssl/providers/implementations/storemgmt/file_store_any2obj.c', - 'openssl/ssl/s3_cbc.c', + 'openssl/ssl/record/methods/ssl3_cbc.c', 'openssl/providers/common/der/der_dsa_key.c', 'openssl/providers/common/der/der_dsa_sig.c', 'openssl/providers/common/der/der_ec_key.c', 'openssl/providers/common/der/der_ec_sig.c', 'openssl/providers/common/der/der_ecx_key.c', + 'openssl/providers/common/der/der_ml_dsa_key.c', 'openssl/providers/common/der/der_rsa_key.c', + 'openssl/providers/common/der/der_slh_dsa_key.c', 'openssl/providers/common/provider_ctx.c', 'openssl/providers/common/provider_err.c', 'openssl/providers/implementations/ciphers/ciphercommon.c', @@ -911,7 +1056,7 @@ 'openssl/providers/implementations/ciphers/ciphercommon_gcm_hw.c', 'openssl/providers/implementations/ciphers/ciphercommon_hw.c', 'openssl/providers/implementations/digests/digestcommon.c', - 'openssl/ssl/record/tls_pad.c', + 'openssl/ssl/record/methods/tls_pad.c', 'openssl/providers/implementations/ciphers/cipher_blowfish.c', 'openssl/providers/implementations/ciphers/cipher_blowfish_hw.c', 'openssl/providers/implementations/ciphers/cipher_cast5.c', @@ -936,6 +1081,7 @@ 'openssl/providers/implementations/digests/ripemd_prov.c', 'openssl/providers/implementations/digests/wp_prov.c', 'openssl/providers/implementations/kdfs/pbkdf1.c', + 'openssl/providers/implementations/kdfs/pvkkdf.c', 'openssl/providers/prov_running.c', 'openssl/providers/legacyprov.c', ], @@ -953,6 +1099,7 @@ './config/archs/BSD-x86/asm_avx2/crypto/des/crypt586.S', './config/archs/BSD-x86/asm_avx2/crypto/des/des-586.S', './config/archs/BSD-x86/asm_avx2/crypto/ec/ecp_nistz256-x86.S', + './config/archs/BSD-x86/asm_avx2/crypto/params_idx.c', './config/archs/BSD-x86/asm_avx2/crypto/x86cpuid.S', './config/archs/BSD-x86/asm_avx2/crypto/md5/md5-586.S', './config/archs/BSD-x86/asm_avx2/crypto/modes/ghash-x86.S', @@ -969,7 +1116,9 @@ './config/archs/BSD-x86/asm_avx2/providers/common/der/der_dsa_gen.c', './config/archs/BSD-x86/asm_avx2/providers/common/der/der_ec_gen.c', './config/archs/BSD-x86/asm_avx2/providers/common/der/der_ecx_gen.c', + './config/archs/BSD-x86/asm_avx2/providers/common/der/der_ml_dsa_gen.c', './config/archs/BSD-x86/asm_avx2/providers/common/der/der_rsa_gen.c', + './config/archs/BSD-x86/asm_avx2/providers/common/der/der_slh_dsa_gen.c', './config/archs/BSD-x86/asm_avx2/providers/common/der/der_wrap_gen.c', './config/archs/BSD-x86/asm_avx2/providers/legacy.ld', './config/archs/BSD-x86/asm_avx2/providers/fips.ld', diff --git a/deps/openssl/config/archs/BSD-x86/asm_avx2/providers/common/der/der_ml_dsa_gen.c b/deps/openssl/config/archs/BSD-x86/asm_avx2/providers/common/der/der_ml_dsa_gen.c new file mode 100644 index 00000000000000..4a8a113a268578 --- /dev/null +++ b/deps/openssl/config/archs/BSD-x86/asm_avx2/providers/common/der/der_ml_dsa_gen.c @@ -0,0 +1,37 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from providers/common/der/der_ml_dsa_gen.c.in + * + * Copyright 2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include "prov/der_ml_dsa.h" + +/* Well known OIDs precompiled */ + +/* + * id-ml-dsa-44 OBJECT IDENTIFIER ::= { sigAlgs 17 } + */ +const unsigned char ossl_der_oid_id_ml_dsa_44[DER_OID_SZ_id_ml_dsa_44] = { + DER_OID_V_id_ml_dsa_44 +}; + +/* + * id-ml-dsa-65 OBJECT IDENTIFIER ::= { sigAlgs 18 } + */ +const unsigned char ossl_der_oid_id_ml_dsa_65[DER_OID_SZ_id_ml_dsa_65] = { + DER_OID_V_id_ml_dsa_65 +}; + +/* + * id-ml-dsa-87 OBJECT IDENTIFIER ::= { sigAlgs 19 } + */ +const unsigned char ossl_der_oid_id_ml_dsa_87[DER_OID_SZ_id_ml_dsa_87] = { + DER_OID_V_id_ml_dsa_87 +}; + diff --git a/deps/openssl/config/archs/BSD-x86/asm_avx2/providers/common/der/der_slh_dsa_gen.c b/deps/openssl/config/archs/BSD-x86/asm_avx2/providers/common/der/der_slh_dsa_gen.c new file mode 100644 index 00000000000000..1419a9515097dd --- /dev/null +++ b/deps/openssl/config/archs/BSD-x86/asm_avx2/providers/common/der/der_slh_dsa_gen.c @@ -0,0 +1,100 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from providers/common/der/der_slh_dsa_gen.c.in + * + * Copyright 2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include "prov/der_slh_dsa.h" + +/* Well known OIDs precompiled */ + +/* + * id-slh-dsa-sha2-128s OBJECT IDENTIFIER ::= { sigAlgs 20 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_128s[DER_OID_SZ_id_slh_dsa_sha2_128s] = { + DER_OID_V_id_slh_dsa_sha2_128s +}; + +/* + * id-slh-dsa-sha2-128f OBJECT IDENTIFIER ::= { sigAlgs 21 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_128f[DER_OID_SZ_id_slh_dsa_sha2_128f] = { + DER_OID_V_id_slh_dsa_sha2_128f +}; + +/* + * id-slh-dsa-sha2-192s OBJECT IDENTIFIER ::= { sigAlgs 22 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_192s[DER_OID_SZ_id_slh_dsa_sha2_192s] = { + DER_OID_V_id_slh_dsa_sha2_192s +}; + +/* + * id-slh-dsa-sha2-192f OBJECT IDENTIFIER ::= { sigAlgs 23 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_192f[DER_OID_SZ_id_slh_dsa_sha2_192f] = { + DER_OID_V_id_slh_dsa_sha2_192f +}; + +/* + * id-slh-dsa-sha2-256s OBJECT IDENTIFIER ::= { sigAlgs 24 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_256s[DER_OID_SZ_id_slh_dsa_sha2_256s] = { + DER_OID_V_id_slh_dsa_sha2_256s +}; + +/* + * id-slh-dsa-sha2-256f OBJECT IDENTIFIER ::= { sigAlgs 25 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_256f[DER_OID_SZ_id_slh_dsa_sha2_256f] = { + DER_OID_V_id_slh_dsa_sha2_256f +}; + +/* + * id-slh-dsa-shake-128s OBJECT IDENTIFIER ::= { sigAlgs 26 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_128s[DER_OID_SZ_id_slh_dsa_shake_128s] = { + DER_OID_V_id_slh_dsa_shake_128s +}; + +/* + * id-slh-dsa-shake-128f OBJECT IDENTIFIER ::= { sigAlgs 27 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_128f[DER_OID_SZ_id_slh_dsa_shake_128f] = { + DER_OID_V_id_slh_dsa_shake_128f +}; + +/* + * id-slh-dsa-shake-192s OBJECT IDENTIFIER ::= { sigAlgs 28 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_192s[DER_OID_SZ_id_slh_dsa_shake_192s] = { + DER_OID_V_id_slh_dsa_shake_192s +}; + +/* + * id-slh-dsa-shake-192f OBJECT IDENTIFIER ::= { sigAlgs 29 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_192f[DER_OID_SZ_id_slh_dsa_shake_192f] = { + DER_OID_V_id_slh_dsa_shake_192f +}; + +/* + * id-slh-dsa-shake-256s OBJECT IDENTIFIER ::= { sigAlgs 30 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_256s[DER_OID_SZ_id_slh_dsa_shake_256s] = { + DER_OID_V_id_slh_dsa_shake_256s +}; + +/* + * id-slh-dsa-shake-256f OBJECT IDENTIFIER ::= { sigAlgs 31 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_256f[DER_OID_SZ_id_slh_dsa_shake_256f] = { + DER_OID_V_id_slh_dsa_shake_256f +}; + diff --git a/deps/openssl/config/archs/BSD-x86/asm_avx2/providers/common/include/prov/der_ml_dsa.h b/deps/openssl/config/archs/BSD-x86/asm_avx2/providers/common/include/prov/der_ml_dsa.h new file mode 100644 index 00000000000000..c55f780ab4527c --- /dev/null +++ b/deps/openssl/config/archs/BSD-x86/asm_avx2/providers/common/include/prov/der_ml_dsa.h @@ -0,0 +1,40 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from providers/common/include/prov/der_ml_dsa.h.in + * + * Copyright 2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include "internal/der.h" +#include "crypto/ml_dsa.h" + +/* Well known OIDs precompiled */ + +/* + * id-ml-dsa-44 OBJECT IDENTIFIER ::= { sigAlgs 17 } + */ +#define DER_OID_V_id_ml_dsa_44 DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x11 +#define DER_OID_SZ_id_ml_dsa_44 11 +extern const unsigned char ossl_der_oid_id_ml_dsa_44[DER_OID_SZ_id_ml_dsa_44]; + +/* + * id-ml-dsa-65 OBJECT IDENTIFIER ::= { sigAlgs 18 } + */ +#define DER_OID_V_id_ml_dsa_65 DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x12 +#define DER_OID_SZ_id_ml_dsa_65 11 +extern const unsigned char ossl_der_oid_id_ml_dsa_65[DER_OID_SZ_id_ml_dsa_65]; + +/* + * id-ml-dsa-87 OBJECT IDENTIFIER ::= { sigAlgs 19 } + */ +#define DER_OID_V_id_ml_dsa_87 DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x13 +#define DER_OID_SZ_id_ml_dsa_87 11 +extern const unsigned char ossl_der_oid_id_ml_dsa_87[DER_OID_SZ_id_ml_dsa_87]; + + +int ossl_DER_w_algorithmIdentifier_ML_DSA(WPACKET *pkt, int tag, ML_DSA_KEY *key); diff --git a/deps/openssl/config/archs/BSD-x86/asm_avx2/providers/common/include/prov/der_slh_dsa.h b/deps/openssl/config/archs/BSD-x86/asm_avx2/providers/common/include/prov/der_slh_dsa.h new file mode 100644 index 00000000000000..760f8e7699be72 --- /dev/null +++ b/deps/openssl/config/archs/BSD-x86/asm_avx2/providers/common/include/prov/der_slh_dsa.h @@ -0,0 +1,103 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from providers/common/include/prov/der_slh_dsa.h.in + * + * Copyright 2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include "internal/der.h" +#include "crypto/slh_dsa.h" + +/* Well known OIDs precompiled */ + +/* + * id-slh-dsa-sha2-128s OBJECT IDENTIFIER ::= { sigAlgs 20 } + */ +#define DER_OID_V_id_slh_dsa_sha2_128s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x14 +#define DER_OID_SZ_id_slh_dsa_sha2_128s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_128s[DER_OID_SZ_id_slh_dsa_sha2_128s]; + +/* + * id-slh-dsa-sha2-128f OBJECT IDENTIFIER ::= { sigAlgs 21 } + */ +#define DER_OID_V_id_slh_dsa_sha2_128f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x15 +#define DER_OID_SZ_id_slh_dsa_sha2_128f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_128f[DER_OID_SZ_id_slh_dsa_sha2_128f]; + +/* + * id-slh-dsa-sha2-192s OBJECT IDENTIFIER ::= { sigAlgs 22 } + */ +#define DER_OID_V_id_slh_dsa_sha2_192s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x16 +#define DER_OID_SZ_id_slh_dsa_sha2_192s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_192s[DER_OID_SZ_id_slh_dsa_sha2_192s]; + +/* + * id-slh-dsa-sha2-192f OBJECT IDENTIFIER ::= { sigAlgs 23 } + */ +#define DER_OID_V_id_slh_dsa_sha2_192f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x17 +#define DER_OID_SZ_id_slh_dsa_sha2_192f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_192f[DER_OID_SZ_id_slh_dsa_sha2_192f]; + +/* + * id-slh-dsa-sha2-256s OBJECT IDENTIFIER ::= { sigAlgs 24 } + */ +#define DER_OID_V_id_slh_dsa_sha2_256s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x18 +#define DER_OID_SZ_id_slh_dsa_sha2_256s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_256s[DER_OID_SZ_id_slh_dsa_sha2_256s]; + +/* + * id-slh-dsa-sha2-256f OBJECT IDENTIFIER ::= { sigAlgs 25 } + */ +#define DER_OID_V_id_slh_dsa_sha2_256f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x19 +#define DER_OID_SZ_id_slh_dsa_sha2_256f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_256f[DER_OID_SZ_id_slh_dsa_sha2_256f]; + +/* + * id-slh-dsa-shake-128s OBJECT IDENTIFIER ::= { sigAlgs 26 } + */ +#define DER_OID_V_id_slh_dsa_shake_128s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1A +#define DER_OID_SZ_id_slh_dsa_shake_128s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_128s[DER_OID_SZ_id_slh_dsa_shake_128s]; + +/* + * id-slh-dsa-shake-128f OBJECT IDENTIFIER ::= { sigAlgs 27 } + */ +#define DER_OID_V_id_slh_dsa_shake_128f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1B +#define DER_OID_SZ_id_slh_dsa_shake_128f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_128f[DER_OID_SZ_id_slh_dsa_shake_128f]; + +/* + * id-slh-dsa-shake-192s OBJECT IDENTIFIER ::= { sigAlgs 28 } + */ +#define DER_OID_V_id_slh_dsa_shake_192s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1C +#define DER_OID_SZ_id_slh_dsa_shake_192s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_192s[DER_OID_SZ_id_slh_dsa_shake_192s]; + +/* + * id-slh-dsa-shake-192f OBJECT IDENTIFIER ::= { sigAlgs 29 } + */ +#define DER_OID_V_id_slh_dsa_shake_192f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1D +#define DER_OID_SZ_id_slh_dsa_shake_192f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_192f[DER_OID_SZ_id_slh_dsa_shake_192f]; + +/* + * id-slh-dsa-shake-256s OBJECT IDENTIFIER ::= { sigAlgs 30 } + */ +#define DER_OID_V_id_slh_dsa_shake_256s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1E +#define DER_OID_SZ_id_slh_dsa_shake_256s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_256s[DER_OID_SZ_id_slh_dsa_shake_256s]; + +/* + * id-slh-dsa-shake-256f OBJECT IDENTIFIER ::= { sigAlgs 31 } + */ +#define DER_OID_V_id_slh_dsa_shake_256f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1F +#define DER_OID_SZ_id_slh_dsa_shake_256f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_256f[DER_OID_SZ_id_slh_dsa_shake_256f]; + + +int ossl_DER_w_algorithmIdentifier_SLH_DSA(WPACKET *pkt, int tag, SLH_DSA_KEY *key); diff --git a/deps/openssl/config/archs/BSD-x86/no-asm/apps/progs.c b/deps/openssl/config/archs/BSD-x86/no-asm/apps/progs.c index 43cef00799b86e..acc204a3e6e781 100644 --- a/deps/openssl/config/archs/BSD-x86/no-asm/apps/progs.c +++ b/deps/openssl/config/archs/BSD-x86/no-asm/apps/progs.c @@ -89,6 +89,7 @@ FUNCTION functions[] = { {FT_general, "s_time", s_time_main, s_time_options, NULL, NULL}, #endif {FT_general, "sess_id", sess_id_main, sess_id_options, NULL, NULL}, + {FT_general, "skeyutl", skeyutl_main, skeyutl_options, NULL, NULL}, {FT_general, "smime", smime_main, smime_options, NULL, NULL}, {FT_general, "speed", speed_main, speed_options, NULL, NULL}, {FT_general, "spkac", spkac_main, spkac_options, NULL, NULL}, @@ -225,9 +226,15 @@ FUNCTION functions[] = { {FT_cipher, "camellia-256-ecb", enc_main, enc_options, NULL}, #endif {FT_cipher, "base64", enc_main, enc_options, NULL}, -#ifdef ZLIB +#ifndef OPENSSL_NO_ZLIB {FT_cipher, "zlib", enc_main, enc_options, NULL}, #endif +#ifndef OPENSSL_NO_BROTLI + {FT_cipher, "brotli", enc_main, enc_options, NULL}, +#endif +#ifndef OPENSSL_NO_ZSTD + {FT_cipher, "zstd", enc_main, enc_options, NULL}, +#endif #ifndef OPENSSL_NO_DES {FT_cipher, "des", enc_main, enc_options, NULL}, #endif diff --git a/deps/openssl/config/archs/BSD-x86/no-asm/configdata.pm b/deps/openssl/config/archs/BSD-x86/no-asm/configdata.pm index 867ed934bdccc1..12f21f9bb1709d 100644 --- a/deps/openssl/config/archs/BSD-x86/no-asm/configdata.pm +++ b/deps/openssl/config/archs/BSD-x86/no-asm/configdata.pm @@ -18,6 +18,7 @@ our %config = ( "ARFLAGS" => [ "qc" ], + "ASFLAGS" => [], "CC" => "cc", "CFLAGS" => [ "-Wall -O3 -fomit-frame-pointer" @@ -27,14 +28,16 @@ our %config = ( "CPPINCLUDES" => [], "CXXFLAGS" => [], "FIPSKEY" => "f4556650ac31d35461610bac4ed81b1a181b2d8a43ea2854cbae22ca74560813", + "FIPS_VENDOR" => "OpenSSL FIPS Provider", "HASHBANGPERL" => "/usr/bin/env perl", "LDFLAGS" => [], "LDLIBS" => [], + "OBJCOPY" => "objcopy", "PERL" => "/usr/bin/perl", "RANLIB" => "ranlib", "RC" => "windres", "RCFLAGS" => [], - "api" => "30000", + "api" => "30500", "b32" => "1", "b64" => "0", "b64l" => "0", @@ -56,11 +59,13 @@ our %config = ( "doc/build.info", "test/build.info", "engines/build.info", + "exporters/build.info", "crypto/objects/build.info", "crypto/buffer/build.info", "crypto/bio/build.info", "crypto/stack/build.info", "crypto/lhash/build.info", + "crypto/hashtable/build.info", "crypto/rand/build.info", "crypto/evp/build.info", "crypto/asn1/build.info", @@ -78,6 +83,7 @@ our %config = ( "crypto/md5/build.info", "crypto/sha/build.info", "crypto/mdc2/build.info", + "crypto/ml_kem/build.info", "crypto/hmac/build.info", "crypto/ripemd/build.info", "crypto/whrlpool/build.info", @@ -119,11 +125,19 @@ our %config = ( "crypto/cmp/build.info", "crypto/encode_decode/build.info", "crypto/ffc/build.info", + "crypto/hpke/build.info", + "crypto/thread/build.info", + "crypto/ml_dsa/build.info", + "crypto/slh_dsa/build.info", + "ssl/record/build.info", + "ssl/rio/build.info", + "ssl/quic/build.info", "apps/lib/build.info", "providers/common/build.info", "providers/implementations/build.info", "providers/fips/build.info", "doc/man1/build.info", + "ssl/record/methods/build.info", "providers/common/der/build.info", "providers/implementations/digests/build.info", "providers/implementations/ciphers/build.info", @@ -137,6 +151,7 @@ our %config = ( "providers/implementations/encode_decode/build.info", "providers/implementations/storemgmt/build.info", "providers/implementations/kem/build.info", + "providers/implementations/skeymgmt/build.info", "providers/implementations/rands/seeding/build.info" ], "build_metadata" => "", @@ -154,7 +169,7 @@ our %config = ( ], "dynamic_engines" => "0", "ex_libs" => [], - "full_version" => "3.0.17", + "full_version" => "3.5.1", "includes" => [], "lflags" => [], "lib_defines" => [ @@ -163,9 +178,9 @@ our %config = ( "libdir" => "", "major" => "3", "makedep_scheme" => "gcc", - "minor" => "0", + "minor" => "5", "openssl_api_defines" => [ - "OPENSSL_CONFIGURED_API=30000" + "OPENSSL_CONFIGURED_API=30500" ], "openssl_feature_defines" => [ "OPENSSL_RAND_SEED_OS", @@ -173,27 +188,42 @@ our %config = ( "OPENSSL_NO_AFALGENG", "OPENSSL_NO_ASAN", "OPENSSL_NO_ASM", + "OPENSSL_NO_BROTLI", + "OPENSSL_NO_BROTLI_DYNAMIC", "OPENSSL_NO_COMP", "OPENSSL_NO_CRYPTO_MDEBUG", "OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE", + "OPENSSL_NO_DEMOS", "OPENSSL_NO_EC_NISTP_64_GCC_128", "OPENSSL_NO_EGD", "OPENSSL_NO_EXTERNAL_TESTS", + "OPENSSL_NO_FIPS_JITTER", "OPENSSL_NO_FUZZ_AFL", "OPENSSL_NO_FUZZ_LIBFUZZER", + "OPENSSL_NO_H3DEMO", + "OPENSSL_NO_HQINTEROP", + "OPENSSL_NO_JITTER", "OPENSSL_NO_KTLS", "OPENSSL_NO_LOADERENG", "OPENSSL_NO_MD2", "OPENSSL_NO_MSAN", + "OPENSSL_NO_PIE", "OPENSSL_NO_RC5", "OPENSSL_NO_SCTP", "OPENSSL_NO_SSL3", "OPENSSL_NO_SSL3_METHOD", + "OPENSSL_NO_SSLKEYLOG", + "OPENSSL_NO_TFO", "OPENSSL_NO_TRACE", "OPENSSL_NO_UBSAN", "OPENSSL_NO_UNIT_TEST", "OPENSSL_NO_UPLINK", "OPENSSL_NO_WEAK_SSL_CIPHERS", + "OPENSSL_NO_WINSTORE", + "OPENSSL_NO_ZLIB", + "OPENSSL_NO_ZLIB_DYNAMIC", + "OPENSSL_NO_ZSTD", + "OPENSSL_NO_ZSTD_DYNAMIC", "OPENSSL_NO_DYNAMIC_ENGINE" ], "openssl_other_defines" => [ @@ -201,11 +231,11 @@ our %config = ( ], "openssl_sys_defines" => [], "openssldir" => "", - "options" => "enable-ssl-trace enable-fips no-afalgeng no-asan no-asm no-buildtest-c++ no-comp no-crypto-mdebug no-crypto-mdebug-backtrace no-dynamic-engine no-ec_nistp_64_gcc_128 no-egd no-external-tests no-fuzz-afl no-fuzz-libfuzzer no-ktls no-loadereng no-md2 no-msan no-rc5 no-sctp no-shared no-ssl3 no-ssl3-method no-trace no-ubsan no-unit-test no-uplink no-weak-ssl-ciphers no-zlib no-zlib-dynamic", - "patch" => "17", + "options" => "enable-ssl-trace enable-fips no-afalgeng no-asan no-asm no-brotli no-brotli-dynamic no-buildtest-c++ no-comp no-crypto-mdebug no-crypto-mdebug-backtrace no-demos no-dynamic-engine no-ec_nistp_64_gcc_128 no-egd no-external-tests no-fips-jitter no-fuzz-afl no-fuzz-libfuzzer no-h3demo no-hqinterop no-jitter no-ktls no-loadereng no-md2 no-msan no-pie no-rc5 no-sctp no-shared no-ssl3 no-ssl3-method no-sslkeylog no-tfo no-trace no-ubsan no-unit-test no-uplink no-weak-ssl-ciphers no-winstore no-zlib no-zlib-dynamic no-zstd no-zstd-dynamic", + "patch" => "1", "perl_archname" => "x86_64-linux-gnu-thread-multi", "perl_cmd" => "/usr/bin/perl", - "perl_version" => "5.38.2", + "perl_version" => "5.34.0", "perlargv" => [ "no-comp", "no-shared", @@ -236,6 +266,7 @@ our %config = ( "LDLIBS" => undef, "MT" => undef, "MTFLAGS" => undef, + "OBJCOPY" => undef, "OPENSSL_LOCAL_CONFIG_DIR" => undef, "PERL" => undef, "RANLIB" => undef, @@ -259,7 +290,7 @@ our %config = ( "shlib_version" => "3", "sourcedir" => ".", "target" => "BSD-x86", - "version" => "3.0.17" + "version" => "3.5.1" ); our %target = ( "AR" => "ar", @@ -267,6 +298,7 @@ our %target = ( "CC" => "cc", "CFLAGS" => "-Wall -O3 -fomit-frame-pointer", "HASHBANGPERL" => "/usr/bin/env perl", + "OBJCOPY" => "objcopy", "RANLIB" => "ranlib", "RC" => "windres", "_conf_fname_int" => [ @@ -277,6 +309,8 @@ our %target = ( "Configurations/shared-info.pl" ], "asm_arch" => "x86", + "bin_cflags" => "", + "bin_lflags" => "", "bn_ops" => "BN_LLONG", "build_file" => "Makefile", "build_scheme" => [ @@ -320,6 +354,8 @@ our %target = ( our @disablables = ( "acvp-tests", "afalgeng", + "apps", + "argon2", "aria", "asan", "asm", @@ -330,11 +366,14 @@ our @disablables = ( "autoload-config", "bf", "blake2", + "brotli", + "brotli-dynamic", "buildtest-c++", "bulk", "cached-fetch", "camellia", "capieng", + "winstore", "cast", "chacha", "cmac", @@ -343,11 +382,16 @@ our @disablables = ( "comp", "crypto-mdebug", "ct", + "default-thread-pool", + "demos", + "h3demo", + "hqinterop", "deprecated", "des", "devcryptoeng", "dgram", "dh", + "docs", "dsa", "dso", "dtls", @@ -357,6 +401,7 @@ our @disablables = ( "ec_nistp_64_gcc_128", "ecdh", "ecdsa", + "ecx", "egd", "engine", "err", @@ -364,10 +409,15 @@ our @disablables = ( "filenames", "fips", "fips-securitychecks", + "fips-post", + "fips-jitter", "fuzz-afl", "fuzz-libfuzzer", "gost", + "http", "idea", + "integrity-only-ciphers", + "jitter", "ktls", "legacy", "loadereng", @@ -375,6 +425,8 @@ our @disablables = ( "md2", "md4", "mdc2", + "ml-dsa", + "ml-kem", "module", "msan", "multiblock", @@ -383,10 +435,13 @@ our @disablables = ( "ocsp", "padlockeng", "pic", + "pie", "pinshared", "poly1305", "posix-io", "psk", + "quic", + "unstable-qlog", "rc2", "rc4", "rc5", @@ -400,7 +455,9 @@ our @disablables = ( "shared", "siphash", "siv", + "slh-dsa", "sm2", + "sm2-precomp", "sm3", "sm4", "sock", @@ -411,9 +468,13 @@ our @disablables = ( "ssl-trace", "static-engine", "stdio", + "sslkeylog", "tests", + "tfo", + "thread-pool", "threads", "tls", + "tls-deprecated-ec", "trace", "ts", "ubsan", @@ -424,6 +485,8 @@ our @disablables = ( "whirlpool", "zlib", "zlib-dynamic", + "zstd", + "zstd-dynamic", "ssl3", "ssl3-method", "tls1", @@ -445,32 +508,45 @@ our %disabled = ( "afalgeng" => "option", "asan" => "default", "asm" => "option", + "brotli" => "default", + "brotli-dynamic" => "default", "buildtest-c++" => "default", "comp" => "option", "crypto-mdebug" => "default", "crypto-mdebug-backtrace" => "default", + "demos" => "default", "dynamic-engine" => "cascade", "ec_nistp_64_gcc_128" => "default", "egd" => "default", "external-tests" => "default", + "fips-jitter" => "default", "fuzz-afl" => "default", "fuzz-libfuzzer" => "default", + "h3demo" => "default", + "hqinterop" => "default", + "jitter" => "default", "ktls" => "default", "loadereng" => "cascade", "md2" => "default", "msan" => "default", + "pie" => "default", "rc5" => "default", "sctp" => "default", "shared" => "option", "ssl3" => "default", "ssl3-method" => "default", + "sslkeylog" => "default", + "tfo" => "default", "trace" => "default", "ubsan" => "default", "unit-test" => "default", "uplink" => "no uplink_arch", "weak-ssl-ciphers" => "default", + "winstore" => "not-windows", "zlib" => "default", - "zlib-dynamic" => "default" + "zlib-dynamic" => "default", + "zstd" => "default", + "zstd-dynamic" => "default" ); our %withargs = (); our %unified_info = ( @@ -696,6 +772,11 @@ our %unified_info = ( "pod" => "1" } }, + "doc/man1/openssl-skeyutl.pod" => { + "doc/man1/openssl-skeyutl.pod.in" => { + "pod" => "1" + } + }, "doc/man1/openssl-smime.pod" => { "doc/man1/openssl-smime.pod.in" => { "pod" => "1" @@ -753,6 +834,21 @@ our %unified_info = ( } }, "generate" => { + "exporters/OpenSSLConfig.cmake" => { + "exporter" => "cmake" + }, + "exporters/OpenSSLConfigVersion.cmake" => { + "exporter" => "cmake" + }, + "exporters/libcrypto.pc" => { + "exporter" => "pkg-config" + }, + "exporters/libssl.pc" => { + "exporter" => "pkg-config" + }, + "exporters/openssl.pc" => { + "exporter" => "pkg-config" + }, "include/openssl/configuration.h" => { "skip" => "1" } @@ -773,6 +869,9 @@ our %unified_info = ( "providers/liblegacy.a" => { "noinst" => "1" }, + "providers/libtemplate.a" => { + "noinst" => "1" + }, "test/libtestutil.a" => { "has_main" => "1", "noinst" => "1" @@ -790,6 +889,9 @@ our %unified_info = ( } }, "programs" => { + "fuzz/acert-test" => { + "noinst" => "1" + }, "fuzz/asn1-test" => { "noinst" => "1" }, @@ -820,9 +922,60 @@ our %unified_info = ( "fuzz/ct-test" => { "noinst" => "1" }, + "fuzz/decoder-test" => { + "noinst" => "1" + }, + "fuzz/dtlsclient-test" => { + "noinst" => "1" + }, + "fuzz/dtlsserver-test" => { + "noinst" => "1" + }, + "fuzz/hashtable-test" => { + "noinst" => "1" + }, + "fuzz/ml-dsa-test" => { + "noinst" => "1" + }, + "fuzz/ml-kem-test" => { + "noinst" => "1" + }, + "fuzz/pem-test" => { + "noinst" => "1" + }, + "fuzz/provider-test" => { + "noinst" => "1" + }, + "fuzz/punycode-test" => { + "noinst" => "1" + }, + "fuzz/quic-client-test" => { + "noinst" => "1" + }, + "fuzz/quic-lcidm-test" => { + "noinst" => "1" + }, + "fuzz/quic-rcidm-test" => { + "noinst" => "1" + }, + "fuzz/quic-server-test" => { + "noinst" => "1" + }, + "fuzz/quic-srtm-test" => { + "noinst" => "1" + }, "fuzz/server-test" => { "noinst" => "1" }, + "fuzz/slh-dsa-test" => { + "noinst" => "1" + }, + "fuzz/smime-test" => { + "noinst" => "1" + }, + "fuzz/v3name-test" => { + "noinst" => "1" + }, "fuzz/x509-test" => { "noinst" => "1" }, @@ -874,18 +1027,30 @@ our %unified_info = ( "test/bftest" => { "noinst" => "1" }, + "test/bio_addr_test" => { + "noinst" => "1" + }, + "test/bio_base64_test" => { + "noinst" => "1" + }, "test/bio_callback_test" => { "noinst" => "1" }, "test/bio_core_test" => { "noinst" => "1" }, + "test/bio_dgram_test" => { + "noinst" => "1" + }, "test/bio_enc_test" => { "noinst" => "1" }, "test/bio_memleak_test" => { "noinst" => "1" }, + "test/bio_meth_test" => { + "noinst" => "1" + }, "test/bio_prefix_text" => { "noinst" => "1" }, @@ -895,6 +1060,9 @@ our %unified_info = ( "test/bio_readbuffer_test" => { "noinst" => "1" }, + "test/bio_tfo_test" => { + "noinst" => "1" + }, "test/bioprinttest" => { "noinst" => "1" }, @@ -904,6 +1072,9 @@ our %unified_info = ( "test/bntest" => { "noinst" => "1" }, + "test/build_wincrypt_test" => { + "noinst" => "1" + }, "test/buildtest_c_aes" => { "noinst" => "1" }, @@ -919,6 +1090,9 @@ our %unified_info = ( "test/buildtest_c_buffer" => { "noinst" => "1" }, + "test/buildtest_c_byteorder" => { + "noinst" => "1" + }, "test/buildtest_c_camellia" => { "noinst" => "1" }, @@ -943,9 +1117,6 @@ our %unified_info = ( "test/buildtest_c_core_dispatch" => { "noinst" => "1" }, - "test/buildtest_c_core_names" => { - "noinst" => "1" - }, "test/buildtest_c_core_object" => { "noinst" => "1" }, @@ -970,6 +1141,9 @@ our %unified_info = ( "test/buildtest_c_e_os2" => { "noinst" => "1" }, + "test/buildtest_c_e_ostime" => { + "noinst" => "1" + }, "test/buildtest_c_ebcdic" => { "noinst" => "1" }, @@ -997,12 +1171,18 @@ our %unified_info = ( "test/buildtest_c_hmac" => { "noinst" => "1" }, + "test/buildtest_c_hpke" => { + "noinst" => "1" + }, "test/buildtest_c_http" => { "noinst" => "1" }, "test/buildtest_c_idea" => { "noinst" => "1" }, + "test/buildtest_c_indicator" => { + "noinst" => "1" + }, "test/buildtest_c_kdf" => { "noinst" => "1" }, @@ -1018,6 +1198,9 @@ our %unified_info = ( "test/buildtest_c_mdc2" => { "noinst" => "1" }, + "test/buildtest_c_ml_kem" => { + "noinst" => "1" + }, "test/buildtest_c_modes" => { "noinst" => "1" }, @@ -1048,6 +1231,9 @@ our %unified_info = ( "test/buildtest_c_provider" => { "noinst" => "1" }, + "test/buildtest_c_quic" => { + "noinst" => "1" + }, "test/buildtest_c_rand" => { "noinst" => "1" }, @@ -1090,6 +1276,9 @@ our %unified_info = ( "test/buildtest_c_symhacks" => { "noinst" => "1" }, + "test/buildtest_c_thread" => { + "noinst" => "1" + }, "test/buildtest_c_tls1" => { "noinst" => "1" }, @@ -1105,6 +1294,12 @@ our %unified_info = ( "test/buildtest_c_whrlpool" => { "noinst" => "1" }, + "test/byteorder_test" => { + "noinst" => "1" + }, + "test/ca_internals_test" => { + "noinst" => "1" + }, "test/casttest" => { "noinst" => "1" }, @@ -1189,6 +1384,9 @@ our %unified_info = ( "test/danetest" => { "noinst" => "1" }, + "test/decoder_propq_test" => { + "noinst" => "1" + }, "test/defltfips_test" => { "noinst" => "1" }, @@ -1261,15 +1459,24 @@ our %unified_info = ( "test/evp_pkey_ctx_new_from_name" => { "noinst" => "1" }, + "test/evp_pkey_dhkem_test" => { + "noinst" => "1" + }, "test/evp_pkey_dparams_test" => { "noinst" => "1" }, "test/evp_pkey_provided_test" => { "noinst" => "1" }, + "test/evp_skey_test" => { + "noinst" => "1" + }, "test/evp_test" => { "noinst" => "1" }, + "test/evp_xof_test" => { + "noinst" => "1" + }, "test/exdatatest" => { "noinst" => "1" }, @@ -1297,6 +1504,9 @@ our %unified_info = ( "test/hmactest" => { "noinst" => "1" }, + "test/hpke_test" => { + "noinst" => "1" + }, "test/http_test" => { "noinst" => "1" }, @@ -1306,12 +1516,18 @@ our %unified_info = ( "test/igetest" => { "noinst" => "1" }, + "test/json_test" => { + "noinst" => "1" + }, "test/keymgmt_internal_test" => { "noinst" => "1" }, "test/lhash_test" => { "noinst" => "1" }, + "test/list_test" => { + "noinst" => "1" + }, "test/localetest" => { "noinst" => "1" }, @@ -1321,9 +1537,21 @@ our %unified_info = ( "test/mdc2test" => { "noinst" => "1" }, + "test/membio_test" => { + "noinst" => "1" + }, "test/memleaktest" => { "noinst" => "1" }, + "test/ml_dsa_test" => { + "noinst" => "1" + }, + "test/ml_kem_evp_extra_test" => { + "noinst" => "1" + }, + "test/ml_kem_internal_test" => { + "noinst" => "1" + }, "test/modes_internal_test" => { "noinst" => "1" }, @@ -1342,6 +1570,9 @@ our %unified_info = ( "test/packettest" => { "noinst" => "1" }, + "test/pairwise_fail_test" => { + "noinst" => "1" + }, "test/param_build_test" => { "noinst" => "1" }, @@ -1366,6 +1597,9 @@ our %unified_info = ( "test/pemtest" => { "noinst" => "1" }, + "test/pkcs12_api_test" => { + "noinst" => "1" + }, "test/pkcs12_format_test" => { "noinst" => "1" }, @@ -1381,6 +1615,9 @@ our %unified_info = ( "test/poly1305_internal_test" => { "noinst" => "1" }, + "test/priority_queue_test" => { + "noinst" => "1" + }, "test/property_test" => { "noinst" => "1" }, @@ -1390,6 +1627,9 @@ our %unified_info = ( "test/provfetchtest" => { "noinst" => "1" }, + "test/provider_default_search_path_test" => { + "noinst" => "1" + }, "test/provider_fallback_test" => { "noinst" => "1" }, @@ -1408,6 +1648,72 @@ our %unified_info = ( "test/punycode_test" => { "noinst" => "1" }, + "test/quic_ackm_test" => { + "noinst" => "1" + }, + "test/quic_cc_test" => { + "noinst" => "1" + }, + "test/quic_cfq_test" => { + "noinst" => "1" + }, + "test/quic_client_test" => { + "noinst" => "1" + }, + "test/quic_fc_test" => { + "noinst" => "1" + }, + "test/quic_fifd_test" => { + "noinst" => "1" + }, + "test/quic_lcidm_test" => { + "noinst" => "1" + }, + "test/quic_multistream_test" => { + "noinst" => "1" + }, + "test/quic_newcid_test" => { + "noinst" => "1" + }, + "test/quic_qlog_test" => { + "noinst" => "1" + }, + "test/quic_radix_test" => { + "noinst" => "1" + }, + "test/quic_rcidm_test" => { + "noinst" => "1" + }, + "test/quic_record_test" => { + "noinst" => "1" + }, + "test/quic_srt_gen_test" => { + "noinst" => "1" + }, + "test/quic_srtm_test" => { + "noinst" => "1" + }, + "test/quic_stream_test" => { + "noinst" => "1" + }, + "test/quic_tserver_test" => { + "noinst" => "1" + }, + "test/quic_txp_test" => { + "noinst" => "1" + }, + "test/quic_txpim_test" => { + "noinst" => "1" + }, + "test/quic_wire_test" => { + "noinst" => "1" + }, + "test/quicapitest" => { + "noinst" => "1" + }, + "test/quicfaultstest" => { + "noinst" => "1" + }, "test/rand_status_test" => { "noinst" => "1" }, @@ -1423,12 +1729,15 @@ our %unified_info = ( "test/rc5test" => { "noinst" => "1" }, - "test/rdrand_sanitytest" => { + "test/rdcpu_sanitytest" => { "noinst" => "1" }, "test/recordlentest" => { "noinst" => "1" }, + "test/rpktest" => { + "noinst" => "1" + }, "test/rsa_complex" => { "noinst" => "1" }, @@ -1441,6 +1750,12 @@ our %unified_info = ( "test/rsa_test" => { "noinst" => "1" }, + "test/rsa_x931_test" => { + "noinst" => "1" + }, + "test/safe_math_test" => { + "noinst" => "1" + }, "test/sanitytest" => { "noinst" => "1" }, @@ -1456,6 +1771,9 @@ our %unified_info = ( "test/siphash_internal_test" => { "noinst" => "1" }, + "test/slh_dsa_test" => { + "noinst" => "1" + }, "test/sm2_internal_test" => { "noinst" => "1" }, @@ -1477,6 +1795,9 @@ our %unified_info = ( "test/ssl_ctx_test" => { "noinst" => "1" }, + "test/ssl_handshake_rtt_test" => { + "noinst" => "1" + }, "test/ssl_old_test" => { "noinst" => "1" }, @@ -1498,12 +1819,18 @@ our %unified_info = ( "test/stack_test" => { "noinst" => "1" }, + "test/strtoultest" => { + "noinst" => "1" + }, "test/sysdefaulttest" => { "noinst" => "1" }, "test/test_test" => { "noinst" => "1" }, + "test/threadpool_test" => { + "noinst" => "1" + }, "test/threadstest" => { "noinst" => "1" }, @@ -1513,12 +1840,18 @@ our %unified_info = ( "test/time_offset_test" => { "noinst" => "1" }, + "test/time_test" => { + "noinst" => "1" + }, "test/tls13ccstest" => { "noinst" => "1" }, "test/tls13encryptiontest" => { "noinst" => "1" }, + "test/tls13groupselection_test" => { + "noinst" => "1" + }, "test/trace_api_test" => { "noinst" => "1" }, @@ -1546,6 +1879,9 @@ our %unified_info = ( "test/wpackettest" => { "noinst" => "1" }, + "test/x509_acert_test" => { + "noinst" => "1" + }, "test/x509_check_cert_pkey_test" => { "noinst" => "1" }, @@ -1555,6 +1891,15 @@ our %unified_info = ( "test/x509_internal_test" => { "noinst" => "1" }, + "test/x509_load_cert_file_test" => { + "noinst" => "1" + }, + "test/x509_req_test" => { + "noinst" => "1" + }, + "test/x509_test" => { + "noinst" => "1" + }, "test/x509_time_test" => { "noinst" => "1" }, @@ -1598,6 +1943,9 @@ our %unified_info = ( "providers/libfips.a" => [ "FIPS_MODULE" ], + "test/endecode_test" => [ + "STATIC_LEGACY" + ], "test/evp_extra_test" => [ "STATIC_LEGACY" ], @@ -1610,14 +1958,21 @@ our %unified_info = ( }, "depends" => { "" => [ + "OpenSSLConfigVersion.cmake", + "crypto/params_idx.c", + "exporters/OpenSSLConfigVersion.cmake", + "exporters/openssl.pc", "include/crypto/bn_conf.h", "include/crypto/dso_conf.h", + "include/internal/param_names.h", "include/openssl/asn1.h", "include/openssl/asn1t.h", "include/openssl/bio.h", "include/openssl/cmp.h", "include/openssl/cms.h", + "include/openssl/comp.h", "include/openssl/conf.h", + "include/openssl/core_names.h", "include/openssl/crmf.h", "include/openssl/crypto.h", "include/openssl/ct.h", @@ -1634,10 +1989,22 @@ our %unified_info = ( "include/openssl/ssl.h", "include/openssl/ui.h", "include/openssl/x509.h", + "include/openssl/x509_acert.h", "include/openssl/x509_vfy.h", "include/openssl/x509v3.h", + "openssl.pc", "test/provider_internal_test.cnf" ], + "OpenSSLConfig.cmake" => [ + "builddata.pm" + ], + "OpenSSLConfigVersion.cmake" => [ + "OpenSSLConfig.cmake", + "builddata.pm" + ], + "apps/ca_internals_test-bin-ca.o" => [ + "apps/progs.h" + ], "apps/lib/cmp_client_test-bin-cmp_mock_srv.o" => [ "apps/progs.h" ], @@ -1783,6 +2150,9 @@ our %unified_info = ( "apps/openssl-bin-sess_id.o" => [ "apps/progs.h" ], + "apps/openssl-bin-skeyutl.o" => [ + "apps/progs.h" + ], "apps/openssl-bin-smime.o" => [ "apps/progs.h" ], @@ -1871,6 +2241,9 @@ our %unified_info = ( "crypto/libcrypto-lib-info.o" => [ "crypto/buildinf.h" ], + "crypto/params_idx.c" => [ + "util/perl|OpenSSL/paramnames.pm" + ], "crypto/rc4/rc4-586.S" => [ "crypto/perlasm/x86asm.pl" ], @@ -2036,6 +2409,9 @@ our %unified_info = ( "doc/html/man1/openssl-sess_id.html" => [ "doc/man1/openssl-sess_id.pod" ], + "doc/html/man1/openssl-skeyutl.html" => [ + "doc/man1/openssl-skeyutl.pod" + ], "doc/html/man1/openssl-smime.html" => [ "doc/man1/openssl-smime.pod" ], @@ -2177,6 +2553,9 @@ our %unified_info = ( "doc/html/man3/BIO_get_ex_new_index.html" => [ "doc/man3/BIO_get_ex_new_index.pod" ], + "doc/html/man3/BIO_get_rpoll_descriptor.html" => [ + "doc/man3/BIO_get_rpoll_descriptor.pod" + ], "doc/html/man3/BIO_meth_new.html" => [ "doc/man3/BIO_meth_new.pod" ], @@ -2213,6 +2592,9 @@ our %unified_info = ( "doc/html/man3/BIO_s_datagram.html" => [ "doc/man3/BIO_s_datagram.pod" ], + "doc/html/man3/BIO_s_dgram_pair.html" => [ + "doc/man3/BIO_s_dgram_pair.pod" + ], "doc/html/man3/BIO_s_fd.html" => [ "doc/man3/BIO_s_fd.pod" ], @@ -2228,6 +2610,9 @@ our %unified_info = ( "doc/html/man3/BIO_s_socket.html" => [ "doc/man3/BIO_s_socket.pod" ], + "doc/html/man3/BIO_sendmmsg.html" => [ + "doc/man3/BIO_sendmmsg.pod" + ], "doc/html/man3/BIO_set_callback.html" => [ "doc/man3/BIO_set_callback.pod" ], @@ -2300,6 +2685,9 @@ our %unified_info = ( "doc/html/man3/BUF_MEM_new.html" => [ "doc/man3/BUF_MEM_new.pod" ], + "doc/html/man3/CMAC_CTX.html" => [ + "doc/man3/CMAC_CTX.pod" + ], "doc/html/man3/CMS_EncryptedData_decrypt.html" => [ "doc/man3/CMS_EncryptedData_decrypt.pod" ], @@ -2366,6 +2754,9 @@ our %unified_info = ( "doc/html/man3/CMS_verify_receipt.html" => [ "doc/man3/CMS_verify_receipt.pod" ], + "doc/html/man3/COMP_CTX_new.html" => [ + "doc/man3/COMP_CTX_new.pod" + ], "doc/html/man3/CONF_modules_free.html" => [ "doc/man3/CONF_modules_free.pod" ], @@ -2465,6 +2856,12 @@ our %unified_info = ( "doc/html/man3/DTLS_set_timer_cb.html" => [ "doc/man3/DTLS_set_timer_cb.pod" ], + "doc/html/man3/DTLSv1_get_timeout.html" => [ + "doc/man3/DTLSv1_get_timeout.pod" + ], + "doc/html/man3/DTLSv1_handle_timeout.html" => [ + "doc/man3/DTLSv1_handle_timeout.pod" + ], "doc/html/man3/DTLSv1_listen.html" => [ "doc/man3/DTLSv1_listen.pod" ], @@ -2603,6 +3000,9 @@ our %unified_info = ( "doc/html/man3/EVP_PKEY_CTX_get0_pkey.html" => [ "doc/man3/EVP_PKEY_CTX_get0_pkey.pod" ], + "doc/html/man3/EVP_PKEY_CTX_get_algor.html" => [ + "doc/man3/EVP_PKEY_CTX_get_algor.pod" + ], "doc/html/man3/EVP_PKEY_CTX_new.html" => [ "doc/man3/EVP_PKEY_CTX_new.pod" ], @@ -2720,6 +3120,12 @@ our %unified_info = ( "doc/html/man3/EVP_SIGNATURE.html" => [ "doc/man3/EVP_SIGNATURE.pod" ], + "doc/html/man3/EVP_SKEY.html" => [ + "doc/man3/EVP_SKEY.pod" + ], + "doc/html/man3/EVP_SKEYMGMT.html" => [ + "doc/man3/EVP_SKEYMGMT.pod" + ], "doc/html/man3/EVP_SealInit.html" => [ "doc/man3/EVP_SealInit.pod" ], @@ -2807,6 +3213,9 @@ our %unified_info = ( "doc/html/man3/EVP_whirlpool.html" => [ "doc/man3/EVP_whirlpool.pod" ], + "doc/html/man3/GENERAL_NAME.html" => [ + "doc/man3/GENERAL_NAME.pod" + ], "doc/html/man3/HMAC.html" => [ "doc/man3/HMAC.pod" ], @@ -2879,9 +3288,15 @@ our %unified_info = ( "doc/html/man3/OPENSSL_load_builtin_modules.html" => [ "doc/man3/OPENSSL_load_builtin_modules.pod" ], + "doc/html/man3/OPENSSL_load_u16_le.html" => [ + "doc/man3/OPENSSL_load_u16_le.pod" + ], "doc/html/man3/OPENSSL_malloc.html" => [ "doc/man3/OPENSSL_malloc.pod" ], + "doc/html/man3/OPENSSL_riscvcap.html" => [ + "doc/man3/OPENSSL_riscvcap.pod" + ], "doc/html/man3/OPENSSL_s390xcap.html" => [ "doc/man3/OPENSSL_s390xcap.pod" ], @@ -2897,12 +3312,18 @@ our %unified_info = ( "doc/html/man3/OSSL_CALLBACK.html" => [ "doc/man3/OSSL_CALLBACK.pod" ], + "doc/html/man3/OSSL_CMP_ATAV_set0.html" => [ + "doc/man3/OSSL_CMP_ATAV_set0.pod" + ], "doc/html/man3/OSSL_CMP_CTX_new.html" => [ "doc/man3/OSSL_CMP_CTX_new.pod" ], "doc/html/man3/OSSL_CMP_HDR_get0_transactionID.html" => [ "doc/man3/OSSL_CMP_HDR_get0_transactionID.pod" ], + "doc/html/man3/OSSL_CMP_ITAV_new_caCerts.html" => [ + "doc/man3/OSSL_CMP_ITAV_new_caCerts.pod" + ], "doc/html/man3/OSSL_CMP_ITAV_set0.html" => [ "doc/man3/OSSL_CMP_ITAV_set0.pod" ], @@ -2972,9 +3393,18 @@ our %unified_info = ( "doc/html/man3/OSSL_ENCODER_to_bio.html" => [ "doc/man3/OSSL_ENCODER_to_bio.pod" ], + "doc/html/man3/OSSL_ERR_STATE_save.html" => [ + "doc/man3/OSSL_ERR_STATE_save.pod" + ], "doc/html/man3/OSSL_ESS_check_signing_certs.html" => [ "doc/man3/OSSL_ESS_check_signing_certs.pod" ], + "doc/html/man3/OSSL_GENERAL_NAMES_print.html" => [ + "doc/man3/OSSL_GENERAL_NAMES_print.pod" + ], + "doc/html/man3/OSSL_HPKE_CTX_new.html" => [ + "doc/man3/OSSL_HPKE_CTX_new.pod" + ], "doc/html/man3/OSSL_HTTP_REQ_CTX.html" => [ "doc/man3/OSSL_HTTP_REQ_CTX.pod" ], @@ -2984,12 +3414,24 @@ our %unified_info = ( "doc/html/man3/OSSL_HTTP_transfer.html" => [ "doc/man3/OSSL_HTTP_transfer.pod" ], + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX.html" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX.pod" + ], + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX_print.html" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX_print.pod" + ], + "doc/html/man3/OSSL_INDICATOR_set_callback.html" => [ + "doc/man3/OSSL_INDICATOR_set_callback.pod" + ], "doc/html/man3/OSSL_ITEM.html" => [ "doc/man3/OSSL_ITEM.pod" ], "doc/html/man3/OSSL_LIB_CTX.html" => [ "doc/man3/OSSL_LIB_CTX.pod" ], + "doc/html/man3/OSSL_LIB_CTX_set_conf_diagnostics.html" => [ + "doc/man3/OSSL_LIB_CTX_set_conf_diagnostics.pod" + ], "doc/html/man3/OSSL_PARAM.html" => [ "doc/man3/OSSL_PARAM.pod" ], @@ -3005,9 +3447,15 @@ our %unified_info = ( "doc/html/man3/OSSL_PARAM_int.html" => [ "doc/man3/OSSL_PARAM_int.pod" ], + "doc/html/man3/OSSL_PARAM_print_to_bio.html" => [ + "doc/man3/OSSL_PARAM_print_to_bio.pod" + ], "doc/html/man3/OSSL_PROVIDER.html" => [ "doc/man3/OSSL_PROVIDER.pod" ], + "doc/html/man3/OSSL_QUIC_client_method.html" => [ + "doc/man3/OSSL_QUIC_client_method.pod" + ], "doc/html/man3/OSSL_SELF_TEST_new.html" => [ "doc/man3/OSSL_SELF_TEST_new.pod" ], @@ -3032,6 +3480,9 @@ our %unified_info = ( "doc/html/man3/OSSL_STORE_open.html" => [ "doc/man3/OSSL_STORE_open.pod" ], + "doc/html/man3/OSSL_sleep.html" => [ + "doc/man3/OSSL_sleep.pod" + ], "doc/html/man3/OSSL_trace_enabled.html" => [ "doc/man3/OSSL_trace_enabled.pod" ], @@ -3047,6 +3498,9 @@ our %unified_info = ( "doc/html/man3/OpenSSL_version.html" => [ "doc/man3/OpenSSL_version.pod" ], + "doc/html/man3/PBMAC1_get1_pbkdf2_param.html" => [ + "doc/man3/PBMAC1_get1_pbkdf2_param.pod" + ], "doc/html/man3/PEM_X509_INFO_read_bio_ex.html" => [ "doc/man3/PEM_X509_INFO_read_bio_ex.pod" ], @@ -3083,6 +3537,9 @@ our %unified_info = ( "doc/html/man3/PKCS12_SAFEBAG_get1_cert.html" => [ "doc/man3/PKCS12_SAFEBAG_get1_cert.pod" ], + "doc/html/man3/PKCS12_SAFEBAG_set0_attrs.html" => [ + "doc/man3/PKCS12_SAFEBAG_set0_attrs.pod" + ], "doc/html/man3/PKCS12_add1_attr_by_NID.html" => [ "doc/man3/PKCS12_add1_attr_by_NID.pod" ], @@ -3356,6 +3813,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set0_CA_list.html" => [ "doc/man3/SSL_CTX_set0_CA_list.pod" ], + "doc/html/man3/SSL_CTX_set1_cert_comp_preference.html" => [ + "doc/man3/SSL_CTX_set1_cert_comp_preference.pod" + ], "doc/html/man3/SSL_CTX_set1_curves.html" => [ "doc/man3/SSL_CTX_set1_curves.pod" ], @@ -3395,6 +3855,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_default_passwd_cb.html" => [ "doc/man3/SSL_CTX_set_default_passwd_cb.pod" ], + "doc/html/man3/SSL_CTX_set_domain_flags.html" => [ + "doc/man3/SSL_CTX_set_domain_flags.pod" + ], "doc/html/man3/SSL_CTX_set_generate_session_id.html" => [ "doc/man3/SSL_CTX_set_generate_session_id.pod" ], @@ -3416,6 +3879,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_msg_callback.html" => [ "doc/man3/SSL_CTX_set_msg_callback.pod" ], + "doc/html/man3/SSL_CTX_set_new_pending_conn_cb.html" => [ + "doc/man3/SSL_CTX_set_new_pending_conn_cb.pod" + ], "doc/html/man3/SSL_CTX_set_num_tickets.html" => [ "doc/man3/SSL_CTX_set_num_tickets.pod" ], @@ -3530,6 +3996,9 @@ our %unified_info = ( "doc/html/man3/SSL_accept.html" => [ "doc/man3/SSL_accept.pod" ], + "doc/html/man3/SSL_accept_stream.html" => [ + "doc/man3/SSL_accept_stream.pod" + ], "doc/html/man3/SSL_alert_type_string.html" => [ "doc/man3/SSL_alert_type_string.pod" ], @@ -3557,9 +4026,21 @@ our %unified_info = ( "doc/html/man3/SSL_free.html" => [ "doc/man3/SSL_free.pod" ], + "doc/html/man3/SSL_get0_connection.html" => [ + "doc/man3/SSL_get0_connection.pod" + ], + "doc/html/man3/SSL_get0_group_name.html" => [ + "doc/man3/SSL_get0_group_name.pod" + ], + "doc/html/man3/SSL_get0_peer_rpk.html" => [ + "doc/man3/SSL_get0_peer_rpk.pod" + ], "doc/html/man3/SSL_get0_peer_scts.html" => [ "doc/man3/SSL_get0_peer_scts.pod" ], + "doc/html/man3/SSL_get1_builtin_sigalgs.html" => [ + "doc/man3/SSL_get1_builtin_sigalgs.pod" + ], "doc/html/man3/SSL_get_SSL_CTX.html" => [ "doc/man3/SSL_get_SSL_CTX.pod" ], @@ -3575,6 +4056,9 @@ our %unified_info = ( "doc/html/man3/SSL_get_client_random.html" => [ "doc/man3/SSL_get_client_random.pod" ], + "doc/html/man3/SSL_get_conn_close_info.html" => [ + "doc/man3/SSL_get_conn_close_info.pod" + ], "doc/html/man3/SSL_get_current_cipher.html" => [ "doc/man3/SSL_get_current_cipher.pod" ], @@ -3584,12 +4068,18 @@ our %unified_info = ( "doc/html/man3/SSL_get_error.html" => [ "doc/man3/SSL_get_error.pod" ], + "doc/html/man3/SSL_get_event_timeout.html" => [ + "doc/man3/SSL_get_event_timeout.pod" + ], "doc/html/man3/SSL_get_extms_support.html" => [ "doc/man3/SSL_get_extms_support.pod" ], "doc/html/man3/SSL_get_fd.html" => [ "doc/man3/SSL_get_fd.pod" ], + "doc/html/man3/SSL_get_handshake_rtt.html" => [ + "doc/man3/SSL_get_handshake_rtt.pod" + ], "doc/html/man3/SSL_get_peer_cert_chain.html" => [ "doc/man3/SSL_get_peer_cert_chain.pod" ], @@ -3608,12 +4098,24 @@ our %unified_info = ( "doc/html/man3/SSL_get_rbio.html" => [ "doc/man3/SSL_get_rbio.pod" ], + "doc/html/man3/SSL_get_rpoll_descriptor.html" => [ + "doc/man3/SSL_get_rpoll_descriptor.pod" + ], "doc/html/man3/SSL_get_session.html" => [ "doc/man3/SSL_get_session.pod" ], "doc/html/man3/SSL_get_shared_sigalgs.html" => [ "doc/man3/SSL_get_shared_sigalgs.pod" ], + "doc/html/man3/SSL_get_stream_id.html" => [ + "doc/man3/SSL_get_stream_id.pod" + ], + "doc/html/man3/SSL_get_stream_read_state.html" => [ + "doc/man3/SSL_get_stream_read_state.pod" + ], + "doc/html/man3/SSL_get_value_uint.html" => [ + "doc/man3/SSL_get_value_uint.pod" + ], "doc/html/man3/SSL_get_verify_result.html" => [ "doc/man3/SSL_get_verify_result.pod" ], @@ -3623,9 +4125,15 @@ our %unified_info = ( "doc/html/man3/SSL_group_to_name.html" => [ "doc/man3/SSL_group_to_name.pod" ], + "doc/html/man3/SSL_handle_events.html" => [ + "doc/man3/SSL_handle_events.pod" + ], "doc/html/man3/SSL_in_init.html" => [ "doc/man3/SSL_in_init.pod" ], + "doc/html/man3/SSL_inject_net_dgram.html" => [ + "doc/man3/SSL_inject_net_dgram.pod" + ], "doc/html/man3/SSL_key_update.html" => [ "doc/man3/SSL_key_update.pod" ], @@ -3638,9 +4146,21 @@ our %unified_info = ( "doc/html/man3/SSL_new.html" => [ "doc/man3/SSL_new.pod" ], + "doc/html/man3/SSL_new_domain.html" => [ + "doc/man3/SSL_new_domain.pod" + ], + "doc/html/man3/SSL_new_listener.html" => [ + "doc/man3/SSL_new_listener.pod" + ], + "doc/html/man3/SSL_new_stream.html" => [ + "doc/man3/SSL_new_stream.pod" + ], "doc/html/man3/SSL_pending.html" => [ "doc/man3/SSL_pending.pod" ], + "doc/html/man3/SSL_poll.html" => [ + "doc/man3/SSL_poll.pod" + ], "doc/html/man3/SSL_read.html" => [ "doc/man3/SSL_read.pod" ], @@ -3656,24 +4176,45 @@ our %unified_info = ( "doc/html/man3/SSL_set1_host.html" => [ "doc/man3/SSL_set1_host.pod" ], + "doc/html/man3/SSL_set1_initial_peer_addr.html" => [ + "doc/man3/SSL_set1_initial_peer_addr.pod" + ], + "doc/html/man3/SSL_set1_server_cert_type.html" => [ + "doc/man3/SSL_set1_server_cert_type.pod" + ], "doc/html/man3/SSL_set_async_callback.html" => [ "doc/man3/SSL_set_async_callback.pod" ], "doc/html/man3/SSL_set_bio.html" => [ "doc/man3/SSL_set_bio.pod" ], + "doc/html/man3/SSL_set_blocking_mode.html" => [ + "doc/man3/SSL_set_blocking_mode.pod" + ], "doc/html/man3/SSL_set_connect_state.html" => [ "doc/man3/SSL_set_connect_state.pod" ], + "doc/html/man3/SSL_set_default_stream_mode.html" => [ + "doc/man3/SSL_set_default_stream_mode.pod" + ], "doc/html/man3/SSL_set_fd.html" => [ "doc/man3/SSL_set_fd.pod" ], + "doc/html/man3/SSL_set_incoming_stream_policy.html" => [ + "doc/man3/SSL_set_incoming_stream_policy.pod" + ], + "doc/html/man3/SSL_set_quic_tls_cbs.html" => [ + "doc/man3/SSL_set_quic_tls_cbs.pod" + ], "doc/html/man3/SSL_set_retry_verify.html" => [ "doc/man3/SSL_set_retry_verify.pod" ], "doc/html/man3/SSL_set_session.html" => [ "doc/man3/SSL_set_session.pod" ], + "doc/html/man3/SSL_set_session_secret_cb.html" => [ + "doc/man3/SSL_set_session_secret_cb.pod" + ], "doc/html/man3/SSL_set_shutdown.html" => [ "doc/man3/SSL_set_shutdown.pod" ], @@ -3686,6 +4227,12 @@ our %unified_info = ( "doc/html/man3/SSL_state_string.html" => [ "doc/man3/SSL_state_string.pod" ], + "doc/html/man3/SSL_stream_conclude.html" => [ + "doc/man3/SSL_stream_conclude.pod" + ], + "doc/html/man3/SSL_stream_reset.html" => [ + "doc/man3/SSL_stream_reset.pod" + ], "doc/html/man3/SSL_want.html" => [ "doc/man3/SSL_want.pod" ], @@ -3695,8 +4242,8 @@ our %unified_info = ( "doc/html/man3/TS_RESP_CTX_new.html" => [ "doc/man3/TS_RESP_CTX_new.pod" ], - "doc/html/man3/TS_VERIFY_CTX_set_certs.html" => [ - "doc/man3/TS_VERIFY_CTX_set_certs.pod" + "doc/html/man3/TS_VERIFY_CTX.html" => [ + "doc/man3/TS_VERIFY_CTX.pod" ], "doc/html/man3/UI_STRING.html" => [ "doc/man3/UI_STRING.pod" @@ -3716,6 +4263,21 @@ our %unified_info = ( "doc/html/man3/X509V3_set_ctx.html" => [ "doc/man3/X509V3_set_ctx.pod" ], + "doc/html/man3/X509_ACERT_add1_attr.html" => [ + "doc/man3/X509_ACERT_add1_attr.pod" + ], + "doc/html/man3/X509_ACERT_add_attr_nconf.html" => [ + "doc/man3/X509_ACERT_add_attr_nconf.pod" + ], + "doc/html/man3/X509_ACERT_get0_holder_baseCertId.html" => [ + "doc/man3/X509_ACERT_get0_holder_baseCertId.pod" + ], + "doc/html/man3/X509_ACERT_get_attr.html" => [ + "doc/man3/X509_ACERT_get_attr.pod" + ], + "doc/html/man3/X509_ACERT_print_ex.html" => [ + "doc/man3/X509_ACERT_print_ex.pod" + ], "doc/html/man3/X509_ALGOR_dup.html" => [ "doc/man3/X509_ALGOR_dup.pod" ], @@ -3764,6 +4326,9 @@ our %unified_info = ( "doc/html/man3/X509_SIG_get0.html" => [ "doc/man3/X509_SIG_get0.pod" ], + "doc/html/man3/X509_STORE_CTX_get_by_subject.html" => [ + "doc/man3/X509_STORE_CTX_get_by_subject.pod" + ], "doc/html/man3/X509_STORE_CTX_get_error.html" => [ "doc/man3/X509_STORE_CTX_get_error.pod" ], @@ -3830,6 +4395,9 @@ our %unified_info = ( "doc/html/man3/X509_get0_uids.html" => [ "doc/man3/X509_get0_uids.pod" ], + "doc/html/man3/X509_get_default_cert_file.html" => [ + "doc/man3/X509_get_default_cert_file.pod" + ], "doc/html/man3/X509_get_extension_flags.html" => [ "doc/man3/X509_get_extension_flags.pod" ], @@ -3953,9 +4521,15 @@ our %unified_info = ( "doc/html/man7/EVP_CIPHER-SM4.html" => [ "doc/man7/EVP_CIPHER-SM4.pod" ], + "doc/html/man7/EVP_KDF-ARGON2.html" => [ + "doc/man7/EVP_KDF-ARGON2.pod" + ], "doc/html/man7/EVP_KDF-HKDF.html" => [ "doc/man7/EVP_KDF-HKDF.pod" ], + "doc/html/man7/EVP_KDF-HMAC-DRBG.html" => [ + "doc/man7/EVP_KDF-HMAC-DRBG.pod" + ], "doc/html/man7/EVP_KDF-KB.html" => [ "doc/man7/EVP_KDF-KB.pod" ], @@ -3971,6 +4545,9 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-PKCS12KDF.html" => [ "doc/man7/EVP_KDF-PKCS12KDF.pod" ], + "doc/html/man7/EVP_KDF-PVKKDF.html" => [ + "doc/man7/EVP_KDF-PVKKDF.pod" + ], "doc/html/man7/EVP_KDF-SCRYPT.html" => [ "doc/man7/EVP_KDF-SCRYPT.pod" ], @@ -3995,9 +4572,18 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-X963.html" => [ "doc/man7/EVP_KDF-X963.pod" ], + "doc/html/man7/EVP_KEM-EC.html" => [ + "doc/man7/EVP_KEM-EC.pod" + ], + "doc/html/man7/EVP_KEM-ML-KEM.html" => [ + "doc/man7/EVP_KEM-ML-KEM.pod" + ], "doc/html/man7/EVP_KEM-RSA.html" => [ "doc/man7/EVP_KEM-RSA.pod" ], + "doc/html/man7/EVP_KEM-X25519.html" => [ + "doc/man7/EVP_KEM-X25519.pod" + ], "doc/html/man7/EVP_KEYEXCH-DH.html" => [ "doc/man7/EVP_KEYEXCH-DH.pod" ], @@ -4031,6 +4617,9 @@ our %unified_info = ( "doc/html/man7/EVP_MD-BLAKE2.html" => [ "doc/man7/EVP_MD-BLAKE2.pod" ], + "doc/html/man7/EVP_MD-KECCAK.html" => [ + "doc/man7/EVP_MD-KECCAK.pod" + ], "doc/html/man7/EVP_MD-MD2.html" => [ "doc/man7/EVP_MD-MD2.pod" ], @@ -4088,15 +4677,27 @@ our %unified_info = ( "doc/html/man7/EVP_PKEY-HMAC.html" => [ "doc/man7/EVP_PKEY-HMAC.pod" ], + "doc/html/man7/EVP_PKEY-ML-DSA.html" => [ + "doc/man7/EVP_PKEY-ML-DSA.pod" + ], + "doc/html/man7/EVP_PKEY-ML-KEM.html" => [ + "doc/man7/EVP_PKEY-ML-KEM.pod" + ], "doc/html/man7/EVP_PKEY-RSA.html" => [ "doc/man7/EVP_PKEY-RSA.pod" ], + "doc/html/man7/EVP_PKEY-SLH-DSA.html" => [ + "doc/man7/EVP_PKEY-SLH-DSA.pod" + ], "doc/html/man7/EVP_PKEY-SM2.html" => [ "doc/man7/EVP_PKEY-SM2.pod" ], "doc/html/man7/EVP_PKEY-X25519.html" => [ "doc/man7/EVP_PKEY-X25519.pod" ], + "doc/html/man7/EVP_RAND-CRNG-TEST.html" => [ + "doc/man7/EVP_RAND-CRNG-TEST.pod" + ], "doc/html/man7/EVP_RAND-CTR-DRBG.html" => [ "doc/man7/EVP_RAND-CTR-DRBG.pod" ], @@ -4106,6 +4707,9 @@ our %unified_info = ( "doc/html/man7/EVP_RAND-HMAC-DRBG.html" => [ "doc/man7/EVP_RAND-HMAC-DRBG.pod" ], + "doc/html/man7/EVP_RAND-JITTER.html" => [ + "doc/man7/EVP_RAND-JITTER.pod" + ], "doc/html/man7/EVP_RAND-SEED-SRC.html" => [ "doc/man7/EVP_RAND-SEED-SRC.pod" ], @@ -4127,9 +4731,15 @@ our %unified_info = ( "doc/html/man7/EVP_SIGNATURE-HMAC.html" => [ "doc/man7/EVP_SIGNATURE-HMAC.pod" ], + "doc/html/man7/EVP_SIGNATURE-ML-DSA.html" => [ + "doc/man7/EVP_SIGNATURE-ML-DSA.pod" + ], "doc/html/man7/EVP_SIGNATURE-RSA.html" => [ "doc/man7/EVP_SIGNATURE-RSA.pod" ], + "doc/html/man7/EVP_SIGNATURE-SLH-DSA.html" => [ + "doc/man7/EVP_SIGNATURE-SLH-DSA.pod" + ], "doc/html/man7/OSSL_PROVIDER-FIPS.html" => [ "doc/man7/OSSL_PROVIDER-FIPS.pod" ], @@ -4145,6 +4755,9 @@ our %unified_info = ( "doc/html/man7/OSSL_PROVIDER-null.html" => [ "doc/man7/OSSL_PROVIDER-null.pod" ], + "doc/html/man7/OSSL_STORE-winstore.html" => [ + "doc/man7/OSSL_STORE-winstore.pod" + ], "doc/html/man7/RAND.html" => [ "doc/man7/RAND.pod" ], @@ -4157,9 +4770,6 @@ our %unified_info = ( "doc/html/man7/bio.html" => [ "doc/man7/bio.pod" ], - "doc/html/man7/crypto.html" => [ - "doc/man7/crypto.pod" - ], "doc/html/man7/ct.html" => [ "doc/man7/ct.pod" ], @@ -4190,9 +4800,6 @@ our %unified_info = ( "doc/html/man7/life_cycle-rand.html" => [ "doc/man7/life_cycle-rand.pod" ], - "doc/html/man7/migration_guide.html" => [ - "doc/man7/migration_guide.pod" - ], "doc/html/man7/openssl-core.h.html" => [ "doc/man7/openssl-core.h.pod" ], @@ -4208,12 +4815,66 @@ our %unified_info = ( "doc/html/man7/openssl-glossary.html" => [ "doc/man7/openssl-glossary.pod" ], + "doc/html/man7/openssl-qlog.html" => [ + "doc/man7/openssl-qlog.pod" + ], + "doc/html/man7/openssl-quic-concurrency.html" => [ + "doc/man7/openssl-quic-concurrency.pod" + ], + "doc/html/man7/openssl-quic.html" => [ + "doc/man7/openssl-quic.pod" + ], "doc/html/man7/openssl-threads.html" => [ "doc/man7/openssl-threads.pod" ], "doc/html/man7/openssl_user_macros.html" => [ "doc/man7/openssl_user_macros.pod" ], + "doc/html/man7/ossl-guide-introduction.html" => [ + "doc/man7/ossl-guide-introduction.pod" + ], + "doc/html/man7/ossl-guide-libcrypto-introduction.html" => [ + "doc/man7/ossl-guide-libcrypto-introduction.pod" + ], + "doc/html/man7/ossl-guide-libraries-introduction.html" => [ + "doc/man7/ossl-guide-libraries-introduction.pod" + ], + "doc/html/man7/ossl-guide-libssl-introduction.html" => [ + "doc/man7/ossl-guide-libssl-introduction.pod" + ], + "doc/html/man7/ossl-guide-migration.html" => [ + "doc/man7/ossl-guide-migration.pod" + ], + "doc/html/man7/ossl-guide-quic-client-block.html" => [ + "doc/man7/ossl-guide-quic-client-block.pod" + ], + "doc/html/man7/ossl-guide-quic-client-non-block.html" => [ + "doc/man7/ossl-guide-quic-client-non-block.pod" + ], + "doc/html/man7/ossl-guide-quic-introduction.html" => [ + "doc/man7/ossl-guide-quic-introduction.pod" + ], + "doc/html/man7/ossl-guide-quic-multi-stream.html" => [ + "doc/man7/ossl-guide-quic-multi-stream.pod" + ], + "doc/html/man7/ossl-guide-quic-server-block.html" => [ + "doc/man7/ossl-guide-quic-server-block.pod" + ], + "doc/html/man7/ossl-guide-quic-server-non-block.html" => [ + "doc/man7/ossl-guide-quic-server-non-block.pod" + ], + "doc/html/man7/ossl-guide-tls-client-block.html" => [ + "doc/man7/ossl-guide-tls-client-block.pod" + ], + "doc/html/man7/ossl-guide-tls-client-non-block.html" => [ + "doc/man7/ossl-guide-tls-client-non-block.pod" + ], + "doc/html/man7/ossl-guide-tls-introduction.html" => [ + "doc/man7/ossl-guide-tls-introduction.pod" + ], + "doc/html/man7/ossl-guide-tls-server-block.html" => [ + "doc/man7/ossl-guide-tls-server-block.pod" + ], "doc/html/man7/ossl_store-file.html" => [ "doc/man7/ossl_store-file.pod" ], @@ -4268,6 +4929,9 @@ our %unified_info = ( "doc/html/man7/provider-signature.html" => [ "doc/man7/provider-signature.pod" ], + "doc/html/man7/provider-skeymgmt.html" => [ + "doc/man7/provider-skeymgmt.pod" + ], "doc/html/man7/provider-storemgmt.html" => [ "doc/man7/provider-storemgmt.pod" ], @@ -4277,9 +4941,6 @@ our %unified_info = ( "doc/html/man7/proxy-certificates.html" => [ "doc/man7/proxy-certificates.pod" ], - "doc/html/man7/ssl.html" => [ - "doc/man7/ssl.pod" - ], "doc/html/man7/x509.html" => [ "doc/man7/x509.pod" ], @@ -4427,6 +5088,9 @@ our %unified_info = ( "doc/man/man1/openssl-sess_id.1" => [ "doc/man1/openssl-sess_id.pod" ], + "doc/man/man1/openssl-skeyutl.1" => [ + "doc/man1/openssl-skeyutl.pod" + ], "doc/man/man1/openssl-smime.1" => [ "doc/man1/openssl-smime.pod" ], @@ -4568,6 +5232,9 @@ our %unified_info = ( "doc/man/man3/BIO_get_ex_new_index.3" => [ "doc/man3/BIO_get_ex_new_index.pod" ], + "doc/man/man3/BIO_get_rpoll_descriptor.3" => [ + "doc/man3/BIO_get_rpoll_descriptor.pod" + ], "doc/man/man3/BIO_meth_new.3" => [ "doc/man3/BIO_meth_new.pod" ], @@ -4604,6 +5271,9 @@ our %unified_info = ( "doc/man/man3/BIO_s_datagram.3" => [ "doc/man3/BIO_s_datagram.pod" ], + "doc/man/man3/BIO_s_dgram_pair.3" => [ + "doc/man3/BIO_s_dgram_pair.pod" + ], "doc/man/man3/BIO_s_fd.3" => [ "doc/man3/BIO_s_fd.pod" ], @@ -4619,6 +5289,9 @@ our %unified_info = ( "doc/man/man3/BIO_s_socket.3" => [ "doc/man3/BIO_s_socket.pod" ], + "doc/man/man3/BIO_sendmmsg.3" => [ + "doc/man3/BIO_sendmmsg.pod" + ], "doc/man/man3/BIO_set_callback.3" => [ "doc/man3/BIO_set_callback.pod" ], @@ -4691,6 +5364,9 @@ our %unified_info = ( "doc/man/man3/BUF_MEM_new.3" => [ "doc/man3/BUF_MEM_new.pod" ], + "doc/man/man3/CMAC_CTX.3" => [ + "doc/man3/CMAC_CTX.pod" + ], "doc/man/man3/CMS_EncryptedData_decrypt.3" => [ "doc/man3/CMS_EncryptedData_decrypt.pod" ], @@ -4757,6 +5433,9 @@ our %unified_info = ( "doc/man/man3/CMS_verify_receipt.3" => [ "doc/man3/CMS_verify_receipt.pod" ], + "doc/man/man3/COMP_CTX_new.3" => [ + "doc/man3/COMP_CTX_new.pod" + ], "doc/man/man3/CONF_modules_free.3" => [ "doc/man3/CONF_modules_free.pod" ], @@ -4856,6 +5535,12 @@ our %unified_info = ( "doc/man/man3/DTLS_set_timer_cb.3" => [ "doc/man3/DTLS_set_timer_cb.pod" ], + "doc/man/man3/DTLSv1_get_timeout.3" => [ + "doc/man3/DTLSv1_get_timeout.pod" + ], + "doc/man/man3/DTLSv1_handle_timeout.3" => [ + "doc/man3/DTLSv1_handle_timeout.pod" + ], "doc/man/man3/DTLSv1_listen.3" => [ "doc/man3/DTLSv1_listen.pod" ], @@ -4994,6 +5679,9 @@ our %unified_info = ( "doc/man/man3/EVP_PKEY_CTX_get0_pkey.3" => [ "doc/man3/EVP_PKEY_CTX_get0_pkey.pod" ], + "doc/man/man3/EVP_PKEY_CTX_get_algor.3" => [ + "doc/man3/EVP_PKEY_CTX_get_algor.pod" + ], "doc/man/man3/EVP_PKEY_CTX_new.3" => [ "doc/man3/EVP_PKEY_CTX_new.pod" ], @@ -5111,6 +5799,12 @@ our %unified_info = ( "doc/man/man3/EVP_SIGNATURE.3" => [ "doc/man3/EVP_SIGNATURE.pod" ], + "doc/man/man3/EVP_SKEY.3" => [ + "doc/man3/EVP_SKEY.pod" + ], + "doc/man/man3/EVP_SKEYMGMT.3" => [ + "doc/man3/EVP_SKEYMGMT.pod" + ], "doc/man/man3/EVP_SealInit.3" => [ "doc/man3/EVP_SealInit.pod" ], @@ -5198,6 +5892,9 @@ our %unified_info = ( "doc/man/man3/EVP_whirlpool.3" => [ "doc/man3/EVP_whirlpool.pod" ], + "doc/man/man3/GENERAL_NAME.3" => [ + "doc/man3/GENERAL_NAME.pod" + ], "doc/man/man3/HMAC.3" => [ "doc/man3/HMAC.pod" ], @@ -5270,9 +5967,15 @@ our %unified_info = ( "doc/man/man3/OPENSSL_load_builtin_modules.3" => [ "doc/man3/OPENSSL_load_builtin_modules.pod" ], + "doc/man/man3/OPENSSL_load_u16_le.3" => [ + "doc/man3/OPENSSL_load_u16_le.pod" + ], "doc/man/man3/OPENSSL_malloc.3" => [ "doc/man3/OPENSSL_malloc.pod" ], + "doc/man/man3/OPENSSL_riscvcap.3" => [ + "doc/man3/OPENSSL_riscvcap.pod" + ], "doc/man/man3/OPENSSL_s390xcap.3" => [ "doc/man3/OPENSSL_s390xcap.pod" ], @@ -5288,12 +5991,18 @@ our %unified_info = ( "doc/man/man3/OSSL_CALLBACK.3" => [ "doc/man3/OSSL_CALLBACK.pod" ], + "doc/man/man3/OSSL_CMP_ATAV_set0.3" => [ + "doc/man3/OSSL_CMP_ATAV_set0.pod" + ], "doc/man/man3/OSSL_CMP_CTX_new.3" => [ "doc/man3/OSSL_CMP_CTX_new.pod" ], "doc/man/man3/OSSL_CMP_HDR_get0_transactionID.3" => [ "doc/man3/OSSL_CMP_HDR_get0_transactionID.pod" ], + "doc/man/man3/OSSL_CMP_ITAV_new_caCerts.3" => [ + "doc/man3/OSSL_CMP_ITAV_new_caCerts.pod" + ], "doc/man/man3/OSSL_CMP_ITAV_set0.3" => [ "doc/man3/OSSL_CMP_ITAV_set0.pod" ], @@ -5363,9 +6072,18 @@ our %unified_info = ( "doc/man/man3/OSSL_ENCODER_to_bio.3" => [ "doc/man3/OSSL_ENCODER_to_bio.pod" ], + "doc/man/man3/OSSL_ERR_STATE_save.3" => [ + "doc/man3/OSSL_ERR_STATE_save.pod" + ], "doc/man/man3/OSSL_ESS_check_signing_certs.3" => [ "doc/man3/OSSL_ESS_check_signing_certs.pod" ], + "doc/man/man3/OSSL_GENERAL_NAMES_print.3" => [ + "doc/man3/OSSL_GENERAL_NAMES_print.pod" + ], + "doc/man/man3/OSSL_HPKE_CTX_new.3" => [ + "doc/man3/OSSL_HPKE_CTX_new.pod" + ], "doc/man/man3/OSSL_HTTP_REQ_CTX.3" => [ "doc/man3/OSSL_HTTP_REQ_CTX.pod" ], @@ -5375,12 +6093,24 @@ our %unified_info = ( "doc/man/man3/OSSL_HTTP_transfer.3" => [ "doc/man3/OSSL_HTTP_transfer.pod" ], + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX.3" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX.pod" + ], + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX_print.3" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX_print.pod" + ], + "doc/man/man3/OSSL_INDICATOR_set_callback.3" => [ + "doc/man3/OSSL_INDICATOR_set_callback.pod" + ], "doc/man/man3/OSSL_ITEM.3" => [ "doc/man3/OSSL_ITEM.pod" ], "doc/man/man3/OSSL_LIB_CTX.3" => [ "doc/man3/OSSL_LIB_CTX.pod" ], + "doc/man/man3/OSSL_LIB_CTX_set_conf_diagnostics.3" => [ + "doc/man3/OSSL_LIB_CTX_set_conf_diagnostics.pod" + ], "doc/man/man3/OSSL_PARAM.3" => [ "doc/man3/OSSL_PARAM.pod" ], @@ -5396,9 +6126,15 @@ our %unified_info = ( "doc/man/man3/OSSL_PARAM_int.3" => [ "doc/man3/OSSL_PARAM_int.pod" ], + "doc/man/man3/OSSL_PARAM_print_to_bio.3" => [ + "doc/man3/OSSL_PARAM_print_to_bio.pod" + ], "doc/man/man3/OSSL_PROVIDER.3" => [ "doc/man3/OSSL_PROVIDER.pod" ], + "doc/man/man3/OSSL_QUIC_client_method.3" => [ + "doc/man3/OSSL_QUIC_client_method.pod" + ], "doc/man/man3/OSSL_SELF_TEST_new.3" => [ "doc/man3/OSSL_SELF_TEST_new.pod" ], @@ -5423,6 +6159,9 @@ our %unified_info = ( "doc/man/man3/OSSL_STORE_open.3" => [ "doc/man3/OSSL_STORE_open.pod" ], + "doc/man/man3/OSSL_sleep.3" => [ + "doc/man3/OSSL_sleep.pod" + ], "doc/man/man3/OSSL_trace_enabled.3" => [ "doc/man3/OSSL_trace_enabled.pod" ], @@ -5438,6 +6177,9 @@ our %unified_info = ( "doc/man/man3/OpenSSL_version.3" => [ "doc/man3/OpenSSL_version.pod" ], + "doc/man/man3/PBMAC1_get1_pbkdf2_param.3" => [ + "doc/man3/PBMAC1_get1_pbkdf2_param.pod" + ], "doc/man/man3/PEM_X509_INFO_read_bio_ex.3" => [ "doc/man3/PEM_X509_INFO_read_bio_ex.pod" ], @@ -5474,6 +6216,9 @@ our %unified_info = ( "doc/man/man3/PKCS12_SAFEBAG_get1_cert.3" => [ "doc/man3/PKCS12_SAFEBAG_get1_cert.pod" ], + "doc/man/man3/PKCS12_SAFEBAG_set0_attrs.3" => [ + "doc/man3/PKCS12_SAFEBAG_set0_attrs.pod" + ], "doc/man/man3/PKCS12_add1_attr_by_NID.3" => [ "doc/man3/PKCS12_add1_attr_by_NID.pod" ], @@ -5747,6 +6492,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set0_CA_list.3" => [ "doc/man3/SSL_CTX_set0_CA_list.pod" ], + "doc/man/man3/SSL_CTX_set1_cert_comp_preference.3" => [ + "doc/man3/SSL_CTX_set1_cert_comp_preference.pod" + ], "doc/man/man3/SSL_CTX_set1_curves.3" => [ "doc/man3/SSL_CTX_set1_curves.pod" ], @@ -5786,6 +6534,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_default_passwd_cb.3" => [ "doc/man3/SSL_CTX_set_default_passwd_cb.pod" ], + "doc/man/man3/SSL_CTX_set_domain_flags.3" => [ + "doc/man3/SSL_CTX_set_domain_flags.pod" + ], "doc/man/man3/SSL_CTX_set_generate_session_id.3" => [ "doc/man3/SSL_CTX_set_generate_session_id.pod" ], @@ -5807,6 +6558,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_msg_callback.3" => [ "doc/man3/SSL_CTX_set_msg_callback.pod" ], + "doc/man/man3/SSL_CTX_set_new_pending_conn_cb.3" => [ + "doc/man3/SSL_CTX_set_new_pending_conn_cb.pod" + ], "doc/man/man3/SSL_CTX_set_num_tickets.3" => [ "doc/man3/SSL_CTX_set_num_tickets.pod" ], @@ -5921,6 +6675,9 @@ our %unified_info = ( "doc/man/man3/SSL_accept.3" => [ "doc/man3/SSL_accept.pod" ], + "doc/man/man3/SSL_accept_stream.3" => [ + "doc/man3/SSL_accept_stream.pod" + ], "doc/man/man3/SSL_alert_type_string.3" => [ "doc/man3/SSL_alert_type_string.pod" ], @@ -5948,9 +6705,21 @@ our %unified_info = ( "doc/man/man3/SSL_free.3" => [ "doc/man3/SSL_free.pod" ], + "doc/man/man3/SSL_get0_connection.3" => [ + "doc/man3/SSL_get0_connection.pod" + ], + "doc/man/man3/SSL_get0_group_name.3" => [ + "doc/man3/SSL_get0_group_name.pod" + ], + "doc/man/man3/SSL_get0_peer_rpk.3" => [ + "doc/man3/SSL_get0_peer_rpk.pod" + ], "doc/man/man3/SSL_get0_peer_scts.3" => [ "doc/man3/SSL_get0_peer_scts.pod" ], + "doc/man/man3/SSL_get1_builtin_sigalgs.3" => [ + "doc/man3/SSL_get1_builtin_sigalgs.pod" + ], "doc/man/man3/SSL_get_SSL_CTX.3" => [ "doc/man3/SSL_get_SSL_CTX.pod" ], @@ -5966,6 +6735,9 @@ our %unified_info = ( "doc/man/man3/SSL_get_client_random.3" => [ "doc/man3/SSL_get_client_random.pod" ], + "doc/man/man3/SSL_get_conn_close_info.3" => [ + "doc/man3/SSL_get_conn_close_info.pod" + ], "doc/man/man3/SSL_get_current_cipher.3" => [ "doc/man3/SSL_get_current_cipher.pod" ], @@ -5975,12 +6747,18 @@ our %unified_info = ( "doc/man/man3/SSL_get_error.3" => [ "doc/man3/SSL_get_error.pod" ], + "doc/man/man3/SSL_get_event_timeout.3" => [ + "doc/man3/SSL_get_event_timeout.pod" + ], "doc/man/man3/SSL_get_extms_support.3" => [ "doc/man3/SSL_get_extms_support.pod" ], "doc/man/man3/SSL_get_fd.3" => [ "doc/man3/SSL_get_fd.pod" ], + "doc/man/man3/SSL_get_handshake_rtt.3" => [ + "doc/man3/SSL_get_handshake_rtt.pod" + ], "doc/man/man3/SSL_get_peer_cert_chain.3" => [ "doc/man3/SSL_get_peer_cert_chain.pod" ], @@ -5999,12 +6777,24 @@ our %unified_info = ( "doc/man/man3/SSL_get_rbio.3" => [ "doc/man3/SSL_get_rbio.pod" ], + "doc/man/man3/SSL_get_rpoll_descriptor.3" => [ + "doc/man3/SSL_get_rpoll_descriptor.pod" + ], "doc/man/man3/SSL_get_session.3" => [ "doc/man3/SSL_get_session.pod" ], "doc/man/man3/SSL_get_shared_sigalgs.3" => [ "doc/man3/SSL_get_shared_sigalgs.pod" ], + "doc/man/man3/SSL_get_stream_id.3" => [ + "doc/man3/SSL_get_stream_id.pod" + ], + "doc/man/man3/SSL_get_stream_read_state.3" => [ + "doc/man3/SSL_get_stream_read_state.pod" + ], + "doc/man/man3/SSL_get_value_uint.3" => [ + "doc/man3/SSL_get_value_uint.pod" + ], "doc/man/man3/SSL_get_verify_result.3" => [ "doc/man3/SSL_get_verify_result.pod" ], @@ -6014,9 +6804,15 @@ our %unified_info = ( "doc/man/man3/SSL_group_to_name.3" => [ "doc/man3/SSL_group_to_name.pod" ], + "doc/man/man3/SSL_handle_events.3" => [ + "doc/man3/SSL_handle_events.pod" + ], "doc/man/man3/SSL_in_init.3" => [ "doc/man3/SSL_in_init.pod" ], + "doc/man/man3/SSL_inject_net_dgram.3" => [ + "doc/man3/SSL_inject_net_dgram.pod" + ], "doc/man/man3/SSL_key_update.3" => [ "doc/man3/SSL_key_update.pod" ], @@ -6029,9 +6825,21 @@ our %unified_info = ( "doc/man/man3/SSL_new.3" => [ "doc/man3/SSL_new.pod" ], + "doc/man/man3/SSL_new_domain.3" => [ + "doc/man3/SSL_new_domain.pod" + ], + "doc/man/man3/SSL_new_listener.3" => [ + "doc/man3/SSL_new_listener.pod" + ], + "doc/man/man3/SSL_new_stream.3" => [ + "doc/man3/SSL_new_stream.pod" + ], "doc/man/man3/SSL_pending.3" => [ "doc/man3/SSL_pending.pod" ], + "doc/man/man3/SSL_poll.3" => [ + "doc/man3/SSL_poll.pod" + ], "doc/man/man3/SSL_read.3" => [ "doc/man3/SSL_read.pod" ], @@ -6047,24 +6855,45 @@ our %unified_info = ( "doc/man/man3/SSL_set1_host.3" => [ "doc/man3/SSL_set1_host.pod" ], + "doc/man/man3/SSL_set1_initial_peer_addr.3" => [ + "doc/man3/SSL_set1_initial_peer_addr.pod" + ], + "doc/man/man3/SSL_set1_server_cert_type.3" => [ + "doc/man3/SSL_set1_server_cert_type.pod" + ], "doc/man/man3/SSL_set_async_callback.3" => [ "doc/man3/SSL_set_async_callback.pod" ], "doc/man/man3/SSL_set_bio.3" => [ "doc/man3/SSL_set_bio.pod" ], + "doc/man/man3/SSL_set_blocking_mode.3" => [ + "doc/man3/SSL_set_blocking_mode.pod" + ], "doc/man/man3/SSL_set_connect_state.3" => [ "doc/man3/SSL_set_connect_state.pod" ], + "doc/man/man3/SSL_set_default_stream_mode.3" => [ + "doc/man3/SSL_set_default_stream_mode.pod" + ], "doc/man/man3/SSL_set_fd.3" => [ "doc/man3/SSL_set_fd.pod" ], + "doc/man/man3/SSL_set_incoming_stream_policy.3" => [ + "doc/man3/SSL_set_incoming_stream_policy.pod" + ], + "doc/man/man3/SSL_set_quic_tls_cbs.3" => [ + "doc/man3/SSL_set_quic_tls_cbs.pod" + ], "doc/man/man3/SSL_set_retry_verify.3" => [ "doc/man3/SSL_set_retry_verify.pod" ], "doc/man/man3/SSL_set_session.3" => [ "doc/man3/SSL_set_session.pod" ], + "doc/man/man3/SSL_set_session_secret_cb.3" => [ + "doc/man3/SSL_set_session_secret_cb.pod" + ], "doc/man/man3/SSL_set_shutdown.3" => [ "doc/man3/SSL_set_shutdown.pod" ], @@ -6077,6 +6906,12 @@ our %unified_info = ( "doc/man/man3/SSL_state_string.3" => [ "doc/man3/SSL_state_string.pod" ], + "doc/man/man3/SSL_stream_conclude.3" => [ + "doc/man3/SSL_stream_conclude.pod" + ], + "doc/man/man3/SSL_stream_reset.3" => [ + "doc/man3/SSL_stream_reset.pod" + ], "doc/man/man3/SSL_want.3" => [ "doc/man3/SSL_want.pod" ], @@ -6086,8 +6921,8 @@ our %unified_info = ( "doc/man/man3/TS_RESP_CTX_new.3" => [ "doc/man3/TS_RESP_CTX_new.pod" ], - "doc/man/man3/TS_VERIFY_CTX_set_certs.3" => [ - "doc/man3/TS_VERIFY_CTX_set_certs.pod" + "doc/man/man3/TS_VERIFY_CTX.3" => [ + "doc/man3/TS_VERIFY_CTX.pod" ], "doc/man/man3/UI_STRING.3" => [ "doc/man3/UI_STRING.pod" @@ -6107,6 +6942,21 @@ our %unified_info = ( "doc/man/man3/X509V3_set_ctx.3" => [ "doc/man3/X509V3_set_ctx.pod" ], + "doc/man/man3/X509_ACERT_add1_attr.3" => [ + "doc/man3/X509_ACERT_add1_attr.pod" + ], + "doc/man/man3/X509_ACERT_add_attr_nconf.3" => [ + "doc/man3/X509_ACERT_add_attr_nconf.pod" + ], + "doc/man/man3/X509_ACERT_get0_holder_baseCertId.3" => [ + "doc/man3/X509_ACERT_get0_holder_baseCertId.pod" + ], + "doc/man/man3/X509_ACERT_get_attr.3" => [ + "doc/man3/X509_ACERT_get_attr.pod" + ], + "doc/man/man3/X509_ACERT_print_ex.3" => [ + "doc/man3/X509_ACERT_print_ex.pod" + ], "doc/man/man3/X509_ALGOR_dup.3" => [ "doc/man3/X509_ALGOR_dup.pod" ], @@ -6155,6 +7005,9 @@ our %unified_info = ( "doc/man/man3/X509_SIG_get0.3" => [ "doc/man3/X509_SIG_get0.pod" ], + "doc/man/man3/X509_STORE_CTX_get_by_subject.3" => [ + "doc/man3/X509_STORE_CTX_get_by_subject.pod" + ], "doc/man/man3/X509_STORE_CTX_get_error.3" => [ "doc/man3/X509_STORE_CTX_get_error.pod" ], @@ -6221,6 +7074,9 @@ our %unified_info = ( "doc/man/man3/X509_get0_uids.3" => [ "doc/man3/X509_get0_uids.pod" ], + "doc/man/man3/X509_get_default_cert_file.3" => [ + "doc/man3/X509_get_default_cert_file.pod" + ], "doc/man/man3/X509_get_extension_flags.3" => [ "doc/man3/X509_get_extension_flags.pod" ], @@ -6344,9 +7200,15 @@ our %unified_info = ( "doc/man/man7/EVP_CIPHER-SM4.7" => [ "doc/man7/EVP_CIPHER-SM4.pod" ], + "doc/man/man7/EVP_KDF-ARGON2.7" => [ + "doc/man7/EVP_KDF-ARGON2.pod" + ], "doc/man/man7/EVP_KDF-HKDF.7" => [ "doc/man7/EVP_KDF-HKDF.pod" ], + "doc/man/man7/EVP_KDF-HMAC-DRBG.7" => [ + "doc/man7/EVP_KDF-HMAC-DRBG.pod" + ], "doc/man/man7/EVP_KDF-KB.7" => [ "doc/man7/EVP_KDF-KB.pod" ], @@ -6362,6 +7224,9 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-PKCS12KDF.7" => [ "doc/man7/EVP_KDF-PKCS12KDF.pod" ], + "doc/man/man7/EVP_KDF-PVKKDF.7" => [ + "doc/man7/EVP_KDF-PVKKDF.pod" + ], "doc/man/man7/EVP_KDF-SCRYPT.7" => [ "doc/man7/EVP_KDF-SCRYPT.pod" ], @@ -6386,9 +7251,18 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-X963.7" => [ "doc/man7/EVP_KDF-X963.pod" ], + "doc/man/man7/EVP_KEM-EC.7" => [ + "doc/man7/EVP_KEM-EC.pod" + ], + "doc/man/man7/EVP_KEM-ML-KEM.7" => [ + "doc/man7/EVP_KEM-ML-KEM.pod" + ], "doc/man/man7/EVP_KEM-RSA.7" => [ "doc/man7/EVP_KEM-RSA.pod" ], + "doc/man/man7/EVP_KEM-X25519.7" => [ + "doc/man7/EVP_KEM-X25519.pod" + ], "doc/man/man7/EVP_KEYEXCH-DH.7" => [ "doc/man7/EVP_KEYEXCH-DH.pod" ], @@ -6422,6 +7296,9 @@ our %unified_info = ( "doc/man/man7/EVP_MD-BLAKE2.7" => [ "doc/man7/EVP_MD-BLAKE2.pod" ], + "doc/man/man7/EVP_MD-KECCAK.7" => [ + "doc/man7/EVP_MD-KECCAK.pod" + ], "doc/man/man7/EVP_MD-MD2.7" => [ "doc/man7/EVP_MD-MD2.pod" ], @@ -6479,15 +7356,27 @@ our %unified_info = ( "doc/man/man7/EVP_PKEY-HMAC.7" => [ "doc/man7/EVP_PKEY-HMAC.pod" ], + "doc/man/man7/EVP_PKEY-ML-DSA.7" => [ + "doc/man7/EVP_PKEY-ML-DSA.pod" + ], + "doc/man/man7/EVP_PKEY-ML-KEM.7" => [ + "doc/man7/EVP_PKEY-ML-KEM.pod" + ], "doc/man/man7/EVP_PKEY-RSA.7" => [ "doc/man7/EVP_PKEY-RSA.pod" ], + "doc/man/man7/EVP_PKEY-SLH-DSA.7" => [ + "doc/man7/EVP_PKEY-SLH-DSA.pod" + ], "doc/man/man7/EVP_PKEY-SM2.7" => [ "doc/man7/EVP_PKEY-SM2.pod" ], "doc/man/man7/EVP_PKEY-X25519.7" => [ "doc/man7/EVP_PKEY-X25519.pod" ], + "doc/man/man7/EVP_RAND-CRNG-TEST.7" => [ + "doc/man7/EVP_RAND-CRNG-TEST.pod" + ], "doc/man/man7/EVP_RAND-CTR-DRBG.7" => [ "doc/man7/EVP_RAND-CTR-DRBG.pod" ], @@ -6497,6 +7386,9 @@ our %unified_info = ( "doc/man/man7/EVP_RAND-HMAC-DRBG.7" => [ "doc/man7/EVP_RAND-HMAC-DRBG.pod" ], + "doc/man/man7/EVP_RAND-JITTER.7" => [ + "doc/man7/EVP_RAND-JITTER.pod" + ], "doc/man/man7/EVP_RAND-SEED-SRC.7" => [ "doc/man7/EVP_RAND-SEED-SRC.pod" ], @@ -6518,9 +7410,15 @@ our %unified_info = ( "doc/man/man7/EVP_SIGNATURE-HMAC.7" => [ "doc/man7/EVP_SIGNATURE-HMAC.pod" ], + "doc/man/man7/EVP_SIGNATURE-ML-DSA.7" => [ + "doc/man7/EVP_SIGNATURE-ML-DSA.pod" + ], "doc/man/man7/EVP_SIGNATURE-RSA.7" => [ "doc/man7/EVP_SIGNATURE-RSA.pod" ], + "doc/man/man7/EVP_SIGNATURE-SLH-DSA.7" => [ + "doc/man7/EVP_SIGNATURE-SLH-DSA.pod" + ], "doc/man/man7/OSSL_PROVIDER-FIPS.7" => [ "doc/man7/OSSL_PROVIDER-FIPS.pod" ], @@ -6536,6 +7434,9 @@ our %unified_info = ( "doc/man/man7/OSSL_PROVIDER-null.7" => [ "doc/man7/OSSL_PROVIDER-null.pod" ], + "doc/man/man7/OSSL_STORE-winstore.7" => [ + "doc/man7/OSSL_STORE-winstore.pod" + ], "doc/man/man7/RAND.7" => [ "doc/man7/RAND.pod" ], @@ -6548,9 +7449,6 @@ our %unified_info = ( "doc/man/man7/bio.7" => [ "doc/man7/bio.pod" ], - "doc/man/man7/crypto.7" => [ - "doc/man7/crypto.pod" - ], "doc/man/man7/ct.7" => [ "doc/man7/ct.pod" ], @@ -6581,9 +7479,6 @@ our %unified_info = ( "doc/man/man7/life_cycle-rand.7" => [ "doc/man7/life_cycle-rand.pod" ], - "doc/man/man7/migration_guide.7" => [ - "doc/man7/migration_guide.pod" - ], "doc/man/man7/openssl-core.h.7" => [ "doc/man7/openssl-core.h.pod" ], @@ -6599,12 +7494,66 @@ our %unified_info = ( "doc/man/man7/openssl-glossary.7" => [ "doc/man7/openssl-glossary.pod" ], + "doc/man/man7/openssl-qlog.7" => [ + "doc/man7/openssl-qlog.pod" + ], + "doc/man/man7/openssl-quic-concurrency.7" => [ + "doc/man7/openssl-quic-concurrency.pod" + ], + "doc/man/man7/openssl-quic.7" => [ + "doc/man7/openssl-quic.pod" + ], "doc/man/man7/openssl-threads.7" => [ "doc/man7/openssl-threads.pod" ], "doc/man/man7/openssl_user_macros.7" => [ "doc/man7/openssl_user_macros.pod" ], + "doc/man/man7/ossl-guide-introduction.7" => [ + "doc/man7/ossl-guide-introduction.pod" + ], + "doc/man/man7/ossl-guide-libcrypto-introduction.7" => [ + "doc/man7/ossl-guide-libcrypto-introduction.pod" + ], + "doc/man/man7/ossl-guide-libraries-introduction.7" => [ + "doc/man7/ossl-guide-libraries-introduction.pod" + ], + "doc/man/man7/ossl-guide-libssl-introduction.7" => [ + "doc/man7/ossl-guide-libssl-introduction.pod" + ], + "doc/man/man7/ossl-guide-migration.7" => [ + "doc/man7/ossl-guide-migration.pod" + ], + "doc/man/man7/ossl-guide-quic-client-block.7" => [ + "doc/man7/ossl-guide-quic-client-block.pod" + ], + "doc/man/man7/ossl-guide-quic-client-non-block.7" => [ + "doc/man7/ossl-guide-quic-client-non-block.pod" + ], + "doc/man/man7/ossl-guide-quic-introduction.7" => [ + "doc/man7/ossl-guide-quic-introduction.pod" + ], + "doc/man/man7/ossl-guide-quic-multi-stream.7" => [ + "doc/man7/ossl-guide-quic-multi-stream.pod" + ], + "doc/man/man7/ossl-guide-quic-server-block.7" => [ + "doc/man7/ossl-guide-quic-server-block.pod" + ], + "doc/man/man7/ossl-guide-quic-server-non-block.7" => [ + "doc/man7/ossl-guide-quic-server-non-block.pod" + ], + "doc/man/man7/ossl-guide-tls-client-block.7" => [ + "doc/man7/ossl-guide-tls-client-block.pod" + ], + "doc/man/man7/ossl-guide-tls-client-non-block.7" => [ + "doc/man7/ossl-guide-tls-client-non-block.pod" + ], + "doc/man/man7/ossl-guide-tls-introduction.7" => [ + "doc/man7/ossl-guide-tls-introduction.pod" + ], + "doc/man/man7/ossl-guide-tls-server-block.7" => [ + "doc/man7/ossl-guide-tls-server-block.pod" + ], "doc/man/man7/ossl_store-file.7" => [ "doc/man7/ossl_store-file.pod" ], @@ -6659,6 +7608,9 @@ our %unified_info = ( "doc/man/man7/provider-signature.7" => [ "doc/man7/provider-signature.pod" ], + "doc/man/man7/provider-skeymgmt.7" => [ + "doc/man7/provider-skeymgmt.pod" + ], "doc/man/man7/provider-storemgmt.7" => [ "doc/man7/provider-storemgmt.pod" ], @@ -6668,9 +7620,6 @@ our %unified_info = ( "doc/man/man7/proxy-certificates.7" => [ "doc/man7/proxy-certificates.pod" ], - "doc/man/man7/ssl.7" => [ - "doc/man7/ssl.pod" - ], "doc/man/man7/x509.7" => [ "doc/man7/x509.pod" ], @@ -6850,6 +7799,10 @@ our %unified_info = ( "doc/man1/openssl-sess_id.pod.in", "doc/perlvars.pm" ], + "doc/man1/openssl-skeyutl.pod" => [ + "doc/man1/openssl-skeyutl.pod.in", + "doc/perlvars.pm" + ], "doc/man1/openssl-smime.pod" => [ "doc/man1/openssl-smime.pod.in", "doc/perlvars.pm" @@ -6889,6 +7842,27 @@ our %unified_info = ( "doc/man7/openssl_user_macros.pod" => [ "doc/man7/openssl_user_macros.pod.in" ], + "exporters/OpenSSLConfig.cmake" => [ + "installdata.pm" + ], + "exporters/OpenSSLConfigVersion.cmake" => [ + "exporters/OpenSSLConfig.cmake", + "installdata.pm" + ], + "exporters/libcrypto.pc" => [ + "installdata.pm" + ], + "exporters/libssl.pc" => [ + "installdata.pm" + ], + "exporters/openssl.pc" => [ + "exporters/libcrypto.pc", + "exporters/libssl.pc", + "installdata.pm" + ], + "fuzz/acert-test" => [ + "libcrypto" + ], "fuzz/asn1-test" => [ "libcrypto", "libssl" @@ -6921,17 +7895,85 @@ our %unified_info = ( "fuzz/ct-test" => [ "libcrypto" ], + "fuzz/decoder-test" => [ + "libcrypto" + ], + "fuzz/dtlsclient-test" => [ + "libcrypto", + "libssl" + ], + "fuzz/dtlsserver-test" => [ + "libcrypto", + "libssl" + ], + "fuzz/hashtable-test" => [ + "libcrypto.a" + ], + "fuzz/ml-dsa-test" => [ + "libcrypto.a" + ], + "fuzz/ml-kem-test" => [ + "libcrypto.a" + ], + "fuzz/pem-test" => [ + "libcrypto.a" + ], + "fuzz/provider-test" => [ + "libcrypto" + ], + "fuzz/punycode-test" => [ + "libcrypto.a" + ], + "fuzz/quic-client-test" => [ + "libcrypto.a", + "libssl.a" + ], + "fuzz/quic-lcidm-test" => [ + "libcrypto.a", + "libssl.a" + ], + "fuzz/quic-rcidm-test" => [ + "libcrypto.a", + "libssl.a" + ], + "fuzz/quic-server-test" => [ + "libcrypto.a", + "libssl.a" + ], + "fuzz/quic-srtm-test" => [ + "libcrypto.a", + "libssl.a" + ], "fuzz/server-test" => [ "libcrypto", "libssl" ], + "fuzz/slh-dsa-test" => [ + "libcrypto.a" + ], + "fuzz/smime-test" => [ + "libcrypto", + "libssl" + ], + "fuzz/v3name-test" => [ + "libcrypto.a" + ], "fuzz/x509-test" => [ "libcrypto" ], + "include/internal/param_names.h" => [ + "util/perl|OpenSSL/paramnames.pm" + ], + "include/openssl/core_names.h" => [ + "util/perl|OpenSSL/paramnames.pm" + ], "libcrypto.ld" => [ "configdata.pm", "util/perl/OpenSSL/Ordinals.pm" ], + "libcrypto.pc" => [ + "builddata.pm" + ], "libssl" => [ "libcrypto" ], @@ -6939,6 +7981,14 @@ our %unified_info = ( "configdata.pm", "util/perl/OpenSSL/Ordinals.pm" ], + "libssl.pc" => [ + "builddata.pm" + ], + "openssl.pc" => [ + "builddata.pm", + "libcrypto.pc", + "libssl.pc" + ], "providers/common/der/der_digests_gen.c" => [ "providers/common/der/DIGESTS.asn1", "providers/common/der/NIST.asn1", @@ -6956,11 +8006,19 @@ our %unified_info = ( "providers/common/der/ECX.asn1", "providers/common/der/oids_to_c.pm" ], + "providers/common/der/der_ml_dsa_gen.c" => [ + "providers/common/der/ML_DSA.asn1", + "providers/common/der/oids_to_c.pm" + ], "providers/common/der/der_rsa_gen.c" => [ "providers/common/der/NIST.asn1", "providers/common/der/RSA.asn1", "providers/common/der/oids_to_c.pm" ], + "providers/common/der/der_slh_dsa_gen.c" => [ + "providers/common/der/SLH_DSA.asn1", + "providers/common/der/oids_to_c.pm" + ], "providers/common/der/der_sm2_gen.c" => [ "providers/common/der/SM2.asn1", "providers/common/der/oids_to_c.pm" @@ -7000,6 +8058,12 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ecx_key.o" => [ "providers/common/include/prov/der_ecx.h" ], + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o" => [ + "providers/common/include/prov/der_ml_dsa.h" + ], + "providers/common/der/libcommon-lib-der_ml_dsa_key.o" => [ + "providers/common/include/prov/der_ml_dsa.h" + ], "providers/common/der/libcommon-lib-der_rsa_gen.o" => [ "providers/common/include/prov/der_rsa.h" ], @@ -7007,6 +8071,12 @@ our %unified_info = ( "providers/common/include/prov/der_digests.h", "providers/common/include/prov/der_rsa.h" ], + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o" => [ + "providers/common/include/prov/der_slh_dsa.h" + ], + "providers/common/der/libcommon-lib-der_slh_dsa_key.o" => [ + "providers/common/include/prov/der_slh_dsa.h" + ], "providers/common/der/libcommon-lib-der_wrap_gen.o" => [ "providers/common/include/prov/der_wrap.h" ], @@ -7046,11 +8116,19 @@ our %unified_info = ( "providers/common/der/ECX.asn1", "providers/common/der/oids_to_c.pm" ], + "providers/common/include/prov/der_ml_dsa.h" => [ + "providers/common/der/ML_DSA.asn1", + "providers/common/der/oids_to_c.pm" + ], "providers/common/include/prov/der_rsa.h" => [ "providers/common/der/NIST.asn1", "providers/common/der/RSA.asn1", "providers/common/der/oids_to_c.pm" ], + "providers/common/include/prov/der_slh_dsa.h" => [ + "providers/common/der/SLH_DSA.asn1", + "providers/common/der/oids_to_c.pm" + ], "providers/common/include/prov/der_sm2.h" => [ "providers/common/der/SM2.asn1", "providers/common/der/oids_to_c.pm" @@ -7083,9 +8161,15 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-eddsa_sig.o" => [ "providers/common/include/prov/der_ecx.h" ], + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o" => [ + "providers/common/include/prov/der_ml_dsa.h" + ], "providers/implementations/signature/libdefault-lib-rsa_sig.o" => [ "providers/common/include/prov/der_rsa.h" ], + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o" => [ + "providers/common/include/prov/der_slh_dsa.h" + ], "providers/implementations/signature/libdefault-lib-sm2_sig.o" => [ "providers/common/include/prov/der_sm2.h" ], @@ -7098,9 +8182,15 @@ our %unified_info = ( "providers/implementations/signature/libfips-lib-eddsa_sig.o" => [ "providers/common/include/prov/der_ecx.h" ], + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o" => [ + "providers/common/include/prov/der_ml_dsa.h" + ], "providers/implementations/signature/libfips-lib-rsa_sig.o" => [ "providers/common/include/prov/der_rsa.h" ], + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o" => [ + "providers/common/include/prov/der_slh_dsa.h" + ], "providers/legacy" => [ "libcrypto", "providers/liblegacy.a" @@ -7178,6 +8268,14 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/bio_addr_test" => [ + "libcrypto", + "test/libtestutil.a" + ], + "test/bio_base64_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/bio_callback_test" => [ "libcrypto", "test/libtestutil.a" @@ -7186,6 +8284,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/bio_dgram_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/bio_enc_test" => [ "libcrypto", "test/libtestutil.a" @@ -7194,6 +8296,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/bio_meth_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/bio_prefix_text" => [ "libcrypto", "test/libtestutil.a" @@ -7206,6 +8312,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/bio_tfo_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/bioprinttest" => [ "libcrypto", "test/libtestutil.a" @@ -7218,6 +8328,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/build_wincrypt_test" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_aes" => [ "libcrypto", "libssl" @@ -7238,6 +8352,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_byteorder" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_camellia" => [ "libcrypto", "libssl" @@ -7270,10 +8388,6 @@ our %unified_info = ( "libcrypto", "libssl" ], - "test/buildtest_c_core_names" => [ - "libcrypto", - "libssl" - ], "test/buildtest_c_core_object" => [ "libcrypto", "libssl" @@ -7306,6 +8420,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_e_ostime" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_ebcdic" => [ "libcrypto", "libssl" @@ -7342,6 +8460,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_hpke" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_http" => [ "libcrypto", "libssl" @@ -7350,6 +8472,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_indicator" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_kdf" => [ "libcrypto", "libssl" @@ -7370,6 +8496,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_ml_kem" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_modes" => [ "libcrypto", "libssl" @@ -7410,6 +8540,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_quic" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_rand" => [ "libcrypto", "libssl" @@ -7466,6 +8600,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_thread" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_tls1" => [ "libcrypto", "libssl" @@ -7486,10 +8624,23 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/byteorder_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], + "test/ca_internals_test" => [ + "libssl", + "test/libtestutil.a" + ], "test/casttest" => [ "libcrypto", "test/libtestutil.a" ], + "test/cert_comp_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], "test/chacha_internal_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -7603,7 +8754,11 @@ our %unified_info = ( "libssl", "test/libtestutil.a" ], - "test/defltfips_test" => [ + "test/decoder_propq_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], + "test/defltfips_test" => [ "libcrypto", "test/libtestutil.a" ], @@ -7659,6 +8814,8 @@ our %unified_info = ( ], "test/endecode_test" => [ "libcrypto.a", + "providers/libcommon.a", + "providers/liblegacy.a", "test/libtestutil.a" ], "test/endecoder_legacy_test" => [ @@ -7702,6 +8859,10 @@ our %unified_info = ( "test/evp_pkey_ctx_new_from_name" => [ "libcrypto" ], + "test/evp_pkey_dhkem_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/evp_pkey_dparams_test" => [ "libcrypto", "test/libtestutil.a" @@ -7710,10 +8871,18 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/evp_skey_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/evp_test" => [ "libcrypto", "test/libtestutil.a" ], + "test/evp_xof_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/exdatatest" => [ "libcrypto", "test/libtestutil.a" @@ -7752,6 +8921,10 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/hpke_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/http_test" => [ "libcrypto", "test/libtestutil.a" @@ -7764,17 +8937,25 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/json_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], "test/keymgmt_internal_test" => [ "libcrypto.a", "test/libtestutil.a" ], "test/lhash_test" => [ - "libcrypto", + "libcrypto.a", "test/libtestutil.a" ], "test/libtestutil.a" => [ "libcrypto" ], + "test/list_test" => [ + "test/libtestutil.a" + ], "test/localetest" => [ "libcrypto", "test/libtestutil.a" @@ -7787,10 +8968,26 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/membio_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/memleaktest" => [ "libcrypto", "test/libtestutil.a" ], + "test/ml_dsa_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], + "test/ml_kem_evp_extra_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], + "test/ml_kem_internal_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/modes_internal_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -7815,6 +9012,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/pairwise_fail_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/param_build_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -7847,6 +9048,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/pkcs12_api_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/pkcs12_format_test" => [ "libcrypto", "test/libtestutil.a" @@ -7867,6 +9072,11 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/priority_queue_test" => [ + "libcrypto", + "libssl.a", + "test/libtestutil.a" + ], "test/property_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -7879,6 +9089,10 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/provider_default_search_path_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/provider_fallback_test" => [ "libcrypto", "test/libtestutil.a" @@ -7903,12 +9117,122 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/quic_ackm_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_cc_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_cfq_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_client_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_fc_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_fifd_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_lcidm_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_multistream_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_newcid_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_qlog_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_radix_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_rcidm_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_record_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_srt_gen_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_srtm_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_stream_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_tserver_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_txp_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_txpim_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_wire_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quicapitest" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quicfaultstest" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], "test/rand_status_test" => [ "libcrypto", "test/libtestutil.a" ], "test/rand_test" => [ - "libcrypto", + "libcrypto.a", "test/libtestutil.a" ], "test/rc2test" => [ @@ -7923,7 +9247,7 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], - "test/rdrand_sanitytest" => [ + "test/rdcpu_sanitytest" => [ "libcrypto.a", "test/libtestutil.a" ], @@ -7932,6 +9256,11 @@ our %unified_info = ( "libssl", "test/libtestutil.a" ], + "test/rpktest" => [ + "libcrypto", + "libssl", + "test/libtestutil.a" + ], "test/rsa_mp_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -7944,10 +9273,18 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], - "test/sanitytest" => [ + "test/rsa_x931_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], + "test/safe_math_test" => [ "libcrypto", "test/libtestutil.a" ], + "test/sanitytest" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/secmemtest" => [ "libcrypto", "test/libtestutil.a" @@ -7965,6 +9302,10 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/slh_dsa_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/sm2_internal_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -7994,6 +9335,11 @@ our %unified_info = ( "libssl", "test/libtestutil.a" ], + "test/ssl_handshake_rtt_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], "test/ssl_old_test" => [ "libcrypto.a", "libssl.a", @@ -8010,8 +9356,8 @@ our %unified_info = ( "test/libtestutil.a" ], "test/sslapitest" => [ - "libcrypto", - "libssl", + "libcrypto.a", + "libssl.a", "test/libtestutil.a" ], "test/sslbuffertest" => [ @@ -8028,6 +9374,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/strtoultest" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/sysdefaulttest" => [ "libcrypto", "libssl", @@ -8037,8 +9387,12 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/threadpool_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/threadstest" => [ - "libcrypto", + "libcrypto.a", "test/libtestutil.a" ], "test/threadstest_fips" => [ @@ -8049,6 +9403,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/time_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/tls13ccstest" => [ "libcrypto", "libssl", @@ -8059,6 +9417,11 @@ our %unified_info = ( "libssl.a", "test/libtestutil.a" ], + "test/tls13groupselection_test" => [ + "libcrypto", + "libssl", + "test/libtestutil.a" + ], "test/trace_api_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -8096,6 +9459,10 @@ our %unified_info = ( "libssl.a", "test/libtestutil.a" ], + "test/x509_acert_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/x509_check_cert_pkey_test" => [ "libcrypto", "test/libtestutil.a" @@ -8108,6 +9475,18 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/x509_load_cert_file_test" => [ + "libcrypto", + "test/libtestutil.a" + ], + "test/x509_req_test" => [ + "libcrypto", + "test/libtestutil.a" + ], + "test/x509_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/x509_time_test" => [ "libcrypto", "test/libtestutil.a" @@ -8122,9 +9501,13 @@ our %unified_info = ( }, "dirinfo" => { "apps" => { + "deps" => [ + "apps/ca_internals_test-bin-ca.o" + ], "products" => { "bin" => [ - "apps/openssl" + "apps/openssl", + "test/ca_internals_test" ], "script" => [ "apps/CA.pl", @@ -8135,6 +9518,14 @@ our %unified_info = ( "apps/lib" => { "deps" => [ "apps/lib/openssl-bin-cmp_mock_srv.o", + "apps/lib/ca_internals_test-bin-app_libctx.o", + "apps/lib/ca_internals_test-bin-app_provider.o", + "apps/lib/ca_internals_test-bin-app_rand.o", + "apps/lib/ca_internals_test-bin-app_x509.o", + "apps/lib/ca_internals_test-bin-apps.o", + "apps/lib/ca_internals_test-bin-apps_ui.o", + "apps/lib/ca_internals_test-bin-engine.o", + "apps/lib/ca_internals_test-bin-fmt.o", "apps/lib/cmp_client_test-bin-cmp_mock_srv.o", "apps/lib/uitest-bin-apps_ui.o", "apps/lib/libapps-lib-app_libctx.o", @@ -8143,12 +9534,14 @@ our %unified_info = ( "apps/lib/libapps-lib-app_rand.o", "apps/lib/libapps-lib-app_x509.o", "apps/lib/libapps-lib-apps.o", + "apps/lib/libapps-lib-apps_opt_printf.o", "apps/lib/libapps-lib-apps_ui.o", "apps/lib/libapps-lib-columns.o", "apps/lib/libapps-lib-engine.o", "apps/lib/libapps-lib-engine_loader.o", "apps/lib/libapps-lib-fmt.o", "apps/lib/libapps-lib-http_server.o", + "apps/lib/libapps-lib-log.o", "apps/lib/libapps-lib-names.o", "apps/lib/libapps-lib-opt.o", "apps/lib/libapps-lib-s_cb.o", @@ -8159,6 +9552,7 @@ our %unified_info = ( "products" => { "bin" => [ "apps/openssl", + "test/ca_internals_test", "test/cmp_client_test", "test/uitest" ], @@ -8170,8 +9564,12 @@ our %unified_info = ( }, "crypto" => { "deps" => [ + "crypto/asn1_time_test-bin-ctype.o", + "crypto/ca_internals_test-bin-ctype.o", + "crypto/packettest-bin-quic_vlint.o", "crypto/libcrypto-lib-asn1_dsa.o", "crypto/libcrypto-lib-bsearch.o", + "crypto/libcrypto-lib-comp_methods.o", "crypto/libcrypto-lib-context.o", "crypto/libcrypto-lib-core_algorithm.o", "crypto/libcrypto-lib-core_fetch.o", @@ -8181,10 +9579,13 @@ our %unified_info = ( "crypto/libcrypto-lib-cryptlib.o", "crypto/libcrypto-lib-ctype.o", "crypto/libcrypto-lib-cversion.o", + "crypto/libcrypto-lib-defaults.o", "crypto/libcrypto-lib-der_writer.o", + "crypto/libcrypto-lib-deterministic_nonce.o", "crypto/libcrypto-lib-ebcdic.o", "crypto/libcrypto-lib-ex_data.o", "crypto/libcrypto-lib-getenv.o", + "crypto/libcrypto-lib-indicator_core.o", "crypto/libcrypto-lib-info.o", "crypto/libcrypto-lib-init.o", "crypto/libcrypto-lib-initthread.o", @@ -8202,6 +9603,7 @@ our %unified_info = ( "crypto/libcrypto-lib-params.o", "crypto/libcrypto-lib-params_dup.o", "crypto/libcrypto-lib-params_from_text.o", + "crypto/libcrypto-lib-params_idx.o", "crypto/libcrypto-lib-passphrase.o", "crypto/libcrypto-lib-provider.o", "crypto/libcrypto-lib-provider_child.o", @@ -8209,12 +9611,16 @@ our %unified_info = ( "crypto/libcrypto-lib-provider_core.o", "crypto/libcrypto-lib-provider_predefined.o", "crypto/libcrypto-lib-punycode.o", + "crypto/libcrypto-lib-quic_vlint.o", "crypto/libcrypto-lib-self_test_core.o", + "crypto/libcrypto-lib-sleep.o", "crypto/libcrypto-lib-sparse_array.o", + "crypto/libcrypto-lib-ssl_err.o", "crypto/libcrypto-lib-threads_lib.o", "crypto/libcrypto-lib-threads_none.o", "crypto/libcrypto-lib-threads_pthread.o", "crypto/libcrypto-lib-threads_win.o", + "crypto/libcrypto-lib-time.o", "crypto/libcrypto-lib-trace.o", "crypto/libcrypto-lib-uid.o", "crypto/libfips-lib-asn1_dsa.o", @@ -8237,6 +9643,7 @@ our %unified_info = ( "crypto/libfips-lib-params.o", "crypto/libfips-lib-params_dup.o", "crypto/libfips-lib-params_from_text.o", + "crypto/libfips-lib-params_idx.o", "crypto/libfips-lib-provider_core.o", "crypto/libfips-lib-provider_predefined.o", "crypto/libfips-lib-self_test_core.o", @@ -8244,9 +9651,15 @@ our %unified_info = ( "crypto/libfips-lib-threads_lib.o", "crypto/libfips-lib-threads_none.o", "crypto/libfips-lib-threads_pthread.o", - "crypto/libfips-lib-threads_win.o" + "crypto/libfips-lib-threads_win.o", + "crypto/libfips-lib-time.o" ], "products" => { + "bin" => [ + "test/asn1_time_test", + "test/ca_internals_test", + "test/packettest" + ], "lib" => [ "libcrypto", "providers/libfips.a" @@ -8287,6 +9700,8 @@ our %unified_info = ( }, "crypto/asn1" => { "deps" => [ + "crypto/asn1/asn1_time_test-bin-a_time.o", + "crypto/asn1/ca_internals_test-bin-a_time.o", "crypto/asn1/libcrypto-lib-a_bitstr.o", "crypto/asn1/libcrypto-lib-a_d2i_fp.o", "crypto/asn1/libcrypto-lib-a_digest.o", @@ -8353,6 +9768,10 @@ our %unified_info = ( "crypto/asn1/libcrypto-lib-x_val.o" ], "products" => { + "bin" => [ + "test/asn1_time_test", + "test/ca_internals_test" + ], "lib" => [ "libcrypto" ] @@ -8418,6 +9837,7 @@ our %unified_info = ( "crypto/bio/libcrypto-lib-bss_conn.o", "crypto/bio/libcrypto-lib-bss_core.o", "crypto/bio/libcrypto-lib-bss_dgram.o", + "crypto/bio/libcrypto-lib-bss_dgram_pair.o", "crypto/bio/libcrypto-lib-bss_fd.o", "crypto/bio/libcrypto-lib-bss_file.o", "crypto/bio/libcrypto-lib-bss_log.o", @@ -8574,6 +9994,7 @@ our %unified_info = ( "crypto/cmp/libcrypto-lib-cmp_client.o", "crypto/cmp/libcrypto-lib-cmp_ctx.o", "crypto/cmp/libcrypto-lib-cmp_err.o", + "crypto/cmp/libcrypto-lib-cmp_genm.o", "crypto/cmp/libcrypto-lib-cmp_hdr.o", "crypto/cmp/libcrypto-lib-cmp_http.o", "crypto/cmp/libcrypto-lib-cmp_msg.o", @@ -8941,7 +10362,9 @@ our %unified_info = ( "crypto/err/libcrypto-lib-err_all.o", "crypto/err/libcrypto-lib-err_all_legacy.o", "crypto/err/libcrypto-lib-err_blocks.o", - "crypto/err/libcrypto-lib-err_prn.o" + "crypto/err/libcrypto-lib-err_mark.o", + "crypto/err/libcrypto-lib-err_prn.o", + "crypto/err/libcrypto-lib-err_save.o" ], "products" => { "lib" => [ @@ -9042,7 +10465,9 @@ our %unified_info = ( "crypto/evp/libcrypto-lib-pmeth_check.o", "crypto/evp/libcrypto-lib-pmeth_gn.o", "crypto/evp/libcrypto-lib-pmeth_lib.o", + "crypto/evp/libcrypto-lib-s_lib.o", "crypto/evp/libcrypto-lib-signature.o", + "crypto/evp/libcrypto-lib-skeymgmt_meth.o", "crypto/evp/libfips-lib-asymcipher.o", "crypto/evp/libfips-lib-dh_support.o", "crypto/evp/libfips-lib-digest.o", @@ -9058,14 +10483,15 @@ our %unified_info = ( "crypto/evp/libfips-lib-kem.o", "crypto/evp/libfips-lib-keymgmt_lib.o", "crypto/evp/libfips-lib-keymgmt_meth.o", - "crypto/evp/libfips-lib-m_sigver.o", "crypto/evp/libfips-lib-mac_lib.o", "crypto/evp/libfips-lib-mac_meth.o", "crypto/evp/libfips-lib-p_lib.o", "crypto/evp/libfips-lib-pmeth_check.o", "crypto/evp/libfips-lib-pmeth_gn.o", "crypto/evp/libfips-lib-pmeth_lib.o", - "crypto/evp/libfips-lib-signature.o" + "crypto/evp/libfips-lib-s_lib.o", + "crypto/evp/libfips-lib-signature.o", + "crypto/evp/libfips-lib-skeymgmt_meth.o" ], "products" => { "lib" => [ @@ -9098,6 +10524,20 @@ our %unified_info = ( ] } }, + "crypto/hashtable" => { + "deps" => [ + "crypto/hashtable/libcrypto-lib-hashfunc.o", + "crypto/hashtable/libcrypto-lib-hashtable.o", + "crypto/hashtable/libfips-lib-hashfunc.o", + "crypto/hashtable/libfips-lib-hashtable.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, "crypto/hmac" => { "deps" => [ "crypto/hmac/libcrypto-lib-hmac.o", @@ -9110,6 +10550,17 @@ our %unified_info = ( ] } }, + "crypto/hpke" => { + "deps" => [ + "crypto/hpke/libcrypto-lib-hpke.o", + "crypto/hpke/libcrypto-lib-hpke_util.o" + ], + "products" => { + "lib" => [ + "libcrypto" + ] + } + }, "crypto/http" => { "deps" => [ "crypto/http/libcrypto-lib-http_client.o", @@ -9193,6 +10644,44 @@ our %unified_info = ( ] } }, + "crypto/ml_dsa" => { + "deps" => [ + "crypto/ml_dsa/libcrypto-lib-ml_dsa_encoders.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key_compress.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_matrix.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_ntt.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_params.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sample.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sign.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_encoders.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_key.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_key_compress.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_matrix.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_ntt.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_params.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_sample.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_sign.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, + "crypto/ml_kem" => { + "deps" => [ + "crypto/ml_kem/libcrypto-lib-ml_kem.o", + "crypto/ml_kem/libfips-lib-ml_kem.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, "crypto/modes" => { "deps" => [ "crypto/modes/libcrypto-lib-cbc128.o", @@ -9206,6 +10695,7 @@ our %unified_info = ( "crypto/modes/libcrypto-lib-siv128.o", "crypto/modes/libcrypto-lib-wrap128.o", "crypto/modes/libcrypto-lib-xts128.o", + "crypto/modes/libcrypto-lib-xts128gb.o", "crypto/modes/libfips-lib-cbc128.o", "crypto/modes/libfips-lib-ccm128.o", "crypto/modes/libfips-lib-cfb128.o", @@ -9213,7 +10703,8 @@ our %unified_info = ( "crypto/modes/libfips-lib-gcm128.o", "crypto/modes/libfips-lib-ofb128.o", "crypto/modes/libfips-lib-wrap128.o", - "crypto/modes/libfips-lib-xts128.o" + "crypto/modes/libfips-lib-xts128.o", + "crypto/modes/libfips-lib-xts128gb.o" ], "products" => { "lib" => [ @@ -9356,6 +10847,7 @@ our %unified_info = ( "crypto/rand/libcrypto-lib-rand_lib.o", "crypto/rand/libcrypto-lib-rand_meth.o", "crypto/rand/libcrypto-lib-rand_pool.o", + "crypto/rand/libcrypto-lib-rand_uniform.o", "crypto/rand/libcrypto-lib-randfile.o", "crypto/rand/libfips-lib-rand_lib.o" ], @@ -9500,6 +10992,36 @@ our %unified_info = ( ] } }, + "crypto/slh_dsa" => { + "deps" => [ + "crypto/slh_dsa/libcrypto-lib-slh_adrs.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa_hash_ctx.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa_key.o", + "crypto/slh_dsa/libcrypto-lib-slh_fors.o", + "crypto/slh_dsa/libcrypto-lib-slh_hash.o", + "crypto/slh_dsa/libcrypto-lib-slh_hypertree.o", + "crypto/slh_dsa/libcrypto-lib-slh_params.o", + "crypto/slh_dsa/libcrypto-lib-slh_wots.o", + "crypto/slh_dsa/libcrypto-lib-slh_xmss.o", + "crypto/slh_dsa/libfips-lib-slh_adrs.o", + "crypto/slh_dsa/libfips-lib-slh_dsa.o", + "crypto/slh_dsa/libfips-lib-slh_dsa_hash_ctx.o", + "crypto/slh_dsa/libfips-lib-slh_dsa_key.o", + "crypto/slh_dsa/libfips-lib-slh_fors.o", + "crypto/slh_dsa/libfips-lib-slh_hash.o", + "crypto/slh_dsa/libfips-lib-slh_hypertree.o", + "crypto/slh_dsa/libfips-lib-slh_params.o", + "crypto/slh_dsa/libfips-lib-slh_wots.o", + "crypto/slh_dsa/libfips-lib-slh_xmss.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, "crypto/sm2" => { "deps" => [ "crypto/sm2/libcrypto-lib-sm2_crypt.o", @@ -9573,6 +11095,38 @@ our %unified_info = ( ] } }, + "crypto/thread" => { + "deps" => [ + "crypto/thread/libcrypto-lib-api.o", + "crypto/thread/libcrypto-lib-arch.o", + "crypto/thread/libcrypto-lib-internal.o", + "crypto/thread/libfips-lib-api.o", + "crypto/thread/libfips-lib-arch.o", + "crypto/thread/libfips-lib-internal.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, + "crypto/thread/arch" => { + "deps" => [ + "crypto/thread/arch/libcrypto-lib-thread_none.o", + "crypto/thread/arch/libcrypto-lib-thread_posix.o", + "crypto/thread/arch/libcrypto-lib-thread_win.o", + "crypto/thread/arch/libfips-lib-thread_none.o", + "crypto/thread/arch/libfips-lib-thread_posix.o", + "crypto/thread/arch/libfips-lib-thread_win.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, "crypto/ts" => { "deps" => [ "crypto/ts/libcrypto-lib-ts_asn1.o", @@ -9639,14 +11193,22 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-pcy_map.o", "crypto/x509/libcrypto-lib-pcy_node.o", "crypto/x509/libcrypto-lib-pcy_tree.o", + "crypto/x509/libcrypto-lib-t_acert.o", "crypto/x509/libcrypto-lib-t_crl.o", "crypto/x509/libcrypto-lib-t_req.o", "crypto/x509/libcrypto-lib-t_x509.o", + "crypto/x509/libcrypto-lib-v3_aaa.o", + "crypto/x509/libcrypto-lib-v3_ac_tgt.o", "crypto/x509/libcrypto-lib-v3_addr.o", "crypto/x509/libcrypto-lib-v3_admis.o", "crypto/x509/libcrypto-lib-v3_akeya.o", "crypto/x509/libcrypto-lib-v3_akid.o", "crypto/x509/libcrypto-lib-v3_asid.o", + "crypto/x509/libcrypto-lib-v3_attrdesc.o", + "crypto/x509/libcrypto-lib-v3_attrmap.o", + "crypto/x509/libcrypto-lib-v3_audit_id.o", + "crypto/x509/libcrypto-lib-v3_authattid.o", + "crypto/x509/libcrypto-lib-v3_battcons.o", "crypto/x509/libcrypto-lib-v3_bcons.o", "crypto/x509/libcrypto-lib-v3_bitst.o", "crypto/x509/libcrypto-lib-v3_conf.o", @@ -9655,12 +11217,17 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_enum.o", "crypto/x509/libcrypto-lib-v3_extku.o", "crypto/x509/libcrypto-lib-v3_genn.o", + "crypto/x509/libcrypto-lib-v3_group_ac.o", "crypto/x509/libcrypto-lib-v3_ia5.o", + "crypto/x509/libcrypto-lib-v3_ind_iss.o", "crypto/x509/libcrypto-lib-v3_info.o", "crypto/x509/libcrypto-lib-v3_int.o", + "crypto/x509/libcrypto-lib-v3_iobo.o", "crypto/x509/libcrypto-lib-v3_ist.o", "crypto/x509/libcrypto-lib-v3_lib.o", "crypto/x509/libcrypto-lib-v3_ncons.o", + "crypto/x509/libcrypto-lib-v3_no_ass.o", + "crypto/x509/libcrypto-lib-v3_no_rev_avail.o", "crypto/x509/libcrypto-lib-v3_pci.o", "crypto/x509/libcrypto-lib-v3_pcia.o", "crypto/x509/libcrypto-lib-v3_pcons.o", @@ -9668,13 +11235,20 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_pmaps.o", "crypto/x509/libcrypto-lib-v3_prn.o", "crypto/x509/libcrypto-lib-v3_purp.o", + "crypto/x509/libcrypto-lib-v3_rolespec.o", "crypto/x509/libcrypto-lib-v3_san.o", + "crypto/x509/libcrypto-lib-v3_sda.o", + "crypto/x509/libcrypto-lib-v3_single_use.o", "crypto/x509/libcrypto-lib-v3_skid.o", + "crypto/x509/libcrypto-lib-v3_soa_id.o", "crypto/x509/libcrypto-lib-v3_sxnet.o", + "crypto/x509/libcrypto-lib-v3_timespec.o", "crypto/x509/libcrypto-lib-v3_tlsf.o", + "crypto/x509/libcrypto-lib-v3_usernotice.o", "crypto/x509/libcrypto-lib-v3_utf8.o", "crypto/x509/libcrypto-lib-v3_utl.o", "crypto/x509/libcrypto-lib-v3err.o", + "crypto/x509/libcrypto-lib-x509_acert.o", "crypto/x509/libcrypto-lib-x509_att.o", "crypto/x509/libcrypto-lib-x509_cmp.o", "crypto/x509/libcrypto-lib-x509_d2.o", @@ -9692,6 +11266,7 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x509_v3.o", "crypto/x509/libcrypto-lib-x509_vfy.o", "crypto/x509/libcrypto-lib-x509_vpm.o", + "crypto/x509/libcrypto-lib-x509aset.o", "crypto/x509/libcrypto-lib-x509cset.o", "crypto/x509/libcrypto-lib-x509name.o", "crypto/x509/libcrypto-lib-x509rset.o", @@ -9701,6 +11276,7 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x_attrib.o", "crypto/x509/libcrypto-lib-x_crl.o", "crypto/x509/libcrypto-lib-x_exten.o", + "crypto/x509/libcrypto-lib-x_ietfatt.o", "crypto/x509/libcrypto-lib-x_name.o", "crypto/x509/libcrypto-lib-x_pubkey.o", "crypto/x509/libcrypto-lib-x_req.o", @@ -9728,6 +11304,7 @@ our %unified_info = ( "fuzz" => { "products" => { "bin" => [ + "fuzz/acert-test", "fuzz/asn1-test", "fuzz/asn1parse-test", "fuzz/bignum-test", @@ -9738,13 +11315,31 @@ our %unified_info = ( "fuzz/conf-test", "fuzz/crl-test", "fuzz/ct-test", + "fuzz/decoder-test", + "fuzz/dtlsclient-test", + "fuzz/dtlsserver-test", + "fuzz/hashtable-test", + "fuzz/ml-dsa-test", + "fuzz/ml-kem-test", + "fuzz/pem-test", + "fuzz/provider-test", + "fuzz/punycode-test", + "fuzz/quic-client-test", + "fuzz/quic-lcidm-test", + "fuzz/quic-rcidm-test", + "fuzz/quic-server-test", + "fuzz/quic-srtm-test", "fuzz/server-test", + "fuzz/slh-dsa-test", + "fuzz/smime-test", + "fuzz/v3name-test", "fuzz/x509-test" ] } }, "providers" => { "deps" => [ + "providers/endecode_test-bin-legacyprov.o", "providers/evp_extra_test-bin-legacyprov.o", "providers/libcrypto-lib-baseprov.o", "providers/libcrypto-lib-defltprov.o", @@ -9754,6 +11349,7 @@ our %unified_info = ( ], "products" => { "bin" => [ + "test/endecode_test", "test/evp_extra_test" ], "dso" => [ @@ -9805,8 +11401,12 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ec_sig.o", "providers/common/der/libcommon-lib-der_ecx_gen.o", "providers/common/der/libcommon-lib-der_ecx_key.o", + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o", + "providers/common/der/libcommon-lib-der_ml_dsa_key.o", "providers/common/der/libcommon-lib-der_rsa_gen.o", "providers/common/der/libcommon-lib-der_rsa_key.o", + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o", + "providers/common/der/libcommon-lib-der_slh_dsa_key.o", "providers/common/der/libcommon-lib-der_wrap_gen.o", "providers/common/der/libdefault-lib-der_rsa_sig.o", "providers/common/der/libdefault-lib-der_sm2_gen.o", @@ -9825,6 +11425,7 @@ our %unified_info = ( "providers/fips" => { "deps" => [ "providers/fips/fips-dso-fips_entry.o", + "providers/fips/libfips-lib-fipsindicator.o", "providers/fips/libfips-lib-fipsprov.o", "providers/fips/libfips-lib-self_test.o", "providers/fips/libfips-lib-self_test_kats.o" @@ -9868,6 +11469,9 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_aes_ccm_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_polyval.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_ocb.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_ocb_hw.o", @@ -9892,7 +11496,13 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_cts.o", "providers/implementations/ciphers/libdefault-lib-cipher_null.o", "providers/implementations/ciphers/libdefault-lib-cipher_sm4.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_sm4_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes_common.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes_default.o", @@ -9989,7 +11599,10 @@ our %unified_info = ( "providers/implementations/encode_decode/libdefault-lib-encode_key2blob.o", "providers/implementations/encode_decode/libdefault-lib-encode_key2ms.o", "providers/implementations/encode_decode/libdefault-lib-encode_key2text.o", - "providers/implementations/encode_decode/libdefault-lib-endecoder_common.o" + "providers/implementations/encode_decode/libdefault-lib-endecoder_common.o", + "providers/implementations/encode_decode/libdefault-lib-ml_common_codecs.o", + "providers/implementations/encode_decode/libdefault-lib-ml_dsa_codecs.o", + "providers/implementations/encode_decode/libdefault-lib-ml_kem_codecs.o" ], "products" => { "lib" => [ @@ -10017,7 +11630,9 @@ our %unified_info = ( }, "providers/implementations/kdfs" => { "deps" => [ + "providers/implementations/kdfs/libdefault-lib-argon2.o", "providers/implementations/kdfs/libdefault-lib-hkdf.o", + "providers/implementations/kdfs/libdefault-lib-hmacdrbg_kdf.o", "providers/implementations/kdfs/libdefault-lib-kbkdf.o", "providers/implementations/kdfs/libdefault-lib-krb5kdf.o", "providers/implementations/kdfs/libdefault-lib-pbkdf2.o", @@ -10036,7 +11651,8 @@ our %unified_info = ( "providers/implementations/kdfs/libfips-lib-sskdf.o", "providers/implementations/kdfs/libfips-lib-tls1_prf.o", "providers/implementations/kdfs/libfips-lib-x942kdf.o", - "providers/implementations/kdfs/liblegacy-lib-pbkdf1.o" + "providers/implementations/kdfs/liblegacy-lib-pbkdf1.o", + "providers/implementations/kdfs/liblegacy-lib-pvkkdf.o" ], "products" => { "lib" => [ @@ -10048,13 +11664,22 @@ our %unified_info = ( }, "providers/implementations/kem" => { "deps" => [ + "providers/implementations/kem/libdefault-lib-ec_kem.o", + "providers/implementations/kem/libdefault-lib-ecx_kem.o", + "providers/implementations/kem/libdefault-lib-kem_util.o", + "providers/implementations/kem/libdefault-lib-ml_kem_kem.o", + "providers/implementations/kem/libdefault-lib-mlx_kem.o", "providers/implementations/kem/libdefault-lib-rsa_kem.o", - "providers/implementations/kem/libfips-lib-rsa_kem.o" + "providers/implementations/kem/libfips-lib-ml_kem_kem.o", + "providers/implementations/kem/libfips-lib-mlx_kem.o", + "providers/implementations/kem/libfips-lib-rsa_kem.o", + "providers/implementations/kem/libtemplate-lib-template_kem.o" ], "products" => { "lib" => [ "providers/libdefault.a", - "providers/libfips.a" + "providers/libfips.a", + "providers/libtemplate.a" ] } }, @@ -10066,19 +11691,29 @@ our %unified_info = ( "providers/implementations/keymgmt/libdefault-lib-ecx_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-kdf_legacy_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-mac_legacy_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-ml_dsa_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-ml_kem_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-mlx_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-rsa_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-slh_dsa_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-dh_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-dsa_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-ec_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-ecx_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-kdf_legacy_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-mac_legacy_kmgmt.o", - "providers/implementations/keymgmt/libfips-lib-rsa_kmgmt.o" + "providers/implementations/keymgmt/libfips-lib-ml_dsa_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-ml_kem_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-mlx_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-rsa_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-slh_dsa_kmgmt.o", + "providers/implementations/keymgmt/libtemplate-lib-template_kmgmt.o" ], "products" => { "lib" => [ "providers/libdefault.a", - "providers/libfips.a" + "providers/libfips.a", + "providers/libtemplate.a" ] } }, @@ -10106,18 +11741,18 @@ our %unified_info = ( }, "providers/implementations/rands" => { "deps" => [ - "providers/implementations/rands/libdefault-lib-crngt.o", "providers/implementations/rands/libdefault-lib-drbg.o", "providers/implementations/rands/libdefault-lib-drbg_ctr.o", "providers/implementations/rands/libdefault-lib-drbg_hash.o", "providers/implementations/rands/libdefault-lib-drbg_hmac.o", "providers/implementations/rands/libdefault-lib-seed_src.o", + "providers/implementations/rands/libdefault-lib-seed_src_jitter.o", "providers/implementations/rands/libdefault-lib-test_rng.o", - "providers/implementations/rands/libfips-lib-crngt.o", "providers/implementations/rands/libfips-lib-drbg.o", "providers/implementations/rands/libfips-lib-drbg_ctr.o", "providers/implementations/rands/libfips-lib-drbg_hash.o", "providers/implementations/rands/libfips-lib-drbg_hmac.o", + "providers/implementations/rands/libfips-lib-fips_crng_test.o", "providers/implementations/rands/libfips-lib-test_rng.o" ], "products" => { @@ -10146,13 +11781,31 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-ecdsa_sig.o", "providers/implementations/signature/libdefault-lib-eddsa_sig.o", "providers/implementations/signature/libdefault-lib-mac_legacy_sig.o", + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o", "providers/implementations/signature/libdefault-lib-rsa_sig.o", + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o", "providers/implementations/signature/libdefault-lib-sm2_sig.o", "providers/implementations/signature/libfips-lib-dsa_sig.o", "providers/implementations/signature/libfips-lib-ecdsa_sig.o", "providers/implementations/signature/libfips-lib-eddsa_sig.o", "providers/implementations/signature/libfips-lib-mac_legacy_sig.o", - "providers/implementations/signature/libfips-lib-rsa_sig.o" + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o", + "providers/implementations/signature/libfips-lib-rsa_sig.o", + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o" + ], + "products" => { + "lib" => [ + "providers/libdefault.a", + "providers/libfips.a" + ] + } + }, + "providers/implementations/skeymgmt" => { + "deps" => [ + "providers/implementations/skeymgmt/libdefault-lib-aes_skmgmt.o", + "providers/implementations/skeymgmt/libdefault-lib-generic.o", + "providers/implementations/skeymgmt/libfips-lib-aes_skmgmt.o", + "providers/implementations/skeymgmt/libfips-lib-generic.o" ], "products" => { "lib" => [ @@ -10180,14 +11833,15 @@ our %unified_info = ( "ssl/libssl-lib-d1_srtp.o", "ssl/libssl-lib-methods.o", "ssl/libssl-lib-pqueue.o", + "ssl/libssl-lib-priority_queue.o", "ssl/libssl-lib-s3_enc.o", "ssl/libssl-lib-s3_lib.o", "ssl/libssl-lib-s3_msg.o", "ssl/libssl-lib-ssl_asn1.o", "ssl/libssl-lib-ssl_cert.o", + "ssl/libssl-lib-ssl_cert_comp.o", "ssl/libssl-lib-ssl_ciph.o", "ssl/libssl-lib-ssl_conf.o", - "ssl/libssl-lib-ssl_err.o", "ssl/libssl-lib-ssl_err_legacy.o", "ssl/libssl-lib-ssl_init.o", "ssl/libssl-lib-ssl_lib.o", @@ -10203,32 +11857,107 @@ our %unified_info = ( "ssl/libssl-lib-t1_trce.o", "ssl/libssl-lib-tls13_enc.o", "ssl/libssl-lib-tls_depr.o", - "ssl/libssl-lib-tls_srp.o", - "ssl/libdefault-lib-s3_cbc.o", - "ssl/libfips-lib-s3_cbc.o" + "ssl/libssl-lib-tls_srp.o" ], "products" => { "lib" => [ - "libssl", - "providers/libdefault.a", - "providers/libfips.a" + "libssl" + ] + } + }, + "ssl/quic" => { + "deps" => [ + "ssl/quic/libssl-lib-cc_newreno.o", + "ssl/quic/libssl-lib-json_enc.o", + "ssl/quic/libssl-lib-qlog.o", + "ssl/quic/libssl-lib-qlog_event_helpers.o", + "ssl/quic/libssl-lib-quic_ackm.o", + "ssl/quic/libssl-lib-quic_cfq.o", + "ssl/quic/libssl-lib-quic_channel.o", + "ssl/quic/libssl-lib-quic_demux.o", + "ssl/quic/libssl-lib-quic_engine.o", + "ssl/quic/libssl-lib-quic_fc.o", + "ssl/quic/libssl-lib-quic_fifd.o", + "ssl/quic/libssl-lib-quic_impl.o", + "ssl/quic/libssl-lib-quic_lcidm.o", + "ssl/quic/libssl-lib-quic_method.o", + "ssl/quic/libssl-lib-quic_obj.o", + "ssl/quic/libssl-lib-quic_port.o", + "ssl/quic/libssl-lib-quic_rcidm.o", + "ssl/quic/libssl-lib-quic_reactor.o", + "ssl/quic/libssl-lib-quic_reactor_wait_ctx.o", + "ssl/quic/libssl-lib-quic_record_rx.o", + "ssl/quic/libssl-lib-quic_record_shared.o", + "ssl/quic/libssl-lib-quic_record_tx.o", + "ssl/quic/libssl-lib-quic_record_util.o", + "ssl/quic/libssl-lib-quic_rstream.o", + "ssl/quic/libssl-lib-quic_rx_depack.o", + "ssl/quic/libssl-lib-quic_sf_list.o", + "ssl/quic/libssl-lib-quic_srt_gen.o", + "ssl/quic/libssl-lib-quic_srtm.o", + "ssl/quic/libssl-lib-quic_sstream.o", + "ssl/quic/libssl-lib-quic_statm.o", + "ssl/quic/libssl-lib-quic_stream_map.o", + "ssl/quic/libssl-lib-quic_thread_assist.o", + "ssl/quic/libssl-lib-quic_tls.o", + "ssl/quic/libssl-lib-quic_tls_api.o", + "ssl/quic/libssl-lib-quic_trace.o", + "ssl/quic/libssl-lib-quic_tserver.o", + "ssl/quic/libssl-lib-quic_txp.o", + "ssl/quic/libssl-lib-quic_txpim.o", + "ssl/quic/libssl-lib-quic_types.o", + "ssl/quic/libssl-lib-quic_wire.o", + "ssl/quic/libssl-lib-quic_wire_pkt.o", + "ssl/quic/libssl-lib-uint_set.o" + ], + "products" => { + "lib" => [ + "libssl" ] } }, "ssl/record" => { "deps" => [ - "ssl/record/libssl-lib-dtls1_bitmap.o", "ssl/record/libssl-lib-rec_layer_d1.o", - "ssl/record/libssl-lib-rec_layer_s3.o", - "ssl/record/libssl-lib-ssl3_buffer.o", - "ssl/record/libssl-lib-ssl3_record.o", - "ssl/record/libssl-lib-ssl3_record_tls13.o", - "ssl/record/libcommon-lib-tls_pad.o" + "ssl/record/libssl-lib-rec_layer_s3.o" + ], + "products" => { + "lib" => [ + "libssl" + ] + } + }, + "ssl/record/methods" => { + "deps" => [ + "ssl/record/methods/libssl-lib-dtls_meth.o", + "ssl/record/methods/libssl-lib-ssl3_meth.o", + "ssl/record/methods/libssl-lib-tls13_meth.o", + "ssl/record/methods/libssl-lib-tls1_meth.o", + "ssl/record/methods/libssl-lib-tls_common.o", + "ssl/record/methods/libssl-lib-tls_multib.o", + "ssl/record/methods/libssl-lib-tlsany_meth.o", + "ssl/record/methods/libcommon-lib-tls_pad.o", + "ssl/record/methods/libdefault-lib-ssl3_cbc.o", + "ssl/record/methods/libfips-lib-ssl3_cbc.o" ], "products" => { "lib" => [ "libssl", - "providers/libcommon.a" + "providers/libcommon.a", + "providers/libdefault.a", + "providers/libfips.a" + ] + } + }, + "ssl/rio" => { + "deps" => [ + "ssl/rio/libssl-lib-poll_builder.o", + "ssl/rio/libssl-lib-poll_immediate.o", + "ssl/rio/libssl-lib-rio_notifier.o" + ], + "products" => { + "lib" => [ + "libssl" ] } }, @@ -10266,9 +11995,40 @@ our %unified_info = ( "test/helpers/dtlstest-bin-ssltestlib.o", "test/helpers/endecode_test-bin-predefined_dhparams.o", "test/helpers/fatalerrtest-bin-ssltestlib.o", + "test/helpers/json_test-bin-noisydgrambio.o", + "test/helpers/json_test-bin-pktsplitbio.o", + "test/helpers/json_test-bin-quictestlib.o", + "test/helpers/json_test-bin-ssltestlib.o", + "test/helpers/pkcs12_api_test-bin-pkcs12.o", "test/helpers/pkcs12_format_test-bin-pkcs12.o", + "test/helpers/quic_multistream_test-bin-noisydgrambio.o", + "test/helpers/quic_multistream_test-bin-pktsplitbio.o", + "test/helpers/quic_multistream_test-bin-quictestlib.o", + "test/helpers/quic_multistream_test-bin-ssltestlib.o", + "test/helpers/quic_newcid_test-bin-noisydgrambio.o", + "test/helpers/quic_newcid_test-bin-pktsplitbio.o", + "test/helpers/quic_newcid_test-bin-quictestlib.o", + "test/helpers/quic_newcid_test-bin-ssltestlib.o", + "test/helpers/quic_radix_test-bin-noisydgrambio.o", + "test/helpers/quic_radix_test-bin-pktsplitbio.o", + "test/helpers/quic_radix_test-bin-quictestlib.o", + "test/helpers/quic_radix_test-bin-ssltestlib.o", + "test/helpers/quic_srt_gen_test-bin-noisydgrambio.o", + "test/helpers/quic_srt_gen_test-bin-pktsplitbio.o", + "test/helpers/quic_srt_gen_test-bin-quictestlib.o", + "test/helpers/quic_srt_gen_test-bin-ssltestlib.o", + "test/helpers/quicapitest-bin-noisydgrambio.o", + "test/helpers/quicapitest-bin-pktsplitbio.o", + "test/helpers/quicapitest-bin-quictestlib.o", + "test/helpers/quicapitest-bin-ssltestlib.o", + "test/helpers/quicfaultstest-bin-noisydgrambio.o", + "test/helpers/quicfaultstest-bin-pktsplitbio.o", + "test/helpers/quicfaultstest-bin-quictestlib.o", + "test/helpers/quicfaultstest-bin-ssltestlib.o", "test/helpers/recordlentest-bin-ssltestlib.o", + "test/helpers/rpktest-bin-ssltestlib.o", "test/helpers/servername_test-bin-ssltestlib.o", + "test/helpers/ssl_handshake_rtt_test-bin-ssltestlib.o", "test/helpers/ssl_old_test-bin-predefined_dhparams.o", "test/helpers/ssl_test-bin-handshake.o", "test/helpers/ssl_test-bin-handshake_srp.o", @@ -10277,7 +12037,8 @@ our %unified_info = ( "test/helpers/sslapitest-bin-ssltestlib.o", "test/helpers/sslbuffertest-bin-ssltestlib.o", "test/helpers/sslcorrupttest-bin-ssltestlib.o", - "test/helpers/tls13ccstest-bin-ssltestlib.o" + "test/helpers/tls13ccstest-bin-ssltestlib.o", + "test/helpers/tls13groupselection_test-bin-ssltestlib.o" ], "products" => { "bin" => [ @@ -10295,16 +12056,37 @@ our %unified_info = ( "test/dtlstest", "test/endecode_test", "test/fatalerrtest", + "test/json_test", + "test/pkcs12_api_test", "test/pkcs12_format_test", + "test/quic_multistream_test", + "test/quic_newcid_test", + "test/quic_radix_test", + "test/quic_srt_gen_test", + "test/quicapitest", + "test/quicfaultstest", "test/recordlentest", + "test/rpktest", "test/servername_test", + "test/ssl_handshake_rtt_test", "test/ssl_old_test", "test/ssl_test", "test/ssl_test_ctx_test", "test/sslapitest", "test/sslbuffertest", "test/sslcorrupttest", - "test/tls13ccstest" + "test/tls13ccstest", + "test/tls13groupselection_test" + ] + } + }, + "test/radix" => { + "deps" => [ + "test/radix/quic_radix_test-bin-quic_radix.o" + ], + "products" => { + "bin" => [ + "test/quic_radix_test" ] } }, @@ -10316,6 +12098,7 @@ our %unified_info = ( "test/testutil/libtestutil-lib-driver.o", "test/testutil/libtestutil-lib-fake_random.o", "test/testutil/libtestutil-lib-format_output.o", + "test/testutil/libtestutil-lib-helper.o", "test/testutil/libtestutil-lib-load.o", "test/testutil/libtestutil-lib-main.o", "test/testutil/libtestutil-lib-options.o", @@ -10351,6 +12134,12 @@ our %unified_info = ( } }, "generate" => { + "OpenSSLConfig.cmake" => [ + "exporters/cmake/OpenSSLConfig.cmake.in" + ], + "OpenSSLConfigVersion.cmake" => [ + "exporters/cmake/OpenSSLConfigVersion.cmake.in" + ], "apps/progs.c" => [ "apps/progs.pl", "\"-C\"", @@ -10361,6 +12150,19 @@ our %unified_info = ( "\"-H\"", "\$(APPS_OPENSSL)" ], + "builddata.pm" => [ + "util/mkinstallvars.pl", + "PREFIX=.", + "BINDIR=apps", + "APPLINKDIR=ms", + "LIBDIR=", + "INCLUDEDIR=include", + "\"INCLUDEDIR=\$(SRCDIR)/include\"", + "ENGINESDIR=engines", + "MODULESDIR=providers", + "\"VERSION=\$(VERSION)\"", + "\"LDLIBS=\$(LIB_EX_LIBS)\"" + ], "crypto/aes/aes-586.S" => [ "crypto/aes/asm/aes-586.pl" ], @@ -10382,6 +12184,24 @@ our %unified_info = ( "crypto/aes/aes-ppc.s" => [ "crypto/aes/asm/aes-ppc.pl" ], + "crypto/aes/aes-riscv32-zkn.s" => [ + "crypto/aes/asm/aes-riscv32-zkn.pl" + ], + "crypto/aes/aes-riscv64-zkn.s" => [ + "crypto/aes/asm/aes-riscv64-zkn.pl" + ], + "crypto/aes/aes-riscv64-zvbb-zvkg-zvkned.s" => [ + "crypto/aes/asm/aes-riscv64-zvbb-zvkg-zvkned.pl" + ], + "crypto/aes/aes-riscv64-zvkb-zvkned.s" => [ + "crypto/aes/asm/aes-riscv64-zvkb-zvkned.pl" + ], + "crypto/aes/aes-riscv64-zvkned.s" => [ + "crypto/aes/asm/aes-riscv64-zvkned.pl" + ], + "crypto/aes/aes-riscv64.s" => [ + "crypto/aes/asm/aes-riscv64.pl" + ], "crypto/aes/aes-s390x.S" => [ "crypto/aes/asm/aes-s390x.pl" ], @@ -10409,6 +12229,9 @@ our %unified_info = ( "crypto/aes/aesni-x86_64.s" => [ "crypto/aes/asm/aesni-x86_64.pl" ], + "crypto/aes/aesni-xts-avx512.s" => [ + "crypto/aes/asm/aesni-xts-avx512.pl" + ], "crypto/aes/aesp8-ppc.s" => [ "crypto/aes/asm/aesp8-ppc.pl" ], @@ -10421,12 +12244,18 @@ our %unified_info = ( "crypto/aes/bsaes-armv7.S" => [ "crypto/aes/asm/bsaes-armv7.pl" ], + "crypto/aes/bsaes-armv8.S" => [ + "crypto/aes/asm/bsaes-armv8.pl" + ], "crypto/aes/bsaes-x86_64.s" => [ "crypto/aes/asm/bsaes-x86_64.pl" ], "crypto/aes/vpaes-armv8.S" => [ "crypto/aes/asm/vpaes-armv8.pl" ], + "crypto/aes/vpaes-loongarch64.S" => [ + "crypto/aes/asm/vpaes-loongarch64.pl" + ], "crypto/aes/vpaes-ppc.s" => [ "crypto/aes/asm/vpaes-ppc.pl" ], @@ -10487,15 +12316,33 @@ our %unified_info = ( "crypto/bn/ppc-mont.s" => [ "crypto/bn/asm/ppc-mont.pl" ], + "crypto/bn/ppc64-mont-fixed.s" => [ + "crypto/bn/asm/ppc64-mont-fixed.pl" + ], "crypto/bn/ppc64-mont.s" => [ "crypto/bn/asm/ppc64-mont.pl" ], + "crypto/bn/rsaz-2k-avx512.s" => [ + "crypto/bn/asm/rsaz-2k-avx512.pl" + ], + "crypto/bn/rsaz-2k-avxifma.s" => [ + "crypto/bn/asm/rsaz-2k-avxifma.pl" + ], + "crypto/bn/rsaz-3k-avx512.s" => [ + "crypto/bn/asm/rsaz-3k-avx512.pl" + ], + "crypto/bn/rsaz-3k-avxifma.s" => [ + "crypto/bn/asm/rsaz-3k-avxifma.pl" + ], + "crypto/bn/rsaz-4k-avx512.s" => [ + "crypto/bn/asm/rsaz-4k-avx512.pl" + ], + "crypto/bn/rsaz-4k-avxifma.s" => [ + "crypto/bn/asm/rsaz-4k-avxifma.pl" + ], "crypto/bn/rsaz-avx2.s" => [ "crypto/bn/asm/rsaz-avx2.pl" ], - "crypto/bn/rsaz-avx512.s" => [ - "crypto/bn/asm/rsaz-avx512.pl" - ], "crypto/bn/rsaz-x86_64.s" => [ "crypto/bn/asm/rsaz-x86_64.pl" ], @@ -10557,6 +12404,9 @@ our %unified_info = ( "crypto/chacha/chacha-armv4.S" => [ "crypto/chacha/asm/chacha-armv4.pl" ], + "crypto/chacha/chacha-armv8-sve.S" => [ + "crypto/chacha/asm/chacha-armv8-sve.pl" + ], "crypto/chacha/chacha-armv8.S" => [ "crypto/chacha/asm/chacha-armv8.pl" ], @@ -10569,9 +12419,19 @@ our %unified_info = ( "crypto/chacha/chacha-ia64.s" => [ "crypto/chacha/chacha-ia64.S" ], + "crypto/chacha/chacha-loongarch64.S" => [ + "crypto/chacha/asm/chacha-loongarch64.pl" + ], "crypto/chacha/chacha-ppc.s" => [ "crypto/chacha/asm/chacha-ppc.pl" ], + "crypto/chacha/chacha-riscv64-v-zbb-zvkb.s" => [ + "crypto/chacha/asm/chacha-riscv64-v-zbb.pl", + "zvkb" + ], + "crypto/chacha/chacha-riscv64-v-zbb.s" => [ + "crypto/chacha/asm/chacha-riscv64-v-zbb.pl" + ], "crypto/chacha/chacha-s390x.S" => [ "crypto/chacha/asm/chacha-s390x.pl" ], @@ -10581,6 +12441,9 @@ our %unified_info = ( "crypto/chacha/chacha-x86_64.s" => [ "crypto/chacha/asm/chacha-x86_64.pl" ], + "crypto/chacha/chachap10-ppc.s" => [ + "crypto/chacha/asm/chachap10-ppc.pl" + ], "crypto/des/crypt586.S" => [ "crypto/des/asm/crypt586.pl" ], @@ -10593,6 +12456,9 @@ our %unified_info = ( "crypto/des/dest4-sparcv9.S" => [ "crypto/des/asm/dest4-sparcv9.pl" ], + "crypto/ec/ecp_nistp384-ppc64.s" => [ + "crypto/ec/asm/ecp_nistp384-ppc64.pl" + ], "crypto/ec/ecp_nistp521-ppc64.s" => [ "crypto/ec/asm/ecp_nistp521-ppc64.pl" ], @@ -10617,6 +12483,9 @@ our %unified_info = ( "crypto/ec/ecp_nistz256-x86_64.s" => [ "crypto/ec/asm/ecp_nistz256-x86_64.pl" ], + "crypto/ec/ecp_sm2p256-armv8.S" => [ + "crypto/ec/asm/ecp_sm2p256-armv8.pl" + ], "crypto/ec/x25519-ppc64.s" => [ "crypto/ec/asm/x25519-ppc64.pl" ], @@ -10626,18 +12495,39 @@ our %unified_info = ( "crypto/ia64cpuid.s" => [ "crypto/ia64cpuid.S" ], + "crypto/loongarch64cpuid.s" => [ + "crypto/loongarch64cpuid.pl" + ], "crypto/md5/md5-586.S" => [ "crypto/md5/asm/md5-586.pl" ], + "crypto/md5/md5-aarch64.S" => [ + "crypto/md5/asm/md5-aarch64.pl" + ], + "crypto/md5/md5-loongarch64.S" => [ + "crypto/md5/asm/md5-loongarch64.pl" + ], "crypto/md5/md5-sparcv9.S" => [ "crypto/md5/asm/md5-sparcv9.pl" ], "crypto/md5/md5-x86_64.s" => [ "crypto/md5/asm/md5-x86_64.pl" ], + "crypto/modes/aes-gcm-armv8-unroll8_64.S" => [ + "crypto/modes/asm/aes-gcm-armv8-unroll8_64.pl" + ], "crypto/modes/aes-gcm-armv8_64.S" => [ "crypto/modes/asm/aes-gcm-armv8_64.pl" ], + "crypto/modes/aes-gcm-avx512.s" => [ + "crypto/modes/asm/aes-gcm-avx512.pl" + ], + "crypto/modes/aes-gcm-ppc.s" => [ + "crypto/modes/asm/aes-gcm-ppc.pl" + ], + "crypto/modes/aes-gcm-riscv64-zvkb-zvkg-zvkned.s" => [ + "crypto/modes/asm/aes-gcm-riscv64-zvkb-zvkg-zvkned.pl" + ], "crypto/modes/aesni-gcm-x86_64.s" => [ "crypto/modes/asm/aesni-gcm-x86_64.pl" ], @@ -10656,6 +12546,15 @@ our %unified_info = ( "crypto/modes/ghash-parisc.s" => [ "crypto/modes/asm/ghash-parisc.pl" ], + "crypto/modes/ghash-riscv64-zvkb-zvbc.s" => [ + "crypto/modes/asm/ghash-riscv64-zvkb-zvbc.pl" + ], + "crypto/modes/ghash-riscv64-zvkg.s" => [ + "crypto/modes/asm/ghash-riscv64-zvkg.pl" + ], + "crypto/modes/ghash-riscv64.s" => [ + "crypto/modes/asm/ghash-riscv64.pl" + ], "crypto/modes/ghash-s390x.S" => [ "crypto/modes/asm/ghash-s390x.pl" ], @@ -10674,6 +12573,9 @@ our %unified_info = ( "crypto/modes/ghashv8-armx.S" => [ "crypto/modes/asm/ghashv8-armx.pl" ], + "crypto/params_idx.c" => [ + "crypto/params_idx.c.in" + ], "crypto/pariscid.s" => [ "crypto/pariscid.pl" ], @@ -10734,6 +12636,12 @@ our %unified_info = ( "crypto/ripemd/rmd-586.S" => [ "crypto/ripemd/asm/rmd-586.pl" ], + "crypto/riscv32cpuid.s" => [ + "crypto/riscv32cpuid.pl" + ], + "crypto/riscv64cpuid.s" => [ + "crypto/riscv64cpuid.pl" + ], "crypto/s390xcpuid.S" => [ "crypto/s390xcpuid.pl" ], @@ -10842,6 +12750,9 @@ our %unified_info = ( "crypto/sha/sha256-ppc.s" => [ "crypto/sha/asm/sha512-ppc.pl" ], + "crypto/sha/sha256-riscv64-zvkb-zvknha_or_zvknhb.S" => [ + "crypto/sha/asm/sha256-riscv64-zvkb-zvknha_or_zvknhb.pl" + ], "crypto/sha/sha256-s390x.S" => [ "crypto/sha/asm/sha512-s390x.pl" ], @@ -10878,6 +12789,9 @@ our %unified_info = ( "crypto/sha/sha512-ppc.s" => [ "crypto/sha/asm/sha512-ppc.pl" ], + "crypto/sha/sha512-riscv64-zvkb-zvknhb.S" => [ + "crypto/sha/asm/sha512-riscv64-zvkb-zvknhb.pl" + ], "crypto/sha/sha512-s390x.S" => [ "crypto/sha/asm/sha512-s390x.pl" ], @@ -10890,6 +12804,24 @@ our %unified_info = ( "crypto/sha/sha512p8-ppc.s" => [ "crypto/sha/asm/sha512p8-ppc.pl" ], + "crypto/sm3/sm3-armv8.S" => [ + "crypto/sm3/asm/sm3-armv8.pl" + ], + "crypto/sm3/sm3-riscv64-zvksh.S" => [ + "crypto/sm3/asm/sm3-riscv64-zvksh.pl" + ], + "crypto/sm4/sm4-armv8.S" => [ + "crypto/sm4/asm/sm4-armv8.pl" + ], + "crypto/sm4/sm4-riscv64-zvksed.s" => [ + "crypto/sm4/asm/sm4-riscv64-zvksed.pl" + ], + "crypto/sm4/vpsm4-armv8.S" => [ + "crypto/sm4/asm/vpsm4-armv8.pl" + ], + "crypto/sm4/vpsm4_ex-armv8.S" => [ + "crypto/sm4/asm/vpsm4_ex-armv8.pl" + ], "crypto/uplink-ia64.s" => [ "ms/uplink-ia64.pl" ], @@ -11055,6 +12987,9 @@ our %unified_info = ( "doc/html/man1/openssl-sess_id.html" => [ "doc/man1/openssl-sess_id.pod" ], + "doc/html/man1/openssl-skeyutl.html" => [ + "doc/man1/openssl-skeyutl.pod" + ], "doc/html/man1/openssl-smime.html" => [ "doc/man1/openssl-smime.pod" ], @@ -11196,6 +13131,9 @@ our %unified_info = ( "doc/html/man3/BIO_get_ex_new_index.html" => [ "doc/man3/BIO_get_ex_new_index.pod" ], + "doc/html/man3/BIO_get_rpoll_descriptor.html" => [ + "doc/man3/BIO_get_rpoll_descriptor.pod" + ], "doc/html/man3/BIO_meth_new.html" => [ "doc/man3/BIO_meth_new.pod" ], @@ -11232,6 +13170,9 @@ our %unified_info = ( "doc/html/man3/BIO_s_datagram.html" => [ "doc/man3/BIO_s_datagram.pod" ], + "doc/html/man3/BIO_s_dgram_pair.html" => [ + "doc/man3/BIO_s_dgram_pair.pod" + ], "doc/html/man3/BIO_s_fd.html" => [ "doc/man3/BIO_s_fd.pod" ], @@ -11247,6 +13188,9 @@ our %unified_info = ( "doc/html/man3/BIO_s_socket.html" => [ "doc/man3/BIO_s_socket.pod" ], + "doc/html/man3/BIO_sendmmsg.html" => [ + "doc/man3/BIO_sendmmsg.pod" + ], "doc/html/man3/BIO_set_callback.html" => [ "doc/man3/BIO_set_callback.pod" ], @@ -11319,6 +13263,9 @@ our %unified_info = ( "doc/html/man3/BUF_MEM_new.html" => [ "doc/man3/BUF_MEM_new.pod" ], + "doc/html/man3/CMAC_CTX.html" => [ + "doc/man3/CMAC_CTX.pod" + ], "doc/html/man3/CMS_EncryptedData_decrypt.html" => [ "doc/man3/CMS_EncryptedData_decrypt.pod" ], @@ -11385,6 +13332,9 @@ our %unified_info = ( "doc/html/man3/CMS_verify_receipt.html" => [ "doc/man3/CMS_verify_receipt.pod" ], + "doc/html/man3/COMP_CTX_new.html" => [ + "doc/man3/COMP_CTX_new.pod" + ], "doc/html/man3/CONF_modules_free.html" => [ "doc/man3/CONF_modules_free.pod" ], @@ -11484,6 +13434,12 @@ our %unified_info = ( "doc/html/man3/DTLS_set_timer_cb.html" => [ "doc/man3/DTLS_set_timer_cb.pod" ], + "doc/html/man3/DTLSv1_get_timeout.html" => [ + "doc/man3/DTLSv1_get_timeout.pod" + ], + "doc/html/man3/DTLSv1_handle_timeout.html" => [ + "doc/man3/DTLSv1_handle_timeout.pod" + ], "doc/html/man3/DTLSv1_listen.html" => [ "doc/man3/DTLSv1_listen.pod" ], @@ -11622,6 +13578,9 @@ our %unified_info = ( "doc/html/man3/EVP_PKEY_CTX_get0_pkey.html" => [ "doc/man3/EVP_PKEY_CTX_get0_pkey.pod" ], + "doc/html/man3/EVP_PKEY_CTX_get_algor.html" => [ + "doc/man3/EVP_PKEY_CTX_get_algor.pod" + ], "doc/html/man3/EVP_PKEY_CTX_new.html" => [ "doc/man3/EVP_PKEY_CTX_new.pod" ], @@ -11739,6 +13698,12 @@ our %unified_info = ( "doc/html/man3/EVP_SIGNATURE.html" => [ "doc/man3/EVP_SIGNATURE.pod" ], + "doc/html/man3/EVP_SKEY.html" => [ + "doc/man3/EVP_SKEY.pod" + ], + "doc/html/man3/EVP_SKEYMGMT.html" => [ + "doc/man3/EVP_SKEYMGMT.pod" + ], "doc/html/man3/EVP_SealInit.html" => [ "doc/man3/EVP_SealInit.pod" ], @@ -11826,6 +13791,9 @@ our %unified_info = ( "doc/html/man3/EVP_whirlpool.html" => [ "doc/man3/EVP_whirlpool.pod" ], + "doc/html/man3/GENERAL_NAME.html" => [ + "doc/man3/GENERAL_NAME.pod" + ], "doc/html/man3/HMAC.html" => [ "doc/man3/HMAC.pod" ], @@ -11898,9 +13866,15 @@ our %unified_info = ( "doc/html/man3/OPENSSL_load_builtin_modules.html" => [ "doc/man3/OPENSSL_load_builtin_modules.pod" ], + "doc/html/man3/OPENSSL_load_u16_le.html" => [ + "doc/man3/OPENSSL_load_u16_le.pod" + ], "doc/html/man3/OPENSSL_malloc.html" => [ "doc/man3/OPENSSL_malloc.pod" ], + "doc/html/man3/OPENSSL_riscvcap.html" => [ + "doc/man3/OPENSSL_riscvcap.pod" + ], "doc/html/man3/OPENSSL_s390xcap.html" => [ "doc/man3/OPENSSL_s390xcap.pod" ], @@ -11916,12 +13890,18 @@ our %unified_info = ( "doc/html/man3/OSSL_CALLBACK.html" => [ "doc/man3/OSSL_CALLBACK.pod" ], + "doc/html/man3/OSSL_CMP_ATAV_set0.html" => [ + "doc/man3/OSSL_CMP_ATAV_set0.pod" + ], "doc/html/man3/OSSL_CMP_CTX_new.html" => [ "doc/man3/OSSL_CMP_CTX_new.pod" ], "doc/html/man3/OSSL_CMP_HDR_get0_transactionID.html" => [ "doc/man3/OSSL_CMP_HDR_get0_transactionID.pod" ], + "doc/html/man3/OSSL_CMP_ITAV_new_caCerts.html" => [ + "doc/man3/OSSL_CMP_ITAV_new_caCerts.pod" + ], "doc/html/man3/OSSL_CMP_ITAV_set0.html" => [ "doc/man3/OSSL_CMP_ITAV_set0.pod" ], @@ -11991,9 +13971,18 @@ our %unified_info = ( "doc/html/man3/OSSL_ENCODER_to_bio.html" => [ "doc/man3/OSSL_ENCODER_to_bio.pod" ], + "doc/html/man3/OSSL_ERR_STATE_save.html" => [ + "doc/man3/OSSL_ERR_STATE_save.pod" + ], "doc/html/man3/OSSL_ESS_check_signing_certs.html" => [ "doc/man3/OSSL_ESS_check_signing_certs.pod" ], + "doc/html/man3/OSSL_GENERAL_NAMES_print.html" => [ + "doc/man3/OSSL_GENERAL_NAMES_print.pod" + ], + "doc/html/man3/OSSL_HPKE_CTX_new.html" => [ + "doc/man3/OSSL_HPKE_CTX_new.pod" + ], "doc/html/man3/OSSL_HTTP_REQ_CTX.html" => [ "doc/man3/OSSL_HTTP_REQ_CTX.pod" ], @@ -12003,12 +13992,24 @@ our %unified_info = ( "doc/html/man3/OSSL_HTTP_transfer.html" => [ "doc/man3/OSSL_HTTP_transfer.pod" ], + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX.html" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX.pod" + ], + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX_print.html" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX_print.pod" + ], + "doc/html/man3/OSSL_INDICATOR_set_callback.html" => [ + "doc/man3/OSSL_INDICATOR_set_callback.pod" + ], "doc/html/man3/OSSL_ITEM.html" => [ "doc/man3/OSSL_ITEM.pod" ], "doc/html/man3/OSSL_LIB_CTX.html" => [ "doc/man3/OSSL_LIB_CTX.pod" ], + "doc/html/man3/OSSL_LIB_CTX_set_conf_diagnostics.html" => [ + "doc/man3/OSSL_LIB_CTX_set_conf_diagnostics.pod" + ], "doc/html/man3/OSSL_PARAM.html" => [ "doc/man3/OSSL_PARAM.pod" ], @@ -12024,9 +14025,15 @@ our %unified_info = ( "doc/html/man3/OSSL_PARAM_int.html" => [ "doc/man3/OSSL_PARAM_int.pod" ], + "doc/html/man3/OSSL_PARAM_print_to_bio.html" => [ + "doc/man3/OSSL_PARAM_print_to_bio.pod" + ], "doc/html/man3/OSSL_PROVIDER.html" => [ "doc/man3/OSSL_PROVIDER.pod" ], + "doc/html/man3/OSSL_QUIC_client_method.html" => [ + "doc/man3/OSSL_QUIC_client_method.pod" + ], "doc/html/man3/OSSL_SELF_TEST_new.html" => [ "doc/man3/OSSL_SELF_TEST_new.pod" ], @@ -12051,6 +14058,9 @@ our %unified_info = ( "doc/html/man3/OSSL_STORE_open.html" => [ "doc/man3/OSSL_STORE_open.pod" ], + "doc/html/man3/OSSL_sleep.html" => [ + "doc/man3/OSSL_sleep.pod" + ], "doc/html/man3/OSSL_trace_enabled.html" => [ "doc/man3/OSSL_trace_enabled.pod" ], @@ -12066,6 +14076,9 @@ our %unified_info = ( "doc/html/man3/OpenSSL_version.html" => [ "doc/man3/OpenSSL_version.pod" ], + "doc/html/man3/PBMAC1_get1_pbkdf2_param.html" => [ + "doc/man3/PBMAC1_get1_pbkdf2_param.pod" + ], "doc/html/man3/PEM_X509_INFO_read_bio_ex.html" => [ "doc/man3/PEM_X509_INFO_read_bio_ex.pod" ], @@ -12102,6 +14115,9 @@ our %unified_info = ( "doc/html/man3/PKCS12_SAFEBAG_get1_cert.html" => [ "doc/man3/PKCS12_SAFEBAG_get1_cert.pod" ], + "doc/html/man3/PKCS12_SAFEBAG_set0_attrs.html" => [ + "doc/man3/PKCS12_SAFEBAG_set0_attrs.pod" + ], "doc/html/man3/PKCS12_add1_attr_by_NID.html" => [ "doc/man3/PKCS12_add1_attr_by_NID.pod" ], @@ -12375,6 +14391,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set0_CA_list.html" => [ "doc/man3/SSL_CTX_set0_CA_list.pod" ], + "doc/html/man3/SSL_CTX_set1_cert_comp_preference.html" => [ + "doc/man3/SSL_CTX_set1_cert_comp_preference.pod" + ], "doc/html/man3/SSL_CTX_set1_curves.html" => [ "doc/man3/SSL_CTX_set1_curves.pod" ], @@ -12414,6 +14433,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_default_passwd_cb.html" => [ "doc/man3/SSL_CTX_set_default_passwd_cb.pod" ], + "doc/html/man3/SSL_CTX_set_domain_flags.html" => [ + "doc/man3/SSL_CTX_set_domain_flags.pod" + ], "doc/html/man3/SSL_CTX_set_generate_session_id.html" => [ "doc/man3/SSL_CTX_set_generate_session_id.pod" ], @@ -12435,6 +14457,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_msg_callback.html" => [ "doc/man3/SSL_CTX_set_msg_callback.pod" ], + "doc/html/man3/SSL_CTX_set_new_pending_conn_cb.html" => [ + "doc/man3/SSL_CTX_set_new_pending_conn_cb.pod" + ], "doc/html/man3/SSL_CTX_set_num_tickets.html" => [ "doc/man3/SSL_CTX_set_num_tickets.pod" ], @@ -12549,6 +14574,9 @@ our %unified_info = ( "doc/html/man3/SSL_accept.html" => [ "doc/man3/SSL_accept.pod" ], + "doc/html/man3/SSL_accept_stream.html" => [ + "doc/man3/SSL_accept_stream.pod" + ], "doc/html/man3/SSL_alert_type_string.html" => [ "doc/man3/SSL_alert_type_string.pod" ], @@ -12576,9 +14604,21 @@ our %unified_info = ( "doc/html/man3/SSL_free.html" => [ "doc/man3/SSL_free.pod" ], + "doc/html/man3/SSL_get0_connection.html" => [ + "doc/man3/SSL_get0_connection.pod" + ], + "doc/html/man3/SSL_get0_group_name.html" => [ + "doc/man3/SSL_get0_group_name.pod" + ], + "doc/html/man3/SSL_get0_peer_rpk.html" => [ + "doc/man3/SSL_get0_peer_rpk.pod" + ], "doc/html/man3/SSL_get0_peer_scts.html" => [ "doc/man3/SSL_get0_peer_scts.pod" ], + "doc/html/man3/SSL_get1_builtin_sigalgs.html" => [ + "doc/man3/SSL_get1_builtin_sigalgs.pod" + ], "doc/html/man3/SSL_get_SSL_CTX.html" => [ "doc/man3/SSL_get_SSL_CTX.pod" ], @@ -12594,6 +14634,9 @@ our %unified_info = ( "doc/html/man3/SSL_get_client_random.html" => [ "doc/man3/SSL_get_client_random.pod" ], + "doc/html/man3/SSL_get_conn_close_info.html" => [ + "doc/man3/SSL_get_conn_close_info.pod" + ], "doc/html/man3/SSL_get_current_cipher.html" => [ "doc/man3/SSL_get_current_cipher.pod" ], @@ -12603,12 +14646,18 @@ our %unified_info = ( "doc/html/man3/SSL_get_error.html" => [ "doc/man3/SSL_get_error.pod" ], + "doc/html/man3/SSL_get_event_timeout.html" => [ + "doc/man3/SSL_get_event_timeout.pod" + ], "doc/html/man3/SSL_get_extms_support.html" => [ "doc/man3/SSL_get_extms_support.pod" ], "doc/html/man3/SSL_get_fd.html" => [ "doc/man3/SSL_get_fd.pod" ], + "doc/html/man3/SSL_get_handshake_rtt.html" => [ + "doc/man3/SSL_get_handshake_rtt.pod" + ], "doc/html/man3/SSL_get_peer_cert_chain.html" => [ "doc/man3/SSL_get_peer_cert_chain.pod" ], @@ -12627,12 +14676,24 @@ our %unified_info = ( "doc/html/man3/SSL_get_rbio.html" => [ "doc/man3/SSL_get_rbio.pod" ], + "doc/html/man3/SSL_get_rpoll_descriptor.html" => [ + "doc/man3/SSL_get_rpoll_descriptor.pod" + ], "doc/html/man3/SSL_get_session.html" => [ "doc/man3/SSL_get_session.pod" ], "doc/html/man3/SSL_get_shared_sigalgs.html" => [ "doc/man3/SSL_get_shared_sigalgs.pod" ], + "doc/html/man3/SSL_get_stream_id.html" => [ + "doc/man3/SSL_get_stream_id.pod" + ], + "doc/html/man3/SSL_get_stream_read_state.html" => [ + "doc/man3/SSL_get_stream_read_state.pod" + ], + "doc/html/man3/SSL_get_value_uint.html" => [ + "doc/man3/SSL_get_value_uint.pod" + ], "doc/html/man3/SSL_get_verify_result.html" => [ "doc/man3/SSL_get_verify_result.pod" ], @@ -12642,9 +14703,15 @@ our %unified_info = ( "doc/html/man3/SSL_group_to_name.html" => [ "doc/man3/SSL_group_to_name.pod" ], + "doc/html/man3/SSL_handle_events.html" => [ + "doc/man3/SSL_handle_events.pod" + ], "doc/html/man3/SSL_in_init.html" => [ "doc/man3/SSL_in_init.pod" ], + "doc/html/man3/SSL_inject_net_dgram.html" => [ + "doc/man3/SSL_inject_net_dgram.pod" + ], "doc/html/man3/SSL_key_update.html" => [ "doc/man3/SSL_key_update.pod" ], @@ -12657,9 +14724,21 @@ our %unified_info = ( "doc/html/man3/SSL_new.html" => [ "doc/man3/SSL_new.pod" ], + "doc/html/man3/SSL_new_domain.html" => [ + "doc/man3/SSL_new_domain.pod" + ], + "doc/html/man3/SSL_new_listener.html" => [ + "doc/man3/SSL_new_listener.pod" + ], + "doc/html/man3/SSL_new_stream.html" => [ + "doc/man3/SSL_new_stream.pod" + ], "doc/html/man3/SSL_pending.html" => [ "doc/man3/SSL_pending.pod" ], + "doc/html/man3/SSL_poll.html" => [ + "doc/man3/SSL_poll.pod" + ], "doc/html/man3/SSL_read.html" => [ "doc/man3/SSL_read.pod" ], @@ -12675,24 +14754,45 @@ our %unified_info = ( "doc/html/man3/SSL_set1_host.html" => [ "doc/man3/SSL_set1_host.pod" ], + "doc/html/man3/SSL_set1_initial_peer_addr.html" => [ + "doc/man3/SSL_set1_initial_peer_addr.pod" + ], + "doc/html/man3/SSL_set1_server_cert_type.html" => [ + "doc/man3/SSL_set1_server_cert_type.pod" + ], "doc/html/man3/SSL_set_async_callback.html" => [ "doc/man3/SSL_set_async_callback.pod" ], "doc/html/man3/SSL_set_bio.html" => [ "doc/man3/SSL_set_bio.pod" ], + "doc/html/man3/SSL_set_blocking_mode.html" => [ + "doc/man3/SSL_set_blocking_mode.pod" + ], "doc/html/man3/SSL_set_connect_state.html" => [ "doc/man3/SSL_set_connect_state.pod" ], + "doc/html/man3/SSL_set_default_stream_mode.html" => [ + "doc/man3/SSL_set_default_stream_mode.pod" + ], "doc/html/man3/SSL_set_fd.html" => [ "doc/man3/SSL_set_fd.pod" ], + "doc/html/man3/SSL_set_incoming_stream_policy.html" => [ + "doc/man3/SSL_set_incoming_stream_policy.pod" + ], + "doc/html/man3/SSL_set_quic_tls_cbs.html" => [ + "doc/man3/SSL_set_quic_tls_cbs.pod" + ], "doc/html/man3/SSL_set_retry_verify.html" => [ "doc/man3/SSL_set_retry_verify.pod" ], "doc/html/man3/SSL_set_session.html" => [ "doc/man3/SSL_set_session.pod" ], + "doc/html/man3/SSL_set_session_secret_cb.html" => [ + "doc/man3/SSL_set_session_secret_cb.pod" + ], "doc/html/man3/SSL_set_shutdown.html" => [ "doc/man3/SSL_set_shutdown.pod" ], @@ -12705,6 +14805,12 @@ our %unified_info = ( "doc/html/man3/SSL_state_string.html" => [ "doc/man3/SSL_state_string.pod" ], + "doc/html/man3/SSL_stream_conclude.html" => [ + "doc/man3/SSL_stream_conclude.pod" + ], + "doc/html/man3/SSL_stream_reset.html" => [ + "doc/man3/SSL_stream_reset.pod" + ], "doc/html/man3/SSL_want.html" => [ "doc/man3/SSL_want.pod" ], @@ -12714,8 +14820,8 @@ our %unified_info = ( "doc/html/man3/TS_RESP_CTX_new.html" => [ "doc/man3/TS_RESP_CTX_new.pod" ], - "doc/html/man3/TS_VERIFY_CTX_set_certs.html" => [ - "doc/man3/TS_VERIFY_CTX_set_certs.pod" + "doc/html/man3/TS_VERIFY_CTX.html" => [ + "doc/man3/TS_VERIFY_CTX.pod" ], "doc/html/man3/UI_STRING.html" => [ "doc/man3/UI_STRING.pod" @@ -12735,6 +14841,21 @@ our %unified_info = ( "doc/html/man3/X509V3_set_ctx.html" => [ "doc/man3/X509V3_set_ctx.pod" ], + "doc/html/man3/X509_ACERT_add1_attr.html" => [ + "doc/man3/X509_ACERT_add1_attr.pod" + ], + "doc/html/man3/X509_ACERT_add_attr_nconf.html" => [ + "doc/man3/X509_ACERT_add_attr_nconf.pod" + ], + "doc/html/man3/X509_ACERT_get0_holder_baseCertId.html" => [ + "doc/man3/X509_ACERT_get0_holder_baseCertId.pod" + ], + "doc/html/man3/X509_ACERT_get_attr.html" => [ + "doc/man3/X509_ACERT_get_attr.pod" + ], + "doc/html/man3/X509_ACERT_print_ex.html" => [ + "doc/man3/X509_ACERT_print_ex.pod" + ], "doc/html/man3/X509_ALGOR_dup.html" => [ "doc/man3/X509_ALGOR_dup.pod" ], @@ -12783,6 +14904,9 @@ our %unified_info = ( "doc/html/man3/X509_SIG_get0.html" => [ "doc/man3/X509_SIG_get0.pod" ], + "doc/html/man3/X509_STORE_CTX_get_by_subject.html" => [ + "doc/man3/X509_STORE_CTX_get_by_subject.pod" + ], "doc/html/man3/X509_STORE_CTX_get_error.html" => [ "doc/man3/X509_STORE_CTX_get_error.pod" ], @@ -12849,6 +14973,9 @@ our %unified_info = ( "doc/html/man3/X509_get0_uids.html" => [ "doc/man3/X509_get0_uids.pod" ], + "doc/html/man3/X509_get_default_cert_file.html" => [ + "doc/man3/X509_get_default_cert_file.pod" + ], "doc/html/man3/X509_get_extension_flags.html" => [ "doc/man3/X509_get_extension_flags.pod" ], @@ -12972,9 +15099,15 @@ our %unified_info = ( "doc/html/man7/EVP_CIPHER-SM4.html" => [ "doc/man7/EVP_CIPHER-SM4.pod" ], + "doc/html/man7/EVP_KDF-ARGON2.html" => [ + "doc/man7/EVP_KDF-ARGON2.pod" + ], "doc/html/man7/EVP_KDF-HKDF.html" => [ "doc/man7/EVP_KDF-HKDF.pod" ], + "doc/html/man7/EVP_KDF-HMAC-DRBG.html" => [ + "doc/man7/EVP_KDF-HMAC-DRBG.pod" + ], "doc/html/man7/EVP_KDF-KB.html" => [ "doc/man7/EVP_KDF-KB.pod" ], @@ -12990,6 +15123,9 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-PKCS12KDF.html" => [ "doc/man7/EVP_KDF-PKCS12KDF.pod" ], + "doc/html/man7/EVP_KDF-PVKKDF.html" => [ + "doc/man7/EVP_KDF-PVKKDF.pod" + ], "doc/html/man7/EVP_KDF-SCRYPT.html" => [ "doc/man7/EVP_KDF-SCRYPT.pod" ], @@ -13014,9 +15150,18 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-X963.html" => [ "doc/man7/EVP_KDF-X963.pod" ], + "doc/html/man7/EVP_KEM-EC.html" => [ + "doc/man7/EVP_KEM-EC.pod" + ], + "doc/html/man7/EVP_KEM-ML-KEM.html" => [ + "doc/man7/EVP_KEM-ML-KEM.pod" + ], "doc/html/man7/EVP_KEM-RSA.html" => [ "doc/man7/EVP_KEM-RSA.pod" ], + "doc/html/man7/EVP_KEM-X25519.html" => [ + "doc/man7/EVP_KEM-X25519.pod" + ], "doc/html/man7/EVP_KEYEXCH-DH.html" => [ "doc/man7/EVP_KEYEXCH-DH.pod" ], @@ -13050,6 +15195,9 @@ our %unified_info = ( "doc/html/man7/EVP_MD-BLAKE2.html" => [ "doc/man7/EVP_MD-BLAKE2.pod" ], + "doc/html/man7/EVP_MD-KECCAK.html" => [ + "doc/man7/EVP_MD-KECCAK.pod" + ], "doc/html/man7/EVP_MD-MD2.html" => [ "doc/man7/EVP_MD-MD2.pod" ], @@ -13107,15 +15255,27 @@ our %unified_info = ( "doc/html/man7/EVP_PKEY-HMAC.html" => [ "doc/man7/EVP_PKEY-HMAC.pod" ], + "doc/html/man7/EVP_PKEY-ML-DSA.html" => [ + "doc/man7/EVP_PKEY-ML-DSA.pod" + ], + "doc/html/man7/EVP_PKEY-ML-KEM.html" => [ + "doc/man7/EVP_PKEY-ML-KEM.pod" + ], "doc/html/man7/EVP_PKEY-RSA.html" => [ "doc/man7/EVP_PKEY-RSA.pod" ], + "doc/html/man7/EVP_PKEY-SLH-DSA.html" => [ + "doc/man7/EVP_PKEY-SLH-DSA.pod" + ], "doc/html/man7/EVP_PKEY-SM2.html" => [ "doc/man7/EVP_PKEY-SM2.pod" ], "doc/html/man7/EVP_PKEY-X25519.html" => [ "doc/man7/EVP_PKEY-X25519.pod" ], + "doc/html/man7/EVP_RAND-CRNG-TEST.html" => [ + "doc/man7/EVP_RAND-CRNG-TEST.pod" + ], "doc/html/man7/EVP_RAND-CTR-DRBG.html" => [ "doc/man7/EVP_RAND-CTR-DRBG.pod" ], @@ -13125,6 +15285,9 @@ our %unified_info = ( "doc/html/man7/EVP_RAND-HMAC-DRBG.html" => [ "doc/man7/EVP_RAND-HMAC-DRBG.pod" ], + "doc/html/man7/EVP_RAND-JITTER.html" => [ + "doc/man7/EVP_RAND-JITTER.pod" + ], "doc/html/man7/EVP_RAND-SEED-SRC.html" => [ "doc/man7/EVP_RAND-SEED-SRC.pod" ], @@ -13146,9 +15309,15 @@ our %unified_info = ( "doc/html/man7/EVP_SIGNATURE-HMAC.html" => [ "doc/man7/EVP_SIGNATURE-HMAC.pod" ], + "doc/html/man7/EVP_SIGNATURE-ML-DSA.html" => [ + "doc/man7/EVP_SIGNATURE-ML-DSA.pod" + ], "doc/html/man7/EVP_SIGNATURE-RSA.html" => [ "doc/man7/EVP_SIGNATURE-RSA.pod" ], + "doc/html/man7/EVP_SIGNATURE-SLH-DSA.html" => [ + "doc/man7/EVP_SIGNATURE-SLH-DSA.pod" + ], "doc/html/man7/OSSL_PROVIDER-FIPS.html" => [ "doc/man7/OSSL_PROVIDER-FIPS.pod" ], @@ -13164,6 +15333,9 @@ our %unified_info = ( "doc/html/man7/OSSL_PROVIDER-null.html" => [ "doc/man7/OSSL_PROVIDER-null.pod" ], + "doc/html/man7/OSSL_STORE-winstore.html" => [ + "doc/man7/OSSL_STORE-winstore.pod" + ], "doc/html/man7/RAND.html" => [ "doc/man7/RAND.pod" ], @@ -13176,9 +15348,6 @@ our %unified_info = ( "doc/html/man7/bio.html" => [ "doc/man7/bio.pod" ], - "doc/html/man7/crypto.html" => [ - "doc/man7/crypto.pod" - ], "doc/html/man7/ct.html" => [ "doc/man7/ct.pod" ], @@ -13209,9 +15378,6 @@ our %unified_info = ( "doc/html/man7/life_cycle-rand.html" => [ "doc/man7/life_cycle-rand.pod" ], - "doc/html/man7/migration_guide.html" => [ - "doc/man7/migration_guide.pod" - ], "doc/html/man7/openssl-core.h.html" => [ "doc/man7/openssl-core.h.pod" ], @@ -13227,12 +15393,66 @@ our %unified_info = ( "doc/html/man7/openssl-glossary.html" => [ "doc/man7/openssl-glossary.pod" ], + "doc/html/man7/openssl-qlog.html" => [ + "doc/man7/openssl-qlog.pod" + ], + "doc/html/man7/openssl-quic-concurrency.html" => [ + "doc/man7/openssl-quic-concurrency.pod" + ], + "doc/html/man7/openssl-quic.html" => [ + "doc/man7/openssl-quic.pod" + ], "doc/html/man7/openssl-threads.html" => [ "doc/man7/openssl-threads.pod" ], "doc/html/man7/openssl_user_macros.html" => [ "doc/man7/openssl_user_macros.pod" ], + "doc/html/man7/ossl-guide-introduction.html" => [ + "doc/man7/ossl-guide-introduction.pod" + ], + "doc/html/man7/ossl-guide-libcrypto-introduction.html" => [ + "doc/man7/ossl-guide-libcrypto-introduction.pod" + ], + "doc/html/man7/ossl-guide-libraries-introduction.html" => [ + "doc/man7/ossl-guide-libraries-introduction.pod" + ], + "doc/html/man7/ossl-guide-libssl-introduction.html" => [ + "doc/man7/ossl-guide-libssl-introduction.pod" + ], + "doc/html/man7/ossl-guide-migration.html" => [ + "doc/man7/ossl-guide-migration.pod" + ], + "doc/html/man7/ossl-guide-quic-client-block.html" => [ + "doc/man7/ossl-guide-quic-client-block.pod" + ], + "doc/html/man7/ossl-guide-quic-client-non-block.html" => [ + "doc/man7/ossl-guide-quic-client-non-block.pod" + ], + "doc/html/man7/ossl-guide-quic-introduction.html" => [ + "doc/man7/ossl-guide-quic-introduction.pod" + ], + "doc/html/man7/ossl-guide-quic-multi-stream.html" => [ + "doc/man7/ossl-guide-quic-multi-stream.pod" + ], + "doc/html/man7/ossl-guide-quic-server-block.html" => [ + "doc/man7/ossl-guide-quic-server-block.pod" + ], + "doc/html/man7/ossl-guide-quic-server-non-block.html" => [ + "doc/man7/ossl-guide-quic-server-non-block.pod" + ], + "doc/html/man7/ossl-guide-tls-client-block.html" => [ + "doc/man7/ossl-guide-tls-client-block.pod" + ], + "doc/html/man7/ossl-guide-tls-client-non-block.html" => [ + "doc/man7/ossl-guide-tls-client-non-block.pod" + ], + "doc/html/man7/ossl-guide-tls-introduction.html" => [ + "doc/man7/ossl-guide-tls-introduction.pod" + ], + "doc/html/man7/ossl-guide-tls-server-block.html" => [ + "doc/man7/ossl-guide-tls-server-block.pod" + ], "doc/html/man7/ossl_store-file.html" => [ "doc/man7/ossl_store-file.pod" ], @@ -13287,6 +15507,9 @@ our %unified_info = ( "doc/html/man7/provider-signature.html" => [ "doc/man7/provider-signature.pod" ], + "doc/html/man7/provider-skeymgmt.html" => [ + "doc/man7/provider-skeymgmt.pod" + ], "doc/html/man7/provider-storemgmt.html" => [ "doc/man7/provider-storemgmt.pod" ], @@ -13296,9 +15519,6 @@ our %unified_info = ( "doc/html/man7/proxy-certificates.html" => [ "doc/man7/proxy-certificates.pod" ], - "doc/html/man7/ssl.html" => [ - "doc/man7/ssl.pod" - ], "doc/html/man7/x509.html" => [ "doc/man7/x509.pod" ], @@ -13446,6 +15666,9 @@ our %unified_info = ( "doc/man/man1/openssl-sess_id.1" => [ "doc/man1/openssl-sess_id.pod" ], + "doc/man/man1/openssl-skeyutl.1" => [ + "doc/man1/openssl-skeyutl.pod" + ], "doc/man/man1/openssl-smime.1" => [ "doc/man1/openssl-smime.pod" ], @@ -13587,6 +15810,9 @@ our %unified_info = ( "doc/man/man3/BIO_get_ex_new_index.3" => [ "doc/man3/BIO_get_ex_new_index.pod" ], + "doc/man/man3/BIO_get_rpoll_descriptor.3" => [ + "doc/man3/BIO_get_rpoll_descriptor.pod" + ], "doc/man/man3/BIO_meth_new.3" => [ "doc/man3/BIO_meth_new.pod" ], @@ -13623,6 +15849,9 @@ our %unified_info = ( "doc/man/man3/BIO_s_datagram.3" => [ "doc/man3/BIO_s_datagram.pod" ], + "doc/man/man3/BIO_s_dgram_pair.3" => [ + "doc/man3/BIO_s_dgram_pair.pod" + ], "doc/man/man3/BIO_s_fd.3" => [ "doc/man3/BIO_s_fd.pod" ], @@ -13638,6 +15867,9 @@ our %unified_info = ( "doc/man/man3/BIO_s_socket.3" => [ "doc/man3/BIO_s_socket.pod" ], + "doc/man/man3/BIO_sendmmsg.3" => [ + "doc/man3/BIO_sendmmsg.pod" + ], "doc/man/man3/BIO_set_callback.3" => [ "doc/man3/BIO_set_callback.pod" ], @@ -13710,6 +15942,9 @@ our %unified_info = ( "doc/man/man3/BUF_MEM_new.3" => [ "doc/man3/BUF_MEM_new.pod" ], + "doc/man/man3/CMAC_CTX.3" => [ + "doc/man3/CMAC_CTX.pod" + ], "doc/man/man3/CMS_EncryptedData_decrypt.3" => [ "doc/man3/CMS_EncryptedData_decrypt.pod" ], @@ -13776,6 +16011,9 @@ our %unified_info = ( "doc/man/man3/CMS_verify_receipt.3" => [ "doc/man3/CMS_verify_receipt.pod" ], + "doc/man/man3/COMP_CTX_new.3" => [ + "doc/man3/COMP_CTX_new.pod" + ], "doc/man/man3/CONF_modules_free.3" => [ "doc/man3/CONF_modules_free.pod" ], @@ -13875,6 +16113,12 @@ our %unified_info = ( "doc/man/man3/DTLS_set_timer_cb.3" => [ "doc/man3/DTLS_set_timer_cb.pod" ], + "doc/man/man3/DTLSv1_get_timeout.3" => [ + "doc/man3/DTLSv1_get_timeout.pod" + ], + "doc/man/man3/DTLSv1_handle_timeout.3" => [ + "doc/man3/DTLSv1_handle_timeout.pod" + ], "doc/man/man3/DTLSv1_listen.3" => [ "doc/man3/DTLSv1_listen.pod" ], @@ -14013,6 +16257,9 @@ our %unified_info = ( "doc/man/man3/EVP_PKEY_CTX_get0_pkey.3" => [ "doc/man3/EVP_PKEY_CTX_get0_pkey.pod" ], + "doc/man/man3/EVP_PKEY_CTX_get_algor.3" => [ + "doc/man3/EVP_PKEY_CTX_get_algor.pod" + ], "doc/man/man3/EVP_PKEY_CTX_new.3" => [ "doc/man3/EVP_PKEY_CTX_new.pod" ], @@ -14130,6 +16377,12 @@ our %unified_info = ( "doc/man/man3/EVP_SIGNATURE.3" => [ "doc/man3/EVP_SIGNATURE.pod" ], + "doc/man/man3/EVP_SKEY.3" => [ + "doc/man3/EVP_SKEY.pod" + ], + "doc/man/man3/EVP_SKEYMGMT.3" => [ + "doc/man3/EVP_SKEYMGMT.pod" + ], "doc/man/man3/EVP_SealInit.3" => [ "doc/man3/EVP_SealInit.pod" ], @@ -14217,6 +16470,9 @@ our %unified_info = ( "doc/man/man3/EVP_whirlpool.3" => [ "doc/man3/EVP_whirlpool.pod" ], + "doc/man/man3/GENERAL_NAME.3" => [ + "doc/man3/GENERAL_NAME.pod" + ], "doc/man/man3/HMAC.3" => [ "doc/man3/HMAC.pod" ], @@ -14289,9 +16545,15 @@ our %unified_info = ( "doc/man/man3/OPENSSL_load_builtin_modules.3" => [ "doc/man3/OPENSSL_load_builtin_modules.pod" ], + "doc/man/man3/OPENSSL_load_u16_le.3" => [ + "doc/man3/OPENSSL_load_u16_le.pod" + ], "doc/man/man3/OPENSSL_malloc.3" => [ "doc/man3/OPENSSL_malloc.pod" ], + "doc/man/man3/OPENSSL_riscvcap.3" => [ + "doc/man3/OPENSSL_riscvcap.pod" + ], "doc/man/man3/OPENSSL_s390xcap.3" => [ "doc/man3/OPENSSL_s390xcap.pod" ], @@ -14307,12 +16569,18 @@ our %unified_info = ( "doc/man/man3/OSSL_CALLBACK.3" => [ "doc/man3/OSSL_CALLBACK.pod" ], + "doc/man/man3/OSSL_CMP_ATAV_set0.3" => [ + "doc/man3/OSSL_CMP_ATAV_set0.pod" + ], "doc/man/man3/OSSL_CMP_CTX_new.3" => [ "doc/man3/OSSL_CMP_CTX_new.pod" ], "doc/man/man3/OSSL_CMP_HDR_get0_transactionID.3" => [ "doc/man3/OSSL_CMP_HDR_get0_transactionID.pod" ], + "doc/man/man3/OSSL_CMP_ITAV_new_caCerts.3" => [ + "doc/man3/OSSL_CMP_ITAV_new_caCerts.pod" + ], "doc/man/man3/OSSL_CMP_ITAV_set0.3" => [ "doc/man3/OSSL_CMP_ITAV_set0.pod" ], @@ -14382,9 +16650,18 @@ our %unified_info = ( "doc/man/man3/OSSL_ENCODER_to_bio.3" => [ "doc/man3/OSSL_ENCODER_to_bio.pod" ], + "doc/man/man3/OSSL_ERR_STATE_save.3" => [ + "doc/man3/OSSL_ERR_STATE_save.pod" + ], "doc/man/man3/OSSL_ESS_check_signing_certs.3" => [ "doc/man3/OSSL_ESS_check_signing_certs.pod" ], + "doc/man/man3/OSSL_GENERAL_NAMES_print.3" => [ + "doc/man3/OSSL_GENERAL_NAMES_print.pod" + ], + "doc/man/man3/OSSL_HPKE_CTX_new.3" => [ + "doc/man3/OSSL_HPKE_CTX_new.pod" + ], "doc/man/man3/OSSL_HTTP_REQ_CTX.3" => [ "doc/man3/OSSL_HTTP_REQ_CTX.pod" ], @@ -14394,12 +16671,24 @@ our %unified_info = ( "doc/man/man3/OSSL_HTTP_transfer.3" => [ "doc/man3/OSSL_HTTP_transfer.pod" ], + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX.3" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX.pod" + ], + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX_print.3" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX_print.pod" + ], + "doc/man/man3/OSSL_INDICATOR_set_callback.3" => [ + "doc/man3/OSSL_INDICATOR_set_callback.pod" + ], "doc/man/man3/OSSL_ITEM.3" => [ "doc/man3/OSSL_ITEM.pod" ], "doc/man/man3/OSSL_LIB_CTX.3" => [ "doc/man3/OSSL_LIB_CTX.pod" ], + "doc/man/man3/OSSL_LIB_CTX_set_conf_diagnostics.3" => [ + "doc/man3/OSSL_LIB_CTX_set_conf_diagnostics.pod" + ], "doc/man/man3/OSSL_PARAM.3" => [ "doc/man3/OSSL_PARAM.pod" ], @@ -14415,9 +16704,15 @@ our %unified_info = ( "doc/man/man3/OSSL_PARAM_int.3" => [ "doc/man3/OSSL_PARAM_int.pod" ], + "doc/man/man3/OSSL_PARAM_print_to_bio.3" => [ + "doc/man3/OSSL_PARAM_print_to_bio.pod" + ], "doc/man/man3/OSSL_PROVIDER.3" => [ "doc/man3/OSSL_PROVIDER.pod" ], + "doc/man/man3/OSSL_QUIC_client_method.3" => [ + "doc/man3/OSSL_QUIC_client_method.pod" + ], "doc/man/man3/OSSL_SELF_TEST_new.3" => [ "doc/man3/OSSL_SELF_TEST_new.pod" ], @@ -14442,6 +16737,9 @@ our %unified_info = ( "doc/man/man3/OSSL_STORE_open.3" => [ "doc/man3/OSSL_STORE_open.pod" ], + "doc/man/man3/OSSL_sleep.3" => [ + "doc/man3/OSSL_sleep.pod" + ], "doc/man/man3/OSSL_trace_enabled.3" => [ "doc/man3/OSSL_trace_enabled.pod" ], @@ -14457,6 +16755,9 @@ our %unified_info = ( "doc/man/man3/OpenSSL_version.3" => [ "doc/man3/OpenSSL_version.pod" ], + "doc/man/man3/PBMAC1_get1_pbkdf2_param.3" => [ + "doc/man3/PBMAC1_get1_pbkdf2_param.pod" + ], "doc/man/man3/PEM_X509_INFO_read_bio_ex.3" => [ "doc/man3/PEM_X509_INFO_read_bio_ex.pod" ], @@ -14493,6 +16794,9 @@ our %unified_info = ( "doc/man/man3/PKCS12_SAFEBAG_get1_cert.3" => [ "doc/man3/PKCS12_SAFEBAG_get1_cert.pod" ], + "doc/man/man3/PKCS12_SAFEBAG_set0_attrs.3" => [ + "doc/man3/PKCS12_SAFEBAG_set0_attrs.pod" + ], "doc/man/man3/PKCS12_add1_attr_by_NID.3" => [ "doc/man3/PKCS12_add1_attr_by_NID.pod" ], @@ -14766,6 +17070,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set0_CA_list.3" => [ "doc/man3/SSL_CTX_set0_CA_list.pod" ], + "doc/man/man3/SSL_CTX_set1_cert_comp_preference.3" => [ + "doc/man3/SSL_CTX_set1_cert_comp_preference.pod" + ], "doc/man/man3/SSL_CTX_set1_curves.3" => [ "doc/man3/SSL_CTX_set1_curves.pod" ], @@ -14805,6 +17112,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_default_passwd_cb.3" => [ "doc/man3/SSL_CTX_set_default_passwd_cb.pod" ], + "doc/man/man3/SSL_CTX_set_domain_flags.3" => [ + "doc/man3/SSL_CTX_set_domain_flags.pod" + ], "doc/man/man3/SSL_CTX_set_generate_session_id.3" => [ "doc/man3/SSL_CTX_set_generate_session_id.pod" ], @@ -14826,6 +17136,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_msg_callback.3" => [ "doc/man3/SSL_CTX_set_msg_callback.pod" ], + "doc/man/man3/SSL_CTX_set_new_pending_conn_cb.3" => [ + "doc/man3/SSL_CTX_set_new_pending_conn_cb.pod" + ], "doc/man/man3/SSL_CTX_set_num_tickets.3" => [ "doc/man3/SSL_CTX_set_num_tickets.pod" ], @@ -14940,6 +17253,9 @@ our %unified_info = ( "doc/man/man3/SSL_accept.3" => [ "doc/man3/SSL_accept.pod" ], + "doc/man/man3/SSL_accept_stream.3" => [ + "doc/man3/SSL_accept_stream.pod" + ], "doc/man/man3/SSL_alert_type_string.3" => [ "doc/man3/SSL_alert_type_string.pod" ], @@ -14967,9 +17283,21 @@ our %unified_info = ( "doc/man/man3/SSL_free.3" => [ "doc/man3/SSL_free.pod" ], + "doc/man/man3/SSL_get0_connection.3" => [ + "doc/man3/SSL_get0_connection.pod" + ], + "doc/man/man3/SSL_get0_group_name.3" => [ + "doc/man3/SSL_get0_group_name.pod" + ], + "doc/man/man3/SSL_get0_peer_rpk.3" => [ + "doc/man3/SSL_get0_peer_rpk.pod" + ], "doc/man/man3/SSL_get0_peer_scts.3" => [ "doc/man3/SSL_get0_peer_scts.pod" ], + "doc/man/man3/SSL_get1_builtin_sigalgs.3" => [ + "doc/man3/SSL_get1_builtin_sigalgs.pod" + ], "doc/man/man3/SSL_get_SSL_CTX.3" => [ "doc/man3/SSL_get_SSL_CTX.pod" ], @@ -14985,6 +17313,9 @@ our %unified_info = ( "doc/man/man3/SSL_get_client_random.3" => [ "doc/man3/SSL_get_client_random.pod" ], + "doc/man/man3/SSL_get_conn_close_info.3" => [ + "doc/man3/SSL_get_conn_close_info.pod" + ], "doc/man/man3/SSL_get_current_cipher.3" => [ "doc/man3/SSL_get_current_cipher.pod" ], @@ -14994,12 +17325,18 @@ our %unified_info = ( "doc/man/man3/SSL_get_error.3" => [ "doc/man3/SSL_get_error.pod" ], + "doc/man/man3/SSL_get_event_timeout.3" => [ + "doc/man3/SSL_get_event_timeout.pod" + ], "doc/man/man3/SSL_get_extms_support.3" => [ "doc/man3/SSL_get_extms_support.pod" ], "doc/man/man3/SSL_get_fd.3" => [ "doc/man3/SSL_get_fd.pod" ], + "doc/man/man3/SSL_get_handshake_rtt.3" => [ + "doc/man3/SSL_get_handshake_rtt.pod" + ], "doc/man/man3/SSL_get_peer_cert_chain.3" => [ "doc/man3/SSL_get_peer_cert_chain.pod" ], @@ -15018,11 +17355,23 @@ our %unified_info = ( "doc/man/man3/SSL_get_rbio.3" => [ "doc/man3/SSL_get_rbio.pod" ], + "doc/man/man3/SSL_get_rpoll_descriptor.3" => [ + "doc/man3/SSL_get_rpoll_descriptor.pod" + ], "doc/man/man3/SSL_get_session.3" => [ "doc/man3/SSL_get_session.pod" ], - "doc/man/man3/SSL_get_shared_sigalgs.3" => [ - "doc/man3/SSL_get_shared_sigalgs.pod" + "doc/man/man3/SSL_get_shared_sigalgs.3" => [ + "doc/man3/SSL_get_shared_sigalgs.pod" + ], + "doc/man/man3/SSL_get_stream_id.3" => [ + "doc/man3/SSL_get_stream_id.pod" + ], + "doc/man/man3/SSL_get_stream_read_state.3" => [ + "doc/man3/SSL_get_stream_read_state.pod" + ], + "doc/man/man3/SSL_get_value_uint.3" => [ + "doc/man3/SSL_get_value_uint.pod" ], "doc/man/man3/SSL_get_verify_result.3" => [ "doc/man3/SSL_get_verify_result.pod" @@ -15033,9 +17382,15 @@ our %unified_info = ( "doc/man/man3/SSL_group_to_name.3" => [ "doc/man3/SSL_group_to_name.pod" ], + "doc/man/man3/SSL_handle_events.3" => [ + "doc/man3/SSL_handle_events.pod" + ], "doc/man/man3/SSL_in_init.3" => [ "doc/man3/SSL_in_init.pod" ], + "doc/man/man3/SSL_inject_net_dgram.3" => [ + "doc/man3/SSL_inject_net_dgram.pod" + ], "doc/man/man3/SSL_key_update.3" => [ "doc/man3/SSL_key_update.pod" ], @@ -15048,9 +17403,21 @@ our %unified_info = ( "doc/man/man3/SSL_new.3" => [ "doc/man3/SSL_new.pod" ], + "doc/man/man3/SSL_new_domain.3" => [ + "doc/man3/SSL_new_domain.pod" + ], + "doc/man/man3/SSL_new_listener.3" => [ + "doc/man3/SSL_new_listener.pod" + ], + "doc/man/man3/SSL_new_stream.3" => [ + "doc/man3/SSL_new_stream.pod" + ], "doc/man/man3/SSL_pending.3" => [ "doc/man3/SSL_pending.pod" ], + "doc/man/man3/SSL_poll.3" => [ + "doc/man3/SSL_poll.pod" + ], "doc/man/man3/SSL_read.3" => [ "doc/man3/SSL_read.pod" ], @@ -15066,24 +17433,45 @@ our %unified_info = ( "doc/man/man3/SSL_set1_host.3" => [ "doc/man3/SSL_set1_host.pod" ], + "doc/man/man3/SSL_set1_initial_peer_addr.3" => [ + "doc/man3/SSL_set1_initial_peer_addr.pod" + ], + "doc/man/man3/SSL_set1_server_cert_type.3" => [ + "doc/man3/SSL_set1_server_cert_type.pod" + ], "doc/man/man3/SSL_set_async_callback.3" => [ "doc/man3/SSL_set_async_callback.pod" ], "doc/man/man3/SSL_set_bio.3" => [ "doc/man3/SSL_set_bio.pod" ], + "doc/man/man3/SSL_set_blocking_mode.3" => [ + "doc/man3/SSL_set_blocking_mode.pod" + ], "doc/man/man3/SSL_set_connect_state.3" => [ "doc/man3/SSL_set_connect_state.pod" ], + "doc/man/man3/SSL_set_default_stream_mode.3" => [ + "doc/man3/SSL_set_default_stream_mode.pod" + ], "doc/man/man3/SSL_set_fd.3" => [ "doc/man3/SSL_set_fd.pod" ], + "doc/man/man3/SSL_set_incoming_stream_policy.3" => [ + "doc/man3/SSL_set_incoming_stream_policy.pod" + ], + "doc/man/man3/SSL_set_quic_tls_cbs.3" => [ + "doc/man3/SSL_set_quic_tls_cbs.pod" + ], "doc/man/man3/SSL_set_retry_verify.3" => [ "doc/man3/SSL_set_retry_verify.pod" ], "doc/man/man3/SSL_set_session.3" => [ "doc/man3/SSL_set_session.pod" ], + "doc/man/man3/SSL_set_session_secret_cb.3" => [ + "doc/man3/SSL_set_session_secret_cb.pod" + ], "doc/man/man3/SSL_set_shutdown.3" => [ "doc/man3/SSL_set_shutdown.pod" ], @@ -15096,6 +17484,12 @@ our %unified_info = ( "doc/man/man3/SSL_state_string.3" => [ "doc/man3/SSL_state_string.pod" ], + "doc/man/man3/SSL_stream_conclude.3" => [ + "doc/man3/SSL_stream_conclude.pod" + ], + "doc/man/man3/SSL_stream_reset.3" => [ + "doc/man3/SSL_stream_reset.pod" + ], "doc/man/man3/SSL_want.3" => [ "doc/man3/SSL_want.pod" ], @@ -15105,8 +17499,8 @@ our %unified_info = ( "doc/man/man3/TS_RESP_CTX_new.3" => [ "doc/man3/TS_RESP_CTX_new.pod" ], - "doc/man/man3/TS_VERIFY_CTX_set_certs.3" => [ - "doc/man3/TS_VERIFY_CTX_set_certs.pod" + "doc/man/man3/TS_VERIFY_CTX.3" => [ + "doc/man3/TS_VERIFY_CTX.pod" ], "doc/man/man3/UI_STRING.3" => [ "doc/man3/UI_STRING.pod" @@ -15126,6 +17520,21 @@ our %unified_info = ( "doc/man/man3/X509V3_set_ctx.3" => [ "doc/man3/X509V3_set_ctx.pod" ], + "doc/man/man3/X509_ACERT_add1_attr.3" => [ + "doc/man3/X509_ACERT_add1_attr.pod" + ], + "doc/man/man3/X509_ACERT_add_attr_nconf.3" => [ + "doc/man3/X509_ACERT_add_attr_nconf.pod" + ], + "doc/man/man3/X509_ACERT_get0_holder_baseCertId.3" => [ + "doc/man3/X509_ACERT_get0_holder_baseCertId.pod" + ], + "doc/man/man3/X509_ACERT_get_attr.3" => [ + "doc/man3/X509_ACERT_get_attr.pod" + ], + "doc/man/man3/X509_ACERT_print_ex.3" => [ + "doc/man3/X509_ACERT_print_ex.pod" + ], "doc/man/man3/X509_ALGOR_dup.3" => [ "doc/man3/X509_ALGOR_dup.pod" ], @@ -15174,6 +17583,9 @@ our %unified_info = ( "doc/man/man3/X509_SIG_get0.3" => [ "doc/man3/X509_SIG_get0.pod" ], + "doc/man/man3/X509_STORE_CTX_get_by_subject.3" => [ + "doc/man3/X509_STORE_CTX_get_by_subject.pod" + ], "doc/man/man3/X509_STORE_CTX_get_error.3" => [ "doc/man3/X509_STORE_CTX_get_error.pod" ], @@ -15240,6 +17652,9 @@ our %unified_info = ( "doc/man/man3/X509_get0_uids.3" => [ "doc/man3/X509_get0_uids.pod" ], + "doc/man/man3/X509_get_default_cert_file.3" => [ + "doc/man3/X509_get_default_cert_file.pod" + ], "doc/man/man3/X509_get_extension_flags.3" => [ "doc/man3/X509_get_extension_flags.pod" ], @@ -15363,9 +17778,15 @@ our %unified_info = ( "doc/man/man7/EVP_CIPHER-SM4.7" => [ "doc/man7/EVP_CIPHER-SM4.pod" ], + "doc/man/man7/EVP_KDF-ARGON2.7" => [ + "doc/man7/EVP_KDF-ARGON2.pod" + ], "doc/man/man7/EVP_KDF-HKDF.7" => [ "doc/man7/EVP_KDF-HKDF.pod" ], + "doc/man/man7/EVP_KDF-HMAC-DRBG.7" => [ + "doc/man7/EVP_KDF-HMAC-DRBG.pod" + ], "doc/man/man7/EVP_KDF-KB.7" => [ "doc/man7/EVP_KDF-KB.pod" ], @@ -15381,6 +17802,9 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-PKCS12KDF.7" => [ "doc/man7/EVP_KDF-PKCS12KDF.pod" ], + "doc/man/man7/EVP_KDF-PVKKDF.7" => [ + "doc/man7/EVP_KDF-PVKKDF.pod" + ], "doc/man/man7/EVP_KDF-SCRYPT.7" => [ "doc/man7/EVP_KDF-SCRYPT.pod" ], @@ -15405,9 +17829,18 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-X963.7" => [ "doc/man7/EVP_KDF-X963.pod" ], + "doc/man/man7/EVP_KEM-EC.7" => [ + "doc/man7/EVP_KEM-EC.pod" + ], + "doc/man/man7/EVP_KEM-ML-KEM.7" => [ + "doc/man7/EVP_KEM-ML-KEM.pod" + ], "doc/man/man7/EVP_KEM-RSA.7" => [ "doc/man7/EVP_KEM-RSA.pod" ], + "doc/man/man7/EVP_KEM-X25519.7" => [ + "doc/man7/EVP_KEM-X25519.pod" + ], "doc/man/man7/EVP_KEYEXCH-DH.7" => [ "doc/man7/EVP_KEYEXCH-DH.pod" ], @@ -15441,6 +17874,9 @@ our %unified_info = ( "doc/man/man7/EVP_MD-BLAKE2.7" => [ "doc/man7/EVP_MD-BLAKE2.pod" ], + "doc/man/man7/EVP_MD-KECCAK.7" => [ + "doc/man7/EVP_MD-KECCAK.pod" + ], "doc/man/man7/EVP_MD-MD2.7" => [ "doc/man7/EVP_MD-MD2.pod" ], @@ -15498,15 +17934,27 @@ our %unified_info = ( "doc/man/man7/EVP_PKEY-HMAC.7" => [ "doc/man7/EVP_PKEY-HMAC.pod" ], + "doc/man/man7/EVP_PKEY-ML-DSA.7" => [ + "doc/man7/EVP_PKEY-ML-DSA.pod" + ], + "doc/man/man7/EVP_PKEY-ML-KEM.7" => [ + "doc/man7/EVP_PKEY-ML-KEM.pod" + ], "doc/man/man7/EVP_PKEY-RSA.7" => [ "doc/man7/EVP_PKEY-RSA.pod" ], + "doc/man/man7/EVP_PKEY-SLH-DSA.7" => [ + "doc/man7/EVP_PKEY-SLH-DSA.pod" + ], "doc/man/man7/EVP_PKEY-SM2.7" => [ "doc/man7/EVP_PKEY-SM2.pod" ], "doc/man/man7/EVP_PKEY-X25519.7" => [ "doc/man7/EVP_PKEY-X25519.pod" ], + "doc/man/man7/EVP_RAND-CRNG-TEST.7" => [ + "doc/man7/EVP_RAND-CRNG-TEST.pod" + ], "doc/man/man7/EVP_RAND-CTR-DRBG.7" => [ "doc/man7/EVP_RAND-CTR-DRBG.pod" ], @@ -15516,6 +17964,9 @@ our %unified_info = ( "doc/man/man7/EVP_RAND-HMAC-DRBG.7" => [ "doc/man7/EVP_RAND-HMAC-DRBG.pod" ], + "doc/man/man7/EVP_RAND-JITTER.7" => [ + "doc/man7/EVP_RAND-JITTER.pod" + ], "doc/man/man7/EVP_RAND-SEED-SRC.7" => [ "doc/man7/EVP_RAND-SEED-SRC.pod" ], @@ -15537,9 +17988,15 @@ our %unified_info = ( "doc/man/man7/EVP_SIGNATURE-HMAC.7" => [ "doc/man7/EVP_SIGNATURE-HMAC.pod" ], + "doc/man/man7/EVP_SIGNATURE-ML-DSA.7" => [ + "doc/man7/EVP_SIGNATURE-ML-DSA.pod" + ], "doc/man/man7/EVP_SIGNATURE-RSA.7" => [ "doc/man7/EVP_SIGNATURE-RSA.pod" ], + "doc/man/man7/EVP_SIGNATURE-SLH-DSA.7" => [ + "doc/man7/EVP_SIGNATURE-SLH-DSA.pod" + ], "doc/man/man7/OSSL_PROVIDER-FIPS.7" => [ "doc/man7/OSSL_PROVIDER-FIPS.pod" ], @@ -15555,6 +18012,9 @@ our %unified_info = ( "doc/man/man7/OSSL_PROVIDER-null.7" => [ "doc/man7/OSSL_PROVIDER-null.pod" ], + "doc/man/man7/OSSL_STORE-winstore.7" => [ + "doc/man7/OSSL_STORE-winstore.pod" + ], "doc/man/man7/RAND.7" => [ "doc/man7/RAND.pod" ], @@ -15567,9 +18027,6 @@ our %unified_info = ( "doc/man/man7/bio.7" => [ "doc/man7/bio.pod" ], - "doc/man/man7/crypto.7" => [ - "doc/man7/crypto.pod" - ], "doc/man/man7/ct.7" => [ "doc/man7/ct.pod" ], @@ -15600,9 +18057,6 @@ our %unified_info = ( "doc/man/man7/life_cycle-rand.7" => [ "doc/man7/life_cycle-rand.pod" ], - "doc/man/man7/migration_guide.7" => [ - "doc/man7/migration_guide.pod" - ], "doc/man/man7/openssl-core.h.7" => [ "doc/man7/openssl-core.h.pod" ], @@ -15618,12 +18072,66 @@ our %unified_info = ( "doc/man/man7/openssl-glossary.7" => [ "doc/man7/openssl-glossary.pod" ], + "doc/man/man7/openssl-qlog.7" => [ + "doc/man7/openssl-qlog.pod" + ], + "doc/man/man7/openssl-quic-concurrency.7" => [ + "doc/man7/openssl-quic-concurrency.pod" + ], + "doc/man/man7/openssl-quic.7" => [ + "doc/man7/openssl-quic.pod" + ], "doc/man/man7/openssl-threads.7" => [ "doc/man7/openssl-threads.pod" ], "doc/man/man7/openssl_user_macros.7" => [ "doc/man7/openssl_user_macros.pod" ], + "doc/man/man7/ossl-guide-introduction.7" => [ + "doc/man7/ossl-guide-introduction.pod" + ], + "doc/man/man7/ossl-guide-libcrypto-introduction.7" => [ + "doc/man7/ossl-guide-libcrypto-introduction.pod" + ], + "doc/man/man7/ossl-guide-libraries-introduction.7" => [ + "doc/man7/ossl-guide-libraries-introduction.pod" + ], + "doc/man/man7/ossl-guide-libssl-introduction.7" => [ + "doc/man7/ossl-guide-libssl-introduction.pod" + ], + "doc/man/man7/ossl-guide-migration.7" => [ + "doc/man7/ossl-guide-migration.pod" + ], + "doc/man/man7/ossl-guide-quic-client-block.7" => [ + "doc/man7/ossl-guide-quic-client-block.pod" + ], + "doc/man/man7/ossl-guide-quic-client-non-block.7" => [ + "doc/man7/ossl-guide-quic-client-non-block.pod" + ], + "doc/man/man7/ossl-guide-quic-introduction.7" => [ + "doc/man7/ossl-guide-quic-introduction.pod" + ], + "doc/man/man7/ossl-guide-quic-multi-stream.7" => [ + "doc/man7/ossl-guide-quic-multi-stream.pod" + ], + "doc/man/man7/ossl-guide-quic-server-block.7" => [ + "doc/man7/ossl-guide-quic-server-block.pod" + ], + "doc/man/man7/ossl-guide-quic-server-non-block.7" => [ + "doc/man7/ossl-guide-quic-server-non-block.pod" + ], + "doc/man/man7/ossl-guide-tls-client-block.7" => [ + "doc/man7/ossl-guide-tls-client-block.pod" + ], + "doc/man/man7/ossl-guide-tls-client-non-block.7" => [ + "doc/man7/ossl-guide-tls-client-non-block.pod" + ], + "doc/man/man7/ossl-guide-tls-introduction.7" => [ + "doc/man7/ossl-guide-tls-introduction.pod" + ], + "doc/man/man7/ossl-guide-tls-server-block.7" => [ + "doc/man7/ossl-guide-tls-server-block.pod" + ], "doc/man/man7/ossl_store-file.7" => [ "doc/man7/ossl_store-file.pod" ], @@ -15678,6 +18186,9 @@ our %unified_info = ( "doc/man/man7/provider-signature.7" => [ "doc/man7/provider-signature.pod" ], + "doc/man/man7/provider-skeymgmt.7" => [ + "doc/man7/provider-skeymgmt.pod" + ], "doc/man/man7/provider-storemgmt.7" => [ "doc/man7/provider-storemgmt.pod" ], @@ -15687,9 +18198,6 @@ our %unified_info = ( "doc/man/man7/proxy-certificates.7" => [ "doc/man7/proxy-certificates.pod" ], - "doc/man/man7/ssl.7" => [ - "doc/man7/ssl.pod" - ], "doc/man/man7/x509.7" => [ "doc/man7/x509.pod" ], @@ -15825,6 +18333,9 @@ our %unified_info = ( "doc/man1/openssl-sess_id.pod" => [ "doc/man1/openssl-sess_id.pod.in" ], + "doc/man1/openssl-skeyutl.pod" => [ + "doc/man1/openssl-skeyutl.pod.in" + ], "doc/man1/openssl-smime.pod" => [ "doc/man1/openssl-smime.pod.in" ], @@ -15861,12 +18372,30 @@ our %unified_info = ( "engines/e_padlock-x86_64.s" => [ "engines/asm/e_padlock-x86_64.pl" ], + "exporters/OpenSSLConfig.cmake" => [ + "exporters/cmake/OpenSSLConfig.cmake.in" + ], + "exporters/OpenSSLConfigVersion.cmake" => [ + "exporters/cmake/OpenSSLConfigVersion.cmake.in" + ], + "exporters/libcrypto.pc" => [ + "exporters/pkg-config/libcrypto.pc.in" + ], + "exporters/libssl.pc" => [ + "exporters/pkg-config/libssl.pc.in" + ], + "exporters/openssl.pc" => [ + "exporters/pkg-config/openssl.pc.in" + ], "include/crypto/bn_conf.h" => [ "include/crypto/bn_conf.h.in" ], "include/crypto/dso_conf.h" => [ "include/crypto/dso_conf.h.in" ], + "include/internal/param_names.h" => [ + "include/internal/param_names.h.in" + ], "include/openssl/asn1.h" => [ "include/openssl/asn1.h.in" ], @@ -15882,12 +18411,18 @@ our %unified_info = ( "include/openssl/cms.h" => [ "include/openssl/cms.h.in" ], + "include/openssl/comp.h" => [ + "include/openssl/comp.h.in" + ], "include/openssl/conf.h" => [ "include/openssl/conf.h.in" ], "include/openssl/configuration.h" => [ "include/openssl/configuration.h.in" ], + "include/openssl/core_names.h" => [ + "include/openssl/core_names.h.in" + ], "include/openssl/crmf.h" => [ "include/openssl/crmf.h.in" ], @@ -15936,20 +18471,47 @@ our %unified_info = ( "include/openssl/x509.h" => [ "include/openssl/x509.h.in" ], + "include/openssl/x509_acert.h" => [ + "include/openssl/x509_acert.h.in" + ], "include/openssl/x509_vfy.h" => [ "include/openssl/x509_vfy.h.in" ], "include/openssl/x509v3.h" => [ "include/openssl/x509v3.h.in" ], + "installdata.pm" => [ + "util/mkinstallvars.pl", + "\"PREFIX=\$(INSTALLTOP)\"", + "BINDIR=bin", + "\"LIBDIR=\$(LIBDIR)\"", + "\"libdir=\$(libdir)\"", + "INCLUDEDIR=include", + "APPLINKDIR=include/openssl", + "\"ENGINESDIR=\$(ENGINESDIR)\"", + "\"MODULESDIR=\$(MODULESDIR)\"", + "\"PKGCONFIGDIR=\$(PKGCONFIGDIR)\"", + "\"CMAKECONFIGDIR=\$(CMAKECONFIGDIR)\"", + "\"LDLIBS=\$(LIB_EX_LIBS)\"", + "\"VERSION=\$(VERSION)\"" + ], "libcrypto.ld" => [ "util/libcrypto.num", "libcrypto" ], + "libcrypto.pc" => [ + "exporters/pkg-config/libcrypto.pc.in" + ], "libssl.ld" => [ "util/libssl.num", "libssl" ], + "libssl.pc" => [ + "exporters/pkg-config/libssl.pc.in" + ], + "openssl.pc" => [ + "exporters/pkg-config/openssl.pc.in" + ], "providers/common/der/der_digests_gen.c" => [ "providers/common/der/der_digests_gen.c.in" ], @@ -15962,9 +18524,15 @@ our %unified_info = ( "providers/common/der/der_ecx_gen.c" => [ "providers/common/der/der_ecx_gen.c.in" ], + "providers/common/der/der_ml_dsa_gen.c" => [ + "providers/common/der/der_ml_dsa_gen.c.in" + ], "providers/common/der/der_rsa_gen.c" => [ "providers/common/der/der_rsa_gen.c.in" ], + "providers/common/der/der_slh_dsa_gen.c" => [ + "providers/common/der/der_slh_dsa_gen.c.in" + ], "providers/common/der/der_sm2_gen.c" => [ "providers/common/der/der_sm2_gen.c.in" ], @@ -15983,9 +18551,15 @@ our %unified_info = ( "providers/common/include/prov/der_ecx.h" => [ "providers/common/include/prov/der_ecx.h.in" ], + "providers/common/include/prov/der_ml_dsa.h" => [ + "providers/common/include/prov/der_ml_dsa.h.in" + ], "providers/common/include/prov/der_rsa.h" => [ "providers/common/include/prov/der_rsa.h.in" ], + "providers/common/include/prov/der_slh_dsa.h" => [ + "providers/common/include/prov/der_slh_dsa.h.in" + ], "providers/common/include/prov/der_sm2.h" => [ "providers/common/include/prov/der_sm2.h.in" ], @@ -16027,6 +18601,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "buffer" ], + "test/buildtest_byteorder.c" => [ + "test/generate_buildtest.pl", + "byteorder" + ], "test/buildtest_camellia.c" => [ "test/generate_buildtest.pl", "camellia" @@ -16059,10 +18637,6 @@ our %unified_info = ( "test/generate_buildtest.pl", "core_dispatch" ], - "test/buildtest_core_names.c" => [ - "test/generate_buildtest.pl", - "core_names" - ], "test/buildtest_core_object.c" => [ "test/generate_buildtest.pl", "core_object" @@ -16095,6 +18669,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "e_os2" ], + "test/buildtest_e_ostime.c" => [ + "test/generate_buildtest.pl", + "e_ostime" + ], "test/buildtest_ebcdic.c" => [ "test/generate_buildtest.pl", "ebcdic" @@ -16131,6 +18709,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "hmac" ], + "test/buildtest_hpke.c" => [ + "test/generate_buildtest.pl", + "hpke" + ], "test/buildtest_http.c" => [ "test/generate_buildtest.pl", "http" @@ -16139,6 +18721,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "idea" ], + "test/buildtest_indicator.c" => [ + "test/generate_buildtest.pl", + "indicator" + ], "test/buildtest_kdf.c" => [ "test/generate_buildtest.pl", "kdf" @@ -16159,6 +18745,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "mdc2" ], + "test/buildtest_ml_kem.c" => [ + "test/generate_buildtest.pl", + "ml_kem" + ], "test/buildtest_modes.c" => [ "test/generate_buildtest.pl", "modes" @@ -16199,6 +18789,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "provider" ], + "test/buildtest_quic.c" => [ + "test/generate_buildtest.pl", + "quic" + ], "test/buildtest_rand.c" => [ "test/generate_buildtest.pl", "rand" @@ -16255,6 +18849,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "symhacks" ], + "test/buildtest_thread.c" => [ + "test/generate_buildtest.pl", + "thread" + ], "test/buildtest_tls1.c" => [ "test/generate_buildtest.pl", "tls1" @@ -16335,6 +18933,7 @@ our %unified_info = ( "doc/html/man1/openssl-s_server.html", "doc/html/man1/openssl-s_time.html", "doc/html/man1/openssl-sess_id.html", + "doc/html/man1/openssl-skeyutl.html", "doc/html/man1/openssl-smime.html", "doc/html/man1/openssl-speed.html", "doc/html/man1/openssl-spkac.html", @@ -16384,6 +18983,7 @@ our %unified_info = ( "doc/html/man3/BIO_find_type.html", "doc/html/man3/BIO_get_data.html", "doc/html/man3/BIO_get_ex_new_index.html", + "doc/html/man3/BIO_get_rpoll_descriptor.html", "doc/html/man3/BIO_meth_new.html", "doc/html/man3/BIO_new.html", "doc/html/man3/BIO_new_CMS.html", @@ -16396,11 +18996,13 @@ our %unified_info = ( "doc/html/man3/BIO_s_connect.html", "doc/html/man3/BIO_s_core.html", "doc/html/man3/BIO_s_datagram.html", + "doc/html/man3/BIO_s_dgram_pair.html", "doc/html/man3/BIO_s_fd.html", "doc/html/man3/BIO_s_file.html", "doc/html/man3/BIO_s_mem.html", "doc/html/man3/BIO_s_null.html", "doc/html/man3/BIO_s_socket.html", + "doc/html/man3/BIO_sendmmsg.html", "doc/html/man3/BIO_set_callback.html", "doc/html/man3/BIO_should_retry.html", "doc/html/man3/BIO_socket_wait.html", @@ -16425,6 +19027,7 @@ our %unified_info = ( "doc/html/man3/BN_swap.html", "doc/html/man3/BN_zero.html", "doc/html/man3/BUF_MEM_new.html", + "doc/html/man3/CMAC_CTX.html", "doc/html/man3/CMS_EncryptedData_decrypt.html", "doc/html/man3/CMS_EncryptedData_encrypt.html", "doc/html/man3/CMS_EnvelopedData_create.html", @@ -16447,6 +19050,7 @@ our %unified_info = ( "doc/html/man3/CMS_uncompress.html", "doc/html/man3/CMS_verify.html", "doc/html/man3/CMS_verify_receipt.html", + "doc/html/man3/COMP_CTX_new.html", "doc/html/man3/CONF_modules_free.html", "doc/html/man3/CONF_modules_load_file.html", "doc/html/man3/CRYPTO_THREAD_run_once.html", @@ -16480,6 +19084,8 @@ our %unified_info = ( "doc/html/man3/DSA_size.html", "doc/html/man3/DTLS_get_data_mtu.html", "doc/html/man3/DTLS_set_timer_cb.html", + "doc/html/man3/DTLSv1_get_timeout.html", + "doc/html/man3/DTLSv1_handle_timeout.html", "doc/html/man3/DTLSv1_listen.html", "doc/html/man3/ECDSA_SIG_new.html", "doc/html/man3/ECDSA_sign.html", @@ -16526,6 +19132,7 @@ our %unified_info = ( "doc/html/man3/EVP_PKEY_CTX_ctrl.html", "doc/html/man3/EVP_PKEY_CTX_get0_libctx.html", "doc/html/man3/EVP_PKEY_CTX_get0_pkey.html", + "doc/html/man3/EVP_PKEY_CTX_get_algor.html", "doc/html/man3/EVP_PKEY_CTX_new.html", "doc/html/man3/EVP_PKEY_CTX_set1_pbe_pass.html", "doc/html/man3/EVP_PKEY_CTX_set_hkdf_md.html", @@ -16565,6 +19172,8 @@ our %unified_info = ( "doc/html/man3/EVP_PKEY_verify_recover.html", "doc/html/man3/EVP_RAND.html", "doc/html/man3/EVP_SIGNATURE.html", + "doc/html/man3/EVP_SKEY.html", + "doc/html/man3/EVP_SKEYMGMT.html", "doc/html/man3/EVP_SealInit.html", "doc/html/man3/EVP_SignInit.html", "doc/html/man3/EVP_VerifyInit.html", @@ -16594,6 +19203,7 @@ our %unified_info = ( "doc/html/man3/EVP_sm3.html", "doc/html/man3/EVP_sm4_cbc.html", "doc/html/man3/EVP_whirlpool.html", + "doc/html/man3/GENERAL_NAME.html", "doc/html/man3/HMAC.html", "doc/html/man3/MD5.html", "doc/html/man3/MDC2_Init.html", @@ -16618,14 +19228,18 @@ our %unified_info = ( "doc/html/man3/OPENSSL_init_ssl.html", "doc/html/man3/OPENSSL_instrument_bus.html", "doc/html/man3/OPENSSL_load_builtin_modules.html", + "doc/html/man3/OPENSSL_load_u16_le.html", "doc/html/man3/OPENSSL_malloc.html", + "doc/html/man3/OPENSSL_riscvcap.html", "doc/html/man3/OPENSSL_s390xcap.html", "doc/html/man3/OPENSSL_secure_malloc.html", "doc/html/man3/OPENSSL_strcasecmp.html", "doc/html/man3/OSSL_ALGORITHM.html", "doc/html/man3/OSSL_CALLBACK.html", + "doc/html/man3/OSSL_CMP_ATAV_set0.html", "doc/html/man3/OSSL_CMP_CTX_new.html", "doc/html/man3/OSSL_CMP_HDR_get0_transactionID.html", + "doc/html/man3/OSSL_CMP_ITAV_new_caCerts.html", "doc/html/man3/OSSL_CMP_ITAV_set0.html", "doc/html/man3/OSSL_CMP_MSG_get0_header.html", "doc/html/man3/OSSL_CMP_MSG_http_perform.html", @@ -16649,18 +19263,27 @@ our %unified_info = ( "doc/html/man3/OSSL_ENCODER_CTX.html", "doc/html/man3/OSSL_ENCODER_CTX_new_for_pkey.html", "doc/html/man3/OSSL_ENCODER_to_bio.html", + "doc/html/man3/OSSL_ERR_STATE_save.html", "doc/html/man3/OSSL_ESS_check_signing_certs.html", + "doc/html/man3/OSSL_GENERAL_NAMES_print.html", + "doc/html/man3/OSSL_HPKE_CTX_new.html", "doc/html/man3/OSSL_HTTP_REQ_CTX.html", "doc/html/man3/OSSL_HTTP_parse_url.html", "doc/html/man3/OSSL_HTTP_transfer.html", + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX.html", + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX_print.html", + "doc/html/man3/OSSL_INDICATOR_set_callback.html", "doc/html/man3/OSSL_ITEM.html", "doc/html/man3/OSSL_LIB_CTX.html", + "doc/html/man3/OSSL_LIB_CTX_set_conf_diagnostics.html", "doc/html/man3/OSSL_PARAM.html", "doc/html/man3/OSSL_PARAM_BLD.html", "doc/html/man3/OSSL_PARAM_allocate_from_text.html", "doc/html/man3/OSSL_PARAM_dup.html", "doc/html/man3/OSSL_PARAM_int.html", + "doc/html/man3/OSSL_PARAM_print_to_bio.html", "doc/html/man3/OSSL_PROVIDER.html", + "doc/html/man3/OSSL_QUIC_client_method.html", "doc/html/man3/OSSL_SELF_TEST_new.html", "doc/html/man3/OSSL_SELF_TEST_set_callback.html", "doc/html/man3/OSSL_STORE_INFO.html", @@ -16669,11 +19292,13 @@ our %unified_info = ( "doc/html/man3/OSSL_STORE_attach.html", "doc/html/man3/OSSL_STORE_expect.html", "doc/html/man3/OSSL_STORE_open.html", + "doc/html/man3/OSSL_sleep.html", "doc/html/man3/OSSL_trace_enabled.html", "doc/html/man3/OSSL_trace_get_category_num.html", "doc/html/man3/OSSL_trace_set_channel.html", "doc/html/man3/OpenSSL_add_all_algorithms.html", "doc/html/man3/OpenSSL_version.html", + "doc/html/man3/PBMAC1_get1_pbkdf2_param.html", "doc/html/man3/PEM_X509_INFO_read_bio_ex.html", "doc/html/man3/PEM_bytes_read_bio.html", "doc/html/man3/PEM_read.html", @@ -16686,6 +19311,7 @@ our %unified_info = ( "doc/html/man3/PKCS12_SAFEBAG_create_cert.html", "doc/html/man3/PKCS12_SAFEBAG_get0_attrs.html", "doc/html/man3/PKCS12_SAFEBAG_get1_cert.html", + "doc/html/man3/PKCS12_SAFEBAG_set0_attrs.html", "doc/html/man3/PKCS12_add1_attr_by_NID.html", "doc/html/man3/PKCS12_add_CSPName_asc.html", "doc/html/man3/PKCS12_add_cert.html", @@ -16777,6 +19403,7 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_sess_set_get_cb.html", "doc/html/man3/SSL_CTX_sessions.html", "doc/html/man3/SSL_CTX_set0_CA_list.html", + "doc/html/man3/SSL_CTX_set1_cert_comp_preference.html", "doc/html/man3/SSL_CTX_set1_curves.html", "doc/html/man3/SSL_CTX_set1_sigalgs.html", "doc/html/man3/SSL_CTX_set1_verify_cert_store.html", @@ -16790,6 +19417,7 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_ct_validation_callback.html", "doc/html/man3/SSL_CTX_set_ctlog_list_file.html", "doc/html/man3/SSL_CTX_set_default_passwd_cb.html", + "doc/html/man3/SSL_CTX_set_domain_flags.html", "doc/html/man3/SSL_CTX_set_generate_session_id.html", "doc/html/man3/SSL_CTX_set_info_callback.html", "doc/html/man3/SSL_CTX_set_keylog_callback.html", @@ -16797,6 +19425,7 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_min_proto_version.html", "doc/html/man3/SSL_CTX_set_mode.html", "doc/html/man3/SSL_CTX_set_msg_callback.html", + "doc/html/man3/SSL_CTX_set_new_pending_conn_cb.html", "doc/html/man3/SSL_CTX_set_num_tickets.html", "doc/html/man3/SSL_CTX_set_options.html", "doc/html/man3/SSL_CTX_set_psk_client_callback.html", @@ -16835,6 +19464,7 @@ our %unified_info = ( "doc/html/man3/SSL_SESSION_print.html", "doc/html/man3/SSL_SESSION_set1_id.html", "doc/html/man3/SSL_accept.html", + "doc/html/man3/SSL_accept_stream.html", "doc/html/man3/SSL_alert_type_string.html", "doc/html/man3/SSL_alloc_buffers.html", "doc/html/man3/SSL_check_chain.html", @@ -16844,59 +19474,90 @@ our %unified_info = ( "doc/html/man3/SSL_export_keying_material.html", "doc/html/man3/SSL_extension_supported.html", "doc/html/man3/SSL_free.html", + "doc/html/man3/SSL_get0_connection.html", + "doc/html/man3/SSL_get0_group_name.html", + "doc/html/man3/SSL_get0_peer_rpk.html", "doc/html/man3/SSL_get0_peer_scts.html", + "doc/html/man3/SSL_get1_builtin_sigalgs.html", "doc/html/man3/SSL_get_SSL_CTX.html", "doc/html/man3/SSL_get_all_async_fds.html", "doc/html/man3/SSL_get_certificate.html", "doc/html/man3/SSL_get_ciphers.html", "doc/html/man3/SSL_get_client_random.html", + "doc/html/man3/SSL_get_conn_close_info.html", "doc/html/man3/SSL_get_current_cipher.html", "doc/html/man3/SSL_get_default_timeout.html", "doc/html/man3/SSL_get_error.html", + "doc/html/man3/SSL_get_event_timeout.html", "doc/html/man3/SSL_get_extms_support.html", "doc/html/man3/SSL_get_fd.html", + "doc/html/man3/SSL_get_handshake_rtt.html", "doc/html/man3/SSL_get_peer_cert_chain.html", "doc/html/man3/SSL_get_peer_certificate.html", "doc/html/man3/SSL_get_peer_signature_nid.html", "doc/html/man3/SSL_get_peer_tmp_key.html", "doc/html/man3/SSL_get_psk_identity.html", "doc/html/man3/SSL_get_rbio.html", + "doc/html/man3/SSL_get_rpoll_descriptor.html", "doc/html/man3/SSL_get_session.html", "doc/html/man3/SSL_get_shared_sigalgs.html", + "doc/html/man3/SSL_get_stream_id.html", + "doc/html/man3/SSL_get_stream_read_state.html", + "doc/html/man3/SSL_get_value_uint.html", "doc/html/man3/SSL_get_verify_result.html", "doc/html/man3/SSL_get_version.html", "doc/html/man3/SSL_group_to_name.html", + "doc/html/man3/SSL_handle_events.html", "doc/html/man3/SSL_in_init.html", + "doc/html/man3/SSL_inject_net_dgram.html", "doc/html/man3/SSL_key_update.html", "doc/html/man3/SSL_library_init.html", "doc/html/man3/SSL_load_client_CA_file.html", "doc/html/man3/SSL_new.html", + "doc/html/man3/SSL_new_domain.html", + "doc/html/man3/SSL_new_listener.html", + "doc/html/man3/SSL_new_stream.html", "doc/html/man3/SSL_pending.html", + "doc/html/man3/SSL_poll.html", "doc/html/man3/SSL_read.html", "doc/html/man3/SSL_read_early_data.html", "doc/html/man3/SSL_rstate_string.html", "doc/html/man3/SSL_session_reused.html", "doc/html/man3/SSL_set1_host.html", + "doc/html/man3/SSL_set1_initial_peer_addr.html", + "doc/html/man3/SSL_set1_server_cert_type.html", "doc/html/man3/SSL_set_async_callback.html", "doc/html/man3/SSL_set_bio.html", + "doc/html/man3/SSL_set_blocking_mode.html", "doc/html/man3/SSL_set_connect_state.html", + "doc/html/man3/SSL_set_default_stream_mode.html", "doc/html/man3/SSL_set_fd.html", + "doc/html/man3/SSL_set_incoming_stream_policy.html", + "doc/html/man3/SSL_set_quic_tls_cbs.html", "doc/html/man3/SSL_set_retry_verify.html", "doc/html/man3/SSL_set_session.html", + "doc/html/man3/SSL_set_session_secret_cb.html", "doc/html/man3/SSL_set_shutdown.html", "doc/html/man3/SSL_set_verify_result.html", "doc/html/man3/SSL_shutdown.html", "doc/html/man3/SSL_state_string.html", + "doc/html/man3/SSL_stream_conclude.html", + "doc/html/man3/SSL_stream_reset.html", "doc/html/man3/SSL_want.html", "doc/html/man3/SSL_write.html", "doc/html/man3/TS_RESP_CTX_new.html", - "doc/html/man3/TS_VERIFY_CTX_set_certs.html", + "doc/html/man3/TS_VERIFY_CTX.html", "doc/html/man3/UI_STRING.html", "doc/html/man3/UI_UTIL_read_pw.html", "doc/html/man3/UI_create_method.html", "doc/html/man3/UI_new.html", "doc/html/man3/X509V3_get_d2i.html", "doc/html/man3/X509V3_set_ctx.html", + "doc/html/man3/X509_ACERT_add1_attr.html", + "doc/html/man3/X509_ACERT_add_attr_nconf.html", + "doc/html/man3/X509_ACERT_get0_holder_baseCertId.html", + "doc/html/man3/X509_ACERT_get_attr.html", + "doc/html/man3/X509_ACERT_print_ex.html", "doc/html/man3/X509_ALGOR_dup.html", "doc/html/man3/X509_ATTRIBUTE.html", "doc/html/man3/X509_CRL_get0_by_serial.html", @@ -16913,6 +19574,7 @@ our %unified_info = ( "doc/html/man3/X509_REQ_get_attr.html", "doc/html/man3/X509_REQ_get_extensions.html", "doc/html/man3/X509_SIG_get0.html", + "doc/html/man3/X509_STORE_CTX_get_by_subject.html", "doc/html/man3/X509_STORE_CTX_get_error.html", "doc/html/man3/X509_STORE_CTX_new.html", "doc/html/man3/X509_STORE_CTX_set_verify_cb.html", @@ -16935,6 +19597,7 @@ our %unified_info = ( "doc/html/man3/X509_get0_notBefore.html", "doc/html/man3/X509_get0_signature.html", "doc/html/man3/X509_get0_uids.html", + "doc/html/man3/X509_get_default_cert_file.html", "doc/html/man3/X509_get_extension_flags.html", "doc/html/man3/X509_get_pubkey.html", "doc/html/man3/X509_get_serialNumber.html", @@ -16980,12 +19643,15 @@ our %unified_info = ( "doc/html/man7/EVP_CIPHER-RC5.html", "doc/html/man7/EVP_CIPHER-SEED.html", "doc/html/man7/EVP_CIPHER-SM4.html", + "doc/html/man7/EVP_KDF-ARGON2.html", "doc/html/man7/EVP_KDF-HKDF.html", + "doc/html/man7/EVP_KDF-HMAC-DRBG.html", "doc/html/man7/EVP_KDF-KB.html", "doc/html/man7/EVP_KDF-KRB5KDF.html", "doc/html/man7/EVP_KDF-PBKDF1.html", "doc/html/man7/EVP_KDF-PBKDF2.html", "doc/html/man7/EVP_KDF-PKCS12KDF.html", + "doc/html/man7/EVP_KDF-PVKKDF.html", "doc/html/man7/EVP_KDF-SCRYPT.html", "doc/html/man7/EVP_KDF-SS.html", "doc/html/man7/EVP_KDF-SSHKDF.html", @@ -16994,7 +19660,10 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-X942-ASN1.html", "doc/html/man7/EVP_KDF-X942-CONCAT.html", "doc/html/man7/EVP_KDF-X963.html", + "doc/html/man7/EVP_KEM-EC.html", + "doc/html/man7/EVP_KEM-ML-KEM.html", "doc/html/man7/EVP_KEM-RSA.html", + "doc/html/man7/EVP_KEM-X25519.html", "doc/html/man7/EVP_KEYEXCH-DH.html", "doc/html/man7/EVP_KEYEXCH-ECDH.html", "doc/html/man7/EVP_KEYEXCH-X25519.html", @@ -17006,6 +19675,7 @@ our %unified_info = ( "doc/html/man7/EVP_MAC-Poly1305.html", "doc/html/man7/EVP_MAC-Siphash.html", "doc/html/man7/EVP_MD-BLAKE2.html", + "doc/html/man7/EVP_MD-KECCAK.html", "doc/html/man7/EVP_MD-MD2.html", "doc/html/man7/EVP_MD-MD4.html", "doc/html/man7/EVP_MD-MD5-SHA1.html", @@ -17025,12 +19695,17 @@ our %unified_info = ( "doc/html/man7/EVP_PKEY-EC.html", "doc/html/man7/EVP_PKEY-FFC.html", "doc/html/man7/EVP_PKEY-HMAC.html", + "doc/html/man7/EVP_PKEY-ML-DSA.html", + "doc/html/man7/EVP_PKEY-ML-KEM.html", "doc/html/man7/EVP_PKEY-RSA.html", + "doc/html/man7/EVP_PKEY-SLH-DSA.html", "doc/html/man7/EVP_PKEY-SM2.html", "doc/html/man7/EVP_PKEY-X25519.html", + "doc/html/man7/EVP_RAND-CRNG-TEST.html", "doc/html/man7/EVP_RAND-CTR-DRBG.html", "doc/html/man7/EVP_RAND-HASH-DRBG.html", "doc/html/man7/EVP_RAND-HMAC-DRBG.html", + "doc/html/man7/EVP_RAND-JITTER.html", "doc/html/man7/EVP_RAND-SEED-SRC.html", "doc/html/man7/EVP_RAND-TEST-RAND.html", "doc/html/man7/EVP_RAND.html", @@ -17038,17 +19713,19 @@ our %unified_info = ( "doc/html/man7/EVP_SIGNATURE-ECDSA.html", "doc/html/man7/EVP_SIGNATURE-ED25519.html", "doc/html/man7/EVP_SIGNATURE-HMAC.html", + "doc/html/man7/EVP_SIGNATURE-ML-DSA.html", "doc/html/man7/EVP_SIGNATURE-RSA.html", + "doc/html/man7/EVP_SIGNATURE-SLH-DSA.html", "doc/html/man7/OSSL_PROVIDER-FIPS.html", "doc/html/man7/OSSL_PROVIDER-base.html", "doc/html/man7/OSSL_PROVIDER-default.html", "doc/html/man7/OSSL_PROVIDER-legacy.html", "doc/html/man7/OSSL_PROVIDER-null.html", + "doc/html/man7/OSSL_STORE-winstore.html", "doc/html/man7/RAND.html", "doc/html/man7/RSA-PSS.html", "doc/html/man7/X25519.html", "doc/html/man7/bio.html", - "doc/html/man7/crypto.html", "doc/html/man7/ct.html", "doc/html/man7/des_modes.html", "doc/html/man7/evp.html", @@ -17059,14 +19736,31 @@ our %unified_info = ( "doc/html/man7/life_cycle-mac.html", "doc/html/man7/life_cycle-pkey.html", "doc/html/man7/life_cycle-rand.html", - "doc/html/man7/migration_guide.html", "doc/html/man7/openssl-core.h.html", "doc/html/man7/openssl-core_dispatch.h.html", "doc/html/man7/openssl-core_names.h.html", "doc/html/man7/openssl-env.html", "doc/html/man7/openssl-glossary.html", + "doc/html/man7/openssl-qlog.html", + "doc/html/man7/openssl-quic-concurrency.html", + "doc/html/man7/openssl-quic.html", "doc/html/man7/openssl-threads.html", "doc/html/man7/openssl_user_macros.html", + "doc/html/man7/ossl-guide-introduction.html", + "doc/html/man7/ossl-guide-libcrypto-introduction.html", + "doc/html/man7/ossl-guide-libraries-introduction.html", + "doc/html/man7/ossl-guide-libssl-introduction.html", + "doc/html/man7/ossl-guide-migration.html", + "doc/html/man7/ossl-guide-quic-client-block.html", + "doc/html/man7/ossl-guide-quic-client-non-block.html", + "doc/html/man7/ossl-guide-quic-introduction.html", + "doc/html/man7/ossl-guide-quic-multi-stream.html", + "doc/html/man7/ossl-guide-quic-server-block.html", + "doc/html/man7/ossl-guide-quic-server-non-block.html", + "doc/html/man7/ossl-guide-tls-client-block.html", + "doc/html/man7/ossl-guide-tls-client-non-block.html", + "doc/html/man7/ossl-guide-tls-introduction.html", + "doc/html/man7/ossl-guide-tls-server-block.html", "doc/html/man7/ossl_store-file.html", "doc/html/man7/ossl_store.html", "doc/html/man7/passphrase-encoding.html", @@ -17085,10 +19779,10 @@ our %unified_info = ( "doc/html/man7/provider-object.html", "doc/html/man7/provider-rand.html", "doc/html/man7/provider-signature.html", + "doc/html/man7/provider-skeymgmt.html", "doc/html/man7/provider-storemgmt.html", "doc/html/man7/provider.html", "doc/html/man7/proxy-certificates.html", - "doc/html/man7/ssl.html", "doc/html/man7/x509.html" ] }, @@ -17103,12 +19797,21 @@ our %unified_info = ( ] }, "includes" => { + "OpenSSLConfig.cmake" => [ + "." + ], + "OpenSSLConfigVersion.cmake" => [ + "." + ], "apps/asn1parse.o" => [ "apps" ], "apps/ca.o" => [ "apps" ], + "apps/ca_internals_test-bin-ca.o" => [ + "apps" + ], "apps/ciphers.o" => [ "apps" ], @@ -17335,6 +20038,9 @@ our %unified_info = ( "apps/openssl-bin-sess_id.o" => [ "apps" ], + "apps/openssl-bin-skeyutl.o" => [ + "apps" + ], "apps/openssl-bin-smime.o" => [ "apps" ], @@ -17422,6 +20128,9 @@ our %unified_info = ( "apps/sess_id.o" => [ "apps" ], + "apps/skeyutl.o" => [ + "apps" + ], "apps/smime.o" => [ "apps" ], @@ -17473,6 +20182,12 @@ our %unified_info = ( "crypto/aes/bsaes-armv7.o" => [ "crypto" ], + "crypto/aes/vpaes-armv8.o" => [ + "crypto" + ], + "crypto/aes/vpaes-loongarch64.o" => [ + "crypto" + ], "crypto/arm64cpuid.o" => [ "crypto" ], @@ -17524,9 +20239,15 @@ our %unified_info = ( "crypto/chacha/chacha-armv4.o" => [ "crypto" ], + "crypto/chacha/chacha-armv8-sve.o" => [ + "crypto" + ], "crypto/chacha/chacha-armv8.o" => [ "crypto" ], + "crypto/chacha/chacha-loongarch64.o" => [ + "crypto" + ], "crypto/chacha/chacha-s390x.o" => [ "crypto" ], @@ -17551,15 +20272,24 @@ our %unified_info = ( "crypto/ec/ecp_s390x_nistp.o" => [ "crypto" ], + "crypto/ec/ecp_sm2p256-armv8.o" => [ + "crypto" + ], + "crypto/ec/ecx_key.o" => [ + "crypto" + ], "crypto/ec/ecx_meth.o" => [ "crypto" ], - "crypto/ec/ecx_s390x.o" => [ + "crypto/ec/libcrypto-lib-ecx_key.o" => [ "crypto" ], "crypto/ec/libcrypto-lib-ecx_meth.o" => [ "crypto" ], + "crypto/ec/libfips-lib-ecx_key.o" => [ + "crypto" + ], "crypto/evp/e_aes.o" => [ "crypto", "crypto/modes" @@ -17631,9 +20361,18 @@ our %unified_info = ( "crypto/libfips-lib-cpuid.o" => [ "." ], + "crypto/md5/md5-aarch64.o" => [ + "crypto" + ], + "crypto/md5/md5-loongarch64.o" => [ + "crypto" + ], "crypto/md5/md5-sparcv9.o" => [ "crypto" ], + "crypto/modes/aes-gcm-armv8-unroll8_64.o" => [ + "crypto" + ], "crypto/modes/aes-gcm-armv8_64.o" => [ "crypto" ], @@ -17658,6 +20397,9 @@ our %unified_info = ( "crypto/modes/libfips-lib-gcm128.o" => [ "crypto" ], + "crypto/params_idx.c" => [ + "util/perl" + ], "crypto/poly1305/poly1305-armv4.o" => [ "crypto" ], @@ -17679,6 +20421,9 @@ our %unified_info = ( "crypto/sha/keccak1600-armv4.o" => [ "crypto" ], + "crypto/sha/keccak1600-armv8.o" => [ + "crypto" + ], "crypto/sha/sha1-armv4-large.o" => [ "crypto" ], @@ -17724,6 +20469,18 @@ our %unified_info = ( "crypto/sha/sha512-sparcv9.o" => [ "crypto" ], + "crypto/sm3/sm3-armv8.o" => [ + "crypto" + ], + "crypto/sm4/sm4-armv8.o" => [ + "crypto" + ], + "crypto/sm4/vpsm4-armv8.o" => [ + "crypto" + ], + "crypto/sm4/vpsm4_ex-armv8.o" => [ + "crypto" + ], "doc/man1/openssl-asn1parse.pod" => [ "doc" ], @@ -17856,6 +20613,9 @@ our %unified_info = ( "doc/man1/openssl-sess_id.pod" => [ "doc" ], + "doc/man1/openssl-skeyutl.pod" => [ + "doc" + ], "doc/man1/openssl-smime.pod" => [ "doc" ], @@ -17883,6 +20643,24 @@ our %unified_info = ( "doc/man1/openssl-x509.pod" => [ "doc" ], + "exporters/OpenSSLConfig.cmake" => [ + "." + ], + "exporters/OpenSSLConfigVersion.cmake" => [ + "." + ], + "exporters/libcrypto.pc" => [ + "." + ], + "exporters/libssl.pc" => [ + "." + ], + "exporters/openssl.pc" => [ + "." + ], + "fuzz/acert-test" => [ + "include" + ], "fuzz/asn1-test" => [ "include" ], @@ -17913,12 +20691,69 @@ our %unified_info = ( "fuzz/ct-test" => [ "include" ], + "fuzz/decoder-test" => [ + "include" + ], + "fuzz/dtlsclient-test" => [ + "include" + ], + "fuzz/dtlsserver-test" => [ + "include" + ], + "fuzz/hashtable-test" => [ + "include" + ], + "fuzz/ml-dsa-test" => [ + "include" + ], + "fuzz/ml-kem-test" => [ + "include" + ], + "fuzz/pem-test" => [ + "include" + ], + "fuzz/provider-test" => [ + "include" + ], + "fuzz/punycode-test" => [ + "include" + ], + "fuzz/quic-client-test" => [ + "include" + ], + "fuzz/quic-lcidm-test" => [ + "include" + ], + "fuzz/quic-rcidm-test" => [ + "include" + ], + "fuzz/quic-server-test" => [ + "include" + ], + "fuzz/quic-srtm-test" => [ + "include" + ], "fuzz/server-test" => [ "include" ], + "fuzz/slh-dsa-test" => [ + "include" + ], + "fuzz/smime-test" => [ + "include" + ], + "fuzz/v3name-test" => [ + "include" + ], "fuzz/x509-test" => [ "include" ], + "include/internal/param_names.h" => [ + "util/perl" + ], + "include/openssl/core_names.h" => [ + "util/perl" + ], "libcrypto" => [ ".", "include", @@ -17929,6 +20764,9 @@ our %unified_info = ( ".", "util/perl/OpenSSL" ], + "libcrypto.pc" => [ + "." + ], "libssl" => [ ".", "include" @@ -17937,6 +20775,12 @@ our %unified_info = ( ".", "util/perl/OpenSSL" ], + "libssl.pc" => [ + "." + ], + "openssl.pc" => [ + "." + ], "providers/common/der/der_digests_gen.c" => [ "providers/common/der" ], @@ -17976,6 +20820,15 @@ our %unified_info = ( "providers/common/der/der_ecx_key.o" => [ "providers/common/include/prov" ], + "providers/common/der/der_ml_dsa_gen.c" => [ + "providers/common/der" + ], + "providers/common/der/der_ml_dsa_gen.o" => [ + "providers/common/include/prov" + ], + "providers/common/der/der_ml_dsa_key.o" => [ + "providers/common/include/prov" + ], "providers/common/der/der_rsa_gen.c" => [ "providers/common/der" ], @@ -17988,6 +20841,15 @@ our %unified_info = ( "providers/common/der/der_rsa_sig.o" => [ "providers/common/include/prov" ], + "providers/common/der/der_slh_dsa_gen.c" => [ + "providers/common/der" + ], + "providers/common/der/der_slh_dsa_gen.o" => [ + "providers/common/include/prov" + ], + "providers/common/der/der_slh_dsa_key.o" => [ + "providers/common/include/prov" + ], "providers/common/der/der_sm2_gen.c" => [ "providers/common/der" ], @@ -18033,12 +20895,24 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ecx_key.o" => [ "providers/common/include/prov" ], + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o" => [ + "providers/common/include/prov" + ], + "providers/common/der/libcommon-lib-der_ml_dsa_key.o" => [ + "providers/common/include/prov" + ], "providers/common/der/libcommon-lib-der_rsa_gen.o" => [ "providers/common/include/prov" ], "providers/common/der/libcommon-lib-der_rsa_key.o" => [ "providers/common/include/prov" ], + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o" => [ + "providers/common/include/prov" + ], + "providers/common/der/libcommon-lib-der_slh_dsa_key.o" => [ + "providers/common/include/prov" + ], "providers/common/der/libcommon-lib-der_wrap_gen.o" => [ "providers/common/include/prov" ], @@ -18069,9 +20943,15 @@ our %unified_info = ( "providers/common/include/prov/der_ecx.h" => [ "providers/common/der" ], + "providers/common/include/prov/der_ml_dsa.h" => [ + "providers/common/der" + ], "providers/common/include/prov/der_rsa.h" => [ "providers/common/der" ], + "providers/common/include/prov/der_slh_dsa.h" => [ + "providers/common/der" + ], "providers/common/include/prov/der_sm2.h" => [ "providers/common/der" ], @@ -18114,9 +20994,15 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-eddsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/libdefault-lib-rsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/libdefault-lib-sm2_sig.o" => [ "providers/common/include/prov" ], @@ -18129,12 +21015,24 @@ our %unified_info = ( "providers/implementations/signature/libfips-lib-eddsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/libfips-lib-rsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o" => [ + "providers/common/include/prov" + ], + "providers/implementations/signature/ml_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/rsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/slh_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/sm2_sig.o" => [ "providers/common/include/prov" ], @@ -18147,28 +21045,39 @@ our %unified_info = ( "crypto", "include", "providers/implementations/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" ], "providers/libdefault.a" => [ ".", "crypto", "include", "providers/implementations/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" ], "providers/libfips.a" => [ ".", "crypto", "include", "providers/implementations/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" ], "providers/liblegacy.a" => [ ".", "crypto", "include", "providers/implementations/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" + ], + "providers/libtemplate.a" => [ + "crypto", + "include", + "providers/implementations/include", + "providers/common/include", + "providers/fips/include" ], "test/aborttest" => [ "include", @@ -18237,6 +21146,14 @@ our %unified_info = ( "include", "apps/include" ], + "test/bio_addr_test" => [ + "include", + "apps/include" + ], + "test/bio_base64_test" => [ + "include", + "apps/include" + ], "test/bio_callback_test" => [ "include", "apps/include" @@ -18245,11 +21162,20 @@ our %unified_info = ( "include", "apps/include" ], + "test/bio_dgram_test" => [ + "include", + "apps/include", + "." + ], "test/bio_enc_test" => [ "include", "apps/include" ], - "test/bio_memleak_test" => [ + "test/bio_memleak_test" => [ + "include", + "apps/include" + ], + "test/bio_meth_test" => [ "include", "apps/include" ], @@ -18266,6 +21192,11 @@ our %unified_info = ( "include", "apps/include" ], + "test/bio_tfo_test" => [ + "include", + "apps/include", + "." + ], "test/bioprinttest" => [ "include", "apps/include" @@ -18280,6 +21211,9 @@ our %unified_info = ( "include", "apps/include" ], + "test/build_wincrypt_test" => [ + "include" + ], "test/buildtest_c_aes" => [ "include" ], @@ -18295,6 +21229,9 @@ our %unified_info = ( "test/buildtest_c_buffer" => [ "include" ], + "test/buildtest_c_byteorder" => [ + "include" + ], "test/buildtest_c_camellia" => [ "include" ], @@ -18319,9 +21256,6 @@ our %unified_info = ( "test/buildtest_c_core_dispatch" => [ "include" ], - "test/buildtest_c_core_names" => [ - "include" - ], "test/buildtest_c_core_object" => [ "include" ], @@ -18346,6 +21280,9 @@ our %unified_info = ( "test/buildtest_c_e_os2" => [ "include" ], + "test/buildtest_c_e_ostime" => [ + "include" + ], "test/buildtest_c_ebcdic" => [ "include" ], @@ -18373,12 +21310,18 @@ our %unified_info = ( "test/buildtest_c_hmac" => [ "include" ], + "test/buildtest_c_hpke" => [ + "include" + ], "test/buildtest_c_http" => [ "include" ], "test/buildtest_c_idea" => [ "include" ], + "test/buildtest_c_indicator" => [ + "include" + ], "test/buildtest_c_kdf" => [ "include" ], @@ -18394,6 +21337,9 @@ our %unified_info = ( "test/buildtest_c_mdc2" => [ "include" ], + "test/buildtest_c_ml_kem" => [ + "include" + ], "test/buildtest_c_modes" => [ "include" ], @@ -18424,6 +21370,9 @@ our %unified_info = ( "test/buildtest_c_provider" => [ "include" ], + "test/buildtest_c_quic" => [ + "include" + ], "test/buildtest_c_rand" => [ "include" ], @@ -18466,6 +21415,9 @@ our %unified_info = ( "test/buildtest_c_symhacks" => [ "include" ], + "test/buildtest_c_thread" => [ + "include" + ], "test/buildtest_c_tls1" => [ "include" ], @@ -18481,10 +21433,24 @@ our %unified_info = ( "test/buildtest_c_whrlpool" => [ "include" ], + "test/byteorder_test" => [ + "include", + "apps/include" + ], + "test/ca_internals_test" => [ + ".", + "include", + "apps/include" + ], "test/casttest" => [ "include", "apps/include" ], + "test/cert_comp_test" => [ + "include", + "apps/include", + "." + ], "test/chacha_internal_test" => [ ".", "include", @@ -18608,6 +21574,11 @@ our %unified_info = ( "include", "apps/include" ], + "test/decoder_propq_test" => [ + ".", + "include", + "apps/include" + ], "test/defltfips_test" => [ "include", "apps/include" @@ -18623,7 +21594,8 @@ our %unified_info = ( "test/drbgtest" => [ "include", "apps/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" ], "test/dsa_no_digest_size_test" => [ "include", @@ -18666,7 +21638,9 @@ our %unified_info = ( "test/endecode_test" => [ ".", "include", - "apps/include" + "apps/include", + "providers/common/include", + "providers/implementations/include" ], "test/endecoder_legacy_test" => [ ".", @@ -18711,6 +21685,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/evp_pkey_dhkem_test" => [ + "include", + "apps/include" + ], "test/evp_pkey_dparams_test" => [ "include", "apps/include" @@ -18719,10 +21697,18 @@ our %unified_info = ( "include", "apps/include" ], + "test/evp_skey_test" => [ + "include", + "apps/include" + ], "test/evp_test" => [ "include", "apps/include" ], + "test/evp_xof_test" => [ + "include", + "apps/include" + ], "test/exdatatest" => [ "include", "apps/include" @@ -18823,22 +21809,62 @@ our %unified_info = ( ".", "include" ], + "test/helpers/json_test-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/helpers/pkcs12.o" => [ ".", "include" ], + "test/helpers/pkcs12_api_test-bin-pkcs12.o" => [ + ".", + "include" + ], "test/helpers/pkcs12_format_test-bin-pkcs12.o" => [ ".", "include" ], + "test/helpers/quic_multistream_test-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quic_newcid_test-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quic_radix_test-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quic_srt_gen_test-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quicapitest-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quicfaultstest-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/helpers/recordlentest-bin-ssltestlib.o" => [ ".", "include" ], + "test/helpers/rpktest-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/helpers/servername_test-bin-ssltestlib.o" => [ ".", "include" ], + "test/helpers/ssl_handshake_rtt_test-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/helpers/ssl_test-bin-handshake.o" => [ ".", "include" @@ -18872,6 +21898,10 @@ our %unified_info = ( ".", "include" ], + "test/helpers/tls13groupselection_test-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/hexstr_test" => [ ".", "include", @@ -18881,6 +21911,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/hpke_test" => [ + "include", + "apps/include" + ], "test/http_test" => [ "include", "apps/include" @@ -18893,6 +21927,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/json_test" => [ + "include", + "apps/include" + ], "test/keymgmt_internal_test" => [ ".", "include", @@ -18907,6 +21945,10 @@ our %unified_info = ( "apps/include", "." ], + "test/list_test" => [ + "include", + "apps/include" + ], "test/localetest" => [ "include", "apps/include" @@ -18920,10 +21962,27 @@ our %unified_info = ( "include", "apps/include" ], + "test/membio_test" => [ + "include", + "apps/include", + "." + ], "test/memleaktest" => [ "include", "apps/include" ], + "test/ml_dsa_test" => [ + "include", + "apps/include" + ], + "test/ml_kem_evp_extra_test" => [ + "include", + "apps/include" + ], + "test/ml_kem_internal_test" => [ + "include", + "apps/include" + ], "test/modes_internal_test" => [ ".", "include", @@ -18958,6 +22017,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/pairwise_fail_test" => [ + "include", + "apps/include" + ], "test/param_build_test" => [ "include", "apps/include" @@ -18991,6 +22054,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/pkcs12_api_test" => [ + "include", + "apps/include" + ], "test/pkcs12_format_test" => [ "include", "apps/include" @@ -19012,6 +22079,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/priority_queue_test" => [ + "include", + "apps/include" + ], "test/property_test" => [ ".", "include", @@ -19025,6 +22096,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/provider_default_search_path_test" => [ + "include", + "apps/include" + ], "test/provider_fallback_test" => [ "include", "apps/include" @@ -19051,6 +22126,97 @@ our %unified_info = ( "include", "apps/include" ], + "test/quic_ackm_test" => [ + "include", + "apps/include" + ], + "test/quic_cc_test" => [ + "include", + "apps/include" + ], + "test/quic_cfq_test" => [ + "include", + "apps/include" + ], + "test/quic_client_test" => [ + "include", + "apps/include" + ], + "test/quic_fc_test" => [ + "include", + "apps/include" + ], + "test/quic_fifd_test" => [ + "include", + "apps/include" + ], + "test/quic_lcidm_test" => [ + "include", + "apps/include" + ], + "test/quic_multistream_test" => [ + "include", + "apps/include" + ], + "test/quic_newcid_test" => [ + "include", + "apps/include", + "." + ], + "test/quic_qlog_test" => [ + "include", + "apps/include" + ], + "test/quic_radix_test" => [ + "include", + "apps/include" + ], + "test/quic_rcidm_test" => [ + "include", + "apps/include" + ], + "test/quic_record_test" => [ + "include", + "apps/include" + ], + "test/quic_srt_gen_test" => [ + "include", + "apps/include", + "." + ], + "test/quic_srtm_test" => [ + "include", + "apps/include" + ], + "test/quic_stream_test" => [ + "include", + "apps/include" + ], + "test/quic_tserver_test" => [ + "include", + "apps/include" + ], + "test/quic_txp_test" => [ + "include", + "apps/include" + ], + "test/quic_txpim_test" => [ + "include", + "apps/include" + ], + "test/quic_wire_test" => [ + "include", + "apps/include" + ], + "test/quicapitest" => [ + "include", + "apps/include" + ], + "test/quicfaultstest" => [ + "include", + "apps/include", + "." + ], "test/rand_status_test" => [ "include", "apps/include" @@ -19071,14 +22237,20 @@ our %unified_info = ( "include", "apps/include" ], - "test/rdrand_sanitytest" => [ + "test/rdcpu_sanitytest" => [ "include", - "apps/include" + "apps/include", + "crypto" ], "test/recordlentest" => [ "include", "apps/include" ], + "test/rpktest" => [ + "include", + "apps/include", + "." + ], "test/rsa_complex" => [ "include", "apps/include" @@ -19097,6 +22269,15 @@ our %unified_info = ( "include", "apps/include" ], + "test/rsa_x931_test" => [ + ".", + "include", + "apps/include" + ], + "test/safe_math_test" => [ + "include", + "apps/include" + ], "test/sanitytest" => [ "include", "apps/include" @@ -19118,6 +22299,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/slh_dsa_test" => [ + "include", + "apps/include" + ], "test/sm2_internal_test" => [ "include", "apps/include" @@ -19148,6 +22333,11 @@ our %unified_info = ( "include", "apps/include" ], + "test/ssl_handshake_rtt_test" => [ + "include", + "apps/include", + "." + ], "test/ssl_old_test" => [ ".", "include", @@ -19164,6 +22354,7 @@ our %unified_info = ( "test/sslapitest" => [ "include", "apps/include", + "providers/common/include", "." ], "test/sslbuffertest" => [ @@ -19178,6 +22369,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/strtoultest" => [ + "include", + "apps/include" + ], "test/sysdefaulttest" => [ "include", "apps/include" @@ -19186,7 +22381,13 @@ our %unified_info = ( "include", "apps/include" ], + "test/threadpool_test" => [ + ".", + "include", + "apps/include" + ], "test/threadstest" => [ + ".", "include", "apps/include" ], @@ -19198,6 +22399,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/time_test" => [ + "include", + "apps/include" + ], "test/tls13ccstest" => [ "include", "apps/include" @@ -19207,6 +22412,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/tls13groupselection_test" => [ + "include", + "apps/include" + ], "test/trace_api_test" => [ ".", "include", @@ -19245,6 +22454,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/x509_acert_test" => [ + "include", + "apps/include" + ], "test/x509_check_cert_pkey_test" => [ "include", "apps/include" @@ -19258,6 +22471,18 @@ our %unified_info = ( "include", "apps/include" ], + "test/x509_load_cert_file_test" => [ + "include", + "apps/include" + ], + "test/x509_req_test" => [ + "include", + "apps/include" + ], + "test/x509_test" => [ + "include", + "apps/include" + ], "test/x509_time_test" => [ "include", "apps/include" @@ -19279,6 +22504,7 @@ our %unified_info = ( "providers/libdefault.a", "providers/libfips.a", "providers/liblegacy.a", + "providers/libtemplate.a", "test/libtestutil.a" ], "mandocs" => { @@ -19331,6 +22557,7 @@ our %unified_info = ( "doc/man/man1/openssl-s_server.1", "doc/man/man1/openssl-s_time.1", "doc/man/man1/openssl-sess_id.1", + "doc/man/man1/openssl-skeyutl.1", "doc/man/man1/openssl-smime.1", "doc/man/man1/openssl-speed.1", "doc/man/man1/openssl-spkac.1", @@ -19380,6 +22607,7 @@ our %unified_info = ( "doc/man/man3/BIO_find_type.3", "doc/man/man3/BIO_get_data.3", "doc/man/man3/BIO_get_ex_new_index.3", + "doc/man/man3/BIO_get_rpoll_descriptor.3", "doc/man/man3/BIO_meth_new.3", "doc/man/man3/BIO_new.3", "doc/man/man3/BIO_new_CMS.3", @@ -19392,11 +22620,13 @@ our %unified_info = ( "doc/man/man3/BIO_s_connect.3", "doc/man/man3/BIO_s_core.3", "doc/man/man3/BIO_s_datagram.3", + "doc/man/man3/BIO_s_dgram_pair.3", "doc/man/man3/BIO_s_fd.3", "doc/man/man3/BIO_s_file.3", "doc/man/man3/BIO_s_mem.3", "doc/man/man3/BIO_s_null.3", "doc/man/man3/BIO_s_socket.3", + "doc/man/man3/BIO_sendmmsg.3", "doc/man/man3/BIO_set_callback.3", "doc/man/man3/BIO_should_retry.3", "doc/man/man3/BIO_socket_wait.3", @@ -19421,6 +22651,7 @@ our %unified_info = ( "doc/man/man3/BN_swap.3", "doc/man/man3/BN_zero.3", "doc/man/man3/BUF_MEM_new.3", + "doc/man/man3/CMAC_CTX.3", "doc/man/man3/CMS_EncryptedData_decrypt.3", "doc/man/man3/CMS_EncryptedData_encrypt.3", "doc/man/man3/CMS_EnvelopedData_create.3", @@ -19443,6 +22674,7 @@ our %unified_info = ( "doc/man/man3/CMS_uncompress.3", "doc/man/man3/CMS_verify.3", "doc/man/man3/CMS_verify_receipt.3", + "doc/man/man3/COMP_CTX_new.3", "doc/man/man3/CONF_modules_free.3", "doc/man/man3/CONF_modules_load_file.3", "doc/man/man3/CRYPTO_THREAD_run_once.3", @@ -19476,6 +22708,8 @@ our %unified_info = ( "doc/man/man3/DSA_size.3", "doc/man/man3/DTLS_get_data_mtu.3", "doc/man/man3/DTLS_set_timer_cb.3", + "doc/man/man3/DTLSv1_get_timeout.3", + "doc/man/man3/DTLSv1_handle_timeout.3", "doc/man/man3/DTLSv1_listen.3", "doc/man/man3/ECDSA_SIG_new.3", "doc/man/man3/ECDSA_sign.3", @@ -19522,6 +22756,7 @@ our %unified_info = ( "doc/man/man3/EVP_PKEY_CTX_ctrl.3", "doc/man/man3/EVP_PKEY_CTX_get0_libctx.3", "doc/man/man3/EVP_PKEY_CTX_get0_pkey.3", + "doc/man/man3/EVP_PKEY_CTX_get_algor.3", "doc/man/man3/EVP_PKEY_CTX_new.3", "doc/man/man3/EVP_PKEY_CTX_set1_pbe_pass.3", "doc/man/man3/EVP_PKEY_CTX_set_hkdf_md.3", @@ -19561,6 +22796,8 @@ our %unified_info = ( "doc/man/man3/EVP_PKEY_verify_recover.3", "doc/man/man3/EVP_RAND.3", "doc/man/man3/EVP_SIGNATURE.3", + "doc/man/man3/EVP_SKEY.3", + "doc/man/man3/EVP_SKEYMGMT.3", "doc/man/man3/EVP_SealInit.3", "doc/man/man3/EVP_SignInit.3", "doc/man/man3/EVP_VerifyInit.3", @@ -19590,6 +22827,7 @@ our %unified_info = ( "doc/man/man3/EVP_sm3.3", "doc/man/man3/EVP_sm4_cbc.3", "doc/man/man3/EVP_whirlpool.3", + "doc/man/man3/GENERAL_NAME.3", "doc/man/man3/HMAC.3", "doc/man/man3/MD5.3", "doc/man/man3/MDC2_Init.3", @@ -19614,14 +22852,18 @@ our %unified_info = ( "doc/man/man3/OPENSSL_init_ssl.3", "doc/man/man3/OPENSSL_instrument_bus.3", "doc/man/man3/OPENSSL_load_builtin_modules.3", + "doc/man/man3/OPENSSL_load_u16_le.3", "doc/man/man3/OPENSSL_malloc.3", + "doc/man/man3/OPENSSL_riscvcap.3", "doc/man/man3/OPENSSL_s390xcap.3", "doc/man/man3/OPENSSL_secure_malloc.3", "doc/man/man3/OPENSSL_strcasecmp.3", "doc/man/man3/OSSL_ALGORITHM.3", "doc/man/man3/OSSL_CALLBACK.3", + "doc/man/man3/OSSL_CMP_ATAV_set0.3", "doc/man/man3/OSSL_CMP_CTX_new.3", "doc/man/man3/OSSL_CMP_HDR_get0_transactionID.3", + "doc/man/man3/OSSL_CMP_ITAV_new_caCerts.3", "doc/man/man3/OSSL_CMP_ITAV_set0.3", "doc/man/man3/OSSL_CMP_MSG_get0_header.3", "doc/man/man3/OSSL_CMP_MSG_http_perform.3", @@ -19645,18 +22887,27 @@ our %unified_info = ( "doc/man/man3/OSSL_ENCODER_CTX.3", "doc/man/man3/OSSL_ENCODER_CTX_new_for_pkey.3", "doc/man/man3/OSSL_ENCODER_to_bio.3", + "doc/man/man3/OSSL_ERR_STATE_save.3", "doc/man/man3/OSSL_ESS_check_signing_certs.3", + "doc/man/man3/OSSL_GENERAL_NAMES_print.3", + "doc/man/man3/OSSL_HPKE_CTX_new.3", "doc/man/man3/OSSL_HTTP_REQ_CTX.3", "doc/man/man3/OSSL_HTTP_parse_url.3", "doc/man/man3/OSSL_HTTP_transfer.3", + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX.3", + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX_print.3", + "doc/man/man3/OSSL_INDICATOR_set_callback.3", "doc/man/man3/OSSL_ITEM.3", "doc/man/man3/OSSL_LIB_CTX.3", + "doc/man/man3/OSSL_LIB_CTX_set_conf_diagnostics.3", "doc/man/man3/OSSL_PARAM.3", "doc/man/man3/OSSL_PARAM_BLD.3", "doc/man/man3/OSSL_PARAM_allocate_from_text.3", "doc/man/man3/OSSL_PARAM_dup.3", "doc/man/man3/OSSL_PARAM_int.3", + "doc/man/man3/OSSL_PARAM_print_to_bio.3", "doc/man/man3/OSSL_PROVIDER.3", + "doc/man/man3/OSSL_QUIC_client_method.3", "doc/man/man3/OSSL_SELF_TEST_new.3", "doc/man/man3/OSSL_SELF_TEST_set_callback.3", "doc/man/man3/OSSL_STORE_INFO.3", @@ -19665,11 +22916,13 @@ our %unified_info = ( "doc/man/man3/OSSL_STORE_attach.3", "doc/man/man3/OSSL_STORE_expect.3", "doc/man/man3/OSSL_STORE_open.3", + "doc/man/man3/OSSL_sleep.3", "doc/man/man3/OSSL_trace_enabled.3", "doc/man/man3/OSSL_trace_get_category_num.3", "doc/man/man3/OSSL_trace_set_channel.3", "doc/man/man3/OpenSSL_add_all_algorithms.3", "doc/man/man3/OpenSSL_version.3", + "doc/man/man3/PBMAC1_get1_pbkdf2_param.3", "doc/man/man3/PEM_X509_INFO_read_bio_ex.3", "doc/man/man3/PEM_bytes_read_bio.3", "doc/man/man3/PEM_read.3", @@ -19682,6 +22935,7 @@ our %unified_info = ( "doc/man/man3/PKCS12_SAFEBAG_create_cert.3", "doc/man/man3/PKCS12_SAFEBAG_get0_attrs.3", "doc/man/man3/PKCS12_SAFEBAG_get1_cert.3", + "doc/man/man3/PKCS12_SAFEBAG_set0_attrs.3", "doc/man/man3/PKCS12_add1_attr_by_NID.3", "doc/man/man3/PKCS12_add_CSPName_asc.3", "doc/man/man3/PKCS12_add_cert.3", @@ -19773,6 +23027,7 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_sess_set_get_cb.3", "doc/man/man3/SSL_CTX_sessions.3", "doc/man/man3/SSL_CTX_set0_CA_list.3", + "doc/man/man3/SSL_CTX_set1_cert_comp_preference.3", "doc/man/man3/SSL_CTX_set1_curves.3", "doc/man/man3/SSL_CTX_set1_sigalgs.3", "doc/man/man3/SSL_CTX_set1_verify_cert_store.3", @@ -19786,6 +23041,7 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_ct_validation_callback.3", "doc/man/man3/SSL_CTX_set_ctlog_list_file.3", "doc/man/man3/SSL_CTX_set_default_passwd_cb.3", + "doc/man/man3/SSL_CTX_set_domain_flags.3", "doc/man/man3/SSL_CTX_set_generate_session_id.3", "doc/man/man3/SSL_CTX_set_info_callback.3", "doc/man/man3/SSL_CTX_set_keylog_callback.3", @@ -19793,6 +23049,7 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_min_proto_version.3", "doc/man/man3/SSL_CTX_set_mode.3", "doc/man/man3/SSL_CTX_set_msg_callback.3", + "doc/man/man3/SSL_CTX_set_new_pending_conn_cb.3", "doc/man/man3/SSL_CTX_set_num_tickets.3", "doc/man/man3/SSL_CTX_set_options.3", "doc/man/man3/SSL_CTX_set_psk_client_callback.3", @@ -19831,6 +23088,7 @@ our %unified_info = ( "doc/man/man3/SSL_SESSION_print.3", "doc/man/man3/SSL_SESSION_set1_id.3", "doc/man/man3/SSL_accept.3", + "doc/man/man3/SSL_accept_stream.3", "doc/man/man3/SSL_alert_type_string.3", "doc/man/man3/SSL_alloc_buffers.3", "doc/man/man3/SSL_check_chain.3", @@ -19840,59 +23098,90 @@ our %unified_info = ( "doc/man/man3/SSL_export_keying_material.3", "doc/man/man3/SSL_extension_supported.3", "doc/man/man3/SSL_free.3", + "doc/man/man3/SSL_get0_connection.3", + "doc/man/man3/SSL_get0_group_name.3", + "doc/man/man3/SSL_get0_peer_rpk.3", "doc/man/man3/SSL_get0_peer_scts.3", + "doc/man/man3/SSL_get1_builtin_sigalgs.3", "doc/man/man3/SSL_get_SSL_CTX.3", "doc/man/man3/SSL_get_all_async_fds.3", "doc/man/man3/SSL_get_certificate.3", "doc/man/man3/SSL_get_ciphers.3", "doc/man/man3/SSL_get_client_random.3", + "doc/man/man3/SSL_get_conn_close_info.3", "doc/man/man3/SSL_get_current_cipher.3", "doc/man/man3/SSL_get_default_timeout.3", "doc/man/man3/SSL_get_error.3", + "doc/man/man3/SSL_get_event_timeout.3", "doc/man/man3/SSL_get_extms_support.3", "doc/man/man3/SSL_get_fd.3", + "doc/man/man3/SSL_get_handshake_rtt.3", "doc/man/man3/SSL_get_peer_cert_chain.3", "doc/man/man3/SSL_get_peer_certificate.3", "doc/man/man3/SSL_get_peer_signature_nid.3", "doc/man/man3/SSL_get_peer_tmp_key.3", "doc/man/man3/SSL_get_psk_identity.3", "doc/man/man3/SSL_get_rbio.3", + "doc/man/man3/SSL_get_rpoll_descriptor.3", "doc/man/man3/SSL_get_session.3", "doc/man/man3/SSL_get_shared_sigalgs.3", + "doc/man/man3/SSL_get_stream_id.3", + "doc/man/man3/SSL_get_stream_read_state.3", + "doc/man/man3/SSL_get_value_uint.3", "doc/man/man3/SSL_get_verify_result.3", "doc/man/man3/SSL_get_version.3", "doc/man/man3/SSL_group_to_name.3", + "doc/man/man3/SSL_handle_events.3", "doc/man/man3/SSL_in_init.3", + "doc/man/man3/SSL_inject_net_dgram.3", "doc/man/man3/SSL_key_update.3", "doc/man/man3/SSL_library_init.3", "doc/man/man3/SSL_load_client_CA_file.3", "doc/man/man3/SSL_new.3", + "doc/man/man3/SSL_new_domain.3", + "doc/man/man3/SSL_new_listener.3", + "doc/man/man3/SSL_new_stream.3", "doc/man/man3/SSL_pending.3", + "doc/man/man3/SSL_poll.3", "doc/man/man3/SSL_read.3", "doc/man/man3/SSL_read_early_data.3", "doc/man/man3/SSL_rstate_string.3", "doc/man/man3/SSL_session_reused.3", "doc/man/man3/SSL_set1_host.3", + "doc/man/man3/SSL_set1_initial_peer_addr.3", + "doc/man/man3/SSL_set1_server_cert_type.3", "doc/man/man3/SSL_set_async_callback.3", "doc/man/man3/SSL_set_bio.3", + "doc/man/man3/SSL_set_blocking_mode.3", "doc/man/man3/SSL_set_connect_state.3", + "doc/man/man3/SSL_set_default_stream_mode.3", "doc/man/man3/SSL_set_fd.3", + "doc/man/man3/SSL_set_incoming_stream_policy.3", + "doc/man/man3/SSL_set_quic_tls_cbs.3", "doc/man/man3/SSL_set_retry_verify.3", "doc/man/man3/SSL_set_session.3", + "doc/man/man3/SSL_set_session_secret_cb.3", "doc/man/man3/SSL_set_shutdown.3", "doc/man/man3/SSL_set_verify_result.3", "doc/man/man3/SSL_shutdown.3", "doc/man/man3/SSL_state_string.3", + "doc/man/man3/SSL_stream_conclude.3", + "doc/man/man3/SSL_stream_reset.3", "doc/man/man3/SSL_want.3", "doc/man/man3/SSL_write.3", "doc/man/man3/TS_RESP_CTX_new.3", - "doc/man/man3/TS_VERIFY_CTX_set_certs.3", + "doc/man/man3/TS_VERIFY_CTX.3", "doc/man/man3/UI_STRING.3", "doc/man/man3/UI_UTIL_read_pw.3", "doc/man/man3/UI_create_method.3", "doc/man/man3/UI_new.3", "doc/man/man3/X509V3_get_d2i.3", "doc/man/man3/X509V3_set_ctx.3", + "doc/man/man3/X509_ACERT_add1_attr.3", + "doc/man/man3/X509_ACERT_add_attr_nconf.3", + "doc/man/man3/X509_ACERT_get0_holder_baseCertId.3", + "doc/man/man3/X509_ACERT_get_attr.3", + "doc/man/man3/X509_ACERT_print_ex.3", "doc/man/man3/X509_ALGOR_dup.3", "doc/man/man3/X509_ATTRIBUTE.3", "doc/man/man3/X509_CRL_get0_by_serial.3", @@ -19909,6 +23198,7 @@ our %unified_info = ( "doc/man/man3/X509_REQ_get_attr.3", "doc/man/man3/X509_REQ_get_extensions.3", "doc/man/man3/X509_SIG_get0.3", + "doc/man/man3/X509_STORE_CTX_get_by_subject.3", "doc/man/man3/X509_STORE_CTX_get_error.3", "doc/man/man3/X509_STORE_CTX_new.3", "doc/man/man3/X509_STORE_CTX_set_verify_cb.3", @@ -19931,6 +23221,7 @@ our %unified_info = ( "doc/man/man3/X509_get0_notBefore.3", "doc/man/man3/X509_get0_signature.3", "doc/man/man3/X509_get0_uids.3", + "doc/man/man3/X509_get_default_cert_file.3", "doc/man/man3/X509_get_extension_flags.3", "doc/man/man3/X509_get_pubkey.3", "doc/man/man3/X509_get_serialNumber.3", @@ -19976,12 +23267,15 @@ our %unified_info = ( "doc/man/man7/EVP_CIPHER-RC5.7", "doc/man/man7/EVP_CIPHER-SEED.7", "doc/man/man7/EVP_CIPHER-SM4.7", + "doc/man/man7/EVP_KDF-ARGON2.7", "doc/man/man7/EVP_KDF-HKDF.7", + "doc/man/man7/EVP_KDF-HMAC-DRBG.7", "doc/man/man7/EVP_KDF-KB.7", "doc/man/man7/EVP_KDF-KRB5KDF.7", "doc/man/man7/EVP_KDF-PBKDF1.7", "doc/man/man7/EVP_KDF-PBKDF2.7", "doc/man/man7/EVP_KDF-PKCS12KDF.7", + "doc/man/man7/EVP_KDF-PVKKDF.7", "doc/man/man7/EVP_KDF-SCRYPT.7", "doc/man/man7/EVP_KDF-SS.7", "doc/man/man7/EVP_KDF-SSHKDF.7", @@ -19990,7 +23284,10 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-X942-ASN1.7", "doc/man/man7/EVP_KDF-X942-CONCAT.7", "doc/man/man7/EVP_KDF-X963.7", + "doc/man/man7/EVP_KEM-EC.7", + "doc/man/man7/EVP_KEM-ML-KEM.7", "doc/man/man7/EVP_KEM-RSA.7", + "doc/man/man7/EVP_KEM-X25519.7", "doc/man/man7/EVP_KEYEXCH-DH.7", "doc/man/man7/EVP_KEYEXCH-ECDH.7", "doc/man/man7/EVP_KEYEXCH-X25519.7", @@ -20002,6 +23299,7 @@ our %unified_info = ( "doc/man/man7/EVP_MAC-Poly1305.7", "doc/man/man7/EVP_MAC-Siphash.7", "doc/man/man7/EVP_MD-BLAKE2.7", + "doc/man/man7/EVP_MD-KECCAK.7", "doc/man/man7/EVP_MD-MD2.7", "doc/man/man7/EVP_MD-MD4.7", "doc/man/man7/EVP_MD-MD5-SHA1.7", @@ -20021,12 +23319,17 @@ our %unified_info = ( "doc/man/man7/EVP_PKEY-EC.7", "doc/man/man7/EVP_PKEY-FFC.7", "doc/man/man7/EVP_PKEY-HMAC.7", + "doc/man/man7/EVP_PKEY-ML-DSA.7", + "doc/man/man7/EVP_PKEY-ML-KEM.7", "doc/man/man7/EVP_PKEY-RSA.7", + "doc/man/man7/EVP_PKEY-SLH-DSA.7", "doc/man/man7/EVP_PKEY-SM2.7", "doc/man/man7/EVP_PKEY-X25519.7", + "doc/man/man7/EVP_RAND-CRNG-TEST.7", "doc/man/man7/EVP_RAND-CTR-DRBG.7", "doc/man/man7/EVP_RAND-HASH-DRBG.7", "doc/man/man7/EVP_RAND-HMAC-DRBG.7", + "doc/man/man7/EVP_RAND-JITTER.7", "doc/man/man7/EVP_RAND-SEED-SRC.7", "doc/man/man7/EVP_RAND-TEST-RAND.7", "doc/man/man7/EVP_RAND.7", @@ -20034,17 +23337,19 @@ our %unified_info = ( "doc/man/man7/EVP_SIGNATURE-ECDSA.7", "doc/man/man7/EVP_SIGNATURE-ED25519.7", "doc/man/man7/EVP_SIGNATURE-HMAC.7", + "doc/man/man7/EVP_SIGNATURE-ML-DSA.7", "doc/man/man7/EVP_SIGNATURE-RSA.7", + "doc/man/man7/EVP_SIGNATURE-SLH-DSA.7", "doc/man/man7/OSSL_PROVIDER-FIPS.7", "doc/man/man7/OSSL_PROVIDER-base.7", "doc/man/man7/OSSL_PROVIDER-default.7", "doc/man/man7/OSSL_PROVIDER-legacy.7", "doc/man/man7/OSSL_PROVIDER-null.7", + "doc/man/man7/OSSL_STORE-winstore.7", "doc/man/man7/RAND.7", "doc/man/man7/RSA-PSS.7", "doc/man/man7/X25519.7", "doc/man/man7/bio.7", - "doc/man/man7/crypto.7", "doc/man/man7/ct.7", "doc/man/man7/des_modes.7", "doc/man/man7/evp.7", @@ -20055,14 +23360,31 @@ our %unified_info = ( "doc/man/man7/life_cycle-mac.7", "doc/man/man7/life_cycle-pkey.7", "doc/man/man7/life_cycle-rand.7", - "doc/man/man7/migration_guide.7", "doc/man/man7/openssl-core.h.7", "doc/man/man7/openssl-core_dispatch.h.7", "doc/man/man7/openssl-core_names.h.7", "doc/man/man7/openssl-env.7", "doc/man/man7/openssl-glossary.7", + "doc/man/man7/openssl-qlog.7", + "doc/man/man7/openssl-quic-concurrency.7", + "doc/man/man7/openssl-quic.7", "doc/man/man7/openssl-threads.7", "doc/man/man7/openssl_user_macros.7", + "doc/man/man7/ossl-guide-introduction.7", + "doc/man/man7/ossl-guide-libcrypto-introduction.7", + "doc/man/man7/ossl-guide-libraries-introduction.7", + "doc/man/man7/ossl-guide-libssl-introduction.7", + "doc/man/man7/ossl-guide-migration.7", + "doc/man/man7/ossl-guide-quic-client-block.7", + "doc/man/man7/ossl-guide-quic-client-non-block.7", + "doc/man/man7/ossl-guide-quic-introduction.7", + "doc/man/man7/ossl-guide-quic-multi-stream.7", + "doc/man/man7/ossl-guide-quic-server-block.7", + "doc/man/man7/ossl-guide-quic-server-non-block.7", + "doc/man/man7/ossl-guide-tls-client-block.7", + "doc/man/man7/ossl-guide-tls-client-non-block.7", + "doc/man/man7/ossl-guide-tls-introduction.7", + "doc/man/man7/ossl-guide-tls-server-block.7", "doc/man/man7/ossl_store-file.7", "doc/man/man7/ossl_store.7", "doc/man/man7/passphrase-encoding.7", @@ -20081,10 +23403,10 @@ our %unified_info = ( "doc/man/man7/provider-object.7", "doc/man/man7/provider-rand.7", "doc/man/man7/provider-signature.7", + "doc/man/man7/provider-skeymgmt.7", "doc/man/man7/provider-storemgmt.7", "doc/man/man7/provider.7", "doc/man/man7/proxy-certificates.7", - "doc/man/man7/ssl.7", "doc/man/man7/x509.7" ] }, @@ -20096,6 +23418,7 @@ our %unified_info = ( ], "programs" => [ "apps/openssl", + "fuzz/acert-test", "fuzz/asn1-test", "fuzz/asn1parse-test", "fuzz/bignum-test", @@ -20106,7 +23429,24 @@ our %unified_info = ( "fuzz/conf-test", "fuzz/crl-test", "fuzz/ct-test", + "fuzz/decoder-test", + "fuzz/dtlsclient-test", + "fuzz/dtlsserver-test", + "fuzz/hashtable-test", + "fuzz/ml-dsa-test", + "fuzz/ml-kem-test", + "fuzz/pem-test", + "fuzz/provider-test", + "fuzz/punycode-test", + "fuzz/quic-client-test", + "fuzz/quic-lcidm-test", + "fuzz/quic-rcidm-test", + "fuzz/quic-server-test", + "fuzz/quic-srtm-test", "fuzz/server-test", + "fuzz/slh-dsa-test", + "fuzz/smime-test", + "fuzz/v3name-test", "fuzz/x509-test", "test/aborttest", "test/acvp_test", @@ -20124,21 +23464,28 @@ our %unified_info = ( "test/asynctest", "test/bad_dtls_test", "test/bftest", + "test/bio_addr_test", + "test/bio_base64_test", "test/bio_callback_test", "test/bio_core_test", + "test/bio_dgram_test", "test/bio_enc_test", "test/bio_memleak_test", + "test/bio_meth_test", "test/bio_prefix_text", "test/bio_pw_callback_test", "test/bio_readbuffer_test", + "test/bio_tfo_test", "test/bioprinttest", "test/bn_internal_test", "test/bntest", + "test/build_wincrypt_test", "test/buildtest_c_aes", "test/buildtest_c_async", "test/buildtest_c_blowfish", "test/buildtest_c_bn", "test/buildtest_c_buffer", + "test/buildtest_c_byteorder", "test/buildtest_c_camellia", "test/buildtest_c_cast", "test/buildtest_c_cmac", @@ -20147,7 +23494,6 @@ our %unified_info = ( "test/buildtest_c_conftypes", "test/buildtest_c_core", "test/buildtest_c_core_dispatch", - "test/buildtest_c_core_names", "test/buildtest_c_core_object", "test/buildtest_c_cryptoerr_legacy", "test/buildtest_c_decoder", @@ -20156,6 +23502,7 @@ our %unified_info = ( "test/buildtest_c_dsa", "test/buildtest_c_dtls1", "test/buildtest_c_e_os2", + "test/buildtest_c_e_ostime", "test/buildtest_c_ebcdic", "test/buildtest_c_ec", "test/buildtest_c_ecdh", @@ -20165,13 +23512,16 @@ our %unified_info = ( "test/buildtest_c_evp", "test/buildtest_c_fips_names", "test/buildtest_c_hmac", + "test/buildtest_c_hpke", "test/buildtest_c_http", "test/buildtest_c_idea", + "test/buildtest_c_indicator", "test/buildtest_c_kdf", "test/buildtest_c_macros", "test/buildtest_c_md4", "test/buildtest_c_md5", "test/buildtest_c_mdc2", + "test/buildtest_c_ml_kem", "test/buildtest_c_modes", "test/buildtest_c_obj_mac", "test/buildtest_c_objects", @@ -20182,6 +23532,7 @@ our %unified_info = ( "test/buildtest_c_pem2", "test/buildtest_c_prov_ssl", "test/buildtest_c_provider", + "test/buildtest_c_quic", "test/buildtest_c_rand", "test/buildtest_c_rc2", "test/buildtest_c_rc4", @@ -20196,11 +23547,14 @@ our %unified_info = ( "test/buildtest_c_stack", "test/buildtest_c_store", "test/buildtest_c_symhacks", + "test/buildtest_c_thread", "test/buildtest_c_tls1", "test/buildtest_c_ts", "test/buildtest_c_txt_db", "test/buildtest_c_types", "test/buildtest_c_whrlpool", + "test/byteorder_test", + "test/ca_internals_test", "test/casttest", "test/chacha_internal_test", "test/cipher_overhead_test", @@ -20229,6 +23583,7 @@ our %unified_info = ( "test/curve448_internal_test", "test/d2i_test", "test/danetest", + "test/decoder_propq_test", "test/defltfips_test", "test/destest", "test/dhtest", @@ -20253,9 +23608,12 @@ our %unified_info = ( "test/evp_kdf_test", "test/evp_libctx_test", "test/evp_pkey_ctx_new_from_name", + "test/evp_pkey_dhkem_test", "test/evp_pkey_dparams_test", "test/evp_pkey_provided_test", + "test/evp_skey_test", "test/evp_test", + "test/evp_xof_test", "test/exdatatest", "test/exptest", "test/ext_internal_test", @@ -20265,21 +23623,29 @@ our %unified_info = ( "test/gmdifftest", "test/hexstr_test", "test/hmactest", + "test/hpke_test", "test/http_test", "test/ideatest", "test/igetest", + "test/json_test", "test/keymgmt_internal_test", "test/lhash_test", + "test/list_test", "test/localetest", "test/mdc2_internal_test", "test/mdc2test", + "test/membio_test", "test/memleaktest", + "test/ml_dsa_test", + "test/ml_kem_evp_extra_test", + "test/ml_kem_internal_test", "test/modes_internal_test", "test/namemap_internal_test", "test/nodefltctxtest", "test/ocspapitest", "test/ossl_store_test", "test/packettest", + "test/pairwise_fail_test", "test/param_build_test", "test/params_api_test", "test/params_conversion_test", @@ -20288,36 +23654,65 @@ our %unified_info = ( "test/pbetest", "test/pem_read_depr_test", "test/pemtest", + "test/pkcs12_api_test", "test/pkcs12_format_test", "test/pkcs7_test", "test/pkey_meth_kdf_test", "test/pkey_meth_test", "test/poly1305_internal_test", + "test/priority_queue_test", "test/property_test", "test/prov_config_test", "test/provfetchtest", + "test/provider_default_search_path_test", "test/provider_fallback_test", "test/provider_internal_test", "test/provider_pkey_test", "test/provider_status_test", "test/provider_test", "test/punycode_test", + "test/quic_ackm_test", + "test/quic_cc_test", + "test/quic_cfq_test", + "test/quic_client_test", + "test/quic_fc_test", + "test/quic_fifd_test", + "test/quic_lcidm_test", + "test/quic_multistream_test", + "test/quic_newcid_test", + "test/quic_qlog_test", + "test/quic_radix_test", + "test/quic_rcidm_test", + "test/quic_record_test", + "test/quic_srt_gen_test", + "test/quic_srtm_test", + "test/quic_stream_test", + "test/quic_tserver_test", + "test/quic_txp_test", + "test/quic_txpim_test", + "test/quic_wire_test", + "test/quicapitest", + "test/quicfaultstest", "test/rand_status_test", "test/rand_test", "test/rc2test", "test/rc4test", "test/rc5test", - "test/rdrand_sanitytest", + "test/rdcpu_sanitytest", "test/recordlentest", + "test/rpktest", "test/rsa_complex", "test/rsa_mp_test", "test/rsa_sp800_56b_test", "test/rsa_test", + "test/rsa_x931_test", + "test/safe_math_test", "test/sanitytest", "test/secmemtest", "test/servername_test", "test/sha_test", "test/siphash_internal_test", + "test/slh_dsa_test", "test/sm2_internal_test", "test/sm3_internal_test", "test/sm4_internal_test", @@ -20325,6 +23720,7 @@ our %unified_info = ( "test/srptest", "test/ssl_cert_table_internal_test", "test/ssl_ctx_test", + "test/ssl_handshake_rtt_test", "test/ssl_old_test", "test/ssl_test", "test/ssl_test_ctx_test", @@ -20332,13 +23728,17 @@ our %unified_info = ( "test/sslbuffertest", "test/sslcorrupttest", "test/stack_test", + "test/strtoultest", "test/sysdefaulttest", "test/test_test", + "test/threadpool_test", "test/threadstest", "test/threadstest_fips", "test/time_offset_test", + "test/time_test", "test/tls13ccstest", "test/tls13encryptiontest", + "test/tls13groupselection_test", "test/trace_api_test", "test/uitest", "test/upcallstest", @@ -20348,9 +23748,13 @@ our %unified_info = ( "test/verify_extra_test", "test/versions", "test/wpackettest", + "test/x509_acert_test", "test/x509_check_cert_pkey_test", "test/x509_dup_cert_test", "test/x509_internal_test", + "test/x509_load_cert_file_test", + "test/x509_req_test", + "test/x509_test", "test/x509_time_test", "test/x509aux" ], @@ -20366,6 +23770,33 @@ our %unified_info = ( "apps/CA.pl" => [ "apps/CA.pl.in" ], + "apps/ca_internals_test-bin-ca.o" => [ + "apps/ca.c" + ], + "apps/lib/ca_internals_test-bin-app_libctx.o" => [ + "apps/lib/app_libctx.c" + ], + "apps/lib/ca_internals_test-bin-app_provider.o" => [ + "apps/lib/app_provider.c" + ], + "apps/lib/ca_internals_test-bin-app_rand.o" => [ + "apps/lib/app_rand.c" + ], + "apps/lib/ca_internals_test-bin-app_x509.o" => [ + "apps/lib/app_x509.c" + ], + "apps/lib/ca_internals_test-bin-apps.o" => [ + "apps/lib/apps.c" + ], + "apps/lib/ca_internals_test-bin-apps_ui.o" => [ + "apps/lib/apps_ui.c" + ], + "apps/lib/ca_internals_test-bin-engine.o" => [ + "apps/lib/engine.c" + ], + "apps/lib/ca_internals_test-bin-fmt.o" => [ + "apps/lib/fmt.c" + ], "apps/lib/cmp_client_test-bin-cmp_mock_srv.o" => [ "apps/lib/cmp_mock_srv.c" ], @@ -20387,6 +23818,9 @@ our %unified_info = ( "apps/lib/libapps-lib-apps.o" => [ "apps/lib/apps.c" ], + "apps/lib/libapps-lib-apps_opt_printf.o" => [ + "apps/lib/apps_opt_printf.c" + ], "apps/lib/libapps-lib-apps_ui.o" => [ "apps/lib/apps_ui.c" ], @@ -20405,6 +23839,9 @@ our %unified_info = ( "apps/lib/libapps-lib-http_server.o" => [ "apps/lib/http_server.c" ], + "apps/lib/libapps-lib-log.o" => [ + "apps/lib/log.c" + ], "apps/lib/libapps-lib-names.o" => [ "apps/lib/names.c" ], @@ -20436,12 +23873,14 @@ our %unified_info = ( "apps/lib/libapps-lib-app_rand.o", "apps/lib/libapps-lib-app_x509.o", "apps/lib/libapps-lib-apps.o", + "apps/lib/libapps-lib-apps_opt_printf.o", "apps/lib/libapps-lib-apps_ui.o", "apps/lib/libapps-lib-columns.o", "apps/lib/libapps-lib-engine.o", "apps/lib/libapps-lib-engine_loader.o", "apps/lib/libapps-lib-fmt.o", "apps/lib/libapps-lib-http_server.o", + "apps/lib/libapps-lib-log.o", "apps/lib/libapps-lib-names.o", "apps/lib/libapps-lib-opt.o", "apps/lib/libapps-lib-s_cb.o", @@ -20495,6 +23934,7 @@ our %unified_info = ( "apps/openssl-bin-s_server.o", "apps/openssl-bin-s_time.o", "apps/openssl-bin-sess_id.o", + "apps/openssl-bin-skeyutl.o", "apps/openssl-bin-smime.o", "apps/openssl-bin-speed.o", "apps/openssl-bin-spkac.o", @@ -20640,6 +24080,9 @@ our %unified_info = ( "apps/openssl-bin-sess_id.o" => [ "apps/sess_id.c" ], + "apps/openssl-bin-skeyutl.o" => [ + "apps/skeyutl.c" + ], "apps/openssl-bin-smime.o" => [ "apps/smime.c" ], @@ -20709,6 +24152,12 @@ our %unified_info = ( "crypto/aria/libcrypto-lib-aria.o" => [ "crypto/aria/aria.c" ], + "crypto/asn1/asn1_time_test-bin-a_time.o" => [ + "crypto/asn1/a_time.c" + ], + "crypto/asn1/ca_internals_test-bin-a_time.o" => [ + "crypto/asn1/a_time.c" + ], "crypto/asn1/libcrypto-lib-a_bitstr.o" => [ "crypto/asn1/a_bitstr.c" ], @@ -20901,6 +24350,9 @@ our %unified_info = ( "crypto/asn1/libcrypto-lib-x_val.o" => [ "crypto/asn1/x_val.c" ], + "crypto/asn1_time_test-bin-ctype.o" => [ + "crypto/ctype.c" + ], "crypto/async/arch/libcrypto-lib-async_null.o" => [ "crypto/async/arch/async_null.c" ], @@ -20994,6 +24446,9 @@ our %unified_info = ( "crypto/bio/libcrypto-lib-bss_dgram.o" => [ "crypto/bio/bss_dgram.c" ], + "crypto/bio/libcrypto-lib-bss_dgram_pair.o" => [ + "crypto/bio/bss_dgram_pair.c" + ], "crypto/bio/libcrypto-lib-bss_fd.o" => [ "crypto/bio/bss_fd.c" ], @@ -21207,6 +24662,9 @@ our %unified_info = ( "crypto/buffer/libfips-lib-buffer.o" => [ "crypto/buffer/buffer.c" ], + "crypto/ca_internals_test-bin-ctype.o" => [ + "crypto/ctype.c" + ], "crypto/camellia/libcrypto-lib-camellia.o" => [ "crypto/camellia/camellia.c" ], @@ -21264,6 +24722,9 @@ our %unified_info = ( "crypto/cmp/libcrypto-lib-cmp_err.o" => [ "crypto/cmp/cmp_err.c" ], + "crypto/cmp/libcrypto-lib-cmp_genm.o" => [ + "crypto/cmp/cmp_genm.c" + ], "crypto/cmp/libcrypto-lib-cmp_hdr.o" => [ "crypto/cmp/cmp_hdr.c" ], @@ -21939,9 +25400,15 @@ our %unified_info = ( "crypto/err/libcrypto-lib-err_blocks.o" => [ "crypto/err/err_blocks.c" ], + "crypto/err/libcrypto-lib-err_mark.o" => [ + "crypto/err/err_mark.c" + ], "crypto/err/libcrypto-lib-err_prn.o" => [ "crypto/err/err_prn.c" ], + "crypto/err/libcrypto-lib-err_save.o" => [ + "crypto/err/err_save.c" + ], "crypto/ess/libcrypto-lib-ess_asn1.o" => [ "crypto/ess/ess_asn1.c" ], @@ -22188,9 +25655,15 @@ our %unified_info = ( "crypto/evp/libcrypto-lib-pmeth_lib.o" => [ "crypto/evp/pmeth_lib.c" ], + "crypto/evp/libcrypto-lib-s_lib.o" => [ + "crypto/evp/s_lib.c" + ], "crypto/evp/libcrypto-lib-signature.o" => [ "crypto/evp/signature.c" ], + "crypto/evp/libcrypto-lib-skeymgmt_meth.o" => [ + "crypto/evp/skeymgmt_meth.c" + ], "crypto/evp/libfips-lib-asymcipher.o" => [ "crypto/evp/asymcipher.c" ], @@ -22236,9 +25709,6 @@ our %unified_info = ( "crypto/evp/libfips-lib-keymgmt_meth.o" => [ "crypto/evp/keymgmt_meth.c" ], - "crypto/evp/libfips-lib-m_sigver.o" => [ - "crypto/evp/m_sigver.c" - ], "crypto/evp/libfips-lib-mac_lib.o" => [ "crypto/evp/mac_lib.c" ], @@ -22257,9 +25727,15 @@ our %unified_info = ( "crypto/evp/libfips-lib-pmeth_lib.o" => [ "crypto/evp/pmeth_lib.c" ], + "crypto/evp/libfips-lib-s_lib.o" => [ + "crypto/evp/s_lib.c" + ], "crypto/evp/libfips-lib-signature.o" => [ "crypto/evp/signature.c" ], + "crypto/evp/libfips-lib-skeymgmt_meth.o" => [ + "crypto/evp/skeymgmt_meth.c" + ], "crypto/ffc/libcrypto-lib-ffc_backend.o" => [ "crypto/ffc/ffc_backend.c" ], @@ -22302,12 +25778,30 @@ our %unified_info = ( "crypto/ffc/libfips-lib-ffc_params_validate.o" => [ "crypto/ffc/ffc_params_validate.c" ], + "crypto/hashtable/libcrypto-lib-hashfunc.o" => [ + "crypto/hashtable/hashfunc.c" + ], + "crypto/hashtable/libcrypto-lib-hashtable.o" => [ + "crypto/hashtable/hashtable.c" + ], + "crypto/hashtable/libfips-lib-hashfunc.o" => [ + "crypto/hashtable/hashfunc.c" + ], + "crypto/hashtable/libfips-lib-hashtable.o" => [ + "crypto/hashtable/hashtable.c" + ], "crypto/hmac/libcrypto-lib-hmac.o" => [ "crypto/hmac/hmac.c" ], "crypto/hmac/libfips-lib-hmac.o" => [ "crypto/hmac/hmac.c" ], + "crypto/hpke/libcrypto-lib-hpke.o" => [ + "crypto/hpke/hpke.c" + ], + "crypto/hpke/libcrypto-lib-hpke_util.o" => [ + "crypto/hpke/hpke_util.c" + ], "crypto/http/libcrypto-lib-http_client.o" => [ "crypto/http/http_client.c" ], @@ -22350,6 +25844,9 @@ our %unified_info = ( "crypto/libcrypto-lib-bsearch.o" => [ "crypto/bsearch.c" ], + "crypto/libcrypto-lib-comp_methods.o" => [ + "crypto/comp_methods.c" + ], "crypto/libcrypto-lib-context.o" => [ "crypto/context.c" ], @@ -22377,9 +25874,15 @@ our %unified_info = ( "crypto/libcrypto-lib-cversion.o" => [ "crypto/cversion.c" ], + "crypto/libcrypto-lib-defaults.o" => [ + "crypto/defaults.c" + ], "crypto/libcrypto-lib-der_writer.o" => [ "crypto/der_writer.c" ], + "crypto/libcrypto-lib-deterministic_nonce.o" => [ + "crypto/deterministic_nonce.c" + ], "crypto/libcrypto-lib-ebcdic.o" => [ "crypto/ebcdic.c" ], @@ -22389,6 +25892,9 @@ our %unified_info = ( "crypto/libcrypto-lib-getenv.o" => [ "crypto/getenv.c" ], + "crypto/libcrypto-lib-indicator_core.o" => [ + "crypto/indicator_core.c" + ], "crypto/libcrypto-lib-info.o" => [ "crypto/info.c" ], @@ -22440,6 +25946,9 @@ our %unified_info = ( "crypto/libcrypto-lib-params_from_text.o" => [ "crypto/params_from_text.c" ], + "crypto/libcrypto-lib-params_idx.o" => [ + "crypto/params_idx.c" + ], "crypto/libcrypto-lib-passphrase.o" => [ "crypto/passphrase.c" ], @@ -22461,12 +25970,21 @@ our %unified_info = ( "crypto/libcrypto-lib-punycode.o" => [ "crypto/punycode.c" ], + "crypto/libcrypto-lib-quic_vlint.o" => [ + "crypto/quic_vlint.c" + ], "crypto/libcrypto-lib-self_test_core.o" => [ "crypto/self_test_core.c" ], + "crypto/libcrypto-lib-sleep.o" => [ + "crypto/sleep.c" + ], "crypto/libcrypto-lib-sparse_array.o" => [ "crypto/sparse_array.c" ], + "crypto/libcrypto-lib-ssl_err.o" => [ + "crypto/ssl_err.c" + ], "crypto/libcrypto-lib-threads_lib.o" => [ "crypto/threads_lib.c" ], @@ -22479,6 +25997,9 @@ our %unified_info = ( "crypto/libcrypto-lib-threads_win.o" => [ "crypto/threads_win.c" ], + "crypto/libcrypto-lib-time.o" => [ + "crypto/time.c" + ], "crypto/libcrypto-lib-trace.o" => [ "crypto/trace.c" ], @@ -22545,6 +26066,9 @@ our %unified_info = ( "crypto/libfips-lib-params_from_text.o" => [ "crypto/params_from_text.c" ], + "crypto/libfips-lib-params_idx.o" => [ + "crypto/params_idx.c" + ], "crypto/libfips-lib-provider_core.o" => [ "crypto/provider_core.c" ], @@ -22569,6 +26093,9 @@ our %unified_info = ( "crypto/libfips-lib-threads_win.o" => [ "crypto/threads_win.c" ], + "crypto/libfips-lib-time.o" => [ + "crypto/time.c" + ], "crypto/md4/libcrypto-lib-md4_dgst.o" => [ "crypto/md4/md4_dgst.c" ], @@ -22590,6 +26117,60 @@ our %unified_info = ( "crypto/mdc2/libcrypto-lib-mdc2dgst.o" => [ "crypto/mdc2/mdc2dgst.c" ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_encoders.o" => [ + "crypto/ml_dsa/ml_dsa_encoders.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key.o" => [ + "crypto/ml_dsa/ml_dsa_key.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key_compress.o" => [ + "crypto/ml_dsa/ml_dsa_key_compress.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_matrix.o" => [ + "crypto/ml_dsa/ml_dsa_matrix.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_ntt.o" => [ + "crypto/ml_dsa/ml_dsa_ntt.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_params.o" => [ + "crypto/ml_dsa/ml_dsa_params.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sample.o" => [ + "crypto/ml_dsa/ml_dsa_sample.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sign.o" => [ + "crypto/ml_dsa/ml_dsa_sign.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_encoders.o" => [ + "crypto/ml_dsa/ml_dsa_encoders.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_key.o" => [ + "crypto/ml_dsa/ml_dsa_key.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_key_compress.o" => [ + "crypto/ml_dsa/ml_dsa_key_compress.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_matrix.o" => [ + "crypto/ml_dsa/ml_dsa_matrix.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_ntt.o" => [ + "crypto/ml_dsa/ml_dsa_ntt.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_params.o" => [ + "crypto/ml_dsa/ml_dsa_params.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_sample.o" => [ + "crypto/ml_dsa/ml_dsa_sample.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_sign.o" => [ + "crypto/ml_dsa/ml_dsa_sign.c" + ], + "crypto/ml_kem/libcrypto-lib-ml_kem.o" => [ + "crypto/ml_kem/ml_kem.c" + ], + "crypto/ml_kem/libfips-lib-ml_kem.o" => [ + "crypto/ml_kem/ml_kem.c" + ], "crypto/modes/libcrypto-lib-cbc128.o" => [ "crypto/modes/cbc128.c" ], @@ -22623,6 +26204,9 @@ our %unified_info = ( "crypto/modes/libcrypto-lib-xts128.o" => [ "crypto/modes/xts128.c" ], + "crypto/modes/libcrypto-lib-xts128gb.o" => [ + "crypto/modes/xts128gb.c" + ], "crypto/modes/libfips-lib-cbc128.o" => [ "crypto/modes/cbc128.c" ], @@ -22647,6 +26231,9 @@ our %unified_info = ( "crypto/modes/libfips-lib-xts128.o" => [ "crypto/modes/xts128.c" ], + "crypto/modes/libfips-lib-xts128gb.o" => [ + "crypto/modes/xts128gb.c" + ], "crypto/objects/libcrypto-lib-o_names.o" => [ "crypto/objects/o_names.c" ], @@ -22692,6 +26279,9 @@ our %unified_info = ( "crypto/ocsp/libcrypto-lib-v3_ocsp.o" => [ "crypto/ocsp/v3_ocsp.c" ], + "crypto/packettest-bin-quic_vlint.o" => [ + "crypto/quic_vlint.c" + ], "crypto/pem/libcrypto-lib-pem_all.o" => [ "crypto/pem/pem_all.c" ], @@ -22851,6 +26441,9 @@ our %unified_info = ( "crypto/rand/libcrypto-lib-rand_pool.o" => [ "crypto/rand/rand_pool.c" ], + "crypto/rand/libcrypto-lib-rand_uniform.o" => [ + "crypto/rand/rand_uniform.c" + ], "crypto/rand/libcrypto-lib-randfile.o" => [ "crypto/rand/randfile.c" ], @@ -23064,6 +26657,66 @@ our %unified_info = ( "crypto/siphash/libcrypto-lib-siphash.o" => [ "crypto/siphash/siphash.c" ], + "crypto/slh_dsa/libcrypto-lib-slh_adrs.o" => [ + "crypto/slh_dsa/slh_adrs.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_dsa.o" => [ + "crypto/slh_dsa/slh_dsa.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_dsa_hash_ctx.o" => [ + "crypto/slh_dsa/slh_dsa_hash_ctx.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_dsa_key.o" => [ + "crypto/slh_dsa/slh_dsa_key.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_fors.o" => [ + "crypto/slh_dsa/slh_fors.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_hash.o" => [ + "crypto/slh_dsa/slh_hash.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_hypertree.o" => [ + "crypto/slh_dsa/slh_hypertree.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_params.o" => [ + "crypto/slh_dsa/slh_params.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_wots.o" => [ + "crypto/slh_dsa/slh_wots.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_xmss.o" => [ + "crypto/slh_dsa/slh_xmss.c" + ], + "crypto/slh_dsa/libfips-lib-slh_adrs.o" => [ + "crypto/slh_dsa/slh_adrs.c" + ], + "crypto/slh_dsa/libfips-lib-slh_dsa.o" => [ + "crypto/slh_dsa/slh_dsa.c" + ], + "crypto/slh_dsa/libfips-lib-slh_dsa_hash_ctx.o" => [ + "crypto/slh_dsa/slh_dsa_hash_ctx.c" + ], + "crypto/slh_dsa/libfips-lib-slh_dsa_key.o" => [ + "crypto/slh_dsa/slh_dsa_key.c" + ], + "crypto/slh_dsa/libfips-lib-slh_fors.o" => [ + "crypto/slh_dsa/slh_fors.c" + ], + "crypto/slh_dsa/libfips-lib-slh_hash.o" => [ + "crypto/slh_dsa/slh_hash.c" + ], + "crypto/slh_dsa/libfips-lib-slh_hypertree.o" => [ + "crypto/slh_dsa/slh_hypertree.c" + ], + "crypto/slh_dsa/libfips-lib-slh_params.o" => [ + "crypto/slh_dsa/slh_params.c" + ], + "crypto/slh_dsa/libfips-lib-slh_wots.o" => [ + "crypto/slh_dsa/slh_wots.c" + ], + "crypto/slh_dsa/libfips-lib-slh_xmss.o" => [ + "crypto/slh_dsa/slh_xmss.c" + ], "crypto/sm2/libcrypto-lib-sm2_crypt.o" => [ "crypto/sm2/sm2_crypt.c" ], @@ -23118,6 +26771,42 @@ our %unified_info = ( "crypto/store/libcrypto-lib-store_strings.o" => [ "crypto/store/store_strings.c" ], + "crypto/thread/arch/libcrypto-lib-thread_none.o" => [ + "crypto/thread/arch/thread_none.c" + ], + "crypto/thread/arch/libcrypto-lib-thread_posix.o" => [ + "crypto/thread/arch/thread_posix.c" + ], + "crypto/thread/arch/libcrypto-lib-thread_win.o" => [ + "crypto/thread/arch/thread_win.c" + ], + "crypto/thread/arch/libfips-lib-thread_none.o" => [ + "crypto/thread/arch/thread_none.c" + ], + "crypto/thread/arch/libfips-lib-thread_posix.o" => [ + "crypto/thread/arch/thread_posix.c" + ], + "crypto/thread/arch/libfips-lib-thread_win.o" => [ + "crypto/thread/arch/thread_win.c" + ], + "crypto/thread/libcrypto-lib-api.o" => [ + "crypto/thread/api.c" + ], + "crypto/thread/libcrypto-lib-arch.o" => [ + "crypto/thread/arch.c" + ], + "crypto/thread/libcrypto-lib-internal.o" => [ + "crypto/thread/internal.c" + ], + "crypto/thread/libfips-lib-api.o" => [ + "crypto/thread/api.c" + ], + "crypto/thread/libfips-lib-arch.o" => [ + "crypto/thread/arch.c" + ], + "crypto/thread/libfips-lib-internal.o" => [ + "crypto/thread/internal.c" + ], "crypto/ts/libcrypto-lib-ts_asn1.o" => [ "crypto/ts/ts_asn1.c" ], @@ -23202,6 +26891,9 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-pcy_tree.o" => [ "crypto/x509/pcy_tree.c" ], + "crypto/x509/libcrypto-lib-t_acert.o" => [ + "crypto/x509/t_acert.c" + ], "crypto/x509/libcrypto-lib-t_crl.o" => [ "crypto/x509/t_crl.c" ], @@ -23211,6 +26903,12 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-t_x509.o" => [ "crypto/x509/t_x509.c" ], + "crypto/x509/libcrypto-lib-v3_aaa.o" => [ + "crypto/x509/v3_aaa.c" + ], + "crypto/x509/libcrypto-lib-v3_ac_tgt.o" => [ + "crypto/x509/v3_ac_tgt.c" + ], "crypto/x509/libcrypto-lib-v3_addr.o" => [ "crypto/x509/v3_addr.c" ], @@ -23226,6 +26924,21 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_asid.o" => [ "crypto/x509/v3_asid.c" ], + "crypto/x509/libcrypto-lib-v3_attrdesc.o" => [ + "crypto/x509/v3_attrdesc.c" + ], + "crypto/x509/libcrypto-lib-v3_attrmap.o" => [ + "crypto/x509/v3_attrmap.c" + ], + "crypto/x509/libcrypto-lib-v3_audit_id.o" => [ + "crypto/x509/v3_audit_id.c" + ], + "crypto/x509/libcrypto-lib-v3_authattid.o" => [ + "crypto/x509/v3_authattid.c" + ], + "crypto/x509/libcrypto-lib-v3_battcons.o" => [ + "crypto/x509/v3_battcons.c" + ], "crypto/x509/libcrypto-lib-v3_bcons.o" => [ "crypto/x509/v3_bcons.c" ], @@ -23250,15 +26963,24 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_genn.o" => [ "crypto/x509/v3_genn.c" ], + "crypto/x509/libcrypto-lib-v3_group_ac.o" => [ + "crypto/x509/v3_group_ac.c" + ], "crypto/x509/libcrypto-lib-v3_ia5.o" => [ "crypto/x509/v3_ia5.c" ], + "crypto/x509/libcrypto-lib-v3_ind_iss.o" => [ + "crypto/x509/v3_ind_iss.c" + ], "crypto/x509/libcrypto-lib-v3_info.o" => [ "crypto/x509/v3_info.c" ], "crypto/x509/libcrypto-lib-v3_int.o" => [ "crypto/x509/v3_int.c" ], + "crypto/x509/libcrypto-lib-v3_iobo.o" => [ + "crypto/x509/v3_iobo.c" + ], "crypto/x509/libcrypto-lib-v3_ist.o" => [ "crypto/x509/v3_ist.c" ], @@ -23268,6 +26990,12 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_ncons.o" => [ "crypto/x509/v3_ncons.c" ], + "crypto/x509/libcrypto-lib-v3_no_ass.o" => [ + "crypto/x509/v3_no_ass.c" + ], + "crypto/x509/libcrypto-lib-v3_no_rev_avail.o" => [ + "crypto/x509/v3_no_rev_avail.c" + ], "crypto/x509/libcrypto-lib-v3_pci.o" => [ "crypto/x509/v3_pci.c" ], @@ -23289,18 +27017,36 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_purp.o" => [ "crypto/x509/v3_purp.c" ], + "crypto/x509/libcrypto-lib-v3_rolespec.o" => [ + "crypto/x509/v3_rolespec.c" + ], "crypto/x509/libcrypto-lib-v3_san.o" => [ "crypto/x509/v3_san.c" ], + "crypto/x509/libcrypto-lib-v3_sda.o" => [ + "crypto/x509/v3_sda.c" + ], + "crypto/x509/libcrypto-lib-v3_single_use.o" => [ + "crypto/x509/v3_single_use.c" + ], "crypto/x509/libcrypto-lib-v3_skid.o" => [ "crypto/x509/v3_skid.c" ], + "crypto/x509/libcrypto-lib-v3_soa_id.o" => [ + "crypto/x509/v3_soa_id.c" + ], "crypto/x509/libcrypto-lib-v3_sxnet.o" => [ "crypto/x509/v3_sxnet.c" ], + "crypto/x509/libcrypto-lib-v3_timespec.o" => [ + "crypto/x509/v3_timespec.c" + ], "crypto/x509/libcrypto-lib-v3_tlsf.o" => [ "crypto/x509/v3_tlsf.c" ], + "crypto/x509/libcrypto-lib-v3_usernotice.o" => [ + "crypto/x509/v3_usernotice.c" + ], "crypto/x509/libcrypto-lib-v3_utf8.o" => [ "crypto/x509/v3_utf8.c" ], @@ -23310,6 +27056,9 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3err.o" => [ "crypto/x509/v3err.c" ], + "crypto/x509/libcrypto-lib-x509_acert.o" => [ + "crypto/x509/x509_acert.c" + ], "crypto/x509/libcrypto-lib-x509_att.o" => [ "crypto/x509/x509_att.c" ], @@ -23361,6 +27110,9 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x509_vpm.o" => [ "crypto/x509/x509_vpm.c" ], + "crypto/x509/libcrypto-lib-x509aset.o" => [ + "crypto/x509/x509aset.c" + ], "crypto/x509/libcrypto-lib-x509cset.o" => [ "crypto/x509/x509cset.c" ], @@ -23388,6 +27140,9 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x_exten.o" => [ "crypto/x509/x_exten.c" ], + "crypto/x509/libcrypto-lib-x_ietfatt.o" => [ + "crypto/x509/x_ietfatt.c" + ], "crypto/x509/libcrypto-lib-x_name.o" => [ "crypto/x509/x_name.c" ], @@ -23412,6 +27167,16 @@ our %unified_info = ( "engines/libcrypto-lib-e_padlock.o" => [ "engines/e_padlock.c" ], + "fuzz/acert-test" => [ + "fuzz/acert-test-bin-acert.o", + "fuzz/acert-test-bin-test-corpus.o" + ], + "fuzz/acert-test-bin-acert.o" => [ + "fuzz/acert.c" + ], + "fuzz/acert-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], "fuzz/asn1-test" => [ "fuzz/asn1-test-bin-asn1.o", "fuzz/asn1-test-bin-fuzz_rand.o", @@ -23524,6 +27289,190 @@ our %unified_info = ( "fuzz/ct-test-bin-test-corpus.o" => [ "fuzz/test-corpus.c" ], + "fuzz/decoder-test" => [ + "fuzz/decoder-test-bin-decoder.o", + "fuzz/decoder-test-bin-fuzz_rand.o", + "fuzz/decoder-test-bin-test-corpus.o" + ], + "fuzz/decoder-test-bin-decoder.o" => [ + "fuzz/decoder.c" + ], + "fuzz/decoder-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/decoder-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/dtlsclient-test" => [ + "fuzz/dtlsclient-test-bin-dtlsclient.o", + "fuzz/dtlsclient-test-bin-fuzz_rand.o", + "fuzz/dtlsclient-test-bin-test-corpus.o" + ], + "fuzz/dtlsclient-test-bin-dtlsclient.o" => [ + "fuzz/dtlsclient.c" + ], + "fuzz/dtlsclient-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/dtlsclient-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/dtlsserver-test" => [ + "fuzz/dtlsserver-test-bin-dtlsserver.o", + "fuzz/dtlsserver-test-bin-fuzz_rand.o", + "fuzz/dtlsserver-test-bin-test-corpus.o" + ], + "fuzz/dtlsserver-test-bin-dtlsserver.o" => [ + "fuzz/dtlsserver.c" + ], + "fuzz/dtlsserver-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/dtlsserver-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/hashtable-test" => [ + "fuzz/hashtable-test-bin-fuzz_rand.o", + "fuzz/hashtable-test-bin-hashtable.o", + "fuzz/hashtable-test-bin-test-corpus.o" + ], + "fuzz/hashtable-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/hashtable-test-bin-hashtable.o" => [ + "fuzz/hashtable.c" + ], + "fuzz/hashtable-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/ml-dsa-test" => [ + "fuzz/ml-dsa-test-bin-fuzz_rand.o", + "fuzz/ml-dsa-test-bin-ml-dsa.o", + "fuzz/ml-dsa-test-bin-test-corpus.o" + ], + "fuzz/ml-dsa-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/ml-dsa-test-bin-ml-dsa.o" => [ + "fuzz/ml-dsa.c" + ], + "fuzz/ml-dsa-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/ml-kem-test" => [ + "fuzz/ml-kem-test-bin-fuzz_rand.o", + "fuzz/ml-kem-test-bin-ml-kem.o", + "fuzz/ml-kem-test-bin-test-corpus.o" + ], + "fuzz/ml-kem-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/ml-kem-test-bin-ml-kem.o" => [ + "fuzz/ml-kem.c" + ], + "fuzz/ml-kem-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/pem-test" => [ + "fuzz/pem-test-bin-pem.o", + "fuzz/pem-test-bin-test-corpus.o" + ], + "fuzz/pem-test-bin-pem.o" => [ + "fuzz/pem.c" + ], + "fuzz/pem-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/provider-test" => [ + "fuzz/provider-test-bin-provider.o", + "fuzz/provider-test-bin-test-corpus.o" + ], + "fuzz/provider-test-bin-provider.o" => [ + "fuzz/provider.c" + ], + "fuzz/provider-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/punycode-test" => [ + "fuzz/punycode-test-bin-punycode.o", + "fuzz/punycode-test-bin-test-corpus.o" + ], + "fuzz/punycode-test-bin-punycode.o" => [ + "fuzz/punycode.c" + ], + "fuzz/punycode-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-client-test" => [ + "fuzz/quic-client-test-bin-fuzz_rand.o", + "fuzz/quic-client-test-bin-quic-client.o", + "fuzz/quic-client-test-bin-test-corpus.o" + ], + "fuzz/quic-client-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-client-test-bin-quic-client.o" => [ + "fuzz/quic-client.c" + ], + "fuzz/quic-client-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-lcidm-test" => [ + "fuzz/quic-lcidm-test-bin-fuzz_rand.o", + "fuzz/quic-lcidm-test-bin-quic-lcidm.o", + "fuzz/quic-lcidm-test-bin-test-corpus.o" + ], + "fuzz/quic-lcidm-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-lcidm-test-bin-quic-lcidm.o" => [ + "fuzz/quic-lcidm.c" + ], + "fuzz/quic-lcidm-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-rcidm-test" => [ + "fuzz/quic-rcidm-test-bin-fuzz_rand.o", + "fuzz/quic-rcidm-test-bin-quic-rcidm.o", + "fuzz/quic-rcidm-test-bin-test-corpus.o" + ], + "fuzz/quic-rcidm-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-rcidm-test-bin-quic-rcidm.o" => [ + "fuzz/quic-rcidm.c" + ], + "fuzz/quic-rcidm-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-server-test" => [ + "fuzz/quic-server-test-bin-fuzz_rand.o", + "fuzz/quic-server-test-bin-quic-server.o", + "fuzz/quic-server-test-bin-test-corpus.o" + ], + "fuzz/quic-server-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-server-test-bin-quic-server.o" => [ + "fuzz/quic-server.c" + ], + "fuzz/quic-server-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-srtm-test" => [ + "fuzz/quic-srtm-test-bin-fuzz_rand.o", + "fuzz/quic-srtm-test-bin-quic-srtm.o", + "fuzz/quic-srtm-test-bin-test-corpus.o" + ], + "fuzz/quic-srtm-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-srtm-test-bin-quic-srtm.o" => [ + "fuzz/quic-srtm.c" + ], + "fuzz/quic-srtm-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], "fuzz/server-test" => [ "fuzz/server-test-bin-fuzz_rand.o", "fuzz/server-test-bin-server.o", @@ -23538,6 +27487,40 @@ our %unified_info = ( "fuzz/server-test-bin-test-corpus.o" => [ "fuzz/test-corpus.c" ], + "fuzz/slh-dsa-test" => [ + "fuzz/slh-dsa-test-bin-fuzz_rand.o", + "fuzz/slh-dsa-test-bin-slh-dsa.o", + "fuzz/slh-dsa-test-bin-test-corpus.o" + ], + "fuzz/slh-dsa-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/slh-dsa-test-bin-slh-dsa.o" => [ + "fuzz/slh-dsa.c" + ], + "fuzz/slh-dsa-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/smime-test" => [ + "fuzz/smime-test-bin-smime.o", + "fuzz/smime-test-bin-test-corpus.o" + ], + "fuzz/smime-test-bin-smime.o" => [ + "fuzz/smime.c" + ], + "fuzz/smime-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/v3name-test" => [ + "fuzz/v3name-test-bin-test-corpus.o", + "fuzz/v3name-test-bin-v3name.o" + ], + "fuzz/v3name-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/v3name-test-bin-v3name.o" => [ + "fuzz/v3name.c" + ], "fuzz/x509-test" => [ "fuzz/x509-test-bin-fuzz_rand.o", "fuzz/x509-test-bin-test-corpus.o", @@ -23657,6 +27640,7 @@ our %unified_info = ( "crypto/bio/libcrypto-lib-bss_conn.o", "crypto/bio/libcrypto-lib-bss_core.o", "crypto/bio/libcrypto-lib-bss_dgram.o", + "crypto/bio/libcrypto-lib-bss_dgram_pair.o", "crypto/bio/libcrypto-lib-bss_fd.o", "crypto/bio/libcrypto-lib-bss_file.o", "crypto/bio/libcrypto-lib-bss_log.o", @@ -23717,6 +27701,7 @@ our %unified_info = ( "crypto/cmp/libcrypto-lib-cmp_client.o", "crypto/cmp/libcrypto-lib-cmp_ctx.o", "crypto/cmp/libcrypto-lib-cmp_err.o", + "crypto/cmp/libcrypto-lib-cmp_genm.o", "crypto/cmp/libcrypto-lib-cmp_hdr.o", "crypto/cmp/libcrypto-lib-cmp_http.o", "crypto/cmp/libcrypto-lib-cmp_msg.o", @@ -23892,7 +27877,9 @@ our %unified_info = ( "crypto/err/libcrypto-lib-err_all.o", "crypto/err/libcrypto-lib-err_all_legacy.o", "crypto/err/libcrypto-lib-err_blocks.o", + "crypto/err/libcrypto-lib-err_mark.o", "crypto/err/libcrypto-lib-err_prn.o", + "crypto/err/libcrypto-lib-err_save.o", "crypto/ess/libcrypto-lib-ess_asn1.o", "crypto/ess/libcrypto-lib-ess_err.o", "crypto/ess/libcrypto-lib-ess_lib.o", @@ -23975,7 +27962,9 @@ our %unified_info = ( "crypto/evp/libcrypto-lib-pmeth_check.o", "crypto/evp/libcrypto-lib-pmeth_gn.o", "crypto/evp/libcrypto-lib-pmeth_lib.o", + "crypto/evp/libcrypto-lib-s_lib.o", "crypto/evp/libcrypto-lib-signature.o", + "crypto/evp/libcrypto-lib-skeymgmt_meth.o", "crypto/ffc/libcrypto-lib-ffc_backend.o", "crypto/ffc/libcrypto-lib-ffc_dh.o", "crypto/ffc/libcrypto-lib-ffc_key_generate.o", @@ -23983,7 +27972,11 @@ our %unified_info = ( "crypto/ffc/libcrypto-lib-ffc_params.o", "crypto/ffc/libcrypto-lib-ffc_params_generate.o", "crypto/ffc/libcrypto-lib-ffc_params_validate.o", + "crypto/hashtable/libcrypto-lib-hashfunc.o", + "crypto/hashtable/libcrypto-lib-hashtable.o", "crypto/hmac/libcrypto-lib-hmac.o", + "crypto/hpke/libcrypto-lib-hpke.o", + "crypto/hpke/libcrypto-lib-hpke_util.o", "crypto/http/libcrypto-lib-http_client.o", "crypto/http/libcrypto-lib-http_err.o", "crypto/http/libcrypto-lib-http_lib.o", @@ -23997,6 +27990,7 @@ our %unified_info = ( "crypto/lhash/libcrypto-lib-lhash.o", "crypto/libcrypto-lib-asn1_dsa.o", "crypto/libcrypto-lib-bsearch.o", + "crypto/libcrypto-lib-comp_methods.o", "crypto/libcrypto-lib-context.o", "crypto/libcrypto-lib-core_algorithm.o", "crypto/libcrypto-lib-core_fetch.o", @@ -24006,10 +28000,13 @@ our %unified_info = ( "crypto/libcrypto-lib-cryptlib.o", "crypto/libcrypto-lib-ctype.o", "crypto/libcrypto-lib-cversion.o", + "crypto/libcrypto-lib-defaults.o", "crypto/libcrypto-lib-der_writer.o", + "crypto/libcrypto-lib-deterministic_nonce.o", "crypto/libcrypto-lib-ebcdic.o", "crypto/libcrypto-lib-ex_data.o", "crypto/libcrypto-lib-getenv.o", + "crypto/libcrypto-lib-indicator_core.o", "crypto/libcrypto-lib-info.o", "crypto/libcrypto-lib-init.o", "crypto/libcrypto-lib-initthread.o", @@ -24027,6 +28024,7 @@ our %unified_info = ( "crypto/libcrypto-lib-params.o", "crypto/libcrypto-lib-params_dup.o", "crypto/libcrypto-lib-params_from_text.o", + "crypto/libcrypto-lib-params_idx.o", "crypto/libcrypto-lib-passphrase.o", "crypto/libcrypto-lib-provider.o", "crypto/libcrypto-lib-provider_child.o", @@ -24034,12 +28032,16 @@ our %unified_info = ( "crypto/libcrypto-lib-provider_core.o", "crypto/libcrypto-lib-provider_predefined.o", "crypto/libcrypto-lib-punycode.o", + "crypto/libcrypto-lib-quic_vlint.o", "crypto/libcrypto-lib-self_test_core.o", + "crypto/libcrypto-lib-sleep.o", "crypto/libcrypto-lib-sparse_array.o", + "crypto/libcrypto-lib-ssl_err.o", "crypto/libcrypto-lib-threads_lib.o", "crypto/libcrypto-lib-threads_none.o", "crypto/libcrypto-lib-threads_pthread.o", "crypto/libcrypto-lib-threads_win.o", + "crypto/libcrypto-lib-time.o", "crypto/libcrypto-lib-trace.o", "crypto/libcrypto-lib-uid.o", "crypto/md4/libcrypto-lib-md4_dgst.o", @@ -24049,6 +28051,15 @@ our %unified_info = ( "crypto/md5/libcrypto-lib-md5_sha1.o", "crypto/mdc2/libcrypto-lib-mdc2_one.o", "crypto/mdc2/libcrypto-lib-mdc2dgst.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_encoders.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key_compress.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_matrix.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_ntt.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_params.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sample.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sign.o", + "crypto/ml_kem/libcrypto-lib-ml_kem.o", "crypto/modes/libcrypto-lib-cbc128.o", "crypto/modes/libcrypto-lib-ccm128.o", "crypto/modes/libcrypto-lib-cfb128.o", @@ -24060,6 +28071,7 @@ our %unified_info = ( "crypto/modes/libcrypto-lib-siv128.o", "crypto/modes/libcrypto-lib-wrap128.o", "crypto/modes/libcrypto-lib-xts128.o", + "crypto/modes/libcrypto-lib-xts128gb.o", "crypto/objects/libcrypto-lib-o_names.o", "crypto/objects/libcrypto-lib-obj_dat.o", "crypto/objects/libcrypto-lib-obj_err.o", @@ -24123,6 +28135,7 @@ our %unified_info = ( "crypto/rand/libcrypto-lib-rand_lib.o", "crypto/rand/libcrypto-lib-rand_meth.o", "crypto/rand/libcrypto-lib-rand_pool.o", + "crypto/rand/libcrypto-lib-rand_uniform.o", "crypto/rand/libcrypto-lib-randfile.o", "crypto/rc2/libcrypto-lib-rc2_cbc.o", "crypto/rc2/libcrypto-lib-rc2_ecb.o", @@ -24171,6 +28184,16 @@ our %unified_info = ( "crypto/sha/libcrypto-lib-sha3.o", "crypto/sha/libcrypto-lib-sha512.o", "crypto/siphash/libcrypto-lib-siphash.o", + "crypto/slh_dsa/libcrypto-lib-slh_adrs.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa_hash_ctx.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa_key.o", + "crypto/slh_dsa/libcrypto-lib-slh_fors.o", + "crypto/slh_dsa/libcrypto-lib-slh_hash.o", + "crypto/slh_dsa/libcrypto-lib-slh_hypertree.o", + "crypto/slh_dsa/libcrypto-lib-slh_params.o", + "crypto/slh_dsa/libcrypto-lib-slh_wots.o", + "crypto/slh_dsa/libcrypto-lib-slh_xmss.o", "crypto/sm2/libcrypto-lib-sm2_crypt.o", "crypto/sm2/libcrypto-lib-sm2_err.o", "crypto/sm2/libcrypto-lib-sm2_key.o", @@ -24188,6 +28211,12 @@ our %unified_info = ( "crypto/store/libcrypto-lib-store_register.o", "crypto/store/libcrypto-lib-store_result.o", "crypto/store/libcrypto-lib-store_strings.o", + "crypto/thread/arch/libcrypto-lib-thread_none.o", + "crypto/thread/arch/libcrypto-lib-thread_posix.o", + "crypto/thread/arch/libcrypto-lib-thread_win.o", + "crypto/thread/libcrypto-lib-api.o", + "crypto/thread/libcrypto-lib-arch.o", + "crypto/thread/libcrypto-lib-internal.o", "crypto/ts/libcrypto-lib-ts_asn1.o", "crypto/ts/libcrypto-lib-ts_conf.o", "crypto/ts/libcrypto-lib-ts_err.o", @@ -24216,14 +28245,22 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-pcy_map.o", "crypto/x509/libcrypto-lib-pcy_node.o", "crypto/x509/libcrypto-lib-pcy_tree.o", + "crypto/x509/libcrypto-lib-t_acert.o", "crypto/x509/libcrypto-lib-t_crl.o", "crypto/x509/libcrypto-lib-t_req.o", "crypto/x509/libcrypto-lib-t_x509.o", + "crypto/x509/libcrypto-lib-v3_aaa.o", + "crypto/x509/libcrypto-lib-v3_ac_tgt.o", "crypto/x509/libcrypto-lib-v3_addr.o", "crypto/x509/libcrypto-lib-v3_admis.o", "crypto/x509/libcrypto-lib-v3_akeya.o", "crypto/x509/libcrypto-lib-v3_akid.o", "crypto/x509/libcrypto-lib-v3_asid.o", + "crypto/x509/libcrypto-lib-v3_attrdesc.o", + "crypto/x509/libcrypto-lib-v3_attrmap.o", + "crypto/x509/libcrypto-lib-v3_audit_id.o", + "crypto/x509/libcrypto-lib-v3_authattid.o", + "crypto/x509/libcrypto-lib-v3_battcons.o", "crypto/x509/libcrypto-lib-v3_bcons.o", "crypto/x509/libcrypto-lib-v3_bitst.o", "crypto/x509/libcrypto-lib-v3_conf.o", @@ -24232,12 +28269,17 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_enum.o", "crypto/x509/libcrypto-lib-v3_extku.o", "crypto/x509/libcrypto-lib-v3_genn.o", + "crypto/x509/libcrypto-lib-v3_group_ac.o", "crypto/x509/libcrypto-lib-v3_ia5.o", + "crypto/x509/libcrypto-lib-v3_ind_iss.o", "crypto/x509/libcrypto-lib-v3_info.o", "crypto/x509/libcrypto-lib-v3_int.o", + "crypto/x509/libcrypto-lib-v3_iobo.o", "crypto/x509/libcrypto-lib-v3_ist.o", "crypto/x509/libcrypto-lib-v3_lib.o", "crypto/x509/libcrypto-lib-v3_ncons.o", + "crypto/x509/libcrypto-lib-v3_no_ass.o", + "crypto/x509/libcrypto-lib-v3_no_rev_avail.o", "crypto/x509/libcrypto-lib-v3_pci.o", "crypto/x509/libcrypto-lib-v3_pcia.o", "crypto/x509/libcrypto-lib-v3_pcons.o", @@ -24245,13 +28287,20 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_pmaps.o", "crypto/x509/libcrypto-lib-v3_prn.o", "crypto/x509/libcrypto-lib-v3_purp.o", + "crypto/x509/libcrypto-lib-v3_rolespec.o", "crypto/x509/libcrypto-lib-v3_san.o", + "crypto/x509/libcrypto-lib-v3_sda.o", + "crypto/x509/libcrypto-lib-v3_single_use.o", "crypto/x509/libcrypto-lib-v3_skid.o", + "crypto/x509/libcrypto-lib-v3_soa_id.o", "crypto/x509/libcrypto-lib-v3_sxnet.o", + "crypto/x509/libcrypto-lib-v3_timespec.o", "crypto/x509/libcrypto-lib-v3_tlsf.o", + "crypto/x509/libcrypto-lib-v3_usernotice.o", "crypto/x509/libcrypto-lib-v3_utf8.o", "crypto/x509/libcrypto-lib-v3_utl.o", "crypto/x509/libcrypto-lib-v3err.o", + "crypto/x509/libcrypto-lib-x509_acert.o", "crypto/x509/libcrypto-lib-x509_att.o", "crypto/x509/libcrypto-lib-x509_cmp.o", "crypto/x509/libcrypto-lib-x509_d2.o", @@ -24269,6 +28318,7 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x509_v3.o", "crypto/x509/libcrypto-lib-x509_vfy.o", "crypto/x509/libcrypto-lib-x509_vpm.o", + "crypto/x509/libcrypto-lib-x509aset.o", "crypto/x509/libcrypto-lib-x509cset.o", "crypto/x509/libcrypto-lib-x509name.o", "crypto/x509/libcrypto-lib-x509rset.o", @@ -24278,6 +28328,7 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x_attrib.o", "crypto/x509/libcrypto-lib-x_crl.o", "crypto/x509/libcrypto-lib-x_exten.o", + "crypto/x509/libcrypto-lib-x_ietfatt.o", "crypto/x509/libcrypto-lib-x_name.o", "crypto/x509/libcrypto-lib-x_pubkey.o", "crypto/x509/libcrypto-lib-x_req.o", @@ -24299,14 +28350,15 @@ our %unified_info = ( "ssl/libssl-lib-d1_srtp.o", "ssl/libssl-lib-methods.o", "ssl/libssl-lib-pqueue.o", + "ssl/libssl-lib-priority_queue.o", "ssl/libssl-lib-s3_enc.o", "ssl/libssl-lib-s3_lib.o", "ssl/libssl-lib-s3_msg.o", "ssl/libssl-lib-ssl_asn1.o", "ssl/libssl-lib-ssl_cert.o", + "ssl/libssl-lib-ssl_cert_comp.o", "ssl/libssl-lib-ssl_ciph.o", "ssl/libssl-lib-ssl_conf.o", - "ssl/libssl-lib-ssl_err.o", "ssl/libssl-lib-ssl_err_legacy.o", "ssl/libssl-lib-ssl_init.o", "ssl/libssl-lib-ssl_lib.o", @@ -24323,12 +28375,60 @@ our %unified_info = ( "ssl/libssl-lib-tls13_enc.o", "ssl/libssl-lib-tls_depr.o", "ssl/libssl-lib-tls_srp.o", - "ssl/record/libssl-lib-dtls1_bitmap.o", + "ssl/quic/libssl-lib-cc_newreno.o", + "ssl/quic/libssl-lib-json_enc.o", + "ssl/quic/libssl-lib-qlog.o", + "ssl/quic/libssl-lib-qlog_event_helpers.o", + "ssl/quic/libssl-lib-quic_ackm.o", + "ssl/quic/libssl-lib-quic_cfq.o", + "ssl/quic/libssl-lib-quic_channel.o", + "ssl/quic/libssl-lib-quic_demux.o", + "ssl/quic/libssl-lib-quic_engine.o", + "ssl/quic/libssl-lib-quic_fc.o", + "ssl/quic/libssl-lib-quic_fifd.o", + "ssl/quic/libssl-lib-quic_impl.o", + "ssl/quic/libssl-lib-quic_lcidm.o", + "ssl/quic/libssl-lib-quic_method.o", + "ssl/quic/libssl-lib-quic_obj.o", + "ssl/quic/libssl-lib-quic_port.o", + "ssl/quic/libssl-lib-quic_rcidm.o", + "ssl/quic/libssl-lib-quic_reactor.o", + "ssl/quic/libssl-lib-quic_reactor_wait_ctx.o", + "ssl/quic/libssl-lib-quic_record_rx.o", + "ssl/quic/libssl-lib-quic_record_shared.o", + "ssl/quic/libssl-lib-quic_record_tx.o", + "ssl/quic/libssl-lib-quic_record_util.o", + "ssl/quic/libssl-lib-quic_rstream.o", + "ssl/quic/libssl-lib-quic_rx_depack.o", + "ssl/quic/libssl-lib-quic_sf_list.o", + "ssl/quic/libssl-lib-quic_srt_gen.o", + "ssl/quic/libssl-lib-quic_srtm.o", + "ssl/quic/libssl-lib-quic_sstream.o", + "ssl/quic/libssl-lib-quic_statm.o", + "ssl/quic/libssl-lib-quic_stream_map.o", + "ssl/quic/libssl-lib-quic_thread_assist.o", + "ssl/quic/libssl-lib-quic_tls.o", + "ssl/quic/libssl-lib-quic_tls_api.o", + "ssl/quic/libssl-lib-quic_trace.o", + "ssl/quic/libssl-lib-quic_tserver.o", + "ssl/quic/libssl-lib-quic_txp.o", + "ssl/quic/libssl-lib-quic_txpim.o", + "ssl/quic/libssl-lib-quic_types.o", + "ssl/quic/libssl-lib-quic_wire.o", + "ssl/quic/libssl-lib-quic_wire_pkt.o", + "ssl/quic/libssl-lib-uint_set.o", "ssl/record/libssl-lib-rec_layer_d1.o", "ssl/record/libssl-lib-rec_layer_s3.o", - "ssl/record/libssl-lib-ssl3_buffer.o", - "ssl/record/libssl-lib-ssl3_record.o", - "ssl/record/libssl-lib-ssl3_record_tls13.o", + "ssl/record/methods/libssl-lib-dtls_meth.o", + "ssl/record/methods/libssl-lib-ssl3_meth.o", + "ssl/record/methods/libssl-lib-tls13_meth.o", + "ssl/record/methods/libssl-lib-tls1_meth.o", + "ssl/record/methods/libssl-lib-tls_common.o", + "ssl/record/methods/libssl-lib-tls_multib.o", + "ssl/record/methods/libssl-lib-tlsany_meth.o", + "ssl/rio/libssl-lib-poll_builder.o", + "ssl/rio/libssl-lib-poll_immediate.o", + "ssl/rio/libssl-lib-rio_notifier.o", "ssl/statem/libssl-lib-extensions.o", "ssl/statem/libssl-lib-extensions_clnt.o", "ssl/statem/libssl-lib-extensions_cust.o", @@ -24366,12 +28466,24 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ecx_key.o" => [ "providers/common/der/der_ecx_key.c" ], + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o" => [ + "providers/common/der/der_ml_dsa_gen.c" + ], + "providers/common/der/libcommon-lib-der_ml_dsa_key.o" => [ + "providers/common/der/der_ml_dsa_key.c" + ], "providers/common/der/libcommon-lib-der_rsa_gen.o" => [ "providers/common/der/der_rsa_gen.c" ], "providers/common/der/libcommon-lib-der_rsa_key.o" => [ "providers/common/der/der_rsa_key.c" ], + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o" => [ + "providers/common/der/der_slh_dsa_gen.c" + ], + "providers/common/der/libcommon-lib-der_slh_dsa_key.o" => [ + "providers/common/der/der_slh_dsa_key.c" + ], "providers/common/der/libcommon-lib-der_wrap_gen.o" => [ "providers/common/der/der_wrap_gen.c" ], @@ -24438,6 +28550,9 @@ our %unified_info = ( "providers/common/libfips-lib-securitycheck_fips.o" => [ "providers/common/securitycheck_fips.c" ], + "providers/endecode_test-bin-legacyprov.o" => [ + "providers/legacyprov.c" + ], "providers/evp_extra_test-bin-legacyprov.o" => [ "providers/legacyprov.c" ], @@ -24448,6 +28563,9 @@ our %unified_info = ( "providers/fips/fips-dso-fips_entry.o" => [ "providers/fips/fips_entry.c" ], + "providers/fips/libfips-lib-fipsindicator.o" => [ + "providers/fips/fipsindicator.c" + ], "providers/fips/libfips-lib-fipsprov.o" => [ "providers/fips/fipsprov.c" ], @@ -24511,6 +28629,15 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_hw.o" => [ "providers/implementations/ciphers/cipher_aes_gcm_hw.c" ], + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv.o" => [ + "providers/implementations/ciphers/cipher_aes_gcm_siv.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_hw.o" => [ + "providers/implementations/ciphers/cipher_aes_gcm_siv_hw.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_polyval.o" => [ + "providers/implementations/ciphers/cipher_aes_gcm_siv_polyval.c" + ], "providers/implementations/ciphers/libdefault-lib-cipher_aes_hw.o" => [ "providers/implementations/ciphers/cipher_aes_hw.c" ], @@ -24583,9 +28710,27 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_sm4.o" => [ "providers/implementations/ciphers/cipher_sm4.c" ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm.o" => [ + "providers/implementations/ciphers/cipher_sm4_ccm.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm_hw.o" => [ + "providers/implementations/ciphers/cipher_sm4_ccm_hw.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm.o" => [ + "providers/implementations/ciphers/cipher_sm4_gcm.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm_hw.o" => [ + "providers/implementations/ciphers/cipher_sm4_gcm_hw.c" + ], "providers/implementations/ciphers/libdefault-lib-cipher_sm4_hw.o" => [ "providers/implementations/ciphers/cipher_sm4_hw.c" ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts.o" => [ + "providers/implementations/ciphers/cipher_sm4_xts.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts_hw.o" => [ + "providers/implementations/ciphers/cipher_sm4_xts_hw.c" + ], "providers/implementations/ciphers/libdefault-lib-cipher_tdes.o" => [ "providers/implementations/ciphers/cipher_tdes.c" ], @@ -24805,6 +28950,15 @@ our %unified_info = ( "providers/implementations/encode_decode/libdefault-lib-endecoder_common.o" => [ "providers/implementations/encode_decode/endecoder_common.c" ], + "providers/implementations/encode_decode/libdefault-lib-ml_common_codecs.o" => [ + "providers/implementations/encode_decode/ml_common_codecs.c" + ], + "providers/implementations/encode_decode/libdefault-lib-ml_dsa_codecs.o" => [ + "providers/implementations/encode_decode/ml_dsa_codecs.c" + ], + "providers/implementations/encode_decode/libdefault-lib-ml_kem_codecs.o" => [ + "providers/implementations/encode_decode/ml_kem_codecs.c" + ], "providers/implementations/exchange/libdefault-lib-dh_exch.o" => [ "providers/implementations/exchange/dh_exch.c" ], @@ -24829,9 +28983,15 @@ our %unified_info = ( "providers/implementations/exchange/libfips-lib-kdf_exch.o" => [ "providers/implementations/exchange/kdf_exch.c" ], + "providers/implementations/kdfs/libdefault-lib-argon2.o" => [ + "providers/implementations/kdfs/argon2.c" + ], "providers/implementations/kdfs/libdefault-lib-hkdf.o" => [ "providers/implementations/kdfs/hkdf.c" ], + "providers/implementations/kdfs/libdefault-lib-hmacdrbg_kdf.o" => [ + "providers/implementations/kdfs/hmacdrbg_kdf.c" + ], "providers/implementations/kdfs/libdefault-lib-kbkdf.o" => [ "providers/implementations/kdfs/kbkdf.c" ], @@ -24889,12 +29049,39 @@ our %unified_info = ( "providers/implementations/kdfs/liblegacy-lib-pbkdf1.o" => [ "providers/implementations/kdfs/pbkdf1.c" ], + "providers/implementations/kdfs/liblegacy-lib-pvkkdf.o" => [ + "providers/implementations/kdfs/pvkkdf.c" + ], + "providers/implementations/kem/libdefault-lib-ec_kem.o" => [ + "providers/implementations/kem/ec_kem.c" + ], + "providers/implementations/kem/libdefault-lib-ecx_kem.o" => [ + "providers/implementations/kem/ecx_kem.c" + ], + "providers/implementations/kem/libdefault-lib-kem_util.o" => [ + "providers/implementations/kem/kem_util.c" + ], + "providers/implementations/kem/libdefault-lib-ml_kem_kem.o" => [ + "providers/implementations/kem/ml_kem_kem.c" + ], + "providers/implementations/kem/libdefault-lib-mlx_kem.o" => [ + "providers/implementations/kem/mlx_kem.c" + ], "providers/implementations/kem/libdefault-lib-rsa_kem.o" => [ "providers/implementations/kem/rsa_kem.c" ], + "providers/implementations/kem/libfips-lib-ml_kem_kem.o" => [ + "providers/implementations/kem/ml_kem_kem.c" + ], + "providers/implementations/kem/libfips-lib-mlx_kem.o" => [ + "providers/implementations/kem/mlx_kem.c" + ], "providers/implementations/kem/libfips-lib-rsa_kem.o" => [ "providers/implementations/kem/rsa_kem.c" ], + "providers/implementations/kem/libtemplate-lib-template_kem.o" => [ + "providers/implementations/kem/template_kem.c" + ], "providers/implementations/keymgmt/libdefault-lib-dh_kmgmt.o" => [ "providers/implementations/keymgmt/dh_kmgmt.c" ], @@ -24913,9 +29100,21 @@ our %unified_info = ( "providers/implementations/keymgmt/libdefault-lib-mac_legacy_kmgmt.o" => [ "providers/implementations/keymgmt/mac_legacy_kmgmt.c" ], + "providers/implementations/keymgmt/libdefault-lib-ml_dsa_kmgmt.o" => [ + "providers/implementations/keymgmt/ml_dsa_kmgmt.c" + ], + "providers/implementations/keymgmt/libdefault-lib-ml_kem_kmgmt.o" => [ + "providers/implementations/keymgmt/ml_kem_kmgmt.c" + ], + "providers/implementations/keymgmt/libdefault-lib-mlx_kmgmt.o" => [ + "providers/implementations/keymgmt/mlx_kmgmt.c" + ], "providers/implementations/keymgmt/libdefault-lib-rsa_kmgmt.o" => [ "providers/implementations/keymgmt/rsa_kmgmt.c" ], + "providers/implementations/keymgmt/libdefault-lib-slh_dsa_kmgmt.o" => [ + "providers/implementations/keymgmt/slh_dsa_kmgmt.c" + ], "providers/implementations/keymgmt/libfips-lib-dh_kmgmt.o" => [ "providers/implementations/keymgmt/dh_kmgmt.c" ], @@ -24934,9 +29133,24 @@ our %unified_info = ( "providers/implementations/keymgmt/libfips-lib-mac_legacy_kmgmt.o" => [ "providers/implementations/keymgmt/mac_legacy_kmgmt.c" ], + "providers/implementations/keymgmt/libfips-lib-ml_dsa_kmgmt.o" => [ + "providers/implementations/keymgmt/ml_dsa_kmgmt.c" + ], + "providers/implementations/keymgmt/libfips-lib-ml_kem_kmgmt.o" => [ + "providers/implementations/keymgmt/ml_kem_kmgmt.c" + ], + "providers/implementations/keymgmt/libfips-lib-mlx_kmgmt.o" => [ + "providers/implementations/keymgmt/mlx_kmgmt.c" + ], "providers/implementations/keymgmt/libfips-lib-rsa_kmgmt.o" => [ "providers/implementations/keymgmt/rsa_kmgmt.c" ], + "providers/implementations/keymgmt/libfips-lib-slh_dsa_kmgmt.o" => [ + "providers/implementations/keymgmt/slh_dsa_kmgmt.c" + ], + "providers/implementations/keymgmt/libtemplate-lib-template_kmgmt.o" => [ + "providers/implementations/keymgmt/template_kmgmt.c" + ], "providers/implementations/macs/libdefault-lib-blake2b_mac.o" => [ "providers/implementations/macs/blake2b_mac.c" ], @@ -24973,9 +29187,6 @@ our %unified_info = ( "providers/implementations/macs/libfips-lib-kmac_prov.o" => [ "providers/implementations/macs/kmac_prov.c" ], - "providers/implementations/rands/libdefault-lib-crngt.o" => [ - "providers/implementations/rands/crngt.c" - ], "providers/implementations/rands/libdefault-lib-drbg.o" => [ "providers/implementations/rands/drbg.c" ], @@ -24991,12 +29202,12 @@ our %unified_info = ( "providers/implementations/rands/libdefault-lib-seed_src.o" => [ "providers/implementations/rands/seed_src.c" ], + "providers/implementations/rands/libdefault-lib-seed_src_jitter.o" => [ + "providers/implementations/rands/seed_src_jitter.c" + ], "providers/implementations/rands/libdefault-lib-test_rng.o" => [ "providers/implementations/rands/test_rng.c" ], - "providers/implementations/rands/libfips-lib-crngt.o" => [ - "providers/implementations/rands/crngt.c" - ], "providers/implementations/rands/libfips-lib-drbg.o" => [ "providers/implementations/rands/drbg.c" ], @@ -25009,6 +29220,9 @@ our %unified_info = ( "providers/implementations/rands/libfips-lib-drbg_hmac.o" => [ "providers/implementations/rands/drbg_hmac.c" ], + "providers/implementations/rands/libfips-lib-fips_crng_test.o" => [ + "providers/implementations/rands/fips_crng_test.c" + ], "providers/implementations/rands/libfips-lib-test_rng.o" => [ "providers/implementations/rands/test_rng.c" ], @@ -25036,9 +29250,15 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-mac_legacy_sig.o" => [ "providers/implementations/signature/mac_legacy_sig.c" ], + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o" => [ + "providers/implementations/signature/ml_dsa_sig.c" + ], "providers/implementations/signature/libdefault-lib-rsa_sig.o" => [ "providers/implementations/signature/rsa_sig.c" ], + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o" => [ + "providers/implementations/signature/slh_dsa_sig.c" + ], "providers/implementations/signature/libdefault-lib-sm2_sig.o" => [ "providers/implementations/signature/sm2_sig.c" ], @@ -25054,9 +29274,27 @@ our %unified_info = ( "providers/implementations/signature/libfips-lib-mac_legacy_sig.o" => [ "providers/implementations/signature/mac_legacy_sig.c" ], + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o" => [ + "providers/implementations/signature/ml_dsa_sig.c" + ], "providers/implementations/signature/libfips-lib-rsa_sig.o" => [ "providers/implementations/signature/rsa_sig.c" ], + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o" => [ + "providers/implementations/signature/slh_dsa_sig.c" + ], + "providers/implementations/skeymgmt/libdefault-lib-aes_skmgmt.o" => [ + "providers/implementations/skeymgmt/aes_skmgmt.c" + ], + "providers/implementations/skeymgmt/libdefault-lib-generic.o" => [ + "providers/implementations/skeymgmt/generic.c" + ], + "providers/implementations/skeymgmt/libfips-lib-aes_skmgmt.o" => [ + "providers/implementations/skeymgmt/aes_skmgmt.c" + ], + "providers/implementations/skeymgmt/libfips-lib-generic.o" => [ + "providers/implementations/skeymgmt/generic.c" + ], "providers/implementations/storemgmt/libdefault-lib-file_store.o" => [ "providers/implementations/storemgmt/file_store.c" ], @@ -25080,8 +29318,12 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ec_sig.o", "providers/common/der/libcommon-lib-der_ecx_gen.o", "providers/common/der/libcommon-lib-der_ecx_key.o", + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o", + "providers/common/der/libcommon-lib-der_ml_dsa_key.o", "providers/common/der/libcommon-lib-der_rsa_gen.o", "providers/common/der/libcommon-lib-der_rsa_key.o", + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o", + "providers/common/der/libcommon-lib-der_slh_dsa_key.o", "providers/common/der/libcommon-lib-der_wrap_gen.o", "providers/common/libcommon-lib-provider_ctx.o", "providers/common/libcommon-lib-provider_err.o", @@ -25093,7 +29335,7 @@ our %unified_info = ( "providers/implementations/ciphers/libcommon-lib-ciphercommon_gcm_hw.o", "providers/implementations/ciphers/libcommon-lib-ciphercommon_hw.o", "providers/implementations/digests/libcommon-lib-digestcommon.o", - "ssl/record/libcommon-lib-tls_pad.o" + "ssl/record/methods/libcommon-lib-tls_pad.o" ], "providers/libcrypto-lib-baseprov.o" => [ "providers/baseprov.c" @@ -25129,6 +29371,9 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_aes_ccm_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_polyval.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_ocb.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_ocb_hw.o", @@ -25153,7 +29398,13 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_cts.o", "providers/implementations/ciphers/libdefault-lib-cipher_null.o", "providers/implementations/ciphers/libdefault-lib-cipher_sm4.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_sm4_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes_common.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes_default.o", @@ -25182,11 +29433,16 @@ our %unified_info = ( "providers/implementations/encode_decode/libdefault-lib-encode_key2ms.o", "providers/implementations/encode_decode/libdefault-lib-encode_key2text.o", "providers/implementations/encode_decode/libdefault-lib-endecoder_common.o", + "providers/implementations/encode_decode/libdefault-lib-ml_common_codecs.o", + "providers/implementations/encode_decode/libdefault-lib-ml_dsa_codecs.o", + "providers/implementations/encode_decode/libdefault-lib-ml_kem_codecs.o", "providers/implementations/exchange/libdefault-lib-dh_exch.o", "providers/implementations/exchange/libdefault-lib-ecdh_exch.o", "providers/implementations/exchange/libdefault-lib-ecx_exch.o", "providers/implementations/exchange/libdefault-lib-kdf_exch.o", + "providers/implementations/kdfs/libdefault-lib-argon2.o", "providers/implementations/kdfs/libdefault-lib-hkdf.o", + "providers/implementations/kdfs/libdefault-lib-hmacdrbg_kdf.o", "providers/implementations/kdfs/libdefault-lib-kbkdf.o", "providers/implementations/kdfs/libdefault-lib-krb5kdf.o", "providers/implementations/kdfs/libdefault-lib-pbkdf2.o", @@ -25197,6 +29453,11 @@ our %unified_info = ( "providers/implementations/kdfs/libdefault-lib-sskdf.o", "providers/implementations/kdfs/libdefault-lib-tls1_prf.o", "providers/implementations/kdfs/libdefault-lib-x942kdf.o", + "providers/implementations/kem/libdefault-lib-ec_kem.o", + "providers/implementations/kem/libdefault-lib-ecx_kem.o", + "providers/implementations/kem/libdefault-lib-kem_util.o", + "providers/implementations/kem/libdefault-lib-ml_kem_kem.o", + "providers/implementations/kem/libdefault-lib-mlx_kem.o", "providers/implementations/kem/libdefault-lib-rsa_kem.o", "providers/implementations/keymgmt/libdefault-lib-dh_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-dsa_kmgmt.o", @@ -25204,7 +29465,11 @@ our %unified_info = ( "providers/implementations/keymgmt/libdefault-lib-ecx_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-kdf_legacy_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-mac_legacy_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-ml_dsa_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-ml_kem_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-mlx_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-rsa_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-slh_dsa_kmgmt.o", "providers/implementations/macs/libdefault-lib-blake2b_mac.o", "providers/implementations/macs/libdefault-lib-blake2s_mac.o", "providers/implementations/macs/libdefault-lib-cmac_prov.o", @@ -25213,12 +29478,12 @@ our %unified_info = ( "providers/implementations/macs/libdefault-lib-kmac_prov.o", "providers/implementations/macs/libdefault-lib-poly1305_prov.o", "providers/implementations/macs/libdefault-lib-siphash_prov.o", - "providers/implementations/rands/libdefault-lib-crngt.o", "providers/implementations/rands/libdefault-lib-drbg.o", "providers/implementations/rands/libdefault-lib-drbg_ctr.o", "providers/implementations/rands/libdefault-lib-drbg_hash.o", "providers/implementations/rands/libdefault-lib-drbg_hmac.o", "providers/implementations/rands/libdefault-lib-seed_src.o", + "providers/implementations/rands/libdefault-lib-seed_src_jitter.o", "providers/implementations/rands/libdefault-lib-test_rng.o", "providers/implementations/rands/seeding/libdefault-lib-rand_cpu_x86.o", "providers/implementations/rands/seeding/libdefault-lib-rand_tsc.o", @@ -25228,11 +29493,15 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-ecdsa_sig.o", "providers/implementations/signature/libdefault-lib-eddsa_sig.o", "providers/implementations/signature/libdefault-lib-mac_legacy_sig.o", + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o", "providers/implementations/signature/libdefault-lib-rsa_sig.o", + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o", "providers/implementations/signature/libdefault-lib-sm2_sig.o", + "providers/implementations/skeymgmt/libdefault-lib-aes_skmgmt.o", + "providers/implementations/skeymgmt/libdefault-lib-generic.o", "providers/implementations/storemgmt/libdefault-lib-file_store.o", "providers/implementations/storemgmt/libdefault-lib-file_store_any2obj.o", - "ssl/libdefault-lib-s3_cbc.o" + "ssl/record/methods/libdefault-lib-ssl3_cbc.o" ], "providers/libfips.a" => [ "crypto/aes/libfips-lib-aes_cbc.o", @@ -25334,14 +29603,15 @@ our %unified_info = ( "crypto/evp/libfips-lib-kem.o", "crypto/evp/libfips-lib-keymgmt_lib.o", "crypto/evp/libfips-lib-keymgmt_meth.o", - "crypto/evp/libfips-lib-m_sigver.o", "crypto/evp/libfips-lib-mac_lib.o", "crypto/evp/libfips-lib-mac_meth.o", "crypto/evp/libfips-lib-p_lib.o", "crypto/evp/libfips-lib-pmeth_check.o", "crypto/evp/libfips-lib-pmeth_gn.o", "crypto/evp/libfips-lib-pmeth_lib.o", + "crypto/evp/libfips-lib-s_lib.o", "crypto/evp/libfips-lib-signature.o", + "crypto/evp/libfips-lib-skeymgmt_meth.o", "crypto/ffc/libfips-lib-ffc_backend.o", "crypto/ffc/libfips-lib-ffc_dh.o", "crypto/ffc/libfips-lib-ffc_key_generate.o", @@ -25349,6 +29619,8 @@ our %unified_info = ( "crypto/ffc/libfips-lib-ffc_params.o", "crypto/ffc/libfips-lib-ffc_params_generate.o", "crypto/ffc/libfips-lib-ffc_params_validate.o", + "crypto/hashtable/libfips-lib-hashfunc.o", + "crypto/hashtable/libfips-lib-hashtable.o", "crypto/hmac/libfips-lib-hmac.o", "crypto/lhash/libfips-lib-lhash.o", "crypto/libfips-lib-asn1_dsa.o", @@ -25371,6 +29643,7 @@ our %unified_info = ( "crypto/libfips-lib-params.o", "crypto/libfips-lib-params_dup.o", "crypto/libfips-lib-params_from_text.o", + "crypto/libfips-lib-params_idx.o", "crypto/libfips-lib-provider_core.o", "crypto/libfips-lib-provider_predefined.o", "crypto/libfips-lib-self_test_core.o", @@ -25379,6 +29652,16 @@ our %unified_info = ( "crypto/libfips-lib-threads_none.o", "crypto/libfips-lib-threads_pthread.o", "crypto/libfips-lib-threads_win.o", + "crypto/libfips-lib-time.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_encoders.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_key.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_key_compress.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_matrix.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_ntt.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_params.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_sample.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_sign.o", + "crypto/ml_kem/libfips-lib-ml_kem.o", "crypto/modes/libfips-lib-cbc128.o", "crypto/modes/libfips-lib-ccm128.o", "crypto/modes/libfips-lib-cfb128.o", @@ -25387,6 +29670,7 @@ our %unified_info = ( "crypto/modes/libfips-lib-ofb128.o", "crypto/modes/libfips-lib-wrap128.o", "crypto/modes/libfips-lib-xts128.o", + "crypto/modes/libfips-lib-xts128gb.o", "crypto/property/libfips-lib-defn_cache.o", "crypto/property/libfips-lib-property.o", "crypto/property/libfips-lib-property_parse.o", @@ -25415,7 +29699,23 @@ our %unified_info = ( "crypto/sha/libfips-lib-sha256.o", "crypto/sha/libfips-lib-sha3.o", "crypto/sha/libfips-lib-sha512.o", + "crypto/slh_dsa/libfips-lib-slh_adrs.o", + "crypto/slh_dsa/libfips-lib-slh_dsa.o", + "crypto/slh_dsa/libfips-lib-slh_dsa_hash_ctx.o", + "crypto/slh_dsa/libfips-lib-slh_dsa_key.o", + "crypto/slh_dsa/libfips-lib-slh_fors.o", + "crypto/slh_dsa/libfips-lib-slh_hash.o", + "crypto/slh_dsa/libfips-lib-slh_hypertree.o", + "crypto/slh_dsa/libfips-lib-slh_params.o", + "crypto/slh_dsa/libfips-lib-slh_wots.o", + "crypto/slh_dsa/libfips-lib-slh_xmss.o", "crypto/stack/libfips-lib-stack.o", + "crypto/thread/arch/libfips-lib-thread_none.o", + "crypto/thread/arch/libfips-lib-thread_posix.o", + "crypto/thread/arch/libfips-lib-thread_win.o", + "crypto/thread/libfips-lib-api.o", + "crypto/thread/libfips-lib-arch.o", + "crypto/thread/libfips-lib-internal.o", "providers/common/der/libfips-lib-der_rsa_sig.o", "providers/common/libfips-lib-bio_prov.o", "providers/common/libfips-lib-capabilities.o", @@ -25424,6 +29724,7 @@ our %unified_info = ( "providers/common/libfips-lib-provider_util.o", "providers/common/libfips-lib-securitycheck.o", "providers/common/libfips-lib-securitycheck_fips.o", + "providers/fips/libfips-lib-fipsindicator.o", "providers/fips/libfips-lib-fipsprov.o", "providers/fips/libfips-lib-self_test.o", "providers/fips/libfips-lib-self_test_kats.o", @@ -25461,6 +29762,8 @@ our %unified_info = ( "providers/implementations/kdfs/libfips-lib-sskdf.o", "providers/implementations/kdfs/libfips-lib-tls1_prf.o", "providers/implementations/kdfs/libfips-lib-x942kdf.o", + "providers/implementations/kem/libfips-lib-ml_kem_kem.o", + "providers/implementations/kem/libfips-lib-mlx_kem.o", "providers/implementations/kem/libfips-lib-rsa_kem.o", "providers/implementations/keymgmt/libfips-lib-dh_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-dsa_kmgmt.o", @@ -25468,24 +29771,32 @@ our %unified_info = ( "providers/implementations/keymgmt/libfips-lib-ecx_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-kdf_legacy_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-mac_legacy_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-ml_dsa_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-ml_kem_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-mlx_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-rsa_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-slh_dsa_kmgmt.o", "providers/implementations/macs/libfips-lib-cmac_prov.o", "providers/implementations/macs/libfips-lib-gmac_prov.o", "providers/implementations/macs/libfips-lib-hmac_prov.o", "providers/implementations/macs/libfips-lib-kmac_prov.o", - "providers/implementations/rands/libfips-lib-crngt.o", "providers/implementations/rands/libfips-lib-drbg.o", "providers/implementations/rands/libfips-lib-drbg_ctr.o", "providers/implementations/rands/libfips-lib-drbg_hash.o", "providers/implementations/rands/libfips-lib-drbg_hmac.o", + "providers/implementations/rands/libfips-lib-fips_crng_test.o", "providers/implementations/rands/libfips-lib-test_rng.o", "providers/implementations/signature/libfips-lib-dsa_sig.o", "providers/implementations/signature/libfips-lib-ecdsa_sig.o", "providers/implementations/signature/libfips-lib-eddsa_sig.o", "providers/implementations/signature/libfips-lib-mac_legacy_sig.o", + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o", "providers/implementations/signature/libfips-lib-rsa_sig.o", + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o", + "providers/implementations/skeymgmt/libfips-lib-aes_skmgmt.o", + "providers/implementations/skeymgmt/libfips-lib-generic.o", "providers/libcommon.a", - "ssl/libfips-lib-s3_cbc.o" + "ssl/record/methods/libfips-lib-ssl3_cbc.o" ], "providers/liblegacy-lib-prov_running.o" => [ "providers/prov_running.c" @@ -25515,13 +29826,12 @@ our %unified_info = ( "providers/implementations/digests/liblegacy-lib-ripemd_prov.o", "providers/implementations/digests/liblegacy-lib-wp_prov.o", "providers/implementations/kdfs/liblegacy-lib-pbkdf1.o", + "providers/implementations/kdfs/liblegacy-lib-pvkkdf.o", "providers/liblegacy-lib-prov_running.o" ], - "ssl/libdefault-lib-s3_cbc.o" => [ - "ssl/s3_cbc.c" - ], - "ssl/libfips-lib-s3_cbc.o" => [ - "ssl/s3_cbc.c" + "providers/libtemplate.a" => [ + "providers/implementations/kem/libtemplate-lib-template_kem.o", + "providers/implementations/keymgmt/libtemplate-lib-template_kmgmt.o" ], "ssl/libssl-lib-bio_ssl.o" => [ "ssl/bio_ssl.c" @@ -25541,6 +29851,9 @@ our %unified_info = ( "ssl/libssl-lib-pqueue.o" => [ "ssl/pqueue.c" ], + "ssl/libssl-lib-priority_queue.o" => [ + "ssl/priority_queue.c" + ], "ssl/libssl-lib-s3_enc.o" => [ "ssl/s3_enc.c" ], @@ -25556,15 +29869,15 @@ our %unified_info = ( "ssl/libssl-lib-ssl_cert.o" => [ "ssl/ssl_cert.c" ], + "ssl/libssl-lib-ssl_cert_comp.o" => [ + "ssl/ssl_cert_comp.c" + ], "ssl/libssl-lib-ssl_ciph.o" => [ "ssl/ssl_ciph.c" ], "ssl/libssl-lib-ssl_conf.o" => [ "ssl/ssl_conf.c" ], - "ssl/libssl-lib-ssl_err.o" => [ - "ssl/ssl_err.c" - ], "ssl/libssl-lib-ssl_err_legacy.o" => [ "ssl/ssl_err_legacy.c" ], @@ -25613,11 +29926,131 @@ our %unified_info = ( "ssl/libssl-lib-tls_srp.o" => [ "ssl/tls_srp.c" ], - "ssl/record/libcommon-lib-tls_pad.o" => [ - "ssl/record/tls_pad.c" + "ssl/quic/libssl-lib-cc_newreno.o" => [ + "ssl/quic/cc_newreno.c" + ], + "ssl/quic/libssl-lib-json_enc.o" => [ + "ssl/quic/json_enc.c" + ], + "ssl/quic/libssl-lib-qlog.o" => [ + "ssl/quic/qlog.c" + ], + "ssl/quic/libssl-lib-qlog_event_helpers.o" => [ + "ssl/quic/qlog_event_helpers.c" + ], + "ssl/quic/libssl-lib-quic_ackm.o" => [ + "ssl/quic/quic_ackm.c" + ], + "ssl/quic/libssl-lib-quic_cfq.o" => [ + "ssl/quic/quic_cfq.c" + ], + "ssl/quic/libssl-lib-quic_channel.o" => [ + "ssl/quic/quic_channel.c" + ], + "ssl/quic/libssl-lib-quic_demux.o" => [ + "ssl/quic/quic_demux.c" + ], + "ssl/quic/libssl-lib-quic_engine.o" => [ + "ssl/quic/quic_engine.c" + ], + "ssl/quic/libssl-lib-quic_fc.o" => [ + "ssl/quic/quic_fc.c" + ], + "ssl/quic/libssl-lib-quic_fifd.o" => [ + "ssl/quic/quic_fifd.c" + ], + "ssl/quic/libssl-lib-quic_impl.o" => [ + "ssl/quic/quic_impl.c" + ], + "ssl/quic/libssl-lib-quic_lcidm.o" => [ + "ssl/quic/quic_lcidm.c" + ], + "ssl/quic/libssl-lib-quic_method.o" => [ + "ssl/quic/quic_method.c" + ], + "ssl/quic/libssl-lib-quic_obj.o" => [ + "ssl/quic/quic_obj.c" + ], + "ssl/quic/libssl-lib-quic_port.o" => [ + "ssl/quic/quic_port.c" + ], + "ssl/quic/libssl-lib-quic_rcidm.o" => [ + "ssl/quic/quic_rcidm.c" + ], + "ssl/quic/libssl-lib-quic_reactor.o" => [ + "ssl/quic/quic_reactor.c" + ], + "ssl/quic/libssl-lib-quic_reactor_wait_ctx.o" => [ + "ssl/quic/quic_reactor_wait_ctx.c" + ], + "ssl/quic/libssl-lib-quic_record_rx.o" => [ + "ssl/quic/quic_record_rx.c" + ], + "ssl/quic/libssl-lib-quic_record_shared.o" => [ + "ssl/quic/quic_record_shared.c" + ], + "ssl/quic/libssl-lib-quic_record_tx.o" => [ + "ssl/quic/quic_record_tx.c" + ], + "ssl/quic/libssl-lib-quic_record_util.o" => [ + "ssl/quic/quic_record_util.c" + ], + "ssl/quic/libssl-lib-quic_rstream.o" => [ + "ssl/quic/quic_rstream.c" ], - "ssl/record/libssl-lib-dtls1_bitmap.o" => [ - "ssl/record/dtls1_bitmap.c" + "ssl/quic/libssl-lib-quic_rx_depack.o" => [ + "ssl/quic/quic_rx_depack.c" + ], + "ssl/quic/libssl-lib-quic_sf_list.o" => [ + "ssl/quic/quic_sf_list.c" + ], + "ssl/quic/libssl-lib-quic_srt_gen.o" => [ + "ssl/quic/quic_srt_gen.c" + ], + "ssl/quic/libssl-lib-quic_srtm.o" => [ + "ssl/quic/quic_srtm.c" + ], + "ssl/quic/libssl-lib-quic_sstream.o" => [ + "ssl/quic/quic_sstream.c" + ], + "ssl/quic/libssl-lib-quic_statm.o" => [ + "ssl/quic/quic_statm.c" + ], + "ssl/quic/libssl-lib-quic_stream_map.o" => [ + "ssl/quic/quic_stream_map.c" + ], + "ssl/quic/libssl-lib-quic_thread_assist.o" => [ + "ssl/quic/quic_thread_assist.c" + ], + "ssl/quic/libssl-lib-quic_tls.o" => [ + "ssl/quic/quic_tls.c" + ], + "ssl/quic/libssl-lib-quic_tls_api.o" => [ + "ssl/quic/quic_tls_api.c" + ], + "ssl/quic/libssl-lib-quic_trace.o" => [ + "ssl/quic/quic_trace.c" + ], + "ssl/quic/libssl-lib-quic_tserver.o" => [ + "ssl/quic/quic_tserver.c" + ], + "ssl/quic/libssl-lib-quic_txp.o" => [ + "ssl/quic/quic_txp.c" + ], + "ssl/quic/libssl-lib-quic_txpim.o" => [ + "ssl/quic/quic_txpim.c" + ], + "ssl/quic/libssl-lib-quic_types.o" => [ + "ssl/quic/quic_types.c" + ], + "ssl/quic/libssl-lib-quic_wire.o" => [ + "ssl/quic/quic_wire.c" + ], + "ssl/quic/libssl-lib-quic_wire_pkt.o" => [ + "ssl/quic/quic_wire_pkt.c" + ], + "ssl/quic/libssl-lib-uint_set.o" => [ + "ssl/quic/uint_set.c" ], "ssl/record/libssl-lib-rec_layer_d1.o" => [ "ssl/record/rec_layer_d1.c" @@ -25625,14 +30058,44 @@ our %unified_info = ( "ssl/record/libssl-lib-rec_layer_s3.o" => [ "ssl/record/rec_layer_s3.c" ], - "ssl/record/libssl-lib-ssl3_buffer.o" => [ - "ssl/record/ssl3_buffer.c" + "ssl/record/methods/libcommon-lib-tls_pad.o" => [ + "ssl/record/methods/tls_pad.c" + ], + "ssl/record/methods/libdefault-lib-ssl3_cbc.o" => [ + "ssl/record/methods/ssl3_cbc.c" + ], + "ssl/record/methods/libfips-lib-ssl3_cbc.o" => [ + "ssl/record/methods/ssl3_cbc.c" + ], + "ssl/record/methods/libssl-lib-dtls_meth.o" => [ + "ssl/record/methods/dtls_meth.c" + ], + "ssl/record/methods/libssl-lib-ssl3_meth.o" => [ + "ssl/record/methods/ssl3_meth.c" + ], + "ssl/record/methods/libssl-lib-tls13_meth.o" => [ + "ssl/record/methods/tls13_meth.c" + ], + "ssl/record/methods/libssl-lib-tls1_meth.o" => [ + "ssl/record/methods/tls1_meth.c" + ], + "ssl/record/methods/libssl-lib-tls_common.o" => [ + "ssl/record/methods/tls_common.c" ], - "ssl/record/libssl-lib-ssl3_record.o" => [ - "ssl/record/ssl3_record.c" + "ssl/record/methods/libssl-lib-tls_multib.o" => [ + "ssl/record/methods/tls_multib.c" ], - "ssl/record/libssl-lib-ssl3_record_tls13.o" => [ - "ssl/record/ssl3_record_tls13.c" + "ssl/record/methods/libssl-lib-tlsany_meth.o" => [ + "ssl/record/methods/tlsany_meth.c" + ], + "ssl/rio/libssl-lib-poll_builder.o" => [ + "ssl/rio/poll_builder.c" + ], + "ssl/rio/libssl-lib-poll_immediate.o" => [ + "ssl/rio/poll_immediate.c" + ], + "ssl/rio/libssl-lib-rio_notifier.o" => [ + "ssl/rio/rio_notifier.c" ], "ssl/statem/libssl-lib-extensions.o" => [ "ssl/statem/extensions.c" @@ -25728,6 +30191,8 @@ our %unified_info = ( "test/asn1_string_table_test.c" ], "test/asn1_time_test" => [ + "crypto/asn1/asn1_time_test-bin-a_time.o", + "crypto/asn1_time_test-bin-ctype.o", "test/asn1_time_test-bin-asn1_time_test.o" ], "test/asn1_time_test-bin-asn1_time_test.o" => [ @@ -25758,6 +30223,18 @@ our %unified_info = ( "test/bftest-bin-bftest.o" => [ "test/bftest.c" ], + "test/bio_addr_test" => [ + "test/bio_addr_test-bin-bio_addr_test.o" + ], + "test/bio_addr_test-bin-bio_addr_test.o" => [ + "test/bio_addr_test.c" + ], + "test/bio_base64_test" => [ + "test/bio_base64_test-bin-bio_base64_test.o" + ], + "test/bio_base64_test-bin-bio_base64_test.o" => [ + "test/bio_base64_test.c" + ], "test/bio_callback_test" => [ "test/bio_callback_test-bin-bio_callback_test.o" ], @@ -25770,6 +30247,12 @@ our %unified_info = ( "test/bio_core_test-bin-bio_core_test.o" => [ "test/bio_core_test.c" ], + "test/bio_dgram_test" => [ + "test/bio_dgram_test-bin-bio_dgram_test.o" + ], + "test/bio_dgram_test-bin-bio_dgram_test.o" => [ + "test/bio_dgram_test.c" + ], "test/bio_enc_test" => [ "test/bio_enc_test-bin-bio_enc_test.o" ], @@ -25782,6 +30265,12 @@ our %unified_info = ( "test/bio_memleak_test-bin-bio_memleak_test.o" => [ "test/bio_memleak_test.c" ], + "test/bio_meth_test" => [ + "test/bio_meth_test-bin-bio_meth_test.o" + ], + "test/bio_meth_test-bin-bio_meth_test.o" => [ + "test/bio_meth_test.c" + ], "test/bio_prefix_text" => [ "test/bio_prefix_text-bin-bio_prefix_text.o" ], @@ -25800,6 +30289,12 @@ our %unified_info = ( "test/bio_readbuffer_test-bin-bio_readbuffer_test.o" => [ "test/bio_readbuffer_test.c" ], + "test/bio_tfo_test" => [ + "test/bio_tfo_test-bin-bio_tfo_test.o" + ], + "test/bio_tfo_test-bin-bio_tfo_test.o" => [ + "test/bio_tfo_test.c" + ], "test/bioprinttest" => [ "test/bioprinttest-bin-bioprinttest.o" ], @@ -25818,6 +30313,12 @@ our %unified_info = ( "test/bntest-bin-bntest.o" => [ "test/bntest.c" ], + "test/build_wincrypt_test" => [ + "test/build_wincrypt_test-bin-build_wincrypt_test.o" + ], + "test/build_wincrypt_test-bin-build_wincrypt_test.o" => [ + "test/build_wincrypt_test.c" + ], "test/buildtest_c_aes" => [ "test/buildtest_c_aes-bin-buildtest_aes.o" ], @@ -25848,6 +30349,12 @@ our %unified_info = ( "test/buildtest_c_buffer-bin-buildtest_buffer.o" => [ "test/buildtest_buffer.c" ], + "test/buildtest_c_byteorder" => [ + "test/buildtest_c_byteorder-bin-buildtest_byteorder.o" + ], + "test/buildtest_c_byteorder-bin-buildtest_byteorder.o" => [ + "test/buildtest_byteorder.c" + ], "test/buildtest_c_camellia" => [ "test/buildtest_c_camellia-bin-buildtest_camellia.o" ], @@ -25896,12 +30403,6 @@ our %unified_info = ( "test/buildtest_c_core_dispatch-bin-buildtest_core_dispatch.o" => [ "test/buildtest_core_dispatch.c" ], - "test/buildtest_c_core_names" => [ - "test/buildtest_c_core_names-bin-buildtest_core_names.o" - ], - "test/buildtest_c_core_names-bin-buildtest_core_names.o" => [ - "test/buildtest_core_names.c" - ], "test/buildtest_c_core_object" => [ "test/buildtest_c_core_object-bin-buildtest_core_object.o" ], @@ -25950,6 +30451,12 @@ our %unified_info = ( "test/buildtest_c_e_os2-bin-buildtest_e_os2.o" => [ "test/buildtest_e_os2.c" ], + "test/buildtest_c_e_ostime" => [ + "test/buildtest_c_e_ostime-bin-buildtest_e_ostime.o" + ], + "test/buildtest_c_e_ostime-bin-buildtest_e_ostime.o" => [ + "test/buildtest_e_ostime.c" + ], "test/buildtest_c_ebcdic" => [ "test/buildtest_c_ebcdic-bin-buildtest_ebcdic.o" ], @@ -26004,6 +30511,12 @@ our %unified_info = ( "test/buildtest_c_hmac-bin-buildtest_hmac.o" => [ "test/buildtest_hmac.c" ], + "test/buildtest_c_hpke" => [ + "test/buildtest_c_hpke-bin-buildtest_hpke.o" + ], + "test/buildtest_c_hpke-bin-buildtest_hpke.o" => [ + "test/buildtest_hpke.c" + ], "test/buildtest_c_http" => [ "test/buildtest_c_http-bin-buildtest_http.o" ], @@ -26016,6 +30529,12 @@ our %unified_info = ( "test/buildtest_c_idea-bin-buildtest_idea.o" => [ "test/buildtest_idea.c" ], + "test/buildtest_c_indicator" => [ + "test/buildtest_c_indicator-bin-buildtest_indicator.o" + ], + "test/buildtest_c_indicator-bin-buildtest_indicator.o" => [ + "test/buildtest_indicator.c" + ], "test/buildtest_c_kdf" => [ "test/buildtest_c_kdf-bin-buildtest_kdf.o" ], @@ -26046,6 +30565,12 @@ our %unified_info = ( "test/buildtest_c_mdc2-bin-buildtest_mdc2.o" => [ "test/buildtest_mdc2.c" ], + "test/buildtest_c_ml_kem" => [ + "test/buildtest_c_ml_kem-bin-buildtest_ml_kem.o" + ], + "test/buildtest_c_ml_kem-bin-buildtest_ml_kem.o" => [ + "test/buildtest_ml_kem.c" + ], "test/buildtest_c_modes" => [ "test/buildtest_c_modes-bin-buildtest_modes.o" ], @@ -26106,6 +30631,12 @@ our %unified_info = ( "test/buildtest_c_provider-bin-buildtest_provider.o" => [ "test/buildtest_provider.c" ], + "test/buildtest_c_quic" => [ + "test/buildtest_c_quic-bin-buildtest_quic.o" + ], + "test/buildtest_c_quic-bin-buildtest_quic.o" => [ + "test/buildtest_quic.c" + ], "test/buildtest_c_rand" => [ "test/buildtest_c_rand-bin-buildtest_rand.o" ], @@ -26190,6 +30721,12 @@ our %unified_info = ( "test/buildtest_c_symhacks-bin-buildtest_symhacks.o" => [ "test/buildtest_symhacks.c" ], + "test/buildtest_c_thread" => [ + "test/buildtest_c_thread-bin-buildtest_thread.o" + ], + "test/buildtest_c_thread-bin-buildtest_thread.o" => [ + "test/buildtest_thread.c" + ], "test/buildtest_c_tls1" => [ "test/buildtest_c_tls1-bin-buildtest_tls1.o" ], @@ -26220,6 +30757,29 @@ our %unified_info = ( "test/buildtest_c_whrlpool-bin-buildtest_whrlpool.o" => [ "test/buildtest_whrlpool.c" ], + "test/byteorder_test" => [ + "test/byteorder_test-bin-byteorder_test.o" + ], + "test/byteorder_test-bin-byteorder_test.o" => [ + "test/byteorder_test.c" + ], + "test/ca_internals_test" => [ + "apps/ca_internals_test-bin-ca.o", + "apps/lib/ca_internals_test-bin-app_libctx.o", + "apps/lib/ca_internals_test-bin-app_provider.o", + "apps/lib/ca_internals_test-bin-app_rand.o", + "apps/lib/ca_internals_test-bin-app_x509.o", + "apps/lib/ca_internals_test-bin-apps.o", + "apps/lib/ca_internals_test-bin-apps_ui.o", + "apps/lib/ca_internals_test-bin-engine.o", + "apps/lib/ca_internals_test-bin-fmt.o", + "crypto/asn1/ca_internals_test-bin-a_time.o", + "crypto/ca_internals_test-bin-ctype.o", + "test/ca_internals_test-bin-ca_internals_test.o" + ], + "test/ca_internals_test-bin-ca_internals_test.o" => [ + "test/ca_internals_test.c" + ], "test/casttest" => [ "test/casttest-bin-casttest.o" ], @@ -26398,6 +30958,12 @@ our %unified_info = ( "test/danetest-bin-danetest.o" => [ "test/danetest.c" ], + "test/decoder_propq_test" => [ + "test/decoder_propq_test-bin-decoder_propq_test.o" + ], + "test/decoder_propq_test-bin-decoder_propq_test.o" => [ + "test/decoder_propq_test.c" + ], "test/defltfips_test" => [ "test/defltfips_test-bin-defltfips_test.o" ], @@ -26479,6 +31045,7 @@ our %unified_info = ( "test/ectest.c" ], "test/endecode_test" => [ + "providers/endecode_test-bin-legacyprov.o", "test/endecode_test-bin-endecode_test.o", "test/helpers/endecode_test-bin-predefined_dhparams.o" ], @@ -26511,17 +31078,29 @@ our %unified_info = ( ], "test/evp_extra_test" => [ "providers/evp_extra_test-bin-legacyprov.o", - "test/evp_extra_test-bin-evp_extra_test.o" + "test/evp_extra_test-bin-evp_extra_test.o", + "test/evp_extra_test-bin-fake_pipelineprov.o", + "test/evp_extra_test-bin-fake_rsaprov.o" ], "test/evp_extra_test-bin-evp_extra_test.o" => [ "test/evp_extra_test.c" ], + "test/evp_extra_test-bin-fake_pipelineprov.o" => [ + "test/fake_pipelineprov.c" + ], + "test/evp_extra_test-bin-fake_rsaprov.o" => [ + "test/fake_rsaprov.c" + ], "test/evp_extra_test2" => [ - "test/evp_extra_test2-bin-evp_extra_test2.o" + "test/evp_extra_test2-bin-evp_extra_test2.o", + "test/evp_extra_test2-bin-tls-provider.o" ], "test/evp_extra_test2-bin-evp_extra_test2.o" => [ "test/evp_extra_test2.c" ], + "test/evp_extra_test2-bin-tls-provider.o" => [ + "test/tls-provider.c" + ], "test/evp_fetch_prov_test" => [ "test/evp_fetch_prov_test-bin-evp_fetch_prov_test.o" ], @@ -26546,6 +31125,12 @@ our %unified_info = ( "test/evp_pkey_ctx_new_from_name-bin-evp_pkey_ctx_new_from_name.o" => [ "test/evp_pkey_ctx_new_from_name.c" ], + "test/evp_pkey_dhkem_test" => [ + "test/evp_pkey_dhkem_test-bin-evp_pkey_dhkem_test.o" + ], + "test/evp_pkey_dhkem_test-bin-evp_pkey_dhkem_test.o" => [ + "test/evp_pkey_dhkem_test.c" + ], "test/evp_pkey_dparams_test" => [ "test/evp_pkey_dparams_test-bin-evp_pkey_dparams_test.o" ], @@ -26558,12 +31143,28 @@ our %unified_info = ( "test/evp_pkey_provided_test-bin-evp_pkey_provided_test.o" => [ "test/evp_pkey_provided_test.c" ], + "test/evp_skey_test" => [ + "test/evp_skey_test-bin-evp_skey_test.o", + "test/evp_skey_test-bin-fake_cipherprov.o" + ], + "test/evp_skey_test-bin-evp_skey_test.o" => [ + "test/evp_skey_test.c" + ], + "test/evp_skey_test-bin-fake_cipherprov.o" => [ + "test/fake_cipherprov.c" + ], "test/evp_test" => [ "test/evp_test-bin-evp_test.o" ], "test/evp_test-bin-evp_test.o" => [ "test/evp_test.c" ], + "test/evp_xof_test" => [ + "test/evp_xof_test-bin-evp_xof_test.o" + ], + "test/evp_xof_test-bin-evp_xof_test.o" => [ + "test/evp_xof_test.c" + ], "test/exdatatest" => [ "test/exdatatest-bin-exdatatest.o" ], @@ -26649,15 +31250,108 @@ our %unified_info = ( "test/helpers/fatalerrtest-bin-ssltestlib.o" => [ "test/helpers/ssltestlib.c" ], + "test/helpers/json_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/json_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/json_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/json_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/pkcs12_api_test-bin-pkcs12.o" => [ + "test/helpers/pkcs12.c" + ], "test/helpers/pkcs12_format_test-bin-pkcs12.o" => [ "test/helpers/pkcs12.c" ], + "test/helpers/quic_multistream_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quic_multistream_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quic_multistream_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quic_multistream_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quic_newcid_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quic_newcid_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quic_newcid_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quic_newcid_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quic_radix_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quic_radix_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quic_radix_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quic_radix_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quic_srt_gen_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quic_srt_gen_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quic_srt_gen_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quic_srt_gen_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quicapitest-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quicapitest-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quicapitest-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quicapitest-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quicfaultstest-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quicfaultstest-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quicfaultstest-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quicfaultstest-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], "test/helpers/recordlentest-bin-ssltestlib.o" => [ "test/helpers/ssltestlib.c" ], + "test/helpers/rpktest-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], "test/helpers/servername_test-bin-ssltestlib.o" => [ "test/helpers/ssltestlib.c" ], + "test/helpers/ssl_handshake_rtt_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], "test/helpers/ssl_old_test-bin-predefined_dhparams.o" => [ "test/helpers/predefined_dhparams.c" ], @@ -26685,6 +31379,9 @@ our %unified_info = ( "test/helpers/tls13ccstest-bin-ssltestlib.o" => [ "test/helpers/ssltestlib.c" ], + "test/helpers/tls13groupselection_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], "test/hexstr_test" => [ "test/hexstr_test-bin-hexstr_test.o" ], @@ -26697,6 +31394,12 @@ our %unified_info = ( "test/hmactest-bin-hmactest.o" => [ "test/hmactest.c" ], + "test/hpke_test" => [ + "test/hpke_test-bin-hpke_test.o" + ], + "test/hpke_test-bin-hpke_test.o" => [ + "test/hpke_test.c" + ], "test/http_test" => [ "test/http_test-bin-http_test.o" ], @@ -26715,6 +31418,16 @@ our %unified_info = ( "test/igetest-bin-igetest.o" => [ "test/igetest.c" ], + "test/json_test" => [ + "test/helpers/json_test-bin-noisydgrambio.o", + "test/helpers/json_test-bin-pktsplitbio.o", + "test/helpers/json_test-bin-quictestlib.o", + "test/helpers/json_test-bin-ssltestlib.o", + "test/json_test-bin-json_test.o" + ], + "test/json_test-bin-json_test.o" => [ + "test/json_test.c" + ], "test/keymgmt_internal_test" => [ "test/keymgmt_internal_test-bin-keymgmt_internal_test.o" ], @@ -26735,6 +31448,7 @@ our %unified_info = ( "test/testutil/libtestutil-lib-driver.o", "test/testutil/libtestutil-lib-fake_random.o", "test/testutil/libtestutil-lib-format_output.o", + "test/testutil/libtestutil-lib-helper.o", "test/testutil/libtestutil-lib-load.o", "test/testutil/libtestutil-lib-main.o", "test/testutil/libtestutil-lib-options.o", @@ -26747,6 +31461,12 @@ our %unified_info = ( "test/testutil/libtestutil-lib-tests.o", "test/testutil/libtestutil-lib-testutil_init.o" ], + "test/list_test" => [ + "test/list_test-bin-list_test.o" + ], + "test/list_test-bin-list_test.o" => [ + "test/list_test.c" + ], "test/localetest" => [ "test/localetest-bin-localetest.o" ], @@ -26765,12 +31485,36 @@ our %unified_info = ( "test/mdc2test-bin-mdc2test.o" => [ "test/mdc2test.c" ], + "test/membio_test" => [ + "test/membio_test-bin-membio_test.o" + ], + "test/membio_test-bin-membio_test.o" => [ + "test/membio_test.c" + ], "test/memleaktest" => [ "test/memleaktest-bin-memleaktest.o" ], "test/memleaktest-bin-memleaktest.o" => [ "test/memleaktest.c" ], + "test/ml_dsa_test" => [ + "test/ml_dsa_test-bin-ml_dsa_test.o" + ], + "test/ml_dsa_test-bin-ml_dsa_test.o" => [ + "test/ml_dsa_test.c" + ], + "test/ml_kem_evp_extra_test" => [ + "test/ml_kem_evp_extra_test-bin-ml_kem_evp_extra_test.o" + ], + "test/ml_kem_evp_extra_test-bin-ml_kem_evp_extra_test.o" => [ + "test/ml_kem_evp_extra_test.c" + ], + "test/ml_kem_internal_test" => [ + "test/ml_kem_internal_test-bin-ml_kem_internal_test.o" + ], + "test/ml_kem_internal_test-bin-ml_kem_internal_test.o" => [ + "test/ml_kem_internal_test.c" + ], "test/modes_internal_test" => [ "test/modes_internal_test-bin-modes_internal_test.o" ], @@ -26816,11 +31560,18 @@ our %unified_info = ( "test/p_test.c" ], "test/packettest" => [ + "crypto/packettest-bin-quic_vlint.o", "test/packettest-bin-packettest.o" ], "test/packettest-bin-packettest.o" => [ "test/packettest.c" ], + "test/pairwise_fail_test" => [ + "test/pairwise_fail_test-bin-pairwise_fail_test.o" + ], + "test/pairwise_fail_test-bin-pairwise_fail_test.o" => [ + "test/pairwise_fail_test.c" + ], "test/param_build_test" => [ "test/param_build_test-bin-param_build_test.o" ], @@ -26869,6 +31620,13 @@ our %unified_info = ( "test/pemtest-bin-pemtest.o" => [ "test/pemtest.c" ], + "test/pkcs12_api_test" => [ + "test/helpers/pkcs12_api_test-bin-pkcs12.o", + "test/pkcs12_api_test-bin-pkcs12_api_test.o" + ], + "test/pkcs12_api_test-bin-pkcs12_api_test.o" => [ + "test/pkcs12_api_test.c" + ], "test/pkcs12_format_test" => [ "test/helpers/pkcs12_format_test-bin-pkcs12.o", "test/pkcs12_format_test-bin-pkcs12_format_test.o" @@ -26900,6 +31658,12 @@ our %unified_info = ( "test/poly1305_internal_test-bin-poly1305_internal_test.o" => [ "test/poly1305_internal_test.c" ], + "test/priority_queue_test" => [ + "test/priority_queue_test-bin-priority_queue_test.o" + ], + "test/priority_queue_test-bin-priority_queue_test.o" => [ + "test/priority_queue_test.c" + ], "test/property_test" => [ "test/property_test-bin-property_test.o" ], @@ -26918,6 +31682,12 @@ our %unified_info = ( "test/provfetchtest-bin-provfetchtest.o" => [ "test/provfetchtest.c" ], + "test/provider_default_search_path_test" => [ + "test/provider_default_search_path_test-bin-provider_default_search_path_test.o" + ], + "test/provider_default_search_path_test-bin-provider_default_search_path_test.o" => [ + "test/provider_default_search_path_test.c" + ], "test/provider_fallback_test" => [ "test/provider_fallback_test-bin-provider_fallback_test.o" ], @@ -26966,6 +31736,174 @@ our %unified_info = ( "test/punycode_test-bin-punycode_test.o" => [ "test/punycode_test.c" ], + "test/quic_ackm_test" => [ + "test/quic_ackm_test-bin-cc_dummy.o", + "test/quic_ackm_test-bin-quic_ackm_test.o" + ], + "test/quic_ackm_test-bin-cc_dummy.o" => [ + "test/cc_dummy.c" + ], + "test/quic_ackm_test-bin-quic_ackm_test.o" => [ + "test/quic_ackm_test.c" + ], + "test/quic_cc_test" => [ + "test/quic_cc_test-bin-quic_cc_test.o" + ], + "test/quic_cc_test-bin-quic_cc_test.o" => [ + "test/quic_cc_test.c" + ], + "test/quic_cfq_test" => [ + "test/quic_cfq_test-bin-quic_cfq_test.o" + ], + "test/quic_cfq_test-bin-quic_cfq_test.o" => [ + "test/quic_cfq_test.c" + ], + "test/quic_client_test" => [ + "test/quic_client_test-bin-quic_client_test.o" + ], + "test/quic_client_test-bin-quic_client_test.o" => [ + "test/quic_client_test.c" + ], + "test/quic_fc_test" => [ + "test/quic_fc_test-bin-quic_fc_test.o" + ], + "test/quic_fc_test-bin-quic_fc_test.o" => [ + "test/quic_fc_test.c" + ], + "test/quic_fifd_test" => [ + "test/quic_fifd_test-bin-cc_dummy.o", + "test/quic_fifd_test-bin-quic_fifd_test.o" + ], + "test/quic_fifd_test-bin-cc_dummy.o" => [ + "test/cc_dummy.c" + ], + "test/quic_fifd_test-bin-quic_fifd_test.o" => [ + "test/quic_fifd_test.c" + ], + "test/quic_lcidm_test" => [ + "test/quic_lcidm_test-bin-quic_lcidm_test.o" + ], + "test/quic_lcidm_test-bin-quic_lcidm_test.o" => [ + "test/quic_lcidm_test.c" + ], + "test/quic_multistream_test" => [ + "test/helpers/quic_multistream_test-bin-noisydgrambio.o", + "test/helpers/quic_multistream_test-bin-pktsplitbio.o", + "test/helpers/quic_multistream_test-bin-quictestlib.o", + "test/helpers/quic_multistream_test-bin-ssltestlib.o", + "test/quic_multistream_test-bin-quic_multistream_test.o" + ], + "test/quic_multistream_test-bin-quic_multistream_test.o" => [ + "test/quic_multistream_test.c" + ], + "test/quic_newcid_test" => [ + "test/helpers/quic_newcid_test-bin-noisydgrambio.o", + "test/helpers/quic_newcid_test-bin-pktsplitbio.o", + "test/helpers/quic_newcid_test-bin-quictestlib.o", + "test/helpers/quic_newcid_test-bin-ssltestlib.o", + "test/quic_newcid_test-bin-quic_newcid_test.o" + ], + "test/quic_newcid_test-bin-quic_newcid_test.o" => [ + "test/quic_newcid_test.c" + ], + "test/quic_qlog_test" => [ + "test/quic_qlog_test-bin-quic_qlog_test.o" + ], + "test/quic_qlog_test-bin-quic_qlog_test.o" => [ + "test/quic_qlog_test.c" + ], + "test/quic_radix_test" => [ + "test/helpers/quic_radix_test-bin-noisydgrambio.o", + "test/helpers/quic_radix_test-bin-pktsplitbio.o", + "test/helpers/quic_radix_test-bin-quictestlib.o", + "test/helpers/quic_radix_test-bin-ssltestlib.o", + "test/radix/quic_radix_test-bin-quic_radix.o" + ], + "test/quic_rcidm_test" => [ + "test/quic_rcidm_test-bin-quic_rcidm_test.o" + ], + "test/quic_rcidm_test-bin-quic_rcidm_test.o" => [ + "test/quic_rcidm_test.c" + ], + "test/quic_record_test" => [ + "test/quic_record_test-bin-quic_record_test.o" + ], + "test/quic_record_test-bin-quic_record_test.o" => [ + "test/quic_record_test.c" + ], + "test/quic_srt_gen_test" => [ + "test/helpers/quic_srt_gen_test-bin-noisydgrambio.o", + "test/helpers/quic_srt_gen_test-bin-pktsplitbio.o", + "test/helpers/quic_srt_gen_test-bin-quictestlib.o", + "test/helpers/quic_srt_gen_test-bin-ssltestlib.o", + "test/quic_srt_gen_test-bin-quic_srt_gen_test.o" + ], + "test/quic_srt_gen_test-bin-quic_srt_gen_test.o" => [ + "test/quic_srt_gen_test.c" + ], + "test/quic_srtm_test" => [ + "test/quic_srtm_test-bin-quic_srtm_test.o" + ], + "test/quic_srtm_test-bin-quic_srtm_test.o" => [ + "test/quic_srtm_test.c" + ], + "test/quic_stream_test" => [ + "test/quic_stream_test-bin-quic_stream_test.o" + ], + "test/quic_stream_test-bin-quic_stream_test.o" => [ + "test/quic_stream_test.c" + ], + "test/quic_tserver_test" => [ + "test/quic_tserver_test-bin-quic_tserver_test.o" + ], + "test/quic_tserver_test-bin-quic_tserver_test.o" => [ + "test/quic_tserver_test.c" + ], + "test/quic_txp_test" => [ + "test/quic_txp_test-bin-cc_dummy.o", + "test/quic_txp_test-bin-quic_txp_test.o" + ], + "test/quic_txp_test-bin-cc_dummy.o" => [ + "test/cc_dummy.c" + ], + "test/quic_txp_test-bin-quic_txp_test.o" => [ + "test/quic_txp_test.c" + ], + "test/quic_txpim_test" => [ + "test/quic_txpim_test-bin-quic_txpim_test.o" + ], + "test/quic_txpim_test-bin-quic_txpim_test.o" => [ + "test/quic_txpim_test.c" + ], + "test/quic_wire_test" => [ + "test/quic_wire_test-bin-quic_wire_test.o" + ], + "test/quic_wire_test-bin-quic_wire_test.o" => [ + "test/quic_wire_test.c" + ], + "test/quicapitest" => [ + "test/helpers/quicapitest-bin-noisydgrambio.o", + "test/helpers/quicapitest-bin-pktsplitbio.o", + "test/helpers/quicapitest-bin-quictestlib.o", + "test/helpers/quicapitest-bin-ssltestlib.o", + "test/quicapitest-bin-quicapitest.o" + ], + "test/quicapitest-bin-quicapitest.o" => [ + "test/quicapitest.c" + ], + "test/quicfaultstest" => [ + "test/helpers/quicfaultstest-bin-noisydgrambio.o", + "test/helpers/quicfaultstest-bin-pktsplitbio.o", + "test/helpers/quicfaultstest-bin-quictestlib.o", + "test/helpers/quicfaultstest-bin-ssltestlib.o", + "test/quicfaultstest-bin-quicfaultstest.o" + ], + "test/quicfaultstest-bin-quicfaultstest.o" => [ + "test/quicfaultstest.c" + ], + "test/radix/quic_radix_test-bin-quic_radix.o" => [ + "test/radix/quic_radix.c" + ], "test/rand_status_test" => [ "test/rand_status_test-bin-rand_status_test.o" ], @@ -26996,11 +31934,11 @@ our %unified_info = ( "test/rc5test-bin-rc5test.o" => [ "test/rc5test.c" ], - "test/rdrand_sanitytest" => [ - "test/rdrand_sanitytest-bin-rdrand_sanitytest.o" + "test/rdcpu_sanitytest" => [ + "test/rdcpu_sanitytest-bin-rdcpu_sanitytest.o" ], - "test/rdrand_sanitytest-bin-rdrand_sanitytest.o" => [ - "test/rdrand_sanitytest.c" + "test/rdcpu_sanitytest-bin-rdcpu_sanitytest.o" => [ + "test/rdcpu_sanitytest.c" ], "test/recordlentest" => [ "test/helpers/recordlentest-bin-ssltestlib.o", @@ -27009,6 +31947,13 @@ our %unified_info = ( "test/recordlentest-bin-recordlentest.o" => [ "test/recordlentest.c" ], + "test/rpktest" => [ + "test/helpers/rpktest-bin-ssltestlib.o", + "test/rpktest-bin-rpktest.o" + ], + "test/rpktest-bin-rpktest.o" => [ + "test/rpktest.c" + ], "test/rsa_complex" => [ "test/rsa_complex-bin-rsa_complex.o" ], @@ -27033,6 +31978,18 @@ our %unified_info = ( "test/rsa_test-bin-rsa_test.o" => [ "test/rsa_test.c" ], + "test/rsa_x931_test" => [ + "test/rsa_x931_test-bin-rsa_x931_test.o" + ], + "test/rsa_x931_test-bin-rsa_x931_test.o" => [ + "test/rsa_x931_test.c" + ], + "test/safe_math_test" => [ + "test/safe_math_test-bin-safe_math_test.o" + ], + "test/safe_math_test-bin-safe_math_test.o" => [ + "test/safe_math_test.c" + ], "test/sanitytest" => [ "test/sanitytest-bin-sanitytest.o" ], @@ -27064,6 +32021,12 @@ our %unified_info = ( "test/siphash_internal_test-bin-siphash_internal_test.o" => [ "test/siphash_internal_test.c" ], + "test/slh_dsa_test" => [ + "test/slh_dsa_test-bin-slh_dsa_test.o" + ], + "test/slh_dsa_test-bin-slh_dsa_test.o" => [ + "test/slh_dsa_test.c" + ], "test/sm2_internal_test" => [ "test/sm2_internal_test-bin-sm2_internal_test.o" ], @@ -27106,6 +32069,13 @@ our %unified_info = ( "test/ssl_ctx_test-bin-ssl_ctx_test.o" => [ "test/ssl_ctx_test.c" ], + "test/ssl_handshake_rtt_test" => [ + "test/helpers/ssl_handshake_rtt_test-bin-ssltestlib.o", + "test/ssl_handshake_rtt_test-bin-ssl_handshake_rtt_test.o" + ], + "test/ssl_handshake_rtt_test-bin-ssl_handshake_rtt_test.o" => [ + "test/ssl_handshake_rtt_test.c" + ], "test/ssl_old_test" => [ "test/helpers/ssl_old_test-bin-predefined_dhparams.o", "test/ssl_old_test-bin-ssl_old_test.o" @@ -27164,6 +32134,12 @@ our %unified_info = ( "test/stack_test-bin-stack_test.o" => [ "test/stack_test.c" ], + "test/strtoultest" => [ + "test/strtoultest-bin-strtoultest.o" + ], + "test/strtoultest-bin-strtoultest.o" => [ + "test/strtoultest.c" + ], "test/sysdefaulttest" => [ "test/sysdefaulttest-bin-sysdefaulttest.o" ], @@ -27194,6 +32170,9 @@ our %unified_info = ( "test/testutil/libtestutil-lib-format_output.o" => [ "test/testutil/format_output.c" ], + "test/testutil/libtestutil-lib-helper.o" => [ + "test/testutil/helper.c" + ], "test/testutil/libtestutil-lib-load.o" => [ "test/testutil/load.c" ], @@ -27227,6 +32206,12 @@ our %unified_info = ( "test/testutil/libtestutil-lib-testutil_init.o" => [ "test/testutil/testutil_init.c" ], + "test/threadpool_test" => [ + "test/threadpool_test-bin-threadpool_test.o" + ], + "test/threadpool_test-bin-threadpool_test.o" => [ + "test/threadpool_test.c" + ], "test/threadstest" => [ "test/threadstest-bin-threadstest.o" ], @@ -27245,6 +32230,12 @@ our %unified_info = ( "test/time_offset_test-bin-time_offset_test.o" => [ "test/time_offset_test.c" ], + "test/time_test" => [ + "test/time_test-bin-time_test.o" + ], + "test/time_test-bin-time_test.o" => [ + "test/time_test.c" + ], "test/tls13ccstest" => [ "test/helpers/tls13ccstest-bin-ssltestlib.o", "test/tls13ccstest-bin-tls13ccstest.o" @@ -27258,6 +32249,13 @@ our %unified_info = ( "test/tls13encryptiontest-bin-tls13encryptiontest.o" => [ "test/tls13encryptiontest.c" ], + "test/tls13groupselection_test" => [ + "test/helpers/tls13groupselection_test-bin-ssltestlib.o", + "test/tls13groupselection_test-bin-tls13groupselection_test.o" + ], + "test/tls13groupselection_test-bin-tls13groupselection_test.o" => [ + "test/tls13groupselection_test.c" + ], "test/trace_api_test" => [ "test/trace_api_test-bin-trace_api_test.o" ], @@ -27313,6 +32311,12 @@ our %unified_info = ( "test/wpackettest-bin-wpackettest.o" => [ "test/wpackettest.c" ], + "test/x509_acert_test" => [ + "test/x509_acert_test-bin-x509_acert_test.o" + ], + "test/x509_acert_test-bin-x509_acert_test.o" => [ + "test/x509_acert_test.c" + ], "test/x509_check_cert_pkey_test" => [ "test/x509_check_cert_pkey_test-bin-x509_check_cert_pkey_test.o" ], @@ -27331,6 +32335,24 @@ our %unified_info = ( "test/x509_internal_test-bin-x509_internal_test.o" => [ "test/x509_internal_test.c" ], + "test/x509_load_cert_file_test" => [ + "test/x509_load_cert_file_test-bin-x509_load_cert_file_test.o" + ], + "test/x509_load_cert_file_test-bin-x509_load_cert_file_test.o" => [ + "test/x509_load_cert_file_test.c" + ], + "test/x509_req_test" => [ + "test/x509_req_test-bin-x509_req_test.o" + ], + "test/x509_req_test-bin-x509_req_test.o" => [ + "test/x509_req_test.c" + ], + "test/x509_test" => [ + "test/x509_test-bin-x509_test.o" + ], + "test/x509_test-bin-x509_test.o" => [ + "test/x509_test.c" + ], "test/x509_time_test" => [ "test/x509_time_test-bin-x509_time_test.o" ], @@ -27394,6 +32416,7 @@ my @makevars = ( "LDLIBS", "MT", "MTFLAGS", + "OBJCOPY", "PERL", "RANLIB", "RC", @@ -27410,6 +32433,12 @@ my %disabled_info = ( "asm" => { "macro" => "OPENSSL_NO_ASM" }, + "brotli" => { + "macro" => "OPENSSL_NO_BROTLI" + }, + "brotli-dynamic" => { + "macro" => "OPENSSL_NO_BROTLI_DYNAMIC" + }, "comp" => { "macro" => "OPENSSL_NO_COMP", "skipped" => [ @@ -27422,6 +32451,9 @@ my %disabled_info = ( "crypto-mdebug-backtrace" => { "macro" => "OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE" }, + "demos" => { + "macro" => "OPENSSL_NO_DEMOS" + }, "ec_nistp_64_gcc_128" => { "macro" => "OPENSSL_NO_EC_NISTP_64_GCC_128" }, @@ -27431,12 +32463,24 @@ my %disabled_info = ( "external-tests" => { "macro" => "OPENSSL_NO_EXTERNAL_TESTS" }, + "fips-jitter" => { + "macro" => "OPENSSL_NO_FIPS_JITTER" + }, "fuzz-afl" => { "macro" => "OPENSSL_NO_FUZZ_AFL" }, "fuzz-libfuzzer" => { "macro" => "OPENSSL_NO_FUZZ_LIBFUZZER" }, + "h3demo" => { + "macro" => "OPENSSL_NO_H3DEMO" + }, + "hqinterop" => { + "macro" => "OPENSSL_NO_HQINTEROP" + }, + "jitter" => { + "macro" => "OPENSSL_NO_JITTER" + }, "ktls" => { "macro" => "OPENSSL_NO_KTLS" }, @@ -27452,6 +32496,9 @@ my %disabled_info = ( "msan" => { "macro" => "OPENSSL_NO_MSAN" }, + "pie" => { + "macro" => "OPENSSL_NO_PIE" + }, "rc5" => { "macro" => "OPENSSL_NO_RC5", "skipped" => [ @@ -27467,6 +32514,12 @@ my %disabled_info = ( "ssl3-method" => { "macro" => "OPENSSL_NO_SSL3_METHOD" }, + "sslkeylog" => { + "macro" => "OPENSSL_NO_SSLKEYLOG" + }, + "tfo" => { + "macro" => "OPENSSL_NO_TFO" + }, "trace" => { "macro" => "OPENSSL_NO_TRACE" }, @@ -27481,6 +32534,21 @@ my %disabled_info = ( }, "weak-ssl-ciphers" => { "macro" => "OPENSSL_NO_WEAK_SSL_CIPHERS" + }, + "winstore" => { + "macro" => "OPENSSL_NO_WINSTORE" + }, + "zlib" => { + "macro" => "OPENSSL_NO_ZLIB" + }, + "zlib-dynamic" => { + "macro" => "OPENSSL_NO_ZLIB_DYNAMIC" + }, + "zstd" => { + "macro" => "OPENSSL_NO_ZSTD" + }, + "zstd-dynamic" => { + "macro" => "OPENSSL_NO_ZSTD_DYNAMIC" } ); my @user_crossable = qw( AR AS CC CXX CPP LD MT RANLIB RC ); @@ -27494,15 +32562,15 @@ unless (caller) { use File::Copy; use Pod::Usage; - use lib '/home/runner/work/node/node/deps/openssl/openssl/util/perl'; - use OpenSSL::fallback '/home/runner/work/node/node/deps/openssl/openssl/external/perl/MODULES.txt'; + use lib '/node/deps/openssl/openssl/util/perl'; + use OpenSSL::fallback '/node/deps/openssl/openssl/external/perl/MODULES.txt'; my $here = dirname($0); if (scalar @ARGV == 0) { # With no arguments, re-create the build file # We do that in two steps, where the first step emits perl - # snipets. + # snippets. my $buildfile = $config{build_file}; my $buildfile_template = "$buildfile.in"; @@ -27522,7 +32590,7 @@ unless (caller) { ); use lib '.'; - use lib '/home/runner/work/node/node/deps/openssl/openssl/Configurations'; + use lib '/node/deps/openssl/openssl/Configurations'; use gentemplate; open my $buildfile_template_fh, ">$buildfile_template" @@ -27539,8 +32607,8 @@ unless (caller) { my $prepend = <<'_____'; use File::Spec::Functions; -use lib '/home/runner/work/node/node/deps/openssl/openssl/util/perl'; -use lib '/home/runner/work/node/node/deps/openssl/openssl/Configurations'; +use lib '/node/deps/openssl/openssl/util/perl'; +use lib '/node/deps/openssl/openssl/Configurations'; use lib '.'; use platform; _____ diff --git a/deps/openssl/config/archs/BSD-x86/no-asm/crypto/buildinf.h b/deps/openssl/config/archs/BSD-x86/no-asm/crypto/buildinf.h index 9b11cde92c0301..de0eaa6301ea35 100644 --- a/deps/openssl/config/archs/BSD-x86/no-asm/crypto/buildinf.h +++ b/deps/openssl/config/archs/BSD-x86/no-asm/crypto/buildinf.h @@ -11,7 +11,7 @@ */ #define PLATFORM "platform: BSD-x86" -#define DATE "built on: Sun Jul 20 00:46:06 2025 UTC" +#define DATE "built on: Sun Jul 27 00:46:16 2025 UTC" /* * Generate compiler_flags as an array of individual characters. This is a diff --git a/deps/openssl/config/archs/BSD-x86/no-asm/crypto/params_idx.c b/deps/openssl/config/archs/BSD-x86/no-asm/crypto/params_idx.c new file mode 100644 index 00000000000000..9d76ffededc24c --- /dev/null +++ b/deps/openssl/config/archs/BSD-x86/no-asm/crypto/params_idx.c @@ -0,0 +1,3366 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from crypto/params_idx.c.in + * + * Copyright 2023 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + +#include "internal/e_os.h" +#include "internal/param_names.h" +#include + +/* Machine generated TRIE -- generated by util/perl/OpenSSL/paramnames.pm */ +int ossl_param_find_pidx(const char *s) +{ + switch(s[0]) { + default: + break; + case 'a': + switch(s[1]) { + default: + break; + case 'c': + if (strcmp("vp-info", s + 2) == 0) + return PIDX_KDF_PARAM_X942_ACVPINFO; + break; + case 'd': + switch(s[2]) { + default: + break; + case 'd': + if (strcmp("itional-random", s + 3) == 0) + return PIDX_SIGNATURE_PARAM_ADD_RANDOM; + break; + case '\0': + return PIDX_KDF_PARAM_ARGON2_AD; + } + break; + case 'e': + if (strcmp("ad", s + 2) == 0) + return PIDX_CIPHER_PARAM_AEAD; + break; + case 'l': + switch(s[2]) { + default: + break; + case 'g': + switch(s[3]) { + default: + break; + case '_': + if (strcmp("id_param", s + 4) == 0) + return PIDX_CIPHER_PARAM_ALGORITHM_ID_PARAMS_OLD; + break; + case 'i': + if (strcmp("d-absent", s + 4) == 0) + return PIDX_DIGEST_PARAM_ALGID_ABSENT; + break; + case 'o': + switch(s[4]) { + default: + break; + case 'r': + switch(s[5]) { + default: + break; + case 'i': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case 'h': + switch(s[8]) { + default: + break; + case 'm': + switch(s[9]) { + default: + break; + case '-': + switch(s[10]) { + default: + break; + case 'i': + switch(s[11]) { + default: + break; + case 'd': + switch(s[12]) { + default: + break; + case '-': + if (strcmp("params", s + 13) == 0) + return PIDX_ALG_PARAM_ALGORITHM_ID_PARAMS; + break; + case '\0': + return PIDX_ALG_PARAM_ALGORITHM_ID; + } + } + } + } + } + } + } + } + } + } + break; + case 'i': + if (strcmp("as", s + 3) == 0) + return PIDX_STORE_PARAM_ALIAS; + } + break; + case '\0': + return PIDX_PKEY_PARAM_EC_A; + } + break; + case 'b': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("sis-type", s + 2) == 0) + return PIDX_PKEY_PARAM_EC_CHAR2_TYPE; + break; + case 'i': + if (strcmp("ts", s + 2) == 0) + return PIDX_PKEY_PARAM_BITS; + break; + case 'l': + switch(s[2]) { + default: + break; + case 'o': + switch(s[3]) { + default: + break; + case 'c': + switch(s[4]) { + default: + break; + case 'k': + switch(s[5]) { + default: + break; + case '-': + if (strcmp("size", s + 6) == 0) + return PIDX_MAC_PARAM_BLOCK_SIZE; + break; + case '_': + if (strcmp("padding", s + 6) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_BLOCK_PADDING; + break; + case 's': + if (strcmp("ize", s + 6) == 0) + return PIDX_DIGEST_PARAM_BLOCK_SIZE; + } + } + } + } + break; + case 'u': + if (strcmp("ildinfo", s + 2) == 0) + return PIDX_PROV_PARAM_BUILDINFO; + break; + case '\0': + return PIDX_PKEY_PARAM_EC_B; + } + break; + case 'c': + switch(s[1]) { + default: + break; + case '-': + if (strcmp("rounds", s + 2) == 0) + return PIDX_MAC_PARAM_C_ROUNDS; + break; + case 'e': + if (strcmp("kalg", s + 2) == 0) + return PIDX_KDF_PARAM_CEK_ALG; + break; + case 'i': + if (strcmp("pher", s + 2) == 0) + return PIDX_ALG_PARAM_CIPHER; + break; + case 'o': + switch(s[2]) { + default: + break; + case 'f': + if (strcmp("actor", s + 3) == 0) + return PIDX_PKEY_PARAM_EC_COFACTOR; + break; + case 'n': + switch(s[3]) { + default: + break; + case 's': + if (strcmp("tant", s + 4) == 0) + return PIDX_KDF_PARAM_CONSTANT; + break; + case 't': + if (strcmp("ext-string", s + 4) == 0) + return PIDX_SIGNATURE_PARAM_CONTEXT_STRING; + } + } + break; + case 't': + switch(s[2]) { + default: + break; + case 's': + switch(s[3]) { + default: + break; + case '_': + if (strcmp("mode", s + 4) == 0) + return PIDX_CIPHER_PARAM_CTS_MODE; + break; + case '\0': + return PIDX_CIPHER_PARAM_CTS; + } + } + break; + case 'u': + switch(s[2]) { + default: + break; + case 's': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case 'o': + switch(s[5]) { + default: + break; + case 'm': + switch(s[6]) { + default: + break; + case '-': + if (strcmp("iv", s + 7) == 0) + return PIDX_CIPHER_PARAM_CUSTOM_IV; + break; + case '\0': + return PIDX_MAC_PARAM_CUSTOM; + } + } + } + } + } + } + break; + case 'd': + switch(s[1]) { + default: + break; + case '-': + if (strcmp("rounds", s + 2) == 0) + return PIDX_MAC_PARAM_D_ROUNDS; + break; + case 'a': + switch(s[2]) { + default: + break; + case 't': + switch(s[3]) { + default: + break; + case 'a': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 's': + if (strcmp("tructure", s + 6) == 0) + return PIDX_OBJECT_PARAM_DATA_STRUCTURE; + break; + case 't': + if (strcmp("ype", s + 6) == 0) + return PIDX_OBJECT_PARAM_DATA_TYPE; + } + break; + case '\0': + return PIDX_OBJECT_PARAM_DATA; + } + } + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'c': + switch(s[3]) { + default: + break; + case 'o': + if (strcmp("ded-from-explicit", s + 4) == 0) + return PIDX_PKEY_PARAM_EC_DECODED_FROM_EXPLICIT_PARAMS; + break; + case 'r': + if (strcmp("ypt-only", s + 4) == 0) + return PIDX_CIPHER_PARAM_DECRYPT_ONLY; + } + break; + case 'f': + if (strcmp("ault-digest", s + 3) == 0) + return PIDX_PKEY_PARAM_DEFAULT_DIGEST; + break; + case 's': + if (strcmp("c", s + 3) == 0) + return PIDX_OBJECT_PARAM_DESC; + break; + case 't': + if (strcmp("erministic", s + 3) == 0) + return PIDX_SIGNATURE_PARAM_DETERMINISTIC; + } + break; + case 'h': + if (strcmp("kem-ikm", s + 2) == 0) + return PIDX_PKEY_PARAM_DHKEM_IKM; + break; + case 'i': + switch(s[2]) { + default: + break; + case 'g': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case 's': + switch(s[5]) { + default: + break; + case 't': + switch(s[6]) { + default: + break; + case '-': + switch(s[7]) { + default: + break; + case 'c': + if (strcmp("heck", s + 8) == 0) + return PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK; + break; + case 'n': + if (strcmp("oinit", s + 8) == 0) + return PIDX_MAC_PARAM_DIGEST_NOINIT; + break; + case 'o': + if (strcmp("neshot", s + 8) == 0) + return PIDX_MAC_PARAM_DIGEST_ONESHOT; + break; + case 'p': + if (strcmp("rops", s + 8) == 0) + return PIDX_ASYM_CIPHER_PARAM_OAEP_DIGEST_PROPS; + break; + case 's': + if (strcmp("ize", s + 8) == 0) + return PIDX_PKEY_PARAM_DIGEST_SIZE; + } + break; + case '\0': + return PIDX_STORE_PARAM_DIGEST; + } + } + } + } + break; + case 's': + if (strcmp("tid", s + 3) == 0) + return PIDX_PKEY_PARAM_DIST_ID; + } + break; + case 'r': + if (strcmp("bg-no-trunc-md", s + 2) == 0) + return PIDX_PROV_PARAM_DRBG_TRUNC_DIGEST; + break; + case 's': + if (strcmp("a-sign-disabled", s + 2) == 0) + return PIDX_PROV_PARAM_DSA_SIGN_DISABLED; + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_D; + } + break; + case 'e': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("rly_clean", s + 2) == 0) + return PIDX_KDF_PARAM_EARLY_CLEAN; + break; + case 'c': + switch(s[2]) { + default: + break; + case 'd': + switch(s[3]) { + default: + break; + case 'h': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'c': + switch(s[6]) { + default: + break; + case 'o': + switch(s[7]) { + default: + break; + case 'f': + switch(s[8]) { + default: + break; + case 'a': + switch(s[9]) { + default: + break; + case 'c': + switch(s[10]) { + default: + break; + case 't': + switch(s[11]) { + default: + break; + case 'o': + switch(s[12]) { + default: + break; + case 'r': + switch(s[13]) { + default: + break; + case '-': + switch(s[14]) { + default: + break; + case 'c': + if (strcmp("heck", s + 15) == 0) + return PIDX_PROV_PARAM_ECDH_COFACTOR_CHECK; + break; + case 'm': + if (strcmp("ode", s + 15) == 0) + return PIDX_EXCHANGE_PARAM_EC_ECDH_COFACTOR_MODE; + } + } + } + } + } + } + } + } + } + } + } + } + } + break; + case 'm': + if (strcmp("s_check", s + 2) == 0) + return PIDX_KDF_PARAM_FIPS_EMS_CHECK; + break; + case 'n': + switch(s[2]) { + default: + break; + case 'c': + switch(s[3]) { + default: + break; + case 'o': + switch(s[4]) { + default: + break; + case 'd': + switch(s[5]) { + default: + break; + case 'e': + if (strcmp("d-pub-key", s + 6) == 0) + return PIDX_PKEY_PARAM_ENCODED_PUBLIC_KEY; + break; + case 'i': + if (strcmp("ng", s + 6) == 0) + return PIDX_PKEY_PARAM_EC_ENCODING; + } + } + break; + case 'r': + switch(s[4]) { + default: + break; + case 'y': + switch(s[5]) { + default: + break; + case 'p': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case '-': + switch(s[8]) { + default: + break; + case 'c': + if (strcmp("heck", s + 9) == 0) + return PIDX_CIPHER_PARAM_FIPS_ENCRYPT_CHECK; + break; + case 'l': + if (strcmp("evel", s + 9) == 0) + return PIDX_ENCODER_PARAM_ENCRYPT_LEVEL; + } + } + } + } + } + } + break; + case 'g': + if (strcmp("ine", s + 3) == 0) + return PIDX_ALG_PARAM_ENGINE; + break; + case 't': + switch(s[3]) { + default: + break; + case 'r': + switch(s[4]) { + default: + break; + case 'o': + switch(s[5]) { + default: + break; + case 'p': + switch(s[6]) { + default: + break; + case 'y': + switch(s[7]) { + default: + break; + case '_': + if (strcmp("required", s + 8) == 0) + return PIDX_DRBG_PARAM_ENTROPY_REQUIRED; + break; + case '\0': + return PIDX_KDF_PARAM_HMACDRBG_ENTROPY; + } + } + } + } + } + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_E; + break; + case 'x': + if (strcmp("pect", s + 2) == 0) + return PIDX_STORE_PARAM_EXPECT; + } + break; + case 'f': + switch(s[1]) { + default: + break; + case 'i': + switch(s[2]) { + default: + break; + case 'e': + if (strcmp("ld-type", s + 3) == 0) + return PIDX_PKEY_PARAM_EC_FIELD_TYPE; + break; + case 'n': + if (strcmp("gerprint", s + 3) == 0) + return PIDX_STORE_PARAM_FINGERPRINT; + break; + case 'p': + if (strcmp("s-indicator", s + 3) == 0) + return PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR; + } + } + break; + case 'g': + switch(s[1]) { + default: + break; + case 'e': + switch(s[2]) { + default: + break; + case 'n': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case 'r': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case 'e': + switch(s[8]) { + default: + break; + case '\0': + return PIDX_RAND_PARAM_GENERATE; + } + break; + case 'o': + if (strcmp("r", s + 8) == 0) + return PIDX_PKEY_PARAM_EC_GENERATOR; + } + } + } + } + } + } + break; + case 'i': + if (strcmp("ndex", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_GINDEX; + break; + case 'r': + switch(s[2]) { + default: + break; + case 'o': + switch(s[3]) { + default: + break; + case 'u': + switch(s[4]) { + default: + break; + case 'p': + switch(s[5]) { + default: + break; + case '-': + if (strcmp("check", s + 6) == 0) + return PIDX_PKEY_PARAM_EC_GROUP_CHECK_TYPE; + break; + case '\0': + return PIDX_PKEY_PARAM_GROUP_NAME; + } + } + } + } + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_G; + } + break; + case 'h': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("s-randkey", s + 2) == 0) + return PIDX_CIPHER_PARAM_HAS_RAND_KEY; + break; + case 'i': + if (strcmp("ndex", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_H; + break; + case 'k': + switch(s[2]) { + default: + break; + case 'd': + switch(s[3]) { + default: + break; + case 'f': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 6) == 0) + return PIDX_PROV_PARAM_HKDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 6) == 0) + return PIDX_PROV_PARAM_HKDF_KEY_CHECK; + } + } + } + } + break; + case 'm': + if (strcmp("ac-key-check", s + 2) == 0) + return PIDX_PROV_PARAM_HMAC_KEY_CHECK; + break; + case 's': + if (strcmp("_padding", s + 2) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_HS_PADDING; + } + break; + case 'i': + switch(s[1]) { + default: + break; + case 'd': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_KDF_PARAM_PKCS12_ID; + } + break; + case 'k': + if (strcmp("me", s + 2) == 0) + return PIDX_KEM_PARAM_IKME; + break; + case 'm': + if (strcmp("plicit-rejection", s + 2) == 0) + return PIDX_PKEY_PARAM_IMPLICIT_REJECTION; + break; + case 'n': + switch(s[2]) { + default: + break; + case 'c': + if (strcmp("lude-public", s + 3) == 0) + return PIDX_PKEY_PARAM_EC_INCLUDE_PUBLIC; + break; + case 'f': + if (strcmp("o", s + 3) == 0) + return PIDX_PASSPHRASE_PARAM_INFO; + break; + case 'p': + if (strcmp("ut-type", s + 3) == 0) + return PIDX_STORE_PARAM_INPUT_TYPE; + break; + case 's': + if (strcmp("tance", s + 3) == 0) + return PIDX_SIGNATURE_PARAM_INSTANCE; + } + break; + case 't': + switch(s[2]) { + default: + break; + case 'e': + switch(s[3]) { + default: + break; + case 'r': + switch(s[4]) { + default: + break; + case 'a': + if (strcmp("tion", s + 5) == 0) + return PIDX_GEN_PARAM_ITERATION; + break; + case '\0': + return PIDX_KDF_PARAM_ITER; + } + } + } + break; + case 'v': + switch(s[2]) { + default: + break; + case '-': + if (strcmp("generated", s + 3) == 0) + return PIDX_CIPHER_PARAM_AEAD_IV_GENERATED; + break; + case 'l': + if (strcmp("en", s + 3) == 0) + return PIDX_CIPHER_PARAM_IVLEN; + break; + case '\0': + return PIDX_MAC_PARAM_IV; + } + } + break; + case 'j': + switch(s[1]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_COFACTOR; + } + break; + case 'k': + switch(s[1]) { + default: + break; + case '1': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_PP_K1; + } + break; + case '2': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_PP_K2; + } + break; + case '3': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_PP_K3; + } + break; + case 'a': + if (strcmp("t", s + 2) == 0) + return PIDX_SIGNATURE_PARAM_KAT; + break; + case 'b': + if (strcmp("kdf-key-check", s + 2) == 0) + return PIDX_PROV_PARAM_KBKDF_KEY_CHECK; + break; + case 'd': + switch(s[2]) { + default: + break; + case 'f': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'd': + switch(s[5]) { + default: + break; + case 'i': + switch(s[6]) { + default: + break; + case 'g': + switch(s[7]) { + default: + break; + case 'e': + switch(s[8]) { + default: + break; + case 's': + switch(s[9]) { + default: + break; + case 't': + switch(s[10]) { + default: + break; + case '-': + if (strcmp("props", s + 11) == 0) + return PIDX_EXCHANGE_PARAM_KDF_DIGEST_PROPS; + break; + case '\0': + return PIDX_EXCHANGE_PARAM_KDF_DIGEST; + } + } + } + } + } + } + break; + case 'o': + if (strcmp("utlen", s + 5) == 0) + return PIDX_EXCHANGE_PARAM_KDF_OUTLEN; + break; + case 't': + if (strcmp("ype", s + 5) == 0) + return PIDX_EXCHANGE_PARAM_KDF_TYPE; + break; + case 'u': + if (strcmp("km", s + 5) == 0) + return PIDX_EXCHANGE_PARAM_KDF_UKM; + } + } + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'y': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'c': + if (strcmp("heck", s + 5) == 0) + return PIDX_PKEY_PARAM_FIPS_KEY_CHECK; + break; + case 'l': + if (strcmp("ength", s + 5) == 0) + return PIDX_SKEY_PARAM_KEY_LENGTH; + } + break; + case 'b': + if (strcmp("its", s + 4) == 0) + return PIDX_CIPHER_PARAM_RC2_KEYBITS; + break; + case 'l': + if (strcmp("en", s + 4) == 0) + return PIDX_CIPHER_PARAM_KEYLEN; + break; + case '\0': + return PIDX_MAC_PARAM_KEY; + } + } + break; + case 'm': + if (strcmp("ac-key-check", s + 2) == 0) + return PIDX_PROV_PARAM_KMAC_KEY_CHECK; + } + break; + case 'l': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'b': + if (strcmp("el", s + 3) == 0) + return PIDX_KDF_PARAM_LABEL; + break; + case 'n': + if (strcmp("es", s + 3) == 0) + return PIDX_KDF_PARAM_ARGON2_LANES; + } + } + break; + case 'm': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'c': + switch(s[3]) { + default: + break; + case 'k': + if (strcmp("ey", s + 4) == 0) + return PIDX_CIPHER_PARAM_AEAD_MAC_KEY; + break; + case 'l': + if (strcmp("en", s + 4) == 0) + return PIDX_KDF_PARAM_MAC_SIZE; + break; + case '\0': + return PIDX_ALG_PARAM_MAC; + } + break; + case 'n': + if (strcmp("datory-digest", s + 3) == 0) + return PIDX_PKEY_PARAM_MANDATORY_DIGEST; + break; + case 'x': + switch(s[3]) { + default: + break; + case '-': + if (strcmp("size", s + 4) == 0) + return PIDX_PKEY_PARAM_MAX_SIZE; + break; + case '_': + switch(s[4]) { + default: + break; + case 'a': + if (strcmp("dinlen", s + 5) == 0) + return PIDX_DRBG_PARAM_MAX_ADINLEN; + break; + case 'e': + switch(s[5]) { + default: + break; + case 'a': + if (strcmp("rly_data", s + 6) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_MAX_EARLY_DATA; + break; + case 'n': + if (strcmp("tropylen", s + 6) == 0) + return PIDX_DRBG_PARAM_MAX_ENTROPYLEN; + } + break; + case 'f': + if (strcmp("rag_len", s + 5) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_MAX_FRAG_LEN; + break; + case 'n': + if (strcmp("oncelen", s + 5) == 0) + return PIDX_DRBG_PARAM_MAX_NONCELEN; + break; + case 'p': + if (strcmp("erslen", s + 5) == 0) + return PIDX_DRBG_PARAM_MAX_PERSLEN; + break; + case 'r': + if (strcmp("equest", s + 5) == 0) + return PIDX_RAND_PARAM_MAX_REQUEST; + } + break; + case 'i': + if (strcmp("um_length", s + 4) == 0) + return PIDX_DRBG_PARAM_MAX_LENGTH; + break; + case 'm': + if (strcmp("em_bytes", s + 4) == 0) + return PIDX_KDF_PARAM_SCRYPT_MAXMEM; + } + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'm': + if (strcmp("cost", s + 3) == 0) + return PIDX_KDF_PARAM_ARGON2_MEMCOST; + break; + case 's': + if (strcmp("sage-encoding", s + 3) == 0) + return PIDX_SIGNATURE_PARAM_MESSAGE_ENCODING; + } + break; + case 'g': + switch(s[2]) { + default: + break; + case 'f': + switch(s[3]) { + default: + break; + case '1': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'd': + if (strcmp("igest", s + 6) == 0) + return PIDX_PKEY_PARAM_MGF1_DIGEST; + break; + case 'p': + if (strcmp("roperties", s + 6) == 0) + return PIDX_PKEY_PARAM_MGF1_PROPERTIES; + } + } + break; + case '\0': + return PIDX_PKEY_PARAM_MASKGENFUNC; + } + } + break; + case 'i': + switch(s[2]) { + default: + break; + case 'c': + if (strcmp("alg", s + 3) == 0) + return PIDX_DIGEST_PARAM_MICALG; + break; + case 'n': + switch(s[3]) { + default: + break; + case '_': + switch(s[4]) { + default: + break; + case 'e': + if (strcmp("ntropylen", s + 5) == 0) + return PIDX_DRBG_PARAM_MIN_ENTROPYLEN; + break; + case 'n': + if (strcmp("oncelen", s + 5) == 0) + return PIDX_DRBG_PARAM_MIN_NONCELEN; + } + break; + case 'i': + if (strcmp("um_length", s + 4) == 0) + return PIDX_DRBG_PARAM_MIN_LENGTH; + } + } + break; + case 'l': + switch(s[2]) { + default: + break; + case '-': + switch(s[3]) { + default: + break; + case 'd': + switch(s[4]) { + default: + break; + case 's': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case '.': + switch(s[7]) { + default: + break; + case 'i': + if (strcmp("nput_formats", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_DSA_INPUT_FORMATS; + break; + case 'o': + if (strcmp("utput_formats", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_DSA_OUTPUT_FORMATS; + break; + case 'p': + if (strcmp("refer_seed", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_DSA_PREFER_SEED; + break; + case 'r': + if (strcmp("etain_seed", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_DSA_RETAIN_SEED; + } + } + } + } + break; + case 'k': + switch(s[4]) { + default: + break; + case 'e': + switch(s[5]) { + default: + break; + case 'm': + switch(s[6]) { + default: + break; + case '.': + switch(s[7]) { + default: + break; + case 'i': + switch(s[8]) { + default: + break; + case 'm': + if (strcmp("port_pct_type", s + 9) == 0) + return PIDX_PKEY_PARAM_ML_KEM_IMPORT_PCT_TYPE; + break; + case 'n': + if (strcmp("put_formats", s + 9) == 0) + return PIDX_PKEY_PARAM_ML_KEM_INPUT_FORMATS; + } + break; + case 'o': + if (strcmp("utput_formats", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_KEM_OUTPUT_FORMATS; + break; + case 'p': + if (strcmp("refer_seed", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_KEM_PREFER_SEED; + break; + case 'r': + if (strcmp("etain_seed", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_KEM_RETAIN_SEED; + } + } + } + } + } + } + break; + case 'o': + switch(s[2]) { + default: + break; + case 'd': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case '\0': + return PIDX_LIBSSL_RECORD_LAYER_PARAM_MODE; + } + break; + case 'u': + if (strcmp("le-filename", s + 4) == 0) + return PIDX_PROV_PARAM_CORE_MODULE_FILENAME; + } + } + break; + case 'u': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_SIGNATURE_PARAM_MU; + } + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_M; + } + break; + case 'n': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("me", s + 2) == 0) + return PIDX_STORE_PARAM_ISSUER; + break; + case 'o': + switch(s[2]) { + default: + break; + case '-': + if (strcmp("short-mac", s + 3) == 0) + return PIDX_PROV_PARAM_NO_SHORT_MAC; + break; + case 'n': + switch(s[3]) { + default: + break; + case 'c': + switch(s[4]) { + default: + break; + case 'e': + switch(s[5]) { + default: + break; + case '-': + if (strcmp("type", s + 6) == 0) + return PIDX_SIGNATURE_PARAM_NONCE_TYPE; + break; + case '\0': + return PIDX_KDF_PARAM_HMACDRBG_NONCE; + } + } + } + } + break; + case 'u': + if (strcmp("m", s + 2) == 0) + return PIDX_CIPHER_PARAM_NUM; + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_N; + } + break; + case 'o': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("ep-label", s + 2) == 0) + return PIDX_ASYM_CIPHER_PARAM_OAEP_LABEL; + break; + case 'p': + switch(s[2]) { + default: + break; + case 'e': + switch(s[3]) { + default: + break; + case 'n': + if (strcmp("ssl-version", s + 4) == 0) + return PIDX_PROV_PARAM_CORE_VERSION; + break; + case 'r': + if (strcmp("ation", s + 4) == 0) + return PIDX_KEM_PARAM_OPERATION; + } + break; + case 't': + if (strcmp("ions", s + 3) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_OPTIONS; + } + break; + case 'r': + if (strcmp("der", s + 2) == 0) + return PIDX_PKEY_PARAM_EC_ORDER; + } + break; + case 'p': + switch(s[1]) { + default: + break; + case '1': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_P1; + } + break; + case '2': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_P2; + } + break; + case 'a': + switch(s[2]) { + default: + break; + case 'd': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'm': + if (strcmp("ode", s + 5) == 0) + return PIDX_PKEY_PARAM_PAD_MODE; + break; + case 't': + if (strcmp("ype", s + 5) == 0) + return PIDX_DIGEST_PARAM_PAD_TYPE; + } + break; + case 'd': + if (strcmp("ing", s + 4) == 0) + return PIDX_CIPHER_PARAM_PADDING; + break; + case '\0': + return PIDX_EXCHANGE_PARAM_PAD; + } + break; + case 'r': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case 'y': + switch(s[5]) { + default: + break; + case 'u': + if (strcmp("-info", s + 6) == 0) + return PIDX_KDF_PARAM_X942_PARTYUINFO; + break; + case 'v': + if (strcmp("-info", s + 6) == 0) + return PIDX_KDF_PARAM_X942_PARTYVINFO; + } + } + } + break; + case 's': + if (strcmp("s", s + 3) == 0) + return PIDX_KDF_PARAM_PASSWORD; + } + break; + case 'b': + switch(s[2]) { + default: + break; + case 'i': + if (strcmp("ts", s + 3) == 0) + return PIDX_PKEY_PARAM_FFC_PBITS; + break; + case 'k': + if (strcmp("df2-lower-bound-check", s + 3) == 0) + return PIDX_PROV_PARAM_PBKDF2_LOWER_BOUND_CHECK; + } + break; + case 'c': + if (strcmp("ounter", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_PCOUNTER; + break; + case 'i': + if (strcmp("peline-tag", s + 2) == 0) + return PIDX_CIPHER_PARAM_PIPELINE_AEAD_TAG; + break; + case 'k': + if (strcmp("cs5", s + 2) == 0) + return PIDX_KDF_PARAM_PKCS5; + break; + case 'o': + switch(s[2]) { + default: + break; + case 'i': + if (strcmp("nt-format", s + 3) == 0) + return PIDX_PKEY_PARAM_EC_POINT_CONVERSION_FORMAT; + break; + case 't': + if (strcmp("ential", s + 3) == 0) + return PIDX_GEN_PARAM_POTENTIAL; + } + break; + case 'r': + switch(s[2]) { + default: + break; + case 'e': + switch(s[3]) { + default: + break; + case 'd': + if (strcmp("iction_resistance", s + 4) == 0) + return PIDX_DRBG_PARAM_PREDICTION_RESISTANCE; + break; + case 'f': + if (strcmp("ix", s + 4) == 0) + return PIDX_KDF_PARAM_PREFIX; + } + break; + case 'i': + switch(s[3]) { + default: + break; + case 'm': + if (strcmp("es", s + 4) == 0) + return PIDX_PKEY_PARAM_RSA_PRIMES; + break; + case 'v': + switch(s[4]) { + default: + break; + case '_': + if (strcmp("len", s + 5) == 0) + return PIDX_PKEY_PARAM_DH_PRIV_LEN; + break; + case '\0': + return PIDX_PKEY_PARAM_PRIV_KEY; + } + } + break; + case 'o': + switch(s[3]) { + default: + break; + case 'p': + if (strcmp("erties", s + 4) == 0) + return PIDX_STORE_PARAM_PROPERTIES; + break; + case 'v': + if (strcmp("ider-name", s + 4) == 0) + return PIDX_PROV_PARAM_CORE_PROV_NAME; + } + } + break; + case 'u': + if (strcmp("b", s + 2) == 0) + return PIDX_PKEY_PARAM_PUB_KEY; + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_P; + } + break; + case 'q': + switch(s[1]) { + default: + break; + case '1': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_Q1; + } + break; + case '2': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_Q2; + } + break; + case 'b': + if (strcmp("its", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_QBITS; + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_Q; + break; + case 'x': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_PUB_X; + } + break; + case 'y': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_PUB_Y; + } + } + break; + case 'r': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'n': + switch(s[3]) { + default: + break; + case 'd': + switch(s[4]) { + default: + break; + case 'k': + if (strcmp("ey", s + 5) == 0) + return PIDX_CIPHER_PARAM_RANDOM_KEY; + break; + case 'o': + if (strcmp("m_data", s + 5) == 0) + return PIDX_DRBG_PARAM_RANDOM_DATA; + } + } + break; + case 'w': + if (strcmp("-bytes", s + 3) == 0) + return PIDX_SKEY_PARAM_RAW_BYTES; + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'a': + switch(s[3]) { + default: + break; + case 'd': + switch(s[4]) { + default: + break; + case '_': + switch(s[5]) { + default: + break; + case 'a': + if (strcmp("head", s + 6) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_READ_AHEAD; + break; + case 'b': + if (strcmp("uffer_len", s + 6) == 0) + return PIDX_LIBSSL_RECORD_LAYER_READ_BUFFER_LEN; + } + } + } + break; + case 'f': + if (strcmp("erence", s + 3) == 0) + return PIDX_OBJECT_PARAM_REFERENCE; + break; + case 's': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case 'e': + switch(s[5]) { + default: + break; + case 'd': + switch(s[6]) { + default: + break; + case '_': + switch(s[7]) { + default: + break; + case 'c': + if (strcmp("ounter", s + 8) == 0) + return PIDX_DRBG_PARAM_RESEED_COUNTER; + break; + case 'r': + if (strcmp("equests", s + 8) == 0) + return PIDX_DRBG_PARAM_RESEED_REQUESTS; + break; + case 't': + switch(s[8]) { + default: + break; + case 'i': + switch(s[9]) { + default: + break; + case 'm': + switch(s[10]) { + default: + break; + case 'e': + switch(s[11]) { + default: + break; + case '_': + if (strcmp("interval", s + 12) == 0) + return PIDX_DRBG_PARAM_RESEED_TIME_INTERVAL; + break; + case '\0': + return PIDX_DRBG_PARAM_RESEED_TIME; + } + } + } + } + } + } + } + } + } + } + break; + case 'o': + if (strcmp("unds", s + 2) == 0) + return PIDX_CIPHER_PARAM_ROUNDS; + break; + case 's': + switch(s[2]) { + default: + break; + case 'a': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'c': + switch(s[5]) { + default: + break; + case 'o': + switch(s[6]) { + default: + break; + case 'e': + switch(s[7]) { + default: + break; + case 'f': + switch(s[8]) { + default: + break; + case 'f': + switch(s[9]) { + default: + break; + case 'i': + switch(s[10]) { + default: + break; + case 'c': + switch(s[11]) { + default: + break; + case 'i': + switch(s[12]) { + default: + break; + case 'e': + switch(s[13]) { + default: + break; + case 'n': + switch(s[14]) { + default: + break; + case 't': + switch(s[15]) { + default: + break; + case '1': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT1; + } + break; + case '2': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT2; + } + break; + case '3': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT3; + } + break; + case '4': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT4; + } + break; + case '5': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT5; + } + break; + case '6': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT6; + } + break; + case '7': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT7; + } + break; + case '8': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT8; + } + break; + case '9': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT9; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT; + } + } + } + } + } + } + } + } + } + } + } + break; + case 'd': + if (strcmp("erive-from-pq", s + 5) == 0) + return PIDX_PKEY_PARAM_RSA_DERIVE_FROM_PQ; + break; + case 'e': + switch(s[5]) { + default: + break; + case 'x': + switch(s[6]) { + default: + break; + case 'p': + switch(s[7]) { + default: + break; + case 'o': + switch(s[8]) { + default: + break; + case 'n': + switch(s[9]) { + default: + break; + case 'e': + switch(s[10]) { + default: + break; + case 'n': + switch(s[11]) { + default: + break; + case 't': + switch(s[12]) { + default: + break; + case '1': + switch(s[13]) { + default: + break; + case '0': + switch(s[14]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT10; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT1; + } + break; + case '2': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT2; + } + break; + case '3': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT3; + } + break; + case '4': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT4; + } + break; + case '5': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT5; + } + break; + case '6': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT6; + } + break; + case '7': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT7; + } + break; + case '8': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT8; + } + break; + case '9': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT9; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT; + } + } + } + } + } + } + } + } + break; + case 'f': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case 'c': + switch(s[7]) { + default: + break; + case 't': + switch(s[8]) { + default: + break; + case 'o': + switch(s[9]) { + default: + break; + case 'r': + switch(s[10]) { + default: + break; + case '1': + switch(s[11]) { + default: + break; + case '0': + switch(s[12]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR10; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR1; + } + break; + case '2': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR2; + } + break; + case '3': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR3; + } + break; + case '4': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR4; + } + break; + case '5': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR5; + } + break; + case '6': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR6; + } + break; + case '7': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR7; + } + break; + case '8': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR8; + } + break; + case '9': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR9; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR; + } + } + } + } + } + } + break; + case 'p': + switch(s[5]) { + default: + break; + case 'k': + if (strcmp("cs15-pad-disabled", s + 6) == 0) + return PIDX_PROV_PARAM_RSA_PKCS15_PAD_DISABLED; + break; + case 's': + if (strcmp("s-saltlen-check", s + 6) == 0) + return PIDX_SIGNATURE_PARAM_FIPS_RSA_PSS_SALTLEN_CHECK; + } + break; + case 's': + if (strcmp("ign-x931-pad-disabled", s + 5) == 0) + return PIDX_PROV_PARAM_RSA_SIGN_X931_PAD_DISABLED; + } + } + } + break; + case '\0': + return PIDX_KDF_PARAM_SCRYPT_R; + } + break; + case 's': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'f': + if (strcmp("eprime-generator", s + 3) == 0) + return PIDX_PKEY_PARAM_DH_GENERATOR; + break; + case 'l': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case 'l': + if (strcmp("en", s + 5) == 0) + return PIDX_SIGNATURE_PARAM_PSS_SALTLEN; + break; + case '\0': + return PIDX_MAC_PARAM_SALT; + } + } + break; + case 'v': + if (strcmp("e-parameters", s + 3) == 0) + return PIDX_ENCODER_PARAM_SAVE_PARAMETERS; + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'c': + switch(s[3]) { + default: + break; + case 'r': + if (strcmp("et", s + 4) == 0) + return PIDX_KDF_PARAM_SECRET; + break; + case 'u': + switch(s[4]) { + default: + break; + case 'r': + switch(s[5]) { + default: + break; + case 'i': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case 'y': + switch(s[8]) { + default: + break; + case '-': + switch(s[9]) { + default: + break; + case 'b': + if (strcmp("its", s + 10) == 0) + return PIDX_PKEY_PARAM_SECURITY_BITS; + break; + case 'c': + if (strcmp("hecks", s + 10) == 0) + return PIDX_PROV_PARAM_SECURITY_CHECKS; + } + } + } + } + } + } + } + break; + case 'e': + if (strcmp("d", s + 3) == 0) + return PIDX_PKEY_PARAM_SLH_DSA_SEED; + break; + case 'r': + if (strcmp("ial", s + 3) == 0) + return PIDX_STORE_PARAM_SERIAL; + break; + case 's': + if (strcmp("sion_id", s + 3) == 0) + return PIDX_KDF_PARAM_SSHKDF_SESSION_ID; + } + break; + case 'i': + switch(s[2]) { + default: + break; + case 'g': + switch(s[3]) { + default: + break; + case 'n': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'c': + if (strcmp("heck", s + 6) == 0) + return PIDX_PKEY_PARAM_FIPS_SIGN_CHECK; + break; + case 'x': + if (strcmp("931-pad-check", s + 6) == 0) + return PIDX_SIGNATURE_PARAM_FIPS_SIGN_X931_PAD_CHECK; + } + break; + case 'a': + switch(s[5]) { + default: + break; + case 't': + switch(s[6]) { + default: + break; + case 'u': + switch(s[7]) { + default: + break; + case 'r': + switch(s[8]) { + default: + break; + case 'e': + switch(s[9]) { + default: + break; + case '-': + if (strcmp("digest-check", s + 10) == 0) + return PIDX_PROV_PARAM_SIGNATURE_DIGEST_CHECK; + break; + case '\0': + return PIDX_SIGNATURE_PARAM_SIGNATURE; + } + } + } + } + } + } + } + break; + case 'z': + if (strcmp("e", s + 3) == 0) + return PIDX_MAC_PARAM_SIZE; + } + break; + case 'p': + if (strcmp("eed", s + 2) == 0) + return PIDX_CIPHER_PARAM_SPEED; + break; + case 's': + switch(s[2]) { + default: + break; + case 'h': + switch(s[3]) { + default: + break; + case 'k': + switch(s[4]) { + default: + break; + case 'd': + switch(s[5]) { + default: + break; + case 'f': + switch(s[6]) { + default: + break; + case '-': + switch(s[7]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 8) == 0) + return PIDX_PROV_PARAM_SSHKDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 8) == 0) + return PIDX_PROV_PARAM_SSHKDF_KEY_CHECK; + } + } + } + } + } + break; + case 'k': + switch(s[3]) { + default: + break; + case 'd': + switch(s[4]) { + default: + break; + case 'f': + switch(s[5]) { + default: + break; + case '-': + switch(s[6]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 7) == 0) + return PIDX_PROV_PARAM_SSKDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 7) == 0) + return PIDX_PROV_PARAM_SSKDF_KEY_CHECK; + } + } + } + } + break; + case 'l': + if (strcmp("3-ms", s + 3) == 0) + return PIDX_DIGEST_PARAM_SSL3_MS; + } + break; + case 't': + switch(s[2]) { + default: + break; + case '-': + switch(s[3]) { + default: + break; + case 'd': + if (strcmp("esc", s + 4) == 0) + return PIDX_PROV_PARAM_SELF_TEST_DESC; + break; + case 'p': + if (strcmp("hase", s + 4) == 0) + return PIDX_PROV_PARAM_SELF_TEST_PHASE; + break; + case 't': + if (strcmp("ype", s + 4) == 0) + return PIDX_PROV_PARAM_SELF_TEST_TYPE; + } + break; + case 'a': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case 'e': + switch(s[5]) { + default: + break; + case '\0': + return PIDX_RAND_PARAM_STATE; + } + break; + case 'u': + if (strcmp("s", s + 5) == 0) + return PIDX_PROV_PARAM_STATUS; + } + } + break; + case 'r': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case 'a': + if (strcmp("m_mac", s + 5) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_STREAM_MAC; + break; + case 'n': + if (strcmp("gth", s + 5) == 0) + return PIDX_RAND_PARAM_STRENGTH; + } + } + } + break; + case 'u': + switch(s[2]) { + default: + break; + case 'b': + if (strcmp("ject", s + 3) == 0) + return PIDX_STORE_PARAM_SUBJECT; + break; + case 'p': + switch(s[3]) { + default: + break; + case 'p': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'p': + switch(s[6]) { + default: + break; + case 'r': + if (strcmp("ivinfo", s + 7) == 0) + return PIDX_KDF_PARAM_X942_SUPP_PRIVINFO; + break; + case 'u': + if (strcmp("binfo", s + 7) == 0) + return PIDX_KDF_PARAM_X942_SUPP_PUBINFO; + } + } + } + } + } + } + break; + case 't': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'g': + switch(s[3]) { + default: + break; + case 'l': + if (strcmp("en", s + 4) == 0) + return PIDX_CIPHER_PARAM_AEAD_TAGLEN; + break; + case '\0': + return PIDX_CIPHER_PARAM_AEAD_TAG; + } + } + break; + case 'd': + if (strcmp("es-encrypt-disabled", s + 2) == 0) + return PIDX_PROV_PARAM_TDES_ENCRYPT_DISABLED; + break; + case 'e': + switch(s[2]) { + default: + break; + case 's': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case '-': + if (strcmp("entropy", s + 5) == 0) + return PIDX_SIGNATURE_PARAM_TEST_ENTROPY; + break; + case '_': + switch(s[5]) { + default: + break; + case 'e': + if (strcmp("ntropy", s + 6) == 0) + return PIDX_RAND_PARAM_TEST_ENTROPY; + break; + case 'n': + if (strcmp("once", s + 6) == 0) + return PIDX_RAND_PARAM_TEST_NONCE; + } + } + } + } + break; + case 'h': + if (strcmp("reads", s + 2) == 0) + return PIDX_KDF_PARAM_THREADS; + break; + case 'l': + switch(s[2]) { + default: + break; + case 's': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'c': + if (strcmp("lient-version", s + 5) == 0) + return PIDX_ASYM_CIPHER_PARAM_TLS_CLIENT_VERSION; + break; + case 'd': + if (strcmp("ata-size", s + 5) == 0) + return PIDX_MAC_PARAM_TLS_DATA_SIZE; + break; + case 'g': + switch(s[5]) { + default: + break; + case 'r': + switch(s[6]) { + default: + break; + case 'o': + switch(s[7]) { + default: + break; + case 'u': + switch(s[8]) { + default: + break; + case 'p': + switch(s[9]) { + default: + break; + case '-': + switch(s[10]) { + default: + break; + case 'a': + if (strcmp("lg", s + 11) == 0) + return PIDX_CAPABILITY_TLS_GROUP_ALG; + break; + case 'i': + switch(s[11]) { + default: + break; + case 'd': + switch(s[12]) { + default: + break; + case '\0': + return PIDX_CAPABILITY_TLS_GROUP_ID; + } + break; + case 's': + if (strcmp("-kem", s + 12) == 0) + return PIDX_CAPABILITY_TLS_GROUP_IS_KEM; + } + break; + case 'n': + switch(s[11]) { + default: + break; + case 'a': + switch(s[12]) { + default: + break; + case 'm': + switch(s[13]) { + default: + break; + case 'e': + switch(s[14]) { + default: + break; + case '-': + if (strcmp("internal", s + 15) == 0) + return PIDX_CAPABILITY_TLS_GROUP_NAME_INTERNAL; + break; + case '\0': + return PIDX_CAPABILITY_TLS_GROUP_NAME; + } + } + } + } + break; + case 's': + if (strcmp("ec-bits", s + 11) == 0) + return PIDX_CAPABILITY_TLS_GROUP_SECURITY_BITS; + } + } + } + } + } + } + break; + case 'm': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case 'c': + switch(s[7]) { + default: + break; + case '-': + if (strcmp("size", s + 8) == 0) + return PIDX_CIPHER_PARAM_TLS_MAC_SIZE; + break; + case '\0': + return PIDX_CIPHER_PARAM_TLS_MAC; + } + break; + case 'x': + switch(s[7]) { + default: + break; + case '-': + switch(s[8]) { + default: + break; + case 'd': + if (strcmp("tls", s + 9) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_MAX_DTLS; + break; + case 't': + if (strcmp("ls", s + 9) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_MAX_TLS; + } + } + } + break; + case 'i': + switch(s[6]) { + default: + break; + case 'n': + switch(s[7]) { + default: + break; + case '-': + switch(s[8]) { + default: + break; + case 'd': + if (strcmp("tls", s + 9) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_MIN_DTLS; + break; + case 't': + if (strcmp("ls", s + 9) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_MIN_TLS; + } + } + } + break; + case 'u': + if (strcmp("lti", s + 6) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK; + } + break; + case 'n': + if (strcmp("egotiated-version", s + 5) == 0) + return PIDX_ASYM_CIPHER_PARAM_TLS_NEGOTIATED_VERSION; + break; + case 's': + switch(s[5]) { + default: + break; + case 'i': + switch(s[6]) { + default: + break; + case 'g': + switch(s[7]) { + default: + break; + case 'a': + switch(s[8]) { + default: + break; + case 'l': + switch(s[9]) { + default: + break; + case 'g': + switch(s[10]) { + default: + break; + case '-': + switch(s[11]) { + default: + break; + case 'c': + if (strcmp("ode-point", s + 12) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_CODE_POINT; + break; + case 'h': + switch(s[12]) { + default: + break; + case 'a': + switch(s[13]) { + default: + break; + case 's': + switch(s[14]) { + default: + break; + case 'h': + switch(s[15]) { + default: + break; + case '-': + switch(s[16]) { + default: + break; + case 'n': + if (strcmp("ame", s + 17) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_HASH_NAME; + break; + case 'o': + if (strcmp("id", s + 17) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_HASH_OID; + } + } + } + } + } + break; + case 'i': + if (strcmp("ana-name", s + 12) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_IANA_NAME; + break; + case 'k': + switch(s[12]) { + default: + break; + case 'e': + switch(s[13]) { + default: + break; + case 'y': + switch(s[14]) { + default: + break; + case 't': + switch(s[15]) { + default: + break; + case 'y': + switch(s[16]) { + default: + break; + case 'p': + switch(s[17]) { + default: + break; + case 'e': + switch(s[18]) { + default: + break; + case '-': + if (strcmp("oid", s + 19) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_KEYTYPE_OID; + break; + case '\0': + return PIDX_CAPABILITY_TLS_SIGALG_KEYTYPE; + } + } + } + } + } + } + } + break; + case 'n': + if (strcmp("ame", s + 12) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_NAME; + break; + case 'o': + if (strcmp("id", s + 12) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_OID; + break; + case 's': + switch(s[12]) { + default: + break; + case 'e': + if (strcmp("c-bits", s + 13) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_SECURITY_BITS; + break; + case 'i': + switch(s[13]) { + default: + break; + case 'g': + switch(s[14]) { + default: + break; + case '-': + switch(s[15]) { + default: + break; + case 'n': + if (strcmp("ame", s + 16) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_SIG_NAME; + break; + case 'o': + if (strcmp("id", s + 16) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_SIG_OID; + } + } + } + } + } + } + } + } + } + } + } + break; + case 'v': + if (strcmp("ersion", s + 5) == 0) + return PIDX_CIPHER_PARAM_TLS_VERSION; + } + break; + case '1': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'p': + switch(s[6]) { + default: + break; + case 'r': + switch(s[7]) { + default: + break; + case 'f': + switch(s[8]) { + default: + break; + case '-': + switch(s[9]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 10) == 0) + return PIDX_PROV_PARAM_TLS1_PRF_DIGEST_CHECK; + break; + case 'e': + if (strcmp("ms-check", s + 10) == 0) + return PIDX_PROV_PARAM_TLS1_PRF_EMS_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 10) == 0) + return PIDX_PROV_PARAM_TLS1_PRF_KEY_CHECK; + } + } + } + } + } + break; + case '3': + switch(s[5]) { + default: + break; + case '-': + switch(s[6]) { + default: + break; + case 'k': + switch(s[7]) { + default: + break; + case 'd': + switch(s[8]) { + default: + break; + case 'f': + switch(s[9]) { + default: + break; + case '-': + switch(s[10]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 11) == 0) + return PIDX_PROV_PARAM_TLS13_KDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 11) == 0) + return PIDX_PROV_PARAM_TLS13_KDF_KEY_CHECK; + } + } + } + } + } + } + break; + case 'm': + switch(s[5]) { + default: + break; + case 'u': + switch(s[6]) { + default: + break; + case 'l': + switch(s[7]) { + default: + break; + case 't': + switch(s[8]) { + default: + break; + case 'i': + switch(s[9]) { + default: + break; + case '_': + switch(s[10]) { + default: + break; + case 'a': + switch(s[11]) { + default: + break; + case 'a': + switch(s[12]) { + default: + break; + case 'd': + switch(s[13]) { + default: + break; + case 'p': + if (strcmp("acklen", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD_PACKLEN; + break; + case '\0': + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD; + } + } + } + break; + case 'e': + switch(s[11]) { + default: + break; + case 'n': + switch(s[12]) { + default: + break; + case 'c': + switch(s[13]) { + default: + break; + case 'i': + if (strcmp("n", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_IN; + break; + case 'l': + if (strcmp("en", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_LEN; + break; + case '\0': + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC; + } + } + } + break; + case 'i': + if (strcmp("nterleave", s + 11) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_INTERLEAVE; + break; + case 'm': + switch(s[11]) { + default: + break; + case 'a': + switch(s[12]) { + default: + break; + case 'x': + switch(s[13]) { + default: + break; + case 'b': + if (strcmp("ufsz", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_BUFSIZE; + break; + case 's': + if (strcmp("ndfrag", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_SEND_FRAGMENT; + } + } + } + } + } + } + } + } + } + } + break; + case 'a': + switch(s[4]) { + default: + break; + case 'a': + switch(s[5]) { + default: + break; + case 'd': + switch(s[6]) { + default: + break; + case 'p': + if (strcmp("ad", s + 7) == 0) + return PIDX_CIPHER_PARAM_AEAD_TLS1_AAD_PAD; + break; + case '\0': + return PIDX_CIPHER_PARAM_AEAD_TLS1_AAD; + } + } + } + break; + case 'i': + switch(s[4]) { + default: + break; + case 'v': + switch(s[5]) { + default: + break; + case 'f': + if (strcmp("ixed", s + 6) == 0) + return PIDX_CIPHER_PARAM_AEAD_TLS1_IV_FIXED; + break; + case 'g': + if (strcmp("en", s + 6) == 0) + return PIDX_CIPHER_PARAM_AEAD_TLS1_GET_IV_GEN; + break; + case 'i': + if (strcmp("nv", s + 6) == 0) + return PIDX_CIPHER_PARAM_AEAD_TLS1_SET_IV_INV; + } + } + break; + case 't': + if (strcmp("ree", s + 4) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_TLSTREE; + } + } + break; + case 'p': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_TP_BASIS; + } + break; + case 'y': + if (strcmp("pe", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_TYPE; + } + break; + case 'u': + switch(s[1]) { + default: + break; + case 'k': + if (strcmp("m", s + 2) == 0) + return PIDX_KDF_PARAM_UKM; + break; + case 'p': + if (strcmp("dated-iv", s + 2) == 0) + return PIDX_CIPHER_PARAM_UPDATED_IV; + break; + case 's': + switch(s[2]) { + default: + break; + case 'e': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'b': + if (strcmp("its", s + 5) == 0) + return PIDX_CIPHER_PARAM_USE_BITS; + break; + case 'c': + if (strcmp("ofactor-flag", s + 5) == 0) + return PIDX_PKEY_PARAM_USE_COFACTOR_FLAG; + break; + case 'k': + if (strcmp("eybits", s + 5) == 0) + return PIDX_KDF_PARAM_X942_USE_KEYBITS; + break; + case 'l': + switch(s[5]) { + default: + break; + case '\0': + return PIDX_KDF_PARAM_KBKDF_USE_L; + } + break; + case 's': + if (strcmp("eparator", s + 5) == 0) + return PIDX_KDF_PARAM_KBKDF_USE_SEPARATOR; + } + break; + case '_': + switch(s[4]) { + default: + break; + case 'd': + if (strcmp("erivation_function", s + 5) == 0) + return PIDX_DRBG_PARAM_USE_DF; + break; + case 'e': + if (strcmp("tm", s + 5) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_USE_ETM; + } + } + } + } + break; + case 'v': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'l': + switch(s[3]) { + default: + break; + case 'i': + switch(s[4]) { + default: + break; + case 'd': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case 'e': + switch(s[8]) { + default: + break; + case '-': + switch(s[9]) { + default: + break; + case 'g': + switch(s[10]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_VALIDATE_G; + } + break; + case 'l': + if (strcmp("egacy", s + 10) == 0) + return PIDX_PKEY_PARAM_FFC_VALIDATE_LEGACY; + break; + case 'p': + if (strcmp("q", s + 10) == 0) + return PIDX_PKEY_PARAM_FFC_VALIDATE_PQ; + } + } + } + } + } + } + } + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'r': + switch(s[3]) { + default: + break; + case 'i': + if (strcmp("fy-message", s + 4) == 0) + return PIDX_SIGNATURE_PARAM_FIPS_VERIFY_MESSAGE; + break; + case 's': + if (strcmp("ion", s + 4) == 0) + return PIDX_PROV_PARAM_VERSION; + } + } + } + break; + case 'x': + switch(s[1]) { + default: + break; + case '9': + switch(s[2]) { + default: + break; + case '4': + if (strcmp("2kdf-key-check", s + 3) == 0) + return PIDX_PROV_PARAM_X942KDF_KEY_CHECK; + break; + case '6': + switch(s[3]) { + default: + break; + case '3': + switch(s[4]) { + default: + break; + case 'k': + switch(s[5]) { + default: + break; + case 'd': + switch(s[6]) { + default: + break; + case 'f': + switch(s[7]) { + default: + break; + case '-': + switch(s[8]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 9) == 0) + return PIDX_PROV_PARAM_X963KDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 9) == 0) + return PIDX_PROV_PARAM_X963KDF_KEY_CHECK; + } + } + } + } + } + } + } + break; + case 'c': + if (strcmp("ghash", s + 2) == 0) + return PIDX_KDF_PARAM_SSHKDF_XCGHASH; + break; + case 'o': + switch(s[2]) { + default: + break; + case 'f': + switch(s[3]) { + default: + break; + case 'l': + if (strcmp("en", s + 4) == 0) + return PIDX_DIGEST_PARAM_XOFLEN; + break; + case '\0': + return PIDX_MAC_PARAM_XOF; + } + } + break; + case 'p': + switch(s[2]) { + default: + break; + case '1': + switch(s[3]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XP1; + } + break; + case '2': + switch(s[3]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XP2; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XP; + } + break; + case 'q': + switch(s[2]) { + default: + break; + case '1': + switch(s[3]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XQ1; + } + break; + case '2': + switch(s[3]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XQ2; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XQ; + } + break; + case 't': + if (strcmp("s_standard", s + 2) == 0) + return PIDX_CIPHER_PARAM_XTS_STANDARD; + } + } + return -1; +} + +/* End of TRIE */ diff --git a/deps/openssl/config/archs/BSD-x86/no-asm/include/internal/param_names.h b/deps/openssl/config/archs/BSD-x86/no-asm/include/internal/param_names.h new file mode 100644 index 00000000000000..0a0404a57e82b9 --- /dev/null +++ b/deps/openssl/config/archs/BSD-x86/no-asm/include/internal/param_names.h @@ -0,0 +1,469 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from include/internal/param_names.h.in + * + * Copyright 2023 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + +int ossl_param_find_pidx(const char *s); + +/* Parameter name definitions - generated by util/perl/OpenSSL/paramnames.pm */ +#define NUM_PIDX 346 + +#define PIDX_ALG_PARAM_ALGORITHM_ID 0 +#define PIDX_ALG_PARAM_ALGORITHM_ID_PARAMS 1 +#define PIDX_ALG_PARAM_CIPHER 2 +#define PIDX_ALG_PARAM_DIGEST 3 +#define PIDX_ALG_PARAM_ENGINE 4 +#define PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR 5 +#define PIDX_ALG_PARAM_MAC 6 +#define PIDX_ALG_PARAM_PROPERTIES 7 +#define PIDX_ASYM_CIPHER_PARAM_DIGEST PIDX_PKEY_PARAM_DIGEST +#define PIDX_ASYM_CIPHER_PARAM_ENGINE PIDX_PKEY_PARAM_ENGINE +#define PIDX_ASYM_CIPHER_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_ASYM_CIPHER_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_ASYM_CIPHER_PARAM_FIPS_RSA_PKCS15_PAD_DISABLED PIDX_PROV_PARAM_RSA_PKCS15_PAD_DISABLED +#define PIDX_ASYM_CIPHER_PARAM_IMPLICIT_REJECTION 8 +#define PIDX_ASYM_CIPHER_PARAM_MGF1_DIGEST PIDX_PKEY_PARAM_MGF1_DIGEST +#define PIDX_ASYM_CIPHER_PARAM_MGF1_DIGEST_PROPS PIDX_PKEY_PARAM_MGF1_PROPERTIES +#define PIDX_ASYM_CIPHER_PARAM_OAEP_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_ASYM_CIPHER_PARAM_OAEP_DIGEST_PROPS 9 +#define PIDX_ASYM_CIPHER_PARAM_OAEP_LABEL 10 +#define PIDX_ASYM_CIPHER_PARAM_PAD_MODE PIDX_PKEY_PARAM_PAD_MODE +#define PIDX_ASYM_CIPHER_PARAM_PROPERTIES PIDX_PKEY_PARAM_PROPERTIES +#define PIDX_ASYM_CIPHER_PARAM_TLS_CLIENT_VERSION 11 +#define PIDX_ASYM_CIPHER_PARAM_TLS_NEGOTIATED_VERSION 12 +#define PIDX_CAPABILITY_TLS_GROUP_ALG 13 +#define PIDX_CAPABILITY_TLS_GROUP_ID 14 +#define PIDX_CAPABILITY_TLS_GROUP_IS_KEM 15 +#define PIDX_CAPABILITY_TLS_GROUP_MAX_DTLS 16 +#define PIDX_CAPABILITY_TLS_GROUP_MAX_TLS 17 +#define PIDX_CAPABILITY_TLS_GROUP_MIN_DTLS 18 +#define PIDX_CAPABILITY_TLS_GROUP_MIN_TLS 19 +#define PIDX_CAPABILITY_TLS_GROUP_NAME 20 +#define PIDX_CAPABILITY_TLS_GROUP_NAME_INTERNAL 21 +#define PIDX_CAPABILITY_TLS_GROUP_SECURITY_BITS 22 +#define PIDX_CAPABILITY_TLS_SIGALG_CODE_POINT 23 +#define PIDX_CAPABILITY_TLS_SIGALG_HASH_NAME 24 +#define PIDX_CAPABILITY_TLS_SIGALG_HASH_OID 25 +#define PIDX_CAPABILITY_TLS_SIGALG_IANA_NAME 26 +#define PIDX_CAPABILITY_TLS_SIGALG_KEYTYPE 27 +#define PIDX_CAPABILITY_TLS_SIGALG_KEYTYPE_OID 28 +#define PIDX_CAPABILITY_TLS_SIGALG_MAX_DTLS 16 +#define PIDX_CAPABILITY_TLS_SIGALG_MAX_TLS 17 +#define PIDX_CAPABILITY_TLS_SIGALG_MIN_DTLS 18 +#define PIDX_CAPABILITY_TLS_SIGALG_MIN_TLS 19 +#define PIDX_CAPABILITY_TLS_SIGALG_NAME 29 +#define PIDX_CAPABILITY_TLS_SIGALG_OID 30 +#define PIDX_CAPABILITY_TLS_SIGALG_SECURITY_BITS 31 +#define PIDX_CAPABILITY_TLS_SIGALG_SIG_NAME 32 +#define PIDX_CAPABILITY_TLS_SIGALG_SIG_OID 33 +#define PIDX_CIPHER_PARAM_AEAD 34 +#define PIDX_CIPHER_PARAM_AEAD_IVLEN PIDX_CIPHER_PARAM_IVLEN +#define PIDX_CIPHER_PARAM_AEAD_IV_GENERATED 35 +#define PIDX_CIPHER_PARAM_AEAD_MAC_KEY 36 +#define PIDX_CIPHER_PARAM_AEAD_TAG 37 +#define PIDX_CIPHER_PARAM_AEAD_TAGLEN 38 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_AAD 39 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_AAD_PAD 40 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_GET_IV_GEN 41 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_IV_FIXED 42 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_SET_IV_INV 43 +#define PIDX_CIPHER_PARAM_ALGORITHM_ID PIDX_ALG_PARAM_ALGORITHM_ID +#define PIDX_CIPHER_PARAM_ALGORITHM_ID_PARAMS PIDX_ALG_PARAM_ALGORITHM_ID_PARAMS +#define PIDX_CIPHER_PARAM_ALGORITHM_ID_PARAMS_OLD 44 +#define PIDX_CIPHER_PARAM_BLOCK_SIZE 45 +#define PIDX_CIPHER_PARAM_CTS 46 +#define PIDX_CIPHER_PARAM_CTS_MODE 47 +#define PIDX_CIPHER_PARAM_CUSTOM_IV 48 +#define PIDX_CIPHER_PARAM_DECRYPT_ONLY 49 +#define PIDX_CIPHER_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_CIPHER_PARAM_FIPS_ENCRYPT_CHECK 50 +#define PIDX_CIPHER_PARAM_HAS_RAND_KEY 51 +#define PIDX_CIPHER_PARAM_IV 52 +#define PIDX_CIPHER_PARAM_IVLEN 53 +#define PIDX_CIPHER_PARAM_KEYLEN 54 +#define PIDX_CIPHER_PARAM_MODE 55 +#define PIDX_CIPHER_PARAM_NUM 56 +#define PIDX_CIPHER_PARAM_PADDING 57 +#define PIDX_CIPHER_PARAM_PIPELINE_AEAD_TAG 58 +#define PIDX_CIPHER_PARAM_RANDOM_KEY 59 +#define PIDX_CIPHER_PARAM_RC2_KEYBITS 60 +#define PIDX_CIPHER_PARAM_ROUNDS 61 +#define PIDX_CIPHER_PARAM_SPEED 62 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK 63 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD 64 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD_PACKLEN 65 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC 66 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_IN 67 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_LEN 68 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_INTERLEAVE 69 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_BUFSIZE 70 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_SEND_FRAGMENT 71 +#define PIDX_CIPHER_PARAM_TLS_MAC 72 +#define PIDX_CIPHER_PARAM_TLS_MAC_SIZE 73 +#define PIDX_CIPHER_PARAM_TLS_VERSION 74 +#define PIDX_CIPHER_PARAM_UPDATED_IV 75 +#define PIDX_CIPHER_PARAM_USE_BITS 76 +#define PIDX_CIPHER_PARAM_XTS_STANDARD 77 +#define PIDX_DECODER_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_DIGEST_PARAM_ALGID_ABSENT 78 +#define PIDX_DIGEST_PARAM_BLOCK_SIZE 45 +#define PIDX_DIGEST_PARAM_MICALG 79 +#define PIDX_DIGEST_PARAM_PAD_TYPE 80 +#define PIDX_DIGEST_PARAM_SIZE 81 +#define PIDX_DIGEST_PARAM_SSL3_MS 82 +#define PIDX_DIGEST_PARAM_XOF 83 +#define PIDX_DIGEST_PARAM_XOFLEN 84 +#define PIDX_DRBG_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_DRBG_PARAM_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_DRBG_PARAM_ENTROPY_REQUIRED 85 +#define PIDX_DRBG_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_DRBG_PARAM_FIPS_DIGEST_CHECK PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK +#define PIDX_DRBG_PARAM_MAC PIDX_ALG_PARAM_MAC +#define PIDX_DRBG_PARAM_MAX_ADINLEN 86 +#define PIDX_DRBG_PARAM_MAX_ENTROPYLEN 87 +#define PIDX_DRBG_PARAM_MAX_LENGTH 88 +#define PIDX_DRBG_PARAM_MAX_NONCELEN 89 +#define PIDX_DRBG_PARAM_MAX_PERSLEN 90 +#define PIDX_DRBG_PARAM_MIN_ENTROPYLEN 91 +#define PIDX_DRBG_PARAM_MIN_LENGTH 92 +#define PIDX_DRBG_PARAM_MIN_NONCELEN 93 +#define PIDX_DRBG_PARAM_PREDICTION_RESISTANCE 94 +#define PIDX_DRBG_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_DRBG_PARAM_RANDOM_DATA 95 +#define PIDX_DRBG_PARAM_RESEED_COUNTER 96 +#define PIDX_DRBG_PARAM_RESEED_REQUESTS 97 +#define PIDX_DRBG_PARAM_RESEED_TIME 98 +#define PIDX_DRBG_PARAM_RESEED_TIME_INTERVAL 99 +#define PIDX_DRBG_PARAM_SIZE 81 +#define PIDX_DRBG_PARAM_USE_DF 100 +#define PIDX_ENCODER_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_ENCODER_PARAM_ENCRYPT_LEVEL 101 +#define PIDX_ENCODER_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_ENCODER_PARAM_SAVE_PARAMETERS 102 +#define PIDX_EXCHANGE_PARAM_EC_ECDH_COFACTOR_MODE 103 +#define PIDX_EXCHANGE_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_EXCHANGE_PARAM_FIPS_DIGEST_CHECK PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK +#define PIDX_EXCHANGE_PARAM_FIPS_ECDH_COFACTOR_CHECK PIDX_PROV_PARAM_ECDH_COFACTOR_CHECK +#define PIDX_EXCHANGE_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_EXCHANGE_PARAM_KDF_DIGEST 104 +#define PIDX_EXCHANGE_PARAM_KDF_DIGEST_PROPS 105 +#define PIDX_EXCHANGE_PARAM_KDF_OUTLEN 106 +#define PIDX_EXCHANGE_PARAM_KDF_TYPE 107 +#define PIDX_EXCHANGE_PARAM_KDF_UKM 108 +#define PIDX_EXCHANGE_PARAM_PAD 109 +#define PIDX_GEN_PARAM_ITERATION 110 +#define PIDX_GEN_PARAM_POTENTIAL 111 +#define PIDX_KDF_PARAM_ARGON2_AD 112 +#define PIDX_KDF_PARAM_ARGON2_LANES 113 +#define PIDX_KDF_PARAM_ARGON2_MEMCOST 114 +#define PIDX_KDF_PARAM_ARGON2_VERSION 115 +#define PIDX_KDF_PARAM_CEK_ALG 116 +#define PIDX_KDF_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_KDF_PARAM_CONSTANT 117 +#define PIDX_KDF_PARAM_DATA 118 +#define PIDX_KDF_PARAM_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_KDF_PARAM_EARLY_CLEAN 119 +#define PIDX_KDF_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_KDF_PARAM_FIPS_DIGEST_CHECK PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK +#define PIDX_KDF_PARAM_FIPS_EMS_CHECK 120 +#define PIDX_KDF_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_KDF_PARAM_HMACDRBG_ENTROPY 121 +#define PIDX_KDF_PARAM_HMACDRBG_NONCE 122 +#define PIDX_KDF_PARAM_INFO 123 +#define PIDX_KDF_PARAM_ITER 124 +#define PIDX_KDF_PARAM_KBKDF_R 125 +#define PIDX_KDF_PARAM_KBKDF_USE_L 126 +#define PIDX_KDF_PARAM_KBKDF_USE_SEPARATOR 127 +#define PIDX_KDF_PARAM_KEY 128 +#define PIDX_KDF_PARAM_LABEL 129 +#define PIDX_KDF_PARAM_MAC PIDX_ALG_PARAM_MAC +#define PIDX_KDF_PARAM_MAC_SIZE 130 +#define PIDX_KDF_PARAM_MODE 55 +#define PIDX_KDF_PARAM_PASSWORD 131 +#define PIDX_KDF_PARAM_PKCS12_ID 132 +#define PIDX_KDF_PARAM_PKCS5 133 +#define PIDX_KDF_PARAM_PREFIX 134 +#define PIDX_KDF_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_KDF_PARAM_SALT 135 +#define PIDX_KDF_PARAM_SCRYPT_MAXMEM 136 +#define PIDX_KDF_PARAM_SCRYPT_N 137 +#define PIDX_KDF_PARAM_SCRYPT_P 138 +#define PIDX_KDF_PARAM_SCRYPT_R 125 +#define PIDX_KDF_PARAM_SECRET 139 +#define PIDX_KDF_PARAM_SEED 140 +#define PIDX_KDF_PARAM_SIZE 81 +#define PIDX_KDF_PARAM_SSHKDF_SESSION_ID 141 +#define PIDX_KDF_PARAM_SSHKDF_TYPE 142 +#define PIDX_KDF_PARAM_SSHKDF_XCGHASH 143 +#define PIDX_KDF_PARAM_THREADS 144 +#define PIDX_KDF_PARAM_UKM 145 +#define PIDX_KDF_PARAM_X942_ACVPINFO 146 +#define PIDX_KDF_PARAM_X942_PARTYUINFO 147 +#define PIDX_KDF_PARAM_X942_PARTYVINFO 148 +#define PIDX_KDF_PARAM_X942_SUPP_PRIVINFO 149 +#define PIDX_KDF_PARAM_X942_SUPP_PUBINFO 150 +#define PIDX_KDF_PARAM_X942_USE_KEYBITS 151 +#define PIDX_KEM_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_KEM_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_KEM_PARAM_IKME 152 +#define PIDX_KEM_PARAM_OPERATION 153 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_BLOCK_PADDING 154 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_HS_PADDING 155 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_MAX_EARLY_DATA 156 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_MAX_FRAG_LEN 157 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_MODE 55 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_OPTIONS 158 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_READ_AHEAD 159 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_STREAM_MAC 160 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_TLSTREE 161 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_USE_ETM 162 +#define PIDX_LIBSSL_RECORD_LAYER_READ_BUFFER_LEN 163 +#define PIDX_MAC_PARAM_BLOCK_SIZE 164 +#define PIDX_MAC_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_MAC_PARAM_CUSTOM 165 +#define PIDX_MAC_PARAM_C_ROUNDS 166 +#define PIDX_MAC_PARAM_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_MAC_PARAM_DIGEST_NOINIT 167 +#define PIDX_MAC_PARAM_DIGEST_ONESHOT 168 +#define PIDX_MAC_PARAM_D_ROUNDS 169 +#define PIDX_MAC_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_MAC_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_MAC_PARAM_FIPS_NO_SHORT_MAC PIDX_PROV_PARAM_NO_SHORT_MAC +#define PIDX_MAC_PARAM_IV 52 +#define PIDX_MAC_PARAM_KEY 128 +#define PIDX_MAC_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_MAC_PARAM_SALT 135 +#define PIDX_MAC_PARAM_SIZE 81 +#define PIDX_MAC_PARAM_TLS_DATA_SIZE 170 +#define PIDX_MAC_PARAM_XOF 83 +#define PIDX_OBJECT_PARAM_DATA 118 +#define PIDX_OBJECT_PARAM_DATA_STRUCTURE 171 +#define PIDX_OBJECT_PARAM_DATA_TYPE 172 +#define PIDX_OBJECT_PARAM_DESC 173 +#define PIDX_OBJECT_PARAM_INPUT_TYPE 174 +#define PIDX_OBJECT_PARAM_REFERENCE 175 +#define PIDX_OBJECT_PARAM_TYPE 142 +#define PIDX_PASSPHRASE_PARAM_INFO 123 +#define PIDX_PKEY_PARAM_ALGORITHM_ID PIDX_ALG_PARAM_ALGORITHM_ID +#define PIDX_PKEY_PARAM_ALGORITHM_ID_PARAMS PIDX_ALG_PARAM_ALGORITHM_ID_PARAMS +#define PIDX_PKEY_PARAM_BITS 176 +#define PIDX_PKEY_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_PKEY_PARAM_DEFAULT_DIGEST 177 +#define PIDX_PKEY_PARAM_DHKEM_IKM 178 +#define PIDX_PKEY_PARAM_DH_GENERATOR 179 +#define PIDX_PKEY_PARAM_DH_PRIV_LEN 180 +#define PIDX_PKEY_PARAM_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_PKEY_PARAM_DIGEST_SIZE 181 +#define PIDX_PKEY_PARAM_DIST_ID 182 +#define PIDX_PKEY_PARAM_EC_A 183 +#define PIDX_PKEY_PARAM_EC_B 184 +#define PIDX_PKEY_PARAM_EC_CHAR2_M 185 +#define PIDX_PKEY_PARAM_EC_CHAR2_PP_K1 186 +#define PIDX_PKEY_PARAM_EC_CHAR2_PP_K2 187 +#define PIDX_PKEY_PARAM_EC_CHAR2_PP_K3 188 +#define PIDX_PKEY_PARAM_EC_CHAR2_TP_BASIS 189 +#define PIDX_PKEY_PARAM_EC_CHAR2_TYPE 190 +#define PIDX_PKEY_PARAM_EC_COFACTOR 191 +#define PIDX_PKEY_PARAM_EC_DECODED_FROM_EXPLICIT_PARAMS 192 +#define PIDX_PKEY_PARAM_EC_ENCODING 193 +#define PIDX_PKEY_PARAM_EC_FIELD_TYPE 194 +#define PIDX_PKEY_PARAM_EC_GENERATOR 195 +#define PIDX_PKEY_PARAM_EC_GROUP_CHECK_TYPE 196 +#define PIDX_PKEY_PARAM_EC_INCLUDE_PUBLIC 197 +#define PIDX_PKEY_PARAM_EC_ORDER 198 +#define PIDX_PKEY_PARAM_EC_P 138 +#define PIDX_PKEY_PARAM_EC_POINT_CONVERSION_FORMAT 199 +#define PIDX_PKEY_PARAM_EC_PUB_X 200 +#define PIDX_PKEY_PARAM_EC_PUB_Y 201 +#define PIDX_PKEY_PARAM_EC_SEED 140 +#define PIDX_PKEY_PARAM_ENCODED_PUBLIC_KEY 202 +#define PIDX_PKEY_PARAM_ENGINE PIDX_ALG_PARAM_ENGINE +#define PIDX_PKEY_PARAM_FFC_COFACTOR 203 +#define PIDX_PKEY_PARAM_FFC_DIGEST PIDX_PKEY_PARAM_DIGEST +#define PIDX_PKEY_PARAM_FFC_DIGEST_PROPS PIDX_PKEY_PARAM_PROPERTIES +#define PIDX_PKEY_PARAM_FFC_G 204 +#define PIDX_PKEY_PARAM_FFC_GINDEX 205 +#define PIDX_PKEY_PARAM_FFC_H 206 +#define PIDX_PKEY_PARAM_FFC_P 138 +#define PIDX_PKEY_PARAM_FFC_PBITS 207 +#define PIDX_PKEY_PARAM_FFC_PCOUNTER 208 +#define PIDX_PKEY_PARAM_FFC_Q 209 +#define PIDX_PKEY_PARAM_FFC_QBITS 210 +#define PIDX_PKEY_PARAM_FFC_SEED 140 +#define PIDX_PKEY_PARAM_FFC_TYPE 142 +#define PIDX_PKEY_PARAM_FFC_VALIDATE_G 211 +#define PIDX_PKEY_PARAM_FFC_VALIDATE_LEGACY 212 +#define PIDX_PKEY_PARAM_FFC_VALIDATE_PQ 213 +#define PIDX_PKEY_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK 214 +#define PIDX_PKEY_PARAM_FIPS_KEY_CHECK 215 +#define PIDX_PKEY_PARAM_FIPS_SIGN_CHECK 216 +#define PIDX_PKEY_PARAM_GROUP_NAME 217 +#define PIDX_PKEY_PARAM_IMPLICIT_REJECTION 8 +#define PIDX_PKEY_PARAM_MANDATORY_DIGEST 218 +#define PIDX_PKEY_PARAM_MASKGENFUNC 219 +#define PIDX_PKEY_PARAM_MAX_SIZE 220 +#define PIDX_PKEY_PARAM_MGF1_DIGEST 221 +#define PIDX_PKEY_PARAM_MGF1_PROPERTIES 222 +#define PIDX_PKEY_PARAM_ML_DSA_INPUT_FORMATS 223 +#define PIDX_PKEY_PARAM_ML_DSA_OUTPUT_FORMATS 224 +#define PIDX_PKEY_PARAM_ML_DSA_PREFER_SEED 225 +#define PIDX_PKEY_PARAM_ML_DSA_RETAIN_SEED 226 +#define PIDX_PKEY_PARAM_ML_DSA_SEED 140 +#define PIDX_PKEY_PARAM_ML_KEM_IMPORT_PCT_TYPE 227 +#define PIDX_PKEY_PARAM_ML_KEM_INPUT_FORMATS 228 +#define PIDX_PKEY_PARAM_ML_KEM_OUTPUT_FORMATS 229 +#define PIDX_PKEY_PARAM_ML_KEM_PREFER_SEED 230 +#define PIDX_PKEY_PARAM_ML_KEM_RETAIN_SEED 231 +#define PIDX_PKEY_PARAM_ML_KEM_SEED 140 +#define PIDX_PKEY_PARAM_PAD_MODE 232 +#define PIDX_PKEY_PARAM_PRIV_KEY 233 +#define PIDX_PKEY_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_PKEY_PARAM_PUB_KEY 234 +#define PIDX_PKEY_PARAM_RSA_BITS PIDX_PKEY_PARAM_BITS +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT 235 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT1 236 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT2 237 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT3 238 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT4 239 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT5 240 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT6 241 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT7 242 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT8 243 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT9 244 +#define PIDX_PKEY_PARAM_RSA_D 245 +#define PIDX_PKEY_PARAM_RSA_DERIVE_FROM_PQ 246 +#define PIDX_PKEY_PARAM_RSA_DIGEST PIDX_PKEY_PARAM_DIGEST +#define PIDX_PKEY_PARAM_RSA_DIGEST_PROPS PIDX_PKEY_PARAM_PROPERTIES +#define PIDX_PKEY_PARAM_RSA_E 247 +#define PIDX_PKEY_PARAM_RSA_EXPONENT 248 +#define PIDX_PKEY_PARAM_RSA_EXPONENT1 249 +#define PIDX_PKEY_PARAM_RSA_EXPONENT10 250 +#define PIDX_PKEY_PARAM_RSA_EXPONENT2 251 +#define PIDX_PKEY_PARAM_RSA_EXPONENT3 252 +#define PIDX_PKEY_PARAM_RSA_EXPONENT4 253 +#define PIDX_PKEY_PARAM_RSA_EXPONENT5 254 +#define PIDX_PKEY_PARAM_RSA_EXPONENT6 255 +#define PIDX_PKEY_PARAM_RSA_EXPONENT7 256 +#define PIDX_PKEY_PARAM_RSA_EXPONENT8 257 +#define PIDX_PKEY_PARAM_RSA_EXPONENT9 258 +#define PIDX_PKEY_PARAM_RSA_FACTOR 259 +#define PIDX_PKEY_PARAM_RSA_FACTOR1 260 +#define PIDX_PKEY_PARAM_RSA_FACTOR10 261 +#define PIDX_PKEY_PARAM_RSA_FACTOR2 262 +#define PIDX_PKEY_PARAM_RSA_FACTOR3 263 +#define PIDX_PKEY_PARAM_RSA_FACTOR4 264 +#define PIDX_PKEY_PARAM_RSA_FACTOR5 265 +#define PIDX_PKEY_PARAM_RSA_FACTOR6 266 +#define PIDX_PKEY_PARAM_RSA_FACTOR7 267 +#define PIDX_PKEY_PARAM_RSA_FACTOR8 268 +#define PIDX_PKEY_PARAM_RSA_FACTOR9 269 +#define PIDX_PKEY_PARAM_RSA_MASKGENFUNC PIDX_PKEY_PARAM_MASKGENFUNC +#define PIDX_PKEY_PARAM_RSA_MGF1_DIGEST PIDX_PKEY_PARAM_MGF1_DIGEST +#define PIDX_PKEY_PARAM_RSA_N 137 +#define PIDX_PKEY_PARAM_RSA_PRIMES 270 +#define PIDX_PKEY_PARAM_RSA_PSS_SALTLEN 271 +#define PIDX_PKEY_PARAM_RSA_TEST_P1 272 +#define PIDX_PKEY_PARAM_RSA_TEST_P2 273 +#define PIDX_PKEY_PARAM_RSA_TEST_Q1 274 +#define PIDX_PKEY_PARAM_RSA_TEST_Q2 275 +#define PIDX_PKEY_PARAM_RSA_TEST_XP 276 +#define PIDX_PKEY_PARAM_RSA_TEST_XP1 277 +#define PIDX_PKEY_PARAM_RSA_TEST_XP2 278 +#define PIDX_PKEY_PARAM_RSA_TEST_XQ 279 +#define PIDX_PKEY_PARAM_RSA_TEST_XQ1 280 +#define PIDX_PKEY_PARAM_RSA_TEST_XQ2 281 +#define PIDX_PKEY_PARAM_SECURITY_BITS 282 +#define PIDX_PKEY_PARAM_SLH_DSA_SEED 140 +#define PIDX_PKEY_PARAM_USE_COFACTOR_ECDH PIDX_PKEY_PARAM_USE_COFACTOR_FLAG +#define PIDX_PKEY_PARAM_USE_COFACTOR_FLAG 283 +#define PIDX_PROV_PARAM_BUILDINFO 284 +#define PIDX_PROV_PARAM_CORE_MODULE_FILENAME 285 +#define PIDX_PROV_PARAM_CORE_PROV_NAME 286 +#define PIDX_PROV_PARAM_CORE_VERSION 287 +#define PIDX_PROV_PARAM_DRBG_TRUNC_DIGEST 288 +#define PIDX_PROV_PARAM_DSA_SIGN_DISABLED 289 +#define PIDX_PROV_PARAM_ECDH_COFACTOR_CHECK 290 +#define PIDX_PROV_PARAM_HKDF_DIGEST_CHECK 291 +#define PIDX_PROV_PARAM_HKDF_KEY_CHECK 292 +#define PIDX_PROV_PARAM_HMAC_KEY_CHECK 293 +#define PIDX_PROV_PARAM_KBKDF_KEY_CHECK 294 +#define PIDX_PROV_PARAM_KMAC_KEY_CHECK 295 +#define PIDX_PROV_PARAM_NAME 296 +#define PIDX_PROV_PARAM_NO_SHORT_MAC 297 +#define PIDX_PROV_PARAM_PBKDF2_LOWER_BOUND_CHECK 298 +#define PIDX_PROV_PARAM_RSA_PKCS15_PAD_DISABLED 299 +#define PIDX_PROV_PARAM_RSA_PSS_SALTLEN_CHECK 300 +#define PIDX_PROV_PARAM_RSA_SIGN_X931_PAD_DISABLED 301 +#define PIDX_PROV_PARAM_SECURITY_CHECKS 302 +#define PIDX_PROV_PARAM_SELF_TEST_DESC 303 +#define PIDX_PROV_PARAM_SELF_TEST_PHASE 304 +#define PIDX_PROV_PARAM_SELF_TEST_TYPE 305 +#define PIDX_PROV_PARAM_SIGNATURE_DIGEST_CHECK 306 +#define PIDX_PROV_PARAM_SSHKDF_DIGEST_CHECK 307 +#define PIDX_PROV_PARAM_SSHKDF_KEY_CHECK 308 +#define PIDX_PROV_PARAM_SSKDF_DIGEST_CHECK 309 +#define PIDX_PROV_PARAM_SSKDF_KEY_CHECK 310 +#define PIDX_PROV_PARAM_STATUS 311 +#define PIDX_PROV_PARAM_TDES_ENCRYPT_DISABLED 312 +#define PIDX_PROV_PARAM_TLS13_KDF_DIGEST_CHECK 313 +#define PIDX_PROV_PARAM_TLS13_KDF_KEY_CHECK 314 +#define PIDX_PROV_PARAM_TLS1_PRF_DIGEST_CHECK 315 +#define PIDX_PROV_PARAM_TLS1_PRF_EMS_CHECK 316 +#define PIDX_PROV_PARAM_TLS1_PRF_KEY_CHECK 317 +#define PIDX_PROV_PARAM_VERSION 115 +#define PIDX_PROV_PARAM_X942KDF_KEY_CHECK 318 +#define PIDX_PROV_PARAM_X963KDF_DIGEST_CHECK 319 +#define PIDX_PROV_PARAM_X963KDF_KEY_CHECK 320 +#define PIDX_RAND_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_RAND_PARAM_GENERATE 321 +#define PIDX_RAND_PARAM_MAX_REQUEST 322 +#define PIDX_RAND_PARAM_STATE 323 +#define PIDX_RAND_PARAM_STRENGTH 324 +#define PIDX_RAND_PARAM_TEST_ENTROPY 325 +#define PIDX_RAND_PARAM_TEST_NONCE 326 +#define PIDX_SIGNATURE_PARAM_ADD_RANDOM 327 +#define PIDX_SIGNATURE_PARAM_ALGORITHM_ID PIDX_PKEY_PARAM_ALGORITHM_ID +#define PIDX_SIGNATURE_PARAM_ALGORITHM_ID_PARAMS PIDX_PKEY_PARAM_ALGORITHM_ID_PARAMS +#define PIDX_SIGNATURE_PARAM_CONTEXT_STRING 328 +#define PIDX_SIGNATURE_PARAM_DETERMINISTIC 329 +#define PIDX_SIGNATURE_PARAM_DIGEST PIDX_PKEY_PARAM_DIGEST +#define PIDX_SIGNATURE_PARAM_DIGEST_SIZE PIDX_PKEY_PARAM_DIGEST_SIZE +#define PIDX_SIGNATURE_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_SIGNATURE_PARAM_FIPS_DIGEST_CHECK PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK +#define PIDX_SIGNATURE_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_SIGNATURE_PARAM_FIPS_RSA_PSS_SALTLEN_CHECK 300 +#define PIDX_SIGNATURE_PARAM_FIPS_SIGN_CHECK PIDX_PKEY_PARAM_FIPS_SIGN_CHECK +#define PIDX_SIGNATURE_PARAM_FIPS_SIGN_X931_PAD_CHECK 330 +#define PIDX_SIGNATURE_PARAM_FIPS_VERIFY_MESSAGE 331 +#define PIDX_SIGNATURE_PARAM_INSTANCE 332 +#define PIDX_SIGNATURE_PARAM_KAT 333 +#define PIDX_SIGNATURE_PARAM_MESSAGE_ENCODING 334 +#define PIDX_SIGNATURE_PARAM_MGF1_DIGEST PIDX_PKEY_PARAM_MGF1_DIGEST +#define PIDX_SIGNATURE_PARAM_MGF1_PROPERTIES PIDX_PKEY_PARAM_MGF1_PROPERTIES +#define PIDX_SIGNATURE_PARAM_MU 335 +#define PIDX_SIGNATURE_PARAM_NONCE_TYPE 336 +#define PIDX_SIGNATURE_PARAM_PAD_MODE PIDX_PKEY_PARAM_PAD_MODE +#define PIDX_SIGNATURE_PARAM_PROPERTIES PIDX_PKEY_PARAM_PROPERTIES +#define PIDX_SIGNATURE_PARAM_PSS_SALTLEN 271 +#define PIDX_SIGNATURE_PARAM_SIGNATURE 337 +#define PIDX_SIGNATURE_PARAM_TEST_ENTROPY 338 +#define PIDX_SKEY_PARAM_KEY_LENGTH 339 +#define PIDX_SKEY_PARAM_RAW_BYTES 340 +#define PIDX_STORE_PARAM_ALIAS 341 +#define PIDX_STORE_PARAM_DIGEST 3 +#define PIDX_STORE_PARAM_EXPECT 342 +#define PIDX_STORE_PARAM_FINGERPRINT 343 +#define PIDX_STORE_PARAM_INPUT_TYPE 174 +#define PIDX_STORE_PARAM_ISSUER 296 +#define PIDX_STORE_PARAM_PROPERTIES 7 +#define PIDX_STORE_PARAM_SERIAL 344 +#define PIDX_STORE_PARAM_SUBJECT 345 diff --git a/deps/openssl/config/archs/BSD-x86/no-asm/include/openssl/asn1.h b/deps/openssl/config/archs/BSD-x86/no-asm/include/openssl/asn1.h index 21ff58e3d803d4..15e9e44674b0f3 100644 --- a/deps/openssl/config/archs/BSD-x86/no-asm/include/openssl/asn1.h +++ b/deps/openssl/config/archs/BSD-x86/no-asm/include/openssl/asn1.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/asn1.h.in * - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -21,6 +21,9 @@ # define HEADER_ASN1_H # endif +# ifndef OPENSSL_NO_STDIO +# include +# endif # include # include # include @@ -50,14 +53,14 @@ extern "C" { # define V_ASN1_PRIMITIVE_TAG 0x1f # define V_ASN1_PRIMATIVE_TAG /*compat*/ V_ASN1_PRIMITIVE_TAG -# define V_ASN1_APP_CHOOSE -2/* let the recipient choose */ -# define V_ASN1_OTHER -3/* used in ASN1_TYPE */ -# define V_ASN1_ANY -4/* used in ASN1 template code */ +# define V_ASN1_APP_CHOOSE -2 /* let the recipient choose */ +# define V_ASN1_OTHER -3 /* used in ASN1_TYPE */ +# define V_ASN1_ANY -4 /* used in ASN1 template code */ # define V_ASN1_UNDEF -1 /* ASN.1 tag values */ # define V_ASN1_EOC 0 -# define V_ASN1_BOOLEAN 1 /**/ +# define V_ASN1_BOOLEAN 1 # define V_ASN1_INTEGER 2 # define V_ASN1_BIT_STRING 3 # define V_ASN1_OCTET_STRING 4 @@ -70,19 +73,19 @@ extern "C" { # define V_ASN1_UTF8STRING 12 # define V_ASN1_SEQUENCE 16 # define V_ASN1_SET 17 -# define V_ASN1_NUMERICSTRING 18 /**/ +# define V_ASN1_NUMERICSTRING 18 # define V_ASN1_PRINTABLESTRING 19 # define V_ASN1_T61STRING 20 -# define V_ASN1_TELETEXSTRING 20/* alias */ -# define V_ASN1_VIDEOTEXSTRING 21 /**/ +# define V_ASN1_TELETEXSTRING 20 /* alias */ +# define V_ASN1_VIDEOTEXSTRING 21 # define V_ASN1_IA5STRING 22 # define V_ASN1_UTCTIME 23 -# define V_ASN1_GENERALIZEDTIME 24 /**/ -# define V_ASN1_GRAPHICSTRING 25 /**/ -# define V_ASN1_ISO64STRING 26 /**/ -# define V_ASN1_VISIBLESTRING 26/* alias */ -# define V_ASN1_GENERALSTRING 27 /**/ -# define V_ASN1_UNIVERSALSTRING 28 /**/ +# define V_ASN1_GENERALIZEDTIME 24 +# define V_ASN1_GRAPHICSTRING 25 +# define V_ASN1_ISO64STRING 26 +# define V_ASN1_VISIBLESTRING 26 /* alias */ +# define V_ASN1_GENERALSTRING 27 +# define V_ASN1_UNIVERSALSTRING 28 # define V_ASN1_BMPSTRING 30 /* @@ -155,7 +158,7 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_ALGOR, X509_ALGOR, X509_ALGOR) -# define ASN1_STRING_FLAG_BITS_LEFT 0x08/* Set if 0x07 has bits left value */ +# define ASN1_STRING_FLAG_BITS_LEFT 0x08 /* Set if 0x07 has bits left value */ /* * This indicates that the ASN1_STRING is not a real value but just a place * holder for the location where indefinite length constructed data should be @@ -275,7 +278,7 @@ typedef struct ASN1_TLC_st ASN1_TLC; /* This is just an opaque pointer */ typedef struct ASN1_VALUE_st ASN1_VALUE; -/* Declare ASN1 functions: the implement macro in in asn1t.h */ +/* Declare ASN1 functions: the implement macro is in asn1t.h */ /* * The mysterious 'extern' that's passed to some macros is innocuous, @@ -368,6 +371,7 @@ typedef struct ASN1_VALUE_st ASN1_VALUE; typedef void *d2i_of_void(void **, const unsigned char **, long); typedef int i2d_of_void(const void *, unsigned char **); +typedef int OSSL_i2d_of_void_ctx(const void *, unsigned char **, void *vctx); /*- * The following macros and typedefs allow an ASN1_ITEM @@ -996,6 +1000,8 @@ int ASN1_TYPE_get_int_octetstring(const ASN1_TYPE *a, long *num, unsigned char *data, int max_len); void *ASN1_item_unpack(const ASN1_STRING *oct, const ASN1_ITEM *it); +void *ASN1_item_unpack_ex(const ASN1_STRING *oct, const ASN1_ITEM *it, + OSSL_LIB_CTX *libctx, const char *propq); ASN1_STRING *ASN1_item_pack(void *obj, const ASN1_ITEM *it, ASN1_OCTET_STRING **oct); diff --git a/deps/openssl/config/archs/BSD-x86/no-asm/include/openssl/bio.h b/deps/openssl/config/archs/BSD-x86/no-asm/include/openssl/bio.h index f9aa74731c833c..e02f867beb0ec0 100644 --- a/deps/openssl/config/archs/BSD-x86/no-asm/include/openssl/bio.h +++ b/deps/openssl/config/archs/BSD-x86/no-asm/include/openssl/bio.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/bio.h.in * - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -67,8 +67,13 @@ extern "C" { # define BIO_TYPE_DGRAM_SCTP (24|BIO_TYPE_SOURCE_SINK|BIO_TYPE_DESCRIPTOR) # endif # define BIO_TYPE_CORE_TO_PROV (25|BIO_TYPE_SOURCE_SINK) +# define BIO_TYPE_DGRAM_PAIR (26|BIO_TYPE_SOURCE_SINK) +# define BIO_TYPE_DGRAM_MEM (27|BIO_TYPE_SOURCE_SINK) +/* Custom type starting index returned by BIO_get_new_index() */ #define BIO_TYPE_START 128 +/* Custom type maximum index that can be returned by BIO_get_new_index() */ +#define BIO_TYPE_MASK 0xFF /* * BIO_FILENAME_READ|BIO_CLOSE to open or close on free. @@ -171,6 +176,31 @@ extern "C" { # define BIO_CTRL_SET_INDENT 80 # define BIO_CTRL_GET_INDENT 81 +# define BIO_CTRL_DGRAM_GET_LOCAL_ADDR_CAP 82 +# define BIO_CTRL_DGRAM_GET_LOCAL_ADDR_ENABLE 83 +# define BIO_CTRL_DGRAM_SET_LOCAL_ADDR_ENABLE 84 +# define BIO_CTRL_DGRAM_GET_EFFECTIVE_CAPS 85 +# define BIO_CTRL_DGRAM_GET_CAPS 86 +# define BIO_CTRL_DGRAM_SET_CAPS 87 +# define BIO_CTRL_DGRAM_GET_NO_TRUNC 88 +# define BIO_CTRL_DGRAM_SET_NO_TRUNC 89 + +/* + * internal BIO: + * # define BIO_CTRL_SET_KTLS_TX_ZEROCOPY_SENDFILE 90 + */ + +# define BIO_CTRL_GET_RPOLL_DESCRIPTOR 91 +# define BIO_CTRL_GET_WPOLL_DESCRIPTOR 92 +# define BIO_CTRL_DGRAM_DETECT_PEER_ADDR 93 +# define BIO_CTRL_DGRAM_SET0_LOCAL_ADDR 94 + +# define BIO_DGRAM_CAP_NONE 0U +# define BIO_DGRAM_CAP_HANDLES_SRC_ADDR (1U << 0) +# define BIO_DGRAM_CAP_HANDLES_DST_ADDR (1U << 1) +# define BIO_DGRAM_CAP_PROVIDES_SRC_ADDR (1U << 2) +# define BIO_DGRAM_CAP_PROVIDES_DST_ADDR (1U << 3) + # ifndef OPENSSL_NO_KTLS # define BIO_get_ktls_send(b) \ (BIO_ctrl(b, BIO_CTRL_GET_KTLS_SEND, 0, NULL) > 0) @@ -208,7 +238,7 @@ extern "C" { # define BIO_FLAGS_NONCLEAR_RST 0x400 # define BIO_FLAGS_IN_EOF 0x800 -/* the BIO FLAGS values 0x1000 to 0x4000 are reserved for internal KTLS flags */ +/* the BIO FLAGS values 0x1000 to 0x8000 are reserved for internal KTLS flags */ typedef union bio_addr_st BIO_ADDR; typedef struct bio_addrinfo_st BIO_ADDRINFO; @@ -256,12 +286,14 @@ void BIO_clear_flags(BIO *b, int flags); # define BIO_RR_ACCEPT 0x03 /* These are passed by the BIO callback */ -# define BIO_CB_FREE 0x01 -# define BIO_CB_READ 0x02 -# define BIO_CB_WRITE 0x03 -# define BIO_CB_PUTS 0x04 -# define BIO_CB_GETS 0x05 -# define BIO_CB_CTRL 0x06 +# define BIO_CB_FREE 0x01 +# define BIO_CB_READ 0x02 +# define BIO_CB_WRITE 0x03 +# define BIO_CB_PUTS 0x04 +# define BIO_CB_GETS 0x05 +# define BIO_CB_CTRL 0x06 +# define BIO_CB_RECVMMSG 0x07 +# define BIO_CB_SENDMMSG 0x08 /* * The callback is called before and after the underling operation, The @@ -362,6 +394,36 @@ struct bio_dgram_sctp_prinfo { }; # endif +/* BIO_sendmmsg/BIO_recvmmsg-related definitions */ +typedef struct bio_msg_st { + void *data; + size_t data_len; + BIO_ADDR *peer, *local; + uint64_t flags; +} BIO_MSG; + +typedef struct bio_mmsg_cb_args_st { + BIO_MSG *msg; + size_t stride, num_msg; + uint64_t flags; + size_t *msgs_processed; +} BIO_MMSG_CB_ARGS; + +#define BIO_POLL_DESCRIPTOR_TYPE_NONE 0 +#define BIO_POLL_DESCRIPTOR_TYPE_SOCK_FD 1 +#define BIO_POLL_DESCRIPTOR_TYPE_SSL 2 +#define BIO_POLL_DESCRIPTOR_CUSTOM_START 8192 + +typedef struct bio_poll_descriptor_st { + uint32_t type; + union { + int fd; + void *custom; + uintptr_t custom_ui; + SSL *ssl; + } value; +} BIO_POLL_DESCRIPTOR; + /* * #define BIO_CONN_get_param_hostname BIO_ctrl */ @@ -428,10 +490,17 @@ struct bio_dgram_sctp_prinfo { # define BIO_C_SET_CONNECT_MODE 155 +# define BIO_C_SET_TFO 156 /* like BIO_C_SET_NBIO */ + +# define BIO_C_SET_SOCK_TYPE 157 +# define BIO_C_GET_SOCK_TYPE 158 +# define BIO_C_GET_DGRAM_BIO 159 + # define BIO_set_app_data(s,arg) BIO_set_ex_data(s,0,arg) # define BIO_get_app_data(s) BIO_get_ex_data(s,0) -# define BIO_set_nbio(b,n) BIO_ctrl(b,BIO_C_SET_NBIO,(n),NULL) +# define BIO_set_nbio(b,n) BIO_ctrl(b,BIO_C_SET_NBIO,(n),NULL) +# define BIO_set_tfo(b,n) BIO_ctrl(b,BIO_C_SET_TFO,(n),NULL) # ifndef OPENSSL_NO_SOCK /* IP families we support, for BIO_s_connect() and BIO_s_accept() */ @@ -452,7 +521,11 @@ struct bio_dgram_sctp_prinfo { # define BIO_get_conn_port(b) ((const char *)BIO_ptr_ctrl(b,BIO_C_GET_CONNECT,1)) # define BIO_get_conn_address(b) ((const BIO_ADDR *)BIO_ptr_ctrl(b,BIO_C_GET_CONNECT,2)) # define BIO_get_conn_ip_family(b) BIO_ctrl(b,BIO_C_GET_CONNECT,3,NULL) +# define BIO_get_conn_mode(b) BIO_ctrl(b,BIO_C_GET_CONNECT,4,NULL) # define BIO_set_conn_mode(b,n) BIO_ctrl(b,BIO_C_SET_CONNECT_MODE,(n),NULL) +# define BIO_set_sock_type(b,t) BIO_ctrl(b,BIO_C_SET_SOCK_TYPE,(t),NULL) +# define BIO_get_sock_type(b) BIO_ctrl(b,BIO_C_GET_SOCK_TYPE,0,NULL) +# define BIO_get0_dgram_bio(b, p) BIO_ctrl(b,BIO_C_GET_DGRAM_BIO,0,(void *)(BIO **)(p)) /* BIO_s_accept() */ # define BIO_set_accept_name(b,name) BIO_ctrl(b,BIO_C_SET_ACCEPT,0, \ @@ -469,6 +542,7 @@ struct bio_dgram_sctp_prinfo { (char *)(bio)) # define BIO_set_accept_ip_family(b,f) BIO_int_ctrl(b,BIO_C_SET_ACCEPT,4,f) # define BIO_get_accept_ip_family(b) BIO_ctrl(b,BIO_C_GET_ACCEPT,4,NULL) +# define BIO_set_tfo_accept(b,n) BIO_ctrl(b,BIO_C_SET_ACCEPT,5,(n)?(void *)"a":NULL) /* Aliases kept for backward compatibility */ # define BIO_BIND_NORMAL 0 @@ -596,8 +670,32 @@ int BIO_ctrl_reset_read_request(BIO *b); (int)BIO_ctrl(b, BIO_CTRL_DGRAM_GET_PEER, 0, (char *)(peer)) # define BIO_dgram_set_peer(b,peer) \ (int)BIO_ctrl(b, BIO_CTRL_DGRAM_SET_PEER, 0, (char *)(peer)) +# define BIO_dgram_detect_peer_addr(b,peer) \ + (int)BIO_ctrl(b, BIO_CTRL_DGRAM_DETECT_PEER_ADDR, 0, (char *)(peer)) # define BIO_dgram_get_mtu_overhead(b) \ (unsigned int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_MTU_OVERHEAD, 0, NULL) +# define BIO_dgram_get_local_addr_cap(b) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_LOCAL_ADDR_CAP, 0, NULL) +# define BIO_dgram_get_local_addr_enable(b, penable) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_LOCAL_ADDR_ENABLE, 0, (char *)(penable)) +# define BIO_dgram_set_local_addr_enable(b, enable) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET_LOCAL_ADDR_ENABLE, (enable), NULL) +# define BIO_dgram_get_effective_caps(b) \ + (uint32_t)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_EFFECTIVE_CAPS, 0, NULL) +# define BIO_dgram_get_caps(b) \ + (uint32_t)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_CAPS, 0, NULL) +# define BIO_dgram_set_caps(b, caps) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET_CAPS, (long)(caps), NULL) +# define BIO_dgram_get_no_trunc(b) \ + (unsigned int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_NO_TRUNC, 0, NULL) +# define BIO_dgram_set_no_trunc(b, enable) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET_NO_TRUNC, (enable), NULL) +# define BIO_dgram_get_mtu(b) \ + (unsigned int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_MTU, 0, NULL) +# define BIO_dgram_set_mtu(b, mtu) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET_MTU, (mtu), NULL) +# define BIO_dgram_set0_local_addr(b, addr) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET0_LOCAL_ADDR, 0, (addr)) /* ctrl macros for BIO_f_prefix */ # define BIO_set_prefix(b,p) BIO_ctrl((b), BIO_CTRL_SET_PREFIX, 0, (void *)(p)) @@ -640,10 +738,18 @@ void BIO_vfree(BIO *a); int BIO_up_ref(BIO *a); int BIO_read(BIO *b, void *data, int dlen); int BIO_read_ex(BIO *b, void *data, size_t dlen, size_t *readbytes); +__owur int BIO_recvmmsg(BIO *b, BIO_MSG *msg, + size_t stride, size_t num_msg, uint64_t flags, + size_t *msgs_processed); int BIO_gets(BIO *bp, char *buf, int size); int BIO_get_line(BIO *bio, char *buf, int size); int BIO_write(BIO *b, const void *data, int dlen); int BIO_write_ex(BIO *b, const void *data, size_t dlen, size_t *written); +__owur int BIO_sendmmsg(BIO *b, BIO_MSG *msg, + size_t stride, size_t num_msg, uint64_t flags, + size_t *msgs_processed); +__owur int BIO_get_rpoll_descriptor(BIO *b, BIO_POLL_DESCRIPTOR *desc); +__owur int BIO_get_wpoll_descriptor(BIO *b, BIO_POLL_DESCRIPTOR *desc); int BIO_puts(BIO *bp, const char *buf); int BIO_indent(BIO *b, int indent, int max); long BIO_ctrl(BIO *bp, int cmd, long larg, void *parg); @@ -667,6 +773,9 @@ int BIO_nwrite0(BIO *bio, char **buf); int BIO_nwrite(BIO *bio, char **buf, int num); const BIO_METHOD *BIO_s_mem(void); +# ifndef OPENSSL_NO_DGRAM +const BIO_METHOD *BIO_s_dgram_mem(void); +# endif const BIO_METHOD *BIO_s_secmem(void); BIO *BIO_new_mem_buf(const void *buf, int len); # ifndef OPENSSL_NO_SOCK @@ -686,6 +795,7 @@ const BIO_METHOD *BIO_f_nbio_test(void); const BIO_METHOD *BIO_f_prefix(void); const BIO_METHOD *BIO_s_core(void); # ifndef OPENSSL_NO_DGRAM +const BIO_METHOD *BIO_s_dgram_pair(void); const BIO_METHOD *BIO_s_datagram(void); int BIO_dgram_non_fatal_error(int error); BIO *BIO_new_dgram(int fd, int close_flag); @@ -704,6 +814,7 @@ int BIO_dgram_sctp_msg_waiting(BIO *b); # ifndef OPENSSL_NO_SOCK int BIO_sock_should_retry(int i); int BIO_sock_non_fatal_error(int error); +int BIO_err_is_non_fatal(unsigned int errcode); int BIO_socket_wait(int fd, int for_read, time_t max_time); # endif int BIO_wait(BIO *bio, time_t max_time, unsigned int nap_milliseconds); @@ -726,6 +837,8 @@ int BIO_hex_string(BIO *out, int indent, int width, const void *data, # ifndef OPENSSL_NO_SOCK BIO_ADDR *BIO_ADDR_new(void); +int BIO_ADDR_copy(BIO_ADDR *dst, const BIO_ADDR *src); +BIO_ADDR *BIO_ADDR_dup(const BIO_ADDR *ap); int BIO_ADDR_rawmake(BIO_ADDR *ap, int family, const void *where, size_t wherelen, unsigned short port); void BIO_ADDR_free(BIO_ADDR *); @@ -788,6 +901,7 @@ int BIO_sock_info(int sock, # define BIO_SOCK_KEEPALIVE 0x04 # define BIO_SOCK_NONBLOCK 0x08 # define BIO_SOCK_NODELAY 0x10 +# define BIO_SOCK_TFO 0x20 int BIO_socket(int domain, int socktype, int protocol, int options); int BIO_connect(int sock, const BIO_ADDR *addr, int options); @@ -805,6 +919,11 @@ BIO *BIO_new_fd(int fd, int close_flag); int BIO_new_bio_pair(BIO **bio1, size_t writebuf1, BIO **bio2, size_t writebuf2); +# ifndef OPENSSL_NO_DGRAM +int BIO_new_bio_dgram_pair(BIO **bio1, size_t writebuf1, + BIO **bio2, size_t writebuf2); +# endif + /* * If successful, returns 1 and in *bio1, *bio2 two BIO pair endpoints. * Otherwise returns 0 and sets *bio1 and *bio2 to NULL. Size 0 uses default @@ -849,38 +968,54 @@ ossl_bio__attr__((__format__(ossl_bio__printf__, 3, 0))); BIO_METHOD *BIO_meth_new(int type, const char *name); void BIO_meth_free(BIO_METHOD *biom); -int (*BIO_meth_get_write(const BIO_METHOD *biom)) (BIO *, const char *, int); -int (*BIO_meth_get_write_ex(const BIO_METHOD *biom)) (BIO *, const char *, size_t, - size_t *); int BIO_meth_set_write(BIO_METHOD *biom, int (*write) (BIO *, const char *, int)); int BIO_meth_set_write_ex(BIO_METHOD *biom, int (*bwrite) (BIO *, const char *, size_t, size_t *)); -int (*BIO_meth_get_read(const BIO_METHOD *biom)) (BIO *, char *, int); -int (*BIO_meth_get_read_ex(const BIO_METHOD *biom)) (BIO *, char *, size_t, size_t *); +int BIO_meth_set_sendmmsg(BIO_METHOD *biom, + int (*f) (BIO *, BIO_MSG *, size_t, size_t, + uint64_t, size_t *)); int BIO_meth_set_read(BIO_METHOD *biom, int (*read) (BIO *, char *, int)); int BIO_meth_set_read_ex(BIO_METHOD *biom, int (*bread) (BIO *, char *, size_t, size_t *)); -int (*BIO_meth_get_puts(const BIO_METHOD *biom)) (BIO *, const char *); +int BIO_meth_set_recvmmsg(BIO_METHOD *biom, + int (*f) (BIO *, BIO_MSG *, size_t, size_t, + uint64_t, size_t *)); int BIO_meth_set_puts(BIO_METHOD *biom, int (*puts) (BIO *, const char *)); -int (*BIO_meth_get_gets(const BIO_METHOD *biom)) (BIO *, char *, int); int BIO_meth_set_gets(BIO_METHOD *biom, int (*ossl_gets) (BIO *, char *, int)); -long (*BIO_meth_get_ctrl(const BIO_METHOD *biom)) (BIO *, int, long, void *); int BIO_meth_set_ctrl(BIO_METHOD *biom, long (*ctrl) (BIO *, int, long, void *)); -int (*BIO_meth_get_create(const BIO_METHOD *bion)) (BIO *); int BIO_meth_set_create(BIO_METHOD *biom, int (*create) (BIO *)); -int (*BIO_meth_get_destroy(const BIO_METHOD *biom)) (BIO *); int BIO_meth_set_destroy(BIO_METHOD *biom, int (*destroy) (BIO *)); -long (*BIO_meth_get_callback_ctrl(const BIO_METHOD *biom)) - (BIO *, int, BIO_info_cb *); int BIO_meth_set_callback_ctrl(BIO_METHOD *biom, long (*callback_ctrl) (BIO *, int, BIO_info_cb *)); - +# ifndef OPENSSL_NO_DEPRECATED_3_5 +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_write(const BIO_METHOD *biom)) (BIO *, const char *, + int); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_write_ex(const BIO_METHOD *biom)) (BIO *, const char *, + size_t, size_t *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_sendmmsg(const BIO_METHOD *biom))(BIO *, BIO_MSG *, + size_t, size_t, + uint64_t, size_t *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_read(const BIO_METHOD *biom)) (BIO *, char *, int); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_read_ex(const BIO_METHOD *biom)) (BIO *, char *, + size_t, size_t *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_recvmmsg(const BIO_METHOD *biom))(BIO *, BIO_MSG *, + size_t, size_t, + uint64_t, size_t *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_puts(const BIO_METHOD *biom)) (BIO *, const char *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_gets(const BIO_METHOD *biom)) (BIO *, char *, int); +OSSL_DEPRECATEDIN_3_5 long (*BIO_meth_get_ctrl(const BIO_METHOD *biom)) (BIO *, int, + long, void *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_create(const BIO_METHOD *bion)) (BIO *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_destroy(const BIO_METHOD *biom)) (BIO *); +OSSL_DEPRECATEDIN_3_5 long (*BIO_meth_get_callback_ctrl(const BIO_METHOD *biom)) (BIO *, int, + BIO_info_cb *); +# endif # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/BSD-x86/no-asm/include/openssl/cmp.h b/deps/openssl/config/archs/BSD-x86/no-asm/include/openssl/cmp.h index 49825570d8c303..05aed3029d594c 100644 --- a/deps/openssl/config/archs/BSD-x86/no-asm/include/openssl/cmp.h +++ b/deps/openssl/config/archs/BSD-x86/no-asm/include/openssl/cmp.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/cmp.h.in * - * Copyright 2007-2023 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2007-2024 The OpenSSL Project Authors. All Rights Reserved. * Copyright Nokia 2007-2019 * Copyright Siemens AG 2015-2019 * @@ -35,7 +35,9 @@ extern "C" { # endif -# define OSSL_CMP_PVNO 2 +# define OSSL_CMP_PVNO_2 2 +# define OSSL_CMP_PVNO_3 3 +# define OSSL_CMP_PVNO OSSL_CMP_PVNO_2 /* v2 is the default */ /*- * PKIFailureInfo ::= BIT STRING { @@ -137,7 +139,6 @@ extern "C" { # if OSSL_CMP_PKIFAILUREINFO_MAX_BIT_PATTERN > INT_MAX # error CMP_PKIFAILUREINFO_MAX bit pattern does not fit in type int # endif - typedef ASN1_BIT_STRING OSSL_CMP_PKIFAILUREINFO; # define OSSL_CMP_CTX_FAILINFO_badAlg (1 << 0) @@ -203,8 +204,8 @@ typedef ASN1_BIT_STRING OSSL_CMP_PKIFAILUREINFO; # define OSSL_CMP_PKISTATUS_revocationWarning 4 # define OSSL_CMP_PKISTATUS_revocationNotification 5 # define OSSL_CMP_PKISTATUS_keyUpdateWarning 6 - typedef ASN1_INTEGER OSSL_CMP_PKISTATUS; + DECLARE_ASN1_ITEM(OSSL_CMP_PKISTATUS) # define OSSL_CMP_CERTORENCCERT_CERTIFICATE 0 @@ -274,6 +275,46 @@ SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CMP_ITAV, OSSL_CMP_ITAV, OSSL_CMP_ITAV) #define sk_OSSL_CMP_ITAV_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_CMP_ITAV) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_CMP_ITAV_sk_type(sk), ossl_check_OSSL_CMP_ITAV_copyfunc_type(copyfunc), ossl_check_OSSL_CMP_ITAV_freefunc_type(freefunc))) #define sk_OSSL_CMP_ITAV_set_cmp_func(sk, cmp) ((sk_OSSL_CMP_ITAV_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CMP_ITAV_sk_type(sk), ossl_check_OSSL_CMP_ITAV_compfunc_type(cmp))) + +typedef struct ossl_cmp_crlstatus_st OSSL_CMP_CRLSTATUS; +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CMP_CRLSTATUS, OSSL_CMP_CRLSTATUS, OSSL_CMP_CRLSTATUS) +#define sk_OSSL_CMP_CRLSTATUS_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_value(sk, idx) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_value(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk), (idx))) +#define sk_OSSL_CMP_CRLSTATUS_new(cmp) ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_new(ossl_check_OSSL_CMP_CRLSTATUS_compfunc_type(cmp))) +#define sk_OSSL_CMP_CRLSTATUS_new_null() ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_new_null()) +#define sk_OSSL_CMP_CRLSTATUS_new_reserve(cmp, n) ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_CMP_CRLSTATUS_compfunc_type(cmp), (n))) +#define sk_OSSL_CMP_CRLSTATUS_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), (n)) +#define sk_OSSL_CMP_CRLSTATUS_free(sk) OPENSSL_sk_free(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_delete(sk, i) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_delete(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), (i))) +#define sk_OSSL_CMP_CRLSTATUS_delete_ptr(sk, ptr) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr))) +#define sk_OSSL_CMP_CRLSTATUS_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr)) +#define sk_OSSL_CMP_CRLSTATUS_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr)) +#define sk_OSSL_CMP_CRLSTATUS_pop(sk) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_pop(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk))) +#define sk_OSSL_CMP_CRLSTATUS_shift(sk) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_shift(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk))) +#define sk_OSSL_CMP_CRLSTATUS_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk),ossl_check_OSSL_CMP_CRLSTATUS_freefunc_type(freefunc)) +#define sk_OSSL_CMP_CRLSTATUS_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr), (idx)) +#define sk_OSSL_CMP_CRLSTATUS_set(sk, idx, ptr) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_set(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), (idx), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr))) +#define sk_OSSL_CMP_CRLSTATUS_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr)) +#define sk_OSSL_CMP_CRLSTATUS_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr)) +#define sk_OSSL_CMP_CRLSTATUS_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr), pnum) +#define sk_OSSL_CMP_CRLSTATUS_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_dup(sk) ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_dup(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk))) +#define sk_OSSL_CMP_CRLSTATUS_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_copyfunc_type(copyfunc), ossl_check_OSSL_CMP_CRLSTATUS_freefunc_type(freefunc))) +#define sk_OSSL_CMP_CRLSTATUS_set_cmp_func(sk, cmp) ((sk_OSSL_CMP_CRLSTATUS_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_compfunc_type(cmp))) + + +typedef OSSL_CRMF_ATTRIBUTETYPEANDVALUE OSSL_CMP_ATAV; +# define OSSL_CMP_ATAV_free OSSL_CRMF_ATTRIBUTETYPEANDVALUE_free +typedef STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) OSSL_CMP_ATAVS; +DECLARE_ASN1_FUNCTIONS(OSSL_CMP_ATAVS) +# define stack_st_OSSL_CMP_ATAV stack_st_OSSL_CRMF_ATTRIBUTETYPEANDVALUE +# define sk_OSSL_CMP_ATAV_num sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_num +# define sk_OSSL_CMP_ATAV_value sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_value +# define sk_OSSL_CMP_ATAV_push sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_push +# define sk_OSSL_CMP_ATAV_pop_free sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_pop_free + typedef struct ossl_cmp_revrepcontent_st OSSL_CMP_REVREPCONTENT; typedef struct ossl_cmp_pkisi_st OSSL_CMP_PKISI; DECLARE_ASN1_FUNCTIONS(OSSL_CMP_PKISI) @@ -375,21 +416,75 @@ void OSSL_CMP_ITAV_set0(OSSL_CMP_ITAV *itav, ASN1_OBJECT *type, ASN1_TYPE *value); ASN1_OBJECT *OSSL_CMP_ITAV_get0_type(const OSSL_CMP_ITAV *itav); ASN1_TYPE *OSSL_CMP_ITAV_get0_value(const OSSL_CMP_ITAV *itav); -int OSSL_CMP_ITAV_push0_stack_item(STACK_OF(OSSL_CMP_ITAV) **itav_sk_p, +int OSSL_CMP_ITAV_push0_stack_item(STACK_OF(OSSL_CMP_ITAV) **sk_p, OSSL_CMP_ITAV *itav); void OSSL_CMP_ITAV_free(OSSL_CMP_ITAV *itav); + +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new0_certProfile(STACK_OF(ASN1_UTF8STRING) + *certProfile); +int OSSL_CMP_ITAV_get0_certProfile(const OSSL_CMP_ITAV *itav, + STACK_OF(ASN1_UTF8STRING) **out); +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new_caCerts(const STACK_OF(X509) *caCerts); +int OSSL_CMP_ITAV_get0_caCerts(const OSSL_CMP_ITAV *itav, STACK_OF(X509) **out); + +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new_rootCaCert(const X509 *rootCaCert); +int OSSL_CMP_ITAV_get0_rootCaCert(const OSSL_CMP_ITAV *itav, X509 **out); +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new_rootCaKeyUpdate(const X509 *newWithNew, + const X509 *newWithOld, + const X509 *oldWithNew); +int OSSL_CMP_ITAV_get0_rootCaKeyUpdate(const OSSL_CMP_ITAV *itav, + X509 **newWithNew, + X509 **newWithOld, + X509 **oldWithNew); + +OSSL_CMP_CRLSTATUS *OSSL_CMP_CRLSTATUS_create(const X509_CRL *crl, + const X509 *cert, int only_DN); +OSSL_CMP_CRLSTATUS *OSSL_CMP_CRLSTATUS_new1(const DIST_POINT_NAME *dpn, + const GENERAL_NAMES *issuer, + const ASN1_TIME *thisUpdate); +int OSSL_CMP_CRLSTATUS_get0(const OSSL_CMP_CRLSTATUS *crlstatus, + DIST_POINT_NAME **dpn, GENERAL_NAMES **issuer, + ASN1_TIME **thisUpdate); +void OSSL_CMP_CRLSTATUS_free(OSSL_CMP_CRLSTATUS *crlstatus); +OSSL_CMP_ITAV +*OSSL_CMP_ITAV_new0_crlStatusList(STACK_OF(OSSL_CMP_CRLSTATUS) *crlStatusList); +int OSSL_CMP_ITAV_get0_crlStatusList(const OSSL_CMP_ITAV *itav, + STACK_OF(OSSL_CMP_CRLSTATUS) **out); +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new_crls(const X509_CRL *crls); +int OSSL_CMP_ITAV_get0_crls(const OSSL_CMP_ITAV *it, STACK_OF(X509_CRL) **out); +OSSL_CMP_ITAV +*OSSL_CMP_ITAV_new0_certReqTemplate(OSSL_CRMF_CERTTEMPLATE *certTemplate, + OSSL_CMP_ATAVS *keySpec); +int OSSL_CMP_ITAV_get1_certReqTemplate(const OSSL_CMP_ITAV *itav, + OSSL_CRMF_CERTTEMPLATE **certTemplate, + OSSL_CMP_ATAVS **keySpec); + +OSSL_CMP_ATAV *OSSL_CMP_ATAV_create(ASN1_OBJECT *type, ASN1_TYPE *value); +void OSSL_CMP_ATAV_set0(OSSL_CMP_ATAV *itav, ASN1_OBJECT *type, + ASN1_TYPE *value); +ASN1_OBJECT *OSSL_CMP_ATAV_get0_type(const OSSL_CMP_ATAV *itav); +ASN1_TYPE *OSSL_CMP_ATAV_get0_value(const OSSL_CMP_ATAV *itav); +OSSL_CMP_ATAV *OSSL_CMP_ATAV_new_algId(const X509_ALGOR *alg); +X509_ALGOR *OSSL_CMP_ATAV_get0_algId(const OSSL_CMP_ATAV *atav); +OSSL_CMP_ATAV *OSSL_CMP_ATAV_new_rsaKeyLen(int len); +int OSSL_CMP_ATAV_get_rsaKeyLen(const OSSL_CMP_ATAV *atav); +int OSSL_CMP_ATAV_push1(OSSL_CMP_ATAVS **sk_p, const OSSL_CMP_ATAV *atav); + void OSSL_CMP_MSG_free(OSSL_CMP_MSG *msg); /* from cmp_ctx.c */ OSSL_CMP_CTX *OSSL_CMP_CTX_new(OSSL_LIB_CTX *libctx, const char *propq); void OSSL_CMP_CTX_free(OSSL_CMP_CTX *ctx); int OSSL_CMP_CTX_reinit(OSSL_CMP_CTX *ctx); +OSSL_LIB_CTX *OSSL_CMP_CTX_get0_libctx(const OSSL_CMP_CTX *ctx); +const char *OSSL_CMP_CTX_get0_propq(const OSSL_CMP_CTX *ctx); /* CMP general options: */ # define OSSL_CMP_OPT_LOG_VERBOSITY 0 /* CMP transfer options: */ -# define OSSL_CMP_OPT_KEEP_ALIVE 10 -# define OSSL_CMP_OPT_MSG_TIMEOUT 11 +# define OSSL_CMP_OPT_KEEP_ALIVE 10 +# define OSSL_CMP_OPT_MSG_TIMEOUT 11 # define OSSL_CMP_OPT_TOTAL_TIMEOUT 12 +# define OSSL_CMP_OPT_USE_TLS 13 /* CMP request options: */ # define OSSL_CMP_OPT_VALIDITY_DAYS 20 # define OSSL_CMP_OPT_SUBJECTALTNAME_NODEFAULT 21 @@ -407,6 +502,7 @@ int OSSL_CMP_CTX_reinit(OSSL_CMP_CTX *ctx); # define OSSL_CMP_OPT_DIGEST_ALGNID 34 # define OSSL_CMP_OPT_IGNORE_KEYUSAGE 35 # define OSSL_CMP_OPT_PERMIT_TA_IN_EXTRACERTS_FOR_IR 36 +# define OSSL_CMP_OPT_NO_CACHE_EXTRACERTS 37 int OSSL_CMP_CTX_set_option(OSSL_CMP_CTX *ctx, int opt, int val); int OSSL_CMP_CTX_get_option(const OSSL_CMP_CTX *ctx, int opt); /* CMP-specific callback for logging and outputting the error queue: */ @@ -420,9 +516,11 @@ int OSSL_CMP_CTX_set1_server(OSSL_CMP_CTX *ctx, const char *address); int OSSL_CMP_CTX_set_serverPort(OSSL_CMP_CTX *ctx, int port); int OSSL_CMP_CTX_set1_proxy(OSSL_CMP_CTX *ctx, const char *name); int OSSL_CMP_CTX_set1_no_proxy(OSSL_CMP_CTX *ctx, const char *names); +# ifndef OPENSSL_NO_HTTP int OSSL_CMP_CTX_set_http_cb(OSSL_CMP_CTX *ctx, OSSL_HTTP_bio_cb_t cb); int OSSL_CMP_CTX_set_http_cb_arg(OSSL_CMP_CTX *ctx, void *arg); void *OSSL_CMP_CTX_get_http_cb_arg(const OSSL_CMP_CTX *ctx); +# endif typedef OSSL_CMP_MSG *(*OSSL_CMP_transfer_cb_t) (OSSL_CMP_CTX *ctx, const OSSL_CMP_MSG *req); int OSSL_CMP_CTX_set_transfer_cb(OSSL_CMP_CTX *ctx, OSSL_CMP_transfer_cb_t cb); @@ -432,7 +530,9 @@ void *OSSL_CMP_CTX_get_transfer_cb_arg(const OSSL_CMP_CTX *ctx); int OSSL_CMP_CTX_set1_srvCert(OSSL_CMP_CTX *ctx, X509 *cert); int OSSL_CMP_CTX_set1_expected_sender(OSSL_CMP_CTX *ctx, const X509_NAME *name); int OSSL_CMP_CTX_set0_trustedStore(OSSL_CMP_CTX *ctx, X509_STORE *store); +# define OSSL_CMP_CTX_set0_trusted OSSL_CMP_CTX_set0_trustedStore X509_STORE *OSSL_CMP_CTX_get0_trustedStore(const OSSL_CMP_CTX *ctx); +# define OSSL_CMP_CTX_get0_trusted OSSL_CMP_CTX_get0_trustedStore int OSSL_CMP_CTX_set1_untrusted(OSSL_CMP_CTX *ctx, STACK_OF(X509) *certs); STACK_OF(X509) *OSSL_CMP_CTX_get0_untrusted(const OSSL_CMP_CTX *ctx); /* client authentication: */ @@ -448,12 +548,15 @@ int OSSL_CMP_CTX_set1_secretValue(OSSL_CMP_CTX *ctx, int OSSL_CMP_CTX_set1_recipient(OSSL_CMP_CTX *ctx, const X509_NAME *name); int OSSL_CMP_CTX_push0_geninfo_ITAV(OSSL_CMP_CTX *ctx, OSSL_CMP_ITAV *itav); int OSSL_CMP_CTX_reset_geninfo_ITAVs(OSSL_CMP_CTX *ctx); +STACK_OF(OSSL_CMP_ITAV) + *OSSL_CMP_CTX_get0_geninfo_ITAVs(const OSSL_CMP_CTX *ctx); int OSSL_CMP_CTX_set1_extraCertsOut(OSSL_CMP_CTX *ctx, STACK_OF(X509) *extraCertsOut); /* certificate template: */ int OSSL_CMP_CTX_set0_newPkey(OSSL_CMP_CTX *ctx, int priv, EVP_PKEY *pkey); EVP_PKEY *OSSL_CMP_CTX_get0_newPkey(const OSSL_CMP_CTX *ctx, int priv); int OSSL_CMP_CTX_set1_issuer(OSSL_CMP_CTX *ctx, const X509_NAME *name); +int OSSL_CMP_CTX_set1_serialNumber(OSSL_CMP_CTX *ctx, const ASN1_INTEGER *sn); int OSSL_CMP_CTX_set1_subjectName(OSSL_CMP_CTX *ctx, const X509_NAME *name); int OSSL_CMP_CTX_push1_subjectAltName(OSSL_CMP_CTX *ctx, const GENERAL_NAME *name); @@ -477,6 +580,7 @@ int OSSL_CMP_CTX_get_status(const OSSL_CMP_CTX *ctx); OSSL_CMP_PKIFREETEXT *OSSL_CMP_CTX_get0_statusString(const OSSL_CMP_CTX *ctx); int OSSL_CMP_CTX_get_failInfoCode(const OSSL_CMP_CTX *ctx); # define OSSL_CMP_PKISI_BUFLEN 1024 +X509 *OSSL_CMP_CTX_get0_validatedSrvCert(const OSSL_CMP_CTX *ctx); X509 *OSSL_CMP_CTX_get0_newCert(const OSSL_CMP_CTX *ctx); STACK_OF(X509) *OSSL_CMP_CTX_get1_newChain(const OSSL_CMP_CTX *ctx); STACK_OF(X509) *OSSL_CMP_CTX_get1_caPubs(const OSSL_CMP_CTX *ctx); @@ -498,10 +602,13 @@ OSSL_CMP_STATUSINFO_new(int status, int fail_info, const char *text); ASN1_OCTET_STRING *OSSL_CMP_HDR_get0_transactionID(const OSSL_CMP_PKIHEADER *hdr); ASN1_OCTET_STRING *OSSL_CMP_HDR_get0_recipNonce(const OSSL_CMP_PKIHEADER *hdr); +STACK_OF(OSSL_CMP_ITAV) + *OSSL_CMP_HDR_get0_geninfo_ITAVs(const OSSL_CMP_PKIHEADER *hdr); /* from cmp_msg.c */ OSSL_CMP_PKIHEADER *OSSL_CMP_MSG_get0_header(const OSSL_CMP_MSG *msg); int OSSL_CMP_MSG_get_bodytype(const OSSL_CMP_MSG *msg); +X509_PUBKEY *OSSL_CMP_MSG_get0_certreq_publickey(const OSSL_CMP_MSG *msg); int OSSL_CMP_MSG_update_transactionID(OSSL_CMP_CTX *ctx, OSSL_CMP_MSG *msg); int OSSL_CMP_MSG_update_recipNonce(OSSL_CMP_CTX *ctx, OSSL_CMP_MSG *msg); OSSL_CRMF_MSG *OSSL_CMP_CTX_setup_CRM(OSSL_CMP_CTX *ctx, int for_KUR, int rid); @@ -517,8 +624,10 @@ int OSSL_CMP_validate_cert_path(const OSSL_CMP_CTX *ctx, X509_STORE *trusted_store, X509 *cert); /* from cmp_http.c */ +# ifndef OPENSSL_NO_HTTP OSSL_CMP_MSG *OSSL_CMP_MSG_http_perform(OSSL_CMP_CTX *ctx, const OSSL_CMP_MSG *req); +# endif /* from cmp_server.c */ typedef struct ossl_cmp_srv_ctx_st OSSL_CMP_SRV_CTX; @@ -561,6 +670,13 @@ int OSSL_CMP_SRV_CTX_init(OSSL_CMP_SRV_CTX *srv_ctx, void *custom_ctx, OSSL_CMP_SRV_error_cb_t process_error, OSSL_CMP_SRV_certConf_cb_t process_certConf, OSSL_CMP_SRV_pollReq_cb_t process_pollReq); +typedef int (*OSSL_CMP_SRV_delayed_delivery_cb_t)(OSSL_CMP_SRV_CTX *srv_ctx, + const OSSL_CMP_MSG *req); +typedef int (*OSSL_CMP_SRV_clean_transaction_cb_t)(OSSL_CMP_SRV_CTX *srv_ctx, + const ASN1_OCTET_STRING *id); +int OSSL_CMP_SRV_CTX_init_trans(OSSL_CMP_SRV_CTX *srv_ctx, + OSSL_CMP_SRV_delayed_delivery_cb_t delay, + OSSL_CMP_SRV_clean_transaction_cb_t clean); OSSL_CMP_CTX *OSSL_CMP_SRV_CTX_get0_cmp_ctx(const OSSL_CMP_SRV_CTX *srv_ctx); void *OSSL_CMP_SRV_CTX_get0_custom_ctx(const OSSL_CMP_SRV_CTX *srv_ctx); int OSSL_CMP_SRV_CTX_set_send_unprotected_errors(OSSL_CMP_SRV_CTX *srv_ctx, @@ -577,6 +693,8 @@ X509 *OSSL_CMP_exec_certreq(OSSL_CMP_CTX *ctx, int req_type, # define OSSL_CMP_CR 2 # define OSSL_CMP_P10CR 4 # define OSSL_CMP_KUR 7 +# define OSSL_CMP_GENM 21 +# define OSSL_CMP_ERROR 23 # define OSSL_CMP_exec_IR_ses(ctx) \ OSSL_CMP_exec_certreq(ctx, OSSL_CMP_IR, NULL) # define OSSL_CMP_exec_CR_ses(ctx) \ @@ -590,6 +708,18 @@ int OSSL_CMP_try_certreq(OSSL_CMP_CTX *ctx, int req_type, int OSSL_CMP_exec_RR_ses(OSSL_CMP_CTX *ctx); STACK_OF(OSSL_CMP_ITAV) *OSSL_CMP_exec_GENM_ses(OSSL_CMP_CTX *ctx); +/* from cmp_genm.c */ +int OSSL_CMP_get1_caCerts(OSSL_CMP_CTX *ctx, STACK_OF(X509) **out); +int OSSL_CMP_get1_rootCaKeyUpdate(OSSL_CMP_CTX *ctx, + const X509 *oldWithOld, X509 **newWithNew, + X509 **newWithOld, X509 **oldWithNew); +int OSSL_CMP_get1_crlUpdate(OSSL_CMP_CTX *ctx, const X509 *crlcert, + const X509_CRL *last_crl, + X509_CRL **crl); +int OSSL_CMP_get1_certReqTemplate(OSSL_CMP_CTX *ctx, + OSSL_CRMF_CERTTEMPLATE **certTemplate, + OSSL_CMP_ATAVS **keySpec); + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/BSD-x86/no-asm/include/openssl/cms.h b/deps/openssl/config/archs/BSD-x86/no-asm/include/openssl/cms.h index 3b453e6a2187a2..63afab563557b0 100644 --- a/deps/openssl/config/archs/BSD-x86/no-asm/include/openssl/cms.h +++ b/deps/openssl/config/archs/BSD-x86/no-asm/include/openssl/cms.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/cms.h.in * - * Copyright 2008-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2008-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -31,8 +31,10 @@ extern "C" { # endif +typedef struct CMS_EnvelopedData_st CMS_EnvelopedData; typedef struct CMS_ContentInfo_st CMS_ContentInfo; typedef struct CMS_SignerInfo_st CMS_SignerInfo; +typedef struct CMS_SignedData_st CMS_SignedData; typedef struct CMS_CertificateChoices CMS_CertificateChoices; typedef struct CMS_RevocationInfoChoice_st CMS_RevocationInfoChoice; typedef struct CMS_RecipientInfo_st CMS_RecipientInfo; @@ -147,10 +149,14 @@ SKM_DEFINE_STACK_OF_INTERNAL(CMS_RevocationInfoChoice, CMS_RevocationInfoChoice, #define sk_CMS_RevocationInfoChoice_set_cmp_func(sk, cmp) ((sk_CMS_RevocationInfoChoice_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_CMS_RevocationInfoChoice_sk_type(sk), ossl_check_CMS_RevocationInfoChoice_compfunc_type(cmp))) +DECLARE_ASN1_ITEM(CMS_EnvelopedData) +DECLARE_ASN1_ALLOC_FUNCTIONS(CMS_SignedData) DECLARE_ASN1_FUNCTIONS(CMS_ContentInfo) DECLARE_ASN1_FUNCTIONS(CMS_ReceiptRequest) DECLARE_ASN1_PRINT_FUNCTION(CMS_ContentInfo) +DECLARE_ASN1_DUP_FUNCTION(CMS_EnvelopedData) + CMS_ContentInfo *CMS_ContentInfo_new_ex(OSSL_LIB_CTX *libctx, const char *propq); # define CMS_SIGNERINFO_ISSUER_SERIAL 0 @@ -190,6 +196,7 @@ CMS_ContentInfo *CMS_ContentInfo_new_ex(OSSL_LIB_CTX *libctx, const char *propq) # define CMS_ASCIICRLF 0x80000 # define CMS_CADES 0x100000 # define CMS_USE_ORIGINATOR_KEYID 0x200000 +# define CMS_NO_SIGNING_TIME 0x400000 const ASN1_OBJECT *CMS_get0_type(const CMS_ContentInfo *cms); @@ -217,13 +224,16 @@ int SMIME_write_CMS(BIO *bio, CMS_ContentInfo *cms, BIO *data, int flags); int CMS_final(CMS_ContentInfo *cms, BIO *data, BIO *dcont, unsigned int flags); +int CMS_final_digest(CMS_ContentInfo *cms, + const unsigned char *md, unsigned int mdlen, BIO *dcont, + unsigned int flags); CMS_ContentInfo *CMS_sign(X509 *signcert, EVP_PKEY *pkey, STACK_OF(X509) *certs, BIO *data, unsigned int flags); CMS_ContentInfo *CMS_sign_ex(X509 *signcert, EVP_PKEY *pkey, STACK_OF(X509) *certs, BIO *data, - unsigned int flags, OSSL_LIB_CTX *ctx, + unsigned int flags, OSSL_LIB_CTX *libctx, const char *propq); CMS_ContentInfo *CMS_sign_receipt(CMS_SignerInfo *si, @@ -233,27 +243,26 @@ CMS_ContentInfo *CMS_sign_receipt(CMS_SignerInfo *si, int CMS_data(CMS_ContentInfo *cms, BIO *out, unsigned int flags); CMS_ContentInfo *CMS_data_create(BIO *in, unsigned int flags); CMS_ContentInfo *CMS_data_create_ex(BIO *in, unsigned int flags, - OSSL_LIB_CTX *ctx, const char *propq); + OSSL_LIB_CTX *libctx, const char *propq); int CMS_digest_verify(CMS_ContentInfo *cms, BIO *dcont, BIO *out, unsigned int flags); CMS_ContentInfo *CMS_digest_create(BIO *in, const EVP_MD *md, unsigned int flags); CMS_ContentInfo *CMS_digest_create_ex(BIO *in, const EVP_MD *md, - unsigned int flags, OSSL_LIB_CTX *ctx, + unsigned int flags, OSSL_LIB_CTX *libctx, const char *propq); int CMS_EncryptedData_decrypt(CMS_ContentInfo *cms, const unsigned char *key, size_t keylen, BIO *dcont, BIO *out, unsigned int flags); - CMS_ContentInfo *CMS_EncryptedData_encrypt(BIO *in, const EVP_CIPHER *cipher, const unsigned char *key, size_t keylen, unsigned int flags); CMS_ContentInfo *CMS_EncryptedData_encrypt_ex(BIO *in, const EVP_CIPHER *cipher, const unsigned char *key, size_t keylen, unsigned int flags, - OSSL_LIB_CTX *ctx, + OSSL_LIB_CTX *libctx, const char *propq); int CMS_EncryptedData_set1_key(CMS_ContentInfo *cms, const EVP_CIPHER *ciph, @@ -272,7 +281,7 @@ CMS_ContentInfo *CMS_encrypt(STACK_OF(X509) *certs, BIO *in, const EVP_CIPHER *cipher, unsigned int flags); CMS_ContentInfo *CMS_encrypt_ex(STACK_OF(X509) *certs, BIO *in, const EVP_CIPHER *cipher, unsigned int flags, - OSSL_LIB_CTX *ctx, const char *propq); + OSSL_LIB_CTX *libctx, const char *propq); int CMS_decrypt(CMS_ContentInfo *cms, EVP_PKEY *pkey, X509 *cert, BIO *dcont, BIO *out, unsigned int flags); @@ -291,12 +300,16 @@ int CMS_RecipientInfo_type(CMS_RecipientInfo *ri); EVP_PKEY_CTX *CMS_RecipientInfo_get0_pkey_ctx(CMS_RecipientInfo *ri); CMS_ContentInfo *CMS_AuthEnvelopedData_create(const EVP_CIPHER *cipher); CMS_ContentInfo * -CMS_AuthEnvelopedData_create_ex(const EVP_CIPHER *cipher, OSSL_LIB_CTX *ctx, +CMS_AuthEnvelopedData_create_ex(const EVP_CIPHER *cipher, OSSL_LIB_CTX *libctx, const char *propq); CMS_ContentInfo *CMS_EnvelopedData_create(const EVP_CIPHER *cipher); CMS_ContentInfo *CMS_EnvelopedData_create_ex(const EVP_CIPHER *cipher, - OSSL_LIB_CTX *ctx, + OSSL_LIB_CTX *libctx, const char *propq); +BIO *CMS_EnvelopedData_decrypt(CMS_EnvelopedData *env, BIO *detached_data, + EVP_PKEY *pkey, X509 *cert, + ASN1_OCTET_STRING *secret, unsigned int flags, + OSSL_LIB_CTX *libctx, const char *propq); CMS_RecipientInfo *CMS_add1_recipient_cert(CMS_ContentInfo *cms, X509 *recip, unsigned int flags); @@ -385,6 +398,11 @@ ASN1_OCTET_STRING *CMS_SignerInfo_get0_signature(CMS_SignerInfo *si); int CMS_SignerInfo_sign(CMS_SignerInfo *si); int CMS_SignerInfo_verify(CMS_SignerInfo *si); int CMS_SignerInfo_verify_content(CMS_SignerInfo *si, BIO *chain); +BIO *CMS_SignedData_verify(CMS_SignedData *sd, BIO *detached_data, + STACK_OF(X509) *scerts, X509_STORE *store, + STACK_OF(X509) *extra, STACK_OF(X509_CRL) *crls, + unsigned int flags, + OSSL_LIB_CTX *libctx, const char *propq); int CMS_add_smimecap(CMS_SignerInfo *si, STACK_OF(X509_ALGOR) *algs); int CMS_add_simple_smimecap(STACK_OF(X509_ALGOR) **algs, @@ -441,7 +459,7 @@ CMS_ReceiptRequest *CMS_ReceiptRequest_create0_ex( unsigned char *id, int idlen, int allorfirst, STACK_OF(GENERAL_NAMES) *receiptList, STACK_OF(GENERAL_NAMES) *receiptsTo, - OSSL_LIB_CTX *ctx); + OSSL_LIB_CTX *libctx); int CMS_add1_ReceiptRequest(CMS_SignerInfo *si, CMS_ReceiptRequest *rr); void CMS_ReceiptRequest_get0_values(CMS_ReceiptRequest *rr, diff --git a/deps/openssl/config/archs/BSD-x86/no-asm/include/openssl/comp.h b/deps/openssl/config/archs/BSD-x86/no-asm/include/openssl/comp.h new file mode 100644 index 00000000000000..90e39511fe8d28 --- /dev/null +++ b/deps/openssl/config/archs/BSD-x86/no-asm/include/openssl/comp.h @@ -0,0 +1,98 @@ +/* + * Copyright 2015-2024 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + + +#ifndef OPENSSL_COMP_H +# define OPENSSL_COMP_H +# pragma once + +# include +# ifndef OPENSSL_NO_DEPRECATED_3_0 +# define HEADER_COMP_H +# endif + +# include + +# include +# include +# ifdef __cplusplus +extern "C" { +# endif + + + +# ifndef OPENSSL_NO_COMP + +COMP_CTX *COMP_CTX_new(COMP_METHOD *meth); +const COMP_METHOD *COMP_CTX_get_method(const COMP_CTX *ctx); +int COMP_CTX_get_type(const COMP_CTX* comp); +int COMP_get_type(const COMP_METHOD *meth); +const char *COMP_get_name(const COMP_METHOD *meth); +void COMP_CTX_free(COMP_CTX *ctx); + +int COMP_compress_block(COMP_CTX *ctx, unsigned char *out, int olen, + unsigned char *in, int ilen); +int COMP_expand_block(COMP_CTX *ctx, unsigned char *out, int olen, + unsigned char *in, int ilen); + +COMP_METHOD *COMP_zlib(void); +COMP_METHOD *COMP_zlib_oneshot(void); +COMP_METHOD *COMP_brotli(void); +COMP_METHOD *COMP_brotli_oneshot(void); +COMP_METHOD *COMP_zstd(void); +COMP_METHOD *COMP_zstd_oneshot(void); + +# ifndef OPENSSL_NO_DEPRECATED_1_1_0 +# define COMP_zlib_cleanup() while(0) continue +# endif + +# ifdef OPENSSL_BIO_H +const BIO_METHOD *BIO_f_zlib(void); +const BIO_METHOD *BIO_f_brotli(void); +const BIO_METHOD *BIO_f_zstd(void); +# endif + +# endif + +typedef struct ssl_comp_st SSL_COMP; + +SKM_DEFINE_STACK_OF_INTERNAL(SSL_COMP, SSL_COMP, SSL_COMP) +#define sk_SSL_COMP_num(sk) OPENSSL_sk_num(ossl_check_const_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_value(sk, idx) ((SSL_COMP *)OPENSSL_sk_value(ossl_check_const_SSL_COMP_sk_type(sk), (idx))) +#define sk_SSL_COMP_new(cmp) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new(ossl_check_SSL_COMP_compfunc_type(cmp))) +#define sk_SSL_COMP_new_null() ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new_null()) +#define sk_SSL_COMP_new_reserve(cmp, n) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new_reserve(ossl_check_SSL_COMP_compfunc_type(cmp), (n))) +#define sk_SSL_COMP_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_SSL_COMP_sk_type(sk), (n)) +#define sk_SSL_COMP_free(sk) OPENSSL_sk_free(ossl_check_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_zero(sk) OPENSSL_sk_zero(ossl_check_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_delete(sk, i) ((SSL_COMP *)OPENSSL_sk_delete(ossl_check_SSL_COMP_sk_type(sk), (i))) +#define sk_SSL_COMP_delete_ptr(sk, ptr) ((SSL_COMP *)OPENSSL_sk_delete_ptr(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr))) +#define sk_SSL_COMP_push(sk, ptr) OPENSSL_sk_push(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) +#define sk_SSL_COMP_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) +#define sk_SSL_COMP_pop(sk) ((SSL_COMP *)OPENSSL_sk_pop(ossl_check_SSL_COMP_sk_type(sk))) +#define sk_SSL_COMP_shift(sk) ((SSL_COMP *)OPENSSL_sk_shift(ossl_check_SSL_COMP_sk_type(sk))) +#define sk_SSL_COMP_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_SSL_COMP_sk_type(sk),ossl_check_SSL_COMP_freefunc_type(freefunc)) +#define sk_SSL_COMP_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr), (idx)) +#define sk_SSL_COMP_set(sk, idx, ptr) ((SSL_COMP *)OPENSSL_sk_set(ossl_check_SSL_COMP_sk_type(sk), (idx), ossl_check_SSL_COMP_type(ptr))) +#define sk_SSL_COMP_find(sk, ptr) OPENSSL_sk_find(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) +#define sk_SSL_COMP_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) +#define sk_SSL_COMP_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr), pnum) +#define sk_SSL_COMP_sort(sk) OPENSSL_sk_sort(ossl_check_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_dup(sk) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_dup(ossl_check_const_SSL_COMP_sk_type(sk))) +#define sk_SSL_COMP_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_deep_copy(ossl_check_const_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_copyfunc_type(copyfunc), ossl_check_SSL_COMP_freefunc_type(freefunc))) +#define sk_SSL_COMP_set_cmp_func(sk, cmp) ((sk_SSL_COMP_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_compfunc_type(cmp))) + + + +# ifdef __cplusplus +} +# endif +#endif diff --git a/deps/openssl/config/archs/BSD-x86/no-asm/include/openssl/conf.h b/deps/openssl/config/archs/BSD-x86/no-asm/include/openssl/conf.h index 44989929f6c84a..38576290bf641b 100644 --- a/deps/openssl/config/archs/BSD-x86/no-asm/include/openssl/conf.h +++ b/deps/openssl/config/archs/BSD-x86/no-asm/include/openssl/conf.h @@ -27,6 +27,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -65,7 +68,7 @@ SKM_DEFINE_STACK_OF_INTERNAL(CONF_VALUE, CONF_VALUE, CONF_VALUE) #define sk_CONF_VALUE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(CONF_VALUE) *)OPENSSL_sk_deep_copy(ossl_check_const_CONF_VALUE_sk_type(sk), ossl_check_CONF_VALUE_copyfunc_type(copyfunc), ossl_check_CONF_VALUE_freefunc_type(freefunc))) #define sk_CONF_VALUE_set_cmp_func(sk, cmp) ((sk_CONF_VALUE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_CONF_VALUE_sk_type(sk), ossl_check_CONF_VALUE_compfunc_type(cmp))) DEFINE_LHASH_OF_INTERNAL(CONF_VALUE); -#define lh_CONF_VALUE_new(hfn, cmp) ((LHASH_OF(CONF_VALUE) *)OPENSSL_LH_new(ossl_check_CONF_VALUE_lh_hashfunc_type(hfn), ossl_check_CONF_VALUE_lh_compfunc_type(cmp))) +#define lh_CONF_VALUE_new(hfn, cmp) ((LHASH_OF(CONF_VALUE) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new(ossl_check_CONF_VALUE_lh_hashfunc_type(hfn), ossl_check_CONF_VALUE_lh_compfunc_type(cmp)), lh_CONF_VALUE_hash_thunk, lh_CONF_VALUE_comp_thunk, lh_CONF_VALUE_doall_thunk, lh_CONF_VALUE_doall_arg_thunk)) #define lh_CONF_VALUE_free(lh) OPENSSL_LH_free(ossl_check_CONF_VALUE_lh_type(lh)) #define lh_CONF_VALUE_flush(lh) OPENSSL_LH_flush(ossl_check_CONF_VALUE_lh_type(lh)) #define lh_CONF_VALUE_insert(lh, ptr) ((CONF_VALUE *)OPENSSL_LH_insert(ossl_check_CONF_VALUE_lh_type(lh), ossl_check_CONF_VALUE_lh_plain_type(ptr))) diff --git a/deps/openssl/config/archs/BSD-x86/no-asm/include/openssl/configuration.h b/deps/openssl/config/archs/BSD-x86/no-asm/include/openssl/configuration.h index 27388be81a8c4f..ed28fb46de87ea 100644 --- a/deps/openssl/config/archs/BSD-x86/no-asm/include/openssl/configuration.h +++ b/deps/openssl/config/archs/BSD-x86/no-asm/include/openssl/configuration.h @@ -27,7 +27,7 @@ extern "C" { * OpenSSL was configured with the following options: */ -# define OPENSSL_CONFIGURED_API 30000 +# define OPENSSL_CONFIGURED_API 30500 # ifndef OPENSSL_RAND_SEED_OS # define OPENSSL_RAND_SEED_OS # endif @@ -43,6 +43,12 @@ extern "C" { # ifndef OPENSSL_NO_ASM # define OPENSSL_NO_ASM # endif +# ifndef OPENSSL_NO_BROTLI +# define OPENSSL_NO_BROTLI +# endif +# ifndef OPENSSL_NO_BROTLI_DYNAMIC +# define OPENSSL_NO_BROTLI_DYNAMIC +# endif # ifndef OPENSSL_NO_COMP # define OPENSSL_NO_COMP # endif @@ -52,6 +58,9 @@ extern "C" { # ifndef OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE # define OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE # endif +# ifndef OPENSSL_NO_DEMOS +# define OPENSSL_NO_DEMOS +# endif # ifndef OPENSSL_NO_EC_NISTP_64_GCC_128 # define OPENSSL_NO_EC_NISTP_64_GCC_128 # endif @@ -61,12 +70,24 @@ extern "C" { # ifndef OPENSSL_NO_EXTERNAL_TESTS # define OPENSSL_NO_EXTERNAL_TESTS # endif +# ifndef OPENSSL_NO_FIPS_JITTER +# define OPENSSL_NO_FIPS_JITTER +# endif # ifndef OPENSSL_NO_FUZZ_AFL # define OPENSSL_NO_FUZZ_AFL # endif # ifndef OPENSSL_NO_FUZZ_LIBFUZZER # define OPENSSL_NO_FUZZ_LIBFUZZER # endif +# ifndef OPENSSL_NO_H3DEMO +# define OPENSSL_NO_H3DEMO +# endif +# ifndef OPENSSL_NO_HQINTEROP +# define OPENSSL_NO_HQINTEROP +# endif +# ifndef OPENSSL_NO_JITTER +# define OPENSSL_NO_JITTER +# endif # ifndef OPENSSL_NO_KTLS # define OPENSSL_NO_KTLS # endif @@ -79,6 +100,9 @@ extern "C" { # ifndef OPENSSL_NO_MSAN # define OPENSSL_NO_MSAN # endif +# ifndef OPENSSL_NO_PIE +# define OPENSSL_NO_PIE +# endif # ifndef OPENSSL_NO_RC5 # define OPENSSL_NO_RC5 # endif @@ -91,6 +115,12 @@ extern "C" { # ifndef OPENSSL_NO_SSL3_METHOD # define OPENSSL_NO_SSL3_METHOD # endif +# ifndef OPENSSL_NO_SSLKEYLOG +# define OPENSSL_NO_SSLKEYLOG +# endif +# ifndef OPENSSL_NO_TFO +# define OPENSSL_NO_TFO +# endif # ifndef OPENSSL_NO_TRACE # define OPENSSL_NO_TRACE # endif @@ -106,6 +136,21 @@ extern "C" { # ifndef OPENSSL_NO_WEAK_SSL_CIPHERS # define OPENSSL_NO_WEAK_SSL_CIPHERS # endif +# ifndef OPENSSL_NO_WINSTORE +# define OPENSSL_NO_WINSTORE +# endif +# ifndef OPENSSL_NO_ZLIB +# define OPENSSL_NO_ZLIB +# endif +# ifndef OPENSSL_NO_ZLIB_DYNAMIC +# define OPENSSL_NO_ZLIB_DYNAMIC +# endif +# ifndef OPENSSL_NO_ZSTD +# define OPENSSL_NO_ZSTD +# endif +# ifndef OPENSSL_NO_ZSTD_DYNAMIC +# define OPENSSL_NO_ZSTD_DYNAMIC +# endif # ifndef OPENSSL_NO_DYNAMIC_ENGINE # define OPENSSL_NO_DYNAMIC_ENGINE # endif @@ -127,6 +172,12 @@ extern "C" { # define RC4_INT unsigned int +# if defined(OPENSSL_NO_COMP) || (defined(OPENSSL_NO_BROTLI) && defined(OPENSSL_NO_ZSTD) && defined(OPENSSL_NO_ZLIB)) +# define OPENSSL_NO_COMP_ALG +# else +# undef OPENSSL_NO_COMP_ALG +# endif + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/BSD-x86/no-asm/include/openssl/core_names.h b/deps/openssl/config/archs/BSD-x86/no-asm/include/openssl/core_names.h new file mode 100644 index 00000000000000..e93e79a52bc910 --- /dev/null +++ b/deps/openssl/config/archs/BSD-x86/no-asm/include/openssl/core_names.h @@ -0,0 +1,575 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from include/openssl/core_names.h.in + * + * Copyright 2019-2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + +#ifndef OPENSSL_CORE_NAMES_H +# define OPENSSL_CORE_NAMES_H +# pragma once + +# ifdef __cplusplus +extern "C" { +# endif + +/* OSSL_CIPHER_PARAM_CTS_MODE Values */ +# define OSSL_CIPHER_CTS_MODE_CS1 "CS1" +# define OSSL_CIPHER_CTS_MODE_CS2 "CS2" +# define OSSL_CIPHER_CTS_MODE_CS3 "CS3" + +/* Known CIPHER names (not a complete list) */ +# define OSSL_CIPHER_NAME_AES_128_GCM_SIV "AES-128-GCM-SIV" +# define OSSL_CIPHER_NAME_AES_192_GCM_SIV "AES-192-GCM-SIV" +# define OSSL_CIPHER_NAME_AES_256_GCM_SIV "AES-256-GCM-SIV" + +/* Known DIGEST names (not a complete list) */ +# define OSSL_DIGEST_NAME_MD5 "MD5" +# define OSSL_DIGEST_NAME_MD5_SHA1 "MD5-SHA1" +# define OSSL_DIGEST_NAME_SHA1 "SHA1" +# define OSSL_DIGEST_NAME_SHA2_224 "SHA2-224" +# define OSSL_DIGEST_NAME_SHA2_256 "SHA2-256" +# define OSSL_DIGEST_NAME_SHA2_256_192 "SHA2-256/192" +# define OSSL_DIGEST_NAME_SHA2_384 "SHA2-384" +# define OSSL_DIGEST_NAME_SHA2_512 "SHA2-512" +# define OSSL_DIGEST_NAME_SHA2_512_224 "SHA2-512/224" +# define OSSL_DIGEST_NAME_SHA2_512_256 "SHA2-512/256" +# define OSSL_DIGEST_NAME_MD2 "MD2" +# define OSSL_DIGEST_NAME_MD4 "MD4" +# define OSSL_DIGEST_NAME_MDC2 "MDC2" +# define OSSL_DIGEST_NAME_RIPEMD160 "RIPEMD160" +# define OSSL_DIGEST_NAME_SHA3_224 "SHA3-224" +# define OSSL_DIGEST_NAME_SHA3_256 "SHA3-256" +# define OSSL_DIGEST_NAME_SHA3_384 "SHA3-384" +# define OSSL_DIGEST_NAME_SHA3_512 "SHA3-512" +# define OSSL_DIGEST_NAME_KECCAK_KMAC128 "KECCAK-KMAC-128" +# define OSSL_DIGEST_NAME_KECCAK_KMAC256 "KECCAK-KMAC-256" +# define OSSL_DIGEST_NAME_SM3 "SM3" + +/* Known MAC names */ +# define OSSL_MAC_NAME_BLAKE2BMAC "BLAKE2BMAC" +# define OSSL_MAC_NAME_BLAKE2SMAC "BLAKE2SMAC" +# define OSSL_MAC_NAME_CMAC "CMAC" +# define OSSL_MAC_NAME_GMAC "GMAC" +# define OSSL_MAC_NAME_HMAC "HMAC" +# define OSSL_MAC_NAME_KMAC128 "KMAC128" +# define OSSL_MAC_NAME_KMAC256 "KMAC256" +# define OSSL_MAC_NAME_POLY1305 "POLY1305" +# define OSSL_MAC_NAME_SIPHASH "SIPHASH" + +/* Known KDF names */ +# define OSSL_KDF_NAME_HKDF "HKDF" +# define OSSL_KDF_NAME_TLS1_3_KDF "TLS13-KDF" +# define OSSL_KDF_NAME_PBKDF1 "PBKDF1" +# define OSSL_KDF_NAME_PBKDF2 "PBKDF2" +# define OSSL_KDF_NAME_SCRYPT "SCRYPT" +# define OSSL_KDF_NAME_SSHKDF "SSHKDF" +# define OSSL_KDF_NAME_SSKDF "SSKDF" +# define OSSL_KDF_NAME_TLS1_PRF "TLS1-PRF" +# define OSSL_KDF_NAME_X942KDF_ASN1 "X942KDF-ASN1" +# define OSSL_KDF_NAME_X942KDF_CONCAT "X942KDF-CONCAT" +# define OSSL_KDF_NAME_X963KDF "X963KDF" +# define OSSL_KDF_NAME_KBKDF "KBKDF" +# define OSSL_KDF_NAME_KRB5KDF "KRB5KDF" +# define OSSL_KDF_NAME_HMACDRBGKDF "HMAC-DRBG-KDF" + +/* RSA padding modes */ +# define OSSL_PKEY_RSA_PAD_MODE_NONE "none" +# define OSSL_PKEY_RSA_PAD_MODE_PKCSV15 "pkcs1" +# define OSSL_PKEY_RSA_PAD_MODE_OAEP "oaep" +# define OSSL_PKEY_RSA_PAD_MODE_X931 "x931" +# define OSSL_PKEY_RSA_PAD_MODE_PSS "pss" + +/* RSA pss padding salt length */ +# define OSSL_PKEY_RSA_PSS_SALT_LEN_DIGEST "digest" +# define OSSL_PKEY_RSA_PSS_SALT_LEN_MAX "max" +# define OSSL_PKEY_RSA_PSS_SALT_LEN_AUTO "auto" +# define OSSL_PKEY_RSA_PSS_SALT_LEN_AUTO_DIGEST_MAX "auto-digestmax" + +/* OSSL_PKEY_PARAM_EC_ENCODING values */ +# define OSSL_PKEY_EC_ENCODING_EXPLICIT "explicit" +# define OSSL_PKEY_EC_ENCODING_GROUP "named_curve" + +# define OSSL_PKEY_EC_POINT_CONVERSION_FORMAT_UNCOMPRESSED "uncompressed" +# define OSSL_PKEY_EC_POINT_CONVERSION_FORMAT_COMPRESSED "compressed" +# define OSSL_PKEY_EC_POINT_CONVERSION_FORMAT_HYBRID "hybrid" + +# define OSSL_PKEY_EC_GROUP_CHECK_DEFAULT "default" +# define OSSL_PKEY_EC_GROUP_CHECK_NAMED "named" +# define OSSL_PKEY_EC_GROUP_CHECK_NAMED_NIST "named-nist" + +/* PROV_SKEY well known key types */ +# define OSSL_SKEY_TYPE_GENERIC "GENERIC-SECRET" +# define OSSL_SKEY_TYPE_AES "AES" + +/* OSSL_KEM_PARAM_OPERATION values */ +#define OSSL_KEM_PARAM_OPERATION_RSASVE "RSASVE" +#define OSSL_KEM_PARAM_OPERATION_DHKEM "DHKEM" + +/* Provider configuration variables */ +#define OSSL_PKEY_RETAIN_SEED "pkey_retain_seed" + +/* Parameter name definitions - generated by util/perl/OpenSSL/paramnames.pm */ +# define OSSL_ALG_PARAM_ALGORITHM_ID "algorithm-id" +# define OSSL_ALG_PARAM_ALGORITHM_ID_PARAMS "algorithm-id-params" +# define OSSL_ALG_PARAM_CIPHER "cipher" +# define OSSL_ALG_PARAM_DIGEST "digest" +# define OSSL_ALG_PARAM_ENGINE "engine" +# define OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR "fips-indicator" +# define OSSL_ALG_PARAM_MAC "mac" +# define OSSL_ALG_PARAM_PROPERTIES "properties" +# define OSSL_ASYM_CIPHER_PARAM_DIGEST OSSL_PKEY_PARAM_DIGEST +# define OSSL_ASYM_CIPHER_PARAM_ENGINE OSSL_PKEY_PARAM_ENGINE +# define OSSL_ASYM_CIPHER_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_ASYM_CIPHER_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_ASYM_CIPHER_PARAM_FIPS_RSA_PKCS15_PAD_DISABLED OSSL_PROV_PARAM_RSA_PKCS15_PAD_DISABLED +# define OSSL_ASYM_CIPHER_PARAM_IMPLICIT_REJECTION "implicit-rejection" +# define OSSL_ASYM_CIPHER_PARAM_MGF1_DIGEST OSSL_PKEY_PARAM_MGF1_DIGEST +# define OSSL_ASYM_CIPHER_PARAM_MGF1_DIGEST_PROPS OSSL_PKEY_PARAM_MGF1_PROPERTIES +# define OSSL_ASYM_CIPHER_PARAM_OAEP_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_ASYM_CIPHER_PARAM_OAEP_DIGEST_PROPS "digest-props" +# define OSSL_ASYM_CIPHER_PARAM_OAEP_LABEL "oaep-label" +# define OSSL_ASYM_CIPHER_PARAM_PAD_MODE OSSL_PKEY_PARAM_PAD_MODE +# define OSSL_ASYM_CIPHER_PARAM_PROPERTIES OSSL_PKEY_PARAM_PROPERTIES +# define OSSL_ASYM_CIPHER_PARAM_TLS_CLIENT_VERSION "tls-client-version" +# define OSSL_ASYM_CIPHER_PARAM_TLS_NEGOTIATED_VERSION "tls-negotiated-version" +# define OSSL_CAPABILITY_TLS_GROUP_ALG "tls-group-alg" +# define OSSL_CAPABILITY_TLS_GROUP_ID "tls-group-id" +# define OSSL_CAPABILITY_TLS_GROUP_IS_KEM "tls-group-is-kem" +# define OSSL_CAPABILITY_TLS_GROUP_MAX_DTLS "tls-max-dtls" +# define OSSL_CAPABILITY_TLS_GROUP_MAX_TLS "tls-max-tls" +# define OSSL_CAPABILITY_TLS_GROUP_MIN_DTLS "tls-min-dtls" +# define OSSL_CAPABILITY_TLS_GROUP_MIN_TLS "tls-min-tls" +# define OSSL_CAPABILITY_TLS_GROUP_NAME "tls-group-name" +# define OSSL_CAPABILITY_TLS_GROUP_NAME_INTERNAL "tls-group-name-internal" +# define OSSL_CAPABILITY_TLS_GROUP_SECURITY_BITS "tls-group-sec-bits" +# define OSSL_CAPABILITY_TLS_SIGALG_CODE_POINT "tls-sigalg-code-point" +# define OSSL_CAPABILITY_TLS_SIGALG_HASH_NAME "tls-sigalg-hash-name" +# define OSSL_CAPABILITY_TLS_SIGALG_HASH_OID "tls-sigalg-hash-oid" +# define OSSL_CAPABILITY_TLS_SIGALG_IANA_NAME "tls-sigalg-iana-name" +# define OSSL_CAPABILITY_TLS_SIGALG_KEYTYPE "tls-sigalg-keytype" +# define OSSL_CAPABILITY_TLS_SIGALG_KEYTYPE_OID "tls-sigalg-keytype-oid" +# define OSSL_CAPABILITY_TLS_SIGALG_MAX_DTLS "tls-max-dtls" +# define OSSL_CAPABILITY_TLS_SIGALG_MAX_TLS "tls-max-tls" +# define OSSL_CAPABILITY_TLS_SIGALG_MIN_DTLS "tls-min-dtls" +# define OSSL_CAPABILITY_TLS_SIGALG_MIN_TLS "tls-min-tls" +# define OSSL_CAPABILITY_TLS_SIGALG_NAME "tls-sigalg-name" +# define OSSL_CAPABILITY_TLS_SIGALG_OID "tls-sigalg-oid" +# define OSSL_CAPABILITY_TLS_SIGALG_SECURITY_BITS "tls-sigalg-sec-bits" +# define OSSL_CAPABILITY_TLS_SIGALG_SIG_NAME "tls-sigalg-sig-name" +# define OSSL_CAPABILITY_TLS_SIGALG_SIG_OID "tls-sigalg-sig-oid" +# define OSSL_CIPHER_PARAM_AEAD "aead" +# define OSSL_CIPHER_PARAM_AEAD_IVLEN OSSL_CIPHER_PARAM_IVLEN +# define OSSL_CIPHER_PARAM_AEAD_IV_GENERATED "iv-generated" +# define OSSL_CIPHER_PARAM_AEAD_MAC_KEY "mackey" +# define OSSL_CIPHER_PARAM_AEAD_TAG "tag" +# define OSSL_CIPHER_PARAM_AEAD_TAGLEN "taglen" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_AAD "tlsaad" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_AAD_PAD "tlsaadpad" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_GET_IV_GEN "tlsivgen" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_IV_FIXED "tlsivfixed" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_SET_IV_INV "tlsivinv" +# define OSSL_CIPHER_PARAM_ALGORITHM_ID OSSL_ALG_PARAM_ALGORITHM_ID +# define OSSL_CIPHER_PARAM_ALGORITHM_ID_PARAMS OSSL_ALG_PARAM_ALGORITHM_ID_PARAMS +# define OSSL_CIPHER_PARAM_ALGORITHM_ID_PARAMS_OLD "alg_id_param" +# define OSSL_CIPHER_PARAM_BLOCK_SIZE "blocksize" +# define OSSL_CIPHER_PARAM_CTS "cts" +# define OSSL_CIPHER_PARAM_CTS_MODE "cts_mode" +# define OSSL_CIPHER_PARAM_CUSTOM_IV "custom-iv" +# define OSSL_CIPHER_PARAM_DECRYPT_ONLY "decrypt-only" +# define OSSL_CIPHER_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_CIPHER_PARAM_FIPS_ENCRYPT_CHECK "encrypt-check" +# define OSSL_CIPHER_PARAM_HAS_RAND_KEY "has-randkey" +# define OSSL_CIPHER_PARAM_IV "iv" +# define OSSL_CIPHER_PARAM_IVLEN "ivlen" +# define OSSL_CIPHER_PARAM_KEYLEN "keylen" +# define OSSL_CIPHER_PARAM_MODE "mode" +# define OSSL_CIPHER_PARAM_NUM "num" +# define OSSL_CIPHER_PARAM_PADDING "padding" +# define OSSL_CIPHER_PARAM_PIPELINE_AEAD_TAG "pipeline-tag" +# define OSSL_CIPHER_PARAM_RANDOM_KEY "randkey" +# define OSSL_CIPHER_PARAM_RC2_KEYBITS "keybits" +# define OSSL_CIPHER_PARAM_ROUNDS "rounds" +# define OSSL_CIPHER_PARAM_SPEED "speed" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK "tls-multi" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD "tls1multi_aad" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD_PACKLEN "tls1multi_aadpacklen" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC "tls1multi_enc" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_IN "tls1multi_encin" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_LEN "tls1multi_enclen" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_INTERLEAVE "tls1multi_interleave" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_BUFSIZE "tls1multi_maxbufsz" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_SEND_FRAGMENT "tls1multi_maxsndfrag" +# define OSSL_CIPHER_PARAM_TLS_MAC "tls-mac" +# define OSSL_CIPHER_PARAM_TLS_MAC_SIZE "tls-mac-size" +# define OSSL_CIPHER_PARAM_TLS_VERSION "tls-version" +# define OSSL_CIPHER_PARAM_UPDATED_IV "updated-iv" +# define OSSL_CIPHER_PARAM_USE_BITS "use-bits" +# define OSSL_CIPHER_PARAM_XTS_STANDARD "xts_standard" +# define OSSL_DECODER_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_DIGEST_PARAM_ALGID_ABSENT "algid-absent" +# define OSSL_DIGEST_PARAM_BLOCK_SIZE "blocksize" +# define OSSL_DIGEST_PARAM_MICALG "micalg" +# define OSSL_DIGEST_PARAM_PAD_TYPE "pad-type" +# define OSSL_DIGEST_PARAM_SIZE "size" +# define OSSL_DIGEST_PARAM_SSL3_MS "ssl3-ms" +# define OSSL_DIGEST_PARAM_XOF "xof" +# define OSSL_DIGEST_PARAM_XOFLEN "xoflen" +# define OSSL_DRBG_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_DRBG_PARAM_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_DRBG_PARAM_ENTROPY_REQUIRED "entropy_required" +# define OSSL_DRBG_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_DRBG_PARAM_FIPS_DIGEST_CHECK OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK +# define OSSL_DRBG_PARAM_MAC OSSL_ALG_PARAM_MAC +# define OSSL_DRBG_PARAM_MAX_ADINLEN "max_adinlen" +# define OSSL_DRBG_PARAM_MAX_ENTROPYLEN "max_entropylen" +# define OSSL_DRBG_PARAM_MAX_LENGTH "maxium_length" +# define OSSL_DRBG_PARAM_MAX_NONCELEN "max_noncelen" +# define OSSL_DRBG_PARAM_MAX_PERSLEN "max_perslen" +# define OSSL_DRBG_PARAM_MIN_ENTROPYLEN "min_entropylen" +# define OSSL_DRBG_PARAM_MIN_LENGTH "minium_length" +# define OSSL_DRBG_PARAM_MIN_NONCELEN "min_noncelen" +# define OSSL_DRBG_PARAM_PREDICTION_RESISTANCE "prediction_resistance" +# define OSSL_DRBG_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_DRBG_PARAM_RANDOM_DATA "random_data" +# define OSSL_DRBG_PARAM_RESEED_COUNTER "reseed_counter" +# define OSSL_DRBG_PARAM_RESEED_REQUESTS "reseed_requests" +# define OSSL_DRBG_PARAM_RESEED_TIME "reseed_time" +# define OSSL_DRBG_PARAM_RESEED_TIME_INTERVAL "reseed_time_interval" +# define OSSL_DRBG_PARAM_SIZE "size" +# define OSSL_DRBG_PARAM_USE_DF "use_derivation_function" +# define OSSL_ENCODER_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_ENCODER_PARAM_ENCRYPT_LEVEL "encrypt-level" +# define OSSL_ENCODER_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_ENCODER_PARAM_SAVE_PARAMETERS "save-parameters" +# define OSSL_EXCHANGE_PARAM_EC_ECDH_COFACTOR_MODE "ecdh-cofactor-mode" +# define OSSL_EXCHANGE_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_EXCHANGE_PARAM_FIPS_DIGEST_CHECK OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK +# define OSSL_EXCHANGE_PARAM_FIPS_ECDH_COFACTOR_CHECK OSSL_PROV_PARAM_ECDH_COFACTOR_CHECK +# define OSSL_EXCHANGE_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_EXCHANGE_PARAM_KDF_DIGEST "kdf-digest" +# define OSSL_EXCHANGE_PARAM_KDF_DIGEST_PROPS "kdf-digest-props" +# define OSSL_EXCHANGE_PARAM_KDF_OUTLEN "kdf-outlen" +# define OSSL_EXCHANGE_PARAM_KDF_TYPE "kdf-type" +# define OSSL_EXCHANGE_PARAM_KDF_UKM "kdf-ukm" +# define OSSL_EXCHANGE_PARAM_PAD "pad" +# define OSSL_GEN_PARAM_ITERATION "iteration" +# define OSSL_GEN_PARAM_POTENTIAL "potential" +# define OSSL_KDF_PARAM_ARGON2_AD "ad" +# define OSSL_KDF_PARAM_ARGON2_LANES "lanes" +# define OSSL_KDF_PARAM_ARGON2_MEMCOST "memcost" +# define OSSL_KDF_PARAM_ARGON2_VERSION "version" +# define OSSL_KDF_PARAM_CEK_ALG "cekalg" +# define OSSL_KDF_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_KDF_PARAM_CONSTANT "constant" +# define OSSL_KDF_PARAM_DATA "data" +# define OSSL_KDF_PARAM_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_KDF_PARAM_EARLY_CLEAN "early_clean" +# define OSSL_KDF_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_KDF_PARAM_FIPS_DIGEST_CHECK OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK +# define OSSL_KDF_PARAM_FIPS_EMS_CHECK "ems_check" +# define OSSL_KDF_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_KDF_PARAM_HMACDRBG_ENTROPY "entropy" +# define OSSL_KDF_PARAM_HMACDRBG_NONCE "nonce" +# define OSSL_KDF_PARAM_INFO "info" +# define OSSL_KDF_PARAM_ITER "iter" +# define OSSL_KDF_PARAM_KBKDF_R "r" +# define OSSL_KDF_PARAM_KBKDF_USE_L "use-l" +# define OSSL_KDF_PARAM_KBKDF_USE_SEPARATOR "use-separator" +# define OSSL_KDF_PARAM_KEY "key" +# define OSSL_KDF_PARAM_LABEL "label" +# define OSSL_KDF_PARAM_MAC OSSL_ALG_PARAM_MAC +# define OSSL_KDF_PARAM_MAC_SIZE "maclen" +# define OSSL_KDF_PARAM_MODE "mode" +# define OSSL_KDF_PARAM_PASSWORD "pass" +# define OSSL_KDF_PARAM_PKCS12_ID "id" +# define OSSL_KDF_PARAM_PKCS5 "pkcs5" +# define OSSL_KDF_PARAM_PREFIX "prefix" +# define OSSL_KDF_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_KDF_PARAM_SALT "salt" +# define OSSL_KDF_PARAM_SCRYPT_MAXMEM "maxmem_bytes" +# define OSSL_KDF_PARAM_SCRYPT_N "n" +# define OSSL_KDF_PARAM_SCRYPT_P "p" +# define OSSL_KDF_PARAM_SCRYPT_R "r" +# define OSSL_KDF_PARAM_SECRET "secret" +# define OSSL_KDF_PARAM_SEED "seed" +# define OSSL_KDF_PARAM_SIZE "size" +# define OSSL_KDF_PARAM_SSHKDF_SESSION_ID "session_id" +# define OSSL_KDF_PARAM_SSHKDF_TYPE "type" +# define OSSL_KDF_PARAM_SSHKDF_XCGHASH "xcghash" +# define OSSL_KDF_PARAM_THREADS "threads" +# define OSSL_KDF_PARAM_UKM "ukm" +# define OSSL_KDF_PARAM_X942_ACVPINFO "acvp-info" +# define OSSL_KDF_PARAM_X942_PARTYUINFO "partyu-info" +# define OSSL_KDF_PARAM_X942_PARTYVINFO "partyv-info" +# define OSSL_KDF_PARAM_X942_SUPP_PRIVINFO "supp-privinfo" +# define OSSL_KDF_PARAM_X942_SUPP_PUBINFO "supp-pubinfo" +# define OSSL_KDF_PARAM_X942_USE_KEYBITS "use-keybits" +# define OSSL_KEM_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_KEM_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_KEM_PARAM_IKME "ikme" +# define OSSL_KEM_PARAM_OPERATION "operation" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_BLOCK_PADDING "block_padding" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_HS_PADDING "hs_padding" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_MAX_EARLY_DATA "max_early_data" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_MAX_FRAG_LEN "max_frag_len" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_MODE "mode" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_OPTIONS "options" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_READ_AHEAD "read_ahead" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_STREAM_MAC "stream_mac" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_TLSTREE "tlstree" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_USE_ETM "use_etm" +# define OSSL_LIBSSL_RECORD_LAYER_READ_BUFFER_LEN "read_buffer_len" +# define OSSL_MAC_PARAM_BLOCK_SIZE "block-size" +# define OSSL_MAC_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_MAC_PARAM_CUSTOM "custom" +# define OSSL_MAC_PARAM_C_ROUNDS "c-rounds" +# define OSSL_MAC_PARAM_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_MAC_PARAM_DIGEST_NOINIT "digest-noinit" +# define OSSL_MAC_PARAM_DIGEST_ONESHOT "digest-oneshot" +# define OSSL_MAC_PARAM_D_ROUNDS "d-rounds" +# define OSSL_MAC_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_MAC_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_MAC_PARAM_FIPS_NO_SHORT_MAC OSSL_PROV_PARAM_NO_SHORT_MAC +# define OSSL_MAC_PARAM_IV "iv" +# define OSSL_MAC_PARAM_KEY "key" +# define OSSL_MAC_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_MAC_PARAM_SALT "salt" +# define OSSL_MAC_PARAM_SIZE "size" +# define OSSL_MAC_PARAM_TLS_DATA_SIZE "tls-data-size" +# define OSSL_MAC_PARAM_XOF "xof" +# define OSSL_OBJECT_PARAM_DATA "data" +# define OSSL_OBJECT_PARAM_DATA_STRUCTURE "data-structure" +# define OSSL_OBJECT_PARAM_DATA_TYPE "data-type" +# define OSSL_OBJECT_PARAM_DESC "desc" +# define OSSL_OBJECT_PARAM_INPUT_TYPE "input-type" +# define OSSL_OBJECT_PARAM_REFERENCE "reference" +# define OSSL_OBJECT_PARAM_TYPE "type" +# define OSSL_PASSPHRASE_PARAM_INFO "info" +# define OSSL_PKEY_PARAM_ALGORITHM_ID OSSL_ALG_PARAM_ALGORITHM_ID +# define OSSL_PKEY_PARAM_ALGORITHM_ID_PARAMS OSSL_ALG_PARAM_ALGORITHM_ID_PARAMS +# define OSSL_PKEY_PARAM_BITS "bits" +# define OSSL_PKEY_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_PKEY_PARAM_DEFAULT_DIGEST "default-digest" +# define OSSL_PKEY_PARAM_DHKEM_IKM "dhkem-ikm" +# define OSSL_PKEY_PARAM_DH_GENERATOR "safeprime-generator" +# define OSSL_PKEY_PARAM_DH_PRIV_LEN "priv_len" +# define OSSL_PKEY_PARAM_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_PKEY_PARAM_DIGEST_SIZE "digest-size" +# define OSSL_PKEY_PARAM_DIST_ID "distid" +# define OSSL_PKEY_PARAM_EC_A "a" +# define OSSL_PKEY_PARAM_EC_B "b" +# define OSSL_PKEY_PARAM_EC_CHAR2_M "m" +# define OSSL_PKEY_PARAM_EC_CHAR2_PP_K1 "k1" +# define OSSL_PKEY_PARAM_EC_CHAR2_PP_K2 "k2" +# define OSSL_PKEY_PARAM_EC_CHAR2_PP_K3 "k3" +# define OSSL_PKEY_PARAM_EC_CHAR2_TP_BASIS "tp" +# define OSSL_PKEY_PARAM_EC_CHAR2_TYPE "basis-type" +# define OSSL_PKEY_PARAM_EC_COFACTOR "cofactor" +# define OSSL_PKEY_PARAM_EC_DECODED_FROM_EXPLICIT_PARAMS "decoded-from-explicit" +# define OSSL_PKEY_PARAM_EC_ENCODING "encoding" +# define OSSL_PKEY_PARAM_EC_FIELD_TYPE "field-type" +# define OSSL_PKEY_PARAM_EC_GENERATOR "generator" +# define OSSL_PKEY_PARAM_EC_GROUP_CHECK_TYPE "group-check" +# define OSSL_PKEY_PARAM_EC_INCLUDE_PUBLIC "include-public" +# define OSSL_PKEY_PARAM_EC_ORDER "order" +# define OSSL_PKEY_PARAM_EC_P "p" +# define OSSL_PKEY_PARAM_EC_POINT_CONVERSION_FORMAT "point-format" +# define OSSL_PKEY_PARAM_EC_PUB_X "qx" +# define OSSL_PKEY_PARAM_EC_PUB_Y "qy" +# define OSSL_PKEY_PARAM_EC_SEED "seed" +# define OSSL_PKEY_PARAM_ENCODED_PUBLIC_KEY "encoded-pub-key" +# define OSSL_PKEY_PARAM_ENGINE OSSL_ALG_PARAM_ENGINE +# define OSSL_PKEY_PARAM_FFC_COFACTOR "j" +# define OSSL_PKEY_PARAM_FFC_DIGEST OSSL_PKEY_PARAM_DIGEST +# define OSSL_PKEY_PARAM_FFC_DIGEST_PROPS OSSL_PKEY_PARAM_PROPERTIES +# define OSSL_PKEY_PARAM_FFC_G "g" +# define OSSL_PKEY_PARAM_FFC_GINDEX "gindex" +# define OSSL_PKEY_PARAM_FFC_H "hindex" +# define OSSL_PKEY_PARAM_FFC_P "p" +# define OSSL_PKEY_PARAM_FFC_PBITS "pbits" +# define OSSL_PKEY_PARAM_FFC_PCOUNTER "pcounter" +# define OSSL_PKEY_PARAM_FFC_Q "q" +# define OSSL_PKEY_PARAM_FFC_QBITS "qbits" +# define OSSL_PKEY_PARAM_FFC_SEED "seed" +# define OSSL_PKEY_PARAM_FFC_TYPE "type" +# define OSSL_PKEY_PARAM_FFC_VALIDATE_G "validate-g" +# define OSSL_PKEY_PARAM_FFC_VALIDATE_LEGACY "validate-legacy" +# define OSSL_PKEY_PARAM_FFC_VALIDATE_PQ "validate-pq" +# define OSSL_PKEY_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK "digest-check" +# define OSSL_PKEY_PARAM_FIPS_KEY_CHECK "key-check" +# define OSSL_PKEY_PARAM_FIPS_SIGN_CHECK "sign-check" +# define OSSL_PKEY_PARAM_GROUP_NAME "group" +# define OSSL_PKEY_PARAM_IMPLICIT_REJECTION "implicit-rejection" +# define OSSL_PKEY_PARAM_MANDATORY_DIGEST "mandatory-digest" +# define OSSL_PKEY_PARAM_MASKGENFUNC "mgf" +# define OSSL_PKEY_PARAM_MAX_SIZE "max-size" +# define OSSL_PKEY_PARAM_MGF1_DIGEST "mgf1-digest" +# define OSSL_PKEY_PARAM_MGF1_PROPERTIES "mgf1-properties" +# define OSSL_PKEY_PARAM_ML_DSA_INPUT_FORMATS "ml-dsa.input_formats" +# define OSSL_PKEY_PARAM_ML_DSA_OUTPUT_FORMATS "ml-dsa.output_formats" +# define OSSL_PKEY_PARAM_ML_DSA_PREFER_SEED "ml-dsa.prefer_seed" +# define OSSL_PKEY_PARAM_ML_DSA_RETAIN_SEED "ml-dsa.retain_seed" +# define OSSL_PKEY_PARAM_ML_DSA_SEED "seed" +# define OSSL_PKEY_PARAM_ML_KEM_IMPORT_PCT_TYPE "ml-kem.import_pct_type" +# define OSSL_PKEY_PARAM_ML_KEM_INPUT_FORMATS "ml-kem.input_formats" +# define OSSL_PKEY_PARAM_ML_KEM_OUTPUT_FORMATS "ml-kem.output_formats" +# define OSSL_PKEY_PARAM_ML_KEM_PREFER_SEED "ml-kem.prefer_seed" +# define OSSL_PKEY_PARAM_ML_KEM_RETAIN_SEED "ml-kem.retain_seed" +# define OSSL_PKEY_PARAM_ML_KEM_SEED "seed" +# define OSSL_PKEY_PARAM_PAD_MODE "pad-mode" +# define OSSL_PKEY_PARAM_PRIV_KEY "priv" +# define OSSL_PKEY_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_PKEY_PARAM_PUB_KEY "pub" +# define OSSL_PKEY_PARAM_RSA_BITS OSSL_PKEY_PARAM_BITS +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT "rsa-coefficient" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT1 "rsa-coefficient1" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT2 "rsa-coefficient2" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT3 "rsa-coefficient3" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT4 "rsa-coefficient4" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT5 "rsa-coefficient5" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT6 "rsa-coefficient6" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT7 "rsa-coefficient7" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT8 "rsa-coefficient8" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT9 "rsa-coefficient9" +# define OSSL_PKEY_PARAM_RSA_D "d" +# define OSSL_PKEY_PARAM_RSA_DERIVE_FROM_PQ "rsa-derive-from-pq" +# define OSSL_PKEY_PARAM_RSA_DIGEST OSSL_PKEY_PARAM_DIGEST +# define OSSL_PKEY_PARAM_RSA_DIGEST_PROPS OSSL_PKEY_PARAM_PROPERTIES +# define OSSL_PKEY_PARAM_RSA_E "e" +# define OSSL_PKEY_PARAM_RSA_EXPONENT "rsa-exponent" +# define OSSL_PKEY_PARAM_RSA_EXPONENT1 "rsa-exponent1" +# define OSSL_PKEY_PARAM_RSA_EXPONENT10 "rsa-exponent10" +# define OSSL_PKEY_PARAM_RSA_EXPONENT2 "rsa-exponent2" +# define OSSL_PKEY_PARAM_RSA_EXPONENT3 "rsa-exponent3" +# define OSSL_PKEY_PARAM_RSA_EXPONENT4 "rsa-exponent4" +# define OSSL_PKEY_PARAM_RSA_EXPONENT5 "rsa-exponent5" +# define OSSL_PKEY_PARAM_RSA_EXPONENT6 "rsa-exponent6" +# define OSSL_PKEY_PARAM_RSA_EXPONENT7 "rsa-exponent7" +# define OSSL_PKEY_PARAM_RSA_EXPONENT8 "rsa-exponent8" +# define OSSL_PKEY_PARAM_RSA_EXPONENT9 "rsa-exponent9" +# define OSSL_PKEY_PARAM_RSA_FACTOR "rsa-factor" +# define OSSL_PKEY_PARAM_RSA_FACTOR1 "rsa-factor1" +# define OSSL_PKEY_PARAM_RSA_FACTOR10 "rsa-factor10" +# define OSSL_PKEY_PARAM_RSA_FACTOR2 "rsa-factor2" +# define OSSL_PKEY_PARAM_RSA_FACTOR3 "rsa-factor3" +# define OSSL_PKEY_PARAM_RSA_FACTOR4 "rsa-factor4" +# define OSSL_PKEY_PARAM_RSA_FACTOR5 "rsa-factor5" +# define OSSL_PKEY_PARAM_RSA_FACTOR6 "rsa-factor6" +# define OSSL_PKEY_PARAM_RSA_FACTOR7 "rsa-factor7" +# define OSSL_PKEY_PARAM_RSA_FACTOR8 "rsa-factor8" +# define OSSL_PKEY_PARAM_RSA_FACTOR9 "rsa-factor9" +# define OSSL_PKEY_PARAM_RSA_MASKGENFUNC OSSL_PKEY_PARAM_MASKGENFUNC +# define OSSL_PKEY_PARAM_RSA_MGF1_DIGEST OSSL_PKEY_PARAM_MGF1_DIGEST +# define OSSL_PKEY_PARAM_RSA_N "n" +# define OSSL_PKEY_PARAM_RSA_PRIMES "primes" +# define OSSL_PKEY_PARAM_RSA_PSS_SALTLEN "saltlen" +# define OSSL_PKEY_PARAM_RSA_TEST_P1 "p1" +# define OSSL_PKEY_PARAM_RSA_TEST_P2 "p2" +# define OSSL_PKEY_PARAM_RSA_TEST_Q1 "q1" +# define OSSL_PKEY_PARAM_RSA_TEST_Q2 "q2" +# define OSSL_PKEY_PARAM_RSA_TEST_XP "xp" +# define OSSL_PKEY_PARAM_RSA_TEST_XP1 "xp1" +# define OSSL_PKEY_PARAM_RSA_TEST_XP2 "xp2" +# define OSSL_PKEY_PARAM_RSA_TEST_XQ "xq" +# define OSSL_PKEY_PARAM_RSA_TEST_XQ1 "xq1" +# define OSSL_PKEY_PARAM_RSA_TEST_XQ2 "xq2" +# define OSSL_PKEY_PARAM_SECURITY_BITS "security-bits" +# define OSSL_PKEY_PARAM_SLH_DSA_SEED "seed" +# define OSSL_PKEY_PARAM_USE_COFACTOR_ECDH OSSL_PKEY_PARAM_USE_COFACTOR_FLAG +# define OSSL_PKEY_PARAM_USE_COFACTOR_FLAG "use-cofactor-flag" +# define OSSL_PROV_PARAM_BUILDINFO "buildinfo" +# define OSSL_PROV_PARAM_CORE_MODULE_FILENAME "module-filename" +# define OSSL_PROV_PARAM_CORE_PROV_NAME "provider-name" +# define OSSL_PROV_PARAM_CORE_VERSION "openssl-version" +# define OSSL_PROV_PARAM_DRBG_TRUNC_DIGEST "drbg-no-trunc-md" +# define OSSL_PROV_PARAM_DSA_SIGN_DISABLED "dsa-sign-disabled" +# define OSSL_PROV_PARAM_ECDH_COFACTOR_CHECK "ecdh-cofactor-check" +# define OSSL_PROV_PARAM_HKDF_DIGEST_CHECK "hkdf-digest-check" +# define OSSL_PROV_PARAM_HKDF_KEY_CHECK "hkdf-key-check" +# define OSSL_PROV_PARAM_HMAC_KEY_CHECK "hmac-key-check" +# define OSSL_PROV_PARAM_KBKDF_KEY_CHECK "kbkdf-key-check" +# define OSSL_PROV_PARAM_KMAC_KEY_CHECK "kmac-key-check" +# define OSSL_PROV_PARAM_NAME "name" +# define OSSL_PROV_PARAM_NO_SHORT_MAC "no-short-mac" +# define OSSL_PROV_PARAM_PBKDF2_LOWER_BOUND_CHECK "pbkdf2-lower-bound-check" +# define OSSL_PROV_PARAM_RSA_PKCS15_PAD_DISABLED "rsa-pkcs15-pad-disabled" +# define OSSL_PROV_PARAM_RSA_PSS_SALTLEN_CHECK "rsa-pss-saltlen-check" +# define OSSL_PROV_PARAM_RSA_SIGN_X931_PAD_DISABLED "rsa-sign-x931-pad-disabled" +# define OSSL_PROV_PARAM_SECURITY_CHECKS "security-checks" +# define OSSL_PROV_PARAM_SELF_TEST_DESC "st-desc" +# define OSSL_PROV_PARAM_SELF_TEST_PHASE "st-phase" +# define OSSL_PROV_PARAM_SELF_TEST_TYPE "st-type" +# define OSSL_PROV_PARAM_SIGNATURE_DIGEST_CHECK "signature-digest-check" +# define OSSL_PROV_PARAM_SSHKDF_DIGEST_CHECK "sshkdf-digest-check" +# define OSSL_PROV_PARAM_SSHKDF_KEY_CHECK "sshkdf-key-check" +# define OSSL_PROV_PARAM_SSKDF_DIGEST_CHECK "sskdf-digest-check" +# define OSSL_PROV_PARAM_SSKDF_KEY_CHECK "sskdf-key-check" +# define OSSL_PROV_PARAM_STATUS "status" +# define OSSL_PROV_PARAM_TDES_ENCRYPT_DISABLED "tdes-encrypt-disabled" +# define OSSL_PROV_PARAM_TLS13_KDF_DIGEST_CHECK "tls13-kdf-digest-check" +# define OSSL_PROV_PARAM_TLS13_KDF_KEY_CHECK "tls13-kdf-key-check" +# define OSSL_PROV_PARAM_TLS1_PRF_DIGEST_CHECK "tls1-prf-digest-check" +# define OSSL_PROV_PARAM_TLS1_PRF_EMS_CHECK "tls1-prf-ems-check" +# define OSSL_PROV_PARAM_TLS1_PRF_KEY_CHECK "tls1-prf-key-check" +# define OSSL_PROV_PARAM_VERSION "version" +# define OSSL_PROV_PARAM_X942KDF_KEY_CHECK "x942kdf-key-check" +# define OSSL_PROV_PARAM_X963KDF_DIGEST_CHECK "x963kdf-digest-check" +# define OSSL_PROV_PARAM_X963KDF_KEY_CHECK "x963kdf-key-check" +# define OSSL_RAND_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_RAND_PARAM_GENERATE "generate" +# define OSSL_RAND_PARAM_MAX_REQUEST "max_request" +# define OSSL_RAND_PARAM_STATE "state" +# define OSSL_RAND_PARAM_STRENGTH "strength" +# define OSSL_RAND_PARAM_TEST_ENTROPY "test_entropy" +# define OSSL_RAND_PARAM_TEST_NONCE "test_nonce" +# define OSSL_SIGNATURE_PARAM_ADD_RANDOM "additional-random" +# define OSSL_SIGNATURE_PARAM_ALGORITHM_ID OSSL_PKEY_PARAM_ALGORITHM_ID +# define OSSL_SIGNATURE_PARAM_ALGORITHM_ID_PARAMS OSSL_PKEY_PARAM_ALGORITHM_ID_PARAMS +# define OSSL_SIGNATURE_PARAM_CONTEXT_STRING "context-string" +# define OSSL_SIGNATURE_PARAM_DETERMINISTIC "deterministic" +# define OSSL_SIGNATURE_PARAM_DIGEST OSSL_PKEY_PARAM_DIGEST +# define OSSL_SIGNATURE_PARAM_DIGEST_SIZE OSSL_PKEY_PARAM_DIGEST_SIZE +# define OSSL_SIGNATURE_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_SIGNATURE_PARAM_FIPS_DIGEST_CHECK OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK +# define OSSL_SIGNATURE_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_SIGNATURE_PARAM_FIPS_RSA_PSS_SALTLEN_CHECK "rsa-pss-saltlen-check" +# define OSSL_SIGNATURE_PARAM_FIPS_SIGN_CHECK OSSL_PKEY_PARAM_FIPS_SIGN_CHECK +# define OSSL_SIGNATURE_PARAM_FIPS_SIGN_X931_PAD_CHECK "sign-x931-pad-check" +# define OSSL_SIGNATURE_PARAM_FIPS_VERIFY_MESSAGE "verify-message" +# define OSSL_SIGNATURE_PARAM_INSTANCE "instance" +# define OSSL_SIGNATURE_PARAM_KAT "kat" +# define OSSL_SIGNATURE_PARAM_MESSAGE_ENCODING "message-encoding" +# define OSSL_SIGNATURE_PARAM_MGF1_DIGEST OSSL_PKEY_PARAM_MGF1_DIGEST +# define OSSL_SIGNATURE_PARAM_MGF1_PROPERTIES OSSL_PKEY_PARAM_MGF1_PROPERTIES +# define OSSL_SIGNATURE_PARAM_MU "mu" +# define OSSL_SIGNATURE_PARAM_NONCE_TYPE "nonce-type" +# define OSSL_SIGNATURE_PARAM_PAD_MODE OSSL_PKEY_PARAM_PAD_MODE +# define OSSL_SIGNATURE_PARAM_PROPERTIES OSSL_PKEY_PARAM_PROPERTIES +# define OSSL_SIGNATURE_PARAM_PSS_SALTLEN "saltlen" +# define OSSL_SIGNATURE_PARAM_SIGNATURE "signature" +# define OSSL_SIGNATURE_PARAM_TEST_ENTROPY "test-entropy" +# define OSSL_SKEY_PARAM_KEY_LENGTH "key-length" +# define OSSL_SKEY_PARAM_RAW_BYTES "raw-bytes" +# define OSSL_STORE_PARAM_ALIAS "alias" +# define OSSL_STORE_PARAM_DIGEST "digest" +# define OSSL_STORE_PARAM_EXPECT "expect" +# define OSSL_STORE_PARAM_FINGERPRINT "fingerprint" +# define OSSL_STORE_PARAM_INPUT_TYPE "input-type" +# define OSSL_STORE_PARAM_ISSUER "name" +# define OSSL_STORE_PARAM_PROPERTIES "properties" +# define OSSL_STORE_PARAM_SERIAL "serial" +# define OSSL_STORE_PARAM_SUBJECT "subject" + +# ifdef __cplusplus +} +# endif + +#endif diff --git a/deps/openssl/config/archs/BSD-x86/no-asm/include/openssl/crmf.h b/deps/openssl/config/archs/BSD-x86/no-asm/include/openssl/crmf.h index 71b747ed33d239..4bf550fd47daa9 100644 --- a/deps/openssl/config/archs/BSD-x86/no-asm/include/openssl/crmf.h +++ b/deps/openssl/config/archs/BSD-x86/no-asm/include/openssl/crmf.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/crmf.h.in * - * Copyright 2007-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2007-2025 The OpenSSL Project Authors. All Rights Reserved. * Copyright Nokia 2007-2019 * Copyright Siemens AG 2015-2019 * @@ -26,6 +26,7 @@ # include # include # include /* for GENERAL_NAME etc. */ +# include /* explicit #includes not strictly needed since implied by the above: */ # include @@ -43,9 +44,12 @@ extern "C" { # define OSSL_CRMF_SUBSEQUENTMESSAGE_ENCRCERT 0 # define OSSL_CRMF_SUBSEQUENTMESSAGE_CHALLENGERESP 1 - typedef struct ossl_crmf_encryptedvalue_st OSSL_CRMF_ENCRYPTEDVALUE; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_ENCRYPTEDVALUE) + +typedef struct ossl_crmf_encryptedkey_st OSSL_CRMF_ENCRYPTEDKEY; +DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_ENCRYPTEDKEY) + typedef struct ossl_crmf_msg_st OSSL_CRMF_MSG; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_MSG) DECLARE_ASN1_DUP_FUNCTION(OSSL_CRMF_MSG) @@ -77,6 +81,36 @@ SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CRMF_MSG, OSSL_CRMF_MSG, OSSL_CRMF_MSG) #define sk_OSSL_CRMF_MSG_set_cmp_func(sk, cmp) ((sk_OSSL_CRMF_MSG_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CRMF_MSG_sk_type(sk), ossl_check_OSSL_CRMF_MSG_compfunc_type(cmp))) typedef struct ossl_crmf_attributetypeandvalue_st OSSL_CRMF_ATTRIBUTETYPEANDVALUE; +void OSSL_CRMF_ATTRIBUTETYPEANDVALUE_free(OSSL_CRMF_ATTRIBUTETYPEANDVALUE *v); +DECLARE_ASN1_DUP_FUNCTION(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CRMF_ATTRIBUTETYPEANDVALUE, OSSL_CRMF_ATTRIBUTETYPEANDVALUE, OSSL_CRMF_ATTRIBUTETYPEANDVALUE) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_value(sk, idx) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_value(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), (idx))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_new(cmp) ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_new(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_compfunc_type(cmp))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_new_null() ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_new_null()) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_new_reserve(cmp, n) ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_compfunc_type(cmp), (n))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), (n)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_free(sk) OPENSSL_sk_free(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_delete(sk, i) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_delete(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), (i))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_delete_ptr(sk, ptr) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_pop(sk) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_pop(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_shift(sk) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_shift(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk),ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_freefunc_type(freefunc)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr), (idx)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_set(sk, idx, ptr) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_set(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), (idx), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr), pnum) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_dup(sk) ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_dup(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_copyfunc_type(copyfunc), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_freefunc_type(freefunc))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_set_cmp_func(sk, cmp) ((sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_compfunc_type(cmp))) + + typedef struct ossl_crmf_pbmparameter_st OSSL_CRMF_PBMPARAMETER; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_PBMPARAMETER) typedef struct ossl_crmf_poposigningkey_st OSSL_CRMF_POPOSIGNINGKEY; @@ -118,6 +152,7 @@ typedef struct ossl_crmf_singlepubinfo_st OSSL_CRMF_SINGLEPUBINFO; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_SINGLEPUBINFO) typedef struct ossl_crmf_certtemplate_st OSSL_CRMF_CERTTEMPLATE; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_CERTTEMPLATE) +DECLARE_ASN1_DUP_FUNCTION(OSSL_CRMF_CERTTEMPLATE) typedef STACK_OF(OSSL_CRMF_MSG) OSSL_CRMF_MSGS; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_MSGS) @@ -198,12 +233,14 @@ int OSSL_CRMF_MSGS_verify_popo(const OSSL_CRMF_MSGS *reqs, int rid, int acceptRAVerified, OSSL_LIB_CTX *libctx, const char *propq); OSSL_CRMF_CERTTEMPLATE *OSSL_CRMF_MSG_get0_tmpl(const OSSL_CRMF_MSG *crm); -const ASN1_INTEGER -*OSSL_CRMF_CERTTEMPLATE_get0_serialNumber(const OSSL_CRMF_CERTTEMPLATE *tmpl); +X509_PUBKEY +*OSSL_CRMF_CERTTEMPLATE_get0_publicKey(const OSSL_CRMF_CERTTEMPLATE *tmpl); const X509_NAME *OSSL_CRMF_CERTTEMPLATE_get0_subject(const OSSL_CRMF_CERTTEMPLATE *tmpl); const X509_NAME *OSSL_CRMF_CERTTEMPLATE_get0_issuer(const OSSL_CRMF_CERTTEMPLATE *tmpl); +const ASN1_INTEGER +*OSSL_CRMF_CERTTEMPLATE_get0_serialNumber(const OSSL_CRMF_CERTTEMPLATE *tmpl); X509_EXTENSIONS *OSSL_CRMF_CERTTEMPLATE_get0_extensions(const OSSL_CRMF_CERTTEMPLATE *tmpl); const X509_NAME @@ -215,10 +252,24 @@ int OSSL_CRMF_CERTTEMPLATE_fill(OSSL_CRMF_CERTTEMPLATE *tmpl, const X509_NAME *subject, const X509_NAME *issuer, const ASN1_INTEGER *serial); -X509 -*OSSL_CRMF_ENCRYPTEDVALUE_get1_encCert(const OSSL_CRMF_ENCRYPTEDVALUE *ecert, - OSSL_LIB_CTX *libctx, const char *propq, - EVP_PKEY *pkey); +X509 *OSSL_CRMF_ENCRYPTEDVALUE_get1_encCert(const OSSL_CRMF_ENCRYPTEDVALUE *ecert, + OSSL_LIB_CTX *libctx, const char *propq, + EVP_PKEY *pkey); +X509 *OSSL_CRMF_ENCRYPTEDKEY_get1_encCert(const OSSL_CRMF_ENCRYPTEDKEY *ecert, + OSSL_LIB_CTX *libctx, const char *propq, + EVP_PKEY *pkey, unsigned int flags); +unsigned char +*OSSL_CRMF_ENCRYPTEDVALUE_decrypt(const OSSL_CRMF_ENCRYPTEDVALUE *enc, + OSSL_LIB_CTX *libctx, const char *propq, + EVP_PKEY *pkey, int *outlen); +EVP_PKEY *OSSL_CRMF_ENCRYPTEDKEY_get1_pkey(const OSSL_CRMF_ENCRYPTEDKEY *encryptedKey, + X509_STORE *ts, STACK_OF(X509) *extra, EVP_PKEY *pkey, + X509 *cert, ASN1_OCTET_STRING *secret, + OSSL_LIB_CTX *libctx, const char *propq); +int OSSL_CRMF_MSG_centralkeygen_requested(const OSSL_CRMF_MSG *crm, const X509_REQ *p10cr); +# ifndef OPENSSL_NO_CMS +OSSL_CRMF_ENCRYPTEDKEY *OSSL_CRMF_ENCRYPTEDKEY_init_envdata(CMS_EnvelopedData *envdata); +# endif # ifdef __cplusplus } diff --git a/deps/openssl/config/archs/BSD-x86/no-asm/include/openssl/crypto.h b/deps/openssl/config/archs/BSD-x86/no-asm/include/openssl/crypto.h index 3f40be6d8c61d5..fd2cfd3e5a9ac4 100644 --- a/deps/openssl/config/archs/BSD-x86/no-asm/include/openssl/crypto.h +++ b/deps/openssl/config/archs/BSD-x86/no-asm/include/openssl/crypto.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/crypto.h.in * - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2024 The OpenSSL Project Authors. All Rights Reserved. * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved * * Licensed under the Apache License 2.0 (the "License"). You may not use @@ -85,9 +85,15 @@ int CRYPTO_THREAD_unlock(CRYPTO_RWLOCK *lock); void CRYPTO_THREAD_lock_free(CRYPTO_RWLOCK *lock); int CRYPTO_atomic_add(int *val, int amount, int *ret, CRYPTO_RWLOCK *lock); +int CRYPTO_atomic_add64(uint64_t *val, uint64_t op, uint64_t *ret, + CRYPTO_RWLOCK *lock); +int CRYPTO_atomic_and(uint64_t *val, uint64_t op, uint64_t *ret, + CRYPTO_RWLOCK *lock); int CRYPTO_atomic_or(uint64_t *val, uint64_t op, uint64_t *ret, CRYPTO_RWLOCK *lock); int CRYPTO_atomic_load(uint64_t *val, uint64_t *ret, CRYPTO_RWLOCK *lock); +int CRYPTO_atomic_load_int(int *val, int *ret, CRYPTO_RWLOCK *lock); +int CRYPTO_atomic_store(uint64_t *dst, uint64_t val, CRYPTO_RWLOCK *lock); /* No longer needed, so this is a no-op */ #define OPENSSL_malloc_init() while(0) continue @@ -96,6 +102,9 @@ int CRYPTO_atomic_load(uint64_t *val, uint64_t *ret, CRYPTO_RWLOCK *lock); CRYPTO_malloc(num, OPENSSL_FILE, OPENSSL_LINE) # define OPENSSL_zalloc(num) \ CRYPTO_zalloc(num, OPENSSL_FILE, OPENSSL_LINE) +# define OPENSSL_aligned_alloc(num, alignment, freeptr) \ + CRYPTO_aligned_alloc(num, alignment, freeptr, \ + OPENSSL_FILE, OPENSSL_LINE) # define OPENSSL_realloc(addr, num) \ CRYPTO_realloc(addr, num, OPENSSL_FILE, OPENSSL_LINE) # define OPENSSL_clear_realloc(addr, old_num, num) \ @@ -124,6 +133,7 @@ int CRYPTO_atomic_load(uint64_t *val, uint64_t *ret, CRYPTO_RWLOCK *lock); size_t OPENSSL_strlcpy(char *dst, const char *src, size_t siz); size_t OPENSSL_strlcat(char *dst, const char *src, size_t siz); size_t OPENSSL_strnlen(const char *str, size_t maxlen); +int OPENSSL_strtoul(const char *str, char **endptr, int base, unsigned long *num); int OPENSSL_buf2hexstr_ex(char *str, size_t str_n, size_t *strlength, const unsigned char *buf, size_t buflen, const char sep); @@ -160,6 +170,7 @@ const char *OpenSSL_version(int type); # define OPENSSL_FULL_VERSION_STRING 7 # define OPENSSL_MODULES_DIR 8 # define OPENSSL_CPU_INFO 9 +# define OPENSSL_WINCTX 10 const char *OPENSSL_info(int type); /* @@ -174,6 +185,7 @@ const char *OPENSSL_info(int type); # define OPENSSL_INFO_LIST_SEPARATOR 1006 # define OPENSSL_INFO_SEED_SOURCE 1007 # define OPENSSL_INFO_CPU_SETTINGS 1008 +# define OPENSSL_INFO_WINDOWS_CONTEXT 1009 int OPENSSL_issetugid(void); @@ -341,11 +353,14 @@ void CRYPTO_get_mem_functions(CRYPTO_malloc_fn *malloc_fn, CRYPTO_realloc_fn *realloc_fn, CRYPTO_free_fn *free_fn); -void *CRYPTO_malloc(size_t num, const char *file, int line); -void *CRYPTO_zalloc(size_t num, const char *file, int line); -void *CRYPTO_memdup(const void *str, size_t siz, const char *file, int line); -char *CRYPTO_strdup(const char *str, const char *file, int line); -char *CRYPTO_strndup(const char *str, size_t s, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_malloc(size_t num, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_zalloc(size_t num, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_aligned_alloc(size_t num, size_t align, + void **freeptr, const char *file, + int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_memdup(const void *str, size_t siz, const char *file, int line); +OSSL_CRYPTO_ALLOC char *CRYPTO_strdup(const char *str, const char *file, int line); +OSSL_CRYPTO_ALLOC char *CRYPTO_strndup(const char *str, size_t s, const char *file, int line); void CRYPTO_free(void *ptr, const char *file, int line); void CRYPTO_clear_free(void *ptr, size_t num, const char *file, int line); void *CRYPTO_realloc(void *addr, size_t num, const char *file, int line); @@ -354,8 +369,8 @@ void *CRYPTO_clear_realloc(void *addr, size_t old_num, size_t num, int CRYPTO_secure_malloc_init(size_t sz, size_t minsize); int CRYPTO_secure_malloc_done(void); -void *CRYPTO_secure_malloc(size_t num, const char *file, int line); -void *CRYPTO_secure_zalloc(size_t num, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_secure_malloc(size_t num, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_secure_zalloc(size_t num, const char *file, int line); void CRYPTO_secure_free(void *ptr, const char *file, int line); void CRYPTO_secure_clear_free(void *ptr, size_t num, const char *file, int line); @@ -376,6 +391,9 @@ void OPENSSL_cleanse(void *ptr, size_t len); # define CRYPTO_MEM_CHECK_ENABLE 0x2 /* Control and mode bit */ # define CRYPTO_MEM_CHECK_DISABLE 0x3 /* Control only */ +/* max allowed length for value of OPENSSL_MALLOC_FAILURES env var. */ +# define CRYPTO_MEM_CHECK_MAX_FS 256 + void CRYPTO_get_alloc_counts(int *mcount, int *rcount, int *fcount); # ifndef OPENSSL_NO_DEPRECATED_3_0 # define OPENSSL_mem_debug_push(info) \ @@ -551,6 +569,13 @@ int OSSL_LIB_CTX_load_config(OSSL_LIB_CTX *ctx, const char *config_file); void OSSL_LIB_CTX_free(OSSL_LIB_CTX *); OSSL_LIB_CTX *OSSL_LIB_CTX_get0_global_default(void); OSSL_LIB_CTX *OSSL_LIB_CTX_set0_default(OSSL_LIB_CTX *libctx); +int OSSL_LIB_CTX_get_conf_diagnostics(OSSL_LIB_CTX *ctx); +void OSSL_LIB_CTX_set_conf_diagnostics(OSSL_LIB_CTX *ctx, int value); + +void OSSL_sleep(uint64_t millis); + + +void *OSSL_LIB_CTX_get_data(OSSL_LIB_CTX *ctx, int index); # ifdef __cplusplus } diff --git a/deps/openssl/config/archs/BSD-x86/no-asm/include/openssl/ct.h b/deps/openssl/config/archs/BSD-x86/no-asm/include/openssl/ct.h index b6dd8c3547710a..e6dd1192a4e0b3 100644 --- a/deps/openssl/config/archs/BSD-x86/no-asm/include/openssl/ct.h +++ b/deps/openssl/config/archs/BSD-x86/no-asm/include/openssl/ct.h @@ -133,7 +133,7 @@ typedef enum { */ CT_POLICY_EVAL_CTX *CT_POLICY_EVAL_CTX_new_ex(OSSL_LIB_CTX *libctx, const char *propq); - + /* * The same as CT_POLICY_EVAL_CTX_new_ex() but the default library * context and property query string is used. diff --git a/deps/openssl/config/archs/BSD-x86/no-asm/include/openssl/err.h b/deps/openssl/config/archs/BSD-x86/no-asm/include/openssl/err.h index 2abf2483488181..daca18e7b757b0 100644 --- a/deps/openssl/config/archs/BSD-x86/no-asm/include/openssl/err.h +++ b/deps/openssl/config/archs/BSD-x86/no-asm/include/openssl/err.h @@ -1,5 +1,5 @@ /* - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -372,7 +372,7 @@ typedef struct ERR_string_data_st { } ERR_STRING_DATA; DEFINE_LHASH_OF_INTERNAL(ERR_STRING_DATA); -#define lh_ERR_STRING_DATA_new(hfn, cmp) ((LHASH_OF(ERR_STRING_DATA) *)OPENSSL_LH_new(ossl_check_ERR_STRING_DATA_lh_hashfunc_type(hfn), ossl_check_ERR_STRING_DATA_lh_compfunc_type(cmp))) +#define lh_ERR_STRING_DATA_new(hfn, cmp) ((LHASH_OF(ERR_STRING_DATA) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new(ossl_check_ERR_STRING_DATA_lh_hashfunc_type(hfn), ossl_check_ERR_STRING_DATA_lh_compfunc_type(cmp)), lh_ERR_STRING_DATA_hash_thunk, lh_ERR_STRING_DATA_comp_thunk, lh_ERR_STRING_DATA_doall_thunk, lh_ERR_STRING_DATA_doall_arg_thunk)) #define lh_ERR_STRING_DATA_free(lh) OPENSSL_LH_free(ossl_check_ERR_STRING_DATA_lh_type(lh)) #define lh_ERR_STRING_DATA_flush(lh) OPENSSL_LH_flush(ossl_check_ERR_STRING_DATA_lh_type(lh)) #define lh_ERR_STRING_DATA_insert(lh, ptr) ((ERR_STRING_DATA *)OPENSSL_LH_insert(ossl_check_ERR_STRING_DATA_lh_type(lh), ossl_check_ERR_STRING_DATA_lh_plain_type(ptr))) @@ -496,6 +496,14 @@ int ERR_get_next_error_library(void); int ERR_set_mark(void); int ERR_pop_to_mark(void); int ERR_clear_last_mark(void); +int ERR_count_to_mark(void); +int ERR_pop(void); + +ERR_STATE *OSSL_ERR_STATE_new(void); +void OSSL_ERR_STATE_save(ERR_STATE *es); +void OSSL_ERR_STATE_save_to_mark(ERR_STATE *es); +void OSSL_ERR_STATE_restore(const ERR_STATE *es); +void OSSL_ERR_STATE_free(ERR_STATE *es); #ifdef __cplusplus } diff --git a/deps/openssl/config/archs/BSD-x86/no-asm/include/openssl/fipskey.h b/deps/openssl/config/archs/BSD-x86/no-asm/include/openssl/fipskey.h index 42ba014b313ba8..929db18c678364 100644 --- a/deps/openssl/config/archs/BSD-x86/no-asm/include/openssl/fipskey.h +++ b/deps/openssl/config/archs/BSD-x86/no-asm/include/openssl/fipskey.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/fipskey.h.in * - * Copyright 2020-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2020-2024 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -29,6 +29,11 @@ extern "C" { */ #define FIPS_KEY_STRING "f4556650ac31d35461610bac4ed81b1a181b2d8a43ea2854cbae22ca74560813" +/* + * The FIPS provider vendor name, as a string. + */ +#define FIPS_VENDOR "OpenSSL FIPS Provider" + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/BSD-x86/no-asm/include/openssl/lhash.h b/deps/openssl/config/archs/BSD-x86/no-asm/include/openssl/lhash.h index 39dd6254acdeb6..62c55b20fd9716 100644 --- a/deps/openssl/config/archs/BSD-x86/no-asm/include/openssl/lhash.h +++ b/deps/openssl/config/archs/BSD-x86/no-asm/include/openssl/lhash.h @@ -1,5 +1,5 @@ /* - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2024 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -24,6 +24,9 @@ # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -31,9 +34,13 @@ extern "C" { typedef struct lhash_node_st OPENSSL_LH_NODE; typedef int (*OPENSSL_LH_COMPFUNC) (const void *, const void *); +typedef int (*OPENSSL_LH_COMPFUNCTHUNK) (const void *, const void *, OPENSSL_LH_COMPFUNC cfn); typedef unsigned long (*OPENSSL_LH_HASHFUNC) (const void *); +typedef unsigned long (*OPENSSL_LH_HASHFUNCTHUNK) (const void *, OPENSSL_LH_HASHFUNC hfn); typedef void (*OPENSSL_LH_DOALL_FUNC) (void *); +typedef void (*OPENSSL_LH_DOALL_FUNC_THUNK) (void *, OPENSSL_LH_DOALL_FUNC doall); typedef void (*OPENSSL_LH_DOALL_FUNCARG) (void *, void *); +typedef void (*OPENSSL_LH_DOALL_FUNCARG_THUNK) (void *, void *, OPENSSL_LH_DOALL_FUNCARG doall); typedef struct lhash_st OPENSSL_LHASH; /* @@ -79,26 +86,40 @@ typedef struct lhash_st OPENSSL_LHASH; int OPENSSL_LH_error(OPENSSL_LHASH *lh); OPENSSL_LHASH *OPENSSL_LH_new(OPENSSL_LH_HASHFUNC h, OPENSSL_LH_COMPFUNC c); +OPENSSL_LHASH *OPENSSL_LH_set_thunks(OPENSSL_LHASH *lh, + OPENSSL_LH_HASHFUNCTHUNK hw, + OPENSSL_LH_COMPFUNCTHUNK cw, + OPENSSL_LH_DOALL_FUNC_THUNK daw, + OPENSSL_LH_DOALL_FUNCARG_THUNK daaw); void OPENSSL_LH_free(OPENSSL_LHASH *lh); void OPENSSL_LH_flush(OPENSSL_LHASH *lh); void *OPENSSL_LH_insert(OPENSSL_LHASH *lh, void *data); void *OPENSSL_LH_delete(OPENSSL_LHASH *lh, const void *data); void *OPENSSL_LH_retrieve(OPENSSL_LHASH *lh, const void *data); void OPENSSL_LH_doall(OPENSSL_LHASH *lh, OPENSSL_LH_DOALL_FUNC func); -void OPENSSL_LH_doall_arg(OPENSSL_LHASH *lh, OPENSSL_LH_DOALL_FUNCARG func, void *arg); +void OPENSSL_LH_doall_arg(OPENSSL_LHASH *lh, + OPENSSL_LH_DOALL_FUNCARG func, void *arg); +void OPENSSL_LH_doall_arg_thunk(OPENSSL_LHASH *lh, + OPENSSL_LH_DOALL_FUNCARG_THUNK daaw, + OPENSSL_LH_DOALL_FUNCARG fn, void *arg); + unsigned long OPENSSL_LH_strhash(const char *c); unsigned long OPENSSL_LH_num_items(const OPENSSL_LHASH *lh); unsigned long OPENSSL_LH_get_down_load(const OPENSSL_LHASH *lh); void OPENSSL_LH_set_down_load(OPENSSL_LHASH *lh, unsigned long down_load); # ifndef OPENSSL_NO_STDIO -void OPENSSL_LH_stats(const OPENSSL_LHASH *lh, FILE *fp); -void OPENSSL_LH_node_stats(const OPENSSL_LHASH *lh, FILE *fp); -void OPENSSL_LH_node_usage_stats(const OPENSSL_LHASH *lh, FILE *fp); +# ifndef OPENSSL_NO_DEPRECATED_3_1 +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_stats(const OPENSSL_LHASH *lh, FILE *fp); +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_node_stats(const OPENSSL_LHASH *lh, FILE *fp); +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_node_usage_stats(const OPENSSL_LHASH *lh, FILE *fp); +# endif +# endif +# ifndef OPENSSL_NO_DEPRECATED_3_1 +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_stats_bio(const OPENSSL_LHASH *lh, BIO *out); +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_node_stats_bio(const OPENSSL_LHASH *lh, BIO *out); +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_node_usage_stats_bio(const OPENSSL_LHASH *lh, BIO *out); # endif -void OPENSSL_LH_stats_bio(const OPENSSL_LHASH *lh, BIO *out); -void OPENSSL_LH_node_stats_bio(const OPENSSL_LHASH *lh, BIO *out); -void OPENSSL_LH_node_usage_stats_bio(const OPENSSL_LHASH *lh, BIO *out); # ifndef OPENSSL_NO_DEPRECATED_1_1_0 # define _LHASH OPENSSL_LHASH @@ -129,110 +150,190 @@ void OPENSSL_LH_node_usage_stats_bio(const OPENSSL_LHASH *lh, BIO *out); /* Helper macro for internal use */ # define DEFINE_LHASH_OF_INTERNAL(type) \ - LHASH_OF(type) { union lh_##type##_dummy { void* d1; unsigned long d2; int d3; } dummy; }; \ + LHASH_OF(type) { \ + union lh_##type##_dummy { void* d1; unsigned long d2; int d3; } dummy; \ + }; \ typedef int (*lh_##type##_compfunc)(const type *a, const type *b); \ typedef unsigned long (*lh_##type##_hashfunc)(const type *a); \ typedef void (*lh_##type##_doallfunc)(type *a); \ - static ossl_unused ossl_inline type *ossl_check_##type##_lh_plain_type(type *ptr) \ + static ossl_inline unsigned long lh_##type##_hash_thunk(const void *data, OPENSSL_LH_HASHFUNC hfn) \ + { \ + unsigned long (*hfn_conv)(const type *) = (unsigned long (*)(const type *))hfn; \ + return hfn_conv((const type *)data); \ + } \ + static ossl_inline int lh_##type##_comp_thunk(const void *da, const void *db, OPENSSL_LH_COMPFUNC cfn) \ + { \ + int (*cfn_conv)(const type *, const type *) = (int (*)(const type *, const type *))cfn; \ + return cfn_conv((const type *)da, (const type *)db); \ + } \ + static ossl_inline void lh_##type##_doall_thunk(void *node, OPENSSL_LH_DOALL_FUNC doall) \ + { \ + void (*doall_conv)(type *) = (void (*)(type *))doall; \ + doall_conv((type *)node); \ + } \ + static ossl_inline void lh_##type##_doall_arg_thunk(void *node, void *arg, OPENSSL_LH_DOALL_FUNCARG doall) \ + { \ + void (*doall_conv)(type *, void *) = (void (*)(type *, void *))doall; \ + doall_conv((type *)node, arg); \ + } \ + static ossl_unused ossl_inline type *\ + ossl_check_##type##_lh_plain_type(type *ptr) \ { \ return ptr; \ } \ - static ossl_unused ossl_inline const type *ossl_check_const_##type##_lh_plain_type(const type *ptr) \ + static ossl_unused ossl_inline const type * \ + ossl_check_const_##type##_lh_plain_type(const type *ptr) \ { \ return ptr; \ } \ - static ossl_unused ossl_inline const OPENSSL_LHASH *ossl_check_const_##type##_lh_type(const LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline const OPENSSL_LHASH * \ + ossl_check_const_##type##_lh_type(const LHASH_OF(type) *lh) \ { \ return (const OPENSSL_LHASH *)lh; \ } \ - static ossl_unused ossl_inline OPENSSL_LHASH *ossl_check_##type##_lh_type(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline OPENSSL_LHASH * \ + ossl_check_##type##_lh_type(LHASH_OF(type) *lh) \ { \ return (OPENSSL_LHASH *)lh; \ } \ - static ossl_unused ossl_inline OPENSSL_LH_COMPFUNC ossl_check_##type##_lh_compfunc_type(lh_##type##_compfunc cmp) \ + static ossl_unused ossl_inline OPENSSL_LH_COMPFUNC \ + ossl_check_##type##_lh_compfunc_type(lh_##type##_compfunc cmp) \ { \ return (OPENSSL_LH_COMPFUNC)cmp; \ } \ - static ossl_unused ossl_inline OPENSSL_LH_HASHFUNC ossl_check_##type##_lh_hashfunc_type(lh_##type##_hashfunc hfn) \ + static ossl_unused ossl_inline OPENSSL_LH_HASHFUNC \ + ossl_check_##type##_lh_hashfunc_type(lh_##type##_hashfunc hfn) \ { \ return (OPENSSL_LH_HASHFUNC)hfn; \ } \ - static ossl_unused ossl_inline OPENSSL_LH_DOALL_FUNC ossl_check_##type##_lh_doallfunc_type(lh_##type##_doallfunc dfn) \ + static ossl_unused ossl_inline OPENSSL_LH_DOALL_FUNC \ + ossl_check_##type##_lh_doallfunc_type(lh_##type##_doallfunc dfn) \ { \ return (OPENSSL_LH_DOALL_FUNC)dfn; \ } \ LHASH_OF(type) -# define DEFINE_LHASH_OF(type) \ - LHASH_OF(type) { union lh_##type##_dummy { void* d1; unsigned long d2; int d3; } dummy; }; \ - static ossl_unused ossl_inline LHASH_OF(type) *lh_##type##_new(unsigned long (*hfn)(const type *), \ - int (*cfn)(const type *, const type *)) \ +# ifndef OPENSSL_NO_DEPRECATED_3_1 +# define DEFINE_LHASH_OF_DEPRECATED(type) \ + static ossl_unused ossl_inline void \ + lh_##type##_node_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ { \ - return (LHASH_OF(type) *) \ - OPENSSL_LH_new((OPENSSL_LH_HASHFUNC)hfn, (OPENSSL_LH_COMPFUNC)cfn); \ + OPENSSL_LH_node_stats_bio((const OPENSSL_LHASH *)lh, out); \ } \ - static ossl_unused ossl_inline void lh_##type##_free(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline void \ + lh_##type##_node_usage_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + { \ + OPENSSL_LH_node_usage_stats_bio((const OPENSSL_LHASH *)lh, out); \ + } \ + static ossl_unused ossl_inline void \ + lh_##type##_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + { \ + OPENSSL_LH_stats_bio((const OPENSSL_LHASH *)lh, out); \ + } +# else +# define DEFINE_LHASH_OF_DEPRECATED(type) +# endif + +# define DEFINE_LHASH_OF_EX(type) \ + LHASH_OF(type) { \ + union lh_##type##_dummy { void* d1; unsigned long d2; int d3; } dummy; \ + }; \ + static unsigned long \ + lh_##type##_hfn_thunk(const void *data, OPENSSL_LH_HASHFUNC hfn) \ + { \ + unsigned long (*hfn_conv)(const type *) = (unsigned long (*)(const type *))hfn; \ + return hfn_conv((const type *)data); \ + } \ + static int lh_##type##_cfn_thunk(const void *da, const void *db, OPENSSL_LH_COMPFUNC cfn) \ + { \ + int (*cfn_conv)(const type *, const type *) = (int (*)(const type *, const type *))cfn; \ + return cfn_conv((const type *)da, (const type *)db); \ + } \ + static ossl_unused ossl_inline void \ + lh_##type##_free(LHASH_OF(type) *lh) \ { \ OPENSSL_LH_free((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline void lh_##type##_flush(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline void \ + lh_##type##_flush(LHASH_OF(type) *lh) \ { \ OPENSSL_LH_flush((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline type *lh_##type##_insert(LHASH_OF(type) *lh, type *d) \ + static ossl_unused ossl_inline type * \ + lh_##type##_insert(LHASH_OF(type) *lh, type *d) \ { \ return (type *)OPENSSL_LH_insert((OPENSSL_LHASH *)lh, d); \ } \ - static ossl_unused ossl_inline type *lh_##type##_delete(LHASH_OF(type) *lh, const type *d) \ + static ossl_unused ossl_inline type * \ + lh_##type##_delete(LHASH_OF(type) *lh, const type *d) \ { \ return (type *)OPENSSL_LH_delete((OPENSSL_LHASH *)lh, d); \ } \ - static ossl_unused ossl_inline type *lh_##type##_retrieve(LHASH_OF(type) *lh, const type *d) \ + static ossl_unused ossl_inline type * \ + lh_##type##_retrieve(LHASH_OF(type) *lh, const type *d) \ { \ return (type *)OPENSSL_LH_retrieve((OPENSSL_LHASH *)lh, d); \ } \ - static ossl_unused ossl_inline int lh_##type##_error(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline int \ + lh_##type##_error(LHASH_OF(type) *lh) \ { \ return OPENSSL_LH_error((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline unsigned long lh_##type##_num_items(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline unsigned long \ + lh_##type##_num_items(LHASH_OF(type) *lh) \ { \ return OPENSSL_LH_num_items((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline void lh_##type##_node_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + static ossl_unused ossl_inline unsigned long \ + lh_##type##_get_down_load(LHASH_OF(type) *lh) \ { \ - OPENSSL_LH_node_stats_bio((const OPENSSL_LHASH *)lh, out); \ + return OPENSSL_LH_get_down_load((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline void lh_##type##_node_usage_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + static ossl_unused ossl_inline void \ + lh_##type##_set_down_load(LHASH_OF(type) *lh, unsigned long dl) \ { \ - OPENSSL_LH_node_usage_stats_bio((const OPENSSL_LHASH *)lh, out); \ + OPENSSL_LH_set_down_load((OPENSSL_LHASH *)lh, dl); \ } \ - static ossl_unused ossl_inline void lh_##type##_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall_thunk(void *node, OPENSSL_LH_DOALL_FUNC doall) \ { \ - OPENSSL_LH_stats_bio((const OPENSSL_LHASH *)lh, out); \ + void (*doall_conv)(type *) = (void (*)(type *))doall; \ + doall_conv((type *)node); \ } \ - static ossl_unused ossl_inline unsigned long lh_##type##_get_down_load(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall_arg_thunk(void *node, void *arg, OPENSSL_LH_DOALL_FUNCARG doall) \ { \ - return OPENSSL_LH_get_down_load((OPENSSL_LHASH *)lh); \ + void (*doall_conv)(type *, void *) = (void (*)(type *, void *))doall; \ + doall_conv((type *)node, arg); \ } \ - static ossl_unused ossl_inline void lh_##type##_set_down_load(LHASH_OF(type) *lh, unsigned long dl) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall(LHASH_OF(type) *lh, void (*doall)(type *)) \ { \ - OPENSSL_LH_set_down_load((OPENSSL_LHASH *)lh, dl); \ + OPENSSL_LH_doall((OPENSSL_LHASH *)lh, (OPENSSL_LH_DOALL_FUNC)doall); \ } \ - static ossl_unused ossl_inline void lh_##type##_doall(LHASH_OF(type) *lh, \ - void (*doall)(type *)) \ + static ossl_unused ossl_inline LHASH_OF(type) * \ + lh_##type##_new(unsigned long (*hfn)(const type *), \ + int (*cfn)(const type *, const type *)) \ { \ - OPENSSL_LH_doall((OPENSSL_LHASH *)lh, (OPENSSL_LH_DOALL_FUNC)doall); \ + return (LHASH_OF(type) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new((OPENSSL_LH_HASHFUNC)hfn, (OPENSSL_LH_COMPFUNC)cfn), \ + lh_##type##_hfn_thunk, lh_##type##_cfn_thunk, \ + lh_##type##_doall_thunk, \ + lh_##type##_doall_arg_thunk); \ } \ - static ossl_unused ossl_inline void lh_##type##_doall_arg(LHASH_OF(type) *lh, \ - void (*doallarg)(type *, void *), \ - void *arg) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall_arg(LHASH_OF(type) *lh, \ + void (*doallarg)(type *, void *), void *arg) \ { \ OPENSSL_LH_doall_arg((OPENSSL_LHASH *)lh, \ (OPENSSL_LH_DOALL_FUNCARG)doallarg, arg); \ } \ LHASH_OF(type) +# define DEFINE_LHASH_OF(type) \ + DEFINE_LHASH_OF_EX(type); \ + DEFINE_LHASH_OF_DEPRECATED(type) \ + LHASH_OF(type) + #define IMPLEMENT_LHASH_DOALL_ARG_CONST(type, argtype) \ int_implement_lhash_doall(type, argtype, const type) @@ -240,17 +341,26 @@ void OPENSSL_LH_node_usage_stats_bio(const OPENSSL_LHASH *lh, BIO *out); int_implement_lhash_doall(type, argtype, type) #define int_implement_lhash_doall(type, argtype, cbargtype) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall_##argtype##_thunk(void *node, void *arg, OPENSSL_LH_DOALL_FUNCARG fn) \ + { \ + void (*fn_conv)(cbargtype *, argtype *) = (void (*)(cbargtype *, argtype *))fn; \ + fn_conv((cbargtype *)node, (argtype *)arg); \ + } \ static ossl_unused ossl_inline void \ lh_##type##_doall_##argtype(LHASH_OF(type) *lh, \ void (*fn)(cbargtype *, argtype *), \ argtype *arg) \ { \ - OPENSSL_LH_doall_arg((OPENSSL_LHASH *)lh, (OPENSSL_LH_DOALL_FUNCARG)fn, (void *)arg); \ + OPENSSL_LH_doall_arg_thunk((OPENSSL_LHASH *)lh, \ + lh_##type##_doall_##argtype##_thunk, \ + (OPENSSL_LH_DOALL_FUNCARG)fn, \ + (void *)arg); \ } \ LHASH_OF(type) DEFINE_LHASH_OF_INTERNAL(OPENSSL_STRING); -#define lh_OPENSSL_STRING_new(hfn, cmp) ((LHASH_OF(OPENSSL_STRING) *)OPENSSL_LH_new(ossl_check_OPENSSL_STRING_lh_hashfunc_type(hfn), ossl_check_OPENSSL_STRING_lh_compfunc_type(cmp))) +#define lh_OPENSSL_STRING_new(hfn, cmp) ((LHASH_OF(OPENSSL_STRING) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new(ossl_check_OPENSSL_STRING_lh_hashfunc_type(hfn), ossl_check_OPENSSL_STRING_lh_compfunc_type(cmp)), lh_OPENSSL_STRING_hash_thunk, lh_OPENSSL_STRING_comp_thunk, lh_OPENSSL_STRING_doall_thunk, lh_OPENSSL_STRING_doall_arg_thunk)) #define lh_OPENSSL_STRING_free(lh) OPENSSL_LH_free(ossl_check_OPENSSL_STRING_lh_type(lh)) #define lh_OPENSSL_STRING_flush(lh) OPENSSL_LH_flush(ossl_check_OPENSSL_STRING_lh_type(lh)) #define lh_OPENSSL_STRING_insert(lh, ptr) ((OPENSSL_STRING *)OPENSSL_LH_insert(ossl_check_OPENSSL_STRING_lh_type(lh), ossl_check_OPENSSL_STRING_lh_plain_type(ptr))) @@ -265,7 +375,7 @@ DEFINE_LHASH_OF_INTERNAL(OPENSSL_STRING); #define lh_OPENSSL_STRING_set_down_load(lh, dl) OPENSSL_LH_set_down_load(ossl_check_OPENSSL_STRING_lh_type(lh), dl) #define lh_OPENSSL_STRING_doall(lh, dfn) OPENSSL_LH_doall(ossl_check_OPENSSL_STRING_lh_type(lh), ossl_check_OPENSSL_STRING_lh_doallfunc_type(dfn)) DEFINE_LHASH_OF_INTERNAL(OPENSSL_CSTRING); -#define lh_OPENSSL_CSTRING_new(hfn, cmp) ((LHASH_OF(OPENSSL_CSTRING) *)OPENSSL_LH_new(ossl_check_OPENSSL_CSTRING_lh_hashfunc_type(hfn), ossl_check_OPENSSL_CSTRING_lh_compfunc_type(cmp))) +#define lh_OPENSSL_CSTRING_new(hfn, cmp) ((LHASH_OF(OPENSSL_CSTRING) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new(ossl_check_OPENSSL_CSTRING_lh_hashfunc_type(hfn), ossl_check_OPENSSL_CSTRING_lh_compfunc_type(cmp)), lh_OPENSSL_CSTRING_hash_thunk, lh_OPENSSL_CSTRING_comp_thunk, lh_OPENSSL_CSTRING_doall_thunk, lh_OPENSSL_CSTRING_doall_arg_thunk)) #define lh_OPENSSL_CSTRING_free(lh) OPENSSL_LH_free(ossl_check_OPENSSL_CSTRING_lh_type(lh)) #define lh_OPENSSL_CSTRING_flush(lh) OPENSSL_LH_flush(ossl_check_OPENSSL_CSTRING_lh_type(lh)) #define lh_OPENSSL_CSTRING_insert(lh, ptr) ((OPENSSL_CSTRING *)OPENSSL_LH_insert(ossl_check_OPENSSL_CSTRING_lh_type(lh), ossl_check_OPENSSL_CSTRING_lh_plain_type(ptr))) diff --git a/deps/openssl/config/archs/BSD-x86/no-asm/include/openssl/opensslv.h b/deps/openssl/config/archs/BSD-x86/no-asm/include/openssl/opensslv.h index 5fb5bc63056fe0..dd50d89cb9982d 100644 --- a/deps/openssl/config/archs/BSD-x86/no-asm/include/openssl/opensslv.h +++ b/deps/openssl/config/archs/BSD-x86/no-asm/include/openssl/opensslv.h @@ -28,8 +28,8 @@ extern "C" { * These macros express version number MAJOR.MINOR.PATCH exactly */ # define OPENSSL_VERSION_MAJOR 3 -# define OPENSSL_VERSION_MINOR 0 -# define OPENSSL_VERSION_PATCH 17 +# define OPENSSL_VERSION_MINOR 5 +# define OPENSSL_VERSION_PATCH 1 /* * Additional version information @@ -74,8 +74,8 @@ extern "C" { * longer variant with OPENSSL_VERSION_PRE_RELEASE_STR and * OPENSSL_VERSION_BUILD_METADATA_STR appended. */ -# define OPENSSL_VERSION_STR "3.0.17" -# define OPENSSL_FULL_VERSION_STR "3.0.17" +# define OPENSSL_VERSION_STR "3.5.1" +# define OPENSSL_FULL_VERSION_STR "3.5.1" /* * SECTION 3: ADDITIONAL METADATA @@ -88,7 +88,7 @@ extern "C" { * SECTION 4: BACKWARD COMPATIBILITY */ -# define OPENSSL_VERSION_TEXT "OpenSSL 3.0.17 1 Jul 2025" +# define OPENSSL_VERSION_TEXT "OpenSSL 3.5.1 1 Jul 2025" /* Synthesize OPENSSL_VERSION_NUMBER with the layout 0xMNN00PPSL */ # ifdef OPENSSL_VERSION_PRE_RELEASE diff --git a/deps/openssl/config/archs/BSD-x86/no-asm/include/openssl/pkcs12.h b/deps/openssl/config/archs/BSD-x86/no-asm/include/openssl/pkcs12.h index c5e0cab06491ec..0809645dad0bbf 100644 --- a/deps/openssl/config/archs/BSD-x86/no-asm/include/openssl/pkcs12.h +++ b/deps/openssl/config/archs/BSD-x86/no-asm/include/openssl/pkcs12.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/pkcs12.h.in * - * Copyright 1999-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1999-2024 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -25,6 +25,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -41,6 +44,7 @@ extern "C" { # define PKCS12_MAC_KEY_LENGTH 20 +/* The macro is expected to be used only internally. Kept for backwards compatibility. */ # define PKCS12_SALT_LEN 8 /* It's not clear if these are actually needed... */ @@ -130,7 +134,9 @@ int PKCS12_SAFEBAG_get_bag_nid(const PKCS12_SAFEBAG *bag); const ASN1_TYPE *PKCS12_SAFEBAG_get0_bag_obj(const PKCS12_SAFEBAG *bag); const ASN1_OBJECT *PKCS12_SAFEBAG_get0_bag_type(const PKCS12_SAFEBAG *bag); +X509 *PKCS12_SAFEBAG_get1_cert_ex(const PKCS12_SAFEBAG *bag, OSSL_LIB_CTX *libctx, const char *propq); X509 *PKCS12_SAFEBAG_get1_cert(const PKCS12_SAFEBAG *bag); +X509_CRL *PKCS12_SAFEBAG_get1_crl_ex(const PKCS12_SAFEBAG *bag, OSSL_LIB_CTX *libctx, const char *propq); X509_CRL *PKCS12_SAFEBAG_get1_crl(const PKCS12_SAFEBAG *bag); const STACK_OF(PKCS12_SAFEBAG) * PKCS12_SAFEBAG_get0_safes(const PKCS12_SAFEBAG *bag); @@ -218,6 +224,7 @@ ASN1_TYPE *PKCS12_get_attr_gen(const STACK_OF(X509_ATTRIBUTE) *attrs, char *PKCS12_get_friendlyname(PKCS12_SAFEBAG *bag); const STACK_OF(X509_ATTRIBUTE) * PKCS12_SAFEBAG_get0_attrs(const PKCS12_SAFEBAG *bag); +void PKCS12_SAFEBAG_set0_attrs(PKCS12_SAFEBAG *bag, STACK_OF(X509_ATTRIBUTE) *attrs); unsigned char *PKCS12_pbe_crypt(const X509_ALGOR *algor, const char *pass, int passlen, const unsigned char *in, int inlen, @@ -285,6 +292,9 @@ int PKCS12_verify_mac(PKCS12 *p12, const char *pass, int passlen); int PKCS12_set_mac(PKCS12 *p12, const char *pass, int passlen, unsigned char *salt, int saltlen, int iter, const EVP_MD *md_type); +int PKCS12_set_pbmac1_pbkdf2(PKCS12 *p12, const char *pass, int passlen, + unsigned char *salt, int saltlen, int iter, + const EVP_MD *md_type, const char *prf_md_name); int PKCS12_setup_mac(PKCS12 *p12, int iter, unsigned char *salt, int saltlen, const EVP_MD *md_type); unsigned char *OPENSSL_asc2uni(const char *asc, int asclen, @@ -305,6 +315,7 @@ DECLARE_ASN1_ITEM(PKCS12_AUTHSAFES) void PKCS12_PBE_add(void); int PKCS12_parse(PKCS12 *p12, const char *pass, EVP_PKEY **pkey, X509 **cert, STACK_OF(X509) **ca); +typedef int PKCS12_create_cb(PKCS12_SAFEBAG *bag, void *cbarg); PKCS12 *PKCS12_create(const char *pass, const char *name, EVP_PKEY *pkey, X509 *cert, STACK_OF(X509) *ca, int nid_key, int nid_cert, int iter, int mac_iter, int keytype); @@ -312,6 +323,11 @@ PKCS12 *PKCS12_create_ex(const char *pass, const char *name, EVP_PKEY *pkey, X509 *cert, STACK_OF(X509) *ca, int nid_key, int nid_cert, int iter, int mac_iter, int keytype, OSSL_LIB_CTX *ctx, const char *propq); +PKCS12 *PKCS12_create_ex2(const char *pass, const char *name, EVP_PKEY *pkey, + X509 *cert, STACK_OF(X509) *ca, int nid_key, int nid_cert, + int iter, int mac_iter, int keytype, + OSSL_LIB_CTX *ctx, const char *propq, + PKCS12_create_cb *cb, void *cbarg); PKCS12_SAFEBAG *PKCS12_add_cert(STACK_OF(PKCS12_SAFEBAG) **pbags, X509 *cert); PKCS12_SAFEBAG *PKCS12_add_key(STACK_OF(PKCS12_SAFEBAG) **pbags, diff --git a/deps/openssl/config/archs/BSD-x86/no-asm/include/openssl/pkcs7.h b/deps/openssl/config/archs/BSD-x86/no-asm/include/openssl/pkcs7.h index 0ce79bf4fa160e..fa68462aff973b 100644 --- a/deps/openssl/config/archs/BSD-x86/no-asm/include/openssl/pkcs7.h +++ b/deps/openssl/config/archs/BSD-x86/no-asm/include/openssl/pkcs7.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/pkcs7.h.in * - * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -28,6 +28,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -131,8 +134,8 @@ SKM_DEFINE_STACK_OF_INTERNAL(PKCS7_RECIP_INFO, PKCS7_RECIP_INFO, PKCS7_RECIP_INF typedef struct pkcs7_signed_st { ASN1_INTEGER *version; /* version 1 */ STACK_OF(X509_ALGOR) *md_algs; /* md used */ - STACK_OF(X509) *cert; /* [ 0 ] */ - STACK_OF(X509_CRL) *crl; /* [ 1 ] */ + STACK_OF(X509) *cert; /* [ 0 ] */ /* name should be 'certificates' */ + STACK_OF(X509_CRL) *crl; /* [ 1 ] */ /* name should be 'crls' */ STACK_OF(PKCS7_SIGNER_INFO) *signer_info; struct pkcs7_st *contents; } PKCS7_SIGNED; @@ -158,8 +161,8 @@ typedef struct pkcs7_enveloped_st { typedef struct pkcs7_signedandenveloped_st { ASN1_INTEGER *version; /* version 1 */ STACK_OF(X509_ALGOR) *md_algs; /* md used */ - STACK_OF(X509) *cert; /* [ 0 ] */ - STACK_OF(X509_CRL) *crl; /* [ 1 ] */ + STACK_OF(X509) *cert; /* [ 0 ] */ /* name should be 'certificates' */ + STACK_OF(X509_CRL) *crl; /* [ 1 ] */ /* name should be 'crls' */ STACK_OF(PKCS7_SIGNER_INFO) *signer_info; PKCS7_ENC_CONTENT *enc_data; STACK_OF(PKCS7_RECIP_INFO) *recipientinfo; @@ -200,7 +203,7 @@ typedef struct pkcs7_st { /* NID_pkcs7_data */ ASN1_OCTET_STRING *data; /* NID_pkcs7_signed */ - PKCS7_SIGNED *sign; + PKCS7_SIGNED *sign; /* field name 'signed' would clash with C keyword */ /* NID_pkcs7_enveloped */ PKCS7_ENVELOPE *enveloped; /* NID_pkcs7_signedAndEnveloped */ @@ -341,13 +344,13 @@ int PKCS7_SIGNER_INFO_set(PKCS7_SIGNER_INFO *p7i, X509 *x509, EVP_PKEY *pkey, const EVP_MD *dgst); int PKCS7_SIGNER_INFO_sign(PKCS7_SIGNER_INFO *si); int PKCS7_add_signer(PKCS7 *p7, PKCS7_SIGNER_INFO *p7i); -int PKCS7_add_certificate(PKCS7 *p7, X509 *x509); -int PKCS7_add_crl(PKCS7 *p7, X509_CRL *x509); +int PKCS7_add_certificate(PKCS7 *p7, X509 *cert); +int PKCS7_add_crl(PKCS7 *p7, X509_CRL *crl); int PKCS7_content_new(PKCS7 *p7, int nid); int PKCS7_dataVerify(X509_STORE *cert_store, X509_STORE_CTX *ctx, BIO *bio, PKCS7 *p7, PKCS7_SIGNER_INFO *si); int PKCS7_signatureVerify(BIO *bio, PKCS7 *p7, PKCS7_SIGNER_INFO *si, - X509 *x509); + X509 *signer); BIO *PKCS7_dataInit(PKCS7 *p7, BIO *bio); int PKCS7_dataFinal(PKCS7 *p7, BIO *bio); diff --git a/deps/openssl/config/archs/BSD-x86/no-asm/include/openssl/ssl.h b/deps/openssl/config/archs/BSD-x86/no-asm/include/openssl/ssl.h index 3df725c56d6c5e..7e3d89c7ef3dc9 100644 --- a/deps/openssl/config/archs/BSD-x86/no-asm/include/openssl/ssl.h +++ b/deps/openssl/config/archs/BSD-x86/no-asm/include/openssl/ssl.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/ssl.h.in * - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved * Copyright 2005 Nokia. All rights reserved. * @@ -24,6 +24,7 @@ # endif # include +# include # include # include # include @@ -42,6 +43,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -231,10 +235,8 @@ typedef struct ssl_cipher_st SSL_CIPHER; typedef struct ssl_session_st SSL_SESSION; typedef struct tls_sigalgs_st TLS_SIGALGS; typedef struct ssl_conf_ctx_st SSL_CONF_CTX; -typedef struct ssl_comp_st SSL_COMP; STACK_OF(SSL_CIPHER); -STACK_OF(SSL_COMP); /* SRTP protection profiles for use with the use_srtp extension (RFC 5764)*/ typedef struct srtp_protection_profile_st { @@ -278,28 +280,31 @@ typedef int (*tls_session_secret_cb_fn)(SSL *s, void *secret, int *secret_len, /* Extension context codes */ /* This extension is only allowed in TLS */ -#define SSL_EXT_TLS_ONLY 0x0001 +#define SSL_EXT_TLS_ONLY 0x00001 /* This extension is only allowed in DTLS */ -#define SSL_EXT_DTLS_ONLY 0x0002 +#define SSL_EXT_DTLS_ONLY 0x00002 /* Some extensions may be allowed in DTLS but we don't implement them for it */ -#define SSL_EXT_TLS_IMPLEMENTATION_ONLY 0x0004 +#define SSL_EXT_TLS_IMPLEMENTATION_ONLY 0x00004 /* Most extensions are not defined for SSLv3 but EXT_TYPE_renegotiate is */ -#define SSL_EXT_SSL3_ALLOWED 0x0008 +#define SSL_EXT_SSL3_ALLOWED 0x00008 /* Extension is only defined for TLS1.2 and below */ -#define SSL_EXT_TLS1_2_AND_BELOW_ONLY 0x0010 +#define SSL_EXT_TLS1_2_AND_BELOW_ONLY 0x00010 /* Extension is only defined for TLS1.3 and above */ -#define SSL_EXT_TLS1_3_ONLY 0x0020 +#define SSL_EXT_TLS1_3_ONLY 0x00020 /* Ignore this extension during parsing if we are resuming */ -#define SSL_EXT_IGNORE_ON_RESUMPTION 0x0040 -#define SSL_EXT_CLIENT_HELLO 0x0080 +#define SSL_EXT_IGNORE_ON_RESUMPTION 0x00040 +#define SSL_EXT_CLIENT_HELLO 0x00080 /* Really means TLS1.2 or below */ -#define SSL_EXT_TLS1_2_SERVER_HELLO 0x0100 -#define SSL_EXT_TLS1_3_SERVER_HELLO 0x0200 -#define SSL_EXT_TLS1_3_ENCRYPTED_EXTENSIONS 0x0400 -#define SSL_EXT_TLS1_3_HELLO_RETRY_REQUEST 0x0800 -#define SSL_EXT_TLS1_3_CERTIFICATE 0x1000 -#define SSL_EXT_TLS1_3_NEW_SESSION_TICKET 0x2000 -#define SSL_EXT_TLS1_3_CERTIFICATE_REQUEST 0x4000 +#define SSL_EXT_TLS1_2_SERVER_HELLO 0x00100 +#define SSL_EXT_TLS1_3_SERVER_HELLO 0x00200 +#define SSL_EXT_TLS1_3_ENCRYPTED_EXTENSIONS 0x00400 +#define SSL_EXT_TLS1_3_HELLO_RETRY_REQUEST 0x00800 +#define SSL_EXT_TLS1_3_CERTIFICATE 0x01000 +#define SSL_EXT_TLS1_3_NEW_SESSION_TICKET 0x02000 +#define SSL_EXT_TLS1_3_CERTIFICATE_REQUEST 0x04000 +#define SSL_EXT_TLS1_3_CERTIFICATE_COMPRESSION 0x08000 +/* When sending a raw public key in a certificate message */ +#define SSL_EXT_TLS1_3_RAW_PUBLIC_KEY 0x10000 /* Typedefs for handling custom extensions */ @@ -404,7 +409,7 @@ typedef int (*SSL_async_callback_fn)(SSL *s, void *arg); */ # define SSL_OP_CIPHER_SERVER_PREFERENCE SSL_OP_BIT(22) /* - * If set, a server will allow a client to issue a SSLv3.0 version + * If set, a server will allow a client to issue an SSLv3.0 version * number as latest version supported in the premaster secret, even when * TLSv1.0 (version 3.1) was announced in the client hello. Normally * this is forbidden to prevent version rollback attacks. @@ -430,6 +435,19 @@ typedef int (*SSL_async_callback_fn)(SSL *s, void *arg); * interoperability with CryptoPro CSP 3.x */ # define SSL_OP_CRYPTOPRO_TLSEXT_BUG SSL_OP_BIT(31) +/* + * Disable RFC8879 certificate compression + * SSL_OP_NO_TX_CERTIFICATE_COMPRESSION: don't send compressed certificates, + * and ignore the extension when received. + * SSL_OP_NO_RX_CERTIFICATE_COMPRESSION: don't send the extension, and + * subsequently indicating that receiving is not supported + */ +# define SSL_OP_NO_TX_CERTIFICATE_COMPRESSION SSL_OP_BIT(32) +# define SSL_OP_NO_RX_CERTIFICATE_COMPRESSION SSL_OP_BIT(33) + /* Enable KTLS TX zerocopy on Linux */ +# define SSL_OP_ENABLE_KTLS_TX_ZEROCOPY_SENDFILE SSL_OP_BIT(34) + +#define SSL_OP_PREFER_NO_DHE_KEX SSL_OP_BIT(35) /* * Option "collections." @@ -574,6 +592,8 @@ typedef int (*SSL_async_callback_fn)(SSL *s, void *arg); # define CERT_PKEY_CERT_TYPE 0x400 /* Cert chain suitable to Suite B */ # define CERT_PKEY_SUITEB 0x800 +/* Cert pkey valid for raw public key use */ +# define CERT_PKEY_RPK 0x1000 # define SSL_CONF_FLAG_CMDLINE 0x1 # define SSL_CONF_FLAG_FILE 0x2 @@ -965,6 +985,7 @@ uint32_t SSL_get_recv_max_early_data(const SSL *s); # include /* This is mostly sslv3 with a few tweaks */ # include /* Datagram TLS */ # include /* Support for the use_srtp extension */ +# include #ifdef __cplusplus extern "C" { @@ -1000,32 +1021,6 @@ SKM_DEFINE_STACK_OF_INTERNAL(SSL_CIPHER, const SSL_CIPHER, SSL_CIPHER) #define sk_SSL_CIPHER_dup(sk) ((STACK_OF(SSL_CIPHER) *)OPENSSL_sk_dup(ossl_check_const_SSL_CIPHER_sk_type(sk))) #define sk_SSL_CIPHER_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(SSL_CIPHER) *)OPENSSL_sk_deep_copy(ossl_check_const_SSL_CIPHER_sk_type(sk), ossl_check_SSL_CIPHER_copyfunc_type(copyfunc), ossl_check_SSL_CIPHER_freefunc_type(freefunc))) #define sk_SSL_CIPHER_set_cmp_func(sk, cmp) ((sk_SSL_CIPHER_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_SSL_CIPHER_sk_type(sk), ossl_check_SSL_CIPHER_compfunc_type(cmp))) -SKM_DEFINE_STACK_OF_INTERNAL(SSL_COMP, SSL_COMP, SSL_COMP) -#define sk_SSL_COMP_num(sk) OPENSSL_sk_num(ossl_check_const_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_value(sk, idx) ((SSL_COMP *)OPENSSL_sk_value(ossl_check_const_SSL_COMP_sk_type(sk), (idx))) -#define sk_SSL_COMP_new(cmp) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new(ossl_check_SSL_COMP_compfunc_type(cmp))) -#define sk_SSL_COMP_new_null() ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new_null()) -#define sk_SSL_COMP_new_reserve(cmp, n) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new_reserve(ossl_check_SSL_COMP_compfunc_type(cmp), (n))) -#define sk_SSL_COMP_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_SSL_COMP_sk_type(sk), (n)) -#define sk_SSL_COMP_free(sk) OPENSSL_sk_free(ossl_check_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_zero(sk) OPENSSL_sk_zero(ossl_check_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_delete(sk, i) ((SSL_COMP *)OPENSSL_sk_delete(ossl_check_SSL_COMP_sk_type(sk), (i))) -#define sk_SSL_COMP_delete_ptr(sk, ptr) ((SSL_COMP *)OPENSSL_sk_delete_ptr(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr))) -#define sk_SSL_COMP_push(sk, ptr) OPENSSL_sk_push(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) -#define sk_SSL_COMP_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) -#define sk_SSL_COMP_pop(sk) ((SSL_COMP *)OPENSSL_sk_pop(ossl_check_SSL_COMP_sk_type(sk))) -#define sk_SSL_COMP_shift(sk) ((SSL_COMP *)OPENSSL_sk_shift(ossl_check_SSL_COMP_sk_type(sk))) -#define sk_SSL_COMP_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_SSL_COMP_sk_type(sk),ossl_check_SSL_COMP_freefunc_type(freefunc)) -#define sk_SSL_COMP_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr), (idx)) -#define sk_SSL_COMP_set(sk, idx, ptr) ((SSL_COMP *)OPENSSL_sk_set(ossl_check_SSL_COMP_sk_type(sk), (idx), ossl_check_SSL_COMP_type(ptr))) -#define sk_SSL_COMP_find(sk, ptr) OPENSSL_sk_find(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) -#define sk_SSL_COMP_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) -#define sk_SSL_COMP_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr), pnum) -#define sk_SSL_COMP_sort(sk) OPENSSL_sk_sort(ossl_check_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_dup(sk) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_dup(ossl_check_const_SSL_COMP_sk_type(sk))) -#define sk_SSL_COMP_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_deep_copy(ossl_check_const_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_copyfunc_type(copyfunc), ossl_check_SSL_COMP_freefunc_type(freefunc))) -#define sk_SSL_COMP_set_cmp_func(sk, cmp) ((sk_SSL_COMP_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_compfunc_type(cmp))) /* compatibility */ @@ -1066,6 +1061,7 @@ typedef enum { DTLS_ST_CR_HELLO_VERIFY_REQUEST, TLS_ST_CR_SRVR_HELLO, TLS_ST_CR_CERT, + TLS_ST_CR_COMP_CERT, TLS_ST_CR_CERT_STATUS, TLS_ST_CR_KEY_EXCH, TLS_ST_CR_CERT_REQ, @@ -1075,6 +1071,7 @@ typedef enum { TLS_ST_CR_FINISHED, TLS_ST_CW_CLNT_HELLO, TLS_ST_CW_CERT, + TLS_ST_CW_COMP_CERT, TLS_ST_CW_KEY_EXCH, TLS_ST_CW_CERT_VRFY, TLS_ST_CW_CHANGE, @@ -1085,10 +1082,12 @@ typedef enum { DTLS_ST_SW_HELLO_VERIFY_REQUEST, TLS_ST_SW_SRVR_HELLO, TLS_ST_SW_CERT, + TLS_ST_SW_COMP_CERT, TLS_ST_SW_KEY_EXCH, TLS_ST_SW_CERT_REQ, TLS_ST_SW_SRVR_DONE, TLS_ST_SR_CERT, + TLS_ST_SR_COMP_CERT, TLS_ST_SR_KEY_EXCH, TLS_ST_SR_CERT_VRFY, TLS_ST_SR_NEXT_PROTO, @@ -1380,9 +1379,13 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) # define SSL_CTRL_GET_SIGNATURE_NID 132 # define SSL_CTRL_GET_TMP_KEY 133 # define SSL_CTRL_GET_NEGOTIATED_GROUP 134 +# define SSL_CTRL_GET_IANA_GROUPS 135 # define SSL_CTRL_SET_RETRY_VERIFY 136 # define SSL_CTRL_GET_VERIFY_CERT_STORE 137 # define SSL_CTRL_GET_CHAIN_CERT_STORE 138 +# define SSL_CTRL_GET0_IMPLEMENTED_GROUPS 139 +# define SSL_CTRL_GET_SIGNATURE_NAME 140 +# define SSL_CTRL_GET_PEER_SIGNATURE_NAME 141 # define SSL_CERT_SET_FIRST 1 # define SSL_CERT_SET_NEXT 2 # define SSL_CERT_SET_SERVER 3 @@ -1485,10 +1488,15 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) # define SSL_get1_groups(s, glist) \ SSL_ctrl(s,SSL_CTRL_GET_GROUPS,0,(int*)(glist)) +# define SSL_get0_iana_groups(s, plst) \ + SSL_ctrl(s,SSL_CTRL_GET_IANA_GROUPS,0,(uint16_t **)(plst)) # define SSL_CTX_set1_groups(ctx, glist, glistlen) \ SSL_CTX_ctrl(ctx,SSL_CTRL_SET_GROUPS,glistlen,(int *)(glist)) # define SSL_CTX_set1_groups_list(ctx, s) \ SSL_CTX_ctrl(ctx,SSL_CTRL_SET_GROUPS_LIST,0,(char *)(s)) +# define SSL_CTX_get0_implemented_groups(ctx, all, out) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_GET0_IMPLEMENTED_GROUPS, all, \ + (STACK_OF(OPENSSL_CSTRING) *)(out)) # define SSL_set1_groups(s, glist, glistlen) \ SSL_ctrl(s,SSL_CTRL_SET_GROUPS,glistlen,(char *)(glist)) # define SSL_set1_groups_list(s, str) \ @@ -1520,8 +1528,12 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) (char *)(clist)) # define SSL_set1_client_certificate_types(s, clist, clistlen) \ SSL_ctrl(s,SSL_CTRL_SET_CLIENT_CERT_TYPES,clistlen,(char *)(clist)) +# define SSL_get0_signature_name(s, str) \ + SSL_ctrl(s,SSL_CTRL_GET_SIGNATURE_NAME,0,(1?(str):(const char **)NULL)) # define SSL_get_signature_nid(s, pn) \ SSL_ctrl(s,SSL_CTRL_GET_SIGNATURE_NID,0,pn) +# define SSL_get0_peer_signature_name(s, str) \ + SSL_ctrl(s,SSL_CTRL_GET_PEER_SIGNATURE_NAME,0,(1?(str):(const char **)NULL)) # define SSL_get_peer_signature_nid(s, pn) \ SSL_ctrl(s,SSL_CTRL_GET_PEER_SIGNATURE_NID,0,pn) # define SSL_get_peer_tmp_key(s, pk) \ @@ -1549,6 +1561,7 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) # define SSL_get_max_proto_version(s) \ SSL_ctrl(s, SSL_CTRL_GET_MAX_PROTO_VERSION, 0, NULL) +const char *SSL_get0_group_name(SSL *s); const char *SSL_group_to_name(SSL *s, int id); /* Backwards compatibility, original 1.1.0 names */ @@ -1613,7 +1626,11 @@ void SSL_CTX_set1_cert_store(SSL_CTX *, X509_STORE *); __owur int SSL_want(const SSL *s); __owur int SSL_clear(SSL *s); +#ifndef OPENSSL_NO_DEPRECATED_3_4 +OSSL_DEPRECATEDIN_3_4_FOR("not Y2038-safe, replace with SSL_CTX_flush_sessions_ex()") void SSL_CTX_flush_sessions(SSL_CTX *ctx, long tm); +#endif +void SSL_CTX_flush_sessions_ex(SSL_CTX *ctx, time_t tm); __owur const SSL_CIPHER *SSL_get_current_cipher(const SSL *s); __owur const SSL_CIPHER *SSL_get_pending_cipher(const SSL *s); @@ -1725,13 +1742,21 @@ __owur const char *SSL_state_string(const SSL *s); __owur const char *SSL_rstate_string(const SSL *s); __owur const char *SSL_state_string_long(const SSL *s); __owur const char *SSL_rstate_string_long(const SSL *s); + +#ifndef OPENSSL_NO_DEPRECATED_3_4 +OSSL_DEPRECATEDIN_3_4_FOR("not Y2038-safe, replace with SSL_SESSION_get_time_ex()") __owur long SSL_SESSION_get_time(const SSL_SESSION *s); +OSSL_DEPRECATEDIN_3_4_FOR("not Y2038-safe, replace with SSL_SESSION_set_time_ex()") __owur long SSL_SESSION_set_time(SSL_SESSION *s, long t); +#endif __owur long SSL_SESSION_get_timeout(const SSL_SESSION *s); __owur long SSL_SESSION_set_timeout(SSL_SESSION *s, long t); __owur int SSL_SESSION_get_protocol_version(const SSL_SESSION *s); __owur int SSL_SESSION_set_protocol_version(SSL_SESSION *s, int version); +__owur time_t SSL_SESSION_get_time_ex(const SSL_SESSION *s); +__owur time_t SSL_SESSION_set_time_ex(SSL_SESSION *s, time_t t); + __owur const char *SSL_SESSION_get0_hostname(const SSL_SESSION *s); __owur int SSL_SESSION_set1_hostname(SSL_SESSION *s, const char *hostname); void SSL_SESSION_get0_alpn_selected(const SSL_SESSION *s, @@ -1783,6 +1808,9 @@ __owur int SSL_has_matching_session_id(const SSL *s, unsigned int id_len); SSL_SESSION *d2i_SSL_SESSION(SSL_SESSION **a, const unsigned char **pp, long length); +SSL_SESSION *d2i_SSL_SESSION_ex(SSL_SESSION **a, const unsigned char **pp, + long length, OSSL_LIB_CTX *libctx, + const char *propq); # ifdef OPENSSL_X509_H __owur X509 *SSL_get0_peer_certificate(const SSL *s); @@ -1840,6 +1868,8 @@ __owur int SSL_CTX_set_session_id_context(SSL_CTX *ctx, SSL *SSL_new(SSL_CTX *ctx); int SSL_up_ref(SSL *s); int SSL_is_dtls(const SSL *s); +int SSL_is_tls(const SSL *s); +int SSL_is_quic(const SSL *s); __owur int SSL_set_session_id_context(SSL *ssl, const unsigned char *sid_ctx, unsigned int sid_ctx_len); @@ -1848,8 +1878,8 @@ __owur int SSL_set_purpose(SSL *ssl, int purpose); __owur int SSL_CTX_set_trust(SSL_CTX *ctx, int trust); __owur int SSL_set_trust(SSL *ssl, int trust); -__owur int SSL_set1_host(SSL *s, const char *hostname); -__owur int SSL_add1_host(SSL *s, const char *hostname); +__owur int SSL_set1_host(SSL *s, const char *host); +__owur int SSL_add1_host(SSL *s, const char *host); __owur const char *SSL_get0_peername(SSL *s); void SSL_set_hostflags(SSL *s, unsigned int flags); @@ -1924,6 +1954,11 @@ OSSL_DEPRECATEDIN_3_0 __owur char *SSL_get_srp_userinfo(SSL *s); typedef int (*SSL_client_hello_cb_fn) (SSL *s, int *al, void *arg); void SSL_CTX_set_client_hello_cb(SSL_CTX *c, SSL_client_hello_cb_fn cb, void *arg); +typedef int (*SSL_new_pending_conn_cb_fn) (SSL_CTX *ctx, SSL *new_ssl, + void *arg); +void SSL_CTX_set_new_pending_conn_cb(SSL_CTX *c, SSL_new_pending_conn_cb_fn cb, + void *arg); + int SSL_client_hello_isv2(SSL *s); unsigned int SSL_client_hello_get0_legacy_version(SSL *s); size_t SSL_client_hello_get0_random(SSL *s, const unsigned char **out); @@ -1932,6 +1967,8 @@ size_t SSL_client_hello_get0_ciphers(SSL *s, const unsigned char **out); size_t SSL_client_hello_get0_compression_methods(SSL *s, const unsigned char **out); int SSL_client_hello_get1_extensions_present(SSL *s, int **out, size_t *outlen); +int SSL_client_hello_get_extension_order(SSL *s, uint16_t *exts, + size_t *num_exts); int SSL_client_hello_get0_ext(SSL *s, unsigned int type, const unsigned char **out, size_t *outlen); @@ -1978,6 +2015,12 @@ long SSL_callback_ctrl(SSL *, int, void (*)(void)); long SSL_CTX_ctrl(SSL_CTX *ctx, int cmd, long larg, void *parg); long SSL_CTX_callback_ctrl(SSL_CTX *, int, void (*)(void)); +# define SSL_WRITE_FLAG_CONCLUDE (1U << 0) + +__owur int SSL_write_ex2(SSL *s, const void *buf, size_t num, + uint64_t flags, + size_t *written); + # define SSL_EARLY_DATA_NOT_SENT 0 # define SSL_EARLY_DATA_REJECTED 1 # define SSL_EARLY_DATA_ACCEPTED 2 @@ -1986,6 +2029,7 @@ __owur int SSL_get_early_data_status(const SSL *s); __owur int SSL_get_error(const SSL *s, int ret_code); __owur const char *SSL_get_version(const SSL *s); +__owur int SSL_get_handshake_rtt(const SSL *s, uint64_t *rtt); /* This sets the 'default' SSL version that SSL_new() will create */ # ifndef OPENSSL_NO_DEPRECATED_3_0 @@ -2281,6 +2325,8 @@ void SSL_CTX_set_record_padding_callback(SSL_CTX *ctx, void SSL_CTX_set_record_padding_callback_arg(SSL_CTX *ctx, void *arg); void *SSL_CTX_get_record_padding_callback_arg(const SSL_CTX *ctx); int SSL_CTX_set_block_padding(SSL_CTX *ctx, size_t block_size); +int SSL_CTX_set_block_padding_ex(SSL_CTX *ctx, size_t app_block_size, + size_t hs_block_size); int SSL_set_record_padding_callback(SSL *ssl, size_t (*cb) (SSL *ssl, int type, @@ -2288,12 +2334,255 @@ int SSL_set_record_padding_callback(SSL *ssl, void SSL_set_record_padding_callback_arg(SSL *ssl, void *arg); void *SSL_get_record_padding_callback_arg(const SSL *ssl); int SSL_set_block_padding(SSL *ssl, size_t block_size); - +int SSL_set_block_padding_ex(SSL *ssl, size_t app_block_size, + size_t hs_block_size); int SSL_set_num_tickets(SSL *s, size_t num_tickets); size_t SSL_get_num_tickets(const SSL *s); int SSL_CTX_set_num_tickets(SSL_CTX *ctx, size_t num_tickets); size_t SSL_CTX_get_num_tickets(const SSL_CTX *ctx); +/* QUIC support */ +int SSL_handle_events(SSL *s); +__owur int SSL_get_event_timeout(SSL *s, struct timeval *tv, int *is_infinite); +__owur int SSL_get_rpoll_descriptor(SSL *s, BIO_POLL_DESCRIPTOR *desc); +__owur int SSL_get_wpoll_descriptor(SSL *s, BIO_POLL_DESCRIPTOR *desc); +__owur int SSL_net_read_desired(SSL *s); +__owur int SSL_net_write_desired(SSL *s); +__owur int SSL_set_blocking_mode(SSL *s, int blocking); +__owur int SSL_get_blocking_mode(SSL *s); +__owur int SSL_set1_initial_peer_addr(SSL *s, const BIO_ADDR *peer_addr); +__owur SSL *SSL_get0_connection(SSL *s); +__owur int SSL_is_connection(SSL *s); + +__owur int SSL_is_listener(SSL *ssl); +__owur SSL *SSL_get0_listener(SSL *s); +#define SSL_LISTENER_FLAG_NO_VALIDATE (1UL << 1) +__owur SSL *SSL_new_listener(SSL_CTX *ctx, uint64_t flags); +__owur SSL *SSL_new_listener_from(SSL *ssl, uint64_t flags); +__owur SSL *SSL_new_from_listener(SSL *ssl, uint64_t flags); +#define SSL_ACCEPT_CONNECTION_NO_BLOCK (1UL << 0) +__owur SSL *SSL_accept_connection(SSL *ssl, uint64_t flags); +__owur size_t SSL_get_accept_connection_queue_len(SSL *ssl); +__owur int SSL_listen(SSL *ssl); + +__owur int SSL_is_domain(SSL *s); +__owur SSL *SSL_get0_domain(SSL *s); +__owur SSL *SSL_new_domain(SSL_CTX *ctx, uint64_t flags); + +#define SSL_DOMAIN_FLAG_SINGLE_THREAD (1U << 0) +#define SSL_DOMAIN_FLAG_MULTI_THREAD (1U << 1) +#define SSL_DOMAIN_FLAG_THREAD_ASSISTED (1U << 2) +#define SSL_DOMAIN_FLAG_BLOCKING (1U << 3) +#define SSL_DOMAIN_FLAG_LEGACY_BLOCKING (1U << 4) + +__owur int SSL_CTX_set_domain_flags(SSL_CTX *ctx, uint64_t domain_flags); +__owur int SSL_CTX_get_domain_flags(const SSL_CTX *ctx, uint64_t *domain_flags); +__owur int SSL_get_domain_flags(const SSL *ssl, uint64_t *domain_flags); + +#define SSL_STREAM_TYPE_NONE 0 +#define SSL_STREAM_TYPE_READ (1U << 0) +#define SSL_STREAM_TYPE_WRITE (1U << 1) +#define SSL_STREAM_TYPE_BIDI (SSL_STREAM_TYPE_READ | SSL_STREAM_TYPE_WRITE) +__owur int SSL_get_stream_type(SSL *s); + +__owur uint64_t SSL_get_stream_id(SSL *s); +__owur int SSL_is_stream_local(SSL *s); + +#define SSL_DEFAULT_STREAM_MODE_NONE 0 +#define SSL_DEFAULT_STREAM_MODE_AUTO_BIDI 1 +#define SSL_DEFAULT_STREAM_MODE_AUTO_UNI 2 +__owur int SSL_set_default_stream_mode(SSL *s, uint32_t mode); + +#define SSL_STREAM_FLAG_UNI (1U << 0) +#define SSL_STREAM_FLAG_NO_BLOCK (1U << 1) +#define SSL_STREAM_FLAG_ADVANCE (1U << 2) +__owur SSL *SSL_new_stream(SSL *s, uint64_t flags); + +#define SSL_INCOMING_STREAM_POLICY_AUTO 0 +#define SSL_INCOMING_STREAM_POLICY_ACCEPT 1 +#define SSL_INCOMING_STREAM_POLICY_REJECT 2 +__owur int SSL_set_incoming_stream_policy(SSL *s, int policy, uint64_t aec); + +#define SSL_ACCEPT_STREAM_NO_BLOCK (1U << 0) +__owur SSL *SSL_accept_stream(SSL *s, uint64_t flags); +__owur size_t SSL_get_accept_stream_queue_len(SSL *s); + +# ifndef OPENSSL_NO_QUIC +__owur int SSL_inject_net_dgram(SSL *s, const unsigned char *buf, + size_t buf_len, + const BIO_ADDR *peer, + const BIO_ADDR *local); +# endif + +typedef struct ssl_shutdown_ex_args_st { + uint64_t quic_error_code; + const char *quic_reason; +} SSL_SHUTDOWN_EX_ARGS; + +#define SSL_SHUTDOWN_FLAG_RAPID (1U << 0) +#define SSL_SHUTDOWN_FLAG_NO_STREAM_FLUSH (1U << 1) +#define SSL_SHUTDOWN_FLAG_NO_BLOCK (1U << 2) +#define SSL_SHUTDOWN_FLAG_WAIT_PEER (1U << 3) + +__owur int SSL_shutdown_ex(SSL *ssl, uint64_t flags, + const SSL_SHUTDOWN_EX_ARGS *args, + size_t args_len); + +__owur int SSL_stream_conclude(SSL *ssl, uint64_t flags); + +typedef struct ssl_stream_reset_args_st { + uint64_t quic_error_code; +} SSL_STREAM_RESET_ARGS; + +__owur int SSL_stream_reset(SSL *ssl, + const SSL_STREAM_RESET_ARGS *args, + size_t args_len); + +#define SSL_STREAM_STATE_NONE 0 +#define SSL_STREAM_STATE_OK 1 +#define SSL_STREAM_STATE_WRONG_DIR 2 +#define SSL_STREAM_STATE_FINISHED 3 +#define SSL_STREAM_STATE_RESET_LOCAL 4 +#define SSL_STREAM_STATE_RESET_REMOTE 5 +#define SSL_STREAM_STATE_CONN_CLOSED 6 +__owur int SSL_get_stream_read_state(SSL *ssl); +__owur int SSL_get_stream_write_state(SSL *ssl); + +__owur int SSL_get_stream_read_error_code(SSL *ssl, uint64_t *app_error_code); +__owur int SSL_get_stream_write_error_code(SSL *ssl, uint64_t *app_error_code); + +#define SSL_CONN_CLOSE_FLAG_LOCAL (1U << 0) +#define SSL_CONN_CLOSE_FLAG_TRANSPORT (1U << 1) + +typedef struct ssl_conn_close_info_st { + uint64_t error_code, frame_type; + const char *reason; + size_t reason_len; + uint32_t flags; +} SSL_CONN_CLOSE_INFO; + +__owur int SSL_get_conn_close_info(SSL *ssl, + SSL_CONN_CLOSE_INFO *info, + size_t info_len); + +# define SSL_VALUE_CLASS_GENERIC 0 +# define SSL_VALUE_CLASS_FEATURE_REQUEST 1 +# define SSL_VALUE_CLASS_FEATURE_PEER_REQUEST 2 +# define SSL_VALUE_CLASS_FEATURE_NEGOTIATED 3 + +# define SSL_VALUE_NONE 0 +# define SSL_VALUE_QUIC_STREAM_BIDI_LOCAL_AVAIL 1 +# define SSL_VALUE_QUIC_STREAM_BIDI_REMOTE_AVAIL 2 +# define SSL_VALUE_QUIC_STREAM_UNI_LOCAL_AVAIL 3 +# define SSL_VALUE_QUIC_STREAM_UNI_REMOTE_AVAIL 4 +# define SSL_VALUE_QUIC_IDLE_TIMEOUT 5 +# define SSL_VALUE_EVENT_HANDLING_MODE 6 +# define SSL_VALUE_STREAM_WRITE_BUF_SIZE 7 +# define SSL_VALUE_STREAM_WRITE_BUF_USED 8 +# define SSL_VALUE_STREAM_WRITE_BUF_AVAIL 9 + +# define SSL_VALUE_EVENT_HANDLING_MODE_INHERIT 0 +# define SSL_VALUE_EVENT_HANDLING_MODE_IMPLICIT 1 +# define SSL_VALUE_EVENT_HANDLING_MODE_EXPLICIT 2 + +int SSL_get_value_uint(SSL *s, uint32_t class_, uint32_t id, uint64_t *v); +int SSL_set_value_uint(SSL *s, uint32_t class_, uint32_t id, uint64_t v); + +# define SSL_get_generic_value_uint(ssl, id, v) \ + SSL_get_value_uint((ssl), SSL_VALUE_CLASS_GENERIC, (id), (v)) +# define SSL_set_generic_value_uint(ssl, id, v) \ + SSL_set_value_uint((ssl), SSL_VALUE_CLASS_GENERIC, (id), (v)) +# define SSL_get_feature_request_uint(ssl, id, v) \ + SSL_get_value_uint((ssl), SSL_VALUE_CLASS_FEATURE_REQUEST, (id), (v)) +# define SSL_set_feature_request_uint(ssl, id, v) \ + SSL_set_value_uint((ssl), SSL_VALUE_CLASS_FEATURE_REQUEST, (id), (v)) +# define SSL_get_feature_peer_request_uint(ssl, id, v) \ + SSL_get_value_uint((ssl), SSL_VALUE_CLASS_FEATURE_PEER_REQUEST, (id), (v)) +# define SSL_get_feature_negotiated_uint(ssl, id, v) \ + SSL_get_value_uint((ssl), SSL_VALUE_CLASS_FEATURE_NEGOTIATED, (id), (v)) + +# define SSL_get_quic_stream_bidi_local_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_QUIC_STREAM_BIDI_LOCAL_AVAIL, \ + (value)) +# define SSL_get_quic_stream_bidi_remote_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_QUIC_STREAM_BIDI_REMOTE_AVAIL, \ + (value)) +# define SSL_get_quic_stream_uni_local_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_QUIC_STREAM_UNI_LOCAL_AVAIL, \ + (value)) +# define SSL_get_quic_stream_uni_remote_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_QUIC_STREAM_UNI_REMOTE_AVAIL, \ + (value)) + +# define SSL_get_event_handling_mode(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_EVENT_HANDLING_MODE, \ + (value)) +# define SSL_set_event_handling_mode(ssl, value) \ + SSL_set_generic_value_uint((ssl), SSL_VALUE_EVENT_HANDLING_MODE, \ + (value)) + +# define SSL_get_stream_write_buf_size(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_STREAM_WRITE_BUF_SIZE, \ + (value)) +# define SSL_get_stream_write_buf_used(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_STREAM_WRITE_BUF_USED, \ + (value)) +# define SSL_get_stream_write_buf_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_STREAM_WRITE_BUF_AVAIL, \ + (value)) + +# define SSL_POLL_EVENT_NONE 0 + +# define SSL_POLL_EVENT_F (1U << 0) /* F (Failure) */ +# define SSL_POLL_EVENT_EL (1U << 1) /* EL (Exception on Listener) */ +# define SSL_POLL_EVENT_EC (1U << 2) /* EC (Exception on Conn) */ +# define SSL_POLL_EVENT_ECD (1U << 3) /* ECD (Exception on Conn Drained) */ +# define SSL_POLL_EVENT_ER (1U << 4) /* ER (Exception on Read) */ +# define SSL_POLL_EVENT_EW (1U << 5) /* EW (Exception on Write) */ +# define SSL_POLL_EVENT_R (1U << 6) /* R (Readable) */ +# define SSL_POLL_EVENT_W (1U << 7) /* W (Writable) */ +# define SSL_POLL_EVENT_IC (1U << 8) /* IC (Incoming Connection) */ +# define SSL_POLL_EVENT_ISB (1U << 9) /* ISB (Incoming Stream: Bidi) */ +# define SSL_POLL_EVENT_ISU (1U << 10) /* ISU (Incoming Stream: Uni) */ +# define SSL_POLL_EVENT_OSB (1U << 11) /* OSB (Outgoing Stream: Bidi) */ +# define SSL_POLL_EVENT_OSU (1U << 12) /* OSU (Outgoing Stream: Uni) */ + +# define SSL_POLL_EVENT_RW (SSL_POLL_EVENT_R | SSL_POLL_EVENT_W) +# define SSL_POLL_EVENT_RE (SSL_POLL_EVENT_R | SSL_POLL_EVENT_ER) +# define SSL_POLL_EVENT_WE (SSL_POLL_EVENT_W | SSL_POLL_EVENT_EW) +# define SSL_POLL_EVENT_RWE (SSL_POLL_EVENT_RE | SSL_POLL_EVENT_WE) +# define SSL_POLL_EVENT_E (SSL_POLL_EVENT_EL | SSL_POLL_EVENT_EC \ + | SSL_POLL_EVENT_ER | SSL_POLL_EVENT_EW) +# define SSL_POLL_EVENT_IS (SSL_POLL_EVENT_ISB | SSL_POLL_EVENT_ISU) +# define SSL_POLL_EVENT_ISE (SSL_POLL_EVENT_IS | SSL_POLL_EVENT_EC) +# define SSL_POLL_EVENT_I (SSL_POLL_EVENT_IS | SSL_POLL_EVENT_IC) +# define SSL_POLL_EVENT_OS (SSL_POLL_EVENT_OSB | SSL_POLL_EVENT_OSU) +# define SSL_POLL_EVENT_OSE (SSL_POLL_EVENT_OS | SSL_POLL_EVENT_EC) + +typedef struct ssl_poll_item_st { + BIO_POLL_DESCRIPTOR desc; + uint64_t events, revents; +} SSL_POLL_ITEM; + +# define SSL_POLL_FLAG_NO_HANDLE_EVENTS (1U << 0) + +__owur int SSL_poll(SSL_POLL_ITEM *items, + size_t num_items, + size_t stride, + const struct timeval *timeout, + uint64_t flags, + size_t *result_count); + +static ossl_inline ossl_unused BIO_POLL_DESCRIPTOR +SSL_as_poll_descriptor(SSL *s) +{ + BIO_POLL_DESCRIPTOR d; + + d.type = BIO_POLL_DESCRIPTOR_TYPE_SSL; + d.value.ssl = s; + return d; +} + # ifndef OPENSSL_NO_DEPRECATED_1_1_0 # define SSL_cache_hit(s) SSL_session_reused(s) # endif @@ -2593,6 +2882,51 @@ void SSL_set_allow_early_data_cb(SSL *s, const char *OSSL_default_cipher_list(void); const char *OSSL_default_ciphersuites(void); +/* RFC8879 Certificate compression APIs */ + +int SSL_CTX_compress_certs(SSL_CTX *ctx, int alg); +int SSL_compress_certs(SSL *ssl, int alg); + +int SSL_CTX_set1_cert_comp_preference(SSL_CTX *ctx, int *algs, size_t len); +int SSL_set1_cert_comp_preference(SSL *ssl, int *algs, size_t len); + +int SSL_CTX_set1_compressed_cert(SSL_CTX *ctx, int algorithm, unsigned char *comp_data, + size_t comp_length, size_t orig_length); +int SSL_set1_compressed_cert(SSL *ssl, int algorithm, unsigned char *comp_data, + size_t comp_length, size_t orig_length); +size_t SSL_CTX_get1_compressed_cert(SSL_CTX *ctx, int alg, unsigned char **data, size_t *orig_len); +size_t SSL_get1_compressed_cert(SSL *ssl, int alg, unsigned char **data, size_t *orig_len); + +__owur int SSL_add_expected_rpk(SSL *s, EVP_PKEY *rpk); +__owur EVP_PKEY *SSL_get0_peer_rpk(const SSL *s); +__owur EVP_PKEY *SSL_SESSION_get0_peer_rpk(SSL_SESSION *s); +__owur int SSL_get_negotiated_client_cert_type(const SSL *s); +__owur int SSL_get_negotiated_server_cert_type(const SSL *s); + +__owur int SSL_set1_client_cert_type(SSL *s, const unsigned char *val, size_t len); +__owur int SSL_set1_server_cert_type(SSL *s, const unsigned char *val, size_t len); +__owur int SSL_CTX_set1_client_cert_type(SSL_CTX *ctx, const unsigned char *val, size_t len); +__owur int SSL_CTX_set1_server_cert_type(SSL_CTX *ctx, const unsigned char *val, size_t len); +__owur int SSL_get0_client_cert_type(const SSL *s, unsigned char **t, size_t *len); +__owur int SSL_get0_server_cert_type(const SSL *s, unsigned char **t, size_t *len); +__owur int SSL_CTX_get0_client_cert_type(const SSL_CTX *ctx, unsigned char **t, size_t *len); +__owur int SSL_CTX_get0_server_cert_type(const SSL_CTX *s, unsigned char **t, size_t *len); + +/* + * Protection level. For <= TLSv1.2 only "NONE" and "APPLICATION" are used. + */ +# define OSSL_RECORD_PROTECTION_LEVEL_NONE 0 +# define OSSL_RECORD_PROTECTION_LEVEL_EARLY 1 +# define OSSL_RECORD_PROTECTION_LEVEL_HANDSHAKE 2 +# define OSSL_RECORD_PROTECTION_LEVEL_APPLICATION 3 + +int SSL_set_quic_tls_cbs(SSL *s, const OSSL_DISPATCH *qtdis, void *arg); +int SSL_set_quic_tls_transport_params(SSL *s, + const unsigned char *params, + size_t params_len); + +int SSL_set_quic_tls_early_data_enabled(SSL *s, int enabled); + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/BSD-x86/no-asm/include/openssl/x509.h b/deps/openssl/config/archs/BSD-x86/no-asm/include/openssl/x509.h index 1f7755e5b69c75..d013458c226461 100644 --- a/deps/openssl/config/archs/BSD-x86/no-asm/include/openssl/x509.h +++ b/deps/openssl/config/archs/BSD-x86/no-asm/include/openssl/x509.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/x509.h.in * - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2024 The OpenSSL Project Authors. All Rights Reserved. * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved * * Licensed under the Apache License 2.0 (the "License"). You may not use @@ -40,6 +40,9 @@ # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -162,16 +165,24 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_CRL, X509_CRL, X509_CRL) # define X509_FILETYPE_ASN1 2 # define X509_FILETYPE_DEFAULT 3 -# define X509v3_KU_DIGITAL_SIGNATURE 0x0080 -# define X509v3_KU_NON_REPUDIATION 0x0040 -# define X509v3_KU_KEY_ENCIPHERMENT 0x0020 -# define X509v3_KU_DATA_ENCIPHERMENT 0x0010 -# define X509v3_KU_KEY_AGREEMENT 0x0008 -# define X509v3_KU_KEY_CERT_SIGN 0x0004 -# define X509v3_KU_CRL_SIGN 0x0002 -# define X509v3_KU_ENCIPHER_ONLY 0x0001 -# define X509v3_KU_DECIPHER_ONLY 0x8000 -# define X509v3_KU_UNDEF 0xffff +/*- + * : + * The KeyUsage BITSTRING is treated as a little-endian integer, hence bit `0` + * is 0x80, while bit `7` is 0x01 (the LSB of the integer value), bit `8` is + * then the MSB of the second octet, or 0x8000. + */ +# define X509v3_KU_DIGITAL_SIGNATURE 0x0080 /* (0) */ +# define X509v3_KU_NON_REPUDIATION 0x0040 /* (1) */ +# define X509v3_KU_KEY_ENCIPHERMENT 0x0020 /* (2) */ +# define X509v3_KU_DATA_ENCIPHERMENT 0x0010 /* (3) */ +# define X509v3_KU_KEY_AGREEMENT 0x0008 /* (4) */ +# define X509v3_KU_KEY_CERT_SIGN 0x0004 /* (5) */ +# define X509v3_KU_CRL_SIGN 0x0002 /* (6) */ +# define X509v3_KU_ENCIPHER_ONLY 0x0001 /* (7) */ +# define X509v3_KU_DECIPHER_ONLY 0x8000 /* (8) */ +# ifndef OPENSSL_NO_DEPRECATED_3_4 +# define X509v3_KU_UNDEF 0xffff /* vestigial, not used */ +# endif struct X509_algor_st { ASN1_OBJECT *algorithm; @@ -462,7 +473,12 @@ typedef struct PBKDF2PARAM_st { X509_ALGOR *prf; } PBKDF2PARAM; -#ifndef OPENSSL_NO_SCRYPT +typedef struct { + X509_ALGOR *keyDerivationFunc; + X509_ALGOR *messageAuthScheme; +} PBMAC1PARAM; + +# ifndef OPENSSL_NO_SCRYPT typedef struct SCRYPT_PARAMS_st { ASN1_OCTET_STRING *salt; ASN1_INTEGER *costParameter; @@ -470,7 +486,7 @@ typedef struct SCRYPT_PARAMS_st { ASN1_INTEGER *parallelizationParameter; ASN1_INTEGER *keyLength; } SCRYPT_PARAMS; -#endif +# endif #ifdef __cplusplus } @@ -603,6 +619,8 @@ EVP_PKEY *d2i_PrivateKey_ex_fp(FILE *fp, EVP_PKEY **a, OSSL_LIB_CTX *libctx, const char *propq); EVP_PKEY *d2i_PrivateKey_fp(FILE *fp, EVP_PKEY **a); int i2d_PUBKEY_fp(FILE *fp, const EVP_PKEY *pkey); +EVP_PKEY *d2i_PUBKEY_ex_fp(FILE *fp, EVP_PKEY **a, OSSL_LIB_CTX *libctx, + const char *propq); EVP_PKEY *d2i_PUBKEY_fp(FILE *fp, EVP_PKEY **a); # endif @@ -651,6 +669,8 @@ EVP_PKEY *d2i_PrivateKey_ex_bio(BIO *bp, EVP_PKEY **a, OSSL_LIB_CTX *libctx, const char *propq); EVP_PKEY *d2i_PrivateKey_bio(BIO *bp, EVP_PKEY **a); int i2d_PUBKEY_bio(BIO *bp, const EVP_PKEY *pkey); +EVP_PKEY *d2i_PUBKEY_ex_bio(BIO *bp, EVP_PKEY **a, OSSL_LIB_CTX *libctx, + const char *propq); EVP_PKEY *d2i_PUBKEY_bio(BIO *bp, EVP_PKEY **a); DECLARE_ASN1_DUP_FUNCTION(X509) @@ -884,12 +904,12 @@ int X509_REQ_get_signature_nid(const X509_REQ *req); int i2d_re_X509_REQ_tbs(X509_REQ *req, unsigned char **pp); int X509_REQ_set_pubkey(X509_REQ *x, EVP_PKEY *pkey); EVP_PKEY *X509_REQ_get_pubkey(X509_REQ *req); -EVP_PKEY *X509_REQ_get0_pubkey(X509_REQ *req); +EVP_PKEY *X509_REQ_get0_pubkey(const X509_REQ *req); X509_PUBKEY *X509_REQ_get_X509_PUBKEY(X509_REQ *req); int X509_REQ_extension_nid(int nid); int *X509_REQ_get_extension_nids(void); void X509_REQ_set_extension_nids(int *nids); -STACK_OF(X509_EXTENSION) *X509_REQ_get_extensions(X509_REQ *req); +STACK_OF(X509_EXTENSION) *X509_REQ_get_extensions(OSSL_FUTURE_CONST X509_REQ *req); int X509_REQ_add_extensions_nid(X509_REQ *req, const STACK_OF(X509_EXTENSION) *exts, int nid); int X509_REQ_add_extensions(X509_REQ *req, const STACK_OF(X509_EXTENSION) *ext); @@ -950,13 +970,14 @@ X509_REVOKED_get0_extensions(const X509_REVOKED *r); X509_CRL *X509_CRL_diff(X509_CRL *base, X509_CRL *newer, EVP_PKEY *skey, const EVP_MD *md, unsigned int flags); -int X509_REQ_check_private_key(X509_REQ *x509, EVP_PKEY *pkey); +int X509_REQ_check_private_key(const X509_REQ *req, EVP_PKEY *pkey); -int X509_check_private_key(const X509 *x509, const EVP_PKEY *pkey); +int X509_check_private_key(const X509 *cert, const EVP_PKEY *pkey); int X509_chain_check_suiteb(int *perror_depth, X509 *x, STACK_OF(X509) *chain, unsigned long flags); int X509_CRL_check_suiteb(X509_CRL *crl, EVP_PKEY *pk, unsigned long flags); +void OSSL_STACK_OF_X509_free(STACK_OF(X509) *certs); STACK_OF(X509) *X509_chain_up_ref(STACK_OF(X509) *chain); int X509_issuer_and_serial_cmp(const X509 *a, const X509 *b); @@ -1077,6 +1098,8 @@ X509_EXTENSION *X509v3_get_ext(const STACK_OF(X509_EXTENSION) *x, int loc); X509_EXTENSION *X509v3_delete_ext(STACK_OF(X509_EXTENSION) *x, int loc); STACK_OF(X509_EXTENSION) *X509v3_add_ext(STACK_OF(X509_EXTENSION) **x, X509_EXTENSION *ex, int loc); +STACK_OF(X509_EXTENSION) *X509v3_add_extensions(STACK_OF(X509_EXTENSION) **target, + const STACK_OF(X509_EXTENSION) *exts); int X509_get_ext_count(const X509 *x); int X509_get_ext_by_NID(const X509 *x, int nid, int lastpos); @@ -1198,9 +1221,10 @@ X509 *X509_find_by_subject(STACK_OF(X509) *sk, const X509_NAME *name); DECLARE_ASN1_FUNCTIONS(PBEPARAM) DECLARE_ASN1_FUNCTIONS(PBE2PARAM) DECLARE_ASN1_FUNCTIONS(PBKDF2PARAM) -#ifndef OPENSSL_NO_SCRYPT +DECLARE_ASN1_FUNCTIONS(PBMAC1PARAM) +# ifndef OPENSSL_NO_SCRYPT DECLARE_ASN1_FUNCTIONS(SCRYPT_PARAMS) -#endif +# endif int PKCS5_pbe_set0_algor(X509_ALGOR *algor, int alg, int iter, const unsigned char *salt, int saltlen); @@ -1237,6 +1261,7 @@ X509_ALGOR *PKCS5_pbkdf2_set_ex(int iter, unsigned char *salt, int saltlen, int prf_nid, int keylen, OSSL_LIB_CTX *libctx); +PBKDF2PARAM *PBMAC1_get1_pbkdf2_param(const X509_ALGOR *macalg); /* PKCS#8 utilities */ DECLARE_ASN1_FUNCTIONS(PKCS8_PRIV_KEY_INFO) @@ -1262,6 +1287,8 @@ int PKCS8_pkey_add1_attr_by_OBJ(PKCS8_PRIV_KEY_INFO *p8, const ASN1_OBJECT *obj, int type, const unsigned char *bytes, int len); +void X509_PUBKEY_set0_public_key(X509_PUBKEY *pub, + unsigned char *penc, int penclen); int X509_PUBKEY_set0_param(X509_PUBKEY *pub, ASN1_OBJECT *aobj, int ptype, void *pval, unsigned char *penc, int penclen); diff --git a/deps/openssl/config/archs/BSD-x86/no-asm/include/openssl/x509_acert.h b/deps/openssl/config/archs/BSD-x86/no-asm/include/openssl/x509_acert.h new file mode 100644 index 00000000000000..9dde625677f9a9 --- /dev/null +++ b/deps/openssl/config/archs/BSD-x86/no-asm/include/openssl/x509_acert.h @@ -0,0 +1,294 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from include/openssl/x509_acert.h.in + * + * Copyright 2022-2024 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + + +#ifndef OPENSSL_X509_ACERT_H +# define OPENSSL_X509_ACERT_H +# pragma once + +# include +# include +# include + +typedef struct X509_acert_st X509_ACERT; +typedef struct X509_acert_info_st X509_ACERT_INFO; +typedef struct ossl_object_digest_info_st OSSL_OBJECT_DIGEST_INFO; +typedef struct ossl_issuer_serial_st OSSL_ISSUER_SERIAL; +typedef struct X509_acert_issuer_v2form_st X509_ACERT_ISSUER_V2FORM; + +DECLARE_ASN1_FUNCTIONS(X509_ACERT) +DECLARE_ASN1_DUP_FUNCTION(X509_ACERT) +DECLARE_ASN1_ITEM(X509_ACERT_INFO) +DECLARE_ASN1_ALLOC_FUNCTIONS(X509_ACERT_INFO) +DECLARE_ASN1_ALLOC_FUNCTIONS(OSSL_OBJECT_DIGEST_INFO) +DECLARE_ASN1_ALLOC_FUNCTIONS(OSSL_ISSUER_SERIAL) +DECLARE_ASN1_ALLOC_FUNCTIONS(X509_ACERT_ISSUER_V2FORM) + +# ifndef OPENSSL_NO_STDIO +X509_ACERT *d2i_X509_ACERT_fp(FILE *fp, X509_ACERT **acert); +int i2d_X509_ACERT_fp(FILE *fp, const X509_ACERT *acert); +# endif + +DECLARE_PEM_rw(X509_ACERT, X509_ACERT) + +X509_ACERT *d2i_X509_ACERT_bio(BIO *bp, X509_ACERT **acert); +int i2d_X509_ACERT_bio(BIO *bp, const X509_ACERT *acert); + +int X509_ACERT_sign(X509_ACERT *x, EVP_PKEY *pkey, const EVP_MD *md); +int X509_ACERT_sign_ctx(X509_ACERT *x, EVP_MD_CTX *ctx); +int X509_ACERT_verify(X509_ACERT *a, EVP_PKEY *r); + +# define X509_ACERT_VERSION_2 1 + +const GENERAL_NAMES *X509_ACERT_get0_holder_entityName(const X509_ACERT *x); +const OSSL_ISSUER_SERIAL *X509_ACERT_get0_holder_baseCertId(const X509_ACERT *x); +const OSSL_OBJECT_DIGEST_INFO * X509_ACERT_get0_holder_digest(const X509_ACERT *x); +const X509_NAME *X509_ACERT_get0_issuerName(const X509_ACERT *x); +long X509_ACERT_get_version(const X509_ACERT *x); +void X509_ACERT_get0_signature(const X509_ACERT *x, + const ASN1_BIT_STRING **psig, + const X509_ALGOR **palg); +int X509_ACERT_get_signature_nid(const X509_ACERT *x); +const X509_ALGOR *X509_ACERT_get0_info_sigalg(const X509_ACERT *x); +const ASN1_INTEGER *X509_ACERT_get0_serialNumber(const X509_ACERT *x); +const ASN1_TIME *X509_ACERT_get0_notBefore(const X509_ACERT *x); +const ASN1_TIME *X509_ACERT_get0_notAfter(const X509_ACERT *x); +const ASN1_BIT_STRING *X509_ACERT_get0_issuerUID(const X509_ACERT *x); + +int X509_ACERT_print(BIO *bp, X509_ACERT *x); +int X509_ACERT_print_ex(BIO *bp, X509_ACERT *x, unsigned long nmflags, + unsigned long cflag); + +int X509_ACERT_get_attr_count(const X509_ACERT *x); +int X509_ACERT_get_attr_by_NID(const X509_ACERT *x, int nid, int lastpos); +int X509_ACERT_get_attr_by_OBJ(const X509_ACERT *x, const ASN1_OBJECT *obj, + int lastpos); +X509_ATTRIBUTE *X509_ACERT_get_attr(const X509_ACERT *x, int loc); +X509_ATTRIBUTE *X509_ACERT_delete_attr(X509_ACERT *x, int loc); + +void *X509_ACERT_get_ext_d2i(const X509_ACERT *x, int nid, int *crit, int *idx); +int X509_ACERT_add1_ext_i2d(X509_ACERT *x, int nid, void *value, int crit, + unsigned long flags); +const STACK_OF(X509_EXTENSION) *X509_ACERT_get0_extensions(const X509_ACERT *x); + +# define OSSL_OBJECT_DIGEST_INFO_PUBLIC_KEY 0 +# define OSSL_OBJECT_DIGEST_INFO_PUBLIC_KEY_CERT 1 +# define OSSL_OBJECT_DIGEST_INFO_OTHER 2 /* must not be used in RFC 5755 profile */ +int X509_ACERT_set_version(X509_ACERT *x, long version); +void X509_ACERT_set0_holder_entityName(X509_ACERT *x, GENERAL_NAMES *name); +void X509_ACERT_set0_holder_baseCertId(X509_ACERT *x, OSSL_ISSUER_SERIAL *isss); +void X509_ACERT_set0_holder_digest(X509_ACERT *x, + OSSL_OBJECT_DIGEST_INFO *dinfo); + +int X509_ACERT_add1_attr(X509_ACERT *x, X509_ATTRIBUTE *attr); +int X509_ACERT_add1_attr_by_OBJ(X509_ACERT *x, const ASN1_OBJECT *obj, + int type, const void *bytes, int len); +int X509_ACERT_add1_attr_by_NID(X509_ACERT *x, int nid, int type, + const void *bytes, int len); +int X509_ACERT_add1_attr_by_txt(X509_ACERT *x, const char *attrname, int type, + const unsigned char *bytes, int len); +int X509_ACERT_add_attr_nconf(CONF *conf, const char *section, + X509_ACERT *acert); + +int X509_ACERT_set1_issuerName(X509_ACERT *x, const X509_NAME *name); +int X509_ACERT_set1_serialNumber(X509_ACERT *x, const ASN1_INTEGER *serial); +int X509_ACERT_set1_notBefore(X509_ACERT *x, const ASN1_GENERALIZEDTIME *time); +int X509_ACERT_set1_notAfter(X509_ACERT *x, const ASN1_GENERALIZEDTIME *time); + +void OSSL_OBJECT_DIGEST_INFO_get0_digest(const OSSL_OBJECT_DIGEST_INFO *o, + int *digestedObjectType, + const X509_ALGOR **digestAlgorithm, + const ASN1_BIT_STRING **digest); + +int OSSL_OBJECT_DIGEST_INFO_set1_digest(OSSL_OBJECT_DIGEST_INFO *o, + int digestedObjectType, + X509_ALGOR *digestAlgorithm, + ASN1_BIT_STRING *digest); + +const X509_NAME *OSSL_ISSUER_SERIAL_get0_issuer(const OSSL_ISSUER_SERIAL *isss); +const ASN1_INTEGER *OSSL_ISSUER_SERIAL_get0_serial(const OSSL_ISSUER_SERIAL *isss); +const ASN1_BIT_STRING *OSSL_ISSUER_SERIAL_get0_issuerUID(const OSSL_ISSUER_SERIAL *isss); + +int OSSL_ISSUER_SERIAL_set1_issuer(OSSL_ISSUER_SERIAL *isss, + const X509_NAME *issuer); +int OSSL_ISSUER_SERIAL_set1_serial(OSSL_ISSUER_SERIAL *isss, + const ASN1_INTEGER *serial); +int OSSL_ISSUER_SERIAL_set1_issuerUID(OSSL_ISSUER_SERIAL *isss, + const ASN1_BIT_STRING *uid); + +# define OSSL_IETFAS_OCTETS 0 +# define OSSL_IETFAS_OID 1 +# define OSSL_IETFAS_STRING 2 + +typedef struct OSSL_IETF_ATTR_SYNTAX_VALUE_st OSSL_IETF_ATTR_SYNTAX_VALUE; +typedef struct OSSL_IETF_ATTR_SYNTAX_st OSSL_IETF_ATTR_SYNTAX; +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_IETF_ATTR_SYNTAX_VALUE, OSSL_IETF_ATTR_SYNTAX_VALUE, OSSL_IETF_ATTR_SYNTAX_VALUE) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_value(sk, idx) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_value(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), (idx))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_new(cmp) ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_new(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_compfunc_type(cmp))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_new_null() ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_new_null()) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_new_reserve(cmp, n) ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_compfunc_type(cmp), (n))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), (n)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_free(sk) OPENSSL_sk_free(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_delete(sk, i) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_delete(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), (i))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_delete_ptr(sk, ptr) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_pop(sk) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_pop(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_shift(sk) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_shift(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk),ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_freefunc_type(freefunc)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr), (idx)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_set(sk, idx, ptr) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_set(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), (idx), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr), pnum) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_dup(sk) ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_dup(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_copyfunc_type(copyfunc), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_freefunc_type(freefunc))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_set_cmp_func(sk, cmp) ((sk_OSSL_IETF_ATTR_SYNTAX_VALUE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_compfunc_type(cmp))) + + +DECLARE_ASN1_ITEM(OSSL_IETF_ATTR_SYNTAX_VALUE) +DECLARE_ASN1_ALLOC_FUNCTIONS(OSSL_IETF_ATTR_SYNTAX_VALUE) +DECLARE_ASN1_FUNCTIONS(OSSL_IETF_ATTR_SYNTAX) + +const GENERAL_NAMES * +OSSL_IETF_ATTR_SYNTAX_get0_policyAuthority(const OSSL_IETF_ATTR_SYNTAX *a); +void OSSL_IETF_ATTR_SYNTAX_set0_policyAuthority(OSSL_IETF_ATTR_SYNTAX *a, + GENERAL_NAMES *names); + +int OSSL_IETF_ATTR_SYNTAX_get_value_num(const OSSL_IETF_ATTR_SYNTAX *a); +void *OSSL_IETF_ATTR_SYNTAX_get0_value(const OSSL_IETF_ATTR_SYNTAX *a, + int ind, int *type); +int OSSL_IETF_ATTR_SYNTAX_add1_value(OSSL_IETF_ATTR_SYNTAX *a, int type, + void *data); +int OSSL_IETF_ATTR_SYNTAX_print(BIO *bp, OSSL_IETF_ATTR_SYNTAX *a, int indent); + +struct TARGET_CERT_st { + OSSL_ISSUER_SERIAL *targetCertificate; + GENERAL_NAME *targetName; + OSSL_OBJECT_DIGEST_INFO *certDigestInfo; +}; + +typedef struct TARGET_CERT_st OSSL_TARGET_CERT; + +# define OSSL_TGT_TARGET_NAME 0 +# define OSSL_TGT_TARGET_GROUP 1 +# define OSSL_TGT_TARGET_CERT 2 + +typedef struct TARGET_st { + int type; + union { + GENERAL_NAME *targetName; + GENERAL_NAME *targetGroup; + OSSL_TARGET_CERT *targetCert; + } choice; +} OSSL_TARGET; + +typedef STACK_OF(OSSL_TARGET) OSSL_TARGETS; +typedef STACK_OF(OSSL_TARGETS) OSSL_TARGETING_INFORMATION; + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_TARGET, OSSL_TARGET, OSSL_TARGET) +#define sk_OSSL_TARGET_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_value(sk, idx) ((OSSL_TARGET *)OPENSSL_sk_value(ossl_check_const_OSSL_TARGET_sk_type(sk), (idx))) +#define sk_OSSL_TARGET_new(cmp) ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_new(ossl_check_OSSL_TARGET_compfunc_type(cmp))) +#define sk_OSSL_TARGET_new_null() ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_new_null()) +#define sk_OSSL_TARGET_new_reserve(cmp, n) ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_TARGET_compfunc_type(cmp), (n))) +#define sk_OSSL_TARGET_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_TARGET_sk_type(sk), (n)) +#define sk_OSSL_TARGET_free(sk) OPENSSL_sk_free(ossl_check_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_delete(sk, i) ((OSSL_TARGET *)OPENSSL_sk_delete(ossl_check_OSSL_TARGET_sk_type(sk), (i))) +#define sk_OSSL_TARGET_delete_ptr(sk, ptr) ((OSSL_TARGET *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr))) +#define sk_OSSL_TARGET_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr)) +#define sk_OSSL_TARGET_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr)) +#define sk_OSSL_TARGET_pop(sk) ((OSSL_TARGET *)OPENSSL_sk_pop(ossl_check_OSSL_TARGET_sk_type(sk))) +#define sk_OSSL_TARGET_shift(sk) ((OSSL_TARGET *)OPENSSL_sk_shift(ossl_check_OSSL_TARGET_sk_type(sk))) +#define sk_OSSL_TARGET_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_TARGET_sk_type(sk),ossl_check_OSSL_TARGET_freefunc_type(freefunc)) +#define sk_OSSL_TARGET_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr), (idx)) +#define sk_OSSL_TARGET_set(sk, idx, ptr) ((OSSL_TARGET *)OPENSSL_sk_set(ossl_check_OSSL_TARGET_sk_type(sk), (idx), ossl_check_OSSL_TARGET_type(ptr))) +#define sk_OSSL_TARGET_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr)) +#define sk_OSSL_TARGET_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr)) +#define sk_OSSL_TARGET_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr), pnum) +#define sk_OSSL_TARGET_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_dup(sk) ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_dup(ossl_check_const_OSSL_TARGET_sk_type(sk))) +#define sk_OSSL_TARGET_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_copyfunc_type(copyfunc), ossl_check_OSSL_TARGET_freefunc_type(freefunc))) +#define sk_OSSL_TARGET_set_cmp_func(sk, cmp) ((sk_OSSL_TARGET_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_compfunc_type(cmp))) + + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_TARGETS, OSSL_TARGETS, OSSL_TARGETS) +#define sk_OSSL_TARGETS_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_value(sk, idx) ((OSSL_TARGETS *)OPENSSL_sk_value(ossl_check_const_OSSL_TARGETS_sk_type(sk), (idx))) +#define sk_OSSL_TARGETS_new(cmp) ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_new(ossl_check_OSSL_TARGETS_compfunc_type(cmp))) +#define sk_OSSL_TARGETS_new_null() ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_new_null()) +#define sk_OSSL_TARGETS_new_reserve(cmp, n) ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_TARGETS_compfunc_type(cmp), (n))) +#define sk_OSSL_TARGETS_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_TARGETS_sk_type(sk), (n)) +#define sk_OSSL_TARGETS_free(sk) OPENSSL_sk_free(ossl_check_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_delete(sk, i) ((OSSL_TARGETS *)OPENSSL_sk_delete(ossl_check_OSSL_TARGETS_sk_type(sk), (i))) +#define sk_OSSL_TARGETS_delete_ptr(sk, ptr) ((OSSL_TARGETS *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr))) +#define sk_OSSL_TARGETS_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr)) +#define sk_OSSL_TARGETS_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr)) +#define sk_OSSL_TARGETS_pop(sk) ((OSSL_TARGETS *)OPENSSL_sk_pop(ossl_check_OSSL_TARGETS_sk_type(sk))) +#define sk_OSSL_TARGETS_shift(sk) ((OSSL_TARGETS *)OPENSSL_sk_shift(ossl_check_OSSL_TARGETS_sk_type(sk))) +#define sk_OSSL_TARGETS_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_TARGETS_sk_type(sk),ossl_check_OSSL_TARGETS_freefunc_type(freefunc)) +#define sk_OSSL_TARGETS_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr), (idx)) +#define sk_OSSL_TARGETS_set(sk, idx, ptr) ((OSSL_TARGETS *)OPENSSL_sk_set(ossl_check_OSSL_TARGETS_sk_type(sk), (idx), ossl_check_OSSL_TARGETS_type(ptr))) +#define sk_OSSL_TARGETS_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr)) +#define sk_OSSL_TARGETS_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr)) +#define sk_OSSL_TARGETS_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr), pnum) +#define sk_OSSL_TARGETS_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_dup(sk) ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_dup(ossl_check_const_OSSL_TARGETS_sk_type(sk))) +#define sk_OSSL_TARGETS_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_copyfunc_type(copyfunc), ossl_check_OSSL_TARGETS_freefunc_type(freefunc))) +#define sk_OSSL_TARGETS_set_cmp_func(sk, cmp) ((sk_OSSL_TARGETS_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_compfunc_type(cmp))) + + +DECLARE_ASN1_FUNCTIONS(OSSL_TARGET) +DECLARE_ASN1_FUNCTIONS(OSSL_TARGETS) +DECLARE_ASN1_FUNCTIONS(OSSL_TARGETING_INFORMATION) + +typedef STACK_OF(OSSL_ISSUER_SERIAL) OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX; +DECLARE_ASN1_FUNCTIONS(OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ISSUER_SERIAL, OSSL_ISSUER_SERIAL, OSSL_ISSUER_SERIAL) +#define sk_OSSL_ISSUER_SERIAL_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_value(sk, idx) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_value(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk), (idx))) +#define sk_OSSL_ISSUER_SERIAL_new(cmp) ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_new(ossl_check_OSSL_ISSUER_SERIAL_compfunc_type(cmp))) +#define sk_OSSL_ISSUER_SERIAL_new_null() ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ISSUER_SERIAL_new_reserve(cmp, n) ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ISSUER_SERIAL_compfunc_type(cmp), (n))) +#define sk_OSSL_ISSUER_SERIAL_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), (n)) +#define sk_OSSL_ISSUER_SERIAL_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_delete(sk, i) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_delete(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), (i))) +#define sk_OSSL_ISSUER_SERIAL_delete_ptr(sk, ptr) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr))) +#define sk_OSSL_ISSUER_SERIAL_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr)) +#define sk_OSSL_ISSUER_SERIAL_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr)) +#define sk_OSSL_ISSUER_SERIAL_pop(sk) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_pop(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk))) +#define sk_OSSL_ISSUER_SERIAL_shift(sk) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_shift(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk))) +#define sk_OSSL_ISSUER_SERIAL_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk),ossl_check_OSSL_ISSUER_SERIAL_freefunc_type(freefunc)) +#define sk_OSSL_ISSUER_SERIAL_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr), (idx)) +#define sk_OSSL_ISSUER_SERIAL_set(sk, idx, ptr) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_set(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), (idx), ossl_check_OSSL_ISSUER_SERIAL_type(ptr))) +#define sk_OSSL_ISSUER_SERIAL_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr)) +#define sk_OSSL_ISSUER_SERIAL_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr)) +#define sk_OSSL_ISSUER_SERIAL_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr), pnum) +#define sk_OSSL_ISSUER_SERIAL_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_dup(sk) ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk))) +#define sk_OSSL_ISSUER_SERIAL_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_copyfunc_type(copyfunc), ossl_check_OSSL_ISSUER_SERIAL_freefunc_type(freefunc))) +#define sk_OSSL_ISSUER_SERIAL_set_cmp_func(sk, cmp) ((sk_OSSL_ISSUER_SERIAL_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_compfunc_type(cmp))) + + +#endif diff --git a/deps/openssl/config/archs/BSD-x86/no-asm/include/openssl/x509_vfy.h b/deps/openssl/config/archs/BSD-x86/no-asm/include/openssl/x509_vfy.h index 29b0e147adcab1..c9bdc3b39d685d 100644 --- a/deps/openssl/config/archs/BSD-x86/no-asm/include/openssl/x509_vfy.h +++ b/deps/openssl/config/archs/BSD-x86/no-asm/include/openssl/x509_vfy.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/x509_vfy.h.in * - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -411,6 +411,7 @@ X509_LOOKUP_ctrl_ex((x), X509_L_ADD_STORE, (name), 0, NULL, \ # define X509_V_ERR_CA_CERT_MISSING_KEY_USAGE 92 # define X509_V_ERR_EXTENSIONS_REQUIRE_VERSION_3 93 # define X509_V_ERR_EC_KEY_EXPLICIT_PARAMS 94 +# define X509_V_ERR_RPK_UNTRUSTED 95 /* Certificate verify flags */ # ifndef OPENSSL_NO_DEPRECATED_1_1_0 @@ -491,71 +492,72 @@ int X509_OBJECT_set1_X509(X509_OBJECT *a, X509 *obj); X509_CRL *X509_OBJECT_get0_X509_CRL(const X509_OBJECT *a); int X509_OBJECT_set1_X509_CRL(X509_OBJECT *a, X509_CRL *obj); X509_STORE *X509_STORE_new(void); -void X509_STORE_free(X509_STORE *v); -int X509_STORE_lock(X509_STORE *ctx); -int X509_STORE_unlock(X509_STORE *ctx); -int X509_STORE_up_ref(X509_STORE *v); -STACK_OF(X509_OBJECT) *X509_STORE_get0_objects(const X509_STORE *v); -STACK_OF(X509) *X509_STORE_get1_all_certs(X509_STORE *st); -STACK_OF(X509) *X509_STORE_CTX_get1_certs(X509_STORE_CTX *st, +void X509_STORE_free(X509_STORE *xs); +int X509_STORE_lock(X509_STORE *xs); +int X509_STORE_unlock(X509_STORE *xs); +int X509_STORE_up_ref(X509_STORE *xs); +STACK_OF(X509_OBJECT) *X509_STORE_get0_objects(const X509_STORE *xs); +STACK_OF(X509_OBJECT) *X509_STORE_get1_objects(X509_STORE *xs); +STACK_OF(X509) *X509_STORE_get1_all_certs(X509_STORE *xs); +STACK_OF(X509) *X509_STORE_CTX_get1_certs(X509_STORE_CTX *xs, const X509_NAME *nm); STACK_OF(X509_CRL) *X509_STORE_CTX_get1_crls(const X509_STORE_CTX *st, const X509_NAME *nm); -int X509_STORE_set_flags(X509_STORE *ctx, unsigned long flags); -int X509_STORE_set_purpose(X509_STORE *ctx, int purpose); -int X509_STORE_set_trust(X509_STORE *ctx, int trust); -int X509_STORE_set1_param(X509_STORE *ctx, const X509_VERIFY_PARAM *pm); -X509_VERIFY_PARAM *X509_STORE_get0_param(const X509_STORE *ctx); +int X509_STORE_set_flags(X509_STORE *xs, unsigned long flags); +int X509_STORE_set_purpose(X509_STORE *xs, int purpose); +int X509_STORE_set_trust(X509_STORE *xs, int trust); +int X509_STORE_set1_param(X509_STORE *xs, const X509_VERIFY_PARAM *pm); +X509_VERIFY_PARAM *X509_STORE_get0_param(const X509_STORE *xs); -void X509_STORE_set_verify(X509_STORE *ctx, X509_STORE_CTX_verify_fn verify); +void X509_STORE_set_verify(X509_STORE *xs, X509_STORE_CTX_verify_fn verify); #define X509_STORE_set_verify_func(ctx, func) \ X509_STORE_set_verify((ctx),(func)) void X509_STORE_CTX_set_verify(X509_STORE_CTX *ctx, X509_STORE_CTX_verify_fn verify); -X509_STORE_CTX_verify_fn X509_STORE_get_verify(const X509_STORE *ctx); -void X509_STORE_set_verify_cb(X509_STORE *ctx, +X509_STORE_CTX_verify_fn X509_STORE_get_verify(const X509_STORE *xs); +void X509_STORE_set_verify_cb(X509_STORE *xs, X509_STORE_CTX_verify_cb verify_cb); # define X509_STORE_set_verify_cb_func(ctx,func) \ X509_STORE_set_verify_cb((ctx),(func)) -X509_STORE_CTX_verify_cb X509_STORE_get_verify_cb(const X509_STORE *ctx); -void X509_STORE_set_get_issuer(X509_STORE *ctx, +X509_STORE_CTX_verify_cb X509_STORE_get_verify_cb(const X509_STORE *xs); +void X509_STORE_set_get_issuer(X509_STORE *xs, X509_STORE_CTX_get_issuer_fn get_issuer); -X509_STORE_CTX_get_issuer_fn X509_STORE_get_get_issuer(const X509_STORE *ctx); -void X509_STORE_set_check_issued(X509_STORE *ctx, +X509_STORE_CTX_get_issuer_fn X509_STORE_get_get_issuer(const X509_STORE *xs); +void X509_STORE_set_check_issued(X509_STORE *xs, X509_STORE_CTX_check_issued_fn check_issued); -X509_STORE_CTX_check_issued_fn X509_STORE_get_check_issued(const X509_STORE *ctx); -void X509_STORE_set_check_revocation(X509_STORE *ctx, +X509_STORE_CTX_check_issued_fn X509_STORE_get_check_issued(const X509_STORE *s); +void X509_STORE_set_check_revocation(X509_STORE *xs, X509_STORE_CTX_check_revocation_fn check_revocation); X509_STORE_CTX_check_revocation_fn - X509_STORE_get_check_revocation(const X509_STORE *ctx); -void X509_STORE_set_get_crl(X509_STORE *ctx, + X509_STORE_get_check_revocation(const X509_STORE *xs); +void X509_STORE_set_get_crl(X509_STORE *xs, X509_STORE_CTX_get_crl_fn get_crl); -X509_STORE_CTX_get_crl_fn X509_STORE_get_get_crl(const X509_STORE *ctx); -void X509_STORE_set_check_crl(X509_STORE *ctx, +X509_STORE_CTX_get_crl_fn X509_STORE_get_get_crl(const X509_STORE *xs); +void X509_STORE_set_check_crl(X509_STORE *xs, X509_STORE_CTX_check_crl_fn check_crl); -X509_STORE_CTX_check_crl_fn X509_STORE_get_check_crl(const X509_STORE *ctx); -void X509_STORE_set_cert_crl(X509_STORE *ctx, +X509_STORE_CTX_check_crl_fn X509_STORE_get_check_crl(const X509_STORE *xs); +void X509_STORE_set_cert_crl(X509_STORE *xs, X509_STORE_CTX_cert_crl_fn cert_crl); -X509_STORE_CTX_cert_crl_fn X509_STORE_get_cert_crl(const X509_STORE *ctx); -void X509_STORE_set_check_policy(X509_STORE *ctx, +X509_STORE_CTX_cert_crl_fn X509_STORE_get_cert_crl(const X509_STORE *xs); +void X509_STORE_set_check_policy(X509_STORE *xs, X509_STORE_CTX_check_policy_fn check_policy); -X509_STORE_CTX_check_policy_fn X509_STORE_get_check_policy(const X509_STORE *ctx); -void X509_STORE_set_lookup_certs(X509_STORE *ctx, +X509_STORE_CTX_check_policy_fn X509_STORE_get_check_policy(const X509_STORE *s); +void X509_STORE_set_lookup_certs(X509_STORE *xs, X509_STORE_CTX_lookup_certs_fn lookup_certs); -X509_STORE_CTX_lookup_certs_fn X509_STORE_get_lookup_certs(const X509_STORE *ctx); -void X509_STORE_set_lookup_crls(X509_STORE *ctx, +X509_STORE_CTX_lookup_certs_fn X509_STORE_get_lookup_certs(const X509_STORE *s); +void X509_STORE_set_lookup_crls(X509_STORE *xs, X509_STORE_CTX_lookup_crls_fn lookup_crls); #define X509_STORE_set_lookup_crls_cb(ctx, func) \ X509_STORE_set_lookup_crls((ctx), (func)) -X509_STORE_CTX_lookup_crls_fn X509_STORE_get_lookup_crls(const X509_STORE *ctx); -void X509_STORE_set_cleanup(X509_STORE *ctx, +X509_STORE_CTX_lookup_crls_fn X509_STORE_get_lookup_crls(const X509_STORE *xs); +void X509_STORE_set_cleanup(X509_STORE *xs, X509_STORE_CTX_cleanup_fn cleanup); -X509_STORE_CTX_cleanup_fn X509_STORE_get_cleanup(const X509_STORE *ctx); +X509_STORE_CTX_cleanup_fn X509_STORE_get_cleanup(const X509_STORE *xs); #define X509_STORE_get_ex_new_index(l, p, newf, dupf, freef) \ CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_X509_STORE, l, p, newf, dupf, freef) -int X509_STORE_set_ex_data(X509_STORE *ctx, int idx, void *data); -void *X509_STORE_get_ex_data(const X509_STORE *ctx, int idx); +int X509_STORE_set_ex_data(X509_STORE *xs, int idx, void *data); +void *X509_STORE_get_ex_data(const X509_STORE *xs, int idx); X509_STORE_CTX *X509_STORE_CTX_new_ex(OSSL_LIB_CTX *libctx, const char *propq); X509_STORE_CTX *X509_STORE_CTX_new(void); @@ -565,11 +567,14 @@ int X509_STORE_CTX_get1_issuer(X509 **issuer, X509_STORE_CTX *ctx, X509 *x); void X509_STORE_CTX_free(X509_STORE_CTX *ctx); int X509_STORE_CTX_init(X509_STORE_CTX *ctx, X509_STORE *trust_store, X509 *target, STACK_OF(X509) *untrusted); +int X509_STORE_CTX_init_rpk(X509_STORE_CTX *ctx, X509_STORE *trust_store, + EVP_PKEY* rpk); void X509_STORE_CTX_set0_trusted_stack(X509_STORE_CTX *ctx, STACK_OF(X509) *sk); void X509_STORE_CTX_cleanup(X509_STORE_CTX *ctx); X509_STORE *X509_STORE_CTX_get0_store(const X509_STORE_CTX *ctx); X509 *X509_STORE_CTX_get0_cert(const X509_STORE_CTX *ctx); +EVP_PKEY *X509_STORE_CTX_get0_rpk(const X509_STORE_CTX *ctx); STACK_OF(X509)* X509_STORE_CTX_get0_untrusted(const X509_STORE_CTX *ctx); void X509_STORE_CTX_set0_untrusted(X509_STORE_CTX *ctx, STACK_OF(X509) *sk); void X509_STORE_CTX_set_verify_cb(X509_STORE_CTX *ctx, @@ -579,6 +584,8 @@ X509_STORE_CTX_verify_fn X509_STORE_CTX_get_verify(const X509_STORE_CTX *ctx); X509_STORE_CTX_get_issuer_fn X509_STORE_CTX_get_get_issuer(const X509_STORE_CTX *ctx); X509_STORE_CTX_check_issued_fn X509_STORE_CTX_get_check_issued(const X509_STORE_CTX *ctx); X509_STORE_CTX_check_revocation_fn X509_STORE_CTX_get_check_revocation(const X509_STORE_CTX *ctx); +void X509_STORE_CTX_set_get_crl(X509_STORE_CTX *ctx, + X509_STORE_CTX_get_crl_fn get_crl); X509_STORE_CTX_get_crl_fn X509_STORE_CTX_get_get_crl(const X509_STORE_CTX *ctx); X509_STORE_CTX_check_crl_fn X509_STORE_CTX_get_check_crl(const X509_STORE_CTX *ctx); X509_STORE_CTX_cert_crl_fn X509_STORE_CTX_get_cert_crl(const X509_STORE_CTX *ctx); @@ -600,7 +607,7 @@ X509_STORE_CTX_cleanup_fn X509_STORE_CTX_get_cleanup(const X509_STORE_CTX *ctx); # define X509_STORE_get1_crl X509_STORE_CTX_get1_crls #endif -X509_LOOKUP *X509_STORE_add_lookup(X509_STORE *v, X509_LOOKUP_METHOD *m); +X509_LOOKUP *X509_STORE_add_lookup(X509_STORE *xs, X509_LOOKUP_METHOD *m); X509_LOOKUP_METHOD *X509_LOOKUP_hash_dir(void); X509_LOOKUP_METHOD *X509_LOOKUP_file(void); X509_LOOKUP_METHOD *X509_LOOKUP_store(void); @@ -685,8 +692,8 @@ X509_LOOKUP_get_by_alias_fn X509_LOOKUP_meth_get_get_by_alias( const X509_LOOKUP_METHOD *method); -int X509_STORE_add_cert(X509_STORE *ctx, X509 *x); -int X509_STORE_add_crl(X509_STORE *ctx, X509_CRL *x); +int X509_STORE_add_cert(X509_STORE *xs, X509 *x); +int X509_STORE_add_crl(X509_STORE *xs, X509_CRL *x); int X509_STORE_CTX_get_by_subject(const X509_STORE_CTX *vs, X509_LOOKUP_TYPE type, @@ -730,23 +737,21 @@ void *X509_LOOKUP_get_method_data(const X509_LOOKUP *ctx); X509_STORE *X509_LOOKUP_get_store(const X509_LOOKUP *ctx); int X509_LOOKUP_shutdown(X509_LOOKUP *ctx); -int X509_STORE_load_file(X509_STORE *ctx, const char *file); -int X509_STORE_load_path(X509_STORE *ctx, const char *path); -int X509_STORE_load_store(X509_STORE *ctx, const char *store); -int X509_STORE_load_locations(X509_STORE *ctx, - const char *file, - const char *dir); -int X509_STORE_set_default_paths(X509_STORE *ctx); +int X509_STORE_load_file(X509_STORE *xs, const char *file); +int X509_STORE_load_path(X509_STORE *xs, const char *path); +int X509_STORE_load_store(X509_STORE *xs, const char *store); +int X509_STORE_load_locations(X509_STORE *s, const char *file, const char *dir); +int X509_STORE_set_default_paths(X509_STORE *xs); -int X509_STORE_load_file_ex(X509_STORE *ctx, const char *file, +int X509_STORE_load_file_ex(X509_STORE *xs, const char *file, OSSL_LIB_CTX *libctx, const char *propq); -int X509_STORE_load_store_ex(X509_STORE *ctx, const char *store, +int X509_STORE_load_store_ex(X509_STORE *xs, const char *store, OSSL_LIB_CTX *libctx, const char *propq); -int X509_STORE_load_locations_ex(X509_STORE *ctx, const char *file, - const char *dir, OSSL_LIB_CTX *libctx, - const char *propq); -int X509_STORE_set_default_paths_ex(X509_STORE *ctx, OSSL_LIB_CTX *libctx, - const char *propq); +int X509_STORE_load_locations_ex(X509_STORE *xs, + const char *file, const char *dir, + OSSL_LIB_CTX *libctx, const char *propq); +int X509_STORE_set_default_paths_ex(X509_STORE *xs, + OSSL_LIB_CTX *libctx, const char *propq); #define X509_STORE_CTX_get_ex_new_index(l, p, newf, dupf, freef) \ CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_X509_STORE_CTX, l, p, newf, dupf, freef) @@ -764,6 +769,7 @@ X509_STORE_CTX *X509_STORE_CTX_get0_parent_ctx(const X509_STORE_CTX *ctx); STACK_OF(X509) *X509_STORE_CTX_get0_chain(const X509_STORE_CTX *ctx); STACK_OF(X509) *X509_STORE_CTX_get1_chain(const X509_STORE_CTX *ctx); void X509_STORE_CTX_set_cert(X509_STORE_CTX *ctx, X509 *target); +void X509_STORE_CTX_set0_rpk(X509_STORE_CTX *ctx, EVP_PKEY *target); void X509_STORE_CTX_set0_verified_chain(X509_STORE_CTX *c, STACK_OF(X509) *sk); void X509_STORE_CTX_set0_crls(X509_STORE_CTX *ctx, STACK_OF(X509_CRL) *sk); int X509_STORE_CTX_set_purpose(X509_STORE_CTX *ctx, int purpose); @@ -773,6 +779,8 @@ int X509_STORE_CTX_purpose_inherit(X509_STORE_CTX *ctx, int def_purpose, void X509_STORE_CTX_set_flags(X509_STORE_CTX *ctx, unsigned long flags); void X509_STORE_CTX_set_time(X509_STORE_CTX *ctx, unsigned long flags, time_t t); +void X509_STORE_CTX_set_current_reasons(X509_STORE_CTX *ctx, + unsigned int current_reasons); X509_POLICY_TREE *X509_STORE_CTX_get0_policy_tree(const X509_STORE_CTX *ctx); int X509_STORE_CTX_get_explicit_policy(const X509_STORE_CTX *ctx); @@ -804,6 +812,7 @@ int X509_VERIFY_PARAM_clear_flags(X509_VERIFY_PARAM *param, unsigned long flags); unsigned long X509_VERIFY_PARAM_get_flags(const X509_VERIFY_PARAM *param); int X509_VERIFY_PARAM_set_purpose(X509_VERIFY_PARAM *param, int purpose); +int X509_VERIFY_PARAM_get_purpose(const X509_VERIFY_PARAM *param); int X509_VERIFY_PARAM_set_trust(X509_VERIFY_PARAM *param, int trust); void X509_VERIFY_PARAM_set_depth(X509_VERIFY_PARAM *param, int depth); void X509_VERIFY_PARAM_set_auth_level(X509_VERIFY_PARAM *param, int auth_level); diff --git a/deps/openssl/config/archs/BSD-x86/no-asm/include/openssl/x509v3.h b/deps/openssl/config/archs/BSD-x86/no-asm/include/openssl/x509v3.h index 20b67455f2061d..b8dabac35a4915 100644 --- a/deps/openssl/config/archs/BSD-x86/no-asm/include/openssl/x509v3.h +++ b/deps/openssl/config/archs/BSD-x86/no-asm/include/openssl/x509v3.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/x509v3.h.in * - * Copyright 1999-2023 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1999-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -25,6 +25,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -146,6 +149,11 @@ typedef struct BASIC_CONSTRAINTS_st { ASN1_INTEGER *pathlen; } BASIC_CONSTRAINTS; +typedef struct OSSL_BASIC_ATTR_CONSTRAINTS_st { + int authority; + ASN1_INTEGER *pathlen; +} OSSL_BASIC_ATTR_CONSTRAINTS; + typedef struct PKEY_USAGE_PERIOD_st { ASN1_GENERALIZEDTIME *notBefore; ASN1_GENERALIZEDTIME *notAfter; @@ -198,6 +206,8 @@ typedef struct ACCESS_DESCRIPTION_st { GENERAL_NAME *location; } ACCESS_DESCRIPTION; +int GENERAL_NAME_set1_X509_NAME(GENERAL_NAME **tgt, const X509_NAME *src); + SKM_DEFINE_STACK_OF_INTERNAL(ACCESS_DESCRIPTION, ACCESS_DESCRIPTION, ACCESS_DESCRIPTION) #define sk_ACCESS_DESCRIPTION_num(sk) OPENSSL_sk_num(ossl_check_const_ACCESS_DESCRIPTION_sk_type(sk)) #define sk_ACCESS_DESCRIPTION_value(sk, idx) ((ACCESS_DESCRIPTION *)OPENSSL_sk_value(ossl_check_const_ACCESS_DESCRIPTION_sk_type(sk), (idx))) @@ -294,6 +304,7 @@ typedef struct DIST_POINT_NAME_st { /* If relativename then this contains the full distribution point name */ X509_NAME *dpname; } DIST_POINT_NAME; +DECLARE_ASN1_DUP_FUNCTION(DIST_POINT_NAME) /* All existing reasons */ # define CRLDP_ALL_REASONS 0x807f @@ -659,15 +670,16 @@ struct ISSUING_DIST_POINT_st { # define EXFLAG_SAN_CRITICAL 0x80000 # define EXFLAG_NO_FINGERPRINT 0x100000 -# define KU_DIGITAL_SIGNATURE 0x0080 -# define KU_NON_REPUDIATION 0x0040 -# define KU_KEY_ENCIPHERMENT 0x0020 -# define KU_DATA_ENCIPHERMENT 0x0010 -# define KU_KEY_AGREEMENT 0x0008 -# define KU_KEY_CERT_SIGN 0x0004 -# define KU_CRL_SIGN 0x0002 -# define KU_ENCIPHER_ONLY 0x0001 -# define KU_DECIPHER_ONLY 0x8000 +/* https://datatracker.ietf.org/doc/html/rfc5280#section-4.2.1.3 */ +# define KU_DIGITAL_SIGNATURE X509v3_KU_DIGITAL_SIGNATURE +# define KU_NON_REPUDIATION X509v3_KU_NON_REPUDIATION +# define KU_KEY_ENCIPHERMENT X509v3_KU_KEY_ENCIPHERMENT +# define KU_DATA_ENCIPHERMENT X509v3_KU_DATA_ENCIPHERMENT +# define KU_KEY_AGREEMENT X509v3_KU_KEY_AGREEMENT +# define KU_KEY_CERT_SIGN X509v3_KU_KEY_CERT_SIGN +# define KU_CRL_SIGN X509v3_KU_CRL_SIGN +# define KU_ENCIPHER_ONLY X509v3_KU_ENCIPHER_ONLY +# define KU_DECIPHER_ONLY X509v3_KU_DECIPHER_ONLY # define NS_SSL_CLIENT 0x80 # define NS_SSL_SERVER 0x40 @@ -729,7 +741,7 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_PURPOSE, X509_PURPOSE, X509_PURPOSE) #define sk_X509_PURPOSE_set_cmp_func(sk, cmp) ((sk_X509_PURPOSE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_X509_PURPOSE_sk_type(sk), ossl_check_X509_PURPOSE_compfunc_type(cmp))) - +# define X509_PURPOSE_DEFAULT_ANY 0 # define X509_PURPOSE_SSL_CLIENT 1 # define X509_PURPOSE_SSL_SERVER 2 # define X509_PURPOSE_NS_SSL_SERVER 3 @@ -739,9 +751,10 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_PURPOSE, X509_PURPOSE, X509_PURPOSE) # define X509_PURPOSE_ANY 7 # define X509_PURPOSE_OCSP_HELPER 8 # define X509_PURPOSE_TIMESTAMP_SIGN 9 +# define X509_PURPOSE_CODE_SIGN 10 # define X509_PURPOSE_MIN 1 -# define X509_PURPOSE_MAX 9 +# define X509_PURPOSE_MAX 10 /* Flags for X509V3_EXT_print() */ @@ -767,6 +780,7 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_PURPOSE, X509_PURPOSE, X509_PURPOSE) # define X509V3_ADD_SILENT 0x10 DECLARE_ASN1_FUNCTIONS(BASIC_CONSTRAINTS) +DECLARE_ASN1_FUNCTIONS(OSSL_BASIC_ATTR_CONSTRAINTS) DECLARE_ASN1_FUNCTIONS(SXNET) DECLARE_ASN1_FUNCTIONS(SXNETID) @@ -976,7 +990,6 @@ int X509V3_extensions_print(BIO *out, const char *title, int X509_check_ca(X509 *x); int X509_check_purpose(X509 *x, int id, int ca); int X509_supported_extension(X509_EXTENSION *ex); -int X509_PURPOSE_set(int *p, int purpose); int X509_check_issued(X509 *issuer, X509 *subject); int X509_check_akid(const X509 *issuer, const AUTHORITY_KEYID *akid); void X509_set_proxy_flag(X509 *x); @@ -992,22 +1005,26 @@ const GENERAL_NAMES *X509_get0_authority_issuer(X509 *x); const ASN1_INTEGER *X509_get0_authority_serial(X509 *x); int X509_PURPOSE_get_count(void); -X509_PURPOSE *X509_PURPOSE_get0(int idx); +int X509_PURPOSE_get_unused_id(OSSL_LIB_CTX *libctx); int X509_PURPOSE_get_by_sname(const char *sname); int X509_PURPOSE_get_by_id(int id); int X509_PURPOSE_add(int id, int trust, int flags, int (*ck) (const X509_PURPOSE *, const X509 *, int), const char *name, const char *sname, void *arg); +void X509_PURPOSE_cleanup(void); + +X509_PURPOSE *X509_PURPOSE_get0(int idx); +int X509_PURPOSE_get_id(const X509_PURPOSE *); char *X509_PURPOSE_get0_name(const X509_PURPOSE *xp); char *X509_PURPOSE_get0_sname(const X509_PURPOSE *xp); int X509_PURPOSE_get_trust(const X509_PURPOSE *xp); -void X509_PURPOSE_cleanup(void); -int X509_PURPOSE_get_id(const X509_PURPOSE *); +int X509_PURPOSE_set(int *p, int purpose); STACK_OF(OPENSSL_STRING) *X509_get1_email(X509 *x); STACK_OF(OPENSSL_STRING) *X509_REQ_get1_email(X509_REQ *x); void X509_email_free(STACK_OF(OPENSSL_STRING) *sk); STACK_OF(OPENSSL_STRING) *X509_get1_ocsp(X509 *x); + /* Flags for X509_check_* functions */ /* @@ -1444,6 +1461,507 @@ const ASN1_PRINTABLESTRING *PROFESSION_INFO_get0_registrationNumber( void PROFESSION_INFO_set0_registrationNumber( PROFESSION_INFO *pi, ASN1_PRINTABLESTRING *rn); +int OSSL_GENERAL_NAMES_print(BIO *out, GENERAL_NAMES *gens, int indent); + +typedef STACK_OF(X509_ATTRIBUTE) OSSL_ATTRIBUTES_SYNTAX; +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTES_SYNTAX) + +typedef STACK_OF(USERNOTICE) OSSL_USER_NOTICE_SYNTAX; +DECLARE_ASN1_FUNCTIONS(OSSL_USER_NOTICE_SYNTAX) + +SKM_DEFINE_STACK_OF_INTERNAL(USERNOTICE, USERNOTICE, USERNOTICE) +#define sk_USERNOTICE_num(sk) OPENSSL_sk_num(ossl_check_const_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_value(sk, idx) ((USERNOTICE *)OPENSSL_sk_value(ossl_check_const_USERNOTICE_sk_type(sk), (idx))) +#define sk_USERNOTICE_new(cmp) ((STACK_OF(USERNOTICE) *)OPENSSL_sk_new(ossl_check_USERNOTICE_compfunc_type(cmp))) +#define sk_USERNOTICE_new_null() ((STACK_OF(USERNOTICE) *)OPENSSL_sk_new_null()) +#define sk_USERNOTICE_new_reserve(cmp, n) ((STACK_OF(USERNOTICE) *)OPENSSL_sk_new_reserve(ossl_check_USERNOTICE_compfunc_type(cmp), (n))) +#define sk_USERNOTICE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_USERNOTICE_sk_type(sk), (n)) +#define sk_USERNOTICE_free(sk) OPENSSL_sk_free(ossl_check_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_zero(sk) OPENSSL_sk_zero(ossl_check_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_delete(sk, i) ((USERNOTICE *)OPENSSL_sk_delete(ossl_check_USERNOTICE_sk_type(sk), (i))) +#define sk_USERNOTICE_delete_ptr(sk, ptr) ((USERNOTICE *)OPENSSL_sk_delete_ptr(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr))) +#define sk_USERNOTICE_push(sk, ptr) OPENSSL_sk_push(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr)) +#define sk_USERNOTICE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr)) +#define sk_USERNOTICE_pop(sk) ((USERNOTICE *)OPENSSL_sk_pop(ossl_check_USERNOTICE_sk_type(sk))) +#define sk_USERNOTICE_shift(sk) ((USERNOTICE *)OPENSSL_sk_shift(ossl_check_USERNOTICE_sk_type(sk))) +#define sk_USERNOTICE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_USERNOTICE_sk_type(sk),ossl_check_USERNOTICE_freefunc_type(freefunc)) +#define sk_USERNOTICE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr), (idx)) +#define sk_USERNOTICE_set(sk, idx, ptr) ((USERNOTICE *)OPENSSL_sk_set(ossl_check_USERNOTICE_sk_type(sk), (idx), ossl_check_USERNOTICE_type(ptr))) +#define sk_USERNOTICE_find(sk, ptr) OPENSSL_sk_find(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr)) +#define sk_USERNOTICE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr)) +#define sk_USERNOTICE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr), pnum) +#define sk_USERNOTICE_sort(sk) OPENSSL_sk_sort(ossl_check_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_dup(sk) ((STACK_OF(USERNOTICE) *)OPENSSL_sk_dup(ossl_check_const_USERNOTICE_sk_type(sk))) +#define sk_USERNOTICE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(USERNOTICE) *)OPENSSL_sk_deep_copy(ossl_check_const_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_copyfunc_type(copyfunc), ossl_check_USERNOTICE_freefunc_type(freefunc))) +#define sk_USERNOTICE_set_cmp_func(sk, cmp) ((sk_USERNOTICE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_compfunc_type(cmp))) + + +typedef struct OSSL_ROLE_SPEC_CERT_ID_st { + GENERAL_NAME *roleName; + GENERAL_NAME *roleCertIssuer; + ASN1_INTEGER *roleCertSerialNumber; + GENERAL_NAMES *roleCertLocator; +} OSSL_ROLE_SPEC_CERT_ID; + +DECLARE_ASN1_FUNCTIONS(OSSL_ROLE_SPEC_CERT_ID) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ROLE_SPEC_CERT_ID, OSSL_ROLE_SPEC_CERT_ID, OSSL_ROLE_SPEC_CERT_ID) +#define sk_OSSL_ROLE_SPEC_CERT_ID_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_value(sk, idx) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_value(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), (idx))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_new(cmp) ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_new(ossl_check_OSSL_ROLE_SPEC_CERT_ID_compfunc_type(cmp))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_new_null() ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ROLE_SPEC_CERT_ID_new_reserve(cmp, n) ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ROLE_SPEC_CERT_ID_compfunc_type(cmp), (n))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), (n)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_delete(sk, i) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_delete(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), (i))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_delete_ptr(sk, ptr) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_pop(sk) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_pop(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_shift(sk) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_shift(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk),ossl_check_OSSL_ROLE_SPEC_CERT_ID_freefunc_type(freefunc)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr), (idx)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_set(sk, idx, ptr) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_set(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), (idx), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr), pnum) +#define sk_OSSL_ROLE_SPEC_CERT_ID_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_dup(sk) ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_copyfunc_type(copyfunc), ossl_check_OSSL_ROLE_SPEC_CERT_ID_freefunc_type(freefunc))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_set_cmp_func(sk, cmp) ((sk_OSSL_ROLE_SPEC_CERT_ID_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_compfunc_type(cmp))) + + +typedef STACK_OF(OSSL_ROLE_SPEC_CERT_ID) OSSL_ROLE_SPEC_CERT_ID_SYNTAX; + +DECLARE_ASN1_FUNCTIONS(OSSL_ROLE_SPEC_CERT_ID_SYNTAX) +typedef struct OSSL_HASH_st { + X509_ALGOR *algorithmIdentifier; + ASN1_BIT_STRING *hashValue; +} OSSL_HASH; + +typedef struct OSSL_INFO_SYNTAX_POINTER_st { + GENERAL_NAMES *name; + OSSL_HASH *hash; +} OSSL_INFO_SYNTAX_POINTER; + +# define OSSL_INFO_SYNTAX_TYPE_CONTENT 0 +# define OSSL_INFO_SYNTAX_TYPE_POINTER 1 + +typedef struct OSSL_INFO_SYNTAX_st { + int type; + union { + ASN1_STRING *content; + OSSL_INFO_SYNTAX_POINTER *pointer; + } choice; +} OSSL_INFO_SYNTAX; + +typedef struct OSSL_PRIVILEGE_POLICY_ID_st { + ASN1_OBJECT *privilegePolicy; + OSSL_INFO_SYNTAX *privPolSyntax; +} OSSL_PRIVILEGE_POLICY_ID; + +typedef struct OSSL_ATTRIBUTE_DESCRIPTOR_st { + ASN1_OBJECT *identifier; + ASN1_STRING *attributeSyntax; + ASN1_UTF8STRING *name; + ASN1_UTF8STRING *description; + OSSL_PRIVILEGE_POLICY_ID *dominationRule; +} OSSL_ATTRIBUTE_DESCRIPTOR; + +DECLARE_ASN1_FUNCTIONS(OSSL_HASH) +DECLARE_ASN1_FUNCTIONS(OSSL_INFO_SYNTAX) +DECLARE_ASN1_FUNCTIONS(OSSL_INFO_SYNTAX_POINTER) +DECLARE_ASN1_FUNCTIONS(OSSL_PRIVILEGE_POLICY_ID) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_DESCRIPTOR) + +typedef struct OSSL_TIME_SPEC_ABSOLUTE_st { + ASN1_GENERALIZEDTIME *startTime; + ASN1_GENERALIZEDTIME *endTime; +} OSSL_TIME_SPEC_ABSOLUTE; + +typedef struct OSSL_DAY_TIME_st { + ASN1_INTEGER *hour; + ASN1_INTEGER *minute; + ASN1_INTEGER *second; +} OSSL_DAY_TIME; + +typedef struct OSSL_DAY_TIME_BAND_st { + OSSL_DAY_TIME *startDayTime; + OSSL_DAY_TIME *endDayTime; +} OSSL_DAY_TIME_BAND; + +# define OSSL_NAMED_DAY_TYPE_INT 0 +# define OSSL_NAMED_DAY_TYPE_BIT 1 +# define OSSL_NAMED_DAY_INT_SUN 1 +# define OSSL_NAMED_DAY_INT_MON 2 +# define OSSL_NAMED_DAY_INT_TUE 3 +# define OSSL_NAMED_DAY_INT_WED 4 +# define OSSL_NAMED_DAY_INT_THU 5 +# define OSSL_NAMED_DAY_INT_FRI 6 +# define OSSL_NAMED_DAY_INT_SAT 7 +# define OSSL_NAMED_DAY_BIT_SUN 0 +# define OSSL_NAMED_DAY_BIT_MON 1 +# define OSSL_NAMED_DAY_BIT_TUE 2 +# define OSSL_NAMED_DAY_BIT_WED 3 +# define OSSL_NAMED_DAY_BIT_THU 4 +# define OSSL_NAMED_DAY_BIT_FRI 5 +# define OSSL_NAMED_DAY_BIT_SAT 6 + +typedef struct OSSL_NAMED_DAY_st { + int type; + union { + ASN1_INTEGER *intNamedDays; + ASN1_BIT_STRING *bitNamedDays; + } choice; +} OSSL_NAMED_DAY; + +# define OSSL_TIME_SPEC_X_DAY_OF_FIRST 0 +# define OSSL_TIME_SPEC_X_DAY_OF_SECOND 1 +# define OSSL_TIME_SPEC_X_DAY_OF_THIRD 2 +# define OSSL_TIME_SPEC_X_DAY_OF_FOURTH 3 +# define OSSL_TIME_SPEC_X_DAY_OF_FIFTH 4 + +typedef struct OSSL_TIME_SPEC_X_DAY_OF_st { + int type; + union { + OSSL_NAMED_DAY *first; + OSSL_NAMED_DAY *second; + OSSL_NAMED_DAY *third; + OSSL_NAMED_DAY *fourth; + OSSL_NAMED_DAY *fifth; + } choice; +} OSSL_TIME_SPEC_X_DAY_OF; + +# define OSSL_TIME_SPEC_DAY_TYPE_INT 0 +# define OSSL_TIME_SPEC_DAY_TYPE_BIT 1 +# define OSSL_TIME_SPEC_DAY_TYPE_DAY_OF 2 +# define OSSL_TIME_SPEC_DAY_BIT_SUN 0 +# define OSSL_TIME_SPEC_DAY_BIT_MON 1 +# define OSSL_TIME_SPEC_DAY_BIT_TUE 2 +# define OSSL_TIME_SPEC_DAY_BIT_WED 3 +# define OSSL_TIME_SPEC_DAY_BIT_THU 4 +# define OSSL_TIME_SPEC_DAY_BIT_FRI 5 +# define OSSL_TIME_SPEC_DAY_BIT_SAT 6 +# define OSSL_TIME_SPEC_DAY_INT_SUN 1 +# define OSSL_TIME_SPEC_DAY_INT_MON 2 +# define OSSL_TIME_SPEC_DAY_INT_TUE 3 +# define OSSL_TIME_SPEC_DAY_INT_WED 4 +# define OSSL_TIME_SPEC_DAY_INT_THU 5 +# define OSSL_TIME_SPEC_DAY_INT_FRI 6 +# define OSSL_TIME_SPEC_DAY_INT_SAT 7 + +typedef struct OSSL_TIME_SPEC_DAY_st { + int type; + union { + STACK_OF(ASN1_INTEGER) *intDay; + ASN1_BIT_STRING *bitDay; + OSSL_TIME_SPEC_X_DAY_OF *dayOf; + } choice; +} OSSL_TIME_SPEC_DAY; + +# define OSSL_TIME_SPEC_WEEKS_TYPE_ALL 0 +# define OSSL_TIME_SPEC_WEEKS_TYPE_INT 1 +# define OSSL_TIME_SPEC_WEEKS_TYPE_BIT 2 +# define OSSL_TIME_SPEC_BIT_WEEKS_1 0 +# define OSSL_TIME_SPEC_BIT_WEEKS_2 1 +# define OSSL_TIME_SPEC_BIT_WEEKS_3 2 +# define OSSL_TIME_SPEC_BIT_WEEKS_4 3 +# define OSSL_TIME_SPEC_BIT_WEEKS_5 4 + +typedef struct OSSL_TIME_SPEC_WEEKS_st { + int type; + union { + ASN1_NULL *allWeeks; + STACK_OF(ASN1_INTEGER) *intWeek; + ASN1_BIT_STRING *bitWeek; + } choice; +} OSSL_TIME_SPEC_WEEKS; + +# define OSSL_TIME_SPEC_MONTH_TYPE_ALL 0 +# define OSSL_TIME_SPEC_MONTH_TYPE_INT 1 +# define OSSL_TIME_SPEC_MONTH_TYPE_BIT 2 +# define OSSL_TIME_SPEC_INT_MONTH_JAN 1 +# define OSSL_TIME_SPEC_INT_MONTH_FEB 2 +# define OSSL_TIME_SPEC_INT_MONTH_MAR 3 +# define OSSL_TIME_SPEC_INT_MONTH_APR 4 +# define OSSL_TIME_SPEC_INT_MONTH_MAY 5 +# define OSSL_TIME_SPEC_INT_MONTH_JUN 6 +# define OSSL_TIME_SPEC_INT_MONTH_JUL 7 +# define OSSL_TIME_SPEC_INT_MONTH_AUG 8 +# define OSSL_TIME_SPEC_INT_MONTH_SEP 9 +# define OSSL_TIME_SPEC_INT_MONTH_OCT 10 +# define OSSL_TIME_SPEC_INT_MONTH_NOV 11 +# define OSSL_TIME_SPEC_INT_MONTH_DEC 12 +# define OSSL_TIME_SPEC_BIT_MONTH_JAN 0 +# define OSSL_TIME_SPEC_BIT_MONTH_FEB 1 +# define OSSL_TIME_SPEC_BIT_MONTH_MAR 2 +# define OSSL_TIME_SPEC_BIT_MONTH_APR 3 +# define OSSL_TIME_SPEC_BIT_MONTH_MAY 4 +# define OSSL_TIME_SPEC_BIT_MONTH_JUN 5 +# define OSSL_TIME_SPEC_BIT_MONTH_JUL 6 +# define OSSL_TIME_SPEC_BIT_MONTH_AUG 7 +# define OSSL_TIME_SPEC_BIT_MONTH_SEP 8 +# define OSSL_TIME_SPEC_BIT_MONTH_OCT 9 +# define OSSL_TIME_SPEC_BIT_MONTH_NOV 10 +# define OSSL_TIME_SPEC_BIT_MONTH_DEC 11 + +typedef struct OSSL_TIME_SPEC_MONTH_st { + int type; + union { + ASN1_NULL *allMonths; + STACK_OF(ASN1_INTEGER) *intMonth; + ASN1_BIT_STRING *bitMonth; + } choice; +} OSSL_TIME_SPEC_MONTH; + +typedef struct OSSL_TIME_PERIOD_st { + STACK_OF(OSSL_DAY_TIME_BAND) *timesOfDay; + OSSL_TIME_SPEC_DAY *days; + OSSL_TIME_SPEC_WEEKS *weeks; + OSSL_TIME_SPEC_MONTH *months; + STACK_OF(ASN1_INTEGER) *years; +} OSSL_TIME_PERIOD; + +# define OSSL_TIME_SPEC_TIME_TYPE_ABSOLUTE 0 +# define OSSL_TIME_SPEC_TIME_TYPE_PERIODIC 1 + +typedef struct OSSL_TIME_SPEC_TIME_st { + int type; + union { + OSSL_TIME_SPEC_ABSOLUTE *absolute; + STACK_OF(OSSL_TIME_PERIOD) *periodic; + } choice; +} OSSL_TIME_SPEC_TIME; + +typedef struct OSSL_TIME_SPEC_st { + OSSL_TIME_SPEC_TIME *time; + ASN1_BOOLEAN notThisTime; + ASN1_INTEGER *timeZone; +} OSSL_TIME_SPEC; + +DECLARE_ASN1_FUNCTIONS(OSSL_DAY_TIME) +DECLARE_ASN1_FUNCTIONS(OSSL_DAY_TIME_BAND) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_DAY) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_WEEKS) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_MONTH) +DECLARE_ASN1_FUNCTIONS(OSSL_NAMED_DAY) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_X_DAY_OF) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_ABSOLUTE) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_TIME) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_PERIOD) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_TIME_PERIOD, OSSL_TIME_PERIOD, OSSL_TIME_PERIOD) +#define sk_OSSL_TIME_PERIOD_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_value(sk, idx) ((OSSL_TIME_PERIOD *)OPENSSL_sk_value(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk), (idx))) +#define sk_OSSL_TIME_PERIOD_new(cmp) ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_new(ossl_check_OSSL_TIME_PERIOD_compfunc_type(cmp))) +#define sk_OSSL_TIME_PERIOD_new_null() ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_new_null()) +#define sk_OSSL_TIME_PERIOD_new_reserve(cmp, n) ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_TIME_PERIOD_compfunc_type(cmp), (n))) +#define sk_OSSL_TIME_PERIOD_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), (n)) +#define sk_OSSL_TIME_PERIOD_free(sk) OPENSSL_sk_free(ossl_check_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_delete(sk, i) ((OSSL_TIME_PERIOD *)OPENSSL_sk_delete(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), (i))) +#define sk_OSSL_TIME_PERIOD_delete_ptr(sk, ptr) ((OSSL_TIME_PERIOD *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr))) +#define sk_OSSL_TIME_PERIOD_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr)) +#define sk_OSSL_TIME_PERIOD_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr)) +#define sk_OSSL_TIME_PERIOD_pop(sk) ((OSSL_TIME_PERIOD *)OPENSSL_sk_pop(ossl_check_OSSL_TIME_PERIOD_sk_type(sk))) +#define sk_OSSL_TIME_PERIOD_shift(sk) ((OSSL_TIME_PERIOD *)OPENSSL_sk_shift(ossl_check_OSSL_TIME_PERIOD_sk_type(sk))) +#define sk_OSSL_TIME_PERIOD_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_TIME_PERIOD_sk_type(sk),ossl_check_OSSL_TIME_PERIOD_freefunc_type(freefunc)) +#define sk_OSSL_TIME_PERIOD_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr), (idx)) +#define sk_OSSL_TIME_PERIOD_set(sk, idx, ptr) ((OSSL_TIME_PERIOD *)OPENSSL_sk_set(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), (idx), ossl_check_OSSL_TIME_PERIOD_type(ptr))) +#define sk_OSSL_TIME_PERIOD_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr)) +#define sk_OSSL_TIME_PERIOD_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr)) +#define sk_OSSL_TIME_PERIOD_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr), pnum) +#define sk_OSSL_TIME_PERIOD_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_dup(sk) ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_dup(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk))) +#define sk_OSSL_TIME_PERIOD_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_copyfunc_type(copyfunc), ossl_check_OSSL_TIME_PERIOD_freefunc_type(freefunc))) +#define sk_OSSL_TIME_PERIOD_set_cmp_func(sk, cmp) ((sk_OSSL_TIME_PERIOD_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_compfunc_type(cmp))) + + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_DAY_TIME_BAND, OSSL_DAY_TIME_BAND, OSSL_DAY_TIME_BAND) +#define sk_OSSL_DAY_TIME_BAND_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_value(sk, idx) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_value(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk), (idx))) +#define sk_OSSL_DAY_TIME_BAND_new(cmp) ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_new(ossl_check_OSSL_DAY_TIME_BAND_compfunc_type(cmp))) +#define sk_OSSL_DAY_TIME_BAND_new_null() ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_new_null()) +#define sk_OSSL_DAY_TIME_BAND_new_reserve(cmp, n) ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_DAY_TIME_BAND_compfunc_type(cmp), (n))) +#define sk_OSSL_DAY_TIME_BAND_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), (n)) +#define sk_OSSL_DAY_TIME_BAND_free(sk) OPENSSL_sk_free(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_delete(sk, i) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_delete(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), (i))) +#define sk_OSSL_DAY_TIME_BAND_delete_ptr(sk, ptr) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr))) +#define sk_OSSL_DAY_TIME_BAND_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr)) +#define sk_OSSL_DAY_TIME_BAND_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr)) +#define sk_OSSL_DAY_TIME_BAND_pop(sk) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_pop(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk))) +#define sk_OSSL_DAY_TIME_BAND_shift(sk) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_shift(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk))) +#define sk_OSSL_DAY_TIME_BAND_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk),ossl_check_OSSL_DAY_TIME_BAND_freefunc_type(freefunc)) +#define sk_OSSL_DAY_TIME_BAND_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr), (idx)) +#define sk_OSSL_DAY_TIME_BAND_set(sk, idx, ptr) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_set(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), (idx), ossl_check_OSSL_DAY_TIME_BAND_type(ptr))) +#define sk_OSSL_DAY_TIME_BAND_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr)) +#define sk_OSSL_DAY_TIME_BAND_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr)) +#define sk_OSSL_DAY_TIME_BAND_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr), pnum) +#define sk_OSSL_DAY_TIME_BAND_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_dup(sk) ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_dup(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk))) +#define sk_OSSL_DAY_TIME_BAND_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_copyfunc_type(copyfunc), ossl_check_OSSL_DAY_TIME_BAND_freefunc_type(freefunc))) +#define sk_OSSL_DAY_TIME_BAND_set_cmp_func(sk, cmp) ((sk_OSSL_DAY_TIME_BAND_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_compfunc_type(cmp))) + + +/* Attribute Type and Value */ +typedef struct atav_st { + ASN1_OBJECT *type; + ASN1_TYPE *value; +} OSSL_ATAV; + +typedef struct ATTRIBUTE_TYPE_MAPPING_st { + ASN1_OBJECT *local; + ASN1_OBJECT *remote; +} OSSL_ATTRIBUTE_TYPE_MAPPING; + +typedef struct ATTRIBUTE_VALUE_MAPPING_st { + OSSL_ATAV *local; + OSSL_ATAV *remote; +} OSSL_ATTRIBUTE_VALUE_MAPPING; + +# define OSSL_ATTR_MAP_TYPE 0 +# define OSSL_ATTR_MAP_VALUE 1 + +typedef struct ATTRIBUTE_MAPPING_st { + int type; + union { + OSSL_ATTRIBUTE_TYPE_MAPPING *typeMappings; + OSSL_ATTRIBUTE_VALUE_MAPPING *typeValueMappings; + } choice; +} OSSL_ATTRIBUTE_MAPPING; + +typedef STACK_OF(OSSL_ATTRIBUTE_MAPPING) OSSL_ATTRIBUTE_MAPPINGS; +DECLARE_ASN1_FUNCTIONS(OSSL_ATAV) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_TYPE_MAPPING) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_VALUE_MAPPING) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_MAPPING) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_MAPPINGS) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ATTRIBUTE_MAPPING, OSSL_ATTRIBUTE_MAPPING, OSSL_ATTRIBUTE_MAPPING) +#define sk_OSSL_ATTRIBUTE_MAPPING_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_value(sk, idx) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_value(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), (idx))) +#define sk_OSSL_ATTRIBUTE_MAPPING_new(cmp) ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_new(ossl_check_OSSL_ATTRIBUTE_MAPPING_compfunc_type(cmp))) +#define sk_OSSL_ATTRIBUTE_MAPPING_new_null() ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ATTRIBUTE_MAPPING_new_reserve(cmp, n) ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ATTRIBUTE_MAPPING_compfunc_type(cmp), (n))) +#define sk_OSSL_ATTRIBUTE_MAPPING_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), (n)) +#define sk_OSSL_ATTRIBUTE_MAPPING_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_delete(sk, i) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_delete(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), (i))) +#define sk_OSSL_ATTRIBUTE_MAPPING_delete_ptr(sk, ptr) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr))) +#define sk_OSSL_ATTRIBUTE_MAPPING_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr)) +#define sk_OSSL_ATTRIBUTE_MAPPING_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr)) +#define sk_OSSL_ATTRIBUTE_MAPPING_pop(sk) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_pop(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk))) +#define sk_OSSL_ATTRIBUTE_MAPPING_shift(sk) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_shift(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk))) +#define sk_OSSL_ATTRIBUTE_MAPPING_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk),ossl_check_OSSL_ATTRIBUTE_MAPPING_freefunc_type(freefunc)) +#define sk_OSSL_ATTRIBUTE_MAPPING_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr), (idx)) +#define sk_OSSL_ATTRIBUTE_MAPPING_set(sk, idx, ptr) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_set(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), (idx), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr))) +#define sk_OSSL_ATTRIBUTE_MAPPING_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr)) +#define sk_OSSL_ATTRIBUTE_MAPPING_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr)) +#define sk_OSSL_ATTRIBUTE_MAPPING_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr), pnum) +#define sk_OSSL_ATTRIBUTE_MAPPING_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_dup(sk) ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk))) +#define sk_OSSL_ATTRIBUTE_MAPPING_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_copyfunc_type(copyfunc), ossl_check_OSSL_ATTRIBUTE_MAPPING_freefunc_type(freefunc))) +#define sk_OSSL_ATTRIBUTE_MAPPING_set_cmp_func(sk, cmp) ((sk_OSSL_ATTRIBUTE_MAPPING_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_compfunc_type(cmp))) + + +# define OSSL_AAA_ATTRIBUTE_TYPE 0 +# define OSSL_AAA_ATTRIBUTE_VALUES 1 + +typedef struct ALLOWED_ATTRIBUTES_CHOICE_st { + int type; + union { + ASN1_OBJECT *attributeType; + X509_ATTRIBUTE *attributeTypeandValues; + } choice; +} OSSL_ALLOWED_ATTRIBUTES_CHOICE; + +typedef struct ALLOWED_ATTRIBUTES_ITEM_st { + STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *attributes; + GENERAL_NAME *holderDomain; +} OSSL_ALLOWED_ATTRIBUTES_ITEM; + +typedef STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) OSSL_ALLOWED_ATTRIBUTES_SYNTAX; + +DECLARE_ASN1_FUNCTIONS(OSSL_ALLOWED_ATTRIBUTES_CHOICE) +DECLARE_ASN1_FUNCTIONS(OSSL_ALLOWED_ATTRIBUTES_ITEM) +DECLARE_ASN1_FUNCTIONS(OSSL_ALLOWED_ATTRIBUTES_SYNTAX) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ALLOWED_ATTRIBUTES_CHOICE, OSSL_ALLOWED_ATTRIBUTES_CHOICE, OSSL_ALLOWED_ATTRIBUTES_CHOICE) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_value(sk, idx) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_value(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), (idx))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_new(cmp) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_new(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_compfunc_type(cmp))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_new_null() ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_new_reserve(cmp, n) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_compfunc_type(cmp), (n))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), (n)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_delete(sk, i) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_delete(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), (i))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_delete_ptr(sk, ptr) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_pop(sk) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_pop(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_shift(sk) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_shift(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk),ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_freefunc_type(freefunc)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr), (idx)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_set(sk, idx, ptr) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_set(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), (idx), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr), pnum) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_dup(sk) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_copyfunc_type(copyfunc), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_freefunc_type(freefunc))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_set_cmp_func(sk, cmp) ((sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_compfunc_type(cmp))) + + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ALLOWED_ATTRIBUTES_ITEM, OSSL_ALLOWED_ATTRIBUTES_ITEM, OSSL_ALLOWED_ATTRIBUTES_ITEM) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_value(sk, idx) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_value(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), (idx))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_new(cmp) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_new(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_compfunc_type(cmp))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_new_null() ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_new_reserve(cmp, n) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_compfunc_type(cmp), (n))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), (n)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_delete(sk, i) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_delete(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), (i))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_delete_ptr(sk, ptr) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_pop(sk) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_pop(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_shift(sk) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_shift(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk),ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_freefunc_type(freefunc)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr), (idx)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_set(sk, idx, ptr) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_set(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), (idx), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr), pnum) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_dup(sk) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_copyfunc_type(copyfunc), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_freefunc_type(freefunc))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_set_cmp_func(sk, cmp) ((sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_compfunc_type(cmp))) + + +typedef struct AA_DIST_POINT_st { + DIST_POINT_NAME *distpoint; + ASN1_BIT_STRING *reasons; + int dp_reasons; + ASN1_BOOLEAN indirectCRL; + ASN1_BOOLEAN containsUserAttributeCerts; + ASN1_BOOLEAN containsAACerts; + ASN1_BOOLEAN containsSOAPublicKeyCerts; +} OSSL_AA_DIST_POINT; + +DECLARE_ASN1_FUNCTIONS(OSSL_AA_DIST_POINT) + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/BSD-x86/no-asm/include/progs.h b/deps/openssl/config/archs/BSD-x86/no-asm/include/progs.h index be55f61503d405..1b62ec37dec130 100644 --- a/deps/openssl/config/archs/BSD-x86/no-asm/include/progs.h +++ b/deps/openssl/config/archs/BSD-x86/no-asm/include/progs.h @@ -56,6 +56,7 @@ extern int s_client_main(int argc, char *argv[]); extern int s_server_main(int argc, char *argv[]); extern int s_time_main(int argc, char *argv[]); extern int sess_id_main(int argc, char *argv[]); +extern int skeyutl_main(int argc, char *argv[]); extern int smime_main(int argc, char *argv[]); extern int speed_main(int argc, char *argv[]); extern int spkac_main(int argc, char *argv[]); @@ -110,6 +111,7 @@ extern const OPTIONS s_client_options[]; extern const OPTIONS s_server_options[]; extern const OPTIONS s_time_options[]; extern const OPTIONS sess_id_options[]; +extern const OPTIONS skeyutl_options[]; extern const OPTIONS smime_options[]; extern const OPTIONS speed_options[]; extern const OPTIONS spkac_options[]; diff --git a/deps/openssl/config/archs/BSD-x86/no-asm/openssl-cl.gypi b/deps/openssl/config/archs/BSD-x86/no-asm/openssl-cl.gypi index 8fd73693174fd1..e7fb20b83987b3 100644 --- a/deps/openssl/config/archs/BSD-x86/no-asm/openssl-cl.gypi +++ b/deps/openssl/config/archs/BSD-x86/no-asm/openssl-cl.gypi @@ -61,6 +61,7 @@ 'openssl/apps/s_server.c', 'openssl/apps/s_time.c', 'openssl/apps/sess_id.c', + 'openssl/apps/skeyutl.c', 'openssl/apps/smime.c', 'openssl/apps/speed.c', 'openssl/apps/spkac.c', @@ -76,12 +77,14 @@ 'openssl/apps/lib/app_rand.c', 'openssl/apps/lib/app_x509.c', 'openssl/apps/lib/apps.c', + 'openssl/apps/lib/apps_opt_printf.c', 'openssl/apps/lib/apps_ui.c', 'openssl/apps/lib/columns.c', 'openssl/apps/lib/engine.c', 'openssl/apps/lib/engine_loader.c', 'openssl/apps/lib/fmt.c', 'openssl/apps/lib/http_server.c', + 'openssl/apps/lib/log.c', 'openssl/apps/lib/names.c', 'openssl/apps/lib/opt.c', 'openssl/apps/lib/s_cb.c', diff --git a/deps/openssl/config/archs/BSD-x86/no-asm/openssl-fips.gypi b/deps/openssl/config/archs/BSD-x86/no-asm/openssl-fips.gypi index 4d4d25a9e8f6dc..f79299fd5746f4 100644 --- a/deps/openssl/config/archs/BSD-x86/no-asm/openssl-fips.gypi +++ b/deps/openssl/config/archs/BSD-x86/no-asm/openssl-fips.gypi @@ -100,14 +100,15 @@ 'openssl/crypto/evp/kem.c', 'openssl/crypto/evp/keymgmt_lib.c', 'openssl/crypto/evp/keymgmt_meth.c', - 'openssl/crypto/evp/m_sigver.c', 'openssl/crypto/evp/mac_lib.c', 'openssl/crypto/evp/mac_meth.c', 'openssl/crypto/evp/p_lib.c', 'openssl/crypto/evp/pmeth_check.c', 'openssl/crypto/evp/pmeth_gn.c', 'openssl/crypto/evp/pmeth_lib.c', + 'openssl/crypto/evp/s_lib.c', 'openssl/crypto/evp/signature.c', + 'openssl/crypto/evp/skeymgmt_meth.c', 'openssl/crypto/ffc/ffc_backend.c', 'openssl/crypto/ffc/ffc_dh.c', 'openssl/crypto/ffc/ffc_key_generate.c', @@ -115,6 +116,8 @@ 'openssl/crypto/ffc/ffc_params.c', 'openssl/crypto/ffc/ffc_params_generate.c', 'openssl/crypto/ffc/ffc_params_validate.c', + 'openssl/crypto/hashtable/hashfunc.c', + 'openssl/crypto/hashtable/hashtable.c', 'openssl/crypto/hmac/hmac.c', 'openssl/crypto/lhash/lhash.c', 'openssl/crypto/asn1_dsa.c', @@ -145,6 +148,16 @@ 'openssl/crypto/threads_none.c', 'openssl/crypto/threads_pthread.c', 'openssl/crypto/threads_win.c', + 'openssl/crypto/time.c', + 'openssl/crypto/ml_dsa/ml_dsa_encoders.c', + 'openssl/crypto/ml_dsa/ml_dsa_key.c', + 'openssl/crypto/ml_dsa/ml_dsa_key_compress.c', + 'openssl/crypto/ml_dsa/ml_dsa_matrix.c', + 'openssl/crypto/ml_dsa/ml_dsa_ntt.c', + 'openssl/crypto/ml_dsa/ml_dsa_params.c', + 'openssl/crypto/ml_dsa/ml_dsa_sample.c', + 'openssl/crypto/ml_dsa/ml_dsa_sign.c', + 'openssl/crypto/ml_kem/ml_kem.c', 'openssl/crypto/modes/cbc128.c', 'openssl/crypto/modes/ccm128.c', 'openssl/crypto/modes/cfb128.c', @@ -153,6 +166,7 @@ 'openssl/crypto/modes/ofb128.c', 'openssl/crypto/modes/wrap128.c', 'openssl/crypto/modes/xts128.c', + 'openssl/crypto/modes/xts128gb.c', 'openssl/crypto/property/defn_cache.c', 'openssl/crypto/property/property.c', 'openssl/crypto/property/property_parse.c', @@ -181,7 +195,23 @@ 'openssl/crypto/sha/sha256.c', 'openssl/crypto/sha/sha3.c', 'openssl/crypto/sha/sha512.c', + 'openssl/crypto/slh_dsa/slh_adrs.c', + 'openssl/crypto/slh_dsa/slh_dsa.c', + 'openssl/crypto/slh_dsa/slh_dsa_hash_ctx.c', + 'openssl/crypto/slh_dsa/slh_dsa_key.c', + 'openssl/crypto/slh_dsa/slh_fors.c', + 'openssl/crypto/slh_dsa/slh_hash.c', + 'openssl/crypto/slh_dsa/slh_hypertree.c', + 'openssl/crypto/slh_dsa/slh_params.c', + 'openssl/crypto/slh_dsa/slh_wots.c', + 'openssl/crypto/slh_dsa/slh_xmss.c', 'openssl/crypto/stack/stack.c', + 'openssl/crypto/thread/arch/thread_none.c', + 'openssl/crypto/thread/arch/thread_posix.c', + 'openssl/crypto/thread/arch/thread_win.c', + 'openssl/crypto/thread/api.c', + 'openssl/crypto/thread/arch.c', + 'openssl/crypto/thread/internal.c', 'openssl/providers/common/der/der_rsa_sig.c', 'openssl/providers/common/bio_prov.c', 'openssl/providers/common/capabilities.c', @@ -190,6 +220,7 @@ 'openssl/providers/common/provider_util.c', 'openssl/providers/common/securitycheck.c', 'openssl/providers/common/securitycheck_fips.c', + 'openssl/providers/fips/fipsindicator.c', 'openssl/providers/fips/fipsprov.c', 'openssl/providers/fips/self_test.c', 'openssl/providers/fips/self_test_kats.c', @@ -227,6 +258,8 @@ 'openssl/providers/implementations/kdfs/sskdf.c', 'openssl/providers/implementations/kdfs/tls1_prf.c', 'openssl/providers/implementations/kdfs/x942kdf.c', + 'openssl/providers/implementations/kem/ml_kem_kem.c', + 'openssl/providers/implementations/kem/mlx_kem.c', 'openssl/providers/implementations/kem/rsa_kem.c', 'openssl/providers/implementations/keymgmt/dh_kmgmt.c', 'openssl/providers/implementations/keymgmt/dsa_kmgmt.c', @@ -234,29 +267,39 @@ 'openssl/providers/implementations/keymgmt/ecx_kmgmt.c', 'openssl/providers/implementations/keymgmt/kdf_legacy_kmgmt.c', 'openssl/providers/implementations/keymgmt/mac_legacy_kmgmt.c', + 'openssl/providers/implementations/keymgmt/ml_dsa_kmgmt.c', + 'openssl/providers/implementations/keymgmt/ml_kem_kmgmt.c', + 'openssl/providers/implementations/keymgmt/mlx_kmgmt.c', 'openssl/providers/implementations/keymgmt/rsa_kmgmt.c', + 'openssl/providers/implementations/keymgmt/slh_dsa_kmgmt.c', 'openssl/providers/implementations/macs/cmac_prov.c', 'openssl/providers/implementations/macs/gmac_prov.c', 'openssl/providers/implementations/macs/hmac_prov.c', 'openssl/providers/implementations/macs/kmac_prov.c', - 'openssl/providers/implementations/rands/crngt.c', 'openssl/providers/implementations/rands/drbg.c', 'openssl/providers/implementations/rands/drbg_ctr.c', 'openssl/providers/implementations/rands/drbg_hash.c', 'openssl/providers/implementations/rands/drbg_hmac.c', + 'openssl/providers/implementations/rands/fips_crng_test.c', 'openssl/providers/implementations/rands/test_rng.c', 'openssl/providers/implementations/signature/dsa_sig.c', 'openssl/providers/implementations/signature/ecdsa_sig.c', 'openssl/providers/implementations/signature/eddsa_sig.c', 'openssl/providers/implementations/signature/mac_legacy_sig.c', + 'openssl/providers/implementations/signature/ml_dsa_sig.c', 'openssl/providers/implementations/signature/rsa_sig.c', - 'openssl/ssl/s3_cbc.c', + 'openssl/providers/implementations/signature/slh_dsa_sig.c', + 'openssl/providers/implementations/skeymgmt/aes_skmgmt.c', + 'openssl/providers/implementations/skeymgmt/generic.c', + 'openssl/ssl/record/methods/ssl3_cbc.c', 'openssl/providers/common/der/der_dsa_key.c', 'openssl/providers/common/der/der_dsa_sig.c', 'openssl/providers/common/der/der_ec_key.c', 'openssl/providers/common/der/der_ec_sig.c', 'openssl/providers/common/der/der_ecx_key.c', + 'openssl/providers/common/der/der_ml_dsa_key.c', 'openssl/providers/common/der/der_rsa_key.c', + 'openssl/providers/common/der/der_slh_dsa_key.c', 'openssl/providers/common/provider_ctx.c', 'openssl/providers/common/provider_err.c', 'openssl/providers/implementations/ciphers/ciphercommon.c', @@ -267,17 +310,20 @@ 'openssl/providers/implementations/ciphers/ciphercommon_gcm_hw.c', 'openssl/providers/implementations/ciphers/ciphercommon_hw.c', 'openssl/providers/implementations/digests/digestcommon.c', - 'openssl/ssl/record/tls_pad.c', + 'openssl/ssl/record/methods/tls_pad.c', 'openssl/providers/fips/fips_entry.c', ], 'openssl_sources_BSD-x86': [ + './config/archs/BSD-x86/no-asm/crypto/params_idx.c', './config/archs/BSD-x86/no-asm/providers/common/der/der_sm2_gen.c', './config/archs/BSD-x86/no-asm/providers/common/der/der_digests_gen.c', './config/archs/BSD-x86/no-asm/providers/common/der/der_dsa_gen.c', './config/archs/BSD-x86/no-asm/providers/common/der/der_ec_gen.c', './config/archs/BSD-x86/no-asm/providers/common/der/der_ecx_gen.c', + './config/archs/BSD-x86/no-asm/providers/common/der/der_ml_dsa_gen.c', './config/archs/BSD-x86/no-asm/providers/common/der/der_rsa_gen.c', + './config/archs/BSD-x86/no-asm/providers/common/der/der_slh_dsa_gen.c', './config/archs/BSD-x86/no-asm/providers/common/der/der_wrap_gen.c', './config/archs/BSD-x86/no-asm/providers/legacy.ld', './config/archs/BSD-x86/no-asm/providers/fips.ld', diff --git a/deps/openssl/config/archs/BSD-x86/no-asm/openssl.gypi b/deps/openssl/config/archs/BSD-x86/no-asm/openssl.gypi index 2031f41d6307b9..3f9be62516b43b 100644 --- a/deps/openssl/config/archs/BSD-x86/no-asm/openssl.gypi +++ b/deps/openssl/config/archs/BSD-x86/no-asm/openssl.gypi @@ -7,14 +7,15 @@ 'openssl/ssl/d1_srtp.c', 'openssl/ssl/methods.c', 'openssl/ssl/pqueue.c', + 'openssl/ssl/priority_queue.c', 'openssl/ssl/s3_enc.c', 'openssl/ssl/s3_lib.c', 'openssl/ssl/s3_msg.c', 'openssl/ssl/ssl_asn1.c', 'openssl/ssl/ssl_cert.c', + 'openssl/ssl/ssl_cert_comp.c', 'openssl/ssl/ssl_ciph.c', 'openssl/ssl/ssl_conf.c', - 'openssl/ssl/ssl_err.c', 'openssl/ssl/ssl_err_legacy.c', 'openssl/ssl/ssl_init.c', 'openssl/ssl/ssl_lib.c', @@ -31,12 +32,60 @@ 'openssl/ssl/tls13_enc.c', 'openssl/ssl/tls_depr.c', 'openssl/ssl/tls_srp.c', - 'openssl/ssl/record/dtls1_bitmap.c', + 'openssl/ssl/quic/cc_newreno.c', + 'openssl/ssl/quic/json_enc.c', + 'openssl/ssl/quic/qlog.c', + 'openssl/ssl/quic/qlog_event_helpers.c', + 'openssl/ssl/quic/quic_ackm.c', + 'openssl/ssl/quic/quic_cfq.c', + 'openssl/ssl/quic/quic_channel.c', + 'openssl/ssl/quic/quic_demux.c', + 'openssl/ssl/quic/quic_engine.c', + 'openssl/ssl/quic/quic_fc.c', + 'openssl/ssl/quic/quic_fifd.c', + 'openssl/ssl/quic/quic_impl.c', + 'openssl/ssl/quic/quic_lcidm.c', + 'openssl/ssl/quic/quic_method.c', + 'openssl/ssl/quic/quic_obj.c', + 'openssl/ssl/quic/quic_port.c', + 'openssl/ssl/quic/quic_rcidm.c', + 'openssl/ssl/quic/quic_reactor.c', + 'openssl/ssl/quic/quic_reactor_wait_ctx.c', + 'openssl/ssl/quic/quic_record_rx.c', + 'openssl/ssl/quic/quic_record_shared.c', + 'openssl/ssl/quic/quic_record_tx.c', + 'openssl/ssl/quic/quic_record_util.c', + 'openssl/ssl/quic/quic_rstream.c', + 'openssl/ssl/quic/quic_rx_depack.c', + 'openssl/ssl/quic/quic_sf_list.c', + 'openssl/ssl/quic/quic_srt_gen.c', + 'openssl/ssl/quic/quic_srtm.c', + 'openssl/ssl/quic/quic_sstream.c', + 'openssl/ssl/quic/quic_statm.c', + 'openssl/ssl/quic/quic_stream_map.c', + 'openssl/ssl/quic/quic_thread_assist.c', + 'openssl/ssl/quic/quic_tls.c', + 'openssl/ssl/quic/quic_tls_api.c', + 'openssl/ssl/quic/quic_trace.c', + 'openssl/ssl/quic/quic_tserver.c', + 'openssl/ssl/quic/quic_txp.c', + 'openssl/ssl/quic/quic_txpim.c', + 'openssl/ssl/quic/quic_types.c', + 'openssl/ssl/quic/quic_wire.c', + 'openssl/ssl/quic/quic_wire_pkt.c', + 'openssl/ssl/quic/uint_set.c', 'openssl/ssl/record/rec_layer_d1.c', 'openssl/ssl/record/rec_layer_s3.c', - 'openssl/ssl/record/ssl3_buffer.c', - 'openssl/ssl/record/ssl3_record.c', - 'openssl/ssl/record/ssl3_record_tls13.c', + 'openssl/ssl/record/methods/dtls_meth.c', + 'openssl/ssl/record/methods/ssl3_meth.c', + 'openssl/ssl/record/methods/tls13_meth.c', + 'openssl/ssl/record/methods/tls1_meth.c', + 'openssl/ssl/record/methods/tls_common.c', + 'openssl/ssl/record/methods/tls_multib.c', + 'openssl/ssl/record/methods/tlsany_meth.c', + 'openssl/ssl/rio/poll_builder.c', + 'openssl/ssl/rio/poll_immediate.c', + 'openssl/ssl/rio/rio_notifier.c', 'openssl/ssl/statem/extensions.c', 'openssl/ssl/statem/extensions_clnt.c', 'openssl/ssl/statem/extensions_cust.c', @@ -150,6 +199,7 @@ 'openssl/crypto/bio/bss_conn.c', 'openssl/crypto/bio/bss_core.c', 'openssl/crypto/bio/bss_dgram.c', + 'openssl/crypto/bio/bss_dgram_pair.c', 'openssl/crypto/bio/bss_fd.c', 'openssl/crypto/bio/bss_file.c', 'openssl/crypto/bio/bss_log.c', @@ -210,6 +260,7 @@ 'openssl/crypto/cmp/cmp_client.c', 'openssl/crypto/cmp/cmp_ctx.c', 'openssl/crypto/cmp/cmp_err.c', + 'openssl/crypto/cmp/cmp_genm.c', 'openssl/crypto/cmp/cmp_hdr.c', 'openssl/crypto/cmp/cmp_http.c', 'openssl/crypto/cmp/cmp_msg.c', @@ -385,7 +436,9 @@ 'openssl/crypto/err/err_all.c', 'openssl/crypto/err/err_all_legacy.c', 'openssl/crypto/err/err_blocks.c', + 'openssl/crypto/err/err_mark.c', 'openssl/crypto/err/err_prn.c', + 'openssl/crypto/err/err_save.c', 'openssl/crypto/ess/ess_asn1.c', 'openssl/crypto/ess/ess_err.c', 'openssl/crypto/ess/ess_lib.c', @@ -468,7 +521,9 @@ 'openssl/crypto/evp/pmeth_check.c', 'openssl/crypto/evp/pmeth_gn.c', 'openssl/crypto/evp/pmeth_lib.c', + 'openssl/crypto/evp/s_lib.c', 'openssl/crypto/evp/signature.c', + 'openssl/crypto/evp/skeymgmt_meth.c', 'openssl/crypto/ffc/ffc_backend.c', 'openssl/crypto/ffc/ffc_dh.c', 'openssl/crypto/ffc/ffc_key_generate.c', @@ -476,7 +531,11 @@ 'openssl/crypto/ffc/ffc_params.c', 'openssl/crypto/ffc/ffc_params_generate.c', 'openssl/crypto/ffc/ffc_params_validate.c', + 'openssl/crypto/hashtable/hashfunc.c', + 'openssl/crypto/hashtable/hashtable.c', 'openssl/crypto/hmac/hmac.c', + 'openssl/crypto/hpke/hpke.c', + 'openssl/crypto/hpke/hpke_util.c', 'openssl/crypto/http/http_client.c', 'openssl/crypto/http/http_err.c', 'openssl/crypto/http/http_lib.c', @@ -490,6 +549,7 @@ 'openssl/crypto/lhash/lhash.c', 'openssl/crypto/asn1_dsa.c', 'openssl/crypto/bsearch.c', + 'openssl/crypto/comp_methods.c', 'openssl/crypto/context.c', 'openssl/crypto/core_algorithm.c', 'openssl/crypto/core_fetch.c', @@ -499,10 +559,13 @@ 'openssl/crypto/cryptlib.c', 'openssl/crypto/ctype.c', 'openssl/crypto/cversion.c', + 'openssl/crypto/defaults.c', 'openssl/crypto/der_writer.c', + 'openssl/crypto/deterministic_nonce.c', 'openssl/crypto/ebcdic.c', 'openssl/crypto/ex_data.c', 'openssl/crypto/getenv.c', + 'openssl/crypto/indicator_core.c', 'openssl/crypto/info.c', 'openssl/crypto/init.c', 'openssl/crypto/initthread.c', @@ -527,12 +590,16 @@ 'openssl/crypto/provider_core.c', 'openssl/crypto/provider_predefined.c', 'openssl/crypto/punycode.c', + 'openssl/crypto/quic_vlint.c', 'openssl/crypto/self_test_core.c', + 'openssl/crypto/sleep.c', 'openssl/crypto/sparse_array.c', + 'openssl/crypto/ssl_err.c', 'openssl/crypto/threads_lib.c', 'openssl/crypto/threads_none.c', 'openssl/crypto/threads_pthread.c', 'openssl/crypto/threads_win.c', + 'openssl/crypto/time.c', 'openssl/crypto/trace.c', 'openssl/crypto/uid.c', 'openssl/crypto/md4/md4_dgst.c', @@ -542,6 +609,15 @@ 'openssl/crypto/md5/md5_sha1.c', 'openssl/crypto/mdc2/mdc2_one.c', 'openssl/crypto/mdc2/mdc2dgst.c', + 'openssl/crypto/ml_dsa/ml_dsa_encoders.c', + 'openssl/crypto/ml_dsa/ml_dsa_key.c', + 'openssl/crypto/ml_dsa/ml_dsa_key_compress.c', + 'openssl/crypto/ml_dsa/ml_dsa_matrix.c', + 'openssl/crypto/ml_dsa/ml_dsa_ntt.c', + 'openssl/crypto/ml_dsa/ml_dsa_params.c', + 'openssl/crypto/ml_dsa/ml_dsa_sample.c', + 'openssl/crypto/ml_dsa/ml_dsa_sign.c', + 'openssl/crypto/ml_kem/ml_kem.c', 'openssl/crypto/modes/cbc128.c', 'openssl/crypto/modes/ccm128.c', 'openssl/crypto/modes/cfb128.c', @@ -553,6 +629,7 @@ 'openssl/crypto/modes/siv128.c', 'openssl/crypto/modes/wrap128.c', 'openssl/crypto/modes/xts128.c', + 'openssl/crypto/modes/xts128gb.c', 'openssl/crypto/objects/o_names.c', 'openssl/crypto/objects/obj_dat.c', 'openssl/crypto/objects/obj_err.c', @@ -616,6 +693,7 @@ 'openssl/crypto/rand/rand_lib.c', 'openssl/crypto/rand/rand_meth.c', 'openssl/crypto/rand/rand_pool.c', + 'openssl/crypto/rand/rand_uniform.c', 'openssl/crypto/rand/randfile.c', 'openssl/crypto/rc2/rc2_cbc.c', 'openssl/crypto/rc2/rc2_ecb.c', @@ -664,6 +742,16 @@ 'openssl/crypto/sha/sha3.c', 'openssl/crypto/sha/sha512.c', 'openssl/crypto/siphash/siphash.c', + 'openssl/crypto/slh_dsa/slh_adrs.c', + 'openssl/crypto/slh_dsa/slh_dsa.c', + 'openssl/crypto/slh_dsa/slh_dsa_hash_ctx.c', + 'openssl/crypto/slh_dsa/slh_dsa_key.c', + 'openssl/crypto/slh_dsa/slh_fors.c', + 'openssl/crypto/slh_dsa/slh_hash.c', + 'openssl/crypto/slh_dsa/slh_hypertree.c', + 'openssl/crypto/slh_dsa/slh_params.c', + 'openssl/crypto/slh_dsa/slh_wots.c', + 'openssl/crypto/slh_dsa/slh_xmss.c', 'openssl/crypto/sm2/sm2_crypt.c', 'openssl/crypto/sm2/sm2_err.c', 'openssl/crypto/sm2/sm2_key.c', @@ -681,6 +769,12 @@ 'openssl/crypto/store/store_register.c', 'openssl/crypto/store/store_result.c', 'openssl/crypto/store/store_strings.c', + 'openssl/crypto/thread/arch/thread_none.c', + 'openssl/crypto/thread/arch/thread_posix.c', + 'openssl/crypto/thread/arch/thread_win.c', + 'openssl/crypto/thread/api.c', + 'openssl/crypto/thread/arch.c', + 'openssl/crypto/thread/internal.c', 'openssl/crypto/ts/ts_asn1.c', 'openssl/crypto/ts/ts_conf.c', 'openssl/crypto/ts/ts_err.c', @@ -709,14 +803,22 @@ 'openssl/crypto/x509/pcy_map.c', 'openssl/crypto/x509/pcy_node.c', 'openssl/crypto/x509/pcy_tree.c', + 'openssl/crypto/x509/t_acert.c', 'openssl/crypto/x509/t_crl.c', 'openssl/crypto/x509/t_req.c', 'openssl/crypto/x509/t_x509.c', + 'openssl/crypto/x509/v3_aaa.c', + 'openssl/crypto/x509/v3_ac_tgt.c', 'openssl/crypto/x509/v3_addr.c', 'openssl/crypto/x509/v3_admis.c', 'openssl/crypto/x509/v3_akeya.c', 'openssl/crypto/x509/v3_akid.c', 'openssl/crypto/x509/v3_asid.c', + 'openssl/crypto/x509/v3_attrdesc.c', + 'openssl/crypto/x509/v3_attrmap.c', + 'openssl/crypto/x509/v3_audit_id.c', + 'openssl/crypto/x509/v3_authattid.c', + 'openssl/crypto/x509/v3_battcons.c', 'openssl/crypto/x509/v3_bcons.c', 'openssl/crypto/x509/v3_bitst.c', 'openssl/crypto/x509/v3_conf.c', @@ -725,12 +827,17 @@ 'openssl/crypto/x509/v3_enum.c', 'openssl/crypto/x509/v3_extku.c', 'openssl/crypto/x509/v3_genn.c', + 'openssl/crypto/x509/v3_group_ac.c', 'openssl/crypto/x509/v3_ia5.c', + 'openssl/crypto/x509/v3_ind_iss.c', 'openssl/crypto/x509/v3_info.c', 'openssl/crypto/x509/v3_int.c', + 'openssl/crypto/x509/v3_iobo.c', 'openssl/crypto/x509/v3_ist.c', 'openssl/crypto/x509/v3_lib.c', 'openssl/crypto/x509/v3_ncons.c', + 'openssl/crypto/x509/v3_no_ass.c', + 'openssl/crypto/x509/v3_no_rev_avail.c', 'openssl/crypto/x509/v3_pci.c', 'openssl/crypto/x509/v3_pcia.c', 'openssl/crypto/x509/v3_pcons.c', @@ -738,13 +845,20 @@ 'openssl/crypto/x509/v3_pmaps.c', 'openssl/crypto/x509/v3_prn.c', 'openssl/crypto/x509/v3_purp.c', + 'openssl/crypto/x509/v3_rolespec.c', 'openssl/crypto/x509/v3_san.c', + 'openssl/crypto/x509/v3_sda.c', + 'openssl/crypto/x509/v3_single_use.c', 'openssl/crypto/x509/v3_skid.c', + 'openssl/crypto/x509/v3_soa_id.c', 'openssl/crypto/x509/v3_sxnet.c', + 'openssl/crypto/x509/v3_timespec.c', 'openssl/crypto/x509/v3_tlsf.c', + 'openssl/crypto/x509/v3_usernotice.c', 'openssl/crypto/x509/v3_utf8.c', 'openssl/crypto/x509/v3_utl.c', 'openssl/crypto/x509/v3err.c', + 'openssl/crypto/x509/x509_acert.c', 'openssl/crypto/x509/x509_att.c', 'openssl/crypto/x509/x509_cmp.c', 'openssl/crypto/x509/x509_d2.c', @@ -762,6 +876,7 @@ 'openssl/crypto/x509/x509_v3.c', 'openssl/crypto/x509/x509_vfy.c', 'openssl/crypto/x509/x509_vpm.c', + 'openssl/crypto/x509/x509aset.c', 'openssl/crypto/x509/x509cset.c', 'openssl/crypto/x509/x509name.c', 'openssl/crypto/x509/x509rset.c', @@ -771,6 +886,7 @@ 'openssl/crypto/x509/x_attrib.c', 'openssl/crypto/x509/x_crl.c', 'openssl/crypto/x509/x_exten.c', + 'openssl/crypto/x509/x_ietfatt.c', 'openssl/crypto/x509/x_name.c', 'openssl/crypto/x509/x_pubkey.c', 'openssl/crypto/x509/x_req.c', @@ -803,6 +919,9 @@ 'openssl/providers/implementations/ciphers/cipher_aes_ccm_hw.c', 'openssl/providers/implementations/ciphers/cipher_aes_gcm.c', 'openssl/providers/implementations/ciphers/cipher_aes_gcm_hw.c', + 'openssl/providers/implementations/ciphers/cipher_aes_gcm_siv.c', + 'openssl/providers/implementations/ciphers/cipher_aes_gcm_siv_hw.c', + 'openssl/providers/implementations/ciphers/cipher_aes_gcm_siv_polyval.c', 'openssl/providers/implementations/ciphers/cipher_aes_hw.c', 'openssl/providers/implementations/ciphers/cipher_aes_ocb.c', 'openssl/providers/implementations/ciphers/cipher_aes_ocb_hw.c', @@ -827,7 +946,13 @@ 'openssl/providers/implementations/ciphers/cipher_cts.c', 'openssl/providers/implementations/ciphers/cipher_null.c', 'openssl/providers/implementations/ciphers/cipher_sm4.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_ccm.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_ccm_hw.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_gcm.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_gcm_hw.c', 'openssl/providers/implementations/ciphers/cipher_sm4_hw.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_xts.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_xts_hw.c', 'openssl/providers/implementations/ciphers/cipher_tdes.c', 'openssl/providers/implementations/ciphers/cipher_tdes_common.c', 'openssl/providers/implementations/ciphers/cipher_tdes_default.c', @@ -856,11 +981,16 @@ 'openssl/providers/implementations/encode_decode/encode_key2ms.c', 'openssl/providers/implementations/encode_decode/encode_key2text.c', 'openssl/providers/implementations/encode_decode/endecoder_common.c', + 'openssl/providers/implementations/encode_decode/ml_common_codecs.c', + 'openssl/providers/implementations/encode_decode/ml_dsa_codecs.c', + 'openssl/providers/implementations/encode_decode/ml_kem_codecs.c', 'openssl/providers/implementations/exchange/dh_exch.c', 'openssl/providers/implementations/exchange/ecdh_exch.c', 'openssl/providers/implementations/exchange/ecx_exch.c', 'openssl/providers/implementations/exchange/kdf_exch.c', + 'openssl/providers/implementations/kdfs/argon2.c', 'openssl/providers/implementations/kdfs/hkdf.c', + 'openssl/providers/implementations/kdfs/hmacdrbg_kdf.c', 'openssl/providers/implementations/kdfs/kbkdf.c', 'openssl/providers/implementations/kdfs/krb5kdf.c', 'openssl/providers/implementations/kdfs/pbkdf2.c', @@ -871,6 +1001,11 @@ 'openssl/providers/implementations/kdfs/sskdf.c', 'openssl/providers/implementations/kdfs/tls1_prf.c', 'openssl/providers/implementations/kdfs/x942kdf.c', + 'openssl/providers/implementations/kem/ec_kem.c', + 'openssl/providers/implementations/kem/ecx_kem.c', + 'openssl/providers/implementations/kem/kem_util.c', + 'openssl/providers/implementations/kem/ml_kem_kem.c', + 'openssl/providers/implementations/kem/mlx_kem.c', 'openssl/providers/implementations/kem/rsa_kem.c', 'openssl/providers/implementations/keymgmt/dh_kmgmt.c', 'openssl/providers/implementations/keymgmt/dsa_kmgmt.c', @@ -878,7 +1013,11 @@ 'openssl/providers/implementations/keymgmt/ecx_kmgmt.c', 'openssl/providers/implementations/keymgmt/kdf_legacy_kmgmt.c', 'openssl/providers/implementations/keymgmt/mac_legacy_kmgmt.c', + 'openssl/providers/implementations/keymgmt/ml_dsa_kmgmt.c', + 'openssl/providers/implementations/keymgmt/ml_kem_kmgmt.c', + 'openssl/providers/implementations/keymgmt/mlx_kmgmt.c', 'openssl/providers/implementations/keymgmt/rsa_kmgmt.c', + 'openssl/providers/implementations/keymgmt/slh_dsa_kmgmt.c', 'openssl/providers/implementations/macs/blake2b_mac.c', 'openssl/providers/implementations/macs/blake2s_mac.c', 'openssl/providers/implementations/macs/cmac_prov.c', @@ -887,12 +1026,12 @@ 'openssl/providers/implementations/macs/kmac_prov.c', 'openssl/providers/implementations/macs/poly1305_prov.c', 'openssl/providers/implementations/macs/siphash_prov.c', - 'openssl/providers/implementations/rands/crngt.c', 'openssl/providers/implementations/rands/drbg.c', 'openssl/providers/implementations/rands/drbg_ctr.c', 'openssl/providers/implementations/rands/drbg_hash.c', 'openssl/providers/implementations/rands/drbg_hmac.c', 'openssl/providers/implementations/rands/seed_src.c', + 'openssl/providers/implementations/rands/seed_src_jitter.c', 'openssl/providers/implementations/rands/test_rng.c', 'openssl/providers/implementations/rands/seeding/rand_cpu_x86.c', 'openssl/providers/implementations/rands/seeding/rand_tsc.c', @@ -902,17 +1041,23 @@ 'openssl/providers/implementations/signature/ecdsa_sig.c', 'openssl/providers/implementations/signature/eddsa_sig.c', 'openssl/providers/implementations/signature/mac_legacy_sig.c', + 'openssl/providers/implementations/signature/ml_dsa_sig.c', 'openssl/providers/implementations/signature/rsa_sig.c', + 'openssl/providers/implementations/signature/slh_dsa_sig.c', 'openssl/providers/implementations/signature/sm2_sig.c', + 'openssl/providers/implementations/skeymgmt/aes_skmgmt.c', + 'openssl/providers/implementations/skeymgmt/generic.c', 'openssl/providers/implementations/storemgmt/file_store.c', 'openssl/providers/implementations/storemgmt/file_store_any2obj.c', - 'openssl/ssl/s3_cbc.c', + 'openssl/ssl/record/methods/ssl3_cbc.c', 'openssl/providers/common/der/der_dsa_key.c', 'openssl/providers/common/der/der_dsa_sig.c', 'openssl/providers/common/der/der_ec_key.c', 'openssl/providers/common/der/der_ec_sig.c', 'openssl/providers/common/der/der_ecx_key.c', + 'openssl/providers/common/der/der_ml_dsa_key.c', 'openssl/providers/common/der/der_rsa_key.c', + 'openssl/providers/common/der/der_slh_dsa_key.c', 'openssl/providers/common/provider_ctx.c', 'openssl/providers/common/provider_err.c', 'openssl/providers/implementations/ciphers/ciphercommon.c', @@ -923,7 +1068,7 @@ 'openssl/providers/implementations/ciphers/ciphercommon_gcm_hw.c', 'openssl/providers/implementations/ciphers/ciphercommon_hw.c', 'openssl/providers/implementations/digests/digestcommon.c', - 'openssl/ssl/record/tls_pad.c', + 'openssl/ssl/record/methods/tls_pad.c', 'openssl/providers/implementations/ciphers/cipher_blowfish.c', 'openssl/providers/implementations/ciphers/cipher_blowfish_hw.c', 'openssl/providers/implementations/ciphers/cipher_cast5.c', @@ -948,16 +1093,20 @@ 'openssl/providers/implementations/digests/ripemd_prov.c', 'openssl/providers/implementations/digests/wp_prov.c', 'openssl/providers/implementations/kdfs/pbkdf1.c', + 'openssl/providers/implementations/kdfs/pvkkdf.c', 'openssl/providers/prov_running.c', 'openssl/providers/legacyprov.c', ], 'openssl_sources_BSD-x86': [ + './config/archs/BSD-x86/no-asm/crypto/params_idx.c', './config/archs/BSD-x86/no-asm/providers/common/der/der_sm2_gen.c', './config/archs/BSD-x86/no-asm/providers/common/der/der_digests_gen.c', './config/archs/BSD-x86/no-asm/providers/common/der/der_dsa_gen.c', './config/archs/BSD-x86/no-asm/providers/common/der/der_ec_gen.c', './config/archs/BSD-x86/no-asm/providers/common/der/der_ecx_gen.c', + './config/archs/BSD-x86/no-asm/providers/common/der/der_ml_dsa_gen.c', './config/archs/BSD-x86/no-asm/providers/common/der/der_rsa_gen.c', + './config/archs/BSD-x86/no-asm/providers/common/der/der_slh_dsa_gen.c', './config/archs/BSD-x86/no-asm/providers/common/der/der_wrap_gen.c', './config/archs/BSD-x86/no-asm/providers/legacy.ld', './config/archs/BSD-x86/no-asm/providers/fips.ld', diff --git a/deps/openssl/config/archs/BSD-x86/no-asm/providers/common/der/der_ml_dsa_gen.c b/deps/openssl/config/archs/BSD-x86/no-asm/providers/common/der/der_ml_dsa_gen.c new file mode 100644 index 00000000000000..4a8a113a268578 --- /dev/null +++ b/deps/openssl/config/archs/BSD-x86/no-asm/providers/common/der/der_ml_dsa_gen.c @@ -0,0 +1,37 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from providers/common/der/der_ml_dsa_gen.c.in + * + * Copyright 2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include "prov/der_ml_dsa.h" + +/* Well known OIDs precompiled */ + +/* + * id-ml-dsa-44 OBJECT IDENTIFIER ::= { sigAlgs 17 } + */ +const unsigned char ossl_der_oid_id_ml_dsa_44[DER_OID_SZ_id_ml_dsa_44] = { + DER_OID_V_id_ml_dsa_44 +}; + +/* + * id-ml-dsa-65 OBJECT IDENTIFIER ::= { sigAlgs 18 } + */ +const unsigned char ossl_der_oid_id_ml_dsa_65[DER_OID_SZ_id_ml_dsa_65] = { + DER_OID_V_id_ml_dsa_65 +}; + +/* + * id-ml-dsa-87 OBJECT IDENTIFIER ::= { sigAlgs 19 } + */ +const unsigned char ossl_der_oid_id_ml_dsa_87[DER_OID_SZ_id_ml_dsa_87] = { + DER_OID_V_id_ml_dsa_87 +}; + diff --git a/deps/openssl/config/archs/BSD-x86/no-asm/providers/common/der/der_slh_dsa_gen.c b/deps/openssl/config/archs/BSD-x86/no-asm/providers/common/der/der_slh_dsa_gen.c new file mode 100644 index 00000000000000..1419a9515097dd --- /dev/null +++ b/deps/openssl/config/archs/BSD-x86/no-asm/providers/common/der/der_slh_dsa_gen.c @@ -0,0 +1,100 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from providers/common/der/der_slh_dsa_gen.c.in + * + * Copyright 2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include "prov/der_slh_dsa.h" + +/* Well known OIDs precompiled */ + +/* + * id-slh-dsa-sha2-128s OBJECT IDENTIFIER ::= { sigAlgs 20 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_128s[DER_OID_SZ_id_slh_dsa_sha2_128s] = { + DER_OID_V_id_slh_dsa_sha2_128s +}; + +/* + * id-slh-dsa-sha2-128f OBJECT IDENTIFIER ::= { sigAlgs 21 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_128f[DER_OID_SZ_id_slh_dsa_sha2_128f] = { + DER_OID_V_id_slh_dsa_sha2_128f +}; + +/* + * id-slh-dsa-sha2-192s OBJECT IDENTIFIER ::= { sigAlgs 22 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_192s[DER_OID_SZ_id_slh_dsa_sha2_192s] = { + DER_OID_V_id_slh_dsa_sha2_192s +}; + +/* + * id-slh-dsa-sha2-192f OBJECT IDENTIFIER ::= { sigAlgs 23 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_192f[DER_OID_SZ_id_slh_dsa_sha2_192f] = { + DER_OID_V_id_slh_dsa_sha2_192f +}; + +/* + * id-slh-dsa-sha2-256s OBJECT IDENTIFIER ::= { sigAlgs 24 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_256s[DER_OID_SZ_id_slh_dsa_sha2_256s] = { + DER_OID_V_id_slh_dsa_sha2_256s +}; + +/* + * id-slh-dsa-sha2-256f OBJECT IDENTIFIER ::= { sigAlgs 25 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_256f[DER_OID_SZ_id_slh_dsa_sha2_256f] = { + DER_OID_V_id_slh_dsa_sha2_256f +}; + +/* + * id-slh-dsa-shake-128s OBJECT IDENTIFIER ::= { sigAlgs 26 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_128s[DER_OID_SZ_id_slh_dsa_shake_128s] = { + DER_OID_V_id_slh_dsa_shake_128s +}; + +/* + * id-slh-dsa-shake-128f OBJECT IDENTIFIER ::= { sigAlgs 27 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_128f[DER_OID_SZ_id_slh_dsa_shake_128f] = { + DER_OID_V_id_slh_dsa_shake_128f +}; + +/* + * id-slh-dsa-shake-192s OBJECT IDENTIFIER ::= { sigAlgs 28 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_192s[DER_OID_SZ_id_slh_dsa_shake_192s] = { + DER_OID_V_id_slh_dsa_shake_192s +}; + +/* + * id-slh-dsa-shake-192f OBJECT IDENTIFIER ::= { sigAlgs 29 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_192f[DER_OID_SZ_id_slh_dsa_shake_192f] = { + DER_OID_V_id_slh_dsa_shake_192f +}; + +/* + * id-slh-dsa-shake-256s OBJECT IDENTIFIER ::= { sigAlgs 30 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_256s[DER_OID_SZ_id_slh_dsa_shake_256s] = { + DER_OID_V_id_slh_dsa_shake_256s +}; + +/* + * id-slh-dsa-shake-256f OBJECT IDENTIFIER ::= { sigAlgs 31 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_256f[DER_OID_SZ_id_slh_dsa_shake_256f] = { + DER_OID_V_id_slh_dsa_shake_256f +}; + diff --git a/deps/openssl/config/archs/BSD-x86/no-asm/providers/common/include/prov/der_ml_dsa.h b/deps/openssl/config/archs/BSD-x86/no-asm/providers/common/include/prov/der_ml_dsa.h new file mode 100644 index 00000000000000..c55f780ab4527c --- /dev/null +++ b/deps/openssl/config/archs/BSD-x86/no-asm/providers/common/include/prov/der_ml_dsa.h @@ -0,0 +1,40 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from providers/common/include/prov/der_ml_dsa.h.in + * + * Copyright 2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include "internal/der.h" +#include "crypto/ml_dsa.h" + +/* Well known OIDs precompiled */ + +/* + * id-ml-dsa-44 OBJECT IDENTIFIER ::= { sigAlgs 17 } + */ +#define DER_OID_V_id_ml_dsa_44 DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x11 +#define DER_OID_SZ_id_ml_dsa_44 11 +extern const unsigned char ossl_der_oid_id_ml_dsa_44[DER_OID_SZ_id_ml_dsa_44]; + +/* + * id-ml-dsa-65 OBJECT IDENTIFIER ::= { sigAlgs 18 } + */ +#define DER_OID_V_id_ml_dsa_65 DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x12 +#define DER_OID_SZ_id_ml_dsa_65 11 +extern const unsigned char ossl_der_oid_id_ml_dsa_65[DER_OID_SZ_id_ml_dsa_65]; + +/* + * id-ml-dsa-87 OBJECT IDENTIFIER ::= { sigAlgs 19 } + */ +#define DER_OID_V_id_ml_dsa_87 DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x13 +#define DER_OID_SZ_id_ml_dsa_87 11 +extern const unsigned char ossl_der_oid_id_ml_dsa_87[DER_OID_SZ_id_ml_dsa_87]; + + +int ossl_DER_w_algorithmIdentifier_ML_DSA(WPACKET *pkt, int tag, ML_DSA_KEY *key); diff --git a/deps/openssl/config/archs/BSD-x86/no-asm/providers/common/include/prov/der_slh_dsa.h b/deps/openssl/config/archs/BSD-x86/no-asm/providers/common/include/prov/der_slh_dsa.h new file mode 100644 index 00000000000000..760f8e7699be72 --- /dev/null +++ b/deps/openssl/config/archs/BSD-x86/no-asm/providers/common/include/prov/der_slh_dsa.h @@ -0,0 +1,103 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from providers/common/include/prov/der_slh_dsa.h.in + * + * Copyright 2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include "internal/der.h" +#include "crypto/slh_dsa.h" + +/* Well known OIDs precompiled */ + +/* + * id-slh-dsa-sha2-128s OBJECT IDENTIFIER ::= { sigAlgs 20 } + */ +#define DER_OID_V_id_slh_dsa_sha2_128s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x14 +#define DER_OID_SZ_id_slh_dsa_sha2_128s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_128s[DER_OID_SZ_id_slh_dsa_sha2_128s]; + +/* + * id-slh-dsa-sha2-128f OBJECT IDENTIFIER ::= { sigAlgs 21 } + */ +#define DER_OID_V_id_slh_dsa_sha2_128f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x15 +#define DER_OID_SZ_id_slh_dsa_sha2_128f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_128f[DER_OID_SZ_id_slh_dsa_sha2_128f]; + +/* + * id-slh-dsa-sha2-192s OBJECT IDENTIFIER ::= { sigAlgs 22 } + */ +#define DER_OID_V_id_slh_dsa_sha2_192s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x16 +#define DER_OID_SZ_id_slh_dsa_sha2_192s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_192s[DER_OID_SZ_id_slh_dsa_sha2_192s]; + +/* + * id-slh-dsa-sha2-192f OBJECT IDENTIFIER ::= { sigAlgs 23 } + */ +#define DER_OID_V_id_slh_dsa_sha2_192f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x17 +#define DER_OID_SZ_id_slh_dsa_sha2_192f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_192f[DER_OID_SZ_id_slh_dsa_sha2_192f]; + +/* + * id-slh-dsa-sha2-256s OBJECT IDENTIFIER ::= { sigAlgs 24 } + */ +#define DER_OID_V_id_slh_dsa_sha2_256s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x18 +#define DER_OID_SZ_id_slh_dsa_sha2_256s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_256s[DER_OID_SZ_id_slh_dsa_sha2_256s]; + +/* + * id-slh-dsa-sha2-256f OBJECT IDENTIFIER ::= { sigAlgs 25 } + */ +#define DER_OID_V_id_slh_dsa_sha2_256f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x19 +#define DER_OID_SZ_id_slh_dsa_sha2_256f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_256f[DER_OID_SZ_id_slh_dsa_sha2_256f]; + +/* + * id-slh-dsa-shake-128s OBJECT IDENTIFIER ::= { sigAlgs 26 } + */ +#define DER_OID_V_id_slh_dsa_shake_128s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1A +#define DER_OID_SZ_id_slh_dsa_shake_128s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_128s[DER_OID_SZ_id_slh_dsa_shake_128s]; + +/* + * id-slh-dsa-shake-128f OBJECT IDENTIFIER ::= { sigAlgs 27 } + */ +#define DER_OID_V_id_slh_dsa_shake_128f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1B +#define DER_OID_SZ_id_slh_dsa_shake_128f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_128f[DER_OID_SZ_id_slh_dsa_shake_128f]; + +/* + * id-slh-dsa-shake-192s OBJECT IDENTIFIER ::= { sigAlgs 28 } + */ +#define DER_OID_V_id_slh_dsa_shake_192s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1C +#define DER_OID_SZ_id_slh_dsa_shake_192s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_192s[DER_OID_SZ_id_slh_dsa_shake_192s]; + +/* + * id-slh-dsa-shake-192f OBJECT IDENTIFIER ::= { sigAlgs 29 } + */ +#define DER_OID_V_id_slh_dsa_shake_192f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1D +#define DER_OID_SZ_id_slh_dsa_shake_192f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_192f[DER_OID_SZ_id_slh_dsa_shake_192f]; + +/* + * id-slh-dsa-shake-256s OBJECT IDENTIFIER ::= { sigAlgs 30 } + */ +#define DER_OID_V_id_slh_dsa_shake_256s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1E +#define DER_OID_SZ_id_slh_dsa_shake_256s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_256s[DER_OID_SZ_id_slh_dsa_shake_256s]; + +/* + * id-slh-dsa-shake-256f OBJECT IDENTIFIER ::= { sigAlgs 31 } + */ +#define DER_OID_V_id_slh_dsa_shake_256f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1F +#define DER_OID_SZ_id_slh_dsa_shake_256f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_256f[DER_OID_SZ_id_slh_dsa_shake_256f]; + + +int ossl_DER_w_algorithmIdentifier_SLH_DSA(WPACKET *pkt, int tag, SLH_DSA_KEY *key); diff --git a/deps/openssl/config/archs/BSD-x86_64/asm/apps/progs.c b/deps/openssl/config/archs/BSD-x86_64/asm/apps/progs.c index 43cef00799b86e..acc204a3e6e781 100644 --- a/deps/openssl/config/archs/BSD-x86_64/asm/apps/progs.c +++ b/deps/openssl/config/archs/BSD-x86_64/asm/apps/progs.c @@ -89,6 +89,7 @@ FUNCTION functions[] = { {FT_general, "s_time", s_time_main, s_time_options, NULL, NULL}, #endif {FT_general, "sess_id", sess_id_main, sess_id_options, NULL, NULL}, + {FT_general, "skeyutl", skeyutl_main, skeyutl_options, NULL, NULL}, {FT_general, "smime", smime_main, smime_options, NULL, NULL}, {FT_general, "speed", speed_main, speed_options, NULL, NULL}, {FT_general, "spkac", spkac_main, spkac_options, NULL, NULL}, @@ -225,9 +226,15 @@ FUNCTION functions[] = { {FT_cipher, "camellia-256-ecb", enc_main, enc_options, NULL}, #endif {FT_cipher, "base64", enc_main, enc_options, NULL}, -#ifdef ZLIB +#ifndef OPENSSL_NO_ZLIB {FT_cipher, "zlib", enc_main, enc_options, NULL}, #endif +#ifndef OPENSSL_NO_BROTLI + {FT_cipher, "brotli", enc_main, enc_options, NULL}, +#endif +#ifndef OPENSSL_NO_ZSTD + {FT_cipher, "zstd", enc_main, enc_options, NULL}, +#endif #ifndef OPENSSL_NO_DES {FT_cipher, "des", enc_main, enc_options, NULL}, #endif diff --git a/deps/openssl/config/archs/BSD-x86_64/asm/configdata.pm b/deps/openssl/config/archs/BSD-x86_64/asm/configdata.pm index d2b569260f5e6c..296e7ec4b58b3b 100644 --- a/deps/openssl/config/archs/BSD-x86_64/asm/configdata.pm +++ b/deps/openssl/config/archs/BSD-x86_64/asm/configdata.pm @@ -18,6 +18,7 @@ our %config = ( "ARFLAGS" => [ "qc" ], + "ASFLAGS" => [], "CC" => "gcc", "CFLAGS" => [ "-Wall -O3" @@ -27,14 +28,16 @@ our %config = ( "CPPINCLUDES" => [], "CXXFLAGS" => [], "FIPSKEY" => "f4556650ac31d35461610bac4ed81b1a181b2d8a43ea2854cbae22ca74560813", + "FIPS_VENDOR" => "OpenSSL FIPS Provider", "HASHBANGPERL" => "/usr/bin/env perl", "LDFLAGS" => [], "LDLIBS" => [], + "OBJCOPY" => "objcopy", "PERL" => "/usr/bin/perl", "RANLIB" => "ranlib", "RC" => "windres", "RCFLAGS" => [], - "api" => "30000", + "api" => "30500", "b32" => "0", "b64" => "0", "b64l" => "1", @@ -56,11 +59,13 @@ our %config = ( "doc/build.info", "test/build.info", "engines/build.info", + "exporters/build.info", "crypto/objects/build.info", "crypto/buffer/build.info", "crypto/bio/build.info", "crypto/stack/build.info", "crypto/lhash/build.info", + "crypto/hashtable/build.info", "crypto/rand/build.info", "crypto/evp/build.info", "crypto/asn1/build.info", @@ -78,6 +83,7 @@ our %config = ( "crypto/md5/build.info", "crypto/sha/build.info", "crypto/mdc2/build.info", + "crypto/ml_kem/build.info", "crypto/hmac/build.info", "crypto/ripemd/build.info", "crypto/whrlpool/build.info", @@ -119,11 +125,19 @@ our %config = ( "crypto/cmp/build.info", "crypto/encode_decode/build.info", "crypto/ffc/build.info", + "crypto/hpke/build.info", + "crypto/thread/build.info", + "crypto/ml_dsa/build.info", + "crypto/slh_dsa/build.info", + "ssl/record/build.info", + "ssl/rio/build.info", + "ssl/quic/build.info", "apps/lib/build.info", "providers/common/build.info", "providers/implementations/build.info", "providers/fips/build.info", "doc/man1/build.info", + "ssl/record/methods/build.info", "providers/common/der/build.info", "providers/implementations/digests/build.info", "providers/implementations/ciphers/build.info", @@ -137,6 +151,7 @@ our %config = ( "providers/implementations/encode_decode/build.info", "providers/implementations/storemgmt/build.info", "providers/implementations/kem/build.info", + "providers/implementations/skeymgmt/build.info", "providers/implementations/rands/seeding/build.info" ], "build_metadata" => "", @@ -156,7 +171,7 @@ our %config = ( ], "dynamic_engines" => "0", "ex_libs" => [], - "full_version" => "3.0.17", + "full_version" => "3.5.1", "includes" => [], "lflags" => [], "lib_defines" => [ @@ -165,36 +180,51 @@ our %config = ( "libdir" => "", "major" => "3", "makedep_scheme" => "gcc", - "minor" => "0", + "minor" => "5", "openssl_api_defines" => [ - "OPENSSL_CONFIGURED_API=30000" + "OPENSSL_CONFIGURED_API=30500" ], "openssl_feature_defines" => [ "OPENSSL_RAND_SEED_OS", "OPENSSL_THREADS", "OPENSSL_NO_AFALGENG", "OPENSSL_NO_ASAN", + "OPENSSL_NO_BROTLI", + "OPENSSL_NO_BROTLI_DYNAMIC", "OPENSSL_NO_COMP", "OPENSSL_NO_CRYPTO_MDEBUG", "OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE", + "OPENSSL_NO_DEMOS", "OPENSSL_NO_EC_NISTP_64_GCC_128", "OPENSSL_NO_EGD", "OPENSSL_NO_EXTERNAL_TESTS", + "OPENSSL_NO_FIPS_JITTER", "OPENSSL_NO_FUZZ_AFL", "OPENSSL_NO_FUZZ_LIBFUZZER", + "OPENSSL_NO_H3DEMO", + "OPENSSL_NO_HQINTEROP", + "OPENSSL_NO_JITTER", "OPENSSL_NO_KTLS", "OPENSSL_NO_LOADERENG", "OPENSSL_NO_MD2", "OPENSSL_NO_MSAN", + "OPENSSL_NO_PIE", "OPENSSL_NO_RC5", "OPENSSL_NO_SCTP", "OPENSSL_NO_SSL3", "OPENSSL_NO_SSL3_METHOD", + "OPENSSL_NO_SSLKEYLOG", + "OPENSSL_NO_TFO", "OPENSSL_NO_TRACE", "OPENSSL_NO_UBSAN", "OPENSSL_NO_UNIT_TEST", "OPENSSL_NO_UPLINK", "OPENSSL_NO_WEAK_SSL_CIPHERS", + "OPENSSL_NO_WINSTORE", + "OPENSSL_NO_ZLIB", + "OPENSSL_NO_ZLIB_DYNAMIC", + "OPENSSL_NO_ZSTD", + "OPENSSL_NO_ZSTD_DYNAMIC", "OPENSSL_NO_DYNAMIC_ENGINE" ], "openssl_other_defines" => [ @@ -202,11 +232,11 @@ our %config = ( ], "openssl_sys_defines" => [], "openssldir" => "", - "options" => "enable-ssl-trace enable-fips no-afalgeng no-asan no-buildtest-c++ no-comp no-crypto-mdebug no-crypto-mdebug-backtrace no-dynamic-engine no-ec_nistp_64_gcc_128 no-egd no-external-tests no-fuzz-afl no-fuzz-libfuzzer no-ktls no-loadereng no-md2 no-msan no-rc5 no-sctp no-shared no-ssl3 no-ssl3-method no-trace no-ubsan no-unit-test no-uplink no-weak-ssl-ciphers no-zlib no-zlib-dynamic", - "patch" => "17", + "options" => "enable-ssl-trace enable-fips no-afalgeng no-asan no-brotli no-brotli-dynamic no-buildtest-c++ no-comp no-crypto-mdebug no-crypto-mdebug-backtrace no-demos no-dynamic-engine no-ec_nistp_64_gcc_128 no-egd no-external-tests no-fips-jitter no-fuzz-afl no-fuzz-libfuzzer no-h3demo no-hqinterop no-jitter no-ktls no-loadereng no-md2 no-msan no-pie no-rc5 no-sctp no-shared no-ssl3 no-ssl3-method no-sslkeylog no-tfo no-trace no-ubsan no-unit-test no-uplink no-weak-ssl-ciphers no-winstore no-zlib no-zlib-dynamic no-zstd no-zstd-dynamic", + "patch" => "1", "perl_archname" => "x86_64-linux-gnu-thread-multi", "perl_cmd" => "/usr/bin/perl", - "perl_version" => "5.38.2", + "perl_version" => "5.34.0", "perlargv" => [ "no-comp", "no-shared", @@ -236,6 +266,7 @@ our %config = ( "LDLIBS" => undef, "MT" => undef, "MTFLAGS" => undef, + "OBJCOPY" => undef, "OPENSSL_LOCAL_CONFIG_DIR" => undef, "PERL" => undef, "RANLIB" => undef, @@ -259,7 +290,7 @@ our %config = ( "shlib_version" => "3", "sourcedir" => ".", "target" => "BSD-x86_64", - "version" => "3.0.17" + "version" => "3.5.1" ); our %target = ( "AR" => "ar", @@ -267,6 +298,7 @@ our %target = ( "CC" => "cc", "CFLAGS" => "-Wall -O3", "HASHBANGPERL" => "/usr/bin/env perl", + "OBJCOPY" => "objcopy", "RANLIB" => "ranlib", "RC" => "windres", "_conf_fname_int" => [ @@ -278,6 +310,8 @@ our %target = ( "Configurations/shared-info.pl" ], "asm_arch" => "x86_64", + "bin_cflags" => "", + "bin_lflags" => "", "bn_ops" => "SIXTY_FOUR_BIT_LONG", "build_file" => "Makefile", "build_scheme" => [ @@ -321,6 +355,8 @@ our %target = ( our @disablables = ( "acvp-tests", "afalgeng", + "apps", + "argon2", "aria", "asan", "asm", @@ -331,11 +367,14 @@ our @disablables = ( "autoload-config", "bf", "blake2", + "brotli", + "brotli-dynamic", "buildtest-c++", "bulk", "cached-fetch", "camellia", "capieng", + "winstore", "cast", "chacha", "cmac", @@ -344,11 +383,16 @@ our @disablables = ( "comp", "crypto-mdebug", "ct", + "default-thread-pool", + "demos", + "h3demo", + "hqinterop", "deprecated", "des", "devcryptoeng", "dgram", "dh", + "docs", "dsa", "dso", "dtls", @@ -358,6 +402,7 @@ our @disablables = ( "ec_nistp_64_gcc_128", "ecdh", "ecdsa", + "ecx", "egd", "engine", "err", @@ -365,10 +410,15 @@ our @disablables = ( "filenames", "fips", "fips-securitychecks", + "fips-post", + "fips-jitter", "fuzz-afl", "fuzz-libfuzzer", "gost", + "http", "idea", + "integrity-only-ciphers", + "jitter", "ktls", "legacy", "loadereng", @@ -376,6 +426,8 @@ our @disablables = ( "md2", "md4", "mdc2", + "ml-dsa", + "ml-kem", "module", "msan", "multiblock", @@ -384,10 +436,13 @@ our @disablables = ( "ocsp", "padlockeng", "pic", + "pie", "pinshared", "poly1305", "posix-io", "psk", + "quic", + "unstable-qlog", "rc2", "rc4", "rc5", @@ -401,7 +456,9 @@ our @disablables = ( "shared", "siphash", "siv", + "slh-dsa", "sm2", + "sm2-precomp", "sm3", "sm4", "sock", @@ -412,9 +469,13 @@ our @disablables = ( "ssl-trace", "static-engine", "stdio", + "sslkeylog", "tests", + "tfo", + "thread-pool", "threads", "tls", + "tls-deprecated-ec", "trace", "ts", "ubsan", @@ -425,6 +486,8 @@ our @disablables = ( "whirlpool", "zlib", "zlib-dynamic", + "zstd", + "zstd-dynamic", "ssl3", "ssl3-method", "tls1", @@ -445,32 +508,45 @@ our @disablables_int = ( our %disabled = ( "afalgeng" => "option", "asan" => "default", + "brotli" => "default", + "brotli-dynamic" => "default", "buildtest-c++" => "default", "comp" => "option", "crypto-mdebug" => "default", "crypto-mdebug-backtrace" => "default", + "demos" => "default", "dynamic-engine" => "cascade", "ec_nistp_64_gcc_128" => "default", "egd" => "default", "external-tests" => "default", + "fips-jitter" => "default", "fuzz-afl" => "default", "fuzz-libfuzzer" => "default", + "h3demo" => "default", + "hqinterop" => "default", + "jitter" => "default", "ktls" => "default", "loadereng" => "cascade", "md2" => "default", "msan" => "default", + "pie" => "default", "rc5" => "default", "sctp" => "default", "shared" => "option", "ssl3" => "default", "ssl3-method" => "default", + "sslkeylog" => "default", + "tfo" => "default", "trace" => "default", "ubsan" => "default", "unit-test" => "default", "uplink" => "no uplink_arch", "weak-ssl-ciphers" => "default", + "winstore" => "not-windows", "zlib" => "default", - "zlib-dynamic" => "default" + "zlib-dynamic" => "default", + "zstd" => "default", + "zstd-dynamic" => "default" ); our %withargs = (); our %unified_info = ( @@ -696,6 +772,11 @@ our %unified_info = ( "pod" => "1" } }, + "doc/man1/openssl-skeyutl.pod" => { + "doc/man1/openssl-skeyutl.pod.in" => { + "pod" => "1" + } + }, "doc/man1/openssl-smime.pod" => { "doc/man1/openssl-smime.pod.in" => { "pod" => "1" @@ -753,6 +834,21 @@ our %unified_info = ( } }, "generate" => { + "exporters/OpenSSLConfig.cmake" => { + "exporter" => "cmake" + }, + "exporters/OpenSSLConfigVersion.cmake" => { + "exporter" => "cmake" + }, + "exporters/libcrypto.pc" => { + "exporter" => "pkg-config" + }, + "exporters/libssl.pc" => { + "exporter" => "pkg-config" + }, + "exporters/openssl.pc" => { + "exporter" => "pkg-config" + }, "include/openssl/configuration.h" => { "skip" => "1" } @@ -773,6 +869,9 @@ our %unified_info = ( "providers/liblegacy.a" => { "noinst" => "1" }, + "providers/libtemplate.a" => { + "noinst" => "1" + }, "test/libtestutil.a" => { "has_main" => "1", "noinst" => "1" @@ -790,6 +889,9 @@ our %unified_info = ( } }, "programs" => { + "fuzz/acert-test" => { + "noinst" => "1" + }, "fuzz/asn1-test" => { "noinst" => "1" }, @@ -820,9 +922,60 @@ our %unified_info = ( "fuzz/ct-test" => { "noinst" => "1" }, + "fuzz/decoder-test" => { + "noinst" => "1" + }, + "fuzz/dtlsclient-test" => { + "noinst" => "1" + }, + "fuzz/dtlsserver-test" => { + "noinst" => "1" + }, + "fuzz/hashtable-test" => { + "noinst" => "1" + }, + "fuzz/ml-dsa-test" => { + "noinst" => "1" + }, + "fuzz/ml-kem-test" => { + "noinst" => "1" + }, + "fuzz/pem-test" => { + "noinst" => "1" + }, + "fuzz/provider-test" => { + "noinst" => "1" + }, + "fuzz/punycode-test" => { + "noinst" => "1" + }, + "fuzz/quic-client-test" => { + "noinst" => "1" + }, + "fuzz/quic-lcidm-test" => { + "noinst" => "1" + }, + "fuzz/quic-rcidm-test" => { + "noinst" => "1" + }, + "fuzz/quic-server-test" => { + "noinst" => "1" + }, + "fuzz/quic-srtm-test" => { + "noinst" => "1" + }, "fuzz/server-test" => { "noinst" => "1" }, + "fuzz/slh-dsa-test" => { + "noinst" => "1" + }, + "fuzz/smime-test" => { + "noinst" => "1" + }, + "fuzz/v3name-test" => { + "noinst" => "1" + }, "fuzz/x509-test" => { "noinst" => "1" }, @@ -874,18 +1027,30 @@ our %unified_info = ( "test/bftest" => { "noinst" => "1" }, + "test/bio_addr_test" => { + "noinst" => "1" + }, + "test/bio_base64_test" => { + "noinst" => "1" + }, "test/bio_callback_test" => { "noinst" => "1" }, "test/bio_core_test" => { "noinst" => "1" }, + "test/bio_dgram_test" => { + "noinst" => "1" + }, "test/bio_enc_test" => { "noinst" => "1" }, "test/bio_memleak_test" => { "noinst" => "1" }, + "test/bio_meth_test" => { + "noinst" => "1" + }, "test/bio_prefix_text" => { "noinst" => "1" }, @@ -895,6 +1060,9 @@ our %unified_info = ( "test/bio_readbuffer_test" => { "noinst" => "1" }, + "test/bio_tfo_test" => { + "noinst" => "1" + }, "test/bioprinttest" => { "noinst" => "1" }, @@ -904,6 +1072,9 @@ our %unified_info = ( "test/bntest" => { "noinst" => "1" }, + "test/build_wincrypt_test" => { + "noinst" => "1" + }, "test/buildtest_c_aes" => { "noinst" => "1" }, @@ -919,6 +1090,9 @@ our %unified_info = ( "test/buildtest_c_buffer" => { "noinst" => "1" }, + "test/buildtest_c_byteorder" => { + "noinst" => "1" + }, "test/buildtest_c_camellia" => { "noinst" => "1" }, @@ -943,9 +1117,6 @@ our %unified_info = ( "test/buildtest_c_core_dispatch" => { "noinst" => "1" }, - "test/buildtest_c_core_names" => { - "noinst" => "1" - }, "test/buildtest_c_core_object" => { "noinst" => "1" }, @@ -970,6 +1141,9 @@ our %unified_info = ( "test/buildtest_c_e_os2" => { "noinst" => "1" }, + "test/buildtest_c_e_ostime" => { + "noinst" => "1" + }, "test/buildtest_c_ebcdic" => { "noinst" => "1" }, @@ -997,12 +1171,18 @@ our %unified_info = ( "test/buildtest_c_hmac" => { "noinst" => "1" }, + "test/buildtest_c_hpke" => { + "noinst" => "1" + }, "test/buildtest_c_http" => { "noinst" => "1" }, "test/buildtest_c_idea" => { "noinst" => "1" }, + "test/buildtest_c_indicator" => { + "noinst" => "1" + }, "test/buildtest_c_kdf" => { "noinst" => "1" }, @@ -1018,6 +1198,9 @@ our %unified_info = ( "test/buildtest_c_mdc2" => { "noinst" => "1" }, + "test/buildtest_c_ml_kem" => { + "noinst" => "1" + }, "test/buildtest_c_modes" => { "noinst" => "1" }, @@ -1048,6 +1231,9 @@ our %unified_info = ( "test/buildtest_c_provider" => { "noinst" => "1" }, + "test/buildtest_c_quic" => { + "noinst" => "1" + }, "test/buildtest_c_rand" => { "noinst" => "1" }, @@ -1090,6 +1276,9 @@ our %unified_info = ( "test/buildtest_c_symhacks" => { "noinst" => "1" }, + "test/buildtest_c_thread" => { + "noinst" => "1" + }, "test/buildtest_c_tls1" => { "noinst" => "1" }, @@ -1105,6 +1294,12 @@ our %unified_info = ( "test/buildtest_c_whrlpool" => { "noinst" => "1" }, + "test/byteorder_test" => { + "noinst" => "1" + }, + "test/ca_internals_test" => { + "noinst" => "1" + }, "test/casttest" => { "noinst" => "1" }, @@ -1189,6 +1384,9 @@ our %unified_info = ( "test/danetest" => { "noinst" => "1" }, + "test/decoder_propq_test" => { + "noinst" => "1" + }, "test/defltfips_test" => { "noinst" => "1" }, @@ -1261,15 +1459,24 @@ our %unified_info = ( "test/evp_pkey_ctx_new_from_name" => { "noinst" => "1" }, + "test/evp_pkey_dhkem_test" => { + "noinst" => "1" + }, "test/evp_pkey_dparams_test" => { "noinst" => "1" }, "test/evp_pkey_provided_test" => { "noinst" => "1" }, + "test/evp_skey_test" => { + "noinst" => "1" + }, "test/evp_test" => { "noinst" => "1" }, + "test/evp_xof_test" => { + "noinst" => "1" + }, "test/exdatatest" => { "noinst" => "1" }, @@ -1297,6 +1504,9 @@ our %unified_info = ( "test/hmactest" => { "noinst" => "1" }, + "test/hpke_test" => { + "noinst" => "1" + }, "test/http_test" => { "noinst" => "1" }, @@ -1306,12 +1516,18 @@ our %unified_info = ( "test/igetest" => { "noinst" => "1" }, + "test/json_test" => { + "noinst" => "1" + }, "test/keymgmt_internal_test" => { "noinst" => "1" }, "test/lhash_test" => { "noinst" => "1" }, + "test/list_test" => { + "noinst" => "1" + }, "test/localetest" => { "noinst" => "1" }, @@ -1321,9 +1537,21 @@ our %unified_info = ( "test/mdc2test" => { "noinst" => "1" }, + "test/membio_test" => { + "noinst" => "1" + }, "test/memleaktest" => { "noinst" => "1" }, + "test/ml_dsa_test" => { + "noinst" => "1" + }, + "test/ml_kem_evp_extra_test" => { + "noinst" => "1" + }, + "test/ml_kem_internal_test" => { + "noinst" => "1" + }, "test/modes_internal_test" => { "noinst" => "1" }, @@ -1342,6 +1570,9 @@ our %unified_info = ( "test/packettest" => { "noinst" => "1" }, + "test/pairwise_fail_test" => { + "noinst" => "1" + }, "test/param_build_test" => { "noinst" => "1" }, @@ -1366,6 +1597,9 @@ our %unified_info = ( "test/pemtest" => { "noinst" => "1" }, + "test/pkcs12_api_test" => { + "noinst" => "1" + }, "test/pkcs12_format_test" => { "noinst" => "1" }, @@ -1381,6 +1615,9 @@ our %unified_info = ( "test/poly1305_internal_test" => { "noinst" => "1" }, + "test/priority_queue_test" => { + "noinst" => "1" + }, "test/property_test" => { "noinst" => "1" }, @@ -1390,6 +1627,9 @@ our %unified_info = ( "test/provfetchtest" => { "noinst" => "1" }, + "test/provider_default_search_path_test" => { + "noinst" => "1" + }, "test/provider_fallback_test" => { "noinst" => "1" }, @@ -1408,6 +1648,72 @@ our %unified_info = ( "test/punycode_test" => { "noinst" => "1" }, + "test/quic_ackm_test" => { + "noinst" => "1" + }, + "test/quic_cc_test" => { + "noinst" => "1" + }, + "test/quic_cfq_test" => { + "noinst" => "1" + }, + "test/quic_client_test" => { + "noinst" => "1" + }, + "test/quic_fc_test" => { + "noinst" => "1" + }, + "test/quic_fifd_test" => { + "noinst" => "1" + }, + "test/quic_lcidm_test" => { + "noinst" => "1" + }, + "test/quic_multistream_test" => { + "noinst" => "1" + }, + "test/quic_newcid_test" => { + "noinst" => "1" + }, + "test/quic_qlog_test" => { + "noinst" => "1" + }, + "test/quic_radix_test" => { + "noinst" => "1" + }, + "test/quic_rcidm_test" => { + "noinst" => "1" + }, + "test/quic_record_test" => { + "noinst" => "1" + }, + "test/quic_srt_gen_test" => { + "noinst" => "1" + }, + "test/quic_srtm_test" => { + "noinst" => "1" + }, + "test/quic_stream_test" => { + "noinst" => "1" + }, + "test/quic_tserver_test" => { + "noinst" => "1" + }, + "test/quic_txp_test" => { + "noinst" => "1" + }, + "test/quic_txpim_test" => { + "noinst" => "1" + }, + "test/quic_wire_test" => { + "noinst" => "1" + }, + "test/quicapitest" => { + "noinst" => "1" + }, + "test/quicfaultstest" => { + "noinst" => "1" + }, "test/rand_status_test" => { "noinst" => "1" }, @@ -1423,12 +1729,15 @@ our %unified_info = ( "test/rc5test" => { "noinst" => "1" }, - "test/rdrand_sanitytest" => { + "test/rdcpu_sanitytest" => { "noinst" => "1" }, "test/recordlentest" => { "noinst" => "1" }, + "test/rpktest" => { + "noinst" => "1" + }, "test/rsa_complex" => { "noinst" => "1" }, @@ -1441,6 +1750,12 @@ our %unified_info = ( "test/rsa_test" => { "noinst" => "1" }, + "test/rsa_x931_test" => { + "noinst" => "1" + }, + "test/safe_math_test" => { + "noinst" => "1" + }, "test/sanitytest" => { "noinst" => "1" }, @@ -1456,6 +1771,9 @@ our %unified_info = ( "test/siphash_internal_test" => { "noinst" => "1" }, + "test/slh_dsa_test" => { + "noinst" => "1" + }, "test/sm2_internal_test" => { "noinst" => "1" }, @@ -1477,6 +1795,9 @@ our %unified_info = ( "test/ssl_ctx_test" => { "noinst" => "1" }, + "test/ssl_handshake_rtt_test" => { + "noinst" => "1" + }, "test/ssl_old_test" => { "noinst" => "1" }, @@ -1498,12 +1819,18 @@ our %unified_info = ( "test/stack_test" => { "noinst" => "1" }, + "test/strtoultest" => { + "noinst" => "1" + }, "test/sysdefaulttest" => { "noinst" => "1" }, "test/test_test" => { "noinst" => "1" }, + "test/threadpool_test" => { + "noinst" => "1" + }, "test/threadstest" => { "noinst" => "1" }, @@ -1513,12 +1840,18 @@ our %unified_info = ( "test/time_offset_test" => { "noinst" => "1" }, + "test/time_test" => { + "noinst" => "1" + }, "test/tls13ccstest" => { "noinst" => "1" }, "test/tls13encryptiontest" => { "noinst" => "1" }, + "test/tls13groupselection_test" => { + "noinst" => "1" + }, "test/trace_api_test" => { "noinst" => "1" }, @@ -1546,6 +1879,9 @@ our %unified_info = ( "test/wpackettest" => { "noinst" => "1" }, + "test/x509_acert_test" => { + "noinst" => "1" + }, "test/x509_check_cert_pkey_test" => { "noinst" => "1" }, @@ -1555,6 +1891,15 @@ our %unified_info = ( "test/x509_internal_test" => { "noinst" => "1" }, + "test/x509_load_cert_file_test" => { + "noinst" => "1" + }, + "test/x509_req_test" => { + "noinst" => "1" + }, + "test/x509_test" => { + "noinst" => "1" + }, "test/x509_time_test" => { "noinst" => "1" }, @@ -1634,6 +1979,7 @@ our %unified_info = ( "ECP_NISTZ256_ASM", "KECCAK1600_ASM", "OPENSSL_CPUID_OBJ", + "OPENSSL_IA32_SSE2", "SHA1_ASM", "SHA256_ASM", "SHA512_ASM", @@ -1662,6 +2008,9 @@ our %unified_info = ( "MD5_ASM", "RC4_ASM" ], + "test/endecode_test" => [ + "STATIC_LEGACY" + ], "test/evp_extra_test" => [ "STATIC_LEGACY" ], @@ -1674,14 +2023,21 @@ our %unified_info = ( }, "depends" => { "" => [ + "OpenSSLConfigVersion.cmake", + "crypto/params_idx.c", + "exporters/OpenSSLConfigVersion.cmake", + "exporters/openssl.pc", "include/crypto/bn_conf.h", "include/crypto/dso_conf.h", + "include/internal/param_names.h", "include/openssl/asn1.h", "include/openssl/asn1t.h", "include/openssl/bio.h", "include/openssl/cmp.h", "include/openssl/cms.h", + "include/openssl/comp.h", "include/openssl/conf.h", + "include/openssl/core_names.h", "include/openssl/crmf.h", "include/openssl/crypto.h", "include/openssl/ct.h", @@ -1698,10 +2054,22 @@ our %unified_info = ( "include/openssl/ssl.h", "include/openssl/ui.h", "include/openssl/x509.h", + "include/openssl/x509_acert.h", "include/openssl/x509_vfy.h", "include/openssl/x509v3.h", + "openssl.pc", "test/provider_internal_test.cnf" ], + "OpenSSLConfig.cmake" => [ + "builddata.pm" + ], + "OpenSSLConfigVersion.cmake" => [ + "OpenSSLConfig.cmake", + "builddata.pm" + ], + "apps/ca_internals_test-bin-ca.o" => [ + "apps/progs.h" + ], "apps/lib/cmp_client_test-bin-cmp_mock_srv.o" => [ "apps/progs.h" ], @@ -1847,6 +2215,9 @@ our %unified_info = ( "apps/openssl-bin-sess_id.o" => [ "apps/progs.h" ], + "apps/openssl-bin-skeyutl.o" => [ + "apps/progs.h" + ], "apps/openssl-bin-smime.o" => [ "apps/progs.h" ], @@ -1935,6 +2306,9 @@ our %unified_info = ( "crypto/libcrypto-lib-info.o" => [ "crypto/buildinf.h" ], + "crypto/params_idx.c" => [ + "util/perl|OpenSSL/paramnames.pm" + ], "crypto/rc4/rc4-586.S" => [ "crypto/perlasm/x86asm.pl" ], @@ -2100,6 +2474,9 @@ our %unified_info = ( "doc/html/man1/openssl-sess_id.html" => [ "doc/man1/openssl-sess_id.pod" ], + "doc/html/man1/openssl-skeyutl.html" => [ + "doc/man1/openssl-skeyutl.pod" + ], "doc/html/man1/openssl-smime.html" => [ "doc/man1/openssl-smime.pod" ], @@ -2241,6 +2618,9 @@ our %unified_info = ( "doc/html/man3/BIO_get_ex_new_index.html" => [ "doc/man3/BIO_get_ex_new_index.pod" ], + "doc/html/man3/BIO_get_rpoll_descriptor.html" => [ + "doc/man3/BIO_get_rpoll_descriptor.pod" + ], "doc/html/man3/BIO_meth_new.html" => [ "doc/man3/BIO_meth_new.pod" ], @@ -2277,6 +2657,9 @@ our %unified_info = ( "doc/html/man3/BIO_s_datagram.html" => [ "doc/man3/BIO_s_datagram.pod" ], + "doc/html/man3/BIO_s_dgram_pair.html" => [ + "doc/man3/BIO_s_dgram_pair.pod" + ], "doc/html/man3/BIO_s_fd.html" => [ "doc/man3/BIO_s_fd.pod" ], @@ -2292,6 +2675,9 @@ our %unified_info = ( "doc/html/man3/BIO_s_socket.html" => [ "doc/man3/BIO_s_socket.pod" ], + "doc/html/man3/BIO_sendmmsg.html" => [ + "doc/man3/BIO_sendmmsg.pod" + ], "doc/html/man3/BIO_set_callback.html" => [ "doc/man3/BIO_set_callback.pod" ], @@ -2364,6 +2750,9 @@ our %unified_info = ( "doc/html/man3/BUF_MEM_new.html" => [ "doc/man3/BUF_MEM_new.pod" ], + "doc/html/man3/CMAC_CTX.html" => [ + "doc/man3/CMAC_CTX.pod" + ], "doc/html/man3/CMS_EncryptedData_decrypt.html" => [ "doc/man3/CMS_EncryptedData_decrypt.pod" ], @@ -2430,6 +2819,9 @@ our %unified_info = ( "doc/html/man3/CMS_verify_receipt.html" => [ "doc/man3/CMS_verify_receipt.pod" ], + "doc/html/man3/COMP_CTX_new.html" => [ + "doc/man3/COMP_CTX_new.pod" + ], "doc/html/man3/CONF_modules_free.html" => [ "doc/man3/CONF_modules_free.pod" ], @@ -2529,6 +2921,12 @@ our %unified_info = ( "doc/html/man3/DTLS_set_timer_cb.html" => [ "doc/man3/DTLS_set_timer_cb.pod" ], + "doc/html/man3/DTLSv1_get_timeout.html" => [ + "doc/man3/DTLSv1_get_timeout.pod" + ], + "doc/html/man3/DTLSv1_handle_timeout.html" => [ + "doc/man3/DTLSv1_handle_timeout.pod" + ], "doc/html/man3/DTLSv1_listen.html" => [ "doc/man3/DTLSv1_listen.pod" ], @@ -2667,6 +3065,9 @@ our %unified_info = ( "doc/html/man3/EVP_PKEY_CTX_get0_pkey.html" => [ "doc/man3/EVP_PKEY_CTX_get0_pkey.pod" ], + "doc/html/man3/EVP_PKEY_CTX_get_algor.html" => [ + "doc/man3/EVP_PKEY_CTX_get_algor.pod" + ], "doc/html/man3/EVP_PKEY_CTX_new.html" => [ "doc/man3/EVP_PKEY_CTX_new.pod" ], @@ -2784,6 +3185,12 @@ our %unified_info = ( "doc/html/man3/EVP_SIGNATURE.html" => [ "doc/man3/EVP_SIGNATURE.pod" ], + "doc/html/man3/EVP_SKEY.html" => [ + "doc/man3/EVP_SKEY.pod" + ], + "doc/html/man3/EVP_SKEYMGMT.html" => [ + "doc/man3/EVP_SKEYMGMT.pod" + ], "doc/html/man3/EVP_SealInit.html" => [ "doc/man3/EVP_SealInit.pod" ], @@ -2871,6 +3278,9 @@ our %unified_info = ( "doc/html/man3/EVP_whirlpool.html" => [ "doc/man3/EVP_whirlpool.pod" ], + "doc/html/man3/GENERAL_NAME.html" => [ + "doc/man3/GENERAL_NAME.pod" + ], "doc/html/man3/HMAC.html" => [ "doc/man3/HMAC.pod" ], @@ -2943,9 +3353,15 @@ our %unified_info = ( "doc/html/man3/OPENSSL_load_builtin_modules.html" => [ "doc/man3/OPENSSL_load_builtin_modules.pod" ], + "doc/html/man3/OPENSSL_load_u16_le.html" => [ + "doc/man3/OPENSSL_load_u16_le.pod" + ], "doc/html/man3/OPENSSL_malloc.html" => [ "doc/man3/OPENSSL_malloc.pod" ], + "doc/html/man3/OPENSSL_riscvcap.html" => [ + "doc/man3/OPENSSL_riscvcap.pod" + ], "doc/html/man3/OPENSSL_s390xcap.html" => [ "doc/man3/OPENSSL_s390xcap.pod" ], @@ -2961,12 +3377,18 @@ our %unified_info = ( "doc/html/man3/OSSL_CALLBACK.html" => [ "doc/man3/OSSL_CALLBACK.pod" ], + "doc/html/man3/OSSL_CMP_ATAV_set0.html" => [ + "doc/man3/OSSL_CMP_ATAV_set0.pod" + ], "doc/html/man3/OSSL_CMP_CTX_new.html" => [ "doc/man3/OSSL_CMP_CTX_new.pod" ], "doc/html/man3/OSSL_CMP_HDR_get0_transactionID.html" => [ "doc/man3/OSSL_CMP_HDR_get0_transactionID.pod" ], + "doc/html/man3/OSSL_CMP_ITAV_new_caCerts.html" => [ + "doc/man3/OSSL_CMP_ITAV_new_caCerts.pod" + ], "doc/html/man3/OSSL_CMP_ITAV_set0.html" => [ "doc/man3/OSSL_CMP_ITAV_set0.pod" ], @@ -3036,9 +3458,18 @@ our %unified_info = ( "doc/html/man3/OSSL_ENCODER_to_bio.html" => [ "doc/man3/OSSL_ENCODER_to_bio.pod" ], + "doc/html/man3/OSSL_ERR_STATE_save.html" => [ + "doc/man3/OSSL_ERR_STATE_save.pod" + ], "doc/html/man3/OSSL_ESS_check_signing_certs.html" => [ "doc/man3/OSSL_ESS_check_signing_certs.pod" ], + "doc/html/man3/OSSL_GENERAL_NAMES_print.html" => [ + "doc/man3/OSSL_GENERAL_NAMES_print.pod" + ], + "doc/html/man3/OSSL_HPKE_CTX_new.html" => [ + "doc/man3/OSSL_HPKE_CTX_new.pod" + ], "doc/html/man3/OSSL_HTTP_REQ_CTX.html" => [ "doc/man3/OSSL_HTTP_REQ_CTX.pod" ], @@ -3048,12 +3479,24 @@ our %unified_info = ( "doc/html/man3/OSSL_HTTP_transfer.html" => [ "doc/man3/OSSL_HTTP_transfer.pod" ], + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX.html" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX.pod" + ], + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX_print.html" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX_print.pod" + ], + "doc/html/man3/OSSL_INDICATOR_set_callback.html" => [ + "doc/man3/OSSL_INDICATOR_set_callback.pod" + ], "doc/html/man3/OSSL_ITEM.html" => [ "doc/man3/OSSL_ITEM.pod" ], "doc/html/man3/OSSL_LIB_CTX.html" => [ "doc/man3/OSSL_LIB_CTX.pod" ], + "doc/html/man3/OSSL_LIB_CTX_set_conf_diagnostics.html" => [ + "doc/man3/OSSL_LIB_CTX_set_conf_diagnostics.pod" + ], "doc/html/man3/OSSL_PARAM.html" => [ "doc/man3/OSSL_PARAM.pod" ], @@ -3069,9 +3512,15 @@ our %unified_info = ( "doc/html/man3/OSSL_PARAM_int.html" => [ "doc/man3/OSSL_PARAM_int.pod" ], + "doc/html/man3/OSSL_PARAM_print_to_bio.html" => [ + "doc/man3/OSSL_PARAM_print_to_bio.pod" + ], "doc/html/man3/OSSL_PROVIDER.html" => [ "doc/man3/OSSL_PROVIDER.pod" ], + "doc/html/man3/OSSL_QUIC_client_method.html" => [ + "doc/man3/OSSL_QUIC_client_method.pod" + ], "doc/html/man3/OSSL_SELF_TEST_new.html" => [ "doc/man3/OSSL_SELF_TEST_new.pod" ], @@ -3096,6 +3545,9 @@ our %unified_info = ( "doc/html/man3/OSSL_STORE_open.html" => [ "doc/man3/OSSL_STORE_open.pod" ], + "doc/html/man3/OSSL_sleep.html" => [ + "doc/man3/OSSL_sleep.pod" + ], "doc/html/man3/OSSL_trace_enabled.html" => [ "doc/man3/OSSL_trace_enabled.pod" ], @@ -3111,6 +3563,9 @@ our %unified_info = ( "doc/html/man3/OpenSSL_version.html" => [ "doc/man3/OpenSSL_version.pod" ], + "doc/html/man3/PBMAC1_get1_pbkdf2_param.html" => [ + "doc/man3/PBMAC1_get1_pbkdf2_param.pod" + ], "doc/html/man3/PEM_X509_INFO_read_bio_ex.html" => [ "doc/man3/PEM_X509_INFO_read_bio_ex.pod" ], @@ -3147,6 +3602,9 @@ our %unified_info = ( "doc/html/man3/PKCS12_SAFEBAG_get1_cert.html" => [ "doc/man3/PKCS12_SAFEBAG_get1_cert.pod" ], + "doc/html/man3/PKCS12_SAFEBAG_set0_attrs.html" => [ + "doc/man3/PKCS12_SAFEBAG_set0_attrs.pod" + ], "doc/html/man3/PKCS12_add1_attr_by_NID.html" => [ "doc/man3/PKCS12_add1_attr_by_NID.pod" ], @@ -3420,6 +3878,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set0_CA_list.html" => [ "doc/man3/SSL_CTX_set0_CA_list.pod" ], + "doc/html/man3/SSL_CTX_set1_cert_comp_preference.html" => [ + "doc/man3/SSL_CTX_set1_cert_comp_preference.pod" + ], "doc/html/man3/SSL_CTX_set1_curves.html" => [ "doc/man3/SSL_CTX_set1_curves.pod" ], @@ -3459,6 +3920,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_default_passwd_cb.html" => [ "doc/man3/SSL_CTX_set_default_passwd_cb.pod" ], + "doc/html/man3/SSL_CTX_set_domain_flags.html" => [ + "doc/man3/SSL_CTX_set_domain_flags.pod" + ], "doc/html/man3/SSL_CTX_set_generate_session_id.html" => [ "doc/man3/SSL_CTX_set_generate_session_id.pod" ], @@ -3480,6 +3944,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_msg_callback.html" => [ "doc/man3/SSL_CTX_set_msg_callback.pod" ], + "doc/html/man3/SSL_CTX_set_new_pending_conn_cb.html" => [ + "doc/man3/SSL_CTX_set_new_pending_conn_cb.pod" + ], "doc/html/man3/SSL_CTX_set_num_tickets.html" => [ "doc/man3/SSL_CTX_set_num_tickets.pod" ], @@ -3594,6 +4061,9 @@ our %unified_info = ( "doc/html/man3/SSL_accept.html" => [ "doc/man3/SSL_accept.pod" ], + "doc/html/man3/SSL_accept_stream.html" => [ + "doc/man3/SSL_accept_stream.pod" + ], "doc/html/man3/SSL_alert_type_string.html" => [ "doc/man3/SSL_alert_type_string.pod" ], @@ -3621,9 +4091,21 @@ our %unified_info = ( "doc/html/man3/SSL_free.html" => [ "doc/man3/SSL_free.pod" ], + "doc/html/man3/SSL_get0_connection.html" => [ + "doc/man3/SSL_get0_connection.pod" + ], + "doc/html/man3/SSL_get0_group_name.html" => [ + "doc/man3/SSL_get0_group_name.pod" + ], + "doc/html/man3/SSL_get0_peer_rpk.html" => [ + "doc/man3/SSL_get0_peer_rpk.pod" + ], "doc/html/man3/SSL_get0_peer_scts.html" => [ "doc/man3/SSL_get0_peer_scts.pod" ], + "doc/html/man3/SSL_get1_builtin_sigalgs.html" => [ + "doc/man3/SSL_get1_builtin_sigalgs.pod" + ], "doc/html/man3/SSL_get_SSL_CTX.html" => [ "doc/man3/SSL_get_SSL_CTX.pod" ], @@ -3639,6 +4121,9 @@ our %unified_info = ( "doc/html/man3/SSL_get_client_random.html" => [ "doc/man3/SSL_get_client_random.pod" ], + "doc/html/man3/SSL_get_conn_close_info.html" => [ + "doc/man3/SSL_get_conn_close_info.pod" + ], "doc/html/man3/SSL_get_current_cipher.html" => [ "doc/man3/SSL_get_current_cipher.pod" ], @@ -3648,12 +4133,18 @@ our %unified_info = ( "doc/html/man3/SSL_get_error.html" => [ "doc/man3/SSL_get_error.pod" ], + "doc/html/man3/SSL_get_event_timeout.html" => [ + "doc/man3/SSL_get_event_timeout.pod" + ], "doc/html/man3/SSL_get_extms_support.html" => [ "doc/man3/SSL_get_extms_support.pod" ], "doc/html/man3/SSL_get_fd.html" => [ "doc/man3/SSL_get_fd.pod" ], + "doc/html/man3/SSL_get_handshake_rtt.html" => [ + "doc/man3/SSL_get_handshake_rtt.pod" + ], "doc/html/man3/SSL_get_peer_cert_chain.html" => [ "doc/man3/SSL_get_peer_cert_chain.pod" ], @@ -3672,12 +4163,24 @@ our %unified_info = ( "doc/html/man3/SSL_get_rbio.html" => [ "doc/man3/SSL_get_rbio.pod" ], + "doc/html/man3/SSL_get_rpoll_descriptor.html" => [ + "doc/man3/SSL_get_rpoll_descriptor.pod" + ], "doc/html/man3/SSL_get_session.html" => [ "doc/man3/SSL_get_session.pod" ], "doc/html/man3/SSL_get_shared_sigalgs.html" => [ "doc/man3/SSL_get_shared_sigalgs.pod" ], + "doc/html/man3/SSL_get_stream_id.html" => [ + "doc/man3/SSL_get_stream_id.pod" + ], + "doc/html/man3/SSL_get_stream_read_state.html" => [ + "doc/man3/SSL_get_stream_read_state.pod" + ], + "doc/html/man3/SSL_get_value_uint.html" => [ + "doc/man3/SSL_get_value_uint.pod" + ], "doc/html/man3/SSL_get_verify_result.html" => [ "doc/man3/SSL_get_verify_result.pod" ], @@ -3687,9 +4190,15 @@ our %unified_info = ( "doc/html/man3/SSL_group_to_name.html" => [ "doc/man3/SSL_group_to_name.pod" ], + "doc/html/man3/SSL_handle_events.html" => [ + "doc/man3/SSL_handle_events.pod" + ], "doc/html/man3/SSL_in_init.html" => [ "doc/man3/SSL_in_init.pod" ], + "doc/html/man3/SSL_inject_net_dgram.html" => [ + "doc/man3/SSL_inject_net_dgram.pod" + ], "doc/html/man3/SSL_key_update.html" => [ "doc/man3/SSL_key_update.pod" ], @@ -3702,9 +4211,21 @@ our %unified_info = ( "doc/html/man3/SSL_new.html" => [ "doc/man3/SSL_new.pod" ], + "doc/html/man3/SSL_new_domain.html" => [ + "doc/man3/SSL_new_domain.pod" + ], + "doc/html/man3/SSL_new_listener.html" => [ + "doc/man3/SSL_new_listener.pod" + ], + "doc/html/man3/SSL_new_stream.html" => [ + "doc/man3/SSL_new_stream.pod" + ], "doc/html/man3/SSL_pending.html" => [ "doc/man3/SSL_pending.pod" ], + "doc/html/man3/SSL_poll.html" => [ + "doc/man3/SSL_poll.pod" + ], "doc/html/man3/SSL_read.html" => [ "doc/man3/SSL_read.pod" ], @@ -3720,24 +4241,45 @@ our %unified_info = ( "doc/html/man3/SSL_set1_host.html" => [ "doc/man3/SSL_set1_host.pod" ], + "doc/html/man3/SSL_set1_initial_peer_addr.html" => [ + "doc/man3/SSL_set1_initial_peer_addr.pod" + ], + "doc/html/man3/SSL_set1_server_cert_type.html" => [ + "doc/man3/SSL_set1_server_cert_type.pod" + ], "doc/html/man3/SSL_set_async_callback.html" => [ "doc/man3/SSL_set_async_callback.pod" ], "doc/html/man3/SSL_set_bio.html" => [ "doc/man3/SSL_set_bio.pod" ], + "doc/html/man3/SSL_set_blocking_mode.html" => [ + "doc/man3/SSL_set_blocking_mode.pod" + ], "doc/html/man3/SSL_set_connect_state.html" => [ "doc/man3/SSL_set_connect_state.pod" ], + "doc/html/man3/SSL_set_default_stream_mode.html" => [ + "doc/man3/SSL_set_default_stream_mode.pod" + ], "doc/html/man3/SSL_set_fd.html" => [ "doc/man3/SSL_set_fd.pod" ], + "doc/html/man3/SSL_set_incoming_stream_policy.html" => [ + "doc/man3/SSL_set_incoming_stream_policy.pod" + ], + "doc/html/man3/SSL_set_quic_tls_cbs.html" => [ + "doc/man3/SSL_set_quic_tls_cbs.pod" + ], "doc/html/man3/SSL_set_retry_verify.html" => [ "doc/man3/SSL_set_retry_verify.pod" ], "doc/html/man3/SSL_set_session.html" => [ "doc/man3/SSL_set_session.pod" ], + "doc/html/man3/SSL_set_session_secret_cb.html" => [ + "doc/man3/SSL_set_session_secret_cb.pod" + ], "doc/html/man3/SSL_set_shutdown.html" => [ "doc/man3/SSL_set_shutdown.pod" ], @@ -3750,6 +4292,12 @@ our %unified_info = ( "doc/html/man3/SSL_state_string.html" => [ "doc/man3/SSL_state_string.pod" ], + "doc/html/man3/SSL_stream_conclude.html" => [ + "doc/man3/SSL_stream_conclude.pod" + ], + "doc/html/man3/SSL_stream_reset.html" => [ + "doc/man3/SSL_stream_reset.pod" + ], "doc/html/man3/SSL_want.html" => [ "doc/man3/SSL_want.pod" ], @@ -3759,8 +4307,8 @@ our %unified_info = ( "doc/html/man3/TS_RESP_CTX_new.html" => [ "doc/man3/TS_RESP_CTX_new.pod" ], - "doc/html/man3/TS_VERIFY_CTX_set_certs.html" => [ - "doc/man3/TS_VERIFY_CTX_set_certs.pod" + "doc/html/man3/TS_VERIFY_CTX.html" => [ + "doc/man3/TS_VERIFY_CTX.pod" ], "doc/html/man3/UI_STRING.html" => [ "doc/man3/UI_STRING.pod" @@ -3780,6 +4328,21 @@ our %unified_info = ( "doc/html/man3/X509V3_set_ctx.html" => [ "doc/man3/X509V3_set_ctx.pod" ], + "doc/html/man3/X509_ACERT_add1_attr.html" => [ + "doc/man3/X509_ACERT_add1_attr.pod" + ], + "doc/html/man3/X509_ACERT_add_attr_nconf.html" => [ + "doc/man3/X509_ACERT_add_attr_nconf.pod" + ], + "doc/html/man3/X509_ACERT_get0_holder_baseCertId.html" => [ + "doc/man3/X509_ACERT_get0_holder_baseCertId.pod" + ], + "doc/html/man3/X509_ACERT_get_attr.html" => [ + "doc/man3/X509_ACERT_get_attr.pod" + ], + "doc/html/man3/X509_ACERT_print_ex.html" => [ + "doc/man3/X509_ACERT_print_ex.pod" + ], "doc/html/man3/X509_ALGOR_dup.html" => [ "doc/man3/X509_ALGOR_dup.pod" ], @@ -3828,6 +4391,9 @@ our %unified_info = ( "doc/html/man3/X509_SIG_get0.html" => [ "doc/man3/X509_SIG_get0.pod" ], + "doc/html/man3/X509_STORE_CTX_get_by_subject.html" => [ + "doc/man3/X509_STORE_CTX_get_by_subject.pod" + ], "doc/html/man3/X509_STORE_CTX_get_error.html" => [ "doc/man3/X509_STORE_CTX_get_error.pod" ], @@ -3894,6 +4460,9 @@ our %unified_info = ( "doc/html/man3/X509_get0_uids.html" => [ "doc/man3/X509_get0_uids.pod" ], + "doc/html/man3/X509_get_default_cert_file.html" => [ + "doc/man3/X509_get_default_cert_file.pod" + ], "doc/html/man3/X509_get_extension_flags.html" => [ "doc/man3/X509_get_extension_flags.pod" ], @@ -4017,9 +4586,15 @@ our %unified_info = ( "doc/html/man7/EVP_CIPHER-SM4.html" => [ "doc/man7/EVP_CIPHER-SM4.pod" ], + "doc/html/man7/EVP_KDF-ARGON2.html" => [ + "doc/man7/EVP_KDF-ARGON2.pod" + ], "doc/html/man7/EVP_KDF-HKDF.html" => [ "doc/man7/EVP_KDF-HKDF.pod" ], + "doc/html/man7/EVP_KDF-HMAC-DRBG.html" => [ + "doc/man7/EVP_KDF-HMAC-DRBG.pod" + ], "doc/html/man7/EVP_KDF-KB.html" => [ "doc/man7/EVP_KDF-KB.pod" ], @@ -4035,6 +4610,9 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-PKCS12KDF.html" => [ "doc/man7/EVP_KDF-PKCS12KDF.pod" ], + "doc/html/man7/EVP_KDF-PVKKDF.html" => [ + "doc/man7/EVP_KDF-PVKKDF.pod" + ], "doc/html/man7/EVP_KDF-SCRYPT.html" => [ "doc/man7/EVP_KDF-SCRYPT.pod" ], @@ -4059,9 +4637,18 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-X963.html" => [ "doc/man7/EVP_KDF-X963.pod" ], + "doc/html/man7/EVP_KEM-EC.html" => [ + "doc/man7/EVP_KEM-EC.pod" + ], + "doc/html/man7/EVP_KEM-ML-KEM.html" => [ + "doc/man7/EVP_KEM-ML-KEM.pod" + ], "doc/html/man7/EVP_KEM-RSA.html" => [ "doc/man7/EVP_KEM-RSA.pod" ], + "doc/html/man7/EVP_KEM-X25519.html" => [ + "doc/man7/EVP_KEM-X25519.pod" + ], "doc/html/man7/EVP_KEYEXCH-DH.html" => [ "doc/man7/EVP_KEYEXCH-DH.pod" ], @@ -4095,6 +4682,9 @@ our %unified_info = ( "doc/html/man7/EVP_MD-BLAKE2.html" => [ "doc/man7/EVP_MD-BLAKE2.pod" ], + "doc/html/man7/EVP_MD-KECCAK.html" => [ + "doc/man7/EVP_MD-KECCAK.pod" + ], "doc/html/man7/EVP_MD-MD2.html" => [ "doc/man7/EVP_MD-MD2.pod" ], @@ -4152,15 +4742,27 @@ our %unified_info = ( "doc/html/man7/EVP_PKEY-HMAC.html" => [ "doc/man7/EVP_PKEY-HMAC.pod" ], + "doc/html/man7/EVP_PKEY-ML-DSA.html" => [ + "doc/man7/EVP_PKEY-ML-DSA.pod" + ], + "doc/html/man7/EVP_PKEY-ML-KEM.html" => [ + "doc/man7/EVP_PKEY-ML-KEM.pod" + ], "doc/html/man7/EVP_PKEY-RSA.html" => [ "doc/man7/EVP_PKEY-RSA.pod" ], + "doc/html/man7/EVP_PKEY-SLH-DSA.html" => [ + "doc/man7/EVP_PKEY-SLH-DSA.pod" + ], "doc/html/man7/EVP_PKEY-SM2.html" => [ "doc/man7/EVP_PKEY-SM2.pod" ], "doc/html/man7/EVP_PKEY-X25519.html" => [ "doc/man7/EVP_PKEY-X25519.pod" ], + "doc/html/man7/EVP_RAND-CRNG-TEST.html" => [ + "doc/man7/EVP_RAND-CRNG-TEST.pod" + ], "doc/html/man7/EVP_RAND-CTR-DRBG.html" => [ "doc/man7/EVP_RAND-CTR-DRBG.pod" ], @@ -4170,6 +4772,9 @@ our %unified_info = ( "doc/html/man7/EVP_RAND-HMAC-DRBG.html" => [ "doc/man7/EVP_RAND-HMAC-DRBG.pod" ], + "doc/html/man7/EVP_RAND-JITTER.html" => [ + "doc/man7/EVP_RAND-JITTER.pod" + ], "doc/html/man7/EVP_RAND-SEED-SRC.html" => [ "doc/man7/EVP_RAND-SEED-SRC.pod" ], @@ -4191,9 +4796,15 @@ our %unified_info = ( "doc/html/man7/EVP_SIGNATURE-HMAC.html" => [ "doc/man7/EVP_SIGNATURE-HMAC.pod" ], + "doc/html/man7/EVP_SIGNATURE-ML-DSA.html" => [ + "doc/man7/EVP_SIGNATURE-ML-DSA.pod" + ], "doc/html/man7/EVP_SIGNATURE-RSA.html" => [ "doc/man7/EVP_SIGNATURE-RSA.pod" ], + "doc/html/man7/EVP_SIGNATURE-SLH-DSA.html" => [ + "doc/man7/EVP_SIGNATURE-SLH-DSA.pod" + ], "doc/html/man7/OSSL_PROVIDER-FIPS.html" => [ "doc/man7/OSSL_PROVIDER-FIPS.pod" ], @@ -4209,6 +4820,9 @@ our %unified_info = ( "doc/html/man7/OSSL_PROVIDER-null.html" => [ "doc/man7/OSSL_PROVIDER-null.pod" ], + "doc/html/man7/OSSL_STORE-winstore.html" => [ + "doc/man7/OSSL_STORE-winstore.pod" + ], "doc/html/man7/RAND.html" => [ "doc/man7/RAND.pod" ], @@ -4221,9 +4835,6 @@ our %unified_info = ( "doc/html/man7/bio.html" => [ "doc/man7/bio.pod" ], - "doc/html/man7/crypto.html" => [ - "doc/man7/crypto.pod" - ], "doc/html/man7/ct.html" => [ "doc/man7/ct.pod" ], @@ -4254,9 +4865,6 @@ our %unified_info = ( "doc/html/man7/life_cycle-rand.html" => [ "doc/man7/life_cycle-rand.pod" ], - "doc/html/man7/migration_guide.html" => [ - "doc/man7/migration_guide.pod" - ], "doc/html/man7/openssl-core.h.html" => [ "doc/man7/openssl-core.h.pod" ], @@ -4272,12 +4880,66 @@ our %unified_info = ( "doc/html/man7/openssl-glossary.html" => [ "doc/man7/openssl-glossary.pod" ], + "doc/html/man7/openssl-qlog.html" => [ + "doc/man7/openssl-qlog.pod" + ], + "doc/html/man7/openssl-quic-concurrency.html" => [ + "doc/man7/openssl-quic-concurrency.pod" + ], + "doc/html/man7/openssl-quic.html" => [ + "doc/man7/openssl-quic.pod" + ], "doc/html/man7/openssl-threads.html" => [ "doc/man7/openssl-threads.pod" ], "doc/html/man7/openssl_user_macros.html" => [ "doc/man7/openssl_user_macros.pod" ], + "doc/html/man7/ossl-guide-introduction.html" => [ + "doc/man7/ossl-guide-introduction.pod" + ], + "doc/html/man7/ossl-guide-libcrypto-introduction.html" => [ + "doc/man7/ossl-guide-libcrypto-introduction.pod" + ], + "doc/html/man7/ossl-guide-libraries-introduction.html" => [ + "doc/man7/ossl-guide-libraries-introduction.pod" + ], + "doc/html/man7/ossl-guide-libssl-introduction.html" => [ + "doc/man7/ossl-guide-libssl-introduction.pod" + ], + "doc/html/man7/ossl-guide-migration.html" => [ + "doc/man7/ossl-guide-migration.pod" + ], + "doc/html/man7/ossl-guide-quic-client-block.html" => [ + "doc/man7/ossl-guide-quic-client-block.pod" + ], + "doc/html/man7/ossl-guide-quic-client-non-block.html" => [ + "doc/man7/ossl-guide-quic-client-non-block.pod" + ], + "doc/html/man7/ossl-guide-quic-introduction.html" => [ + "doc/man7/ossl-guide-quic-introduction.pod" + ], + "doc/html/man7/ossl-guide-quic-multi-stream.html" => [ + "doc/man7/ossl-guide-quic-multi-stream.pod" + ], + "doc/html/man7/ossl-guide-quic-server-block.html" => [ + "doc/man7/ossl-guide-quic-server-block.pod" + ], + "doc/html/man7/ossl-guide-quic-server-non-block.html" => [ + "doc/man7/ossl-guide-quic-server-non-block.pod" + ], + "doc/html/man7/ossl-guide-tls-client-block.html" => [ + "doc/man7/ossl-guide-tls-client-block.pod" + ], + "doc/html/man7/ossl-guide-tls-client-non-block.html" => [ + "doc/man7/ossl-guide-tls-client-non-block.pod" + ], + "doc/html/man7/ossl-guide-tls-introduction.html" => [ + "doc/man7/ossl-guide-tls-introduction.pod" + ], + "doc/html/man7/ossl-guide-tls-server-block.html" => [ + "doc/man7/ossl-guide-tls-server-block.pod" + ], "doc/html/man7/ossl_store-file.html" => [ "doc/man7/ossl_store-file.pod" ], @@ -4332,6 +4994,9 @@ our %unified_info = ( "doc/html/man7/provider-signature.html" => [ "doc/man7/provider-signature.pod" ], + "doc/html/man7/provider-skeymgmt.html" => [ + "doc/man7/provider-skeymgmt.pod" + ], "doc/html/man7/provider-storemgmt.html" => [ "doc/man7/provider-storemgmt.pod" ], @@ -4341,9 +5006,6 @@ our %unified_info = ( "doc/html/man7/proxy-certificates.html" => [ "doc/man7/proxy-certificates.pod" ], - "doc/html/man7/ssl.html" => [ - "doc/man7/ssl.pod" - ], "doc/html/man7/x509.html" => [ "doc/man7/x509.pod" ], @@ -4491,6 +5153,9 @@ our %unified_info = ( "doc/man/man1/openssl-sess_id.1" => [ "doc/man1/openssl-sess_id.pod" ], + "doc/man/man1/openssl-skeyutl.1" => [ + "doc/man1/openssl-skeyutl.pod" + ], "doc/man/man1/openssl-smime.1" => [ "doc/man1/openssl-smime.pod" ], @@ -4632,6 +5297,9 @@ our %unified_info = ( "doc/man/man3/BIO_get_ex_new_index.3" => [ "doc/man3/BIO_get_ex_new_index.pod" ], + "doc/man/man3/BIO_get_rpoll_descriptor.3" => [ + "doc/man3/BIO_get_rpoll_descriptor.pod" + ], "doc/man/man3/BIO_meth_new.3" => [ "doc/man3/BIO_meth_new.pod" ], @@ -4668,6 +5336,9 @@ our %unified_info = ( "doc/man/man3/BIO_s_datagram.3" => [ "doc/man3/BIO_s_datagram.pod" ], + "doc/man/man3/BIO_s_dgram_pair.3" => [ + "doc/man3/BIO_s_dgram_pair.pod" + ], "doc/man/man3/BIO_s_fd.3" => [ "doc/man3/BIO_s_fd.pod" ], @@ -4683,6 +5354,9 @@ our %unified_info = ( "doc/man/man3/BIO_s_socket.3" => [ "doc/man3/BIO_s_socket.pod" ], + "doc/man/man3/BIO_sendmmsg.3" => [ + "doc/man3/BIO_sendmmsg.pod" + ], "doc/man/man3/BIO_set_callback.3" => [ "doc/man3/BIO_set_callback.pod" ], @@ -4755,6 +5429,9 @@ our %unified_info = ( "doc/man/man3/BUF_MEM_new.3" => [ "doc/man3/BUF_MEM_new.pod" ], + "doc/man/man3/CMAC_CTX.3" => [ + "doc/man3/CMAC_CTX.pod" + ], "doc/man/man3/CMS_EncryptedData_decrypt.3" => [ "doc/man3/CMS_EncryptedData_decrypt.pod" ], @@ -4821,6 +5498,9 @@ our %unified_info = ( "doc/man/man3/CMS_verify_receipt.3" => [ "doc/man3/CMS_verify_receipt.pod" ], + "doc/man/man3/COMP_CTX_new.3" => [ + "doc/man3/COMP_CTX_new.pod" + ], "doc/man/man3/CONF_modules_free.3" => [ "doc/man3/CONF_modules_free.pod" ], @@ -4920,6 +5600,12 @@ our %unified_info = ( "doc/man/man3/DTLS_set_timer_cb.3" => [ "doc/man3/DTLS_set_timer_cb.pod" ], + "doc/man/man3/DTLSv1_get_timeout.3" => [ + "doc/man3/DTLSv1_get_timeout.pod" + ], + "doc/man/man3/DTLSv1_handle_timeout.3" => [ + "doc/man3/DTLSv1_handle_timeout.pod" + ], "doc/man/man3/DTLSv1_listen.3" => [ "doc/man3/DTLSv1_listen.pod" ], @@ -5058,6 +5744,9 @@ our %unified_info = ( "doc/man/man3/EVP_PKEY_CTX_get0_pkey.3" => [ "doc/man3/EVP_PKEY_CTX_get0_pkey.pod" ], + "doc/man/man3/EVP_PKEY_CTX_get_algor.3" => [ + "doc/man3/EVP_PKEY_CTX_get_algor.pod" + ], "doc/man/man3/EVP_PKEY_CTX_new.3" => [ "doc/man3/EVP_PKEY_CTX_new.pod" ], @@ -5175,6 +5864,12 @@ our %unified_info = ( "doc/man/man3/EVP_SIGNATURE.3" => [ "doc/man3/EVP_SIGNATURE.pod" ], + "doc/man/man3/EVP_SKEY.3" => [ + "doc/man3/EVP_SKEY.pod" + ], + "doc/man/man3/EVP_SKEYMGMT.3" => [ + "doc/man3/EVP_SKEYMGMT.pod" + ], "doc/man/man3/EVP_SealInit.3" => [ "doc/man3/EVP_SealInit.pod" ], @@ -5262,6 +5957,9 @@ our %unified_info = ( "doc/man/man3/EVP_whirlpool.3" => [ "doc/man3/EVP_whirlpool.pod" ], + "doc/man/man3/GENERAL_NAME.3" => [ + "doc/man3/GENERAL_NAME.pod" + ], "doc/man/man3/HMAC.3" => [ "doc/man3/HMAC.pod" ], @@ -5334,9 +6032,15 @@ our %unified_info = ( "doc/man/man3/OPENSSL_load_builtin_modules.3" => [ "doc/man3/OPENSSL_load_builtin_modules.pod" ], + "doc/man/man3/OPENSSL_load_u16_le.3" => [ + "doc/man3/OPENSSL_load_u16_le.pod" + ], "doc/man/man3/OPENSSL_malloc.3" => [ "doc/man3/OPENSSL_malloc.pod" ], + "doc/man/man3/OPENSSL_riscvcap.3" => [ + "doc/man3/OPENSSL_riscvcap.pod" + ], "doc/man/man3/OPENSSL_s390xcap.3" => [ "doc/man3/OPENSSL_s390xcap.pod" ], @@ -5352,12 +6056,18 @@ our %unified_info = ( "doc/man/man3/OSSL_CALLBACK.3" => [ "doc/man3/OSSL_CALLBACK.pod" ], + "doc/man/man3/OSSL_CMP_ATAV_set0.3" => [ + "doc/man3/OSSL_CMP_ATAV_set0.pod" + ], "doc/man/man3/OSSL_CMP_CTX_new.3" => [ "doc/man3/OSSL_CMP_CTX_new.pod" ], "doc/man/man3/OSSL_CMP_HDR_get0_transactionID.3" => [ "doc/man3/OSSL_CMP_HDR_get0_transactionID.pod" ], + "doc/man/man3/OSSL_CMP_ITAV_new_caCerts.3" => [ + "doc/man3/OSSL_CMP_ITAV_new_caCerts.pod" + ], "doc/man/man3/OSSL_CMP_ITAV_set0.3" => [ "doc/man3/OSSL_CMP_ITAV_set0.pod" ], @@ -5427,9 +6137,18 @@ our %unified_info = ( "doc/man/man3/OSSL_ENCODER_to_bio.3" => [ "doc/man3/OSSL_ENCODER_to_bio.pod" ], + "doc/man/man3/OSSL_ERR_STATE_save.3" => [ + "doc/man3/OSSL_ERR_STATE_save.pod" + ], "doc/man/man3/OSSL_ESS_check_signing_certs.3" => [ "doc/man3/OSSL_ESS_check_signing_certs.pod" ], + "doc/man/man3/OSSL_GENERAL_NAMES_print.3" => [ + "doc/man3/OSSL_GENERAL_NAMES_print.pod" + ], + "doc/man/man3/OSSL_HPKE_CTX_new.3" => [ + "doc/man3/OSSL_HPKE_CTX_new.pod" + ], "doc/man/man3/OSSL_HTTP_REQ_CTX.3" => [ "doc/man3/OSSL_HTTP_REQ_CTX.pod" ], @@ -5439,12 +6158,24 @@ our %unified_info = ( "doc/man/man3/OSSL_HTTP_transfer.3" => [ "doc/man3/OSSL_HTTP_transfer.pod" ], + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX.3" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX.pod" + ], + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX_print.3" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX_print.pod" + ], + "doc/man/man3/OSSL_INDICATOR_set_callback.3" => [ + "doc/man3/OSSL_INDICATOR_set_callback.pod" + ], "doc/man/man3/OSSL_ITEM.3" => [ "doc/man3/OSSL_ITEM.pod" ], "doc/man/man3/OSSL_LIB_CTX.3" => [ "doc/man3/OSSL_LIB_CTX.pod" ], + "doc/man/man3/OSSL_LIB_CTX_set_conf_diagnostics.3" => [ + "doc/man3/OSSL_LIB_CTX_set_conf_diagnostics.pod" + ], "doc/man/man3/OSSL_PARAM.3" => [ "doc/man3/OSSL_PARAM.pod" ], @@ -5460,9 +6191,15 @@ our %unified_info = ( "doc/man/man3/OSSL_PARAM_int.3" => [ "doc/man3/OSSL_PARAM_int.pod" ], + "doc/man/man3/OSSL_PARAM_print_to_bio.3" => [ + "doc/man3/OSSL_PARAM_print_to_bio.pod" + ], "doc/man/man3/OSSL_PROVIDER.3" => [ "doc/man3/OSSL_PROVIDER.pod" ], + "doc/man/man3/OSSL_QUIC_client_method.3" => [ + "doc/man3/OSSL_QUIC_client_method.pod" + ], "doc/man/man3/OSSL_SELF_TEST_new.3" => [ "doc/man3/OSSL_SELF_TEST_new.pod" ], @@ -5487,6 +6224,9 @@ our %unified_info = ( "doc/man/man3/OSSL_STORE_open.3" => [ "doc/man3/OSSL_STORE_open.pod" ], + "doc/man/man3/OSSL_sleep.3" => [ + "doc/man3/OSSL_sleep.pod" + ], "doc/man/man3/OSSL_trace_enabled.3" => [ "doc/man3/OSSL_trace_enabled.pod" ], @@ -5502,6 +6242,9 @@ our %unified_info = ( "doc/man/man3/OpenSSL_version.3" => [ "doc/man3/OpenSSL_version.pod" ], + "doc/man/man3/PBMAC1_get1_pbkdf2_param.3" => [ + "doc/man3/PBMAC1_get1_pbkdf2_param.pod" + ], "doc/man/man3/PEM_X509_INFO_read_bio_ex.3" => [ "doc/man3/PEM_X509_INFO_read_bio_ex.pod" ], @@ -5538,6 +6281,9 @@ our %unified_info = ( "doc/man/man3/PKCS12_SAFEBAG_get1_cert.3" => [ "doc/man3/PKCS12_SAFEBAG_get1_cert.pod" ], + "doc/man/man3/PKCS12_SAFEBAG_set0_attrs.3" => [ + "doc/man3/PKCS12_SAFEBAG_set0_attrs.pod" + ], "doc/man/man3/PKCS12_add1_attr_by_NID.3" => [ "doc/man3/PKCS12_add1_attr_by_NID.pod" ], @@ -5811,6 +6557,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set0_CA_list.3" => [ "doc/man3/SSL_CTX_set0_CA_list.pod" ], + "doc/man/man3/SSL_CTX_set1_cert_comp_preference.3" => [ + "doc/man3/SSL_CTX_set1_cert_comp_preference.pod" + ], "doc/man/man3/SSL_CTX_set1_curves.3" => [ "doc/man3/SSL_CTX_set1_curves.pod" ], @@ -5850,6 +6599,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_default_passwd_cb.3" => [ "doc/man3/SSL_CTX_set_default_passwd_cb.pod" ], + "doc/man/man3/SSL_CTX_set_domain_flags.3" => [ + "doc/man3/SSL_CTX_set_domain_flags.pod" + ], "doc/man/man3/SSL_CTX_set_generate_session_id.3" => [ "doc/man3/SSL_CTX_set_generate_session_id.pod" ], @@ -5871,6 +6623,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_msg_callback.3" => [ "doc/man3/SSL_CTX_set_msg_callback.pod" ], + "doc/man/man3/SSL_CTX_set_new_pending_conn_cb.3" => [ + "doc/man3/SSL_CTX_set_new_pending_conn_cb.pod" + ], "doc/man/man3/SSL_CTX_set_num_tickets.3" => [ "doc/man3/SSL_CTX_set_num_tickets.pod" ], @@ -5985,6 +6740,9 @@ our %unified_info = ( "doc/man/man3/SSL_accept.3" => [ "doc/man3/SSL_accept.pod" ], + "doc/man/man3/SSL_accept_stream.3" => [ + "doc/man3/SSL_accept_stream.pod" + ], "doc/man/man3/SSL_alert_type_string.3" => [ "doc/man3/SSL_alert_type_string.pod" ], @@ -6012,9 +6770,21 @@ our %unified_info = ( "doc/man/man3/SSL_free.3" => [ "doc/man3/SSL_free.pod" ], + "doc/man/man3/SSL_get0_connection.3" => [ + "doc/man3/SSL_get0_connection.pod" + ], + "doc/man/man3/SSL_get0_group_name.3" => [ + "doc/man3/SSL_get0_group_name.pod" + ], + "doc/man/man3/SSL_get0_peer_rpk.3" => [ + "doc/man3/SSL_get0_peer_rpk.pod" + ], "doc/man/man3/SSL_get0_peer_scts.3" => [ "doc/man3/SSL_get0_peer_scts.pod" ], + "doc/man/man3/SSL_get1_builtin_sigalgs.3" => [ + "doc/man3/SSL_get1_builtin_sigalgs.pod" + ], "doc/man/man3/SSL_get_SSL_CTX.3" => [ "doc/man3/SSL_get_SSL_CTX.pod" ], @@ -6030,6 +6800,9 @@ our %unified_info = ( "doc/man/man3/SSL_get_client_random.3" => [ "doc/man3/SSL_get_client_random.pod" ], + "doc/man/man3/SSL_get_conn_close_info.3" => [ + "doc/man3/SSL_get_conn_close_info.pod" + ], "doc/man/man3/SSL_get_current_cipher.3" => [ "doc/man3/SSL_get_current_cipher.pod" ], @@ -6039,12 +6812,18 @@ our %unified_info = ( "doc/man/man3/SSL_get_error.3" => [ "doc/man3/SSL_get_error.pod" ], + "doc/man/man3/SSL_get_event_timeout.3" => [ + "doc/man3/SSL_get_event_timeout.pod" + ], "doc/man/man3/SSL_get_extms_support.3" => [ "doc/man3/SSL_get_extms_support.pod" ], "doc/man/man3/SSL_get_fd.3" => [ "doc/man3/SSL_get_fd.pod" ], + "doc/man/man3/SSL_get_handshake_rtt.3" => [ + "doc/man3/SSL_get_handshake_rtt.pod" + ], "doc/man/man3/SSL_get_peer_cert_chain.3" => [ "doc/man3/SSL_get_peer_cert_chain.pod" ], @@ -6063,12 +6842,24 @@ our %unified_info = ( "doc/man/man3/SSL_get_rbio.3" => [ "doc/man3/SSL_get_rbio.pod" ], + "doc/man/man3/SSL_get_rpoll_descriptor.3" => [ + "doc/man3/SSL_get_rpoll_descriptor.pod" + ], "doc/man/man3/SSL_get_session.3" => [ "doc/man3/SSL_get_session.pod" ], "doc/man/man3/SSL_get_shared_sigalgs.3" => [ "doc/man3/SSL_get_shared_sigalgs.pod" ], + "doc/man/man3/SSL_get_stream_id.3" => [ + "doc/man3/SSL_get_stream_id.pod" + ], + "doc/man/man3/SSL_get_stream_read_state.3" => [ + "doc/man3/SSL_get_stream_read_state.pod" + ], + "doc/man/man3/SSL_get_value_uint.3" => [ + "doc/man3/SSL_get_value_uint.pod" + ], "doc/man/man3/SSL_get_verify_result.3" => [ "doc/man3/SSL_get_verify_result.pod" ], @@ -6078,9 +6869,15 @@ our %unified_info = ( "doc/man/man3/SSL_group_to_name.3" => [ "doc/man3/SSL_group_to_name.pod" ], + "doc/man/man3/SSL_handle_events.3" => [ + "doc/man3/SSL_handle_events.pod" + ], "doc/man/man3/SSL_in_init.3" => [ "doc/man3/SSL_in_init.pod" ], + "doc/man/man3/SSL_inject_net_dgram.3" => [ + "doc/man3/SSL_inject_net_dgram.pod" + ], "doc/man/man3/SSL_key_update.3" => [ "doc/man3/SSL_key_update.pod" ], @@ -6093,9 +6890,21 @@ our %unified_info = ( "doc/man/man3/SSL_new.3" => [ "doc/man3/SSL_new.pod" ], + "doc/man/man3/SSL_new_domain.3" => [ + "doc/man3/SSL_new_domain.pod" + ], + "doc/man/man3/SSL_new_listener.3" => [ + "doc/man3/SSL_new_listener.pod" + ], + "doc/man/man3/SSL_new_stream.3" => [ + "doc/man3/SSL_new_stream.pod" + ], "doc/man/man3/SSL_pending.3" => [ "doc/man3/SSL_pending.pod" ], + "doc/man/man3/SSL_poll.3" => [ + "doc/man3/SSL_poll.pod" + ], "doc/man/man3/SSL_read.3" => [ "doc/man3/SSL_read.pod" ], @@ -6111,24 +6920,45 @@ our %unified_info = ( "doc/man/man3/SSL_set1_host.3" => [ "doc/man3/SSL_set1_host.pod" ], + "doc/man/man3/SSL_set1_initial_peer_addr.3" => [ + "doc/man3/SSL_set1_initial_peer_addr.pod" + ], + "doc/man/man3/SSL_set1_server_cert_type.3" => [ + "doc/man3/SSL_set1_server_cert_type.pod" + ], "doc/man/man3/SSL_set_async_callback.3" => [ "doc/man3/SSL_set_async_callback.pod" ], "doc/man/man3/SSL_set_bio.3" => [ "doc/man3/SSL_set_bio.pod" ], + "doc/man/man3/SSL_set_blocking_mode.3" => [ + "doc/man3/SSL_set_blocking_mode.pod" + ], "doc/man/man3/SSL_set_connect_state.3" => [ "doc/man3/SSL_set_connect_state.pod" ], + "doc/man/man3/SSL_set_default_stream_mode.3" => [ + "doc/man3/SSL_set_default_stream_mode.pod" + ], "doc/man/man3/SSL_set_fd.3" => [ "doc/man3/SSL_set_fd.pod" ], + "doc/man/man3/SSL_set_incoming_stream_policy.3" => [ + "doc/man3/SSL_set_incoming_stream_policy.pod" + ], + "doc/man/man3/SSL_set_quic_tls_cbs.3" => [ + "doc/man3/SSL_set_quic_tls_cbs.pod" + ], "doc/man/man3/SSL_set_retry_verify.3" => [ "doc/man3/SSL_set_retry_verify.pod" ], "doc/man/man3/SSL_set_session.3" => [ "doc/man3/SSL_set_session.pod" ], + "doc/man/man3/SSL_set_session_secret_cb.3" => [ + "doc/man3/SSL_set_session_secret_cb.pod" + ], "doc/man/man3/SSL_set_shutdown.3" => [ "doc/man3/SSL_set_shutdown.pod" ], @@ -6141,6 +6971,12 @@ our %unified_info = ( "doc/man/man3/SSL_state_string.3" => [ "doc/man3/SSL_state_string.pod" ], + "doc/man/man3/SSL_stream_conclude.3" => [ + "doc/man3/SSL_stream_conclude.pod" + ], + "doc/man/man3/SSL_stream_reset.3" => [ + "doc/man3/SSL_stream_reset.pod" + ], "doc/man/man3/SSL_want.3" => [ "doc/man3/SSL_want.pod" ], @@ -6150,8 +6986,8 @@ our %unified_info = ( "doc/man/man3/TS_RESP_CTX_new.3" => [ "doc/man3/TS_RESP_CTX_new.pod" ], - "doc/man/man3/TS_VERIFY_CTX_set_certs.3" => [ - "doc/man3/TS_VERIFY_CTX_set_certs.pod" + "doc/man/man3/TS_VERIFY_CTX.3" => [ + "doc/man3/TS_VERIFY_CTX.pod" ], "doc/man/man3/UI_STRING.3" => [ "doc/man3/UI_STRING.pod" @@ -6171,6 +7007,21 @@ our %unified_info = ( "doc/man/man3/X509V3_set_ctx.3" => [ "doc/man3/X509V3_set_ctx.pod" ], + "doc/man/man3/X509_ACERT_add1_attr.3" => [ + "doc/man3/X509_ACERT_add1_attr.pod" + ], + "doc/man/man3/X509_ACERT_add_attr_nconf.3" => [ + "doc/man3/X509_ACERT_add_attr_nconf.pod" + ], + "doc/man/man3/X509_ACERT_get0_holder_baseCertId.3" => [ + "doc/man3/X509_ACERT_get0_holder_baseCertId.pod" + ], + "doc/man/man3/X509_ACERT_get_attr.3" => [ + "doc/man3/X509_ACERT_get_attr.pod" + ], + "doc/man/man3/X509_ACERT_print_ex.3" => [ + "doc/man3/X509_ACERT_print_ex.pod" + ], "doc/man/man3/X509_ALGOR_dup.3" => [ "doc/man3/X509_ALGOR_dup.pod" ], @@ -6219,6 +7070,9 @@ our %unified_info = ( "doc/man/man3/X509_SIG_get0.3" => [ "doc/man3/X509_SIG_get0.pod" ], + "doc/man/man3/X509_STORE_CTX_get_by_subject.3" => [ + "doc/man3/X509_STORE_CTX_get_by_subject.pod" + ], "doc/man/man3/X509_STORE_CTX_get_error.3" => [ "doc/man3/X509_STORE_CTX_get_error.pod" ], @@ -6285,6 +7139,9 @@ our %unified_info = ( "doc/man/man3/X509_get0_uids.3" => [ "doc/man3/X509_get0_uids.pod" ], + "doc/man/man3/X509_get_default_cert_file.3" => [ + "doc/man3/X509_get_default_cert_file.pod" + ], "doc/man/man3/X509_get_extension_flags.3" => [ "doc/man3/X509_get_extension_flags.pod" ], @@ -6408,9 +7265,15 @@ our %unified_info = ( "doc/man/man7/EVP_CIPHER-SM4.7" => [ "doc/man7/EVP_CIPHER-SM4.pod" ], + "doc/man/man7/EVP_KDF-ARGON2.7" => [ + "doc/man7/EVP_KDF-ARGON2.pod" + ], "doc/man/man7/EVP_KDF-HKDF.7" => [ "doc/man7/EVP_KDF-HKDF.pod" ], + "doc/man/man7/EVP_KDF-HMAC-DRBG.7" => [ + "doc/man7/EVP_KDF-HMAC-DRBG.pod" + ], "doc/man/man7/EVP_KDF-KB.7" => [ "doc/man7/EVP_KDF-KB.pod" ], @@ -6426,6 +7289,9 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-PKCS12KDF.7" => [ "doc/man7/EVP_KDF-PKCS12KDF.pod" ], + "doc/man/man7/EVP_KDF-PVKKDF.7" => [ + "doc/man7/EVP_KDF-PVKKDF.pod" + ], "doc/man/man7/EVP_KDF-SCRYPT.7" => [ "doc/man7/EVP_KDF-SCRYPT.pod" ], @@ -6450,9 +7316,18 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-X963.7" => [ "doc/man7/EVP_KDF-X963.pod" ], + "doc/man/man7/EVP_KEM-EC.7" => [ + "doc/man7/EVP_KEM-EC.pod" + ], + "doc/man/man7/EVP_KEM-ML-KEM.7" => [ + "doc/man7/EVP_KEM-ML-KEM.pod" + ], "doc/man/man7/EVP_KEM-RSA.7" => [ "doc/man7/EVP_KEM-RSA.pod" ], + "doc/man/man7/EVP_KEM-X25519.7" => [ + "doc/man7/EVP_KEM-X25519.pod" + ], "doc/man/man7/EVP_KEYEXCH-DH.7" => [ "doc/man7/EVP_KEYEXCH-DH.pod" ], @@ -6486,6 +7361,9 @@ our %unified_info = ( "doc/man/man7/EVP_MD-BLAKE2.7" => [ "doc/man7/EVP_MD-BLAKE2.pod" ], + "doc/man/man7/EVP_MD-KECCAK.7" => [ + "doc/man7/EVP_MD-KECCAK.pod" + ], "doc/man/man7/EVP_MD-MD2.7" => [ "doc/man7/EVP_MD-MD2.pod" ], @@ -6543,15 +7421,27 @@ our %unified_info = ( "doc/man/man7/EVP_PKEY-HMAC.7" => [ "doc/man7/EVP_PKEY-HMAC.pod" ], + "doc/man/man7/EVP_PKEY-ML-DSA.7" => [ + "doc/man7/EVP_PKEY-ML-DSA.pod" + ], + "doc/man/man7/EVP_PKEY-ML-KEM.7" => [ + "doc/man7/EVP_PKEY-ML-KEM.pod" + ], "doc/man/man7/EVP_PKEY-RSA.7" => [ "doc/man7/EVP_PKEY-RSA.pod" ], + "doc/man/man7/EVP_PKEY-SLH-DSA.7" => [ + "doc/man7/EVP_PKEY-SLH-DSA.pod" + ], "doc/man/man7/EVP_PKEY-SM2.7" => [ "doc/man7/EVP_PKEY-SM2.pod" ], "doc/man/man7/EVP_PKEY-X25519.7" => [ "doc/man7/EVP_PKEY-X25519.pod" ], + "doc/man/man7/EVP_RAND-CRNG-TEST.7" => [ + "doc/man7/EVP_RAND-CRNG-TEST.pod" + ], "doc/man/man7/EVP_RAND-CTR-DRBG.7" => [ "doc/man7/EVP_RAND-CTR-DRBG.pod" ], @@ -6561,6 +7451,9 @@ our %unified_info = ( "doc/man/man7/EVP_RAND-HMAC-DRBG.7" => [ "doc/man7/EVP_RAND-HMAC-DRBG.pod" ], + "doc/man/man7/EVP_RAND-JITTER.7" => [ + "doc/man7/EVP_RAND-JITTER.pod" + ], "doc/man/man7/EVP_RAND-SEED-SRC.7" => [ "doc/man7/EVP_RAND-SEED-SRC.pod" ], @@ -6582,9 +7475,15 @@ our %unified_info = ( "doc/man/man7/EVP_SIGNATURE-HMAC.7" => [ "doc/man7/EVP_SIGNATURE-HMAC.pod" ], + "doc/man/man7/EVP_SIGNATURE-ML-DSA.7" => [ + "doc/man7/EVP_SIGNATURE-ML-DSA.pod" + ], "doc/man/man7/EVP_SIGNATURE-RSA.7" => [ "doc/man7/EVP_SIGNATURE-RSA.pod" ], + "doc/man/man7/EVP_SIGNATURE-SLH-DSA.7" => [ + "doc/man7/EVP_SIGNATURE-SLH-DSA.pod" + ], "doc/man/man7/OSSL_PROVIDER-FIPS.7" => [ "doc/man7/OSSL_PROVIDER-FIPS.pod" ], @@ -6600,6 +7499,9 @@ our %unified_info = ( "doc/man/man7/OSSL_PROVIDER-null.7" => [ "doc/man7/OSSL_PROVIDER-null.pod" ], + "doc/man/man7/OSSL_STORE-winstore.7" => [ + "doc/man7/OSSL_STORE-winstore.pod" + ], "doc/man/man7/RAND.7" => [ "doc/man7/RAND.pod" ], @@ -6612,9 +7514,6 @@ our %unified_info = ( "doc/man/man7/bio.7" => [ "doc/man7/bio.pod" ], - "doc/man/man7/crypto.7" => [ - "doc/man7/crypto.pod" - ], "doc/man/man7/ct.7" => [ "doc/man7/ct.pod" ], @@ -6645,9 +7544,6 @@ our %unified_info = ( "doc/man/man7/life_cycle-rand.7" => [ "doc/man7/life_cycle-rand.pod" ], - "doc/man/man7/migration_guide.7" => [ - "doc/man7/migration_guide.pod" - ], "doc/man/man7/openssl-core.h.7" => [ "doc/man7/openssl-core.h.pod" ], @@ -6663,12 +7559,66 @@ our %unified_info = ( "doc/man/man7/openssl-glossary.7" => [ "doc/man7/openssl-glossary.pod" ], + "doc/man/man7/openssl-qlog.7" => [ + "doc/man7/openssl-qlog.pod" + ], + "doc/man/man7/openssl-quic-concurrency.7" => [ + "doc/man7/openssl-quic-concurrency.pod" + ], + "doc/man/man7/openssl-quic.7" => [ + "doc/man7/openssl-quic.pod" + ], "doc/man/man7/openssl-threads.7" => [ "doc/man7/openssl-threads.pod" ], "doc/man/man7/openssl_user_macros.7" => [ "doc/man7/openssl_user_macros.pod" ], + "doc/man/man7/ossl-guide-introduction.7" => [ + "doc/man7/ossl-guide-introduction.pod" + ], + "doc/man/man7/ossl-guide-libcrypto-introduction.7" => [ + "doc/man7/ossl-guide-libcrypto-introduction.pod" + ], + "doc/man/man7/ossl-guide-libraries-introduction.7" => [ + "doc/man7/ossl-guide-libraries-introduction.pod" + ], + "doc/man/man7/ossl-guide-libssl-introduction.7" => [ + "doc/man7/ossl-guide-libssl-introduction.pod" + ], + "doc/man/man7/ossl-guide-migration.7" => [ + "doc/man7/ossl-guide-migration.pod" + ], + "doc/man/man7/ossl-guide-quic-client-block.7" => [ + "doc/man7/ossl-guide-quic-client-block.pod" + ], + "doc/man/man7/ossl-guide-quic-client-non-block.7" => [ + "doc/man7/ossl-guide-quic-client-non-block.pod" + ], + "doc/man/man7/ossl-guide-quic-introduction.7" => [ + "doc/man7/ossl-guide-quic-introduction.pod" + ], + "doc/man/man7/ossl-guide-quic-multi-stream.7" => [ + "doc/man7/ossl-guide-quic-multi-stream.pod" + ], + "doc/man/man7/ossl-guide-quic-server-block.7" => [ + "doc/man7/ossl-guide-quic-server-block.pod" + ], + "doc/man/man7/ossl-guide-quic-server-non-block.7" => [ + "doc/man7/ossl-guide-quic-server-non-block.pod" + ], + "doc/man/man7/ossl-guide-tls-client-block.7" => [ + "doc/man7/ossl-guide-tls-client-block.pod" + ], + "doc/man/man7/ossl-guide-tls-client-non-block.7" => [ + "doc/man7/ossl-guide-tls-client-non-block.pod" + ], + "doc/man/man7/ossl-guide-tls-introduction.7" => [ + "doc/man7/ossl-guide-tls-introduction.pod" + ], + "doc/man/man7/ossl-guide-tls-server-block.7" => [ + "doc/man7/ossl-guide-tls-server-block.pod" + ], "doc/man/man7/ossl_store-file.7" => [ "doc/man7/ossl_store-file.pod" ], @@ -6723,6 +7673,9 @@ our %unified_info = ( "doc/man/man7/provider-signature.7" => [ "doc/man7/provider-signature.pod" ], + "doc/man/man7/provider-skeymgmt.7" => [ + "doc/man7/provider-skeymgmt.pod" + ], "doc/man/man7/provider-storemgmt.7" => [ "doc/man7/provider-storemgmt.pod" ], @@ -6732,9 +7685,6 @@ our %unified_info = ( "doc/man/man7/proxy-certificates.7" => [ "doc/man7/proxy-certificates.pod" ], - "doc/man/man7/ssl.7" => [ - "doc/man7/ssl.pod" - ], "doc/man/man7/x509.7" => [ "doc/man7/x509.pod" ], @@ -6914,6 +7864,10 @@ our %unified_info = ( "doc/man1/openssl-sess_id.pod.in", "doc/perlvars.pm" ], + "doc/man1/openssl-skeyutl.pod" => [ + "doc/man1/openssl-skeyutl.pod.in", + "doc/perlvars.pm" + ], "doc/man1/openssl-smime.pod" => [ "doc/man1/openssl-smime.pod.in", "doc/perlvars.pm" @@ -6953,6 +7907,27 @@ our %unified_info = ( "doc/man7/openssl_user_macros.pod" => [ "doc/man7/openssl_user_macros.pod.in" ], + "exporters/OpenSSLConfig.cmake" => [ + "installdata.pm" + ], + "exporters/OpenSSLConfigVersion.cmake" => [ + "exporters/OpenSSLConfig.cmake", + "installdata.pm" + ], + "exporters/libcrypto.pc" => [ + "installdata.pm" + ], + "exporters/libssl.pc" => [ + "installdata.pm" + ], + "exporters/openssl.pc" => [ + "exporters/libcrypto.pc", + "exporters/libssl.pc", + "installdata.pm" + ], + "fuzz/acert-test" => [ + "libcrypto" + ], "fuzz/asn1-test" => [ "libcrypto", "libssl" @@ -6985,17 +7960,85 @@ our %unified_info = ( "fuzz/ct-test" => [ "libcrypto" ], + "fuzz/decoder-test" => [ + "libcrypto" + ], + "fuzz/dtlsclient-test" => [ + "libcrypto", + "libssl" + ], + "fuzz/dtlsserver-test" => [ + "libcrypto", + "libssl" + ], + "fuzz/hashtable-test" => [ + "libcrypto.a" + ], + "fuzz/ml-dsa-test" => [ + "libcrypto.a" + ], + "fuzz/ml-kem-test" => [ + "libcrypto.a" + ], + "fuzz/pem-test" => [ + "libcrypto.a" + ], + "fuzz/provider-test" => [ + "libcrypto" + ], + "fuzz/punycode-test" => [ + "libcrypto.a" + ], + "fuzz/quic-client-test" => [ + "libcrypto.a", + "libssl.a" + ], + "fuzz/quic-lcidm-test" => [ + "libcrypto.a", + "libssl.a" + ], + "fuzz/quic-rcidm-test" => [ + "libcrypto.a", + "libssl.a" + ], + "fuzz/quic-server-test" => [ + "libcrypto.a", + "libssl.a" + ], + "fuzz/quic-srtm-test" => [ + "libcrypto.a", + "libssl.a" + ], "fuzz/server-test" => [ "libcrypto", "libssl" ], + "fuzz/slh-dsa-test" => [ + "libcrypto.a" + ], + "fuzz/smime-test" => [ + "libcrypto", + "libssl" + ], + "fuzz/v3name-test" => [ + "libcrypto.a" + ], "fuzz/x509-test" => [ "libcrypto" ], + "include/internal/param_names.h" => [ + "util/perl|OpenSSL/paramnames.pm" + ], + "include/openssl/core_names.h" => [ + "util/perl|OpenSSL/paramnames.pm" + ], "libcrypto.ld" => [ "configdata.pm", "util/perl/OpenSSL/Ordinals.pm" ], + "libcrypto.pc" => [ + "builddata.pm" + ], "libssl" => [ "libcrypto" ], @@ -7003,6 +8046,14 @@ our %unified_info = ( "configdata.pm", "util/perl/OpenSSL/Ordinals.pm" ], + "libssl.pc" => [ + "builddata.pm" + ], + "openssl.pc" => [ + "builddata.pm", + "libcrypto.pc", + "libssl.pc" + ], "providers/common/der/der_digests_gen.c" => [ "providers/common/der/DIGESTS.asn1", "providers/common/der/NIST.asn1", @@ -7020,11 +8071,19 @@ our %unified_info = ( "providers/common/der/ECX.asn1", "providers/common/der/oids_to_c.pm" ], + "providers/common/der/der_ml_dsa_gen.c" => [ + "providers/common/der/ML_DSA.asn1", + "providers/common/der/oids_to_c.pm" + ], "providers/common/der/der_rsa_gen.c" => [ "providers/common/der/NIST.asn1", "providers/common/der/RSA.asn1", "providers/common/der/oids_to_c.pm" ], + "providers/common/der/der_slh_dsa_gen.c" => [ + "providers/common/der/SLH_DSA.asn1", + "providers/common/der/oids_to_c.pm" + ], "providers/common/der/der_sm2_gen.c" => [ "providers/common/der/SM2.asn1", "providers/common/der/oids_to_c.pm" @@ -7064,6 +8123,12 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ecx_key.o" => [ "providers/common/include/prov/der_ecx.h" ], + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o" => [ + "providers/common/include/prov/der_ml_dsa.h" + ], + "providers/common/der/libcommon-lib-der_ml_dsa_key.o" => [ + "providers/common/include/prov/der_ml_dsa.h" + ], "providers/common/der/libcommon-lib-der_rsa_gen.o" => [ "providers/common/include/prov/der_rsa.h" ], @@ -7071,6 +8136,12 @@ our %unified_info = ( "providers/common/include/prov/der_digests.h", "providers/common/include/prov/der_rsa.h" ], + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o" => [ + "providers/common/include/prov/der_slh_dsa.h" + ], + "providers/common/der/libcommon-lib-der_slh_dsa_key.o" => [ + "providers/common/include/prov/der_slh_dsa.h" + ], "providers/common/der/libcommon-lib-der_wrap_gen.o" => [ "providers/common/include/prov/der_wrap.h" ], @@ -7110,11 +8181,19 @@ our %unified_info = ( "providers/common/der/ECX.asn1", "providers/common/der/oids_to_c.pm" ], + "providers/common/include/prov/der_ml_dsa.h" => [ + "providers/common/der/ML_DSA.asn1", + "providers/common/der/oids_to_c.pm" + ], "providers/common/include/prov/der_rsa.h" => [ "providers/common/der/NIST.asn1", "providers/common/der/RSA.asn1", "providers/common/der/oids_to_c.pm" ], + "providers/common/include/prov/der_slh_dsa.h" => [ + "providers/common/der/SLH_DSA.asn1", + "providers/common/der/oids_to_c.pm" + ], "providers/common/include/prov/der_sm2.h" => [ "providers/common/der/SM2.asn1", "providers/common/der/oids_to_c.pm" @@ -7147,9 +8226,15 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-eddsa_sig.o" => [ "providers/common/include/prov/der_ecx.h" ], + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o" => [ + "providers/common/include/prov/der_ml_dsa.h" + ], "providers/implementations/signature/libdefault-lib-rsa_sig.o" => [ "providers/common/include/prov/der_rsa.h" ], + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o" => [ + "providers/common/include/prov/der_slh_dsa.h" + ], "providers/implementations/signature/libdefault-lib-sm2_sig.o" => [ "providers/common/include/prov/der_sm2.h" ], @@ -7162,9 +8247,15 @@ our %unified_info = ( "providers/implementations/signature/libfips-lib-eddsa_sig.o" => [ "providers/common/include/prov/der_ecx.h" ], + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o" => [ + "providers/common/include/prov/der_ml_dsa.h" + ], "providers/implementations/signature/libfips-lib-rsa_sig.o" => [ "providers/common/include/prov/der_rsa.h" ], + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o" => [ + "providers/common/include/prov/der_slh_dsa.h" + ], "providers/legacy" => [ "libcrypto", "providers/liblegacy.a" @@ -7242,6 +8333,14 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/bio_addr_test" => [ + "libcrypto", + "test/libtestutil.a" + ], + "test/bio_base64_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/bio_callback_test" => [ "libcrypto", "test/libtestutil.a" @@ -7250,6 +8349,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/bio_dgram_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/bio_enc_test" => [ "libcrypto", "test/libtestutil.a" @@ -7258,6 +8361,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/bio_meth_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/bio_prefix_text" => [ "libcrypto", "test/libtestutil.a" @@ -7270,6 +8377,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/bio_tfo_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/bioprinttest" => [ "libcrypto", "test/libtestutil.a" @@ -7282,6 +8393,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/build_wincrypt_test" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_aes" => [ "libcrypto", "libssl" @@ -7302,6 +8417,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_byteorder" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_camellia" => [ "libcrypto", "libssl" @@ -7334,10 +8453,6 @@ our %unified_info = ( "libcrypto", "libssl" ], - "test/buildtest_c_core_names" => [ - "libcrypto", - "libssl" - ], "test/buildtest_c_core_object" => [ "libcrypto", "libssl" @@ -7370,6 +8485,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_e_ostime" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_ebcdic" => [ "libcrypto", "libssl" @@ -7406,6 +8525,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_hpke" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_http" => [ "libcrypto", "libssl" @@ -7414,6 +8537,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_indicator" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_kdf" => [ "libcrypto", "libssl" @@ -7434,6 +8561,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_ml_kem" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_modes" => [ "libcrypto", "libssl" @@ -7474,6 +8605,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_quic" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_rand" => [ "libcrypto", "libssl" @@ -7530,6 +8665,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_thread" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_tls1" => [ "libcrypto", "libssl" @@ -7550,10 +8689,23 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/byteorder_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], + "test/ca_internals_test" => [ + "libssl", + "test/libtestutil.a" + ], "test/casttest" => [ "libcrypto", "test/libtestutil.a" ], + "test/cert_comp_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], "test/chacha_internal_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -7667,6 +8819,10 @@ our %unified_info = ( "libssl", "test/libtestutil.a" ], + "test/decoder_propq_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/defltfips_test" => [ "libcrypto", "test/libtestutil.a" @@ -7723,6 +8879,8 @@ our %unified_info = ( ], "test/endecode_test" => [ "libcrypto.a", + "providers/libcommon.a", + "providers/liblegacy.a", "test/libtestutil.a" ], "test/endecoder_legacy_test" => [ @@ -7766,6 +8924,10 @@ our %unified_info = ( "test/evp_pkey_ctx_new_from_name" => [ "libcrypto" ], + "test/evp_pkey_dhkem_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/evp_pkey_dparams_test" => [ "libcrypto", "test/libtestutil.a" @@ -7774,10 +8936,18 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/evp_skey_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/evp_test" => [ "libcrypto", "test/libtestutil.a" ], + "test/evp_xof_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/exdatatest" => [ "libcrypto", "test/libtestutil.a" @@ -7816,6 +8986,10 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/hpke_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/http_test" => [ "libcrypto", "test/libtestutil.a" @@ -7828,17 +9002,25 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/json_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], "test/keymgmt_internal_test" => [ "libcrypto.a", "test/libtestutil.a" ], "test/lhash_test" => [ - "libcrypto", + "libcrypto.a", "test/libtestutil.a" ], "test/libtestutil.a" => [ "libcrypto" ], + "test/list_test" => [ + "test/libtestutil.a" + ], "test/localetest" => [ "libcrypto", "test/libtestutil.a" @@ -7851,10 +9033,26 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/membio_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/memleaktest" => [ "libcrypto", "test/libtestutil.a" ], + "test/ml_dsa_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], + "test/ml_kem_evp_extra_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], + "test/ml_kem_internal_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/modes_internal_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -7879,6 +9077,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/pairwise_fail_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/param_build_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -7911,6 +9113,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/pkcs12_api_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/pkcs12_format_test" => [ "libcrypto", "test/libtestutil.a" @@ -7931,6 +9137,11 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/priority_queue_test" => [ + "libcrypto", + "libssl.a", + "test/libtestutil.a" + ], "test/property_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -7943,6 +9154,10 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/provider_default_search_path_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/provider_fallback_test" => [ "libcrypto", "test/libtestutil.a" @@ -7967,12 +9182,122 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/quic_ackm_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_cc_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_cfq_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_client_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_fc_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_fifd_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_lcidm_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_multistream_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_newcid_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_qlog_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_radix_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_rcidm_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_record_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_srt_gen_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_srtm_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_stream_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_tserver_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_txp_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_txpim_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_wire_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quicapitest" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quicfaultstest" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], "test/rand_status_test" => [ "libcrypto", "test/libtestutil.a" ], "test/rand_test" => [ - "libcrypto", + "libcrypto.a", "test/libtestutil.a" ], "test/rc2test" => [ @@ -7987,7 +9312,7 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], - "test/rdrand_sanitytest" => [ + "test/rdcpu_sanitytest" => [ "libcrypto.a", "test/libtestutil.a" ], @@ -7996,6 +9321,11 @@ our %unified_info = ( "libssl", "test/libtestutil.a" ], + "test/rpktest" => [ + "libcrypto", + "libssl", + "test/libtestutil.a" + ], "test/rsa_mp_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -8008,10 +9338,18 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], - "test/sanitytest" => [ + "test/rsa_x931_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], + "test/safe_math_test" => [ "libcrypto", "test/libtestutil.a" ], + "test/sanitytest" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/secmemtest" => [ "libcrypto", "test/libtestutil.a" @@ -8029,6 +9367,10 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/slh_dsa_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/sm2_internal_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -8058,6 +9400,11 @@ our %unified_info = ( "libssl", "test/libtestutil.a" ], + "test/ssl_handshake_rtt_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], "test/ssl_old_test" => [ "libcrypto.a", "libssl.a", @@ -8074,8 +9421,8 @@ our %unified_info = ( "test/libtestutil.a" ], "test/sslapitest" => [ - "libcrypto", - "libssl", + "libcrypto.a", + "libssl.a", "test/libtestutil.a" ], "test/sslbuffertest" => [ @@ -8092,6 +9439,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/strtoultest" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/sysdefaulttest" => [ "libcrypto", "libssl", @@ -8101,8 +9452,12 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/threadpool_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/threadstest" => [ - "libcrypto", + "libcrypto.a", "test/libtestutil.a" ], "test/threadstest_fips" => [ @@ -8113,6 +9468,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/time_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/tls13ccstest" => [ "libcrypto", "libssl", @@ -8123,6 +9482,11 @@ our %unified_info = ( "libssl.a", "test/libtestutil.a" ], + "test/tls13groupselection_test" => [ + "libcrypto", + "libssl", + "test/libtestutil.a" + ], "test/trace_api_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -8160,6 +9524,10 @@ our %unified_info = ( "libssl.a", "test/libtestutil.a" ], + "test/x509_acert_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/x509_check_cert_pkey_test" => [ "libcrypto", "test/libtestutil.a" @@ -8172,6 +9540,18 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/x509_load_cert_file_test" => [ + "libcrypto", + "test/libtestutil.a" + ], + "test/x509_req_test" => [ + "libcrypto", + "test/libtestutil.a" + ], + "test/x509_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/x509_time_test" => [ "libcrypto", "test/libtestutil.a" @@ -8186,9 +9566,13 @@ our %unified_info = ( }, "dirinfo" => { "apps" => { + "deps" => [ + "apps/ca_internals_test-bin-ca.o" + ], "products" => { "bin" => [ - "apps/openssl" + "apps/openssl", + "test/ca_internals_test" ], "script" => [ "apps/CA.pl", @@ -8199,6 +9583,14 @@ our %unified_info = ( "apps/lib" => { "deps" => [ "apps/lib/openssl-bin-cmp_mock_srv.o", + "apps/lib/ca_internals_test-bin-app_libctx.o", + "apps/lib/ca_internals_test-bin-app_provider.o", + "apps/lib/ca_internals_test-bin-app_rand.o", + "apps/lib/ca_internals_test-bin-app_x509.o", + "apps/lib/ca_internals_test-bin-apps.o", + "apps/lib/ca_internals_test-bin-apps_ui.o", + "apps/lib/ca_internals_test-bin-engine.o", + "apps/lib/ca_internals_test-bin-fmt.o", "apps/lib/cmp_client_test-bin-cmp_mock_srv.o", "apps/lib/uitest-bin-apps_ui.o", "apps/lib/libapps-lib-app_libctx.o", @@ -8207,12 +9599,14 @@ our %unified_info = ( "apps/lib/libapps-lib-app_rand.o", "apps/lib/libapps-lib-app_x509.o", "apps/lib/libapps-lib-apps.o", + "apps/lib/libapps-lib-apps_opt_printf.o", "apps/lib/libapps-lib-apps_ui.o", "apps/lib/libapps-lib-columns.o", "apps/lib/libapps-lib-engine.o", "apps/lib/libapps-lib-engine_loader.o", "apps/lib/libapps-lib-fmt.o", "apps/lib/libapps-lib-http_server.o", + "apps/lib/libapps-lib-log.o", "apps/lib/libapps-lib-names.o", "apps/lib/libapps-lib-opt.o", "apps/lib/libapps-lib-s_cb.o", @@ -8223,6 +9617,7 @@ our %unified_info = ( "products" => { "bin" => [ "apps/openssl", + "test/ca_internals_test", "test/cmp_client_test", "test/uitest" ], @@ -8234,8 +9629,12 @@ our %unified_info = ( }, "crypto" => { "deps" => [ + "crypto/asn1_time_test-bin-ctype.o", + "crypto/ca_internals_test-bin-ctype.o", + "crypto/packettest-bin-quic_vlint.o", "crypto/libcrypto-lib-asn1_dsa.o", "crypto/libcrypto-lib-bsearch.o", + "crypto/libcrypto-lib-comp_methods.o", "crypto/libcrypto-lib-context.o", "crypto/libcrypto-lib-core_algorithm.o", "crypto/libcrypto-lib-core_fetch.o", @@ -8245,10 +9644,13 @@ our %unified_info = ( "crypto/libcrypto-lib-cryptlib.o", "crypto/libcrypto-lib-ctype.o", "crypto/libcrypto-lib-cversion.o", + "crypto/libcrypto-lib-defaults.o", "crypto/libcrypto-lib-der_writer.o", + "crypto/libcrypto-lib-deterministic_nonce.o", "crypto/libcrypto-lib-ebcdic.o", "crypto/libcrypto-lib-ex_data.o", "crypto/libcrypto-lib-getenv.o", + "crypto/libcrypto-lib-indicator_core.o", "crypto/libcrypto-lib-info.o", "crypto/libcrypto-lib-init.o", "crypto/libcrypto-lib-initthread.o", @@ -8265,6 +9667,7 @@ our %unified_info = ( "crypto/libcrypto-lib-params.o", "crypto/libcrypto-lib-params_dup.o", "crypto/libcrypto-lib-params_from_text.o", + "crypto/libcrypto-lib-params_idx.o", "crypto/libcrypto-lib-passphrase.o", "crypto/libcrypto-lib-provider.o", "crypto/libcrypto-lib-provider_child.o", @@ -8272,12 +9675,16 @@ our %unified_info = ( "crypto/libcrypto-lib-provider_core.o", "crypto/libcrypto-lib-provider_predefined.o", "crypto/libcrypto-lib-punycode.o", + "crypto/libcrypto-lib-quic_vlint.o", "crypto/libcrypto-lib-self_test_core.o", + "crypto/libcrypto-lib-sleep.o", "crypto/libcrypto-lib-sparse_array.o", + "crypto/libcrypto-lib-ssl_err.o", "crypto/libcrypto-lib-threads_lib.o", "crypto/libcrypto-lib-threads_none.o", "crypto/libcrypto-lib-threads_pthread.o", "crypto/libcrypto-lib-threads_win.o", + "crypto/libcrypto-lib-time.o", "crypto/libcrypto-lib-trace.o", "crypto/libcrypto-lib-uid.o", "crypto/libcrypto-lib-x86_64cpuid.o", @@ -8300,6 +9707,7 @@ our %unified_info = ( "crypto/libfips-lib-params.o", "crypto/libfips-lib-params_dup.o", "crypto/libfips-lib-params_from_text.o", + "crypto/libfips-lib-params_idx.o", "crypto/libfips-lib-provider_core.o", "crypto/libfips-lib-provider_predefined.o", "crypto/libfips-lib-self_test_core.o", @@ -8308,9 +9716,15 @@ our %unified_info = ( "crypto/libfips-lib-threads_none.o", "crypto/libfips-lib-threads_pthread.o", "crypto/libfips-lib-threads_win.o", + "crypto/libfips-lib-time.o", "crypto/libfips-lib-x86_64cpuid.o" ], "products" => { + "bin" => [ + "test/asn1_time_test", + "test/ca_internals_test", + "test/packettest" + ], "lib" => [ "libcrypto", "providers/libfips.a" @@ -8330,6 +9744,7 @@ our %unified_info = ( "crypto/aes/libcrypto-lib-aesni-sha1-x86_64.o", "crypto/aes/libcrypto-lib-aesni-sha256-x86_64.o", "crypto/aes/libcrypto-lib-aesni-x86_64.o", + "crypto/aes/libcrypto-lib-aesni-xts-avx512.o", "crypto/aes/libcrypto-lib-bsaes-x86_64.o", "crypto/aes/libcrypto-lib-vpaes-x86_64.o", "crypto/aes/libfips-lib-aes-x86_64.o", @@ -8339,6 +9754,7 @@ our %unified_info = ( "crypto/aes/libfips-lib-aesni-sha1-x86_64.o", "crypto/aes/libfips-lib-aesni-sha256-x86_64.o", "crypto/aes/libfips-lib-aesni-x86_64.o", + "crypto/aes/libfips-lib-aesni-xts-avx512.o", "crypto/aes/libfips-lib-bsaes-x86_64.o", "crypto/aes/libfips-lib-vpaes-x86_64.o" ], @@ -8361,6 +9777,8 @@ our %unified_info = ( }, "crypto/asn1" => { "deps" => [ + "crypto/asn1/asn1_time_test-bin-a_time.o", + "crypto/asn1/ca_internals_test-bin-a_time.o", "crypto/asn1/libcrypto-lib-a_bitstr.o", "crypto/asn1/libcrypto-lib-a_d2i_fp.o", "crypto/asn1/libcrypto-lib-a_digest.o", @@ -8427,6 +9845,10 @@ our %unified_info = ( "crypto/asn1/libcrypto-lib-x_val.o" ], "products" => { + "bin" => [ + "test/asn1_time_test", + "test/ca_internals_test" + ], "lib" => [ "libcrypto" ] @@ -8492,6 +9914,7 @@ our %unified_info = ( "crypto/bio/libcrypto-lib-bss_conn.o", "crypto/bio/libcrypto-lib-bss_core.o", "crypto/bio/libcrypto-lib-bss_dgram.o", + "crypto/bio/libcrypto-lib-bss_dgram_pair.o", "crypto/bio/libcrypto-lib-bss_fd.o", "crypto/bio/libcrypto-lib-bss_file.o", "crypto/bio/libcrypto-lib-bss_log.o", @@ -8540,8 +9963,13 @@ our %unified_info = ( "crypto/bn/libcrypto-lib-bn_srp.o", "crypto/bn/libcrypto-lib-bn_word.o", "crypto/bn/libcrypto-lib-bn_x931p.o", + "crypto/bn/libcrypto-lib-rsaz-2k-avx512.o", + "crypto/bn/libcrypto-lib-rsaz-2k-avxifma.o", + "crypto/bn/libcrypto-lib-rsaz-3k-avx512.o", + "crypto/bn/libcrypto-lib-rsaz-3k-avxifma.o", + "crypto/bn/libcrypto-lib-rsaz-4k-avx512.o", + "crypto/bn/libcrypto-lib-rsaz-4k-avxifma.o", "crypto/bn/libcrypto-lib-rsaz-avx2.o", - "crypto/bn/libcrypto-lib-rsaz-avx512.o", "crypto/bn/libcrypto-lib-rsaz-x86_64.o", "crypto/bn/libcrypto-lib-rsaz_exp.o", "crypto/bn/libcrypto-lib-rsaz_exp_x2.o", @@ -8575,8 +10003,13 @@ our %unified_info = ( "crypto/bn/libfips-lib-bn_sqr.o", "crypto/bn/libfips-lib-bn_sqrt.o", "crypto/bn/libfips-lib-bn_word.o", + "crypto/bn/libfips-lib-rsaz-2k-avx512.o", + "crypto/bn/libfips-lib-rsaz-2k-avxifma.o", + "crypto/bn/libfips-lib-rsaz-3k-avx512.o", + "crypto/bn/libfips-lib-rsaz-3k-avxifma.o", + "crypto/bn/libfips-lib-rsaz-4k-avx512.o", + "crypto/bn/libfips-lib-rsaz-4k-avxifma.o", "crypto/bn/libfips-lib-rsaz-avx2.o", - "crypto/bn/libfips-lib-rsaz-avx512.o", "crypto/bn/libfips-lib-rsaz-x86_64.o", "crypto/bn/libfips-lib-rsaz_exp.o", "crypto/bn/libfips-lib-rsaz_exp_x2.o", @@ -8673,6 +10106,7 @@ our %unified_info = ( "crypto/cmp/libcrypto-lib-cmp_client.o", "crypto/cmp/libcrypto-lib-cmp_ctx.o", "crypto/cmp/libcrypto-lib-cmp_err.o", + "crypto/cmp/libcrypto-lib-cmp_genm.o", "crypto/cmp/libcrypto-lib-cmp_hdr.o", "crypto/cmp/libcrypto-lib-cmp_http.o", "crypto/cmp/libcrypto-lib-cmp_msg.o", @@ -9046,7 +10480,9 @@ our %unified_info = ( "crypto/err/libcrypto-lib-err_all.o", "crypto/err/libcrypto-lib-err_all_legacy.o", "crypto/err/libcrypto-lib-err_blocks.o", - "crypto/err/libcrypto-lib-err_prn.o" + "crypto/err/libcrypto-lib-err_mark.o", + "crypto/err/libcrypto-lib-err_prn.o", + "crypto/err/libcrypto-lib-err_save.o" ], "products" => { "lib" => [ @@ -9147,7 +10583,9 @@ our %unified_info = ( "crypto/evp/libcrypto-lib-pmeth_check.o", "crypto/evp/libcrypto-lib-pmeth_gn.o", "crypto/evp/libcrypto-lib-pmeth_lib.o", + "crypto/evp/libcrypto-lib-s_lib.o", "crypto/evp/libcrypto-lib-signature.o", + "crypto/evp/libcrypto-lib-skeymgmt_meth.o", "crypto/evp/libfips-lib-asymcipher.o", "crypto/evp/libfips-lib-dh_support.o", "crypto/evp/libfips-lib-digest.o", @@ -9163,14 +10601,15 @@ our %unified_info = ( "crypto/evp/libfips-lib-kem.o", "crypto/evp/libfips-lib-keymgmt_lib.o", "crypto/evp/libfips-lib-keymgmt_meth.o", - "crypto/evp/libfips-lib-m_sigver.o", "crypto/evp/libfips-lib-mac_lib.o", "crypto/evp/libfips-lib-mac_meth.o", "crypto/evp/libfips-lib-p_lib.o", "crypto/evp/libfips-lib-pmeth_check.o", "crypto/evp/libfips-lib-pmeth_gn.o", "crypto/evp/libfips-lib-pmeth_lib.o", - "crypto/evp/libfips-lib-signature.o" + "crypto/evp/libfips-lib-s_lib.o", + "crypto/evp/libfips-lib-signature.o", + "crypto/evp/libfips-lib-skeymgmt_meth.o" ], "products" => { "lib" => [ @@ -9203,6 +10642,20 @@ our %unified_info = ( ] } }, + "crypto/hashtable" => { + "deps" => [ + "crypto/hashtable/libcrypto-lib-hashfunc.o", + "crypto/hashtable/libcrypto-lib-hashtable.o", + "crypto/hashtable/libfips-lib-hashfunc.o", + "crypto/hashtable/libfips-lib-hashtable.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, "crypto/hmac" => { "deps" => [ "crypto/hmac/libcrypto-lib-hmac.o", @@ -9215,6 +10668,17 @@ our %unified_info = ( ] } }, + "crypto/hpke" => { + "deps" => [ + "crypto/hpke/libcrypto-lib-hpke.o", + "crypto/hpke/libcrypto-lib-hpke_util.o" + ], + "products" => { + "lib" => [ + "libcrypto" + ] + } + }, "crypto/http" => { "deps" => [ "crypto/http/libcrypto-lib-http_client.o", @@ -9299,8 +10763,47 @@ our %unified_info = ( ] } }, + "crypto/ml_dsa" => { + "deps" => [ + "crypto/ml_dsa/libcrypto-lib-ml_dsa_encoders.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key_compress.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_matrix.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_ntt.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_params.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sample.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sign.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_encoders.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_key.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_key_compress.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_matrix.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_ntt.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_params.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_sample.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_sign.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, + "crypto/ml_kem" => { + "deps" => [ + "crypto/ml_kem/libcrypto-lib-ml_kem.o", + "crypto/ml_kem/libfips-lib-ml_kem.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, "crypto/modes" => { "deps" => [ + "crypto/modes/libcrypto-lib-aes-gcm-avx512.o", "crypto/modes/libcrypto-lib-aesni-gcm-x86_64.o", "crypto/modes/libcrypto-lib-cbc128.o", "crypto/modes/libcrypto-lib-ccm128.o", @@ -9314,6 +10817,8 @@ our %unified_info = ( "crypto/modes/libcrypto-lib-siv128.o", "crypto/modes/libcrypto-lib-wrap128.o", "crypto/modes/libcrypto-lib-xts128.o", + "crypto/modes/libcrypto-lib-xts128gb.o", + "crypto/modes/libfips-lib-aes-gcm-avx512.o", "crypto/modes/libfips-lib-aesni-gcm-x86_64.o", "crypto/modes/libfips-lib-cbc128.o", "crypto/modes/libfips-lib-ccm128.o", @@ -9323,7 +10828,8 @@ our %unified_info = ( "crypto/modes/libfips-lib-ghash-x86_64.o", "crypto/modes/libfips-lib-ofb128.o", "crypto/modes/libfips-lib-wrap128.o", - "crypto/modes/libfips-lib-xts128.o" + "crypto/modes/libfips-lib-xts128.o", + "crypto/modes/libfips-lib-xts128gb.o" ], "products" => { "lib" => [ @@ -9467,6 +10973,7 @@ our %unified_info = ( "crypto/rand/libcrypto-lib-rand_lib.o", "crypto/rand/libcrypto-lib-rand_meth.o", "crypto/rand/libcrypto-lib-rand_pool.o", + "crypto/rand/libcrypto-lib-rand_uniform.o", "crypto/rand/libcrypto-lib-randfile.o", "crypto/rand/libfips-lib-rand_lib.o" ], @@ -9621,6 +11128,36 @@ our %unified_info = ( ] } }, + "crypto/slh_dsa" => { + "deps" => [ + "crypto/slh_dsa/libcrypto-lib-slh_adrs.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa_hash_ctx.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa_key.o", + "crypto/slh_dsa/libcrypto-lib-slh_fors.o", + "crypto/slh_dsa/libcrypto-lib-slh_hash.o", + "crypto/slh_dsa/libcrypto-lib-slh_hypertree.o", + "crypto/slh_dsa/libcrypto-lib-slh_params.o", + "crypto/slh_dsa/libcrypto-lib-slh_wots.o", + "crypto/slh_dsa/libcrypto-lib-slh_xmss.o", + "crypto/slh_dsa/libfips-lib-slh_adrs.o", + "crypto/slh_dsa/libfips-lib-slh_dsa.o", + "crypto/slh_dsa/libfips-lib-slh_dsa_hash_ctx.o", + "crypto/slh_dsa/libfips-lib-slh_dsa_key.o", + "crypto/slh_dsa/libfips-lib-slh_fors.o", + "crypto/slh_dsa/libfips-lib-slh_hash.o", + "crypto/slh_dsa/libfips-lib-slh_hypertree.o", + "crypto/slh_dsa/libfips-lib-slh_params.o", + "crypto/slh_dsa/libfips-lib-slh_wots.o", + "crypto/slh_dsa/libfips-lib-slh_xmss.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, "crypto/sm2" => { "deps" => [ "crypto/sm2/libcrypto-lib-sm2_crypt.o", @@ -9694,6 +11231,38 @@ our %unified_info = ( ] } }, + "crypto/thread" => { + "deps" => [ + "crypto/thread/libcrypto-lib-api.o", + "crypto/thread/libcrypto-lib-arch.o", + "crypto/thread/libcrypto-lib-internal.o", + "crypto/thread/libfips-lib-api.o", + "crypto/thread/libfips-lib-arch.o", + "crypto/thread/libfips-lib-internal.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, + "crypto/thread/arch" => { + "deps" => [ + "crypto/thread/arch/libcrypto-lib-thread_none.o", + "crypto/thread/arch/libcrypto-lib-thread_posix.o", + "crypto/thread/arch/libcrypto-lib-thread_win.o", + "crypto/thread/arch/libfips-lib-thread_none.o", + "crypto/thread/arch/libfips-lib-thread_posix.o", + "crypto/thread/arch/libfips-lib-thread_win.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, "crypto/ts" => { "deps" => [ "crypto/ts/libcrypto-lib-ts_asn1.o", @@ -9760,14 +11329,22 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-pcy_map.o", "crypto/x509/libcrypto-lib-pcy_node.o", "crypto/x509/libcrypto-lib-pcy_tree.o", + "crypto/x509/libcrypto-lib-t_acert.o", "crypto/x509/libcrypto-lib-t_crl.o", "crypto/x509/libcrypto-lib-t_req.o", "crypto/x509/libcrypto-lib-t_x509.o", + "crypto/x509/libcrypto-lib-v3_aaa.o", + "crypto/x509/libcrypto-lib-v3_ac_tgt.o", "crypto/x509/libcrypto-lib-v3_addr.o", "crypto/x509/libcrypto-lib-v3_admis.o", "crypto/x509/libcrypto-lib-v3_akeya.o", "crypto/x509/libcrypto-lib-v3_akid.o", "crypto/x509/libcrypto-lib-v3_asid.o", + "crypto/x509/libcrypto-lib-v3_attrdesc.o", + "crypto/x509/libcrypto-lib-v3_attrmap.o", + "crypto/x509/libcrypto-lib-v3_audit_id.o", + "crypto/x509/libcrypto-lib-v3_authattid.o", + "crypto/x509/libcrypto-lib-v3_battcons.o", "crypto/x509/libcrypto-lib-v3_bcons.o", "crypto/x509/libcrypto-lib-v3_bitst.o", "crypto/x509/libcrypto-lib-v3_conf.o", @@ -9776,12 +11353,17 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_enum.o", "crypto/x509/libcrypto-lib-v3_extku.o", "crypto/x509/libcrypto-lib-v3_genn.o", + "crypto/x509/libcrypto-lib-v3_group_ac.o", "crypto/x509/libcrypto-lib-v3_ia5.o", + "crypto/x509/libcrypto-lib-v3_ind_iss.o", "crypto/x509/libcrypto-lib-v3_info.o", "crypto/x509/libcrypto-lib-v3_int.o", + "crypto/x509/libcrypto-lib-v3_iobo.o", "crypto/x509/libcrypto-lib-v3_ist.o", "crypto/x509/libcrypto-lib-v3_lib.o", "crypto/x509/libcrypto-lib-v3_ncons.o", + "crypto/x509/libcrypto-lib-v3_no_ass.o", + "crypto/x509/libcrypto-lib-v3_no_rev_avail.o", "crypto/x509/libcrypto-lib-v3_pci.o", "crypto/x509/libcrypto-lib-v3_pcia.o", "crypto/x509/libcrypto-lib-v3_pcons.o", @@ -9789,13 +11371,20 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_pmaps.o", "crypto/x509/libcrypto-lib-v3_prn.o", "crypto/x509/libcrypto-lib-v3_purp.o", + "crypto/x509/libcrypto-lib-v3_rolespec.o", "crypto/x509/libcrypto-lib-v3_san.o", + "crypto/x509/libcrypto-lib-v3_sda.o", + "crypto/x509/libcrypto-lib-v3_single_use.o", "crypto/x509/libcrypto-lib-v3_skid.o", + "crypto/x509/libcrypto-lib-v3_soa_id.o", "crypto/x509/libcrypto-lib-v3_sxnet.o", + "crypto/x509/libcrypto-lib-v3_timespec.o", "crypto/x509/libcrypto-lib-v3_tlsf.o", + "crypto/x509/libcrypto-lib-v3_usernotice.o", "crypto/x509/libcrypto-lib-v3_utf8.o", "crypto/x509/libcrypto-lib-v3_utl.o", "crypto/x509/libcrypto-lib-v3err.o", + "crypto/x509/libcrypto-lib-x509_acert.o", "crypto/x509/libcrypto-lib-x509_att.o", "crypto/x509/libcrypto-lib-x509_cmp.o", "crypto/x509/libcrypto-lib-x509_d2.o", @@ -9813,6 +11402,7 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x509_v3.o", "crypto/x509/libcrypto-lib-x509_vfy.o", "crypto/x509/libcrypto-lib-x509_vpm.o", + "crypto/x509/libcrypto-lib-x509aset.o", "crypto/x509/libcrypto-lib-x509cset.o", "crypto/x509/libcrypto-lib-x509name.o", "crypto/x509/libcrypto-lib-x509rset.o", @@ -9822,6 +11412,7 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x_attrib.o", "crypto/x509/libcrypto-lib-x_crl.o", "crypto/x509/libcrypto-lib-x_exten.o", + "crypto/x509/libcrypto-lib-x_ietfatt.o", "crypto/x509/libcrypto-lib-x_name.o", "crypto/x509/libcrypto-lib-x_pubkey.o", "crypto/x509/libcrypto-lib-x_req.o", @@ -9850,6 +11441,7 @@ our %unified_info = ( "fuzz" => { "products" => { "bin" => [ + "fuzz/acert-test", "fuzz/asn1-test", "fuzz/asn1parse-test", "fuzz/bignum-test", @@ -9860,13 +11452,31 @@ our %unified_info = ( "fuzz/conf-test", "fuzz/crl-test", "fuzz/ct-test", + "fuzz/decoder-test", + "fuzz/dtlsclient-test", + "fuzz/dtlsserver-test", + "fuzz/hashtable-test", + "fuzz/ml-dsa-test", + "fuzz/ml-kem-test", + "fuzz/pem-test", + "fuzz/provider-test", + "fuzz/punycode-test", + "fuzz/quic-client-test", + "fuzz/quic-lcidm-test", + "fuzz/quic-rcidm-test", + "fuzz/quic-server-test", + "fuzz/quic-srtm-test", "fuzz/server-test", + "fuzz/slh-dsa-test", + "fuzz/smime-test", + "fuzz/v3name-test", "fuzz/x509-test" ] } }, "providers" => { "deps" => [ + "providers/endecode_test-bin-legacyprov.o", "providers/evp_extra_test-bin-legacyprov.o", "providers/libcrypto-lib-baseprov.o", "providers/libcrypto-lib-defltprov.o", @@ -9876,6 +11486,7 @@ our %unified_info = ( ], "products" => { "bin" => [ + "test/endecode_test", "test/evp_extra_test" ], "dso" => [ @@ -9927,8 +11538,12 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ec_sig.o", "providers/common/der/libcommon-lib-der_ecx_gen.o", "providers/common/der/libcommon-lib-der_ecx_key.o", + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o", + "providers/common/der/libcommon-lib-der_ml_dsa_key.o", "providers/common/der/libcommon-lib-der_rsa_gen.o", "providers/common/der/libcommon-lib-der_rsa_key.o", + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o", + "providers/common/der/libcommon-lib-der_slh_dsa_key.o", "providers/common/der/libcommon-lib-der_wrap_gen.o", "providers/common/der/libdefault-lib-der_rsa_sig.o", "providers/common/der/libdefault-lib-der_sm2_gen.o", @@ -9947,6 +11562,7 @@ our %unified_info = ( "providers/fips" => { "deps" => [ "providers/fips/fips-dso-fips_entry.o", + "providers/fips/libfips-lib-fipsindicator.o", "providers/fips/libfips-lib-fipsprov.o", "providers/fips/libfips-lib-self_test.o", "providers/fips/libfips-lib-self_test_kats.o" @@ -9990,6 +11606,9 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_aes_ccm_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_polyval.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_ocb.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_ocb_hw.o", @@ -10014,7 +11633,13 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_cts.o", "providers/implementations/ciphers/libdefault-lib-cipher_null.o", "providers/implementations/ciphers/libdefault-lib-cipher_sm4.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_sm4_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes_common.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes_default.o", @@ -10111,7 +11736,10 @@ our %unified_info = ( "providers/implementations/encode_decode/libdefault-lib-encode_key2blob.o", "providers/implementations/encode_decode/libdefault-lib-encode_key2ms.o", "providers/implementations/encode_decode/libdefault-lib-encode_key2text.o", - "providers/implementations/encode_decode/libdefault-lib-endecoder_common.o" + "providers/implementations/encode_decode/libdefault-lib-endecoder_common.o", + "providers/implementations/encode_decode/libdefault-lib-ml_common_codecs.o", + "providers/implementations/encode_decode/libdefault-lib-ml_dsa_codecs.o", + "providers/implementations/encode_decode/libdefault-lib-ml_kem_codecs.o" ], "products" => { "lib" => [ @@ -10139,7 +11767,9 @@ our %unified_info = ( }, "providers/implementations/kdfs" => { "deps" => [ + "providers/implementations/kdfs/libdefault-lib-argon2.o", "providers/implementations/kdfs/libdefault-lib-hkdf.o", + "providers/implementations/kdfs/libdefault-lib-hmacdrbg_kdf.o", "providers/implementations/kdfs/libdefault-lib-kbkdf.o", "providers/implementations/kdfs/libdefault-lib-krb5kdf.o", "providers/implementations/kdfs/libdefault-lib-pbkdf2.o", @@ -10158,7 +11788,8 @@ our %unified_info = ( "providers/implementations/kdfs/libfips-lib-sskdf.o", "providers/implementations/kdfs/libfips-lib-tls1_prf.o", "providers/implementations/kdfs/libfips-lib-x942kdf.o", - "providers/implementations/kdfs/liblegacy-lib-pbkdf1.o" + "providers/implementations/kdfs/liblegacy-lib-pbkdf1.o", + "providers/implementations/kdfs/liblegacy-lib-pvkkdf.o" ], "products" => { "lib" => [ @@ -10170,13 +11801,22 @@ our %unified_info = ( }, "providers/implementations/kem" => { "deps" => [ + "providers/implementations/kem/libdefault-lib-ec_kem.o", + "providers/implementations/kem/libdefault-lib-ecx_kem.o", + "providers/implementations/kem/libdefault-lib-kem_util.o", + "providers/implementations/kem/libdefault-lib-ml_kem_kem.o", + "providers/implementations/kem/libdefault-lib-mlx_kem.o", "providers/implementations/kem/libdefault-lib-rsa_kem.o", - "providers/implementations/kem/libfips-lib-rsa_kem.o" + "providers/implementations/kem/libfips-lib-ml_kem_kem.o", + "providers/implementations/kem/libfips-lib-mlx_kem.o", + "providers/implementations/kem/libfips-lib-rsa_kem.o", + "providers/implementations/kem/libtemplate-lib-template_kem.o" ], "products" => { "lib" => [ "providers/libdefault.a", - "providers/libfips.a" + "providers/libfips.a", + "providers/libtemplate.a" ] } }, @@ -10188,19 +11828,29 @@ our %unified_info = ( "providers/implementations/keymgmt/libdefault-lib-ecx_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-kdf_legacy_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-mac_legacy_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-ml_dsa_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-ml_kem_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-mlx_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-rsa_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-slh_dsa_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-dh_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-dsa_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-ec_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-ecx_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-kdf_legacy_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-mac_legacy_kmgmt.o", - "providers/implementations/keymgmt/libfips-lib-rsa_kmgmt.o" + "providers/implementations/keymgmt/libfips-lib-ml_dsa_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-ml_kem_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-mlx_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-rsa_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-slh_dsa_kmgmt.o", + "providers/implementations/keymgmt/libtemplate-lib-template_kmgmt.o" ], "products" => { "lib" => [ "providers/libdefault.a", - "providers/libfips.a" + "providers/libfips.a", + "providers/libtemplate.a" ] } }, @@ -10228,18 +11878,18 @@ our %unified_info = ( }, "providers/implementations/rands" => { "deps" => [ - "providers/implementations/rands/libdefault-lib-crngt.o", "providers/implementations/rands/libdefault-lib-drbg.o", "providers/implementations/rands/libdefault-lib-drbg_ctr.o", "providers/implementations/rands/libdefault-lib-drbg_hash.o", "providers/implementations/rands/libdefault-lib-drbg_hmac.o", "providers/implementations/rands/libdefault-lib-seed_src.o", + "providers/implementations/rands/libdefault-lib-seed_src_jitter.o", "providers/implementations/rands/libdefault-lib-test_rng.o", - "providers/implementations/rands/libfips-lib-crngt.o", "providers/implementations/rands/libfips-lib-drbg.o", "providers/implementations/rands/libfips-lib-drbg_ctr.o", "providers/implementations/rands/libfips-lib-drbg_hash.o", "providers/implementations/rands/libfips-lib-drbg_hmac.o", + "providers/implementations/rands/libfips-lib-fips_crng_test.o", "providers/implementations/rands/libfips-lib-test_rng.o" ], "products" => { @@ -10268,13 +11918,31 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-ecdsa_sig.o", "providers/implementations/signature/libdefault-lib-eddsa_sig.o", "providers/implementations/signature/libdefault-lib-mac_legacy_sig.o", + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o", "providers/implementations/signature/libdefault-lib-rsa_sig.o", + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o", "providers/implementations/signature/libdefault-lib-sm2_sig.o", "providers/implementations/signature/libfips-lib-dsa_sig.o", "providers/implementations/signature/libfips-lib-ecdsa_sig.o", "providers/implementations/signature/libfips-lib-eddsa_sig.o", "providers/implementations/signature/libfips-lib-mac_legacy_sig.o", - "providers/implementations/signature/libfips-lib-rsa_sig.o" + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o", + "providers/implementations/signature/libfips-lib-rsa_sig.o", + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o" + ], + "products" => { + "lib" => [ + "providers/libdefault.a", + "providers/libfips.a" + ] + } + }, + "providers/implementations/skeymgmt" => { + "deps" => [ + "providers/implementations/skeymgmt/libdefault-lib-aes_skmgmt.o", + "providers/implementations/skeymgmt/libdefault-lib-generic.o", + "providers/implementations/skeymgmt/libfips-lib-aes_skmgmt.o", + "providers/implementations/skeymgmt/libfips-lib-generic.o" ], "products" => { "lib" => [ @@ -10302,14 +11970,15 @@ our %unified_info = ( "ssl/libssl-lib-d1_srtp.o", "ssl/libssl-lib-methods.o", "ssl/libssl-lib-pqueue.o", + "ssl/libssl-lib-priority_queue.o", "ssl/libssl-lib-s3_enc.o", "ssl/libssl-lib-s3_lib.o", "ssl/libssl-lib-s3_msg.o", "ssl/libssl-lib-ssl_asn1.o", "ssl/libssl-lib-ssl_cert.o", + "ssl/libssl-lib-ssl_cert_comp.o", "ssl/libssl-lib-ssl_ciph.o", "ssl/libssl-lib-ssl_conf.o", - "ssl/libssl-lib-ssl_err.o", "ssl/libssl-lib-ssl_err_legacy.o", "ssl/libssl-lib-ssl_init.o", "ssl/libssl-lib-ssl_lib.o", @@ -10325,32 +11994,107 @@ our %unified_info = ( "ssl/libssl-lib-t1_trce.o", "ssl/libssl-lib-tls13_enc.o", "ssl/libssl-lib-tls_depr.o", - "ssl/libssl-lib-tls_srp.o", - "ssl/libdefault-lib-s3_cbc.o", - "ssl/libfips-lib-s3_cbc.o" + "ssl/libssl-lib-tls_srp.o" ], "products" => { "lib" => [ - "libssl", - "providers/libdefault.a", - "providers/libfips.a" + "libssl" + ] + } + }, + "ssl/quic" => { + "deps" => [ + "ssl/quic/libssl-lib-cc_newreno.o", + "ssl/quic/libssl-lib-json_enc.o", + "ssl/quic/libssl-lib-qlog.o", + "ssl/quic/libssl-lib-qlog_event_helpers.o", + "ssl/quic/libssl-lib-quic_ackm.o", + "ssl/quic/libssl-lib-quic_cfq.o", + "ssl/quic/libssl-lib-quic_channel.o", + "ssl/quic/libssl-lib-quic_demux.o", + "ssl/quic/libssl-lib-quic_engine.o", + "ssl/quic/libssl-lib-quic_fc.o", + "ssl/quic/libssl-lib-quic_fifd.o", + "ssl/quic/libssl-lib-quic_impl.o", + "ssl/quic/libssl-lib-quic_lcidm.o", + "ssl/quic/libssl-lib-quic_method.o", + "ssl/quic/libssl-lib-quic_obj.o", + "ssl/quic/libssl-lib-quic_port.o", + "ssl/quic/libssl-lib-quic_rcidm.o", + "ssl/quic/libssl-lib-quic_reactor.o", + "ssl/quic/libssl-lib-quic_reactor_wait_ctx.o", + "ssl/quic/libssl-lib-quic_record_rx.o", + "ssl/quic/libssl-lib-quic_record_shared.o", + "ssl/quic/libssl-lib-quic_record_tx.o", + "ssl/quic/libssl-lib-quic_record_util.o", + "ssl/quic/libssl-lib-quic_rstream.o", + "ssl/quic/libssl-lib-quic_rx_depack.o", + "ssl/quic/libssl-lib-quic_sf_list.o", + "ssl/quic/libssl-lib-quic_srt_gen.o", + "ssl/quic/libssl-lib-quic_srtm.o", + "ssl/quic/libssl-lib-quic_sstream.o", + "ssl/quic/libssl-lib-quic_statm.o", + "ssl/quic/libssl-lib-quic_stream_map.o", + "ssl/quic/libssl-lib-quic_thread_assist.o", + "ssl/quic/libssl-lib-quic_tls.o", + "ssl/quic/libssl-lib-quic_tls_api.o", + "ssl/quic/libssl-lib-quic_trace.o", + "ssl/quic/libssl-lib-quic_tserver.o", + "ssl/quic/libssl-lib-quic_txp.o", + "ssl/quic/libssl-lib-quic_txpim.o", + "ssl/quic/libssl-lib-quic_types.o", + "ssl/quic/libssl-lib-quic_wire.o", + "ssl/quic/libssl-lib-quic_wire_pkt.o", + "ssl/quic/libssl-lib-uint_set.o" + ], + "products" => { + "lib" => [ + "libssl" ] } }, "ssl/record" => { "deps" => [ - "ssl/record/libssl-lib-dtls1_bitmap.o", "ssl/record/libssl-lib-rec_layer_d1.o", - "ssl/record/libssl-lib-rec_layer_s3.o", - "ssl/record/libssl-lib-ssl3_buffer.o", - "ssl/record/libssl-lib-ssl3_record.o", - "ssl/record/libssl-lib-ssl3_record_tls13.o", - "ssl/record/libcommon-lib-tls_pad.o" + "ssl/record/libssl-lib-rec_layer_s3.o" + ], + "products" => { + "lib" => [ + "libssl" + ] + } + }, + "ssl/record/methods" => { + "deps" => [ + "ssl/record/methods/libssl-lib-dtls_meth.o", + "ssl/record/methods/libssl-lib-ssl3_meth.o", + "ssl/record/methods/libssl-lib-tls13_meth.o", + "ssl/record/methods/libssl-lib-tls1_meth.o", + "ssl/record/methods/libssl-lib-tls_common.o", + "ssl/record/methods/libssl-lib-tls_multib.o", + "ssl/record/methods/libssl-lib-tlsany_meth.o", + "ssl/record/methods/libcommon-lib-tls_pad.o", + "ssl/record/methods/libdefault-lib-ssl3_cbc.o", + "ssl/record/methods/libfips-lib-ssl3_cbc.o" ], "products" => { "lib" => [ "libssl", - "providers/libcommon.a" + "providers/libcommon.a", + "providers/libdefault.a", + "providers/libfips.a" + ] + } + }, + "ssl/rio" => { + "deps" => [ + "ssl/rio/libssl-lib-poll_builder.o", + "ssl/rio/libssl-lib-poll_immediate.o", + "ssl/rio/libssl-lib-rio_notifier.o" + ], + "products" => { + "lib" => [ + "libssl" ] } }, @@ -10388,9 +12132,40 @@ our %unified_info = ( "test/helpers/dtlstest-bin-ssltestlib.o", "test/helpers/endecode_test-bin-predefined_dhparams.o", "test/helpers/fatalerrtest-bin-ssltestlib.o", + "test/helpers/json_test-bin-noisydgrambio.o", + "test/helpers/json_test-bin-pktsplitbio.o", + "test/helpers/json_test-bin-quictestlib.o", + "test/helpers/json_test-bin-ssltestlib.o", + "test/helpers/pkcs12_api_test-bin-pkcs12.o", "test/helpers/pkcs12_format_test-bin-pkcs12.o", + "test/helpers/quic_multistream_test-bin-noisydgrambio.o", + "test/helpers/quic_multistream_test-bin-pktsplitbio.o", + "test/helpers/quic_multistream_test-bin-quictestlib.o", + "test/helpers/quic_multistream_test-bin-ssltestlib.o", + "test/helpers/quic_newcid_test-bin-noisydgrambio.o", + "test/helpers/quic_newcid_test-bin-pktsplitbio.o", + "test/helpers/quic_newcid_test-bin-quictestlib.o", + "test/helpers/quic_newcid_test-bin-ssltestlib.o", + "test/helpers/quic_radix_test-bin-noisydgrambio.o", + "test/helpers/quic_radix_test-bin-pktsplitbio.o", + "test/helpers/quic_radix_test-bin-quictestlib.o", + "test/helpers/quic_radix_test-bin-ssltestlib.o", + "test/helpers/quic_srt_gen_test-bin-noisydgrambio.o", + "test/helpers/quic_srt_gen_test-bin-pktsplitbio.o", + "test/helpers/quic_srt_gen_test-bin-quictestlib.o", + "test/helpers/quic_srt_gen_test-bin-ssltestlib.o", + "test/helpers/quicapitest-bin-noisydgrambio.o", + "test/helpers/quicapitest-bin-pktsplitbio.o", + "test/helpers/quicapitest-bin-quictestlib.o", + "test/helpers/quicapitest-bin-ssltestlib.o", + "test/helpers/quicfaultstest-bin-noisydgrambio.o", + "test/helpers/quicfaultstest-bin-pktsplitbio.o", + "test/helpers/quicfaultstest-bin-quictestlib.o", + "test/helpers/quicfaultstest-bin-ssltestlib.o", "test/helpers/recordlentest-bin-ssltestlib.o", + "test/helpers/rpktest-bin-ssltestlib.o", "test/helpers/servername_test-bin-ssltestlib.o", + "test/helpers/ssl_handshake_rtt_test-bin-ssltestlib.o", "test/helpers/ssl_old_test-bin-predefined_dhparams.o", "test/helpers/ssl_test-bin-handshake.o", "test/helpers/ssl_test-bin-handshake_srp.o", @@ -10399,7 +12174,8 @@ our %unified_info = ( "test/helpers/sslapitest-bin-ssltestlib.o", "test/helpers/sslbuffertest-bin-ssltestlib.o", "test/helpers/sslcorrupttest-bin-ssltestlib.o", - "test/helpers/tls13ccstest-bin-ssltestlib.o" + "test/helpers/tls13ccstest-bin-ssltestlib.o", + "test/helpers/tls13groupselection_test-bin-ssltestlib.o" ], "products" => { "bin" => [ @@ -10417,16 +12193,37 @@ our %unified_info = ( "test/dtlstest", "test/endecode_test", "test/fatalerrtest", + "test/json_test", + "test/pkcs12_api_test", "test/pkcs12_format_test", + "test/quic_multistream_test", + "test/quic_newcid_test", + "test/quic_radix_test", + "test/quic_srt_gen_test", + "test/quicapitest", + "test/quicfaultstest", "test/recordlentest", + "test/rpktest", "test/servername_test", + "test/ssl_handshake_rtt_test", "test/ssl_old_test", "test/ssl_test", "test/ssl_test_ctx_test", "test/sslapitest", "test/sslbuffertest", "test/sslcorrupttest", - "test/tls13ccstest" + "test/tls13ccstest", + "test/tls13groupselection_test" + ] + } + }, + "test/radix" => { + "deps" => [ + "test/radix/quic_radix_test-bin-quic_radix.o" + ], + "products" => { + "bin" => [ + "test/quic_radix_test" ] } }, @@ -10438,6 +12235,7 @@ our %unified_info = ( "test/testutil/libtestutil-lib-driver.o", "test/testutil/libtestutil-lib-fake_random.o", "test/testutil/libtestutil-lib-format_output.o", + "test/testutil/libtestutil-lib-helper.o", "test/testutil/libtestutil-lib-load.o", "test/testutil/libtestutil-lib-main.o", "test/testutil/libtestutil-lib-options.o", @@ -10473,6 +12271,12 @@ our %unified_info = ( } }, "generate" => { + "OpenSSLConfig.cmake" => [ + "exporters/cmake/OpenSSLConfig.cmake.in" + ], + "OpenSSLConfigVersion.cmake" => [ + "exporters/cmake/OpenSSLConfigVersion.cmake.in" + ], "apps/progs.c" => [ "apps/progs.pl", "\"-C\"", @@ -10483,6 +12287,19 @@ our %unified_info = ( "\"-H\"", "\$(APPS_OPENSSL)" ], + "builddata.pm" => [ + "util/mkinstallvars.pl", + "PREFIX=.", + "BINDIR=apps", + "APPLINKDIR=ms", + "LIBDIR=", + "INCLUDEDIR=include", + "\"INCLUDEDIR=\$(SRCDIR)/include\"", + "ENGINESDIR=engines", + "MODULESDIR=providers", + "\"VERSION=\$(VERSION)\"", + "\"LDLIBS=\$(LIB_EX_LIBS)\"" + ], "crypto/aes/aes-586.S" => [ "crypto/aes/asm/aes-586.pl" ], @@ -10504,6 +12321,24 @@ our %unified_info = ( "crypto/aes/aes-ppc.s" => [ "crypto/aes/asm/aes-ppc.pl" ], + "crypto/aes/aes-riscv32-zkn.s" => [ + "crypto/aes/asm/aes-riscv32-zkn.pl" + ], + "crypto/aes/aes-riscv64-zkn.s" => [ + "crypto/aes/asm/aes-riscv64-zkn.pl" + ], + "crypto/aes/aes-riscv64-zvbb-zvkg-zvkned.s" => [ + "crypto/aes/asm/aes-riscv64-zvbb-zvkg-zvkned.pl" + ], + "crypto/aes/aes-riscv64-zvkb-zvkned.s" => [ + "crypto/aes/asm/aes-riscv64-zvkb-zvkned.pl" + ], + "crypto/aes/aes-riscv64-zvkned.s" => [ + "crypto/aes/asm/aes-riscv64-zvkned.pl" + ], + "crypto/aes/aes-riscv64.s" => [ + "crypto/aes/asm/aes-riscv64.pl" + ], "crypto/aes/aes-s390x.S" => [ "crypto/aes/asm/aes-s390x.pl" ], @@ -10531,6 +12366,9 @@ our %unified_info = ( "crypto/aes/aesni-x86_64.s" => [ "crypto/aes/asm/aesni-x86_64.pl" ], + "crypto/aes/aesni-xts-avx512.s" => [ + "crypto/aes/asm/aesni-xts-avx512.pl" + ], "crypto/aes/aesp8-ppc.s" => [ "crypto/aes/asm/aesp8-ppc.pl" ], @@ -10543,12 +12381,18 @@ our %unified_info = ( "crypto/aes/bsaes-armv7.S" => [ "crypto/aes/asm/bsaes-armv7.pl" ], + "crypto/aes/bsaes-armv8.S" => [ + "crypto/aes/asm/bsaes-armv8.pl" + ], "crypto/aes/bsaes-x86_64.s" => [ "crypto/aes/asm/bsaes-x86_64.pl" ], "crypto/aes/vpaes-armv8.S" => [ "crypto/aes/asm/vpaes-armv8.pl" ], + "crypto/aes/vpaes-loongarch64.S" => [ + "crypto/aes/asm/vpaes-loongarch64.pl" + ], "crypto/aes/vpaes-ppc.s" => [ "crypto/aes/asm/vpaes-ppc.pl" ], @@ -10609,15 +12453,33 @@ our %unified_info = ( "crypto/bn/ppc-mont.s" => [ "crypto/bn/asm/ppc-mont.pl" ], + "crypto/bn/ppc64-mont-fixed.s" => [ + "crypto/bn/asm/ppc64-mont-fixed.pl" + ], "crypto/bn/ppc64-mont.s" => [ "crypto/bn/asm/ppc64-mont.pl" ], + "crypto/bn/rsaz-2k-avx512.s" => [ + "crypto/bn/asm/rsaz-2k-avx512.pl" + ], + "crypto/bn/rsaz-2k-avxifma.s" => [ + "crypto/bn/asm/rsaz-2k-avxifma.pl" + ], + "crypto/bn/rsaz-3k-avx512.s" => [ + "crypto/bn/asm/rsaz-3k-avx512.pl" + ], + "crypto/bn/rsaz-3k-avxifma.s" => [ + "crypto/bn/asm/rsaz-3k-avxifma.pl" + ], + "crypto/bn/rsaz-4k-avx512.s" => [ + "crypto/bn/asm/rsaz-4k-avx512.pl" + ], + "crypto/bn/rsaz-4k-avxifma.s" => [ + "crypto/bn/asm/rsaz-4k-avxifma.pl" + ], "crypto/bn/rsaz-avx2.s" => [ "crypto/bn/asm/rsaz-avx2.pl" ], - "crypto/bn/rsaz-avx512.s" => [ - "crypto/bn/asm/rsaz-avx512.pl" - ], "crypto/bn/rsaz-x86_64.s" => [ "crypto/bn/asm/rsaz-x86_64.pl" ], @@ -10679,6 +12541,9 @@ our %unified_info = ( "crypto/chacha/chacha-armv4.S" => [ "crypto/chacha/asm/chacha-armv4.pl" ], + "crypto/chacha/chacha-armv8-sve.S" => [ + "crypto/chacha/asm/chacha-armv8-sve.pl" + ], "crypto/chacha/chacha-armv8.S" => [ "crypto/chacha/asm/chacha-armv8.pl" ], @@ -10691,9 +12556,19 @@ our %unified_info = ( "crypto/chacha/chacha-ia64.s" => [ "crypto/chacha/chacha-ia64.S" ], + "crypto/chacha/chacha-loongarch64.S" => [ + "crypto/chacha/asm/chacha-loongarch64.pl" + ], "crypto/chacha/chacha-ppc.s" => [ "crypto/chacha/asm/chacha-ppc.pl" ], + "crypto/chacha/chacha-riscv64-v-zbb-zvkb.s" => [ + "crypto/chacha/asm/chacha-riscv64-v-zbb.pl", + "zvkb" + ], + "crypto/chacha/chacha-riscv64-v-zbb.s" => [ + "crypto/chacha/asm/chacha-riscv64-v-zbb.pl" + ], "crypto/chacha/chacha-s390x.S" => [ "crypto/chacha/asm/chacha-s390x.pl" ], @@ -10703,6 +12578,9 @@ our %unified_info = ( "crypto/chacha/chacha-x86_64.s" => [ "crypto/chacha/asm/chacha-x86_64.pl" ], + "crypto/chacha/chachap10-ppc.s" => [ + "crypto/chacha/asm/chachap10-ppc.pl" + ], "crypto/des/crypt586.S" => [ "crypto/des/asm/crypt586.pl" ], @@ -10715,6 +12593,9 @@ our %unified_info = ( "crypto/des/dest4-sparcv9.S" => [ "crypto/des/asm/dest4-sparcv9.pl" ], + "crypto/ec/ecp_nistp384-ppc64.s" => [ + "crypto/ec/asm/ecp_nistp384-ppc64.pl" + ], "crypto/ec/ecp_nistp521-ppc64.s" => [ "crypto/ec/asm/ecp_nistp521-ppc64.pl" ], @@ -10739,6 +12620,9 @@ our %unified_info = ( "crypto/ec/ecp_nistz256-x86_64.s" => [ "crypto/ec/asm/ecp_nistz256-x86_64.pl" ], + "crypto/ec/ecp_sm2p256-armv8.S" => [ + "crypto/ec/asm/ecp_sm2p256-armv8.pl" + ], "crypto/ec/x25519-ppc64.s" => [ "crypto/ec/asm/x25519-ppc64.pl" ], @@ -10748,18 +12632,39 @@ our %unified_info = ( "crypto/ia64cpuid.s" => [ "crypto/ia64cpuid.S" ], + "crypto/loongarch64cpuid.s" => [ + "crypto/loongarch64cpuid.pl" + ], "crypto/md5/md5-586.S" => [ "crypto/md5/asm/md5-586.pl" ], + "crypto/md5/md5-aarch64.S" => [ + "crypto/md5/asm/md5-aarch64.pl" + ], + "crypto/md5/md5-loongarch64.S" => [ + "crypto/md5/asm/md5-loongarch64.pl" + ], "crypto/md5/md5-sparcv9.S" => [ "crypto/md5/asm/md5-sparcv9.pl" ], "crypto/md5/md5-x86_64.s" => [ "crypto/md5/asm/md5-x86_64.pl" ], + "crypto/modes/aes-gcm-armv8-unroll8_64.S" => [ + "crypto/modes/asm/aes-gcm-armv8-unroll8_64.pl" + ], "crypto/modes/aes-gcm-armv8_64.S" => [ "crypto/modes/asm/aes-gcm-armv8_64.pl" ], + "crypto/modes/aes-gcm-avx512.s" => [ + "crypto/modes/asm/aes-gcm-avx512.pl" + ], + "crypto/modes/aes-gcm-ppc.s" => [ + "crypto/modes/asm/aes-gcm-ppc.pl" + ], + "crypto/modes/aes-gcm-riscv64-zvkb-zvkg-zvkned.s" => [ + "crypto/modes/asm/aes-gcm-riscv64-zvkb-zvkg-zvkned.pl" + ], "crypto/modes/aesni-gcm-x86_64.s" => [ "crypto/modes/asm/aesni-gcm-x86_64.pl" ], @@ -10778,6 +12683,15 @@ our %unified_info = ( "crypto/modes/ghash-parisc.s" => [ "crypto/modes/asm/ghash-parisc.pl" ], + "crypto/modes/ghash-riscv64-zvkb-zvbc.s" => [ + "crypto/modes/asm/ghash-riscv64-zvkb-zvbc.pl" + ], + "crypto/modes/ghash-riscv64-zvkg.s" => [ + "crypto/modes/asm/ghash-riscv64-zvkg.pl" + ], + "crypto/modes/ghash-riscv64.s" => [ + "crypto/modes/asm/ghash-riscv64.pl" + ], "crypto/modes/ghash-s390x.S" => [ "crypto/modes/asm/ghash-s390x.pl" ], @@ -10796,6 +12710,9 @@ our %unified_info = ( "crypto/modes/ghashv8-armx.S" => [ "crypto/modes/asm/ghashv8-armx.pl" ], + "crypto/params_idx.c" => [ + "crypto/params_idx.c.in" + ], "crypto/pariscid.s" => [ "crypto/pariscid.pl" ], @@ -10856,6 +12773,12 @@ our %unified_info = ( "crypto/ripemd/rmd-586.S" => [ "crypto/ripemd/asm/rmd-586.pl" ], + "crypto/riscv32cpuid.s" => [ + "crypto/riscv32cpuid.pl" + ], + "crypto/riscv64cpuid.s" => [ + "crypto/riscv64cpuid.pl" + ], "crypto/s390xcpuid.S" => [ "crypto/s390xcpuid.pl" ], @@ -10964,6 +12887,9 @@ our %unified_info = ( "crypto/sha/sha256-ppc.s" => [ "crypto/sha/asm/sha512-ppc.pl" ], + "crypto/sha/sha256-riscv64-zvkb-zvknha_or_zvknhb.S" => [ + "crypto/sha/asm/sha256-riscv64-zvkb-zvknha_or_zvknhb.pl" + ], "crypto/sha/sha256-s390x.S" => [ "crypto/sha/asm/sha512-s390x.pl" ], @@ -11000,6 +12926,9 @@ our %unified_info = ( "crypto/sha/sha512-ppc.s" => [ "crypto/sha/asm/sha512-ppc.pl" ], + "crypto/sha/sha512-riscv64-zvkb-zvknhb.S" => [ + "crypto/sha/asm/sha512-riscv64-zvkb-zvknhb.pl" + ], "crypto/sha/sha512-s390x.S" => [ "crypto/sha/asm/sha512-s390x.pl" ], @@ -11012,6 +12941,24 @@ our %unified_info = ( "crypto/sha/sha512p8-ppc.s" => [ "crypto/sha/asm/sha512p8-ppc.pl" ], + "crypto/sm3/sm3-armv8.S" => [ + "crypto/sm3/asm/sm3-armv8.pl" + ], + "crypto/sm3/sm3-riscv64-zvksh.S" => [ + "crypto/sm3/asm/sm3-riscv64-zvksh.pl" + ], + "crypto/sm4/sm4-armv8.S" => [ + "crypto/sm4/asm/sm4-armv8.pl" + ], + "crypto/sm4/sm4-riscv64-zvksed.s" => [ + "crypto/sm4/asm/sm4-riscv64-zvksed.pl" + ], + "crypto/sm4/vpsm4-armv8.S" => [ + "crypto/sm4/asm/vpsm4-armv8.pl" + ], + "crypto/sm4/vpsm4_ex-armv8.S" => [ + "crypto/sm4/asm/vpsm4_ex-armv8.pl" + ], "crypto/uplink-ia64.s" => [ "ms/uplink-ia64.pl" ], @@ -11177,6 +13124,9 @@ our %unified_info = ( "doc/html/man1/openssl-sess_id.html" => [ "doc/man1/openssl-sess_id.pod" ], + "doc/html/man1/openssl-skeyutl.html" => [ + "doc/man1/openssl-skeyutl.pod" + ], "doc/html/man1/openssl-smime.html" => [ "doc/man1/openssl-smime.pod" ], @@ -11318,6 +13268,9 @@ our %unified_info = ( "doc/html/man3/BIO_get_ex_new_index.html" => [ "doc/man3/BIO_get_ex_new_index.pod" ], + "doc/html/man3/BIO_get_rpoll_descriptor.html" => [ + "doc/man3/BIO_get_rpoll_descriptor.pod" + ], "doc/html/man3/BIO_meth_new.html" => [ "doc/man3/BIO_meth_new.pod" ], @@ -11354,6 +13307,9 @@ our %unified_info = ( "doc/html/man3/BIO_s_datagram.html" => [ "doc/man3/BIO_s_datagram.pod" ], + "doc/html/man3/BIO_s_dgram_pair.html" => [ + "doc/man3/BIO_s_dgram_pair.pod" + ], "doc/html/man3/BIO_s_fd.html" => [ "doc/man3/BIO_s_fd.pod" ], @@ -11369,6 +13325,9 @@ our %unified_info = ( "doc/html/man3/BIO_s_socket.html" => [ "doc/man3/BIO_s_socket.pod" ], + "doc/html/man3/BIO_sendmmsg.html" => [ + "doc/man3/BIO_sendmmsg.pod" + ], "doc/html/man3/BIO_set_callback.html" => [ "doc/man3/BIO_set_callback.pod" ], @@ -11441,6 +13400,9 @@ our %unified_info = ( "doc/html/man3/BUF_MEM_new.html" => [ "doc/man3/BUF_MEM_new.pod" ], + "doc/html/man3/CMAC_CTX.html" => [ + "doc/man3/CMAC_CTX.pod" + ], "doc/html/man3/CMS_EncryptedData_decrypt.html" => [ "doc/man3/CMS_EncryptedData_decrypt.pod" ], @@ -11507,6 +13469,9 @@ our %unified_info = ( "doc/html/man3/CMS_verify_receipt.html" => [ "doc/man3/CMS_verify_receipt.pod" ], + "doc/html/man3/COMP_CTX_new.html" => [ + "doc/man3/COMP_CTX_new.pod" + ], "doc/html/man3/CONF_modules_free.html" => [ "doc/man3/CONF_modules_free.pod" ], @@ -11606,6 +13571,12 @@ our %unified_info = ( "doc/html/man3/DTLS_set_timer_cb.html" => [ "doc/man3/DTLS_set_timer_cb.pod" ], + "doc/html/man3/DTLSv1_get_timeout.html" => [ + "doc/man3/DTLSv1_get_timeout.pod" + ], + "doc/html/man3/DTLSv1_handle_timeout.html" => [ + "doc/man3/DTLSv1_handle_timeout.pod" + ], "doc/html/man3/DTLSv1_listen.html" => [ "doc/man3/DTLSv1_listen.pod" ], @@ -11744,6 +13715,9 @@ our %unified_info = ( "doc/html/man3/EVP_PKEY_CTX_get0_pkey.html" => [ "doc/man3/EVP_PKEY_CTX_get0_pkey.pod" ], + "doc/html/man3/EVP_PKEY_CTX_get_algor.html" => [ + "doc/man3/EVP_PKEY_CTX_get_algor.pod" + ], "doc/html/man3/EVP_PKEY_CTX_new.html" => [ "doc/man3/EVP_PKEY_CTX_new.pod" ], @@ -11861,6 +13835,12 @@ our %unified_info = ( "doc/html/man3/EVP_SIGNATURE.html" => [ "doc/man3/EVP_SIGNATURE.pod" ], + "doc/html/man3/EVP_SKEY.html" => [ + "doc/man3/EVP_SKEY.pod" + ], + "doc/html/man3/EVP_SKEYMGMT.html" => [ + "doc/man3/EVP_SKEYMGMT.pod" + ], "doc/html/man3/EVP_SealInit.html" => [ "doc/man3/EVP_SealInit.pod" ], @@ -11948,6 +13928,9 @@ our %unified_info = ( "doc/html/man3/EVP_whirlpool.html" => [ "doc/man3/EVP_whirlpool.pod" ], + "doc/html/man3/GENERAL_NAME.html" => [ + "doc/man3/GENERAL_NAME.pod" + ], "doc/html/man3/HMAC.html" => [ "doc/man3/HMAC.pod" ], @@ -12020,9 +14003,15 @@ our %unified_info = ( "doc/html/man3/OPENSSL_load_builtin_modules.html" => [ "doc/man3/OPENSSL_load_builtin_modules.pod" ], + "doc/html/man3/OPENSSL_load_u16_le.html" => [ + "doc/man3/OPENSSL_load_u16_le.pod" + ], "doc/html/man3/OPENSSL_malloc.html" => [ "doc/man3/OPENSSL_malloc.pod" ], + "doc/html/man3/OPENSSL_riscvcap.html" => [ + "doc/man3/OPENSSL_riscvcap.pod" + ], "doc/html/man3/OPENSSL_s390xcap.html" => [ "doc/man3/OPENSSL_s390xcap.pod" ], @@ -12038,12 +14027,18 @@ our %unified_info = ( "doc/html/man3/OSSL_CALLBACK.html" => [ "doc/man3/OSSL_CALLBACK.pod" ], + "doc/html/man3/OSSL_CMP_ATAV_set0.html" => [ + "doc/man3/OSSL_CMP_ATAV_set0.pod" + ], "doc/html/man3/OSSL_CMP_CTX_new.html" => [ "doc/man3/OSSL_CMP_CTX_new.pod" ], "doc/html/man3/OSSL_CMP_HDR_get0_transactionID.html" => [ "doc/man3/OSSL_CMP_HDR_get0_transactionID.pod" ], + "doc/html/man3/OSSL_CMP_ITAV_new_caCerts.html" => [ + "doc/man3/OSSL_CMP_ITAV_new_caCerts.pod" + ], "doc/html/man3/OSSL_CMP_ITAV_set0.html" => [ "doc/man3/OSSL_CMP_ITAV_set0.pod" ], @@ -12113,9 +14108,18 @@ our %unified_info = ( "doc/html/man3/OSSL_ENCODER_to_bio.html" => [ "doc/man3/OSSL_ENCODER_to_bio.pod" ], + "doc/html/man3/OSSL_ERR_STATE_save.html" => [ + "doc/man3/OSSL_ERR_STATE_save.pod" + ], "doc/html/man3/OSSL_ESS_check_signing_certs.html" => [ "doc/man3/OSSL_ESS_check_signing_certs.pod" ], + "doc/html/man3/OSSL_GENERAL_NAMES_print.html" => [ + "doc/man3/OSSL_GENERAL_NAMES_print.pod" + ], + "doc/html/man3/OSSL_HPKE_CTX_new.html" => [ + "doc/man3/OSSL_HPKE_CTX_new.pod" + ], "doc/html/man3/OSSL_HTTP_REQ_CTX.html" => [ "doc/man3/OSSL_HTTP_REQ_CTX.pod" ], @@ -12125,12 +14129,24 @@ our %unified_info = ( "doc/html/man3/OSSL_HTTP_transfer.html" => [ "doc/man3/OSSL_HTTP_transfer.pod" ], + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX.html" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX.pod" + ], + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX_print.html" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX_print.pod" + ], + "doc/html/man3/OSSL_INDICATOR_set_callback.html" => [ + "doc/man3/OSSL_INDICATOR_set_callback.pod" + ], "doc/html/man3/OSSL_ITEM.html" => [ "doc/man3/OSSL_ITEM.pod" ], "doc/html/man3/OSSL_LIB_CTX.html" => [ "doc/man3/OSSL_LIB_CTX.pod" ], + "doc/html/man3/OSSL_LIB_CTX_set_conf_diagnostics.html" => [ + "doc/man3/OSSL_LIB_CTX_set_conf_diagnostics.pod" + ], "doc/html/man3/OSSL_PARAM.html" => [ "doc/man3/OSSL_PARAM.pod" ], @@ -12146,9 +14162,15 @@ our %unified_info = ( "doc/html/man3/OSSL_PARAM_int.html" => [ "doc/man3/OSSL_PARAM_int.pod" ], + "doc/html/man3/OSSL_PARAM_print_to_bio.html" => [ + "doc/man3/OSSL_PARAM_print_to_bio.pod" + ], "doc/html/man3/OSSL_PROVIDER.html" => [ "doc/man3/OSSL_PROVIDER.pod" ], + "doc/html/man3/OSSL_QUIC_client_method.html" => [ + "doc/man3/OSSL_QUIC_client_method.pod" + ], "doc/html/man3/OSSL_SELF_TEST_new.html" => [ "doc/man3/OSSL_SELF_TEST_new.pod" ], @@ -12173,6 +14195,9 @@ our %unified_info = ( "doc/html/man3/OSSL_STORE_open.html" => [ "doc/man3/OSSL_STORE_open.pod" ], + "doc/html/man3/OSSL_sleep.html" => [ + "doc/man3/OSSL_sleep.pod" + ], "doc/html/man3/OSSL_trace_enabled.html" => [ "doc/man3/OSSL_trace_enabled.pod" ], @@ -12188,6 +14213,9 @@ our %unified_info = ( "doc/html/man3/OpenSSL_version.html" => [ "doc/man3/OpenSSL_version.pod" ], + "doc/html/man3/PBMAC1_get1_pbkdf2_param.html" => [ + "doc/man3/PBMAC1_get1_pbkdf2_param.pod" + ], "doc/html/man3/PEM_X509_INFO_read_bio_ex.html" => [ "doc/man3/PEM_X509_INFO_read_bio_ex.pod" ], @@ -12224,6 +14252,9 @@ our %unified_info = ( "doc/html/man3/PKCS12_SAFEBAG_get1_cert.html" => [ "doc/man3/PKCS12_SAFEBAG_get1_cert.pod" ], + "doc/html/man3/PKCS12_SAFEBAG_set0_attrs.html" => [ + "doc/man3/PKCS12_SAFEBAG_set0_attrs.pod" + ], "doc/html/man3/PKCS12_add1_attr_by_NID.html" => [ "doc/man3/PKCS12_add1_attr_by_NID.pod" ], @@ -12497,6 +14528,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set0_CA_list.html" => [ "doc/man3/SSL_CTX_set0_CA_list.pod" ], + "doc/html/man3/SSL_CTX_set1_cert_comp_preference.html" => [ + "doc/man3/SSL_CTX_set1_cert_comp_preference.pod" + ], "doc/html/man3/SSL_CTX_set1_curves.html" => [ "doc/man3/SSL_CTX_set1_curves.pod" ], @@ -12536,6 +14570,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_default_passwd_cb.html" => [ "doc/man3/SSL_CTX_set_default_passwd_cb.pod" ], + "doc/html/man3/SSL_CTX_set_domain_flags.html" => [ + "doc/man3/SSL_CTX_set_domain_flags.pod" + ], "doc/html/man3/SSL_CTX_set_generate_session_id.html" => [ "doc/man3/SSL_CTX_set_generate_session_id.pod" ], @@ -12557,6 +14594,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_msg_callback.html" => [ "doc/man3/SSL_CTX_set_msg_callback.pod" ], + "doc/html/man3/SSL_CTX_set_new_pending_conn_cb.html" => [ + "doc/man3/SSL_CTX_set_new_pending_conn_cb.pod" + ], "doc/html/man3/SSL_CTX_set_num_tickets.html" => [ "doc/man3/SSL_CTX_set_num_tickets.pod" ], @@ -12671,6 +14711,9 @@ our %unified_info = ( "doc/html/man3/SSL_accept.html" => [ "doc/man3/SSL_accept.pod" ], + "doc/html/man3/SSL_accept_stream.html" => [ + "doc/man3/SSL_accept_stream.pod" + ], "doc/html/man3/SSL_alert_type_string.html" => [ "doc/man3/SSL_alert_type_string.pod" ], @@ -12698,9 +14741,21 @@ our %unified_info = ( "doc/html/man3/SSL_free.html" => [ "doc/man3/SSL_free.pod" ], + "doc/html/man3/SSL_get0_connection.html" => [ + "doc/man3/SSL_get0_connection.pod" + ], + "doc/html/man3/SSL_get0_group_name.html" => [ + "doc/man3/SSL_get0_group_name.pod" + ], + "doc/html/man3/SSL_get0_peer_rpk.html" => [ + "doc/man3/SSL_get0_peer_rpk.pod" + ], "doc/html/man3/SSL_get0_peer_scts.html" => [ "doc/man3/SSL_get0_peer_scts.pod" ], + "doc/html/man3/SSL_get1_builtin_sigalgs.html" => [ + "doc/man3/SSL_get1_builtin_sigalgs.pod" + ], "doc/html/man3/SSL_get_SSL_CTX.html" => [ "doc/man3/SSL_get_SSL_CTX.pod" ], @@ -12716,6 +14771,9 @@ our %unified_info = ( "doc/html/man3/SSL_get_client_random.html" => [ "doc/man3/SSL_get_client_random.pod" ], + "doc/html/man3/SSL_get_conn_close_info.html" => [ + "doc/man3/SSL_get_conn_close_info.pod" + ], "doc/html/man3/SSL_get_current_cipher.html" => [ "doc/man3/SSL_get_current_cipher.pod" ], @@ -12725,12 +14783,18 @@ our %unified_info = ( "doc/html/man3/SSL_get_error.html" => [ "doc/man3/SSL_get_error.pod" ], + "doc/html/man3/SSL_get_event_timeout.html" => [ + "doc/man3/SSL_get_event_timeout.pod" + ], "doc/html/man3/SSL_get_extms_support.html" => [ "doc/man3/SSL_get_extms_support.pod" ], "doc/html/man3/SSL_get_fd.html" => [ "doc/man3/SSL_get_fd.pod" ], + "doc/html/man3/SSL_get_handshake_rtt.html" => [ + "doc/man3/SSL_get_handshake_rtt.pod" + ], "doc/html/man3/SSL_get_peer_cert_chain.html" => [ "doc/man3/SSL_get_peer_cert_chain.pod" ], @@ -12749,12 +14813,24 @@ our %unified_info = ( "doc/html/man3/SSL_get_rbio.html" => [ "doc/man3/SSL_get_rbio.pod" ], + "doc/html/man3/SSL_get_rpoll_descriptor.html" => [ + "doc/man3/SSL_get_rpoll_descriptor.pod" + ], "doc/html/man3/SSL_get_session.html" => [ "doc/man3/SSL_get_session.pod" ], "doc/html/man3/SSL_get_shared_sigalgs.html" => [ "doc/man3/SSL_get_shared_sigalgs.pod" ], + "doc/html/man3/SSL_get_stream_id.html" => [ + "doc/man3/SSL_get_stream_id.pod" + ], + "doc/html/man3/SSL_get_stream_read_state.html" => [ + "doc/man3/SSL_get_stream_read_state.pod" + ], + "doc/html/man3/SSL_get_value_uint.html" => [ + "doc/man3/SSL_get_value_uint.pod" + ], "doc/html/man3/SSL_get_verify_result.html" => [ "doc/man3/SSL_get_verify_result.pod" ], @@ -12764,9 +14840,15 @@ our %unified_info = ( "doc/html/man3/SSL_group_to_name.html" => [ "doc/man3/SSL_group_to_name.pod" ], + "doc/html/man3/SSL_handle_events.html" => [ + "doc/man3/SSL_handle_events.pod" + ], "doc/html/man3/SSL_in_init.html" => [ "doc/man3/SSL_in_init.pod" ], + "doc/html/man3/SSL_inject_net_dgram.html" => [ + "doc/man3/SSL_inject_net_dgram.pod" + ], "doc/html/man3/SSL_key_update.html" => [ "doc/man3/SSL_key_update.pod" ], @@ -12779,9 +14861,21 @@ our %unified_info = ( "doc/html/man3/SSL_new.html" => [ "doc/man3/SSL_new.pod" ], + "doc/html/man3/SSL_new_domain.html" => [ + "doc/man3/SSL_new_domain.pod" + ], + "doc/html/man3/SSL_new_listener.html" => [ + "doc/man3/SSL_new_listener.pod" + ], + "doc/html/man3/SSL_new_stream.html" => [ + "doc/man3/SSL_new_stream.pod" + ], "doc/html/man3/SSL_pending.html" => [ "doc/man3/SSL_pending.pod" ], + "doc/html/man3/SSL_poll.html" => [ + "doc/man3/SSL_poll.pod" + ], "doc/html/man3/SSL_read.html" => [ "doc/man3/SSL_read.pod" ], @@ -12797,24 +14891,45 @@ our %unified_info = ( "doc/html/man3/SSL_set1_host.html" => [ "doc/man3/SSL_set1_host.pod" ], + "doc/html/man3/SSL_set1_initial_peer_addr.html" => [ + "doc/man3/SSL_set1_initial_peer_addr.pod" + ], + "doc/html/man3/SSL_set1_server_cert_type.html" => [ + "doc/man3/SSL_set1_server_cert_type.pod" + ], "doc/html/man3/SSL_set_async_callback.html" => [ "doc/man3/SSL_set_async_callback.pod" ], "doc/html/man3/SSL_set_bio.html" => [ "doc/man3/SSL_set_bio.pod" ], + "doc/html/man3/SSL_set_blocking_mode.html" => [ + "doc/man3/SSL_set_blocking_mode.pod" + ], "doc/html/man3/SSL_set_connect_state.html" => [ "doc/man3/SSL_set_connect_state.pod" ], + "doc/html/man3/SSL_set_default_stream_mode.html" => [ + "doc/man3/SSL_set_default_stream_mode.pod" + ], "doc/html/man3/SSL_set_fd.html" => [ "doc/man3/SSL_set_fd.pod" ], + "doc/html/man3/SSL_set_incoming_stream_policy.html" => [ + "doc/man3/SSL_set_incoming_stream_policy.pod" + ], + "doc/html/man3/SSL_set_quic_tls_cbs.html" => [ + "doc/man3/SSL_set_quic_tls_cbs.pod" + ], "doc/html/man3/SSL_set_retry_verify.html" => [ "doc/man3/SSL_set_retry_verify.pod" ], "doc/html/man3/SSL_set_session.html" => [ "doc/man3/SSL_set_session.pod" ], + "doc/html/man3/SSL_set_session_secret_cb.html" => [ + "doc/man3/SSL_set_session_secret_cb.pod" + ], "doc/html/man3/SSL_set_shutdown.html" => [ "doc/man3/SSL_set_shutdown.pod" ], @@ -12827,6 +14942,12 @@ our %unified_info = ( "doc/html/man3/SSL_state_string.html" => [ "doc/man3/SSL_state_string.pod" ], + "doc/html/man3/SSL_stream_conclude.html" => [ + "doc/man3/SSL_stream_conclude.pod" + ], + "doc/html/man3/SSL_stream_reset.html" => [ + "doc/man3/SSL_stream_reset.pod" + ], "doc/html/man3/SSL_want.html" => [ "doc/man3/SSL_want.pod" ], @@ -12836,8 +14957,8 @@ our %unified_info = ( "doc/html/man3/TS_RESP_CTX_new.html" => [ "doc/man3/TS_RESP_CTX_new.pod" ], - "doc/html/man3/TS_VERIFY_CTX_set_certs.html" => [ - "doc/man3/TS_VERIFY_CTX_set_certs.pod" + "doc/html/man3/TS_VERIFY_CTX.html" => [ + "doc/man3/TS_VERIFY_CTX.pod" ], "doc/html/man3/UI_STRING.html" => [ "doc/man3/UI_STRING.pod" @@ -12857,6 +14978,21 @@ our %unified_info = ( "doc/html/man3/X509V3_set_ctx.html" => [ "doc/man3/X509V3_set_ctx.pod" ], + "doc/html/man3/X509_ACERT_add1_attr.html" => [ + "doc/man3/X509_ACERT_add1_attr.pod" + ], + "doc/html/man3/X509_ACERT_add_attr_nconf.html" => [ + "doc/man3/X509_ACERT_add_attr_nconf.pod" + ], + "doc/html/man3/X509_ACERT_get0_holder_baseCertId.html" => [ + "doc/man3/X509_ACERT_get0_holder_baseCertId.pod" + ], + "doc/html/man3/X509_ACERT_get_attr.html" => [ + "doc/man3/X509_ACERT_get_attr.pod" + ], + "doc/html/man3/X509_ACERT_print_ex.html" => [ + "doc/man3/X509_ACERT_print_ex.pod" + ], "doc/html/man3/X509_ALGOR_dup.html" => [ "doc/man3/X509_ALGOR_dup.pod" ], @@ -12905,6 +15041,9 @@ our %unified_info = ( "doc/html/man3/X509_SIG_get0.html" => [ "doc/man3/X509_SIG_get0.pod" ], + "doc/html/man3/X509_STORE_CTX_get_by_subject.html" => [ + "doc/man3/X509_STORE_CTX_get_by_subject.pod" + ], "doc/html/man3/X509_STORE_CTX_get_error.html" => [ "doc/man3/X509_STORE_CTX_get_error.pod" ], @@ -12971,6 +15110,9 @@ our %unified_info = ( "doc/html/man3/X509_get0_uids.html" => [ "doc/man3/X509_get0_uids.pod" ], + "doc/html/man3/X509_get_default_cert_file.html" => [ + "doc/man3/X509_get_default_cert_file.pod" + ], "doc/html/man3/X509_get_extension_flags.html" => [ "doc/man3/X509_get_extension_flags.pod" ], @@ -13094,9 +15236,15 @@ our %unified_info = ( "doc/html/man7/EVP_CIPHER-SM4.html" => [ "doc/man7/EVP_CIPHER-SM4.pod" ], + "doc/html/man7/EVP_KDF-ARGON2.html" => [ + "doc/man7/EVP_KDF-ARGON2.pod" + ], "doc/html/man7/EVP_KDF-HKDF.html" => [ "doc/man7/EVP_KDF-HKDF.pod" ], + "doc/html/man7/EVP_KDF-HMAC-DRBG.html" => [ + "doc/man7/EVP_KDF-HMAC-DRBG.pod" + ], "doc/html/man7/EVP_KDF-KB.html" => [ "doc/man7/EVP_KDF-KB.pod" ], @@ -13112,6 +15260,9 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-PKCS12KDF.html" => [ "doc/man7/EVP_KDF-PKCS12KDF.pod" ], + "doc/html/man7/EVP_KDF-PVKKDF.html" => [ + "doc/man7/EVP_KDF-PVKKDF.pod" + ], "doc/html/man7/EVP_KDF-SCRYPT.html" => [ "doc/man7/EVP_KDF-SCRYPT.pod" ], @@ -13136,9 +15287,18 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-X963.html" => [ "doc/man7/EVP_KDF-X963.pod" ], + "doc/html/man7/EVP_KEM-EC.html" => [ + "doc/man7/EVP_KEM-EC.pod" + ], + "doc/html/man7/EVP_KEM-ML-KEM.html" => [ + "doc/man7/EVP_KEM-ML-KEM.pod" + ], "doc/html/man7/EVP_KEM-RSA.html" => [ "doc/man7/EVP_KEM-RSA.pod" ], + "doc/html/man7/EVP_KEM-X25519.html" => [ + "doc/man7/EVP_KEM-X25519.pod" + ], "doc/html/man7/EVP_KEYEXCH-DH.html" => [ "doc/man7/EVP_KEYEXCH-DH.pod" ], @@ -13172,6 +15332,9 @@ our %unified_info = ( "doc/html/man7/EVP_MD-BLAKE2.html" => [ "doc/man7/EVP_MD-BLAKE2.pod" ], + "doc/html/man7/EVP_MD-KECCAK.html" => [ + "doc/man7/EVP_MD-KECCAK.pod" + ], "doc/html/man7/EVP_MD-MD2.html" => [ "doc/man7/EVP_MD-MD2.pod" ], @@ -13229,15 +15392,27 @@ our %unified_info = ( "doc/html/man7/EVP_PKEY-HMAC.html" => [ "doc/man7/EVP_PKEY-HMAC.pod" ], + "doc/html/man7/EVP_PKEY-ML-DSA.html" => [ + "doc/man7/EVP_PKEY-ML-DSA.pod" + ], + "doc/html/man7/EVP_PKEY-ML-KEM.html" => [ + "doc/man7/EVP_PKEY-ML-KEM.pod" + ], "doc/html/man7/EVP_PKEY-RSA.html" => [ "doc/man7/EVP_PKEY-RSA.pod" ], + "doc/html/man7/EVP_PKEY-SLH-DSA.html" => [ + "doc/man7/EVP_PKEY-SLH-DSA.pod" + ], "doc/html/man7/EVP_PKEY-SM2.html" => [ "doc/man7/EVP_PKEY-SM2.pod" ], "doc/html/man7/EVP_PKEY-X25519.html" => [ "doc/man7/EVP_PKEY-X25519.pod" ], + "doc/html/man7/EVP_RAND-CRNG-TEST.html" => [ + "doc/man7/EVP_RAND-CRNG-TEST.pod" + ], "doc/html/man7/EVP_RAND-CTR-DRBG.html" => [ "doc/man7/EVP_RAND-CTR-DRBG.pod" ], @@ -13247,6 +15422,9 @@ our %unified_info = ( "doc/html/man7/EVP_RAND-HMAC-DRBG.html" => [ "doc/man7/EVP_RAND-HMAC-DRBG.pod" ], + "doc/html/man7/EVP_RAND-JITTER.html" => [ + "doc/man7/EVP_RAND-JITTER.pod" + ], "doc/html/man7/EVP_RAND-SEED-SRC.html" => [ "doc/man7/EVP_RAND-SEED-SRC.pod" ], @@ -13268,9 +15446,15 @@ our %unified_info = ( "doc/html/man7/EVP_SIGNATURE-HMAC.html" => [ "doc/man7/EVP_SIGNATURE-HMAC.pod" ], + "doc/html/man7/EVP_SIGNATURE-ML-DSA.html" => [ + "doc/man7/EVP_SIGNATURE-ML-DSA.pod" + ], "doc/html/man7/EVP_SIGNATURE-RSA.html" => [ "doc/man7/EVP_SIGNATURE-RSA.pod" ], + "doc/html/man7/EVP_SIGNATURE-SLH-DSA.html" => [ + "doc/man7/EVP_SIGNATURE-SLH-DSA.pod" + ], "doc/html/man7/OSSL_PROVIDER-FIPS.html" => [ "doc/man7/OSSL_PROVIDER-FIPS.pod" ], @@ -13286,6 +15470,9 @@ our %unified_info = ( "doc/html/man7/OSSL_PROVIDER-null.html" => [ "doc/man7/OSSL_PROVIDER-null.pod" ], + "doc/html/man7/OSSL_STORE-winstore.html" => [ + "doc/man7/OSSL_STORE-winstore.pod" + ], "doc/html/man7/RAND.html" => [ "doc/man7/RAND.pod" ], @@ -13298,9 +15485,6 @@ our %unified_info = ( "doc/html/man7/bio.html" => [ "doc/man7/bio.pod" ], - "doc/html/man7/crypto.html" => [ - "doc/man7/crypto.pod" - ], "doc/html/man7/ct.html" => [ "doc/man7/ct.pod" ], @@ -13331,9 +15515,6 @@ our %unified_info = ( "doc/html/man7/life_cycle-rand.html" => [ "doc/man7/life_cycle-rand.pod" ], - "doc/html/man7/migration_guide.html" => [ - "doc/man7/migration_guide.pod" - ], "doc/html/man7/openssl-core.h.html" => [ "doc/man7/openssl-core.h.pod" ], @@ -13349,12 +15530,66 @@ our %unified_info = ( "doc/html/man7/openssl-glossary.html" => [ "doc/man7/openssl-glossary.pod" ], + "doc/html/man7/openssl-qlog.html" => [ + "doc/man7/openssl-qlog.pod" + ], + "doc/html/man7/openssl-quic-concurrency.html" => [ + "doc/man7/openssl-quic-concurrency.pod" + ], + "doc/html/man7/openssl-quic.html" => [ + "doc/man7/openssl-quic.pod" + ], "doc/html/man7/openssl-threads.html" => [ "doc/man7/openssl-threads.pod" ], "doc/html/man7/openssl_user_macros.html" => [ "doc/man7/openssl_user_macros.pod" ], + "doc/html/man7/ossl-guide-introduction.html" => [ + "doc/man7/ossl-guide-introduction.pod" + ], + "doc/html/man7/ossl-guide-libcrypto-introduction.html" => [ + "doc/man7/ossl-guide-libcrypto-introduction.pod" + ], + "doc/html/man7/ossl-guide-libraries-introduction.html" => [ + "doc/man7/ossl-guide-libraries-introduction.pod" + ], + "doc/html/man7/ossl-guide-libssl-introduction.html" => [ + "doc/man7/ossl-guide-libssl-introduction.pod" + ], + "doc/html/man7/ossl-guide-migration.html" => [ + "doc/man7/ossl-guide-migration.pod" + ], + "doc/html/man7/ossl-guide-quic-client-block.html" => [ + "doc/man7/ossl-guide-quic-client-block.pod" + ], + "doc/html/man7/ossl-guide-quic-client-non-block.html" => [ + "doc/man7/ossl-guide-quic-client-non-block.pod" + ], + "doc/html/man7/ossl-guide-quic-introduction.html" => [ + "doc/man7/ossl-guide-quic-introduction.pod" + ], + "doc/html/man7/ossl-guide-quic-multi-stream.html" => [ + "doc/man7/ossl-guide-quic-multi-stream.pod" + ], + "doc/html/man7/ossl-guide-quic-server-block.html" => [ + "doc/man7/ossl-guide-quic-server-block.pod" + ], + "doc/html/man7/ossl-guide-quic-server-non-block.html" => [ + "doc/man7/ossl-guide-quic-server-non-block.pod" + ], + "doc/html/man7/ossl-guide-tls-client-block.html" => [ + "doc/man7/ossl-guide-tls-client-block.pod" + ], + "doc/html/man7/ossl-guide-tls-client-non-block.html" => [ + "doc/man7/ossl-guide-tls-client-non-block.pod" + ], + "doc/html/man7/ossl-guide-tls-introduction.html" => [ + "doc/man7/ossl-guide-tls-introduction.pod" + ], + "doc/html/man7/ossl-guide-tls-server-block.html" => [ + "doc/man7/ossl-guide-tls-server-block.pod" + ], "doc/html/man7/ossl_store-file.html" => [ "doc/man7/ossl_store-file.pod" ], @@ -13409,6 +15644,9 @@ our %unified_info = ( "doc/html/man7/provider-signature.html" => [ "doc/man7/provider-signature.pod" ], + "doc/html/man7/provider-skeymgmt.html" => [ + "doc/man7/provider-skeymgmt.pod" + ], "doc/html/man7/provider-storemgmt.html" => [ "doc/man7/provider-storemgmt.pod" ], @@ -13418,9 +15656,6 @@ our %unified_info = ( "doc/html/man7/proxy-certificates.html" => [ "doc/man7/proxy-certificates.pod" ], - "doc/html/man7/ssl.html" => [ - "doc/man7/ssl.pod" - ], "doc/html/man7/x509.html" => [ "doc/man7/x509.pod" ], @@ -13568,6 +15803,9 @@ our %unified_info = ( "doc/man/man1/openssl-sess_id.1" => [ "doc/man1/openssl-sess_id.pod" ], + "doc/man/man1/openssl-skeyutl.1" => [ + "doc/man1/openssl-skeyutl.pod" + ], "doc/man/man1/openssl-smime.1" => [ "doc/man1/openssl-smime.pod" ], @@ -13709,6 +15947,9 @@ our %unified_info = ( "doc/man/man3/BIO_get_ex_new_index.3" => [ "doc/man3/BIO_get_ex_new_index.pod" ], + "doc/man/man3/BIO_get_rpoll_descriptor.3" => [ + "doc/man3/BIO_get_rpoll_descriptor.pod" + ], "doc/man/man3/BIO_meth_new.3" => [ "doc/man3/BIO_meth_new.pod" ], @@ -13745,6 +15986,9 @@ our %unified_info = ( "doc/man/man3/BIO_s_datagram.3" => [ "doc/man3/BIO_s_datagram.pod" ], + "doc/man/man3/BIO_s_dgram_pair.3" => [ + "doc/man3/BIO_s_dgram_pair.pod" + ], "doc/man/man3/BIO_s_fd.3" => [ "doc/man3/BIO_s_fd.pod" ], @@ -13760,6 +16004,9 @@ our %unified_info = ( "doc/man/man3/BIO_s_socket.3" => [ "doc/man3/BIO_s_socket.pod" ], + "doc/man/man3/BIO_sendmmsg.3" => [ + "doc/man3/BIO_sendmmsg.pod" + ], "doc/man/man3/BIO_set_callback.3" => [ "doc/man3/BIO_set_callback.pod" ], @@ -13832,6 +16079,9 @@ our %unified_info = ( "doc/man/man3/BUF_MEM_new.3" => [ "doc/man3/BUF_MEM_new.pod" ], + "doc/man/man3/CMAC_CTX.3" => [ + "doc/man3/CMAC_CTX.pod" + ], "doc/man/man3/CMS_EncryptedData_decrypt.3" => [ "doc/man3/CMS_EncryptedData_decrypt.pod" ], @@ -13898,6 +16148,9 @@ our %unified_info = ( "doc/man/man3/CMS_verify_receipt.3" => [ "doc/man3/CMS_verify_receipt.pod" ], + "doc/man/man3/COMP_CTX_new.3" => [ + "doc/man3/COMP_CTX_new.pod" + ], "doc/man/man3/CONF_modules_free.3" => [ "doc/man3/CONF_modules_free.pod" ], @@ -13997,6 +16250,12 @@ our %unified_info = ( "doc/man/man3/DTLS_set_timer_cb.3" => [ "doc/man3/DTLS_set_timer_cb.pod" ], + "doc/man/man3/DTLSv1_get_timeout.3" => [ + "doc/man3/DTLSv1_get_timeout.pod" + ], + "doc/man/man3/DTLSv1_handle_timeout.3" => [ + "doc/man3/DTLSv1_handle_timeout.pod" + ], "doc/man/man3/DTLSv1_listen.3" => [ "doc/man3/DTLSv1_listen.pod" ], @@ -14135,6 +16394,9 @@ our %unified_info = ( "doc/man/man3/EVP_PKEY_CTX_get0_pkey.3" => [ "doc/man3/EVP_PKEY_CTX_get0_pkey.pod" ], + "doc/man/man3/EVP_PKEY_CTX_get_algor.3" => [ + "doc/man3/EVP_PKEY_CTX_get_algor.pod" + ], "doc/man/man3/EVP_PKEY_CTX_new.3" => [ "doc/man3/EVP_PKEY_CTX_new.pod" ], @@ -14252,6 +16514,12 @@ our %unified_info = ( "doc/man/man3/EVP_SIGNATURE.3" => [ "doc/man3/EVP_SIGNATURE.pod" ], + "doc/man/man3/EVP_SKEY.3" => [ + "doc/man3/EVP_SKEY.pod" + ], + "doc/man/man3/EVP_SKEYMGMT.3" => [ + "doc/man3/EVP_SKEYMGMT.pod" + ], "doc/man/man3/EVP_SealInit.3" => [ "doc/man3/EVP_SealInit.pod" ], @@ -14339,6 +16607,9 @@ our %unified_info = ( "doc/man/man3/EVP_whirlpool.3" => [ "doc/man3/EVP_whirlpool.pod" ], + "doc/man/man3/GENERAL_NAME.3" => [ + "doc/man3/GENERAL_NAME.pod" + ], "doc/man/man3/HMAC.3" => [ "doc/man3/HMAC.pod" ], @@ -14411,9 +16682,15 @@ our %unified_info = ( "doc/man/man3/OPENSSL_load_builtin_modules.3" => [ "doc/man3/OPENSSL_load_builtin_modules.pod" ], + "doc/man/man3/OPENSSL_load_u16_le.3" => [ + "doc/man3/OPENSSL_load_u16_le.pod" + ], "doc/man/man3/OPENSSL_malloc.3" => [ "doc/man3/OPENSSL_malloc.pod" ], + "doc/man/man3/OPENSSL_riscvcap.3" => [ + "doc/man3/OPENSSL_riscvcap.pod" + ], "doc/man/man3/OPENSSL_s390xcap.3" => [ "doc/man3/OPENSSL_s390xcap.pod" ], @@ -14429,12 +16706,18 @@ our %unified_info = ( "doc/man/man3/OSSL_CALLBACK.3" => [ "doc/man3/OSSL_CALLBACK.pod" ], + "doc/man/man3/OSSL_CMP_ATAV_set0.3" => [ + "doc/man3/OSSL_CMP_ATAV_set0.pod" + ], "doc/man/man3/OSSL_CMP_CTX_new.3" => [ "doc/man3/OSSL_CMP_CTX_new.pod" ], "doc/man/man3/OSSL_CMP_HDR_get0_transactionID.3" => [ "doc/man3/OSSL_CMP_HDR_get0_transactionID.pod" ], + "doc/man/man3/OSSL_CMP_ITAV_new_caCerts.3" => [ + "doc/man3/OSSL_CMP_ITAV_new_caCerts.pod" + ], "doc/man/man3/OSSL_CMP_ITAV_set0.3" => [ "doc/man3/OSSL_CMP_ITAV_set0.pod" ], @@ -14504,9 +16787,18 @@ our %unified_info = ( "doc/man/man3/OSSL_ENCODER_to_bio.3" => [ "doc/man3/OSSL_ENCODER_to_bio.pod" ], + "doc/man/man3/OSSL_ERR_STATE_save.3" => [ + "doc/man3/OSSL_ERR_STATE_save.pod" + ], "doc/man/man3/OSSL_ESS_check_signing_certs.3" => [ "doc/man3/OSSL_ESS_check_signing_certs.pod" ], + "doc/man/man3/OSSL_GENERAL_NAMES_print.3" => [ + "doc/man3/OSSL_GENERAL_NAMES_print.pod" + ], + "doc/man/man3/OSSL_HPKE_CTX_new.3" => [ + "doc/man3/OSSL_HPKE_CTX_new.pod" + ], "doc/man/man3/OSSL_HTTP_REQ_CTX.3" => [ "doc/man3/OSSL_HTTP_REQ_CTX.pod" ], @@ -14516,12 +16808,24 @@ our %unified_info = ( "doc/man/man3/OSSL_HTTP_transfer.3" => [ "doc/man3/OSSL_HTTP_transfer.pod" ], + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX.3" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX.pod" + ], + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX_print.3" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX_print.pod" + ], + "doc/man/man3/OSSL_INDICATOR_set_callback.3" => [ + "doc/man3/OSSL_INDICATOR_set_callback.pod" + ], "doc/man/man3/OSSL_ITEM.3" => [ "doc/man3/OSSL_ITEM.pod" ], "doc/man/man3/OSSL_LIB_CTX.3" => [ "doc/man3/OSSL_LIB_CTX.pod" ], + "doc/man/man3/OSSL_LIB_CTX_set_conf_diagnostics.3" => [ + "doc/man3/OSSL_LIB_CTX_set_conf_diagnostics.pod" + ], "doc/man/man3/OSSL_PARAM.3" => [ "doc/man3/OSSL_PARAM.pod" ], @@ -14537,9 +16841,15 @@ our %unified_info = ( "doc/man/man3/OSSL_PARAM_int.3" => [ "doc/man3/OSSL_PARAM_int.pod" ], + "doc/man/man3/OSSL_PARAM_print_to_bio.3" => [ + "doc/man3/OSSL_PARAM_print_to_bio.pod" + ], "doc/man/man3/OSSL_PROVIDER.3" => [ "doc/man3/OSSL_PROVIDER.pod" ], + "doc/man/man3/OSSL_QUIC_client_method.3" => [ + "doc/man3/OSSL_QUIC_client_method.pod" + ], "doc/man/man3/OSSL_SELF_TEST_new.3" => [ "doc/man3/OSSL_SELF_TEST_new.pod" ], @@ -14564,6 +16874,9 @@ our %unified_info = ( "doc/man/man3/OSSL_STORE_open.3" => [ "doc/man3/OSSL_STORE_open.pod" ], + "doc/man/man3/OSSL_sleep.3" => [ + "doc/man3/OSSL_sleep.pod" + ], "doc/man/man3/OSSL_trace_enabled.3" => [ "doc/man3/OSSL_trace_enabled.pod" ], @@ -14579,6 +16892,9 @@ our %unified_info = ( "doc/man/man3/OpenSSL_version.3" => [ "doc/man3/OpenSSL_version.pod" ], + "doc/man/man3/PBMAC1_get1_pbkdf2_param.3" => [ + "doc/man3/PBMAC1_get1_pbkdf2_param.pod" + ], "doc/man/man3/PEM_X509_INFO_read_bio_ex.3" => [ "doc/man3/PEM_X509_INFO_read_bio_ex.pod" ], @@ -14615,6 +16931,9 @@ our %unified_info = ( "doc/man/man3/PKCS12_SAFEBAG_get1_cert.3" => [ "doc/man3/PKCS12_SAFEBAG_get1_cert.pod" ], + "doc/man/man3/PKCS12_SAFEBAG_set0_attrs.3" => [ + "doc/man3/PKCS12_SAFEBAG_set0_attrs.pod" + ], "doc/man/man3/PKCS12_add1_attr_by_NID.3" => [ "doc/man3/PKCS12_add1_attr_by_NID.pod" ], @@ -14888,6 +17207,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set0_CA_list.3" => [ "doc/man3/SSL_CTX_set0_CA_list.pod" ], + "doc/man/man3/SSL_CTX_set1_cert_comp_preference.3" => [ + "doc/man3/SSL_CTX_set1_cert_comp_preference.pod" + ], "doc/man/man3/SSL_CTX_set1_curves.3" => [ "doc/man3/SSL_CTX_set1_curves.pod" ], @@ -14927,6 +17249,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_default_passwd_cb.3" => [ "doc/man3/SSL_CTX_set_default_passwd_cb.pod" ], + "doc/man/man3/SSL_CTX_set_domain_flags.3" => [ + "doc/man3/SSL_CTX_set_domain_flags.pod" + ], "doc/man/man3/SSL_CTX_set_generate_session_id.3" => [ "doc/man3/SSL_CTX_set_generate_session_id.pod" ], @@ -14948,6 +17273,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_msg_callback.3" => [ "doc/man3/SSL_CTX_set_msg_callback.pod" ], + "doc/man/man3/SSL_CTX_set_new_pending_conn_cb.3" => [ + "doc/man3/SSL_CTX_set_new_pending_conn_cb.pod" + ], "doc/man/man3/SSL_CTX_set_num_tickets.3" => [ "doc/man3/SSL_CTX_set_num_tickets.pod" ], @@ -15062,6 +17390,9 @@ our %unified_info = ( "doc/man/man3/SSL_accept.3" => [ "doc/man3/SSL_accept.pod" ], + "doc/man/man3/SSL_accept_stream.3" => [ + "doc/man3/SSL_accept_stream.pod" + ], "doc/man/man3/SSL_alert_type_string.3" => [ "doc/man3/SSL_alert_type_string.pod" ], @@ -15089,9 +17420,21 @@ our %unified_info = ( "doc/man/man3/SSL_free.3" => [ "doc/man3/SSL_free.pod" ], + "doc/man/man3/SSL_get0_connection.3" => [ + "doc/man3/SSL_get0_connection.pod" + ], + "doc/man/man3/SSL_get0_group_name.3" => [ + "doc/man3/SSL_get0_group_name.pod" + ], + "doc/man/man3/SSL_get0_peer_rpk.3" => [ + "doc/man3/SSL_get0_peer_rpk.pod" + ], "doc/man/man3/SSL_get0_peer_scts.3" => [ "doc/man3/SSL_get0_peer_scts.pod" ], + "doc/man/man3/SSL_get1_builtin_sigalgs.3" => [ + "doc/man3/SSL_get1_builtin_sigalgs.pod" + ], "doc/man/man3/SSL_get_SSL_CTX.3" => [ "doc/man3/SSL_get_SSL_CTX.pod" ], @@ -15107,6 +17450,9 @@ our %unified_info = ( "doc/man/man3/SSL_get_client_random.3" => [ "doc/man3/SSL_get_client_random.pod" ], + "doc/man/man3/SSL_get_conn_close_info.3" => [ + "doc/man3/SSL_get_conn_close_info.pod" + ], "doc/man/man3/SSL_get_current_cipher.3" => [ "doc/man3/SSL_get_current_cipher.pod" ], @@ -15116,12 +17462,18 @@ our %unified_info = ( "doc/man/man3/SSL_get_error.3" => [ "doc/man3/SSL_get_error.pod" ], + "doc/man/man3/SSL_get_event_timeout.3" => [ + "doc/man3/SSL_get_event_timeout.pod" + ], "doc/man/man3/SSL_get_extms_support.3" => [ "doc/man3/SSL_get_extms_support.pod" ], "doc/man/man3/SSL_get_fd.3" => [ "doc/man3/SSL_get_fd.pod" ], + "doc/man/man3/SSL_get_handshake_rtt.3" => [ + "doc/man3/SSL_get_handshake_rtt.pod" + ], "doc/man/man3/SSL_get_peer_cert_chain.3" => [ "doc/man3/SSL_get_peer_cert_chain.pod" ], @@ -15140,12 +17492,24 @@ our %unified_info = ( "doc/man/man3/SSL_get_rbio.3" => [ "doc/man3/SSL_get_rbio.pod" ], + "doc/man/man3/SSL_get_rpoll_descriptor.3" => [ + "doc/man3/SSL_get_rpoll_descriptor.pod" + ], "doc/man/man3/SSL_get_session.3" => [ "doc/man3/SSL_get_session.pod" ], "doc/man/man3/SSL_get_shared_sigalgs.3" => [ "doc/man3/SSL_get_shared_sigalgs.pod" ], + "doc/man/man3/SSL_get_stream_id.3" => [ + "doc/man3/SSL_get_stream_id.pod" + ], + "doc/man/man3/SSL_get_stream_read_state.3" => [ + "doc/man3/SSL_get_stream_read_state.pod" + ], + "doc/man/man3/SSL_get_value_uint.3" => [ + "doc/man3/SSL_get_value_uint.pod" + ], "doc/man/man3/SSL_get_verify_result.3" => [ "doc/man3/SSL_get_verify_result.pod" ], @@ -15155,9 +17519,15 @@ our %unified_info = ( "doc/man/man3/SSL_group_to_name.3" => [ "doc/man3/SSL_group_to_name.pod" ], + "doc/man/man3/SSL_handle_events.3" => [ + "doc/man3/SSL_handle_events.pod" + ], "doc/man/man3/SSL_in_init.3" => [ "doc/man3/SSL_in_init.pod" ], + "doc/man/man3/SSL_inject_net_dgram.3" => [ + "doc/man3/SSL_inject_net_dgram.pod" + ], "doc/man/man3/SSL_key_update.3" => [ "doc/man3/SSL_key_update.pod" ], @@ -15170,9 +17540,21 @@ our %unified_info = ( "doc/man/man3/SSL_new.3" => [ "doc/man3/SSL_new.pod" ], + "doc/man/man3/SSL_new_domain.3" => [ + "doc/man3/SSL_new_domain.pod" + ], + "doc/man/man3/SSL_new_listener.3" => [ + "doc/man3/SSL_new_listener.pod" + ], + "doc/man/man3/SSL_new_stream.3" => [ + "doc/man3/SSL_new_stream.pod" + ], "doc/man/man3/SSL_pending.3" => [ "doc/man3/SSL_pending.pod" ], + "doc/man/man3/SSL_poll.3" => [ + "doc/man3/SSL_poll.pod" + ], "doc/man/man3/SSL_read.3" => [ "doc/man3/SSL_read.pod" ], @@ -15188,24 +17570,45 @@ our %unified_info = ( "doc/man/man3/SSL_set1_host.3" => [ "doc/man3/SSL_set1_host.pod" ], + "doc/man/man3/SSL_set1_initial_peer_addr.3" => [ + "doc/man3/SSL_set1_initial_peer_addr.pod" + ], + "doc/man/man3/SSL_set1_server_cert_type.3" => [ + "doc/man3/SSL_set1_server_cert_type.pod" + ], "doc/man/man3/SSL_set_async_callback.3" => [ "doc/man3/SSL_set_async_callback.pod" ], "doc/man/man3/SSL_set_bio.3" => [ "doc/man3/SSL_set_bio.pod" ], + "doc/man/man3/SSL_set_blocking_mode.3" => [ + "doc/man3/SSL_set_blocking_mode.pod" + ], "doc/man/man3/SSL_set_connect_state.3" => [ "doc/man3/SSL_set_connect_state.pod" ], + "doc/man/man3/SSL_set_default_stream_mode.3" => [ + "doc/man3/SSL_set_default_stream_mode.pod" + ], "doc/man/man3/SSL_set_fd.3" => [ "doc/man3/SSL_set_fd.pod" ], + "doc/man/man3/SSL_set_incoming_stream_policy.3" => [ + "doc/man3/SSL_set_incoming_stream_policy.pod" + ], + "doc/man/man3/SSL_set_quic_tls_cbs.3" => [ + "doc/man3/SSL_set_quic_tls_cbs.pod" + ], "doc/man/man3/SSL_set_retry_verify.3" => [ "doc/man3/SSL_set_retry_verify.pod" ], "doc/man/man3/SSL_set_session.3" => [ "doc/man3/SSL_set_session.pod" ], + "doc/man/man3/SSL_set_session_secret_cb.3" => [ + "doc/man3/SSL_set_session_secret_cb.pod" + ], "doc/man/man3/SSL_set_shutdown.3" => [ "doc/man3/SSL_set_shutdown.pod" ], @@ -15218,6 +17621,12 @@ our %unified_info = ( "doc/man/man3/SSL_state_string.3" => [ "doc/man3/SSL_state_string.pod" ], + "doc/man/man3/SSL_stream_conclude.3" => [ + "doc/man3/SSL_stream_conclude.pod" + ], + "doc/man/man3/SSL_stream_reset.3" => [ + "doc/man3/SSL_stream_reset.pod" + ], "doc/man/man3/SSL_want.3" => [ "doc/man3/SSL_want.pod" ], @@ -15227,8 +17636,8 @@ our %unified_info = ( "doc/man/man3/TS_RESP_CTX_new.3" => [ "doc/man3/TS_RESP_CTX_new.pod" ], - "doc/man/man3/TS_VERIFY_CTX_set_certs.3" => [ - "doc/man3/TS_VERIFY_CTX_set_certs.pod" + "doc/man/man3/TS_VERIFY_CTX.3" => [ + "doc/man3/TS_VERIFY_CTX.pod" ], "doc/man/man3/UI_STRING.3" => [ "doc/man3/UI_STRING.pod" @@ -15242,11 +17651,26 @@ our %unified_info = ( "doc/man/man3/UI_new.3" => [ "doc/man3/UI_new.pod" ], - "doc/man/man3/X509V3_get_d2i.3" => [ - "doc/man3/X509V3_get_d2i.pod" + "doc/man/man3/X509V3_get_d2i.3" => [ + "doc/man3/X509V3_get_d2i.pod" + ], + "doc/man/man3/X509V3_set_ctx.3" => [ + "doc/man3/X509V3_set_ctx.pod" + ], + "doc/man/man3/X509_ACERT_add1_attr.3" => [ + "doc/man3/X509_ACERT_add1_attr.pod" + ], + "doc/man/man3/X509_ACERT_add_attr_nconf.3" => [ + "doc/man3/X509_ACERT_add_attr_nconf.pod" + ], + "doc/man/man3/X509_ACERT_get0_holder_baseCertId.3" => [ + "doc/man3/X509_ACERT_get0_holder_baseCertId.pod" + ], + "doc/man/man3/X509_ACERT_get_attr.3" => [ + "doc/man3/X509_ACERT_get_attr.pod" ], - "doc/man/man3/X509V3_set_ctx.3" => [ - "doc/man3/X509V3_set_ctx.pod" + "doc/man/man3/X509_ACERT_print_ex.3" => [ + "doc/man3/X509_ACERT_print_ex.pod" ], "doc/man/man3/X509_ALGOR_dup.3" => [ "doc/man3/X509_ALGOR_dup.pod" @@ -15296,6 +17720,9 @@ our %unified_info = ( "doc/man/man3/X509_SIG_get0.3" => [ "doc/man3/X509_SIG_get0.pod" ], + "doc/man/man3/X509_STORE_CTX_get_by_subject.3" => [ + "doc/man3/X509_STORE_CTX_get_by_subject.pod" + ], "doc/man/man3/X509_STORE_CTX_get_error.3" => [ "doc/man3/X509_STORE_CTX_get_error.pod" ], @@ -15362,6 +17789,9 @@ our %unified_info = ( "doc/man/man3/X509_get0_uids.3" => [ "doc/man3/X509_get0_uids.pod" ], + "doc/man/man3/X509_get_default_cert_file.3" => [ + "doc/man3/X509_get_default_cert_file.pod" + ], "doc/man/man3/X509_get_extension_flags.3" => [ "doc/man3/X509_get_extension_flags.pod" ], @@ -15485,9 +17915,15 @@ our %unified_info = ( "doc/man/man7/EVP_CIPHER-SM4.7" => [ "doc/man7/EVP_CIPHER-SM4.pod" ], + "doc/man/man7/EVP_KDF-ARGON2.7" => [ + "doc/man7/EVP_KDF-ARGON2.pod" + ], "doc/man/man7/EVP_KDF-HKDF.7" => [ "doc/man7/EVP_KDF-HKDF.pod" ], + "doc/man/man7/EVP_KDF-HMAC-DRBG.7" => [ + "doc/man7/EVP_KDF-HMAC-DRBG.pod" + ], "doc/man/man7/EVP_KDF-KB.7" => [ "doc/man7/EVP_KDF-KB.pod" ], @@ -15503,6 +17939,9 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-PKCS12KDF.7" => [ "doc/man7/EVP_KDF-PKCS12KDF.pod" ], + "doc/man/man7/EVP_KDF-PVKKDF.7" => [ + "doc/man7/EVP_KDF-PVKKDF.pod" + ], "doc/man/man7/EVP_KDF-SCRYPT.7" => [ "doc/man7/EVP_KDF-SCRYPT.pod" ], @@ -15527,9 +17966,18 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-X963.7" => [ "doc/man7/EVP_KDF-X963.pod" ], + "doc/man/man7/EVP_KEM-EC.7" => [ + "doc/man7/EVP_KEM-EC.pod" + ], + "doc/man/man7/EVP_KEM-ML-KEM.7" => [ + "doc/man7/EVP_KEM-ML-KEM.pod" + ], "doc/man/man7/EVP_KEM-RSA.7" => [ "doc/man7/EVP_KEM-RSA.pod" ], + "doc/man/man7/EVP_KEM-X25519.7" => [ + "doc/man7/EVP_KEM-X25519.pod" + ], "doc/man/man7/EVP_KEYEXCH-DH.7" => [ "doc/man7/EVP_KEYEXCH-DH.pod" ], @@ -15563,6 +18011,9 @@ our %unified_info = ( "doc/man/man7/EVP_MD-BLAKE2.7" => [ "doc/man7/EVP_MD-BLAKE2.pod" ], + "doc/man/man7/EVP_MD-KECCAK.7" => [ + "doc/man7/EVP_MD-KECCAK.pod" + ], "doc/man/man7/EVP_MD-MD2.7" => [ "doc/man7/EVP_MD-MD2.pod" ], @@ -15620,15 +18071,27 @@ our %unified_info = ( "doc/man/man7/EVP_PKEY-HMAC.7" => [ "doc/man7/EVP_PKEY-HMAC.pod" ], + "doc/man/man7/EVP_PKEY-ML-DSA.7" => [ + "doc/man7/EVP_PKEY-ML-DSA.pod" + ], + "doc/man/man7/EVP_PKEY-ML-KEM.7" => [ + "doc/man7/EVP_PKEY-ML-KEM.pod" + ], "doc/man/man7/EVP_PKEY-RSA.7" => [ "doc/man7/EVP_PKEY-RSA.pod" ], + "doc/man/man7/EVP_PKEY-SLH-DSA.7" => [ + "doc/man7/EVP_PKEY-SLH-DSA.pod" + ], "doc/man/man7/EVP_PKEY-SM2.7" => [ "doc/man7/EVP_PKEY-SM2.pod" ], "doc/man/man7/EVP_PKEY-X25519.7" => [ "doc/man7/EVP_PKEY-X25519.pod" ], + "doc/man/man7/EVP_RAND-CRNG-TEST.7" => [ + "doc/man7/EVP_RAND-CRNG-TEST.pod" + ], "doc/man/man7/EVP_RAND-CTR-DRBG.7" => [ "doc/man7/EVP_RAND-CTR-DRBG.pod" ], @@ -15638,6 +18101,9 @@ our %unified_info = ( "doc/man/man7/EVP_RAND-HMAC-DRBG.7" => [ "doc/man7/EVP_RAND-HMAC-DRBG.pod" ], + "doc/man/man7/EVP_RAND-JITTER.7" => [ + "doc/man7/EVP_RAND-JITTER.pod" + ], "doc/man/man7/EVP_RAND-SEED-SRC.7" => [ "doc/man7/EVP_RAND-SEED-SRC.pod" ], @@ -15659,9 +18125,15 @@ our %unified_info = ( "doc/man/man7/EVP_SIGNATURE-HMAC.7" => [ "doc/man7/EVP_SIGNATURE-HMAC.pod" ], + "doc/man/man7/EVP_SIGNATURE-ML-DSA.7" => [ + "doc/man7/EVP_SIGNATURE-ML-DSA.pod" + ], "doc/man/man7/EVP_SIGNATURE-RSA.7" => [ "doc/man7/EVP_SIGNATURE-RSA.pod" ], + "doc/man/man7/EVP_SIGNATURE-SLH-DSA.7" => [ + "doc/man7/EVP_SIGNATURE-SLH-DSA.pod" + ], "doc/man/man7/OSSL_PROVIDER-FIPS.7" => [ "doc/man7/OSSL_PROVIDER-FIPS.pod" ], @@ -15677,6 +18149,9 @@ our %unified_info = ( "doc/man/man7/OSSL_PROVIDER-null.7" => [ "doc/man7/OSSL_PROVIDER-null.pod" ], + "doc/man/man7/OSSL_STORE-winstore.7" => [ + "doc/man7/OSSL_STORE-winstore.pod" + ], "doc/man/man7/RAND.7" => [ "doc/man7/RAND.pod" ], @@ -15689,9 +18164,6 @@ our %unified_info = ( "doc/man/man7/bio.7" => [ "doc/man7/bio.pod" ], - "doc/man/man7/crypto.7" => [ - "doc/man7/crypto.pod" - ], "doc/man/man7/ct.7" => [ "doc/man7/ct.pod" ], @@ -15722,9 +18194,6 @@ our %unified_info = ( "doc/man/man7/life_cycle-rand.7" => [ "doc/man7/life_cycle-rand.pod" ], - "doc/man/man7/migration_guide.7" => [ - "doc/man7/migration_guide.pod" - ], "doc/man/man7/openssl-core.h.7" => [ "doc/man7/openssl-core.h.pod" ], @@ -15740,12 +18209,66 @@ our %unified_info = ( "doc/man/man7/openssl-glossary.7" => [ "doc/man7/openssl-glossary.pod" ], + "doc/man/man7/openssl-qlog.7" => [ + "doc/man7/openssl-qlog.pod" + ], + "doc/man/man7/openssl-quic-concurrency.7" => [ + "doc/man7/openssl-quic-concurrency.pod" + ], + "doc/man/man7/openssl-quic.7" => [ + "doc/man7/openssl-quic.pod" + ], "doc/man/man7/openssl-threads.7" => [ "doc/man7/openssl-threads.pod" ], "doc/man/man7/openssl_user_macros.7" => [ "doc/man7/openssl_user_macros.pod" ], + "doc/man/man7/ossl-guide-introduction.7" => [ + "doc/man7/ossl-guide-introduction.pod" + ], + "doc/man/man7/ossl-guide-libcrypto-introduction.7" => [ + "doc/man7/ossl-guide-libcrypto-introduction.pod" + ], + "doc/man/man7/ossl-guide-libraries-introduction.7" => [ + "doc/man7/ossl-guide-libraries-introduction.pod" + ], + "doc/man/man7/ossl-guide-libssl-introduction.7" => [ + "doc/man7/ossl-guide-libssl-introduction.pod" + ], + "doc/man/man7/ossl-guide-migration.7" => [ + "doc/man7/ossl-guide-migration.pod" + ], + "doc/man/man7/ossl-guide-quic-client-block.7" => [ + "doc/man7/ossl-guide-quic-client-block.pod" + ], + "doc/man/man7/ossl-guide-quic-client-non-block.7" => [ + "doc/man7/ossl-guide-quic-client-non-block.pod" + ], + "doc/man/man7/ossl-guide-quic-introduction.7" => [ + "doc/man7/ossl-guide-quic-introduction.pod" + ], + "doc/man/man7/ossl-guide-quic-multi-stream.7" => [ + "doc/man7/ossl-guide-quic-multi-stream.pod" + ], + "doc/man/man7/ossl-guide-quic-server-block.7" => [ + "doc/man7/ossl-guide-quic-server-block.pod" + ], + "doc/man/man7/ossl-guide-quic-server-non-block.7" => [ + "doc/man7/ossl-guide-quic-server-non-block.pod" + ], + "doc/man/man7/ossl-guide-tls-client-block.7" => [ + "doc/man7/ossl-guide-tls-client-block.pod" + ], + "doc/man/man7/ossl-guide-tls-client-non-block.7" => [ + "doc/man7/ossl-guide-tls-client-non-block.pod" + ], + "doc/man/man7/ossl-guide-tls-introduction.7" => [ + "doc/man7/ossl-guide-tls-introduction.pod" + ], + "doc/man/man7/ossl-guide-tls-server-block.7" => [ + "doc/man7/ossl-guide-tls-server-block.pod" + ], "doc/man/man7/ossl_store-file.7" => [ "doc/man7/ossl_store-file.pod" ], @@ -15800,6 +18323,9 @@ our %unified_info = ( "doc/man/man7/provider-signature.7" => [ "doc/man7/provider-signature.pod" ], + "doc/man/man7/provider-skeymgmt.7" => [ + "doc/man7/provider-skeymgmt.pod" + ], "doc/man/man7/provider-storemgmt.7" => [ "doc/man7/provider-storemgmt.pod" ], @@ -15809,9 +18335,6 @@ our %unified_info = ( "doc/man/man7/proxy-certificates.7" => [ "doc/man7/proxy-certificates.pod" ], - "doc/man/man7/ssl.7" => [ - "doc/man7/ssl.pod" - ], "doc/man/man7/x509.7" => [ "doc/man7/x509.pod" ], @@ -15947,6 +18470,9 @@ our %unified_info = ( "doc/man1/openssl-sess_id.pod" => [ "doc/man1/openssl-sess_id.pod.in" ], + "doc/man1/openssl-skeyutl.pod" => [ + "doc/man1/openssl-skeyutl.pod.in" + ], "doc/man1/openssl-smime.pod" => [ "doc/man1/openssl-smime.pod.in" ], @@ -15983,12 +18509,30 @@ our %unified_info = ( "engines/e_padlock-x86_64.s" => [ "engines/asm/e_padlock-x86_64.pl" ], + "exporters/OpenSSLConfig.cmake" => [ + "exporters/cmake/OpenSSLConfig.cmake.in" + ], + "exporters/OpenSSLConfigVersion.cmake" => [ + "exporters/cmake/OpenSSLConfigVersion.cmake.in" + ], + "exporters/libcrypto.pc" => [ + "exporters/pkg-config/libcrypto.pc.in" + ], + "exporters/libssl.pc" => [ + "exporters/pkg-config/libssl.pc.in" + ], + "exporters/openssl.pc" => [ + "exporters/pkg-config/openssl.pc.in" + ], "include/crypto/bn_conf.h" => [ "include/crypto/bn_conf.h.in" ], "include/crypto/dso_conf.h" => [ "include/crypto/dso_conf.h.in" ], + "include/internal/param_names.h" => [ + "include/internal/param_names.h.in" + ], "include/openssl/asn1.h" => [ "include/openssl/asn1.h.in" ], @@ -16004,12 +18548,18 @@ our %unified_info = ( "include/openssl/cms.h" => [ "include/openssl/cms.h.in" ], + "include/openssl/comp.h" => [ + "include/openssl/comp.h.in" + ], "include/openssl/conf.h" => [ "include/openssl/conf.h.in" ], "include/openssl/configuration.h" => [ "include/openssl/configuration.h.in" ], + "include/openssl/core_names.h" => [ + "include/openssl/core_names.h.in" + ], "include/openssl/crmf.h" => [ "include/openssl/crmf.h.in" ], @@ -16058,20 +18608,47 @@ our %unified_info = ( "include/openssl/x509.h" => [ "include/openssl/x509.h.in" ], + "include/openssl/x509_acert.h" => [ + "include/openssl/x509_acert.h.in" + ], "include/openssl/x509_vfy.h" => [ "include/openssl/x509_vfy.h.in" ], "include/openssl/x509v3.h" => [ "include/openssl/x509v3.h.in" ], + "installdata.pm" => [ + "util/mkinstallvars.pl", + "\"PREFIX=\$(INSTALLTOP)\"", + "BINDIR=bin", + "\"LIBDIR=\$(LIBDIR)\"", + "\"libdir=\$(libdir)\"", + "INCLUDEDIR=include", + "APPLINKDIR=include/openssl", + "\"ENGINESDIR=\$(ENGINESDIR)\"", + "\"MODULESDIR=\$(MODULESDIR)\"", + "\"PKGCONFIGDIR=\$(PKGCONFIGDIR)\"", + "\"CMAKECONFIGDIR=\$(CMAKECONFIGDIR)\"", + "\"LDLIBS=\$(LIB_EX_LIBS)\"", + "\"VERSION=\$(VERSION)\"" + ], "libcrypto.ld" => [ "util/libcrypto.num", "libcrypto" ], + "libcrypto.pc" => [ + "exporters/pkg-config/libcrypto.pc.in" + ], "libssl.ld" => [ "util/libssl.num", "libssl" ], + "libssl.pc" => [ + "exporters/pkg-config/libssl.pc.in" + ], + "openssl.pc" => [ + "exporters/pkg-config/openssl.pc.in" + ], "providers/common/der/der_digests_gen.c" => [ "providers/common/der/der_digests_gen.c.in" ], @@ -16084,9 +18661,15 @@ our %unified_info = ( "providers/common/der/der_ecx_gen.c" => [ "providers/common/der/der_ecx_gen.c.in" ], + "providers/common/der/der_ml_dsa_gen.c" => [ + "providers/common/der/der_ml_dsa_gen.c.in" + ], "providers/common/der/der_rsa_gen.c" => [ "providers/common/der/der_rsa_gen.c.in" ], + "providers/common/der/der_slh_dsa_gen.c" => [ + "providers/common/der/der_slh_dsa_gen.c.in" + ], "providers/common/der/der_sm2_gen.c" => [ "providers/common/der/der_sm2_gen.c.in" ], @@ -16105,9 +18688,15 @@ our %unified_info = ( "providers/common/include/prov/der_ecx.h" => [ "providers/common/include/prov/der_ecx.h.in" ], + "providers/common/include/prov/der_ml_dsa.h" => [ + "providers/common/include/prov/der_ml_dsa.h.in" + ], "providers/common/include/prov/der_rsa.h" => [ "providers/common/include/prov/der_rsa.h.in" ], + "providers/common/include/prov/der_slh_dsa.h" => [ + "providers/common/include/prov/der_slh_dsa.h.in" + ], "providers/common/include/prov/der_sm2.h" => [ "providers/common/include/prov/der_sm2.h.in" ], @@ -16149,6 +18738,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "buffer" ], + "test/buildtest_byteorder.c" => [ + "test/generate_buildtest.pl", + "byteorder" + ], "test/buildtest_camellia.c" => [ "test/generate_buildtest.pl", "camellia" @@ -16181,10 +18774,6 @@ our %unified_info = ( "test/generate_buildtest.pl", "core_dispatch" ], - "test/buildtest_core_names.c" => [ - "test/generate_buildtest.pl", - "core_names" - ], "test/buildtest_core_object.c" => [ "test/generate_buildtest.pl", "core_object" @@ -16217,6 +18806,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "e_os2" ], + "test/buildtest_e_ostime.c" => [ + "test/generate_buildtest.pl", + "e_ostime" + ], "test/buildtest_ebcdic.c" => [ "test/generate_buildtest.pl", "ebcdic" @@ -16253,6 +18846,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "hmac" ], + "test/buildtest_hpke.c" => [ + "test/generate_buildtest.pl", + "hpke" + ], "test/buildtest_http.c" => [ "test/generate_buildtest.pl", "http" @@ -16261,6 +18858,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "idea" ], + "test/buildtest_indicator.c" => [ + "test/generate_buildtest.pl", + "indicator" + ], "test/buildtest_kdf.c" => [ "test/generate_buildtest.pl", "kdf" @@ -16281,6 +18882,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "mdc2" ], + "test/buildtest_ml_kem.c" => [ + "test/generate_buildtest.pl", + "ml_kem" + ], "test/buildtest_modes.c" => [ "test/generate_buildtest.pl", "modes" @@ -16321,6 +18926,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "provider" ], + "test/buildtest_quic.c" => [ + "test/generate_buildtest.pl", + "quic" + ], "test/buildtest_rand.c" => [ "test/generate_buildtest.pl", "rand" @@ -16377,6 +18986,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "symhacks" ], + "test/buildtest_thread.c" => [ + "test/generate_buildtest.pl", + "thread" + ], "test/buildtest_tls1.c" => [ "test/generate_buildtest.pl", "tls1" @@ -16457,6 +19070,7 @@ our %unified_info = ( "doc/html/man1/openssl-s_server.html", "doc/html/man1/openssl-s_time.html", "doc/html/man1/openssl-sess_id.html", + "doc/html/man1/openssl-skeyutl.html", "doc/html/man1/openssl-smime.html", "doc/html/man1/openssl-speed.html", "doc/html/man1/openssl-spkac.html", @@ -16506,6 +19120,7 @@ our %unified_info = ( "doc/html/man3/BIO_find_type.html", "doc/html/man3/BIO_get_data.html", "doc/html/man3/BIO_get_ex_new_index.html", + "doc/html/man3/BIO_get_rpoll_descriptor.html", "doc/html/man3/BIO_meth_new.html", "doc/html/man3/BIO_new.html", "doc/html/man3/BIO_new_CMS.html", @@ -16518,11 +19133,13 @@ our %unified_info = ( "doc/html/man3/BIO_s_connect.html", "doc/html/man3/BIO_s_core.html", "doc/html/man3/BIO_s_datagram.html", + "doc/html/man3/BIO_s_dgram_pair.html", "doc/html/man3/BIO_s_fd.html", "doc/html/man3/BIO_s_file.html", "doc/html/man3/BIO_s_mem.html", "doc/html/man3/BIO_s_null.html", "doc/html/man3/BIO_s_socket.html", + "doc/html/man3/BIO_sendmmsg.html", "doc/html/man3/BIO_set_callback.html", "doc/html/man3/BIO_should_retry.html", "doc/html/man3/BIO_socket_wait.html", @@ -16547,6 +19164,7 @@ our %unified_info = ( "doc/html/man3/BN_swap.html", "doc/html/man3/BN_zero.html", "doc/html/man3/BUF_MEM_new.html", + "doc/html/man3/CMAC_CTX.html", "doc/html/man3/CMS_EncryptedData_decrypt.html", "doc/html/man3/CMS_EncryptedData_encrypt.html", "doc/html/man3/CMS_EnvelopedData_create.html", @@ -16569,6 +19187,7 @@ our %unified_info = ( "doc/html/man3/CMS_uncompress.html", "doc/html/man3/CMS_verify.html", "doc/html/man3/CMS_verify_receipt.html", + "doc/html/man3/COMP_CTX_new.html", "doc/html/man3/CONF_modules_free.html", "doc/html/man3/CONF_modules_load_file.html", "doc/html/man3/CRYPTO_THREAD_run_once.html", @@ -16602,6 +19221,8 @@ our %unified_info = ( "doc/html/man3/DSA_size.html", "doc/html/man3/DTLS_get_data_mtu.html", "doc/html/man3/DTLS_set_timer_cb.html", + "doc/html/man3/DTLSv1_get_timeout.html", + "doc/html/man3/DTLSv1_handle_timeout.html", "doc/html/man3/DTLSv1_listen.html", "doc/html/man3/ECDSA_SIG_new.html", "doc/html/man3/ECDSA_sign.html", @@ -16648,6 +19269,7 @@ our %unified_info = ( "doc/html/man3/EVP_PKEY_CTX_ctrl.html", "doc/html/man3/EVP_PKEY_CTX_get0_libctx.html", "doc/html/man3/EVP_PKEY_CTX_get0_pkey.html", + "doc/html/man3/EVP_PKEY_CTX_get_algor.html", "doc/html/man3/EVP_PKEY_CTX_new.html", "doc/html/man3/EVP_PKEY_CTX_set1_pbe_pass.html", "doc/html/man3/EVP_PKEY_CTX_set_hkdf_md.html", @@ -16687,6 +19309,8 @@ our %unified_info = ( "doc/html/man3/EVP_PKEY_verify_recover.html", "doc/html/man3/EVP_RAND.html", "doc/html/man3/EVP_SIGNATURE.html", + "doc/html/man3/EVP_SKEY.html", + "doc/html/man3/EVP_SKEYMGMT.html", "doc/html/man3/EVP_SealInit.html", "doc/html/man3/EVP_SignInit.html", "doc/html/man3/EVP_VerifyInit.html", @@ -16716,6 +19340,7 @@ our %unified_info = ( "doc/html/man3/EVP_sm3.html", "doc/html/man3/EVP_sm4_cbc.html", "doc/html/man3/EVP_whirlpool.html", + "doc/html/man3/GENERAL_NAME.html", "doc/html/man3/HMAC.html", "doc/html/man3/MD5.html", "doc/html/man3/MDC2_Init.html", @@ -16740,14 +19365,18 @@ our %unified_info = ( "doc/html/man3/OPENSSL_init_ssl.html", "doc/html/man3/OPENSSL_instrument_bus.html", "doc/html/man3/OPENSSL_load_builtin_modules.html", + "doc/html/man3/OPENSSL_load_u16_le.html", "doc/html/man3/OPENSSL_malloc.html", + "doc/html/man3/OPENSSL_riscvcap.html", "doc/html/man3/OPENSSL_s390xcap.html", "doc/html/man3/OPENSSL_secure_malloc.html", "doc/html/man3/OPENSSL_strcasecmp.html", "doc/html/man3/OSSL_ALGORITHM.html", "doc/html/man3/OSSL_CALLBACK.html", + "doc/html/man3/OSSL_CMP_ATAV_set0.html", "doc/html/man3/OSSL_CMP_CTX_new.html", "doc/html/man3/OSSL_CMP_HDR_get0_transactionID.html", + "doc/html/man3/OSSL_CMP_ITAV_new_caCerts.html", "doc/html/man3/OSSL_CMP_ITAV_set0.html", "doc/html/man3/OSSL_CMP_MSG_get0_header.html", "doc/html/man3/OSSL_CMP_MSG_http_perform.html", @@ -16771,18 +19400,27 @@ our %unified_info = ( "doc/html/man3/OSSL_ENCODER_CTX.html", "doc/html/man3/OSSL_ENCODER_CTX_new_for_pkey.html", "doc/html/man3/OSSL_ENCODER_to_bio.html", + "doc/html/man3/OSSL_ERR_STATE_save.html", "doc/html/man3/OSSL_ESS_check_signing_certs.html", + "doc/html/man3/OSSL_GENERAL_NAMES_print.html", + "doc/html/man3/OSSL_HPKE_CTX_new.html", "doc/html/man3/OSSL_HTTP_REQ_CTX.html", "doc/html/man3/OSSL_HTTP_parse_url.html", "doc/html/man3/OSSL_HTTP_transfer.html", + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX.html", + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX_print.html", + "doc/html/man3/OSSL_INDICATOR_set_callback.html", "doc/html/man3/OSSL_ITEM.html", "doc/html/man3/OSSL_LIB_CTX.html", + "doc/html/man3/OSSL_LIB_CTX_set_conf_diagnostics.html", "doc/html/man3/OSSL_PARAM.html", "doc/html/man3/OSSL_PARAM_BLD.html", "doc/html/man3/OSSL_PARAM_allocate_from_text.html", "doc/html/man3/OSSL_PARAM_dup.html", "doc/html/man3/OSSL_PARAM_int.html", + "doc/html/man3/OSSL_PARAM_print_to_bio.html", "doc/html/man3/OSSL_PROVIDER.html", + "doc/html/man3/OSSL_QUIC_client_method.html", "doc/html/man3/OSSL_SELF_TEST_new.html", "doc/html/man3/OSSL_SELF_TEST_set_callback.html", "doc/html/man3/OSSL_STORE_INFO.html", @@ -16791,11 +19429,13 @@ our %unified_info = ( "doc/html/man3/OSSL_STORE_attach.html", "doc/html/man3/OSSL_STORE_expect.html", "doc/html/man3/OSSL_STORE_open.html", + "doc/html/man3/OSSL_sleep.html", "doc/html/man3/OSSL_trace_enabled.html", "doc/html/man3/OSSL_trace_get_category_num.html", "doc/html/man3/OSSL_trace_set_channel.html", "doc/html/man3/OpenSSL_add_all_algorithms.html", "doc/html/man3/OpenSSL_version.html", + "doc/html/man3/PBMAC1_get1_pbkdf2_param.html", "doc/html/man3/PEM_X509_INFO_read_bio_ex.html", "doc/html/man3/PEM_bytes_read_bio.html", "doc/html/man3/PEM_read.html", @@ -16808,6 +19448,7 @@ our %unified_info = ( "doc/html/man3/PKCS12_SAFEBAG_create_cert.html", "doc/html/man3/PKCS12_SAFEBAG_get0_attrs.html", "doc/html/man3/PKCS12_SAFEBAG_get1_cert.html", + "doc/html/man3/PKCS12_SAFEBAG_set0_attrs.html", "doc/html/man3/PKCS12_add1_attr_by_NID.html", "doc/html/man3/PKCS12_add_CSPName_asc.html", "doc/html/man3/PKCS12_add_cert.html", @@ -16899,6 +19540,7 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_sess_set_get_cb.html", "doc/html/man3/SSL_CTX_sessions.html", "doc/html/man3/SSL_CTX_set0_CA_list.html", + "doc/html/man3/SSL_CTX_set1_cert_comp_preference.html", "doc/html/man3/SSL_CTX_set1_curves.html", "doc/html/man3/SSL_CTX_set1_sigalgs.html", "doc/html/man3/SSL_CTX_set1_verify_cert_store.html", @@ -16912,6 +19554,7 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_ct_validation_callback.html", "doc/html/man3/SSL_CTX_set_ctlog_list_file.html", "doc/html/man3/SSL_CTX_set_default_passwd_cb.html", + "doc/html/man3/SSL_CTX_set_domain_flags.html", "doc/html/man3/SSL_CTX_set_generate_session_id.html", "doc/html/man3/SSL_CTX_set_info_callback.html", "doc/html/man3/SSL_CTX_set_keylog_callback.html", @@ -16919,6 +19562,7 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_min_proto_version.html", "doc/html/man3/SSL_CTX_set_mode.html", "doc/html/man3/SSL_CTX_set_msg_callback.html", + "doc/html/man3/SSL_CTX_set_new_pending_conn_cb.html", "doc/html/man3/SSL_CTX_set_num_tickets.html", "doc/html/man3/SSL_CTX_set_options.html", "doc/html/man3/SSL_CTX_set_psk_client_callback.html", @@ -16957,6 +19601,7 @@ our %unified_info = ( "doc/html/man3/SSL_SESSION_print.html", "doc/html/man3/SSL_SESSION_set1_id.html", "doc/html/man3/SSL_accept.html", + "doc/html/man3/SSL_accept_stream.html", "doc/html/man3/SSL_alert_type_string.html", "doc/html/man3/SSL_alloc_buffers.html", "doc/html/man3/SSL_check_chain.html", @@ -16966,59 +19611,90 @@ our %unified_info = ( "doc/html/man3/SSL_export_keying_material.html", "doc/html/man3/SSL_extension_supported.html", "doc/html/man3/SSL_free.html", + "doc/html/man3/SSL_get0_connection.html", + "doc/html/man3/SSL_get0_group_name.html", + "doc/html/man3/SSL_get0_peer_rpk.html", "doc/html/man3/SSL_get0_peer_scts.html", + "doc/html/man3/SSL_get1_builtin_sigalgs.html", "doc/html/man3/SSL_get_SSL_CTX.html", "doc/html/man3/SSL_get_all_async_fds.html", "doc/html/man3/SSL_get_certificate.html", "doc/html/man3/SSL_get_ciphers.html", "doc/html/man3/SSL_get_client_random.html", + "doc/html/man3/SSL_get_conn_close_info.html", "doc/html/man3/SSL_get_current_cipher.html", "doc/html/man3/SSL_get_default_timeout.html", "doc/html/man3/SSL_get_error.html", + "doc/html/man3/SSL_get_event_timeout.html", "doc/html/man3/SSL_get_extms_support.html", "doc/html/man3/SSL_get_fd.html", + "doc/html/man3/SSL_get_handshake_rtt.html", "doc/html/man3/SSL_get_peer_cert_chain.html", "doc/html/man3/SSL_get_peer_certificate.html", "doc/html/man3/SSL_get_peer_signature_nid.html", "doc/html/man3/SSL_get_peer_tmp_key.html", "doc/html/man3/SSL_get_psk_identity.html", "doc/html/man3/SSL_get_rbio.html", + "doc/html/man3/SSL_get_rpoll_descriptor.html", "doc/html/man3/SSL_get_session.html", "doc/html/man3/SSL_get_shared_sigalgs.html", + "doc/html/man3/SSL_get_stream_id.html", + "doc/html/man3/SSL_get_stream_read_state.html", + "doc/html/man3/SSL_get_value_uint.html", "doc/html/man3/SSL_get_verify_result.html", "doc/html/man3/SSL_get_version.html", "doc/html/man3/SSL_group_to_name.html", + "doc/html/man3/SSL_handle_events.html", "doc/html/man3/SSL_in_init.html", + "doc/html/man3/SSL_inject_net_dgram.html", "doc/html/man3/SSL_key_update.html", "doc/html/man3/SSL_library_init.html", "doc/html/man3/SSL_load_client_CA_file.html", "doc/html/man3/SSL_new.html", + "doc/html/man3/SSL_new_domain.html", + "doc/html/man3/SSL_new_listener.html", + "doc/html/man3/SSL_new_stream.html", "doc/html/man3/SSL_pending.html", + "doc/html/man3/SSL_poll.html", "doc/html/man3/SSL_read.html", "doc/html/man3/SSL_read_early_data.html", "doc/html/man3/SSL_rstate_string.html", "doc/html/man3/SSL_session_reused.html", "doc/html/man3/SSL_set1_host.html", + "doc/html/man3/SSL_set1_initial_peer_addr.html", + "doc/html/man3/SSL_set1_server_cert_type.html", "doc/html/man3/SSL_set_async_callback.html", "doc/html/man3/SSL_set_bio.html", + "doc/html/man3/SSL_set_blocking_mode.html", "doc/html/man3/SSL_set_connect_state.html", + "doc/html/man3/SSL_set_default_stream_mode.html", "doc/html/man3/SSL_set_fd.html", + "doc/html/man3/SSL_set_incoming_stream_policy.html", + "doc/html/man3/SSL_set_quic_tls_cbs.html", "doc/html/man3/SSL_set_retry_verify.html", "doc/html/man3/SSL_set_session.html", + "doc/html/man3/SSL_set_session_secret_cb.html", "doc/html/man3/SSL_set_shutdown.html", "doc/html/man3/SSL_set_verify_result.html", "doc/html/man3/SSL_shutdown.html", "doc/html/man3/SSL_state_string.html", + "doc/html/man3/SSL_stream_conclude.html", + "doc/html/man3/SSL_stream_reset.html", "doc/html/man3/SSL_want.html", "doc/html/man3/SSL_write.html", "doc/html/man3/TS_RESP_CTX_new.html", - "doc/html/man3/TS_VERIFY_CTX_set_certs.html", + "doc/html/man3/TS_VERIFY_CTX.html", "doc/html/man3/UI_STRING.html", "doc/html/man3/UI_UTIL_read_pw.html", "doc/html/man3/UI_create_method.html", "doc/html/man3/UI_new.html", "doc/html/man3/X509V3_get_d2i.html", "doc/html/man3/X509V3_set_ctx.html", + "doc/html/man3/X509_ACERT_add1_attr.html", + "doc/html/man3/X509_ACERT_add_attr_nconf.html", + "doc/html/man3/X509_ACERT_get0_holder_baseCertId.html", + "doc/html/man3/X509_ACERT_get_attr.html", + "doc/html/man3/X509_ACERT_print_ex.html", "doc/html/man3/X509_ALGOR_dup.html", "doc/html/man3/X509_ATTRIBUTE.html", "doc/html/man3/X509_CRL_get0_by_serial.html", @@ -17035,6 +19711,7 @@ our %unified_info = ( "doc/html/man3/X509_REQ_get_attr.html", "doc/html/man3/X509_REQ_get_extensions.html", "doc/html/man3/X509_SIG_get0.html", + "doc/html/man3/X509_STORE_CTX_get_by_subject.html", "doc/html/man3/X509_STORE_CTX_get_error.html", "doc/html/man3/X509_STORE_CTX_new.html", "doc/html/man3/X509_STORE_CTX_set_verify_cb.html", @@ -17057,6 +19734,7 @@ our %unified_info = ( "doc/html/man3/X509_get0_notBefore.html", "doc/html/man3/X509_get0_signature.html", "doc/html/man3/X509_get0_uids.html", + "doc/html/man3/X509_get_default_cert_file.html", "doc/html/man3/X509_get_extension_flags.html", "doc/html/man3/X509_get_pubkey.html", "doc/html/man3/X509_get_serialNumber.html", @@ -17102,12 +19780,15 @@ our %unified_info = ( "doc/html/man7/EVP_CIPHER-RC5.html", "doc/html/man7/EVP_CIPHER-SEED.html", "doc/html/man7/EVP_CIPHER-SM4.html", + "doc/html/man7/EVP_KDF-ARGON2.html", "doc/html/man7/EVP_KDF-HKDF.html", + "doc/html/man7/EVP_KDF-HMAC-DRBG.html", "doc/html/man7/EVP_KDF-KB.html", "doc/html/man7/EVP_KDF-KRB5KDF.html", "doc/html/man7/EVP_KDF-PBKDF1.html", "doc/html/man7/EVP_KDF-PBKDF2.html", "doc/html/man7/EVP_KDF-PKCS12KDF.html", + "doc/html/man7/EVP_KDF-PVKKDF.html", "doc/html/man7/EVP_KDF-SCRYPT.html", "doc/html/man7/EVP_KDF-SS.html", "doc/html/man7/EVP_KDF-SSHKDF.html", @@ -17116,7 +19797,10 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-X942-ASN1.html", "doc/html/man7/EVP_KDF-X942-CONCAT.html", "doc/html/man7/EVP_KDF-X963.html", + "doc/html/man7/EVP_KEM-EC.html", + "doc/html/man7/EVP_KEM-ML-KEM.html", "doc/html/man7/EVP_KEM-RSA.html", + "doc/html/man7/EVP_KEM-X25519.html", "doc/html/man7/EVP_KEYEXCH-DH.html", "doc/html/man7/EVP_KEYEXCH-ECDH.html", "doc/html/man7/EVP_KEYEXCH-X25519.html", @@ -17128,6 +19812,7 @@ our %unified_info = ( "doc/html/man7/EVP_MAC-Poly1305.html", "doc/html/man7/EVP_MAC-Siphash.html", "doc/html/man7/EVP_MD-BLAKE2.html", + "doc/html/man7/EVP_MD-KECCAK.html", "doc/html/man7/EVP_MD-MD2.html", "doc/html/man7/EVP_MD-MD4.html", "doc/html/man7/EVP_MD-MD5-SHA1.html", @@ -17147,12 +19832,17 @@ our %unified_info = ( "doc/html/man7/EVP_PKEY-EC.html", "doc/html/man7/EVP_PKEY-FFC.html", "doc/html/man7/EVP_PKEY-HMAC.html", + "doc/html/man7/EVP_PKEY-ML-DSA.html", + "doc/html/man7/EVP_PKEY-ML-KEM.html", "doc/html/man7/EVP_PKEY-RSA.html", + "doc/html/man7/EVP_PKEY-SLH-DSA.html", "doc/html/man7/EVP_PKEY-SM2.html", "doc/html/man7/EVP_PKEY-X25519.html", + "doc/html/man7/EVP_RAND-CRNG-TEST.html", "doc/html/man7/EVP_RAND-CTR-DRBG.html", "doc/html/man7/EVP_RAND-HASH-DRBG.html", "doc/html/man7/EVP_RAND-HMAC-DRBG.html", + "doc/html/man7/EVP_RAND-JITTER.html", "doc/html/man7/EVP_RAND-SEED-SRC.html", "doc/html/man7/EVP_RAND-TEST-RAND.html", "doc/html/man7/EVP_RAND.html", @@ -17160,17 +19850,19 @@ our %unified_info = ( "doc/html/man7/EVP_SIGNATURE-ECDSA.html", "doc/html/man7/EVP_SIGNATURE-ED25519.html", "doc/html/man7/EVP_SIGNATURE-HMAC.html", + "doc/html/man7/EVP_SIGNATURE-ML-DSA.html", "doc/html/man7/EVP_SIGNATURE-RSA.html", + "doc/html/man7/EVP_SIGNATURE-SLH-DSA.html", "doc/html/man7/OSSL_PROVIDER-FIPS.html", "doc/html/man7/OSSL_PROVIDER-base.html", "doc/html/man7/OSSL_PROVIDER-default.html", "doc/html/man7/OSSL_PROVIDER-legacy.html", "doc/html/man7/OSSL_PROVIDER-null.html", + "doc/html/man7/OSSL_STORE-winstore.html", "doc/html/man7/RAND.html", "doc/html/man7/RSA-PSS.html", "doc/html/man7/X25519.html", "doc/html/man7/bio.html", - "doc/html/man7/crypto.html", "doc/html/man7/ct.html", "doc/html/man7/des_modes.html", "doc/html/man7/evp.html", @@ -17181,14 +19873,31 @@ our %unified_info = ( "doc/html/man7/life_cycle-mac.html", "doc/html/man7/life_cycle-pkey.html", "doc/html/man7/life_cycle-rand.html", - "doc/html/man7/migration_guide.html", "doc/html/man7/openssl-core.h.html", "doc/html/man7/openssl-core_dispatch.h.html", "doc/html/man7/openssl-core_names.h.html", "doc/html/man7/openssl-env.html", "doc/html/man7/openssl-glossary.html", + "doc/html/man7/openssl-qlog.html", + "doc/html/man7/openssl-quic-concurrency.html", + "doc/html/man7/openssl-quic.html", "doc/html/man7/openssl-threads.html", "doc/html/man7/openssl_user_macros.html", + "doc/html/man7/ossl-guide-introduction.html", + "doc/html/man7/ossl-guide-libcrypto-introduction.html", + "doc/html/man7/ossl-guide-libraries-introduction.html", + "doc/html/man7/ossl-guide-libssl-introduction.html", + "doc/html/man7/ossl-guide-migration.html", + "doc/html/man7/ossl-guide-quic-client-block.html", + "doc/html/man7/ossl-guide-quic-client-non-block.html", + "doc/html/man7/ossl-guide-quic-introduction.html", + "doc/html/man7/ossl-guide-quic-multi-stream.html", + "doc/html/man7/ossl-guide-quic-server-block.html", + "doc/html/man7/ossl-guide-quic-server-non-block.html", + "doc/html/man7/ossl-guide-tls-client-block.html", + "doc/html/man7/ossl-guide-tls-client-non-block.html", + "doc/html/man7/ossl-guide-tls-introduction.html", + "doc/html/man7/ossl-guide-tls-server-block.html", "doc/html/man7/ossl_store-file.html", "doc/html/man7/ossl_store.html", "doc/html/man7/passphrase-encoding.html", @@ -17207,10 +19916,10 @@ our %unified_info = ( "doc/html/man7/provider-object.html", "doc/html/man7/provider-rand.html", "doc/html/man7/provider-signature.html", + "doc/html/man7/provider-skeymgmt.html", "doc/html/man7/provider-storemgmt.html", "doc/html/man7/provider.html", "doc/html/man7/proxy-certificates.html", - "doc/html/man7/ssl.html", "doc/html/man7/x509.html" ] }, @@ -17225,12 +19934,21 @@ our %unified_info = ( ] }, "includes" => { + "OpenSSLConfig.cmake" => [ + "." + ], + "OpenSSLConfigVersion.cmake" => [ + "." + ], "apps/asn1parse.o" => [ "apps" ], "apps/ca.o" => [ "apps" ], + "apps/ca_internals_test-bin-ca.o" => [ + "apps" + ], "apps/ciphers.o" => [ "apps" ], @@ -17457,6 +20175,9 @@ our %unified_info = ( "apps/openssl-bin-sess_id.o" => [ "apps" ], + "apps/openssl-bin-skeyutl.o" => [ + "apps" + ], "apps/openssl-bin-smime.o" => [ "apps" ], @@ -17544,6 +20265,9 @@ our %unified_info = ( "apps/sess_id.o" => [ "apps" ], + "apps/skeyutl.o" => [ + "apps" + ], "apps/smime.o" => [ "apps" ], @@ -17595,6 +20319,12 @@ our %unified_info = ( "crypto/aes/bsaes-armv7.o" => [ "crypto" ], + "crypto/aes/vpaes-armv8.o" => [ + "crypto" + ], + "crypto/aes/vpaes-loongarch64.o" => [ + "crypto" + ], "crypto/arm64cpuid.o" => [ "crypto" ], @@ -17646,9 +20376,15 @@ our %unified_info = ( "crypto/chacha/chacha-armv4.o" => [ "crypto" ], + "crypto/chacha/chacha-armv8-sve.o" => [ + "crypto" + ], "crypto/chacha/chacha-armv8.o" => [ "crypto" ], + "crypto/chacha/chacha-loongarch64.o" => [ + "crypto" + ], "crypto/chacha/chacha-s390x.o" => [ "crypto" ], @@ -17673,15 +20409,27 @@ our %unified_info = ( "crypto/ec/ecp_s390x_nistp.o" => [ "crypto" ], + "crypto/ec/ecp_sm2p256-armv8.o" => [ + "crypto" + ], + "crypto/ec/ecx_key.o" => [ + "crypto" + ], "crypto/ec/ecx_meth.o" => [ "crypto" ], "crypto/ec/ecx_s390x.o" => [ "crypto" ], + "crypto/ec/libcrypto-lib-ecx_key.o" => [ + "crypto" + ], "crypto/ec/libcrypto-lib-ecx_meth.o" => [ "crypto" ], + "crypto/ec/libfips-lib-ecx_key.o" => [ + "crypto" + ], "crypto/evp/e_aes.o" => [ "crypto", "crypto/modes" @@ -17753,9 +20501,18 @@ our %unified_info = ( "crypto/libfips-lib-cpuid.o" => [ "." ], + "crypto/md5/md5-aarch64.o" => [ + "crypto" + ], + "crypto/md5/md5-loongarch64.o" => [ + "crypto" + ], "crypto/md5/md5-sparcv9.o" => [ "crypto" ], + "crypto/modes/aes-gcm-armv8-unroll8_64.o" => [ + "crypto" + ], "crypto/modes/aes-gcm-armv8_64.o" => [ "crypto" ], @@ -17780,6 +20537,9 @@ our %unified_info = ( "crypto/modes/libfips-lib-gcm128.o" => [ "crypto" ], + "crypto/params_idx.c" => [ + "util/perl" + ], "crypto/poly1305/poly1305-armv4.o" => [ "crypto" ], @@ -17801,6 +20561,9 @@ our %unified_info = ( "crypto/sha/keccak1600-armv4.o" => [ "crypto" ], + "crypto/sha/keccak1600-armv8.o" => [ + "crypto" + ], "crypto/sha/sha1-armv4-large.o" => [ "crypto" ], @@ -17846,6 +20609,18 @@ our %unified_info = ( "crypto/sha/sha512-sparcv9.o" => [ "crypto" ], + "crypto/sm3/sm3-armv8.o" => [ + "crypto" + ], + "crypto/sm4/sm4-armv8.o" => [ + "crypto" + ], + "crypto/sm4/vpsm4-armv8.o" => [ + "crypto" + ], + "crypto/sm4/vpsm4_ex-armv8.o" => [ + "crypto" + ], "doc/man1/openssl-asn1parse.pod" => [ "doc" ], @@ -17978,6 +20753,9 @@ our %unified_info = ( "doc/man1/openssl-sess_id.pod" => [ "doc" ], + "doc/man1/openssl-skeyutl.pod" => [ + "doc" + ], "doc/man1/openssl-smime.pod" => [ "doc" ], @@ -18005,6 +20783,24 @@ our %unified_info = ( "doc/man1/openssl-x509.pod" => [ "doc" ], + "exporters/OpenSSLConfig.cmake" => [ + "." + ], + "exporters/OpenSSLConfigVersion.cmake" => [ + "." + ], + "exporters/libcrypto.pc" => [ + "." + ], + "exporters/libssl.pc" => [ + "." + ], + "exporters/openssl.pc" => [ + "." + ], + "fuzz/acert-test" => [ + "include" + ], "fuzz/asn1-test" => [ "include" ], @@ -18035,12 +20831,69 @@ our %unified_info = ( "fuzz/ct-test" => [ "include" ], + "fuzz/decoder-test" => [ + "include" + ], + "fuzz/dtlsclient-test" => [ + "include" + ], + "fuzz/dtlsserver-test" => [ + "include" + ], + "fuzz/hashtable-test" => [ + "include" + ], + "fuzz/ml-dsa-test" => [ + "include" + ], + "fuzz/ml-kem-test" => [ + "include" + ], + "fuzz/pem-test" => [ + "include" + ], + "fuzz/provider-test" => [ + "include" + ], + "fuzz/punycode-test" => [ + "include" + ], + "fuzz/quic-client-test" => [ + "include" + ], + "fuzz/quic-lcidm-test" => [ + "include" + ], + "fuzz/quic-rcidm-test" => [ + "include" + ], + "fuzz/quic-server-test" => [ + "include" + ], + "fuzz/quic-srtm-test" => [ + "include" + ], "fuzz/server-test" => [ "include" ], + "fuzz/slh-dsa-test" => [ + "include" + ], + "fuzz/smime-test" => [ + "include" + ], + "fuzz/v3name-test" => [ + "include" + ], "fuzz/x509-test" => [ "include" ], + "include/internal/param_names.h" => [ + "util/perl" + ], + "include/openssl/core_names.h" => [ + "util/perl" + ], "libcrypto" => [ ".", "include", @@ -18051,6 +20904,9 @@ our %unified_info = ( ".", "util/perl/OpenSSL" ], + "libcrypto.pc" => [ + "." + ], "libssl" => [ ".", "include" @@ -18059,6 +20915,12 @@ our %unified_info = ( ".", "util/perl/OpenSSL" ], + "libssl.pc" => [ + "." + ], + "openssl.pc" => [ + "." + ], "providers/common/der/der_digests_gen.c" => [ "providers/common/der" ], @@ -18098,6 +20960,15 @@ our %unified_info = ( "providers/common/der/der_ecx_key.o" => [ "providers/common/include/prov" ], + "providers/common/der/der_ml_dsa_gen.c" => [ + "providers/common/der" + ], + "providers/common/der/der_ml_dsa_gen.o" => [ + "providers/common/include/prov" + ], + "providers/common/der/der_ml_dsa_key.o" => [ + "providers/common/include/prov" + ], "providers/common/der/der_rsa_gen.c" => [ "providers/common/der" ], @@ -18110,6 +20981,15 @@ our %unified_info = ( "providers/common/der/der_rsa_sig.o" => [ "providers/common/include/prov" ], + "providers/common/der/der_slh_dsa_gen.c" => [ + "providers/common/der" + ], + "providers/common/der/der_slh_dsa_gen.o" => [ + "providers/common/include/prov" + ], + "providers/common/der/der_slh_dsa_key.o" => [ + "providers/common/include/prov" + ], "providers/common/der/der_sm2_gen.c" => [ "providers/common/der" ], @@ -18155,12 +21035,24 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ecx_key.o" => [ "providers/common/include/prov" ], + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o" => [ + "providers/common/include/prov" + ], + "providers/common/der/libcommon-lib-der_ml_dsa_key.o" => [ + "providers/common/include/prov" + ], "providers/common/der/libcommon-lib-der_rsa_gen.o" => [ "providers/common/include/prov" ], "providers/common/der/libcommon-lib-der_rsa_key.o" => [ "providers/common/include/prov" ], + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o" => [ + "providers/common/include/prov" + ], + "providers/common/der/libcommon-lib-der_slh_dsa_key.o" => [ + "providers/common/include/prov" + ], "providers/common/der/libcommon-lib-der_wrap_gen.o" => [ "providers/common/include/prov" ], @@ -18191,9 +21083,15 @@ our %unified_info = ( "providers/common/include/prov/der_ecx.h" => [ "providers/common/der" ], + "providers/common/include/prov/der_ml_dsa.h" => [ + "providers/common/der" + ], "providers/common/include/prov/der_rsa.h" => [ "providers/common/der" ], + "providers/common/include/prov/der_slh_dsa.h" => [ + "providers/common/der" + ], "providers/common/include/prov/der_sm2.h" => [ "providers/common/der" ], @@ -18236,9 +21134,15 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-eddsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/libdefault-lib-rsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/libdefault-lib-sm2_sig.o" => [ "providers/common/include/prov" ], @@ -18251,12 +21155,24 @@ our %unified_info = ( "providers/implementations/signature/libfips-lib-eddsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/libfips-lib-rsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o" => [ + "providers/common/include/prov" + ], + "providers/implementations/signature/ml_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/rsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/slh_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/sm2_sig.o" => [ "providers/common/include/prov" ], @@ -18269,28 +21185,39 @@ our %unified_info = ( "crypto", "include", "providers/implementations/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" ], "providers/libdefault.a" => [ ".", "crypto", "include", "providers/implementations/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" ], "providers/libfips.a" => [ ".", "crypto", "include", "providers/implementations/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" ], "providers/liblegacy.a" => [ ".", "crypto", "include", "providers/implementations/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" + ], + "providers/libtemplate.a" => [ + "crypto", + "include", + "providers/implementations/include", + "providers/common/include", + "providers/fips/include" ], "test/aborttest" => [ "include", @@ -18359,6 +21286,14 @@ our %unified_info = ( "include", "apps/include" ], + "test/bio_addr_test" => [ + "include", + "apps/include" + ], + "test/bio_base64_test" => [ + "include", + "apps/include" + ], "test/bio_callback_test" => [ "include", "apps/include" @@ -18367,6 +21302,11 @@ our %unified_info = ( "include", "apps/include" ], + "test/bio_dgram_test" => [ + "include", + "apps/include", + "." + ], "test/bio_enc_test" => [ "include", "apps/include" @@ -18375,6 +21315,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/bio_meth_test" => [ + "include", + "apps/include" + ], "test/bio_prefix_text" => [ ".", "include", @@ -18388,6 +21332,11 @@ our %unified_info = ( "include", "apps/include" ], + "test/bio_tfo_test" => [ + "include", + "apps/include", + "." + ], "test/bioprinttest" => [ "include", "apps/include" @@ -18402,6 +21351,9 @@ our %unified_info = ( "include", "apps/include" ], + "test/build_wincrypt_test" => [ + "include" + ], "test/buildtest_c_aes" => [ "include" ], @@ -18417,6 +21369,9 @@ our %unified_info = ( "test/buildtest_c_buffer" => [ "include" ], + "test/buildtest_c_byteorder" => [ + "include" + ], "test/buildtest_c_camellia" => [ "include" ], @@ -18441,9 +21396,6 @@ our %unified_info = ( "test/buildtest_c_core_dispatch" => [ "include" ], - "test/buildtest_c_core_names" => [ - "include" - ], "test/buildtest_c_core_object" => [ "include" ], @@ -18468,6 +21420,9 @@ our %unified_info = ( "test/buildtest_c_e_os2" => [ "include" ], + "test/buildtest_c_e_ostime" => [ + "include" + ], "test/buildtest_c_ebcdic" => [ "include" ], @@ -18495,12 +21450,18 @@ our %unified_info = ( "test/buildtest_c_hmac" => [ "include" ], + "test/buildtest_c_hpke" => [ + "include" + ], "test/buildtest_c_http" => [ "include" ], "test/buildtest_c_idea" => [ "include" ], + "test/buildtest_c_indicator" => [ + "include" + ], "test/buildtest_c_kdf" => [ "include" ], @@ -18516,6 +21477,9 @@ our %unified_info = ( "test/buildtest_c_mdc2" => [ "include" ], + "test/buildtest_c_ml_kem" => [ + "include" + ], "test/buildtest_c_modes" => [ "include" ], @@ -18546,6 +21510,9 @@ our %unified_info = ( "test/buildtest_c_provider" => [ "include" ], + "test/buildtest_c_quic" => [ + "include" + ], "test/buildtest_c_rand" => [ "include" ], @@ -18588,6 +21555,9 @@ our %unified_info = ( "test/buildtest_c_symhacks" => [ "include" ], + "test/buildtest_c_thread" => [ + "include" + ], "test/buildtest_c_tls1" => [ "include" ], @@ -18603,10 +21573,24 @@ our %unified_info = ( "test/buildtest_c_whrlpool" => [ "include" ], + "test/byteorder_test" => [ + "include", + "apps/include" + ], + "test/ca_internals_test" => [ + ".", + "include", + "apps/include" + ], "test/casttest" => [ "include", "apps/include" ], + "test/cert_comp_test" => [ + "include", + "apps/include", + "." + ], "test/chacha_internal_test" => [ ".", "include", @@ -18730,6 +21714,11 @@ our %unified_info = ( "include", "apps/include" ], + "test/decoder_propq_test" => [ + ".", + "include", + "apps/include" + ], "test/defltfips_test" => [ "include", "apps/include" @@ -18745,7 +21734,8 @@ our %unified_info = ( "test/drbgtest" => [ "include", "apps/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" ], "test/dsa_no_digest_size_test" => [ "include", @@ -18788,7 +21778,9 @@ our %unified_info = ( "test/endecode_test" => [ ".", "include", - "apps/include" + "apps/include", + "providers/common/include", + "providers/implementations/include" ], "test/endecoder_legacy_test" => [ ".", @@ -18833,6 +21825,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/evp_pkey_dhkem_test" => [ + "include", + "apps/include" + ], "test/evp_pkey_dparams_test" => [ "include", "apps/include" @@ -18841,10 +21837,18 @@ our %unified_info = ( "include", "apps/include" ], + "test/evp_skey_test" => [ + "include", + "apps/include" + ], "test/evp_test" => [ "include", "apps/include" ], + "test/evp_xof_test" => [ + "include", + "apps/include" + ], "test/exdatatest" => [ "include", "apps/include" @@ -18945,22 +21949,62 @@ our %unified_info = ( ".", "include" ], + "test/helpers/json_test-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/helpers/pkcs12.o" => [ ".", "include" ], + "test/helpers/pkcs12_api_test-bin-pkcs12.o" => [ + ".", + "include" + ], "test/helpers/pkcs12_format_test-bin-pkcs12.o" => [ ".", "include" ], + "test/helpers/quic_multistream_test-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quic_newcid_test-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quic_radix_test-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quic_srt_gen_test-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quicapitest-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quicfaultstest-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/helpers/recordlentest-bin-ssltestlib.o" => [ ".", "include" ], + "test/helpers/rpktest-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/helpers/servername_test-bin-ssltestlib.o" => [ ".", "include" ], + "test/helpers/ssl_handshake_rtt_test-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/helpers/ssl_test-bin-handshake.o" => [ ".", "include" @@ -18994,6 +22038,10 @@ our %unified_info = ( ".", "include" ], + "test/helpers/tls13groupselection_test-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/hexstr_test" => [ ".", "include", @@ -19003,6 +22051,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/hpke_test" => [ + "include", + "apps/include" + ], "test/http_test" => [ "include", "apps/include" @@ -19015,6 +22067,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/json_test" => [ + "include", + "apps/include" + ], "test/keymgmt_internal_test" => [ ".", "include", @@ -19029,6 +22085,10 @@ our %unified_info = ( "apps/include", "." ], + "test/list_test" => [ + "include", + "apps/include" + ], "test/localetest" => [ "include", "apps/include" @@ -19042,10 +22102,27 @@ our %unified_info = ( "include", "apps/include" ], + "test/membio_test" => [ + "include", + "apps/include", + "." + ], "test/memleaktest" => [ "include", "apps/include" ], + "test/ml_dsa_test" => [ + "include", + "apps/include" + ], + "test/ml_kem_evp_extra_test" => [ + "include", + "apps/include" + ], + "test/ml_kem_internal_test" => [ + "include", + "apps/include" + ], "test/modes_internal_test" => [ ".", "include", @@ -19080,6 +22157,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/pairwise_fail_test" => [ + "include", + "apps/include" + ], "test/param_build_test" => [ "include", "apps/include" @@ -19113,6 +22194,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/pkcs12_api_test" => [ + "include", + "apps/include" + ], "test/pkcs12_format_test" => [ "include", "apps/include" @@ -19134,6 +22219,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/priority_queue_test" => [ + "include", + "apps/include" + ], "test/property_test" => [ ".", "include", @@ -19147,6 +22236,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/provider_default_search_path_test" => [ + "include", + "apps/include" + ], "test/provider_fallback_test" => [ "include", "apps/include" @@ -19173,6 +22266,97 @@ our %unified_info = ( "include", "apps/include" ], + "test/quic_ackm_test" => [ + "include", + "apps/include" + ], + "test/quic_cc_test" => [ + "include", + "apps/include" + ], + "test/quic_cfq_test" => [ + "include", + "apps/include" + ], + "test/quic_client_test" => [ + "include", + "apps/include" + ], + "test/quic_fc_test" => [ + "include", + "apps/include" + ], + "test/quic_fifd_test" => [ + "include", + "apps/include" + ], + "test/quic_lcidm_test" => [ + "include", + "apps/include" + ], + "test/quic_multistream_test" => [ + "include", + "apps/include" + ], + "test/quic_newcid_test" => [ + "include", + "apps/include", + "." + ], + "test/quic_qlog_test" => [ + "include", + "apps/include" + ], + "test/quic_radix_test" => [ + "include", + "apps/include" + ], + "test/quic_rcidm_test" => [ + "include", + "apps/include" + ], + "test/quic_record_test" => [ + "include", + "apps/include" + ], + "test/quic_srt_gen_test" => [ + "include", + "apps/include", + "." + ], + "test/quic_srtm_test" => [ + "include", + "apps/include" + ], + "test/quic_stream_test" => [ + "include", + "apps/include" + ], + "test/quic_tserver_test" => [ + "include", + "apps/include" + ], + "test/quic_txp_test" => [ + "include", + "apps/include" + ], + "test/quic_txpim_test" => [ + "include", + "apps/include" + ], + "test/quic_wire_test" => [ + "include", + "apps/include" + ], + "test/quicapitest" => [ + "include", + "apps/include" + ], + "test/quicfaultstest" => [ + "include", + "apps/include", + "." + ], "test/rand_status_test" => [ "include", "apps/include" @@ -19193,14 +22377,20 @@ our %unified_info = ( "include", "apps/include" ], - "test/rdrand_sanitytest" => [ + "test/rdcpu_sanitytest" => [ "include", - "apps/include" + "apps/include", + "crypto" ], "test/recordlentest" => [ "include", "apps/include" ], + "test/rpktest" => [ + "include", + "apps/include", + "." + ], "test/rsa_complex" => [ "include", "apps/include" @@ -19219,6 +22409,15 @@ our %unified_info = ( "include", "apps/include" ], + "test/rsa_x931_test" => [ + ".", + "include", + "apps/include" + ], + "test/safe_math_test" => [ + "include", + "apps/include" + ], "test/sanitytest" => [ "include", "apps/include" @@ -19240,6 +22439,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/slh_dsa_test" => [ + "include", + "apps/include" + ], "test/sm2_internal_test" => [ "include", "apps/include" @@ -19270,6 +22473,11 @@ our %unified_info = ( "include", "apps/include" ], + "test/ssl_handshake_rtt_test" => [ + "include", + "apps/include", + "." + ], "test/ssl_old_test" => [ ".", "include", @@ -19286,6 +22494,7 @@ our %unified_info = ( "test/sslapitest" => [ "include", "apps/include", + "providers/common/include", "." ], "test/sslbuffertest" => [ @@ -19300,6 +22509,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/strtoultest" => [ + "include", + "apps/include" + ], "test/sysdefaulttest" => [ "include", "apps/include" @@ -19308,7 +22521,13 @@ our %unified_info = ( "include", "apps/include" ], + "test/threadpool_test" => [ + ".", + "include", + "apps/include" + ], "test/threadstest" => [ + ".", "include", "apps/include" ], @@ -19320,6 +22539,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/time_test" => [ + "include", + "apps/include" + ], "test/tls13ccstest" => [ "include", "apps/include" @@ -19329,6 +22552,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/tls13groupselection_test" => [ + "include", + "apps/include" + ], "test/trace_api_test" => [ ".", "include", @@ -19367,6 +22594,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/x509_acert_test" => [ + "include", + "apps/include" + ], "test/x509_check_cert_pkey_test" => [ "include", "apps/include" @@ -19380,6 +22611,18 @@ our %unified_info = ( "include", "apps/include" ], + "test/x509_load_cert_file_test" => [ + "include", + "apps/include" + ], + "test/x509_req_test" => [ + "include", + "apps/include" + ], + "test/x509_test" => [ + "include", + "apps/include" + ], "test/x509_time_test" => [ "include", "apps/include" @@ -19401,6 +22644,7 @@ our %unified_info = ( "providers/libdefault.a", "providers/libfips.a", "providers/liblegacy.a", + "providers/libtemplate.a", "test/libtestutil.a" ], "mandocs" => { @@ -19453,6 +22697,7 @@ our %unified_info = ( "doc/man/man1/openssl-s_server.1", "doc/man/man1/openssl-s_time.1", "doc/man/man1/openssl-sess_id.1", + "doc/man/man1/openssl-skeyutl.1", "doc/man/man1/openssl-smime.1", "doc/man/man1/openssl-speed.1", "doc/man/man1/openssl-spkac.1", @@ -19502,6 +22747,7 @@ our %unified_info = ( "doc/man/man3/BIO_find_type.3", "doc/man/man3/BIO_get_data.3", "doc/man/man3/BIO_get_ex_new_index.3", + "doc/man/man3/BIO_get_rpoll_descriptor.3", "doc/man/man3/BIO_meth_new.3", "doc/man/man3/BIO_new.3", "doc/man/man3/BIO_new_CMS.3", @@ -19514,11 +22760,13 @@ our %unified_info = ( "doc/man/man3/BIO_s_connect.3", "doc/man/man3/BIO_s_core.3", "doc/man/man3/BIO_s_datagram.3", + "doc/man/man3/BIO_s_dgram_pair.3", "doc/man/man3/BIO_s_fd.3", "doc/man/man3/BIO_s_file.3", "doc/man/man3/BIO_s_mem.3", "doc/man/man3/BIO_s_null.3", "doc/man/man3/BIO_s_socket.3", + "doc/man/man3/BIO_sendmmsg.3", "doc/man/man3/BIO_set_callback.3", "doc/man/man3/BIO_should_retry.3", "doc/man/man3/BIO_socket_wait.3", @@ -19543,6 +22791,7 @@ our %unified_info = ( "doc/man/man3/BN_swap.3", "doc/man/man3/BN_zero.3", "doc/man/man3/BUF_MEM_new.3", + "doc/man/man3/CMAC_CTX.3", "doc/man/man3/CMS_EncryptedData_decrypt.3", "doc/man/man3/CMS_EncryptedData_encrypt.3", "doc/man/man3/CMS_EnvelopedData_create.3", @@ -19565,6 +22814,7 @@ our %unified_info = ( "doc/man/man3/CMS_uncompress.3", "doc/man/man3/CMS_verify.3", "doc/man/man3/CMS_verify_receipt.3", + "doc/man/man3/COMP_CTX_new.3", "doc/man/man3/CONF_modules_free.3", "doc/man/man3/CONF_modules_load_file.3", "doc/man/man3/CRYPTO_THREAD_run_once.3", @@ -19598,6 +22848,8 @@ our %unified_info = ( "doc/man/man3/DSA_size.3", "doc/man/man3/DTLS_get_data_mtu.3", "doc/man/man3/DTLS_set_timer_cb.3", + "doc/man/man3/DTLSv1_get_timeout.3", + "doc/man/man3/DTLSv1_handle_timeout.3", "doc/man/man3/DTLSv1_listen.3", "doc/man/man3/ECDSA_SIG_new.3", "doc/man/man3/ECDSA_sign.3", @@ -19644,6 +22896,7 @@ our %unified_info = ( "doc/man/man3/EVP_PKEY_CTX_ctrl.3", "doc/man/man3/EVP_PKEY_CTX_get0_libctx.3", "doc/man/man3/EVP_PKEY_CTX_get0_pkey.3", + "doc/man/man3/EVP_PKEY_CTX_get_algor.3", "doc/man/man3/EVP_PKEY_CTX_new.3", "doc/man/man3/EVP_PKEY_CTX_set1_pbe_pass.3", "doc/man/man3/EVP_PKEY_CTX_set_hkdf_md.3", @@ -19683,6 +22936,8 @@ our %unified_info = ( "doc/man/man3/EVP_PKEY_verify_recover.3", "doc/man/man3/EVP_RAND.3", "doc/man/man3/EVP_SIGNATURE.3", + "doc/man/man3/EVP_SKEY.3", + "doc/man/man3/EVP_SKEYMGMT.3", "doc/man/man3/EVP_SealInit.3", "doc/man/man3/EVP_SignInit.3", "doc/man/man3/EVP_VerifyInit.3", @@ -19712,6 +22967,7 @@ our %unified_info = ( "doc/man/man3/EVP_sm3.3", "doc/man/man3/EVP_sm4_cbc.3", "doc/man/man3/EVP_whirlpool.3", + "doc/man/man3/GENERAL_NAME.3", "doc/man/man3/HMAC.3", "doc/man/man3/MD5.3", "doc/man/man3/MDC2_Init.3", @@ -19736,14 +22992,18 @@ our %unified_info = ( "doc/man/man3/OPENSSL_init_ssl.3", "doc/man/man3/OPENSSL_instrument_bus.3", "doc/man/man3/OPENSSL_load_builtin_modules.3", + "doc/man/man3/OPENSSL_load_u16_le.3", "doc/man/man3/OPENSSL_malloc.3", + "doc/man/man3/OPENSSL_riscvcap.3", "doc/man/man3/OPENSSL_s390xcap.3", "doc/man/man3/OPENSSL_secure_malloc.3", "doc/man/man3/OPENSSL_strcasecmp.3", "doc/man/man3/OSSL_ALGORITHM.3", "doc/man/man3/OSSL_CALLBACK.3", + "doc/man/man3/OSSL_CMP_ATAV_set0.3", "doc/man/man3/OSSL_CMP_CTX_new.3", "doc/man/man3/OSSL_CMP_HDR_get0_transactionID.3", + "doc/man/man3/OSSL_CMP_ITAV_new_caCerts.3", "doc/man/man3/OSSL_CMP_ITAV_set0.3", "doc/man/man3/OSSL_CMP_MSG_get0_header.3", "doc/man/man3/OSSL_CMP_MSG_http_perform.3", @@ -19767,18 +23027,27 @@ our %unified_info = ( "doc/man/man3/OSSL_ENCODER_CTX.3", "doc/man/man3/OSSL_ENCODER_CTX_new_for_pkey.3", "doc/man/man3/OSSL_ENCODER_to_bio.3", + "doc/man/man3/OSSL_ERR_STATE_save.3", "doc/man/man3/OSSL_ESS_check_signing_certs.3", + "doc/man/man3/OSSL_GENERAL_NAMES_print.3", + "doc/man/man3/OSSL_HPKE_CTX_new.3", "doc/man/man3/OSSL_HTTP_REQ_CTX.3", "doc/man/man3/OSSL_HTTP_parse_url.3", "doc/man/man3/OSSL_HTTP_transfer.3", + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX.3", + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX_print.3", + "doc/man/man3/OSSL_INDICATOR_set_callback.3", "doc/man/man3/OSSL_ITEM.3", "doc/man/man3/OSSL_LIB_CTX.3", + "doc/man/man3/OSSL_LIB_CTX_set_conf_diagnostics.3", "doc/man/man3/OSSL_PARAM.3", "doc/man/man3/OSSL_PARAM_BLD.3", "doc/man/man3/OSSL_PARAM_allocate_from_text.3", "doc/man/man3/OSSL_PARAM_dup.3", "doc/man/man3/OSSL_PARAM_int.3", + "doc/man/man3/OSSL_PARAM_print_to_bio.3", "doc/man/man3/OSSL_PROVIDER.3", + "doc/man/man3/OSSL_QUIC_client_method.3", "doc/man/man3/OSSL_SELF_TEST_new.3", "doc/man/man3/OSSL_SELF_TEST_set_callback.3", "doc/man/man3/OSSL_STORE_INFO.3", @@ -19787,11 +23056,13 @@ our %unified_info = ( "doc/man/man3/OSSL_STORE_attach.3", "doc/man/man3/OSSL_STORE_expect.3", "doc/man/man3/OSSL_STORE_open.3", + "doc/man/man3/OSSL_sleep.3", "doc/man/man3/OSSL_trace_enabled.3", "doc/man/man3/OSSL_trace_get_category_num.3", "doc/man/man3/OSSL_trace_set_channel.3", "doc/man/man3/OpenSSL_add_all_algorithms.3", "doc/man/man3/OpenSSL_version.3", + "doc/man/man3/PBMAC1_get1_pbkdf2_param.3", "doc/man/man3/PEM_X509_INFO_read_bio_ex.3", "doc/man/man3/PEM_bytes_read_bio.3", "doc/man/man3/PEM_read.3", @@ -19804,6 +23075,7 @@ our %unified_info = ( "doc/man/man3/PKCS12_SAFEBAG_create_cert.3", "doc/man/man3/PKCS12_SAFEBAG_get0_attrs.3", "doc/man/man3/PKCS12_SAFEBAG_get1_cert.3", + "doc/man/man3/PKCS12_SAFEBAG_set0_attrs.3", "doc/man/man3/PKCS12_add1_attr_by_NID.3", "doc/man/man3/PKCS12_add_CSPName_asc.3", "doc/man/man3/PKCS12_add_cert.3", @@ -19895,6 +23167,7 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_sess_set_get_cb.3", "doc/man/man3/SSL_CTX_sessions.3", "doc/man/man3/SSL_CTX_set0_CA_list.3", + "doc/man/man3/SSL_CTX_set1_cert_comp_preference.3", "doc/man/man3/SSL_CTX_set1_curves.3", "doc/man/man3/SSL_CTX_set1_sigalgs.3", "doc/man/man3/SSL_CTX_set1_verify_cert_store.3", @@ -19908,6 +23181,7 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_ct_validation_callback.3", "doc/man/man3/SSL_CTX_set_ctlog_list_file.3", "doc/man/man3/SSL_CTX_set_default_passwd_cb.3", + "doc/man/man3/SSL_CTX_set_domain_flags.3", "doc/man/man3/SSL_CTX_set_generate_session_id.3", "doc/man/man3/SSL_CTX_set_info_callback.3", "doc/man/man3/SSL_CTX_set_keylog_callback.3", @@ -19915,6 +23189,7 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_min_proto_version.3", "doc/man/man3/SSL_CTX_set_mode.3", "doc/man/man3/SSL_CTX_set_msg_callback.3", + "doc/man/man3/SSL_CTX_set_new_pending_conn_cb.3", "doc/man/man3/SSL_CTX_set_num_tickets.3", "doc/man/man3/SSL_CTX_set_options.3", "doc/man/man3/SSL_CTX_set_psk_client_callback.3", @@ -19953,6 +23228,7 @@ our %unified_info = ( "doc/man/man3/SSL_SESSION_print.3", "doc/man/man3/SSL_SESSION_set1_id.3", "doc/man/man3/SSL_accept.3", + "doc/man/man3/SSL_accept_stream.3", "doc/man/man3/SSL_alert_type_string.3", "doc/man/man3/SSL_alloc_buffers.3", "doc/man/man3/SSL_check_chain.3", @@ -19962,59 +23238,90 @@ our %unified_info = ( "doc/man/man3/SSL_export_keying_material.3", "doc/man/man3/SSL_extension_supported.3", "doc/man/man3/SSL_free.3", + "doc/man/man3/SSL_get0_connection.3", + "doc/man/man3/SSL_get0_group_name.3", + "doc/man/man3/SSL_get0_peer_rpk.3", "doc/man/man3/SSL_get0_peer_scts.3", + "doc/man/man3/SSL_get1_builtin_sigalgs.3", "doc/man/man3/SSL_get_SSL_CTX.3", "doc/man/man3/SSL_get_all_async_fds.3", "doc/man/man3/SSL_get_certificate.3", "doc/man/man3/SSL_get_ciphers.3", "doc/man/man3/SSL_get_client_random.3", + "doc/man/man3/SSL_get_conn_close_info.3", "doc/man/man3/SSL_get_current_cipher.3", "doc/man/man3/SSL_get_default_timeout.3", "doc/man/man3/SSL_get_error.3", + "doc/man/man3/SSL_get_event_timeout.3", "doc/man/man3/SSL_get_extms_support.3", "doc/man/man3/SSL_get_fd.3", + "doc/man/man3/SSL_get_handshake_rtt.3", "doc/man/man3/SSL_get_peer_cert_chain.3", "doc/man/man3/SSL_get_peer_certificate.3", "doc/man/man3/SSL_get_peer_signature_nid.3", "doc/man/man3/SSL_get_peer_tmp_key.3", "doc/man/man3/SSL_get_psk_identity.3", "doc/man/man3/SSL_get_rbio.3", + "doc/man/man3/SSL_get_rpoll_descriptor.3", "doc/man/man3/SSL_get_session.3", "doc/man/man3/SSL_get_shared_sigalgs.3", + "doc/man/man3/SSL_get_stream_id.3", + "doc/man/man3/SSL_get_stream_read_state.3", + "doc/man/man3/SSL_get_value_uint.3", "doc/man/man3/SSL_get_verify_result.3", "doc/man/man3/SSL_get_version.3", "doc/man/man3/SSL_group_to_name.3", + "doc/man/man3/SSL_handle_events.3", "doc/man/man3/SSL_in_init.3", + "doc/man/man3/SSL_inject_net_dgram.3", "doc/man/man3/SSL_key_update.3", "doc/man/man3/SSL_library_init.3", "doc/man/man3/SSL_load_client_CA_file.3", "doc/man/man3/SSL_new.3", + "doc/man/man3/SSL_new_domain.3", + "doc/man/man3/SSL_new_listener.3", + "doc/man/man3/SSL_new_stream.3", "doc/man/man3/SSL_pending.3", + "doc/man/man3/SSL_poll.3", "doc/man/man3/SSL_read.3", "doc/man/man3/SSL_read_early_data.3", "doc/man/man3/SSL_rstate_string.3", "doc/man/man3/SSL_session_reused.3", "doc/man/man3/SSL_set1_host.3", + "doc/man/man3/SSL_set1_initial_peer_addr.3", + "doc/man/man3/SSL_set1_server_cert_type.3", "doc/man/man3/SSL_set_async_callback.3", "doc/man/man3/SSL_set_bio.3", + "doc/man/man3/SSL_set_blocking_mode.3", "doc/man/man3/SSL_set_connect_state.3", + "doc/man/man3/SSL_set_default_stream_mode.3", "doc/man/man3/SSL_set_fd.3", + "doc/man/man3/SSL_set_incoming_stream_policy.3", + "doc/man/man3/SSL_set_quic_tls_cbs.3", "doc/man/man3/SSL_set_retry_verify.3", "doc/man/man3/SSL_set_session.3", + "doc/man/man3/SSL_set_session_secret_cb.3", "doc/man/man3/SSL_set_shutdown.3", "doc/man/man3/SSL_set_verify_result.3", "doc/man/man3/SSL_shutdown.3", "doc/man/man3/SSL_state_string.3", + "doc/man/man3/SSL_stream_conclude.3", + "doc/man/man3/SSL_stream_reset.3", "doc/man/man3/SSL_want.3", "doc/man/man3/SSL_write.3", "doc/man/man3/TS_RESP_CTX_new.3", - "doc/man/man3/TS_VERIFY_CTX_set_certs.3", + "doc/man/man3/TS_VERIFY_CTX.3", "doc/man/man3/UI_STRING.3", "doc/man/man3/UI_UTIL_read_pw.3", "doc/man/man3/UI_create_method.3", "doc/man/man3/UI_new.3", "doc/man/man3/X509V3_get_d2i.3", "doc/man/man3/X509V3_set_ctx.3", + "doc/man/man3/X509_ACERT_add1_attr.3", + "doc/man/man3/X509_ACERT_add_attr_nconf.3", + "doc/man/man3/X509_ACERT_get0_holder_baseCertId.3", + "doc/man/man3/X509_ACERT_get_attr.3", + "doc/man/man3/X509_ACERT_print_ex.3", "doc/man/man3/X509_ALGOR_dup.3", "doc/man/man3/X509_ATTRIBUTE.3", "doc/man/man3/X509_CRL_get0_by_serial.3", @@ -20031,6 +23338,7 @@ our %unified_info = ( "doc/man/man3/X509_REQ_get_attr.3", "doc/man/man3/X509_REQ_get_extensions.3", "doc/man/man3/X509_SIG_get0.3", + "doc/man/man3/X509_STORE_CTX_get_by_subject.3", "doc/man/man3/X509_STORE_CTX_get_error.3", "doc/man/man3/X509_STORE_CTX_new.3", "doc/man/man3/X509_STORE_CTX_set_verify_cb.3", @@ -20053,6 +23361,7 @@ our %unified_info = ( "doc/man/man3/X509_get0_notBefore.3", "doc/man/man3/X509_get0_signature.3", "doc/man/man3/X509_get0_uids.3", + "doc/man/man3/X509_get_default_cert_file.3", "doc/man/man3/X509_get_extension_flags.3", "doc/man/man3/X509_get_pubkey.3", "doc/man/man3/X509_get_serialNumber.3", @@ -20098,12 +23407,15 @@ our %unified_info = ( "doc/man/man7/EVP_CIPHER-RC5.7", "doc/man/man7/EVP_CIPHER-SEED.7", "doc/man/man7/EVP_CIPHER-SM4.7", + "doc/man/man7/EVP_KDF-ARGON2.7", "doc/man/man7/EVP_KDF-HKDF.7", + "doc/man/man7/EVP_KDF-HMAC-DRBG.7", "doc/man/man7/EVP_KDF-KB.7", "doc/man/man7/EVP_KDF-KRB5KDF.7", "doc/man/man7/EVP_KDF-PBKDF1.7", "doc/man/man7/EVP_KDF-PBKDF2.7", "doc/man/man7/EVP_KDF-PKCS12KDF.7", + "doc/man/man7/EVP_KDF-PVKKDF.7", "doc/man/man7/EVP_KDF-SCRYPT.7", "doc/man/man7/EVP_KDF-SS.7", "doc/man/man7/EVP_KDF-SSHKDF.7", @@ -20112,7 +23424,10 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-X942-ASN1.7", "doc/man/man7/EVP_KDF-X942-CONCAT.7", "doc/man/man7/EVP_KDF-X963.7", + "doc/man/man7/EVP_KEM-EC.7", + "doc/man/man7/EVP_KEM-ML-KEM.7", "doc/man/man7/EVP_KEM-RSA.7", + "doc/man/man7/EVP_KEM-X25519.7", "doc/man/man7/EVP_KEYEXCH-DH.7", "doc/man/man7/EVP_KEYEXCH-ECDH.7", "doc/man/man7/EVP_KEYEXCH-X25519.7", @@ -20124,6 +23439,7 @@ our %unified_info = ( "doc/man/man7/EVP_MAC-Poly1305.7", "doc/man/man7/EVP_MAC-Siphash.7", "doc/man/man7/EVP_MD-BLAKE2.7", + "doc/man/man7/EVP_MD-KECCAK.7", "doc/man/man7/EVP_MD-MD2.7", "doc/man/man7/EVP_MD-MD4.7", "doc/man/man7/EVP_MD-MD5-SHA1.7", @@ -20143,12 +23459,17 @@ our %unified_info = ( "doc/man/man7/EVP_PKEY-EC.7", "doc/man/man7/EVP_PKEY-FFC.7", "doc/man/man7/EVP_PKEY-HMAC.7", + "doc/man/man7/EVP_PKEY-ML-DSA.7", + "doc/man/man7/EVP_PKEY-ML-KEM.7", "doc/man/man7/EVP_PKEY-RSA.7", + "doc/man/man7/EVP_PKEY-SLH-DSA.7", "doc/man/man7/EVP_PKEY-SM2.7", "doc/man/man7/EVP_PKEY-X25519.7", + "doc/man/man7/EVP_RAND-CRNG-TEST.7", "doc/man/man7/EVP_RAND-CTR-DRBG.7", "doc/man/man7/EVP_RAND-HASH-DRBG.7", "doc/man/man7/EVP_RAND-HMAC-DRBG.7", + "doc/man/man7/EVP_RAND-JITTER.7", "doc/man/man7/EVP_RAND-SEED-SRC.7", "doc/man/man7/EVP_RAND-TEST-RAND.7", "doc/man/man7/EVP_RAND.7", @@ -20156,17 +23477,19 @@ our %unified_info = ( "doc/man/man7/EVP_SIGNATURE-ECDSA.7", "doc/man/man7/EVP_SIGNATURE-ED25519.7", "doc/man/man7/EVP_SIGNATURE-HMAC.7", + "doc/man/man7/EVP_SIGNATURE-ML-DSA.7", "doc/man/man7/EVP_SIGNATURE-RSA.7", + "doc/man/man7/EVP_SIGNATURE-SLH-DSA.7", "doc/man/man7/OSSL_PROVIDER-FIPS.7", "doc/man/man7/OSSL_PROVIDER-base.7", "doc/man/man7/OSSL_PROVIDER-default.7", "doc/man/man7/OSSL_PROVIDER-legacy.7", "doc/man/man7/OSSL_PROVIDER-null.7", + "doc/man/man7/OSSL_STORE-winstore.7", "doc/man/man7/RAND.7", "doc/man/man7/RSA-PSS.7", "doc/man/man7/X25519.7", "doc/man/man7/bio.7", - "doc/man/man7/crypto.7", "doc/man/man7/ct.7", "doc/man/man7/des_modes.7", "doc/man/man7/evp.7", @@ -20177,14 +23500,31 @@ our %unified_info = ( "doc/man/man7/life_cycle-mac.7", "doc/man/man7/life_cycle-pkey.7", "doc/man/man7/life_cycle-rand.7", - "doc/man/man7/migration_guide.7", "doc/man/man7/openssl-core.h.7", "doc/man/man7/openssl-core_dispatch.h.7", "doc/man/man7/openssl-core_names.h.7", "doc/man/man7/openssl-env.7", "doc/man/man7/openssl-glossary.7", + "doc/man/man7/openssl-qlog.7", + "doc/man/man7/openssl-quic-concurrency.7", + "doc/man/man7/openssl-quic.7", "doc/man/man7/openssl-threads.7", "doc/man/man7/openssl_user_macros.7", + "doc/man/man7/ossl-guide-introduction.7", + "doc/man/man7/ossl-guide-libcrypto-introduction.7", + "doc/man/man7/ossl-guide-libraries-introduction.7", + "doc/man/man7/ossl-guide-libssl-introduction.7", + "doc/man/man7/ossl-guide-migration.7", + "doc/man/man7/ossl-guide-quic-client-block.7", + "doc/man/man7/ossl-guide-quic-client-non-block.7", + "doc/man/man7/ossl-guide-quic-introduction.7", + "doc/man/man7/ossl-guide-quic-multi-stream.7", + "doc/man/man7/ossl-guide-quic-server-block.7", + "doc/man/man7/ossl-guide-quic-server-non-block.7", + "doc/man/man7/ossl-guide-tls-client-block.7", + "doc/man/man7/ossl-guide-tls-client-non-block.7", + "doc/man/man7/ossl-guide-tls-introduction.7", + "doc/man/man7/ossl-guide-tls-server-block.7", "doc/man/man7/ossl_store-file.7", "doc/man/man7/ossl_store.7", "doc/man/man7/passphrase-encoding.7", @@ -20203,10 +23543,10 @@ our %unified_info = ( "doc/man/man7/provider-object.7", "doc/man/man7/provider-rand.7", "doc/man/man7/provider-signature.7", + "doc/man/man7/provider-skeymgmt.7", "doc/man/man7/provider-storemgmt.7", "doc/man/man7/provider.7", "doc/man/man7/proxy-certificates.7", - "doc/man/man7/ssl.7", "doc/man/man7/x509.7" ] }, @@ -20218,6 +23558,7 @@ our %unified_info = ( ], "programs" => [ "apps/openssl", + "fuzz/acert-test", "fuzz/asn1-test", "fuzz/asn1parse-test", "fuzz/bignum-test", @@ -20228,7 +23569,24 @@ our %unified_info = ( "fuzz/conf-test", "fuzz/crl-test", "fuzz/ct-test", + "fuzz/decoder-test", + "fuzz/dtlsclient-test", + "fuzz/dtlsserver-test", + "fuzz/hashtable-test", + "fuzz/ml-dsa-test", + "fuzz/ml-kem-test", + "fuzz/pem-test", + "fuzz/provider-test", + "fuzz/punycode-test", + "fuzz/quic-client-test", + "fuzz/quic-lcidm-test", + "fuzz/quic-rcidm-test", + "fuzz/quic-server-test", + "fuzz/quic-srtm-test", "fuzz/server-test", + "fuzz/slh-dsa-test", + "fuzz/smime-test", + "fuzz/v3name-test", "fuzz/x509-test", "test/aborttest", "test/acvp_test", @@ -20246,21 +23604,28 @@ our %unified_info = ( "test/asynctest", "test/bad_dtls_test", "test/bftest", + "test/bio_addr_test", + "test/bio_base64_test", "test/bio_callback_test", "test/bio_core_test", + "test/bio_dgram_test", "test/bio_enc_test", "test/bio_memleak_test", + "test/bio_meth_test", "test/bio_prefix_text", "test/bio_pw_callback_test", "test/bio_readbuffer_test", + "test/bio_tfo_test", "test/bioprinttest", "test/bn_internal_test", "test/bntest", + "test/build_wincrypt_test", "test/buildtest_c_aes", "test/buildtest_c_async", "test/buildtest_c_blowfish", "test/buildtest_c_bn", "test/buildtest_c_buffer", + "test/buildtest_c_byteorder", "test/buildtest_c_camellia", "test/buildtest_c_cast", "test/buildtest_c_cmac", @@ -20269,7 +23634,6 @@ our %unified_info = ( "test/buildtest_c_conftypes", "test/buildtest_c_core", "test/buildtest_c_core_dispatch", - "test/buildtest_c_core_names", "test/buildtest_c_core_object", "test/buildtest_c_cryptoerr_legacy", "test/buildtest_c_decoder", @@ -20278,6 +23642,7 @@ our %unified_info = ( "test/buildtest_c_dsa", "test/buildtest_c_dtls1", "test/buildtest_c_e_os2", + "test/buildtest_c_e_ostime", "test/buildtest_c_ebcdic", "test/buildtest_c_ec", "test/buildtest_c_ecdh", @@ -20287,13 +23652,16 @@ our %unified_info = ( "test/buildtest_c_evp", "test/buildtest_c_fips_names", "test/buildtest_c_hmac", + "test/buildtest_c_hpke", "test/buildtest_c_http", "test/buildtest_c_idea", + "test/buildtest_c_indicator", "test/buildtest_c_kdf", "test/buildtest_c_macros", "test/buildtest_c_md4", "test/buildtest_c_md5", "test/buildtest_c_mdc2", + "test/buildtest_c_ml_kem", "test/buildtest_c_modes", "test/buildtest_c_obj_mac", "test/buildtest_c_objects", @@ -20304,6 +23672,7 @@ our %unified_info = ( "test/buildtest_c_pem2", "test/buildtest_c_prov_ssl", "test/buildtest_c_provider", + "test/buildtest_c_quic", "test/buildtest_c_rand", "test/buildtest_c_rc2", "test/buildtest_c_rc4", @@ -20318,11 +23687,14 @@ our %unified_info = ( "test/buildtest_c_stack", "test/buildtest_c_store", "test/buildtest_c_symhacks", + "test/buildtest_c_thread", "test/buildtest_c_tls1", "test/buildtest_c_ts", "test/buildtest_c_txt_db", "test/buildtest_c_types", "test/buildtest_c_whrlpool", + "test/byteorder_test", + "test/ca_internals_test", "test/casttest", "test/chacha_internal_test", "test/cipher_overhead_test", @@ -20351,6 +23723,7 @@ our %unified_info = ( "test/curve448_internal_test", "test/d2i_test", "test/danetest", + "test/decoder_propq_test", "test/defltfips_test", "test/destest", "test/dhtest", @@ -20375,9 +23748,12 @@ our %unified_info = ( "test/evp_kdf_test", "test/evp_libctx_test", "test/evp_pkey_ctx_new_from_name", + "test/evp_pkey_dhkem_test", "test/evp_pkey_dparams_test", "test/evp_pkey_provided_test", + "test/evp_skey_test", "test/evp_test", + "test/evp_xof_test", "test/exdatatest", "test/exptest", "test/ext_internal_test", @@ -20387,21 +23763,29 @@ our %unified_info = ( "test/gmdifftest", "test/hexstr_test", "test/hmactest", + "test/hpke_test", "test/http_test", "test/ideatest", "test/igetest", + "test/json_test", "test/keymgmt_internal_test", "test/lhash_test", + "test/list_test", "test/localetest", "test/mdc2_internal_test", "test/mdc2test", + "test/membio_test", "test/memleaktest", + "test/ml_dsa_test", + "test/ml_kem_evp_extra_test", + "test/ml_kem_internal_test", "test/modes_internal_test", "test/namemap_internal_test", "test/nodefltctxtest", "test/ocspapitest", "test/ossl_store_test", "test/packettest", + "test/pairwise_fail_test", "test/param_build_test", "test/params_api_test", "test/params_conversion_test", @@ -20410,36 +23794,65 @@ our %unified_info = ( "test/pbetest", "test/pem_read_depr_test", "test/pemtest", + "test/pkcs12_api_test", "test/pkcs12_format_test", "test/pkcs7_test", "test/pkey_meth_kdf_test", "test/pkey_meth_test", "test/poly1305_internal_test", + "test/priority_queue_test", "test/property_test", "test/prov_config_test", "test/provfetchtest", + "test/provider_default_search_path_test", "test/provider_fallback_test", "test/provider_internal_test", "test/provider_pkey_test", "test/provider_status_test", "test/provider_test", "test/punycode_test", + "test/quic_ackm_test", + "test/quic_cc_test", + "test/quic_cfq_test", + "test/quic_client_test", + "test/quic_fc_test", + "test/quic_fifd_test", + "test/quic_lcidm_test", + "test/quic_multistream_test", + "test/quic_newcid_test", + "test/quic_qlog_test", + "test/quic_radix_test", + "test/quic_rcidm_test", + "test/quic_record_test", + "test/quic_srt_gen_test", + "test/quic_srtm_test", + "test/quic_stream_test", + "test/quic_tserver_test", + "test/quic_txp_test", + "test/quic_txpim_test", + "test/quic_wire_test", + "test/quicapitest", + "test/quicfaultstest", "test/rand_status_test", "test/rand_test", "test/rc2test", "test/rc4test", "test/rc5test", - "test/rdrand_sanitytest", + "test/rdcpu_sanitytest", "test/recordlentest", + "test/rpktest", "test/rsa_complex", "test/rsa_mp_test", "test/rsa_sp800_56b_test", "test/rsa_test", + "test/rsa_x931_test", + "test/safe_math_test", "test/sanitytest", "test/secmemtest", "test/servername_test", "test/sha_test", "test/siphash_internal_test", + "test/slh_dsa_test", "test/sm2_internal_test", "test/sm3_internal_test", "test/sm4_internal_test", @@ -20447,6 +23860,7 @@ our %unified_info = ( "test/srptest", "test/ssl_cert_table_internal_test", "test/ssl_ctx_test", + "test/ssl_handshake_rtt_test", "test/ssl_old_test", "test/ssl_test", "test/ssl_test_ctx_test", @@ -20454,13 +23868,17 @@ our %unified_info = ( "test/sslbuffertest", "test/sslcorrupttest", "test/stack_test", + "test/strtoultest", "test/sysdefaulttest", "test/test_test", + "test/threadpool_test", "test/threadstest", "test/threadstest_fips", "test/time_offset_test", + "test/time_test", "test/tls13ccstest", "test/tls13encryptiontest", + "test/tls13groupselection_test", "test/trace_api_test", "test/uitest", "test/upcallstest", @@ -20470,9 +23888,13 @@ our %unified_info = ( "test/verify_extra_test", "test/versions", "test/wpackettest", + "test/x509_acert_test", "test/x509_check_cert_pkey_test", "test/x509_dup_cert_test", "test/x509_internal_test", + "test/x509_load_cert_file_test", + "test/x509_req_test", + "test/x509_test", "test/x509_time_test", "test/x509aux" ], @@ -20488,6 +23910,33 @@ our %unified_info = ( "apps/CA.pl" => [ "apps/CA.pl.in" ], + "apps/ca_internals_test-bin-ca.o" => [ + "apps/ca.c" + ], + "apps/lib/ca_internals_test-bin-app_libctx.o" => [ + "apps/lib/app_libctx.c" + ], + "apps/lib/ca_internals_test-bin-app_provider.o" => [ + "apps/lib/app_provider.c" + ], + "apps/lib/ca_internals_test-bin-app_rand.o" => [ + "apps/lib/app_rand.c" + ], + "apps/lib/ca_internals_test-bin-app_x509.o" => [ + "apps/lib/app_x509.c" + ], + "apps/lib/ca_internals_test-bin-apps.o" => [ + "apps/lib/apps.c" + ], + "apps/lib/ca_internals_test-bin-apps_ui.o" => [ + "apps/lib/apps_ui.c" + ], + "apps/lib/ca_internals_test-bin-engine.o" => [ + "apps/lib/engine.c" + ], + "apps/lib/ca_internals_test-bin-fmt.o" => [ + "apps/lib/fmt.c" + ], "apps/lib/cmp_client_test-bin-cmp_mock_srv.o" => [ "apps/lib/cmp_mock_srv.c" ], @@ -20509,6 +23958,9 @@ our %unified_info = ( "apps/lib/libapps-lib-apps.o" => [ "apps/lib/apps.c" ], + "apps/lib/libapps-lib-apps_opt_printf.o" => [ + "apps/lib/apps_opt_printf.c" + ], "apps/lib/libapps-lib-apps_ui.o" => [ "apps/lib/apps_ui.c" ], @@ -20527,6 +23979,9 @@ our %unified_info = ( "apps/lib/libapps-lib-http_server.o" => [ "apps/lib/http_server.c" ], + "apps/lib/libapps-lib-log.o" => [ + "apps/lib/log.c" + ], "apps/lib/libapps-lib-names.o" => [ "apps/lib/names.c" ], @@ -20558,12 +24013,14 @@ our %unified_info = ( "apps/lib/libapps-lib-app_rand.o", "apps/lib/libapps-lib-app_x509.o", "apps/lib/libapps-lib-apps.o", + "apps/lib/libapps-lib-apps_opt_printf.o", "apps/lib/libapps-lib-apps_ui.o", "apps/lib/libapps-lib-columns.o", "apps/lib/libapps-lib-engine.o", "apps/lib/libapps-lib-engine_loader.o", "apps/lib/libapps-lib-fmt.o", "apps/lib/libapps-lib-http_server.o", + "apps/lib/libapps-lib-log.o", "apps/lib/libapps-lib-names.o", "apps/lib/libapps-lib-opt.o", "apps/lib/libapps-lib-s_cb.o", @@ -20617,6 +24074,7 @@ our %unified_info = ( "apps/openssl-bin-s_server.o", "apps/openssl-bin-s_time.o", "apps/openssl-bin-sess_id.o", + "apps/openssl-bin-skeyutl.o", "apps/openssl-bin-smime.o", "apps/openssl-bin-speed.o", "apps/openssl-bin-spkac.o", @@ -20762,6 +24220,9 @@ our %unified_info = ( "apps/openssl-bin-sess_id.o" => [ "apps/sess_id.c" ], + "apps/openssl-bin-skeyutl.o" => [ + "apps/skeyutl.c" + ], "apps/openssl-bin-smime.o" => [ "apps/smime.c" ], @@ -20825,6 +24286,9 @@ our %unified_info = ( "crypto/aes/libcrypto-lib-aesni-x86_64.o" => [ "crypto/aes/aesni-x86_64.s" ], + "crypto/aes/libcrypto-lib-aesni-xts-avx512.o" => [ + "crypto/aes/aesni-xts-avx512.s" + ], "crypto/aes/libcrypto-lib-bsaes-x86_64.o" => [ "crypto/aes/bsaes-x86_64.s" ], @@ -20852,6 +24316,9 @@ our %unified_info = ( "crypto/aes/libfips-lib-aesni-x86_64.o" => [ "crypto/aes/aesni-x86_64.s" ], + "crypto/aes/libfips-lib-aesni-xts-avx512.o" => [ + "crypto/aes/aesni-xts-avx512.s" + ], "crypto/aes/libfips-lib-bsaes-x86_64.o" => [ "crypto/aes/bsaes-x86_64.s" ], @@ -20861,6 +24328,12 @@ our %unified_info = ( "crypto/aria/libcrypto-lib-aria.o" => [ "crypto/aria/aria.c" ], + "crypto/asn1/asn1_time_test-bin-a_time.o" => [ + "crypto/asn1/a_time.c" + ], + "crypto/asn1/ca_internals_test-bin-a_time.o" => [ + "crypto/asn1/a_time.c" + ], "crypto/asn1/libcrypto-lib-a_bitstr.o" => [ "crypto/asn1/a_bitstr.c" ], @@ -21053,6 +24526,9 @@ our %unified_info = ( "crypto/asn1/libcrypto-lib-x_val.o" => [ "crypto/asn1/x_val.c" ], + "crypto/asn1_time_test-bin-ctype.o" => [ + "crypto/ctype.c" + ], "crypto/async/arch/libcrypto-lib-async_null.o" => [ "crypto/async/arch/async_null.c" ], @@ -21146,6 +24622,9 @@ our %unified_info = ( "crypto/bio/libcrypto-lib-bss_dgram.o" => [ "crypto/bio/bss_dgram.c" ], + "crypto/bio/libcrypto-lib-bss_dgram_pair.o" => [ + "crypto/bio/bss_dgram_pair.c" + ], "crypto/bio/libcrypto-lib-bss_fd.o" => [ "crypto/bio/bss_fd.c" ], @@ -21269,12 +24748,27 @@ our %unified_info = ( "crypto/bn/libcrypto-lib-bn_x931p.o" => [ "crypto/bn/bn_x931p.c" ], + "crypto/bn/libcrypto-lib-rsaz-2k-avx512.o" => [ + "crypto/bn/rsaz-2k-avx512.s" + ], + "crypto/bn/libcrypto-lib-rsaz-2k-avxifma.o" => [ + "crypto/bn/rsaz-2k-avxifma.s" + ], + "crypto/bn/libcrypto-lib-rsaz-3k-avx512.o" => [ + "crypto/bn/rsaz-3k-avx512.s" + ], + "crypto/bn/libcrypto-lib-rsaz-3k-avxifma.o" => [ + "crypto/bn/rsaz-3k-avxifma.s" + ], + "crypto/bn/libcrypto-lib-rsaz-4k-avx512.o" => [ + "crypto/bn/rsaz-4k-avx512.s" + ], + "crypto/bn/libcrypto-lib-rsaz-4k-avxifma.o" => [ + "crypto/bn/rsaz-4k-avxifma.s" + ], "crypto/bn/libcrypto-lib-rsaz-avx2.o" => [ "crypto/bn/rsaz-avx2.s" ], - "crypto/bn/libcrypto-lib-rsaz-avx512.o" => [ - "crypto/bn/rsaz-avx512.s" - ], "crypto/bn/libcrypto-lib-rsaz-x86_64.o" => [ "crypto/bn/rsaz-x86_64.s" ], @@ -21374,12 +24868,27 @@ our %unified_info = ( "crypto/bn/libfips-lib-bn_word.o" => [ "crypto/bn/bn_word.c" ], + "crypto/bn/libfips-lib-rsaz-2k-avx512.o" => [ + "crypto/bn/rsaz-2k-avx512.s" + ], + "crypto/bn/libfips-lib-rsaz-2k-avxifma.o" => [ + "crypto/bn/rsaz-2k-avxifma.s" + ], + "crypto/bn/libfips-lib-rsaz-3k-avx512.o" => [ + "crypto/bn/rsaz-3k-avx512.s" + ], + "crypto/bn/libfips-lib-rsaz-3k-avxifma.o" => [ + "crypto/bn/rsaz-3k-avxifma.s" + ], + "crypto/bn/libfips-lib-rsaz-4k-avx512.o" => [ + "crypto/bn/rsaz-4k-avx512.s" + ], + "crypto/bn/libfips-lib-rsaz-4k-avxifma.o" => [ + "crypto/bn/rsaz-4k-avxifma.s" + ], "crypto/bn/libfips-lib-rsaz-avx2.o" => [ "crypto/bn/rsaz-avx2.s" ], - "crypto/bn/libfips-lib-rsaz-avx512.o" => [ - "crypto/bn/rsaz-avx512.s" - ], "crypto/bn/libfips-lib-rsaz-x86_64.o" => [ "crypto/bn/rsaz-x86_64.s" ], @@ -21407,6 +24916,9 @@ our %unified_info = ( "crypto/buffer/libfips-lib-buffer.o" => [ "crypto/buffer/buffer.c" ], + "crypto/ca_internals_test-bin-ctype.o" => [ + "crypto/ctype.c" + ], "crypto/camellia/libcrypto-lib-cmll-x86_64.o" => [ "crypto/camellia/cmll-x86_64.s" ], @@ -21461,6 +24973,9 @@ our %unified_info = ( "crypto/cmp/libcrypto-lib-cmp_err.o" => [ "crypto/cmp/cmp_err.c" ], + "crypto/cmp/libcrypto-lib-cmp_genm.o" => [ + "crypto/cmp/cmp_genm.c" + ], "crypto/cmp/libcrypto-lib-cmp_hdr.o" => [ "crypto/cmp/cmp_hdr.c" ], @@ -22154,9 +25669,15 @@ our %unified_info = ( "crypto/err/libcrypto-lib-err_blocks.o" => [ "crypto/err/err_blocks.c" ], + "crypto/err/libcrypto-lib-err_mark.o" => [ + "crypto/err/err_mark.c" + ], "crypto/err/libcrypto-lib-err_prn.o" => [ "crypto/err/err_prn.c" ], + "crypto/err/libcrypto-lib-err_save.o" => [ + "crypto/err/err_save.c" + ], "crypto/ess/libcrypto-lib-ess_asn1.o" => [ "crypto/ess/ess_asn1.c" ], @@ -22403,9 +25924,15 @@ our %unified_info = ( "crypto/evp/libcrypto-lib-pmeth_lib.o" => [ "crypto/evp/pmeth_lib.c" ], + "crypto/evp/libcrypto-lib-s_lib.o" => [ + "crypto/evp/s_lib.c" + ], "crypto/evp/libcrypto-lib-signature.o" => [ "crypto/evp/signature.c" ], + "crypto/evp/libcrypto-lib-skeymgmt_meth.o" => [ + "crypto/evp/skeymgmt_meth.c" + ], "crypto/evp/libfips-lib-asymcipher.o" => [ "crypto/evp/asymcipher.c" ], @@ -22451,9 +25978,6 @@ our %unified_info = ( "crypto/evp/libfips-lib-keymgmt_meth.o" => [ "crypto/evp/keymgmt_meth.c" ], - "crypto/evp/libfips-lib-m_sigver.o" => [ - "crypto/evp/m_sigver.c" - ], "crypto/evp/libfips-lib-mac_lib.o" => [ "crypto/evp/mac_lib.c" ], @@ -22472,9 +25996,15 @@ our %unified_info = ( "crypto/evp/libfips-lib-pmeth_lib.o" => [ "crypto/evp/pmeth_lib.c" ], + "crypto/evp/libfips-lib-s_lib.o" => [ + "crypto/evp/s_lib.c" + ], "crypto/evp/libfips-lib-signature.o" => [ "crypto/evp/signature.c" ], + "crypto/evp/libfips-lib-skeymgmt_meth.o" => [ + "crypto/evp/skeymgmt_meth.c" + ], "crypto/ffc/libcrypto-lib-ffc_backend.o" => [ "crypto/ffc/ffc_backend.c" ], @@ -22517,12 +26047,30 @@ our %unified_info = ( "crypto/ffc/libfips-lib-ffc_params_validate.o" => [ "crypto/ffc/ffc_params_validate.c" ], + "crypto/hashtable/libcrypto-lib-hashfunc.o" => [ + "crypto/hashtable/hashfunc.c" + ], + "crypto/hashtable/libcrypto-lib-hashtable.o" => [ + "crypto/hashtable/hashtable.c" + ], + "crypto/hashtable/libfips-lib-hashfunc.o" => [ + "crypto/hashtable/hashfunc.c" + ], + "crypto/hashtable/libfips-lib-hashtable.o" => [ + "crypto/hashtable/hashtable.c" + ], "crypto/hmac/libcrypto-lib-hmac.o" => [ "crypto/hmac/hmac.c" ], "crypto/hmac/libfips-lib-hmac.o" => [ "crypto/hmac/hmac.c" ], + "crypto/hpke/libcrypto-lib-hpke.o" => [ + "crypto/hpke/hpke.c" + ], + "crypto/hpke/libcrypto-lib-hpke_util.o" => [ + "crypto/hpke/hpke_util.c" + ], "crypto/http/libcrypto-lib-http_client.o" => [ "crypto/http/http_client.c" ], @@ -22565,6 +26113,9 @@ our %unified_info = ( "crypto/libcrypto-lib-bsearch.o" => [ "crypto/bsearch.c" ], + "crypto/libcrypto-lib-comp_methods.o" => [ + "crypto/comp_methods.c" + ], "crypto/libcrypto-lib-context.o" => [ "crypto/context.c" ], @@ -22592,9 +26143,15 @@ our %unified_info = ( "crypto/libcrypto-lib-cversion.o" => [ "crypto/cversion.c" ], + "crypto/libcrypto-lib-defaults.o" => [ + "crypto/defaults.c" + ], "crypto/libcrypto-lib-der_writer.o" => [ "crypto/der_writer.c" ], + "crypto/libcrypto-lib-deterministic_nonce.o" => [ + "crypto/deterministic_nonce.c" + ], "crypto/libcrypto-lib-ebcdic.o" => [ "crypto/ebcdic.c" ], @@ -22604,6 +26161,9 @@ our %unified_info = ( "crypto/libcrypto-lib-getenv.o" => [ "crypto/getenv.c" ], + "crypto/libcrypto-lib-indicator_core.o" => [ + "crypto/indicator_core.c" + ], "crypto/libcrypto-lib-info.o" => [ "crypto/info.c" ], @@ -22652,6 +26212,9 @@ our %unified_info = ( "crypto/libcrypto-lib-params_from_text.o" => [ "crypto/params_from_text.c" ], + "crypto/libcrypto-lib-params_idx.o" => [ + "crypto/params_idx.c" + ], "crypto/libcrypto-lib-passphrase.o" => [ "crypto/passphrase.c" ], @@ -22673,12 +26236,21 @@ our %unified_info = ( "crypto/libcrypto-lib-punycode.o" => [ "crypto/punycode.c" ], + "crypto/libcrypto-lib-quic_vlint.o" => [ + "crypto/quic_vlint.c" + ], "crypto/libcrypto-lib-self_test_core.o" => [ "crypto/self_test_core.c" ], + "crypto/libcrypto-lib-sleep.o" => [ + "crypto/sleep.c" + ], "crypto/libcrypto-lib-sparse_array.o" => [ "crypto/sparse_array.c" ], + "crypto/libcrypto-lib-ssl_err.o" => [ + "crypto/ssl_err.c" + ], "crypto/libcrypto-lib-threads_lib.o" => [ "crypto/threads_lib.c" ], @@ -22691,6 +26263,9 @@ our %unified_info = ( "crypto/libcrypto-lib-threads_win.o" => [ "crypto/threads_win.c" ], + "crypto/libcrypto-lib-time.o" => [ + "crypto/time.c" + ], "crypto/libcrypto-lib-trace.o" => [ "crypto/trace.c" ], @@ -22757,6 +26332,9 @@ our %unified_info = ( "crypto/libfips-lib-params_from_text.o" => [ "crypto/params_from_text.c" ], + "crypto/libfips-lib-params_idx.o" => [ + "crypto/params_idx.c" + ], "crypto/libfips-lib-provider_core.o" => [ "crypto/provider_core.c" ], @@ -22781,6 +26359,9 @@ our %unified_info = ( "crypto/libfips-lib-threads_win.o" => [ "crypto/threads_win.c" ], + "crypto/libfips-lib-time.o" => [ + "crypto/time.c" + ], "crypto/libfips-lib-x86_64cpuid.o" => [ "crypto/x86_64cpuid.s" ], @@ -22808,6 +26389,63 @@ our %unified_info = ( "crypto/mdc2/libcrypto-lib-mdc2dgst.o" => [ "crypto/mdc2/mdc2dgst.c" ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_encoders.o" => [ + "crypto/ml_dsa/ml_dsa_encoders.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key.o" => [ + "crypto/ml_dsa/ml_dsa_key.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key_compress.o" => [ + "crypto/ml_dsa/ml_dsa_key_compress.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_matrix.o" => [ + "crypto/ml_dsa/ml_dsa_matrix.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_ntt.o" => [ + "crypto/ml_dsa/ml_dsa_ntt.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_params.o" => [ + "crypto/ml_dsa/ml_dsa_params.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sample.o" => [ + "crypto/ml_dsa/ml_dsa_sample.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sign.o" => [ + "crypto/ml_dsa/ml_dsa_sign.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_encoders.o" => [ + "crypto/ml_dsa/ml_dsa_encoders.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_key.o" => [ + "crypto/ml_dsa/ml_dsa_key.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_key_compress.o" => [ + "crypto/ml_dsa/ml_dsa_key_compress.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_matrix.o" => [ + "crypto/ml_dsa/ml_dsa_matrix.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_ntt.o" => [ + "crypto/ml_dsa/ml_dsa_ntt.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_params.o" => [ + "crypto/ml_dsa/ml_dsa_params.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_sample.o" => [ + "crypto/ml_dsa/ml_dsa_sample.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_sign.o" => [ + "crypto/ml_dsa/ml_dsa_sign.c" + ], + "crypto/ml_kem/libcrypto-lib-ml_kem.o" => [ + "crypto/ml_kem/ml_kem.c" + ], + "crypto/ml_kem/libfips-lib-ml_kem.o" => [ + "crypto/ml_kem/ml_kem.c" + ], + "crypto/modes/libcrypto-lib-aes-gcm-avx512.o" => [ + "crypto/modes/aes-gcm-avx512.s" + ], "crypto/modes/libcrypto-lib-aesni-gcm-x86_64.o" => [ "crypto/modes/aesni-gcm-x86_64.s" ], @@ -22847,6 +26485,12 @@ our %unified_info = ( "crypto/modes/libcrypto-lib-xts128.o" => [ "crypto/modes/xts128.c" ], + "crypto/modes/libcrypto-lib-xts128gb.o" => [ + "crypto/modes/xts128gb.c" + ], + "crypto/modes/libfips-lib-aes-gcm-avx512.o" => [ + "crypto/modes/aes-gcm-avx512.s" + ], "crypto/modes/libfips-lib-aesni-gcm-x86_64.o" => [ "crypto/modes/aesni-gcm-x86_64.s" ], @@ -22877,6 +26521,9 @@ our %unified_info = ( "crypto/modes/libfips-lib-xts128.o" => [ "crypto/modes/xts128.c" ], + "crypto/modes/libfips-lib-xts128gb.o" => [ + "crypto/modes/xts128gb.c" + ], "crypto/objects/libcrypto-lib-o_names.o" => [ "crypto/objects/o_names.c" ], @@ -22922,6 +26569,9 @@ our %unified_info = ( "crypto/ocsp/libcrypto-lib-v3_ocsp.o" => [ "crypto/ocsp/v3_ocsp.c" ], + "crypto/packettest-bin-quic_vlint.o" => [ + "crypto/quic_vlint.c" + ], "crypto/pem/libcrypto-lib-pem_all.o" => [ "crypto/pem/pem_all.c" ], @@ -23084,6 +26734,9 @@ our %unified_info = ( "crypto/rand/libcrypto-lib-rand_pool.o" => [ "crypto/rand/rand_pool.c" ], + "crypto/rand/libcrypto-lib-rand_uniform.o" => [ + "crypto/rand/rand_uniform.c" + ], "crypto/rand/libcrypto-lib-randfile.o" => [ "crypto/rand/randfile.c" ], @@ -23327,6 +26980,66 @@ our %unified_info = ( "crypto/siphash/libcrypto-lib-siphash.o" => [ "crypto/siphash/siphash.c" ], + "crypto/slh_dsa/libcrypto-lib-slh_adrs.o" => [ + "crypto/slh_dsa/slh_adrs.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_dsa.o" => [ + "crypto/slh_dsa/slh_dsa.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_dsa_hash_ctx.o" => [ + "crypto/slh_dsa/slh_dsa_hash_ctx.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_dsa_key.o" => [ + "crypto/slh_dsa/slh_dsa_key.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_fors.o" => [ + "crypto/slh_dsa/slh_fors.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_hash.o" => [ + "crypto/slh_dsa/slh_hash.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_hypertree.o" => [ + "crypto/slh_dsa/slh_hypertree.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_params.o" => [ + "crypto/slh_dsa/slh_params.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_wots.o" => [ + "crypto/slh_dsa/slh_wots.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_xmss.o" => [ + "crypto/slh_dsa/slh_xmss.c" + ], + "crypto/slh_dsa/libfips-lib-slh_adrs.o" => [ + "crypto/slh_dsa/slh_adrs.c" + ], + "crypto/slh_dsa/libfips-lib-slh_dsa.o" => [ + "crypto/slh_dsa/slh_dsa.c" + ], + "crypto/slh_dsa/libfips-lib-slh_dsa_hash_ctx.o" => [ + "crypto/slh_dsa/slh_dsa_hash_ctx.c" + ], + "crypto/slh_dsa/libfips-lib-slh_dsa_key.o" => [ + "crypto/slh_dsa/slh_dsa_key.c" + ], + "crypto/slh_dsa/libfips-lib-slh_fors.o" => [ + "crypto/slh_dsa/slh_fors.c" + ], + "crypto/slh_dsa/libfips-lib-slh_hash.o" => [ + "crypto/slh_dsa/slh_hash.c" + ], + "crypto/slh_dsa/libfips-lib-slh_hypertree.o" => [ + "crypto/slh_dsa/slh_hypertree.c" + ], + "crypto/slh_dsa/libfips-lib-slh_params.o" => [ + "crypto/slh_dsa/slh_params.c" + ], + "crypto/slh_dsa/libfips-lib-slh_wots.o" => [ + "crypto/slh_dsa/slh_wots.c" + ], + "crypto/slh_dsa/libfips-lib-slh_xmss.o" => [ + "crypto/slh_dsa/slh_xmss.c" + ], "crypto/sm2/libcrypto-lib-sm2_crypt.o" => [ "crypto/sm2/sm2_crypt.c" ], @@ -23381,6 +27094,42 @@ our %unified_info = ( "crypto/store/libcrypto-lib-store_strings.o" => [ "crypto/store/store_strings.c" ], + "crypto/thread/arch/libcrypto-lib-thread_none.o" => [ + "crypto/thread/arch/thread_none.c" + ], + "crypto/thread/arch/libcrypto-lib-thread_posix.o" => [ + "crypto/thread/arch/thread_posix.c" + ], + "crypto/thread/arch/libcrypto-lib-thread_win.o" => [ + "crypto/thread/arch/thread_win.c" + ], + "crypto/thread/arch/libfips-lib-thread_none.o" => [ + "crypto/thread/arch/thread_none.c" + ], + "crypto/thread/arch/libfips-lib-thread_posix.o" => [ + "crypto/thread/arch/thread_posix.c" + ], + "crypto/thread/arch/libfips-lib-thread_win.o" => [ + "crypto/thread/arch/thread_win.c" + ], + "crypto/thread/libcrypto-lib-api.o" => [ + "crypto/thread/api.c" + ], + "crypto/thread/libcrypto-lib-arch.o" => [ + "crypto/thread/arch.c" + ], + "crypto/thread/libcrypto-lib-internal.o" => [ + "crypto/thread/internal.c" + ], + "crypto/thread/libfips-lib-api.o" => [ + "crypto/thread/api.c" + ], + "crypto/thread/libfips-lib-arch.o" => [ + "crypto/thread/arch.c" + ], + "crypto/thread/libfips-lib-internal.o" => [ + "crypto/thread/internal.c" + ], "crypto/ts/libcrypto-lib-ts_asn1.o" => [ "crypto/ts/ts_asn1.c" ], @@ -23465,6 +27214,9 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-pcy_tree.o" => [ "crypto/x509/pcy_tree.c" ], + "crypto/x509/libcrypto-lib-t_acert.o" => [ + "crypto/x509/t_acert.c" + ], "crypto/x509/libcrypto-lib-t_crl.o" => [ "crypto/x509/t_crl.c" ], @@ -23474,6 +27226,12 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-t_x509.o" => [ "crypto/x509/t_x509.c" ], + "crypto/x509/libcrypto-lib-v3_aaa.o" => [ + "crypto/x509/v3_aaa.c" + ], + "crypto/x509/libcrypto-lib-v3_ac_tgt.o" => [ + "crypto/x509/v3_ac_tgt.c" + ], "crypto/x509/libcrypto-lib-v3_addr.o" => [ "crypto/x509/v3_addr.c" ], @@ -23489,6 +27247,21 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_asid.o" => [ "crypto/x509/v3_asid.c" ], + "crypto/x509/libcrypto-lib-v3_attrdesc.o" => [ + "crypto/x509/v3_attrdesc.c" + ], + "crypto/x509/libcrypto-lib-v3_attrmap.o" => [ + "crypto/x509/v3_attrmap.c" + ], + "crypto/x509/libcrypto-lib-v3_audit_id.o" => [ + "crypto/x509/v3_audit_id.c" + ], + "crypto/x509/libcrypto-lib-v3_authattid.o" => [ + "crypto/x509/v3_authattid.c" + ], + "crypto/x509/libcrypto-lib-v3_battcons.o" => [ + "crypto/x509/v3_battcons.c" + ], "crypto/x509/libcrypto-lib-v3_bcons.o" => [ "crypto/x509/v3_bcons.c" ], @@ -23513,15 +27286,24 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_genn.o" => [ "crypto/x509/v3_genn.c" ], + "crypto/x509/libcrypto-lib-v3_group_ac.o" => [ + "crypto/x509/v3_group_ac.c" + ], "crypto/x509/libcrypto-lib-v3_ia5.o" => [ "crypto/x509/v3_ia5.c" ], + "crypto/x509/libcrypto-lib-v3_ind_iss.o" => [ + "crypto/x509/v3_ind_iss.c" + ], "crypto/x509/libcrypto-lib-v3_info.o" => [ "crypto/x509/v3_info.c" ], "crypto/x509/libcrypto-lib-v3_int.o" => [ "crypto/x509/v3_int.c" ], + "crypto/x509/libcrypto-lib-v3_iobo.o" => [ + "crypto/x509/v3_iobo.c" + ], "crypto/x509/libcrypto-lib-v3_ist.o" => [ "crypto/x509/v3_ist.c" ], @@ -23531,6 +27313,12 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_ncons.o" => [ "crypto/x509/v3_ncons.c" ], + "crypto/x509/libcrypto-lib-v3_no_ass.o" => [ + "crypto/x509/v3_no_ass.c" + ], + "crypto/x509/libcrypto-lib-v3_no_rev_avail.o" => [ + "crypto/x509/v3_no_rev_avail.c" + ], "crypto/x509/libcrypto-lib-v3_pci.o" => [ "crypto/x509/v3_pci.c" ], @@ -23552,18 +27340,36 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_purp.o" => [ "crypto/x509/v3_purp.c" ], + "crypto/x509/libcrypto-lib-v3_rolespec.o" => [ + "crypto/x509/v3_rolespec.c" + ], "crypto/x509/libcrypto-lib-v3_san.o" => [ "crypto/x509/v3_san.c" ], + "crypto/x509/libcrypto-lib-v3_sda.o" => [ + "crypto/x509/v3_sda.c" + ], + "crypto/x509/libcrypto-lib-v3_single_use.o" => [ + "crypto/x509/v3_single_use.c" + ], "crypto/x509/libcrypto-lib-v3_skid.o" => [ "crypto/x509/v3_skid.c" ], + "crypto/x509/libcrypto-lib-v3_soa_id.o" => [ + "crypto/x509/v3_soa_id.c" + ], "crypto/x509/libcrypto-lib-v3_sxnet.o" => [ "crypto/x509/v3_sxnet.c" ], + "crypto/x509/libcrypto-lib-v3_timespec.o" => [ + "crypto/x509/v3_timespec.c" + ], "crypto/x509/libcrypto-lib-v3_tlsf.o" => [ "crypto/x509/v3_tlsf.c" ], + "crypto/x509/libcrypto-lib-v3_usernotice.o" => [ + "crypto/x509/v3_usernotice.c" + ], "crypto/x509/libcrypto-lib-v3_utf8.o" => [ "crypto/x509/v3_utf8.c" ], @@ -23573,6 +27379,9 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3err.o" => [ "crypto/x509/v3err.c" ], + "crypto/x509/libcrypto-lib-x509_acert.o" => [ + "crypto/x509/x509_acert.c" + ], "crypto/x509/libcrypto-lib-x509_att.o" => [ "crypto/x509/x509_att.c" ], @@ -23624,6 +27433,9 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x509_vpm.o" => [ "crypto/x509/x509_vpm.c" ], + "crypto/x509/libcrypto-lib-x509aset.o" => [ + "crypto/x509/x509aset.c" + ], "crypto/x509/libcrypto-lib-x509cset.o" => [ "crypto/x509/x509cset.c" ], @@ -23651,6 +27463,9 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x_exten.o" => [ "crypto/x509/x_exten.c" ], + "crypto/x509/libcrypto-lib-x_ietfatt.o" => [ + "crypto/x509/x_ietfatt.c" + ], "crypto/x509/libcrypto-lib-x_name.o" => [ "crypto/x509/x_name.c" ], @@ -23678,6 +27493,16 @@ our %unified_info = ( "engines/libcrypto-lib-e_padlock.o" => [ "engines/e_padlock.c" ], + "fuzz/acert-test" => [ + "fuzz/acert-test-bin-acert.o", + "fuzz/acert-test-bin-test-corpus.o" + ], + "fuzz/acert-test-bin-acert.o" => [ + "fuzz/acert.c" + ], + "fuzz/acert-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], "fuzz/asn1-test" => [ "fuzz/asn1-test-bin-asn1.o", "fuzz/asn1-test-bin-fuzz_rand.o", @@ -23790,6 +27615,190 @@ our %unified_info = ( "fuzz/ct-test-bin-test-corpus.o" => [ "fuzz/test-corpus.c" ], + "fuzz/decoder-test" => [ + "fuzz/decoder-test-bin-decoder.o", + "fuzz/decoder-test-bin-fuzz_rand.o", + "fuzz/decoder-test-bin-test-corpus.o" + ], + "fuzz/decoder-test-bin-decoder.o" => [ + "fuzz/decoder.c" + ], + "fuzz/decoder-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/decoder-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/dtlsclient-test" => [ + "fuzz/dtlsclient-test-bin-dtlsclient.o", + "fuzz/dtlsclient-test-bin-fuzz_rand.o", + "fuzz/dtlsclient-test-bin-test-corpus.o" + ], + "fuzz/dtlsclient-test-bin-dtlsclient.o" => [ + "fuzz/dtlsclient.c" + ], + "fuzz/dtlsclient-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/dtlsclient-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/dtlsserver-test" => [ + "fuzz/dtlsserver-test-bin-dtlsserver.o", + "fuzz/dtlsserver-test-bin-fuzz_rand.o", + "fuzz/dtlsserver-test-bin-test-corpus.o" + ], + "fuzz/dtlsserver-test-bin-dtlsserver.o" => [ + "fuzz/dtlsserver.c" + ], + "fuzz/dtlsserver-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/dtlsserver-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/hashtable-test" => [ + "fuzz/hashtable-test-bin-fuzz_rand.o", + "fuzz/hashtable-test-bin-hashtable.o", + "fuzz/hashtable-test-bin-test-corpus.o" + ], + "fuzz/hashtable-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/hashtable-test-bin-hashtable.o" => [ + "fuzz/hashtable.c" + ], + "fuzz/hashtable-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/ml-dsa-test" => [ + "fuzz/ml-dsa-test-bin-fuzz_rand.o", + "fuzz/ml-dsa-test-bin-ml-dsa.o", + "fuzz/ml-dsa-test-bin-test-corpus.o" + ], + "fuzz/ml-dsa-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/ml-dsa-test-bin-ml-dsa.o" => [ + "fuzz/ml-dsa.c" + ], + "fuzz/ml-dsa-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/ml-kem-test" => [ + "fuzz/ml-kem-test-bin-fuzz_rand.o", + "fuzz/ml-kem-test-bin-ml-kem.o", + "fuzz/ml-kem-test-bin-test-corpus.o" + ], + "fuzz/ml-kem-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/ml-kem-test-bin-ml-kem.o" => [ + "fuzz/ml-kem.c" + ], + "fuzz/ml-kem-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/pem-test" => [ + "fuzz/pem-test-bin-pem.o", + "fuzz/pem-test-bin-test-corpus.o" + ], + "fuzz/pem-test-bin-pem.o" => [ + "fuzz/pem.c" + ], + "fuzz/pem-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/provider-test" => [ + "fuzz/provider-test-bin-provider.o", + "fuzz/provider-test-bin-test-corpus.o" + ], + "fuzz/provider-test-bin-provider.o" => [ + "fuzz/provider.c" + ], + "fuzz/provider-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/punycode-test" => [ + "fuzz/punycode-test-bin-punycode.o", + "fuzz/punycode-test-bin-test-corpus.o" + ], + "fuzz/punycode-test-bin-punycode.o" => [ + "fuzz/punycode.c" + ], + "fuzz/punycode-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-client-test" => [ + "fuzz/quic-client-test-bin-fuzz_rand.o", + "fuzz/quic-client-test-bin-quic-client.o", + "fuzz/quic-client-test-bin-test-corpus.o" + ], + "fuzz/quic-client-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-client-test-bin-quic-client.o" => [ + "fuzz/quic-client.c" + ], + "fuzz/quic-client-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-lcidm-test" => [ + "fuzz/quic-lcidm-test-bin-fuzz_rand.o", + "fuzz/quic-lcidm-test-bin-quic-lcidm.o", + "fuzz/quic-lcidm-test-bin-test-corpus.o" + ], + "fuzz/quic-lcidm-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-lcidm-test-bin-quic-lcidm.o" => [ + "fuzz/quic-lcidm.c" + ], + "fuzz/quic-lcidm-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-rcidm-test" => [ + "fuzz/quic-rcidm-test-bin-fuzz_rand.o", + "fuzz/quic-rcidm-test-bin-quic-rcidm.o", + "fuzz/quic-rcidm-test-bin-test-corpus.o" + ], + "fuzz/quic-rcidm-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-rcidm-test-bin-quic-rcidm.o" => [ + "fuzz/quic-rcidm.c" + ], + "fuzz/quic-rcidm-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-server-test" => [ + "fuzz/quic-server-test-bin-fuzz_rand.o", + "fuzz/quic-server-test-bin-quic-server.o", + "fuzz/quic-server-test-bin-test-corpus.o" + ], + "fuzz/quic-server-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-server-test-bin-quic-server.o" => [ + "fuzz/quic-server.c" + ], + "fuzz/quic-server-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-srtm-test" => [ + "fuzz/quic-srtm-test-bin-fuzz_rand.o", + "fuzz/quic-srtm-test-bin-quic-srtm.o", + "fuzz/quic-srtm-test-bin-test-corpus.o" + ], + "fuzz/quic-srtm-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-srtm-test-bin-quic-srtm.o" => [ + "fuzz/quic-srtm.c" + ], + "fuzz/quic-srtm-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], "fuzz/server-test" => [ "fuzz/server-test-bin-fuzz_rand.o", "fuzz/server-test-bin-server.o", @@ -23804,6 +27813,40 @@ our %unified_info = ( "fuzz/server-test-bin-test-corpus.o" => [ "fuzz/test-corpus.c" ], + "fuzz/slh-dsa-test" => [ + "fuzz/slh-dsa-test-bin-fuzz_rand.o", + "fuzz/slh-dsa-test-bin-slh-dsa.o", + "fuzz/slh-dsa-test-bin-test-corpus.o" + ], + "fuzz/slh-dsa-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/slh-dsa-test-bin-slh-dsa.o" => [ + "fuzz/slh-dsa.c" + ], + "fuzz/slh-dsa-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/smime-test" => [ + "fuzz/smime-test-bin-smime.o", + "fuzz/smime-test-bin-test-corpus.o" + ], + "fuzz/smime-test-bin-smime.o" => [ + "fuzz/smime.c" + ], + "fuzz/smime-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/v3name-test" => [ + "fuzz/v3name-test-bin-test-corpus.o", + "fuzz/v3name-test-bin-v3name.o" + ], + "fuzz/v3name-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/v3name-test-bin-v3name.o" => [ + "fuzz/v3name.c" + ], "fuzz/x509-test" => [ "fuzz/x509-test-bin-fuzz_rand.o", "fuzz/x509-test-bin-test-corpus.o", @@ -23830,6 +27873,7 @@ our %unified_info = ( "crypto/aes/libcrypto-lib-aesni-sha1-x86_64.o", "crypto/aes/libcrypto-lib-aesni-sha256-x86_64.o", "crypto/aes/libcrypto-lib-aesni-x86_64.o", + "crypto/aes/libcrypto-lib-aesni-xts-avx512.o", "crypto/aes/libcrypto-lib-bsaes-x86_64.o", "crypto/aes/libcrypto-lib-vpaes-x86_64.o", "crypto/aria/libcrypto-lib-aria.o", @@ -23928,6 +27972,7 @@ our %unified_info = ( "crypto/bio/libcrypto-lib-bss_conn.o", "crypto/bio/libcrypto-lib-bss_core.o", "crypto/bio/libcrypto-lib-bss_dgram.o", + "crypto/bio/libcrypto-lib-bss_dgram_pair.o", "crypto/bio/libcrypto-lib-bss_fd.o", "crypto/bio/libcrypto-lib-bss_file.o", "crypto/bio/libcrypto-lib-bss_log.o", @@ -23968,8 +28013,13 @@ our %unified_info = ( "crypto/bn/libcrypto-lib-bn_srp.o", "crypto/bn/libcrypto-lib-bn_word.o", "crypto/bn/libcrypto-lib-bn_x931p.o", + "crypto/bn/libcrypto-lib-rsaz-2k-avx512.o", + "crypto/bn/libcrypto-lib-rsaz-2k-avxifma.o", + "crypto/bn/libcrypto-lib-rsaz-3k-avx512.o", + "crypto/bn/libcrypto-lib-rsaz-3k-avxifma.o", + "crypto/bn/libcrypto-lib-rsaz-4k-avx512.o", + "crypto/bn/libcrypto-lib-rsaz-4k-avxifma.o", "crypto/bn/libcrypto-lib-rsaz-avx2.o", - "crypto/bn/libcrypto-lib-rsaz-avx512.o", "crypto/bn/libcrypto-lib-rsaz-x86_64.o", "crypto/bn/libcrypto-lib-rsaz_exp.o", "crypto/bn/libcrypto-lib-rsaz_exp_x2.o", @@ -23995,6 +28045,7 @@ our %unified_info = ( "crypto/cmp/libcrypto-lib-cmp_client.o", "crypto/cmp/libcrypto-lib-cmp_ctx.o", "crypto/cmp/libcrypto-lib-cmp_err.o", + "crypto/cmp/libcrypto-lib-cmp_genm.o", "crypto/cmp/libcrypto-lib-cmp_hdr.o", "crypto/cmp/libcrypto-lib-cmp_http.o", "crypto/cmp/libcrypto-lib-cmp_msg.o", @@ -24173,7 +28224,9 @@ our %unified_info = ( "crypto/err/libcrypto-lib-err_all.o", "crypto/err/libcrypto-lib-err_all_legacy.o", "crypto/err/libcrypto-lib-err_blocks.o", + "crypto/err/libcrypto-lib-err_mark.o", "crypto/err/libcrypto-lib-err_prn.o", + "crypto/err/libcrypto-lib-err_save.o", "crypto/ess/libcrypto-lib-ess_asn1.o", "crypto/ess/libcrypto-lib-ess_err.o", "crypto/ess/libcrypto-lib-ess_lib.o", @@ -24256,7 +28309,9 @@ our %unified_info = ( "crypto/evp/libcrypto-lib-pmeth_check.o", "crypto/evp/libcrypto-lib-pmeth_gn.o", "crypto/evp/libcrypto-lib-pmeth_lib.o", + "crypto/evp/libcrypto-lib-s_lib.o", "crypto/evp/libcrypto-lib-signature.o", + "crypto/evp/libcrypto-lib-skeymgmt_meth.o", "crypto/ffc/libcrypto-lib-ffc_backend.o", "crypto/ffc/libcrypto-lib-ffc_dh.o", "crypto/ffc/libcrypto-lib-ffc_key_generate.o", @@ -24264,7 +28319,11 @@ our %unified_info = ( "crypto/ffc/libcrypto-lib-ffc_params.o", "crypto/ffc/libcrypto-lib-ffc_params_generate.o", "crypto/ffc/libcrypto-lib-ffc_params_validate.o", + "crypto/hashtable/libcrypto-lib-hashfunc.o", + "crypto/hashtable/libcrypto-lib-hashtable.o", "crypto/hmac/libcrypto-lib-hmac.o", + "crypto/hpke/libcrypto-lib-hpke.o", + "crypto/hpke/libcrypto-lib-hpke_util.o", "crypto/http/libcrypto-lib-http_client.o", "crypto/http/libcrypto-lib-http_err.o", "crypto/http/libcrypto-lib-http_lib.o", @@ -24278,6 +28337,7 @@ our %unified_info = ( "crypto/lhash/libcrypto-lib-lhash.o", "crypto/libcrypto-lib-asn1_dsa.o", "crypto/libcrypto-lib-bsearch.o", + "crypto/libcrypto-lib-comp_methods.o", "crypto/libcrypto-lib-context.o", "crypto/libcrypto-lib-core_algorithm.o", "crypto/libcrypto-lib-core_fetch.o", @@ -24287,10 +28347,13 @@ our %unified_info = ( "crypto/libcrypto-lib-cryptlib.o", "crypto/libcrypto-lib-ctype.o", "crypto/libcrypto-lib-cversion.o", + "crypto/libcrypto-lib-defaults.o", "crypto/libcrypto-lib-der_writer.o", + "crypto/libcrypto-lib-deterministic_nonce.o", "crypto/libcrypto-lib-ebcdic.o", "crypto/libcrypto-lib-ex_data.o", "crypto/libcrypto-lib-getenv.o", + "crypto/libcrypto-lib-indicator_core.o", "crypto/libcrypto-lib-info.o", "crypto/libcrypto-lib-init.o", "crypto/libcrypto-lib-initthread.o", @@ -24307,6 +28370,7 @@ our %unified_info = ( "crypto/libcrypto-lib-params.o", "crypto/libcrypto-lib-params_dup.o", "crypto/libcrypto-lib-params_from_text.o", + "crypto/libcrypto-lib-params_idx.o", "crypto/libcrypto-lib-passphrase.o", "crypto/libcrypto-lib-provider.o", "crypto/libcrypto-lib-provider_child.o", @@ -24314,12 +28378,16 @@ our %unified_info = ( "crypto/libcrypto-lib-provider_core.o", "crypto/libcrypto-lib-provider_predefined.o", "crypto/libcrypto-lib-punycode.o", + "crypto/libcrypto-lib-quic_vlint.o", "crypto/libcrypto-lib-self_test_core.o", + "crypto/libcrypto-lib-sleep.o", "crypto/libcrypto-lib-sparse_array.o", + "crypto/libcrypto-lib-ssl_err.o", "crypto/libcrypto-lib-threads_lib.o", "crypto/libcrypto-lib-threads_none.o", "crypto/libcrypto-lib-threads_pthread.o", "crypto/libcrypto-lib-threads_win.o", + "crypto/libcrypto-lib-time.o", "crypto/libcrypto-lib-trace.o", "crypto/libcrypto-lib-uid.o", "crypto/libcrypto-lib-x86_64cpuid.o", @@ -24331,6 +28399,16 @@ our %unified_info = ( "crypto/md5/libcrypto-lib-md5_sha1.o", "crypto/mdc2/libcrypto-lib-mdc2_one.o", "crypto/mdc2/libcrypto-lib-mdc2dgst.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_encoders.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key_compress.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_matrix.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_ntt.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_params.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sample.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sign.o", + "crypto/ml_kem/libcrypto-lib-ml_kem.o", + "crypto/modes/libcrypto-lib-aes-gcm-avx512.o", "crypto/modes/libcrypto-lib-aesni-gcm-x86_64.o", "crypto/modes/libcrypto-lib-cbc128.o", "crypto/modes/libcrypto-lib-ccm128.o", @@ -24344,6 +28422,7 @@ our %unified_info = ( "crypto/modes/libcrypto-lib-siv128.o", "crypto/modes/libcrypto-lib-wrap128.o", "crypto/modes/libcrypto-lib-xts128.o", + "crypto/modes/libcrypto-lib-xts128gb.o", "crypto/objects/libcrypto-lib-o_names.o", "crypto/objects/libcrypto-lib-obj_dat.o", "crypto/objects/libcrypto-lib-obj_err.o", @@ -24408,6 +28487,7 @@ our %unified_info = ( "crypto/rand/libcrypto-lib-rand_lib.o", "crypto/rand/libcrypto-lib-rand_meth.o", "crypto/rand/libcrypto-lib-rand_pool.o", + "crypto/rand/libcrypto-lib-rand_uniform.o", "crypto/rand/libcrypto-lib-randfile.o", "crypto/rc2/libcrypto-lib-rc2_cbc.o", "crypto/rc2/libcrypto-lib-rc2_ecb.o", @@ -24461,6 +28541,16 @@ our %unified_info = ( "crypto/sha/libcrypto-lib-sha512-x86_64.o", "crypto/sha/libcrypto-lib-sha512.o", "crypto/siphash/libcrypto-lib-siphash.o", + "crypto/slh_dsa/libcrypto-lib-slh_adrs.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa_hash_ctx.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa_key.o", + "crypto/slh_dsa/libcrypto-lib-slh_fors.o", + "crypto/slh_dsa/libcrypto-lib-slh_hash.o", + "crypto/slh_dsa/libcrypto-lib-slh_hypertree.o", + "crypto/slh_dsa/libcrypto-lib-slh_params.o", + "crypto/slh_dsa/libcrypto-lib-slh_wots.o", + "crypto/slh_dsa/libcrypto-lib-slh_xmss.o", "crypto/sm2/libcrypto-lib-sm2_crypt.o", "crypto/sm2/libcrypto-lib-sm2_err.o", "crypto/sm2/libcrypto-lib-sm2_key.o", @@ -24478,6 +28568,12 @@ our %unified_info = ( "crypto/store/libcrypto-lib-store_register.o", "crypto/store/libcrypto-lib-store_result.o", "crypto/store/libcrypto-lib-store_strings.o", + "crypto/thread/arch/libcrypto-lib-thread_none.o", + "crypto/thread/arch/libcrypto-lib-thread_posix.o", + "crypto/thread/arch/libcrypto-lib-thread_win.o", + "crypto/thread/libcrypto-lib-api.o", + "crypto/thread/libcrypto-lib-arch.o", + "crypto/thread/libcrypto-lib-internal.o", "crypto/ts/libcrypto-lib-ts_asn1.o", "crypto/ts/libcrypto-lib-ts_conf.o", "crypto/ts/libcrypto-lib-ts_err.o", @@ -24506,14 +28602,22 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-pcy_map.o", "crypto/x509/libcrypto-lib-pcy_node.o", "crypto/x509/libcrypto-lib-pcy_tree.o", + "crypto/x509/libcrypto-lib-t_acert.o", "crypto/x509/libcrypto-lib-t_crl.o", "crypto/x509/libcrypto-lib-t_req.o", "crypto/x509/libcrypto-lib-t_x509.o", + "crypto/x509/libcrypto-lib-v3_aaa.o", + "crypto/x509/libcrypto-lib-v3_ac_tgt.o", "crypto/x509/libcrypto-lib-v3_addr.o", "crypto/x509/libcrypto-lib-v3_admis.o", "crypto/x509/libcrypto-lib-v3_akeya.o", "crypto/x509/libcrypto-lib-v3_akid.o", "crypto/x509/libcrypto-lib-v3_asid.o", + "crypto/x509/libcrypto-lib-v3_attrdesc.o", + "crypto/x509/libcrypto-lib-v3_attrmap.o", + "crypto/x509/libcrypto-lib-v3_audit_id.o", + "crypto/x509/libcrypto-lib-v3_authattid.o", + "crypto/x509/libcrypto-lib-v3_battcons.o", "crypto/x509/libcrypto-lib-v3_bcons.o", "crypto/x509/libcrypto-lib-v3_bitst.o", "crypto/x509/libcrypto-lib-v3_conf.o", @@ -24522,12 +28626,17 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_enum.o", "crypto/x509/libcrypto-lib-v3_extku.o", "crypto/x509/libcrypto-lib-v3_genn.o", + "crypto/x509/libcrypto-lib-v3_group_ac.o", "crypto/x509/libcrypto-lib-v3_ia5.o", + "crypto/x509/libcrypto-lib-v3_ind_iss.o", "crypto/x509/libcrypto-lib-v3_info.o", "crypto/x509/libcrypto-lib-v3_int.o", + "crypto/x509/libcrypto-lib-v3_iobo.o", "crypto/x509/libcrypto-lib-v3_ist.o", "crypto/x509/libcrypto-lib-v3_lib.o", "crypto/x509/libcrypto-lib-v3_ncons.o", + "crypto/x509/libcrypto-lib-v3_no_ass.o", + "crypto/x509/libcrypto-lib-v3_no_rev_avail.o", "crypto/x509/libcrypto-lib-v3_pci.o", "crypto/x509/libcrypto-lib-v3_pcia.o", "crypto/x509/libcrypto-lib-v3_pcons.o", @@ -24535,13 +28644,20 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_pmaps.o", "crypto/x509/libcrypto-lib-v3_prn.o", "crypto/x509/libcrypto-lib-v3_purp.o", + "crypto/x509/libcrypto-lib-v3_rolespec.o", "crypto/x509/libcrypto-lib-v3_san.o", + "crypto/x509/libcrypto-lib-v3_sda.o", + "crypto/x509/libcrypto-lib-v3_single_use.o", "crypto/x509/libcrypto-lib-v3_skid.o", + "crypto/x509/libcrypto-lib-v3_soa_id.o", "crypto/x509/libcrypto-lib-v3_sxnet.o", + "crypto/x509/libcrypto-lib-v3_timespec.o", "crypto/x509/libcrypto-lib-v3_tlsf.o", + "crypto/x509/libcrypto-lib-v3_usernotice.o", "crypto/x509/libcrypto-lib-v3_utf8.o", "crypto/x509/libcrypto-lib-v3_utl.o", "crypto/x509/libcrypto-lib-v3err.o", + "crypto/x509/libcrypto-lib-x509_acert.o", "crypto/x509/libcrypto-lib-x509_att.o", "crypto/x509/libcrypto-lib-x509_cmp.o", "crypto/x509/libcrypto-lib-x509_d2.o", @@ -24559,6 +28675,7 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x509_v3.o", "crypto/x509/libcrypto-lib-x509_vfy.o", "crypto/x509/libcrypto-lib-x509_vpm.o", + "crypto/x509/libcrypto-lib-x509aset.o", "crypto/x509/libcrypto-lib-x509cset.o", "crypto/x509/libcrypto-lib-x509name.o", "crypto/x509/libcrypto-lib-x509rset.o", @@ -24568,6 +28685,7 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x_attrib.o", "crypto/x509/libcrypto-lib-x_crl.o", "crypto/x509/libcrypto-lib-x_exten.o", + "crypto/x509/libcrypto-lib-x_ietfatt.o", "crypto/x509/libcrypto-lib-x_name.o", "crypto/x509/libcrypto-lib-x_pubkey.o", "crypto/x509/libcrypto-lib-x_req.o", @@ -24590,14 +28708,15 @@ our %unified_info = ( "ssl/libssl-lib-d1_srtp.o", "ssl/libssl-lib-methods.o", "ssl/libssl-lib-pqueue.o", + "ssl/libssl-lib-priority_queue.o", "ssl/libssl-lib-s3_enc.o", "ssl/libssl-lib-s3_lib.o", "ssl/libssl-lib-s3_msg.o", "ssl/libssl-lib-ssl_asn1.o", "ssl/libssl-lib-ssl_cert.o", + "ssl/libssl-lib-ssl_cert_comp.o", "ssl/libssl-lib-ssl_ciph.o", "ssl/libssl-lib-ssl_conf.o", - "ssl/libssl-lib-ssl_err.o", "ssl/libssl-lib-ssl_err_legacy.o", "ssl/libssl-lib-ssl_init.o", "ssl/libssl-lib-ssl_lib.o", @@ -24614,12 +28733,60 @@ our %unified_info = ( "ssl/libssl-lib-tls13_enc.o", "ssl/libssl-lib-tls_depr.o", "ssl/libssl-lib-tls_srp.o", - "ssl/record/libssl-lib-dtls1_bitmap.o", + "ssl/quic/libssl-lib-cc_newreno.o", + "ssl/quic/libssl-lib-json_enc.o", + "ssl/quic/libssl-lib-qlog.o", + "ssl/quic/libssl-lib-qlog_event_helpers.o", + "ssl/quic/libssl-lib-quic_ackm.o", + "ssl/quic/libssl-lib-quic_cfq.o", + "ssl/quic/libssl-lib-quic_channel.o", + "ssl/quic/libssl-lib-quic_demux.o", + "ssl/quic/libssl-lib-quic_engine.o", + "ssl/quic/libssl-lib-quic_fc.o", + "ssl/quic/libssl-lib-quic_fifd.o", + "ssl/quic/libssl-lib-quic_impl.o", + "ssl/quic/libssl-lib-quic_lcidm.o", + "ssl/quic/libssl-lib-quic_method.o", + "ssl/quic/libssl-lib-quic_obj.o", + "ssl/quic/libssl-lib-quic_port.o", + "ssl/quic/libssl-lib-quic_rcidm.o", + "ssl/quic/libssl-lib-quic_reactor.o", + "ssl/quic/libssl-lib-quic_reactor_wait_ctx.o", + "ssl/quic/libssl-lib-quic_record_rx.o", + "ssl/quic/libssl-lib-quic_record_shared.o", + "ssl/quic/libssl-lib-quic_record_tx.o", + "ssl/quic/libssl-lib-quic_record_util.o", + "ssl/quic/libssl-lib-quic_rstream.o", + "ssl/quic/libssl-lib-quic_rx_depack.o", + "ssl/quic/libssl-lib-quic_sf_list.o", + "ssl/quic/libssl-lib-quic_srt_gen.o", + "ssl/quic/libssl-lib-quic_srtm.o", + "ssl/quic/libssl-lib-quic_sstream.o", + "ssl/quic/libssl-lib-quic_statm.o", + "ssl/quic/libssl-lib-quic_stream_map.o", + "ssl/quic/libssl-lib-quic_thread_assist.o", + "ssl/quic/libssl-lib-quic_tls.o", + "ssl/quic/libssl-lib-quic_tls_api.o", + "ssl/quic/libssl-lib-quic_trace.o", + "ssl/quic/libssl-lib-quic_tserver.o", + "ssl/quic/libssl-lib-quic_txp.o", + "ssl/quic/libssl-lib-quic_txpim.o", + "ssl/quic/libssl-lib-quic_types.o", + "ssl/quic/libssl-lib-quic_wire.o", + "ssl/quic/libssl-lib-quic_wire_pkt.o", + "ssl/quic/libssl-lib-uint_set.o", "ssl/record/libssl-lib-rec_layer_d1.o", "ssl/record/libssl-lib-rec_layer_s3.o", - "ssl/record/libssl-lib-ssl3_buffer.o", - "ssl/record/libssl-lib-ssl3_record.o", - "ssl/record/libssl-lib-ssl3_record_tls13.o", + "ssl/record/methods/libssl-lib-dtls_meth.o", + "ssl/record/methods/libssl-lib-ssl3_meth.o", + "ssl/record/methods/libssl-lib-tls13_meth.o", + "ssl/record/methods/libssl-lib-tls1_meth.o", + "ssl/record/methods/libssl-lib-tls_common.o", + "ssl/record/methods/libssl-lib-tls_multib.o", + "ssl/record/methods/libssl-lib-tlsany_meth.o", + "ssl/rio/libssl-lib-poll_builder.o", + "ssl/rio/libssl-lib-poll_immediate.o", + "ssl/rio/libssl-lib-rio_notifier.o", "ssl/statem/libssl-lib-extensions.o", "ssl/statem/libssl-lib-extensions_clnt.o", "ssl/statem/libssl-lib-extensions_cust.o", @@ -24657,12 +28824,24 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ecx_key.o" => [ "providers/common/der/der_ecx_key.c" ], + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o" => [ + "providers/common/der/der_ml_dsa_gen.c" + ], + "providers/common/der/libcommon-lib-der_ml_dsa_key.o" => [ + "providers/common/der/der_ml_dsa_key.c" + ], "providers/common/der/libcommon-lib-der_rsa_gen.o" => [ "providers/common/der/der_rsa_gen.c" ], "providers/common/der/libcommon-lib-der_rsa_key.o" => [ "providers/common/der/der_rsa_key.c" ], + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o" => [ + "providers/common/der/der_slh_dsa_gen.c" + ], + "providers/common/der/libcommon-lib-der_slh_dsa_key.o" => [ + "providers/common/der/der_slh_dsa_key.c" + ], "providers/common/der/libcommon-lib-der_wrap_gen.o" => [ "providers/common/der/der_wrap_gen.c" ], @@ -24729,6 +28908,9 @@ our %unified_info = ( "providers/common/libfips-lib-securitycheck_fips.o" => [ "providers/common/securitycheck_fips.c" ], + "providers/endecode_test-bin-legacyprov.o" => [ + "providers/legacyprov.c" + ], "providers/evp_extra_test-bin-legacyprov.o" => [ "providers/legacyprov.c" ], @@ -24739,6 +28921,9 @@ our %unified_info = ( "providers/fips/fips-dso-fips_entry.o" => [ "providers/fips/fips_entry.c" ], + "providers/fips/libfips-lib-fipsindicator.o" => [ + "providers/fips/fipsindicator.c" + ], "providers/fips/libfips-lib-fipsprov.o" => [ "providers/fips/fipsprov.c" ], @@ -24802,6 +28987,15 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_hw.o" => [ "providers/implementations/ciphers/cipher_aes_gcm_hw.c" ], + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv.o" => [ + "providers/implementations/ciphers/cipher_aes_gcm_siv.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_hw.o" => [ + "providers/implementations/ciphers/cipher_aes_gcm_siv_hw.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_polyval.o" => [ + "providers/implementations/ciphers/cipher_aes_gcm_siv_polyval.c" + ], "providers/implementations/ciphers/libdefault-lib-cipher_aes_hw.o" => [ "providers/implementations/ciphers/cipher_aes_hw.c" ], @@ -24874,9 +29068,27 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_sm4.o" => [ "providers/implementations/ciphers/cipher_sm4.c" ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm.o" => [ + "providers/implementations/ciphers/cipher_sm4_ccm.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm_hw.o" => [ + "providers/implementations/ciphers/cipher_sm4_ccm_hw.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm.o" => [ + "providers/implementations/ciphers/cipher_sm4_gcm.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm_hw.o" => [ + "providers/implementations/ciphers/cipher_sm4_gcm_hw.c" + ], "providers/implementations/ciphers/libdefault-lib-cipher_sm4_hw.o" => [ "providers/implementations/ciphers/cipher_sm4_hw.c" ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts.o" => [ + "providers/implementations/ciphers/cipher_sm4_xts.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts_hw.o" => [ + "providers/implementations/ciphers/cipher_sm4_xts_hw.c" + ], "providers/implementations/ciphers/libdefault-lib-cipher_tdes.o" => [ "providers/implementations/ciphers/cipher_tdes.c" ], @@ -25096,6 +29308,15 @@ our %unified_info = ( "providers/implementations/encode_decode/libdefault-lib-endecoder_common.o" => [ "providers/implementations/encode_decode/endecoder_common.c" ], + "providers/implementations/encode_decode/libdefault-lib-ml_common_codecs.o" => [ + "providers/implementations/encode_decode/ml_common_codecs.c" + ], + "providers/implementations/encode_decode/libdefault-lib-ml_dsa_codecs.o" => [ + "providers/implementations/encode_decode/ml_dsa_codecs.c" + ], + "providers/implementations/encode_decode/libdefault-lib-ml_kem_codecs.o" => [ + "providers/implementations/encode_decode/ml_kem_codecs.c" + ], "providers/implementations/exchange/libdefault-lib-dh_exch.o" => [ "providers/implementations/exchange/dh_exch.c" ], @@ -25120,9 +29341,15 @@ our %unified_info = ( "providers/implementations/exchange/libfips-lib-kdf_exch.o" => [ "providers/implementations/exchange/kdf_exch.c" ], + "providers/implementations/kdfs/libdefault-lib-argon2.o" => [ + "providers/implementations/kdfs/argon2.c" + ], "providers/implementations/kdfs/libdefault-lib-hkdf.o" => [ "providers/implementations/kdfs/hkdf.c" ], + "providers/implementations/kdfs/libdefault-lib-hmacdrbg_kdf.o" => [ + "providers/implementations/kdfs/hmacdrbg_kdf.c" + ], "providers/implementations/kdfs/libdefault-lib-kbkdf.o" => [ "providers/implementations/kdfs/kbkdf.c" ], @@ -25180,12 +29407,39 @@ our %unified_info = ( "providers/implementations/kdfs/liblegacy-lib-pbkdf1.o" => [ "providers/implementations/kdfs/pbkdf1.c" ], + "providers/implementations/kdfs/liblegacy-lib-pvkkdf.o" => [ + "providers/implementations/kdfs/pvkkdf.c" + ], + "providers/implementations/kem/libdefault-lib-ec_kem.o" => [ + "providers/implementations/kem/ec_kem.c" + ], + "providers/implementations/kem/libdefault-lib-ecx_kem.o" => [ + "providers/implementations/kem/ecx_kem.c" + ], + "providers/implementations/kem/libdefault-lib-kem_util.o" => [ + "providers/implementations/kem/kem_util.c" + ], + "providers/implementations/kem/libdefault-lib-ml_kem_kem.o" => [ + "providers/implementations/kem/ml_kem_kem.c" + ], + "providers/implementations/kem/libdefault-lib-mlx_kem.o" => [ + "providers/implementations/kem/mlx_kem.c" + ], "providers/implementations/kem/libdefault-lib-rsa_kem.o" => [ "providers/implementations/kem/rsa_kem.c" ], + "providers/implementations/kem/libfips-lib-ml_kem_kem.o" => [ + "providers/implementations/kem/ml_kem_kem.c" + ], + "providers/implementations/kem/libfips-lib-mlx_kem.o" => [ + "providers/implementations/kem/mlx_kem.c" + ], "providers/implementations/kem/libfips-lib-rsa_kem.o" => [ "providers/implementations/kem/rsa_kem.c" ], + "providers/implementations/kem/libtemplate-lib-template_kem.o" => [ + "providers/implementations/kem/template_kem.c" + ], "providers/implementations/keymgmt/libdefault-lib-dh_kmgmt.o" => [ "providers/implementations/keymgmt/dh_kmgmt.c" ], @@ -25204,9 +29458,21 @@ our %unified_info = ( "providers/implementations/keymgmt/libdefault-lib-mac_legacy_kmgmt.o" => [ "providers/implementations/keymgmt/mac_legacy_kmgmt.c" ], + "providers/implementations/keymgmt/libdefault-lib-ml_dsa_kmgmt.o" => [ + "providers/implementations/keymgmt/ml_dsa_kmgmt.c" + ], + "providers/implementations/keymgmt/libdefault-lib-ml_kem_kmgmt.o" => [ + "providers/implementations/keymgmt/ml_kem_kmgmt.c" + ], + "providers/implementations/keymgmt/libdefault-lib-mlx_kmgmt.o" => [ + "providers/implementations/keymgmt/mlx_kmgmt.c" + ], "providers/implementations/keymgmt/libdefault-lib-rsa_kmgmt.o" => [ "providers/implementations/keymgmt/rsa_kmgmt.c" ], + "providers/implementations/keymgmt/libdefault-lib-slh_dsa_kmgmt.o" => [ + "providers/implementations/keymgmt/slh_dsa_kmgmt.c" + ], "providers/implementations/keymgmt/libfips-lib-dh_kmgmt.o" => [ "providers/implementations/keymgmt/dh_kmgmt.c" ], @@ -25225,9 +29491,24 @@ our %unified_info = ( "providers/implementations/keymgmt/libfips-lib-mac_legacy_kmgmt.o" => [ "providers/implementations/keymgmt/mac_legacy_kmgmt.c" ], + "providers/implementations/keymgmt/libfips-lib-ml_dsa_kmgmt.o" => [ + "providers/implementations/keymgmt/ml_dsa_kmgmt.c" + ], + "providers/implementations/keymgmt/libfips-lib-ml_kem_kmgmt.o" => [ + "providers/implementations/keymgmt/ml_kem_kmgmt.c" + ], + "providers/implementations/keymgmt/libfips-lib-mlx_kmgmt.o" => [ + "providers/implementations/keymgmt/mlx_kmgmt.c" + ], "providers/implementations/keymgmt/libfips-lib-rsa_kmgmt.o" => [ "providers/implementations/keymgmt/rsa_kmgmt.c" ], + "providers/implementations/keymgmt/libfips-lib-slh_dsa_kmgmt.o" => [ + "providers/implementations/keymgmt/slh_dsa_kmgmt.c" + ], + "providers/implementations/keymgmt/libtemplate-lib-template_kmgmt.o" => [ + "providers/implementations/keymgmt/template_kmgmt.c" + ], "providers/implementations/macs/libdefault-lib-blake2b_mac.o" => [ "providers/implementations/macs/blake2b_mac.c" ], @@ -25264,9 +29545,6 @@ our %unified_info = ( "providers/implementations/macs/libfips-lib-kmac_prov.o" => [ "providers/implementations/macs/kmac_prov.c" ], - "providers/implementations/rands/libdefault-lib-crngt.o" => [ - "providers/implementations/rands/crngt.c" - ], "providers/implementations/rands/libdefault-lib-drbg.o" => [ "providers/implementations/rands/drbg.c" ], @@ -25282,12 +29560,12 @@ our %unified_info = ( "providers/implementations/rands/libdefault-lib-seed_src.o" => [ "providers/implementations/rands/seed_src.c" ], + "providers/implementations/rands/libdefault-lib-seed_src_jitter.o" => [ + "providers/implementations/rands/seed_src_jitter.c" + ], "providers/implementations/rands/libdefault-lib-test_rng.o" => [ "providers/implementations/rands/test_rng.c" ], - "providers/implementations/rands/libfips-lib-crngt.o" => [ - "providers/implementations/rands/crngt.c" - ], "providers/implementations/rands/libfips-lib-drbg.o" => [ "providers/implementations/rands/drbg.c" ], @@ -25300,6 +29578,9 @@ our %unified_info = ( "providers/implementations/rands/libfips-lib-drbg_hmac.o" => [ "providers/implementations/rands/drbg_hmac.c" ], + "providers/implementations/rands/libfips-lib-fips_crng_test.o" => [ + "providers/implementations/rands/fips_crng_test.c" + ], "providers/implementations/rands/libfips-lib-test_rng.o" => [ "providers/implementations/rands/test_rng.c" ], @@ -25327,9 +29608,15 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-mac_legacy_sig.o" => [ "providers/implementations/signature/mac_legacy_sig.c" ], + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o" => [ + "providers/implementations/signature/ml_dsa_sig.c" + ], "providers/implementations/signature/libdefault-lib-rsa_sig.o" => [ "providers/implementations/signature/rsa_sig.c" ], + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o" => [ + "providers/implementations/signature/slh_dsa_sig.c" + ], "providers/implementations/signature/libdefault-lib-sm2_sig.o" => [ "providers/implementations/signature/sm2_sig.c" ], @@ -25345,9 +29632,27 @@ our %unified_info = ( "providers/implementations/signature/libfips-lib-mac_legacy_sig.o" => [ "providers/implementations/signature/mac_legacy_sig.c" ], + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o" => [ + "providers/implementations/signature/ml_dsa_sig.c" + ], "providers/implementations/signature/libfips-lib-rsa_sig.o" => [ "providers/implementations/signature/rsa_sig.c" ], + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o" => [ + "providers/implementations/signature/slh_dsa_sig.c" + ], + "providers/implementations/skeymgmt/libdefault-lib-aes_skmgmt.o" => [ + "providers/implementations/skeymgmt/aes_skmgmt.c" + ], + "providers/implementations/skeymgmt/libdefault-lib-generic.o" => [ + "providers/implementations/skeymgmt/generic.c" + ], + "providers/implementations/skeymgmt/libfips-lib-aes_skmgmt.o" => [ + "providers/implementations/skeymgmt/aes_skmgmt.c" + ], + "providers/implementations/skeymgmt/libfips-lib-generic.o" => [ + "providers/implementations/skeymgmt/generic.c" + ], "providers/implementations/storemgmt/libdefault-lib-file_store.o" => [ "providers/implementations/storemgmt/file_store.c" ], @@ -25371,8 +29676,12 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ec_sig.o", "providers/common/der/libcommon-lib-der_ecx_gen.o", "providers/common/der/libcommon-lib-der_ecx_key.o", + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o", + "providers/common/der/libcommon-lib-der_ml_dsa_key.o", "providers/common/der/libcommon-lib-der_rsa_gen.o", "providers/common/der/libcommon-lib-der_rsa_key.o", + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o", + "providers/common/der/libcommon-lib-der_slh_dsa_key.o", "providers/common/der/libcommon-lib-der_wrap_gen.o", "providers/common/libcommon-lib-provider_ctx.o", "providers/common/libcommon-lib-provider_err.o", @@ -25384,7 +29693,7 @@ our %unified_info = ( "providers/implementations/ciphers/libcommon-lib-ciphercommon_gcm_hw.o", "providers/implementations/ciphers/libcommon-lib-ciphercommon_hw.o", "providers/implementations/digests/libcommon-lib-digestcommon.o", - "ssl/record/libcommon-lib-tls_pad.o" + "ssl/record/methods/libcommon-lib-tls_pad.o" ], "providers/libcrypto-lib-baseprov.o" => [ "providers/baseprov.c" @@ -25420,6 +29729,9 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_aes_ccm_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_polyval.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_ocb.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_ocb_hw.o", @@ -25444,7 +29756,13 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_cts.o", "providers/implementations/ciphers/libdefault-lib-cipher_null.o", "providers/implementations/ciphers/libdefault-lib-cipher_sm4.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_sm4_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes_common.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes_default.o", @@ -25473,11 +29791,16 @@ our %unified_info = ( "providers/implementations/encode_decode/libdefault-lib-encode_key2ms.o", "providers/implementations/encode_decode/libdefault-lib-encode_key2text.o", "providers/implementations/encode_decode/libdefault-lib-endecoder_common.o", + "providers/implementations/encode_decode/libdefault-lib-ml_common_codecs.o", + "providers/implementations/encode_decode/libdefault-lib-ml_dsa_codecs.o", + "providers/implementations/encode_decode/libdefault-lib-ml_kem_codecs.o", "providers/implementations/exchange/libdefault-lib-dh_exch.o", "providers/implementations/exchange/libdefault-lib-ecdh_exch.o", "providers/implementations/exchange/libdefault-lib-ecx_exch.o", "providers/implementations/exchange/libdefault-lib-kdf_exch.o", + "providers/implementations/kdfs/libdefault-lib-argon2.o", "providers/implementations/kdfs/libdefault-lib-hkdf.o", + "providers/implementations/kdfs/libdefault-lib-hmacdrbg_kdf.o", "providers/implementations/kdfs/libdefault-lib-kbkdf.o", "providers/implementations/kdfs/libdefault-lib-krb5kdf.o", "providers/implementations/kdfs/libdefault-lib-pbkdf2.o", @@ -25488,6 +29811,11 @@ our %unified_info = ( "providers/implementations/kdfs/libdefault-lib-sskdf.o", "providers/implementations/kdfs/libdefault-lib-tls1_prf.o", "providers/implementations/kdfs/libdefault-lib-x942kdf.o", + "providers/implementations/kem/libdefault-lib-ec_kem.o", + "providers/implementations/kem/libdefault-lib-ecx_kem.o", + "providers/implementations/kem/libdefault-lib-kem_util.o", + "providers/implementations/kem/libdefault-lib-ml_kem_kem.o", + "providers/implementations/kem/libdefault-lib-mlx_kem.o", "providers/implementations/kem/libdefault-lib-rsa_kem.o", "providers/implementations/keymgmt/libdefault-lib-dh_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-dsa_kmgmt.o", @@ -25495,7 +29823,11 @@ our %unified_info = ( "providers/implementations/keymgmt/libdefault-lib-ecx_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-kdf_legacy_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-mac_legacy_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-ml_dsa_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-ml_kem_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-mlx_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-rsa_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-slh_dsa_kmgmt.o", "providers/implementations/macs/libdefault-lib-blake2b_mac.o", "providers/implementations/macs/libdefault-lib-blake2s_mac.o", "providers/implementations/macs/libdefault-lib-cmac_prov.o", @@ -25504,12 +29836,12 @@ our %unified_info = ( "providers/implementations/macs/libdefault-lib-kmac_prov.o", "providers/implementations/macs/libdefault-lib-poly1305_prov.o", "providers/implementations/macs/libdefault-lib-siphash_prov.o", - "providers/implementations/rands/libdefault-lib-crngt.o", "providers/implementations/rands/libdefault-lib-drbg.o", "providers/implementations/rands/libdefault-lib-drbg_ctr.o", "providers/implementations/rands/libdefault-lib-drbg_hash.o", "providers/implementations/rands/libdefault-lib-drbg_hmac.o", "providers/implementations/rands/libdefault-lib-seed_src.o", + "providers/implementations/rands/libdefault-lib-seed_src_jitter.o", "providers/implementations/rands/libdefault-lib-test_rng.o", "providers/implementations/rands/seeding/libdefault-lib-rand_cpu_x86.o", "providers/implementations/rands/seeding/libdefault-lib-rand_tsc.o", @@ -25519,11 +29851,15 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-ecdsa_sig.o", "providers/implementations/signature/libdefault-lib-eddsa_sig.o", "providers/implementations/signature/libdefault-lib-mac_legacy_sig.o", + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o", "providers/implementations/signature/libdefault-lib-rsa_sig.o", + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o", "providers/implementations/signature/libdefault-lib-sm2_sig.o", + "providers/implementations/skeymgmt/libdefault-lib-aes_skmgmt.o", + "providers/implementations/skeymgmt/libdefault-lib-generic.o", "providers/implementations/storemgmt/libdefault-lib-file_store.o", "providers/implementations/storemgmt/libdefault-lib-file_store_any2obj.o", - "ssl/libdefault-lib-s3_cbc.o" + "ssl/record/methods/libdefault-lib-ssl3_cbc.o" ], "providers/libfips.a" => [ "crypto/aes/libfips-lib-aes-x86_64.o", @@ -25533,6 +29869,7 @@ our %unified_info = ( "crypto/aes/libfips-lib-aesni-sha1-x86_64.o", "crypto/aes/libfips-lib-aesni-sha256-x86_64.o", "crypto/aes/libfips-lib-aesni-x86_64.o", + "crypto/aes/libfips-lib-aesni-xts-avx512.o", "crypto/aes/libfips-lib-bsaes-x86_64.o", "crypto/aes/libfips-lib-vpaes-x86_64.o", "crypto/bn/asm/libfips-lib-x86_64-gcc.o", @@ -25563,8 +29900,13 @@ our %unified_info = ( "crypto/bn/libfips-lib-bn_sqr.o", "crypto/bn/libfips-lib-bn_sqrt.o", "crypto/bn/libfips-lib-bn_word.o", + "crypto/bn/libfips-lib-rsaz-2k-avx512.o", + "crypto/bn/libfips-lib-rsaz-2k-avxifma.o", + "crypto/bn/libfips-lib-rsaz-3k-avx512.o", + "crypto/bn/libfips-lib-rsaz-3k-avxifma.o", + "crypto/bn/libfips-lib-rsaz-4k-avx512.o", + "crypto/bn/libfips-lib-rsaz-4k-avxifma.o", "crypto/bn/libfips-lib-rsaz-avx2.o", - "crypto/bn/libfips-lib-rsaz-avx512.o", "crypto/bn/libfips-lib-rsaz-x86_64.o", "crypto/bn/libfips-lib-rsaz_exp.o", "crypto/bn/libfips-lib-rsaz_exp_x2.o", @@ -25641,14 +29983,15 @@ our %unified_info = ( "crypto/evp/libfips-lib-kem.o", "crypto/evp/libfips-lib-keymgmt_lib.o", "crypto/evp/libfips-lib-keymgmt_meth.o", - "crypto/evp/libfips-lib-m_sigver.o", "crypto/evp/libfips-lib-mac_lib.o", "crypto/evp/libfips-lib-mac_meth.o", "crypto/evp/libfips-lib-p_lib.o", "crypto/evp/libfips-lib-pmeth_check.o", "crypto/evp/libfips-lib-pmeth_gn.o", "crypto/evp/libfips-lib-pmeth_lib.o", + "crypto/evp/libfips-lib-s_lib.o", "crypto/evp/libfips-lib-signature.o", + "crypto/evp/libfips-lib-skeymgmt_meth.o", "crypto/ffc/libfips-lib-ffc_backend.o", "crypto/ffc/libfips-lib-ffc_dh.o", "crypto/ffc/libfips-lib-ffc_key_generate.o", @@ -25656,6 +29999,8 @@ our %unified_info = ( "crypto/ffc/libfips-lib-ffc_params.o", "crypto/ffc/libfips-lib-ffc_params_generate.o", "crypto/ffc/libfips-lib-ffc_params_validate.o", + "crypto/hashtable/libfips-lib-hashfunc.o", + "crypto/hashtable/libfips-lib-hashtable.o", "crypto/hmac/libfips-lib-hmac.o", "crypto/lhash/libfips-lib-lhash.o", "crypto/libfips-lib-asn1_dsa.o", @@ -25677,6 +30022,7 @@ our %unified_info = ( "crypto/libfips-lib-params.o", "crypto/libfips-lib-params_dup.o", "crypto/libfips-lib-params_from_text.o", + "crypto/libfips-lib-params_idx.o", "crypto/libfips-lib-provider_core.o", "crypto/libfips-lib-provider_predefined.o", "crypto/libfips-lib-self_test_core.o", @@ -25685,7 +30031,18 @@ our %unified_info = ( "crypto/libfips-lib-threads_none.o", "crypto/libfips-lib-threads_pthread.o", "crypto/libfips-lib-threads_win.o", + "crypto/libfips-lib-time.o", "crypto/libfips-lib-x86_64cpuid.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_encoders.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_key.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_key_compress.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_matrix.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_ntt.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_params.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_sample.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_sign.o", + "crypto/ml_kem/libfips-lib-ml_kem.o", + "crypto/modes/libfips-lib-aes-gcm-avx512.o", "crypto/modes/libfips-lib-aesni-gcm-x86_64.o", "crypto/modes/libfips-lib-cbc128.o", "crypto/modes/libfips-lib-ccm128.o", @@ -25696,6 +30053,7 @@ our %unified_info = ( "crypto/modes/libfips-lib-ofb128.o", "crypto/modes/libfips-lib-wrap128.o", "crypto/modes/libfips-lib-xts128.o", + "crypto/modes/libfips-lib-xts128gb.o", "crypto/property/libfips-lib-defn_cache.o", "crypto/property/libfips-lib-property.o", "crypto/property/libfips-lib-property_parse.o", @@ -25729,7 +30087,23 @@ our %unified_info = ( "crypto/sha/libfips-lib-sha3.o", "crypto/sha/libfips-lib-sha512-x86_64.o", "crypto/sha/libfips-lib-sha512.o", + "crypto/slh_dsa/libfips-lib-slh_adrs.o", + "crypto/slh_dsa/libfips-lib-slh_dsa.o", + "crypto/slh_dsa/libfips-lib-slh_dsa_hash_ctx.o", + "crypto/slh_dsa/libfips-lib-slh_dsa_key.o", + "crypto/slh_dsa/libfips-lib-slh_fors.o", + "crypto/slh_dsa/libfips-lib-slh_hash.o", + "crypto/slh_dsa/libfips-lib-slh_hypertree.o", + "crypto/slh_dsa/libfips-lib-slh_params.o", + "crypto/slh_dsa/libfips-lib-slh_wots.o", + "crypto/slh_dsa/libfips-lib-slh_xmss.o", "crypto/stack/libfips-lib-stack.o", + "crypto/thread/arch/libfips-lib-thread_none.o", + "crypto/thread/arch/libfips-lib-thread_posix.o", + "crypto/thread/arch/libfips-lib-thread_win.o", + "crypto/thread/libfips-lib-api.o", + "crypto/thread/libfips-lib-arch.o", + "crypto/thread/libfips-lib-internal.o", "providers/common/der/libfips-lib-der_rsa_sig.o", "providers/common/libfips-lib-bio_prov.o", "providers/common/libfips-lib-capabilities.o", @@ -25738,6 +30112,7 @@ our %unified_info = ( "providers/common/libfips-lib-provider_util.o", "providers/common/libfips-lib-securitycheck.o", "providers/common/libfips-lib-securitycheck_fips.o", + "providers/fips/libfips-lib-fipsindicator.o", "providers/fips/libfips-lib-fipsprov.o", "providers/fips/libfips-lib-self_test.o", "providers/fips/libfips-lib-self_test_kats.o", @@ -25775,6 +30150,8 @@ our %unified_info = ( "providers/implementations/kdfs/libfips-lib-sskdf.o", "providers/implementations/kdfs/libfips-lib-tls1_prf.o", "providers/implementations/kdfs/libfips-lib-x942kdf.o", + "providers/implementations/kem/libfips-lib-ml_kem_kem.o", + "providers/implementations/kem/libfips-lib-mlx_kem.o", "providers/implementations/kem/libfips-lib-rsa_kem.o", "providers/implementations/keymgmt/libfips-lib-dh_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-dsa_kmgmt.o", @@ -25782,24 +30159,32 @@ our %unified_info = ( "providers/implementations/keymgmt/libfips-lib-ecx_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-kdf_legacy_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-mac_legacy_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-ml_dsa_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-ml_kem_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-mlx_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-rsa_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-slh_dsa_kmgmt.o", "providers/implementations/macs/libfips-lib-cmac_prov.o", "providers/implementations/macs/libfips-lib-gmac_prov.o", "providers/implementations/macs/libfips-lib-hmac_prov.o", "providers/implementations/macs/libfips-lib-kmac_prov.o", - "providers/implementations/rands/libfips-lib-crngt.o", "providers/implementations/rands/libfips-lib-drbg.o", "providers/implementations/rands/libfips-lib-drbg_ctr.o", "providers/implementations/rands/libfips-lib-drbg_hash.o", "providers/implementations/rands/libfips-lib-drbg_hmac.o", + "providers/implementations/rands/libfips-lib-fips_crng_test.o", "providers/implementations/rands/libfips-lib-test_rng.o", "providers/implementations/signature/libfips-lib-dsa_sig.o", "providers/implementations/signature/libfips-lib-ecdsa_sig.o", "providers/implementations/signature/libfips-lib-eddsa_sig.o", "providers/implementations/signature/libfips-lib-mac_legacy_sig.o", + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o", "providers/implementations/signature/libfips-lib-rsa_sig.o", + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o", + "providers/implementations/skeymgmt/libfips-lib-aes_skmgmt.o", + "providers/implementations/skeymgmt/libfips-lib-generic.o", "providers/libcommon.a", - "ssl/libfips-lib-s3_cbc.o" + "ssl/record/methods/libfips-lib-ssl3_cbc.o" ], "providers/liblegacy-lib-prov_running.o" => [ "providers/prov_running.c" @@ -25829,13 +30214,12 @@ our %unified_info = ( "providers/implementations/digests/liblegacy-lib-ripemd_prov.o", "providers/implementations/digests/liblegacy-lib-wp_prov.o", "providers/implementations/kdfs/liblegacy-lib-pbkdf1.o", + "providers/implementations/kdfs/liblegacy-lib-pvkkdf.o", "providers/liblegacy-lib-prov_running.o" ], - "ssl/libdefault-lib-s3_cbc.o" => [ - "ssl/s3_cbc.c" - ], - "ssl/libfips-lib-s3_cbc.o" => [ - "ssl/s3_cbc.c" + "providers/libtemplate.a" => [ + "providers/implementations/kem/libtemplate-lib-template_kem.o", + "providers/implementations/keymgmt/libtemplate-lib-template_kmgmt.o" ], "ssl/libssl-lib-bio_ssl.o" => [ "ssl/bio_ssl.c" @@ -25855,6 +30239,9 @@ our %unified_info = ( "ssl/libssl-lib-pqueue.o" => [ "ssl/pqueue.c" ], + "ssl/libssl-lib-priority_queue.o" => [ + "ssl/priority_queue.c" + ], "ssl/libssl-lib-s3_enc.o" => [ "ssl/s3_enc.c" ], @@ -25870,15 +30257,15 @@ our %unified_info = ( "ssl/libssl-lib-ssl_cert.o" => [ "ssl/ssl_cert.c" ], + "ssl/libssl-lib-ssl_cert_comp.o" => [ + "ssl/ssl_cert_comp.c" + ], "ssl/libssl-lib-ssl_ciph.o" => [ "ssl/ssl_ciph.c" ], "ssl/libssl-lib-ssl_conf.o" => [ "ssl/ssl_conf.c" ], - "ssl/libssl-lib-ssl_err.o" => [ - "ssl/ssl_err.c" - ], "ssl/libssl-lib-ssl_err_legacy.o" => [ "ssl/ssl_err_legacy.c" ], @@ -25927,11 +30314,131 @@ our %unified_info = ( "ssl/libssl-lib-tls_srp.o" => [ "ssl/tls_srp.c" ], - "ssl/record/libcommon-lib-tls_pad.o" => [ - "ssl/record/tls_pad.c" + "ssl/quic/libssl-lib-cc_newreno.o" => [ + "ssl/quic/cc_newreno.c" + ], + "ssl/quic/libssl-lib-json_enc.o" => [ + "ssl/quic/json_enc.c" + ], + "ssl/quic/libssl-lib-qlog.o" => [ + "ssl/quic/qlog.c" + ], + "ssl/quic/libssl-lib-qlog_event_helpers.o" => [ + "ssl/quic/qlog_event_helpers.c" + ], + "ssl/quic/libssl-lib-quic_ackm.o" => [ + "ssl/quic/quic_ackm.c" + ], + "ssl/quic/libssl-lib-quic_cfq.o" => [ + "ssl/quic/quic_cfq.c" + ], + "ssl/quic/libssl-lib-quic_channel.o" => [ + "ssl/quic/quic_channel.c" + ], + "ssl/quic/libssl-lib-quic_demux.o" => [ + "ssl/quic/quic_demux.c" + ], + "ssl/quic/libssl-lib-quic_engine.o" => [ + "ssl/quic/quic_engine.c" + ], + "ssl/quic/libssl-lib-quic_fc.o" => [ + "ssl/quic/quic_fc.c" + ], + "ssl/quic/libssl-lib-quic_fifd.o" => [ + "ssl/quic/quic_fifd.c" + ], + "ssl/quic/libssl-lib-quic_impl.o" => [ + "ssl/quic/quic_impl.c" + ], + "ssl/quic/libssl-lib-quic_lcidm.o" => [ + "ssl/quic/quic_lcidm.c" + ], + "ssl/quic/libssl-lib-quic_method.o" => [ + "ssl/quic/quic_method.c" + ], + "ssl/quic/libssl-lib-quic_obj.o" => [ + "ssl/quic/quic_obj.c" + ], + "ssl/quic/libssl-lib-quic_port.o" => [ + "ssl/quic/quic_port.c" + ], + "ssl/quic/libssl-lib-quic_rcidm.o" => [ + "ssl/quic/quic_rcidm.c" + ], + "ssl/quic/libssl-lib-quic_reactor.o" => [ + "ssl/quic/quic_reactor.c" + ], + "ssl/quic/libssl-lib-quic_reactor_wait_ctx.o" => [ + "ssl/quic/quic_reactor_wait_ctx.c" + ], + "ssl/quic/libssl-lib-quic_record_rx.o" => [ + "ssl/quic/quic_record_rx.c" + ], + "ssl/quic/libssl-lib-quic_record_shared.o" => [ + "ssl/quic/quic_record_shared.c" + ], + "ssl/quic/libssl-lib-quic_record_tx.o" => [ + "ssl/quic/quic_record_tx.c" + ], + "ssl/quic/libssl-lib-quic_record_util.o" => [ + "ssl/quic/quic_record_util.c" + ], + "ssl/quic/libssl-lib-quic_rstream.o" => [ + "ssl/quic/quic_rstream.c" ], - "ssl/record/libssl-lib-dtls1_bitmap.o" => [ - "ssl/record/dtls1_bitmap.c" + "ssl/quic/libssl-lib-quic_rx_depack.o" => [ + "ssl/quic/quic_rx_depack.c" + ], + "ssl/quic/libssl-lib-quic_sf_list.o" => [ + "ssl/quic/quic_sf_list.c" + ], + "ssl/quic/libssl-lib-quic_srt_gen.o" => [ + "ssl/quic/quic_srt_gen.c" + ], + "ssl/quic/libssl-lib-quic_srtm.o" => [ + "ssl/quic/quic_srtm.c" + ], + "ssl/quic/libssl-lib-quic_sstream.o" => [ + "ssl/quic/quic_sstream.c" + ], + "ssl/quic/libssl-lib-quic_statm.o" => [ + "ssl/quic/quic_statm.c" + ], + "ssl/quic/libssl-lib-quic_stream_map.o" => [ + "ssl/quic/quic_stream_map.c" + ], + "ssl/quic/libssl-lib-quic_thread_assist.o" => [ + "ssl/quic/quic_thread_assist.c" + ], + "ssl/quic/libssl-lib-quic_tls.o" => [ + "ssl/quic/quic_tls.c" + ], + "ssl/quic/libssl-lib-quic_tls_api.o" => [ + "ssl/quic/quic_tls_api.c" + ], + "ssl/quic/libssl-lib-quic_trace.o" => [ + "ssl/quic/quic_trace.c" + ], + "ssl/quic/libssl-lib-quic_tserver.o" => [ + "ssl/quic/quic_tserver.c" + ], + "ssl/quic/libssl-lib-quic_txp.o" => [ + "ssl/quic/quic_txp.c" + ], + "ssl/quic/libssl-lib-quic_txpim.o" => [ + "ssl/quic/quic_txpim.c" + ], + "ssl/quic/libssl-lib-quic_types.o" => [ + "ssl/quic/quic_types.c" + ], + "ssl/quic/libssl-lib-quic_wire.o" => [ + "ssl/quic/quic_wire.c" + ], + "ssl/quic/libssl-lib-quic_wire_pkt.o" => [ + "ssl/quic/quic_wire_pkt.c" + ], + "ssl/quic/libssl-lib-uint_set.o" => [ + "ssl/quic/uint_set.c" ], "ssl/record/libssl-lib-rec_layer_d1.o" => [ "ssl/record/rec_layer_d1.c" @@ -25939,14 +30446,44 @@ our %unified_info = ( "ssl/record/libssl-lib-rec_layer_s3.o" => [ "ssl/record/rec_layer_s3.c" ], - "ssl/record/libssl-lib-ssl3_buffer.o" => [ - "ssl/record/ssl3_buffer.c" + "ssl/record/methods/libcommon-lib-tls_pad.o" => [ + "ssl/record/methods/tls_pad.c" + ], + "ssl/record/methods/libdefault-lib-ssl3_cbc.o" => [ + "ssl/record/methods/ssl3_cbc.c" + ], + "ssl/record/methods/libfips-lib-ssl3_cbc.o" => [ + "ssl/record/methods/ssl3_cbc.c" + ], + "ssl/record/methods/libssl-lib-dtls_meth.o" => [ + "ssl/record/methods/dtls_meth.c" + ], + "ssl/record/methods/libssl-lib-ssl3_meth.o" => [ + "ssl/record/methods/ssl3_meth.c" + ], + "ssl/record/methods/libssl-lib-tls13_meth.o" => [ + "ssl/record/methods/tls13_meth.c" + ], + "ssl/record/methods/libssl-lib-tls1_meth.o" => [ + "ssl/record/methods/tls1_meth.c" + ], + "ssl/record/methods/libssl-lib-tls_common.o" => [ + "ssl/record/methods/tls_common.c" ], - "ssl/record/libssl-lib-ssl3_record.o" => [ - "ssl/record/ssl3_record.c" + "ssl/record/methods/libssl-lib-tls_multib.o" => [ + "ssl/record/methods/tls_multib.c" ], - "ssl/record/libssl-lib-ssl3_record_tls13.o" => [ - "ssl/record/ssl3_record_tls13.c" + "ssl/record/methods/libssl-lib-tlsany_meth.o" => [ + "ssl/record/methods/tlsany_meth.c" + ], + "ssl/rio/libssl-lib-poll_builder.o" => [ + "ssl/rio/poll_builder.c" + ], + "ssl/rio/libssl-lib-poll_immediate.o" => [ + "ssl/rio/poll_immediate.c" + ], + "ssl/rio/libssl-lib-rio_notifier.o" => [ + "ssl/rio/rio_notifier.c" ], "ssl/statem/libssl-lib-extensions.o" => [ "ssl/statem/extensions.c" @@ -26042,6 +30579,8 @@ our %unified_info = ( "test/asn1_string_table_test.c" ], "test/asn1_time_test" => [ + "crypto/asn1/asn1_time_test-bin-a_time.o", + "crypto/asn1_time_test-bin-ctype.o", "test/asn1_time_test-bin-asn1_time_test.o" ], "test/asn1_time_test-bin-asn1_time_test.o" => [ @@ -26072,6 +30611,18 @@ our %unified_info = ( "test/bftest-bin-bftest.o" => [ "test/bftest.c" ], + "test/bio_addr_test" => [ + "test/bio_addr_test-bin-bio_addr_test.o" + ], + "test/bio_addr_test-bin-bio_addr_test.o" => [ + "test/bio_addr_test.c" + ], + "test/bio_base64_test" => [ + "test/bio_base64_test-bin-bio_base64_test.o" + ], + "test/bio_base64_test-bin-bio_base64_test.o" => [ + "test/bio_base64_test.c" + ], "test/bio_callback_test" => [ "test/bio_callback_test-bin-bio_callback_test.o" ], @@ -26084,6 +30635,12 @@ our %unified_info = ( "test/bio_core_test-bin-bio_core_test.o" => [ "test/bio_core_test.c" ], + "test/bio_dgram_test" => [ + "test/bio_dgram_test-bin-bio_dgram_test.o" + ], + "test/bio_dgram_test-bin-bio_dgram_test.o" => [ + "test/bio_dgram_test.c" + ], "test/bio_enc_test" => [ "test/bio_enc_test-bin-bio_enc_test.o" ], @@ -26096,6 +30653,12 @@ our %unified_info = ( "test/bio_memleak_test-bin-bio_memleak_test.o" => [ "test/bio_memleak_test.c" ], + "test/bio_meth_test" => [ + "test/bio_meth_test-bin-bio_meth_test.o" + ], + "test/bio_meth_test-bin-bio_meth_test.o" => [ + "test/bio_meth_test.c" + ], "test/bio_prefix_text" => [ "test/bio_prefix_text-bin-bio_prefix_text.o" ], @@ -26114,6 +30677,12 @@ our %unified_info = ( "test/bio_readbuffer_test-bin-bio_readbuffer_test.o" => [ "test/bio_readbuffer_test.c" ], + "test/bio_tfo_test" => [ + "test/bio_tfo_test-bin-bio_tfo_test.o" + ], + "test/bio_tfo_test-bin-bio_tfo_test.o" => [ + "test/bio_tfo_test.c" + ], "test/bioprinttest" => [ "test/bioprinttest-bin-bioprinttest.o" ], @@ -26132,6 +30701,12 @@ our %unified_info = ( "test/bntest-bin-bntest.o" => [ "test/bntest.c" ], + "test/build_wincrypt_test" => [ + "test/build_wincrypt_test-bin-build_wincrypt_test.o" + ], + "test/build_wincrypt_test-bin-build_wincrypt_test.o" => [ + "test/build_wincrypt_test.c" + ], "test/buildtest_c_aes" => [ "test/buildtest_c_aes-bin-buildtest_aes.o" ], @@ -26162,6 +30737,12 @@ our %unified_info = ( "test/buildtest_c_buffer-bin-buildtest_buffer.o" => [ "test/buildtest_buffer.c" ], + "test/buildtest_c_byteorder" => [ + "test/buildtest_c_byteorder-bin-buildtest_byteorder.o" + ], + "test/buildtest_c_byteorder-bin-buildtest_byteorder.o" => [ + "test/buildtest_byteorder.c" + ], "test/buildtest_c_camellia" => [ "test/buildtest_c_camellia-bin-buildtest_camellia.o" ], @@ -26210,12 +30791,6 @@ our %unified_info = ( "test/buildtest_c_core_dispatch-bin-buildtest_core_dispatch.o" => [ "test/buildtest_core_dispatch.c" ], - "test/buildtest_c_core_names" => [ - "test/buildtest_c_core_names-bin-buildtest_core_names.o" - ], - "test/buildtest_c_core_names-bin-buildtest_core_names.o" => [ - "test/buildtest_core_names.c" - ], "test/buildtest_c_core_object" => [ "test/buildtest_c_core_object-bin-buildtest_core_object.o" ], @@ -26264,6 +30839,12 @@ our %unified_info = ( "test/buildtest_c_e_os2-bin-buildtest_e_os2.o" => [ "test/buildtest_e_os2.c" ], + "test/buildtest_c_e_ostime" => [ + "test/buildtest_c_e_ostime-bin-buildtest_e_ostime.o" + ], + "test/buildtest_c_e_ostime-bin-buildtest_e_ostime.o" => [ + "test/buildtest_e_ostime.c" + ], "test/buildtest_c_ebcdic" => [ "test/buildtest_c_ebcdic-bin-buildtest_ebcdic.o" ], @@ -26318,6 +30899,12 @@ our %unified_info = ( "test/buildtest_c_hmac-bin-buildtest_hmac.o" => [ "test/buildtest_hmac.c" ], + "test/buildtest_c_hpke" => [ + "test/buildtest_c_hpke-bin-buildtest_hpke.o" + ], + "test/buildtest_c_hpke-bin-buildtest_hpke.o" => [ + "test/buildtest_hpke.c" + ], "test/buildtest_c_http" => [ "test/buildtest_c_http-bin-buildtest_http.o" ], @@ -26330,6 +30917,12 @@ our %unified_info = ( "test/buildtest_c_idea-bin-buildtest_idea.o" => [ "test/buildtest_idea.c" ], + "test/buildtest_c_indicator" => [ + "test/buildtest_c_indicator-bin-buildtest_indicator.o" + ], + "test/buildtest_c_indicator-bin-buildtest_indicator.o" => [ + "test/buildtest_indicator.c" + ], "test/buildtest_c_kdf" => [ "test/buildtest_c_kdf-bin-buildtest_kdf.o" ], @@ -26360,6 +30953,12 @@ our %unified_info = ( "test/buildtest_c_mdc2-bin-buildtest_mdc2.o" => [ "test/buildtest_mdc2.c" ], + "test/buildtest_c_ml_kem" => [ + "test/buildtest_c_ml_kem-bin-buildtest_ml_kem.o" + ], + "test/buildtest_c_ml_kem-bin-buildtest_ml_kem.o" => [ + "test/buildtest_ml_kem.c" + ], "test/buildtest_c_modes" => [ "test/buildtest_c_modes-bin-buildtest_modes.o" ], @@ -26420,6 +31019,12 @@ our %unified_info = ( "test/buildtest_c_provider-bin-buildtest_provider.o" => [ "test/buildtest_provider.c" ], + "test/buildtest_c_quic" => [ + "test/buildtest_c_quic-bin-buildtest_quic.o" + ], + "test/buildtest_c_quic-bin-buildtest_quic.o" => [ + "test/buildtest_quic.c" + ], "test/buildtest_c_rand" => [ "test/buildtest_c_rand-bin-buildtest_rand.o" ], @@ -26504,6 +31109,12 @@ our %unified_info = ( "test/buildtest_c_symhacks-bin-buildtest_symhacks.o" => [ "test/buildtest_symhacks.c" ], + "test/buildtest_c_thread" => [ + "test/buildtest_c_thread-bin-buildtest_thread.o" + ], + "test/buildtest_c_thread-bin-buildtest_thread.o" => [ + "test/buildtest_thread.c" + ], "test/buildtest_c_tls1" => [ "test/buildtest_c_tls1-bin-buildtest_tls1.o" ], @@ -26534,6 +31145,29 @@ our %unified_info = ( "test/buildtest_c_whrlpool-bin-buildtest_whrlpool.o" => [ "test/buildtest_whrlpool.c" ], + "test/byteorder_test" => [ + "test/byteorder_test-bin-byteorder_test.o" + ], + "test/byteorder_test-bin-byteorder_test.o" => [ + "test/byteorder_test.c" + ], + "test/ca_internals_test" => [ + "apps/ca_internals_test-bin-ca.o", + "apps/lib/ca_internals_test-bin-app_libctx.o", + "apps/lib/ca_internals_test-bin-app_provider.o", + "apps/lib/ca_internals_test-bin-app_rand.o", + "apps/lib/ca_internals_test-bin-app_x509.o", + "apps/lib/ca_internals_test-bin-apps.o", + "apps/lib/ca_internals_test-bin-apps_ui.o", + "apps/lib/ca_internals_test-bin-engine.o", + "apps/lib/ca_internals_test-bin-fmt.o", + "crypto/asn1/ca_internals_test-bin-a_time.o", + "crypto/ca_internals_test-bin-ctype.o", + "test/ca_internals_test-bin-ca_internals_test.o" + ], + "test/ca_internals_test-bin-ca_internals_test.o" => [ + "test/ca_internals_test.c" + ], "test/casttest" => [ "test/casttest-bin-casttest.o" ], @@ -26712,6 +31346,12 @@ our %unified_info = ( "test/danetest-bin-danetest.o" => [ "test/danetest.c" ], + "test/decoder_propq_test" => [ + "test/decoder_propq_test-bin-decoder_propq_test.o" + ], + "test/decoder_propq_test-bin-decoder_propq_test.o" => [ + "test/decoder_propq_test.c" + ], "test/defltfips_test" => [ "test/defltfips_test-bin-defltfips_test.o" ], @@ -26793,6 +31433,7 @@ our %unified_info = ( "test/ectest.c" ], "test/endecode_test" => [ + "providers/endecode_test-bin-legacyprov.o", "test/endecode_test-bin-endecode_test.o", "test/helpers/endecode_test-bin-predefined_dhparams.o" ], @@ -26825,17 +31466,29 @@ our %unified_info = ( ], "test/evp_extra_test" => [ "providers/evp_extra_test-bin-legacyprov.o", - "test/evp_extra_test-bin-evp_extra_test.o" + "test/evp_extra_test-bin-evp_extra_test.o", + "test/evp_extra_test-bin-fake_pipelineprov.o", + "test/evp_extra_test-bin-fake_rsaprov.o" ], "test/evp_extra_test-bin-evp_extra_test.o" => [ "test/evp_extra_test.c" ], + "test/evp_extra_test-bin-fake_pipelineprov.o" => [ + "test/fake_pipelineprov.c" + ], + "test/evp_extra_test-bin-fake_rsaprov.o" => [ + "test/fake_rsaprov.c" + ], "test/evp_extra_test2" => [ - "test/evp_extra_test2-bin-evp_extra_test2.o" + "test/evp_extra_test2-bin-evp_extra_test2.o", + "test/evp_extra_test2-bin-tls-provider.o" ], "test/evp_extra_test2-bin-evp_extra_test2.o" => [ "test/evp_extra_test2.c" ], + "test/evp_extra_test2-bin-tls-provider.o" => [ + "test/tls-provider.c" + ], "test/evp_fetch_prov_test" => [ "test/evp_fetch_prov_test-bin-evp_fetch_prov_test.o" ], @@ -26860,6 +31513,12 @@ our %unified_info = ( "test/evp_pkey_ctx_new_from_name-bin-evp_pkey_ctx_new_from_name.o" => [ "test/evp_pkey_ctx_new_from_name.c" ], + "test/evp_pkey_dhkem_test" => [ + "test/evp_pkey_dhkem_test-bin-evp_pkey_dhkem_test.o" + ], + "test/evp_pkey_dhkem_test-bin-evp_pkey_dhkem_test.o" => [ + "test/evp_pkey_dhkem_test.c" + ], "test/evp_pkey_dparams_test" => [ "test/evp_pkey_dparams_test-bin-evp_pkey_dparams_test.o" ], @@ -26872,12 +31531,28 @@ our %unified_info = ( "test/evp_pkey_provided_test-bin-evp_pkey_provided_test.o" => [ "test/evp_pkey_provided_test.c" ], + "test/evp_skey_test" => [ + "test/evp_skey_test-bin-evp_skey_test.o", + "test/evp_skey_test-bin-fake_cipherprov.o" + ], + "test/evp_skey_test-bin-evp_skey_test.o" => [ + "test/evp_skey_test.c" + ], + "test/evp_skey_test-bin-fake_cipherprov.o" => [ + "test/fake_cipherprov.c" + ], "test/evp_test" => [ "test/evp_test-bin-evp_test.o" ], "test/evp_test-bin-evp_test.o" => [ "test/evp_test.c" ], + "test/evp_xof_test" => [ + "test/evp_xof_test-bin-evp_xof_test.o" + ], + "test/evp_xof_test-bin-evp_xof_test.o" => [ + "test/evp_xof_test.c" + ], "test/exdatatest" => [ "test/exdatatest-bin-exdatatest.o" ], @@ -26963,15 +31638,108 @@ our %unified_info = ( "test/helpers/fatalerrtest-bin-ssltestlib.o" => [ "test/helpers/ssltestlib.c" ], + "test/helpers/json_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/json_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/json_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/json_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/pkcs12_api_test-bin-pkcs12.o" => [ + "test/helpers/pkcs12.c" + ], "test/helpers/pkcs12_format_test-bin-pkcs12.o" => [ "test/helpers/pkcs12.c" ], + "test/helpers/quic_multistream_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quic_multistream_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quic_multistream_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quic_multistream_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quic_newcid_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quic_newcid_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quic_newcid_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quic_newcid_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quic_radix_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quic_radix_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quic_radix_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quic_radix_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quic_srt_gen_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quic_srt_gen_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quic_srt_gen_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quic_srt_gen_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quicapitest-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quicapitest-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quicapitest-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quicapitest-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quicfaultstest-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quicfaultstest-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quicfaultstest-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quicfaultstest-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], "test/helpers/recordlentest-bin-ssltestlib.o" => [ "test/helpers/ssltestlib.c" ], + "test/helpers/rpktest-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], "test/helpers/servername_test-bin-ssltestlib.o" => [ "test/helpers/ssltestlib.c" ], + "test/helpers/ssl_handshake_rtt_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], "test/helpers/ssl_old_test-bin-predefined_dhparams.o" => [ "test/helpers/predefined_dhparams.c" ], @@ -26999,6 +31767,9 @@ our %unified_info = ( "test/helpers/tls13ccstest-bin-ssltestlib.o" => [ "test/helpers/ssltestlib.c" ], + "test/helpers/tls13groupselection_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], "test/hexstr_test" => [ "test/hexstr_test-bin-hexstr_test.o" ], @@ -27011,6 +31782,12 @@ our %unified_info = ( "test/hmactest-bin-hmactest.o" => [ "test/hmactest.c" ], + "test/hpke_test" => [ + "test/hpke_test-bin-hpke_test.o" + ], + "test/hpke_test-bin-hpke_test.o" => [ + "test/hpke_test.c" + ], "test/http_test" => [ "test/http_test-bin-http_test.o" ], @@ -27029,6 +31806,16 @@ our %unified_info = ( "test/igetest-bin-igetest.o" => [ "test/igetest.c" ], + "test/json_test" => [ + "test/helpers/json_test-bin-noisydgrambio.o", + "test/helpers/json_test-bin-pktsplitbio.o", + "test/helpers/json_test-bin-quictestlib.o", + "test/helpers/json_test-bin-ssltestlib.o", + "test/json_test-bin-json_test.o" + ], + "test/json_test-bin-json_test.o" => [ + "test/json_test.c" + ], "test/keymgmt_internal_test" => [ "test/keymgmt_internal_test-bin-keymgmt_internal_test.o" ], @@ -27049,6 +31836,7 @@ our %unified_info = ( "test/testutil/libtestutil-lib-driver.o", "test/testutil/libtestutil-lib-fake_random.o", "test/testutil/libtestutil-lib-format_output.o", + "test/testutil/libtestutil-lib-helper.o", "test/testutil/libtestutil-lib-load.o", "test/testutil/libtestutil-lib-main.o", "test/testutil/libtestutil-lib-options.o", @@ -27061,6 +31849,12 @@ our %unified_info = ( "test/testutil/libtestutil-lib-tests.o", "test/testutil/libtestutil-lib-testutil_init.o" ], + "test/list_test" => [ + "test/list_test-bin-list_test.o" + ], + "test/list_test-bin-list_test.o" => [ + "test/list_test.c" + ], "test/localetest" => [ "test/localetest-bin-localetest.o" ], @@ -27079,12 +31873,36 @@ our %unified_info = ( "test/mdc2test-bin-mdc2test.o" => [ "test/mdc2test.c" ], + "test/membio_test" => [ + "test/membio_test-bin-membio_test.o" + ], + "test/membio_test-bin-membio_test.o" => [ + "test/membio_test.c" + ], "test/memleaktest" => [ "test/memleaktest-bin-memleaktest.o" ], "test/memleaktest-bin-memleaktest.o" => [ "test/memleaktest.c" ], + "test/ml_dsa_test" => [ + "test/ml_dsa_test-bin-ml_dsa_test.o" + ], + "test/ml_dsa_test-bin-ml_dsa_test.o" => [ + "test/ml_dsa_test.c" + ], + "test/ml_kem_evp_extra_test" => [ + "test/ml_kem_evp_extra_test-bin-ml_kem_evp_extra_test.o" + ], + "test/ml_kem_evp_extra_test-bin-ml_kem_evp_extra_test.o" => [ + "test/ml_kem_evp_extra_test.c" + ], + "test/ml_kem_internal_test" => [ + "test/ml_kem_internal_test-bin-ml_kem_internal_test.o" + ], + "test/ml_kem_internal_test-bin-ml_kem_internal_test.o" => [ + "test/ml_kem_internal_test.c" + ], "test/modes_internal_test" => [ "test/modes_internal_test-bin-modes_internal_test.o" ], @@ -27130,11 +31948,18 @@ our %unified_info = ( "test/p_test.c" ], "test/packettest" => [ + "crypto/packettest-bin-quic_vlint.o", "test/packettest-bin-packettest.o" ], "test/packettest-bin-packettest.o" => [ "test/packettest.c" ], + "test/pairwise_fail_test" => [ + "test/pairwise_fail_test-bin-pairwise_fail_test.o" + ], + "test/pairwise_fail_test-bin-pairwise_fail_test.o" => [ + "test/pairwise_fail_test.c" + ], "test/param_build_test" => [ "test/param_build_test-bin-param_build_test.o" ], @@ -27183,6 +32008,13 @@ our %unified_info = ( "test/pemtest-bin-pemtest.o" => [ "test/pemtest.c" ], + "test/pkcs12_api_test" => [ + "test/helpers/pkcs12_api_test-bin-pkcs12.o", + "test/pkcs12_api_test-bin-pkcs12_api_test.o" + ], + "test/pkcs12_api_test-bin-pkcs12_api_test.o" => [ + "test/pkcs12_api_test.c" + ], "test/pkcs12_format_test" => [ "test/helpers/pkcs12_format_test-bin-pkcs12.o", "test/pkcs12_format_test-bin-pkcs12_format_test.o" @@ -27214,6 +32046,12 @@ our %unified_info = ( "test/poly1305_internal_test-bin-poly1305_internal_test.o" => [ "test/poly1305_internal_test.c" ], + "test/priority_queue_test" => [ + "test/priority_queue_test-bin-priority_queue_test.o" + ], + "test/priority_queue_test-bin-priority_queue_test.o" => [ + "test/priority_queue_test.c" + ], "test/property_test" => [ "test/property_test-bin-property_test.o" ], @@ -27232,6 +32070,12 @@ our %unified_info = ( "test/provfetchtest-bin-provfetchtest.o" => [ "test/provfetchtest.c" ], + "test/provider_default_search_path_test" => [ + "test/provider_default_search_path_test-bin-provider_default_search_path_test.o" + ], + "test/provider_default_search_path_test-bin-provider_default_search_path_test.o" => [ + "test/provider_default_search_path_test.c" + ], "test/provider_fallback_test" => [ "test/provider_fallback_test-bin-provider_fallback_test.o" ], @@ -27280,6 +32124,174 @@ our %unified_info = ( "test/punycode_test-bin-punycode_test.o" => [ "test/punycode_test.c" ], + "test/quic_ackm_test" => [ + "test/quic_ackm_test-bin-cc_dummy.o", + "test/quic_ackm_test-bin-quic_ackm_test.o" + ], + "test/quic_ackm_test-bin-cc_dummy.o" => [ + "test/cc_dummy.c" + ], + "test/quic_ackm_test-bin-quic_ackm_test.o" => [ + "test/quic_ackm_test.c" + ], + "test/quic_cc_test" => [ + "test/quic_cc_test-bin-quic_cc_test.o" + ], + "test/quic_cc_test-bin-quic_cc_test.o" => [ + "test/quic_cc_test.c" + ], + "test/quic_cfq_test" => [ + "test/quic_cfq_test-bin-quic_cfq_test.o" + ], + "test/quic_cfq_test-bin-quic_cfq_test.o" => [ + "test/quic_cfq_test.c" + ], + "test/quic_client_test" => [ + "test/quic_client_test-bin-quic_client_test.o" + ], + "test/quic_client_test-bin-quic_client_test.o" => [ + "test/quic_client_test.c" + ], + "test/quic_fc_test" => [ + "test/quic_fc_test-bin-quic_fc_test.o" + ], + "test/quic_fc_test-bin-quic_fc_test.o" => [ + "test/quic_fc_test.c" + ], + "test/quic_fifd_test" => [ + "test/quic_fifd_test-bin-cc_dummy.o", + "test/quic_fifd_test-bin-quic_fifd_test.o" + ], + "test/quic_fifd_test-bin-cc_dummy.o" => [ + "test/cc_dummy.c" + ], + "test/quic_fifd_test-bin-quic_fifd_test.o" => [ + "test/quic_fifd_test.c" + ], + "test/quic_lcidm_test" => [ + "test/quic_lcidm_test-bin-quic_lcidm_test.o" + ], + "test/quic_lcidm_test-bin-quic_lcidm_test.o" => [ + "test/quic_lcidm_test.c" + ], + "test/quic_multistream_test" => [ + "test/helpers/quic_multistream_test-bin-noisydgrambio.o", + "test/helpers/quic_multistream_test-bin-pktsplitbio.o", + "test/helpers/quic_multistream_test-bin-quictestlib.o", + "test/helpers/quic_multistream_test-bin-ssltestlib.o", + "test/quic_multistream_test-bin-quic_multistream_test.o" + ], + "test/quic_multistream_test-bin-quic_multistream_test.o" => [ + "test/quic_multistream_test.c" + ], + "test/quic_newcid_test" => [ + "test/helpers/quic_newcid_test-bin-noisydgrambio.o", + "test/helpers/quic_newcid_test-bin-pktsplitbio.o", + "test/helpers/quic_newcid_test-bin-quictestlib.o", + "test/helpers/quic_newcid_test-bin-ssltestlib.o", + "test/quic_newcid_test-bin-quic_newcid_test.o" + ], + "test/quic_newcid_test-bin-quic_newcid_test.o" => [ + "test/quic_newcid_test.c" + ], + "test/quic_qlog_test" => [ + "test/quic_qlog_test-bin-quic_qlog_test.o" + ], + "test/quic_qlog_test-bin-quic_qlog_test.o" => [ + "test/quic_qlog_test.c" + ], + "test/quic_radix_test" => [ + "test/helpers/quic_radix_test-bin-noisydgrambio.o", + "test/helpers/quic_radix_test-bin-pktsplitbio.o", + "test/helpers/quic_radix_test-bin-quictestlib.o", + "test/helpers/quic_radix_test-bin-ssltestlib.o", + "test/radix/quic_radix_test-bin-quic_radix.o" + ], + "test/quic_rcidm_test" => [ + "test/quic_rcidm_test-bin-quic_rcidm_test.o" + ], + "test/quic_rcidm_test-bin-quic_rcidm_test.o" => [ + "test/quic_rcidm_test.c" + ], + "test/quic_record_test" => [ + "test/quic_record_test-bin-quic_record_test.o" + ], + "test/quic_record_test-bin-quic_record_test.o" => [ + "test/quic_record_test.c" + ], + "test/quic_srt_gen_test" => [ + "test/helpers/quic_srt_gen_test-bin-noisydgrambio.o", + "test/helpers/quic_srt_gen_test-bin-pktsplitbio.o", + "test/helpers/quic_srt_gen_test-bin-quictestlib.o", + "test/helpers/quic_srt_gen_test-bin-ssltestlib.o", + "test/quic_srt_gen_test-bin-quic_srt_gen_test.o" + ], + "test/quic_srt_gen_test-bin-quic_srt_gen_test.o" => [ + "test/quic_srt_gen_test.c" + ], + "test/quic_srtm_test" => [ + "test/quic_srtm_test-bin-quic_srtm_test.o" + ], + "test/quic_srtm_test-bin-quic_srtm_test.o" => [ + "test/quic_srtm_test.c" + ], + "test/quic_stream_test" => [ + "test/quic_stream_test-bin-quic_stream_test.o" + ], + "test/quic_stream_test-bin-quic_stream_test.o" => [ + "test/quic_stream_test.c" + ], + "test/quic_tserver_test" => [ + "test/quic_tserver_test-bin-quic_tserver_test.o" + ], + "test/quic_tserver_test-bin-quic_tserver_test.o" => [ + "test/quic_tserver_test.c" + ], + "test/quic_txp_test" => [ + "test/quic_txp_test-bin-cc_dummy.o", + "test/quic_txp_test-bin-quic_txp_test.o" + ], + "test/quic_txp_test-bin-cc_dummy.o" => [ + "test/cc_dummy.c" + ], + "test/quic_txp_test-bin-quic_txp_test.o" => [ + "test/quic_txp_test.c" + ], + "test/quic_txpim_test" => [ + "test/quic_txpim_test-bin-quic_txpim_test.o" + ], + "test/quic_txpim_test-bin-quic_txpim_test.o" => [ + "test/quic_txpim_test.c" + ], + "test/quic_wire_test" => [ + "test/quic_wire_test-bin-quic_wire_test.o" + ], + "test/quic_wire_test-bin-quic_wire_test.o" => [ + "test/quic_wire_test.c" + ], + "test/quicapitest" => [ + "test/helpers/quicapitest-bin-noisydgrambio.o", + "test/helpers/quicapitest-bin-pktsplitbio.o", + "test/helpers/quicapitest-bin-quictestlib.o", + "test/helpers/quicapitest-bin-ssltestlib.o", + "test/quicapitest-bin-quicapitest.o" + ], + "test/quicapitest-bin-quicapitest.o" => [ + "test/quicapitest.c" + ], + "test/quicfaultstest" => [ + "test/helpers/quicfaultstest-bin-noisydgrambio.o", + "test/helpers/quicfaultstest-bin-pktsplitbio.o", + "test/helpers/quicfaultstest-bin-quictestlib.o", + "test/helpers/quicfaultstest-bin-ssltestlib.o", + "test/quicfaultstest-bin-quicfaultstest.o" + ], + "test/quicfaultstest-bin-quicfaultstest.o" => [ + "test/quicfaultstest.c" + ], + "test/radix/quic_radix_test-bin-quic_radix.o" => [ + "test/radix/quic_radix.c" + ], "test/rand_status_test" => [ "test/rand_status_test-bin-rand_status_test.o" ], @@ -27310,11 +32322,11 @@ our %unified_info = ( "test/rc5test-bin-rc5test.o" => [ "test/rc5test.c" ], - "test/rdrand_sanitytest" => [ - "test/rdrand_sanitytest-bin-rdrand_sanitytest.o" + "test/rdcpu_sanitytest" => [ + "test/rdcpu_sanitytest-bin-rdcpu_sanitytest.o" ], - "test/rdrand_sanitytest-bin-rdrand_sanitytest.o" => [ - "test/rdrand_sanitytest.c" + "test/rdcpu_sanitytest-bin-rdcpu_sanitytest.o" => [ + "test/rdcpu_sanitytest.c" ], "test/recordlentest" => [ "test/helpers/recordlentest-bin-ssltestlib.o", @@ -27323,6 +32335,13 @@ our %unified_info = ( "test/recordlentest-bin-recordlentest.o" => [ "test/recordlentest.c" ], + "test/rpktest" => [ + "test/helpers/rpktest-bin-ssltestlib.o", + "test/rpktest-bin-rpktest.o" + ], + "test/rpktest-bin-rpktest.o" => [ + "test/rpktest.c" + ], "test/rsa_complex" => [ "test/rsa_complex-bin-rsa_complex.o" ], @@ -27347,6 +32366,18 @@ our %unified_info = ( "test/rsa_test-bin-rsa_test.o" => [ "test/rsa_test.c" ], + "test/rsa_x931_test" => [ + "test/rsa_x931_test-bin-rsa_x931_test.o" + ], + "test/rsa_x931_test-bin-rsa_x931_test.o" => [ + "test/rsa_x931_test.c" + ], + "test/safe_math_test" => [ + "test/safe_math_test-bin-safe_math_test.o" + ], + "test/safe_math_test-bin-safe_math_test.o" => [ + "test/safe_math_test.c" + ], "test/sanitytest" => [ "test/sanitytest-bin-sanitytest.o" ], @@ -27378,6 +32409,12 @@ our %unified_info = ( "test/siphash_internal_test-bin-siphash_internal_test.o" => [ "test/siphash_internal_test.c" ], + "test/slh_dsa_test" => [ + "test/slh_dsa_test-bin-slh_dsa_test.o" + ], + "test/slh_dsa_test-bin-slh_dsa_test.o" => [ + "test/slh_dsa_test.c" + ], "test/sm2_internal_test" => [ "test/sm2_internal_test-bin-sm2_internal_test.o" ], @@ -27420,6 +32457,13 @@ our %unified_info = ( "test/ssl_ctx_test-bin-ssl_ctx_test.o" => [ "test/ssl_ctx_test.c" ], + "test/ssl_handshake_rtt_test" => [ + "test/helpers/ssl_handshake_rtt_test-bin-ssltestlib.o", + "test/ssl_handshake_rtt_test-bin-ssl_handshake_rtt_test.o" + ], + "test/ssl_handshake_rtt_test-bin-ssl_handshake_rtt_test.o" => [ + "test/ssl_handshake_rtt_test.c" + ], "test/ssl_old_test" => [ "test/helpers/ssl_old_test-bin-predefined_dhparams.o", "test/ssl_old_test-bin-ssl_old_test.o" @@ -27478,6 +32522,12 @@ our %unified_info = ( "test/stack_test-bin-stack_test.o" => [ "test/stack_test.c" ], + "test/strtoultest" => [ + "test/strtoultest-bin-strtoultest.o" + ], + "test/strtoultest-bin-strtoultest.o" => [ + "test/strtoultest.c" + ], "test/sysdefaulttest" => [ "test/sysdefaulttest-bin-sysdefaulttest.o" ], @@ -27508,6 +32558,9 @@ our %unified_info = ( "test/testutil/libtestutil-lib-format_output.o" => [ "test/testutil/format_output.c" ], + "test/testutil/libtestutil-lib-helper.o" => [ + "test/testutil/helper.c" + ], "test/testutil/libtestutil-lib-load.o" => [ "test/testutil/load.c" ], @@ -27541,6 +32594,12 @@ our %unified_info = ( "test/testutil/libtestutil-lib-testutil_init.o" => [ "test/testutil/testutil_init.c" ], + "test/threadpool_test" => [ + "test/threadpool_test-bin-threadpool_test.o" + ], + "test/threadpool_test-bin-threadpool_test.o" => [ + "test/threadpool_test.c" + ], "test/threadstest" => [ "test/threadstest-bin-threadstest.o" ], @@ -27559,6 +32618,12 @@ our %unified_info = ( "test/time_offset_test-bin-time_offset_test.o" => [ "test/time_offset_test.c" ], + "test/time_test" => [ + "test/time_test-bin-time_test.o" + ], + "test/time_test-bin-time_test.o" => [ + "test/time_test.c" + ], "test/tls13ccstest" => [ "test/helpers/tls13ccstest-bin-ssltestlib.o", "test/tls13ccstest-bin-tls13ccstest.o" @@ -27572,6 +32637,13 @@ our %unified_info = ( "test/tls13encryptiontest-bin-tls13encryptiontest.o" => [ "test/tls13encryptiontest.c" ], + "test/tls13groupselection_test" => [ + "test/helpers/tls13groupselection_test-bin-ssltestlib.o", + "test/tls13groupselection_test-bin-tls13groupselection_test.o" + ], + "test/tls13groupselection_test-bin-tls13groupselection_test.o" => [ + "test/tls13groupselection_test.c" + ], "test/trace_api_test" => [ "test/trace_api_test-bin-trace_api_test.o" ], @@ -27627,6 +32699,12 @@ our %unified_info = ( "test/wpackettest-bin-wpackettest.o" => [ "test/wpackettest.c" ], + "test/x509_acert_test" => [ + "test/x509_acert_test-bin-x509_acert_test.o" + ], + "test/x509_acert_test-bin-x509_acert_test.o" => [ + "test/x509_acert_test.c" + ], "test/x509_check_cert_pkey_test" => [ "test/x509_check_cert_pkey_test-bin-x509_check_cert_pkey_test.o" ], @@ -27645,6 +32723,24 @@ our %unified_info = ( "test/x509_internal_test-bin-x509_internal_test.o" => [ "test/x509_internal_test.c" ], + "test/x509_load_cert_file_test" => [ + "test/x509_load_cert_file_test-bin-x509_load_cert_file_test.o" + ], + "test/x509_load_cert_file_test-bin-x509_load_cert_file_test.o" => [ + "test/x509_load_cert_file_test.c" + ], + "test/x509_req_test" => [ + "test/x509_req_test-bin-x509_req_test.o" + ], + "test/x509_req_test-bin-x509_req_test.o" => [ + "test/x509_req_test.c" + ], + "test/x509_test" => [ + "test/x509_test-bin-x509_test.o" + ], + "test/x509_test-bin-x509_test.o" => [ + "test/x509_test.c" + ], "test/x509_time_test" => [ "test/x509_time_test-bin-x509_time_test.o" ], @@ -27708,6 +32804,7 @@ my @makevars = ( "LDLIBS", "MT", "MTFLAGS", + "OBJCOPY", "PERL", "RANLIB", "RC", @@ -27721,6 +32818,12 @@ my %disabled_info = ( "asan" => { "macro" => "OPENSSL_NO_ASAN" }, + "brotli" => { + "macro" => "OPENSSL_NO_BROTLI" + }, + "brotli-dynamic" => { + "macro" => "OPENSSL_NO_BROTLI_DYNAMIC" + }, "comp" => { "macro" => "OPENSSL_NO_COMP", "skipped" => [ @@ -27733,6 +32836,9 @@ my %disabled_info = ( "crypto-mdebug-backtrace" => { "macro" => "OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE" }, + "demos" => { + "macro" => "OPENSSL_NO_DEMOS" + }, "ec_nistp_64_gcc_128" => { "macro" => "OPENSSL_NO_EC_NISTP_64_GCC_128" }, @@ -27742,12 +32848,24 @@ my %disabled_info = ( "external-tests" => { "macro" => "OPENSSL_NO_EXTERNAL_TESTS" }, + "fips-jitter" => { + "macro" => "OPENSSL_NO_FIPS_JITTER" + }, "fuzz-afl" => { "macro" => "OPENSSL_NO_FUZZ_AFL" }, "fuzz-libfuzzer" => { "macro" => "OPENSSL_NO_FUZZ_LIBFUZZER" }, + "h3demo" => { + "macro" => "OPENSSL_NO_H3DEMO" + }, + "hqinterop" => { + "macro" => "OPENSSL_NO_HQINTEROP" + }, + "jitter" => { + "macro" => "OPENSSL_NO_JITTER" + }, "ktls" => { "macro" => "OPENSSL_NO_KTLS" }, @@ -27763,6 +32881,9 @@ my %disabled_info = ( "msan" => { "macro" => "OPENSSL_NO_MSAN" }, + "pie" => { + "macro" => "OPENSSL_NO_PIE" + }, "rc5" => { "macro" => "OPENSSL_NO_RC5", "skipped" => [ @@ -27778,6 +32899,12 @@ my %disabled_info = ( "ssl3-method" => { "macro" => "OPENSSL_NO_SSL3_METHOD" }, + "sslkeylog" => { + "macro" => "OPENSSL_NO_SSLKEYLOG" + }, + "tfo" => { + "macro" => "OPENSSL_NO_TFO" + }, "trace" => { "macro" => "OPENSSL_NO_TRACE" }, @@ -27792,6 +32919,21 @@ my %disabled_info = ( }, "weak-ssl-ciphers" => { "macro" => "OPENSSL_NO_WEAK_SSL_CIPHERS" + }, + "winstore" => { + "macro" => "OPENSSL_NO_WINSTORE" + }, + "zlib" => { + "macro" => "OPENSSL_NO_ZLIB" + }, + "zlib-dynamic" => { + "macro" => "OPENSSL_NO_ZLIB_DYNAMIC" + }, + "zstd" => { + "macro" => "OPENSSL_NO_ZSTD" + }, + "zstd-dynamic" => { + "macro" => "OPENSSL_NO_ZSTD_DYNAMIC" } ); my @user_crossable = qw( AR AS CC CXX CPP LD MT RANLIB RC ); @@ -27805,15 +32947,15 @@ unless (caller) { use File::Copy; use Pod::Usage; - use lib '/home/runner/work/node/node/deps/openssl/openssl/util/perl'; - use OpenSSL::fallback '/home/runner/work/node/node/deps/openssl/openssl/external/perl/MODULES.txt'; + use lib '/node/deps/openssl/openssl/util/perl'; + use OpenSSL::fallback '/node/deps/openssl/openssl/external/perl/MODULES.txt'; my $here = dirname($0); if (scalar @ARGV == 0) { # With no arguments, re-create the build file # We do that in two steps, where the first step emits perl - # snipets. + # snippets. my $buildfile = $config{build_file}; my $buildfile_template = "$buildfile.in"; @@ -27833,7 +32975,7 @@ unless (caller) { ); use lib '.'; - use lib '/home/runner/work/node/node/deps/openssl/openssl/Configurations'; + use lib '/node/deps/openssl/openssl/Configurations'; use gentemplate; open my $buildfile_template_fh, ">$buildfile_template" @@ -27850,8 +32992,8 @@ unless (caller) { my $prepend = <<'_____'; use File::Spec::Functions; -use lib '/home/runner/work/node/node/deps/openssl/openssl/util/perl'; -use lib '/home/runner/work/node/node/deps/openssl/openssl/Configurations'; +use lib '/node/deps/openssl/openssl/util/perl'; +use lib '/node/deps/openssl/openssl/Configurations'; use lib '.'; use platform; _____ diff --git a/deps/openssl/config/archs/BSD-x86_64/asm/crypto/aes/aes-x86_64.s b/deps/openssl/config/archs/BSD-x86_64/asm/crypto/aes/aes-x86_64.s index 1e85beafbe4086..aeaa4d197b6101 100644 --- a/deps/openssl/config/archs/BSD-x86_64/asm/crypto/aes/aes-x86_64.s +++ b/deps/openssl/config/archs/BSD-x86_64/asm/crypto/aes/aes-x86_64.s @@ -1870,6 +1870,7 @@ AES_cbc_encrypt: .byte 0xf3,0xc3 .cfi_endproc .size AES_cbc_encrypt,.-AES_cbc_encrypt +.section .rodata .align 64 .LAES_Te: .long 0xa56363c6,0xa56363c6 @@ -2656,6 +2657,7 @@ AES_cbc_encrypt: .long 0x1b1b1b1b, 0x1b1b1b1b, 0, 0 .byte 65,69,83,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 .align 64 +.previous .section ".note.gnu.property", "a" .p2align 3 .long 1f - 0f diff --git a/deps/openssl/config/archs/BSD-x86_64/asm/crypto/aes/aesni-sha1-x86_64.s b/deps/openssl/config/archs/BSD-x86_64/asm/crypto/aes/aesni-sha1-x86_64.s index 2078fe2ab37874..aeafc094a08991 100644 --- a/deps/openssl/config/archs/BSD-x86_64/asm/crypto/aes/aesni-sha1-x86_64.s +++ b/deps/openssl/config/archs/BSD-x86_64/asm/crypto/aes/aesni-sha1-x86_64.s @@ -2718,6 +2718,7 @@ aesni_cbc_sha1_enc_avx: .byte 0xf3,0xc3 .cfi_endproc .size aesni_cbc_sha1_enc_avx,.-aesni_cbc_sha1_enc_avx +.section .rodata .align 64 K_XX_XX: .long 0x5a827999,0x5a827999,0x5a827999,0x5a827999 @@ -2729,6 +2730,7 @@ K_XX_XX: .byte 65,69,83,78,73,45,67,66,67,43,83,72,65,49,32,115,116,105,116,99,104,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 .align 64 +.previous .type aesni_cbc_sha1_enc_shaext,@function .align 32 aesni_cbc_sha1_enc_shaext: diff --git a/deps/openssl/config/archs/BSD-x86_64/asm/crypto/aes/aesni-sha256-x86_64.s b/deps/openssl/config/archs/BSD-x86_64/asm/crypto/aes/aesni-sha256-x86_64.s index c938e50b990bcd..f26bcd4772a4e7 100644 --- a/deps/openssl/config/archs/BSD-x86_64/asm/crypto/aes/aesni-sha256-x86_64.s +++ b/deps/openssl/config/archs/BSD-x86_64/asm/crypto/aes/aesni-sha256-x86_64.s @@ -34,6 +34,7 @@ aesni_cbc_sha256_enc: .cfi_endproc .size aesni_cbc_sha256_enc,.-aesni_cbc_sha256_enc +.section .rodata .align 64 .type K256,@object K256: @@ -76,6 +77,7 @@ K256: .long 0,0,0,0, 0,0,0,0 .byte 65,69,83,78,73,45,67,66,67,43,83,72,65,50,53,54,32,115,116,105,116,99,104,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 .align 64 +.previous .type aesni_cbc_sha256_enc_xop,@function .align 64 aesni_cbc_sha256_enc_xop: diff --git a/deps/openssl/config/archs/BSD-x86_64/asm/crypto/aes/aesni-x86_64.s b/deps/openssl/config/archs/BSD-x86_64/asm/crypto/aes/aesni-x86_64.s index 4e35b2b1d379c0..7970fdf0d4558f 100644 --- a/deps/openssl/config/archs/BSD-x86_64/asm/crypto/aes/aesni-x86_64.s +++ b/deps/openssl/config/archs/BSD-x86_64/asm/crypto/aes/aesni-x86_64.s @@ -4461,6 +4461,7 @@ __aesni_set_encrypt_key: .cfi_endproc .size aesni_set_encrypt_key,.-aesni_set_encrypt_key .size __aesni_set_encrypt_key,.-__aesni_set_encrypt_key +.section .rodata .align 64 .Lbswap_mask: .byte 15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0 @@ -4483,6 +4484,7 @@ __aesni_set_encrypt_key: .byte 65,69,83,32,102,111,114,32,73,110,116,101,108,32,65,69,83,45,78,73,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 .align 64 +.previous .section ".note.gnu.property", "a" .p2align 3 .long 1f - 0f diff --git a/deps/openssl/config/archs/BSD-x86_64/asm/crypto/aes/aesni-xts-avx512.s b/deps/openssl/config/archs/BSD-x86_64/asm/crypto/aes/aesni-xts-avx512.s new file mode 100644 index 00000000000000..a6769b1b53b167 --- /dev/null +++ b/deps/openssl/config/archs/BSD-x86_64/asm/crypto/aes/aesni-xts-avx512.s @@ -0,0 +1,8145 @@ +.text + +.globl aesni_xts_avx512_eligible +.type aesni_xts_avx512_eligible,@function +.align 32 +aesni_xts_avx512_eligible: + movl OPENSSL_ia32cap_P+8(%rip),%ecx + xorl %eax,%eax + + andl $0xc0030000,%ecx + cmpl $0xc0030000,%ecx + jne .L_done + movl OPENSSL_ia32cap_P+12(%rip),%ecx + + andl $0x640,%ecx + cmpl $0x640,%ecx + cmovel %ecx,%eax +.L_done: + .byte 0xf3,0xc3 +.size aesni_xts_avx512_eligible, .-aesni_xts_avx512_eligible +.globl aesni_xts_128_encrypt_avx512 +.hidden aesni_xts_128_encrypt_avx512 +.type aesni_xts_128_encrypt_avx512,@function +.align 32 +aesni_xts_128_encrypt_avx512: +.cfi_startproc +.byte 243,15,30,250 + pushq %rbp + movq %rsp,%rbp + subq $136,%rsp + andq $0xffffffffffffffc0,%rsp + movq %rbx,128(%rsp) + movq $0x87,%r10 + vmovdqu (%r9),%xmm1 + vpxor (%r8),%xmm1,%xmm1 + vaesenc 16(%r8),%xmm1,%xmm1 + vaesenc 32(%r8),%xmm1,%xmm1 + vaesenc 48(%r8),%xmm1,%xmm1 + vaesenc 64(%r8),%xmm1,%xmm1 + vaesenc 80(%r8),%xmm1,%xmm1 + vaesenc 96(%r8),%xmm1,%xmm1 + vaesenc 112(%r8),%xmm1,%xmm1 + vaesenc 128(%r8),%xmm1,%xmm1 + vaesenc 144(%r8),%xmm1,%xmm1 + vaesenclast 160(%r8),%xmm1,%xmm1 + vmovdqa %xmm1,(%rsp) + + cmpq $0x80,%rdx + jl .L_less_than_128_bytes_hEgxyDlCngwrfFe + vpbroadcastq %r10,%zmm25 + cmpq $0x100,%rdx + jge .L_start_by16_hEgxyDlCngwrfFe + cmpq $0x80,%rdx + jge .L_start_by8_hEgxyDlCngwrfFe + +.L_do_n_blocks_hEgxyDlCngwrfFe: + cmpq $0x0,%rdx + je .L_ret_hEgxyDlCngwrfFe + cmpq $0x70,%rdx + jge .L_remaining_num_blocks_is_7_hEgxyDlCngwrfFe + cmpq $0x60,%rdx + jge .L_remaining_num_blocks_is_6_hEgxyDlCngwrfFe + cmpq $0x50,%rdx + jge .L_remaining_num_blocks_is_5_hEgxyDlCngwrfFe + cmpq $0x40,%rdx + jge .L_remaining_num_blocks_is_4_hEgxyDlCngwrfFe + cmpq $0x30,%rdx + jge .L_remaining_num_blocks_is_3_hEgxyDlCngwrfFe + cmpq $0x20,%rdx + jge .L_remaining_num_blocks_is_2_hEgxyDlCngwrfFe + cmpq $0x10,%rdx + jge .L_remaining_num_blocks_is_1_hEgxyDlCngwrfFe + vmovdqa %xmm0,%xmm8 + vmovdqa %xmm9,%xmm0 + jmp .L_steal_cipher_hEgxyDlCngwrfFe + +.L_remaining_num_blocks_is_7_hEgxyDlCngwrfFe: + movq $0x0000ffffffffffff,%r8 + kmovq %r8,%k1 + vmovdqu8 (%rdi),%zmm1 + vmovdqu8 64(%rdi),%zmm2{%k1} + addq $0x70,%rdi + vbroadcasti32x4 (%rcx),%zmm0 + vpternlogq $0x96,%zmm0,%zmm9,%zmm1 + vpternlogq $0x96,%zmm0,%zmm10,%zmm2 + vbroadcasti32x4 16(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 32(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 48(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + vbroadcasti32x4 64(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 80(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 96(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 112(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 128(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 144(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + vbroadcasti32x4 160(%rcx),%zmm0 + vaesenclast %zmm0,%zmm1,%zmm1 + vaesenclast %zmm0,%zmm2,%zmm2 + vpxorq %zmm9,%zmm1,%zmm1 + vpxorq %zmm10,%zmm2,%zmm2 + vmovdqu8 %zmm1,(%rsi) + vmovdqu8 %zmm2,64(%rsi){%k1} + addq $0x70,%rsi + vextracti32x4 $0x2,%zmm2,%xmm8 + vextracti32x4 $0x3,%zmm10,%xmm0 + andq $0xf,%rdx + je .L_ret_hEgxyDlCngwrfFe + jmp .L_steal_cipher_hEgxyDlCngwrfFe + +.L_remaining_num_blocks_is_6_hEgxyDlCngwrfFe: + vmovdqu8 (%rdi),%zmm1 + vmovdqu8 64(%rdi),%ymm2 + addq $0x60,%rdi + vbroadcasti32x4 (%rcx),%zmm0 + vpternlogq $0x96,%zmm0,%zmm9,%zmm1 + vpternlogq $0x96,%zmm0,%zmm10,%zmm2 + vbroadcasti32x4 16(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 32(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 48(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + vbroadcasti32x4 64(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 80(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 96(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 112(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 128(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 144(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + vbroadcasti32x4 160(%rcx),%zmm0 + vaesenclast %zmm0,%zmm1,%zmm1 + vaesenclast %zmm0,%zmm2,%zmm2 + vpxorq %zmm9,%zmm1,%zmm1 + vpxorq %zmm10,%zmm2,%zmm2 + vmovdqu8 %zmm1,(%rsi) + vmovdqu8 %ymm2,64(%rsi) + addq $0x60,%rsi + vextracti32x4 $0x1,%zmm2,%xmm8 + vextracti32x4 $0x2,%zmm10,%xmm0 + andq $0xf,%rdx + je .L_ret_hEgxyDlCngwrfFe + jmp .L_steal_cipher_hEgxyDlCngwrfFe + +.L_remaining_num_blocks_is_5_hEgxyDlCngwrfFe: + vmovdqu8 (%rdi),%zmm1 + vmovdqu 64(%rdi),%xmm2 + addq $0x50,%rdi + vbroadcasti32x4 (%rcx),%zmm0 + vpternlogq $0x96,%zmm0,%zmm9,%zmm1 + vpternlogq $0x96,%zmm0,%zmm10,%zmm2 + vbroadcasti32x4 16(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 32(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 48(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + vbroadcasti32x4 64(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 80(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 96(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 112(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 128(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 144(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + vbroadcasti32x4 160(%rcx),%zmm0 + vaesenclast %zmm0,%zmm1,%zmm1 + vaesenclast %zmm0,%zmm2,%zmm2 + vpxorq %zmm9,%zmm1,%zmm1 + vpxorq %zmm10,%zmm2,%zmm2 + vmovdqu8 %zmm1,(%rsi) + vmovdqu %xmm2,64(%rsi) + addq $0x50,%rsi + vmovdqa %xmm2,%xmm8 + vextracti32x4 $0x1,%zmm10,%xmm0 + andq $0xf,%rdx + je .L_ret_hEgxyDlCngwrfFe + jmp .L_steal_cipher_hEgxyDlCngwrfFe + +.L_remaining_num_blocks_is_4_hEgxyDlCngwrfFe: + vmovdqu8 (%rdi),%zmm1 + addq $0x40,%rdi + vbroadcasti32x4 (%rcx),%zmm0 + vpternlogq $0x96,%zmm0,%zmm9,%zmm1 + vbroadcasti32x4 16(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 32(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 48(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 64(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 80(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 96(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 112(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 128(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 144(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 160(%rcx),%zmm0 + vaesenclast %zmm0,%zmm1,%zmm1 + vpxorq %zmm9,%zmm1,%zmm1 + vmovdqu8 %zmm1,(%rsi) + addq $0x40,%rsi + vextracti32x4 $0x3,%zmm1,%xmm8 + vmovdqa64 %xmm10,%xmm0 + andq $0xf,%rdx + je .L_ret_hEgxyDlCngwrfFe + jmp .L_steal_cipher_hEgxyDlCngwrfFe +.L_remaining_num_blocks_is_3_hEgxyDlCngwrfFe: + movq $-1,%r8 + shrq $0x10,%r8 + kmovq %r8,%k1 + vmovdqu8 (%rdi),%zmm1{%k1} + addq $0x30,%rdi + vbroadcasti32x4 (%rcx),%zmm0 + vpternlogq $0x96,%zmm0,%zmm9,%zmm1 + vbroadcasti32x4 16(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 32(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 48(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 64(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 80(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 96(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 112(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 128(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 144(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 160(%rcx),%zmm0 + vaesenclast %zmm0,%zmm1,%zmm1 + vpxorq %zmm9,%zmm1,%zmm1 + vmovdqu8 %zmm1,(%rsi){%k1} + addq $0x30,%rsi + vextracti32x4 $0x2,%zmm1,%xmm8 + vextracti32x4 $0x3,%zmm9,%xmm0 + andq $0xf,%rdx + je .L_ret_hEgxyDlCngwrfFe + jmp .L_steal_cipher_hEgxyDlCngwrfFe +.L_remaining_num_blocks_is_2_hEgxyDlCngwrfFe: + vmovdqu8 (%rdi),%ymm1 + addq $0x20,%rdi + vbroadcasti32x4 (%rcx),%ymm0 + vpternlogq $0x96,%ymm0,%ymm9,%ymm1 + vbroadcasti32x4 16(%rcx),%ymm0 + vaesenc %ymm0,%ymm1,%ymm1 + vbroadcasti32x4 32(%rcx),%ymm0 + vaesenc %ymm0,%ymm1,%ymm1 + vbroadcasti32x4 48(%rcx),%ymm0 + vaesenc %ymm0,%ymm1,%ymm1 + vbroadcasti32x4 64(%rcx),%ymm0 + vaesenc %ymm0,%ymm1,%ymm1 + vbroadcasti32x4 80(%rcx),%ymm0 + vaesenc %ymm0,%ymm1,%ymm1 + vbroadcasti32x4 96(%rcx),%ymm0 + vaesenc %ymm0,%ymm1,%ymm1 + vbroadcasti32x4 112(%rcx),%ymm0 + vaesenc %ymm0,%ymm1,%ymm1 + vbroadcasti32x4 128(%rcx),%ymm0 + vaesenc %ymm0,%ymm1,%ymm1 + vbroadcasti32x4 144(%rcx),%ymm0 + vaesenc %ymm0,%ymm1,%ymm1 + vbroadcasti32x4 160(%rcx),%ymm0 + vaesenclast %ymm0,%ymm1,%ymm1 + vpxorq %ymm9,%ymm1,%ymm1 + vmovdqu %ymm1,(%rsi) + addq $0x20,%rsi + vextracti32x4 $0x1,%zmm1,%xmm8 + vextracti32x4 $0x2,%zmm9,%xmm0 + andq $0xf,%rdx + je .L_ret_hEgxyDlCngwrfFe + jmp .L_steal_cipher_hEgxyDlCngwrfFe +.L_remaining_num_blocks_is_1_hEgxyDlCngwrfFe: + vmovdqu (%rdi),%xmm1 + addq $0x10,%rdi + vpxor %xmm9,%xmm1,%xmm1 + vpxor (%rcx),%xmm1,%xmm1 + vaesenc 16(%rcx),%xmm1,%xmm1 + vaesenc 32(%rcx),%xmm1,%xmm1 + vaesenc 48(%rcx),%xmm1,%xmm1 + vaesenc 64(%rcx),%xmm1,%xmm1 + vaesenc 80(%rcx),%xmm1,%xmm1 + vaesenc 96(%rcx),%xmm1,%xmm1 + vaesenc 112(%rcx),%xmm1,%xmm1 + vaesenc 128(%rcx),%xmm1,%xmm1 + vaesenc 144(%rcx),%xmm1,%xmm1 + vaesenclast 160(%rcx),%xmm1,%xmm1 + vpxor %xmm9,%xmm1,%xmm1 + vmovdqu %xmm1,(%rsi) + addq $0x10,%rsi + vmovdqa %xmm1,%xmm8 + vextracti32x4 $0x1,%zmm9,%xmm0 + andq $0xf,%rdx + je .L_ret_hEgxyDlCngwrfFe + jmp .L_steal_cipher_hEgxyDlCngwrfFe + + +.L_start_by16_hEgxyDlCngwrfFe: + vbroadcasti32x4 (%rsp),%zmm0 + vbroadcasti32x4 shufb_15_7(%rip),%zmm8 + movq $0xaa,%r8 + kmovq %r8,%k2 + vpshufb %zmm8,%zmm0,%zmm1 + vpsllvq const_dq3210(%rip),%zmm0,%zmm4 + vpsrlvq const_dq5678(%rip),%zmm1,%zmm2 + vpclmulqdq $0x0,%zmm25,%zmm2,%zmm3 + vpxorq %zmm2,%zmm4,%zmm4{%k2} + vpxord %zmm4,%zmm3,%zmm9 + vpsllvq const_dq7654(%rip),%zmm0,%zmm5 + vpsrlvq const_dq1234(%rip),%zmm1,%zmm6 + vpclmulqdq $0x0,%zmm25,%zmm6,%zmm7 + vpxorq %zmm6,%zmm5,%zmm5{%k2} + vpxord %zmm5,%zmm7,%zmm10 + vpsrldq $0xf,%zmm9,%zmm13 + vpclmulqdq $0x0,%zmm25,%zmm13,%zmm14 + vpslldq $0x1,%zmm9,%zmm11 + vpxord %zmm14,%zmm11,%zmm11 + vpsrldq $0xf,%zmm10,%zmm15 + vpclmulqdq $0x0,%zmm25,%zmm15,%zmm16 + vpslldq $0x1,%zmm10,%zmm12 + vpxord %zmm16,%zmm12,%zmm12 + +.L_main_loop_run_16_hEgxyDlCngwrfFe: + vmovdqu8 (%rdi),%zmm1 + vmovdqu8 64(%rdi),%zmm2 + vmovdqu8 128(%rdi),%zmm3 + vmovdqu8 192(%rdi),%zmm4 + addq $0x100,%rdi + vpxorq %zmm9,%zmm1,%zmm1 + vpxorq %zmm10,%zmm2,%zmm2 + vpxorq %zmm11,%zmm3,%zmm3 + vpxorq %zmm12,%zmm4,%zmm4 + vbroadcasti32x4 (%rcx),%zmm0 + vpxorq %zmm0,%zmm1,%zmm1 + vpxorq %zmm0,%zmm2,%zmm2 + vpxorq %zmm0,%zmm3,%zmm3 + vpxorq %zmm0,%zmm4,%zmm4 + vpsrldq $0xf,%zmm11,%zmm13 + vpclmulqdq $0x0,%zmm25,%zmm13,%zmm14 + vpslldq $0x1,%zmm11,%zmm15 + vpxord %zmm14,%zmm15,%zmm15 + vbroadcasti32x4 16(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + vaesenc %zmm0,%zmm3,%zmm3 + vaesenc %zmm0,%zmm4,%zmm4 + vbroadcasti32x4 32(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + vaesenc %zmm0,%zmm3,%zmm3 + vaesenc %zmm0,%zmm4,%zmm4 + vbroadcasti32x4 48(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + vaesenc %zmm0,%zmm3,%zmm3 + vaesenc %zmm0,%zmm4,%zmm4 + vpsrldq $0xf,%zmm12,%zmm13 + vpclmulqdq $0x0,%zmm25,%zmm13,%zmm14 + vpslldq $0x1,%zmm12,%zmm16 + vpxord %zmm14,%zmm16,%zmm16 + vbroadcasti32x4 64(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + vaesenc %zmm0,%zmm3,%zmm3 + vaesenc %zmm0,%zmm4,%zmm4 + vbroadcasti32x4 80(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + vaesenc %zmm0,%zmm3,%zmm3 + vaesenc %zmm0,%zmm4,%zmm4 + vbroadcasti32x4 96(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + vaesenc %zmm0,%zmm3,%zmm3 + vaesenc %zmm0,%zmm4,%zmm4 + vpsrldq $0xf,%zmm15,%zmm13 + vpclmulqdq $0x0,%zmm25,%zmm13,%zmm14 + vpslldq $0x1,%zmm15,%zmm17 + vpxord %zmm14,%zmm17,%zmm17 + vbroadcasti32x4 112(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + vaesenc %zmm0,%zmm3,%zmm3 + vaesenc %zmm0,%zmm4,%zmm4 + vbroadcasti32x4 128(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + vaesenc %zmm0,%zmm3,%zmm3 + vaesenc %zmm0,%zmm4,%zmm4 + vbroadcasti32x4 144(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + vaesenc %zmm0,%zmm3,%zmm3 + vaesenc %zmm0,%zmm4,%zmm4 + vpsrldq $0xf,%zmm16,%zmm13 + vpclmulqdq $0x0,%zmm25,%zmm13,%zmm14 + vpslldq $0x1,%zmm16,%zmm18 + vpxord %zmm14,%zmm18,%zmm18 + vbroadcasti32x4 160(%rcx),%zmm0 + vaesenclast %zmm0,%zmm1,%zmm1 + vaesenclast %zmm0,%zmm2,%zmm2 + vaesenclast %zmm0,%zmm3,%zmm3 + vaesenclast %zmm0,%zmm4,%zmm4 + vpxorq %zmm9,%zmm1,%zmm1 + vpxorq %zmm10,%zmm2,%zmm2 + vpxorq %zmm11,%zmm3,%zmm3 + vpxorq %zmm12,%zmm4,%zmm4 + + vmovdqa32 %zmm15,%zmm9 + vmovdqa32 %zmm16,%zmm10 + vmovdqa32 %zmm17,%zmm11 + vmovdqa32 %zmm18,%zmm12 + vmovdqu8 %zmm1,(%rsi) + vmovdqu8 %zmm2,64(%rsi) + vmovdqu8 %zmm3,128(%rsi) + vmovdqu8 %zmm4,192(%rsi) + addq $0x100,%rsi + subq $0x100,%rdx + cmpq $0x100,%rdx + jae .L_main_loop_run_16_hEgxyDlCngwrfFe + cmpq $0x80,%rdx + jae .L_main_loop_run_8_hEgxyDlCngwrfFe + vextracti32x4 $0x3,%zmm4,%xmm0 + jmp .L_do_n_blocks_hEgxyDlCngwrfFe + +.L_start_by8_hEgxyDlCngwrfFe: + vbroadcasti32x4 (%rsp),%zmm0 + vbroadcasti32x4 shufb_15_7(%rip),%zmm8 + movq $0xaa,%r8 + kmovq %r8,%k2 + vpshufb %zmm8,%zmm0,%zmm1 + vpsllvq const_dq3210(%rip),%zmm0,%zmm4 + vpsrlvq const_dq5678(%rip),%zmm1,%zmm2 + vpclmulqdq $0x0,%zmm25,%zmm2,%zmm3 + vpxorq %zmm2,%zmm4,%zmm4{%k2} + vpxord %zmm4,%zmm3,%zmm9 + vpsllvq const_dq7654(%rip),%zmm0,%zmm5 + vpsrlvq const_dq1234(%rip),%zmm1,%zmm6 + vpclmulqdq $0x0,%zmm25,%zmm6,%zmm7 + vpxorq %zmm6,%zmm5,%zmm5{%k2} + vpxord %zmm5,%zmm7,%zmm10 + +.L_main_loop_run_8_hEgxyDlCngwrfFe: + vmovdqu8 (%rdi),%zmm1 + vmovdqu8 64(%rdi),%zmm2 + addq $0x80,%rdi + vbroadcasti32x4 (%rcx),%zmm0 + vpternlogq $0x96,%zmm0,%zmm9,%zmm1 + vpternlogq $0x96,%zmm0,%zmm10,%zmm2 + vpsrldq $0xf,%zmm9,%zmm13 + vpclmulqdq $0x0,%zmm25,%zmm13,%zmm14 + vpslldq $0x1,%zmm9,%zmm15 + vpxord %zmm14,%zmm15,%zmm15 + vbroadcasti32x4 16(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 32(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 48(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + vpsrldq $0xf,%zmm10,%zmm13 + vpclmulqdq $0x0,%zmm25,%zmm13,%zmm14 + vpslldq $0x1,%zmm10,%zmm16 + vpxord %zmm14,%zmm16,%zmm16 + + vbroadcasti32x4 64(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 80(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 96(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 112(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 128(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 144(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + vbroadcasti32x4 160(%rcx),%zmm0 + vaesenclast %zmm0,%zmm1,%zmm1 + vaesenclast %zmm0,%zmm2,%zmm2 + vpxorq %zmm9,%zmm1,%zmm1 + vpxorq %zmm10,%zmm2,%zmm2 + vmovdqa32 %zmm15,%zmm9 + vmovdqa32 %zmm16,%zmm10 + vmovdqu8 %zmm1,(%rsi) + vmovdqu8 %zmm2,64(%rsi) + addq $0x80,%rsi + subq $0x80,%rdx + cmpq $0x80,%rdx + jae .L_main_loop_run_8_hEgxyDlCngwrfFe + vextracti32x4 $0x3,%zmm2,%xmm0 + jmp .L_do_n_blocks_hEgxyDlCngwrfFe + +.L_steal_cipher_hEgxyDlCngwrfFe: + vmovdqa %xmm8,%xmm2 + leaq vpshufb_shf_table(%rip),%rax + vmovdqu (%rax,%rdx,1),%xmm10 + vpshufb %xmm10,%xmm8,%xmm8 + vmovdqu -16(%rdi,%rdx,1),%xmm3 + vmovdqu %xmm8,-16(%rsi,%rdx,1) + leaq vpshufb_shf_table(%rip),%rax + addq $16,%rax + subq %rdx,%rax + vmovdqu (%rax),%xmm10 + vpxor mask1(%rip),%xmm10,%xmm10 + vpshufb %xmm10,%xmm3,%xmm3 + vpblendvb %xmm10,%xmm2,%xmm3,%xmm3 + vpxor %xmm0,%xmm3,%xmm8 + vpxor (%rcx),%xmm8,%xmm8 + vaesenc 16(%rcx),%xmm8,%xmm8 + vaesenc 32(%rcx),%xmm8,%xmm8 + vaesenc 48(%rcx),%xmm8,%xmm8 + vaesenc 64(%rcx),%xmm8,%xmm8 + vaesenc 80(%rcx),%xmm8,%xmm8 + vaesenc 96(%rcx),%xmm8,%xmm8 + vaesenc 112(%rcx),%xmm8,%xmm8 + vaesenc 128(%rcx),%xmm8,%xmm8 + vaesenc 144(%rcx),%xmm8,%xmm8 + vaesenclast 160(%rcx),%xmm8,%xmm8 + vpxor %xmm0,%xmm8,%xmm8 + vmovdqu %xmm8,-16(%rsi) +.L_ret_hEgxyDlCngwrfFe: + movq 128(%rsp),%rbx + xorq %r8,%r8 + movq %r8,128(%rsp) + + vpxorq %zmm0,%zmm0,%zmm0 + movq %rbp,%rsp + popq %rbp + vzeroupper + .byte 0xf3,0xc3 + +.L_less_than_128_bytes_hEgxyDlCngwrfFe: + vpbroadcastq %r10,%zmm25 + cmpq $0x10,%rdx + jb .L_ret_hEgxyDlCngwrfFe + vbroadcasti32x4 (%rsp),%zmm0 + vbroadcasti32x4 shufb_15_7(%rip),%zmm8 + movl $0xaa,%r8d + kmovq %r8,%k2 + movq %rdx,%r8 + andq $0x70,%r8 + cmpq $0x60,%r8 + je .L_num_blocks_is_6_hEgxyDlCngwrfFe + cmpq $0x50,%r8 + je .L_num_blocks_is_5_hEgxyDlCngwrfFe + cmpq $0x40,%r8 + je .L_num_blocks_is_4_hEgxyDlCngwrfFe + cmpq $0x30,%r8 + je .L_num_blocks_is_3_hEgxyDlCngwrfFe + cmpq $0x20,%r8 + je .L_num_blocks_is_2_hEgxyDlCngwrfFe + cmpq $0x10,%r8 + je .L_num_blocks_is_1_hEgxyDlCngwrfFe + +.L_num_blocks_is_7_hEgxyDlCngwrfFe: + vpshufb %zmm8,%zmm0,%zmm1 + vpsllvq const_dq3210(%rip),%zmm0,%zmm4 + vpsrlvq const_dq5678(%rip),%zmm1,%zmm2 + vpclmulqdq $0x00,%zmm25,%zmm2,%zmm3 + vpxorq %zmm2,%zmm4,%zmm4{%k2} + vpxord %zmm4,%zmm3,%zmm9 + vpsllvq const_dq7654(%rip),%zmm0,%zmm5 + vpsrlvq const_dq1234(%rip),%zmm1,%zmm6 + vpclmulqdq $0x00,%zmm25,%zmm6,%zmm7 + vpxorq %zmm6,%zmm5,%zmm5{%k2} + vpxord %zmm5,%zmm7,%zmm10 + movq $0x0000ffffffffffff,%r8 + kmovq %r8,%k1 + vmovdqu8 0(%rdi),%zmm1 + vmovdqu8 64(%rdi),%zmm2{%k1} + + addq $0x70,%rdi + vbroadcasti32x4 (%rcx),%zmm0 + vpternlogq $0x96,%zmm0,%zmm9,%zmm1 + vpternlogq $0x96,%zmm0,%zmm10,%zmm2 + vbroadcasti32x4 16(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 32(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 48(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + vbroadcasti32x4 64(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 80(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 96(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 112(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 128(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 144(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + vbroadcasti32x4 160(%rcx),%zmm0 + vaesenclast %zmm0,%zmm1,%zmm1 + vaesenclast %zmm0,%zmm2,%zmm2 + vpxorq %zmm9,%zmm1,%zmm1 + vpxorq %zmm10,%zmm2,%zmm2 + vmovdqu8 %zmm1,0(%rsi) + vmovdqu8 %zmm2,64(%rsi){%k1} + addq $0x70,%rsi + vextracti32x4 $0x2,%zmm2,%xmm8 + vextracti32x4 $0x3,%zmm10,%xmm0 + andq $0xf,%rdx + je .L_ret_hEgxyDlCngwrfFe + jmp .L_steal_cipher_hEgxyDlCngwrfFe +.L_num_blocks_is_6_hEgxyDlCngwrfFe: + vpshufb %zmm8,%zmm0,%zmm1 + vpsllvq const_dq3210(%rip),%zmm0,%zmm4 + vpsrlvq const_dq5678(%rip),%zmm1,%zmm2 + vpclmulqdq $0x00,%zmm25,%zmm2,%zmm3 + vpxorq %zmm2,%zmm4,%zmm4{%k2} + vpxord %zmm4,%zmm3,%zmm9 + vpsllvq const_dq7654(%rip),%zmm0,%zmm5 + vpsrlvq const_dq1234(%rip),%zmm1,%zmm6 + vpclmulqdq $0x00,%zmm25,%zmm6,%zmm7 + vpxorq %zmm6,%zmm5,%zmm5{%k2} + vpxord %zmm5,%zmm7,%zmm10 + vmovdqu8 0(%rdi),%zmm1 + vmovdqu8 64(%rdi),%ymm2 + addq $96,%rdi + vbroadcasti32x4 (%rcx),%zmm0 + vpternlogq $0x96,%zmm0,%zmm9,%zmm1 + vpternlogq $0x96,%zmm0,%zmm10,%zmm2 + vbroadcasti32x4 16(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 32(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 48(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + vbroadcasti32x4 64(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 80(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 96(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 112(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 128(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 144(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + vbroadcasti32x4 160(%rcx),%zmm0 + vaesenclast %zmm0,%zmm1,%zmm1 + vaesenclast %zmm0,%zmm2,%zmm2 + vpxorq %zmm9,%zmm1,%zmm1 + vpxorq %zmm10,%zmm2,%zmm2 + vmovdqu8 %zmm1,0(%rsi) + vmovdqu8 %ymm2,64(%rsi) + addq $96,%rsi + + vextracti32x4 $0x1,%ymm2,%xmm8 + vextracti32x4 $0x2,%zmm10,%xmm0 + andq $0xf,%rdx + je .L_ret_hEgxyDlCngwrfFe + jmp .L_steal_cipher_hEgxyDlCngwrfFe +.L_num_blocks_is_5_hEgxyDlCngwrfFe: + vpshufb %zmm8,%zmm0,%zmm1 + vpsllvq const_dq3210(%rip),%zmm0,%zmm4 + vpsrlvq const_dq5678(%rip),%zmm1,%zmm2 + vpclmulqdq $0x00,%zmm25,%zmm2,%zmm3 + vpxorq %zmm2,%zmm4,%zmm4{%k2} + vpxord %zmm4,%zmm3,%zmm9 + vpsllvq const_dq7654(%rip),%zmm0,%zmm5 + vpsrlvq const_dq1234(%rip),%zmm1,%zmm6 + vpclmulqdq $0x00,%zmm25,%zmm6,%zmm7 + vpxorq %zmm6,%zmm5,%zmm5{%k2} + vpxord %zmm5,%zmm7,%zmm10 + vmovdqu8 0(%rdi),%zmm1 + vmovdqu8 64(%rdi),%xmm2 + addq $80,%rdi + vbroadcasti32x4 (%rcx),%zmm0 + vpternlogq $0x96,%zmm0,%zmm9,%zmm1 + vpternlogq $0x96,%zmm0,%zmm10,%zmm2 + vbroadcasti32x4 16(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 32(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 48(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + vbroadcasti32x4 64(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 80(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 96(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 112(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 128(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 144(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + vbroadcasti32x4 160(%rcx),%zmm0 + vaesenclast %zmm0,%zmm1,%zmm1 + vaesenclast %zmm0,%zmm2,%zmm2 + vpxorq %zmm9,%zmm1,%zmm1 + vpxorq %zmm10,%zmm2,%zmm2 + vmovdqu8 %zmm1,0(%rsi) + vmovdqu8 %xmm2,64(%rsi) + addq $80,%rsi + + vmovdqa %xmm2,%xmm8 + vextracti32x4 $0x1,%zmm10,%xmm0 + andq $0xf,%rdx + je .L_ret_hEgxyDlCngwrfFe + jmp .L_steal_cipher_hEgxyDlCngwrfFe +.L_num_blocks_is_4_hEgxyDlCngwrfFe: + vpshufb %zmm8,%zmm0,%zmm1 + vpsllvq const_dq3210(%rip),%zmm0,%zmm4 + vpsrlvq const_dq5678(%rip),%zmm1,%zmm2 + vpclmulqdq $0x00,%zmm25,%zmm2,%zmm3 + vpxorq %zmm2,%zmm4,%zmm4{%k2} + vpxord %zmm4,%zmm3,%zmm9 + vpsllvq const_dq7654(%rip),%zmm0,%zmm5 + vpsrlvq const_dq1234(%rip),%zmm1,%zmm6 + vpclmulqdq $0x00,%zmm25,%zmm6,%zmm7 + vpxorq %zmm6,%zmm5,%zmm5{%k2} + vpxord %zmm5,%zmm7,%zmm10 + vmovdqu8 0(%rdi),%zmm1 + addq $64,%rdi + vbroadcasti32x4 (%rcx),%zmm0 + vpternlogq $0x96,%zmm0,%zmm9,%zmm1 + vbroadcasti32x4 16(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 32(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 48(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 64(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 80(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 96(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 112(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 128(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 144(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 160(%rcx),%zmm0 + vaesenclast %zmm0,%zmm1,%zmm1 + vpxorq %zmm9,%zmm1,%zmm1 + vmovdqu8 %zmm1,0(%rsi) + addq $64,%rsi + vextracti32x4 $0x3,%zmm1,%xmm8 + vmovdqa %xmm10,%xmm0 + andq $0xf,%rdx + je .L_ret_hEgxyDlCngwrfFe + jmp .L_steal_cipher_hEgxyDlCngwrfFe +.L_num_blocks_is_3_hEgxyDlCngwrfFe: + vpshufb %zmm8,%zmm0,%zmm1 + vpsllvq const_dq3210(%rip),%zmm0,%zmm4 + vpsrlvq const_dq5678(%rip),%zmm1,%zmm2 + vpclmulqdq $0x00,%zmm25,%zmm2,%zmm3 + vpxorq %zmm2,%zmm4,%zmm4{%k2} + vpxord %zmm4,%zmm3,%zmm9 + movq $0x0000ffffffffffff,%r8 + kmovq %r8,%k1 + vmovdqu8 0(%rdi),%zmm1{%k1} + addq $48,%rdi + vbroadcasti32x4 (%rcx),%zmm0 + vpternlogq $0x96,%zmm0,%zmm9,%zmm1 + vbroadcasti32x4 16(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 32(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 48(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 64(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 80(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 96(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 112(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 128(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 144(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 160(%rcx),%zmm0 + vaesenclast %zmm0,%zmm1,%zmm1 + vpxorq %zmm9,%zmm1,%zmm1 + vmovdqu8 %zmm1,0(%rsi){%k1} + addq $48,%rsi + vextracti32x4 $2,%zmm1,%xmm8 + vextracti32x4 $3,%zmm9,%xmm0 + andq $0xf,%rdx + je .L_ret_hEgxyDlCngwrfFe + jmp .L_steal_cipher_hEgxyDlCngwrfFe +.L_num_blocks_is_2_hEgxyDlCngwrfFe: + vpshufb %zmm8,%zmm0,%zmm1 + vpsllvq const_dq3210(%rip),%zmm0,%zmm4 + vpsrlvq const_dq5678(%rip),%zmm1,%zmm2 + vpclmulqdq $0x00,%zmm25,%zmm2,%zmm3 + vpxorq %zmm2,%zmm4,%zmm4{%k2} + vpxord %zmm4,%zmm3,%zmm9 + + vmovdqu8 0(%rdi),%ymm1 + addq $32,%rdi + vbroadcasti32x4 (%rcx),%ymm0 + vpternlogq $0x96,%ymm0,%ymm9,%ymm1 + vbroadcasti32x4 16(%rcx),%ymm0 + vaesenc %ymm0,%ymm1,%ymm1 + vbroadcasti32x4 32(%rcx),%ymm0 + vaesenc %ymm0,%ymm1,%ymm1 + vbroadcasti32x4 48(%rcx),%ymm0 + vaesenc %ymm0,%ymm1,%ymm1 + vbroadcasti32x4 64(%rcx),%ymm0 + vaesenc %ymm0,%ymm1,%ymm1 + vbroadcasti32x4 80(%rcx),%ymm0 + vaesenc %ymm0,%ymm1,%ymm1 + vbroadcasti32x4 96(%rcx),%ymm0 + vaesenc %ymm0,%ymm1,%ymm1 + vbroadcasti32x4 112(%rcx),%ymm0 + vaesenc %ymm0,%ymm1,%ymm1 + vbroadcasti32x4 128(%rcx),%ymm0 + vaesenc %ymm0,%ymm1,%ymm1 + vbroadcasti32x4 144(%rcx),%ymm0 + vaesenc %ymm0,%ymm1,%ymm1 + vbroadcasti32x4 160(%rcx),%ymm0 + vaesenclast %ymm0,%ymm1,%ymm1 + vpxorq %ymm9,%ymm1,%ymm1 + vmovdqu8 %ymm1,0(%rsi) + addq $32,%rsi + + vextracti32x4 $1,%ymm1,%xmm8 + vextracti32x4 $2,%zmm9,%xmm0 + andq $0xf,%rdx + je .L_ret_hEgxyDlCngwrfFe + jmp .L_steal_cipher_hEgxyDlCngwrfFe +.L_num_blocks_is_1_hEgxyDlCngwrfFe: + vpshufb %zmm8,%zmm0,%zmm1 + vpsllvq const_dq3210(%rip),%zmm0,%zmm4 + vpsrlvq const_dq5678(%rip),%zmm1,%zmm2 + vpclmulqdq $0x00,%zmm25,%zmm2,%zmm3 + vpxorq %zmm2,%zmm4,%zmm4{%k2} + vpxord %zmm4,%zmm3,%zmm9 + + vmovdqu8 0(%rdi),%xmm1 + addq $16,%rdi + vbroadcasti32x4 (%rcx),%ymm0 + vpternlogq $0x96,%ymm0,%ymm9,%ymm1 + vbroadcasti32x4 16(%rcx),%ymm0 + vaesenc %ymm0,%ymm1,%ymm1 + vbroadcasti32x4 32(%rcx),%ymm0 + vaesenc %ymm0,%ymm1,%ymm1 + vbroadcasti32x4 48(%rcx),%ymm0 + vaesenc %ymm0,%ymm1,%ymm1 + vbroadcasti32x4 64(%rcx),%ymm0 + vaesenc %ymm0,%ymm1,%ymm1 + vbroadcasti32x4 80(%rcx),%ymm0 + vaesenc %ymm0,%ymm1,%ymm1 + vbroadcasti32x4 96(%rcx),%ymm0 + vaesenc %ymm0,%ymm1,%ymm1 + vbroadcasti32x4 112(%rcx),%ymm0 + vaesenc %ymm0,%ymm1,%ymm1 + vbroadcasti32x4 128(%rcx),%ymm0 + vaesenc %ymm0,%ymm1,%ymm1 + vbroadcasti32x4 144(%rcx),%ymm0 + vaesenc %ymm0,%ymm1,%ymm1 + vbroadcasti32x4 160(%rcx),%ymm0 + vaesenclast %ymm0,%ymm1,%ymm1 + vpxorq %ymm9,%ymm1,%ymm1 + vmovdqu8 %xmm1,0(%rsi) + addq $16,%rsi + + vmovdqa %xmm1,%xmm8 + vextracti32x4 $1,%zmm9,%xmm0 + andq $0xf,%rdx + je .L_ret_hEgxyDlCngwrfFe + jmp .L_steal_cipher_hEgxyDlCngwrfFe +.cfi_endproc +.globl aesni_xts_128_decrypt_avx512 +.hidden aesni_xts_128_decrypt_avx512 +.type aesni_xts_128_decrypt_avx512,@function +.align 32 +aesni_xts_128_decrypt_avx512: +.cfi_startproc +.byte 243,15,30,250 + pushq %rbp + movq %rsp,%rbp + subq $136,%rsp + andq $0xffffffffffffffc0,%rsp + movq %rbx,128(%rsp) + movq $0x87,%r10 + vmovdqu (%r9),%xmm1 + vpxor (%r8),%xmm1,%xmm1 + vaesenc 16(%r8),%xmm1,%xmm1 + vaesenc 32(%r8),%xmm1,%xmm1 + vaesenc 48(%r8),%xmm1,%xmm1 + vaesenc 64(%r8),%xmm1,%xmm1 + vaesenc 80(%r8),%xmm1,%xmm1 + vaesenc 96(%r8),%xmm1,%xmm1 + vaesenc 112(%r8),%xmm1,%xmm1 + vaesenc 128(%r8),%xmm1,%xmm1 + vaesenc 144(%r8),%xmm1,%xmm1 + vaesenclast 160(%r8),%xmm1,%xmm1 + vmovdqa %xmm1,(%rsp) + + cmpq $0x80,%rdx + jb .L_less_than_128_bytes_amivrujEyduiFoi + vpbroadcastq %r10,%zmm25 + cmpq $0x100,%rdx + jge .L_start_by16_amivrujEyduiFoi + jmp .L_start_by8_amivrujEyduiFoi + +.L_do_n_blocks_amivrujEyduiFoi: + cmpq $0x0,%rdx + je .L_ret_amivrujEyduiFoi + cmpq $0x70,%rdx + jge .L_remaining_num_blocks_is_7_amivrujEyduiFoi + cmpq $0x60,%rdx + jge .L_remaining_num_blocks_is_6_amivrujEyduiFoi + cmpq $0x50,%rdx + jge .L_remaining_num_blocks_is_5_amivrujEyduiFoi + cmpq $0x40,%rdx + jge .L_remaining_num_blocks_is_4_amivrujEyduiFoi + cmpq $0x30,%rdx + jge .L_remaining_num_blocks_is_3_amivrujEyduiFoi + cmpq $0x20,%rdx + jge .L_remaining_num_blocks_is_2_amivrujEyduiFoi + cmpq $0x10,%rdx + jge .L_remaining_num_blocks_is_1_amivrujEyduiFoi + + + vmovdqu %xmm5,%xmm1 + + vpxor %xmm9,%xmm1,%xmm1 + vmovdqu (%rcx),%xmm0 + vpxor %xmm0,%xmm1,%xmm1 + vmovdqu 16(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 32(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 48(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 64(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 80(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 96(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 112(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 128(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 144(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 160(%rcx),%xmm0 + vaesdeclast %xmm0,%xmm1,%xmm1 + vpxor %xmm9,%xmm1,%xmm1 + vmovdqu %xmm1,-16(%rsi) + vmovdqa %xmm1,%xmm8 + + + movq $0x1,%r8 + kmovq %r8,%k1 + vpsllq $0x3f,%xmm9,%xmm13 + vpsraq $0x3f,%xmm13,%xmm14 + vpandq %xmm25,%xmm14,%xmm5 + vpxorq %xmm5,%xmm9,%xmm9{%k1} + vpsrldq $0x8,%xmm9,%xmm10 +.byte 98, 211, 181, 8, 115, 194, 1 + vpslldq $0x8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm0,%xmm0 + jmp .L_steal_cipher_amivrujEyduiFoi + +.L_remaining_num_blocks_is_7_amivrujEyduiFoi: + movq $0xffffffffffffffff,%r8 + shrq $0x10,%r8 + kmovq %r8,%k1 + vmovdqu8 (%rdi),%zmm1 + vmovdqu8 64(%rdi),%zmm2{%k1} + addq $0x70,%rdi + andq $0xf,%rdx + je .L_done_7_remain_amivrujEyduiFoi + vextracti32x4 $0x2,%zmm10,%xmm12 + vextracti32x4 $0x3,%zmm10,%xmm13 + vinserti32x4 $0x2,%xmm13,%zmm10,%zmm10 + + vpxorq %zmm9,%zmm1,%zmm1 + vpxorq %zmm10,%zmm2,%zmm2 + + + vbroadcasti32x4 (%rcx),%zmm0 + vpxorq %zmm0,%zmm1,%zmm1 + vpxorq %zmm0,%zmm2,%zmm2 + vbroadcasti32x4 16(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 32(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 48(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + vbroadcasti32x4 64(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 80(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 96(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 112(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 128(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 144(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 160(%rcx),%zmm0 + vaesdeclast %zmm0,%zmm1,%zmm1 + vaesdeclast %zmm0,%zmm2,%zmm2 + + vpxorq %zmm9,%zmm1,%zmm1 + vpxorq %zmm10,%zmm2,%zmm2 + + + vmovdqa32 %zmm15,%zmm9 + vmovdqa32 %zmm16,%zmm10 + vmovdqu8 %zmm1,(%rsi) + vmovdqu8 %zmm2,64(%rsi){%k1} + addq $0x70,%rsi + vextracti32x4 $0x2,%zmm2,%xmm8 + vmovdqa %xmm12,%xmm0 + jmp .L_steal_cipher_amivrujEyduiFoi + +.L_done_7_remain_amivrujEyduiFoi: + + vpxorq %zmm9,%zmm1,%zmm1 + vpxorq %zmm10,%zmm2,%zmm2 + + + vbroadcasti32x4 (%rcx),%zmm0 + vpxorq %zmm0,%zmm1,%zmm1 + vpxorq %zmm0,%zmm2,%zmm2 + vbroadcasti32x4 16(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 32(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 48(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + vbroadcasti32x4 64(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 80(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 96(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 112(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 128(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 144(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 160(%rcx),%zmm0 + vaesdeclast %zmm0,%zmm1,%zmm1 + vaesdeclast %zmm0,%zmm2,%zmm2 + + vpxorq %zmm9,%zmm1,%zmm1 + vpxorq %zmm10,%zmm2,%zmm2 + + + vmovdqa32 %zmm15,%zmm9 + vmovdqa32 %zmm16,%zmm10 + vmovdqu8 %zmm1,(%rsi) + vmovdqu8 %zmm2,64(%rsi){%k1} + jmp .L_ret_amivrujEyduiFoi + +.L_remaining_num_blocks_is_6_amivrujEyduiFoi: + vmovdqu8 (%rdi),%zmm1 + vmovdqu8 64(%rdi),%ymm2 + addq $0x60,%rdi + andq $0xf,%rdx + je .L_done_6_remain_amivrujEyduiFoi + vextracti32x4 $0x1,%zmm10,%xmm12 + vextracti32x4 $0x2,%zmm10,%xmm13 + vinserti32x4 $0x1,%xmm13,%zmm10,%zmm10 + + vpxorq %zmm9,%zmm1,%zmm1 + vpxorq %zmm10,%zmm2,%zmm2 + + + vbroadcasti32x4 (%rcx),%zmm0 + vpxorq %zmm0,%zmm1,%zmm1 + vpxorq %zmm0,%zmm2,%zmm2 + vbroadcasti32x4 16(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 32(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 48(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + vbroadcasti32x4 64(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 80(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 96(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 112(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 128(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 144(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 160(%rcx),%zmm0 + vaesdeclast %zmm0,%zmm1,%zmm1 + vaesdeclast %zmm0,%zmm2,%zmm2 + + vpxorq %zmm9,%zmm1,%zmm1 + vpxorq %zmm10,%zmm2,%zmm2 + + + vmovdqa32 %zmm15,%zmm9 + vmovdqa32 %zmm16,%zmm10 + vmovdqu8 %zmm1,(%rsi) + vmovdqu8 %ymm2,64(%rsi) + addq $0x60,%rsi + vextracti32x4 $0x1,%zmm2,%xmm8 + vmovdqa %xmm12,%xmm0 + jmp .L_steal_cipher_amivrujEyduiFoi + +.L_done_6_remain_amivrujEyduiFoi: + + vpxorq %zmm9,%zmm1,%zmm1 + vpxorq %zmm10,%zmm2,%zmm2 + + + vbroadcasti32x4 (%rcx),%zmm0 + vpxorq %zmm0,%zmm1,%zmm1 + vpxorq %zmm0,%zmm2,%zmm2 + vbroadcasti32x4 16(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 32(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 48(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + vbroadcasti32x4 64(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 80(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 96(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 112(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 128(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 144(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 160(%rcx),%zmm0 + vaesdeclast %zmm0,%zmm1,%zmm1 + vaesdeclast %zmm0,%zmm2,%zmm2 + + vpxorq %zmm9,%zmm1,%zmm1 + vpxorq %zmm10,%zmm2,%zmm2 + + + vmovdqa32 %zmm15,%zmm9 + vmovdqa32 %zmm16,%zmm10 + vmovdqu8 %zmm1,(%rsi) + vmovdqu8 %ymm2,64(%rsi) + jmp .L_ret_amivrujEyduiFoi + +.L_remaining_num_blocks_is_5_amivrujEyduiFoi: + vmovdqu8 (%rdi),%zmm1 + vmovdqu 64(%rdi),%xmm2 + addq $0x50,%rdi + andq $0xf,%rdx + je .L_done_5_remain_amivrujEyduiFoi + vmovdqa %xmm10,%xmm12 + vextracti32x4 $0x1,%zmm10,%xmm10 + + vpxorq %zmm9,%zmm1,%zmm1 + vpxorq %zmm10,%zmm2,%zmm2 + + + vbroadcasti32x4 (%rcx),%zmm0 + vpxorq %zmm0,%zmm1,%zmm1 + vpxorq %zmm0,%zmm2,%zmm2 + vbroadcasti32x4 16(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 32(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 48(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + vbroadcasti32x4 64(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 80(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 96(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 112(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 128(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 144(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 160(%rcx),%zmm0 + vaesdeclast %zmm0,%zmm1,%zmm1 + vaesdeclast %zmm0,%zmm2,%zmm2 + + vpxorq %zmm9,%zmm1,%zmm1 + vpxorq %zmm10,%zmm2,%zmm2 + + + vmovdqa32 %zmm15,%zmm9 + vmovdqa32 %zmm16,%zmm10 + vmovdqu8 %zmm1,(%rsi) + vmovdqu %xmm2,64(%rsi) + addq $0x50,%rsi + vmovdqa %xmm2,%xmm8 + vmovdqa %xmm12,%xmm0 + jmp .L_steal_cipher_amivrujEyduiFoi + +.L_done_5_remain_amivrujEyduiFoi: + + vpxorq %zmm9,%zmm1,%zmm1 + vpxorq %zmm10,%zmm2,%zmm2 + + + vbroadcasti32x4 (%rcx),%zmm0 + vpxorq %zmm0,%zmm1,%zmm1 + vpxorq %zmm0,%zmm2,%zmm2 + vbroadcasti32x4 16(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 32(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 48(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + vbroadcasti32x4 64(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 80(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 96(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 112(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 128(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 144(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 160(%rcx),%zmm0 + vaesdeclast %zmm0,%zmm1,%zmm1 + vaesdeclast %zmm0,%zmm2,%zmm2 + + vpxorq %zmm9,%zmm1,%zmm1 + vpxorq %zmm10,%zmm2,%zmm2 + + + vmovdqa32 %zmm15,%zmm9 + vmovdqa32 %zmm16,%zmm10 + vmovdqu8 %zmm1,(%rsi) + vmovdqu8 %xmm2,64(%rsi) + jmp .L_ret_amivrujEyduiFoi + +.L_remaining_num_blocks_is_4_amivrujEyduiFoi: + vmovdqu8 (%rdi),%zmm1 + addq $0x40,%rdi + andq $0xf,%rdx + je .L_done_4_remain_amivrujEyduiFoi + vextracti32x4 $0x3,%zmm9,%xmm12 + vinserti32x4 $0x3,%xmm10,%zmm9,%zmm9 + + vpxorq %zmm9,%zmm1,%zmm1 + vpxorq %zmm10,%zmm2,%zmm2 + + + vbroadcasti32x4 (%rcx),%zmm0 + vpxorq %zmm0,%zmm1,%zmm1 + vpxorq %zmm0,%zmm2,%zmm2 + vbroadcasti32x4 16(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 32(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 48(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + vbroadcasti32x4 64(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 80(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 96(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 112(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 128(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 144(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 160(%rcx),%zmm0 + vaesdeclast %zmm0,%zmm1,%zmm1 + vaesdeclast %zmm0,%zmm2,%zmm2 + + vpxorq %zmm9,%zmm1,%zmm1 + vpxorq %zmm10,%zmm2,%zmm2 + + + vmovdqa32 %zmm15,%zmm9 + vmovdqa32 %zmm16,%zmm10 + vmovdqu8 %zmm1,(%rsi) + addq $0x40,%rsi + vextracti32x4 $0x3,%zmm1,%xmm8 + vmovdqa %xmm12,%xmm0 + jmp .L_steal_cipher_amivrujEyduiFoi + +.L_done_4_remain_amivrujEyduiFoi: + + vpxorq %zmm9,%zmm1,%zmm1 + vpxorq %zmm10,%zmm2,%zmm2 + + + vbroadcasti32x4 (%rcx),%zmm0 + vpxorq %zmm0,%zmm1,%zmm1 + vpxorq %zmm0,%zmm2,%zmm2 + vbroadcasti32x4 16(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 32(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 48(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + vbroadcasti32x4 64(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 80(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 96(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 112(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 128(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 144(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 160(%rcx),%zmm0 + vaesdeclast %zmm0,%zmm1,%zmm1 + vaesdeclast %zmm0,%zmm2,%zmm2 + + vpxorq %zmm9,%zmm1,%zmm1 + vpxorq %zmm10,%zmm2,%zmm2 + + + vmovdqa32 %zmm15,%zmm9 + vmovdqa32 %zmm16,%zmm10 + vmovdqu8 %zmm1,(%rsi) + jmp .L_ret_amivrujEyduiFoi + +.L_remaining_num_blocks_is_3_amivrujEyduiFoi: + vmovdqu (%rdi),%xmm1 + vmovdqu 16(%rdi),%xmm2 + vmovdqu 32(%rdi),%xmm3 + addq $0x30,%rdi + andq $0xf,%rdx + je .L_done_3_remain_amivrujEyduiFoi + vextracti32x4 $0x2,%zmm9,%xmm13 + vextracti32x4 $0x1,%zmm9,%xmm10 + vextracti32x4 $0x3,%zmm9,%xmm11 + vpxor %xmm9,%xmm1,%xmm1 + vpxor %xmm10,%xmm2,%xmm2 + vpxor %xmm11,%xmm3,%xmm3 + vmovdqu (%rcx),%xmm0 + vpxor %xmm0,%xmm1,%xmm1 + vpxor %xmm0,%xmm2,%xmm2 + vpxor %xmm0,%xmm3,%xmm3 + vmovdqu 16(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 32(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 48(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 64(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 80(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 96(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 112(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 128(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 144(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 160(%rcx),%xmm0 + vaesdeclast %xmm0,%xmm1,%xmm1 + vaesdeclast %xmm0,%xmm2,%xmm2 + vaesdeclast %xmm0,%xmm3,%xmm3 + vpxor %xmm9,%xmm1,%xmm1 + vpxor %xmm10,%xmm2,%xmm2 + vpxor %xmm11,%xmm3,%xmm3 + vmovdqu %xmm1,(%rsi) + vmovdqu %xmm2,16(%rsi) + vmovdqu %xmm3,32(%rsi) + addq $0x30,%rsi + vmovdqa %xmm3,%xmm8 + vmovdqa %xmm13,%xmm0 + jmp .L_steal_cipher_amivrujEyduiFoi + +.L_done_3_remain_amivrujEyduiFoi: + vextracti32x4 $0x1,%zmm9,%xmm10 + vextracti32x4 $0x2,%zmm9,%xmm11 + vpxor %xmm9,%xmm1,%xmm1 + vpxor %xmm10,%xmm2,%xmm2 + vpxor %xmm11,%xmm3,%xmm3 + vmovdqu (%rcx),%xmm0 + vpxor %xmm0,%xmm1,%xmm1 + vpxor %xmm0,%xmm2,%xmm2 + vpxor %xmm0,%xmm3,%xmm3 + vmovdqu 16(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 32(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 48(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 64(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 80(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 96(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 112(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 128(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 144(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 160(%rcx),%xmm0 + vaesdeclast %xmm0,%xmm1,%xmm1 + vaesdeclast %xmm0,%xmm2,%xmm2 + vaesdeclast %xmm0,%xmm3,%xmm3 + vpxor %xmm9,%xmm1,%xmm1 + vpxor %xmm10,%xmm2,%xmm2 + vpxor %xmm11,%xmm3,%xmm3 + vmovdqu %xmm1,(%rsi) + vmovdqu %xmm2,16(%rsi) + vmovdqu %xmm3,32(%rsi) + jmp .L_ret_amivrujEyduiFoi + +.L_remaining_num_blocks_is_2_amivrujEyduiFoi: + vmovdqu (%rdi),%xmm1 + vmovdqu 16(%rdi),%xmm2 + addq $0x20,%rdi + andq $0xf,%rdx + je .L_done_2_remain_amivrujEyduiFoi + vextracti32x4 $0x2,%zmm9,%xmm10 + vextracti32x4 $0x1,%zmm9,%xmm12 + vpxor %xmm9,%xmm1,%xmm1 + vpxor %xmm10,%xmm2,%xmm2 + vmovdqu (%rcx),%xmm0 + vpxor %xmm0,%xmm1,%xmm1 + vpxor %xmm0,%xmm2,%xmm2 + vmovdqu 16(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 32(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 48(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 64(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 80(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 96(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 112(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 128(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 144(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 160(%rcx),%xmm0 + vaesdeclast %xmm0,%xmm1,%xmm1 + vaesdeclast %xmm0,%xmm2,%xmm2 + vpxor %xmm9,%xmm1,%xmm1 + vpxor %xmm10,%xmm2,%xmm2 + vmovdqu %xmm1,(%rsi) + vmovdqu %xmm2,16(%rsi) + addq $0x20,%rsi + vmovdqa %xmm2,%xmm8 + vmovdqa %xmm12,%xmm0 + jmp .L_steal_cipher_amivrujEyduiFoi + +.L_done_2_remain_amivrujEyduiFoi: + vextracti32x4 $0x1,%zmm9,%xmm10 + vpxor %xmm9,%xmm1,%xmm1 + vpxor %xmm10,%xmm2,%xmm2 + vmovdqu (%rcx),%xmm0 + vpxor %xmm0,%xmm1,%xmm1 + vpxor %xmm0,%xmm2,%xmm2 + vmovdqu 16(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 32(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 48(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 64(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 80(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 96(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 112(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 128(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 144(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 160(%rcx),%xmm0 + vaesdeclast %xmm0,%xmm1,%xmm1 + vaesdeclast %xmm0,%xmm2,%xmm2 + vpxor %xmm9,%xmm1,%xmm1 + vpxor %xmm10,%xmm2,%xmm2 + vmovdqu %xmm1,(%rsi) + vmovdqu %xmm2,16(%rsi) + jmp .L_ret_amivrujEyduiFoi + +.L_remaining_num_blocks_is_1_amivrujEyduiFoi: + vmovdqu (%rdi),%xmm1 + addq $0x10,%rdi + andq $0xf,%rdx + je .L_done_1_remain_amivrujEyduiFoi + vextracti32x4 $0x1,%zmm9,%xmm11 + vpxor %xmm11,%xmm1,%xmm1 + vmovdqu (%rcx),%xmm0 + vpxor %xmm0,%xmm1,%xmm1 + vmovdqu 16(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 32(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 48(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 64(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 80(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 96(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 112(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 128(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 144(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 160(%rcx),%xmm0 + vaesdeclast %xmm0,%xmm1,%xmm1 + vpxor %xmm11,%xmm1,%xmm1 + vmovdqu %xmm1,(%rsi) + addq $0x10,%rsi + vmovdqa %xmm1,%xmm8 + vmovdqa %xmm9,%xmm0 + jmp .L_steal_cipher_amivrujEyduiFoi + +.L_done_1_remain_amivrujEyduiFoi: + vpxor %xmm9,%xmm1,%xmm1 + vmovdqu (%rcx),%xmm0 + vpxor %xmm0,%xmm1,%xmm1 + vmovdqu 16(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 32(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 48(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 64(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 80(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 96(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 112(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 128(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 144(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 160(%rcx),%xmm0 + vaesdeclast %xmm0,%xmm1,%xmm1 + vpxor %xmm9,%xmm1,%xmm1 + vmovdqu %xmm1,(%rsi) + jmp .L_ret_amivrujEyduiFoi + +.L_start_by16_amivrujEyduiFoi: + vbroadcasti32x4 (%rsp),%zmm0 + vbroadcasti32x4 shufb_15_7(%rip),%zmm8 + movq $0xaa,%r8 + kmovq %r8,%k2 + + + vpshufb %zmm8,%zmm0,%zmm1 + vpsllvq const_dq3210(%rip),%zmm0,%zmm4 + vpsrlvq const_dq5678(%rip),%zmm1,%zmm2 + vpclmulqdq $0x0,%zmm25,%zmm2,%zmm3 + vpxorq %zmm2,%zmm4,%zmm4{%k2} + vpxord %zmm4,%zmm3,%zmm9 + + + vpsllvq const_dq7654(%rip),%zmm0,%zmm5 + vpsrlvq const_dq1234(%rip),%zmm1,%zmm6 + vpclmulqdq $0x0,%zmm25,%zmm6,%zmm7 + vpxorq %zmm6,%zmm5,%zmm5{%k2} + vpxord %zmm5,%zmm7,%zmm10 + + + vpsrldq $0xf,%zmm9,%zmm13 + vpclmulqdq $0x0,%zmm25,%zmm13,%zmm14 + vpslldq $0x1,%zmm9,%zmm11 + vpxord %zmm14,%zmm11,%zmm11 + + vpsrldq $0xf,%zmm10,%zmm15 + vpclmulqdq $0x0,%zmm25,%zmm15,%zmm16 + vpslldq $0x1,%zmm10,%zmm12 + vpxord %zmm16,%zmm12,%zmm12 + +.L_main_loop_run_16_amivrujEyduiFoi: + vmovdqu8 (%rdi),%zmm1 + vmovdqu8 64(%rdi),%zmm2 + vmovdqu8 128(%rdi),%zmm3 + vmovdqu8 192(%rdi),%zmm4 + vmovdqu8 240(%rdi),%xmm5 + addq $0x100,%rdi + vpxorq %zmm9,%zmm1,%zmm1 + vpxorq %zmm10,%zmm2,%zmm2 + vpxorq %zmm11,%zmm3,%zmm3 + vpxorq %zmm12,%zmm4,%zmm4 + vbroadcasti32x4 (%rcx),%zmm0 + vpxorq %zmm0,%zmm1,%zmm1 + vpxorq %zmm0,%zmm2,%zmm2 + vpxorq %zmm0,%zmm3,%zmm3 + vpxorq %zmm0,%zmm4,%zmm4 + vpsrldq $0xf,%zmm11,%zmm13 + vpclmulqdq $0x0,%zmm25,%zmm13,%zmm14 + vpslldq $0x1,%zmm11,%zmm15 + vpxord %zmm14,%zmm15,%zmm15 + vbroadcasti32x4 16(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + vaesdec %zmm0,%zmm3,%zmm3 + vaesdec %zmm0,%zmm4,%zmm4 + vbroadcasti32x4 32(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + vaesdec %zmm0,%zmm3,%zmm3 + vaesdec %zmm0,%zmm4,%zmm4 + vbroadcasti32x4 48(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + vaesdec %zmm0,%zmm3,%zmm3 + vaesdec %zmm0,%zmm4,%zmm4 + vpsrldq $0xf,%zmm12,%zmm13 + vpclmulqdq $0x0,%zmm25,%zmm13,%zmm14 + vpslldq $0x1,%zmm12,%zmm16 + vpxord %zmm14,%zmm16,%zmm16 + vbroadcasti32x4 64(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + vaesdec %zmm0,%zmm3,%zmm3 + vaesdec %zmm0,%zmm4,%zmm4 + vbroadcasti32x4 80(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + vaesdec %zmm0,%zmm3,%zmm3 + vaesdec %zmm0,%zmm4,%zmm4 + vbroadcasti32x4 96(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + vaesdec %zmm0,%zmm3,%zmm3 + vaesdec %zmm0,%zmm4,%zmm4 + vpsrldq $0xf,%zmm15,%zmm13 + vpclmulqdq $0x0,%zmm25,%zmm13,%zmm14 + vpslldq $0x1,%zmm15,%zmm17 + vpxord %zmm14,%zmm17,%zmm17 + vbroadcasti32x4 112(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + vaesdec %zmm0,%zmm3,%zmm3 + vaesdec %zmm0,%zmm4,%zmm4 + vbroadcasti32x4 128(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + vaesdec %zmm0,%zmm3,%zmm3 + vaesdec %zmm0,%zmm4,%zmm4 + vbroadcasti32x4 144(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + vaesdec %zmm0,%zmm3,%zmm3 + vaesdec %zmm0,%zmm4,%zmm4 + vpsrldq $0xf,%zmm16,%zmm13 + vpclmulqdq $0x0,%zmm25,%zmm13,%zmm14 + vpslldq $0x1,%zmm16,%zmm18 + vpxord %zmm14,%zmm18,%zmm18 + vbroadcasti32x4 160(%rcx),%zmm0 + vaesdeclast %zmm0,%zmm1,%zmm1 + vaesdeclast %zmm0,%zmm2,%zmm2 + vaesdeclast %zmm0,%zmm3,%zmm3 + vaesdeclast %zmm0,%zmm4,%zmm4 + vpxorq %zmm9,%zmm1,%zmm1 + vpxorq %zmm10,%zmm2,%zmm2 + vpxorq %zmm11,%zmm3,%zmm3 + vpxorq %zmm12,%zmm4,%zmm4 + + vmovdqa32 %zmm15,%zmm9 + vmovdqa32 %zmm16,%zmm10 + vmovdqa32 %zmm17,%zmm11 + vmovdqa32 %zmm18,%zmm12 + vmovdqu8 %zmm1,(%rsi) + vmovdqu8 %zmm2,64(%rsi) + vmovdqu8 %zmm3,128(%rsi) + vmovdqu8 %zmm4,192(%rsi) + addq $0x100,%rsi + subq $0x100,%rdx + cmpq $0x100,%rdx + jge .L_main_loop_run_16_amivrujEyduiFoi + + cmpq $0x80,%rdx + jge .L_main_loop_run_8_amivrujEyduiFoi + jmp .L_do_n_blocks_amivrujEyduiFoi + +.L_start_by8_amivrujEyduiFoi: + + vbroadcasti32x4 (%rsp),%zmm0 + vbroadcasti32x4 shufb_15_7(%rip),%zmm8 + movq $0xaa,%r8 + kmovq %r8,%k2 + + + vpshufb %zmm8,%zmm0,%zmm1 + vpsllvq const_dq3210(%rip),%zmm0,%zmm4 + vpsrlvq const_dq5678(%rip),%zmm1,%zmm2 + vpclmulqdq $0x0,%zmm25,%zmm2,%zmm3 + vpxorq %zmm2,%zmm4,%zmm4{%k2} + vpxord %zmm4,%zmm3,%zmm9 + + + vpsllvq const_dq7654(%rip),%zmm0,%zmm5 + vpsrlvq const_dq1234(%rip),%zmm1,%zmm6 + vpclmulqdq $0x0,%zmm25,%zmm6,%zmm7 + vpxorq %zmm6,%zmm5,%zmm5{%k2} + vpxord %zmm5,%zmm7,%zmm10 + +.L_main_loop_run_8_amivrujEyduiFoi: + vmovdqu8 (%rdi),%zmm1 + vmovdqu8 64(%rdi),%zmm2 + vmovdqu8 112(%rdi),%xmm5 + addq $0x80,%rdi + + vpxorq %zmm9,%zmm1,%zmm1 + vpxorq %zmm10,%zmm2,%zmm2 + + + vbroadcasti32x4 (%rcx),%zmm0 + vpxorq %zmm0,%zmm1,%zmm1 + vpxorq %zmm0,%zmm2,%zmm2 + vpsrldq $0xf,%zmm9,%zmm13 + vpclmulqdq $0x0,%zmm25,%zmm13,%zmm14 + vpslldq $0x1,%zmm9,%zmm15 + vpxord %zmm14,%zmm15,%zmm15 + vbroadcasti32x4 16(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 32(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 48(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + vpsrldq $0xf,%zmm10,%zmm13 + vpclmulqdq $0x0,%zmm25,%zmm13,%zmm14 + vpslldq $0x1,%zmm10,%zmm16 + vpxord %zmm14,%zmm16,%zmm16 + + vbroadcasti32x4 64(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 80(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 96(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 112(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 128(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 144(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 160(%rcx),%zmm0 + vaesdeclast %zmm0,%zmm1,%zmm1 + vaesdeclast %zmm0,%zmm2,%zmm2 + + vpxorq %zmm9,%zmm1,%zmm1 + vpxorq %zmm10,%zmm2,%zmm2 + + + vmovdqa32 %zmm15,%zmm9 + vmovdqa32 %zmm16,%zmm10 + vmovdqu8 %zmm1,(%rsi) + vmovdqu8 %zmm2,64(%rsi) + addq $0x80,%rsi + subq $0x80,%rdx + cmpq $0x80,%rdx + jge .L_main_loop_run_8_amivrujEyduiFoi + jmp .L_do_n_blocks_amivrujEyduiFoi + +.L_steal_cipher_amivrujEyduiFoi: + + vmovdqa %xmm8,%xmm2 + + + leaq vpshufb_shf_table(%rip),%rax + vmovdqu (%rax,%rdx,1),%xmm10 + vpshufb %xmm10,%xmm8,%xmm8 + + + vmovdqu -16(%rdi,%rdx,1),%xmm3 + vmovdqu %xmm8,-16(%rsi,%rdx,1) + + + leaq vpshufb_shf_table(%rip),%rax + addq $16,%rax + subq %rdx,%rax + vmovdqu (%rax),%xmm10 + vpxor mask1(%rip),%xmm10,%xmm10 + vpshufb %xmm10,%xmm3,%xmm3 + + vpblendvb %xmm10,%xmm2,%xmm3,%xmm3 + + + vpxor %xmm0,%xmm3,%xmm8 + + + vpxor (%rcx),%xmm8,%xmm8 + vaesdec 16(%rcx),%xmm8,%xmm8 + vaesdec 32(%rcx),%xmm8,%xmm8 + vaesdec 48(%rcx),%xmm8,%xmm8 + vaesdec 64(%rcx),%xmm8,%xmm8 + vaesdec 80(%rcx),%xmm8,%xmm8 + vaesdec 96(%rcx),%xmm8,%xmm8 + vaesdec 112(%rcx),%xmm8,%xmm8 + vaesdec 128(%rcx),%xmm8,%xmm8 + vaesdec 144(%rcx),%xmm8,%xmm8 + vaesdeclast 160(%rcx),%xmm8,%xmm8 + + vpxor %xmm0,%xmm8,%xmm8 + +.L_done_amivrujEyduiFoi: + + vmovdqu %xmm8,-16(%rsi) +.L_ret_amivrujEyduiFoi: + movq 128(%rsp),%rbx + xorq %r8,%r8 + movq %r8,128(%rsp) + + vpxorq %zmm0,%zmm0,%zmm0 + movq %rbp,%rsp + popq %rbp + vzeroupper + .byte 0xf3,0xc3 + +.L_less_than_128_bytes_amivrujEyduiFoi: + cmpq $0x10,%rdx + jb .L_ret_amivrujEyduiFoi + + movq %rdx,%r8 + andq $0x70,%r8 + cmpq $0x60,%r8 + je .L_num_blocks_is_6_amivrujEyduiFoi + cmpq $0x50,%r8 + je .L_num_blocks_is_5_amivrujEyduiFoi + cmpq $0x40,%r8 + je .L_num_blocks_is_4_amivrujEyduiFoi + cmpq $0x30,%r8 + je .L_num_blocks_is_3_amivrujEyduiFoi + cmpq $0x20,%r8 + je .L_num_blocks_is_2_amivrujEyduiFoi + cmpq $0x10,%r8 + je .L_num_blocks_is_1_amivrujEyduiFoi + +.L_num_blocks_is_7_amivrujEyduiFoi: + vmovdqa 0(%rsp),%xmm9 + movq 0(%rsp),%rax + movq 8(%rsp),%rbx + vmovdqu 0(%rdi),%xmm1 + xorq %r11,%r11 + shlq $1,%rax + adcq %rbx,%rbx + cmovcq %r10,%r11 + xorq %r11,%rax + movq %rax,16(%rsp) + movq %rbx,16 + 8(%rsp) + vmovdqa 16(%rsp),%xmm10 + vmovdqu 16(%rdi),%xmm2 + xorq %r11,%r11 + shlq $1,%rax + adcq %rbx,%rbx + cmovcq %r10,%r11 + xorq %r11,%rax + movq %rax,32(%rsp) + movq %rbx,32 + 8(%rsp) + vmovdqa 32(%rsp),%xmm11 + vmovdqu 32(%rdi),%xmm3 + xorq %r11,%r11 + shlq $1,%rax + adcq %rbx,%rbx + cmovcq %r10,%r11 + xorq %r11,%rax + movq %rax,48(%rsp) + movq %rbx,48 + 8(%rsp) + vmovdqa 48(%rsp),%xmm12 + vmovdqu 48(%rdi),%xmm4 + xorq %r11,%r11 + shlq $1,%rax + adcq %rbx,%rbx + cmovcq %r10,%r11 + xorq %r11,%rax + movq %rax,64(%rsp) + movq %rbx,64 + 8(%rsp) + vmovdqa 64(%rsp),%xmm13 + vmovdqu 64(%rdi),%xmm5 + xorq %r11,%r11 + shlq $1,%rax + adcq %rbx,%rbx + cmovcq %r10,%r11 + xorq %r11,%rax + movq %rax,80(%rsp) + movq %rbx,80 + 8(%rsp) + vmovdqa 80(%rsp),%xmm14 + vmovdqu 80(%rdi),%xmm6 + xorq %r11,%r11 + shlq $1,%rax + adcq %rbx,%rbx + cmovcq %r10,%r11 + xorq %r11,%rax + movq %rax,96(%rsp) + movq %rbx,96 + 8(%rsp) + vmovdqa 96(%rsp),%xmm15 + vmovdqu 96(%rdi),%xmm7 + addq $0x70,%rdi + andq $0xf,%rdx + je .L_done_7_amivrujEyduiFoi + +.L_steal_cipher_7_amivrujEyduiFoi: + xorq %r11,%r11 + shlq $1,%rax + adcq %rbx,%rbx + cmovcq %r10,%r11 + xorq %r11,%rax + movq %rax,16(%rsp) + movq %rbx,24(%rsp) + vmovdqa64 %xmm15,%xmm16 + vmovdqa 16(%rsp),%xmm15 + vpxor %xmm9,%xmm1,%xmm1 + vpxor %xmm10,%xmm2,%xmm2 + vpxor %xmm11,%xmm3,%xmm3 + vpxor %xmm12,%xmm4,%xmm4 + vpxor %xmm13,%xmm5,%xmm5 + vpxor %xmm14,%xmm6,%xmm6 + vpxor %xmm15,%xmm7,%xmm7 + vmovdqu (%rcx),%xmm0 + vpxor %xmm0,%xmm1,%xmm1 + vpxor %xmm0,%xmm2,%xmm2 + vpxor %xmm0,%xmm3,%xmm3 + vpxor %xmm0,%xmm4,%xmm4 + vpxor %xmm0,%xmm5,%xmm5 + vpxor %xmm0,%xmm6,%xmm6 + vpxor %xmm0,%xmm7,%xmm7 + vmovdqu 16(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vaesdec %xmm0,%xmm7,%xmm7 + vmovdqu 32(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vaesdec %xmm0,%xmm7,%xmm7 + vmovdqu 48(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vaesdec %xmm0,%xmm7,%xmm7 + vmovdqu 64(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vaesdec %xmm0,%xmm7,%xmm7 + vmovdqu 80(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vaesdec %xmm0,%xmm7,%xmm7 + vmovdqu 96(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vaesdec %xmm0,%xmm7,%xmm7 + vmovdqu 112(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vaesdec %xmm0,%xmm7,%xmm7 + vmovdqu 128(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vaesdec %xmm0,%xmm7,%xmm7 + vmovdqu 144(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vaesdec %xmm0,%xmm7,%xmm7 + vmovdqu 160(%rcx),%xmm0 + vaesdeclast %xmm0,%xmm1,%xmm1 + vaesdeclast %xmm0,%xmm2,%xmm2 + vaesdeclast %xmm0,%xmm3,%xmm3 + vaesdeclast %xmm0,%xmm4,%xmm4 + vaesdeclast %xmm0,%xmm5,%xmm5 + vaesdeclast %xmm0,%xmm6,%xmm6 + vaesdeclast %xmm0,%xmm7,%xmm7 + vpxor %xmm9,%xmm1,%xmm1 + vpxor %xmm10,%xmm2,%xmm2 + vpxor %xmm11,%xmm3,%xmm3 + vpxor %xmm12,%xmm4,%xmm4 + vpxor %xmm13,%xmm5,%xmm5 + vpxor %xmm14,%xmm6,%xmm6 + vpxor %xmm15,%xmm7,%xmm7 + vmovdqu %xmm1,(%rsi) + vmovdqu %xmm2,16(%rsi) + vmovdqu %xmm3,32(%rsi) + vmovdqu %xmm4,48(%rsi) + vmovdqu %xmm5,64(%rsi) + vmovdqu %xmm6,80(%rsi) + addq $0x70,%rsi + vmovdqa64 %xmm16,%xmm0 + vmovdqa %xmm7,%xmm8 + jmp .L_steal_cipher_amivrujEyduiFoi + +.L_done_7_amivrujEyduiFoi: + vpxor %xmm9,%xmm1,%xmm1 + vpxor %xmm10,%xmm2,%xmm2 + vpxor %xmm11,%xmm3,%xmm3 + vpxor %xmm12,%xmm4,%xmm4 + vpxor %xmm13,%xmm5,%xmm5 + vpxor %xmm14,%xmm6,%xmm6 + vpxor %xmm15,%xmm7,%xmm7 + vmovdqu (%rcx),%xmm0 + vpxor %xmm0,%xmm1,%xmm1 + vpxor %xmm0,%xmm2,%xmm2 + vpxor %xmm0,%xmm3,%xmm3 + vpxor %xmm0,%xmm4,%xmm4 + vpxor %xmm0,%xmm5,%xmm5 + vpxor %xmm0,%xmm6,%xmm6 + vpxor %xmm0,%xmm7,%xmm7 + vmovdqu 16(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vaesdec %xmm0,%xmm7,%xmm7 + vmovdqu 32(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vaesdec %xmm0,%xmm7,%xmm7 + vmovdqu 48(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vaesdec %xmm0,%xmm7,%xmm7 + vmovdqu 64(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vaesdec %xmm0,%xmm7,%xmm7 + vmovdqu 80(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vaesdec %xmm0,%xmm7,%xmm7 + vmovdqu 96(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vaesdec %xmm0,%xmm7,%xmm7 + vmovdqu 112(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vaesdec %xmm0,%xmm7,%xmm7 + vmovdqu 128(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vaesdec %xmm0,%xmm7,%xmm7 + vmovdqu 144(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vaesdec %xmm0,%xmm7,%xmm7 + vmovdqu 160(%rcx),%xmm0 + vaesdeclast %xmm0,%xmm1,%xmm1 + vaesdeclast %xmm0,%xmm2,%xmm2 + vaesdeclast %xmm0,%xmm3,%xmm3 + vaesdeclast %xmm0,%xmm4,%xmm4 + vaesdeclast %xmm0,%xmm5,%xmm5 + vaesdeclast %xmm0,%xmm6,%xmm6 + vaesdeclast %xmm0,%xmm7,%xmm7 + vpxor %xmm9,%xmm1,%xmm1 + vpxor %xmm10,%xmm2,%xmm2 + vpxor %xmm11,%xmm3,%xmm3 + vpxor %xmm12,%xmm4,%xmm4 + vpxor %xmm13,%xmm5,%xmm5 + vpxor %xmm14,%xmm6,%xmm6 + vpxor %xmm15,%xmm7,%xmm7 + vmovdqu %xmm1,(%rsi) + vmovdqu %xmm2,16(%rsi) + vmovdqu %xmm3,32(%rsi) + vmovdqu %xmm4,48(%rsi) + vmovdqu %xmm5,64(%rsi) + vmovdqu %xmm6,80(%rsi) + addq $0x70,%rsi + vmovdqa %xmm7,%xmm8 + jmp .L_done_amivrujEyduiFoi + +.L_num_blocks_is_6_amivrujEyduiFoi: + vmovdqa 0(%rsp),%xmm9 + movq 0(%rsp),%rax + movq 8(%rsp),%rbx + vmovdqu 0(%rdi),%xmm1 + xorq %r11,%r11 + shlq $1,%rax + adcq %rbx,%rbx + cmovcq %r10,%r11 + xorq %r11,%rax + movq %rax,16(%rsp) + movq %rbx,16 + 8(%rsp) + vmovdqa 16(%rsp),%xmm10 + vmovdqu 16(%rdi),%xmm2 + xorq %r11,%r11 + shlq $1,%rax + adcq %rbx,%rbx + cmovcq %r10,%r11 + xorq %r11,%rax + movq %rax,32(%rsp) + movq %rbx,32 + 8(%rsp) + vmovdqa 32(%rsp),%xmm11 + vmovdqu 32(%rdi),%xmm3 + xorq %r11,%r11 + shlq $1,%rax + adcq %rbx,%rbx + cmovcq %r10,%r11 + xorq %r11,%rax + movq %rax,48(%rsp) + movq %rbx,48 + 8(%rsp) + vmovdqa 48(%rsp),%xmm12 + vmovdqu 48(%rdi),%xmm4 + xorq %r11,%r11 + shlq $1,%rax + adcq %rbx,%rbx + cmovcq %r10,%r11 + xorq %r11,%rax + movq %rax,64(%rsp) + movq %rbx,64 + 8(%rsp) + vmovdqa 64(%rsp),%xmm13 + vmovdqu 64(%rdi),%xmm5 + xorq %r11,%r11 + shlq $1,%rax + adcq %rbx,%rbx + cmovcq %r10,%r11 + xorq %r11,%rax + movq %rax,80(%rsp) + movq %rbx,80 + 8(%rsp) + vmovdqa 80(%rsp),%xmm14 + vmovdqu 80(%rdi),%xmm6 + addq $0x60,%rdi + andq $0xf,%rdx + je .L_done_6_amivrujEyduiFoi + +.L_steal_cipher_6_amivrujEyduiFoi: + xorq %r11,%r11 + shlq $1,%rax + adcq %rbx,%rbx + cmovcq %r10,%r11 + xorq %r11,%rax + movq %rax,16(%rsp) + movq %rbx,24(%rsp) + vmovdqa64 %xmm14,%xmm15 + vmovdqa 16(%rsp),%xmm14 + vpxor %xmm9,%xmm1,%xmm1 + vpxor %xmm10,%xmm2,%xmm2 + vpxor %xmm11,%xmm3,%xmm3 + vpxor %xmm12,%xmm4,%xmm4 + vpxor %xmm13,%xmm5,%xmm5 + vpxor %xmm14,%xmm6,%xmm6 + vmovdqu (%rcx),%xmm0 + vpxor %xmm0,%xmm1,%xmm1 + vpxor %xmm0,%xmm2,%xmm2 + vpxor %xmm0,%xmm3,%xmm3 + vpxor %xmm0,%xmm4,%xmm4 + vpxor %xmm0,%xmm5,%xmm5 + vpxor %xmm0,%xmm6,%xmm6 + vmovdqu 16(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vmovdqu 32(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vmovdqu 48(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vmovdqu 64(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vmovdqu 80(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vmovdqu 96(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vmovdqu 112(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vmovdqu 128(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vmovdqu 144(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vmovdqu 160(%rcx),%xmm0 + vaesdeclast %xmm0,%xmm1,%xmm1 + vaesdeclast %xmm0,%xmm2,%xmm2 + vaesdeclast %xmm0,%xmm3,%xmm3 + vaesdeclast %xmm0,%xmm4,%xmm4 + vaesdeclast %xmm0,%xmm5,%xmm5 + vaesdeclast %xmm0,%xmm6,%xmm6 + vpxor %xmm9,%xmm1,%xmm1 + vpxor %xmm10,%xmm2,%xmm2 + vpxor %xmm11,%xmm3,%xmm3 + vpxor %xmm12,%xmm4,%xmm4 + vpxor %xmm13,%xmm5,%xmm5 + vpxor %xmm14,%xmm6,%xmm6 + vmovdqu %xmm1,(%rsi) + vmovdqu %xmm2,16(%rsi) + vmovdqu %xmm3,32(%rsi) + vmovdqu %xmm4,48(%rsi) + vmovdqu %xmm5,64(%rsi) + addq $0x60,%rsi + vmovdqa %xmm15,%xmm0 + vmovdqa %xmm6,%xmm8 + jmp .L_steal_cipher_amivrujEyduiFoi + +.L_done_6_amivrujEyduiFoi: + vpxor %xmm9,%xmm1,%xmm1 + vpxor %xmm10,%xmm2,%xmm2 + vpxor %xmm11,%xmm3,%xmm3 + vpxor %xmm12,%xmm4,%xmm4 + vpxor %xmm13,%xmm5,%xmm5 + vpxor %xmm14,%xmm6,%xmm6 + vmovdqu (%rcx),%xmm0 + vpxor %xmm0,%xmm1,%xmm1 + vpxor %xmm0,%xmm2,%xmm2 + vpxor %xmm0,%xmm3,%xmm3 + vpxor %xmm0,%xmm4,%xmm4 + vpxor %xmm0,%xmm5,%xmm5 + vpxor %xmm0,%xmm6,%xmm6 + vmovdqu 16(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vmovdqu 32(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vmovdqu 48(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vmovdqu 64(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vmovdqu 80(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vmovdqu 96(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vmovdqu 112(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vmovdqu 128(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vmovdqu 144(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vmovdqu 160(%rcx),%xmm0 + vaesdeclast %xmm0,%xmm1,%xmm1 + vaesdeclast %xmm0,%xmm2,%xmm2 + vaesdeclast %xmm0,%xmm3,%xmm3 + vaesdeclast %xmm0,%xmm4,%xmm4 + vaesdeclast %xmm0,%xmm5,%xmm5 + vaesdeclast %xmm0,%xmm6,%xmm6 + vpxor %xmm9,%xmm1,%xmm1 + vpxor %xmm10,%xmm2,%xmm2 + vpxor %xmm11,%xmm3,%xmm3 + vpxor %xmm12,%xmm4,%xmm4 + vpxor %xmm13,%xmm5,%xmm5 + vpxor %xmm14,%xmm6,%xmm6 + vmovdqu %xmm1,(%rsi) + vmovdqu %xmm2,16(%rsi) + vmovdqu %xmm3,32(%rsi) + vmovdqu %xmm4,48(%rsi) + vmovdqu %xmm5,64(%rsi) + addq $0x60,%rsi + vmovdqa %xmm6,%xmm8 + jmp .L_done_amivrujEyduiFoi + +.L_num_blocks_is_5_amivrujEyduiFoi: + vmovdqa 0(%rsp),%xmm9 + movq 0(%rsp),%rax + movq 8(%rsp),%rbx + vmovdqu 0(%rdi),%xmm1 + xorq %r11,%r11 + shlq $1,%rax + adcq %rbx,%rbx + cmovcq %r10,%r11 + xorq %r11,%rax + movq %rax,16(%rsp) + movq %rbx,16 + 8(%rsp) + vmovdqa 16(%rsp),%xmm10 + vmovdqu 16(%rdi),%xmm2 + xorq %r11,%r11 + shlq $1,%rax + adcq %rbx,%rbx + cmovcq %r10,%r11 + xorq %r11,%rax + movq %rax,32(%rsp) + movq %rbx,32 + 8(%rsp) + vmovdqa 32(%rsp),%xmm11 + vmovdqu 32(%rdi),%xmm3 + xorq %r11,%r11 + shlq $1,%rax + adcq %rbx,%rbx + cmovcq %r10,%r11 + xorq %r11,%rax + movq %rax,48(%rsp) + movq %rbx,48 + 8(%rsp) + vmovdqa 48(%rsp),%xmm12 + vmovdqu 48(%rdi),%xmm4 + xorq %r11,%r11 + shlq $1,%rax + adcq %rbx,%rbx + cmovcq %r10,%r11 + xorq %r11,%rax + movq %rax,64(%rsp) + movq %rbx,64 + 8(%rsp) + vmovdqa 64(%rsp),%xmm13 + vmovdqu 64(%rdi),%xmm5 + addq $0x50,%rdi + andq $0xf,%rdx + je .L_done_5_amivrujEyduiFoi + +.L_steal_cipher_5_amivrujEyduiFoi: + xorq %r11,%r11 + shlq $1,%rax + adcq %rbx,%rbx + cmovcq %r10,%r11 + xorq %r11,%rax + movq %rax,16(%rsp) + movq %rbx,24(%rsp) + vmovdqa64 %xmm13,%xmm14 + vmovdqa 16(%rsp),%xmm13 + vpxor %xmm9,%xmm1,%xmm1 + vpxor %xmm10,%xmm2,%xmm2 + vpxor %xmm11,%xmm3,%xmm3 + vpxor %xmm12,%xmm4,%xmm4 + vpxor %xmm13,%xmm5,%xmm5 + vmovdqu (%rcx),%xmm0 + vpxor %xmm0,%xmm1,%xmm1 + vpxor %xmm0,%xmm2,%xmm2 + vpxor %xmm0,%xmm3,%xmm3 + vpxor %xmm0,%xmm4,%xmm4 + vpxor %xmm0,%xmm5,%xmm5 + vmovdqu 16(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vmovdqu 32(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vmovdqu 48(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vmovdqu 64(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vmovdqu 80(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vmovdqu 96(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vmovdqu 112(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vmovdqu 128(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vmovdqu 144(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vmovdqu 160(%rcx),%xmm0 + vaesdeclast %xmm0,%xmm1,%xmm1 + vaesdeclast %xmm0,%xmm2,%xmm2 + vaesdeclast %xmm0,%xmm3,%xmm3 + vaesdeclast %xmm0,%xmm4,%xmm4 + vaesdeclast %xmm0,%xmm5,%xmm5 + vpxor %xmm9,%xmm1,%xmm1 + vpxor %xmm10,%xmm2,%xmm2 + vpxor %xmm11,%xmm3,%xmm3 + vpxor %xmm12,%xmm4,%xmm4 + vpxor %xmm13,%xmm5,%xmm5 + vmovdqu %xmm1,(%rsi) + vmovdqu %xmm2,16(%rsi) + vmovdqu %xmm3,32(%rsi) + vmovdqu %xmm4,48(%rsi) + addq $0x50,%rsi + vmovdqa %xmm14,%xmm0 + vmovdqa %xmm5,%xmm8 + jmp .L_steal_cipher_amivrujEyduiFoi + +.L_done_5_amivrujEyduiFoi: + vpxor %xmm9,%xmm1,%xmm1 + vpxor %xmm10,%xmm2,%xmm2 + vpxor %xmm11,%xmm3,%xmm3 + vpxor %xmm12,%xmm4,%xmm4 + vpxor %xmm13,%xmm5,%xmm5 + vmovdqu (%rcx),%xmm0 + vpxor %xmm0,%xmm1,%xmm1 + vpxor %xmm0,%xmm2,%xmm2 + vpxor %xmm0,%xmm3,%xmm3 + vpxor %xmm0,%xmm4,%xmm4 + vpxor %xmm0,%xmm5,%xmm5 + vmovdqu 16(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vmovdqu 32(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vmovdqu 48(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vmovdqu 64(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vmovdqu 80(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vmovdqu 96(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vmovdqu 112(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vmovdqu 128(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vmovdqu 144(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vmovdqu 160(%rcx),%xmm0 + vaesdeclast %xmm0,%xmm1,%xmm1 + vaesdeclast %xmm0,%xmm2,%xmm2 + vaesdeclast %xmm0,%xmm3,%xmm3 + vaesdeclast %xmm0,%xmm4,%xmm4 + vaesdeclast %xmm0,%xmm5,%xmm5 + vpxor %xmm9,%xmm1,%xmm1 + vpxor %xmm10,%xmm2,%xmm2 + vpxor %xmm11,%xmm3,%xmm3 + vpxor %xmm12,%xmm4,%xmm4 + vpxor %xmm13,%xmm5,%xmm5 + vmovdqu %xmm1,(%rsi) + vmovdqu %xmm2,16(%rsi) + vmovdqu %xmm3,32(%rsi) + vmovdqu %xmm4,48(%rsi) + addq $0x50,%rsi + vmovdqa %xmm5,%xmm8 + jmp .L_done_amivrujEyduiFoi + +.L_num_blocks_is_4_amivrujEyduiFoi: + vmovdqa 0(%rsp),%xmm9 + movq 0(%rsp),%rax + movq 8(%rsp),%rbx + vmovdqu 0(%rdi),%xmm1 + xorq %r11,%r11 + shlq $1,%rax + adcq %rbx,%rbx + cmovcq %r10,%r11 + xorq %r11,%rax + movq %rax,16(%rsp) + movq %rbx,16 + 8(%rsp) + vmovdqa 16(%rsp),%xmm10 + vmovdqu 16(%rdi),%xmm2 + xorq %r11,%r11 + shlq $1,%rax + adcq %rbx,%rbx + cmovcq %r10,%r11 + xorq %r11,%rax + movq %rax,32(%rsp) + movq %rbx,32 + 8(%rsp) + vmovdqa 32(%rsp),%xmm11 + vmovdqu 32(%rdi),%xmm3 + xorq %r11,%r11 + shlq $1,%rax + adcq %rbx,%rbx + cmovcq %r10,%r11 + xorq %r11,%rax + movq %rax,48(%rsp) + movq %rbx,48 + 8(%rsp) + vmovdqa 48(%rsp),%xmm12 + vmovdqu 48(%rdi),%xmm4 + addq $0x40,%rdi + andq $0xf,%rdx + je .L_done_4_amivrujEyduiFoi + +.L_steal_cipher_4_amivrujEyduiFoi: + xorq %r11,%r11 + shlq $1,%rax + adcq %rbx,%rbx + cmovcq %r10,%r11 + xorq %r11,%rax + movq %rax,16(%rsp) + movq %rbx,24(%rsp) + vmovdqa64 %xmm12,%xmm13 + vmovdqa 16(%rsp),%xmm12 + vpxor %xmm9,%xmm1,%xmm1 + vpxor %xmm10,%xmm2,%xmm2 + vpxor %xmm11,%xmm3,%xmm3 + vpxor %xmm12,%xmm4,%xmm4 + vmovdqu (%rcx),%xmm0 + vpxor %xmm0,%xmm1,%xmm1 + vpxor %xmm0,%xmm2,%xmm2 + vpxor %xmm0,%xmm3,%xmm3 + vpxor %xmm0,%xmm4,%xmm4 + vmovdqu 16(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vmovdqu 32(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vmovdqu 48(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vmovdqu 64(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vmovdqu 80(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vmovdqu 96(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vmovdqu 112(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vmovdqu 128(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vmovdqu 144(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vmovdqu 160(%rcx),%xmm0 + vaesdeclast %xmm0,%xmm1,%xmm1 + vaesdeclast %xmm0,%xmm2,%xmm2 + vaesdeclast %xmm0,%xmm3,%xmm3 + vaesdeclast %xmm0,%xmm4,%xmm4 + vpxor %xmm9,%xmm1,%xmm1 + vpxor %xmm10,%xmm2,%xmm2 + vpxor %xmm11,%xmm3,%xmm3 + vpxor %xmm12,%xmm4,%xmm4 + vmovdqu %xmm1,(%rsi) + vmovdqu %xmm2,16(%rsi) + vmovdqu %xmm3,32(%rsi) + addq $0x40,%rsi + vmovdqa %xmm13,%xmm0 + vmovdqa %xmm4,%xmm8 + jmp .L_steal_cipher_amivrujEyduiFoi + +.L_done_4_amivrujEyduiFoi: + vpxor %xmm9,%xmm1,%xmm1 + vpxor %xmm10,%xmm2,%xmm2 + vpxor %xmm11,%xmm3,%xmm3 + vpxor %xmm12,%xmm4,%xmm4 + vmovdqu (%rcx),%xmm0 + vpxor %xmm0,%xmm1,%xmm1 + vpxor %xmm0,%xmm2,%xmm2 + vpxor %xmm0,%xmm3,%xmm3 + vpxor %xmm0,%xmm4,%xmm4 + vmovdqu 16(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vmovdqu 32(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vmovdqu 48(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vmovdqu 64(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vmovdqu 80(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vmovdqu 96(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vmovdqu 112(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vmovdqu 128(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vmovdqu 144(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vmovdqu 160(%rcx),%xmm0 + vaesdeclast %xmm0,%xmm1,%xmm1 + vaesdeclast %xmm0,%xmm2,%xmm2 + vaesdeclast %xmm0,%xmm3,%xmm3 + vaesdeclast %xmm0,%xmm4,%xmm4 + vpxor %xmm9,%xmm1,%xmm1 + vpxor %xmm10,%xmm2,%xmm2 + vpxor %xmm11,%xmm3,%xmm3 + vpxor %xmm12,%xmm4,%xmm4 + vmovdqu %xmm1,(%rsi) + vmovdqu %xmm2,16(%rsi) + vmovdqu %xmm3,32(%rsi) + addq $0x40,%rsi + vmovdqa %xmm4,%xmm8 + jmp .L_done_amivrujEyduiFoi + +.L_num_blocks_is_3_amivrujEyduiFoi: + vmovdqa 0(%rsp),%xmm9 + movq 0(%rsp),%rax + movq 8(%rsp),%rbx + vmovdqu 0(%rdi),%xmm1 + xorq %r11,%r11 + shlq $1,%rax + adcq %rbx,%rbx + cmovcq %r10,%r11 + xorq %r11,%rax + movq %rax,16(%rsp) + movq %rbx,16 + 8(%rsp) + vmovdqa 16(%rsp),%xmm10 + vmovdqu 16(%rdi),%xmm2 + xorq %r11,%r11 + shlq $1,%rax + adcq %rbx,%rbx + cmovcq %r10,%r11 + xorq %r11,%rax + movq %rax,32(%rsp) + movq %rbx,32 + 8(%rsp) + vmovdqa 32(%rsp),%xmm11 + vmovdqu 32(%rdi),%xmm3 + addq $0x30,%rdi + andq $0xf,%rdx + je .L_done_3_amivrujEyduiFoi + +.L_steal_cipher_3_amivrujEyduiFoi: + xorq %r11,%r11 + shlq $1,%rax + adcq %rbx,%rbx + cmovcq %r10,%r11 + xorq %r11,%rax + movq %rax,16(%rsp) + movq %rbx,24(%rsp) + vmovdqa64 %xmm11,%xmm12 + vmovdqa 16(%rsp),%xmm11 + vpxor %xmm9,%xmm1,%xmm1 + vpxor %xmm10,%xmm2,%xmm2 + vpxor %xmm11,%xmm3,%xmm3 + vmovdqu (%rcx),%xmm0 + vpxor %xmm0,%xmm1,%xmm1 + vpxor %xmm0,%xmm2,%xmm2 + vpxor %xmm0,%xmm3,%xmm3 + vmovdqu 16(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 32(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 48(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 64(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 80(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 96(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 112(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 128(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 144(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 160(%rcx),%xmm0 + vaesdeclast %xmm0,%xmm1,%xmm1 + vaesdeclast %xmm0,%xmm2,%xmm2 + vaesdeclast %xmm0,%xmm3,%xmm3 + vpxor %xmm9,%xmm1,%xmm1 + vpxor %xmm10,%xmm2,%xmm2 + vpxor %xmm11,%xmm3,%xmm3 + vmovdqu %xmm1,(%rsi) + vmovdqu %xmm2,16(%rsi) + addq $0x30,%rsi + vmovdqa %xmm12,%xmm0 + vmovdqa %xmm3,%xmm8 + jmp .L_steal_cipher_amivrujEyduiFoi + +.L_done_3_amivrujEyduiFoi: + vpxor %xmm9,%xmm1,%xmm1 + vpxor %xmm10,%xmm2,%xmm2 + vpxor %xmm11,%xmm3,%xmm3 + vmovdqu (%rcx),%xmm0 + vpxor %xmm0,%xmm1,%xmm1 + vpxor %xmm0,%xmm2,%xmm2 + vpxor %xmm0,%xmm3,%xmm3 + vmovdqu 16(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 32(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 48(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 64(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 80(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 96(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 112(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 128(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 144(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 160(%rcx),%xmm0 + vaesdeclast %xmm0,%xmm1,%xmm1 + vaesdeclast %xmm0,%xmm2,%xmm2 + vaesdeclast %xmm0,%xmm3,%xmm3 + vpxor %xmm9,%xmm1,%xmm1 + vpxor %xmm10,%xmm2,%xmm2 + vpxor %xmm11,%xmm3,%xmm3 + vmovdqu %xmm1,(%rsi) + vmovdqu %xmm2,16(%rsi) + addq $0x30,%rsi + vmovdqa %xmm3,%xmm8 + jmp .L_done_amivrujEyduiFoi + +.L_num_blocks_is_2_amivrujEyduiFoi: + vmovdqa 0(%rsp),%xmm9 + movq 0(%rsp),%rax + movq 8(%rsp),%rbx + vmovdqu 0(%rdi),%xmm1 + xorq %r11,%r11 + shlq $1,%rax + adcq %rbx,%rbx + cmovcq %r10,%r11 + xorq %r11,%rax + movq %rax,16(%rsp) + movq %rbx,16 + 8(%rsp) + vmovdqa 16(%rsp),%xmm10 + vmovdqu 16(%rdi),%xmm2 + addq $0x20,%rdi + andq $0xf,%rdx + je .L_done_2_amivrujEyduiFoi + +.L_steal_cipher_2_amivrujEyduiFoi: + xorq %r11,%r11 + shlq $1,%rax + adcq %rbx,%rbx + cmovcq %r10,%r11 + xorq %r11,%rax + movq %rax,16(%rsp) + movq %rbx,24(%rsp) + vmovdqa64 %xmm10,%xmm11 + vmovdqa 16(%rsp),%xmm10 + vpxor %xmm9,%xmm1,%xmm1 + vpxor %xmm10,%xmm2,%xmm2 + vmovdqu (%rcx),%xmm0 + vpxor %xmm0,%xmm1,%xmm1 + vpxor %xmm0,%xmm2,%xmm2 + vmovdqu 16(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 32(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 48(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 64(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 80(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 96(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 112(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 128(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 144(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 160(%rcx),%xmm0 + vaesdeclast %xmm0,%xmm1,%xmm1 + vaesdeclast %xmm0,%xmm2,%xmm2 + vpxor %xmm9,%xmm1,%xmm1 + vpxor %xmm10,%xmm2,%xmm2 + vmovdqu %xmm1,(%rsi) + addq $0x20,%rsi + vmovdqa %xmm11,%xmm0 + vmovdqa %xmm2,%xmm8 + jmp .L_steal_cipher_amivrujEyduiFoi + +.L_done_2_amivrujEyduiFoi: + vpxor %xmm9,%xmm1,%xmm1 + vpxor %xmm10,%xmm2,%xmm2 + vmovdqu (%rcx),%xmm0 + vpxor %xmm0,%xmm1,%xmm1 + vpxor %xmm0,%xmm2,%xmm2 + vmovdqu 16(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 32(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 48(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 64(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 80(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 96(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 112(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 128(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 144(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 160(%rcx),%xmm0 + vaesdeclast %xmm0,%xmm1,%xmm1 + vaesdeclast %xmm0,%xmm2,%xmm2 + vpxor %xmm9,%xmm1,%xmm1 + vpxor %xmm10,%xmm2,%xmm2 + vmovdqu %xmm1,(%rsi) + addq $0x20,%rsi + vmovdqa %xmm2,%xmm8 + jmp .L_done_amivrujEyduiFoi + +.L_num_blocks_is_1_amivrujEyduiFoi: + vmovdqa 0(%rsp),%xmm9 + movq 0(%rsp),%rax + movq 8(%rsp),%rbx + vmovdqu 0(%rdi),%xmm1 + addq $0x10,%rdi + andq $0xf,%rdx + je .L_done_1_amivrujEyduiFoi + +.L_steal_cipher_1_amivrujEyduiFoi: + xorq %r11,%r11 + shlq $1,%rax + adcq %rbx,%rbx + cmovcq %r10,%r11 + xorq %r11,%rax + movq %rax,16(%rsp) + movq %rbx,24(%rsp) + vmovdqa64 %xmm9,%xmm10 + vmovdqa 16(%rsp),%xmm9 + vpxor %xmm9,%xmm1,%xmm1 + vmovdqu (%rcx),%xmm0 + vpxor %xmm0,%xmm1,%xmm1 + vmovdqu 16(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 32(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 48(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 64(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 80(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 96(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 112(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 128(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 144(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 160(%rcx),%xmm0 + vaesdeclast %xmm0,%xmm1,%xmm1 + vpxor %xmm9,%xmm1,%xmm1 + addq $0x10,%rsi + vmovdqa %xmm10,%xmm0 + vmovdqa %xmm1,%xmm8 + jmp .L_steal_cipher_amivrujEyduiFoi + +.L_done_1_amivrujEyduiFoi: + vpxor %xmm9,%xmm1,%xmm1 + vmovdqu (%rcx),%xmm0 + vpxor %xmm0,%xmm1,%xmm1 + vmovdqu 16(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 32(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 48(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 64(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 80(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 96(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 112(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 128(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 144(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 160(%rcx),%xmm0 + vaesdeclast %xmm0,%xmm1,%xmm1 + vpxor %xmm9,%xmm1,%xmm1 + addq $0x10,%rsi + vmovdqa %xmm1,%xmm8 + jmp .L_done_amivrujEyduiFoi +.cfi_endproc +.globl aesni_xts_256_encrypt_avx512 +.hidden aesni_xts_256_encrypt_avx512 +.type aesni_xts_256_encrypt_avx512,@function +.align 32 +aesni_xts_256_encrypt_avx512: +.cfi_startproc +.byte 243,15,30,250 + pushq %rbp + movq %rsp,%rbp + subq $136,%rsp + andq $0xffffffffffffffc0,%rsp + movq %rbx,128(%rsp) + movq $0x87,%r10 + vmovdqu (%r9),%xmm1 + vpxor (%r8),%xmm1,%xmm1 + vaesenc 16(%r8),%xmm1,%xmm1 + vaesenc 32(%r8),%xmm1,%xmm1 + vaesenc 48(%r8),%xmm1,%xmm1 + vaesenc 64(%r8),%xmm1,%xmm1 + vaesenc 80(%r8),%xmm1,%xmm1 + vaesenc 96(%r8),%xmm1,%xmm1 + vaesenc 112(%r8),%xmm1,%xmm1 + vaesenc 128(%r8),%xmm1,%xmm1 + vaesenc 144(%r8),%xmm1,%xmm1 + vaesenc 160(%r8),%xmm1,%xmm1 + vaesenc 176(%r8),%xmm1,%xmm1 + vaesenc 192(%r8),%xmm1,%xmm1 + vaesenc 208(%r8),%xmm1,%xmm1 + vaesenclast 224(%r8),%xmm1,%xmm1 + vmovdqa %xmm1,(%rsp) + + cmpq $0x80,%rdx + jl .L_less_than_128_bytes_wcpqaDvsGlbjGoe + vpbroadcastq %r10,%zmm25 + cmpq $0x100,%rdx + jge .L_start_by16_wcpqaDvsGlbjGoe + cmpq $0x80,%rdx + jge .L_start_by8_wcpqaDvsGlbjGoe + +.L_do_n_blocks_wcpqaDvsGlbjGoe: + cmpq $0x0,%rdx + je .L_ret_wcpqaDvsGlbjGoe + cmpq $0x70,%rdx + jge .L_remaining_num_blocks_is_7_wcpqaDvsGlbjGoe + cmpq $0x60,%rdx + jge .L_remaining_num_blocks_is_6_wcpqaDvsGlbjGoe + cmpq $0x50,%rdx + jge .L_remaining_num_blocks_is_5_wcpqaDvsGlbjGoe + cmpq $0x40,%rdx + jge .L_remaining_num_blocks_is_4_wcpqaDvsGlbjGoe + cmpq $0x30,%rdx + jge .L_remaining_num_blocks_is_3_wcpqaDvsGlbjGoe + cmpq $0x20,%rdx + jge .L_remaining_num_blocks_is_2_wcpqaDvsGlbjGoe + cmpq $0x10,%rdx + jge .L_remaining_num_blocks_is_1_wcpqaDvsGlbjGoe + vmovdqa %xmm0,%xmm8 + vmovdqa %xmm9,%xmm0 + jmp .L_steal_cipher_wcpqaDvsGlbjGoe + +.L_remaining_num_blocks_is_7_wcpqaDvsGlbjGoe: + movq $0x0000ffffffffffff,%r8 + kmovq %r8,%k1 + vmovdqu8 (%rdi),%zmm1 + vmovdqu8 64(%rdi),%zmm2{%k1} + addq $0x70,%rdi + vbroadcasti32x4 (%rcx),%zmm0 + vpternlogq $0x96,%zmm0,%zmm9,%zmm1 + vpternlogq $0x96,%zmm0,%zmm10,%zmm2 + vbroadcasti32x4 16(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 32(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 48(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + vbroadcasti32x4 64(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 80(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 96(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 112(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 128(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 144(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + vbroadcasti32x4 160(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 176(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 192(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 208(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 224(%rcx),%zmm0 + vaesenclast %zmm0,%zmm1,%zmm1 + vaesenclast %zmm0,%zmm2,%zmm2 + vpxorq %zmm9,%zmm1,%zmm1 + vpxorq %zmm10,%zmm2,%zmm2 + vmovdqu8 %zmm1,(%rsi) + vmovdqu8 %zmm2,64(%rsi){%k1} + addq $0x70,%rsi + vextracti32x4 $0x2,%zmm2,%xmm8 + vextracti32x4 $0x3,%zmm10,%xmm0 + andq $0xf,%rdx + je .L_ret_wcpqaDvsGlbjGoe + jmp .L_steal_cipher_wcpqaDvsGlbjGoe + +.L_remaining_num_blocks_is_6_wcpqaDvsGlbjGoe: + vmovdqu8 (%rdi),%zmm1 + vmovdqu8 64(%rdi),%ymm2 + addq $0x60,%rdi + vbroadcasti32x4 (%rcx),%zmm0 + vpternlogq $0x96,%zmm0,%zmm9,%zmm1 + vpternlogq $0x96,%zmm0,%zmm10,%zmm2 + vbroadcasti32x4 16(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 32(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 48(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + vbroadcasti32x4 64(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 80(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 96(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 112(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 128(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 144(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + vbroadcasti32x4 160(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 176(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 192(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 208(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 224(%rcx),%zmm0 + vaesenclast %zmm0,%zmm1,%zmm1 + vaesenclast %zmm0,%zmm2,%zmm2 + vpxorq %zmm9,%zmm1,%zmm1 + vpxorq %zmm10,%zmm2,%zmm2 + vmovdqu8 %zmm1,(%rsi) + vmovdqu8 %ymm2,64(%rsi) + addq $0x60,%rsi + vextracti32x4 $0x1,%zmm2,%xmm8 + vextracti32x4 $0x2,%zmm10,%xmm0 + andq $0xf,%rdx + je .L_ret_wcpqaDvsGlbjGoe + jmp .L_steal_cipher_wcpqaDvsGlbjGoe + +.L_remaining_num_blocks_is_5_wcpqaDvsGlbjGoe: + vmovdqu8 (%rdi),%zmm1 + vmovdqu 64(%rdi),%xmm2 + addq $0x50,%rdi + vbroadcasti32x4 (%rcx),%zmm0 + vpternlogq $0x96,%zmm0,%zmm9,%zmm1 + vpternlogq $0x96,%zmm0,%zmm10,%zmm2 + vbroadcasti32x4 16(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 32(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 48(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + vbroadcasti32x4 64(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 80(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 96(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 112(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 128(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 144(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + vbroadcasti32x4 160(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 176(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 192(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 208(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 224(%rcx),%zmm0 + vaesenclast %zmm0,%zmm1,%zmm1 + vaesenclast %zmm0,%zmm2,%zmm2 + vpxorq %zmm9,%zmm1,%zmm1 + vpxorq %zmm10,%zmm2,%zmm2 + vmovdqu8 %zmm1,(%rsi) + vmovdqu %xmm2,64(%rsi) + addq $0x50,%rsi + vmovdqa %xmm2,%xmm8 + vextracti32x4 $0x1,%zmm10,%xmm0 + andq $0xf,%rdx + je .L_ret_wcpqaDvsGlbjGoe + jmp .L_steal_cipher_wcpqaDvsGlbjGoe + +.L_remaining_num_blocks_is_4_wcpqaDvsGlbjGoe: + vmovdqu8 (%rdi),%zmm1 + addq $0x40,%rdi + vbroadcasti32x4 (%rcx),%zmm0 + vpternlogq $0x96,%zmm0,%zmm9,%zmm1 + vbroadcasti32x4 16(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 32(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 48(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 64(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 80(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 96(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 112(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 128(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 144(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 160(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 176(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 192(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 208(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 224(%rcx),%zmm0 + vaesenclast %zmm0,%zmm1,%zmm1 + vpxorq %zmm9,%zmm1,%zmm1 + vmovdqu8 %zmm1,(%rsi) + addq $0x40,%rsi + vextracti32x4 $0x3,%zmm1,%xmm8 + vmovdqa64 %xmm10,%xmm0 + andq $0xf,%rdx + je .L_ret_wcpqaDvsGlbjGoe + jmp .L_steal_cipher_wcpqaDvsGlbjGoe +.L_remaining_num_blocks_is_3_wcpqaDvsGlbjGoe: + movq $-1,%r8 + shrq $0x10,%r8 + kmovq %r8,%k1 + vmovdqu8 (%rdi),%zmm1{%k1} + addq $0x30,%rdi + vbroadcasti32x4 (%rcx),%zmm0 + vpternlogq $0x96,%zmm0,%zmm9,%zmm1 + vbroadcasti32x4 16(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 32(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 48(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 64(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 80(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 96(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 112(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 128(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 144(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 160(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 176(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 192(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 208(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 224(%rcx),%zmm0 + vaesenclast %zmm0,%zmm1,%zmm1 + vpxorq %zmm9,%zmm1,%zmm1 + vmovdqu8 %zmm1,(%rsi){%k1} + addq $0x30,%rsi + vextracti32x4 $0x2,%zmm1,%xmm8 + vextracti32x4 $0x3,%zmm9,%xmm0 + andq $0xf,%rdx + je .L_ret_wcpqaDvsGlbjGoe + jmp .L_steal_cipher_wcpqaDvsGlbjGoe +.L_remaining_num_blocks_is_2_wcpqaDvsGlbjGoe: + vmovdqu8 (%rdi),%ymm1 + addq $0x20,%rdi + vbroadcasti32x4 (%rcx),%ymm0 + vpternlogq $0x96,%ymm0,%ymm9,%ymm1 + vbroadcasti32x4 16(%rcx),%ymm0 + vaesenc %ymm0,%ymm1,%ymm1 + vbroadcasti32x4 32(%rcx),%ymm0 + vaesenc %ymm0,%ymm1,%ymm1 + vbroadcasti32x4 48(%rcx),%ymm0 + vaesenc %ymm0,%ymm1,%ymm1 + vbroadcasti32x4 64(%rcx),%ymm0 + vaesenc %ymm0,%ymm1,%ymm1 + vbroadcasti32x4 80(%rcx),%ymm0 + vaesenc %ymm0,%ymm1,%ymm1 + vbroadcasti32x4 96(%rcx),%ymm0 + vaesenc %ymm0,%ymm1,%ymm1 + vbroadcasti32x4 112(%rcx),%ymm0 + vaesenc %ymm0,%ymm1,%ymm1 + vbroadcasti32x4 128(%rcx),%ymm0 + vaesenc %ymm0,%ymm1,%ymm1 + vbroadcasti32x4 144(%rcx),%ymm0 + vaesenc %ymm0,%ymm1,%ymm1 + vbroadcasti32x4 160(%rcx),%ymm0 + vaesenc %ymm0,%ymm1,%ymm1 + vbroadcasti32x4 176(%rcx),%ymm0 + vaesenc %ymm0,%ymm1,%ymm1 + vbroadcasti32x4 192(%rcx),%ymm0 + vaesenc %ymm0,%ymm1,%ymm1 + vbroadcasti32x4 208(%rcx),%ymm0 + vaesenc %ymm0,%ymm1,%ymm1 + vbroadcasti32x4 224(%rcx),%ymm0 + vaesenclast %ymm0,%ymm1,%ymm1 + vpxorq %ymm9,%ymm1,%ymm1 + vmovdqu %ymm1,(%rsi) + addq $0x20,%rsi + vextracti32x4 $0x1,%zmm1,%xmm8 + vextracti32x4 $0x2,%zmm9,%xmm0 + andq $0xf,%rdx + je .L_ret_wcpqaDvsGlbjGoe + jmp .L_steal_cipher_wcpqaDvsGlbjGoe +.L_remaining_num_blocks_is_1_wcpqaDvsGlbjGoe: + vmovdqu (%rdi),%xmm1 + addq $0x10,%rdi + vpxor %xmm9,%xmm1,%xmm1 + vpxor (%rcx),%xmm1,%xmm1 + vaesenc 16(%rcx),%xmm1,%xmm1 + vaesenc 32(%rcx),%xmm1,%xmm1 + vaesenc 48(%rcx),%xmm1,%xmm1 + vaesenc 64(%rcx),%xmm1,%xmm1 + vaesenc 80(%rcx),%xmm1,%xmm1 + vaesenc 96(%rcx),%xmm1,%xmm1 + vaesenc 112(%rcx),%xmm1,%xmm1 + vaesenc 128(%rcx),%xmm1,%xmm1 + vaesenc 144(%rcx),%xmm1,%xmm1 + vaesenc 160(%rcx),%xmm1,%xmm1 + vaesenc 176(%rcx),%xmm1,%xmm1 + vaesenc 192(%rcx),%xmm1,%xmm1 + vaesenc 208(%rcx),%xmm1,%xmm1 + vaesenclast 224(%rcx),%xmm1,%xmm1 + vpxor %xmm9,%xmm1,%xmm1 + vmovdqu %xmm1,(%rsi) + addq $0x10,%rsi + vmovdqa %xmm1,%xmm8 + vextracti32x4 $0x1,%zmm9,%xmm0 + andq $0xf,%rdx + je .L_ret_wcpqaDvsGlbjGoe + jmp .L_steal_cipher_wcpqaDvsGlbjGoe + + +.L_start_by16_wcpqaDvsGlbjGoe: + vbroadcasti32x4 (%rsp),%zmm0 + vbroadcasti32x4 shufb_15_7(%rip),%zmm8 + movq $0xaa,%r8 + kmovq %r8,%k2 + vpshufb %zmm8,%zmm0,%zmm1 + vpsllvq const_dq3210(%rip),%zmm0,%zmm4 + vpsrlvq const_dq5678(%rip),%zmm1,%zmm2 + vpclmulqdq $0x0,%zmm25,%zmm2,%zmm3 + vpxorq %zmm2,%zmm4,%zmm4{%k2} + vpxord %zmm4,%zmm3,%zmm9 + vpsllvq const_dq7654(%rip),%zmm0,%zmm5 + vpsrlvq const_dq1234(%rip),%zmm1,%zmm6 + vpclmulqdq $0x0,%zmm25,%zmm6,%zmm7 + vpxorq %zmm6,%zmm5,%zmm5{%k2} + vpxord %zmm5,%zmm7,%zmm10 + vpsrldq $0xf,%zmm9,%zmm13 + vpclmulqdq $0x0,%zmm25,%zmm13,%zmm14 + vpslldq $0x1,%zmm9,%zmm11 + vpxord %zmm14,%zmm11,%zmm11 + vpsrldq $0xf,%zmm10,%zmm15 + vpclmulqdq $0x0,%zmm25,%zmm15,%zmm16 + vpslldq $0x1,%zmm10,%zmm12 + vpxord %zmm16,%zmm12,%zmm12 + +.L_main_loop_run_16_wcpqaDvsGlbjGoe: + vmovdqu8 (%rdi),%zmm1 + vmovdqu8 64(%rdi),%zmm2 + vmovdqu8 128(%rdi),%zmm3 + vmovdqu8 192(%rdi),%zmm4 + addq $0x100,%rdi + vpxorq %zmm9,%zmm1,%zmm1 + vpxorq %zmm10,%zmm2,%zmm2 + vpxorq %zmm11,%zmm3,%zmm3 + vpxorq %zmm12,%zmm4,%zmm4 + vbroadcasti32x4 (%rcx),%zmm0 + vpxorq %zmm0,%zmm1,%zmm1 + vpxorq %zmm0,%zmm2,%zmm2 + vpxorq %zmm0,%zmm3,%zmm3 + vpxorq %zmm0,%zmm4,%zmm4 + vpsrldq $0xf,%zmm11,%zmm13 + vpclmulqdq $0x0,%zmm25,%zmm13,%zmm14 + vpslldq $0x1,%zmm11,%zmm15 + vpxord %zmm14,%zmm15,%zmm15 + vbroadcasti32x4 16(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + vaesenc %zmm0,%zmm3,%zmm3 + vaesenc %zmm0,%zmm4,%zmm4 + vbroadcasti32x4 32(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + vaesenc %zmm0,%zmm3,%zmm3 + vaesenc %zmm0,%zmm4,%zmm4 + vbroadcasti32x4 48(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + vaesenc %zmm0,%zmm3,%zmm3 + vaesenc %zmm0,%zmm4,%zmm4 + vpsrldq $0xf,%zmm12,%zmm13 + vpclmulqdq $0x0,%zmm25,%zmm13,%zmm14 + vpslldq $0x1,%zmm12,%zmm16 + vpxord %zmm14,%zmm16,%zmm16 + vbroadcasti32x4 64(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + vaesenc %zmm0,%zmm3,%zmm3 + vaesenc %zmm0,%zmm4,%zmm4 + vbroadcasti32x4 80(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + vaesenc %zmm0,%zmm3,%zmm3 + vaesenc %zmm0,%zmm4,%zmm4 + vbroadcasti32x4 96(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + vaesenc %zmm0,%zmm3,%zmm3 + vaesenc %zmm0,%zmm4,%zmm4 + vpsrldq $0xf,%zmm15,%zmm13 + vpclmulqdq $0x0,%zmm25,%zmm13,%zmm14 + vpslldq $0x1,%zmm15,%zmm17 + vpxord %zmm14,%zmm17,%zmm17 + vbroadcasti32x4 112(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + vaesenc %zmm0,%zmm3,%zmm3 + vaesenc %zmm0,%zmm4,%zmm4 + vbroadcasti32x4 128(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + vaesenc %zmm0,%zmm3,%zmm3 + vaesenc %zmm0,%zmm4,%zmm4 + vbroadcasti32x4 144(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + vaesenc %zmm0,%zmm3,%zmm3 + vaesenc %zmm0,%zmm4,%zmm4 + vpsrldq $0xf,%zmm16,%zmm13 + vpclmulqdq $0x0,%zmm25,%zmm13,%zmm14 + vpslldq $0x1,%zmm16,%zmm18 + vpxord %zmm14,%zmm18,%zmm18 + vbroadcasti32x4 160(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + vaesenc %zmm0,%zmm3,%zmm3 + vaesenc %zmm0,%zmm4,%zmm4 + vbroadcasti32x4 176(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + vaesenc %zmm0,%zmm3,%zmm3 + vaesenc %zmm0,%zmm4,%zmm4 + vbroadcasti32x4 192(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + vaesenc %zmm0,%zmm3,%zmm3 + vaesenc %zmm0,%zmm4,%zmm4 + vbroadcasti32x4 208(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + vaesenc %zmm0,%zmm3,%zmm3 + vaesenc %zmm0,%zmm4,%zmm4 + vbroadcasti32x4 224(%rcx),%zmm0 + vaesenclast %zmm0,%zmm1,%zmm1 + vaesenclast %zmm0,%zmm2,%zmm2 + vaesenclast %zmm0,%zmm3,%zmm3 + vaesenclast %zmm0,%zmm4,%zmm4 + vpxorq %zmm9,%zmm1,%zmm1 + vpxorq %zmm10,%zmm2,%zmm2 + vpxorq %zmm11,%zmm3,%zmm3 + vpxorq %zmm12,%zmm4,%zmm4 + + vmovdqa32 %zmm15,%zmm9 + vmovdqa32 %zmm16,%zmm10 + vmovdqa32 %zmm17,%zmm11 + vmovdqa32 %zmm18,%zmm12 + vmovdqu8 %zmm1,(%rsi) + vmovdqu8 %zmm2,64(%rsi) + vmovdqu8 %zmm3,128(%rsi) + vmovdqu8 %zmm4,192(%rsi) + addq $0x100,%rsi + subq $0x100,%rdx + cmpq $0x100,%rdx + jae .L_main_loop_run_16_wcpqaDvsGlbjGoe + cmpq $0x80,%rdx + jae .L_main_loop_run_8_wcpqaDvsGlbjGoe + vextracti32x4 $0x3,%zmm4,%xmm0 + jmp .L_do_n_blocks_wcpqaDvsGlbjGoe + +.L_start_by8_wcpqaDvsGlbjGoe: + vbroadcasti32x4 (%rsp),%zmm0 + vbroadcasti32x4 shufb_15_7(%rip),%zmm8 + movq $0xaa,%r8 + kmovq %r8,%k2 + vpshufb %zmm8,%zmm0,%zmm1 + vpsllvq const_dq3210(%rip),%zmm0,%zmm4 + vpsrlvq const_dq5678(%rip),%zmm1,%zmm2 + vpclmulqdq $0x0,%zmm25,%zmm2,%zmm3 + vpxorq %zmm2,%zmm4,%zmm4{%k2} + vpxord %zmm4,%zmm3,%zmm9 + vpsllvq const_dq7654(%rip),%zmm0,%zmm5 + vpsrlvq const_dq1234(%rip),%zmm1,%zmm6 + vpclmulqdq $0x0,%zmm25,%zmm6,%zmm7 + vpxorq %zmm6,%zmm5,%zmm5{%k2} + vpxord %zmm5,%zmm7,%zmm10 + +.L_main_loop_run_8_wcpqaDvsGlbjGoe: + vmovdqu8 (%rdi),%zmm1 + vmovdqu8 64(%rdi),%zmm2 + addq $0x80,%rdi + vbroadcasti32x4 (%rcx),%zmm0 + vpternlogq $0x96,%zmm0,%zmm9,%zmm1 + vpternlogq $0x96,%zmm0,%zmm10,%zmm2 + vpsrldq $0xf,%zmm9,%zmm13 + vpclmulqdq $0x0,%zmm25,%zmm13,%zmm14 + vpslldq $0x1,%zmm9,%zmm15 + vpxord %zmm14,%zmm15,%zmm15 + vbroadcasti32x4 16(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 32(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 48(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + vpsrldq $0xf,%zmm10,%zmm13 + vpclmulqdq $0x0,%zmm25,%zmm13,%zmm14 + vpslldq $0x1,%zmm10,%zmm16 + vpxord %zmm14,%zmm16,%zmm16 + + vbroadcasti32x4 64(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 80(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 96(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 112(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 128(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 144(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + vbroadcasti32x4 160(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 176(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 192(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 208(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 224(%rcx),%zmm0 + vaesenclast %zmm0,%zmm1,%zmm1 + vaesenclast %zmm0,%zmm2,%zmm2 + vpxorq %zmm9,%zmm1,%zmm1 + vpxorq %zmm10,%zmm2,%zmm2 + vmovdqa32 %zmm15,%zmm9 + vmovdqa32 %zmm16,%zmm10 + vmovdqu8 %zmm1,(%rsi) + vmovdqu8 %zmm2,64(%rsi) + addq $0x80,%rsi + subq $0x80,%rdx + cmpq $0x80,%rdx + jae .L_main_loop_run_8_wcpqaDvsGlbjGoe + vextracti32x4 $0x3,%zmm2,%xmm0 + jmp .L_do_n_blocks_wcpqaDvsGlbjGoe + +.L_steal_cipher_wcpqaDvsGlbjGoe: + vmovdqa %xmm8,%xmm2 + leaq vpshufb_shf_table(%rip),%rax + vmovdqu (%rax,%rdx,1),%xmm10 + vpshufb %xmm10,%xmm8,%xmm8 + vmovdqu -16(%rdi,%rdx,1),%xmm3 + vmovdqu %xmm8,-16(%rsi,%rdx,1) + leaq vpshufb_shf_table(%rip),%rax + addq $16,%rax + subq %rdx,%rax + vmovdqu (%rax),%xmm10 + vpxor mask1(%rip),%xmm10,%xmm10 + vpshufb %xmm10,%xmm3,%xmm3 + vpblendvb %xmm10,%xmm2,%xmm3,%xmm3 + vpxor %xmm0,%xmm3,%xmm8 + vpxor (%rcx),%xmm8,%xmm8 + vaesenc 16(%rcx),%xmm8,%xmm8 + vaesenc 32(%rcx),%xmm8,%xmm8 + vaesenc 48(%rcx),%xmm8,%xmm8 + vaesenc 64(%rcx),%xmm8,%xmm8 + vaesenc 80(%rcx),%xmm8,%xmm8 + vaesenc 96(%rcx),%xmm8,%xmm8 + vaesenc 112(%rcx),%xmm8,%xmm8 + vaesenc 128(%rcx),%xmm8,%xmm8 + vaesenc 144(%rcx),%xmm8,%xmm8 + vaesenc 160(%rcx),%xmm8,%xmm8 + vaesenc 176(%rcx),%xmm8,%xmm8 + vaesenc 192(%rcx),%xmm8,%xmm8 + vaesenc 208(%rcx),%xmm8,%xmm8 + vaesenclast 224(%rcx),%xmm8,%xmm8 + vpxor %xmm0,%xmm8,%xmm8 + vmovdqu %xmm8,-16(%rsi) +.L_ret_wcpqaDvsGlbjGoe: + movq 128(%rsp),%rbx + xorq %r8,%r8 + movq %r8,128(%rsp) + + vpxorq %zmm0,%zmm0,%zmm0 + movq %rbp,%rsp + popq %rbp + vzeroupper + .byte 0xf3,0xc3 + +.L_less_than_128_bytes_wcpqaDvsGlbjGoe: + vpbroadcastq %r10,%zmm25 + cmpq $0x10,%rdx + jb .L_ret_wcpqaDvsGlbjGoe + vbroadcasti32x4 (%rsp),%zmm0 + vbroadcasti32x4 shufb_15_7(%rip),%zmm8 + movl $0xaa,%r8d + kmovq %r8,%k2 + movq %rdx,%r8 + andq $0x70,%r8 + cmpq $0x60,%r8 + je .L_num_blocks_is_6_wcpqaDvsGlbjGoe + cmpq $0x50,%r8 + je .L_num_blocks_is_5_wcpqaDvsGlbjGoe + cmpq $0x40,%r8 + je .L_num_blocks_is_4_wcpqaDvsGlbjGoe + cmpq $0x30,%r8 + je .L_num_blocks_is_3_wcpqaDvsGlbjGoe + cmpq $0x20,%r8 + je .L_num_blocks_is_2_wcpqaDvsGlbjGoe + cmpq $0x10,%r8 + je .L_num_blocks_is_1_wcpqaDvsGlbjGoe + +.L_num_blocks_is_7_wcpqaDvsGlbjGoe: + vpshufb %zmm8,%zmm0,%zmm1 + vpsllvq const_dq3210(%rip),%zmm0,%zmm4 + vpsrlvq const_dq5678(%rip),%zmm1,%zmm2 + vpclmulqdq $0x00,%zmm25,%zmm2,%zmm3 + vpxorq %zmm2,%zmm4,%zmm4{%k2} + vpxord %zmm4,%zmm3,%zmm9 + vpsllvq const_dq7654(%rip),%zmm0,%zmm5 + vpsrlvq const_dq1234(%rip),%zmm1,%zmm6 + vpclmulqdq $0x00,%zmm25,%zmm6,%zmm7 + vpxorq %zmm6,%zmm5,%zmm5{%k2} + vpxord %zmm5,%zmm7,%zmm10 + movq $0x0000ffffffffffff,%r8 + kmovq %r8,%k1 + vmovdqu8 0(%rdi),%zmm1 + vmovdqu8 64(%rdi),%zmm2{%k1} + + addq $0x70,%rdi + vbroadcasti32x4 (%rcx),%zmm0 + vpternlogq $0x96,%zmm0,%zmm9,%zmm1 + vpternlogq $0x96,%zmm0,%zmm10,%zmm2 + vbroadcasti32x4 16(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 32(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 48(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + vbroadcasti32x4 64(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 80(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 96(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 112(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 128(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 144(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + vbroadcasti32x4 160(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 176(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 192(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 208(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 224(%rcx),%zmm0 + vaesenclast %zmm0,%zmm1,%zmm1 + vaesenclast %zmm0,%zmm2,%zmm2 + vpxorq %zmm9,%zmm1,%zmm1 + vpxorq %zmm10,%zmm2,%zmm2 + vmovdqu8 %zmm1,0(%rsi) + vmovdqu8 %zmm2,64(%rsi){%k1} + addq $0x70,%rsi + vextracti32x4 $0x2,%zmm2,%xmm8 + vextracti32x4 $0x3,%zmm10,%xmm0 + andq $0xf,%rdx + je .L_ret_wcpqaDvsGlbjGoe + jmp .L_steal_cipher_wcpqaDvsGlbjGoe +.L_num_blocks_is_6_wcpqaDvsGlbjGoe: + vpshufb %zmm8,%zmm0,%zmm1 + vpsllvq const_dq3210(%rip),%zmm0,%zmm4 + vpsrlvq const_dq5678(%rip),%zmm1,%zmm2 + vpclmulqdq $0x00,%zmm25,%zmm2,%zmm3 + vpxorq %zmm2,%zmm4,%zmm4{%k2} + vpxord %zmm4,%zmm3,%zmm9 + vpsllvq const_dq7654(%rip),%zmm0,%zmm5 + vpsrlvq const_dq1234(%rip),%zmm1,%zmm6 + vpclmulqdq $0x00,%zmm25,%zmm6,%zmm7 + vpxorq %zmm6,%zmm5,%zmm5{%k2} + vpxord %zmm5,%zmm7,%zmm10 + vmovdqu8 0(%rdi),%zmm1 + vmovdqu8 64(%rdi),%ymm2 + addq $96,%rdi + vbroadcasti32x4 (%rcx),%zmm0 + vpternlogq $0x96,%zmm0,%zmm9,%zmm1 + vpternlogq $0x96,%zmm0,%zmm10,%zmm2 + vbroadcasti32x4 16(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 32(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 48(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + vbroadcasti32x4 64(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 80(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 96(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 112(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 128(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 144(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + vbroadcasti32x4 160(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 176(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 192(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 208(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 224(%rcx),%zmm0 + vaesenclast %zmm0,%zmm1,%zmm1 + vaesenclast %zmm0,%zmm2,%zmm2 + vpxorq %zmm9,%zmm1,%zmm1 + vpxorq %zmm10,%zmm2,%zmm2 + vmovdqu8 %zmm1,0(%rsi) + vmovdqu8 %ymm2,64(%rsi) + addq $96,%rsi + + vextracti32x4 $0x1,%ymm2,%xmm8 + vextracti32x4 $0x2,%zmm10,%xmm0 + andq $0xf,%rdx + je .L_ret_wcpqaDvsGlbjGoe + jmp .L_steal_cipher_wcpqaDvsGlbjGoe +.L_num_blocks_is_5_wcpqaDvsGlbjGoe: + vpshufb %zmm8,%zmm0,%zmm1 + vpsllvq const_dq3210(%rip),%zmm0,%zmm4 + vpsrlvq const_dq5678(%rip),%zmm1,%zmm2 + vpclmulqdq $0x00,%zmm25,%zmm2,%zmm3 + vpxorq %zmm2,%zmm4,%zmm4{%k2} + vpxord %zmm4,%zmm3,%zmm9 + vpsllvq const_dq7654(%rip),%zmm0,%zmm5 + vpsrlvq const_dq1234(%rip),%zmm1,%zmm6 + vpclmulqdq $0x00,%zmm25,%zmm6,%zmm7 + vpxorq %zmm6,%zmm5,%zmm5{%k2} + vpxord %zmm5,%zmm7,%zmm10 + vmovdqu8 0(%rdi),%zmm1 + vmovdqu8 64(%rdi),%xmm2 + addq $80,%rdi + vbroadcasti32x4 (%rcx),%zmm0 + vpternlogq $0x96,%zmm0,%zmm9,%zmm1 + vpternlogq $0x96,%zmm0,%zmm10,%zmm2 + vbroadcasti32x4 16(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 32(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 48(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + vbroadcasti32x4 64(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 80(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 96(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 112(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 128(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 144(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + vbroadcasti32x4 160(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 176(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 192(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 208(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 224(%rcx),%zmm0 + vaesenclast %zmm0,%zmm1,%zmm1 + vaesenclast %zmm0,%zmm2,%zmm2 + vpxorq %zmm9,%zmm1,%zmm1 + vpxorq %zmm10,%zmm2,%zmm2 + vmovdqu8 %zmm1,0(%rsi) + vmovdqu8 %xmm2,64(%rsi) + addq $80,%rsi + + vmovdqa %xmm2,%xmm8 + vextracti32x4 $0x1,%zmm10,%xmm0 + andq $0xf,%rdx + je .L_ret_wcpqaDvsGlbjGoe + jmp .L_steal_cipher_wcpqaDvsGlbjGoe +.L_num_blocks_is_4_wcpqaDvsGlbjGoe: + vpshufb %zmm8,%zmm0,%zmm1 + vpsllvq const_dq3210(%rip),%zmm0,%zmm4 + vpsrlvq const_dq5678(%rip),%zmm1,%zmm2 + vpclmulqdq $0x00,%zmm25,%zmm2,%zmm3 + vpxorq %zmm2,%zmm4,%zmm4{%k2} + vpxord %zmm4,%zmm3,%zmm9 + vpsllvq const_dq7654(%rip),%zmm0,%zmm5 + vpsrlvq const_dq1234(%rip),%zmm1,%zmm6 + vpclmulqdq $0x00,%zmm25,%zmm6,%zmm7 + vpxorq %zmm6,%zmm5,%zmm5{%k2} + vpxord %zmm5,%zmm7,%zmm10 + vmovdqu8 0(%rdi),%zmm1 + addq $64,%rdi + vbroadcasti32x4 (%rcx),%zmm0 + vpternlogq $0x96,%zmm0,%zmm9,%zmm1 + vbroadcasti32x4 16(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 32(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 48(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 64(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 80(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 96(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 112(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 128(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 144(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 160(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 176(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 192(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 208(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 224(%rcx),%zmm0 + vaesenclast %zmm0,%zmm1,%zmm1 + vpxorq %zmm9,%zmm1,%zmm1 + vmovdqu8 %zmm1,0(%rsi) + addq $64,%rsi + vextracti32x4 $0x3,%zmm1,%xmm8 + vmovdqa %xmm10,%xmm0 + andq $0xf,%rdx + je .L_ret_wcpqaDvsGlbjGoe + jmp .L_steal_cipher_wcpqaDvsGlbjGoe +.L_num_blocks_is_3_wcpqaDvsGlbjGoe: + vpshufb %zmm8,%zmm0,%zmm1 + vpsllvq const_dq3210(%rip),%zmm0,%zmm4 + vpsrlvq const_dq5678(%rip),%zmm1,%zmm2 + vpclmulqdq $0x00,%zmm25,%zmm2,%zmm3 + vpxorq %zmm2,%zmm4,%zmm4{%k2} + vpxord %zmm4,%zmm3,%zmm9 + movq $0x0000ffffffffffff,%r8 + kmovq %r8,%k1 + vmovdqu8 0(%rdi),%zmm1{%k1} + addq $48,%rdi + vbroadcasti32x4 (%rcx),%zmm0 + vpternlogq $0x96,%zmm0,%zmm9,%zmm1 + vbroadcasti32x4 16(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 32(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 48(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 64(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 80(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 96(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 112(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 128(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 144(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 160(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 176(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 192(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 208(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 224(%rcx),%zmm0 + vaesenclast %zmm0,%zmm1,%zmm1 + vpxorq %zmm9,%zmm1,%zmm1 + vmovdqu8 %zmm1,0(%rsi){%k1} + addq $48,%rsi + vextracti32x4 $2,%zmm1,%xmm8 + vextracti32x4 $3,%zmm9,%xmm0 + andq $0xf,%rdx + je .L_ret_wcpqaDvsGlbjGoe + jmp .L_steal_cipher_wcpqaDvsGlbjGoe +.L_num_blocks_is_2_wcpqaDvsGlbjGoe: + vpshufb %zmm8,%zmm0,%zmm1 + vpsllvq const_dq3210(%rip),%zmm0,%zmm4 + vpsrlvq const_dq5678(%rip),%zmm1,%zmm2 + vpclmulqdq $0x00,%zmm25,%zmm2,%zmm3 + vpxorq %zmm2,%zmm4,%zmm4{%k2} + vpxord %zmm4,%zmm3,%zmm9 + + vmovdqu8 0(%rdi),%ymm1 + addq $32,%rdi + vbroadcasti32x4 (%rcx),%ymm0 + vpternlogq $0x96,%ymm0,%ymm9,%ymm1 + vbroadcasti32x4 16(%rcx),%ymm0 + vaesenc %ymm0,%ymm1,%ymm1 + vbroadcasti32x4 32(%rcx),%ymm0 + vaesenc %ymm0,%ymm1,%ymm1 + vbroadcasti32x4 48(%rcx),%ymm0 + vaesenc %ymm0,%ymm1,%ymm1 + vbroadcasti32x4 64(%rcx),%ymm0 + vaesenc %ymm0,%ymm1,%ymm1 + vbroadcasti32x4 80(%rcx),%ymm0 + vaesenc %ymm0,%ymm1,%ymm1 + vbroadcasti32x4 96(%rcx),%ymm0 + vaesenc %ymm0,%ymm1,%ymm1 + vbroadcasti32x4 112(%rcx),%ymm0 + vaesenc %ymm0,%ymm1,%ymm1 + vbroadcasti32x4 128(%rcx),%ymm0 + vaesenc %ymm0,%ymm1,%ymm1 + vbroadcasti32x4 144(%rcx),%ymm0 + vaesenc %ymm0,%ymm1,%ymm1 + vbroadcasti32x4 160(%rcx),%ymm0 + vaesenc %ymm0,%ymm1,%ymm1 + vbroadcasti32x4 176(%rcx),%ymm0 + vaesenc %ymm0,%ymm1,%ymm1 + vbroadcasti32x4 192(%rcx),%ymm0 + vaesenc %ymm0,%ymm1,%ymm1 + vbroadcasti32x4 208(%rcx),%ymm0 + vaesenc %ymm0,%ymm1,%ymm1 + vbroadcasti32x4 224(%rcx),%ymm0 + vaesenclast %ymm0,%ymm1,%ymm1 + vpxorq %ymm9,%ymm1,%ymm1 + vmovdqu8 %ymm1,0(%rsi) + addq $32,%rsi + + vextracti32x4 $1,%ymm1,%xmm8 + vextracti32x4 $2,%zmm9,%xmm0 + andq $0xf,%rdx + je .L_ret_wcpqaDvsGlbjGoe + jmp .L_steal_cipher_wcpqaDvsGlbjGoe +.L_num_blocks_is_1_wcpqaDvsGlbjGoe: + vpshufb %zmm8,%zmm0,%zmm1 + vpsllvq const_dq3210(%rip),%zmm0,%zmm4 + vpsrlvq const_dq5678(%rip),%zmm1,%zmm2 + vpclmulqdq $0x00,%zmm25,%zmm2,%zmm3 + vpxorq %zmm2,%zmm4,%zmm4{%k2} + vpxord %zmm4,%zmm3,%zmm9 + + vmovdqu8 0(%rdi),%xmm1 + addq $16,%rdi + vbroadcasti32x4 (%rcx),%ymm0 + vpternlogq $0x96,%ymm0,%ymm9,%ymm1 + vbroadcasti32x4 16(%rcx),%ymm0 + vaesenc %ymm0,%ymm1,%ymm1 + vbroadcasti32x4 32(%rcx),%ymm0 + vaesenc %ymm0,%ymm1,%ymm1 + vbroadcasti32x4 48(%rcx),%ymm0 + vaesenc %ymm0,%ymm1,%ymm1 + vbroadcasti32x4 64(%rcx),%ymm0 + vaesenc %ymm0,%ymm1,%ymm1 + vbroadcasti32x4 80(%rcx),%ymm0 + vaesenc %ymm0,%ymm1,%ymm1 + vbroadcasti32x4 96(%rcx),%ymm0 + vaesenc %ymm0,%ymm1,%ymm1 + vbroadcasti32x4 112(%rcx),%ymm0 + vaesenc %ymm0,%ymm1,%ymm1 + vbroadcasti32x4 128(%rcx),%ymm0 + vaesenc %ymm0,%ymm1,%ymm1 + vbroadcasti32x4 144(%rcx),%ymm0 + vaesenc %ymm0,%ymm1,%ymm1 + vbroadcasti32x4 160(%rcx),%ymm0 + vaesenc %ymm0,%ymm1,%ymm1 + vbroadcasti32x4 176(%rcx),%ymm0 + vaesenc %ymm0,%ymm1,%ymm1 + vbroadcasti32x4 192(%rcx),%ymm0 + vaesenc %ymm0,%ymm1,%ymm1 + vbroadcasti32x4 208(%rcx),%ymm0 + vaesenc %ymm0,%ymm1,%ymm1 + vbroadcasti32x4 224(%rcx),%ymm0 + vaesenclast %ymm0,%ymm1,%ymm1 + vpxorq %ymm9,%ymm1,%ymm1 + vmovdqu8 %xmm1,0(%rsi) + addq $16,%rsi + + vmovdqa %xmm1,%xmm8 + vextracti32x4 $1,%zmm9,%xmm0 + andq $0xf,%rdx + je .L_ret_wcpqaDvsGlbjGoe + jmp .L_steal_cipher_wcpqaDvsGlbjGoe +.cfi_endproc +.globl aesni_xts_256_decrypt_avx512 +.hidden aesni_xts_256_decrypt_avx512 +.type aesni_xts_256_decrypt_avx512,@function +.align 32 +aesni_xts_256_decrypt_avx512: +.cfi_startproc +.byte 243,15,30,250 + pushq %rbp + movq %rsp,%rbp + subq $136,%rsp + andq $0xffffffffffffffc0,%rsp + movq %rbx,128(%rsp) + movq $0x87,%r10 + vmovdqu (%r9),%xmm1 + vpxor (%r8),%xmm1,%xmm1 + vaesenc 16(%r8),%xmm1,%xmm1 + vaesenc 32(%r8),%xmm1,%xmm1 + vaesenc 48(%r8),%xmm1,%xmm1 + vaesenc 64(%r8),%xmm1,%xmm1 + vaesenc 80(%r8),%xmm1,%xmm1 + vaesenc 96(%r8),%xmm1,%xmm1 + vaesenc 112(%r8),%xmm1,%xmm1 + vaesenc 128(%r8),%xmm1,%xmm1 + vaesenc 144(%r8),%xmm1,%xmm1 + vaesenc 160(%r8),%xmm1,%xmm1 + vaesenc 176(%r8),%xmm1,%xmm1 + vaesenc 192(%r8),%xmm1,%xmm1 + vaesenc 208(%r8),%xmm1,%xmm1 + vaesenclast 224(%r8),%xmm1,%xmm1 + vmovdqa %xmm1,(%rsp) + + cmpq $0x80,%rdx + jb .L_less_than_128_bytes_EmbgEptodyewbFa + vpbroadcastq %r10,%zmm25 + cmpq $0x100,%rdx + jge .L_start_by16_EmbgEptodyewbFa + jmp .L_start_by8_EmbgEptodyewbFa + +.L_do_n_blocks_EmbgEptodyewbFa: + cmpq $0x0,%rdx + je .L_ret_EmbgEptodyewbFa + cmpq $0x70,%rdx + jge .L_remaining_num_blocks_is_7_EmbgEptodyewbFa + cmpq $0x60,%rdx + jge .L_remaining_num_blocks_is_6_EmbgEptodyewbFa + cmpq $0x50,%rdx + jge .L_remaining_num_blocks_is_5_EmbgEptodyewbFa + cmpq $0x40,%rdx + jge .L_remaining_num_blocks_is_4_EmbgEptodyewbFa + cmpq $0x30,%rdx + jge .L_remaining_num_blocks_is_3_EmbgEptodyewbFa + cmpq $0x20,%rdx + jge .L_remaining_num_blocks_is_2_EmbgEptodyewbFa + cmpq $0x10,%rdx + jge .L_remaining_num_blocks_is_1_EmbgEptodyewbFa + + + vmovdqu %xmm5,%xmm1 + + vpxor %xmm9,%xmm1,%xmm1 + vmovdqu (%rcx),%xmm0 + vpxor %xmm0,%xmm1,%xmm1 + vmovdqu 16(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 32(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 48(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 64(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 80(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 96(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 112(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 128(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 144(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 160(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 176(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 192(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 208(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 224(%rcx),%xmm0 + vaesdeclast %xmm0,%xmm1,%xmm1 + vpxor %xmm9,%xmm1,%xmm1 + vmovdqu %xmm1,-16(%rsi) + vmovdqa %xmm1,%xmm8 + + + movq $0x1,%r8 + kmovq %r8,%k1 + vpsllq $0x3f,%xmm9,%xmm13 + vpsraq $0x3f,%xmm13,%xmm14 + vpandq %xmm25,%xmm14,%xmm5 + vpxorq %xmm5,%xmm9,%xmm9{%k1} + vpsrldq $0x8,%xmm9,%xmm10 +.byte 98, 211, 181, 8, 115, 194, 1 + vpslldq $0x8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm0,%xmm0 + jmp .L_steal_cipher_EmbgEptodyewbFa + +.L_remaining_num_blocks_is_7_EmbgEptodyewbFa: + movq $0xffffffffffffffff,%r8 + shrq $0x10,%r8 + kmovq %r8,%k1 + vmovdqu8 (%rdi),%zmm1 + vmovdqu8 64(%rdi),%zmm2{%k1} + addq $0x70,%rdi + andq $0xf,%rdx + je .L_done_7_remain_EmbgEptodyewbFa + vextracti32x4 $0x2,%zmm10,%xmm12 + vextracti32x4 $0x3,%zmm10,%xmm13 + vinserti32x4 $0x2,%xmm13,%zmm10,%zmm10 + + vpxorq %zmm9,%zmm1,%zmm1 + vpxorq %zmm10,%zmm2,%zmm2 + + + vbroadcasti32x4 (%rcx),%zmm0 + vpxorq %zmm0,%zmm1,%zmm1 + vpxorq %zmm0,%zmm2,%zmm2 + vbroadcasti32x4 16(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 32(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 48(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + vbroadcasti32x4 64(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 80(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 96(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 112(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 128(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 144(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 160(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 176(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 192(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 208(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 224(%rcx),%zmm0 + vaesdeclast %zmm0,%zmm1,%zmm1 + vaesdeclast %zmm0,%zmm2,%zmm2 + + vpxorq %zmm9,%zmm1,%zmm1 + vpxorq %zmm10,%zmm2,%zmm2 + + + vmovdqa32 %zmm15,%zmm9 + vmovdqa32 %zmm16,%zmm10 + vmovdqu8 %zmm1,(%rsi) + vmovdqu8 %zmm2,64(%rsi){%k1} + addq $0x70,%rsi + vextracti32x4 $0x2,%zmm2,%xmm8 + vmovdqa %xmm12,%xmm0 + jmp .L_steal_cipher_EmbgEptodyewbFa + +.L_done_7_remain_EmbgEptodyewbFa: + + vpxorq %zmm9,%zmm1,%zmm1 + vpxorq %zmm10,%zmm2,%zmm2 + + + vbroadcasti32x4 (%rcx),%zmm0 + vpxorq %zmm0,%zmm1,%zmm1 + vpxorq %zmm0,%zmm2,%zmm2 + vbroadcasti32x4 16(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 32(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 48(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + vbroadcasti32x4 64(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 80(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 96(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 112(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 128(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 144(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 160(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 176(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 192(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 208(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 224(%rcx),%zmm0 + vaesdeclast %zmm0,%zmm1,%zmm1 + vaesdeclast %zmm0,%zmm2,%zmm2 + + vpxorq %zmm9,%zmm1,%zmm1 + vpxorq %zmm10,%zmm2,%zmm2 + + + vmovdqa32 %zmm15,%zmm9 + vmovdqa32 %zmm16,%zmm10 + vmovdqu8 %zmm1,(%rsi) + vmovdqu8 %zmm2,64(%rsi){%k1} + jmp .L_ret_EmbgEptodyewbFa + +.L_remaining_num_blocks_is_6_EmbgEptodyewbFa: + vmovdqu8 (%rdi),%zmm1 + vmovdqu8 64(%rdi),%ymm2 + addq $0x60,%rdi + andq $0xf,%rdx + je .L_done_6_remain_EmbgEptodyewbFa + vextracti32x4 $0x1,%zmm10,%xmm12 + vextracti32x4 $0x2,%zmm10,%xmm13 + vinserti32x4 $0x1,%xmm13,%zmm10,%zmm10 + + vpxorq %zmm9,%zmm1,%zmm1 + vpxorq %zmm10,%zmm2,%zmm2 + + + vbroadcasti32x4 (%rcx),%zmm0 + vpxorq %zmm0,%zmm1,%zmm1 + vpxorq %zmm0,%zmm2,%zmm2 + vbroadcasti32x4 16(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 32(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 48(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + vbroadcasti32x4 64(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 80(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 96(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 112(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 128(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 144(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 160(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 176(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 192(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 208(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 224(%rcx),%zmm0 + vaesdeclast %zmm0,%zmm1,%zmm1 + vaesdeclast %zmm0,%zmm2,%zmm2 + + vpxorq %zmm9,%zmm1,%zmm1 + vpxorq %zmm10,%zmm2,%zmm2 + + + vmovdqa32 %zmm15,%zmm9 + vmovdqa32 %zmm16,%zmm10 + vmovdqu8 %zmm1,(%rsi) + vmovdqu8 %ymm2,64(%rsi) + addq $0x60,%rsi + vextracti32x4 $0x1,%zmm2,%xmm8 + vmovdqa %xmm12,%xmm0 + jmp .L_steal_cipher_EmbgEptodyewbFa + +.L_done_6_remain_EmbgEptodyewbFa: + + vpxorq %zmm9,%zmm1,%zmm1 + vpxorq %zmm10,%zmm2,%zmm2 + + + vbroadcasti32x4 (%rcx),%zmm0 + vpxorq %zmm0,%zmm1,%zmm1 + vpxorq %zmm0,%zmm2,%zmm2 + vbroadcasti32x4 16(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 32(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 48(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + vbroadcasti32x4 64(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 80(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 96(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 112(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 128(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 144(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 160(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 176(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 192(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 208(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 224(%rcx),%zmm0 + vaesdeclast %zmm0,%zmm1,%zmm1 + vaesdeclast %zmm0,%zmm2,%zmm2 + + vpxorq %zmm9,%zmm1,%zmm1 + vpxorq %zmm10,%zmm2,%zmm2 + + + vmovdqa32 %zmm15,%zmm9 + vmovdqa32 %zmm16,%zmm10 + vmovdqu8 %zmm1,(%rsi) + vmovdqu8 %ymm2,64(%rsi) + jmp .L_ret_EmbgEptodyewbFa + +.L_remaining_num_blocks_is_5_EmbgEptodyewbFa: + vmovdqu8 (%rdi),%zmm1 + vmovdqu 64(%rdi),%xmm2 + addq $0x50,%rdi + andq $0xf,%rdx + je .L_done_5_remain_EmbgEptodyewbFa + vmovdqa %xmm10,%xmm12 + vextracti32x4 $0x1,%zmm10,%xmm10 + + vpxorq %zmm9,%zmm1,%zmm1 + vpxorq %zmm10,%zmm2,%zmm2 + + + vbroadcasti32x4 (%rcx),%zmm0 + vpxorq %zmm0,%zmm1,%zmm1 + vpxorq %zmm0,%zmm2,%zmm2 + vbroadcasti32x4 16(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 32(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 48(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + vbroadcasti32x4 64(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 80(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 96(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 112(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 128(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 144(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 160(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 176(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 192(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 208(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 224(%rcx),%zmm0 + vaesdeclast %zmm0,%zmm1,%zmm1 + vaesdeclast %zmm0,%zmm2,%zmm2 + + vpxorq %zmm9,%zmm1,%zmm1 + vpxorq %zmm10,%zmm2,%zmm2 + + + vmovdqa32 %zmm15,%zmm9 + vmovdqa32 %zmm16,%zmm10 + vmovdqu8 %zmm1,(%rsi) + vmovdqu %xmm2,64(%rsi) + addq $0x50,%rsi + vmovdqa %xmm2,%xmm8 + vmovdqa %xmm12,%xmm0 + jmp .L_steal_cipher_EmbgEptodyewbFa + +.L_done_5_remain_EmbgEptodyewbFa: + + vpxorq %zmm9,%zmm1,%zmm1 + vpxorq %zmm10,%zmm2,%zmm2 + + + vbroadcasti32x4 (%rcx),%zmm0 + vpxorq %zmm0,%zmm1,%zmm1 + vpxorq %zmm0,%zmm2,%zmm2 + vbroadcasti32x4 16(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 32(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 48(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + vbroadcasti32x4 64(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 80(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 96(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 112(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 128(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 144(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 160(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 176(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 192(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 208(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 224(%rcx),%zmm0 + vaesdeclast %zmm0,%zmm1,%zmm1 + vaesdeclast %zmm0,%zmm2,%zmm2 + + vpxorq %zmm9,%zmm1,%zmm1 + vpxorq %zmm10,%zmm2,%zmm2 + + + vmovdqa32 %zmm15,%zmm9 + vmovdqa32 %zmm16,%zmm10 + vmovdqu8 %zmm1,(%rsi) + vmovdqu8 %xmm2,64(%rsi) + jmp .L_ret_EmbgEptodyewbFa + +.L_remaining_num_blocks_is_4_EmbgEptodyewbFa: + vmovdqu8 (%rdi),%zmm1 + addq $0x40,%rdi + andq $0xf,%rdx + je .L_done_4_remain_EmbgEptodyewbFa + vextracti32x4 $0x3,%zmm9,%xmm12 + vinserti32x4 $0x3,%xmm10,%zmm9,%zmm9 + + vpxorq %zmm9,%zmm1,%zmm1 + vpxorq %zmm10,%zmm2,%zmm2 + + + vbroadcasti32x4 (%rcx),%zmm0 + vpxorq %zmm0,%zmm1,%zmm1 + vpxorq %zmm0,%zmm2,%zmm2 + vbroadcasti32x4 16(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 32(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 48(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + vbroadcasti32x4 64(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 80(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 96(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 112(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 128(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 144(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 160(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 176(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 192(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 208(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 224(%rcx),%zmm0 + vaesdeclast %zmm0,%zmm1,%zmm1 + vaesdeclast %zmm0,%zmm2,%zmm2 + + vpxorq %zmm9,%zmm1,%zmm1 + vpxorq %zmm10,%zmm2,%zmm2 + + + vmovdqa32 %zmm15,%zmm9 + vmovdqa32 %zmm16,%zmm10 + vmovdqu8 %zmm1,(%rsi) + addq $0x40,%rsi + vextracti32x4 $0x3,%zmm1,%xmm8 + vmovdqa %xmm12,%xmm0 + jmp .L_steal_cipher_EmbgEptodyewbFa + +.L_done_4_remain_EmbgEptodyewbFa: + + vpxorq %zmm9,%zmm1,%zmm1 + vpxorq %zmm10,%zmm2,%zmm2 + + + vbroadcasti32x4 (%rcx),%zmm0 + vpxorq %zmm0,%zmm1,%zmm1 + vpxorq %zmm0,%zmm2,%zmm2 + vbroadcasti32x4 16(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 32(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 48(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + vbroadcasti32x4 64(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 80(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 96(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 112(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 128(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 144(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 160(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 176(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 192(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 208(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 224(%rcx),%zmm0 + vaesdeclast %zmm0,%zmm1,%zmm1 + vaesdeclast %zmm0,%zmm2,%zmm2 + + vpxorq %zmm9,%zmm1,%zmm1 + vpxorq %zmm10,%zmm2,%zmm2 + + + vmovdqa32 %zmm15,%zmm9 + vmovdqa32 %zmm16,%zmm10 + vmovdqu8 %zmm1,(%rsi) + jmp .L_ret_EmbgEptodyewbFa + +.L_remaining_num_blocks_is_3_EmbgEptodyewbFa: + vmovdqu (%rdi),%xmm1 + vmovdqu 16(%rdi),%xmm2 + vmovdqu 32(%rdi),%xmm3 + addq $0x30,%rdi + andq $0xf,%rdx + je .L_done_3_remain_EmbgEptodyewbFa + vextracti32x4 $0x2,%zmm9,%xmm13 + vextracti32x4 $0x1,%zmm9,%xmm10 + vextracti32x4 $0x3,%zmm9,%xmm11 + vpxor %xmm9,%xmm1,%xmm1 + vpxor %xmm10,%xmm2,%xmm2 + vpxor %xmm11,%xmm3,%xmm3 + vmovdqu (%rcx),%xmm0 + vpxor %xmm0,%xmm1,%xmm1 + vpxor %xmm0,%xmm2,%xmm2 + vpxor %xmm0,%xmm3,%xmm3 + vmovdqu 16(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 32(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 48(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 64(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 80(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 96(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 112(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 128(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 144(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 160(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 176(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 192(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 208(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 224(%rcx),%xmm0 + vaesdeclast %xmm0,%xmm1,%xmm1 + vaesdeclast %xmm0,%xmm2,%xmm2 + vaesdeclast %xmm0,%xmm3,%xmm3 + vpxor %xmm9,%xmm1,%xmm1 + vpxor %xmm10,%xmm2,%xmm2 + vpxor %xmm11,%xmm3,%xmm3 + vmovdqu %xmm1,(%rsi) + vmovdqu %xmm2,16(%rsi) + vmovdqu %xmm3,32(%rsi) + addq $0x30,%rsi + vmovdqa %xmm3,%xmm8 + vmovdqa %xmm13,%xmm0 + jmp .L_steal_cipher_EmbgEptodyewbFa + +.L_done_3_remain_EmbgEptodyewbFa: + vextracti32x4 $0x1,%zmm9,%xmm10 + vextracti32x4 $0x2,%zmm9,%xmm11 + vpxor %xmm9,%xmm1,%xmm1 + vpxor %xmm10,%xmm2,%xmm2 + vpxor %xmm11,%xmm3,%xmm3 + vmovdqu (%rcx),%xmm0 + vpxor %xmm0,%xmm1,%xmm1 + vpxor %xmm0,%xmm2,%xmm2 + vpxor %xmm0,%xmm3,%xmm3 + vmovdqu 16(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 32(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 48(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 64(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 80(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 96(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 112(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 128(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 144(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 160(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 176(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 192(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 208(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 224(%rcx),%xmm0 + vaesdeclast %xmm0,%xmm1,%xmm1 + vaesdeclast %xmm0,%xmm2,%xmm2 + vaesdeclast %xmm0,%xmm3,%xmm3 + vpxor %xmm9,%xmm1,%xmm1 + vpxor %xmm10,%xmm2,%xmm2 + vpxor %xmm11,%xmm3,%xmm3 + vmovdqu %xmm1,(%rsi) + vmovdqu %xmm2,16(%rsi) + vmovdqu %xmm3,32(%rsi) + jmp .L_ret_EmbgEptodyewbFa + +.L_remaining_num_blocks_is_2_EmbgEptodyewbFa: + vmovdqu (%rdi),%xmm1 + vmovdqu 16(%rdi),%xmm2 + addq $0x20,%rdi + andq $0xf,%rdx + je .L_done_2_remain_EmbgEptodyewbFa + vextracti32x4 $0x2,%zmm9,%xmm10 + vextracti32x4 $0x1,%zmm9,%xmm12 + vpxor %xmm9,%xmm1,%xmm1 + vpxor %xmm10,%xmm2,%xmm2 + vmovdqu (%rcx),%xmm0 + vpxor %xmm0,%xmm1,%xmm1 + vpxor %xmm0,%xmm2,%xmm2 + vmovdqu 16(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 32(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 48(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 64(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 80(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 96(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 112(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 128(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 144(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 160(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 176(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 192(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 208(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 224(%rcx),%xmm0 + vaesdeclast %xmm0,%xmm1,%xmm1 + vaesdeclast %xmm0,%xmm2,%xmm2 + vpxor %xmm9,%xmm1,%xmm1 + vpxor %xmm10,%xmm2,%xmm2 + vmovdqu %xmm1,(%rsi) + vmovdqu %xmm2,16(%rsi) + addq $0x20,%rsi + vmovdqa %xmm2,%xmm8 + vmovdqa %xmm12,%xmm0 + jmp .L_steal_cipher_EmbgEptodyewbFa + +.L_done_2_remain_EmbgEptodyewbFa: + vextracti32x4 $0x1,%zmm9,%xmm10 + vpxor %xmm9,%xmm1,%xmm1 + vpxor %xmm10,%xmm2,%xmm2 + vmovdqu (%rcx),%xmm0 + vpxor %xmm0,%xmm1,%xmm1 + vpxor %xmm0,%xmm2,%xmm2 + vmovdqu 16(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 32(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 48(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 64(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 80(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 96(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 112(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 128(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 144(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 160(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 176(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 192(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 208(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 224(%rcx),%xmm0 + vaesdeclast %xmm0,%xmm1,%xmm1 + vaesdeclast %xmm0,%xmm2,%xmm2 + vpxor %xmm9,%xmm1,%xmm1 + vpxor %xmm10,%xmm2,%xmm2 + vmovdqu %xmm1,(%rsi) + vmovdqu %xmm2,16(%rsi) + jmp .L_ret_EmbgEptodyewbFa + +.L_remaining_num_blocks_is_1_EmbgEptodyewbFa: + vmovdqu (%rdi),%xmm1 + addq $0x10,%rdi + andq $0xf,%rdx + je .L_done_1_remain_EmbgEptodyewbFa + vextracti32x4 $0x1,%zmm9,%xmm11 + vpxor %xmm11,%xmm1,%xmm1 + vmovdqu (%rcx),%xmm0 + vpxor %xmm0,%xmm1,%xmm1 + vmovdqu 16(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 32(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 48(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 64(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 80(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 96(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 112(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 128(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 144(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 160(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 176(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 192(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 208(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 224(%rcx),%xmm0 + vaesdeclast %xmm0,%xmm1,%xmm1 + vpxor %xmm11,%xmm1,%xmm1 + vmovdqu %xmm1,(%rsi) + addq $0x10,%rsi + vmovdqa %xmm1,%xmm8 + vmovdqa %xmm9,%xmm0 + jmp .L_steal_cipher_EmbgEptodyewbFa + +.L_done_1_remain_EmbgEptodyewbFa: + vpxor %xmm9,%xmm1,%xmm1 + vmovdqu (%rcx),%xmm0 + vpxor %xmm0,%xmm1,%xmm1 + vmovdqu 16(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 32(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 48(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 64(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 80(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 96(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 112(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 128(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 144(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 160(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 176(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 192(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 208(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 224(%rcx),%xmm0 + vaesdeclast %xmm0,%xmm1,%xmm1 + vpxor %xmm9,%xmm1,%xmm1 + vmovdqu %xmm1,(%rsi) + jmp .L_ret_EmbgEptodyewbFa + +.L_start_by16_EmbgEptodyewbFa: + vbroadcasti32x4 (%rsp),%zmm0 + vbroadcasti32x4 shufb_15_7(%rip),%zmm8 + movq $0xaa,%r8 + kmovq %r8,%k2 + + + vpshufb %zmm8,%zmm0,%zmm1 + vpsllvq const_dq3210(%rip),%zmm0,%zmm4 + vpsrlvq const_dq5678(%rip),%zmm1,%zmm2 + vpclmulqdq $0x0,%zmm25,%zmm2,%zmm3 + vpxorq %zmm2,%zmm4,%zmm4{%k2} + vpxord %zmm4,%zmm3,%zmm9 + + + vpsllvq const_dq7654(%rip),%zmm0,%zmm5 + vpsrlvq const_dq1234(%rip),%zmm1,%zmm6 + vpclmulqdq $0x0,%zmm25,%zmm6,%zmm7 + vpxorq %zmm6,%zmm5,%zmm5{%k2} + vpxord %zmm5,%zmm7,%zmm10 + + + vpsrldq $0xf,%zmm9,%zmm13 + vpclmulqdq $0x0,%zmm25,%zmm13,%zmm14 + vpslldq $0x1,%zmm9,%zmm11 + vpxord %zmm14,%zmm11,%zmm11 + + vpsrldq $0xf,%zmm10,%zmm15 + vpclmulqdq $0x0,%zmm25,%zmm15,%zmm16 + vpslldq $0x1,%zmm10,%zmm12 + vpxord %zmm16,%zmm12,%zmm12 + +.L_main_loop_run_16_EmbgEptodyewbFa: + vmovdqu8 (%rdi),%zmm1 + vmovdqu8 64(%rdi),%zmm2 + vmovdqu8 128(%rdi),%zmm3 + vmovdqu8 192(%rdi),%zmm4 + vmovdqu8 240(%rdi),%xmm5 + addq $0x100,%rdi + vpxorq %zmm9,%zmm1,%zmm1 + vpxorq %zmm10,%zmm2,%zmm2 + vpxorq %zmm11,%zmm3,%zmm3 + vpxorq %zmm12,%zmm4,%zmm4 + vbroadcasti32x4 (%rcx),%zmm0 + vpxorq %zmm0,%zmm1,%zmm1 + vpxorq %zmm0,%zmm2,%zmm2 + vpxorq %zmm0,%zmm3,%zmm3 + vpxorq %zmm0,%zmm4,%zmm4 + vpsrldq $0xf,%zmm11,%zmm13 + vpclmulqdq $0x0,%zmm25,%zmm13,%zmm14 + vpslldq $0x1,%zmm11,%zmm15 + vpxord %zmm14,%zmm15,%zmm15 + vbroadcasti32x4 16(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + vaesdec %zmm0,%zmm3,%zmm3 + vaesdec %zmm0,%zmm4,%zmm4 + vbroadcasti32x4 32(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + vaesdec %zmm0,%zmm3,%zmm3 + vaesdec %zmm0,%zmm4,%zmm4 + vbroadcasti32x4 48(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + vaesdec %zmm0,%zmm3,%zmm3 + vaesdec %zmm0,%zmm4,%zmm4 + vpsrldq $0xf,%zmm12,%zmm13 + vpclmulqdq $0x0,%zmm25,%zmm13,%zmm14 + vpslldq $0x1,%zmm12,%zmm16 + vpxord %zmm14,%zmm16,%zmm16 + vbroadcasti32x4 64(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + vaesdec %zmm0,%zmm3,%zmm3 + vaesdec %zmm0,%zmm4,%zmm4 + vbroadcasti32x4 80(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + vaesdec %zmm0,%zmm3,%zmm3 + vaesdec %zmm0,%zmm4,%zmm4 + vbroadcasti32x4 96(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + vaesdec %zmm0,%zmm3,%zmm3 + vaesdec %zmm0,%zmm4,%zmm4 + vpsrldq $0xf,%zmm15,%zmm13 + vpclmulqdq $0x0,%zmm25,%zmm13,%zmm14 + vpslldq $0x1,%zmm15,%zmm17 + vpxord %zmm14,%zmm17,%zmm17 + vbroadcasti32x4 112(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + vaesdec %zmm0,%zmm3,%zmm3 + vaesdec %zmm0,%zmm4,%zmm4 + vbroadcasti32x4 128(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + vaesdec %zmm0,%zmm3,%zmm3 + vaesdec %zmm0,%zmm4,%zmm4 + vbroadcasti32x4 144(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + vaesdec %zmm0,%zmm3,%zmm3 + vaesdec %zmm0,%zmm4,%zmm4 + vpsrldq $0xf,%zmm16,%zmm13 + vpclmulqdq $0x0,%zmm25,%zmm13,%zmm14 + vpslldq $0x1,%zmm16,%zmm18 + vpxord %zmm14,%zmm18,%zmm18 + vbroadcasti32x4 160(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + vaesdec %zmm0,%zmm3,%zmm3 + vaesdec %zmm0,%zmm4,%zmm4 + vbroadcasti32x4 176(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + vaesdec %zmm0,%zmm3,%zmm3 + vaesdec %zmm0,%zmm4,%zmm4 + vbroadcasti32x4 192(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + vaesdec %zmm0,%zmm3,%zmm3 + vaesdec %zmm0,%zmm4,%zmm4 + vbroadcasti32x4 208(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + vaesdec %zmm0,%zmm3,%zmm3 + vaesdec %zmm0,%zmm4,%zmm4 + vbroadcasti32x4 224(%rcx),%zmm0 + vaesdeclast %zmm0,%zmm1,%zmm1 + vaesdeclast %zmm0,%zmm2,%zmm2 + vaesdeclast %zmm0,%zmm3,%zmm3 + vaesdeclast %zmm0,%zmm4,%zmm4 + vpxorq %zmm9,%zmm1,%zmm1 + vpxorq %zmm10,%zmm2,%zmm2 + vpxorq %zmm11,%zmm3,%zmm3 + vpxorq %zmm12,%zmm4,%zmm4 + + vmovdqa32 %zmm15,%zmm9 + vmovdqa32 %zmm16,%zmm10 + vmovdqa32 %zmm17,%zmm11 + vmovdqa32 %zmm18,%zmm12 + vmovdqu8 %zmm1,(%rsi) + vmovdqu8 %zmm2,64(%rsi) + vmovdqu8 %zmm3,128(%rsi) + vmovdqu8 %zmm4,192(%rsi) + addq $0x100,%rsi + subq $0x100,%rdx + cmpq $0x100,%rdx + jge .L_main_loop_run_16_EmbgEptodyewbFa + + cmpq $0x80,%rdx + jge .L_main_loop_run_8_EmbgEptodyewbFa + jmp .L_do_n_blocks_EmbgEptodyewbFa + +.L_start_by8_EmbgEptodyewbFa: + + vbroadcasti32x4 (%rsp),%zmm0 + vbroadcasti32x4 shufb_15_7(%rip),%zmm8 + movq $0xaa,%r8 + kmovq %r8,%k2 + + + vpshufb %zmm8,%zmm0,%zmm1 + vpsllvq const_dq3210(%rip),%zmm0,%zmm4 + vpsrlvq const_dq5678(%rip),%zmm1,%zmm2 + vpclmulqdq $0x0,%zmm25,%zmm2,%zmm3 + vpxorq %zmm2,%zmm4,%zmm4{%k2} + vpxord %zmm4,%zmm3,%zmm9 + + + vpsllvq const_dq7654(%rip),%zmm0,%zmm5 + vpsrlvq const_dq1234(%rip),%zmm1,%zmm6 + vpclmulqdq $0x0,%zmm25,%zmm6,%zmm7 + vpxorq %zmm6,%zmm5,%zmm5{%k2} + vpxord %zmm5,%zmm7,%zmm10 + +.L_main_loop_run_8_EmbgEptodyewbFa: + vmovdqu8 (%rdi),%zmm1 + vmovdqu8 64(%rdi),%zmm2 + vmovdqu8 112(%rdi),%xmm5 + addq $0x80,%rdi + + vpxorq %zmm9,%zmm1,%zmm1 + vpxorq %zmm10,%zmm2,%zmm2 + + + vbroadcasti32x4 (%rcx),%zmm0 + vpxorq %zmm0,%zmm1,%zmm1 + vpxorq %zmm0,%zmm2,%zmm2 + vpsrldq $0xf,%zmm9,%zmm13 + vpclmulqdq $0x0,%zmm25,%zmm13,%zmm14 + vpslldq $0x1,%zmm9,%zmm15 + vpxord %zmm14,%zmm15,%zmm15 + vbroadcasti32x4 16(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 32(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 48(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + vpsrldq $0xf,%zmm10,%zmm13 + vpclmulqdq $0x0,%zmm25,%zmm13,%zmm14 + vpslldq $0x1,%zmm10,%zmm16 + vpxord %zmm14,%zmm16,%zmm16 + + vbroadcasti32x4 64(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 80(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 96(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 112(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 128(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 144(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 160(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 176(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 192(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 208(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 224(%rcx),%zmm0 + vaesdeclast %zmm0,%zmm1,%zmm1 + vaesdeclast %zmm0,%zmm2,%zmm2 + + vpxorq %zmm9,%zmm1,%zmm1 + vpxorq %zmm10,%zmm2,%zmm2 + + + vmovdqa32 %zmm15,%zmm9 + vmovdqa32 %zmm16,%zmm10 + vmovdqu8 %zmm1,(%rsi) + vmovdqu8 %zmm2,64(%rsi) + addq $0x80,%rsi + subq $0x80,%rdx + cmpq $0x80,%rdx + jge .L_main_loop_run_8_EmbgEptodyewbFa + jmp .L_do_n_blocks_EmbgEptodyewbFa + +.L_steal_cipher_EmbgEptodyewbFa: + + vmovdqa %xmm8,%xmm2 + + + leaq vpshufb_shf_table(%rip),%rax + vmovdqu (%rax,%rdx,1),%xmm10 + vpshufb %xmm10,%xmm8,%xmm8 + + + vmovdqu -16(%rdi,%rdx,1),%xmm3 + vmovdqu %xmm8,-16(%rsi,%rdx,1) + + + leaq vpshufb_shf_table(%rip),%rax + addq $16,%rax + subq %rdx,%rax + vmovdqu (%rax),%xmm10 + vpxor mask1(%rip),%xmm10,%xmm10 + vpshufb %xmm10,%xmm3,%xmm3 + + vpblendvb %xmm10,%xmm2,%xmm3,%xmm3 + + + vpxor %xmm0,%xmm3,%xmm8 + + + vpxor (%rcx),%xmm8,%xmm8 + vaesdec 16(%rcx),%xmm8,%xmm8 + vaesdec 32(%rcx),%xmm8,%xmm8 + vaesdec 48(%rcx),%xmm8,%xmm8 + vaesdec 64(%rcx),%xmm8,%xmm8 + vaesdec 80(%rcx),%xmm8,%xmm8 + vaesdec 96(%rcx),%xmm8,%xmm8 + vaesdec 112(%rcx),%xmm8,%xmm8 + vaesdec 128(%rcx),%xmm8,%xmm8 + vaesdec 144(%rcx),%xmm8,%xmm8 + vaesdec 160(%rcx),%xmm8,%xmm8 + vaesdec 176(%rcx),%xmm8,%xmm8 + vaesdec 192(%rcx),%xmm8,%xmm8 + vaesdec 208(%rcx),%xmm8,%xmm8 + vaesdeclast 224(%rcx),%xmm8,%xmm8 + + vpxor %xmm0,%xmm8,%xmm8 + +.L_done_EmbgEptodyewbFa: + + vmovdqu %xmm8,-16(%rsi) +.L_ret_EmbgEptodyewbFa: + movq 128(%rsp),%rbx + xorq %r8,%r8 + movq %r8,128(%rsp) + + vpxorq %zmm0,%zmm0,%zmm0 + movq %rbp,%rsp + popq %rbp + vzeroupper + .byte 0xf3,0xc3 + +.L_less_than_128_bytes_EmbgEptodyewbFa: + cmpq $0x10,%rdx + jb .L_ret_EmbgEptodyewbFa + + movq %rdx,%r8 + andq $0x70,%r8 + cmpq $0x60,%r8 + je .L_num_blocks_is_6_EmbgEptodyewbFa + cmpq $0x50,%r8 + je .L_num_blocks_is_5_EmbgEptodyewbFa + cmpq $0x40,%r8 + je .L_num_blocks_is_4_EmbgEptodyewbFa + cmpq $0x30,%r8 + je .L_num_blocks_is_3_EmbgEptodyewbFa + cmpq $0x20,%r8 + je .L_num_blocks_is_2_EmbgEptodyewbFa + cmpq $0x10,%r8 + je .L_num_blocks_is_1_EmbgEptodyewbFa + +.L_num_blocks_is_7_EmbgEptodyewbFa: + vmovdqa 0(%rsp),%xmm9 + movq 0(%rsp),%rax + movq 8(%rsp),%rbx + vmovdqu 0(%rdi),%xmm1 + xorq %r11,%r11 + shlq $1,%rax + adcq %rbx,%rbx + cmovcq %r10,%r11 + xorq %r11,%rax + movq %rax,16(%rsp) + movq %rbx,16 + 8(%rsp) + vmovdqa 16(%rsp),%xmm10 + vmovdqu 16(%rdi),%xmm2 + xorq %r11,%r11 + shlq $1,%rax + adcq %rbx,%rbx + cmovcq %r10,%r11 + xorq %r11,%rax + movq %rax,32(%rsp) + movq %rbx,32 + 8(%rsp) + vmovdqa 32(%rsp),%xmm11 + vmovdqu 32(%rdi),%xmm3 + xorq %r11,%r11 + shlq $1,%rax + adcq %rbx,%rbx + cmovcq %r10,%r11 + xorq %r11,%rax + movq %rax,48(%rsp) + movq %rbx,48 + 8(%rsp) + vmovdqa 48(%rsp),%xmm12 + vmovdqu 48(%rdi),%xmm4 + xorq %r11,%r11 + shlq $1,%rax + adcq %rbx,%rbx + cmovcq %r10,%r11 + xorq %r11,%rax + movq %rax,64(%rsp) + movq %rbx,64 + 8(%rsp) + vmovdqa 64(%rsp),%xmm13 + vmovdqu 64(%rdi),%xmm5 + xorq %r11,%r11 + shlq $1,%rax + adcq %rbx,%rbx + cmovcq %r10,%r11 + xorq %r11,%rax + movq %rax,80(%rsp) + movq %rbx,80 + 8(%rsp) + vmovdqa 80(%rsp),%xmm14 + vmovdqu 80(%rdi),%xmm6 + xorq %r11,%r11 + shlq $1,%rax + adcq %rbx,%rbx + cmovcq %r10,%r11 + xorq %r11,%rax + movq %rax,96(%rsp) + movq %rbx,96 + 8(%rsp) + vmovdqa 96(%rsp),%xmm15 + vmovdqu 96(%rdi),%xmm7 + addq $0x70,%rdi + andq $0xf,%rdx + je .L_done_7_EmbgEptodyewbFa + +.L_steal_cipher_7_EmbgEptodyewbFa: + xorq %r11,%r11 + shlq $1,%rax + adcq %rbx,%rbx + cmovcq %r10,%r11 + xorq %r11,%rax + movq %rax,16(%rsp) + movq %rbx,24(%rsp) + vmovdqa64 %xmm15,%xmm16 + vmovdqa 16(%rsp),%xmm15 + vpxor %xmm9,%xmm1,%xmm1 + vpxor %xmm10,%xmm2,%xmm2 + vpxor %xmm11,%xmm3,%xmm3 + vpxor %xmm12,%xmm4,%xmm4 + vpxor %xmm13,%xmm5,%xmm5 + vpxor %xmm14,%xmm6,%xmm6 + vpxor %xmm15,%xmm7,%xmm7 + vmovdqu (%rcx),%xmm0 + vpxor %xmm0,%xmm1,%xmm1 + vpxor %xmm0,%xmm2,%xmm2 + vpxor %xmm0,%xmm3,%xmm3 + vpxor %xmm0,%xmm4,%xmm4 + vpxor %xmm0,%xmm5,%xmm5 + vpxor %xmm0,%xmm6,%xmm6 + vpxor %xmm0,%xmm7,%xmm7 + vmovdqu 16(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vaesdec %xmm0,%xmm7,%xmm7 + vmovdqu 32(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vaesdec %xmm0,%xmm7,%xmm7 + vmovdqu 48(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vaesdec %xmm0,%xmm7,%xmm7 + vmovdqu 64(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vaesdec %xmm0,%xmm7,%xmm7 + vmovdqu 80(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vaesdec %xmm0,%xmm7,%xmm7 + vmovdqu 96(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vaesdec %xmm0,%xmm7,%xmm7 + vmovdqu 112(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vaesdec %xmm0,%xmm7,%xmm7 + vmovdqu 128(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vaesdec %xmm0,%xmm7,%xmm7 + vmovdqu 144(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vaesdec %xmm0,%xmm7,%xmm7 + vmovdqu 160(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vaesdec %xmm0,%xmm7,%xmm7 + vmovdqu 176(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vaesdec %xmm0,%xmm7,%xmm7 + vmovdqu 192(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vaesdec %xmm0,%xmm7,%xmm7 + vmovdqu 208(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vaesdec %xmm0,%xmm7,%xmm7 + vmovdqu 224(%rcx),%xmm0 + vaesdeclast %xmm0,%xmm1,%xmm1 + vaesdeclast %xmm0,%xmm2,%xmm2 + vaesdeclast %xmm0,%xmm3,%xmm3 + vaesdeclast %xmm0,%xmm4,%xmm4 + vaesdeclast %xmm0,%xmm5,%xmm5 + vaesdeclast %xmm0,%xmm6,%xmm6 + vaesdeclast %xmm0,%xmm7,%xmm7 + vpxor %xmm9,%xmm1,%xmm1 + vpxor %xmm10,%xmm2,%xmm2 + vpxor %xmm11,%xmm3,%xmm3 + vpxor %xmm12,%xmm4,%xmm4 + vpxor %xmm13,%xmm5,%xmm5 + vpxor %xmm14,%xmm6,%xmm6 + vpxor %xmm15,%xmm7,%xmm7 + vmovdqu %xmm1,(%rsi) + vmovdqu %xmm2,16(%rsi) + vmovdqu %xmm3,32(%rsi) + vmovdqu %xmm4,48(%rsi) + vmovdqu %xmm5,64(%rsi) + vmovdqu %xmm6,80(%rsi) + addq $0x70,%rsi + vmovdqa64 %xmm16,%xmm0 + vmovdqa %xmm7,%xmm8 + jmp .L_steal_cipher_EmbgEptodyewbFa + +.L_done_7_EmbgEptodyewbFa: + vpxor %xmm9,%xmm1,%xmm1 + vpxor %xmm10,%xmm2,%xmm2 + vpxor %xmm11,%xmm3,%xmm3 + vpxor %xmm12,%xmm4,%xmm4 + vpxor %xmm13,%xmm5,%xmm5 + vpxor %xmm14,%xmm6,%xmm6 + vpxor %xmm15,%xmm7,%xmm7 + vmovdqu (%rcx),%xmm0 + vpxor %xmm0,%xmm1,%xmm1 + vpxor %xmm0,%xmm2,%xmm2 + vpxor %xmm0,%xmm3,%xmm3 + vpxor %xmm0,%xmm4,%xmm4 + vpxor %xmm0,%xmm5,%xmm5 + vpxor %xmm0,%xmm6,%xmm6 + vpxor %xmm0,%xmm7,%xmm7 + vmovdqu 16(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vaesdec %xmm0,%xmm7,%xmm7 + vmovdqu 32(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vaesdec %xmm0,%xmm7,%xmm7 + vmovdqu 48(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vaesdec %xmm0,%xmm7,%xmm7 + vmovdqu 64(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vaesdec %xmm0,%xmm7,%xmm7 + vmovdqu 80(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vaesdec %xmm0,%xmm7,%xmm7 + vmovdqu 96(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vaesdec %xmm0,%xmm7,%xmm7 + vmovdqu 112(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vaesdec %xmm0,%xmm7,%xmm7 + vmovdqu 128(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vaesdec %xmm0,%xmm7,%xmm7 + vmovdqu 144(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vaesdec %xmm0,%xmm7,%xmm7 + vmovdqu 160(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vaesdec %xmm0,%xmm7,%xmm7 + vmovdqu 176(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vaesdec %xmm0,%xmm7,%xmm7 + vmovdqu 192(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vaesdec %xmm0,%xmm7,%xmm7 + vmovdqu 208(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vaesdec %xmm0,%xmm7,%xmm7 + vmovdqu 224(%rcx),%xmm0 + vaesdeclast %xmm0,%xmm1,%xmm1 + vaesdeclast %xmm0,%xmm2,%xmm2 + vaesdeclast %xmm0,%xmm3,%xmm3 + vaesdeclast %xmm0,%xmm4,%xmm4 + vaesdeclast %xmm0,%xmm5,%xmm5 + vaesdeclast %xmm0,%xmm6,%xmm6 + vaesdeclast %xmm0,%xmm7,%xmm7 + vpxor %xmm9,%xmm1,%xmm1 + vpxor %xmm10,%xmm2,%xmm2 + vpxor %xmm11,%xmm3,%xmm3 + vpxor %xmm12,%xmm4,%xmm4 + vpxor %xmm13,%xmm5,%xmm5 + vpxor %xmm14,%xmm6,%xmm6 + vpxor %xmm15,%xmm7,%xmm7 + vmovdqu %xmm1,(%rsi) + vmovdqu %xmm2,16(%rsi) + vmovdqu %xmm3,32(%rsi) + vmovdqu %xmm4,48(%rsi) + vmovdqu %xmm5,64(%rsi) + vmovdqu %xmm6,80(%rsi) + addq $0x70,%rsi + vmovdqa %xmm7,%xmm8 + jmp .L_done_EmbgEptodyewbFa + +.L_num_blocks_is_6_EmbgEptodyewbFa: + vmovdqa 0(%rsp),%xmm9 + movq 0(%rsp),%rax + movq 8(%rsp),%rbx + vmovdqu 0(%rdi),%xmm1 + xorq %r11,%r11 + shlq $1,%rax + adcq %rbx,%rbx + cmovcq %r10,%r11 + xorq %r11,%rax + movq %rax,16(%rsp) + movq %rbx,16 + 8(%rsp) + vmovdqa 16(%rsp),%xmm10 + vmovdqu 16(%rdi),%xmm2 + xorq %r11,%r11 + shlq $1,%rax + adcq %rbx,%rbx + cmovcq %r10,%r11 + xorq %r11,%rax + movq %rax,32(%rsp) + movq %rbx,32 + 8(%rsp) + vmovdqa 32(%rsp),%xmm11 + vmovdqu 32(%rdi),%xmm3 + xorq %r11,%r11 + shlq $1,%rax + adcq %rbx,%rbx + cmovcq %r10,%r11 + xorq %r11,%rax + movq %rax,48(%rsp) + movq %rbx,48 + 8(%rsp) + vmovdqa 48(%rsp),%xmm12 + vmovdqu 48(%rdi),%xmm4 + xorq %r11,%r11 + shlq $1,%rax + adcq %rbx,%rbx + cmovcq %r10,%r11 + xorq %r11,%rax + movq %rax,64(%rsp) + movq %rbx,64 + 8(%rsp) + vmovdqa 64(%rsp),%xmm13 + vmovdqu 64(%rdi),%xmm5 + xorq %r11,%r11 + shlq $1,%rax + adcq %rbx,%rbx + cmovcq %r10,%r11 + xorq %r11,%rax + movq %rax,80(%rsp) + movq %rbx,80 + 8(%rsp) + vmovdqa 80(%rsp),%xmm14 + vmovdqu 80(%rdi),%xmm6 + addq $0x60,%rdi + andq $0xf,%rdx + je .L_done_6_EmbgEptodyewbFa + +.L_steal_cipher_6_EmbgEptodyewbFa: + xorq %r11,%r11 + shlq $1,%rax + adcq %rbx,%rbx + cmovcq %r10,%r11 + xorq %r11,%rax + movq %rax,16(%rsp) + movq %rbx,24(%rsp) + vmovdqa64 %xmm14,%xmm15 + vmovdqa 16(%rsp),%xmm14 + vpxor %xmm9,%xmm1,%xmm1 + vpxor %xmm10,%xmm2,%xmm2 + vpxor %xmm11,%xmm3,%xmm3 + vpxor %xmm12,%xmm4,%xmm4 + vpxor %xmm13,%xmm5,%xmm5 + vpxor %xmm14,%xmm6,%xmm6 + vmovdqu (%rcx),%xmm0 + vpxor %xmm0,%xmm1,%xmm1 + vpxor %xmm0,%xmm2,%xmm2 + vpxor %xmm0,%xmm3,%xmm3 + vpxor %xmm0,%xmm4,%xmm4 + vpxor %xmm0,%xmm5,%xmm5 + vpxor %xmm0,%xmm6,%xmm6 + vmovdqu 16(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vmovdqu 32(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vmovdqu 48(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vmovdqu 64(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vmovdqu 80(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vmovdqu 96(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vmovdqu 112(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vmovdqu 128(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vmovdqu 144(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vmovdqu 160(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vmovdqu 176(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vmovdqu 192(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vmovdqu 208(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vmovdqu 224(%rcx),%xmm0 + vaesdeclast %xmm0,%xmm1,%xmm1 + vaesdeclast %xmm0,%xmm2,%xmm2 + vaesdeclast %xmm0,%xmm3,%xmm3 + vaesdeclast %xmm0,%xmm4,%xmm4 + vaesdeclast %xmm0,%xmm5,%xmm5 + vaesdeclast %xmm0,%xmm6,%xmm6 + vpxor %xmm9,%xmm1,%xmm1 + vpxor %xmm10,%xmm2,%xmm2 + vpxor %xmm11,%xmm3,%xmm3 + vpxor %xmm12,%xmm4,%xmm4 + vpxor %xmm13,%xmm5,%xmm5 + vpxor %xmm14,%xmm6,%xmm6 + vmovdqu %xmm1,(%rsi) + vmovdqu %xmm2,16(%rsi) + vmovdqu %xmm3,32(%rsi) + vmovdqu %xmm4,48(%rsi) + vmovdqu %xmm5,64(%rsi) + addq $0x60,%rsi + vmovdqa %xmm15,%xmm0 + vmovdqa %xmm6,%xmm8 + jmp .L_steal_cipher_EmbgEptodyewbFa + +.L_done_6_EmbgEptodyewbFa: + vpxor %xmm9,%xmm1,%xmm1 + vpxor %xmm10,%xmm2,%xmm2 + vpxor %xmm11,%xmm3,%xmm3 + vpxor %xmm12,%xmm4,%xmm4 + vpxor %xmm13,%xmm5,%xmm5 + vpxor %xmm14,%xmm6,%xmm6 + vmovdqu (%rcx),%xmm0 + vpxor %xmm0,%xmm1,%xmm1 + vpxor %xmm0,%xmm2,%xmm2 + vpxor %xmm0,%xmm3,%xmm3 + vpxor %xmm0,%xmm4,%xmm4 + vpxor %xmm0,%xmm5,%xmm5 + vpxor %xmm0,%xmm6,%xmm6 + vmovdqu 16(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vmovdqu 32(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vmovdqu 48(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vmovdqu 64(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vmovdqu 80(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vmovdqu 96(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vmovdqu 112(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vmovdqu 128(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vmovdqu 144(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vmovdqu 160(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vmovdqu 176(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vmovdqu 192(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vmovdqu 208(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vmovdqu 224(%rcx),%xmm0 + vaesdeclast %xmm0,%xmm1,%xmm1 + vaesdeclast %xmm0,%xmm2,%xmm2 + vaesdeclast %xmm0,%xmm3,%xmm3 + vaesdeclast %xmm0,%xmm4,%xmm4 + vaesdeclast %xmm0,%xmm5,%xmm5 + vaesdeclast %xmm0,%xmm6,%xmm6 + vpxor %xmm9,%xmm1,%xmm1 + vpxor %xmm10,%xmm2,%xmm2 + vpxor %xmm11,%xmm3,%xmm3 + vpxor %xmm12,%xmm4,%xmm4 + vpxor %xmm13,%xmm5,%xmm5 + vpxor %xmm14,%xmm6,%xmm6 + vmovdqu %xmm1,(%rsi) + vmovdqu %xmm2,16(%rsi) + vmovdqu %xmm3,32(%rsi) + vmovdqu %xmm4,48(%rsi) + vmovdqu %xmm5,64(%rsi) + addq $0x60,%rsi + vmovdqa %xmm6,%xmm8 + jmp .L_done_EmbgEptodyewbFa + +.L_num_blocks_is_5_EmbgEptodyewbFa: + vmovdqa 0(%rsp),%xmm9 + movq 0(%rsp),%rax + movq 8(%rsp),%rbx + vmovdqu 0(%rdi),%xmm1 + xorq %r11,%r11 + shlq $1,%rax + adcq %rbx,%rbx + cmovcq %r10,%r11 + xorq %r11,%rax + movq %rax,16(%rsp) + movq %rbx,16 + 8(%rsp) + vmovdqa 16(%rsp),%xmm10 + vmovdqu 16(%rdi),%xmm2 + xorq %r11,%r11 + shlq $1,%rax + adcq %rbx,%rbx + cmovcq %r10,%r11 + xorq %r11,%rax + movq %rax,32(%rsp) + movq %rbx,32 + 8(%rsp) + vmovdqa 32(%rsp),%xmm11 + vmovdqu 32(%rdi),%xmm3 + xorq %r11,%r11 + shlq $1,%rax + adcq %rbx,%rbx + cmovcq %r10,%r11 + xorq %r11,%rax + movq %rax,48(%rsp) + movq %rbx,48 + 8(%rsp) + vmovdqa 48(%rsp),%xmm12 + vmovdqu 48(%rdi),%xmm4 + xorq %r11,%r11 + shlq $1,%rax + adcq %rbx,%rbx + cmovcq %r10,%r11 + xorq %r11,%rax + movq %rax,64(%rsp) + movq %rbx,64 + 8(%rsp) + vmovdqa 64(%rsp),%xmm13 + vmovdqu 64(%rdi),%xmm5 + addq $0x50,%rdi + andq $0xf,%rdx + je .L_done_5_EmbgEptodyewbFa + +.L_steal_cipher_5_EmbgEptodyewbFa: + xorq %r11,%r11 + shlq $1,%rax + adcq %rbx,%rbx + cmovcq %r10,%r11 + xorq %r11,%rax + movq %rax,16(%rsp) + movq %rbx,24(%rsp) + vmovdqa64 %xmm13,%xmm14 + vmovdqa 16(%rsp),%xmm13 + vpxor %xmm9,%xmm1,%xmm1 + vpxor %xmm10,%xmm2,%xmm2 + vpxor %xmm11,%xmm3,%xmm3 + vpxor %xmm12,%xmm4,%xmm4 + vpxor %xmm13,%xmm5,%xmm5 + vmovdqu (%rcx),%xmm0 + vpxor %xmm0,%xmm1,%xmm1 + vpxor %xmm0,%xmm2,%xmm2 + vpxor %xmm0,%xmm3,%xmm3 + vpxor %xmm0,%xmm4,%xmm4 + vpxor %xmm0,%xmm5,%xmm5 + vmovdqu 16(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vmovdqu 32(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vmovdqu 48(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vmovdqu 64(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vmovdqu 80(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vmovdqu 96(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vmovdqu 112(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vmovdqu 128(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vmovdqu 144(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vmovdqu 160(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vmovdqu 176(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vmovdqu 192(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vmovdqu 208(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vmovdqu 224(%rcx),%xmm0 + vaesdeclast %xmm0,%xmm1,%xmm1 + vaesdeclast %xmm0,%xmm2,%xmm2 + vaesdeclast %xmm0,%xmm3,%xmm3 + vaesdeclast %xmm0,%xmm4,%xmm4 + vaesdeclast %xmm0,%xmm5,%xmm5 + vpxor %xmm9,%xmm1,%xmm1 + vpxor %xmm10,%xmm2,%xmm2 + vpxor %xmm11,%xmm3,%xmm3 + vpxor %xmm12,%xmm4,%xmm4 + vpxor %xmm13,%xmm5,%xmm5 + vmovdqu %xmm1,(%rsi) + vmovdqu %xmm2,16(%rsi) + vmovdqu %xmm3,32(%rsi) + vmovdqu %xmm4,48(%rsi) + addq $0x50,%rsi + vmovdqa %xmm14,%xmm0 + vmovdqa %xmm5,%xmm8 + jmp .L_steal_cipher_EmbgEptodyewbFa + +.L_done_5_EmbgEptodyewbFa: + vpxor %xmm9,%xmm1,%xmm1 + vpxor %xmm10,%xmm2,%xmm2 + vpxor %xmm11,%xmm3,%xmm3 + vpxor %xmm12,%xmm4,%xmm4 + vpxor %xmm13,%xmm5,%xmm5 + vmovdqu (%rcx),%xmm0 + vpxor %xmm0,%xmm1,%xmm1 + vpxor %xmm0,%xmm2,%xmm2 + vpxor %xmm0,%xmm3,%xmm3 + vpxor %xmm0,%xmm4,%xmm4 + vpxor %xmm0,%xmm5,%xmm5 + vmovdqu 16(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vmovdqu 32(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vmovdqu 48(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vmovdqu 64(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vmovdqu 80(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vmovdqu 96(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vmovdqu 112(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vmovdqu 128(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vmovdqu 144(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vmovdqu 160(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vmovdqu 176(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vmovdqu 192(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vmovdqu 208(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vmovdqu 224(%rcx),%xmm0 + vaesdeclast %xmm0,%xmm1,%xmm1 + vaesdeclast %xmm0,%xmm2,%xmm2 + vaesdeclast %xmm0,%xmm3,%xmm3 + vaesdeclast %xmm0,%xmm4,%xmm4 + vaesdeclast %xmm0,%xmm5,%xmm5 + vpxor %xmm9,%xmm1,%xmm1 + vpxor %xmm10,%xmm2,%xmm2 + vpxor %xmm11,%xmm3,%xmm3 + vpxor %xmm12,%xmm4,%xmm4 + vpxor %xmm13,%xmm5,%xmm5 + vmovdqu %xmm1,(%rsi) + vmovdqu %xmm2,16(%rsi) + vmovdqu %xmm3,32(%rsi) + vmovdqu %xmm4,48(%rsi) + addq $0x50,%rsi + vmovdqa %xmm5,%xmm8 + jmp .L_done_EmbgEptodyewbFa + +.L_num_blocks_is_4_EmbgEptodyewbFa: + vmovdqa 0(%rsp),%xmm9 + movq 0(%rsp),%rax + movq 8(%rsp),%rbx + vmovdqu 0(%rdi),%xmm1 + xorq %r11,%r11 + shlq $1,%rax + adcq %rbx,%rbx + cmovcq %r10,%r11 + xorq %r11,%rax + movq %rax,16(%rsp) + movq %rbx,16 + 8(%rsp) + vmovdqa 16(%rsp),%xmm10 + vmovdqu 16(%rdi),%xmm2 + xorq %r11,%r11 + shlq $1,%rax + adcq %rbx,%rbx + cmovcq %r10,%r11 + xorq %r11,%rax + movq %rax,32(%rsp) + movq %rbx,32 + 8(%rsp) + vmovdqa 32(%rsp),%xmm11 + vmovdqu 32(%rdi),%xmm3 + xorq %r11,%r11 + shlq $1,%rax + adcq %rbx,%rbx + cmovcq %r10,%r11 + xorq %r11,%rax + movq %rax,48(%rsp) + movq %rbx,48 + 8(%rsp) + vmovdqa 48(%rsp),%xmm12 + vmovdqu 48(%rdi),%xmm4 + addq $0x40,%rdi + andq $0xf,%rdx + je .L_done_4_EmbgEptodyewbFa + +.L_steal_cipher_4_EmbgEptodyewbFa: + xorq %r11,%r11 + shlq $1,%rax + adcq %rbx,%rbx + cmovcq %r10,%r11 + xorq %r11,%rax + movq %rax,16(%rsp) + movq %rbx,24(%rsp) + vmovdqa64 %xmm12,%xmm13 + vmovdqa 16(%rsp),%xmm12 + vpxor %xmm9,%xmm1,%xmm1 + vpxor %xmm10,%xmm2,%xmm2 + vpxor %xmm11,%xmm3,%xmm3 + vpxor %xmm12,%xmm4,%xmm4 + vmovdqu (%rcx),%xmm0 + vpxor %xmm0,%xmm1,%xmm1 + vpxor %xmm0,%xmm2,%xmm2 + vpxor %xmm0,%xmm3,%xmm3 + vpxor %xmm0,%xmm4,%xmm4 + vmovdqu 16(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vmovdqu 32(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vmovdqu 48(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vmovdqu 64(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vmovdqu 80(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vmovdqu 96(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vmovdqu 112(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vmovdqu 128(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vmovdqu 144(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vmovdqu 160(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vmovdqu 176(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vmovdqu 192(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vmovdqu 208(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vmovdqu 224(%rcx),%xmm0 + vaesdeclast %xmm0,%xmm1,%xmm1 + vaesdeclast %xmm0,%xmm2,%xmm2 + vaesdeclast %xmm0,%xmm3,%xmm3 + vaesdeclast %xmm0,%xmm4,%xmm4 + vpxor %xmm9,%xmm1,%xmm1 + vpxor %xmm10,%xmm2,%xmm2 + vpxor %xmm11,%xmm3,%xmm3 + vpxor %xmm12,%xmm4,%xmm4 + vmovdqu %xmm1,(%rsi) + vmovdqu %xmm2,16(%rsi) + vmovdqu %xmm3,32(%rsi) + addq $0x40,%rsi + vmovdqa %xmm13,%xmm0 + vmovdqa %xmm4,%xmm8 + jmp .L_steal_cipher_EmbgEptodyewbFa + +.L_done_4_EmbgEptodyewbFa: + vpxor %xmm9,%xmm1,%xmm1 + vpxor %xmm10,%xmm2,%xmm2 + vpxor %xmm11,%xmm3,%xmm3 + vpxor %xmm12,%xmm4,%xmm4 + vmovdqu (%rcx),%xmm0 + vpxor %xmm0,%xmm1,%xmm1 + vpxor %xmm0,%xmm2,%xmm2 + vpxor %xmm0,%xmm3,%xmm3 + vpxor %xmm0,%xmm4,%xmm4 + vmovdqu 16(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vmovdqu 32(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vmovdqu 48(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vmovdqu 64(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vmovdqu 80(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vmovdqu 96(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vmovdqu 112(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vmovdqu 128(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vmovdqu 144(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vmovdqu 160(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vmovdqu 176(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vmovdqu 192(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vmovdqu 208(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vmovdqu 224(%rcx),%xmm0 + vaesdeclast %xmm0,%xmm1,%xmm1 + vaesdeclast %xmm0,%xmm2,%xmm2 + vaesdeclast %xmm0,%xmm3,%xmm3 + vaesdeclast %xmm0,%xmm4,%xmm4 + vpxor %xmm9,%xmm1,%xmm1 + vpxor %xmm10,%xmm2,%xmm2 + vpxor %xmm11,%xmm3,%xmm3 + vpxor %xmm12,%xmm4,%xmm4 + vmovdqu %xmm1,(%rsi) + vmovdqu %xmm2,16(%rsi) + vmovdqu %xmm3,32(%rsi) + addq $0x40,%rsi + vmovdqa %xmm4,%xmm8 + jmp .L_done_EmbgEptodyewbFa + +.L_num_blocks_is_3_EmbgEptodyewbFa: + vmovdqa 0(%rsp),%xmm9 + movq 0(%rsp),%rax + movq 8(%rsp),%rbx + vmovdqu 0(%rdi),%xmm1 + xorq %r11,%r11 + shlq $1,%rax + adcq %rbx,%rbx + cmovcq %r10,%r11 + xorq %r11,%rax + movq %rax,16(%rsp) + movq %rbx,16 + 8(%rsp) + vmovdqa 16(%rsp),%xmm10 + vmovdqu 16(%rdi),%xmm2 + xorq %r11,%r11 + shlq $1,%rax + adcq %rbx,%rbx + cmovcq %r10,%r11 + xorq %r11,%rax + movq %rax,32(%rsp) + movq %rbx,32 + 8(%rsp) + vmovdqa 32(%rsp),%xmm11 + vmovdqu 32(%rdi),%xmm3 + addq $0x30,%rdi + andq $0xf,%rdx + je .L_done_3_EmbgEptodyewbFa + +.L_steal_cipher_3_EmbgEptodyewbFa: + xorq %r11,%r11 + shlq $1,%rax + adcq %rbx,%rbx + cmovcq %r10,%r11 + xorq %r11,%rax + movq %rax,16(%rsp) + movq %rbx,24(%rsp) + vmovdqa64 %xmm11,%xmm12 + vmovdqa 16(%rsp),%xmm11 + vpxor %xmm9,%xmm1,%xmm1 + vpxor %xmm10,%xmm2,%xmm2 + vpxor %xmm11,%xmm3,%xmm3 + vmovdqu (%rcx),%xmm0 + vpxor %xmm0,%xmm1,%xmm1 + vpxor %xmm0,%xmm2,%xmm2 + vpxor %xmm0,%xmm3,%xmm3 + vmovdqu 16(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 32(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 48(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 64(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 80(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 96(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 112(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 128(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 144(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 160(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 176(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 192(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 208(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 224(%rcx),%xmm0 + vaesdeclast %xmm0,%xmm1,%xmm1 + vaesdeclast %xmm0,%xmm2,%xmm2 + vaesdeclast %xmm0,%xmm3,%xmm3 + vpxor %xmm9,%xmm1,%xmm1 + vpxor %xmm10,%xmm2,%xmm2 + vpxor %xmm11,%xmm3,%xmm3 + vmovdqu %xmm1,(%rsi) + vmovdqu %xmm2,16(%rsi) + addq $0x30,%rsi + vmovdqa %xmm12,%xmm0 + vmovdqa %xmm3,%xmm8 + jmp .L_steal_cipher_EmbgEptodyewbFa + +.L_done_3_EmbgEptodyewbFa: + vpxor %xmm9,%xmm1,%xmm1 + vpxor %xmm10,%xmm2,%xmm2 + vpxor %xmm11,%xmm3,%xmm3 + vmovdqu (%rcx),%xmm0 + vpxor %xmm0,%xmm1,%xmm1 + vpxor %xmm0,%xmm2,%xmm2 + vpxor %xmm0,%xmm3,%xmm3 + vmovdqu 16(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 32(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 48(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 64(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 80(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 96(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 112(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 128(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 144(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 160(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 176(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 192(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 208(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 224(%rcx),%xmm0 + vaesdeclast %xmm0,%xmm1,%xmm1 + vaesdeclast %xmm0,%xmm2,%xmm2 + vaesdeclast %xmm0,%xmm3,%xmm3 + vpxor %xmm9,%xmm1,%xmm1 + vpxor %xmm10,%xmm2,%xmm2 + vpxor %xmm11,%xmm3,%xmm3 + vmovdqu %xmm1,(%rsi) + vmovdqu %xmm2,16(%rsi) + addq $0x30,%rsi + vmovdqa %xmm3,%xmm8 + jmp .L_done_EmbgEptodyewbFa + +.L_num_blocks_is_2_EmbgEptodyewbFa: + vmovdqa 0(%rsp),%xmm9 + movq 0(%rsp),%rax + movq 8(%rsp),%rbx + vmovdqu 0(%rdi),%xmm1 + xorq %r11,%r11 + shlq $1,%rax + adcq %rbx,%rbx + cmovcq %r10,%r11 + xorq %r11,%rax + movq %rax,16(%rsp) + movq %rbx,16 + 8(%rsp) + vmovdqa 16(%rsp),%xmm10 + vmovdqu 16(%rdi),%xmm2 + addq $0x20,%rdi + andq $0xf,%rdx + je .L_done_2_EmbgEptodyewbFa + +.L_steal_cipher_2_EmbgEptodyewbFa: + xorq %r11,%r11 + shlq $1,%rax + adcq %rbx,%rbx + cmovcq %r10,%r11 + xorq %r11,%rax + movq %rax,16(%rsp) + movq %rbx,24(%rsp) + vmovdqa64 %xmm10,%xmm11 + vmovdqa 16(%rsp),%xmm10 + vpxor %xmm9,%xmm1,%xmm1 + vpxor %xmm10,%xmm2,%xmm2 + vmovdqu (%rcx),%xmm0 + vpxor %xmm0,%xmm1,%xmm1 + vpxor %xmm0,%xmm2,%xmm2 + vmovdqu 16(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 32(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 48(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 64(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 80(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 96(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 112(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 128(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 144(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 160(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 176(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 192(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 208(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 224(%rcx),%xmm0 + vaesdeclast %xmm0,%xmm1,%xmm1 + vaesdeclast %xmm0,%xmm2,%xmm2 + vpxor %xmm9,%xmm1,%xmm1 + vpxor %xmm10,%xmm2,%xmm2 + vmovdqu %xmm1,(%rsi) + addq $0x20,%rsi + vmovdqa %xmm11,%xmm0 + vmovdqa %xmm2,%xmm8 + jmp .L_steal_cipher_EmbgEptodyewbFa + +.L_done_2_EmbgEptodyewbFa: + vpxor %xmm9,%xmm1,%xmm1 + vpxor %xmm10,%xmm2,%xmm2 + vmovdqu (%rcx),%xmm0 + vpxor %xmm0,%xmm1,%xmm1 + vpxor %xmm0,%xmm2,%xmm2 + vmovdqu 16(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 32(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 48(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 64(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 80(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 96(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 112(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 128(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 144(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 160(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 176(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 192(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 208(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 224(%rcx),%xmm0 + vaesdeclast %xmm0,%xmm1,%xmm1 + vaesdeclast %xmm0,%xmm2,%xmm2 + vpxor %xmm9,%xmm1,%xmm1 + vpxor %xmm10,%xmm2,%xmm2 + vmovdqu %xmm1,(%rsi) + addq $0x20,%rsi + vmovdqa %xmm2,%xmm8 + jmp .L_done_EmbgEptodyewbFa + +.L_num_blocks_is_1_EmbgEptodyewbFa: + vmovdqa 0(%rsp),%xmm9 + movq 0(%rsp),%rax + movq 8(%rsp),%rbx + vmovdqu 0(%rdi),%xmm1 + addq $0x10,%rdi + andq $0xf,%rdx + je .L_done_1_EmbgEptodyewbFa + +.L_steal_cipher_1_EmbgEptodyewbFa: + xorq %r11,%r11 + shlq $1,%rax + adcq %rbx,%rbx + cmovcq %r10,%r11 + xorq %r11,%rax + movq %rax,16(%rsp) + movq %rbx,24(%rsp) + vmovdqa64 %xmm9,%xmm10 + vmovdqa 16(%rsp),%xmm9 + vpxor %xmm9,%xmm1,%xmm1 + vmovdqu (%rcx),%xmm0 + vpxor %xmm0,%xmm1,%xmm1 + vmovdqu 16(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 32(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 48(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 64(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 80(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 96(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 112(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 128(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 144(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 160(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 176(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 192(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 208(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 224(%rcx),%xmm0 + vaesdeclast %xmm0,%xmm1,%xmm1 + vpxor %xmm9,%xmm1,%xmm1 + addq $0x10,%rsi + vmovdqa %xmm10,%xmm0 + vmovdqa %xmm1,%xmm8 + jmp .L_steal_cipher_EmbgEptodyewbFa + +.L_done_1_EmbgEptodyewbFa: + vpxor %xmm9,%xmm1,%xmm1 + vmovdqu (%rcx),%xmm0 + vpxor %xmm0,%xmm1,%xmm1 + vmovdqu 16(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 32(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 48(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 64(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 80(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 96(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 112(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 128(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 144(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 160(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 176(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 192(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 208(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 224(%rcx),%xmm0 + vaesdeclast %xmm0,%xmm1,%xmm1 + vpxor %xmm9,%xmm1,%xmm1 + addq $0x10,%rsi + vmovdqa %xmm1,%xmm8 + jmp .L_done_EmbgEptodyewbFa +.cfi_endproc +.section .rodata +.align 16 + +vpshufb_shf_table: +.quad 0x8786858483828100, 0x8f8e8d8c8b8a8988 +.quad 0x0706050403020100, 0x000e0d0c0b0a0908 + +mask1: +.quad 0x8080808080808080, 0x8080808080808080 + +const_dq3210: +.quad 0, 0, 1, 1, 2, 2, 3, 3 +const_dq5678: +.quad 8, 8, 7, 7, 6, 6, 5, 5 +const_dq7654: +.quad 4, 4, 5, 5, 6, 6, 7, 7 +const_dq1234: +.quad 4, 4, 3, 3, 2, 2, 1, 1 + +shufb_15_7: +.byte 15, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 7, 0xff, 0xff +.byte 0xff, 0xff, 0xff, 0xff, 0xff + +.text + .section ".note.gnu.property", "a" + .p2align 3 + .long 1f - 0f + .long 4f - 1f + .long 5 +0: + # "GNU" encoded with .byte, since .asciz isn't supported + # on Solaris. + .byte 0x47 + .byte 0x4e + .byte 0x55 + .byte 0 +1: + .p2align 3 + .long 0xc0000002 + .long 3f - 2f +2: + .long 3 +3: + .p2align 3 +4: diff --git a/deps/openssl/config/archs/BSD-x86_64/asm/crypto/aes/bsaes-x86_64.s b/deps/openssl/config/archs/BSD-x86_64/asm/crypto/aes/bsaes-x86_64.s index ff533b2df32c40..9705994c043782 100644 --- a/deps/openssl/config/archs/BSD-x86_64/asm/crypto/aes/bsaes-x86_64.s +++ b/deps/openssl/config/archs/BSD-x86_64/asm/crypto/aes/bsaes-x86_64.s @@ -1571,6 +1571,7 @@ ossl_bsaes_ctr32_encrypt_blocks: .align 16 ossl_bsaes_xts_encrypt: .cfi_startproc +.byte 243,15,30,250 movq %rsp,%rax .Lxts_enc_prologue: pushq %rbp @@ -2046,6 +2047,7 @@ ossl_bsaes_xts_encrypt: .align 16 ossl_bsaes_xts_decrypt: .cfi_startproc +.byte 243,15,30,250 movq %rsp,%rax .Lxts_dec_prologue: pushq %rbp @@ -2541,6 +2543,7 @@ ossl_bsaes_xts_decrypt: .cfi_endproc .size ossl_bsaes_xts_decrypt,.-ossl_bsaes_xts_decrypt .type _bsaes_const,@object +.section .rodata .align 64 _bsaes_const: .LM0ISR: @@ -2592,9 +2595,9 @@ _bsaes_const: .quad 0x02060a0e03070b0f, 0x0004080c0105090d .L63: .quad 0x6363636363636363, 0x6363636363636363 -.byte 66,105,116,45,115,108,105,99,101,100,32,65,69,83,32,102,111,114,32,120,56,54,95,54,52,47,83,83,83,69,51,44,32,69,109,105,108,105,97,32,75,195,164,115,112,101,114,44,32,80,101,116,101,114,32,83,99,104,119,97,98,101,44,32,65,110,100,121,32,80,111,108,121,97,107,111,118,0 .align 64 .size _bsaes_const,.-_bsaes_const +.byte 66,105,116,45,115,108,105,99,101,100,32,65,69,83,32,102,111,114,32,120,56,54,95,54,52,47,83,83,83,69,51,44,32,69,109,105,108,105,97,32,75,195,164,115,112,101,114,44,32,80,101,116,101,114,32,83,99,104,119,97,98,101,44,32,65,110,100,121,32,80,111,108,121,97,107,111,118,0 .section ".note.gnu.property", "a" .p2align 3 .long 1f - 0f diff --git a/deps/openssl/config/archs/BSD-x86_64/asm/crypto/aes/vpaes-x86_64.s b/deps/openssl/config/archs/BSD-x86_64/asm/crypto/aes/vpaes-x86_64.s index 7783c6a659f952..1c7816840a1fd4 100644 --- a/deps/openssl/config/archs/BSD-x86_64/asm/crypto/aes/vpaes-x86_64.s +++ b/deps/openssl/config/archs/BSD-x86_64/asm/crypto/aes/vpaes-x86_64.s @@ -758,6 +758,7 @@ _vpaes_preheat: .type _vpaes_consts,@object +.section .rodata .align 64 _vpaes_consts: .Lk_inv: @@ -853,9 +854,9 @@ _vpaes_consts: .Lk_dsbo: .quad 0x1387EA537EF94000, 0xC7AA6DB9D4943E2D .quad 0x12D7560F93441D00, 0xCA4B8159D8C58E9C -.byte 86,101,99,116,111,114,32,80,101,114,109,117,116,97,116,105,111,110,32,65,69,83,32,102,111,114,32,120,56,54,95,54,52,47,83,83,83,69,51,44,32,77,105,107,101,32,72,97,109,98,117,114,103,32,40,83,116,97,110,102,111,114,100,32,85,110,105,118,101,114,115,105,116,121,41,0 .align 64 .size _vpaes_consts,.-_vpaes_consts +.byte 86,101,99,116,111,114,32,80,101,114,109,117,116,97,116,105,111,110,32,65,69,83,32,102,111,114,32,120,56,54,95,54,52,47,83,83,83,69,51,44,32,77,105,107,101,32,72,97,109,98,117,114,103,32,40,83,116,97,110,102,111,114,100,32,85,110,105,118,101,114,115,105,116,121,41,0 .section ".note.gnu.property", "a" .p2align 3 .long 1f - 0f diff --git a/deps/openssl/config/archs/BSD-x86_64/asm/crypto/bn/rsaz-2k-avx512.s b/deps/openssl/config/archs/BSD-x86_64/asm/crypto/bn/rsaz-2k-avx512.s new file mode 100644 index 00000000000000..5b3611aadb4a9c --- /dev/null +++ b/deps/openssl/config/archs/BSD-x86_64/asm/crypto/bn/rsaz-2k-avx512.s @@ -0,0 +1,916 @@ + +.globl ossl_rsaz_avx512ifma_eligible +.type ossl_rsaz_avx512ifma_eligible,@function +.align 32 +ossl_rsaz_avx512ifma_eligible: + movl OPENSSL_ia32cap_P+8(%rip),%ecx + xorl %eax,%eax + andl $2149777408,%ecx + cmpl $2149777408,%ecx + cmovel %ecx,%eax + .byte 0xf3,0xc3 +.size ossl_rsaz_avx512ifma_eligible, .-ossl_rsaz_avx512ifma_eligible +.text + +.globl ossl_rsaz_amm52x20_x1_ifma256 +.type ossl_rsaz_amm52x20_x1_ifma256,@function +.align 32 +ossl_rsaz_amm52x20_x1_ifma256: +.cfi_startproc +.byte 243,15,30,250 + pushq %rbx +.cfi_adjust_cfa_offset 8 +.cfi_offset %rbx,-16 + pushq %rbp +.cfi_adjust_cfa_offset 8 +.cfi_offset %rbp,-24 + pushq %r12 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r12,-32 + pushq %r13 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r13,-40 + pushq %r14 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r14,-48 + pushq %r15 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r15,-56 +.Lossl_rsaz_amm52x20_x1_ifma256_body: + + + vpxord %ymm0,%ymm0,%ymm0 + vmovdqa64 %ymm0,%ymm3 + vmovdqa64 %ymm0,%ymm16 + vmovdqa64 %ymm0,%ymm17 + vmovdqa64 %ymm0,%ymm18 + vmovdqa64 %ymm0,%ymm19 + + xorl %r9d,%r9d + + movq %rdx,%r11 + movq $0xfffffffffffff,%rax + + + movl $5,%ebx + +.align 32 +.Lloop5: + movq 0(%r11),%r13 + + vpbroadcastq %r13,%ymm1 + movq 0(%rsi),%rdx + mulxq %r13,%r13,%r12 + addq %r13,%r9 + movq %r12,%r10 + adcq $0,%r10 + + movq %r8,%r13 + imulq %r9,%r13 + andq %rax,%r13 + + vpbroadcastq %r13,%ymm2 + movq 0(%rcx),%rdx + mulxq %r13,%r13,%r12 + addq %r13,%r9 + adcq %r12,%r10 + + shrq $52,%r9 + salq $12,%r10 + orq %r10,%r9 + + vpmadd52luq 0(%rsi),%ymm1,%ymm3 + vpmadd52luq 32(%rsi),%ymm1,%ymm16 + vpmadd52luq 64(%rsi),%ymm1,%ymm17 + vpmadd52luq 96(%rsi),%ymm1,%ymm18 + vpmadd52luq 128(%rsi),%ymm1,%ymm19 + + vpmadd52luq 0(%rcx),%ymm2,%ymm3 + vpmadd52luq 32(%rcx),%ymm2,%ymm16 + vpmadd52luq 64(%rcx),%ymm2,%ymm17 + vpmadd52luq 96(%rcx),%ymm2,%ymm18 + vpmadd52luq 128(%rcx),%ymm2,%ymm19 + + + valignq $1,%ymm3,%ymm16,%ymm3 + valignq $1,%ymm16,%ymm17,%ymm16 + valignq $1,%ymm17,%ymm18,%ymm17 + valignq $1,%ymm18,%ymm19,%ymm18 + valignq $1,%ymm19,%ymm0,%ymm19 + + vmovq %xmm3,%r13 + addq %r13,%r9 + + vpmadd52huq 0(%rsi),%ymm1,%ymm3 + vpmadd52huq 32(%rsi),%ymm1,%ymm16 + vpmadd52huq 64(%rsi),%ymm1,%ymm17 + vpmadd52huq 96(%rsi),%ymm1,%ymm18 + vpmadd52huq 128(%rsi),%ymm1,%ymm19 + + vpmadd52huq 0(%rcx),%ymm2,%ymm3 + vpmadd52huq 32(%rcx),%ymm2,%ymm16 + vpmadd52huq 64(%rcx),%ymm2,%ymm17 + vpmadd52huq 96(%rcx),%ymm2,%ymm18 + vpmadd52huq 128(%rcx),%ymm2,%ymm19 + movq 8(%r11),%r13 + + vpbroadcastq %r13,%ymm1 + movq 0(%rsi),%rdx + mulxq %r13,%r13,%r12 + addq %r13,%r9 + movq %r12,%r10 + adcq $0,%r10 + + movq %r8,%r13 + imulq %r9,%r13 + andq %rax,%r13 + + vpbroadcastq %r13,%ymm2 + movq 0(%rcx),%rdx + mulxq %r13,%r13,%r12 + addq %r13,%r9 + adcq %r12,%r10 + + shrq $52,%r9 + salq $12,%r10 + orq %r10,%r9 + + vpmadd52luq 0(%rsi),%ymm1,%ymm3 + vpmadd52luq 32(%rsi),%ymm1,%ymm16 + vpmadd52luq 64(%rsi),%ymm1,%ymm17 + vpmadd52luq 96(%rsi),%ymm1,%ymm18 + vpmadd52luq 128(%rsi),%ymm1,%ymm19 + + vpmadd52luq 0(%rcx),%ymm2,%ymm3 + vpmadd52luq 32(%rcx),%ymm2,%ymm16 + vpmadd52luq 64(%rcx),%ymm2,%ymm17 + vpmadd52luq 96(%rcx),%ymm2,%ymm18 + vpmadd52luq 128(%rcx),%ymm2,%ymm19 + + + valignq $1,%ymm3,%ymm16,%ymm3 + valignq $1,%ymm16,%ymm17,%ymm16 + valignq $1,%ymm17,%ymm18,%ymm17 + valignq $1,%ymm18,%ymm19,%ymm18 + valignq $1,%ymm19,%ymm0,%ymm19 + + vmovq %xmm3,%r13 + addq %r13,%r9 + + vpmadd52huq 0(%rsi),%ymm1,%ymm3 + vpmadd52huq 32(%rsi),%ymm1,%ymm16 + vpmadd52huq 64(%rsi),%ymm1,%ymm17 + vpmadd52huq 96(%rsi),%ymm1,%ymm18 + vpmadd52huq 128(%rsi),%ymm1,%ymm19 + + vpmadd52huq 0(%rcx),%ymm2,%ymm3 + vpmadd52huq 32(%rcx),%ymm2,%ymm16 + vpmadd52huq 64(%rcx),%ymm2,%ymm17 + vpmadd52huq 96(%rcx),%ymm2,%ymm18 + vpmadd52huq 128(%rcx),%ymm2,%ymm19 + movq 16(%r11),%r13 + + vpbroadcastq %r13,%ymm1 + movq 0(%rsi),%rdx + mulxq %r13,%r13,%r12 + addq %r13,%r9 + movq %r12,%r10 + adcq $0,%r10 + + movq %r8,%r13 + imulq %r9,%r13 + andq %rax,%r13 + + vpbroadcastq %r13,%ymm2 + movq 0(%rcx),%rdx + mulxq %r13,%r13,%r12 + addq %r13,%r9 + adcq %r12,%r10 + + shrq $52,%r9 + salq $12,%r10 + orq %r10,%r9 + + vpmadd52luq 0(%rsi),%ymm1,%ymm3 + vpmadd52luq 32(%rsi),%ymm1,%ymm16 + vpmadd52luq 64(%rsi),%ymm1,%ymm17 + vpmadd52luq 96(%rsi),%ymm1,%ymm18 + vpmadd52luq 128(%rsi),%ymm1,%ymm19 + + vpmadd52luq 0(%rcx),%ymm2,%ymm3 + vpmadd52luq 32(%rcx),%ymm2,%ymm16 + vpmadd52luq 64(%rcx),%ymm2,%ymm17 + vpmadd52luq 96(%rcx),%ymm2,%ymm18 + vpmadd52luq 128(%rcx),%ymm2,%ymm19 + + + valignq $1,%ymm3,%ymm16,%ymm3 + valignq $1,%ymm16,%ymm17,%ymm16 + valignq $1,%ymm17,%ymm18,%ymm17 + valignq $1,%ymm18,%ymm19,%ymm18 + valignq $1,%ymm19,%ymm0,%ymm19 + + vmovq %xmm3,%r13 + addq %r13,%r9 + + vpmadd52huq 0(%rsi),%ymm1,%ymm3 + vpmadd52huq 32(%rsi),%ymm1,%ymm16 + vpmadd52huq 64(%rsi),%ymm1,%ymm17 + vpmadd52huq 96(%rsi),%ymm1,%ymm18 + vpmadd52huq 128(%rsi),%ymm1,%ymm19 + + vpmadd52huq 0(%rcx),%ymm2,%ymm3 + vpmadd52huq 32(%rcx),%ymm2,%ymm16 + vpmadd52huq 64(%rcx),%ymm2,%ymm17 + vpmadd52huq 96(%rcx),%ymm2,%ymm18 + vpmadd52huq 128(%rcx),%ymm2,%ymm19 + movq 24(%r11),%r13 + + vpbroadcastq %r13,%ymm1 + movq 0(%rsi),%rdx + mulxq %r13,%r13,%r12 + addq %r13,%r9 + movq %r12,%r10 + adcq $0,%r10 + + movq %r8,%r13 + imulq %r9,%r13 + andq %rax,%r13 + + vpbroadcastq %r13,%ymm2 + movq 0(%rcx),%rdx + mulxq %r13,%r13,%r12 + addq %r13,%r9 + adcq %r12,%r10 + + shrq $52,%r9 + salq $12,%r10 + orq %r10,%r9 + + vpmadd52luq 0(%rsi),%ymm1,%ymm3 + vpmadd52luq 32(%rsi),%ymm1,%ymm16 + vpmadd52luq 64(%rsi),%ymm1,%ymm17 + vpmadd52luq 96(%rsi),%ymm1,%ymm18 + vpmadd52luq 128(%rsi),%ymm1,%ymm19 + + vpmadd52luq 0(%rcx),%ymm2,%ymm3 + vpmadd52luq 32(%rcx),%ymm2,%ymm16 + vpmadd52luq 64(%rcx),%ymm2,%ymm17 + vpmadd52luq 96(%rcx),%ymm2,%ymm18 + vpmadd52luq 128(%rcx),%ymm2,%ymm19 + + + valignq $1,%ymm3,%ymm16,%ymm3 + valignq $1,%ymm16,%ymm17,%ymm16 + valignq $1,%ymm17,%ymm18,%ymm17 + valignq $1,%ymm18,%ymm19,%ymm18 + valignq $1,%ymm19,%ymm0,%ymm19 + + vmovq %xmm3,%r13 + addq %r13,%r9 + + vpmadd52huq 0(%rsi),%ymm1,%ymm3 + vpmadd52huq 32(%rsi),%ymm1,%ymm16 + vpmadd52huq 64(%rsi),%ymm1,%ymm17 + vpmadd52huq 96(%rsi),%ymm1,%ymm18 + vpmadd52huq 128(%rsi),%ymm1,%ymm19 + + vpmadd52huq 0(%rcx),%ymm2,%ymm3 + vpmadd52huq 32(%rcx),%ymm2,%ymm16 + vpmadd52huq 64(%rcx),%ymm2,%ymm17 + vpmadd52huq 96(%rcx),%ymm2,%ymm18 + vpmadd52huq 128(%rcx),%ymm2,%ymm19 + leaq 32(%r11),%r11 + decl %ebx + jne .Lloop5 + + vpbroadcastq %r9,%ymm0 + vpblendd $3,%ymm0,%ymm3,%ymm3 + + + + vpsrlq $52,%ymm3,%ymm0 + vpsrlq $52,%ymm16,%ymm1 + vpsrlq $52,%ymm17,%ymm2 + vpsrlq $52,%ymm18,%ymm25 + vpsrlq $52,%ymm19,%ymm26 + + + valignq $3,%ymm25,%ymm26,%ymm26 + valignq $3,%ymm2,%ymm25,%ymm25 + valignq $3,%ymm1,%ymm2,%ymm2 + valignq $3,%ymm0,%ymm1,%ymm1 + valignq $3,.Lzeros(%rip),%ymm0,%ymm0 + + + vpandq .Lmask52x4(%rip),%ymm3,%ymm3 + vpandq .Lmask52x4(%rip),%ymm16,%ymm16 + vpandq .Lmask52x4(%rip),%ymm17,%ymm17 + vpandq .Lmask52x4(%rip),%ymm18,%ymm18 + vpandq .Lmask52x4(%rip),%ymm19,%ymm19 + + + vpaddq %ymm0,%ymm3,%ymm3 + vpaddq %ymm1,%ymm16,%ymm16 + vpaddq %ymm2,%ymm17,%ymm17 + vpaddq %ymm25,%ymm18,%ymm18 + vpaddq %ymm26,%ymm19,%ymm19 + + + + vpcmpuq $6,.Lmask52x4(%rip),%ymm3,%k1 + vpcmpuq $6,.Lmask52x4(%rip),%ymm16,%k2 + vpcmpuq $6,.Lmask52x4(%rip),%ymm17,%k3 + vpcmpuq $6,.Lmask52x4(%rip),%ymm18,%k4 + vpcmpuq $6,.Lmask52x4(%rip),%ymm19,%k5 + kmovb %k1,%r14d + kmovb %k2,%r13d + kmovb %k3,%r12d + kmovb %k4,%r11d + kmovb %k5,%r10d + + + vpcmpuq $0,.Lmask52x4(%rip),%ymm3,%k1 + vpcmpuq $0,.Lmask52x4(%rip),%ymm16,%k2 + vpcmpuq $0,.Lmask52x4(%rip),%ymm17,%k3 + vpcmpuq $0,.Lmask52x4(%rip),%ymm18,%k4 + vpcmpuq $0,.Lmask52x4(%rip),%ymm19,%k5 + kmovb %k1,%r9d + kmovb %k2,%r8d + kmovb %k3,%ebx + kmovb %k4,%ecx + kmovb %k5,%edx + + + + shlb $4,%r13b + orb %r13b,%r14b + shlb $4,%r11b + orb %r11b,%r12b + + addb %r14b,%r14b + adcb %r12b,%r12b + adcb %r10b,%r10b + + shlb $4,%r8b + orb %r8b,%r9b + shlb $4,%cl + orb %cl,%bl + + addb %r9b,%r14b + adcb %bl,%r12b + adcb %dl,%r10b + + xorb %r9b,%r14b + xorb %bl,%r12b + xorb %dl,%r10b + + kmovb %r14d,%k1 + shrb $4,%r14b + kmovb %r14d,%k2 + kmovb %r12d,%k3 + shrb $4,%r12b + kmovb %r12d,%k4 + kmovb %r10d,%k5 + + + vpsubq .Lmask52x4(%rip),%ymm3,%ymm3{%k1} + vpsubq .Lmask52x4(%rip),%ymm16,%ymm16{%k2} + vpsubq .Lmask52x4(%rip),%ymm17,%ymm17{%k3} + vpsubq .Lmask52x4(%rip),%ymm18,%ymm18{%k4} + vpsubq .Lmask52x4(%rip),%ymm19,%ymm19{%k5} + + vpandq .Lmask52x4(%rip),%ymm3,%ymm3 + vpandq .Lmask52x4(%rip),%ymm16,%ymm16 + vpandq .Lmask52x4(%rip),%ymm17,%ymm17 + vpandq .Lmask52x4(%rip),%ymm18,%ymm18 + vpandq .Lmask52x4(%rip),%ymm19,%ymm19 + + vmovdqu64 %ymm3,0(%rdi) + vmovdqu64 %ymm16,32(%rdi) + vmovdqu64 %ymm17,64(%rdi) + vmovdqu64 %ymm18,96(%rdi) + vmovdqu64 %ymm19,128(%rdi) + + vzeroupper + movq 0(%rsp),%r15 +.cfi_restore %r15 + movq 8(%rsp),%r14 +.cfi_restore %r14 + movq 16(%rsp),%r13 +.cfi_restore %r13 + movq 24(%rsp),%r12 +.cfi_restore %r12 + movq 32(%rsp),%rbp +.cfi_restore %rbp + movq 40(%rsp),%rbx +.cfi_restore %rbx + leaq 48(%rsp),%rsp +.cfi_adjust_cfa_offset -48 +.Lossl_rsaz_amm52x20_x1_ifma256_epilogue: + .byte 0xf3,0xc3 +.cfi_endproc +.size ossl_rsaz_amm52x20_x1_ifma256, .-ossl_rsaz_amm52x20_x1_ifma256 +.section .rodata +.align 32 +.Lmask52x4: +.quad 0xfffffffffffff +.quad 0xfffffffffffff +.quad 0xfffffffffffff +.quad 0xfffffffffffff +.text + +.globl ossl_rsaz_amm52x20_x2_ifma256 +.type ossl_rsaz_amm52x20_x2_ifma256,@function +.align 32 +ossl_rsaz_amm52x20_x2_ifma256: +.cfi_startproc +.byte 243,15,30,250 + pushq %rbx +.cfi_adjust_cfa_offset 8 +.cfi_offset %rbx,-16 + pushq %rbp +.cfi_adjust_cfa_offset 8 +.cfi_offset %rbp,-24 + pushq %r12 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r12,-32 + pushq %r13 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r13,-40 + pushq %r14 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r14,-48 + pushq %r15 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r15,-56 +.Lossl_rsaz_amm52x20_x2_ifma256_body: + + + vpxord %ymm0,%ymm0,%ymm0 + vmovdqa64 %ymm0,%ymm3 + vmovdqa64 %ymm0,%ymm16 + vmovdqa64 %ymm0,%ymm17 + vmovdqa64 %ymm0,%ymm18 + vmovdqa64 %ymm0,%ymm19 + vmovdqa64 %ymm0,%ymm4 + vmovdqa64 %ymm0,%ymm20 + vmovdqa64 %ymm0,%ymm21 + vmovdqa64 %ymm0,%ymm22 + vmovdqa64 %ymm0,%ymm23 + + xorl %r9d,%r9d + xorl %r15d,%r15d + + movq %rdx,%r11 + movq $0xfffffffffffff,%rax + + movl $20,%ebx + +.align 32 +.Lloop20: + movq 0(%r11),%r13 + + vpbroadcastq %r13,%ymm1 + movq 0(%rsi),%rdx + mulxq %r13,%r13,%r12 + addq %r13,%r9 + movq %r12,%r10 + adcq $0,%r10 + + movq (%r8),%r13 + imulq %r9,%r13 + andq %rax,%r13 + + vpbroadcastq %r13,%ymm2 + movq 0(%rcx),%rdx + mulxq %r13,%r13,%r12 + addq %r13,%r9 + adcq %r12,%r10 + + shrq $52,%r9 + salq $12,%r10 + orq %r10,%r9 + + vpmadd52luq 0(%rsi),%ymm1,%ymm3 + vpmadd52luq 32(%rsi),%ymm1,%ymm16 + vpmadd52luq 64(%rsi),%ymm1,%ymm17 + vpmadd52luq 96(%rsi),%ymm1,%ymm18 + vpmadd52luq 128(%rsi),%ymm1,%ymm19 + + vpmadd52luq 0(%rcx),%ymm2,%ymm3 + vpmadd52luq 32(%rcx),%ymm2,%ymm16 + vpmadd52luq 64(%rcx),%ymm2,%ymm17 + vpmadd52luq 96(%rcx),%ymm2,%ymm18 + vpmadd52luq 128(%rcx),%ymm2,%ymm19 + + + valignq $1,%ymm3,%ymm16,%ymm3 + valignq $1,%ymm16,%ymm17,%ymm16 + valignq $1,%ymm17,%ymm18,%ymm17 + valignq $1,%ymm18,%ymm19,%ymm18 + valignq $1,%ymm19,%ymm0,%ymm19 + + vmovq %xmm3,%r13 + addq %r13,%r9 + + vpmadd52huq 0(%rsi),%ymm1,%ymm3 + vpmadd52huq 32(%rsi),%ymm1,%ymm16 + vpmadd52huq 64(%rsi),%ymm1,%ymm17 + vpmadd52huq 96(%rsi),%ymm1,%ymm18 + vpmadd52huq 128(%rsi),%ymm1,%ymm19 + + vpmadd52huq 0(%rcx),%ymm2,%ymm3 + vpmadd52huq 32(%rcx),%ymm2,%ymm16 + vpmadd52huq 64(%rcx),%ymm2,%ymm17 + vpmadd52huq 96(%rcx),%ymm2,%ymm18 + vpmadd52huq 128(%rcx),%ymm2,%ymm19 + movq 160(%r11),%r13 + + vpbroadcastq %r13,%ymm1 + movq 160(%rsi),%rdx + mulxq %r13,%r13,%r12 + addq %r13,%r15 + movq %r12,%r10 + adcq $0,%r10 + + movq 8(%r8),%r13 + imulq %r15,%r13 + andq %rax,%r13 + + vpbroadcastq %r13,%ymm2 + movq 160(%rcx),%rdx + mulxq %r13,%r13,%r12 + addq %r13,%r15 + adcq %r12,%r10 + + shrq $52,%r15 + salq $12,%r10 + orq %r10,%r15 + + vpmadd52luq 160(%rsi),%ymm1,%ymm4 + vpmadd52luq 192(%rsi),%ymm1,%ymm20 + vpmadd52luq 224(%rsi),%ymm1,%ymm21 + vpmadd52luq 256(%rsi),%ymm1,%ymm22 + vpmadd52luq 288(%rsi),%ymm1,%ymm23 + + vpmadd52luq 160(%rcx),%ymm2,%ymm4 + vpmadd52luq 192(%rcx),%ymm2,%ymm20 + vpmadd52luq 224(%rcx),%ymm2,%ymm21 + vpmadd52luq 256(%rcx),%ymm2,%ymm22 + vpmadd52luq 288(%rcx),%ymm2,%ymm23 + + + valignq $1,%ymm4,%ymm20,%ymm4 + valignq $1,%ymm20,%ymm21,%ymm20 + valignq $1,%ymm21,%ymm22,%ymm21 + valignq $1,%ymm22,%ymm23,%ymm22 + valignq $1,%ymm23,%ymm0,%ymm23 + + vmovq %xmm4,%r13 + addq %r13,%r15 + + vpmadd52huq 160(%rsi),%ymm1,%ymm4 + vpmadd52huq 192(%rsi),%ymm1,%ymm20 + vpmadd52huq 224(%rsi),%ymm1,%ymm21 + vpmadd52huq 256(%rsi),%ymm1,%ymm22 + vpmadd52huq 288(%rsi),%ymm1,%ymm23 + + vpmadd52huq 160(%rcx),%ymm2,%ymm4 + vpmadd52huq 192(%rcx),%ymm2,%ymm20 + vpmadd52huq 224(%rcx),%ymm2,%ymm21 + vpmadd52huq 256(%rcx),%ymm2,%ymm22 + vpmadd52huq 288(%rcx),%ymm2,%ymm23 + leaq 8(%r11),%r11 + decl %ebx + jne .Lloop20 + + vpbroadcastq %r9,%ymm0 + vpblendd $3,%ymm0,%ymm3,%ymm3 + + + + vpsrlq $52,%ymm3,%ymm0 + vpsrlq $52,%ymm16,%ymm1 + vpsrlq $52,%ymm17,%ymm2 + vpsrlq $52,%ymm18,%ymm25 + vpsrlq $52,%ymm19,%ymm26 + + + valignq $3,%ymm25,%ymm26,%ymm26 + valignq $3,%ymm2,%ymm25,%ymm25 + valignq $3,%ymm1,%ymm2,%ymm2 + valignq $3,%ymm0,%ymm1,%ymm1 + valignq $3,.Lzeros(%rip),%ymm0,%ymm0 + + + vpandq .Lmask52x4(%rip),%ymm3,%ymm3 + vpandq .Lmask52x4(%rip),%ymm16,%ymm16 + vpandq .Lmask52x4(%rip),%ymm17,%ymm17 + vpandq .Lmask52x4(%rip),%ymm18,%ymm18 + vpandq .Lmask52x4(%rip),%ymm19,%ymm19 + + + vpaddq %ymm0,%ymm3,%ymm3 + vpaddq %ymm1,%ymm16,%ymm16 + vpaddq %ymm2,%ymm17,%ymm17 + vpaddq %ymm25,%ymm18,%ymm18 + vpaddq %ymm26,%ymm19,%ymm19 + + + + vpcmpuq $6,.Lmask52x4(%rip),%ymm3,%k1 + vpcmpuq $6,.Lmask52x4(%rip),%ymm16,%k2 + vpcmpuq $6,.Lmask52x4(%rip),%ymm17,%k3 + vpcmpuq $6,.Lmask52x4(%rip),%ymm18,%k4 + vpcmpuq $6,.Lmask52x4(%rip),%ymm19,%k5 + kmovb %k1,%r14d + kmovb %k2,%r13d + kmovb %k3,%r12d + kmovb %k4,%r11d + kmovb %k5,%r10d + + + vpcmpuq $0,.Lmask52x4(%rip),%ymm3,%k1 + vpcmpuq $0,.Lmask52x4(%rip),%ymm16,%k2 + vpcmpuq $0,.Lmask52x4(%rip),%ymm17,%k3 + vpcmpuq $0,.Lmask52x4(%rip),%ymm18,%k4 + vpcmpuq $0,.Lmask52x4(%rip),%ymm19,%k5 + kmovb %k1,%r9d + kmovb %k2,%r8d + kmovb %k3,%ebx + kmovb %k4,%ecx + kmovb %k5,%edx + + + + shlb $4,%r13b + orb %r13b,%r14b + shlb $4,%r11b + orb %r11b,%r12b + + addb %r14b,%r14b + adcb %r12b,%r12b + adcb %r10b,%r10b + + shlb $4,%r8b + orb %r8b,%r9b + shlb $4,%cl + orb %cl,%bl + + addb %r9b,%r14b + adcb %bl,%r12b + adcb %dl,%r10b + + xorb %r9b,%r14b + xorb %bl,%r12b + xorb %dl,%r10b + + kmovb %r14d,%k1 + shrb $4,%r14b + kmovb %r14d,%k2 + kmovb %r12d,%k3 + shrb $4,%r12b + kmovb %r12d,%k4 + kmovb %r10d,%k5 + + + vpsubq .Lmask52x4(%rip),%ymm3,%ymm3{%k1} + vpsubq .Lmask52x4(%rip),%ymm16,%ymm16{%k2} + vpsubq .Lmask52x4(%rip),%ymm17,%ymm17{%k3} + vpsubq .Lmask52x4(%rip),%ymm18,%ymm18{%k4} + vpsubq .Lmask52x4(%rip),%ymm19,%ymm19{%k5} + + vpandq .Lmask52x4(%rip),%ymm3,%ymm3 + vpandq .Lmask52x4(%rip),%ymm16,%ymm16 + vpandq .Lmask52x4(%rip),%ymm17,%ymm17 + vpandq .Lmask52x4(%rip),%ymm18,%ymm18 + vpandq .Lmask52x4(%rip),%ymm19,%ymm19 + + vpbroadcastq %r15,%ymm0 + vpblendd $3,%ymm0,%ymm4,%ymm4 + + + + vpsrlq $52,%ymm4,%ymm0 + vpsrlq $52,%ymm20,%ymm1 + vpsrlq $52,%ymm21,%ymm2 + vpsrlq $52,%ymm22,%ymm25 + vpsrlq $52,%ymm23,%ymm26 + + + valignq $3,%ymm25,%ymm26,%ymm26 + valignq $3,%ymm2,%ymm25,%ymm25 + valignq $3,%ymm1,%ymm2,%ymm2 + valignq $3,%ymm0,%ymm1,%ymm1 + valignq $3,.Lzeros(%rip),%ymm0,%ymm0 + + + vpandq .Lmask52x4(%rip),%ymm4,%ymm4 + vpandq .Lmask52x4(%rip),%ymm20,%ymm20 + vpandq .Lmask52x4(%rip),%ymm21,%ymm21 + vpandq .Lmask52x4(%rip),%ymm22,%ymm22 + vpandq .Lmask52x4(%rip),%ymm23,%ymm23 + + + vpaddq %ymm0,%ymm4,%ymm4 + vpaddq %ymm1,%ymm20,%ymm20 + vpaddq %ymm2,%ymm21,%ymm21 + vpaddq %ymm25,%ymm22,%ymm22 + vpaddq %ymm26,%ymm23,%ymm23 + + + + vpcmpuq $6,.Lmask52x4(%rip),%ymm4,%k1 + vpcmpuq $6,.Lmask52x4(%rip),%ymm20,%k2 + vpcmpuq $6,.Lmask52x4(%rip),%ymm21,%k3 + vpcmpuq $6,.Lmask52x4(%rip),%ymm22,%k4 + vpcmpuq $6,.Lmask52x4(%rip),%ymm23,%k5 + kmovb %k1,%r14d + kmovb %k2,%r13d + kmovb %k3,%r12d + kmovb %k4,%r11d + kmovb %k5,%r10d + + + vpcmpuq $0,.Lmask52x4(%rip),%ymm4,%k1 + vpcmpuq $0,.Lmask52x4(%rip),%ymm20,%k2 + vpcmpuq $0,.Lmask52x4(%rip),%ymm21,%k3 + vpcmpuq $0,.Lmask52x4(%rip),%ymm22,%k4 + vpcmpuq $0,.Lmask52x4(%rip),%ymm23,%k5 + kmovb %k1,%r9d + kmovb %k2,%r8d + kmovb %k3,%ebx + kmovb %k4,%ecx + kmovb %k5,%edx + + + + shlb $4,%r13b + orb %r13b,%r14b + shlb $4,%r11b + orb %r11b,%r12b + + addb %r14b,%r14b + adcb %r12b,%r12b + adcb %r10b,%r10b + + shlb $4,%r8b + orb %r8b,%r9b + shlb $4,%cl + orb %cl,%bl + + addb %r9b,%r14b + adcb %bl,%r12b + adcb %dl,%r10b + + xorb %r9b,%r14b + xorb %bl,%r12b + xorb %dl,%r10b + + kmovb %r14d,%k1 + shrb $4,%r14b + kmovb %r14d,%k2 + kmovb %r12d,%k3 + shrb $4,%r12b + kmovb %r12d,%k4 + kmovb %r10d,%k5 + + + vpsubq .Lmask52x4(%rip),%ymm4,%ymm4{%k1} + vpsubq .Lmask52x4(%rip),%ymm20,%ymm20{%k2} + vpsubq .Lmask52x4(%rip),%ymm21,%ymm21{%k3} + vpsubq .Lmask52x4(%rip),%ymm22,%ymm22{%k4} + vpsubq .Lmask52x4(%rip),%ymm23,%ymm23{%k5} + + vpandq .Lmask52x4(%rip),%ymm4,%ymm4 + vpandq .Lmask52x4(%rip),%ymm20,%ymm20 + vpandq .Lmask52x4(%rip),%ymm21,%ymm21 + vpandq .Lmask52x4(%rip),%ymm22,%ymm22 + vpandq .Lmask52x4(%rip),%ymm23,%ymm23 + + vmovdqu64 %ymm3,0(%rdi) + vmovdqu64 %ymm16,32(%rdi) + vmovdqu64 %ymm17,64(%rdi) + vmovdqu64 %ymm18,96(%rdi) + vmovdqu64 %ymm19,128(%rdi) + + vmovdqu64 %ymm4,160(%rdi) + vmovdqu64 %ymm20,192(%rdi) + vmovdqu64 %ymm21,224(%rdi) + vmovdqu64 %ymm22,256(%rdi) + vmovdqu64 %ymm23,288(%rdi) + + vzeroupper + movq 0(%rsp),%r15 +.cfi_restore %r15 + movq 8(%rsp),%r14 +.cfi_restore %r14 + movq 16(%rsp),%r13 +.cfi_restore %r13 + movq 24(%rsp),%r12 +.cfi_restore %r12 + movq 32(%rsp),%rbp +.cfi_restore %rbp + movq 40(%rsp),%rbx +.cfi_restore %rbx + leaq 48(%rsp),%rsp +.cfi_adjust_cfa_offset -48 +.Lossl_rsaz_amm52x20_x2_ifma256_epilogue: + .byte 0xf3,0xc3 +.cfi_endproc +.size ossl_rsaz_amm52x20_x2_ifma256, .-ossl_rsaz_amm52x20_x2_ifma256 +.text + +.align 32 +.globl ossl_extract_multiplier_2x20_win5 +.type ossl_extract_multiplier_2x20_win5,@function +ossl_extract_multiplier_2x20_win5: +.cfi_startproc +.byte 243,15,30,250 + vmovdqa64 .Lones(%rip),%ymm24 + vpbroadcastq %rdx,%ymm22 + vpbroadcastq %rcx,%ymm23 + leaq 10240(%rsi),%rax + + + vpxor %xmm0,%xmm0,%xmm0 + vmovdqa64 %ymm0,%ymm21 + vmovdqa64 %ymm0,%ymm1 + vmovdqa64 %ymm0,%ymm2 + vmovdqa64 %ymm0,%ymm3 + vmovdqa64 %ymm0,%ymm4 + vmovdqa64 %ymm0,%ymm5 + vmovdqa64 %ymm0,%ymm16 + vmovdqa64 %ymm0,%ymm17 + vmovdqa64 %ymm0,%ymm18 + vmovdqa64 %ymm0,%ymm19 + +.align 32 +.Lloop: + vpcmpq $0,%ymm21,%ymm22,%k1 + vpcmpq $0,%ymm21,%ymm23,%k2 + vmovdqu64 0(%rsi),%ymm20 + vpblendmq %ymm20,%ymm0,%ymm0{%k1} + vmovdqu64 32(%rsi),%ymm20 + vpblendmq %ymm20,%ymm1,%ymm1{%k1} + vmovdqu64 64(%rsi),%ymm20 + vpblendmq %ymm20,%ymm2,%ymm2{%k1} + vmovdqu64 96(%rsi),%ymm20 + vpblendmq %ymm20,%ymm3,%ymm3{%k1} + vmovdqu64 128(%rsi),%ymm20 + vpblendmq %ymm20,%ymm4,%ymm4{%k1} + vmovdqu64 160(%rsi),%ymm20 + vpblendmq %ymm20,%ymm5,%ymm5{%k2} + vmovdqu64 192(%rsi),%ymm20 + vpblendmq %ymm20,%ymm16,%ymm16{%k2} + vmovdqu64 224(%rsi),%ymm20 + vpblendmq %ymm20,%ymm17,%ymm17{%k2} + vmovdqu64 256(%rsi),%ymm20 + vpblendmq %ymm20,%ymm18,%ymm18{%k2} + vmovdqu64 288(%rsi),%ymm20 + vpblendmq %ymm20,%ymm19,%ymm19{%k2} + vpaddq %ymm24,%ymm21,%ymm21 + addq $320,%rsi + cmpq %rsi,%rax + jne .Lloop + vmovdqu64 %ymm0,0(%rdi) + vmovdqu64 %ymm1,32(%rdi) + vmovdqu64 %ymm2,64(%rdi) + vmovdqu64 %ymm3,96(%rdi) + vmovdqu64 %ymm4,128(%rdi) + vmovdqu64 %ymm5,160(%rdi) + vmovdqu64 %ymm16,192(%rdi) + vmovdqu64 %ymm17,224(%rdi) + vmovdqu64 %ymm18,256(%rdi) + vmovdqu64 %ymm19,288(%rdi) + .byte 0xf3,0xc3 +.cfi_endproc +.size ossl_extract_multiplier_2x20_win5, .-ossl_extract_multiplier_2x20_win5 +.section .rodata +.align 32 +.Lones: +.quad 1,1,1,1 +.Lzeros: +.quad 0,0,0,0 + .section ".note.gnu.property", "a" + .p2align 3 + .long 1f - 0f + .long 4f - 1f + .long 5 +0: + # "GNU" encoded with .byte, since .asciz isn't supported + # on Solaris. + .byte 0x47 + .byte 0x4e + .byte 0x55 + .byte 0 +1: + .p2align 3 + .long 0xc0000002 + .long 3f - 2f +2: + .long 3 +3: + .p2align 3 +4: diff --git a/deps/openssl/config/archs/BSD-x86_64/asm/crypto/bn/rsaz-2k-avxifma.s b/deps/openssl/config/archs/BSD-x86_64/asm/crypto/bn/rsaz-2k-avxifma.s new file mode 100644 index 00000000000000..4d776af5095e35 --- /dev/null +++ b/deps/openssl/config/archs/BSD-x86_64/asm/crypto/bn/rsaz-2k-avxifma.s @@ -0,0 +1,40 @@ +.text + +.globl ossl_rsaz_avxifma_eligible +.type ossl_rsaz_avxifma_eligible,@function +ossl_rsaz_avxifma_eligible: + xorl %eax,%eax + .byte 0xf3,0xc3 +.size ossl_rsaz_avxifma_eligible, .-ossl_rsaz_avxifma_eligible + +.globl ossl_rsaz_amm52x20_x1_avxifma256 +.globl ossl_rsaz_amm52x20_x2_avxifma256 +.globl ossl_extract_multiplier_2x20_win5_avx +.type ossl_rsaz_amm52x20_x1_avxifma256,@function +ossl_rsaz_amm52x20_x1_avxifma256: +ossl_rsaz_amm52x20_x2_avxifma256: +ossl_extract_multiplier_2x20_win5_avx: +.byte 0x0f,0x0b + .byte 0xf3,0xc3 +.size ossl_rsaz_amm52x20_x1_avxifma256, .-ossl_rsaz_amm52x20_x1_avxifma256 + .section ".note.gnu.property", "a" + .p2align 3 + .long 1f - 0f + .long 4f - 1f + .long 5 +0: + # "GNU" encoded with .byte, since .asciz isn't supported + # on Solaris. + .byte 0x47 + .byte 0x4e + .byte 0x55 + .byte 0 +1: + .p2align 3 + .long 0xc0000002 + .long 3f - 2f +2: + .long 3 +3: + .p2align 3 +4: diff --git a/deps/openssl/config/archs/BSD-x86_64/asm/crypto/bn/rsaz-3k-avx512.s b/deps/openssl/config/archs/BSD-x86_64/asm/crypto/bn/rsaz-3k-avx512.s new file mode 100644 index 00000000000000..022574148e8f23 --- /dev/null +++ b/deps/openssl/config/archs/BSD-x86_64/asm/crypto/bn/rsaz-3k-avx512.s @@ -0,0 +1,1331 @@ +.text + +.globl ossl_rsaz_amm52x30_x1_ifma256 +.type ossl_rsaz_amm52x30_x1_ifma256,@function +.align 32 +ossl_rsaz_amm52x30_x1_ifma256: +.cfi_startproc +.byte 243,15,30,250 + pushq %rbx +.cfi_adjust_cfa_offset 8 +.cfi_offset %rbx,-16 + pushq %rbp +.cfi_adjust_cfa_offset 8 +.cfi_offset %rbp,-24 + pushq %r12 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r12,-32 + pushq %r13 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r13,-40 + pushq %r14 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r14,-48 + pushq %r15 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r15,-56 + + vpxord %ymm0,%ymm0,%ymm0 + vmovdqa64 %ymm0,%ymm3 + vmovdqa64 %ymm0,%ymm4 + vmovdqa64 %ymm0,%ymm5 + vmovdqa64 %ymm0,%ymm6 + vmovdqa64 %ymm0,%ymm7 + vmovdqa64 %ymm0,%ymm8 + vmovdqa64 %ymm0,%ymm9 + vmovdqa64 %ymm0,%ymm10 + + xorl %r9d,%r9d + + movq %rdx,%r11 + movq $0xfffffffffffff,%rax + + + movl $7,%ebx + +.align 32 +.Lloop7: + movq 0(%r11),%r13 + + vpbroadcastq %r13,%ymm1 + movq 0(%rsi),%rdx + mulxq %r13,%r13,%r12 + addq %r13,%r9 + movq %r12,%r10 + adcq $0,%r10 + + movq %r8,%r13 + imulq %r9,%r13 + andq %rax,%r13 + + vpbroadcastq %r13,%ymm2 + movq 0(%rcx),%rdx + mulxq %r13,%r13,%r12 + addq %r13,%r9 + adcq %r12,%r10 + + shrq $52,%r9 + salq $12,%r10 + orq %r10,%r9 + + vpmadd52luq 0(%rsi),%ymm1,%ymm3 + vpmadd52luq 32(%rsi),%ymm1,%ymm4 + vpmadd52luq 64(%rsi),%ymm1,%ymm5 + vpmadd52luq 96(%rsi),%ymm1,%ymm6 + vpmadd52luq 128(%rsi),%ymm1,%ymm7 + vpmadd52luq 160(%rsi),%ymm1,%ymm8 + vpmadd52luq 192(%rsi),%ymm1,%ymm9 + vpmadd52luq 224(%rsi),%ymm1,%ymm10 + + vpmadd52luq 0(%rcx),%ymm2,%ymm3 + vpmadd52luq 32(%rcx),%ymm2,%ymm4 + vpmadd52luq 64(%rcx),%ymm2,%ymm5 + vpmadd52luq 96(%rcx),%ymm2,%ymm6 + vpmadd52luq 128(%rcx),%ymm2,%ymm7 + vpmadd52luq 160(%rcx),%ymm2,%ymm8 + vpmadd52luq 192(%rcx),%ymm2,%ymm9 + vpmadd52luq 224(%rcx),%ymm2,%ymm10 + + + valignq $1,%ymm3,%ymm4,%ymm3 + valignq $1,%ymm4,%ymm5,%ymm4 + valignq $1,%ymm5,%ymm6,%ymm5 + valignq $1,%ymm6,%ymm7,%ymm6 + valignq $1,%ymm7,%ymm8,%ymm7 + valignq $1,%ymm8,%ymm9,%ymm8 + valignq $1,%ymm9,%ymm10,%ymm9 + valignq $1,%ymm10,%ymm0,%ymm10 + + vmovq %xmm3,%r13 + addq %r13,%r9 + + vpmadd52huq 0(%rsi),%ymm1,%ymm3 + vpmadd52huq 32(%rsi),%ymm1,%ymm4 + vpmadd52huq 64(%rsi),%ymm1,%ymm5 + vpmadd52huq 96(%rsi),%ymm1,%ymm6 + vpmadd52huq 128(%rsi),%ymm1,%ymm7 + vpmadd52huq 160(%rsi),%ymm1,%ymm8 + vpmadd52huq 192(%rsi),%ymm1,%ymm9 + vpmadd52huq 224(%rsi),%ymm1,%ymm10 + + vpmadd52huq 0(%rcx),%ymm2,%ymm3 + vpmadd52huq 32(%rcx),%ymm2,%ymm4 + vpmadd52huq 64(%rcx),%ymm2,%ymm5 + vpmadd52huq 96(%rcx),%ymm2,%ymm6 + vpmadd52huq 128(%rcx),%ymm2,%ymm7 + vpmadd52huq 160(%rcx),%ymm2,%ymm8 + vpmadd52huq 192(%rcx),%ymm2,%ymm9 + vpmadd52huq 224(%rcx),%ymm2,%ymm10 + movq 8(%r11),%r13 + + vpbroadcastq %r13,%ymm1 + movq 0(%rsi),%rdx + mulxq %r13,%r13,%r12 + addq %r13,%r9 + movq %r12,%r10 + adcq $0,%r10 + + movq %r8,%r13 + imulq %r9,%r13 + andq %rax,%r13 + + vpbroadcastq %r13,%ymm2 + movq 0(%rcx),%rdx + mulxq %r13,%r13,%r12 + addq %r13,%r9 + adcq %r12,%r10 + + shrq $52,%r9 + salq $12,%r10 + orq %r10,%r9 + + vpmadd52luq 0(%rsi),%ymm1,%ymm3 + vpmadd52luq 32(%rsi),%ymm1,%ymm4 + vpmadd52luq 64(%rsi),%ymm1,%ymm5 + vpmadd52luq 96(%rsi),%ymm1,%ymm6 + vpmadd52luq 128(%rsi),%ymm1,%ymm7 + vpmadd52luq 160(%rsi),%ymm1,%ymm8 + vpmadd52luq 192(%rsi),%ymm1,%ymm9 + vpmadd52luq 224(%rsi),%ymm1,%ymm10 + + vpmadd52luq 0(%rcx),%ymm2,%ymm3 + vpmadd52luq 32(%rcx),%ymm2,%ymm4 + vpmadd52luq 64(%rcx),%ymm2,%ymm5 + vpmadd52luq 96(%rcx),%ymm2,%ymm6 + vpmadd52luq 128(%rcx),%ymm2,%ymm7 + vpmadd52luq 160(%rcx),%ymm2,%ymm8 + vpmadd52luq 192(%rcx),%ymm2,%ymm9 + vpmadd52luq 224(%rcx),%ymm2,%ymm10 + + + valignq $1,%ymm3,%ymm4,%ymm3 + valignq $1,%ymm4,%ymm5,%ymm4 + valignq $1,%ymm5,%ymm6,%ymm5 + valignq $1,%ymm6,%ymm7,%ymm6 + valignq $1,%ymm7,%ymm8,%ymm7 + valignq $1,%ymm8,%ymm9,%ymm8 + valignq $1,%ymm9,%ymm10,%ymm9 + valignq $1,%ymm10,%ymm0,%ymm10 + + vmovq %xmm3,%r13 + addq %r13,%r9 + + vpmadd52huq 0(%rsi),%ymm1,%ymm3 + vpmadd52huq 32(%rsi),%ymm1,%ymm4 + vpmadd52huq 64(%rsi),%ymm1,%ymm5 + vpmadd52huq 96(%rsi),%ymm1,%ymm6 + vpmadd52huq 128(%rsi),%ymm1,%ymm7 + vpmadd52huq 160(%rsi),%ymm1,%ymm8 + vpmadd52huq 192(%rsi),%ymm1,%ymm9 + vpmadd52huq 224(%rsi),%ymm1,%ymm10 + + vpmadd52huq 0(%rcx),%ymm2,%ymm3 + vpmadd52huq 32(%rcx),%ymm2,%ymm4 + vpmadd52huq 64(%rcx),%ymm2,%ymm5 + vpmadd52huq 96(%rcx),%ymm2,%ymm6 + vpmadd52huq 128(%rcx),%ymm2,%ymm7 + vpmadd52huq 160(%rcx),%ymm2,%ymm8 + vpmadd52huq 192(%rcx),%ymm2,%ymm9 + vpmadd52huq 224(%rcx),%ymm2,%ymm10 + movq 16(%r11),%r13 + + vpbroadcastq %r13,%ymm1 + movq 0(%rsi),%rdx + mulxq %r13,%r13,%r12 + addq %r13,%r9 + movq %r12,%r10 + adcq $0,%r10 + + movq %r8,%r13 + imulq %r9,%r13 + andq %rax,%r13 + + vpbroadcastq %r13,%ymm2 + movq 0(%rcx),%rdx + mulxq %r13,%r13,%r12 + addq %r13,%r9 + adcq %r12,%r10 + + shrq $52,%r9 + salq $12,%r10 + orq %r10,%r9 + + vpmadd52luq 0(%rsi),%ymm1,%ymm3 + vpmadd52luq 32(%rsi),%ymm1,%ymm4 + vpmadd52luq 64(%rsi),%ymm1,%ymm5 + vpmadd52luq 96(%rsi),%ymm1,%ymm6 + vpmadd52luq 128(%rsi),%ymm1,%ymm7 + vpmadd52luq 160(%rsi),%ymm1,%ymm8 + vpmadd52luq 192(%rsi),%ymm1,%ymm9 + vpmadd52luq 224(%rsi),%ymm1,%ymm10 + + vpmadd52luq 0(%rcx),%ymm2,%ymm3 + vpmadd52luq 32(%rcx),%ymm2,%ymm4 + vpmadd52luq 64(%rcx),%ymm2,%ymm5 + vpmadd52luq 96(%rcx),%ymm2,%ymm6 + vpmadd52luq 128(%rcx),%ymm2,%ymm7 + vpmadd52luq 160(%rcx),%ymm2,%ymm8 + vpmadd52luq 192(%rcx),%ymm2,%ymm9 + vpmadd52luq 224(%rcx),%ymm2,%ymm10 + + + valignq $1,%ymm3,%ymm4,%ymm3 + valignq $1,%ymm4,%ymm5,%ymm4 + valignq $1,%ymm5,%ymm6,%ymm5 + valignq $1,%ymm6,%ymm7,%ymm6 + valignq $1,%ymm7,%ymm8,%ymm7 + valignq $1,%ymm8,%ymm9,%ymm8 + valignq $1,%ymm9,%ymm10,%ymm9 + valignq $1,%ymm10,%ymm0,%ymm10 + + vmovq %xmm3,%r13 + addq %r13,%r9 + + vpmadd52huq 0(%rsi),%ymm1,%ymm3 + vpmadd52huq 32(%rsi),%ymm1,%ymm4 + vpmadd52huq 64(%rsi),%ymm1,%ymm5 + vpmadd52huq 96(%rsi),%ymm1,%ymm6 + vpmadd52huq 128(%rsi),%ymm1,%ymm7 + vpmadd52huq 160(%rsi),%ymm1,%ymm8 + vpmadd52huq 192(%rsi),%ymm1,%ymm9 + vpmadd52huq 224(%rsi),%ymm1,%ymm10 + + vpmadd52huq 0(%rcx),%ymm2,%ymm3 + vpmadd52huq 32(%rcx),%ymm2,%ymm4 + vpmadd52huq 64(%rcx),%ymm2,%ymm5 + vpmadd52huq 96(%rcx),%ymm2,%ymm6 + vpmadd52huq 128(%rcx),%ymm2,%ymm7 + vpmadd52huq 160(%rcx),%ymm2,%ymm8 + vpmadd52huq 192(%rcx),%ymm2,%ymm9 + vpmadd52huq 224(%rcx),%ymm2,%ymm10 + movq 24(%r11),%r13 + + vpbroadcastq %r13,%ymm1 + movq 0(%rsi),%rdx + mulxq %r13,%r13,%r12 + addq %r13,%r9 + movq %r12,%r10 + adcq $0,%r10 + + movq %r8,%r13 + imulq %r9,%r13 + andq %rax,%r13 + + vpbroadcastq %r13,%ymm2 + movq 0(%rcx),%rdx + mulxq %r13,%r13,%r12 + addq %r13,%r9 + adcq %r12,%r10 + + shrq $52,%r9 + salq $12,%r10 + orq %r10,%r9 + + vpmadd52luq 0(%rsi),%ymm1,%ymm3 + vpmadd52luq 32(%rsi),%ymm1,%ymm4 + vpmadd52luq 64(%rsi),%ymm1,%ymm5 + vpmadd52luq 96(%rsi),%ymm1,%ymm6 + vpmadd52luq 128(%rsi),%ymm1,%ymm7 + vpmadd52luq 160(%rsi),%ymm1,%ymm8 + vpmadd52luq 192(%rsi),%ymm1,%ymm9 + vpmadd52luq 224(%rsi),%ymm1,%ymm10 + + vpmadd52luq 0(%rcx),%ymm2,%ymm3 + vpmadd52luq 32(%rcx),%ymm2,%ymm4 + vpmadd52luq 64(%rcx),%ymm2,%ymm5 + vpmadd52luq 96(%rcx),%ymm2,%ymm6 + vpmadd52luq 128(%rcx),%ymm2,%ymm7 + vpmadd52luq 160(%rcx),%ymm2,%ymm8 + vpmadd52luq 192(%rcx),%ymm2,%ymm9 + vpmadd52luq 224(%rcx),%ymm2,%ymm10 + + + valignq $1,%ymm3,%ymm4,%ymm3 + valignq $1,%ymm4,%ymm5,%ymm4 + valignq $1,%ymm5,%ymm6,%ymm5 + valignq $1,%ymm6,%ymm7,%ymm6 + valignq $1,%ymm7,%ymm8,%ymm7 + valignq $1,%ymm8,%ymm9,%ymm8 + valignq $1,%ymm9,%ymm10,%ymm9 + valignq $1,%ymm10,%ymm0,%ymm10 + + vmovq %xmm3,%r13 + addq %r13,%r9 + + vpmadd52huq 0(%rsi),%ymm1,%ymm3 + vpmadd52huq 32(%rsi),%ymm1,%ymm4 + vpmadd52huq 64(%rsi),%ymm1,%ymm5 + vpmadd52huq 96(%rsi),%ymm1,%ymm6 + vpmadd52huq 128(%rsi),%ymm1,%ymm7 + vpmadd52huq 160(%rsi),%ymm1,%ymm8 + vpmadd52huq 192(%rsi),%ymm1,%ymm9 + vpmadd52huq 224(%rsi),%ymm1,%ymm10 + + vpmadd52huq 0(%rcx),%ymm2,%ymm3 + vpmadd52huq 32(%rcx),%ymm2,%ymm4 + vpmadd52huq 64(%rcx),%ymm2,%ymm5 + vpmadd52huq 96(%rcx),%ymm2,%ymm6 + vpmadd52huq 128(%rcx),%ymm2,%ymm7 + vpmadd52huq 160(%rcx),%ymm2,%ymm8 + vpmadd52huq 192(%rcx),%ymm2,%ymm9 + vpmadd52huq 224(%rcx),%ymm2,%ymm10 + leaq 32(%r11),%r11 + decl %ebx + jne .Lloop7 + movq 0(%r11),%r13 + + vpbroadcastq %r13,%ymm1 + movq 0(%rsi),%rdx + mulxq %r13,%r13,%r12 + addq %r13,%r9 + movq %r12,%r10 + adcq $0,%r10 + + movq %r8,%r13 + imulq %r9,%r13 + andq %rax,%r13 + + vpbroadcastq %r13,%ymm2 + movq 0(%rcx),%rdx + mulxq %r13,%r13,%r12 + addq %r13,%r9 + adcq %r12,%r10 + + shrq $52,%r9 + salq $12,%r10 + orq %r10,%r9 + + vpmadd52luq 0(%rsi),%ymm1,%ymm3 + vpmadd52luq 32(%rsi),%ymm1,%ymm4 + vpmadd52luq 64(%rsi),%ymm1,%ymm5 + vpmadd52luq 96(%rsi),%ymm1,%ymm6 + vpmadd52luq 128(%rsi),%ymm1,%ymm7 + vpmadd52luq 160(%rsi),%ymm1,%ymm8 + vpmadd52luq 192(%rsi),%ymm1,%ymm9 + vpmadd52luq 224(%rsi),%ymm1,%ymm10 + + vpmadd52luq 0(%rcx),%ymm2,%ymm3 + vpmadd52luq 32(%rcx),%ymm2,%ymm4 + vpmadd52luq 64(%rcx),%ymm2,%ymm5 + vpmadd52luq 96(%rcx),%ymm2,%ymm6 + vpmadd52luq 128(%rcx),%ymm2,%ymm7 + vpmadd52luq 160(%rcx),%ymm2,%ymm8 + vpmadd52luq 192(%rcx),%ymm2,%ymm9 + vpmadd52luq 224(%rcx),%ymm2,%ymm10 + + + valignq $1,%ymm3,%ymm4,%ymm3 + valignq $1,%ymm4,%ymm5,%ymm4 + valignq $1,%ymm5,%ymm6,%ymm5 + valignq $1,%ymm6,%ymm7,%ymm6 + valignq $1,%ymm7,%ymm8,%ymm7 + valignq $1,%ymm8,%ymm9,%ymm8 + valignq $1,%ymm9,%ymm10,%ymm9 + valignq $1,%ymm10,%ymm0,%ymm10 + + vmovq %xmm3,%r13 + addq %r13,%r9 + + vpmadd52huq 0(%rsi),%ymm1,%ymm3 + vpmadd52huq 32(%rsi),%ymm1,%ymm4 + vpmadd52huq 64(%rsi),%ymm1,%ymm5 + vpmadd52huq 96(%rsi),%ymm1,%ymm6 + vpmadd52huq 128(%rsi),%ymm1,%ymm7 + vpmadd52huq 160(%rsi),%ymm1,%ymm8 + vpmadd52huq 192(%rsi),%ymm1,%ymm9 + vpmadd52huq 224(%rsi),%ymm1,%ymm10 + + vpmadd52huq 0(%rcx),%ymm2,%ymm3 + vpmadd52huq 32(%rcx),%ymm2,%ymm4 + vpmadd52huq 64(%rcx),%ymm2,%ymm5 + vpmadd52huq 96(%rcx),%ymm2,%ymm6 + vpmadd52huq 128(%rcx),%ymm2,%ymm7 + vpmadd52huq 160(%rcx),%ymm2,%ymm8 + vpmadd52huq 192(%rcx),%ymm2,%ymm9 + vpmadd52huq 224(%rcx),%ymm2,%ymm10 + movq 8(%r11),%r13 + + vpbroadcastq %r13,%ymm1 + movq 0(%rsi),%rdx + mulxq %r13,%r13,%r12 + addq %r13,%r9 + movq %r12,%r10 + adcq $0,%r10 + + movq %r8,%r13 + imulq %r9,%r13 + andq %rax,%r13 + + vpbroadcastq %r13,%ymm2 + movq 0(%rcx),%rdx + mulxq %r13,%r13,%r12 + addq %r13,%r9 + adcq %r12,%r10 + + shrq $52,%r9 + salq $12,%r10 + orq %r10,%r9 + + vpmadd52luq 0(%rsi),%ymm1,%ymm3 + vpmadd52luq 32(%rsi),%ymm1,%ymm4 + vpmadd52luq 64(%rsi),%ymm1,%ymm5 + vpmadd52luq 96(%rsi),%ymm1,%ymm6 + vpmadd52luq 128(%rsi),%ymm1,%ymm7 + vpmadd52luq 160(%rsi),%ymm1,%ymm8 + vpmadd52luq 192(%rsi),%ymm1,%ymm9 + vpmadd52luq 224(%rsi),%ymm1,%ymm10 + + vpmadd52luq 0(%rcx),%ymm2,%ymm3 + vpmadd52luq 32(%rcx),%ymm2,%ymm4 + vpmadd52luq 64(%rcx),%ymm2,%ymm5 + vpmadd52luq 96(%rcx),%ymm2,%ymm6 + vpmadd52luq 128(%rcx),%ymm2,%ymm7 + vpmadd52luq 160(%rcx),%ymm2,%ymm8 + vpmadd52luq 192(%rcx),%ymm2,%ymm9 + vpmadd52luq 224(%rcx),%ymm2,%ymm10 + + + valignq $1,%ymm3,%ymm4,%ymm3 + valignq $1,%ymm4,%ymm5,%ymm4 + valignq $1,%ymm5,%ymm6,%ymm5 + valignq $1,%ymm6,%ymm7,%ymm6 + valignq $1,%ymm7,%ymm8,%ymm7 + valignq $1,%ymm8,%ymm9,%ymm8 + valignq $1,%ymm9,%ymm10,%ymm9 + valignq $1,%ymm10,%ymm0,%ymm10 + + vmovq %xmm3,%r13 + addq %r13,%r9 + + vpmadd52huq 0(%rsi),%ymm1,%ymm3 + vpmadd52huq 32(%rsi),%ymm1,%ymm4 + vpmadd52huq 64(%rsi),%ymm1,%ymm5 + vpmadd52huq 96(%rsi),%ymm1,%ymm6 + vpmadd52huq 128(%rsi),%ymm1,%ymm7 + vpmadd52huq 160(%rsi),%ymm1,%ymm8 + vpmadd52huq 192(%rsi),%ymm1,%ymm9 + vpmadd52huq 224(%rsi),%ymm1,%ymm10 + + vpmadd52huq 0(%rcx),%ymm2,%ymm3 + vpmadd52huq 32(%rcx),%ymm2,%ymm4 + vpmadd52huq 64(%rcx),%ymm2,%ymm5 + vpmadd52huq 96(%rcx),%ymm2,%ymm6 + vpmadd52huq 128(%rcx),%ymm2,%ymm7 + vpmadd52huq 160(%rcx),%ymm2,%ymm8 + vpmadd52huq 192(%rcx),%ymm2,%ymm9 + vpmadd52huq 224(%rcx),%ymm2,%ymm10 + + vpbroadcastq %r9,%ymm0 + vpblendd $3,%ymm0,%ymm3,%ymm3 + + + + vpsrlq $52,%ymm3,%ymm0 + vpsrlq $52,%ymm4,%ymm1 + vpsrlq $52,%ymm5,%ymm2 + vpsrlq $52,%ymm6,%ymm19 + vpsrlq $52,%ymm7,%ymm20 + vpsrlq $52,%ymm8,%ymm21 + vpsrlq $52,%ymm9,%ymm22 + vpsrlq $52,%ymm10,%ymm23 + + + valignq $3,%ymm22,%ymm23,%ymm23 + valignq $3,%ymm21,%ymm22,%ymm22 + valignq $3,%ymm20,%ymm21,%ymm21 + valignq $3,%ymm19,%ymm20,%ymm20 + valignq $3,%ymm2,%ymm19,%ymm19 + valignq $3,%ymm1,%ymm2,%ymm2 + valignq $3,%ymm0,%ymm1,%ymm1 + valignq $3,.Lzeros(%rip),%ymm0,%ymm0 + + + vpandq .Lmask52x4(%rip),%ymm3,%ymm3 + vpandq .Lmask52x4(%rip),%ymm4,%ymm4 + vpandq .Lmask52x4(%rip),%ymm5,%ymm5 + vpandq .Lmask52x4(%rip),%ymm6,%ymm6 + vpandq .Lmask52x4(%rip),%ymm7,%ymm7 + vpandq .Lmask52x4(%rip),%ymm8,%ymm8 + vpandq .Lmask52x4(%rip),%ymm9,%ymm9 + vpandq .Lmask52x4(%rip),%ymm10,%ymm10 + + + vpaddq %ymm0,%ymm3,%ymm3 + vpaddq %ymm1,%ymm4,%ymm4 + vpaddq %ymm2,%ymm5,%ymm5 + vpaddq %ymm19,%ymm6,%ymm6 + vpaddq %ymm20,%ymm7,%ymm7 + vpaddq %ymm21,%ymm8,%ymm8 + vpaddq %ymm22,%ymm9,%ymm9 + vpaddq %ymm23,%ymm10,%ymm10 + + + + vpcmpuq $6,.Lmask52x4(%rip),%ymm3,%k1 + vpcmpuq $6,.Lmask52x4(%rip),%ymm4,%k2 + kmovb %k1,%r14d + kmovb %k2,%r13d + shlb $4,%r13b + orb %r13b,%r14b + + vpcmpuq $6,.Lmask52x4(%rip),%ymm5,%k1 + vpcmpuq $6,.Lmask52x4(%rip),%ymm6,%k2 + kmovb %k1,%r13d + kmovb %k2,%r12d + shlb $4,%r12b + orb %r12b,%r13b + + vpcmpuq $6,.Lmask52x4(%rip),%ymm7,%k1 + vpcmpuq $6,.Lmask52x4(%rip),%ymm8,%k2 + kmovb %k1,%r12d + kmovb %k2,%r11d + shlb $4,%r11b + orb %r11b,%r12b + + vpcmpuq $6,.Lmask52x4(%rip),%ymm9,%k1 + vpcmpuq $6,.Lmask52x4(%rip),%ymm10,%k2 + kmovb %k1,%r11d + kmovb %k2,%r10d + shlb $4,%r10b + orb %r10b,%r11b + + addb %r14b,%r14b + adcb %r13b,%r13b + adcb %r12b,%r12b + adcb %r11b,%r11b + + + vpcmpuq $0,.Lmask52x4(%rip),%ymm3,%k1 + vpcmpuq $0,.Lmask52x4(%rip),%ymm4,%k2 + kmovb %k1,%r9d + kmovb %k2,%r8d + shlb $4,%r8b + orb %r8b,%r9b + + vpcmpuq $0,.Lmask52x4(%rip),%ymm5,%k1 + vpcmpuq $0,.Lmask52x4(%rip),%ymm6,%k2 + kmovb %k1,%r8d + kmovb %k2,%edx + shlb $4,%dl + orb %dl,%r8b + + vpcmpuq $0,.Lmask52x4(%rip),%ymm7,%k1 + vpcmpuq $0,.Lmask52x4(%rip),%ymm8,%k2 + kmovb %k1,%edx + kmovb %k2,%ecx + shlb $4,%cl + orb %cl,%dl + + vpcmpuq $0,.Lmask52x4(%rip),%ymm9,%k1 + vpcmpuq $0,.Lmask52x4(%rip),%ymm10,%k2 + kmovb %k1,%ecx + kmovb %k2,%ebx + shlb $4,%bl + orb %bl,%cl + + addb %r9b,%r14b + adcb %r8b,%r13b + adcb %dl,%r12b + adcb %cl,%r11b + + xorb %r9b,%r14b + xorb %r8b,%r13b + xorb %dl,%r12b + xorb %cl,%r11b + + kmovb %r14d,%k1 + shrb $4,%r14b + kmovb %r14d,%k2 + kmovb %r13d,%k3 + shrb $4,%r13b + kmovb %r13d,%k4 + kmovb %r12d,%k5 + shrb $4,%r12b + kmovb %r12d,%k6 + kmovb %r11d,%k7 + + vpsubq .Lmask52x4(%rip),%ymm3,%ymm3{%k1} + vpsubq .Lmask52x4(%rip),%ymm4,%ymm4{%k2} + vpsubq .Lmask52x4(%rip),%ymm5,%ymm5{%k3} + vpsubq .Lmask52x4(%rip),%ymm6,%ymm6{%k4} + vpsubq .Lmask52x4(%rip),%ymm7,%ymm7{%k5} + vpsubq .Lmask52x4(%rip),%ymm8,%ymm8{%k6} + vpsubq .Lmask52x4(%rip),%ymm9,%ymm9{%k7} + + vpandq .Lmask52x4(%rip),%ymm3,%ymm3 + vpandq .Lmask52x4(%rip),%ymm4,%ymm4 + vpandq .Lmask52x4(%rip),%ymm5,%ymm5 + vpandq .Lmask52x4(%rip),%ymm6,%ymm6 + vpandq .Lmask52x4(%rip),%ymm7,%ymm7 + vpandq .Lmask52x4(%rip),%ymm8,%ymm8 + vpandq .Lmask52x4(%rip),%ymm9,%ymm9 + + shrb $4,%r11b + kmovb %r11d,%k1 + + vpsubq .Lmask52x4(%rip),%ymm10,%ymm10{%k1} + + vpandq .Lmask52x4(%rip),%ymm10,%ymm10 + + vmovdqu64 %ymm3,0(%rdi) + vmovdqu64 %ymm4,32(%rdi) + vmovdqu64 %ymm5,64(%rdi) + vmovdqu64 %ymm6,96(%rdi) + vmovdqu64 %ymm7,128(%rdi) + vmovdqu64 %ymm8,160(%rdi) + vmovdqu64 %ymm9,192(%rdi) + vmovdqu64 %ymm10,224(%rdi) + + vzeroupper + leaq (%rsp),%rax +.cfi_def_cfa_register %rax + movq 0(%rax),%r15 +.cfi_restore %r15 + movq 8(%rax),%r14 +.cfi_restore %r14 + movq 16(%rax),%r13 +.cfi_restore %r13 + movq 24(%rax),%r12 +.cfi_restore %r12 + movq 32(%rax),%rbp +.cfi_restore %rbp + movq 40(%rax),%rbx +.cfi_restore %rbx + leaq 48(%rax),%rsp +.cfi_def_cfa %rsp,8 +.Lossl_rsaz_amm52x30_x1_ifma256_epilogue: + .byte 0xf3,0xc3 +.cfi_endproc +.size ossl_rsaz_amm52x30_x1_ifma256, .-ossl_rsaz_amm52x30_x1_ifma256 +.section .rodata +.align 32 +.Lmask52x4: +.quad 0xfffffffffffff +.quad 0xfffffffffffff +.quad 0xfffffffffffff +.quad 0xfffffffffffff +.text + +.globl ossl_rsaz_amm52x30_x2_ifma256 +.type ossl_rsaz_amm52x30_x2_ifma256,@function +.align 32 +ossl_rsaz_amm52x30_x2_ifma256: +.cfi_startproc +.byte 243,15,30,250 + pushq %rbx +.cfi_adjust_cfa_offset 8 +.cfi_offset %rbx,-16 + pushq %rbp +.cfi_adjust_cfa_offset 8 +.cfi_offset %rbp,-24 + pushq %r12 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r12,-32 + pushq %r13 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r13,-40 + pushq %r14 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r14,-48 + pushq %r15 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r15,-56 + + vpxord %ymm0,%ymm0,%ymm0 + vmovdqa64 %ymm0,%ymm3 + vmovdqa64 %ymm0,%ymm4 + vmovdqa64 %ymm0,%ymm5 + vmovdqa64 %ymm0,%ymm6 + vmovdqa64 %ymm0,%ymm7 + vmovdqa64 %ymm0,%ymm8 + vmovdqa64 %ymm0,%ymm9 + vmovdqa64 %ymm0,%ymm10 + + vmovdqa64 %ymm0,%ymm11 + vmovdqa64 %ymm0,%ymm12 + vmovdqa64 %ymm0,%ymm13 + vmovdqa64 %ymm0,%ymm14 + vmovdqa64 %ymm0,%ymm15 + vmovdqa64 %ymm0,%ymm16 + vmovdqa64 %ymm0,%ymm17 + vmovdqa64 %ymm0,%ymm18 + + + xorl %r9d,%r9d + xorl %r15d,%r15d + + movq %rdx,%r11 + movq $0xfffffffffffff,%rax + + movl $30,%ebx + +.align 32 +.Lloop30: + movq 0(%r11),%r13 + + vpbroadcastq %r13,%ymm1 + movq 0(%rsi),%rdx + mulxq %r13,%r13,%r12 + addq %r13,%r9 + movq %r12,%r10 + adcq $0,%r10 + + movq (%r8),%r13 + imulq %r9,%r13 + andq %rax,%r13 + + vpbroadcastq %r13,%ymm2 + movq 0(%rcx),%rdx + mulxq %r13,%r13,%r12 + addq %r13,%r9 + adcq %r12,%r10 + + shrq $52,%r9 + salq $12,%r10 + orq %r10,%r9 + + vpmadd52luq 0(%rsi),%ymm1,%ymm3 + vpmadd52luq 32(%rsi),%ymm1,%ymm4 + vpmadd52luq 64(%rsi),%ymm1,%ymm5 + vpmadd52luq 96(%rsi),%ymm1,%ymm6 + vpmadd52luq 128(%rsi),%ymm1,%ymm7 + vpmadd52luq 160(%rsi),%ymm1,%ymm8 + vpmadd52luq 192(%rsi),%ymm1,%ymm9 + vpmadd52luq 224(%rsi),%ymm1,%ymm10 + + vpmadd52luq 0(%rcx),%ymm2,%ymm3 + vpmadd52luq 32(%rcx),%ymm2,%ymm4 + vpmadd52luq 64(%rcx),%ymm2,%ymm5 + vpmadd52luq 96(%rcx),%ymm2,%ymm6 + vpmadd52luq 128(%rcx),%ymm2,%ymm7 + vpmadd52luq 160(%rcx),%ymm2,%ymm8 + vpmadd52luq 192(%rcx),%ymm2,%ymm9 + vpmadd52luq 224(%rcx),%ymm2,%ymm10 + + + valignq $1,%ymm3,%ymm4,%ymm3 + valignq $1,%ymm4,%ymm5,%ymm4 + valignq $1,%ymm5,%ymm6,%ymm5 + valignq $1,%ymm6,%ymm7,%ymm6 + valignq $1,%ymm7,%ymm8,%ymm7 + valignq $1,%ymm8,%ymm9,%ymm8 + valignq $1,%ymm9,%ymm10,%ymm9 + valignq $1,%ymm10,%ymm0,%ymm10 + + vmovq %xmm3,%r13 + addq %r13,%r9 + + vpmadd52huq 0(%rsi),%ymm1,%ymm3 + vpmadd52huq 32(%rsi),%ymm1,%ymm4 + vpmadd52huq 64(%rsi),%ymm1,%ymm5 + vpmadd52huq 96(%rsi),%ymm1,%ymm6 + vpmadd52huq 128(%rsi),%ymm1,%ymm7 + vpmadd52huq 160(%rsi),%ymm1,%ymm8 + vpmadd52huq 192(%rsi),%ymm1,%ymm9 + vpmadd52huq 224(%rsi),%ymm1,%ymm10 + + vpmadd52huq 0(%rcx),%ymm2,%ymm3 + vpmadd52huq 32(%rcx),%ymm2,%ymm4 + vpmadd52huq 64(%rcx),%ymm2,%ymm5 + vpmadd52huq 96(%rcx),%ymm2,%ymm6 + vpmadd52huq 128(%rcx),%ymm2,%ymm7 + vpmadd52huq 160(%rcx),%ymm2,%ymm8 + vpmadd52huq 192(%rcx),%ymm2,%ymm9 + vpmadd52huq 224(%rcx),%ymm2,%ymm10 + movq 256(%r11),%r13 + + vpbroadcastq %r13,%ymm1 + movq 256(%rsi),%rdx + mulxq %r13,%r13,%r12 + addq %r13,%r15 + movq %r12,%r10 + adcq $0,%r10 + + movq 8(%r8),%r13 + imulq %r15,%r13 + andq %rax,%r13 + + vpbroadcastq %r13,%ymm2 + movq 256(%rcx),%rdx + mulxq %r13,%r13,%r12 + addq %r13,%r15 + adcq %r12,%r10 + + shrq $52,%r15 + salq $12,%r10 + orq %r10,%r15 + + vpmadd52luq 256(%rsi),%ymm1,%ymm11 + vpmadd52luq 288(%rsi),%ymm1,%ymm12 + vpmadd52luq 320(%rsi),%ymm1,%ymm13 + vpmadd52luq 352(%rsi),%ymm1,%ymm14 + vpmadd52luq 384(%rsi),%ymm1,%ymm15 + vpmadd52luq 416(%rsi),%ymm1,%ymm16 + vpmadd52luq 448(%rsi),%ymm1,%ymm17 + vpmadd52luq 480(%rsi),%ymm1,%ymm18 + + vpmadd52luq 256(%rcx),%ymm2,%ymm11 + vpmadd52luq 288(%rcx),%ymm2,%ymm12 + vpmadd52luq 320(%rcx),%ymm2,%ymm13 + vpmadd52luq 352(%rcx),%ymm2,%ymm14 + vpmadd52luq 384(%rcx),%ymm2,%ymm15 + vpmadd52luq 416(%rcx),%ymm2,%ymm16 + vpmadd52luq 448(%rcx),%ymm2,%ymm17 + vpmadd52luq 480(%rcx),%ymm2,%ymm18 + + + valignq $1,%ymm11,%ymm12,%ymm11 + valignq $1,%ymm12,%ymm13,%ymm12 + valignq $1,%ymm13,%ymm14,%ymm13 + valignq $1,%ymm14,%ymm15,%ymm14 + valignq $1,%ymm15,%ymm16,%ymm15 + valignq $1,%ymm16,%ymm17,%ymm16 + valignq $1,%ymm17,%ymm18,%ymm17 + valignq $1,%ymm18,%ymm0,%ymm18 + + vmovq %xmm11,%r13 + addq %r13,%r15 + + vpmadd52huq 256(%rsi),%ymm1,%ymm11 + vpmadd52huq 288(%rsi),%ymm1,%ymm12 + vpmadd52huq 320(%rsi),%ymm1,%ymm13 + vpmadd52huq 352(%rsi),%ymm1,%ymm14 + vpmadd52huq 384(%rsi),%ymm1,%ymm15 + vpmadd52huq 416(%rsi),%ymm1,%ymm16 + vpmadd52huq 448(%rsi),%ymm1,%ymm17 + vpmadd52huq 480(%rsi),%ymm1,%ymm18 + + vpmadd52huq 256(%rcx),%ymm2,%ymm11 + vpmadd52huq 288(%rcx),%ymm2,%ymm12 + vpmadd52huq 320(%rcx),%ymm2,%ymm13 + vpmadd52huq 352(%rcx),%ymm2,%ymm14 + vpmadd52huq 384(%rcx),%ymm2,%ymm15 + vpmadd52huq 416(%rcx),%ymm2,%ymm16 + vpmadd52huq 448(%rcx),%ymm2,%ymm17 + vpmadd52huq 480(%rcx),%ymm2,%ymm18 + leaq 8(%r11),%r11 + decl %ebx + jne .Lloop30 + + vpbroadcastq %r9,%ymm0 + vpblendd $3,%ymm0,%ymm3,%ymm3 + + + + vpsrlq $52,%ymm3,%ymm0 + vpsrlq $52,%ymm4,%ymm1 + vpsrlq $52,%ymm5,%ymm2 + vpsrlq $52,%ymm6,%ymm19 + vpsrlq $52,%ymm7,%ymm20 + vpsrlq $52,%ymm8,%ymm21 + vpsrlq $52,%ymm9,%ymm22 + vpsrlq $52,%ymm10,%ymm23 + + + valignq $3,%ymm22,%ymm23,%ymm23 + valignq $3,%ymm21,%ymm22,%ymm22 + valignq $3,%ymm20,%ymm21,%ymm21 + valignq $3,%ymm19,%ymm20,%ymm20 + valignq $3,%ymm2,%ymm19,%ymm19 + valignq $3,%ymm1,%ymm2,%ymm2 + valignq $3,%ymm0,%ymm1,%ymm1 + valignq $3,.Lzeros(%rip),%ymm0,%ymm0 + + + vpandq .Lmask52x4(%rip),%ymm3,%ymm3 + vpandq .Lmask52x4(%rip),%ymm4,%ymm4 + vpandq .Lmask52x4(%rip),%ymm5,%ymm5 + vpandq .Lmask52x4(%rip),%ymm6,%ymm6 + vpandq .Lmask52x4(%rip),%ymm7,%ymm7 + vpandq .Lmask52x4(%rip),%ymm8,%ymm8 + vpandq .Lmask52x4(%rip),%ymm9,%ymm9 + vpandq .Lmask52x4(%rip),%ymm10,%ymm10 + + + vpaddq %ymm0,%ymm3,%ymm3 + vpaddq %ymm1,%ymm4,%ymm4 + vpaddq %ymm2,%ymm5,%ymm5 + vpaddq %ymm19,%ymm6,%ymm6 + vpaddq %ymm20,%ymm7,%ymm7 + vpaddq %ymm21,%ymm8,%ymm8 + vpaddq %ymm22,%ymm9,%ymm9 + vpaddq %ymm23,%ymm10,%ymm10 + + + + vpcmpuq $6,.Lmask52x4(%rip),%ymm3,%k1 + vpcmpuq $6,.Lmask52x4(%rip),%ymm4,%k2 + kmovb %k1,%r14d + kmovb %k2,%r13d + shlb $4,%r13b + orb %r13b,%r14b + + vpcmpuq $6,.Lmask52x4(%rip),%ymm5,%k1 + vpcmpuq $6,.Lmask52x4(%rip),%ymm6,%k2 + kmovb %k1,%r13d + kmovb %k2,%r12d + shlb $4,%r12b + orb %r12b,%r13b + + vpcmpuq $6,.Lmask52x4(%rip),%ymm7,%k1 + vpcmpuq $6,.Lmask52x4(%rip),%ymm8,%k2 + kmovb %k1,%r12d + kmovb %k2,%r11d + shlb $4,%r11b + orb %r11b,%r12b + + vpcmpuq $6,.Lmask52x4(%rip),%ymm9,%k1 + vpcmpuq $6,.Lmask52x4(%rip),%ymm10,%k2 + kmovb %k1,%r11d + kmovb %k2,%r10d + shlb $4,%r10b + orb %r10b,%r11b + + addb %r14b,%r14b + adcb %r13b,%r13b + adcb %r12b,%r12b + adcb %r11b,%r11b + + + vpcmpuq $0,.Lmask52x4(%rip),%ymm3,%k1 + vpcmpuq $0,.Lmask52x4(%rip),%ymm4,%k2 + kmovb %k1,%r9d + kmovb %k2,%r8d + shlb $4,%r8b + orb %r8b,%r9b + + vpcmpuq $0,.Lmask52x4(%rip),%ymm5,%k1 + vpcmpuq $0,.Lmask52x4(%rip),%ymm6,%k2 + kmovb %k1,%r8d + kmovb %k2,%edx + shlb $4,%dl + orb %dl,%r8b + + vpcmpuq $0,.Lmask52x4(%rip),%ymm7,%k1 + vpcmpuq $0,.Lmask52x4(%rip),%ymm8,%k2 + kmovb %k1,%edx + kmovb %k2,%ecx + shlb $4,%cl + orb %cl,%dl + + vpcmpuq $0,.Lmask52x4(%rip),%ymm9,%k1 + vpcmpuq $0,.Lmask52x4(%rip),%ymm10,%k2 + kmovb %k1,%ecx + kmovb %k2,%ebx + shlb $4,%bl + orb %bl,%cl + + addb %r9b,%r14b + adcb %r8b,%r13b + adcb %dl,%r12b + adcb %cl,%r11b + + xorb %r9b,%r14b + xorb %r8b,%r13b + xorb %dl,%r12b + xorb %cl,%r11b + + kmovb %r14d,%k1 + shrb $4,%r14b + kmovb %r14d,%k2 + kmovb %r13d,%k3 + shrb $4,%r13b + kmovb %r13d,%k4 + kmovb %r12d,%k5 + shrb $4,%r12b + kmovb %r12d,%k6 + kmovb %r11d,%k7 + + vpsubq .Lmask52x4(%rip),%ymm3,%ymm3{%k1} + vpsubq .Lmask52x4(%rip),%ymm4,%ymm4{%k2} + vpsubq .Lmask52x4(%rip),%ymm5,%ymm5{%k3} + vpsubq .Lmask52x4(%rip),%ymm6,%ymm6{%k4} + vpsubq .Lmask52x4(%rip),%ymm7,%ymm7{%k5} + vpsubq .Lmask52x4(%rip),%ymm8,%ymm8{%k6} + vpsubq .Lmask52x4(%rip),%ymm9,%ymm9{%k7} + + vpandq .Lmask52x4(%rip),%ymm3,%ymm3 + vpandq .Lmask52x4(%rip),%ymm4,%ymm4 + vpandq .Lmask52x4(%rip),%ymm5,%ymm5 + vpandq .Lmask52x4(%rip),%ymm6,%ymm6 + vpandq .Lmask52x4(%rip),%ymm7,%ymm7 + vpandq .Lmask52x4(%rip),%ymm8,%ymm8 + vpandq .Lmask52x4(%rip),%ymm9,%ymm9 + + shrb $4,%r11b + kmovb %r11d,%k1 + + vpsubq .Lmask52x4(%rip),%ymm10,%ymm10{%k1} + + vpandq .Lmask52x4(%rip),%ymm10,%ymm10 + + vpbroadcastq %r15,%ymm0 + vpblendd $3,%ymm0,%ymm11,%ymm11 + + + + vpsrlq $52,%ymm11,%ymm0 + vpsrlq $52,%ymm12,%ymm1 + vpsrlq $52,%ymm13,%ymm2 + vpsrlq $52,%ymm14,%ymm19 + vpsrlq $52,%ymm15,%ymm20 + vpsrlq $52,%ymm16,%ymm21 + vpsrlq $52,%ymm17,%ymm22 + vpsrlq $52,%ymm18,%ymm23 + + + valignq $3,%ymm22,%ymm23,%ymm23 + valignq $3,%ymm21,%ymm22,%ymm22 + valignq $3,%ymm20,%ymm21,%ymm21 + valignq $3,%ymm19,%ymm20,%ymm20 + valignq $3,%ymm2,%ymm19,%ymm19 + valignq $3,%ymm1,%ymm2,%ymm2 + valignq $3,%ymm0,%ymm1,%ymm1 + valignq $3,.Lzeros(%rip),%ymm0,%ymm0 + + + vpandq .Lmask52x4(%rip),%ymm11,%ymm11 + vpandq .Lmask52x4(%rip),%ymm12,%ymm12 + vpandq .Lmask52x4(%rip),%ymm13,%ymm13 + vpandq .Lmask52x4(%rip),%ymm14,%ymm14 + vpandq .Lmask52x4(%rip),%ymm15,%ymm15 + vpandq .Lmask52x4(%rip),%ymm16,%ymm16 + vpandq .Lmask52x4(%rip),%ymm17,%ymm17 + vpandq .Lmask52x4(%rip),%ymm18,%ymm18 + + + vpaddq %ymm0,%ymm11,%ymm11 + vpaddq %ymm1,%ymm12,%ymm12 + vpaddq %ymm2,%ymm13,%ymm13 + vpaddq %ymm19,%ymm14,%ymm14 + vpaddq %ymm20,%ymm15,%ymm15 + vpaddq %ymm21,%ymm16,%ymm16 + vpaddq %ymm22,%ymm17,%ymm17 + vpaddq %ymm23,%ymm18,%ymm18 + + + + vpcmpuq $6,.Lmask52x4(%rip),%ymm11,%k1 + vpcmpuq $6,.Lmask52x4(%rip),%ymm12,%k2 + kmovb %k1,%r14d + kmovb %k2,%r13d + shlb $4,%r13b + orb %r13b,%r14b + + vpcmpuq $6,.Lmask52x4(%rip),%ymm13,%k1 + vpcmpuq $6,.Lmask52x4(%rip),%ymm14,%k2 + kmovb %k1,%r13d + kmovb %k2,%r12d + shlb $4,%r12b + orb %r12b,%r13b + + vpcmpuq $6,.Lmask52x4(%rip),%ymm15,%k1 + vpcmpuq $6,.Lmask52x4(%rip),%ymm16,%k2 + kmovb %k1,%r12d + kmovb %k2,%r11d + shlb $4,%r11b + orb %r11b,%r12b + + vpcmpuq $6,.Lmask52x4(%rip),%ymm17,%k1 + vpcmpuq $6,.Lmask52x4(%rip),%ymm18,%k2 + kmovb %k1,%r11d + kmovb %k2,%r10d + shlb $4,%r10b + orb %r10b,%r11b + + addb %r14b,%r14b + adcb %r13b,%r13b + adcb %r12b,%r12b + adcb %r11b,%r11b + + + vpcmpuq $0,.Lmask52x4(%rip),%ymm11,%k1 + vpcmpuq $0,.Lmask52x4(%rip),%ymm12,%k2 + kmovb %k1,%r9d + kmovb %k2,%r8d + shlb $4,%r8b + orb %r8b,%r9b + + vpcmpuq $0,.Lmask52x4(%rip),%ymm13,%k1 + vpcmpuq $0,.Lmask52x4(%rip),%ymm14,%k2 + kmovb %k1,%r8d + kmovb %k2,%edx + shlb $4,%dl + orb %dl,%r8b + + vpcmpuq $0,.Lmask52x4(%rip),%ymm15,%k1 + vpcmpuq $0,.Lmask52x4(%rip),%ymm16,%k2 + kmovb %k1,%edx + kmovb %k2,%ecx + shlb $4,%cl + orb %cl,%dl + + vpcmpuq $0,.Lmask52x4(%rip),%ymm17,%k1 + vpcmpuq $0,.Lmask52x4(%rip),%ymm18,%k2 + kmovb %k1,%ecx + kmovb %k2,%ebx + shlb $4,%bl + orb %bl,%cl + + addb %r9b,%r14b + adcb %r8b,%r13b + adcb %dl,%r12b + adcb %cl,%r11b + + xorb %r9b,%r14b + xorb %r8b,%r13b + xorb %dl,%r12b + xorb %cl,%r11b + + kmovb %r14d,%k1 + shrb $4,%r14b + kmovb %r14d,%k2 + kmovb %r13d,%k3 + shrb $4,%r13b + kmovb %r13d,%k4 + kmovb %r12d,%k5 + shrb $4,%r12b + kmovb %r12d,%k6 + kmovb %r11d,%k7 + + vpsubq .Lmask52x4(%rip),%ymm11,%ymm11{%k1} + vpsubq .Lmask52x4(%rip),%ymm12,%ymm12{%k2} + vpsubq .Lmask52x4(%rip),%ymm13,%ymm13{%k3} + vpsubq .Lmask52x4(%rip),%ymm14,%ymm14{%k4} + vpsubq .Lmask52x4(%rip),%ymm15,%ymm15{%k5} + vpsubq .Lmask52x4(%rip),%ymm16,%ymm16{%k6} + vpsubq .Lmask52x4(%rip),%ymm17,%ymm17{%k7} + + vpandq .Lmask52x4(%rip),%ymm11,%ymm11 + vpandq .Lmask52x4(%rip),%ymm12,%ymm12 + vpandq .Lmask52x4(%rip),%ymm13,%ymm13 + vpandq .Lmask52x4(%rip),%ymm14,%ymm14 + vpandq .Lmask52x4(%rip),%ymm15,%ymm15 + vpandq .Lmask52x4(%rip),%ymm16,%ymm16 + vpandq .Lmask52x4(%rip),%ymm17,%ymm17 + + shrb $4,%r11b + kmovb %r11d,%k1 + + vpsubq .Lmask52x4(%rip),%ymm18,%ymm18{%k1} + + vpandq .Lmask52x4(%rip),%ymm18,%ymm18 + + vmovdqu64 %ymm3,0(%rdi) + vmovdqu64 %ymm4,32(%rdi) + vmovdqu64 %ymm5,64(%rdi) + vmovdqu64 %ymm6,96(%rdi) + vmovdqu64 %ymm7,128(%rdi) + vmovdqu64 %ymm8,160(%rdi) + vmovdqu64 %ymm9,192(%rdi) + vmovdqu64 %ymm10,224(%rdi) + + vmovdqu64 %ymm11,256(%rdi) + vmovdqu64 %ymm12,288(%rdi) + vmovdqu64 %ymm13,320(%rdi) + vmovdqu64 %ymm14,352(%rdi) + vmovdqu64 %ymm15,384(%rdi) + vmovdqu64 %ymm16,416(%rdi) + vmovdqu64 %ymm17,448(%rdi) + vmovdqu64 %ymm18,480(%rdi) + + vzeroupper + leaq (%rsp),%rax +.cfi_def_cfa_register %rax + movq 0(%rax),%r15 +.cfi_restore %r15 + movq 8(%rax),%r14 +.cfi_restore %r14 + movq 16(%rax),%r13 +.cfi_restore %r13 + movq 24(%rax),%r12 +.cfi_restore %r12 + movq 32(%rax),%rbp +.cfi_restore %rbp + movq 40(%rax),%rbx +.cfi_restore %rbx + leaq 48(%rax),%rsp +.cfi_def_cfa %rsp,8 +.Lossl_rsaz_amm52x30_x2_ifma256_epilogue: + .byte 0xf3,0xc3 +.cfi_endproc +.size ossl_rsaz_amm52x30_x2_ifma256, .-ossl_rsaz_amm52x30_x2_ifma256 +.text + +.align 32 +.globl ossl_extract_multiplier_2x30_win5 +.type ossl_extract_multiplier_2x30_win5,@function +ossl_extract_multiplier_2x30_win5: +.cfi_startproc +.byte 243,15,30,250 + vmovdqa64 .Lones(%rip),%ymm30 + vpbroadcastq %rdx,%ymm28 + vpbroadcastq %rcx,%ymm29 + leaq 16384(%rsi),%rax + + + vpxor %xmm0,%xmm0,%xmm0 + vmovdqa64 %ymm0,%ymm27 + vmovdqa64 %ymm0,%ymm1 + vmovdqa64 %ymm0,%ymm2 + vmovdqa64 %ymm0,%ymm3 + vmovdqa64 %ymm0,%ymm4 + vmovdqa64 %ymm0,%ymm5 + vmovdqa64 %ymm0,%ymm16 + vmovdqa64 %ymm0,%ymm17 + vmovdqa64 %ymm0,%ymm18 + vmovdqa64 %ymm0,%ymm19 + vmovdqa64 %ymm0,%ymm20 + vmovdqa64 %ymm0,%ymm21 + vmovdqa64 %ymm0,%ymm22 + vmovdqa64 %ymm0,%ymm23 + vmovdqa64 %ymm0,%ymm24 + vmovdqa64 %ymm0,%ymm25 + +.align 32 +.Lloop: + vpcmpq $0,%ymm27,%ymm28,%k1 + vpcmpq $0,%ymm27,%ymm29,%k2 + vmovdqu64 0(%rsi),%ymm26 + vpblendmq %ymm26,%ymm0,%ymm0{%k1} + vmovdqu64 32(%rsi),%ymm26 + vpblendmq %ymm26,%ymm1,%ymm1{%k1} + vmovdqu64 64(%rsi),%ymm26 + vpblendmq %ymm26,%ymm2,%ymm2{%k1} + vmovdqu64 96(%rsi),%ymm26 + vpblendmq %ymm26,%ymm3,%ymm3{%k1} + vmovdqu64 128(%rsi),%ymm26 + vpblendmq %ymm26,%ymm4,%ymm4{%k1} + vmovdqu64 160(%rsi),%ymm26 + vpblendmq %ymm26,%ymm5,%ymm5{%k1} + vmovdqu64 192(%rsi),%ymm26 + vpblendmq %ymm26,%ymm16,%ymm16{%k1} + vmovdqu64 224(%rsi),%ymm26 + vpblendmq %ymm26,%ymm17,%ymm17{%k1} + vmovdqu64 256(%rsi),%ymm26 + vpblendmq %ymm26,%ymm18,%ymm18{%k2} + vmovdqu64 288(%rsi),%ymm26 + vpblendmq %ymm26,%ymm19,%ymm19{%k2} + vmovdqu64 320(%rsi),%ymm26 + vpblendmq %ymm26,%ymm20,%ymm20{%k2} + vmovdqu64 352(%rsi),%ymm26 + vpblendmq %ymm26,%ymm21,%ymm21{%k2} + vmovdqu64 384(%rsi),%ymm26 + vpblendmq %ymm26,%ymm22,%ymm22{%k2} + vmovdqu64 416(%rsi),%ymm26 + vpblendmq %ymm26,%ymm23,%ymm23{%k2} + vmovdqu64 448(%rsi),%ymm26 + vpblendmq %ymm26,%ymm24,%ymm24{%k2} + vmovdqu64 480(%rsi),%ymm26 + vpblendmq %ymm26,%ymm25,%ymm25{%k2} + vpaddq %ymm30,%ymm27,%ymm27 + addq $512,%rsi + cmpq %rsi,%rax + jne .Lloop + vmovdqu64 %ymm0,0(%rdi) + vmovdqu64 %ymm1,32(%rdi) + vmovdqu64 %ymm2,64(%rdi) + vmovdqu64 %ymm3,96(%rdi) + vmovdqu64 %ymm4,128(%rdi) + vmovdqu64 %ymm5,160(%rdi) + vmovdqu64 %ymm16,192(%rdi) + vmovdqu64 %ymm17,224(%rdi) + vmovdqu64 %ymm18,256(%rdi) + vmovdqu64 %ymm19,288(%rdi) + vmovdqu64 %ymm20,320(%rdi) + vmovdqu64 %ymm21,352(%rdi) + vmovdqu64 %ymm22,384(%rdi) + vmovdqu64 %ymm23,416(%rdi) + vmovdqu64 %ymm24,448(%rdi) + vmovdqu64 %ymm25,480(%rdi) + + .byte 0xf3,0xc3 +.cfi_endproc +.size ossl_extract_multiplier_2x30_win5, .-ossl_extract_multiplier_2x30_win5 +.section .rodata +.align 32 +.Lones: +.quad 1,1,1,1 +.Lzeros: +.quad 0,0,0,0 + .section ".note.gnu.property", "a" + .p2align 3 + .long 1f - 0f + .long 4f - 1f + .long 5 +0: + # "GNU" encoded with .byte, since .asciz isn't supported + # on Solaris. + .byte 0x47 + .byte 0x4e + .byte 0x55 + .byte 0 +1: + .p2align 3 + .long 0xc0000002 + .long 3f - 2f +2: + .long 3 +3: + .p2align 3 +4: diff --git a/deps/openssl/config/archs/BSD-x86_64/asm/crypto/bn/rsaz-3k-avxifma.s b/deps/openssl/config/archs/BSD-x86_64/asm/crypto/bn/rsaz-3k-avxifma.s new file mode 100644 index 00000000000000..e27748b02804e2 --- /dev/null +++ b/deps/openssl/config/archs/BSD-x86_64/asm/crypto/bn/rsaz-3k-avxifma.s @@ -0,0 +1,33 @@ +.text + +.globl ossl_rsaz_amm52x30_x1_avxifma256 +.globl ossl_rsaz_amm52x30_x2_avxifma256 +.globl ossl_extract_multiplier_2x30_win5_avx +.type ossl_rsaz_amm52x30_x1_avxifma256,@function +ossl_rsaz_amm52x30_x1_avxifma256: +ossl_rsaz_amm52x30_x2_avxifma256: +ossl_extract_multiplier_2x30_win5_avx: +.byte 0x0f,0x0b + .byte 0xf3,0xc3 +.size ossl_rsaz_amm52x30_x1_avxifma256, .-ossl_rsaz_amm52x30_x1_avxifma256 + .section ".note.gnu.property", "a" + .p2align 3 + .long 1f - 0f + .long 4f - 1f + .long 5 +0: + # "GNU" encoded with .byte, since .asciz isn't supported + # on Solaris. + .byte 0x47 + .byte 0x4e + .byte 0x55 + .byte 0 +1: + .p2align 3 + .long 0xc0000002 + .long 3f - 2f +2: + .long 3 +3: + .p2align 3 +4: diff --git a/deps/openssl/config/archs/BSD-x86_64/asm/crypto/bn/rsaz-4k-avx512.s b/deps/openssl/config/archs/BSD-x86_64/asm/crypto/bn/rsaz-4k-avx512.s new file mode 100644 index 00000000000000..1dcb0db7c58117 --- /dev/null +++ b/deps/openssl/config/archs/BSD-x86_64/asm/crypto/bn/rsaz-4k-avx512.s @@ -0,0 +1,1374 @@ +.text + +.globl ossl_rsaz_amm52x40_x1_ifma256 +.type ossl_rsaz_amm52x40_x1_ifma256,@function +.align 32 +ossl_rsaz_amm52x40_x1_ifma256: +.cfi_startproc +.byte 243,15,30,250 + pushq %rbx +.cfi_adjust_cfa_offset 8 +.cfi_offset %rbx,-16 + pushq %rbp +.cfi_adjust_cfa_offset 8 +.cfi_offset %rbp,-24 + pushq %r12 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r12,-32 + pushq %r13 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r13,-40 + pushq %r14 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r14,-48 + pushq %r15 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r15,-56 + + vpxord %ymm0,%ymm0,%ymm0 + vmovdqa64 %ymm0,%ymm3 + vmovdqa64 %ymm0,%ymm4 + vmovdqa64 %ymm0,%ymm5 + vmovdqa64 %ymm0,%ymm6 + vmovdqa64 %ymm0,%ymm7 + vmovdqa64 %ymm0,%ymm8 + vmovdqa64 %ymm0,%ymm9 + vmovdqa64 %ymm0,%ymm10 + vmovdqa64 %ymm0,%ymm11 + vmovdqa64 %ymm0,%ymm12 + + xorl %r9d,%r9d + + movq %rdx,%r11 + movq $0xfffffffffffff,%rax + + + movl $10,%ebx + +.align 32 +.Lloop10: + movq 0(%r11),%r13 + + vpbroadcastq %r13,%ymm1 + movq 0(%rsi),%rdx + mulxq %r13,%r13,%r12 + addq %r13,%r9 + movq %r12,%r10 + adcq $0,%r10 + + movq %r8,%r13 + imulq %r9,%r13 + andq %rax,%r13 + + vpbroadcastq %r13,%ymm2 + movq 0(%rcx),%rdx + mulxq %r13,%r13,%r12 + addq %r13,%r9 + adcq %r12,%r10 + + shrq $52,%r9 + salq $12,%r10 + orq %r10,%r9 + + vpmadd52luq 0(%rsi),%ymm1,%ymm3 + vpmadd52luq 32(%rsi),%ymm1,%ymm4 + vpmadd52luq 64(%rsi),%ymm1,%ymm5 + vpmadd52luq 96(%rsi),%ymm1,%ymm6 + vpmadd52luq 128(%rsi),%ymm1,%ymm7 + vpmadd52luq 160(%rsi),%ymm1,%ymm8 + vpmadd52luq 192(%rsi),%ymm1,%ymm9 + vpmadd52luq 224(%rsi),%ymm1,%ymm10 + vpmadd52luq 256(%rsi),%ymm1,%ymm11 + vpmadd52luq 288(%rsi),%ymm1,%ymm12 + + vpmadd52luq 0(%rcx),%ymm2,%ymm3 + vpmadd52luq 32(%rcx),%ymm2,%ymm4 + vpmadd52luq 64(%rcx),%ymm2,%ymm5 + vpmadd52luq 96(%rcx),%ymm2,%ymm6 + vpmadd52luq 128(%rcx),%ymm2,%ymm7 + vpmadd52luq 160(%rcx),%ymm2,%ymm8 + vpmadd52luq 192(%rcx),%ymm2,%ymm9 + vpmadd52luq 224(%rcx),%ymm2,%ymm10 + vpmadd52luq 256(%rcx),%ymm2,%ymm11 + vpmadd52luq 288(%rcx),%ymm2,%ymm12 + + + valignq $1,%ymm3,%ymm4,%ymm3 + valignq $1,%ymm4,%ymm5,%ymm4 + valignq $1,%ymm5,%ymm6,%ymm5 + valignq $1,%ymm6,%ymm7,%ymm6 + valignq $1,%ymm7,%ymm8,%ymm7 + valignq $1,%ymm8,%ymm9,%ymm8 + valignq $1,%ymm9,%ymm10,%ymm9 + valignq $1,%ymm10,%ymm11,%ymm10 + valignq $1,%ymm11,%ymm12,%ymm11 + valignq $1,%ymm12,%ymm0,%ymm12 + + vmovq %xmm3,%r13 + addq %r13,%r9 + + vpmadd52huq 0(%rsi),%ymm1,%ymm3 + vpmadd52huq 32(%rsi),%ymm1,%ymm4 + vpmadd52huq 64(%rsi),%ymm1,%ymm5 + vpmadd52huq 96(%rsi),%ymm1,%ymm6 + vpmadd52huq 128(%rsi),%ymm1,%ymm7 + vpmadd52huq 160(%rsi),%ymm1,%ymm8 + vpmadd52huq 192(%rsi),%ymm1,%ymm9 + vpmadd52huq 224(%rsi),%ymm1,%ymm10 + vpmadd52huq 256(%rsi),%ymm1,%ymm11 + vpmadd52huq 288(%rsi),%ymm1,%ymm12 + + vpmadd52huq 0(%rcx),%ymm2,%ymm3 + vpmadd52huq 32(%rcx),%ymm2,%ymm4 + vpmadd52huq 64(%rcx),%ymm2,%ymm5 + vpmadd52huq 96(%rcx),%ymm2,%ymm6 + vpmadd52huq 128(%rcx),%ymm2,%ymm7 + vpmadd52huq 160(%rcx),%ymm2,%ymm8 + vpmadd52huq 192(%rcx),%ymm2,%ymm9 + vpmadd52huq 224(%rcx),%ymm2,%ymm10 + vpmadd52huq 256(%rcx),%ymm2,%ymm11 + vpmadd52huq 288(%rcx),%ymm2,%ymm12 + movq 8(%r11),%r13 + + vpbroadcastq %r13,%ymm1 + movq 0(%rsi),%rdx + mulxq %r13,%r13,%r12 + addq %r13,%r9 + movq %r12,%r10 + adcq $0,%r10 + + movq %r8,%r13 + imulq %r9,%r13 + andq %rax,%r13 + + vpbroadcastq %r13,%ymm2 + movq 0(%rcx),%rdx + mulxq %r13,%r13,%r12 + addq %r13,%r9 + adcq %r12,%r10 + + shrq $52,%r9 + salq $12,%r10 + orq %r10,%r9 + + vpmadd52luq 0(%rsi),%ymm1,%ymm3 + vpmadd52luq 32(%rsi),%ymm1,%ymm4 + vpmadd52luq 64(%rsi),%ymm1,%ymm5 + vpmadd52luq 96(%rsi),%ymm1,%ymm6 + vpmadd52luq 128(%rsi),%ymm1,%ymm7 + vpmadd52luq 160(%rsi),%ymm1,%ymm8 + vpmadd52luq 192(%rsi),%ymm1,%ymm9 + vpmadd52luq 224(%rsi),%ymm1,%ymm10 + vpmadd52luq 256(%rsi),%ymm1,%ymm11 + vpmadd52luq 288(%rsi),%ymm1,%ymm12 + + vpmadd52luq 0(%rcx),%ymm2,%ymm3 + vpmadd52luq 32(%rcx),%ymm2,%ymm4 + vpmadd52luq 64(%rcx),%ymm2,%ymm5 + vpmadd52luq 96(%rcx),%ymm2,%ymm6 + vpmadd52luq 128(%rcx),%ymm2,%ymm7 + vpmadd52luq 160(%rcx),%ymm2,%ymm8 + vpmadd52luq 192(%rcx),%ymm2,%ymm9 + vpmadd52luq 224(%rcx),%ymm2,%ymm10 + vpmadd52luq 256(%rcx),%ymm2,%ymm11 + vpmadd52luq 288(%rcx),%ymm2,%ymm12 + + + valignq $1,%ymm3,%ymm4,%ymm3 + valignq $1,%ymm4,%ymm5,%ymm4 + valignq $1,%ymm5,%ymm6,%ymm5 + valignq $1,%ymm6,%ymm7,%ymm6 + valignq $1,%ymm7,%ymm8,%ymm7 + valignq $1,%ymm8,%ymm9,%ymm8 + valignq $1,%ymm9,%ymm10,%ymm9 + valignq $1,%ymm10,%ymm11,%ymm10 + valignq $1,%ymm11,%ymm12,%ymm11 + valignq $1,%ymm12,%ymm0,%ymm12 + + vmovq %xmm3,%r13 + addq %r13,%r9 + + vpmadd52huq 0(%rsi),%ymm1,%ymm3 + vpmadd52huq 32(%rsi),%ymm1,%ymm4 + vpmadd52huq 64(%rsi),%ymm1,%ymm5 + vpmadd52huq 96(%rsi),%ymm1,%ymm6 + vpmadd52huq 128(%rsi),%ymm1,%ymm7 + vpmadd52huq 160(%rsi),%ymm1,%ymm8 + vpmadd52huq 192(%rsi),%ymm1,%ymm9 + vpmadd52huq 224(%rsi),%ymm1,%ymm10 + vpmadd52huq 256(%rsi),%ymm1,%ymm11 + vpmadd52huq 288(%rsi),%ymm1,%ymm12 + + vpmadd52huq 0(%rcx),%ymm2,%ymm3 + vpmadd52huq 32(%rcx),%ymm2,%ymm4 + vpmadd52huq 64(%rcx),%ymm2,%ymm5 + vpmadd52huq 96(%rcx),%ymm2,%ymm6 + vpmadd52huq 128(%rcx),%ymm2,%ymm7 + vpmadd52huq 160(%rcx),%ymm2,%ymm8 + vpmadd52huq 192(%rcx),%ymm2,%ymm9 + vpmadd52huq 224(%rcx),%ymm2,%ymm10 + vpmadd52huq 256(%rcx),%ymm2,%ymm11 + vpmadd52huq 288(%rcx),%ymm2,%ymm12 + movq 16(%r11),%r13 + + vpbroadcastq %r13,%ymm1 + movq 0(%rsi),%rdx + mulxq %r13,%r13,%r12 + addq %r13,%r9 + movq %r12,%r10 + adcq $0,%r10 + + movq %r8,%r13 + imulq %r9,%r13 + andq %rax,%r13 + + vpbroadcastq %r13,%ymm2 + movq 0(%rcx),%rdx + mulxq %r13,%r13,%r12 + addq %r13,%r9 + adcq %r12,%r10 + + shrq $52,%r9 + salq $12,%r10 + orq %r10,%r9 + + vpmadd52luq 0(%rsi),%ymm1,%ymm3 + vpmadd52luq 32(%rsi),%ymm1,%ymm4 + vpmadd52luq 64(%rsi),%ymm1,%ymm5 + vpmadd52luq 96(%rsi),%ymm1,%ymm6 + vpmadd52luq 128(%rsi),%ymm1,%ymm7 + vpmadd52luq 160(%rsi),%ymm1,%ymm8 + vpmadd52luq 192(%rsi),%ymm1,%ymm9 + vpmadd52luq 224(%rsi),%ymm1,%ymm10 + vpmadd52luq 256(%rsi),%ymm1,%ymm11 + vpmadd52luq 288(%rsi),%ymm1,%ymm12 + + vpmadd52luq 0(%rcx),%ymm2,%ymm3 + vpmadd52luq 32(%rcx),%ymm2,%ymm4 + vpmadd52luq 64(%rcx),%ymm2,%ymm5 + vpmadd52luq 96(%rcx),%ymm2,%ymm6 + vpmadd52luq 128(%rcx),%ymm2,%ymm7 + vpmadd52luq 160(%rcx),%ymm2,%ymm8 + vpmadd52luq 192(%rcx),%ymm2,%ymm9 + vpmadd52luq 224(%rcx),%ymm2,%ymm10 + vpmadd52luq 256(%rcx),%ymm2,%ymm11 + vpmadd52luq 288(%rcx),%ymm2,%ymm12 + + + valignq $1,%ymm3,%ymm4,%ymm3 + valignq $1,%ymm4,%ymm5,%ymm4 + valignq $1,%ymm5,%ymm6,%ymm5 + valignq $1,%ymm6,%ymm7,%ymm6 + valignq $1,%ymm7,%ymm8,%ymm7 + valignq $1,%ymm8,%ymm9,%ymm8 + valignq $1,%ymm9,%ymm10,%ymm9 + valignq $1,%ymm10,%ymm11,%ymm10 + valignq $1,%ymm11,%ymm12,%ymm11 + valignq $1,%ymm12,%ymm0,%ymm12 + + vmovq %xmm3,%r13 + addq %r13,%r9 + + vpmadd52huq 0(%rsi),%ymm1,%ymm3 + vpmadd52huq 32(%rsi),%ymm1,%ymm4 + vpmadd52huq 64(%rsi),%ymm1,%ymm5 + vpmadd52huq 96(%rsi),%ymm1,%ymm6 + vpmadd52huq 128(%rsi),%ymm1,%ymm7 + vpmadd52huq 160(%rsi),%ymm1,%ymm8 + vpmadd52huq 192(%rsi),%ymm1,%ymm9 + vpmadd52huq 224(%rsi),%ymm1,%ymm10 + vpmadd52huq 256(%rsi),%ymm1,%ymm11 + vpmadd52huq 288(%rsi),%ymm1,%ymm12 + + vpmadd52huq 0(%rcx),%ymm2,%ymm3 + vpmadd52huq 32(%rcx),%ymm2,%ymm4 + vpmadd52huq 64(%rcx),%ymm2,%ymm5 + vpmadd52huq 96(%rcx),%ymm2,%ymm6 + vpmadd52huq 128(%rcx),%ymm2,%ymm7 + vpmadd52huq 160(%rcx),%ymm2,%ymm8 + vpmadd52huq 192(%rcx),%ymm2,%ymm9 + vpmadd52huq 224(%rcx),%ymm2,%ymm10 + vpmadd52huq 256(%rcx),%ymm2,%ymm11 + vpmadd52huq 288(%rcx),%ymm2,%ymm12 + movq 24(%r11),%r13 + + vpbroadcastq %r13,%ymm1 + movq 0(%rsi),%rdx + mulxq %r13,%r13,%r12 + addq %r13,%r9 + movq %r12,%r10 + adcq $0,%r10 + + movq %r8,%r13 + imulq %r9,%r13 + andq %rax,%r13 + + vpbroadcastq %r13,%ymm2 + movq 0(%rcx),%rdx + mulxq %r13,%r13,%r12 + addq %r13,%r9 + adcq %r12,%r10 + + shrq $52,%r9 + salq $12,%r10 + orq %r10,%r9 + + vpmadd52luq 0(%rsi),%ymm1,%ymm3 + vpmadd52luq 32(%rsi),%ymm1,%ymm4 + vpmadd52luq 64(%rsi),%ymm1,%ymm5 + vpmadd52luq 96(%rsi),%ymm1,%ymm6 + vpmadd52luq 128(%rsi),%ymm1,%ymm7 + vpmadd52luq 160(%rsi),%ymm1,%ymm8 + vpmadd52luq 192(%rsi),%ymm1,%ymm9 + vpmadd52luq 224(%rsi),%ymm1,%ymm10 + vpmadd52luq 256(%rsi),%ymm1,%ymm11 + vpmadd52luq 288(%rsi),%ymm1,%ymm12 + + vpmadd52luq 0(%rcx),%ymm2,%ymm3 + vpmadd52luq 32(%rcx),%ymm2,%ymm4 + vpmadd52luq 64(%rcx),%ymm2,%ymm5 + vpmadd52luq 96(%rcx),%ymm2,%ymm6 + vpmadd52luq 128(%rcx),%ymm2,%ymm7 + vpmadd52luq 160(%rcx),%ymm2,%ymm8 + vpmadd52luq 192(%rcx),%ymm2,%ymm9 + vpmadd52luq 224(%rcx),%ymm2,%ymm10 + vpmadd52luq 256(%rcx),%ymm2,%ymm11 + vpmadd52luq 288(%rcx),%ymm2,%ymm12 + + + valignq $1,%ymm3,%ymm4,%ymm3 + valignq $1,%ymm4,%ymm5,%ymm4 + valignq $1,%ymm5,%ymm6,%ymm5 + valignq $1,%ymm6,%ymm7,%ymm6 + valignq $1,%ymm7,%ymm8,%ymm7 + valignq $1,%ymm8,%ymm9,%ymm8 + valignq $1,%ymm9,%ymm10,%ymm9 + valignq $1,%ymm10,%ymm11,%ymm10 + valignq $1,%ymm11,%ymm12,%ymm11 + valignq $1,%ymm12,%ymm0,%ymm12 + + vmovq %xmm3,%r13 + addq %r13,%r9 + + vpmadd52huq 0(%rsi),%ymm1,%ymm3 + vpmadd52huq 32(%rsi),%ymm1,%ymm4 + vpmadd52huq 64(%rsi),%ymm1,%ymm5 + vpmadd52huq 96(%rsi),%ymm1,%ymm6 + vpmadd52huq 128(%rsi),%ymm1,%ymm7 + vpmadd52huq 160(%rsi),%ymm1,%ymm8 + vpmadd52huq 192(%rsi),%ymm1,%ymm9 + vpmadd52huq 224(%rsi),%ymm1,%ymm10 + vpmadd52huq 256(%rsi),%ymm1,%ymm11 + vpmadd52huq 288(%rsi),%ymm1,%ymm12 + + vpmadd52huq 0(%rcx),%ymm2,%ymm3 + vpmadd52huq 32(%rcx),%ymm2,%ymm4 + vpmadd52huq 64(%rcx),%ymm2,%ymm5 + vpmadd52huq 96(%rcx),%ymm2,%ymm6 + vpmadd52huq 128(%rcx),%ymm2,%ymm7 + vpmadd52huq 160(%rcx),%ymm2,%ymm8 + vpmadd52huq 192(%rcx),%ymm2,%ymm9 + vpmadd52huq 224(%rcx),%ymm2,%ymm10 + vpmadd52huq 256(%rcx),%ymm2,%ymm11 + vpmadd52huq 288(%rcx),%ymm2,%ymm12 + leaq 32(%r11),%r11 + decl %ebx + jne .Lloop10 + + vpbroadcastq %r9,%ymm0 + vpblendd $3,%ymm0,%ymm3,%ymm3 + + + + vpsrlq $52,%ymm3,%ymm0 + vpsrlq $52,%ymm4,%ymm1 + vpsrlq $52,%ymm5,%ymm2 + vpsrlq $52,%ymm6,%ymm23 + vpsrlq $52,%ymm7,%ymm24 + vpsrlq $52,%ymm8,%ymm25 + vpsrlq $52,%ymm9,%ymm26 + vpsrlq $52,%ymm10,%ymm27 + vpsrlq $52,%ymm11,%ymm28 + vpsrlq $52,%ymm12,%ymm29 + + + valignq $3,%ymm28,%ymm29,%ymm29 + valignq $3,%ymm27,%ymm28,%ymm28 + valignq $3,%ymm26,%ymm27,%ymm27 + valignq $3,%ymm25,%ymm26,%ymm26 + valignq $3,%ymm24,%ymm25,%ymm25 + valignq $3,%ymm23,%ymm24,%ymm24 + valignq $3,%ymm2,%ymm23,%ymm23 + valignq $3,%ymm1,%ymm2,%ymm2 + valignq $3,%ymm0,%ymm1,%ymm1 + valignq $3,.Lzeros(%rip),%ymm0,%ymm0 + + + vpandq .Lmask52x4(%rip),%ymm3,%ymm3 + vpandq .Lmask52x4(%rip),%ymm4,%ymm4 + vpandq .Lmask52x4(%rip),%ymm5,%ymm5 + vpandq .Lmask52x4(%rip),%ymm6,%ymm6 + vpandq .Lmask52x4(%rip),%ymm7,%ymm7 + vpandq .Lmask52x4(%rip),%ymm8,%ymm8 + vpandq .Lmask52x4(%rip),%ymm9,%ymm9 + vpandq .Lmask52x4(%rip),%ymm10,%ymm10 + vpandq .Lmask52x4(%rip),%ymm11,%ymm11 + vpandq .Lmask52x4(%rip),%ymm12,%ymm12 + + + vpaddq %ymm0,%ymm3,%ymm3 + vpaddq %ymm1,%ymm4,%ymm4 + vpaddq %ymm2,%ymm5,%ymm5 + vpaddq %ymm23,%ymm6,%ymm6 + vpaddq %ymm24,%ymm7,%ymm7 + vpaddq %ymm25,%ymm8,%ymm8 + vpaddq %ymm26,%ymm9,%ymm9 + vpaddq %ymm27,%ymm10,%ymm10 + vpaddq %ymm28,%ymm11,%ymm11 + vpaddq %ymm29,%ymm12,%ymm12 + + + + vpcmpuq $6,.Lmask52x4(%rip),%ymm3,%k1 + vpcmpuq $6,.Lmask52x4(%rip),%ymm4,%k2 + kmovb %k1,%r14d + kmovb %k2,%r13d + shlb $4,%r13b + orb %r13b,%r14b + + vpcmpuq $6,.Lmask52x4(%rip),%ymm5,%k1 + vpcmpuq $6,.Lmask52x4(%rip),%ymm6,%k2 + kmovb %k1,%r13d + kmovb %k2,%r12d + shlb $4,%r12b + orb %r12b,%r13b + + vpcmpuq $6,.Lmask52x4(%rip),%ymm7,%k1 + vpcmpuq $6,.Lmask52x4(%rip),%ymm8,%k2 + kmovb %k1,%r12d + kmovb %k2,%r11d + shlb $4,%r11b + orb %r11b,%r12b + + vpcmpuq $6,.Lmask52x4(%rip),%ymm9,%k1 + vpcmpuq $6,.Lmask52x4(%rip),%ymm10,%k2 + kmovb %k1,%r11d + kmovb %k2,%r10d + shlb $4,%r10b + orb %r10b,%r11b + + vpcmpuq $6,.Lmask52x4(%rip),%ymm11,%k1 + vpcmpuq $6,.Lmask52x4(%rip),%ymm12,%k2 + kmovb %k1,%r10d + kmovb %k2,%r9d + shlb $4,%r9b + orb %r9b,%r10b + + addb %r14b,%r14b + adcb %r13b,%r13b + adcb %r12b,%r12b + adcb %r11b,%r11b + adcb %r10b,%r10b + + + vpcmpuq $0,.Lmask52x4(%rip),%ymm3,%k1 + vpcmpuq $0,.Lmask52x4(%rip),%ymm4,%k2 + kmovb %k1,%r9d + kmovb %k2,%r8d + shlb $4,%r8b + orb %r8b,%r9b + + vpcmpuq $0,.Lmask52x4(%rip),%ymm5,%k1 + vpcmpuq $0,.Lmask52x4(%rip),%ymm6,%k2 + kmovb %k1,%r8d + kmovb %k2,%edx + shlb $4,%dl + orb %dl,%r8b + + vpcmpuq $0,.Lmask52x4(%rip),%ymm7,%k1 + vpcmpuq $0,.Lmask52x4(%rip),%ymm8,%k2 + kmovb %k1,%edx + kmovb %k2,%ecx + shlb $4,%cl + orb %cl,%dl + + vpcmpuq $0,.Lmask52x4(%rip),%ymm9,%k1 + vpcmpuq $0,.Lmask52x4(%rip),%ymm10,%k2 + kmovb %k1,%ecx + kmovb %k2,%ebx + shlb $4,%bl + orb %bl,%cl + + vpcmpuq $0,.Lmask52x4(%rip),%ymm11,%k1 + vpcmpuq $0,.Lmask52x4(%rip),%ymm12,%k2 + kmovb %k1,%ebx + kmovb %k2,%eax + shlb $4,%al + orb %al,%bl + + addb %r9b,%r14b + adcb %r8b,%r13b + adcb %dl,%r12b + adcb %cl,%r11b + adcb %bl,%r10b + + xorb %r9b,%r14b + xorb %r8b,%r13b + xorb %dl,%r12b + xorb %cl,%r11b + xorb %bl,%r10b + + kmovb %r14d,%k1 + shrb $4,%r14b + kmovb %r14d,%k2 + kmovb %r13d,%k3 + shrb $4,%r13b + kmovb %r13d,%k4 + kmovb %r12d,%k5 + shrb $4,%r12b + kmovb %r12d,%k6 + kmovb %r11d,%k7 + + vpsubq .Lmask52x4(%rip),%ymm3,%ymm3{%k1} + vpsubq .Lmask52x4(%rip),%ymm4,%ymm4{%k2} + vpsubq .Lmask52x4(%rip),%ymm5,%ymm5{%k3} + vpsubq .Lmask52x4(%rip),%ymm6,%ymm6{%k4} + vpsubq .Lmask52x4(%rip),%ymm7,%ymm7{%k5} + vpsubq .Lmask52x4(%rip),%ymm8,%ymm8{%k6} + vpsubq .Lmask52x4(%rip),%ymm9,%ymm9{%k7} + + vpandq .Lmask52x4(%rip),%ymm3,%ymm3 + vpandq .Lmask52x4(%rip),%ymm4,%ymm4 + vpandq .Lmask52x4(%rip),%ymm5,%ymm5 + vpandq .Lmask52x4(%rip),%ymm6,%ymm6 + vpandq .Lmask52x4(%rip),%ymm7,%ymm7 + vpandq .Lmask52x4(%rip),%ymm8,%ymm8 + vpandq .Lmask52x4(%rip),%ymm9,%ymm9 + + shrb $4,%r11b + kmovb %r11d,%k1 + kmovb %r10d,%k2 + shrb $4,%r10b + kmovb %r10d,%k3 + + vpsubq .Lmask52x4(%rip),%ymm10,%ymm10{%k1} + vpsubq .Lmask52x4(%rip),%ymm11,%ymm11{%k2} + vpsubq .Lmask52x4(%rip),%ymm12,%ymm12{%k3} + + vpandq .Lmask52x4(%rip),%ymm10,%ymm10 + vpandq .Lmask52x4(%rip),%ymm11,%ymm11 + vpandq .Lmask52x4(%rip),%ymm12,%ymm12 + + vmovdqu64 %ymm3,0(%rdi) + vmovdqu64 %ymm4,32(%rdi) + vmovdqu64 %ymm5,64(%rdi) + vmovdqu64 %ymm6,96(%rdi) + vmovdqu64 %ymm7,128(%rdi) + vmovdqu64 %ymm8,160(%rdi) + vmovdqu64 %ymm9,192(%rdi) + vmovdqu64 %ymm10,224(%rdi) + vmovdqu64 %ymm11,256(%rdi) + vmovdqu64 %ymm12,288(%rdi) + + vzeroupper + leaq (%rsp),%rax +.cfi_def_cfa_register %rax + movq 0(%rax),%r15 +.cfi_restore %r15 + movq 8(%rax),%r14 +.cfi_restore %r14 + movq 16(%rax),%r13 +.cfi_restore %r13 + movq 24(%rax),%r12 +.cfi_restore %r12 + movq 32(%rax),%rbp +.cfi_restore %rbp + movq 40(%rax),%rbx +.cfi_restore %rbx + leaq 48(%rax),%rsp +.cfi_def_cfa %rsp,8 +.Lossl_rsaz_amm52x40_x1_ifma256_epilogue: + + .byte 0xf3,0xc3 +.cfi_endproc +.size ossl_rsaz_amm52x40_x1_ifma256, .-ossl_rsaz_amm52x40_x1_ifma256 +.section .rodata +.align 32 +.Lmask52x4: +.quad 0xfffffffffffff +.quad 0xfffffffffffff +.quad 0xfffffffffffff +.quad 0xfffffffffffff +.text + +.globl ossl_rsaz_amm52x40_x2_ifma256 +.type ossl_rsaz_amm52x40_x2_ifma256,@function +.align 32 +ossl_rsaz_amm52x40_x2_ifma256: +.cfi_startproc +.byte 243,15,30,250 + pushq %rbx +.cfi_adjust_cfa_offset 8 +.cfi_offset %rbx,-16 + pushq %rbp +.cfi_adjust_cfa_offset 8 +.cfi_offset %rbp,-24 + pushq %r12 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r12,-32 + pushq %r13 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r13,-40 + pushq %r14 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r14,-48 + pushq %r15 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r15,-56 + + vpxord %ymm0,%ymm0,%ymm0 + vmovdqa64 %ymm0,%ymm3 + vmovdqa64 %ymm0,%ymm4 + vmovdqa64 %ymm0,%ymm5 + vmovdqa64 %ymm0,%ymm6 + vmovdqa64 %ymm0,%ymm7 + vmovdqa64 %ymm0,%ymm8 + vmovdqa64 %ymm0,%ymm9 + vmovdqa64 %ymm0,%ymm10 + vmovdqa64 %ymm0,%ymm11 + vmovdqa64 %ymm0,%ymm12 + + vmovdqa64 %ymm0,%ymm13 + vmovdqa64 %ymm0,%ymm14 + vmovdqa64 %ymm0,%ymm15 + vmovdqa64 %ymm0,%ymm16 + vmovdqa64 %ymm0,%ymm17 + vmovdqa64 %ymm0,%ymm18 + vmovdqa64 %ymm0,%ymm19 + vmovdqa64 %ymm0,%ymm20 + vmovdqa64 %ymm0,%ymm21 + vmovdqa64 %ymm0,%ymm22 + + + xorl %r9d,%r9d + xorl %r15d,%r15d + + movq %rdx,%r11 + movq $0xfffffffffffff,%rax + + movl $40,%ebx + +.align 32 +.Lloop40: + movq 0(%r11),%r13 + + vpbroadcastq %r13,%ymm1 + movq 0(%rsi),%rdx + mulxq %r13,%r13,%r12 + addq %r13,%r9 + movq %r12,%r10 + adcq $0,%r10 + + movq (%r8),%r13 + imulq %r9,%r13 + andq %rax,%r13 + + vpbroadcastq %r13,%ymm2 + movq 0(%rcx),%rdx + mulxq %r13,%r13,%r12 + addq %r13,%r9 + adcq %r12,%r10 + + shrq $52,%r9 + salq $12,%r10 + orq %r10,%r9 + + vpmadd52luq 0(%rsi),%ymm1,%ymm3 + vpmadd52luq 32(%rsi),%ymm1,%ymm4 + vpmadd52luq 64(%rsi),%ymm1,%ymm5 + vpmadd52luq 96(%rsi),%ymm1,%ymm6 + vpmadd52luq 128(%rsi),%ymm1,%ymm7 + vpmadd52luq 160(%rsi),%ymm1,%ymm8 + vpmadd52luq 192(%rsi),%ymm1,%ymm9 + vpmadd52luq 224(%rsi),%ymm1,%ymm10 + vpmadd52luq 256(%rsi),%ymm1,%ymm11 + vpmadd52luq 288(%rsi),%ymm1,%ymm12 + + vpmadd52luq 0(%rcx),%ymm2,%ymm3 + vpmadd52luq 32(%rcx),%ymm2,%ymm4 + vpmadd52luq 64(%rcx),%ymm2,%ymm5 + vpmadd52luq 96(%rcx),%ymm2,%ymm6 + vpmadd52luq 128(%rcx),%ymm2,%ymm7 + vpmadd52luq 160(%rcx),%ymm2,%ymm8 + vpmadd52luq 192(%rcx),%ymm2,%ymm9 + vpmadd52luq 224(%rcx),%ymm2,%ymm10 + vpmadd52luq 256(%rcx),%ymm2,%ymm11 + vpmadd52luq 288(%rcx),%ymm2,%ymm12 + + + valignq $1,%ymm3,%ymm4,%ymm3 + valignq $1,%ymm4,%ymm5,%ymm4 + valignq $1,%ymm5,%ymm6,%ymm5 + valignq $1,%ymm6,%ymm7,%ymm6 + valignq $1,%ymm7,%ymm8,%ymm7 + valignq $1,%ymm8,%ymm9,%ymm8 + valignq $1,%ymm9,%ymm10,%ymm9 + valignq $1,%ymm10,%ymm11,%ymm10 + valignq $1,%ymm11,%ymm12,%ymm11 + valignq $1,%ymm12,%ymm0,%ymm12 + + vmovq %xmm3,%r13 + addq %r13,%r9 + + vpmadd52huq 0(%rsi),%ymm1,%ymm3 + vpmadd52huq 32(%rsi),%ymm1,%ymm4 + vpmadd52huq 64(%rsi),%ymm1,%ymm5 + vpmadd52huq 96(%rsi),%ymm1,%ymm6 + vpmadd52huq 128(%rsi),%ymm1,%ymm7 + vpmadd52huq 160(%rsi),%ymm1,%ymm8 + vpmadd52huq 192(%rsi),%ymm1,%ymm9 + vpmadd52huq 224(%rsi),%ymm1,%ymm10 + vpmadd52huq 256(%rsi),%ymm1,%ymm11 + vpmadd52huq 288(%rsi),%ymm1,%ymm12 + + vpmadd52huq 0(%rcx),%ymm2,%ymm3 + vpmadd52huq 32(%rcx),%ymm2,%ymm4 + vpmadd52huq 64(%rcx),%ymm2,%ymm5 + vpmadd52huq 96(%rcx),%ymm2,%ymm6 + vpmadd52huq 128(%rcx),%ymm2,%ymm7 + vpmadd52huq 160(%rcx),%ymm2,%ymm8 + vpmadd52huq 192(%rcx),%ymm2,%ymm9 + vpmadd52huq 224(%rcx),%ymm2,%ymm10 + vpmadd52huq 256(%rcx),%ymm2,%ymm11 + vpmadd52huq 288(%rcx),%ymm2,%ymm12 + movq 320(%r11),%r13 + + vpbroadcastq %r13,%ymm1 + movq 320(%rsi),%rdx + mulxq %r13,%r13,%r12 + addq %r13,%r15 + movq %r12,%r10 + adcq $0,%r10 + + movq 8(%r8),%r13 + imulq %r15,%r13 + andq %rax,%r13 + + vpbroadcastq %r13,%ymm2 + movq 320(%rcx),%rdx + mulxq %r13,%r13,%r12 + addq %r13,%r15 + adcq %r12,%r10 + + shrq $52,%r15 + salq $12,%r10 + orq %r10,%r15 + + vpmadd52luq 320(%rsi),%ymm1,%ymm13 + vpmadd52luq 352(%rsi),%ymm1,%ymm14 + vpmadd52luq 384(%rsi),%ymm1,%ymm15 + vpmadd52luq 416(%rsi),%ymm1,%ymm16 + vpmadd52luq 448(%rsi),%ymm1,%ymm17 + vpmadd52luq 480(%rsi),%ymm1,%ymm18 + vpmadd52luq 512(%rsi),%ymm1,%ymm19 + vpmadd52luq 544(%rsi),%ymm1,%ymm20 + vpmadd52luq 576(%rsi),%ymm1,%ymm21 + vpmadd52luq 608(%rsi),%ymm1,%ymm22 + + vpmadd52luq 320(%rcx),%ymm2,%ymm13 + vpmadd52luq 352(%rcx),%ymm2,%ymm14 + vpmadd52luq 384(%rcx),%ymm2,%ymm15 + vpmadd52luq 416(%rcx),%ymm2,%ymm16 + vpmadd52luq 448(%rcx),%ymm2,%ymm17 + vpmadd52luq 480(%rcx),%ymm2,%ymm18 + vpmadd52luq 512(%rcx),%ymm2,%ymm19 + vpmadd52luq 544(%rcx),%ymm2,%ymm20 + vpmadd52luq 576(%rcx),%ymm2,%ymm21 + vpmadd52luq 608(%rcx),%ymm2,%ymm22 + + + valignq $1,%ymm13,%ymm14,%ymm13 + valignq $1,%ymm14,%ymm15,%ymm14 + valignq $1,%ymm15,%ymm16,%ymm15 + valignq $1,%ymm16,%ymm17,%ymm16 + valignq $1,%ymm17,%ymm18,%ymm17 + valignq $1,%ymm18,%ymm19,%ymm18 + valignq $1,%ymm19,%ymm20,%ymm19 + valignq $1,%ymm20,%ymm21,%ymm20 + valignq $1,%ymm21,%ymm22,%ymm21 + valignq $1,%ymm22,%ymm0,%ymm22 + + vmovq %xmm13,%r13 + addq %r13,%r15 + + vpmadd52huq 320(%rsi),%ymm1,%ymm13 + vpmadd52huq 352(%rsi),%ymm1,%ymm14 + vpmadd52huq 384(%rsi),%ymm1,%ymm15 + vpmadd52huq 416(%rsi),%ymm1,%ymm16 + vpmadd52huq 448(%rsi),%ymm1,%ymm17 + vpmadd52huq 480(%rsi),%ymm1,%ymm18 + vpmadd52huq 512(%rsi),%ymm1,%ymm19 + vpmadd52huq 544(%rsi),%ymm1,%ymm20 + vpmadd52huq 576(%rsi),%ymm1,%ymm21 + vpmadd52huq 608(%rsi),%ymm1,%ymm22 + + vpmadd52huq 320(%rcx),%ymm2,%ymm13 + vpmadd52huq 352(%rcx),%ymm2,%ymm14 + vpmadd52huq 384(%rcx),%ymm2,%ymm15 + vpmadd52huq 416(%rcx),%ymm2,%ymm16 + vpmadd52huq 448(%rcx),%ymm2,%ymm17 + vpmadd52huq 480(%rcx),%ymm2,%ymm18 + vpmadd52huq 512(%rcx),%ymm2,%ymm19 + vpmadd52huq 544(%rcx),%ymm2,%ymm20 + vpmadd52huq 576(%rcx),%ymm2,%ymm21 + vpmadd52huq 608(%rcx),%ymm2,%ymm22 + leaq 8(%r11),%r11 + decl %ebx + jne .Lloop40 + + vpbroadcastq %r9,%ymm0 + vpblendd $3,%ymm0,%ymm3,%ymm3 + + + + vpsrlq $52,%ymm3,%ymm0 + vpsrlq $52,%ymm4,%ymm1 + vpsrlq $52,%ymm5,%ymm2 + vpsrlq $52,%ymm6,%ymm23 + vpsrlq $52,%ymm7,%ymm24 + vpsrlq $52,%ymm8,%ymm25 + vpsrlq $52,%ymm9,%ymm26 + vpsrlq $52,%ymm10,%ymm27 + vpsrlq $52,%ymm11,%ymm28 + vpsrlq $52,%ymm12,%ymm29 + + + valignq $3,%ymm28,%ymm29,%ymm29 + valignq $3,%ymm27,%ymm28,%ymm28 + valignq $3,%ymm26,%ymm27,%ymm27 + valignq $3,%ymm25,%ymm26,%ymm26 + valignq $3,%ymm24,%ymm25,%ymm25 + valignq $3,%ymm23,%ymm24,%ymm24 + valignq $3,%ymm2,%ymm23,%ymm23 + valignq $3,%ymm1,%ymm2,%ymm2 + valignq $3,%ymm0,%ymm1,%ymm1 + valignq $3,.Lzeros(%rip),%ymm0,%ymm0 + + + vpandq .Lmask52x4(%rip),%ymm3,%ymm3 + vpandq .Lmask52x4(%rip),%ymm4,%ymm4 + vpandq .Lmask52x4(%rip),%ymm5,%ymm5 + vpandq .Lmask52x4(%rip),%ymm6,%ymm6 + vpandq .Lmask52x4(%rip),%ymm7,%ymm7 + vpandq .Lmask52x4(%rip),%ymm8,%ymm8 + vpandq .Lmask52x4(%rip),%ymm9,%ymm9 + vpandq .Lmask52x4(%rip),%ymm10,%ymm10 + vpandq .Lmask52x4(%rip),%ymm11,%ymm11 + vpandq .Lmask52x4(%rip),%ymm12,%ymm12 + + + vpaddq %ymm0,%ymm3,%ymm3 + vpaddq %ymm1,%ymm4,%ymm4 + vpaddq %ymm2,%ymm5,%ymm5 + vpaddq %ymm23,%ymm6,%ymm6 + vpaddq %ymm24,%ymm7,%ymm7 + vpaddq %ymm25,%ymm8,%ymm8 + vpaddq %ymm26,%ymm9,%ymm9 + vpaddq %ymm27,%ymm10,%ymm10 + vpaddq %ymm28,%ymm11,%ymm11 + vpaddq %ymm29,%ymm12,%ymm12 + + + + vpcmpuq $6,.Lmask52x4(%rip),%ymm3,%k1 + vpcmpuq $6,.Lmask52x4(%rip),%ymm4,%k2 + kmovb %k1,%r14d + kmovb %k2,%r13d + shlb $4,%r13b + orb %r13b,%r14b + + vpcmpuq $6,.Lmask52x4(%rip),%ymm5,%k1 + vpcmpuq $6,.Lmask52x4(%rip),%ymm6,%k2 + kmovb %k1,%r13d + kmovb %k2,%r12d + shlb $4,%r12b + orb %r12b,%r13b + + vpcmpuq $6,.Lmask52x4(%rip),%ymm7,%k1 + vpcmpuq $6,.Lmask52x4(%rip),%ymm8,%k2 + kmovb %k1,%r12d + kmovb %k2,%r11d + shlb $4,%r11b + orb %r11b,%r12b + + vpcmpuq $6,.Lmask52x4(%rip),%ymm9,%k1 + vpcmpuq $6,.Lmask52x4(%rip),%ymm10,%k2 + kmovb %k1,%r11d + kmovb %k2,%r10d + shlb $4,%r10b + orb %r10b,%r11b + + vpcmpuq $6,.Lmask52x4(%rip),%ymm11,%k1 + vpcmpuq $6,.Lmask52x4(%rip),%ymm12,%k2 + kmovb %k1,%r10d + kmovb %k2,%r9d + shlb $4,%r9b + orb %r9b,%r10b + + addb %r14b,%r14b + adcb %r13b,%r13b + adcb %r12b,%r12b + adcb %r11b,%r11b + adcb %r10b,%r10b + + + vpcmpuq $0,.Lmask52x4(%rip),%ymm3,%k1 + vpcmpuq $0,.Lmask52x4(%rip),%ymm4,%k2 + kmovb %k1,%r9d + kmovb %k2,%r8d + shlb $4,%r8b + orb %r8b,%r9b + + vpcmpuq $0,.Lmask52x4(%rip),%ymm5,%k1 + vpcmpuq $0,.Lmask52x4(%rip),%ymm6,%k2 + kmovb %k1,%r8d + kmovb %k2,%edx + shlb $4,%dl + orb %dl,%r8b + + vpcmpuq $0,.Lmask52x4(%rip),%ymm7,%k1 + vpcmpuq $0,.Lmask52x4(%rip),%ymm8,%k2 + kmovb %k1,%edx + kmovb %k2,%ecx + shlb $4,%cl + orb %cl,%dl + + vpcmpuq $0,.Lmask52x4(%rip),%ymm9,%k1 + vpcmpuq $0,.Lmask52x4(%rip),%ymm10,%k2 + kmovb %k1,%ecx + kmovb %k2,%ebx + shlb $4,%bl + orb %bl,%cl + + vpcmpuq $0,.Lmask52x4(%rip),%ymm11,%k1 + vpcmpuq $0,.Lmask52x4(%rip),%ymm12,%k2 + kmovb %k1,%ebx + kmovb %k2,%eax + shlb $4,%al + orb %al,%bl + + addb %r9b,%r14b + adcb %r8b,%r13b + adcb %dl,%r12b + adcb %cl,%r11b + adcb %bl,%r10b + + xorb %r9b,%r14b + xorb %r8b,%r13b + xorb %dl,%r12b + xorb %cl,%r11b + xorb %bl,%r10b + + kmovb %r14d,%k1 + shrb $4,%r14b + kmovb %r14d,%k2 + kmovb %r13d,%k3 + shrb $4,%r13b + kmovb %r13d,%k4 + kmovb %r12d,%k5 + shrb $4,%r12b + kmovb %r12d,%k6 + kmovb %r11d,%k7 + + vpsubq .Lmask52x4(%rip),%ymm3,%ymm3{%k1} + vpsubq .Lmask52x4(%rip),%ymm4,%ymm4{%k2} + vpsubq .Lmask52x4(%rip),%ymm5,%ymm5{%k3} + vpsubq .Lmask52x4(%rip),%ymm6,%ymm6{%k4} + vpsubq .Lmask52x4(%rip),%ymm7,%ymm7{%k5} + vpsubq .Lmask52x4(%rip),%ymm8,%ymm8{%k6} + vpsubq .Lmask52x4(%rip),%ymm9,%ymm9{%k7} + + vpandq .Lmask52x4(%rip),%ymm3,%ymm3 + vpandq .Lmask52x4(%rip),%ymm4,%ymm4 + vpandq .Lmask52x4(%rip),%ymm5,%ymm5 + vpandq .Lmask52x4(%rip),%ymm6,%ymm6 + vpandq .Lmask52x4(%rip),%ymm7,%ymm7 + vpandq .Lmask52x4(%rip),%ymm8,%ymm8 + vpandq .Lmask52x4(%rip),%ymm9,%ymm9 + + shrb $4,%r11b + kmovb %r11d,%k1 + kmovb %r10d,%k2 + shrb $4,%r10b + kmovb %r10d,%k3 + + vpsubq .Lmask52x4(%rip),%ymm10,%ymm10{%k1} + vpsubq .Lmask52x4(%rip),%ymm11,%ymm11{%k2} + vpsubq .Lmask52x4(%rip),%ymm12,%ymm12{%k3} + + vpandq .Lmask52x4(%rip),%ymm10,%ymm10 + vpandq .Lmask52x4(%rip),%ymm11,%ymm11 + vpandq .Lmask52x4(%rip),%ymm12,%ymm12 + + vpbroadcastq %r15,%ymm0 + vpblendd $3,%ymm0,%ymm13,%ymm13 + + + + vpsrlq $52,%ymm13,%ymm0 + vpsrlq $52,%ymm14,%ymm1 + vpsrlq $52,%ymm15,%ymm2 + vpsrlq $52,%ymm16,%ymm23 + vpsrlq $52,%ymm17,%ymm24 + vpsrlq $52,%ymm18,%ymm25 + vpsrlq $52,%ymm19,%ymm26 + vpsrlq $52,%ymm20,%ymm27 + vpsrlq $52,%ymm21,%ymm28 + vpsrlq $52,%ymm22,%ymm29 + + + valignq $3,%ymm28,%ymm29,%ymm29 + valignq $3,%ymm27,%ymm28,%ymm28 + valignq $3,%ymm26,%ymm27,%ymm27 + valignq $3,%ymm25,%ymm26,%ymm26 + valignq $3,%ymm24,%ymm25,%ymm25 + valignq $3,%ymm23,%ymm24,%ymm24 + valignq $3,%ymm2,%ymm23,%ymm23 + valignq $3,%ymm1,%ymm2,%ymm2 + valignq $3,%ymm0,%ymm1,%ymm1 + valignq $3,.Lzeros(%rip),%ymm0,%ymm0 + + + vpandq .Lmask52x4(%rip),%ymm13,%ymm13 + vpandq .Lmask52x4(%rip),%ymm14,%ymm14 + vpandq .Lmask52x4(%rip),%ymm15,%ymm15 + vpandq .Lmask52x4(%rip),%ymm16,%ymm16 + vpandq .Lmask52x4(%rip),%ymm17,%ymm17 + vpandq .Lmask52x4(%rip),%ymm18,%ymm18 + vpandq .Lmask52x4(%rip),%ymm19,%ymm19 + vpandq .Lmask52x4(%rip),%ymm20,%ymm20 + vpandq .Lmask52x4(%rip),%ymm21,%ymm21 + vpandq .Lmask52x4(%rip),%ymm22,%ymm22 + + + vpaddq %ymm0,%ymm13,%ymm13 + vpaddq %ymm1,%ymm14,%ymm14 + vpaddq %ymm2,%ymm15,%ymm15 + vpaddq %ymm23,%ymm16,%ymm16 + vpaddq %ymm24,%ymm17,%ymm17 + vpaddq %ymm25,%ymm18,%ymm18 + vpaddq %ymm26,%ymm19,%ymm19 + vpaddq %ymm27,%ymm20,%ymm20 + vpaddq %ymm28,%ymm21,%ymm21 + vpaddq %ymm29,%ymm22,%ymm22 + + + + vpcmpuq $6,.Lmask52x4(%rip),%ymm13,%k1 + vpcmpuq $6,.Lmask52x4(%rip),%ymm14,%k2 + kmovb %k1,%r14d + kmovb %k2,%r13d + shlb $4,%r13b + orb %r13b,%r14b + + vpcmpuq $6,.Lmask52x4(%rip),%ymm15,%k1 + vpcmpuq $6,.Lmask52x4(%rip),%ymm16,%k2 + kmovb %k1,%r13d + kmovb %k2,%r12d + shlb $4,%r12b + orb %r12b,%r13b + + vpcmpuq $6,.Lmask52x4(%rip),%ymm17,%k1 + vpcmpuq $6,.Lmask52x4(%rip),%ymm18,%k2 + kmovb %k1,%r12d + kmovb %k2,%r11d + shlb $4,%r11b + orb %r11b,%r12b + + vpcmpuq $6,.Lmask52x4(%rip),%ymm19,%k1 + vpcmpuq $6,.Lmask52x4(%rip),%ymm20,%k2 + kmovb %k1,%r11d + kmovb %k2,%r10d + shlb $4,%r10b + orb %r10b,%r11b + + vpcmpuq $6,.Lmask52x4(%rip),%ymm21,%k1 + vpcmpuq $6,.Lmask52x4(%rip),%ymm22,%k2 + kmovb %k1,%r10d + kmovb %k2,%r9d + shlb $4,%r9b + orb %r9b,%r10b + + addb %r14b,%r14b + adcb %r13b,%r13b + adcb %r12b,%r12b + adcb %r11b,%r11b + adcb %r10b,%r10b + + + vpcmpuq $0,.Lmask52x4(%rip),%ymm13,%k1 + vpcmpuq $0,.Lmask52x4(%rip),%ymm14,%k2 + kmovb %k1,%r9d + kmovb %k2,%r8d + shlb $4,%r8b + orb %r8b,%r9b + + vpcmpuq $0,.Lmask52x4(%rip),%ymm15,%k1 + vpcmpuq $0,.Lmask52x4(%rip),%ymm16,%k2 + kmovb %k1,%r8d + kmovb %k2,%edx + shlb $4,%dl + orb %dl,%r8b + + vpcmpuq $0,.Lmask52x4(%rip),%ymm17,%k1 + vpcmpuq $0,.Lmask52x4(%rip),%ymm18,%k2 + kmovb %k1,%edx + kmovb %k2,%ecx + shlb $4,%cl + orb %cl,%dl + + vpcmpuq $0,.Lmask52x4(%rip),%ymm19,%k1 + vpcmpuq $0,.Lmask52x4(%rip),%ymm20,%k2 + kmovb %k1,%ecx + kmovb %k2,%ebx + shlb $4,%bl + orb %bl,%cl + + vpcmpuq $0,.Lmask52x4(%rip),%ymm21,%k1 + vpcmpuq $0,.Lmask52x4(%rip),%ymm22,%k2 + kmovb %k1,%ebx + kmovb %k2,%eax + shlb $4,%al + orb %al,%bl + + addb %r9b,%r14b + adcb %r8b,%r13b + adcb %dl,%r12b + adcb %cl,%r11b + adcb %bl,%r10b + + xorb %r9b,%r14b + xorb %r8b,%r13b + xorb %dl,%r12b + xorb %cl,%r11b + xorb %bl,%r10b + + kmovb %r14d,%k1 + shrb $4,%r14b + kmovb %r14d,%k2 + kmovb %r13d,%k3 + shrb $4,%r13b + kmovb %r13d,%k4 + kmovb %r12d,%k5 + shrb $4,%r12b + kmovb %r12d,%k6 + kmovb %r11d,%k7 + + vpsubq .Lmask52x4(%rip),%ymm13,%ymm13{%k1} + vpsubq .Lmask52x4(%rip),%ymm14,%ymm14{%k2} + vpsubq .Lmask52x4(%rip),%ymm15,%ymm15{%k3} + vpsubq .Lmask52x4(%rip),%ymm16,%ymm16{%k4} + vpsubq .Lmask52x4(%rip),%ymm17,%ymm17{%k5} + vpsubq .Lmask52x4(%rip),%ymm18,%ymm18{%k6} + vpsubq .Lmask52x4(%rip),%ymm19,%ymm19{%k7} + + vpandq .Lmask52x4(%rip),%ymm13,%ymm13 + vpandq .Lmask52x4(%rip),%ymm14,%ymm14 + vpandq .Lmask52x4(%rip),%ymm15,%ymm15 + vpandq .Lmask52x4(%rip),%ymm16,%ymm16 + vpandq .Lmask52x4(%rip),%ymm17,%ymm17 + vpandq .Lmask52x4(%rip),%ymm18,%ymm18 + vpandq .Lmask52x4(%rip),%ymm19,%ymm19 + + shrb $4,%r11b + kmovb %r11d,%k1 + kmovb %r10d,%k2 + shrb $4,%r10b + kmovb %r10d,%k3 + + vpsubq .Lmask52x4(%rip),%ymm20,%ymm20{%k1} + vpsubq .Lmask52x4(%rip),%ymm21,%ymm21{%k2} + vpsubq .Lmask52x4(%rip),%ymm22,%ymm22{%k3} + + vpandq .Lmask52x4(%rip),%ymm20,%ymm20 + vpandq .Lmask52x4(%rip),%ymm21,%ymm21 + vpandq .Lmask52x4(%rip),%ymm22,%ymm22 + + vmovdqu64 %ymm3,0(%rdi) + vmovdqu64 %ymm4,32(%rdi) + vmovdqu64 %ymm5,64(%rdi) + vmovdqu64 %ymm6,96(%rdi) + vmovdqu64 %ymm7,128(%rdi) + vmovdqu64 %ymm8,160(%rdi) + vmovdqu64 %ymm9,192(%rdi) + vmovdqu64 %ymm10,224(%rdi) + vmovdqu64 %ymm11,256(%rdi) + vmovdqu64 %ymm12,288(%rdi) + + vmovdqu64 %ymm13,320(%rdi) + vmovdqu64 %ymm14,352(%rdi) + vmovdqu64 %ymm15,384(%rdi) + vmovdqu64 %ymm16,416(%rdi) + vmovdqu64 %ymm17,448(%rdi) + vmovdqu64 %ymm18,480(%rdi) + vmovdqu64 %ymm19,512(%rdi) + vmovdqu64 %ymm20,544(%rdi) + vmovdqu64 %ymm21,576(%rdi) + vmovdqu64 %ymm22,608(%rdi) + + vzeroupper + leaq (%rsp),%rax +.cfi_def_cfa_register %rax + movq 0(%rax),%r15 +.cfi_restore %r15 + movq 8(%rax),%r14 +.cfi_restore %r14 + movq 16(%rax),%r13 +.cfi_restore %r13 + movq 24(%rax),%r12 +.cfi_restore %r12 + movq 32(%rax),%rbp +.cfi_restore %rbp + movq 40(%rax),%rbx +.cfi_restore %rbx + leaq 48(%rax),%rsp +.cfi_def_cfa %rsp,8 +.Lossl_rsaz_amm52x40_x2_ifma256_epilogue: + .byte 0xf3,0xc3 +.cfi_endproc +.size ossl_rsaz_amm52x40_x2_ifma256, .-ossl_rsaz_amm52x40_x2_ifma256 +.text + +.align 32 +.globl ossl_extract_multiplier_2x40_win5 +.type ossl_extract_multiplier_2x40_win5,@function +ossl_extract_multiplier_2x40_win5: +.cfi_startproc +.byte 243,15,30,250 + vmovdqa64 .Lones(%rip),%ymm24 + vpbroadcastq %rdx,%ymm22 + vpbroadcastq %rcx,%ymm23 + leaq 20480(%rsi),%rax + + + movq %rsi,%r10 + + + vpxor %xmm0,%xmm0,%xmm0 + vmovdqa64 %ymm0,%ymm1 + vmovdqa64 %ymm0,%ymm2 + vmovdqa64 %ymm0,%ymm3 + vmovdqa64 %ymm0,%ymm4 + vmovdqa64 %ymm0,%ymm5 + vmovdqa64 %ymm0,%ymm16 + vmovdqa64 %ymm0,%ymm17 + vmovdqa64 %ymm0,%ymm18 + vmovdqa64 %ymm0,%ymm19 + vpxorq %ymm21,%ymm21,%ymm21 +.align 32 +.Lloop_0: + vpcmpq $0,%ymm21,%ymm22,%k1 + vmovdqu64 0(%rsi),%ymm20 + vpblendmq %ymm20,%ymm0,%ymm0{%k1} + vmovdqu64 32(%rsi),%ymm20 + vpblendmq %ymm20,%ymm1,%ymm1{%k1} + vmovdqu64 64(%rsi),%ymm20 + vpblendmq %ymm20,%ymm2,%ymm2{%k1} + vmovdqu64 96(%rsi),%ymm20 + vpblendmq %ymm20,%ymm3,%ymm3{%k1} + vmovdqu64 128(%rsi),%ymm20 + vpblendmq %ymm20,%ymm4,%ymm4{%k1} + vmovdqu64 160(%rsi),%ymm20 + vpblendmq %ymm20,%ymm5,%ymm5{%k1} + vmovdqu64 192(%rsi),%ymm20 + vpblendmq %ymm20,%ymm16,%ymm16{%k1} + vmovdqu64 224(%rsi),%ymm20 + vpblendmq %ymm20,%ymm17,%ymm17{%k1} + vmovdqu64 256(%rsi),%ymm20 + vpblendmq %ymm20,%ymm18,%ymm18{%k1} + vmovdqu64 288(%rsi),%ymm20 + vpblendmq %ymm20,%ymm19,%ymm19{%k1} + vpaddq %ymm24,%ymm21,%ymm21 + addq $640,%rsi + cmpq %rsi,%rax + jne .Lloop_0 + vmovdqu64 %ymm0,0(%rdi) + vmovdqu64 %ymm1,32(%rdi) + vmovdqu64 %ymm2,64(%rdi) + vmovdqu64 %ymm3,96(%rdi) + vmovdqu64 %ymm4,128(%rdi) + vmovdqu64 %ymm5,160(%rdi) + vmovdqu64 %ymm16,192(%rdi) + vmovdqu64 %ymm17,224(%rdi) + vmovdqu64 %ymm18,256(%rdi) + vmovdqu64 %ymm19,288(%rdi) + movq %r10,%rsi + vpxorq %ymm21,%ymm21,%ymm21 +.align 32 +.Lloop_320: + vpcmpq $0,%ymm21,%ymm23,%k1 + vmovdqu64 320(%rsi),%ymm20 + vpblendmq %ymm20,%ymm0,%ymm0{%k1} + vmovdqu64 352(%rsi),%ymm20 + vpblendmq %ymm20,%ymm1,%ymm1{%k1} + vmovdqu64 384(%rsi),%ymm20 + vpblendmq %ymm20,%ymm2,%ymm2{%k1} + vmovdqu64 416(%rsi),%ymm20 + vpblendmq %ymm20,%ymm3,%ymm3{%k1} + vmovdqu64 448(%rsi),%ymm20 + vpblendmq %ymm20,%ymm4,%ymm4{%k1} + vmovdqu64 480(%rsi),%ymm20 + vpblendmq %ymm20,%ymm5,%ymm5{%k1} + vmovdqu64 512(%rsi),%ymm20 + vpblendmq %ymm20,%ymm16,%ymm16{%k1} + vmovdqu64 544(%rsi),%ymm20 + vpblendmq %ymm20,%ymm17,%ymm17{%k1} + vmovdqu64 576(%rsi),%ymm20 + vpblendmq %ymm20,%ymm18,%ymm18{%k1} + vmovdqu64 608(%rsi),%ymm20 + vpblendmq %ymm20,%ymm19,%ymm19{%k1} + vpaddq %ymm24,%ymm21,%ymm21 + addq $640,%rsi + cmpq %rsi,%rax + jne .Lloop_320 + vmovdqu64 %ymm0,320(%rdi) + vmovdqu64 %ymm1,352(%rdi) + vmovdqu64 %ymm2,384(%rdi) + vmovdqu64 %ymm3,416(%rdi) + vmovdqu64 %ymm4,448(%rdi) + vmovdqu64 %ymm5,480(%rdi) + vmovdqu64 %ymm16,512(%rdi) + vmovdqu64 %ymm17,544(%rdi) + vmovdqu64 %ymm18,576(%rdi) + vmovdqu64 %ymm19,608(%rdi) + + .byte 0xf3,0xc3 +.cfi_endproc +.size ossl_extract_multiplier_2x40_win5, .-ossl_extract_multiplier_2x40_win5 +.section .rodata +.align 32 +.Lones: +.quad 1,1,1,1 +.Lzeros: +.quad 0,0,0,0 + .section ".note.gnu.property", "a" + .p2align 3 + .long 1f - 0f + .long 4f - 1f + .long 5 +0: + # "GNU" encoded with .byte, since .asciz isn't supported + # on Solaris. + .byte 0x47 + .byte 0x4e + .byte 0x55 + .byte 0 +1: + .p2align 3 + .long 0xc0000002 + .long 3f - 2f +2: + .long 3 +3: + .p2align 3 +4: diff --git a/deps/openssl/config/archs/BSD-x86_64/asm/crypto/bn/rsaz-4k-avxifma.s b/deps/openssl/config/archs/BSD-x86_64/asm/crypto/bn/rsaz-4k-avxifma.s new file mode 100644 index 00000000000000..57a577a61e58ce --- /dev/null +++ b/deps/openssl/config/archs/BSD-x86_64/asm/crypto/bn/rsaz-4k-avxifma.s @@ -0,0 +1,33 @@ +.text + +.globl ossl_rsaz_amm52x40_x1_avxifma256 +.globl ossl_rsaz_amm52x40_x2_avxifma256 +.globl ossl_extract_multiplier_2x40_win5_avx +.type ossl_rsaz_amm52x40_x1_avxifma256,@function +ossl_rsaz_amm52x40_x1_avxifma256: +ossl_rsaz_amm52x40_x2_avxifma256: +ossl_extract_multiplier_2x40_win5_avx: +.byte 0x0f,0x0b + .byte 0xf3,0xc3 +.size ossl_rsaz_amm52x40_x1_avxifma256, .-ossl_rsaz_amm52x40_x1_avxifma256 + .section ".note.gnu.property", "a" + .p2align 3 + .long 1f - 0f + .long 4f - 1f + .long 5 +0: + # "GNU" encoded with .byte, since .asciz isn't supported + # on Solaris. + .byte 0x47 + .byte 0x4e + .byte 0x55 + .byte 0 +1: + .p2align 3 + .long 0xc0000002 + .long 3f - 2f +2: + .long 3 +3: + .p2align 3 +4: diff --git a/deps/openssl/config/archs/BSD-x86_64/asm/crypto/bn/rsaz-avx2.s b/deps/openssl/config/archs/BSD-x86_64/asm/crypto/bn/rsaz-avx2.s index 80d6c817664518..f58e783167f07b 100644 --- a/deps/openssl/config/archs/BSD-x86_64/asm/crypto/bn/rsaz-avx2.s +++ b/deps/openssl/config/archs/BSD-x86_64/asm/crypto/bn/rsaz-avx2.s @@ -1730,6 +1730,7 @@ rsaz_avx2_eligible: .byte 0xf3,0xc3 .size rsaz_avx2_eligible,.-rsaz_avx2_eligible +.section .rodata .align 64 .Land_mask: .quad 0x1fffffff,0x1fffffff,0x1fffffff,0x1fffffff @@ -1741,6 +1742,7 @@ rsaz_avx2_eligible: .long 0,0,0,0, 1,1,1,1 .long 2,2,2,2, 3,3,3,3 .long 4,4,4,4, 4,4,4,4 +.previous .align 64 .section ".note.gnu.property", "a" .p2align 3 diff --git a/deps/openssl/config/archs/BSD-x86_64/asm/crypto/bn/rsaz-avx512.s b/deps/openssl/config/archs/BSD-x86_64/asm/crypto/bn/rsaz-avx512.s deleted file mode 100644 index 9bbe8ebf7d9862..00000000000000 --- a/deps/openssl/config/archs/BSD-x86_64/asm/crypto/bn/rsaz-avx512.s +++ /dev/null @@ -1,901 +0,0 @@ - -.globl ossl_rsaz_avx512ifma_eligible -.type ossl_rsaz_avx512ifma_eligible,@function -.align 32 -ossl_rsaz_avx512ifma_eligible: - movl OPENSSL_ia32cap_P+8(%rip),%ecx - xorl %eax,%eax - andl $2149777408,%ecx - cmpl $2149777408,%ecx - cmovel %ecx,%eax - .byte 0xf3,0xc3 -.size ossl_rsaz_avx512ifma_eligible, .-ossl_rsaz_avx512ifma_eligible -.text - -.globl ossl_rsaz_amm52x20_x1_256 -.type ossl_rsaz_amm52x20_x1_256,@function -.align 32 -ossl_rsaz_amm52x20_x1_256: -.cfi_startproc -.byte 243,15,30,250 - pushq %rbx -.cfi_adjust_cfa_offset 8 -.cfi_offset %rbx,-16 - pushq %rbp -.cfi_adjust_cfa_offset 8 -.cfi_offset %rbp,-24 - pushq %r12 -.cfi_adjust_cfa_offset 8 -.cfi_offset %r12,-32 - pushq %r13 -.cfi_adjust_cfa_offset 8 -.cfi_offset %r13,-40 - pushq %r14 -.cfi_adjust_cfa_offset 8 -.cfi_offset %r14,-48 - pushq %r15 -.cfi_adjust_cfa_offset 8 -.cfi_offset %r15,-56 -.Lrsaz_amm52x20_x1_256_body: - - - vpxord %ymm0,%ymm0,%ymm0 - vmovdqa64 %ymm0,%ymm1 - vmovdqa64 %ymm0,%ymm16 - vmovdqa64 %ymm0,%ymm17 - vmovdqa64 %ymm0,%ymm18 - vmovdqa64 %ymm0,%ymm19 - - xorl %r9d,%r9d - - movq %rdx,%r11 - movq $0xfffffffffffff,%rax - - - movl $5,%ebx - -.align 32 -.Lloop5: - movq 0(%r11),%r13 - - vpbroadcastq %r13,%ymm3 - movq 0(%rsi),%rdx - mulxq %r13,%r13,%r12 - addq %r13,%r9 - movq %r12,%r10 - adcq $0,%r10 - - movq %r8,%r13 - imulq %r9,%r13 - andq %rax,%r13 - - vpbroadcastq %r13,%ymm4 - movq 0(%rcx),%rdx - mulxq %r13,%r13,%r12 - addq %r13,%r9 - adcq %r12,%r10 - - shrq $52,%r9 - salq $12,%r10 - orq %r10,%r9 - - vpmadd52luq 0(%rsi),%ymm3,%ymm1 - vpmadd52luq 32(%rsi),%ymm3,%ymm16 - vpmadd52luq 64(%rsi),%ymm3,%ymm17 - vpmadd52luq 96(%rsi),%ymm3,%ymm18 - vpmadd52luq 128(%rsi),%ymm3,%ymm19 - - vpmadd52luq 0(%rcx),%ymm4,%ymm1 - vpmadd52luq 32(%rcx),%ymm4,%ymm16 - vpmadd52luq 64(%rcx),%ymm4,%ymm17 - vpmadd52luq 96(%rcx),%ymm4,%ymm18 - vpmadd52luq 128(%rcx),%ymm4,%ymm19 - - - valignq $1,%ymm1,%ymm16,%ymm1 - valignq $1,%ymm16,%ymm17,%ymm16 - valignq $1,%ymm17,%ymm18,%ymm17 - valignq $1,%ymm18,%ymm19,%ymm18 - valignq $1,%ymm19,%ymm0,%ymm19 - - vmovq %xmm1,%r13 - addq %r13,%r9 - - vpmadd52huq 0(%rsi),%ymm3,%ymm1 - vpmadd52huq 32(%rsi),%ymm3,%ymm16 - vpmadd52huq 64(%rsi),%ymm3,%ymm17 - vpmadd52huq 96(%rsi),%ymm3,%ymm18 - vpmadd52huq 128(%rsi),%ymm3,%ymm19 - - vpmadd52huq 0(%rcx),%ymm4,%ymm1 - vpmadd52huq 32(%rcx),%ymm4,%ymm16 - vpmadd52huq 64(%rcx),%ymm4,%ymm17 - vpmadd52huq 96(%rcx),%ymm4,%ymm18 - vpmadd52huq 128(%rcx),%ymm4,%ymm19 - movq 8(%r11),%r13 - - vpbroadcastq %r13,%ymm3 - movq 0(%rsi),%rdx - mulxq %r13,%r13,%r12 - addq %r13,%r9 - movq %r12,%r10 - adcq $0,%r10 - - movq %r8,%r13 - imulq %r9,%r13 - andq %rax,%r13 - - vpbroadcastq %r13,%ymm4 - movq 0(%rcx),%rdx - mulxq %r13,%r13,%r12 - addq %r13,%r9 - adcq %r12,%r10 - - shrq $52,%r9 - salq $12,%r10 - orq %r10,%r9 - - vpmadd52luq 0(%rsi),%ymm3,%ymm1 - vpmadd52luq 32(%rsi),%ymm3,%ymm16 - vpmadd52luq 64(%rsi),%ymm3,%ymm17 - vpmadd52luq 96(%rsi),%ymm3,%ymm18 - vpmadd52luq 128(%rsi),%ymm3,%ymm19 - - vpmadd52luq 0(%rcx),%ymm4,%ymm1 - vpmadd52luq 32(%rcx),%ymm4,%ymm16 - vpmadd52luq 64(%rcx),%ymm4,%ymm17 - vpmadd52luq 96(%rcx),%ymm4,%ymm18 - vpmadd52luq 128(%rcx),%ymm4,%ymm19 - - - valignq $1,%ymm1,%ymm16,%ymm1 - valignq $1,%ymm16,%ymm17,%ymm16 - valignq $1,%ymm17,%ymm18,%ymm17 - valignq $1,%ymm18,%ymm19,%ymm18 - valignq $1,%ymm19,%ymm0,%ymm19 - - vmovq %xmm1,%r13 - addq %r13,%r9 - - vpmadd52huq 0(%rsi),%ymm3,%ymm1 - vpmadd52huq 32(%rsi),%ymm3,%ymm16 - vpmadd52huq 64(%rsi),%ymm3,%ymm17 - vpmadd52huq 96(%rsi),%ymm3,%ymm18 - vpmadd52huq 128(%rsi),%ymm3,%ymm19 - - vpmadd52huq 0(%rcx),%ymm4,%ymm1 - vpmadd52huq 32(%rcx),%ymm4,%ymm16 - vpmadd52huq 64(%rcx),%ymm4,%ymm17 - vpmadd52huq 96(%rcx),%ymm4,%ymm18 - vpmadd52huq 128(%rcx),%ymm4,%ymm19 - movq 16(%r11),%r13 - - vpbroadcastq %r13,%ymm3 - movq 0(%rsi),%rdx - mulxq %r13,%r13,%r12 - addq %r13,%r9 - movq %r12,%r10 - adcq $0,%r10 - - movq %r8,%r13 - imulq %r9,%r13 - andq %rax,%r13 - - vpbroadcastq %r13,%ymm4 - movq 0(%rcx),%rdx - mulxq %r13,%r13,%r12 - addq %r13,%r9 - adcq %r12,%r10 - - shrq $52,%r9 - salq $12,%r10 - orq %r10,%r9 - - vpmadd52luq 0(%rsi),%ymm3,%ymm1 - vpmadd52luq 32(%rsi),%ymm3,%ymm16 - vpmadd52luq 64(%rsi),%ymm3,%ymm17 - vpmadd52luq 96(%rsi),%ymm3,%ymm18 - vpmadd52luq 128(%rsi),%ymm3,%ymm19 - - vpmadd52luq 0(%rcx),%ymm4,%ymm1 - vpmadd52luq 32(%rcx),%ymm4,%ymm16 - vpmadd52luq 64(%rcx),%ymm4,%ymm17 - vpmadd52luq 96(%rcx),%ymm4,%ymm18 - vpmadd52luq 128(%rcx),%ymm4,%ymm19 - - - valignq $1,%ymm1,%ymm16,%ymm1 - valignq $1,%ymm16,%ymm17,%ymm16 - valignq $1,%ymm17,%ymm18,%ymm17 - valignq $1,%ymm18,%ymm19,%ymm18 - valignq $1,%ymm19,%ymm0,%ymm19 - - vmovq %xmm1,%r13 - addq %r13,%r9 - - vpmadd52huq 0(%rsi),%ymm3,%ymm1 - vpmadd52huq 32(%rsi),%ymm3,%ymm16 - vpmadd52huq 64(%rsi),%ymm3,%ymm17 - vpmadd52huq 96(%rsi),%ymm3,%ymm18 - vpmadd52huq 128(%rsi),%ymm3,%ymm19 - - vpmadd52huq 0(%rcx),%ymm4,%ymm1 - vpmadd52huq 32(%rcx),%ymm4,%ymm16 - vpmadd52huq 64(%rcx),%ymm4,%ymm17 - vpmadd52huq 96(%rcx),%ymm4,%ymm18 - vpmadd52huq 128(%rcx),%ymm4,%ymm19 - movq 24(%r11),%r13 - - vpbroadcastq %r13,%ymm3 - movq 0(%rsi),%rdx - mulxq %r13,%r13,%r12 - addq %r13,%r9 - movq %r12,%r10 - adcq $0,%r10 - - movq %r8,%r13 - imulq %r9,%r13 - andq %rax,%r13 - - vpbroadcastq %r13,%ymm4 - movq 0(%rcx),%rdx - mulxq %r13,%r13,%r12 - addq %r13,%r9 - adcq %r12,%r10 - - shrq $52,%r9 - salq $12,%r10 - orq %r10,%r9 - - vpmadd52luq 0(%rsi),%ymm3,%ymm1 - vpmadd52luq 32(%rsi),%ymm3,%ymm16 - vpmadd52luq 64(%rsi),%ymm3,%ymm17 - vpmadd52luq 96(%rsi),%ymm3,%ymm18 - vpmadd52luq 128(%rsi),%ymm3,%ymm19 - - vpmadd52luq 0(%rcx),%ymm4,%ymm1 - vpmadd52luq 32(%rcx),%ymm4,%ymm16 - vpmadd52luq 64(%rcx),%ymm4,%ymm17 - vpmadd52luq 96(%rcx),%ymm4,%ymm18 - vpmadd52luq 128(%rcx),%ymm4,%ymm19 - - - valignq $1,%ymm1,%ymm16,%ymm1 - valignq $1,%ymm16,%ymm17,%ymm16 - valignq $1,%ymm17,%ymm18,%ymm17 - valignq $1,%ymm18,%ymm19,%ymm18 - valignq $1,%ymm19,%ymm0,%ymm19 - - vmovq %xmm1,%r13 - addq %r13,%r9 - - vpmadd52huq 0(%rsi),%ymm3,%ymm1 - vpmadd52huq 32(%rsi),%ymm3,%ymm16 - vpmadd52huq 64(%rsi),%ymm3,%ymm17 - vpmadd52huq 96(%rsi),%ymm3,%ymm18 - vpmadd52huq 128(%rsi),%ymm3,%ymm19 - - vpmadd52huq 0(%rcx),%ymm4,%ymm1 - vpmadd52huq 32(%rcx),%ymm4,%ymm16 - vpmadd52huq 64(%rcx),%ymm4,%ymm17 - vpmadd52huq 96(%rcx),%ymm4,%ymm18 - vpmadd52huq 128(%rcx),%ymm4,%ymm19 - leaq 32(%r11),%r11 - decl %ebx - jne .Lloop5 - - vmovdqa64 .Lmask52x4(%rip),%ymm4 - - vpbroadcastq %r9,%ymm3 - vpblendd $3,%ymm3,%ymm1,%ymm1 - - - - vpsrlq $52,%ymm1,%ymm24 - vpsrlq $52,%ymm16,%ymm25 - vpsrlq $52,%ymm17,%ymm26 - vpsrlq $52,%ymm18,%ymm27 - vpsrlq $52,%ymm19,%ymm28 - - - valignq $3,%ymm27,%ymm28,%ymm28 - valignq $3,%ymm26,%ymm27,%ymm27 - valignq $3,%ymm25,%ymm26,%ymm26 - valignq $3,%ymm24,%ymm25,%ymm25 - valignq $3,%ymm0,%ymm24,%ymm24 - - - vpandq %ymm4,%ymm1,%ymm1 - vpandq %ymm4,%ymm16,%ymm16 - vpandq %ymm4,%ymm17,%ymm17 - vpandq %ymm4,%ymm18,%ymm18 - vpandq %ymm4,%ymm19,%ymm19 - - - vpaddq %ymm24,%ymm1,%ymm1 - vpaddq %ymm25,%ymm16,%ymm16 - vpaddq %ymm26,%ymm17,%ymm17 - vpaddq %ymm27,%ymm18,%ymm18 - vpaddq %ymm28,%ymm19,%ymm19 - - - - vpcmpuq $1,%ymm1,%ymm4,%k1 - vpcmpuq $1,%ymm16,%ymm4,%k2 - vpcmpuq $1,%ymm17,%ymm4,%k3 - vpcmpuq $1,%ymm18,%ymm4,%k4 - vpcmpuq $1,%ymm19,%ymm4,%k5 - kmovb %k1,%r14d - kmovb %k2,%r13d - kmovb %k3,%r12d - kmovb %k4,%r11d - kmovb %k5,%r10d - - - vpcmpuq $0,%ymm1,%ymm4,%k1 - vpcmpuq $0,%ymm16,%ymm4,%k2 - vpcmpuq $0,%ymm17,%ymm4,%k3 - vpcmpuq $0,%ymm18,%ymm4,%k4 - vpcmpuq $0,%ymm19,%ymm4,%k5 - kmovb %k1,%r9d - kmovb %k2,%r8d - kmovb %k3,%ebx - kmovb %k4,%ecx - kmovb %k5,%edx - - - - shlb $4,%r13b - orb %r13b,%r14b - shlb $4,%r11b - orb %r11b,%r12b - - addb %r14b,%r14b - adcb %r12b,%r12b - adcb %r10b,%r10b - - shlb $4,%r8b - orb %r8b,%r9b - shlb $4,%cl - orb %cl,%bl - - addb %r9b,%r14b - adcb %bl,%r12b - adcb %dl,%r10b - - xorb %r9b,%r14b - xorb %bl,%r12b - xorb %dl,%r10b - - kmovb %r14d,%k1 - shrb $4,%r14b - kmovb %r14d,%k2 - kmovb %r12d,%k3 - shrb $4,%r12b - kmovb %r12d,%k4 - kmovb %r10d,%k5 - - - vpsubq %ymm4,%ymm1,%ymm1{%k1} - vpsubq %ymm4,%ymm16,%ymm16{%k2} - vpsubq %ymm4,%ymm17,%ymm17{%k3} - vpsubq %ymm4,%ymm18,%ymm18{%k4} - vpsubq %ymm4,%ymm19,%ymm19{%k5} - - vpandq %ymm4,%ymm1,%ymm1 - vpandq %ymm4,%ymm16,%ymm16 - vpandq %ymm4,%ymm17,%ymm17 - vpandq %ymm4,%ymm18,%ymm18 - vpandq %ymm4,%ymm19,%ymm19 - - vmovdqu64 %ymm1,(%rdi) - vmovdqu64 %ymm16,32(%rdi) - vmovdqu64 %ymm17,64(%rdi) - vmovdqu64 %ymm18,96(%rdi) - vmovdqu64 %ymm19,128(%rdi) - - vzeroupper - movq 0(%rsp),%r15 -.cfi_restore %r15 - movq 8(%rsp),%r14 -.cfi_restore %r14 - movq 16(%rsp),%r13 -.cfi_restore %r13 - movq 24(%rsp),%r12 -.cfi_restore %r12 - movq 32(%rsp),%rbp -.cfi_restore %rbp - movq 40(%rsp),%rbx -.cfi_restore %rbx - leaq 48(%rsp),%rsp -.cfi_adjust_cfa_offset -48 -.Lrsaz_amm52x20_x1_256_epilogue: - .byte 0xf3,0xc3 -.cfi_endproc -.size ossl_rsaz_amm52x20_x1_256, .-ossl_rsaz_amm52x20_x1_256 -.data -.align 32 -.Lmask52x4: -.quad 0xfffffffffffff -.quad 0xfffffffffffff -.quad 0xfffffffffffff -.quad 0xfffffffffffff -.text - -.globl ossl_rsaz_amm52x20_x2_256 -.type ossl_rsaz_amm52x20_x2_256,@function -.align 32 -ossl_rsaz_amm52x20_x2_256: -.cfi_startproc -.byte 243,15,30,250 - pushq %rbx -.cfi_adjust_cfa_offset 8 -.cfi_offset %rbx,-16 - pushq %rbp -.cfi_adjust_cfa_offset 8 -.cfi_offset %rbp,-24 - pushq %r12 -.cfi_adjust_cfa_offset 8 -.cfi_offset %r12,-32 - pushq %r13 -.cfi_adjust_cfa_offset 8 -.cfi_offset %r13,-40 - pushq %r14 -.cfi_adjust_cfa_offset 8 -.cfi_offset %r14,-48 - pushq %r15 -.cfi_adjust_cfa_offset 8 -.cfi_offset %r15,-56 -.Lrsaz_amm52x20_x2_256_body: - - - vpxord %ymm0,%ymm0,%ymm0 - vmovdqa64 %ymm0,%ymm1 - vmovdqa64 %ymm0,%ymm16 - vmovdqa64 %ymm0,%ymm17 - vmovdqa64 %ymm0,%ymm18 - vmovdqa64 %ymm0,%ymm19 - vmovdqa64 %ymm0,%ymm2 - vmovdqa64 %ymm0,%ymm20 - vmovdqa64 %ymm0,%ymm21 - vmovdqa64 %ymm0,%ymm22 - vmovdqa64 %ymm0,%ymm23 - - xorl %r9d,%r9d - xorl %r15d,%r15d - - movq %rdx,%r11 - movq $0xfffffffffffff,%rax - - movl $20,%ebx - -.align 32 -.Lloop20: - movq 0(%r11),%r13 - - vpbroadcastq %r13,%ymm3 - movq 0(%rsi),%rdx - mulxq %r13,%r13,%r12 - addq %r13,%r9 - movq %r12,%r10 - adcq $0,%r10 - - movq (%r8),%r13 - imulq %r9,%r13 - andq %rax,%r13 - - vpbroadcastq %r13,%ymm4 - movq 0(%rcx),%rdx - mulxq %r13,%r13,%r12 - addq %r13,%r9 - adcq %r12,%r10 - - shrq $52,%r9 - salq $12,%r10 - orq %r10,%r9 - - vpmadd52luq 0(%rsi),%ymm3,%ymm1 - vpmadd52luq 32(%rsi),%ymm3,%ymm16 - vpmadd52luq 64(%rsi),%ymm3,%ymm17 - vpmadd52luq 96(%rsi),%ymm3,%ymm18 - vpmadd52luq 128(%rsi),%ymm3,%ymm19 - - vpmadd52luq 0(%rcx),%ymm4,%ymm1 - vpmadd52luq 32(%rcx),%ymm4,%ymm16 - vpmadd52luq 64(%rcx),%ymm4,%ymm17 - vpmadd52luq 96(%rcx),%ymm4,%ymm18 - vpmadd52luq 128(%rcx),%ymm4,%ymm19 - - - valignq $1,%ymm1,%ymm16,%ymm1 - valignq $1,%ymm16,%ymm17,%ymm16 - valignq $1,%ymm17,%ymm18,%ymm17 - valignq $1,%ymm18,%ymm19,%ymm18 - valignq $1,%ymm19,%ymm0,%ymm19 - - vmovq %xmm1,%r13 - addq %r13,%r9 - - vpmadd52huq 0(%rsi),%ymm3,%ymm1 - vpmadd52huq 32(%rsi),%ymm3,%ymm16 - vpmadd52huq 64(%rsi),%ymm3,%ymm17 - vpmadd52huq 96(%rsi),%ymm3,%ymm18 - vpmadd52huq 128(%rsi),%ymm3,%ymm19 - - vpmadd52huq 0(%rcx),%ymm4,%ymm1 - vpmadd52huq 32(%rcx),%ymm4,%ymm16 - vpmadd52huq 64(%rcx),%ymm4,%ymm17 - vpmadd52huq 96(%rcx),%ymm4,%ymm18 - vpmadd52huq 128(%rcx),%ymm4,%ymm19 - movq 160(%r11),%r13 - - vpbroadcastq %r13,%ymm3 - movq 160(%rsi),%rdx - mulxq %r13,%r13,%r12 - addq %r13,%r15 - movq %r12,%r10 - adcq $0,%r10 - - movq 8(%r8),%r13 - imulq %r15,%r13 - andq %rax,%r13 - - vpbroadcastq %r13,%ymm4 - movq 160(%rcx),%rdx - mulxq %r13,%r13,%r12 - addq %r13,%r15 - adcq %r12,%r10 - - shrq $52,%r15 - salq $12,%r10 - orq %r10,%r15 - - vpmadd52luq 160(%rsi),%ymm3,%ymm2 - vpmadd52luq 192(%rsi),%ymm3,%ymm20 - vpmadd52luq 224(%rsi),%ymm3,%ymm21 - vpmadd52luq 256(%rsi),%ymm3,%ymm22 - vpmadd52luq 288(%rsi),%ymm3,%ymm23 - - vpmadd52luq 160(%rcx),%ymm4,%ymm2 - vpmadd52luq 192(%rcx),%ymm4,%ymm20 - vpmadd52luq 224(%rcx),%ymm4,%ymm21 - vpmadd52luq 256(%rcx),%ymm4,%ymm22 - vpmadd52luq 288(%rcx),%ymm4,%ymm23 - - - valignq $1,%ymm2,%ymm20,%ymm2 - valignq $1,%ymm20,%ymm21,%ymm20 - valignq $1,%ymm21,%ymm22,%ymm21 - valignq $1,%ymm22,%ymm23,%ymm22 - valignq $1,%ymm23,%ymm0,%ymm23 - - vmovq %xmm2,%r13 - addq %r13,%r15 - - vpmadd52huq 160(%rsi),%ymm3,%ymm2 - vpmadd52huq 192(%rsi),%ymm3,%ymm20 - vpmadd52huq 224(%rsi),%ymm3,%ymm21 - vpmadd52huq 256(%rsi),%ymm3,%ymm22 - vpmadd52huq 288(%rsi),%ymm3,%ymm23 - - vpmadd52huq 160(%rcx),%ymm4,%ymm2 - vpmadd52huq 192(%rcx),%ymm4,%ymm20 - vpmadd52huq 224(%rcx),%ymm4,%ymm21 - vpmadd52huq 256(%rcx),%ymm4,%ymm22 - vpmadd52huq 288(%rcx),%ymm4,%ymm23 - leaq 8(%r11),%r11 - decl %ebx - jne .Lloop20 - - vmovdqa64 .Lmask52x4(%rip),%ymm4 - - vpbroadcastq %r9,%ymm3 - vpblendd $3,%ymm3,%ymm1,%ymm1 - - - - vpsrlq $52,%ymm1,%ymm24 - vpsrlq $52,%ymm16,%ymm25 - vpsrlq $52,%ymm17,%ymm26 - vpsrlq $52,%ymm18,%ymm27 - vpsrlq $52,%ymm19,%ymm28 - - - valignq $3,%ymm27,%ymm28,%ymm28 - valignq $3,%ymm26,%ymm27,%ymm27 - valignq $3,%ymm25,%ymm26,%ymm26 - valignq $3,%ymm24,%ymm25,%ymm25 - valignq $3,%ymm0,%ymm24,%ymm24 - - - vpandq %ymm4,%ymm1,%ymm1 - vpandq %ymm4,%ymm16,%ymm16 - vpandq %ymm4,%ymm17,%ymm17 - vpandq %ymm4,%ymm18,%ymm18 - vpandq %ymm4,%ymm19,%ymm19 - - - vpaddq %ymm24,%ymm1,%ymm1 - vpaddq %ymm25,%ymm16,%ymm16 - vpaddq %ymm26,%ymm17,%ymm17 - vpaddq %ymm27,%ymm18,%ymm18 - vpaddq %ymm28,%ymm19,%ymm19 - - - - vpcmpuq $1,%ymm1,%ymm4,%k1 - vpcmpuq $1,%ymm16,%ymm4,%k2 - vpcmpuq $1,%ymm17,%ymm4,%k3 - vpcmpuq $1,%ymm18,%ymm4,%k4 - vpcmpuq $1,%ymm19,%ymm4,%k5 - kmovb %k1,%r14d - kmovb %k2,%r13d - kmovb %k3,%r12d - kmovb %k4,%r11d - kmovb %k5,%r10d - - - vpcmpuq $0,%ymm1,%ymm4,%k1 - vpcmpuq $0,%ymm16,%ymm4,%k2 - vpcmpuq $0,%ymm17,%ymm4,%k3 - vpcmpuq $0,%ymm18,%ymm4,%k4 - vpcmpuq $0,%ymm19,%ymm4,%k5 - kmovb %k1,%r9d - kmovb %k2,%r8d - kmovb %k3,%ebx - kmovb %k4,%ecx - kmovb %k5,%edx - - - - shlb $4,%r13b - orb %r13b,%r14b - shlb $4,%r11b - orb %r11b,%r12b - - addb %r14b,%r14b - adcb %r12b,%r12b - adcb %r10b,%r10b - - shlb $4,%r8b - orb %r8b,%r9b - shlb $4,%cl - orb %cl,%bl - - addb %r9b,%r14b - adcb %bl,%r12b - adcb %dl,%r10b - - xorb %r9b,%r14b - xorb %bl,%r12b - xorb %dl,%r10b - - kmovb %r14d,%k1 - shrb $4,%r14b - kmovb %r14d,%k2 - kmovb %r12d,%k3 - shrb $4,%r12b - kmovb %r12d,%k4 - kmovb %r10d,%k5 - - - vpsubq %ymm4,%ymm1,%ymm1{%k1} - vpsubq %ymm4,%ymm16,%ymm16{%k2} - vpsubq %ymm4,%ymm17,%ymm17{%k3} - vpsubq %ymm4,%ymm18,%ymm18{%k4} - vpsubq %ymm4,%ymm19,%ymm19{%k5} - - vpandq %ymm4,%ymm1,%ymm1 - vpandq %ymm4,%ymm16,%ymm16 - vpandq %ymm4,%ymm17,%ymm17 - vpandq %ymm4,%ymm18,%ymm18 - vpandq %ymm4,%ymm19,%ymm19 - - vpbroadcastq %r15,%ymm3 - vpblendd $3,%ymm3,%ymm2,%ymm2 - - - - vpsrlq $52,%ymm2,%ymm24 - vpsrlq $52,%ymm20,%ymm25 - vpsrlq $52,%ymm21,%ymm26 - vpsrlq $52,%ymm22,%ymm27 - vpsrlq $52,%ymm23,%ymm28 - - - valignq $3,%ymm27,%ymm28,%ymm28 - valignq $3,%ymm26,%ymm27,%ymm27 - valignq $3,%ymm25,%ymm26,%ymm26 - valignq $3,%ymm24,%ymm25,%ymm25 - valignq $3,%ymm0,%ymm24,%ymm24 - - - vpandq %ymm4,%ymm2,%ymm2 - vpandq %ymm4,%ymm20,%ymm20 - vpandq %ymm4,%ymm21,%ymm21 - vpandq %ymm4,%ymm22,%ymm22 - vpandq %ymm4,%ymm23,%ymm23 - - - vpaddq %ymm24,%ymm2,%ymm2 - vpaddq %ymm25,%ymm20,%ymm20 - vpaddq %ymm26,%ymm21,%ymm21 - vpaddq %ymm27,%ymm22,%ymm22 - vpaddq %ymm28,%ymm23,%ymm23 - - - - vpcmpuq $1,%ymm2,%ymm4,%k1 - vpcmpuq $1,%ymm20,%ymm4,%k2 - vpcmpuq $1,%ymm21,%ymm4,%k3 - vpcmpuq $1,%ymm22,%ymm4,%k4 - vpcmpuq $1,%ymm23,%ymm4,%k5 - kmovb %k1,%r14d - kmovb %k2,%r13d - kmovb %k3,%r12d - kmovb %k4,%r11d - kmovb %k5,%r10d - - - vpcmpuq $0,%ymm2,%ymm4,%k1 - vpcmpuq $0,%ymm20,%ymm4,%k2 - vpcmpuq $0,%ymm21,%ymm4,%k3 - vpcmpuq $0,%ymm22,%ymm4,%k4 - vpcmpuq $0,%ymm23,%ymm4,%k5 - kmovb %k1,%r9d - kmovb %k2,%r8d - kmovb %k3,%ebx - kmovb %k4,%ecx - kmovb %k5,%edx - - - - shlb $4,%r13b - orb %r13b,%r14b - shlb $4,%r11b - orb %r11b,%r12b - - addb %r14b,%r14b - adcb %r12b,%r12b - adcb %r10b,%r10b - - shlb $4,%r8b - orb %r8b,%r9b - shlb $4,%cl - orb %cl,%bl - - addb %r9b,%r14b - adcb %bl,%r12b - adcb %dl,%r10b - - xorb %r9b,%r14b - xorb %bl,%r12b - xorb %dl,%r10b - - kmovb %r14d,%k1 - shrb $4,%r14b - kmovb %r14d,%k2 - kmovb %r12d,%k3 - shrb $4,%r12b - kmovb %r12d,%k4 - kmovb %r10d,%k5 - - - vpsubq %ymm4,%ymm2,%ymm2{%k1} - vpsubq %ymm4,%ymm20,%ymm20{%k2} - vpsubq %ymm4,%ymm21,%ymm21{%k3} - vpsubq %ymm4,%ymm22,%ymm22{%k4} - vpsubq %ymm4,%ymm23,%ymm23{%k5} - - vpandq %ymm4,%ymm2,%ymm2 - vpandq %ymm4,%ymm20,%ymm20 - vpandq %ymm4,%ymm21,%ymm21 - vpandq %ymm4,%ymm22,%ymm22 - vpandq %ymm4,%ymm23,%ymm23 - - vmovdqu64 %ymm1,(%rdi) - vmovdqu64 %ymm16,32(%rdi) - vmovdqu64 %ymm17,64(%rdi) - vmovdqu64 %ymm18,96(%rdi) - vmovdqu64 %ymm19,128(%rdi) - - vmovdqu64 %ymm2,160(%rdi) - vmovdqu64 %ymm20,192(%rdi) - vmovdqu64 %ymm21,224(%rdi) - vmovdqu64 %ymm22,256(%rdi) - vmovdqu64 %ymm23,288(%rdi) - - vzeroupper - movq 0(%rsp),%r15 -.cfi_restore %r15 - movq 8(%rsp),%r14 -.cfi_restore %r14 - movq 16(%rsp),%r13 -.cfi_restore %r13 - movq 24(%rsp),%r12 -.cfi_restore %r12 - movq 32(%rsp),%rbp -.cfi_restore %rbp - movq 40(%rsp),%rbx -.cfi_restore %rbx - leaq 48(%rsp),%rsp -.cfi_adjust_cfa_offset -48 -.Lrsaz_amm52x20_x2_256_epilogue: - .byte 0xf3,0xc3 -.cfi_endproc -.size ossl_rsaz_amm52x20_x2_256, .-ossl_rsaz_amm52x20_x2_256 -.text - -.align 32 -.globl ossl_extract_multiplier_2x20_win5 -.type ossl_extract_multiplier_2x20_win5,@function -ossl_extract_multiplier_2x20_win5: -.cfi_startproc -.byte 243,15,30,250 - leaq (%rcx,%rcx,4),%rax - salq $5,%rax - addq %rax,%rsi - - vmovdqa64 .Lones(%rip),%ymm23 - vpbroadcastq %rdx,%ymm22 - leaq 10240(%rsi),%rax - - vpxor %xmm4,%xmm4,%xmm4 - vmovdqa64 %ymm4,%ymm3 - vmovdqa64 %ymm4,%ymm2 - vmovdqa64 %ymm4,%ymm1 - vmovdqa64 %ymm4,%ymm0 - vmovdqa64 %ymm4,%ymm21 - -.align 32 -.Lloop: - vpcmpq $0,%ymm21,%ymm22,%k1 - addq $320,%rsi - vpaddq %ymm23,%ymm21,%ymm21 - vmovdqu64 -320(%rsi),%ymm16 - vmovdqu64 -288(%rsi),%ymm17 - vmovdqu64 -256(%rsi),%ymm18 - vmovdqu64 -224(%rsi),%ymm19 - vmovdqu64 -192(%rsi),%ymm20 - vpblendmq %ymm16,%ymm0,%ymm0{%k1} - vpblendmq %ymm17,%ymm1,%ymm1{%k1} - vpblendmq %ymm18,%ymm2,%ymm2{%k1} - vpblendmq %ymm19,%ymm3,%ymm3{%k1} - vpblendmq %ymm20,%ymm4,%ymm4{%k1} - cmpq %rsi,%rax - jne .Lloop - - vmovdqu64 %ymm0,(%rdi) - vmovdqu64 %ymm1,32(%rdi) - vmovdqu64 %ymm2,64(%rdi) - vmovdqu64 %ymm3,96(%rdi) - vmovdqu64 %ymm4,128(%rdi) - - .byte 0xf3,0xc3 -.cfi_endproc -.size ossl_extract_multiplier_2x20_win5, .-ossl_extract_multiplier_2x20_win5 -.data -.align 32 -.Lones: -.quad 1,1,1,1 - .section ".note.gnu.property", "a" - .p2align 3 - .long 1f - 0f - .long 4f - 1f - .long 5 -0: - # "GNU" encoded with .byte, since .asciz isn't supported - # on Solaris. - .byte 0x47 - .byte 0x4e - .byte 0x55 - .byte 0 -1: - .p2align 3 - .long 0xc0000002 - .long 3f - 2f -2: - .long 3 -3: - .p2align 3 -4: diff --git a/deps/openssl/config/archs/BSD-x86_64/asm/crypto/bn/rsaz-x86_64.s b/deps/openssl/config/archs/BSD-x86_64/asm/crypto/bn/rsaz-x86_64.s index 0b2513c819db21..ca03617e929446 100644 --- a/deps/openssl/config/archs/BSD-x86_64/asm/crypto/bn/rsaz-x86_64.s +++ b/deps/openssl/config/archs/BSD-x86_64/asm/crypto/bn/rsaz-x86_64.s @@ -2009,10 +2009,12 @@ rsaz_512_gather4: .cfi_endproc .size rsaz_512_gather4,.-rsaz_512_gather4 +.section .rodata .align 64 .Linc: .long 0,0, 1,1 .long 2,2, 2,2 +.previous .section ".note.gnu.property", "a" .p2align 3 .long 1f - 0f diff --git a/deps/openssl/config/archs/BSD-x86_64/asm/crypto/bn/x86_64-mont5.s b/deps/openssl/config/archs/BSD-x86_64/asm/crypto/bn/x86_64-mont5.s index 0eb8b6c8b5c75b..1b7e7b922915f2 100644 --- a/deps/openssl/config/archs/BSD-x86_64/asm/crypto/bn/x86_64-mont5.s +++ b/deps/openssl/config/archs/BSD-x86_64/asm/crypto/bn/x86_64-mont5.s @@ -3596,11 +3596,13 @@ bn_gather5: .LSEH_end_bn_gather5: .cfi_endproc .size bn_gather5,.-bn_gather5 +.section .rodata .align 64 .Linc: .long 0,0, 1,1 .long 2,2, 2,2 .byte 77,111,110,116,103,111,109,101,114,121,32,77,117,108,116,105,112,108,105,99,97,116,105,111,110,32,119,105,116,104,32,115,99,97,116,116,101,114,47,103,97,116,104,101,114,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 +.previous .section ".note.gnu.property", "a" .p2align 3 .long 1f - 0f diff --git a/deps/openssl/config/archs/BSD-x86_64/asm/crypto/buildinf.h b/deps/openssl/config/archs/BSD-x86_64/asm/crypto/buildinf.h index 8b75c2e7cdad2a..838ea3d5a083b1 100644 --- a/deps/openssl/config/archs/BSD-x86_64/asm/crypto/buildinf.h +++ b/deps/openssl/config/archs/BSD-x86_64/asm/crypto/buildinf.h @@ -11,7 +11,7 @@ */ #define PLATFORM "platform: BSD-x86_64" -#define DATE "built on: Sun Jul 20 00:46:18 2025 UTC" +#define DATE "built on: Sun Jul 27 00:46:32 2025 UTC" /* * Generate compiler_flags as an array of individual characters. This is a diff --git a/deps/openssl/config/archs/BSD-x86_64/asm/crypto/camellia/cmll-x86_64.s b/deps/openssl/config/archs/BSD-x86_64/asm/crypto/camellia/cmll-x86_64.s index 605c25d74be399..c1a9846b51cb0c 100644 --- a/deps/openssl/config/archs/BSD-x86_64/asm/crypto/camellia/cmll-x86_64.s +++ b/deps/openssl/config/archs/BSD-x86_64/asm/crypto/camellia/cmll-x86_64.s @@ -1144,6 +1144,7 @@ Camellia_Ekeygen: .byte 0xf3,0xc3 .cfi_endproc .size Camellia_Ekeygen,.-Camellia_Ekeygen +.section .rodata .align 64 .LCamellia_SIGMA: .long 0x3bcc908b, 0xa09e667f, 0x4caa73b2, 0xb67ae858 @@ -1663,6 +1664,7 @@ Camellia_Ekeygen: .long 0x008f8f8f,0xe300e3e3 .long 0x00010101,0x40004040 .long 0x003d3d3d,0x4f004f4f +.text .globl Camellia_cbc_encrypt .type Camellia_cbc_encrypt,@function .align 16 diff --git a/deps/openssl/config/archs/BSD-x86_64/asm/crypto/chacha/chacha-x86_64.s b/deps/openssl/config/archs/BSD-x86_64/asm/crypto/chacha/chacha-x86_64.s index f8dea020745f9a..30425eb494c710 100644 --- a/deps/openssl/config/archs/BSD-x86_64/asm/crypto/chacha/chacha-x86_64.s +++ b/deps/openssl/config/archs/BSD-x86_64/asm/crypto/chacha/chacha-x86_64.s @@ -2,6 +2,7 @@ +.section .rodata .align 64 .Lzero: .long 0,0,0,0 @@ -33,6 +34,7 @@ .Lsigma: .byte 101,120,112,97,110,100,32,51,50,45,98,121,116,101,32,107,0 .byte 67,104,97,67,104,97,50,48,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 +.previous .globl ChaCha20_ctr32 .type ChaCha20_ctr32,@function .align 64 diff --git a/deps/openssl/config/archs/BSD-x86_64/asm/crypto/ec/ecp_nistz256-x86_64.s b/deps/openssl/config/archs/BSD-x86_64/asm/crypto/ec/ecp_nistz256-x86_64.s index 284c11748946b8..0cf1f47a7e67f9 100644 --- a/deps/openssl/config/archs/BSD-x86_64/asm/crypto/ec/ecp_nistz256-x86_64.s +++ b/deps/openssl/config/archs/BSD-x86_64/asm/crypto/ec/ecp_nistz256-x86_64.s @@ -1,4 +1,4 @@ -.text +.section .rodata .globl ecp_nistz256_precomputed .type ecp_nistz256_precomputed,@object .align 4096 @@ -2376,6 +2376,7 @@ ecp_nistz256_precomputed: +.section .rodata .align 64 .Lpoly: .quad 0xffffffffffffffff, 0x00000000ffffffff, 0x0000000000000000, 0xffffffff00000001 @@ -2398,6 +2399,7 @@ ecp_nistz256_precomputed: .quad 0xf3b9cac2fc632551, 0xbce6faada7179e84, 0xffffffffffffffff, 0xffffffff00000000 .LordK: .quad 0xccd1c8aaee00bc4f +.previous .globl ecp_nistz256_mul_by_2 .type ecp_nistz256_mul_by_2,@function diff --git a/deps/openssl/config/archs/BSD-x86_64/asm/crypto/md5/md5-x86_64.s b/deps/openssl/config/archs/BSD-x86_64/asm/crypto/md5/md5-x86_64.s index 85e1d0ca259271..6119335cb2e396 100644 --- a/deps/openssl/config/archs/BSD-x86_64/asm/crypto/md5/md5-x86_64.s +++ b/deps/openssl/config/archs/BSD-x86_64/asm/crypto/md5/md5-x86_64.s @@ -201,7 +201,7 @@ ossl_md5_block_asm_data_order: leal -165796510(%rax,%r10,1),%eax andl %ecx,%r11d movl 24(%rsi),%r10d - orl %r11d,%r12d + addl %r11d,%eax movl %ecx,%r11d addl %r12d,%eax movl %ecx,%r12d @@ -212,7 +212,7 @@ ossl_md5_block_asm_data_order: leal -1069501632(%rdx,%r10,1),%edx andl %ebx,%r11d movl 44(%rsi),%r10d - orl %r11d,%r12d + addl %r11d,%edx movl %ebx,%r11d addl %r12d,%edx movl %ebx,%r12d @@ -223,7 +223,7 @@ ossl_md5_block_asm_data_order: leal 643717713(%rcx,%r10,1),%ecx andl %eax,%r11d movl 0(%rsi),%r10d - orl %r11d,%r12d + addl %r11d,%ecx movl %eax,%r11d addl %r12d,%ecx movl %eax,%r12d @@ -234,7 +234,7 @@ ossl_md5_block_asm_data_order: leal -373897302(%rbx,%r10,1),%ebx andl %edx,%r11d movl 20(%rsi),%r10d - orl %r11d,%r12d + addl %r11d,%ebx movl %edx,%r11d addl %r12d,%ebx movl %edx,%r12d @@ -245,7 +245,7 @@ ossl_md5_block_asm_data_order: leal -701558691(%rax,%r10,1),%eax andl %ecx,%r11d movl 40(%rsi),%r10d - orl %r11d,%r12d + addl %r11d,%eax movl %ecx,%r11d addl %r12d,%eax movl %ecx,%r12d @@ -256,7 +256,7 @@ ossl_md5_block_asm_data_order: leal 38016083(%rdx,%r10,1),%edx andl %ebx,%r11d movl 60(%rsi),%r10d - orl %r11d,%r12d + addl %r11d,%edx movl %ebx,%r11d addl %r12d,%edx movl %ebx,%r12d @@ -267,7 +267,7 @@ ossl_md5_block_asm_data_order: leal -660478335(%rcx,%r10,1),%ecx andl %eax,%r11d movl 16(%rsi),%r10d - orl %r11d,%r12d + addl %r11d,%ecx movl %eax,%r11d addl %r12d,%ecx movl %eax,%r12d @@ -278,7 +278,7 @@ ossl_md5_block_asm_data_order: leal -405537848(%rbx,%r10,1),%ebx andl %edx,%r11d movl 36(%rsi),%r10d - orl %r11d,%r12d + addl %r11d,%ebx movl %edx,%r11d addl %r12d,%ebx movl %edx,%r12d @@ -289,7 +289,7 @@ ossl_md5_block_asm_data_order: leal 568446438(%rax,%r10,1),%eax andl %ecx,%r11d movl 56(%rsi),%r10d - orl %r11d,%r12d + addl %r11d,%eax movl %ecx,%r11d addl %r12d,%eax movl %ecx,%r12d @@ -300,7 +300,7 @@ ossl_md5_block_asm_data_order: leal -1019803690(%rdx,%r10,1),%edx andl %ebx,%r11d movl 12(%rsi),%r10d - orl %r11d,%r12d + addl %r11d,%edx movl %ebx,%r11d addl %r12d,%edx movl %ebx,%r12d @@ -311,7 +311,7 @@ ossl_md5_block_asm_data_order: leal -187363961(%rcx,%r10,1),%ecx andl %eax,%r11d movl 32(%rsi),%r10d - orl %r11d,%r12d + addl %r11d,%ecx movl %eax,%r11d addl %r12d,%ecx movl %eax,%r12d @@ -322,7 +322,7 @@ ossl_md5_block_asm_data_order: leal 1163531501(%rbx,%r10,1),%ebx andl %edx,%r11d movl 52(%rsi),%r10d - orl %r11d,%r12d + addl %r11d,%ebx movl %edx,%r11d addl %r12d,%ebx movl %edx,%r12d @@ -333,7 +333,7 @@ ossl_md5_block_asm_data_order: leal -1444681467(%rax,%r10,1),%eax andl %ecx,%r11d movl 8(%rsi),%r10d - orl %r11d,%r12d + addl %r11d,%eax movl %ecx,%r11d addl %r12d,%eax movl %ecx,%r12d @@ -344,7 +344,7 @@ ossl_md5_block_asm_data_order: leal -51403784(%rdx,%r10,1),%edx andl %ebx,%r11d movl 28(%rsi),%r10d - orl %r11d,%r12d + addl %r11d,%edx movl %ebx,%r11d addl %r12d,%edx movl %ebx,%r12d @@ -355,7 +355,7 @@ ossl_md5_block_asm_data_order: leal 1735328473(%rcx,%r10,1),%ecx andl %eax,%r11d movl 48(%rsi),%r10d - orl %r11d,%r12d + addl %r11d,%ecx movl %eax,%r11d addl %r12d,%ecx movl %eax,%r12d @@ -366,7 +366,7 @@ ossl_md5_block_asm_data_order: leal -1926607734(%rbx,%r10,1),%ebx andl %edx,%r11d movl 20(%rsi),%r10d - orl %r11d,%r12d + addl %r11d,%ebx movl %edx,%r11d addl %r12d,%ebx movl %edx,%r12d diff --git a/deps/openssl/config/archs/BSD-x86_64/asm/crypto/modes/aes-gcm-avx512.s b/deps/openssl/config/archs/BSD-x86_64/asm/crypto/modes/aes-gcm-avx512.s new file mode 100644 index 00000000000000..0d97b3fa41d869 --- /dev/null +++ b/deps/openssl/config/archs/BSD-x86_64/asm/crypto/modes/aes-gcm-avx512.s @@ -0,0 +1,136131 @@ + +.globl ossl_vaes_vpclmulqdq_capable +.type ossl_vaes_vpclmulqdq_capable,@function +.align 32 +ossl_vaes_vpclmulqdq_capable: + movq OPENSSL_ia32cap_P+8(%rip),%rcx + + movq $6600291188736,%rdx + xorl %eax,%eax + andq %rdx,%rcx + cmpq %rdx,%rcx + cmoveq %rcx,%rax + .byte 0xf3,0xc3 +.size ossl_vaes_vpclmulqdq_capable, .-ossl_vaes_vpclmulqdq_capable +.text +.globl ossl_aes_gcm_init_avx512 +.type ossl_aes_gcm_init_avx512,@function +.align 32 +ossl_aes_gcm_init_avx512: +.cfi_startproc +.byte 243,15,30,250 + vpxorq %xmm16,%xmm16,%xmm16 + + + movl 240(%rdi),%eax + cmpl $9,%eax + je .Laes_128_0 + cmpl $11,%eax + je .Laes_192_0 + cmpl $13,%eax + je .Laes_256_0 + jmp .Lexit_aes_0 +.align 32 +.Laes_128_0: + vpxorq 0(%rdi),%xmm16,%xmm16 + + vaesenc 16(%rdi),%xmm16,%xmm16 + + vaesenc 32(%rdi),%xmm16,%xmm16 + + vaesenc 48(%rdi),%xmm16,%xmm16 + + vaesenc 64(%rdi),%xmm16,%xmm16 + + vaesenc 80(%rdi),%xmm16,%xmm16 + + vaesenc 96(%rdi),%xmm16,%xmm16 + + vaesenc 112(%rdi),%xmm16,%xmm16 + + vaesenc 128(%rdi),%xmm16,%xmm16 + + vaesenc 144(%rdi),%xmm16,%xmm16 + + vaesenclast 160(%rdi),%xmm16,%xmm16 + jmp .Lexit_aes_0 +.align 32 +.Laes_192_0: + vpxorq 0(%rdi),%xmm16,%xmm16 + + vaesenc 16(%rdi),%xmm16,%xmm16 + + vaesenc 32(%rdi),%xmm16,%xmm16 + + vaesenc 48(%rdi),%xmm16,%xmm16 + + vaesenc 64(%rdi),%xmm16,%xmm16 + + vaesenc 80(%rdi),%xmm16,%xmm16 + + vaesenc 96(%rdi),%xmm16,%xmm16 + + vaesenc 112(%rdi),%xmm16,%xmm16 + + vaesenc 128(%rdi),%xmm16,%xmm16 + + vaesenc 144(%rdi),%xmm16,%xmm16 + + vaesenc 160(%rdi),%xmm16,%xmm16 + + vaesenc 176(%rdi),%xmm16,%xmm16 + + vaesenclast 192(%rdi),%xmm16,%xmm16 + jmp .Lexit_aes_0 +.align 32 +.Laes_256_0: + vpxorq 0(%rdi),%xmm16,%xmm16 + + vaesenc 16(%rdi),%xmm16,%xmm16 + + vaesenc 32(%rdi),%xmm16,%xmm16 + + vaesenc 48(%rdi),%xmm16,%xmm16 + + vaesenc 64(%rdi),%xmm16,%xmm16 + + vaesenc 80(%rdi),%xmm16,%xmm16 + + vaesenc 96(%rdi),%xmm16,%xmm16 + + vaesenc 112(%rdi),%xmm16,%xmm16 + + vaesenc 128(%rdi),%xmm16,%xmm16 + + vaesenc 144(%rdi),%xmm16,%xmm16 + + vaesenc 160(%rdi),%xmm16,%xmm16 + + vaesenc 176(%rdi),%xmm16,%xmm16 + + vaesenc 192(%rdi),%xmm16,%xmm16 + + vaesenc 208(%rdi),%xmm16,%xmm16 + + vaesenclast 224(%rdi),%xmm16,%xmm16 + jmp .Lexit_aes_0 +.Lexit_aes_0: + + vpshufb SHUF_MASK(%rip),%xmm16,%xmm16 + + vmovdqa64 %xmm16,%xmm2 + vpsllq $1,%xmm16,%xmm16 + vpsrlq $63,%xmm2,%xmm2 + vmovdqa %xmm2,%xmm1 + vpslldq $8,%xmm2,%xmm2 + vpsrldq $8,%xmm1,%xmm1 + vporq %xmm2,%xmm16,%xmm16 + + vpshufd $36,%xmm1,%xmm2 + vpcmpeqd TWOONE(%rip),%xmm2,%xmm2 + vpand POLY(%rip),%xmm2,%xmm2 + vpxorq %xmm2,%xmm16,%xmm16 + + vmovdqu64 %xmm16,336(%rsi) + vshufi32x4 $0x00,%ymm16,%ymm16,%ymm4 + vmovdqa %ymm4,%ymm3 + + vpclmulqdq $0x11,%ymm4,%ymm3,%ymm0 + vpclmulqdq $0x00,%ymm4,%ymm3,%ymm1 + vpclmulqdq $0x01,%ymm4,%ymm3,%ymm2 + vpclmulqdq $0x10,%ymm4,%ymm3,%ymm3 + vpxorq %ymm2,%ymm3,%ymm3 + + vpsrldq $8,%ymm3,%ymm2 + vpslldq $8,%ymm3,%ymm3 + vpxorq %ymm2,%ymm0,%ymm0 + vpxorq %ymm1,%ymm3,%ymm3 + + + + vmovdqu64 POLY2(%rip),%ymm2 + + vpclmulqdq $0x01,%ymm3,%ymm2,%ymm1 + vpslldq $8,%ymm1,%ymm1 + vpxorq %ymm1,%ymm3,%ymm3 + + + + vpclmulqdq $0x00,%ymm3,%ymm2,%ymm1 + vpsrldq $4,%ymm1,%ymm1 + vpclmulqdq $0x10,%ymm3,%ymm2,%ymm3 + vpslldq $4,%ymm3,%ymm3 + + vpternlogq $0x96,%ymm1,%ymm0,%ymm3 + + vmovdqu64 %xmm3,320(%rsi) + vinserti64x2 $1,%xmm16,%ymm3,%ymm4 + vmovdqa64 %ymm4,%ymm5 + + vpclmulqdq $0x11,%ymm3,%ymm4,%ymm0 + vpclmulqdq $0x00,%ymm3,%ymm4,%ymm1 + vpclmulqdq $0x01,%ymm3,%ymm4,%ymm2 + vpclmulqdq $0x10,%ymm3,%ymm4,%ymm4 + vpxorq %ymm2,%ymm4,%ymm4 + + vpsrldq $8,%ymm4,%ymm2 + vpslldq $8,%ymm4,%ymm4 + vpxorq %ymm2,%ymm0,%ymm0 + vpxorq %ymm1,%ymm4,%ymm4 + + + + vmovdqu64 POLY2(%rip),%ymm2 + + vpclmulqdq $0x01,%ymm4,%ymm2,%ymm1 + vpslldq $8,%ymm1,%ymm1 + vpxorq %ymm1,%ymm4,%ymm4 + + + + vpclmulqdq $0x00,%ymm4,%ymm2,%ymm1 + vpsrldq $4,%ymm1,%ymm1 + vpclmulqdq $0x10,%ymm4,%ymm2,%ymm4 + vpslldq $4,%ymm4,%ymm4 + + vpternlogq $0x96,%ymm1,%ymm0,%ymm4 + + vmovdqu64 %ymm4,288(%rsi) + + vinserti64x4 $1,%ymm5,%zmm4,%zmm4 + + + vshufi64x2 $0x00,%zmm4,%zmm4,%zmm3 + vmovdqa64 %zmm4,%zmm5 + + vpclmulqdq $0x11,%zmm3,%zmm4,%zmm0 + vpclmulqdq $0x00,%zmm3,%zmm4,%zmm1 + vpclmulqdq $0x01,%zmm3,%zmm4,%zmm2 + vpclmulqdq $0x10,%zmm3,%zmm4,%zmm4 + vpxorq %zmm2,%zmm4,%zmm4 + + vpsrldq $8,%zmm4,%zmm2 + vpslldq $8,%zmm4,%zmm4 + vpxorq %zmm2,%zmm0,%zmm0 + vpxorq %zmm1,%zmm4,%zmm4 + + + + vmovdqu64 POLY2(%rip),%zmm2 + + vpclmulqdq $0x01,%zmm4,%zmm2,%zmm1 + vpslldq $8,%zmm1,%zmm1 + vpxorq %zmm1,%zmm4,%zmm4 + + + + vpclmulqdq $0x00,%zmm4,%zmm2,%zmm1 + vpsrldq $4,%zmm1,%zmm1 + vpclmulqdq $0x10,%zmm4,%zmm2,%zmm4 + vpslldq $4,%zmm4,%zmm4 + + vpternlogq $0x96,%zmm1,%zmm0,%zmm4 + + vmovdqu64 %zmm4,224(%rsi) + vshufi64x2 $0x00,%zmm4,%zmm4,%zmm3 + + vpclmulqdq $0x11,%zmm3,%zmm5,%zmm0 + vpclmulqdq $0x00,%zmm3,%zmm5,%zmm1 + vpclmulqdq $0x01,%zmm3,%zmm5,%zmm2 + vpclmulqdq $0x10,%zmm3,%zmm5,%zmm5 + vpxorq %zmm2,%zmm5,%zmm5 + + vpsrldq $8,%zmm5,%zmm2 + vpslldq $8,%zmm5,%zmm5 + vpxorq %zmm2,%zmm0,%zmm0 + vpxorq %zmm1,%zmm5,%zmm5 + + + + vmovdqu64 POLY2(%rip),%zmm2 + + vpclmulqdq $0x01,%zmm5,%zmm2,%zmm1 + vpslldq $8,%zmm1,%zmm1 + vpxorq %zmm1,%zmm5,%zmm5 + + + + vpclmulqdq $0x00,%zmm5,%zmm2,%zmm1 + vpsrldq $4,%zmm1,%zmm1 + vpclmulqdq $0x10,%zmm5,%zmm2,%zmm5 + vpslldq $4,%zmm5,%zmm5 + + vpternlogq $0x96,%zmm1,%zmm0,%zmm5 + + vmovdqu64 %zmm5,160(%rsi) + + vpclmulqdq $0x11,%zmm3,%zmm4,%zmm0 + vpclmulqdq $0x00,%zmm3,%zmm4,%zmm1 + vpclmulqdq $0x01,%zmm3,%zmm4,%zmm2 + vpclmulqdq $0x10,%zmm3,%zmm4,%zmm4 + vpxorq %zmm2,%zmm4,%zmm4 + + vpsrldq $8,%zmm4,%zmm2 + vpslldq $8,%zmm4,%zmm4 + vpxorq %zmm2,%zmm0,%zmm0 + vpxorq %zmm1,%zmm4,%zmm4 + + + + vmovdqu64 POLY2(%rip),%zmm2 + + vpclmulqdq $0x01,%zmm4,%zmm2,%zmm1 + vpslldq $8,%zmm1,%zmm1 + vpxorq %zmm1,%zmm4,%zmm4 + + + + vpclmulqdq $0x00,%zmm4,%zmm2,%zmm1 + vpsrldq $4,%zmm1,%zmm1 + vpclmulqdq $0x10,%zmm4,%zmm2,%zmm4 + vpslldq $4,%zmm4,%zmm4 + + vpternlogq $0x96,%zmm1,%zmm0,%zmm4 + + vmovdqu64 %zmm4,96(%rsi) + vzeroupper +.Labort_init: + .byte 0xf3,0xc3 +.cfi_endproc +.size ossl_aes_gcm_init_avx512, .-ossl_aes_gcm_init_avx512 +.globl ossl_aes_gcm_setiv_avx512 +.type ossl_aes_gcm_setiv_avx512,@function +.align 32 +ossl_aes_gcm_setiv_avx512: +.cfi_startproc +.Lsetiv_seh_begin: +.byte 243,15,30,250 + pushq %rbx +.cfi_adjust_cfa_offset 8 +.cfi_offset %rbx,-16 +.Lsetiv_seh_push_rbx: + pushq %rbp +.cfi_adjust_cfa_offset 8 +.cfi_offset %rbp,-24 +.Lsetiv_seh_push_rbp: + pushq %r12 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r12,-32 +.Lsetiv_seh_push_r12: + pushq %r13 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r13,-40 +.Lsetiv_seh_push_r13: + pushq %r14 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r14,-48 +.Lsetiv_seh_push_r14: + pushq %r15 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r15,-56 +.Lsetiv_seh_push_r15: + + + + + + + + + + + leaq 0(%rsp),%rbp +.cfi_def_cfa_register %rbp +.Lsetiv_seh_setfp: + +.Lsetiv_seh_prolog_end: + subq $820,%rsp + andq $(-64),%rsp + cmpq $12,%rcx + je iv_len_12_init_IV + vpxor %xmm2,%xmm2,%xmm2 + movq %rdx,%r10 + movq %rcx,%r11 + orq %r11,%r11 + jz .L_CALC_AAD_done_1 + + xorq %rbx,%rbx + vmovdqa64 SHUF_MASK(%rip),%zmm16 + +.L_get_AAD_loop48x16_1: + cmpq $768,%r11 + jl .L_exit_AAD_loop48x16_1 + vmovdqu64 0(%r10),%zmm11 + vmovdqu64 64(%r10),%zmm3 + vmovdqu64 128(%r10),%zmm4 + vmovdqu64 192(%r10),%zmm5 + vpshufb %zmm16,%zmm11,%zmm11 + vpshufb %zmm16,%zmm3,%zmm3 + vpshufb %zmm16,%zmm4,%zmm4 + vpshufb %zmm16,%zmm5,%zmm5 + testq %rbx,%rbx + jnz .L_skip_hkeys_precomputation_2 + + vmovdqu64 288(%rsi),%zmm1 + vmovdqu64 %zmm1,704(%rsp) + + vmovdqu64 224(%rsi),%zmm9 + vmovdqu64 %zmm9,640(%rsp) + + + vshufi64x2 $0x00,%zmm9,%zmm9,%zmm9 + + vmovdqu64 160(%rsi),%zmm10 + vmovdqu64 %zmm10,576(%rsp) + + vmovdqu64 96(%rsi),%zmm12 + vmovdqu64 %zmm12,512(%rsp) + + vpclmulqdq $0x11,%zmm9,%zmm10,%zmm13 + vpclmulqdq $0x00,%zmm9,%zmm10,%zmm15 + vpclmulqdq $0x01,%zmm9,%zmm10,%zmm17 + vpclmulqdq $0x10,%zmm9,%zmm10,%zmm10 + vpxorq %zmm17,%zmm10,%zmm10 + + vpsrldq $8,%zmm10,%zmm17 + vpslldq $8,%zmm10,%zmm10 + vpxorq %zmm17,%zmm13,%zmm13 + vpxorq %zmm15,%zmm10,%zmm10 + + + + vmovdqu64 POLY2(%rip),%zmm17 + + vpclmulqdq $0x01,%zmm10,%zmm17,%zmm15 + vpslldq $8,%zmm15,%zmm15 + vpxorq %zmm15,%zmm10,%zmm10 + + + + vpclmulqdq $0x00,%zmm10,%zmm17,%zmm15 + vpsrldq $4,%zmm15,%zmm15 + vpclmulqdq $0x10,%zmm10,%zmm17,%zmm10 + vpslldq $4,%zmm10,%zmm10 + + vpternlogq $0x96,%zmm15,%zmm13,%zmm10 + + vmovdqu64 %zmm10,448(%rsp) + + vpclmulqdq $0x11,%zmm9,%zmm12,%zmm13 + vpclmulqdq $0x00,%zmm9,%zmm12,%zmm15 + vpclmulqdq $0x01,%zmm9,%zmm12,%zmm17 + vpclmulqdq $0x10,%zmm9,%zmm12,%zmm12 + vpxorq %zmm17,%zmm12,%zmm12 + + vpsrldq $8,%zmm12,%zmm17 + vpslldq $8,%zmm12,%zmm12 + vpxorq %zmm17,%zmm13,%zmm13 + vpxorq %zmm15,%zmm12,%zmm12 + + + + vmovdqu64 POLY2(%rip),%zmm17 + + vpclmulqdq $0x01,%zmm12,%zmm17,%zmm15 + vpslldq $8,%zmm15,%zmm15 + vpxorq %zmm15,%zmm12,%zmm12 + + + + vpclmulqdq $0x00,%zmm12,%zmm17,%zmm15 + vpsrldq $4,%zmm15,%zmm15 + vpclmulqdq $0x10,%zmm12,%zmm17,%zmm12 + vpslldq $4,%zmm12,%zmm12 + + vpternlogq $0x96,%zmm15,%zmm13,%zmm12 + + vmovdqu64 %zmm12,384(%rsp) + + vpclmulqdq $0x11,%zmm9,%zmm10,%zmm13 + vpclmulqdq $0x00,%zmm9,%zmm10,%zmm15 + vpclmulqdq $0x01,%zmm9,%zmm10,%zmm17 + vpclmulqdq $0x10,%zmm9,%zmm10,%zmm10 + vpxorq %zmm17,%zmm10,%zmm10 + + vpsrldq $8,%zmm10,%zmm17 + vpslldq $8,%zmm10,%zmm10 + vpxorq %zmm17,%zmm13,%zmm13 + vpxorq %zmm15,%zmm10,%zmm10 + + + + vmovdqu64 POLY2(%rip),%zmm17 + + vpclmulqdq $0x01,%zmm10,%zmm17,%zmm15 + vpslldq $8,%zmm15,%zmm15 + vpxorq %zmm15,%zmm10,%zmm10 + + + + vpclmulqdq $0x00,%zmm10,%zmm17,%zmm15 + vpsrldq $4,%zmm15,%zmm15 + vpclmulqdq $0x10,%zmm10,%zmm17,%zmm10 + vpslldq $4,%zmm10,%zmm10 + + vpternlogq $0x96,%zmm15,%zmm13,%zmm10 + + vmovdqu64 %zmm10,320(%rsp) + + vpclmulqdq $0x11,%zmm9,%zmm12,%zmm13 + vpclmulqdq $0x00,%zmm9,%zmm12,%zmm15 + vpclmulqdq $0x01,%zmm9,%zmm12,%zmm17 + vpclmulqdq $0x10,%zmm9,%zmm12,%zmm12 + vpxorq %zmm17,%zmm12,%zmm12 + + vpsrldq $8,%zmm12,%zmm17 + vpslldq $8,%zmm12,%zmm12 + vpxorq %zmm17,%zmm13,%zmm13 + vpxorq %zmm15,%zmm12,%zmm12 + + + + vmovdqu64 POLY2(%rip),%zmm17 + + vpclmulqdq $0x01,%zmm12,%zmm17,%zmm15 + vpslldq $8,%zmm15,%zmm15 + vpxorq %zmm15,%zmm12,%zmm12 + + + + vpclmulqdq $0x00,%zmm12,%zmm17,%zmm15 + vpsrldq $4,%zmm15,%zmm15 + vpclmulqdq $0x10,%zmm12,%zmm17,%zmm12 + vpslldq $4,%zmm12,%zmm12 + + vpternlogq $0x96,%zmm15,%zmm13,%zmm12 + + vmovdqu64 %zmm12,256(%rsp) + + vpclmulqdq $0x11,%zmm9,%zmm10,%zmm13 + vpclmulqdq $0x00,%zmm9,%zmm10,%zmm15 + vpclmulqdq $0x01,%zmm9,%zmm10,%zmm17 + vpclmulqdq $0x10,%zmm9,%zmm10,%zmm10 + vpxorq %zmm17,%zmm10,%zmm10 + + vpsrldq $8,%zmm10,%zmm17 + vpslldq $8,%zmm10,%zmm10 + vpxorq %zmm17,%zmm13,%zmm13 + vpxorq %zmm15,%zmm10,%zmm10 + + + + vmovdqu64 POLY2(%rip),%zmm17 + + vpclmulqdq $0x01,%zmm10,%zmm17,%zmm15 + vpslldq $8,%zmm15,%zmm15 + vpxorq %zmm15,%zmm10,%zmm10 + + + + vpclmulqdq $0x00,%zmm10,%zmm17,%zmm15 + vpsrldq $4,%zmm15,%zmm15 + vpclmulqdq $0x10,%zmm10,%zmm17,%zmm10 + vpslldq $4,%zmm10,%zmm10 + + vpternlogq $0x96,%zmm15,%zmm13,%zmm10 + + vmovdqu64 %zmm10,192(%rsp) + + vpclmulqdq $0x11,%zmm9,%zmm12,%zmm13 + vpclmulqdq $0x00,%zmm9,%zmm12,%zmm15 + vpclmulqdq $0x01,%zmm9,%zmm12,%zmm17 + vpclmulqdq $0x10,%zmm9,%zmm12,%zmm12 + vpxorq %zmm17,%zmm12,%zmm12 + + vpsrldq $8,%zmm12,%zmm17 + vpslldq $8,%zmm12,%zmm12 + vpxorq %zmm17,%zmm13,%zmm13 + vpxorq %zmm15,%zmm12,%zmm12 + + + + vmovdqu64 POLY2(%rip),%zmm17 + + vpclmulqdq $0x01,%zmm12,%zmm17,%zmm15 + vpslldq $8,%zmm15,%zmm15 + vpxorq %zmm15,%zmm12,%zmm12 + + + + vpclmulqdq $0x00,%zmm12,%zmm17,%zmm15 + vpsrldq $4,%zmm15,%zmm15 + vpclmulqdq $0x10,%zmm12,%zmm17,%zmm12 + vpslldq $4,%zmm12,%zmm12 + + vpternlogq $0x96,%zmm15,%zmm13,%zmm12 + + vmovdqu64 %zmm12,128(%rsp) + + vpclmulqdq $0x11,%zmm9,%zmm10,%zmm13 + vpclmulqdq $0x00,%zmm9,%zmm10,%zmm15 + vpclmulqdq $0x01,%zmm9,%zmm10,%zmm17 + vpclmulqdq $0x10,%zmm9,%zmm10,%zmm10 + vpxorq %zmm17,%zmm10,%zmm10 + + vpsrldq $8,%zmm10,%zmm17 + vpslldq $8,%zmm10,%zmm10 + vpxorq %zmm17,%zmm13,%zmm13 + vpxorq %zmm15,%zmm10,%zmm10 + + + + vmovdqu64 POLY2(%rip),%zmm17 + + vpclmulqdq $0x01,%zmm10,%zmm17,%zmm15 + vpslldq $8,%zmm15,%zmm15 + vpxorq %zmm15,%zmm10,%zmm10 + + + + vpclmulqdq $0x00,%zmm10,%zmm17,%zmm15 + vpsrldq $4,%zmm15,%zmm15 + vpclmulqdq $0x10,%zmm10,%zmm17,%zmm10 + vpslldq $4,%zmm10,%zmm10 + + vpternlogq $0x96,%zmm15,%zmm13,%zmm10 + + vmovdqu64 %zmm10,64(%rsp) + + vpclmulqdq $0x11,%zmm9,%zmm12,%zmm13 + vpclmulqdq $0x00,%zmm9,%zmm12,%zmm15 + vpclmulqdq $0x01,%zmm9,%zmm12,%zmm17 + vpclmulqdq $0x10,%zmm9,%zmm12,%zmm12 + vpxorq %zmm17,%zmm12,%zmm12 + + vpsrldq $8,%zmm12,%zmm17 + vpslldq $8,%zmm12,%zmm12 + vpxorq %zmm17,%zmm13,%zmm13 + vpxorq %zmm15,%zmm12,%zmm12 + + + + vmovdqu64 POLY2(%rip),%zmm17 + + vpclmulqdq $0x01,%zmm12,%zmm17,%zmm15 + vpslldq $8,%zmm15,%zmm15 + vpxorq %zmm15,%zmm12,%zmm12 + + + + vpclmulqdq $0x00,%zmm12,%zmm17,%zmm15 + vpsrldq $4,%zmm15,%zmm15 + vpclmulqdq $0x10,%zmm12,%zmm17,%zmm12 + vpslldq $4,%zmm12,%zmm12 + + vpternlogq $0x96,%zmm15,%zmm13,%zmm12 + + vmovdqu64 %zmm12,0(%rsp) +.L_skip_hkeys_precomputation_2: + movq $1,%rbx + vpxorq %zmm2,%zmm11,%zmm11 + vmovdqu64 0(%rsp),%zmm19 + vpclmulqdq $0x11,%zmm19,%zmm11,%zmm1 + vpclmulqdq $0x00,%zmm19,%zmm11,%zmm9 + vpclmulqdq $0x01,%zmm19,%zmm11,%zmm10 + vpclmulqdq $0x10,%zmm19,%zmm11,%zmm12 + vmovdqu64 64(%rsp),%zmm19 + vpclmulqdq $0x11,%zmm19,%zmm3,%zmm13 + vpclmulqdq $0x00,%zmm19,%zmm3,%zmm15 + vpclmulqdq $0x01,%zmm19,%zmm3,%zmm17 + vpclmulqdq $0x10,%zmm19,%zmm3,%zmm18 + vpxorq %zmm17,%zmm10,%zmm7 + vpxorq %zmm13,%zmm1,%zmm6 + vpxorq %zmm15,%zmm9,%zmm8 + vpternlogq $0x96,%zmm18,%zmm12,%zmm7 + vmovdqu64 128(%rsp),%zmm19 + vpclmulqdq $0x11,%zmm19,%zmm4,%zmm1 + vpclmulqdq $0x00,%zmm19,%zmm4,%zmm9 + vpclmulqdq $0x01,%zmm19,%zmm4,%zmm10 + vpclmulqdq $0x10,%zmm19,%zmm4,%zmm12 + vmovdqu64 192(%rsp),%zmm19 + vpclmulqdq $0x11,%zmm19,%zmm5,%zmm13 + vpclmulqdq $0x00,%zmm19,%zmm5,%zmm15 + vpclmulqdq $0x01,%zmm19,%zmm5,%zmm17 + vpclmulqdq $0x10,%zmm19,%zmm5,%zmm18 + + vpternlogq $0x96,%zmm17,%zmm10,%zmm7 + vpternlogq $0x96,%zmm13,%zmm1,%zmm6 + vpternlogq $0x96,%zmm15,%zmm9,%zmm8 + vpternlogq $0x96,%zmm18,%zmm12,%zmm7 + vmovdqu64 256(%r10),%zmm11 + vmovdqu64 320(%r10),%zmm3 + vmovdqu64 384(%r10),%zmm4 + vmovdqu64 448(%r10),%zmm5 + vpshufb %zmm16,%zmm11,%zmm11 + vpshufb %zmm16,%zmm3,%zmm3 + vpshufb %zmm16,%zmm4,%zmm4 + vpshufb %zmm16,%zmm5,%zmm5 + vmovdqu64 256(%rsp),%zmm19 + vpclmulqdq $0x11,%zmm19,%zmm11,%zmm1 + vpclmulqdq $0x00,%zmm19,%zmm11,%zmm9 + vpclmulqdq $0x01,%zmm19,%zmm11,%zmm10 + vpclmulqdq $0x10,%zmm19,%zmm11,%zmm12 + vmovdqu64 320(%rsp),%zmm19 + vpclmulqdq $0x11,%zmm19,%zmm3,%zmm13 + vpclmulqdq $0x00,%zmm19,%zmm3,%zmm15 + vpclmulqdq $0x01,%zmm19,%zmm3,%zmm17 + vpclmulqdq $0x10,%zmm19,%zmm3,%zmm18 + vpternlogq $0x96,%zmm17,%zmm10,%zmm7 + vpternlogq $0x96,%zmm13,%zmm1,%zmm6 + vpternlogq $0x96,%zmm15,%zmm9,%zmm8 + vpternlogq $0x96,%zmm18,%zmm12,%zmm7 + vmovdqu64 384(%rsp),%zmm19 + vpclmulqdq $0x11,%zmm19,%zmm4,%zmm1 + vpclmulqdq $0x00,%zmm19,%zmm4,%zmm9 + vpclmulqdq $0x01,%zmm19,%zmm4,%zmm10 + vpclmulqdq $0x10,%zmm19,%zmm4,%zmm12 + vmovdqu64 448(%rsp),%zmm19 + vpclmulqdq $0x11,%zmm19,%zmm5,%zmm13 + vpclmulqdq $0x00,%zmm19,%zmm5,%zmm15 + vpclmulqdq $0x01,%zmm19,%zmm5,%zmm17 + vpclmulqdq $0x10,%zmm19,%zmm5,%zmm18 + + vpternlogq $0x96,%zmm17,%zmm10,%zmm7 + vpternlogq $0x96,%zmm13,%zmm1,%zmm6 + vpternlogq $0x96,%zmm15,%zmm9,%zmm8 + vpternlogq $0x96,%zmm18,%zmm12,%zmm7 + vmovdqu64 512(%r10),%zmm11 + vmovdqu64 576(%r10),%zmm3 + vmovdqu64 640(%r10),%zmm4 + vmovdqu64 704(%r10),%zmm5 + vpshufb %zmm16,%zmm11,%zmm11 + vpshufb %zmm16,%zmm3,%zmm3 + vpshufb %zmm16,%zmm4,%zmm4 + vpshufb %zmm16,%zmm5,%zmm5 + vmovdqu64 512(%rsp),%zmm19 + vpclmulqdq $0x11,%zmm19,%zmm11,%zmm1 + vpclmulqdq $0x00,%zmm19,%zmm11,%zmm9 + vpclmulqdq $0x01,%zmm19,%zmm11,%zmm10 + vpclmulqdq $0x10,%zmm19,%zmm11,%zmm12 + vmovdqu64 576(%rsp),%zmm19 + vpclmulqdq $0x11,%zmm19,%zmm3,%zmm13 + vpclmulqdq $0x00,%zmm19,%zmm3,%zmm15 + vpclmulqdq $0x01,%zmm19,%zmm3,%zmm17 + vpclmulqdq $0x10,%zmm19,%zmm3,%zmm18 + vpternlogq $0x96,%zmm17,%zmm10,%zmm7 + vpternlogq $0x96,%zmm13,%zmm1,%zmm6 + vpternlogq $0x96,%zmm15,%zmm9,%zmm8 + vpternlogq $0x96,%zmm18,%zmm12,%zmm7 + vmovdqu64 640(%rsp),%zmm19 + vpclmulqdq $0x11,%zmm19,%zmm4,%zmm1 + vpclmulqdq $0x00,%zmm19,%zmm4,%zmm9 + vpclmulqdq $0x01,%zmm19,%zmm4,%zmm10 + vpclmulqdq $0x10,%zmm19,%zmm4,%zmm12 + vmovdqu64 704(%rsp),%zmm19 + vpclmulqdq $0x11,%zmm19,%zmm5,%zmm13 + vpclmulqdq $0x00,%zmm19,%zmm5,%zmm15 + vpclmulqdq $0x01,%zmm19,%zmm5,%zmm17 + vpclmulqdq $0x10,%zmm19,%zmm5,%zmm18 + + vpternlogq $0x96,%zmm17,%zmm10,%zmm7 + vpternlogq $0x96,%zmm13,%zmm1,%zmm6 + vpternlogq $0x96,%zmm15,%zmm9,%zmm8 + vpternlogq $0x96,%zmm18,%zmm12,%zmm7 + + vpsrldq $8,%zmm7,%zmm1 + vpslldq $8,%zmm7,%zmm9 + vpxorq %zmm1,%zmm6,%zmm6 + vpxorq %zmm9,%zmm8,%zmm8 + vextracti64x4 $1,%zmm6,%ymm1 + vpxorq %ymm1,%ymm6,%ymm6 + vextracti32x4 $1,%ymm6,%xmm1 + vpxorq %xmm1,%xmm6,%xmm6 + vextracti64x4 $1,%zmm8,%ymm9 + vpxorq %ymm9,%ymm8,%ymm8 + vextracti32x4 $1,%ymm8,%xmm9 + vpxorq %xmm9,%xmm8,%xmm8 + vmovdqa64 POLY2(%rip),%xmm10 + + + vpclmulqdq $0x01,%xmm8,%xmm10,%xmm1 + vpslldq $8,%xmm1,%xmm1 + vpxorq %xmm1,%xmm8,%xmm1 + + + vpclmulqdq $0x00,%xmm1,%xmm10,%xmm9 + vpsrldq $4,%xmm9,%xmm9 + vpclmulqdq $0x10,%xmm1,%xmm10,%xmm2 + vpslldq $4,%xmm2,%xmm2 + vpternlogq $0x96,%xmm6,%xmm9,%xmm2 + + subq $768,%r11 + je .L_CALC_AAD_done_1 + + addq $768,%r10 + jmp .L_get_AAD_loop48x16_1 + +.L_exit_AAD_loop48x16_1: + + cmpq $512,%r11 + jl .L_less_than_32x16_1 + + vmovdqu64 0(%r10),%zmm11 + vmovdqu64 64(%r10),%zmm3 + vmovdqu64 128(%r10),%zmm4 + vmovdqu64 192(%r10),%zmm5 + vpshufb %zmm16,%zmm11,%zmm11 + vpshufb %zmm16,%zmm3,%zmm3 + vpshufb %zmm16,%zmm4,%zmm4 + vpshufb %zmm16,%zmm5,%zmm5 + testq %rbx,%rbx + jnz .L_skip_hkeys_precomputation_3 + + vmovdqu64 288(%rsi),%zmm1 + vmovdqu64 %zmm1,704(%rsp) + + vmovdqu64 224(%rsi),%zmm9 + vmovdqu64 %zmm9,640(%rsp) + + + vshufi64x2 $0x00,%zmm9,%zmm9,%zmm9 + + vmovdqu64 160(%rsi),%zmm10 + vmovdqu64 %zmm10,576(%rsp) + + vmovdqu64 96(%rsi),%zmm12 + vmovdqu64 %zmm12,512(%rsp) + + vpclmulqdq $0x11,%zmm9,%zmm10,%zmm13 + vpclmulqdq $0x00,%zmm9,%zmm10,%zmm15 + vpclmulqdq $0x01,%zmm9,%zmm10,%zmm17 + vpclmulqdq $0x10,%zmm9,%zmm10,%zmm10 + vpxorq %zmm17,%zmm10,%zmm10 + + vpsrldq $8,%zmm10,%zmm17 + vpslldq $8,%zmm10,%zmm10 + vpxorq %zmm17,%zmm13,%zmm13 + vpxorq %zmm15,%zmm10,%zmm10 + + + + vmovdqu64 POLY2(%rip),%zmm17 + + vpclmulqdq $0x01,%zmm10,%zmm17,%zmm15 + vpslldq $8,%zmm15,%zmm15 + vpxorq %zmm15,%zmm10,%zmm10 + + + + vpclmulqdq $0x00,%zmm10,%zmm17,%zmm15 + vpsrldq $4,%zmm15,%zmm15 + vpclmulqdq $0x10,%zmm10,%zmm17,%zmm10 + vpslldq $4,%zmm10,%zmm10 + + vpternlogq $0x96,%zmm15,%zmm13,%zmm10 + + vmovdqu64 %zmm10,448(%rsp) + + vpclmulqdq $0x11,%zmm9,%zmm12,%zmm13 + vpclmulqdq $0x00,%zmm9,%zmm12,%zmm15 + vpclmulqdq $0x01,%zmm9,%zmm12,%zmm17 + vpclmulqdq $0x10,%zmm9,%zmm12,%zmm12 + vpxorq %zmm17,%zmm12,%zmm12 + + vpsrldq $8,%zmm12,%zmm17 + vpslldq $8,%zmm12,%zmm12 + vpxorq %zmm17,%zmm13,%zmm13 + vpxorq %zmm15,%zmm12,%zmm12 + + + + vmovdqu64 POLY2(%rip),%zmm17 + + vpclmulqdq $0x01,%zmm12,%zmm17,%zmm15 + vpslldq $8,%zmm15,%zmm15 + vpxorq %zmm15,%zmm12,%zmm12 + + + + vpclmulqdq $0x00,%zmm12,%zmm17,%zmm15 + vpsrldq $4,%zmm15,%zmm15 + vpclmulqdq $0x10,%zmm12,%zmm17,%zmm12 + vpslldq $4,%zmm12,%zmm12 + + vpternlogq $0x96,%zmm15,%zmm13,%zmm12 + + vmovdqu64 %zmm12,384(%rsp) + + vpclmulqdq $0x11,%zmm9,%zmm10,%zmm13 + vpclmulqdq $0x00,%zmm9,%zmm10,%zmm15 + vpclmulqdq $0x01,%zmm9,%zmm10,%zmm17 + vpclmulqdq $0x10,%zmm9,%zmm10,%zmm10 + vpxorq %zmm17,%zmm10,%zmm10 + + vpsrldq $8,%zmm10,%zmm17 + vpslldq $8,%zmm10,%zmm10 + vpxorq %zmm17,%zmm13,%zmm13 + vpxorq %zmm15,%zmm10,%zmm10 + + + + vmovdqu64 POLY2(%rip),%zmm17 + + vpclmulqdq $0x01,%zmm10,%zmm17,%zmm15 + vpslldq $8,%zmm15,%zmm15 + vpxorq %zmm15,%zmm10,%zmm10 + + + + vpclmulqdq $0x00,%zmm10,%zmm17,%zmm15 + vpsrldq $4,%zmm15,%zmm15 + vpclmulqdq $0x10,%zmm10,%zmm17,%zmm10 + vpslldq $4,%zmm10,%zmm10 + + vpternlogq $0x96,%zmm15,%zmm13,%zmm10 + + vmovdqu64 %zmm10,320(%rsp) + + vpclmulqdq $0x11,%zmm9,%zmm12,%zmm13 + vpclmulqdq $0x00,%zmm9,%zmm12,%zmm15 + vpclmulqdq $0x01,%zmm9,%zmm12,%zmm17 + vpclmulqdq $0x10,%zmm9,%zmm12,%zmm12 + vpxorq %zmm17,%zmm12,%zmm12 + + vpsrldq $8,%zmm12,%zmm17 + vpslldq $8,%zmm12,%zmm12 + vpxorq %zmm17,%zmm13,%zmm13 + vpxorq %zmm15,%zmm12,%zmm12 + + + + vmovdqu64 POLY2(%rip),%zmm17 + + vpclmulqdq $0x01,%zmm12,%zmm17,%zmm15 + vpslldq $8,%zmm15,%zmm15 + vpxorq %zmm15,%zmm12,%zmm12 + + + + vpclmulqdq $0x00,%zmm12,%zmm17,%zmm15 + vpsrldq $4,%zmm15,%zmm15 + vpclmulqdq $0x10,%zmm12,%zmm17,%zmm12 + vpslldq $4,%zmm12,%zmm12 + + vpternlogq $0x96,%zmm15,%zmm13,%zmm12 + + vmovdqu64 %zmm12,256(%rsp) +.L_skip_hkeys_precomputation_3: + movq $1,%rbx + vpxorq %zmm2,%zmm11,%zmm11 + vmovdqu64 256(%rsp),%zmm19 + vpclmulqdq $0x11,%zmm19,%zmm11,%zmm1 + vpclmulqdq $0x00,%zmm19,%zmm11,%zmm9 + vpclmulqdq $0x01,%zmm19,%zmm11,%zmm10 + vpclmulqdq $0x10,%zmm19,%zmm11,%zmm12 + vmovdqu64 320(%rsp),%zmm19 + vpclmulqdq $0x11,%zmm19,%zmm3,%zmm13 + vpclmulqdq $0x00,%zmm19,%zmm3,%zmm15 + vpclmulqdq $0x01,%zmm19,%zmm3,%zmm17 + vpclmulqdq $0x10,%zmm19,%zmm3,%zmm18 + vpxorq %zmm17,%zmm10,%zmm7 + vpxorq %zmm13,%zmm1,%zmm6 + vpxorq %zmm15,%zmm9,%zmm8 + vpternlogq $0x96,%zmm18,%zmm12,%zmm7 + vmovdqu64 384(%rsp),%zmm19 + vpclmulqdq $0x11,%zmm19,%zmm4,%zmm1 + vpclmulqdq $0x00,%zmm19,%zmm4,%zmm9 + vpclmulqdq $0x01,%zmm19,%zmm4,%zmm10 + vpclmulqdq $0x10,%zmm19,%zmm4,%zmm12 + vmovdqu64 448(%rsp),%zmm19 + vpclmulqdq $0x11,%zmm19,%zmm5,%zmm13 + vpclmulqdq $0x00,%zmm19,%zmm5,%zmm15 + vpclmulqdq $0x01,%zmm19,%zmm5,%zmm17 + vpclmulqdq $0x10,%zmm19,%zmm5,%zmm18 + + vpternlogq $0x96,%zmm17,%zmm10,%zmm7 + vpternlogq $0x96,%zmm13,%zmm1,%zmm6 + vpternlogq $0x96,%zmm15,%zmm9,%zmm8 + vpternlogq $0x96,%zmm18,%zmm12,%zmm7 + vmovdqu64 256(%r10),%zmm11 + vmovdqu64 320(%r10),%zmm3 + vmovdqu64 384(%r10),%zmm4 + vmovdqu64 448(%r10),%zmm5 + vpshufb %zmm16,%zmm11,%zmm11 + vpshufb %zmm16,%zmm3,%zmm3 + vpshufb %zmm16,%zmm4,%zmm4 + vpshufb %zmm16,%zmm5,%zmm5 + vmovdqu64 512(%rsp),%zmm19 + vpclmulqdq $0x11,%zmm19,%zmm11,%zmm1 + vpclmulqdq $0x00,%zmm19,%zmm11,%zmm9 + vpclmulqdq $0x01,%zmm19,%zmm11,%zmm10 + vpclmulqdq $0x10,%zmm19,%zmm11,%zmm12 + vmovdqu64 576(%rsp),%zmm19 + vpclmulqdq $0x11,%zmm19,%zmm3,%zmm13 + vpclmulqdq $0x00,%zmm19,%zmm3,%zmm15 + vpclmulqdq $0x01,%zmm19,%zmm3,%zmm17 + vpclmulqdq $0x10,%zmm19,%zmm3,%zmm18 + vpternlogq $0x96,%zmm17,%zmm10,%zmm7 + vpternlogq $0x96,%zmm13,%zmm1,%zmm6 + vpternlogq $0x96,%zmm15,%zmm9,%zmm8 + vpternlogq $0x96,%zmm18,%zmm12,%zmm7 + vmovdqu64 640(%rsp),%zmm19 + vpclmulqdq $0x11,%zmm19,%zmm4,%zmm1 + vpclmulqdq $0x00,%zmm19,%zmm4,%zmm9 + vpclmulqdq $0x01,%zmm19,%zmm4,%zmm10 + vpclmulqdq $0x10,%zmm19,%zmm4,%zmm12 + vmovdqu64 704(%rsp),%zmm19 + vpclmulqdq $0x11,%zmm19,%zmm5,%zmm13 + vpclmulqdq $0x00,%zmm19,%zmm5,%zmm15 + vpclmulqdq $0x01,%zmm19,%zmm5,%zmm17 + vpclmulqdq $0x10,%zmm19,%zmm5,%zmm18 + + vpternlogq $0x96,%zmm17,%zmm10,%zmm7 + vpternlogq $0x96,%zmm13,%zmm1,%zmm6 + vpternlogq $0x96,%zmm15,%zmm9,%zmm8 + vpternlogq $0x96,%zmm18,%zmm12,%zmm7 + + vpsrldq $8,%zmm7,%zmm1 + vpslldq $8,%zmm7,%zmm9 + vpxorq %zmm1,%zmm6,%zmm6 + vpxorq %zmm9,%zmm8,%zmm8 + vextracti64x4 $1,%zmm6,%ymm1 + vpxorq %ymm1,%ymm6,%ymm6 + vextracti32x4 $1,%ymm6,%xmm1 + vpxorq %xmm1,%xmm6,%xmm6 + vextracti64x4 $1,%zmm8,%ymm9 + vpxorq %ymm9,%ymm8,%ymm8 + vextracti32x4 $1,%ymm8,%xmm9 + vpxorq %xmm9,%xmm8,%xmm8 + vmovdqa64 POLY2(%rip),%xmm10 + + + vpclmulqdq $0x01,%xmm8,%xmm10,%xmm1 + vpslldq $8,%xmm1,%xmm1 + vpxorq %xmm1,%xmm8,%xmm1 + + + vpclmulqdq $0x00,%xmm1,%xmm10,%xmm9 + vpsrldq $4,%xmm9,%xmm9 + vpclmulqdq $0x10,%xmm1,%xmm10,%xmm2 + vpslldq $4,%xmm2,%xmm2 + vpternlogq $0x96,%xmm6,%xmm9,%xmm2 + + subq $512,%r11 + je .L_CALC_AAD_done_1 + + addq $512,%r10 + jmp .L_less_than_16x16_1 + +.L_less_than_32x16_1: + cmpq $256,%r11 + jl .L_less_than_16x16_1 + + vmovdqu64 0(%r10),%zmm11 + vmovdqu64 64(%r10),%zmm3 + vmovdqu64 128(%r10),%zmm4 + vmovdqu64 192(%r10),%zmm5 + vpshufb %zmm16,%zmm11,%zmm11 + vpshufb %zmm16,%zmm3,%zmm3 + vpshufb %zmm16,%zmm4,%zmm4 + vpshufb %zmm16,%zmm5,%zmm5 + vpxorq %zmm2,%zmm11,%zmm11 + vmovdqu64 96(%rsi),%zmm19 + vpclmulqdq $0x11,%zmm19,%zmm11,%zmm1 + vpclmulqdq $0x00,%zmm19,%zmm11,%zmm9 + vpclmulqdq $0x01,%zmm19,%zmm11,%zmm10 + vpclmulqdq $0x10,%zmm19,%zmm11,%zmm12 + vmovdqu64 160(%rsi),%zmm19 + vpclmulqdq $0x11,%zmm19,%zmm3,%zmm13 + vpclmulqdq $0x00,%zmm19,%zmm3,%zmm15 + vpclmulqdq $0x01,%zmm19,%zmm3,%zmm17 + vpclmulqdq $0x10,%zmm19,%zmm3,%zmm18 + vpxorq %zmm17,%zmm10,%zmm7 + vpxorq %zmm13,%zmm1,%zmm6 + vpxorq %zmm15,%zmm9,%zmm8 + vpternlogq $0x96,%zmm18,%zmm12,%zmm7 + vmovdqu64 224(%rsi),%zmm19 + vpclmulqdq $0x11,%zmm19,%zmm4,%zmm1 + vpclmulqdq $0x00,%zmm19,%zmm4,%zmm9 + vpclmulqdq $0x01,%zmm19,%zmm4,%zmm10 + vpclmulqdq $0x10,%zmm19,%zmm4,%zmm12 + vmovdqu64 288(%rsi),%zmm19 + vpclmulqdq $0x11,%zmm19,%zmm5,%zmm13 + vpclmulqdq $0x00,%zmm19,%zmm5,%zmm15 + vpclmulqdq $0x01,%zmm19,%zmm5,%zmm17 + vpclmulqdq $0x10,%zmm19,%zmm5,%zmm18 + + vpternlogq $0x96,%zmm17,%zmm10,%zmm7 + vpternlogq $0x96,%zmm13,%zmm1,%zmm6 + vpternlogq $0x96,%zmm15,%zmm9,%zmm8 + vpternlogq $0x96,%zmm18,%zmm12,%zmm7 + + vpsrldq $8,%zmm7,%zmm1 + vpslldq $8,%zmm7,%zmm9 + vpxorq %zmm1,%zmm6,%zmm6 + vpxorq %zmm9,%zmm8,%zmm8 + vextracti64x4 $1,%zmm6,%ymm1 + vpxorq %ymm1,%ymm6,%ymm6 + vextracti32x4 $1,%ymm6,%xmm1 + vpxorq %xmm1,%xmm6,%xmm6 + vextracti64x4 $1,%zmm8,%ymm9 + vpxorq %ymm9,%ymm8,%ymm8 + vextracti32x4 $1,%ymm8,%xmm9 + vpxorq %xmm9,%xmm8,%xmm8 + vmovdqa64 POLY2(%rip),%xmm10 + + + vpclmulqdq $0x01,%xmm8,%xmm10,%xmm1 + vpslldq $8,%xmm1,%xmm1 + vpxorq %xmm1,%xmm8,%xmm1 + + + vpclmulqdq $0x00,%xmm1,%xmm10,%xmm9 + vpsrldq $4,%xmm9,%xmm9 + vpclmulqdq $0x10,%xmm1,%xmm10,%xmm2 + vpslldq $4,%xmm2,%xmm2 + vpternlogq $0x96,%xmm6,%xmm9,%xmm2 + + subq $256,%r11 + je .L_CALC_AAD_done_1 + + addq $256,%r10 + +.L_less_than_16x16_1: + + leaq byte64_len_to_mask_table(%rip),%r12 + leaq (%r12,%r11,8),%r12 + + + addl $15,%r11d + shrl $4,%r11d + cmpl $2,%r11d + jb .L_AAD_blocks_1_1 + je .L_AAD_blocks_2_1 + cmpl $4,%r11d + jb .L_AAD_blocks_3_1 + je .L_AAD_blocks_4_1 + cmpl $6,%r11d + jb .L_AAD_blocks_5_1 + je .L_AAD_blocks_6_1 + cmpl $8,%r11d + jb .L_AAD_blocks_7_1 + je .L_AAD_blocks_8_1 + cmpl $10,%r11d + jb .L_AAD_blocks_9_1 + je .L_AAD_blocks_10_1 + cmpl $12,%r11d + jb .L_AAD_blocks_11_1 + je .L_AAD_blocks_12_1 + cmpl $14,%r11d + jb .L_AAD_blocks_13_1 + je .L_AAD_blocks_14_1 + cmpl $15,%r11d + je .L_AAD_blocks_15_1 +.L_AAD_blocks_16_1: + subq $1536,%r12 + kmovq (%r12),%k1 + vmovdqu8 0(%r10),%zmm11 + vmovdqu8 64(%r10),%zmm3 + vmovdqu8 128(%r10),%zmm4 + vmovdqu8 192(%r10),%zmm5{%k1}{z} + vpshufb %zmm16,%zmm11,%zmm11 + vpshufb %zmm16,%zmm3,%zmm3 + vpshufb %zmm16,%zmm4,%zmm4 + vpshufb %zmm16,%zmm5,%zmm5 + vpxorq %zmm2,%zmm11,%zmm11 + vmovdqu64 96(%rsi),%zmm15 + vpclmulqdq $0x11,%zmm15,%zmm11,%zmm1 + vpclmulqdq $0x00,%zmm15,%zmm11,%zmm6 + vpclmulqdq $0x01,%zmm15,%zmm11,%zmm7 + vpclmulqdq $0x10,%zmm15,%zmm11,%zmm8 + vmovdqu64 160(%rsi),%zmm15 + vpclmulqdq $0x11,%zmm15,%zmm3,%zmm9 + vpclmulqdq $0x00,%zmm15,%zmm3,%zmm10 + vpclmulqdq $0x01,%zmm15,%zmm3,%zmm12 + vpclmulqdq $0x10,%zmm15,%zmm3,%zmm13 + vmovdqu64 224(%rsi),%zmm15 + vpclmulqdq $0x11,%zmm15,%zmm4,%zmm11 + vpclmulqdq $0x00,%zmm15,%zmm4,%zmm3 + vpternlogq $0x96,%zmm9,%zmm11,%zmm1 + vpternlogq $0x96,%zmm10,%zmm3,%zmm6 + vpclmulqdq $0x01,%zmm15,%zmm4,%zmm11 + vpclmulqdq $0x10,%zmm15,%zmm4,%zmm3 + vpternlogq $0x96,%zmm12,%zmm11,%zmm7 + vpternlogq $0x96,%zmm13,%zmm3,%zmm8 + vmovdqu64 288(%rsi),%zmm15 + vpclmulqdq $0x11,%zmm15,%zmm5,%zmm9 + vpclmulqdq $0x00,%zmm15,%zmm5,%zmm10 + vpclmulqdq $0x01,%zmm15,%zmm5,%zmm12 + vpclmulqdq $0x10,%zmm15,%zmm5,%zmm13 + vpxorq %zmm9,%zmm1,%zmm9 + vpxorq %zmm10,%zmm6,%zmm10 + vpxorq %zmm12,%zmm7,%zmm12 + vpxorq %zmm13,%zmm8,%zmm13 + + vpxorq %zmm13,%zmm12,%zmm12 + vpsrldq $8,%zmm12,%zmm7 + vpslldq $8,%zmm12,%zmm8 + vpxorq %zmm7,%zmm9,%zmm1 + vpxorq %zmm8,%zmm10,%zmm6 + vextracti64x4 $1,%zmm1,%ymm12 + vpxorq %ymm12,%ymm1,%ymm1 + vextracti32x4 $1,%ymm1,%xmm12 + vpxorq %xmm12,%xmm1,%xmm1 + vextracti64x4 $1,%zmm6,%ymm13 + vpxorq %ymm13,%ymm6,%ymm6 + vextracti32x4 $1,%ymm6,%xmm13 + vpxorq %xmm13,%xmm6,%xmm6 + vmovdqa64 POLY2(%rip),%xmm15 + + + vpclmulqdq $0x01,%xmm6,%xmm15,%xmm7 + vpslldq $8,%xmm7,%xmm7 + vpxorq %xmm7,%xmm6,%xmm7 + + + vpclmulqdq $0x00,%xmm7,%xmm15,%xmm8 + vpsrldq $4,%xmm8,%xmm8 + vpclmulqdq $0x10,%xmm7,%xmm15,%xmm2 + vpslldq $4,%xmm2,%xmm2 + vpternlogq $0x96,%xmm1,%xmm8,%xmm2 + + jmp .L_CALC_AAD_done_1 +.L_AAD_blocks_15_1: + subq $1536,%r12 + kmovq (%r12),%k1 + vmovdqu8 0(%r10),%zmm11 + vmovdqu8 64(%r10),%zmm3 + vmovdqu8 128(%r10),%zmm4 + vmovdqu8 192(%r10),%zmm5{%k1}{z} + vpshufb %zmm16,%zmm11,%zmm11 + vpshufb %zmm16,%zmm3,%zmm3 + vpshufb %zmm16,%zmm4,%zmm4 + vpshufb %zmm16,%zmm5,%zmm5 + vpxorq %zmm2,%zmm11,%zmm11 + vmovdqu64 112(%rsi),%zmm15 + vpclmulqdq $0x11,%zmm15,%zmm11,%zmm1 + vpclmulqdq $0x00,%zmm15,%zmm11,%zmm6 + vpclmulqdq $0x01,%zmm15,%zmm11,%zmm7 + vpclmulqdq $0x10,%zmm15,%zmm11,%zmm8 + vmovdqu64 176(%rsi),%zmm15 + vpclmulqdq $0x11,%zmm15,%zmm3,%zmm9 + vpclmulqdq $0x00,%zmm15,%zmm3,%zmm10 + vpclmulqdq $0x01,%zmm15,%zmm3,%zmm12 + vpclmulqdq $0x10,%zmm15,%zmm3,%zmm13 + vmovdqu64 240(%rsi),%zmm15 + vpclmulqdq $0x11,%zmm15,%zmm4,%zmm11 + vpclmulqdq $0x00,%zmm15,%zmm4,%zmm3 + vpternlogq $0x96,%zmm1,%zmm11,%zmm9 + vpternlogq $0x96,%zmm6,%zmm3,%zmm10 + vpclmulqdq $0x01,%zmm15,%zmm4,%zmm11 + vpclmulqdq $0x10,%zmm15,%zmm4,%zmm3 + vpternlogq $0x96,%zmm7,%zmm11,%zmm12 + vpternlogq $0x96,%zmm8,%zmm3,%zmm13 + vmovdqu64 304(%rsi),%ymm15 + vinserti64x2 $2,336(%rsi),%zmm15,%zmm15 + vpclmulqdq $0x01,%zmm15,%zmm5,%zmm7 + vpclmulqdq $0x10,%zmm15,%zmm5,%zmm8 + vpclmulqdq $0x11,%zmm15,%zmm5,%zmm1 + vpclmulqdq $0x00,%zmm15,%zmm5,%zmm6 + + vpxorq %zmm12,%zmm7,%zmm7 + vpxorq %zmm13,%zmm8,%zmm8 + vpxorq %zmm9,%zmm1,%zmm1 + vpxorq %zmm10,%zmm6,%zmm6 + + vpxorq %zmm8,%zmm7,%zmm7 + vpsrldq $8,%zmm7,%zmm12 + vpslldq $8,%zmm7,%zmm13 + vpxorq %zmm12,%zmm1,%zmm1 + vpxorq %zmm13,%zmm6,%zmm6 + vextracti64x4 $1,%zmm1,%ymm12 + vpxorq %ymm12,%ymm1,%ymm1 + vextracti32x4 $1,%ymm1,%xmm12 + vpxorq %xmm12,%xmm1,%xmm1 + vextracti64x4 $1,%zmm6,%ymm13 + vpxorq %ymm13,%ymm6,%ymm6 + vextracti32x4 $1,%ymm6,%xmm13 + vpxorq %xmm13,%xmm6,%xmm6 + vmovdqa64 POLY2(%rip),%xmm15 + + + vpclmulqdq $0x01,%xmm6,%xmm15,%xmm7 + vpslldq $8,%xmm7,%xmm7 + vpxorq %xmm7,%xmm6,%xmm7 + + + vpclmulqdq $0x00,%xmm7,%xmm15,%xmm8 + vpsrldq $4,%xmm8,%xmm8 + vpclmulqdq $0x10,%xmm7,%xmm15,%xmm2 + vpslldq $4,%xmm2,%xmm2 + vpternlogq $0x96,%xmm1,%xmm8,%xmm2 + + jmp .L_CALC_AAD_done_1 +.L_AAD_blocks_14_1: + subq $1536,%r12 + kmovq (%r12),%k1 + vmovdqu8 0(%r10),%zmm11 + vmovdqu8 64(%r10),%zmm3 + vmovdqu8 128(%r10),%zmm4 + vmovdqu8 192(%r10),%ymm5{%k1}{z} + vpshufb %zmm16,%zmm11,%zmm11 + vpshufb %zmm16,%zmm3,%zmm3 + vpshufb %zmm16,%zmm4,%zmm4 + vpshufb %ymm16,%ymm5,%ymm5 + vpxorq %zmm2,%zmm11,%zmm11 + vmovdqu64 128(%rsi),%zmm15 + vpclmulqdq $0x11,%zmm15,%zmm11,%zmm1 + vpclmulqdq $0x00,%zmm15,%zmm11,%zmm6 + vpclmulqdq $0x01,%zmm15,%zmm11,%zmm7 + vpclmulqdq $0x10,%zmm15,%zmm11,%zmm8 + vmovdqu64 192(%rsi),%zmm15 + vpclmulqdq $0x11,%zmm15,%zmm3,%zmm9 + vpclmulqdq $0x00,%zmm15,%zmm3,%zmm10 + vpclmulqdq $0x01,%zmm15,%zmm3,%zmm12 + vpclmulqdq $0x10,%zmm15,%zmm3,%zmm13 + vmovdqu64 256(%rsi),%zmm15 + vpclmulqdq $0x11,%zmm15,%zmm4,%zmm11 + vpclmulqdq $0x00,%zmm15,%zmm4,%zmm3 + vpternlogq $0x96,%zmm1,%zmm11,%zmm9 + vpternlogq $0x96,%zmm6,%zmm3,%zmm10 + vpclmulqdq $0x01,%zmm15,%zmm4,%zmm11 + vpclmulqdq $0x10,%zmm15,%zmm4,%zmm3 + vpternlogq $0x96,%zmm7,%zmm11,%zmm12 + vpternlogq $0x96,%zmm8,%zmm3,%zmm13 + vmovdqu64 320(%rsi),%ymm15 + vpclmulqdq $0x01,%ymm15,%ymm5,%ymm7 + vpclmulqdq $0x10,%ymm15,%ymm5,%ymm8 + vpclmulqdq $0x11,%ymm15,%ymm5,%ymm1 + vpclmulqdq $0x00,%ymm15,%ymm5,%ymm6 + + vpxorq %zmm12,%zmm7,%zmm7 + vpxorq %zmm13,%zmm8,%zmm8 + vpxorq %zmm9,%zmm1,%zmm1 + vpxorq %zmm10,%zmm6,%zmm6 + + vpxorq %zmm8,%zmm7,%zmm7 + vpsrldq $8,%zmm7,%zmm12 + vpslldq $8,%zmm7,%zmm13 + vpxorq %zmm12,%zmm1,%zmm1 + vpxorq %zmm13,%zmm6,%zmm6 + vextracti64x4 $1,%zmm1,%ymm12 + vpxorq %ymm12,%ymm1,%ymm1 + vextracti32x4 $1,%ymm1,%xmm12 + vpxorq %xmm12,%xmm1,%xmm1 + vextracti64x4 $1,%zmm6,%ymm13 + vpxorq %ymm13,%ymm6,%ymm6 + vextracti32x4 $1,%ymm6,%xmm13 + vpxorq %xmm13,%xmm6,%xmm6 + vmovdqa64 POLY2(%rip),%xmm15 + + + vpclmulqdq $0x01,%xmm6,%xmm15,%xmm7 + vpslldq $8,%xmm7,%xmm7 + vpxorq %xmm7,%xmm6,%xmm7 + + + vpclmulqdq $0x00,%xmm7,%xmm15,%xmm8 + vpsrldq $4,%xmm8,%xmm8 + vpclmulqdq $0x10,%xmm7,%xmm15,%xmm2 + vpslldq $4,%xmm2,%xmm2 + vpternlogq $0x96,%xmm1,%xmm8,%xmm2 + + jmp .L_CALC_AAD_done_1 +.L_AAD_blocks_13_1: + subq $1536,%r12 + kmovq (%r12),%k1 + vmovdqu8 0(%r10),%zmm11 + vmovdqu8 64(%r10),%zmm3 + vmovdqu8 128(%r10),%zmm4 + vmovdqu8 192(%r10),%xmm5{%k1}{z} + vpshufb %zmm16,%zmm11,%zmm11 + vpshufb %zmm16,%zmm3,%zmm3 + vpshufb %zmm16,%zmm4,%zmm4 + vpshufb %xmm16,%xmm5,%xmm5 + vpxorq %zmm2,%zmm11,%zmm11 + vmovdqu64 144(%rsi),%zmm15 + vpclmulqdq $0x11,%zmm15,%zmm11,%zmm1 + vpclmulqdq $0x00,%zmm15,%zmm11,%zmm6 + vpclmulqdq $0x01,%zmm15,%zmm11,%zmm7 + vpclmulqdq $0x10,%zmm15,%zmm11,%zmm8 + vmovdqu64 208(%rsi),%zmm15 + vpclmulqdq $0x11,%zmm15,%zmm3,%zmm9 + vpclmulqdq $0x00,%zmm15,%zmm3,%zmm10 + vpclmulqdq $0x01,%zmm15,%zmm3,%zmm12 + vpclmulqdq $0x10,%zmm15,%zmm3,%zmm13 + vmovdqu64 272(%rsi),%zmm15 + vpclmulqdq $0x11,%zmm15,%zmm4,%zmm11 + vpclmulqdq $0x00,%zmm15,%zmm4,%zmm3 + vpternlogq $0x96,%zmm1,%zmm11,%zmm9 + vpternlogq $0x96,%zmm6,%zmm3,%zmm10 + vpclmulqdq $0x01,%zmm15,%zmm4,%zmm11 + vpclmulqdq $0x10,%zmm15,%zmm4,%zmm3 + vpternlogq $0x96,%zmm7,%zmm11,%zmm12 + vpternlogq $0x96,%zmm8,%zmm3,%zmm13 + vmovdqu64 336(%rsi),%xmm15 + vpclmulqdq $0x01,%xmm15,%xmm5,%xmm7 + vpclmulqdq $0x10,%xmm15,%xmm5,%xmm8 + vpclmulqdq $0x11,%xmm15,%xmm5,%xmm1 + vpclmulqdq $0x00,%xmm15,%xmm5,%xmm6 + + vpxorq %zmm12,%zmm7,%zmm7 + vpxorq %zmm13,%zmm8,%zmm8 + vpxorq %zmm9,%zmm1,%zmm1 + vpxorq %zmm10,%zmm6,%zmm6 + + vpxorq %zmm8,%zmm7,%zmm7 + vpsrldq $8,%zmm7,%zmm12 + vpslldq $8,%zmm7,%zmm13 + vpxorq %zmm12,%zmm1,%zmm1 + vpxorq %zmm13,%zmm6,%zmm6 + vextracti64x4 $1,%zmm1,%ymm12 + vpxorq %ymm12,%ymm1,%ymm1 + vextracti32x4 $1,%ymm1,%xmm12 + vpxorq %xmm12,%xmm1,%xmm1 + vextracti64x4 $1,%zmm6,%ymm13 + vpxorq %ymm13,%ymm6,%ymm6 + vextracti32x4 $1,%ymm6,%xmm13 + vpxorq %xmm13,%xmm6,%xmm6 + vmovdqa64 POLY2(%rip),%xmm15 + + + vpclmulqdq $0x01,%xmm6,%xmm15,%xmm7 + vpslldq $8,%xmm7,%xmm7 + vpxorq %xmm7,%xmm6,%xmm7 + + + vpclmulqdq $0x00,%xmm7,%xmm15,%xmm8 + vpsrldq $4,%xmm8,%xmm8 + vpclmulqdq $0x10,%xmm7,%xmm15,%xmm2 + vpslldq $4,%xmm2,%xmm2 + vpternlogq $0x96,%xmm1,%xmm8,%xmm2 + + jmp .L_CALC_AAD_done_1 +.L_AAD_blocks_12_1: + subq $1024,%r12 + kmovq (%r12),%k1 + vmovdqu8 0(%r10),%zmm11 + vmovdqu8 64(%r10),%zmm3 + vmovdqu8 128(%r10),%zmm4{%k1}{z} + vpshufb %zmm16,%zmm11,%zmm11 + vpshufb %zmm16,%zmm3,%zmm3 + vpshufb %zmm16,%zmm4,%zmm4 + vpxorq %zmm2,%zmm11,%zmm11 + vmovdqu64 160(%rsi),%zmm15 + vpclmulqdq $0x11,%zmm15,%zmm11,%zmm1 + vpclmulqdq $0x00,%zmm15,%zmm11,%zmm6 + vpclmulqdq $0x01,%zmm15,%zmm11,%zmm7 + vpclmulqdq $0x10,%zmm15,%zmm11,%zmm8 + vmovdqu64 224(%rsi),%zmm15 + vpclmulqdq $0x11,%zmm15,%zmm3,%zmm9 + vpclmulqdq $0x00,%zmm15,%zmm3,%zmm10 + vpclmulqdq $0x01,%zmm15,%zmm3,%zmm12 + vpclmulqdq $0x10,%zmm15,%zmm3,%zmm13 + vmovdqu64 288(%rsi),%zmm15 + vpclmulqdq $0x11,%zmm15,%zmm4,%zmm11 + vpclmulqdq $0x00,%zmm15,%zmm4,%zmm3 + vpternlogq $0x96,%zmm1,%zmm11,%zmm9 + vpternlogq $0x96,%zmm6,%zmm3,%zmm10 + vpclmulqdq $0x01,%zmm15,%zmm4,%zmm11 + vpclmulqdq $0x10,%zmm15,%zmm4,%zmm3 + vpternlogq $0x96,%zmm7,%zmm11,%zmm12 + vpternlogq $0x96,%zmm8,%zmm3,%zmm13 + + vpxorq %zmm13,%zmm12,%zmm12 + vpsrldq $8,%zmm12,%zmm7 + vpslldq $8,%zmm12,%zmm8 + vpxorq %zmm7,%zmm9,%zmm1 + vpxorq %zmm8,%zmm10,%zmm6 + vextracti64x4 $1,%zmm1,%ymm12 + vpxorq %ymm12,%ymm1,%ymm1 + vextracti32x4 $1,%ymm1,%xmm12 + vpxorq %xmm12,%xmm1,%xmm1 + vextracti64x4 $1,%zmm6,%ymm13 + vpxorq %ymm13,%ymm6,%ymm6 + vextracti32x4 $1,%ymm6,%xmm13 + vpxorq %xmm13,%xmm6,%xmm6 + vmovdqa64 POLY2(%rip),%xmm15 + + + vpclmulqdq $0x01,%xmm6,%xmm15,%xmm7 + vpslldq $8,%xmm7,%xmm7 + vpxorq %xmm7,%xmm6,%xmm7 + + + vpclmulqdq $0x00,%xmm7,%xmm15,%xmm8 + vpsrldq $4,%xmm8,%xmm8 + vpclmulqdq $0x10,%xmm7,%xmm15,%xmm2 + vpslldq $4,%xmm2,%xmm2 + vpternlogq $0x96,%xmm1,%xmm8,%xmm2 + + jmp .L_CALC_AAD_done_1 +.L_AAD_blocks_11_1: + subq $1024,%r12 + kmovq (%r12),%k1 + vmovdqu8 0(%r10),%zmm11 + vmovdqu8 64(%r10),%zmm3 + vmovdqu8 128(%r10),%zmm4{%k1}{z} + vpshufb %zmm16,%zmm11,%zmm11 + vpshufb %zmm16,%zmm3,%zmm3 + vpshufb %zmm16,%zmm4,%zmm4 + vpxorq %zmm2,%zmm11,%zmm11 + vmovdqu64 176(%rsi),%zmm15 + vpclmulqdq $0x11,%zmm15,%zmm11,%zmm1 + vpclmulqdq $0x00,%zmm15,%zmm11,%zmm6 + vpclmulqdq $0x01,%zmm15,%zmm11,%zmm7 + vpclmulqdq $0x10,%zmm15,%zmm11,%zmm8 + vmovdqu64 240(%rsi),%zmm15 + vpclmulqdq $0x11,%zmm15,%zmm3,%zmm9 + vpclmulqdq $0x00,%zmm15,%zmm3,%zmm10 + vpclmulqdq $0x01,%zmm15,%zmm3,%zmm12 + vpclmulqdq $0x10,%zmm15,%zmm3,%zmm13 + vpxorq %zmm9,%zmm1,%zmm9 + vpxorq %zmm10,%zmm6,%zmm10 + vpxorq %zmm12,%zmm7,%zmm12 + vpxorq %zmm13,%zmm8,%zmm13 + vmovdqu64 304(%rsi),%ymm15 + vinserti64x2 $2,336(%rsi),%zmm15,%zmm15 + vpclmulqdq $0x01,%zmm15,%zmm4,%zmm7 + vpclmulqdq $0x10,%zmm15,%zmm4,%zmm8 + vpclmulqdq $0x11,%zmm15,%zmm4,%zmm1 + vpclmulqdq $0x00,%zmm15,%zmm4,%zmm6 + + vpxorq %zmm12,%zmm7,%zmm7 + vpxorq %zmm13,%zmm8,%zmm8 + vpxorq %zmm9,%zmm1,%zmm1 + vpxorq %zmm10,%zmm6,%zmm6 + + vpxorq %zmm8,%zmm7,%zmm7 + vpsrldq $8,%zmm7,%zmm12 + vpslldq $8,%zmm7,%zmm13 + vpxorq %zmm12,%zmm1,%zmm1 + vpxorq %zmm13,%zmm6,%zmm6 + vextracti64x4 $1,%zmm1,%ymm12 + vpxorq %ymm12,%ymm1,%ymm1 + vextracti32x4 $1,%ymm1,%xmm12 + vpxorq %xmm12,%xmm1,%xmm1 + vextracti64x4 $1,%zmm6,%ymm13 + vpxorq %ymm13,%ymm6,%ymm6 + vextracti32x4 $1,%ymm6,%xmm13 + vpxorq %xmm13,%xmm6,%xmm6 + vmovdqa64 POLY2(%rip),%xmm15 + + + vpclmulqdq $0x01,%xmm6,%xmm15,%xmm7 + vpslldq $8,%xmm7,%xmm7 + vpxorq %xmm7,%xmm6,%xmm7 + + + vpclmulqdq $0x00,%xmm7,%xmm15,%xmm8 + vpsrldq $4,%xmm8,%xmm8 + vpclmulqdq $0x10,%xmm7,%xmm15,%xmm2 + vpslldq $4,%xmm2,%xmm2 + vpternlogq $0x96,%xmm1,%xmm8,%xmm2 + + jmp .L_CALC_AAD_done_1 +.L_AAD_blocks_10_1: + subq $1024,%r12 + kmovq (%r12),%k1 + vmovdqu8 0(%r10),%zmm11 + vmovdqu8 64(%r10),%zmm3 + vmovdqu8 128(%r10),%ymm4{%k1}{z} + vpshufb %zmm16,%zmm11,%zmm11 + vpshufb %zmm16,%zmm3,%zmm3 + vpshufb %ymm16,%ymm4,%ymm4 + vpxorq %zmm2,%zmm11,%zmm11 + vmovdqu64 192(%rsi),%zmm15 + vpclmulqdq $0x11,%zmm15,%zmm11,%zmm1 + vpclmulqdq $0x00,%zmm15,%zmm11,%zmm6 + vpclmulqdq $0x01,%zmm15,%zmm11,%zmm7 + vpclmulqdq $0x10,%zmm15,%zmm11,%zmm8 + vmovdqu64 256(%rsi),%zmm15 + vpclmulqdq $0x11,%zmm15,%zmm3,%zmm9 + vpclmulqdq $0x00,%zmm15,%zmm3,%zmm10 + vpclmulqdq $0x01,%zmm15,%zmm3,%zmm12 + vpclmulqdq $0x10,%zmm15,%zmm3,%zmm13 + vpxorq %zmm9,%zmm1,%zmm9 + vpxorq %zmm10,%zmm6,%zmm10 + vpxorq %zmm12,%zmm7,%zmm12 + vpxorq %zmm13,%zmm8,%zmm13 + vmovdqu64 320(%rsi),%ymm15 + vpclmulqdq $0x01,%ymm15,%ymm4,%ymm7 + vpclmulqdq $0x10,%ymm15,%ymm4,%ymm8 + vpclmulqdq $0x11,%ymm15,%ymm4,%ymm1 + vpclmulqdq $0x00,%ymm15,%ymm4,%ymm6 + + vpxorq %zmm12,%zmm7,%zmm7 + vpxorq %zmm13,%zmm8,%zmm8 + vpxorq %zmm9,%zmm1,%zmm1 + vpxorq %zmm10,%zmm6,%zmm6 + + vpxorq %zmm8,%zmm7,%zmm7 + vpsrldq $8,%zmm7,%zmm12 + vpslldq $8,%zmm7,%zmm13 + vpxorq %zmm12,%zmm1,%zmm1 + vpxorq %zmm13,%zmm6,%zmm6 + vextracti64x4 $1,%zmm1,%ymm12 + vpxorq %ymm12,%ymm1,%ymm1 + vextracti32x4 $1,%ymm1,%xmm12 + vpxorq %xmm12,%xmm1,%xmm1 + vextracti64x4 $1,%zmm6,%ymm13 + vpxorq %ymm13,%ymm6,%ymm6 + vextracti32x4 $1,%ymm6,%xmm13 + vpxorq %xmm13,%xmm6,%xmm6 + vmovdqa64 POLY2(%rip),%xmm15 + + + vpclmulqdq $0x01,%xmm6,%xmm15,%xmm7 + vpslldq $8,%xmm7,%xmm7 + vpxorq %xmm7,%xmm6,%xmm7 + + + vpclmulqdq $0x00,%xmm7,%xmm15,%xmm8 + vpsrldq $4,%xmm8,%xmm8 + vpclmulqdq $0x10,%xmm7,%xmm15,%xmm2 + vpslldq $4,%xmm2,%xmm2 + vpternlogq $0x96,%xmm1,%xmm8,%xmm2 + + jmp .L_CALC_AAD_done_1 +.L_AAD_blocks_9_1: + subq $1024,%r12 + kmovq (%r12),%k1 + vmovdqu8 0(%r10),%zmm11 + vmovdqu8 64(%r10),%zmm3 + vmovdqu8 128(%r10),%xmm4{%k1}{z} + vpshufb %zmm16,%zmm11,%zmm11 + vpshufb %zmm16,%zmm3,%zmm3 + vpshufb %xmm16,%xmm4,%xmm4 + vpxorq %zmm2,%zmm11,%zmm11 + vmovdqu64 208(%rsi),%zmm15 + vpclmulqdq $0x11,%zmm15,%zmm11,%zmm1 + vpclmulqdq $0x00,%zmm15,%zmm11,%zmm6 + vpclmulqdq $0x01,%zmm15,%zmm11,%zmm7 + vpclmulqdq $0x10,%zmm15,%zmm11,%zmm8 + vmovdqu64 272(%rsi),%zmm15 + vpclmulqdq $0x11,%zmm15,%zmm3,%zmm9 + vpclmulqdq $0x00,%zmm15,%zmm3,%zmm10 + vpclmulqdq $0x01,%zmm15,%zmm3,%zmm12 + vpclmulqdq $0x10,%zmm15,%zmm3,%zmm13 + vpxorq %zmm9,%zmm1,%zmm9 + vpxorq %zmm10,%zmm6,%zmm10 + vpxorq %zmm12,%zmm7,%zmm12 + vpxorq %zmm13,%zmm8,%zmm13 + vmovdqu64 336(%rsi),%xmm15 + vpclmulqdq $0x01,%xmm15,%xmm4,%xmm7 + vpclmulqdq $0x10,%xmm15,%xmm4,%xmm8 + vpclmulqdq $0x11,%xmm15,%xmm4,%xmm1 + vpclmulqdq $0x00,%xmm15,%xmm4,%xmm6 + + vpxorq %zmm12,%zmm7,%zmm7 + vpxorq %zmm13,%zmm8,%zmm8 + vpxorq %zmm9,%zmm1,%zmm1 + vpxorq %zmm10,%zmm6,%zmm6 + + vpxorq %zmm8,%zmm7,%zmm7 + vpsrldq $8,%zmm7,%zmm12 + vpslldq $8,%zmm7,%zmm13 + vpxorq %zmm12,%zmm1,%zmm1 + vpxorq %zmm13,%zmm6,%zmm6 + vextracti64x4 $1,%zmm1,%ymm12 + vpxorq %ymm12,%ymm1,%ymm1 + vextracti32x4 $1,%ymm1,%xmm12 + vpxorq %xmm12,%xmm1,%xmm1 + vextracti64x4 $1,%zmm6,%ymm13 + vpxorq %ymm13,%ymm6,%ymm6 + vextracti32x4 $1,%ymm6,%xmm13 + vpxorq %xmm13,%xmm6,%xmm6 + vmovdqa64 POLY2(%rip),%xmm15 + + + vpclmulqdq $0x01,%xmm6,%xmm15,%xmm7 + vpslldq $8,%xmm7,%xmm7 + vpxorq %xmm7,%xmm6,%xmm7 + + + vpclmulqdq $0x00,%xmm7,%xmm15,%xmm8 + vpsrldq $4,%xmm8,%xmm8 + vpclmulqdq $0x10,%xmm7,%xmm15,%xmm2 + vpslldq $4,%xmm2,%xmm2 + vpternlogq $0x96,%xmm1,%xmm8,%xmm2 + + jmp .L_CALC_AAD_done_1 +.L_AAD_blocks_8_1: + subq $512,%r12 + kmovq (%r12),%k1 + vmovdqu8 0(%r10),%zmm11 + vmovdqu8 64(%r10),%zmm3{%k1}{z} + vpshufb %zmm16,%zmm11,%zmm11 + vpshufb %zmm16,%zmm3,%zmm3 + vpxorq %zmm2,%zmm11,%zmm11 + vmovdqu64 224(%rsi),%zmm15 + vpclmulqdq $0x11,%zmm15,%zmm11,%zmm1 + vpclmulqdq $0x00,%zmm15,%zmm11,%zmm6 + vpclmulqdq $0x01,%zmm15,%zmm11,%zmm7 + vpclmulqdq $0x10,%zmm15,%zmm11,%zmm8 + vmovdqu64 288(%rsi),%zmm15 + vpclmulqdq $0x11,%zmm15,%zmm3,%zmm9 + vpclmulqdq $0x00,%zmm15,%zmm3,%zmm10 + vpclmulqdq $0x01,%zmm15,%zmm3,%zmm12 + vpclmulqdq $0x10,%zmm15,%zmm3,%zmm13 + vpxorq %zmm9,%zmm1,%zmm9 + vpxorq %zmm10,%zmm6,%zmm10 + vpxorq %zmm12,%zmm7,%zmm12 + vpxorq %zmm13,%zmm8,%zmm13 + + vpxorq %zmm13,%zmm12,%zmm12 + vpsrldq $8,%zmm12,%zmm7 + vpslldq $8,%zmm12,%zmm8 + vpxorq %zmm7,%zmm9,%zmm1 + vpxorq %zmm8,%zmm10,%zmm6 + vextracti64x4 $1,%zmm1,%ymm12 + vpxorq %ymm12,%ymm1,%ymm1 + vextracti32x4 $1,%ymm1,%xmm12 + vpxorq %xmm12,%xmm1,%xmm1 + vextracti64x4 $1,%zmm6,%ymm13 + vpxorq %ymm13,%ymm6,%ymm6 + vextracti32x4 $1,%ymm6,%xmm13 + vpxorq %xmm13,%xmm6,%xmm6 + vmovdqa64 POLY2(%rip),%xmm15 + + + vpclmulqdq $0x01,%xmm6,%xmm15,%xmm7 + vpslldq $8,%xmm7,%xmm7 + vpxorq %xmm7,%xmm6,%xmm7 + + + vpclmulqdq $0x00,%xmm7,%xmm15,%xmm8 + vpsrldq $4,%xmm8,%xmm8 + vpclmulqdq $0x10,%xmm7,%xmm15,%xmm2 + vpslldq $4,%xmm2,%xmm2 + vpternlogq $0x96,%xmm1,%xmm8,%xmm2 + + jmp .L_CALC_AAD_done_1 +.L_AAD_blocks_7_1: + subq $512,%r12 + kmovq (%r12),%k1 + vmovdqu8 0(%r10),%zmm11 + vmovdqu8 64(%r10),%zmm3{%k1}{z} + vpshufb %zmm16,%zmm11,%zmm11 + vpshufb %zmm16,%zmm3,%zmm3 + vpxorq %zmm2,%zmm11,%zmm11 + vmovdqu64 240(%rsi),%zmm15 + vpclmulqdq $0x11,%zmm15,%zmm11,%zmm9 + vpclmulqdq $0x00,%zmm15,%zmm11,%zmm10 + vpclmulqdq $0x01,%zmm15,%zmm11,%zmm12 + vpclmulqdq $0x10,%zmm15,%zmm11,%zmm13 + vmovdqu64 304(%rsi),%ymm15 + vinserti64x2 $2,336(%rsi),%zmm15,%zmm15 + vpclmulqdq $0x01,%zmm15,%zmm3,%zmm7 + vpclmulqdq $0x10,%zmm15,%zmm3,%zmm8 + vpclmulqdq $0x11,%zmm15,%zmm3,%zmm1 + vpclmulqdq $0x00,%zmm15,%zmm3,%zmm6 + + vpxorq %zmm12,%zmm7,%zmm7 + vpxorq %zmm13,%zmm8,%zmm8 + vpxorq %zmm9,%zmm1,%zmm1 + vpxorq %zmm10,%zmm6,%zmm6 + + vpxorq %zmm8,%zmm7,%zmm7 + vpsrldq $8,%zmm7,%zmm12 + vpslldq $8,%zmm7,%zmm13 + vpxorq %zmm12,%zmm1,%zmm1 + vpxorq %zmm13,%zmm6,%zmm6 + vextracti64x4 $1,%zmm1,%ymm12 + vpxorq %ymm12,%ymm1,%ymm1 + vextracti32x4 $1,%ymm1,%xmm12 + vpxorq %xmm12,%xmm1,%xmm1 + vextracti64x4 $1,%zmm6,%ymm13 + vpxorq %ymm13,%ymm6,%ymm6 + vextracti32x4 $1,%ymm6,%xmm13 + vpxorq %xmm13,%xmm6,%xmm6 + vmovdqa64 POLY2(%rip),%xmm15 + + + vpclmulqdq $0x01,%xmm6,%xmm15,%xmm7 + vpslldq $8,%xmm7,%xmm7 + vpxorq %xmm7,%xmm6,%xmm7 + + + vpclmulqdq $0x00,%xmm7,%xmm15,%xmm8 + vpsrldq $4,%xmm8,%xmm8 + vpclmulqdq $0x10,%xmm7,%xmm15,%xmm2 + vpslldq $4,%xmm2,%xmm2 + vpternlogq $0x96,%xmm1,%xmm8,%xmm2 + + jmp .L_CALC_AAD_done_1 +.L_AAD_blocks_6_1: + subq $512,%r12 + kmovq (%r12),%k1 + vmovdqu8 0(%r10),%zmm11 + vmovdqu8 64(%r10),%ymm3{%k1}{z} + vpshufb %zmm16,%zmm11,%zmm11 + vpshufb %ymm16,%ymm3,%ymm3 + vpxorq %zmm2,%zmm11,%zmm11 + vmovdqu64 256(%rsi),%zmm15 + vpclmulqdq $0x11,%zmm15,%zmm11,%zmm9 + vpclmulqdq $0x00,%zmm15,%zmm11,%zmm10 + vpclmulqdq $0x01,%zmm15,%zmm11,%zmm12 + vpclmulqdq $0x10,%zmm15,%zmm11,%zmm13 + vmovdqu64 320(%rsi),%ymm15 + vpclmulqdq $0x01,%ymm15,%ymm3,%ymm7 + vpclmulqdq $0x10,%ymm15,%ymm3,%ymm8 + vpclmulqdq $0x11,%ymm15,%ymm3,%ymm1 + vpclmulqdq $0x00,%ymm15,%ymm3,%ymm6 + + vpxorq %zmm12,%zmm7,%zmm7 + vpxorq %zmm13,%zmm8,%zmm8 + vpxorq %zmm9,%zmm1,%zmm1 + vpxorq %zmm10,%zmm6,%zmm6 + + vpxorq %zmm8,%zmm7,%zmm7 + vpsrldq $8,%zmm7,%zmm12 + vpslldq $8,%zmm7,%zmm13 + vpxorq %zmm12,%zmm1,%zmm1 + vpxorq %zmm13,%zmm6,%zmm6 + vextracti64x4 $1,%zmm1,%ymm12 + vpxorq %ymm12,%ymm1,%ymm1 + vextracti32x4 $1,%ymm1,%xmm12 + vpxorq %xmm12,%xmm1,%xmm1 + vextracti64x4 $1,%zmm6,%ymm13 + vpxorq %ymm13,%ymm6,%ymm6 + vextracti32x4 $1,%ymm6,%xmm13 + vpxorq %xmm13,%xmm6,%xmm6 + vmovdqa64 POLY2(%rip),%xmm15 + + + vpclmulqdq $0x01,%xmm6,%xmm15,%xmm7 + vpslldq $8,%xmm7,%xmm7 + vpxorq %xmm7,%xmm6,%xmm7 + + + vpclmulqdq $0x00,%xmm7,%xmm15,%xmm8 + vpsrldq $4,%xmm8,%xmm8 + vpclmulqdq $0x10,%xmm7,%xmm15,%xmm2 + vpslldq $4,%xmm2,%xmm2 + vpternlogq $0x96,%xmm1,%xmm8,%xmm2 + + jmp .L_CALC_AAD_done_1 +.L_AAD_blocks_5_1: + subq $512,%r12 + kmovq (%r12),%k1 + vmovdqu8 0(%r10),%zmm11 + vmovdqu8 64(%r10),%xmm3{%k1}{z} + vpshufb %zmm16,%zmm11,%zmm11 + vpshufb %xmm16,%xmm3,%xmm3 + vpxorq %zmm2,%zmm11,%zmm11 + vmovdqu64 272(%rsi),%zmm15 + vpclmulqdq $0x11,%zmm15,%zmm11,%zmm9 + vpclmulqdq $0x00,%zmm15,%zmm11,%zmm10 + vpclmulqdq $0x01,%zmm15,%zmm11,%zmm12 + vpclmulqdq $0x10,%zmm15,%zmm11,%zmm13 + vmovdqu64 336(%rsi),%xmm15 + vpclmulqdq $0x01,%xmm15,%xmm3,%xmm7 + vpclmulqdq $0x10,%xmm15,%xmm3,%xmm8 + vpclmulqdq $0x11,%xmm15,%xmm3,%xmm1 + vpclmulqdq $0x00,%xmm15,%xmm3,%xmm6 + + vpxorq %zmm12,%zmm7,%zmm7 + vpxorq %zmm13,%zmm8,%zmm8 + vpxorq %zmm9,%zmm1,%zmm1 + vpxorq %zmm10,%zmm6,%zmm6 + + vpxorq %zmm8,%zmm7,%zmm7 + vpsrldq $8,%zmm7,%zmm12 + vpslldq $8,%zmm7,%zmm13 + vpxorq %zmm12,%zmm1,%zmm1 + vpxorq %zmm13,%zmm6,%zmm6 + vextracti64x4 $1,%zmm1,%ymm12 + vpxorq %ymm12,%ymm1,%ymm1 + vextracti32x4 $1,%ymm1,%xmm12 + vpxorq %xmm12,%xmm1,%xmm1 + vextracti64x4 $1,%zmm6,%ymm13 + vpxorq %ymm13,%ymm6,%ymm6 + vextracti32x4 $1,%ymm6,%xmm13 + vpxorq %xmm13,%xmm6,%xmm6 + vmovdqa64 POLY2(%rip),%xmm15 + + + vpclmulqdq $0x01,%xmm6,%xmm15,%xmm7 + vpslldq $8,%xmm7,%xmm7 + vpxorq %xmm7,%xmm6,%xmm7 + + + vpclmulqdq $0x00,%xmm7,%xmm15,%xmm8 + vpsrldq $4,%xmm8,%xmm8 + vpclmulqdq $0x10,%xmm7,%xmm15,%xmm2 + vpslldq $4,%xmm2,%xmm2 + vpternlogq $0x96,%xmm1,%xmm8,%xmm2 + + jmp .L_CALC_AAD_done_1 +.L_AAD_blocks_4_1: + kmovq (%r12),%k1 + vmovdqu8 0(%r10),%zmm11{%k1}{z} + vpshufb %zmm16,%zmm11,%zmm11 + vpxorq %zmm2,%zmm11,%zmm11 + vmovdqu64 288(%rsi),%zmm15 + vpclmulqdq $0x11,%zmm15,%zmm11,%zmm9 + vpclmulqdq $0x00,%zmm15,%zmm11,%zmm10 + vpclmulqdq $0x01,%zmm15,%zmm11,%zmm12 + vpclmulqdq $0x10,%zmm15,%zmm11,%zmm13 + + vpxorq %zmm13,%zmm12,%zmm12 + vpsrldq $8,%zmm12,%zmm7 + vpslldq $8,%zmm12,%zmm8 + vpxorq %zmm7,%zmm9,%zmm1 + vpxorq %zmm8,%zmm10,%zmm6 + vextracti64x4 $1,%zmm1,%ymm12 + vpxorq %ymm12,%ymm1,%ymm1 + vextracti32x4 $1,%ymm1,%xmm12 + vpxorq %xmm12,%xmm1,%xmm1 + vextracti64x4 $1,%zmm6,%ymm13 + vpxorq %ymm13,%ymm6,%ymm6 + vextracti32x4 $1,%ymm6,%xmm13 + vpxorq %xmm13,%xmm6,%xmm6 + vmovdqa64 POLY2(%rip),%xmm15 + + + vpclmulqdq $0x01,%xmm6,%xmm15,%xmm7 + vpslldq $8,%xmm7,%xmm7 + vpxorq %xmm7,%xmm6,%xmm7 + + + vpclmulqdq $0x00,%xmm7,%xmm15,%xmm8 + vpsrldq $4,%xmm8,%xmm8 + vpclmulqdq $0x10,%xmm7,%xmm15,%xmm2 + vpslldq $4,%xmm2,%xmm2 + vpternlogq $0x96,%xmm1,%xmm8,%xmm2 + + jmp .L_CALC_AAD_done_1 +.L_AAD_blocks_3_1: + kmovq (%r12),%k1 + vmovdqu8 0(%r10),%zmm11{%k1}{z} + vpshufb %zmm16,%zmm11,%zmm11 + vpxorq %zmm2,%zmm11,%zmm11 + vmovdqu64 304(%rsi),%ymm15 + vinserti64x2 $2,336(%rsi),%zmm15,%zmm15 + vpclmulqdq $0x01,%zmm15,%zmm11,%zmm7 + vpclmulqdq $0x10,%zmm15,%zmm11,%zmm8 + vpclmulqdq $0x11,%zmm15,%zmm11,%zmm1 + vpclmulqdq $0x00,%zmm15,%zmm11,%zmm6 + + vpxorq %zmm8,%zmm7,%zmm7 + vpsrldq $8,%zmm7,%zmm12 + vpslldq $8,%zmm7,%zmm13 + vpxorq %zmm12,%zmm1,%zmm1 + vpxorq %zmm13,%zmm6,%zmm6 + vextracti64x4 $1,%zmm1,%ymm12 + vpxorq %ymm12,%ymm1,%ymm1 + vextracti32x4 $1,%ymm1,%xmm12 + vpxorq %xmm12,%xmm1,%xmm1 + vextracti64x4 $1,%zmm6,%ymm13 + vpxorq %ymm13,%ymm6,%ymm6 + vextracti32x4 $1,%ymm6,%xmm13 + vpxorq %xmm13,%xmm6,%xmm6 + vmovdqa64 POLY2(%rip),%xmm15 + + + vpclmulqdq $0x01,%xmm6,%xmm15,%xmm7 + vpslldq $8,%xmm7,%xmm7 + vpxorq %xmm7,%xmm6,%xmm7 + + + vpclmulqdq $0x00,%xmm7,%xmm15,%xmm8 + vpsrldq $4,%xmm8,%xmm8 + vpclmulqdq $0x10,%xmm7,%xmm15,%xmm2 + vpslldq $4,%xmm2,%xmm2 + vpternlogq $0x96,%xmm1,%xmm8,%xmm2 + + jmp .L_CALC_AAD_done_1 +.L_AAD_blocks_2_1: + kmovq (%r12),%k1 + vmovdqu8 0(%r10),%ymm11{%k1}{z} + vpshufb %ymm16,%ymm11,%ymm11 + vpxorq %zmm2,%zmm11,%zmm11 + vmovdqu64 320(%rsi),%ymm15 + vpclmulqdq $0x01,%ymm15,%ymm11,%ymm7 + vpclmulqdq $0x10,%ymm15,%ymm11,%ymm8 + vpclmulqdq $0x11,%ymm15,%ymm11,%ymm1 + vpclmulqdq $0x00,%ymm15,%ymm11,%ymm6 + + vpxorq %zmm8,%zmm7,%zmm7 + vpsrldq $8,%zmm7,%zmm12 + vpslldq $8,%zmm7,%zmm13 + vpxorq %zmm12,%zmm1,%zmm1 + vpxorq %zmm13,%zmm6,%zmm6 + vextracti64x4 $1,%zmm1,%ymm12 + vpxorq %ymm12,%ymm1,%ymm1 + vextracti32x4 $1,%ymm1,%xmm12 + vpxorq %xmm12,%xmm1,%xmm1 + vextracti64x4 $1,%zmm6,%ymm13 + vpxorq %ymm13,%ymm6,%ymm6 + vextracti32x4 $1,%ymm6,%xmm13 + vpxorq %xmm13,%xmm6,%xmm6 + vmovdqa64 POLY2(%rip),%xmm15 + + + vpclmulqdq $0x01,%xmm6,%xmm15,%xmm7 + vpslldq $8,%xmm7,%xmm7 + vpxorq %xmm7,%xmm6,%xmm7 + + + vpclmulqdq $0x00,%xmm7,%xmm15,%xmm8 + vpsrldq $4,%xmm8,%xmm8 + vpclmulqdq $0x10,%xmm7,%xmm15,%xmm2 + vpslldq $4,%xmm2,%xmm2 + vpternlogq $0x96,%xmm1,%xmm8,%xmm2 + + jmp .L_CALC_AAD_done_1 +.L_AAD_blocks_1_1: + kmovq (%r12),%k1 + vmovdqu8 0(%r10),%xmm11{%k1}{z} + vpshufb %xmm16,%xmm11,%xmm11 + vpxorq %zmm2,%zmm11,%zmm11 + vmovdqu64 336(%rsi),%xmm15 + vpclmulqdq $0x01,%xmm15,%xmm11,%xmm7 + vpclmulqdq $0x10,%xmm15,%xmm11,%xmm8 + vpclmulqdq $0x11,%xmm15,%xmm11,%xmm1 + vpclmulqdq $0x00,%xmm15,%xmm11,%xmm6 + + vpxorq %zmm8,%zmm7,%zmm7 + vpsrldq $8,%zmm7,%zmm12 + vpslldq $8,%zmm7,%zmm13 + vpxorq %zmm12,%zmm1,%zmm1 + vpxorq %zmm13,%zmm6,%zmm6 + vextracti64x4 $1,%zmm1,%ymm12 + vpxorq %ymm12,%ymm1,%ymm1 + vextracti32x4 $1,%ymm1,%xmm12 + vpxorq %xmm12,%xmm1,%xmm1 + vextracti64x4 $1,%zmm6,%ymm13 + vpxorq %ymm13,%ymm6,%ymm6 + vextracti32x4 $1,%ymm6,%xmm13 + vpxorq %xmm13,%xmm6,%xmm6 + vmovdqa64 POLY2(%rip),%xmm15 + + + vpclmulqdq $0x01,%xmm6,%xmm15,%xmm7 + vpslldq $8,%xmm7,%xmm7 + vpxorq %xmm7,%xmm6,%xmm7 + + + vpclmulqdq $0x00,%xmm7,%xmm15,%xmm8 + vpsrldq $4,%xmm8,%xmm8 + vpclmulqdq $0x10,%xmm7,%xmm15,%xmm2 + vpslldq $4,%xmm2,%xmm2 + vpternlogq $0x96,%xmm1,%xmm8,%xmm2 + +.L_CALC_AAD_done_1: + movq %rcx,%r10 + shlq $3,%r10 + vmovq %r10,%xmm3 + + + vpxorq %xmm2,%xmm3,%xmm2 + + vmovdqu64 336(%rsi),%xmm1 + + vpclmulqdq $0x11,%xmm1,%xmm2,%xmm11 + vpclmulqdq $0x00,%xmm1,%xmm2,%xmm3 + vpclmulqdq $0x01,%xmm1,%xmm2,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm2,%xmm2 + vpxorq %xmm4,%xmm2,%xmm2 + + vpsrldq $8,%xmm2,%xmm4 + vpslldq $8,%xmm2,%xmm2 + vpxorq %xmm4,%xmm11,%xmm11 + vpxorq %xmm3,%xmm2,%xmm2 + + + + vmovdqu64 POLY2(%rip),%xmm4 + + vpclmulqdq $0x01,%xmm2,%xmm4,%xmm3 + vpslldq $8,%xmm3,%xmm3 + vpxorq %xmm3,%xmm2,%xmm2 + + + + vpclmulqdq $0x00,%xmm2,%xmm4,%xmm3 + vpsrldq $4,%xmm3,%xmm3 + vpclmulqdq $0x10,%xmm2,%xmm4,%xmm2 + vpslldq $4,%xmm2,%xmm2 + + vpternlogq $0x96,%xmm3,%xmm11,%xmm2 + + vpshufb SHUF_MASK(%rip),%xmm2,%xmm2 + jmp skip_iv_len_12_init_IV +iv_len_12_init_IV: + + vmovdqu8 ONEf(%rip),%xmm2 + movq %rdx,%r11 + movl $0x0000000000000fff,%r10d + kmovq %r10,%k1 + vmovdqu8 (%r11),%xmm2{%k1} +skip_iv_len_12_init_IV: + vmovdqu %xmm2,%xmm1 + + + movl 240(%rdi),%r10d + cmpl $9,%r10d + je .Laes_128_4 + cmpl $11,%r10d + je .Laes_192_4 + cmpl $13,%r10d + je .Laes_256_4 + jmp .Lexit_aes_4 +.align 32 +.Laes_128_4: + vpxorq 0(%rdi),%xmm1,%xmm1 + + vaesenc 16(%rdi),%xmm1,%xmm1 + + vaesenc 32(%rdi),%xmm1,%xmm1 + + vaesenc 48(%rdi),%xmm1,%xmm1 + + vaesenc 64(%rdi),%xmm1,%xmm1 + + vaesenc 80(%rdi),%xmm1,%xmm1 + + vaesenc 96(%rdi),%xmm1,%xmm1 + + vaesenc 112(%rdi),%xmm1,%xmm1 + + vaesenc 128(%rdi),%xmm1,%xmm1 + + vaesenc 144(%rdi),%xmm1,%xmm1 + + vaesenclast 160(%rdi),%xmm1,%xmm1 + jmp .Lexit_aes_4 +.align 32 +.Laes_192_4: + vpxorq 0(%rdi),%xmm1,%xmm1 + + vaesenc 16(%rdi),%xmm1,%xmm1 + + vaesenc 32(%rdi),%xmm1,%xmm1 + + vaesenc 48(%rdi),%xmm1,%xmm1 + + vaesenc 64(%rdi),%xmm1,%xmm1 + + vaesenc 80(%rdi),%xmm1,%xmm1 + + vaesenc 96(%rdi),%xmm1,%xmm1 + + vaesenc 112(%rdi),%xmm1,%xmm1 + + vaesenc 128(%rdi),%xmm1,%xmm1 + + vaesenc 144(%rdi),%xmm1,%xmm1 + + vaesenc 160(%rdi),%xmm1,%xmm1 + + vaesenc 176(%rdi),%xmm1,%xmm1 + + vaesenclast 192(%rdi),%xmm1,%xmm1 + jmp .Lexit_aes_4 +.align 32 +.Laes_256_4: + vpxorq 0(%rdi),%xmm1,%xmm1 + + vaesenc 16(%rdi),%xmm1,%xmm1 + + vaesenc 32(%rdi),%xmm1,%xmm1 + + vaesenc 48(%rdi),%xmm1,%xmm1 + + vaesenc 64(%rdi),%xmm1,%xmm1 + + vaesenc 80(%rdi),%xmm1,%xmm1 + + vaesenc 96(%rdi),%xmm1,%xmm1 + + vaesenc 112(%rdi),%xmm1,%xmm1 + + vaesenc 128(%rdi),%xmm1,%xmm1 + + vaesenc 144(%rdi),%xmm1,%xmm1 + + vaesenc 160(%rdi),%xmm1,%xmm1 + + vaesenc 176(%rdi),%xmm1,%xmm1 + + vaesenc 192(%rdi),%xmm1,%xmm1 + + vaesenc 208(%rdi),%xmm1,%xmm1 + + vaesenclast 224(%rdi),%xmm1,%xmm1 + jmp .Lexit_aes_4 +.Lexit_aes_4: + + vmovdqu %xmm1,32(%rsi) + + + vpshufb SHUF_MASK(%rip),%xmm2,%xmm2 + vmovdqu %xmm2,0(%rsi) + cmpq $256,%rcx + jbe .Lskip_hkeys_cleanup_5 + vpxor %xmm0,%xmm0,%xmm0 + vmovdqa64 %zmm0,0(%rsp) + vmovdqa64 %zmm0,64(%rsp) + vmovdqa64 %zmm0,128(%rsp) + vmovdqa64 %zmm0,192(%rsp) + vmovdqa64 %zmm0,256(%rsp) + vmovdqa64 %zmm0,320(%rsp) + vmovdqa64 %zmm0,384(%rsp) + vmovdqa64 %zmm0,448(%rsp) + vmovdqa64 %zmm0,512(%rsp) + vmovdqa64 %zmm0,576(%rsp) + vmovdqa64 %zmm0,640(%rsp) + vmovdqa64 %zmm0,704(%rsp) +.Lskip_hkeys_cleanup_5: + vzeroupper + leaq (%rbp),%rsp +.cfi_def_cfa_register %rsp + popq %r15 +.cfi_adjust_cfa_offset -8 +.cfi_restore %r15 + popq %r14 +.cfi_adjust_cfa_offset -8 +.cfi_restore %r14 + popq %r13 +.cfi_adjust_cfa_offset -8 +.cfi_restore %r13 + popq %r12 +.cfi_adjust_cfa_offset -8 +.cfi_restore %r12 + popq %rbp +.cfi_adjust_cfa_offset -8 +.cfi_restore %rbp + popq %rbx +.cfi_adjust_cfa_offset -8 +.cfi_restore %rbx +.Labort_setiv: + .byte 0xf3,0xc3 +.Lsetiv_seh_end: +.cfi_endproc +.size ossl_aes_gcm_setiv_avx512, .-ossl_aes_gcm_setiv_avx512 +.globl ossl_aes_gcm_update_aad_avx512 +.type ossl_aes_gcm_update_aad_avx512,@function +.align 32 +ossl_aes_gcm_update_aad_avx512: +.cfi_startproc +.Lghash_seh_begin: +.byte 243,15,30,250 + pushq %rbx +.cfi_adjust_cfa_offset 8 +.cfi_offset %rbx,-16 +.Lghash_seh_push_rbx: + pushq %rbp +.cfi_adjust_cfa_offset 8 +.cfi_offset %rbp,-24 +.Lghash_seh_push_rbp: + pushq %r12 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r12,-32 +.Lghash_seh_push_r12: + pushq %r13 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r13,-40 +.Lghash_seh_push_r13: + pushq %r14 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r14,-48 +.Lghash_seh_push_r14: + pushq %r15 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r15,-56 +.Lghash_seh_push_r15: + + + + + + + + + + + leaq 0(%rsp),%rbp +.cfi_def_cfa_register %rbp +.Lghash_seh_setfp: + +.Lghash_seh_prolog_end: + subq $820,%rsp + andq $(-64),%rsp + vmovdqu64 64(%rdi),%xmm14 + movq %rsi,%r10 + movq %rdx,%r11 + orq %r11,%r11 + jz .L_CALC_AAD_done_6 + + xorq %rbx,%rbx + vmovdqa64 SHUF_MASK(%rip),%zmm16 + +.L_get_AAD_loop48x16_6: + cmpq $768,%r11 + jl .L_exit_AAD_loop48x16_6 + vmovdqu64 0(%r10),%zmm11 + vmovdqu64 64(%r10),%zmm3 + vmovdqu64 128(%r10),%zmm4 + vmovdqu64 192(%r10),%zmm5 + vpshufb %zmm16,%zmm11,%zmm11 + vpshufb %zmm16,%zmm3,%zmm3 + vpshufb %zmm16,%zmm4,%zmm4 + vpshufb %zmm16,%zmm5,%zmm5 + testq %rbx,%rbx + jnz .L_skip_hkeys_precomputation_7 + + vmovdqu64 288(%rdi),%zmm1 + vmovdqu64 %zmm1,704(%rsp) + + vmovdqu64 224(%rdi),%zmm9 + vmovdqu64 %zmm9,640(%rsp) + + + vshufi64x2 $0x00,%zmm9,%zmm9,%zmm9 + + vmovdqu64 160(%rdi),%zmm10 + vmovdqu64 %zmm10,576(%rsp) + + vmovdqu64 96(%rdi),%zmm12 + vmovdqu64 %zmm12,512(%rsp) + + vpclmulqdq $0x11,%zmm9,%zmm10,%zmm13 + vpclmulqdq $0x00,%zmm9,%zmm10,%zmm15 + vpclmulqdq $0x01,%zmm9,%zmm10,%zmm17 + vpclmulqdq $0x10,%zmm9,%zmm10,%zmm10 + vpxorq %zmm17,%zmm10,%zmm10 + + vpsrldq $8,%zmm10,%zmm17 + vpslldq $8,%zmm10,%zmm10 + vpxorq %zmm17,%zmm13,%zmm13 + vpxorq %zmm15,%zmm10,%zmm10 + + + + vmovdqu64 POLY2(%rip),%zmm17 + + vpclmulqdq $0x01,%zmm10,%zmm17,%zmm15 + vpslldq $8,%zmm15,%zmm15 + vpxorq %zmm15,%zmm10,%zmm10 + + + + vpclmulqdq $0x00,%zmm10,%zmm17,%zmm15 + vpsrldq $4,%zmm15,%zmm15 + vpclmulqdq $0x10,%zmm10,%zmm17,%zmm10 + vpslldq $4,%zmm10,%zmm10 + + vpternlogq $0x96,%zmm15,%zmm13,%zmm10 + + vmovdqu64 %zmm10,448(%rsp) + + vpclmulqdq $0x11,%zmm9,%zmm12,%zmm13 + vpclmulqdq $0x00,%zmm9,%zmm12,%zmm15 + vpclmulqdq $0x01,%zmm9,%zmm12,%zmm17 + vpclmulqdq $0x10,%zmm9,%zmm12,%zmm12 + vpxorq %zmm17,%zmm12,%zmm12 + + vpsrldq $8,%zmm12,%zmm17 + vpslldq $8,%zmm12,%zmm12 + vpxorq %zmm17,%zmm13,%zmm13 + vpxorq %zmm15,%zmm12,%zmm12 + + + + vmovdqu64 POLY2(%rip),%zmm17 + + vpclmulqdq $0x01,%zmm12,%zmm17,%zmm15 + vpslldq $8,%zmm15,%zmm15 + vpxorq %zmm15,%zmm12,%zmm12 + + + + vpclmulqdq $0x00,%zmm12,%zmm17,%zmm15 + vpsrldq $4,%zmm15,%zmm15 + vpclmulqdq $0x10,%zmm12,%zmm17,%zmm12 + vpslldq $4,%zmm12,%zmm12 + + vpternlogq $0x96,%zmm15,%zmm13,%zmm12 + + vmovdqu64 %zmm12,384(%rsp) + + vpclmulqdq $0x11,%zmm9,%zmm10,%zmm13 + vpclmulqdq $0x00,%zmm9,%zmm10,%zmm15 + vpclmulqdq $0x01,%zmm9,%zmm10,%zmm17 + vpclmulqdq $0x10,%zmm9,%zmm10,%zmm10 + vpxorq %zmm17,%zmm10,%zmm10 + + vpsrldq $8,%zmm10,%zmm17 + vpslldq $8,%zmm10,%zmm10 + vpxorq %zmm17,%zmm13,%zmm13 + vpxorq %zmm15,%zmm10,%zmm10 + + + + vmovdqu64 POLY2(%rip),%zmm17 + + vpclmulqdq $0x01,%zmm10,%zmm17,%zmm15 + vpslldq $8,%zmm15,%zmm15 + vpxorq %zmm15,%zmm10,%zmm10 + + + + vpclmulqdq $0x00,%zmm10,%zmm17,%zmm15 + vpsrldq $4,%zmm15,%zmm15 + vpclmulqdq $0x10,%zmm10,%zmm17,%zmm10 + vpslldq $4,%zmm10,%zmm10 + + vpternlogq $0x96,%zmm15,%zmm13,%zmm10 + + vmovdqu64 %zmm10,320(%rsp) + + vpclmulqdq $0x11,%zmm9,%zmm12,%zmm13 + vpclmulqdq $0x00,%zmm9,%zmm12,%zmm15 + vpclmulqdq $0x01,%zmm9,%zmm12,%zmm17 + vpclmulqdq $0x10,%zmm9,%zmm12,%zmm12 + vpxorq %zmm17,%zmm12,%zmm12 + + vpsrldq $8,%zmm12,%zmm17 + vpslldq $8,%zmm12,%zmm12 + vpxorq %zmm17,%zmm13,%zmm13 + vpxorq %zmm15,%zmm12,%zmm12 + + + + vmovdqu64 POLY2(%rip),%zmm17 + + vpclmulqdq $0x01,%zmm12,%zmm17,%zmm15 + vpslldq $8,%zmm15,%zmm15 + vpxorq %zmm15,%zmm12,%zmm12 + + + + vpclmulqdq $0x00,%zmm12,%zmm17,%zmm15 + vpsrldq $4,%zmm15,%zmm15 + vpclmulqdq $0x10,%zmm12,%zmm17,%zmm12 + vpslldq $4,%zmm12,%zmm12 + + vpternlogq $0x96,%zmm15,%zmm13,%zmm12 + + vmovdqu64 %zmm12,256(%rsp) + + vpclmulqdq $0x11,%zmm9,%zmm10,%zmm13 + vpclmulqdq $0x00,%zmm9,%zmm10,%zmm15 + vpclmulqdq $0x01,%zmm9,%zmm10,%zmm17 + vpclmulqdq $0x10,%zmm9,%zmm10,%zmm10 + vpxorq %zmm17,%zmm10,%zmm10 + + vpsrldq $8,%zmm10,%zmm17 + vpslldq $8,%zmm10,%zmm10 + vpxorq %zmm17,%zmm13,%zmm13 + vpxorq %zmm15,%zmm10,%zmm10 + + + + vmovdqu64 POLY2(%rip),%zmm17 + + vpclmulqdq $0x01,%zmm10,%zmm17,%zmm15 + vpslldq $8,%zmm15,%zmm15 + vpxorq %zmm15,%zmm10,%zmm10 + + + + vpclmulqdq $0x00,%zmm10,%zmm17,%zmm15 + vpsrldq $4,%zmm15,%zmm15 + vpclmulqdq $0x10,%zmm10,%zmm17,%zmm10 + vpslldq $4,%zmm10,%zmm10 + + vpternlogq $0x96,%zmm15,%zmm13,%zmm10 + + vmovdqu64 %zmm10,192(%rsp) + + vpclmulqdq $0x11,%zmm9,%zmm12,%zmm13 + vpclmulqdq $0x00,%zmm9,%zmm12,%zmm15 + vpclmulqdq $0x01,%zmm9,%zmm12,%zmm17 + vpclmulqdq $0x10,%zmm9,%zmm12,%zmm12 + vpxorq %zmm17,%zmm12,%zmm12 + + vpsrldq $8,%zmm12,%zmm17 + vpslldq $8,%zmm12,%zmm12 + vpxorq %zmm17,%zmm13,%zmm13 + vpxorq %zmm15,%zmm12,%zmm12 + + + + vmovdqu64 POLY2(%rip),%zmm17 + + vpclmulqdq $0x01,%zmm12,%zmm17,%zmm15 + vpslldq $8,%zmm15,%zmm15 + vpxorq %zmm15,%zmm12,%zmm12 + + + + vpclmulqdq $0x00,%zmm12,%zmm17,%zmm15 + vpsrldq $4,%zmm15,%zmm15 + vpclmulqdq $0x10,%zmm12,%zmm17,%zmm12 + vpslldq $4,%zmm12,%zmm12 + + vpternlogq $0x96,%zmm15,%zmm13,%zmm12 + + vmovdqu64 %zmm12,128(%rsp) + + vpclmulqdq $0x11,%zmm9,%zmm10,%zmm13 + vpclmulqdq $0x00,%zmm9,%zmm10,%zmm15 + vpclmulqdq $0x01,%zmm9,%zmm10,%zmm17 + vpclmulqdq $0x10,%zmm9,%zmm10,%zmm10 + vpxorq %zmm17,%zmm10,%zmm10 + + vpsrldq $8,%zmm10,%zmm17 + vpslldq $8,%zmm10,%zmm10 + vpxorq %zmm17,%zmm13,%zmm13 + vpxorq %zmm15,%zmm10,%zmm10 + + + + vmovdqu64 POLY2(%rip),%zmm17 + + vpclmulqdq $0x01,%zmm10,%zmm17,%zmm15 + vpslldq $8,%zmm15,%zmm15 + vpxorq %zmm15,%zmm10,%zmm10 + + + + vpclmulqdq $0x00,%zmm10,%zmm17,%zmm15 + vpsrldq $4,%zmm15,%zmm15 + vpclmulqdq $0x10,%zmm10,%zmm17,%zmm10 + vpslldq $4,%zmm10,%zmm10 + + vpternlogq $0x96,%zmm15,%zmm13,%zmm10 + + vmovdqu64 %zmm10,64(%rsp) + + vpclmulqdq $0x11,%zmm9,%zmm12,%zmm13 + vpclmulqdq $0x00,%zmm9,%zmm12,%zmm15 + vpclmulqdq $0x01,%zmm9,%zmm12,%zmm17 + vpclmulqdq $0x10,%zmm9,%zmm12,%zmm12 + vpxorq %zmm17,%zmm12,%zmm12 + + vpsrldq $8,%zmm12,%zmm17 + vpslldq $8,%zmm12,%zmm12 + vpxorq %zmm17,%zmm13,%zmm13 + vpxorq %zmm15,%zmm12,%zmm12 + + + + vmovdqu64 POLY2(%rip),%zmm17 + + vpclmulqdq $0x01,%zmm12,%zmm17,%zmm15 + vpslldq $8,%zmm15,%zmm15 + vpxorq %zmm15,%zmm12,%zmm12 + + + + vpclmulqdq $0x00,%zmm12,%zmm17,%zmm15 + vpsrldq $4,%zmm15,%zmm15 + vpclmulqdq $0x10,%zmm12,%zmm17,%zmm12 + vpslldq $4,%zmm12,%zmm12 + + vpternlogq $0x96,%zmm15,%zmm13,%zmm12 + + vmovdqu64 %zmm12,0(%rsp) +.L_skip_hkeys_precomputation_7: + movq $1,%rbx + vpxorq %zmm14,%zmm11,%zmm11 + vmovdqu64 0(%rsp),%zmm19 + vpclmulqdq $0x11,%zmm19,%zmm11,%zmm1 + vpclmulqdq $0x00,%zmm19,%zmm11,%zmm9 + vpclmulqdq $0x01,%zmm19,%zmm11,%zmm10 + vpclmulqdq $0x10,%zmm19,%zmm11,%zmm12 + vmovdqu64 64(%rsp),%zmm19 + vpclmulqdq $0x11,%zmm19,%zmm3,%zmm13 + vpclmulqdq $0x00,%zmm19,%zmm3,%zmm15 + vpclmulqdq $0x01,%zmm19,%zmm3,%zmm17 + vpclmulqdq $0x10,%zmm19,%zmm3,%zmm18 + vpxorq %zmm17,%zmm10,%zmm7 + vpxorq %zmm13,%zmm1,%zmm6 + vpxorq %zmm15,%zmm9,%zmm8 + vpternlogq $0x96,%zmm18,%zmm12,%zmm7 + vmovdqu64 128(%rsp),%zmm19 + vpclmulqdq $0x11,%zmm19,%zmm4,%zmm1 + vpclmulqdq $0x00,%zmm19,%zmm4,%zmm9 + vpclmulqdq $0x01,%zmm19,%zmm4,%zmm10 + vpclmulqdq $0x10,%zmm19,%zmm4,%zmm12 + vmovdqu64 192(%rsp),%zmm19 + vpclmulqdq $0x11,%zmm19,%zmm5,%zmm13 + vpclmulqdq $0x00,%zmm19,%zmm5,%zmm15 + vpclmulqdq $0x01,%zmm19,%zmm5,%zmm17 + vpclmulqdq $0x10,%zmm19,%zmm5,%zmm18 + + vpternlogq $0x96,%zmm17,%zmm10,%zmm7 + vpternlogq $0x96,%zmm13,%zmm1,%zmm6 + vpternlogq $0x96,%zmm15,%zmm9,%zmm8 + vpternlogq $0x96,%zmm18,%zmm12,%zmm7 + vmovdqu64 256(%r10),%zmm11 + vmovdqu64 320(%r10),%zmm3 + vmovdqu64 384(%r10),%zmm4 + vmovdqu64 448(%r10),%zmm5 + vpshufb %zmm16,%zmm11,%zmm11 + vpshufb %zmm16,%zmm3,%zmm3 + vpshufb %zmm16,%zmm4,%zmm4 + vpshufb %zmm16,%zmm5,%zmm5 + vmovdqu64 256(%rsp),%zmm19 + vpclmulqdq $0x11,%zmm19,%zmm11,%zmm1 + vpclmulqdq $0x00,%zmm19,%zmm11,%zmm9 + vpclmulqdq $0x01,%zmm19,%zmm11,%zmm10 + vpclmulqdq $0x10,%zmm19,%zmm11,%zmm12 + vmovdqu64 320(%rsp),%zmm19 + vpclmulqdq $0x11,%zmm19,%zmm3,%zmm13 + vpclmulqdq $0x00,%zmm19,%zmm3,%zmm15 + vpclmulqdq $0x01,%zmm19,%zmm3,%zmm17 + vpclmulqdq $0x10,%zmm19,%zmm3,%zmm18 + vpternlogq $0x96,%zmm17,%zmm10,%zmm7 + vpternlogq $0x96,%zmm13,%zmm1,%zmm6 + vpternlogq $0x96,%zmm15,%zmm9,%zmm8 + vpternlogq $0x96,%zmm18,%zmm12,%zmm7 + vmovdqu64 384(%rsp),%zmm19 + vpclmulqdq $0x11,%zmm19,%zmm4,%zmm1 + vpclmulqdq $0x00,%zmm19,%zmm4,%zmm9 + vpclmulqdq $0x01,%zmm19,%zmm4,%zmm10 + vpclmulqdq $0x10,%zmm19,%zmm4,%zmm12 + vmovdqu64 448(%rsp),%zmm19 + vpclmulqdq $0x11,%zmm19,%zmm5,%zmm13 + vpclmulqdq $0x00,%zmm19,%zmm5,%zmm15 + vpclmulqdq $0x01,%zmm19,%zmm5,%zmm17 + vpclmulqdq $0x10,%zmm19,%zmm5,%zmm18 + + vpternlogq $0x96,%zmm17,%zmm10,%zmm7 + vpternlogq $0x96,%zmm13,%zmm1,%zmm6 + vpternlogq $0x96,%zmm15,%zmm9,%zmm8 + vpternlogq $0x96,%zmm18,%zmm12,%zmm7 + vmovdqu64 512(%r10),%zmm11 + vmovdqu64 576(%r10),%zmm3 + vmovdqu64 640(%r10),%zmm4 + vmovdqu64 704(%r10),%zmm5 + vpshufb %zmm16,%zmm11,%zmm11 + vpshufb %zmm16,%zmm3,%zmm3 + vpshufb %zmm16,%zmm4,%zmm4 + vpshufb %zmm16,%zmm5,%zmm5 + vmovdqu64 512(%rsp),%zmm19 + vpclmulqdq $0x11,%zmm19,%zmm11,%zmm1 + vpclmulqdq $0x00,%zmm19,%zmm11,%zmm9 + vpclmulqdq $0x01,%zmm19,%zmm11,%zmm10 + vpclmulqdq $0x10,%zmm19,%zmm11,%zmm12 + vmovdqu64 576(%rsp),%zmm19 + vpclmulqdq $0x11,%zmm19,%zmm3,%zmm13 + vpclmulqdq $0x00,%zmm19,%zmm3,%zmm15 + vpclmulqdq $0x01,%zmm19,%zmm3,%zmm17 + vpclmulqdq $0x10,%zmm19,%zmm3,%zmm18 + vpternlogq $0x96,%zmm17,%zmm10,%zmm7 + vpternlogq $0x96,%zmm13,%zmm1,%zmm6 + vpternlogq $0x96,%zmm15,%zmm9,%zmm8 + vpternlogq $0x96,%zmm18,%zmm12,%zmm7 + vmovdqu64 640(%rsp),%zmm19 + vpclmulqdq $0x11,%zmm19,%zmm4,%zmm1 + vpclmulqdq $0x00,%zmm19,%zmm4,%zmm9 + vpclmulqdq $0x01,%zmm19,%zmm4,%zmm10 + vpclmulqdq $0x10,%zmm19,%zmm4,%zmm12 + vmovdqu64 704(%rsp),%zmm19 + vpclmulqdq $0x11,%zmm19,%zmm5,%zmm13 + vpclmulqdq $0x00,%zmm19,%zmm5,%zmm15 + vpclmulqdq $0x01,%zmm19,%zmm5,%zmm17 + vpclmulqdq $0x10,%zmm19,%zmm5,%zmm18 + + vpternlogq $0x96,%zmm17,%zmm10,%zmm7 + vpternlogq $0x96,%zmm13,%zmm1,%zmm6 + vpternlogq $0x96,%zmm15,%zmm9,%zmm8 + vpternlogq $0x96,%zmm18,%zmm12,%zmm7 + + vpsrldq $8,%zmm7,%zmm1 + vpslldq $8,%zmm7,%zmm9 + vpxorq %zmm1,%zmm6,%zmm6 + vpxorq %zmm9,%zmm8,%zmm8 + vextracti64x4 $1,%zmm6,%ymm1 + vpxorq %ymm1,%ymm6,%ymm6 + vextracti32x4 $1,%ymm6,%xmm1 + vpxorq %xmm1,%xmm6,%xmm6 + vextracti64x4 $1,%zmm8,%ymm9 + vpxorq %ymm9,%ymm8,%ymm8 + vextracti32x4 $1,%ymm8,%xmm9 + vpxorq %xmm9,%xmm8,%xmm8 + vmovdqa64 POLY2(%rip),%xmm10 + + + vpclmulqdq $0x01,%xmm8,%xmm10,%xmm1 + vpslldq $8,%xmm1,%xmm1 + vpxorq %xmm1,%xmm8,%xmm1 + + + vpclmulqdq $0x00,%xmm1,%xmm10,%xmm9 + vpsrldq $4,%xmm9,%xmm9 + vpclmulqdq $0x10,%xmm1,%xmm10,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm6,%xmm9,%xmm14 + + subq $768,%r11 + je .L_CALC_AAD_done_6 + + addq $768,%r10 + jmp .L_get_AAD_loop48x16_6 + +.L_exit_AAD_loop48x16_6: + + cmpq $512,%r11 + jl .L_less_than_32x16_6 + + vmovdqu64 0(%r10),%zmm11 + vmovdqu64 64(%r10),%zmm3 + vmovdqu64 128(%r10),%zmm4 + vmovdqu64 192(%r10),%zmm5 + vpshufb %zmm16,%zmm11,%zmm11 + vpshufb %zmm16,%zmm3,%zmm3 + vpshufb %zmm16,%zmm4,%zmm4 + vpshufb %zmm16,%zmm5,%zmm5 + testq %rbx,%rbx + jnz .L_skip_hkeys_precomputation_8 + + vmovdqu64 288(%rdi),%zmm1 + vmovdqu64 %zmm1,704(%rsp) + + vmovdqu64 224(%rdi),%zmm9 + vmovdqu64 %zmm9,640(%rsp) + + + vshufi64x2 $0x00,%zmm9,%zmm9,%zmm9 + + vmovdqu64 160(%rdi),%zmm10 + vmovdqu64 %zmm10,576(%rsp) + + vmovdqu64 96(%rdi),%zmm12 + vmovdqu64 %zmm12,512(%rsp) + + vpclmulqdq $0x11,%zmm9,%zmm10,%zmm13 + vpclmulqdq $0x00,%zmm9,%zmm10,%zmm15 + vpclmulqdq $0x01,%zmm9,%zmm10,%zmm17 + vpclmulqdq $0x10,%zmm9,%zmm10,%zmm10 + vpxorq %zmm17,%zmm10,%zmm10 + + vpsrldq $8,%zmm10,%zmm17 + vpslldq $8,%zmm10,%zmm10 + vpxorq %zmm17,%zmm13,%zmm13 + vpxorq %zmm15,%zmm10,%zmm10 + + + + vmovdqu64 POLY2(%rip),%zmm17 + + vpclmulqdq $0x01,%zmm10,%zmm17,%zmm15 + vpslldq $8,%zmm15,%zmm15 + vpxorq %zmm15,%zmm10,%zmm10 + + + + vpclmulqdq $0x00,%zmm10,%zmm17,%zmm15 + vpsrldq $4,%zmm15,%zmm15 + vpclmulqdq $0x10,%zmm10,%zmm17,%zmm10 + vpslldq $4,%zmm10,%zmm10 + + vpternlogq $0x96,%zmm15,%zmm13,%zmm10 + + vmovdqu64 %zmm10,448(%rsp) + + vpclmulqdq $0x11,%zmm9,%zmm12,%zmm13 + vpclmulqdq $0x00,%zmm9,%zmm12,%zmm15 + vpclmulqdq $0x01,%zmm9,%zmm12,%zmm17 + vpclmulqdq $0x10,%zmm9,%zmm12,%zmm12 + vpxorq %zmm17,%zmm12,%zmm12 + + vpsrldq $8,%zmm12,%zmm17 + vpslldq $8,%zmm12,%zmm12 + vpxorq %zmm17,%zmm13,%zmm13 + vpxorq %zmm15,%zmm12,%zmm12 + + + + vmovdqu64 POLY2(%rip),%zmm17 + + vpclmulqdq $0x01,%zmm12,%zmm17,%zmm15 + vpslldq $8,%zmm15,%zmm15 + vpxorq %zmm15,%zmm12,%zmm12 + + + + vpclmulqdq $0x00,%zmm12,%zmm17,%zmm15 + vpsrldq $4,%zmm15,%zmm15 + vpclmulqdq $0x10,%zmm12,%zmm17,%zmm12 + vpslldq $4,%zmm12,%zmm12 + + vpternlogq $0x96,%zmm15,%zmm13,%zmm12 + + vmovdqu64 %zmm12,384(%rsp) + + vpclmulqdq $0x11,%zmm9,%zmm10,%zmm13 + vpclmulqdq $0x00,%zmm9,%zmm10,%zmm15 + vpclmulqdq $0x01,%zmm9,%zmm10,%zmm17 + vpclmulqdq $0x10,%zmm9,%zmm10,%zmm10 + vpxorq %zmm17,%zmm10,%zmm10 + + vpsrldq $8,%zmm10,%zmm17 + vpslldq $8,%zmm10,%zmm10 + vpxorq %zmm17,%zmm13,%zmm13 + vpxorq %zmm15,%zmm10,%zmm10 + + + + vmovdqu64 POLY2(%rip),%zmm17 + + vpclmulqdq $0x01,%zmm10,%zmm17,%zmm15 + vpslldq $8,%zmm15,%zmm15 + vpxorq %zmm15,%zmm10,%zmm10 + + + + vpclmulqdq $0x00,%zmm10,%zmm17,%zmm15 + vpsrldq $4,%zmm15,%zmm15 + vpclmulqdq $0x10,%zmm10,%zmm17,%zmm10 + vpslldq $4,%zmm10,%zmm10 + + vpternlogq $0x96,%zmm15,%zmm13,%zmm10 + + vmovdqu64 %zmm10,320(%rsp) + + vpclmulqdq $0x11,%zmm9,%zmm12,%zmm13 + vpclmulqdq $0x00,%zmm9,%zmm12,%zmm15 + vpclmulqdq $0x01,%zmm9,%zmm12,%zmm17 + vpclmulqdq $0x10,%zmm9,%zmm12,%zmm12 + vpxorq %zmm17,%zmm12,%zmm12 + + vpsrldq $8,%zmm12,%zmm17 + vpslldq $8,%zmm12,%zmm12 + vpxorq %zmm17,%zmm13,%zmm13 + vpxorq %zmm15,%zmm12,%zmm12 + + + + vmovdqu64 POLY2(%rip),%zmm17 + + vpclmulqdq $0x01,%zmm12,%zmm17,%zmm15 + vpslldq $8,%zmm15,%zmm15 + vpxorq %zmm15,%zmm12,%zmm12 + + + + vpclmulqdq $0x00,%zmm12,%zmm17,%zmm15 + vpsrldq $4,%zmm15,%zmm15 + vpclmulqdq $0x10,%zmm12,%zmm17,%zmm12 + vpslldq $4,%zmm12,%zmm12 + + vpternlogq $0x96,%zmm15,%zmm13,%zmm12 + + vmovdqu64 %zmm12,256(%rsp) +.L_skip_hkeys_precomputation_8: + movq $1,%rbx + vpxorq %zmm14,%zmm11,%zmm11 + vmovdqu64 256(%rsp),%zmm19 + vpclmulqdq $0x11,%zmm19,%zmm11,%zmm1 + vpclmulqdq $0x00,%zmm19,%zmm11,%zmm9 + vpclmulqdq $0x01,%zmm19,%zmm11,%zmm10 + vpclmulqdq $0x10,%zmm19,%zmm11,%zmm12 + vmovdqu64 320(%rsp),%zmm19 + vpclmulqdq $0x11,%zmm19,%zmm3,%zmm13 + vpclmulqdq $0x00,%zmm19,%zmm3,%zmm15 + vpclmulqdq $0x01,%zmm19,%zmm3,%zmm17 + vpclmulqdq $0x10,%zmm19,%zmm3,%zmm18 + vpxorq %zmm17,%zmm10,%zmm7 + vpxorq %zmm13,%zmm1,%zmm6 + vpxorq %zmm15,%zmm9,%zmm8 + vpternlogq $0x96,%zmm18,%zmm12,%zmm7 + vmovdqu64 384(%rsp),%zmm19 + vpclmulqdq $0x11,%zmm19,%zmm4,%zmm1 + vpclmulqdq $0x00,%zmm19,%zmm4,%zmm9 + vpclmulqdq $0x01,%zmm19,%zmm4,%zmm10 + vpclmulqdq $0x10,%zmm19,%zmm4,%zmm12 + vmovdqu64 448(%rsp),%zmm19 + vpclmulqdq $0x11,%zmm19,%zmm5,%zmm13 + vpclmulqdq $0x00,%zmm19,%zmm5,%zmm15 + vpclmulqdq $0x01,%zmm19,%zmm5,%zmm17 + vpclmulqdq $0x10,%zmm19,%zmm5,%zmm18 + + vpternlogq $0x96,%zmm17,%zmm10,%zmm7 + vpternlogq $0x96,%zmm13,%zmm1,%zmm6 + vpternlogq $0x96,%zmm15,%zmm9,%zmm8 + vpternlogq $0x96,%zmm18,%zmm12,%zmm7 + vmovdqu64 256(%r10),%zmm11 + vmovdqu64 320(%r10),%zmm3 + vmovdqu64 384(%r10),%zmm4 + vmovdqu64 448(%r10),%zmm5 + vpshufb %zmm16,%zmm11,%zmm11 + vpshufb %zmm16,%zmm3,%zmm3 + vpshufb %zmm16,%zmm4,%zmm4 + vpshufb %zmm16,%zmm5,%zmm5 + vmovdqu64 512(%rsp),%zmm19 + vpclmulqdq $0x11,%zmm19,%zmm11,%zmm1 + vpclmulqdq $0x00,%zmm19,%zmm11,%zmm9 + vpclmulqdq $0x01,%zmm19,%zmm11,%zmm10 + vpclmulqdq $0x10,%zmm19,%zmm11,%zmm12 + vmovdqu64 576(%rsp),%zmm19 + vpclmulqdq $0x11,%zmm19,%zmm3,%zmm13 + vpclmulqdq $0x00,%zmm19,%zmm3,%zmm15 + vpclmulqdq $0x01,%zmm19,%zmm3,%zmm17 + vpclmulqdq $0x10,%zmm19,%zmm3,%zmm18 + vpternlogq $0x96,%zmm17,%zmm10,%zmm7 + vpternlogq $0x96,%zmm13,%zmm1,%zmm6 + vpternlogq $0x96,%zmm15,%zmm9,%zmm8 + vpternlogq $0x96,%zmm18,%zmm12,%zmm7 + vmovdqu64 640(%rsp),%zmm19 + vpclmulqdq $0x11,%zmm19,%zmm4,%zmm1 + vpclmulqdq $0x00,%zmm19,%zmm4,%zmm9 + vpclmulqdq $0x01,%zmm19,%zmm4,%zmm10 + vpclmulqdq $0x10,%zmm19,%zmm4,%zmm12 + vmovdqu64 704(%rsp),%zmm19 + vpclmulqdq $0x11,%zmm19,%zmm5,%zmm13 + vpclmulqdq $0x00,%zmm19,%zmm5,%zmm15 + vpclmulqdq $0x01,%zmm19,%zmm5,%zmm17 + vpclmulqdq $0x10,%zmm19,%zmm5,%zmm18 + + vpternlogq $0x96,%zmm17,%zmm10,%zmm7 + vpternlogq $0x96,%zmm13,%zmm1,%zmm6 + vpternlogq $0x96,%zmm15,%zmm9,%zmm8 + vpternlogq $0x96,%zmm18,%zmm12,%zmm7 + + vpsrldq $8,%zmm7,%zmm1 + vpslldq $8,%zmm7,%zmm9 + vpxorq %zmm1,%zmm6,%zmm6 + vpxorq %zmm9,%zmm8,%zmm8 + vextracti64x4 $1,%zmm6,%ymm1 + vpxorq %ymm1,%ymm6,%ymm6 + vextracti32x4 $1,%ymm6,%xmm1 + vpxorq %xmm1,%xmm6,%xmm6 + vextracti64x4 $1,%zmm8,%ymm9 + vpxorq %ymm9,%ymm8,%ymm8 + vextracti32x4 $1,%ymm8,%xmm9 + vpxorq %xmm9,%xmm8,%xmm8 + vmovdqa64 POLY2(%rip),%xmm10 + + + vpclmulqdq $0x01,%xmm8,%xmm10,%xmm1 + vpslldq $8,%xmm1,%xmm1 + vpxorq %xmm1,%xmm8,%xmm1 + + + vpclmulqdq $0x00,%xmm1,%xmm10,%xmm9 + vpsrldq $4,%xmm9,%xmm9 + vpclmulqdq $0x10,%xmm1,%xmm10,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm6,%xmm9,%xmm14 + + subq $512,%r11 + je .L_CALC_AAD_done_6 + + addq $512,%r10 + jmp .L_less_than_16x16_6 + +.L_less_than_32x16_6: + cmpq $256,%r11 + jl .L_less_than_16x16_6 + + vmovdqu64 0(%r10),%zmm11 + vmovdqu64 64(%r10),%zmm3 + vmovdqu64 128(%r10),%zmm4 + vmovdqu64 192(%r10),%zmm5 + vpshufb %zmm16,%zmm11,%zmm11 + vpshufb %zmm16,%zmm3,%zmm3 + vpshufb %zmm16,%zmm4,%zmm4 + vpshufb %zmm16,%zmm5,%zmm5 + vpxorq %zmm14,%zmm11,%zmm11 + vmovdqu64 96(%rdi),%zmm19 + vpclmulqdq $0x11,%zmm19,%zmm11,%zmm1 + vpclmulqdq $0x00,%zmm19,%zmm11,%zmm9 + vpclmulqdq $0x01,%zmm19,%zmm11,%zmm10 + vpclmulqdq $0x10,%zmm19,%zmm11,%zmm12 + vmovdqu64 160(%rdi),%zmm19 + vpclmulqdq $0x11,%zmm19,%zmm3,%zmm13 + vpclmulqdq $0x00,%zmm19,%zmm3,%zmm15 + vpclmulqdq $0x01,%zmm19,%zmm3,%zmm17 + vpclmulqdq $0x10,%zmm19,%zmm3,%zmm18 + vpxorq %zmm17,%zmm10,%zmm7 + vpxorq %zmm13,%zmm1,%zmm6 + vpxorq %zmm15,%zmm9,%zmm8 + vpternlogq $0x96,%zmm18,%zmm12,%zmm7 + vmovdqu64 224(%rdi),%zmm19 + vpclmulqdq $0x11,%zmm19,%zmm4,%zmm1 + vpclmulqdq $0x00,%zmm19,%zmm4,%zmm9 + vpclmulqdq $0x01,%zmm19,%zmm4,%zmm10 + vpclmulqdq $0x10,%zmm19,%zmm4,%zmm12 + vmovdqu64 288(%rdi),%zmm19 + vpclmulqdq $0x11,%zmm19,%zmm5,%zmm13 + vpclmulqdq $0x00,%zmm19,%zmm5,%zmm15 + vpclmulqdq $0x01,%zmm19,%zmm5,%zmm17 + vpclmulqdq $0x10,%zmm19,%zmm5,%zmm18 + + vpternlogq $0x96,%zmm17,%zmm10,%zmm7 + vpternlogq $0x96,%zmm13,%zmm1,%zmm6 + vpternlogq $0x96,%zmm15,%zmm9,%zmm8 + vpternlogq $0x96,%zmm18,%zmm12,%zmm7 + + vpsrldq $8,%zmm7,%zmm1 + vpslldq $8,%zmm7,%zmm9 + vpxorq %zmm1,%zmm6,%zmm6 + vpxorq %zmm9,%zmm8,%zmm8 + vextracti64x4 $1,%zmm6,%ymm1 + vpxorq %ymm1,%ymm6,%ymm6 + vextracti32x4 $1,%ymm6,%xmm1 + vpxorq %xmm1,%xmm6,%xmm6 + vextracti64x4 $1,%zmm8,%ymm9 + vpxorq %ymm9,%ymm8,%ymm8 + vextracti32x4 $1,%ymm8,%xmm9 + vpxorq %xmm9,%xmm8,%xmm8 + vmovdqa64 POLY2(%rip),%xmm10 + + + vpclmulqdq $0x01,%xmm8,%xmm10,%xmm1 + vpslldq $8,%xmm1,%xmm1 + vpxorq %xmm1,%xmm8,%xmm1 + + + vpclmulqdq $0x00,%xmm1,%xmm10,%xmm9 + vpsrldq $4,%xmm9,%xmm9 + vpclmulqdq $0x10,%xmm1,%xmm10,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm6,%xmm9,%xmm14 + + subq $256,%r11 + je .L_CALC_AAD_done_6 + + addq $256,%r10 + +.L_less_than_16x16_6: + + leaq byte64_len_to_mask_table(%rip),%r12 + leaq (%r12,%r11,8),%r12 + + + addl $15,%r11d + shrl $4,%r11d + cmpl $2,%r11d + jb .L_AAD_blocks_1_6 + je .L_AAD_blocks_2_6 + cmpl $4,%r11d + jb .L_AAD_blocks_3_6 + je .L_AAD_blocks_4_6 + cmpl $6,%r11d + jb .L_AAD_blocks_5_6 + je .L_AAD_blocks_6_6 + cmpl $8,%r11d + jb .L_AAD_blocks_7_6 + je .L_AAD_blocks_8_6 + cmpl $10,%r11d + jb .L_AAD_blocks_9_6 + je .L_AAD_blocks_10_6 + cmpl $12,%r11d + jb .L_AAD_blocks_11_6 + je .L_AAD_blocks_12_6 + cmpl $14,%r11d + jb .L_AAD_blocks_13_6 + je .L_AAD_blocks_14_6 + cmpl $15,%r11d + je .L_AAD_blocks_15_6 +.L_AAD_blocks_16_6: + subq $1536,%r12 + kmovq (%r12),%k1 + vmovdqu8 0(%r10),%zmm11 + vmovdqu8 64(%r10),%zmm3 + vmovdqu8 128(%r10),%zmm4 + vmovdqu8 192(%r10),%zmm5{%k1}{z} + vpshufb %zmm16,%zmm11,%zmm11 + vpshufb %zmm16,%zmm3,%zmm3 + vpshufb %zmm16,%zmm4,%zmm4 + vpshufb %zmm16,%zmm5,%zmm5 + vpxorq %zmm14,%zmm11,%zmm11 + vmovdqu64 96(%rdi),%zmm15 + vpclmulqdq $0x11,%zmm15,%zmm11,%zmm1 + vpclmulqdq $0x00,%zmm15,%zmm11,%zmm6 + vpclmulqdq $0x01,%zmm15,%zmm11,%zmm7 + vpclmulqdq $0x10,%zmm15,%zmm11,%zmm8 + vmovdqu64 160(%rdi),%zmm15 + vpclmulqdq $0x11,%zmm15,%zmm3,%zmm9 + vpclmulqdq $0x00,%zmm15,%zmm3,%zmm10 + vpclmulqdq $0x01,%zmm15,%zmm3,%zmm12 + vpclmulqdq $0x10,%zmm15,%zmm3,%zmm13 + vmovdqu64 224(%rdi),%zmm15 + vpclmulqdq $0x11,%zmm15,%zmm4,%zmm11 + vpclmulqdq $0x00,%zmm15,%zmm4,%zmm3 + vpternlogq $0x96,%zmm9,%zmm11,%zmm1 + vpternlogq $0x96,%zmm10,%zmm3,%zmm6 + vpclmulqdq $0x01,%zmm15,%zmm4,%zmm11 + vpclmulqdq $0x10,%zmm15,%zmm4,%zmm3 + vpternlogq $0x96,%zmm12,%zmm11,%zmm7 + vpternlogq $0x96,%zmm13,%zmm3,%zmm8 + vmovdqu64 288(%rdi),%zmm15 + vpclmulqdq $0x11,%zmm15,%zmm5,%zmm9 + vpclmulqdq $0x00,%zmm15,%zmm5,%zmm10 + vpclmulqdq $0x01,%zmm15,%zmm5,%zmm12 + vpclmulqdq $0x10,%zmm15,%zmm5,%zmm13 + vpxorq %zmm9,%zmm1,%zmm9 + vpxorq %zmm10,%zmm6,%zmm10 + vpxorq %zmm12,%zmm7,%zmm12 + vpxorq %zmm13,%zmm8,%zmm13 + + vpxorq %zmm13,%zmm12,%zmm12 + vpsrldq $8,%zmm12,%zmm7 + vpslldq $8,%zmm12,%zmm8 + vpxorq %zmm7,%zmm9,%zmm1 + vpxorq %zmm8,%zmm10,%zmm6 + vextracti64x4 $1,%zmm1,%ymm12 + vpxorq %ymm12,%ymm1,%ymm1 + vextracti32x4 $1,%ymm1,%xmm12 + vpxorq %xmm12,%xmm1,%xmm1 + vextracti64x4 $1,%zmm6,%ymm13 + vpxorq %ymm13,%ymm6,%ymm6 + vextracti32x4 $1,%ymm6,%xmm13 + vpxorq %xmm13,%xmm6,%xmm6 + vmovdqa64 POLY2(%rip),%xmm15 + + + vpclmulqdq $0x01,%xmm6,%xmm15,%xmm7 + vpslldq $8,%xmm7,%xmm7 + vpxorq %xmm7,%xmm6,%xmm7 + + + vpclmulqdq $0x00,%xmm7,%xmm15,%xmm8 + vpsrldq $4,%xmm8,%xmm8 + vpclmulqdq $0x10,%xmm7,%xmm15,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm1,%xmm8,%xmm14 + + jmp .L_CALC_AAD_done_6 +.L_AAD_blocks_15_6: + subq $1536,%r12 + kmovq (%r12),%k1 + vmovdqu8 0(%r10),%zmm11 + vmovdqu8 64(%r10),%zmm3 + vmovdqu8 128(%r10),%zmm4 + vmovdqu8 192(%r10),%zmm5{%k1}{z} + vpshufb %zmm16,%zmm11,%zmm11 + vpshufb %zmm16,%zmm3,%zmm3 + vpshufb %zmm16,%zmm4,%zmm4 + vpshufb %zmm16,%zmm5,%zmm5 + vpxorq %zmm14,%zmm11,%zmm11 + vmovdqu64 112(%rdi),%zmm15 + vpclmulqdq $0x11,%zmm15,%zmm11,%zmm1 + vpclmulqdq $0x00,%zmm15,%zmm11,%zmm6 + vpclmulqdq $0x01,%zmm15,%zmm11,%zmm7 + vpclmulqdq $0x10,%zmm15,%zmm11,%zmm8 + vmovdqu64 176(%rdi),%zmm15 + vpclmulqdq $0x11,%zmm15,%zmm3,%zmm9 + vpclmulqdq $0x00,%zmm15,%zmm3,%zmm10 + vpclmulqdq $0x01,%zmm15,%zmm3,%zmm12 + vpclmulqdq $0x10,%zmm15,%zmm3,%zmm13 + vmovdqu64 240(%rdi),%zmm15 + vpclmulqdq $0x11,%zmm15,%zmm4,%zmm11 + vpclmulqdq $0x00,%zmm15,%zmm4,%zmm3 + vpternlogq $0x96,%zmm1,%zmm11,%zmm9 + vpternlogq $0x96,%zmm6,%zmm3,%zmm10 + vpclmulqdq $0x01,%zmm15,%zmm4,%zmm11 + vpclmulqdq $0x10,%zmm15,%zmm4,%zmm3 + vpternlogq $0x96,%zmm7,%zmm11,%zmm12 + vpternlogq $0x96,%zmm8,%zmm3,%zmm13 + vmovdqu64 304(%rdi),%ymm15 + vinserti64x2 $2,336(%rdi),%zmm15,%zmm15 + vpclmulqdq $0x01,%zmm15,%zmm5,%zmm7 + vpclmulqdq $0x10,%zmm15,%zmm5,%zmm8 + vpclmulqdq $0x11,%zmm15,%zmm5,%zmm1 + vpclmulqdq $0x00,%zmm15,%zmm5,%zmm6 + + vpxorq %zmm12,%zmm7,%zmm7 + vpxorq %zmm13,%zmm8,%zmm8 + vpxorq %zmm9,%zmm1,%zmm1 + vpxorq %zmm10,%zmm6,%zmm6 + + vpxorq %zmm8,%zmm7,%zmm7 + vpsrldq $8,%zmm7,%zmm12 + vpslldq $8,%zmm7,%zmm13 + vpxorq %zmm12,%zmm1,%zmm1 + vpxorq %zmm13,%zmm6,%zmm6 + vextracti64x4 $1,%zmm1,%ymm12 + vpxorq %ymm12,%ymm1,%ymm1 + vextracti32x4 $1,%ymm1,%xmm12 + vpxorq %xmm12,%xmm1,%xmm1 + vextracti64x4 $1,%zmm6,%ymm13 + vpxorq %ymm13,%ymm6,%ymm6 + vextracti32x4 $1,%ymm6,%xmm13 + vpxorq %xmm13,%xmm6,%xmm6 + vmovdqa64 POLY2(%rip),%xmm15 + + + vpclmulqdq $0x01,%xmm6,%xmm15,%xmm7 + vpslldq $8,%xmm7,%xmm7 + vpxorq %xmm7,%xmm6,%xmm7 + + + vpclmulqdq $0x00,%xmm7,%xmm15,%xmm8 + vpsrldq $4,%xmm8,%xmm8 + vpclmulqdq $0x10,%xmm7,%xmm15,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm1,%xmm8,%xmm14 + + jmp .L_CALC_AAD_done_6 +.L_AAD_blocks_14_6: + subq $1536,%r12 + kmovq (%r12),%k1 + vmovdqu8 0(%r10),%zmm11 + vmovdqu8 64(%r10),%zmm3 + vmovdqu8 128(%r10),%zmm4 + vmovdqu8 192(%r10),%ymm5{%k1}{z} + vpshufb %zmm16,%zmm11,%zmm11 + vpshufb %zmm16,%zmm3,%zmm3 + vpshufb %zmm16,%zmm4,%zmm4 + vpshufb %ymm16,%ymm5,%ymm5 + vpxorq %zmm14,%zmm11,%zmm11 + vmovdqu64 128(%rdi),%zmm15 + vpclmulqdq $0x11,%zmm15,%zmm11,%zmm1 + vpclmulqdq $0x00,%zmm15,%zmm11,%zmm6 + vpclmulqdq $0x01,%zmm15,%zmm11,%zmm7 + vpclmulqdq $0x10,%zmm15,%zmm11,%zmm8 + vmovdqu64 192(%rdi),%zmm15 + vpclmulqdq $0x11,%zmm15,%zmm3,%zmm9 + vpclmulqdq $0x00,%zmm15,%zmm3,%zmm10 + vpclmulqdq $0x01,%zmm15,%zmm3,%zmm12 + vpclmulqdq $0x10,%zmm15,%zmm3,%zmm13 + vmovdqu64 256(%rdi),%zmm15 + vpclmulqdq $0x11,%zmm15,%zmm4,%zmm11 + vpclmulqdq $0x00,%zmm15,%zmm4,%zmm3 + vpternlogq $0x96,%zmm1,%zmm11,%zmm9 + vpternlogq $0x96,%zmm6,%zmm3,%zmm10 + vpclmulqdq $0x01,%zmm15,%zmm4,%zmm11 + vpclmulqdq $0x10,%zmm15,%zmm4,%zmm3 + vpternlogq $0x96,%zmm7,%zmm11,%zmm12 + vpternlogq $0x96,%zmm8,%zmm3,%zmm13 + vmovdqu64 320(%rdi),%ymm15 + vpclmulqdq $0x01,%ymm15,%ymm5,%ymm7 + vpclmulqdq $0x10,%ymm15,%ymm5,%ymm8 + vpclmulqdq $0x11,%ymm15,%ymm5,%ymm1 + vpclmulqdq $0x00,%ymm15,%ymm5,%ymm6 + + vpxorq %zmm12,%zmm7,%zmm7 + vpxorq %zmm13,%zmm8,%zmm8 + vpxorq %zmm9,%zmm1,%zmm1 + vpxorq %zmm10,%zmm6,%zmm6 + + vpxorq %zmm8,%zmm7,%zmm7 + vpsrldq $8,%zmm7,%zmm12 + vpslldq $8,%zmm7,%zmm13 + vpxorq %zmm12,%zmm1,%zmm1 + vpxorq %zmm13,%zmm6,%zmm6 + vextracti64x4 $1,%zmm1,%ymm12 + vpxorq %ymm12,%ymm1,%ymm1 + vextracti32x4 $1,%ymm1,%xmm12 + vpxorq %xmm12,%xmm1,%xmm1 + vextracti64x4 $1,%zmm6,%ymm13 + vpxorq %ymm13,%ymm6,%ymm6 + vextracti32x4 $1,%ymm6,%xmm13 + vpxorq %xmm13,%xmm6,%xmm6 + vmovdqa64 POLY2(%rip),%xmm15 + + + vpclmulqdq $0x01,%xmm6,%xmm15,%xmm7 + vpslldq $8,%xmm7,%xmm7 + vpxorq %xmm7,%xmm6,%xmm7 + + + vpclmulqdq $0x00,%xmm7,%xmm15,%xmm8 + vpsrldq $4,%xmm8,%xmm8 + vpclmulqdq $0x10,%xmm7,%xmm15,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm1,%xmm8,%xmm14 + + jmp .L_CALC_AAD_done_6 +.L_AAD_blocks_13_6: + subq $1536,%r12 + kmovq (%r12),%k1 + vmovdqu8 0(%r10),%zmm11 + vmovdqu8 64(%r10),%zmm3 + vmovdqu8 128(%r10),%zmm4 + vmovdqu8 192(%r10),%xmm5{%k1}{z} + vpshufb %zmm16,%zmm11,%zmm11 + vpshufb %zmm16,%zmm3,%zmm3 + vpshufb %zmm16,%zmm4,%zmm4 + vpshufb %xmm16,%xmm5,%xmm5 + vpxorq %zmm14,%zmm11,%zmm11 + vmovdqu64 144(%rdi),%zmm15 + vpclmulqdq $0x11,%zmm15,%zmm11,%zmm1 + vpclmulqdq $0x00,%zmm15,%zmm11,%zmm6 + vpclmulqdq $0x01,%zmm15,%zmm11,%zmm7 + vpclmulqdq $0x10,%zmm15,%zmm11,%zmm8 + vmovdqu64 208(%rdi),%zmm15 + vpclmulqdq $0x11,%zmm15,%zmm3,%zmm9 + vpclmulqdq $0x00,%zmm15,%zmm3,%zmm10 + vpclmulqdq $0x01,%zmm15,%zmm3,%zmm12 + vpclmulqdq $0x10,%zmm15,%zmm3,%zmm13 + vmovdqu64 272(%rdi),%zmm15 + vpclmulqdq $0x11,%zmm15,%zmm4,%zmm11 + vpclmulqdq $0x00,%zmm15,%zmm4,%zmm3 + vpternlogq $0x96,%zmm1,%zmm11,%zmm9 + vpternlogq $0x96,%zmm6,%zmm3,%zmm10 + vpclmulqdq $0x01,%zmm15,%zmm4,%zmm11 + vpclmulqdq $0x10,%zmm15,%zmm4,%zmm3 + vpternlogq $0x96,%zmm7,%zmm11,%zmm12 + vpternlogq $0x96,%zmm8,%zmm3,%zmm13 + vmovdqu64 336(%rdi),%xmm15 + vpclmulqdq $0x01,%xmm15,%xmm5,%xmm7 + vpclmulqdq $0x10,%xmm15,%xmm5,%xmm8 + vpclmulqdq $0x11,%xmm15,%xmm5,%xmm1 + vpclmulqdq $0x00,%xmm15,%xmm5,%xmm6 + + vpxorq %zmm12,%zmm7,%zmm7 + vpxorq %zmm13,%zmm8,%zmm8 + vpxorq %zmm9,%zmm1,%zmm1 + vpxorq %zmm10,%zmm6,%zmm6 + + vpxorq %zmm8,%zmm7,%zmm7 + vpsrldq $8,%zmm7,%zmm12 + vpslldq $8,%zmm7,%zmm13 + vpxorq %zmm12,%zmm1,%zmm1 + vpxorq %zmm13,%zmm6,%zmm6 + vextracti64x4 $1,%zmm1,%ymm12 + vpxorq %ymm12,%ymm1,%ymm1 + vextracti32x4 $1,%ymm1,%xmm12 + vpxorq %xmm12,%xmm1,%xmm1 + vextracti64x4 $1,%zmm6,%ymm13 + vpxorq %ymm13,%ymm6,%ymm6 + vextracti32x4 $1,%ymm6,%xmm13 + vpxorq %xmm13,%xmm6,%xmm6 + vmovdqa64 POLY2(%rip),%xmm15 + + + vpclmulqdq $0x01,%xmm6,%xmm15,%xmm7 + vpslldq $8,%xmm7,%xmm7 + vpxorq %xmm7,%xmm6,%xmm7 + + + vpclmulqdq $0x00,%xmm7,%xmm15,%xmm8 + vpsrldq $4,%xmm8,%xmm8 + vpclmulqdq $0x10,%xmm7,%xmm15,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm1,%xmm8,%xmm14 + + jmp .L_CALC_AAD_done_6 +.L_AAD_blocks_12_6: + subq $1024,%r12 + kmovq (%r12),%k1 + vmovdqu8 0(%r10),%zmm11 + vmovdqu8 64(%r10),%zmm3 + vmovdqu8 128(%r10),%zmm4{%k1}{z} + vpshufb %zmm16,%zmm11,%zmm11 + vpshufb %zmm16,%zmm3,%zmm3 + vpshufb %zmm16,%zmm4,%zmm4 + vpxorq %zmm14,%zmm11,%zmm11 + vmovdqu64 160(%rdi),%zmm15 + vpclmulqdq $0x11,%zmm15,%zmm11,%zmm1 + vpclmulqdq $0x00,%zmm15,%zmm11,%zmm6 + vpclmulqdq $0x01,%zmm15,%zmm11,%zmm7 + vpclmulqdq $0x10,%zmm15,%zmm11,%zmm8 + vmovdqu64 224(%rdi),%zmm15 + vpclmulqdq $0x11,%zmm15,%zmm3,%zmm9 + vpclmulqdq $0x00,%zmm15,%zmm3,%zmm10 + vpclmulqdq $0x01,%zmm15,%zmm3,%zmm12 + vpclmulqdq $0x10,%zmm15,%zmm3,%zmm13 + vmovdqu64 288(%rdi),%zmm15 + vpclmulqdq $0x11,%zmm15,%zmm4,%zmm11 + vpclmulqdq $0x00,%zmm15,%zmm4,%zmm3 + vpternlogq $0x96,%zmm1,%zmm11,%zmm9 + vpternlogq $0x96,%zmm6,%zmm3,%zmm10 + vpclmulqdq $0x01,%zmm15,%zmm4,%zmm11 + vpclmulqdq $0x10,%zmm15,%zmm4,%zmm3 + vpternlogq $0x96,%zmm7,%zmm11,%zmm12 + vpternlogq $0x96,%zmm8,%zmm3,%zmm13 + + vpxorq %zmm13,%zmm12,%zmm12 + vpsrldq $8,%zmm12,%zmm7 + vpslldq $8,%zmm12,%zmm8 + vpxorq %zmm7,%zmm9,%zmm1 + vpxorq %zmm8,%zmm10,%zmm6 + vextracti64x4 $1,%zmm1,%ymm12 + vpxorq %ymm12,%ymm1,%ymm1 + vextracti32x4 $1,%ymm1,%xmm12 + vpxorq %xmm12,%xmm1,%xmm1 + vextracti64x4 $1,%zmm6,%ymm13 + vpxorq %ymm13,%ymm6,%ymm6 + vextracti32x4 $1,%ymm6,%xmm13 + vpxorq %xmm13,%xmm6,%xmm6 + vmovdqa64 POLY2(%rip),%xmm15 + + + vpclmulqdq $0x01,%xmm6,%xmm15,%xmm7 + vpslldq $8,%xmm7,%xmm7 + vpxorq %xmm7,%xmm6,%xmm7 + + + vpclmulqdq $0x00,%xmm7,%xmm15,%xmm8 + vpsrldq $4,%xmm8,%xmm8 + vpclmulqdq $0x10,%xmm7,%xmm15,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm1,%xmm8,%xmm14 + + jmp .L_CALC_AAD_done_6 +.L_AAD_blocks_11_6: + subq $1024,%r12 + kmovq (%r12),%k1 + vmovdqu8 0(%r10),%zmm11 + vmovdqu8 64(%r10),%zmm3 + vmovdqu8 128(%r10),%zmm4{%k1}{z} + vpshufb %zmm16,%zmm11,%zmm11 + vpshufb %zmm16,%zmm3,%zmm3 + vpshufb %zmm16,%zmm4,%zmm4 + vpxorq %zmm14,%zmm11,%zmm11 + vmovdqu64 176(%rdi),%zmm15 + vpclmulqdq $0x11,%zmm15,%zmm11,%zmm1 + vpclmulqdq $0x00,%zmm15,%zmm11,%zmm6 + vpclmulqdq $0x01,%zmm15,%zmm11,%zmm7 + vpclmulqdq $0x10,%zmm15,%zmm11,%zmm8 + vmovdqu64 240(%rdi),%zmm15 + vpclmulqdq $0x11,%zmm15,%zmm3,%zmm9 + vpclmulqdq $0x00,%zmm15,%zmm3,%zmm10 + vpclmulqdq $0x01,%zmm15,%zmm3,%zmm12 + vpclmulqdq $0x10,%zmm15,%zmm3,%zmm13 + vpxorq %zmm9,%zmm1,%zmm9 + vpxorq %zmm10,%zmm6,%zmm10 + vpxorq %zmm12,%zmm7,%zmm12 + vpxorq %zmm13,%zmm8,%zmm13 + vmovdqu64 304(%rdi),%ymm15 + vinserti64x2 $2,336(%rdi),%zmm15,%zmm15 + vpclmulqdq $0x01,%zmm15,%zmm4,%zmm7 + vpclmulqdq $0x10,%zmm15,%zmm4,%zmm8 + vpclmulqdq $0x11,%zmm15,%zmm4,%zmm1 + vpclmulqdq $0x00,%zmm15,%zmm4,%zmm6 + + vpxorq %zmm12,%zmm7,%zmm7 + vpxorq %zmm13,%zmm8,%zmm8 + vpxorq %zmm9,%zmm1,%zmm1 + vpxorq %zmm10,%zmm6,%zmm6 + + vpxorq %zmm8,%zmm7,%zmm7 + vpsrldq $8,%zmm7,%zmm12 + vpslldq $8,%zmm7,%zmm13 + vpxorq %zmm12,%zmm1,%zmm1 + vpxorq %zmm13,%zmm6,%zmm6 + vextracti64x4 $1,%zmm1,%ymm12 + vpxorq %ymm12,%ymm1,%ymm1 + vextracti32x4 $1,%ymm1,%xmm12 + vpxorq %xmm12,%xmm1,%xmm1 + vextracti64x4 $1,%zmm6,%ymm13 + vpxorq %ymm13,%ymm6,%ymm6 + vextracti32x4 $1,%ymm6,%xmm13 + vpxorq %xmm13,%xmm6,%xmm6 + vmovdqa64 POLY2(%rip),%xmm15 + + + vpclmulqdq $0x01,%xmm6,%xmm15,%xmm7 + vpslldq $8,%xmm7,%xmm7 + vpxorq %xmm7,%xmm6,%xmm7 + + + vpclmulqdq $0x00,%xmm7,%xmm15,%xmm8 + vpsrldq $4,%xmm8,%xmm8 + vpclmulqdq $0x10,%xmm7,%xmm15,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm1,%xmm8,%xmm14 + + jmp .L_CALC_AAD_done_6 +.L_AAD_blocks_10_6: + subq $1024,%r12 + kmovq (%r12),%k1 + vmovdqu8 0(%r10),%zmm11 + vmovdqu8 64(%r10),%zmm3 + vmovdqu8 128(%r10),%ymm4{%k1}{z} + vpshufb %zmm16,%zmm11,%zmm11 + vpshufb %zmm16,%zmm3,%zmm3 + vpshufb %ymm16,%ymm4,%ymm4 + vpxorq %zmm14,%zmm11,%zmm11 + vmovdqu64 192(%rdi),%zmm15 + vpclmulqdq $0x11,%zmm15,%zmm11,%zmm1 + vpclmulqdq $0x00,%zmm15,%zmm11,%zmm6 + vpclmulqdq $0x01,%zmm15,%zmm11,%zmm7 + vpclmulqdq $0x10,%zmm15,%zmm11,%zmm8 + vmovdqu64 256(%rdi),%zmm15 + vpclmulqdq $0x11,%zmm15,%zmm3,%zmm9 + vpclmulqdq $0x00,%zmm15,%zmm3,%zmm10 + vpclmulqdq $0x01,%zmm15,%zmm3,%zmm12 + vpclmulqdq $0x10,%zmm15,%zmm3,%zmm13 + vpxorq %zmm9,%zmm1,%zmm9 + vpxorq %zmm10,%zmm6,%zmm10 + vpxorq %zmm12,%zmm7,%zmm12 + vpxorq %zmm13,%zmm8,%zmm13 + vmovdqu64 320(%rdi),%ymm15 + vpclmulqdq $0x01,%ymm15,%ymm4,%ymm7 + vpclmulqdq $0x10,%ymm15,%ymm4,%ymm8 + vpclmulqdq $0x11,%ymm15,%ymm4,%ymm1 + vpclmulqdq $0x00,%ymm15,%ymm4,%ymm6 + + vpxorq %zmm12,%zmm7,%zmm7 + vpxorq %zmm13,%zmm8,%zmm8 + vpxorq %zmm9,%zmm1,%zmm1 + vpxorq %zmm10,%zmm6,%zmm6 + + vpxorq %zmm8,%zmm7,%zmm7 + vpsrldq $8,%zmm7,%zmm12 + vpslldq $8,%zmm7,%zmm13 + vpxorq %zmm12,%zmm1,%zmm1 + vpxorq %zmm13,%zmm6,%zmm6 + vextracti64x4 $1,%zmm1,%ymm12 + vpxorq %ymm12,%ymm1,%ymm1 + vextracti32x4 $1,%ymm1,%xmm12 + vpxorq %xmm12,%xmm1,%xmm1 + vextracti64x4 $1,%zmm6,%ymm13 + vpxorq %ymm13,%ymm6,%ymm6 + vextracti32x4 $1,%ymm6,%xmm13 + vpxorq %xmm13,%xmm6,%xmm6 + vmovdqa64 POLY2(%rip),%xmm15 + + + vpclmulqdq $0x01,%xmm6,%xmm15,%xmm7 + vpslldq $8,%xmm7,%xmm7 + vpxorq %xmm7,%xmm6,%xmm7 + + + vpclmulqdq $0x00,%xmm7,%xmm15,%xmm8 + vpsrldq $4,%xmm8,%xmm8 + vpclmulqdq $0x10,%xmm7,%xmm15,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm1,%xmm8,%xmm14 + + jmp .L_CALC_AAD_done_6 +.L_AAD_blocks_9_6: + subq $1024,%r12 + kmovq (%r12),%k1 + vmovdqu8 0(%r10),%zmm11 + vmovdqu8 64(%r10),%zmm3 + vmovdqu8 128(%r10),%xmm4{%k1}{z} + vpshufb %zmm16,%zmm11,%zmm11 + vpshufb %zmm16,%zmm3,%zmm3 + vpshufb %xmm16,%xmm4,%xmm4 + vpxorq %zmm14,%zmm11,%zmm11 + vmovdqu64 208(%rdi),%zmm15 + vpclmulqdq $0x11,%zmm15,%zmm11,%zmm1 + vpclmulqdq $0x00,%zmm15,%zmm11,%zmm6 + vpclmulqdq $0x01,%zmm15,%zmm11,%zmm7 + vpclmulqdq $0x10,%zmm15,%zmm11,%zmm8 + vmovdqu64 272(%rdi),%zmm15 + vpclmulqdq $0x11,%zmm15,%zmm3,%zmm9 + vpclmulqdq $0x00,%zmm15,%zmm3,%zmm10 + vpclmulqdq $0x01,%zmm15,%zmm3,%zmm12 + vpclmulqdq $0x10,%zmm15,%zmm3,%zmm13 + vpxorq %zmm9,%zmm1,%zmm9 + vpxorq %zmm10,%zmm6,%zmm10 + vpxorq %zmm12,%zmm7,%zmm12 + vpxorq %zmm13,%zmm8,%zmm13 + vmovdqu64 336(%rdi),%xmm15 + vpclmulqdq $0x01,%xmm15,%xmm4,%xmm7 + vpclmulqdq $0x10,%xmm15,%xmm4,%xmm8 + vpclmulqdq $0x11,%xmm15,%xmm4,%xmm1 + vpclmulqdq $0x00,%xmm15,%xmm4,%xmm6 + + vpxorq %zmm12,%zmm7,%zmm7 + vpxorq %zmm13,%zmm8,%zmm8 + vpxorq %zmm9,%zmm1,%zmm1 + vpxorq %zmm10,%zmm6,%zmm6 + + vpxorq %zmm8,%zmm7,%zmm7 + vpsrldq $8,%zmm7,%zmm12 + vpslldq $8,%zmm7,%zmm13 + vpxorq %zmm12,%zmm1,%zmm1 + vpxorq %zmm13,%zmm6,%zmm6 + vextracti64x4 $1,%zmm1,%ymm12 + vpxorq %ymm12,%ymm1,%ymm1 + vextracti32x4 $1,%ymm1,%xmm12 + vpxorq %xmm12,%xmm1,%xmm1 + vextracti64x4 $1,%zmm6,%ymm13 + vpxorq %ymm13,%ymm6,%ymm6 + vextracti32x4 $1,%ymm6,%xmm13 + vpxorq %xmm13,%xmm6,%xmm6 + vmovdqa64 POLY2(%rip),%xmm15 + + + vpclmulqdq $0x01,%xmm6,%xmm15,%xmm7 + vpslldq $8,%xmm7,%xmm7 + vpxorq %xmm7,%xmm6,%xmm7 + + + vpclmulqdq $0x00,%xmm7,%xmm15,%xmm8 + vpsrldq $4,%xmm8,%xmm8 + vpclmulqdq $0x10,%xmm7,%xmm15,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm1,%xmm8,%xmm14 + + jmp .L_CALC_AAD_done_6 +.L_AAD_blocks_8_6: + subq $512,%r12 + kmovq (%r12),%k1 + vmovdqu8 0(%r10),%zmm11 + vmovdqu8 64(%r10),%zmm3{%k1}{z} + vpshufb %zmm16,%zmm11,%zmm11 + vpshufb %zmm16,%zmm3,%zmm3 + vpxorq %zmm14,%zmm11,%zmm11 + vmovdqu64 224(%rdi),%zmm15 + vpclmulqdq $0x11,%zmm15,%zmm11,%zmm1 + vpclmulqdq $0x00,%zmm15,%zmm11,%zmm6 + vpclmulqdq $0x01,%zmm15,%zmm11,%zmm7 + vpclmulqdq $0x10,%zmm15,%zmm11,%zmm8 + vmovdqu64 288(%rdi),%zmm15 + vpclmulqdq $0x11,%zmm15,%zmm3,%zmm9 + vpclmulqdq $0x00,%zmm15,%zmm3,%zmm10 + vpclmulqdq $0x01,%zmm15,%zmm3,%zmm12 + vpclmulqdq $0x10,%zmm15,%zmm3,%zmm13 + vpxorq %zmm9,%zmm1,%zmm9 + vpxorq %zmm10,%zmm6,%zmm10 + vpxorq %zmm12,%zmm7,%zmm12 + vpxorq %zmm13,%zmm8,%zmm13 + + vpxorq %zmm13,%zmm12,%zmm12 + vpsrldq $8,%zmm12,%zmm7 + vpslldq $8,%zmm12,%zmm8 + vpxorq %zmm7,%zmm9,%zmm1 + vpxorq %zmm8,%zmm10,%zmm6 + vextracti64x4 $1,%zmm1,%ymm12 + vpxorq %ymm12,%ymm1,%ymm1 + vextracti32x4 $1,%ymm1,%xmm12 + vpxorq %xmm12,%xmm1,%xmm1 + vextracti64x4 $1,%zmm6,%ymm13 + vpxorq %ymm13,%ymm6,%ymm6 + vextracti32x4 $1,%ymm6,%xmm13 + vpxorq %xmm13,%xmm6,%xmm6 + vmovdqa64 POLY2(%rip),%xmm15 + + + vpclmulqdq $0x01,%xmm6,%xmm15,%xmm7 + vpslldq $8,%xmm7,%xmm7 + vpxorq %xmm7,%xmm6,%xmm7 + + + vpclmulqdq $0x00,%xmm7,%xmm15,%xmm8 + vpsrldq $4,%xmm8,%xmm8 + vpclmulqdq $0x10,%xmm7,%xmm15,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm1,%xmm8,%xmm14 + + jmp .L_CALC_AAD_done_6 +.L_AAD_blocks_7_6: + subq $512,%r12 + kmovq (%r12),%k1 + vmovdqu8 0(%r10),%zmm11 + vmovdqu8 64(%r10),%zmm3{%k1}{z} + vpshufb %zmm16,%zmm11,%zmm11 + vpshufb %zmm16,%zmm3,%zmm3 + vpxorq %zmm14,%zmm11,%zmm11 + vmovdqu64 240(%rdi),%zmm15 + vpclmulqdq $0x11,%zmm15,%zmm11,%zmm9 + vpclmulqdq $0x00,%zmm15,%zmm11,%zmm10 + vpclmulqdq $0x01,%zmm15,%zmm11,%zmm12 + vpclmulqdq $0x10,%zmm15,%zmm11,%zmm13 + vmovdqu64 304(%rdi),%ymm15 + vinserti64x2 $2,336(%rdi),%zmm15,%zmm15 + vpclmulqdq $0x01,%zmm15,%zmm3,%zmm7 + vpclmulqdq $0x10,%zmm15,%zmm3,%zmm8 + vpclmulqdq $0x11,%zmm15,%zmm3,%zmm1 + vpclmulqdq $0x00,%zmm15,%zmm3,%zmm6 + + vpxorq %zmm12,%zmm7,%zmm7 + vpxorq %zmm13,%zmm8,%zmm8 + vpxorq %zmm9,%zmm1,%zmm1 + vpxorq %zmm10,%zmm6,%zmm6 + + vpxorq %zmm8,%zmm7,%zmm7 + vpsrldq $8,%zmm7,%zmm12 + vpslldq $8,%zmm7,%zmm13 + vpxorq %zmm12,%zmm1,%zmm1 + vpxorq %zmm13,%zmm6,%zmm6 + vextracti64x4 $1,%zmm1,%ymm12 + vpxorq %ymm12,%ymm1,%ymm1 + vextracti32x4 $1,%ymm1,%xmm12 + vpxorq %xmm12,%xmm1,%xmm1 + vextracti64x4 $1,%zmm6,%ymm13 + vpxorq %ymm13,%ymm6,%ymm6 + vextracti32x4 $1,%ymm6,%xmm13 + vpxorq %xmm13,%xmm6,%xmm6 + vmovdqa64 POLY2(%rip),%xmm15 + + + vpclmulqdq $0x01,%xmm6,%xmm15,%xmm7 + vpslldq $8,%xmm7,%xmm7 + vpxorq %xmm7,%xmm6,%xmm7 + + + vpclmulqdq $0x00,%xmm7,%xmm15,%xmm8 + vpsrldq $4,%xmm8,%xmm8 + vpclmulqdq $0x10,%xmm7,%xmm15,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm1,%xmm8,%xmm14 + + jmp .L_CALC_AAD_done_6 +.L_AAD_blocks_6_6: + subq $512,%r12 + kmovq (%r12),%k1 + vmovdqu8 0(%r10),%zmm11 + vmovdqu8 64(%r10),%ymm3{%k1}{z} + vpshufb %zmm16,%zmm11,%zmm11 + vpshufb %ymm16,%ymm3,%ymm3 + vpxorq %zmm14,%zmm11,%zmm11 + vmovdqu64 256(%rdi),%zmm15 + vpclmulqdq $0x11,%zmm15,%zmm11,%zmm9 + vpclmulqdq $0x00,%zmm15,%zmm11,%zmm10 + vpclmulqdq $0x01,%zmm15,%zmm11,%zmm12 + vpclmulqdq $0x10,%zmm15,%zmm11,%zmm13 + vmovdqu64 320(%rdi),%ymm15 + vpclmulqdq $0x01,%ymm15,%ymm3,%ymm7 + vpclmulqdq $0x10,%ymm15,%ymm3,%ymm8 + vpclmulqdq $0x11,%ymm15,%ymm3,%ymm1 + vpclmulqdq $0x00,%ymm15,%ymm3,%ymm6 + + vpxorq %zmm12,%zmm7,%zmm7 + vpxorq %zmm13,%zmm8,%zmm8 + vpxorq %zmm9,%zmm1,%zmm1 + vpxorq %zmm10,%zmm6,%zmm6 + + vpxorq %zmm8,%zmm7,%zmm7 + vpsrldq $8,%zmm7,%zmm12 + vpslldq $8,%zmm7,%zmm13 + vpxorq %zmm12,%zmm1,%zmm1 + vpxorq %zmm13,%zmm6,%zmm6 + vextracti64x4 $1,%zmm1,%ymm12 + vpxorq %ymm12,%ymm1,%ymm1 + vextracti32x4 $1,%ymm1,%xmm12 + vpxorq %xmm12,%xmm1,%xmm1 + vextracti64x4 $1,%zmm6,%ymm13 + vpxorq %ymm13,%ymm6,%ymm6 + vextracti32x4 $1,%ymm6,%xmm13 + vpxorq %xmm13,%xmm6,%xmm6 + vmovdqa64 POLY2(%rip),%xmm15 + + + vpclmulqdq $0x01,%xmm6,%xmm15,%xmm7 + vpslldq $8,%xmm7,%xmm7 + vpxorq %xmm7,%xmm6,%xmm7 + + + vpclmulqdq $0x00,%xmm7,%xmm15,%xmm8 + vpsrldq $4,%xmm8,%xmm8 + vpclmulqdq $0x10,%xmm7,%xmm15,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm1,%xmm8,%xmm14 + + jmp .L_CALC_AAD_done_6 +.L_AAD_blocks_5_6: + subq $512,%r12 + kmovq (%r12),%k1 + vmovdqu8 0(%r10),%zmm11 + vmovdqu8 64(%r10),%xmm3{%k1}{z} + vpshufb %zmm16,%zmm11,%zmm11 + vpshufb %xmm16,%xmm3,%xmm3 + vpxorq %zmm14,%zmm11,%zmm11 + vmovdqu64 272(%rdi),%zmm15 + vpclmulqdq $0x11,%zmm15,%zmm11,%zmm9 + vpclmulqdq $0x00,%zmm15,%zmm11,%zmm10 + vpclmulqdq $0x01,%zmm15,%zmm11,%zmm12 + vpclmulqdq $0x10,%zmm15,%zmm11,%zmm13 + vmovdqu64 336(%rdi),%xmm15 + vpclmulqdq $0x01,%xmm15,%xmm3,%xmm7 + vpclmulqdq $0x10,%xmm15,%xmm3,%xmm8 + vpclmulqdq $0x11,%xmm15,%xmm3,%xmm1 + vpclmulqdq $0x00,%xmm15,%xmm3,%xmm6 + + vpxorq %zmm12,%zmm7,%zmm7 + vpxorq %zmm13,%zmm8,%zmm8 + vpxorq %zmm9,%zmm1,%zmm1 + vpxorq %zmm10,%zmm6,%zmm6 + + vpxorq %zmm8,%zmm7,%zmm7 + vpsrldq $8,%zmm7,%zmm12 + vpslldq $8,%zmm7,%zmm13 + vpxorq %zmm12,%zmm1,%zmm1 + vpxorq %zmm13,%zmm6,%zmm6 + vextracti64x4 $1,%zmm1,%ymm12 + vpxorq %ymm12,%ymm1,%ymm1 + vextracti32x4 $1,%ymm1,%xmm12 + vpxorq %xmm12,%xmm1,%xmm1 + vextracti64x4 $1,%zmm6,%ymm13 + vpxorq %ymm13,%ymm6,%ymm6 + vextracti32x4 $1,%ymm6,%xmm13 + vpxorq %xmm13,%xmm6,%xmm6 + vmovdqa64 POLY2(%rip),%xmm15 + + + vpclmulqdq $0x01,%xmm6,%xmm15,%xmm7 + vpslldq $8,%xmm7,%xmm7 + vpxorq %xmm7,%xmm6,%xmm7 + + + vpclmulqdq $0x00,%xmm7,%xmm15,%xmm8 + vpsrldq $4,%xmm8,%xmm8 + vpclmulqdq $0x10,%xmm7,%xmm15,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm1,%xmm8,%xmm14 + + jmp .L_CALC_AAD_done_6 +.L_AAD_blocks_4_6: + kmovq (%r12),%k1 + vmovdqu8 0(%r10),%zmm11{%k1}{z} + vpshufb %zmm16,%zmm11,%zmm11 + vpxorq %zmm14,%zmm11,%zmm11 + vmovdqu64 288(%rdi),%zmm15 + vpclmulqdq $0x11,%zmm15,%zmm11,%zmm9 + vpclmulqdq $0x00,%zmm15,%zmm11,%zmm10 + vpclmulqdq $0x01,%zmm15,%zmm11,%zmm12 + vpclmulqdq $0x10,%zmm15,%zmm11,%zmm13 + + vpxorq %zmm13,%zmm12,%zmm12 + vpsrldq $8,%zmm12,%zmm7 + vpslldq $8,%zmm12,%zmm8 + vpxorq %zmm7,%zmm9,%zmm1 + vpxorq %zmm8,%zmm10,%zmm6 + vextracti64x4 $1,%zmm1,%ymm12 + vpxorq %ymm12,%ymm1,%ymm1 + vextracti32x4 $1,%ymm1,%xmm12 + vpxorq %xmm12,%xmm1,%xmm1 + vextracti64x4 $1,%zmm6,%ymm13 + vpxorq %ymm13,%ymm6,%ymm6 + vextracti32x4 $1,%ymm6,%xmm13 + vpxorq %xmm13,%xmm6,%xmm6 + vmovdqa64 POLY2(%rip),%xmm15 + + + vpclmulqdq $0x01,%xmm6,%xmm15,%xmm7 + vpslldq $8,%xmm7,%xmm7 + vpxorq %xmm7,%xmm6,%xmm7 + + + vpclmulqdq $0x00,%xmm7,%xmm15,%xmm8 + vpsrldq $4,%xmm8,%xmm8 + vpclmulqdq $0x10,%xmm7,%xmm15,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm1,%xmm8,%xmm14 + + jmp .L_CALC_AAD_done_6 +.L_AAD_blocks_3_6: + kmovq (%r12),%k1 + vmovdqu8 0(%r10),%zmm11{%k1}{z} + vpshufb %zmm16,%zmm11,%zmm11 + vpxorq %zmm14,%zmm11,%zmm11 + vmovdqu64 304(%rdi),%ymm15 + vinserti64x2 $2,336(%rdi),%zmm15,%zmm15 + vpclmulqdq $0x01,%zmm15,%zmm11,%zmm7 + vpclmulqdq $0x10,%zmm15,%zmm11,%zmm8 + vpclmulqdq $0x11,%zmm15,%zmm11,%zmm1 + vpclmulqdq $0x00,%zmm15,%zmm11,%zmm6 + + vpxorq %zmm8,%zmm7,%zmm7 + vpsrldq $8,%zmm7,%zmm12 + vpslldq $8,%zmm7,%zmm13 + vpxorq %zmm12,%zmm1,%zmm1 + vpxorq %zmm13,%zmm6,%zmm6 + vextracti64x4 $1,%zmm1,%ymm12 + vpxorq %ymm12,%ymm1,%ymm1 + vextracti32x4 $1,%ymm1,%xmm12 + vpxorq %xmm12,%xmm1,%xmm1 + vextracti64x4 $1,%zmm6,%ymm13 + vpxorq %ymm13,%ymm6,%ymm6 + vextracti32x4 $1,%ymm6,%xmm13 + vpxorq %xmm13,%xmm6,%xmm6 + vmovdqa64 POLY2(%rip),%xmm15 + + + vpclmulqdq $0x01,%xmm6,%xmm15,%xmm7 + vpslldq $8,%xmm7,%xmm7 + vpxorq %xmm7,%xmm6,%xmm7 + + + vpclmulqdq $0x00,%xmm7,%xmm15,%xmm8 + vpsrldq $4,%xmm8,%xmm8 + vpclmulqdq $0x10,%xmm7,%xmm15,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm1,%xmm8,%xmm14 + + jmp .L_CALC_AAD_done_6 +.L_AAD_blocks_2_6: + kmovq (%r12),%k1 + vmovdqu8 0(%r10),%ymm11{%k1}{z} + vpshufb %ymm16,%ymm11,%ymm11 + vpxorq %zmm14,%zmm11,%zmm11 + vmovdqu64 320(%rdi),%ymm15 + vpclmulqdq $0x01,%ymm15,%ymm11,%ymm7 + vpclmulqdq $0x10,%ymm15,%ymm11,%ymm8 + vpclmulqdq $0x11,%ymm15,%ymm11,%ymm1 + vpclmulqdq $0x00,%ymm15,%ymm11,%ymm6 + + vpxorq %zmm8,%zmm7,%zmm7 + vpsrldq $8,%zmm7,%zmm12 + vpslldq $8,%zmm7,%zmm13 + vpxorq %zmm12,%zmm1,%zmm1 + vpxorq %zmm13,%zmm6,%zmm6 + vextracti64x4 $1,%zmm1,%ymm12 + vpxorq %ymm12,%ymm1,%ymm1 + vextracti32x4 $1,%ymm1,%xmm12 + vpxorq %xmm12,%xmm1,%xmm1 + vextracti64x4 $1,%zmm6,%ymm13 + vpxorq %ymm13,%ymm6,%ymm6 + vextracti32x4 $1,%ymm6,%xmm13 + vpxorq %xmm13,%xmm6,%xmm6 + vmovdqa64 POLY2(%rip),%xmm15 + + + vpclmulqdq $0x01,%xmm6,%xmm15,%xmm7 + vpslldq $8,%xmm7,%xmm7 + vpxorq %xmm7,%xmm6,%xmm7 + + + vpclmulqdq $0x00,%xmm7,%xmm15,%xmm8 + vpsrldq $4,%xmm8,%xmm8 + vpclmulqdq $0x10,%xmm7,%xmm15,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm1,%xmm8,%xmm14 + + jmp .L_CALC_AAD_done_6 +.L_AAD_blocks_1_6: + kmovq (%r12),%k1 + vmovdqu8 0(%r10),%xmm11{%k1}{z} + vpshufb %xmm16,%xmm11,%xmm11 + vpxorq %zmm14,%zmm11,%zmm11 + vmovdqu64 336(%rdi),%xmm15 + vpclmulqdq $0x01,%xmm15,%xmm11,%xmm7 + vpclmulqdq $0x10,%xmm15,%xmm11,%xmm8 + vpclmulqdq $0x11,%xmm15,%xmm11,%xmm1 + vpclmulqdq $0x00,%xmm15,%xmm11,%xmm6 + + vpxorq %zmm8,%zmm7,%zmm7 + vpsrldq $8,%zmm7,%zmm12 + vpslldq $8,%zmm7,%zmm13 + vpxorq %zmm12,%zmm1,%zmm1 + vpxorq %zmm13,%zmm6,%zmm6 + vextracti64x4 $1,%zmm1,%ymm12 + vpxorq %ymm12,%ymm1,%ymm1 + vextracti32x4 $1,%ymm1,%xmm12 + vpxorq %xmm12,%xmm1,%xmm1 + vextracti64x4 $1,%zmm6,%ymm13 + vpxorq %ymm13,%ymm6,%ymm6 + vextracti32x4 $1,%ymm6,%xmm13 + vpxorq %xmm13,%xmm6,%xmm6 + vmovdqa64 POLY2(%rip),%xmm15 + + + vpclmulqdq $0x01,%xmm6,%xmm15,%xmm7 + vpslldq $8,%xmm7,%xmm7 + vpxorq %xmm7,%xmm6,%xmm7 + + + vpclmulqdq $0x00,%xmm7,%xmm15,%xmm8 + vpsrldq $4,%xmm8,%xmm8 + vpclmulqdq $0x10,%xmm7,%xmm15,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm1,%xmm8,%xmm14 + +.L_CALC_AAD_done_6: + vmovdqu64 %xmm14,64(%rdi) + cmpq $256,%rdx + jbe .Lskip_hkeys_cleanup_9 + vpxor %xmm0,%xmm0,%xmm0 + vmovdqa64 %zmm0,0(%rsp) + vmovdqa64 %zmm0,64(%rsp) + vmovdqa64 %zmm0,128(%rsp) + vmovdqa64 %zmm0,192(%rsp) + vmovdqa64 %zmm0,256(%rsp) + vmovdqa64 %zmm0,320(%rsp) + vmovdqa64 %zmm0,384(%rsp) + vmovdqa64 %zmm0,448(%rsp) + vmovdqa64 %zmm0,512(%rsp) + vmovdqa64 %zmm0,576(%rsp) + vmovdqa64 %zmm0,640(%rsp) + vmovdqa64 %zmm0,704(%rsp) +.Lskip_hkeys_cleanup_9: + vzeroupper + leaq (%rbp),%rsp +.cfi_def_cfa_register %rsp + popq %r15 +.cfi_adjust_cfa_offset -8 +.cfi_restore %r15 + popq %r14 +.cfi_adjust_cfa_offset -8 +.cfi_restore %r14 + popq %r13 +.cfi_adjust_cfa_offset -8 +.cfi_restore %r13 + popq %r12 +.cfi_adjust_cfa_offset -8 +.cfi_restore %r12 + popq %rbp +.cfi_adjust_cfa_offset -8 +.cfi_restore %rbp + popq %rbx +.cfi_adjust_cfa_offset -8 +.cfi_restore %rbx +.Lexit_update_aad: + .byte 0xf3,0xc3 +.Lghash_seh_end: +.cfi_endproc +.size ossl_aes_gcm_update_aad_avx512, .-ossl_aes_gcm_update_aad_avx512 +.globl ossl_aes_gcm_encrypt_avx512 +.type ossl_aes_gcm_encrypt_avx512,@function +.align 32 +ossl_aes_gcm_encrypt_avx512: +.cfi_startproc +.Lencrypt_seh_begin: +.byte 243,15,30,250 + pushq %rbx +.cfi_adjust_cfa_offset 8 +.cfi_offset %rbx,-16 +.Lencrypt_seh_push_rbx: + pushq %rbp +.cfi_adjust_cfa_offset 8 +.cfi_offset %rbp,-24 +.Lencrypt_seh_push_rbp: + pushq %r12 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r12,-32 +.Lencrypt_seh_push_r12: + pushq %r13 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r13,-40 +.Lencrypt_seh_push_r13: + pushq %r14 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r14,-48 +.Lencrypt_seh_push_r14: + pushq %r15 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r15,-56 +.Lencrypt_seh_push_r15: + + + + + + + + + + + leaq 0(%rsp),%rbp +.cfi_def_cfa_register %rbp +.Lencrypt_seh_setfp: + +.Lencrypt_seh_prolog_end: + subq $1588,%rsp + andq $(-64),%rsp + + + movl 240(%rdi),%eax + cmpl $9,%eax + je .Laes_gcm_encrypt_128_avx512 + cmpl $11,%eax + je .Laes_gcm_encrypt_192_avx512 + cmpl $13,%eax + je .Laes_gcm_encrypt_256_avx512 + xorl %eax,%eax + jmp .Lexit_gcm_encrypt +.align 32 +.Laes_gcm_encrypt_128_avx512: + orq %r8,%r8 + je .L_enc_dec_done_10 + xorq %r14,%r14 + vmovdqu64 64(%rsi),%xmm14 + + movq (%rdx),%r11 + orq %r11,%r11 + je .L_partial_block_done_11 + movl $16,%r10d + leaq byte_len_to_mask_table(%rip),%r12 + cmpq %r10,%r8 + cmovcq %r8,%r10 + kmovw (%r12,%r10,2),%k1 + vmovdqu8 (%rcx),%xmm0{%k1}{z} + + vmovdqu64 16(%rsi),%xmm3 + vmovdqu64 336(%rsi),%xmm4 + + + + leaq SHIFT_MASK(%rip),%r12 + addq %r11,%r12 + vmovdqu64 (%r12),%xmm5 + vpshufb %xmm5,%xmm3,%xmm3 + vpxorq %xmm0,%xmm3,%xmm3 + + + leaq (%r8,%r11,1),%r13 + subq $16,%r13 + jge .L_no_extra_mask_11 + subq %r13,%r12 +.L_no_extra_mask_11: + + + + vmovdqu64 16(%r12),%xmm0 + vpand %xmm0,%xmm3,%xmm3 + vpshufb SHUF_MASK(%rip),%xmm3,%xmm3 + vpshufb %xmm5,%xmm3,%xmm3 + vpxorq %xmm3,%xmm14,%xmm14 + cmpq $0,%r13 + jl .L_partial_incomplete_11 + + vpclmulqdq $0x11,%xmm4,%xmm14,%xmm7 + vpclmulqdq $0x00,%xmm4,%xmm14,%xmm10 + vpclmulqdq $0x01,%xmm4,%xmm14,%xmm11 + vpclmulqdq $0x10,%xmm4,%xmm14,%xmm14 + vpxorq %xmm11,%xmm14,%xmm14 + + vpsrldq $8,%xmm14,%xmm11 + vpslldq $8,%xmm14,%xmm14 + vpxorq %xmm11,%xmm7,%xmm7 + vpxorq %xmm10,%xmm14,%xmm14 + + + + vmovdqu64 POLY2(%rip),%xmm11 + + vpclmulqdq $0x01,%xmm14,%xmm11,%xmm10 + vpslldq $8,%xmm10,%xmm10 + vpxorq %xmm10,%xmm14,%xmm14 + + + + vpclmulqdq $0x00,%xmm14,%xmm11,%xmm10 + vpsrldq $4,%xmm10,%xmm10 + vpclmulqdq $0x10,%xmm14,%xmm11,%xmm14 + vpslldq $4,%xmm14,%xmm14 + + vpternlogq $0x96,%xmm10,%xmm7,%xmm14 + + movq $0,(%rdx) + + movq %r11,%r12 + movq $16,%r11 + subq %r12,%r11 + jmp .L_enc_dec_done_11 + +.L_partial_incomplete_11: + addq %r8,(%rdx) + movq %r8,%r11 + +.L_enc_dec_done_11: + + + leaq byte_len_to_mask_table(%rip),%r12 + kmovw (%r12,%r11,2),%k1 + vmovdqu64 %xmm14,64(%rsi) + + vpshufb SHUF_MASK(%rip),%xmm3,%xmm3 + vpshufb %xmm5,%xmm3,%xmm3 + movq %r9,%r12 + vmovdqu8 %xmm3,(%r12){%k1} +.L_partial_block_done_11: + vmovdqu64 0(%rsi),%xmm2 + subq %r11,%r8 + je .L_enc_dec_done_10 + cmpq $256,%r8 + jbe .L_message_below_equal_16_blocks_10 + + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vmovdqa64 ddq_addbe_4444(%rip),%zmm27 + vmovdqa64 ddq_addbe_1234(%rip),%zmm28 + + + + + + + vmovd %xmm2,%r15d + andl $255,%r15d + + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpshufb %zmm29,%zmm2,%zmm2 + + + + cmpb $240,%r15b + jae .L_next_16_overflow_12 + vpaddd %zmm28,%zmm2,%zmm7 + vpaddd %zmm27,%zmm7,%zmm10 + vpaddd %zmm27,%zmm10,%zmm11 + vpaddd %zmm27,%zmm11,%zmm12 + jmp .L_next_16_ok_12 +.L_next_16_overflow_12: + vpshufb %zmm29,%zmm2,%zmm2 + vmovdqa64 ddq_add_4444(%rip),%zmm12 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm7 + vpaddd %zmm12,%zmm7,%zmm10 + vpaddd %zmm12,%zmm10,%zmm11 + vpaddd %zmm12,%zmm11,%zmm12 + vpshufb %zmm29,%zmm7,%zmm7 + vpshufb %zmm29,%zmm10,%zmm10 + vpshufb %zmm29,%zmm11,%zmm11 + vpshufb %zmm29,%zmm12,%zmm12 +.L_next_16_ok_12: + vshufi64x2 $255,%zmm12,%zmm12,%zmm2 + addb $16,%r15b + + vmovdqu8 0(%rcx,%r11,1),%zmm0 + vmovdqu8 64(%rcx,%r11,1),%zmm3 + vmovdqu8 128(%rcx,%r11,1),%zmm4 + vmovdqu8 192(%rcx,%r11,1),%zmm5 + + + vbroadcastf64x2 0(%rdi),%zmm6 + vpxorq %zmm6,%zmm7,%zmm7 + vpxorq %zmm6,%zmm10,%zmm10 + vpxorq %zmm6,%zmm11,%zmm11 + vpxorq %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 16(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 32(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 48(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 64(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 80(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 96(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 112(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 128(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 144(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 160(%rdi),%zmm6 + vaesenclast %zmm6,%zmm7,%zmm7 + vaesenclast %zmm6,%zmm10,%zmm10 + vaesenclast %zmm6,%zmm11,%zmm11 + vaesenclast %zmm6,%zmm12,%zmm12 + + + vpxorq %zmm0,%zmm7,%zmm7 + vpxorq %zmm3,%zmm10,%zmm10 + vpxorq %zmm4,%zmm11,%zmm11 + vpxorq %zmm5,%zmm12,%zmm12 + + + movq %r9,%r10 + vmovdqu8 %zmm7,0(%r10,%r11,1) + vmovdqu8 %zmm10,64(%r10,%r11,1) + vmovdqu8 %zmm11,128(%r10,%r11,1) + vmovdqu8 %zmm12,192(%r10,%r11,1) + + vpshufb %zmm29,%zmm7,%zmm7 + vpshufb %zmm29,%zmm10,%zmm10 + vpshufb %zmm29,%zmm11,%zmm11 + vpshufb %zmm29,%zmm12,%zmm12 + vmovdqa64 %zmm7,768(%rsp) + vmovdqa64 %zmm10,832(%rsp) + vmovdqa64 %zmm11,896(%rsp) + vmovdqa64 %zmm12,960(%rsp) + testq %r14,%r14 + jnz .L_skip_hkeys_precomputation_13 + + vmovdqu64 288(%rsi),%zmm0 + vmovdqu64 %zmm0,704(%rsp) + + vmovdqu64 224(%rsi),%zmm3 + vmovdqu64 %zmm3,640(%rsp) + + + vshufi64x2 $0x00,%zmm3,%zmm3,%zmm3 + + vmovdqu64 160(%rsi),%zmm4 + vmovdqu64 %zmm4,576(%rsp) + + vmovdqu64 96(%rsi),%zmm5 + vmovdqu64 %zmm5,512(%rsp) +.L_skip_hkeys_precomputation_13: + cmpq $512,%r8 + jb .L_message_below_32_blocks_10 + + + + cmpb $240,%r15b + jae .L_next_16_overflow_14 + vpaddd %zmm28,%zmm2,%zmm7 + vpaddd %zmm27,%zmm7,%zmm10 + vpaddd %zmm27,%zmm10,%zmm11 + vpaddd %zmm27,%zmm11,%zmm12 + jmp .L_next_16_ok_14 +.L_next_16_overflow_14: + vpshufb %zmm29,%zmm2,%zmm2 + vmovdqa64 ddq_add_4444(%rip),%zmm12 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm7 + vpaddd %zmm12,%zmm7,%zmm10 + vpaddd %zmm12,%zmm10,%zmm11 + vpaddd %zmm12,%zmm11,%zmm12 + vpshufb %zmm29,%zmm7,%zmm7 + vpshufb %zmm29,%zmm10,%zmm10 + vpshufb %zmm29,%zmm11,%zmm11 + vpshufb %zmm29,%zmm12,%zmm12 +.L_next_16_ok_14: + vshufi64x2 $255,%zmm12,%zmm12,%zmm2 + addb $16,%r15b + + vmovdqu8 256(%rcx,%r11,1),%zmm0 + vmovdqu8 320(%rcx,%r11,1),%zmm3 + vmovdqu8 384(%rcx,%r11,1),%zmm4 + vmovdqu8 448(%rcx,%r11,1),%zmm5 + + + vbroadcastf64x2 0(%rdi),%zmm6 + vpxorq %zmm6,%zmm7,%zmm7 + vpxorq %zmm6,%zmm10,%zmm10 + vpxorq %zmm6,%zmm11,%zmm11 + vpxorq %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 16(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 32(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 48(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 64(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 80(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 96(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 112(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 128(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 144(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 160(%rdi),%zmm6 + vaesenclast %zmm6,%zmm7,%zmm7 + vaesenclast %zmm6,%zmm10,%zmm10 + vaesenclast %zmm6,%zmm11,%zmm11 + vaesenclast %zmm6,%zmm12,%zmm12 + + + vpxorq %zmm0,%zmm7,%zmm7 + vpxorq %zmm3,%zmm10,%zmm10 + vpxorq %zmm4,%zmm11,%zmm11 + vpxorq %zmm5,%zmm12,%zmm12 + + + movq %r9,%r10 + vmovdqu8 %zmm7,256(%r10,%r11,1) + vmovdqu8 %zmm10,320(%r10,%r11,1) + vmovdqu8 %zmm11,384(%r10,%r11,1) + vmovdqu8 %zmm12,448(%r10,%r11,1) + + vpshufb %zmm29,%zmm7,%zmm7 + vpshufb %zmm29,%zmm10,%zmm10 + vpshufb %zmm29,%zmm11,%zmm11 + vpshufb %zmm29,%zmm12,%zmm12 + vmovdqa64 %zmm7,1024(%rsp) + vmovdqa64 %zmm10,1088(%rsp) + vmovdqa64 %zmm11,1152(%rsp) + vmovdqa64 %zmm12,1216(%rsp) + testq %r14,%r14 + jnz .L_skip_hkeys_precomputation_15 + vmovdqu64 640(%rsp),%zmm3 + + + vshufi64x2 $0x00,%zmm3,%zmm3,%zmm3 + + vmovdqu64 576(%rsp),%zmm4 + vmovdqu64 512(%rsp),%zmm5 + + vpclmulqdq $0x11,%zmm3,%zmm4,%zmm6 + vpclmulqdq $0x00,%zmm3,%zmm4,%zmm7 + vpclmulqdq $0x01,%zmm3,%zmm4,%zmm10 + vpclmulqdq $0x10,%zmm3,%zmm4,%zmm4 + vpxorq %zmm10,%zmm4,%zmm4 + + vpsrldq $8,%zmm4,%zmm10 + vpslldq $8,%zmm4,%zmm4 + vpxorq %zmm10,%zmm6,%zmm6 + vpxorq %zmm7,%zmm4,%zmm4 + + + + vmovdqu64 POLY2(%rip),%zmm10 + + vpclmulqdq $0x01,%zmm4,%zmm10,%zmm7 + vpslldq $8,%zmm7,%zmm7 + vpxorq %zmm7,%zmm4,%zmm4 + + + + vpclmulqdq $0x00,%zmm4,%zmm10,%zmm7 + vpsrldq $4,%zmm7,%zmm7 + vpclmulqdq $0x10,%zmm4,%zmm10,%zmm4 + vpslldq $4,%zmm4,%zmm4 + + vpternlogq $0x96,%zmm7,%zmm6,%zmm4 + + vmovdqu64 %zmm4,448(%rsp) + + vpclmulqdq $0x11,%zmm3,%zmm5,%zmm6 + vpclmulqdq $0x00,%zmm3,%zmm5,%zmm7 + vpclmulqdq $0x01,%zmm3,%zmm5,%zmm10 + vpclmulqdq $0x10,%zmm3,%zmm5,%zmm5 + vpxorq %zmm10,%zmm5,%zmm5 + + vpsrldq $8,%zmm5,%zmm10 + vpslldq $8,%zmm5,%zmm5 + vpxorq %zmm10,%zmm6,%zmm6 + vpxorq %zmm7,%zmm5,%zmm5 + + + + vmovdqu64 POLY2(%rip),%zmm10 + + vpclmulqdq $0x01,%zmm5,%zmm10,%zmm7 + vpslldq $8,%zmm7,%zmm7 + vpxorq %zmm7,%zmm5,%zmm5 + + + + vpclmulqdq $0x00,%zmm5,%zmm10,%zmm7 + vpsrldq $4,%zmm7,%zmm7 + vpclmulqdq $0x10,%zmm5,%zmm10,%zmm5 + vpslldq $4,%zmm5,%zmm5 + + vpternlogq $0x96,%zmm7,%zmm6,%zmm5 + + vmovdqu64 %zmm5,384(%rsp) + + vpclmulqdq $0x11,%zmm3,%zmm4,%zmm6 + vpclmulqdq $0x00,%zmm3,%zmm4,%zmm7 + vpclmulqdq $0x01,%zmm3,%zmm4,%zmm10 + vpclmulqdq $0x10,%zmm3,%zmm4,%zmm4 + vpxorq %zmm10,%zmm4,%zmm4 + + vpsrldq $8,%zmm4,%zmm10 + vpslldq $8,%zmm4,%zmm4 + vpxorq %zmm10,%zmm6,%zmm6 + vpxorq %zmm7,%zmm4,%zmm4 + + + + vmovdqu64 POLY2(%rip),%zmm10 + + vpclmulqdq $0x01,%zmm4,%zmm10,%zmm7 + vpslldq $8,%zmm7,%zmm7 + vpxorq %zmm7,%zmm4,%zmm4 + + + + vpclmulqdq $0x00,%zmm4,%zmm10,%zmm7 + vpsrldq $4,%zmm7,%zmm7 + vpclmulqdq $0x10,%zmm4,%zmm10,%zmm4 + vpslldq $4,%zmm4,%zmm4 + + vpternlogq $0x96,%zmm7,%zmm6,%zmm4 + + vmovdqu64 %zmm4,320(%rsp) + + vpclmulqdq $0x11,%zmm3,%zmm5,%zmm6 + vpclmulqdq $0x00,%zmm3,%zmm5,%zmm7 + vpclmulqdq $0x01,%zmm3,%zmm5,%zmm10 + vpclmulqdq $0x10,%zmm3,%zmm5,%zmm5 + vpxorq %zmm10,%zmm5,%zmm5 + + vpsrldq $8,%zmm5,%zmm10 + vpslldq $8,%zmm5,%zmm5 + vpxorq %zmm10,%zmm6,%zmm6 + vpxorq %zmm7,%zmm5,%zmm5 + + + + vmovdqu64 POLY2(%rip),%zmm10 + + vpclmulqdq $0x01,%zmm5,%zmm10,%zmm7 + vpslldq $8,%zmm7,%zmm7 + vpxorq %zmm7,%zmm5,%zmm5 + + + + vpclmulqdq $0x00,%zmm5,%zmm10,%zmm7 + vpsrldq $4,%zmm7,%zmm7 + vpclmulqdq $0x10,%zmm5,%zmm10,%zmm5 + vpslldq $4,%zmm5,%zmm5 + + vpternlogq $0x96,%zmm7,%zmm6,%zmm5 + + vmovdqu64 %zmm5,256(%rsp) + + vpclmulqdq $0x11,%zmm3,%zmm4,%zmm6 + vpclmulqdq $0x00,%zmm3,%zmm4,%zmm7 + vpclmulqdq $0x01,%zmm3,%zmm4,%zmm10 + vpclmulqdq $0x10,%zmm3,%zmm4,%zmm4 + vpxorq %zmm10,%zmm4,%zmm4 + + vpsrldq $8,%zmm4,%zmm10 + vpslldq $8,%zmm4,%zmm4 + vpxorq %zmm10,%zmm6,%zmm6 + vpxorq %zmm7,%zmm4,%zmm4 + + + + vmovdqu64 POLY2(%rip),%zmm10 + + vpclmulqdq $0x01,%zmm4,%zmm10,%zmm7 + vpslldq $8,%zmm7,%zmm7 + vpxorq %zmm7,%zmm4,%zmm4 + + + + vpclmulqdq $0x00,%zmm4,%zmm10,%zmm7 + vpsrldq $4,%zmm7,%zmm7 + vpclmulqdq $0x10,%zmm4,%zmm10,%zmm4 + vpslldq $4,%zmm4,%zmm4 + + vpternlogq $0x96,%zmm7,%zmm6,%zmm4 + + vmovdqu64 %zmm4,192(%rsp) + + vpclmulqdq $0x11,%zmm3,%zmm5,%zmm6 + vpclmulqdq $0x00,%zmm3,%zmm5,%zmm7 + vpclmulqdq $0x01,%zmm3,%zmm5,%zmm10 + vpclmulqdq $0x10,%zmm3,%zmm5,%zmm5 + vpxorq %zmm10,%zmm5,%zmm5 + + vpsrldq $8,%zmm5,%zmm10 + vpslldq $8,%zmm5,%zmm5 + vpxorq %zmm10,%zmm6,%zmm6 + vpxorq %zmm7,%zmm5,%zmm5 + + + + vmovdqu64 POLY2(%rip),%zmm10 + + vpclmulqdq $0x01,%zmm5,%zmm10,%zmm7 + vpslldq $8,%zmm7,%zmm7 + vpxorq %zmm7,%zmm5,%zmm5 + + + + vpclmulqdq $0x00,%zmm5,%zmm10,%zmm7 + vpsrldq $4,%zmm7,%zmm7 + vpclmulqdq $0x10,%zmm5,%zmm10,%zmm5 + vpslldq $4,%zmm5,%zmm5 + + vpternlogq $0x96,%zmm7,%zmm6,%zmm5 + + vmovdqu64 %zmm5,128(%rsp) + + vpclmulqdq $0x11,%zmm3,%zmm4,%zmm6 + vpclmulqdq $0x00,%zmm3,%zmm4,%zmm7 + vpclmulqdq $0x01,%zmm3,%zmm4,%zmm10 + vpclmulqdq $0x10,%zmm3,%zmm4,%zmm4 + vpxorq %zmm10,%zmm4,%zmm4 + + vpsrldq $8,%zmm4,%zmm10 + vpslldq $8,%zmm4,%zmm4 + vpxorq %zmm10,%zmm6,%zmm6 + vpxorq %zmm7,%zmm4,%zmm4 + + + + vmovdqu64 POLY2(%rip),%zmm10 + + vpclmulqdq $0x01,%zmm4,%zmm10,%zmm7 + vpslldq $8,%zmm7,%zmm7 + vpxorq %zmm7,%zmm4,%zmm4 + + + + vpclmulqdq $0x00,%zmm4,%zmm10,%zmm7 + vpsrldq $4,%zmm7,%zmm7 + vpclmulqdq $0x10,%zmm4,%zmm10,%zmm4 + vpslldq $4,%zmm4,%zmm4 + + vpternlogq $0x96,%zmm7,%zmm6,%zmm4 + + vmovdqu64 %zmm4,64(%rsp) + + vpclmulqdq $0x11,%zmm3,%zmm5,%zmm6 + vpclmulqdq $0x00,%zmm3,%zmm5,%zmm7 + vpclmulqdq $0x01,%zmm3,%zmm5,%zmm10 + vpclmulqdq $0x10,%zmm3,%zmm5,%zmm5 + vpxorq %zmm10,%zmm5,%zmm5 + + vpsrldq $8,%zmm5,%zmm10 + vpslldq $8,%zmm5,%zmm5 + vpxorq %zmm10,%zmm6,%zmm6 + vpxorq %zmm7,%zmm5,%zmm5 + + + + vmovdqu64 POLY2(%rip),%zmm10 + + vpclmulqdq $0x01,%zmm5,%zmm10,%zmm7 + vpslldq $8,%zmm7,%zmm7 + vpxorq %zmm7,%zmm5,%zmm5 + + + + vpclmulqdq $0x00,%zmm5,%zmm10,%zmm7 + vpsrldq $4,%zmm7,%zmm7 + vpclmulqdq $0x10,%zmm5,%zmm10,%zmm5 + vpslldq $4,%zmm5,%zmm5 + + vpternlogq $0x96,%zmm7,%zmm6,%zmm5 + + vmovdqu64 %zmm5,0(%rsp) +.L_skip_hkeys_precomputation_15: + movq $1,%r14 + addq $512,%r11 + subq $512,%r8 + + cmpq $768,%r8 + jb .L_no_more_big_nblocks_10 +.L_encrypt_big_nblocks_10: + cmpb $240,%r15b + jae .L_16_blocks_overflow_16 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp .L_16_blocks_ok_16 +.L_16_blocks_overflow_16: + vpshufb %zmm29,%zmm2,%zmm2 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +.L_16_blocks_ok_16: + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp),%zmm1 + + + + + vshufi64x2 $255,%zmm5,%zmm5,%zmm2 + addb $16,%r15b + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + + + + + + + + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm6 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm6 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + + + + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%zmm21 + + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm15,%zmm10,%zmm26 + vpxorq %zmm12,%zmm6,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + + + + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + + + + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %zmm5,192(%r10,%r11,1) + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 + vmovdqa64 %zmm0,1280(%rsp) + vmovdqa64 %zmm3,1344(%rsp) + vmovdqa64 %zmm4,1408(%rsp) + vmovdqa64 %zmm5,1472(%rsp) + cmpb $240,%r15b + jae .L_16_blocks_overflow_17 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp .L_16_blocks_ok_17 +.L_16_blocks_overflow_17: + vpshufb %zmm29,%zmm2,%zmm2 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +.L_16_blocks_ok_17: + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 256(%rsp),%zmm1 + + + + + vshufi64x2 $255,%zmm5,%zmm5,%zmm2 + addb $16,%r15b + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 320(%rsp),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + + + + + + + + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm6 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 384(%rsp),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 448(%rsp),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm6 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + + + + vmovdqu8 256(%rcx,%r11,1),%zmm17 + vmovdqu8 320(%rcx,%r11,1),%zmm19 + vmovdqu8 384(%rcx,%r11,1),%zmm20 + vmovdqu8 448(%rcx,%r11,1),%zmm21 + + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vpternlogq $0x96,%zmm12,%zmm6,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + + + + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + + + + movq %r9,%r10 + vmovdqu8 %zmm0,256(%r10,%r11,1) + vmovdqu8 %zmm3,320(%r10,%r11,1) + vmovdqu8 %zmm4,384(%r10,%r11,1) + vmovdqu8 %zmm5,448(%r10,%r11,1) + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 + vmovdqa64 %zmm0,768(%rsp) + vmovdqa64 %zmm3,832(%rsp) + vmovdqa64 %zmm4,896(%rsp) + vmovdqa64 %zmm5,960(%rsp) + cmpb $240,%r15b + jae .L_16_blocks_overflow_18 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp .L_16_blocks_ok_18 +.L_16_blocks_overflow_18: + vpshufb %zmm29,%zmm2,%zmm2 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +.L_16_blocks_ok_18: + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + + + + + vshufi64x2 $255,%zmm5,%zmm5,%zmm2 + addb $16,%r15b + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + + + + + + + + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm6 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm6 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + + + + vmovdqu8 512(%rcx,%r11,1),%zmm17 + vmovdqu8 576(%rcx,%r11,1),%zmm19 + vmovdqu8 640(%rcx,%r11,1),%zmm20 + vmovdqu8 704(%rcx,%r11,1),%zmm21 + + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + + + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vpternlogq $0x96,%zmm15,%zmm12,%zmm6 + vpxorq %zmm24,%zmm6,%zmm6 + vpternlogq $0x96,%zmm10,%zmm13,%zmm7 + vpxorq %zmm25,%zmm7,%zmm7 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vextracti64x4 $1,%zmm6,%ymm12 + vpxorq %ymm12,%ymm6,%ymm6 + vextracti32x4 $1,%ymm6,%xmm12 + vpxorq %xmm12,%xmm6,%xmm6 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm6 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + + + + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + + + + movq %r9,%r10 + vmovdqu8 %zmm0,512(%r10,%r11,1) + vmovdqu8 %zmm3,576(%r10,%r11,1) + vmovdqu8 %zmm4,640(%r10,%r11,1) + vmovdqu8 %zmm5,704(%r10,%r11,1) + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 + vmovdqa64 %zmm0,1024(%rsp) + vmovdqa64 %zmm3,1088(%rsp) + vmovdqa64 %zmm4,1152(%rsp) + vmovdqa64 %zmm5,1216(%rsp) + vmovdqa64 %zmm6,%zmm14 + + addq $768,%r11 + subq $768,%r8 + cmpq $768,%r8 + jae .L_encrypt_big_nblocks_10 + +.L_no_more_big_nblocks_10: + + cmpq $512,%r8 + jae .L_encrypt_32_blocks_10 + + cmpq $256,%r8 + jae .L_encrypt_16_blocks_10 +.L_encrypt_0_blocks_ghash_32_10: + movl %r8d,%r10d + andl $~15,%r10d + movl $256,%ebx + subl %r10d,%ebx + vmovdqa64 768(%rsp),%zmm13 + vpxorq %zmm14,%zmm13,%zmm13 + vmovdqu64 0(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 832(%rsp),%zmm13 + vmovdqu64 64(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + vpxorq %zmm10,%zmm4,%zmm26 + vpxorq %zmm6,%zmm0,%zmm24 + vpxorq %zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + vmovdqa64 896(%rsp),%zmm13 + vmovdqu64 128(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 960(%rsp),%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + + vpternlogq $0x96,%zmm10,%zmm4,%zmm26 + vpternlogq $0x96,%zmm6,%zmm0,%zmm24 + vpternlogq $0x96,%zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + addl $256,%ebx + movl %r8d,%r10d + addl $15,%r10d + shrl $4,%r10d + je .L_last_num_blocks_is_0_19 + + cmpl $8,%r10d + je .L_last_num_blocks_is_8_19 + jb .L_last_num_blocks_is_7_1_19 + + + cmpl $12,%r10d + je .L_last_num_blocks_is_12_19 + jb .L_last_num_blocks_is_11_9_19 + + + cmpl $15,%r10d + je .L_last_num_blocks_is_15_19 + ja .L_last_num_blocks_is_16_19 + cmpl $14,%r10d + je .L_last_num_blocks_is_14_19 + jmp .L_last_num_blocks_is_13_19 + +.L_last_num_blocks_is_11_9_19: + + cmpl $10,%r10d + je .L_last_num_blocks_is_10_19 + ja .L_last_num_blocks_is_11_19 + jmp .L_last_num_blocks_is_9_19 + +.L_last_num_blocks_is_7_1_19: + cmpl $4,%r10d + je .L_last_num_blocks_is_4_19 + jb .L_last_num_blocks_is_3_1_19 + + cmpl $6,%r10d + ja .L_last_num_blocks_is_7_19 + je .L_last_num_blocks_is_6_19 + jmp .L_last_num_blocks_is_5_19 + +.L_last_num_blocks_is_3_1_19: + + cmpl $2,%r10d + ja .L_last_num_blocks_is_3_19 + je .L_last_num_blocks_is_2_19 +.L_last_num_blocks_is_1_19: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $255,%r15d + jae .L_16_blocks_overflow_20 + vpaddd %xmm28,%xmm2,%xmm0 + jmp .L_16_blocks_ok_20 + +.L_16_blocks_overflow_20: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %xmm29,%xmm0,%xmm0 +.L_16_blocks_ok_20: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $0,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%xmm17{%k1}{z} + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %xmm31,%xmm0,%xmm0 + vaesenclast %xmm30,%xmm0,%xmm0 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti32x4 $0,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %xmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm0,%zmm0{%k1}{z} + vpshufb %xmm29,%xmm0,%xmm17 + vextracti32x4 $0,%zmm17,%xmm7 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_21 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm17,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm17,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm17,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm17,%xmm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_21 +.L_small_initial_partial_block_21: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + + + vpsrldq $8,%zmm26,%zmm0 + vpslldq $8,%zmm26,%zmm3 + vpxorq %zmm0,%zmm24,%zmm24 + vpxorq %zmm3,%zmm25,%zmm25 + vextracti64x4 $1,%zmm24,%ymm0 + vpxorq %ymm0,%ymm24,%ymm24 + vextracti32x4 $1,%ymm24,%xmm0 + vpxorq %xmm0,%xmm24,%xmm24 + vextracti64x4 $1,%zmm25,%ymm3 + vpxorq %ymm3,%ymm25,%ymm25 + vextracti32x4 $1,%ymm25,%xmm3 + vpxorq %xmm3,%xmm25,%xmm25 + vmovdqa64 POLY2(%rip),%xmm0 + + + vpclmulqdq $0x01,%xmm25,%xmm0,%xmm3 + vpslldq $8,%xmm3,%xmm3 + vpxorq %xmm3,%xmm25,%xmm3 + + + vpclmulqdq $0x00,%xmm3,%xmm0,%xmm4 + vpsrldq $4,%xmm4,%xmm4 + vpclmulqdq $0x10,%xmm3,%xmm0,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm24,%xmm4,%xmm14 + + + + + + + + + + + + + vpxorq %xmm7,%xmm14,%xmm14 + + jmp .L_after_reduction_21 +.L_small_initial_compute_done_21: +.L_after_reduction_21: + jmp .L_last_blocks_done_19 +.L_last_num_blocks_is_2_19: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $254,%r15d + jae .L_16_blocks_overflow_22 + vpaddd %ymm28,%ymm2,%ymm0 + jmp .L_16_blocks_ok_22 + +.L_16_blocks_overflow_22: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %ymm29,%ymm0,%ymm0 +.L_16_blocks_ok_22: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $1,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%ymm17{%k1}{z} + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %ymm31,%ymm0,%ymm0 + vaesenclast %ymm30,%ymm0,%ymm0 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %ymm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm0,%zmm0{%k1}{z} + vpshufb %ymm29,%ymm0,%ymm17 + vextracti32x4 $1,%zmm17,%xmm7 + subq $16 * (2 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_23 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm17,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm17,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm17,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm17,%ymm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_23 +.L_small_initial_partial_block_23: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm17,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm17,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm17,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm17,%xmm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_23: + + orq %r8,%r8 + je .L_after_reduction_23 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_23: + jmp .L_last_blocks_done_19 +.L_last_num_blocks_is_3_19: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $253,%r15d + jae .L_16_blocks_overflow_24 + vpaddd %zmm28,%zmm2,%zmm0 + jmp .L_16_blocks_ok_24 + +.L_16_blocks_overflow_24: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %zmm29,%zmm0,%zmm0 +.L_16_blocks_ok_24: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $2,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm0,%zmm0 + vpxorq %zmm17,%zmm0,%zmm0 + vextracti32x4 $2,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm0,%zmm0{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vextracti32x4 $2,%zmm17,%xmm7 + subq $16 * (3 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_25 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_25 +.L_small_initial_partial_block_25: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm17,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm17,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm17,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm17,%ymm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_25: + + orq %r8,%r8 + je .L_after_reduction_25 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_25: + jmp .L_last_blocks_done_19 +.L_last_num_blocks_is_4_19: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $252,%r15d + jae .L_16_blocks_overflow_26 + vpaddd %zmm28,%zmm2,%zmm0 + jmp .L_16_blocks_ok_26 + +.L_16_blocks_overflow_26: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %zmm29,%zmm0,%zmm0 +.L_16_blocks_ok_26: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $3,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm0,%zmm0 + vpxorq %zmm17,%zmm0,%zmm0 + vextracti32x4 $3,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm0,%zmm0{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vextracti32x4 $3,%zmm17,%xmm7 + subq $16 * (4 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_27 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_27 +.L_small_initial_partial_block_27: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_27: + + orq %r8,%r8 + je .L_after_reduction_27 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_27: + jmp .L_last_blocks_done_19 +.L_last_num_blocks_is_5_19: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $251,%r15d + jae .L_16_blocks_overflow_28 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %xmm27,%xmm0,%xmm3 + jmp .L_16_blocks_ok_28 + +.L_16_blocks_overflow_28: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %xmm29,%xmm3,%xmm3 +.L_16_blocks_ok_28: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $0,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%xmm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %xmm30,%xmm3,%xmm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %xmm19,%xmm3,%xmm3 + vextracti32x4 $0,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %xmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm3,%zmm3{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %xmm29,%xmm3,%xmm19 + vextracti32x4 $0,%zmm19,%xmm7 + subq $16 * (5 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_29 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm19,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm19,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm19,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm19,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_29 +.L_small_initial_partial_block_29: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_29: + + orq %r8,%r8 + je .L_after_reduction_29 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_29: + jmp .L_last_blocks_done_19 +.L_last_num_blocks_is_6_19: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $250,%r15d + jae .L_16_blocks_overflow_30 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %ymm27,%ymm0,%ymm3 + jmp .L_16_blocks_ok_30 + +.L_16_blocks_overflow_30: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %ymm29,%ymm3,%ymm3 +.L_16_blocks_ok_30: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $1,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%ymm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %ymm30,%ymm3,%ymm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %ymm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm3,%zmm3{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %ymm29,%ymm3,%ymm19 + vextracti32x4 $1,%zmm19,%xmm7 + subq $16 * (6 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_31 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm19,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm19,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm19,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm19,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_31 +.L_small_initial_partial_block_31: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm19,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm19,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm19,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm19,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_31: + + orq %r8,%r8 + je .L_after_reduction_31 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_31: + jmp .L_last_blocks_done_19 +.L_last_num_blocks_is_7_19: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $249,%r15d + jae .L_16_blocks_overflow_32 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + jmp .L_16_blocks_ok_32 + +.L_16_blocks_overflow_32: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 +.L_16_blocks_ok_32: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $2,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti32x4 $2,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm3,%zmm3{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vextracti32x4 $2,%zmm19,%xmm7 + subq $16 * (7 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_33 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_33 +.L_small_initial_partial_block_33: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm19,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm19,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm19,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm19,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_33: + + orq %r8,%r8 + je .L_after_reduction_33 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_33: + jmp .L_last_blocks_done_19 +.L_last_num_blocks_is_8_19: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $248,%r15d + jae .L_16_blocks_overflow_34 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + jmp .L_16_blocks_ok_34 + +.L_16_blocks_overflow_34: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 +.L_16_blocks_ok_34: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $3,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti32x4 $3,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm3,%zmm3{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vextracti32x4 $3,%zmm19,%xmm7 + subq $16 * (8 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_35 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_35 +.L_small_initial_partial_block_35: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_35: + + orq %r8,%r8 + je .L_after_reduction_35 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_35: + jmp .L_last_blocks_done_19 +.L_last_num_blocks_is_9_19: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $247,%r15d + jae .L_16_blocks_overflow_36 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %xmm27,%xmm3,%xmm4 + jmp .L_16_blocks_ok_36 + +.L_16_blocks_overflow_36: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %xmm29,%xmm4,%xmm4 +.L_16_blocks_ok_36: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $0,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%xmm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %xmm30,%xmm4,%xmm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %xmm20,%xmm4,%xmm4 + vextracti32x4 $0,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %xmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm4,%zmm4{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %xmm29,%xmm4,%xmm20 + vextracti32x4 $0,%zmm20,%xmm7 + subq $16 * (9 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_37 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm20,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm20,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm20,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm20,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_37 +.L_small_initial_partial_block_37: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_37: + + orq %r8,%r8 + je .L_after_reduction_37 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_37: + jmp .L_last_blocks_done_19 +.L_last_num_blocks_is_10_19: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $246,%r15d + jae .L_16_blocks_overflow_38 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %ymm27,%ymm3,%ymm4 + jmp .L_16_blocks_ok_38 + +.L_16_blocks_overflow_38: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %ymm29,%ymm4,%ymm4 +.L_16_blocks_ok_38: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $1,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%ymm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %ymm30,%ymm4,%ymm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %ymm20,%ymm4,%ymm4 + vextracti32x4 $1,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %ymm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm4,%zmm4{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %ymm29,%ymm4,%ymm20 + vextracti32x4 $1,%zmm20,%xmm7 + subq $16 * (10 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_39 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm20,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm20,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm20,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm20,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_39 +.L_small_initial_partial_block_39: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm20,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm20,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm20,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm20,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_39: + + orq %r8,%r8 + je .L_after_reduction_39 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_39: + jmp .L_last_blocks_done_19 +.L_last_num_blocks_is_11_19: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $245,%r15d + jae .L_16_blocks_overflow_40 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + jmp .L_16_blocks_ok_40 + +.L_16_blocks_overflow_40: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 +.L_16_blocks_ok_40: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $2,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vextracti32x4 $2,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm4,%zmm4{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %zmm29,%zmm4,%zmm20 + vextracti32x4 $2,%zmm20,%xmm7 + subq $16 * (11 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_41 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_41 +.L_small_initial_partial_block_41: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm20,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm20,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm20,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm20,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_41: + + orq %r8,%r8 + je .L_after_reduction_41 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_41: + jmp .L_last_blocks_done_19 +.L_last_num_blocks_is_12_19: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $244,%r15d + jae .L_16_blocks_overflow_42 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + jmp .L_16_blocks_ok_42 + +.L_16_blocks_overflow_42: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 +.L_16_blocks_ok_42: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $3,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vextracti32x4 $3,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm4,%zmm4{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %zmm29,%zmm4,%zmm20 + vextracti32x4 $3,%zmm20,%xmm7 + subq $16 * (12 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_43 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 160(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_43 +.L_small_initial_partial_block_43: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_43: + + orq %r8,%r8 + je .L_after_reduction_43 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_43: + jmp .L_last_blocks_done_19 +.L_last_num_blocks_is_13_19: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $243,%r15d + jae .L_16_blocks_overflow_44 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %xmm27,%xmm4,%xmm5 + jmp .L_16_blocks_ok_44 + +.L_16_blocks_overflow_44: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %xmm29,%xmm5,%xmm5 +.L_16_blocks_ok_44: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $0,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%xmm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %xmm30,%xmm5,%xmm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %xmm21,%xmm5,%xmm5 + vextracti32x4 $0,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %xmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm5,%zmm5{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %zmm29,%zmm4,%zmm20 + vpshufb %xmm29,%xmm5,%xmm21 + vextracti32x4 $0,%zmm21,%xmm7 + subq $16 * (13 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_45 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 144(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm21,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm21,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm21,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm21,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_45 +.L_small_initial_partial_block_45: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 160(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_45: + + orq %r8,%r8 + je .L_after_reduction_45 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_45: + jmp .L_last_blocks_done_19 +.L_last_num_blocks_is_14_19: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $242,%r15d + jae .L_16_blocks_overflow_46 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %ymm27,%ymm4,%ymm5 + jmp .L_16_blocks_ok_46 + +.L_16_blocks_overflow_46: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %ymm29,%ymm5,%ymm5 +.L_16_blocks_ok_46: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $1,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%ymm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %ymm30,%ymm5,%ymm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %ymm21,%ymm5,%ymm5 + vextracti32x4 $1,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %ymm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm5,%zmm5{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %zmm29,%zmm4,%zmm20 + vpshufb %ymm29,%ymm5,%ymm21 + vextracti32x4 $1,%zmm21,%xmm7 + subq $16 * (14 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_47 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 128(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm21,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm21,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm21,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm21,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_47 +.L_small_initial_partial_block_47: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 144(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm21,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm21,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm21,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm21,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_47: + + orq %r8,%r8 + je .L_after_reduction_47 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_47: + jmp .L_last_blocks_done_19 +.L_last_num_blocks_is_15_19: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $241,%r15d + jae .L_16_blocks_overflow_48 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp .L_16_blocks_ok_48 + +.L_16_blocks_overflow_48: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +.L_16_blocks_ok_48: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $2,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%zmm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + vextracti32x4 $2,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %zmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm5,%zmm5{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %zmm29,%zmm4,%zmm20 + vpshufb %zmm29,%zmm5,%zmm21 + vextracti32x4 $2,%zmm21,%xmm7 + subq $16 * (15 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_49 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 112(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm21,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm21,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm21,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm21,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_49 +.L_small_initial_partial_block_49: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 128(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm21,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm21,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm21,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm21,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_49: + + orq %r8,%r8 + je .L_after_reduction_49 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_49: + jmp .L_last_blocks_done_19 +.L_last_num_blocks_is_16_19: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $240,%r15d + jae .L_16_blocks_overflow_50 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp .L_16_blocks_ok_50 + +.L_16_blocks_overflow_50: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +.L_16_blocks_ok_50: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $3,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%zmm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + vextracti32x4 $3,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %zmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm5,%zmm5{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %zmm29,%zmm4,%zmm20 + vpshufb %zmm29,%zmm5,%zmm21 + vextracti32x4 $3,%zmm21,%xmm7 + subq $16 * (16 - 1),%r8 +.L_small_initial_partial_block_51: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 112(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm21,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm21,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm21,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm21,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_51: + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_51: + jmp .L_last_blocks_done_19 +.L_last_num_blocks_is_0_19: + vmovdqa64 1024(%rsp),%zmm13 + vmovdqu64 0(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 1088(%rsp),%zmm13 + vmovdqu64 64(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + vpternlogq $0x96,%zmm10,%zmm4,%zmm26 + vpternlogq $0x96,%zmm6,%zmm0,%zmm24 + vpternlogq $0x96,%zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + vmovdqa64 1152(%rsp),%zmm13 + vmovdqu64 128(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 1216(%rsp),%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + + vpternlogq $0x96,%zmm10,%zmm4,%zmm26 + vpternlogq $0x96,%zmm6,%zmm0,%zmm24 + vpternlogq $0x96,%zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + + vpsrldq $8,%zmm26,%zmm0 + vpslldq $8,%zmm26,%zmm3 + vpxorq %zmm0,%zmm24,%zmm24 + vpxorq %zmm3,%zmm25,%zmm25 + vextracti64x4 $1,%zmm24,%ymm0 + vpxorq %ymm0,%ymm24,%ymm24 + vextracti32x4 $1,%ymm24,%xmm0 + vpxorq %xmm0,%xmm24,%xmm24 + vextracti64x4 $1,%zmm25,%ymm3 + vpxorq %ymm3,%ymm25,%ymm25 + vextracti32x4 $1,%ymm25,%xmm3 + vpxorq %xmm3,%xmm25,%xmm25 + vmovdqa64 POLY2(%rip),%xmm4 + + + vpclmulqdq $0x01,%xmm25,%xmm4,%xmm0 + vpslldq $8,%xmm0,%xmm0 + vpxorq %xmm0,%xmm25,%xmm0 + + + vpclmulqdq $0x00,%xmm0,%xmm4,%xmm3 + vpsrldq $4,%xmm3,%xmm3 + vpclmulqdq $0x10,%xmm0,%xmm4,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm24,%xmm3,%xmm14 + +.L_last_blocks_done_19: + vpshufb %xmm29,%xmm2,%xmm2 + jmp .L_ghash_done_10 +.L_encrypt_32_blocks_10: + cmpb $240,%r15b + jae .L_16_blocks_overflow_52 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp .L_16_blocks_ok_52 +.L_16_blocks_overflow_52: + vpshufb %zmm29,%zmm2,%zmm2 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +.L_16_blocks_ok_52: + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp),%zmm1 + + + + + vshufi64x2 $255,%zmm5,%zmm5,%zmm2 + addb $16,%r15b + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + + + + + + + + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm6 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm6 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + + + + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%zmm21 + + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm15,%zmm10,%zmm26 + vpxorq %zmm12,%zmm6,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + + + + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + + + + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %zmm5,192(%r10,%r11,1) + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 + vmovdqa64 %zmm0,1280(%rsp) + vmovdqa64 %zmm3,1344(%rsp) + vmovdqa64 %zmm4,1408(%rsp) + vmovdqa64 %zmm5,1472(%rsp) + cmpb $240,%r15b + jae .L_16_blocks_overflow_53 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp .L_16_blocks_ok_53 +.L_16_blocks_overflow_53: + vpshufb %zmm29,%zmm2,%zmm2 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +.L_16_blocks_ok_53: + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 256(%rsp),%zmm1 + + + + + vshufi64x2 $255,%zmm5,%zmm5,%zmm2 + addb $16,%r15b + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 320(%rsp),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + + + + + + + + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm6 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 384(%rsp),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 448(%rsp),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm6 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + + + + vmovdqu8 256(%rcx,%r11,1),%zmm17 + vmovdqu8 320(%rcx,%r11,1),%zmm19 + vmovdqu8 384(%rcx,%r11,1),%zmm20 + vmovdqu8 448(%rcx,%r11,1),%zmm21 + + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vpternlogq $0x96,%zmm12,%zmm6,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + + + + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + + + + movq %r9,%r10 + vmovdqu8 %zmm0,256(%r10,%r11,1) + vmovdqu8 %zmm3,320(%r10,%r11,1) + vmovdqu8 %zmm4,384(%r10,%r11,1) + vmovdqu8 %zmm5,448(%r10,%r11,1) + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 + vmovdqa64 %zmm0,768(%rsp) + vmovdqa64 %zmm3,832(%rsp) + vmovdqa64 %zmm4,896(%rsp) + vmovdqa64 %zmm5,960(%rsp) + vmovdqa64 1280(%rsp),%zmm13 + vmovdqu64 512(%rsp),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 1344(%rsp),%zmm13 + vmovdqu64 576(%rsp),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + vpternlogq $0x96,%zmm10,%zmm4,%zmm26 + vpternlogq $0x96,%zmm6,%zmm0,%zmm24 + vpternlogq $0x96,%zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + vmovdqa64 1408(%rsp),%zmm13 + vmovdqu64 640(%rsp),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 1472(%rsp),%zmm13 + vmovdqu64 704(%rsp),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + + vpternlogq $0x96,%zmm10,%zmm4,%zmm26 + vpternlogq $0x96,%zmm6,%zmm0,%zmm24 + vpternlogq $0x96,%zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + + vpsrldq $8,%zmm26,%zmm0 + vpslldq $8,%zmm26,%zmm3 + vpxorq %zmm0,%zmm24,%zmm24 + vpxorq %zmm3,%zmm25,%zmm25 + vextracti64x4 $1,%zmm24,%ymm0 + vpxorq %ymm0,%ymm24,%ymm24 + vextracti32x4 $1,%ymm24,%xmm0 + vpxorq %xmm0,%xmm24,%xmm24 + vextracti64x4 $1,%zmm25,%ymm3 + vpxorq %ymm3,%ymm25,%ymm25 + vextracti32x4 $1,%ymm25,%xmm3 + vpxorq %xmm3,%xmm25,%xmm25 + vmovdqa64 POLY2(%rip),%xmm4 + + + vpclmulqdq $0x01,%xmm25,%xmm4,%xmm0 + vpslldq $8,%xmm0,%xmm0 + vpxorq %xmm0,%xmm25,%xmm0 + + + vpclmulqdq $0x00,%xmm0,%xmm4,%xmm3 + vpsrldq $4,%xmm3,%xmm3 + vpclmulqdq $0x10,%xmm0,%xmm4,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm24,%xmm3,%xmm14 + + subq $512,%r8 + addq $512,%r11 + movl %r8d,%r10d + andl $~15,%r10d + movl $512,%ebx + subl %r10d,%ebx + movl %r8d,%r10d + addl $15,%r10d + shrl $4,%r10d + je .L_last_num_blocks_is_0_54 + + cmpl $8,%r10d + je .L_last_num_blocks_is_8_54 + jb .L_last_num_blocks_is_7_1_54 + + + cmpl $12,%r10d + je .L_last_num_blocks_is_12_54 + jb .L_last_num_blocks_is_11_9_54 + + + cmpl $15,%r10d + je .L_last_num_blocks_is_15_54 + ja .L_last_num_blocks_is_16_54 + cmpl $14,%r10d + je .L_last_num_blocks_is_14_54 + jmp .L_last_num_blocks_is_13_54 + +.L_last_num_blocks_is_11_9_54: + + cmpl $10,%r10d + je .L_last_num_blocks_is_10_54 + ja .L_last_num_blocks_is_11_54 + jmp .L_last_num_blocks_is_9_54 + +.L_last_num_blocks_is_7_1_54: + cmpl $4,%r10d + je .L_last_num_blocks_is_4_54 + jb .L_last_num_blocks_is_3_1_54 + + cmpl $6,%r10d + ja .L_last_num_blocks_is_7_54 + je .L_last_num_blocks_is_6_54 + jmp .L_last_num_blocks_is_5_54 + +.L_last_num_blocks_is_3_1_54: + + cmpl $2,%r10d + ja .L_last_num_blocks_is_3_54 + je .L_last_num_blocks_is_2_54 +.L_last_num_blocks_is_1_54: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $255,%r15d + jae .L_16_blocks_overflow_55 + vpaddd %xmm28,%xmm2,%xmm0 + jmp .L_16_blocks_ok_55 + +.L_16_blocks_overflow_55: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %xmm29,%xmm0,%xmm0 +.L_16_blocks_ok_55: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $0,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%xmm17{%k1}{z} + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %xmm31,%xmm0,%xmm0 + vaesenclast %xmm30,%xmm0,%xmm0 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti32x4 $0,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %xmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm0,%zmm0{%k1}{z} + vpshufb %xmm29,%xmm0,%xmm17 + vextracti32x4 $0,%zmm17,%xmm7 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_56 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm17,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm17,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm17,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm17,%xmm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_56 +.L_small_initial_partial_block_56: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + + + vpsrldq $8,%zmm26,%zmm0 + vpslldq $8,%zmm26,%zmm3 + vpxorq %zmm0,%zmm24,%zmm24 + vpxorq %zmm3,%zmm25,%zmm25 + vextracti64x4 $1,%zmm24,%ymm0 + vpxorq %ymm0,%ymm24,%ymm24 + vextracti32x4 $1,%ymm24,%xmm0 + vpxorq %xmm0,%xmm24,%xmm24 + vextracti64x4 $1,%zmm25,%ymm3 + vpxorq %ymm3,%ymm25,%ymm25 + vextracti32x4 $1,%ymm25,%xmm3 + vpxorq %xmm3,%xmm25,%xmm25 + vmovdqa64 POLY2(%rip),%xmm0 + + + vpclmulqdq $0x01,%xmm25,%xmm0,%xmm3 + vpslldq $8,%xmm3,%xmm3 + vpxorq %xmm3,%xmm25,%xmm3 + + + vpclmulqdq $0x00,%xmm3,%xmm0,%xmm4 + vpsrldq $4,%xmm4,%xmm4 + vpclmulqdq $0x10,%xmm3,%xmm0,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm24,%xmm4,%xmm14 + + + + + + + + + + + + + vpxorq %xmm7,%xmm14,%xmm14 + + jmp .L_after_reduction_56 +.L_small_initial_compute_done_56: +.L_after_reduction_56: + jmp .L_last_blocks_done_54 +.L_last_num_blocks_is_2_54: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $254,%r15d + jae .L_16_blocks_overflow_57 + vpaddd %ymm28,%ymm2,%ymm0 + jmp .L_16_blocks_ok_57 + +.L_16_blocks_overflow_57: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %ymm29,%ymm0,%ymm0 +.L_16_blocks_ok_57: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $1,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%ymm17{%k1}{z} + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %ymm31,%ymm0,%ymm0 + vaesenclast %ymm30,%ymm0,%ymm0 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %ymm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm0,%zmm0{%k1}{z} + vpshufb %ymm29,%ymm0,%ymm17 + vextracti32x4 $1,%zmm17,%xmm7 + subq $16 * (2 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_58 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm17,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm17,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm17,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm17,%ymm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_58 +.L_small_initial_partial_block_58: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm17,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm17,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm17,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm17,%xmm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_58: + + orq %r8,%r8 + je .L_after_reduction_58 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_58: + jmp .L_last_blocks_done_54 +.L_last_num_blocks_is_3_54: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $253,%r15d + jae .L_16_blocks_overflow_59 + vpaddd %zmm28,%zmm2,%zmm0 + jmp .L_16_blocks_ok_59 + +.L_16_blocks_overflow_59: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %zmm29,%zmm0,%zmm0 +.L_16_blocks_ok_59: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $2,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm0,%zmm0 + vpxorq %zmm17,%zmm0,%zmm0 + vextracti32x4 $2,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm0,%zmm0{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vextracti32x4 $2,%zmm17,%xmm7 + subq $16 * (3 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_60 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_60 +.L_small_initial_partial_block_60: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm17,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm17,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm17,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm17,%ymm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_60: + + orq %r8,%r8 + je .L_after_reduction_60 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_60: + jmp .L_last_blocks_done_54 +.L_last_num_blocks_is_4_54: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $252,%r15d + jae .L_16_blocks_overflow_61 + vpaddd %zmm28,%zmm2,%zmm0 + jmp .L_16_blocks_ok_61 + +.L_16_blocks_overflow_61: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %zmm29,%zmm0,%zmm0 +.L_16_blocks_ok_61: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $3,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm0,%zmm0 + vpxorq %zmm17,%zmm0,%zmm0 + vextracti32x4 $3,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm0,%zmm0{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vextracti32x4 $3,%zmm17,%xmm7 + subq $16 * (4 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_62 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_62 +.L_small_initial_partial_block_62: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_62: + + orq %r8,%r8 + je .L_after_reduction_62 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_62: + jmp .L_last_blocks_done_54 +.L_last_num_blocks_is_5_54: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $251,%r15d + jae .L_16_blocks_overflow_63 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %xmm27,%xmm0,%xmm3 + jmp .L_16_blocks_ok_63 + +.L_16_blocks_overflow_63: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %xmm29,%xmm3,%xmm3 +.L_16_blocks_ok_63: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $0,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%xmm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %xmm30,%xmm3,%xmm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %xmm19,%xmm3,%xmm3 + vextracti32x4 $0,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %xmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm3,%zmm3{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %xmm29,%xmm3,%xmm19 + vextracti32x4 $0,%zmm19,%xmm7 + subq $16 * (5 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_64 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm19,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm19,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm19,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm19,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_64 +.L_small_initial_partial_block_64: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_64: + + orq %r8,%r8 + je .L_after_reduction_64 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_64: + jmp .L_last_blocks_done_54 +.L_last_num_blocks_is_6_54: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $250,%r15d + jae .L_16_blocks_overflow_65 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %ymm27,%ymm0,%ymm3 + jmp .L_16_blocks_ok_65 + +.L_16_blocks_overflow_65: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %ymm29,%ymm3,%ymm3 +.L_16_blocks_ok_65: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $1,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%ymm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %ymm30,%ymm3,%ymm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %ymm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm3,%zmm3{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %ymm29,%ymm3,%ymm19 + vextracti32x4 $1,%zmm19,%xmm7 + subq $16 * (6 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_66 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm19,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm19,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm19,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm19,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_66 +.L_small_initial_partial_block_66: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm19,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm19,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm19,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm19,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_66: + + orq %r8,%r8 + je .L_after_reduction_66 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_66: + jmp .L_last_blocks_done_54 +.L_last_num_blocks_is_7_54: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $249,%r15d + jae .L_16_blocks_overflow_67 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + jmp .L_16_blocks_ok_67 + +.L_16_blocks_overflow_67: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 +.L_16_blocks_ok_67: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $2,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti32x4 $2,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm3,%zmm3{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vextracti32x4 $2,%zmm19,%xmm7 + subq $16 * (7 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_68 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_68 +.L_small_initial_partial_block_68: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm19,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm19,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm19,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm19,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_68: + + orq %r8,%r8 + je .L_after_reduction_68 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_68: + jmp .L_last_blocks_done_54 +.L_last_num_blocks_is_8_54: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $248,%r15d + jae .L_16_blocks_overflow_69 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + jmp .L_16_blocks_ok_69 + +.L_16_blocks_overflow_69: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 +.L_16_blocks_ok_69: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $3,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti32x4 $3,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm3,%zmm3{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vextracti32x4 $3,%zmm19,%xmm7 + subq $16 * (8 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_70 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_70 +.L_small_initial_partial_block_70: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_70: + + orq %r8,%r8 + je .L_after_reduction_70 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_70: + jmp .L_last_blocks_done_54 +.L_last_num_blocks_is_9_54: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $247,%r15d + jae .L_16_blocks_overflow_71 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %xmm27,%xmm3,%xmm4 + jmp .L_16_blocks_ok_71 + +.L_16_blocks_overflow_71: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %xmm29,%xmm4,%xmm4 +.L_16_blocks_ok_71: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $0,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%xmm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %xmm30,%xmm4,%xmm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %xmm20,%xmm4,%xmm4 + vextracti32x4 $0,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %xmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm4,%zmm4{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %xmm29,%xmm4,%xmm20 + vextracti32x4 $0,%zmm20,%xmm7 + subq $16 * (9 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_72 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm20,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm20,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm20,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm20,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_72 +.L_small_initial_partial_block_72: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_72: + + orq %r8,%r8 + je .L_after_reduction_72 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_72: + jmp .L_last_blocks_done_54 +.L_last_num_blocks_is_10_54: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $246,%r15d + jae .L_16_blocks_overflow_73 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %ymm27,%ymm3,%ymm4 + jmp .L_16_blocks_ok_73 + +.L_16_blocks_overflow_73: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %ymm29,%ymm4,%ymm4 +.L_16_blocks_ok_73: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $1,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%ymm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %ymm30,%ymm4,%ymm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %ymm20,%ymm4,%ymm4 + vextracti32x4 $1,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %ymm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm4,%zmm4{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %ymm29,%ymm4,%ymm20 + vextracti32x4 $1,%zmm20,%xmm7 + subq $16 * (10 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_74 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm20,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm20,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm20,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm20,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_74 +.L_small_initial_partial_block_74: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm20,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm20,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm20,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm20,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_74: + + orq %r8,%r8 + je .L_after_reduction_74 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_74: + jmp .L_last_blocks_done_54 +.L_last_num_blocks_is_11_54: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $245,%r15d + jae .L_16_blocks_overflow_75 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + jmp .L_16_blocks_ok_75 + +.L_16_blocks_overflow_75: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 +.L_16_blocks_ok_75: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $2,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vextracti32x4 $2,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm4,%zmm4{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %zmm29,%zmm4,%zmm20 + vextracti32x4 $2,%zmm20,%xmm7 + subq $16 * (11 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_76 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_76 +.L_small_initial_partial_block_76: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm20,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm20,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm20,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm20,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_76: + + orq %r8,%r8 + je .L_after_reduction_76 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_76: + jmp .L_last_blocks_done_54 +.L_last_num_blocks_is_12_54: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $244,%r15d + jae .L_16_blocks_overflow_77 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + jmp .L_16_blocks_ok_77 + +.L_16_blocks_overflow_77: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 +.L_16_blocks_ok_77: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $3,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vextracti32x4 $3,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm4,%zmm4{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %zmm29,%zmm4,%zmm20 + vextracti32x4 $3,%zmm20,%xmm7 + subq $16 * (12 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_78 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 160(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_78 +.L_small_initial_partial_block_78: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_78: + + orq %r8,%r8 + je .L_after_reduction_78 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_78: + jmp .L_last_blocks_done_54 +.L_last_num_blocks_is_13_54: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $243,%r15d + jae .L_16_blocks_overflow_79 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %xmm27,%xmm4,%xmm5 + jmp .L_16_blocks_ok_79 + +.L_16_blocks_overflow_79: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %xmm29,%xmm5,%xmm5 +.L_16_blocks_ok_79: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $0,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%xmm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %xmm30,%xmm5,%xmm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %xmm21,%xmm5,%xmm5 + vextracti32x4 $0,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %xmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm5,%zmm5{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %zmm29,%zmm4,%zmm20 + vpshufb %xmm29,%xmm5,%xmm21 + vextracti32x4 $0,%zmm21,%xmm7 + subq $16 * (13 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_80 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 144(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm21,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm21,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm21,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm21,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_80 +.L_small_initial_partial_block_80: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 160(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_80: + + orq %r8,%r8 + je .L_after_reduction_80 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_80: + jmp .L_last_blocks_done_54 +.L_last_num_blocks_is_14_54: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $242,%r15d + jae .L_16_blocks_overflow_81 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %ymm27,%ymm4,%ymm5 + jmp .L_16_blocks_ok_81 + +.L_16_blocks_overflow_81: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %ymm29,%ymm5,%ymm5 +.L_16_blocks_ok_81: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $1,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%ymm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %ymm30,%ymm5,%ymm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %ymm21,%ymm5,%ymm5 + vextracti32x4 $1,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %ymm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm5,%zmm5{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %zmm29,%zmm4,%zmm20 + vpshufb %ymm29,%ymm5,%ymm21 + vextracti32x4 $1,%zmm21,%xmm7 + subq $16 * (14 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_82 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 128(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm21,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm21,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm21,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm21,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_82 +.L_small_initial_partial_block_82: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 144(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm21,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm21,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm21,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm21,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_82: + + orq %r8,%r8 + je .L_after_reduction_82 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_82: + jmp .L_last_blocks_done_54 +.L_last_num_blocks_is_15_54: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $241,%r15d + jae .L_16_blocks_overflow_83 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp .L_16_blocks_ok_83 + +.L_16_blocks_overflow_83: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +.L_16_blocks_ok_83: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $2,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%zmm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + vextracti32x4 $2,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %zmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm5,%zmm5{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %zmm29,%zmm4,%zmm20 + vpshufb %zmm29,%zmm5,%zmm21 + vextracti32x4 $2,%zmm21,%xmm7 + subq $16 * (15 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_84 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 112(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm21,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm21,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm21,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm21,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_84 +.L_small_initial_partial_block_84: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 128(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm21,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm21,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm21,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm21,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_84: + + orq %r8,%r8 + je .L_after_reduction_84 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_84: + jmp .L_last_blocks_done_54 +.L_last_num_blocks_is_16_54: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $240,%r15d + jae .L_16_blocks_overflow_85 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp .L_16_blocks_ok_85 + +.L_16_blocks_overflow_85: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +.L_16_blocks_ok_85: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $3,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%zmm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + vextracti32x4 $3,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %zmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm5,%zmm5{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %zmm29,%zmm4,%zmm20 + vpshufb %zmm29,%zmm5,%zmm21 + vextracti32x4 $3,%zmm21,%xmm7 + subq $16 * (16 - 1),%r8 +.L_small_initial_partial_block_86: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 112(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm21,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm21,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm21,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm21,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_86: + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_86: + jmp .L_last_blocks_done_54 +.L_last_num_blocks_is_0_54: + vmovdqa64 768(%rsp),%zmm13 + vpxorq %zmm14,%zmm13,%zmm13 + vmovdqu64 0(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 832(%rsp),%zmm13 + vmovdqu64 64(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + vpxorq %zmm10,%zmm4,%zmm26 + vpxorq %zmm6,%zmm0,%zmm24 + vpxorq %zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + vmovdqa64 896(%rsp),%zmm13 + vmovdqu64 128(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 960(%rsp),%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + + vpternlogq $0x96,%zmm10,%zmm4,%zmm26 + vpternlogq $0x96,%zmm6,%zmm0,%zmm24 + vpternlogq $0x96,%zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + + vpsrldq $8,%zmm26,%zmm0 + vpslldq $8,%zmm26,%zmm3 + vpxorq %zmm0,%zmm24,%zmm24 + vpxorq %zmm3,%zmm25,%zmm25 + vextracti64x4 $1,%zmm24,%ymm0 + vpxorq %ymm0,%ymm24,%ymm24 + vextracti32x4 $1,%ymm24,%xmm0 + vpxorq %xmm0,%xmm24,%xmm24 + vextracti64x4 $1,%zmm25,%ymm3 + vpxorq %ymm3,%ymm25,%ymm25 + vextracti32x4 $1,%ymm25,%xmm3 + vpxorq %xmm3,%xmm25,%xmm25 + vmovdqa64 POLY2(%rip),%xmm4 + + + vpclmulqdq $0x01,%xmm25,%xmm4,%xmm0 + vpslldq $8,%xmm0,%xmm0 + vpxorq %xmm0,%xmm25,%xmm0 + + + vpclmulqdq $0x00,%xmm0,%xmm4,%xmm3 + vpsrldq $4,%xmm3,%xmm3 + vpclmulqdq $0x10,%xmm0,%xmm4,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm24,%xmm3,%xmm14 + +.L_last_blocks_done_54: + vpshufb %xmm29,%xmm2,%xmm2 + jmp .L_ghash_done_10 +.L_encrypt_16_blocks_10: + cmpb $240,%r15b + jae .L_16_blocks_overflow_87 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp .L_16_blocks_ok_87 +.L_16_blocks_overflow_87: + vpshufb %zmm29,%zmm2,%zmm2 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +.L_16_blocks_ok_87: + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp),%zmm1 + + + + + vshufi64x2 $255,%zmm5,%zmm5,%zmm2 + addb $16,%r15b + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + + + + + + + + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm6 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm6 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + + + + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%zmm21 + + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm15,%zmm10,%zmm26 + vpxorq %zmm12,%zmm6,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + + + + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + + + + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %zmm5,192(%r10,%r11,1) + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 + vmovdqa64 %zmm0,1280(%rsp) + vmovdqa64 %zmm3,1344(%rsp) + vmovdqa64 %zmm4,1408(%rsp) + vmovdqa64 %zmm5,1472(%rsp) + vmovdqa64 1024(%rsp),%zmm13 + vmovdqu64 256(%rsp),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 1088(%rsp),%zmm13 + vmovdqu64 320(%rsp),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + vpternlogq $0x96,%zmm10,%zmm4,%zmm26 + vpternlogq $0x96,%zmm6,%zmm0,%zmm24 + vpternlogq $0x96,%zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + vmovdqa64 1152(%rsp),%zmm13 + vmovdqu64 384(%rsp),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 1216(%rsp),%zmm13 + vmovdqu64 448(%rsp),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + + vpternlogq $0x96,%zmm10,%zmm4,%zmm26 + vpternlogq $0x96,%zmm6,%zmm0,%zmm24 + vpternlogq $0x96,%zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + subq $256,%r8 + addq $256,%r11 + movl %r8d,%r10d + addl $15,%r10d + shrl $4,%r10d + je .L_last_num_blocks_is_0_88 + + cmpl $8,%r10d + je .L_last_num_blocks_is_8_88 + jb .L_last_num_blocks_is_7_1_88 + + + cmpl $12,%r10d + je .L_last_num_blocks_is_12_88 + jb .L_last_num_blocks_is_11_9_88 + + + cmpl $15,%r10d + je .L_last_num_blocks_is_15_88 + ja .L_last_num_blocks_is_16_88 + cmpl $14,%r10d + je .L_last_num_blocks_is_14_88 + jmp .L_last_num_blocks_is_13_88 + +.L_last_num_blocks_is_11_9_88: + + cmpl $10,%r10d + je .L_last_num_blocks_is_10_88 + ja .L_last_num_blocks_is_11_88 + jmp .L_last_num_blocks_is_9_88 + +.L_last_num_blocks_is_7_1_88: + cmpl $4,%r10d + je .L_last_num_blocks_is_4_88 + jb .L_last_num_blocks_is_3_1_88 + + cmpl $6,%r10d + ja .L_last_num_blocks_is_7_88 + je .L_last_num_blocks_is_6_88 + jmp .L_last_num_blocks_is_5_88 + +.L_last_num_blocks_is_3_1_88: + + cmpl $2,%r10d + ja .L_last_num_blocks_is_3_88 + je .L_last_num_blocks_is_2_88 +.L_last_num_blocks_is_1_88: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $255,%r15d + jae .L_16_blocks_overflow_89 + vpaddd %xmm28,%xmm2,%xmm0 + jmp .L_16_blocks_ok_89 + +.L_16_blocks_overflow_89: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %xmm29,%xmm0,%xmm0 +.L_16_blocks_ok_89: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $0,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%xmm17{%k1}{z} + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %xmm31,%xmm0,%xmm0 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %xmm30,%xmm0,%xmm0 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti32x4 $0,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %xmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm0,%zmm0{%k1}{z} + vpshufb %xmm29,%xmm0,%xmm17 + vextracti32x4 $0,%zmm17,%xmm7 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_90 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm17,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm17,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm17,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm17,%xmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_90 +.L_small_initial_partial_block_90: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + + + + + + + + + + + + vpxorq %xmm7,%xmm14,%xmm14 + + jmp .L_after_reduction_90 +.L_small_initial_compute_done_90: +.L_after_reduction_90: + jmp .L_last_blocks_done_88 +.L_last_num_blocks_is_2_88: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $254,%r15d + jae .L_16_blocks_overflow_91 + vpaddd %ymm28,%ymm2,%ymm0 + jmp .L_16_blocks_ok_91 + +.L_16_blocks_overflow_91: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %ymm29,%ymm0,%ymm0 +.L_16_blocks_ok_91: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $1,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%ymm17{%k1}{z} + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %ymm31,%ymm0,%ymm0 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %ymm30,%ymm0,%ymm0 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %ymm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm0,%zmm0{%k1}{z} + vpshufb %ymm29,%ymm0,%ymm17 + vextracti32x4 $1,%zmm17,%xmm7 + subq $16 * (2 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_92 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm17,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm17,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm17,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm17,%ymm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_92 +.L_small_initial_partial_block_92: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm17,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm17,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm17,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm17,%xmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_92: + + orq %r8,%r8 + je .L_after_reduction_92 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_92: + jmp .L_last_blocks_done_88 +.L_last_num_blocks_is_3_88: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $253,%r15d + jae .L_16_blocks_overflow_93 + vpaddd %zmm28,%zmm2,%zmm0 + jmp .L_16_blocks_ok_93 + +.L_16_blocks_overflow_93: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %zmm29,%zmm0,%zmm0 +.L_16_blocks_ok_93: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $2,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vpxorq %zmm17,%zmm0,%zmm0 + vextracti32x4 $2,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm0,%zmm0{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vextracti32x4 $2,%zmm17,%xmm7 + subq $16 * (3 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_94 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_94 +.L_small_initial_partial_block_94: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm17,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm17,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm17,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm17,%ymm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_94: + + orq %r8,%r8 + je .L_after_reduction_94 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_94: + jmp .L_last_blocks_done_88 +.L_last_num_blocks_is_4_88: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $252,%r15d + jae .L_16_blocks_overflow_95 + vpaddd %zmm28,%zmm2,%zmm0 + jmp .L_16_blocks_ok_95 + +.L_16_blocks_overflow_95: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %zmm29,%zmm0,%zmm0 +.L_16_blocks_ok_95: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $3,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vpxorq %zmm17,%zmm0,%zmm0 + vextracti32x4 $3,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm0,%zmm0{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vextracti32x4 $3,%zmm17,%xmm7 + subq $16 * (4 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_96 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_96 +.L_small_initial_partial_block_96: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_96: + + orq %r8,%r8 + je .L_after_reduction_96 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_96: + jmp .L_last_blocks_done_88 +.L_last_num_blocks_is_5_88: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $251,%r15d + jae .L_16_blocks_overflow_97 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %xmm27,%xmm0,%xmm3 + jmp .L_16_blocks_ok_97 + +.L_16_blocks_overflow_97: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %xmm29,%xmm3,%xmm3 +.L_16_blocks_ok_97: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $0,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%xmm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %xmm30,%xmm3,%xmm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %xmm19,%xmm3,%xmm3 + vextracti32x4 $0,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %xmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm3,%zmm3{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %xmm29,%xmm3,%xmm19 + vextracti32x4 $0,%zmm19,%xmm7 + subq $16 * (5 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_98 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm19,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm19,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm19,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm19,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_98 +.L_small_initial_partial_block_98: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_98: + + orq %r8,%r8 + je .L_after_reduction_98 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_98: + jmp .L_last_blocks_done_88 +.L_last_num_blocks_is_6_88: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $250,%r15d + jae .L_16_blocks_overflow_99 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %ymm27,%ymm0,%ymm3 + jmp .L_16_blocks_ok_99 + +.L_16_blocks_overflow_99: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %ymm29,%ymm3,%ymm3 +.L_16_blocks_ok_99: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $1,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%ymm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %ymm30,%ymm3,%ymm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %ymm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm3,%zmm3{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %ymm29,%ymm3,%ymm19 + vextracti32x4 $1,%zmm19,%xmm7 + subq $16 * (6 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_100 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm19,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm19,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm19,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm19,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_100 +.L_small_initial_partial_block_100: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm19,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm19,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm19,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm19,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_100: + + orq %r8,%r8 + je .L_after_reduction_100 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_100: + jmp .L_last_blocks_done_88 +.L_last_num_blocks_is_7_88: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $249,%r15d + jae .L_16_blocks_overflow_101 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + jmp .L_16_blocks_ok_101 + +.L_16_blocks_overflow_101: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 +.L_16_blocks_ok_101: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $2,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti32x4 $2,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm3,%zmm3{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vextracti32x4 $2,%zmm19,%xmm7 + subq $16 * (7 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_102 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_102 +.L_small_initial_partial_block_102: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm19,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm19,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm19,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm19,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_102: + + orq %r8,%r8 + je .L_after_reduction_102 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_102: + jmp .L_last_blocks_done_88 +.L_last_num_blocks_is_8_88: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $248,%r15d + jae .L_16_blocks_overflow_103 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + jmp .L_16_blocks_ok_103 + +.L_16_blocks_overflow_103: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 +.L_16_blocks_ok_103: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $3,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti32x4 $3,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm3,%zmm3{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vextracti32x4 $3,%zmm19,%xmm7 + subq $16 * (8 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_104 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_104 +.L_small_initial_partial_block_104: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_104: + + orq %r8,%r8 + je .L_after_reduction_104 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_104: + jmp .L_last_blocks_done_88 +.L_last_num_blocks_is_9_88: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $247,%r15d + jae .L_16_blocks_overflow_105 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %xmm27,%xmm3,%xmm4 + jmp .L_16_blocks_ok_105 + +.L_16_blocks_overflow_105: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %xmm29,%xmm4,%xmm4 +.L_16_blocks_ok_105: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $0,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%xmm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %xmm30,%xmm4,%xmm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %xmm20,%xmm4,%xmm4 + vextracti32x4 $0,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %xmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm4,%zmm4{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %xmm29,%xmm4,%xmm20 + vextracti32x4 $0,%zmm20,%xmm7 + subq $16 * (9 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_106 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm20,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm20,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm20,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm20,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_106 +.L_small_initial_partial_block_106: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_106: + + orq %r8,%r8 + je .L_after_reduction_106 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_106: + jmp .L_last_blocks_done_88 +.L_last_num_blocks_is_10_88: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $246,%r15d + jae .L_16_blocks_overflow_107 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %ymm27,%ymm3,%ymm4 + jmp .L_16_blocks_ok_107 + +.L_16_blocks_overflow_107: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %ymm29,%ymm4,%ymm4 +.L_16_blocks_ok_107: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $1,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%ymm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %ymm30,%ymm4,%ymm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %ymm20,%ymm4,%ymm4 + vextracti32x4 $1,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %ymm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm4,%zmm4{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %ymm29,%ymm4,%ymm20 + vextracti32x4 $1,%zmm20,%xmm7 + subq $16 * (10 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_108 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm20,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm20,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm20,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm20,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_108 +.L_small_initial_partial_block_108: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm20,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm20,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm20,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm20,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_108: + + orq %r8,%r8 + je .L_after_reduction_108 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_108: + jmp .L_last_blocks_done_88 +.L_last_num_blocks_is_11_88: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $245,%r15d + jae .L_16_blocks_overflow_109 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + jmp .L_16_blocks_ok_109 + +.L_16_blocks_overflow_109: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 +.L_16_blocks_ok_109: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $2,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vextracti32x4 $2,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm4,%zmm4{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %zmm29,%zmm4,%zmm20 + vextracti32x4 $2,%zmm20,%xmm7 + subq $16 * (11 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_110 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_110 +.L_small_initial_partial_block_110: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm20,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm20,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm20,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm20,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_110: + + orq %r8,%r8 + je .L_after_reduction_110 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_110: + jmp .L_last_blocks_done_88 +.L_last_num_blocks_is_12_88: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $244,%r15d + jae .L_16_blocks_overflow_111 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + jmp .L_16_blocks_ok_111 + +.L_16_blocks_overflow_111: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 +.L_16_blocks_ok_111: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $3,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vextracti32x4 $3,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm4,%zmm4{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %zmm29,%zmm4,%zmm20 + vextracti32x4 $3,%zmm20,%xmm7 + subq $16 * (12 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_112 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 160(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_112 +.L_small_initial_partial_block_112: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_112: + + orq %r8,%r8 + je .L_after_reduction_112 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_112: + jmp .L_last_blocks_done_88 +.L_last_num_blocks_is_13_88: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $243,%r15d + jae .L_16_blocks_overflow_113 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %xmm27,%xmm4,%xmm5 + jmp .L_16_blocks_ok_113 + +.L_16_blocks_overflow_113: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %xmm29,%xmm5,%xmm5 +.L_16_blocks_ok_113: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $0,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%xmm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %xmm30,%xmm5,%xmm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %xmm21,%xmm5,%xmm5 + vextracti32x4 $0,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %xmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm5,%zmm5{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %zmm29,%zmm4,%zmm20 + vpshufb %xmm29,%xmm5,%xmm21 + vextracti32x4 $0,%zmm21,%xmm7 + subq $16 * (13 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_114 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 144(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm21,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm21,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm21,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm21,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_114 +.L_small_initial_partial_block_114: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 160(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_114: + + orq %r8,%r8 + je .L_after_reduction_114 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_114: + jmp .L_last_blocks_done_88 +.L_last_num_blocks_is_14_88: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $242,%r15d + jae .L_16_blocks_overflow_115 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %ymm27,%ymm4,%ymm5 + jmp .L_16_blocks_ok_115 + +.L_16_blocks_overflow_115: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %ymm29,%ymm5,%ymm5 +.L_16_blocks_ok_115: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $1,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%ymm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %ymm30,%ymm5,%ymm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %ymm21,%ymm5,%ymm5 + vextracti32x4 $1,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %ymm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm5,%zmm5{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %zmm29,%zmm4,%zmm20 + vpshufb %ymm29,%ymm5,%ymm21 + vextracti32x4 $1,%zmm21,%xmm7 + subq $16 * (14 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_116 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 128(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm21,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm21,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm21,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm21,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_116 +.L_small_initial_partial_block_116: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 144(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm21,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm21,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm21,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm21,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_116: + + orq %r8,%r8 + je .L_after_reduction_116 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_116: + jmp .L_last_blocks_done_88 +.L_last_num_blocks_is_15_88: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $241,%r15d + jae .L_16_blocks_overflow_117 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp .L_16_blocks_ok_117 + +.L_16_blocks_overflow_117: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +.L_16_blocks_ok_117: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $2,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%zmm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + vextracti32x4 $2,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %zmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm5,%zmm5{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %zmm29,%zmm4,%zmm20 + vpshufb %zmm29,%zmm5,%zmm21 + vextracti32x4 $2,%zmm21,%xmm7 + subq $16 * (15 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_118 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 112(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm21,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm21,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm21,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm21,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_118 +.L_small_initial_partial_block_118: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 128(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm21,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm21,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm21,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm21,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_118: + + orq %r8,%r8 + je .L_after_reduction_118 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_118: + jmp .L_last_blocks_done_88 +.L_last_num_blocks_is_16_88: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $240,%r15d + jae .L_16_blocks_overflow_119 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp .L_16_blocks_ok_119 + +.L_16_blocks_overflow_119: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +.L_16_blocks_ok_119: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $3,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%zmm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + vextracti32x4 $3,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %zmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm5,%zmm5{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %zmm29,%zmm4,%zmm20 + vpshufb %zmm29,%zmm5,%zmm21 + vextracti32x4 $3,%zmm21,%xmm7 + subq $16 * (16 - 1),%r8 +.L_small_initial_partial_block_120: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 112(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm21,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm21,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm21,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm21,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_120: + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_120: + jmp .L_last_blocks_done_88 +.L_last_num_blocks_is_0_88: + vmovdqa64 1280(%rsp),%zmm13 + vmovdqu64 512(%rsp),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 1344(%rsp),%zmm13 + vmovdqu64 576(%rsp),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + vpternlogq $0x96,%zmm10,%zmm4,%zmm26 + vpternlogq $0x96,%zmm6,%zmm0,%zmm24 + vpternlogq $0x96,%zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + vmovdqa64 1408(%rsp),%zmm13 + vmovdqu64 640(%rsp),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 1472(%rsp),%zmm13 + vmovdqu64 704(%rsp),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + + vpternlogq $0x96,%zmm10,%zmm4,%zmm26 + vpternlogq $0x96,%zmm6,%zmm0,%zmm24 + vpternlogq $0x96,%zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + + vpsrldq $8,%zmm26,%zmm0 + vpslldq $8,%zmm26,%zmm3 + vpxorq %zmm0,%zmm24,%zmm24 + vpxorq %zmm3,%zmm25,%zmm25 + vextracti64x4 $1,%zmm24,%ymm0 + vpxorq %ymm0,%ymm24,%ymm24 + vextracti32x4 $1,%ymm24,%xmm0 + vpxorq %xmm0,%xmm24,%xmm24 + vextracti64x4 $1,%zmm25,%ymm3 + vpxorq %ymm3,%ymm25,%ymm25 + vextracti32x4 $1,%ymm25,%xmm3 + vpxorq %xmm3,%xmm25,%xmm25 + vmovdqa64 POLY2(%rip),%xmm4 + + + vpclmulqdq $0x01,%xmm25,%xmm4,%xmm0 + vpslldq $8,%xmm0,%xmm0 + vpxorq %xmm0,%xmm25,%xmm0 + + + vpclmulqdq $0x00,%xmm0,%xmm4,%xmm3 + vpsrldq $4,%xmm3,%xmm3 + vpclmulqdq $0x10,%xmm0,%xmm4,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm24,%xmm3,%xmm14 + +.L_last_blocks_done_88: + vpshufb %xmm29,%xmm2,%xmm2 + jmp .L_ghash_done_10 + +.L_message_below_32_blocks_10: + + + subq $256,%r8 + addq $256,%r11 + movl %r8d,%r10d + testq %r14,%r14 + jnz .L_skip_hkeys_precomputation_121 + vmovdqu64 640(%rsp),%zmm3 + + + vshufi64x2 $0x00,%zmm3,%zmm3,%zmm3 + + vmovdqu64 576(%rsp),%zmm4 + vmovdqu64 512(%rsp),%zmm5 + + vpclmulqdq $0x11,%zmm3,%zmm4,%zmm6 + vpclmulqdq $0x00,%zmm3,%zmm4,%zmm7 + vpclmulqdq $0x01,%zmm3,%zmm4,%zmm10 + vpclmulqdq $0x10,%zmm3,%zmm4,%zmm4 + vpxorq %zmm10,%zmm4,%zmm4 + + vpsrldq $8,%zmm4,%zmm10 + vpslldq $8,%zmm4,%zmm4 + vpxorq %zmm10,%zmm6,%zmm6 + vpxorq %zmm7,%zmm4,%zmm4 + + + + vmovdqu64 POLY2(%rip),%zmm10 + + vpclmulqdq $0x01,%zmm4,%zmm10,%zmm7 + vpslldq $8,%zmm7,%zmm7 + vpxorq %zmm7,%zmm4,%zmm4 + + + + vpclmulqdq $0x00,%zmm4,%zmm10,%zmm7 + vpsrldq $4,%zmm7,%zmm7 + vpclmulqdq $0x10,%zmm4,%zmm10,%zmm4 + vpslldq $4,%zmm4,%zmm4 + + vpternlogq $0x96,%zmm7,%zmm6,%zmm4 + + vmovdqu64 %zmm4,448(%rsp) + + vpclmulqdq $0x11,%zmm3,%zmm5,%zmm6 + vpclmulqdq $0x00,%zmm3,%zmm5,%zmm7 + vpclmulqdq $0x01,%zmm3,%zmm5,%zmm10 + vpclmulqdq $0x10,%zmm3,%zmm5,%zmm5 + vpxorq %zmm10,%zmm5,%zmm5 + + vpsrldq $8,%zmm5,%zmm10 + vpslldq $8,%zmm5,%zmm5 + vpxorq %zmm10,%zmm6,%zmm6 + vpxorq %zmm7,%zmm5,%zmm5 + + + + vmovdqu64 POLY2(%rip),%zmm10 + + vpclmulqdq $0x01,%zmm5,%zmm10,%zmm7 + vpslldq $8,%zmm7,%zmm7 + vpxorq %zmm7,%zmm5,%zmm5 + + + + vpclmulqdq $0x00,%zmm5,%zmm10,%zmm7 + vpsrldq $4,%zmm7,%zmm7 + vpclmulqdq $0x10,%zmm5,%zmm10,%zmm5 + vpslldq $4,%zmm5,%zmm5 + + vpternlogq $0x96,%zmm7,%zmm6,%zmm5 + + vmovdqu64 %zmm5,384(%rsp) + + vpclmulqdq $0x11,%zmm3,%zmm4,%zmm6 + vpclmulqdq $0x00,%zmm3,%zmm4,%zmm7 + vpclmulqdq $0x01,%zmm3,%zmm4,%zmm10 + vpclmulqdq $0x10,%zmm3,%zmm4,%zmm4 + vpxorq %zmm10,%zmm4,%zmm4 + + vpsrldq $8,%zmm4,%zmm10 + vpslldq $8,%zmm4,%zmm4 + vpxorq %zmm10,%zmm6,%zmm6 + vpxorq %zmm7,%zmm4,%zmm4 + + + + vmovdqu64 POLY2(%rip),%zmm10 + + vpclmulqdq $0x01,%zmm4,%zmm10,%zmm7 + vpslldq $8,%zmm7,%zmm7 + vpxorq %zmm7,%zmm4,%zmm4 + + + + vpclmulqdq $0x00,%zmm4,%zmm10,%zmm7 + vpsrldq $4,%zmm7,%zmm7 + vpclmulqdq $0x10,%zmm4,%zmm10,%zmm4 + vpslldq $4,%zmm4,%zmm4 + + vpternlogq $0x96,%zmm7,%zmm6,%zmm4 + + vmovdqu64 %zmm4,320(%rsp) + + vpclmulqdq $0x11,%zmm3,%zmm5,%zmm6 + vpclmulqdq $0x00,%zmm3,%zmm5,%zmm7 + vpclmulqdq $0x01,%zmm3,%zmm5,%zmm10 + vpclmulqdq $0x10,%zmm3,%zmm5,%zmm5 + vpxorq %zmm10,%zmm5,%zmm5 + + vpsrldq $8,%zmm5,%zmm10 + vpslldq $8,%zmm5,%zmm5 + vpxorq %zmm10,%zmm6,%zmm6 + vpxorq %zmm7,%zmm5,%zmm5 + + + + vmovdqu64 POLY2(%rip),%zmm10 + + vpclmulqdq $0x01,%zmm5,%zmm10,%zmm7 + vpslldq $8,%zmm7,%zmm7 + vpxorq %zmm7,%zmm5,%zmm5 + + + + vpclmulqdq $0x00,%zmm5,%zmm10,%zmm7 + vpsrldq $4,%zmm7,%zmm7 + vpclmulqdq $0x10,%zmm5,%zmm10,%zmm5 + vpslldq $4,%zmm5,%zmm5 + + vpternlogq $0x96,%zmm7,%zmm6,%zmm5 + + vmovdqu64 %zmm5,256(%rsp) +.L_skip_hkeys_precomputation_121: + movq $1,%r14 + andl $~15,%r10d + movl $512,%ebx + subl %r10d,%ebx + movl %r8d,%r10d + addl $15,%r10d + shrl $4,%r10d + je .L_last_num_blocks_is_0_122 + + cmpl $8,%r10d + je .L_last_num_blocks_is_8_122 + jb .L_last_num_blocks_is_7_1_122 + + + cmpl $12,%r10d + je .L_last_num_blocks_is_12_122 + jb .L_last_num_blocks_is_11_9_122 + + + cmpl $15,%r10d + je .L_last_num_blocks_is_15_122 + ja .L_last_num_blocks_is_16_122 + cmpl $14,%r10d + je .L_last_num_blocks_is_14_122 + jmp .L_last_num_blocks_is_13_122 + +.L_last_num_blocks_is_11_9_122: + + cmpl $10,%r10d + je .L_last_num_blocks_is_10_122 + ja .L_last_num_blocks_is_11_122 + jmp .L_last_num_blocks_is_9_122 + +.L_last_num_blocks_is_7_1_122: + cmpl $4,%r10d + je .L_last_num_blocks_is_4_122 + jb .L_last_num_blocks_is_3_1_122 + + cmpl $6,%r10d + ja .L_last_num_blocks_is_7_122 + je .L_last_num_blocks_is_6_122 + jmp .L_last_num_blocks_is_5_122 + +.L_last_num_blocks_is_3_1_122: + + cmpl $2,%r10d + ja .L_last_num_blocks_is_3_122 + je .L_last_num_blocks_is_2_122 +.L_last_num_blocks_is_1_122: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $255,%r15d + jae .L_16_blocks_overflow_123 + vpaddd %xmm28,%xmm2,%xmm0 + jmp .L_16_blocks_ok_123 + +.L_16_blocks_overflow_123: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %xmm29,%xmm0,%xmm0 +.L_16_blocks_ok_123: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $0,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%xmm17{%k1}{z} + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %xmm31,%xmm0,%xmm0 + vaesenclast %xmm30,%xmm0,%xmm0 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti32x4 $0,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %xmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm0,%zmm0{%k1}{z} + vpshufb %xmm29,%xmm0,%xmm17 + vextracti32x4 $0,%zmm17,%xmm7 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_124 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm17,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm17,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm17,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm17,%xmm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_124 +.L_small_initial_partial_block_124: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + + + vpsrldq $8,%zmm26,%zmm0 + vpslldq $8,%zmm26,%zmm3 + vpxorq %zmm0,%zmm24,%zmm24 + vpxorq %zmm3,%zmm25,%zmm25 + vextracti64x4 $1,%zmm24,%ymm0 + vpxorq %ymm0,%ymm24,%ymm24 + vextracti32x4 $1,%ymm24,%xmm0 + vpxorq %xmm0,%xmm24,%xmm24 + vextracti64x4 $1,%zmm25,%ymm3 + vpxorq %ymm3,%ymm25,%ymm25 + vextracti32x4 $1,%ymm25,%xmm3 + vpxorq %xmm3,%xmm25,%xmm25 + vmovdqa64 POLY2(%rip),%xmm0 + + + vpclmulqdq $0x01,%xmm25,%xmm0,%xmm3 + vpslldq $8,%xmm3,%xmm3 + vpxorq %xmm3,%xmm25,%xmm3 + + + vpclmulqdq $0x00,%xmm3,%xmm0,%xmm4 + vpsrldq $4,%xmm4,%xmm4 + vpclmulqdq $0x10,%xmm3,%xmm0,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm24,%xmm4,%xmm14 + + + + + + + + + + + + + vpxorq %xmm7,%xmm14,%xmm14 + + jmp .L_after_reduction_124 +.L_small_initial_compute_done_124: +.L_after_reduction_124: + jmp .L_last_blocks_done_122 +.L_last_num_blocks_is_2_122: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $254,%r15d + jae .L_16_blocks_overflow_125 + vpaddd %ymm28,%ymm2,%ymm0 + jmp .L_16_blocks_ok_125 + +.L_16_blocks_overflow_125: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %ymm29,%ymm0,%ymm0 +.L_16_blocks_ok_125: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $1,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%ymm17{%k1}{z} + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %ymm31,%ymm0,%ymm0 + vaesenclast %ymm30,%ymm0,%ymm0 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %ymm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm0,%zmm0{%k1}{z} + vpshufb %ymm29,%ymm0,%ymm17 + vextracti32x4 $1,%zmm17,%xmm7 + subq $16 * (2 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_126 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm17,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm17,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm17,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm17,%ymm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_126 +.L_small_initial_partial_block_126: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm17,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm17,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm17,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm17,%xmm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_126: + + orq %r8,%r8 + je .L_after_reduction_126 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_126: + jmp .L_last_blocks_done_122 +.L_last_num_blocks_is_3_122: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $253,%r15d + jae .L_16_blocks_overflow_127 + vpaddd %zmm28,%zmm2,%zmm0 + jmp .L_16_blocks_ok_127 + +.L_16_blocks_overflow_127: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %zmm29,%zmm0,%zmm0 +.L_16_blocks_ok_127: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $2,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm0,%zmm0 + vpxorq %zmm17,%zmm0,%zmm0 + vextracti32x4 $2,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm0,%zmm0{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vextracti32x4 $2,%zmm17,%xmm7 + subq $16 * (3 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_128 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_128 +.L_small_initial_partial_block_128: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm17,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm17,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm17,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm17,%ymm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_128: + + orq %r8,%r8 + je .L_after_reduction_128 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_128: + jmp .L_last_blocks_done_122 +.L_last_num_blocks_is_4_122: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $252,%r15d + jae .L_16_blocks_overflow_129 + vpaddd %zmm28,%zmm2,%zmm0 + jmp .L_16_blocks_ok_129 + +.L_16_blocks_overflow_129: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %zmm29,%zmm0,%zmm0 +.L_16_blocks_ok_129: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $3,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm0,%zmm0 + vpxorq %zmm17,%zmm0,%zmm0 + vextracti32x4 $3,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm0,%zmm0{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vextracti32x4 $3,%zmm17,%xmm7 + subq $16 * (4 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_130 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_130 +.L_small_initial_partial_block_130: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_130: + + orq %r8,%r8 + je .L_after_reduction_130 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_130: + jmp .L_last_blocks_done_122 +.L_last_num_blocks_is_5_122: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $251,%r15d + jae .L_16_blocks_overflow_131 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %xmm27,%xmm0,%xmm3 + jmp .L_16_blocks_ok_131 + +.L_16_blocks_overflow_131: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %xmm29,%xmm3,%xmm3 +.L_16_blocks_ok_131: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $0,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%xmm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %xmm30,%xmm3,%xmm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %xmm19,%xmm3,%xmm3 + vextracti32x4 $0,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %xmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm3,%zmm3{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %xmm29,%xmm3,%xmm19 + vextracti32x4 $0,%zmm19,%xmm7 + subq $16 * (5 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_132 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm19,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm19,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm19,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm19,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_132 +.L_small_initial_partial_block_132: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_132: + + orq %r8,%r8 + je .L_after_reduction_132 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_132: + jmp .L_last_blocks_done_122 +.L_last_num_blocks_is_6_122: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $250,%r15d + jae .L_16_blocks_overflow_133 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %ymm27,%ymm0,%ymm3 + jmp .L_16_blocks_ok_133 + +.L_16_blocks_overflow_133: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %ymm29,%ymm3,%ymm3 +.L_16_blocks_ok_133: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $1,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%ymm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %ymm30,%ymm3,%ymm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %ymm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm3,%zmm3{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %ymm29,%ymm3,%ymm19 + vextracti32x4 $1,%zmm19,%xmm7 + subq $16 * (6 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_134 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm19,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm19,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm19,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm19,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_134 +.L_small_initial_partial_block_134: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm19,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm19,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm19,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm19,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_134: + + orq %r8,%r8 + je .L_after_reduction_134 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_134: + jmp .L_last_blocks_done_122 +.L_last_num_blocks_is_7_122: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $249,%r15d + jae .L_16_blocks_overflow_135 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + jmp .L_16_blocks_ok_135 + +.L_16_blocks_overflow_135: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 +.L_16_blocks_ok_135: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $2,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti32x4 $2,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm3,%zmm3{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vextracti32x4 $2,%zmm19,%xmm7 + subq $16 * (7 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_136 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_136 +.L_small_initial_partial_block_136: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm19,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm19,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm19,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm19,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_136: + + orq %r8,%r8 + je .L_after_reduction_136 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_136: + jmp .L_last_blocks_done_122 +.L_last_num_blocks_is_8_122: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $248,%r15d + jae .L_16_blocks_overflow_137 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + jmp .L_16_blocks_ok_137 + +.L_16_blocks_overflow_137: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 +.L_16_blocks_ok_137: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $3,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti32x4 $3,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm3,%zmm3{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vextracti32x4 $3,%zmm19,%xmm7 + subq $16 * (8 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_138 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_138 +.L_small_initial_partial_block_138: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_138: + + orq %r8,%r8 + je .L_after_reduction_138 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_138: + jmp .L_last_blocks_done_122 +.L_last_num_blocks_is_9_122: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $247,%r15d + jae .L_16_blocks_overflow_139 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %xmm27,%xmm3,%xmm4 + jmp .L_16_blocks_ok_139 + +.L_16_blocks_overflow_139: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %xmm29,%xmm4,%xmm4 +.L_16_blocks_ok_139: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $0,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%xmm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %xmm30,%xmm4,%xmm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %xmm20,%xmm4,%xmm4 + vextracti32x4 $0,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %xmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm4,%zmm4{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %xmm29,%xmm4,%xmm20 + vextracti32x4 $0,%zmm20,%xmm7 + subq $16 * (9 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_140 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm20,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm20,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm20,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm20,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_140 +.L_small_initial_partial_block_140: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_140: + + orq %r8,%r8 + je .L_after_reduction_140 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_140: + jmp .L_last_blocks_done_122 +.L_last_num_blocks_is_10_122: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $246,%r15d + jae .L_16_blocks_overflow_141 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %ymm27,%ymm3,%ymm4 + jmp .L_16_blocks_ok_141 + +.L_16_blocks_overflow_141: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %ymm29,%ymm4,%ymm4 +.L_16_blocks_ok_141: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $1,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%ymm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %ymm30,%ymm4,%ymm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %ymm20,%ymm4,%ymm4 + vextracti32x4 $1,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %ymm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm4,%zmm4{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %ymm29,%ymm4,%ymm20 + vextracti32x4 $1,%zmm20,%xmm7 + subq $16 * (10 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_142 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm20,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm20,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm20,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm20,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_142 +.L_small_initial_partial_block_142: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm20,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm20,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm20,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm20,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_142: + + orq %r8,%r8 + je .L_after_reduction_142 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_142: + jmp .L_last_blocks_done_122 +.L_last_num_blocks_is_11_122: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $245,%r15d + jae .L_16_blocks_overflow_143 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + jmp .L_16_blocks_ok_143 + +.L_16_blocks_overflow_143: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 +.L_16_blocks_ok_143: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $2,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vextracti32x4 $2,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm4,%zmm4{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %zmm29,%zmm4,%zmm20 + vextracti32x4 $2,%zmm20,%xmm7 + subq $16 * (11 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_144 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_144 +.L_small_initial_partial_block_144: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm20,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm20,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm20,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm20,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_144: + + orq %r8,%r8 + je .L_after_reduction_144 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_144: + jmp .L_last_blocks_done_122 +.L_last_num_blocks_is_12_122: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $244,%r15d + jae .L_16_blocks_overflow_145 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + jmp .L_16_blocks_ok_145 + +.L_16_blocks_overflow_145: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 +.L_16_blocks_ok_145: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $3,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vextracti32x4 $3,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm4,%zmm4{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %zmm29,%zmm4,%zmm20 + vextracti32x4 $3,%zmm20,%xmm7 + subq $16 * (12 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_146 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 160(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_146 +.L_small_initial_partial_block_146: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_146: + + orq %r8,%r8 + je .L_after_reduction_146 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_146: + jmp .L_last_blocks_done_122 +.L_last_num_blocks_is_13_122: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $243,%r15d + jae .L_16_blocks_overflow_147 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %xmm27,%xmm4,%xmm5 + jmp .L_16_blocks_ok_147 + +.L_16_blocks_overflow_147: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %xmm29,%xmm5,%xmm5 +.L_16_blocks_ok_147: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $0,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%xmm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %xmm30,%xmm5,%xmm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %xmm21,%xmm5,%xmm5 + vextracti32x4 $0,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %xmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm5,%zmm5{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %zmm29,%zmm4,%zmm20 + vpshufb %xmm29,%xmm5,%xmm21 + vextracti32x4 $0,%zmm21,%xmm7 + subq $16 * (13 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_148 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 144(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm21,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm21,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm21,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm21,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_148 +.L_small_initial_partial_block_148: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 160(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_148: + + orq %r8,%r8 + je .L_after_reduction_148 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_148: + jmp .L_last_blocks_done_122 +.L_last_num_blocks_is_14_122: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $242,%r15d + jae .L_16_blocks_overflow_149 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %ymm27,%ymm4,%ymm5 + jmp .L_16_blocks_ok_149 + +.L_16_blocks_overflow_149: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %ymm29,%ymm5,%ymm5 +.L_16_blocks_ok_149: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $1,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%ymm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %ymm30,%ymm5,%ymm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %ymm21,%ymm5,%ymm5 + vextracti32x4 $1,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %ymm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm5,%zmm5{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %zmm29,%zmm4,%zmm20 + vpshufb %ymm29,%ymm5,%ymm21 + vextracti32x4 $1,%zmm21,%xmm7 + subq $16 * (14 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_150 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 128(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm21,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm21,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm21,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm21,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_150 +.L_small_initial_partial_block_150: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 144(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm21,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm21,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm21,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm21,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_150: + + orq %r8,%r8 + je .L_after_reduction_150 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_150: + jmp .L_last_blocks_done_122 +.L_last_num_blocks_is_15_122: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $241,%r15d + jae .L_16_blocks_overflow_151 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp .L_16_blocks_ok_151 + +.L_16_blocks_overflow_151: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +.L_16_blocks_ok_151: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $2,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%zmm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + vextracti32x4 $2,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %zmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm5,%zmm5{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %zmm29,%zmm4,%zmm20 + vpshufb %zmm29,%zmm5,%zmm21 + vextracti32x4 $2,%zmm21,%xmm7 + subq $16 * (15 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_152 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 112(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm21,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm21,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm21,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm21,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_152 +.L_small_initial_partial_block_152: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 128(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm21,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm21,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm21,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm21,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_152: + + orq %r8,%r8 + je .L_after_reduction_152 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_152: + jmp .L_last_blocks_done_122 +.L_last_num_blocks_is_16_122: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $240,%r15d + jae .L_16_blocks_overflow_153 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp .L_16_blocks_ok_153 + +.L_16_blocks_overflow_153: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +.L_16_blocks_ok_153: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $3,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%zmm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + vextracti32x4 $3,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %zmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm5,%zmm5{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %zmm29,%zmm4,%zmm20 + vpshufb %zmm29,%zmm5,%zmm21 + vextracti32x4 $3,%zmm21,%xmm7 + subq $16 * (16 - 1),%r8 +.L_small_initial_partial_block_154: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 112(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm21,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm21,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm21,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm21,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_154: + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_154: + jmp .L_last_blocks_done_122 +.L_last_num_blocks_is_0_122: + vmovdqa64 768(%rsp),%zmm13 + vpxorq %zmm14,%zmm13,%zmm13 + vmovdqu64 0(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 832(%rsp),%zmm13 + vmovdqu64 64(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + vpxorq %zmm10,%zmm4,%zmm26 + vpxorq %zmm6,%zmm0,%zmm24 + vpxorq %zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + vmovdqa64 896(%rsp),%zmm13 + vmovdqu64 128(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 960(%rsp),%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + + vpternlogq $0x96,%zmm10,%zmm4,%zmm26 + vpternlogq $0x96,%zmm6,%zmm0,%zmm24 + vpternlogq $0x96,%zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + + vpsrldq $8,%zmm26,%zmm0 + vpslldq $8,%zmm26,%zmm3 + vpxorq %zmm0,%zmm24,%zmm24 + vpxorq %zmm3,%zmm25,%zmm25 + vextracti64x4 $1,%zmm24,%ymm0 + vpxorq %ymm0,%ymm24,%ymm24 + vextracti32x4 $1,%ymm24,%xmm0 + vpxorq %xmm0,%xmm24,%xmm24 + vextracti64x4 $1,%zmm25,%ymm3 + vpxorq %ymm3,%ymm25,%ymm25 + vextracti32x4 $1,%ymm25,%xmm3 + vpxorq %xmm3,%xmm25,%xmm25 + vmovdqa64 POLY2(%rip),%xmm4 + + + vpclmulqdq $0x01,%xmm25,%xmm4,%xmm0 + vpslldq $8,%xmm0,%xmm0 + vpxorq %xmm0,%xmm25,%xmm0 + + + vpclmulqdq $0x00,%xmm0,%xmm4,%xmm3 + vpsrldq $4,%xmm3,%xmm3 + vpclmulqdq $0x10,%xmm0,%xmm4,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm24,%xmm3,%xmm14 + +.L_last_blocks_done_122: + vpshufb %xmm29,%xmm2,%xmm2 + jmp .L_ghash_done_10 + +.L_message_below_equal_16_blocks_10: + + + movl %r8d,%r12d + addl $15,%r12d + shrl $4,%r12d + cmpq $8,%r12 + je .L_small_initial_num_blocks_is_8_155 + jl .L_small_initial_num_blocks_is_7_1_155 + + + cmpq $12,%r12 + je .L_small_initial_num_blocks_is_12_155 + jl .L_small_initial_num_blocks_is_11_9_155 + + + cmpq $16,%r12 + je .L_small_initial_num_blocks_is_16_155 + cmpq $15,%r12 + je .L_small_initial_num_blocks_is_15_155 + cmpq $14,%r12 + je .L_small_initial_num_blocks_is_14_155 + jmp .L_small_initial_num_blocks_is_13_155 + +.L_small_initial_num_blocks_is_11_9_155: + + cmpq $11,%r12 + je .L_small_initial_num_blocks_is_11_155 + cmpq $10,%r12 + je .L_small_initial_num_blocks_is_10_155 + jmp .L_small_initial_num_blocks_is_9_155 + +.L_small_initial_num_blocks_is_7_1_155: + cmpq $4,%r12 + je .L_small_initial_num_blocks_is_4_155 + jl .L_small_initial_num_blocks_is_3_1_155 + + cmpq $7,%r12 + je .L_small_initial_num_blocks_is_7_155 + cmpq $6,%r12 + je .L_small_initial_num_blocks_is_6_155 + jmp .L_small_initial_num_blocks_is_5_155 + +.L_small_initial_num_blocks_is_3_1_155: + + cmpq $3,%r12 + je .L_small_initial_num_blocks_is_3_155 + cmpq $2,%r12 + je .L_small_initial_num_blocks_is_2_155 + + + + + +.L_small_initial_num_blocks_is_1_155: + vmovdqa64 SHUF_MASK(%rip),%xmm29 + vpaddd ONE(%rip),%xmm2,%xmm0 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $0,%zmm0,%xmm2 + vpshufb %xmm29,%xmm0,%xmm0 + vmovdqu8 0(%rcx,%r11,1),%xmm6{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %xmm15,%xmm0,%xmm0 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %xmm15,%xmm0,%xmm0 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %xmm15,%xmm0,%xmm0 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %xmm15,%xmm0,%xmm0 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %xmm15,%xmm0,%xmm0 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %xmm15,%xmm0,%xmm0 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %xmm15,%xmm0,%xmm0 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %xmm15,%xmm0,%xmm0 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %xmm15,%xmm0,%xmm0 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %xmm15,%xmm0,%xmm0 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenclast %xmm15,%xmm0,%xmm0 + vpxorq %xmm6,%xmm0,%xmm0 + vextracti32x4 $0,%zmm0,%xmm12 + movq %r9,%r10 + vmovdqu8 %xmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm0,%zmm0{%k1}{z} + vpshufb %xmm29,%xmm0,%xmm6 + vextracti32x4 $0,%zmm6,%xmm13 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_156 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 336(%rsi),%xmm20 + vpclmulqdq $0x01,%xmm20,%xmm6,%xmm4 + vpclmulqdq $0x10,%xmm20,%xmm6,%xmm5 + vpclmulqdq $0x11,%xmm20,%xmm6,%xmm0 + vpclmulqdq $0x00,%xmm20,%xmm6,%xmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_156 +.L_small_initial_partial_block_156: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + + + + + + + + + + + + vpxorq %xmm13,%xmm14,%xmm14 + + jmp .L_after_reduction_156 +.L_small_initial_compute_done_156: +.L_after_reduction_156: + jmp .L_small_initial_blocks_encrypted_155 +.L_small_initial_num_blocks_is_2_155: + vmovdqa64 SHUF_MASK(%rip),%ymm29 + vshufi64x2 $0,%ymm2,%ymm2,%ymm0 + vpaddd ddq_add_1234(%rip),%ymm0,%ymm0 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $1,%zmm0,%xmm2 + vpshufb %ymm29,%ymm0,%ymm0 + vmovdqu8 0(%rcx,%r11,1),%ymm6{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %ymm15,%ymm0,%ymm0 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %ymm15,%ymm0,%ymm0 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %ymm15,%ymm0,%ymm0 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %ymm15,%ymm0,%ymm0 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %ymm15,%ymm0,%ymm0 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %ymm15,%ymm0,%ymm0 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %ymm15,%ymm0,%ymm0 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %ymm15,%ymm0,%ymm0 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %ymm15,%ymm0,%ymm0 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %ymm15,%ymm0,%ymm0 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenclast %ymm15,%ymm0,%ymm0 + vpxorq %ymm6,%ymm0,%ymm0 + vextracti32x4 $1,%zmm0,%xmm12 + movq %r9,%r10 + vmovdqu8 %ymm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm0,%zmm0{%k1}{z} + vpshufb %ymm29,%ymm0,%ymm6 + vextracti32x4 $1,%zmm6,%xmm13 + subq $16 * (2 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_157 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 320(%rsi),%ymm20 + vpclmulqdq $0x01,%ymm20,%ymm6,%ymm4 + vpclmulqdq $0x10,%ymm20,%ymm6,%ymm5 + vpclmulqdq $0x11,%ymm20,%ymm6,%ymm0 + vpclmulqdq $0x00,%ymm20,%ymm6,%ymm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_157 +.L_small_initial_partial_block_157: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 336(%rsi),%xmm20 + vpclmulqdq $0x01,%xmm20,%xmm6,%xmm4 + vpclmulqdq $0x10,%xmm20,%xmm6,%xmm5 + vpclmulqdq $0x11,%xmm20,%xmm6,%xmm0 + vpclmulqdq $0x00,%xmm20,%xmm6,%xmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_157: + + orq %r8,%r8 + je .L_after_reduction_157 + vpxorq %xmm13,%xmm14,%xmm14 +.L_after_reduction_157: + jmp .L_small_initial_blocks_encrypted_155 +.L_small_initial_num_blocks_is_3_155: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $2,%zmm0,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vmovdqu8 0(%rcx,%r11,1),%zmm6{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vpxorq %zmm6,%zmm0,%zmm0 + vextracti32x4 $2,%zmm0,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm0,%zmm0{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm6 + vextracti32x4 $2,%zmm6,%xmm13 + subq $16 * (3 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_158 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 304(%rsi),%ymm20 + vinserti64x2 $2,336(%rsi),%zmm20,%zmm20 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_158 +.L_small_initial_partial_block_158: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 320(%rsi),%ymm20 + vpclmulqdq $0x01,%ymm20,%ymm6,%ymm4 + vpclmulqdq $0x10,%ymm20,%ymm6,%ymm5 + vpclmulqdq $0x11,%ymm20,%ymm6,%ymm0 + vpclmulqdq $0x00,%ymm20,%ymm6,%ymm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_158: + + orq %r8,%r8 + je .L_after_reduction_158 + vpxorq %xmm13,%xmm14,%xmm14 +.L_after_reduction_158: + jmp .L_small_initial_blocks_encrypted_155 +.L_small_initial_num_blocks_is_4_155: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $3,%zmm0,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vmovdqu8 0(%rcx,%r11,1),%zmm6{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vpxorq %zmm6,%zmm0,%zmm0 + vextracti32x4 $3,%zmm0,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm0,%zmm0{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm6 + vextracti32x4 $3,%zmm6,%xmm13 + subq $16 * (4 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_159 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 288(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm19 + + vpxorq %zmm19,%zmm17,%zmm17 + vpsrldq $8,%zmm17,%zmm4 + vpslldq $8,%zmm17,%zmm5 + vpxorq %zmm4,%zmm15,%zmm0 + vpxorq %zmm5,%zmm16,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_159 +.L_small_initial_partial_block_159: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 304(%rsi),%ymm20 + vinserti64x2 $2,336(%rsi),%zmm20,%zmm20 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_159: + + orq %r8,%r8 + je .L_after_reduction_159 + vpxorq %xmm13,%xmm14,%xmm14 +.L_after_reduction_159: + jmp .L_small_initial_blocks_encrypted_155 +.L_small_initial_num_blocks_is_5_155: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd ddq_add_5678(%rip),%zmm2,%zmm3 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + subq $64,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $0,%zmm3,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %xmm29,%xmm3,%xmm3 + vmovdqu8 0(%rcx,%r11,1),%zmm6 + vmovdqu8 64(%rcx,%r11,1),%xmm7{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %xmm15,%xmm3,%xmm3 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %xmm15,%xmm3,%xmm3 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %xmm15,%xmm3,%xmm3 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %xmm15,%xmm3,%xmm3 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %xmm15,%xmm3,%xmm3 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %xmm15,%xmm3,%xmm3 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %xmm15,%xmm3,%xmm3 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %xmm15,%xmm3,%xmm3 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %xmm15,%xmm3,%xmm3 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %xmm15,%xmm3,%xmm3 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vaesenclast %xmm15,%xmm3,%xmm3 + vpxorq %zmm6,%zmm0,%zmm0 + vpxorq %xmm7,%xmm3,%xmm3 + vextracti32x4 $0,%zmm3,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %xmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm3,%zmm3{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm6 + vpshufb %xmm29,%xmm3,%xmm7 + vextracti32x4 $0,%zmm7,%xmm13 + subq $16 * (5 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_160 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 272(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm19 + vmovdqu64 336(%rsi),%xmm20 + vpclmulqdq $0x01,%xmm20,%xmm7,%xmm4 + vpclmulqdq $0x10,%xmm20,%xmm7,%xmm5 + vpclmulqdq $0x11,%xmm20,%xmm7,%xmm0 + vpclmulqdq $0x00,%xmm20,%xmm7,%xmm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_160 +.L_small_initial_partial_block_160: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 288(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm19 + + vpxorq %zmm19,%zmm17,%zmm17 + vpsrldq $8,%zmm17,%zmm4 + vpslldq $8,%zmm17,%zmm5 + vpxorq %zmm4,%zmm15,%zmm0 + vpxorq %zmm5,%zmm16,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_160: + + orq %r8,%r8 + je .L_after_reduction_160 + vpxorq %xmm13,%xmm14,%xmm14 +.L_after_reduction_160: + jmp .L_small_initial_blocks_encrypted_155 +.L_small_initial_num_blocks_is_6_155: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd ddq_add_5678(%rip),%zmm2,%zmm3 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + subq $64,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $1,%zmm3,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %ymm29,%ymm3,%ymm3 + vmovdqu8 0(%rcx,%r11,1),%zmm6 + vmovdqu8 64(%rcx,%r11,1),%ymm7{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %ymm15,%ymm3,%ymm3 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %ymm15,%ymm3,%ymm3 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %ymm15,%ymm3,%ymm3 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %ymm15,%ymm3,%ymm3 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %ymm15,%ymm3,%ymm3 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %ymm15,%ymm3,%ymm3 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %ymm15,%ymm3,%ymm3 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %ymm15,%ymm3,%ymm3 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %ymm15,%ymm3,%ymm3 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %ymm15,%ymm3,%ymm3 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vaesenclast %ymm15,%ymm3,%ymm3 + vpxorq %zmm6,%zmm0,%zmm0 + vpxorq %ymm7,%ymm3,%ymm3 + vextracti32x4 $1,%zmm3,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %ymm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm3,%zmm3{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm6 + vpshufb %ymm29,%ymm3,%ymm7 + vextracti32x4 $1,%zmm7,%xmm13 + subq $16 * (6 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_161 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 256(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm19 + vmovdqu64 320(%rsi),%ymm20 + vpclmulqdq $0x01,%ymm20,%ymm7,%ymm4 + vpclmulqdq $0x10,%ymm20,%ymm7,%ymm5 + vpclmulqdq $0x11,%ymm20,%ymm7,%ymm0 + vpclmulqdq $0x00,%ymm20,%ymm7,%ymm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_161 +.L_small_initial_partial_block_161: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 272(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm19 + vmovdqu64 336(%rsi),%xmm20 + vpclmulqdq $0x01,%xmm20,%xmm7,%xmm4 + vpclmulqdq $0x10,%xmm20,%xmm7,%xmm5 + vpclmulqdq $0x11,%xmm20,%xmm7,%xmm0 + vpclmulqdq $0x00,%xmm20,%xmm7,%xmm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_161: + + orq %r8,%r8 + je .L_after_reduction_161 + vpxorq %xmm13,%xmm14,%xmm14 +.L_after_reduction_161: + jmp .L_small_initial_blocks_encrypted_155 +.L_small_initial_num_blocks_is_7_155: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd ddq_add_5678(%rip),%zmm2,%zmm3 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + subq $64,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $2,%zmm3,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vmovdqu8 0(%rcx,%r11,1),%zmm6 + vmovdqu8 64(%rcx,%r11,1),%zmm7{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vaesenclast %zmm15,%zmm3,%zmm3 + vpxorq %zmm6,%zmm0,%zmm0 + vpxorq %zmm7,%zmm3,%zmm3 + vextracti32x4 $2,%zmm3,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm3,%zmm3{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm6 + vpshufb %zmm29,%zmm3,%zmm7 + vextracti32x4 $2,%zmm7,%xmm13 + subq $16 * (7 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_162 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 240(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm19 + vmovdqu64 304(%rsi),%ymm20 + vinserti64x2 $2,336(%rsi),%zmm20,%zmm20 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm5 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_162 +.L_small_initial_partial_block_162: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 256(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm19 + vmovdqu64 320(%rsi),%ymm20 + vpclmulqdq $0x01,%ymm20,%ymm7,%ymm4 + vpclmulqdq $0x10,%ymm20,%ymm7,%ymm5 + vpclmulqdq $0x11,%ymm20,%ymm7,%ymm0 + vpclmulqdq $0x00,%ymm20,%ymm7,%ymm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_162: + + orq %r8,%r8 + je .L_after_reduction_162 + vpxorq %xmm13,%xmm14,%xmm14 +.L_after_reduction_162: + jmp .L_small_initial_blocks_encrypted_155 +.L_small_initial_num_blocks_is_8_155: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd ddq_add_5678(%rip),%zmm2,%zmm3 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + subq $64,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $3,%zmm3,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vmovdqu8 0(%rcx,%r11,1),%zmm6 + vmovdqu8 64(%rcx,%r11,1),%zmm7{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vaesenclast %zmm15,%zmm3,%zmm3 + vpxorq %zmm6,%zmm0,%zmm0 + vpxorq %zmm7,%zmm3,%zmm3 + vextracti32x4 $3,%zmm3,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm3,%zmm3{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm6 + vpshufb %zmm29,%zmm3,%zmm7 + vextracti32x4 $3,%zmm7,%xmm13 + subq $16 * (8 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_163 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 224(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 288(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vpxorq %zmm15,%zmm0,%zmm15 + vpxorq %zmm16,%zmm3,%zmm16 + vpxorq %zmm17,%zmm4,%zmm17 + vpxorq %zmm19,%zmm5,%zmm19 + + vpxorq %zmm19,%zmm17,%zmm17 + vpsrldq $8,%zmm17,%zmm4 + vpslldq $8,%zmm17,%zmm5 + vpxorq %zmm4,%zmm15,%zmm0 + vpxorq %zmm5,%zmm16,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_163 +.L_small_initial_partial_block_163: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 240(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm19 + vmovdqu64 304(%rsi),%ymm20 + vinserti64x2 $2,336(%rsi),%zmm20,%zmm20 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm5 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_163: + + orq %r8,%r8 + je .L_after_reduction_163 + vpxorq %xmm13,%xmm14,%xmm14 +.L_after_reduction_163: + jmp .L_small_initial_blocks_encrypted_155 +.L_small_initial_num_blocks_is_9_155: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd ddq_add_5678(%rip),%zmm2,%zmm3 + vpaddd ddq_add_8888(%rip),%zmm0,%zmm4 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + subq $128,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $0,%zmm4,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %xmm29,%xmm4,%xmm4 + vmovdqu8 0(%rcx,%r11,1),%zmm6 + vmovdqu8 64(%rcx,%r11,1),%zmm7 + vmovdqu8 128(%rcx,%r11,1),%xmm10{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm15,%zmm3,%zmm3 + vpxorq %xmm15,%xmm4,%xmm4 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %xmm15,%xmm4,%xmm4 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %xmm15,%xmm4,%xmm4 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %xmm15,%xmm4,%xmm4 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %xmm15,%xmm4,%xmm4 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %xmm15,%xmm4,%xmm4 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %xmm15,%xmm4,%xmm4 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %xmm15,%xmm4,%xmm4 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %xmm15,%xmm4,%xmm4 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %xmm15,%xmm4,%xmm4 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vaesenclast %zmm15,%zmm3,%zmm3 + vaesenclast %xmm15,%xmm4,%xmm4 + vpxorq %zmm6,%zmm0,%zmm0 + vpxorq %zmm7,%zmm3,%zmm3 + vpxorq %xmm10,%xmm4,%xmm4 + vextracti32x4 $0,%zmm4,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %xmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm4,%zmm4{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm6 + vpshufb %zmm29,%zmm3,%zmm7 + vpshufb %xmm29,%xmm4,%xmm10 + vextracti32x4 $0,%zmm10,%xmm13 + subq $16 * (9 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_164 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 208(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 272(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vpxorq %zmm15,%zmm0,%zmm15 + vpxorq %zmm16,%zmm3,%zmm16 + vpxorq %zmm17,%zmm4,%zmm17 + vpxorq %zmm19,%zmm5,%zmm19 + vmovdqu64 336(%rsi),%xmm20 + vpclmulqdq $0x01,%xmm20,%xmm10,%xmm4 + vpclmulqdq $0x10,%xmm20,%xmm10,%xmm5 + vpclmulqdq $0x11,%xmm20,%xmm10,%xmm0 + vpclmulqdq $0x00,%xmm20,%xmm10,%xmm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_164 +.L_small_initial_partial_block_164: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 224(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 288(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vpxorq %zmm15,%zmm0,%zmm15 + vpxorq %zmm16,%zmm3,%zmm16 + vpxorq %zmm17,%zmm4,%zmm17 + vpxorq %zmm19,%zmm5,%zmm19 + + vpxorq %zmm19,%zmm17,%zmm17 + vpsrldq $8,%zmm17,%zmm4 + vpslldq $8,%zmm17,%zmm5 + vpxorq %zmm4,%zmm15,%zmm0 + vpxorq %zmm5,%zmm16,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_164: + + orq %r8,%r8 + je .L_after_reduction_164 + vpxorq %xmm13,%xmm14,%xmm14 +.L_after_reduction_164: + jmp .L_small_initial_blocks_encrypted_155 +.L_small_initial_num_blocks_is_10_155: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd ddq_add_5678(%rip),%zmm2,%zmm3 + vpaddd ddq_add_8888(%rip),%zmm0,%zmm4 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + subq $128,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $1,%zmm4,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %ymm29,%ymm4,%ymm4 + vmovdqu8 0(%rcx,%r11,1),%zmm6 + vmovdqu8 64(%rcx,%r11,1),%zmm7 + vmovdqu8 128(%rcx,%r11,1),%ymm10{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm15,%zmm3,%zmm3 + vpxorq %ymm15,%ymm4,%ymm4 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %ymm15,%ymm4,%ymm4 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %ymm15,%ymm4,%ymm4 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %ymm15,%ymm4,%ymm4 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %ymm15,%ymm4,%ymm4 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %ymm15,%ymm4,%ymm4 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %ymm15,%ymm4,%ymm4 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %ymm15,%ymm4,%ymm4 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %ymm15,%ymm4,%ymm4 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %ymm15,%ymm4,%ymm4 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vaesenclast %zmm15,%zmm3,%zmm3 + vaesenclast %ymm15,%ymm4,%ymm4 + vpxorq %zmm6,%zmm0,%zmm0 + vpxorq %zmm7,%zmm3,%zmm3 + vpxorq %ymm10,%ymm4,%ymm4 + vextracti32x4 $1,%zmm4,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %ymm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm4,%zmm4{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm6 + vpshufb %zmm29,%zmm3,%zmm7 + vpshufb %ymm29,%ymm4,%ymm10 + vextracti32x4 $1,%zmm10,%xmm13 + subq $16 * (10 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_165 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 192(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 256(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vpxorq %zmm15,%zmm0,%zmm15 + vpxorq %zmm16,%zmm3,%zmm16 + vpxorq %zmm17,%zmm4,%zmm17 + vpxorq %zmm19,%zmm5,%zmm19 + vmovdqu64 320(%rsi),%ymm20 + vpclmulqdq $0x01,%ymm20,%ymm10,%ymm4 + vpclmulqdq $0x10,%ymm20,%ymm10,%ymm5 + vpclmulqdq $0x11,%ymm20,%ymm10,%ymm0 + vpclmulqdq $0x00,%ymm20,%ymm10,%ymm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_165 +.L_small_initial_partial_block_165: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 208(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 272(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vpxorq %zmm15,%zmm0,%zmm15 + vpxorq %zmm16,%zmm3,%zmm16 + vpxorq %zmm17,%zmm4,%zmm17 + vpxorq %zmm19,%zmm5,%zmm19 + vmovdqu64 336(%rsi),%xmm20 + vpclmulqdq $0x01,%xmm20,%xmm10,%xmm4 + vpclmulqdq $0x10,%xmm20,%xmm10,%xmm5 + vpclmulqdq $0x11,%xmm20,%xmm10,%xmm0 + vpclmulqdq $0x00,%xmm20,%xmm10,%xmm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_165: + + orq %r8,%r8 + je .L_after_reduction_165 + vpxorq %xmm13,%xmm14,%xmm14 +.L_after_reduction_165: + jmp .L_small_initial_blocks_encrypted_155 +.L_small_initial_num_blocks_is_11_155: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd ddq_add_5678(%rip),%zmm2,%zmm3 + vpaddd ddq_add_8888(%rip),%zmm0,%zmm4 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + subq $128,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $2,%zmm4,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vmovdqu8 0(%rcx,%r11,1),%zmm6 + vmovdqu8 64(%rcx,%r11,1),%zmm7 + vmovdqu8 128(%rcx,%r11,1),%zmm10{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm15,%zmm3,%zmm3 + vpxorq %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vaesenclast %zmm15,%zmm3,%zmm3 + vaesenclast %zmm15,%zmm4,%zmm4 + vpxorq %zmm6,%zmm0,%zmm0 + vpxorq %zmm7,%zmm3,%zmm3 + vpxorq %zmm10,%zmm4,%zmm4 + vextracti32x4 $2,%zmm4,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm4,%zmm4{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm6 + vpshufb %zmm29,%zmm3,%zmm7 + vpshufb %zmm29,%zmm4,%zmm10 + vextracti32x4 $2,%zmm10,%xmm13 + subq $16 * (11 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_166 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 176(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 240(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vpxorq %zmm15,%zmm0,%zmm15 + vpxorq %zmm16,%zmm3,%zmm16 + vpxorq %zmm17,%zmm4,%zmm17 + vpxorq %zmm19,%zmm5,%zmm19 + vmovdqu64 304(%rsi),%ymm20 + vinserti64x2 $2,336(%rsi),%zmm20,%zmm20 + vpclmulqdq $0x01,%zmm20,%zmm10,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm10,%zmm5 + vpclmulqdq $0x11,%zmm20,%zmm10,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm10,%zmm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_166 +.L_small_initial_partial_block_166: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 192(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 256(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vpxorq %zmm15,%zmm0,%zmm15 + vpxorq %zmm16,%zmm3,%zmm16 + vpxorq %zmm17,%zmm4,%zmm17 + vpxorq %zmm19,%zmm5,%zmm19 + vmovdqu64 320(%rsi),%ymm20 + vpclmulqdq $0x01,%ymm20,%ymm10,%ymm4 + vpclmulqdq $0x10,%ymm20,%ymm10,%ymm5 + vpclmulqdq $0x11,%ymm20,%ymm10,%ymm0 + vpclmulqdq $0x00,%ymm20,%ymm10,%ymm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_166: + + orq %r8,%r8 + je .L_after_reduction_166 + vpxorq %xmm13,%xmm14,%xmm14 +.L_after_reduction_166: + jmp .L_small_initial_blocks_encrypted_155 +.L_small_initial_num_blocks_is_12_155: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd ddq_add_5678(%rip),%zmm2,%zmm3 + vpaddd ddq_add_8888(%rip),%zmm0,%zmm4 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + subq $128,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $3,%zmm4,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vmovdqu8 0(%rcx,%r11,1),%zmm6 + vmovdqu8 64(%rcx,%r11,1),%zmm7 + vmovdqu8 128(%rcx,%r11,1),%zmm10{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm15,%zmm3,%zmm3 + vpxorq %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vaesenclast %zmm15,%zmm3,%zmm3 + vaesenclast %zmm15,%zmm4,%zmm4 + vpxorq %zmm6,%zmm0,%zmm0 + vpxorq %zmm7,%zmm3,%zmm3 + vpxorq %zmm10,%zmm4,%zmm4 + vextracti32x4 $3,%zmm4,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm4,%zmm4{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm6 + vpshufb %zmm29,%zmm3,%zmm7 + vpshufb %zmm29,%zmm4,%zmm10 + vextracti32x4 $3,%zmm10,%xmm13 + subq $16 * (12 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_167 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 160(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 224(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vmovdqu64 288(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x00,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm0,%zmm6,%zmm15 + vpternlogq $0x96,%zmm3,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x10,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm4,%zmm6,%zmm17 + vpternlogq $0x96,%zmm5,%zmm7,%zmm19 + + vpxorq %zmm19,%zmm17,%zmm17 + vpsrldq $8,%zmm17,%zmm4 + vpslldq $8,%zmm17,%zmm5 + vpxorq %zmm4,%zmm15,%zmm0 + vpxorq %zmm5,%zmm16,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_167 +.L_small_initial_partial_block_167: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 176(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 240(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vpxorq %zmm15,%zmm0,%zmm15 + vpxorq %zmm16,%zmm3,%zmm16 + vpxorq %zmm17,%zmm4,%zmm17 + vpxorq %zmm19,%zmm5,%zmm19 + vmovdqu64 304(%rsi),%ymm20 + vinserti64x2 $2,336(%rsi),%zmm20,%zmm20 + vpclmulqdq $0x01,%zmm20,%zmm10,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm10,%zmm5 + vpclmulqdq $0x11,%zmm20,%zmm10,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm10,%zmm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_167: + + orq %r8,%r8 + je .L_after_reduction_167 + vpxorq %xmm13,%xmm14,%xmm14 +.L_after_reduction_167: + jmp .L_small_initial_blocks_encrypted_155 +.L_small_initial_num_blocks_is_13_155: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd ddq_add_5678(%rip),%zmm2,%zmm3 + vpaddd ddq_add_8888(%rip),%zmm0,%zmm4 + vpaddd ddq_add_8888(%rip),%zmm3,%zmm5 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + subq $192,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $0,%zmm5,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %xmm29,%xmm5,%xmm5 + vmovdqu8 0(%rcx,%r11,1),%zmm6 + vmovdqu8 64(%rcx,%r11,1),%zmm7 + vmovdqu8 128(%rcx,%r11,1),%zmm10 + vmovdqu8 192(%rcx,%r11,1),%xmm11{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm15,%zmm3,%zmm3 + vpxorq %zmm15,%zmm4,%zmm4 + vpxorq %xmm15,%xmm5,%xmm5 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %xmm15,%xmm5,%xmm5 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %xmm15,%xmm5,%xmm5 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %xmm15,%xmm5,%xmm5 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %xmm15,%xmm5,%xmm5 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %xmm15,%xmm5,%xmm5 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %xmm15,%xmm5,%xmm5 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %xmm15,%xmm5,%xmm5 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %xmm15,%xmm5,%xmm5 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %xmm15,%xmm5,%xmm5 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vaesenclast %zmm15,%zmm3,%zmm3 + vaesenclast %zmm15,%zmm4,%zmm4 + vaesenclast %xmm15,%xmm5,%xmm5 + vpxorq %zmm6,%zmm0,%zmm0 + vpxorq %zmm7,%zmm3,%zmm3 + vpxorq %zmm10,%zmm4,%zmm4 + vpxorq %xmm11,%xmm5,%xmm5 + vextracti32x4 $0,%zmm5,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %xmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm5,%zmm5{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm6 + vpshufb %zmm29,%zmm3,%zmm7 + vpshufb %zmm29,%zmm4,%zmm10 + vpshufb %xmm29,%xmm5,%xmm11 + vextracti32x4 $0,%zmm11,%xmm13 + subq $16 * (13 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_168 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 144(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 208(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vmovdqu64 272(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x00,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm0,%zmm6,%zmm15 + vpternlogq $0x96,%zmm3,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x10,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm4,%zmm6,%zmm17 + vpternlogq $0x96,%zmm5,%zmm7,%zmm19 + vmovdqu64 336(%rsi),%xmm20 + vpclmulqdq $0x01,%xmm20,%xmm11,%xmm4 + vpclmulqdq $0x10,%xmm20,%xmm11,%xmm5 + vpclmulqdq $0x11,%xmm20,%xmm11,%xmm0 + vpclmulqdq $0x00,%xmm20,%xmm11,%xmm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_168 +.L_small_initial_partial_block_168: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 160(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 224(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vmovdqu64 288(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x00,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm0,%zmm6,%zmm15 + vpternlogq $0x96,%zmm3,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x10,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm4,%zmm6,%zmm17 + vpternlogq $0x96,%zmm5,%zmm7,%zmm19 + + vpxorq %zmm19,%zmm17,%zmm17 + vpsrldq $8,%zmm17,%zmm4 + vpslldq $8,%zmm17,%zmm5 + vpxorq %zmm4,%zmm15,%zmm0 + vpxorq %zmm5,%zmm16,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_168: + + orq %r8,%r8 + je .L_after_reduction_168 + vpxorq %xmm13,%xmm14,%xmm14 +.L_after_reduction_168: + jmp .L_small_initial_blocks_encrypted_155 +.L_small_initial_num_blocks_is_14_155: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd ddq_add_5678(%rip),%zmm2,%zmm3 + vpaddd ddq_add_8888(%rip),%zmm0,%zmm4 + vpaddd ddq_add_8888(%rip),%zmm3,%zmm5 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + subq $192,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $1,%zmm5,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %ymm29,%ymm5,%ymm5 + vmovdqu8 0(%rcx,%r11,1),%zmm6 + vmovdqu8 64(%rcx,%r11,1),%zmm7 + vmovdqu8 128(%rcx,%r11,1),%zmm10 + vmovdqu8 192(%rcx,%r11,1),%ymm11{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm15,%zmm3,%zmm3 + vpxorq %zmm15,%zmm4,%zmm4 + vpxorq %ymm15,%ymm5,%ymm5 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %ymm15,%ymm5,%ymm5 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %ymm15,%ymm5,%ymm5 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %ymm15,%ymm5,%ymm5 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %ymm15,%ymm5,%ymm5 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %ymm15,%ymm5,%ymm5 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %ymm15,%ymm5,%ymm5 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %ymm15,%ymm5,%ymm5 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %ymm15,%ymm5,%ymm5 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %ymm15,%ymm5,%ymm5 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vaesenclast %zmm15,%zmm3,%zmm3 + vaesenclast %zmm15,%zmm4,%zmm4 + vaesenclast %ymm15,%ymm5,%ymm5 + vpxorq %zmm6,%zmm0,%zmm0 + vpxorq %zmm7,%zmm3,%zmm3 + vpxorq %zmm10,%zmm4,%zmm4 + vpxorq %ymm11,%ymm5,%ymm5 + vextracti32x4 $1,%zmm5,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %ymm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm5,%zmm5{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm6 + vpshufb %zmm29,%zmm3,%zmm7 + vpshufb %zmm29,%zmm4,%zmm10 + vpshufb %ymm29,%ymm5,%ymm11 + vextracti32x4 $1,%zmm11,%xmm13 + subq $16 * (14 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_169 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 128(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 192(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vmovdqu64 256(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x00,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm0,%zmm6,%zmm15 + vpternlogq $0x96,%zmm3,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x10,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm4,%zmm6,%zmm17 + vpternlogq $0x96,%zmm5,%zmm7,%zmm19 + vmovdqu64 320(%rsi),%ymm20 + vpclmulqdq $0x01,%ymm20,%ymm11,%ymm4 + vpclmulqdq $0x10,%ymm20,%ymm11,%ymm5 + vpclmulqdq $0x11,%ymm20,%ymm11,%ymm0 + vpclmulqdq $0x00,%ymm20,%ymm11,%ymm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_169 +.L_small_initial_partial_block_169: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 144(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 208(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vmovdqu64 272(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x00,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm0,%zmm6,%zmm15 + vpternlogq $0x96,%zmm3,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x10,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm4,%zmm6,%zmm17 + vpternlogq $0x96,%zmm5,%zmm7,%zmm19 + vmovdqu64 336(%rsi),%xmm20 + vpclmulqdq $0x01,%xmm20,%xmm11,%xmm4 + vpclmulqdq $0x10,%xmm20,%xmm11,%xmm5 + vpclmulqdq $0x11,%xmm20,%xmm11,%xmm0 + vpclmulqdq $0x00,%xmm20,%xmm11,%xmm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_169: + + orq %r8,%r8 + je .L_after_reduction_169 + vpxorq %xmm13,%xmm14,%xmm14 +.L_after_reduction_169: + jmp .L_small_initial_blocks_encrypted_155 +.L_small_initial_num_blocks_is_15_155: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd ddq_add_5678(%rip),%zmm2,%zmm3 + vpaddd ddq_add_8888(%rip),%zmm0,%zmm4 + vpaddd ddq_add_8888(%rip),%zmm3,%zmm5 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + subq $192,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $2,%zmm5,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 + vmovdqu8 0(%rcx,%r11,1),%zmm6 + vmovdqu8 64(%rcx,%r11,1),%zmm7 + vmovdqu8 128(%rcx,%r11,1),%zmm10 + vmovdqu8 192(%rcx,%r11,1),%zmm11{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm15,%zmm3,%zmm3 + vpxorq %zmm15,%zmm4,%zmm4 + vpxorq %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vaesenclast %zmm15,%zmm3,%zmm3 + vaesenclast %zmm15,%zmm4,%zmm4 + vaesenclast %zmm15,%zmm5,%zmm5 + vpxorq %zmm6,%zmm0,%zmm0 + vpxorq %zmm7,%zmm3,%zmm3 + vpxorq %zmm10,%zmm4,%zmm4 + vpxorq %zmm11,%zmm5,%zmm5 + vextracti32x4 $2,%zmm5,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %zmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm5,%zmm5{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm6 + vpshufb %zmm29,%zmm3,%zmm7 + vpshufb %zmm29,%zmm4,%zmm10 + vpshufb %zmm29,%zmm5,%zmm11 + vextracti32x4 $2,%zmm11,%xmm13 + subq $16 * (15 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_170 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 112(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 176(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vmovdqu64 240(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x00,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm0,%zmm6,%zmm15 + vpternlogq $0x96,%zmm3,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x10,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm4,%zmm6,%zmm17 + vpternlogq $0x96,%zmm5,%zmm7,%zmm19 + vmovdqu64 304(%rsi),%ymm20 + vinserti64x2 $2,336(%rsi),%zmm20,%zmm20 + vpclmulqdq $0x01,%zmm20,%zmm11,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm11,%zmm5 + vpclmulqdq $0x11,%zmm20,%zmm11,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm11,%zmm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_170 +.L_small_initial_partial_block_170: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 128(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 192(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vmovdqu64 256(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x00,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm0,%zmm6,%zmm15 + vpternlogq $0x96,%zmm3,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x10,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm4,%zmm6,%zmm17 + vpternlogq $0x96,%zmm5,%zmm7,%zmm19 + vmovdqu64 320(%rsi),%ymm20 + vpclmulqdq $0x01,%ymm20,%ymm11,%ymm4 + vpclmulqdq $0x10,%ymm20,%ymm11,%ymm5 + vpclmulqdq $0x11,%ymm20,%ymm11,%ymm0 + vpclmulqdq $0x00,%ymm20,%ymm11,%ymm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_170: + + orq %r8,%r8 + je .L_after_reduction_170 + vpxorq %xmm13,%xmm14,%xmm14 +.L_after_reduction_170: + jmp .L_small_initial_blocks_encrypted_155 +.L_small_initial_num_blocks_is_16_155: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd ddq_add_5678(%rip),%zmm2,%zmm3 + vpaddd ddq_add_8888(%rip),%zmm0,%zmm4 + vpaddd ddq_add_8888(%rip),%zmm3,%zmm5 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + subq $192,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $3,%zmm5,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 + vmovdqu8 0(%rcx,%r11,1),%zmm6 + vmovdqu8 64(%rcx,%r11,1),%zmm7 + vmovdqu8 128(%rcx,%r11,1),%zmm10 + vmovdqu8 192(%rcx,%r11,1),%zmm11{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm15,%zmm3,%zmm3 + vpxorq %zmm15,%zmm4,%zmm4 + vpxorq %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vaesenclast %zmm15,%zmm3,%zmm3 + vaesenclast %zmm15,%zmm4,%zmm4 + vaesenclast %zmm15,%zmm5,%zmm5 + vpxorq %zmm6,%zmm0,%zmm0 + vpxorq %zmm7,%zmm3,%zmm3 + vpxorq %zmm10,%zmm4,%zmm4 + vpxorq %zmm11,%zmm5,%zmm5 + vextracti32x4 $3,%zmm5,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %zmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm5,%zmm5{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm6 + vpshufb %zmm29,%zmm3,%zmm7 + vpshufb %zmm29,%zmm4,%zmm10 + vpshufb %zmm29,%zmm5,%zmm11 + vextracti32x4 $3,%zmm11,%xmm13 + subq $16 * (16 - 1),%r8 +.L_small_initial_partial_block_171: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 112(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 176(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vmovdqu64 240(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x00,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm0,%zmm6,%zmm15 + vpternlogq $0x96,%zmm3,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x10,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm4,%zmm6,%zmm17 + vpternlogq $0x96,%zmm5,%zmm7,%zmm19 + vmovdqu64 304(%rsi),%ymm20 + vinserti64x2 $2,336(%rsi),%zmm20,%zmm20 + vpclmulqdq $0x01,%zmm20,%zmm11,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm11,%zmm5 + vpclmulqdq $0x11,%zmm20,%zmm11,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm11,%zmm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_171: + vpxorq %xmm13,%xmm14,%xmm14 +.L_after_reduction_171: +.L_small_initial_blocks_encrypted_155: +.L_ghash_done_10: + vmovdqu64 %xmm2,0(%rsi) + vmovdqu64 %xmm14,64(%rsi) +.L_enc_dec_done_10: + jmp .Lexit_gcm_encrypt +.align 32 +.Laes_gcm_encrypt_192_avx512: + orq %r8,%r8 + je .L_enc_dec_done_172 + xorq %r14,%r14 + vmovdqu64 64(%rsi),%xmm14 + + movq (%rdx),%r11 + orq %r11,%r11 + je .L_partial_block_done_173 + movl $16,%r10d + leaq byte_len_to_mask_table(%rip),%r12 + cmpq %r10,%r8 + cmovcq %r8,%r10 + kmovw (%r12,%r10,2),%k1 + vmovdqu8 (%rcx),%xmm0{%k1}{z} + + vmovdqu64 16(%rsi),%xmm3 + vmovdqu64 336(%rsi),%xmm4 + + + + leaq SHIFT_MASK(%rip),%r12 + addq %r11,%r12 + vmovdqu64 (%r12),%xmm5 + vpshufb %xmm5,%xmm3,%xmm3 + vpxorq %xmm0,%xmm3,%xmm3 + + + leaq (%r8,%r11,1),%r13 + subq $16,%r13 + jge .L_no_extra_mask_173 + subq %r13,%r12 +.L_no_extra_mask_173: + + + + vmovdqu64 16(%r12),%xmm0 + vpand %xmm0,%xmm3,%xmm3 + vpshufb SHUF_MASK(%rip),%xmm3,%xmm3 + vpshufb %xmm5,%xmm3,%xmm3 + vpxorq %xmm3,%xmm14,%xmm14 + cmpq $0,%r13 + jl .L_partial_incomplete_173 + + vpclmulqdq $0x11,%xmm4,%xmm14,%xmm7 + vpclmulqdq $0x00,%xmm4,%xmm14,%xmm10 + vpclmulqdq $0x01,%xmm4,%xmm14,%xmm11 + vpclmulqdq $0x10,%xmm4,%xmm14,%xmm14 + vpxorq %xmm11,%xmm14,%xmm14 + + vpsrldq $8,%xmm14,%xmm11 + vpslldq $8,%xmm14,%xmm14 + vpxorq %xmm11,%xmm7,%xmm7 + vpxorq %xmm10,%xmm14,%xmm14 + + + + vmovdqu64 POLY2(%rip),%xmm11 + + vpclmulqdq $0x01,%xmm14,%xmm11,%xmm10 + vpslldq $8,%xmm10,%xmm10 + vpxorq %xmm10,%xmm14,%xmm14 + + + + vpclmulqdq $0x00,%xmm14,%xmm11,%xmm10 + vpsrldq $4,%xmm10,%xmm10 + vpclmulqdq $0x10,%xmm14,%xmm11,%xmm14 + vpslldq $4,%xmm14,%xmm14 + + vpternlogq $0x96,%xmm10,%xmm7,%xmm14 + + movq $0,(%rdx) + + movq %r11,%r12 + movq $16,%r11 + subq %r12,%r11 + jmp .L_enc_dec_done_173 + +.L_partial_incomplete_173: + addq %r8,(%rdx) + movq %r8,%r11 + +.L_enc_dec_done_173: + + + leaq byte_len_to_mask_table(%rip),%r12 + kmovw (%r12,%r11,2),%k1 + vmovdqu64 %xmm14,64(%rsi) + + vpshufb SHUF_MASK(%rip),%xmm3,%xmm3 + vpshufb %xmm5,%xmm3,%xmm3 + movq %r9,%r12 + vmovdqu8 %xmm3,(%r12){%k1} +.L_partial_block_done_173: + vmovdqu64 0(%rsi),%xmm2 + subq %r11,%r8 + je .L_enc_dec_done_172 + cmpq $256,%r8 + jbe .L_message_below_equal_16_blocks_172 + + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vmovdqa64 ddq_addbe_4444(%rip),%zmm27 + vmovdqa64 ddq_addbe_1234(%rip),%zmm28 + + + + + + + vmovd %xmm2,%r15d + andl $255,%r15d + + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpshufb %zmm29,%zmm2,%zmm2 + + + + cmpb $240,%r15b + jae .L_next_16_overflow_174 + vpaddd %zmm28,%zmm2,%zmm7 + vpaddd %zmm27,%zmm7,%zmm10 + vpaddd %zmm27,%zmm10,%zmm11 + vpaddd %zmm27,%zmm11,%zmm12 + jmp .L_next_16_ok_174 +.L_next_16_overflow_174: + vpshufb %zmm29,%zmm2,%zmm2 + vmovdqa64 ddq_add_4444(%rip),%zmm12 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm7 + vpaddd %zmm12,%zmm7,%zmm10 + vpaddd %zmm12,%zmm10,%zmm11 + vpaddd %zmm12,%zmm11,%zmm12 + vpshufb %zmm29,%zmm7,%zmm7 + vpshufb %zmm29,%zmm10,%zmm10 + vpshufb %zmm29,%zmm11,%zmm11 + vpshufb %zmm29,%zmm12,%zmm12 +.L_next_16_ok_174: + vshufi64x2 $255,%zmm12,%zmm12,%zmm2 + addb $16,%r15b + + vmovdqu8 0(%rcx,%r11,1),%zmm0 + vmovdqu8 64(%rcx,%r11,1),%zmm3 + vmovdqu8 128(%rcx,%r11,1),%zmm4 + vmovdqu8 192(%rcx,%r11,1),%zmm5 + + + vbroadcastf64x2 0(%rdi),%zmm6 + vpxorq %zmm6,%zmm7,%zmm7 + vpxorq %zmm6,%zmm10,%zmm10 + vpxorq %zmm6,%zmm11,%zmm11 + vpxorq %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 16(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 32(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 48(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 64(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 80(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 96(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 112(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 128(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 144(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 160(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 176(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 192(%rdi),%zmm6 + vaesenclast %zmm6,%zmm7,%zmm7 + vaesenclast %zmm6,%zmm10,%zmm10 + vaesenclast %zmm6,%zmm11,%zmm11 + vaesenclast %zmm6,%zmm12,%zmm12 + + + vpxorq %zmm0,%zmm7,%zmm7 + vpxorq %zmm3,%zmm10,%zmm10 + vpxorq %zmm4,%zmm11,%zmm11 + vpxorq %zmm5,%zmm12,%zmm12 + + + movq %r9,%r10 + vmovdqu8 %zmm7,0(%r10,%r11,1) + vmovdqu8 %zmm10,64(%r10,%r11,1) + vmovdqu8 %zmm11,128(%r10,%r11,1) + vmovdqu8 %zmm12,192(%r10,%r11,1) + + vpshufb %zmm29,%zmm7,%zmm7 + vpshufb %zmm29,%zmm10,%zmm10 + vpshufb %zmm29,%zmm11,%zmm11 + vpshufb %zmm29,%zmm12,%zmm12 + vmovdqa64 %zmm7,768(%rsp) + vmovdqa64 %zmm10,832(%rsp) + vmovdqa64 %zmm11,896(%rsp) + vmovdqa64 %zmm12,960(%rsp) + testq %r14,%r14 + jnz .L_skip_hkeys_precomputation_175 + + vmovdqu64 288(%rsi),%zmm0 + vmovdqu64 %zmm0,704(%rsp) + + vmovdqu64 224(%rsi),%zmm3 + vmovdqu64 %zmm3,640(%rsp) + + + vshufi64x2 $0x00,%zmm3,%zmm3,%zmm3 + + vmovdqu64 160(%rsi),%zmm4 + vmovdqu64 %zmm4,576(%rsp) + + vmovdqu64 96(%rsi),%zmm5 + vmovdqu64 %zmm5,512(%rsp) +.L_skip_hkeys_precomputation_175: + cmpq $512,%r8 + jb .L_message_below_32_blocks_172 + + + + cmpb $240,%r15b + jae .L_next_16_overflow_176 + vpaddd %zmm28,%zmm2,%zmm7 + vpaddd %zmm27,%zmm7,%zmm10 + vpaddd %zmm27,%zmm10,%zmm11 + vpaddd %zmm27,%zmm11,%zmm12 + jmp .L_next_16_ok_176 +.L_next_16_overflow_176: + vpshufb %zmm29,%zmm2,%zmm2 + vmovdqa64 ddq_add_4444(%rip),%zmm12 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm7 + vpaddd %zmm12,%zmm7,%zmm10 + vpaddd %zmm12,%zmm10,%zmm11 + vpaddd %zmm12,%zmm11,%zmm12 + vpshufb %zmm29,%zmm7,%zmm7 + vpshufb %zmm29,%zmm10,%zmm10 + vpshufb %zmm29,%zmm11,%zmm11 + vpshufb %zmm29,%zmm12,%zmm12 +.L_next_16_ok_176: + vshufi64x2 $255,%zmm12,%zmm12,%zmm2 + addb $16,%r15b + + vmovdqu8 256(%rcx,%r11,1),%zmm0 + vmovdqu8 320(%rcx,%r11,1),%zmm3 + vmovdqu8 384(%rcx,%r11,1),%zmm4 + vmovdqu8 448(%rcx,%r11,1),%zmm5 + + + vbroadcastf64x2 0(%rdi),%zmm6 + vpxorq %zmm6,%zmm7,%zmm7 + vpxorq %zmm6,%zmm10,%zmm10 + vpxorq %zmm6,%zmm11,%zmm11 + vpxorq %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 16(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 32(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 48(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 64(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 80(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 96(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 112(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 128(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 144(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 160(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 176(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 192(%rdi),%zmm6 + vaesenclast %zmm6,%zmm7,%zmm7 + vaesenclast %zmm6,%zmm10,%zmm10 + vaesenclast %zmm6,%zmm11,%zmm11 + vaesenclast %zmm6,%zmm12,%zmm12 + + + vpxorq %zmm0,%zmm7,%zmm7 + vpxorq %zmm3,%zmm10,%zmm10 + vpxorq %zmm4,%zmm11,%zmm11 + vpxorq %zmm5,%zmm12,%zmm12 + + + movq %r9,%r10 + vmovdqu8 %zmm7,256(%r10,%r11,1) + vmovdqu8 %zmm10,320(%r10,%r11,1) + vmovdqu8 %zmm11,384(%r10,%r11,1) + vmovdqu8 %zmm12,448(%r10,%r11,1) + + vpshufb %zmm29,%zmm7,%zmm7 + vpshufb %zmm29,%zmm10,%zmm10 + vpshufb %zmm29,%zmm11,%zmm11 + vpshufb %zmm29,%zmm12,%zmm12 + vmovdqa64 %zmm7,1024(%rsp) + vmovdqa64 %zmm10,1088(%rsp) + vmovdqa64 %zmm11,1152(%rsp) + vmovdqa64 %zmm12,1216(%rsp) + testq %r14,%r14 + jnz .L_skip_hkeys_precomputation_177 + vmovdqu64 640(%rsp),%zmm3 + + + vshufi64x2 $0x00,%zmm3,%zmm3,%zmm3 + + vmovdqu64 576(%rsp),%zmm4 + vmovdqu64 512(%rsp),%zmm5 + + vpclmulqdq $0x11,%zmm3,%zmm4,%zmm6 + vpclmulqdq $0x00,%zmm3,%zmm4,%zmm7 + vpclmulqdq $0x01,%zmm3,%zmm4,%zmm10 + vpclmulqdq $0x10,%zmm3,%zmm4,%zmm4 + vpxorq %zmm10,%zmm4,%zmm4 + + vpsrldq $8,%zmm4,%zmm10 + vpslldq $8,%zmm4,%zmm4 + vpxorq %zmm10,%zmm6,%zmm6 + vpxorq %zmm7,%zmm4,%zmm4 + + + + vmovdqu64 POLY2(%rip),%zmm10 + + vpclmulqdq $0x01,%zmm4,%zmm10,%zmm7 + vpslldq $8,%zmm7,%zmm7 + vpxorq %zmm7,%zmm4,%zmm4 + + + + vpclmulqdq $0x00,%zmm4,%zmm10,%zmm7 + vpsrldq $4,%zmm7,%zmm7 + vpclmulqdq $0x10,%zmm4,%zmm10,%zmm4 + vpslldq $4,%zmm4,%zmm4 + + vpternlogq $0x96,%zmm7,%zmm6,%zmm4 + + vmovdqu64 %zmm4,448(%rsp) + + vpclmulqdq $0x11,%zmm3,%zmm5,%zmm6 + vpclmulqdq $0x00,%zmm3,%zmm5,%zmm7 + vpclmulqdq $0x01,%zmm3,%zmm5,%zmm10 + vpclmulqdq $0x10,%zmm3,%zmm5,%zmm5 + vpxorq %zmm10,%zmm5,%zmm5 + + vpsrldq $8,%zmm5,%zmm10 + vpslldq $8,%zmm5,%zmm5 + vpxorq %zmm10,%zmm6,%zmm6 + vpxorq %zmm7,%zmm5,%zmm5 + + + + vmovdqu64 POLY2(%rip),%zmm10 + + vpclmulqdq $0x01,%zmm5,%zmm10,%zmm7 + vpslldq $8,%zmm7,%zmm7 + vpxorq %zmm7,%zmm5,%zmm5 + + + + vpclmulqdq $0x00,%zmm5,%zmm10,%zmm7 + vpsrldq $4,%zmm7,%zmm7 + vpclmulqdq $0x10,%zmm5,%zmm10,%zmm5 + vpslldq $4,%zmm5,%zmm5 + + vpternlogq $0x96,%zmm7,%zmm6,%zmm5 + + vmovdqu64 %zmm5,384(%rsp) + + vpclmulqdq $0x11,%zmm3,%zmm4,%zmm6 + vpclmulqdq $0x00,%zmm3,%zmm4,%zmm7 + vpclmulqdq $0x01,%zmm3,%zmm4,%zmm10 + vpclmulqdq $0x10,%zmm3,%zmm4,%zmm4 + vpxorq %zmm10,%zmm4,%zmm4 + + vpsrldq $8,%zmm4,%zmm10 + vpslldq $8,%zmm4,%zmm4 + vpxorq %zmm10,%zmm6,%zmm6 + vpxorq %zmm7,%zmm4,%zmm4 + + + + vmovdqu64 POLY2(%rip),%zmm10 + + vpclmulqdq $0x01,%zmm4,%zmm10,%zmm7 + vpslldq $8,%zmm7,%zmm7 + vpxorq %zmm7,%zmm4,%zmm4 + + + + vpclmulqdq $0x00,%zmm4,%zmm10,%zmm7 + vpsrldq $4,%zmm7,%zmm7 + vpclmulqdq $0x10,%zmm4,%zmm10,%zmm4 + vpslldq $4,%zmm4,%zmm4 + + vpternlogq $0x96,%zmm7,%zmm6,%zmm4 + + vmovdqu64 %zmm4,320(%rsp) + + vpclmulqdq $0x11,%zmm3,%zmm5,%zmm6 + vpclmulqdq $0x00,%zmm3,%zmm5,%zmm7 + vpclmulqdq $0x01,%zmm3,%zmm5,%zmm10 + vpclmulqdq $0x10,%zmm3,%zmm5,%zmm5 + vpxorq %zmm10,%zmm5,%zmm5 + + vpsrldq $8,%zmm5,%zmm10 + vpslldq $8,%zmm5,%zmm5 + vpxorq %zmm10,%zmm6,%zmm6 + vpxorq %zmm7,%zmm5,%zmm5 + + + + vmovdqu64 POLY2(%rip),%zmm10 + + vpclmulqdq $0x01,%zmm5,%zmm10,%zmm7 + vpslldq $8,%zmm7,%zmm7 + vpxorq %zmm7,%zmm5,%zmm5 + + + + vpclmulqdq $0x00,%zmm5,%zmm10,%zmm7 + vpsrldq $4,%zmm7,%zmm7 + vpclmulqdq $0x10,%zmm5,%zmm10,%zmm5 + vpslldq $4,%zmm5,%zmm5 + + vpternlogq $0x96,%zmm7,%zmm6,%zmm5 + + vmovdqu64 %zmm5,256(%rsp) + + vpclmulqdq $0x11,%zmm3,%zmm4,%zmm6 + vpclmulqdq $0x00,%zmm3,%zmm4,%zmm7 + vpclmulqdq $0x01,%zmm3,%zmm4,%zmm10 + vpclmulqdq $0x10,%zmm3,%zmm4,%zmm4 + vpxorq %zmm10,%zmm4,%zmm4 + + vpsrldq $8,%zmm4,%zmm10 + vpslldq $8,%zmm4,%zmm4 + vpxorq %zmm10,%zmm6,%zmm6 + vpxorq %zmm7,%zmm4,%zmm4 + + + + vmovdqu64 POLY2(%rip),%zmm10 + + vpclmulqdq $0x01,%zmm4,%zmm10,%zmm7 + vpslldq $8,%zmm7,%zmm7 + vpxorq %zmm7,%zmm4,%zmm4 + + + + vpclmulqdq $0x00,%zmm4,%zmm10,%zmm7 + vpsrldq $4,%zmm7,%zmm7 + vpclmulqdq $0x10,%zmm4,%zmm10,%zmm4 + vpslldq $4,%zmm4,%zmm4 + + vpternlogq $0x96,%zmm7,%zmm6,%zmm4 + + vmovdqu64 %zmm4,192(%rsp) + + vpclmulqdq $0x11,%zmm3,%zmm5,%zmm6 + vpclmulqdq $0x00,%zmm3,%zmm5,%zmm7 + vpclmulqdq $0x01,%zmm3,%zmm5,%zmm10 + vpclmulqdq $0x10,%zmm3,%zmm5,%zmm5 + vpxorq %zmm10,%zmm5,%zmm5 + + vpsrldq $8,%zmm5,%zmm10 + vpslldq $8,%zmm5,%zmm5 + vpxorq %zmm10,%zmm6,%zmm6 + vpxorq %zmm7,%zmm5,%zmm5 + + + + vmovdqu64 POLY2(%rip),%zmm10 + + vpclmulqdq $0x01,%zmm5,%zmm10,%zmm7 + vpslldq $8,%zmm7,%zmm7 + vpxorq %zmm7,%zmm5,%zmm5 + + + + vpclmulqdq $0x00,%zmm5,%zmm10,%zmm7 + vpsrldq $4,%zmm7,%zmm7 + vpclmulqdq $0x10,%zmm5,%zmm10,%zmm5 + vpslldq $4,%zmm5,%zmm5 + + vpternlogq $0x96,%zmm7,%zmm6,%zmm5 + + vmovdqu64 %zmm5,128(%rsp) + + vpclmulqdq $0x11,%zmm3,%zmm4,%zmm6 + vpclmulqdq $0x00,%zmm3,%zmm4,%zmm7 + vpclmulqdq $0x01,%zmm3,%zmm4,%zmm10 + vpclmulqdq $0x10,%zmm3,%zmm4,%zmm4 + vpxorq %zmm10,%zmm4,%zmm4 + + vpsrldq $8,%zmm4,%zmm10 + vpslldq $8,%zmm4,%zmm4 + vpxorq %zmm10,%zmm6,%zmm6 + vpxorq %zmm7,%zmm4,%zmm4 + + + + vmovdqu64 POLY2(%rip),%zmm10 + + vpclmulqdq $0x01,%zmm4,%zmm10,%zmm7 + vpslldq $8,%zmm7,%zmm7 + vpxorq %zmm7,%zmm4,%zmm4 + + + + vpclmulqdq $0x00,%zmm4,%zmm10,%zmm7 + vpsrldq $4,%zmm7,%zmm7 + vpclmulqdq $0x10,%zmm4,%zmm10,%zmm4 + vpslldq $4,%zmm4,%zmm4 + + vpternlogq $0x96,%zmm7,%zmm6,%zmm4 + + vmovdqu64 %zmm4,64(%rsp) + + vpclmulqdq $0x11,%zmm3,%zmm5,%zmm6 + vpclmulqdq $0x00,%zmm3,%zmm5,%zmm7 + vpclmulqdq $0x01,%zmm3,%zmm5,%zmm10 + vpclmulqdq $0x10,%zmm3,%zmm5,%zmm5 + vpxorq %zmm10,%zmm5,%zmm5 + + vpsrldq $8,%zmm5,%zmm10 + vpslldq $8,%zmm5,%zmm5 + vpxorq %zmm10,%zmm6,%zmm6 + vpxorq %zmm7,%zmm5,%zmm5 + + + + vmovdqu64 POLY2(%rip),%zmm10 + + vpclmulqdq $0x01,%zmm5,%zmm10,%zmm7 + vpslldq $8,%zmm7,%zmm7 + vpxorq %zmm7,%zmm5,%zmm5 + + + + vpclmulqdq $0x00,%zmm5,%zmm10,%zmm7 + vpsrldq $4,%zmm7,%zmm7 + vpclmulqdq $0x10,%zmm5,%zmm10,%zmm5 + vpslldq $4,%zmm5,%zmm5 + + vpternlogq $0x96,%zmm7,%zmm6,%zmm5 + + vmovdqu64 %zmm5,0(%rsp) +.L_skip_hkeys_precomputation_177: + movq $1,%r14 + addq $512,%r11 + subq $512,%r8 + + cmpq $768,%r8 + jb .L_no_more_big_nblocks_172 +.L_encrypt_big_nblocks_172: + cmpb $240,%r15b + jae .L_16_blocks_overflow_178 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp .L_16_blocks_ok_178 +.L_16_blocks_overflow_178: + vpshufb %zmm29,%zmm2,%zmm2 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +.L_16_blocks_ok_178: + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp),%zmm1 + + + + + vshufi64x2 $255,%zmm5,%zmm5,%zmm2 + addb $16,%r15b + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + + + + + + + + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm6 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm6 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + + + + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%zmm21 + + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm15,%zmm10,%zmm26 + vpxorq %zmm12,%zmm6,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 192(%rdi),%zmm30 + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + + + + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + + + + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %zmm5,192(%r10,%r11,1) + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 + vmovdqa64 %zmm0,1280(%rsp) + vmovdqa64 %zmm3,1344(%rsp) + vmovdqa64 %zmm4,1408(%rsp) + vmovdqa64 %zmm5,1472(%rsp) + cmpb $240,%r15b + jae .L_16_blocks_overflow_179 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp .L_16_blocks_ok_179 +.L_16_blocks_overflow_179: + vpshufb %zmm29,%zmm2,%zmm2 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +.L_16_blocks_ok_179: + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 256(%rsp),%zmm1 + + + + + vshufi64x2 $255,%zmm5,%zmm5,%zmm2 + addb $16,%r15b + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 320(%rsp),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + + + + + + + + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm6 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 384(%rsp),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 448(%rsp),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm6 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + + + + vmovdqu8 256(%rcx,%r11,1),%zmm17 + vmovdqu8 320(%rcx,%r11,1),%zmm19 + vmovdqu8 384(%rcx,%r11,1),%zmm20 + vmovdqu8 448(%rcx,%r11,1),%zmm21 + + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vpternlogq $0x96,%zmm12,%zmm6,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 192(%rdi),%zmm30 + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + + + + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + + + + movq %r9,%r10 + vmovdqu8 %zmm0,256(%r10,%r11,1) + vmovdqu8 %zmm3,320(%r10,%r11,1) + vmovdqu8 %zmm4,384(%r10,%r11,1) + vmovdqu8 %zmm5,448(%r10,%r11,1) + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 + vmovdqa64 %zmm0,768(%rsp) + vmovdqa64 %zmm3,832(%rsp) + vmovdqa64 %zmm4,896(%rsp) + vmovdqa64 %zmm5,960(%rsp) + cmpb $240,%r15b + jae .L_16_blocks_overflow_180 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp .L_16_blocks_ok_180 +.L_16_blocks_overflow_180: + vpshufb %zmm29,%zmm2,%zmm2 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +.L_16_blocks_ok_180: + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + + + + + vshufi64x2 $255,%zmm5,%zmm5,%zmm2 + addb $16,%r15b + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + + + + + + + + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm6 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm6 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + + + + vmovdqu8 512(%rcx,%r11,1),%zmm17 + vmovdqu8 576(%rcx,%r11,1),%zmm19 + vmovdqu8 640(%rcx,%r11,1),%zmm20 + vmovdqu8 704(%rcx,%r11,1),%zmm21 + + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + + + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vpternlogq $0x96,%zmm15,%zmm12,%zmm6 + vpxorq %zmm24,%zmm6,%zmm6 + vpternlogq $0x96,%zmm10,%zmm13,%zmm7 + vpxorq %zmm25,%zmm7,%zmm7 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vextracti64x4 $1,%zmm6,%ymm12 + vpxorq %ymm12,%ymm6,%ymm6 + vextracti32x4 $1,%ymm6,%xmm12 + vpxorq %xmm12,%xmm6,%xmm6 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 176(%rdi),%zmm31 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 192(%rdi),%zmm30 + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm6 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + + + + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + + + + movq %r9,%r10 + vmovdqu8 %zmm0,512(%r10,%r11,1) + vmovdqu8 %zmm3,576(%r10,%r11,1) + vmovdqu8 %zmm4,640(%r10,%r11,1) + vmovdqu8 %zmm5,704(%r10,%r11,1) + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 + vmovdqa64 %zmm0,1024(%rsp) + vmovdqa64 %zmm3,1088(%rsp) + vmovdqa64 %zmm4,1152(%rsp) + vmovdqa64 %zmm5,1216(%rsp) + vmovdqa64 %zmm6,%zmm14 + + addq $768,%r11 + subq $768,%r8 + cmpq $768,%r8 + jae .L_encrypt_big_nblocks_172 + +.L_no_more_big_nblocks_172: + + cmpq $512,%r8 + jae .L_encrypt_32_blocks_172 + + cmpq $256,%r8 + jae .L_encrypt_16_blocks_172 +.L_encrypt_0_blocks_ghash_32_172: + movl %r8d,%r10d + andl $~15,%r10d + movl $256,%ebx + subl %r10d,%ebx + vmovdqa64 768(%rsp),%zmm13 + vpxorq %zmm14,%zmm13,%zmm13 + vmovdqu64 0(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 832(%rsp),%zmm13 + vmovdqu64 64(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + vpxorq %zmm10,%zmm4,%zmm26 + vpxorq %zmm6,%zmm0,%zmm24 + vpxorq %zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + vmovdqa64 896(%rsp),%zmm13 + vmovdqu64 128(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 960(%rsp),%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + + vpternlogq $0x96,%zmm10,%zmm4,%zmm26 + vpternlogq $0x96,%zmm6,%zmm0,%zmm24 + vpternlogq $0x96,%zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + addl $256,%ebx + movl %r8d,%r10d + addl $15,%r10d + shrl $4,%r10d + je .L_last_num_blocks_is_0_181 + + cmpl $8,%r10d + je .L_last_num_blocks_is_8_181 + jb .L_last_num_blocks_is_7_1_181 + + + cmpl $12,%r10d + je .L_last_num_blocks_is_12_181 + jb .L_last_num_blocks_is_11_9_181 + + + cmpl $15,%r10d + je .L_last_num_blocks_is_15_181 + ja .L_last_num_blocks_is_16_181 + cmpl $14,%r10d + je .L_last_num_blocks_is_14_181 + jmp .L_last_num_blocks_is_13_181 + +.L_last_num_blocks_is_11_9_181: + + cmpl $10,%r10d + je .L_last_num_blocks_is_10_181 + ja .L_last_num_blocks_is_11_181 + jmp .L_last_num_blocks_is_9_181 + +.L_last_num_blocks_is_7_1_181: + cmpl $4,%r10d + je .L_last_num_blocks_is_4_181 + jb .L_last_num_blocks_is_3_1_181 + + cmpl $6,%r10d + ja .L_last_num_blocks_is_7_181 + je .L_last_num_blocks_is_6_181 + jmp .L_last_num_blocks_is_5_181 + +.L_last_num_blocks_is_3_1_181: + + cmpl $2,%r10d + ja .L_last_num_blocks_is_3_181 + je .L_last_num_blocks_is_2_181 +.L_last_num_blocks_is_1_181: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $255,%r15d + jae .L_16_blocks_overflow_182 + vpaddd %xmm28,%xmm2,%xmm0 + jmp .L_16_blocks_ok_182 + +.L_16_blocks_overflow_182: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %xmm29,%xmm0,%xmm0 +.L_16_blocks_ok_182: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $0,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%xmm17{%k1}{z} + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %xmm31,%xmm0,%xmm0 + vaesenclast %xmm30,%xmm0,%xmm0 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti32x4 $0,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %xmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm0,%zmm0{%k1}{z} + vpshufb %xmm29,%xmm0,%xmm17 + vextracti32x4 $0,%zmm17,%xmm7 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_183 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm17,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm17,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm17,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm17,%xmm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_183 +.L_small_initial_partial_block_183: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + + + vpsrldq $8,%zmm26,%zmm0 + vpslldq $8,%zmm26,%zmm3 + vpxorq %zmm0,%zmm24,%zmm24 + vpxorq %zmm3,%zmm25,%zmm25 + vextracti64x4 $1,%zmm24,%ymm0 + vpxorq %ymm0,%ymm24,%ymm24 + vextracti32x4 $1,%ymm24,%xmm0 + vpxorq %xmm0,%xmm24,%xmm24 + vextracti64x4 $1,%zmm25,%ymm3 + vpxorq %ymm3,%ymm25,%ymm25 + vextracti32x4 $1,%ymm25,%xmm3 + vpxorq %xmm3,%xmm25,%xmm25 + vmovdqa64 POLY2(%rip),%xmm0 + + + vpclmulqdq $0x01,%xmm25,%xmm0,%xmm3 + vpslldq $8,%xmm3,%xmm3 + vpxorq %xmm3,%xmm25,%xmm3 + + + vpclmulqdq $0x00,%xmm3,%xmm0,%xmm4 + vpsrldq $4,%xmm4,%xmm4 + vpclmulqdq $0x10,%xmm3,%xmm0,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm24,%xmm4,%xmm14 + + + + + + + + + + + + + vpxorq %xmm7,%xmm14,%xmm14 + + jmp .L_after_reduction_183 +.L_small_initial_compute_done_183: +.L_after_reduction_183: + jmp .L_last_blocks_done_181 +.L_last_num_blocks_is_2_181: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $254,%r15d + jae .L_16_blocks_overflow_184 + vpaddd %ymm28,%ymm2,%ymm0 + jmp .L_16_blocks_ok_184 + +.L_16_blocks_overflow_184: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %ymm29,%ymm0,%ymm0 +.L_16_blocks_ok_184: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $1,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%ymm17{%k1}{z} + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %ymm31,%ymm0,%ymm0 + vaesenclast %ymm30,%ymm0,%ymm0 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %ymm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm0,%zmm0{%k1}{z} + vpshufb %ymm29,%ymm0,%ymm17 + vextracti32x4 $1,%zmm17,%xmm7 + subq $16 * (2 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_185 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm17,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm17,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm17,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm17,%ymm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_185 +.L_small_initial_partial_block_185: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm17,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm17,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm17,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm17,%xmm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_185: + + orq %r8,%r8 + je .L_after_reduction_185 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_185: + jmp .L_last_blocks_done_181 +.L_last_num_blocks_is_3_181: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $253,%r15d + jae .L_16_blocks_overflow_186 + vpaddd %zmm28,%zmm2,%zmm0 + jmp .L_16_blocks_ok_186 + +.L_16_blocks_overflow_186: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %zmm29,%zmm0,%zmm0 +.L_16_blocks_ok_186: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $2,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm0,%zmm0 + vpxorq %zmm17,%zmm0,%zmm0 + vextracti32x4 $2,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm0,%zmm0{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vextracti32x4 $2,%zmm17,%xmm7 + subq $16 * (3 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_187 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_187 +.L_small_initial_partial_block_187: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm17,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm17,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm17,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm17,%ymm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_187: + + orq %r8,%r8 + je .L_after_reduction_187 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_187: + jmp .L_last_blocks_done_181 +.L_last_num_blocks_is_4_181: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $252,%r15d + jae .L_16_blocks_overflow_188 + vpaddd %zmm28,%zmm2,%zmm0 + jmp .L_16_blocks_ok_188 + +.L_16_blocks_overflow_188: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %zmm29,%zmm0,%zmm0 +.L_16_blocks_ok_188: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $3,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm0,%zmm0 + vpxorq %zmm17,%zmm0,%zmm0 + vextracti32x4 $3,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm0,%zmm0{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vextracti32x4 $3,%zmm17,%xmm7 + subq $16 * (4 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_189 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_189 +.L_small_initial_partial_block_189: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_189: + + orq %r8,%r8 + je .L_after_reduction_189 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_189: + jmp .L_last_blocks_done_181 +.L_last_num_blocks_is_5_181: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $251,%r15d + jae .L_16_blocks_overflow_190 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %xmm27,%xmm0,%xmm3 + jmp .L_16_blocks_ok_190 + +.L_16_blocks_overflow_190: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %xmm29,%xmm3,%xmm3 +.L_16_blocks_ok_190: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $0,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%xmm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %xmm30,%xmm3,%xmm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %xmm19,%xmm3,%xmm3 + vextracti32x4 $0,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %xmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm3,%zmm3{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %xmm29,%xmm3,%xmm19 + vextracti32x4 $0,%zmm19,%xmm7 + subq $16 * (5 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_191 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm19,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm19,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm19,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm19,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_191 +.L_small_initial_partial_block_191: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_191: + + orq %r8,%r8 + je .L_after_reduction_191 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_191: + jmp .L_last_blocks_done_181 +.L_last_num_blocks_is_6_181: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $250,%r15d + jae .L_16_blocks_overflow_192 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %ymm27,%ymm0,%ymm3 + jmp .L_16_blocks_ok_192 + +.L_16_blocks_overflow_192: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %ymm29,%ymm3,%ymm3 +.L_16_blocks_ok_192: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $1,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%ymm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %ymm30,%ymm3,%ymm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %ymm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm3,%zmm3{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %ymm29,%ymm3,%ymm19 + vextracti32x4 $1,%zmm19,%xmm7 + subq $16 * (6 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_193 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm19,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm19,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm19,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm19,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_193 +.L_small_initial_partial_block_193: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm19,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm19,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm19,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm19,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_193: + + orq %r8,%r8 + je .L_after_reduction_193 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_193: + jmp .L_last_blocks_done_181 +.L_last_num_blocks_is_7_181: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $249,%r15d + jae .L_16_blocks_overflow_194 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + jmp .L_16_blocks_ok_194 + +.L_16_blocks_overflow_194: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 +.L_16_blocks_ok_194: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $2,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti32x4 $2,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm3,%zmm3{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vextracti32x4 $2,%zmm19,%xmm7 + subq $16 * (7 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_195 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_195 +.L_small_initial_partial_block_195: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm19,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm19,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm19,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm19,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_195: + + orq %r8,%r8 + je .L_after_reduction_195 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_195: + jmp .L_last_blocks_done_181 +.L_last_num_blocks_is_8_181: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $248,%r15d + jae .L_16_blocks_overflow_196 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + jmp .L_16_blocks_ok_196 + +.L_16_blocks_overflow_196: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 +.L_16_blocks_ok_196: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $3,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti32x4 $3,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm3,%zmm3{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vextracti32x4 $3,%zmm19,%xmm7 + subq $16 * (8 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_197 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_197 +.L_small_initial_partial_block_197: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_197: + + orq %r8,%r8 + je .L_after_reduction_197 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_197: + jmp .L_last_blocks_done_181 +.L_last_num_blocks_is_9_181: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $247,%r15d + jae .L_16_blocks_overflow_198 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %xmm27,%xmm3,%xmm4 + jmp .L_16_blocks_ok_198 + +.L_16_blocks_overflow_198: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %xmm29,%xmm4,%xmm4 +.L_16_blocks_ok_198: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $0,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%xmm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %xmm30,%xmm4,%xmm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %xmm20,%xmm4,%xmm4 + vextracti32x4 $0,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %xmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm4,%zmm4{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %xmm29,%xmm4,%xmm20 + vextracti32x4 $0,%zmm20,%xmm7 + subq $16 * (9 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_199 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm20,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm20,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm20,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm20,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_199 +.L_small_initial_partial_block_199: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_199: + + orq %r8,%r8 + je .L_after_reduction_199 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_199: + jmp .L_last_blocks_done_181 +.L_last_num_blocks_is_10_181: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $246,%r15d + jae .L_16_blocks_overflow_200 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %ymm27,%ymm3,%ymm4 + jmp .L_16_blocks_ok_200 + +.L_16_blocks_overflow_200: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %ymm29,%ymm4,%ymm4 +.L_16_blocks_ok_200: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $1,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%ymm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %ymm30,%ymm4,%ymm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %ymm20,%ymm4,%ymm4 + vextracti32x4 $1,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %ymm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm4,%zmm4{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %ymm29,%ymm4,%ymm20 + vextracti32x4 $1,%zmm20,%xmm7 + subq $16 * (10 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_201 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm20,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm20,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm20,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm20,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_201 +.L_small_initial_partial_block_201: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm20,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm20,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm20,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm20,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_201: + + orq %r8,%r8 + je .L_after_reduction_201 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_201: + jmp .L_last_blocks_done_181 +.L_last_num_blocks_is_11_181: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $245,%r15d + jae .L_16_blocks_overflow_202 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + jmp .L_16_blocks_ok_202 + +.L_16_blocks_overflow_202: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 +.L_16_blocks_ok_202: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $2,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vextracti32x4 $2,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm4,%zmm4{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %zmm29,%zmm4,%zmm20 + vextracti32x4 $2,%zmm20,%xmm7 + subq $16 * (11 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_203 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_203 +.L_small_initial_partial_block_203: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm20,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm20,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm20,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm20,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_203: + + orq %r8,%r8 + je .L_after_reduction_203 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_203: + jmp .L_last_blocks_done_181 +.L_last_num_blocks_is_12_181: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $244,%r15d + jae .L_16_blocks_overflow_204 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + jmp .L_16_blocks_ok_204 + +.L_16_blocks_overflow_204: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 +.L_16_blocks_ok_204: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $3,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vextracti32x4 $3,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm4,%zmm4{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %zmm29,%zmm4,%zmm20 + vextracti32x4 $3,%zmm20,%xmm7 + subq $16 * (12 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_205 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 160(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_205 +.L_small_initial_partial_block_205: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_205: + + orq %r8,%r8 + je .L_after_reduction_205 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_205: + jmp .L_last_blocks_done_181 +.L_last_num_blocks_is_13_181: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $243,%r15d + jae .L_16_blocks_overflow_206 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %xmm27,%xmm4,%xmm5 + jmp .L_16_blocks_ok_206 + +.L_16_blocks_overflow_206: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %xmm29,%xmm5,%xmm5 +.L_16_blocks_ok_206: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $0,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%xmm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %xmm30,%xmm5,%xmm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %xmm21,%xmm5,%xmm5 + vextracti32x4 $0,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %xmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm5,%zmm5{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %zmm29,%zmm4,%zmm20 + vpshufb %xmm29,%xmm5,%xmm21 + vextracti32x4 $0,%zmm21,%xmm7 + subq $16 * (13 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_207 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 144(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm21,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm21,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm21,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm21,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_207 +.L_small_initial_partial_block_207: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 160(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_207: + + orq %r8,%r8 + je .L_after_reduction_207 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_207: + jmp .L_last_blocks_done_181 +.L_last_num_blocks_is_14_181: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $242,%r15d + jae .L_16_blocks_overflow_208 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %ymm27,%ymm4,%ymm5 + jmp .L_16_blocks_ok_208 + +.L_16_blocks_overflow_208: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %ymm29,%ymm5,%ymm5 +.L_16_blocks_ok_208: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $1,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%ymm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %ymm30,%ymm5,%ymm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %ymm21,%ymm5,%ymm5 + vextracti32x4 $1,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %ymm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm5,%zmm5{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %zmm29,%zmm4,%zmm20 + vpshufb %ymm29,%ymm5,%ymm21 + vextracti32x4 $1,%zmm21,%xmm7 + subq $16 * (14 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_209 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 128(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm21,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm21,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm21,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm21,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_209 +.L_small_initial_partial_block_209: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 144(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm21,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm21,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm21,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm21,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_209: + + orq %r8,%r8 + je .L_after_reduction_209 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_209: + jmp .L_last_blocks_done_181 +.L_last_num_blocks_is_15_181: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $241,%r15d + jae .L_16_blocks_overflow_210 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp .L_16_blocks_ok_210 + +.L_16_blocks_overflow_210: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +.L_16_blocks_ok_210: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $2,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%zmm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + vextracti32x4 $2,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %zmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm5,%zmm5{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %zmm29,%zmm4,%zmm20 + vpshufb %zmm29,%zmm5,%zmm21 + vextracti32x4 $2,%zmm21,%xmm7 + subq $16 * (15 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_211 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 112(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm21,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm21,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm21,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm21,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_211 +.L_small_initial_partial_block_211: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 128(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm21,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm21,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm21,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm21,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_211: + + orq %r8,%r8 + je .L_after_reduction_211 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_211: + jmp .L_last_blocks_done_181 +.L_last_num_blocks_is_16_181: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $240,%r15d + jae .L_16_blocks_overflow_212 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp .L_16_blocks_ok_212 + +.L_16_blocks_overflow_212: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +.L_16_blocks_ok_212: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $3,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%zmm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + vextracti32x4 $3,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %zmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm5,%zmm5{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %zmm29,%zmm4,%zmm20 + vpshufb %zmm29,%zmm5,%zmm21 + vextracti32x4 $3,%zmm21,%xmm7 + subq $16 * (16 - 1),%r8 +.L_small_initial_partial_block_213: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 112(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm21,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm21,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm21,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm21,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_213: + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_213: + jmp .L_last_blocks_done_181 +.L_last_num_blocks_is_0_181: + vmovdqa64 1024(%rsp),%zmm13 + vmovdqu64 0(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 1088(%rsp),%zmm13 + vmovdqu64 64(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + vpternlogq $0x96,%zmm10,%zmm4,%zmm26 + vpternlogq $0x96,%zmm6,%zmm0,%zmm24 + vpternlogq $0x96,%zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + vmovdqa64 1152(%rsp),%zmm13 + vmovdqu64 128(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 1216(%rsp),%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + + vpternlogq $0x96,%zmm10,%zmm4,%zmm26 + vpternlogq $0x96,%zmm6,%zmm0,%zmm24 + vpternlogq $0x96,%zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + + vpsrldq $8,%zmm26,%zmm0 + vpslldq $8,%zmm26,%zmm3 + vpxorq %zmm0,%zmm24,%zmm24 + vpxorq %zmm3,%zmm25,%zmm25 + vextracti64x4 $1,%zmm24,%ymm0 + vpxorq %ymm0,%ymm24,%ymm24 + vextracti32x4 $1,%ymm24,%xmm0 + vpxorq %xmm0,%xmm24,%xmm24 + vextracti64x4 $1,%zmm25,%ymm3 + vpxorq %ymm3,%ymm25,%ymm25 + vextracti32x4 $1,%ymm25,%xmm3 + vpxorq %xmm3,%xmm25,%xmm25 + vmovdqa64 POLY2(%rip),%xmm4 + + + vpclmulqdq $0x01,%xmm25,%xmm4,%xmm0 + vpslldq $8,%xmm0,%xmm0 + vpxorq %xmm0,%xmm25,%xmm0 + + + vpclmulqdq $0x00,%xmm0,%xmm4,%xmm3 + vpsrldq $4,%xmm3,%xmm3 + vpclmulqdq $0x10,%xmm0,%xmm4,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm24,%xmm3,%xmm14 + +.L_last_blocks_done_181: + vpshufb %xmm29,%xmm2,%xmm2 + jmp .L_ghash_done_172 +.L_encrypt_32_blocks_172: + cmpb $240,%r15b + jae .L_16_blocks_overflow_214 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp .L_16_blocks_ok_214 +.L_16_blocks_overflow_214: + vpshufb %zmm29,%zmm2,%zmm2 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +.L_16_blocks_ok_214: + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp),%zmm1 + + + + + vshufi64x2 $255,%zmm5,%zmm5,%zmm2 + addb $16,%r15b + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + + + + + + + + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm6 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm6 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + + + + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%zmm21 + + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm15,%zmm10,%zmm26 + vpxorq %zmm12,%zmm6,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 192(%rdi),%zmm30 + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + + + + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + + + + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %zmm5,192(%r10,%r11,1) + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 + vmovdqa64 %zmm0,1280(%rsp) + vmovdqa64 %zmm3,1344(%rsp) + vmovdqa64 %zmm4,1408(%rsp) + vmovdqa64 %zmm5,1472(%rsp) + cmpb $240,%r15b + jae .L_16_blocks_overflow_215 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp .L_16_blocks_ok_215 +.L_16_blocks_overflow_215: + vpshufb %zmm29,%zmm2,%zmm2 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +.L_16_blocks_ok_215: + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 256(%rsp),%zmm1 + + + + + vshufi64x2 $255,%zmm5,%zmm5,%zmm2 + addb $16,%r15b + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 320(%rsp),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + + + + + + + + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm6 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 384(%rsp),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 448(%rsp),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm6 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + + + + vmovdqu8 256(%rcx,%r11,1),%zmm17 + vmovdqu8 320(%rcx,%r11,1),%zmm19 + vmovdqu8 384(%rcx,%r11,1),%zmm20 + vmovdqu8 448(%rcx,%r11,1),%zmm21 + + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vpternlogq $0x96,%zmm12,%zmm6,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 192(%rdi),%zmm30 + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + + + + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + + + + movq %r9,%r10 + vmovdqu8 %zmm0,256(%r10,%r11,1) + vmovdqu8 %zmm3,320(%r10,%r11,1) + vmovdqu8 %zmm4,384(%r10,%r11,1) + vmovdqu8 %zmm5,448(%r10,%r11,1) + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 + vmovdqa64 %zmm0,768(%rsp) + vmovdqa64 %zmm3,832(%rsp) + vmovdqa64 %zmm4,896(%rsp) + vmovdqa64 %zmm5,960(%rsp) + vmovdqa64 1280(%rsp),%zmm13 + vmovdqu64 512(%rsp),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 1344(%rsp),%zmm13 + vmovdqu64 576(%rsp),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + vpternlogq $0x96,%zmm10,%zmm4,%zmm26 + vpternlogq $0x96,%zmm6,%zmm0,%zmm24 + vpternlogq $0x96,%zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + vmovdqa64 1408(%rsp),%zmm13 + vmovdqu64 640(%rsp),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 1472(%rsp),%zmm13 + vmovdqu64 704(%rsp),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + + vpternlogq $0x96,%zmm10,%zmm4,%zmm26 + vpternlogq $0x96,%zmm6,%zmm0,%zmm24 + vpternlogq $0x96,%zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + + vpsrldq $8,%zmm26,%zmm0 + vpslldq $8,%zmm26,%zmm3 + vpxorq %zmm0,%zmm24,%zmm24 + vpxorq %zmm3,%zmm25,%zmm25 + vextracti64x4 $1,%zmm24,%ymm0 + vpxorq %ymm0,%ymm24,%ymm24 + vextracti32x4 $1,%ymm24,%xmm0 + vpxorq %xmm0,%xmm24,%xmm24 + vextracti64x4 $1,%zmm25,%ymm3 + vpxorq %ymm3,%ymm25,%ymm25 + vextracti32x4 $1,%ymm25,%xmm3 + vpxorq %xmm3,%xmm25,%xmm25 + vmovdqa64 POLY2(%rip),%xmm4 + + + vpclmulqdq $0x01,%xmm25,%xmm4,%xmm0 + vpslldq $8,%xmm0,%xmm0 + vpxorq %xmm0,%xmm25,%xmm0 + + + vpclmulqdq $0x00,%xmm0,%xmm4,%xmm3 + vpsrldq $4,%xmm3,%xmm3 + vpclmulqdq $0x10,%xmm0,%xmm4,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm24,%xmm3,%xmm14 + + subq $512,%r8 + addq $512,%r11 + movl %r8d,%r10d + andl $~15,%r10d + movl $512,%ebx + subl %r10d,%ebx + movl %r8d,%r10d + addl $15,%r10d + shrl $4,%r10d + je .L_last_num_blocks_is_0_216 + + cmpl $8,%r10d + je .L_last_num_blocks_is_8_216 + jb .L_last_num_blocks_is_7_1_216 + + + cmpl $12,%r10d + je .L_last_num_blocks_is_12_216 + jb .L_last_num_blocks_is_11_9_216 + + + cmpl $15,%r10d + je .L_last_num_blocks_is_15_216 + ja .L_last_num_blocks_is_16_216 + cmpl $14,%r10d + je .L_last_num_blocks_is_14_216 + jmp .L_last_num_blocks_is_13_216 + +.L_last_num_blocks_is_11_9_216: + + cmpl $10,%r10d + je .L_last_num_blocks_is_10_216 + ja .L_last_num_blocks_is_11_216 + jmp .L_last_num_blocks_is_9_216 + +.L_last_num_blocks_is_7_1_216: + cmpl $4,%r10d + je .L_last_num_blocks_is_4_216 + jb .L_last_num_blocks_is_3_1_216 + + cmpl $6,%r10d + ja .L_last_num_blocks_is_7_216 + je .L_last_num_blocks_is_6_216 + jmp .L_last_num_blocks_is_5_216 + +.L_last_num_blocks_is_3_1_216: + + cmpl $2,%r10d + ja .L_last_num_blocks_is_3_216 + je .L_last_num_blocks_is_2_216 +.L_last_num_blocks_is_1_216: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $255,%r15d + jae .L_16_blocks_overflow_217 + vpaddd %xmm28,%xmm2,%xmm0 + jmp .L_16_blocks_ok_217 + +.L_16_blocks_overflow_217: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %xmm29,%xmm0,%xmm0 +.L_16_blocks_ok_217: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $0,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%xmm17{%k1}{z} + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %xmm31,%xmm0,%xmm0 + vaesenclast %xmm30,%xmm0,%xmm0 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti32x4 $0,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %xmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm0,%zmm0{%k1}{z} + vpshufb %xmm29,%xmm0,%xmm17 + vextracti32x4 $0,%zmm17,%xmm7 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_218 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm17,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm17,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm17,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm17,%xmm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_218 +.L_small_initial_partial_block_218: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + + + vpsrldq $8,%zmm26,%zmm0 + vpslldq $8,%zmm26,%zmm3 + vpxorq %zmm0,%zmm24,%zmm24 + vpxorq %zmm3,%zmm25,%zmm25 + vextracti64x4 $1,%zmm24,%ymm0 + vpxorq %ymm0,%ymm24,%ymm24 + vextracti32x4 $1,%ymm24,%xmm0 + vpxorq %xmm0,%xmm24,%xmm24 + vextracti64x4 $1,%zmm25,%ymm3 + vpxorq %ymm3,%ymm25,%ymm25 + vextracti32x4 $1,%ymm25,%xmm3 + vpxorq %xmm3,%xmm25,%xmm25 + vmovdqa64 POLY2(%rip),%xmm0 + + + vpclmulqdq $0x01,%xmm25,%xmm0,%xmm3 + vpslldq $8,%xmm3,%xmm3 + vpxorq %xmm3,%xmm25,%xmm3 + + + vpclmulqdq $0x00,%xmm3,%xmm0,%xmm4 + vpsrldq $4,%xmm4,%xmm4 + vpclmulqdq $0x10,%xmm3,%xmm0,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm24,%xmm4,%xmm14 + + + + + + + + + + + + + vpxorq %xmm7,%xmm14,%xmm14 + + jmp .L_after_reduction_218 +.L_small_initial_compute_done_218: +.L_after_reduction_218: + jmp .L_last_blocks_done_216 +.L_last_num_blocks_is_2_216: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $254,%r15d + jae .L_16_blocks_overflow_219 + vpaddd %ymm28,%ymm2,%ymm0 + jmp .L_16_blocks_ok_219 + +.L_16_blocks_overflow_219: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %ymm29,%ymm0,%ymm0 +.L_16_blocks_ok_219: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $1,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%ymm17{%k1}{z} + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %ymm31,%ymm0,%ymm0 + vaesenclast %ymm30,%ymm0,%ymm0 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %ymm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm0,%zmm0{%k1}{z} + vpshufb %ymm29,%ymm0,%ymm17 + vextracti32x4 $1,%zmm17,%xmm7 + subq $16 * (2 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_220 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm17,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm17,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm17,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm17,%ymm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_220 +.L_small_initial_partial_block_220: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm17,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm17,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm17,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm17,%xmm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_220: + + orq %r8,%r8 + je .L_after_reduction_220 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_220: + jmp .L_last_blocks_done_216 +.L_last_num_blocks_is_3_216: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $253,%r15d + jae .L_16_blocks_overflow_221 + vpaddd %zmm28,%zmm2,%zmm0 + jmp .L_16_blocks_ok_221 + +.L_16_blocks_overflow_221: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %zmm29,%zmm0,%zmm0 +.L_16_blocks_ok_221: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $2,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm0,%zmm0 + vpxorq %zmm17,%zmm0,%zmm0 + vextracti32x4 $2,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm0,%zmm0{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vextracti32x4 $2,%zmm17,%xmm7 + subq $16 * (3 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_222 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_222 +.L_small_initial_partial_block_222: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm17,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm17,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm17,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm17,%ymm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_222: + + orq %r8,%r8 + je .L_after_reduction_222 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_222: + jmp .L_last_blocks_done_216 +.L_last_num_blocks_is_4_216: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $252,%r15d + jae .L_16_blocks_overflow_223 + vpaddd %zmm28,%zmm2,%zmm0 + jmp .L_16_blocks_ok_223 + +.L_16_blocks_overflow_223: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %zmm29,%zmm0,%zmm0 +.L_16_blocks_ok_223: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $3,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm0,%zmm0 + vpxorq %zmm17,%zmm0,%zmm0 + vextracti32x4 $3,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm0,%zmm0{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vextracti32x4 $3,%zmm17,%xmm7 + subq $16 * (4 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_224 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_224 +.L_small_initial_partial_block_224: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_224: + + orq %r8,%r8 + je .L_after_reduction_224 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_224: + jmp .L_last_blocks_done_216 +.L_last_num_blocks_is_5_216: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $251,%r15d + jae .L_16_blocks_overflow_225 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %xmm27,%xmm0,%xmm3 + jmp .L_16_blocks_ok_225 + +.L_16_blocks_overflow_225: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %xmm29,%xmm3,%xmm3 +.L_16_blocks_ok_225: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $0,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%xmm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %xmm30,%xmm3,%xmm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %xmm19,%xmm3,%xmm3 + vextracti32x4 $0,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %xmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm3,%zmm3{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %xmm29,%xmm3,%xmm19 + vextracti32x4 $0,%zmm19,%xmm7 + subq $16 * (5 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_226 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm19,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm19,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm19,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm19,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_226 +.L_small_initial_partial_block_226: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_226: + + orq %r8,%r8 + je .L_after_reduction_226 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_226: + jmp .L_last_blocks_done_216 +.L_last_num_blocks_is_6_216: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $250,%r15d + jae .L_16_blocks_overflow_227 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %ymm27,%ymm0,%ymm3 + jmp .L_16_blocks_ok_227 + +.L_16_blocks_overflow_227: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %ymm29,%ymm3,%ymm3 +.L_16_blocks_ok_227: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $1,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%ymm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %ymm30,%ymm3,%ymm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %ymm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm3,%zmm3{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %ymm29,%ymm3,%ymm19 + vextracti32x4 $1,%zmm19,%xmm7 + subq $16 * (6 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_228 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm19,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm19,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm19,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm19,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_228 +.L_small_initial_partial_block_228: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm19,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm19,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm19,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm19,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_228: + + orq %r8,%r8 + je .L_after_reduction_228 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_228: + jmp .L_last_blocks_done_216 +.L_last_num_blocks_is_7_216: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $249,%r15d + jae .L_16_blocks_overflow_229 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + jmp .L_16_blocks_ok_229 + +.L_16_blocks_overflow_229: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 +.L_16_blocks_ok_229: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $2,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti32x4 $2,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm3,%zmm3{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vextracti32x4 $2,%zmm19,%xmm7 + subq $16 * (7 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_230 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_230 +.L_small_initial_partial_block_230: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm19,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm19,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm19,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm19,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_230: + + orq %r8,%r8 + je .L_after_reduction_230 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_230: + jmp .L_last_blocks_done_216 +.L_last_num_blocks_is_8_216: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $248,%r15d + jae .L_16_blocks_overflow_231 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + jmp .L_16_blocks_ok_231 + +.L_16_blocks_overflow_231: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 +.L_16_blocks_ok_231: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $3,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti32x4 $3,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm3,%zmm3{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vextracti32x4 $3,%zmm19,%xmm7 + subq $16 * (8 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_232 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_232 +.L_small_initial_partial_block_232: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_232: + + orq %r8,%r8 + je .L_after_reduction_232 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_232: + jmp .L_last_blocks_done_216 +.L_last_num_blocks_is_9_216: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $247,%r15d + jae .L_16_blocks_overflow_233 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %xmm27,%xmm3,%xmm4 + jmp .L_16_blocks_ok_233 + +.L_16_blocks_overflow_233: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %xmm29,%xmm4,%xmm4 +.L_16_blocks_ok_233: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $0,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%xmm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %xmm30,%xmm4,%xmm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %xmm20,%xmm4,%xmm4 + vextracti32x4 $0,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %xmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm4,%zmm4{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %xmm29,%xmm4,%xmm20 + vextracti32x4 $0,%zmm20,%xmm7 + subq $16 * (9 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_234 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm20,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm20,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm20,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm20,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_234 +.L_small_initial_partial_block_234: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_234: + + orq %r8,%r8 + je .L_after_reduction_234 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_234: + jmp .L_last_blocks_done_216 +.L_last_num_blocks_is_10_216: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $246,%r15d + jae .L_16_blocks_overflow_235 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %ymm27,%ymm3,%ymm4 + jmp .L_16_blocks_ok_235 + +.L_16_blocks_overflow_235: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %ymm29,%ymm4,%ymm4 +.L_16_blocks_ok_235: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $1,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%ymm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %ymm30,%ymm4,%ymm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %ymm20,%ymm4,%ymm4 + vextracti32x4 $1,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %ymm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm4,%zmm4{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %ymm29,%ymm4,%ymm20 + vextracti32x4 $1,%zmm20,%xmm7 + subq $16 * (10 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_236 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm20,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm20,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm20,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm20,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_236 +.L_small_initial_partial_block_236: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm20,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm20,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm20,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm20,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_236: + + orq %r8,%r8 + je .L_after_reduction_236 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_236: + jmp .L_last_blocks_done_216 +.L_last_num_blocks_is_11_216: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $245,%r15d + jae .L_16_blocks_overflow_237 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + jmp .L_16_blocks_ok_237 + +.L_16_blocks_overflow_237: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 +.L_16_blocks_ok_237: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $2,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vextracti32x4 $2,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm4,%zmm4{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %zmm29,%zmm4,%zmm20 + vextracti32x4 $2,%zmm20,%xmm7 + subq $16 * (11 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_238 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_238 +.L_small_initial_partial_block_238: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm20,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm20,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm20,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm20,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_238: + + orq %r8,%r8 + je .L_after_reduction_238 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_238: + jmp .L_last_blocks_done_216 +.L_last_num_blocks_is_12_216: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $244,%r15d + jae .L_16_blocks_overflow_239 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + jmp .L_16_blocks_ok_239 + +.L_16_blocks_overflow_239: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 +.L_16_blocks_ok_239: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $3,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vextracti32x4 $3,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm4,%zmm4{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %zmm29,%zmm4,%zmm20 + vextracti32x4 $3,%zmm20,%xmm7 + subq $16 * (12 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_240 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 160(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_240 +.L_small_initial_partial_block_240: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_240: + + orq %r8,%r8 + je .L_after_reduction_240 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_240: + jmp .L_last_blocks_done_216 +.L_last_num_blocks_is_13_216: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $243,%r15d + jae .L_16_blocks_overflow_241 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %xmm27,%xmm4,%xmm5 + jmp .L_16_blocks_ok_241 + +.L_16_blocks_overflow_241: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %xmm29,%xmm5,%xmm5 +.L_16_blocks_ok_241: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $0,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%xmm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %xmm30,%xmm5,%xmm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %xmm21,%xmm5,%xmm5 + vextracti32x4 $0,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %xmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm5,%zmm5{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %zmm29,%zmm4,%zmm20 + vpshufb %xmm29,%xmm5,%xmm21 + vextracti32x4 $0,%zmm21,%xmm7 + subq $16 * (13 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_242 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 144(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm21,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm21,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm21,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm21,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_242 +.L_small_initial_partial_block_242: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 160(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_242: + + orq %r8,%r8 + je .L_after_reduction_242 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_242: + jmp .L_last_blocks_done_216 +.L_last_num_blocks_is_14_216: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $242,%r15d + jae .L_16_blocks_overflow_243 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %ymm27,%ymm4,%ymm5 + jmp .L_16_blocks_ok_243 + +.L_16_blocks_overflow_243: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %ymm29,%ymm5,%ymm5 +.L_16_blocks_ok_243: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $1,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%ymm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %ymm30,%ymm5,%ymm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %ymm21,%ymm5,%ymm5 + vextracti32x4 $1,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %ymm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm5,%zmm5{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %zmm29,%zmm4,%zmm20 + vpshufb %ymm29,%ymm5,%ymm21 + vextracti32x4 $1,%zmm21,%xmm7 + subq $16 * (14 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_244 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 128(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm21,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm21,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm21,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm21,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_244 +.L_small_initial_partial_block_244: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 144(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm21,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm21,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm21,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm21,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_244: + + orq %r8,%r8 + je .L_after_reduction_244 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_244: + jmp .L_last_blocks_done_216 +.L_last_num_blocks_is_15_216: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $241,%r15d + jae .L_16_blocks_overflow_245 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp .L_16_blocks_ok_245 + +.L_16_blocks_overflow_245: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +.L_16_blocks_ok_245: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $2,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%zmm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + vextracti32x4 $2,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %zmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm5,%zmm5{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %zmm29,%zmm4,%zmm20 + vpshufb %zmm29,%zmm5,%zmm21 + vextracti32x4 $2,%zmm21,%xmm7 + subq $16 * (15 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_246 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 112(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm21,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm21,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm21,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm21,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_246 +.L_small_initial_partial_block_246: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 128(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm21,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm21,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm21,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm21,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_246: + + orq %r8,%r8 + je .L_after_reduction_246 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_246: + jmp .L_last_blocks_done_216 +.L_last_num_blocks_is_16_216: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $240,%r15d + jae .L_16_blocks_overflow_247 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp .L_16_blocks_ok_247 + +.L_16_blocks_overflow_247: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +.L_16_blocks_ok_247: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $3,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%zmm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + vextracti32x4 $3,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %zmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm5,%zmm5{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %zmm29,%zmm4,%zmm20 + vpshufb %zmm29,%zmm5,%zmm21 + vextracti32x4 $3,%zmm21,%xmm7 + subq $16 * (16 - 1),%r8 +.L_small_initial_partial_block_248: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 112(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm21,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm21,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm21,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm21,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_248: + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_248: + jmp .L_last_blocks_done_216 +.L_last_num_blocks_is_0_216: + vmovdqa64 768(%rsp),%zmm13 + vpxorq %zmm14,%zmm13,%zmm13 + vmovdqu64 0(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 832(%rsp),%zmm13 + vmovdqu64 64(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + vpxorq %zmm10,%zmm4,%zmm26 + vpxorq %zmm6,%zmm0,%zmm24 + vpxorq %zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + vmovdqa64 896(%rsp),%zmm13 + vmovdqu64 128(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 960(%rsp),%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + + vpternlogq $0x96,%zmm10,%zmm4,%zmm26 + vpternlogq $0x96,%zmm6,%zmm0,%zmm24 + vpternlogq $0x96,%zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + + vpsrldq $8,%zmm26,%zmm0 + vpslldq $8,%zmm26,%zmm3 + vpxorq %zmm0,%zmm24,%zmm24 + vpxorq %zmm3,%zmm25,%zmm25 + vextracti64x4 $1,%zmm24,%ymm0 + vpxorq %ymm0,%ymm24,%ymm24 + vextracti32x4 $1,%ymm24,%xmm0 + vpxorq %xmm0,%xmm24,%xmm24 + vextracti64x4 $1,%zmm25,%ymm3 + vpxorq %ymm3,%ymm25,%ymm25 + vextracti32x4 $1,%ymm25,%xmm3 + vpxorq %xmm3,%xmm25,%xmm25 + vmovdqa64 POLY2(%rip),%xmm4 + + + vpclmulqdq $0x01,%xmm25,%xmm4,%xmm0 + vpslldq $8,%xmm0,%xmm0 + vpxorq %xmm0,%xmm25,%xmm0 + + + vpclmulqdq $0x00,%xmm0,%xmm4,%xmm3 + vpsrldq $4,%xmm3,%xmm3 + vpclmulqdq $0x10,%xmm0,%xmm4,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm24,%xmm3,%xmm14 + +.L_last_blocks_done_216: + vpshufb %xmm29,%xmm2,%xmm2 + jmp .L_ghash_done_172 +.L_encrypt_16_blocks_172: + cmpb $240,%r15b + jae .L_16_blocks_overflow_249 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp .L_16_blocks_ok_249 +.L_16_blocks_overflow_249: + vpshufb %zmm29,%zmm2,%zmm2 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +.L_16_blocks_ok_249: + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp),%zmm1 + + + + + vshufi64x2 $255,%zmm5,%zmm5,%zmm2 + addb $16,%r15b + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + + + + + + + + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm6 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm6 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + + + + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%zmm21 + + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm15,%zmm10,%zmm26 + vpxorq %zmm12,%zmm6,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 192(%rdi),%zmm30 + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + + + + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + + + + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %zmm5,192(%r10,%r11,1) + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 + vmovdqa64 %zmm0,1280(%rsp) + vmovdqa64 %zmm3,1344(%rsp) + vmovdqa64 %zmm4,1408(%rsp) + vmovdqa64 %zmm5,1472(%rsp) + vmovdqa64 1024(%rsp),%zmm13 + vmovdqu64 256(%rsp),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 1088(%rsp),%zmm13 + vmovdqu64 320(%rsp),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + vpternlogq $0x96,%zmm10,%zmm4,%zmm26 + vpternlogq $0x96,%zmm6,%zmm0,%zmm24 + vpternlogq $0x96,%zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + vmovdqa64 1152(%rsp),%zmm13 + vmovdqu64 384(%rsp),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 1216(%rsp),%zmm13 + vmovdqu64 448(%rsp),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + + vpternlogq $0x96,%zmm10,%zmm4,%zmm26 + vpternlogq $0x96,%zmm6,%zmm0,%zmm24 + vpternlogq $0x96,%zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + subq $256,%r8 + addq $256,%r11 + movl %r8d,%r10d + addl $15,%r10d + shrl $4,%r10d + je .L_last_num_blocks_is_0_250 + + cmpl $8,%r10d + je .L_last_num_blocks_is_8_250 + jb .L_last_num_blocks_is_7_1_250 + + + cmpl $12,%r10d + je .L_last_num_blocks_is_12_250 + jb .L_last_num_blocks_is_11_9_250 + + + cmpl $15,%r10d + je .L_last_num_blocks_is_15_250 + ja .L_last_num_blocks_is_16_250 + cmpl $14,%r10d + je .L_last_num_blocks_is_14_250 + jmp .L_last_num_blocks_is_13_250 + +.L_last_num_blocks_is_11_9_250: + + cmpl $10,%r10d + je .L_last_num_blocks_is_10_250 + ja .L_last_num_blocks_is_11_250 + jmp .L_last_num_blocks_is_9_250 + +.L_last_num_blocks_is_7_1_250: + cmpl $4,%r10d + je .L_last_num_blocks_is_4_250 + jb .L_last_num_blocks_is_3_1_250 + + cmpl $6,%r10d + ja .L_last_num_blocks_is_7_250 + je .L_last_num_blocks_is_6_250 + jmp .L_last_num_blocks_is_5_250 + +.L_last_num_blocks_is_3_1_250: + + cmpl $2,%r10d + ja .L_last_num_blocks_is_3_250 + je .L_last_num_blocks_is_2_250 +.L_last_num_blocks_is_1_250: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $255,%r15d + jae .L_16_blocks_overflow_251 + vpaddd %xmm28,%xmm2,%xmm0 + jmp .L_16_blocks_ok_251 + +.L_16_blocks_overflow_251: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %xmm29,%xmm0,%xmm0 +.L_16_blocks_ok_251: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $0,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%xmm17{%k1}{z} + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %xmm31,%xmm0,%xmm0 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vbroadcastf64x2 176(%rdi),%zmm31 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %xmm31,%xmm0,%xmm0 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %xmm30,%xmm0,%xmm0 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti32x4 $0,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %xmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm0,%zmm0{%k1}{z} + vpshufb %xmm29,%xmm0,%xmm17 + vextracti32x4 $0,%zmm17,%xmm7 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_252 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm17,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm17,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm17,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm17,%xmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_252 +.L_small_initial_partial_block_252: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + + + + + + + + + + + + vpxorq %xmm7,%xmm14,%xmm14 + + jmp .L_after_reduction_252 +.L_small_initial_compute_done_252: +.L_after_reduction_252: + jmp .L_last_blocks_done_250 +.L_last_num_blocks_is_2_250: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $254,%r15d + jae .L_16_blocks_overflow_253 + vpaddd %ymm28,%ymm2,%ymm0 + jmp .L_16_blocks_ok_253 + +.L_16_blocks_overflow_253: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %ymm29,%ymm0,%ymm0 +.L_16_blocks_ok_253: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $1,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%ymm17{%k1}{z} + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %ymm31,%ymm0,%ymm0 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vbroadcastf64x2 176(%rdi),%zmm31 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %ymm31,%ymm0,%ymm0 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %ymm30,%ymm0,%ymm0 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %ymm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm0,%zmm0{%k1}{z} + vpshufb %ymm29,%ymm0,%ymm17 + vextracti32x4 $1,%zmm17,%xmm7 + subq $16 * (2 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_254 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm17,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm17,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm17,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm17,%ymm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_254 +.L_small_initial_partial_block_254: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm17,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm17,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm17,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm17,%xmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_254: + + orq %r8,%r8 + je .L_after_reduction_254 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_254: + jmp .L_last_blocks_done_250 +.L_last_num_blocks_is_3_250: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $253,%r15d + jae .L_16_blocks_overflow_255 + vpaddd %zmm28,%zmm2,%zmm0 + jmp .L_16_blocks_ok_255 + +.L_16_blocks_overflow_255: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %zmm29,%zmm0,%zmm0 +.L_16_blocks_ok_255: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $2,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vbroadcastf64x2 176(%rdi),%zmm31 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vpxorq %zmm17,%zmm0,%zmm0 + vextracti32x4 $2,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm0,%zmm0{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vextracti32x4 $2,%zmm17,%xmm7 + subq $16 * (3 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_256 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_256 +.L_small_initial_partial_block_256: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm17,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm17,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm17,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm17,%ymm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_256: + + orq %r8,%r8 + je .L_after_reduction_256 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_256: + jmp .L_last_blocks_done_250 +.L_last_num_blocks_is_4_250: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $252,%r15d + jae .L_16_blocks_overflow_257 + vpaddd %zmm28,%zmm2,%zmm0 + jmp .L_16_blocks_ok_257 + +.L_16_blocks_overflow_257: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %zmm29,%zmm0,%zmm0 +.L_16_blocks_ok_257: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $3,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vbroadcastf64x2 176(%rdi),%zmm31 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vpxorq %zmm17,%zmm0,%zmm0 + vextracti32x4 $3,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm0,%zmm0{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vextracti32x4 $3,%zmm17,%xmm7 + subq $16 * (4 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_258 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_258 +.L_small_initial_partial_block_258: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_258: + + orq %r8,%r8 + je .L_after_reduction_258 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_258: + jmp .L_last_blocks_done_250 +.L_last_num_blocks_is_5_250: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $251,%r15d + jae .L_16_blocks_overflow_259 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %xmm27,%xmm0,%xmm3 + jmp .L_16_blocks_ok_259 + +.L_16_blocks_overflow_259: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %xmm29,%xmm3,%xmm3 +.L_16_blocks_ok_259: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $0,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%xmm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vbroadcastf64x2 176(%rdi),%zmm31 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %xmm30,%xmm3,%xmm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %xmm19,%xmm3,%xmm3 + vextracti32x4 $0,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %xmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm3,%zmm3{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %xmm29,%xmm3,%xmm19 + vextracti32x4 $0,%zmm19,%xmm7 + subq $16 * (5 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_260 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm19,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm19,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm19,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm19,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_260 +.L_small_initial_partial_block_260: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_260: + + orq %r8,%r8 + je .L_after_reduction_260 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_260: + jmp .L_last_blocks_done_250 +.L_last_num_blocks_is_6_250: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $250,%r15d + jae .L_16_blocks_overflow_261 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %ymm27,%ymm0,%ymm3 + jmp .L_16_blocks_ok_261 + +.L_16_blocks_overflow_261: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %ymm29,%ymm3,%ymm3 +.L_16_blocks_ok_261: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $1,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%ymm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vbroadcastf64x2 176(%rdi),%zmm31 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %ymm30,%ymm3,%ymm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %ymm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm3,%zmm3{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %ymm29,%ymm3,%ymm19 + vextracti32x4 $1,%zmm19,%xmm7 + subq $16 * (6 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_262 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm19,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm19,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm19,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm19,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_262 +.L_small_initial_partial_block_262: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm19,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm19,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm19,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm19,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_262: + + orq %r8,%r8 + je .L_after_reduction_262 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_262: + jmp .L_last_blocks_done_250 +.L_last_num_blocks_is_7_250: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $249,%r15d + jae .L_16_blocks_overflow_263 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + jmp .L_16_blocks_ok_263 + +.L_16_blocks_overflow_263: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 +.L_16_blocks_ok_263: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $2,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vbroadcastf64x2 176(%rdi),%zmm31 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti32x4 $2,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm3,%zmm3{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vextracti32x4 $2,%zmm19,%xmm7 + subq $16 * (7 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_264 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_264 +.L_small_initial_partial_block_264: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm19,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm19,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm19,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm19,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_264: + + orq %r8,%r8 + je .L_after_reduction_264 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_264: + jmp .L_last_blocks_done_250 +.L_last_num_blocks_is_8_250: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $248,%r15d + jae .L_16_blocks_overflow_265 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + jmp .L_16_blocks_ok_265 + +.L_16_blocks_overflow_265: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 +.L_16_blocks_ok_265: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $3,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vbroadcastf64x2 176(%rdi),%zmm31 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti32x4 $3,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm3,%zmm3{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vextracti32x4 $3,%zmm19,%xmm7 + subq $16 * (8 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_266 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_266 +.L_small_initial_partial_block_266: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_266: + + orq %r8,%r8 + je .L_after_reduction_266 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_266: + jmp .L_last_blocks_done_250 +.L_last_num_blocks_is_9_250: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $247,%r15d + jae .L_16_blocks_overflow_267 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %xmm27,%xmm3,%xmm4 + jmp .L_16_blocks_ok_267 + +.L_16_blocks_overflow_267: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %xmm29,%xmm4,%xmm4 +.L_16_blocks_ok_267: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $0,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%xmm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vbroadcastf64x2 176(%rdi),%zmm31 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %xmm30,%xmm4,%xmm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %xmm20,%xmm4,%xmm4 + vextracti32x4 $0,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %xmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm4,%zmm4{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %xmm29,%xmm4,%xmm20 + vextracti32x4 $0,%zmm20,%xmm7 + subq $16 * (9 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_268 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm20,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm20,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm20,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm20,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_268 +.L_small_initial_partial_block_268: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_268: + + orq %r8,%r8 + je .L_after_reduction_268 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_268: + jmp .L_last_blocks_done_250 +.L_last_num_blocks_is_10_250: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $246,%r15d + jae .L_16_blocks_overflow_269 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %ymm27,%ymm3,%ymm4 + jmp .L_16_blocks_ok_269 + +.L_16_blocks_overflow_269: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %ymm29,%ymm4,%ymm4 +.L_16_blocks_ok_269: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $1,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%ymm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vbroadcastf64x2 176(%rdi),%zmm31 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %ymm30,%ymm4,%ymm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %ymm20,%ymm4,%ymm4 + vextracti32x4 $1,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %ymm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm4,%zmm4{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %ymm29,%ymm4,%ymm20 + vextracti32x4 $1,%zmm20,%xmm7 + subq $16 * (10 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_270 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm20,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm20,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm20,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm20,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_270 +.L_small_initial_partial_block_270: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm20,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm20,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm20,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm20,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_270: + + orq %r8,%r8 + je .L_after_reduction_270 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_270: + jmp .L_last_blocks_done_250 +.L_last_num_blocks_is_11_250: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $245,%r15d + jae .L_16_blocks_overflow_271 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + jmp .L_16_blocks_ok_271 + +.L_16_blocks_overflow_271: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 +.L_16_blocks_ok_271: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $2,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vbroadcastf64x2 176(%rdi),%zmm31 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vextracti32x4 $2,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm4,%zmm4{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %zmm29,%zmm4,%zmm20 + vextracti32x4 $2,%zmm20,%xmm7 + subq $16 * (11 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_272 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_272 +.L_small_initial_partial_block_272: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm20,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm20,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm20,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm20,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_272: + + orq %r8,%r8 + je .L_after_reduction_272 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_272: + jmp .L_last_blocks_done_250 +.L_last_num_blocks_is_12_250: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $244,%r15d + jae .L_16_blocks_overflow_273 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + jmp .L_16_blocks_ok_273 + +.L_16_blocks_overflow_273: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 +.L_16_blocks_ok_273: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $3,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vbroadcastf64x2 176(%rdi),%zmm31 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vextracti32x4 $3,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm4,%zmm4{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %zmm29,%zmm4,%zmm20 + vextracti32x4 $3,%zmm20,%xmm7 + subq $16 * (12 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_274 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 160(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_274 +.L_small_initial_partial_block_274: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_274: + + orq %r8,%r8 + je .L_after_reduction_274 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_274: + jmp .L_last_blocks_done_250 +.L_last_num_blocks_is_13_250: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $243,%r15d + jae .L_16_blocks_overflow_275 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %xmm27,%xmm4,%xmm5 + jmp .L_16_blocks_ok_275 + +.L_16_blocks_overflow_275: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %xmm29,%xmm5,%xmm5 +.L_16_blocks_ok_275: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $0,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%xmm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vbroadcastf64x2 176(%rdi),%zmm31 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %xmm30,%xmm5,%xmm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %xmm21,%xmm5,%xmm5 + vextracti32x4 $0,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %xmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm5,%zmm5{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %zmm29,%zmm4,%zmm20 + vpshufb %xmm29,%xmm5,%xmm21 + vextracti32x4 $0,%zmm21,%xmm7 + subq $16 * (13 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_276 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 144(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm21,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm21,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm21,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm21,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_276 +.L_small_initial_partial_block_276: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 160(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_276: + + orq %r8,%r8 + je .L_after_reduction_276 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_276: + jmp .L_last_blocks_done_250 +.L_last_num_blocks_is_14_250: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $242,%r15d + jae .L_16_blocks_overflow_277 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %ymm27,%ymm4,%ymm5 + jmp .L_16_blocks_ok_277 + +.L_16_blocks_overflow_277: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %ymm29,%ymm5,%ymm5 +.L_16_blocks_ok_277: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $1,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%ymm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vbroadcastf64x2 176(%rdi),%zmm31 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %ymm30,%ymm5,%ymm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %ymm21,%ymm5,%ymm5 + vextracti32x4 $1,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %ymm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm5,%zmm5{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %zmm29,%zmm4,%zmm20 + vpshufb %ymm29,%ymm5,%ymm21 + vextracti32x4 $1,%zmm21,%xmm7 + subq $16 * (14 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_278 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 128(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm21,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm21,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm21,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm21,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_278 +.L_small_initial_partial_block_278: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 144(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm21,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm21,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm21,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm21,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_278: + + orq %r8,%r8 + je .L_after_reduction_278 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_278: + jmp .L_last_blocks_done_250 +.L_last_num_blocks_is_15_250: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $241,%r15d + jae .L_16_blocks_overflow_279 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp .L_16_blocks_ok_279 + +.L_16_blocks_overflow_279: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +.L_16_blocks_ok_279: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $2,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%zmm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vbroadcastf64x2 176(%rdi),%zmm31 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + vextracti32x4 $2,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %zmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm5,%zmm5{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %zmm29,%zmm4,%zmm20 + vpshufb %zmm29,%zmm5,%zmm21 + vextracti32x4 $2,%zmm21,%xmm7 + subq $16 * (15 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_280 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 112(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm21,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm21,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm21,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm21,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_280 +.L_small_initial_partial_block_280: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 128(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm21,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm21,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm21,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm21,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_280: + + orq %r8,%r8 + je .L_after_reduction_280 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_280: + jmp .L_last_blocks_done_250 +.L_last_num_blocks_is_16_250: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $240,%r15d + jae .L_16_blocks_overflow_281 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp .L_16_blocks_ok_281 + +.L_16_blocks_overflow_281: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +.L_16_blocks_ok_281: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $3,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%zmm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vbroadcastf64x2 176(%rdi),%zmm31 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + vextracti32x4 $3,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %zmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm5,%zmm5{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %zmm29,%zmm4,%zmm20 + vpshufb %zmm29,%zmm5,%zmm21 + vextracti32x4 $3,%zmm21,%xmm7 + subq $16 * (16 - 1),%r8 +.L_small_initial_partial_block_282: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 112(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm21,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm21,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm21,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm21,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_282: + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_282: + jmp .L_last_blocks_done_250 +.L_last_num_blocks_is_0_250: + vmovdqa64 1280(%rsp),%zmm13 + vmovdqu64 512(%rsp),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 1344(%rsp),%zmm13 + vmovdqu64 576(%rsp),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + vpternlogq $0x96,%zmm10,%zmm4,%zmm26 + vpternlogq $0x96,%zmm6,%zmm0,%zmm24 + vpternlogq $0x96,%zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + vmovdqa64 1408(%rsp),%zmm13 + vmovdqu64 640(%rsp),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 1472(%rsp),%zmm13 + vmovdqu64 704(%rsp),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + + vpternlogq $0x96,%zmm10,%zmm4,%zmm26 + vpternlogq $0x96,%zmm6,%zmm0,%zmm24 + vpternlogq $0x96,%zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + + vpsrldq $8,%zmm26,%zmm0 + vpslldq $8,%zmm26,%zmm3 + vpxorq %zmm0,%zmm24,%zmm24 + vpxorq %zmm3,%zmm25,%zmm25 + vextracti64x4 $1,%zmm24,%ymm0 + vpxorq %ymm0,%ymm24,%ymm24 + vextracti32x4 $1,%ymm24,%xmm0 + vpxorq %xmm0,%xmm24,%xmm24 + vextracti64x4 $1,%zmm25,%ymm3 + vpxorq %ymm3,%ymm25,%ymm25 + vextracti32x4 $1,%ymm25,%xmm3 + vpxorq %xmm3,%xmm25,%xmm25 + vmovdqa64 POLY2(%rip),%xmm4 + + + vpclmulqdq $0x01,%xmm25,%xmm4,%xmm0 + vpslldq $8,%xmm0,%xmm0 + vpxorq %xmm0,%xmm25,%xmm0 + + + vpclmulqdq $0x00,%xmm0,%xmm4,%xmm3 + vpsrldq $4,%xmm3,%xmm3 + vpclmulqdq $0x10,%xmm0,%xmm4,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm24,%xmm3,%xmm14 + +.L_last_blocks_done_250: + vpshufb %xmm29,%xmm2,%xmm2 + jmp .L_ghash_done_172 + +.L_message_below_32_blocks_172: + + + subq $256,%r8 + addq $256,%r11 + movl %r8d,%r10d + testq %r14,%r14 + jnz .L_skip_hkeys_precomputation_283 + vmovdqu64 640(%rsp),%zmm3 + + + vshufi64x2 $0x00,%zmm3,%zmm3,%zmm3 + + vmovdqu64 576(%rsp),%zmm4 + vmovdqu64 512(%rsp),%zmm5 + + vpclmulqdq $0x11,%zmm3,%zmm4,%zmm6 + vpclmulqdq $0x00,%zmm3,%zmm4,%zmm7 + vpclmulqdq $0x01,%zmm3,%zmm4,%zmm10 + vpclmulqdq $0x10,%zmm3,%zmm4,%zmm4 + vpxorq %zmm10,%zmm4,%zmm4 + + vpsrldq $8,%zmm4,%zmm10 + vpslldq $8,%zmm4,%zmm4 + vpxorq %zmm10,%zmm6,%zmm6 + vpxorq %zmm7,%zmm4,%zmm4 + + + + vmovdqu64 POLY2(%rip),%zmm10 + + vpclmulqdq $0x01,%zmm4,%zmm10,%zmm7 + vpslldq $8,%zmm7,%zmm7 + vpxorq %zmm7,%zmm4,%zmm4 + + + + vpclmulqdq $0x00,%zmm4,%zmm10,%zmm7 + vpsrldq $4,%zmm7,%zmm7 + vpclmulqdq $0x10,%zmm4,%zmm10,%zmm4 + vpslldq $4,%zmm4,%zmm4 + + vpternlogq $0x96,%zmm7,%zmm6,%zmm4 + + vmovdqu64 %zmm4,448(%rsp) + + vpclmulqdq $0x11,%zmm3,%zmm5,%zmm6 + vpclmulqdq $0x00,%zmm3,%zmm5,%zmm7 + vpclmulqdq $0x01,%zmm3,%zmm5,%zmm10 + vpclmulqdq $0x10,%zmm3,%zmm5,%zmm5 + vpxorq %zmm10,%zmm5,%zmm5 + + vpsrldq $8,%zmm5,%zmm10 + vpslldq $8,%zmm5,%zmm5 + vpxorq %zmm10,%zmm6,%zmm6 + vpxorq %zmm7,%zmm5,%zmm5 + + + + vmovdqu64 POLY2(%rip),%zmm10 + + vpclmulqdq $0x01,%zmm5,%zmm10,%zmm7 + vpslldq $8,%zmm7,%zmm7 + vpxorq %zmm7,%zmm5,%zmm5 + + + + vpclmulqdq $0x00,%zmm5,%zmm10,%zmm7 + vpsrldq $4,%zmm7,%zmm7 + vpclmulqdq $0x10,%zmm5,%zmm10,%zmm5 + vpslldq $4,%zmm5,%zmm5 + + vpternlogq $0x96,%zmm7,%zmm6,%zmm5 + + vmovdqu64 %zmm5,384(%rsp) + + vpclmulqdq $0x11,%zmm3,%zmm4,%zmm6 + vpclmulqdq $0x00,%zmm3,%zmm4,%zmm7 + vpclmulqdq $0x01,%zmm3,%zmm4,%zmm10 + vpclmulqdq $0x10,%zmm3,%zmm4,%zmm4 + vpxorq %zmm10,%zmm4,%zmm4 + + vpsrldq $8,%zmm4,%zmm10 + vpslldq $8,%zmm4,%zmm4 + vpxorq %zmm10,%zmm6,%zmm6 + vpxorq %zmm7,%zmm4,%zmm4 + + + + vmovdqu64 POLY2(%rip),%zmm10 + + vpclmulqdq $0x01,%zmm4,%zmm10,%zmm7 + vpslldq $8,%zmm7,%zmm7 + vpxorq %zmm7,%zmm4,%zmm4 + + + + vpclmulqdq $0x00,%zmm4,%zmm10,%zmm7 + vpsrldq $4,%zmm7,%zmm7 + vpclmulqdq $0x10,%zmm4,%zmm10,%zmm4 + vpslldq $4,%zmm4,%zmm4 + + vpternlogq $0x96,%zmm7,%zmm6,%zmm4 + + vmovdqu64 %zmm4,320(%rsp) + + vpclmulqdq $0x11,%zmm3,%zmm5,%zmm6 + vpclmulqdq $0x00,%zmm3,%zmm5,%zmm7 + vpclmulqdq $0x01,%zmm3,%zmm5,%zmm10 + vpclmulqdq $0x10,%zmm3,%zmm5,%zmm5 + vpxorq %zmm10,%zmm5,%zmm5 + + vpsrldq $8,%zmm5,%zmm10 + vpslldq $8,%zmm5,%zmm5 + vpxorq %zmm10,%zmm6,%zmm6 + vpxorq %zmm7,%zmm5,%zmm5 + + + + vmovdqu64 POLY2(%rip),%zmm10 + + vpclmulqdq $0x01,%zmm5,%zmm10,%zmm7 + vpslldq $8,%zmm7,%zmm7 + vpxorq %zmm7,%zmm5,%zmm5 + + + + vpclmulqdq $0x00,%zmm5,%zmm10,%zmm7 + vpsrldq $4,%zmm7,%zmm7 + vpclmulqdq $0x10,%zmm5,%zmm10,%zmm5 + vpslldq $4,%zmm5,%zmm5 + + vpternlogq $0x96,%zmm7,%zmm6,%zmm5 + + vmovdqu64 %zmm5,256(%rsp) +.L_skip_hkeys_precomputation_283: + movq $1,%r14 + andl $~15,%r10d + movl $512,%ebx + subl %r10d,%ebx + movl %r8d,%r10d + addl $15,%r10d + shrl $4,%r10d + je .L_last_num_blocks_is_0_284 + + cmpl $8,%r10d + je .L_last_num_blocks_is_8_284 + jb .L_last_num_blocks_is_7_1_284 + + + cmpl $12,%r10d + je .L_last_num_blocks_is_12_284 + jb .L_last_num_blocks_is_11_9_284 + + + cmpl $15,%r10d + je .L_last_num_blocks_is_15_284 + ja .L_last_num_blocks_is_16_284 + cmpl $14,%r10d + je .L_last_num_blocks_is_14_284 + jmp .L_last_num_blocks_is_13_284 + +.L_last_num_blocks_is_11_9_284: + + cmpl $10,%r10d + je .L_last_num_blocks_is_10_284 + ja .L_last_num_blocks_is_11_284 + jmp .L_last_num_blocks_is_9_284 + +.L_last_num_blocks_is_7_1_284: + cmpl $4,%r10d + je .L_last_num_blocks_is_4_284 + jb .L_last_num_blocks_is_3_1_284 + + cmpl $6,%r10d + ja .L_last_num_blocks_is_7_284 + je .L_last_num_blocks_is_6_284 + jmp .L_last_num_blocks_is_5_284 + +.L_last_num_blocks_is_3_1_284: + + cmpl $2,%r10d + ja .L_last_num_blocks_is_3_284 + je .L_last_num_blocks_is_2_284 +.L_last_num_blocks_is_1_284: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $255,%r15d + jae .L_16_blocks_overflow_285 + vpaddd %xmm28,%xmm2,%xmm0 + jmp .L_16_blocks_ok_285 + +.L_16_blocks_overflow_285: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %xmm29,%xmm0,%xmm0 +.L_16_blocks_ok_285: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $0,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%xmm17{%k1}{z} + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %xmm31,%xmm0,%xmm0 + vaesenclast %xmm30,%xmm0,%xmm0 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti32x4 $0,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %xmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm0,%zmm0{%k1}{z} + vpshufb %xmm29,%xmm0,%xmm17 + vextracti32x4 $0,%zmm17,%xmm7 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_286 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm17,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm17,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm17,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm17,%xmm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_286 +.L_small_initial_partial_block_286: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + + + vpsrldq $8,%zmm26,%zmm0 + vpslldq $8,%zmm26,%zmm3 + vpxorq %zmm0,%zmm24,%zmm24 + vpxorq %zmm3,%zmm25,%zmm25 + vextracti64x4 $1,%zmm24,%ymm0 + vpxorq %ymm0,%ymm24,%ymm24 + vextracti32x4 $1,%ymm24,%xmm0 + vpxorq %xmm0,%xmm24,%xmm24 + vextracti64x4 $1,%zmm25,%ymm3 + vpxorq %ymm3,%ymm25,%ymm25 + vextracti32x4 $1,%ymm25,%xmm3 + vpxorq %xmm3,%xmm25,%xmm25 + vmovdqa64 POLY2(%rip),%xmm0 + + + vpclmulqdq $0x01,%xmm25,%xmm0,%xmm3 + vpslldq $8,%xmm3,%xmm3 + vpxorq %xmm3,%xmm25,%xmm3 + + + vpclmulqdq $0x00,%xmm3,%xmm0,%xmm4 + vpsrldq $4,%xmm4,%xmm4 + vpclmulqdq $0x10,%xmm3,%xmm0,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm24,%xmm4,%xmm14 + + + + + + + + + + + + + vpxorq %xmm7,%xmm14,%xmm14 + + jmp .L_after_reduction_286 +.L_small_initial_compute_done_286: +.L_after_reduction_286: + jmp .L_last_blocks_done_284 +.L_last_num_blocks_is_2_284: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $254,%r15d + jae .L_16_blocks_overflow_287 + vpaddd %ymm28,%ymm2,%ymm0 + jmp .L_16_blocks_ok_287 + +.L_16_blocks_overflow_287: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %ymm29,%ymm0,%ymm0 +.L_16_blocks_ok_287: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $1,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%ymm17{%k1}{z} + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %ymm31,%ymm0,%ymm0 + vaesenclast %ymm30,%ymm0,%ymm0 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %ymm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm0,%zmm0{%k1}{z} + vpshufb %ymm29,%ymm0,%ymm17 + vextracti32x4 $1,%zmm17,%xmm7 + subq $16 * (2 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_288 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm17,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm17,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm17,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm17,%ymm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_288 +.L_small_initial_partial_block_288: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm17,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm17,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm17,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm17,%xmm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_288: + + orq %r8,%r8 + je .L_after_reduction_288 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_288: + jmp .L_last_blocks_done_284 +.L_last_num_blocks_is_3_284: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $253,%r15d + jae .L_16_blocks_overflow_289 + vpaddd %zmm28,%zmm2,%zmm0 + jmp .L_16_blocks_ok_289 + +.L_16_blocks_overflow_289: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %zmm29,%zmm0,%zmm0 +.L_16_blocks_ok_289: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $2,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm0,%zmm0 + vpxorq %zmm17,%zmm0,%zmm0 + vextracti32x4 $2,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm0,%zmm0{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vextracti32x4 $2,%zmm17,%xmm7 + subq $16 * (3 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_290 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_290 +.L_small_initial_partial_block_290: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm17,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm17,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm17,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm17,%ymm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_290: + + orq %r8,%r8 + je .L_after_reduction_290 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_290: + jmp .L_last_blocks_done_284 +.L_last_num_blocks_is_4_284: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $252,%r15d + jae .L_16_blocks_overflow_291 + vpaddd %zmm28,%zmm2,%zmm0 + jmp .L_16_blocks_ok_291 + +.L_16_blocks_overflow_291: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %zmm29,%zmm0,%zmm0 +.L_16_blocks_ok_291: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $3,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm0,%zmm0 + vpxorq %zmm17,%zmm0,%zmm0 + vextracti32x4 $3,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm0,%zmm0{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vextracti32x4 $3,%zmm17,%xmm7 + subq $16 * (4 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_292 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_292 +.L_small_initial_partial_block_292: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_292: + + orq %r8,%r8 + je .L_after_reduction_292 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_292: + jmp .L_last_blocks_done_284 +.L_last_num_blocks_is_5_284: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $251,%r15d + jae .L_16_blocks_overflow_293 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %xmm27,%xmm0,%xmm3 + jmp .L_16_blocks_ok_293 + +.L_16_blocks_overflow_293: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %xmm29,%xmm3,%xmm3 +.L_16_blocks_ok_293: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $0,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%xmm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %xmm30,%xmm3,%xmm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %xmm19,%xmm3,%xmm3 + vextracti32x4 $0,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %xmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm3,%zmm3{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %xmm29,%xmm3,%xmm19 + vextracti32x4 $0,%zmm19,%xmm7 + subq $16 * (5 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_294 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm19,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm19,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm19,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm19,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_294 +.L_small_initial_partial_block_294: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_294: + + orq %r8,%r8 + je .L_after_reduction_294 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_294: + jmp .L_last_blocks_done_284 +.L_last_num_blocks_is_6_284: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $250,%r15d + jae .L_16_blocks_overflow_295 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %ymm27,%ymm0,%ymm3 + jmp .L_16_blocks_ok_295 + +.L_16_blocks_overflow_295: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %ymm29,%ymm3,%ymm3 +.L_16_blocks_ok_295: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $1,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%ymm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %ymm30,%ymm3,%ymm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %ymm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm3,%zmm3{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %ymm29,%ymm3,%ymm19 + vextracti32x4 $1,%zmm19,%xmm7 + subq $16 * (6 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_296 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm19,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm19,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm19,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm19,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_296 +.L_small_initial_partial_block_296: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm19,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm19,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm19,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm19,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_296: + + orq %r8,%r8 + je .L_after_reduction_296 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_296: + jmp .L_last_blocks_done_284 +.L_last_num_blocks_is_7_284: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $249,%r15d + jae .L_16_blocks_overflow_297 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + jmp .L_16_blocks_ok_297 + +.L_16_blocks_overflow_297: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 +.L_16_blocks_ok_297: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $2,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti32x4 $2,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm3,%zmm3{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vextracti32x4 $2,%zmm19,%xmm7 + subq $16 * (7 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_298 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_298 +.L_small_initial_partial_block_298: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm19,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm19,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm19,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm19,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_298: + + orq %r8,%r8 + je .L_after_reduction_298 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_298: + jmp .L_last_blocks_done_284 +.L_last_num_blocks_is_8_284: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $248,%r15d + jae .L_16_blocks_overflow_299 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + jmp .L_16_blocks_ok_299 + +.L_16_blocks_overflow_299: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 +.L_16_blocks_ok_299: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $3,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti32x4 $3,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm3,%zmm3{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vextracti32x4 $3,%zmm19,%xmm7 + subq $16 * (8 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_300 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_300 +.L_small_initial_partial_block_300: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_300: + + orq %r8,%r8 + je .L_after_reduction_300 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_300: + jmp .L_last_blocks_done_284 +.L_last_num_blocks_is_9_284: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $247,%r15d + jae .L_16_blocks_overflow_301 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %xmm27,%xmm3,%xmm4 + jmp .L_16_blocks_ok_301 + +.L_16_blocks_overflow_301: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %xmm29,%xmm4,%xmm4 +.L_16_blocks_ok_301: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $0,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%xmm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %xmm30,%xmm4,%xmm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %xmm20,%xmm4,%xmm4 + vextracti32x4 $0,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %xmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm4,%zmm4{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %xmm29,%xmm4,%xmm20 + vextracti32x4 $0,%zmm20,%xmm7 + subq $16 * (9 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_302 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm20,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm20,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm20,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm20,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_302 +.L_small_initial_partial_block_302: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_302: + + orq %r8,%r8 + je .L_after_reduction_302 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_302: + jmp .L_last_blocks_done_284 +.L_last_num_blocks_is_10_284: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $246,%r15d + jae .L_16_blocks_overflow_303 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %ymm27,%ymm3,%ymm4 + jmp .L_16_blocks_ok_303 + +.L_16_blocks_overflow_303: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %ymm29,%ymm4,%ymm4 +.L_16_blocks_ok_303: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $1,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%ymm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %ymm30,%ymm4,%ymm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %ymm20,%ymm4,%ymm4 + vextracti32x4 $1,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %ymm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm4,%zmm4{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %ymm29,%ymm4,%ymm20 + vextracti32x4 $1,%zmm20,%xmm7 + subq $16 * (10 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_304 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm20,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm20,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm20,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm20,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_304 +.L_small_initial_partial_block_304: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm20,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm20,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm20,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm20,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_304: + + orq %r8,%r8 + je .L_after_reduction_304 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_304: + jmp .L_last_blocks_done_284 +.L_last_num_blocks_is_11_284: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $245,%r15d + jae .L_16_blocks_overflow_305 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + jmp .L_16_blocks_ok_305 + +.L_16_blocks_overflow_305: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 +.L_16_blocks_ok_305: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $2,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vextracti32x4 $2,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm4,%zmm4{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %zmm29,%zmm4,%zmm20 + vextracti32x4 $2,%zmm20,%xmm7 + subq $16 * (11 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_306 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_306 +.L_small_initial_partial_block_306: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm20,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm20,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm20,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm20,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_306: + + orq %r8,%r8 + je .L_after_reduction_306 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_306: + jmp .L_last_blocks_done_284 +.L_last_num_blocks_is_12_284: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $244,%r15d + jae .L_16_blocks_overflow_307 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + jmp .L_16_blocks_ok_307 + +.L_16_blocks_overflow_307: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 +.L_16_blocks_ok_307: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $3,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vextracti32x4 $3,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm4,%zmm4{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %zmm29,%zmm4,%zmm20 + vextracti32x4 $3,%zmm20,%xmm7 + subq $16 * (12 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_308 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 160(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_308 +.L_small_initial_partial_block_308: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_308: + + orq %r8,%r8 + je .L_after_reduction_308 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_308: + jmp .L_last_blocks_done_284 +.L_last_num_blocks_is_13_284: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $243,%r15d + jae .L_16_blocks_overflow_309 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %xmm27,%xmm4,%xmm5 + jmp .L_16_blocks_ok_309 + +.L_16_blocks_overflow_309: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %xmm29,%xmm5,%xmm5 +.L_16_blocks_ok_309: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $0,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%xmm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %xmm30,%xmm5,%xmm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %xmm21,%xmm5,%xmm5 + vextracti32x4 $0,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %xmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm5,%zmm5{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %zmm29,%zmm4,%zmm20 + vpshufb %xmm29,%xmm5,%xmm21 + vextracti32x4 $0,%zmm21,%xmm7 + subq $16 * (13 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_310 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 144(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm21,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm21,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm21,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm21,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_310 +.L_small_initial_partial_block_310: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 160(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_310: + + orq %r8,%r8 + je .L_after_reduction_310 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_310: + jmp .L_last_blocks_done_284 +.L_last_num_blocks_is_14_284: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $242,%r15d + jae .L_16_blocks_overflow_311 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %ymm27,%ymm4,%ymm5 + jmp .L_16_blocks_ok_311 + +.L_16_blocks_overflow_311: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %ymm29,%ymm5,%ymm5 +.L_16_blocks_ok_311: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $1,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%ymm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %ymm30,%ymm5,%ymm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %ymm21,%ymm5,%ymm5 + vextracti32x4 $1,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %ymm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm5,%zmm5{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %zmm29,%zmm4,%zmm20 + vpshufb %ymm29,%ymm5,%ymm21 + vextracti32x4 $1,%zmm21,%xmm7 + subq $16 * (14 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_312 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 128(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm21,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm21,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm21,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm21,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_312 +.L_small_initial_partial_block_312: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 144(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm21,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm21,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm21,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm21,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_312: + + orq %r8,%r8 + je .L_after_reduction_312 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_312: + jmp .L_last_blocks_done_284 +.L_last_num_blocks_is_15_284: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $241,%r15d + jae .L_16_blocks_overflow_313 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp .L_16_blocks_ok_313 + +.L_16_blocks_overflow_313: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +.L_16_blocks_ok_313: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $2,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%zmm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + vextracti32x4 $2,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %zmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm5,%zmm5{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %zmm29,%zmm4,%zmm20 + vpshufb %zmm29,%zmm5,%zmm21 + vextracti32x4 $2,%zmm21,%xmm7 + subq $16 * (15 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_314 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 112(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm21,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm21,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm21,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm21,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_314 +.L_small_initial_partial_block_314: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 128(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm21,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm21,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm21,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm21,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_314: + + orq %r8,%r8 + je .L_after_reduction_314 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_314: + jmp .L_last_blocks_done_284 +.L_last_num_blocks_is_16_284: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $240,%r15d + jae .L_16_blocks_overflow_315 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp .L_16_blocks_ok_315 + +.L_16_blocks_overflow_315: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +.L_16_blocks_ok_315: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $3,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%zmm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + vextracti32x4 $3,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %zmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm5,%zmm5{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %zmm29,%zmm4,%zmm20 + vpshufb %zmm29,%zmm5,%zmm21 + vextracti32x4 $3,%zmm21,%xmm7 + subq $16 * (16 - 1),%r8 +.L_small_initial_partial_block_316: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 112(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm21,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm21,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm21,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm21,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_316: + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_316: + jmp .L_last_blocks_done_284 +.L_last_num_blocks_is_0_284: + vmovdqa64 768(%rsp),%zmm13 + vpxorq %zmm14,%zmm13,%zmm13 + vmovdqu64 0(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 832(%rsp),%zmm13 + vmovdqu64 64(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + vpxorq %zmm10,%zmm4,%zmm26 + vpxorq %zmm6,%zmm0,%zmm24 + vpxorq %zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + vmovdqa64 896(%rsp),%zmm13 + vmovdqu64 128(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 960(%rsp),%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + + vpternlogq $0x96,%zmm10,%zmm4,%zmm26 + vpternlogq $0x96,%zmm6,%zmm0,%zmm24 + vpternlogq $0x96,%zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + + vpsrldq $8,%zmm26,%zmm0 + vpslldq $8,%zmm26,%zmm3 + vpxorq %zmm0,%zmm24,%zmm24 + vpxorq %zmm3,%zmm25,%zmm25 + vextracti64x4 $1,%zmm24,%ymm0 + vpxorq %ymm0,%ymm24,%ymm24 + vextracti32x4 $1,%ymm24,%xmm0 + vpxorq %xmm0,%xmm24,%xmm24 + vextracti64x4 $1,%zmm25,%ymm3 + vpxorq %ymm3,%ymm25,%ymm25 + vextracti32x4 $1,%ymm25,%xmm3 + vpxorq %xmm3,%xmm25,%xmm25 + vmovdqa64 POLY2(%rip),%xmm4 + + + vpclmulqdq $0x01,%xmm25,%xmm4,%xmm0 + vpslldq $8,%xmm0,%xmm0 + vpxorq %xmm0,%xmm25,%xmm0 + + + vpclmulqdq $0x00,%xmm0,%xmm4,%xmm3 + vpsrldq $4,%xmm3,%xmm3 + vpclmulqdq $0x10,%xmm0,%xmm4,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm24,%xmm3,%xmm14 + +.L_last_blocks_done_284: + vpshufb %xmm29,%xmm2,%xmm2 + jmp .L_ghash_done_172 + +.L_message_below_equal_16_blocks_172: + + + movl %r8d,%r12d + addl $15,%r12d + shrl $4,%r12d + cmpq $8,%r12 + je .L_small_initial_num_blocks_is_8_317 + jl .L_small_initial_num_blocks_is_7_1_317 + + + cmpq $12,%r12 + je .L_small_initial_num_blocks_is_12_317 + jl .L_small_initial_num_blocks_is_11_9_317 + + + cmpq $16,%r12 + je .L_small_initial_num_blocks_is_16_317 + cmpq $15,%r12 + je .L_small_initial_num_blocks_is_15_317 + cmpq $14,%r12 + je .L_small_initial_num_blocks_is_14_317 + jmp .L_small_initial_num_blocks_is_13_317 + +.L_small_initial_num_blocks_is_11_9_317: + + cmpq $11,%r12 + je .L_small_initial_num_blocks_is_11_317 + cmpq $10,%r12 + je .L_small_initial_num_blocks_is_10_317 + jmp .L_small_initial_num_blocks_is_9_317 + +.L_small_initial_num_blocks_is_7_1_317: + cmpq $4,%r12 + je .L_small_initial_num_blocks_is_4_317 + jl .L_small_initial_num_blocks_is_3_1_317 + + cmpq $7,%r12 + je .L_small_initial_num_blocks_is_7_317 + cmpq $6,%r12 + je .L_small_initial_num_blocks_is_6_317 + jmp .L_small_initial_num_blocks_is_5_317 + +.L_small_initial_num_blocks_is_3_1_317: + + cmpq $3,%r12 + je .L_small_initial_num_blocks_is_3_317 + cmpq $2,%r12 + je .L_small_initial_num_blocks_is_2_317 + + + + + +.L_small_initial_num_blocks_is_1_317: + vmovdqa64 SHUF_MASK(%rip),%xmm29 + vpaddd ONE(%rip),%xmm2,%xmm0 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $0,%zmm0,%xmm2 + vpshufb %xmm29,%xmm0,%xmm0 + vmovdqu8 0(%rcx,%r11,1),%xmm6{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %xmm15,%xmm0,%xmm0 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %xmm15,%xmm0,%xmm0 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %xmm15,%xmm0,%xmm0 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %xmm15,%xmm0,%xmm0 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %xmm15,%xmm0,%xmm0 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %xmm15,%xmm0,%xmm0 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %xmm15,%xmm0,%xmm0 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %xmm15,%xmm0,%xmm0 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %xmm15,%xmm0,%xmm0 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %xmm15,%xmm0,%xmm0 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenc %xmm15,%xmm0,%xmm0 + vbroadcastf64x2 176(%rdi),%zmm15 + vaesenc %xmm15,%xmm0,%xmm0 + vbroadcastf64x2 192(%rdi),%zmm15 + vaesenclast %xmm15,%xmm0,%xmm0 + vpxorq %xmm6,%xmm0,%xmm0 + vextracti32x4 $0,%zmm0,%xmm12 + movq %r9,%r10 + vmovdqu8 %xmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm0,%zmm0{%k1}{z} + vpshufb %xmm29,%xmm0,%xmm6 + vextracti32x4 $0,%zmm6,%xmm13 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_318 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 336(%rsi),%xmm20 + vpclmulqdq $0x01,%xmm20,%xmm6,%xmm4 + vpclmulqdq $0x10,%xmm20,%xmm6,%xmm5 + vpclmulqdq $0x11,%xmm20,%xmm6,%xmm0 + vpclmulqdq $0x00,%xmm20,%xmm6,%xmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_318 +.L_small_initial_partial_block_318: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + + + + + + + + + + + + vpxorq %xmm13,%xmm14,%xmm14 + + jmp .L_after_reduction_318 +.L_small_initial_compute_done_318: +.L_after_reduction_318: + jmp .L_small_initial_blocks_encrypted_317 +.L_small_initial_num_blocks_is_2_317: + vmovdqa64 SHUF_MASK(%rip),%ymm29 + vshufi64x2 $0,%ymm2,%ymm2,%ymm0 + vpaddd ddq_add_1234(%rip),%ymm0,%ymm0 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $1,%zmm0,%xmm2 + vpshufb %ymm29,%ymm0,%ymm0 + vmovdqu8 0(%rcx,%r11,1),%ymm6{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %ymm15,%ymm0,%ymm0 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %ymm15,%ymm0,%ymm0 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %ymm15,%ymm0,%ymm0 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %ymm15,%ymm0,%ymm0 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %ymm15,%ymm0,%ymm0 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %ymm15,%ymm0,%ymm0 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %ymm15,%ymm0,%ymm0 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %ymm15,%ymm0,%ymm0 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %ymm15,%ymm0,%ymm0 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %ymm15,%ymm0,%ymm0 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenc %ymm15,%ymm0,%ymm0 + vbroadcastf64x2 176(%rdi),%zmm15 + vaesenc %ymm15,%ymm0,%ymm0 + vbroadcastf64x2 192(%rdi),%zmm15 + vaesenclast %ymm15,%ymm0,%ymm0 + vpxorq %ymm6,%ymm0,%ymm0 + vextracti32x4 $1,%zmm0,%xmm12 + movq %r9,%r10 + vmovdqu8 %ymm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm0,%zmm0{%k1}{z} + vpshufb %ymm29,%ymm0,%ymm6 + vextracti32x4 $1,%zmm6,%xmm13 + subq $16 * (2 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_319 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 320(%rsi),%ymm20 + vpclmulqdq $0x01,%ymm20,%ymm6,%ymm4 + vpclmulqdq $0x10,%ymm20,%ymm6,%ymm5 + vpclmulqdq $0x11,%ymm20,%ymm6,%ymm0 + vpclmulqdq $0x00,%ymm20,%ymm6,%ymm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_319 +.L_small_initial_partial_block_319: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 336(%rsi),%xmm20 + vpclmulqdq $0x01,%xmm20,%xmm6,%xmm4 + vpclmulqdq $0x10,%xmm20,%xmm6,%xmm5 + vpclmulqdq $0x11,%xmm20,%xmm6,%xmm0 + vpclmulqdq $0x00,%xmm20,%xmm6,%xmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_319: + + orq %r8,%r8 + je .L_after_reduction_319 + vpxorq %xmm13,%xmm14,%xmm14 +.L_after_reduction_319: + jmp .L_small_initial_blocks_encrypted_317 +.L_small_initial_num_blocks_is_3_317: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $2,%zmm0,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vmovdqu8 0(%rcx,%r11,1),%zmm6{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 176(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 192(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vpxorq %zmm6,%zmm0,%zmm0 + vextracti32x4 $2,%zmm0,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm0,%zmm0{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm6 + vextracti32x4 $2,%zmm6,%xmm13 + subq $16 * (3 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_320 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 304(%rsi),%ymm20 + vinserti64x2 $2,336(%rsi),%zmm20,%zmm20 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_320 +.L_small_initial_partial_block_320: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 320(%rsi),%ymm20 + vpclmulqdq $0x01,%ymm20,%ymm6,%ymm4 + vpclmulqdq $0x10,%ymm20,%ymm6,%ymm5 + vpclmulqdq $0x11,%ymm20,%ymm6,%ymm0 + vpclmulqdq $0x00,%ymm20,%ymm6,%ymm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_320: + + orq %r8,%r8 + je .L_after_reduction_320 + vpxorq %xmm13,%xmm14,%xmm14 +.L_after_reduction_320: + jmp .L_small_initial_blocks_encrypted_317 +.L_small_initial_num_blocks_is_4_317: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $3,%zmm0,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vmovdqu8 0(%rcx,%r11,1),%zmm6{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 176(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 192(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vpxorq %zmm6,%zmm0,%zmm0 + vextracti32x4 $3,%zmm0,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm0,%zmm0{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm6 + vextracti32x4 $3,%zmm6,%xmm13 + subq $16 * (4 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_321 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 288(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm19 + + vpxorq %zmm19,%zmm17,%zmm17 + vpsrldq $8,%zmm17,%zmm4 + vpslldq $8,%zmm17,%zmm5 + vpxorq %zmm4,%zmm15,%zmm0 + vpxorq %zmm5,%zmm16,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_321 +.L_small_initial_partial_block_321: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 304(%rsi),%ymm20 + vinserti64x2 $2,336(%rsi),%zmm20,%zmm20 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_321: + + orq %r8,%r8 + je .L_after_reduction_321 + vpxorq %xmm13,%xmm14,%xmm14 +.L_after_reduction_321: + jmp .L_small_initial_blocks_encrypted_317 +.L_small_initial_num_blocks_is_5_317: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd ddq_add_5678(%rip),%zmm2,%zmm3 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + subq $64,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $0,%zmm3,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %xmm29,%xmm3,%xmm3 + vmovdqu8 0(%rcx,%r11,1),%zmm6 + vmovdqu8 64(%rcx,%r11,1),%xmm7{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %xmm15,%xmm3,%xmm3 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %xmm15,%xmm3,%xmm3 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %xmm15,%xmm3,%xmm3 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %xmm15,%xmm3,%xmm3 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %xmm15,%xmm3,%xmm3 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %xmm15,%xmm3,%xmm3 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %xmm15,%xmm3,%xmm3 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %xmm15,%xmm3,%xmm3 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %xmm15,%xmm3,%xmm3 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %xmm15,%xmm3,%xmm3 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %xmm15,%xmm3,%xmm3 + vbroadcastf64x2 176(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %xmm15,%xmm3,%xmm3 + vbroadcastf64x2 192(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vaesenclast %xmm15,%xmm3,%xmm3 + vpxorq %zmm6,%zmm0,%zmm0 + vpxorq %xmm7,%xmm3,%xmm3 + vextracti32x4 $0,%zmm3,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %xmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm3,%zmm3{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm6 + vpshufb %xmm29,%xmm3,%xmm7 + vextracti32x4 $0,%zmm7,%xmm13 + subq $16 * (5 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_322 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 272(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm19 + vmovdqu64 336(%rsi),%xmm20 + vpclmulqdq $0x01,%xmm20,%xmm7,%xmm4 + vpclmulqdq $0x10,%xmm20,%xmm7,%xmm5 + vpclmulqdq $0x11,%xmm20,%xmm7,%xmm0 + vpclmulqdq $0x00,%xmm20,%xmm7,%xmm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_322 +.L_small_initial_partial_block_322: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 288(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm19 + + vpxorq %zmm19,%zmm17,%zmm17 + vpsrldq $8,%zmm17,%zmm4 + vpslldq $8,%zmm17,%zmm5 + vpxorq %zmm4,%zmm15,%zmm0 + vpxorq %zmm5,%zmm16,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_322: + + orq %r8,%r8 + je .L_after_reduction_322 + vpxorq %xmm13,%xmm14,%xmm14 +.L_after_reduction_322: + jmp .L_small_initial_blocks_encrypted_317 +.L_small_initial_num_blocks_is_6_317: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd ddq_add_5678(%rip),%zmm2,%zmm3 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + subq $64,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $1,%zmm3,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %ymm29,%ymm3,%ymm3 + vmovdqu8 0(%rcx,%r11,1),%zmm6 + vmovdqu8 64(%rcx,%r11,1),%ymm7{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %ymm15,%ymm3,%ymm3 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %ymm15,%ymm3,%ymm3 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %ymm15,%ymm3,%ymm3 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %ymm15,%ymm3,%ymm3 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %ymm15,%ymm3,%ymm3 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %ymm15,%ymm3,%ymm3 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %ymm15,%ymm3,%ymm3 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %ymm15,%ymm3,%ymm3 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %ymm15,%ymm3,%ymm3 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %ymm15,%ymm3,%ymm3 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %ymm15,%ymm3,%ymm3 + vbroadcastf64x2 176(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %ymm15,%ymm3,%ymm3 + vbroadcastf64x2 192(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vaesenclast %ymm15,%ymm3,%ymm3 + vpxorq %zmm6,%zmm0,%zmm0 + vpxorq %ymm7,%ymm3,%ymm3 + vextracti32x4 $1,%zmm3,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %ymm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm3,%zmm3{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm6 + vpshufb %ymm29,%ymm3,%ymm7 + vextracti32x4 $1,%zmm7,%xmm13 + subq $16 * (6 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_323 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 256(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm19 + vmovdqu64 320(%rsi),%ymm20 + vpclmulqdq $0x01,%ymm20,%ymm7,%ymm4 + vpclmulqdq $0x10,%ymm20,%ymm7,%ymm5 + vpclmulqdq $0x11,%ymm20,%ymm7,%ymm0 + vpclmulqdq $0x00,%ymm20,%ymm7,%ymm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_323 +.L_small_initial_partial_block_323: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 272(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm19 + vmovdqu64 336(%rsi),%xmm20 + vpclmulqdq $0x01,%xmm20,%xmm7,%xmm4 + vpclmulqdq $0x10,%xmm20,%xmm7,%xmm5 + vpclmulqdq $0x11,%xmm20,%xmm7,%xmm0 + vpclmulqdq $0x00,%xmm20,%xmm7,%xmm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_323: + + orq %r8,%r8 + je .L_after_reduction_323 + vpxorq %xmm13,%xmm14,%xmm14 +.L_after_reduction_323: + jmp .L_small_initial_blocks_encrypted_317 +.L_small_initial_num_blocks_is_7_317: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd ddq_add_5678(%rip),%zmm2,%zmm3 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + subq $64,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $2,%zmm3,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vmovdqu8 0(%rcx,%r11,1),%zmm6 + vmovdqu8 64(%rcx,%r11,1),%zmm7{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 176(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 192(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vaesenclast %zmm15,%zmm3,%zmm3 + vpxorq %zmm6,%zmm0,%zmm0 + vpxorq %zmm7,%zmm3,%zmm3 + vextracti32x4 $2,%zmm3,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm3,%zmm3{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm6 + vpshufb %zmm29,%zmm3,%zmm7 + vextracti32x4 $2,%zmm7,%xmm13 + subq $16 * (7 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_324 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 240(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm19 + vmovdqu64 304(%rsi),%ymm20 + vinserti64x2 $2,336(%rsi),%zmm20,%zmm20 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm5 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_324 +.L_small_initial_partial_block_324: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 256(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm19 + vmovdqu64 320(%rsi),%ymm20 + vpclmulqdq $0x01,%ymm20,%ymm7,%ymm4 + vpclmulqdq $0x10,%ymm20,%ymm7,%ymm5 + vpclmulqdq $0x11,%ymm20,%ymm7,%ymm0 + vpclmulqdq $0x00,%ymm20,%ymm7,%ymm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_324: + + orq %r8,%r8 + je .L_after_reduction_324 + vpxorq %xmm13,%xmm14,%xmm14 +.L_after_reduction_324: + jmp .L_small_initial_blocks_encrypted_317 +.L_small_initial_num_blocks_is_8_317: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd ddq_add_5678(%rip),%zmm2,%zmm3 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + subq $64,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $3,%zmm3,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vmovdqu8 0(%rcx,%r11,1),%zmm6 + vmovdqu8 64(%rcx,%r11,1),%zmm7{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 176(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 192(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vaesenclast %zmm15,%zmm3,%zmm3 + vpxorq %zmm6,%zmm0,%zmm0 + vpxorq %zmm7,%zmm3,%zmm3 + vextracti32x4 $3,%zmm3,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm3,%zmm3{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm6 + vpshufb %zmm29,%zmm3,%zmm7 + vextracti32x4 $3,%zmm7,%xmm13 + subq $16 * (8 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_325 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 224(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 288(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vpxorq %zmm15,%zmm0,%zmm15 + vpxorq %zmm16,%zmm3,%zmm16 + vpxorq %zmm17,%zmm4,%zmm17 + vpxorq %zmm19,%zmm5,%zmm19 + + vpxorq %zmm19,%zmm17,%zmm17 + vpsrldq $8,%zmm17,%zmm4 + vpslldq $8,%zmm17,%zmm5 + vpxorq %zmm4,%zmm15,%zmm0 + vpxorq %zmm5,%zmm16,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_325 +.L_small_initial_partial_block_325: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 240(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm19 + vmovdqu64 304(%rsi),%ymm20 + vinserti64x2 $2,336(%rsi),%zmm20,%zmm20 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm5 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_325: + + orq %r8,%r8 + je .L_after_reduction_325 + vpxorq %xmm13,%xmm14,%xmm14 +.L_after_reduction_325: + jmp .L_small_initial_blocks_encrypted_317 +.L_small_initial_num_blocks_is_9_317: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd ddq_add_5678(%rip),%zmm2,%zmm3 + vpaddd ddq_add_8888(%rip),%zmm0,%zmm4 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + subq $128,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $0,%zmm4,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %xmm29,%xmm4,%xmm4 + vmovdqu8 0(%rcx,%r11,1),%zmm6 + vmovdqu8 64(%rcx,%r11,1),%zmm7 + vmovdqu8 128(%rcx,%r11,1),%xmm10{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm15,%zmm3,%zmm3 + vpxorq %xmm15,%xmm4,%xmm4 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %xmm15,%xmm4,%xmm4 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %xmm15,%xmm4,%xmm4 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %xmm15,%xmm4,%xmm4 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %xmm15,%xmm4,%xmm4 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %xmm15,%xmm4,%xmm4 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %xmm15,%xmm4,%xmm4 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %xmm15,%xmm4,%xmm4 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %xmm15,%xmm4,%xmm4 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %xmm15,%xmm4,%xmm4 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %xmm15,%xmm4,%xmm4 + vbroadcastf64x2 176(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %xmm15,%xmm4,%xmm4 + vbroadcastf64x2 192(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vaesenclast %zmm15,%zmm3,%zmm3 + vaesenclast %xmm15,%xmm4,%xmm4 + vpxorq %zmm6,%zmm0,%zmm0 + vpxorq %zmm7,%zmm3,%zmm3 + vpxorq %xmm10,%xmm4,%xmm4 + vextracti32x4 $0,%zmm4,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %xmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm4,%zmm4{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm6 + vpshufb %zmm29,%zmm3,%zmm7 + vpshufb %xmm29,%xmm4,%xmm10 + vextracti32x4 $0,%zmm10,%xmm13 + subq $16 * (9 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_326 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 208(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 272(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vpxorq %zmm15,%zmm0,%zmm15 + vpxorq %zmm16,%zmm3,%zmm16 + vpxorq %zmm17,%zmm4,%zmm17 + vpxorq %zmm19,%zmm5,%zmm19 + vmovdqu64 336(%rsi),%xmm20 + vpclmulqdq $0x01,%xmm20,%xmm10,%xmm4 + vpclmulqdq $0x10,%xmm20,%xmm10,%xmm5 + vpclmulqdq $0x11,%xmm20,%xmm10,%xmm0 + vpclmulqdq $0x00,%xmm20,%xmm10,%xmm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_326 +.L_small_initial_partial_block_326: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 224(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 288(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vpxorq %zmm15,%zmm0,%zmm15 + vpxorq %zmm16,%zmm3,%zmm16 + vpxorq %zmm17,%zmm4,%zmm17 + vpxorq %zmm19,%zmm5,%zmm19 + + vpxorq %zmm19,%zmm17,%zmm17 + vpsrldq $8,%zmm17,%zmm4 + vpslldq $8,%zmm17,%zmm5 + vpxorq %zmm4,%zmm15,%zmm0 + vpxorq %zmm5,%zmm16,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_326: + + orq %r8,%r8 + je .L_after_reduction_326 + vpxorq %xmm13,%xmm14,%xmm14 +.L_after_reduction_326: + jmp .L_small_initial_blocks_encrypted_317 +.L_small_initial_num_blocks_is_10_317: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd ddq_add_5678(%rip),%zmm2,%zmm3 + vpaddd ddq_add_8888(%rip),%zmm0,%zmm4 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + subq $128,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $1,%zmm4,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %ymm29,%ymm4,%ymm4 + vmovdqu8 0(%rcx,%r11,1),%zmm6 + vmovdqu8 64(%rcx,%r11,1),%zmm7 + vmovdqu8 128(%rcx,%r11,1),%ymm10{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm15,%zmm3,%zmm3 + vpxorq %ymm15,%ymm4,%ymm4 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %ymm15,%ymm4,%ymm4 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %ymm15,%ymm4,%ymm4 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %ymm15,%ymm4,%ymm4 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %ymm15,%ymm4,%ymm4 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %ymm15,%ymm4,%ymm4 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %ymm15,%ymm4,%ymm4 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %ymm15,%ymm4,%ymm4 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %ymm15,%ymm4,%ymm4 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %ymm15,%ymm4,%ymm4 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %ymm15,%ymm4,%ymm4 + vbroadcastf64x2 176(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %ymm15,%ymm4,%ymm4 + vbroadcastf64x2 192(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vaesenclast %zmm15,%zmm3,%zmm3 + vaesenclast %ymm15,%ymm4,%ymm4 + vpxorq %zmm6,%zmm0,%zmm0 + vpxorq %zmm7,%zmm3,%zmm3 + vpxorq %ymm10,%ymm4,%ymm4 + vextracti32x4 $1,%zmm4,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %ymm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm4,%zmm4{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm6 + vpshufb %zmm29,%zmm3,%zmm7 + vpshufb %ymm29,%ymm4,%ymm10 + vextracti32x4 $1,%zmm10,%xmm13 + subq $16 * (10 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_327 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 192(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 256(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vpxorq %zmm15,%zmm0,%zmm15 + vpxorq %zmm16,%zmm3,%zmm16 + vpxorq %zmm17,%zmm4,%zmm17 + vpxorq %zmm19,%zmm5,%zmm19 + vmovdqu64 320(%rsi),%ymm20 + vpclmulqdq $0x01,%ymm20,%ymm10,%ymm4 + vpclmulqdq $0x10,%ymm20,%ymm10,%ymm5 + vpclmulqdq $0x11,%ymm20,%ymm10,%ymm0 + vpclmulqdq $0x00,%ymm20,%ymm10,%ymm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_327 +.L_small_initial_partial_block_327: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 208(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 272(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vpxorq %zmm15,%zmm0,%zmm15 + vpxorq %zmm16,%zmm3,%zmm16 + vpxorq %zmm17,%zmm4,%zmm17 + vpxorq %zmm19,%zmm5,%zmm19 + vmovdqu64 336(%rsi),%xmm20 + vpclmulqdq $0x01,%xmm20,%xmm10,%xmm4 + vpclmulqdq $0x10,%xmm20,%xmm10,%xmm5 + vpclmulqdq $0x11,%xmm20,%xmm10,%xmm0 + vpclmulqdq $0x00,%xmm20,%xmm10,%xmm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_327: + + orq %r8,%r8 + je .L_after_reduction_327 + vpxorq %xmm13,%xmm14,%xmm14 +.L_after_reduction_327: + jmp .L_small_initial_blocks_encrypted_317 +.L_small_initial_num_blocks_is_11_317: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd ddq_add_5678(%rip),%zmm2,%zmm3 + vpaddd ddq_add_8888(%rip),%zmm0,%zmm4 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + subq $128,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $2,%zmm4,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vmovdqu8 0(%rcx,%r11,1),%zmm6 + vmovdqu8 64(%rcx,%r11,1),%zmm7 + vmovdqu8 128(%rcx,%r11,1),%zmm10{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm15,%zmm3,%zmm3 + vpxorq %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 176(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 192(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vaesenclast %zmm15,%zmm3,%zmm3 + vaesenclast %zmm15,%zmm4,%zmm4 + vpxorq %zmm6,%zmm0,%zmm0 + vpxorq %zmm7,%zmm3,%zmm3 + vpxorq %zmm10,%zmm4,%zmm4 + vextracti32x4 $2,%zmm4,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm4,%zmm4{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm6 + vpshufb %zmm29,%zmm3,%zmm7 + vpshufb %zmm29,%zmm4,%zmm10 + vextracti32x4 $2,%zmm10,%xmm13 + subq $16 * (11 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_328 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 176(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 240(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vpxorq %zmm15,%zmm0,%zmm15 + vpxorq %zmm16,%zmm3,%zmm16 + vpxorq %zmm17,%zmm4,%zmm17 + vpxorq %zmm19,%zmm5,%zmm19 + vmovdqu64 304(%rsi),%ymm20 + vinserti64x2 $2,336(%rsi),%zmm20,%zmm20 + vpclmulqdq $0x01,%zmm20,%zmm10,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm10,%zmm5 + vpclmulqdq $0x11,%zmm20,%zmm10,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm10,%zmm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_328 +.L_small_initial_partial_block_328: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 192(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 256(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vpxorq %zmm15,%zmm0,%zmm15 + vpxorq %zmm16,%zmm3,%zmm16 + vpxorq %zmm17,%zmm4,%zmm17 + vpxorq %zmm19,%zmm5,%zmm19 + vmovdqu64 320(%rsi),%ymm20 + vpclmulqdq $0x01,%ymm20,%ymm10,%ymm4 + vpclmulqdq $0x10,%ymm20,%ymm10,%ymm5 + vpclmulqdq $0x11,%ymm20,%ymm10,%ymm0 + vpclmulqdq $0x00,%ymm20,%ymm10,%ymm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_328: + + orq %r8,%r8 + je .L_after_reduction_328 + vpxorq %xmm13,%xmm14,%xmm14 +.L_after_reduction_328: + jmp .L_small_initial_blocks_encrypted_317 +.L_small_initial_num_blocks_is_12_317: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd ddq_add_5678(%rip),%zmm2,%zmm3 + vpaddd ddq_add_8888(%rip),%zmm0,%zmm4 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + subq $128,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $3,%zmm4,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vmovdqu8 0(%rcx,%r11,1),%zmm6 + vmovdqu8 64(%rcx,%r11,1),%zmm7 + vmovdqu8 128(%rcx,%r11,1),%zmm10{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm15,%zmm3,%zmm3 + vpxorq %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 176(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 192(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vaesenclast %zmm15,%zmm3,%zmm3 + vaesenclast %zmm15,%zmm4,%zmm4 + vpxorq %zmm6,%zmm0,%zmm0 + vpxorq %zmm7,%zmm3,%zmm3 + vpxorq %zmm10,%zmm4,%zmm4 + vextracti32x4 $3,%zmm4,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm4,%zmm4{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm6 + vpshufb %zmm29,%zmm3,%zmm7 + vpshufb %zmm29,%zmm4,%zmm10 + vextracti32x4 $3,%zmm10,%xmm13 + subq $16 * (12 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_329 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 160(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 224(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vmovdqu64 288(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x00,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm0,%zmm6,%zmm15 + vpternlogq $0x96,%zmm3,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x10,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm4,%zmm6,%zmm17 + vpternlogq $0x96,%zmm5,%zmm7,%zmm19 + + vpxorq %zmm19,%zmm17,%zmm17 + vpsrldq $8,%zmm17,%zmm4 + vpslldq $8,%zmm17,%zmm5 + vpxorq %zmm4,%zmm15,%zmm0 + vpxorq %zmm5,%zmm16,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_329 +.L_small_initial_partial_block_329: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 176(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 240(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vpxorq %zmm15,%zmm0,%zmm15 + vpxorq %zmm16,%zmm3,%zmm16 + vpxorq %zmm17,%zmm4,%zmm17 + vpxorq %zmm19,%zmm5,%zmm19 + vmovdqu64 304(%rsi),%ymm20 + vinserti64x2 $2,336(%rsi),%zmm20,%zmm20 + vpclmulqdq $0x01,%zmm20,%zmm10,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm10,%zmm5 + vpclmulqdq $0x11,%zmm20,%zmm10,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm10,%zmm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_329: + + orq %r8,%r8 + je .L_after_reduction_329 + vpxorq %xmm13,%xmm14,%xmm14 +.L_after_reduction_329: + jmp .L_small_initial_blocks_encrypted_317 +.L_small_initial_num_blocks_is_13_317: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd ddq_add_5678(%rip),%zmm2,%zmm3 + vpaddd ddq_add_8888(%rip),%zmm0,%zmm4 + vpaddd ddq_add_8888(%rip),%zmm3,%zmm5 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + subq $192,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $0,%zmm5,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %xmm29,%xmm5,%xmm5 + vmovdqu8 0(%rcx,%r11,1),%zmm6 + vmovdqu8 64(%rcx,%r11,1),%zmm7 + vmovdqu8 128(%rcx,%r11,1),%zmm10 + vmovdqu8 192(%rcx,%r11,1),%xmm11{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm15,%zmm3,%zmm3 + vpxorq %zmm15,%zmm4,%zmm4 + vpxorq %xmm15,%xmm5,%xmm5 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %xmm15,%xmm5,%xmm5 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %xmm15,%xmm5,%xmm5 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %xmm15,%xmm5,%xmm5 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %xmm15,%xmm5,%xmm5 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %xmm15,%xmm5,%xmm5 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %xmm15,%xmm5,%xmm5 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %xmm15,%xmm5,%xmm5 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %xmm15,%xmm5,%xmm5 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %xmm15,%xmm5,%xmm5 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %xmm15,%xmm5,%xmm5 + vbroadcastf64x2 176(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %xmm15,%xmm5,%xmm5 + vbroadcastf64x2 192(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vaesenclast %zmm15,%zmm3,%zmm3 + vaesenclast %zmm15,%zmm4,%zmm4 + vaesenclast %xmm15,%xmm5,%xmm5 + vpxorq %zmm6,%zmm0,%zmm0 + vpxorq %zmm7,%zmm3,%zmm3 + vpxorq %zmm10,%zmm4,%zmm4 + vpxorq %xmm11,%xmm5,%xmm5 + vextracti32x4 $0,%zmm5,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %xmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm5,%zmm5{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm6 + vpshufb %zmm29,%zmm3,%zmm7 + vpshufb %zmm29,%zmm4,%zmm10 + vpshufb %xmm29,%xmm5,%xmm11 + vextracti32x4 $0,%zmm11,%xmm13 + subq $16 * (13 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_330 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 144(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 208(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vmovdqu64 272(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x00,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm0,%zmm6,%zmm15 + vpternlogq $0x96,%zmm3,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x10,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm4,%zmm6,%zmm17 + vpternlogq $0x96,%zmm5,%zmm7,%zmm19 + vmovdqu64 336(%rsi),%xmm20 + vpclmulqdq $0x01,%xmm20,%xmm11,%xmm4 + vpclmulqdq $0x10,%xmm20,%xmm11,%xmm5 + vpclmulqdq $0x11,%xmm20,%xmm11,%xmm0 + vpclmulqdq $0x00,%xmm20,%xmm11,%xmm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_330 +.L_small_initial_partial_block_330: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 160(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 224(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vmovdqu64 288(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x00,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm0,%zmm6,%zmm15 + vpternlogq $0x96,%zmm3,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x10,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm4,%zmm6,%zmm17 + vpternlogq $0x96,%zmm5,%zmm7,%zmm19 + + vpxorq %zmm19,%zmm17,%zmm17 + vpsrldq $8,%zmm17,%zmm4 + vpslldq $8,%zmm17,%zmm5 + vpxorq %zmm4,%zmm15,%zmm0 + vpxorq %zmm5,%zmm16,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_330: + + orq %r8,%r8 + je .L_after_reduction_330 + vpxorq %xmm13,%xmm14,%xmm14 +.L_after_reduction_330: + jmp .L_small_initial_blocks_encrypted_317 +.L_small_initial_num_blocks_is_14_317: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd ddq_add_5678(%rip),%zmm2,%zmm3 + vpaddd ddq_add_8888(%rip),%zmm0,%zmm4 + vpaddd ddq_add_8888(%rip),%zmm3,%zmm5 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + subq $192,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $1,%zmm5,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %ymm29,%ymm5,%ymm5 + vmovdqu8 0(%rcx,%r11,1),%zmm6 + vmovdqu8 64(%rcx,%r11,1),%zmm7 + vmovdqu8 128(%rcx,%r11,1),%zmm10 + vmovdqu8 192(%rcx,%r11,1),%ymm11{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm15,%zmm3,%zmm3 + vpxorq %zmm15,%zmm4,%zmm4 + vpxorq %ymm15,%ymm5,%ymm5 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %ymm15,%ymm5,%ymm5 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %ymm15,%ymm5,%ymm5 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %ymm15,%ymm5,%ymm5 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %ymm15,%ymm5,%ymm5 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %ymm15,%ymm5,%ymm5 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %ymm15,%ymm5,%ymm5 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %ymm15,%ymm5,%ymm5 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %ymm15,%ymm5,%ymm5 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %ymm15,%ymm5,%ymm5 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %ymm15,%ymm5,%ymm5 + vbroadcastf64x2 176(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %ymm15,%ymm5,%ymm5 + vbroadcastf64x2 192(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vaesenclast %zmm15,%zmm3,%zmm3 + vaesenclast %zmm15,%zmm4,%zmm4 + vaesenclast %ymm15,%ymm5,%ymm5 + vpxorq %zmm6,%zmm0,%zmm0 + vpxorq %zmm7,%zmm3,%zmm3 + vpxorq %zmm10,%zmm4,%zmm4 + vpxorq %ymm11,%ymm5,%ymm5 + vextracti32x4 $1,%zmm5,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %ymm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm5,%zmm5{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm6 + vpshufb %zmm29,%zmm3,%zmm7 + vpshufb %zmm29,%zmm4,%zmm10 + vpshufb %ymm29,%ymm5,%ymm11 + vextracti32x4 $1,%zmm11,%xmm13 + subq $16 * (14 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_331 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 128(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 192(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vmovdqu64 256(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x00,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm0,%zmm6,%zmm15 + vpternlogq $0x96,%zmm3,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x10,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm4,%zmm6,%zmm17 + vpternlogq $0x96,%zmm5,%zmm7,%zmm19 + vmovdqu64 320(%rsi),%ymm20 + vpclmulqdq $0x01,%ymm20,%ymm11,%ymm4 + vpclmulqdq $0x10,%ymm20,%ymm11,%ymm5 + vpclmulqdq $0x11,%ymm20,%ymm11,%ymm0 + vpclmulqdq $0x00,%ymm20,%ymm11,%ymm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_331 +.L_small_initial_partial_block_331: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 144(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 208(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vmovdqu64 272(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x00,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm0,%zmm6,%zmm15 + vpternlogq $0x96,%zmm3,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x10,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm4,%zmm6,%zmm17 + vpternlogq $0x96,%zmm5,%zmm7,%zmm19 + vmovdqu64 336(%rsi),%xmm20 + vpclmulqdq $0x01,%xmm20,%xmm11,%xmm4 + vpclmulqdq $0x10,%xmm20,%xmm11,%xmm5 + vpclmulqdq $0x11,%xmm20,%xmm11,%xmm0 + vpclmulqdq $0x00,%xmm20,%xmm11,%xmm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_331: + + orq %r8,%r8 + je .L_after_reduction_331 + vpxorq %xmm13,%xmm14,%xmm14 +.L_after_reduction_331: + jmp .L_small_initial_blocks_encrypted_317 +.L_small_initial_num_blocks_is_15_317: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd ddq_add_5678(%rip),%zmm2,%zmm3 + vpaddd ddq_add_8888(%rip),%zmm0,%zmm4 + vpaddd ddq_add_8888(%rip),%zmm3,%zmm5 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + subq $192,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $2,%zmm5,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 + vmovdqu8 0(%rcx,%r11,1),%zmm6 + vmovdqu8 64(%rcx,%r11,1),%zmm7 + vmovdqu8 128(%rcx,%r11,1),%zmm10 + vmovdqu8 192(%rcx,%r11,1),%zmm11{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm15,%zmm3,%zmm3 + vpxorq %zmm15,%zmm4,%zmm4 + vpxorq %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 176(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 192(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vaesenclast %zmm15,%zmm3,%zmm3 + vaesenclast %zmm15,%zmm4,%zmm4 + vaesenclast %zmm15,%zmm5,%zmm5 + vpxorq %zmm6,%zmm0,%zmm0 + vpxorq %zmm7,%zmm3,%zmm3 + vpxorq %zmm10,%zmm4,%zmm4 + vpxorq %zmm11,%zmm5,%zmm5 + vextracti32x4 $2,%zmm5,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %zmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm5,%zmm5{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm6 + vpshufb %zmm29,%zmm3,%zmm7 + vpshufb %zmm29,%zmm4,%zmm10 + vpshufb %zmm29,%zmm5,%zmm11 + vextracti32x4 $2,%zmm11,%xmm13 + subq $16 * (15 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_332 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 112(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 176(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vmovdqu64 240(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x00,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm0,%zmm6,%zmm15 + vpternlogq $0x96,%zmm3,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x10,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm4,%zmm6,%zmm17 + vpternlogq $0x96,%zmm5,%zmm7,%zmm19 + vmovdqu64 304(%rsi),%ymm20 + vinserti64x2 $2,336(%rsi),%zmm20,%zmm20 + vpclmulqdq $0x01,%zmm20,%zmm11,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm11,%zmm5 + vpclmulqdq $0x11,%zmm20,%zmm11,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm11,%zmm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_332 +.L_small_initial_partial_block_332: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 128(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 192(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vmovdqu64 256(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x00,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm0,%zmm6,%zmm15 + vpternlogq $0x96,%zmm3,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x10,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm4,%zmm6,%zmm17 + vpternlogq $0x96,%zmm5,%zmm7,%zmm19 + vmovdqu64 320(%rsi),%ymm20 + vpclmulqdq $0x01,%ymm20,%ymm11,%ymm4 + vpclmulqdq $0x10,%ymm20,%ymm11,%ymm5 + vpclmulqdq $0x11,%ymm20,%ymm11,%ymm0 + vpclmulqdq $0x00,%ymm20,%ymm11,%ymm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_332: + + orq %r8,%r8 + je .L_after_reduction_332 + vpxorq %xmm13,%xmm14,%xmm14 +.L_after_reduction_332: + jmp .L_small_initial_blocks_encrypted_317 +.L_small_initial_num_blocks_is_16_317: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd ddq_add_5678(%rip),%zmm2,%zmm3 + vpaddd ddq_add_8888(%rip),%zmm0,%zmm4 + vpaddd ddq_add_8888(%rip),%zmm3,%zmm5 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + subq $192,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $3,%zmm5,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 + vmovdqu8 0(%rcx,%r11,1),%zmm6 + vmovdqu8 64(%rcx,%r11,1),%zmm7 + vmovdqu8 128(%rcx,%r11,1),%zmm10 + vmovdqu8 192(%rcx,%r11,1),%zmm11{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm15,%zmm3,%zmm3 + vpxorq %zmm15,%zmm4,%zmm4 + vpxorq %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 176(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 192(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vaesenclast %zmm15,%zmm3,%zmm3 + vaesenclast %zmm15,%zmm4,%zmm4 + vaesenclast %zmm15,%zmm5,%zmm5 + vpxorq %zmm6,%zmm0,%zmm0 + vpxorq %zmm7,%zmm3,%zmm3 + vpxorq %zmm10,%zmm4,%zmm4 + vpxorq %zmm11,%zmm5,%zmm5 + vextracti32x4 $3,%zmm5,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %zmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm5,%zmm5{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm6 + vpshufb %zmm29,%zmm3,%zmm7 + vpshufb %zmm29,%zmm4,%zmm10 + vpshufb %zmm29,%zmm5,%zmm11 + vextracti32x4 $3,%zmm11,%xmm13 + subq $16 * (16 - 1),%r8 +.L_small_initial_partial_block_333: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 112(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 176(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vmovdqu64 240(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x00,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm0,%zmm6,%zmm15 + vpternlogq $0x96,%zmm3,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x10,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm4,%zmm6,%zmm17 + vpternlogq $0x96,%zmm5,%zmm7,%zmm19 + vmovdqu64 304(%rsi),%ymm20 + vinserti64x2 $2,336(%rsi),%zmm20,%zmm20 + vpclmulqdq $0x01,%zmm20,%zmm11,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm11,%zmm5 + vpclmulqdq $0x11,%zmm20,%zmm11,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm11,%zmm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_333: + vpxorq %xmm13,%xmm14,%xmm14 +.L_after_reduction_333: +.L_small_initial_blocks_encrypted_317: +.L_ghash_done_172: + vmovdqu64 %xmm2,0(%rsi) + vmovdqu64 %xmm14,64(%rsi) +.L_enc_dec_done_172: + jmp .Lexit_gcm_encrypt +.align 32 +.Laes_gcm_encrypt_256_avx512: + orq %r8,%r8 + je .L_enc_dec_done_334 + xorq %r14,%r14 + vmovdqu64 64(%rsi),%xmm14 + + movq (%rdx),%r11 + orq %r11,%r11 + je .L_partial_block_done_335 + movl $16,%r10d + leaq byte_len_to_mask_table(%rip),%r12 + cmpq %r10,%r8 + cmovcq %r8,%r10 + kmovw (%r12,%r10,2),%k1 + vmovdqu8 (%rcx),%xmm0{%k1}{z} + + vmovdqu64 16(%rsi),%xmm3 + vmovdqu64 336(%rsi),%xmm4 + + + + leaq SHIFT_MASK(%rip),%r12 + addq %r11,%r12 + vmovdqu64 (%r12),%xmm5 + vpshufb %xmm5,%xmm3,%xmm3 + vpxorq %xmm0,%xmm3,%xmm3 + + + leaq (%r8,%r11,1),%r13 + subq $16,%r13 + jge .L_no_extra_mask_335 + subq %r13,%r12 +.L_no_extra_mask_335: + + + + vmovdqu64 16(%r12),%xmm0 + vpand %xmm0,%xmm3,%xmm3 + vpshufb SHUF_MASK(%rip),%xmm3,%xmm3 + vpshufb %xmm5,%xmm3,%xmm3 + vpxorq %xmm3,%xmm14,%xmm14 + cmpq $0,%r13 + jl .L_partial_incomplete_335 + + vpclmulqdq $0x11,%xmm4,%xmm14,%xmm7 + vpclmulqdq $0x00,%xmm4,%xmm14,%xmm10 + vpclmulqdq $0x01,%xmm4,%xmm14,%xmm11 + vpclmulqdq $0x10,%xmm4,%xmm14,%xmm14 + vpxorq %xmm11,%xmm14,%xmm14 + + vpsrldq $8,%xmm14,%xmm11 + vpslldq $8,%xmm14,%xmm14 + vpxorq %xmm11,%xmm7,%xmm7 + vpxorq %xmm10,%xmm14,%xmm14 + + + + vmovdqu64 POLY2(%rip),%xmm11 + + vpclmulqdq $0x01,%xmm14,%xmm11,%xmm10 + vpslldq $8,%xmm10,%xmm10 + vpxorq %xmm10,%xmm14,%xmm14 + + + + vpclmulqdq $0x00,%xmm14,%xmm11,%xmm10 + vpsrldq $4,%xmm10,%xmm10 + vpclmulqdq $0x10,%xmm14,%xmm11,%xmm14 + vpslldq $4,%xmm14,%xmm14 + + vpternlogq $0x96,%xmm10,%xmm7,%xmm14 + + movq $0,(%rdx) + + movq %r11,%r12 + movq $16,%r11 + subq %r12,%r11 + jmp .L_enc_dec_done_335 + +.L_partial_incomplete_335: + addq %r8,(%rdx) + movq %r8,%r11 + +.L_enc_dec_done_335: + + + leaq byte_len_to_mask_table(%rip),%r12 + kmovw (%r12,%r11,2),%k1 + vmovdqu64 %xmm14,64(%rsi) + + vpshufb SHUF_MASK(%rip),%xmm3,%xmm3 + vpshufb %xmm5,%xmm3,%xmm3 + movq %r9,%r12 + vmovdqu8 %xmm3,(%r12){%k1} +.L_partial_block_done_335: + vmovdqu64 0(%rsi),%xmm2 + subq %r11,%r8 + je .L_enc_dec_done_334 + cmpq $256,%r8 + jbe .L_message_below_equal_16_blocks_334 + + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vmovdqa64 ddq_addbe_4444(%rip),%zmm27 + vmovdqa64 ddq_addbe_1234(%rip),%zmm28 + + + + + + + vmovd %xmm2,%r15d + andl $255,%r15d + + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpshufb %zmm29,%zmm2,%zmm2 + + + + cmpb $240,%r15b + jae .L_next_16_overflow_336 + vpaddd %zmm28,%zmm2,%zmm7 + vpaddd %zmm27,%zmm7,%zmm10 + vpaddd %zmm27,%zmm10,%zmm11 + vpaddd %zmm27,%zmm11,%zmm12 + jmp .L_next_16_ok_336 +.L_next_16_overflow_336: + vpshufb %zmm29,%zmm2,%zmm2 + vmovdqa64 ddq_add_4444(%rip),%zmm12 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm7 + vpaddd %zmm12,%zmm7,%zmm10 + vpaddd %zmm12,%zmm10,%zmm11 + vpaddd %zmm12,%zmm11,%zmm12 + vpshufb %zmm29,%zmm7,%zmm7 + vpshufb %zmm29,%zmm10,%zmm10 + vpshufb %zmm29,%zmm11,%zmm11 + vpshufb %zmm29,%zmm12,%zmm12 +.L_next_16_ok_336: + vshufi64x2 $255,%zmm12,%zmm12,%zmm2 + addb $16,%r15b + + vmovdqu8 0(%rcx,%r11,1),%zmm0 + vmovdqu8 64(%rcx,%r11,1),%zmm3 + vmovdqu8 128(%rcx,%r11,1),%zmm4 + vmovdqu8 192(%rcx,%r11,1),%zmm5 + + + vbroadcastf64x2 0(%rdi),%zmm6 + vpxorq %zmm6,%zmm7,%zmm7 + vpxorq %zmm6,%zmm10,%zmm10 + vpxorq %zmm6,%zmm11,%zmm11 + vpxorq %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 16(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 32(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 48(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 64(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 80(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 96(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 112(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 128(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 144(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 160(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 176(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 192(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 208(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 224(%rdi),%zmm6 + vaesenclast %zmm6,%zmm7,%zmm7 + vaesenclast %zmm6,%zmm10,%zmm10 + vaesenclast %zmm6,%zmm11,%zmm11 + vaesenclast %zmm6,%zmm12,%zmm12 + + + vpxorq %zmm0,%zmm7,%zmm7 + vpxorq %zmm3,%zmm10,%zmm10 + vpxorq %zmm4,%zmm11,%zmm11 + vpxorq %zmm5,%zmm12,%zmm12 + + + movq %r9,%r10 + vmovdqu8 %zmm7,0(%r10,%r11,1) + vmovdqu8 %zmm10,64(%r10,%r11,1) + vmovdqu8 %zmm11,128(%r10,%r11,1) + vmovdqu8 %zmm12,192(%r10,%r11,1) + + vpshufb %zmm29,%zmm7,%zmm7 + vpshufb %zmm29,%zmm10,%zmm10 + vpshufb %zmm29,%zmm11,%zmm11 + vpshufb %zmm29,%zmm12,%zmm12 + vmovdqa64 %zmm7,768(%rsp) + vmovdqa64 %zmm10,832(%rsp) + vmovdqa64 %zmm11,896(%rsp) + vmovdqa64 %zmm12,960(%rsp) + testq %r14,%r14 + jnz .L_skip_hkeys_precomputation_337 + + vmovdqu64 288(%rsi),%zmm0 + vmovdqu64 %zmm0,704(%rsp) + + vmovdqu64 224(%rsi),%zmm3 + vmovdqu64 %zmm3,640(%rsp) + + + vshufi64x2 $0x00,%zmm3,%zmm3,%zmm3 + + vmovdqu64 160(%rsi),%zmm4 + vmovdqu64 %zmm4,576(%rsp) + + vmovdqu64 96(%rsi),%zmm5 + vmovdqu64 %zmm5,512(%rsp) +.L_skip_hkeys_precomputation_337: + cmpq $512,%r8 + jb .L_message_below_32_blocks_334 + + + + cmpb $240,%r15b + jae .L_next_16_overflow_338 + vpaddd %zmm28,%zmm2,%zmm7 + vpaddd %zmm27,%zmm7,%zmm10 + vpaddd %zmm27,%zmm10,%zmm11 + vpaddd %zmm27,%zmm11,%zmm12 + jmp .L_next_16_ok_338 +.L_next_16_overflow_338: + vpshufb %zmm29,%zmm2,%zmm2 + vmovdqa64 ddq_add_4444(%rip),%zmm12 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm7 + vpaddd %zmm12,%zmm7,%zmm10 + vpaddd %zmm12,%zmm10,%zmm11 + vpaddd %zmm12,%zmm11,%zmm12 + vpshufb %zmm29,%zmm7,%zmm7 + vpshufb %zmm29,%zmm10,%zmm10 + vpshufb %zmm29,%zmm11,%zmm11 + vpshufb %zmm29,%zmm12,%zmm12 +.L_next_16_ok_338: + vshufi64x2 $255,%zmm12,%zmm12,%zmm2 + addb $16,%r15b + + vmovdqu8 256(%rcx,%r11,1),%zmm0 + vmovdqu8 320(%rcx,%r11,1),%zmm3 + vmovdqu8 384(%rcx,%r11,1),%zmm4 + vmovdqu8 448(%rcx,%r11,1),%zmm5 + + + vbroadcastf64x2 0(%rdi),%zmm6 + vpxorq %zmm6,%zmm7,%zmm7 + vpxorq %zmm6,%zmm10,%zmm10 + vpxorq %zmm6,%zmm11,%zmm11 + vpxorq %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 16(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 32(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 48(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 64(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 80(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 96(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 112(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 128(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 144(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 160(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 176(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 192(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 208(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 224(%rdi),%zmm6 + vaesenclast %zmm6,%zmm7,%zmm7 + vaesenclast %zmm6,%zmm10,%zmm10 + vaesenclast %zmm6,%zmm11,%zmm11 + vaesenclast %zmm6,%zmm12,%zmm12 + + + vpxorq %zmm0,%zmm7,%zmm7 + vpxorq %zmm3,%zmm10,%zmm10 + vpxorq %zmm4,%zmm11,%zmm11 + vpxorq %zmm5,%zmm12,%zmm12 + + + movq %r9,%r10 + vmovdqu8 %zmm7,256(%r10,%r11,1) + vmovdqu8 %zmm10,320(%r10,%r11,1) + vmovdqu8 %zmm11,384(%r10,%r11,1) + vmovdqu8 %zmm12,448(%r10,%r11,1) + + vpshufb %zmm29,%zmm7,%zmm7 + vpshufb %zmm29,%zmm10,%zmm10 + vpshufb %zmm29,%zmm11,%zmm11 + vpshufb %zmm29,%zmm12,%zmm12 + vmovdqa64 %zmm7,1024(%rsp) + vmovdqa64 %zmm10,1088(%rsp) + vmovdqa64 %zmm11,1152(%rsp) + vmovdqa64 %zmm12,1216(%rsp) + testq %r14,%r14 + jnz .L_skip_hkeys_precomputation_339 + vmovdqu64 640(%rsp),%zmm3 + + + vshufi64x2 $0x00,%zmm3,%zmm3,%zmm3 + + vmovdqu64 576(%rsp),%zmm4 + vmovdqu64 512(%rsp),%zmm5 + + vpclmulqdq $0x11,%zmm3,%zmm4,%zmm6 + vpclmulqdq $0x00,%zmm3,%zmm4,%zmm7 + vpclmulqdq $0x01,%zmm3,%zmm4,%zmm10 + vpclmulqdq $0x10,%zmm3,%zmm4,%zmm4 + vpxorq %zmm10,%zmm4,%zmm4 + + vpsrldq $8,%zmm4,%zmm10 + vpslldq $8,%zmm4,%zmm4 + vpxorq %zmm10,%zmm6,%zmm6 + vpxorq %zmm7,%zmm4,%zmm4 + + + + vmovdqu64 POLY2(%rip),%zmm10 + + vpclmulqdq $0x01,%zmm4,%zmm10,%zmm7 + vpslldq $8,%zmm7,%zmm7 + vpxorq %zmm7,%zmm4,%zmm4 + + + + vpclmulqdq $0x00,%zmm4,%zmm10,%zmm7 + vpsrldq $4,%zmm7,%zmm7 + vpclmulqdq $0x10,%zmm4,%zmm10,%zmm4 + vpslldq $4,%zmm4,%zmm4 + + vpternlogq $0x96,%zmm7,%zmm6,%zmm4 + + vmovdqu64 %zmm4,448(%rsp) + + vpclmulqdq $0x11,%zmm3,%zmm5,%zmm6 + vpclmulqdq $0x00,%zmm3,%zmm5,%zmm7 + vpclmulqdq $0x01,%zmm3,%zmm5,%zmm10 + vpclmulqdq $0x10,%zmm3,%zmm5,%zmm5 + vpxorq %zmm10,%zmm5,%zmm5 + + vpsrldq $8,%zmm5,%zmm10 + vpslldq $8,%zmm5,%zmm5 + vpxorq %zmm10,%zmm6,%zmm6 + vpxorq %zmm7,%zmm5,%zmm5 + + + + vmovdqu64 POLY2(%rip),%zmm10 + + vpclmulqdq $0x01,%zmm5,%zmm10,%zmm7 + vpslldq $8,%zmm7,%zmm7 + vpxorq %zmm7,%zmm5,%zmm5 + + + + vpclmulqdq $0x00,%zmm5,%zmm10,%zmm7 + vpsrldq $4,%zmm7,%zmm7 + vpclmulqdq $0x10,%zmm5,%zmm10,%zmm5 + vpslldq $4,%zmm5,%zmm5 + + vpternlogq $0x96,%zmm7,%zmm6,%zmm5 + + vmovdqu64 %zmm5,384(%rsp) + + vpclmulqdq $0x11,%zmm3,%zmm4,%zmm6 + vpclmulqdq $0x00,%zmm3,%zmm4,%zmm7 + vpclmulqdq $0x01,%zmm3,%zmm4,%zmm10 + vpclmulqdq $0x10,%zmm3,%zmm4,%zmm4 + vpxorq %zmm10,%zmm4,%zmm4 + + vpsrldq $8,%zmm4,%zmm10 + vpslldq $8,%zmm4,%zmm4 + vpxorq %zmm10,%zmm6,%zmm6 + vpxorq %zmm7,%zmm4,%zmm4 + + + + vmovdqu64 POLY2(%rip),%zmm10 + + vpclmulqdq $0x01,%zmm4,%zmm10,%zmm7 + vpslldq $8,%zmm7,%zmm7 + vpxorq %zmm7,%zmm4,%zmm4 + + + + vpclmulqdq $0x00,%zmm4,%zmm10,%zmm7 + vpsrldq $4,%zmm7,%zmm7 + vpclmulqdq $0x10,%zmm4,%zmm10,%zmm4 + vpslldq $4,%zmm4,%zmm4 + + vpternlogq $0x96,%zmm7,%zmm6,%zmm4 + + vmovdqu64 %zmm4,320(%rsp) + + vpclmulqdq $0x11,%zmm3,%zmm5,%zmm6 + vpclmulqdq $0x00,%zmm3,%zmm5,%zmm7 + vpclmulqdq $0x01,%zmm3,%zmm5,%zmm10 + vpclmulqdq $0x10,%zmm3,%zmm5,%zmm5 + vpxorq %zmm10,%zmm5,%zmm5 + + vpsrldq $8,%zmm5,%zmm10 + vpslldq $8,%zmm5,%zmm5 + vpxorq %zmm10,%zmm6,%zmm6 + vpxorq %zmm7,%zmm5,%zmm5 + + + + vmovdqu64 POLY2(%rip),%zmm10 + + vpclmulqdq $0x01,%zmm5,%zmm10,%zmm7 + vpslldq $8,%zmm7,%zmm7 + vpxorq %zmm7,%zmm5,%zmm5 + + + + vpclmulqdq $0x00,%zmm5,%zmm10,%zmm7 + vpsrldq $4,%zmm7,%zmm7 + vpclmulqdq $0x10,%zmm5,%zmm10,%zmm5 + vpslldq $4,%zmm5,%zmm5 + + vpternlogq $0x96,%zmm7,%zmm6,%zmm5 + + vmovdqu64 %zmm5,256(%rsp) + + vpclmulqdq $0x11,%zmm3,%zmm4,%zmm6 + vpclmulqdq $0x00,%zmm3,%zmm4,%zmm7 + vpclmulqdq $0x01,%zmm3,%zmm4,%zmm10 + vpclmulqdq $0x10,%zmm3,%zmm4,%zmm4 + vpxorq %zmm10,%zmm4,%zmm4 + + vpsrldq $8,%zmm4,%zmm10 + vpslldq $8,%zmm4,%zmm4 + vpxorq %zmm10,%zmm6,%zmm6 + vpxorq %zmm7,%zmm4,%zmm4 + + + + vmovdqu64 POLY2(%rip),%zmm10 + + vpclmulqdq $0x01,%zmm4,%zmm10,%zmm7 + vpslldq $8,%zmm7,%zmm7 + vpxorq %zmm7,%zmm4,%zmm4 + + + + vpclmulqdq $0x00,%zmm4,%zmm10,%zmm7 + vpsrldq $4,%zmm7,%zmm7 + vpclmulqdq $0x10,%zmm4,%zmm10,%zmm4 + vpslldq $4,%zmm4,%zmm4 + + vpternlogq $0x96,%zmm7,%zmm6,%zmm4 + + vmovdqu64 %zmm4,192(%rsp) + + vpclmulqdq $0x11,%zmm3,%zmm5,%zmm6 + vpclmulqdq $0x00,%zmm3,%zmm5,%zmm7 + vpclmulqdq $0x01,%zmm3,%zmm5,%zmm10 + vpclmulqdq $0x10,%zmm3,%zmm5,%zmm5 + vpxorq %zmm10,%zmm5,%zmm5 + + vpsrldq $8,%zmm5,%zmm10 + vpslldq $8,%zmm5,%zmm5 + vpxorq %zmm10,%zmm6,%zmm6 + vpxorq %zmm7,%zmm5,%zmm5 + + + + vmovdqu64 POLY2(%rip),%zmm10 + + vpclmulqdq $0x01,%zmm5,%zmm10,%zmm7 + vpslldq $8,%zmm7,%zmm7 + vpxorq %zmm7,%zmm5,%zmm5 + + + + vpclmulqdq $0x00,%zmm5,%zmm10,%zmm7 + vpsrldq $4,%zmm7,%zmm7 + vpclmulqdq $0x10,%zmm5,%zmm10,%zmm5 + vpslldq $4,%zmm5,%zmm5 + + vpternlogq $0x96,%zmm7,%zmm6,%zmm5 + + vmovdqu64 %zmm5,128(%rsp) + + vpclmulqdq $0x11,%zmm3,%zmm4,%zmm6 + vpclmulqdq $0x00,%zmm3,%zmm4,%zmm7 + vpclmulqdq $0x01,%zmm3,%zmm4,%zmm10 + vpclmulqdq $0x10,%zmm3,%zmm4,%zmm4 + vpxorq %zmm10,%zmm4,%zmm4 + + vpsrldq $8,%zmm4,%zmm10 + vpslldq $8,%zmm4,%zmm4 + vpxorq %zmm10,%zmm6,%zmm6 + vpxorq %zmm7,%zmm4,%zmm4 + + + + vmovdqu64 POLY2(%rip),%zmm10 + + vpclmulqdq $0x01,%zmm4,%zmm10,%zmm7 + vpslldq $8,%zmm7,%zmm7 + vpxorq %zmm7,%zmm4,%zmm4 + + + + vpclmulqdq $0x00,%zmm4,%zmm10,%zmm7 + vpsrldq $4,%zmm7,%zmm7 + vpclmulqdq $0x10,%zmm4,%zmm10,%zmm4 + vpslldq $4,%zmm4,%zmm4 + + vpternlogq $0x96,%zmm7,%zmm6,%zmm4 + + vmovdqu64 %zmm4,64(%rsp) + + vpclmulqdq $0x11,%zmm3,%zmm5,%zmm6 + vpclmulqdq $0x00,%zmm3,%zmm5,%zmm7 + vpclmulqdq $0x01,%zmm3,%zmm5,%zmm10 + vpclmulqdq $0x10,%zmm3,%zmm5,%zmm5 + vpxorq %zmm10,%zmm5,%zmm5 + + vpsrldq $8,%zmm5,%zmm10 + vpslldq $8,%zmm5,%zmm5 + vpxorq %zmm10,%zmm6,%zmm6 + vpxorq %zmm7,%zmm5,%zmm5 + + + + vmovdqu64 POLY2(%rip),%zmm10 + + vpclmulqdq $0x01,%zmm5,%zmm10,%zmm7 + vpslldq $8,%zmm7,%zmm7 + vpxorq %zmm7,%zmm5,%zmm5 + + + + vpclmulqdq $0x00,%zmm5,%zmm10,%zmm7 + vpsrldq $4,%zmm7,%zmm7 + vpclmulqdq $0x10,%zmm5,%zmm10,%zmm5 + vpslldq $4,%zmm5,%zmm5 + + vpternlogq $0x96,%zmm7,%zmm6,%zmm5 + + vmovdqu64 %zmm5,0(%rsp) +.L_skip_hkeys_precomputation_339: + movq $1,%r14 + addq $512,%r11 + subq $512,%r8 + + cmpq $768,%r8 + jb .L_no_more_big_nblocks_334 +.L_encrypt_big_nblocks_334: + cmpb $240,%r15b + jae .L_16_blocks_overflow_340 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp .L_16_blocks_ok_340 +.L_16_blocks_overflow_340: + vpshufb %zmm29,%zmm2,%zmm2 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +.L_16_blocks_ok_340: + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp),%zmm1 + + + + + vshufi64x2 $255,%zmm5,%zmm5,%zmm2 + addb $16,%r15b + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + + + + + + + + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm6 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm6 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + + + + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%zmm21 + + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm15,%zmm10,%zmm26 + vpxorq %zmm12,%zmm6,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 192(%rdi),%zmm30 + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 208(%rdi),%zmm31 + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 224(%rdi),%zmm30 + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + + + + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + + + + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %zmm5,192(%r10,%r11,1) + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 + vmovdqa64 %zmm0,1280(%rsp) + vmovdqa64 %zmm3,1344(%rsp) + vmovdqa64 %zmm4,1408(%rsp) + vmovdqa64 %zmm5,1472(%rsp) + cmpb $240,%r15b + jae .L_16_blocks_overflow_341 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp .L_16_blocks_ok_341 +.L_16_blocks_overflow_341: + vpshufb %zmm29,%zmm2,%zmm2 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +.L_16_blocks_ok_341: + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 256(%rsp),%zmm1 + + + + + vshufi64x2 $255,%zmm5,%zmm5,%zmm2 + addb $16,%r15b + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 320(%rsp),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + + + + + + + + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm6 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 384(%rsp),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 448(%rsp),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm6 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + + + + vmovdqu8 256(%rcx,%r11,1),%zmm17 + vmovdqu8 320(%rcx,%r11,1),%zmm19 + vmovdqu8 384(%rcx,%r11,1),%zmm20 + vmovdqu8 448(%rcx,%r11,1),%zmm21 + + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vpternlogq $0x96,%zmm12,%zmm6,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 192(%rdi),%zmm30 + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 208(%rdi),%zmm31 + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 224(%rdi),%zmm30 + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + + + + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + + + + movq %r9,%r10 + vmovdqu8 %zmm0,256(%r10,%r11,1) + vmovdqu8 %zmm3,320(%r10,%r11,1) + vmovdqu8 %zmm4,384(%r10,%r11,1) + vmovdqu8 %zmm5,448(%r10,%r11,1) + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 + vmovdqa64 %zmm0,768(%rsp) + vmovdqa64 %zmm3,832(%rsp) + vmovdqa64 %zmm4,896(%rsp) + vmovdqa64 %zmm5,960(%rsp) + cmpb $240,%r15b + jae .L_16_blocks_overflow_342 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp .L_16_blocks_ok_342 +.L_16_blocks_overflow_342: + vpshufb %zmm29,%zmm2,%zmm2 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +.L_16_blocks_ok_342: + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + + + + + vshufi64x2 $255,%zmm5,%zmm5,%zmm2 + addb $16,%r15b + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + + + + + + + + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm6 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm6 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + + + + vmovdqu8 512(%rcx,%r11,1),%zmm17 + vmovdqu8 576(%rcx,%r11,1),%zmm19 + vmovdqu8 640(%rcx,%r11,1),%zmm20 + vmovdqu8 704(%rcx,%r11,1),%zmm21 + + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + + + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vpternlogq $0x96,%zmm15,%zmm12,%zmm6 + vpxorq %zmm24,%zmm6,%zmm6 + vpternlogq $0x96,%zmm10,%zmm13,%zmm7 + vpxorq %zmm25,%zmm7,%zmm7 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vextracti64x4 $1,%zmm6,%ymm12 + vpxorq %ymm12,%ymm6,%ymm6 + vextracti32x4 $1,%ymm6,%xmm12 + vpxorq %xmm12,%xmm6,%xmm6 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 176(%rdi),%zmm31 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 192(%rdi),%zmm30 + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 208(%rdi),%zmm31 + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 224(%rdi),%zmm30 + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm6 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + + + + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + + + + movq %r9,%r10 + vmovdqu8 %zmm0,512(%r10,%r11,1) + vmovdqu8 %zmm3,576(%r10,%r11,1) + vmovdqu8 %zmm4,640(%r10,%r11,1) + vmovdqu8 %zmm5,704(%r10,%r11,1) + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 + vmovdqa64 %zmm0,1024(%rsp) + vmovdqa64 %zmm3,1088(%rsp) + vmovdqa64 %zmm4,1152(%rsp) + vmovdqa64 %zmm5,1216(%rsp) + vmovdqa64 %zmm6,%zmm14 + + addq $768,%r11 + subq $768,%r8 + cmpq $768,%r8 + jae .L_encrypt_big_nblocks_334 + +.L_no_more_big_nblocks_334: + + cmpq $512,%r8 + jae .L_encrypt_32_blocks_334 + + cmpq $256,%r8 + jae .L_encrypt_16_blocks_334 +.L_encrypt_0_blocks_ghash_32_334: + movl %r8d,%r10d + andl $~15,%r10d + movl $256,%ebx + subl %r10d,%ebx + vmovdqa64 768(%rsp),%zmm13 + vpxorq %zmm14,%zmm13,%zmm13 + vmovdqu64 0(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 832(%rsp),%zmm13 + vmovdqu64 64(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + vpxorq %zmm10,%zmm4,%zmm26 + vpxorq %zmm6,%zmm0,%zmm24 + vpxorq %zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + vmovdqa64 896(%rsp),%zmm13 + vmovdqu64 128(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 960(%rsp),%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + + vpternlogq $0x96,%zmm10,%zmm4,%zmm26 + vpternlogq $0x96,%zmm6,%zmm0,%zmm24 + vpternlogq $0x96,%zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + addl $256,%ebx + movl %r8d,%r10d + addl $15,%r10d + shrl $4,%r10d + je .L_last_num_blocks_is_0_343 + + cmpl $8,%r10d + je .L_last_num_blocks_is_8_343 + jb .L_last_num_blocks_is_7_1_343 + + + cmpl $12,%r10d + je .L_last_num_blocks_is_12_343 + jb .L_last_num_blocks_is_11_9_343 + + + cmpl $15,%r10d + je .L_last_num_blocks_is_15_343 + ja .L_last_num_blocks_is_16_343 + cmpl $14,%r10d + je .L_last_num_blocks_is_14_343 + jmp .L_last_num_blocks_is_13_343 + +.L_last_num_blocks_is_11_9_343: + + cmpl $10,%r10d + je .L_last_num_blocks_is_10_343 + ja .L_last_num_blocks_is_11_343 + jmp .L_last_num_blocks_is_9_343 + +.L_last_num_blocks_is_7_1_343: + cmpl $4,%r10d + je .L_last_num_blocks_is_4_343 + jb .L_last_num_blocks_is_3_1_343 + + cmpl $6,%r10d + ja .L_last_num_blocks_is_7_343 + je .L_last_num_blocks_is_6_343 + jmp .L_last_num_blocks_is_5_343 + +.L_last_num_blocks_is_3_1_343: + + cmpl $2,%r10d + ja .L_last_num_blocks_is_3_343 + je .L_last_num_blocks_is_2_343 +.L_last_num_blocks_is_1_343: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $255,%r15d + jae .L_16_blocks_overflow_344 + vpaddd %xmm28,%xmm2,%xmm0 + jmp .L_16_blocks_ok_344 + +.L_16_blocks_overflow_344: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %xmm29,%xmm0,%xmm0 +.L_16_blocks_ok_344: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $0,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%xmm17{%k1}{z} + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %xmm31,%xmm0,%xmm0 + vaesenclast %xmm30,%xmm0,%xmm0 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti32x4 $0,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %xmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm0,%zmm0{%k1}{z} + vpshufb %xmm29,%xmm0,%xmm17 + vextracti32x4 $0,%zmm17,%xmm7 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_345 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm17,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm17,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm17,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm17,%xmm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_345 +.L_small_initial_partial_block_345: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + + + vpsrldq $8,%zmm26,%zmm0 + vpslldq $8,%zmm26,%zmm3 + vpxorq %zmm0,%zmm24,%zmm24 + vpxorq %zmm3,%zmm25,%zmm25 + vextracti64x4 $1,%zmm24,%ymm0 + vpxorq %ymm0,%ymm24,%ymm24 + vextracti32x4 $1,%ymm24,%xmm0 + vpxorq %xmm0,%xmm24,%xmm24 + vextracti64x4 $1,%zmm25,%ymm3 + vpxorq %ymm3,%ymm25,%ymm25 + vextracti32x4 $1,%ymm25,%xmm3 + vpxorq %xmm3,%xmm25,%xmm25 + vmovdqa64 POLY2(%rip),%xmm0 + + + vpclmulqdq $0x01,%xmm25,%xmm0,%xmm3 + vpslldq $8,%xmm3,%xmm3 + vpxorq %xmm3,%xmm25,%xmm3 + + + vpclmulqdq $0x00,%xmm3,%xmm0,%xmm4 + vpsrldq $4,%xmm4,%xmm4 + vpclmulqdq $0x10,%xmm3,%xmm0,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm24,%xmm4,%xmm14 + + + + + + + + + + + + + vpxorq %xmm7,%xmm14,%xmm14 + + jmp .L_after_reduction_345 +.L_small_initial_compute_done_345: +.L_after_reduction_345: + jmp .L_last_blocks_done_343 +.L_last_num_blocks_is_2_343: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $254,%r15d + jae .L_16_blocks_overflow_346 + vpaddd %ymm28,%ymm2,%ymm0 + jmp .L_16_blocks_ok_346 + +.L_16_blocks_overflow_346: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %ymm29,%ymm0,%ymm0 +.L_16_blocks_ok_346: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $1,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%ymm17{%k1}{z} + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %ymm31,%ymm0,%ymm0 + vaesenclast %ymm30,%ymm0,%ymm0 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %ymm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm0,%zmm0{%k1}{z} + vpshufb %ymm29,%ymm0,%ymm17 + vextracti32x4 $1,%zmm17,%xmm7 + subq $16 * (2 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_347 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm17,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm17,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm17,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm17,%ymm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_347 +.L_small_initial_partial_block_347: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm17,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm17,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm17,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm17,%xmm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_347: + + orq %r8,%r8 + je .L_after_reduction_347 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_347: + jmp .L_last_blocks_done_343 +.L_last_num_blocks_is_3_343: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $253,%r15d + jae .L_16_blocks_overflow_348 + vpaddd %zmm28,%zmm2,%zmm0 + jmp .L_16_blocks_ok_348 + +.L_16_blocks_overflow_348: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %zmm29,%zmm0,%zmm0 +.L_16_blocks_ok_348: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $2,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm0,%zmm0 + vpxorq %zmm17,%zmm0,%zmm0 + vextracti32x4 $2,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm0,%zmm0{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vextracti32x4 $2,%zmm17,%xmm7 + subq $16 * (3 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_349 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_349 +.L_small_initial_partial_block_349: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm17,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm17,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm17,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm17,%ymm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_349: + + orq %r8,%r8 + je .L_after_reduction_349 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_349: + jmp .L_last_blocks_done_343 +.L_last_num_blocks_is_4_343: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $252,%r15d + jae .L_16_blocks_overflow_350 + vpaddd %zmm28,%zmm2,%zmm0 + jmp .L_16_blocks_ok_350 + +.L_16_blocks_overflow_350: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %zmm29,%zmm0,%zmm0 +.L_16_blocks_ok_350: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $3,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm0,%zmm0 + vpxorq %zmm17,%zmm0,%zmm0 + vextracti32x4 $3,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm0,%zmm0{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vextracti32x4 $3,%zmm17,%xmm7 + subq $16 * (4 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_351 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_351 +.L_small_initial_partial_block_351: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_351: + + orq %r8,%r8 + je .L_after_reduction_351 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_351: + jmp .L_last_blocks_done_343 +.L_last_num_blocks_is_5_343: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $251,%r15d + jae .L_16_blocks_overflow_352 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %xmm27,%xmm0,%xmm3 + jmp .L_16_blocks_ok_352 + +.L_16_blocks_overflow_352: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %xmm29,%xmm3,%xmm3 +.L_16_blocks_ok_352: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $0,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%xmm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %xmm30,%xmm3,%xmm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %xmm19,%xmm3,%xmm3 + vextracti32x4 $0,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %xmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm3,%zmm3{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %xmm29,%xmm3,%xmm19 + vextracti32x4 $0,%zmm19,%xmm7 + subq $16 * (5 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_353 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm19,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm19,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm19,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm19,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_353 +.L_small_initial_partial_block_353: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_353: + + orq %r8,%r8 + je .L_after_reduction_353 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_353: + jmp .L_last_blocks_done_343 +.L_last_num_blocks_is_6_343: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $250,%r15d + jae .L_16_blocks_overflow_354 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %ymm27,%ymm0,%ymm3 + jmp .L_16_blocks_ok_354 + +.L_16_blocks_overflow_354: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %ymm29,%ymm3,%ymm3 +.L_16_blocks_ok_354: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $1,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%ymm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %ymm30,%ymm3,%ymm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %ymm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm3,%zmm3{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %ymm29,%ymm3,%ymm19 + vextracti32x4 $1,%zmm19,%xmm7 + subq $16 * (6 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_355 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm19,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm19,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm19,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm19,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_355 +.L_small_initial_partial_block_355: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm19,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm19,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm19,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm19,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_355: + + orq %r8,%r8 + je .L_after_reduction_355 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_355: + jmp .L_last_blocks_done_343 +.L_last_num_blocks_is_7_343: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $249,%r15d + jae .L_16_blocks_overflow_356 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + jmp .L_16_blocks_ok_356 + +.L_16_blocks_overflow_356: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 +.L_16_blocks_ok_356: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $2,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti32x4 $2,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm3,%zmm3{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vextracti32x4 $2,%zmm19,%xmm7 + subq $16 * (7 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_357 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_357 +.L_small_initial_partial_block_357: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm19,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm19,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm19,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm19,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_357: + + orq %r8,%r8 + je .L_after_reduction_357 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_357: + jmp .L_last_blocks_done_343 +.L_last_num_blocks_is_8_343: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $248,%r15d + jae .L_16_blocks_overflow_358 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + jmp .L_16_blocks_ok_358 + +.L_16_blocks_overflow_358: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 +.L_16_blocks_ok_358: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $3,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti32x4 $3,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm3,%zmm3{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vextracti32x4 $3,%zmm19,%xmm7 + subq $16 * (8 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_359 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_359 +.L_small_initial_partial_block_359: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_359: + + orq %r8,%r8 + je .L_after_reduction_359 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_359: + jmp .L_last_blocks_done_343 +.L_last_num_blocks_is_9_343: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $247,%r15d + jae .L_16_blocks_overflow_360 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %xmm27,%xmm3,%xmm4 + jmp .L_16_blocks_ok_360 + +.L_16_blocks_overflow_360: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %xmm29,%xmm4,%xmm4 +.L_16_blocks_ok_360: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $0,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%xmm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %xmm30,%xmm4,%xmm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %xmm20,%xmm4,%xmm4 + vextracti32x4 $0,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %xmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm4,%zmm4{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %xmm29,%xmm4,%xmm20 + vextracti32x4 $0,%zmm20,%xmm7 + subq $16 * (9 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_361 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm20,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm20,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm20,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm20,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_361 +.L_small_initial_partial_block_361: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_361: + + orq %r8,%r8 + je .L_after_reduction_361 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_361: + jmp .L_last_blocks_done_343 +.L_last_num_blocks_is_10_343: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $246,%r15d + jae .L_16_blocks_overflow_362 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %ymm27,%ymm3,%ymm4 + jmp .L_16_blocks_ok_362 + +.L_16_blocks_overflow_362: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %ymm29,%ymm4,%ymm4 +.L_16_blocks_ok_362: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $1,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%ymm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %ymm30,%ymm4,%ymm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %ymm20,%ymm4,%ymm4 + vextracti32x4 $1,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %ymm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm4,%zmm4{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %ymm29,%ymm4,%ymm20 + vextracti32x4 $1,%zmm20,%xmm7 + subq $16 * (10 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_363 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm20,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm20,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm20,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm20,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_363 +.L_small_initial_partial_block_363: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm20,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm20,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm20,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm20,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_363: + + orq %r8,%r8 + je .L_after_reduction_363 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_363: + jmp .L_last_blocks_done_343 +.L_last_num_blocks_is_11_343: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $245,%r15d + jae .L_16_blocks_overflow_364 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + jmp .L_16_blocks_ok_364 + +.L_16_blocks_overflow_364: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 +.L_16_blocks_ok_364: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $2,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vextracti32x4 $2,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm4,%zmm4{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %zmm29,%zmm4,%zmm20 + vextracti32x4 $2,%zmm20,%xmm7 + subq $16 * (11 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_365 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_365 +.L_small_initial_partial_block_365: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm20,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm20,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm20,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm20,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_365: + + orq %r8,%r8 + je .L_after_reduction_365 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_365: + jmp .L_last_blocks_done_343 +.L_last_num_blocks_is_12_343: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $244,%r15d + jae .L_16_blocks_overflow_366 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + jmp .L_16_blocks_ok_366 + +.L_16_blocks_overflow_366: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 +.L_16_blocks_ok_366: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $3,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vextracti32x4 $3,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm4,%zmm4{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %zmm29,%zmm4,%zmm20 + vextracti32x4 $3,%zmm20,%xmm7 + subq $16 * (12 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_367 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 160(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_367 +.L_small_initial_partial_block_367: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_367: + + orq %r8,%r8 + je .L_after_reduction_367 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_367: + jmp .L_last_blocks_done_343 +.L_last_num_blocks_is_13_343: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $243,%r15d + jae .L_16_blocks_overflow_368 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %xmm27,%xmm4,%xmm5 + jmp .L_16_blocks_ok_368 + +.L_16_blocks_overflow_368: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %xmm29,%xmm5,%xmm5 +.L_16_blocks_ok_368: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $0,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%xmm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %xmm30,%xmm5,%xmm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %xmm21,%xmm5,%xmm5 + vextracti32x4 $0,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %xmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm5,%zmm5{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %zmm29,%zmm4,%zmm20 + vpshufb %xmm29,%xmm5,%xmm21 + vextracti32x4 $0,%zmm21,%xmm7 + subq $16 * (13 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_369 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 144(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm21,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm21,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm21,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm21,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_369 +.L_small_initial_partial_block_369: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 160(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_369: + + orq %r8,%r8 + je .L_after_reduction_369 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_369: + jmp .L_last_blocks_done_343 +.L_last_num_blocks_is_14_343: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $242,%r15d + jae .L_16_blocks_overflow_370 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %ymm27,%ymm4,%ymm5 + jmp .L_16_blocks_ok_370 + +.L_16_blocks_overflow_370: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %ymm29,%ymm5,%ymm5 +.L_16_blocks_ok_370: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $1,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%ymm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %ymm30,%ymm5,%ymm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %ymm21,%ymm5,%ymm5 + vextracti32x4 $1,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %ymm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm5,%zmm5{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %zmm29,%zmm4,%zmm20 + vpshufb %ymm29,%ymm5,%ymm21 + vextracti32x4 $1,%zmm21,%xmm7 + subq $16 * (14 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_371 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 128(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm21,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm21,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm21,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm21,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_371 +.L_small_initial_partial_block_371: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 144(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm21,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm21,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm21,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm21,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_371: + + orq %r8,%r8 + je .L_after_reduction_371 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_371: + jmp .L_last_blocks_done_343 +.L_last_num_blocks_is_15_343: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $241,%r15d + jae .L_16_blocks_overflow_372 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp .L_16_blocks_ok_372 + +.L_16_blocks_overflow_372: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +.L_16_blocks_ok_372: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $2,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%zmm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + vextracti32x4 $2,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %zmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm5,%zmm5{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %zmm29,%zmm4,%zmm20 + vpshufb %zmm29,%zmm5,%zmm21 + vextracti32x4 $2,%zmm21,%xmm7 + subq $16 * (15 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_373 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 112(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm21,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm21,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm21,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm21,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_373 +.L_small_initial_partial_block_373: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 128(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm21,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm21,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm21,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm21,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_373: + + orq %r8,%r8 + je .L_after_reduction_373 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_373: + jmp .L_last_blocks_done_343 +.L_last_num_blocks_is_16_343: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $240,%r15d + jae .L_16_blocks_overflow_374 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp .L_16_blocks_ok_374 + +.L_16_blocks_overflow_374: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +.L_16_blocks_ok_374: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $3,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%zmm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + vextracti32x4 $3,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %zmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm5,%zmm5{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %zmm29,%zmm4,%zmm20 + vpshufb %zmm29,%zmm5,%zmm21 + vextracti32x4 $3,%zmm21,%xmm7 + subq $16 * (16 - 1),%r8 +.L_small_initial_partial_block_375: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 112(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm21,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm21,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm21,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm21,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_375: + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_375: + jmp .L_last_blocks_done_343 +.L_last_num_blocks_is_0_343: + vmovdqa64 1024(%rsp),%zmm13 + vmovdqu64 0(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 1088(%rsp),%zmm13 + vmovdqu64 64(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + vpternlogq $0x96,%zmm10,%zmm4,%zmm26 + vpternlogq $0x96,%zmm6,%zmm0,%zmm24 + vpternlogq $0x96,%zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + vmovdqa64 1152(%rsp),%zmm13 + vmovdqu64 128(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 1216(%rsp),%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + + vpternlogq $0x96,%zmm10,%zmm4,%zmm26 + vpternlogq $0x96,%zmm6,%zmm0,%zmm24 + vpternlogq $0x96,%zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + + vpsrldq $8,%zmm26,%zmm0 + vpslldq $8,%zmm26,%zmm3 + vpxorq %zmm0,%zmm24,%zmm24 + vpxorq %zmm3,%zmm25,%zmm25 + vextracti64x4 $1,%zmm24,%ymm0 + vpxorq %ymm0,%ymm24,%ymm24 + vextracti32x4 $1,%ymm24,%xmm0 + vpxorq %xmm0,%xmm24,%xmm24 + vextracti64x4 $1,%zmm25,%ymm3 + vpxorq %ymm3,%ymm25,%ymm25 + vextracti32x4 $1,%ymm25,%xmm3 + vpxorq %xmm3,%xmm25,%xmm25 + vmovdqa64 POLY2(%rip),%xmm4 + + + vpclmulqdq $0x01,%xmm25,%xmm4,%xmm0 + vpslldq $8,%xmm0,%xmm0 + vpxorq %xmm0,%xmm25,%xmm0 + + + vpclmulqdq $0x00,%xmm0,%xmm4,%xmm3 + vpsrldq $4,%xmm3,%xmm3 + vpclmulqdq $0x10,%xmm0,%xmm4,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm24,%xmm3,%xmm14 + +.L_last_blocks_done_343: + vpshufb %xmm29,%xmm2,%xmm2 + jmp .L_ghash_done_334 +.L_encrypt_32_blocks_334: + cmpb $240,%r15b + jae .L_16_blocks_overflow_376 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp .L_16_blocks_ok_376 +.L_16_blocks_overflow_376: + vpshufb %zmm29,%zmm2,%zmm2 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +.L_16_blocks_ok_376: + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp),%zmm1 + + + + + vshufi64x2 $255,%zmm5,%zmm5,%zmm2 + addb $16,%r15b + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + + + + + + + + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm6 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm6 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + + + + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%zmm21 + + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm15,%zmm10,%zmm26 + vpxorq %zmm12,%zmm6,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 192(%rdi),%zmm30 + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 208(%rdi),%zmm31 + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 224(%rdi),%zmm30 + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + + + + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + + + + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %zmm5,192(%r10,%r11,1) + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 + vmovdqa64 %zmm0,1280(%rsp) + vmovdqa64 %zmm3,1344(%rsp) + vmovdqa64 %zmm4,1408(%rsp) + vmovdqa64 %zmm5,1472(%rsp) + cmpb $240,%r15b + jae .L_16_blocks_overflow_377 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp .L_16_blocks_ok_377 +.L_16_blocks_overflow_377: + vpshufb %zmm29,%zmm2,%zmm2 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +.L_16_blocks_ok_377: + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 256(%rsp),%zmm1 + + + + + vshufi64x2 $255,%zmm5,%zmm5,%zmm2 + addb $16,%r15b + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 320(%rsp),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + + + + + + + + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm6 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 384(%rsp),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 448(%rsp),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm6 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + + + + vmovdqu8 256(%rcx,%r11,1),%zmm17 + vmovdqu8 320(%rcx,%r11,1),%zmm19 + vmovdqu8 384(%rcx,%r11,1),%zmm20 + vmovdqu8 448(%rcx,%r11,1),%zmm21 + + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vpternlogq $0x96,%zmm12,%zmm6,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 192(%rdi),%zmm30 + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 208(%rdi),%zmm31 + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 224(%rdi),%zmm30 + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + + + + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + + + + movq %r9,%r10 + vmovdqu8 %zmm0,256(%r10,%r11,1) + vmovdqu8 %zmm3,320(%r10,%r11,1) + vmovdqu8 %zmm4,384(%r10,%r11,1) + vmovdqu8 %zmm5,448(%r10,%r11,1) + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 + vmovdqa64 %zmm0,768(%rsp) + vmovdqa64 %zmm3,832(%rsp) + vmovdqa64 %zmm4,896(%rsp) + vmovdqa64 %zmm5,960(%rsp) + vmovdqa64 1280(%rsp),%zmm13 + vmovdqu64 512(%rsp),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 1344(%rsp),%zmm13 + vmovdqu64 576(%rsp),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + vpternlogq $0x96,%zmm10,%zmm4,%zmm26 + vpternlogq $0x96,%zmm6,%zmm0,%zmm24 + vpternlogq $0x96,%zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + vmovdqa64 1408(%rsp),%zmm13 + vmovdqu64 640(%rsp),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 1472(%rsp),%zmm13 + vmovdqu64 704(%rsp),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + + vpternlogq $0x96,%zmm10,%zmm4,%zmm26 + vpternlogq $0x96,%zmm6,%zmm0,%zmm24 + vpternlogq $0x96,%zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + + vpsrldq $8,%zmm26,%zmm0 + vpslldq $8,%zmm26,%zmm3 + vpxorq %zmm0,%zmm24,%zmm24 + vpxorq %zmm3,%zmm25,%zmm25 + vextracti64x4 $1,%zmm24,%ymm0 + vpxorq %ymm0,%ymm24,%ymm24 + vextracti32x4 $1,%ymm24,%xmm0 + vpxorq %xmm0,%xmm24,%xmm24 + vextracti64x4 $1,%zmm25,%ymm3 + vpxorq %ymm3,%ymm25,%ymm25 + vextracti32x4 $1,%ymm25,%xmm3 + vpxorq %xmm3,%xmm25,%xmm25 + vmovdqa64 POLY2(%rip),%xmm4 + + + vpclmulqdq $0x01,%xmm25,%xmm4,%xmm0 + vpslldq $8,%xmm0,%xmm0 + vpxorq %xmm0,%xmm25,%xmm0 + + + vpclmulqdq $0x00,%xmm0,%xmm4,%xmm3 + vpsrldq $4,%xmm3,%xmm3 + vpclmulqdq $0x10,%xmm0,%xmm4,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm24,%xmm3,%xmm14 + + subq $512,%r8 + addq $512,%r11 + movl %r8d,%r10d + andl $~15,%r10d + movl $512,%ebx + subl %r10d,%ebx + movl %r8d,%r10d + addl $15,%r10d + shrl $4,%r10d + je .L_last_num_blocks_is_0_378 + + cmpl $8,%r10d + je .L_last_num_blocks_is_8_378 + jb .L_last_num_blocks_is_7_1_378 + + + cmpl $12,%r10d + je .L_last_num_blocks_is_12_378 + jb .L_last_num_blocks_is_11_9_378 + + + cmpl $15,%r10d + je .L_last_num_blocks_is_15_378 + ja .L_last_num_blocks_is_16_378 + cmpl $14,%r10d + je .L_last_num_blocks_is_14_378 + jmp .L_last_num_blocks_is_13_378 + +.L_last_num_blocks_is_11_9_378: + + cmpl $10,%r10d + je .L_last_num_blocks_is_10_378 + ja .L_last_num_blocks_is_11_378 + jmp .L_last_num_blocks_is_9_378 + +.L_last_num_blocks_is_7_1_378: + cmpl $4,%r10d + je .L_last_num_blocks_is_4_378 + jb .L_last_num_blocks_is_3_1_378 + + cmpl $6,%r10d + ja .L_last_num_blocks_is_7_378 + je .L_last_num_blocks_is_6_378 + jmp .L_last_num_blocks_is_5_378 + +.L_last_num_blocks_is_3_1_378: + + cmpl $2,%r10d + ja .L_last_num_blocks_is_3_378 + je .L_last_num_blocks_is_2_378 +.L_last_num_blocks_is_1_378: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $255,%r15d + jae .L_16_blocks_overflow_379 + vpaddd %xmm28,%xmm2,%xmm0 + jmp .L_16_blocks_ok_379 + +.L_16_blocks_overflow_379: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %xmm29,%xmm0,%xmm0 +.L_16_blocks_ok_379: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $0,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%xmm17{%k1}{z} + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %xmm31,%xmm0,%xmm0 + vaesenclast %xmm30,%xmm0,%xmm0 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti32x4 $0,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %xmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm0,%zmm0{%k1}{z} + vpshufb %xmm29,%xmm0,%xmm17 + vextracti32x4 $0,%zmm17,%xmm7 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_380 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm17,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm17,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm17,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm17,%xmm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_380 +.L_small_initial_partial_block_380: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + + + vpsrldq $8,%zmm26,%zmm0 + vpslldq $8,%zmm26,%zmm3 + vpxorq %zmm0,%zmm24,%zmm24 + vpxorq %zmm3,%zmm25,%zmm25 + vextracti64x4 $1,%zmm24,%ymm0 + vpxorq %ymm0,%ymm24,%ymm24 + vextracti32x4 $1,%ymm24,%xmm0 + vpxorq %xmm0,%xmm24,%xmm24 + vextracti64x4 $1,%zmm25,%ymm3 + vpxorq %ymm3,%ymm25,%ymm25 + vextracti32x4 $1,%ymm25,%xmm3 + vpxorq %xmm3,%xmm25,%xmm25 + vmovdqa64 POLY2(%rip),%xmm0 + + + vpclmulqdq $0x01,%xmm25,%xmm0,%xmm3 + vpslldq $8,%xmm3,%xmm3 + vpxorq %xmm3,%xmm25,%xmm3 + + + vpclmulqdq $0x00,%xmm3,%xmm0,%xmm4 + vpsrldq $4,%xmm4,%xmm4 + vpclmulqdq $0x10,%xmm3,%xmm0,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm24,%xmm4,%xmm14 + + + + + + + + + + + + + vpxorq %xmm7,%xmm14,%xmm14 + + jmp .L_after_reduction_380 +.L_small_initial_compute_done_380: +.L_after_reduction_380: + jmp .L_last_blocks_done_378 +.L_last_num_blocks_is_2_378: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $254,%r15d + jae .L_16_blocks_overflow_381 + vpaddd %ymm28,%ymm2,%ymm0 + jmp .L_16_blocks_ok_381 + +.L_16_blocks_overflow_381: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %ymm29,%ymm0,%ymm0 +.L_16_blocks_ok_381: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $1,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%ymm17{%k1}{z} + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %ymm31,%ymm0,%ymm0 + vaesenclast %ymm30,%ymm0,%ymm0 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %ymm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm0,%zmm0{%k1}{z} + vpshufb %ymm29,%ymm0,%ymm17 + vextracti32x4 $1,%zmm17,%xmm7 + subq $16 * (2 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_382 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm17,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm17,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm17,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm17,%ymm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_382 +.L_small_initial_partial_block_382: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm17,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm17,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm17,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm17,%xmm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_382: + + orq %r8,%r8 + je .L_after_reduction_382 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_382: + jmp .L_last_blocks_done_378 +.L_last_num_blocks_is_3_378: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $253,%r15d + jae .L_16_blocks_overflow_383 + vpaddd %zmm28,%zmm2,%zmm0 + jmp .L_16_blocks_ok_383 + +.L_16_blocks_overflow_383: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %zmm29,%zmm0,%zmm0 +.L_16_blocks_ok_383: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $2,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm0,%zmm0 + vpxorq %zmm17,%zmm0,%zmm0 + vextracti32x4 $2,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm0,%zmm0{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vextracti32x4 $2,%zmm17,%xmm7 + subq $16 * (3 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_384 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_384 +.L_small_initial_partial_block_384: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm17,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm17,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm17,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm17,%ymm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_384: + + orq %r8,%r8 + je .L_after_reduction_384 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_384: + jmp .L_last_blocks_done_378 +.L_last_num_blocks_is_4_378: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $252,%r15d + jae .L_16_blocks_overflow_385 + vpaddd %zmm28,%zmm2,%zmm0 + jmp .L_16_blocks_ok_385 + +.L_16_blocks_overflow_385: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %zmm29,%zmm0,%zmm0 +.L_16_blocks_ok_385: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $3,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm0,%zmm0 + vpxorq %zmm17,%zmm0,%zmm0 + vextracti32x4 $3,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm0,%zmm0{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vextracti32x4 $3,%zmm17,%xmm7 + subq $16 * (4 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_386 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_386 +.L_small_initial_partial_block_386: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_386: + + orq %r8,%r8 + je .L_after_reduction_386 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_386: + jmp .L_last_blocks_done_378 +.L_last_num_blocks_is_5_378: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $251,%r15d + jae .L_16_blocks_overflow_387 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %xmm27,%xmm0,%xmm3 + jmp .L_16_blocks_ok_387 + +.L_16_blocks_overflow_387: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %xmm29,%xmm3,%xmm3 +.L_16_blocks_ok_387: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $0,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%xmm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %xmm30,%xmm3,%xmm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %xmm19,%xmm3,%xmm3 + vextracti32x4 $0,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %xmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm3,%zmm3{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %xmm29,%xmm3,%xmm19 + vextracti32x4 $0,%zmm19,%xmm7 + subq $16 * (5 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_388 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm19,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm19,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm19,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm19,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_388 +.L_small_initial_partial_block_388: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_388: + + orq %r8,%r8 + je .L_after_reduction_388 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_388: + jmp .L_last_blocks_done_378 +.L_last_num_blocks_is_6_378: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $250,%r15d + jae .L_16_blocks_overflow_389 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %ymm27,%ymm0,%ymm3 + jmp .L_16_blocks_ok_389 + +.L_16_blocks_overflow_389: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %ymm29,%ymm3,%ymm3 +.L_16_blocks_ok_389: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $1,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%ymm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %ymm30,%ymm3,%ymm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %ymm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm3,%zmm3{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %ymm29,%ymm3,%ymm19 + vextracti32x4 $1,%zmm19,%xmm7 + subq $16 * (6 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_390 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm19,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm19,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm19,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm19,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_390 +.L_small_initial_partial_block_390: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm19,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm19,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm19,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm19,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_390: + + orq %r8,%r8 + je .L_after_reduction_390 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_390: + jmp .L_last_blocks_done_378 +.L_last_num_blocks_is_7_378: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $249,%r15d + jae .L_16_blocks_overflow_391 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + jmp .L_16_blocks_ok_391 + +.L_16_blocks_overflow_391: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 +.L_16_blocks_ok_391: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $2,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti32x4 $2,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm3,%zmm3{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vextracti32x4 $2,%zmm19,%xmm7 + subq $16 * (7 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_392 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_392 +.L_small_initial_partial_block_392: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm19,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm19,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm19,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm19,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_392: + + orq %r8,%r8 + je .L_after_reduction_392 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_392: + jmp .L_last_blocks_done_378 +.L_last_num_blocks_is_8_378: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $248,%r15d + jae .L_16_blocks_overflow_393 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + jmp .L_16_blocks_ok_393 + +.L_16_blocks_overflow_393: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 +.L_16_blocks_ok_393: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $3,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti32x4 $3,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm3,%zmm3{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vextracti32x4 $3,%zmm19,%xmm7 + subq $16 * (8 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_394 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_394 +.L_small_initial_partial_block_394: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_394: + + orq %r8,%r8 + je .L_after_reduction_394 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_394: + jmp .L_last_blocks_done_378 +.L_last_num_blocks_is_9_378: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $247,%r15d + jae .L_16_blocks_overflow_395 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %xmm27,%xmm3,%xmm4 + jmp .L_16_blocks_ok_395 + +.L_16_blocks_overflow_395: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %xmm29,%xmm4,%xmm4 +.L_16_blocks_ok_395: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $0,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%xmm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %xmm30,%xmm4,%xmm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %xmm20,%xmm4,%xmm4 + vextracti32x4 $0,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %xmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm4,%zmm4{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %xmm29,%xmm4,%xmm20 + vextracti32x4 $0,%zmm20,%xmm7 + subq $16 * (9 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_396 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm20,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm20,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm20,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm20,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_396 +.L_small_initial_partial_block_396: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_396: + + orq %r8,%r8 + je .L_after_reduction_396 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_396: + jmp .L_last_blocks_done_378 +.L_last_num_blocks_is_10_378: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $246,%r15d + jae .L_16_blocks_overflow_397 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %ymm27,%ymm3,%ymm4 + jmp .L_16_blocks_ok_397 + +.L_16_blocks_overflow_397: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %ymm29,%ymm4,%ymm4 +.L_16_blocks_ok_397: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $1,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%ymm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %ymm30,%ymm4,%ymm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %ymm20,%ymm4,%ymm4 + vextracti32x4 $1,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %ymm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm4,%zmm4{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %ymm29,%ymm4,%ymm20 + vextracti32x4 $1,%zmm20,%xmm7 + subq $16 * (10 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_398 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm20,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm20,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm20,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm20,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_398 +.L_small_initial_partial_block_398: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm20,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm20,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm20,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm20,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_398: + + orq %r8,%r8 + je .L_after_reduction_398 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_398: + jmp .L_last_blocks_done_378 +.L_last_num_blocks_is_11_378: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $245,%r15d + jae .L_16_blocks_overflow_399 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + jmp .L_16_blocks_ok_399 + +.L_16_blocks_overflow_399: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 +.L_16_blocks_ok_399: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $2,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vextracti32x4 $2,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm4,%zmm4{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %zmm29,%zmm4,%zmm20 + vextracti32x4 $2,%zmm20,%xmm7 + subq $16 * (11 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_400 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_400 +.L_small_initial_partial_block_400: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm20,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm20,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm20,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm20,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_400: + + orq %r8,%r8 + je .L_after_reduction_400 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_400: + jmp .L_last_blocks_done_378 +.L_last_num_blocks_is_12_378: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $244,%r15d + jae .L_16_blocks_overflow_401 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + jmp .L_16_blocks_ok_401 + +.L_16_blocks_overflow_401: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 +.L_16_blocks_ok_401: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $3,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vextracti32x4 $3,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm4,%zmm4{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %zmm29,%zmm4,%zmm20 + vextracti32x4 $3,%zmm20,%xmm7 + subq $16 * (12 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_402 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 160(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_402 +.L_small_initial_partial_block_402: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_402: + + orq %r8,%r8 + je .L_after_reduction_402 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_402: + jmp .L_last_blocks_done_378 +.L_last_num_blocks_is_13_378: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $243,%r15d + jae .L_16_blocks_overflow_403 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %xmm27,%xmm4,%xmm5 + jmp .L_16_blocks_ok_403 + +.L_16_blocks_overflow_403: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %xmm29,%xmm5,%xmm5 +.L_16_blocks_ok_403: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $0,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%xmm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %xmm30,%xmm5,%xmm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %xmm21,%xmm5,%xmm5 + vextracti32x4 $0,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %xmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm5,%zmm5{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %zmm29,%zmm4,%zmm20 + vpshufb %xmm29,%xmm5,%xmm21 + vextracti32x4 $0,%zmm21,%xmm7 + subq $16 * (13 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_404 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 144(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm21,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm21,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm21,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm21,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_404 +.L_small_initial_partial_block_404: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 160(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_404: + + orq %r8,%r8 + je .L_after_reduction_404 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_404: + jmp .L_last_blocks_done_378 +.L_last_num_blocks_is_14_378: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $242,%r15d + jae .L_16_blocks_overflow_405 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %ymm27,%ymm4,%ymm5 + jmp .L_16_blocks_ok_405 + +.L_16_blocks_overflow_405: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %ymm29,%ymm5,%ymm5 +.L_16_blocks_ok_405: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $1,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%ymm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %ymm30,%ymm5,%ymm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %ymm21,%ymm5,%ymm5 + vextracti32x4 $1,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %ymm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm5,%zmm5{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %zmm29,%zmm4,%zmm20 + vpshufb %ymm29,%ymm5,%ymm21 + vextracti32x4 $1,%zmm21,%xmm7 + subq $16 * (14 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_406 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 128(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm21,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm21,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm21,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm21,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_406 +.L_small_initial_partial_block_406: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 144(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm21,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm21,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm21,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm21,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_406: + + orq %r8,%r8 + je .L_after_reduction_406 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_406: + jmp .L_last_blocks_done_378 +.L_last_num_blocks_is_15_378: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $241,%r15d + jae .L_16_blocks_overflow_407 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp .L_16_blocks_ok_407 + +.L_16_blocks_overflow_407: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +.L_16_blocks_ok_407: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $2,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%zmm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + vextracti32x4 $2,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %zmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm5,%zmm5{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %zmm29,%zmm4,%zmm20 + vpshufb %zmm29,%zmm5,%zmm21 + vextracti32x4 $2,%zmm21,%xmm7 + subq $16 * (15 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_408 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 112(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm21,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm21,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm21,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm21,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_408 +.L_small_initial_partial_block_408: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 128(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm21,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm21,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm21,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm21,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_408: + + orq %r8,%r8 + je .L_after_reduction_408 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_408: + jmp .L_last_blocks_done_378 +.L_last_num_blocks_is_16_378: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $240,%r15d + jae .L_16_blocks_overflow_409 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp .L_16_blocks_ok_409 + +.L_16_blocks_overflow_409: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +.L_16_blocks_ok_409: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $3,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%zmm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + vextracti32x4 $3,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %zmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm5,%zmm5{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %zmm29,%zmm4,%zmm20 + vpshufb %zmm29,%zmm5,%zmm21 + vextracti32x4 $3,%zmm21,%xmm7 + subq $16 * (16 - 1),%r8 +.L_small_initial_partial_block_410: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 112(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm21,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm21,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm21,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm21,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_410: + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_410: + jmp .L_last_blocks_done_378 +.L_last_num_blocks_is_0_378: + vmovdqa64 768(%rsp),%zmm13 + vpxorq %zmm14,%zmm13,%zmm13 + vmovdqu64 0(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 832(%rsp),%zmm13 + vmovdqu64 64(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + vpxorq %zmm10,%zmm4,%zmm26 + vpxorq %zmm6,%zmm0,%zmm24 + vpxorq %zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + vmovdqa64 896(%rsp),%zmm13 + vmovdqu64 128(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 960(%rsp),%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + + vpternlogq $0x96,%zmm10,%zmm4,%zmm26 + vpternlogq $0x96,%zmm6,%zmm0,%zmm24 + vpternlogq $0x96,%zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + + vpsrldq $8,%zmm26,%zmm0 + vpslldq $8,%zmm26,%zmm3 + vpxorq %zmm0,%zmm24,%zmm24 + vpxorq %zmm3,%zmm25,%zmm25 + vextracti64x4 $1,%zmm24,%ymm0 + vpxorq %ymm0,%ymm24,%ymm24 + vextracti32x4 $1,%ymm24,%xmm0 + vpxorq %xmm0,%xmm24,%xmm24 + vextracti64x4 $1,%zmm25,%ymm3 + vpxorq %ymm3,%ymm25,%ymm25 + vextracti32x4 $1,%ymm25,%xmm3 + vpxorq %xmm3,%xmm25,%xmm25 + vmovdqa64 POLY2(%rip),%xmm4 + + + vpclmulqdq $0x01,%xmm25,%xmm4,%xmm0 + vpslldq $8,%xmm0,%xmm0 + vpxorq %xmm0,%xmm25,%xmm0 + + + vpclmulqdq $0x00,%xmm0,%xmm4,%xmm3 + vpsrldq $4,%xmm3,%xmm3 + vpclmulqdq $0x10,%xmm0,%xmm4,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm24,%xmm3,%xmm14 + +.L_last_blocks_done_378: + vpshufb %xmm29,%xmm2,%xmm2 + jmp .L_ghash_done_334 +.L_encrypt_16_blocks_334: + cmpb $240,%r15b + jae .L_16_blocks_overflow_411 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp .L_16_blocks_ok_411 +.L_16_blocks_overflow_411: + vpshufb %zmm29,%zmm2,%zmm2 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +.L_16_blocks_ok_411: + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp),%zmm1 + + + + + vshufi64x2 $255,%zmm5,%zmm5,%zmm2 + addb $16,%r15b + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + + + + + + + + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm6 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm6 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + + + + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%zmm21 + + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm15,%zmm10,%zmm26 + vpxorq %zmm12,%zmm6,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 192(%rdi),%zmm30 + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 208(%rdi),%zmm31 + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 224(%rdi),%zmm30 + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + + + + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + + + + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %zmm5,192(%r10,%r11,1) + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 + vmovdqa64 %zmm0,1280(%rsp) + vmovdqa64 %zmm3,1344(%rsp) + vmovdqa64 %zmm4,1408(%rsp) + vmovdqa64 %zmm5,1472(%rsp) + vmovdqa64 1024(%rsp),%zmm13 + vmovdqu64 256(%rsp),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 1088(%rsp),%zmm13 + vmovdqu64 320(%rsp),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + vpternlogq $0x96,%zmm10,%zmm4,%zmm26 + vpternlogq $0x96,%zmm6,%zmm0,%zmm24 + vpternlogq $0x96,%zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + vmovdqa64 1152(%rsp),%zmm13 + vmovdqu64 384(%rsp),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 1216(%rsp),%zmm13 + vmovdqu64 448(%rsp),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + + vpternlogq $0x96,%zmm10,%zmm4,%zmm26 + vpternlogq $0x96,%zmm6,%zmm0,%zmm24 + vpternlogq $0x96,%zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + subq $256,%r8 + addq $256,%r11 + movl %r8d,%r10d + addl $15,%r10d + shrl $4,%r10d + je .L_last_num_blocks_is_0_412 + + cmpl $8,%r10d + je .L_last_num_blocks_is_8_412 + jb .L_last_num_blocks_is_7_1_412 + + + cmpl $12,%r10d + je .L_last_num_blocks_is_12_412 + jb .L_last_num_blocks_is_11_9_412 + + + cmpl $15,%r10d + je .L_last_num_blocks_is_15_412 + ja .L_last_num_blocks_is_16_412 + cmpl $14,%r10d + je .L_last_num_blocks_is_14_412 + jmp .L_last_num_blocks_is_13_412 + +.L_last_num_blocks_is_11_9_412: + + cmpl $10,%r10d + je .L_last_num_blocks_is_10_412 + ja .L_last_num_blocks_is_11_412 + jmp .L_last_num_blocks_is_9_412 + +.L_last_num_blocks_is_7_1_412: + cmpl $4,%r10d + je .L_last_num_blocks_is_4_412 + jb .L_last_num_blocks_is_3_1_412 + + cmpl $6,%r10d + ja .L_last_num_blocks_is_7_412 + je .L_last_num_blocks_is_6_412 + jmp .L_last_num_blocks_is_5_412 + +.L_last_num_blocks_is_3_1_412: + + cmpl $2,%r10d + ja .L_last_num_blocks_is_3_412 + je .L_last_num_blocks_is_2_412 +.L_last_num_blocks_is_1_412: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $255,%r15d + jae .L_16_blocks_overflow_413 + vpaddd %xmm28,%xmm2,%xmm0 + jmp .L_16_blocks_ok_413 + +.L_16_blocks_overflow_413: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %xmm29,%xmm0,%xmm0 +.L_16_blocks_ok_413: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $0,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%xmm17{%k1}{z} + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %xmm31,%xmm0,%xmm0 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vbroadcastf64x2 176(%rdi),%zmm31 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %xmm31,%xmm0,%xmm0 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %xmm30,%xmm0,%xmm0 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti32x4 $0,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %xmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm0,%zmm0{%k1}{z} + vpshufb %xmm29,%xmm0,%xmm17 + vextracti32x4 $0,%zmm17,%xmm7 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_414 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm17,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm17,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm17,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm17,%xmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_414 +.L_small_initial_partial_block_414: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + + + + + + + + + + + + vpxorq %xmm7,%xmm14,%xmm14 + + jmp .L_after_reduction_414 +.L_small_initial_compute_done_414: +.L_after_reduction_414: + jmp .L_last_blocks_done_412 +.L_last_num_blocks_is_2_412: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $254,%r15d + jae .L_16_blocks_overflow_415 + vpaddd %ymm28,%ymm2,%ymm0 + jmp .L_16_blocks_ok_415 + +.L_16_blocks_overflow_415: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %ymm29,%ymm0,%ymm0 +.L_16_blocks_ok_415: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $1,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%ymm17{%k1}{z} + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %ymm31,%ymm0,%ymm0 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vbroadcastf64x2 176(%rdi),%zmm31 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %ymm31,%ymm0,%ymm0 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %ymm30,%ymm0,%ymm0 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %ymm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm0,%zmm0{%k1}{z} + vpshufb %ymm29,%ymm0,%ymm17 + vextracti32x4 $1,%zmm17,%xmm7 + subq $16 * (2 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_416 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm17,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm17,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm17,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm17,%ymm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_416 +.L_small_initial_partial_block_416: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm17,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm17,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm17,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm17,%xmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_416: + + orq %r8,%r8 + je .L_after_reduction_416 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_416: + jmp .L_last_blocks_done_412 +.L_last_num_blocks_is_3_412: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $253,%r15d + jae .L_16_blocks_overflow_417 + vpaddd %zmm28,%zmm2,%zmm0 + jmp .L_16_blocks_ok_417 + +.L_16_blocks_overflow_417: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %zmm29,%zmm0,%zmm0 +.L_16_blocks_ok_417: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $2,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vbroadcastf64x2 176(%rdi),%zmm31 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vpxorq %zmm17,%zmm0,%zmm0 + vextracti32x4 $2,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm0,%zmm0{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vextracti32x4 $2,%zmm17,%xmm7 + subq $16 * (3 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_418 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_418 +.L_small_initial_partial_block_418: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm17,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm17,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm17,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm17,%ymm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_418: + + orq %r8,%r8 + je .L_after_reduction_418 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_418: + jmp .L_last_blocks_done_412 +.L_last_num_blocks_is_4_412: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $252,%r15d + jae .L_16_blocks_overflow_419 + vpaddd %zmm28,%zmm2,%zmm0 + jmp .L_16_blocks_ok_419 + +.L_16_blocks_overflow_419: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %zmm29,%zmm0,%zmm0 +.L_16_blocks_ok_419: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $3,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vbroadcastf64x2 176(%rdi),%zmm31 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vpxorq %zmm17,%zmm0,%zmm0 + vextracti32x4 $3,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm0,%zmm0{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vextracti32x4 $3,%zmm17,%xmm7 + subq $16 * (4 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_420 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_420 +.L_small_initial_partial_block_420: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_420: + + orq %r8,%r8 + je .L_after_reduction_420 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_420: + jmp .L_last_blocks_done_412 +.L_last_num_blocks_is_5_412: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $251,%r15d + jae .L_16_blocks_overflow_421 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %xmm27,%xmm0,%xmm3 + jmp .L_16_blocks_ok_421 + +.L_16_blocks_overflow_421: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %xmm29,%xmm3,%xmm3 +.L_16_blocks_ok_421: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $0,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%xmm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vbroadcastf64x2 176(%rdi),%zmm31 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %xmm30,%xmm3,%xmm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %xmm19,%xmm3,%xmm3 + vextracti32x4 $0,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %xmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm3,%zmm3{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %xmm29,%xmm3,%xmm19 + vextracti32x4 $0,%zmm19,%xmm7 + subq $16 * (5 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_422 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm19,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm19,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm19,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm19,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_422 +.L_small_initial_partial_block_422: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_422: + + orq %r8,%r8 + je .L_after_reduction_422 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_422: + jmp .L_last_blocks_done_412 +.L_last_num_blocks_is_6_412: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $250,%r15d + jae .L_16_blocks_overflow_423 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %ymm27,%ymm0,%ymm3 + jmp .L_16_blocks_ok_423 + +.L_16_blocks_overflow_423: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %ymm29,%ymm3,%ymm3 +.L_16_blocks_ok_423: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $1,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%ymm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vbroadcastf64x2 176(%rdi),%zmm31 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %ymm30,%ymm3,%ymm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %ymm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm3,%zmm3{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %ymm29,%ymm3,%ymm19 + vextracti32x4 $1,%zmm19,%xmm7 + subq $16 * (6 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_424 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm19,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm19,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm19,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm19,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_424 +.L_small_initial_partial_block_424: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm19,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm19,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm19,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm19,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_424: + + orq %r8,%r8 + je .L_after_reduction_424 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_424: + jmp .L_last_blocks_done_412 +.L_last_num_blocks_is_7_412: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $249,%r15d + jae .L_16_blocks_overflow_425 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + jmp .L_16_blocks_ok_425 + +.L_16_blocks_overflow_425: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 +.L_16_blocks_ok_425: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $2,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vbroadcastf64x2 176(%rdi),%zmm31 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti32x4 $2,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm3,%zmm3{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vextracti32x4 $2,%zmm19,%xmm7 + subq $16 * (7 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_426 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_426 +.L_small_initial_partial_block_426: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm19,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm19,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm19,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm19,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_426: + + orq %r8,%r8 + je .L_after_reduction_426 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_426: + jmp .L_last_blocks_done_412 +.L_last_num_blocks_is_8_412: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $248,%r15d + jae .L_16_blocks_overflow_427 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + jmp .L_16_blocks_ok_427 + +.L_16_blocks_overflow_427: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 +.L_16_blocks_ok_427: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $3,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vbroadcastf64x2 176(%rdi),%zmm31 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti32x4 $3,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm3,%zmm3{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vextracti32x4 $3,%zmm19,%xmm7 + subq $16 * (8 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_428 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_428 +.L_small_initial_partial_block_428: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_428: + + orq %r8,%r8 + je .L_after_reduction_428 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_428: + jmp .L_last_blocks_done_412 +.L_last_num_blocks_is_9_412: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $247,%r15d + jae .L_16_blocks_overflow_429 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %xmm27,%xmm3,%xmm4 + jmp .L_16_blocks_ok_429 + +.L_16_blocks_overflow_429: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %xmm29,%xmm4,%xmm4 +.L_16_blocks_ok_429: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $0,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%xmm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vbroadcastf64x2 176(%rdi),%zmm31 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %xmm30,%xmm4,%xmm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %xmm20,%xmm4,%xmm4 + vextracti32x4 $0,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %xmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm4,%zmm4{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %xmm29,%xmm4,%xmm20 + vextracti32x4 $0,%zmm20,%xmm7 + subq $16 * (9 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_430 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm20,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm20,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm20,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm20,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_430 +.L_small_initial_partial_block_430: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_430: + + orq %r8,%r8 + je .L_after_reduction_430 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_430: + jmp .L_last_blocks_done_412 +.L_last_num_blocks_is_10_412: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $246,%r15d + jae .L_16_blocks_overflow_431 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %ymm27,%ymm3,%ymm4 + jmp .L_16_blocks_ok_431 + +.L_16_blocks_overflow_431: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %ymm29,%ymm4,%ymm4 +.L_16_blocks_ok_431: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $1,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%ymm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vbroadcastf64x2 176(%rdi),%zmm31 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %ymm30,%ymm4,%ymm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %ymm20,%ymm4,%ymm4 + vextracti32x4 $1,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %ymm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm4,%zmm4{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %ymm29,%ymm4,%ymm20 + vextracti32x4 $1,%zmm20,%xmm7 + subq $16 * (10 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_432 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm20,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm20,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm20,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm20,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_432 +.L_small_initial_partial_block_432: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm20,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm20,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm20,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm20,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_432: + + orq %r8,%r8 + je .L_after_reduction_432 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_432: + jmp .L_last_blocks_done_412 +.L_last_num_blocks_is_11_412: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $245,%r15d + jae .L_16_blocks_overflow_433 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + jmp .L_16_blocks_ok_433 + +.L_16_blocks_overflow_433: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 +.L_16_blocks_ok_433: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $2,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vbroadcastf64x2 176(%rdi),%zmm31 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vextracti32x4 $2,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm4,%zmm4{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %zmm29,%zmm4,%zmm20 + vextracti32x4 $2,%zmm20,%xmm7 + subq $16 * (11 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_434 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_434 +.L_small_initial_partial_block_434: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm20,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm20,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm20,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm20,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_434: + + orq %r8,%r8 + je .L_after_reduction_434 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_434: + jmp .L_last_blocks_done_412 +.L_last_num_blocks_is_12_412: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $244,%r15d + jae .L_16_blocks_overflow_435 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + jmp .L_16_blocks_ok_435 + +.L_16_blocks_overflow_435: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 +.L_16_blocks_ok_435: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $3,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vbroadcastf64x2 176(%rdi),%zmm31 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vextracti32x4 $3,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm4,%zmm4{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %zmm29,%zmm4,%zmm20 + vextracti32x4 $3,%zmm20,%xmm7 + subq $16 * (12 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_436 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 160(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_436 +.L_small_initial_partial_block_436: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_436: + + orq %r8,%r8 + je .L_after_reduction_436 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_436: + jmp .L_last_blocks_done_412 +.L_last_num_blocks_is_13_412: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $243,%r15d + jae .L_16_blocks_overflow_437 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %xmm27,%xmm4,%xmm5 + jmp .L_16_blocks_ok_437 + +.L_16_blocks_overflow_437: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %xmm29,%xmm5,%xmm5 +.L_16_blocks_ok_437: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $0,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%xmm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vbroadcastf64x2 176(%rdi),%zmm31 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %xmm30,%xmm5,%xmm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %xmm21,%xmm5,%xmm5 + vextracti32x4 $0,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %xmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm5,%zmm5{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %zmm29,%zmm4,%zmm20 + vpshufb %xmm29,%xmm5,%xmm21 + vextracti32x4 $0,%zmm21,%xmm7 + subq $16 * (13 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_438 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 144(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm21,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm21,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm21,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm21,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_438 +.L_small_initial_partial_block_438: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 160(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_438: + + orq %r8,%r8 + je .L_after_reduction_438 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_438: + jmp .L_last_blocks_done_412 +.L_last_num_blocks_is_14_412: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $242,%r15d + jae .L_16_blocks_overflow_439 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %ymm27,%ymm4,%ymm5 + jmp .L_16_blocks_ok_439 + +.L_16_blocks_overflow_439: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %ymm29,%ymm5,%ymm5 +.L_16_blocks_ok_439: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $1,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%ymm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vbroadcastf64x2 176(%rdi),%zmm31 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %ymm30,%ymm5,%ymm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %ymm21,%ymm5,%ymm5 + vextracti32x4 $1,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %ymm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm5,%zmm5{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %zmm29,%zmm4,%zmm20 + vpshufb %ymm29,%ymm5,%ymm21 + vextracti32x4 $1,%zmm21,%xmm7 + subq $16 * (14 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_440 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 128(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm21,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm21,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm21,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm21,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_440 +.L_small_initial_partial_block_440: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 144(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm21,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm21,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm21,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm21,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_440: + + orq %r8,%r8 + je .L_after_reduction_440 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_440: + jmp .L_last_blocks_done_412 +.L_last_num_blocks_is_15_412: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $241,%r15d + jae .L_16_blocks_overflow_441 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp .L_16_blocks_ok_441 + +.L_16_blocks_overflow_441: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +.L_16_blocks_ok_441: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $2,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%zmm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vbroadcastf64x2 176(%rdi),%zmm31 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + vextracti32x4 $2,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %zmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm5,%zmm5{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %zmm29,%zmm4,%zmm20 + vpshufb %zmm29,%zmm5,%zmm21 + vextracti32x4 $2,%zmm21,%xmm7 + subq $16 * (15 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_442 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 112(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm21,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm21,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm21,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm21,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_442 +.L_small_initial_partial_block_442: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 128(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm21,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm21,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm21,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm21,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_442: + + orq %r8,%r8 + je .L_after_reduction_442 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_442: + jmp .L_last_blocks_done_412 +.L_last_num_blocks_is_16_412: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $240,%r15d + jae .L_16_blocks_overflow_443 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp .L_16_blocks_ok_443 + +.L_16_blocks_overflow_443: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +.L_16_blocks_ok_443: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $3,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%zmm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vbroadcastf64x2 176(%rdi),%zmm31 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + vextracti32x4 $3,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %zmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm5,%zmm5{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %zmm29,%zmm4,%zmm20 + vpshufb %zmm29,%zmm5,%zmm21 + vextracti32x4 $3,%zmm21,%xmm7 + subq $16 * (16 - 1),%r8 +.L_small_initial_partial_block_444: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 112(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm21,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm21,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm21,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm21,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_444: + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_444: + jmp .L_last_blocks_done_412 +.L_last_num_blocks_is_0_412: + vmovdqa64 1280(%rsp),%zmm13 + vmovdqu64 512(%rsp),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 1344(%rsp),%zmm13 + vmovdqu64 576(%rsp),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + vpternlogq $0x96,%zmm10,%zmm4,%zmm26 + vpternlogq $0x96,%zmm6,%zmm0,%zmm24 + vpternlogq $0x96,%zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + vmovdqa64 1408(%rsp),%zmm13 + vmovdqu64 640(%rsp),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 1472(%rsp),%zmm13 + vmovdqu64 704(%rsp),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + + vpternlogq $0x96,%zmm10,%zmm4,%zmm26 + vpternlogq $0x96,%zmm6,%zmm0,%zmm24 + vpternlogq $0x96,%zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + + vpsrldq $8,%zmm26,%zmm0 + vpslldq $8,%zmm26,%zmm3 + vpxorq %zmm0,%zmm24,%zmm24 + vpxorq %zmm3,%zmm25,%zmm25 + vextracti64x4 $1,%zmm24,%ymm0 + vpxorq %ymm0,%ymm24,%ymm24 + vextracti32x4 $1,%ymm24,%xmm0 + vpxorq %xmm0,%xmm24,%xmm24 + vextracti64x4 $1,%zmm25,%ymm3 + vpxorq %ymm3,%ymm25,%ymm25 + vextracti32x4 $1,%ymm25,%xmm3 + vpxorq %xmm3,%xmm25,%xmm25 + vmovdqa64 POLY2(%rip),%xmm4 + + + vpclmulqdq $0x01,%xmm25,%xmm4,%xmm0 + vpslldq $8,%xmm0,%xmm0 + vpxorq %xmm0,%xmm25,%xmm0 + + + vpclmulqdq $0x00,%xmm0,%xmm4,%xmm3 + vpsrldq $4,%xmm3,%xmm3 + vpclmulqdq $0x10,%xmm0,%xmm4,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm24,%xmm3,%xmm14 + +.L_last_blocks_done_412: + vpshufb %xmm29,%xmm2,%xmm2 + jmp .L_ghash_done_334 + +.L_message_below_32_blocks_334: + + + subq $256,%r8 + addq $256,%r11 + movl %r8d,%r10d + testq %r14,%r14 + jnz .L_skip_hkeys_precomputation_445 + vmovdqu64 640(%rsp),%zmm3 + + + vshufi64x2 $0x00,%zmm3,%zmm3,%zmm3 + + vmovdqu64 576(%rsp),%zmm4 + vmovdqu64 512(%rsp),%zmm5 + + vpclmulqdq $0x11,%zmm3,%zmm4,%zmm6 + vpclmulqdq $0x00,%zmm3,%zmm4,%zmm7 + vpclmulqdq $0x01,%zmm3,%zmm4,%zmm10 + vpclmulqdq $0x10,%zmm3,%zmm4,%zmm4 + vpxorq %zmm10,%zmm4,%zmm4 + + vpsrldq $8,%zmm4,%zmm10 + vpslldq $8,%zmm4,%zmm4 + vpxorq %zmm10,%zmm6,%zmm6 + vpxorq %zmm7,%zmm4,%zmm4 + + + + vmovdqu64 POLY2(%rip),%zmm10 + + vpclmulqdq $0x01,%zmm4,%zmm10,%zmm7 + vpslldq $8,%zmm7,%zmm7 + vpxorq %zmm7,%zmm4,%zmm4 + + + + vpclmulqdq $0x00,%zmm4,%zmm10,%zmm7 + vpsrldq $4,%zmm7,%zmm7 + vpclmulqdq $0x10,%zmm4,%zmm10,%zmm4 + vpslldq $4,%zmm4,%zmm4 + + vpternlogq $0x96,%zmm7,%zmm6,%zmm4 + + vmovdqu64 %zmm4,448(%rsp) + + vpclmulqdq $0x11,%zmm3,%zmm5,%zmm6 + vpclmulqdq $0x00,%zmm3,%zmm5,%zmm7 + vpclmulqdq $0x01,%zmm3,%zmm5,%zmm10 + vpclmulqdq $0x10,%zmm3,%zmm5,%zmm5 + vpxorq %zmm10,%zmm5,%zmm5 + + vpsrldq $8,%zmm5,%zmm10 + vpslldq $8,%zmm5,%zmm5 + vpxorq %zmm10,%zmm6,%zmm6 + vpxorq %zmm7,%zmm5,%zmm5 + + + + vmovdqu64 POLY2(%rip),%zmm10 + + vpclmulqdq $0x01,%zmm5,%zmm10,%zmm7 + vpslldq $8,%zmm7,%zmm7 + vpxorq %zmm7,%zmm5,%zmm5 + + + + vpclmulqdq $0x00,%zmm5,%zmm10,%zmm7 + vpsrldq $4,%zmm7,%zmm7 + vpclmulqdq $0x10,%zmm5,%zmm10,%zmm5 + vpslldq $4,%zmm5,%zmm5 + + vpternlogq $0x96,%zmm7,%zmm6,%zmm5 + + vmovdqu64 %zmm5,384(%rsp) + + vpclmulqdq $0x11,%zmm3,%zmm4,%zmm6 + vpclmulqdq $0x00,%zmm3,%zmm4,%zmm7 + vpclmulqdq $0x01,%zmm3,%zmm4,%zmm10 + vpclmulqdq $0x10,%zmm3,%zmm4,%zmm4 + vpxorq %zmm10,%zmm4,%zmm4 + + vpsrldq $8,%zmm4,%zmm10 + vpslldq $8,%zmm4,%zmm4 + vpxorq %zmm10,%zmm6,%zmm6 + vpxorq %zmm7,%zmm4,%zmm4 + + + + vmovdqu64 POLY2(%rip),%zmm10 + + vpclmulqdq $0x01,%zmm4,%zmm10,%zmm7 + vpslldq $8,%zmm7,%zmm7 + vpxorq %zmm7,%zmm4,%zmm4 + + + + vpclmulqdq $0x00,%zmm4,%zmm10,%zmm7 + vpsrldq $4,%zmm7,%zmm7 + vpclmulqdq $0x10,%zmm4,%zmm10,%zmm4 + vpslldq $4,%zmm4,%zmm4 + + vpternlogq $0x96,%zmm7,%zmm6,%zmm4 + + vmovdqu64 %zmm4,320(%rsp) + + vpclmulqdq $0x11,%zmm3,%zmm5,%zmm6 + vpclmulqdq $0x00,%zmm3,%zmm5,%zmm7 + vpclmulqdq $0x01,%zmm3,%zmm5,%zmm10 + vpclmulqdq $0x10,%zmm3,%zmm5,%zmm5 + vpxorq %zmm10,%zmm5,%zmm5 + + vpsrldq $8,%zmm5,%zmm10 + vpslldq $8,%zmm5,%zmm5 + vpxorq %zmm10,%zmm6,%zmm6 + vpxorq %zmm7,%zmm5,%zmm5 + + + + vmovdqu64 POLY2(%rip),%zmm10 + + vpclmulqdq $0x01,%zmm5,%zmm10,%zmm7 + vpslldq $8,%zmm7,%zmm7 + vpxorq %zmm7,%zmm5,%zmm5 + + + + vpclmulqdq $0x00,%zmm5,%zmm10,%zmm7 + vpsrldq $4,%zmm7,%zmm7 + vpclmulqdq $0x10,%zmm5,%zmm10,%zmm5 + vpslldq $4,%zmm5,%zmm5 + + vpternlogq $0x96,%zmm7,%zmm6,%zmm5 + + vmovdqu64 %zmm5,256(%rsp) +.L_skip_hkeys_precomputation_445: + movq $1,%r14 + andl $~15,%r10d + movl $512,%ebx + subl %r10d,%ebx + movl %r8d,%r10d + addl $15,%r10d + shrl $4,%r10d + je .L_last_num_blocks_is_0_446 + + cmpl $8,%r10d + je .L_last_num_blocks_is_8_446 + jb .L_last_num_blocks_is_7_1_446 + + + cmpl $12,%r10d + je .L_last_num_blocks_is_12_446 + jb .L_last_num_blocks_is_11_9_446 + + + cmpl $15,%r10d + je .L_last_num_blocks_is_15_446 + ja .L_last_num_blocks_is_16_446 + cmpl $14,%r10d + je .L_last_num_blocks_is_14_446 + jmp .L_last_num_blocks_is_13_446 + +.L_last_num_blocks_is_11_9_446: + + cmpl $10,%r10d + je .L_last_num_blocks_is_10_446 + ja .L_last_num_blocks_is_11_446 + jmp .L_last_num_blocks_is_9_446 + +.L_last_num_blocks_is_7_1_446: + cmpl $4,%r10d + je .L_last_num_blocks_is_4_446 + jb .L_last_num_blocks_is_3_1_446 + + cmpl $6,%r10d + ja .L_last_num_blocks_is_7_446 + je .L_last_num_blocks_is_6_446 + jmp .L_last_num_blocks_is_5_446 + +.L_last_num_blocks_is_3_1_446: + + cmpl $2,%r10d + ja .L_last_num_blocks_is_3_446 + je .L_last_num_blocks_is_2_446 +.L_last_num_blocks_is_1_446: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $255,%r15d + jae .L_16_blocks_overflow_447 + vpaddd %xmm28,%xmm2,%xmm0 + jmp .L_16_blocks_ok_447 + +.L_16_blocks_overflow_447: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %xmm29,%xmm0,%xmm0 +.L_16_blocks_ok_447: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $0,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%xmm17{%k1}{z} + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %xmm31,%xmm0,%xmm0 + vaesenclast %xmm30,%xmm0,%xmm0 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti32x4 $0,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %xmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm0,%zmm0{%k1}{z} + vpshufb %xmm29,%xmm0,%xmm17 + vextracti32x4 $0,%zmm17,%xmm7 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_448 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm17,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm17,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm17,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm17,%xmm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_448 +.L_small_initial_partial_block_448: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + + + vpsrldq $8,%zmm26,%zmm0 + vpslldq $8,%zmm26,%zmm3 + vpxorq %zmm0,%zmm24,%zmm24 + vpxorq %zmm3,%zmm25,%zmm25 + vextracti64x4 $1,%zmm24,%ymm0 + vpxorq %ymm0,%ymm24,%ymm24 + vextracti32x4 $1,%ymm24,%xmm0 + vpxorq %xmm0,%xmm24,%xmm24 + vextracti64x4 $1,%zmm25,%ymm3 + vpxorq %ymm3,%ymm25,%ymm25 + vextracti32x4 $1,%ymm25,%xmm3 + vpxorq %xmm3,%xmm25,%xmm25 + vmovdqa64 POLY2(%rip),%xmm0 + + + vpclmulqdq $0x01,%xmm25,%xmm0,%xmm3 + vpslldq $8,%xmm3,%xmm3 + vpxorq %xmm3,%xmm25,%xmm3 + + + vpclmulqdq $0x00,%xmm3,%xmm0,%xmm4 + vpsrldq $4,%xmm4,%xmm4 + vpclmulqdq $0x10,%xmm3,%xmm0,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm24,%xmm4,%xmm14 + + + + + + + + + + + + + vpxorq %xmm7,%xmm14,%xmm14 + + jmp .L_after_reduction_448 +.L_small_initial_compute_done_448: +.L_after_reduction_448: + jmp .L_last_blocks_done_446 +.L_last_num_blocks_is_2_446: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $254,%r15d + jae .L_16_blocks_overflow_449 + vpaddd %ymm28,%ymm2,%ymm0 + jmp .L_16_blocks_ok_449 + +.L_16_blocks_overflow_449: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %ymm29,%ymm0,%ymm0 +.L_16_blocks_ok_449: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $1,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%ymm17{%k1}{z} + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %ymm31,%ymm0,%ymm0 + vaesenclast %ymm30,%ymm0,%ymm0 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %ymm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm0,%zmm0{%k1}{z} + vpshufb %ymm29,%ymm0,%ymm17 + vextracti32x4 $1,%zmm17,%xmm7 + subq $16 * (2 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_450 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm17,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm17,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm17,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm17,%ymm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_450 +.L_small_initial_partial_block_450: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm17,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm17,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm17,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm17,%xmm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_450: + + orq %r8,%r8 + je .L_after_reduction_450 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_450: + jmp .L_last_blocks_done_446 +.L_last_num_blocks_is_3_446: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $253,%r15d + jae .L_16_blocks_overflow_451 + vpaddd %zmm28,%zmm2,%zmm0 + jmp .L_16_blocks_ok_451 + +.L_16_blocks_overflow_451: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %zmm29,%zmm0,%zmm0 +.L_16_blocks_ok_451: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $2,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm0,%zmm0 + vpxorq %zmm17,%zmm0,%zmm0 + vextracti32x4 $2,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm0,%zmm0{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vextracti32x4 $2,%zmm17,%xmm7 + subq $16 * (3 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_452 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_452 +.L_small_initial_partial_block_452: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm17,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm17,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm17,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm17,%ymm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_452: + + orq %r8,%r8 + je .L_after_reduction_452 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_452: + jmp .L_last_blocks_done_446 +.L_last_num_blocks_is_4_446: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $252,%r15d + jae .L_16_blocks_overflow_453 + vpaddd %zmm28,%zmm2,%zmm0 + jmp .L_16_blocks_ok_453 + +.L_16_blocks_overflow_453: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %zmm29,%zmm0,%zmm0 +.L_16_blocks_ok_453: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $3,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm0,%zmm0 + vpxorq %zmm17,%zmm0,%zmm0 + vextracti32x4 $3,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm0,%zmm0{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vextracti32x4 $3,%zmm17,%xmm7 + subq $16 * (4 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_454 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_454 +.L_small_initial_partial_block_454: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_454: + + orq %r8,%r8 + je .L_after_reduction_454 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_454: + jmp .L_last_blocks_done_446 +.L_last_num_blocks_is_5_446: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $251,%r15d + jae .L_16_blocks_overflow_455 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %xmm27,%xmm0,%xmm3 + jmp .L_16_blocks_ok_455 + +.L_16_blocks_overflow_455: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %xmm29,%xmm3,%xmm3 +.L_16_blocks_ok_455: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $0,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%xmm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %xmm30,%xmm3,%xmm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %xmm19,%xmm3,%xmm3 + vextracti32x4 $0,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %xmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm3,%zmm3{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %xmm29,%xmm3,%xmm19 + vextracti32x4 $0,%zmm19,%xmm7 + subq $16 * (5 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_456 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm19,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm19,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm19,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm19,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_456 +.L_small_initial_partial_block_456: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_456: + + orq %r8,%r8 + je .L_after_reduction_456 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_456: + jmp .L_last_blocks_done_446 +.L_last_num_blocks_is_6_446: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $250,%r15d + jae .L_16_blocks_overflow_457 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %ymm27,%ymm0,%ymm3 + jmp .L_16_blocks_ok_457 + +.L_16_blocks_overflow_457: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %ymm29,%ymm3,%ymm3 +.L_16_blocks_ok_457: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $1,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%ymm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %ymm30,%ymm3,%ymm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %ymm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm3,%zmm3{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %ymm29,%ymm3,%ymm19 + vextracti32x4 $1,%zmm19,%xmm7 + subq $16 * (6 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_458 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm19,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm19,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm19,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm19,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_458 +.L_small_initial_partial_block_458: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm19,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm19,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm19,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm19,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_458: + + orq %r8,%r8 + je .L_after_reduction_458 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_458: + jmp .L_last_blocks_done_446 +.L_last_num_blocks_is_7_446: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $249,%r15d + jae .L_16_blocks_overflow_459 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + jmp .L_16_blocks_ok_459 + +.L_16_blocks_overflow_459: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 +.L_16_blocks_ok_459: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $2,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti32x4 $2,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm3,%zmm3{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vextracti32x4 $2,%zmm19,%xmm7 + subq $16 * (7 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_460 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_460 +.L_small_initial_partial_block_460: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm19,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm19,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm19,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm19,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_460: + + orq %r8,%r8 + je .L_after_reduction_460 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_460: + jmp .L_last_blocks_done_446 +.L_last_num_blocks_is_8_446: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $248,%r15d + jae .L_16_blocks_overflow_461 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + jmp .L_16_blocks_ok_461 + +.L_16_blocks_overflow_461: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 +.L_16_blocks_ok_461: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $3,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti32x4 $3,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm3,%zmm3{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vextracti32x4 $3,%zmm19,%xmm7 + subq $16 * (8 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_462 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_462 +.L_small_initial_partial_block_462: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_462: + + orq %r8,%r8 + je .L_after_reduction_462 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_462: + jmp .L_last_blocks_done_446 +.L_last_num_blocks_is_9_446: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $247,%r15d + jae .L_16_blocks_overflow_463 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %xmm27,%xmm3,%xmm4 + jmp .L_16_blocks_ok_463 + +.L_16_blocks_overflow_463: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %xmm29,%xmm4,%xmm4 +.L_16_blocks_ok_463: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $0,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%xmm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %xmm30,%xmm4,%xmm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %xmm20,%xmm4,%xmm4 + vextracti32x4 $0,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %xmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm4,%zmm4{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %xmm29,%xmm4,%xmm20 + vextracti32x4 $0,%zmm20,%xmm7 + subq $16 * (9 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_464 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm20,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm20,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm20,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm20,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_464 +.L_small_initial_partial_block_464: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_464: + + orq %r8,%r8 + je .L_after_reduction_464 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_464: + jmp .L_last_blocks_done_446 +.L_last_num_blocks_is_10_446: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $246,%r15d + jae .L_16_blocks_overflow_465 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %ymm27,%ymm3,%ymm4 + jmp .L_16_blocks_ok_465 + +.L_16_blocks_overflow_465: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %ymm29,%ymm4,%ymm4 +.L_16_blocks_ok_465: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $1,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%ymm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %ymm30,%ymm4,%ymm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %ymm20,%ymm4,%ymm4 + vextracti32x4 $1,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %ymm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm4,%zmm4{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %ymm29,%ymm4,%ymm20 + vextracti32x4 $1,%zmm20,%xmm7 + subq $16 * (10 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_466 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm20,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm20,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm20,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm20,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_466 +.L_small_initial_partial_block_466: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm20,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm20,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm20,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm20,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_466: + + orq %r8,%r8 + je .L_after_reduction_466 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_466: + jmp .L_last_blocks_done_446 +.L_last_num_blocks_is_11_446: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $245,%r15d + jae .L_16_blocks_overflow_467 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + jmp .L_16_blocks_ok_467 + +.L_16_blocks_overflow_467: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 +.L_16_blocks_ok_467: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $2,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vextracti32x4 $2,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm4,%zmm4{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %zmm29,%zmm4,%zmm20 + vextracti32x4 $2,%zmm20,%xmm7 + subq $16 * (11 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_468 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_468 +.L_small_initial_partial_block_468: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm20,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm20,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm20,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm20,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_468: + + orq %r8,%r8 + je .L_after_reduction_468 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_468: + jmp .L_last_blocks_done_446 +.L_last_num_blocks_is_12_446: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $244,%r15d + jae .L_16_blocks_overflow_469 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + jmp .L_16_blocks_ok_469 + +.L_16_blocks_overflow_469: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 +.L_16_blocks_ok_469: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $3,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vextracti32x4 $3,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm4,%zmm4{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %zmm29,%zmm4,%zmm20 + vextracti32x4 $3,%zmm20,%xmm7 + subq $16 * (12 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_470 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 160(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_470 +.L_small_initial_partial_block_470: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_470: + + orq %r8,%r8 + je .L_after_reduction_470 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_470: + jmp .L_last_blocks_done_446 +.L_last_num_blocks_is_13_446: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $243,%r15d + jae .L_16_blocks_overflow_471 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %xmm27,%xmm4,%xmm5 + jmp .L_16_blocks_ok_471 + +.L_16_blocks_overflow_471: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %xmm29,%xmm5,%xmm5 +.L_16_blocks_ok_471: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $0,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%xmm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %xmm30,%xmm5,%xmm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %xmm21,%xmm5,%xmm5 + vextracti32x4 $0,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %xmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm5,%zmm5{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %zmm29,%zmm4,%zmm20 + vpshufb %xmm29,%xmm5,%xmm21 + vextracti32x4 $0,%zmm21,%xmm7 + subq $16 * (13 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_472 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 144(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm21,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm21,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm21,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm21,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_472 +.L_small_initial_partial_block_472: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 160(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_472: + + orq %r8,%r8 + je .L_after_reduction_472 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_472: + jmp .L_last_blocks_done_446 +.L_last_num_blocks_is_14_446: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $242,%r15d + jae .L_16_blocks_overflow_473 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %ymm27,%ymm4,%ymm5 + jmp .L_16_blocks_ok_473 + +.L_16_blocks_overflow_473: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %ymm29,%ymm5,%ymm5 +.L_16_blocks_ok_473: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $1,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%ymm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %ymm30,%ymm5,%ymm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %ymm21,%ymm5,%ymm5 + vextracti32x4 $1,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %ymm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm5,%zmm5{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %zmm29,%zmm4,%zmm20 + vpshufb %ymm29,%ymm5,%ymm21 + vextracti32x4 $1,%zmm21,%xmm7 + subq $16 * (14 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_474 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 128(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm21,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm21,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm21,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm21,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_474 +.L_small_initial_partial_block_474: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 144(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm21,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm21,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm21,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm21,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_474: + + orq %r8,%r8 + je .L_after_reduction_474 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_474: + jmp .L_last_blocks_done_446 +.L_last_num_blocks_is_15_446: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $241,%r15d + jae .L_16_blocks_overflow_475 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp .L_16_blocks_ok_475 + +.L_16_blocks_overflow_475: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +.L_16_blocks_ok_475: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $2,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%zmm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + vextracti32x4 $2,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %zmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm5,%zmm5{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %zmm29,%zmm4,%zmm20 + vpshufb %zmm29,%zmm5,%zmm21 + vextracti32x4 $2,%zmm21,%xmm7 + subq $16 * (15 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_476 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 112(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm21,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm21,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm21,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm21,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_476 +.L_small_initial_partial_block_476: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 128(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm21,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm21,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm21,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm21,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_476: + + orq %r8,%r8 + je .L_after_reduction_476 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_476: + jmp .L_last_blocks_done_446 +.L_last_num_blocks_is_16_446: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $240,%r15d + jae .L_16_blocks_overflow_477 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp .L_16_blocks_ok_477 + +.L_16_blocks_overflow_477: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +.L_16_blocks_ok_477: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $3,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%zmm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + vextracti32x4 $3,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %zmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm5,%zmm5{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %zmm29,%zmm4,%zmm20 + vpshufb %zmm29,%zmm5,%zmm21 + vextracti32x4 $3,%zmm21,%xmm7 + subq $16 * (16 - 1),%r8 +.L_small_initial_partial_block_478: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 112(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm21,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm21,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm21,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm21,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_478: + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_478: + jmp .L_last_blocks_done_446 +.L_last_num_blocks_is_0_446: + vmovdqa64 768(%rsp),%zmm13 + vpxorq %zmm14,%zmm13,%zmm13 + vmovdqu64 0(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 832(%rsp),%zmm13 + vmovdqu64 64(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + vpxorq %zmm10,%zmm4,%zmm26 + vpxorq %zmm6,%zmm0,%zmm24 + vpxorq %zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + vmovdqa64 896(%rsp),%zmm13 + vmovdqu64 128(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 960(%rsp),%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + + vpternlogq $0x96,%zmm10,%zmm4,%zmm26 + vpternlogq $0x96,%zmm6,%zmm0,%zmm24 + vpternlogq $0x96,%zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + + vpsrldq $8,%zmm26,%zmm0 + vpslldq $8,%zmm26,%zmm3 + vpxorq %zmm0,%zmm24,%zmm24 + vpxorq %zmm3,%zmm25,%zmm25 + vextracti64x4 $1,%zmm24,%ymm0 + vpxorq %ymm0,%ymm24,%ymm24 + vextracti32x4 $1,%ymm24,%xmm0 + vpxorq %xmm0,%xmm24,%xmm24 + vextracti64x4 $1,%zmm25,%ymm3 + vpxorq %ymm3,%ymm25,%ymm25 + vextracti32x4 $1,%ymm25,%xmm3 + vpxorq %xmm3,%xmm25,%xmm25 + vmovdqa64 POLY2(%rip),%xmm4 + + + vpclmulqdq $0x01,%xmm25,%xmm4,%xmm0 + vpslldq $8,%xmm0,%xmm0 + vpxorq %xmm0,%xmm25,%xmm0 + + + vpclmulqdq $0x00,%xmm0,%xmm4,%xmm3 + vpsrldq $4,%xmm3,%xmm3 + vpclmulqdq $0x10,%xmm0,%xmm4,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm24,%xmm3,%xmm14 + +.L_last_blocks_done_446: + vpshufb %xmm29,%xmm2,%xmm2 + jmp .L_ghash_done_334 + +.L_message_below_equal_16_blocks_334: + + + movl %r8d,%r12d + addl $15,%r12d + shrl $4,%r12d + cmpq $8,%r12 + je .L_small_initial_num_blocks_is_8_479 + jl .L_small_initial_num_blocks_is_7_1_479 + + + cmpq $12,%r12 + je .L_small_initial_num_blocks_is_12_479 + jl .L_small_initial_num_blocks_is_11_9_479 + + + cmpq $16,%r12 + je .L_small_initial_num_blocks_is_16_479 + cmpq $15,%r12 + je .L_small_initial_num_blocks_is_15_479 + cmpq $14,%r12 + je .L_small_initial_num_blocks_is_14_479 + jmp .L_small_initial_num_blocks_is_13_479 + +.L_small_initial_num_blocks_is_11_9_479: + + cmpq $11,%r12 + je .L_small_initial_num_blocks_is_11_479 + cmpq $10,%r12 + je .L_small_initial_num_blocks_is_10_479 + jmp .L_small_initial_num_blocks_is_9_479 + +.L_small_initial_num_blocks_is_7_1_479: + cmpq $4,%r12 + je .L_small_initial_num_blocks_is_4_479 + jl .L_small_initial_num_blocks_is_3_1_479 + + cmpq $7,%r12 + je .L_small_initial_num_blocks_is_7_479 + cmpq $6,%r12 + je .L_small_initial_num_blocks_is_6_479 + jmp .L_small_initial_num_blocks_is_5_479 + +.L_small_initial_num_blocks_is_3_1_479: + + cmpq $3,%r12 + je .L_small_initial_num_blocks_is_3_479 + cmpq $2,%r12 + je .L_small_initial_num_blocks_is_2_479 + + + + + +.L_small_initial_num_blocks_is_1_479: + vmovdqa64 SHUF_MASK(%rip),%xmm29 + vpaddd ONE(%rip),%xmm2,%xmm0 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $0,%zmm0,%xmm2 + vpshufb %xmm29,%xmm0,%xmm0 + vmovdqu8 0(%rcx,%r11,1),%xmm6{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %xmm15,%xmm0,%xmm0 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %xmm15,%xmm0,%xmm0 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %xmm15,%xmm0,%xmm0 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %xmm15,%xmm0,%xmm0 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %xmm15,%xmm0,%xmm0 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %xmm15,%xmm0,%xmm0 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %xmm15,%xmm0,%xmm0 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %xmm15,%xmm0,%xmm0 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %xmm15,%xmm0,%xmm0 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %xmm15,%xmm0,%xmm0 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenc %xmm15,%xmm0,%xmm0 + vbroadcastf64x2 176(%rdi),%zmm15 + vaesenc %xmm15,%xmm0,%xmm0 + vbroadcastf64x2 192(%rdi),%zmm15 + vaesenc %xmm15,%xmm0,%xmm0 + vbroadcastf64x2 208(%rdi),%zmm15 + vaesenc %xmm15,%xmm0,%xmm0 + vbroadcastf64x2 224(%rdi),%zmm15 + vaesenclast %xmm15,%xmm0,%xmm0 + vpxorq %xmm6,%xmm0,%xmm0 + vextracti32x4 $0,%zmm0,%xmm12 + movq %r9,%r10 + vmovdqu8 %xmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm0,%zmm0{%k1}{z} + vpshufb %xmm29,%xmm0,%xmm6 + vextracti32x4 $0,%zmm6,%xmm13 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_480 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 336(%rsi),%xmm20 + vpclmulqdq $0x01,%xmm20,%xmm6,%xmm4 + vpclmulqdq $0x10,%xmm20,%xmm6,%xmm5 + vpclmulqdq $0x11,%xmm20,%xmm6,%xmm0 + vpclmulqdq $0x00,%xmm20,%xmm6,%xmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_480 +.L_small_initial_partial_block_480: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + + + + + + + + + + + + vpxorq %xmm13,%xmm14,%xmm14 + + jmp .L_after_reduction_480 +.L_small_initial_compute_done_480: +.L_after_reduction_480: + jmp .L_small_initial_blocks_encrypted_479 +.L_small_initial_num_blocks_is_2_479: + vmovdqa64 SHUF_MASK(%rip),%ymm29 + vshufi64x2 $0,%ymm2,%ymm2,%ymm0 + vpaddd ddq_add_1234(%rip),%ymm0,%ymm0 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $1,%zmm0,%xmm2 + vpshufb %ymm29,%ymm0,%ymm0 + vmovdqu8 0(%rcx,%r11,1),%ymm6{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %ymm15,%ymm0,%ymm0 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %ymm15,%ymm0,%ymm0 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %ymm15,%ymm0,%ymm0 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %ymm15,%ymm0,%ymm0 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %ymm15,%ymm0,%ymm0 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %ymm15,%ymm0,%ymm0 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %ymm15,%ymm0,%ymm0 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %ymm15,%ymm0,%ymm0 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %ymm15,%ymm0,%ymm0 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %ymm15,%ymm0,%ymm0 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenc %ymm15,%ymm0,%ymm0 + vbroadcastf64x2 176(%rdi),%zmm15 + vaesenc %ymm15,%ymm0,%ymm0 + vbroadcastf64x2 192(%rdi),%zmm15 + vaesenc %ymm15,%ymm0,%ymm0 + vbroadcastf64x2 208(%rdi),%zmm15 + vaesenc %ymm15,%ymm0,%ymm0 + vbroadcastf64x2 224(%rdi),%zmm15 + vaesenclast %ymm15,%ymm0,%ymm0 + vpxorq %ymm6,%ymm0,%ymm0 + vextracti32x4 $1,%zmm0,%xmm12 + movq %r9,%r10 + vmovdqu8 %ymm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm0,%zmm0{%k1}{z} + vpshufb %ymm29,%ymm0,%ymm6 + vextracti32x4 $1,%zmm6,%xmm13 + subq $16 * (2 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_481 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 320(%rsi),%ymm20 + vpclmulqdq $0x01,%ymm20,%ymm6,%ymm4 + vpclmulqdq $0x10,%ymm20,%ymm6,%ymm5 + vpclmulqdq $0x11,%ymm20,%ymm6,%ymm0 + vpclmulqdq $0x00,%ymm20,%ymm6,%ymm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_481 +.L_small_initial_partial_block_481: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 336(%rsi),%xmm20 + vpclmulqdq $0x01,%xmm20,%xmm6,%xmm4 + vpclmulqdq $0x10,%xmm20,%xmm6,%xmm5 + vpclmulqdq $0x11,%xmm20,%xmm6,%xmm0 + vpclmulqdq $0x00,%xmm20,%xmm6,%xmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_481: + + orq %r8,%r8 + je .L_after_reduction_481 + vpxorq %xmm13,%xmm14,%xmm14 +.L_after_reduction_481: + jmp .L_small_initial_blocks_encrypted_479 +.L_small_initial_num_blocks_is_3_479: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $2,%zmm0,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vmovdqu8 0(%rcx,%r11,1),%zmm6{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 176(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 192(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 208(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 224(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vpxorq %zmm6,%zmm0,%zmm0 + vextracti32x4 $2,%zmm0,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm0,%zmm0{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm6 + vextracti32x4 $2,%zmm6,%xmm13 + subq $16 * (3 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_482 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 304(%rsi),%ymm20 + vinserti64x2 $2,336(%rsi),%zmm20,%zmm20 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_482 +.L_small_initial_partial_block_482: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 320(%rsi),%ymm20 + vpclmulqdq $0x01,%ymm20,%ymm6,%ymm4 + vpclmulqdq $0x10,%ymm20,%ymm6,%ymm5 + vpclmulqdq $0x11,%ymm20,%ymm6,%ymm0 + vpclmulqdq $0x00,%ymm20,%ymm6,%ymm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_482: + + orq %r8,%r8 + je .L_after_reduction_482 + vpxorq %xmm13,%xmm14,%xmm14 +.L_after_reduction_482: + jmp .L_small_initial_blocks_encrypted_479 +.L_small_initial_num_blocks_is_4_479: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $3,%zmm0,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vmovdqu8 0(%rcx,%r11,1),%zmm6{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 176(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 192(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 208(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 224(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vpxorq %zmm6,%zmm0,%zmm0 + vextracti32x4 $3,%zmm0,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm0,%zmm0{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm6 + vextracti32x4 $3,%zmm6,%xmm13 + subq $16 * (4 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_483 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 288(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm19 + + vpxorq %zmm19,%zmm17,%zmm17 + vpsrldq $8,%zmm17,%zmm4 + vpslldq $8,%zmm17,%zmm5 + vpxorq %zmm4,%zmm15,%zmm0 + vpxorq %zmm5,%zmm16,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_483 +.L_small_initial_partial_block_483: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 304(%rsi),%ymm20 + vinserti64x2 $2,336(%rsi),%zmm20,%zmm20 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_483: + + orq %r8,%r8 + je .L_after_reduction_483 + vpxorq %xmm13,%xmm14,%xmm14 +.L_after_reduction_483: + jmp .L_small_initial_blocks_encrypted_479 +.L_small_initial_num_blocks_is_5_479: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd ddq_add_5678(%rip),%zmm2,%zmm3 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + subq $64,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $0,%zmm3,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %xmm29,%xmm3,%xmm3 + vmovdqu8 0(%rcx,%r11,1),%zmm6 + vmovdqu8 64(%rcx,%r11,1),%xmm7{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %xmm15,%xmm3,%xmm3 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %xmm15,%xmm3,%xmm3 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %xmm15,%xmm3,%xmm3 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %xmm15,%xmm3,%xmm3 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %xmm15,%xmm3,%xmm3 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %xmm15,%xmm3,%xmm3 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %xmm15,%xmm3,%xmm3 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %xmm15,%xmm3,%xmm3 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %xmm15,%xmm3,%xmm3 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %xmm15,%xmm3,%xmm3 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %xmm15,%xmm3,%xmm3 + vbroadcastf64x2 176(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %xmm15,%xmm3,%xmm3 + vbroadcastf64x2 192(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %xmm15,%xmm3,%xmm3 + vbroadcastf64x2 208(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %xmm15,%xmm3,%xmm3 + vbroadcastf64x2 224(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vaesenclast %xmm15,%xmm3,%xmm3 + vpxorq %zmm6,%zmm0,%zmm0 + vpxorq %xmm7,%xmm3,%xmm3 + vextracti32x4 $0,%zmm3,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %xmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm3,%zmm3{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm6 + vpshufb %xmm29,%xmm3,%xmm7 + vextracti32x4 $0,%zmm7,%xmm13 + subq $16 * (5 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_484 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 272(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm19 + vmovdqu64 336(%rsi),%xmm20 + vpclmulqdq $0x01,%xmm20,%xmm7,%xmm4 + vpclmulqdq $0x10,%xmm20,%xmm7,%xmm5 + vpclmulqdq $0x11,%xmm20,%xmm7,%xmm0 + vpclmulqdq $0x00,%xmm20,%xmm7,%xmm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_484 +.L_small_initial_partial_block_484: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 288(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm19 + + vpxorq %zmm19,%zmm17,%zmm17 + vpsrldq $8,%zmm17,%zmm4 + vpslldq $8,%zmm17,%zmm5 + vpxorq %zmm4,%zmm15,%zmm0 + vpxorq %zmm5,%zmm16,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_484: + + orq %r8,%r8 + je .L_after_reduction_484 + vpxorq %xmm13,%xmm14,%xmm14 +.L_after_reduction_484: + jmp .L_small_initial_blocks_encrypted_479 +.L_small_initial_num_blocks_is_6_479: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd ddq_add_5678(%rip),%zmm2,%zmm3 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + subq $64,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $1,%zmm3,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %ymm29,%ymm3,%ymm3 + vmovdqu8 0(%rcx,%r11,1),%zmm6 + vmovdqu8 64(%rcx,%r11,1),%ymm7{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %ymm15,%ymm3,%ymm3 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %ymm15,%ymm3,%ymm3 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %ymm15,%ymm3,%ymm3 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %ymm15,%ymm3,%ymm3 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %ymm15,%ymm3,%ymm3 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %ymm15,%ymm3,%ymm3 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %ymm15,%ymm3,%ymm3 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %ymm15,%ymm3,%ymm3 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %ymm15,%ymm3,%ymm3 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %ymm15,%ymm3,%ymm3 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %ymm15,%ymm3,%ymm3 + vbroadcastf64x2 176(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %ymm15,%ymm3,%ymm3 + vbroadcastf64x2 192(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %ymm15,%ymm3,%ymm3 + vbroadcastf64x2 208(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %ymm15,%ymm3,%ymm3 + vbroadcastf64x2 224(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vaesenclast %ymm15,%ymm3,%ymm3 + vpxorq %zmm6,%zmm0,%zmm0 + vpxorq %ymm7,%ymm3,%ymm3 + vextracti32x4 $1,%zmm3,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %ymm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm3,%zmm3{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm6 + vpshufb %ymm29,%ymm3,%ymm7 + vextracti32x4 $1,%zmm7,%xmm13 + subq $16 * (6 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_485 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 256(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm19 + vmovdqu64 320(%rsi),%ymm20 + vpclmulqdq $0x01,%ymm20,%ymm7,%ymm4 + vpclmulqdq $0x10,%ymm20,%ymm7,%ymm5 + vpclmulqdq $0x11,%ymm20,%ymm7,%ymm0 + vpclmulqdq $0x00,%ymm20,%ymm7,%ymm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_485 +.L_small_initial_partial_block_485: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 272(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm19 + vmovdqu64 336(%rsi),%xmm20 + vpclmulqdq $0x01,%xmm20,%xmm7,%xmm4 + vpclmulqdq $0x10,%xmm20,%xmm7,%xmm5 + vpclmulqdq $0x11,%xmm20,%xmm7,%xmm0 + vpclmulqdq $0x00,%xmm20,%xmm7,%xmm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_485: + + orq %r8,%r8 + je .L_after_reduction_485 + vpxorq %xmm13,%xmm14,%xmm14 +.L_after_reduction_485: + jmp .L_small_initial_blocks_encrypted_479 +.L_small_initial_num_blocks_is_7_479: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd ddq_add_5678(%rip),%zmm2,%zmm3 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + subq $64,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $2,%zmm3,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vmovdqu8 0(%rcx,%r11,1),%zmm6 + vmovdqu8 64(%rcx,%r11,1),%zmm7{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 176(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 192(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 208(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 224(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vaesenclast %zmm15,%zmm3,%zmm3 + vpxorq %zmm6,%zmm0,%zmm0 + vpxorq %zmm7,%zmm3,%zmm3 + vextracti32x4 $2,%zmm3,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm3,%zmm3{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm6 + vpshufb %zmm29,%zmm3,%zmm7 + vextracti32x4 $2,%zmm7,%xmm13 + subq $16 * (7 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_486 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 240(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm19 + vmovdqu64 304(%rsi),%ymm20 + vinserti64x2 $2,336(%rsi),%zmm20,%zmm20 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm5 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_486 +.L_small_initial_partial_block_486: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 256(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm19 + vmovdqu64 320(%rsi),%ymm20 + vpclmulqdq $0x01,%ymm20,%ymm7,%ymm4 + vpclmulqdq $0x10,%ymm20,%ymm7,%ymm5 + vpclmulqdq $0x11,%ymm20,%ymm7,%ymm0 + vpclmulqdq $0x00,%ymm20,%ymm7,%ymm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_486: + + orq %r8,%r8 + je .L_after_reduction_486 + vpxorq %xmm13,%xmm14,%xmm14 +.L_after_reduction_486: + jmp .L_small_initial_blocks_encrypted_479 +.L_small_initial_num_blocks_is_8_479: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd ddq_add_5678(%rip),%zmm2,%zmm3 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + subq $64,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $3,%zmm3,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vmovdqu8 0(%rcx,%r11,1),%zmm6 + vmovdqu8 64(%rcx,%r11,1),%zmm7{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 176(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 192(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 208(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 224(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vaesenclast %zmm15,%zmm3,%zmm3 + vpxorq %zmm6,%zmm0,%zmm0 + vpxorq %zmm7,%zmm3,%zmm3 + vextracti32x4 $3,%zmm3,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm3,%zmm3{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm6 + vpshufb %zmm29,%zmm3,%zmm7 + vextracti32x4 $3,%zmm7,%xmm13 + subq $16 * (8 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_487 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 224(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 288(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vpxorq %zmm15,%zmm0,%zmm15 + vpxorq %zmm16,%zmm3,%zmm16 + vpxorq %zmm17,%zmm4,%zmm17 + vpxorq %zmm19,%zmm5,%zmm19 + + vpxorq %zmm19,%zmm17,%zmm17 + vpsrldq $8,%zmm17,%zmm4 + vpslldq $8,%zmm17,%zmm5 + vpxorq %zmm4,%zmm15,%zmm0 + vpxorq %zmm5,%zmm16,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_487 +.L_small_initial_partial_block_487: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 240(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm19 + vmovdqu64 304(%rsi),%ymm20 + vinserti64x2 $2,336(%rsi),%zmm20,%zmm20 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm5 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_487: + + orq %r8,%r8 + je .L_after_reduction_487 + vpxorq %xmm13,%xmm14,%xmm14 +.L_after_reduction_487: + jmp .L_small_initial_blocks_encrypted_479 +.L_small_initial_num_blocks_is_9_479: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd ddq_add_5678(%rip),%zmm2,%zmm3 + vpaddd ddq_add_8888(%rip),%zmm0,%zmm4 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + subq $128,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $0,%zmm4,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %xmm29,%xmm4,%xmm4 + vmovdqu8 0(%rcx,%r11,1),%zmm6 + vmovdqu8 64(%rcx,%r11,1),%zmm7 + vmovdqu8 128(%rcx,%r11,1),%xmm10{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm15,%zmm3,%zmm3 + vpxorq %xmm15,%xmm4,%xmm4 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %xmm15,%xmm4,%xmm4 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %xmm15,%xmm4,%xmm4 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %xmm15,%xmm4,%xmm4 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %xmm15,%xmm4,%xmm4 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %xmm15,%xmm4,%xmm4 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %xmm15,%xmm4,%xmm4 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %xmm15,%xmm4,%xmm4 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %xmm15,%xmm4,%xmm4 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %xmm15,%xmm4,%xmm4 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %xmm15,%xmm4,%xmm4 + vbroadcastf64x2 176(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %xmm15,%xmm4,%xmm4 + vbroadcastf64x2 192(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %xmm15,%xmm4,%xmm4 + vbroadcastf64x2 208(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %xmm15,%xmm4,%xmm4 + vbroadcastf64x2 224(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vaesenclast %zmm15,%zmm3,%zmm3 + vaesenclast %xmm15,%xmm4,%xmm4 + vpxorq %zmm6,%zmm0,%zmm0 + vpxorq %zmm7,%zmm3,%zmm3 + vpxorq %xmm10,%xmm4,%xmm4 + vextracti32x4 $0,%zmm4,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %xmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm4,%zmm4{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm6 + vpshufb %zmm29,%zmm3,%zmm7 + vpshufb %xmm29,%xmm4,%xmm10 + vextracti32x4 $0,%zmm10,%xmm13 + subq $16 * (9 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_488 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 208(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 272(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vpxorq %zmm15,%zmm0,%zmm15 + vpxorq %zmm16,%zmm3,%zmm16 + vpxorq %zmm17,%zmm4,%zmm17 + vpxorq %zmm19,%zmm5,%zmm19 + vmovdqu64 336(%rsi),%xmm20 + vpclmulqdq $0x01,%xmm20,%xmm10,%xmm4 + vpclmulqdq $0x10,%xmm20,%xmm10,%xmm5 + vpclmulqdq $0x11,%xmm20,%xmm10,%xmm0 + vpclmulqdq $0x00,%xmm20,%xmm10,%xmm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_488 +.L_small_initial_partial_block_488: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 224(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 288(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vpxorq %zmm15,%zmm0,%zmm15 + vpxorq %zmm16,%zmm3,%zmm16 + vpxorq %zmm17,%zmm4,%zmm17 + vpxorq %zmm19,%zmm5,%zmm19 + + vpxorq %zmm19,%zmm17,%zmm17 + vpsrldq $8,%zmm17,%zmm4 + vpslldq $8,%zmm17,%zmm5 + vpxorq %zmm4,%zmm15,%zmm0 + vpxorq %zmm5,%zmm16,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_488: + + orq %r8,%r8 + je .L_after_reduction_488 + vpxorq %xmm13,%xmm14,%xmm14 +.L_after_reduction_488: + jmp .L_small_initial_blocks_encrypted_479 +.L_small_initial_num_blocks_is_10_479: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd ddq_add_5678(%rip),%zmm2,%zmm3 + vpaddd ddq_add_8888(%rip),%zmm0,%zmm4 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + subq $128,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $1,%zmm4,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %ymm29,%ymm4,%ymm4 + vmovdqu8 0(%rcx,%r11,1),%zmm6 + vmovdqu8 64(%rcx,%r11,1),%zmm7 + vmovdqu8 128(%rcx,%r11,1),%ymm10{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm15,%zmm3,%zmm3 + vpxorq %ymm15,%ymm4,%ymm4 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %ymm15,%ymm4,%ymm4 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %ymm15,%ymm4,%ymm4 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %ymm15,%ymm4,%ymm4 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %ymm15,%ymm4,%ymm4 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %ymm15,%ymm4,%ymm4 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %ymm15,%ymm4,%ymm4 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %ymm15,%ymm4,%ymm4 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %ymm15,%ymm4,%ymm4 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %ymm15,%ymm4,%ymm4 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %ymm15,%ymm4,%ymm4 + vbroadcastf64x2 176(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %ymm15,%ymm4,%ymm4 + vbroadcastf64x2 192(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %ymm15,%ymm4,%ymm4 + vbroadcastf64x2 208(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %ymm15,%ymm4,%ymm4 + vbroadcastf64x2 224(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vaesenclast %zmm15,%zmm3,%zmm3 + vaesenclast %ymm15,%ymm4,%ymm4 + vpxorq %zmm6,%zmm0,%zmm0 + vpxorq %zmm7,%zmm3,%zmm3 + vpxorq %ymm10,%ymm4,%ymm4 + vextracti32x4 $1,%zmm4,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %ymm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm4,%zmm4{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm6 + vpshufb %zmm29,%zmm3,%zmm7 + vpshufb %ymm29,%ymm4,%ymm10 + vextracti32x4 $1,%zmm10,%xmm13 + subq $16 * (10 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_489 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 192(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 256(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vpxorq %zmm15,%zmm0,%zmm15 + vpxorq %zmm16,%zmm3,%zmm16 + vpxorq %zmm17,%zmm4,%zmm17 + vpxorq %zmm19,%zmm5,%zmm19 + vmovdqu64 320(%rsi),%ymm20 + vpclmulqdq $0x01,%ymm20,%ymm10,%ymm4 + vpclmulqdq $0x10,%ymm20,%ymm10,%ymm5 + vpclmulqdq $0x11,%ymm20,%ymm10,%ymm0 + vpclmulqdq $0x00,%ymm20,%ymm10,%ymm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_489 +.L_small_initial_partial_block_489: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 208(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 272(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vpxorq %zmm15,%zmm0,%zmm15 + vpxorq %zmm16,%zmm3,%zmm16 + vpxorq %zmm17,%zmm4,%zmm17 + vpxorq %zmm19,%zmm5,%zmm19 + vmovdqu64 336(%rsi),%xmm20 + vpclmulqdq $0x01,%xmm20,%xmm10,%xmm4 + vpclmulqdq $0x10,%xmm20,%xmm10,%xmm5 + vpclmulqdq $0x11,%xmm20,%xmm10,%xmm0 + vpclmulqdq $0x00,%xmm20,%xmm10,%xmm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_489: + + orq %r8,%r8 + je .L_after_reduction_489 + vpxorq %xmm13,%xmm14,%xmm14 +.L_after_reduction_489: + jmp .L_small_initial_blocks_encrypted_479 +.L_small_initial_num_blocks_is_11_479: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd ddq_add_5678(%rip),%zmm2,%zmm3 + vpaddd ddq_add_8888(%rip),%zmm0,%zmm4 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + subq $128,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $2,%zmm4,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vmovdqu8 0(%rcx,%r11,1),%zmm6 + vmovdqu8 64(%rcx,%r11,1),%zmm7 + vmovdqu8 128(%rcx,%r11,1),%zmm10{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm15,%zmm3,%zmm3 + vpxorq %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 176(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 192(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 208(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 224(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vaesenclast %zmm15,%zmm3,%zmm3 + vaesenclast %zmm15,%zmm4,%zmm4 + vpxorq %zmm6,%zmm0,%zmm0 + vpxorq %zmm7,%zmm3,%zmm3 + vpxorq %zmm10,%zmm4,%zmm4 + vextracti32x4 $2,%zmm4,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm4,%zmm4{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm6 + vpshufb %zmm29,%zmm3,%zmm7 + vpshufb %zmm29,%zmm4,%zmm10 + vextracti32x4 $2,%zmm10,%xmm13 + subq $16 * (11 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_490 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 176(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 240(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vpxorq %zmm15,%zmm0,%zmm15 + vpxorq %zmm16,%zmm3,%zmm16 + vpxorq %zmm17,%zmm4,%zmm17 + vpxorq %zmm19,%zmm5,%zmm19 + vmovdqu64 304(%rsi),%ymm20 + vinserti64x2 $2,336(%rsi),%zmm20,%zmm20 + vpclmulqdq $0x01,%zmm20,%zmm10,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm10,%zmm5 + vpclmulqdq $0x11,%zmm20,%zmm10,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm10,%zmm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_490 +.L_small_initial_partial_block_490: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 192(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 256(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vpxorq %zmm15,%zmm0,%zmm15 + vpxorq %zmm16,%zmm3,%zmm16 + vpxorq %zmm17,%zmm4,%zmm17 + vpxorq %zmm19,%zmm5,%zmm19 + vmovdqu64 320(%rsi),%ymm20 + vpclmulqdq $0x01,%ymm20,%ymm10,%ymm4 + vpclmulqdq $0x10,%ymm20,%ymm10,%ymm5 + vpclmulqdq $0x11,%ymm20,%ymm10,%ymm0 + vpclmulqdq $0x00,%ymm20,%ymm10,%ymm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_490: + + orq %r8,%r8 + je .L_after_reduction_490 + vpxorq %xmm13,%xmm14,%xmm14 +.L_after_reduction_490: + jmp .L_small_initial_blocks_encrypted_479 +.L_small_initial_num_blocks_is_12_479: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd ddq_add_5678(%rip),%zmm2,%zmm3 + vpaddd ddq_add_8888(%rip),%zmm0,%zmm4 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + subq $128,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $3,%zmm4,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vmovdqu8 0(%rcx,%r11,1),%zmm6 + vmovdqu8 64(%rcx,%r11,1),%zmm7 + vmovdqu8 128(%rcx,%r11,1),%zmm10{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm15,%zmm3,%zmm3 + vpxorq %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 176(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 192(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 208(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 224(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vaesenclast %zmm15,%zmm3,%zmm3 + vaesenclast %zmm15,%zmm4,%zmm4 + vpxorq %zmm6,%zmm0,%zmm0 + vpxorq %zmm7,%zmm3,%zmm3 + vpxorq %zmm10,%zmm4,%zmm4 + vextracti32x4 $3,%zmm4,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm4,%zmm4{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm6 + vpshufb %zmm29,%zmm3,%zmm7 + vpshufb %zmm29,%zmm4,%zmm10 + vextracti32x4 $3,%zmm10,%xmm13 + subq $16 * (12 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_491 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 160(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 224(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vmovdqu64 288(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x00,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm0,%zmm6,%zmm15 + vpternlogq $0x96,%zmm3,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x10,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm4,%zmm6,%zmm17 + vpternlogq $0x96,%zmm5,%zmm7,%zmm19 + + vpxorq %zmm19,%zmm17,%zmm17 + vpsrldq $8,%zmm17,%zmm4 + vpslldq $8,%zmm17,%zmm5 + vpxorq %zmm4,%zmm15,%zmm0 + vpxorq %zmm5,%zmm16,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_491 +.L_small_initial_partial_block_491: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 176(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 240(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vpxorq %zmm15,%zmm0,%zmm15 + vpxorq %zmm16,%zmm3,%zmm16 + vpxorq %zmm17,%zmm4,%zmm17 + vpxorq %zmm19,%zmm5,%zmm19 + vmovdqu64 304(%rsi),%ymm20 + vinserti64x2 $2,336(%rsi),%zmm20,%zmm20 + vpclmulqdq $0x01,%zmm20,%zmm10,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm10,%zmm5 + vpclmulqdq $0x11,%zmm20,%zmm10,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm10,%zmm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_491: + + orq %r8,%r8 + je .L_after_reduction_491 + vpxorq %xmm13,%xmm14,%xmm14 +.L_after_reduction_491: + jmp .L_small_initial_blocks_encrypted_479 +.L_small_initial_num_blocks_is_13_479: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd ddq_add_5678(%rip),%zmm2,%zmm3 + vpaddd ddq_add_8888(%rip),%zmm0,%zmm4 + vpaddd ddq_add_8888(%rip),%zmm3,%zmm5 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + subq $192,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $0,%zmm5,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %xmm29,%xmm5,%xmm5 + vmovdqu8 0(%rcx,%r11,1),%zmm6 + vmovdqu8 64(%rcx,%r11,1),%zmm7 + vmovdqu8 128(%rcx,%r11,1),%zmm10 + vmovdqu8 192(%rcx,%r11,1),%xmm11{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm15,%zmm3,%zmm3 + vpxorq %zmm15,%zmm4,%zmm4 + vpxorq %xmm15,%xmm5,%xmm5 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %xmm15,%xmm5,%xmm5 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %xmm15,%xmm5,%xmm5 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %xmm15,%xmm5,%xmm5 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %xmm15,%xmm5,%xmm5 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %xmm15,%xmm5,%xmm5 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %xmm15,%xmm5,%xmm5 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %xmm15,%xmm5,%xmm5 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %xmm15,%xmm5,%xmm5 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %xmm15,%xmm5,%xmm5 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %xmm15,%xmm5,%xmm5 + vbroadcastf64x2 176(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %xmm15,%xmm5,%xmm5 + vbroadcastf64x2 192(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %xmm15,%xmm5,%xmm5 + vbroadcastf64x2 208(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %xmm15,%xmm5,%xmm5 + vbroadcastf64x2 224(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vaesenclast %zmm15,%zmm3,%zmm3 + vaesenclast %zmm15,%zmm4,%zmm4 + vaesenclast %xmm15,%xmm5,%xmm5 + vpxorq %zmm6,%zmm0,%zmm0 + vpxorq %zmm7,%zmm3,%zmm3 + vpxorq %zmm10,%zmm4,%zmm4 + vpxorq %xmm11,%xmm5,%xmm5 + vextracti32x4 $0,%zmm5,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %xmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm5,%zmm5{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm6 + vpshufb %zmm29,%zmm3,%zmm7 + vpshufb %zmm29,%zmm4,%zmm10 + vpshufb %xmm29,%xmm5,%xmm11 + vextracti32x4 $0,%zmm11,%xmm13 + subq $16 * (13 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_492 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 144(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 208(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vmovdqu64 272(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x00,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm0,%zmm6,%zmm15 + vpternlogq $0x96,%zmm3,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x10,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm4,%zmm6,%zmm17 + vpternlogq $0x96,%zmm5,%zmm7,%zmm19 + vmovdqu64 336(%rsi),%xmm20 + vpclmulqdq $0x01,%xmm20,%xmm11,%xmm4 + vpclmulqdq $0x10,%xmm20,%xmm11,%xmm5 + vpclmulqdq $0x11,%xmm20,%xmm11,%xmm0 + vpclmulqdq $0x00,%xmm20,%xmm11,%xmm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_492 +.L_small_initial_partial_block_492: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 160(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 224(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vmovdqu64 288(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x00,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm0,%zmm6,%zmm15 + vpternlogq $0x96,%zmm3,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x10,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm4,%zmm6,%zmm17 + vpternlogq $0x96,%zmm5,%zmm7,%zmm19 + + vpxorq %zmm19,%zmm17,%zmm17 + vpsrldq $8,%zmm17,%zmm4 + vpslldq $8,%zmm17,%zmm5 + vpxorq %zmm4,%zmm15,%zmm0 + vpxorq %zmm5,%zmm16,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_492: + + orq %r8,%r8 + je .L_after_reduction_492 + vpxorq %xmm13,%xmm14,%xmm14 +.L_after_reduction_492: + jmp .L_small_initial_blocks_encrypted_479 +.L_small_initial_num_blocks_is_14_479: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd ddq_add_5678(%rip),%zmm2,%zmm3 + vpaddd ddq_add_8888(%rip),%zmm0,%zmm4 + vpaddd ddq_add_8888(%rip),%zmm3,%zmm5 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + subq $192,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $1,%zmm5,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %ymm29,%ymm5,%ymm5 + vmovdqu8 0(%rcx,%r11,1),%zmm6 + vmovdqu8 64(%rcx,%r11,1),%zmm7 + vmovdqu8 128(%rcx,%r11,1),%zmm10 + vmovdqu8 192(%rcx,%r11,1),%ymm11{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm15,%zmm3,%zmm3 + vpxorq %zmm15,%zmm4,%zmm4 + vpxorq %ymm15,%ymm5,%ymm5 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %ymm15,%ymm5,%ymm5 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %ymm15,%ymm5,%ymm5 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %ymm15,%ymm5,%ymm5 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %ymm15,%ymm5,%ymm5 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %ymm15,%ymm5,%ymm5 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %ymm15,%ymm5,%ymm5 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %ymm15,%ymm5,%ymm5 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %ymm15,%ymm5,%ymm5 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %ymm15,%ymm5,%ymm5 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %ymm15,%ymm5,%ymm5 + vbroadcastf64x2 176(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %ymm15,%ymm5,%ymm5 + vbroadcastf64x2 192(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %ymm15,%ymm5,%ymm5 + vbroadcastf64x2 208(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %ymm15,%ymm5,%ymm5 + vbroadcastf64x2 224(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vaesenclast %zmm15,%zmm3,%zmm3 + vaesenclast %zmm15,%zmm4,%zmm4 + vaesenclast %ymm15,%ymm5,%ymm5 + vpxorq %zmm6,%zmm0,%zmm0 + vpxorq %zmm7,%zmm3,%zmm3 + vpxorq %zmm10,%zmm4,%zmm4 + vpxorq %ymm11,%ymm5,%ymm5 + vextracti32x4 $1,%zmm5,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %ymm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm5,%zmm5{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm6 + vpshufb %zmm29,%zmm3,%zmm7 + vpshufb %zmm29,%zmm4,%zmm10 + vpshufb %ymm29,%ymm5,%ymm11 + vextracti32x4 $1,%zmm11,%xmm13 + subq $16 * (14 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_493 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 128(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 192(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vmovdqu64 256(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x00,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm0,%zmm6,%zmm15 + vpternlogq $0x96,%zmm3,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x10,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm4,%zmm6,%zmm17 + vpternlogq $0x96,%zmm5,%zmm7,%zmm19 + vmovdqu64 320(%rsi),%ymm20 + vpclmulqdq $0x01,%ymm20,%ymm11,%ymm4 + vpclmulqdq $0x10,%ymm20,%ymm11,%ymm5 + vpclmulqdq $0x11,%ymm20,%ymm11,%ymm0 + vpclmulqdq $0x00,%ymm20,%ymm11,%ymm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_493 +.L_small_initial_partial_block_493: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 144(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 208(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vmovdqu64 272(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x00,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm0,%zmm6,%zmm15 + vpternlogq $0x96,%zmm3,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x10,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm4,%zmm6,%zmm17 + vpternlogq $0x96,%zmm5,%zmm7,%zmm19 + vmovdqu64 336(%rsi),%xmm20 + vpclmulqdq $0x01,%xmm20,%xmm11,%xmm4 + vpclmulqdq $0x10,%xmm20,%xmm11,%xmm5 + vpclmulqdq $0x11,%xmm20,%xmm11,%xmm0 + vpclmulqdq $0x00,%xmm20,%xmm11,%xmm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_493: + + orq %r8,%r8 + je .L_after_reduction_493 + vpxorq %xmm13,%xmm14,%xmm14 +.L_after_reduction_493: + jmp .L_small_initial_blocks_encrypted_479 +.L_small_initial_num_blocks_is_15_479: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd ddq_add_5678(%rip),%zmm2,%zmm3 + vpaddd ddq_add_8888(%rip),%zmm0,%zmm4 + vpaddd ddq_add_8888(%rip),%zmm3,%zmm5 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + subq $192,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $2,%zmm5,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 + vmovdqu8 0(%rcx,%r11,1),%zmm6 + vmovdqu8 64(%rcx,%r11,1),%zmm7 + vmovdqu8 128(%rcx,%r11,1),%zmm10 + vmovdqu8 192(%rcx,%r11,1),%zmm11{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm15,%zmm3,%zmm3 + vpxorq %zmm15,%zmm4,%zmm4 + vpxorq %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 176(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 192(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 208(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 224(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vaesenclast %zmm15,%zmm3,%zmm3 + vaesenclast %zmm15,%zmm4,%zmm4 + vaesenclast %zmm15,%zmm5,%zmm5 + vpxorq %zmm6,%zmm0,%zmm0 + vpxorq %zmm7,%zmm3,%zmm3 + vpxorq %zmm10,%zmm4,%zmm4 + vpxorq %zmm11,%zmm5,%zmm5 + vextracti32x4 $2,%zmm5,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %zmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm5,%zmm5{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm6 + vpshufb %zmm29,%zmm3,%zmm7 + vpshufb %zmm29,%zmm4,%zmm10 + vpshufb %zmm29,%zmm5,%zmm11 + vextracti32x4 $2,%zmm11,%xmm13 + subq $16 * (15 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_494 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 112(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 176(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vmovdqu64 240(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x00,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm0,%zmm6,%zmm15 + vpternlogq $0x96,%zmm3,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x10,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm4,%zmm6,%zmm17 + vpternlogq $0x96,%zmm5,%zmm7,%zmm19 + vmovdqu64 304(%rsi),%ymm20 + vinserti64x2 $2,336(%rsi),%zmm20,%zmm20 + vpclmulqdq $0x01,%zmm20,%zmm11,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm11,%zmm5 + vpclmulqdq $0x11,%zmm20,%zmm11,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm11,%zmm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_494 +.L_small_initial_partial_block_494: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 128(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 192(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vmovdqu64 256(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x00,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm0,%zmm6,%zmm15 + vpternlogq $0x96,%zmm3,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x10,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm4,%zmm6,%zmm17 + vpternlogq $0x96,%zmm5,%zmm7,%zmm19 + vmovdqu64 320(%rsi),%ymm20 + vpclmulqdq $0x01,%ymm20,%ymm11,%ymm4 + vpclmulqdq $0x10,%ymm20,%ymm11,%ymm5 + vpclmulqdq $0x11,%ymm20,%ymm11,%ymm0 + vpclmulqdq $0x00,%ymm20,%ymm11,%ymm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_494: + + orq %r8,%r8 + je .L_after_reduction_494 + vpxorq %xmm13,%xmm14,%xmm14 +.L_after_reduction_494: + jmp .L_small_initial_blocks_encrypted_479 +.L_small_initial_num_blocks_is_16_479: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd ddq_add_5678(%rip),%zmm2,%zmm3 + vpaddd ddq_add_8888(%rip),%zmm0,%zmm4 + vpaddd ddq_add_8888(%rip),%zmm3,%zmm5 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + subq $192,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $3,%zmm5,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 + vmovdqu8 0(%rcx,%r11,1),%zmm6 + vmovdqu8 64(%rcx,%r11,1),%zmm7 + vmovdqu8 128(%rcx,%r11,1),%zmm10 + vmovdqu8 192(%rcx,%r11,1),%zmm11{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm15,%zmm3,%zmm3 + vpxorq %zmm15,%zmm4,%zmm4 + vpxorq %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 176(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 192(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 208(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 224(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vaesenclast %zmm15,%zmm3,%zmm3 + vaesenclast %zmm15,%zmm4,%zmm4 + vaesenclast %zmm15,%zmm5,%zmm5 + vpxorq %zmm6,%zmm0,%zmm0 + vpxorq %zmm7,%zmm3,%zmm3 + vpxorq %zmm10,%zmm4,%zmm4 + vpxorq %zmm11,%zmm5,%zmm5 + vextracti32x4 $3,%zmm5,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %zmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm5,%zmm5{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm6 + vpshufb %zmm29,%zmm3,%zmm7 + vpshufb %zmm29,%zmm4,%zmm10 + vpshufb %zmm29,%zmm5,%zmm11 + vextracti32x4 $3,%zmm11,%xmm13 + subq $16 * (16 - 1),%r8 +.L_small_initial_partial_block_495: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 112(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 176(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vmovdqu64 240(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x00,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm0,%zmm6,%zmm15 + vpternlogq $0x96,%zmm3,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x10,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm4,%zmm6,%zmm17 + vpternlogq $0x96,%zmm5,%zmm7,%zmm19 + vmovdqu64 304(%rsi),%ymm20 + vinserti64x2 $2,336(%rsi),%zmm20,%zmm20 + vpclmulqdq $0x01,%zmm20,%zmm11,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm11,%zmm5 + vpclmulqdq $0x11,%zmm20,%zmm11,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm11,%zmm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_495: + vpxorq %xmm13,%xmm14,%xmm14 +.L_after_reduction_495: +.L_small_initial_blocks_encrypted_479: +.L_ghash_done_334: + vmovdqu64 %xmm2,0(%rsi) + vmovdqu64 %xmm14,64(%rsi) +.L_enc_dec_done_334: + jmp .Lexit_gcm_encrypt +.Lexit_gcm_encrypt: + cmpq $256,%r8 + jbe .Lskip_hkeys_cleanup_496 + vpxor %xmm0,%xmm0,%xmm0 + vmovdqa64 %zmm0,0(%rsp) + vmovdqa64 %zmm0,64(%rsp) + vmovdqa64 %zmm0,128(%rsp) + vmovdqa64 %zmm0,192(%rsp) + vmovdqa64 %zmm0,256(%rsp) + vmovdqa64 %zmm0,320(%rsp) + vmovdqa64 %zmm0,384(%rsp) + vmovdqa64 %zmm0,448(%rsp) + vmovdqa64 %zmm0,512(%rsp) + vmovdqa64 %zmm0,576(%rsp) + vmovdqa64 %zmm0,640(%rsp) + vmovdqa64 %zmm0,704(%rsp) +.Lskip_hkeys_cleanup_496: + vzeroupper + leaq (%rbp),%rsp +.cfi_def_cfa_register %rsp + popq %r15 +.cfi_adjust_cfa_offset -8 +.cfi_restore %r15 + popq %r14 +.cfi_adjust_cfa_offset -8 +.cfi_restore %r14 + popq %r13 +.cfi_adjust_cfa_offset -8 +.cfi_restore %r13 + popq %r12 +.cfi_adjust_cfa_offset -8 +.cfi_restore %r12 + popq %rbp +.cfi_adjust_cfa_offset -8 +.cfi_restore %rbp + popq %rbx +.cfi_adjust_cfa_offset -8 +.cfi_restore %rbx + .byte 0xf3,0xc3 +.Lencrypt_seh_end: +.cfi_endproc +.size ossl_aes_gcm_encrypt_avx512, .-ossl_aes_gcm_encrypt_avx512 +.globl ossl_aes_gcm_decrypt_avx512 +.type ossl_aes_gcm_decrypt_avx512,@function +.align 32 +ossl_aes_gcm_decrypt_avx512: +.cfi_startproc +.Ldecrypt_seh_begin: +.byte 243,15,30,250 + pushq %rbx +.cfi_adjust_cfa_offset 8 +.cfi_offset %rbx,-16 +.Ldecrypt_seh_push_rbx: + pushq %rbp +.cfi_adjust_cfa_offset 8 +.cfi_offset %rbp,-24 +.Ldecrypt_seh_push_rbp: + pushq %r12 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r12,-32 +.Ldecrypt_seh_push_r12: + pushq %r13 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r13,-40 +.Ldecrypt_seh_push_r13: + pushq %r14 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r14,-48 +.Ldecrypt_seh_push_r14: + pushq %r15 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r15,-56 +.Ldecrypt_seh_push_r15: + + + + + + + + + + + leaq 0(%rsp),%rbp +.cfi_def_cfa_register %rbp +.Ldecrypt_seh_setfp: + +.Ldecrypt_seh_prolog_end: + subq $1588,%rsp + andq $(-64),%rsp + + + movl 240(%rdi),%eax + cmpl $9,%eax + je .Laes_gcm_decrypt_128_avx512 + cmpl $11,%eax + je .Laes_gcm_decrypt_192_avx512 + cmpl $13,%eax + je .Laes_gcm_decrypt_256_avx512 + xorl %eax,%eax + jmp .Lexit_gcm_decrypt +.align 32 +.Laes_gcm_decrypt_128_avx512: + orq %r8,%r8 + je .L_enc_dec_done_497 + xorq %r14,%r14 + vmovdqu64 64(%rsi),%xmm14 + + movq (%rdx),%r11 + orq %r11,%r11 + je .L_partial_block_done_498 + movl $16,%r10d + leaq byte_len_to_mask_table(%rip),%r12 + cmpq %r10,%r8 + cmovcq %r8,%r10 + kmovw (%r12,%r10,2),%k1 + vmovdqu8 (%rcx),%xmm0{%k1}{z} + + vmovdqu64 16(%rsi),%xmm3 + vmovdqu64 336(%rsi),%xmm4 + + + + leaq SHIFT_MASK(%rip),%r12 + addq %r11,%r12 + vmovdqu64 (%r12),%xmm5 + vpshufb %xmm5,%xmm3,%xmm3 + + vmovdqa64 %xmm0,%xmm6 + vpxorq %xmm0,%xmm3,%xmm3 + + + leaq (%r8,%r11,1),%r13 + subq $16,%r13 + jge .L_no_extra_mask_498 + subq %r13,%r12 +.L_no_extra_mask_498: + + + + vmovdqu64 16(%r12),%xmm0 + vpand %xmm0,%xmm3,%xmm3 + vpand %xmm0,%xmm6,%xmm6 + vpshufb SHUF_MASK(%rip),%xmm6,%xmm6 + vpshufb %xmm5,%xmm6,%xmm6 + vpxorq %xmm6,%xmm14,%xmm14 + cmpq $0,%r13 + jl .L_partial_incomplete_498 + + vpclmulqdq $0x11,%xmm4,%xmm14,%xmm7 + vpclmulqdq $0x00,%xmm4,%xmm14,%xmm10 + vpclmulqdq $0x01,%xmm4,%xmm14,%xmm11 + vpclmulqdq $0x10,%xmm4,%xmm14,%xmm14 + vpxorq %xmm11,%xmm14,%xmm14 + + vpsrldq $8,%xmm14,%xmm11 + vpslldq $8,%xmm14,%xmm14 + vpxorq %xmm11,%xmm7,%xmm7 + vpxorq %xmm10,%xmm14,%xmm14 + + + + vmovdqu64 POLY2(%rip),%xmm11 + + vpclmulqdq $0x01,%xmm14,%xmm11,%xmm10 + vpslldq $8,%xmm10,%xmm10 + vpxorq %xmm10,%xmm14,%xmm14 + + + + vpclmulqdq $0x00,%xmm14,%xmm11,%xmm10 + vpsrldq $4,%xmm10,%xmm10 + vpclmulqdq $0x10,%xmm14,%xmm11,%xmm14 + vpslldq $4,%xmm14,%xmm14 + + vpternlogq $0x96,%xmm10,%xmm7,%xmm14 + + movq $0,(%rdx) + + movq %r11,%r12 + movq $16,%r11 + subq %r12,%r11 + jmp .L_enc_dec_done_498 + +.L_partial_incomplete_498: + addq %r8,(%rdx) + movq %r8,%r11 + +.L_enc_dec_done_498: + + + leaq byte_len_to_mask_table(%rip),%r12 + kmovw (%r12,%r11,2),%k1 + vmovdqu64 %xmm14,64(%rsi) + movq %r9,%r12 + vmovdqu8 %xmm3,(%r12){%k1} +.L_partial_block_done_498: + vmovdqu64 0(%rsi),%xmm2 + subq %r11,%r8 + je .L_enc_dec_done_497 + cmpq $256,%r8 + jbe .L_message_below_equal_16_blocks_497 + + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vmovdqa64 ddq_addbe_4444(%rip),%zmm27 + vmovdqa64 ddq_addbe_1234(%rip),%zmm28 + + + + + + + vmovd %xmm2,%r15d + andl $255,%r15d + + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpshufb %zmm29,%zmm2,%zmm2 + + + + cmpb $240,%r15b + jae .L_next_16_overflow_499 + vpaddd %zmm28,%zmm2,%zmm7 + vpaddd %zmm27,%zmm7,%zmm10 + vpaddd %zmm27,%zmm10,%zmm11 + vpaddd %zmm27,%zmm11,%zmm12 + jmp .L_next_16_ok_499 +.L_next_16_overflow_499: + vpshufb %zmm29,%zmm2,%zmm2 + vmovdqa64 ddq_add_4444(%rip),%zmm12 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm7 + vpaddd %zmm12,%zmm7,%zmm10 + vpaddd %zmm12,%zmm10,%zmm11 + vpaddd %zmm12,%zmm11,%zmm12 + vpshufb %zmm29,%zmm7,%zmm7 + vpshufb %zmm29,%zmm10,%zmm10 + vpshufb %zmm29,%zmm11,%zmm11 + vpshufb %zmm29,%zmm12,%zmm12 +.L_next_16_ok_499: + vshufi64x2 $255,%zmm12,%zmm12,%zmm2 + addb $16,%r15b + + vmovdqu8 0(%rcx,%r11,1),%zmm0 + vmovdqu8 64(%rcx,%r11,1),%zmm3 + vmovdqu8 128(%rcx,%r11,1),%zmm4 + vmovdqu8 192(%rcx,%r11,1),%zmm5 + + + vbroadcastf64x2 0(%rdi),%zmm6 + vpxorq %zmm6,%zmm7,%zmm7 + vpxorq %zmm6,%zmm10,%zmm10 + vpxorq %zmm6,%zmm11,%zmm11 + vpxorq %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 16(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 32(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 48(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 64(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 80(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 96(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 112(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 128(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 144(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 160(%rdi),%zmm6 + vaesenclast %zmm6,%zmm7,%zmm7 + vaesenclast %zmm6,%zmm10,%zmm10 + vaesenclast %zmm6,%zmm11,%zmm11 + vaesenclast %zmm6,%zmm12,%zmm12 + + + vpxorq %zmm0,%zmm7,%zmm7 + vpxorq %zmm3,%zmm10,%zmm10 + vpxorq %zmm4,%zmm11,%zmm11 + vpxorq %zmm5,%zmm12,%zmm12 + + + movq %r9,%r10 + vmovdqu8 %zmm7,0(%r10,%r11,1) + vmovdqu8 %zmm10,64(%r10,%r11,1) + vmovdqu8 %zmm11,128(%r10,%r11,1) + vmovdqu8 %zmm12,192(%r10,%r11,1) + + vpshufb %zmm29,%zmm0,%zmm7 + vpshufb %zmm29,%zmm3,%zmm10 + vpshufb %zmm29,%zmm4,%zmm11 + vpshufb %zmm29,%zmm5,%zmm12 + vmovdqa64 %zmm7,768(%rsp) + vmovdqa64 %zmm10,832(%rsp) + vmovdqa64 %zmm11,896(%rsp) + vmovdqa64 %zmm12,960(%rsp) + testq %r14,%r14 + jnz .L_skip_hkeys_precomputation_500 + + vmovdqu64 288(%rsi),%zmm0 + vmovdqu64 %zmm0,704(%rsp) + + vmovdqu64 224(%rsi),%zmm3 + vmovdqu64 %zmm3,640(%rsp) + + + vshufi64x2 $0x00,%zmm3,%zmm3,%zmm3 + + vmovdqu64 160(%rsi),%zmm4 + vmovdqu64 %zmm4,576(%rsp) + + vmovdqu64 96(%rsi),%zmm5 + vmovdqu64 %zmm5,512(%rsp) +.L_skip_hkeys_precomputation_500: + cmpq $512,%r8 + jb .L_message_below_32_blocks_497 + + + + cmpb $240,%r15b + jae .L_next_16_overflow_501 + vpaddd %zmm28,%zmm2,%zmm7 + vpaddd %zmm27,%zmm7,%zmm10 + vpaddd %zmm27,%zmm10,%zmm11 + vpaddd %zmm27,%zmm11,%zmm12 + jmp .L_next_16_ok_501 +.L_next_16_overflow_501: + vpshufb %zmm29,%zmm2,%zmm2 + vmovdqa64 ddq_add_4444(%rip),%zmm12 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm7 + vpaddd %zmm12,%zmm7,%zmm10 + vpaddd %zmm12,%zmm10,%zmm11 + vpaddd %zmm12,%zmm11,%zmm12 + vpshufb %zmm29,%zmm7,%zmm7 + vpshufb %zmm29,%zmm10,%zmm10 + vpshufb %zmm29,%zmm11,%zmm11 + vpshufb %zmm29,%zmm12,%zmm12 +.L_next_16_ok_501: + vshufi64x2 $255,%zmm12,%zmm12,%zmm2 + addb $16,%r15b + + vmovdqu8 256(%rcx,%r11,1),%zmm0 + vmovdqu8 320(%rcx,%r11,1),%zmm3 + vmovdqu8 384(%rcx,%r11,1),%zmm4 + vmovdqu8 448(%rcx,%r11,1),%zmm5 + + + vbroadcastf64x2 0(%rdi),%zmm6 + vpxorq %zmm6,%zmm7,%zmm7 + vpxorq %zmm6,%zmm10,%zmm10 + vpxorq %zmm6,%zmm11,%zmm11 + vpxorq %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 16(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 32(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 48(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 64(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 80(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 96(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 112(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 128(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 144(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 160(%rdi),%zmm6 + vaesenclast %zmm6,%zmm7,%zmm7 + vaesenclast %zmm6,%zmm10,%zmm10 + vaesenclast %zmm6,%zmm11,%zmm11 + vaesenclast %zmm6,%zmm12,%zmm12 + + + vpxorq %zmm0,%zmm7,%zmm7 + vpxorq %zmm3,%zmm10,%zmm10 + vpxorq %zmm4,%zmm11,%zmm11 + vpxorq %zmm5,%zmm12,%zmm12 + + + movq %r9,%r10 + vmovdqu8 %zmm7,256(%r10,%r11,1) + vmovdqu8 %zmm10,320(%r10,%r11,1) + vmovdqu8 %zmm11,384(%r10,%r11,1) + vmovdqu8 %zmm12,448(%r10,%r11,1) + + vpshufb %zmm29,%zmm0,%zmm7 + vpshufb %zmm29,%zmm3,%zmm10 + vpshufb %zmm29,%zmm4,%zmm11 + vpshufb %zmm29,%zmm5,%zmm12 + vmovdqa64 %zmm7,1024(%rsp) + vmovdqa64 %zmm10,1088(%rsp) + vmovdqa64 %zmm11,1152(%rsp) + vmovdqa64 %zmm12,1216(%rsp) + testq %r14,%r14 + jnz .L_skip_hkeys_precomputation_502 + vmovdqu64 640(%rsp),%zmm3 + + + vshufi64x2 $0x00,%zmm3,%zmm3,%zmm3 + + vmovdqu64 576(%rsp),%zmm4 + vmovdqu64 512(%rsp),%zmm5 + + vpclmulqdq $0x11,%zmm3,%zmm4,%zmm6 + vpclmulqdq $0x00,%zmm3,%zmm4,%zmm7 + vpclmulqdq $0x01,%zmm3,%zmm4,%zmm10 + vpclmulqdq $0x10,%zmm3,%zmm4,%zmm4 + vpxorq %zmm10,%zmm4,%zmm4 + + vpsrldq $8,%zmm4,%zmm10 + vpslldq $8,%zmm4,%zmm4 + vpxorq %zmm10,%zmm6,%zmm6 + vpxorq %zmm7,%zmm4,%zmm4 + + + + vmovdqu64 POLY2(%rip),%zmm10 + + vpclmulqdq $0x01,%zmm4,%zmm10,%zmm7 + vpslldq $8,%zmm7,%zmm7 + vpxorq %zmm7,%zmm4,%zmm4 + + + + vpclmulqdq $0x00,%zmm4,%zmm10,%zmm7 + vpsrldq $4,%zmm7,%zmm7 + vpclmulqdq $0x10,%zmm4,%zmm10,%zmm4 + vpslldq $4,%zmm4,%zmm4 + + vpternlogq $0x96,%zmm7,%zmm6,%zmm4 + + vmovdqu64 %zmm4,448(%rsp) + + vpclmulqdq $0x11,%zmm3,%zmm5,%zmm6 + vpclmulqdq $0x00,%zmm3,%zmm5,%zmm7 + vpclmulqdq $0x01,%zmm3,%zmm5,%zmm10 + vpclmulqdq $0x10,%zmm3,%zmm5,%zmm5 + vpxorq %zmm10,%zmm5,%zmm5 + + vpsrldq $8,%zmm5,%zmm10 + vpslldq $8,%zmm5,%zmm5 + vpxorq %zmm10,%zmm6,%zmm6 + vpxorq %zmm7,%zmm5,%zmm5 + + + + vmovdqu64 POLY2(%rip),%zmm10 + + vpclmulqdq $0x01,%zmm5,%zmm10,%zmm7 + vpslldq $8,%zmm7,%zmm7 + vpxorq %zmm7,%zmm5,%zmm5 + + + + vpclmulqdq $0x00,%zmm5,%zmm10,%zmm7 + vpsrldq $4,%zmm7,%zmm7 + vpclmulqdq $0x10,%zmm5,%zmm10,%zmm5 + vpslldq $4,%zmm5,%zmm5 + + vpternlogq $0x96,%zmm7,%zmm6,%zmm5 + + vmovdqu64 %zmm5,384(%rsp) + + vpclmulqdq $0x11,%zmm3,%zmm4,%zmm6 + vpclmulqdq $0x00,%zmm3,%zmm4,%zmm7 + vpclmulqdq $0x01,%zmm3,%zmm4,%zmm10 + vpclmulqdq $0x10,%zmm3,%zmm4,%zmm4 + vpxorq %zmm10,%zmm4,%zmm4 + + vpsrldq $8,%zmm4,%zmm10 + vpslldq $8,%zmm4,%zmm4 + vpxorq %zmm10,%zmm6,%zmm6 + vpxorq %zmm7,%zmm4,%zmm4 + + + + vmovdqu64 POLY2(%rip),%zmm10 + + vpclmulqdq $0x01,%zmm4,%zmm10,%zmm7 + vpslldq $8,%zmm7,%zmm7 + vpxorq %zmm7,%zmm4,%zmm4 + + + + vpclmulqdq $0x00,%zmm4,%zmm10,%zmm7 + vpsrldq $4,%zmm7,%zmm7 + vpclmulqdq $0x10,%zmm4,%zmm10,%zmm4 + vpslldq $4,%zmm4,%zmm4 + + vpternlogq $0x96,%zmm7,%zmm6,%zmm4 + + vmovdqu64 %zmm4,320(%rsp) + + vpclmulqdq $0x11,%zmm3,%zmm5,%zmm6 + vpclmulqdq $0x00,%zmm3,%zmm5,%zmm7 + vpclmulqdq $0x01,%zmm3,%zmm5,%zmm10 + vpclmulqdq $0x10,%zmm3,%zmm5,%zmm5 + vpxorq %zmm10,%zmm5,%zmm5 + + vpsrldq $8,%zmm5,%zmm10 + vpslldq $8,%zmm5,%zmm5 + vpxorq %zmm10,%zmm6,%zmm6 + vpxorq %zmm7,%zmm5,%zmm5 + + + + vmovdqu64 POLY2(%rip),%zmm10 + + vpclmulqdq $0x01,%zmm5,%zmm10,%zmm7 + vpslldq $8,%zmm7,%zmm7 + vpxorq %zmm7,%zmm5,%zmm5 + + + + vpclmulqdq $0x00,%zmm5,%zmm10,%zmm7 + vpsrldq $4,%zmm7,%zmm7 + vpclmulqdq $0x10,%zmm5,%zmm10,%zmm5 + vpslldq $4,%zmm5,%zmm5 + + vpternlogq $0x96,%zmm7,%zmm6,%zmm5 + + vmovdqu64 %zmm5,256(%rsp) + + vpclmulqdq $0x11,%zmm3,%zmm4,%zmm6 + vpclmulqdq $0x00,%zmm3,%zmm4,%zmm7 + vpclmulqdq $0x01,%zmm3,%zmm4,%zmm10 + vpclmulqdq $0x10,%zmm3,%zmm4,%zmm4 + vpxorq %zmm10,%zmm4,%zmm4 + + vpsrldq $8,%zmm4,%zmm10 + vpslldq $8,%zmm4,%zmm4 + vpxorq %zmm10,%zmm6,%zmm6 + vpxorq %zmm7,%zmm4,%zmm4 + + + + vmovdqu64 POLY2(%rip),%zmm10 + + vpclmulqdq $0x01,%zmm4,%zmm10,%zmm7 + vpslldq $8,%zmm7,%zmm7 + vpxorq %zmm7,%zmm4,%zmm4 + + + + vpclmulqdq $0x00,%zmm4,%zmm10,%zmm7 + vpsrldq $4,%zmm7,%zmm7 + vpclmulqdq $0x10,%zmm4,%zmm10,%zmm4 + vpslldq $4,%zmm4,%zmm4 + + vpternlogq $0x96,%zmm7,%zmm6,%zmm4 + + vmovdqu64 %zmm4,192(%rsp) + + vpclmulqdq $0x11,%zmm3,%zmm5,%zmm6 + vpclmulqdq $0x00,%zmm3,%zmm5,%zmm7 + vpclmulqdq $0x01,%zmm3,%zmm5,%zmm10 + vpclmulqdq $0x10,%zmm3,%zmm5,%zmm5 + vpxorq %zmm10,%zmm5,%zmm5 + + vpsrldq $8,%zmm5,%zmm10 + vpslldq $8,%zmm5,%zmm5 + vpxorq %zmm10,%zmm6,%zmm6 + vpxorq %zmm7,%zmm5,%zmm5 + + + + vmovdqu64 POLY2(%rip),%zmm10 + + vpclmulqdq $0x01,%zmm5,%zmm10,%zmm7 + vpslldq $8,%zmm7,%zmm7 + vpxorq %zmm7,%zmm5,%zmm5 + + + + vpclmulqdq $0x00,%zmm5,%zmm10,%zmm7 + vpsrldq $4,%zmm7,%zmm7 + vpclmulqdq $0x10,%zmm5,%zmm10,%zmm5 + vpslldq $4,%zmm5,%zmm5 + + vpternlogq $0x96,%zmm7,%zmm6,%zmm5 + + vmovdqu64 %zmm5,128(%rsp) + + vpclmulqdq $0x11,%zmm3,%zmm4,%zmm6 + vpclmulqdq $0x00,%zmm3,%zmm4,%zmm7 + vpclmulqdq $0x01,%zmm3,%zmm4,%zmm10 + vpclmulqdq $0x10,%zmm3,%zmm4,%zmm4 + vpxorq %zmm10,%zmm4,%zmm4 + + vpsrldq $8,%zmm4,%zmm10 + vpslldq $8,%zmm4,%zmm4 + vpxorq %zmm10,%zmm6,%zmm6 + vpxorq %zmm7,%zmm4,%zmm4 + + + + vmovdqu64 POLY2(%rip),%zmm10 + + vpclmulqdq $0x01,%zmm4,%zmm10,%zmm7 + vpslldq $8,%zmm7,%zmm7 + vpxorq %zmm7,%zmm4,%zmm4 + + + + vpclmulqdq $0x00,%zmm4,%zmm10,%zmm7 + vpsrldq $4,%zmm7,%zmm7 + vpclmulqdq $0x10,%zmm4,%zmm10,%zmm4 + vpslldq $4,%zmm4,%zmm4 + + vpternlogq $0x96,%zmm7,%zmm6,%zmm4 + + vmovdqu64 %zmm4,64(%rsp) + + vpclmulqdq $0x11,%zmm3,%zmm5,%zmm6 + vpclmulqdq $0x00,%zmm3,%zmm5,%zmm7 + vpclmulqdq $0x01,%zmm3,%zmm5,%zmm10 + vpclmulqdq $0x10,%zmm3,%zmm5,%zmm5 + vpxorq %zmm10,%zmm5,%zmm5 + + vpsrldq $8,%zmm5,%zmm10 + vpslldq $8,%zmm5,%zmm5 + vpxorq %zmm10,%zmm6,%zmm6 + vpxorq %zmm7,%zmm5,%zmm5 + + + + vmovdqu64 POLY2(%rip),%zmm10 + + vpclmulqdq $0x01,%zmm5,%zmm10,%zmm7 + vpslldq $8,%zmm7,%zmm7 + vpxorq %zmm7,%zmm5,%zmm5 + + + + vpclmulqdq $0x00,%zmm5,%zmm10,%zmm7 + vpsrldq $4,%zmm7,%zmm7 + vpclmulqdq $0x10,%zmm5,%zmm10,%zmm5 + vpslldq $4,%zmm5,%zmm5 + + vpternlogq $0x96,%zmm7,%zmm6,%zmm5 + + vmovdqu64 %zmm5,0(%rsp) +.L_skip_hkeys_precomputation_502: + movq $1,%r14 + addq $512,%r11 + subq $512,%r8 + + cmpq $768,%r8 + jb .L_no_more_big_nblocks_497 +.L_encrypt_big_nblocks_497: + cmpb $240,%r15b + jae .L_16_blocks_overflow_503 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp .L_16_blocks_ok_503 +.L_16_blocks_overflow_503: + vpshufb %zmm29,%zmm2,%zmm2 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +.L_16_blocks_ok_503: + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp),%zmm1 + + + + + vshufi64x2 $255,%zmm5,%zmm5,%zmm2 + addb $16,%r15b + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + + + + + + + + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm6 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm6 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + + + + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%zmm21 + + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm15,%zmm10,%zmm26 + vpxorq %zmm12,%zmm6,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + + + + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + + + + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %zmm5,192(%r10,%r11,1) + vpshufb %zmm29,%zmm17,%zmm0 + vpshufb %zmm29,%zmm19,%zmm3 + vpshufb %zmm29,%zmm20,%zmm4 + vpshufb %zmm29,%zmm21,%zmm5 + vmovdqa64 %zmm0,1280(%rsp) + vmovdqa64 %zmm3,1344(%rsp) + vmovdqa64 %zmm4,1408(%rsp) + vmovdqa64 %zmm5,1472(%rsp) + cmpb $240,%r15b + jae .L_16_blocks_overflow_504 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp .L_16_blocks_ok_504 +.L_16_blocks_overflow_504: + vpshufb %zmm29,%zmm2,%zmm2 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +.L_16_blocks_ok_504: + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 256(%rsp),%zmm1 + + + + + vshufi64x2 $255,%zmm5,%zmm5,%zmm2 + addb $16,%r15b + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 320(%rsp),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + + + + + + + + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm6 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 384(%rsp),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 448(%rsp),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm6 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + + + + vmovdqu8 256(%rcx,%r11,1),%zmm17 + vmovdqu8 320(%rcx,%r11,1),%zmm19 + vmovdqu8 384(%rcx,%r11,1),%zmm20 + vmovdqu8 448(%rcx,%r11,1),%zmm21 + + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vpternlogq $0x96,%zmm12,%zmm6,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + + + + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + + + + movq %r9,%r10 + vmovdqu8 %zmm0,256(%r10,%r11,1) + vmovdqu8 %zmm3,320(%r10,%r11,1) + vmovdqu8 %zmm4,384(%r10,%r11,1) + vmovdqu8 %zmm5,448(%r10,%r11,1) + vpshufb %zmm29,%zmm17,%zmm0 + vpshufb %zmm29,%zmm19,%zmm3 + vpshufb %zmm29,%zmm20,%zmm4 + vpshufb %zmm29,%zmm21,%zmm5 + vmovdqa64 %zmm0,768(%rsp) + vmovdqa64 %zmm3,832(%rsp) + vmovdqa64 %zmm4,896(%rsp) + vmovdqa64 %zmm5,960(%rsp) + cmpb $240,%r15b + jae .L_16_blocks_overflow_505 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp .L_16_blocks_ok_505 +.L_16_blocks_overflow_505: + vpshufb %zmm29,%zmm2,%zmm2 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +.L_16_blocks_ok_505: + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + + + + + vshufi64x2 $255,%zmm5,%zmm5,%zmm2 + addb $16,%r15b + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + + + + + + + + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm6 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm6 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + + + + vmovdqu8 512(%rcx,%r11,1),%zmm17 + vmovdqu8 576(%rcx,%r11,1),%zmm19 + vmovdqu8 640(%rcx,%r11,1),%zmm20 + vmovdqu8 704(%rcx,%r11,1),%zmm21 + + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + + + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vpternlogq $0x96,%zmm15,%zmm12,%zmm6 + vpxorq %zmm24,%zmm6,%zmm6 + vpternlogq $0x96,%zmm10,%zmm13,%zmm7 + vpxorq %zmm25,%zmm7,%zmm7 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vextracti64x4 $1,%zmm6,%ymm12 + vpxorq %ymm12,%ymm6,%ymm6 + vextracti32x4 $1,%ymm6,%xmm12 + vpxorq %xmm12,%xmm6,%xmm6 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm6 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + + + + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + + + + movq %r9,%r10 + vmovdqu8 %zmm0,512(%r10,%r11,1) + vmovdqu8 %zmm3,576(%r10,%r11,1) + vmovdqu8 %zmm4,640(%r10,%r11,1) + vmovdqu8 %zmm5,704(%r10,%r11,1) + vpshufb %zmm29,%zmm17,%zmm0 + vpshufb %zmm29,%zmm19,%zmm3 + vpshufb %zmm29,%zmm20,%zmm4 + vpshufb %zmm29,%zmm21,%zmm5 + vmovdqa64 %zmm0,1024(%rsp) + vmovdqa64 %zmm3,1088(%rsp) + vmovdqa64 %zmm4,1152(%rsp) + vmovdqa64 %zmm5,1216(%rsp) + vmovdqa64 %zmm6,%zmm14 + + addq $768,%r11 + subq $768,%r8 + cmpq $768,%r8 + jae .L_encrypt_big_nblocks_497 + +.L_no_more_big_nblocks_497: + + cmpq $512,%r8 + jae .L_encrypt_32_blocks_497 + + cmpq $256,%r8 + jae .L_encrypt_16_blocks_497 +.L_encrypt_0_blocks_ghash_32_497: + movl %r8d,%r10d + andl $~15,%r10d + movl $256,%ebx + subl %r10d,%ebx + vmovdqa64 768(%rsp),%zmm13 + vpxorq %zmm14,%zmm13,%zmm13 + vmovdqu64 0(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 832(%rsp),%zmm13 + vmovdqu64 64(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + vpxorq %zmm10,%zmm4,%zmm26 + vpxorq %zmm6,%zmm0,%zmm24 + vpxorq %zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + vmovdqa64 896(%rsp),%zmm13 + vmovdqu64 128(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 960(%rsp),%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + + vpternlogq $0x96,%zmm10,%zmm4,%zmm26 + vpternlogq $0x96,%zmm6,%zmm0,%zmm24 + vpternlogq $0x96,%zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + addl $256,%ebx + movl %r8d,%r10d + addl $15,%r10d + shrl $4,%r10d + je .L_last_num_blocks_is_0_506 + + cmpl $8,%r10d + je .L_last_num_blocks_is_8_506 + jb .L_last_num_blocks_is_7_1_506 + + + cmpl $12,%r10d + je .L_last_num_blocks_is_12_506 + jb .L_last_num_blocks_is_11_9_506 + + + cmpl $15,%r10d + je .L_last_num_blocks_is_15_506 + ja .L_last_num_blocks_is_16_506 + cmpl $14,%r10d + je .L_last_num_blocks_is_14_506 + jmp .L_last_num_blocks_is_13_506 + +.L_last_num_blocks_is_11_9_506: + + cmpl $10,%r10d + je .L_last_num_blocks_is_10_506 + ja .L_last_num_blocks_is_11_506 + jmp .L_last_num_blocks_is_9_506 + +.L_last_num_blocks_is_7_1_506: + cmpl $4,%r10d + je .L_last_num_blocks_is_4_506 + jb .L_last_num_blocks_is_3_1_506 + + cmpl $6,%r10d + ja .L_last_num_blocks_is_7_506 + je .L_last_num_blocks_is_6_506 + jmp .L_last_num_blocks_is_5_506 + +.L_last_num_blocks_is_3_1_506: + + cmpl $2,%r10d + ja .L_last_num_blocks_is_3_506 + je .L_last_num_blocks_is_2_506 +.L_last_num_blocks_is_1_506: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $255,%r15d + jae .L_16_blocks_overflow_507 + vpaddd %xmm28,%xmm2,%xmm0 + jmp .L_16_blocks_ok_507 + +.L_16_blocks_overflow_507: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %xmm29,%xmm0,%xmm0 +.L_16_blocks_ok_507: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $0,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%xmm17{%k1}{z} + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %xmm31,%xmm0,%xmm0 + vaesenclast %xmm30,%xmm0,%xmm0 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti32x4 $0,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %xmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm17,%zmm17{%k1}{z} + vpshufb %xmm29,%xmm17,%xmm17 + vextracti32x4 $0,%zmm17,%xmm7 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_508 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm17,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm17,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm17,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm17,%xmm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_508 +.L_small_initial_partial_block_508: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + + + vpsrldq $8,%zmm26,%zmm0 + vpslldq $8,%zmm26,%zmm3 + vpxorq %zmm0,%zmm24,%zmm24 + vpxorq %zmm3,%zmm25,%zmm25 + vextracti64x4 $1,%zmm24,%ymm0 + vpxorq %ymm0,%ymm24,%ymm24 + vextracti32x4 $1,%ymm24,%xmm0 + vpxorq %xmm0,%xmm24,%xmm24 + vextracti64x4 $1,%zmm25,%ymm3 + vpxorq %ymm3,%ymm25,%ymm25 + vextracti32x4 $1,%ymm25,%xmm3 + vpxorq %xmm3,%xmm25,%xmm25 + vmovdqa64 POLY2(%rip),%xmm0 + + + vpclmulqdq $0x01,%xmm25,%xmm0,%xmm3 + vpslldq $8,%xmm3,%xmm3 + vpxorq %xmm3,%xmm25,%xmm3 + + + vpclmulqdq $0x00,%xmm3,%xmm0,%xmm4 + vpsrldq $4,%xmm4,%xmm4 + vpclmulqdq $0x10,%xmm3,%xmm0,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm24,%xmm4,%xmm14 + + + + + + + + + + + + + vpxorq %xmm7,%xmm14,%xmm14 + + jmp .L_after_reduction_508 +.L_small_initial_compute_done_508: +.L_after_reduction_508: + jmp .L_last_blocks_done_506 +.L_last_num_blocks_is_2_506: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $254,%r15d + jae .L_16_blocks_overflow_509 + vpaddd %ymm28,%ymm2,%ymm0 + jmp .L_16_blocks_ok_509 + +.L_16_blocks_overflow_509: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %ymm29,%ymm0,%ymm0 +.L_16_blocks_ok_509: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $1,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%ymm17{%k1}{z} + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %ymm31,%ymm0,%ymm0 + vaesenclast %ymm30,%ymm0,%ymm0 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %ymm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm17,%zmm17{%k1}{z} + vpshufb %ymm29,%ymm17,%ymm17 + vextracti32x4 $1,%zmm17,%xmm7 + subq $16 * (2 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_510 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm17,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm17,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm17,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm17,%ymm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_510 +.L_small_initial_partial_block_510: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm17,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm17,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm17,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm17,%xmm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_510: + + orq %r8,%r8 + je .L_after_reduction_510 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_510: + jmp .L_last_blocks_done_506 +.L_last_num_blocks_is_3_506: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $253,%r15d + jae .L_16_blocks_overflow_511 + vpaddd %zmm28,%zmm2,%zmm0 + jmp .L_16_blocks_ok_511 + +.L_16_blocks_overflow_511: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %zmm29,%zmm0,%zmm0 +.L_16_blocks_ok_511: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $2,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm0,%zmm0 + vpxorq %zmm17,%zmm0,%zmm0 + vextracti32x4 $2,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm17,%zmm17{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vextracti32x4 $2,%zmm17,%xmm7 + subq $16 * (3 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_512 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_512 +.L_small_initial_partial_block_512: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm17,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm17,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm17,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm17,%ymm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_512: + + orq %r8,%r8 + je .L_after_reduction_512 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_512: + jmp .L_last_blocks_done_506 +.L_last_num_blocks_is_4_506: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $252,%r15d + jae .L_16_blocks_overflow_513 + vpaddd %zmm28,%zmm2,%zmm0 + jmp .L_16_blocks_ok_513 + +.L_16_blocks_overflow_513: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %zmm29,%zmm0,%zmm0 +.L_16_blocks_ok_513: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $3,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm0,%zmm0 + vpxorq %zmm17,%zmm0,%zmm0 + vextracti32x4 $3,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm17,%zmm17{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vextracti32x4 $3,%zmm17,%xmm7 + subq $16 * (4 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_514 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_514 +.L_small_initial_partial_block_514: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_514: + + orq %r8,%r8 + je .L_after_reduction_514 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_514: + jmp .L_last_blocks_done_506 +.L_last_num_blocks_is_5_506: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $251,%r15d + jae .L_16_blocks_overflow_515 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %xmm27,%xmm0,%xmm3 + jmp .L_16_blocks_ok_515 + +.L_16_blocks_overflow_515: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %xmm29,%xmm3,%xmm3 +.L_16_blocks_ok_515: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $0,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%xmm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %xmm30,%xmm3,%xmm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %xmm19,%xmm3,%xmm3 + vextracti32x4 $0,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %xmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm19,%zmm19{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %xmm29,%xmm19,%xmm19 + vextracti32x4 $0,%zmm19,%xmm7 + subq $16 * (5 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_516 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm19,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm19,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm19,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm19,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_516 +.L_small_initial_partial_block_516: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_516: + + orq %r8,%r8 + je .L_after_reduction_516 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_516: + jmp .L_last_blocks_done_506 +.L_last_num_blocks_is_6_506: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $250,%r15d + jae .L_16_blocks_overflow_517 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %ymm27,%ymm0,%ymm3 + jmp .L_16_blocks_ok_517 + +.L_16_blocks_overflow_517: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %ymm29,%ymm3,%ymm3 +.L_16_blocks_ok_517: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $1,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%ymm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %ymm30,%ymm3,%ymm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %ymm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm19,%zmm19{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %ymm29,%ymm19,%ymm19 + vextracti32x4 $1,%zmm19,%xmm7 + subq $16 * (6 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_518 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm19,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm19,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm19,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm19,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_518 +.L_small_initial_partial_block_518: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm19,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm19,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm19,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm19,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_518: + + orq %r8,%r8 + je .L_after_reduction_518 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_518: + jmp .L_last_blocks_done_506 +.L_last_num_blocks_is_7_506: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $249,%r15d + jae .L_16_blocks_overflow_519 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + jmp .L_16_blocks_ok_519 + +.L_16_blocks_overflow_519: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 +.L_16_blocks_ok_519: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $2,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti32x4 $2,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm19,%zmm19{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vextracti32x4 $2,%zmm19,%xmm7 + subq $16 * (7 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_520 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_520 +.L_small_initial_partial_block_520: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm19,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm19,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm19,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm19,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_520: + + orq %r8,%r8 + je .L_after_reduction_520 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_520: + jmp .L_last_blocks_done_506 +.L_last_num_blocks_is_8_506: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $248,%r15d + jae .L_16_blocks_overflow_521 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + jmp .L_16_blocks_ok_521 + +.L_16_blocks_overflow_521: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 +.L_16_blocks_ok_521: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $3,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti32x4 $3,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm19,%zmm19{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vextracti32x4 $3,%zmm19,%xmm7 + subq $16 * (8 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_522 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_522 +.L_small_initial_partial_block_522: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_522: + + orq %r8,%r8 + je .L_after_reduction_522 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_522: + jmp .L_last_blocks_done_506 +.L_last_num_blocks_is_9_506: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $247,%r15d + jae .L_16_blocks_overflow_523 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %xmm27,%xmm3,%xmm4 + jmp .L_16_blocks_ok_523 + +.L_16_blocks_overflow_523: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %xmm29,%xmm4,%xmm4 +.L_16_blocks_ok_523: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $0,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%xmm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %xmm30,%xmm4,%xmm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %xmm20,%xmm4,%xmm4 + vextracti32x4 $0,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %xmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm20,%zmm20{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %xmm29,%xmm20,%xmm20 + vextracti32x4 $0,%zmm20,%xmm7 + subq $16 * (9 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_524 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm20,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm20,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm20,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm20,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_524 +.L_small_initial_partial_block_524: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_524: + + orq %r8,%r8 + je .L_after_reduction_524 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_524: + jmp .L_last_blocks_done_506 +.L_last_num_blocks_is_10_506: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $246,%r15d + jae .L_16_blocks_overflow_525 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %ymm27,%ymm3,%ymm4 + jmp .L_16_blocks_ok_525 + +.L_16_blocks_overflow_525: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %ymm29,%ymm4,%ymm4 +.L_16_blocks_ok_525: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $1,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%ymm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %ymm30,%ymm4,%ymm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %ymm20,%ymm4,%ymm4 + vextracti32x4 $1,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %ymm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm20,%zmm20{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %ymm29,%ymm20,%ymm20 + vextracti32x4 $1,%zmm20,%xmm7 + subq $16 * (10 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_526 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm20,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm20,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm20,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm20,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_526 +.L_small_initial_partial_block_526: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm20,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm20,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm20,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm20,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_526: + + orq %r8,%r8 + je .L_after_reduction_526 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_526: + jmp .L_last_blocks_done_506 +.L_last_num_blocks_is_11_506: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $245,%r15d + jae .L_16_blocks_overflow_527 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + jmp .L_16_blocks_ok_527 + +.L_16_blocks_overflow_527: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 +.L_16_blocks_ok_527: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $2,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vextracti32x4 $2,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm20,%zmm20{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %zmm29,%zmm20,%zmm20 + vextracti32x4 $2,%zmm20,%xmm7 + subq $16 * (11 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_528 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_528 +.L_small_initial_partial_block_528: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm20,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm20,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm20,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm20,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_528: + + orq %r8,%r8 + je .L_after_reduction_528 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_528: + jmp .L_last_blocks_done_506 +.L_last_num_blocks_is_12_506: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $244,%r15d + jae .L_16_blocks_overflow_529 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + jmp .L_16_blocks_ok_529 + +.L_16_blocks_overflow_529: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 +.L_16_blocks_ok_529: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $3,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vextracti32x4 $3,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm20,%zmm20{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %zmm29,%zmm20,%zmm20 + vextracti32x4 $3,%zmm20,%xmm7 + subq $16 * (12 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_530 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 160(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_530 +.L_small_initial_partial_block_530: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_530: + + orq %r8,%r8 + je .L_after_reduction_530 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_530: + jmp .L_last_blocks_done_506 +.L_last_num_blocks_is_13_506: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $243,%r15d + jae .L_16_blocks_overflow_531 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %xmm27,%xmm4,%xmm5 + jmp .L_16_blocks_ok_531 + +.L_16_blocks_overflow_531: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %xmm29,%xmm5,%xmm5 +.L_16_blocks_ok_531: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $0,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%xmm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %xmm30,%xmm5,%xmm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %xmm21,%xmm5,%xmm5 + vextracti32x4 $0,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %xmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm21,%zmm21{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %zmm29,%zmm20,%zmm20 + vpshufb %xmm29,%xmm21,%xmm21 + vextracti32x4 $0,%zmm21,%xmm7 + subq $16 * (13 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_532 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 144(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm21,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm21,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm21,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm21,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_532 +.L_small_initial_partial_block_532: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 160(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_532: + + orq %r8,%r8 + je .L_after_reduction_532 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_532: + jmp .L_last_blocks_done_506 +.L_last_num_blocks_is_14_506: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $242,%r15d + jae .L_16_blocks_overflow_533 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %ymm27,%ymm4,%ymm5 + jmp .L_16_blocks_ok_533 + +.L_16_blocks_overflow_533: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %ymm29,%ymm5,%ymm5 +.L_16_blocks_ok_533: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $1,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%ymm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %ymm30,%ymm5,%ymm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %ymm21,%ymm5,%ymm5 + vextracti32x4 $1,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %ymm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm21,%zmm21{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %zmm29,%zmm20,%zmm20 + vpshufb %ymm29,%ymm21,%ymm21 + vextracti32x4 $1,%zmm21,%xmm7 + subq $16 * (14 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_534 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 128(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm21,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm21,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm21,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm21,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_534 +.L_small_initial_partial_block_534: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 144(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm21,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm21,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm21,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm21,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_534: + + orq %r8,%r8 + je .L_after_reduction_534 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_534: + jmp .L_last_blocks_done_506 +.L_last_num_blocks_is_15_506: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $241,%r15d + jae .L_16_blocks_overflow_535 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp .L_16_blocks_ok_535 + +.L_16_blocks_overflow_535: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +.L_16_blocks_ok_535: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $2,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%zmm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + vextracti32x4 $2,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %zmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm21,%zmm21{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %zmm29,%zmm20,%zmm20 + vpshufb %zmm29,%zmm21,%zmm21 + vextracti32x4 $2,%zmm21,%xmm7 + subq $16 * (15 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_536 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 112(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm21,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm21,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm21,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm21,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_536 +.L_small_initial_partial_block_536: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 128(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm21,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm21,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm21,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm21,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_536: + + orq %r8,%r8 + je .L_after_reduction_536 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_536: + jmp .L_last_blocks_done_506 +.L_last_num_blocks_is_16_506: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $240,%r15d + jae .L_16_blocks_overflow_537 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp .L_16_blocks_ok_537 + +.L_16_blocks_overflow_537: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +.L_16_blocks_ok_537: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $3,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%zmm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + vextracti32x4 $3,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %zmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm21,%zmm21{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %zmm29,%zmm20,%zmm20 + vpshufb %zmm29,%zmm21,%zmm21 + vextracti32x4 $3,%zmm21,%xmm7 + subq $16 * (16 - 1),%r8 +.L_small_initial_partial_block_538: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 112(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm21,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm21,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm21,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm21,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_538: + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_538: + jmp .L_last_blocks_done_506 +.L_last_num_blocks_is_0_506: + vmovdqa64 1024(%rsp),%zmm13 + vmovdqu64 0(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 1088(%rsp),%zmm13 + vmovdqu64 64(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + vpternlogq $0x96,%zmm10,%zmm4,%zmm26 + vpternlogq $0x96,%zmm6,%zmm0,%zmm24 + vpternlogq $0x96,%zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + vmovdqa64 1152(%rsp),%zmm13 + vmovdqu64 128(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 1216(%rsp),%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + + vpternlogq $0x96,%zmm10,%zmm4,%zmm26 + vpternlogq $0x96,%zmm6,%zmm0,%zmm24 + vpternlogq $0x96,%zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + + vpsrldq $8,%zmm26,%zmm0 + vpslldq $8,%zmm26,%zmm3 + vpxorq %zmm0,%zmm24,%zmm24 + vpxorq %zmm3,%zmm25,%zmm25 + vextracti64x4 $1,%zmm24,%ymm0 + vpxorq %ymm0,%ymm24,%ymm24 + vextracti32x4 $1,%ymm24,%xmm0 + vpxorq %xmm0,%xmm24,%xmm24 + vextracti64x4 $1,%zmm25,%ymm3 + vpxorq %ymm3,%ymm25,%ymm25 + vextracti32x4 $1,%ymm25,%xmm3 + vpxorq %xmm3,%xmm25,%xmm25 + vmovdqa64 POLY2(%rip),%xmm4 + + + vpclmulqdq $0x01,%xmm25,%xmm4,%xmm0 + vpslldq $8,%xmm0,%xmm0 + vpxorq %xmm0,%xmm25,%xmm0 + + + vpclmulqdq $0x00,%xmm0,%xmm4,%xmm3 + vpsrldq $4,%xmm3,%xmm3 + vpclmulqdq $0x10,%xmm0,%xmm4,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm24,%xmm3,%xmm14 + +.L_last_blocks_done_506: + vpshufb %xmm29,%xmm2,%xmm2 + jmp .L_ghash_done_497 +.L_encrypt_32_blocks_497: + cmpb $240,%r15b + jae .L_16_blocks_overflow_539 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp .L_16_blocks_ok_539 +.L_16_blocks_overflow_539: + vpshufb %zmm29,%zmm2,%zmm2 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +.L_16_blocks_ok_539: + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp),%zmm1 + + + + + vshufi64x2 $255,%zmm5,%zmm5,%zmm2 + addb $16,%r15b + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + + + + + + + + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm6 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm6 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + + + + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%zmm21 + + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm15,%zmm10,%zmm26 + vpxorq %zmm12,%zmm6,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + + + + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + + + + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %zmm5,192(%r10,%r11,1) + vpshufb %zmm29,%zmm17,%zmm0 + vpshufb %zmm29,%zmm19,%zmm3 + vpshufb %zmm29,%zmm20,%zmm4 + vpshufb %zmm29,%zmm21,%zmm5 + vmovdqa64 %zmm0,1280(%rsp) + vmovdqa64 %zmm3,1344(%rsp) + vmovdqa64 %zmm4,1408(%rsp) + vmovdqa64 %zmm5,1472(%rsp) + cmpb $240,%r15b + jae .L_16_blocks_overflow_540 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp .L_16_blocks_ok_540 +.L_16_blocks_overflow_540: + vpshufb %zmm29,%zmm2,%zmm2 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +.L_16_blocks_ok_540: + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 256(%rsp),%zmm1 + + + + + vshufi64x2 $255,%zmm5,%zmm5,%zmm2 + addb $16,%r15b + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 320(%rsp),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + + + + + + + + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm6 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 384(%rsp),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 448(%rsp),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm6 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + + + + vmovdqu8 256(%rcx,%r11,1),%zmm17 + vmovdqu8 320(%rcx,%r11,1),%zmm19 + vmovdqu8 384(%rcx,%r11,1),%zmm20 + vmovdqu8 448(%rcx,%r11,1),%zmm21 + + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vpternlogq $0x96,%zmm12,%zmm6,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + + + + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + + + + movq %r9,%r10 + vmovdqu8 %zmm0,256(%r10,%r11,1) + vmovdqu8 %zmm3,320(%r10,%r11,1) + vmovdqu8 %zmm4,384(%r10,%r11,1) + vmovdqu8 %zmm5,448(%r10,%r11,1) + vpshufb %zmm29,%zmm17,%zmm0 + vpshufb %zmm29,%zmm19,%zmm3 + vpshufb %zmm29,%zmm20,%zmm4 + vpshufb %zmm29,%zmm21,%zmm5 + vmovdqa64 %zmm0,768(%rsp) + vmovdqa64 %zmm3,832(%rsp) + vmovdqa64 %zmm4,896(%rsp) + vmovdqa64 %zmm5,960(%rsp) + vmovdqa64 1280(%rsp),%zmm13 + vmovdqu64 512(%rsp),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 1344(%rsp),%zmm13 + vmovdqu64 576(%rsp),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + vpternlogq $0x96,%zmm10,%zmm4,%zmm26 + vpternlogq $0x96,%zmm6,%zmm0,%zmm24 + vpternlogq $0x96,%zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + vmovdqa64 1408(%rsp),%zmm13 + vmovdqu64 640(%rsp),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 1472(%rsp),%zmm13 + vmovdqu64 704(%rsp),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + + vpternlogq $0x96,%zmm10,%zmm4,%zmm26 + vpternlogq $0x96,%zmm6,%zmm0,%zmm24 + vpternlogq $0x96,%zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + + vpsrldq $8,%zmm26,%zmm0 + vpslldq $8,%zmm26,%zmm3 + vpxorq %zmm0,%zmm24,%zmm24 + vpxorq %zmm3,%zmm25,%zmm25 + vextracti64x4 $1,%zmm24,%ymm0 + vpxorq %ymm0,%ymm24,%ymm24 + vextracti32x4 $1,%ymm24,%xmm0 + vpxorq %xmm0,%xmm24,%xmm24 + vextracti64x4 $1,%zmm25,%ymm3 + vpxorq %ymm3,%ymm25,%ymm25 + vextracti32x4 $1,%ymm25,%xmm3 + vpxorq %xmm3,%xmm25,%xmm25 + vmovdqa64 POLY2(%rip),%xmm4 + + + vpclmulqdq $0x01,%xmm25,%xmm4,%xmm0 + vpslldq $8,%xmm0,%xmm0 + vpxorq %xmm0,%xmm25,%xmm0 + + + vpclmulqdq $0x00,%xmm0,%xmm4,%xmm3 + vpsrldq $4,%xmm3,%xmm3 + vpclmulqdq $0x10,%xmm0,%xmm4,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm24,%xmm3,%xmm14 + + subq $512,%r8 + addq $512,%r11 + movl %r8d,%r10d + andl $~15,%r10d + movl $512,%ebx + subl %r10d,%ebx + movl %r8d,%r10d + addl $15,%r10d + shrl $4,%r10d + je .L_last_num_blocks_is_0_541 + + cmpl $8,%r10d + je .L_last_num_blocks_is_8_541 + jb .L_last_num_blocks_is_7_1_541 + + + cmpl $12,%r10d + je .L_last_num_blocks_is_12_541 + jb .L_last_num_blocks_is_11_9_541 + + + cmpl $15,%r10d + je .L_last_num_blocks_is_15_541 + ja .L_last_num_blocks_is_16_541 + cmpl $14,%r10d + je .L_last_num_blocks_is_14_541 + jmp .L_last_num_blocks_is_13_541 + +.L_last_num_blocks_is_11_9_541: + + cmpl $10,%r10d + je .L_last_num_blocks_is_10_541 + ja .L_last_num_blocks_is_11_541 + jmp .L_last_num_blocks_is_9_541 + +.L_last_num_blocks_is_7_1_541: + cmpl $4,%r10d + je .L_last_num_blocks_is_4_541 + jb .L_last_num_blocks_is_3_1_541 + + cmpl $6,%r10d + ja .L_last_num_blocks_is_7_541 + je .L_last_num_blocks_is_6_541 + jmp .L_last_num_blocks_is_5_541 + +.L_last_num_blocks_is_3_1_541: + + cmpl $2,%r10d + ja .L_last_num_blocks_is_3_541 + je .L_last_num_blocks_is_2_541 +.L_last_num_blocks_is_1_541: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $255,%r15d + jae .L_16_blocks_overflow_542 + vpaddd %xmm28,%xmm2,%xmm0 + jmp .L_16_blocks_ok_542 + +.L_16_blocks_overflow_542: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %xmm29,%xmm0,%xmm0 +.L_16_blocks_ok_542: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $0,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%xmm17{%k1}{z} + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %xmm31,%xmm0,%xmm0 + vaesenclast %xmm30,%xmm0,%xmm0 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti32x4 $0,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %xmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm17,%zmm17{%k1}{z} + vpshufb %xmm29,%xmm17,%xmm17 + vextracti32x4 $0,%zmm17,%xmm7 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_543 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm17,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm17,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm17,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm17,%xmm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_543 +.L_small_initial_partial_block_543: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + + + vpsrldq $8,%zmm26,%zmm0 + vpslldq $8,%zmm26,%zmm3 + vpxorq %zmm0,%zmm24,%zmm24 + vpxorq %zmm3,%zmm25,%zmm25 + vextracti64x4 $1,%zmm24,%ymm0 + vpxorq %ymm0,%ymm24,%ymm24 + vextracti32x4 $1,%ymm24,%xmm0 + vpxorq %xmm0,%xmm24,%xmm24 + vextracti64x4 $1,%zmm25,%ymm3 + vpxorq %ymm3,%ymm25,%ymm25 + vextracti32x4 $1,%ymm25,%xmm3 + vpxorq %xmm3,%xmm25,%xmm25 + vmovdqa64 POLY2(%rip),%xmm0 + + + vpclmulqdq $0x01,%xmm25,%xmm0,%xmm3 + vpslldq $8,%xmm3,%xmm3 + vpxorq %xmm3,%xmm25,%xmm3 + + + vpclmulqdq $0x00,%xmm3,%xmm0,%xmm4 + vpsrldq $4,%xmm4,%xmm4 + vpclmulqdq $0x10,%xmm3,%xmm0,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm24,%xmm4,%xmm14 + + + + + + + + + + + + + vpxorq %xmm7,%xmm14,%xmm14 + + jmp .L_after_reduction_543 +.L_small_initial_compute_done_543: +.L_after_reduction_543: + jmp .L_last_blocks_done_541 +.L_last_num_blocks_is_2_541: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $254,%r15d + jae .L_16_blocks_overflow_544 + vpaddd %ymm28,%ymm2,%ymm0 + jmp .L_16_blocks_ok_544 + +.L_16_blocks_overflow_544: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %ymm29,%ymm0,%ymm0 +.L_16_blocks_ok_544: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $1,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%ymm17{%k1}{z} + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %ymm31,%ymm0,%ymm0 + vaesenclast %ymm30,%ymm0,%ymm0 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %ymm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm17,%zmm17{%k1}{z} + vpshufb %ymm29,%ymm17,%ymm17 + vextracti32x4 $1,%zmm17,%xmm7 + subq $16 * (2 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_545 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm17,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm17,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm17,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm17,%ymm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_545 +.L_small_initial_partial_block_545: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm17,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm17,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm17,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm17,%xmm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_545: + + orq %r8,%r8 + je .L_after_reduction_545 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_545: + jmp .L_last_blocks_done_541 +.L_last_num_blocks_is_3_541: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $253,%r15d + jae .L_16_blocks_overflow_546 + vpaddd %zmm28,%zmm2,%zmm0 + jmp .L_16_blocks_ok_546 + +.L_16_blocks_overflow_546: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %zmm29,%zmm0,%zmm0 +.L_16_blocks_ok_546: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $2,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm0,%zmm0 + vpxorq %zmm17,%zmm0,%zmm0 + vextracti32x4 $2,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm17,%zmm17{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vextracti32x4 $2,%zmm17,%xmm7 + subq $16 * (3 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_547 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_547 +.L_small_initial_partial_block_547: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm17,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm17,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm17,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm17,%ymm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_547: + + orq %r8,%r8 + je .L_after_reduction_547 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_547: + jmp .L_last_blocks_done_541 +.L_last_num_blocks_is_4_541: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $252,%r15d + jae .L_16_blocks_overflow_548 + vpaddd %zmm28,%zmm2,%zmm0 + jmp .L_16_blocks_ok_548 + +.L_16_blocks_overflow_548: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %zmm29,%zmm0,%zmm0 +.L_16_blocks_ok_548: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $3,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm0,%zmm0 + vpxorq %zmm17,%zmm0,%zmm0 + vextracti32x4 $3,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm17,%zmm17{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vextracti32x4 $3,%zmm17,%xmm7 + subq $16 * (4 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_549 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_549 +.L_small_initial_partial_block_549: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_549: + + orq %r8,%r8 + je .L_after_reduction_549 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_549: + jmp .L_last_blocks_done_541 +.L_last_num_blocks_is_5_541: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $251,%r15d + jae .L_16_blocks_overflow_550 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %xmm27,%xmm0,%xmm3 + jmp .L_16_blocks_ok_550 + +.L_16_blocks_overflow_550: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %xmm29,%xmm3,%xmm3 +.L_16_blocks_ok_550: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $0,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%xmm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %xmm30,%xmm3,%xmm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %xmm19,%xmm3,%xmm3 + vextracti32x4 $0,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %xmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm19,%zmm19{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %xmm29,%xmm19,%xmm19 + vextracti32x4 $0,%zmm19,%xmm7 + subq $16 * (5 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_551 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm19,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm19,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm19,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm19,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_551 +.L_small_initial_partial_block_551: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_551: + + orq %r8,%r8 + je .L_after_reduction_551 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_551: + jmp .L_last_blocks_done_541 +.L_last_num_blocks_is_6_541: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $250,%r15d + jae .L_16_blocks_overflow_552 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %ymm27,%ymm0,%ymm3 + jmp .L_16_blocks_ok_552 + +.L_16_blocks_overflow_552: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %ymm29,%ymm3,%ymm3 +.L_16_blocks_ok_552: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $1,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%ymm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %ymm30,%ymm3,%ymm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %ymm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm19,%zmm19{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %ymm29,%ymm19,%ymm19 + vextracti32x4 $1,%zmm19,%xmm7 + subq $16 * (6 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_553 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm19,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm19,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm19,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm19,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_553 +.L_small_initial_partial_block_553: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm19,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm19,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm19,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm19,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_553: + + orq %r8,%r8 + je .L_after_reduction_553 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_553: + jmp .L_last_blocks_done_541 +.L_last_num_blocks_is_7_541: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $249,%r15d + jae .L_16_blocks_overflow_554 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + jmp .L_16_blocks_ok_554 + +.L_16_blocks_overflow_554: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 +.L_16_blocks_ok_554: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $2,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti32x4 $2,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm19,%zmm19{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vextracti32x4 $2,%zmm19,%xmm7 + subq $16 * (7 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_555 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_555 +.L_small_initial_partial_block_555: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm19,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm19,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm19,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm19,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_555: + + orq %r8,%r8 + je .L_after_reduction_555 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_555: + jmp .L_last_blocks_done_541 +.L_last_num_blocks_is_8_541: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $248,%r15d + jae .L_16_blocks_overflow_556 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + jmp .L_16_blocks_ok_556 + +.L_16_blocks_overflow_556: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 +.L_16_blocks_ok_556: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $3,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti32x4 $3,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm19,%zmm19{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vextracti32x4 $3,%zmm19,%xmm7 + subq $16 * (8 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_557 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_557 +.L_small_initial_partial_block_557: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_557: + + orq %r8,%r8 + je .L_after_reduction_557 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_557: + jmp .L_last_blocks_done_541 +.L_last_num_blocks_is_9_541: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $247,%r15d + jae .L_16_blocks_overflow_558 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %xmm27,%xmm3,%xmm4 + jmp .L_16_blocks_ok_558 + +.L_16_blocks_overflow_558: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %xmm29,%xmm4,%xmm4 +.L_16_blocks_ok_558: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $0,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%xmm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %xmm30,%xmm4,%xmm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %xmm20,%xmm4,%xmm4 + vextracti32x4 $0,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %xmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm20,%zmm20{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %xmm29,%xmm20,%xmm20 + vextracti32x4 $0,%zmm20,%xmm7 + subq $16 * (9 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_559 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm20,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm20,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm20,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm20,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_559 +.L_small_initial_partial_block_559: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_559: + + orq %r8,%r8 + je .L_after_reduction_559 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_559: + jmp .L_last_blocks_done_541 +.L_last_num_blocks_is_10_541: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $246,%r15d + jae .L_16_blocks_overflow_560 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %ymm27,%ymm3,%ymm4 + jmp .L_16_blocks_ok_560 + +.L_16_blocks_overflow_560: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %ymm29,%ymm4,%ymm4 +.L_16_blocks_ok_560: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $1,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%ymm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %ymm30,%ymm4,%ymm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %ymm20,%ymm4,%ymm4 + vextracti32x4 $1,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %ymm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm20,%zmm20{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %ymm29,%ymm20,%ymm20 + vextracti32x4 $1,%zmm20,%xmm7 + subq $16 * (10 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_561 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm20,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm20,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm20,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm20,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_561 +.L_small_initial_partial_block_561: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm20,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm20,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm20,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm20,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_561: + + orq %r8,%r8 + je .L_after_reduction_561 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_561: + jmp .L_last_blocks_done_541 +.L_last_num_blocks_is_11_541: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $245,%r15d + jae .L_16_blocks_overflow_562 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + jmp .L_16_blocks_ok_562 + +.L_16_blocks_overflow_562: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 +.L_16_blocks_ok_562: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $2,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vextracti32x4 $2,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm20,%zmm20{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %zmm29,%zmm20,%zmm20 + vextracti32x4 $2,%zmm20,%xmm7 + subq $16 * (11 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_563 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_563 +.L_small_initial_partial_block_563: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm20,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm20,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm20,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm20,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_563: + + orq %r8,%r8 + je .L_after_reduction_563 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_563: + jmp .L_last_blocks_done_541 +.L_last_num_blocks_is_12_541: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $244,%r15d + jae .L_16_blocks_overflow_564 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + jmp .L_16_blocks_ok_564 + +.L_16_blocks_overflow_564: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 +.L_16_blocks_ok_564: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $3,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vextracti32x4 $3,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm20,%zmm20{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %zmm29,%zmm20,%zmm20 + vextracti32x4 $3,%zmm20,%xmm7 + subq $16 * (12 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_565 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 160(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_565 +.L_small_initial_partial_block_565: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_565: + + orq %r8,%r8 + je .L_after_reduction_565 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_565: + jmp .L_last_blocks_done_541 +.L_last_num_blocks_is_13_541: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $243,%r15d + jae .L_16_blocks_overflow_566 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %xmm27,%xmm4,%xmm5 + jmp .L_16_blocks_ok_566 + +.L_16_blocks_overflow_566: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %xmm29,%xmm5,%xmm5 +.L_16_blocks_ok_566: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $0,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%xmm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %xmm30,%xmm5,%xmm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %xmm21,%xmm5,%xmm5 + vextracti32x4 $0,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %xmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm21,%zmm21{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %zmm29,%zmm20,%zmm20 + vpshufb %xmm29,%xmm21,%xmm21 + vextracti32x4 $0,%zmm21,%xmm7 + subq $16 * (13 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_567 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 144(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm21,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm21,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm21,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm21,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_567 +.L_small_initial_partial_block_567: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 160(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_567: + + orq %r8,%r8 + je .L_after_reduction_567 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_567: + jmp .L_last_blocks_done_541 +.L_last_num_blocks_is_14_541: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $242,%r15d + jae .L_16_blocks_overflow_568 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %ymm27,%ymm4,%ymm5 + jmp .L_16_blocks_ok_568 + +.L_16_blocks_overflow_568: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %ymm29,%ymm5,%ymm5 +.L_16_blocks_ok_568: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $1,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%ymm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %ymm30,%ymm5,%ymm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %ymm21,%ymm5,%ymm5 + vextracti32x4 $1,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %ymm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm21,%zmm21{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %zmm29,%zmm20,%zmm20 + vpshufb %ymm29,%ymm21,%ymm21 + vextracti32x4 $1,%zmm21,%xmm7 + subq $16 * (14 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_569 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 128(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm21,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm21,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm21,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm21,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_569 +.L_small_initial_partial_block_569: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 144(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm21,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm21,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm21,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm21,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_569: + + orq %r8,%r8 + je .L_after_reduction_569 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_569: + jmp .L_last_blocks_done_541 +.L_last_num_blocks_is_15_541: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $241,%r15d + jae .L_16_blocks_overflow_570 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp .L_16_blocks_ok_570 + +.L_16_blocks_overflow_570: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +.L_16_blocks_ok_570: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $2,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%zmm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + vextracti32x4 $2,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %zmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm21,%zmm21{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %zmm29,%zmm20,%zmm20 + vpshufb %zmm29,%zmm21,%zmm21 + vextracti32x4 $2,%zmm21,%xmm7 + subq $16 * (15 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_571 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 112(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm21,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm21,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm21,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm21,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_571 +.L_small_initial_partial_block_571: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 128(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm21,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm21,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm21,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm21,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_571: + + orq %r8,%r8 + je .L_after_reduction_571 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_571: + jmp .L_last_blocks_done_541 +.L_last_num_blocks_is_16_541: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $240,%r15d + jae .L_16_blocks_overflow_572 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp .L_16_blocks_ok_572 + +.L_16_blocks_overflow_572: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +.L_16_blocks_ok_572: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $3,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%zmm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + vextracti32x4 $3,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %zmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm21,%zmm21{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %zmm29,%zmm20,%zmm20 + vpshufb %zmm29,%zmm21,%zmm21 + vextracti32x4 $3,%zmm21,%xmm7 + subq $16 * (16 - 1),%r8 +.L_small_initial_partial_block_573: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 112(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm21,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm21,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm21,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm21,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_573: + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_573: + jmp .L_last_blocks_done_541 +.L_last_num_blocks_is_0_541: + vmovdqa64 768(%rsp),%zmm13 + vpxorq %zmm14,%zmm13,%zmm13 + vmovdqu64 0(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 832(%rsp),%zmm13 + vmovdqu64 64(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + vpxorq %zmm10,%zmm4,%zmm26 + vpxorq %zmm6,%zmm0,%zmm24 + vpxorq %zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + vmovdqa64 896(%rsp),%zmm13 + vmovdqu64 128(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 960(%rsp),%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + + vpternlogq $0x96,%zmm10,%zmm4,%zmm26 + vpternlogq $0x96,%zmm6,%zmm0,%zmm24 + vpternlogq $0x96,%zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + + vpsrldq $8,%zmm26,%zmm0 + vpslldq $8,%zmm26,%zmm3 + vpxorq %zmm0,%zmm24,%zmm24 + vpxorq %zmm3,%zmm25,%zmm25 + vextracti64x4 $1,%zmm24,%ymm0 + vpxorq %ymm0,%ymm24,%ymm24 + vextracti32x4 $1,%ymm24,%xmm0 + vpxorq %xmm0,%xmm24,%xmm24 + vextracti64x4 $1,%zmm25,%ymm3 + vpxorq %ymm3,%ymm25,%ymm25 + vextracti32x4 $1,%ymm25,%xmm3 + vpxorq %xmm3,%xmm25,%xmm25 + vmovdqa64 POLY2(%rip),%xmm4 + + + vpclmulqdq $0x01,%xmm25,%xmm4,%xmm0 + vpslldq $8,%xmm0,%xmm0 + vpxorq %xmm0,%xmm25,%xmm0 + + + vpclmulqdq $0x00,%xmm0,%xmm4,%xmm3 + vpsrldq $4,%xmm3,%xmm3 + vpclmulqdq $0x10,%xmm0,%xmm4,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm24,%xmm3,%xmm14 + +.L_last_blocks_done_541: + vpshufb %xmm29,%xmm2,%xmm2 + jmp .L_ghash_done_497 +.L_encrypt_16_blocks_497: + cmpb $240,%r15b + jae .L_16_blocks_overflow_574 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp .L_16_blocks_ok_574 +.L_16_blocks_overflow_574: + vpshufb %zmm29,%zmm2,%zmm2 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +.L_16_blocks_ok_574: + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp),%zmm1 + + + + + vshufi64x2 $255,%zmm5,%zmm5,%zmm2 + addb $16,%r15b + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + + + + + + + + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm6 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm6 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + + + + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%zmm21 + + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm15,%zmm10,%zmm26 + vpxorq %zmm12,%zmm6,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + + + + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + + + + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %zmm5,192(%r10,%r11,1) + vpshufb %zmm29,%zmm17,%zmm0 + vpshufb %zmm29,%zmm19,%zmm3 + vpshufb %zmm29,%zmm20,%zmm4 + vpshufb %zmm29,%zmm21,%zmm5 + vmovdqa64 %zmm0,1280(%rsp) + vmovdqa64 %zmm3,1344(%rsp) + vmovdqa64 %zmm4,1408(%rsp) + vmovdqa64 %zmm5,1472(%rsp) + vmovdqa64 1024(%rsp),%zmm13 + vmovdqu64 256(%rsp),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 1088(%rsp),%zmm13 + vmovdqu64 320(%rsp),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + vpternlogq $0x96,%zmm10,%zmm4,%zmm26 + vpternlogq $0x96,%zmm6,%zmm0,%zmm24 + vpternlogq $0x96,%zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + vmovdqa64 1152(%rsp),%zmm13 + vmovdqu64 384(%rsp),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 1216(%rsp),%zmm13 + vmovdqu64 448(%rsp),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + + vpternlogq $0x96,%zmm10,%zmm4,%zmm26 + vpternlogq $0x96,%zmm6,%zmm0,%zmm24 + vpternlogq $0x96,%zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + subq $256,%r8 + addq $256,%r11 + movl %r8d,%r10d + addl $15,%r10d + shrl $4,%r10d + je .L_last_num_blocks_is_0_575 + + cmpl $8,%r10d + je .L_last_num_blocks_is_8_575 + jb .L_last_num_blocks_is_7_1_575 + + + cmpl $12,%r10d + je .L_last_num_blocks_is_12_575 + jb .L_last_num_blocks_is_11_9_575 + + + cmpl $15,%r10d + je .L_last_num_blocks_is_15_575 + ja .L_last_num_blocks_is_16_575 + cmpl $14,%r10d + je .L_last_num_blocks_is_14_575 + jmp .L_last_num_blocks_is_13_575 + +.L_last_num_blocks_is_11_9_575: + + cmpl $10,%r10d + je .L_last_num_blocks_is_10_575 + ja .L_last_num_blocks_is_11_575 + jmp .L_last_num_blocks_is_9_575 + +.L_last_num_blocks_is_7_1_575: + cmpl $4,%r10d + je .L_last_num_blocks_is_4_575 + jb .L_last_num_blocks_is_3_1_575 + + cmpl $6,%r10d + ja .L_last_num_blocks_is_7_575 + je .L_last_num_blocks_is_6_575 + jmp .L_last_num_blocks_is_5_575 + +.L_last_num_blocks_is_3_1_575: + + cmpl $2,%r10d + ja .L_last_num_blocks_is_3_575 + je .L_last_num_blocks_is_2_575 +.L_last_num_blocks_is_1_575: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $255,%r15d + jae .L_16_blocks_overflow_576 + vpaddd %xmm28,%xmm2,%xmm0 + jmp .L_16_blocks_ok_576 + +.L_16_blocks_overflow_576: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %xmm29,%xmm0,%xmm0 +.L_16_blocks_ok_576: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $0,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%xmm17{%k1}{z} + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %xmm31,%xmm0,%xmm0 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %xmm30,%xmm0,%xmm0 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti32x4 $0,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %xmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm17,%zmm17{%k1}{z} + vpshufb %xmm29,%xmm17,%xmm17 + vextracti32x4 $0,%zmm17,%xmm7 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_577 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm17,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm17,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm17,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm17,%xmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_577 +.L_small_initial_partial_block_577: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + + + + + + + + + + + + vpxorq %xmm7,%xmm14,%xmm14 + + jmp .L_after_reduction_577 +.L_small_initial_compute_done_577: +.L_after_reduction_577: + jmp .L_last_blocks_done_575 +.L_last_num_blocks_is_2_575: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $254,%r15d + jae .L_16_blocks_overflow_578 + vpaddd %ymm28,%ymm2,%ymm0 + jmp .L_16_blocks_ok_578 + +.L_16_blocks_overflow_578: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %ymm29,%ymm0,%ymm0 +.L_16_blocks_ok_578: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $1,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%ymm17{%k1}{z} + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %ymm31,%ymm0,%ymm0 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %ymm30,%ymm0,%ymm0 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %ymm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm17,%zmm17{%k1}{z} + vpshufb %ymm29,%ymm17,%ymm17 + vextracti32x4 $1,%zmm17,%xmm7 + subq $16 * (2 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_579 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm17,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm17,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm17,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm17,%ymm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_579 +.L_small_initial_partial_block_579: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm17,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm17,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm17,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm17,%xmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_579: + + orq %r8,%r8 + je .L_after_reduction_579 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_579: + jmp .L_last_blocks_done_575 +.L_last_num_blocks_is_3_575: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $253,%r15d + jae .L_16_blocks_overflow_580 + vpaddd %zmm28,%zmm2,%zmm0 + jmp .L_16_blocks_ok_580 + +.L_16_blocks_overflow_580: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %zmm29,%zmm0,%zmm0 +.L_16_blocks_ok_580: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $2,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vpxorq %zmm17,%zmm0,%zmm0 + vextracti32x4 $2,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm17,%zmm17{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vextracti32x4 $2,%zmm17,%xmm7 + subq $16 * (3 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_581 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_581 +.L_small_initial_partial_block_581: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm17,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm17,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm17,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm17,%ymm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_581: + + orq %r8,%r8 + je .L_after_reduction_581 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_581: + jmp .L_last_blocks_done_575 +.L_last_num_blocks_is_4_575: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $252,%r15d + jae .L_16_blocks_overflow_582 + vpaddd %zmm28,%zmm2,%zmm0 + jmp .L_16_blocks_ok_582 + +.L_16_blocks_overflow_582: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %zmm29,%zmm0,%zmm0 +.L_16_blocks_ok_582: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $3,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vpxorq %zmm17,%zmm0,%zmm0 + vextracti32x4 $3,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm17,%zmm17{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vextracti32x4 $3,%zmm17,%xmm7 + subq $16 * (4 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_583 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_583 +.L_small_initial_partial_block_583: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_583: + + orq %r8,%r8 + je .L_after_reduction_583 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_583: + jmp .L_last_blocks_done_575 +.L_last_num_blocks_is_5_575: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $251,%r15d + jae .L_16_blocks_overflow_584 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %xmm27,%xmm0,%xmm3 + jmp .L_16_blocks_ok_584 + +.L_16_blocks_overflow_584: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %xmm29,%xmm3,%xmm3 +.L_16_blocks_ok_584: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $0,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%xmm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %xmm30,%xmm3,%xmm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %xmm19,%xmm3,%xmm3 + vextracti32x4 $0,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %xmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm19,%zmm19{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %xmm29,%xmm19,%xmm19 + vextracti32x4 $0,%zmm19,%xmm7 + subq $16 * (5 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_585 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm19,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm19,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm19,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm19,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_585 +.L_small_initial_partial_block_585: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_585: + + orq %r8,%r8 + je .L_after_reduction_585 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_585: + jmp .L_last_blocks_done_575 +.L_last_num_blocks_is_6_575: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $250,%r15d + jae .L_16_blocks_overflow_586 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %ymm27,%ymm0,%ymm3 + jmp .L_16_blocks_ok_586 + +.L_16_blocks_overflow_586: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %ymm29,%ymm3,%ymm3 +.L_16_blocks_ok_586: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $1,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%ymm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %ymm30,%ymm3,%ymm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %ymm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm19,%zmm19{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %ymm29,%ymm19,%ymm19 + vextracti32x4 $1,%zmm19,%xmm7 + subq $16 * (6 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_587 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm19,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm19,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm19,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm19,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_587 +.L_small_initial_partial_block_587: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm19,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm19,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm19,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm19,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_587: + + orq %r8,%r8 + je .L_after_reduction_587 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_587: + jmp .L_last_blocks_done_575 +.L_last_num_blocks_is_7_575: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $249,%r15d + jae .L_16_blocks_overflow_588 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + jmp .L_16_blocks_ok_588 + +.L_16_blocks_overflow_588: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 +.L_16_blocks_ok_588: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $2,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti32x4 $2,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm19,%zmm19{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vextracti32x4 $2,%zmm19,%xmm7 + subq $16 * (7 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_589 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_589 +.L_small_initial_partial_block_589: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm19,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm19,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm19,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm19,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_589: + + orq %r8,%r8 + je .L_after_reduction_589 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_589: + jmp .L_last_blocks_done_575 +.L_last_num_blocks_is_8_575: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $248,%r15d + jae .L_16_blocks_overflow_590 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + jmp .L_16_blocks_ok_590 + +.L_16_blocks_overflow_590: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 +.L_16_blocks_ok_590: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $3,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti32x4 $3,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm19,%zmm19{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vextracti32x4 $3,%zmm19,%xmm7 + subq $16 * (8 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_591 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_591 +.L_small_initial_partial_block_591: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_591: + + orq %r8,%r8 + je .L_after_reduction_591 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_591: + jmp .L_last_blocks_done_575 +.L_last_num_blocks_is_9_575: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $247,%r15d + jae .L_16_blocks_overflow_592 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %xmm27,%xmm3,%xmm4 + jmp .L_16_blocks_ok_592 + +.L_16_blocks_overflow_592: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %xmm29,%xmm4,%xmm4 +.L_16_blocks_ok_592: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $0,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%xmm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %xmm30,%xmm4,%xmm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %xmm20,%xmm4,%xmm4 + vextracti32x4 $0,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %xmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm20,%zmm20{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %xmm29,%xmm20,%xmm20 + vextracti32x4 $0,%zmm20,%xmm7 + subq $16 * (9 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_593 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm20,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm20,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm20,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm20,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_593 +.L_small_initial_partial_block_593: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_593: + + orq %r8,%r8 + je .L_after_reduction_593 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_593: + jmp .L_last_blocks_done_575 +.L_last_num_blocks_is_10_575: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $246,%r15d + jae .L_16_blocks_overflow_594 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %ymm27,%ymm3,%ymm4 + jmp .L_16_blocks_ok_594 + +.L_16_blocks_overflow_594: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %ymm29,%ymm4,%ymm4 +.L_16_blocks_ok_594: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $1,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%ymm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %ymm30,%ymm4,%ymm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %ymm20,%ymm4,%ymm4 + vextracti32x4 $1,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %ymm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm20,%zmm20{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %ymm29,%ymm20,%ymm20 + vextracti32x4 $1,%zmm20,%xmm7 + subq $16 * (10 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_595 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm20,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm20,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm20,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm20,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_595 +.L_small_initial_partial_block_595: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm20,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm20,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm20,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm20,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_595: + + orq %r8,%r8 + je .L_after_reduction_595 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_595: + jmp .L_last_blocks_done_575 +.L_last_num_blocks_is_11_575: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $245,%r15d + jae .L_16_blocks_overflow_596 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + jmp .L_16_blocks_ok_596 + +.L_16_blocks_overflow_596: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 +.L_16_blocks_ok_596: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $2,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vextracti32x4 $2,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm20,%zmm20{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %zmm29,%zmm20,%zmm20 + vextracti32x4 $2,%zmm20,%xmm7 + subq $16 * (11 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_597 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_597 +.L_small_initial_partial_block_597: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm20,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm20,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm20,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm20,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_597: + + orq %r8,%r8 + je .L_after_reduction_597 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_597: + jmp .L_last_blocks_done_575 +.L_last_num_blocks_is_12_575: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $244,%r15d + jae .L_16_blocks_overflow_598 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + jmp .L_16_blocks_ok_598 + +.L_16_blocks_overflow_598: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 +.L_16_blocks_ok_598: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $3,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vextracti32x4 $3,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm20,%zmm20{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %zmm29,%zmm20,%zmm20 + vextracti32x4 $3,%zmm20,%xmm7 + subq $16 * (12 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_599 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 160(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_599 +.L_small_initial_partial_block_599: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_599: + + orq %r8,%r8 + je .L_after_reduction_599 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_599: + jmp .L_last_blocks_done_575 +.L_last_num_blocks_is_13_575: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $243,%r15d + jae .L_16_blocks_overflow_600 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %xmm27,%xmm4,%xmm5 + jmp .L_16_blocks_ok_600 + +.L_16_blocks_overflow_600: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %xmm29,%xmm5,%xmm5 +.L_16_blocks_ok_600: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $0,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%xmm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %xmm30,%xmm5,%xmm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %xmm21,%xmm5,%xmm5 + vextracti32x4 $0,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %xmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm21,%zmm21{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %zmm29,%zmm20,%zmm20 + vpshufb %xmm29,%xmm21,%xmm21 + vextracti32x4 $0,%zmm21,%xmm7 + subq $16 * (13 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_601 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 144(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm21,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm21,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm21,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm21,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_601 +.L_small_initial_partial_block_601: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 160(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_601: + + orq %r8,%r8 + je .L_after_reduction_601 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_601: + jmp .L_last_blocks_done_575 +.L_last_num_blocks_is_14_575: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $242,%r15d + jae .L_16_blocks_overflow_602 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %ymm27,%ymm4,%ymm5 + jmp .L_16_blocks_ok_602 + +.L_16_blocks_overflow_602: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %ymm29,%ymm5,%ymm5 +.L_16_blocks_ok_602: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $1,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%ymm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %ymm30,%ymm5,%ymm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %ymm21,%ymm5,%ymm5 + vextracti32x4 $1,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %ymm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm21,%zmm21{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %zmm29,%zmm20,%zmm20 + vpshufb %ymm29,%ymm21,%ymm21 + vextracti32x4 $1,%zmm21,%xmm7 + subq $16 * (14 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_603 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 128(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm21,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm21,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm21,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm21,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_603 +.L_small_initial_partial_block_603: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 144(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm21,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm21,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm21,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm21,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_603: + + orq %r8,%r8 + je .L_after_reduction_603 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_603: + jmp .L_last_blocks_done_575 +.L_last_num_blocks_is_15_575: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $241,%r15d + jae .L_16_blocks_overflow_604 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp .L_16_blocks_ok_604 + +.L_16_blocks_overflow_604: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +.L_16_blocks_ok_604: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $2,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%zmm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + vextracti32x4 $2,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %zmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm21,%zmm21{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %zmm29,%zmm20,%zmm20 + vpshufb %zmm29,%zmm21,%zmm21 + vextracti32x4 $2,%zmm21,%xmm7 + subq $16 * (15 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_605 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 112(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm21,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm21,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm21,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm21,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_605 +.L_small_initial_partial_block_605: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 128(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm21,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm21,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm21,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm21,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_605: + + orq %r8,%r8 + je .L_after_reduction_605 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_605: + jmp .L_last_blocks_done_575 +.L_last_num_blocks_is_16_575: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $240,%r15d + jae .L_16_blocks_overflow_606 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp .L_16_blocks_ok_606 + +.L_16_blocks_overflow_606: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +.L_16_blocks_ok_606: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $3,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%zmm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + vextracti32x4 $3,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %zmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm21,%zmm21{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %zmm29,%zmm20,%zmm20 + vpshufb %zmm29,%zmm21,%zmm21 + vextracti32x4 $3,%zmm21,%xmm7 + subq $16 * (16 - 1),%r8 +.L_small_initial_partial_block_607: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 112(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm21,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm21,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm21,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm21,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_607: + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_607: + jmp .L_last_blocks_done_575 +.L_last_num_blocks_is_0_575: + vmovdqa64 1280(%rsp),%zmm13 + vmovdqu64 512(%rsp),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 1344(%rsp),%zmm13 + vmovdqu64 576(%rsp),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + vpternlogq $0x96,%zmm10,%zmm4,%zmm26 + vpternlogq $0x96,%zmm6,%zmm0,%zmm24 + vpternlogq $0x96,%zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + vmovdqa64 1408(%rsp),%zmm13 + vmovdqu64 640(%rsp),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 1472(%rsp),%zmm13 + vmovdqu64 704(%rsp),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + + vpternlogq $0x96,%zmm10,%zmm4,%zmm26 + vpternlogq $0x96,%zmm6,%zmm0,%zmm24 + vpternlogq $0x96,%zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + + vpsrldq $8,%zmm26,%zmm0 + vpslldq $8,%zmm26,%zmm3 + vpxorq %zmm0,%zmm24,%zmm24 + vpxorq %zmm3,%zmm25,%zmm25 + vextracti64x4 $1,%zmm24,%ymm0 + vpxorq %ymm0,%ymm24,%ymm24 + vextracti32x4 $1,%ymm24,%xmm0 + vpxorq %xmm0,%xmm24,%xmm24 + vextracti64x4 $1,%zmm25,%ymm3 + vpxorq %ymm3,%ymm25,%ymm25 + vextracti32x4 $1,%ymm25,%xmm3 + vpxorq %xmm3,%xmm25,%xmm25 + vmovdqa64 POLY2(%rip),%xmm4 + + + vpclmulqdq $0x01,%xmm25,%xmm4,%xmm0 + vpslldq $8,%xmm0,%xmm0 + vpxorq %xmm0,%xmm25,%xmm0 + + + vpclmulqdq $0x00,%xmm0,%xmm4,%xmm3 + vpsrldq $4,%xmm3,%xmm3 + vpclmulqdq $0x10,%xmm0,%xmm4,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm24,%xmm3,%xmm14 + +.L_last_blocks_done_575: + vpshufb %xmm29,%xmm2,%xmm2 + jmp .L_ghash_done_497 + +.L_message_below_32_blocks_497: + + + subq $256,%r8 + addq $256,%r11 + movl %r8d,%r10d + testq %r14,%r14 + jnz .L_skip_hkeys_precomputation_608 + vmovdqu64 640(%rsp),%zmm3 + + + vshufi64x2 $0x00,%zmm3,%zmm3,%zmm3 + + vmovdqu64 576(%rsp),%zmm4 + vmovdqu64 512(%rsp),%zmm5 + + vpclmulqdq $0x11,%zmm3,%zmm4,%zmm6 + vpclmulqdq $0x00,%zmm3,%zmm4,%zmm7 + vpclmulqdq $0x01,%zmm3,%zmm4,%zmm10 + vpclmulqdq $0x10,%zmm3,%zmm4,%zmm4 + vpxorq %zmm10,%zmm4,%zmm4 + + vpsrldq $8,%zmm4,%zmm10 + vpslldq $8,%zmm4,%zmm4 + vpxorq %zmm10,%zmm6,%zmm6 + vpxorq %zmm7,%zmm4,%zmm4 + + + + vmovdqu64 POLY2(%rip),%zmm10 + + vpclmulqdq $0x01,%zmm4,%zmm10,%zmm7 + vpslldq $8,%zmm7,%zmm7 + vpxorq %zmm7,%zmm4,%zmm4 + + + + vpclmulqdq $0x00,%zmm4,%zmm10,%zmm7 + vpsrldq $4,%zmm7,%zmm7 + vpclmulqdq $0x10,%zmm4,%zmm10,%zmm4 + vpslldq $4,%zmm4,%zmm4 + + vpternlogq $0x96,%zmm7,%zmm6,%zmm4 + + vmovdqu64 %zmm4,448(%rsp) + + vpclmulqdq $0x11,%zmm3,%zmm5,%zmm6 + vpclmulqdq $0x00,%zmm3,%zmm5,%zmm7 + vpclmulqdq $0x01,%zmm3,%zmm5,%zmm10 + vpclmulqdq $0x10,%zmm3,%zmm5,%zmm5 + vpxorq %zmm10,%zmm5,%zmm5 + + vpsrldq $8,%zmm5,%zmm10 + vpslldq $8,%zmm5,%zmm5 + vpxorq %zmm10,%zmm6,%zmm6 + vpxorq %zmm7,%zmm5,%zmm5 + + + + vmovdqu64 POLY2(%rip),%zmm10 + + vpclmulqdq $0x01,%zmm5,%zmm10,%zmm7 + vpslldq $8,%zmm7,%zmm7 + vpxorq %zmm7,%zmm5,%zmm5 + + + + vpclmulqdq $0x00,%zmm5,%zmm10,%zmm7 + vpsrldq $4,%zmm7,%zmm7 + vpclmulqdq $0x10,%zmm5,%zmm10,%zmm5 + vpslldq $4,%zmm5,%zmm5 + + vpternlogq $0x96,%zmm7,%zmm6,%zmm5 + + vmovdqu64 %zmm5,384(%rsp) + + vpclmulqdq $0x11,%zmm3,%zmm4,%zmm6 + vpclmulqdq $0x00,%zmm3,%zmm4,%zmm7 + vpclmulqdq $0x01,%zmm3,%zmm4,%zmm10 + vpclmulqdq $0x10,%zmm3,%zmm4,%zmm4 + vpxorq %zmm10,%zmm4,%zmm4 + + vpsrldq $8,%zmm4,%zmm10 + vpslldq $8,%zmm4,%zmm4 + vpxorq %zmm10,%zmm6,%zmm6 + vpxorq %zmm7,%zmm4,%zmm4 + + + + vmovdqu64 POLY2(%rip),%zmm10 + + vpclmulqdq $0x01,%zmm4,%zmm10,%zmm7 + vpslldq $8,%zmm7,%zmm7 + vpxorq %zmm7,%zmm4,%zmm4 + + + + vpclmulqdq $0x00,%zmm4,%zmm10,%zmm7 + vpsrldq $4,%zmm7,%zmm7 + vpclmulqdq $0x10,%zmm4,%zmm10,%zmm4 + vpslldq $4,%zmm4,%zmm4 + + vpternlogq $0x96,%zmm7,%zmm6,%zmm4 + + vmovdqu64 %zmm4,320(%rsp) + + vpclmulqdq $0x11,%zmm3,%zmm5,%zmm6 + vpclmulqdq $0x00,%zmm3,%zmm5,%zmm7 + vpclmulqdq $0x01,%zmm3,%zmm5,%zmm10 + vpclmulqdq $0x10,%zmm3,%zmm5,%zmm5 + vpxorq %zmm10,%zmm5,%zmm5 + + vpsrldq $8,%zmm5,%zmm10 + vpslldq $8,%zmm5,%zmm5 + vpxorq %zmm10,%zmm6,%zmm6 + vpxorq %zmm7,%zmm5,%zmm5 + + + + vmovdqu64 POLY2(%rip),%zmm10 + + vpclmulqdq $0x01,%zmm5,%zmm10,%zmm7 + vpslldq $8,%zmm7,%zmm7 + vpxorq %zmm7,%zmm5,%zmm5 + + + + vpclmulqdq $0x00,%zmm5,%zmm10,%zmm7 + vpsrldq $4,%zmm7,%zmm7 + vpclmulqdq $0x10,%zmm5,%zmm10,%zmm5 + vpslldq $4,%zmm5,%zmm5 + + vpternlogq $0x96,%zmm7,%zmm6,%zmm5 + + vmovdqu64 %zmm5,256(%rsp) +.L_skip_hkeys_precomputation_608: + movq $1,%r14 + andl $~15,%r10d + movl $512,%ebx + subl %r10d,%ebx + movl %r8d,%r10d + addl $15,%r10d + shrl $4,%r10d + je .L_last_num_blocks_is_0_609 + + cmpl $8,%r10d + je .L_last_num_blocks_is_8_609 + jb .L_last_num_blocks_is_7_1_609 + + + cmpl $12,%r10d + je .L_last_num_blocks_is_12_609 + jb .L_last_num_blocks_is_11_9_609 + + + cmpl $15,%r10d + je .L_last_num_blocks_is_15_609 + ja .L_last_num_blocks_is_16_609 + cmpl $14,%r10d + je .L_last_num_blocks_is_14_609 + jmp .L_last_num_blocks_is_13_609 + +.L_last_num_blocks_is_11_9_609: + + cmpl $10,%r10d + je .L_last_num_blocks_is_10_609 + ja .L_last_num_blocks_is_11_609 + jmp .L_last_num_blocks_is_9_609 + +.L_last_num_blocks_is_7_1_609: + cmpl $4,%r10d + je .L_last_num_blocks_is_4_609 + jb .L_last_num_blocks_is_3_1_609 + + cmpl $6,%r10d + ja .L_last_num_blocks_is_7_609 + je .L_last_num_blocks_is_6_609 + jmp .L_last_num_blocks_is_5_609 + +.L_last_num_blocks_is_3_1_609: + + cmpl $2,%r10d + ja .L_last_num_blocks_is_3_609 + je .L_last_num_blocks_is_2_609 +.L_last_num_blocks_is_1_609: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $255,%r15d + jae .L_16_blocks_overflow_610 + vpaddd %xmm28,%xmm2,%xmm0 + jmp .L_16_blocks_ok_610 + +.L_16_blocks_overflow_610: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %xmm29,%xmm0,%xmm0 +.L_16_blocks_ok_610: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $0,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%xmm17{%k1}{z} + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %xmm31,%xmm0,%xmm0 + vaesenclast %xmm30,%xmm0,%xmm0 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti32x4 $0,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %xmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm17,%zmm17{%k1}{z} + vpshufb %xmm29,%xmm17,%xmm17 + vextracti32x4 $0,%zmm17,%xmm7 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_611 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm17,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm17,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm17,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm17,%xmm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_611 +.L_small_initial_partial_block_611: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + + + vpsrldq $8,%zmm26,%zmm0 + vpslldq $8,%zmm26,%zmm3 + vpxorq %zmm0,%zmm24,%zmm24 + vpxorq %zmm3,%zmm25,%zmm25 + vextracti64x4 $1,%zmm24,%ymm0 + vpxorq %ymm0,%ymm24,%ymm24 + vextracti32x4 $1,%ymm24,%xmm0 + vpxorq %xmm0,%xmm24,%xmm24 + vextracti64x4 $1,%zmm25,%ymm3 + vpxorq %ymm3,%ymm25,%ymm25 + vextracti32x4 $1,%ymm25,%xmm3 + vpxorq %xmm3,%xmm25,%xmm25 + vmovdqa64 POLY2(%rip),%xmm0 + + + vpclmulqdq $0x01,%xmm25,%xmm0,%xmm3 + vpslldq $8,%xmm3,%xmm3 + vpxorq %xmm3,%xmm25,%xmm3 + + + vpclmulqdq $0x00,%xmm3,%xmm0,%xmm4 + vpsrldq $4,%xmm4,%xmm4 + vpclmulqdq $0x10,%xmm3,%xmm0,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm24,%xmm4,%xmm14 + + + + + + + + + + + + + vpxorq %xmm7,%xmm14,%xmm14 + + jmp .L_after_reduction_611 +.L_small_initial_compute_done_611: +.L_after_reduction_611: + jmp .L_last_blocks_done_609 +.L_last_num_blocks_is_2_609: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $254,%r15d + jae .L_16_blocks_overflow_612 + vpaddd %ymm28,%ymm2,%ymm0 + jmp .L_16_blocks_ok_612 + +.L_16_blocks_overflow_612: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %ymm29,%ymm0,%ymm0 +.L_16_blocks_ok_612: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $1,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%ymm17{%k1}{z} + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %ymm31,%ymm0,%ymm0 + vaesenclast %ymm30,%ymm0,%ymm0 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %ymm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm17,%zmm17{%k1}{z} + vpshufb %ymm29,%ymm17,%ymm17 + vextracti32x4 $1,%zmm17,%xmm7 + subq $16 * (2 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_613 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm17,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm17,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm17,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm17,%ymm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_613 +.L_small_initial_partial_block_613: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm17,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm17,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm17,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm17,%xmm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_613: + + orq %r8,%r8 + je .L_after_reduction_613 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_613: + jmp .L_last_blocks_done_609 +.L_last_num_blocks_is_3_609: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $253,%r15d + jae .L_16_blocks_overflow_614 + vpaddd %zmm28,%zmm2,%zmm0 + jmp .L_16_blocks_ok_614 + +.L_16_blocks_overflow_614: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %zmm29,%zmm0,%zmm0 +.L_16_blocks_ok_614: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $2,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm0,%zmm0 + vpxorq %zmm17,%zmm0,%zmm0 + vextracti32x4 $2,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm17,%zmm17{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vextracti32x4 $2,%zmm17,%xmm7 + subq $16 * (3 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_615 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_615 +.L_small_initial_partial_block_615: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm17,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm17,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm17,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm17,%ymm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_615: + + orq %r8,%r8 + je .L_after_reduction_615 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_615: + jmp .L_last_blocks_done_609 +.L_last_num_blocks_is_4_609: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $252,%r15d + jae .L_16_blocks_overflow_616 + vpaddd %zmm28,%zmm2,%zmm0 + jmp .L_16_blocks_ok_616 + +.L_16_blocks_overflow_616: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %zmm29,%zmm0,%zmm0 +.L_16_blocks_ok_616: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $3,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm0,%zmm0 + vpxorq %zmm17,%zmm0,%zmm0 + vextracti32x4 $3,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm17,%zmm17{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vextracti32x4 $3,%zmm17,%xmm7 + subq $16 * (4 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_617 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_617 +.L_small_initial_partial_block_617: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_617: + + orq %r8,%r8 + je .L_after_reduction_617 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_617: + jmp .L_last_blocks_done_609 +.L_last_num_blocks_is_5_609: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $251,%r15d + jae .L_16_blocks_overflow_618 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %xmm27,%xmm0,%xmm3 + jmp .L_16_blocks_ok_618 + +.L_16_blocks_overflow_618: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %xmm29,%xmm3,%xmm3 +.L_16_blocks_ok_618: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $0,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%xmm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %xmm30,%xmm3,%xmm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %xmm19,%xmm3,%xmm3 + vextracti32x4 $0,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %xmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm19,%zmm19{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %xmm29,%xmm19,%xmm19 + vextracti32x4 $0,%zmm19,%xmm7 + subq $16 * (5 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_619 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm19,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm19,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm19,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm19,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_619 +.L_small_initial_partial_block_619: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_619: + + orq %r8,%r8 + je .L_after_reduction_619 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_619: + jmp .L_last_blocks_done_609 +.L_last_num_blocks_is_6_609: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $250,%r15d + jae .L_16_blocks_overflow_620 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %ymm27,%ymm0,%ymm3 + jmp .L_16_blocks_ok_620 + +.L_16_blocks_overflow_620: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %ymm29,%ymm3,%ymm3 +.L_16_blocks_ok_620: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $1,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%ymm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %ymm30,%ymm3,%ymm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %ymm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm19,%zmm19{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %ymm29,%ymm19,%ymm19 + vextracti32x4 $1,%zmm19,%xmm7 + subq $16 * (6 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_621 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm19,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm19,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm19,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm19,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_621 +.L_small_initial_partial_block_621: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm19,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm19,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm19,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm19,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_621: + + orq %r8,%r8 + je .L_after_reduction_621 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_621: + jmp .L_last_blocks_done_609 +.L_last_num_blocks_is_7_609: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $249,%r15d + jae .L_16_blocks_overflow_622 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + jmp .L_16_blocks_ok_622 + +.L_16_blocks_overflow_622: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 +.L_16_blocks_ok_622: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $2,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti32x4 $2,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm19,%zmm19{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vextracti32x4 $2,%zmm19,%xmm7 + subq $16 * (7 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_623 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_623 +.L_small_initial_partial_block_623: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm19,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm19,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm19,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm19,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_623: + + orq %r8,%r8 + je .L_after_reduction_623 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_623: + jmp .L_last_blocks_done_609 +.L_last_num_blocks_is_8_609: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $248,%r15d + jae .L_16_blocks_overflow_624 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + jmp .L_16_blocks_ok_624 + +.L_16_blocks_overflow_624: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 +.L_16_blocks_ok_624: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $3,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti32x4 $3,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm19,%zmm19{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vextracti32x4 $3,%zmm19,%xmm7 + subq $16 * (8 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_625 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_625 +.L_small_initial_partial_block_625: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_625: + + orq %r8,%r8 + je .L_after_reduction_625 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_625: + jmp .L_last_blocks_done_609 +.L_last_num_blocks_is_9_609: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $247,%r15d + jae .L_16_blocks_overflow_626 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %xmm27,%xmm3,%xmm4 + jmp .L_16_blocks_ok_626 + +.L_16_blocks_overflow_626: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %xmm29,%xmm4,%xmm4 +.L_16_blocks_ok_626: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $0,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%xmm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %xmm30,%xmm4,%xmm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %xmm20,%xmm4,%xmm4 + vextracti32x4 $0,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %xmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm20,%zmm20{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %xmm29,%xmm20,%xmm20 + vextracti32x4 $0,%zmm20,%xmm7 + subq $16 * (9 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_627 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm20,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm20,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm20,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm20,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_627 +.L_small_initial_partial_block_627: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_627: + + orq %r8,%r8 + je .L_after_reduction_627 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_627: + jmp .L_last_blocks_done_609 +.L_last_num_blocks_is_10_609: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $246,%r15d + jae .L_16_blocks_overflow_628 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %ymm27,%ymm3,%ymm4 + jmp .L_16_blocks_ok_628 + +.L_16_blocks_overflow_628: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %ymm29,%ymm4,%ymm4 +.L_16_blocks_ok_628: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $1,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%ymm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %ymm30,%ymm4,%ymm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %ymm20,%ymm4,%ymm4 + vextracti32x4 $1,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %ymm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm20,%zmm20{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %ymm29,%ymm20,%ymm20 + vextracti32x4 $1,%zmm20,%xmm7 + subq $16 * (10 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_629 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm20,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm20,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm20,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm20,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_629 +.L_small_initial_partial_block_629: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm20,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm20,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm20,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm20,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_629: + + orq %r8,%r8 + je .L_after_reduction_629 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_629: + jmp .L_last_blocks_done_609 +.L_last_num_blocks_is_11_609: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $245,%r15d + jae .L_16_blocks_overflow_630 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + jmp .L_16_blocks_ok_630 + +.L_16_blocks_overflow_630: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 +.L_16_blocks_ok_630: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $2,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vextracti32x4 $2,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm20,%zmm20{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %zmm29,%zmm20,%zmm20 + vextracti32x4 $2,%zmm20,%xmm7 + subq $16 * (11 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_631 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_631 +.L_small_initial_partial_block_631: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm20,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm20,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm20,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm20,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_631: + + orq %r8,%r8 + je .L_after_reduction_631 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_631: + jmp .L_last_blocks_done_609 +.L_last_num_blocks_is_12_609: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $244,%r15d + jae .L_16_blocks_overflow_632 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + jmp .L_16_blocks_ok_632 + +.L_16_blocks_overflow_632: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 +.L_16_blocks_ok_632: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $3,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vextracti32x4 $3,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm20,%zmm20{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %zmm29,%zmm20,%zmm20 + vextracti32x4 $3,%zmm20,%xmm7 + subq $16 * (12 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_633 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 160(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_633 +.L_small_initial_partial_block_633: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_633: + + orq %r8,%r8 + je .L_after_reduction_633 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_633: + jmp .L_last_blocks_done_609 +.L_last_num_blocks_is_13_609: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $243,%r15d + jae .L_16_blocks_overflow_634 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %xmm27,%xmm4,%xmm5 + jmp .L_16_blocks_ok_634 + +.L_16_blocks_overflow_634: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %xmm29,%xmm5,%xmm5 +.L_16_blocks_ok_634: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $0,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%xmm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %xmm30,%xmm5,%xmm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %xmm21,%xmm5,%xmm5 + vextracti32x4 $0,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %xmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm21,%zmm21{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %zmm29,%zmm20,%zmm20 + vpshufb %xmm29,%xmm21,%xmm21 + vextracti32x4 $0,%zmm21,%xmm7 + subq $16 * (13 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_635 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 144(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm21,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm21,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm21,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm21,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_635 +.L_small_initial_partial_block_635: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 160(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_635: + + orq %r8,%r8 + je .L_after_reduction_635 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_635: + jmp .L_last_blocks_done_609 +.L_last_num_blocks_is_14_609: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $242,%r15d + jae .L_16_blocks_overflow_636 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %ymm27,%ymm4,%ymm5 + jmp .L_16_blocks_ok_636 + +.L_16_blocks_overflow_636: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %ymm29,%ymm5,%ymm5 +.L_16_blocks_ok_636: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $1,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%ymm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %ymm30,%ymm5,%ymm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %ymm21,%ymm5,%ymm5 + vextracti32x4 $1,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %ymm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm21,%zmm21{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %zmm29,%zmm20,%zmm20 + vpshufb %ymm29,%ymm21,%ymm21 + vextracti32x4 $1,%zmm21,%xmm7 + subq $16 * (14 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_637 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 128(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm21,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm21,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm21,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm21,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_637 +.L_small_initial_partial_block_637: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 144(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm21,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm21,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm21,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm21,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_637: + + orq %r8,%r8 + je .L_after_reduction_637 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_637: + jmp .L_last_blocks_done_609 +.L_last_num_blocks_is_15_609: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $241,%r15d + jae .L_16_blocks_overflow_638 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp .L_16_blocks_ok_638 + +.L_16_blocks_overflow_638: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +.L_16_blocks_ok_638: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $2,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%zmm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + vextracti32x4 $2,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %zmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm21,%zmm21{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %zmm29,%zmm20,%zmm20 + vpshufb %zmm29,%zmm21,%zmm21 + vextracti32x4 $2,%zmm21,%xmm7 + subq $16 * (15 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_639 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 112(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm21,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm21,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm21,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm21,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_639 +.L_small_initial_partial_block_639: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 128(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm21,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm21,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm21,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm21,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_639: + + orq %r8,%r8 + je .L_after_reduction_639 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_639: + jmp .L_last_blocks_done_609 +.L_last_num_blocks_is_16_609: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $240,%r15d + jae .L_16_blocks_overflow_640 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp .L_16_blocks_ok_640 + +.L_16_blocks_overflow_640: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +.L_16_blocks_ok_640: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $3,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%zmm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + vextracti32x4 $3,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %zmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm21,%zmm21{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %zmm29,%zmm20,%zmm20 + vpshufb %zmm29,%zmm21,%zmm21 + vextracti32x4 $3,%zmm21,%xmm7 + subq $16 * (16 - 1),%r8 +.L_small_initial_partial_block_641: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 112(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm21,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm21,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm21,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm21,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_641: + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_641: + jmp .L_last_blocks_done_609 +.L_last_num_blocks_is_0_609: + vmovdqa64 768(%rsp),%zmm13 + vpxorq %zmm14,%zmm13,%zmm13 + vmovdqu64 0(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 832(%rsp),%zmm13 + vmovdqu64 64(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + vpxorq %zmm10,%zmm4,%zmm26 + vpxorq %zmm6,%zmm0,%zmm24 + vpxorq %zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + vmovdqa64 896(%rsp),%zmm13 + vmovdqu64 128(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 960(%rsp),%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + + vpternlogq $0x96,%zmm10,%zmm4,%zmm26 + vpternlogq $0x96,%zmm6,%zmm0,%zmm24 + vpternlogq $0x96,%zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + + vpsrldq $8,%zmm26,%zmm0 + vpslldq $8,%zmm26,%zmm3 + vpxorq %zmm0,%zmm24,%zmm24 + vpxorq %zmm3,%zmm25,%zmm25 + vextracti64x4 $1,%zmm24,%ymm0 + vpxorq %ymm0,%ymm24,%ymm24 + vextracti32x4 $1,%ymm24,%xmm0 + vpxorq %xmm0,%xmm24,%xmm24 + vextracti64x4 $1,%zmm25,%ymm3 + vpxorq %ymm3,%ymm25,%ymm25 + vextracti32x4 $1,%ymm25,%xmm3 + vpxorq %xmm3,%xmm25,%xmm25 + vmovdqa64 POLY2(%rip),%xmm4 + + + vpclmulqdq $0x01,%xmm25,%xmm4,%xmm0 + vpslldq $8,%xmm0,%xmm0 + vpxorq %xmm0,%xmm25,%xmm0 + + + vpclmulqdq $0x00,%xmm0,%xmm4,%xmm3 + vpsrldq $4,%xmm3,%xmm3 + vpclmulqdq $0x10,%xmm0,%xmm4,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm24,%xmm3,%xmm14 + +.L_last_blocks_done_609: + vpshufb %xmm29,%xmm2,%xmm2 + jmp .L_ghash_done_497 + +.L_message_below_equal_16_blocks_497: + + + movl %r8d,%r12d + addl $15,%r12d + shrl $4,%r12d + cmpq $8,%r12 + je .L_small_initial_num_blocks_is_8_642 + jl .L_small_initial_num_blocks_is_7_1_642 + + + cmpq $12,%r12 + je .L_small_initial_num_blocks_is_12_642 + jl .L_small_initial_num_blocks_is_11_9_642 + + + cmpq $16,%r12 + je .L_small_initial_num_blocks_is_16_642 + cmpq $15,%r12 + je .L_small_initial_num_blocks_is_15_642 + cmpq $14,%r12 + je .L_small_initial_num_blocks_is_14_642 + jmp .L_small_initial_num_blocks_is_13_642 + +.L_small_initial_num_blocks_is_11_9_642: + + cmpq $11,%r12 + je .L_small_initial_num_blocks_is_11_642 + cmpq $10,%r12 + je .L_small_initial_num_blocks_is_10_642 + jmp .L_small_initial_num_blocks_is_9_642 + +.L_small_initial_num_blocks_is_7_1_642: + cmpq $4,%r12 + je .L_small_initial_num_blocks_is_4_642 + jl .L_small_initial_num_blocks_is_3_1_642 + + cmpq $7,%r12 + je .L_small_initial_num_blocks_is_7_642 + cmpq $6,%r12 + je .L_small_initial_num_blocks_is_6_642 + jmp .L_small_initial_num_blocks_is_5_642 + +.L_small_initial_num_blocks_is_3_1_642: + + cmpq $3,%r12 + je .L_small_initial_num_blocks_is_3_642 + cmpq $2,%r12 + je .L_small_initial_num_blocks_is_2_642 + + + + + +.L_small_initial_num_blocks_is_1_642: + vmovdqa64 SHUF_MASK(%rip),%xmm29 + vpaddd ONE(%rip),%xmm2,%xmm0 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $0,%zmm0,%xmm2 + vpshufb %xmm29,%xmm0,%xmm0 + vmovdqu8 0(%rcx,%r11,1),%xmm6{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %xmm15,%xmm0,%xmm0 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %xmm15,%xmm0,%xmm0 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %xmm15,%xmm0,%xmm0 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %xmm15,%xmm0,%xmm0 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %xmm15,%xmm0,%xmm0 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %xmm15,%xmm0,%xmm0 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %xmm15,%xmm0,%xmm0 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %xmm15,%xmm0,%xmm0 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %xmm15,%xmm0,%xmm0 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %xmm15,%xmm0,%xmm0 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenclast %xmm15,%xmm0,%xmm0 + vpxorq %xmm6,%xmm0,%xmm0 + vextracti32x4 $0,%zmm0,%xmm12 + movq %r9,%r10 + vmovdqu8 %xmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm0,%zmm0{%k1}{z} + vpshufb %xmm29,%xmm6,%xmm6 + vextracti32x4 $0,%zmm6,%xmm13 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_643 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 336(%rsi),%xmm20 + vpclmulqdq $0x01,%xmm20,%xmm6,%xmm4 + vpclmulqdq $0x10,%xmm20,%xmm6,%xmm5 + vpclmulqdq $0x11,%xmm20,%xmm6,%xmm0 + vpclmulqdq $0x00,%xmm20,%xmm6,%xmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_643 +.L_small_initial_partial_block_643: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + + + + + + + + + + + + vpxorq %xmm13,%xmm14,%xmm14 + + jmp .L_after_reduction_643 +.L_small_initial_compute_done_643: +.L_after_reduction_643: + jmp .L_small_initial_blocks_encrypted_642 +.L_small_initial_num_blocks_is_2_642: + vmovdqa64 SHUF_MASK(%rip),%ymm29 + vshufi64x2 $0,%ymm2,%ymm2,%ymm0 + vpaddd ddq_add_1234(%rip),%ymm0,%ymm0 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $1,%zmm0,%xmm2 + vpshufb %ymm29,%ymm0,%ymm0 + vmovdqu8 0(%rcx,%r11,1),%ymm6{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %ymm15,%ymm0,%ymm0 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %ymm15,%ymm0,%ymm0 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %ymm15,%ymm0,%ymm0 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %ymm15,%ymm0,%ymm0 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %ymm15,%ymm0,%ymm0 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %ymm15,%ymm0,%ymm0 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %ymm15,%ymm0,%ymm0 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %ymm15,%ymm0,%ymm0 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %ymm15,%ymm0,%ymm0 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %ymm15,%ymm0,%ymm0 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenclast %ymm15,%ymm0,%ymm0 + vpxorq %ymm6,%ymm0,%ymm0 + vextracti32x4 $1,%zmm0,%xmm12 + movq %r9,%r10 + vmovdqu8 %ymm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm0,%zmm0{%k1}{z} + vpshufb %ymm29,%ymm6,%ymm6 + vextracti32x4 $1,%zmm6,%xmm13 + subq $16 * (2 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_644 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 320(%rsi),%ymm20 + vpclmulqdq $0x01,%ymm20,%ymm6,%ymm4 + vpclmulqdq $0x10,%ymm20,%ymm6,%ymm5 + vpclmulqdq $0x11,%ymm20,%ymm6,%ymm0 + vpclmulqdq $0x00,%ymm20,%ymm6,%ymm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_644 +.L_small_initial_partial_block_644: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 336(%rsi),%xmm20 + vpclmulqdq $0x01,%xmm20,%xmm6,%xmm4 + vpclmulqdq $0x10,%xmm20,%xmm6,%xmm5 + vpclmulqdq $0x11,%xmm20,%xmm6,%xmm0 + vpclmulqdq $0x00,%xmm20,%xmm6,%xmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_644: + + orq %r8,%r8 + je .L_after_reduction_644 + vpxorq %xmm13,%xmm14,%xmm14 +.L_after_reduction_644: + jmp .L_small_initial_blocks_encrypted_642 +.L_small_initial_num_blocks_is_3_642: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $2,%zmm0,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vmovdqu8 0(%rcx,%r11,1),%zmm6{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vpxorq %zmm6,%zmm0,%zmm0 + vextracti32x4 $2,%zmm0,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm0,%zmm0{%k1}{z} + vpshufb %zmm29,%zmm6,%zmm6 + vextracti32x4 $2,%zmm6,%xmm13 + subq $16 * (3 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_645 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 304(%rsi),%ymm20 + vinserti64x2 $2,336(%rsi),%zmm20,%zmm20 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_645 +.L_small_initial_partial_block_645: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 320(%rsi),%ymm20 + vpclmulqdq $0x01,%ymm20,%ymm6,%ymm4 + vpclmulqdq $0x10,%ymm20,%ymm6,%ymm5 + vpclmulqdq $0x11,%ymm20,%ymm6,%ymm0 + vpclmulqdq $0x00,%ymm20,%ymm6,%ymm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_645: + + orq %r8,%r8 + je .L_after_reduction_645 + vpxorq %xmm13,%xmm14,%xmm14 +.L_after_reduction_645: + jmp .L_small_initial_blocks_encrypted_642 +.L_small_initial_num_blocks_is_4_642: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $3,%zmm0,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vmovdqu8 0(%rcx,%r11,1),%zmm6{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vpxorq %zmm6,%zmm0,%zmm0 + vextracti32x4 $3,%zmm0,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm0,%zmm0{%k1}{z} + vpshufb %zmm29,%zmm6,%zmm6 + vextracti32x4 $3,%zmm6,%xmm13 + subq $16 * (4 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_646 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 288(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm19 + + vpxorq %zmm19,%zmm17,%zmm17 + vpsrldq $8,%zmm17,%zmm4 + vpslldq $8,%zmm17,%zmm5 + vpxorq %zmm4,%zmm15,%zmm0 + vpxorq %zmm5,%zmm16,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_646 +.L_small_initial_partial_block_646: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 304(%rsi),%ymm20 + vinserti64x2 $2,336(%rsi),%zmm20,%zmm20 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_646: + + orq %r8,%r8 + je .L_after_reduction_646 + vpxorq %xmm13,%xmm14,%xmm14 +.L_after_reduction_646: + jmp .L_small_initial_blocks_encrypted_642 +.L_small_initial_num_blocks_is_5_642: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd ddq_add_5678(%rip),%zmm2,%zmm3 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + subq $64,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $0,%zmm3,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %xmm29,%xmm3,%xmm3 + vmovdqu8 0(%rcx,%r11,1),%zmm6 + vmovdqu8 64(%rcx,%r11,1),%xmm7{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %xmm15,%xmm3,%xmm3 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %xmm15,%xmm3,%xmm3 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %xmm15,%xmm3,%xmm3 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %xmm15,%xmm3,%xmm3 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %xmm15,%xmm3,%xmm3 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %xmm15,%xmm3,%xmm3 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %xmm15,%xmm3,%xmm3 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %xmm15,%xmm3,%xmm3 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %xmm15,%xmm3,%xmm3 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %xmm15,%xmm3,%xmm3 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vaesenclast %xmm15,%xmm3,%xmm3 + vpxorq %zmm6,%zmm0,%zmm0 + vpxorq %xmm7,%xmm3,%xmm3 + vextracti32x4 $0,%zmm3,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %xmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm3,%zmm3{%k1}{z} + vpshufb %zmm29,%zmm6,%zmm6 + vpshufb %xmm29,%xmm7,%xmm7 + vextracti32x4 $0,%zmm7,%xmm13 + subq $16 * (5 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_647 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 272(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm19 + vmovdqu64 336(%rsi),%xmm20 + vpclmulqdq $0x01,%xmm20,%xmm7,%xmm4 + vpclmulqdq $0x10,%xmm20,%xmm7,%xmm5 + vpclmulqdq $0x11,%xmm20,%xmm7,%xmm0 + vpclmulqdq $0x00,%xmm20,%xmm7,%xmm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_647 +.L_small_initial_partial_block_647: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 288(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm19 + + vpxorq %zmm19,%zmm17,%zmm17 + vpsrldq $8,%zmm17,%zmm4 + vpslldq $8,%zmm17,%zmm5 + vpxorq %zmm4,%zmm15,%zmm0 + vpxorq %zmm5,%zmm16,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_647: + + orq %r8,%r8 + je .L_after_reduction_647 + vpxorq %xmm13,%xmm14,%xmm14 +.L_after_reduction_647: + jmp .L_small_initial_blocks_encrypted_642 +.L_small_initial_num_blocks_is_6_642: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd ddq_add_5678(%rip),%zmm2,%zmm3 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + subq $64,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $1,%zmm3,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %ymm29,%ymm3,%ymm3 + vmovdqu8 0(%rcx,%r11,1),%zmm6 + vmovdqu8 64(%rcx,%r11,1),%ymm7{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %ymm15,%ymm3,%ymm3 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %ymm15,%ymm3,%ymm3 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %ymm15,%ymm3,%ymm3 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %ymm15,%ymm3,%ymm3 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %ymm15,%ymm3,%ymm3 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %ymm15,%ymm3,%ymm3 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %ymm15,%ymm3,%ymm3 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %ymm15,%ymm3,%ymm3 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %ymm15,%ymm3,%ymm3 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %ymm15,%ymm3,%ymm3 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vaesenclast %ymm15,%ymm3,%ymm3 + vpxorq %zmm6,%zmm0,%zmm0 + vpxorq %ymm7,%ymm3,%ymm3 + vextracti32x4 $1,%zmm3,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %ymm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm3,%zmm3{%k1}{z} + vpshufb %zmm29,%zmm6,%zmm6 + vpshufb %ymm29,%ymm7,%ymm7 + vextracti32x4 $1,%zmm7,%xmm13 + subq $16 * (6 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_648 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 256(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm19 + vmovdqu64 320(%rsi),%ymm20 + vpclmulqdq $0x01,%ymm20,%ymm7,%ymm4 + vpclmulqdq $0x10,%ymm20,%ymm7,%ymm5 + vpclmulqdq $0x11,%ymm20,%ymm7,%ymm0 + vpclmulqdq $0x00,%ymm20,%ymm7,%ymm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_648 +.L_small_initial_partial_block_648: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 272(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm19 + vmovdqu64 336(%rsi),%xmm20 + vpclmulqdq $0x01,%xmm20,%xmm7,%xmm4 + vpclmulqdq $0x10,%xmm20,%xmm7,%xmm5 + vpclmulqdq $0x11,%xmm20,%xmm7,%xmm0 + vpclmulqdq $0x00,%xmm20,%xmm7,%xmm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_648: + + orq %r8,%r8 + je .L_after_reduction_648 + vpxorq %xmm13,%xmm14,%xmm14 +.L_after_reduction_648: + jmp .L_small_initial_blocks_encrypted_642 +.L_small_initial_num_blocks_is_7_642: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd ddq_add_5678(%rip),%zmm2,%zmm3 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + subq $64,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $2,%zmm3,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vmovdqu8 0(%rcx,%r11,1),%zmm6 + vmovdqu8 64(%rcx,%r11,1),%zmm7{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vaesenclast %zmm15,%zmm3,%zmm3 + vpxorq %zmm6,%zmm0,%zmm0 + vpxorq %zmm7,%zmm3,%zmm3 + vextracti32x4 $2,%zmm3,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm3,%zmm3{%k1}{z} + vpshufb %zmm29,%zmm6,%zmm6 + vpshufb %zmm29,%zmm7,%zmm7 + vextracti32x4 $2,%zmm7,%xmm13 + subq $16 * (7 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_649 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 240(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm19 + vmovdqu64 304(%rsi),%ymm20 + vinserti64x2 $2,336(%rsi),%zmm20,%zmm20 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm5 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_649 +.L_small_initial_partial_block_649: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 256(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm19 + vmovdqu64 320(%rsi),%ymm20 + vpclmulqdq $0x01,%ymm20,%ymm7,%ymm4 + vpclmulqdq $0x10,%ymm20,%ymm7,%ymm5 + vpclmulqdq $0x11,%ymm20,%ymm7,%ymm0 + vpclmulqdq $0x00,%ymm20,%ymm7,%ymm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_649: + + orq %r8,%r8 + je .L_after_reduction_649 + vpxorq %xmm13,%xmm14,%xmm14 +.L_after_reduction_649: + jmp .L_small_initial_blocks_encrypted_642 +.L_small_initial_num_blocks_is_8_642: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd ddq_add_5678(%rip),%zmm2,%zmm3 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + subq $64,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $3,%zmm3,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vmovdqu8 0(%rcx,%r11,1),%zmm6 + vmovdqu8 64(%rcx,%r11,1),%zmm7{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vaesenclast %zmm15,%zmm3,%zmm3 + vpxorq %zmm6,%zmm0,%zmm0 + vpxorq %zmm7,%zmm3,%zmm3 + vextracti32x4 $3,%zmm3,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm3,%zmm3{%k1}{z} + vpshufb %zmm29,%zmm6,%zmm6 + vpshufb %zmm29,%zmm7,%zmm7 + vextracti32x4 $3,%zmm7,%xmm13 + subq $16 * (8 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_650 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 224(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 288(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vpxorq %zmm15,%zmm0,%zmm15 + vpxorq %zmm16,%zmm3,%zmm16 + vpxorq %zmm17,%zmm4,%zmm17 + vpxorq %zmm19,%zmm5,%zmm19 + + vpxorq %zmm19,%zmm17,%zmm17 + vpsrldq $8,%zmm17,%zmm4 + vpslldq $8,%zmm17,%zmm5 + vpxorq %zmm4,%zmm15,%zmm0 + vpxorq %zmm5,%zmm16,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_650 +.L_small_initial_partial_block_650: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 240(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm19 + vmovdqu64 304(%rsi),%ymm20 + vinserti64x2 $2,336(%rsi),%zmm20,%zmm20 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm5 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_650: + + orq %r8,%r8 + je .L_after_reduction_650 + vpxorq %xmm13,%xmm14,%xmm14 +.L_after_reduction_650: + jmp .L_small_initial_blocks_encrypted_642 +.L_small_initial_num_blocks_is_9_642: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd ddq_add_5678(%rip),%zmm2,%zmm3 + vpaddd ddq_add_8888(%rip),%zmm0,%zmm4 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + subq $128,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $0,%zmm4,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %xmm29,%xmm4,%xmm4 + vmovdqu8 0(%rcx,%r11,1),%zmm6 + vmovdqu8 64(%rcx,%r11,1),%zmm7 + vmovdqu8 128(%rcx,%r11,1),%xmm10{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm15,%zmm3,%zmm3 + vpxorq %xmm15,%xmm4,%xmm4 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %xmm15,%xmm4,%xmm4 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %xmm15,%xmm4,%xmm4 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %xmm15,%xmm4,%xmm4 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %xmm15,%xmm4,%xmm4 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %xmm15,%xmm4,%xmm4 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %xmm15,%xmm4,%xmm4 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %xmm15,%xmm4,%xmm4 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %xmm15,%xmm4,%xmm4 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %xmm15,%xmm4,%xmm4 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vaesenclast %zmm15,%zmm3,%zmm3 + vaesenclast %xmm15,%xmm4,%xmm4 + vpxorq %zmm6,%zmm0,%zmm0 + vpxorq %zmm7,%zmm3,%zmm3 + vpxorq %xmm10,%xmm4,%xmm4 + vextracti32x4 $0,%zmm4,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %xmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm4,%zmm4{%k1}{z} + vpshufb %zmm29,%zmm6,%zmm6 + vpshufb %zmm29,%zmm7,%zmm7 + vpshufb %xmm29,%xmm10,%xmm10 + vextracti32x4 $0,%zmm10,%xmm13 + subq $16 * (9 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_651 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 208(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 272(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vpxorq %zmm15,%zmm0,%zmm15 + vpxorq %zmm16,%zmm3,%zmm16 + vpxorq %zmm17,%zmm4,%zmm17 + vpxorq %zmm19,%zmm5,%zmm19 + vmovdqu64 336(%rsi),%xmm20 + vpclmulqdq $0x01,%xmm20,%xmm10,%xmm4 + vpclmulqdq $0x10,%xmm20,%xmm10,%xmm5 + vpclmulqdq $0x11,%xmm20,%xmm10,%xmm0 + vpclmulqdq $0x00,%xmm20,%xmm10,%xmm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_651 +.L_small_initial_partial_block_651: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 224(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 288(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vpxorq %zmm15,%zmm0,%zmm15 + vpxorq %zmm16,%zmm3,%zmm16 + vpxorq %zmm17,%zmm4,%zmm17 + vpxorq %zmm19,%zmm5,%zmm19 + + vpxorq %zmm19,%zmm17,%zmm17 + vpsrldq $8,%zmm17,%zmm4 + vpslldq $8,%zmm17,%zmm5 + vpxorq %zmm4,%zmm15,%zmm0 + vpxorq %zmm5,%zmm16,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_651: + + orq %r8,%r8 + je .L_after_reduction_651 + vpxorq %xmm13,%xmm14,%xmm14 +.L_after_reduction_651: + jmp .L_small_initial_blocks_encrypted_642 +.L_small_initial_num_blocks_is_10_642: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd ddq_add_5678(%rip),%zmm2,%zmm3 + vpaddd ddq_add_8888(%rip),%zmm0,%zmm4 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + subq $128,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $1,%zmm4,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %ymm29,%ymm4,%ymm4 + vmovdqu8 0(%rcx,%r11,1),%zmm6 + vmovdqu8 64(%rcx,%r11,1),%zmm7 + vmovdqu8 128(%rcx,%r11,1),%ymm10{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm15,%zmm3,%zmm3 + vpxorq %ymm15,%ymm4,%ymm4 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %ymm15,%ymm4,%ymm4 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %ymm15,%ymm4,%ymm4 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %ymm15,%ymm4,%ymm4 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %ymm15,%ymm4,%ymm4 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %ymm15,%ymm4,%ymm4 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %ymm15,%ymm4,%ymm4 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %ymm15,%ymm4,%ymm4 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %ymm15,%ymm4,%ymm4 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %ymm15,%ymm4,%ymm4 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vaesenclast %zmm15,%zmm3,%zmm3 + vaesenclast %ymm15,%ymm4,%ymm4 + vpxorq %zmm6,%zmm0,%zmm0 + vpxorq %zmm7,%zmm3,%zmm3 + vpxorq %ymm10,%ymm4,%ymm4 + vextracti32x4 $1,%zmm4,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %ymm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm4,%zmm4{%k1}{z} + vpshufb %zmm29,%zmm6,%zmm6 + vpshufb %zmm29,%zmm7,%zmm7 + vpshufb %ymm29,%ymm10,%ymm10 + vextracti32x4 $1,%zmm10,%xmm13 + subq $16 * (10 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_652 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 192(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 256(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vpxorq %zmm15,%zmm0,%zmm15 + vpxorq %zmm16,%zmm3,%zmm16 + vpxorq %zmm17,%zmm4,%zmm17 + vpxorq %zmm19,%zmm5,%zmm19 + vmovdqu64 320(%rsi),%ymm20 + vpclmulqdq $0x01,%ymm20,%ymm10,%ymm4 + vpclmulqdq $0x10,%ymm20,%ymm10,%ymm5 + vpclmulqdq $0x11,%ymm20,%ymm10,%ymm0 + vpclmulqdq $0x00,%ymm20,%ymm10,%ymm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_652 +.L_small_initial_partial_block_652: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 208(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 272(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vpxorq %zmm15,%zmm0,%zmm15 + vpxorq %zmm16,%zmm3,%zmm16 + vpxorq %zmm17,%zmm4,%zmm17 + vpxorq %zmm19,%zmm5,%zmm19 + vmovdqu64 336(%rsi),%xmm20 + vpclmulqdq $0x01,%xmm20,%xmm10,%xmm4 + vpclmulqdq $0x10,%xmm20,%xmm10,%xmm5 + vpclmulqdq $0x11,%xmm20,%xmm10,%xmm0 + vpclmulqdq $0x00,%xmm20,%xmm10,%xmm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_652: + + orq %r8,%r8 + je .L_after_reduction_652 + vpxorq %xmm13,%xmm14,%xmm14 +.L_after_reduction_652: + jmp .L_small_initial_blocks_encrypted_642 +.L_small_initial_num_blocks_is_11_642: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd ddq_add_5678(%rip),%zmm2,%zmm3 + vpaddd ddq_add_8888(%rip),%zmm0,%zmm4 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + subq $128,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $2,%zmm4,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vmovdqu8 0(%rcx,%r11,1),%zmm6 + vmovdqu8 64(%rcx,%r11,1),%zmm7 + vmovdqu8 128(%rcx,%r11,1),%zmm10{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm15,%zmm3,%zmm3 + vpxorq %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vaesenclast %zmm15,%zmm3,%zmm3 + vaesenclast %zmm15,%zmm4,%zmm4 + vpxorq %zmm6,%zmm0,%zmm0 + vpxorq %zmm7,%zmm3,%zmm3 + vpxorq %zmm10,%zmm4,%zmm4 + vextracti32x4 $2,%zmm4,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm4,%zmm4{%k1}{z} + vpshufb %zmm29,%zmm6,%zmm6 + vpshufb %zmm29,%zmm7,%zmm7 + vpshufb %zmm29,%zmm10,%zmm10 + vextracti32x4 $2,%zmm10,%xmm13 + subq $16 * (11 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_653 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 176(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 240(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vpxorq %zmm15,%zmm0,%zmm15 + vpxorq %zmm16,%zmm3,%zmm16 + vpxorq %zmm17,%zmm4,%zmm17 + vpxorq %zmm19,%zmm5,%zmm19 + vmovdqu64 304(%rsi),%ymm20 + vinserti64x2 $2,336(%rsi),%zmm20,%zmm20 + vpclmulqdq $0x01,%zmm20,%zmm10,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm10,%zmm5 + vpclmulqdq $0x11,%zmm20,%zmm10,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm10,%zmm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_653 +.L_small_initial_partial_block_653: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 192(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 256(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vpxorq %zmm15,%zmm0,%zmm15 + vpxorq %zmm16,%zmm3,%zmm16 + vpxorq %zmm17,%zmm4,%zmm17 + vpxorq %zmm19,%zmm5,%zmm19 + vmovdqu64 320(%rsi),%ymm20 + vpclmulqdq $0x01,%ymm20,%ymm10,%ymm4 + vpclmulqdq $0x10,%ymm20,%ymm10,%ymm5 + vpclmulqdq $0x11,%ymm20,%ymm10,%ymm0 + vpclmulqdq $0x00,%ymm20,%ymm10,%ymm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_653: + + orq %r8,%r8 + je .L_after_reduction_653 + vpxorq %xmm13,%xmm14,%xmm14 +.L_after_reduction_653: + jmp .L_small_initial_blocks_encrypted_642 +.L_small_initial_num_blocks_is_12_642: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd ddq_add_5678(%rip),%zmm2,%zmm3 + vpaddd ddq_add_8888(%rip),%zmm0,%zmm4 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + subq $128,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $3,%zmm4,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vmovdqu8 0(%rcx,%r11,1),%zmm6 + vmovdqu8 64(%rcx,%r11,1),%zmm7 + vmovdqu8 128(%rcx,%r11,1),%zmm10{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm15,%zmm3,%zmm3 + vpxorq %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vaesenclast %zmm15,%zmm3,%zmm3 + vaesenclast %zmm15,%zmm4,%zmm4 + vpxorq %zmm6,%zmm0,%zmm0 + vpxorq %zmm7,%zmm3,%zmm3 + vpxorq %zmm10,%zmm4,%zmm4 + vextracti32x4 $3,%zmm4,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm4,%zmm4{%k1}{z} + vpshufb %zmm29,%zmm6,%zmm6 + vpshufb %zmm29,%zmm7,%zmm7 + vpshufb %zmm29,%zmm10,%zmm10 + vextracti32x4 $3,%zmm10,%xmm13 + subq $16 * (12 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_654 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 160(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 224(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vmovdqu64 288(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x00,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm0,%zmm6,%zmm15 + vpternlogq $0x96,%zmm3,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x10,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm4,%zmm6,%zmm17 + vpternlogq $0x96,%zmm5,%zmm7,%zmm19 + + vpxorq %zmm19,%zmm17,%zmm17 + vpsrldq $8,%zmm17,%zmm4 + vpslldq $8,%zmm17,%zmm5 + vpxorq %zmm4,%zmm15,%zmm0 + vpxorq %zmm5,%zmm16,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_654 +.L_small_initial_partial_block_654: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 176(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 240(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vpxorq %zmm15,%zmm0,%zmm15 + vpxorq %zmm16,%zmm3,%zmm16 + vpxorq %zmm17,%zmm4,%zmm17 + vpxorq %zmm19,%zmm5,%zmm19 + vmovdqu64 304(%rsi),%ymm20 + vinserti64x2 $2,336(%rsi),%zmm20,%zmm20 + vpclmulqdq $0x01,%zmm20,%zmm10,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm10,%zmm5 + vpclmulqdq $0x11,%zmm20,%zmm10,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm10,%zmm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_654: + + orq %r8,%r8 + je .L_after_reduction_654 + vpxorq %xmm13,%xmm14,%xmm14 +.L_after_reduction_654: + jmp .L_small_initial_blocks_encrypted_642 +.L_small_initial_num_blocks_is_13_642: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd ddq_add_5678(%rip),%zmm2,%zmm3 + vpaddd ddq_add_8888(%rip),%zmm0,%zmm4 + vpaddd ddq_add_8888(%rip),%zmm3,%zmm5 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + subq $192,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $0,%zmm5,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %xmm29,%xmm5,%xmm5 + vmovdqu8 0(%rcx,%r11,1),%zmm6 + vmovdqu8 64(%rcx,%r11,1),%zmm7 + vmovdqu8 128(%rcx,%r11,1),%zmm10 + vmovdqu8 192(%rcx,%r11,1),%xmm11{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm15,%zmm3,%zmm3 + vpxorq %zmm15,%zmm4,%zmm4 + vpxorq %xmm15,%xmm5,%xmm5 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %xmm15,%xmm5,%xmm5 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %xmm15,%xmm5,%xmm5 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %xmm15,%xmm5,%xmm5 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %xmm15,%xmm5,%xmm5 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %xmm15,%xmm5,%xmm5 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %xmm15,%xmm5,%xmm5 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %xmm15,%xmm5,%xmm5 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %xmm15,%xmm5,%xmm5 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %xmm15,%xmm5,%xmm5 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vaesenclast %zmm15,%zmm3,%zmm3 + vaesenclast %zmm15,%zmm4,%zmm4 + vaesenclast %xmm15,%xmm5,%xmm5 + vpxorq %zmm6,%zmm0,%zmm0 + vpxorq %zmm7,%zmm3,%zmm3 + vpxorq %zmm10,%zmm4,%zmm4 + vpxorq %xmm11,%xmm5,%xmm5 + vextracti32x4 $0,%zmm5,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %xmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm5,%zmm5{%k1}{z} + vpshufb %zmm29,%zmm6,%zmm6 + vpshufb %zmm29,%zmm7,%zmm7 + vpshufb %zmm29,%zmm10,%zmm10 + vpshufb %xmm29,%xmm11,%xmm11 + vextracti32x4 $0,%zmm11,%xmm13 + subq $16 * (13 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_655 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 144(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 208(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vmovdqu64 272(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x00,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm0,%zmm6,%zmm15 + vpternlogq $0x96,%zmm3,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x10,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm4,%zmm6,%zmm17 + vpternlogq $0x96,%zmm5,%zmm7,%zmm19 + vmovdqu64 336(%rsi),%xmm20 + vpclmulqdq $0x01,%xmm20,%xmm11,%xmm4 + vpclmulqdq $0x10,%xmm20,%xmm11,%xmm5 + vpclmulqdq $0x11,%xmm20,%xmm11,%xmm0 + vpclmulqdq $0x00,%xmm20,%xmm11,%xmm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_655 +.L_small_initial_partial_block_655: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 160(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 224(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vmovdqu64 288(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x00,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm0,%zmm6,%zmm15 + vpternlogq $0x96,%zmm3,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x10,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm4,%zmm6,%zmm17 + vpternlogq $0x96,%zmm5,%zmm7,%zmm19 + + vpxorq %zmm19,%zmm17,%zmm17 + vpsrldq $8,%zmm17,%zmm4 + vpslldq $8,%zmm17,%zmm5 + vpxorq %zmm4,%zmm15,%zmm0 + vpxorq %zmm5,%zmm16,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_655: + + orq %r8,%r8 + je .L_after_reduction_655 + vpxorq %xmm13,%xmm14,%xmm14 +.L_after_reduction_655: + jmp .L_small_initial_blocks_encrypted_642 +.L_small_initial_num_blocks_is_14_642: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd ddq_add_5678(%rip),%zmm2,%zmm3 + vpaddd ddq_add_8888(%rip),%zmm0,%zmm4 + vpaddd ddq_add_8888(%rip),%zmm3,%zmm5 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + subq $192,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $1,%zmm5,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %ymm29,%ymm5,%ymm5 + vmovdqu8 0(%rcx,%r11,1),%zmm6 + vmovdqu8 64(%rcx,%r11,1),%zmm7 + vmovdqu8 128(%rcx,%r11,1),%zmm10 + vmovdqu8 192(%rcx,%r11,1),%ymm11{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm15,%zmm3,%zmm3 + vpxorq %zmm15,%zmm4,%zmm4 + vpxorq %ymm15,%ymm5,%ymm5 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %ymm15,%ymm5,%ymm5 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %ymm15,%ymm5,%ymm5 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %ymm15,%ymm5,%ymm5 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %ymm15,%ymm5,%ymm5 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %ymm15,%ymm5,%ymm5 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %ymm15,%ymm5,%ymm5 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %ymm15,%ymm5,%ymm5 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %ymm15,%ymm5,%ymm5 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %ymm15,%ymm5,%ymm5 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vaesenclast %zmm15,%zmm3,%zmm3 + vaesenclast %zmm15,%zmm4,%zmm4 + vaesenclast %ymm15,%ymm5,%ymm5 + vpxorq %zmm6,%zmm0,%zmm0 + vpxorq %zmm7,%zmm3,%zmm3 + vpxorq %zmm10,%zmm4,%zmm4 + vpxorq %ymm11,%ymm5,%ymm5 + vextracti32x4 $1,%zmm5,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %ymm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm5,%zmm5{%k1}{z} + vpshufb %zmm29,%zmm6,%zmm6 + vpshufb %zmm29,%zmm7,%zmm7 + vpshufb %zmm29,%zmm10,%zmm10 + vpshufb %ymm29,%ymm11,%ymm11 + vextracti32x4 $1,%zmm11,%xmm13 + subq $16 * (14 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_656 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 128(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 192(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vmovdqu64 256(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x00,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm0,%zmm6,%zmm15 + vpternlogq $0x96,%zmm3,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x10,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm4,%zmm6,%zmm17 + vpternlogq $0x96,%zmm5,%zmm7,%zmm19 + vmovdqu64 320(%rsi),%ymm20 + vpclmulqdq $0x01,%ymm20,%ymm11,%ymm4 + vpclmulqdq $0x10,%ymm20,%ymm11,%ymm5 + vpclmulqdq $0x11,%ymm20,%ymm11,%ymm0 + vpclmulqdq $0x00,%ymm20,%ymm11,%ymm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_656 +.L_small_initial_partial_block_656: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 144(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 208(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vmovdqu64 272(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x00,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm0,%zmm6,%zmm15 + vpternlogq $0x96,%zmm3,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x10,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm4,%zmm6,%zmm17 + vpternlogq $0x96,%zmm5,%zmm7,%zmm19 + vmovdqu64 336(%rsi),%xmm20 + vpclmulqdq $0x01,%xmm20,%xmm11,%xmm4 + vpclmulqdq $0x10,%xmm20,%xmm11,%xmm5 + vpclmulqdq $0x11,%xmm20,%xmm11,%xmm0 + vpclmulqdq $0x00,%xmm20,%xmm11,%xmm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_656: + + orq %r8,%r8 + je .L_after_reduction_656 + vpxorq %xmm13,%xmm14,%xmm14 +.L_after_reduction_656: + jmp .L_small_initial_blocks_encrypted_642 +.L_small_initial_num_blocks_is_15_642: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd ddq_add_5678(%rip),%zmm2,%zmm3 + vpaddd ddq_add_8888(%rip),%zmm0,%zmm4 + vpaddd ddq_add_8888(%rip),%zmm3,%zmm5 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + subq $192,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $2,%zmm5,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 + vmovdqu8 0(%rcx,%r11,1),%zmm6 + vmovdqu8 64(%rcx,%r11,1),%zmm7 + vmovdqu8 128(%rcx,%r11,1),%zmm10 + vmovdqu8 192(%rcx,%r11,1),%zmm11{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm15,%zmm3,%zmm3 + vpxorq %zmm15,%zmm4,%zmm4 + vpxorq %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vaesenclast %zmm15,%zmm3,%zmm3 + vaesenclast %zmm15,%zmm4,%zmm4 + vaesenclast %zmm15,%zmm5,%zmm5 + vpxorq %zmm6,%zmm0,%zmm0 + vpxorq %zmm7,%zmm3,%zmm3 + vpxorq %zmm10,%zmm4,%zmm4 + vpxorq %zmm11,%zmm5,%zmm5 + vextracti32x4 $2,%zmm5,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %zmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm5,%zmm5{%k1}{z} + vpshufb %zmm29,%zmm6,%zmm6 + vpshufb %zmm29,%zmm7,%zmm7 + vpshufb %zmm29,%zmm10,%zmm10 + vpshufb %zmm29,%zmm11,%zmm11 + vextracti32x4 $2,%zmm11,%xmm13 + subq $16 * (15 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_657 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 112(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 176(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vmovdqu64 240(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x00,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm0,%zmm6,%zmm15 + vpternlogq $0x96,%zmm3,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x10,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm4,%zmm6,%zmm17 + vpternlogq $0x96,%zmm5,%zmm7,%zmm19 + vmovdqu64 304(%rsi),%ymm20 + vinserti64x2 $2,336(%rsi),%zmm20,%zmm20 + vpclmulqdq $0x01,%zmm20,%zmm11,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm11,%zmm5 + vpclmulqdq $0x11,%zmm20,%zmm11,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm11,%zmm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_657 +.L_small_initial_partial_block_657: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 128(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 192(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vmovdqu64 256(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x00,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm0,%zmm6,%zmm15 + vpternlogq $0x96,%zmm3,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x10,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm4,%zmm6,%zmm17 + vpternlogq $0x96,%zmm5,%zmm7,%zmm19 + vmovdqu64 320(%rsi),%ymm20 + vpclmulqdq $0x01,%ymm20,%ymm11,%ymm4 + vpclmulqdq $0x10,%ymm20,%ymm11,%ymm5 + vpclmulqdq $0x11,%ymm20,%ymm11,%ymm0 + vpclmulqdq $0x00,%ymm20,%ymm11,%ymm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_657: + + orq %r8,%r8 + je .L_after_reduction_657 + vpxorq %xmm13,%xmm14,%xmm14 +.L_after_reduction_657: + jmp .L_small_initial_blocks_encrypted_642 +.L_small_initial_num_blocks_is_16_642: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd ddq_add_5678(%rip),%zmm2,%zmm3 + vpaddd ddq_add_8888(%rip),%zmm0,%zmm4 + vpaddd ddq_add_8888(%rip),%zmm3,%zmm5 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + subq $192,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $3,%zmm5,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 + vmovdqu8 0(%rcx,%r11,1),%zmm6 + vmovdqu8 64(%rcx,%r11,1),%zmm7 + vmovdqu8 128(%rcx,%r11,1),%zmm10 + vmovdqu8 192(%rcx,%r11,1),%zmm11{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm15,%zmm3,%zmm3 + vpxorq %zmm15,%zmm4,%zmm4 + vpxorq %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vaesenclast %zmm15,%zmm3,%zmm3 + vaesenclast %zmm15,%zmm4,%zmm4 + vaesenclast %zmm15,%zmm5,%zmm5 + vpxorq %zmm6,%zmm0,%zmm0 + vpxorq %zmm7,%zmm3,%zmm3 + vpxorq %zmm10,%zmm4,%zmm4 + vpxorq %zmm11,%zmm5,%zmm5 + vextracti32x4 $3,%zmm5,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %zmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm5,%zmm5{%k1}{z} + vpshufb %zmm29,%zmm6,%zmm6 + vpshufb %zmm29,%zmm7,%zmm7 + vpshufb %zmm29,%zmm10,%zmm10 + vpshufb %zmm29,%zmm11,%zmm11 + vextracti32x4 $3,%zmm11,%xmm13 + subq $16 * (16 - 1),%r8 +.L_small_initial_partial_block_658: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 112(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 176(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vmovdqu64 240(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x00,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm0,%zmm6,%zmm15 + vpternlogq $0x96,%zmm3,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x10,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm4,%zmm6,%zmm17 + vpternlogq $0x96,%zmm5,%zmm7,%zmm19 + vmovdqu64 304(%rsi),%ymm20 + vinserti64x2 $2,336(%rsi),%zmm20,%zmm20 + vpclmulqdq $0x01,%zmm20,%zmm11,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm11,%zmm5 + vpclmulqdq $0x11,%zmm20,%zmm11,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm11,%zmm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_658: + vpxorq %xmm13,%xmm14,%xmm14 +.L_after_reduction_658: +.L_small_initial_blocks_encrypted_642: +.L_ghash_done_497: + vmovdqu64 %xmm2,0(%rsi) + vmovdqu64 %xmm14,64(%rsi) +.L_enc_dec_done_497: + jmp .Lexit_gcm_decrypt +.align 32 +.Laes_gcm_decrypt_192_avx512: + orq %r8,%r8 + je .L_enc_dec_done_659 + xorq %r14,%r14 + vmovdqu64 64(%rsi),%xmm14 + + movq (%rdx),%r11 + orq %r11,%r11 + je .L_partial_block_done_660 + movl $16,%r10d + leaq byte_len_to_mask_table(%rip),%r12 + cmpq %r10,%r8 + cmovcq %r8,%r10 + kmovw (%r12,%r10,2),%k1 + vmovdqu8 (%rcx),%xmm0{%k1}{z} + + vmovdqu64 16(%rsi),%xmm3 + vmovdqu64 336(%rsi),%xmm4 + + + + leaq SHIFT_MASK(%rip),%r12 + addq %r11,%r12 + vmovdqu64 (%r12),%xmm5 + vpshufb %xmm5,%xmm3,%xmm3 + + vmovdqa64 %xmm0,%xmm6 + vpxorq %xmm0,%xmm3,%xmm3 + + + leaq (%r8,%r11,1),%r13 + subq $16,%r13 + jge .L_no_extra_mask_660 + subq %r13,%r12 +.L_no_extra_mask_660: + + + + vmovdqu64 16(%r12),%xmm0 + vpand %xmm0,%xmm3,%xmm3 + vpand %xmm0,%xmm6,%xmm6 + vpshufb SHUF_MASK(%rip),%xmm6,%xmm6 + vpshufb %xmm5,%xmm6,%xmm6 + vpxorq %xmm6,%xmm14,%xmm14 + cmpq $0,%r13 + jl .L_partial_incomplete_660 + + vpclmulqdq $0x11,%xmm4,%xmm14,%xmm7 + vpclmulqdq $0x00,%xmm4,%xmm14,%xmm10 + vpclmulqdq $0x01,%xmm4,%xmm14,%xmm11 + vpclmulqdq $0x10,%xmm4,%xmm14,%xmm14 + vpxorq %xmm11,%xmm14,%xmm14 + + vpsrldq $8,%xmm14,%xmm11 + vpslldq $8,%xmm14,%xmm14 + vpxorq %xmm11,%xmm7,%xmm7 + vpxorq %xmm10,%xmm14,%xmm14 + + + + vmovdqu64 POLY2(%rip),%xmm11 + + vpclmulqdq $0x01,%xmm14,%xmm11,%xmm10 + vpslldq $8,%xmm10,%xmm10 + vpxorq %xmm10,%xmm14,%xmm14 + + + + vpclmulqdq $0x00,%xmm14,%xmm11,%xmm10 + vpsrldq $4,%xmm10,%xmm10 + vpclmulqdq $0x10,%xmm14,%xmm11,%xmm14 + vpslldq $4,%xmm14,%xmm14 + + vpternlogq $0x96,%xmm10,%xmm7,%xmm14 + + movq $0,(%rdx) + + movq %r11,%r12 + movq $16,%r11 + subq %r12,%r11 + jmp .L_enc_dec_done_660 + +.L_partial_incomplete_660: + addq %r8,(%rdx) + movq %r8,%r11 + +.L_enc_dec_done_660: + + + leaq byte_len_to_mask_table(%rip),%r12 + kmovw (%r12,%r11,2),%k1 + vmovdqu64 %xmm14,64(%rsi) + movq %r9,%r12 + vmovdqu8 %xmm3,(%r12){%k1} +.L_partial_block_done_660: + vmovdqu64 0(%rsi),%xmm2 + subq %r11,%r8 + je .L_enc_dec_done_659 + cmpq $256,%r8 + jbe .L_message_below_equal_16_blocks_659 + + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vmovdqa64 ddq_addbe_4444(%rip),%zmm27 + vmovdqa64 ddq_addbe_1234(%rip),%zmm28 + + + + + + + vmovd %xmm2,%r15d + andl $255,%r15d + + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpshufb %zmm29,%zmm2,%zmm2 + + + + cmpb $240,%r15b + jae .L_next_16_overflow_661 + vpaddd %zmm28,%zmm2,%zmm7 + vpaddd %zmm27,%zmm7,%zmm10 + vpaddd %zmm27,%zmm10,%zmm11 + vpaddd %zmm27,%zmm11,%zmm12 + jmp .L_next_16_ok_661 +.L_next_16_overflow_661: + vpshufb %zmm29,%zmm2,%zmm2 + vmovdqa64 ddq_add_4444(%rip),%zmm12 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm7 + vpaddd %zmm12,%zmm7,%zmm10 + vpaddd %zmm12,%zmm10,%zmm11 + vpaddd %zmm12,%zmm11,%zmm12 + vpshufb %zmm29,%zmm7,%zmm7 + vpshufb %zmm29,%zmm10,%zmm10 + vpshufb %zmm29,%zmm11,%zmm11 + vpshufb %zmm29,%zmm12,%zmm12 +.L_next_16_ok_661: + vshufi64x2 $255,%zmm12,%zmm12,%zmm2 + addb $16,%r15b + + vmovdqu8 0(%rcx,%r11,1),%zmm0 + vmovdqu8 64(%rcx,%r11,1),%zmm3 + vmovdqu8 128(%rcx,%r11,1),%zmm4 + vmovdqu8 192(%rcx,%r11,1),%zmm5 + + + vbroadcastf64x2 0(%rdi),%zmm6 + vpxorq %zmm6,%zmm7,%zmm7 + vpxorq %zmm6,%zmm10,%zmm10 + vpxorq %zmm6,%zmm11,%zmm11 + vpxorq %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 16(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 32(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 48(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 64(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 80(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 96(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 112(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 128(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 144(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 160(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 176(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 192(%rdi),%zmm6 + vaesenclast %zmm6,%zmm7,%zmm7 + vaesenclast %zmm6,%zmm10,%zmm10 + vaesenclast %zmm6,%zmm11,%zmm11 + vaesenclast %zmm6,%zmm12,%zmm12 + + + vpxorq %zmm0,%zmm7,%zmm7 + vpxorq %zmm3,%zmm10,%zmm10 + vpxorq %zmm4,%zmm11,%zmm11 + vpxorq %zmm5,%zmm12,%zmm12 + + + movq %r9,%r10 + vmovdqu8 %zmm7,0(%r10,%r11,1) + vmovdqu8 %zmm10,64(%r10,%r11,1) + vmovdqu8 %zmm11,128(%r10,%r11,1) + vmovdqu8 %zmm12,192(%r10,%r11,1) + + vpshufb %zmm29,%zmm0,%zmm7 + vpshufb %zmm29,%zmm3,%zmm10 + vpshufb %zmm29,%zmm4,%zmm11 + vpshufb %zmm29,%zmm5,%zmm12 + vmovdqa64 %zmm7,768(%rsp) + vmovdqa64 %zmm10,832(%rsp) + vmovdqa64 %zmm11,896(%rsp) + vmovdqa64 %zmm12,960(%rsp) + testq %r14,%r14 + jnz .L_skip_hkeys_precomputation_662 + + vmovdqu64 288(%rsi),%zmm0 + vmovdqu64 %zmm0,704(%rsp) + + vmovdqu64 224(%rsi),%zmm3 + vmovdqu64 %zmm3,640(%rsp) + + + vshufi64x2 $0x00,%zmm3,%zmm3,%zmm3 + + vmovdqu64 160(%rsi),%zmm4 + vmovdqu64 %zmm4,576(%rsp) + + vmovdqu64 96(%rsi),%zmm5 + vmovdqu64 %zmm5,512(%rsp) +.L_skip_hkeys_precomputation_662: + cmpq $512,%r8 + jb .L_message_below_32_blocks_659 + + + + cmpb $240,%r15b + jae .L_next_16_overflow_663 + vpaddd %zmm28,%zmm2,%zmm7 + vpaddd %zmm27,%zmm7,%zmm10 + vpaddd %zmm27,%zmm10,%zmm11 + vpaddd %zmm27,%zmm11,%zmm12 + jmp .L_next_16_ok_663 +.L_next_16_overflow_663: + vpshufb %zmm29,%zmm2,%zmm2 + vmovdqa64 ddq_add_4444(%rip),%zmm12 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm7 + vpaddd %zmm12,%zmm7,%zmm10 + vpaddd %zmm12,%zmm10,%zmm11 + vpaddd %zmm12,%zmm11,%zmm12 + vpshufb %zmm29,%zmm7,%zmm7 + vpshufb %zmm29,%zmm10,%zmm10 + vpshufb %zmm29,%zmm11,%zmm11 + vpshufb %zmm29,%zmm12,%zmm12 +.L_next_16_ok_663: + vshufi64x2 $255,%zmm12,%zmm12,%zmm2 + addb $16,%r15b + + vmovdqu8 256(%rcx,%r11,1),%zmm0 + vmovdqu8 320(%rcx,%r11,1),%zmm3 + vmovdqu8 384(%rcx,%r11,1),%zmm4 + vmovdqu8 448(%rcx,%r11,1),%zmm5 + + + vbroadcastf64x2 0(%rdi),%zmm6 + vpxorq %zmm6,%zmm7,%zmm7 + vpxorq %zmm6,%zmm10,%zmm10 + vpxorq %zmm6,%zmm11,%zmm11 + vpxorq %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 16(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 32(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 48(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 64(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 80(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 96(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 112(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 128(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 144(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 160(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 176(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 192(%rdi),%zmm6 + vaesenclast %zmm6,%zmm7,%zmm7 + vaesenclast %zmm6,%zmm10,%zmm10 + vaesenclast %zmm6,%zmm11,%zmm11 + vaesenclast %zmm6,%zmm12,%zmm12 + + + vpxorq %zmm0,%zmm7,%zmm7 + vpxorq %zmm3,%zmm10,%zmm10 + vpxorq %zmm4,%zmm11,%zmm11 + vpxorq %zmm5,%zmm12,%zmm12 + + + movq %r9,%r10 + vmovdqu8 %zmm7,256(%r10,%r11,1) + vmovdqu8 %zmm10,320(%r10,%r11,1) + vmovdqu8 %zmm11,384(%r10,%r11,1) + vmovdqu8 %zmm12,448(%r10,%r11,1) + + vpshufb %zmm29,%zmm0,%zmm7 + vpshufb %zmm29,%zmm3,%zmm10 + vpshufb %zmm29,%zmm4,%zmm11 + vpshufb %zmm29,%zmm5,%zmm12 + vmovdqa64 %zmm7,1024(%rsp) + vmovdqa64 %zmm10,1088(%rsp) + vmovdqa64 %zmm11,1152(%rsp) + vmovdqa64 %zmm12,1216(%rsp) + testq %r14,%r14 + jnz .L_skip_hkeys_precomputation_664 + vmovdqu64 640(%rsp),%zmm3 + + + vshufi64x2 $0x00,%zmm3,%zmm3,%zmm3 + + vmovdqu64 576(%rsp),%zmm4 + vmovdqu64 512(%rsp),%zmm5 + + vpclmulqdq $0x11,%zmm3,%zmm4,%zmm6 + vpclmulqdq $0x00,%zmm3,%zmm4,%zmm7 + vpclmulqdq $0x01,%zmm3,%zmm4,%zmm10 + vpclmulqdq $0x10,%zmm3,%zmm4,%zmm4 + vpxorq %zmm10,%zmm4,%zmm4 + + vpsrldq $8,%zmm4,%zmm10 + vpslldq $8,%zmm4,%zmm4 + vpxorq %zmm10,%zmm6,%zmm6 + vpxorq %zmm7,%zmm4,%zmm4 + + + + vmovdqu64 POLY2(%rip),%zmm10 + + vpclmulqdq $0x01,%zmm4,%zmm10,%zmm7 + vpslldq $8,%zmm7,%zmm7 + vpxorq %zmm7,%zmm4,%zmm4 + + + + vpclmulqdq $0x00,%zmm4,%zmm10,%zmm7 + vpsrldq $4,%zmm7,%zmm7 + vpclmulqdq $0x10,%zmm4,%zmm10,%zmm4 + vpslldq $4,%zmm4,%zmm4 + + vpternlogq $0x96,%zmm7,%zmm6,%zmm4 + + vmovdqu64 %zmm4,448(%rsp) + + vpclmulqdq $0x11,%zmm3,%zmm5,%zmm6 + vpclmulqdq $0x00,%zmm3,%zmm5,%zmm7 + vpclmulqdq $0x01,%zmm3,%zmm5,%zmm10 + vpclmulqdq $0x10,%zmm3,%zmm5,%zmm5 + vpxorq %zmm10,%zmm5,%zmm5 + + vpsrldq $8,%zmm5,%zmm10 + vpslldq $8,%zmm5,%zmm5 + vpxorq %zmm10,%zmm6,%zmm6 + vpxorq %zmm7,%zmm5,%zmm5 + + + + vmovdqu64 POLY2(%rip),%zmm10 + + vpclmulqdq $0x01,%zmm5,%zmm10,%zmm7 + vpslldq $8,%zmm7,%zmm7 + vpxorq %zmm7,%zmm5,%zmm5 + + + + vpclmulqdq $0x00,%zmm5,%zmm10,%zmm7 + vpsrldq $4,%zmm7,%zmm7 + vpclmulqdq $0x10,%zmm5,%zmm10,%zmm5 + vpslldq $4,%zmm5,%zmm5 + + vpternlogq $0x96,%zmm7,%zmm6,%zmm5 + + vmovdqu64 %zmm5,384(%rsp) + + vpclmulqdq $0x11,%zmm3,%zmm4,%zmm6 + vpclmulqdq $0x00,%zmm3,%zmm4,%zmm7 + vpclmulqdq $0x01,%zmm3,%zmm4,%zmm10 + vpclmulqdq $0x10,%zmm3,%zmm4,%zmm4 + vpxorq %zmm10,%zmm4,%zmm4 + + vpsrldq $8,%zmm4,%zmm10 + vpslldq $8,%zmm4,%zmm4 + vpxorq %zmm10,%zmm6,%zmm6 + vpxorq %zmm7,%zmm4,%zmm4 + + + + vmovdqu64 POLY2(%rip),%zmm10 + + vpclmulqdq $0x01,%zmm4,%zmm10,%zmm7 + vpslldq $8,%zmm7,%zmm7 + vpxorq %zmm7,%zmm4,%zmm4 + + + + vpclmulqdq $0x00,%zmm4,%zmm10,%zmm7 + vpsrldq $4,%zmm7,%zmm7 + vpclmulqdq $0x10,%zmm4,%zmm10,%zmm4 + vpslldq $4,%zmm4,%zmm4 + + vpternlogq $0x96,%zmm7,%zmm6,%zmm4 + + vmovdqu64 %zmm4,320(%rsp) + + vpclmulqdq $0x11,%zmm3,%zmm5,%zmm6 + vpclmulqdq $0x00,%zmm3,%zmm5,%zmm7 + vpclmulqdq $0x01,%zmm3,%zmm5,%zmm10 + vpclmulqdq $0x10,%zmm3,%zmm5,%zmm5 + vpxorq %zmm10,%zmm5,%zmm5 + + vpsrldq $8,%zmm5,%zmm10 + vpslldq $8,%zmm5,%zmm5 + vpxorq %zmm10,%zmm6,%zmm6 + vpxorq %zmm7,%zmm5,%zmm5 + + + + vmovdqu64 POLY2(%rip),%zmm10 + + vpclmulqdq $0x01,%zmm5,%zmm10,%zmm7 + vpslldq $8,%zmm7,%zmm7 + vpxorq %zmm7,%zmm5,%zmm5 + + + + vpclmulqdq $0x00,%zmm5,%zmm10,%zmm7 + vpsrldq $4,%zmm7,%zmm7 + vpclmulqdq $0x10,%zmm5,%zmm10,%zmm5 + vpslldq $4,%zmm5,%zmm5 + + vpternlogq $0x96,%zmm7,%zmm6,%zmm5 + + vmovdqu64 %zmm5,256(%rsp) + + vpclmulqdq $0x11,%zmm3,%zmm4,%zmm6 + vpclmulqdq $0x00,%zmm3,%zmm4,%zmm7 + vpclmulqdq $0x01,%zmm3,%zmm4,%zmm10 + vpclmulqdq $0x10,%zmm3,%zmm4,%zmm4 + vpxorq %zmm10,%zmm4,%zmm4 + + vpsrldq $8,%zmm4,%zmm10 + vpslldq $8,%zmm4,%zmm4 + vpxorq %zmm10,%zmm6,%zmm6 + vpxorq %zmm7,%zmm4,%zmm4 + + + + vmovdqu64 POLY2(%rip),%zmm10 + + vpclmulqdq $0x01,%zmm4,%zmm10,%zmm7 + vpslldq $8,%zmm7,%zmm7 + vpxorq %zmm7,%zmm4,%zmm4 + + + + vpclmulqdq $0x00,%zmm4,%zmm10,%zmm7 + vpsrldq $4,%zmm7,%zmm7 + vpclmulqdq $0x10,%zmm4,%zmm10,%zmm4 + vpslldq $4,%zmm4,%zmm4 + + vpternlogq $0x96,%zmm7,%zmm6,%zmm4 + + vmovdqu64 %zmm4,192(%rsp) + + vpclmulqdq $0x11,%zmm3,%zmm5,%zmm6 + vpclmulqdq $0x00,%zmm3,%zmm5,%zmm7 + vpclmulqdq $0x01,%zmm3,%zmm5,%zmm10 + vpclmulqdq $0x10,%zmm3,%zmm5,%zmm5 + vpxorq %zmm10,%zmm5,%zmm5 + + vpsrldq $8,%zmm5,%zmm10 + vpslldq $8,%zmm5,%zmm5 + vpxorq %zmm10,%zmm6,%zmm6 + vpxorq %zmm7,%zmm5,%zmm5 + + + + vmovdqu64 POLY2(%rip),%zmm10 + + vpclmulqdq $0x01,%zmm5,%zmm10,%zmm7 + vpslldq $8,%zmm7,%zmm7 + vpxorq %zmm7,%zmm5,%zmm5 + + + + vpclmulqdq $0x00,%zmm5,%zmm10,%zmm7 + vpsrldq $4,%zmm7,%zmm7 + vpclmulqdq $0x10,%zmm5,%zmm10,%zmm5 + vpslldq $4,%zmm5,%zmm5 + + vpternlogq $0x96,%zmm7,%zmm6,%zmm5 + + vmovdqu64 %zmm5,128(%rsp) + + vpclmulqdq $0x11,%zmm3,%zmm4,%zmm6 + vpclmulqdq $0x00,%zmm3,%zmm4,%zmm7 + vpclmulqdq $0x01,%zmm3,%zmm4,%zmm10 + vpclmulqdq $0x10,%zmm3,%zmm4,%zmm4 + vpxorq %zmm10,%zmm4,%zmm4 + + vpsrldq $8,%zmm4,%zmm10 + vpslldq $8,%zmm4,%zmm4 + vpxorq %zmm10,%zmm6,%zmm6 + vpxorq %zmm7,%zmm4,%zmm4 + + + + vmovdqu64 POLY2(%rip),%zmm10 + + vpclmulqdq $0x01,%zmm4,%zmm10,%zmm7 + vpslldq $8,%zmm7,%zmm7 + vpxorq %zmm7,%zmm4,%zmm4 + + + + vpclmulqdq $0x00,%zmm4,%zmm10,%zmm7 + vpsrldq $4,%zmm7,%zmm7 + vpclmulqdq $0x10,%zmm4,%zmm10,%zmm4 + vpslldq $4,%zmm4,%zmm4 + + vpternlogq $0x96,%zmm7,%zmm6,%zmm4 + + vmovdqu64 %zmm4,64(%rsp) + + vpclmulqdq $0x11,%zmm3,%zmm5,%zmm6 + vpclmulqdq $0x00,%zmm3,%zmm5,%zmm7 + vpclmulqdq $0x01,%zmm3,%zmm5,%zmm10 + vpclmulqdq $0x10,%zmm3,%zmm5,%zmm5 + vpxorq %zmm10,%zmm5,%zmm5 + + vpsrldq $8,%zmm5,%zmm10 + vpslldq $8,%zmm5,%zmm5 + vpxorq %zmm10,%zmm6,%zmm6 + vpxorq %zmm7,%zmm5,%zmm5 + + + + vmovdqu64 POLY2(%rip),%zmm10 + + vpclmulqdq $0x01,%zmm5,%zmm10,%zmm7 + vpslldq $8,%zmm7,%zmm7 + vpxorq %zmm7,%zmm5,%zmm5 + + + + vpclmulqdq $0x00,%zmm5,%zmm10,%zmm7 + vpsrldq $4,%zmm7,%zmm7 + vpclmulqdq $0x10,%zmm5,%zmm10,%zmm5 + vpslldq $4,%zmm5,%zmm5 + + vpternlogq $0x96,%zmm7,%zmm6,%zmm5 + + vmovdqu64 %zmm5,0(%rsp) +.L_skip_hkeys_precomputation_664: + movq $1,%r14 + addq $512,%r11 + subq $512,%r8 + + cmpq $768,%r8 + jb .L_no_more_big_nblocks_659 +.L_encrypt_big_nblocks_659: + cmpb $240,%r15b + jae .L_16_blocks_overflow_665 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp .L_16_blocks_ok_665 +.L_16_blocks_overflow_665: + vpshufb %zmm29,%zmm2,%zmm2 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +.L_16_blocks_ok_665: + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp),%zmm1 + + + + + vshufi64x2 $255,%zmm5,%zmm5,%zmm2 + addb $16,%r15b + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + + + + + + + + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm6 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm6 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + + + + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%zmm21 + + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm15,%zmm10,%zmm26 + vpxorq %zmm12,%zmm6,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 192(%rdi),%zmm30 + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + + + + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + + + + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %zmm5,192(%r10,%r11,1) + vpshufb %zmm29,%zmm17,%zmm0 + vpshufb %zmm29,%zmm19,%zmm3 + vpshufb %zmm29,%zmm20,%zmm4 + vpshufb %zmm29,%zmm21,%zmm5 + vmovdqa64 %zmm0,1280(%rsp) + vmovdqa64 %zmm3,1344(%rsp) + vmovdqa64 %zmm4,1408(%rsp) + vmovdqa64 %zmm5,1472(%rsp) + cmpb $240,%r15b + jae .L_16_blocks_overflow_666 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp .L_16_blocks_ok_666 +.L_16_blocks_overflow_666: + vpshufb %zmm29,%zmm2,%zmm2 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +.L_16_blocks_ok_666: + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 256(%rsp),%zmm1 + + + + + vshufi64x2 $255,%zmm5,%zmm5,%zmm2 + addb $16,%r15b + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 320(%rsp),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + + + + + + + + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm6 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 384(%rsp),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 448(%rsp),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm6 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + + + + vmovdqu8 256(%rcx,%r11,1),%zmm17 + vmovdqu8 320(%rcx,%r11,1),%zmm19 + vmovdqu8 384(%rcx,%r11,1),%zmm20 + vmovdqu8 448(%rcx,%r11,1),%zmm21 + + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vpternlogq $0x96,%zmm12,%zmm6,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 192(%rdi),%zmm30 + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + + + + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + + + + movq %r9,%r10 + vmovdqu8 %zmm0,256(%r10,%r11,1) + vmovdqu8 %zmm3,320(%r10,%r11,1) + vmovdqu8 %zmm4,384(%r10,%r11,1) + vmovdqu8 %zmm5,448(%r10,%r11,1) + vpshufb %zmm29,%zmm17,%zmm0 + vpshufb %zmm29,%zmm19,%zmm3 + vpshufb %zmm29,%zmm20,%zmm4 + vpshufb %zmm29,%zmm21,%zmm5 + vmovdqa64 %zmm0,768(%rsp) + vmovdqa64 %zmm3,832(%rsp) + vmovdqa64 %zmm4,896(%rsp) + vmovdqa64 %zmm5,960(%rsp) + cmpb $240,%r15b + jae .L_16_blocks_overflow_667 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp .L_16_blocks_ok_667 +.L_16_blocks_overflow_667: + vpshufb %zmm29,%zmm2,%zmm2 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +.L_16_blocks_ok_667: + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + + + + + vshufi64x2 $255,%zmm5,%zmm5,%zmm2 + addb $16,%r15b + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + + + + + + + + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm6 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm6 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + + + + vmovdqu8 512(%rcx,%r11,1),%zmm17 + vmovdqu8 576(%rcx,%r11,1),%zmm19 + vmovdqu8 640(%rcx,%r11,1),%zmm20 + vmovdqu8 704(%rcx,%r11,1),%zmm21 + + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + + + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vpternlogq $0x96,%zmm15,%zmm12,%zmm6 + vpxorq %zmm24,%zmm6,%zmm6 + vpternlogq $0x96,%zmm10,%zmm13,%zmm7 + vpxorq %zmm25,%zmm7,%zmm7 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vextracti64x4 $1,%zmm6,%ymm12 + vpxorq %ymm12,%ymm6,%ymm6 + vextracti32x4 $1,%ymm6,%xmm12 + vpxorq %xmm12,%xmm6,%xmm6 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 176(%rdi),%zmm31 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 192(%rdi),%zmm30 + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm6 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + + + + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + + + + movq %r9,%r10 + vmovdqu8 %zmm0,512(%r10,%r11,1) + vmovdqu8 %zmm3,576(%r10,%r11,1) + vmovdqu8 %zmm4,640(%r10,%r11,1) + vmovdqu8 %zmm5,704(%r10,%r11,1) + vpshufb %zmm29,%zmm17,%zmm0 + vpshufb %zmm29,%zmm19,%zmm3 + vpshufb %zmm29,%zmm20,%zmm4 + vpshufb %zmm29,%zmm21,%zmm5 + vmovdqa64 %zmm0,1024(%rsp) + vmovdqa64 %zmm3,1088(%rsp) + vmovdqa64 %zmm4,1152(%rsp) + vmovdqa64 %zmm5,1216(%rsp) + vmovdqa64 %zmm6,%zmm14 + + addq $768,%r11 + subq $768,%r8 + cmpq $768,%r8 + jae .L_encrypt_big_nblocks_659 + +.L_no_more_big_nblocks_659: + + cmpq $512,%r8 + jae .L_encrypt_32_blocks_659 + + cmpq $256,%r8 + jae .L_encrypt_16_blocks_659 +.L_encrypt_0_blocks_ghash_32_659: + movl %r8d,%r10d + andl $~15,%r10d + movl $256,%ebx + subl %r10d,%ebx + vmovdqa64 768(%rsp),%zmm13 + vpxorq %zmm14,%zmm13,%zmm13 + vmovdqu64 0(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 832(%rsp),%zmm13 + vmovdqu64 64(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + vpxorq %zmm10,%zmm4,%zmm26 + vpxorq %zmm6,%zmm0,%zmm24 + vpxorq %zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + vmovdqa64 896(%rsp),%zmm13 + vmovdqu64 128(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 960(%rsp),%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + + vpternlogq $0x96,%zmm10,%zmm4,%zmm26 + vpternlogq $0x96,%zmm6,%zmm0,%zmm24 + vpternlogq $0x96,%zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + addl $256,%ebx + movl %r8d,%r10d + addl $15,%r10d + shrl $4,%r10d + je .L_last_num_blocks_is_0_668 + + cmpl $8,%r10d + je .L_last_num_blocks_is_8_668 + jb .L_last_num_blocks_is_7_1_668 + + + cmpl $12,%r10d + je .L_last_num_blocks_is_12_668 + jb .L_last_num_blocks_is_11_9_668 + + + cmpl $15,%r10d + je .L_last_num_blocks_is_15_668 + ja .L_last_num_blocks_is_16_668 + cmpl $14,%r10d + je .L_last_num_blocks_is_14_668 + jmp .L_last_num_blocks_is_13_668 + +.L_last_num_blocks_is_11_9_668: + + cmpl $10,%r10d + je .L_last_num_blocks_is_10_668 + ja .L_last_num_blocks_is_11_668 + jmp .L_last_num_blocks_is_9_668 + +.L_last_num_blocks_is_7_1_668: + cmpl $4,%r10d + je .L_last_num_blocks_is_4_668 + jb .L_last_num_blocks_is_3_1_668 + + cmpl $6,%r10d + ja .L_last_num_blocks_is_7_668 + je .L_last_num_blocks_is_6_668 + jmp .L_last_num_blocks_is_5_668 + +.L_last_num_blocks_is_3_1_668: + + cmpl $2,%r10d + ja .L_last_num_blocks_is_3_668 + je .L_last_num_blocks_is_2_668 +.L_last_num_blocks_is_1_668: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $255,%r15d + jae .L_16_blocks_overflow_669 + vpaddd %xmm28,%xmm2,%xmm0 + jmp .L_16_blocks_ok_669 + +.L_16_blocks_overflow_669: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %xmm29,%xmm0,%xmm0 +.L_16_blocks_ok_669: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $0,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%xmm17{%k1}{z} + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %xmm31,%xmm0,%xmm0 + vaesenclast %xmm30,%xmm0,%xmm0 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti32x4 $0,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %xmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm17,%zmm17{%k1}{z} + vpshufb %xmm29,%xmm17,%xmm17 + vextracti32x4 $0,%zmm17,%xmm7 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_670 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm17,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm17,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm17,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm17,%xmm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_670 +.L_small_initial_partial_block_670: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + + + vpsrldq $8,%zmm26,%zmm0 + vpslldq $8,%zmm26,%zmm3 + vpxorq %zmm0,%zmm24,%zmm24 + vpxorq %zmm3,%zmm25,%zmm25 + vextracti64x4 $1,%zmm24,%ymm0 + vpxorq %ymm0,%ymm24,%ymm24 + vextracti32x4 $1,%ymm24,%xmm0 + vpxorq %xmm0,%xmm24,%xmm24 + vextracti64x4 $1,%zmm25,%ymm3 + vpxorq %ymm3,%ymm25,%ymm25 + vextracti32x4 $1,%ymm25,%xmm3 + vpxorq %xmm3,%xmm25,%xmm25 + vmovdqa64 POLY2(%rip),%xmm0 + + + vpclmulqdq $0x01,%xmm25,%xmm0,%xmm3 + vpslldq $8,%xmm3,%xmm3 + vpxorq %xmm3,%xmm25,%xmm3 + + + vpclmulqdq $0x00,%xmm3,%xmm0,%xmm4 + vpsrldq $4,%xmm4,%xmm4 + vpclmulqdq $0x10,%xmm3,%xmm0,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm24,%xmm4,%xmm14 + + + + + + + + + + + + + vpxorq %xmm7,%xmm14,%xmm14 + + jmp .L_after_reduction_670 +.L_small_initial_compute_done_670: +.L_after_reduction_670: + jmp .L_last_blocks_done_668 +.L_last_num_blocks_is_2_668: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $254,%r15d + jae .L_16_blocks_overflow_671 + vpaddd %ymm28,%ymm2,%ymm0 + jmp .L_16_blocks_ok_671 + +.L_16_blocks_overflow_671: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %ymm29,%ymm0,%ymm0 +.L_16_blocks_ok_671: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $1,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%ymm17{%k1}{z} + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %ymm31,%ymm0,%ymm0 + vaesenclast %ymm30,%ymm0,%ymm0 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %ymm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm17,%zmm17{%k1}{z} + vpshufb %ymm29,%ymm17,%ymm17 + vextracti32x4 $1,%zmm17,%xmm7 + subq $16 * (2 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_672 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm17,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm17,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm17,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm17,%ymm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_672 +.L_small_initial_partial_block_672: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm17,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm17,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm17,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm17,%xmm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_672: + + orq %r8,%r8 + je .L_after_reduction_672 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_672: + jmp .L_last_blocks_done_668 +.L_last_num_blocks_is_3_668: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $253,%r15d + jae .L_16_blocks_overflow_673 + vpaddd %zmm28,%zmm2,%zmm0 + jmp .L_16_blocks_ok_673 + +.L_16_blocks_overflow_673: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %zmm29,%zmm0,%zmm0 +.L_16_blocks_ok_673: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $2,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm0,%zmm0 + vpxorq %zmm17,%zmm0,%zmm0 + vextracti32x4 $2,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm17,%zmm17{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vextracti32x4 $2,%zmm17,%xmm7 + subq $16 * (3 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_674 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_674 +.L_small_initial_partial_block_674: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm17,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm17,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm17,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm17,%ymm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_674: + + orq %r8,%r8 + je .L_after_reduction_674 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_674: + jmp .L_last_blocks_done_668 +.L_last_num_blocks_is_4_668: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $252,%r15d + jae .L_16_blocks_overflow_675 + vpaddd %zmm28,%zmm2,%zmm0 + jmp .L_16_blocks_ok_675 + +.L_16_blocks_overflow_675: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %zmm29,%zmm0,%zmm0 +.L_16_blocks_ok_675: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $3,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm0,%zmm0 + vpxorq %zmm17,%zmm0,%zmm0 + vextracti32x4 $3,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm17,%zmm17{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vextracti32x4 $3,%zmm17,%xmm7 + subq $16 * (4 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_676 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_676 +.L_small_initial_partial_block_676: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_676: + + orq %r8,%r8 + je .L_after_reduction_676 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_676: + jmp .L_last_blocks_done_668 +.L_last_num_blocks_is_5_668: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $251,%r15d + jae .L_16_blocks_overflow_677 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %xmm27,%xmm0,%xmm3 + jmp .L_16_blocks_ok_677 + +.L_16_blocks_overflow_677: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %xmm29,%xmm3,%xmm3 +.L_16_blocks_ok_677: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $0,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%xmm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %xmm30,%xmm3,%xmm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %xmm19,%xmm3,%xmm3 + vextracti32x4 $0,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %xmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm19,%zmm19{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %xmm29,%xmm19,%xmm19 + vextracti32x4 $0,%zmm19,%xmm7 + subq $16 * (5 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_678 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm19,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm19,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm19,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm19,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_678 +.L_small_initial_partial_block_678: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_678: + + orq %r8,%r8 + je .L_after_reduction_678 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_678: + jmp .L_last_blocks_done_668 +.L_last_num_blocks_is_6_668: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $250,%r15d + jae .L_16_blocks_overflow_679 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %ymm27,%ymm0,%ymm3 + jmp .L_16_blocks_ok_679 + +.L_16_blocks_overflow_679: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %ymm29,%ymm3,%ymm3 +.L_16_blocks_ok_679: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $1,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%ymm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %ymm30,%ymm3,%ymm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %ymm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm19,%zmm19{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %ymm29,%ymm19,%ymm19 + vextracti32x4 $1,%zmm19,%xmm7 + subq $16 * (6 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_680 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm19,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm19,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm19,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm19,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_680 +.L_small_initial_partial_block_680: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm19,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm19,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm19,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm19,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_680: + + orq %r8,%r8 + je .L_after_reduction_680 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_680: + jmp .L_last_blocks_done_668 +.L_last_num_blocks_is_7_668: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $249,%r15d + jae .L_16_blocks_overflow_681 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + jmp .L_16_blocks_ok_681 + +.L_16_blocks_overflow_681: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 +.L_16_blocks_ok_681: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $2,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti32x4 $2,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm19,%zmm19{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vextracti32x4 $2,%zmm19,%xmm7 + subq $16 * (7 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_682 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_682 +.L_small_initial_partial_block_682: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm19,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm19,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm19,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm19,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_682: + + orq %r8,%r8 + je .L_after_reduction_682 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_682: + jmp .L_last_blocks_done_668 +.L_last_num_blocks_is_8_668: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $248,%r15d + jae .L_16_blocks_overflow_683 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + jmp .L_16_blocks_ok_683 + +.L_16_blocks_overflow_683: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 +.L_16_blocks_ok_683: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $3,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti32x4 $3,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm19,%zmm19{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vextracti32x4 $3,%zmm19,%xmm7 + subq $16 * (8 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_684 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_684 +.L_small_initial_partial_block_684: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_684: + + orq %r8,%r8 + je .L_after_reduction_684 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_684: + jmp .L_last_blocks_done_668 +.L_last_num_blocks_is_9_668: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $247,%r15d + jae .L_16_blocks_overflow_685 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %xmm27,%xmm3,%xmm4 + jmp .L_16_blocks_ok_685 + +.L_16_blocks_overflow_685: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %xmm29,%xmm4,%xmm4 +.L_16_blocks_ok_685: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $0,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%xmm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %xmm30,%xmm4,%xmm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %xmm20,%xmm4,%xmm4 + vextracti32x4 $0,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %xmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm20,%zmm20{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %xmm29,%xmm20,%xmm20 + vextracti32x4 $0,%zmm20,%xmm7 + subq $16 * (9 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_686 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm20,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm20,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm20,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm20,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_686 +.L_small_initial_partial_block_686: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_686: + + orq %r8,%r8 + je .L_after_reduction_686 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_686: + jmp .L_last_blocks_done_668 +.L_last_num_blocks_is_10_668: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $246,%r15d + jae .L_16_blocks_overflow_687 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %ymm27,%ymm3,%ymm4 + jmp .L_16_blocks_ok_687 + +.L_16_blocks_overflow_687: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %ymm29,%ymm4,%ymm4 +.L_16_blocks_ok_687: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $1,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%ymm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %ymm30,%ymm4,%ymm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %ymm20,%ymm4,%ymm4 + vextracti32x4 $1,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %ymm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm20,%zmm20{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %ymm29,%ymm20,%ymm20 + vextracti32x4 $1,%zmm20,%xmm7 + subq $16 * (10 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_688 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm20,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm20,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm20,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm20,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_688 +.L_small_initial_partial_block_688: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm20,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm20,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm20,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm20,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_688: + + orq %r8,%r8 + je .L_after_reduction_688 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_688: + jmp .L_last_blocks_done_668 +.L_last_num_blocks_is_11_668: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $245,%r15d + jae .L_16_blocks_overflow_689 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + jmp .L_16_blocks_ok_689 + +.L_16_blocks_overflow_689: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 +.L_16_blocks_ok_689: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $2,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vextracti32x4 $2,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm20,%zmm20{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %zmm29,%zmm20,%zmm20 + vextracti32x4 $2,%zmm20,%xmm7 + subq $16 * (11 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_690 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_690 +.L_small_initial_partial_block_690: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm20,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm20,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm20,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm20,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_690: + + orq %r8,%r8 + je .L_after_reduction_690 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_690: + jmp .L_last_blocks_done_668 +.L_last_num_blocks_is_12_668: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $244,%r15d + jae .L_16_blocks_overflow_691 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + jmp .L_16_blocks_ok_691 + +.L_16_blocks_overflow_691: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 +.L_16_blocks_ok_691: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $3,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vextracti32x4 $3,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm20,%zmm20{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %zmm29,%zmm20,%zmm20 + vextracti32x4 $3,%zmm20,%xmm7 + subq $16 * (12 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_692 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 160(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_692 +.L_small_initial_partial_block_692: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_692: + + orq %r8,%r8 + je .L_after_reduction_692 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_692: + jmp .L_last_blocks_done_668 +.L_last_num_blocks_is_13_668: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $243,%r15d + jae .L_16_blocks_overflow_693 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %xmm27,%xmm4,%xmm5 + jmp .L_16_blocks_ok_693 + +.L_16_blocks_overflow_693: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %xmm29,%xmm5,%xmm5 +.L_16_blocks_ok_693: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $0,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%xmm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %xmm30,%xmm5,%xmm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %xmm21,%xmm5,%xmm5 + vextracti32x4 $0,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %xmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm21,%zmm21{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %zmm29,%zmm20,%zmm20 + vpshufb %xmm29,%xmm21,%xmm21 + vextracti32x4 $0,%zmm21,%xmm7 + subq $16 * (13 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_694 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 144(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm21,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm21,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm21,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm21,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_694 +.L_small_initial_partial_block_694: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 160(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_694: + + orq %r8,%r8 + je .L_after_reduction_694 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_694: + jmp .L_last_blocks_done_668 +.L_last_num_blocks_is_14_668: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $242,%r15d + jae .L_16_blocks_overflow_695 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %ymm27,%ymm4,%ymm5 + jmp .L_16_blocks_ok_695 + +.L_16_blocks_overflow_695: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %ymm29,%ymm5,%ymm5 +.L_16_blocks_ok_695: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $1,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%ymm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %ymm30,%ymm5,%ymm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %ymm21,%ymm5,%ymm5 + vextracti32x4 $1,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %ymm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm21,%zmm21{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %zmm29,%zmm20,%zmm20 + vpshufb %ymm29,%ymm21,%ymm21 + vextracti32x4 $1,%zmm21,%xmm7 + subq $16 * (14 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_696 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 128(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm21,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm21,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm21,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm21,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_696 +.L_small_initial_partial_block_696: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 144(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm21,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm21,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm21,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm21,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_696: + + orq %r8,%r8 + je .L_after_reduction_696 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_696: + jmp .L_last_blocks_done_668 +.L_last_num_blocks_is_15_668: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $241,%r15d + jae .L_16_blocks_overflow_697 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp .L_16_blocks_ok_697 + +.L_16_blocks_overflow_697: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +.L_16_blocks_ok_697: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $2,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%zmm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + vextracti32x4 $2,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %zmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm21,%zmm21{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %zmm29,%zmm20,%zmm20 + vpshufb %zmm29,%zmm21,%zmm21 + vextracti32x4 $2,%zmm21,%xmm7 + subq $16 * (15 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_698 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 112(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm21,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm21,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm21,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm21,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_698 +.L_small_initial_partial_block_698: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 128(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm21,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm21,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm21,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm21,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_698: + + orq %r8,%r8 + je .L_after_reduction_698 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_698: + jmp .L_last_blocks_done_668 +.L_last_num_blocks_is_16_668: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $240,%r15d + jae .L_16_blocks_overflow_699 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp .L_16_blocks_ok_699 + +.L_16_blocks_overflow_699: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +.L_16_blocks_ok_699: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $3,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%zmm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + vextracti32x4 $3,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %zmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm21,%zmm21{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %zmm29,%zmm20,%zmm20 + vpshufb %zmm29,%zmm21,%zmm21 + vextracti32x4 $3,%zmm21,%xmm7 + subq $16 * (16 - 1),%r8 +.L_small_initial_partial_block_700: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 112(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm21,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm21,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm21,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm21,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_700: + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_700: + jmp .L_last_blocks_done_668 +.L_last_num_blocks_is_0_668: + vmovdqa64 1024(%rsp),%zmm13 + vmovdqu64 0(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 1088(%rsp),%zmm13 + vmovdqu64 64(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + vpternlogq $0x96,%zmm10,%zmm4,%zmm26 + vpternlogq $0x96,%zmm6,%zmm0,%zmm24 + vpternlogq $0x96,%zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + vmovdqa64 1152(%rsp),%zmm13 + vmovdqu64 128(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 1216(%rsp),%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + + vpternlogq $0x96,%zmm10,%zmm4,%zmm26 + vpternlogq $0x96,%zmm6,%zmm0,%zmm24 + vpternlogq $0x96,%zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + + vpsrldq $8,%zmm26,%zmm0 + vpslldq $8,%zmm26,%zmm3 + vpxorq %zmm0,%zmm24,%zmm24 + vpxorq %zmm3,%zmm25,%zmm25 + vextracti64x4 $1,%zmm24,%ymm0 + vpxorq %ymm0,%ymm24,%ymm24 + vextracti32x4 $1,%ymm24,%xmm0 + vpxorq %xmm0,%xmm24,%xmm24 + vextracti64x4 $1,%zmm25,%ymm3 + vpxorq %ymm3,%ymm25,%ymm25 + vextracti32x4 $1,%ymm25,%xmm3 + vpxorq %xmm3,%xmm25,%xmm25 + vmovdqa64 POLY2(%rip),%xmm4 + + + vpclmulqdq $0x01,%xmm25,%xmm4,%xmm0 + vpslldq $8,%xmm0,%xmm0 + vpxorq %xmm0,%xmm25,%xmm0 + + + vpclmulqdq $0x00,%xmm0,%xmm4,%xmm3 + vpsrldq $4,%xmm3,%xmm3 + vpclmulqdq $0x10,%xmm0,%xmm4,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm24,%xmm3,%xmm14 + +.L_last_blocks_done_668: + vpshufb %xmm29,%xmm2,%xmm2 + jmp .L_ghash_done_659 +.L_encrypt_32_blocks_659: + cmpb $240,%r15b + jae .L_16_blocks_overflow_701 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp .L_16_blocks_ok_701 +.L_16_blocks_overflow_701: + vpshufb %zmm29,%zmm2,%zmm2 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +.L_16_blocks_ok_701: + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp),%zmm1 + + + + + vshufi64x2 $255,%zmm5,%zmm5,%zmm2 + addb $16,%r15b + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + + + + + + + + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm6 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm6 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + + + + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%zmm21 + + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm15,%zmm10,%zmm26 + vpxorq %zmm12,%zmm6,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 192(%rdi),%zmm30 + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + + + + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + + + + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %zmm5,192(%r10,%r11,1) + vpshufb %zmm29,%zmm17,%zmm0 + vpshufb %zmm29,%zmm19,%zmm3 + vpshufb %zmm29,%zmm20,%zmm4 + vpshufb %zmm29,%zmm21,%zmm5 + vmovdqa64 %zmm0,1280(%rsp) + vmovdqa64 %zmm3,1344(%rsp) + vmovdqa64 %zmm4,1408(%rsp) + vmovdqa64 %zmm5,1472(%rsp) + cmpb $240,%r15b + jae .L_16_blocks_overflow_702 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp .L_16_blocks_ok_702 +.L_16_blocks_overflow_702: + vpshufb %zmm29,%zmm2,%zmm2 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +.L_16_blocks_ok_702: + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 256(%rsp),%zmm1 + + + + + vshufi64x2 $255,%zmm5,%zmm5,%zmm2 + addb $16,%r15b + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 320(%rsp),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + + + + + + + + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm6 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 384(%rsp),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 448(%rsp),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm6 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + + + + vmovdqu8 256(%rcx,%r11,1),%zmm17 + vmovdqu8 320(%rcx,%r11,1),%zmm19 + vmovdqu8 384(%rcx,%r11,1),%zmm20 + vmovdqu8 448(%rcx,%r11,1),%zmm21 + + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vpternlogq $0x96,%zmm12,%zmm6,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 192(%rdi),%zmm30 + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + + + + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + + + + movq %r9,%r10 + vmovdqu8 %zmm0,256(%r10,%r11,1) + vmovdqu8 %zmm3,320(%r10,%r11,1) + vmovdqu8 %zmm4,384(%r10,%r11,1) + vmovdqu8 %zmm5,448(%r10,%r11,1) + vpshufb %zmm29,%zmm17,%zmm0 + vpshufb %zmm29,%zmm19,%zmm3 + vpshufb %zmm29,%zmm20,%zmm4 + vpshufb %zmm29,%zmm21,%zmm5 + vmovdqa64 %zmm0,768(%rsp) + vmovdqa64 %zmm3,832(%rsp) + vmovdqa64 %zmm4,896(%rsp) + vmovdqa64 %zmm5,960(%rsp) + vmovdqa64 1280(%rsp),%zmm13 + vmovdqu64 512(%rsp),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 1344(%rsp),%zmm13 + vmovdqu64 576(%rsp),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + vpternlogq $0x96,%zmm10,%zmm4,%zmm26 + vpternlogq $0x96,%zmm6,%zmm0,%zmm24 + vpternlogq $0x96,%zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + vmovdqa64 1408(%rsp),%zmm13 + vmovdqu64 640(%rsp),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 1472(%rsp),%zmm13 + vmovdqu64 704(%rsp),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + + vpternlogq $0x96,%zmm10,%zmm4,%zmm26 + vpternlogq $0x96,%zmm6,%zmm0,%zmm24 + vpternlogq $0x96,%zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + + vpsrldq $8,%zmm26,%zmm0 + vpslldq $8,%zmm26,%zmm3 + vpxorq %zmm0,%zmm24,%zmm24 + vpxorq %zmm3,%zmm25,%zmm25 + vextracti64x4 $1,%zmm24,%ymm0 + vpxorq %ymm0,%ymm24,%ymm24 + vextracti32x4 $1,%ymm24,%xmm0 + vpxorq %xmm0,%xmm24,%xmm24 + vextracti64x4 $1,%zmm25,%ymm3 + vpxorq %ymm3,%ymm25,%ymm25 + vextracti32x4 $1,%ymm25,%xmm3 + vpxorq %xmm3,%xmm25,%xmm25 + vmovdqa64 POLY2(%rip),%xmm4 + + + vpclmulqdq $0x01,%xmm25,%xmm4,%xmm0 + vpslldq $8,%xmm0,%xmm0 + vpxorq %xmm0,%xmm25,%xmm0 + + + vpclmulqdq $0x00,%xmm0,%xmm4,%xmm3 + vpsrldq $4,%xmm3,%xmm3 + vpclmulqdq $0x10,%xmm0,%xmm4,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm24,%xmm3,%xmm14 + + subq $512,%r8 + addq $512,%r11 + movl %r8d,%r10d + andl $~15,%r10d + movl $512,%ebx + subl %r10d,%ebx + movl %r8d,%r10d + addl $15,%r10d + shrl $4,%r10d + je .L_last_num_blocks_is_0_703 + + cmpl $8,%r10d + je .L_last_num_blocks_is_8_703 + jb .L_last_num_blocks_is_7_1_703 + + + cmpl $12,%r10d + je .L_last_num_blocks_is_12_703 + jb .L_last_num_blocks_is_11_9_703 + + + cmpl $15,%r10d + je .L_last_num_blocks_is_15_703 + ja .L_last_num_blocks_is_16_703 + cmpl $14,%r10d + je .L_last_num_blocks_is_14_703 + jmp .L_last_num_blocks_is_13_703 + +.L_last_num_blocks_is_11_9_703: + + cmpl $10,%r10d + je .L_last_num_blocks_is_10_703 + ja .L_last_num_blocks_is_11_703 + jmp .L_last_num_blocks_is_9_703 + +.L_last_num_blocks_is_7_1_703: + cmpl $4,%r10d + je .L_last_num_blocks_is_4_703 + jb .L_last_num_blocks_is_3_1_703 + + cmpl $6,%r10d + ja .L_last_num_blocks_is_7_703 + je .L_last_num_blocks_is_6_703 + jmp .L_last_num_blocks_is_5_703 + +.L_last_num_blocks_is_3_1_703: + + cmpl $2,%r10d + ja .L_last_num_blocks_is_3_703 + je .L_last_num_blocks_is_2_703 +.L_last_num_blocks_is_1_703: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $255,%r15d + jae .L_16_blocks_overflow_704 + vpaddd %xmm28,%xmm2,%xmm0 + jmp .L_16_blocks_ok_704 + +.L_16_blocks_overflow_704: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %xmm29,%xmm0,%xmm0 +.L_16_blocks_ok_704: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $0,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%xmm17{%k1}{z} + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %xmm31,%xmm0,%xmm0 + vaesenclast %xmm30,%xmm0,%xmm0 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti32x4 $0,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %xmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm17,%zmm17{%k1}{z} + vpshufb %xmm29,%xmm17,%xmm17 + vextracti32x4 $0,%zmm17,%xmm7 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_705 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm17,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm17,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm17,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm17,%xmm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_705 +.L_small_initial_partial_block_705: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + + + vpsrldq $8,%zmm26,%zmm0 + vpslldq $8,%zmm26,%zmm3 + vpxorq %zmm0,%zmm24,%zmm24 + vpxorq %zmm3,%zmm25,%zmm25 + vextracti64x4 $1,%zmm24,%ymm0 + vpxorq %ymm0,%ymm24,%ymm24 + vextracti32x4 $1,%ymm24,%xmm0 + vpxorq %xmm0,%xmm24,%xmm24 + vextracti64x4 $1,%zmm25,%ymm3 + vpxorq %ymm3,%ymm25,%ymm25 + vextracti32x4 $1,%ymm25,%xmm3 + vpxorq %xmm3,%xmm25,%xmm25 + vmovdqa64 POLY2(%rip),%xmm0 + + + vpclmulqdq $0x01,%xmm25,%xmm0,%xmm3 + vpslldq $8,%xmm3,%xmm3 + vpxorq %xmm3,%xmm25,%xmm3 + + + vpclmulqdq $0x00,%xmm3,%xmm0,%xmm4 + vpsrldq $4,%xmm4,%xmm4 + vpclmulqdq $0x10,%xmm3,%xmm0,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm24,%xmm4,%xmm14 + + + + + + + + + + + + + vpxorq %xmm7,%xmm14,%xmm14 + + jmp .L_after_reduction_705 +.L_small_initial_compute_done_705: +.L_after_reduction_705: + jmp .L_last_blocks_done_703 +.L_last_num_blocks_is_2_703: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $254,%r15d + jae .L_16_blocks_overflow_706 + vpaddd %ymm28,%ymm2,%ymm0 + jmp .L_16_blocks_ok_706 + +.L_16_blocks_overflow_706: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %ymm29,%ymm0,%ymm0 +.L_16_blocks_ok_706: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $1,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%ymm17{%k1}{z} + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %ymm31,%ymm0,%ymm0 + vaesenclast %ymm30,%ymm0,%ymm0 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %ymm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm17,%zmm17{%k1}{z} + vpshufb %ymm29,%ymm17,%ymm17 + vextracti32x4 $1,%zmm17,%xmm7 + subq $16 * (2 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_707 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm17,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm17,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm17,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm17,%ymm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_707 +.L_small_initial_partial_block_707: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm17,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm17,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm17,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm17,%xmm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_707: + + orq %r8,%r8 + je .L_after_reduction_707 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_707: + jmp .L_last_blocks_done_703 +.L_last_num_blocks_is_3_703: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $253,%r15d + jae .L_16_blocks_overflow_708 + vpaddd %zmm28,%zmm2,%zmm0 + jmp .L_16_blocks_ok_708 + +.L_16_blocks_overflow_708: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %zmm29,%zmm0,%zmm0 +.L_16_blocks_ok_708: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $2,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm0,%zmm0 + vpxorq %zmm17,%zmm0,%zmm0 + vextracti32x4 $2,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm17,%zmm17{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vextracti32x4 $2,%zmm17,%xmm7 + subq $16 * (3 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_709 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_709 +.L_small_initial_partial_block_709: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm17,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm17,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm17,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm17,%ymm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_709: + + orq %r8,%r8 + je .L_after_reduction_709 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_709: + jmp .L_last_blocks_done_703 +.L_last_num_blocks_is_4_703: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $252,%r15d + jae .L_16_blocks_overflow_710 + vpaddd %zmm28,%zmm2,%zmm0 + jmp .L_16_blocks_ok_710 + +.L_16_blocks_overflow_710: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %zmm29,%zmm0,%zmm0 +.L_16_blocks_ok_710: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $3,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm0,%zmm0 + vpxorq %zmm17,%zmm0,%zmm0 + vextracti32x4 $3,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm17,%zmm17{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vextracti32x4 $3,%zmm17,%xmm7 + subq $16 * (4 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_711 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_711 +.L_small_initial_partial_block_711: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_711: + + orq %r8,%r8 + je .L_after_reduction_711 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_711: + jmp .L_last_blocks_done_703 +.L_last_num_blocks_is_5_703: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $251,%r15d + jae .L_16_blocks_overflow_712 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %xmm27,%xmm0,%xmm3 + jmp .L_16_blocks_ok_712 + +.L_16_blocks_overflow_712: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %xmm29,%xmm3,%xmm3 +.L_16_blocks_ok_712: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $0,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%xmm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %xmm30,%xmm3,%xmm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %xmm19,%xmm3,%xmm3 + vextracti32x4 $0,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %xmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm19,%zmm19{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %xmm29,%xmm19,%xmm19 + vextracti32x4 $0,%zmm19,%xmm7 + subq $16 * (5 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_713 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm19,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm19,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm19,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm19,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_713 +.L_small_initial_partial_block_713: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_713: + + orq %r8,%r8 + je .L_after_reduction_713 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_713: + jmp .L_last_blocks_done_703 +.L_last_num_blocks_is_6_703: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $250,%r15d + jae .L_16_blocks_overflow_714 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %ymm27,%ymm0,%ymm3 + jmp .L_16_blocks_ok_714 + +.L_16_blocks_overflow_714: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %ymm29,%ymm3,%ymm3 +.L_16_blocks_ok_714: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $1,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%ymm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %ymm30,%ymm3,%ymm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %ymm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm19,%zmm19{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %ymm29,%ymm19,%ymm19 + vextracti32x4 $1,%zmm19,%xmm7 + subq $16 * (6 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_715 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm19,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm19,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm19,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm19,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_715 +.L_small_initial_partial_block_715: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm19,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm19,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm19,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm19,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_715: + + orq %r8,%r8 + je .L_after_reduction_715 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_715: + jmp .L_last_blocks_done_703 +.L_last_num_blocks_is_7_703: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $249,%r15d + jae .L_16_blocks_overflow_716 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + jmp .L_16_blocks_ok_716 + +.L_16_blocks_overflow_716: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 +.L_16_blocks_ok_716: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $2,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti32x4 $2,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm19,%zmm19{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vextracti32x4 $2,%zmm19,%xmm7 + subq $16 * (7 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_717 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_717 +.L_small_initial_partial_block_717: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm19,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm19,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm19,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm19,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_717: + + orq %r8,%r8 + je .L_after_reduction_717 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_717: + jmp .L_last_blocks_done_703 +.L_last_num_blocks_is_8_703: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $248,%r15d + jae .L_16_blocks_overflow_718 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + jmp .L_16_blocks_ok_718 + +.L_16_blocks_overflow_718: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 +.L_16_blocks_ok_718: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $3,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti32x4 $3,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm19,%zmm19{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vextracti32x4 $3,%zmm19,%xmm7 + subq $16 * (8 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_719 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_719 +.L_small_initial_partial_block_719: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_719: + + orq %r8,%r8 + je .L_after_reduction_719 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_719: + jmp .L_last_blocks_done_703 +.L_last_num_blocks_is_9_703: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $247,%r15d + jae .L_16_blocks_overflow_720 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %xmm27,%xmm3,%xmm4 + jmp .L_16_blocks_ok_720 + +.L_16_blocks_overflow_720: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %xmm29,%xmm4,%xmm4 +.L_16_blocks_ok_720: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $0,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%xmm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %xmm30,%xmm4,%xmm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %xmm20,%xmm4,%xmm4 + vextracti32x4 $0,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %xmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm20,%zmm20{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %xmm29,%xmm20,%xmm20 + vextracti32x4 $0,%zmm20,%xmm7 + subq $16 * (9 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_721 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm20,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm20,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm20,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm20,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_721 +.L_small_initial_partial_block_721: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_721: + + orq %r8,%r8 + je .L_after_reduction_721 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_721: + jmp .L_last_blocks_done_703 +.L_last_num_blocks_is_10_703: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $246,%r15d + jae .L_16_blocks_overflow_722 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %ymm27,%ymm3,%ymm4 + jmp .L_16_blocks_ok_722 + +.L_16_blocks_overflow_722: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %ymm29,%ymm4,%ymm4 +.L_16_blocks_ok_722: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $1,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%ymm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %ymm30,%ymm4,%ymm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %ymm20,%ymm4,%ymm4 + vextracti32x4 $1,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %ymm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm20,%zmm20{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %ymm29,%ymm20,%ymm20 + vextracti32x4 $1,%zmm20,%xmm7 + subq $16 * (10 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_723 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm20,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm20,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm20,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm20,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_723 +.L_small_initial_partial_block_723: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm20,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm20,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm20,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm20,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_723: + + orq %r8,%r8 + je .L_after_reduction_723 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_723: + jmp .L_last_blocks_done_703 +.L_last_num_blocks_is_11_703: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $245,%r15d + jae .L_16_blocks_overflow_724 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + jmp .L_16_blocks_ok_724 + +.L_16_blocks_overflow_724: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 +.L_16_blocks_ok_724: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $2,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vextracti32x4 $2,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm20,%zmm20{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %zmm29,%zmm20,%zmm20 + vextracti32x4 $2,%zmm20,%xmm7 + subq $16 * (11 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_725 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_725 +.L_small_initial_partial_block_725: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm20,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm20,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm20,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm20,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_725: + + orq %r8,%r8 + je .L_after_reduction_725 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_725: + jmp .L_last_blocks_done_703 +.L_last_num_blocks_is_12_703: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $244,%r15d + jae .L_16_blocks_overflow_726 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + jmp .L_16_blocks_ok_726 + +.L_16_blocks_overflow_726: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 +.L_16_blocks_ok_726: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $3,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vextracti32x4 $3,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm20,%zmm20{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %zmm29,%zmm20,%zmm20 + vextracti32x4 $3,%zmm20,%xmm7 + subq $16 * (12 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_727 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 160(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_727 +.L_small_initial_partial_block_727: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_727: + + orq %r8,%r8 + je .L_after_reduction_727 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_727: + jmp .L_last_blocks_done_703 +.L_last_num_blocks_is_13_703: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $243,%r15d + jae .L_16_blocks_overflow_728 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %xmm27,%xmm4,%xmm5 + jmp .L_16_blocks_ok_728 + +.L_16_blocks_overflow_728: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %xmm29,%xmm5,%xmm5 +.L_16_blocks_ok_728: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $0,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%xmm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %xmm30,%xmm5,%xmm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %xmm21,%xmm5,%xmm5 + vextracti32x4 $0,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %xmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm21,%zmm21{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %zmm29,%zmm20,%zmm20 + vpshufb %xmm29,%xmm21,%xmm21 + vextracti32x4 $0,%zmm21,%xmm7 + subq $16 * (13 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_729 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 144(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm21,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm21,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm21,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm21,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_729 +.L_small_initial_partial_block_729: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 160(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_729: + + orq %r8,%r8 + je .L_after_reduction_729 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_729: + jmp .L_last_blocks_done_703 +.L_last_num_blocks_is_14_703: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $242,%r15d + jae .L_16_blocks_overflow_730 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %ymm27,%ymm4,%ymm5 + jmp .L_16_blocks_ok_730 + +.L_16_blocks_overflow_730: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %ymm29,%ymm5,%ymm5 +.L_16_blocks_ok_730: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $1,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%ymm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %ymm30,%ymm5,%ymm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %ymm21,%ymm5,%ymm5 + vextracti32x4 $1,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %ymm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm21,%zmm21{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %zmm29,%zmm20,%zmm20 + vpshufb %ymm29,%ymm21,%ymm21 + vextracti32x4 $1,%zmm21,%xmm7 + subq $16 * (14 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_731 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 128(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm21,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm21,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm21,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm21,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_731 +.L_small_initial_partial_block_731: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 144(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm21,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm21,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm21,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm21,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_731: + + orq %r8,%r8 + je .L_after_reduction_731 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_731: + jmp .L_last_blocks_done_703 +.L_last_num_blocks_is_15_703: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $241,%r15d + jae .L_16_blocks_overflow_732 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp .L_16_blocks_ok_732 + +.L_16_blocks_overflow_732: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +.L_16_blocks_ok_732: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $2,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%zmm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + vextracti32x4 $2,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %zmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm21,%zmm21{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %zmm29,%zmm20,%zmm20 + vpshufb %zmm29,%zmm21,%zmm21 + vextracti32x4 $2,%zmm21,%xmm7 + subq $16 * (15 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_733 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 112(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm21,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm21,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm21,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm21,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_733 +.L_small_initial_partial_block_733: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 128(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm21,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm21,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm21,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm21,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_733: + + orq %r8,%r8 + je .L_after_reduction_733 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_733: + jmp .L_last_blocks_done_703 +.L_last_num_blocks_is_16_703: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $240,%r15d + jae .L_16_blocks_overflow_734 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp .L_16_blocks_ok_734 + +.L_16_blocks_overflow_734: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +.L_16_blocks_ok_734: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $3,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%zmm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + vextracti32x4 $3,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %zmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm21,%zmm21{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %zmm29,%zmm20,%zmm20 + vpshufb %zmm29,%zmm21,%zmm21 + vextracti32x4 $3,%zmm21,%xmm7 + subq $16 * (16 - 1),%r8 +.L_small_initial_partial_block_735: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 112(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm21,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm21,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm21,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm21,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_735: + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_735: + jmp .L_last_blocks_done_703 +.L_last_num_blocks_is_0_703: + vmovdqa64 768(%rsp),%zmm13 + vpxorq %zmm14,%zmm13,%zmm13 + vmovdqu64 0(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 832(%rsp),%zmm13 + vmovdqu64 64(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + vpxorq %zmm10,%zmm4,%zmm26 + vpxorq %zmm6,%zmm0,%zmm24 + vpxorq %zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + vmovdqa64 896(%rsp),%zmm13 + vmovdqu64 128(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 960(%rsp),%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + + vpternlogq $0x96,%zmm10,%zmm4,%zmm26 + vpternlogq $0x96,%zmm6,%zmm0,%zmm24 + vpternlogq $0x96,%zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + + vpsrldq $8,%zmm26,%zmm0 + vpslldq $8,%zmm26,%zmm3 + vpxorq %zmm0,%zmm24,%zmm24 + vpxorq %zmm3,%zmm25,%zmm25 + vextracti64x4 $1,%zmm24,%ymm0 + vpxorq %ymm0,%ymm24,%ymm24 + vextracti32x4 $1,%ymm24,%xmm0 + vpxorq %xmm0,%xmm24,%xmm24 + vextracti64x4 $1,%zmm25,%ymm3 + vpxorq %ymm3,%ymm25,%ymm25 + vextracti32x4 $1,%ymm25,%xmm3 + vpxorq %xmm3,%xmm25,%xmm25 + vmovdqa64 POLY2(%rip),%xmm4 + + + vpclmulqdq $0x01,%xmm25,%xmm4,%xmm0 + vpslldq $8,%xmm0,%xmm0 + vpxorq %xmm0,%xmm25,%xmm0 + + + vpclmulqdq $0x00,%xmm0,%xmm4,%xmm3 + vpsrldq $4,%xmm3,%xmm3 + vpclmulqdq $0x10,%xmm0,%xmm4,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm24,%xmm3,%xmm14 + +.L_last_blocks_done_703: + vpshufb %xmm29,%xmm2,%xmm2 + jmp .L_ghash_done_659 +.L_encrypt_16_blocks_659: + cmpb $240,%r15b + jae .L_16_blocks_overflow_736 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp .L_16_blocks_ok_736 +.L_16_blocks_overflow_736: + vpshufb %zmm29,%zmm2,%zmm2 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +.L_16_blocks_ok_736: + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp),%zmm1 + + + + + vshufi64x2 $255,%zmm5,%zmm5,%zmm2 + addb $16,%r15b + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + + + + + + + + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm6 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm6 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + + + + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%zmm21 + + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm15,%zmm10,%zmm26 + vpxorq %zmm12,%zmm6,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 192(%rdi),%zmm30 + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + + + + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + + + + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %zmm5,192(%r10,%r11,1) + vpshufb %zmm29,%zmm17,%zmm0 + vpshufb %zmm29,%zmm19,%zmm3 + vpshufb %zmm29,%zmm20,%zmm4 + vpshufb %zmm29,%zmm21,%zmm5 + vmovdqa64 %zmm0,1280(%rsp) + vmovdqa64 %zmm3,1344(%rsp) + vmovdqa64 %zmm4,1408(%rsp) + vmovdqa64 %zmm5,1472(%rsp) + vmovdqa64 1024(%rsp),%zmm13 + vmovdqu64 256(%rsp),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 1088(%rsp),%zmm13 + vmovdqu64 320(%rsp),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + vpternlogq $0x96,%zmm10,%zmm4,%zmm26 + vpternlogq $0x96,%zmm6,%zmm0,%zmm24 + vpternlogq $0x96,%zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + vmovdqa64 1152(%rsp),%zmm13 + vmovdqu64 384(%rsp),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 1216(%rsp),%zmm13 + vmovdqu64 448(%rsp),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + + vpternlogq $0x96,%zmm10,%zmm4,%zmm26 + vpternlogq $0x96,%zmm6,%zmm0,%zmm24 + vpternlogq $0x96,%zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + subq $256,%r8 + addq $256,%r11 + movl %r8d,%r10d + addl $15,%r10d + shrl $4,%r10d + je .L_last_num_blocks_is_0_737 + + cmpl $8,%r10d + je .L_last_num_blocks_is_8_737 + jb .L_last_num_blocks_is_7_1_737 + + + cmpl $12,%r10d + je .L_last_num_blocks_is_12_737 + jb .L_last_num_blocks_is_11_9_737 + + + cmpl $15,%r10d + je .L_last_num_blocks_is_15_737 + ja .L_last_num_blocks_is_16_737 + cmpl $14,%r10d + je .L_last_num_blocks_is_14_737 + jmp .L_last_num_blocks_is_13_737 + +.L_last_num_blocks_is_11_9_737: + + cmpl $10,%r10d + je .L_last_num_blocks_is_10_737 + ja .L_last_num_blocks_is_11_737 + jmp .L_last_num_blocks_is_9_737 + +.L_last_num_blocks_is_7_1_737: + cmpl $4,%r10d + je .L_last_num_blocks_is_4_737 + jb .L_last_num_blocks_is_3_1_737 + + cmpl $6,%r10d + ja .L_last_num_blocks_is_7_737 + je .L_last_num_blocks_is_6_737 + jmp .L_last_num_blocks_is_5_737 + +.L_last_num_blocks_is_3_1_737: + + cmpl $2,%r10d + ja .L_last_num_blocks_is_3_737 + je .L_last_num_blocks_is_2_737 +.L_last_num_blocks_is_1_737: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $255,%r15d + jae .L_16_blocks_overflow_738 + vpaddd %xmm28,%xmm2,%xmm0 + jmp .L_16_blocks_ok_738 + +.L_16_blocks_overflow_738: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %xmm29,%xmm0,%xmm0 +.L_16_blocks_ok_738: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $0,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%xmm17{%k1}{z} + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %xmm31,%xmm0,%xmm0 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vbroadcastf64x2 176(%rdi),%zmm31 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %xmm31,%xmm0,%xmm0 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %xmm30,%xmm0,%xmm0 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti32x4 $0,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %xmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm17,%zmm17{%k1}{z} + vpshufb %xmm29,%xmm17,%xmm17 + vextracti32x4 $0,%zmm17,%xmm7 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_739 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm17,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm17,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm17,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm17,%xmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_739 +.L_small_initial_partial_block_739: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + + + + + + + + + + + + vpxorq %xmm7,%xmm14,%xmm14 + + jmp .L_after_reduction_739 +.L_small_initial_compute_done_739: +.L_after_reduction_739: + jmp .L_last_blocks_done_737 +.L_last_num_blocks_is_2_737: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $254,%r15d + jae .L_16_blocks_overflow_740 + vpaddd %ymm28,%ymm2,%ymm0 + jmp .L_16_blocks_ok_740 + +.L_16_blocks_overflow_740: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %ymm29,%ymm0,%ymm0 +.L_16_blocks_ok_740: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $1,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%ymm17{%k1}{z} + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %ymm31,%ymm0,%ymm0 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vbroadcastf64x2 176(%rdi),%zmm31 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %ymm31,%ymm0,%ymm0 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %ymm30,%ymm0,%ymm0 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %ymm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm17,%zmm17{%k1}{z} + vpshufb %ymm29,%ymm17,%ymm17 + vextracti32x4 $1,%zmm17,%xmm7 + subq $16 * (2 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_741 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm17,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm17,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm17,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm17,%ymm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_741 +.L_small_initial_partial_block_741: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm17,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm17,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm17,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm17,%xmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_741: + + orq %r8,%r8 + je .L_after_reduction_741 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_741: + jmp .L_last_blocks_done_737 +.L_last_num_blocks_is_3_737: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $253,%r15d + jae .L_16_blocks_overflow_742 + vpaddd %zmm28,%zmm2,%zmm0 + jmp .L_16_blocks_ok_742 + +.L_16_blocks_overflow_742: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %zmm29,%zmm0,%zmm0 +.L_16_blocks_ok_742: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $2,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vbroadcastf64x2 176(%rdi),%zmm31 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vpxorq %zmm17,%zmm0,%zmm0 + vextracti32x4 $2,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm17,%zmm17{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vextracti32x4 $2,%zmm17,%xmm7 + subq $16 * (3 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_743 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_743 +.L_small_initial_partial_block_743: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm17,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm17,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm17,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm17,%ymm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_743: + + orq %r8,%r8 + je .L_after_reduction_743 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_743: + jmp .L_last_blocks_done_737 +.L_last_num_blocks_is_4_737: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $252,%r15d + jae .L_16_blocks_overflow_744 + vpaddd %zmm28,%zmm2,%zmm0 + jmp .L_16_blocks_ok_744 + +.L_16_blocks_overflow_744: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %zmm29,%zmm0,%zmm0 +.L_16_blocks_ok_744: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $3,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vbroadcastf64x2 176(%rdi),%zmm31 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vpxorq %zmm17,%zmm0,%zmm0 + vextracti32x4 $3,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm17,%zmm17{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vextracti32x4 $3,%zmm17,%xmm7 + subq $16 * (4 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_745 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_745 +.L_small_initial_partial_block_745: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_745: + + orq %r8,%r8 + je .L_after_reduction_745 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_745: + jmp .L_last_blocks_done_737 +.L_last_num_blocks_is_5_737: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $251,%r15d + jae .L_16_blocks_overflow_746 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %xmm27,%xmm0,%xmm3 + jmp .L_16_blocks_ok_746 + +.L_16_blocks_overflow_746: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %xmm29,%xmm3,%xmm3 +.L_16_blocks_ok_746: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $0,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%xmm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vbroadcastf64x2 176(%rdi),%zmm31 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %xmm30,%xmm3,%xmm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %xmm19,%xmm3,%xmm3 + vextracti32x4 $0,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %xmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm19,%zmm19{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %xmm29,%xmm19,%xmm19 + vextracti32x4 $0,%zmm19,%xmm7 + subq $16 * (5 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_747 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm19,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm19,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm19,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm19,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_747 +.L_small_initial_partial_block_747: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_747: + + orq %r8,%r8 + je .L_after_reduction_747 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_747: + jmp .L_last_blocks_done_737 +.L_last_num_blocks_is_6_737: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $250,%r15d + jae .L_16_blocks_overflow_748 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %ymm27,%ymm0,%ymm3 + jmp .L_16_blocks_ok_748 + +.L_16_blocks_overflow_748: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %ymm29,%ymm3,%ymm3 +.L_16_blocks_ok_748: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $1,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%ymm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vbroadcastf64x2 176(%rdi),%zmm31 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %ymm30,%ymm3,%ymm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %ymm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm19,%zmm19{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %ymm29,%ymm19,%ymm19 + vextracti32x4 $1,%zmm19,%xmm7 + subq $16 * (6 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_749 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm19,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm19,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm19,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm19,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_749 +.L_small_initial_partial_block_749: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm19,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm19,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm19,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm19,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_749: + + orq %r8,%r8 + je .L_after_reduction_749 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_749: + jmp .L_last_blocks_done_737 +.L_last_num_blocks_is_7_737: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $249,%r15d + jae .L_16_blocks_overflow_750 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + jmp .L_16_blocks_ok_750 + +.L_16_blocks_overflow_750: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 +.L_16_blocks_ok_750: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $2,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vbroadcastf64x2 176(%rdi),%zmm31 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti32x4 $2,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm19,%zmm19{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vextracti32x4 $2,%zmm19,%xmm7 + subq $16 * (7 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_751 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_751 +.L_small_initial_partial_block_751: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm19,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm19,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm19,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm19,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_751: + + orq %r8,%r8 + je .L_after_reduction_751 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_751: + jmp .L_last_blocks_done_737 +.L_last_num_blocks_is_8_737: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $248,%r15d + jae .L_16_blocks_overflow_752 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + jmp .L_16_blocks_ok_752 + +.L_16_blocks_overflow_752: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 +.L_16_blocks_ok_752: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $3,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vbroadcastf64x2 176(%rdi),%zmm31 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti32x4 $3,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm19,%zmm19{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vextracti32x4 $3,%zmm19,%xmm7 + subq $16 * (8 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_753 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_753 +.L_small_initial_partial_block_753: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_753: + + orq %r8,%r8 + je .L_after_reduction_753 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_753: + jmp .L_last_blocks_done_737 +.L_last_num_blocks_is_9_737: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $247,%r15d + jae .L_16_blocks_overflow_754 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %xmm27,%xmm3,%xmm4 + jmp .L_16_blocks_ok_754 + +.L_16_blocks_overflow_754: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %xmm29,%xmm4,%xmm4 +.L_16_blocks_ok_754: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $0,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%xmm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vbroadcastf64x2 176(%rdi),%zmm31 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %xmm30,%xmm4,%xmm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %xmm20,%xmm4,%xmm4 + vextracti32x4 $0,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %xmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm20,%zmm20{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %xmm29,%xmm20,%xmm20 + vextracti32x4 $0,%zmm20,%xmm7 + subq $16 * (9 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_755 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm20,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm20,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm20,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm20,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_755 +.L_small_initial_partial_block_755: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_755: + + orq %r8,%r8 + je .L_after_reduction_755 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_755: + jmp .L_last_blocks_done_737 +.L_last_num_blocks_is_10_737: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $246,%r15d + jae .L_16_blocks_overflow_756 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %ymm27,%ymm3,%ymm4 + jmp .L_16_blocks_ok_756 + +.L_16_blocks_overflow_756: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %ymm29,%ymm4,%ymm4 +.L_16_blocks_ok_756: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $1,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%ymm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vbroadcastf64x2 176(%rdi),%zmm31 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %ymm30,%ymm4,%ymm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %ymm20,%ymm4,%ymm4 + vextracti32x4 $1,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %ymm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm20,%zmm20{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %ymm29,%ymm20,%ymm20 + vextracti32x4 $1,%zmm20,%xmm7 + subq $16 * (10 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_757 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm20,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm20,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm20,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm20,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_757 +.L_small_initial_partial_block_757: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm20,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm20,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm20,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm20,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_757: + + orq %r8,%r8 + je .L_after_reduction_757 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_757: + jmp .L_last_blocks_done_737 +.L_last_num_blocks_is_11_737: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $245,%r15d + jae .L_16_blocks_overflow_758 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + jmp .L_16_blocks_ok_758 + +.L_16_blocks_overflow_758: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 +.L_16_blocks_ok_758: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $2,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vbroadcastf64x2 176(%rdi),%zmm31 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vextracti32x4 $2,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm20,%zmm20{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %zmm29,%zmm20,%zmm20 + vextracti32x4 $2,%zmm20,%xmm7 + subq $16 * (11 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_759 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_759 +.L_small_initial_partial_block_759: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm20,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm20,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm20,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm20,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_759: + + orq %r8,%r8 + je .L_after_reduction_759 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_759: + jmp .L_last_blocks_done_737 +.L_last_num_blocks_is_12_737: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $244,%r15d + jae .L_16_blocks_overflow_760 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + jmp .L_16_blocks_ok_760 + +.L_16_blocks_overflow_760: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 +.L_16_blocks_ok_760: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $3,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vbroadcastf64x2 176(%rdi),%zmm31 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vextracti32x4 $3,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm20,%zmm20{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %zmm29,%zmm20,%zmm20 + vextracti32x4 $3,%zmm20,%xmm7 + subq $16 * (12 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_761 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 160(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_761 +.L_small_initial_partial_block_761: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_761: + + orq %r8,%r8 + je .L_after_reduction_761 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_761: + jmp .L_last_blocks_done_737 +.L_last_num_blocks_is_13_737: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $243,%r15d + jae .L_16_blocks_overflow_762 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %xmm27,%xmm4,%xmm5 + jmp .L_16_blocks_ok_762 + +.L_16_blocks_overflow_762: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %xmm29,%xmm5,%xmm5 +.L_16_blocks_ok_762: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $0,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%xmm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vbroadcastf64x2 176(%rdi),%zmm31 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %xmm30,%xmm5,%xmm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %xmm21,%xmm5,%xmm5 + vextracti32x4 $0,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %xmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm21,%zmm21{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %zmm29,%zmm20,%zmm20 + vpshufb %xmm29,%xmm21,%xmm21 + vextracti32x4 $0,%zmm21,%xmm7 + subq $16 * (13 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_763 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 144(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm21,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm21,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm21,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm21,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_763 +.L_small_initial_partial_block_763: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 160(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_763: + + orq %r8,%r8 + je .L_after_reduction_763 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_763: + jmp .L_last_blocks_done_737 +.L_last_num_blocks_is_14_737: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $242,%r15d + jae .L_16_blocks_overflow_764 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %ymm27,%ymm4,%ymm5 + jmp .L_16_blocks_ok_764 + +.L_16_blocks_overflow_764: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %ymm29,%ymm5,%ymm5 +.L_16_blocks_ok_764: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $1,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%ymm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vbroadcastf64x2 176(%rdi),%zmm31 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %ymm30,%ymm5,%ymm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %ymm21,%ymm5,%ymm5 + vextracti32x4 $1,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %ymm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm21,%zmm21{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %zmm29,%zmm20,%zmm20 + vpshufb %ymm29,%ymm21,%ymm21 + vextracti32x4 $1,%zmm21,%xmm7 + subq $16 * (14 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_765 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 128(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm21,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm21,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm21,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm21,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_765 +.L_small_initial_partial_block_765: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 144(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm21,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm21,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm21,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm21,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_765: + + orq %r8,%r8 + je .L_after_reduction_765 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_765: + jmp .L_last_blocks_done_737 +.L_last_num_blocks_is_15_737: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $241,%r15d + jae .L_16_blocks_overflow_766 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp .L_16_blocks_ok_766 + +.L_16_blocks_overflow_766: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +.L_16_blocks_ok_766: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $2,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%zmm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vbroadcastf64x2 176(%rdi),%zmm31 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + vextracti32x4 $2,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %zmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm21,%zmm21{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %zmm29,%zmm20,%zmm20 + vpshufb %zmm29,%zmm21,%zmm21 + vextracti32x4 $2,%zmm21,%xmm7 + subq $16 * (15 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_767 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 112(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm21,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm21,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm21,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm21,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_767 +.L_small_initial_partial_block_767: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 128(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm21,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm21,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm21,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm21,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_767: + + orq %r8,%r8 + je .L_after_reduction_767 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_767: + jmp .L_last_blocks_done_737 +.L_last_num_blocks_is_16_737: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $240,%r15d + jae .L_16_blocks_overflow_768 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp .L_16_blocks_ok_768 + +.L_16_blocks_overflow_768: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +.L_16_blocks_ok_768: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $3,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%zmm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vbroadcastf64x2 176(%rdi),%zmm31 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + vextracti32x4 $3,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %zmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm21,%zmm21{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %zmm29,%zmm20,%zmm20 + vpshufb %zmm29,%zmm21,%zmm21 + vextracti32x4 $3,%zmm21,%xmm7 + subq $16 * (16 - 1),%r8 +.L_small_initial_partial_block_769: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 112(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm21,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm21,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm21,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm21,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_769: + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_769: + jmp .L_last_blocks_done_737 +.L_last_num_blocks_is_0_737: + vmovdqa64 1280(%rsp),%zmm13 + vmovdqu64 512(%rsp),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 1344(%rsp),%zmm13 + vmovdqu64 576(%rsp),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + vpternlogq $0x96,%zmm10,%zmm4,%zmm26 + vpternlogq $0x96,%zmm6,%zmm0,%zmm24 + vpternlogq $0x96,%zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + vmovdqa64 1408(%rsp),%zmm13 + vmovdqu64 640(%rsp),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 1472(%rsp),%zmm13 + vmovdqu64 704(%rsp),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + + vpternlogq $0x96,%zmm10,%zmm4,%zmm26 + vpternlogq $0x96,%zmm6,%zmm0,%zmm24 + vpternlogq $0x96,%zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + + vpsrldq $8,%zmm26,%zmm0 + vpslldq $8,%zmm26,%zmm3 + vpxorq %zmm0,%zmm24,%zmm24 + vpxorq %zmm3,%zmm25,%zmm25 + vextracti64x4 $1,%zmm24,%ymm0 + vpxorq %ymm0,%ymm24,%ymm24 + vextracti32x4 $1,%ymm24,%xmm0 + vpxorq %xmm0,%xmm24,%xmm24 + vextracti64x4 $1,%zmm25,%ymm3 + vpxorq %ymm3,%ymm25,%ymm25 + vextracti32x4 $1,%ymm25,%xmm3 + vpxorq %xmm3,%xmm25,%xmm25 + vmovdqa64 POLY2(%rip),%xmm4 + + + vpclmulqdq $0x01,%xmm25,%xmm4,%xmm0 + vpslldq $8,%xmm0,%xmm0 + vpxorq %xmm0,%xmm25,%xmm0 + + + vpclmulqdq $0x00,%xmm0,%xmm4,%xmm3 + vpsrldq $4,%xmm3,%xmm3 + vpclmulqdq $0x10,%xmm0,%xmm4,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm24,%xmm3,%xmm14 + +.L_last_blocks_done_737: + vpshufb %xmm29,%xmm2,%xmm2 + jmp .L_ghash_done_659 + +.L_message_below_32_blocks_659: + + + subq $256,%r8 + addq $256,%r11 + movl %r8d,%r10d + testq %r14,%r14 + jnz .L_skip_hkeys_precomputation_770 + vmovdqu64 640(%rsp),%zmm3 + + + vshufi64x2 $0x00,%zmm3,%zmm3,%zmm3 + + vmovdqu64 576(%rsp),%zmm4 + vmovdqu64 512(%rsp),%zmm5 + + vpclmulqdq $0x11,%zmm3,%zmm4,%zmm6 + vpclmulqdq $0x00,%zmm3,%zmm4,%zmm7 + vpclmulqdq $0x01,%zmm3,%zmm4,%zmm10 + vpclmulqdq $0x10,%zmm3,%zmm4,%zmm4 + vpxorq %zmm10,%zmm4,%zmm4 + + vpsrldq $8,%zmm4,%zmm10 + vpslldq $8,%zmm4,%zmm4 + vpxorq %zmm10,%zmm6,%zmm6 + vpxorq %zmm7,%zmm4,%zmm4 + + + + vmovdqu64 POLY2(%rip),%zmm10 + + vpclmulqdq $0x01,%zmm4,%zmm10,%zmm7 + vpslldq $8,%zmm7,%zmm7 + vpxorq %zmm7,%zmm4,%zmm4 + + + + vpclmulqdq $0x00,%zmm4,%zmm10,%zmm7 + vpsrldq $4,%zmm7,%zmm7 + vpclmulqdq $0x10,%zmm4,%zmm10,%zmm4 + vpslldq $4,%zmm4,%zmm4 + + vpternlogq $0x96,%zmm7,%zmm6,%zmm4 + + vmovdqu64 %zmm4,448(%rsp) + + vpclmulqdq $0x11,%zmm3,%zmm5,%zmm6 + vpclmulqdq $0x00,%zmm3,%zmm5,%zmm7 + vpclmulqdq $0x01,%zmm3,%zmm5,%zmm10 + vpclmulqdq $0x10,%zmm3,%zmm5,%zmm5 + vpxorq %zmm10,%zmm5,%zmm5 + + vpsrldq $8,%zmm5,%zmm10 + vpslldq $8,%zmm5,%zmm5 + vpxorq %zmm10,%zmm6,%zmm6 + vpxorq %zmm7,%zmm5,%zmm5 + + + + vmovdqu64 POLY2(%rip),%zmm10 + + vpclmulqdq $0x01,%zmm5,%zmm10,%zmm7 + vpslldq $8,%zmm7,%zmm7 + vpxorq %zmm7,%zmm5,%zmm5 + + + + vpclmulqdq $0x00,%zmm5,%zmm10,%zmm7 + vpsrldq $4,%zmm7,%zmm7 + vpclmulqdq $0x10,%zmm5,%zmm10,%zmm5 + vpslldq $4,%zmm5,%zmm5 + + vpternlogq $0x96,%zmm7,%zmm6,%zmm5 + + vmovdqu64 %zmm5,384(%rsp) + + vpclmulqdq $0x11,%zmm3,%zmm4,%zmm6 + vpclmulqdq $0x00,%zmm3,%zmm4,%zmm7 + vpclmulqdq $0x01,%zmm3,%zmm4,%zmm10 + vpclmulqdq $0x10,%zmm3,%zmm4,%zmm4 + vpxorq %zmm10,%zmm4,%zmm4 + + vpsrldq $8,%zmm4,%zmm10 + vpslldq $8,%zmm4,%zmm4 + vpxorq %zmm10,%zmm6,%zmm6 + vpxorq %zmm7,%zmm4,%zmm4 + + + + vmovdqu64 POLY2(%rip),%zmm10 + + vpclmulqdq $0x01,%zmm4,%zmm10,%zmm7 + vpslldq $8,%zmm7,%zmm7 + vpxorq %zmm7,%zmm4,%zmm4 + + + + vpclmulqdq $0x00,%zmm4,%zmm10,%zmm7 + vpsrldq $4,%zmm7,%zmm7 + vpclmulqdq $0x10,%zmm4,%zmm10,%zmm4 + vpslldq $4,%zmm4,%zmm4 + + vpternlogq $0x96,%zmm7,%zmm6,%zmm4 + + vmovdqu64 %zmm4,320(%rsp) + + vpclmulqdq $0x11,%zmm3,%zmm5,%zmm6 + vpclmulqdq $0x00,%zmm3,%zmm5,%zmm7 + vpclmulqdq $0x01,%zmm3,%zmm5,%zmm10 + vpclmulqdq $0x10,%zmm3,%zmm5,%zmm5 + vpxorq %zmm10,%zmm5,%zmm5 + + vpsrldq $8,%zmm5,%zmm10 + vpslldq $8,%zmm5,%zmm5 + vpxorq %zmm10,%zmm6,%zmm6 + vpxorq %zmm7,%zmm5,%zmm5 + + + + vmovdqu64 POLY2(%rip),%zmm10 + + vpclmulqdq $0x01,%zmm5,%zmm10,%zmm7 + vpslldq $8,%zmm7,%zmm7 + vpxorq %zmm7,%zmm5,%zmm5 + + + + vpclmulqdq $0x00,%zmm5,%zmm10,%zmm7 + vpsrldq $4,%zmm7,%zmm7 + vpclmulqdq $0x10,%zmm5,%zmm10,%zmm5 + vpslldq $4,%zmm5,%zmm5 + + vpternlogq $0x96,%zmm7,%zmm6,%zmm5 + + vmovdqu64 %zmm5,256(%rsp) +.L_skip_hkeys_precomputation_770: + movq $1,%r14 + andl $~15,%r10d + movl $512,%ebx + subl %r10d,%ebx + movl %r8d,%r10d + addl $15,%r10d + shrl $4,%r10d + je .L_last_num_blocks_is_0_771 + + cmpl $8,%r10d + je .L_last_num_blocks_is_8_771 + jb .L_last_num_blocks_is_7_1_771 + + + cmpl $12,%r10d + je .L_last_num_blocks_is_12_771 + jb .L_last_num_blocks_is_11_9_771 + + + cmpl $15,%r10d + je .L_last_num_blocks_is_15_771 + ja .L_last_num_blocks_is_16_771 + cmpl $14,%r10d + je .L_last_num_blocks_is_14_771 + jmp .L_last_num_blocks_is_13_771 + +.L_last_num_blocks_is_11_9_771: + + cmpl $10,%r10d + je .L_last_num_blocks_is_10_771 + ja .L_last_num_blocks_is_11_771 + jmp .L_last_num_blocks_is_9_771 + +.L_last_num_blocks_is_7_1_771: + cmpl $4,%r10d + je .L_last_num_blocks_is_4_771 + jb .L_last_num_blocks_is_3_1_771 + + cmpl $6,%r10d + ja .L_last_num_blocks_is_7_771 + je .L_last_num_blocks_is_6_771 + jmp .L_last_num_blocks_is_5_771 + +.L_last_num_blocks_is_3_1_771: + + cmpl $2,%r10d + ja .L_last_num_blocks_is_3_771 + je .L_last_num_blocks_is_2_771 +.L_last_num_blocks_is_1_771: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $255,%r15d + jae .L_16_blocks_overflow_772 + vpaddd %xmm28,%xmm2,%xmm0 + jmp .L_16_blocks_ok_772 + +.L_16_blocks_overflow_772: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %xmm29,%xmm0,%xmm0 +.L_16_blocks_ok_772: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $0,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%xmm17{%k1}{z} + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %xmm31,%xmm0,%xmm0 + vaesenclast %xmm30,%xmm0,%xmm0 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti32x4 $0,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %xmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm17,%zmm17{%k1}{z} + vpshufb %xmm29,%xmm17,%xmm17 + vextracti32x4 $0,%zmm17,%xmm7 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_773 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm17,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm17,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm17,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm17,%xmm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_773 +.L_small_initial_partial_block_773: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + + + vpsrldq $8,%zmm26,%zmm0 + vpslldq $8,%zmm26,%zmm3 + vpxorq %zmm0,%zmm24,%zmm24 + vpxorq %zmm3,%zmm25,%zmm25 + vextracti64x4 $1,%zmm24,%ymm0 + vpxorq %ymm0,%ymm24,%ymm24 + vextracti32x4 $1,%ymm24,%xmm0 + vpxorq %xmm0,%xmm24,%xmm24 + vextracti64x4 $1,%zmm25,%ymm3 + vpxorq %ymm3,%ymm25,%ymm25 + vextracti32x4 $1,%ymm25,%xmm3 + vpxorq %xmm3,%xmm25,%xmm25 + vmovdqa64 POLY2(%rip),%xmm0 + + + vpclmulqdq $0x01,%xmm25,%xmm0,%xmm3 + vpslldq $8,%xmm3,%xmm3 + vpxorq %xmm3,%xmm25,%xmm3 + + + vpclmulqdq $0x00,%xmm3,%xmm0,%xmm4 + vpsrldq $4,%xmm4,%xmm4 + vpclmulqdq $0x10,%xmm3,%xmm0,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm24,%xmm4,%xmm14 + + + + + + + + + + + + + vpxorq %xmm7,%xmm14,%xmm14 + + jmp .L_after_reduction_773 +.L_small_initial_compute_done_773: +.L_after_reduction_773: + jmp .L_last_blocks_done_771 +.L_last_num_blocks_is_2_771: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $254,%r15d + jae .L_16_blocks_overflow_774 + vpaddd %ymm28,%ymm2,%ymm0 + jmp .L_16_blocks_ok_774 + +.L_16_blocks_overflow_774: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %ymm29,%ymm0,%ymm0 +.L_16_blocks_ok_774: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $1,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%ymm17{%k1}{z} + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %ymm31,%ymm0,%ymm0 + vaesenclast %ymm30,%ymm0,%ymm0 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %ymm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm17,%zmm17{%k1}{z} + vpshufb %ymm29,%ymm17,%ymm17 + vextracti32x4 $1,%zmm17,%xmm7 + subq $16 * (2 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_775 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm17,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm17,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm17,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm17,%ymm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_775 +.L_small_initial_partial_block_775: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm17,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm17,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm17,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm17,%xmm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_775: + + orq %r8,%r8 + je .L_after_reduction_775 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_775: + jmp .L_last_blocks_done_771 +.L_last_num_blocks_is_3_771: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $253,%r15d + jae .L_16_blocks_overflow_776 + vpaddd %zmm28,%zmm2,%zmm0 + jmp .L_16_blocks_ok_776 + +.L_16_blocks_overflow_776: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %zmm29,%zmm0,%zmm0 +.L_16_blocks_ok_776: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $2,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm0,%zmm0 + vpxorq %zmm17,%zmm0,%zmm0 + vextracti32x4 $2,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm17,%zmm17{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vextracti32x4 $2,%zmm17,%xmm7 + subq $16 * (3 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_777 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_777 +.L_small_initial_partial_block_777: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm17,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm17,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm17,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm17,%ymm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_777: + + orq %r8,%r8 + je .L_after_reduction_777 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_777: + jmp .L_last_blocks_done_771 +.L_last_num_blocks_is_4_771: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $252,%r15d + jae .L_16_blocks_overflow_778 + vpaddd %zmm28,%zmm2,%zmm0 + jmp .L_16_blocks_ok_778 + +.L_16_blocks_overflow_778: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %zmm29,%zmm0,%zmm0 +.L_16_blocks_ok_778: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $3,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm0,%zmm0 + vpxorq %zmm17,%zmm0,%zmm0 + vextracti32x4 $3,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm17,%zmm17{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vextracti32x4 $3,%zmm17,%xmm7 + subq $16 * (4 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_779 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_779 +.L_small_initial_partial_block_779: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_779: + + orq %r8,%r8 + je .L_after_reduction_779 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_779: + jmp .L_last_blocks_done_771 +.L_last_num_blocks_is_5_771: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $251,%r15d + jae .L_16_blocks_overflow_780 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %xmm27,%xmm0,%xmm3 + jmp .L_16_blocks_ok_780 + +.L_16_blocks_overflow_780: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %xmm29,%xmm3,%xmm3 +.L_16_blocks_ok_780: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $0,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%xmm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %xmm30,%xmm3,%xmm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %xmm19,%xmm3,%xmm3 + vextracti32x4 $0,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %xmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm19,%zmm19{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %xmm29,%xmm19,%xmm19 + vextracti32x4 $0,%zmm19,%xmm7 + subq $16 * (5 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_781 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm19,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm19,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm19,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm19,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_781 +.L_small_initial_partial_block_781: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_781: + + orq %r8,%r8 + je .L_after_reduction_781 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_781: + jmp .L_last_blocks_done_771 +.L_last_num_blocks_is_6_771: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $250,%r15d + jae .L_16_blocks_overflow_782 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %ymm27,%ymm0,%ymm3 + jmp .L_16_blocks_ok_782 + +.L_16_blocks_overflow_782: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %ymm29,%ymm3,%ymm3 +.L_16_blocks_ok_782: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $1,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%ymm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %ymm30,%ymm3,%ymm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %ymm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm19,%zmm19{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %ymm29,%ymm19,%ymm19 + vextracti32x4 $1,%zmm19,%xmm7 + subq $16 * (6 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_783 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm19,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm19,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm19,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm19,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_783 +.L_small_initial_partial_block_783: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm19,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm19,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm19,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm19,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_783: + + orq %r8,%r8 + je .L_after_reduction_783 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_783: + jmp .L_last_blocks_done_771 +.L_last_num_blocks_is_7_771: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $249,%r15d + jae .L_16_blocks_overflow_784 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + jmp .L_16_blocks_ok_784 + +.L_16_blocks_overflow_784: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 +.L_16_blocks_ok_784: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $2,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti32x4 $2,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm19,%zmm19{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vextracti32x4 $2,%zmm19,%xmm7 + subq $16 * (7 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_785 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_785 +.L_small_initial_partial_block_785: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm19,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm19,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm19,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm19,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_785: + + orq %r8,%r8 + je .L_after_reduction_785 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_785: + jmp .L_last_blocks_done_771 +.L_last_num_blocks_is_8_771: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $248,%r15d + jae .L_16_blocks_overflow_786 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + jmp .L_16_blocks_ok_786 + +.L_16_blocks_overflow_786: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 +.L_16_blocks_ok_786: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $3,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti32x4 $3,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm19,%zmm19{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vextracti32x4 $3,%zmm19,%xmm7 + subq $16 * (8 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_787 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_787 +.L_small_initial_partial_block_787: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_787: + + orq %r8,%r8 + je .L_after_reduction_787 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_787: + jmp .L_last_blocks_done_771 +.L_last_num_blocks_is_9_771: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $247,%r15d + jae .L_16_blocks_overflow_788 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %xmm27,%xmm3,%xmm4 + jmp .L_16_blocks_ok_788 + +.L_16_blocks_overflow_788: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %xmm29,%xmm4,%xmm4 +.L_16_blocks_ok_788: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $0,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%xmm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %xmm30,%xmm4,%xmm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %xmm20,%xmm4,%xmm4 + vextracti32x4 $0,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %xmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm20,%zmm20{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %xmm29,%xmm20,%xmm20 + vextracti32x4 $0,%zmm20,%xmm7 + subq $16 * (9 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_789 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm20,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm20,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm20,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm20,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_789 +.L_small_initial_partial_block_789: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_789: + + orq %r8,%r8 + je .L_after_reduction_789 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_789: + jmp .L_last_blocks_done_771 +.L_last_num_blocks_is_10_771: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $246,%r15d + jae .L_16_blocks_overflow_790 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %ymm27,%ymm3,%ymm4 + jmp .L_16_blocks_ok_790 + +.L_16_blocks_overflow_790: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %ymm29,%ymm4,%ymm4 +.L_16_blocks_ok_790: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $1,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%ymm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %ymm30,%ymm4,%ymm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %ymm20,%ymm4,%ymm4 + vextracti32x4 $1,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %ymm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm20,%zmm20{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %ymm29,%ymm20,%ymm20 + vextracti32x4 $1,%zmm20,%xmm7 + subq $16 * (10 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_791 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm20,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm20,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm20,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm20,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_791 +.L_small_initial_partial_block_791: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm20,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm20,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm20,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm20,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_791: + + orq %r8,%r8 + je .L_after_reduction_791 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_791: + jmp .L_last_blocks_done_771 +.L_last_num_blocks_is_11_771: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $245,%r15d + jae .L_16_blocks_overflow_792 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + jmp .L_16_blocks_ok_792 + +.L_16_blocks_overflow_792: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 +.L_16_blocks_ok_792: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $2,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vextracti32x4 $2,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm20,%zmm20{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %zmm29,%zmm20,%zmm20 + vextracti32x4 $2,%zmm20,%xmm7 + subq $16 * (11 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_793 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_793 +.L_small_initial_partial_block_793: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm20,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm20,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm20,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm20,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_793: + + orq %r8,%r8 + je .L_after_reduction_793 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_793: + jmp .L_last_blocks_done_771 +.L_last_num_blocks_is_12_771: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $244,%r15d + jae .L_16_blocks_overflow_794 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + jmp .L_16_blocks_ok_794 + +.L_16_blocks_overflow_794: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 +.L_16_blocks_ok_794: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $3,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vextracti32x4 $3,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm20,%zmm20{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %zmm29,%zmm20,%zmm20 + vextracti32x4 $3,%zmm20,%xmm7 + subq $16 * (12 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_795 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 160(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_795 +.L_small_initial_partial_block_795: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_795: + + orq %r8,%r8 + je .L_after_reduction_795 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_795: + jmp .L_last_blocks_done_771 +.L_last_num_blocks_is_13_771: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $243,%r15d + jae .L_16_blocks_overflow_796 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %xmm27,%xmm4,%xmm5 + jmp .L_16_blocks_ok_796 + +.L_16_blocks_overflow_796: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %xmm29,%xmm5,%xmm5 +.L_16_blocks_ok_796: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $0,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%xmm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %xmm30,%xmm5,%xmm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %xmm21,%xmm5,%xmm5 + vextracti32x4 $0,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %xmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm21,%zmm21{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %zmm29,%zmm20,%zmm20 + vpshufb %xmm29,%xmm21,%xmm21 + vextracti32x4 $0,%zmm21,%xmm7 + subq $16 * (13 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_797 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 144(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm21,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm21,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm21,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm21,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_797 +.L_small_initial_partial_block_797: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 160(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_797: + + orq %r8,%r8 + je .L_after_reduction_797 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_797: + jmp .L_last_blocks_done_771 +.L_last_num_blocks_is_14_771: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $242,%r15d + jae .L_16_blocks_overflow_798 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %ymm27,%ymm4,%ymm5 + jmp .L_16_blocks_ok_798 + +.L_16_blocks_overflow_798: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %ymm29,%ymm5,%ymm5 +.L_16_blocks_ok_798: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $1,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%ymm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %ymm30,%ymm5,%ymm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %ymm21,%ymm5,%ymm5 + vextracti32x4 $1,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %ymm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm21,%zmm21{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %zmm29,%zmm20,%zmm20 + vpshufb %ymm29,%ymm21,%ymm21 + vextracti32x4 $1,%zmm21,%xmm7 + subq $16 * (14 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_799 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 128(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm21,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm21,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm21,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm21,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_799 +.L_small_initial_partial_block_799: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 144(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm21,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm21,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm21,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm21,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_799: + + orq %r8,%r8 + je .L_after_reduction_799 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_799: + jmp .L_last_blocks_done_771 +.L_last_num_blocks_is_15_771: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $241,%r15d + jae .L_16_blocks_overflow_800 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp .L_16_blocks_ok_800 + +.L_16_blocks_overflow_800: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +.L_16_blocks_ok_800: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $2,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%zmm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + vextracti32x4 $2,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %zmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm21,%zmm21{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %zmm29,%zmm20,%zmm20 + vpshufb %zmm29,%zmm21,%zmm21 + vextracti32x4 $2,%zmm21,%xmm7 + subq $16 * (15 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_801 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 112(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm21,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm21,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm21,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm21,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_801 +.L_small_initial_partial_block_801: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 128(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm21,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm21,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm21,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm21,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_801: + + orq %r8,%r8 + je .L_after_reduction_801 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_801: + jmp .L_last_blocks_done_771 +.L_last_num_blocks_is_16_771: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $240,%r15d + jae .L_16_blocks_overflow_802 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp .L_16_blocks_ok_802 + +.L_16_blocks_overflow_802: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +.L_16_blocks_ok_802: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $3,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%zmm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + vextracti32x4 $3,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %zmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm21,%zmm21{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %zmm29,%zmm20,%zmm20 + vpshufb %zmm29,%zmm21,%zmm21 + vextracti32x4 $3,%zmm21,%xmm7 + subq $16 * (16 - 1),%r8 +.L_small_initial_partial_block_803: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 112(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm21,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm21,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm21,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm21,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_803: + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_803: + jmp .L_last_blocks_done_771 +.L_last_num_blocks_is_0_771: + vmovdqa64 768(%rsp),%zmm13 + vpxorq %zmm14,%zmm13,%zmm13 + vmovdqu64 0(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 832(%rsp),%zmm13 + vmovdqu64 64(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + vpxorq %zmm10,%zmm4,%zmm26 + vpxorq %zmm6,%zmm0,%zmm24 + vpxorq %zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + vmovdqa64 896(%rsp),%zmm13 + vmovdqu64 128(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 960(%rsp),%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + + vpternlogq $0x96,%zmm10,%zmm4,%zmm26 + vpternlogq $0x96,%zmm6,%zmm0,%zmm24 + vpternlogq $0x96,%zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + + vpsrldq $8,%zmm26,%zmm0 + vpslldq $8,%zmm26,%zmm3 + vpxorq %zmm0,%zmm24,%zmm24 + vpxorq %zmm3,%zmm25,%zmm25 + vextracti64x4 $1,%zmm24,%ymm0 + vpxorq %ymm0,%ymm24,%ymm24 + vextracti32x4 $1,%ymm24,%xmm0 + vpxorq %xmm0,%xmm24,%xmm24 + vextracti64x4 $1,%zmm25,%ymm3 + vpxorq %ymm3,%ymm25,%ymm25 + vextracti32x4 $1,%ymm25,%xmm3 + vpxorq %xmm3,%xmm25,%xmm25 + vmovdqa64 POLY2(%rip),%xmm4 + + + vpclmulqdq $0x01,%xmm25,%xmm4,%xmm0 + vpslldq $8,%xmm0,%xmm0 + vpxorq %xmm0,%xmm25,%xmm0 + + + vpclmulqdq $0x00,%xmm0,%xmm4,%xmm3 + vpsrldq $4,%xmm3,%xmm3 + vpclmulqdq $0x10,%xmm0,%xmm4,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm24,%xmm3,%xmm14 + +.L_last_blocks_done_771: + vpshufb %xmm29,%xmm2,%xmm2 + jmp .L_ghash_done_659 + +.L_message_below_equal_16_blocks_659: + + + movl %r8d,%r12d + addl $15,%r12d + shrl $4,%r12d + cmpq $8,%r12 + je .L_small_initial_num_blocks_is_8_804 + jl .L_small_initial_num_blocks_is_7_1_804 + + + cmpq $12,%r12 + je .L_small_initial_num_blocks_is_12_804 + jl .L_small_initial_num_blocks_is_11_9_804 + + + cmpq $16,%r12 + je .L_small_initial_num_blocks_is_16_804 + cmpq $15,%r12 + je .L_small_initial_num_blocks_is_15_804 + cmpq $14,%r12 + je .L_small_initial_num_blocks_is_14_804 + jmp .L_small_initial_num_blocks_is_13_804 + +.L_small_initial_num_blocks_is_11_9_804: + + cmpq $11,%r12 + je .L_small_initial_num_blocks_is_11_804 + cmpq $10,%r12 + je .L_small_initial_num_blocks_is_10_804 + jmp .L_small_initial_num_blocks_is_9_804 + +.L_small_initial_num_blocks_is_7_1_804: + cmpq $4,%r12 + je .L_small_initial_num_blocks_is_4_804 + jl .L_small_initial_num_blocks_is_3_1_804 + + cmpq $7,%r12 + je .L_small_initial_num_blocks_is_7_804 + cmpq $6,%r12 + je .L_small_initial_num_blocks_is_6_804 + jmp .L_small_initial_num_blocks_is_5_804 + +.L_small_initial_num_blocks_is_3_1_804: + + cmpq $3,%r12 + je .L_small_initial_num_blocks_is_3_804 + cmpq $2,%r12 + je .L_small_initial_num_blocks_is_2_804 + + + + + +.L_small_initial_num_blocks_is_1_804: + vmovdqa64 SHUF_MASK(%rip),%xmm29 + vpaddd ONE(%rip),%xmm2,%xmm0 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $0,%zmm0,%xmm2 + vpshufb %xmm29,%xmm0,%xmm0 + vmovdqu8 0(%rcx,%r11,1),%xmm6{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %xmm15,%xmm0,%xmm0 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %xmm15,%xmm0,%xmm0 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %xmm15,%xmm0,%xmm0 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %xmm15,%xmm0,%xmm0 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %xmm15,%xmm0,%xmm0 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %xmm15,%xmm0,%xmm0 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %xmm15,%xmm0,%xmm0 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %xmm15,%xmm0,%xmm0 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %xmm15,%xmm0,%xmm0 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %xmm15,%xmm0,%xmm0 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenc %xmm15,%xmm0,%xmm0 + vbroadcastf64x2 176(%rdi),%zmm15 + vaesenc %xmm15,%xmm0,%xmm0 + vbroadcastf64x2 192(%rdi),%zmm15 + vaesenclast %xmm15,%xmm0,%xmm0 + vpxorq %xmm6,%xmm0,%xmm0 + vextracti32x4 $0,%zmm0,%xmm12 + movq %r9,%r10 + vmovdqu8 %xmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm0,%zmm0{%k1}{z} + vpshufb %xmm29,%xmm6,%xmm6 + vextracti32x4 $0,%zmm6,%xmm13 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_805 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 336(%rsi),%xmm20 + vpclmulqdq $0x01,%xmm20,%xmm6,%xmm4 + vpclmulqdq $0x10,%xmm20,%xmm6,%xmm5 + vpclmulqdq $0x11,%xmm20,%xmm6,%xmm0 + vpclmulqdq $0x00,%xmm20,%xmm6,%xmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_805 +.L_small_initial_partial_block_805: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + + + + + + + + + + + + vpxorq %xmm13,%xmm14,%xmm14 + + jmp .L_after_reduction_805 +.L_small_initial_compute_done_805: +.L_after_reduction_805: + jmp .L_small_initial_blocks_encrypted_804 +.L_small_initial_num_blocks_is_2_804: + vmovdqa64 SHUF_MASK(%rip),%ymm29 + vshufi64x2 $0,%ymm2,%ymm2,%ymm0 + vpaddd ddq_add_1234(%rip),%ymm0,%ymm0 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $1,%zmm0,%xmm2 + vpshufb %ymm29,%ymm0,%ymm0 + vmovdqu8 0(%rcx,%r11,1),%ymm6{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %ymm15,%ymm0,%ymm0 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %ymm15,%ymm0,%ymm0 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %ymm15,%ymm0,%ymm0 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %ymm15,%ymm0,%ymm0 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %ymm15,%ymm0,%ymm0 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %ymm15,%ymm0,%ymm0 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %ymm15,%ymm0,%ymm0 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %ymm15,%ymm0,%ymm0 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %ymm15,%ymm0,%ymm0 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %ymm15,%ymm0,%ymm0 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenc %ymm15,%ymm0,%ymm0 + vbroadcastf64x2 176(%rdi),%zmm15 + vaesenc %ymm15,%ymm0,%ymm0 + vbroadcastf64x2 192(%rdi),%zmm15 + vaesenclast %ymm15,%ymm0,%ymm0 + vpxorq %ymm6,%ymm0,%ymm0 + vextracti32x4 $1,%zmm0,%xmm12 + movq %r9,%r10 + vmovdqu8 %ymm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm0,%zmm0{%k1}{z} + vpshufb %ymm29,%ymm6,%ymm6 + vextracti32x4 $1,%zmm6,%xmm13 + subq $16 * (2 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_806 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 320(%rsi),%ymm20 + vpclmulqdq $0x01,%ymm20,%ymm6,%ymm4 + vpclmulqdq $0x10,%ymm20,%ymm6,%ymm5 + vpclmulqdq $0x11,%ymm20,%ymm6,%ymm0 + vpclmulqdq $0x00,%ymm20,%ymm6,%ymm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_806 +.L_small_initial_partial_block_806: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 336(%rsi),%xmm20 + vpclmulqdq $0x01,%xmm20,%xmm6,%xmm4 + vpclmulqdq $0x10,%xmm20,%xmm6,%xmm5 + vpclmulqdq $0x11,%xmm20,%xmm6,%xmm0 + vpclmulqdq $0x00,%xmm20,%xmm6,%xmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_806: + + orq %r8,%r8 + je .L_after_reduction_806 + vpxorq %xmm13,%xmm14,%xmm14 +.L_after_reduction_806: + jmp .L_small_initial_blocks_encrypted_804 +.L_small_initial_num_blocks_is_3_804: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $2,%zmm0,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vmovdqu8 0(%rcx,%r11,1),%zmm6{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 176(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 192(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vpxorq %zmm6,%zmm0,%zmm0 + vextracti32x4 $2,%zmm0,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm0,%zmm0{%k1}{z} + vpshufb %zmm29,%zmm6,%zmm6 + vextracti32x4 $2,%zmm6,%xmm13 + subq $16 * (3 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_807 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 304(%rsi),%ymm20 + vinserti64x2 $2,336(%rsi),%zmm20,%zmm20 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_807 +.L_small_initial_partial_block_807: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 320(%rsi),%ymm20 + vpclmulqdq $0x01,%ymm20,%ymm6,%ymm4 + vpclmulqdq $0x10,%ymm20,%ymm6,%ymm5 + vpclmulqdq $0x11,%ymm20,%ymm6,%ymm0 + vpclmulqdq $0x00,%ymm20,%ymm6,%ymm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_807: + + orq %r8,%r8 + je .L_after_reduction_807 + vpxorq %xmm13,%xmm14,%xmm14 +.L_after_reduction_807: + jmp .L_small_initial_blocks_encrypted_804 +.L_small_initial_num_blocks_is_4_804: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $3,%zmm0,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vmovdqu8 0(%rcx,%r11,1),%zmm6{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 176(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 192(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vpxorq %zmm6,%zmm0,%zmm0 + vextracti32x4 $3,%zmm0,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm0,%zmm0{%k1}{z} + vpshufb %zmm29,%zmm6,%zmm6 + vextracti32x4 $3,%zmm6,%xmm13 + subq $16 * (4 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_808 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 288(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm19 + + vpxorq %zmm19,%zmm17,%zmm17 + vpsrldq $8,%zmm17,%zmm4 + vpslldq $8,%zmm17,%zmm5 + vpxorq %zmm4,%zmm15,%zmm0 + vpxorq %zmm5,%zmm16,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_808 +.L_small_initial_partial_block_808: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 304(%rsi),%ymm20 + vinserti64x2 $2,336(%rsi),%zmm20,%zmm20 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_808: + + orq %r8,%r8 + je .L_after_reduction_808 + vpxorq %xmm13,%xmm14,%xmm14 +.L_after_reduction_808: + jmp .L_small_initial_blocks_encrypted_804 +.L_small_initial_num_blocks_is_5_804: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd ddq_add_5678(%rip),%zmm2,%zmm3 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + subq $64,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $0,%zmm3,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %xmm29,%xmm3,%xmm3 + vmovdqu8 0(%rcx,%r11,1),%zmm6 + vmovdqu8 64(%rcx,%r11,1),%xmm7{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %xmm15,%xmm3,%xmm3 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %xmm15,%xmm3,%xmm3 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %xmm15,%xmm3,%xmm3 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %xmm15,%xmm3,%xmm3 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %xmm15,%xmm3,%xmm3 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %xmm15,%xmm3,%xmm3 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %xmm15,%xmm3,%xmm3 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %xmm15,%xmm3,%xmm3 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %xmm15,%xmm3,%xmm3 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %xmm15,%xmm3,%xmm3 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %xmm15,%xmm3,%xmm3 + vbroadcastf64x2 176(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %xmm15,%xmm3,%xmm3 + vbroadcastf64x2 192(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vaesenclast %xmm15,%xmm3,%xmm3 + vpxorq %zmm6,%zmm0,%zmm0 + vpxorq %xmm7,%xmm3,%xmm3 + vextracti32x4 $0,%zmm3,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %xmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm3,%zmm3{%k1}{z} + vpshufb %zmm29,%zmm6,%zmm6 + vpshufb %xmm29,%xmm7,%xmm7 + vextracti32x4 $0,%zmm7,%xmm13 + subq $16 * (5 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_809 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 272(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm19 + vmovdqu64 336(%rsi),%xmm20 + vpclmulqdq $0x01,%xmm20,%xmm7,%xmm4 + vpclmulqdq $0x10,%xmm20,%xmm7,%xmm5 + vpclmulqdq $0x11,%xmm20,%xmm7,%xmm0 + vpclmulqdq $0x00,%xmm20,%xmm7,%xmm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_809 +.L_small_initial_partial_block_809: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 288(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm19 + + vpxorq %zmm19,%zmm17,%zmm17 + vpsrldq $8,%zmm17,%zmm4 + vpslldq $8,%zmm17,%zmm5 + vpxorq %zmm4,%zmm15,%zmm0 + vpxorq %zmm5,%zmm16,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_809: + + orq %r8,%r8 + je .L_after_reduction_809 + vpxorq %xmm13,%xmm14,%xmm14 +.L_after_reduction_809: + jmp .L_small_initial_blocks_encrypted_804 +.L_small_initial_num_blocks_is_6_804: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd ddq_add_5678(%rip),%zmm2,%zmm3 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + subq $64,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $1,%zmm3,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %ymm29,%ymm3,%ymm3 + vmovdqu8 0(%rcx,%r11,1),%zmm6 + vmovdqu8 64(%rcx,%r11,1),%ymm7{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %ymm15,%ymm3,%ymm3 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %ymm15,%ymm3,%ymm3 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %ymm15,%ymm3,%ymm3 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %ymm15,%ymm3,%ymm3 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %ymm15,%ymm3,%ymm3 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %ymm15,%ymm3,%ymm3 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %ymm15,%ymm3,%ymm3 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %ymm15,%ymm3,%ymm3 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %ymm15,%ymm3,%ymm3 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %ymm15,%ymm3,%ymm3 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %ymm15,%ymm3,%ymm3 + vbroadcastf64x2 176(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %ymm15,%ymm3,%ymm3 + vbroadcastf64x2 192(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vaesenclast %ymm15,%ymm3,%ymm3 + vpxorq %zmm6,%zmm0,%zmm0 + vpxorq %ymm7,%ymm3,%ymm3 + vextracti32x4 $1,%zmm3,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %ymm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm3,%zmm3{%k1}{z} + vpshufb %zmm29,%zmm6,%zmm6 + vpshufb %ymm29,%ymm7,%ymm7 + vextracti32x4 $1,%zmm7,%xmm13 + subq $16 * (6 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_810 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 256(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm19 + vmovdqu64 320(%rsi),%ymm20 + vpclmulqdq $0x01,%ymm20,%ymm7,%ymm4 + vpclmulqdq $0x10,%ymm20,%ymm7,%ymm5 + vpclmulqdq $0x11,%ymm20,%ymm7,%ymm0 + vpclmulqdq $0x00,%ymm20,%ymm7,%ymm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_810 +.L_small_initial_partial_block_810: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 272(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm19 + vmovdqu64 336(%rsi),%xmm20 + vpclmulqdq $0x01,%xmm20,%xmm7,%xmm4 + vpclmulqdq $0x10,%xmm20,%xmm7,%xmm5 + vpclmulqdq $0x11,%xmm20,%xmm7,%xmm0 + vpclmulqdq $0x00,%xmm20,%xmm7,%xmm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_810: + + orq %r8,%r8 + je .L_after_reduction_810 + vpxorq %xmm13,%xmm14,%xmm14 +.L_after_reduction_810: + jmp .L_small_initial_blocks_encrypted_804 +.L_small_initial_num_blocks_is_7_804: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd ddq_add_5678(%rip),%zmm2,%zmm3 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + subq $64,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $2,%zmm3,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vmovdqu8 0(%rcx,%r11,1),%zmm6 + vmovdqu8 64(%rcx,%r11,1),%zmm7{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 176(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 192(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vaesenclast %zmm15,%zmm3,%zmm3 + vpxorq %zmm6,%zmm0,%zmm0 + vpxorq %zmm7,%zmm3,%zmm3 + vextracti32x4 $2,%zmm3,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm3,%zmm3{%k1}{z} + vpshufb %zmm29,%zmm6,%zmm6 + vpshufb %zmm29,%zmm7,%zmm7 + vextracti32x4 $2,%zmm7,%xmm13 + subq $16 * (7 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_811 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 240(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm19 + vmovdqu64 304(%rsi),%ymm20 + vinserti64x2 $2,336(%rsi),%zmm20,%zmm20 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm5 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_811 +.L_small_initial_partial_block_811: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 256(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm19 + vmovdqu64 320(%rsi),%ymm20 + vpclmulqdq $0x01,%ymm20,%ymm7,%ymm4 + vpclmulqdq $0x10,%ymm20,%ymm7,%ymm5 + vpclmulqdq $0x11,%ymm20,%ymm7,%ymm0 + vpclmulqdq $0x00,%ymm20,%ymm7,%ymm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_811: + + orq %r8,%r8 + je .L_after_reduction_811 + vpxorq %xmm13,%xmm14,%xmm14 +.L_after_reduction_811: + jmp .L_small_initial_blocks_encrypted_804 +.L_small_initial_num_blocks_is_8_804: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd ddq_add_5678(%rip),%zmm2,%zmm3 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + subq $64,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $3,%zmm3,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vmovdqu8 0(%rcx,%r11,1),%zmm6 + vmovdqu8 64(%rcx,%r11,1),%zmm7{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 176(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 192(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vaesenclast %zmm15,%zmm3,%zmm3 + vpxorq %zmm6,%zmm0,%zmm0 + vpxorq %zmm7,%zmm3,%zmm3 + vextracti32x4 $3,%zmm3,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm3,%zmm3{%k1}{z} + vpshufb %zmm29,%zmm6,%zmm6 + vpshufb %zmm29,%zmm7,%zmm7 + vextracti32x4 $3,%zmm7,%xmm13 + subq $16 * (8 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_812 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 224(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 288(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vpxorq %zmm15,%zmm0,%zmm15 + vpxorq %zmm16,%zmm3,%zmm16 + vpxorq %zmm17,%zmm4,%zmm17 + vpxorq %zmm19,%zmm5,%zmm19 + + vpxorq %zmm19,%zmm17,%zmm17 + vpsrldq $8,%zmm17,%zmm4 + vpslldq $8,%zmm17,%zmm5 + vpxorq %zmm4,%zmm15,%zmm0 + vpxorq %zmm5,%zmm16,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_812 +.L_small_initial_partial_block_812: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 240(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm19 + vmovdqu64 304(%rsi),%ymm20 + vinserti64x2 $2,336(%rsi),%zmm20,%zmm20 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm5 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_812: + + orq %r8,%r8 + je .L_after_reduction_812 + vpxorq %xmm13,%xmm14,%xmm14 +.L_after_reduction_812: + jmp .L_small_initial_blocks_encrypted_804 +.L_small_initial_num_blocks_is_9_804: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd ddq_add_5678(%rip),%zmm2,%zmm3 + vpaddd ddq_add_8888(%rip),%zmm0,%zmm4 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + subq $128,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $0,%zmm4,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %xmm29,%xmm4,%xmm4 + vmovdqu8 0(%rcx,%r11,1),%zmm6 + vmovdqu8 64(%rcx,%r11,1),%zmm7 + vmovdqu8 128(%rcx,%r11,1),%xmm10{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm15,%zmm3,%zmm3 + vpxorq %xmm15,%xmm4,%xmm4 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %xmm15,%xmm4,%xmm4 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %xmm15,%xmm4,%xmm4 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %xmm15,%xmm4,%xmm4 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %xmm15,%xmm4,%xmm4 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %xmm15,%xmm4,%xmm4 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %xmm15,%xmm4,%xmm4 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %xmm15,%xmm4,%xmm4 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %xmm15,%xmm4,%xmm4 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %xmm15,%xmm4,%xmm4 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %xmm15,%xmm4,%xmm4 + vbroadcastf64x2 176(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %xmm15,%xmm4,%xmm4 + vbroadcastf64x2 192(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vaesenclast %zmm15,%zmm3,%zmm3 + vaesenclast %xmm15,%xmm4,%xmm4 + vpxorq %zmm6,%zmm0,%zmm0 + vpxorq %zmm7,%zmm3,%zmm3 + vpxorq %xmm10,%xmm4,%xmm4 + vextracti32x4 $0,%zmm4,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %xmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm4,%zmm4{%k1}{z} + vpshufb %zmm29,%zmm6,%zmm6 + vpshufb %zmm29,%zmm7,%zmm7 + vpshufb %xmm29,%xmm10,%xmm10 + vextracti32x4 $0,%zmm10,%xmm13 + subq $16 * (9 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_813 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 208(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 272(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vpxorq %zmm15,%zmm0,%zmm15 + vpxorq %zmm16,%zmm3,%zmm16 + vpxorq %zmm17,%zmm4,%zmm17 + vpxorq %zmm19,%zmm5,%zmm19 + vmovdqu64 336(%rsi),%xmm20 + vpclmulqdq $0x01,%xmm20,%xmm10,%xmm4 + vpclmulqdq $0x10,%xmm20,%xmm10,%xmm5 + vpclmulqdq $0x11,%xmm20,%xmm10,%xmm0 + vpclmulqdq $0x00,%xmm20,%xmm10,%xmm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_813 +.L_small_initial_partial_block_813: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 224(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 288(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vpxorq %zmm15,%zmm0,%zmm15 + vpxorq %zmm16,%zmm3,%zmm16 + vpxorq %zmm17,%zmm4,%zmm17 + vpxorq %zmm19,%zmm5,%zmm19 + + vpxorq %zmm19,%zmm17,%zmm17 + vpsrldq $8,%zmm17,%zmm4 + vpslldq $8,%zmm17,%zmm5 + vpxorq %zmm4,%zmm15,%zmm0 + vpxorq %zmm5,%zmm16,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_813: + + orq %r8,%r8 + je .L_after_reduction_813 + vpxorq %xmm13,%xmm14,%xmm14 +.L_after_reduction_813: + jmp .L_small_initial_blocks_encrypted_804 +.L_small_initial_num_blocks_is_10_804: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd ddq_add_5678(%rip),%zmm2,%zmm3 + vpaddd ddq_add_8888(%rip),%zmm0,%zmm4 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + subq $128,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $1,%zmm4,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %ymm29,%ymm4,%ymm4 + vmovdqu8 0(%rcx,%r11,1),%zmm6 + vmovdqu8 64(%rcx,%r11,1),%zmm7 + vmovdqu8 128(%rcx,%r11,1),%ymm10{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm15,%zmm3,%zmm3 + vpxorq %ymm15,%ymm4,%ymm4 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %ymm15,%ymm4,%ymm4 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %ymm15,%ymm4,%ymm4 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %ymm15,%ymm4,%ymm4 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %ymm15,%ymm4,%ymm4 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %ymm15,%ymm4,%ymm4 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %ymm15,%ymm4,%ymm4 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %ymm15,%ymm4,%ymm4 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %ymm15,%ymm4,%ymm4 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %ymm15,%ymm4,%ymm4 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %ymm15,%ymm4,%ymm4 + vbroadcastf64x2 176(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %ymm15,%ymm4,%ymm4 + vbroadcastf64x2 192(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vaesenclast %zmm15,%zmm3,%zmm3 + vaesenclast %ymm15,%ymm4,%ymm4 + vpxorq %zmm6,%zmm0,%zmm0 + vpxorq %zmm7,%zmm3,%zmm3 + vpxorq %ymm10,%ymm4,%ymm4 + vextracti32x4 $1,%zmm4,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %ymm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm4,%zmm4{%k1}{z} + vpshufb %zmm29,%zmm6,%zmm6 + vpshufb %zmm29,%zmm7,%zmm7 + vpshufb %ymm29,%ymm10,%ymm10 + vextracti32x4 $1,%zmm10,%xmm13 + subq $16 * (10 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_814 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 192(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 256(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vpxorq %zmm15,%zmm0,%zmm15 + vpxorq %zmm16,%zmm3,%zmm16 + vpxorq %zmm17,%zmm4,%zmm17 + vpxorq %zmm19,%zmm5,%zmm19 + vmovdqu64 320(%rsi),%ymm20 + vpclmulqdq $0x01,%ymm20,%ymm10,%ymm4 + vpclmulqdq $0x10,%ymm20,%ymm10,%ymm5 + vpclmulqdq $0x11,%ymm20,%ymm10,%ymm0 + vpclmulqdq $0x00,%ymm20,%ymm10,%ymm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_814 +.L_small_initial_partial_block_814: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 208(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 272(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vpxorq %zmm15,%zmm0,%zmm15 + vpxorq %zmm16,%zmm3,%zmm16 + vpxorq %zmm17,%zmm4,%zmm17 + vpxorq %zmm19,%zmm5,%zmm19 + vmovdqu64 336(%rsi),%xmm20 + vpclmulqdq $0x01,%xmm20,%xmm10,%xmm4 + vpclmulqdq $0x10,%xmm20,%xmm10,%xmm5 + vpclmulqdq $0x11,%xmm20,%xmm10,%xmm0 + vpclmulqdq $0x00,%xmm20,%xmm10,%xmm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_814: + + orq %r8,%r8 + je .L_after_reduction_814 + vpxorq %xmm13,%xmm14,%xmm14 +.L_after_reduction_814: + jmp .L_small_initial_blocks_encrypted_804 +.L_small_initial_num_blocks_is_11_804: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd ddq_add_5678(%rip),%zmm2,%zmm3 + vpaddd ddq_add_8888(%rip),%zmm0,%zmm4 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + subq $128,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $2,%zmm4,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vmovdqu8 0(%rcx,%r11,1),%zmm6 + vmovdqu8 64(%rcx,%r11,1),%zmm7 + vmovdqu8 128(%rcx,%r11,1),%zmm10{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm15,%zmm3,%zmm3 + vpxorq %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 176(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 192(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vaesenclast %zmm15,%zmm3,%zmm3 + vaesenclast %zmm15,%zmm4,%zmm4 + vpxorq %zmm6,%zmm0,%zmm0 + vpxorq %zmm7,%zmm3,%zmm3 + vpxorq %zmm10,%zmm4,%zmm4 + vextracti32x4 $2,%zmm4,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm4,%zmm4{%k1}{z} + vpshufb %zmm29,%zmm6,%zmm6 + vpshufb %zmm29,%zmm7,%zmm7 + vpshufb %zmm29,%zmm10,%zmm10 + vextracti32x4 $2,%zmm10,%xmm13 + subq $16 * (11 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_815 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 176(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 240(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vpxorq %zmm15,%zmm0,%zmm15 + vpxorq %zmm16,%zmm3,%zmm16 + vpxorq %zmm17,%zmm4,%zmm17 + vpxorq %zmm19,%zmm5,%zmm19 + vmovdqu64 304(%rsi),%ymm20 + vinserti64x2 $2,336(%rsi),%zmm20,%zmm20 + vpclmulqdq $0x01,%zmm20,%zmm10,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm10,%zmm5 + vpclmulqdq $0x11,%zmm20,%zmm10,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm10,%zmm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_815 +.L_small_initial_partial_block_815: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 192(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 256(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vpxorq %zmm15,%zmm0,%zmm15 + vpxorq %zmm16,%zmm3,%zmm16 + vpxorq %zmm17,%zmm4,%zmm17 + vpxorq %zmm19,%zmm5,%zmm19 + vmovdqu64 320(%rsi),%ymm20 + vpclmulqdq $0x01,%ymm20,%ymm10,%ymm4 + vpclmulqdq $0x10,%ymm20,%ymm10,%ymm5 + vpclmulqdq $0x11,%ymm20,%ymm10,%ymm0 + vpclmulqdq $0x00,%ymm20,%ymm10,%ymm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_815: + + orq %r8,%r8 + je .L_after_reduction_815 + vpxorq %xmm13,%xmm14,%xmm14 +.L_after_reduction_815: + jmp .L_small_initial_blocks_encrypted_804 +.L_small_initial_num_blocks_is_12_804: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd ddq_add_5678(%rip),%zmm2,%zmm3 + vpaddd ddq_add_8888(%rip),%zmm0,%zmm4 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + subq $128,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $3,%zmm4,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vmovdqu8 0(%rcx,%r11,1),%zmm6 + vmovdqu8 64(%rcx,%r11,1),%zmm7 + vmovdqu8 128(%rcx,%r11,1),%zmm10{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm15,%zmm3,%zmm3 + vpxorq %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 176(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 192(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vaesenclast %zmm15,%zmm3,%zmm3 + vaesenclast %zmm15,%zmm4,%zmm4 + vpxorq %zmm6,%zmm0,%zmm0 + vpxorq %zmm7,%zmm3,%zmm3 + vpxorq %zmm10,%zmm4,%zmm4 + vextracti32x4 $3,%zmm4,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm4,%zmm4{%k1}{z} + vpshufb %zmm29,%zmm6,%zmm6 + vpshufb %zmm29,%zmm7,%zmm7 + vpshufb %zmm29,%zmm10,%zmm10 + vextracti32x4 $3,%zmm10,%xmm13 + subq $16 * (12 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_816 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 160(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 224(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vmovdqu64 288(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x00,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm0,%zmm6,%zmm15 + vpternlogq $0x96,%zmm3,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x10,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm4,%zmm6,%zmm17 + vpternlogq $0x96,%zmm5,%zmm7,%zmm19 + + vpxorq %zmm19,%zmm17,%zmm17 + vpsrldq $8,%zmm17,%zmm4 + vpslldq $8,%zmm17,%zmm5 + vpxorq %zmm4,%zmm15,%zmm0 + vpxorq %zmm5,%zmm16,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_816 +.L_small_initial_partial_block_816: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 176(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 240(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vpxorq %zmm15,%zmm0,%zmm15 + vpxorq %zmm16,%zmm3,%zmm16 + vpxorq %zmm17,%zmm4,%zmm17 + vpxorq %zmm19,%zmm5,%zmm19 + vmovdqu64 304(%rsi),%ymm20 + vinserti64x2 $2,336(%rsi),%zmm20,%zmm20 + vpclmulqdq $0x01,%zmm20,%zmm10,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm10,%zmm5 + vpclmulqdq $0x11,%zmm20,%zmm10,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm10,%zmm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_816: + + orq %r8,%r8 + je .L_after_reduction_816 + vpxorq %xmm13,%xmm14,%xmm14 +.L_after_reduction_816: + jmp .L_small_initial_blocks_encrypted_804 +.L_small_initial_num_blocks_is_13_804: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd ddq_add_5678(%rip),%zmm2,%zmm3 + vpaddd ddq_add_8888(%rip),%zmm0,%zmm4 + vpaddd ddq_add_8888(%rip),%zmm3,%zmm5 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + subq $192,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $0,%zmm5,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %xmm29,%xmm5,%xmm5 + vmovdqu8 0(%rcx,%r11,1),%zmm6 + vmovdqu8 64(%rcx,%r11,1),%zmm7 + vmovdqu8 128(%rcx,%r11,1),%zmm10 + vmovdqu8 192(%rcx,%r11,1),%xmm11{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm15,%zmm3,%zmm3 + vpxorq %zmm15,%zmm4,%zmm4 + vpxorq %xmm15,%xmm5,%xmm5 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %xmm15,%xmm5,%xmm5 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %xmm15,%xmm5,%xmm5 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %xmm15,%xmm5,%xmm5 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %xmm15,%xmm5,%xmm5 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %xmm15,%xmm5,%xmm5 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %xmm15,%xmm5,%xmm5 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %xmm15,%xmm5,%xmm5 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %xmm15,%xmm5,%xmm5 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %xmm15,%xmm5,%xmm5 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %xmm15,%xmm5,%xmm5 + vbroadcastf64x2 176(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %xmm15,%xmm5,%xmm5 + vbroadcastf64x2 192(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vaesenclast %zmm15,%zmm3,%zmm3 + vaesenclast %zmm15,%zmm4,%zmm4 + vaesenclast %xmm15,%xmm5,%xmm5 + vpxorq %zmm6,%zmm0,%zmm0 + vpxorq %zmm7,%zmm3,%zmm3 + vpxorq %zmm10,%zmm4,%zmm4 + vpxorq %xmm11,%xmm5,%xmm5 + vextracti32x4 $0,%zmm5,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %xmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm5,%zmm5{%k1}{z} + vpshufb %zmm29,%zmm6,%zmm6 + vpshufb %zmm29,%zmm7,%zmm7 + vpshufb %zmm29,%zmm10,%zmm10 + vpshufb %xmm29,%xmm11,%xmm11 + vextracti32x4 $0,%zmm11,%xmm13 + subq $16 * (13 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_817 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 144(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 208(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vmovdqu64 272(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x00,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm0,%zmm6,%zmm15 + vpternlogq $0x96,%zmm3,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x10,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm4,%zmm6,%zmm17 + vpternlogq $0x96,%zmm5,%zmm7,%zmm19 + vmovdqu64 336(%rsi),%xmm20 + vpclmulqdq $0x01,%xmm20,%xmm11,%xmm4 + vpclmulqdq $0x10,%xmm20,%xmm11,%xmm5 + vpclmulqdq $0x11,%xmm20,%xmm11,%xmm0 + vpclmulqdq $0x00,%xmm20,%xmm11,%xmm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_817 +.L_small_initial_partial_block_817: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 160(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 224(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vmovdqu64 288(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x00,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm0,%zmm6,%zmm15 + vpternlogq $0x96,%zmm3,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x10,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm4,%zmm6,%zmm17 + vpternlogq $0x96,%zmm5,%zmm7,%zmm19 + + vpxorq %zmm19,%zmm17,%zmm17 + vpsrldq $8,%zmm17,%zmm4 + vpslldq $8,%zmm17,%zmm5 + vpxorq %zmm4,%zmm15,%zmm0 + vpxorq %zmm5,%zmm16,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_817: + + orq %r8,%r8 + je .L_after_reduction_817 + vpxorq %xmm13,%xmm14,%xmm14 +.L_after_reduction_817: + jmp .L_small_initial_blocks_encrypted_804 +.L_small_initial_num_blocks_is_14_804: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd ddq_add_5678(%rip),%zmm2,%zmm3 + vpaddd ddq_add_8888(%rip),%zmm0,%zmm4 + vpaddd ddq_add_8888(%rip),%zmm3,%zmm5 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + subq $192,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $1,%zmm5,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %ymm29,%ymm5,%ymm5 + vmovdqu8 0(%rcx,%r11,1),%zmm6 + vmovdqu8 64(%rcx,%r11,1),%zmm7 + vmovdqu8 128(%rcx,%r11,1),%zmm10 + vmovdqu8 192(%rcx,%r11,1),%ymm11{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm15,%zmm3,%zmm3 + vpxorq %zmm15,%zmm4,%zmm4 + vpxorq %ymm15,%ymm5,%ymm5 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %ymm15,%ymm5,%ymm5 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %ymm15,%ymm5,%ymm5 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %ymm15,%ymm5,%ymm5 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %ymm15,%ymm5,%ymm5 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %ymm15,%ymm5,%ymm5 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %ymm15,%ymm5,%ymm5 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %ymm15,%ymm5,%ymm5 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %ymm15,%ymm5,%ymm5 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %ymm15,%ymm5,%ymm5 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %ymm15,%ymm5,%ymm5 + vbroadcastf64x2 176(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %ymm15,%ymm5,%ymm5 + vbroadcastf64x2 192(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vaesenclast %zmm15,%zmm3,%zmm3 + vaesenclast %zmm15,%zmm4,%zmm4 + vaesenclast %ymm15,%ymm5,%ymm5 + vpxorq %zmm6,%zmm0,%zmm0 + vpxorq %zmm7,%zmm3,%zmm3 + vpxorq %zmm10,%zmm4,%zmm4 + vpxorq %ymm11,%ymm5,%ymm5 + vextracti32x4 $1,%zmm5,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %ymm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm5,%zmm5{%k1}{z} + vpshufb %zmm29,%zmm6,%zmm6 + vpshufb %zmm29,%zmm7,%zmm7 + vpshufb %zmm29,%zmm10,%zmm10 + vpshufb %ymm29,%ymm11,%ymm11 + vextracti32x4 $1,%zmm11,%xmm13 + subq $16 * (14 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_818 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 128(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 192(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vmovdqu64 256(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x00,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm0,%zmm6,%zmm15 + vpternlogq $0x96,%zmm3,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x10,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm4,%zmm6,%zmm17 + vpternlogq $0x96,%zmm5,%zmm7,%zmm19 + vmovdqu64 320(%rsi),%ymm20 + vpclmulqdq $0x01,%ymm20,%ymm11,%ymm4 + vpclmulqdq $0x10,%ymm20,%ymm11,%ymm5 + vpclmulqdq $0x11,%ymm20,%ymm11,%ymm0 + vpclmulqdq $0x00,%ymm20,%ymm11,%ymm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_818 +.L_small_initial_partial_block_818: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 144(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 208(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vmovdqu64 272(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x00,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm0,%zmm6,%zmm15 + vpternlogq $0x96,%zmm3,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x10,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm4,%zmm6,%zmm17 + vpternlogq $0x96,%zmm5,%zmm7,%zmm19 + vmovdqu64 336(%rsi),%xmm20 + vpclmulqdq $0x01,%xmm20,%xmm11,%xmm4 + vpclmulqdq $0x10,%xmm20,%xmm11,%xmm5 + vpclmulqdq $0x11,%xmm20,%xmm11,%xmm0 + vpclmulqdq $0x00,%xmm20,%xmm11,%xmm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_818: + + orq %r8,%r8 + je .L_after_reduction_818 + vpxorq %xmm13,%xmm14,%xmm14 +.L_after_reduction_818: + jmp .L_small_initial_blocks_encrypted_804 +.L_small_initial_num_blocks_is_15_804: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd ddq_add_5678(%rip),%zmm2,%zmm3 + vpaddd ddq_add_8888(%rip),%zmm0,%zmm4 + vpaddd ddq_add_8888(%rip),%zmm3,%zmm5 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + subq $192,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $2,%zmm5,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 + vmovdqu8 0(%rcx,%r11,1),%zmm6 + vmovdqu8 64(%rcx,%r11,1),%zmm7 + vmovdqu8 128(%rcx,%r11,1),%zmm10 + vmovdqu8 192(%rcx,%r11,1),%zmm11{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm15,%zmm3,%zmm3 + vpxorq %zmm15,%zmm4,%zmm4 + vpxorq %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 176(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 192(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vaesenclast %zmm15,%zmm3,%zmm3 + vaesenclast %zmm15,%zmm4,%zmm4 + vaesenclast %zmm15,%zmm5,%zmm5 + vpxorq %zmm6,%zmm0,%zmm0 + vpxorq %zmm7,%zmm3,%zmm3 + vpxorq %zmm10,%zmm4,%zmm4 + vpxorq %zmm11,%zmm5,%zmm5 + vextracti32x4 $2,%zmm5,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %zmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm5,%zmm5{%k1}{z} + vpshufb %zmm29,%zmm6,%zmm6 + vpshufb %zmm29,%zmm7,%zmm7 + vpshufb %zmm29,%zmm10,%zmm10 + vpshufb %zmm29,%zmm11,%zmm11 + vextracti32x4 $2,%zmm11,%xmm13 + subq $16 * (15 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_819 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 112(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 176(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vmovdqu64 240(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x00,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm0,%zmm6,%zmm15 + vpternlogq $0x96,%zmm3,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x10,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm4,%zmm6,%zmm17 + vpternlogq $0x96,%zmm5,%zmm7,%zmm19 + vmovdqu64 304(%rsi),%ymm20 + vinserti64x2 $2,336(%rsi),%zmm20,%zmm20 + vpclmulqdq $0x01,%zmm20,%zmm11,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm11,%zmm5 + vpclmulqdq $0x11,%zmm20,%zmm11,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm11,%zmm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_819 +.L_small_initial_partial_block_819: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 128(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 192(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vmovdqu64 256(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x00,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm0,%zmm6,%zmm15 + vpternlogq $0x96,%zmm3,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x10,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm4,%zmm6,%zmm17 + vpternlogq $0x96,%zmm5,%zmm7,%zmm19 + vmovdqu64 320(%rsi),%ymm20 + vpclmulqdq $0x01,%ymm20,%ymm11,%ymm4 + vpclmulqdq $0x10,%ymm20,%ymm11,%ymm5 + vpclmulqdq $0x11,%ymm20,%ymm11,%ymm0 + vpclmulqdq $0x00,%ymm20,%ymm11,%ymm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_819: + + orq %r8,%r8 + je .L_after_reduction_819 + vpxorq %xmm13,%xmm14,%xmm14 +.L_after_reduction_819: + jmp .L_small_initial_blocks_encrypted_804 +.L_small_initial_num_blocks_is_16_804: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd ddq_add_5678(%rip),%zmm2,%zmm3 + vpaddd ddq_add_8888(%rip),%zmm0,%zmm4 + vpaddd ddq_add_8888(%rip),%zmm3,%zmm5 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + subq $192,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $3,%zmm5,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 + vmovdqu8 0(%rcx,%r11,1),%zmm6 + vmovdqu8 64(%rcx,%r11,1),%zmm7 + vmovdqu8 128(%rcx,%r11,1),%zmm10 + vmovdqu8 192(%rcx,%r11,1),%zmm11{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm15,%zmm3,%zmm3 + vpxorq %zmm15,%zmm4,%zmm4 + vpxorq %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 176(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 192(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vaesenclast %zmm15,%zmm3,%zmm3 + vaesenclast %zmm15,%zmm4,%zmm4 + vaesenclast %zmm15,%zmm5,%zmm5 + vpxorq %zmm6,%zmm0,%zmm0 + vpxorq %zmm7,%zmm3,%zmm3 + vpxorq %zmm10,%zmm4,%zmm4 + vpxorq %zmm11,%zmm5,%zmm5 + vextracti32x4 $3,%zmm5,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %zmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm5,%zmm5{%k1}{z} + vpshufb %zmm29,%zmm6,%zmm6 + vpshufb %zmm29,%zmm7,%zmm7 + vpshufb %zmm29,%zmm10,%zmm10 + vpshufb %zmm29,%zmm11,%zmm11 + vextracti32x4 $3,%zmm11,%xmm13 + subq $16 * (16 - 1),%r8 +.L_small_initial_partial_block_820: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 112(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 176(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vmovdqu64 240(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x00,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm0,%zmm6,%zmm15 + vpternlogq $0x96,%zmm3,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x10,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm4,%zmm6,%zmm17 + vpternlogq $0x96,%zmm5,%zmm7,%zmm19 + vmovdqu64 304(%rsi),%ymm20 + vinserti64x2 $2,336(%rsi),%zmm20,%zmm20 + vpclmulqdq $0x01,%zmm20,%zmm11,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm11,%zmm5 + vpclmulqdq $0x11,%zmm20,%zmm11,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm11,%zmm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_820: + vpxorq %xmm13,%xmm14,%xmm14 +.L_after_reduction_820: +.L_small_initial_blocks_encrypted_804: +.L_ghash_done_659: + vmovdqu64 %xmm2,0(%rsi) + vmovdqu64 %xmm14,64(%rsi) +.L_enc_dec_done_659: + jmp .Lexit_gcm_decrypt +.align 32 +.Laes_gcm_decrypt_256_avx512: + orq %r8,%r8 + je .L_enc_dec_done_821 + xorq %r14,%r14 + vmovdqu64 64(%rsi),%xmm14 + + movq (%rdx),%r11 + orq %r11,%r11 + je .L_partial_block_done_822 + movl $16,%r10d + leaq byte_len_to_mask_table(%rip),%r12 + cmpq %r10,%r8 + cmovcq %r8,%r10 + kmovw (%r12,%r10,2),%k1 + vmovdqu8 (%rcx),%xmm0{%k1}{z} + + vmovdqu64 16(%rsi),%xmm3 + vmovdqu64 336(%rsi),%xmm4 + + + + leaq SHIFT_MASK(%rip),%r12 + addq %r11,%r12 + vmovdqu64 (%r12),%xmm5 + vpshufb %xmm5,%xmm3,%xmm3 + + vmovdqa64 %xmm0,%xmm6 + vpxorq %xmm0,%xmm3,%xmm3 + + + leaq (%r8,%r11,1),%r13 + subq $16,%r13 + jge .L_no_extra_mask_822 + subq %r13,%r12 +.L_no_extra_mask_822: + + + + vmovdqu64 16(%r12),%xmm0 + vpand %xmm0,%xmm3,%xmm3 + vpand %xmm0,%xmm6,%xmm6 + vpshufb SHUF_MASK(%rip),%xmm6,%xmm6 + vpshufb %xmm5,%xmm6,%xmm6 + vpxorq %xmm6,%xmm14,%xmm14 + cmpq $0,%r13 + jl .L_partial_incomplete_822 + + vpclmulqdq $0x11,%xmm4,%xmm14,%xmm7 + vpclmulqdq $0x00,%xmm4,%xmm14,%xmm10 + vpclmulqdq $0x01,%xmm4,%xmm14,%xmm11 + vpclmulqdq $0x10,%xmm4,%xmm14,%xmm14 + vpxorq %xmm11,%xmm14,%xmm14 + + vpsrldq $8,%xmm14,%xmm11 + vpslldq $8,%xmm14,%xmm14 + vpxorq %xmm11,%xmm7,%xmm7 + vpxorq %xmm10,%xmm14,%xmm14 + + + + vmovdqu64 POLY2(%rip),%xmm11 + + vpclmulqdq $0x01,%xmm14,%xmm11,%xmm10 + vpslldq $8,%xmm10,%xmm10 + vpxorq %xmm10,%xmm14,%xmm14 + + + + vpclmulqdq $0x00,%xmm14,%xmm11,%xmm10 + vpsrldq $4,%xmm10,%xmm10 + vpclmulqdq $0x10,%xmm14,%xmm11,%xmm14 + vpslldq $4,%xmm14,%xmm14 + + vpternlogq $0x96,%xmm10,%xmm7,%xmm14 + + movq $0,(%rdx) + + movq %r11,%r12 + movq $16,%r11 + subq %r12,%r11 + jmp .L_enc_dec_done_822 + +.L_partial_incomplete_822: + addq %r8,(%rdx) + movq %r8,%r11 + +.L_enc_dec_done_822: + + + leaq byte_len_to_mask_table(%rip),%r12 + kmovw (%r12,%r11,2),%k1 + vmovdqu64 %xmm14,64(%rsi) + movq %r9,%r12 + vmovdqu8 %xmm3,(%r12){%k1} +.L_partial_block_done_822: + vmovdqu64 0(%rsi),%xmm2 + subq %r11,%r8 + je .L_enc_dec_done_821 + cmpq $256,%r8 + jbe .L_message_below_equal_16_blocks_821 + + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vmovdqa64 ddq_addbe_4444(%rip),%zmm27 + vmovdqa64 ddq_addbe_1234(%rip),%zmm28 + + + + + + + vmovd %xmm2,%r15d + andl $255,%r15d + + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpshufb %zmm29,%zmm2,%zmm2 + + + + cmpb $240,%r15b + jae .L_next_16_overflow_823 + vpaddd %zmm28,%zmm2,%zmm7 + vpaddd %zmm27,%zmm7,%zmm10 + vpaddd %zmm27,%zmm10,%zmm11 + vpaddd %zmm27,%zmm11,%zmm12 + jmp .L_next_16_ok_823 +.L_next_16_overflow_823: + vpshufb %zmm29,%zmm2,%zmm2 + vmovdqa64 ddq_add_4444(%rip),%zmm12 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm7 + vpaddd %zmm12,%zmm7,%zmm10 + vpaddd %zmm12,%zmm10,%zmm11 + vpaddd %zmm12,%zmm11,%zmm12 + vpshufb %zmm29,%zmm7,%zmm7 + vpshufb %zmm29,%zmm10,%zmm10 + vpshufb %zmm29,%zmm11,%zmm11 + vpshufb %zmm29,%zmm12,%zmm12 +.L_next_16_ok_823: + vshufi64x2 $255,%zmm12,%zmm12,%zmm2 + addb $16,%r15b + + vmovdqu8 0(%rcx,%r11,1),%zmm0 + vmovdqu8 64(%rcx,%r11,1),%zmm3 + vmovdqu8 128(%rcx,%r11,1),%zmm4 + vmovdqu8 192(%rcx,%r11,1),%zmm5 + + + vbroadcastf64x2 0(%rdi),%zmm6 + vpxorq %zmm6,%zmm7,%zmm7 + vpxorq %zmm6,%zmm10,%zmm10 + vpxorq %zmm6,%zmm11,%zmm11 + vpxorq %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 16(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 32(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 48(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 64(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 80(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 96(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 112(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 128(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 144(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 160(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 176(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 192(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 208(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 224(%rdi),%zmm6 + vaesenclast %zmm6,%zmm7,%zmm7 + vaesenclast %zmm6,%zmm10,%zmm10 + vaesenclast %zmm6,%zmm11,%zmm11 + vaesenclast %zmm6,%zmm12,%zmm12 + + + vpxorq %zmm0,%zmm7,%zmm7 + vpxorq %zmm3,%zmm10,%zmm10 + vpxorq %zmm4,%zmm11,%zmm11 + vpxorq %zmm5,%zmm12,%zmm12 + + + movq %r9,%r10 + vmovdqu8 %zmm7,0(%r10,%r11,1) + vmovdqu8 %zmm10,64(%r10,%r11,1) + vmovdqu8 %zmm11,128(%r10,%r11,1) + vmovdqu8 %zmm12,192(%r10,%r11,1) + + vpshufb %zmm29,%zmm0,%zmm7 + vpshufb %zmm29,%zmm3,%zmm10 + vpshufb %zmm29,%zmm4,%zmm11 + vpshufb %zmm29,%zmm5,%zmm12 + vmovdqa64 %zmm7,768(%rsp) + vmovdqa64 %zmm10,832(%rsp) + vmovdqa64 %zmm11,896(%rsp) + vmovdqa64 %zmm12,960(%rsp) + testq %r14,%r14 + jnz .L_skip_hkeys_precomputation_824 + + vmovdqu64 288(%rsi),%zmm0 + vmovdqu64 %zmm0,704(%rsp) + + vmovdqu64 224(%rsi),%zmm3 + vmovdqu64 %zmm3,640(%rsp) + + + vshufi64x2 $0x00,%zmm3,%zmm3,%zmm3 + + vmovdqu64 160(%rsi),%zmm4 + vmovdqu64 %zmm4,576(%rsp) + + vmovdqu64 96(%rsi),%zmm5 + vmovdqu64 %zmm5,512(%rsp) +.L_skip_hkeys_precomputation_824: + cmpq $512,%r8 + jb .L_message_below_32_blocks_821 + + + + cmpb $240,%r15b + jae .L_next_16_overflow_825 + vpaddd %zmm28,%zmm2,%zmm7 + vpaddd %zmm27,%zmm7,%zmm10 + vpaddd %zmm27,%zmm10,%zmm11 + vpaddd %zmm27,%zmm11,%zmm12 + jmp .L_next_16_ok_825 +.L_next_16_overflow_825: + vpshufb %zmm29,%zmm2,%zmm2 + vmovdqa64 ddq_add_4444(%rip),%zmm12 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm7 + vpaddd %zmm12,%zmm7,%zmm10 + vpaddd %zmm12,%zmm10,%zmm11 + vpaddd %zmm12,%zmm11,%zmm12 + vpshufb %zmm29,%zmm7,%zmm7 + vpshufb %zmm29,%zmm10,%zmm10 + vpshufb %zmm29,%zmm11,%zmm11 + vpshufb %zmm29,%zmm12,%zmm12 +.L_next_16_ok_825: + vshufi64x2 $255,%zmm12,%zmm12,%zmm2 + addb $16,%r15b + + vmovdqu8 256(%rcx,%r11,1),%zmm0 + vmovdqu8 320(%rcx,%r11,1),%zmm3 + vmovdqu8 384(%rcx,%r11,1),%zmm4 + vmovdqu8 448(%rcx,%r11,1),%zmm5 + + + vbroadcastf64x2 0(%rdi),%zmm6 + vpxorq %zmm6,%zmm7,%zmm7 + vpxorq %zmm6,%zmm10,%zmm10 + vpxorq %zmm6,%zmm11,%zmm11 + vpxorq %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 16(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 32(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 48(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 64(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 80(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 96(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 112(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 128(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 144(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 160(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 176(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 192(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 208(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 224(%rdi),%zmm6 + vaesenclast %zmm6,%zmm7,%zmm7 + vaesenclast %zmm6,%zmm10,%zmm10 + vaesenclast %zmm6,%zmm11,%zmm11 + vaesenclast %zmm6,%zmm12,%zmm12 + + + vpxorq %zmm0,%zmm7,%zmm7 + vpxorq %zmm3,%zmm10,%zmm10 + vpxorq %zmm4,%zmm11,%zmm11 + vpxorq %zmm5,%zmm12,%zmm12 + + + movq %r9,%r10 + vmovdqu8 %zmm7,256(%r10,%r11,1) + vmovdqu8 %zmm10,320(%r10,%r11,1) + vmovdqu8 %zmm11,384(%r10,%r11,1) + vmovdqu8 %zmm12,448(%r10,%r11,1) + + vpshufb %zmm29,%zmm0,%zmm7 + vpshufb %zmm29,%zmm3,%zmm10 + vpshufb %zmm29,%zmm4,%zmm11 + vpshufb %zmm29,%zmm5,%zmm12 + vmovdqa64 %zmm7,1024(%rsp) + vmovdqa64 %zmm10,1088(%rsp) + vmovdqa64 %zmm11,1152(%rsp) + vmovdqa64 %zmm12,1216(%rsp) + testq %r14,%r14 + jnz .L_skip_hkeys_precomputation_826 + vmovdqu64 640(%rsp),%zmm3 + + + vshufi64x2 $0x00,%zmm3,%zmm3,%zmm3 + + vmovdqu64 576(%rsp),%zmm4 + vmovdqu64 512(%rsp),%zmm5 + + vpclmulqdq $0x11,%zmm3,%zmm4,%zmm6 + vpclmulqdq $0x00,%zmm3,%zmm4,%zmm7 + vpclmulqdq $0x01,%zmm3,%zmm4,%zmm10 + vpclmulqdq $0x10,%zmm3,%zmm4,%zmm4 + vpxorq %zmm10,%zmm4,%zmm4 + + vpsrldq $8,%zmm4,%zmm10 + vpslldq $8,%zmm4,%zmm4 + vpxorq %zmm10,%zmm6,%zmm6 + vpxorq %zmm7,%zmm4,%zmm4 + + + + vmovdqu64 POLY2(%rip),%zmm10 + + vpclmulqdq $0x01,%zmm4,%zmm10,%zmm7 + vpslldq $8,%zmm7,%zmm7 + vpxorq %zmm7,%zmm4,%zmm4 + + + + vpclmulqdq $0x00,%zmm4,%zmm10,%zmm7 + vpsrldq $4,%zmm7,%zmm7 + vpclmulqdq $0x10,%zmm4,%zmm10,%zmm4 + vpslldq $4,%zmm4,%zmm4 + + vpternlogq $0x96,%zmm7,%zmm6,%zmm4 + + vmovdqu64 %zmm4,448(%rsp) + + vpclmulqdq $0x11,%zmm3,%zmm5,%zmm6 + vpclmulqdq $0x00,%zmm3,%zmm5,%zmm7 + vpclmulqdq $0x01,%zmm3,%zmm5,%zmm10 + vpclmulqdq $0x10,%zmm3,%zmm5,%zmm5 + vpxorq %zmm10,%zmm5,%zmm5 + + vpsrldq $8,%zmm5,%zmm10 + vpslldq $8,%zmm5,%zmm5 + vpxorq %zmm10,%zmm6,%zmm6 + vpxorq %zmm7,%zmm5,%zmm5 + + + + vmovdqu64 POLY2(%rip),%zmm10 + + vpclmulqdq $0x01,%zmm5,%zmm10,%zmm7 + vpslldq $8,%zmm7,%zmm7 + vpxorq %zmm7,%zmm5,%zmm5 + + + + vpclmulqdq $0x00,%zmm5,%zmm10,%zmm7 + vpsrldq $4,%zmm7,%zmm7 + vpclmulqdq $0x10,%zmm5,%zmm10,%zmm5 + vpslldq $4,%zmm5,%zmm5 + + vpternlogq $0x96,%zmm7,%zmm6,%zmm5 + + vmovdqu64 %zmm5,384(%rsp) + + vpclmulqdq $0x11,%zmm3,%zmm4,%zmm6 + vpclmulqdq $0x00,%zmm3,%zmm4,%zmm7 + vpclmulqdq $0x01,%zmm3,%zmm4,%zmm10 + vpclmulqdq $0x10,%zmm3,%zmm4,%zmm4 + vpxorq %zmm10,%zmm4,%zmm4 + + vpsrldq $8,%zmm4,%zmm10 + vpslldq $8,%zmm4,%zmm4 + vpxorq %zmm10,%zmm6,%zmm6 + vpxorq %zmm7,%zmm4,%zmm4 + + + + vmovdqu64 POLY2(%rip),%zmm10 + + vpclmulqdq $0x01,%zmm4,%zmm10,%zmm7 + vpslldq $8,%zmm7,%zmm7 + vpxorq %zmm7,%zmm4,%zmm4 + + + + vpclmulqdq $0x00,%zmm4,%zmm10,%zmm7 + vpsrldq $4,%zmm7,%zmm7 + vpclmulqdq $0x10,%zmm4,%zmm10,%zmm4 + vpslldq $4,%zmm4,%zmm4 + + vpternlogq $0x96,%zmm7,%zmm6,%zmm4 + + vmovdqu64 %zmm4,320(%rsp) + + vpclmulqdq $0x11,%zmm3,%zmm5,%zmm6 + vpclmulqdq $0x00,%zmm3,%zmm5,%zmm7 + vpclmulqdq $0x01,%zmm3,%zmm5,%zmm10 + vpclmulqdq $0x10,%zmm3,%zmm5,%zmm5 + vpxorq %zmm10,%zmm5,%zmm5 + + vpsrldq $8,%zmm5,%zmm10 + vpslldq $8,%zmm5,%zmm5 + vpxorq %zmm10,%zmm6,%zmm6 + vpxorq %zmm7,%zmm5,%zmm5 + + + + vmovdqu64 POLY2(%rip),%zmm10 + + vpclmulqdq $0x01,%zmm5,%zmm10,%zmm7 + vpslldq $8,%zmm7,%zmm7 + vpxorq %zmm7,%zmm5,%zmm5 + + + + vpclmulqdq $0x00,%zmm5,%zmm10,%zmm7 + vpsrldq $4,%zmm7,%zmm7 + vpclmulqdq $0x10,%zmm5,%zmm10,%zmm5 + vpslldq $4,%zmm5,%zmm5 + + vpternlogq $0x96,%zmm7,%zmm6,%zmm5 + + vmovdqu64 %zmm5,256(%rsp) + + vpclmulqdq $0x11,%zmm3,%zmm4,%zmm6 + vpclmulqdq $0x00,%zmm3,%zmm4,%zmm7 + vpclmulqdq $0x01,%zmm3,%zmm4,%zmm10 + vpclmulqdq $0x10,%zmm3,%zmm4,%zmm4 + vpxorq %zmm10,%zmm4,%zmm4 + + vpsrldq $8,%zmm4,%zmm10 + vpslldq $8,%zmm4,%zmm4 + vpxorq %zmm10,%zmm6,%zmm6 + vpxorq %zmm7,%zmm4,%zmm4 + + + + vmovdqu64 POLY2(%rip),%zmm10 + + vpclmulqdq $0x01,%zmm4,%zmm10,%zmm7 + vpslldq $8,%zmm7,%zmm7 + vpxorq %zmm7,%zmm4,%zmm4 + + + + vpclmulqdq $0x00,%zmm4,%zmm10,%zmm7 + vpsrldq $4,%zmm7,%zmm7 + vpclmulqdq $0x10,%zmm4,%zmm10,%zmm4 + vpslldq $4,%zmm4,%zmm4 + + vpternlogq $0x96,%zmm7,%zmm6,%zmm4 + + vmovdqu64 %zmm4,192(%rsp) + + vpclmulqdq $0x11,%zmm3,%zmm5,%zmm6 + vpclmulqdq $0x00,%zmm3,%zmm5,%zmm7 + vpclmulqdq $0x01,%zmm3,%zmm5,%zmm10 + vpclmulqdq $0x10,%zmm3,%zmm5,%zmm5 + vpxorq %zmm10,%zmm5,%zmm5 + + vpsrldq $8,%zmm5,%zmm10 + vpslldq $8,%zmm5,%zmm5 + vpxorq %zmm10,%zmm6,%zmm6 + vpxorq %zmm7,%zmm5,%zmm5 + + + + vmovdqu64 POLY2(%rip),%zmm10 + + vpclmulqdq $0x01,%zmm5,%zmm10,%zmm7 + vpslldq $8,%zmm7,%zmm7 + vpxorq %zmm7,%zmm5,%zmm5 + + + + vpclmulqdq $0x00,%zmm5,%zmm10,%zmm7 + vpsrldq $4,%zmm7,%zmm7 + vpclmulqdq $0x10,%zmm5,%zmm10,%zmm5 + vpslldq $4,%zmm5,%zmm5 + + vpternlogq $0x96,%zmm7,%zmm6,%zmm5 + + vmovdqu64 %zmm5,128(%rsp) + + vpclmulqdq $0x11,%zmm3,%zmm4,%zmm6 + vpclmulqdq $0x00,%zmm3,%zmm4,%zmm7 + vpclmulqdq $0x01,%zmm3,%zmm4,%zmm10 + vpclmulqdq $0x10,%zmm3,%zmm4,%zmm4 + vpxorq %zmm10,%zmm4,%zmm4 + + vpsrldq $8,%zmm4,%zmm10 + vpslldq $8,%zmm4,%zmm4 + vpxorq %zmm10,%zmm6,%zmm6 + vpxorq %zmm7,%zmm4,%zmm4 + + + + vmovdqu64 POLY2(%rip),%zmm10 + + vpclmulqdq $0x01,%zmm4,%zmm10,%zmm7 + vpslldq $8,%zmm7,%zmm7 + vpxorq %zmm7,%zmm4,%zmm4 + + + + vpclmulqdq $0x00,%zmm4,%zmm10,%zmm7 + vpsrldq $4,%zmm7,%zmm7 + vpclmulqdq $0x10,%zmm4,%zmm10,%zmm4 + vpslldq $4,%zmm4,%zmm4 + + vpternlogq $0x96,%zmm7,%zmm6,%zmm4 + + vmovdqu64 %zmm4,64(%rsp) + + vpclmulqdq $0x11,%zmm3,%zmm5,%zmm6 + vpclmulqdq $0x00,%zmm3,%zmm5,%zmm7 + vpclmulqdq $0x01,%zmm3,%zmm5,%zmm10 + vpclmulqdq $0x10,%zmm3,%zmm5,%zmm5 + vpxorq %zmm10,%zmm5,%zmm5 + + vpsrldq $8,%zmm5,%zmm10 + vpslldq $8,%zmm5,%zmm5 + vpxorq %zmm10,%zmm6,%zmm6 + vpxorq %zmm7,%zmm5,%zmm5 + + + + vmovdqu64 POLY2(%rip),%zmm10 + + vpclmulqdq $0x01,%zmm5,%zmm10,%zmm7 + vpslldq $8,%zmm7,%zmm7 + vpxorq %zmm7,%zmm5,%zmm5 + + + + vpclmulqdq $0x00,%zmm5,%zmm10,%zmm7 + vpsrldq $4,%zmm7,%zmm7 + vpclmulqdq $0x10,%zmm5,%zmm10,%zmm5 + vpslldq $4,%zmm5,%zmm5 + + vpternlogq $0x96,%zmm7,%zmm6,%zmm5 + + vmovdqu64 %zmm5,0(%rsp) +.L_skip_hkeys_precomputation_826: + movq $1,%r14 + addq $512,%r11 + subq $512,%r8 + + cmpq $768,%r8 + jb .L_no_more_big_nblocks_821 +.L_encrypt_big_nblocks_821: + cmpb $240,%r15b + jae .L_16_blocks_overflow_827 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp .L_16_blocks_ok_827 +.L_16_blocks_overflow_827: + vpshufb %zmm29,%zmm2,%zmm2 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +.L_16_blocks_ok_827: + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp),%zmm1 + + + + + vshufi64x2 $255,%zmm5,%zmm5,%zmm2 + addb $16,%r15b + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + + + + + + + + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm6 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm6 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + + + + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%zmm21 + + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm15,%zmm10,%zmm26 + vpxorq %zmm12,%zmm6,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 192(%rdi),%zmm30 + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 208(%rdi),%zmm31 + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 224(%rdi),%zmm30 + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + + + + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + + + + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %zmm5,192(%r10,%r11,1) + vpshufb %zmm29,%zmm17,%zmm0 + vpshufb %zmm29,%zmm19,%zmm3 + vpshufb %zmm29,%zmm20,%zmm4 + vpshufb %zmm29,%zmm21,%zmm5 + vmovdqa64 %zmm0,1280(%rsp) + vmovdqa64 %zmm3,1344(%rsp) + vmovdqa64 %zmm4,1408(%rsp) + vmovdqa64 %zmm5,1472(%rsp) + cmpb $240,%r15b + jae .L_16_blocks_overflow_828 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp .L_16_blocks_ok_828 +.L_16_blocks_overflow_828: + vpshufb %zmm29,%zmm2,%zmm2 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +.L_16_blocks_ok_828: + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 256(%rsp),%zmm1 + + + + + vshufi64x2 $255,%zmm5,%zmm5,%zmm2 + addb $16,%r15b + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 320(%rsp),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + + + + + + + + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm6 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 384(%rsp),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 448(%rsp),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm6 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + + + + vmovdqu8 256(%rcx,%r11,1),%zmm17 + vmovdqu8 320(%rcx,%r11,1),%zmm19 + vmovdqu8 384(%rcx,%r11,1),%zmm20 + vmovdqu8 448(%rcx,%r11,1),%zmm21 + + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vpternlogq $0x96,%zmm12,%zmm6,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 192(%rdi),%zmm30 + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 208(%rdi),%zmm31 + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 224(%rdi),%zmm30 + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + + + + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + + + + movq %r9,%r10 + vmovdqu8 %zmm0,256(%r10,%r11,1) + vmovdqu8 %zmm3,320(%r10,%r11,1) + vmovdqu8 %zmm4,384(%r10,%r11,1) + vmovdqu8 %zmm5,448(%r10,%r11,1) + vpshufb %zmm29,%zmm17,%zmm0 + vpshufb %zmm29,%zmm19,%zmm3 + vpshufb %zmm29,%zmm20,%zmm4 + vpshufb %zmm29,%zmm21,%zmm5 + vmovdqa64 %zmm0,768(%rsp) + vmovdqa64 %zmm3,832(%rsp) + vmovdqa64 %zmm4,896(%rsp) + vmovdqa64 %zmm5,960(%rsp) + cmpb $240,%r15b + jae .L_16_blocks_overflow_829 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp .L_16_blocks_ok_829 +.L_16_blocks_overflow_829: + vpshufb %zmm29,%zmm2,%zmm2 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +.L_16_blocks_ok_829: + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + + + + + vshufi64x2 $255,%zmm5,%zmm5,%zmm2 + addb $16,%r15b + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + + + + + + + + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm6 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm6 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + + + + vmovdqu8 512(%rcx,%r11,1),%zmm17 + vmovdqu8 576(%rcx,%r11,1),%zmm19 + vmovdqu8 640(%rcx,%r11,1),%zmm20 + vmovdqu8 704(%rcx,%r11,1),%zmm21 + + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + + + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vpternlogq $0x96,%zmm15,%zmm12,%zmm6 + vpxorq %zmm24,%zmm6,%zmm6 + vpternlogq $0x96,%zmm10,%zmm13,%zmm7 + vpxorq %zmm25,%zmm7,%zmm7 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vextracti64x4 $1,%zmm6,%ymm12 + vpxorq %ymm12,%ymm6,%ymm6 + vextracti32x4 $1,%ymm6,%xmm12 + vpxorq %xmm12,%xmm6,%xmm6 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 176(%rdi),%zmm31 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 192(%rdi),%zmm30 + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 208(%rdi),%zmm31 + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 224(%rdi),%zmm30 + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm6 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + + + + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + + + + movq %r9,%r10 + vmovdqu8 %zmm0,512(%r10,%r11,1) + vmovdqu8 %zmm3,576(%r10,%r11,1) + vmovdqu8 %zmm4,640(%r10,%r11,1) + vmovdqu8 %zmm5,704(%r10,%r11,1) + vpshufb %zmm29,%zmm17,%zmm0 + vpshufb %zmm29,%zmm19,%zmm3 + vpshufb %zmm29,%zmm20,%zmm4 + vpshufb %zmm29,%zmm21,%zmm5 + vmovdqa64 %zmm0,1024(%rsp) + vmovdqa64 %zmm3,1088(%rsp) + vmovdqa64 %zmm4,1152(%rsp) + vmovdqa64 %zmm5,1216(%rsp) + vmovdqa64 %zmm6,%zmm14 + + addq $768,%r11 + subq $768,%r8 + cmpq $768,%r8 + jae .L_encrypt_big_nblocks_821 + +.L_no_more_big_nblocks_821: + + cmpq $512,%r8 + jae .L_encrypt_32_blocks_821 + + cmpq $256,%r8 + jae .L_encrypt_16_blocks_821 +.L_encrypt_0_blocks_ghash_32_821: + movl %r8d,%r10d + andl $~15,%r10d + movl $256,%ebx + subl %r10d,%ebx + vmovdqa64 768(%rsp),%zmm13 + vpxorq %zmm14,%zmm13,%zmm13 + vmovdqu64 0(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 832(%rsp),%zmm13 + vmovdqu64 64(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + vpxorq %zmm10,%zmm4,%zmm26 + vpxorq %zmm6,%zmm0,%zmm24 + vpxorq %zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + vmovdqa64 896(%rsp),%zmm13 + vmovdqu64 128(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 960(%rsp),%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + + vpternlogq $0x96,%zmm10,%zmm4,%zmm26 + vpternlogq $0x96,%zmm6,%zmm0,%zmm24 + vpternlogq $0x96,%zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + addl $256,%ebx + movl %r8d,%r10d + addl $15,%r10d + shrl $4,%r10d + je .L_last_num_blocks_is_0_830 + + cmpl $8,%r10d + je .L_last_num_blocks_is_8_830 + jb .L_last_num_blocks_is_7_1_830 + + + cmpl $12,%r10d + je .L_last_num_blocks_is_12_830 + jb .L_last_num_blocks_is_11_9_830 + + + cmpl $15,%r10d + je .L_last_num_blocks_is_15_830 + ja .L_last_num_blocks_is_16_830 + cmpl $14,%r10d + je .L_last_num_blocks_is_14_830 + jmp .L_last_num_blocks_is_13_830 + +.L_last_num_blocks_is_11_9_830: + + cmpl $10,%r10d + je .L_last_num_blocks_is_10_830 + ja .L_last_num_blocks_is_11_830 + jmp .L_last_num_blocks_is_9_830 + +.L_last_num_blocks_is_7_1_830: + cmpl $4,%r10d + je .L_last_num_blocks_is_4_830 + jb .L_last_num_blocks_is_3_1_830 + + cmpl $6,%r10d + ja .L_last_num_blocks_is_7_830 + je .L_last_num_blocks_is_6_830 + jmp .L_last_num_blocks_is_5_830 + +.L_last_num_blocks_is_3_1_830: + + cmpl $2,%r10d + ja .L_last_num_blocks_is_3_830 + je .L_last_num_blocks_is_2_830 +.L_last_num_blocks_is_1_830: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $255,%r15d + jae .L_16_blocks_overflow_831 + vpaddd %xmm28,%xmm2,%xmm0 + jmp .L_16_blocks_ok_831 + +.L_16_blocks_overflow_831: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %xmm29,%xmm0,%xmm0 +.L_16_blocks_ok_831: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $0,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%xmm17{%k1}{z} + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %xmm31,%xmm0,%xmm0 + vaesenclast %xmm30,%xmm0,%xmm0 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti32x4 $0,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %xmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm17,%zmm17{%k1}{z} + vpshufb %xmm29,%xmm17,%xmm17 + vextracti32x4 $0,%zmm17,%xmm7 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_832 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm17,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm17,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm17,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm17,%xmm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_832 +.L_small_initial_partial_block_832: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + + + vpsrldq $8,%zmm26,%zmm0 + vpslldq $8,%zmm26,%zmm3 + vpxorq %zmm0,%zmm24,%zmm24 + vpxorq %zmm3,%zmm25,%zmm25 + vextracti64x4 $1,%zmm24,%ymm0 + vpxorq %ymm0,%ymm24,%ymm24 + vextracti32x4 $1,%ymm24,%xmm0 + vpxorq %xmm0,%xmm24,%xmm24 + vextracti64x4 $1,%zmm25,%ymm3 + vpxorq %ymm3,%ymm25,%ymm25 + vextracti32x4 $1,%ymm25,%xmm3 + vpxorq %xmm3,%xmm25,%xmm25 + vmovdqa64 POLY2(%rip),%xmm0 + + + vpclmulqdq $0x01,%xmm25,%xmm0,%xmm3 + vpslldq $8,%xmm3,%xmm3 + vpxorq %xmm3,%xmm25,%xmm3 + + + vpclmulqdq $0x00,%xmm3,%xmm0,%xmm4 + vpsrldq $4,%xmm4,%xmm4 + vpclmulqdq $0x10,%xmm3,%xmm0,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm24,%xmm4,%xmm14 + + + + + + + + + + + + + vpxorq %xmm7,%xmm14,%xmm14 + + jmp .L_after_reduction_832 +.L_small_initial_compute_done_832: +.L_after_reduction_832: + jmp .L_last_blocks_done_830 +.L_last_num_blocks_is_2_830: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $254,%r15d + jae .L_16_blocks_overflow_833 + vpaddd %ymm28,%ymm2,%ymm0 + jmp .L_16_blocks_ok_833 + +.L_16_blocks_overflow_833: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %ymm29,%ymm0,%ymm0 +.L_16_blocks_ok_833: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $1,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%ymm17{%k1}{z} + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %ymm31,%ymm0,%ymm0 + vaesenclast %ymm30,%ymm0,%ymm0 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %ymm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm17,%zmm17{%k1}{z} + vpshufb %ymm29,%ymm17,%ymm17 + vextracti32x4 $1,%zmm17,%xmm7 + subq $16 * (2 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_834 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm17,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm17,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm17,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm17,%ymm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_834 +.L_small_initial_partial_block_834: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm17,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm17,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm17,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm17,%xmm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_834: + + orq %r8,%r8 + je .L_after_reduction_834 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_834: + jmp .L_last_blocks_done_830 +.L_last_num_blocks_is_3_830: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $253,%r15d + jae .L_16_blocks_overflow_835 + vpaddd %zmm28,%zmm2,%zmm0 + jmp .L_16_blocks_ok_835 + +.L_16_blocks_overflow_835: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %zmm29,%zmm0,%zmm0 +.L_16_blocks_ok_835: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $2,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm0,%zmm0 + vpxorq %zmm17,%zmm0,%zmm0 + vextracti32x4 $2,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm17,%zmm17{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vextracti32x4 $2,%zmm17,%xmm7 + subq $16 * (3 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_836 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_836 +.L_small_initial_partial_block_836: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm17,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm17,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm17,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm17,%ymm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_836: + + orq %r8,%r8 + je .L_after_reduction_836 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_836: + jmp .L_last_blocks_done_830 +.L_last_num_blocks_is_4_830: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $252,%r15d + jae .L_16_blocks_overflow_837 + vpaddd %zmm28,%zmm2,%zmm0 + jmp .L_16_blocks_ok_837 + +.L_16_blocks_overflow_837: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %zmm29,%zmm0,%zmm0 +.L_16_blocks_ok_837: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $3,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm0,%zmm0 + vpxorq %zmm17,%zmm0,%zmm0 + vextracti32x4 $3,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm17,%zmm17{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vextracti32x4 $3,%zmm17,%xmm7 + subq $16 * (4 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_838 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_838 +.L_small_initial_partial_block_838: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_838: + + orq %r8,%r8 + je .L_after_reduction_838 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_838: + jmp .L_last_blocks_done_830 +.L_last_num_blocks_is_5_830: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $251,%r15d + jae .L_16_blocks_overflow_839 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %xmm27,%xmm0,%xmm3 + jmp .L_16_blocks_ok_839 + +.L_16_blocks_overflow_839: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %xmm29,%xmm3,%xmm3 +.L_16_blocks_ok_839: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $0,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%xmm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %xmm30,%xmm3,%xmm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %xmm19,%xmm3,%xmm3 + vextracti32x4 $0,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %xmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm19,%zmm19{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %xmm29,%xmm19,%xmm19 + vextracti32x4 $0,%zmm19,%xmm7 + subq $16 * (5 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_840 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm19,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm19,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm19,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm19,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_840 +.L_small_initial_partial_block_840: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_840: + + orq %r8,%r8 + je .L_after_reduction_840 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_840: + jmp .L_last_blocks_done_830 +.L_last_num_blocks_is_6_830: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $250,%r15d + jae .L_16_blocks_overflow_841 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %ymm27,%ymm0,%ymm3 + jmp .L_16_blocks_ok_841 + +.L_16_blocks_overflow_841: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %ymm29,%ymm3,%ymm3 +.L_16_blocks_ok_841: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $1,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%ymm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %ymm30,%ymm3,%ymm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %ymm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm19,%zmm19{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %ymm29,%ymm19,%ymm19 + vextracti32x4 $1,%zmm19,%xmm7 + subq $16 * (6 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_842 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm19,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm19,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm19,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm19,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_842 +.L_small_initial_partial_block_842: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm19,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm19,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm19,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm19,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_842: + + orq %r8,%r8 + je .L_after_reduction_842 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_842: + jmp .L_last_blocks_done_830 +.L_last_num_blocks_is_7_830: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $249,%r15d + jae .L_16_blocks_overflow_843 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + jmp .L_16_blocks_ok_843 + +.L_16_blocks_overflow_843: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 +.L_16_blocks_ok_843: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $2,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti32x4 $2,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm19,%zmm19{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vextracti32x4 $2,%zmm19,%xmm7 + subq $16 * (7 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_844 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_844 +.L_small_initial_partial_block_844: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm19,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm19,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm19,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm19,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_844: + + orq %r8,%r8 + je .L_after_reduction_844 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_844: + jmp .L_last_blocks_done_830 +.L_last_num_blocks_is_8_830: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $248,%r15d + jae .L_16_blocks_overflow_845 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + jmp .L_16_blocks_ok_845 + +.L_16_blocks_overflow_845: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 +.L_16_blocks_ok_845: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $3,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti32x4 $3,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm19,%zmm19{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vextracti32x4 $3,%zmm19,%xmm7 + subq $16 * (8 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_846 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_846 +.L_small_initial_partial_block_846: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_846: + + orq %r8,%r8 + je .L_after_reduction_846 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_846: + jmp .L_last_blocks_done_830 +.L_last_num_blocks_is_9_830: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $247,%r15d + jae .L_16_blocks_overflow_847 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %xmm27,%xmm3,%xmm4 + jmp .L_16_blocks_ok_847 + +.L_16_blocks_overflow_847: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %xmm29,%xmm4,%xmm4 +.L_16_blocks_ok_847: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $0,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%xmm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %xmm30,%xmm4,%xmm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %xmm20,%xmm4,%xmm4 + vextracti32x4 $0,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %xmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm20,%zmm20{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %xmm29,%xmm20,%xmm20 + vextracti32x4 $0,%zmm20,%xmm7 + subq $16 * (9 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_848 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm20,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm20,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm20,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm20,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_848 +.L_small_initial_partial_block_848: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_848: + + orq %r8,%r8 + je .L_after_reduction_848 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_848: + jmp .L_last_blocks_done_830 +.L_last_num_blocks_is_10_830: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $246,%r15d + jae .L_16_blocks_overflow_849 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %ymm27,%ymm3,%ymm4 + jmp .L_16_blocks_ok_849 + +.L_16_blocks_overflow_849: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %ymm29,%ymm4,%ymm4 +.L_16_blocks_ok_849: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $1,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%ymm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %ymm30,%ymm4,%ymm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %ymm20,%ymm4,%ymm4 + vextracti32x4 $1,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %ymm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm20,%zmm20{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %ymm29,%ymm20,%ymm20 + vextracti32x4 $1,%zmm20,%xmm7 + subq $16 * (10 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_850 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm20,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm20,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm20,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm20,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_850 +.L_small_initial_partial_block_850: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm20,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm20,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm20,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm20,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_850: + + orq %r8,%r8 + je .L_after_reduction_850 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_850: + jmp .L_last_blocks_done_830 +.L_last_num_blocks_is_11_830: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $245,%r15d + jae .L_16_blocks_overflow_851 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + jmp .L_16_blocks_ok_851 + +.L_16_blocks_overflow_851: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 +.L_16_blocks_ok_851: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $2,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vextracti32x4 $2,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm20,%zmm20{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %zmm29,%zmm20,%zmm20 + vextracti32x4 $2,%zmm20,%xmm7 + subq $16 * (11 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_852 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_852 +.L_small_initial_partial_block_852: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm20,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm20,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm20,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm20,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_852: + + orq %r8,%r8 + je .L_after_reduction_852 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_852: + jmp .L_last_blocks_done_830 +.L_last_num_blocks_is_12_830: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $244,%r15d + jae .L_16_blocks_overflow_853 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + jmp .L_16_blocks_ok_853 + +.L_16_blocks_overflow_853: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 +.L_16_blocks_ok_853: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $3,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vextracti32x4 $3,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm20,%zmm20{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %zmm29,%zmm20,%zmm20 + vextracti32x4 $3,%zmm20,%xmm7 + subq $16 * (12 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_854 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 160(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_854 +.L_small_initial_partial_block_854: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_854: + + orq %r8,%r8 + je .L_after_reduction_854 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_854: + jmp .L_last_blocks_done_830 +.L_last_num_blocks_is_13_830: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $243,%r15d + jae .L_16_blocks_overflow_855 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %xmm27,%xmm4,%xmm5 + jmp .L_16_blocks_ok_855 + +.L_16_blocks_overflow_855: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %xmm29,%xmm5,%xmm5 +.L_16_blocks_ok_855: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $0,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%xmm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %xmm30,%xmm5,%xmm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %xmm21,%xmm5,%xmm5 + vextracti32x4 $0,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %xmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm21,%zmm21{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %zmm29,%zmm20,%zmm20 + vpshufb %xmm29,%xmm21,%xmm21 + vextracti32x4 $0,%zmm21,%xmm7 + subq $16 * (13 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_856 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 144(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm21,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm21,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm21,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm21,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_856 +.L_small_initial_partial_block_856: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 160(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_856: + + orq %r8,%r8 + je .L_after_reduction_856 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_856: + jmp .L_last_blocks_done_830 +.L_last_num_blocks_is_14_830: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $242,%r15d + jae .L_16_blocks_overflow_857 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %ymm27,%ymm4,%ymm5 + jmp .L_16_blocks_ok_857 + +.L_16_blocks_overflow_857: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %ymm29,%ymm5,%ymm5 +.L_16_blocks_ok_857: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $1,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%ymm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %ymm30,%ymm5,%ymm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %ymm21,%ymm5,%ymm5 + vextracti32x4 $1,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %ymm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm21,%zmm21{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %zmm29,%zmm20,%zmm20 + vpshufb %ymm29,%ymm21,%ymm21 + vextracti32x4 $1,%zmm21,%xmm7 + subq $16 * (14 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_858 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 128(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm21,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm21,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm21,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm21,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_858 +.L_small_initial_partial_block_858: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 144(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm21,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm21,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm21,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm21,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_858: + + orq %r8,%r8 + je .L_after_reduction_858 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_858: + jmp .L_last_blocks_done_830 +.L_last_num_blocks_is_15_830: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $241,%r15d + jae .L_16_blocks_overflow_859 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp .L_16_blocks_ok_859 + +.L_16_blocks_overflow_859: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +.L_16_blocks_ok_859: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $2,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%zmm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + vextracti32x4 $2,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %zmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm21,%zmm21{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %zmm29,%zmm20,%zmm20 + vpshufb %zmm29,%zmm21,%zmm21 + vextracti32x4 $2,%zmm21,%xmm7 + subq $16 * (15 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_860 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 112(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm21,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm21,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm21,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm21,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_860 +.L_small_initial_partial_block_860: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 128(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm21,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm21,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm21,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm21,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_860: + + orq %r8,%r8 + je .L_after_reduction_860 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_860: + jmp .L_last_blocks_done_830 +.L_last_num_blocks_is_16_830: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $240,%r15d + jae .L_16_blocks_overflow_861 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp .L_16_blocks_ok_861 + +.L_16_blocks_overflow_861: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +.L_16_blocks_ok_861: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $3,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%zmm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + vextracti32x4 $3,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %zmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm21,%zmm21{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %zmm29,%zmm20,%zmm20 + vpshufb %zmm29,%zmm21,%zmm21 + vextracti32x4 $3,%zmm21,%xmm7 + subq $16 * (16 - 1),%r8 +.L_small_initial_partial_block_862: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 112(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm21,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm21,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm21,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm21,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_862: + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_862: + jmp .L_last_blocks_done_830 +.L_last_num_blocks_is_0_830: + vmovdqa64 1024(%rsp),%zmm13 + vmovdqu64 0(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 1088(%rsp),%zmm13 + vmovdqu64 64(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + vpternlogq $0x96,%zmm10,%zmm4,%zmm26 + vpternlogq $0x96,%zmm6,%zmm0,%zmm24 + vpternlogq $0x96,%zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + vmovdqa64 1152(%rsp),%zmm13 + vmovdqu64 128(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 1216(%rsp),%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + + vpternlogq $0x96,%zmm10,%zmm4,%zmm26 + vpternlogq $0x96,%zmm6,%zmm0,%zmm24 + vpternlogq $0x96,%zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + + vpsrldq $8,%zmm26,%zmm0 + vpslldq $8,%zmm26,%zmm3 + vpxorq %zmm0,%zmm24,%zmm24 + vpxorq %zmm3,%zmm25,%zmm25 + vextracti64x4 $1,%zmm24,%ymm0 + vpxorq %ymm0,%ymm24,%ymm24 + vextracti32x4 $1,%ymm24,%xmm0 + vpxorq %xmm0,%xmm24,%xmm24 + vextracti64x4 $1,%zmm25,%ymm3 + vpxorq %ymm3,%ymm25,%ymm25 + vextracti32x4 $1,%ymm25,%xmm3 + vpxorq %xmm3,%xmm25,%xmm25 + vmovdqa64 POLY2(%rip),%xmm4 + + + vpclmulqdq $0x01,%xmm25,%xmm4,%xmm0 + vpslldq $8,%xmm0,%xmm0 + vpxorq %xmm0,%xmm25,%xmm0 + + + vpclmulqdq $0x00,%xmm0,%xmm4,%xmm3 + vpsrldq $4,%xmm3,%xmm3 + vpclmulqdq $0x10,%xmm0,%xmm4,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm24,%xmm3,%xmm14 + +.L_last_blocks_done_830: + vpshufb %xmm29,%xmm2,%xmm2 + jmp .L_ghash_done_821 +.L_encrypt_32_blocks_821: + cmpb $240,%r15b + jae .L_16_blocks_overflow_863 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp .L_16_blocks_ok_863 +.L_16_blocks_overflow_863: + vpshufb %zmm29,%zmm2,%zmm2 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +.L_16_blocks_ok_863: + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp),%zmm1 + + + + + vshufi64x2 $255,%zmm5,%zmm5,%zmm2 + addb $16,%r15b + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + + + + + + + + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm6 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm6 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + + + + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%zmm21 + + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm15,%zmm10,%zmm26 + vpxorq %zmm12,%zmm6,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 192(%rdi),%zmm30 + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 208(%rdi),%zmm31 + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 224(%rdi),%zmm30 + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + + + + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + + + + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %zmm5,192(%r10,%r11,1) + vpshufb %zmm29,%zmm17,%zmm0 + vpshufb %zmm29,%zmm19,%zmm3 + vpshufb %zmm29,%zmm20,%zmm4 + vpshufb %zmm29,%zmm21,%zmm5 + vmovdqa64 %zmm0,1280(%rsp) + vmovdqa64 %zmm3,1344(%rsp) + vmovdqa64 %zmm4,1408(%rsp) + vmovdqa64 %zmm5,1472(%rsp) + cmpb $240,%r15b + jae .L_16_blocks_overflow_864 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp .L_16_blocks_ok_864 +.L_16_blocks_overflow_864: + vpshufb %zmm29,%zmm2,%zmm2 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +.L_16_blocks_ok_864: + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 256(%rsp),%zmm1 + + + + + vshufi64x2 $255,%zmm5,%zmm5,%zmm2 + addb $16,%r15b + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 320(%rsp),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + + + + + + + + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm6 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 384(%rsp),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 448(%rsp),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm6 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + + + + vmovdqu8 256(%rcx,%r11,1),%zmm17 + vmovdqu8 320(%rcx,%r11,1),%zmm19 + vmovdqu8 384(%rcx,%r11,1),%zmm20 + vmovdqu8 448(%rcx,%r11,1),%zmm21 + + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vpternlogq $0x96,%zmm12,%zmm6,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 192(%rdi),%zmm30 + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 208(%rdi),%zmm31 + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 224(%rdi),%zmm30 + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + + + + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + + + + movq %r9,%r10 + vmovdqu8 %zmm0,256(%r10,%r11,1) + vmovdqu8 %zmm3,320(%r10,%r11,1) + vmovdqu8 %zmm4,384(%r10,%r11,1) + vmovdqu8 %zmm5,448(%r10,%r11,1) + vpshufb %zmm29,%zmm17,%zmm0 + vpshufb %zmm29,%zmm19,%zmm3 + vpshufb %zmm29,%zmm20,%zmm4 + vpshufb %zmm29,%zmm21,%zmm5 + vmovdqa64 %zmm0,768(%rsp) + vmovdqa64 %zmm3,832(%rsp) + vmovdqa64 %zmm4,896(%rsp) + vmovdqa64 %zmm5,960(%rsp) + vmovdqa64 1280(%rsp),%zmm13 + vmovdqu64 512(%rsp),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 1344(%rsp),%zmm13 + vmovdqu64 576(%rsp),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + vpternlogq $0x96,%zmm10,%zmm4,%zmm26 + vpternlogq $0x96,%zmm6,%zmm0,%zmm24 + vpternlogq $0x96,%zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + vmovdqa64 1408(%rsp),%zmm13 + vmovdqu64 640(%rsp),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 1472(%rsp),%zmm13 + vmovdqu64 704(%rsp),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + + vpternlogq $0x96,%zmm10,%zmm4,%zmm26 + vpternlogq $0x96,%zmm6,%zmm0,%zmm24 + vpternlogq $0x96,%zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + + vpsrldq $8,%zmm26,%zmm0 + vpslldq $8,%zmm26,%zmm3 + vpxorq %zmm0,%zmm24,%zmm24 + vpxorq %zmm3,%zmm25,%zmm25 + vextracti64x4 $1,%zmm24,%ymm0 + vpxorq %ymm0,%ymm24,%ymm24 + vextracti32x4 $1,%ymm24,%xmm0 + vpxorq %xmm0,%xmm24,%xmm24 + vextracti64x4 $1,%zmm25,%ymm3 + vpxorq %ymm3,%ymm25,%ymm25 + vextracti32x4 $1,%ymm25,%xmm3 + vpxorq %xmm3,%xmm25,%xmm25 + vmovdqa64 POLY2(%rip),%xmm4 + + + vpclmulqdq $0x01,%xmm25,%xmm4,%xmm0 + vpslldq $8,%xmm0,%xmm0 + vpxorq %xmm0,%xmm25,%xmm0 + + + vpclmulqdq $0x00,%xmm0,%xmm4,%xmm3 + vpsrldq $4,%xmm3,%xmm3 + vpclmulqdq $0x10,%xmm0,%xmm4,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm24,%xmm3,%xmm14 + + subq $512,%r8 + addq $512,%r11 + movl %r8d,%r10d + andl $~15,%r10d + movl $512,%ebx + subl %r10d,%ebx + movl %r8d,%r10d + addl $15,%r10d + shrl $4,%r10d + je .L_last_num_blocks_is_0_865 + + cmpl $8,%r10d + je .L_last_num_blocks_is_8_865 + jb .L_last_num_blocks_is_7_1_865 + + + cmpl $12,%r10d + je .L_last_num_blocks_is_12_865 + jb .L_last_num_blocks_is_11_9_865 + + + cmpl $15,%r10d + je .L_last_num_blocks_is_15_865 + ja .L_last_num_blocks_is_16_865 + cmpl $14,%r10d + je .L_last_num_blocks_is_14_865 + jmp .L_last_num_blocks_is_13_865 + +.L_last_num_blocks_is_11_9_865: + + cmpl $10,%r10d + je .L_last_num_blocks_is_10_865 + ja .L_last_num_blocks_is_11_865 + jmp .L_last_num_blocks_is_9_865 + +.L_last_num_blocks_is_7_1_865: + cmpl $4,%r10d + je .L_last_num_blocks_is_4_865 + jb .L_last_num_blocks_is_3_1_865 + + cmpl $6,%r10d + ja .L_last_num_blocks_is_7_865 + je .L_last_num_blocks_is_6_865 + jmp .L_last_num_blocks_is_5_865 + +.L_last_num_blocks_is_3_1_865: + + cmpl $2,%r10d + ja .L_last_num_blocks_is_3_865 + je .L_last_num_blocks_is_2_865 +.L_last_num_blocks_is_1_865: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $255,%r15d + jae .L_16_blocks_overflow_866 + vpaddd %xmm28,%xmm2,%xmm0 + jmp .L_16_blocks_ok_866 + +.L_16_blocks_overflow_866: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %xmm29,%xmm0,%xmm0 +.L_16_blocks_ok_866: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $0,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%xmm17{%k1}{z} + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %xmm31,%xmm0,%xmm0 + vaesenclast %xmm30,%xmm0,%xmm0 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti32x4 $0,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %xmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm17,%zmm17{%k1}{z} + vpshufb %xmm29,%xmm17,%xmm17 + vextracti32x4 $0,%zmm17,%xmm7 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_867 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm17,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm17,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm17,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm17,%xmm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_867 +.L_small_initial_partial_block_867: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + + + vpsrldq $8,%zmm26,%zmm0 + vpslldq $8,%zmm26,%zmm3 + vpxorq %zmm0,%zmm24,%zmm24 + vpxorq %zmm3,%zmm25,%zmm25 + vextracti64x4 $1,%zmm24,%ymm0 + vpxorq %ymm0,%ymm24,%ymm24 + vextracti32x4 $1,%ymm24,%xmm0 + vpxorq %xmm0,%xmm24,%xmm24 + vextracti64x4 $1,%zmm25,%ymm3 + vpxorq %ymm3,%ymm25,%ymm25 + vextracti32x4 $1,%ymm25,%xmm3 + vpxorq %xmm3,%xmm25,%xmm25 + vmovdqa64 POLY2(%rip),%xmm0 + + + vpclmulqdq $0x01,%xmm25,%xmm0,%xmm3 + vpslldq $8,%xmm3,%xmm3 + vpxorq %xmm3,%xmm25,%xmm3 + + + vpclmulqdq $0x00,%xmm3,%xmm0,%xmm4 + vpsrldq $4,%xmm4,%xmm4 + vpclmulqdq $0x10,%xmm3,%xmm0,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm24,%xmm4,%xmm14 + + + + + + + + + + + + + vpxorq %xmm7,%xmm14,%xmm14 + + jmp .L_after_reduction_867 +.L_small_initial_compute_done_867: +.L_after_reduction_867: + jmp .L_last_blocks_done_865 +.L_last_num_blocks_is_2_865: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $254,%r15d + jae .L_16_blocks_overflow_868 + vpaddd %ymm28,%ymm2,%ymm0 + jmp .L_16_blocks_ok_868 + +.L_16_blocks_overflow_868: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %ymm29,%ymm0,%ymm0 +.L_16_blocks_ok_868: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $1,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%ymm17{%k1}{z} + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %ymm31,%ymm0,%ymm0 + vaesenclast %ymm30,%ymm0,%ymm0 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %ymm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm17,%zmm17{%k1}{z} + vpshufb %ymm29,%ymm17,%ymm17 + vextracti32x4 $1,%zmm17,%xmm7 + subq $16 * (2 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_869 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm17,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm17,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm17,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm17,%ymm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_869 +.L_small_initial_partial_block_869: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm17,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm17,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm17,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm17,%xmm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_869: + + orq %r8,%r8 + je .L_after_reduction_869 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_869: + jmp .L_last_blocks_done_865 +.L_last_num_blocks_is_3_865: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $253,%r15d + jae .L_16_blocks_overflow_870 + vpaddd %zmm28,%zmm2,%zmm0 + jmp .L_16_blocks_ok_870 + +.L_16_blocks_overflow_870: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %zmm29,%zmm0,%zmm0 +.L_16_blocks_ok_870: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $2,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm0,%zmm0 + vpxorq %zmm17,%zmm0,%zmm0 + vextracti32x4 $2,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm17,%zmm17{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vextracti32x4 $2,%zmm17,%xmm7 + subq $16 * (3 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_871 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_871 +.L_small_initial_partial_block_871: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm17,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm17,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm17,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm17,%ymm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_871: + + orq %r8,%r8 + je .L_after_reduction_871 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_871: + jmp .L_last_blocks_done_865 +.L_last_num_blocks_is_4_865: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $252,%r15d + jae .L_16_blocks_overflow_872 + vpaddd %zmm28,%zmm2,%zmm0 + jmp .L_16_blocks_ok_872 + +.L_16_blocks_overflow_872: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %zmm29,%zmm0,%zmm0 +.L_16_blocks_ok_872: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $3,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm0,%zmm0 + vpxorq %zmm17,%zmm0,%zmm0 + vextracti32x4 $3,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm17,%zmm17{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vextracti32x4 $3,%zmm17,%xmm7 + subq $16 * (4 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_873 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_873 +.L_small_initial_partial_block_873: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_873: + + orq %r8,%r8 + je .L_after_reduction_873 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_873: + jmp .L_last_blocks_done_865 +.L_last_num_blocks_is_5_865: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $251,%r15d + jae .L_16_blocks_overflow_874 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %xmm27,%xmm0,%xmm3 + jmp .L_16_blocks_ok_874 + +.L_16_blocks_overflow_874: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %xmm29,%xmm3,%xmm3 +.L_16_blocks_ok_874: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $0,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%xmm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %xmm30,%xmm3,%xmm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %xmm19,%xmm3,%xmm3 + vextracti32x4 $0,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %xmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm19,%zmm19{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %xmm29,%xmm19,%xmm19 + vextracti32x4 $0,%zmm19,%xmm7 + subq $16 * (5 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_875 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm19,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm19,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm19,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm19,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_875 +.L_small_initial_partial_block_875: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_875: + + orq %r8,%r8 + je .L_after_reduction_875 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_875: + jmp .L_last_blocks_done_865 +.L_last_num_blocks_is_6_865: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $250,%r15d + jae .L_16_blocks_overflow_876 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %ymm27,%ymm0,%ymm3 + jmp .L_16_blocks_ok_876 + +.L_16_blocks_overflow_876: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %ymm29,%ymm3,%ymm3 +.L_16_blocks_ok_876: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $1,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%ymm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %ymm30,%ymm3,%ymm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %ymm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm19,%zmm19{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %ymm29,%ymm19,%ymm19 + vextracti32x4 $1,%zmm19,%xmm7 + subq $16 * (6 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_877 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm19,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm19,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm19,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm19,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_877 +.L_small_initial_partial_block_877: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm19,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm19,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm19,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm19,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_877: + + orq %r8,%r8 + je .L_after_reduction_877 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_877: + jmp .L_last_blocks_done_865 +.L_last_num_blocks_is_7_865: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $249,%r15d + jae .L_16_blocks_overflow_878 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + jmp .L_16_blocks_ok_878 + +.L_16_blocks_overflow_878: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 +.L_16_blocks_ok_878: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $2,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti32x4 $2,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm19,%zmm19{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vextracti32x4 $2,%zmm19,%xmm7 + subq $16 * (7 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_879 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_879 +.L_small_initial_partial_block_879: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm19,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm19,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm19,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm19,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_879: + + orq %r8,%r8 + je .L_after_reduction_879 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_879: + jmp .L_last_blocks_done_865 +.L_last_num_blocks_is_8_865: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $248,%r15d + jae .L_16_blocks_overflow_880 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + jmp .L_16_blocks_ok_880 + +.L_16_blocks_overflow_880: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 +.L_16_blocks_ok_880: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $3,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti32x4 $3,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm19,%zmm19{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vextracti32x4 $3,%zmm19,%xmm7 + subq $16 * (8 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_881 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_881 +.L_small_initial_partial_block_881: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_881: + + orq %r8,%r8 + je .L_after_reduction_881 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_881: + jmp .L_last_blocks_done_865 +.L_last_num_blocks_is_9_865: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $247,%r15d + jae .L_16_blocks_overflow_882 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %xmm27,%xmm3,%xmm4 + jmp .L_16_blocks_ok_882 + +.L_16_blocks_overflow_882: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %xmm29,%xmm4,%xmm4 +.L_16_blocks_ok_882: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $0,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%xmm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %xmm30,%xmm4,%xmm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %xmm20,%xmm4,%xmm4 + vextracti32x4 $0,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %xmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm20,%zmm20{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %xmm29,%xmm20,%xmm20 + vextracti32x4 $0,%zmm20,%xmm7 + subq $16 * (9 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_883 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm20,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm20,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm20,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm20,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_883 +.L_small_initial_partial_block_883: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_883: + + orq %r8,%r8 + je .L_after_reduction_883 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_883: + jmp .L_last_blocks_done_865 +.L_last_num_blocks_is_10_865: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $246,%r15d + jae .L_16_blocks_overflow_884 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %ymm27,%ymm3,%ymm4 + jmp .L_16_blocks_ok_884 + +.L_16_blocks_overflow_884: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %ymm29,%ymm4,%ymm4 +.L_16_blocks_ok_884: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $1,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%ymm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %ymm30,%ymm4,%ymm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %ymm20,%ymm4,%ymm4 + vextracti32x4 $1,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %ymm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm20,%zmm20{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %ymm29,%ymm20,%ymm20 + vextracti32x4 $1,%zmm20,%xmm7 + subq $16 * (10 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_885 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm20,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm20,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm20,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm20,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_885 +.L_small_initial_partial_block_885: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm20,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm20,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm20,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm20,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_885: + + orq %r8,%r8 + je .L_after_reduction_885 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_885: + jmp .L_last_blocks_done_865 +.L_last_num_blocks_is_11_865: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $245,%r15d + jae .L_16_blocks_overflow_886 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + jmp .L_16_blocks_ok_886 + +.L_16_blocks_overflow_886: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 +.L_16_blocks_ok_886: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $2,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vextracti32x4 $2,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm20,%zmm20{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %zmm29,%zmm20,%zmm20 + vextracti32x4 $2,%zmm20,%xmm7 + subq $16 * (11 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_887 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_887 +.L_small_initial_partial_block_887: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm20,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm20,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm20,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm20,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_887: + + orq %r8,%r8 + je .L_after_reduction_887 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_887: + jmp .L_last_blocks_done_865 +.L_last_num_blocks_is_12_865: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $244,%r15d + jae .L_16_blocks_overflow_888 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + jmp .L_16_blocks_ok_888 + +.L_16_blocks_overflow_888: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 +.L_16_blocks_ok_888: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $3,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vextracti32x4 $3,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm20,%zmm20{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %zmm29,%zmm20,%zmm20 + vextracti32x4 $3,%zmm20,%xmm7 + subq $16 * (12 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_889 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 160(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_889 +.L_small_initial_partial_block_889: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_889: + + orq %r8,%r8 + je .L_after_reduction_889 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_889: + jmp .L_last_blocks_done_865 +.L_last_num_blocks_is_13_865: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $243,%r15d + jae .L_16_blocks_overflow_890 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %xmm27,%xmm4,%xmm5 + jmp .L_16_blocks_ok_890 + +.L_16_blocks_overflow_890: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %xmm29,%xmm5,%xmm5 +.L_16_blocks_ok_890: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $0,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%xmm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %xmm30,%xmm5,%xmm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %xmm21,%xmm5,%xmm5 + vextracti32x4 $0,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %xmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm21,%zmm21{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %zmm29,%zmm20,%zmm20 + vpshufb %xmm29,%xmm21,%xmm21 + vextracti32x4 $0,%zmm21,%xmm7 + subq $16 * (13 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_891 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 144(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm21,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm21,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm21,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm21,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_891 +.L_small_initial_partial_block_891: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 160(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_891: + + orq %r8,%r8 + je .L_after_reduction_891 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_891: + jmp .L_last_blocks_done_865 +.L_last_num_blocks_is_14_865: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $242,%r15d + jae .L_16_blocks_overflow_892 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %ymm27,%ymm4,%ymm5 + jmp .L_16_blocks_ok_892 + +.L_16_blocks_overflow_892: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %ymm29,%ymm5,%ymm5 +.L_16_blocks_ok_892: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $1,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%ymm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %ymm30,%ymm5,%ymm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %ymm21,%ymm5,%ymm5 + vextracti32x4 $1,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %ymm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm21,%zmm21{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %zmm29,%zmm20,%zmm20 + vpshufb %ymm29,%ymm21,%ymm21 + vextracti32x4 $1,%zmm21,%xmm7 + subq $16 * (14 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_893 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 128(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm21,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm21,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm21,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm21,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_893 +.L_small_initial_partial_block_893: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 144(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm21,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm21,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm21,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm21,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_893: + + orq %r8,%r8 + je .L_after_reduction_893 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_893: + jmp .L_last_blocks_done_865 +.L_last_num_blocks_is_15_865: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $241,%r15d + jae .L_16_blocks_overflow_894 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp .L_16_blocks_ok_894 + +.L_16_blocks_overflow_894: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +.L_16_blocks_ok_894: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $2,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%zmm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + vextracti32x4 $2,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %zmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm21,%zmm21{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %zmm29,%zmm20,%zmm20 + vpshufb %zmm29,%zmm21,%zmm21 + vextracti32x4 $2,%zmm21,%xmm7 + subq $16 * (15 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_895 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 112(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm21,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm21,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm21,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm21,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_895 +.L_small_initial_partial_block_895: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 128(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm21,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm21,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm21,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm21,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_895: + + orq %r8,%r8 + je .L_after_reduction_895 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_895: + jmp .L_last_blocks_done_865 +.L_last_num_blocks_is_16_865: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $240,%r15d + jae .L_16_blocks_overflow_896 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp .L_16_blocks_ok_896 + +.L_16_blocks_overflow_896: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +.L_16_blocks_ok_896: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $3,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%zmm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + vextracti32x4 $3,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %zmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm21,%zmm21{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %zmm29,%zmm20,%zmm20 + vpshufb %zmm29,%zmm21,%zmm21 + vextracti32x4 $3,%zmm21,%xmm7 + subq $16 * (16 - 1),%r8 +.L_small_initial_partial_block_897: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 112(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm21,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm21,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm21,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm21,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_897: + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_897: + jmp .L_last_blocks_done_865 +.L_last_num_blocks_is_0_865: + vmovdqa64 768(%rsp),%zmm13 + vpxorq %zmm14,%zmm13,%zmm13 + vmovdqu64 0(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 832(%rsp),%zmm13 + vmovdqu64 64(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + vpxorq %zmm10,%zmm4,%zmm26 + vpxorq %zmm6,%zmm0,%zmm24 + vpxorq %zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + vmovdqa64 896(%rsp),%zmm13 + vmovdqu64 128(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 960(%rsp),%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + + vpternlogq $0x96,%zmm10,%zmm4,%zmm26 + vpternlogq $0x96,%zmm6,%zmm0,%zmm24 + vpternlogq $0x96,%zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + + vpsrldq $8,%zmm26,%zmm0 + vpslldq $8,%zmm26,%zmm3 + vpxorq %zmm0,%zmm24,%zmm24 + vpxorq %zmm3,%zmm25,%zmm25 + vextracti64x4 $1,%zmm24,%ymm0 + vpxorq %ymm0,%ymm24,%ymm24 + vextracti32x4 $1,%ymm24,%xmm0 + vpxorq %xmm0,%xmm24,%xmm24 + vextracti64x4 $1,%zmm25,%ymm3 + vpxorq %ymm3,%ymm25,%ymm25 + vextracti32x4 $1,%ymm25,%xmm3 + vpxorq %xmm3,%xmm25,%xmm25 + vmovdqa64 POLY2(%rip),%xmm4 + + + vpclmulqdq $0x01,%xmm25,%xmm4,%xmm0 + vpslldq $8,%xmm0,%xmm0 + vpxorq %xmm0,%xmm25,%xmm0 + + + vpclmulqdq $0x00,%xmm0,%xmm4,%xmm3 + vpsrldq $4,%xmm3,%xmm3 + vpclmulqdq $0x10,%xmm0,%xmm4,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm24,%xmm3,%xmm14 + +.L_last_blocks_done_865: + vpshufb %xmm29,%xmm2,%xmm2 + jmp .L_ghash_done_821 +.L_encrypt_16_blocks_821: + cmpb $240,%r15b + jae .L_16_blocks_overflow_898 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp .L_16_blocks_ok_898 +.L_16_blocks_overflow_898: + vpshufb %zmm29,%zmm2,%zmm2 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +.L_16_blocks_ok_898: + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp),%zmm1 + + + + + vshufi64x2 $255,%zmm5,%zmm5,%zmm2 + addb $16,%r15b + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + + + + + + + + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm6 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm6 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + + + + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%zmm21 + + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm15,%zmm10,%zmm26 + vpxorq %zmm12,%zmm6,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 192(%rdi),%zmm30 + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 208(%rdi),%zmm31 + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 224(%rdi),%zmm30 + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + + + + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + + + + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %zmm5,192(%r10,%r11,1) + vpshufb %zmm29,%zmm17,%zmm0 + vpshufb %zmm29,%zmm19,%zmm3 + vpshufb %zmm29,%zmm20,%zmm4 + vpshufb %zmm29,%zmm21,%zmm5 + vmovdqa64 %zmm0,1280(%rsp) + vmovdqa64 %zmm3,1344(%rsp) + vmovdqa64 %zmm4,1408(%rsp) + vmovdqa64 %zmm5,1472(%rsp) + vmovdqa64 1024(%rsp),%zmm13 + vmovdqu64 256(%rsp),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 1088(%rsp),%zmm13 + vmovdqu64 320(%rsp),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + vpternlogq $0x96,%zmm10,%zmm4,%zmm26 + vpternlogq $0x96,%zmm6,%zmm0,%zmm24 + vpternlogq $0x96,%zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + vmovdqa64 1152(%rsp),%zmm13 + vmovdqu64 384(%rsp),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 1216(%rsp),%zmm13 + vmovdqu64 448(%rsp),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + + vpternlogq $0x96,%zmm10,%zmm4,%zmm26 + vpternlogq $0x96,%zmm6,%zmm0,%zmm24 + vpternlogq $0x96,%zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + subq $256,%r8 + addq $256,%r11 + movl %r8d,%r10d + addl $15,%r10d + shrl $4,%r10d + je .L_last_num_blocks_is_0_899 + + cmpl $8,%r10d + je .L_last_num_blocks_is_8_899 + jb .L_last_num_blocks_is_7_1_899 + + + cmpl $12,%r10d + je .L_last_num_blocks_is_12_899 + jb .L_last_num_blocks_is_11_9_899 + + + cmpl $15,%r10d + je .L_last_num_blocks_is_15_899 + ja .L_last_num_blocks_is_16_899 + cmpl $14,%r10d + je .L_last_num_blocks_is_14_899 + jmp .L_last_num_blocks_is_13_899 + +.L_last_num_blocks_is_11_9_899: + + cmpl $10,%r10d + je .L_last_num_blocks_is_10_899 + ja .L_last_num_blocks_is_11_899 + jmp .L_last_num_blocks_is_9_899 + +.L_last_num_blocks_is_7_1_899: + cmpl $4,%r10d + je .L_last_num_blocks_is_4_899 + jb .L_last_num_blocks_is_3_1_899 + + cmpl $6,%r10d + ja .L_last_num_blocks_is_7_899 + je .L_last_num_blocks_is_6_899 + jmp .L_last_num_blocks_is_5_899 + +.L_last_num_blocks_is_3_1_899: + + cmpl $2,%r10d + ja .L_last_num_blocks_is_3_899 + je .L_last_num_blocks_is_2_899 +.L_last_num_blocks_is_1_899: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $255,%r15d + jae .L_16_blocks_overflow_900 + vpaddd %xmm28,%xmm2,%xmm0 + jmp .L_16_blocks_ok_900 + +.L_16_blocks_overflow_900: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %xmm29,%xmm0,%xmm0 +.L_16_blocks_ok_900: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $0,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%xmm17{%k1}{z} + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %xmm31,%xmm0,%xmm0 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vbroadcastf64x2 176(%rdi),%zmm31 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %xmm31,%xmm0,%xmm0 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %xmm30,%xmm0,%xmm0 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti32x4 $0,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %xmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm17,%zmm17{%k1}{z} + vpshufb %xmm29,%xmm17,%xmm17 + vextracti32x4 $0,%zmm17,%xmm7 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_901 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm17,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm17,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm17,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm17,%xmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_901 +.L_small_initial_partial_block_901: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + + + + + + + + + + + + vpxorq %xmm7,%xmm14,%xmm14 + + jmp .L_after_reduction_901 +.L_small_initial_compute_done_901: +.L_after_reduction_901: + jmp .L_last_blocks_done_899 +.L_last_num_blocks_is_2_899: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $254,%r15d + jae .L_16_blocks_overflow_902 + vpaddd %ymm28,%ymm2,%ymm0 + jmp .L_16_blocks_ok_902 + +.L_16_blocks_overflow_902: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %ymm29,%ymm0,%ymm0 +.L_16_blocks_ok_902: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $1,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%ymm17{%k1}{z} + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %ymm31,%ymm0,%ymm0 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vbroadcastf64x2 176(%rdi),%zmm31 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %ymm31,%ymm0,%ymm0 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %ymm30,%ymm0,%ymm0 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %ymm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm17,%zmm17{%k1}{z} + vpshufb %ymm29,%ymm17,%ymm17 + vextracti32x4 $1,%zmm17,%xmm7 + subq $16 * (2 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_903 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm17,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm17,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm17,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm17,%ymm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_903 +.L_small_initial_partial_block_903: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm17,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm17,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm17,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm17,%xmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_903: + + orq %r8,%r8 + je .L_after_reduction_903 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_903: + jmp .L_last_blocks_done_899 +.L_last_num_blocks_is_3_899: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $253,%r15d + jae .L_16_blocks_overflow_904 + vpaddd %zmm28,%zmm2,%zmm0 + jmp .L_16_blocks_ok_904 + +.L_16_blocks_overflow_904: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %zmm29,%zmm0,%zmm0 +.L_16_blocks_ok_904: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $2,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vbroadcastf64x2 176(%rdi),%zmm31 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vpxorq %zmm17,%zmm0,%zmm0 + vextracti32x4 $2,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm17,%zmm17{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vextracti32x4 $2,%zmm17,%xmm7 + subq $16 * (3 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_905 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_905 +.L_small_initial_partial_block_905: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm17,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm17,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm17,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm17,%ymm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_905: + + orq %r8,%r8 + je .L_after_reduction_905 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_905: + jmp .L_last_blocks_done_899 +.L_last_num_blocks_is_4_899: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $252,%r15d + jae .L_16_blocks_overflow_906 + vpaddd %zmm28,%zmm2,%zmm0 + jmp .L_16_blocks_ok_906 + +.L_16_blocks_overflow_906: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %zmm29,%zmm0,%zmm0 +.L_16_blocks_ok_906: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $3,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vbroadcastf64x2 176(%rdi),%zmm31 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vpxorq %zmm17,%zmm0,%zmm0 + vextracti32x4 $3,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm17,%zmm17{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vextracti32x4 $3,%zmm17,%xmm7 + subq $16 * (4 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_907 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_907 +.L_small_initial_partial_block_907: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_907: + + orq %r8,%r8 + je .L_after_reduction_907 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_907: + jmp .L_last_blocks_done_899 +.L_last_num_blocks_is_5_899: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $251,%r15d + jae .L_16_blocks_overflow_908 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %xmm27,%xmm0,%xmm3 + jmp .L_16_blocks_ok_908 + +.L_16_blocks_overflow_908: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %xmm29,%xmm3,%xmm3 +.L_16_blocks_ok_908: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $0,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%xmm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vbroadcastf64x2 176(%rdi),%zmm31 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %xmm30,%xmm3,%xmm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %xmm19,%xmm3,%xmm3 + vextracti32x4 $0,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %xmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm19,%zmm19{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %xmm29,%xmm19,%xmm19 + vextracti32x4 $0,%zmm19,%xmm7 + subq $16 * (5 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_909 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm19,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm19,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm19,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm19,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_909 +.L_small_initial_partial_block_909: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_909: + + orq %r8,%r8 + je .L_after_reduction_909 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_909: + jmp .L_last_blocks_done_899 +.L_last_num_blocks_is_6_899: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $250,%r15d + jae .L_16_blocks_overflow_910 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %ymm27,%ymm0,%ymm3 + jmp .L_16_blocks_ok_910 + +.L_16_blocks_overflow_910: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %ymm29,%ymm3,%ymm3 +.L_16_blocks_ok_910: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $1,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%ymm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vbroadcastf64x2 176(%rdi),%zmm31 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %ymm30,%ymm3,%ymm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %ymm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm19,%zmm19{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %ymm29,%ymm19,%ymm19 + vextracti32x4 $1,%zmm19,%xmm7 + subq $16 * (6 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_911 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm19,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm19,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm19,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm19,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_911 +.L_small_initial_partial_block_911: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm19,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm19,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm19,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm19,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_911: + + orq %r8,%r8 + je .L_after_reduction_911 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_911: + jmp .L_last_blocks_done_899 +.L_last_num_blocks_is_7_899: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $249,%r15d + jae .L_16_blocks_overflow_912 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + jmp .L_16_blocks_ok_912 + +.L_16_blocks_overflow_912: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 +.L_16_blocks_ok_912: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $2,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vbroadcastf64x2 176(%rdi),%zmm31 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti32x4 $2,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm19,%zmm19{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vextracti32x4 $2,%zmm19,%xmm7 + subq $16 * (7 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_913 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_913 +.L_small_initial_partial_block_913: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm19,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm19,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm19,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm19,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_913: + + orq %r8,%r8 + je .L_after_reduction_913 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_913: + jmp .L_last_blocks_done_899 +.L_last_num_blocks_is_8_899: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $248,%r15d + jae .L_16_blocks_overflow_914 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + jmp .L_16_blocks_ok_914 + +.L_16_blocks_overflow_914: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 +.L_16_blocks_ok_914: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $3,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vbroadcastf64x2 176(%rdi),%zmm31 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti32x4 $3,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm19,%zmm19{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vextracti32x4 $3,%zmm19,%xmm7 + subq $16 * (8 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_915 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_915 +.L_small_initial_partial_block_915: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_915: + + orq %r8,%r8 + je .L_after_reduction_915 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_915: + jmp .L_last_blocks_done_899 +.L_last_num_blocks_is_9_899: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $247,%r15d + jae .L_16_blocks_overflow_916 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %xmm27,%xmm3,%xmm4 + jmp .L_16_blocks_ok_916 + +.L_16_blocks_overflow_916: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %xmm29,%xmm4,%xmm4 +.L_16_blocks_ok_916: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $0,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%xmm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vbroadcastf64x2 176(%rdi),%zmm31 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %xmm30,%xmm4,%xmm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %xmm20,%xmm4,%xmm4 + vextracti32x4 $0,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %xmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm20,%zmm20{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %xmm29,%xmm20,%xmm20 + vextracti32x4 $0,%zmm20,%xmm7 + subq $16 * (9 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_917 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm20,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm20,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm20,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm20,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_917 +.L_small_initial_partial_block_917: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_917: + + orq %r8,%r8 + je .L_after_reduction_917 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_917: + jmp .L_last_blocks_done_899 +.L_last_num_blocks_is_10_899: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $246,%r15d + jae .L_16_blocks_overflow_918 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %ymm27,%ymm3,%ymm4 + jmp .L_16_blocks_ok_918 + +.L_16_blocks_overflow_918: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %ymm29,%ymm4,%ymm4 +.L_16_blocks_ok_918: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $1,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%ymm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vbroadcastf64x2 176(%rdi),%zmm31 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %ymm30,%ymm4,%ymm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %ymm20,%ymm4,%ymm4 + vextracti32x4 $1,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %ymm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm20,%zmm20{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %ymm29,%ymm20,%ymm20 + vextracti32x4 $1,%zmm20,%xmm7 + subq $16 * (10 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_919 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm20,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm20,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm20,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm20,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_919 +.L_small_initial_partial_block_919: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm20,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm20,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm20,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm20,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_919: + + orq %r8,%r8 + je .L_after_reduction_919 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_919: + jmp .L_last_blocks_done_899 +.L_last_num_blocks_is_11_899: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $245,%r15d + jae .L_16_blocks_overflow_920 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + jmp .L_16_blocks_ok_920 + +.L_16_blocks_overflow_920: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 +.L_16_blocks_ok_920: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $2,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vbroadcastf64x2 176(%rdi),%zmm31 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vextracti32x4 $2,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm20,%zmm20{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %zmm29,%zmm20,%zmm20 + vextracti32x4 $2,%zmm20,%xmm7 + subq $16 * (11 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_921 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_921 +.L_small_initial_partial_block_921: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm20,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm20,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm20,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm20,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_921: + + orq %r8,%r8 + je .L_after_reduction_921 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_921: + jmp .L_last_blocks_done_899 +.L_last_num_blocks_is_12_899: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $244,%r15d + jae .L_16_blocks_overflow_922 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + jmp .L_16_blocks_ok_922 + +.L_16_blocks_overflow_922: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 +.L_16_blocks_ok_922: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $3,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vbroadcastf64x2 176(%rdi),%zmm31 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vextracti32x4 $3,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm20,%zmm20{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %zmm29,%zmm20,%zmm20 + vextracti32x4 $3,%zmm20,%xmm7 + subq $16 * (12 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_923 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 160(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_923 +.L_small_initial_partial_block_923: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_923: + + orq %r8,%r8 + je .L_after_reduction_923 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_923: + jmp .L_last_blocks_done_899 +.L_last_num_blocks_is_13_899: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $243,%r15d + jae .L_16_blocks_overflow_924 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %xmm27,%xmm4,%xmm5 + jmp .L_16_blocks_ok_924 + +.L_16_blocks_overflow_924: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %xmm29,%xmm5,%xmm5 +.L_16_blocks_ok_924: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $0,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%xmm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vbroadcastf64x2 176(%rdi),%zmm31 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %xmm30,%xmm5,%xmm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %xmm21,%xmm5,%xmm5 + vextracti32x4 $0,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %xmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm21,%zmm21{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %zmm29,%zmm20,%zmm20 + vpshufb %xmm29,%xmm21,%xmm21 + vextracti32x4 $0,%zmm21,%xmm7 + subq $16 * (13 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_925 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 144(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm21,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm21,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm21,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm21,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_925 +.L_small_initial_partial_block_925: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 160(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_925: + + orq %r8,%r8 + je .L_after_reduction_925 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_925: + jmp .L_last_blocks_done_899 +.L_last_num_blocks_is_14_899: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $242,%r15d + jae .L_16_blocks_overflow_926 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %ymm27,%ymm4,%ymm5 + jmp .L_16_blocks_ok_926 + +.L_16_blocks_overflow_926: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %ymm29,%ymm5,%ymm5 +.L_16_blocks_ok_926: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $1,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%ymm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vbroadcastf64x2 176(%rdi),%zmm31 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %ymm30,%ymm5,%ymm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %ymm21,%ymm5,%ymm5 + vextracti32x4 $1,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %ymm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm21,%zmm21{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %zmm29,%zmm20,%zmm20 + vpshufb %ymm29,%ymm21,%ymm21 + vextracti32x4 $1,%zmm21,%xmm7 + subq $16 * (14 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_927 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 128(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm21,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm21,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm21,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm21,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_927 +.L_small_initial_partial_block_927: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 144(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm21,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm21,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm21,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm21,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_927: + + orq %r8,%r8 + je .L_after_reduction_927 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_927: + jmp .L_last_blocks_done_899 +.L_last_num_blocks_is_15_899: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $241,%r15d + jae .L_16_blocks_overflow_928 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp .L_16_blocks_ok_928 + +.L_16_blocks_overflow_928: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +.L_16_blocks_ok_928: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $2,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%zmm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vbroadcastf64x2 176(%rdi),%zmm31 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + vextracti32x4 $2,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %zmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm21,%zmm21{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %zmm29,%zmm20,%zmm20 + vpshufb %zmm29,%zmm21,%zmm21 + vextracti32x4 $2,%zmm21,%xmm7 + subq $16 * (15 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_929 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 112(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm21,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm21,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm21,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm21,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_929 +.L_small_initial_partial_block_929: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 128(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm21,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm21,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm21,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm21,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_929: + + orq %r8,%r8 + je .L_after_reduction_929 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_929: + jmp .L_last_blocks_done_899 +.L_last_num_blocks_is_16_899: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $240,%r15d + jae .L_16_blocks_overflow_930 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp .L_16_blocks_ok_930 + +.L_16_blocks_overflow_930: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +.L_16_blocks_ok_930: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $3,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%zmm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vbroadcastf64x2 176(%rdi),%zmm31 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + vextracti32x4 $3,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %zmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm21,%zmm21{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %zmm29,%zmm20,%zmm20 + vpshufb %zmm29,%zmm21,%zmm21 + vextracti32x4 $3,%zmm21,%xmm7 + subq $16 * (16 - 1),%r8 +.L_small_initial_partial_block_931: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 112(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm21,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm21,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm21,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm21,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_931: + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_931: + jmp .L_last_blocks_done_899 +.L_last_num_blocks_is_0_899: + vmovdqa64 1280(%rsp),%zmm13 + vmovdqu64 512(%rsp),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 1344(%rsp),%zmm13 + vmovdqu64 576(%rsp),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + vpternlogq $0x96,%zmm10,%zmm4,%zmm26 + vpternlogq $0x96,%zmm6,%zmm0,%zmm24 + vpternlogq $0x96,%zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + vmovdqa64 1408(%rsp),%zmm13 + vmovdqu64 640(%rsp),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 1472(%rsp),%zmm13 + vmovdqu64 704(%rsp),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + + vpternlogq $0x96,%zmm10,%zmm4,%zmm26 + vpternlogq $0x96,%zmm6,%zmm0,%zmm24 + vpternlogq $0x96,%zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + + vpsrldq $8,%zmm26,%zmm0 + vpslldq $8,%zmm26,%zmm3 + vpxorq %zmm0,%zmm24,%zmm24 + vpxorq %zmm3,%zmm25,%zmm25 + vextracti64x4 $1,%zmm24,%ymm0 + vpxorq %ymm0,%ymm24,%ymm24 + vextracti32x4 $1,%ymm24,%xmm0 + vpxorq %xmm0,%xmm24,%xmm24 + vextracti64x4 $1,%zmm25,%ymm3 + vpxorq %ymm3,%ymm25,%ymm25 + vextracti32x4 $1,%ymm25,%xmm3 + vpxorq %xmm3,%xmm25,%xmm25 + vmovdqa64 POLY2(%rip),%xmm4 + + + vpclmulqdq $0x01,%xmm25,%xmm4,%xmm0 + vpslldq $8,%xmm0,%xmm0 + vpxorq %xmm0,%xmm25,%xmm0 + + + vpclmulqdq $0x00,%xmm0,%xmm4,%xmm3 + vpsrldq $4,%xmm3,%xmm3 + vpclmulqdq $0x10,%xmm0,%xmm4,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm24,%xmm3,%xmm14 + +.L_last_blocks_done_899: + vpshufb %xmm29,%xmm2,%xmm2 + jmp .L_ghash_done_821 + +.L_message_below_32_blocks_821: + + + subq $256,%r8 + addq $256,%r11 + movl %r8d,%r10d + testq %r14,%r14 + jnz .L_skip_hkeys_precomputation_932 + vmovdqu64 640(%rsp),%zmm3 + + + vshufi64x2 $0x00,%zmm3,%zmm3,%zmm3 + + vmovdqu64 576(%rsp),%zmm4 + vmovdqu64 512(%rsp),%zmm5 + + vpclmulqdq $0x11,%zmm3,%zmm4,%zmm6 + vpclmulqdq $0x00,%zmm3,%zmm4,%zmm7 + vpclmulqdq $0x01,%zmm3,%zmm4,%zmm10 + vpclmulqdq $0x10,%zmm3,%zmm4,%zmm4 + vpxorq %zmm10,%zmm4,%zmm4 + + vpsrldq $8,%zmm4,%zmm10 + vpslldq $8,%zmm4,%zmm4 + vpxorq %zmm10,%zmm6,%zmm6 + vpxorq %zmm7,%zmm4,%zmm4 + + + + vmovdqu64 POLY2(%rip),%zmm10 + + vpclmulqdq $0x01,%zmm4,%zmm10,%zmm7 + vpslldq $8,%zmm7,%zmm7 + vpxorq %zmm7,%zmm4,%zmm4 + + + + vpclmulqdq $0x00,%zmm4,%zmm10,%zmm7 + vpsrldq $4,%zmm7,%zmm7 + vpclmulqdq $0x10,%zmm4,%zmm10,%zmm4 + vpslldq $4,%zmm4,%zmm4 + + vpternlogq $0x96,%zmm7,%zmm6,%zmm4 + + vmovdqu64 %zmm4,448(%rsp) + + vpclmulqdq $0x11,%zmm3,%zmm5,%zmm6 + vpclmulqdq $0x00,%zmm3,%zmm5,%zmm7 + vpclmulqdq $0x01,%zmm3,%zmm5,%zmm10 + vpclmulqdq $0x10,%zmm3,%zmm5,%zmm5 + vpxorq %zmm10,%zmm5,%zmm5 + + vpsrldq $8,%zmm5,%zmm10 + vpslldq $8,%zmm5,%zmm5 + vpxorq %zmm10,%zmm6,%zmm6 + vpxorq %zmm7,%zmm5,%zmm5 + + + + vmovdqu64 POLY2(%rip),%zmm10 + + vpclmulqdq $0x01,%zmm5,%zmm10,%zmm7 + vpslldq $8,%zmm7,%zmm7 + vpxorq %zmm7,%zmm5,%zmm5 + + + + vpclmulqdq $0x00,%zmm5,%zmm10,%zmm7 + vpsrldq $4,%zmm7,%zmm7 + vpclmulqdq $0x10,%zmm5,%zmm10,%zmm5 + vpslldq $4,%zmm5,%zmm5 + + vpternlogq $0x96,%zmm7,%zmm6,%zmm5 + + vmovdqu64 %zmm5,384(%rsp) + + vpclmulqdq $0x11,%zmm3,%zmm4,%zmm6 + vpclmulqdq $0x00,%zmm3,%zmm4,%zmm7 + vpclmulqdq $0x01,%zmm3,%zmm4,%zmm10 + vpclmulqdq $0x10,%zmm3,%zmm4,%zmm4 + vpxorq %zmm10,%zmm4,%zmm4 + + vpsrldq $8,%zmm4,%zmm10 + vpslldq $8,%zmm4,%zmm4 + vpxorq %zmm10,%zmm6,%zmm6 + vpxorq %zmm7,%zmm4,%zmm4 + + + + vmovdqu64 POLY2(%rip),%zmm10 + + vpclmulqdq $0x01,%zmm4,%zmm10,%zmm7 + vpslldq $8,%zmm7,%zmm7 + vpxorq %zmm7,%zmm4,%zmm4 + + + + vpclmulqdq $0x00,%zmm4,%zmm10,%zmm7 + vpsrldq $4,%zmm7,%zmm7 + vpclmulqdq $0x10,%zmm4,%zmm10,%zmm4 + vpslldq $4,%zmm4,%zmm4 + + vpternlogq $0x96,%zmm7,%zmm6,%zmm4 + + vmovdqu64 %zmm4,320(%rsp) + + vpclmulqdq $0x11,%zmm3,%zmm5,%zmm6 + vpclmulqdq $0x00,%zmm3,%zmm5,%zmm7 + vpclmulqdq $0x01,%zmm3,%zmm5,%zmm10 + vpclmulqdq $0x10,%zmm3,%zmm5,%zmm5 + vpxorq %zmm10,%zmm5,%zmm5 + + vpsrldq $8,%zmm5,%zmm10 + vpslldq $8,%zmm5,%zmm5 + vpxorq %zmm10,%zmm6,%zmm6 + vpxorq %zmm7,%zmm5,%zmm5 + + + + vmovdqu64 POLY2(%rip),%zmm10 + + vpclmulqdq $0x01,%zmm5,%zmm10,%zmm7 + vpslldq $8,%zmm7,%zmm7 + vpxorq %zmm7,%zmm5,%zmm5 + + + + vpclmulqdq $0x00,%zmm5,%zmm10,%zmm7 + vpsrldq $4,%zmm7,%zmm7 + vpclmulqdq $0x10,%zmm5,%zmm10,%zmm5 + vpslldq $4,%zmm5,%zmm5 + + vpternlogq $0x96,%zmm7,%zmm6,%zmm5 + + vmovdqu64 %zmm5,256(%rsp) +.L_skip_hkeys_precomputation_932: + movq $1,%r14 + andl $~15,%r10d + movl $512,%ebx + subl %r10d,%ebx + movl %r8d,%r10d + addl $15,%r10d + shrl $4,%r10d + je .L_last_num_blocks_is_0_933 + + cmpl $8,%r10d + je .L_last_num_blocks_is_8_933 + jb .L_last_num_blocks_is_7_1_933 + + + cmpl $12,%r10d + je .L_last_num_blocks_is_12_933 + jb .L_last_num_blocks_is_11_9_933 + + + cmpl $15,%r10d + je .L_last_num_blocks_is_15_933 + ja .L_last_num_blocks_is_16_933 + cmpl $14,%r10d + je .L_last_num_blocks_is_14_933 + jmp .L_last_num_blocks_is_13_933 + +.L_last_num_blocks_is_11_9_933: + + cmpl $10,%r10d + je .L_last_num_blocks_is_10_933 + ja .L_last_num_blocks_is_11_933 + jmp .L_last_num_blocks_is_9_933 + +.L_last_num_blocks_is_7_1_933: + cmpl $4,%r10d + je .L_last_num_blocks_is_4_933 + jb .L_last_num_blocks_is_3_1_933 + + cmpl $6,%r10d + ja .L_last_num_blocks_is_7_933 + je .L_last_num_blocks_is_6_933 + jmp .L_last_num_blocks_is_5_933 + +.L_last_num_blocks_is_3_1_933: + + cmpl $2,%r10d + ja .L_last_num_blocks_is_3_933 + je .L_last_num_blocks_is_2_933 +.L_last_num_blocks_is_1_933: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $255,%r15d + jae .L_16_blocks_overflow_934 + vpaddd %xmm28,%xmm2,%xmm0 + jmp .L_16_blocks_ok_934 + +.L_16_blocks_overflow_934: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %xmm29,%xmm0,%xmm0 +.L_16_blocks_ok_934: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $0,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%xmm17{%k1}{z} + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %xmm31,%xmm0,%xmm0 + vaesenclast %xmm30,%xmm0,%xmm0 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti32x4 $0,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %xmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm17,%zmm17{%k1}{z} + vpshufb %xmm29,%xmm17,%xmm17 + vextracti32x4 $0,%zmm17,%xmm7 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_935 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm17,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm17,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm17,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm17,%xmm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_935 +.L_small_initial_partial_block_935: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + + + vpsrldq $8,%zmm26,%zmm0 + vpslldq $8,%zmm26,%zmm3 + vpxorq %zmm0,%zmm24,%zmm24 + vpxorq %zmm3,%zmm25,%zmm25 + vextracti64x4 $1,%zmm24,%ymm0 + vpxorq %ymm0,%ymm24,%ymm24 + vextracti32x4 $1,%ymm24,%xmm0 + vpxorq %xmm0,%xmm24,%xmm24 + vextracti64x4 $1,%zmm25,%ymm3 + vpxorq %ymm3,%ymm25,%ymm25 + vextracti32x4 $1,%ymm25,%xmm3 + vpxorq %xmm3,%xmm25,%xmm25 + vmovdqa64 POLY2(%rip),%xmm0 + + + vpclmulqdq $0x01,%xmm25,%xmm0,%xmm3 + vpslldq $8,%xmm3,%xmm3 + vpxorq %xmm3,%xmm25,%xmm3 + + + vpclmulqdq $0x00,%xmm3,%xmm0,%xmm4 + vpsrldq $4,%xmm4,%xmm4 + vpclmulqdq $0x10,%xmm3,%xmm0,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm24,%xmm4,%xmm14 + + + + + + + + + + + + + vpxorq %xmm7,%xmm14,%xmm14 + + jmp .L_after_reduction_935 +.L_small_initial_compute_done_935: +.L_after_reduction_935: + jmp .L_last_blocks_done_933 +.L_last_num_blocks_is_2_933: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $254,%r15d + jae .L_16_blocks_overflow_936 + vpaddd %ymm28,%ymm2,%ymm0 + jmp .L_16_blocks_ok_936 + +.L_16_blocks_overflow_936: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %ymm29,%ymm0,%ymm0 +.L_16_blocks_ok_936: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $1,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%ymm17{%k1}{z} + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %ymm31,%ymm0,%ymm0 + vaesenclast %ymm30,%ymm0,%ymm0 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %ymm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm17,%zmm17{%k1}{z} + vpshufb %ymm29,%ymm17,%ymm17 + vextracti32x4 $1,%zmm17,%xmm7 + subq $16 * (2 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_937 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm17,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm17,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm17,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm17,%ymm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_937 +.L_small_initial_partial_block_937: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm17,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm17,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm17,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm17,%xmm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_937: + + orq %r8,%r8 + je .L_after_reduction_937 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_937: + jmp .L_last_blocks_done_933 +.L_last_num_blocks_is_3_933: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $253,%r15d + jae .L_16_blocks_overflow_938 + vpaddd %zmm28,%zmm2,%zmm0 + jmp .L_16_blocks_ok_938 + +.L_16_blocks_overflow_938: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %zmm29,%zmm0,%zmm0 +.L_16_blocks_ok_938: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $2,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm0,%zmm0 + vpxorq %zmm17,%zmm0,%zmm0 + vextracti32x4 $2,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm17,%zmm17{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vextracti32x4 $2,%zmm17,%xmm7 + subq $16 * (3 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_939 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_939 +.L_small_initial_partial_block_939: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm17,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm17,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm17,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm17,%ymm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_939: + + orq %r8,%r8 + je .L_after_reduction_939 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_939: + jmp .L_last_blocks_done_933 +.L_last_num_blocks_is_4_933: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $252,%r15d + jae .L_16_blocks_overflow_940 + vpaddd %zmm28,%zmm2,%zmm0 + jmp .L_16_blocks_ok_940 + +.L_16_blocks_overflow_940: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %zmm29,%zmm0,%zmm0 +.L_16_blocks_ok_940: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $3,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm0,%zmm0 + vpxorq %zmm17,%zmm0,%zmm0 + vextracti32x4 $3,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm17,%zmm17{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vextracti32x4 $3,%zmm17,%xmm7 + subq $16 * (4 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_941 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_941 +.L_small_initial_partial_block_941: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_941: + + orq %r8,%r8 + je .L_after_reduction_941 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_941: + jmp .L_last_blocks_done_933 +.L_last_num_blocks_is_5_933: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $251,%r15d + jae .L_16_blocks_overflow_942 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %xmm27,%xmm0,%xmm3 + jmp .L_16_blocks_ok_942 + +.L_16_blocks_overflow_942: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %xmm29,%xmm3,%xmm3 +.L_16_blocks_ok_942: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $0,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%xmm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %xmm30,%xmm3,%xmm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %xmm19,%xmm3,%xmm3 + vextracti32x4 $0,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %xmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm19,%zmm19{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %xmm29,%xmm19,%xmm19 + vextracti32x4 $0,%zmm19,%xmm7 + subq $16 * (5 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_943 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm19,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm19,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm19,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm19,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_943 +.L_small_initial_partial_block_943: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_943: + + orq %r8,%r8 + je .L_after_reduction_943 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_943: + jmp .L_last_blocks_done_933 +.L_last_num_blocks_is_6_933: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $250,%r15d + jae .L_16_blocks_overflow_944 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %ymm27,%ymm0,%ymm3 + jmp .L_16_blocks_ok_944 + +.L_16_blocks_overflow_944: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %ymm29,%ymm3,%ymm3 +.L_16_blocks_ok_944: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $1,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%ymm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %ymm30,%ymm3,%ymm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %ymm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm19,%zmm19{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %ymm29,%ymm19,%ymm19 + vextracti32x4 $1,%zmm19,%xmm7 + subq $16 * (6 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_945 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm19,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm19,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm19,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm19,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_945 +.L_small_initial_partial_block_945: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm19,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm19,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm19,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm19,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_945: + + orq %r8,%r8 + je .L_after_reduction_945 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_945: + jmp .L_last_blocks_done_933 +.L_last_num_blocks_is_7_933: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $249,%r15d + jae .L_16_blocks_overflow_946 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + jmp .L_16_blocks_ok_946 + +.L_16_blocks_overflow_946: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 +.L_16_blocks_ok_946: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $2,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti32x4 $2,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm19,%zmm19{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vextracti32x4 $2,%zmm19,%xmm7 + subq $16 * (7 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_947 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_947 +.L_small_initial_partial_block_947: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm19,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm19,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm19,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm19,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_947: + + orq %r8,%r8 + je .L_after_reduction_947 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_947: + jmp .L_last_blocks_done_933 +.L_last_num_blocks_is_8_933: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $248,%r15d + jae .L_16_blocks_overflow_948 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + jmp .L_16_blocks_ok_948 + +.L_16_blocks_overflow_948: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 +.L_16_blocks_ok_948: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $3,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti32x4 $3,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm19,%zmm19{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vextracti32x4 $3,%zmm19,%xmm7 + subq $16 * (8 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_949 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_949 +.L_small_initial_partial_block_949: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_949: + + orq %r8,%r8 + je .L_after_reduction_949 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_949: + jmp .L_last_blocks_done_933 +.L_last_num_blocks_is_9_933: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $247,%r15d + jae .L_16_blocks_overflow_950 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %xmm27,%xmm3,%xmm4 + jmp .L_16_blocks_ok_950 + +.L_16_blocks_overflow_950: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %xmm29,%xmm4,%xmm4 +.L_16_blocks_ok_950: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $0,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%xmm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %xmm30,%xmm4,%xmm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %xmm20,%xmm4,%xmm4 + vextracti32x4 $0,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %xmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm20,%zmm20{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %xmm29,%xmm20,%xmm20 + vextracti32x4 $0,%zmm20,%xmm7 + subq $16 * (9 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_951 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm20,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm20,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm20,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm20,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_951 +.L_small_initial_partial_block_951: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_951: + + orq %r8,%r8 + je .L_after_reduction_951 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_951: + jmp .L_last_blocks_done_933 +.L_last_num_blocks_is_10_933: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $246,%r15d + jae .L_16_blocks_overflow_952 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %ymm27,%ymm3,%ymm4 + jmp .L_16_blocks_ok_952 + +.L_16_blocks_overflow_952: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %ymm29,%ymm4,%ymm4 +.L_16_blocks_ok_952: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $1,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%ymm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %ymm30,%ymm4,%ymm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %ymm20,%ymm4,%ymm4 + vextracti32x4 $1,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %ymm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm20,%zmm20{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %ymm29,%ymm20,%ymm20 + vextracti32x4 $1,%zmm20,%xmm7 + subq $16 * (10 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_953 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm20,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm20,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm20,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm20,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_953 +.L_small_initial_partial_block_953: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm20,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm20,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm20,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm20,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_953: + + orq %r8,%r8 + je .L_after_reduction_953 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_953: + jmp .L_last_blocks_done_933 +.L_last_num_blocks_is_11_933: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $245,%r15d + jae .L_16_blocks_overflow_954 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + jmp .L_16_blocks_ok_954 + +.L_16_blocks_overflow_954: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 +.L_16_blocks_ok_954: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $2,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vextracti32x4 $2,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm20,%zmm20{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %zmm29,%zmm20,%zmm20 + vextracti32x4 $2,%zmm20,%xmm7 + subq $16 * (11 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_955 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_955 +.L_small_initial_partial_block_955: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm20,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm20,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm20,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm20,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_955: + + orq %r8,%r8 + je .L_after_reduction_955 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_955: + jmp .L_last_blocks_done_933 +.L_last_num_blocks_is_12_933: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $244,%r15d + jae .L_16_blocks_overflow_956 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + jmp .L_16_blocks_ok_956 + +.L_16_blocks_overflow_956: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 +.L_16_blocks_ok_956: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $3,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vextracti32x4 $3,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm20,%zmm20{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %zmm29,%zmm20,%zmm20 + vextracti32x4 $3,%zmm20,%xmm7 + subq $16 * (12 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_957 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 160(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_957 +.L_small_initial_partial_block_957: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_957: + + orq %r8,%r8 + je .L_after_reduction_957 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_957: + jmp .L_last_blocks_done_933 +.L_last_num_blocks_is_13_933: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $243,%r15d + jae .L_16_blocks_overflow_958 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %xmm27,%xmm4,%xmm5 + jmp .L_16_blocks_ok_958 + +.L_16_blocks_overflow_958: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %xmm29,%xmm5,%xmm5 +.L_16_blocks_ok_958: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $0,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%xmm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %xmm30,%xmm5,%xmm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %xmm21,%xmm5,%xmm5 + vextracti32x4 $0,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %xmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm21,%zmm21{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %zmm29,%zmm20,%zmm20 + vpshufb %xmm29,%xmm21,%xmm21 + vextracti32x4 $0,%zmm21,%xmm7 + subq $16 * (13 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_959 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 144(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm21,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm21,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm21,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm21,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_959 +.L_small_initial_partial_block_959: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 160(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_959: + + orq %r8,%r8 + je .L_after_reduction_959 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_959: + jmp .L_last_blocks_done_933 +.L_last_num_blocks_is_14_933: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $242,%r15d + jae .L_16_blocks_overflow_960 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %ymm27,%ymm4,%ymm5 + jmp .L_16_blocks_ok_960 + +.L_16_blocks_overflow_960: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %ymm29,%ymm5,%ymm5 +.L_16_blocks_ok_960: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $1,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%ymm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %ymm30,%ymm5,%ymm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %ymm21,%ymm5,%ymm5 + vextracti32x4 $1,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %ymm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm21,%zmm21{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %zmm29,%zmm20,%zmm20 + vpshufb %ymm29,%ymm21,%ymm21 + vextracti32x4 $1,%zmm21,%xmm7 + subq $16 * (14 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_961 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 128(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm21,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm21,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm21,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm21,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_961 +.L_small_initial_partial_block_961: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 144(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm21,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm21,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm21,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm21,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_961: + + orq %r8,%r8 + je .L_after_reduction_961 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_961: + jmp .L_last_blocks_done_933 +.L_last_num_blocks_is_15_933: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $241,%r15d + jae .L_16_blocks_overflow_962 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp .L_16_blocks_ok_962 + +.L_16_blocks_overflow_962: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +.L_16_blocks_ok_962: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $2,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%zmm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + vextracti32x4 $2,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %zmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm21,%zmm21{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %zmm29,%zmm20,%zmm20 + vpshufb %zmm29,%zmm21,%zmm21 + vextracti32x4 $2,%zmm21,%xmm7 + subq $16 * (15 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_963 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 112(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm21,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm21,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm21,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm21,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_963 +.L_small_initial_partial_block_963: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 128(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm21,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm21,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm21,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm21,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_963: + + orq %r8,%r8 + je .L_after_reduction_963 + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_963: + jmp .L_last_blocks_done_933 +.L_last_num_blocks_is_16_933: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $240,%r15d + jae .L_16_blocks_overflow_964 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp .L_16_blocks_ok_964 + +.L_16_blocks_overflow_964: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +.L_16_blocks_ok_964: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $3,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%zmm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + vextracti32x4 $3,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %zmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm21,%zmm21{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %zmm29,%zmm20,%zmm20 + vpshufb %zmm29,%zmm21,%zmm21 + vextracti32x4 $3,%zmm21,%xmm7 + subq $16 * (16 - 1),%r8 +.L_small_initial_partial_block_965: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 112(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm21,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm21,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm21,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm21,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_965: + vpxorq %xmm7,%xmm14,%xmm14 +.L_after_reduction_965: + jmp .L_last_blocks_done_933 +.L_last_num_blocks_is_0_933: + vmovdqa64 768(%rsp),%zmm13 + vpxorq %zmm14,%zmm13,%zmm13 + vmovdqu64 0(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 832(%rsp),%zmm13 + vmovdqu64 64(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + vpxorq %zmm10,%zmm4,%zmm26 + vpxorq %zmm6,%zmm0,%zmm24 + vpxorq %zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + vmovdqa64 896(%rsp),%zmm13 + vmovdqu64 128(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 960(%rsp),%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + + vpternlogq $0x96,%zmm10,%zmm4,%zmm26 + vpternlogq $0x96,%zmm6,%zmm0,%zmm24 + vpternlogq $0x96,%zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + + vpsrldq $8,%zmm26,%zmm0 + vpslldq $8,%zmm26,%zmm3 + vpxorq %zmm0,%zmm24,%zmm24 + vpxorq %zmm3,%zmm25,%zmm25 + vextracti64x4 $1,%zmm24,%ymm0 + vpxorq %ymm0,%ymm24,%ymm24 + vextracti32x4 $1,%ymm24,%xmm0 + vpxorq %xmm0,%xmm24,%xmm24 + vextracti64x4 $1,%zmm25,%ymm3 + vpxorq %ymm3,%ymm25,%ymm25 + vextracti32x4 $1,%ymm25,%xmm3 + vpxorq %xmm3,%xmm25,%xmm25 + vmovdqa64 POLY2(%rip),%xmm4 + + + vpclmulqdq $0x01,%xmm25,%xmm4,%xmm0 + vpslldq $8,%xmm0,%xmm0 + vpxorq %xmm0,%xmm25,%xmm0 + + + vpclmulqdq $0x00,%xmm0,%xmm4,%xmm3 + vpsrldq $4,%xmm3,%xmm3 + vpclmulqdq $0x10,%xmm0,%xmm4,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm24,%xmm3,%xmm14 + +.L_last_blocks_done_933: + vpshufb %xmm29,%xmm2,%xmm2 + jmp .L_ghash_done_821 + +.L_message_below_equal_16_blocks_821: + + + movl %r8d,%r12d + addl $15,%r12d + shrl $4,%r12d + cmpq $8,%r12 + je .L_small_initial_num_blocks_is_8_966 + jl .L_small_initial_num_blocks_is_7_1_966 + + + cmpq $12,%r12 + je .L_small_initial_num_blocks_is_12_966 + jl .L_small_initial_num_blocks_is_11_9_966 + + + cmpq $16,%r12 + je .L_small_initial_num_blocks_is_16_966 + cmpq $15,%r12 + je .L_small_initial_num_blocks_is_15_966 + cmpq $14,%r12 + je .L_small_initial_num_blocks_is_14_966 + jmp .L_small_initial_num_blocks_is_13_966 + +.L_small_initial_num_blocks_is_11_9_966: + + cmpq $11,%r12 + je .L_small_initial_num_blocks_is_11_966 + cmpq $10,%r12 + je .L_small_initial_num_blocks_is_10_966 + jmp .L_small_initial_num_blocks_is_9_966 + +.L_small_initial_num_blocks_is_7_1_966: + cmpq $4,%r12 + je .L_small_initial_num_blocks_is_4_966 + jl .L_small_initial_num_blocks_is_3_1_966 + + cmpq $7,%r12 + je .L_small_initial_num_blocks_is_7_966 + cmpq $6,%r12 + je .L_small_initial_num_blocks_is_6_966 + jmp .L_small_initial_num_blocks_is_5_966 + +.L_small_initial_num_blocks_is_3_1_966: + + cmpq $3,%r12 + je .L_small_initial_num_blocks_is_3_966 + cmpq $2,%r12 + je .L_small_initial_num_blocks_is_2_966 + + + + + +.L_small_initial_num_blocks_is_1_966: + vmovdqa64 SHUF_MASK(%rip),%xmm29 + vpaddd ONE(%rip),%xmm2,%xmm0 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $0,%zmm0,%xmm2 + vpshufb %xmm29,%xmm0,%xmm0 + vmovdqu8 0(%rcx,%r11,1),%xmm6{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %xmm15,%xmm0,%xmm0 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %xmm15,%xmm0,%xmm0 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %xmm15,%xmm0,%xmm0 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %xmm15,%xmm0,%xmm0 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %xmm15,%xmm0,%xmm0 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %xmm15,%xmm0,%xmm0 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %xmm15,%xmm0,%xmm0 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %xmm15,%xmm0,%xmm0 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %xmm15,%xmm0,%xmm0 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %xmm15,%xmm0,%xmm0 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenc %xmm15,%xmm0,%xmm0 + vbroadcastf64x2 176(%rdi),%zmm15 + vaesenc %xmm15,%xmm0,%xmm0 + vbroadcastf64x2 192(%rdi),%zmm15 + vaesenc %xmm15,%xmm0,%xmm0 + vbroadcastf64x2 208(%rdi),%zmm15 + vaesenc %xmm15,%xmm0,%xmm0 + vbroadcastf64x2 224(%rdi),%zmm15 + vaesenclast %xmm15,%xmm0,%xmm0 + vpxorq %xmm6,%xmm0,%xmm0 + vextracti32x4 $0,%zmm0,%xmm12 + movq %r9,%r10 + vmovdqu8 %xmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm0,%zmm0{%k1}{z} + vpshufb %xmm29,%xmm6,%xmm6 + vextracti32x4 $0,%zmm6,%xmm13 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_967 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 336(%rsi),%xmm20 + vpclmulqdq $0x01,%xmm20,%xmm6,%xmm4 + vpclmulqdq $0x10,%xmm20,%xmm6,%xmm5 + vpclmulqdq $0x11,%xmm20,%xmm6,%xmm0 + vpclmulqdq $0x00,%xmm20,%xmm6,%xmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_967 +.L_small_initial_partial_block_967: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + + + + + + + + + + + + vpxorq %xmm13,%xmm14,%xmm14 + + jmp .L_after_reduction_967 +.L_small_initial_compute_done_967: +.L_after_reduction_967: + jmp .L_small_initial_blocks_encrypted_966 +.L_small_initial_num_blocks_is_2_966: + vmovdqa64 SHUF_MASK(%rip),%ymm29 + vshufi64x2 $0,%ymm2,%ymm2,%ymm0 + vpaddd ddq_add_1234(%rip),%ymm0,%ymm0 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $1,%zmm0,%xmm2 + vpshufb %ymm29,%ymm0,%ymm0 + vmovdqu8 0(%rcx,%r11,1),%ymm6{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %ymm15,%ymm0,%ymm0 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %ymm15,%ymm0,%ymm0 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %ymm15,%ymm0,%ymm0 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %ymm15,%ymm0,%ymm0 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %ymm15,%ymm0,%ymm0 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %ymm15,%ymm0,%ymm0 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %ymm15,%ymm0,%ymm0 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %ymm15,%ymm0,%ymm0 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %ymm15,%ymm0,%ymm0 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %ymm15,%ymm0,%ymm0 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenc %ymm15,%ymm0,%ymm0 + vbroadcastf64x2 176(%rdi),%zmm15 + vaesenc %ymm15,%ymm0,%ymm0 + vbroadcastf64x2 192(%rdi),%zmm15 + vaesenc %ymm15,%ymm0,%ymm0 + vbroadcastf64x2 208(%rdi),%zmm15 + vaesenc %ymm15,%ymm0,%ymm0 + vbroadcastf64x2 224(%rdi),%zmm15 + vaesenclast %ymm15,%ymm0,%ymm0 + vpxorq %ymm6,%ymm0,%ymm0 + vextracti32x4 $1,%zmm0,%xmm12 + movq %r9,%r10 + vmovdqu8 %ymm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm0,%zmm0{%k1}{z} + vpshufb %ymm29,%ymm6,%ymm6 + vextracti32x4 $1,%zmm6,%xmm13 + subq $16 * (2 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_968 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 320(%rsi),%ymm20 + vpclmulqdq $0x01,%ymm20,%ymm6,%ymm4 + vpclmulqdq $0x10,%ymm20,%ymm6,%ymm5 + vpclmulqdq $0x11,%ymm20,%ymm6,%ymm0 + vpclmulqdq $0x00,%ymm20,%ymm6,%ymm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_968 +.L_small_initial_partial_block_968: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 336(%rsi),%xmm20 + vpclmulqdq $0x01,%xmm20,%xmm6,%xmm4 + vpclmulqdq $0x10,%xmm20,%xmm6,%xmm5 + vpclmulqdq $0x11,%xmm20,%xmm6,%xmm0 + vpclmulqdq $0x00,%xmm20,%xmm6,%xmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_968: + + orq %r8,%r8 + je .L_after_reduction_968 + vpxorq %xmm13,%xmm14,%xmm14 +.L_after_reduction_968: + jmp .L_small_initial_blocks_encrypted_966 +.L_small_initial_num_blocks_is_3_966: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $2,%zmm0,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vmovdqu8 0(%rcx,%r11,1),%zmm6{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 176(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 192(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 208(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 224(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vpxorq %zmm6,%zmm0,%zmm0 + vextracti32x4 $2,%zmm0,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm0,%zmm0{%k1}{z} + vpshufb %zmm29,%zmm6,%zmm6 + vextracti32x4 $2,%zmm6,%xmm13 + subq $16 * (3 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_969 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 304(%rsi),%ymm20 + vinserti64x2 $2,336(%rsi),%zmm20,%zmm20 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_969 +.L_small_initial_partial_block_969: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 320(%rsi),%ymm20 + vpclmulqdq $0x01,%ymm20,%ymm6,%ymm4 + vpclmulqdq $0x10,%ymm20,%ymm6,%ymm5 + vpclmulqdq $0x11,%ymm20,%ymm6,%ymm0 + vpclmulqdq $0x00,%ymm20,%ymm6,%ymm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_969: + + orq %r8,%r8 + je .L_after_reduction_969 + vpxorq %xmm13,%xmm14,%xmm14 +.L_after_reduction_969: + jmp .L_small_initial_blocks_encrypted_966 +.L_small_initial_num_blocks_is_4_966: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $3,%zmm0,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vmovdqu8 0(%rcx,%r11,1),%zmm6{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 176(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 192(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 208(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 224(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vpxorq %zmm6,%zmm0,%zmm0 + vextracti32x4 $3,%zmm0,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm0,%zmm0{%k1}{z} + vpshufb %zmm29,%zmm6,%zmm6 + vextracti32x4 $3,%zmm6,%xmm13 + subq $16 * (4 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_970 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 288(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm19 + + vpxorq %zmm19,%zmm17,%zmm17 + vpsrldq $8,%zmm17,%zmm4 + vpslldq $8,%zmm17,%zmm5 + vpxorq %zmm4,%zmm15,%zmm0 + vpxorq %zmm5,%zmm16,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_970 +.L_small_initial_partial_block_970: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 304(%rsi),%ymm20 + vinserti64x2 $2,336(%rsi),%zmm20,%zmm20 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_970: + + orq %r8,%r8 + je .L_after_reduction_970 + vpxorq %xmm13,%xmm14,%xmm14 +.L_after_reduction_970: + jmp .L_small_initial_blocks_encrypted_966 +.L_small_initial_num_blocks_is_5_966: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd ddq_add_5678(%rip),%zmm2,%zmm3 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + subq $64,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $0,%zmm3,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %xmm29,%xmm3,%xmm3 + vmovdqu8 0(%rcx,%r11,1),%zmm6 + vmovdqu8 64(%rcx,%r11,1),%xmm7{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %xmm15,%xmm3,%xmm3 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %xmm15,%xmm3,%xmm3 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %xmm15,%xmm3,%xmm3 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %xmm15,%xmm3,%xmm3 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %xmm15,%xmm3,%xmm3 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %xmm15,%xmm3,%xmm3 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %xmm15,%xmm3,%xmm3 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %xmm15,%xmm3,%xmm3 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %xmm15,%xmm3,%xmm3 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %xmm15,%xmm3,%xmm3 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %xmm15,%xmm3,%xmm3 + vbroadcastf64x2 176(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %xmm15,%xmm3,%xmm3 + vbroadcastf64x2 192(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %xmm15,%xmm3,%xmm3 + vbroadcastf64x2 208(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %xmm15,%xmm3,%xmm3 + vbroadcastf64x2 224(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vaesenclast %xmm15,%xmm3,%xmm3 + vpxorq %zmm6,%zmm0,%zmm0 + vpxorq %xmm7,%xmm3,%xmm3 + vextracti32x4 $0,%zmm3,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %xmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm3,%zmm3{%k1}{z} + vpshufb %zmm29,%zmm6,%zmm6 + vpshufb %xmm29,%xmm7,%xmm7 + vextracti32x4 $0,%zmm7,%xmm13 + subq $16 * (5 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_971 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 272(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm19 + vmovdqu64 336(%rsi),%xmm20 + vpclmulqdq $0x01,%xmm20,%xmm7,%xmm4 + vpclmulqdq $0x10,%xmm20,%xmm7,%xmm5 + vpclmulqdq $0x11,%xmm20,%xmm7,%xmm0 + vpclmulqdq $0x00,%xmm20,%xmm7,%xmm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_971 +.L_small_initial_partial_block_971: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 288(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm19 + + vpxorq %zmm19,%zmm17,%zmm17 + vpsrldq $8,%zmm17,%zmm4 + vpslldq $8,%zmm17,%zmm5 + vpxorq %zmm4,%zmm15,%zmm0 + vpxorq %zmm5,%zmm16,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_971: + + orq %r8,%r8 + je .L_after_reduction_971 + vpxorq %xmm13,%xmm14,%xmm14 +.L_after_reduction_971: + jmp .L_small_initial_blocks_encrypted_966 +.L_small_initial_num_blocks_is_6_966: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd ddq_add_5678(%rip),%zmm2,%zmm3 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + subq $64,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $1,%zmm3,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %ymm29,%ymm3,%ymm3 + vmovdqu8 0(%rcx,%r11,1),%zmm6 + vmovdqu8 64(%rcx,%r11,1),%ymm7{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %ymm15,%ymm3,%ymm3 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %ymm15,%ymm3,%ymm3 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %ymm15,%ymm3,%ymm3 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %ymm15,%ymm3,%ymm3 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %ymm15,%ymm3,%ymm3 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %ymm15,%ymm3,%ymm3 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %ymm15,%ymm3,%ymm3 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %ymm15,%ymm3,%ymm3 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %ymm15,%ymm3,%ymm3 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %ymm15,%ymm3,%ymm3 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %ymm15,%ymm3,%ymm3 + vbroadcastf64x2 176(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %ymm15,%ymm3,%ymm3 + vbroadcastf64x2 192(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %ymm15,%ymm3,%ymm3 + vbroadcastf64x2 208(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %ymm15,%ymm3,%ymm3 + vbroadcastf64x2 224(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vaesenclast %ymm15,%ymm3,%ymm3 + vpxorq %zmm6,%zmm0,%zmm0 + vpxorq %ymm7,%ymm3,%ymm3 + vextracti32x4 $1,%zmm3,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %ymm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm3,%zmm3{%k1}{z} + vpshufb %zmm29,%zmm6,%zmm6 + vpshufb %ymm29,%ymm7,%ymm7 + vextracti32x4 $1,%zmm7,%xmm13 + subq $16 * (6 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_972 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 256(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm19 + vmovdqu64 320(%rsi),%ymm20 + vpclmulqdq $0x01,%ymm20,%ymm7,%ymm4 + vpclmulqdq $0x10,%ymm20,%ymm7,%ymm5 + vpclmulqdq $0x11,%ymm20,%ymm7,%ymm0 + vpclmulqdq $0x00,%ymm20,%ymm7,%ymm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_972 +.L_small_initial_partial_block_972: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 272(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm19 + vmovdqu64 336(%rsi),%xmm20 + vpclmulqdq $0x01,%xmm20,%xmm7,%xmm4 + vpclmulqdq $0x10,%xmm20,%xmm7,%xmm5 + vpclmulqdq $0x11,%xmm20,%xmm7,%xmm0 + vpclmulqdq $0x00,%xmm20,%xmm7,%xmm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_972: + + orq %r8,%r8 + je .L_after_reduction_972 + vpxorq %xmm13,%xmm14,%xmm14 +.L_after_reduction_972: + jmp .L_small_initial_blocks_encrypted_966 +.L_small_initial_num_blocks_is_7_966: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd ddq_add_5678(%rip),%zmm2,%zmm3 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + subq $64,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $2,%zmm3,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vmovdqu8 0(%rcx,%r11,1),%zmm6 + vmovdqu8 64(%rcx,%r11,1),%zmm7{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 176(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 192(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 208(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 224(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vaesenclast %zmm15,%zmm3,%zmm3 + vpxorq %zmm6,%zmm0,%zmm0 + vpxorq %zmm7,%zmm3,%zmm3 + vextracti32x4 $2,%zmm3,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm3,%zmm3{%k1}{z} + vpshufb %zmm29,%zmm6,%zmm6 + vpshufb %zmm29,%zmm7,%zmm7 + vextracti32x4 $2,%zmm7,%xmm13 + subq $16 * (7 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_973 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 240(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm19 + vmovdqu64 304(%rsi),%ymm20 + vinserti64x2 $2,336(%rsi),%zmm20,%zmm20 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm5 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_973 +.L_small_initial_partial_block_973: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 256(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm19 + vmovdqu64 320(%rsi),%ymm20 + vpclmulqdq $0x01,%ymm20,%ymm7,%ymm4 + vpclmulqdq $0x10,%ymm20,%ymm7,%ymm5 + vpclmulqdq $0x11,%ymm20,%ymm7,%ymm0 + vpclmulqdq $0x00,%ymm20,%ymm7,%ymm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_973: + + orq %r8,%r8 + je .L_after_reduction_973 + vpxorq %xmm13,%xmm14,%xmm14 +.L_after_reduction_973: + jmp .L_small_initial_blocks_encrypted_966 +.L_small_initial_num_blocks_is_8_966: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd ddq_add_5678(%rip),%zmm2,%zmm3 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + subq $64,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $3,%zmm3,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vmovdqu8 0(%rcx,%r11,1),%zmm6 + vmovdqu8 64(%rcx,%r11,1),%zmm7{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 176(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 192(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 208(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 224(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vaesenclast %zmm15,%zmm3,%zmm3 + vpxorq %zmm6,%zmm0,%zmm0 + vpxorq %zmm7,%zmm3,%zmm3 + vextracti32x4 $3,%zmm3,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm3,%zmm3{%k1}{z} + vpshufb %zmm29,%zmm6,%zmm6 + vpshufb %zmm29,%zmm7,%zmm7 + vextracti32x4 $3,%zmm7,%xmm13 + subq $16 * (8 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_974 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 224(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 288(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vpxorq %zmm15,%zmm0,%zmm15 + vpxorq %zmm16,%zmm3,%zmm16 + vpxorq %zmm17,%zmm4,%zmm17 + vpxorq %zmm19,%zmm5,%zmm19 + + vpxorq %zmm19,%zmm17,%zmm17 + vpsrldq $8,%zmm17,%zmm4 + vpslldq $8,%zmm17,%zmm5 + vpxorq %zmm4,%zmm15,%zmm0 + vpxorq %zmm5,%zmm16,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_974 +.L_small_initial_partial_block_974: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 240(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm19 + vmovdqu64 304(%rsi),%ymm20 + vinserti64x2 $2,336(%rsi),%zmm20,%zmm20 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm5 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_974: + + orq %r8,%r8 + je .L_after_reduction_974 + vpxorq %xmm13,%xmm14,%xmm14 +.L_after_reduction_974: + jmp .L_small_initial_blocks_encrypted_966 +.L_small_initial_num_blocks_is_9_966: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd ddq_add_5678(%rip),%zmm2,%zmm3 + vpaddd ddq_add_8888(%rip),%zmm0,%zmm4 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + subq $128,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $0,%zmm4,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %xmm29,%xmm4,%xmm4 + vmovdqu8 0(%rcx,%r11,1),%zmm6 + vmovdqu8 64(%rcx,%r11,1),%zmm7 + vmovdqu8 128(%rcx,%r11,1),%xmm10{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm15,%zmm3,%zmm3 + vpxorq %xmm15,%xmm4,%xmm4 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %xmm15,%xmm4,%xmm4 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %xmm15,%xmm4,%xmm4 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %xmm15,%xmm4,%xmm4 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %xmm15,%xmm4,%xmm4 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %xmm15,%xmm4,%xmm4 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %xmm15,%xmm4,%xmm4 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %xmm15,%xmm4,%xmm4 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %xmm15,%xmm4,%xmm4 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %xmm15,%xmm4,%xmm4 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %xmm15,%xmm4,%xmm4 + vbroadcastf64x2 176(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %xmm15,%xmm4,%xmm4 + vbroadcastf64x2 192(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %xmm15,%xmm4,%xmm4 + vbroadcastf64x2 208(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %xmm15,%xmm4,%xmm4 + vbroadcastf64x2 224(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vaesenclast %zmm15,%zmm3,%zmm3 + vaesenclast %xmm15,%xmm4,%xmm4 + vpxorq %zmm6,%zmm0,%zmm0 + vpxorq %zmm7,%zmm3,%zmm3 + vpxorq %xmm10,%xmm4,%xmm4 + vextracti32x4 $0,%zmm4,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %xmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm4,%zmm4{%k1}{z} + vpshufb %zmm29,%zmm6,%zmm6 + vpshufb %zmm29,%zmm7,%zmm7 + vpshufb %xmm29,%xmm10,%xmm10 + vextracti32x4 $0,%zmm10,%xmm13 + subq $16 * (9 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_975 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 208(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 272(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vpxorq %zmm15,%zmm0,%zmm15 + vpxorq %zmm16,%zmm3,%zmm16 + vpxorq %zmm17,%zmm4,%zmm17 + vpxorq %zmm19,%zmm5,%zmm19 + vmovdqu64 336(%rsi),%xmm20 + vpclmulqdq $0x01,%xmm20,%xmm10,%xmm4 + vpclmulqdq $0x10,%xmm20,%xmm10,%xmm5 + vpclmulqdq $0x11,%xmm20,%xmm10,%xmm0 + vpclmulqdq $0x00,%xmm20,%xmm10,%xmm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_975 +.L_small_initial_partial_block_975: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 224(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 288(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vpxorq %zmm15,%zmm0,%zmm15 + vpxorq %zmm16,%zmm3,%zmm16 + vpxorq %zmm17,%zmm4,%zmm17 + vpxorq %zmm19,%zmm5,%zmm19 + + vpxorq %zmm19,%zmm17,%zmm17 + vpsrldq $8,%zmm17,%zmm4 + vpslldq $8,%zmm17,%zmm5 + vpxorq %zmm4,%zmm15,%zmm0 + vpxorq %zmm5,%zmm16,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_975: + + orq %r8,%r8 + je .L_after_reduction_975 + vpxorq %xmm13,%xmm14,%xmm14 +.L_after_reduction_975: + jmp .L_small_initial_blocks_encrypted_966 +.L_small_initial_num_blocks_is_10_966: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd ddq_add_5678(%rip),%zmm2,%zmm3 + vpaddd ddq_add_8888(%rip),%zmm0,%zmm4 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + subq $128,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $1,%zmm4,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %ymm29,%ymm4,%ymm4 + vmovdqu8 0(%rcx,%r11,1),%zmm6 + vmovdqu8 64(%rcx,%r11,1),%zmm7 + vmovdqu8 128(%rcx,%r11,1),%ymm10{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm15,%zmm3,%zmm3 + vpxorq %ymm15,%ymm4,%ymm4 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %ymm15,%ymm4,%ymm4 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %ymm15,%ymm4,%ymm4 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %ymm15,%ymm4,%ymm4 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %ymm15,%ymm4,%ymm4 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %ymm15,%ymm4,%ymm4 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %ymm15,%ymm4,%ymm4 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %ymm15,%ymm4,%ymm4 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %ymm15,%ymm4,%ymm4 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %ymm15,%ymm4,%ymm4 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %ymm15,%ymm4,%ymm4 + vbroadcastf64x2 176(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %ymm15,%ymm4,%ymm4 + vbroadcastf64x2 192(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %ymm15,%ymm4,%ymm4 + vbroadcastf64x2 208(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %ymm15,%ymm4,%ymm4 + vbroadcastf64x2 224(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vaesenclast %zmm15,%zmm3,%zmm3 + vaesenclast %ymm15,%ymm4,%ymm4 + vpxorq %zmm6,%zmm0,%zmm0 + vpxorq %zmm7,%zmm3,%zmm3 + vpxorq %ymm10,%ymm4,%ymm4 + vextracti32x4 $1,%zmm4,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %ymm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm4,%zmm4{%k1}{z} + vpshufb %zmm29,%zmm6,%zmm6 + vpshufb %zmm29,%zmm7,%zmm7 + vpshufb %ymm29,%ymm10,%ymm10 + vextracti32x4 $1,%zmm10,%xmm13 + subq $16 * (10 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_976 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 192(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 256(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vpxorq %zmm15,%zmm0,%zmm15 + vpxorq %zmm16,%zmm3,%zmm16 + vpxorq %zmm17,%zmm4,%zmm17 + vpxorq %zmm19,%zmm5,%zmm19 + vmovdqu64 320(%rsi),%ymm20 + vpclmulqdq $0x01,%ymm20,%ymm10,%ymm4 + vpclmulqdq $0x10,%ymm20,%ymm10,%ymm5 + vpclmulqdq $0x11,%ymm20,%ymm10,%ymm0 + vpclmulqdq $0x00,%ymm20,%ymm10,%ymm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_976 +.L_small_initial_partial_block_976: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 208(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 272(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vpxorq %zmm15,%zmm0,%zmm15 + vpxorq %zmm16,%zmm3,%zmm16 + vpxorq %zmm17,%zmm4,%zmm17 + vpxorq %zmm19,%zmm5,%zmm19 + vmovdqu64 336(%rsi),%xmm20 + vpclmulqdq $0x01,%xmm20,%xmm10,%xmm4 + vpclmulqdq $0x10,%xmm20,%xmm10,%xmm5 + vpclmulqdq $0x11,%xmm20,%xmm10,%xmm0 + vpclmulqdq $0x00,%xmm20,%xmm10,%xmm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_976: + + orq %r8,%r8 + je .L_after_reduction_976 + vpxorq %xmm13,%xmm14,%xmm14 +.L_after_reduction_976: + jmp .L_small_initial_blocks_encrypted_966 +.L_small_initial_num_blocks_is_11_966: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd ddq_add_5678(%rip),%zmm2,%zmm3 + vpaddd ddq_add_8888(%rip),%zmm0,%zmm4 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + subq $128,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $2,%zmm4,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vmovdqu8 0(%rcx,%r11,1),%zmm6 + vmovdqu8 64(%rcx,%r11,1),%zmm7 + vmovdqu8 128(%rcx,%r11,1),%zmm10{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm15,%zmm3,%zmm3 + vpxorq %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 176(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 192(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 208(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 224(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vaesenclast %zmm15,%zmm3,%zmm3 + vaesenclast %zmm15,%zmm4,%zmm4 + vpxorq %zmm6,%zmm0,%zmm0 + vpxorq %zmm7,%zmm3,%zmm3 + vpxorq %zmm10,%zmm4,%zmm4 + vextracti32x4 $2,%zmm4,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm4,%zmm4{%k1}{z} + vpshufb %zmm29,%zmm6,%zmm6 + vpshufb %zmm29,%zmm7,%zmm7 + vpshufb %zmm29,%zmm10,%zmm10 + vextracti32x4 $2,%zmm10,%xmm13 + subq $16 * (11 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_977 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 176(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 240(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vpxorq %zmm15,%zmm0,%zmm15 + vpxorq %zmm16,%zmm3,%zmm16 + vpxorq %zmm17,%zmm4,%zmm17 + vpxorq %zmm19,%zmm5,%zmm19 + vmovdqu64 304(%rsi),%ymm20 + vinserti64x2 $2,336(%rsi),%zmm20,%zmm20 + vpclmulqdq $0x01,%zmm20,%zmm10,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm10,%zmm5 + vpclmulqdq $0x11,%zmm20,%zmm10,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm10,%zmm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_977 +.L_small_initial_partial_block_977: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 192(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 256(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vpxorq %zmm15,%zmm0,%zmm15 + vpxorq %zmm16,%zmm3,%zmm16 + vpxorq %zmm17,%zmm4,%zmm17 + vpxorq %zmm19,%zmm5,%zmm19 + vmovdqu64 320(%rsi),%ymm20 + vpclmulqdq $0x01,%ymm20,%ymm10,%ymm4 + vpclmulqdq $0x10,%ymm20,%ymm10,%ymm5 + vpclmulqdq $0x11,%ymm20,%ymm10,%ymm0 + vpclmulqdq $0x00,%ymm20,%ymm10,%ymm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_977: + + orq %r8,%r8 + je .L_after_reduction_977 + vpxorq %xmm13,%xmm14,%xmm14 +.L_after_reduction_977: + jmp .L_small_initial_blocks_encrypted_966 +.L_small_initial_num_blocks_is_12_966: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd ddq_add_5678(%rip),%zmm2,%zmm3 + vpaddd ddq_add_8888(%rip),%zmm0,%zmm4 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + subq $128,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $3,%zmm4,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vmovdqu8 0(%rcx,%r11,1),%zmm6 + vmovdqu8 64(%rcx,%r11,1),%zmm7 + vmovdqu8 128(%rcx,%r11,1),%zmm10{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm15,%zmm3,%zmm3 + vpxorq %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 176(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 192(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 208(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 224(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vaesenclast %zmm15,%zmm3,%zmm3 + vaesenclast %zmm15,%zmm4,%zmm4 + vpxorq %zmm6,%zmm0,%zmm0 + vpxorq %zmm7,%zmm3,%zmm3 + vpxorq %zmm10,%zmm4,%zmm4 + vextracti32x4 $3,%zmm4,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm4,%zmm4{%k1}{z} + vpshufb %zmm29,%zmm6,%zmm6 + vpshufb %zmm29,%zmm7,%zmm7 + vpshufb %zmm29,%zmm10,%zmm10 + vextracti32x4 $3,%zmm10,%xmm13 + subq $16 * (12 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_978 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 160(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 224(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vmovdqu64 288(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x00,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm0,%zmm6,%zmm15 + vpternlogq $0x96,%zmm3,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x10,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm4,%zmm6,%zmm17 + vpternlogq $0x96,%zmm5,%zmm7,%zmm19 + + vpxorq %zmm19,%zmm17,%zmm17 + vpsrldq $8,%zmm17,%zmm4 + vpslldq $8,%zmm17,%zmm5 + vpxorq %zmm4,%zmm15,%zmm0 + vpxorq %zmm5,%zmm16,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_978 +.L_small_initial_partial_block_978: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 176(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 240(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vpxorq %zmm15,%zmm0,%zmm15 + vpxorq %zmm16,%zmm3,%zmm16 + vpxorq %zmm17,%zmm4,%zmm17 + vpxorq %zmm19,%zmm5,%zmm19 + vmovdqu64 304(%rsi),%ymm20 + vinserti64x2 $2,336(%rsi),%zmm20,%zmm20 + vpclmulqdq $0x01,%zmm20,%zmm10,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm10,%zmm5 + vpclmulqdq $0x11,%zmm20,%zmm10,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm10,%zmm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_978: + + orq %r8,%r8 + je .L_after_reduction_978 + vpxorq %xmm13,%xmm14,%xmm14 +.L_after_reduction_978: + jmp .L_small_initial_blocks_encrypted_966 +.L_small_initial_num_blocks_is_13_966: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd ddq_add_5678(%rip),%zmm2,%zmm3 + vpaddd ddq_add_8888(%rip),%zmm0,%zmm4 + vpaddd ddq_add_8888(%rip),%zmm3,%zmm5 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + subq $192,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $0,%zmm5,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %xmm29,%xmm5,%xmm5 + vmovdqu8 0(%rcx,%r11,1),%zmm6 + vmovdqu8 64(%rcx,%r11,1),%zmm7 + vmovdqu8 128(%rcx,%r11,1),%zmm10 + vmovdqu8 192(%rcx,%r11,1),%xmm11{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm15,%zmm3,%zmm3 + vpxorq %zmm15,%zmm4,%zmm4 + vpxorq %xmm15,%xmm5,%xmm5 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %xmm15,%xmm5,%xmm5 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %xmm15,%xmm5,%xmm5 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %xmm15,%xmm5,%xmm5 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %xmm15,%xmm5,%xmm5 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %xmm15,%xmm5,%xmm5 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %xmm15,%xmm5,%xmm5 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %xmm15,%xmm5,%xmm5 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %xmm15,%xmm5,%xmm5 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %xmm15,%xmm5,%xmm5 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %xmm15,%xmm5,%xmm5 + vbroadcastf64x2 176(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %xmm15,%xmm5,%xmm5 + vbroadcastf64x2 192(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %xmm15,%xmm5,%xmm5 + vbroadcastf64x2 208(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %xmm15,%xmm5,%xmm5 + vbroadcastf64x2 224(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vaesenclast %zmm15,%zmm3,%zmm3 + vaesenclast %zmm15,%zmm4,%zmm4 + vaesenclast %xmm15,%xmm5,%xmm5 + vpxorq %zmm6,%zmm0,%zmm0 + vpxorq %zmm7,%zmm3,%zmm3 + vpxorq %zmm10,%zmm4,%zmm4 + vpxorq %xmm11,%xmm5,%xmm5 + vextracti32x4 $0,%zmm5,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %xmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm5,%zmm5{%k1}{z} + vpshufb %zmm29,%zmm6,%zmm6 + vpshufb %zmm29,%zmm7,%zmm7 + vpshufb %zmm29,%zmm10,%zmm10 + vpshufb %xmm29,%xmm11,%xmm11 + vextracti32x4 $0,%zmm11,%xmm13 + subq $16 * (13 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_979 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 144(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 208(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vmovdqu64 272(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x00,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm0,%zmm6,%zmm15 + vpternlogq $0x96,%zmm3,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x10,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm4,%zmm6,%zmm17 + vpternlogq $0x96,%zmm5,%zmm7,%zmm19 + vmovdqu64 336(%rsi),%xmm20 + vpclmulqdq $0x01,%xmm20,%xmm11,%xmm4 + vpclmulqdq $0x10,%xmm20,%xmm11,%xmm5 + vpclmulqdq $0x11,%xmm20,%xmm11,%xmm0 + vpclmulqdq $0x00,%xmm20,%xmm11,%xmm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_979 +.L_small_initial_partial_block_979: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 160(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 224(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vmovdqu64 288(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x00,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm0,%zmm6,%zmm15 + vpternlogq $0x96,%zmm3,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x10,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm4,%zmm6,%zmm17 + vpternlogq $0x96,%zmm5,%zmm7,%zmm19 + + vpxorq %zmm19,%zmm17,%zmm17 + vpsrldq $8,%zmm17,%zmm4 + vpslldq $8,%zmm17,%zmm5 + vpxorq %zmm4,%zmm15,%zmm0 + vpxorq %zmm5,%zmm16,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_979: + + orq %r8,%r8 + je .L_after_reduction_979 + vpxorq %xmm13,%xmm14,%xmm14 +.L_after_reduction_979: + jmp .L_small_initial_blocks_encrypted_966 +.L_small_initial_num_blocks_is_14_966: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd ddq_add_5678(%rip),%zmm2,%zmm3 + vpaddd ddq_add_8888(%rip),%zmm0,%zmm4 + vpaddd ddq_add_8888(%rip),%zmm3,%zmm5 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + subq $192,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $1,%zmm5,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %ymm29,%ymm5,%ymm5 + vmovdqu8 0(%rcx,%r11,1),%zmm6 + vmovdqu8 64(%rcx,%r11,1),%zmm7 + vmovdqu8 128(%rcx,%r11,1),%zmm10 + vmovdqu8 192(%rcx,%r11,1),%ymm11{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm15,%zmm3,%zmm3 + vpxorq %zmm15,%zmm4,%zmm4 + vpxorq %ymm15,%ymm5,%ymm5 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %ymm15,%ymm5,%ymm5 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %ymm15,%ymm5,%ymm5 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %ymm15,%ymm5,%ymm5 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %ymm15,%ymm5,%ymm5 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %ymm15,%ymm5,%ymm5 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %ymm15,%ymm5,%ymm5 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %ymm15,%ymm5,%ymm5 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %ymm15,%ymm5,%ymm5 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %ymm15,%ymm5,%ymm5 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %ymm15,%ymm5,%ymm5 + vbroadcastf64x2 176(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %ymm15,%ymm5,%ymm5 + vbroadcastf64x2 192(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %ymm15,%ymm5,%ymm5 + vbroadcastf64x2 208(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %ymm15,%ymm5,%ymm5 + vbroadcastf64x2 224(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vaesenclast %zmm15,%zmm3,%zmm3 + vaesenclast %zmm15,%zmm4,%zmm4 + vaesenclast %ymm15,%ymm5,%ymm5 + vpxorq %zmm6,%zmm0,%zmm0 + vpxorq %zmm7,%zmm3,%zmm3 + vpxorq %zmm10,%zmm4,%zmm4 + vpxorq %ymm11,%ymm5,%ymm5 + vextracti32x4 $1,%zmm5,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %ymm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm5,%zmm5{%k1}{z} + vpshufb %zmm29,%zmm6,%zmm6 + vpshufb %zmm29,%zmm7,%zmm7 + vpshufb %zmm29,%zmm10,%zmm10 + vpshufb %ymm29,%ymm11,%ymm11 + vextracti32x4 $1,%zmm11,%xmm13 + subq $16 * (14 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_980 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 128(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 192(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vmovdqu64 256(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x00,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm0,%zmm6,%zmm15 + vpternlogq $0x96,%zmm3,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x10,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm4,%zmm6,%zmm17 + vpternlogq $0x96,%zmm5,%zmm7,%zmm19 + vmovdqu64 320(%rsi),%ymm20 + vpclmulqdq $0x01,%ymm20,%ymm11,%ymm4 + vpclmulqdq $0x10,%ymm20,%ymm11,%ymm5 + vpclmulqdq $0x11,%ymm20,%ymm11,%ymm0 + vpclmulqdq $0x00,%ymm20,%ymm11,%ymm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_980 +.L_small_initial_partial_block_980: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 144(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 208(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vmovdqu64 272(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x00,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm0,%zmm6,%zmm15 + vpternlogq $0x96,%zmm3,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x10,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm4,%zmm6,%zmm17 + vpternlogq $0x96,%zmm5,%zmm7,%zmm19 + vmovdqu64 336(%rsi),%xmm20 + vpclmulqdq $0x01,%xmm20,%xmm11,%xmm4 + vpclmulqdq $0x10,%xmm20,%xmm11,%xmm5 + vpclmulqdq $0x11,%xmm20,%xmm11,%xmm0 + vpclmulqdq $0x00,%xmm20,%xmm11,%xmm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_980: + + orq %r8,%r8 + je .L_after_reduction_980 + vpxorq %xmm13,%xmm14,%xmm14 +.L_after_reduction_980: + jmp .L_small_initial_blocks_encrypted_966 +.L_small_initial_num_blocks_is_15_966: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd ddq_add_5678(%rip),%zmm2,%zmm3 + vpaddd ddq_add_8888(%rip),%zmm0,%zmm4 + vpaddd ddq_add_8888(%rip),%zmm3,%zmm5 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + subq $192,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $2,%zmm5,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 + vmovdqu8 0(%rcx,%r11,1),%zmm6 + vmovdqu8 64(%rcx,%r11,1),%zmm7 + vmovdqu8 128(%rcx,%r11,1),%zmm10 + vmovdqu8 192(%rcx,%r11,1),%zmm11{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm15,%zmm3,%zmm3 + vpxorq %zmm15,%zmm4,%zmm4 + vpxorq %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 176(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 192(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 208(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 224(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vaesenclast %zmm15,%zmm3,%zmm3 + vaesenclast %zmm15,%zmm4,%zmm4 + vaesenclast %zmm15,%zmm5,%zmm5 + vpxorq %zmm6,%zmm0,%zmm0 + vpxorq %zmm7,%zmm3,%zmm3 + vpxorq %zmm10,%zmm4,%zmm4 + vpxorq %zmm11,%zmm5,%zmm5 + vextracti32x4 $2,%zmm5,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %zmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm5,%zmm5{%k1}{z} + vpshufb %zmm29,%zmm6,%zmm6 + vpshufb %zmm29,%zmm7,%zmm7 + vpshufb %zmm29,%zmm10,%zmm10 + vpshufb %zmm29,%zmm11,%zmm11 + vextracti32x4 $2,%zmm11,%xmm13 + subq $16 * (15 - 1),%r8 + + + cmpq $16,%r8 + jl .L_small_initial_partial_block_981 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 112(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 176(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vmovdqu64 240(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x00,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm0,%zmm6,%zmm15 + vpternlogq $0x96,%zmm3,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x10,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm4,%zmm6,%zmm17 + vpternlogq $0x96,%zmm5,%zmm7,%zmm19 + vmovdqu64 304(%rsi),%ymm20 + vinserti64x2 $2,336(%rsi),%zmm20,%zmm20 + vpclmulqdq $0x01,%zmm20,%zmm11,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm11,%zmm5 + vpclmulqdq $0x11,%zmm20,%zmm11,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm11,%zmm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp .L_small_initial_compute_done_981 +.L_small_initial_partial_block_981: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 128(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 192(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vmovdqu64 256(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x00,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm0,%zmm6,%zmm15 + vpternlogq $0x96,%zmm3,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x10,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm4,%zmm6,%zmm17 + vpternlogq $0x96,%zmm5,%zmm7,%zmm19 + vmovdqu64 320(%rsi),%ymm20 + vpclmulqdq $0x01,%ymm20,%ymm11,%ymm4 + vpclmulqdq $0x10,%ymm20,%ymm11,%ymm5 + vpclmulqdq $0x11,%ymm20,%ymm11,%ymm0 + vpclmulqdq $0x00,%ymm20,%ymm11,%ymm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_981: + + orq %r8,%r8 + je .L_after_reduction_981 + vpxorq %xmm13,%xmm14,%xmm14 +.L_after_reduction_981: + jmp .L_small_initial_blocks_encrypted_966 +.L_small_initial_num_blocks_is_16_966: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd ddq_add_5678(%rip),%zmm2,%zmm3 + vpaddd ddq_add_8888(%rip),%zmm0,%zmm4 + vpaddd ddq_add_8888(%rip),%zmm3,%zmm5 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + subq $192,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $3,%zmm5,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 + vmovdqu8 0(%rcx,%r11,1),%zmm6 + vmovdqu8 64(%rcx,%r11,1),%zmm7 + vmovdqu8 128(%rcx,%r11,1),%zmm10 + vmovdqu8 192(%rcx,%r11,1),%zmm11{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm15,%zmm3,%zmm3 + vpxorq %zmm15,%zmm4,%zmm4 + vpxorq %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 176(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 192(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 208(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 224(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vaesenclast %zmm15,%zmm3,%zmm3 + vaesenclast %zmm15,%zmm4,%zmm4 + vaesenclast %zmm15,%zmm5,%zmm5 + vpxorq %zmm6,%zmm0,%zmm0 + vpxorq %zmm7,%zmm3,%zmm3 + vpxorq %zmm10,%zmm4,%zmm4 + vpxorq %zmm11,%zmm5,%zmm5 + vextracti32x4 $3,%zmm5,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %zmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm5,%zmm5{%k1}{z} + vpshufb %zmm29,%zmm6,%zmm6 + vpshufb %zmm29,%zmm7,%zmm7 + vpshufb %zmm29,%zmm10,%zmm10 + vpshufb %zmm29,%zmm11,%zmm11 + vextracti32x4 $3,%zmm11,%xmm13 + subq $16 * (16 - 1),%r8 +.L_small_initial_partial_block_982: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 112(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 176(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vmovdqu64 240(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x00,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm0,%zmm6,%zmm15 + vpternlogq $0x96,%zmm3,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x10,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm4,%zmm6,%zmm17 + vpternlogq $0x96,%zmm5,%zmm7,%zmm19 + vmovdqu64 304(%rsi),%ymm20 + vinserti64x2 $2,336(%rsi),%zmm20,%zmm20 + vpclmulqdq $0x01,%zmm20,%zmm11,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm11,%zmm5 + vpclmulqdq $0x11,%zmm20,%zmm11,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm11,%zmm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +.L_small_initial_compute_done_982: + vpxorq %xmm13,%xmm14,%xmm14 +.L_after_reduction_982: +.L_small_initial_blocks_encrypted_966: +.L_ghash_done_821: + vmovdqu64 %xmm2,0(%rsi) + vmovdqu64 %xmm14,64(%rsi) +.L_enc_dec_done_821: + jmp .Lexit_gcm_decrypt +.Lexit_gcm_decrypt: + cmpq $256,%r8 + jbe .Lskip_hkeys_cleanup_983 + vpxor %xmm0,%xmm0,%xmm0 + vmovdqa64 %zmm0,0(%rsp) + vmovdqa64 %zmm0,64(%rsp) + vmovdqa64 %zmm0,128(%rsp) + vmovdqa64 %zmm0,192(%rsp) + vmovdqa64 %zmm0,256(%rsp) + vmovdqa64 %zmm0,320(%rsp) + vmovdqa64 %zmm0,384(%rsp) + vmovdqa64 %zmm0,448(%rsp) + vmovdqa64 %zmm0,512(%rsp) + vmovdqa64 %zmm0,576(%rsp) + vmovdqa64 %zmm0,640(%rsp) + vmovdqa64 %zmm0,704(%rsp) +.Lskip_hkeys_cleanup_983: + vzeroupper + leaq (%rbp),%rsp +.cfi_def_cfa_register %rsp + popq %r15 +.cfi_adjust_cfa_offset -8 +.cfi_restore %r15 + popq %r14 +.cfi_adjust_cfa_offset -8 +.cfi_restore %r14 + popq %r13 +.cfi_adjust_cfa_offset -8 +.cfi_restore %r13 + popq %r12 +.cfi_adjust_cfa_offset -8 +.cfi_restore %r12 + popq %rbp +.cfi_adjust_cfa_offset -8 +.cfi_restore %rbp + popq %rbx +.cfi_adjust_cfa_offset -8 +.cfi_restore %rbx + .byte 0xf3,0xc3 +.Ldecrypt_seh_end: +.cfi_endproc +.size ossl_aes_gcm_decrypt_avx512, .-ossl_aes_gcm_decrypt_avx512 +.globl ossl_aes_gcm_finalize_avx512 +.type ossl_aes_gcm_finalize_avx512,@function +.align 32 +ossl_aes_gcm_finalize_avx512: +.cfi_startproc +.byte 243,15,30,250 + vmovdqu 336(%rdi),%xmm2 + vmovdqu 32(%rdi),%xmm3 + vmovdqu 64(%rdi),%xmm4 + + + cmpq $0,%rsi + je .L_partial_done_984 + + vpclmulqdq $0x11,%xmm2,%xmm4,%xmm0 + vpclmulqdq $0x00,%xmm2,%xmm4,%xmm16 + vpclmulqdq $0x01,%xmm2,%xmm4,%xmm17 + vpclmulqdq $0x10,%xmm2,%xmm4,%xmm4 + vpxorq %xmm17,%xmm4,%xmm4 + + vpsrldq $8,%xmm4,%xmm17 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm17,%xmm0,%xmm0 + vpxorq %xmm16,%xmm4,%xmm4 + + + + vmovdqu64 POLY2(%rip),%xmm17 + + vpclmulqdq $0x01,%xmm4,%xmm17,%xmm16 + vpslldq $8,%xmm16,%xmm16 + vpxorq %xmm16,%xmm4,%xmm4 + + + + vpclmulqdq $0x00,%xmm4,%xmm17,%xmm16 + vpsrldq $4,%xmm16,%xmm16 + vpclmulqdq $0x10,%xmm4,%xmm17,%xmm4 + vpslldq $4,%xmm4,%xmm4 + + vpternlogq $0x96,%xmm16,%xmm0,%xmm4 + +.L_partial_done_984: + vmovq 56(%rdi),%xmm5 + vpinsrq $1,48(%rdi),%xmm5,%xmm5 + vpsllq $3,%xmm5,%xmm5 + + vpxor %xmm5,%xmm4,%xmm4 + + vpclmulqdq $0x11,%xmm2,%xmm4,%xmm0 + vpclmulqdq $0x00,%xmm2,%xmm4,%xmm16 + vpclmulqdq $0x01,%xmm2,%xmm4,%xmm17 + vpclmulqdq $0x10,%xmm2,%xmm4,%xmm4 + vpxorq %xmm17,%xmm4,%xmm4 + + vpsrldq $8,%xmm4,%xmm17 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm17,%xmm0,%xmm0 + vpxorq %xmm16,%xmm4,%xmm4 + + + + vmovdqu64 POLY2(%rip),%xmm17 + + vpclmulqdq $0x01,%xmm4,%xmm17,%xmm16 + vpslldq $8,%xmm16,%xmm16 + vpxorq %xmm16,%xmm4,%xmm4 + + + + vpclmulqdq $0x00,%xmm4,%xmm17,%xmm16 + vpsrldq $4,%xmm16,%xmm16 + vpclmulqdq $0x10,%xmm4,%xmm17,%xmm4 + vpslldq $4,%xmm4,%xmm4 + + vpternlogq $0x96,%xmm16,%xmm0,%xmm4 + + vpshufb SHUF_MASK(%rip),%xmm4,%xmm4 + vpxor %xmm4,%xmm3,%xmm3 + +.L_return_T_984: + vmovdqu %xmm3,64(%rdi) +.Labort_finalize: + .byte 0xf3,0xc3 +.cfi_endproc +.size ossl_aes_gcm_finalize_avx512, .-ossl_aes_gcm_finalize_avx512 +.globl ossl_gcm_gmult_avx512 +.hidden ossl_gcm_gmult_avx512 +.type ossl_gcm_gmult_avx512,@function +.align 32 +ossl_gcm_gmult_avx512: +.cfi_startproc +.byte 243,15,30,250 + vmovdqu64 (%rdi),%xmm1 + vmovdqu64 336(%rsi),%xmm2 + + vpclmulqdq $0x11,%xmm2,%xmm1,%xmm3 + vpclmulqdq $0x00,%xmm2,%xmm1,%xmm4 + vpclmulqdq $0x01,%xmm2,%xmm1,%xmm5 + vpclmulqdq $0x10,%xmm2,%xmm1,%xmm1 + vpxorq %xmm5,%xmm1,%xmm1 + + vpsrldq $8,%xmm1,%xmm5 + vpslldq $8,%xmm1,%xmm1 + vpxorq %xmm5,%xmm3,%xmm3 + vpxorq %xmm4,%xmm1,%xmm1 + + + + vmovdqu64 POLY2(%rip),%xmm5 + + vpclmulqdq $0x01,%xmm1,%xmm5,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm1,%xmm1 + + + + vpclmulqdq $0x00,%xmm1,%xmm5,%xmm4 + vpsrldq $4,%xmm4,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm5,%xmm1 + vpslldq $4,%xmm1,%xmm1 + + vpternlogq $0x96,%xmm4,%xmm3,%xmm1 + + vmovdqu64 %xmm1,(%rdi) + vzeroupper +.Labort_gmult: + .byte 0xf3,0xc3 +.cfi_endproc +.size ossl_gcm_gmult_avx512, .-ossl_gcm_gmult_avx512 +.section .rodata +.align 16 +POLY:.quad 0x0000000000000001, 0xC200000000000000 + +.align 64 +POLY2: +.quad 0x00000001C2000000, 0xC200000000000000 +.quad 0x00000001C2000000, 0xC200000000000000 +.quad 0x00000001C2000000, 0xC200000000000000 +.quad 0x00000001C2000000, 0xC200000000000000 + +.align 16 +TWOONE:.quad 0x0000000000000001, 0x0000000100000000 + + + +.align 64 +SHUF_MASK: +.quad 0x08090A0B0C0D0E0F, 0x0001020304050607 +.quad 0x08090A0B0C0D0E0F, 0x0001020304050607 +.quad 0x08090A0B0C0D0E0F, 0x0001020304050607 +.quad 0x08090A0B0C0D0E0F, 0x0001020304050607 + +.align 16 +SHIFT_MASK: +.quad 0x0706050403020100, 0x0f0e0d0c0b0a0908 + +ALL_F: +.quad 0xffffffffffffffff, 0xffffffffffffffff + +ZERO: +.quad 0x0000000000000000, 0x0000000000000000 + +.align 16 +ONE: +.quad 0x0000000000000001, 0x0000000000000000 + +.align 16 +ONEf: +.quad 0x0000000000000000, 0x0100000000000000 + +.align 64 +ddq_add_1234: +.quad 0x0000000000000001, 0x0000000000000000 +.quad 0x0000000000000002, 0x0000000000000000 +.quad 0x0000000000000003, 0x0000000000000000 +.quad 0x0000000000000004, 0x0000000000000000 + +.align 64 +ddq_add_5678: +.quad 0x0000000000000005, 0x0000000000000000 +.quad 0x0000000000000006, 0x0000000000000000 +.quad 0x0000000000000007, 0x0000000000000000 +.quad 0x0000000000000008, 0x0000000000000000 + +.align 64 +ddq_add_4444: +.quad 0x0000000000000004, 0x0000000000000000 +.quad 0x0000000000000004, 0x0000000000000000 +.quad 0x0000000000000004, 0x0000000000000000 +.quad 0x0000000000000004, 0x0000000000000000 + +.align 64 +ddq_add_8888: +.quad 0x0000000000000008, 0x0000000000000000 +.quad 0x0000000000000008, 0x0000000000000000 +.quad 0x0000000000000008, 0x0000000000000000 +.quad 0x0000000000000008, 0x0000000000000000 + +.align 64 +ddq_addbe_1234: +.quad 0x0000000000000000, 0x0100000000000000 +.quad 0x0000000000000000, 0x0200000000000000 +.quad 0x0000000000000000, 0x0300000000000000 +.quad 0x0000000000000000, 0x0400000000000000 + +.align 64 +ddq_addbe_4444: +.quad 0x0000000000000000, 0x0400000000000000 +.quad 0x0000000000000000, 0x0400000000000000 +.quad 0x0000000000000000, 0x0400000000000000 +.quad 0x0000000000000000, 0x0400000000000000 + +.align 64 +byte_len_to_mask_table: +.value 0x0000, 0x0001, 0x0003, 0x0007 +.value 0x000f, 0x001f, 0x003f, 0x007f +.value 0x00ff, 0x01ff, 0x03ff, 0x07ff +.value 0x0fff, 0x1fff, 0x3fff, 0x7fff +.value 0xffff + +.align 64 +byte64_len_to_mask_table: +.quad 0x0000000000000000, 0x0000000000000001 +.quad 0x0000000000000003, 0x0000000000000007 +.quad 0x000000000000000f, 0x000000000000001f +.quad 0x000000000000003f, 0x000000000000007f +.quad 0x00000000000000ff, 0x00000000000001ff +.quad 0x00000000000003ff, 0x00000000000007ff +.quad 0x0000000000000fff, 0x0000000000001fff +.quad 0x0000000000003fff, 0x0000000000007fff +.quad 0x000000000000ffff, 0x000000000001ffff +.quad 0x000000000003ffff, 0x000000000007ffff +.quad 0x00000000000fffff, 0x00000000001fffff +.quad 0x00000000003fffff, 0x00000000007fffff +.quad 0x0000000000ffffff, 0x0000000001ffffff +.quad 0x0000000003ffffff, 0x0000000007ffffff +.quad 0x000000000fffffff, 0x000000001fffffff +.quad 0x000000003fffffff, 0x000000007fffffff +.quad 0x00000000ffffffff, 0x00000001ffffffff +.quad 0x00000003ffffffff, 0x00000007ffffffff +.quad 0x0000000fffffffff, 0x0000001fffffffff +.quad 0x0000003fffffffff, 0x0000007fffffffff +.quad 0x000000ffffffffff, 0x000001ffffffffff +.quad 0x000003ffffffffff, 0x000007ffffffffff +.quad 0x00000fffffffffff, 0x00001fffffffffff +.quad 0x00003fffffffffff, 0x00007fffffffffff +.quad 0x0000ffffffffffff, 0x0001ffffffffffff +.quad 0x0003ffffffffffff, 0x0007ffffffffffff +.quad 0x000fffffffffffff, 0x001fffffffffffff +.quad 0x003fffffffffffff, 0x007fffffffffffff +.quad 0x00ffffffffffffff, 0x01ffffffffffffff +.quad 0x03ffffffffffffff, 0x07ffffffffffffff +.quad 0x0fffffffffffffff, 0x1fffffffffffffff +.quad 0x3fffffffffffffff, 0x7fffffffffffffff +.quad 0xffffffffffffffff + .section ".note.gnu.property", "a" + .p2align 3 + .long 1f - 0f + .long 4f - 1f + .long 5 +0: + # "GNU" encoded with .byte, since .asciz isn't supported + # on Solaris. + .byte 0x47 + .byte 0x4e + .byte 0x55 + .byte 0 +1: + .p2align 3 + .long 0xc0000002 + .long 3f - 2f +2: + .long 3 +3: + .p2align 3 +4: diff --git a/deps/openssl/config/archs/BSD-x86_64/asm/crypto/modes/aesni-gcm-x86_64.s b/deps/openssl/config/archs/BSD-x86_64/asm/crypto/modes/aesni-gcm-x86_64.s index e3813bf7cea0eb..4a7eca0125f321 100644 --- a/deps/openssl/config/archs/BSD-x86_64/asm/crypto/modes/aesni-gcm-x86_64.s +++ b/deps/openssl/config/archs/BSD-x86_64/asm/crypto/modes/aesni-gcm-x86_64.s @@ -774,6 +774,7 @@ aesni_gcm_encrypt: .byte 0xf3,0xc3 .cfi_endproc .size aesni_gcm_encrypt,.-aesni_gcm_encrypt +.section .rodata .align 64 .Lbswap_mask: .byte 15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0 @@ -786,6 +787,7 @@ aesni_gcm_encrypt: .Lone_lsb: .byte 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 .byte 65,69,83,45,78,73,32,71,67,77,32,109,111,100,117,108,101,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 +.previous .align 64 .section ".note.gnu.property", "a" .p2align 3 diff --git a/deps/openssl/config/archs/BSD-x86_64/asm/crypto/modes/ghash-x86_64.s b/deps/openssl/config/archs/BSD-x86_64/asm/crypto/modes/ghash-x86_64.s index 29dd9b13e956c6..894f152b263a52 100644 --- a/deps/openssl/config/archs/BSD-x86_64/asm/crypto/modes/ghash-x86_64.s +++ b/deps/openssl/config/archs/BSD-x86_64/asm/crypto/modes/ghash-x86_64.s @@ -708,6 +708,7 @@ gcm_ghash_4bit: .align 16 gcm_init_clmul: .cfi_startproc +.byte 243,15,30,250 .L_init_clmul: movdqu (%rsi),%xmm2 pshufd $78,%xmm2,%xmm2 @@ -1306,6 +1307,7 @@ gcm_ghash_clmul: .align 32 gcm_init_avx: .cfi_startproc +.byte 243,15,30,250 vzeroupper vmovdqu (%rsi),%xmm2 @@ -1798,6 +1800,7 @@ gcm_ghash_avx: .byte 0xf3,0xc3 .cfi_endproc .size gcm_ghash_avx,.-gcm_ghash_avx +.section .rodata .align 64 .Lbswap_mask: .byte 15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0 @@ -1851,6 +1854,7 @@ gcm_ghash_avx: .byte 71,72,65,83,72,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 .align 64 +.previous .section ".note.gnu.property", "a" .p2align 3 .long 1f - 0f diff --git a/deps/openssl/config/archs/BSD-x86_64/asm/crypto/params_idx.c b/deps/openssl/config/archs/BSD-x86_64/asm/crypto/params_idx.c new file mode 100644 index 00000000000000..9d76ffededc24c --- /dev/null +++ b/deps/openssl/config/archs/BSD-x86_64/asm/crypto/params_idx.c @@ -0,0 +1,3366 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from crypto/params_idx.c.in + * + * Copyright 2023 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + +#include "internal/e_os.h" +#include "internal/param_names.h" +#include + +/* Machine generated TRIE -- generated by util/perl/OpenSSL/paramnames.pm */ +int ossl_param_find_pidx(const char *s) +{ + switch(s[0]) { + default: + break; + case 'a': + switch(s[1]) { + default: + break; + case 'c': + if (strcmp("vp-info", s + 2) == 0) + return PIDX_KDF_PARAM_X942_ACVPINFO; + break; + case 'd': + switch(s[2]) { + default: + break; + case 'd': + if (strcmp("itional-random", s + 3) == 0) + return PIDX_SIGNATURE_PARAM_ADD_RANDOM; + break; + case '\0': + return PIDX_KDF_PARAM_ARGON2_AD; + } + break; + case 'e': + if (strcmp("ad", s + 2) == 0) + return PIDX_CIPHER_PARAM_AEAD; + break; + case 'l': + switch(s[2]) { + default: + break; + case 'g': + switch(s[3]) { + default: + break; + case '_': + if (strcmp("id_param", s + 4) == 0) + return PIDX_CIPHER_PARAM_ALGORITHM_ID_PARAMS_OLD; + break; + case 'i': + if (strcmp("d-absent", s + 4) == 0) + return PIDX_DIGEST_PARAM_ALGID_ABSENT; + break; + case 'o': + switch(s[4]) { + default: + break; + case 'r': + switch(s[5]) { + default: + break; + case 'i': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case 'h': + switch(s[8]) { + default: + break; + case 'm': + switch(s[9]) { + default: + break; + case '-': + switch(s[10]) { + default: + break; + case 'i': + switch(s[11]) { + default: + break; + case 'd': + switch(s[12]) { + default: + break; + case '-': + if (strcmp("params", s + 13) == 0) + return PIDX_ALG_PARAM_ALGORITHM_ID_PARAMS; + break; + case '\0': + return PIDX_ALG_PARAM_ALGORITHM_ID; + } + } + } + } + } + } + } + } + } + } + break; + case 'i': + if (strcmp("as", s + 3) == 0) + return PIDX_STORE_PARAM_ALIAS; + } + break; + case '\0': + return PIDX_PKEY_PARAM_EC_A; + } + break; + case 'b': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("sis-type", s + 2) == 0) + return PIDX_PKEY_PARAM_EC_CHAR2_TYPE; + break; + case 'i': + if (strcmp("ts", s + 2) == 0) + return PIDX_PKEY_PARAM_BITS; + break; + case 'l': + switch(s[2]) { + default: + break; + case 'o': + switch(s[3]) { + default: + break; + case 'c': + switch(s[4]) { + default: + break; + case 'k': + switch(s[5]) { + default: + break; + case '-': + if (strcmp("size", s + 6) == 0) + return PIDX_MAC_PARAM_BLOCK_SIZE; + break; + case '_': + if (strcmp("padding", s + 6) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_BLOCK_PADDING; + break; + case 's': + if (strcmp("ize", s + 6) == 0) + return PIDX_DIGEST_PARAM_BLOCK_SIZE; + } + } + } + } + break; + case 'u': + if (strcmp("ildinfo", s + 2) == 0) + return PIDX_PROV_PARAM_BUILDINFO; + break; + case '\0': + return PIDX_PKEY_PARAM_EC_B; + } + break; + case 'c': + switch(s[1]) { + default: + break; + case '-': + if (strcmp("rounds", s + 2) == 0) + return PIDX_MAC_PARAM_C_ROUNDS; + break; + case 'e': + if (strcmp("kalg", s + 2) == 0) + return PIDX_KDF_PARAM_CEK_ALG; + break; + case 'i': + if (strcmp("pher", s + 2) == 0) + return PIDX_ALG_PARAM_CIPHER; + break; + case 'o': + switch(s[2]) { + default: + break; + case 'f': + if (strcmp("actor", s + 3) == 0) + return PIDX_PKEY_PARAM_EC_COFACTOR; + break; + case 'n': + switch(s[3]) { + default: + break; + case 's': + if (strcmp("tant", s + 4) == 0) + return PIDX_KDF_PARAM_CONSTANT; + break; + case 't': + if (strcmp("ext-string", s + 4) == 0) + return PIDX_SIGNATURE_PARAM_CONTEXT_STRING; + } + } + break; + case 't': + switch(s[2]) { + default: + break; + case 's': + switch(s[3]) { + default: + break; + case '_': + if (strcmp("mode", s + 4) == 0) + return PIDX_CIPHER_PARAM_CTS_MODE; + break; + case '\0': + return PIDX_CIPHER_PARAM_CTS; + } + } + break; + case 'u': + switch(s[2]) { + default: + break; + case 's': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case 'o': + switch(s[5]) { + default: + break; + case 'm': + switch(s[6]) { + default: + break; + case '-': + if (strcmp("iv", s + 7) == 0) + return PIDX_CIPHER_PARAM_CUSTOM_IV; + break; + case '\0': + return PIDX_MAC_PARAM_CUSTOM; + } + } + } + } + } + } + break; + case 'd': + switch(s[1]) { + default: + break; + case '-': + if (strcmp("rounds", s + 2) == 0) + return PIDX_MAC_PARAM_D_ROUNDS; + break; + case 'a': + switch(s[2]) { + default: + break; + case 't': + switch(s[3]) { + default: + break; + case 'a': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 's': + if (strcmp("tructure", s + 6) == 0) + return PIDX_OBJECT_PARAM_DATA_STRUCTURE; + break; + case 't': + if (strcmp("ype", s + 6) == 0) + return PIDX_OBJECT_PARAM_DATA_TYPE; + } + break; + case '\0': + return PIDX_OBJECT_PARAM_DATA; + } + } + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'c': + switch(s[3]) { + default: + break; + case 'o': + if (strcmp("ded-from-explicit", s + 4) == 0) + return PIDX_PKEY_PARAM_EC_DECODED_FROM_EXPLICIT_PARAMS; + break; + case 'r': + if (strcmp("ypt-only", s + 4) == 0) + return PIDX_CIPHER_PARAM_DECRYPT_ONLY; + } + break; + case 'f': + if (strcmp("ault-digest", s + 3) == 0) + return PIDX_PKEY_PARAM_DEFAULT_DIGEST; + break; + case 's': + if (strcmp("c", s + 3) == 0) + return PIDX_OBJECT_PARAM_DESC; + break; + case 't': + if (strcmp("erministic", s + 3) == 0) + return PIDX_SIGNATURE_PARAM_DETERMINISTIC; + } + break; + case 'h': + if (strcmp("kem-ikm", s + 2) == 0) + return PIDX_PKEY_PARAM_DHKEM_IKM; + break; + case 'i': + switch(s[2]) { + default: + break; + case 'g': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case 's': + switch(s[5]) { + default: + break; + case 't': + switch(s[6]) { + default: + break; + case '-': + switch(s[7]) { + default: + break; + case 'c': + if (strcmp("heck", s + 8) == 0) + return PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK; + break; + case 'n': + if (strcmp("oinit", s + 8) == 0) + return PIDX_MAC_PARAM_DIGEST_NOINIT; + break; + case 'o': + if (strcmp("neshot", s + 8) == 0) + return PIDX_MAC_PARAM_DIGEST_ONESHOT; + break; + case 'p': + if (strcmp("rops", s + 8) == 0) + return PIDX_ASYM_CIPHER_PARAM_OAEP_DIGEST_PROPS; + break; + case 's': + if (strcmp("ize", s + 8) == 0) + return PIDX_PKEY_PARAM_DIGEST_SIZE; + } + break; + case '\0': + return PIDX_STORE_PARAM_DIGEST; + } + } + } + } + break; + case 's': + if (strcmp("tid", s + 3) == 0) + return PIDX_PKEY_PARAM_DIST_ID; + } + break; + case 'r': + if (strcmp("bg-no-trunc-md", s + 2) == 0) + return PIDX_PROV_PARAM_DRBG_TRUNC_DIGEST; + break; + case 's': + if (strcmp("a-sign-disabled", s + 2) == 0) + return PIDX_PROV_PARAM_DSA_SIGN_DISABLED; + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_D; + } + break; + case 'e': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("rly_clean", s + 2) == 0) + return PIDX_KDF_PARAM_EARLY_CLEAN; + break; + case 'c': + switch(s[2]) { + default: + break; + case 'd': + switch(s[3]) { + default: + break; + case 'h': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'c': + switch(s[6]) { + default: + break; + case 'o': + switch(s[7]) { + default: + break; + case 'f': + switch(s[8]) { + default: + break; + case 'a': + switch(s[9]) { + default: + break; + case 'c': + switch(s[10]) { + default: + break; + case 't': + switch(s[11]) { + default: + break; + case 'o': + switch(s[12]) { + default: + break; + case 'r': + switch(s[13]) { + default: + break; + case '-': + switch(s[14]) { + default: + break; + case 'c': + if (strcmp("heck", s + 15) == 0) + return PIDX_PROV_PARAM_ECDH_COFACTOR_CHECK; + break; + case 'm': + if (strcmp("ode", s + 15) == 0) + return PIDX_EXCHANGE_PARAM_EC_ECDH_COFACTOR_MODE; + } + } + } + } + } + } + } + } + } + } + } + } + } + break; + case 'm': + if (strcmp("s_check", s + 2) == 0) + return PIDX_KDF_PARAM_FIPS_EMS_CHECK; + break; + case 'n': + switch(s[2]) { + default: + break; + case 'c': + switch(s[3]) { + default: + break; + case 'o': + switch(s[4]) { + default: + break; + case 'd': + switch(s[5]) { + default: + break; + case 'e': + if (strcmp("d-pub-key", s + 6) == 0) + return PIDX_PKEY_PARAM_ENCODED_PUBLIC_KEY; + break; + case 'i': + if (strcmp("ng", s + 6) == 0) + return PIDX_PKEY_PARAM_EC_ENCODING; + } + } + break; + case 'r': + switch(s[4]) { + default: + break; + case 'y': + switch(s[5]) { + default: + break; + case 'p': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case '-': + switch(s[8]) { + default: + break; + case 'c': + if (strcmp("heck", s + 9) == 0) + return PIDX_CIPHER_PARAM_FIPS_ENCRYPT_CHECK; + break; + case 'l': + if (strcmp("evel", s + 9) == 0) + return PIDX_ENCODER_PARAM_ENCRYPT_LEVEL; + } + } + } + } + } + } + break; + case 'g': + if (strcmp("ine", s + 3) == 0) + return PIDX_ALG_PARAM_ENGINE; + break; + case 't': + switch(s[3]) { + default: + break; + case 'r': + switch(s[4]) { + default: + break; + case 'o': + switch(s[5]) { + default: + break; + case 'p': + switch(s[6]) { + default: + break; + case 'y': + switch(s[7]) { + default: + break; + case '_': + if (strcmp("required", s + 8) == 0) + return PIDX_DRBG_PARAM_ENTROPY_REQUIRED; + break; + case '\0': + return PIDX_KDF_PARAM_HMACDRBG_ENTROPY; + } + } + } + } + } + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_E; + break; + case 'x': + if (strcmp("pect", s + 2) == 0) + return PIDX_STORE_PARAM_EXPECT; + } + break; + case 'f': + switch(s[1]) { + default: + break; + case 'i': + switch(s[2]) { + default: + break; + case 'e': + if (strcmp("ld-type", s + 3) == 0) + return PIDX_PKEY_PARAM_EC_FIELD_TYPE; + break; + case 'n': + if (strcmp("gerprint", s + 3) == 0) + return PIDX_STORE_PARAM_FINGERPRINT; + break; + case 'p': + if (strcmp("s-indicator", s + 3) == 0) + return PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR; + } + } + break; + case 'g': + switch(s[1]) { + default: + break; + case 'e': + switch(s[2]) { + default: + break; + case 'n': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case 'r': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case 'e': + switch(s[8]) { + default: + break; + case '\0': + return PIDX_RAND_PARAM_GENERATE; + } + break; + case 'o': + if (strcmp("r", s + 8) == 0) + return PIDX_PKEY_PARAM_EC_GENERATOR; + } + } + } + } + } + } + break; + case 'i': + if (strcmp("ndex", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_GINDEX; + break; + case 'r': + switch(s[2]) { + default: + break; + case 'o': + switch(s[3]) { + default: + break; + case 'u': + switch(s[4]) { + default: + break; + case 'p': + switch(s[5]) { + default: + break; + case '-': + if (strcmp("check", s + 6) == 0) + return PIDX_PKEY_PARAM_EC_GROUP_CHECK_TYPE; + break; + case '\0': + return PIDX_PKEY_PARAM_GROUP_NAME; + } + } + } + } + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_G; + } + break; + case 'h': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("s-randkey", s + 2) == 0) + return PIDX_CIPHER_PARAM_HAS_RAND_KEY; + break; + case 'i': + if (strcmp("ndex", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_H; + break; + case 'k': + switch(s[2]) { + default: + break; + case 'd': + switch(s[3]) { + default: + break; + case 'f': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 6) == 0) + return PIDX_PROV_PARAM_HKDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 6) == 0) + return PIDX_PROV_PARAM_HKDF_KEY_CHECK; + } + } + } + } + break; + case 'm': + if (strcmp("ac-key-check", s + 2) == 0) + return PIDX_PROV_PARAM_HMAC_KEY_CHECK; + break; + case 's': + if (strcmp("_padding", s + 2) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_HS_PADDING; + } + break; + case 'i': + switch(s[1]) { + default: + break; + case 'd': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_KDF_PARAM_PKCS12_ID; + } + break; + case 'k': + if (strcmp("me", s + 2) == 0) + return PIDX_KEM_PARAM_IKME; + break; + case 'm': + if (strcmp("plicit-rejection", s + 2) == 0) + return PIDX_PKEY_PARAM_IMPLICIT_REJECTION; + break; + case 'n': + switch(s[2]) { + default: + break; + case 'c': + if (strcmp("lude-public", s + 3) == 0) + return PIDX_PKEY_PARAM_EC_INCLUDE_PUBLIC; + break; + case 'f': + if (strcmp("o", s + 3) == 0) + return PIDX_PASSPHRASE_PARAM_INFO; + break; + case 'p': + if (strcmp("ut-type", s + 3) == 0) + return PIDX_STORE_PARAM_INPUT_TYPE; + break; + case 's': + if (strcmp("tance", s + 3) == 0) + return PIDX_SIGNATURE_PARAM_INSTANCE; + } + break; + case 't': + switch(s[2]) { + default: + break; + case 'e': + switch(s[3]) { + default: + break; + case 'r': + switch(s[4]) { + default: + break; + case 'a': + if (strcmp("tion", s + 5) == 0) + return PIDX_GEN_PARAM_ITERATION; + break; + case '\0': + return PIDX_KDF_PARAM_ITER; + } + } + } + break; + case 'v': + switch(s[2]) { + default: + break; + case '-': + if (strcmp("generated", s + 3) == 0) + return PIDX_CIPHER_PARAM_AEAD_IV_GENERATED; + break; + case 'l': + if (strcmp("en", s + 3) == 0) + return PIDX_CIPHER_PARAM_IVLEN; + break; + case '\0': + return PIDX_MAC_PARAM_IV; + } + } + break; + case 'j': + switch(s[1]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_COFACTOR; + } + break; + case 'k': + switch(s[1]) { + default: + break; + case '1': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_PP_K1; + } + break; + case '2': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_PP_K2; + } + break; + case '3': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_PP_K3; + } + break; + case 'a': + if (strcmp("t", s + 2) == 0) + return PIDX_SIGNATURE_PARAM_KAT; + break; + case 'b': + if (strcmp("kdf-key-check", s + 2) == 0) + return PIDX_PROV_PARAM_KBKDF_KEY_CHECK; + break; + case 'd': + switch(s[2]) { + default: + break; + case 'f': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'd': + switch(s[5]) { + default: + break; + case 'i': + switch(s[6]) { + default: + break; + case 'g': + switch(s[7]) { + default: + break; + case 'e': + switch(s[8]) { + default: + break; + case 's': + switch(s[9]) { + default: + break; + case 't': + switch(s[10]) { + default: + break; + case '-': + if (strcmp("props", s + 11) == 0) + return PIDX_EXCHANGE_PARAM_KDF_DIGEST_PROPS; + break; + case '\0': + return PIDX_EXCHANGE_PARAM_KDF_DIGEST; + } + } + } + } + } + } + break; + case 'o': + if (strcmp("utlen", s + 5) == 0) + return PIDX_EXCHANGE_PARAM_KDF_OUTLEN; + break; + case 't': + if (strcmp("ype", s + 5) == 0) + return PIDX_EXCHANGE_PARAM_KDF_TYPE; + break; + case 'u': + if (strcmp("km", s + 5) == 0) + return PIDX_EXCHANGE_PARAM_KDF_UKM; + } + } + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'y': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'c': + if (strcmp("heck", s + 5) == 0) + return PIDX_PKEY_PARAM_FIPS_KEY_CHECK; + break; + case 'l': + if (strcmp("ength", s + 5) == 0) + return PIDX_SKEY_PARAM_KEY_LENGTH; + } + break; + case 'b': + if (strcmp("its", s + 4) == 0) + return PIDX_CIPHER_PARAM_RC2_KEYBITS; + break; + case 'l': + if (strcmp("en", s + 4) == 0) + return PIDX_CIPHER_PARAM_KEYLEN; + break; + case '\0': + return PIDX_MAC_PARAM_KEY; + } + } + break; + case 'm': + if (strcmp("ac-key-check", s + 2) == 0) + return PIDX_PROV_PARAM_KMAC_KEY_CHECK; + } + break; + case 'l': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'b': + if (strcmp("el", s + 3) == 0) + return PIDX_KDF_PARAM_LABEL; + break; + case 'n': + if (strcmp("es", s + 3) == 0) + return PIDX_KDF_PARAM_ARGON2_LANES; + } + } + break; + case 'm': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'c': + switch(s[3]) { + default: + break; + case 'k': + if (strcmp("ey", s + 4) == 0) + return PIDX_CIPHER_PARAM_AEAD_MAC_KEY; + break; + case 'l': + if (strcmp("en", s + 4) == 0) + return PIDX_KDF_PARAM_MAC_SIZE; + break; + case '\0': + return PIDX_ALG_PARAM_MAC; + } + break; + case 'n': + if (strcmp("datory-digest", s + 3) == 0) + return PIDX_PKEY_PARAM_MANDATORY_DIGEST; + break; + case 'x': + switch(s[3]) { + default: + break; + case '-': + if (strcmp("size", s + 4) == 0) + return PIDX_PKEY_PARAM_MAX_SIZE; + break; + case '_': + switch(s[4]) { + default: + break; + case 'a': + if (strcmp("dinlen", s + 5) == 0) + return PIDX_DRBG_PARAM_MAX_ADINLEN; + break; + case 'e': + switch(s[5]) { + default: + break; + case 'a': + if (strcmp("rly_data", s + 6) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_MAX_EARLY_DATA; + break; + case 'n': + if (strcmp("tropylen", s + 6) == 0) + return PIDX_DRBG_PARAM_MAX_ENTROPYLEN; + } + break; + case 'f': + if (strcmp("rag_len", s + 5) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_MAX_FRAG_LEN; + break; + case 'n': + if (strcmp("oncelen", s + 5) == 0) + return PIDX_DRBG_PARAM_MAX_NONCELEN; + break; + case 'p': + if (strcmp("erslen", s + 5) == 0) + return PIDX_DRBG_PARAM_MAX_PERSLEN; + break; + case 'r': + if (strcmp("equest", s + 5) == 0) + return PIDX_RAND_PARAM_MAX_REQUEST; + } + break; + case 'i': + if (strcmp("um_length", s + 4) == 0) + return PIDX_DRBG_PARAM_MAX_LENGTH; + break; + case 'm': + if (strcmp("em_bytes", s + 4) == 0) + return PIDX_KDF_PARAM_SCRYPT_MAXMEM; + } + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'm': + if (strcmp("cost", s + 3) == 0) + return PIDX_KDF_PARAM_ARGON2_MEMCOST; + break; + case 's': + if (strcmp("sage-encoding", s + 3) == 0) + return PIDX_SIGNATURE_PARAM_MESSAGE_ENCODING; + } + break; + case 'g': + switch(s[2]) { + default: + break; + case 'f': + switch(s[3]) { + default: + break; + case '1': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'd': + if (strcmp("igest", s + 6) == 0) + return PIDX_PKEY_PARAM_MGF1_DIGEST; + break; + case 'p': + if (strcmp("roperties", s + 6) == 0) + return PIDX_PKEY_PARAM_MGF1_PROPERTIES; + } + } + break; + case '\0': + return PIDX_PKEY_PARAM_MASKGENFUNC; + } + } + break; + case 'i': + switch(s[2]) { + default: + break; + case 'c': + if (strcmp("alg", s + 3) == 0) + return PIDX_DIGEST_PARAM_MICALG; + break; + case 'n': + switch(s[3]) { + default: + break; + case '_': + switch(s[4]) { + default: + break; + case 'e': + if (strcmp("ntropylen", s + 5) == 0) + return PIDX_DRBG_PARAM_MIN_ENTROPYLEN; + break; + case 'n': + if (strcmp("oncelen", s + 5) == 0) + return PIDX_DRBG_PARAM_MIN_NONCELEN; + } + break; + case 'i': + if (strcmp("um_length", s + 4) == 0) + return PIDX_DRBG_PARAM_MIN_LENGTH; + } + } + break; + case 'l': + switch(s[2]) { + default: + break; + case '-': + switch(s[3]) { + default: + break; + case 'd': + switch(s[4]) { + default: + break; + case 's': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case '.': + switch(s[7]) { + default: + break; + case 'i': + if (strcmp("nput_formats", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_DSA_INPUT_FORMATS; + break; + case 'o': + if (strcmp("utput_formats", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_DSA_OUTPUT_FORMATS; + break; + case 'p': + if (strcmp("refer_seed", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_DSA_PREFER_SEED; + break; + case 'r': + if (strcmp("etain_seed", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_DSA_RETAIN_SEED; + } + } + } + } + break; + case 'k': + switch(s[4]) { + default: + break; + case 'e': + switch(s[5]) { + default: + break; + case 'm': + switch(s[6]) { + default: + break; + case '.': + switch(s[7]) { + default: + break; + case 'i': + switch(s[8]) { + default: + break; + case 'm': + if (strcmp("port_pct_type", s + 9) == 0) + return PIDX_PKEY_PARAM_ML_KEM_IMPORT_PCT_TYPE; + break; + case 'n': + if (strcmp("put_formats", s + 9) == 0) + return PIDX_PKEY_PARAM_ML_KEM_INPUT_FORMATS; + } + break; + case 'o': + if (strcmp("utput_formats", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_KEM_OUTPUT_FORMATS; + break; + case 'p': + if (strcmp("refer_seed", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_KEM_PREFER_SEED; + break; + case 'r': + if (strcmp("etain_seed", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_KEM_RETAIN_SEED; + } + } + } + } + } + } + break; + case 'o': + switch(s[2]) { + default: + break; + case 'd': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case '\0': + return PIDX_LIBSSL_RECORD_LAYER_PARAM_MODE; + } + break; + case 'u': + if (strcmp("le-filename", s + 4) == 0) + return PIDX_PROV_PARAM_CORE_MODULE_FILENAME; + } + } + break; + case 'u': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_SIGNATURE_PARAM_MU; + } + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_M; + } + break; + case 'n': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("me", s + 2) == 0) + return PIDX_STORE_PARAM_ISSUER; + break; + case 'o': + switch(s[2]) { + default: + break; + case '-': + if (strcmp("short-mac", s + 3) == 0) + return PIDX_PROV_PARAM_NO_SHORT_MAC; + break; + case 'n': + switch(s[3]) { + default: + break; + case 'c': + switch(s[4]) { + default: + break; + case 'e': + switch(s[5]) { + default: + break; + case '-': + if (strcmp("type", s + 6) == 0) + return PIDX_SIGNATURE_PARAM_NONCE_TYPE; + break; + case '\0': + return PIDX_KDF_PARAM_HMACDRBG_NONCE; + } + } + } + } + break; + case 'u': + if (strcmp("m", s + 2) == 0) + return PIDX_CIPHER_PARAM_NUM; + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_N; + } + break; + case 'o': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("ep-label", s + 2) == 0) + return PIDX_ASYM_CIPHER_PARAM_OAEP_LABEL; + break; + case 'p': + switch(s[2]) { + default: + break; + case 'e': + switch(s[3]) { + default: + break; + case 'n': + if (strcmp("ssl-version", s + 4) == 0) + return PIDX_PROV_PARAM_CORE_VERSION; + break; + case 'r': + if (strcmp("ation", s + 4) == 0) + return PIDX_KEM_PARAM_OPERATION; + } + break; + case 't': + if (strcmp("ions", s + 3) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_OPTIONS; + } + break; + case 'r': + if (strcmp("der", s + 2) == 0) + return PIDX_PKEY_PARAM_EC_ORDER; + } + break; + case 'p': + switch(s[1]) { + default: + break; + case '1': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_P1; + } + break; + case '2': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_P2; + } + break; + case 'a': + switch(s[2]) { + default: + break; + case 'd': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'm': + if (strcmp("ode", s + 5) == 0) + return PIDX_PKEY_PARAM_PAD_MODE; + break; + case 't': + if (strcmp("ype", s + 5) == 0) + return PIDX_DIGEST_PARAM_PAD_TYPE; + } + break; + case 'd': + if (strcmp("ing", s + 4) == 0) + return PIDX_CIPHER_PARAM_PADDING; + break; + case '\0': + return PIDX_EXCHANGE_PARAM_PAD; + } + break; + case 'r': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case 'y': + switch(s[5]) { + default: + break; + case 'u': + if (strcmp("-info", s + 6) == 0) + return PIDX_KDF_PARAM_X942_PARTYUINFO; + break; + case 'v': + if (strcmp("-info", s + 6) == 0) + return PIDX_KDF_PARAM_X942_PARTYVINFO; + } + } + } + break; + case 's': + if (strcmp("s", s + 3) == 0) + return PIDX_KDF_PARAM_PASSWORD; + } + break; + case 'b': + switch(s[2]) { + default: + break; + case 'i': + if (strcmp("ts", s + 3) == 0) + return PIDX_PKEY_PARAM_FFC_PBITS; + break; + case 'k': + if (strcmp("df2-lower-bound-check", s + 3) == 0) + return PIDX_PROV_PARAM_PBKDF2_LOWER_BOUND_CHECK; + } + break; + case 'c': + if (strcmp("ounter", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_PCOUNTER; + break; + case 'i': + if (strcmp("peline-tag", s + 2) == 0) + return PIDX_CIPHER_PARAM_PIPELINE_AEAD_TAG; + break; + case 'k': + if (strcmp("cs5", s + 2) == 0) + return PIDX_KDF_PARAM_PKCS5; + break; + case 'o': + switch(s[2]) { + default: + break; + case 'i': + if (strcmp("nt-format", s + 3) == 0) + return PIDX_PKEY_PARAM_EC_POINT_CONVERSION_FORMAT; + break; + case 't': + if (strcmp("ential", s + 3) == 0) + return PIDX_GEN_PARAM_POTENTIAL; + } + break; + case 'r': + switch(s[2]) { + default: + break; + case 'e': + switch(s[3]) { + default: + break; + case 'd': + if (strcmp("iction_resistance", s + 4) == 0) + return PIDX_DRBG_PARAM_PREDICTION_RESISTANCE; + break; + case 'f': + if (strcmp("ix", s + 4) == 0) + return PIDX_KDF_PARAM_PREFIX; + } + break; + case 'i': + switch(s[3]) { + default: + break; + case 'm': + if (strcmp("es", s + 4) == 0) + return PIDX_PKEY_PARAM_RSA_PRIMES; + break; + case 'v': + switch(s[4]) { + default: + break; + case '_': + if (strcmp("len", s + 5) == 0) + return PIDX_PKEY_PARAM_DH_PRIV_LEN; + break; + case '\0': + return PIDX_PKEY_PARAM_PRIV_KEY; + } + } + break; + case 'o': + switch(s[3]) { + default: + break; + case 'p': + if (strcmp("erties", s + 4) == 0) + return PIDX_STORE_PARAM_PROPERTIES; + break; + case 'v': + if (strcmp("ider-name", s + 4) == 0) + return PIDX_PROV_PARAM_CORE_PROV_NAME; + } + } + break; + case 'u': + if (strcmp("b", s + 2) == 0) + return PIDX_PKEY_PARAM_PUB_KEY; + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_P; + } + break; + case 'q': + switch(s[1]) { + default: + break; + case '1': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_Q1; + } + break; + case '2': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_Q2; + } + break; + case 'b': + if (strcmp("its", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_QBITS; + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_Q; + break; + case 'x': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_PUB_X; + } + break; + case 'y': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_PUB_Y; + } + } + break; + case 'r': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'n': + switch(s[3]) { + default: + break; + case 'd': + switch(s[4]) { + default: + break; + case 'k': + if (strcmp("ey", s + 5) == 0) + return PIDX_CIPHER_PARAM_RANDOM_KEY; + break; + case 'o': + if (strcmp("m_data", s + 5) == 0) + return PIDX_DRBG_PARAM_RANDOM_DATA; + } + } + break; + case 'w': + if (strcmp("-bytes", s + 3) == 0) + return PIDX_SKEY_PARAM_RAW_BYTES; + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'a': + switch(s[3]) { + default: + break; + case 'd': + switch(s[4]) { + default: + break; + case '_': + switch(s[5]) { + default: + break; + case 'a': + if (strcmp("head", s + 6) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_READ_AHEAD; + break; + case 'b': + if (strcmp("uffer_len", s + 6) == 0) + return PIDX_LIBSSL_RECORD_LAYER_READ_BUFFER_LEN; + } + } + } + break; + case 'f': + if (strcmp("erence", s + 3) == 0) + return PIDX_OBJECT_PARAM_REFERENCE; + break; + case 's': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case 'e': + switch(s[5]) { + default: + break; + case 'd': + switch(s[6]) { + default: + break; + case '_': + switch(s[7]) { + default: + break; + case 'c': + if (strcmp("ounter", s + 8) == 0) + return PIDX_DRBG_PARAM_RESEED_COUNTER; + break; + case 'r': + if (strcmp("equests", s + 8) == 0) + return PIDX_DRBG_PARAM_RESEED_REQUESTS; + break; + case 't': + switch(s[8]) { + default: + break; + case 'i': + switch(s[9]) { + default: + break; + case 'm': + switch(s[10]) { + default: + break; + case 'e': + switch(s[11]) { + default: + break; + case '_': + if (strcmp("interval", s + 12) == 0) + return PIDX_DRBG_PARAM_RESEED_TIME_INTERVAL; + break; + case '\0': + return PIDX_DRBG_PARAM_RESEED_TIME; + } + } + } + } + } + } + } + } + } + } + break; + case 'o': + if (strcmp("unds", s + 2) == 0) + return PIDX_CIPHER_PARAM_ROUNDS; + break; + case 's': + switch(s[2]) { + default: + break; + case 'a': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'c': + switch(s[5]) { + default: + break; + case 'o': + switch(s[6]) { + default: + break; + case 'e': + switch(s[7]) { + default: + break; + case 'f': + switch(s[8]) { + default: + break; + case 'f': + switch(s[9]) { + default: + break; + case 'i': + switch(s[10]) { + default: + break; + case 'c': + switch(s[11]) { + default: + break; + case 'i': + switch(s[12]) { + default: + break; + case 'e': + switch(s[13]) { + default: + break; + case 'n': + switch(s[14]) { + default: + break; + case 't': + switch(s[15]) { + default: + break; + case '1': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT1; + } + break; + case '2': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT2; + } + break; + case '3': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT3; + } + break; + case '4': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT4; + } + break; + case '5': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT5; + } + break; + case '6': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT6; + } + break; + case '7': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT7; + } + break; + case '8': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT8; + } + break; + case '9': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT9; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT; + } + } + } + } + } + } + } + } + } + } + } + break; + case 'd': + if (strcmp("erive-from-pq", s + 5) == 0) + return PIDX_PKEY_PARAM_RSA_DERIVE_FROM_PQ; + break; + case 'e': + switch(s[5]) { + default: + break; + case 'x': + switch(s[6]) { + default: + break; + case 'p': + switch(s[7]) { + default: + break; + case 'o': + switch(s[8]) { + default: + break; + case 'n': + switch(s[9]) { + default: + break; + case 'e': + switch(s[10]) { + default: + break; + case 'n': + switch(s[11]) { + default: + break; + case 't': + switch(s[12]) { + default: + break; + case '1': + switch(s[13]) { + default: + break; + case '0': + switch(s[14]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT10; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT1; + } + break; + case '2': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT2; + } + break; + case '3': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT3; + } + break; + case '4': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT4; + } + break; + case '5': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT5; + } + break; + case '6': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT6; + } + break; + case '7': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT7; + } + break; + case '8': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT8; + } + break; + case '9': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT9; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT; + } + } + } + } + } + } + } + } + break; + case 'f': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case 'c': + switch(s[7]) { + default: + break; + case 't': + switch(s[8]) { + default: + break; + case 'o': + switch(s[9]) { + default: + break; + case 'r': + switch(s[10]) { + default: + break; + case '1': + switch(s[11]) { + default: + break; + case '0': + switch(s[12]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR10; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR1; + } + break; + case '2': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR2; + } + break; + case '3': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR3; + } + break; + case '4': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR4; + } + break; + case '5': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR5; + } + break; + case '6': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR6; + } + break; + case '7': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR7; + } + break; + case '8': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR8; + } + break; + case '9': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR9; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR; + } + } + } + } + } + } + break; + case 'p': + switch(s[5]) { + default: + break; + case 'k': + if (strcmp("cs15-pad-disabled", s + 6) == 0) + return PIDX_PROV_PARAM_RSA_PKCS15_PAD_DISABLED; + break; + case 's': + if (strcmp("s-saltlen-check", s + 6) == 0) + return PIDX_SIGNATURE_PARAM_FIPS_RSA_PSS_SALTLEN_CHECK; + } + break; + case 's': + if (strcmp("ign-x931-pad-disabled", s + 5) == 0) + return PIDX_PROV_PARAM_RSA_SIGN_X931_PAD_DISABLED; + } + } + } + break; + case '\0': + return PIDX_KDF_PARAM_SCRYPT_R; + } + break; + case 's': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'f': + if (strcmp("eprime-generator", s + 3) == 0) + return PIDX_PKEY_PARAM_DH_GENERATOR; + break; + case 'l': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case 'l': + if (strcmp("en", s + 5) == 0) + return PIDX_SIGNATURE_PARAM_PSS_SALTLEN; + break; + case '\0': + return PIDX_MAC_PARAM_SALT; + } + } + break; + case 'v': + if (strcmp("e-parameters", s + 3) == 0) + return PIDX_ENCODER_PARAM_SAVE_PARAMETERS; + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'c': + switch(s[3]) { + default: + break; + case 'r': + if (strcmp("et", s + 4) == 0) + return PIDX_KDF_PARAM_SECRET; + break; + case 'u': + switch(s[4]) { + default: + break; + case 'r': + switch(s[5]) { + default: + break; + case 'i': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case 'y': + switch(s[8]) { + default: + break; + case '-': + switch(s[9]) { + default: + break; + case 'b': + if (strcmp("its", s + 10) == 0) + return PIDX_PKEY_PARAM_SECURITY_BITS; + break; + case 'c': + if (strcmp("hecks", s + 10) == 0) + return PIDX_PROV_PARAM_SECURITY_CHECKS; + } + } + } + } + } + } + } + break; + case 'e': + if (strcmp("d", s + 3) == 0) + return PIDX_PKEY_PARAM_SLH_DSA_SEED; + break; + case 'r': + if (strcmp("ial", s + 3) == 0) + return PIDX_STORE_PARAM_SERIAL; + break; + case 's': + if (strcmp("sion_id", s + 3) == 0) + return PIDX_KDF_PARAM_SSHKDF_SESSION_ID; + } + break; + case 'i': + switch(s[2]) { + default: + break; + case 'g': + switch(s[3]) { + default: + break; + case 'n': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'c': + if (strcmp("heck", s + 6) == 0) + return PIDX_PKEY_PARAM_FIPS_SIGN_CHECK; + break; + case 'x': + if (strcmp("931-pad-check", s + 6) == 0) + return PIDX_SIGNATURE_PARAM_FIPS_SIGN_X931_PAD_CHECK; + } + break; + case 'a': + switch(s[5]) { + default: + break; + case 't': + switch(s[6]) { + default: + break; + case 'u': + switch(s[7]) { + default: + break; + case 'r': + switch(s[8]) { + default: + break; + case 'e': + switch(s[9]) { + default: + break; + case '-': + if (strcmp("digest-check", s + 10) == 0) + return PIDX_PROV_PARAM_SIGNATURE_DIGEST_CHECK; + break; + case '\0': + return PIDX_SIGNATURE_PARAM_SIGNATURE; + } + } + } + } + } + } + } + break; + case 'z': + if (strcmp("e", s + 3) == 0) + return PIDX_MAC_PARAM_SIZE; + } + break; + case 'p': + if (strcmp("eed", s + 2) == 0) + return PIDX_CIPHER_PARAM_SPEED; + break; + case 's': + switch(s[2]) { + default: + break; + case 'h': + switch(s[3]) { + default: + break; + case 'k': + switch(s[4]) { + default: + break; + case 'd': + switch(s[5]) { + default: + break; + case 'f': + switch(s[6]) { + default: + break; + case '-': + switch(s[7]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 8) == 0) + return PIDX_PROV_PARAM_SSHKDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 8) == 0) + return PIDX_PROV_PARAM_SSHKDF_KEY_CHECK; + } + } + } + } + } + break; + case 'k': + switch(s[3]) { + default: + break; + case 'd': + switch(s[4]) { + default: + break; + case 'f': + switch(s[5]) { + default: + break; + case '-': + switch(s[6]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 7) == 0) + return PIDX_PROV_PARAM_SSKDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 7) == 0) + return PIDX_PROV_PARAM_SSKDF_KEY_CHECK; + } + } + } + } + break; + case 'l': + if (strcmp("3-ms", s + 3) == 0) + return PIDX_DIGEST_PARAM_SSL3_MS; + } + break; + case 't': + switch(s[2]) { + default: + break; + case '-': + switch(s[3]) { + default: + break; + case 'd': + if (strcmp("esc", s + 4) == 0) + return PIDX_PROV_PARAM_SELF_TEST_DESC; + break; + case 'p': + if (strcmp("hase", s + 4) == 0) + return PIDX_PROV_PARAM_SELF_TEST_PHASE; + break; + case 't': + if (strcmp("ype", s + 4) == 0) + return PIDX_PROV_PARAM_SELF_TEST_TYPE; + } + break; + case 'a': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case 'e': + switch(s[5]) { + default: + break; + case '\0': + return PIDX_RAND_PARAM_STATE; + } + break; + case 'u': + if (strcmp("s", s + 5) == 0) + return PIDX_PROV_PARAM_STATUS; + } + } + break; + case 'r': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case 'a': + if (strcmp("m_mac", s + 5) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_STREAM_MAC; + break; + case 'n': + if (strcmp("gth", s + 5) == 0) + return PIDX_RAND_PARAM_STRENGTH; + } + } + } + break; + case 'u': + switch(s[2]) { + default: + break; + case 'b': + if (strcmp("ject", s + 3) == 0) + return PIDX_STORE_PARAM_SUBJECT; + break; + case 'p': + switch(s[3]) { + default: + break; + case 'p': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'p': + switch(s[6]) { + default: + break; + case 'r': + if (strcmp("ivinfo", s + 7) == 0) + return PIDX_KDF_PARAM_X942_SUPP_PRIVINFO; + break; + case 'u': + if (strcmp("binfo", s + 7) == 0) + return PIDX_KDF_PARAM_X942_SUPP_PUBINFO; + } + } + } + } + } + } + break; + case 't': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'g': + switch(s[3]) { + default: + break; + case 'l': + if (strcmp("en", s + 4) == 0) + return PIDX_CIPHER_PARAM_AEAD_TAGLEN; + break; + case '\0': + return PIDX_CIPHER_PARAM_AEAD_TAG; + } + } + break; + case 'd': + if (strcmp("es-encrypt-disabled", s + 2) == 0) + return PIDX_PROV_PARAM_TDES_ENCRYPT_DISABLED; + break; + case 'e': + switch(s[2]) { + default: + break; + case 's': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case '-': + if (strcmp("entropy", s + 5) == 0) + return PIDX_SIGNATURE_PARAM_TEST_ENTROPY; + break; + case '_': + switch(s[5]) { + default: + break; + case 'e': + if (strcmp("ntropy", s + 6) == 0) + return PIDX_RAND_PARAM_TEST_ENTROPY; + break; + case 'n': + if (strcmp("once", s + 6) == 0) + return PIDX_RAND_PARAM_TEST_NONCE; + } + } + } + } + break; + case 'h': + if (strcmp("reads", s + 2) == 0) + return PIDX_KDF_PARAM_THREADS; + break; + case 'l': + switch(s[2]) { + default: + break; + case 's': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'c': + if (strcmp("lient-version", s + 5) == 0) + return PIDX_ASYM_CIPHER_PARAM_TLS_CLIENT_VERSION; + break; + case 'd': + if (strcmp("ata-size", s + 5) == 0) + return PIDX_MAC_PARAM_TLS_DATA_SIZE; + break; + case 'g': + switch(s[5]) { + default: + break; + case 'r': + switch(s[6]) { + default: + break; + case 'o': + switch(s[7]) { + default: + break; + case 'u': + switch(s[8]) { + default: + break; + case 'p': + switch(s[9]) { + default: + break; + case '-': + switch(s[10]) { + default: + break; + case 'a': + if (strcmp("lg", s + 11) == 0) + return PIDX_CAPABILITY_TLS_GROUP_ALG; + break; + case 'i': + switch(s[11]) { + default: + break; + case 'd': + switch(s[12]) { + default: + break; + case '\0': + return PIDX_CAPABILITY_TLS_GROUP_ID; + } + break; + case 's': + if (strcmp("-kem", s + 12) == 0) + return PIDX_CAPABILITY_TLS_GROUP_IS_KEM; + } + break; + case 'n': + switch(s[11]) { + default: + break; + case 'a': + switch(s[12]) { + default: + break; + case 'm': + switch(s[13]) { + default: + break; + case 'e': + switch(s[14]) { + default: + break; + case '-': + if (strcmp("internal", s + 15) == 0) + return PIDX_CAPABILITY_TLS_GROUP_NAME_INTERNAL; + break; + case '\0': + return PIDX_CAPABILITY_TLS_GROUP_NAME; + } + } + } + } + break; + case 's': + if (strcmp("ec-bits", s + 11) == 0) + return PIDX_CAPABILITY_TLS_GROUP_SECURITY_BITS; + } + } + } + } + } + } + break; + case 'm': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case 'c': + switch(s[7]) { + default: + break; + case '-': + if (strcmp("size", s + 8) == 0) + return PIDX_CIPHER_PARAM_TLS_MAC_SIZE; + break; + case '\0': + return PIDX_CIPHER_PARAM_TLS_MAC; + } + break; + case 'x': + switch(s[7]) { + default: + break; + case '-': + switch(s[8]) { + default: + break; + case 'd': + if (strcmp("tls", s + 9) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_MAX_DTLS; + break; + case 't': + if (strcmp("ls", s + 9) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_MAX_TLS; + } + } + } + break; + case 'i': + switch(s[6]) { + default: + break; + case 'n': + switch(s[7]) { + default: + break; + case '-': + switch(s[8]) { + default: + break; + case 'd': + if (strcmp("tls", s + 9) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_MIN_DTLS; + break; + case 't': + if (strcmp("ls", s + 9) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_MIN_TLS; + } + } + } + break; + case 'u': + if (strcmp("lti", s + 6) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK; + } + break; + case 'n': + if (strcmp("egotiated-version", s + 5) == 0) + return PIDX_ASYM_CIPHER_PARAM_TLS_NEGOTIATED_VERSION; + break; + case 's': + switch(s[5]) { + default: + break; + case 'i': + switch(s[6]) { + default: + break; + case 'g': + switch(s[7]) { + default: + break; + case 'a': + switch(s[8]) { + default: + break; + case 'l': + switch(s[9]) { + default: + break; + case 'g': + switch(s[10]) { + default: + break; + case '-': + switch(s[11]) { + default: + break; + case 'c': + if (strcmp("ode-point", s + 12) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_CODE_POINT; + break; + case 'h': + switch(s[12]) { + default: + break; + case 'a': + switch(s[13]) { + default: + break; + case 's': + switch(s[14]) { + default: + break; + case 'h': + switch(s[15]) { + default: + break; + case '-': + switch(s[16]) { + default: + break; + case 'n': + if (strcmp("ame", s + 17) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_HASH_NAME; + break; + case 'o': + if (strcmp("id", s + 17) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_HASH_OID; + } + } + } + } + } + break; + case 'i': + if (strcmp("ana-name", s + 12) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_IANA_NAME; + break; + case 'k': + switch(s[12]) { + default: + break; + case 'e': + switch(s[13]) { + default: + break; + case 'y': + switch(s[14]) { + default: + break; + case 't': + switch(s[15]) { + default: + break; + case 'y': + switch(s[16]) { + default: + break; + case 'p': + switch(s[17]) { + default: + break; + case 'e': + switch(s[18]) { + default: + break; + case '-': + if (strcmp("oid", s + 19) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_KEYTYPE_OID; + break; + case '\0': + return PIDX_CAPABILITY_TLS_SIGALG_KEYTYPE; + } + } + } + } + } + } + } + break; + case 'n': + if (strcmp("ame", s + 12) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_NAME; + break; + case 'o': + if (strcmp("id", s + 12) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_OID; + break; + case 's': + switch(s[12]) { + default: + break; + case 'e': + if (strcmp("c-bits", s + 13) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_SECURITY_BITS; + break; + case 'i': + switch(s[13]) { + default: + break; + case 'g': + switch(s[14]) { + default: + break; + case '-': + switch(s[15]) { + default: + break; + case 'n': + if (strcmp("ame", s + 16) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_SIG_NAME; + break; + case 'o': + if (strcmp("id", s + 16) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_SIG_OID; + } + } + } + } + } + } + } + } + } + } + } + break; + case 'v': + if (strcmp("ersion", s + 5) == 0) + return PIDX_CIPHER_PARAM_TLS_VERSION; + } + break; + case '1': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'p': + switch(s[6]) { + default: + break; + case 'r': + switch(s[7]) { + default: + break; + case 'f': + switch(s[8]) { + default: + break; + case '-': + switch(s[9]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 10) == 0) + return PIDX_PROV_PARAM_TLS1_PRF_DIGEST_CHECK; + break; + case 'e': + if (strcmp("ms-check", s + 10) == 0) + return PIDX_PROV_PARAM_TLS1_PRF_EMS_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 10) == 0) + return PIDX_PROV_PARAM_TLS1_PRF_KEY_CHECK; + } + } + } + } + } + break; + case '3': + switch(s[5]) { + default: + break; + case '-': + switch(s[6]) { + default: + break; + case 'k': + switch(s[7]) { + default: + break; + case 'd': + switch(s[8]) { + default: + break; + case 'f': + switch(s[9]) { + default: + break; + case '-': + switch(s[10]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 11) == 0) + return PIDX_PROV_PARAM_TLS13_KDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 11) == 0) + return PIDX_PROV_PARAM_TLS13_KDF_KEY_CHECK; + } + } + } + } + } + } + break; + case 'm': + switch(s[5]) { + default: + break; + case 'u': + switch(s[6]) { + default: + break; + case 'l': + switch(s[7]) { + default: + break; + case 't': + switch(s[8]) { + default: + break; + case 'i': + switch(s[9]) { + default: + break; + case '_': + switch(s[10]) { + default: + break; + case 'a': + switch(s[11]) { + default: + break; + case 'a': + switch(s[12]) { + default: + break; + case 'd': + switch(s[13]) { + default: + break; + case 'p': + if (strcmp("acklen", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD_PACKLEN; + break; + case '\0': + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD; + } + } + } + break; + case 'e': + switch(s[11]) { + default: + break; + case 'n': + switch(s[12]) { + default: + break; + case 'c': + switch(s[13]) { + default: + break; + case 'i': + if (strcmp("n", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_IN; + break; + case 'l': + if (strcmp("en", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_LEN; + break; + case '\0': + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC; + } + } + } + break; + case 'i': + if (strcmp("nterleave", s + 11) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_INTERLEAVE; + break; + case 'm': + switch(s[11]) { + default: + break; + case 'a': + switch(s[12]) { + default: + break; + case 'x': + switch(s[13]) { + default: + break; + case 'b': + if (strcmp("ufsz", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_BUFSIZE; + break; + case 's': + if (strcmp("ndfrag", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_SEND_FRAGMENT; + } + } + } + } + } + } + } + } + } + } + break; + case 'a': + switch(s[4]) { + default: + break; + case 'a': + switch(s[5]) { + default: + break; + case 'd': + switch(s[6]) { + default: + break; + case 'p': + if (strcmp("ad", s + 7) == 0) + return PIDX_CIPHER_PARAM_AEAD_TLS1_AAD_PAD; + break; + case '\0': + return PIDX_CIPHER_PARAM_AEAD_TLS1_AAD; + } + } + } + break; + case 'i': + switch(s[4]) { + default: + break; + case 'v': + switch(s[5]) { + default: + break; + case 'f': + if (strcmp("ixed", s + 6) == 0) + return PIDX_CIPHER_PARAM_AEAD_TLS1_IV_FIXED; + break; + case 'g': + if (strcmp("en", s + 6) == 0) + return PIDX_CIPHER_PARAM_AEAD_TLS1_GET_IV_GEN; + break; + case 'i': + if (strcmp("nv", s + 6) == 0) + return PIDX_CIPHER_PARAM_AEAD_TLS1_SET_IV_INV; + } + } + break; + case 't': + if (strcmp("ree", s + 4) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_TLSTREE; + } + } + break; + case 'p': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_TP_BASIS; + } + break; + case 'y': + if (strcmp("pe", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_TYPE; + } + break; + case 'u': + switch(s[1]) { + default: + break; + case 'k': + if (strcmp("m", s + 2) == 0) + return PIDX_KDF_PARAM_UKM; + break; + case 'p': + if (strcmp("dated-iv", s + 2) == 0) + return PIDX_CIPHER_PARAM_UPDATED_IV; + break; + case 's': + switch(s[2]) { + default: + break; + case 'e': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'b': + if (strcmp("its", s + 5) == 0) + return PIDX_CIPHER_PARAM_USE_BITS; + break; + case 'c': + if (strcmp("ofactor-flag", s + 5) == 0) + return PIDX_PKEY_PARAM_USE_COFACTOR_FLAG; + break; + case 'k': + if (strcmp("eybits", s + 5) == 0) + return PIDX_KDF_PARAM_X942_USE_KEYBITS; + break; + case 'l': + switch(s[5]) { + default: + break; + case '\0': + return PIDX_KDF_PARAM_KBKDF_USE_L; + } + break; + case 's': + if (strcmp("eparator", s + 5) == 0) + return PIDX_KDF_PARAM_KBKDF_USE_SEPARATOR; + } + break; + case '_': + switch(s[4]) { + default: + break; + case 'd': + if (strcmp("erivation_function", s + 5) == 0) + return PIDX_DRBG_PARAM_USE_DF; + break; + case 'e': + if (strcmp("tm", s + 5) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_USE_ETM; + } + } + } + } + break; + case 'v': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'l': + switch(s[3]) { + default: + break; + case 'i': + switch(s[4]) { + default: + break; + case 'd': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case 'e': + switch(s[8]) { + default: + break; + case '-': + switch(s[9]) { + default: + break; + case 'g': + switch(s[10]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_VALIDATE_G; + } + break; + case 'l': + if (strcmp("egacy", s + 10) == 0) + return PIDX_PKEY_PARAM_FFC_VALIDATE_LEGACY; + break; + case 'p': + if (strcmp("q", s + 10) == 0) + return PIDX_PKEY_PARAM_FFC_VALIDATE_PQ; + } + } + } + } + } + } + } + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'r': + switch(s[3]) { + default: + break; + case 'i': + if (strcmp("fy-message", s + 4) == 0) + return PIDX_SIGNATURE_PARAM_FIPS_VERIFY_MESSAGE; + break; + case 's': + if (strcmp("ion", s + 4) == 0) + return PIDX_PROV_PARAM_VERSION; + } + } + } + break; + case 'x': + switch(s[1]) { + default: + break; + case '9': + switch(s[2]) { + default: + break; + case '4': + if (strcmp("2kdf-key-check", s + 3) == 0) + return PIDX_PROV_PARAM_X942KDF_KEY_CHECK; + break; + case '6': + switch(s[3]) { + default: + break; + case '3': + switch(s[4]) { + default: + break; + case 'k': + switch(s[5]) { + default: + break; + case 'd': + switch(s[6]) { + default: + break; + case 'f': + switch(s[7]) { + default: + break; + case '-': + switch(s[8]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 9) == 0) + return PIDX_PROV_PARAM_X963KDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 9) == 0) + return PIDX_PROV_PARAM_X963KDF_KEY_CHECK; + } + } + } + } + } + } + } + break; + case 'c': + if (strcmp("ghash", s + 2) == 0) + return PIDX_KDF_PARAM_SSHKDF_XCGHASH; + break; + case 'o': + switch(s[2]) { + default: + break; + case 'f': + switch(s[3]) { + default: + break; + case 'l': + if (strcmp("en", s + 4) == 0) + return PIDX_DIGEST_PARAM_XOFLEN; + break; + case '\0': + return PIDX_MAC_PARAM_XOF; + } + } + break; + case 'p': + switch(s[2]) { + default: + break; + case '1': + switch(s[3]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XP1; + } + break; + case '2': + switch(s[3]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XP2; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XP; + } + break; + case 'q': + switch(s[2]) { + default: + break; + case '1': + switch(s[3]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XQ1; + } + break; + case '2': + switch(s[3]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XQ2; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XQ; + } + break; + case 't': + if (strcmp("s_standard", s + 2) == 0) + return PIDX_CIPHER_PARAM_XTS_STANDARD; + } + } + return -1; +} + +/* End of TRIE */ diff --git a/deps/openssl/config/archs/BSD-x86_64/asm/crypto/poly1305/poly1305-x86_64.s b/deps/openssl/config/archs/BSD-x86_64/asm/crypto/poly1305/poly1305-x86_64.s index 205b2e2eb02f5e..dbed1239d3c419 100644 --- a/deps/openssl/config/archs/BSD-x86_64/asm/crypto/poly1305/poly1305-x86_64.s +++ b/deps/openssl/config/archs/BSD-x86_64/asm/crypto/poly1305/poly1305-x86_64.s @@ -55,6 +55,7 @@ poly1305_init: .align 32 poly1305_blocks: .cfi_startproc +.byte 243,15,30,250 .Lblocks: shrq $4,%rdx jz .Lno_data @@ -170,6 +171,7 @@ poly1305_blocks: .align 32 poly1305_emit: .cfi_startproc +.byte 243,15,30,250 .Lemit: movq 0(%rdi),%r8 movq 8(%rdi),%r9 @@ -406,6 +408,7 @@ __poly1305_init_avx: .align 32 poly1305_blocks_avx: .cfi_startproc +.byte 243,15,30,250 movl 20(%rdi),%r8d cmpq $128,%rdx jae .Lblocks_avx @@ -1241,6 +1244,7 @@ poly1305_blocks_avx: .align 32 poly1305_emit_avx: .cfi_startproc +.byte 243,15,30,250 cmpl $0,20(%rdi) je .Lemit @@ -1297,6 +1301,7 @@ poly1305_emit_avx: .align 32 poly1305_blocks_avx2: .cfi_startproc +.byte 243,15,30,250 movl 20(%rdi),%r8d cmpq $128,%rdx jae .Lblocks_avx2 @@ -1947,6 +1952,7 @@ poly1305_blocks_avx2: .align 32 poly1305_blocks_avx512: .cfi_startproc +.byte 243,15,30,250 .Lblocks_avx512: movl $15,%eax kmovw %eax,%k2 @@ -3450,6 +3456,7 @@ poly1305_emit_base2_44: .byte 0xf3,0xc3 .cfi_endproc .size poly1305_emit_base2_44,.-poly1305_emit_base2_44 +.section .rodata .align 64 .Lconst: .Lmask24: @@ -3481,6 +3488,7 @@ poly1305_emit_base2_44: .Lx_mask42: .quad 0x3ffffffffff,0x3ffffffffff,0x3ffffffffff,0x3ffffffffff .quad 0x3ffffffffff,0x3ffffffffff,0x3ffffffffff,0x3ffffffffff +.previous .byte 80,111,108,121,49,51,48,53,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 .align 16 .globl xor128_encrypt_n_pad diff --git a/deps/openssl/config/archs/BSD-x86_64/asm/crypto/sha/keccak1600-x86_64.s b/deps/openssl/config/archs/BSD-x86_64/asm/crypto/sha/keccak1600-x86_64.s index bb5222b73bc00a..021d34601ffc07 100644 --- a/deps/openssl/config/archs/BSD-x86_64/asm/crypto/sha/keccak1600-x86_64.s +++ b/deps/openssl/config/archs/BSD-x86_64/asm/crypto/sha/keccak1600-x86_64.s @@ -447,10 +447,12 @@ SHA3_squeeze: .cfi_offset %r14,-32 shrq $3,%rcx - movq %rdi,%r8 + movq %rdi,%r9 movq %rsi,%r12 movq %rdx,%r13 movq %rcx,%r14 + btl $0,%r8d + jc .Lnext_block jmp .Loop_squeeze .align 32 @@ -458,8 +460,8 @@ SHA3_squeeze: cmpq $8,%r13 jb .Ltail_squeeze - movq (%r8),%rax - leaq 8(%r8),%r8 + movq (%r9),%rax + leaq 8(%r9),%r9 movq %rax,(%r12) leaq 8(%r12),%r12 subq $8,%r13 @@ -467,14 +469,14 @@ SHA3_squeeze: subq $1,%rcx jnz .Loop_squeeze - +.Lnext_block: call KeccakF1600 - movq %rdi,%r8 + movq %rdi,%r9 movq %r14,%rcx jmp .Loop_squeeze .Ltail_squeeze: - movq %r8,%rsi + movq %r9,%rsi movq %r12,%rdi movq %r13,%rcx .byte 0xf3,0xa4 @@ -492,6 +494,7 @@ SHA3_squeeze: .byte 0xf3,0xc3 .cfi_endproc .size SHA3_squeeze,.-SHA3_squeeze +.section .rodata .align 256 .quad 0,0,0,0,0,0,0,0 .type iotas,@object diff --git a/deps/openssl/config/archs/BSD-x86_64/asm/crypto/sha/sha1-mb-x86_64.s b/deps/openssl/config/archs/BSD-x86_64/asm/crypto/sha/sha1-mb-x86_64.s index b835e0b6c95953..012a5094ac38d8 100644 --- a/deps/openssl/config/archs/BSD-x86_64/asm/crypto/sha/sha1-mb-x86_64.s +++ b/deps/openssl/config/archs/BSD-x86_64/asm/crypto/sha/sha1-mb-x86_64.s @@ -7286,7 +7286,7 @@ _avx2_shortcut: .byte 0xf3,0xc3 .cfi_endproc .size sha1_multi_block_avx2,.-sha1_multi_block_avx2 - +.section .rodata .align 256 .long 0x5a827999,0x5a827999,0x5a827999,0x5a827999 .long 0x5a827999,0x5a827999,0x5a827999,0x5a827999 @@ -7301,6 +7301,7 @@ K_XX_XX: .long 0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f .byte 0xf,0xe,0xd,0xc,0xb,0xa,0x9,0x8,0x7,0x6,0x5,0x4,0x3,0x2,0x1,0x0 .byte 83,72,65,49,32,109,117,108,116,105,45,98,108,111,99,107,32,116,114,97,110,115,102,111,114,109,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 +.previous .section ".note.gnu.property", "a" .p2align 3 .long 1f - 0f diff --git a/deps/openssl/config/archs/BSD-x86_64/asm/crypto/sha/sha1-x86_64.s b/deps/openssl/config/archs/BSD-x86_64/asm/crypto/sha/sha1-x86_64.s index 85e9a2909f8aff..234e625cfe8ad5 100644 --- a/deps/openssl/config/archs/BSD-x86_64/asm/crypto/sha/sha1-x86_64.s +++ b/deps/openssl/config/archs/BSD-x86_64/asm/crypto/sha/sha1-x86_64.s @@ -5433,6 +5433,7 @@ _avx2_shortcut: .byte 0xf3,0xc3 .cfi_endproc .size sha1_block_data_order_avx2,.-sha1_block_data_order_avx2 +.section .rodata .align 64 K_XX_XX: .long 0x5a827999,0x5a827999,0x5a827999,0x5a827999 @@ -5446,6 +5447,7 @@ K_XX_XX: .long 0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f .long 0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f .byte 0xf,0xe,0xd,0xc,0xb,0xa,0x9,0x8,0x7,0x6,0x5,0x4,0x3,0x2,0x1,0x0 +.previous .byte 83,72,65,49,32,98,108,111,99,107,32,116,114,97,110,115,102,111,114,109,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 .align 64 .section ".note.gnu.property", "a" diff --git a/deps/openssl/config/archs/BSD-x86_64/asm/crypto/sha/sha256-mb-x86_64.s b/deps/openssl/config/archs/BSD-x86_64/asm/crypto/sha/sha256-mb-x86_64.s index 8ac342f9ceb6c8..aabed290b1c350 100644 --- a/deps/openssl/config/archs/BSD-x86_64/asm/crypto/sha/sha256-mb-x86_64.s +++ b/deps/openssl/config/archs/BSD-x86_64/asm/crypto/sha/sha256-mb-x86_64.s @@ -7831,6 +7831,7 @@ _avx2_shortcut: .byte 0xf3,0xc3 .cfi_endproc .size sha256_multi_block_avx2,.-sha256_multi_block_avx2 +.section .rodata .align 256 K256: .long 1116352408,1116352408,1116352408,1116352408 @@ -7982,6 +7983,7 @@ K256_shaext: .long 0x748f82ee,0x78a5636f,0x84c87814,0x8cc70208 .long 0x90befffa,0xa4506ceb,0xbef9a3f7,0xc67178f2 .byte 83,72,65,50,53,54,32,109,117,108,116,105,45,98,108,111,99,107,32,116,114,97,110,115,102,111,114,109,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 +.previous .section ".note.gnu.property", "a" .p2align 3 .long 1f - 0f diff --git a/deps/openssl/config/archs/BSD-x86_64/asm/crypto/sha/sha256-x86_64.s b/deps/openssl/config/archs/BSD-x86_64/asm/crypto/sha/sha256-x86_64.s index e82bbec164f843..cb42c58633d88e 100644 --- a/deps/openssl/config/archs/BSD-x86_64/asm/crypto/sha/sha256-x86_64.s +++ b/deps/openssl/config/archs/BSD-x86_64/asm/crypto/sha/sha256-x86_64.s @@ -1728,6 +1728,7 @@ sha256_block_data_order: .byte 0xf3,0xc3 .cfi_endproc .size sha256_block_data_order,.-sha256_block_data_order +.section .rodata .align 64 .type K256,@object K256: @@ -1771,6 +1772,7 @@ K256: .long 0xffffffff,0xffffffff,0x03020100,0x0b0a0908 .long 0xffffffff,0xffffffff,0x03020100,0x0b0a0908 .byte 83,72,65,50,53,54,32,98,108,111,99,107,32,116,114,97,110,115,102,111,114,109,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 +.previous .type sha256_block_data_order_shaext,@function .align 64 sha256_block_data_order_shaext: diff --git a/deps/openssl/config/archs/BSD-x86_64/asm/crypto/sha/sha512-x86_64.s b/deps/openssl/config/archs/BSD-x86_64/asm/crypto/sha/sha512-x86_64.s index a76d017ba764b7..880b3fdbac34be 100644 --- a/deps/openssl/config/archs/BSD-x86_64/asm/crypto/sha/sha512-x86_64.s +++ b/deps/openssl/config/archs/BSD-x86_64/asm/crypto/sha/sha512-x86_64.s @@ -1726,6 +1726,7 @@ sha512_block_data_order: .byte 0xf3,0xc3 .cfi_endproc .size sha512_block_data_order,.-sha512_block_data_order +.section .rodata .align 64 .type K512,@object K512: @@ -1813,6 +1814,7 @@ K512: .quad 0x0001020304050607,0x08090a0b0c0d0e0f .quad 0x0001020304050607,0x08090a0b0c0d0e0f .byte 83,72,65,53,49,50,32,98,108,111,99,107,32,116,114,97,110,115,102,111,114,109,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 +.previous .type sha512_block_data_order_xop,@function .align 64 sha512_block_data_order_xop: diff --git a/deps/openssl/config/archs/BSD-x86_64/asm/crypto/whrlpool/wp-x86_64.s b/deps/openssl/config/archs/BSD-x86_64/asm/crypto/whrlpool/wp-x86_64.s index 5e236f9481856c..172459c6403d7b 100644 --- a/deps/openssl/config/archs/BSD-x86_64/asm/crypto/whrlpool/wp-x86_64.s +++ b/deps/openssl/config/archs/BSD-x86_64/asm/crypto/whrlpool/wp-x86_64.s @@ -608,6 +608,7 @@ whirlpool_block: .cfi_endproc .size whirlpool_block,.-whirlpool_block +.section .rodata .align 64 .type .Ltable,@object .Ltable: diff --git a/deps/openssl/config/archs/BSD-x86_64/asm/crypto/x86_64cpuid.s b/deps/openssl/config/archs/BSD-x86_64/asm/crypto/x86_64cpuid.s index 6a5180311ccca8..a4e5a58e1a3af2 100644 --- a/deps/openssl/config/archs/BSD-x86_64/asm/crypto/x86_64cpuid.s +++ b/deps/openssl/config/archs/BSD-x86_64/asm/crypto/x86_64cpuid.s @@ -1,11 +1,11 @@ + .hidden OPENSSL_cpuid_setup .section .init call OPENSSL_cpuid_setup .hidden OPENSSL_ia32cap_P -.comm OPENSSL_ia32cap_P,16,4 - +.comm OPENSSL_ia32cap_P,40,4 .text .globl OPENSSL_atomic_add @@ -163,6 +163,7 @@ OPENSSL_ia32_cpuid: movl $7,%eax xorl %ecx,%ecx cpuid + movd %eax,%xmm1 btl $26,%r9d jc .Lnotknights andl $0xfff7ffff,%ebx @@ -173,9 +174,31 @@ OPENSSL_ia32_cpuid: jne .Lnotskylakex andl $0xfffeffff,%ebx + .Lnotskylakex: movl %ebx,8(%rdi) movl %ecx,12(%rdi) + movl %edx,16(%rdi) + + movd %xmm1,%eax + cmpl $0x1,%eax + jb .Lno_extended_info + movl $0x7,%eax + movl $0x1,%ecx + cpuid + movl %eax,20(%rdi) + movl %edx,24(%rdi) + movl %ebx,28(%rdi) + movl %ecx,32(%rdi) + + andl $0x80000,%edx + cmpl $0x0,%edx + je .Lno_extended_info + movl $0x24,%eax + movl $0x0,%ecx + cpuid + movl %ebx,36(%rdi) + .Lno_extended_info: btl $27,%r9d @@ -194,6 +217,9 @@ OPENSSL_ia32_cpuid: cmpl $6,%eax je .Ldone .Lclear_avx: + andl $0xff7fffff,20(%rdi) + + movl $0xefffe7ff,%eax andl %eax,%r9d movl $0x3fdeffdf,%eax diff --git a/deps/openssl/config/archs/BSD-x86_64/asm/include/internal/param_names.h b/deps/openssl/config/archs/BSD-x86_64/asm/include/internal/param_names.h new file mode 100644 index 00000000000000..0a0404a57e82b9 --- /dev/null +++ b/deps/openssl/config/archs/BSD-x86_64/asm/include/internal/param_names.h @@ -0,0 +1,469 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from include/internal/param_names.h.in + * + * Copyright 2023 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + +int ossl_param_find_pidx(const char *s); + +/* Parameter name definitions - generated by util/perl/OpenSSL/paramnames.pm */ +#define NUM_PIDX 346 + +#define PIDX_ALG_PARAM_ALGORITHM_ID 0 +#define PIDX_ALG_PARAM_ALGORITHM_ID_PARAMS 1 +#define PIDX_ALG_PARAM_CIPHER 2 +#define PIDX_ALG_PARAM_DIGEST 3 +#define PIDX_ALG_PARAM_ENGINE 4 +#define PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR 5 +#define PIDX_ALG_PARAM_MAC 6 +#define PIDX_ALG_PARAM_PROPERTIES 7 +#define PIDX_ASYM_CIPHER_PARAM_DIGEST PIDX_PKEY_PARAM_DIGEST +#define PIDX_ASYM_CIPHER_PARAM_ENGINE PIDX_PKEY_PARAM_ENGINE +#define PIDX_ASYM_CIPHER_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_ASYM_CIPHER_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_ASYM_CIPHER_PARAM_FIPS_RSA_PKCS15_PAD_DISABLED PIDX_PROV_PARAM_RSA_PKCS15_PAD_DISABLED +#define PIDX_ASYM_CIPHER_PARAM_IMPLICIT_REJECTION 8 +#define PIDX_ASYM_CIPHER_PARAM_MGF1_DIGEST PIDX_PKEY_PARAM_MGF1_DIGEST +#define PIDX_ASYM_CIPHER_PARAM_MGF1_DIGEST_PROPS PIDX_PKEY_PARAM_MGF1_PROPERTIES +#define PIDX_ASYM_CIPHER_PARAM_OAEP_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_ASYM_CIPHER_PARAM_OAEP_DIGEST_PROPS 9 +#define PIDX_ASYM_CIPHER_PARAM_OAEP_LABEL 10 +#define PIDX_ASYM_CIPHER_PARAM_PAD_MODE PIDX_PKEY_PARAM_PAD_MODE +#define PIDX_ASYM_CIPHER_PARAM_PROPERTIES PIDX_PKEY_PARAM_PROPERTIES +#define PIDX_ASYM_CIPHER_PARAM_TLS_CLIENT_VERSION 11 +#define PIDX_ASYM_CIPHER_PARAM_TLS_NEGOTIATED_VERSION 12 +#define PIDX_CAPABILITY_TLS_GROUP_ALG 13 +#define PIDX_CAPABILITY_TLS_GROUP_ID 14 +#define PIDX_CAPABILITY_TLS_GROUP_IS_KEM 15 +#define PIDX_CAPABILITY_TLS_GROUP_MAX_DTLS 16 +#define PIDX_CAPABILITY_TLS_GROUP_MAX_TLS 17 +#define PIDX_CAPABILITY_TLS_GROUP_MIN_DTLS 18 +#define PIDX_CAPABILITY_TLS_GROUP_MIN_TLS 19 +#define PIDX_CAPABILITY_TLS_GROUP_NAME 20 +#define PIDX_CAPABILITY_TLS_GROUP_NAME_INTERNAL 21 +#define PIDX_CAPABILITY_TLS_GROUP_SECURITY_BITS 22 +#define PIDX_CAPABILITY_TLS_SIGALG_CODE_POINT 23 +#define PIDX_CAPABILITY_TLS_SIGALG_HASH_NAME 24 +#define PIDX_CAPABILITY_TLS_SIGALG_HASH_OID 25 +#define PIDX_CAPABILITY_TLS_SIGALG_IANA_NAME 26 +#define PIDX_CAPABILITY_TLS_SIGALG_KEYTYPE 27 +#define PIDX_CAPABILITY_TLS_SIGALG_KEYTYPE_OID 28 +#define PIDX_CAPABILITY_TLS_SIGALG_MAX_DTLS 16 +#define PIDX_CAPABILITY_TLS_SIGALG_MAX_TLS 17 +#define PIDX_CAPABILITY_TLS_SIGALG_MIN_DTLS 18 +#define PIDX_CAPABILITY_TLS_SIGALG_MIN_TLS 19 +#define PIDX_CAPABILITY_TLS_SIGALG_NAME 29 +#define PIDX_CAPABILITY_TLS_SIGALG_OID 30 +#define PIDX_CAPABILITY_TLS_SIGALG_SECURITY_BITS 31 +#define PIDX_CAPABILITY_TLS_SIGALG_SIG_NAME 32 +#define PIDX_CAPABILITY_TLS_SIGALG_SIG_OID 33 +#define PIDX_CIPHER_PARAM_AEAD 34 +#define PIDX_CIPHER_PARAM_AEAD_IVLEN PIDX_CIPHER_PARAM_IVLEN +#define PIDX_CIPHER_PARAM_AEAD_IV_GENERATED 35 +#define PIDX_CIPHER_PARAM_AEAD_MAC_KEY 36 +#define PIDX_CIPHER_PARAM_AEAD_TAG 37 +#define PIDX_CIPHER_PARAM_AEAD_TAGLEN 38 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_AAD 39 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_AAD_PAD 40 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_GET_IV_GEN 41 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_IV_FIXED 42 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_SET_IV_INV 43 +#define PIDX_CIPHER_PARAM_ALGORITHM_ID PIDX_ALG_PARAM_ALGORITHM_ID +#define PIDX_CIPHER_PARAM_ALGORITHM_ID_PARAMS PIDX_ALG_PARAM_ALGORITHM_ID_PARAMS +#define PIDX_CIPHER_PARAM_ALGORITHM_ID_PARAMS_OLD 44 +#define PIDX_CIPHER_PARAM_BLOCK_SIZE 45 +#define PIDX_CIPHER_PARAM_CTS 46 +#define PIDX_CIPHER_PARAM_CTS_MODE 47 +#define PIDX_CIPHER_PARAM_CUSTOM_IV 48 +#define PIDX_CIPHER_PARAM_DECRYPT_ONLY 49 +#define PIDX_CIPHER_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_CIPHER_PARAM_FIPS_ENCRYPT_CHECK 50 +#define PIDX_CIPHER_PARAM_HAS_RAND_KEY 51 +#define PIDX_CIPHER_PARAM_IV 52 +#define PIDX_CIPHER_PARAM_IVLEN 53 +#define PIDX_CIPHER_PARAM_KEYLEN 54 +#define PIDX_CIPHER_PARAM_MODE 55 +#define PIDX_CIPHER_PARAM_NUM 56 +#define PIDX_CIPHER_PARAM_PADDING 57 +#define PIDX_CIPHER_PARAM_PIPELINE_AEAD_TAG 58 +#define PIDX_CIPHER_PARAM_RANDOM_KEY 59 +#define PIDX_CIPHER_PARAM_RC2_KEYBITS 60 +#define PIDX_CIPHER_PARAM_ROUNDS 61 +#define PIDX_CIPHER_PARAM_SPEED 62 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK 63 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD 64 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD_PACKLEN 65 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC 66 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_IN 67 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_LEN 68 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_INTERLEAVE 69 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_BUFSIZE 70 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_SEND_FRAGMENT 71 +#define PIDX_CIPHER_PARAM_TLS_MAC 72 +#define PIDX_CIPHER_PARAM_TLS_MAC_SIZE 73 +#define PIDX_CIPHER_PARAM_TLS_VERSION 74 +#define PIDX_CIPHER_PARAM_UPDATED_IV 75 +#define PIDX_CIPHER_PARAM_USE_BITS 76 +#define PIDX_CIPHER_PARAM_XTS_STANDARD 77 +#define PIDX_DECODER_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_DIGEST_PARAM_ALGID_ABSENT 78 +#define PIDX_DIGEST_PARAM_BLOCK_SIZE 45 +#define PIDX_DIGEST_PARAM_MICALG 79 +#define PIDX_DIGEST_PARAM_PAD_TYPE 80 +#define PIDX_DIGEST_PARAM_SIZE 81 +#define PIDX_DIGEST_PARAM_SSL3_MS 82 +#define PIDX_DIGEST_PARAM_XOF 83 +#define PIDX_DIGEST_PARAM_XOFLEN 84 +#define PIDX_DRBG_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_DRBG_PARAM_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_DRBG_PARAM_ENTROPY_REQUIRED 85 +#define PIDX_DRBG_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_DRBG_PARAM_FIPS_DIGEST_CHECK PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK +#define PIDX_DRBG_PARAM_MAC PIDX_ALG_PARAM_MAC +#define PIDX_DRBG_PARAM_MAX_ADINLEN 86 +#define PIDX_DRBG_PARAM_MAX_ENTROPYLEN 87 +#define PIDX_DRBG_PARAM_MAX_LENGTH 88 +#define PIDX_DRBG_PARAM_MAX_NONCELEN 89 +#define PIDX_DRBG_PARAM_MAX_PERSLEN 90 +#define PIDX_DRBG_PARAM_MIN_ENTROPYLEN 91 +#define PIDX_DRBG_PARAM_MIN_LENGTH 92 +#define PIDX_DRBG_PARAM_MIN_NONCELEN 93 +#define PIDX_DRBG_PARAM_PREDICTION_RESISTANCE 94 +#define PIDX_DRBG_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_DRBG_PARAM_RANDOM_DATA 95 +#define PIDX_DRBG_PARAM_RESEED_COUNTER 96 +#define PIDX_DRBG_PARAM_RESEED_REQUESTS 97 +#define PIDX_DRBG_PARAM_RESEED_TIME 98 +#define PIDX_DRBG_PARAM_RESEED_TIME_INTERVAL 99 +#define PIDX_DRBG_PARAM_SIZE 81 +#define PIDX_DRBG_PARAM_USE_DF 100 +#define PIDX_ENCODER_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_ENCODER_PARAM_ENCRYPT_LEVEL 101 +#define PIDX_ENCODER_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_ENCODER_PARAM_SAVE_PARAMETERS 102 +#define PIDX_EXCHANGE_PARAM_EC_ECDH_COFACTOR_MODE 103 +#define PIDX_EXCHANGE_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_EXCHANGE_PARAM_FIPS_DIGEST_CHECK PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK +#define PIDX_EXCHANGE_PARAM_FIPS_ECDH_COFACTOR_CHECK PIDX_PROV_PARAM_ECDH_COFACTOR_CHECK +#define PIDX_EXCHANGE_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_EXCHANGE_PARAM_KDF_DIGEST 104 +#define PIDX_EXCHANGE_PARAM_KDF_DIGEST_PROPS 105 +#define PIDX_EXCHANGE_PARAM_KDF_OUTLEN 106 +#define PIDX_EXCHANGE_PARAM_KDF_TYPE 107 +#define PIDX_EXCHANGE_PARAM_KDF_UKM 108 +#define PIDX_EXCHANGE_PARAM_PAD 109 +#define PIDX_GEN_PARAM_ITERATION 110 +#define PIDX_GEN_PARAM_POTENTIAL 111 +#define PIDX_KDF_PARAM_ARGON2_AD 112 +#define PIDX_KDF_PARAM_ARGON2_LANES 113 +#define PIDX_KDF_PARAM_ARGON2_MEMCOST 114 +#define PIDX_KDF_PARAM_ARGON2_VERSION 115 +#define PIDX_KDF_PARAM_CEK_ALG 116 +#define PIDX_KDF_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_KDF_PARAM_CONSTANT 117 +#define PIDX_KDF_PARAM_DATA 118 +#define PIDX_KDF_PARAM_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_KDF_PARAM_EARLY_CLEAN 119 +#define PIDX_KDF_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_KDF_PARAM_FIPS_DIGEST_CHECK PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK +#define PIDX_KDF_PARAM_FIPS_EMS_CHECK 120 +#define PIDX_KDF_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_KDF_PARAM_HMACDRBG_ENTROPY 121 +#define PIDX_KDF_PARAM_HMACDRBG_NONCE 122 +#define PIDX_KDF_PARAM_INFO 123 +#define PIDX_KDF_PARAM_ITER 124 +#define PIDX_KDF_PARAM_KBKDF_R 125 +#define PIDX_KDF_PARAM_KBKDF_USE_L 126 +#define PIDX_KDF_PARAM_KBKDF_USE_SEPARATOR 127 +#define PIDX_KDF_PARAM_KEY 128 +#define PIDX_KDF_PARAM_LABEL 129 +#define PIDX_KDF_PARAM_MAC PIDX_ALG_PARAM_MAC +#define PIDX_KDF_PARAM_MAC_SIZE 130 +#define PIDX_KDF_PARAM_MODE 55 +#define PIDX_KDF_PARAM_PASSWORD 131 +#define PIDX_KDF_PARAM_PKCS12_ID 132 +#define PIDX_KDF_PARAM_PKCS5 133 +#define PIDX_KDF_PARAM_PREFIX 134 +#define PIDX_KDF_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_KDF_PARAM_SALT 135 +#define PIDX_KDF_PARAM_SCRYPT_MAXMEM 136 +#define PIDX_KDF_PARAM_SCRYPT_N 137 +#define PIDX_KDF_PARAM_SCRYPT_P 138 +#define PIDX_KDF_PARAM_SCRYPT_R 125 +#define PIDX_KDF_PARAM_SECRET 139 +#define PIDX_KDF_PARAM_SEED 140 +#define PIDX_KDF_PARAM_SIZE 81 +#define PIDX_KDF_PARAM_SSHKDF_SESSION_ID 141 +#define PIDX_KDF_PARAM_SSHKDF_TYPE 142 +#define PIDX_KDF_PARAM_SSHKDF_XCGHASH 143 +#define PIDX_KDF_PARAM_THREADS 144 +#define PIDX_KDF_PARAM_UKM 145 +#define PIDX_KDF_PARAM_X942_ACVPINFO 146 +#define PIDX_KDF_PARAM_X942_PARTYUINFO 147 +#define PIDX_KDF_PARAM_X942_PARTYVINFO 148 +#define PIDX_KDF_PARAM_X942_SUPP_PRIVINFO 149 +#define PIDX_KDF_PARAM_X942_SUPP_PUBINFO 150 +#define PIDX_KDF_PARAM_X942_USE_KEYBITS 151 +#define PIDX_KEM_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_KEM_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_KEM_PARAM_IKME 152 +#define PIDX_KEM_PARAM_OPERATION 153 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_BLOCK_PADDING 154 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_HS_PADDING 155 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_MAX_EARLY_DATA 156 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_MAX_FRAG_LEN 157 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_MODE 55 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_OPTIONS 158 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_READ_AHEAD 159 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_STREAM_MAC 160 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_TLSTREE 161 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_USE_ETM 162 +#define PIDX_LIBSSL_RECORD_LAYER_READ_BUFFER_LEN 163 +#define PIDX_MAC_PARAM_BLOCK_SIZE 164 +#define PIDX_MAC_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_MAC_PARAM_CUSTOM 165 +#define PIDX_MAC_PARAM_C_ROUNDS 166 +#define PIDX_MAC_PARAM_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_MAC_PARAM_DIGEST_NOINIT 167 +#define PIDX_MAC_PARAM_DIGEST_ONESHOT 168 +#define PIDX_MAC_PARAM_D_ROUNDS 169 +#define PIDX_MAC_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_MAC_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_MAC_PARAM_FIPS_NO_SHORT_MAC PIDX_PROV_PARAM_NO_SHORT_MAC +#define PIDX_MAC_PARAM_IV 52 +#define PIDX_MAC_PARAM_KEY 128 +#define PIDX_MAC_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_MAC_PARAM_SALT 135 +#define PIDX_MAC_PARAM_SIZE 81 +#define PIDX_MAC_PARAM_TLS_DATA_SIZE 170 +#define PIDX_MAC_PARAM_XOF 83 +#define PIDX_OBJECT_PARAM_DATA 118 +#define PIDX_OBJECT_PARAM_DATA_STRUCTURE 171 +#define PIDX_OBJECT_PARAM_DATA_TYPE 172 +#define PIDX_OBJECT_PARAM_DESC 173 +#define PIDX_OBJECT_PARAM_INPUT_TYPE 174 +#define PIDX_OBJECT_PARAM_REFERENCE 175 +#define PIDX_OBJECT_PARAM_TYPE 142 +#define PIDX_PASSPHRASE_PARAM_INFO 123 +#define PIDX_PKEY_PARAM_ALGORITHM_ID PIDX_ALG_PARAM_ALGORITHM_ID +#define PIDX_PKEY_PARAM_ALGORITHM_ID_PARAMS PIDX_ALG_PARAM_ALGORITHM_ID_PARAMS +#define PIDX_PKEY_PARAM_BITS 176 +#define PIDX_PKEY_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_PKEY_PARAM_DEFAULT_DIGEST 177 +#define PIDX_PKEY_PARAM_DHKEM_IKM 178 +#define PIDX_PKEY_PARAM_DH_GENERATOR 179 +#define PIDX_PKEY_PARAM_DH_PRIV_LEN 180 +#define PIDX_PKEY_PARAM_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_PKEY_PARAM_DIGEST_SIZE 181 +#define PIDX_PKEY_PARAM_DIST_ID 182 +#define PIDX_PKEY_PARAM_EC_A 183 +#define PIDX_PKEY_PARAM_EC_B 184 +#define PIDX_PKEY_PARAM_EC_CHAR2_M 185 +#define PIDX_PKEY_PARAM_EC_CHAR2_PP_K1 186 +#define PIDX_PKEY_PARAM_EC_CHAR2_PP_K2 187 +#define PIDX_PKEY_PARAM_EC_CHAR2_PP_K3 188 +#define PIDX_PKEY_PARAM_EC_CHAR2_TP_BASIS 189 +#define PIDX_PKEY_PARAM_EC_CHAR2_TYPE 190 +#define PIDX_PKEY_PARAM_EC_COFACTOR 191 +#define PIDX_PKEY_PARAM_EC_DECODED_FROM_EXPLICIT_PARAMS 192 +#define PIDX_PKEY_PARAM_EC_ENCODING 193 +#define PIDX_PKEY_PARAM_EC_FIELD_TYPE 194 +#define PIDX_PKEY_PARAM_EC_GENERATOR 195 +#define PIDX_PKEY_PARAM_EC_GROUP_CHECK_TYPE 196 +#define PIDX_PKEY_PARAM_EC_INCLUDE_PUBLIC 197 +#define PIDX_PKEY_PARAM_EC_ORDER 198 +#define PIDX_PKEY_PARAM_EC_P 138 +#define PIDX_PKEY_PARAM_EC_POINT_CONVERSION_FORMAT 199 +#define PIDX_PKEY_PARAM_EC_PUB_X 200 +#define PIDX_PKEY_PARAM_EC_PUB_Y 201 +#define PIDX_PKEY_PARAM_EC_SEED 140 +#define PIDX_PKEY_PARAM_ENCODED_PUBLIC_KEY 202 +#define PIDX_PKEY_PARAM_ENGINE PIDX_ALG_PARAM_ENGINE +#define PIDX_PKEY_PARAM_FFC_COFACTOR 203 +#define PIDX_PKEY_PARAM_FFC_DIGEST PIDX_PKEY_PARAM_DIGEST +#define PIDX_PKEY_PARAM_FFC_DIGEST_PROPS PIDX_PKEY_PARAM_PROPERTIES +#define PIDX_PKEY_PARAM_FFC_G 204 +#define PIDX_PKEY_PARAM_FFC_GINDEX 205 +#define PIDX_PKEY_PARAM_FFC_H 206 +#define PIDX_PKEY_PARAM_FFC_P 138 +#define PIDX_PKEY_PARAM_FFC_PBITS 207 +#define PIDX_PKEY_PARAM_FFC_PCOUNTER 208 +#define PIDX_PKEY_PARAM_FFC_Q 209 +#define PIDX_PKEY_PARAM_FFC_QBITS 210 +#define PIDX_PKEY_PARAM_FFC_SEED 140 +#define PIDX_PKEY_PARAM_FFC_TYPE 142 +#define PIDX_PKEY_PARAM_FFC_VALIDATE_G 211 +#define PIDX_PKEY_PARAM_FFC_VALIDATE_LEGACY 212 +#define PIDX_PKEY_PARAM_FFC_VALIDATE_PQ 213 +#define PIDX_PKEY_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK 214 +#define PIDX_PKEY_PARAM_FIPS_KEY_CHECK 215 +#define PIDX_PKEY_PARAM_FIPS_SIGN_CHECK 216 +#define PIDX_PKEY_PARAM_GROUP_NAME 217 +#define PIDX_PKEY_PARAM_IMPLICIT_REJECTION 8 +#define PIDX_PKEY_PARAM_MANDATORY_DIGEST 218 +#define PIDX_PKEY_PARAM_MASKGENFUNC 219 +#define PIDX_PKEY_PARAM_MAX_SIZE 220 +#define PIDX_PKEY_PARAM_MGF1_DIGEST 221 +#define PIDX_PKEY_PARAM_MGF1_PROPERTIES 222 +#define PIDX_PKEY_PARAM_ML_DSA_INPUT_FORMATS 223 +#define PIDX_PKEY_PARAM_ML_DSA_OUTPUT_FORMATS 224 +#define PIDX_PKEY_PARAM_ML_DSA_PREFER_SEED 225 +#define PIDX_PKEY_PARAM_ML_DSA_RETAIN_SEED 226 +#define PIDX_PKEY_PARAM_ML_DSA_SEED 140 +#define PIDX_PKEY_PARAM_ML_KEM_IMPORT_PCT_TYPE 227 +#define PIDX_PKEY_PARAM_ML_KEM_INPUT_FORMATS 228 +#define PIDX_PKEY_PARAM_ML_KEM_OUTPUT_FORMATS 229 +#define PIDX_PKEY_PARAM_ML_KEM_PREFER_SEED 230 +#define PIDX_PKEY_PARAM_ML_KEM_RETAIN_SEED 231 +#define PIDX_PKEY_PARAM_ML_KEM_SEED 140 +#define PIDX_PKEY_PARAM_PAD_MODE 232 +#define PIDX_PKEY_PARAM_PRIV_KEY 233 +#define PIDX_PKEY_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_PKEY_PARAM_PUB_KEY 234 +#define PIDX_PKEY_PARAM_RSA_BITS PIDX_PKEY_PARAM_BITS +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT 235 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT1 236 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT2 237 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT3 238 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT4 239 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT5 240 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT6 241 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT7 242 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT8 243 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT9 244 +#define PIDX_PKEY_PARAM_RSA_D 245 +#define PIDX_PKEY_PARAM_RSA_DERIVE_FROM_PQ 246 +#define PIDX_PKEY_PARAM_RSA_DIGEST PIDX_PKEY_PARAM_DIGEST +#define PIDX_PKEY_PARAM_RSA_DIGEST_PROPS PIDX_PKEY_PARAM_PROPERTIES +#define PIDX_PKEY_PARAM_RSA_E 247 +#define PIDX_PKEY_PARAM_RSA_EXPONENT 248 +#define PIDX_PKEY_PARAM_RSA_EXPONENT1 249 +#define PIDX_PKEY_PARAM_RSA_EXPONENT10 250 +#define PIDX_PKEY_PARAM_RSA_EXPONENT2 251 +#define PIDX_PKEY_PARAM_RSA_EXPONENT3 252 +#define PIDX_PKEY_PARAM_RSA_EXPONENT4 253 +#define PIDX_PKEY_PARAM_RSA_EXPONENT5 254 +#define PIDX_PKEY_PARAM_RSA_EXPONENT6 255 +#define PIDX_PKEY_PARAM_RSA_EXPONENT7 256 +#define PIDX_PKEY_PARAM_RSA_EXPONENT8 257 +#define PIDX_PKEY_PARAM_RSA_EXPONENT9 258 +#define PIDX_PKEY_PARAM_RSA_FACTOR 259 +#define PIDX_PKEY_PARAM_RSA_FACTOR1 260 +#define PIDX_PKEY_PARAM_RSA_FACTOR10 261 +#define PIDX_PKEY_PARAM_RSA_FACTOR2 262 +#define PIDX_PKEY_PARAM_RSA_FACTOR3 263 +#define PIDX_PKEY_PARAM_RSA_FACTOR4 264 +#define PIDX_PKEY_PARAM_RSA_FACTOR5 265 +#define PIDX_PKEY_PARAM_RSA_FACTOR6 266 +#define PIDX_PKEY_PARAM_RSA_FACTOR7 267 +#define PIDX_PKEY_PARAM_RSA_FACTOR8 268 +#define PIDX_PKEY_PARAM_RSA_FACTOR9 269 +#define PIDX_PKEY_PARAM_RSA_MASKGENFUNC PIDX_PKEY_PARAM_MASKGENFUNC +#define PIDX_PKEY_PARAM_RSA_MGF1_DIGEST PIDX_PKEY_PARAM_MGF1_DIGEST +#define PIDX_PKEY_PARAM_RSA_N 137 +#define PIDX_PKEY_PARAM_RSA_PRIMES 270 +#define PIDX_PKEY_PARAM_RSA_PSS_SALTLEN 271 +#define PIDX_PKEY_PARAM_RSA_TEST_P1 272 +#define PIDX_PKEY_PARAM_RSA_TEST_P2 273 +#define PIDX_PKEY_PARAM_RSA_TEST_Q1 274 +#define PIDX_PKEY_PARAM_RSA_TEST_Q2 275 +#define PIDX_PKEY_PARAM_RSA_TEST_XP 276 +#define PIDX_PKEY_PARAM_RSA_TEST_XP1 277 +#define PIDX_PKEY_PARAM_RSA_TEST_XP2 278 +#define PIDX_PKEY_PARAM_RSA_TEST_XQ 279 +#define PIDX_PKEY_PARAM_RSA_TEST_XQ1 280 +#define PIDX_PKEY_PARAM_RSA_TEST_XQ2 281 +#define PIDX_PKEY_PARAM_SECURITY_BITS 282 +#define PIDX_PKEY_PARAM_SLH_DSA_SEED 140 +#define PIDX_PKEY_PARAM_USE_COFACTOR_ECDH PIDX_PKEY_PARAM_USE_COFACTOR_FLAG +#define PIDX_PKEY_PARAM_USE_COFACTOR_FLAG 283 +#define PIDX_PROV_PARAM_BUILDINFO 284 +#define PIDX_PROV_PARAM_CORE_MODULE_FILENAME 285 +#define PIDX_PROV_PARAM_CORE_PROV_NAME 286 +#define PIDX_PROV_PARAM_CORE_VERSION 287 +#define PIDX_PROV_PARAM_DRBG_TRUNC_DIGEST 288 +#define PIDX_PROV_PARAM_DSA_SIGN_DISABLED 289 +#define PIDX_PROV_PARAM_ECDH_COFACTOR_CHECK 290 +#define PIDX_PROV_PARAM_HKDF_DIGEST_CHECK 291 +#define PIDX_PROV_PARAM_HKDF_KEY_CHECK 292 +#define PIDX_PROV_PARAM_HMAC_KEY_CHECK 293 +#define PIDX_PROV_PARAM_KBKDF_KEY_CHECK 294 +#define PIDX_PROV_PARAM_KMAC_KEY_CHECK 295 +#define PIDX_PROV_PARAM_NAME 296 +#define PIDX_PROV_PARAM_NO_SHORT_MAC 297 +#define PIDX_PROV_PARAM_PBKDF2_LOWER_BOUND_CHECK 298 +#define PIDX_PROV_PARAM_RSA_PKCS15_PAD_DISABLED 299 +#define PIDX_PROV_PARAM_RSA_PSS_SALTLEN_CHECK 300 +#define PIDX_PROV_PARAM_RSA_SIGN_X931_PAD_DISABLED 301 +#define PIDX_PROV_PARAM_SECURITY_CHECKS 302 +#define PIDX_PROV_PARAM_SELF_TEST_DESC 303 +#define PIDX_PROV_PARAM_SELF_TEST_PHASE 304 +#define PIDX_PROV_PARAM_SELF_TEST_TYPE 305 +#define PIDX_PROV_PARAM_SIGNATURE_DIGEST_CHECK 306 +#define PIDX_PROV_PARAM_SSHKDF_DIGEST_CHECK 307 +#define PIDX_PROV_PARAM_SSHKDF_KEY_CHECK 308 +#define PIDX_PROV_PARAM_SSKDF_DIGEST_CHECK 309 +#define PIDX_PROV_PARAM_SSKDF_KEY_CHECK 310 +#define PIDX_PROV_PARAM_STATUS 311 +#define PIDX_PROV_PARAM_TDES_ENCRYPT_DISABLED 312 +#define PIDX_PROV_PARAM_TLS13_KDF_DIGEST_CHECK 313 +#define PIDX_PROV_PARAM_TLS13_KDF_KEY_CHECK 314 +#define PIDX_PROV_PARAM_TLS1_PRF_DIGEST_CHECK 315 +#define PIDX_PROV_PARAM_TLS1_PRF_EMS_CHECK 316 +#define PIDX_PROV_PARAM_TLS1_PRF_KEY_CHECK 317 +#define PIDX_PROV_PARAM_VERSION 115 +#define PIDX_PROV_PARAM_X942KDF_KEY_CHECK 318 +#define PIDX_PROV_PARAM_X963KDF_DIGEST_CHECK 319 +#define PIDX_PROV_PARAM_X963KDF_KEY_CHECK 320 +#define PIDX_RAND_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_RAND_PARAM_GENERATE 321 +#define PIDX_RAND_PARAM_MAX_REQUEST 322 +#define PIDX_RAND_PARAM_STATE 323 +#define PIDX_RAND_PARAM_STRENGTH 324 +#define PIDX_RAND_PARAM_TEST_ENTROPY 325 +#define PIDX_RAND_PARAM_TEST_NONCE 326 +#define PIDX_SIGNATURE_PARAM_ADD_RANDOM 327 +#define PIDX_SIGNATURE_PARAM_ALGORITHM_ID PIDX_PKEY_PARAM_ALGORITHM_ID +#define PIDX_SIGNATURE_PARAM_ALGORITHM_ID_PARAMS PIDX_PKEY_PARAM_ALGORITHM_ID_PARAMS +#define PIDX_SIGNATURE_PARAM_CONTEXT_STRING 328 +#define PIDX_SIGNATURE_PARAM_DETERMINISTIC 329 +#define PIDX_SIGNATURE_PARAM_DIGEST PIDX_PKEY_PARAM_DIGEST +#define PIDX_SIGNATURE_PARAM_DIGEST_SIZE PIDX_PKEY_PARAM_DIGEST_SIZE +#define PIDX_SIGNATURE_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_SIGNATURE_PARAM_FIPS_DIGEST_CHECK PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK +#define PIDX_SIGNATURE_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_SIGNATURE_PARAM_FIPS_RSA_PSS_SALTLEN_CHECK 300 +#define PIDX_SIGNATURE_PARAM_FIPS_SIGN_CHECK PIDX_PKEY_PARAM_FIPS_SIGN_CHECK +#define PIDX_SIGNATURE_PARAM_FIPS_SIGN_X931_PAD_CHECK 330 +#define PIDX_SIGNATURE_PARAM_FIPS_VERIFY_MESSAGE 331 +#define PIDX_SIGNATURE_PARAM_INSTANCE 332 +#define PIDX_SIGNATURE_PARAM_KAT 333 +#define PIDX_SIGNATURE_PARAM_MESSAGE_ENCODING 334 +#define PIDX_SIGNATURE_PARAM_MGF1_DIGEST PIDX_PKEY_PARAM_MGF1_DIGEST +#define PIDX_SIGNATURE_PARAM_MGF1_PROPERTIES PIDX_PKEY_PARAM_MGF1_PROPERTIES +#define PIDX_SIGNATURE_PARAM_MU 335 +#define PIDX_SIGNATURE_PARAM_NONCE_TYPE 336 +#define PIDX_SIGNATURE_PARAM_PAD_MODE PIDX_PKEY_PARAM_PAD_MODE +#define PIDX_SIGNATURE_PARAM_PROPERTIES PIDX_PKEY_PARAM_PROPERTIES +#define PIDX_SIGNATURE_PARAM_PSS_SALTLEN 271 +#define PIDX_SIGNATURE_PARAM_SIGNATURE 337 +#define PIDX_SIGNATURE_PARAM_TEST_ENTROPY 338 +#define PIDX_SKEY_PARAM_KEY_LENGTH 339 +#define PIDX_SKEY_PARAM_RAW_BYTES 340 +#define PIDX_STORE_PARAM_ALIAS 341 +#define PIDX_STORE_PARAM_DIGEST 3 +#define PIDX_STORE_PARAM_EXPECT 342 +#define PIDX_STORE_PARAM_FINGERPRINT 343 +#define PIDX_STORE_PARAM_INPUT_TYPE 174 +#define PIDX_STORE_PARAM_ISSUER 296 +#define PIDX_STORE_PARAM_PROPERTIES 7 +#define PIDX_STORE_PARAM_SERIAL 344 +#define PIDX_STORE_PARAM_SUBJECT 345 diff --git a/deps/openssl/config/archs/BSD-x86_64/asm/include/openssl/asn1.h b/deps/openssl/config/archs/BSD-x86_64/asm/include/openssl/asn1.h index 21ff58e3d803d4..15e9e44674b0f3 100644 --- a/deps/openssl/config/archs/BSD-x86_64/asm/include/openssl/asn1.h +++ b/deps/openssl/config/archs/BSD-x86_64/asm/include/openssl/asn1.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/asn1.h.in * - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -21,6 +21,9 @@ # define HEADER_ASN1_H # endif +# ifndef OPENSSL_NO_STDIO +# include +# endif # include # include # include @@ -50,14 +53,14 @@ extern "C" { # define V_ASN1_PRIMITIVE_TAG 0x1f # define V_ASN1_PRIMATIVE_TAG /*compat*/ V_ASN1_PRIMITIVE_TAG -# define V_ASN1_APP_CHOOSE -2/* let the recipient choose */ -# define V_ASN1_OTHER -3/* used in ASN1_TYPE */ -# define V_ASN1_ANY -4/* used in ASN1 template code */ +# define V_ASN1_APP_CHOOSE -2 /* let the recipient choose */ +# define V_ASN1_OTHER -3 /* used in ASN1_TYPE */ +# define V_ASN1_ANY -4 /* used in ASN1 template code */ # define V_ASN1_UNDEF -1 /* ASN.1 tag values */ # define V_ASN1_EOC 0 -# define V_ASN1_BOOLEAN 1 /**/ +# define V_ASN1_BOOLEAN 1 # define V_ASN1_INTEGER 2 # define V_ASN1_BIT_STRING 3 # define V_ASN1_OCTET_STRING 4 @@ -70,19 +73,19 @@ extern "C" { # define V_ASN1_UTF8STRING 12 # define V_ASN1_SEQUENCE 16 # define V_ASN1_SET 17 -# define V_ASN1_NUMERICSTRING 18 /**/ +# define V_ASN1_NUMERICSTRING 18 # define V_ASN1_PRINTABLESTRING 19 # define V_ASN1_T61STRING 20 -# define V_ASN1_TELETEXSTRING 20/* alias */ -# define V_ASN1_VIDEOTEXSTRING 21 /**/ +# define V_ASN1_TELETEXSTRING 20 /* alias */ +# define V_ASN1_VIDEOTEXSTRING 21 # define V_ASN1_IA5STRING 22 # define V_ASN1_UTCTIME 23 -# define V_ASN1_GENERALIZEDTIME 24 /**/ -# define V_ASN1_GRAPHICSTRING 25 /**/ -# define V_ASN1_ISO64STRING 26 /**/ -# define V_ASN1_VISIBLESTRING 26/* alias */ -# define V_ASN1_GENERALSTRING 27 /**/ -# define V_ASN1_UNIVERSALSTRING 28 /**/ +# define V_ASN1_GENERALIZEDTIME 24 +# define V_ASN1_GRAPHICSTRING 25 +# define V_ASN1_ISO64STRING 26 +# define V_ASN1_VISIBLESTRING 26 /* alias */ +# define V_ASN1_GENERALSTRING 27 +# define V_ASN1_UNIVERSALSTRING 28 # define V_ASN1_BMPSTRING 30 /* @@ -155,7 +158,7 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_ALGOR, X509_ALGOR, X509_ALGOR) -# define ASN1_STRING_FLAG_BITS_LEFT 0x08/* Set if 0x07 has bits left value */ +# define ASN1_STRING_FLAG_BITS_LEFT 0x08 /* Set if 0x07 has bits left value */ /* * This indicates that the ASN1_STRING is not a real value but just a place * holder for the location where indefinite length constructed data should be @@ -275,7 +278,7 @@ typedef struct ASN1_TLC_st ASN1_TLC; /* This is just an opaque pointer */ typedef struct ASN1_VALUE_st ASN1_VALUE; -/* Declare ASN1 functions: the implement macro in in asn1t.h */ +/* Declare ASN1 functions: the implement macro is in asn1t.h */ /* * The mysterious 'extern' that's passed to some macros is innocuous, @@ -368,6 +371,7 @@ typedef struct ASN1_VALUE_st ASN1_VALUE; typedef void *d2i_of_void(void **, const unsigned char **, long); typedef int i2d_of_void(const void *, unsigned char **); +typedef int OSSL_i2d_of_void_ctx(const void *, unsigned char **, void *vctx); /*- * The following macros and typedefs allow an ASN1_ITEM @@ -996,6 +1000,8 @@ int ASN1_TYPE_get_int_octetstring(const ASN1_TYPE *a, long *num, unsigned char *data, int max_len); void *ASN1_item_unpack(const ASN1_STRING *oct, const ASN1_ITEM *it); +void *ASN1_item_unpack_ex(const ASN1_STRING *oct, const ASN1_ITEM *it, + OSSL_LIB_CTX *libctx, const char *propq); ASN1_STRING *ASN1_item_pack(void *obj, const ASN1_ITEM *it, ASN1_OCTET_STRING **oct); diff --git a/deps/openssl/config/archs/BSD-x86_64/asm/include/openssl/bio.h b/deps/openssl/config/archs/BSD-x86_64/asm/include/openssl/bio.h index f9aa74731c833c..e02f867beb0ec0 100644 --- a/deps/openssl/config/archs/BSD-x86_64/asm/include/openssl/bio.h +++ b/deps/openssl/config/archs/BSD-x86_64/asm/include/openssl/bio.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/bio.h.in * - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -67,8 +67,13 @@ extern "C" { # define BIO_TYPE_DGRAM_SCTP (24|BIO_TYPE_SOURCE_SINK|BIO_TYPE_DESCRIPTOR) # endif # define BIO_TYPE_CORE_TO_PROV (25|BIO_TYPE_SOURCE_SINK) +# define BIO_TYPE_DGRAM_PAIR (26|BIO_TYPE_SOURCE_SINK) +# define BIO_TYPE_DGRAM_MEM (27|BIO_TYPE_SOURCE_SINK) +/* Custom type starting index returned by BIO_get_new_index() */ #define BIO_TYPE_START 128 +/* Custom type maximum index that can be returned by BIO_get_new_index() */ +#define BIO_TYPE_MASK 0xFF /* * BIO_FILENAME_READ|BIO_CLOSE to open or close on free. @@ -171,6 +176,31 @@ extern "C" { # define BIO_CTRL_SET_INDENT 80 # define BIO_CTRL_GET_INDENT 81 +# define BIO_CTRL_DGRAM_GET_LOCAL_ADDR_CAP 82 +# define BIO_CTRL_DGRAM_GET_LOCAL_ADDR_ENABLE 83 +# define BIO_CTRL_DGRAM_SET_LOCAL_ADDR_ENABLE 84 +# define BIO_CTRL_DGRAM_GET_EFFECTIVE_CAPS 85 +# define BIO_CTRL_DGRAM_GET_CAPS 86 +# define BIO_CTRL_DGRAM_SET_CAPS 87 +# define BIO_CTRL_DGRAM_GET_NO_TRUNC 88 +# define BIO_CTRL_DGRAM_SET_NO_TRUNC 89 + +/* + * internal BIO: + * # define BIO_CTRL_SET_KTLS_TX_ZEROCOPY_SENDFILE 90 + */ + +# define BIO_CTRL_GET_RPOLL_DESCRIPTOR 91 +# define BIO_CTRL_GET_WPOLL_DESCRIPTOR 92 +# define BIO_CTRL_DGRAM_DETECT_PEER_ADDR 93 +# define BIO_CTRL_DGRAM_SET0_LOCAL_ADDR 94 + +# define BIO_DGRAM_CAP_NONE 0U +# define BIO_DGRAM_CAP_HANDLES_SRC_ADDR (1U << 0) +# define BIO_DGRAM_CAP_HANDLES_DST_ADDR (1U << 1) +# define BIO_DGRAM_CAP_PROVIDES_SRC_ADDR (1U << 2) +# define BIO_DGRAM_CAP_PROVIDES_DST_ADDR (1U << 3) + # ifndef OPENSSL_NO_KTLS # define BIO_get_ktls_send(b) \ (BIO_ctrl(b, BIO_CTRL_GET_KTLS_SEND, 0, NULL) > 0) @@ -208,7 +238,7 @@ extern "C" { # define BIO_FLAGS_NONCLEAR_RST 0x400 # define BIO_FLAGS_IN_EOF 0x800 -/* the BIO FLAGS values 0x1000 to 0x4000 are reserved for internal KTLS flags */ +/* the BIO FLAGS values 0x1000 to 0x8000 are reserved for internal KTLS flags */ typedef union bio_addr_st BIO_ADDR; typedef struct bio_addrinfo_st BIO_ADDRINFO; @@ -256,12 +286,14 @@ void BIO_clear_flags(BIO *b, int flags); # define BIO_RR_ACCEPT 0x03 /* These are passed by the BIO callback */ -# define BIO_CB_FREE 0x01 -# define BIO_CB_READ 0x02 -# define BIO_CB_WRITE 0x03 -# define BIO_CB_PUTS 0x04 -# define BIO_CB_GETS 0x05 -# define BIO_CB_CTRL 0x06 +# define BIO_CB_FREE 0x01 +# define BIO_CB_READ 0x02 +# define BIO_CB_WRITE 0x03 +# define BIO_CB_PUTS 0x04 +# define BIO_CB_GETS 0x05 +# define BIO_CB_CTRL 0x06 +# define BIO_CB_RECVMMSG 0x07 +# define BIO_CB_SENDMMSG 0x08 /* * The callback is called before and after the underling operation, The @@ -362,6 +394,36 @@ struct bio_dgram_sctp_prinfo { }; # endif +/* BIO_sendmmsg/BIO_recvmmsg-related definitions */ +typedef struct bio_msg_st { + void *data; + size_t data_len; + BIO_ADDR *peer, *local; + uint64_t flags; +} BIO_MSG; + +typedef struct bio_mmsg_cb_args_st { + BIO_MSG *msg; + size_t stride, num_msg; + uint64_t flags; + size_t *msgs_processed; +} BIO_MMSG_CB_ARGS; + +#define BIO_POLL_DESCRIPTOR_TYPE_NONE 0 +#define BIO_POLL_DESCRIPTOR_TYPE_SOCK_FD 1 +#define BIO_POLL_DESCRIPTOR_TYPE_SSL 2 +#define BIO_POLL_DESCRIPTOR_CUSTOM_START 8192 + +typedef struct bio_poll_descriptor_st { + uint32_t type; + union { + int fd; + void *custom; + uintptr_t custom_ui; + SSL *ssl; + } value; +} BIO_POLL_DESCRIPTOR; + /* * #define BIO_CONN_get_param_hostname BIO_ctrl */ @@ -428,10 +490,17 @@ struct bio_dgram_sctp_prinfo { # define BIO_C_SET_CONNECT_MODE 155 +# define BIO_C_SET_TFO 156 /* like BIO_C_SET_NBIO */ + +# define BIO_C_SET_SOCK_TYPE 157 +# define BIO_C_GET_SOCK_TYPE 158 +# define BIO_C_GET_DGRAM_BIO 159 + # define BIO_set_app_data(s,arg) BIO_set_ex_data(s,0,arg) # define BIO_get_app_data(s) BIO_get_ex_data(s,0) -# define BIO_set_nbio(b,n) BIO_ctrl(b,BIO_C_SET_NBIO,(n),NULL) +# define BIO_set_nbio(b,n) BIO_ctrl(b,BIO_C_SET_NBIO,(n),NULL) +# define BIO_set_tfo(b,n) BIO_ctrl(b,BIO_C_SET_TFO,(n),NULL) # ifndef OPENSSL_NO_SOCK /* IP families we support, for BIO_s_connect() and BIO_s_accept() */ @@ -452,7 +521,11 @@ struct bio_dgram_sctp_prinfo { # define BIO_get_conn_port(b) ((const char *)BIO_ptr_ctrl(b,BIO_C_GET_CONNECT,1)) # define BIO_get_conn_address(b) ((const BIO_ADDR *)BIO_ptr_ctrl(b,BIO_C_GET_CONNECT,2)) # define BIO_get_conn_ip_family(b) BIO_ctrl(b,BIO_C_GET_CONNECT,3,NULL) +# define BIO_get_conn_mode(b) BIO_ctrl(b,BIO_C_GET_CONNECT,4,NULL) # define BIO_set_conn_mode(b,n) BIO_ctrl(b,BIO_C_SET_CONNECT_MODE,(n),NULL) +# define BIO_set_sock_type(b,t) BIO_ctrl(b,BIO_C_SET_SOCK_TYPE,(t),NULL) +# define BIO_get_sock_type(b) BIO_ctrl(b,BIO_C_GET_SOCK_TYPE,0,NULL) +# define BIO_get0_dgram_bio(b, p) BIO_ctrl(b,BIO_C_GET_DGRAM_BIO,0,(void *)(BIO **)(p)) /* BIO_s_accept() */ # define BIO_set_accept_name(b,name) BIO_ctrl(b,BIO_C_SET_ACCEPT,0, \ @@ -469,6 +542,7 @@ struct bio_dgram_sctp_prinfo { (char *)(bio)) # define BIO_set_accept_ip_family(b,f) BIO_int_ctrl(b,BIO_C_SET_ACCEPT,4,f) # define BIO_get_accept_ip_family(b) BIO_ctrl(b,BIO_C_GET_ACCEPT,4,NULL) +# define BIO_set_tfo_accept(b,n) BIO_ctrl(b,BIO_C_SET_ACCEPT,5,(n)?(void *)"a":NULL) /* Aliases kept for backward compatibility */ # define BIO_BIND_NORMAL 0 @@ -596,8 +670,32 @@ int BIO_ctrl_reset_read_request(BIO *b); (int)BIO_ctrl(b, BIO_CTRL_DGRAM_GET_PEER, 0, (char *)(peer)) # define BIO_dgram_set_peer(b,peer) \ (int)BIO_ctrl(b, BIO_CTRL_DGRAM_SET_PEER, 0, (char *)(peer)) +# define BIO_dgram_detect_peer_addr(b,peer) \ + (int)BIO_ctrl(b, BIO_CTRL_DGRAM_DETECT_PEER_ADDR, 0, (char *)(peer)) # define BIO_dgram_get_mtu_overhead(b) \ (unsigned int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_MTU_OVERHEAD, 0, NULL) +# define BIO_dgram_get_local_addr_cap(b) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_LOCAL_ADDR_CAP, 0, NULL) +# define BIO_dgram_get_local_addr_enable(b, penable) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_LOCAL_ADDR_ENABLE, 0, (char *)(penable)) +# define BIO_dgram_set_local_addr_enable(b, enable) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET_LOCAL_ADDR_ENABLE, (enable), NULL) +# define BIO_dgram_get_effective_caps(b) \ + (uint32_t)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_EFFECTIVE_CAPS, 0, NULL) +# define BIO_dgram_get_caps(b) \ + (uint32_t)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_CAPS, 0, NULL) +# define BIO_dgram_set_caps(b, caps) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET_CAPS, (long)(caps), NULL) +# define BIO_dgram_get_no_trunc(b) \ + (unsigned int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_NO_TRUNC, 0, NULL) +# define BIO_dgram_set_no_trunc(b, enable) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET_NO_TRUNC, (enable), NULL) +# define BIO_dgram_get_mtu(b) \ + (unsigned int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_MTU, 0, NULL) +# define BIO_dgram_set_mtu(b, mtu) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET_MTU, (mtu), NULL) +# define BIO_dgram_set0_local_addr(b, addr) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET0_LOCAL_ADDR, 0, (addr)) /* ctrl macros for BIO_f_prefix */ # define BIO_set_prefix(b,p) BIO_ctrl((b), BIO_CTRL_SET_PREFIX, 0, (void *)(p)) @@ -640,10 +738,18 @@ void BIO_vfree(BIO *a); int BIO_up_ref(BIO *a); int BIO_read(BIO *b, void *data, int dlen); int BIO_read_ex(BIO *b, void *data, size_t dlen, size_t *readbytes); +__owur int BIO_recvmmsg(BIO *b, BIO_MSG *msg, + size_t stride, size_t num_msg, uint64_t flags, + size_t *msgs_processed); int BIO_gets(BIO *bp, char *buf, int size); int BIO_get_line(BIO *bio, char *buf, int size); int BIO_write(BIO *b, const void *data, int dlen); int BIO_write_ex(BIO *b, const void *data, size_t dlen, size_t *written); +__owur int BIO_sendmmsg(BIO *b, BIO_MSG *msg, + size_t stride, size_t num_msg, uint64_t flags, + size_t *msgs_processed); +__owur int BIO_get_rpoll_descriptor(BIO *b, BIO_POLL_DESCRIPTOR *desc); +__owur int BIO_get_wpoll_descriptor(BIO *b, BIO_POLL_DESCRIPTOR *desc); int BIO_puts(BIO *bp, const char *buf); int BIO_indent(BIO *b, int indent, int max); long BIO_ctrl(BIO *bp, int cmd, long larg, void *parg); @@ -667,6 +773,9 @@ int BIO_nwrite0(BIO *bio, char **buf); int BIO_nwrite(BIO *bio, char **buf, int num); const BIO_METHOD *BIO_s_mem(void); +# ifndef OPENSSL_NO_DGRAM +const BIO_METHOD *BIO_s_dgram_mem(void); +# endif const BIO_METHOD *BIO_s_secmem(void); BIO *BIO_new_mem_buf(const void *buf, int len); # ifndef OPENSSL_NO_SOCK @@ -686,6 +795,7 @@ const BIO_METHOD *BIO_f_nbio_test(void); const BIO_METHOD *BIO_f_prefix(void); const BIO_METHOD *BIO_s_core(void); # ifndef OPENSSL_NO_DGRAM +const BIO_METHOD *BIO_s_dgram_pair(void); const BIO_METHOD *BIO_s_datagram(void); int BIO_dgram_non_fatal_error(int error); BIO *BIO_new_dgram(int fd, int close_flag); @@ -704,6 +814,7 @@ int BIO_dgram_sctp_msg_waiting(BIO *b); # ifndef OPENSSL_NO_SOCK int BIO_sock_should_retry(int i); int BIO_sock_non_fatal_error(int error); +int BIO_err_is_non_fatal(unsigned int errcode); int BIO_socket_wait(int fd, int for_read, time_t max_time); # endif int BIO_wait(BIO *bio, time_t max_time, unsigned int nap_milliseconds); @@ -726,6 +837,8 @@ int BIO_hex_string(BIO *out, int indent, int width, const void *data, # ifndef OPENSSL_NO_SOCK BIO_ADDR *BIO_ADDR_new(void); +int BIO_ADDR_copy(BIO_ADDR *dst, const BIO_ADDR *src); +BIO_ADDR *BIO_ADDR_dup(const BIO_ADDR *ap); int BIO_ADDR_rawmake(BIO_ADDR *ap, int family, const void *where, size_t wherelen, unsigned short port); void BIO_ADDR_free(BIO_ADDR *); @@ -788,6 +901,7 @@ int BIO_sock_info(int sock, # define BIO_SOCK_KEEPALIVE 0x04 # define BIO_SOCK_NONBLOCK 0x08 # define BIO_SOCK_NODELAY 0x10 +# define BIO_SOCK_TFO 0x20 int BIO_socket(int domain, int socktype, int protocol, int options); int BIO_connect(int sock, const BIO_ADDR *addr, int options); @@ -805,6 +919,11 @@ BIO *BIO_new_fd(int fd, int close_flag); int BIO_new_bio_pair(BIO **bio1, size_t writebuf1, BIO **bio2, size_t writebuf2); +# ifndef OPENSSL_NO_DGRAM +int BIO_new_bio_dgram_pair(BIO **bio1, size_t writebuf1, + BIO **bio2, size_t writebuf2); +# endif + /* * If successful, returns 1 and in *bio1, *bio2 two BIO pair endpoints. * Otherwise returns 0 and sets *bio1 and *bio2 to NULL. Size 0 uses default @@ -849,38 +968,54 @@ ossl_bio__attr__((__format__(ossl_bio__printf__, 3, 0))); BIO_METHOD *BIO_meth_new(int type, const char *name); void BIO_meth_free(BIO_METHOD *biom); -int (*BIO_meth_get_write(const BIO_METHOD *biom)) (BIO *, const char *, int); -int (*BIO_meth_get_write_ex(const BIO_METHOD *biom)) (BIO *, const char *, size_t, - size_t *); int BIO_meth_set_write(BIO_METHOD *biom, int (*write) (BIO *, const char *, int)); int BIO_meth_set_write_ex(BIO_METHOD *biom, int (*bwrite) (BIO *, const char *, size_t, size_t *)); -int (*BIO_meth_get_read(const BIO_METHOD *biom)) (BIO *, char *, int); -int (*BIO_meth_get_read_ex(const BIO_METHOD *biom)) (BIO *, char *, size_t, size_t *); +int BIO_meth_set_sendmmsg(BIO_METHOD *biom, + int (*f) (BIO *, BIO_MSG *, size_t, size_t, + uint64_t, size_t *)); int BIO_meth_set_read(BIO_METHOD *biom, int (*read) (BIO *, char *, int)); int BIO_meth_set_read_ex(BIO_METHOD *biom, int (*bread) (BIO *, char *, size_t, size_t *)); -int (*BIO_meth_get_puts(const BIO_METHOD *biom)) (BIO *, const char *); +int BIO_meth_set_recvmmsg(BIO_METHOD *biom, + int (*f) (BIO *, BIO_MSG *, size_t, size_t, + uint64_t, size_t *)); int BIO_meth_set_puts(BIO_METHOD *biom, int (*puts) (BIO *, const char *)); -int (*BIO_meth_get_gets(const BIO_METHOD *biom)) (BIO *, char *, int); int BIO_meth_set_gets(BIO_METHOD *biom, int (*ossl_gets) (BIO *, char *, int)); -long (*BIO_meth_get_ctrl(const BIO_METHOD *biom)) (BIO *, int, long, void *); int BIO_meth_set_ctrl(BIO_METHOD *biom, long (*ctrl) (BIO *, int, long, void *)); -int (*BIO_meth_get_create(const BIO_METHOD *bion)) (BIO *); int BIO_meth_set_create(BIO_METHOD *biom, int (*create) (BIO *)); -int (*BIO_meth_get_destroy(const BIO_METHOD *biom)) (BIO *); int BIO_meth_set_destroy(BIO_METHOD *biom, int (*destroy) (BIO *)); -long (*BIO_meth_get_callback_ctrl(const BIO_METHOD *biom)) - (BIO *, int, BIO_info_cb *); int BIO_meth_set_callback_ctrl(BIO_METHOD *biom, long (*callback_ctrl) (BIO *, int, BIO_info_cb *)); - +# ifndef OPENSSL_NO_DEPRECATED_3_5 +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_write(const BIO_METHOD *biom)) (BIO *, const char *, + int); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_write_ex(const BIO_METHOD *biom)) (BIO *, const char *, + size_t, size_t *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_sendmmsg(const BIO_METHOD *biom))(BIO *, BIO_MSG *, + size_t, size_t, + uint64_t, size_t *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_read(const BIO_METHOD *biom)) (BIO *, char *, int); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_read_ex(const BIO_METHOD *biom)) (BIO *, char *, + size_t, size_t *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_recvmmsg(const BIO_METHOD *biom))(BIO *, BIO_MSG *, + size_t, size_t, + uint64_t, size_t *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_puts(const BIO_METHOD *biom)) (BIO *, const char *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_gets(const BIO_METHOD *biom)) (BIO *, char *, int); +OSSL_DEPRECATEDIN_3_5 long (*BIO_meth_get_ctrl(const BIO_METHOD *biom)) (BIO *, int, + long, void *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_create(const BIO_METHOD *bion)) (BIO *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_destroy(const BIO_METHOD *biom)) (BIO *); +OSSL_DEPRECATEDIN_3_5 long (*BIO_meth_get_callback_ctrl(const BIO_METHOD *biom)) (BIO *, int, + BIO_info_cb *); +# endif # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/BSD-x86_64/asm/include/openssl/cmp.h b/deps/openssl/config/archs/BSD-x86_64/asm/include/openssl/cmp.h index 49825570d8c303..05aed3029d594c 100644 --- a/deps/openssl/config/archs/BSD-x86_64/asm/include/openssl/cmp.h +++ b/deps/openssl/config/archs/BSD-x86_64/asm/include/openssl/cmp.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/cmp.h.in * - * Copyright 2007-2023 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2007-2024 The OpenSSL Project Authors. All Rights Reserved. * Copyright Nokia 2007-2019 * Copyright Siemens AG 2015-2019 * @@ -35,7 +35,9 @@ extern "C" { # endif -# define OSSL_CMP_PVNO 2 +# define OSSL_CMP_PVNO_2 2 +# define OSSL_CMP_PVNO_3 3 +# define OSSL_CMP_PVNO OSSL_CMP_PVNO_2 /* v2 is the default */ /*- * PKIFailureInfo ::= BIT STRING { @@ -137,7 +139,6 @@ extern "C" { # if OSSL_CMP_PKIFAILUREINFO_MAX_BIT_PATTERN > INT_MAX # error CMP_PKIFAILUREINFO_MAX bit pattern does not fit in type int # endif - typedef ASN1_BIT_STRING OSSL_CMP_PKIFAILUREINFO; # define OSSL_CMP_CTX_FAILINFO_badAlg (1 << 0) @@ -203,8 +204,8 @@ typedef ASN1_BIT_STRING OSSL_CMP_PKIFAILUREINFO; # define OSSL_CMP_PKISTATUS_revocationWarning 4 # define OSSL_CMP_PKISTATUS_revocationNotification 5 # define OSSL_CMP_PKISTATUS_keyUpdateWarning 6 - typedef ASN1_INTEGER OSSL_CMP_PKISTATUS; + DECLARE_ASN1_ITEM(OSSL_CMP_PKISTATUS) # define OSSL_CMP_CERTORENCCERT_CERTIFICATE 0 @@ -274,6 +275,46 @@ SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CMP_ITAV, OSSL_CMP_ITAV, OSSL_CMP_ITAV) #define sk_OSSL_CMP_ITAV_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_CMP_ITAV) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_CMP_ITAV_sk_type(sk), ossl_check_OSSL_CMP_ITAV_copyfunc_type(copyfunc), ossl_check_OSSL_CMP_ITAV_freefunc_type(freefunc))) #define sk_OSSL_CMP_ITAV_set_cmp_func(sk, cmp) ((sk_OSSL_CMP_ITAV_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CMP_ITAV_sk_type(sk), ossl_check_OSSL_CMP_ITAV_compfunc_type(cmp))) + +typedef struct ossl_cmp_crlstatus_st OSSL_CMP_CRLSTATUS; +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CMP_CRLSTATUS, OSSL_CMP_CRLSTATUS, OSSL_CMP_CRLSTATUS) +#define sk_OSSL_CMP_CRLSTATUS_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_value(sk, idx) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_value(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk), (idx))) +#define sk_OSSL_CMP_CRLSTATUS_new(cmp) ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_new(ossl_check_OSSL_CMP_CRLSTATUS_compfunc_type(cmp))) +#define sk_OSSL_CMP_CRLSTATUS_new_null() ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_new_null()) +#define sk_OSSL_CMP_CRLSTATUS_new_reserve(cmp, n) ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_CMP_CRLSTATUS_compfunc_type(cmp), (n))) +#define sk_OSSL_CMP_CRLSTATUS_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), (n)) +#define sk_OSSL_CMP_CRLSTATUS_free(sk) OPENSSL_sk_free(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_delete(sk, i) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_delete(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), (i))) +#define sk_OSSL_CMP_CRLSTATUS_delete_ptr(sk, ptr) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr))) +#define sk_OSSL_CMP_CRLSTATUS_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr)) +#define sk_OSSL_CMP_CRLSTATUS_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr)) +#define sk_OSSL_CMP_CRLSTATUS_pop(sk) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_pop(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk))) +#define sk_OSSL_CMP_CRLSTATUS_shift(sk) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_shift(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk))) +#define sk_OSSL_CMP_CRLSTATUS_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk),ossl_check_OSSL_CMP_CRLSTATUS_freefunc_type(freefunc)) +#define sk_OSSL_CMP_CRLSTATUS_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr), (idx)) +#define sk_OSSL_CMP_CRLSTATUS_set(sk, idx, ptr) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_set(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), (idx), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr))) +#define sk_OSSL_CMP_CRLSTATUS_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr)) +#define sk_OSSL_CMP_CRLSTATUS_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr)) +#define sk_OSSL_CMP_CRLSTATUS_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr), pnum) +#define sk_OSSL_CMP_CRLSTATUS_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_dup(sk) ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_dup(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk))) +#define sk_OSSL_CMP_CRLSTATUS_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_copyfunc_type(copyfunc), ossl_check_OSSL_CMP_CRLSTATUS_freefunc_type(freefunc))) +#define sk_OSSL_CMP_CRLSTATUS_set_cmp_func(sk, cmp) ((sk_OSSL_CMP_CRLSTATUS_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_compfunc_type(cmp))) + + +typedef OSSL_CRMF_ATTRIBUTETYPEANDVALUE OSSL_CMP_ATAV; +# define OSSL_CMP_ATAV_free OSSL_CRMF_ATTRIBUTETYPEANDVALUE_free +typedef STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) OSSL_CMP_ATAVS; +DECLARE_ASN1_FUNCTIONS(OSSL_CMP_ATAVS) +# define stack_st_OSSL_CMP_ATAV stack_st_OSSL_CRMF_ATTRIBUTETYPEANDVALUE +# define sk_OSSL_CMP_ATAV_num sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_num +# define sk_OSSL_CMP_ATAV_value sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_value +# define sk_OSSL_CMP_ATAV_push sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_push +# define sk_OSSL_CMP_ATAV_pop_free sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_pop_free + typedef struct ossl_cmp_revrepcontent_st OSSL_CMP_REVREPCONTENT; typedef struct ossl_cmp_pkisi_st OSSL_CMP_PKISI; DECLARE_ASN1_FUNCTIONS(OSSL_CMP_PKISI) @@ -375,21 +416,75 @@ void OSSL_CMP_ITAV_set0(OSSL_CMP_ITAV *itav, ASN1_OBJECT *type, ASN1_TYPE *value); ASN1_OBJECT *OSSL_CMP_ITAV_get0_type(const OSSL_CMP_ITAV *itav); ASN1_TYPE *OSSL_CMP_ITAV_get0_value(const OSSL_CMP_ITAV *itav); -int OSSL_CMP_ITAV_push0_stack_item(STACK_OF(OSSL_CMP_ITAV) **itav_sk_p, +int OSSL_CMP_ITAV_push0_stack_item(STACK_OF(OSSL_CMP_ITAV) **sk_p, OSSL_CMP_ITAV *itav); void OSSL_CMP_ITAV_free(OSSL_CMP_ITAV *itav); + +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new0_certProfile(STACK_OF(ASN1_UTF8STRING) + *certProfile); +int OSSL_CMP_ITAV_get0_certProfile(const OSSL_CMP_ITAV *itav, + STACK_OF(ASN1_UTF8STRING) **out); +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new_caCerts(const STACK_OF(X509) *caCerts); +int OSSL_CMP_ITAV_get0_caCerts(const OSSL_CMP_ITAV *itav, STACK_OF(X509) **out); + +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new_rootCaCert(const X509 *rootCaCert); +int OSSL_CMP_ITAV_get0_rootCaCert(const OSSL_CMP_ITAV *itav, X509 **out); +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new_rootCaKeyUpdate(const X509 *newWithNew, + const X509 *newWithOld, + const X509 *oldWithNew); +int OSSL_CMP_ITAV_get0_rootCaKeyUpdate(const OSSL_CMP_ITAV *itav, + X509 **newWithNew, + X509 **newWithOld, + X509 **oldWithNew); + +OSSL_CMP_CRLSTATUS *OSSL_CMP_CRLSTATUS_create(const X509_CRL *crl, + const X509 *cert, int only_DN); +OSSL_CMP_CRLSTATUS *OSSL_CMP_CRLSTATUS_new1(const DIST_POINT_NAME *dpn, + const GENERAL_NAMES *issuer, + const ASN1_TIME *thisUpdate); +int OSSL_CMP_CRLSTATUS_get0(const OSSL_CMP_CRLSTATUS *crlstatus, + DIST_POINT_NAME **dpn, GENERAL_NAMES **issuer, + ASN1_TIME **thisUpdate); +void OSSL_CMP_CRLSTATUS_free(OSSL_CMP_CRLSTATUS *crlstatus); +OSSL_CMP_ITAV +*OSSL_CMP_ITAV_new0_crlStatusList(STACK_OF(OSSL_CMP_CRLSTATUS) *crlStatusList); +int OSSL_CMP_ITAV_get0_crlStatusList(const OSSL_CMP_ITAV *itav, + STACK_OF(OSSL_CMP_CRLSTATUS) **out); +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new_crls(const X509_CRL *crls); +int OSSL_CMP_ITAV_get0_crls(const OSSL_CMP_ITAV *it, STACK_OF(X509_CRL) **out); +OSSL_CMP_ITAV +*OSSL_CMP_ITAV_new0_certReqTemplate(OSSL_CRMF_CERTTEMPLATE *certTemplate, + OSSL_CMP_ATAVS *keySpec); +int OSSL_CMP_ITAV_get1_certReqTemplate(const OSSL_CMP_ITAV *itav, + OSSL_CRMF_CERTTEMPLATE **certTemplate, + OSSL_CMP_ATAVS **keySpec); + +OSSL_CMP_ATAV *OSSL_CMP_ATAV_create(ASN1_OBJECT *type, ASN1_TYPE *value); +void OSSL_CMP_ATAV_set0(OSSL_CMP_ATAV *itav, ASN1_OBJECT *type, + ASN1_TYPE *value); +ASN1_OBJECT *OSSL_CMP_ATAV_get0_type(const OSSL_CMP_ATAV *itav); +ASN1_TYPE *OSSL_CMP_ATAV_get0_value(const OSSL_CMP_ATAV *itav); +OSSL_CMP_ATAV *OSSL_CMP_ATAV_new_algId(const X509_ALGOR *alg); +X509_ALGOR *OSSL_CMP_ATAV_get0_algId(const OSSL_CMP_ATAV *atav); +OSSL_CMP_ATAV *OSSL_CMP_ATAV_new_rsaKeyLen(int len); +int OSSL_CMP_ATAV_get_rsaKeyLen(const OSSL_CMP_ATAV *atav); +int OSSL_CMP_ATAV_push1(OSSL_CMP_ATAVS **sk_p, const OSSL_CMP_ATAV *atav); + void OSSL_CMP_MSG_free(OSSL_CMP_MSG *msg); /* from cmp_ctx.c */ OSSL_CMP_CTX *OSSL_CMP_CTX_new(OSSL_LIB_CTX *libctx, const char *propq); void OSSL_CMP_CTX_free(OSSL_CMP_CTX *ctx); int OSSL_CMP_CTX_reinit(OSSL_CMP_CTX *ctx); +OSSL_LIB_CTX *OSSL_CMP_CTX_get0_libctx(const OSSL_CMP_CTX *ctx); +const char *OSSL_CMP_CTX_get0_propq(const OSSL_CMP_CTX *ctx); /* CMP general options: */ # define OSSL_CMP_OPT_LOG_VERBOSITY 0 /* CMP transfer options: */ -# define OSSL_CMP_OPT_KEEP_ALIVE 10 -# define OSSL_CMP_OPT_MSG_TIMEOUT 11 +# define OSSL_CMP_OPT_KEEP_ALIVE 10 +# define OSSL_CMP_OPT_MSG_TIMEOUT 11 # define OSSL_CMP_OPT_TOTAL_TIMEOUT 12 +# define OSSL_CMP_OPT_USE_TLS 13 /* CMP request options: */ # define OSSL_CMP_OPT_VALIDITY_DAYS 20 # define OSSL_CMP_OPT_SUBJECTALTNAME_NODEFAULT 21 @@ -407,6 +502,7 @@ int OSSL_CMP_CTX_reinit(OSSL_CMP_CTX *ctx); # define OSSL_CMP_OPT_DIGEST_ALGNID 34 # define OSSL_CMP_OPT_IGNORE_KEYUSAGE 35 # define OSSL_CMP_OPT_PERMIT_TA_IN_EXTRACERTS_FOR_IR 36 +# define OSSL_CMP_OPT_NO_CACHE_EXTRACERTS 37 int OSSL_CMP_CTX_set_option(OSSL_CMP_CTX *ctx, int opt, int val); int OSSL_CMP_CTX_get_option(const OSSL_CMP_CTX *ctx, int opt); /* CMP-specific callback for logging and outputting the error queue: */ @@ -420,9 +516,11 @@ int OSSL_CMP_CTX_set1_server(OSSL_CMP_CTX *ctx, const char *address); int OSSL_CMP_CTX_set_serverPort(OSSL_CMP_CTX *ctx, int port); int OSSL_CMP_CTX_set1_proxy(OSSL_CMP_CTX *ctx, const char *name); int OSSL_CMP_CTX_set1_no_proxy(OSSL_CMP_CTX *ctx, const char *names); +# ifndef OPENSSL_NO_HTTP int OSSL_CMP_CTX_set_http_cb(OSSL_CMP_CTX *ctx, OSSL_HTTP_bio_cb_t cb); int OSSL_CMP_CTX_set_http_cb_arg(OSSL_CMP_CTX *ctx, void *arg); void *OSSL_CMP_CTX_get_http_cb_arg(const OSSL_CMP_CTX *ctx); +# endif typedef OSSL_CMP_MSG *(*OSSL_CMP_transfer_cb_t) (OSSL_CMP_CTX *ctx, const OSSL_CMP_MSG *req); int OSSL_CMP_CTX_set_transfer_cb(OSSL_CMP_CTX *ctx, OSSL_CMP_transfer_cb_t cb); @@ -432,7 +530,9 @@ void *OSSL_CMP_CTX_get_transfer_cb_arg(const OSSL_CMP_CTX *ctx); int OSSL_CMP_CTX_set1_srvCert(OSSL_CMP_CTX *ctx, X509 *cert); int OSSL_CMP_CTX_set1_expected_sender(OSSL_CMP_CTX *ctx, const X509_NAME *name); int OSSL_CMP_CTX_set0_trustedStore(OSSL_CMP_CTX *ctx, X509_STORE *store); +# define OSSL_CMP_CTX_set0_trusted OSSL_CMP_CTX_set0_trustedStore X509_STORE *OSSL_CMP_CTX_get0_trustedStore(const OSSL_CMP_CTX *ctx); +# define OSSL_CMP_CTX_get0_trusted OSSL_CMP_CTX_get0_trustedStore int OSSL_CMP_CTX_set1_untrusted(OSSL_CMP_CTX *ctx, STACK_OF(X509) *certs); STACK_OF(X509) *OSSL_CMP_CTX_get0_untrusted(const OSSL_CMP_CTX *ctx); /* client authentication: */ @@ -448,12 +548,15 @@ int OSSL_CMP_CTX_set1_secretValue(OSSL_CMP_CTX *ctx, int OSSL_CMP_CTX_set1_recipient(OSSL_CMP_CTX *ctx, const X509_NAME *name); int OSSL_CMP_CTX_push0_geninfo_ITAV(OSSL_CMP_CTX *ctx, OSSL_CMP_ITAV *itav); int OSSL_CMP_CTX_reset_geninfo_ITAVs(OSSL_CMP_CTX *ctx); +STACK_OF(OSSL_CMP_ITAV) + *OSSL_CMP_CTX_get0_geninfo_ITAVs(const OSSL_CMP_CTX *ctx); int OSSL_CMP_CTX_set1_extraCertsOut(OSSL_CMP_CTX *ctx, STACK_OF(X509) *extraCertsOut); /* certificate template: */ int OSSL_CMP_CTX_set0_newPkey(OSSL_CMP_CTX *ctx, int priv, EVP_PKEY *pkey); EVP_PKEY *OSSL_CMP_CTX_get0_newPkey(const OSSL_CMP_CTX *ctx, int priv); int OSSL_CMP_CTX_set1_issuer(OSSL_CMP_CTX *ctx, const X509_NAME *name); +int OSSL_CMP_CTX_set1_serialNumber(OSSL_CMP_CTX *ctx, const ASN1_INTEGER *sn); int OSSL_CMP_CTX_set1_subjectName(OSSL_CMP_CTX *ctx, const X509_NAME *name); int OSSL_CMP_CTX_push1_subjectAltName(OSSL_CMP_CTX *ctx, const GENERAL_NAME *name); @@ -477,6 +580,7 @@ int OSSL_CMP_CTX_get_status(const OSSL_CMP_CTX *ctx); OSSL_CMP_PKIFREETEXT *OSSL_CMP_CTX_get0_statusString(const OSSL_CMP_CTX *ctx); int OSSL_CMP_CTX_get_failInfoCode(const OSSL_CMP_CTX *ctx); # define OSSL_CMP_PKISI_BUFLEN 1024 +X509 *OSSL_CMP_CTX_get0_validatedSrvCert(const OSSL_CMP_CTX *ctx); X509 *OSSL_CMP_CTX_get0_newCert(const OSSL_CMP_CTX *ctx); STACK_OF(X509) *OSSL_CMP_CTX_get1_newChain(const OSSL_CMP_CTX *ctx); STACK_OF(X509) *OSSL_CMP_CTX_get1_caPubs(const OSSL_CMP_CTX *ctx); @@ -498,10 +602,13 @@ OSSL_CMP_STATUSINFO_new(int status, int fail_info, const char *text); ASN1_OCTET_STRING *OSSL_CMP_HDR_get0_transactionID(const OSSL_CMP_PKIHEADER *hdr); ASN1_OCTET_STRING *OSSL_CMP_HDR_get0_recipNonce(const OSSL_CMP_PKIHEADER *hdr); +STACK_OF(OSSL_CMP_ITAV) + *OSSL_CMP_HDR_get0_geninfo_ITAVs(const OSSL_CMP_PKIHEADER *hdr); /* from cmp_msg.c */ OSSL_CMP_PKIHEADER *OSSL_CMP_MSG_get0_header(const OSSL_CMP_MSG *msg); int OSSL_CMP_MSG_get_bodytype(const OSSL_CMP_MSG *msg); +X509_PUBKEY *OSSL_CMP_MSG_get0_certreq_publickey(const OSSL_CMP_MSG *msg); int OSSL_CMP_MSG_update_transactionID(OSSL_CMP_CTX *ctx, OSSL_CMP_MSG *msg); int OSSL_CMP_MSG_update_recipNonce(OSSL_CMP_CTX *ctx, OSSL_CMP_MSG *msg); OSSL_CRMF_MSG *OSSL_CMP_CTX_setup_CRM(OSSL_CMP_CTX *ctx, int for_KUR, int rid); @@ -517,8 +624,10 @@ int OSSL_CMP_validate_cert_path(const OSSL_CMP_CTX *ctx, X509_STORE *trusted_store, X509 *cert); /* from cmp_http.c */ +# ifndef OPENSSL_NO_HTTP OSSL_CMP_MSG *OSSL_CMP_MSG_http_perform(OSSL_CMP_CTX *ctx, const OSSL_CMP_MSG *req); +# endif /* from cmp_server.c */ typedef struct ossl_cmp_srv_ctx_st OSSL_CMP_SRV_CTX; @@ -561,6 +670,13 @@ int OSSL_CMP_SRV_CTX_init(OSSL_CMP_SRV_CTX *srv_ctx, void *custom_ctx, OSSL_CMP_SRV_error_cb_t process_error, OSSL_CMP_SRV_certConf_cb_t process_certConf, OSSL_CMP_SRV_pollReq_cb_t process_pollReq); +typedef int (*OSSL_CMP_SRV_delayed_delivery_cb_t)(OSSL_CMP_SRV_CTX *srv_ctx, + const OSSL_CMP_MSG *req); +typedef int (*OSSL_CMP_SRV_clean_transaction_cb_t)(OSSL_CMP_SRV_CTX *srv_ctx, + const ASN1_OCTET_STRING *id); +int OSSL_CMP_SRV_CTX_init_trans(OSSL_CMP_SRV_CTX *srv_ctx, + OSSL_CMP_SRV_delayed_delivery_cb_t delay, + OSSL_CMP_SRV_clean_transaction_cb_t clean); OSSL_CMP_CTX *OSSL_CMP_SRV_CTX_get0_cmp_ctx(const OSSL_CMP_SRV_CTX *srv_ctx); void *OSSL_CMP_SRV_CTX_get0_custom_ctx(const OSSL_CMP_SRV_CTX *srv_ctx); int OSSL_CMP_SRV_CTX_set_send_unprotected_errors(OSSL_CMP_SRV_CTX *srv_ctx, @@ -577,6 +693,8 @@ X509 *OSSL_CMP_exec_certreq(OSSL_CMP_CTX *ctx, int req_type, # define OSSL_CMP_CR 2 # define OSSL_CMP_P10CR 4 # define OSSL_CMP_KUR 7 +# define OSSL_CMP_GENM 21 +# define OSSL_CMP_ERROR 23 # define OSSL_CMP_exec_IR_ses(ctx) \ OSSL_CMP_exec_certreq(ctx, OSSL_CMP_IR, NULL) # define OSSL_CMP_exec_CR_ses(ctx) \ @@ -590,6 +708,18 @@ int OSSL_CMP_try_certreq(OSSL_CMP_CTX *ctx, int req_type, int OSSL_CMP_exec_RR_ses(OSSL_CMP_CTX *ctx); STACK_OF(OSSL_CMP_ITAV) *OSSL_CMP_exec_GENM_ses(OSSL_CMP_CTX *ctx); +/* from cmp_genm.c */ +int OSSL_CMP_get1_caCerts(OSSL_CMP_CTX *ctx, STACK_OF(X509) **out); +int OSSL_CMP_get1_rootCaKeyUpdate(OSSL_CMP_CTX *ctx, + const X509 *oldWithOld, X509 **newWithNew, + X509 **newWithOld, X509 **oldWithNew); +int OSSL_CMP_get1_crlUpdate(OSSL_CMP_CTX *ctx, const X509 *crlcert, + const X509_CRL *last_crl, + X509_CRL **crl); +int OSSL_CMP_get1_certReqTemplate(OSSL_CMP_CTX *ctx, + OSSL_CRMF_CERTTEMPLATE **certTemplate, + OSSL_CMP_ATAVS **keySpec); + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/BSD-x86_64/asm/include/openssl/cms.h b/deps/openssl/config/archs/BSD-x86_64/asm/include/openssl/cms.h index 3b453e6a2187a2..63afab563557b0 100644 --- a/deps/openssl/config/archs/BSD-x86_64/asm/include/openssl/cms.h +++ b/deps/openssl/config/archs/BSD-x86_64/asm/include/openssl/cms.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/cms.h.in * - * Copyright 2008-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2008-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -31,8 +31,10 @@ extern "C" { # endif +typedef struct CMS_EnvelopedData_st CMS_EnvelopedData; typedef struct CMS_ContentInfo_st CMS_ContentInfo; typedef struct CMS_SignerInfo_st CMS_SignerInfo; +typedef struct CMS_SignedData_st CMS_SignedData; typedef struct CMS_CertificateChoices CMS_CertificateChoices; typedef struct CMS_RevocationInfoChoice_st CMS_RevocationInfoChoice; typedef struct CMS_RecipientInfo_st CMS_RecipientInfo; @@ -147,10 +149,14 @@ SKM_DEFINE_STACK_OF_INTERNAL(CMS_RevocationInfoChoice, CMS_RevocationInfoChoice, #define sk_CMS_RevocationInfoChoice_set_cmp_func(sk, cmp) ((sk_CMS_RevocationInfoChoice_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_CMS_RevocationInfoChoice_sk_type(sk), ossl_check_CMS_RevocationInfoChoice_compfunc_type(cmp))) +DECLARE_ASN1_ITEM(CMS_EnvelopedData) +DECLARE_ASN1_ALLOC_FUNCTIONS(CMS_SignedData) DECLARE_ASN1_FUNCTIONS(CMS_ContentInfo) DECLARE_ASN1_FUNCTIONS(CMS_ReceiptRequest) DECLARE_ASN1_PRINT_FUNCTION(CMS_ContentInfo) +DECLARE_ASN1_DUP_FUNCTION(CMS_EnvelopedData) + CMS_ContentInfo *CMS_ContentInfo_new_ex(OSSL_LIB_CTX *libctx, const char *propq); # define CMS_SIGNERINFO_ISSUER_SERIAL 0 @@ -190,6 +196,7 @@ CMS_ContentInfo *CMS_ContentInfo_new_ex(OSSL_LIB_CTX *libctx, const char *propq) # define CMS_ASCIICRLF 0x80000 # define CMS_CADES 0x100000 # define CMS_USE_ORIGINATOR_KEYID 0x200000 +# define CMS_NO_SIGNING_TIME 0x400000 const ASN1_OBJECT *CMS_get0_type(const CMS_ContentInfo *cms); @@ -217,13 +224,16 @@ int SMIME_write_CMS(BIO *bio, CMS_ContentInfo *cms, BIO *data, int flags); int CMS_final(CMS_ContentInfo *cms, BIO *data, BIO *dcont, unsigned int flags); +int CMS_final_digest(CMS_ContentInfo *cms, + const unsigned char *md, unsigned int mdlen, BIO *dcont, + unsigned int flags); CMS_ContentInfo *CMS_sign(X509 *signcert, EVP_PKEY *pkey, STACK_OF(X509) *certs, BIO *data, unsigned int flags); CMS_ContentInfo *CMS_sign_ex(X509 *signcert, EVP_PKEY *pkey, STACK_OF(X509) *certs, BIO *data, - unsigned int flags, OSSL_LIB_CTX *ctx, + unsigned int flags, OSSL_LIB_CTX *libctx, const char *propq); CMS_ContentInfo *CMS_sign_receipt(CMS_SignerInfo *si, @@ -233,27 +243,26 @@ CMS_ContentInfo *CMS_sign_receipt(CMS_SignerInfo *si, int CMS_data(CMS_ContentInfo *cms, BIO *out, unsigned int flags); CMS_ContentInfo *CMS_data_create(BIO *in, unsigned int flags); CMS_ContentInfo *CMS_data_create_ex(BIO *in, unsigned int flags, - OSSL_LIB_CTX *ctx, const char *propq); + OSSL_LIB_CTX *libctx, const char *propq); int CMS_digest_verify(CMS_ContentInfo *cms, BIO *dcont, BIO *out, unsigned int flags); CMS_ContentInfo *CMS_digest_create(BIO *in, const EVP_MD *md, unsigned int flags); CMS_ContentInfo *CMS_digest_create_ex(BIO *in, const EVP_MD *md, - unsigned int flags, OSSL_LIB_CTX *ctx, + unsigned int flags, OSSL_LIB_CTX *libctx, const char *propq); int CMS_EncryptedData_decrypt(CMS_ContentInfo *cms, const unsigned char *key, size_t keylen, BIO *dcont, BIO *out, unsigned int flags); - CMS_ContentInfo *CMS_EncryptedData_encrypt(BIO *in, const EVP_CIPHER *cipher, const unsigned char *key, size_t keylen, unsigned int flags); CMS_ContentInfo *CMS_EncryptedData_encrypt_ex(BIO *in, const EVP_CIPHER *cipher, const unsigned char *key, size_t keylen, unsigned int flags, - OSSL_LIB_CTX *ctx, + OSSL_LIB_CTX *libctx, const char *propq); int CMS_EncryptedData_set1_key(CMS_ContentInfo *cms, const EVP_CIPHER *ciph, @@ -272,7 +281,7 @@ CMS_ContentInfo *CMS_encrypt(STACK_OF(X509) *certs, BIO *in, const EVP_CIPHER *cipher, unsigned int flags); CMS_ContentInfo *CMS_encrypt_ex(STACK_OF(X509) *certs, BIO *in, const EVP_CIPHER *cipher, unsigned int flags, - OSSL_LIB_CTX *ctx, const char *propq); + OSSL_LIB_CTX *libctx, const char *propq); int CMS_decrypt(CMS_ContentInfo *cms, EVP_PKEY *pkey, X509 *cert, BIO *dcont, BIO *out, unsigned int flags); @@ -291,12 +300,16 @@ int CMS_RecipientInfo_type(CMS_RecipientInfo *ri); EVP_PKEY_CTX *CMS_RecipientInfo_get0_pkey_ctx(CMS_RecipientInfo *ri); CMS_ContentInfo *CMS_AuthEnvelopedData_create(const EVP_CIPHER *cipher); CMS_ContentInfo * -CMS_AuthEnvelopedData_create_ex(const EVP_CIPHER *cipher, OSSL_LIB_CTX *ctx, +CMS_AuthEnvelopedData_create_ex(const EVP_CIPHER *cipher, OSSL_LIB_CTX *libctx, const char *propq); CMS_ContentInfo *CMS_EnvelopedData_create(const EVP_CIPHER *cipher); CMS_ContentInfo *CMS_EnvelopedData_create_ex(const EVP_CIPHER *cipher, - OSSL_LIB_CTX *ctx, + OSSL_LIB_CTX *libctx, const char *propq); +BIO *CMS_EnvelopedData_decrypt(CMS_EnvelopedData *env, BIO *detached_data, + EVP_PKEY *pkey, X509 *cert, + ASN1_OCTET_STRING *secret, unsigned int flags, + OSSL_LIB_CTX *libctx, const char *propq); CMS_RecipientInfo *CMS_add1_recipient_cert(CMS_ContentInfo *cms, X509 *recip, unsigned int flags); @@ -385,6 +398,11 @@ ASN1_OCTET_STRING *CMS_SignerInfo_get0_signature(CMS_SignerInfo *si); int CMS_SignerInfo_sign(CMS_SignerInfo *si); int CMS_SignerInfo_verify(CMS_SignerInfo *si); int CMS_SignerInfo_verify_content(CMS_SignerInfo *si, BIO *chain); +BIO *CMS_SignedData_verify(CMS_SignedData *sd, BIO *detached_data, + STACK_OF(X509) *scerts, X509_STORE *store, + STACK_OF(X509) *extra, STACK_OF(X509_CRL) *crls, + unsigned int flags, + OSSL_LIB_CTX *libctx, const char *propq); int CMS_add_smimecap(CMS_SignerInfo *si, STACK_OF(X509_ALGOR) *algs); int CMS_add_simple_smimecap(STACK_OF(X509_ALGOR) **algs, @@ -441,7 +459,7 @@ CMS_ReceiptRequest *CMS_ReceiptRequest_create0_ex( unsigned char *id, int idlen, int allorfirst, STACK_OF(GENERAL_NAMES) *receiptList, STACK_OF(GENERAL_NAMES) *receiptsTo, - OSSL_LIB_CTX *ctx); + OSSL_LIB_CTX *libctx); int CMS_add1_ReceiptRequest(CMS_SignerInfo *si, CMS_ReceiptRequest *rr); void CMS_ReceiptRequest_get0_values(CMS_ReceiptRequest *rr, diff --git a/deps/openssl/config/archs/BSD-x86_64/asm/include/openssl/comp.h b/deps/openssl/config/archs/BSD-x86_64/asm/include/openssl/comp.h new file mode 100644 index 00000000000000..90e39511fe8d28 --- /dev/null +++ b/deps/openssl/config/archs/BSD-x86_64/asm/include/openssl/comp.h @@ -0,0 +1,98 @@ +/* + * Copyright 2015-2024 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + + +#ifndef OPENSSL_COMP_H +# define OPENSSL_COMP_H +# pragma once + +# include +# ifndef OPENSSL_NO_DEPRECATED_3_0 +# define HEADER_COMP_H +# endif + +# include + +# include +# include +# ifdef __cplusplus +extern "C" { +# endif + + + +# ifndef OPENSSL_NO_COMP + +COMP_CTX *COMP_CTX_new(COMP_METHOD *meth); +const COMP_METHOD *COMP_CTX_get_method(const COMP_CTX *ctx); +int COMP_CTX_get_type(const COMP_CTX* comp); +int COMP_get_type(const COMP_METHOD *meth); +const char *COMP_get_name(const COMP_METHOD *meth); +void COMP_CTX_free(COMP_CTX *ctx); + +int COMP_compress_block(COMP_CTX *ctx, unsigned char *out, int olen, + unsigned char *in, int ilen); +int COMP_expand_block(COMP_CTX *ctx, unsigned char *out, int olen, + unsigned char *in, int ilen); + +COMP_METHOD *COMP_zlib(void); +COMP_METHOD *COMP_zlib_oneshot(void); +COMP_METHOD *COMP_brotli(void); +COMP_METHOD *COMP_brotli_oneshot(void); +COMP_METHOD *COMP_zstd(void); +COMP_METHOD *COMP_zstd_oneshot(void); + +# ifndef OPENSSL_NO_DEPRECATED_1_1_0 +# define COMP_zlib_cleanup() while(0) continue +# endif + +# ifdef OPENSSL_BIO_H +const BIO_METHOD *BIO_f_zlib(void); +const BIO_METHOD *BIO_f_brotli(void); +const BIO_METHOD *BIO_f_zstd(void); +# endif + +# endif + +typedef struct ssl_comp_st SSL_COMP; + +SKM_DEFINE_STACK_OF_INTERNAL(SSL_COMP, SSL_COMP, SSL_COMP) +#define sk_SSL_COMP_num(sk) OPENSSL_sk_num(ossl_check_const_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_value(sk, idx) ((SSL_COMP *)OPENSSL_sk_value(ossl_check_const_SSL_COMP_sk_type(sk), (idx))) +#define sk_SSL_COMP_new(cmp) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new(ossl_check_SSL_COMP_compfunc_type(cmp))) +#define sk_SSL_COMP_new_null() ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new_null()) +#define sk_SSL_COMP_new_reserve(cmp, n) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new_reserve(ossl_check_SSL_COMP_compfunc_type(cmp), (n))) +#define sk_SSL_COMP_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_SSL_COMP_sk_type(sk), (n)) +#define sk_SSL_COMP_free(sk) OPENSSL_sk_free(ossl_check_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_zero(sk) OPENSSL_sk_zero(ossl_check_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_delete(sk, i) ((SSL_COMP *)OPENSSL_sk_delete(ossl_check_SSL_COMP_sk_type(sk), (i))) +#define sk_SSL_COMP_delete_ptr(sk, ptr) ((SSL_COMP *)OPENSSL_sk_delete_ptr(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr))) +#define sk_SSL_COMP_push(sk, ptr) OPENSSL_sk_push(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) +#define sk_SSL_COMP_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) +#define sk_SSL_COMP_pop(sk) ((SSL_COMP *)OPENSSL_sk_pop(ossl_check_SSL_COMP_sk_type(sk))) +#define sk_SSL_COMP_shift(sk) ((SSL_COMP *)OPENSSL_sk_shift(ossl_check_SSL_COMP_sk_type(sk))) +#define sk_SSL_COMP_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_SSL_COMP_sk_type(sk),ossl_check_SSL_COMP_freefunc_type(freefunc)) +#define sk_SSL_COMP_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr), (idx)) +#define sk_SSL_COMP_set(sk, idx, ptr) ((SSL_COMP *)OPENSSL_sk_set(ossl_check_SSL_COMP_sk_type(sk), (idx), ossl_check_SSL_COMP_type(ptr))) +#define sk_SSL_COMP_find(sk, ptr) OPENSSL_sk_find(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) +#define sk_SSL_COMP_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) +#define sk_SSL_COMP_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr), pnum) +#define sk_SSL_COMP_sort(sk) OPENSSL_sk_sort(ossl_check_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_dup(sk) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_dup(ossl_check_const_SSL_COMP_sk_type(sk))) +#define sk_SSL_COMP_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_deep_copy(ossl_check_const_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_copyfunc_type(copyfunc), ossl_check_SSL_COMP_freefunc_type(freefunc))) +#define sk_SSL_COMP_set_cmp_func(sk, cmp) ((sk_SSL_COMP_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_compfunc_type(cmp))) + + + +# ifdef __cplusplus +} +# endif +#endif diff --git a/deps/openssl/config/archs/BSD-x86_64/asm/include/openssl/conf.h b/deps/openssl/config/archs/BSD-x86_64/asm/include/openssl/conf.h index 44989929f6c84a..38576290bf641b 100644 --- a/deps/openssl/config/archs/BSD-x86_64/asm/include/openssl/conf.h +++ b/deps/openssl/config/archs/BSD-x86_64/asm/include/openssl/conf.h @@ -27,6 +27,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -65,7 +68,7 @@ SKM_DEFINE_STACK_OF_INTERNAL(CONF_VALUE, CONF_VALUE, CONF_VALUE) #define sk_CONF_VALUE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(CONF_VALUE) *)OPENSSL_sk_deep_copy(ossl_check_const_CONF_VALUE_sk_type(sk), ossl_check_CONF_VALUE_copyfunc_type(copyfunc), ossl_check_CONF_VALUE_freefunc_type(freefunc))) #define sk_CONF_VALUE_set_cmp_func(sk, cmp) ((sk_CONF_VALUE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_CONF_VALUE_sk_type(sk), ossl_check_CONF_VALUE_compfunc_type(cmp))) DEFINE_LHASH_OF_INTERNAL(CONF_VALUE); -#define lh_CONF_VALUE_new(hfn, cmp) ((LHASH_OF(CONF_VALUE) *)OPENSSL_LH_new(ossl_check_CONF_VALUE_lh_hashfunc_type(hfn), ossl_check_CONF_VALUE_lh_compfunc_type(cmp))) +#define lh_CONF_VALUE_new(hfn, cmp) ((LHASH_OF(CONF_VALUE) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new(ossl_check_CONF_VALUE_lh_hashfunc_type(hfn), ossl_check_CONF_VALUE_lh_compfunc_type(cmp)), lh_CONF_VALUE_hash_thunk, lh_CONF_VALUE_comp_thunk, lh_CONF_VALUE_doall_thunk, lh_CONF_VALUE_doall_arg_thunk)) #define lh_CONF_VALUE_free(lh) OPENSSL_LH_free(ossl_check_CONF_VALUE_lh_type(lh)) #define lh_CONF_VALUE_flush(lh) OPENSSL_LH_flush(ossl_check_CONF_VALUE_lh_type(lh)) #define lh_CONF_VALUE_insert(lh, ptr) ((CONF_VALUE *)OPENSSL_LH_insert(ossl_check_CONF_VALUE_lh_type(lh), ossl_check_CONF_VALUE_lh_plain_type(ptr))) diff --git a/deps/openssl/config/archs/BSD-x86_64/asm/include/openssl/configuration.h b/deps/openssl/config/archs/BSD-x86_64/asm/include/openssl/configuration.h index e18969acd408c4..494098a6937b85 100644 --- a/deps/openssl/config/archs/BSD-x86_64/asm/include/openssl/configuration.h +++ b/deps/openssl/config/archs/BSD-x86_64/asm/include/openssl/configuration.h @@ -27,7 +27,7 @@ extern "C" { * OpenSSL was configured with the following options: */ -# define OPENSSL_CONFIGURED_API 30000 +# define OPENSSL_CONFIGURED_API 30500 # ifndef OPENSSL_RAND_SEED_OS # define OPENSSL_RAND_SEED_OS # endif @@ -40,6 +40,12 @@ extern "C" { # ifndef OPENSSL_NO_ASAN # define OPENSSL_NO_ASAN # endif +# ifndef OPENSSL_NO_BROTLI +# define OPENSSL_NO_BROTLI +# endif +# ifndef OPENSSL_NO_BROTLI_DYNAMIC +# define OPENSSL_NO_BROTLI_DYNAMIC +# endif # ifndef OPENSSL_NO_COMP # define OPENSSL_NO_COMP # endif @@ -49,6 +55,9 @@ extern "C" { # ifndef OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE # define OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE # endif +# ifndef OPENSSL_NO_DEMOS +# define OPENSSL_NO_DEMOS +# endif # ifndef OPENSSL_NO_EC_NISTP_64_GCC_128 # define OPENSSL_NO_EC_NISTP_64_GCC_128 # endif @@ -58,12 +67,24 @@ extern "C" { # ifndef OPENSSL_NO_EXTERNAL_TESTS # define OPENSSL_NO_EXTERNAL_TESTS # endif +# ifndef OPENSSL_NO_FIPS_JITTER +# define OPENSSL_NO_FIPS_JITTER +# endif # ifndef OPENSSL_NO_FUZZ_AFL # define OPENSSL_NO_FUZZ_AFL # endif # ifndef OPENSSL_NO_FUZZ_LIBFUZZER # define OPENSSL_NO_FUZZ_LIBFUZZER # endif +# ifndef OPENSSL_NO_H3DEMO +# define OPENSSL_NO_H3DEMO +# endif +# ifndef OPENSSL_NO_HQINTEROP +# define OPENSSL_NO_HQINTEROP +# endif +# ifndef OPENSSL_NO_JITTER +# define OPENSSL_NO_JITTER +# endif # ifndef OPENSSL_NO_KTLS # define OPENSSL_NO_KTLS # endif @@ -76,6 +97,9 @@ extern "C" { # ifndef OPENSSL_NO_MSAN # define OPENSSL_NO_MSAN # endif +# ifndef OPENSSL_NO_PIE +# define OPENSSL_NO_PIE +# endif # ifndef OPENSSL_NO_RC5 # define OPENSSL_NO_RC5 # endif @@ -88,6 +112,12 @@ extern "C" { # ifndef OPENSSL_NO_SSL3_METHOD # define OPENSSL_NO_SSL3_METHOD # endif +# ifndef OPENSSL_NO_SSLKEYLOG +# define OPENSSL_NO_SSLKEYLOG +# endif +# ifndef OPENSSL_NO_TFO +# define OPENSSL_NO_TFO +# endif # ifndef OPENSSL_NO_TRACE # define OPENSSL_NO_TRACE # endif @@ -103,6 +133,21 @@ extern "C" { # ifndef OPENSSL_NO_WEAK_SSL_CIPHERS # define OPENSSL_NO_WEAK_SSL_CIPHERS # endif +# ifndef OPENSSL_NO_WINSTORE +# define OPENSSL_NO_WINSTORE +# endif +# ifndef OPENSSL_NO_ZLIB +# define OPENSSL_NO_ZLIB +# endif +# ifndef OPENSSL_NO_ZLIB_DYNAMIC +# define OPENSSL_NO_ZLIB_DYNAMIC +# endif +# ifndef OPENSSL_NO_ZSTD +# define OPENSSL_NO_ZSTD +# endif +# ifndef OPENSSL_NO_ZSTD_DYNAMIC +# define OPENSSL_NO_ZSTD_DYNAMIC +# endif # ifndef OPENSSL_NO_DYNAMIC_ENGINE # define OPENSSL_NO_DYNAMIC_ENGINE # endif @@ -124,6 +169,12 @@ extern "C" { # define RC4_INT unsigned int +# if defined(OPENSSL_NO_COMP) || (defined(OPENSSL_NO_BROTLI) && defined(OPENSSL_NO_ZSTD) && defined(OPENSSL_NO_ZLIB)) +# define OPENSSL_NO_COMP_ALG +# else +# undef OPENSSL_NO_COMP_ALG +# endif + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/BSD-x86_64/asm/include/openssl/core_names.h b/deps/openssl/config/archs/BSD-x86_64/asm/include/openssl/core_names.h new file mode 100644 index 00000000000000..e93e79a52bc910 --- /dev/null +++ b/deps/openssl/config/archs/BSD-x86_64/asm/include/openssl/core_names.h @@ -0,0 +1,575 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from include/openssl/core_names.h.in + * + * Copyright 2019-2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + +#ifndef OPENSSL_CORE_NAMES_H +# define OPENSSL_CORE_NAMES_H +# pragma once + +# ifdef __cplusplus +extern "C" { +# endif + +/* OSSL_CIPHER_PARAM_CTS_MODE Values */ +# define OSSL_CIPHER_CTS_MODE_CS1 "CS1" +# define OSSL_CIPHER_CTS_MODE_CS2 "CS2" +# define OSSL_CIPHER_CTS_MODE_CS3 "CS3" + +/* Known CIPHER names (not a complete list) */ +# define OSSL_CIPHER_NAME_AES_128_GCM_SIV "AES-128-GCM-SIV" +# define OSSL_CIPHER_NAME_AES_192_GCM_SIV "AES-192-GCM-SIV" +# define OSSL_CIPHER_NAME_AES_256_GCM_SIV "AES-256-GCM-SIV" + +/* Known DIGEST names (not a complete list) */ +# define OSSL_DIGEST_NAME_MD5 "MD5" +# define OSSL_DIGEST_NAME_MD5_SHA1 "MD5-SHA1" +# define OSSL_DIGEST_NAME_SHA1 "SHA1" +# define OSSL_DIGEST_NAME_SHA2_224 "SHA2-224" +# define OSSL_DIGEST_NAME_SHA2_256 "SHA2-256" +# define OSSL_DIGEST_NAME_SHA2_256_192 "SHA2-256/192" +# define OSSL_DIGEST_NAME_SHA2_384 "SHA2-384" +# define OSSL_DIGEST_NAME_SHA2_512 "SHA2-512" +# define OSSL_DIGEST_NAME_SHA2_512_224 "SHA2-512/224" +# define OSSL_DIGEST_NAME_SHA2_512_256 "SHA2-512/256" +# define OSSL_DIGEST_NAME_MD2 "MD2" +# define OSSL_DIGEST_NAME_MD4 "MD4" +# define OSSL_DIGEST_NAME_MDC2 "MDC2" +# define OSSL_DIGEST_NAME_RIPEMD160 "RIPEMD160" +# define OSSL_DIGEST_NAME_SHA3_224 "SHA3-224" +# define OSSL_DIGEST_NAME_SHA3_256 "SHA3-256" +# define OSSL_DIGEST_NAME_SHA3_384 "SHA3-384" +# define OSSL_DIGEST_NAME_SHA3_512 "SHA3-512" +# define OSSL_DIGEST_NAME_KECCAK_KMAC128 "KECCAK-KMAC-128" +# define OSSL_DIGEST_NAME_KECCAK_KMAC256 "KECCAK-KMAC-256" +# define OSSL_DIGEST_NAME_SM3 "SM3" + +/* Known MAC names */ +# define OSSL_MAC_NAME_BLAKE2BMAC "BLAKE2BMAC" +# define OSSL_MAC_NAME_BLAKE2SMAC "BLAKE2SMAC" +# define OSSL_MAC_NAME_CMAC "CMAC" +# define OSSL_MAC_NAME_GMAC "GMAC" +# define OSSL_MAC_NAME_HMAC "HMAC" +# define OSSL_MAC_NAME_KMAC128 "KMAC128" +# define OSSL_MAC_NAME_KMAC256 "KMAC256" +# define OSSL_MAC_NAME_POLY1305 "POLY1305" +# define OSSL_MAC_NAME_SIPHASH "SIPHASH" + +/* Known KDF names */ +# define OSSL_KDF_NAME_HKDF "HKDF" +# define OSSL_KDF_NAME_TLS1_3_KDF "TLS13-KDF" +# define OSSL_KDF_NAME_PBKDF1 "PBKDF1" +# define OSSL_KDF_NAME_PBKDF2 "PBKDF2" +# define OSSL_KDF_NAME_SCRYPT "SCRYPT" +# define OSSL_KDF_NAME_SSHKDF "SSHKDF" +# define OSSL_KDF_NAME_SSKDF "SSKDF" +# define OSSL_KDF_NAME_TLS1_PRF "TLS1-PRF" +# define OSSL_KDF_NAME_X942KDF_ASN1 "X942KDF-ASN1" +# define OSSL_KDF_NAME_X942KDF_CONCAT "X942KDF-CONCAT" +# define OSSL_KDF_NAME_X963KDF "X963KDF" +# define OSSL_KDF_NAME_KBKDF "KBKDF" +# define OSSL_KDF_NAME_KRB5KDF "KRB5KDF" +# define OSSL_KDF_NAME_HMACDRBGKDF "HMAC-DRBG-KDF" + +/* RSA padding modes */ +# define OSSL_PKEY_RSA_PAD_MODE_NONE "none" +# define OSSL_PKEY_RSA_PAD_MODE_PKCSV15 "pkcs1" +# define OSSL_PKEY_RSA_PAD_MODE_OAEP "oaep" +# define OSSL_PKEY_RSA_PAD_MODE_X931 "x931" +# define OSSL_PKEY_RSA_PAD_MODE_PSS "pss" + +/* RSA pss padding salt length */ +# define OSSL_PKEY_RSA_PSS_SALT_LEN_DIGEST "digest" +# define OSSL_PKEY_RSA_PSS_SALT_LEN_MAX "max" +# define OSSL_PKEY_RSA_PSS_SALT_LEN_AUTO "auto" +# define OSSL_PKEY_RSA_PSS_SALT_LEN_AUTO_DIGEST_MAX "auto-digestmax" + +/* OSSL_PKEY_PARAM_EC_ENCODING values */ +# define OSSL_PKEY_EC_ENCODING_EXPLICIT "explicit" +# define OSSL_PKEY_EC_ENCODING_GROUP "named_curve" + +# define OSSL_PKEY_EC_POINT_CONVERSION_FORMAT_UNCOMPRESSED "uncompressed" +# define OSSL_PKEY_EC_POINT_CONVERSION_FORMAT_COMPRESSED "compressed" +# define OSSL_PKEY_EC_POINT_CONVERSION_FORMAT_HYBRID "hybrid" + +# define OSSL_PKEY_EC_GROUP_CHECK_DEFAULT "default" +# define OSSL_PKEY_EC_GROUP_CHECK_NAMED "named" +# define OSSL_PKEY_EC_GROUP_CHECK_NAMED_NIST "named-nist" + +/* PROV_SKEY well known key types */ +# define OSSL_SKEY_TYPE_GENERIC "GENERIC-SECRET" +# define OSSL_SKEY_TYPE_AES "AES" + +/* OSSL_KEM_PARAM_OPERATION values */ +#define OSSL_KEM_PARAM_OPERATION_RSASVE "RSASVE" +#define OSSL_KEM_PARAM_OPERATION_DHKEM "DHKEM" + +/* Provider configuration variables */ +#define OSSL_PKEY_RETAIN_SEED "pkey_retain_seed" + +/* Parameter name definitions - generated by util/perl/OpenSSL/paramnames.pm */ +# define OSSL_ALG_PARAM_ALGORITHM_ID "algorithm-id" +# define OSSL_ALG_PARAM_ALGORITHM_ID_PARAMS "algorithm-id-params" +# define OSSL_ALG_PARAM_CIPHER "cipher" +# define OSSL_ALG_PARAM_DIGEST "digest" +# define OSSL_ALG_PARAM_ENGINE "engine" +# define OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR "fips-indicator" +# define OSSL_ALG_PARAM_MAC "mac" +# define OSSL_ALG_PARAM_PROPERTIES "properties" +# define OSSL_ASYM_CIPHER_PARAM_DIGEST OSSL_PKEY_PARAM_DIGEST +# define OSSL_ASYM_CIPHER_PARAM_ENGINE OSSL_PKEY_PARAM_ENGINE +# define OSSL_ASYM_CIPHER_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_ASYM_CIPHER_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_ASYM_CIPHER_PARAM_FIPS_RSA_PKCS15_PAD_DISABLED OSSL_PROV_PARAM_RSA_PKCS15_PAD_DISABLED +# define OSSL_ASYM_CIPHER_PARAM_IMPLICIT_REJECTION "implicit-rejection" +# define OSSL_ASYM_CIPHER_PARAM_MGF1_DIGEST OSSL_PKEY_PARAM_MGF1_DIGEST +# define OSSL_ASYM_CIPHER_PARAM_MGF1_DIGEST_PROPS OSSL_PKEY_PARAM_MGF1_PROPERTIES +# define OSSL_ASYM_CIPHER_PARAM_OAEP_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_ASYM_CIPHER_PARAM_OAEP_DIGEST_PROPS "digest-props" +# define OSSL_ASYM_CIPHER_PARAM_OAEP_LABEL "oaep-label" +# define OSSL_ASYM_CIPHER_PARAM_PAD_MODE OSSL_PKEY_PARAM_PAD_MODE +# define OSSL_ASYM_CIPHER_PARAM_PROPERTIES OSSL_PKEY_PARAM_PROPERTIES +# define OSSL_ASYM_CIPHER_PARAM_TLS_CLIENT_VERSION "tls-client-version" +# define OSSL_ASYM_CIPHER_PARAM_TLS_NEGOTIATED_VERSION "tls-negotiated-version" +# define OSSL_CAPABILITY_TLS_GROUP_ALG "tls-group-alg" +# define OSSL_CAPABILITY_TLS_GROUP_ID "tls-group-id" +# define OSSL_CAPABILITY_TLS_GROUP_IS_KEM "tls-group-is-kem" +# define OSSL_CAPABILITY_TLS_GROUP_MAX_DTLS "tls-max-dtls" +# define OSSL_CAPABILITY_TLS_GROUP_MAX_TLS "tls-max-tls" +# define OSSL_CAPABILITY_TLS_GROUP_MIN_DTLS "tls-min-dtls" +# define OSSL_CAPABILITY_TLS_GROUP_MIN_TLS "tls-min-tls" +# define OSSL_CAPABILITY_TLS_GROUP_NAME "tls-group-name" +# define OSSL_CAPABILITY_TLS_GROUP_NAME_INTERNAL "tls-group-name-internal" +# define OSSL_CAPABILITY_TLS_GROUP_SECURITY_BITS "tls-group-sec-bits" +# define OSSL_CAPABILITY_TLS_SIGALG_CODE_POINT "tls-sigalg-code-point" +# define OSSL_CAPABILITY_TLS_SIGALG_HASH_NAME "tls-sigalg-hash-name" +# define OSSL_CAPABILITY_TLS_SIGALG_HASH_OID "tls-sigalg-hash-oid" +# define OSSL_CAPABILITY_TLS_SIGALG_IANA_NAME "tls-sigalg-iana-name" +# define OSSL_CAPABILITY_TLS_SIGALG_KEYTYPE "tls-sigalg-keytype" +# define OSSL_CAPABILITY_TLS_SIGALG_KEYTYPE_OID "tls-sigalg-keytype-oid" +# define OSSL_CAPABILITY_TLS_SIGALG_MAX_DTLS "tls-max-dtls" +# define OSSL_CAPABILITY_TLS_SIGALG_MAX_TLS "tls-max-tls" +# define OSSL_CAPABILITY_TLS_SIGALG_MIN_DTLS "tls-min-dtls" +# define OSSL_CAPABILITY_TLS_SIGALG_MIN_TLS "tls-min-tls" +# define OSSL_CAPABILITY_TLS_SIGALG_NAME "tls-sigalg-name" +# define OSSL_CAPABILITY_TLS_SIGALG_OID "tls-sigalg-oid" +# define OSSL_CAPABILITY_TLS_SIGALG_SECURITY_BITS "tls-sigalg-sec-bits" +# define OSSL_CAPABILITY_TLS_SIGALG_SIG_NAME "tls-sigalg-sig-name" +# define OSSL_CAPABILITY_TLS_SIGALG_SIG_OID "tls-sigalg-sig-oid" +# define OSSL_CIPHER_PARAM_AEAD "aead" +# define OSSL_CIPHER_PARAM_AEAD_IVLEN OSSL_CIPHER_PARAM_IVLEN +# define OSSL_CIPHER_PARAM_AEAD_IV_GENERATED "iv-generated" +# define OSSL_CIPHER_PARAM_AEAD_MAC_KEY "mackey" +# define OSSL_CIPHER_PARAM_AEAD_TAG "tag" +# define OSSL_CIPHER_PARAM_AEAD_TAGLEN "taglen" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_AAD "tlsaad" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_AAD_PAD "tlsaadpad" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_GET_IV_GEN "tlsivgen" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_IV_FIXED "tlsivfixed" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_SET_IV_INV "tlsivinv" +# define OSSL_CIPHER_PARAM_ALGORITHM_ID OSSL_ALG_PARAM_ALGORITHM_ID +# define OSSL_CIPHER_PARAM_ALGORITHM_ID_PARAMS OSSL_ALG_PARAM_ALGORITHM_ID_PARAMS +# define OSSL_CIPHER_PARAM_ALGORITHM_ID_PARAMS_OLD "alg_id_param" +# define OSSL_CIPHER_PARAM_BLOCK_SIZE "blocksize" +# define OSSL_CIPHER_PARAM_CTS "cts" +# define OSSL_CIPHER_PARAM_CTS_MODE "cts_mode" +# define OSSL_CIPHER_PARAM_CUSTOM_IV "custom-iv" +# define OSSL_CIPHER_PARAM_DECRYPT_ONLY "decrypt-only" +# define OSSL_CIPHER_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_CIPHER_PARAM_FIPS_ENCRYPT_CHECK "encrypt-check" +# define OSSL_CIPHER_PARAM_HAS_RAND_KEY "has-randkey" +# define OSSL_CIPHER_PARAM_IV "iv" +# define OSSL_CIPHER_PARAM_IVLEN "ivlen" +# define OSSL_CIPHER_PARAM_KEYLEN "keylen" +# define OSSL_CIPHER_PARAM_MODE "mode" +# define OSSL_CIPHER_PARAM_NUM "num" +# define OSSL_CIPHER_PARAM_PADDING "padding" +# define OSSL_CIPHER_PARAM_PIPELINE_AEAD_TAG "pipeline-tag" +# define OSSL_CIPHER_PARAM_RANDOM_KEY "randkey" +# define OSSL_CIPHER_PARAM_RC2_KEYBITS "keybits" +# define OSSL_CIPHER_PARAM_ROUNDS "rounds" +# define OSSL_CIPHER_PARAM_SPEED "speed" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK "tls-multi" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD "tls1multi_aad" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD_PACKLEN "tls1multi_aadpacklen" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC "tls1multi_enc" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_IN "tls1multi_encin" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_LEN "tls1multi_enclen" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_INTERLEAVE "tls1multi_interleave" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_BUFSIZE "tls1multi_maxbufsz" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_SEND_FRAGMENT "tls1multi_maxsndfrag" +# define OSSL_CIPHER_PARAM_TLS_MAC "tls-mac" +# define OSSL_CIPHER_PARAM_TLS_MAC_SIZE "tls-mac-size" +# define OSSL_CIPHER_PARAM_TLS_VERSION "tls-version" +# define OSSL_CIPHER_PARAM_UPDATED_IV "updated-iv" +# define OSSL_CIPHER_PARAM_USE_BITS "use-bits" +# define OSSL_CIPHER_PARAM_XTS_STANDARD "xts_standard" +# define OSSL_DECODER_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_DIGEST_PARAM_ALGID_ABSENT "algid-absent" +# define OSSL_DIGEST_PARAM_BLOCK_SIZE "blocksize" +# define OSSL_DIGEST_PARAM_MICALG "micalg" +# define OSSL_DIGEST_PARAM_PAD_TYPE "pad-type" +# define OSSL_DIGEST_PARAM_SIZE "size" +# define OSSL_DIGEST_PARAM_SSL3_MS "ssl3-ms" +# define OSSL_DIGEST_PARAM_XOF "xof" +# define OSSL_DIGEST_PARAM_XOFLEN "xoflen" +# define OSSL_DRBG_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_DRBG_PARAM_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_DRBG_PARAM_ENTROPY_REQUIRED "entropy_required" +# define OSSL_DRBG_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_DRBG_PARAM_FIPS_DIGEST_CHECK OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK +# define OSSL_DRBG_PARAM_MAC OSSL_ALG_PARAM_MAC +# define OSSL_DRBG_PARAM_MAX_ADINLEN "max_adinlen" +# define OSSL_DRBG_PARAM_MAX_ENTROPYLEN "max_entropylen" +# define OSSL_DRBG_PARAM_MAX_LENGTH "maxium_length" +# define OSSL_DRBG_PARAM_MAX_NONCELEN "max_noncelen" +# define OSSL_DRBG_PARAM_MAX_PERSLEN "max_perslen" +# define OSSL_DRBG_PARAM_MIN_ENTROPYLEN "min_entropylen" +# define OSSL_DRBG_PARAM_MIN_LENGTH "minium_length" +# define OSSL_DRBG_PARAM_MIN_NONCELEN "min_noncelen" +# define OSSL_DRBG_PARAM_PREDICTION_RESISTANCE "prediction_resistance" +# define OSSL_DRBG_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_DRBG_PARAM_RANDOM_DATA "random_data" +# define OSSL_DRBG_PARAM_RESEED_COUNTER "reseed_counter" +# define OSSL_DRBG_PARAM_RESEED_REQUESTS "reseed_requests" +# define OSSL_DRBG_PARAM_RESEED_TIME "reseed_time" +# define OSSL_DRBG_PARAM_RESEED_TIME_INTERVAL "reseed_time_interval" +# define OSSL_DRBG_PARAM_SIZE "size" +# define OSSL_DRBG_PARAM_USE_DF "use_derivation_function" +# define OSSL_ENCODER_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_ENCODER_PARAM_ENCRYPT_LEVEL "encrypt-level" +# define OSSL_ENCODER_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_ENCODER_PARAM_SAVE_PARAMETERS "save-parameters" +# define OSSL_EXCHANGE_PARAM_EC_ECDH_COFACTOR_MODE "ecdh-cofactor-mode" +# define OSSL_EXCHANGE_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_EXCHANGE_PARAM_FIPS_DIGEST_CHECK OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK +# define OSSL_EXCHANGE_PARAM_FIPS_ECDH_COFACTOR_CHECK OSSL_PROV_PARAM_ECDH_COFACTOR_CHECK +# define OSSL_EXCHANGE_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_EXCHANGE_PARAM_KDF_DIGEST "kdf-digest" +# define OSSL_EXCHANGE_PARAM_KDF_DIGEST_PROPS "kdf-digest-props" +# define OSSL_EXCHANGE_PARAM_KDF_OUTLEN "kdf-outlen" +# define OSSL_EXCHANGE_PARAM_KDF_TYPE "kdf-type" +# define OSSL_EXCHANGE_PARAM_KDF_UKM "kdf-ukm" +# define OSSL_EXCHANGE_PARAM_PAD "pad" +# define OSSL_GEN_PARAM_ITERATION "iteration" +# define OSSL_GEN_PARAM_POTENTIAL "potential" +# define OSSL_KDF_PARAM_ARGON2_AD "ad" +# define OSSL_KDF_PARAM_ARGON2_LANES "lanes" +# define OSSL_KDF_PARAM_ARGON2_MEMCOST "memcost" +# define OSSL_KDF_PARAM_ARGON2_VERSION "version" +# define OSSL_KDF_PARAM_CEK_ALG "cekalg" +# define OSSL_KDF_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_KDF_PARAM_CONSTANT "constant" +# define OSSL_KDF_PARAM_DATA "data" +# define OSSL_KDF_PARAM_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_KDF_PARAM_EARLY_CLEAN "early_clean" +# define OSSL_KDF_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_KDF_PARAM_FIPS_DIGEST_CHECK OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK +# define OSSL_KDF_PARAM_FIPS_EMS_CHECK "ems_check" +# define OSSL_KDF_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_KDF_PARAM_HMACDRBG_ENTROPY "entropy" +# define OSSL_KDF_PARAM_HMACDRBG_NONCE "nonce" +# define OSSL_KDF_PARAM_INFO "info" +# define OSSL_KDF_PARAM_ITER "iter" +# define OSSL_KDF_PARAM_KBKDF_R "r" +# define OSSL_KDF_PARAM_KBKDF_USE_L "use-l" +# define OSSL_KDF_PARAM_KBKDF_USE_SEPARATOR "use-separator" +# define OSSL_KDF_PARAM_KEY "key" +# define OSSL_KDF_PARAM_LABEL "label" +# define OSSL_KDF_PARAM_MAC OSSL_ALG_PARAM_MAC +# define OSSL_KDF_PARAM_MAC_SIZE "maclen" +# define OSSL_KDF_PARAM_MODE "mode" +# define OSSL_KDF_PARAM_PASSWORD "pass" +# define OSSL_KDF_PARAM_PKCS12_ID "id" +# define OSSL_KDF_PARAM_PKCS5 "pkcs5" +# define OSSL_KDF_PARAM_PREFIX "prefix" +# define OSSL_KDF_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_KDF_PARAM_SALT "salt" +# define OSSL_KDF_PARAM_SCRYPT_MAXMEM "maxmem_bytes" +# define OSSL_KDF_PARAM_SCRYPT_N "n" +# define OSSL_KDF_PARAM_SCRYPT_P "p" +# define OSSL_KDF_PARAM_SCRYPT_R "r" +# define OSSL_KDF_PARAM_SECRET "secret" +# define OSSL_KDF_PARAM_SEED "seed" +# define OSSL_KDF_PARAM_SIZE "size" +# define OSSL_KDF_PARAM_SSHKDF_SESSION_ID "session_id" +# define OSSL_KDF_PARAM_SSHKDF_TYPE "type" +# define OSSL_KDF_PARAM_SSHKDF_XCGHASH "xcghash" +# define OSSL_KDF_PARAM_THREADS "threads" +# define OSSL_KDF_PARAM_UKM "ukm" +# define OSSL_KDF_PARAM_X942_ACVPINFO "acvp-info" +# define OSSL_KDF_PARAM_X942_PARTYUINFO "partyu-info" +# define OSSL_KDF_PARAM_X942_PARTYVINFO "partyv-info" +# define OSSL_KDF_PARAM_X942_SUPP_PRIVINFO "supp-privinfo" +# define OSSL_KDF_PARAM_X942_SUPP_PUBINFO "supp-pubinfo" +# define OSSL_KDF_PARAM_X942_USE_KEYBITS "use-keybits" +# define OSSL_KEM_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_KEM_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_KEM_PARAM_IKME "ikme" +# define OSSL_KEM_PARAM_OPERATION "operation" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_BLOCK_PADDING "block_padding" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_HS_PADDING "hs_padding" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_MAX_EARLY_DATA "max_early_data" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_MAX_FRAG_LEN "max_frag_len" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_MODE "mode" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_OPTIONS "options" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_READ_AHEAD "read_ahead" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_STREAM_MAC "stream_mac" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_TLSTREE "tlstree" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_USE_ETM "use_etm" +# define OSSL_LIBSSL_RECORD_LAYER_READ_BUFFER_LEN "read_buffer_len" +# define OSSL_MAC_PARAM_BLOCK_SIZE "block-size" +# define OSSL_MAC_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_MAC_PARAM_CUSTOM "custom" +# define OSSL_MAC_PARAM_C_ROUNDS "c-rounds" +# define OSSL_MAC_PARAM_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_MAC_PARAM_DIGEST_NOINIT "digest-noinit" +# define OSSL_MAC_PARAM_DIGEST_ONESHOT "digest-oneshot" +# define OSSL_MAC_PARAM_D_ROUNDS "d-rounds" +# define OSSL_MAC_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_MAC_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_MAC_PARAM_FIPS_NO_SHORT_MAC OSSL_PROV_PARAM_NO_SHORT_MAC +# define OSSL_MAC_PARAM_IV "iv" +# define OSSL_MAC_PARAM_KEY "key" +# define OSSL_MAC_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_MAC_PARAM_SALT "salt" +# define OSSL_MAC_PARAM_SIZE "size" +# define OSSL_MAC_PARAM_TLS_DATA_SIZE "tls-data-size" +# define OSSL_MAC_PARAM_XOF "xof" +# define OSSL_OBJECT_PARAM_DATA "data" +# define OSSL_OBJECT_PARAM_DATA_STRUCTURE "data-structure" +# define OSSL_OBJECT_PARAM_DATA_TYPE "data-type" +# define OSSL_OBJECT_PARAM_DESC "desc" +# define OSSL_OBJECT_PARAM_INPUT_TYPE "input-type" +# define OSSL_OBJECT_PARAM_REFERENCE "reference" +# define OSSL_OBJECT_PARAM_TYPE "type" +# define OSSL_PASSPHRASE_PARAM_INFO "info" +# define OSSL_PKEY_PARAM_ALGORITHM_ID OSSL_ALG_PARAM_ALGORITHM_ID +# define OSSL_PKEY_PARAM_ALGORITHM_ID_PARAMS OSSL_ALG_PARAM_ALGORITHM_ID_PARAMS +# define OSSL_PKEY_PARAM_BITS "bits" +# define OSSL_PKEY_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_PKEY_PARAM_DEFAULT_DIGEST "default-digest" +# define OSSL_PKEY_PARAM_DHKEM_IKM "dhkem-ikm" +# define OSSL_PKEY_PARAM_DH_GENERATOR "safeprime-generator" +# define OSSL_PKEY_PARAM_DH_PRIV_LEN "priv_len" +# define OSSL_PKEY_PARAM_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_PKEY_PARAM_DIGEST_SIZE "digest-size" +# define OSSL_PKEY_PARAM_DIST_ID "distid" +# define OSSL_PKEY_PARAM_EC_A "a" +# define OSSL_PKEY_PARAM_EC_B "b" +# define OSSL_PKEY_PARAM_EC_CHAR2_M "m" +# define OSSL_PKEY_PARAM_EC_CHAR2_PP_K1 "k1" +# define OSSL_PKEY_PARAM_EC_CHAR2_PP_K2 "k2" +# define OSSL_PKEY_PARAM_EC_CHAR2_PP_K3 "k3" +# define OSSL_PKEY_PARAM_EC_CHAR2_TP_BASIS "tp" +# define OSSL_PKEY_PARAM_EC_CHAR2_TYPE "basis-type" +# define OSSL_PKEY_PARAM_EC_COFACTOR "cofactor" +# define OSSL_PKEY_PARAM_EC_DECODED_FROM_EXPLICIT_PARAMS "decoded-from-explicit" +# define OSSL_PKEY_PARAM_EC_ENCODING "encoding" +# define OSSL_PKEY_PARAM_EC_FIELD_TYPE "field-type" +# define OSSL_PKEY_PARAM_EC_GENERATOR "generator" +# define OSSL_PKEY_PARAM_EC_GROUP_CHECK_TYPE "group-check" +# define OSSL_PKEY_PARAM_EC_INCLUDE_PUBLIC "include-public" +# define OSSL_PKEY_PARAM_EC_ORDER "order" +# define OSSL_PKEY_PARAM_EC_P "p" +# define OSSL_PKEY_PARAM_EC_POINT_CONVERSION_FORMAT "point-format" +# define OSSL_PKEY_PARAM_EC_PUB_X "qx" +# define OSSL_PKEY_PARAM_EC_PUB_Y "qy" +# define OSSL_PKEY_PARAM_EC_SEED "seed" +# define OSSL_PKEY_PARAM_ENCODED_PUBLIC_KEY "encoded-pub-key" +# define OSSL_PKEY_PARAM_ENGINE OSSL_ALG_PARAM_ENGINE +# define OSSL_PKEY_PARAM_FFC_COFACTOR "j" +# define OSSL_PKEY_PARAM_FFC_DIGEST OSSL_PKEY_PARAM_DIGEST +# define OSSL_PKEY_PARAM_FFC_DIGEST_PROPS OSSL_PKEY_PARAM_PROPERTIES +# define OSSL_PKEY_PARAM_FFC_G "g" +# define OSSL_PKEY_PARAM_FFC_GINDEX "gindex" +# define OSSL_PKEY_PARAM_FFC_H "hindex" +# define OSSL_PKEY_PARAM_FFC_P "p" +# define OSSL_PKEY_PARAM_FFC_PBITS "pbits" +# define OSSL_PKEY_PARAM_FFC_PCOUNTER "pcounter" +# define OSSL_PKEY_PARAM_FFC_Q "q" +# define OSSL_PKEY_PARAM_FFC_QBITS "qbits" +# define OSSL_PKEY_PARAM_FFC_SEED "seed" +# define OSSL_PKEY_PARAM_FFC_TYPE "type" +# define OSSL_PKEY_PARAM_FFC_VALIDATE_G "validate-g" +# define OSSL_PKEY_PARAM_FFC_VALIDATE_LEGACY "validate-legacy" +# define OSSL_PKEY_PARAM_FFC_VALIDATE_PQ "validate-pq" +# define OSSL_PKEY_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK "digest-check" +# define OSSL_PKEY_PARAM_FIPS_KEY_CHECK "key-check" +# define OSSL_PKEY_PARAM_FIPS_SIGN_CHECK "sign-check" +# define OSSL_PKEY_PARAM_GROUP_NAME "group" +# define OSSL_PKEY_PARAM_IMPLICIT_REJECTION "implicit-rejection" +# define OSSL_PKEY_PARAM_MANDATORY_DIGEST "mandatory-digest" +# define OSSL_PKEY_PARAM_MASKGENFUNC "mgf" +# define OSSL_PKEY_PARAM_MAX_SIZE "max-size" +# define OSSL_PKEY_PARAM_MGF1_DIGEST "mgf1-digest" +# define OSSL_PKEY_PARAM_MGF1_PROPERTIES "mgf1-properties" +# define OSSL_PKEY_PARAM_ML_DSA_INPUT_FORMATS "ml-dsa.input_formats" +# define OSSL_PKEY_PARAM_ML_DSA_OUTPUT_FORMATS "ml-dsa.output_formats" +# define OSSL_PKEY_PARAM_ML_DSA_PREFER_SEED "ml-dsa.prefer_seed" +# define OSSL_PKEY_PARAM_ML_DSA_RETAIN_SEED "ml-dsa.retain_seed" +# define OSSL_PKEY_PARAM_ML_DSA_SEED "seed" +# define OSSL_PKEY_PARAM_ML_KEM_IMPORT_PCT_TYPE "ml-kem.import_pct_type" +# define OSSL_PKEY_PARAM_ML_KEM_INPUT_FORMATS "ml-kem.input_formats" +# define OSSL_PKEY_PARAM_ML_KEM_OUTPUT_FORMATS "ml-kem.output_formats" +# define OSSL_PKEY_PARAM_ML_KEM_PREFER_SEED "ml-kem.prefer_seed" +# define OSSL_PKEY_PARAM_ML_KEM_RETAIN_SEED "ml-kem.retain_seed" +# define OSSL_PKEY_PARAM_ML_KEM_SEED "seed" +# define OSSL_PKEY_PARAM_PAD_MODE "pad-mode" +# define OSSL_PKEY_PARAM_PRIV_KEY "priv" +# define OSSL_PKEY_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_PKEY_PARAM_PUB_KEY "pub" +# define OSSL_PKEY_PARAM_RSA_BITS OSSL_PKEY_PARAM_BITS +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT "rsa-coefficient" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT1 "rsa-coefficient1" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT2 "rsa-coefficient2" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT3 "rsa-coefficient3" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT4 "rsa-coefficient4" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT5 "rsa-coefficient5" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT6 "rsa-coefficient6" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT7 "rsa-coefficient7" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT8 "rsa-coefficient8" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT9 "rsa-coefficient9" +# define OSSL_PKEY_PARAM_RSA_D "d" +# define OSSL_PKEY_PARAM_RSA_DERIVE_FROM_PQ "rsa-derive-from-pq" +# define OSSL_PKEY_PARAM_RSA_DIGEST OSSL_PKEY_PARAM_DIGEST +# define OSSL_PKEY_PARAM_RSA_DIGEST_PROPS OSSL_PKEY_PARAM_PROPERTIES +# define OSSL_PKEY_PARAM_RSA_E "e" +# define OSSL_PKEY_PARAM_RSA_EXPONENT "rsa-exponent" +# define OSSL_PKEY_PARAM_RSA_EXPONENT1 "rsa-exponent1" +# define OSSL_PKEY_PARAM_RSA_EXPONENT10 "rsa-exponent10" +# define OSSL_PKEY_PARAM_RSA_EXPONENT2 "rsa-exponent2" +# define OSSL_PKEY_PARAM_RSA_EXPONENT3 "rsa-exponent3" +# define OSSL_PKEY_PARAM_RSA_EXPONENT4 "rsa-exponent4" +# define OSSL_PKEY_PARAM_RSA_EXPONENT5 "rsa-exponent5" +# define OSSL_PKEY_PARAM_RSA_EXPONENT6 "rsa-exponent6" +# define OSSL_PKEY_PARAM_RSA_EXPONENT7 "rsa-exponent7" +# define OSSL_PKEY_PARAM_RSA_EXPONENT8 "rsa-exponent8" +# define OSSL_PKEY_PARAM_RSA_EXPONENT9 "rsa-exponent9" +# define OSSL_PKEY_PARAM_RSA_FACTOR "rsa-factor" +# define OSSL_PKEY_PARAM_RSA_FACTOR1 "rsa-factor1" +# define OSSL_PKEY_PARAM_RSA_FACTOR10 "rsa-factor10" +# define OSSL_PKEY_PARAM_RSA_FACTOR2 "rsa-factor2" +# define OSSL_PKEY_PARAM_RSA_FACTOR3 "rsa-factor3" +# define OSSL_PKEY_PARAM_RSA_FACTOR4 "rsa-factor4" +# define OSSL_PKEY_PARAM_RSA_FACTOR5 "rsa-factor5" +# define OSSL_PKEY_PARAM_RSA_FACTOR6 "rsa-factor6" +# define OSSL_PKEY_PARAM_RSA_FACTOR7 "rsa-factor7" +# define OSSL_PKEY_PARAM_RSA_FACTOR8 "rsa-factor8" +# define OSSL_PKEY_PARAM_RSA_FACTOR9 "rsa-factor9" +# define OSSL_PKEY_PARAM_RSA_MASKGENFUNC OSSL_PKEY_PARAM_MASKGENFUNC +# define OSSL_PKEY_PARAM_RSA_MGF1_DIGEST OSSL_PKEY_PARAM_MGF1_DIGEST +# define OSSL_PKEY_PARAM_RSA_N "n" +# define OSSL_PKEY_PARAM_RSA_PRIMES "primes" +# define OSSL_PKEY_PARAM_RSA_PSS_SALTLEN "saltlen" +# define OSSL_PKEY_PARAM_RSA_TEST_P1 "p1" +# define OSSL_PKEY_PARAM_RSA_TEST_P2 "p2" +# define OSSL_PKEY_PARAM_RSA_TEST_Q1 "q1" +# define OSSL_PKEY_PARAM_RSA_TEST_Q2 "q2" +# define OSSL_PKEY_PARAM_RSA_TEST_XP "xp" +# define OSSL_PKEY_PARAM_RSA_TEST_XP1 "xp1" +# define OSSL_PKEY_PARAM_RSA_TEST_XP2 "xp2" +# define OSSL_PKEY_PARAM_RSA_TEST_XQ "xq" +# define OSSL_PKEY_PARAM_RSA_TEST_XQ1 "xq1" +# define OSSL_PKEY_PARAM_RSA_TEST_XQ2 "xq2" +# define OSSL_PKEY_PARAM_SECURITY_BITS "security-bits" +# define OSSL_PKEY_PARAM_SLH_DSA_SEED "seed" +# define OSSL_PKEY_PARAM_USE_COFACTOR_ECDH OSSL_PKEY_PARAM_USE_COFACTOR_FLAG +# define OSSL_PKEY_PARAM_USE_COFACTOR_FLAG "use-cofactor-flag" +# define OSSL_PROV_PARAM_BUILDINFO "buildinfo" +# define OSSL_PROV_PARAM_CORE_MODULE_FILENAME "module-filename" +# define OSSL_PROV_PARAM_CORE_PROV_NAME "provider-name" +# define OSSL_PROV_PARAM_CORE_VERSION "openssl-version" +# define OSSL_PROV_PARAM_DRBG_TRUNC_DIGEST "drbg-no-trunc-md" +# define OSSL_PROV_PARAM_DSA_SIGN_DISABLED "dsa-sign-disabled" +# define OSSL_PROV_PARAM_ECDH_COFACTOR_CHECK "ecdh-cofactor-check" +# define OSSL_PROV_PARAM_HKDF_DIGEST_CHECK "hkdf-digest-check" +# define OSSL_PROV_PARAM_HKDF_KEY_CHECK "hkdf-key-check" +# define OSSL_PROV_PARAM_HMAC_KEY_CHECK "hmac-key-check" +# define OSSL_PROV_PARAM_KBKDF_KEY_CHECK "kbkdf-key-check" +# define OSSL_PROV_PARAM_KMAC_KEY_CHECK "kmac-key-check" +# define OSSL_PROV_PARAM_NAME "name" +# define OSSL_PROV_PARAM_NO_SHORT_MAC "no-short-mac" +# define OSSL_PROV_PARAM_PBKDF2_LOWER_BOUND_CHECK "pbkdf2-lower-bound-check" +# define OSSL_PROV_PARAM_RSA_PKCS15_PAD_DISABLED "rsa-pkcs15-pad-disabled" +# define OSSL_PROV_PARAM_RSA_PSS_SALTLEN_CHECK "rsa-pss-saltlen-check" +# define OSSL_PROV_PARAM_RSA_SIGN_X931_PAD_DISABLED "rsa-sign-x931-pad-disabled" +# define OSSL_PROV_PARAM_SECURITY_CHECKS "security-checks" +# define OSSL_PROV_PARAM_SELF_TEST_DESC "st-desc" +# define OSSL_PROV_PARAM_SELF_TEST_PHASE "st-phase" +# define OSSL_PROV_PARAM_SELF_TEST_TYPE "st-type" +# define OSSL_PROV_PARAM_SIGNATURE_DIGEST_CHECK "signature-digest-check" +# define OSSL_PROV_PARAM_SSHKDF_DIGEST_CHECK "sshkdf-digest-check" +# define OSSL_PROV_PARAM_SSHKDF_KEY_CHECK "sshkdf-key-check" +# define OSSL_PROV_PARAM_SSKDF_DIGEST_CHECK "sskdf-digest-check" +# define OSSL_PROV_PARAM_SSKDF_KEY_CHECK "sskdf-key-check" +# define OSSL_PROV_PARAM_STATUS "status" +# define OSSL_PROV_PARAM_TDES_ENCRYPT_DISABLED "tdes-encrypt-disabled" +# define OSSL_PROV_PARAM_TLS13_KDF_DIGEST_CHECK "tls13-kdf-digest-check" +# define OSSL_PROV_PARAM_TLS13_KDF_KEY_CHECK "tls13-kdf-key-check" +# define OSSL_PROV_PARAM_TLS1_PRF_DIGEST_CHECK "tls1-prf-digest-check" +# define OSSL_PROV_PARAM_TLS1_PRF_EMS_CHECK "tls1-prf-ems-check" +# define OSSL_PROV_PARAM_TLS1_PRF_KEY_CHECK "tls1-prf-key-check" +# define OSSL_PROV_PARAM_VERSION "version" +# define OSSL_PROV_PARAM_X942KDF_KEY_CHECK "x942kdf-key-check" +# define OSSL_PROV_PARAM_X963KDF_DIGEST_CHECK "x963kdf-digest-check" +# define OSSL_PROV_PARAM_X963KDF_KEY_CHECK "x963kdf-key-check" +# define OSSL_RAND_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_RAND_PARAM_GENERATE "generate" +# define OSSL_RAND_PARAM_MAX_REQUEST "max_request" +# define OSSL_RAND_PARAM_STATE "state" +# define OSSL_RAND_PARAM_STRENGTH "strength" +# define OSSL_RAND_PARAM_TEST_ENTROPY "test_entropy" +# define OSSL_RAND_PARAM_TEST_NONCE "test_nonce" +# define OSSL_SIGNATURE_PARAM_ADD_RANDOM "additional-random" +# define OSSL_SIGNATURE_PARAM_ALGORITHM_ID OSSL_PKEY_PARAM_ALGORITHM_ID +# define OSSL_SIGNATURE_PARAM_ALGORITHM_ID_PARAMS OSSL_PKEY_PARAM_ALGORITHM_ID_PARAMS +# define OSSL_SIGNATURE_PARAM_CONTEXT_STRING "context-string" +# define OSSL_SIGNATURE_PARAM_DETERMINISTIC "deterministic" +# define OSSL_SIGNATURE_PARAM_DIGEST OSSL_PKEY_PARAM_DIGEST +# define OSSL_SIGNATURE_PARAM_DIGEST_SIZE OSSL_PKEY_PARAM_DIGEST_SIZE +# define OSSL_SIGNATURE_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_SIGNATURE_PARAM_FIPS_DIGEST_CHECK OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK +# define OSSL_SIGNATURE_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_SIGNATURE_PARAM_FIPS_RSA_PSS_SALTLEN_CHECK "rsa-pss-saltlen-check" +# define OSSL_SIGNATURE_PARAM_FIPS_SIGN_CHECK OSSL_PKEY_PARAM_FIPS_SIGN_CHECK +# define OSSL_SIGNATURE_PARAM_FIPS_SIGN_X931_PAD_CHECK "sign-x931-pad-check" +# define OSSL_SIGNATURE_PARAM_FIPS_VERIFY_MESSAGE "verify-message" +# define OSSL_SIGNATURE_PARAM_INSTANCE "instance" +# define OSSL_SIGNATURE_PARAM_KAT "kat" +# define OSSL_SIGNATURE_PARAM_MESSAGE_ENCODING "message-encoding" +# define OSSL_SIGNATURE_PARAM_MGF1_DIGEST OSSL_PKEY_PARAM_MGF1_DIGEST +# define OSSL_SIGNATURE_PARAM_MGF1_PROPERTIES OSSL_PKEY_PARAM_MGF1_PROPERTIES +# define OSSL_SIGNATURE_PARAM_MU "mu" +# define OSSL_SIGNATURE_PARAM_NONCE_TYPE "nonce-type" +# define OSSL_SIGNATURE_PARAM_PAD_MODE OSSL_PKEY_PARAM_PAD_MODE +# define OSSL_SIGNATURE_PARAM_PROPERTIES OSSL_PKEY_PARAM_PROPERTIES +# define OSSL_SIGNATURE_PARAM_PSS_SALTLEN "saltlen" +# define OSSL_SIGNATURE_PARAM_SIGNATURE "signature" +# define OSSL_SIGNATURE_PARAM_TEST_ENTROPY "test-entropy" +# define OSSL_SKEY_PARAM_KEY_LENGTH "key-length" +# define OSSL_SKEY_PARAM_RAW_BYTES "raw-bytes" +# define OSSL_STORE_PARAM_ALIAS "alias" +# define OSSL_STORE_PARAM_DIGEST "digest" +# define OSSL_STORE_PARAM_EXPECT "expect" +# define OSSL_STORE_PARAM_FINGERPRINT "fingerprint" +# define OSSL_STORE_PARAM_INPUT_TYPE "input-type" +# define OSSL_STORE_PARAM_ISSUER "name" +# define OSSL_STORE_PARAM_PROPERTIES "properties" +# define OSSL_STORE_PARAM_SERIAL "serial" +# define OSSL_STORE_PARAM_SUBJECT "subject" + +# ifdef __cplusplus +} +# endif + +#endif diff --git a/deps/openssl/config/archs/BSD-x86_64/asm/include/openssl/crmf.h b/deps/openssl/config/archs/BSD-x86_64/asm/include/openssl/crmf.h index 71b747ed33d239..4bf550fd47daa9 100644 --- a/deps/openssl/config/archs/BSD-x86_64/asm/include/openssl/crmf.h +++ b/deps/openssl/config/archs/BSD-x86_64/asm/include/openssl/crmf.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/crmf.h.in * - * Copyright 2007-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2007-2025 The OpenSSL Project Authors. All Rights Reserved. * Copyright Nokia 2007-2019 * Copyright Siemens AG 2015-2019 * @@ -26,6 +26,7 @@ # include # include # include /* for GENERAL_NAME etc. */ +# include /* explicit #includes not strictly needed since implied by the above: */ # include @@ -43,9 +44,12 @@ extern "C" { # define OSSL_CRMF_SUBSEQUENTMESSAGE_ENCRCERT 0 # define OSSL_CRMF_SUBSEQUENTMESSAGE_CHALLENGERESP 1 - typedef struct ossl_crmf_encryptedvalue_st OSSL_CRMF_ENCRYPTEDVALUE; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_ENCRYPTEDVALUE) + +typedef struct ossl_crmf_encryptedkey_st OSSL_CRMF_ENCRYPTEDKEY; +DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_ENCRYPTEDKEY) + typedef struct ossl_crmf_msg_st OSSL_CRMF_MSG; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_MSG) DECLARE_ASN1_DUP_FUNCTION(OSSL_CRMF_MSG) @@ -77,6 +81,36 @@ SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CRMF_MSG, OSSL_CRMF_MSG, OSSL_CRMF_MSG) #define sk_OSSL_CRMF_MSG_set_cmp_func(sk, cmp) ((sk_OSSL_CRMF_MSG_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CRMF_MSG_sk_type(sk), ossl_check_OSSL_CRMF_MSG_compfunc_type(cmp))) typedef struct ossl_crmf_attributetypeandvalue_st OSSL_CRMF_ATTRIBUTETYPEANDVALUE; +void OSSL_CRMF_ATTRIBUTETYPEANDVALUE_free(OSSL_CRMF_ATTRIBUTETYPEANDVALUE *v); +DECLARE_ASN1_DUP_FUNCTION(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CRMF_ATTRIBUTETYPEANDVALUE, OSSL_CRMF_ATTRIBUTETYPEANDVALUE, OSSL_CRMF_ATTRIBUTETYPEANDVALUE) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_value(sk, idx) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_value(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), (idx))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_new(cmp) ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_new(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_compfunc_type(cmp))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_new_null() ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_new_null()) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_new_reserve(cmp, n) ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_compfunc_type(cmp), (n))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), (n)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_free(sk) OPENSSL_sk_free(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_delete(sk, i) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_delete(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), (i))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_delete_ptr(sk, ptr) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_pop(sk) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_pop(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_shift(sk) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_shift(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk),ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_freefunc_type(freefunc)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr), (idx)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_set(sk, idx, ptr) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_set(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), (idx), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr), pnum) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_dup(sk) ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_dup(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_copyfunc_type(copyfunc), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_freefunc_type(freefunc))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_set_cmp_func(sk, cmp) ((sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_compfunc_type(cmp))) + + typedef struct ossl_crmf_pbmparameter_st OSSL_CRMF_PBMPARAMETER; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_PBMPARAMETER) typedef struct ossl_crmf_poposigningkey_st OSSL_CRMF_POPOSIGNINGKEY; @@ -118,6 +152,7 @@ typedef struct ossl_crmf_singlepubinfo_st OSSL_CRMF_SINGLEPUBINFO; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_SINGLEPUBINFO) typedef struct ossl_crmf_certtemplate_st OSSL_CRMF_CERTTEMPLATE; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_CERTTEMPLATE) +DECLARE_ASN1_DUP_FUNCTION(OSSL_CRMF_CERTTEMPLATE) typedef STACK_OF(OSSL_CRMF_MSG) OSSL_CRMF_MSGS; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_MSGS) @@ -198,12 +233,14 @@ int OSSL_CRMF_MSGS_verify_popo(const OSSL_CRMF_MSGS *reqs, int rid, int acceptRAVerified, OSSL_LIB_CTX *libctx, const char *propq); OSSL_CRMF_CERTTEMPLATE *OSSL_CRMF_MSG_get0_tmpl(const OSSL_CRMF_MSG *crm); -const ASN1_INTEGER -*OSSL_CRMF_CERTTEMPLATE_get0_serialNumber(const OSSL_CRMF_CERTTEMPLATE *tmpl); +X509_PUBKEY +*OSSL_CRMF_CERTTEMPLATE_get0_publicKey(const OSSL_CRMF_CERTTEMPLATE *tmpl); const X509_NAME *OSSL_CRMF_CERTTEMPLATE_get0_subject(const OSSL_CRMF_CERTTEMPLATE *tmpl); const X509_NAME *OSSL_CRMF_CERTTEMPLATE_get0_issuer(const OSSL_CRMF_CERTTEMPLATE *tmpl); +const ASN1_INTEGER +*OSSL_CRMF_CERTTEMPLATE_get0_serialNumber(const OSSL_CRMF_CERTTEMPLATE *tmpl); X509_EXTENSIONS *OSSL_CRMF_CERTTEMPLATE_get0_extensions(const OSSL_CRMF_CERTTEMPLATE *tmpl); const X509_NAME @@ -215,10 +252,24 @@ int OSSL_CRMF_CERTTEMPLATE_fill(OSSL_CRMF_CERTTEMPLATE *tmpl, const X509_NAME *subject, const X509_NAME *issuer, const ASN1_INTEGER *serial); -X509 -*OSSL_CRMF_ENCRYPTEDVALUE_get1_encCert(const OSSL_CRMF_ENCRYPTEDVALUE *ecert, - OSSL_LIB_CTX *libctx, const char *propq, - EVP_PKEY *pkey); +X509 *OSSL_CRMF_ENCRYPTEDVALUE_get1_encCert(const OSSL_CRMF_ENCRYPTEDVALUE *ecert, + OSSL_LIB_CTX *libctx, const char *propq, + EVP_PKEY *pkey); +X509 *OSSL_CRMF_ENCRYPTEDKEY_get1_encCert(const OSSL_CRMF_ENCRYPTEDKEY *ecert, + OSSL_LIB_CTX *libctx, const char *propq, + EVP_PKEY *pkey, unsigned int flags); +unsigned char +*OSSL_CRMF_ENCRYPTEDVALUE_decrypt(const OSSL_CRMF_ENCRYPTEDVALUE *enc, + OSSL_LIB_CTX *libctx, const char *propq, + EVP_PKEY *pkey, int *outlen); +EVP_PKEY *OSSL_CRMF_ENCRYPTEDKEY_get1_pkey(const OSSL_CRMF_ENCRYPTEDKEY *encryptedKey, + X509_STORE *ts, STACK_OF(X509) *extra, EVP_PKEY *pkey, + X509 *cert, ASN1_OCTET_STRING *secret, + OSSL_LIB_CTX *libctx, const char *propq); +int OSSL_CRMF_MSG_centralkeygen_requested(const OSSL_CRMF_MSG *crm, const X509_REQ *p10cr); +# ifndef OPENSSL_NO_CMS +OSSL_CRMF_ENCRYPTEDKEY *OSSL_CRMF_ENCRYPTEDKEY_init_envdata(CMS_EnvelopedData *envdata); +# endif # ifdef __cplusplus } diff --git a/deps/openssl/config/archs/BSD-x86_64/asm/include/openssl/crypto.h b/deps/openssl/config/archs/BSD-x86_64/asm/include/openssl/crypto.h index 3f40be6d8c61d5..fd2cfd3e5a9ac4 100644 --- a/deps/openssl/config/archs/BSD-x86_64/asm/include/openssl/crypto.h +++ b/deps/openssl/config/archs/BSD-x86_64/asm/include/openssl/crypto.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/crypto.h.in * - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2024 The OpenSSL Project Authors. All Rights Reserved. * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved * * Licensed under the Apache License 2.0 (the "License"). You may not use @@ -85,9 +85,15 @@ int CRYPTO_THREAD_unlock(CRYPTO_RWLOCK *lock); void CRYPTO_THREAD_lock_free(CRYPTO_RWLOCK *lock); int CRYPTO_atomic_add(int *val, int amount, int *ret, CRYPTO_RWLOCK *lock); +int CRYPTO_atomic_add64(uint64_t *val, uint64_t op, uint64_t *ret, + CRYPTO_RWLOCK *lock); +int CRYPTO_atomic_and(uint64_t *val, uint64_t op, uint64_t *ret, + CRYPTO_RWLOCK *lock); int CRYPTO_atomic_or(uint64_t *val, uint64_t op, uint64_t *ret, CRYPTO_RWLOCK *lock); int CRYPTO_atomic_load(uint64_t *val, uint64_t *ret, CRYPTO_RWLOCK *lock); +int CRYPTO_atomic_load_int(int *val, int *ret, CRYPTO_RWLOCK *lock); +int CRYPTO_atomic_store(uint64_t *dst, uint64_t val, CRYPTO_RWLOCK *lock); /* No longer needed, so this is a no-op */ #define OPENSSL_malloc_init() while(0) continue @@ -96,6 +102,9 @@ int CRYPTO_atomic_load(uint64_t *val, uint64_t *ret, CRYPTO_RWLOCK *lock); CRYPTO_malloc(num, OPENSSL_FILE, OPENSSL_LINE) # define OPENSSL_zalloc(num) \ CRYPTO_zalloc(num, OPENSSL_FILE, OPENSSL_LINE) +# define OPENSSL_aligned_alloc(num, alignment, freeptr) \ + CRYPTO_aligned_alloc(num, alignment, freeptr, \ + OPENSSL_FILE, OPENSSL_LINE) # define OPENSSL_realloc(addr, num) \ CRYPTO_realloc(addr, num, OPENSSL_FILE, OPENSSL_LINE) # define OPENSSL_clear_realloc(addr, old_num, num) \ @@ -124,6 +133,7 @@ int CRYPTO_atomic_load(uint64_t *val, uint64_t *ret, CRYPTO_RWLOCK *lock); size_t OPENSSL_strlcpy(char *dst, const char *src, size_t siz); size_t OPENSSL_strlcat(char *dst, const char *src, size_t siz); size_t OPENSSL_strnlen(const char *str, size_t maxlen); +int OPENSSL_strtoul(const char *str, char **endptr, int base, unsigned long *num); int OPENSSL_buf2hexstr_ex(char *str, size_t str_n, size_t *strlength, const unsigned char *buf, size_t buflen, const char sep); @@ -160,6 +170,7 @@ const char *OpenSSL_version(int type); # define OPENSSL_FULL_VERSION_STRING 7 # define OPENSSL_MODULES_DIR 8 # define OPENSSL_CPU_INFO 9 +# define OPENSSL_WINCTX 10 const char *OPENSSL_info(int type); /* @@ -174,6 +185,7 @@ const char *OPENSSL_info(int type); # define OPENSSL_INFO_LIST_SEPARATOR 1006 # define OPENSSL_INFO_SEED_SOURCE 1007 # define OPENSSL_INFO_CPU_SETTINGS 1008 +# define OPENSSL_INFO_WINDOWS_CONTEXT 1009 int OPENSSL_issetugid(void); @@ -341,11 +353,14 @@ void CRYPTO_get_mem_functions(CRYPTO_malloc_fn *malloc_fn, CRYPTO_realloc_fn *realloc_fn, CRYPTO_free_fn *free_fn); -void *CRYPTO_malloc(size_t num, const char *file, int line); -void *CRYPTO_zalloc(size_t num, const char *file, int line); -void *CRYPTO_memdup(const void *str, size_t siz, const char *file, int line); -char *CRYPTO_strdup(const char *str, const char *file, int line); -char *CRYPTO_strndup(const char *str, size_t s, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_malloc(size_t num, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_zalloc(size_t num, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_aligned_alloc(size_t num, size_t align, + void **freeptr, const char *file, + int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_memdup(const void *str, size_t siz, const char *file, int line); +OSSL_CRYPTO_ALLOC char *CRYPTO_strdup(const char *str, const char *file, int line); +OSSL_CRYPTO_ALLOC char *CRYPTO_strndup(const char *str, size_t s, const char *file, int line); void CRYPTO_free(void *ptr, const char *file, int line); void CRYPTO_clear_free(void *ptr, size_t num, const char *file, int line); void *CRYPTO_realloc(void *addr, size_t num, const char *file, int line); @@ -354,8 +369,8 @@ void *CRYPTO_clear_realloc(void *addr, size_t old_num, size_t num, int CRYPTO_secure_malloc_init(size_t sz, size_t minsize); int CRYPTO_secure_malloc_done(void); -void *CRYPTO_secure_malloc(size_t num, const char *file, int line); -void *CRYPTO_secure_zalloc(size_t num, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_secure_malloc(size_t num, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_secure_zalloc(size_t num, const char *file, int line); void CRYPTO_secure_free(void *ptr, const char *file, int line); void CRYPTO_secure_clear_free(void *ptr, size_t num, const char *file, int line); @@ -376,6 +391,9 @@ void OPENSSL_cleanse(void *ptr, size_t len); # define CRYPTO_MEM_CHECK_ENABLE 0x2 /* Control and mode bit */ # define CRYPTO_MEM_CHECK_DISABLE 0x3 /* Control only */ +/* max allowed length for value of OPENSSL_MALLOC_FAILURES env var. */ +# define CRYPTO_MEM_CHECK_MAX_FS 256 + void CRYPTO_get_alloc_counts(int *mcount, int *rcount, int *fcount); # ifndef OPENSSL_NO_DEPRECATED_3_0 # define OPENSSL_mem_debug_push(info) \ @@ -551,6 +569,13 @@ int OSSL_LIB_CTX_load_config(OSSL_LIB_CTX *ctx, const char *config_file); void OSSL_LIB_CTX_free(OSSL_LIB_CTX *); OSSL_LIB_CTX *OSSL_LIB_CTX_get0_global_default(void); OSSL_LIB_CTX *OSSL_LIB_CTX_set0_default(OSSL_LIB_CTX *libctx); +int OSSL_LIB_CTX_get_conf_diagnostics(OSSL_LIB_CTX *ctx); +void OSSL_LIB_CTX_set_conf_diagnostics(OSSL_LIB_CTX *ctx, int value); + +void OSSL_sleep(uint64_t millis); + + +void *OSSL_LIB_CTX_get_data(OSSL_LIB_CTX *ctx, int index); # ifdef __cplusplus } diff --git a/deps/openssl/config/archs/BSD-x86_64/asm/include/openssl/ct.h b/deps/openssl/config/archs/BSD-x86_64/asm/include/openssl/ct.h index b6dd8c3547710a..e6dd1192a4e0b3 100644 --- a/deps/openssl/config/archs/BSD-x86_64/asm/include/openssl/ct.h +++ b/deps/openssl/config/archs/BSD-x86_64/asm/include/openssl/ct.h @@ -133,7 +133,7 @@ typedef enum { */ CT_POLICY_EVAL_CTX *CT_POLICY_EVAL_CTX_new_ex(OSSL_LIB_CTX *libctx, const char *propq); - + /* * The same as CT_POLICY_EVAL_CTX_new_ex() but the default library * context and property query string is used. diff --git a/deps/openssl/config/archs/BSD-x86_64/asm/include/openssl/err.h b/deps/openssl/config/archs/BSD-x86_64/asm/include/openssl/err.h index 2abf2483488181..daca18e7b757b0 100644 --- a/deps/openssl/config/archs/BSD-x86_64/asm/include/openssl/err.h +++ b/deps/openssl/config/archs/BSD-x86_64/asm/include/openssl/err.h @@ -1,5 +1,5 @@ /* - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -372,7 +372,7 @@ typedef struct ERR_string_data_st { } ERR_STRING_DATA; DEFINE_LHASH_OF_INTERNAL(ERR_STRING_DATA); -#define lh_ERR_STRING_DATA_new(hfn, cmp) ((LHASH_OF(ERR_STRING_DATA) *)OPENSSL_LH_new(ossl_check_ERR_STRING_DATA_lh_hashfunc_type(hfn), ossl_check_ERR_STRING_DATA_lh_compfunc_type(cmp))) +#define lh_ERR_STRING_DATA_new(hfn, cmp) ((LHASH_OF(ERR_STRING_DATA) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new(ossl_check_ERR_STRING_DATA_lh_hashfunc_type(hfn), ossl_check_ERR_STRING_DATA_lh_compfunc_type(cmp)), lh_ERR_STRING_DATA_hash_thunk, lh_ERR_STRING_DATA_comp_thunk, lh_ERR_STRING_DATA_doall_thunk, lh_ERR_STRING_DATA_doall_arg_thunk)) #define lh_ERR_STRING_DATA_free(lh) OPENSSL_LH_free(ossl_check_ERR_STRING_DATA_lh_type(lh)) #define lh_ERR_STRING_DATA_flush(lh) OPENSSL_LH_flush(ossl_check_ERR_STRING_DATA_lh_type(lh)) #define lh_ERR_STRING_DATA_insert(lh, ptr) ((ERR_STRING_DATA *)OPENSSL_LH_insert(ossl_check_ERR_STRING_DATA_lh_type(lh), ossl_check_ERR_STRING_DATA_lh_plain_type(ptr))) @@ -496,6 +496,14 @@ int ERR_get_next_error_library(void); int ERR_set_mark(void); int ERR_pop_to_mark(void); int ERR_clear_last_mark(void); +int ERR_count_to_mark(void); +int ERR_pop(void); + +ERR_STATE *OSSL_ERR_STATE_new(void); +void OSSL_ERR_STATE_save(ERR_STATE *es); +void OSSL_ERR_STATE_save_to_mark(ERR_STATE *es); +void OSSL_ERR_STATE_restore(const ERR_STATE *es); +void OSSL_ERR_STATE_free(ERR_STATE *es); #ifdef __cplusplus } diff --git a/deps/openssl/config/archs/BSD-x86_64/asm/include/openssl/fipskey.h b/deps/openssl/config/archs/BSD-x86_64/asm/include/openssl/fipskey.h index 42ba014b313ba8..929db18c678364 100644 --- a/deps/openssl/config/archs/BSD-x86_64/asm/include/openssl/fipskey.h +++ b/deps/openssl/config/archs/BSD-x86_64/asm/include/openssl/fipskey.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/fipskey.h.in * - * Copyright 2020-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2020-2024 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -29,6 +29,11 @@ extern "C" { */ #define FIPS_KEY_STRING "f4556650ac31d35461610bac4ed81b1a181b2d8a43ea2854cbae22ca74560813" +/* + * The FIPS provider vendor name, as a string. + */ +#define FIPS_VENDOR "OpenSSL FIPS Provider" + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/BSD-x86_64/asm/include/openssl/lhash.h b/deps/openssl/config/archs/BSD-x86_64/asm/include/openssl/lhash.h index 39dd6254acdeb6..62c55b20fd9716 100644 --- a/deps/openssl/config/archs/BSD-x86_64/asm/include/openssl/lhash.h +++ b/deps/openssl/config/archs/BSD-x86_64/asm/include/openssl/lhash.h @@ -1,5 +1,5 @@ /* - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2024 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -24,6 +24,9 @@ # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -31,9 +34,13 @@ extern "C" { typedef struct lhash_node_st OPENSSL_LH_NODE; typedef int (*OPENSSL_LH_COMPFUNC) (const void *, const void *); +typedef int (*OPENSSL_LH_COMPFUNCTHUNK) (const void *, const void *, OPENSSL_LH_COMPFUNC cfn); typedef unsigned long (*OPENSSL_LH_HASHFUNC) (const void *); +typedef unsigned long (*OPENSSL_LH_HASHFUNCTHUNK) (const void *, OPENSSL_LH_HASHFUNC hfn); typedef void (*OPENSSL_LH_DOALL_FUNC) (void *); +typedef void (*OPENSSL_LH_DOALL_FUNC_THUNK) (void *, OPENSSL_LH_DOALL_FUNC doall); typedef void (*OPENSSL_LH_DOALL_FUNCARG) (void *, void *); +typedef void (*OPENSSL_LH_DOALL_FUNCARG_THUNK) (void *, void *, OPENSSL_LH_DOALL_FUNCARG doall); typedef struct lhash_st OPENSSL_LHASH; /* @@ -79,26 +86,40 @@ typedef struct lhash_st OPENSSL_LHASH; int OPENSSL_LH_error(OPENSSL_LHASH *lh); OPENSSL_LHASH *OPENSSL_LH_new(OPENSSL_LH_HASHFUNC h, OPENSSL_LH_COMPFUNC c); +OPENSSL_LHASH *OPENSSL_LH_set_thunks(OPENSSL_LHASH *lh, + OPENSSL_LH_HASHFUNCTHUNK hw, + OPENSSL_LH_COMPFUNCTHUNK cw, + OPENSSL_LH_DOALL_FUNC_THUNK daw, + OPENSSL_LH_DOALL_FUNCARG_THUNK daaw); void OPENSSL_LH_free(OPENSSL_LHASH *lh); void OPENSSL_LH_flush(OPENSSL_LHASH *lh); void *OPENSSL_LH_insert(OPENSSL_LHASH *lh, void *data); void *OPENSSL_LH_delete(OPENSSL_LHASH *lh, const void *data); void *OPENSSL_LH_retrieve(OPENSSL_LHASH *lh, const void *data); void OPENSSL_LH_doall(OPENSSL_LHASH *lh, OPENSSL_LH_DOALL_FUNC func); -void OPENSSL_LH_doall_arg(OPENSSL_LHASH *lh, OPENSSL_LH_DOALL_FUNCARG func, void *arg); +void OPENSSL_LH_doall_arg(OPENSSL_LHASH *lh, + OPENSSL_LH_DOALL_FUNCARG func, void *arg); +void OPENSSL_LH_doall_arg_thunk(OPENSSL_LHASH *lh, + OPENSSL_LH_DOALL_FUNCARG_THUNK daaw, + OPENSSL_LH_DOALL_FUNCARG fn, void *arg); + unsigned long OPENSSL_LH_strhash(const char *c); unsigned long OPENSSL_LH_num_items(const OPENSSL_LHASH *lh); unsigned long OPENSSL_LH_get_down_load(const OPENSSL_LHASH *lh); void OPENSSL_LH_set_down_load(OPENSSL_LHASH *lh, unsigned long down_load); # ifndef OPENSSL_NO_STDIO -void OPENSSL_LH_stats(const OPENSSL_LHASH *lh, FILE *fp); -void OPENSSL_LH_node_stats(const OPENSSL_LHASH *lh, FILE *fp); -void OPENSSL_LH_node_usage_stats(const OPENSSL_LHASH *lh, FILE *fp); +# ifndef OPENSSL_NO_DEPRECATED_3_1 +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_stats(const OPENSSL_LHASH *lh, FILE *fp); +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_node_stats(const OPENSSL_LHASH *lh, FILE *fp); +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_node_usage_stats(const OPENSSL_LHASH *lh, FILE *fp); +# endif +# endif +# ifndef OPENSSL_NO_DEPRECATED_3_1 +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_stats_bio(const OPENSSL_LHASH *lh, BIO *out); +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_node_stats_bio(const OPENSSL_LHASH *lh, BIO *out); +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_node_usage_stats_bio(const OPENSSL_LHASH *lh, BIO *out); # endif -void OPENSSL_LH_stats_bio(const OPENSSL_LHASH *lh, BIO *out); -void OPENSSL_LH_node_stats_bio(const OPENSSL_LHASH *lh, BIO *out); -void OPENSSL_LH_node_usage_stats_bio(const OPENSSL_LHASH *lh, BIO *out); # ifndef OPENSSL_NO_DEPRECATED_1_1_0 # define _LHASH OPENSSL_LHASH @@ -129,110 +150,190 @@ void OPENSSL_LH_node_usage_stats_bio(const OPENSSL_LHASH *lh, BIO *out); /* Helper macro for internal use */ # define DEFINE_LHASH_OF_INTERNAL(type) \ - LHASH_OF(type) { union lh_##type##_dummy { void* d1; unsigned long d2; int d3; } dummy; }; \ + LHASH_OF(type) { \ + union lh_##type##_dummy { void* d1; unsigned long d2; int d3; } dummy; \ + }; \ typedef int (*lh_##type##_compfunc)(const type *a, const type *b); \ typedef unsigned long (*lh_##type##_hashfunc)(const type *a); \ typedef void (*lh_##type##_doallfunc)(type *a); \ - static ossl_unused ossl_inline type *ossl_check_##type##_lh_plain_type(type *ptr) \ + static ossl_inline unsigned long lh_##type##_hash_thunk(const void *data, OPENSSL_LH_HASHFUNC hfn) \ + { \ + unsigned long (*hfn_conv)(const type *) = (unsigned long (*)(const type *))hfn; \ + return hfn_conv((const type *)data); \ + } \ + static ossl_inline int lh_##type##_comp_thunk(const void *da, const void *db, OPENSSL_LH_COMPFUNC cfn) \ + { \ + int (*cfn_conv)(const type *, const type *) = (int (*)(const type *, const type *))cfn; \ + return cfn_conv((const type *)da, (const type *)db); \ + } \ + static ossl_inline void lh_##type##_doall_thunk(void *node, OPENSSL_LH_DOALL_FUNC doall) \ + { \ + void (*doall_conv)(type *) = (void (*)(type *))doall; \ + doall_conv((type *)node); \ + } \ + static ossl_inline void lh_##type##_doall_arg_thunk(void *node, void *arg, OPENSSL_LH_DOALL_FUNCARG doall) \ + { \ + void (*doall_conv)(type *, void *) = (void (*)(type *, void *))doall; \ + doall_conv((type *)node, arg); \ + } \ + static ossl_unused ossl_inline type *\ + ossl_check_##type##_lh_plain_type(type *ptr) \ { \ return ptr; \ } \ - static ossl_unused ossl_inline const type *ossl_check_const_##type##_lh_plain_type(const type *ptr) \ + static ossl_unused ossl_inline const type * \ + ossl_check_const_##type##_lh_plain_type(const type *ptr) \ { \ return ptr; \ } \ - static ossl_unused ossl_inline const OPENSSL_LHASH *ossl_check_const_##type##_lh_type(const LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline const OPENSSL_LHASH * \ + ossl_check_const_##type##_lh_type(const LHASH_OF(type) *lh) \ { \ return (const OPENSSL_LHASH *)lh; \ } \ - static ossl_unused ossl_inline OPENSSL_LHASH *ossl_check_##type##_lh_type(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline OPENSSL_LHASH * \ + ossl_check_##type##_lh_type(LHASH_OF(type) *lh) \ { \ return (OPENSSL_LHASH *)lh; \ } \ - static ossl_unused ossl_inline OPENSSL_LH_COMPFUNC ossl_check_##type##_lh_compfunc_type(lh_##type##_compfunc cmp) \ + static ossl_unused ossl_inline OPENSSL_LH_COMPFUNC \ + ossl_check_##type##_lh_compfunc_type(lh_##type##_compfunc cmp) \ { \ return (OPENSSL_LH_COMPFUNC)cmp; \ } \ - static ossl_unused ossl_inline OPENSSL_LH_HASHFUNC ossl_check_##type##_lh_hashfunc_type(lh_##type##_hashfunc hfn) \ + static ossl_unused ossl_inline OPENSSL_LH_HASHFUNC \ + ossl_check_##type##_lh_hashfunc_type(lh_##type##_hashfunc hfn) \ { \ return (OPENSSL_LH_HASHFUNC)hfn; \ } \ - static ossl_unused ossl_inline OPENSSL_LH_DOALL_FUNC ossl_check_##type##_lh_doallfunc_type(lh_##type##_doallfunc dfn) \ + static ossl_unused ossl_inline OPENSSL_LH_DOALL_FUNC \ + ossl_check_##type##_lh_doallfunc_type(lh_##type##_doallfunc dfn) \ { \ return (OPENSSL_LH_DOALL_FUNC)dfn; \ } \ LHASH_OF(type) -# define DEFINE_LHASH_OF(type) \ - LHASH_OF(type) { union lh_##type##_dummy { void* d1; unsigned long d2; int d3; } dummy; }; \ - static ossl_unused ossl_inline LHASH_OF(type) *lh_##type##_new(unsigned long (*hfn)(const type *), \ - int (*cfn)(const type *, const type *)) \ +# ifndef OPENSSL_NO_DEPRECATED_3_1 +# define DEFINE_LHASH_OF_DEPRECATED(type) \ + static ossl_unused ossl_inline void \ + lh_##type##_node_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ { \ - return (LHASH_OF(type) *) \ - OPENSSL_LH_new((OPENSSL_LH_HASHFUNC)hfn, (OPENSSL_LH_COMPFUNC)cfn); \ + OPENSSL_LH_node_stats_bio((const OPENSSL_LHASH *)lh, out); \ } \ - static ossl_unused ossl_inline void lh_##type##_free(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline void \ + lh_##type##_node_usage_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + { \ + OPENSSL_LH_node_usage_stats_bio((const OPENSSL_LHASH *)lh, out); \ + } \ + static ossl_unused ossl_inline void \ + lh_##type##_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + { \ + OPENSSL_LH_stats_bio((const OPENSSL_LHASH *)lh, out); \ + } +# else +# define DEFINE_LHASH_OF_DEPRECATED(type) +# endif + +# define DEFINE_LHASH_OF_EX(type) \ + LHASH_OF(type) { \ + union lh_##type##_dummy { void* d1; unsigned long d2; int d3; } dummy; \ + }; \ + static unsigned long \ + lh_##type##_hfn_thunk(const void *data, OPENSSL_LH_HASHFUNC hfn) \ + { \ + unsigned long (*hfn_conv)(const type *) = (unsigned long (*)(const type *))hfn; \ + return hfn_conv((const type *)data); \ + } \ + static int lh_##type##_cfn_thunk(const void *da, const void *db, OPENSSL_LH_COMPFUNC cfn) \ + { \ + int (*cfn_conv)(const type *, const type *) = (int (*)(const type *, const type *))cfn; \ + return cfn_conv((const type *)da, (const type *)db); \ + } \ + static ossl_unused ossl_inline void \ + lh_##type##_free(LHASH_OF(type) *lh) \ { \ OPENSSL_LH_free((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline void lh_##type##_flush(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline void \ + lh_##type##_flush(LHASH_OF(type) *lh) \ { \ OPENSSL_LH_flush((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline type *lh_##type##_insert(LHASH_OF(type) *lh, type *d) \ + static ossl_unused ossl_inline type * \ + lh_##type##_insert(LHASH_OF(type) *lh, type *d) \ { \ return (type *)OPENSSL_LH_insert((OPENSSL_LHASH *)lh, d); \ } \ - static ossl_unused ossl_inline type *lh_##type##_delete(LHASH_OF(type) *lh, const type *d) \ + static ossl_unused ossl_inline type * \ + lh_##type##_delete(LHASH_OF(type) *lh, const type *d) \ { \ return (type *)OPENSSL_LH_delete((OPENSSL_LHASH *)lh, d); \ } \ - static ossl_unused ossl_inline type *lh_##type##_retrieve(LHASH_OF(type) *lh, const type *d) \ + static ossl_unused ossl_inline type * \ + lh_##type##_retrieve(LHASH_OF(type) *lh, const type *d) \ { \ return (type *)OPENSSL_LH_retrieve((OPENSSL_LHASH *)lh, d); \ } \ - static ossl_unused ossl_inline int lh_##type##_error(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline int \ + lh_##type##_error(LHASH_OF(type) *lh) \ { \ return OPENSSL_LH_error((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline unsigned long lh_##type##_num_items(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline unsigned long \ + lh_##type##_num_items(LHASH_OF(type) *lh) \ { \ return OPENSSL_LH_num_items((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline void lh_##type##_node_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + static ossl_unused ossl_inline unsigned long \ + lh_##type##_get_down_load(LHASH_OF(type) *lh) \ { \ - OPENSSL_LH_node_stats_bio((const OPENSSL_LHASH *)lh, out); \ + return OPENSSL_LH_get_down_load((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline void lh_##type##_node_usage_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + static ossl_unused ossl_inline void \ + lh_##type##_set_down_load(LHASH_OF(type) *lh, unsigned long dl) \ { \ - OPENSSL_LH_node_usage_stats_bio((const OPENSSL_LHASH *)lh, out); \ + OPENSSL_LH_set_down_load((OPENSSL_LHASH *)lh, dl); \ } \ - static ossl_unused ossl_inline void lh_##type##_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall_thunk(void *node, OPENSSL_LH_DOALL_FUNC doall) \ { \ - OPENSSL_LH_stats_bio((const OPENSSL_LHASH *)lh, out); \ + void (*doall_conv)(type *) = (void (*)(type *))doall; \ + doall_conv((type *)node); \ } \ - static ossl_unused ossl_inline unsigned long lh_##type##_get_down_load(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall_arg_thunk(void *node, void *arg, OPENSSL_LH_DOALL_FUNCARG doall) \ { \ - return OPENSSL_LH_get_down_load((OPENSSL_LHASH *)lh); \ + void (*doall_conv)(type *, void *) = (void (*)(type *, void *))doall; \ + doall_conv((type *)node, arg); \ } \ - static ossl_unused ossl_inline void lh_##type##_set_down_load(LHASH_OF(type) *lh, unsigned long dl) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall(LHASH_OF(type) *lh, void (*doall)(type *)) \ { \ - OPENSSL_LH_set_down_load((OPENSSL_LHASH *)lh, dl); \ + OPENSSL_LH_doall((OPENSSL_LHASH *)lh, (OPENSSL_LH_DOALL_FUNC)doall); \ } \ - static ossl_unused ossl_inline void lh_##type##_doall(LHASH_OF(type) *lh, \ - void (*doall)(type *)) \ + static ossl_unused ossl_inline LHASH_OF(type) * \ + lh_##type##_new(unsigned long (*hfn)(const type *), \ + int (*cfn)(const type *, const type *)) \ { \ - OPENSSL_LH_doall((OPENSSL_LHASH *)lh, (OPENSSL_LH_DOALL_FUNC)doall); \ + return (LHASH_OF(type) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new((OPENSSL_LH_HASHFUNC)hfn, (OPENSSL_LH_COMPFUNC)cfn), \ + lh_##type##_hfn_thunk, lh_##type##_cfn_thunk, \ + lh_##type##_doall_thunk, \ + lh_##type##_doall_arg_thunk); \ } \ - static ossl_unused ossl_inline void lh_##type##_doall_arg(LHASH_OF(type) *lh, \ - void (*doallarg)(type *, void *), \ - void *arg) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall_arg(LHASH_OF(type) *lh, \ + void (*doallarg)(type *, void *), void *arg) \ { \ OPENSSL_LH_doall_arg((OPENSSL_LHASH *)lh, \ (OPENSSL_LH_DOALL_FUNCARG)doallarg, arg); \ } \ LHASH_OF(type) +# define DEFINE_LHASH_OF(type) \ + DEFINE_LHASH_OF_EX(type); \ + DEFINE_LHASH_OF_DEPRECATED(type) \ + LHASH_OF(type) + #define IMPLEMENT_LHASH_DOALL_ARG_CONST(type, argtype) \ int_implement_lhash_doall(type, argtype, const type) @@ -240,17 +341,26 @@ void OPENSSL_LH_node_usage_stats_bio(const OPENSSL_LHASH *lh, BIO *out); int_implement_lhash_doall(type, argtype, type) #define int_implement_lhash_doall(type, argtype, cbargtype) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall_##argtype##_thunk(void *node, void *arg, OPENSSL_LH_DOALL_FUNCARG fn) \ + { \ + void (*fn_conv)(cbargtype *, argtype *) = (void (*)(cbargtype *, argtype *))fn; \ + fn_conv((cbargtype *)node, (argtype *)arg); \ + } \ static ossl_unused ossl_inline void \ lh_##type##_doall_##argtype(LHASH_OF(type) *lh, \ void (*fn)(cbargtype *, argtype *), \ argtype *arg) \ { \ - OPENSSL_LH_doall_arg((OPENSSL_LHASH *)lh, (OPENSSL_LH_DOALL_FUNCARG)fn, (void *)arg); \ + OPENSSL_LH_doall_arg_thunk((OPENSSL_LHASH *)lh, \ + lh_##type##_doall_##argtype##_thunk, \ + (OPENSSL_LH_DOALL_FUNCARG)fn, \ + (void *)arg); \ } \ LHASH_OF(type) DEFINE_LHASH_OF_INTERNAL(OPENSSL_STRING); -#define lh_OPENSSL_STRING_new(hfn, cmp) ((LHASH_OF(OPENSSL_STRING) *)OPENSSL_LH_new(ossl_check_OPENSSL_STRING_lh_hashfunc_type(hfn), ossl_check_OPENSSL_STRING_lh_compfunc_type(cmp))) +#define lh_OPENSSL_STRING_new(hfn, cmp) ((LHASH_OF(OPENSSL_STRING) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new(ossl_check_OPENSSL_STRING_lh_hashfunc_type(hfn), ossl_check_OPENSSL_STRING_lh_compfunc_type(cmp)), lh_OPENSSL_STRING_hash_thunk, lh_OPENSSL_STRING_comp_thunk, lh_OPENSSL_STRING_doall_thunk, lh_OPENSSL_STRING_doall_arg_thunk)) #define lh_OPENSSL_STRING_free(lh) OPENSSL_LH_free(ossl_check_OPENSSL_STRING_lh_type(lh)) #define lh_OPENSSL_STRING_flush(lh) OPENSSL_LH_flush(ossl_check_OPENSSL_STRING_lh_type(lh)) #define lh_OPENSSL_STRING_insert(lh, ptr) ((OPENSSL_STRING *)OPENSSL_LH_insert(ossl_check_OPENSSL_STRING_lh_type(lh), ossl_check_OPENSSL_STRING_lh_plain_type(ptr))) @@ -265,7 +375,7 @@ DEFINE_LHASH_OF_INTERNAL(OPENSSL_STRING); #define lh_OPENSSL_STRING_set_down_load(lh, dl) OPENSSL_LH_set_down_load(ossl_check_OPENSSL_STRING_lh_type(lh), dl) #define lh_OPENSSL_STRING_doall(lh, dfn) OPENSSL_LH_doall(ossl_check_OPENSSL_STRING_lh_type(lh), ossl_check_OPENSSL_STRING_lh_doallfunc_type(dfn)) DEFINE_LHASH_OF_INTERNAL(OPENSSL_CSTRING); -#define lh_OPENSSL_CSTRING_new(hfn, cmp) ((LHASH_OF(OPENSSL_CSTRING) *)OPENSSL_LH_new(ossl_check_OPENSSL_CSTRING_lh_hashfunc_type(hfn), ossl_check_OPENSSL_CSTRING_lh_compfunc_type(cmp))) +#define lh_OPENSSL_CSTRING_new(hfn, cmp) ((LHASH_OF(OPENSSL_CSTRING) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new(ossl_check_OPENSSL_CSTRING_lh_hashfunc_type(hfn), ossl_check_OPENSSL_CSTRING_lh_compfunc_type(cmp)), lh_OPENSSL_CSTRING_hash_thunk, lh_OPENSSL_CSTRING_comp_thunk, lh_OPENSSL_CSTRING_doall_thunk, lh_OPENSSL_CSTRING_doall_arg_thunk)) #define lh_OPENSSL_CSTRING_free(lh) OPENSSL_LH_free(ossl_check_OPENSSL_CSTRING_lh_type(lh)) #define lh_OPENSSL_CSTRING_flush(lh) OPENSSL_LH_flush(ossl_check_OPENSSL_CSTRING_lh_type(lh)) #define lh_OPENSSL_CSTRING_insert(lh, ptr) ((OPENSSL_CSTRING *)OPENSSL_LH_insert(ossl_check_OPENSSL_CSTRING_lh_type(lh), ossl_check_OPENSSL_CSTRING_lh_plain_type(ptr))) diff --git a/deps/openssl/config/archs/BSD-x86_64/asm/include/openssl/opensslv.h b/deps/openssl/config/archs/BSD-x86_64/asm/include/openssl/opensslv.h index 5fb5bc63056fe0..dd50d89cb9982d 100644 --- a/deps/openssl/config/archs/BSD-x86_64/asm/include/openssl/opensslv.h +++ b/deps/openssl/config/archs/BSD-x86_64/asm/include/openssl/opensslv.h @@ -28,8 +28,8 @@ extern "C" { * These macros express version number MAJOR.MINOR.PATCH exactly */ # define OPENSSL_VERSION_MAJOR 3 -# define OPENSSL_VERSION_MINOR 0 -# define OPENSSL_VERSION_PATCH 17 +# define OPENSSL_VERSION_MINOR 5 +# define OPENSSL_VERSION_PATCH 1 /* * Additional version information @@ -74,8 +74,8 @@ extern "C" { * longer variant with OPENSSL_VERSION_PRE_RELEASE_STR and * OPENSSL_VERSION_BUILD_METADATA_STR appended. */ -# define OPENSSL_VERSION_STR "3.0.17" -# define OPENSSL_FULL_VERSION_STR "3.0.17" +# define OPENSSL_VERSION_STR "3.5.1" +# define OPENSSL_FULL_VERSION_STR "3.5.1" /* * SECTION 3: ADDITIONAL METADATA @@ -88,7 +88,7 @@ extern "C" { * SECTION 4: BACKWARD COMPATIBILITY */ -# define OPENSSL_VERSION_TEXT "OpenSSL 3.0.17 1 Jul 2025" +# define OPENSSL_VERSION_TEXT "OpenSSL 3.5.1 1 Jul 2025" /* Synthesize OPENSSL_VERSION_NUMBER with the layout 0xMNN00PPSL */ # ifdef OPENSSL_VERSION_PRE_RELEASE diff --git a/deps/openssl/config/archs/BSD-x86_64/asm/include/openssl/pkcs12.h b/deps/openssl/config/archs/BSD-x86_64/asm/include/openssl/pkcs12.h index c5e0cab06491ec..0809645dad0bbf 100644 --- a/deps/openssl/config/archs/BSD-x86_64/asm/include/openssl/pkcs12.h +++ b/deps/openssl/config/archs/BSD-x86_64/asm/include/openssl/pkcs12.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/pkcs12.h.in * - * Copyright 1999-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1999-2024 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -25,6 +25,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -41,6 +44,7 @@ extern "C" { # define PKCS12_MAC_KEY_LENGTH 20 +/* The macro is expected to be used only internally. Kept for backwards compatibility. */ # define PKCS12_SALT_LEN 8 /* It's not clear if these are actually needed... */ @@ -130,7 +134,9 @@ int PKCS12_SAFEBAG_get_bag_nid(const PKCS12_SAFEBAG *bag); const ASN1_TYPE *PKCS12_SAFEBAG_get0_bag_obj(const PKCS12_SAFEBAG *bag); const ASN1_OBJECT *PKCS12_SAFEBAG_get0_bag_type(const PKCS12_SAFEBAG *bag); +X509 *PKCS12_SAFEBAG_get1_cert_ex(const PKCS12_SAFEBAG *bag, OSSL_LIB_CTX *libctx, const char *propq); X509 *PKCS12_SAFEBAG_get1_cert(const PKCS12_SAFEBAG *bag); +X509_CRL *PKCS12_SAFEBAG_get1_crl_ex(const PKCS12_SAFEBAG *bag, OSSL_LIB_CTX *libctx, const char *propq); X509_CRL *PKCS12_SAFEBAG_get1_crl(const PKCS12_SAFEBAG *bag); const STACK_OF(PKCS12_SAFEBAG) * PKCS12_SAFEBAG_get0_safes(const PKCS12_SAFEBAG *bag); @@ -218,6 +224,7 @@ ASN1_TYPE *PKCS12_get_attr_gen(const STACK_OF(X509_ATTRIBUTE) *attrs, char *PKCS12_get_friendlyname(PKCS12_SAFEBAG *bag); const STACK_OF(X509_ATTRIBUTE) * PKCS12_SAFEBAG_get0_attrs(const PKCS12_SAFEBAG *bag); +void PKCS12_SAFEBAG_set0_attrs(PKCS12_SAFEBAG *bag, STACK_OF(X509_ATTRIBUTE) *attrs); unsigned char *PKCS12_pbe_crypt(const X509_ALGOR *algor, const char *pass, int passlen, const unsigned char *in, int inlen, @@ -285,6 +292,9 @@ int PKCS12_verify_mac(PKCS12 *p12, const char *pass, int passlen); int PKCS12_set_mac(PKCS12 *p12, const char *pass, int passlen, unsigned char *salt, int saltlen, int iter, const EVP_MD *md_type); +int PKCS12_set_pbmac1_pbkdf2(PKCS12 *p12, const char *pass, int passlen, + unsigned char *salt, int saltlen, int iter, + const EVP_MD *md_type, const char *prf_md_name); int PKCS12_setup_mac(PKCS12 *p12, int iter, unsigned char *salt, int saltlen, const EVP_MD *md_type); unsigned char *OPENSSL_asc2uni(const char *asc, int asclen, @@ -305,6 +315,7 @@ DECLARE_ASN1_ITEM(PKCS12_AUTHSAFES) void PKCS12_PBE_add(void); int PKCS12_parse(PKCS12 *p12, const char *pass, EVP_PKEY **pkey, X509 **cert, STACK_OF(X509) **ca); +typedef int PKCS12_create_cb(PKCS12_SAFEBAG *bag, void *cbarg); PKCS12 *PKCS12_create(const char *pass, const char *name, EVP_PKEY *pkey, X509 *cert, STACK_OF(X509) *ca, int nid_key, int nid_cert, int iter, int mac_iter, int keytype); @@ -312,6 +323,11 @@ PKCS12 *PKCS12_create_ex(const char *pass, const char *name, EVP_PKEY *pkey, X509 *cert, STACK_OF(X509) *ca, int nid_key, int nid_cert, int iter, int mac_iter, int keytype, OSSL_LIB_CTX *ctx, const char *propq); +PKCS12 *PKCS12_create_ex2(const char *pass, const char *name, EVP_PKEY *pkey, + X509 *cert, STACK_OF(X509) *ca, int nid_key, int nid_cert, + int iter, int mac_iter, int keytype, + OSSL_LIB_CTX *ctx, const char *propq, + PKCS12_create_cb *cb, void *cbarg); PKCS12_SAFEBAG *PKCS12_add_cert(STACK_OF(PKCS12_SAFEBAG) **pbags, X509 *cert); PKCS12_SAFEBAG *PKCS12_add_key(STACK_OF(PKCS12_SAFEBAG) **pbags, diff --git a/deps/openssl/config/archs/BSD-x86_64/asm/include/openssl/pkcs7.h b/deps/openssl/config/archs/BSD-x86_64/asm/include/openssl/pkcs7.h index 0ce79bf4fa160e..fa68462aff973b 100644 --- a/deps/openssl/config/archs/BSD-x86_64/asm/include/openssl/pkcs7.h +++ b/deps/openssl/config/archs/BSD-x86_64/asm/include/openssl/pkcs7.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/pkcs7.h.in * - * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -28,6 +28,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -131,8 +134,8 @@ SKM_DEFINE_STACK_OF_INTERNAL(PKCS7_RECIP_INFO, PKCS7_RECIP_INFO, PKCS7_RECIP_INF typedef struct pkcs7_signed_st { ASN1_INTEGER *version; /* version 1 */ STACK_OF(X509_ALGOR) *md_algs; /* md used */ - STACK_OF(X509) *cert; /* [ 0 ] */ - STACK_OF(X509_CRL) *crl; /* [ 1 ] */ + STACK_OF(X509) *cert; /* [ 0 ] */ /* name should be 'certificates' */ + STACK_OF(X509_CRL) *crl; /* [ 1 ] */ /* name should be 'crls' */ STACK_OF(PKCS7_SIGNER_INFO) *signer_info; struct pkcs7_st *contents; } PKCS7_SIGNED; @@ -158,8 +161,8 @@ typedef struct pkcs7_enveloped_st { typedef struct pkcs7_signedandenveloped_st { ASN1_INTEGER *version; /* version 1 */ STACK_OF(X509_ALGOR) *md_algs; /* md used */ - STACK_OF(X509) *cert; /* [ 0 ] */ - STACK_OF(X509_CRL) *crl; /* [ 1 ] */ + STACK_OF(X509) *cert; /* [ 0 ] */ /* name should be 'certificates' */ + STACK_OF(X509_CRL) *crl; /* [ 1 ] */ /* name should be 'crls' */ STACK_OF(PKCS7_SIGNER_INFO) *signer_info; PKCS7_ENC_CONTENT *enc_data; STACK_OF(PKCS7_RECIP_INFO) *recipientinfo; @@ -200,7 +203,7 @@ typedef struct pkcs7_st { /* NID_pkcs7_data */ ASN1_OCTET_STRING *data; /* NID_pkcs7_signed */ - PKCS7_SIGNED *sign; + PKCS7_SIGNED *sign; /* field name 'signed' would clash with C keyword */ /* NID_pkcs7_enveloped */ PKCS7_ENVELOPE *enveloped; /* NID_pkcs7_signedAndEnveloped */ @@ -341,13 +344,13 @@ int PKCS7_SIGNER_INFO_set(PKCS7_SIGNER_INFO *p7i, X509 *x509, EVP_PKEY *pkey, const EVP_MD *dgst); int PKCS7_SIGNER_INFO_sign(PKCS7_SIGNER_INFO *si); int PKCS7_add_signer(PKCS7 *p7, PKCS7_SIGNER_INFO *p7i); -int PKCS7_add_certificate(PKCS7 *p7, X509 *x509); -int PKCS7_add_crl(PKCS7 *p7, X509_CRL *x509); +int PKCS7_add_certificate(PKCS7 *p7, X509 *cert); +int PKCS7_add_crl(PKCS7 *p7, X509_CRL *crl); int PKCS7_content_new(PKCS7 *p7, int nid); int PKCS7_dataVerify(X509_STORE *cert_store, X509_STORE_CTX *ctx, BIO *bio, PKCS7 *p7, PKCS7_SIGNER_INFO *si); int PKCS7_signatureVerify(BIO *bio, PKCS7 *p7, PKCS7_SIGNER_INFO *si, - X509 *x509); + X509 *signer); BIO *PKCS7_dataInit(PKCS7 *p7, BIO *bio); int PKCS7_dataFinal(PKCS7 *p7, BIO *bio); diff --git a/deps/openssl/config/archs/BSD-x86_64/asm/include/openssl/ssl.h b/deps/openssl/config/archs/BSD-x86_64/asm/include/openssl/ssl.h index 3df725c56d6c5e..7e3d89c7ef3dc9 100644 --- a/deps/openssl/config/archs/BSD-x86_64/asm/include/openssl/ssl.h +++ b/deps/openssl/config/archs/BSD-x86_64/asm/include/openssl/ssl.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/ssl.h.in * - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved * Copyright 2005 Nokia. All rights reserved. * @@ -24,6 +24,7 @@ # endif # include +# include # include # include # include @@ -42,6 +43,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -231,10 +235,8 @@ typedef struct ssl_cipher_st SSL_CIPHER; typedef struct ssl_session_st SSL_SESSION; typedef struct tls_sigalgs_st TLS_SIGALGS; typedef struct ssl_conf_ctx_st SSL_CONF_CTX; -typedef struct ssl_comp_st SSL_COMP; STACK_OF(SSL_CIPHER); -STACK_OF(SSL_COMP); /* SRTP protection profiles for use with the use_srtp extension (RFC 5764)*/ typedef struct srtp_protection_profile_st { @@ -278,28 +280,31 @@ typedef int (*tls_session_secret_cb_fn)(SSL *s, void *secret, int *secret_len, /* Extension context codes */ /* This extension is only allowed in TLS */ -#define SSL_EXT_TLS_ONLY 0x0001 +#define SSL_EXT_TLS_ONLY 0x00001 /* This extension is only allowed in DTLS */ -#define SSL_EXT_DTLS_ONLY 0x0002 +#define SSL_EXT_DTLS_ONLY 0x00002 /* Some extensions may be allowed in DTLS but we don't implement them for it */ -#define SSL_EXT_TLS_IMPLEMENTATION_ONLY 0x0004 +#define SSL_EXT_TLS_IMPLEMENTATION_ONLY 0x00004 /* Most extensions are not defined for SSLv3 but EXT_TYPE_renegotiate is */ -#define SSL_EXT_SSL3_ALLOWED 0x0008 +#define SSL_EXT_SSL3_ALLOWED 0x00008 /* Extension is only defined for TLS1.2 and below */ -#define SSL_EXT_TLS1_2_AND_BELOW_ONLY 0x0010 +#define SSL_EXT_TLS1_2_AND_BELOW_ONLY 0x00010 /* Extension is only defined for TLS1.3 and above */ -#define SSL_EXT_TLS1_3_ONLY 0x0020 +#define SSL_EXT_TLS1_3_ONLY 0x00020 /* Ignore this extension during parsing if we are resuming */ -#define SSL_EXT_IGNORE_ON_RESUMPTION 0x0040 -#define SSL_EXT_CLIENT_HELLO 0x0080 +#define SSL_EXT_IGNORE_ON_RESUMPTION 0x00040 +#define SSL_EXT_CLIENT_HELLO 0x00080 /* Really means TLS1.2 or below */ -#define SSL_EXT_TLS1_2_SERVER_HELLO 0x0100 -#define SSL_EXT_TLS1_3_SERVER_HELLO 0x0200 -#define SSL_EXT_TLS1_3_ENCRYPTED_EXTENSIONS 0x0400 -#define SSL_EXT_TLS1_3_HELLO_RETRY_REQUEST 0x0800 -#define SSL_EXT_TLS1_3_CERTIFICATE 0x1000 -#define SSL_EXT_TLS1_3_NEW_SESSION_TICKET 0x2000 -#define SSL_EXT_TLS1_3_CERTIFICATE_REQUEST 0x4000 +#define SSL_EXT_TLS1_2_SERVER_HELLO 0x00100 +#define SSL_EXT_TLS1_3_SERVER_HELLO 0x00200 +#define SSL_EXT_TLS1_3_ENCRYPTED_EXTENSIONS 0x00400 +#define SSL_EXT_TLS1_3_HELLO_RETRY_REQUEST 0x00800 +#define SSL_EXT_TLS1_3_CERTIFICATE 0x01000 +#define SSL_EXT_TLS1_3_NEW_SESSION_TICKET 0x02000 +#define SSL_EXT_TLS1_3_CERTIFICATE_REQUEST 0x04000 +#define SSL_EXT_TLS1_3_CERTIFICATE_COMPRESSION 0x08000 +/* When sending a raw public key in a certificate message */ +#define SSL_EXT_TLS1_3_RAW_PUBLIC_KEY 0x10000 /* Typedefs for handling custom extensions */ @@ -404,7 +409,7 @@ typedef int (*SSL_async_callback_fn)(SSL *s, void *arg); */ # define SSL_OP_CIPHER_SERVER_PREFERENCE SSL_OP_BIT(22) /* - * If set, a server will allow a client to issue a SSLv3.0 version + * If set, a server will allow a client to issue an SSLv3.0 version * number as latest version supported in the premaster secret, even when * TLSv1.0 (version 3.1) was announced in the client hello. Normally * this is forbidden to prevent version rollback attacks. @@ -430,6 +435,19 @@ typedef int (*SSL_async_callback_fn)(SSL *s, void *arg); * interoperability with CryptoPro CSP 3.x */ # define SSL_OP_CRYPTOPRO_TLSEXT_BUG SSL_OP_BIT(31) +/* + * Disable RFC8879 certificate compression + * SSL_OP_NO_TX_CERTIFICATE_COMPRESSION: don't send compressed certificates, + * and ignore the extension when received. + * SSL_OP_NO_RX_CERTIFICATE_COMPRESSION: don't send the extension, and + * subsequently indicating that receiving is not supported + */ +# define SSL_OP_NO_TX_CERTIFICATE_COMPRESSION SSL_OP_BIT(32) +# define SSL_OP_NO_RX_CERTIFICATE_COMPRESSION SSL_OP_BIT(33) + /* Enable KTLS TX zerocopy on Linux */ +# define SSL_OP_ENABLE_KTLS_TX_ZEROCOPY_SENDFILE SSL_OP_BIT(34) + +#define SSL_OP_PREFER_NO_DHE_KEX SSL_OP_BIT(35) /* * Option "collections." @@ -574,6 +592,8 @@ typedef int (*SSL_async_callback_fn)(SSL *s, void *arg); # define CERT_PKEY_CERT_TYPE 0x400 /* Cert chain suitable to Suite B */ # define CERT_PKEY_SUITEB 0x800 +/* Cert pkey valid for raw public key use */ +# define CERT_PKEY_RPK 0x1000 # define SSL_CONF_FLAG_CMDLINE 0x1 # define SSL_CONF_FLAG_FILE 0x2 @@ -965,6 +985,7 @@ uint32_t SSL_get_recv_max_early_data(const SSL *s); # include /* This is mostly sslv3 with a few tweaks */ # include /* Datagram TLS */ # include /* Support for the use_srtp extension */ +# include #ifdef __cplusplus extern "C" { @@ -1000,32 +1021,6 @@ SKM_DEFINE_STACK_OF_INTERNAL(SSL_CIPHER, const SSL_CIPHER, SSL_CIPHER) #define sk_SSL_CIPHER_dup(sk) ((STACK_OF(SSL_CIPHER) *)OPENSSL_sk_dup(ossl_check_const_SSL_CIPHER_sk_type(sk))) #define sk_SSL_CIPHER_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(SSL_CIPHER) *)OPENSSL_sk_deep_copy(ossl_check_const_SSL_CIPHER_sk_type(sk), ossl_check_SSL_CIPHER_copyfunc_type(copyfunc), ossl_check_SSL_CIPHER_freefunc_type(freefunc))) #define sk_SSL_CIPHER_set_cmp_func(sk, cmp) ((sk_SSL_CIPHER_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_SSL_CIPHER_sk_type(sk), ossl_check_SSL_CIPHER_compfunc_type(cmp))) -SKM_DEFINE_STACK_OF_INTERNAL(SSL_COMP, SSL_COMP, SSL_COMP) -#define sk_SSL_COMP_num(sk) OPENSSL_sk_num(ossl_check_const_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_value(sk, idx) ((SSL_COMP *)OPENSSL_sk_value(ossl_check_const_SSL_COMP_sk_type(sk), (idx))) -#define sk_SSL_COMP_new(cmp) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new(ossl_check_SSL_COMP_compfunc_type(cmp))) -#define sk_SSL_COMP_new_null() ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new_null()) -#define sk_SSL_COMP_new_reserve(cmp, n) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new_reserve(ossl_check_SSL_COMP_compfunc_type(cmp), (n))) -#define sk_SSL_COMP_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_SSL_COMP_sk_type(sk), (n)) -#define sk_SSL_COMP_free(sk) OPENSSL_sk_free(ossl_check_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_zero(sk) OPENSSL_sk_zero(ossl_check_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_delete(sk, i) ((SSL_COMP *)OPENSSL_sk_delete(ossl_check_SSL_COMP_sk_type(sk), (i))) -#define sk_SSL_COMP_delete_ptr(sk, ptr) ((SSL_COMP *)OPENSSL_sk_delete_ptr(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr))) -#define sk_SSL_COMP_push(sk, ptr) OPENSSL_sk_push(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) -#define sk_SSL_COMP_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) -#define sk_SSL_COMP_pop(sk) ((SSL_COMP *)OPENSSL_sk_pop(ossl_check_SSL_COMP_sk_type(sk))) -#define sk_SSL_COMP_shift(sk) ((SSL_COMP *)OPENSSL_sk_shift(ossl_check_SSL_COMP_sk_type(sk))) -#define sk_SSL_COMP_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_SSL_COMP_sk_type(sk),ossl_check_SSL_COMP_freefunc_type(freefunc)) -#define sk_SSL_COMP_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr), (idx)) -#define sk_SSL_COMP_set(sk, idx, ptr) ((SSL_COMP *)OPENSSL_sk_set(ossl_check_SSL_COMP_sk_type(sk), (idx), ossl_check_SSL_COMP_type(ptr))) -#define sk_SSL_COMP_find(sk, ptr) OPENSSL_sk_find(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) -#define sk_SSL_COMP_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) -#define sk_SSL_COMP_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr), pnum) -#define sk_SSL_COMP_sort(sk) OPENSSL_sk_sort(ossl_check_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_dup(sk) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_dup(ossl_check_const_SSL_COMP_sk_type(sk))) -#define sk_SSL_COMP_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_deep_copy(ossl_check_const_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_copyfunc_type(copyfunc), ossl_check_SSL_COMP_freefunc_type(freefunc))) -#define sk_SSL_COMP_set_cmp_func(sk, cmp) ((sk_SSL_COMP_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_compfunc_type(cmp))) /* compatibility */ @@ -1066,6 +1061,7 @@ typedef enum { DTLS_ST_CR_HELLO_VERIFY_REQUEST, TLS_ST_CR_SRVR_HELLO, TLS_ST_CR_CERT, + TLS_ST_CR_COMP_CERT, TLS_ST_CR_CERT_STATUS, TLS_ST_CR_KEY_EXCH, TLS_ST_CR_CERT_REQ, @@ -1075,6 +1071,7 @@ typedef enum { TLS_ST_CR_FINISHED, TLS_ST_CW_CLNT_HELLO, TLS_ST_CW_CERT, + TLS_ST_CW_COMP_CERT, TLS_ST_CW_KEY_EXCH, TLS_ST_CW_CERT_VRFY, TLS_ST_CW_CHANGE, @@ -1085,10 +1082,12 @@ typedef enum { DTLS_ST_SW_HELLO_VERIFY_REQUEST, TLS_ST_SW_SRVR_HELLO, TLS_ST_SW_CERT, + TLS_ST_SW_COMP_CERT, TLS_ST_SW_KEY_EXCH, TLS_ST_SW_CERT_REQ, TLS_ST_SW_SRVR_DONE, TLS_ST_SR_CERT, + TLS_ST_SR_COMP_CERT, TLS_ST_SR_KEY_EXCH, TLS_ST_SR_CERT_VRFY, TLS_ST_SR_NEXT_PROTO, @@ -1380,9 +1379,13 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) # define SSL_CTRL_GET_SIGNATURE_NID 132 # define SSL_CTRL_GET_TMP_KEY 133 # define SSL_CTRL_GET_NEGOTIATED_GROUP 134 +# define SSL_CTRL_GET_IANA_GROUPS 135 # define SSL_CTRL_SET_RETRY_VERIFY 136 # define SSL_CTRL_GET_VERIFY_CERT_STORE 137 # define SSL_CTRL_GET_CHAIN_CERT_STORE 138 +# define SSL_CTRL_GET0_IMPLEMENTED_GROUPS 139 +# define SSL_CTRL_GET_SIGNATURE_NAME 140 +# define SSL_CTRL_GET_PEER_SIGNATURE_NAME 141 # define SSL_CERT_SET_FIRST 1 # define SSL_CERT_SET_NEXT 2 # define SSL_CERT_SET_SERVER 3 @@ -1485,10 +1488,15 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) # define SSL_get1_groups(s, glist) \ SSL_ctrl(s,SSL_CTRL_GET_GROUPS,0,(int*)(glist)) +# define SSL_get0_iana_groups(s, plst) \ + SSL_ctrl(s,SSL_CTRL_GET_IANA_GROUPS,0,(uint16_t **)(plst)) # define SSL_CTX_set1_groups(ctx, glist, glistlen) \ SSL_CTX_ctrl(ctx,SSL_CTRL_SET_GROUPS,glistlen,(int *)(glist)) # define SSL_CTX_set1_groups_list(ctx, s) \ SSL_CTX_ctrl(ctx,SSL_CTRL_SET_GROUPS_LIST,0,(char *)(s)) +# define SSL_CTX_get0_implemented_groups(ctx, all, out) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_GET0_IMPLEMENTED_GROUPS, all, \ + (STACK_OF(OPENSSL_CSTRING) *)(out)) # define SSL_set1_groups(s, glist, glistlen) \ SSL_ctrl(s,SSL_CTRL_SET_GROUPS,glistlen,(char *)(glist)) # define SSL_set1_groups_list(s, str) \ @@ -1520,8 +1528,12 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) (char *)(clist)) # define SSL_set1_client_certificate_types(s, clist, clistlen) \ SSL_ctrl(s,SSL_CTRL_SET_CLIENT_CERT_TYPES,clistlen,(char *)(clist)) +# define SSL_get0_signature_name(s, str) \ + SSL_ctrl(s,SSL_CTRL_GET_SIGNATURE_NAME,0,(1?(str):(const char **)NULL)) # define SSL_get_signature_nid(s, pn) \ SSL_ctrl(s,SSL_CTRL_GET_SIGNATURE_NID,0,pn) +# define SSL_get0_peer_signature_name(s, str) \ + SSL_ctrl(s,SSL_CTRL_GET_PEER_SIGNATURE_NAME,0,(1?(str):(const char **)NULL)) # define SSL_get_peer_signature_nid(s, pn) \ SSL_ctrl(s,SSL_CTRL_GET_PEER_SIGNATURE_NID,0,pn) # define SSL_get_peer_tmp_key(s, pk) \ @@ -1549,6 +1561,7 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) # define SSL_get_max_proto_version(s) \ SSL_ctrl(s, SSL_CTRL_GET_MAX_PROTO_VERSION, 0, NULL) +const char *SSL_get0_group_name(SSL *s); const char *SSL_group_to_name(SSL *s, int id); /* Backwards compatibility, original 1.1.0 names */ @@ -1613,7 +1626,11 @@ void SSL_CTX_set1_cert_store(SSL_CTX *, X509_STORE *); __owur int SSL_want(const SSL *s); __owur int SSL_clear(SSL *s); +#ifndef OPENSSL_NO_DEPRECATED_3_4 +OSSL_DEPRECATEDIN_3_4_FOR("not Y2038-safe, replace with SSL_CTX_flush_sessions_ex()") void SSL_CTX_flush_sessions(SSL_CTX *ctx, long tm); +#endif +void SSL_CTX_flush_sessions_ex(SSL_CTX *ctx, time_t tm); __owur const SSL_CIPHER *SSL_get_current_cipher(const SSL *s); __owur const SSL_CIPHER *SSL_get_pending_cipher(const SSL *s); @@ -1725,13 +1742,21 @@ __owur const char *SSL_state_string(const SSL *s); __owur const char *SSL_rstate_string(const SSL *s); __owur const char *SSL_state_string_long(const SSL *s); __owur const char *SSL_rstate_string_long(const SSL *s); + +#ifndef OPENSSL_NO_DEPRECATED_3_4 +OSSL_DEPRECATEDIN_3_4_FOR("not Y2038-safe, replace with SSL_SESSION_get_time_ex()") __owur long SSL_SESSION_get_time(const SSL_SESSION *s); +OSSL_DEPRECATEDIN_3_4_FOR("not Y2038-safe, replace with SSL_SESSION_set_time_ex()") __owur long SSL_SESSION_set_time(SSL_SESSION *s, long t); +#endif __owur long SSL_SESSION_get_timeout(const SSL_SESSION *s); __owur long SSL_SESSION_set_timeout(SSL_SESSION *s, long t); __owur int SSL_SESSION_get_protocol_version(const SSL_SESSION *s); __owur int SSL_SESSION_set_protocol_version(SSL_SESSION *s, int version); +__owur time_t SSL_SESSION_get_time_ex(const SSL_SESSION *s); +__owur time_t SSL_SESSION_set_time_ex(SSL_SESSION *s, time_t t); + __owur const char *SSL_SESSION_get0_hostname(const SSL_SESSION *s); __owur int SSL_SESSION_set1_hostname(SSL_SESSION *s, const char *hostname); void SSL_SESSION_get0_alpn_selected(const SSL_SESSION *s, @@ -1783,6 +1808,9 @@ __owur int SSL_has_matching_session_id(const SSL *s, unsigned int id_len); SSL_SESSION *d2i_SSL_SESSION(SSL_SESSION **a, const unsigned char **pp, long length); +SSL_SESSION *d2i_SSL_SESSION_ex(SSL_SESSION **a, const unsigned char **pp, + long length, OSSL_LIB_CTX *libctx, + const char *propq); # ifdef OPENSSL_X509_H __owur X509 *SSL_get0_peer_certificate(const SSL *s); @@ -1840,6 +1868,8 @@ __owur int SSL_CTX_set_session_id_context(SSL_CTX *ctx, SSL *SSL_new(SSL_CTX *ctx); int SSL_up_ref(SSL *s); int SSL_is_dtls(const SSL *s); +int SSL_is_tls(const SSL *s); +int SSL_is_quic(const SSL *s); __owur int SSL_set_session_id_context(SSL *ssl, const unsigned char *sid_ctx, unsigned int sid_ctx_len); @@ -1848,8 +1878,8 @@ __owur int SSL_set_purpose(SSL *ssl, int purpose); __owur int SSL_CTX_set_trust(SSL_CTX *ctx, int trust); __owur int SSL_set_trust(SSL *ssl, int trust); -__owur int SSL_set1_host(SSL *s, const char *hostname); -__owur int SSL_add1_host(SSL *s, const char *hostname); +__owur int SSL_set1_host(SSL *s, const char *host); +__owur int SSL_add1_host(SSL *s, const char *host); __owur const char *SSL_get0_peername(SSL *s); void SSL_set_hostflags(SSL *s, unsigned int flags); @@ -1924,6 +1954,11 @@ OSSL_DEPRECATEDIN_3_0 __owur char *SSL_get_srp_userinfo(SSL *s); typedef int (*SSL_client_hello_cb_fn) (SSL *s, int *al, void *arg); void SSL_CTX_set_client_hello_cb(SSL_CTX *c, SSL_client_hello_cb_fn cb, void *arg); +typedef int (*SSL_new_pending_conn_cb_fn) (SSL_CTX *ctx, SSL *new_ssl, + void *arg); +void SSL_CTX_set_new_pending_conn_cb(SSL_CTX *c, SSL_new_pending_conn_cb_fn cb, + void *arg); + int SSL_client_hello_isv2(SSL *s); unsigned int SSL_client_hello_get0_legacy_version(SSL *s); size_t SSL_client_hello_get0_random(SSL *s, const unsigned char **out); @@ -1932,6 +1967,8 @@ size_t SSL_client_hello_get0_ciphers(SSL *s, const unsigned char **out); size_t SSL_client_hello_get0_compression_methods(SSL *s, const unsigned char **out); int SSL_client_hello_get1_extensions_present(SSL *s, int **out, size_t *outlen); +int SSL_client_hello_get_extension_order(SSL *s, uint16_t *exts, + size_t *num_exts); int SSL_client_hello_get0_ext(SSL *s, unsigned int type, const unsigned char **out, size_t *outlen); @@ -1978,6 +2015,12 @@ long SSL_callback_ctrl(SSL *, int, void (*)(void)); long SSL_CTX_ctrl(SSL_CTX *ctx, int cmd, long larg, void *parg); long SSL_CTX_callback_ctrl(SSL_CTX *, int, void (*)(void)); +# define SSL_WRITE_FLAG_CONCLUDE (1U << 0) + +__owur int SSL_write_ex2(SSL *s, const void *buf, size_t num, + uint64_t flags, + size_t *written); + # define SSL_EARLY_DATA_NOT_SENT 0 # define SSL_EARLY_DATA_REJECTED 1 # define SSL_EARLY_DATA_ACCEPTED 2 @@ -1986,6 +2029,7 @@ __owur int SSL_get_early_data_status(const SSL *s); __owur int SSL_get_error(const SSL *s, int ret_code); __owur const char *SSL_get_version(const SSL *s); +__owur int SSL_get_handshake_rtt(const SSL *s, uint64_t *rtt); /* This sets the 'default' SSL version that SSL_new() will create */ # ifndef OPENSSL_NO_DEPRECATED_3_0 @@ -2281,6 +2325,8 @@ void SSL_CTX_set_record_padding_callback(SSL_CTX *ctx, void SSL_CTX_set_record_padding_callback_arg(SSL_CTX *ctx, void *arg); void *SSL_CTX_get_record_padding_callback_arg(const SSL_CTX *ctx); int SSL_CTX_set_block_padding(SSL_CTX *ctx, size_t block_size); +int SSL_CTX_set_block_padding_ex(SSL_CTX *ctx, size_t app_block_size, + size_t hs_block_size); int SSL_set_record_padding_callback(SSL *ssl, size_t (*cb) (SSL *ssl, int type, @@ -2288,12 +2334,255 @@ int SSL_set_record_padding_callback(SSL *ssl, void SSL_set_record_padding_callback_arg(SSL *ssl, void *arg); void *SSL_get_record_padding_callback_arg(const SSL *ssl); int SSL_set_block_padding(SSL *ssl, size_t block_size); - +int SSL_set_block_padding_ex(SSL *ssl, size_t app_block_size, + size_t hs_block_size); int SSL_set_num_tickets(SSL *s, size_t num_tickets); size_t SSL_get_num_tickets(const SSL *s); int SSL_CTX_set_num_tickets(SSL_CTX *ctx, size_t num_tickets); size_t SSL_CTX_get_num_tickets(const SSL_CTX *ctx); +/* QUIC support */ +int SSL_handle_events(SSL *s); +__owur int SSL_get_event_timeout(SSL *s, struct timeval *tv, int *is_infinite); +__owur int SSL_get_rpoll_descriptor(SSL *s, BIO_POLL_DESCRIPTOR *desc); +__owur int SSL_get_wpoll_descriptor(SSL *s, BIO_POLL_DESCRIPTOR *desc); +__owur int SSL_net_read_desired(SSL *s); +__owur int SSL_net_write_desired(SSL *s); +__owur int SSL_set_blocking_mode(SSL *s, int blocking); +__owur int SSL_get_blocking_mode(SSL *s); +__owur int SSL_set1_initial_peer_addr(SSL *s, const BIO_ADDR *peer_addr); +__owur SSL *SSL_get0_connection(SSL *s); +__owur int SSL_is_connection(SSL *s); + +__owur int SSL_is_listener(SSL *ssl); +__owur SSL *SSL_get0_listener(SSL *s); +#define SSL_LISTENER_FLAG_NO_VALIDATE (1UL << 1) +__owur SSL *SSL_new_listener(SSL_CTX *ctx, uint64_t flags); +__owur SSL *SSL_new_listener_from(SSL *ssl, uint64_t flags); +__owur SSL *SSL_new_from_listener(SSL *ssl, uint64_t flags); +#define SSL_ACCEPT_CONNECTION_NO_BLOCK (1UL << 0) +__owur SSL *SSL_accept_connection(SSL *ssl, uint64_t flags); +__owur size_t SSL_get_accept_connection_queue_len(SSL *ssl); +__owur int SSL_listen(SSL *ssl); + +__owur int SSL_is_domain(SSL *s); +__owur SSL *SSL_get0_domain(SSL *s); +__owur SSL *SSL_new_domain(SSL_CTX *ctx, uint64_t flags); + +#define SSL_DOMAIN_FLAG_SINGLE_THREAD (1U << 0) +#define SSL_DOMAIN_FLAG_MULTI_THREAD (1U << 1) +#define SSL_DOMAIN_FLAG_THREAD_ASSISTED (1U << 2) +#define SSL_DOMAIN_FLAG_BLOCKING (1U << 3) +#define SSL_DOMAIN_FLAG_LEGACY_BLOCKING (1U << 4) + +__owur int SSL_CTX_set_domain_flags(SSL_CTX *ctx, uint64_t domain_flags); +__owur int SSL_CTX_get_domain_flags(const SSL_CTX *ctx, uint64_t *domain_flags); +__owur int SSL_get_domain_flags(const SSL *ssl, uint64_t *domain_flags); + +#define SSL_STREAM_TYPE_NONE 0 +#define SSL_STREAM_TYPE_READ (1U << 0) +#define SSL_STREAM_TYPE_WRITE (1U << 1) +#define SSL_STREAM_TYPE_BIDI (SSL_STREAM_TYPE_READ | SSL_STREAM_TYPE_WRITE) +__owur int SSL_get_stream_type(SSL *s); + +__owur uint64_t SSL_get_stream_id(SSL *s); +__owur int SSL_is_stream_local(SSL *s); + +#define SSL_DEFAULT_STREAM_MODE_NONE 0 +#define SSL_DEFAULT_STREAM_MODE_AUTO_BIDI 1 +#define SSL_DEFAULT_STREAM_MODE_AUTO_UNI 2 +__owur int SSL_set_default_stream_mode(SSL *s, uint32_t mode); + +#define SSL_STREAM_FLAG_UNI (1U << 0) +#define SSL_STREAM_FLAG_NO_BLOCK (1U << 1) +#define SSL_STREAM_FLAG_ADVANCE (1U << 2) +__owur SSL *SSL_new_stream(SSL *s, uint64_t flags); + +#define SSL_INCOMING_STREAM_POLICY_AUTO 0 +#define SSL_INCOMING_STREAM_POLICY_ACCEPT 1 +#define SSL_INCOMING_STREAM_POLICY_REJECT 2 +__owur int SSL_set_incoming_stream_policy(SSL *s, int policy, uint64_t aec); + +#define SSL_ACCEPT_STREAM_NO_BLOCK (1U << 0) +__owur SSL *SSL_accept_stream(SSL *s, uint64_t flags); +__owur size_t SSL_get_accept_stream_queue_len(SSL *s); + +# ifndef OPENSSL_NO_QUIC +__owur int SSL_inject_net_dgram(SSL *s, const unsigned char *buf, + size_t buf_len, + const BIO_ADDR *peer, + const BIO_ADDR *local); +# endif + +typedef struct ssl_shutdown_ex_args_st { + uint64_t quic_error_code; + const char *quic_reason; +} SSL_SHUTDOWN_EX_ARGS; + +#define SSL_SHUTDOWN_FLAG_RAPID (1U << 0) +#define SSL_SHUTDOWN_FLAG_NO_STREAM_FLUSH (1U << 1) +#define SSL_SHUTDOWN_FLAG_NO_BLOCK (1U << 2) +#define SSL_SHUTDOWN_FLAG_WAIT_PEER (1U << 3) + +__owur int SSL_shutdown_ex(SSL *ssl, uint64_t flags, + const SSL_SHUTDOWN_EX_ARGS *args, + size_t args_len); + +__owur int SSL_stream_conclude(SSL *ssl, uint64_t flags); + +typedef struct ssl_stream_reset_args_st { + uint64_t quic_error_code; +} SSL_STREAM_RESET_ARGS; + +__owur int SSL_stream_reset(SSL *ssl, + const SSL_STREAM_RESET_ARGS *args, + size_t args_len); + +#define SSL_STREAM_STATE_NONE 0 +#define SSL_STREAM_STATE_OK 1 +#define SSL_STREAM_STATE_WRONG_DIR 2 +#define SSL_STREAM_STATE_FINISHED 3 +#define SSL_STREAM_STATE_RESET_LOCAL 4 +#define SSL_STREAM_STATE_RESET_REMOTE 5 +#define SSL_STREAM_STATE_CONN_CLOSED 6 +__owur int SSL_get_stream_read_state(SSL *ssl); +__owur int SSL_get_stream_write_state(SSL *ssl); + +__owur int SSL_get_stream_read_error_code(SSL *ssl, uint64_t *app_error_code); +__owur int SSL_get_stream_write_error_code(SSL *ssl, uint64_t *app_error_code); + +#define SSL_CONN_CLOSE_FLAG_LOCAL (1U << 0) +#define SSL_CONN_CLOSE_FLAG_TRANSPORT (1U << 1) + +typedef struct ssl_conn_close_info_st { + uint64_t error_code, frame_type; + const char *reason; + size_t reason_len; + uint32_t flags; +} SSL_CONN_CLOSE_INFO; + +__owur int SSL_get_conn_close_info(SSL *ssl, + SSL_CONN_CLOSE_INFO *info, + size_t info_len); + +# define SSL_VALUE_CLASS_GENERIC 0 +# define SSL_VALUE_CLASS_FEATURE_REQUEST 1 +# define SSL_VALUE_CLASS_FEATURE_PEER_REQUEST 2 +# define SSL_VALUE_CLASS_FEATURE_NEGOTIATED 3 + +# define SSL_VALUE_NONE 0 +# define SSL_VALUE_QUIC_STREAM_BIDI_LOCAL_AVAIL 1 +# define SSL_VALUE_QUIC_STREAM_BIDI_REMOTE_AVAIL 2 +# define SSL_VALUE_QUIC_STREAM_UNI_LOCAL_AVAIL 3 +# define SSL_VALUE_QUIC_STREAM_UNI_REMOTE_AVAIL 4 +# define SSL_VALUE_QUIC_IDLE_TIMEOUT 5 +# define SSL_VALUE_EVENT_HANDLING_MODE 6 +# define SSL_VALUE_STREAM_WRITE_BUF_SIZE 7 +# define SSL_VALUE_STREAM_WRITE_BUF_USED 8 +# define SSL_VALUE_STREAM_WRITE_BUF_AVAIL 9 + +# define SSL_VALUE_EVENT_HANDLING_MODE_INHERIT 0 +# define SSL_VALUE_EVENT_HANDLING_MODE_IMPLICIT 1 +# define SSL_VALUE_EVENT_HANDLING_MODE_EXPLICIT 2 + +int SSL_get_value_uint(SSL *s, uint32_t class_, uint32_t id, uint64_t *v); +int SSL_set_value_uint(SSL *s, uint32_t class_, uint32_t id, uint64_t v); + +# define SSL_get_generic_value_uint(ssl, id, v) \ + SSL_get_value_uint((ssl), SSL_VALUE_CLASS_GENERIC, (id), (v)) +# define SSL_set_generic_value_uint(ssl, id, v) \ + SSL_set_value_uint((ssl), SSL_VALUE_CLASS_GENERIC, (id), (v)) +# define SSL_get_feature_request_uint(ssl, id, v) \ + SSL_get_value_uint((ssl), SSL_VALUE_CLASS_FEATURE_REQUEST, (id), (v)) +# define SSL_set_feature_request_uint(ssl, id, v) \ + SSL_set_value_uint((ssl), SSL_VALUE_CLASS_FEATURE_REQUEST, (id), (v)) +# define SSL_get_feature_peer_request_uint(ssl, id, v) \ + SSL_get_value_uint((ssl), SSL_VALUE_CLASS_FEATURE_PEER_REQUEST, (id), (v)) +# define SSL_get_feature_negotiated_uint(ssl, id, v) \ + SSL_get_value_uint((ssl), SSL_VALUE_CLASS_FEATURE_NEGOTIATED, (id), (v)) + +# define SSL_get_quic_stream_bidi_local_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_QUIC_STREAM_BIDI_LOCAL_AVAIL, \ + (value)) +# define SSL_get_quic_stream_bidi_remote_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_QUIC_STREAM_BIDI_REMOTE_AVAIL, \ + (value)) +# define SSL_get_quic_stream_uni_local_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_QUIC_STREAM_UNI_LOCAL_AVAIL, \ + (value)) +# define SSL_get_quic_stream_uni_remote_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_QUIC_STREAM_UNI_REMOTE_AVAIL, \ + (value)) + +# define SSL_get_event_handling_mode(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_EVENT_HANDLING_MODE, \ + (value)) +# define SSL_set_event_handling_mode(ssl, value) \ + SSL_set_generic_value_uint((ssl), SSL_VALUE_EVENT_HANDLING_MODE, \ + (value)) + +# define SSL_get_stream_write_buf_size(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_STREAM_WRITE_BUF_SIZE, \ + (value)) +# define SSL_get_stream_write_buf_used(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_STREAM_WRITE_BUF_USED, \ + (value)) +# define SSL_get_stream_write_buf_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_STREAM_WRITE_BUF_AVAIL, \ + (value)) + +# define SSL_POLL_EVENT_NONE 0 + +# define SSL_POLL_EVENT_F (1U << 0) /* F (Failure) */ +# define SSL_POLL_EVENT_EL (1U << 1) /* EL (Exception on Listener) */ +# define SSL_POLL_EVENT_EC (1U << 2) /* EC (Exception on Conn) */ +# define SSL_POLL_EVENT_ECD (1U << 3) /* ECD (Exception on Conn Drained) */ +# define SSL_POLL_EVENT_ER (1U << 4) /* ER (Exception on Read) */ +# define SSL_POLL_EVENT_EW (1U << 5) /* EW (Exception on Write) */ +# define SSL_POLL_EVENT_R (1U << 6) /* R (Readable) */ +# define SSL_POLL_EVENT_W (1U << 7) /* W (Writable) */ +# define SSL_POLL_EVENT_IC (1U << 8) /* IC (Incoming Connection) */ +# define SSL_POLL_EVENT_ISB (1U << 9) /* ISB (Incoming Stream: Bidi) */ +# define SSL_POLL_EVENT_ISU (1U << 10) /* ISU (Incoming Stream: Uni) */ +# define SSL_POLL_EVENT_OSB (1U << 11) /* OSB (Outgoing Stream: Bidi) */ +# define SSL_POLL_EVENT_OSU (1U << 12) /* OSU (Outgoing Stream: Uni) */ + +# define SSL_POLL_EVENT_RW (SSL_POLL_EVENT_R | SSL_POLL_EVENT_W) +# define SSL_POLL_EVENT_RE (SSL_POLL_EVENT_R | SSL_POLL_EVENT_ER) +# define SSL_POLL_EVENT_WE (SSL_POLL_EVENT_W | SSL_POLL_EVENT_EW) +# define SSL_POLL_EVENT_RWE (SSL_POLL_EVENT_RE | SSL_POLL_EVENT_WE) +# define SSL_POLL_EVENT_E (SSL_POLL_EVENT_EL | SSL_POLL_EVENT_EC \ + | SSL_POLL_EVENT_ER | SSL_POLL_EVENT_EW) +# define SSL_POLL_EVENT_IS (SSL_POLL_EVENT_ISB | SSL_POLL_EVENT_ISU) +# define SSL_POLL_EVENT_ISE (SSL_POLL_EVENT_IS | SSL_POLL_EVENT_EC) +# define SSL_POLL_EVENT_I (SSL_POLL_EVENT_IS | SSL_POLL_EVENT_IC) +# define SSL_POLL_EVENT_OS (SSL_POLL_EVENT_OSB | SSL_POLL_EVENT_OSU) +# define SSL_POLL_EVENT_OSE (SSL_POLL_EVENT_OS | SSL_POLL_EVENT_EC) + +typedef struct ssl_poll_item_st { + BIO_POLL_DESCRIPTOR desc; + uint64_t events, revents; +} SSL_POLL_ITEM; + +# define SSL_POLL_FLAG_NO_HANDLE_EVENTS (1U << 0) + +__owur int SSL_poll(SSL_POLL_ITEM *items, + size_t num_items, + size_t stride, + const struct timeval *timeout, + uint64_t flags, + size_t *result_count); + +static ossl_inline ossl_unused BIO_POLL_DESCRIPTOR +SSL_as_poll_descriptor(SSL *s) +{ + BIO_POLL_DESCRIPTOR d; + + d.type = BIO_POLL_DESCRIPTOR_TYPE_SSL; + d.value.ssl = s; + return d; +} + # ifndef OPENSSL_NO_DEPRECATED_1_1_0 # define SSL_cache_hit(s) SSL_session_reused(s) # endif @@ -2593,6 +2882,51 @@ void SSL_set_allow_early_data_cb(SSL *s, const char *OSSL_default_cipher_list(void); const char *OSSL_default_ciphersuites(void); +/* RFC8879 Certificate compression APIs */ + +int SSL_CTX_compress_certs(SSL_CTX *ctx, int alg); +int SSL_compress_certs(SSL *ssl, int alg); + +int SSL_CTX_set1_cert_comp_preference(SSL_CTX *ctx, int *algs, size_t len); +int SSL_set1_cert_comp_preference(SSL *ssl, int *algs, size_t len); + +int SSL_CTX_set1_compressed_cert(SSL_CTX *ctx, int algorithm, unsigned char *comp_data, + size_t comp_length, size_t orig_length); +int SSL_set1_compressed_cert(SSL *ssl, int algorithm, unsigned char *comp_data, + size_t comp_length, size_t orig_length); +size_t SSL_CTX_get1_compressed_cert(SSL_CTX *ctx, int alg, unsigned char **data, size_t *orig_len); +size_t SSL_get1_compressed_cert(SSL *ssl, int alg, unsigned char **data, size_t *orig_len); + +__owur int SSL_add_expected_rpk(SSL *s, EVP_PKEY *rpk); +__owur EVP_PKEY *SSL_get0_peer_rpk(const SSL *s); +__owur EVP_PKEY *SSL_SESSION_get0_peer_rpk(SSL_SESSION *s); +__owur int SSL_get_negotiated_client_cert_type(const SSL *s); +__owur int SSL_get_negotiated_server_cert_type(const SSL *s); + +__owur int SSL_set1_client_cert_type(SSL *s, const unsigned char *val, size_t len); +__owur int SSL_set1_server_cert_type(SSL *s, const unsigned char *val, size_t len); +__owur int SSL_CTX_set1_client_cert_type(SSL_CTX *ctx, const unsigned char *val, size_t len); +__owur int SSL_CTX_set1_server_cert_type(SSL_CTX *ctx, const unsigned char *val, size_t len); +__owur int SSL_get0_client_cert_type(const SSL *s, unsigned char **t, size_t *len); +__owur int SSL_get0_server_cert_type(const SSL *s, unsigned char **t, size_t *len); +__owur int SSL_CTX_get0_client_cert_type(const SSL_CTX *ctx, unsigned char **t, size_t *len); +__owur int SSL_CTX_get0_server_cert_type(const SSL_CTX *s, unsigned char **t, size_t *len); + +/* + * Protection level. For <= TLSv1.2 only "NONE" and "APPLICATION" are used. + */ +# define OSSL_RECORD_PROTECTION_LEVEL_NONE 0 +# define OSSL_RECORD_PROTECTION_LEVEL_EARLY 1 +# define OSSL_RECORD_PROTECTION_LEVEL_HANDSHAKE 2 +# define OSSL_RECORD_PROTECTION_LEVEL_APPLICATION 3 + +int SSL_set_quic_tls_cbs(SSL *s, const OSSL_DISPATCH *qtdis, void *arg); +int SSL_set_quic_tls_transport_params(SSL *s, + const unsigned char *params, + size_t params_len); + +int SSL_set_quic_tls_early_data_enabled(SSL *s, int enabled); + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/BSD-x86_64/asm/include/openssl/x509.h b/deps/openssl/config/archs/BSD-x86_64/asm/include/openssl/x509.h index 1f7755e5b69c75..d013458c226461 100644 --- a/deps/openssl/config/archs/BSD-x86_64/asm/include/openssl/x509.h +++ b/deps/openssl/config/archs/BSD-x86_64/asm/include/openssl/x509.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/x509.h.in * - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2024 The OpenSSL Project Authors. All Rights Reserved. * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved * * Licensed under the Apache License 2.0 (the "License"). You may not use @@ -40,6 +40,9 @@ # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -162,16 +165,24 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_CRL, X509_CRL, X509_CRL) # define X509_FILETYPE_ASN1 2 # define X509_FILETYPE_DEFAULT 3 -# define X509v3_KU_DIGITAL_SIGNATURE 0x0080 -# define X509v3_KU_NON_REPUDIATION 0x0040 -# define X509v3_KU_KEY_ENCIPHERMENT 0x0020 -# define X509v3_KU_DATA_ENCIPHERMENT 0x0010 -# define X509v3_KU_KEY_AGREEMENT 0x0008 -# define X509v3_KU_KEY_CERT_SIGN 0x0004 -# define X509v3_KU_CRL_SIGN 0x0002 -# define X509v3_KU_ENCIPHER_ONLY 0x0001 -# define X509v3_KU_DECIPHER_ONLY 0x8000 -# define X509v3_KU_UNDEF 0xffff +/*- + * : + * The KeyUsage BITSTRING is treated as a little-endian integer, hence bit `0` + * is 0x80, while bit `7` is 0x01 (the LSB of the integer value), bit `8` is + * then the MSB of the second octet, or 0x8000. + */ +# define X509v3_KU_DIGITAL_SIGNATURE 0x0080 /* (0) */ +# define X509v3_KU_NON_REPUDIATION 0x0040 /* (1) */ +# define X509v3_KU_KEY_ENCIPHERMENT 0x0020 /* (2) */ +# define X509v3_KU_DATA_ENCIPHERMENT 0x0010 /* (3) */ +# define X509v3_KU_KEY_AGREEMENT 0x0008 /* (4) */ +# define X509v3_KU_KEY_CERT_SIGN 0x0004 /* (5) */ +# define X509v3_KU_CRL_SIGN 0x0002 /* (6) */ +# define X509v3_KU_ENCIPHER_ONLY 0x0001 /* (7) */ +# define X509v3_KU_DECIPHER_ONLY 0x8000 /* (8) */ +# ifndef OPENSSL_NO_DEPRECATED_3_4 +# define X509v3_KU_UNDEF 0xffff /* vestigial, not used */ +# endif struct X509_algor_st { ASN1_OBJECT *algorithm; @@ -462,7 +473,12 @@ typedef struct PBKDF2PARAM_st { X509_ALGOR *prf; } PBKDF2PARAM; -#ifndef OPENSSL_NO_SCRYPT +typedef struct { + X509_ALGOR *keyDerivationFunc; + X509_ALGOR *messageAuthScheme; +} PBMAC1PARAM; + +# ifndef OPENSSL_NO_SCRYPT typedef struct SCRYPT_PARAMS_st { ASN1_OCTET_STRING *salt; ASN1_INTEGER *costParameter; @@ -470,7 +486,7 @@ typedef struct SCRYPT_PARAMS_st { ASN1_INTEGER *parallelizationParameter; ASN1_INTEGER *keyLength; } SCRYPT_PARAMS; -#endif +# endif #ifdef __cplusplus } @@ -603,6 +619,8 @@ EVP_PKEY *d2i_PrivateKey_ex_fp(FILE *fp, EVP_PKEY **a, OSSL_LIB_CTX *libctx, const char *propq); EVP_PKEY *d2i_PrivateKey_fp(FILE *fp, EVP_PKEY **a); int i2d_PUBKEY_fp(FILE *fp, const EVP_PKEY *pkey); +EVP_PKEY *d2i_PUBKEY_ex_fp(FILE *fp, EVP_PKEY **a, OSSL_LIB_CTX *libctx, + const char *propq); EVP_PKEY *d2i_PUBKEY_fp(FILE *fp, EVP_PKEY **a); # endif @@ -651,6 +669,8 @@ EVP_PKEY *d2i_PrivateKey_ex_bio(BIO *bp, EVP_PKEY **a, OSSL_LIB_CTX *libctx, const char *propq); EVP_PKEY *d2i_PrivateKey_bio(BIO *bp, EVP_PKEY **a); int i2d_PUBKEY_bio(BIO *bp, const EVP_PKEY *pkey); +EVP_PKEY *d2i_PUBKEY_ex_bio(BIO *bp, EVP_PKEY **a, OSSL_LIB_CTX *libctx, + const char *propq); EVP_PKEY *d2i_PUBKEY_bio(BIO *bp, EVP_PKEY **a); DECLARE_ASN1_DUP_FUNCTION(X509) @@ -884,12 +904,12 @@ int X509_REQ_get_signature_nid(const X509_REQ *req); int i2d_re_X509_REQ_tbs(X509_REQ *req, unsigned char **pp); int X509_REQ_set_pubkey(X509_REQ *x, EVP_PKEY *pkey); EVP_PKEY *X509_REQ_get_pubkey(X509_REQ *req); -EVP_PKEY *X509_REQ_get0_pubkey(X509_REQ *req); +EVP_PKEY *X509_REQ_get0_pubkey(const X509_REQ *req); X509_PUBKEY *X509_REQ_get_X509_PUBKEY(X509_REQ *req); int X509_REQ_extension_nid(int nid); int *X509_REQ_get_extension_nids(void); void X509_REQ_set_extension_nids(int *nids); -STACK_OF(X509_EXTENSION) *X509_REQ_get_extensions(X509_REQ *req); +STACK_OF(X509_EXTENSION) *X509_REQ_get_extensions(OSSL_FUTURE_CONST X509_REQ *req); int X509_REQ_add_extensions_nid(X509_REQ *req, const STACK_OF(X509_EXTENSION) *exts, int nid); int X509_REQ_add_extensions(X509_REQ *req, const STACK_OF(X509_EXTENSION) *ext); @@ -950,13 +970,14 @@ X509_REVOKED_get0_extensions(const X509_REVOKED *r); X509_CRL *X509_CRL_diff(X509_CRL *base, X509_CRL *newer, EVP_PKEY *skey, const EVP_MD *md, unsigned int flags); -int X509_REQ_check_private_key(X509_REQ *x509, EVP_PKEY *pkey); +int X509_REQ_check_private_key(const X509_REQ *req, EVP_PKEY *pkey); -int X509_check_private_key(const X509 *x509, const EVP_PKEY *pkey); +int X509_check_private_key(const X509 *cert, const EVP_PKEY *pkey); int X509_chain_check_suiteb(int *perror_depth, X509 *x, STACK_OF(X509) *chain, unsigned long flags); int X509_CRL_check_suiteb(X509_CRL *crl, EVP_PKEY *pk, unsigned long flags); +void OSSL_STACK_OF_X509_free(STACK_OF(X509) *certs); STACK_OF(X509) *X509_chain_up_ref(STACK_OF(X509) *chain); int X509_issuer_and_serial_cmp(const X509 *a, const X509 *b); @@ -1077,6 +1098,8 @@ X509_EXTENSION *X509v3_get_ext(const STACK_OF(X509_EXTENSION) *x, int loc); X509_EXTENSION *X509v3_delete_ext(STACK_OF(X509_EXTENSION) *x, int loc); STACK_OF(X509_EXTENSION) *X509v3_add_ext(STACK_OF(X509_EXTENSION) **x, X509_EXTENSION *ex, int loc); +STACK_OF(X509_EXTENSION) *X509v3_add_extensions(STACK_OF(X509_EXTENSION) **target, + const STACK_OF(X509_EXTENSION) *exts); int X509_get_ext_count(const X509 *x); int X509_get_ext_by_NID(const X509 *x, int nid, int lastpos); @@ -1198,9 +1221,10 @@ X509 *X509_find_by_subject(STACK_OF(X509) *sk, const X509_NAME *name); DECLARE_ASN1_FUNCTIONS(PBEPARAM) DECLARE_ASN1_FUNCTIONS(PBE2PARAM) DECLARE_ASN1_FUNCTIONS(PBKDF2PARAM) -#ifndef OPENSSL_NO_SCRYPT +DECLARE_ASN1_FUNCTIONS(PBMAC1PARAM) +# ifndef OPENSSL_NO_SCRYPT DECLARE_ASN1_FUNCTIONS(SCRYPT_PARAMS) -#endif +# endif int PKCS5_pbe_set0_algor(X509_ALGOR *algor, int alg, int iter, const unsigned char *salt, int saltlen); @@ -1237,6 +1261,7 @@ X509_ALGOR *PKCS5_pbkdf2_set_ex(int iter, unsigned char *salt, int saltlen, int prf_nid, int keylen, OSSL_LIB_CTX *libctx); +PBKDF2PARAM *PBMAC1_get1_pbkdf2_param(const X509_ALGOR *macalg); /* PKCS#8 utilities */ DECLARE_ASN1_FUNCTIONS(PKCS8_PRIV_KEY_INFO) @@ -1262,6 +1287,8 @@ int PKCS8_pkey_add1_attr_by_OBJ(PKCS8_PRIV_KEY_INFO *p8, const ASN1_OBJECT *obj, int type, const unsigned char *bytes, int len); +void X509_PUBKEY_set0_public_key(X509_PUBKEY *pub, + unsigned char *penc, int penclen); int X509_PUBKEY_set0_param(X509_PUBKEY *pub, ASN1_OBJECT *aobj, int ptype, void *pval, unsigned char *penc, int penclen); diff --git a/deps/openssl/config/archs/BSD-x86_64/asm/include/openssl/x509_acert.h b/deps/openssl/config/archs/BSD-x86_64/asm/include/openssl/x509_acert.h new file mode 100644 index 00000000000000..9dde625677f9a9 --- /dev/null +++ b/deps/openssl/config/archs/BSD-x86_64/asm/include/openssl/x509_acert.h @@ -0,0 +1,294 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from include/openssl/x509_acert.h.in + * + * Copyright 2022-2024 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + + +#ifndef OPENSSL_X509_ACERT_H +# define OPENSSL_X509_ACERT_H +# pragma once + +# include +# include +# include + +typedef struct X509_acert_st X509_ACERT; +typedef struct X509_acert_info_st X509_ACERT_INFO; +typedef struct ossl_object_digest_info_st OSSL_OBJECT_DIGEST_INFO; +typedef struct ossl_issuer_serial_st OSSL_ISSUER_SERIAL; +typedef struct X509_acert_issuer_v2form_st X509_ACERT_ISSUER_V2FORM; + +DECLARE_ASN1_FUNCTIONS(X509_ACERT) +DECLARE_ASN1_DUP_FUNCTION(X509_ACERT) +DECLARE_ASN1_ITEM(X509_ACERT_INFO) +DECLARE_ASN1_ALLOC_FUNCTIONS(X509_ACERT_INFO) +DECLARE_ASN1_ALLOC_FUNCTIONS(OSSL_OBJECT_DIGEST_INFO) +DECLARE_ASN1_ALLOC_FUNCTIONS(OSSL_ISSUER_SERIAL) +DECLARE_ASN1_ALLOC_FUNCTIONS(X509_ACERT_ISSUER_V2FORM) + +# ifndef OPENSSL_NO_STDIO +X509_ACERT *d2i_X509_ACERT_fp(FILE *fp, X509_ACERT **acert); +int i2d_X509_ACERT_fp(FILE *fp, const X509_ACERT *acert); +# endif + +DECLARE_PEM_rw(X509_ACERT, X509_ACERT) + +X509_ACERT *d2i_X509_ACERT_bio(BIO *bp, X509_ACERT **acert); +int i2d_X509_ACERT_bio(BIO *bp, const X509_ACERT *acert); + +int X509_ACERT_sign(X509_ACERT *x, EVP_PKEY *pkey, const EVP_MD *md); +int X509_ACERT_sign_ctx(X509_ACERT *x, EVP_MD_CTX *ctx); +int X509_ACERT_verify(X509_ACERT *a, EVP_PKEY *r); + +# define X509_ACERT_VERSION_2 1 + +const GENERAL_NAMES *X509_ACERT_get0_holder_entityName(const X509_ACERT *x); +const OSSL_ISSUER_SERIAL *X509_ACERT_get0_holder_baseCertId(const X509_ACERT *x); +const OSSL_OBJECT_DIGEST_INFO * X509_ACERT_get0_holder_digest(const X509_ACERT *x); +const X509_NAME *X509_ACERT_get0_issuerName(const X509_ACERT *x); +long X509_ACERT_get_version(const X509_ACERT *x); +void X509_ACERT_get0_signature(const X509_ACERT *x, + const ASN1_BIT_STRING **psig, + const X509_ALGOR **palg); +int X509_ACERT_get_signature_nid(const X509_ACERT *x); +const X509_ALGOR *X509_ACERT_get0_info_sigalg(const X509_ACERT *x); +const ASN1_INTEGER *X509_ACERT_get0_serialNumber(const X509_ACERT *x); +const ASN1_TIME *X509_ACERT_get0_notBefore(const X509_ACERT *x); +const ASN1_TIME *X509_ACERT_get0_notAfter(const X509_ACERT *x); +const ASN1_BIT_STRING *X509_ACERT_get0_issuerUID(const X509_ACERT *x); + +int X509_ACERT_print(BIO *bp, X509_ACERT *x); +int X509_ACERT_print_ex(BIO *bp, X509_ACERT *x, unsigned long nmflags, + unsigned long cflag); + +int X509_ACERT_get_attr_count(const X509_ACERT *x); +int X509_ACERT_get_attr_by_NID(const X509_ACERT *x, int nid, int lastpos); +int X509_ACERT_get_attr_by_OBJ(const X509_ACERT *x, const ASN1_OBJECT *obj, + int lastpos); +X509_ATTRIBUTE *X509_ACERT_get_attr(const X509_ACERT *x, int loc); +X509_ATTRIBUTE *X509_ACERT_delete_attr(X509_ACERT *x, int loc); + +void *X509_ACERT_get_ext_d2i(const X509_ACERT *x, int nid, int *crit, int *idx); +int X509_ACERT_add1_ext_i2d(X509_ACERT *x, int nid, void *value, int crit, + unsigned long flags); +const STACK_OF(X509_EXTENSION) *X509_ACERT_get0_extensions(const X509_ACERT *x); + +# define OSSL_OBJECT_DIGEST_INFO_PUBLIC_KEY 0 +# define OSSL_OBJECT_DIGEST_INFO_PUBLIC_KEY_CERT 1 +# define OSSL_OBJECT_DIGEST_INFO_OTHER 2 /* must not be used in RFC 5755 profile */ +int X509_ACERT_set_version(X509_ACERT *x, long version); +void X509_ACERT_set0_holder_entityName(X509_ACERT *x, GENERAL_NAMES *name); +void X509_ACERT_set0_holder_baseCertId(X509_ACERT *x, OSSL_ISSUER_SERIAL *isss); +void X509_ACERT_set0_holder_digest(X509_ACERT *x, + OSSL_OBJECT_DIGEST_INFO *dinfo); + +int X509_ACERT_add1_attr(X509_ACERT *x, X509_ATTRIBUTE *attr); +int X509_ACERT_add1_attr_by_OBJ(X509_ACERT *x, const ASN1_OBJECT *obj, + int type, const void *bytes, int len); +int X509_ACERT_add1_attr_by_NID(X509_ACERT *x, int nid, int type, + const void *bytes, int len); +int X509_ACERT_add1_attr_by_txt(X509_ACERT *x, const char *attrname, int type, + const unsigned char *bytes, int len); +int X509_ACERT_add_attr_nconf(CONF *conf, const char *section, + X509_ACERT *acert); + +int X509_ACERT_set1_issuerName(X509_ACERT *x, const X509_NAME *name); +int X509_ACERT_set1_serialNumber(X509_ACERT *x, const ASN1_INTEGER *serial); +int X509_ACERT_set1_notBefore(X509_ACERT *x, const ASN1_GENERALIZEDTIME *time); +int X509_ACERT_set1_notAfter(X509_ACERT *x, const ASN1_GENERALIZEDTIME *time); + +void OSSL_OBJECT_DIGEST_INFO_get0_digest(const OSSL_OBJECT_DIGEST_INFO *o, + int *digestedObjectType, + const X509_ALGOR **digestAlgorithm, + const ASN1_BIT_STRING **digest); + +int OSSL_OBJECT_DIGEST_INFO_set1_digest(OSSL_OBJECT_DIGEST_INFO *o, + int digestedObjectType, + X509_ALGOR *digestAlgorithm, + ASN1_BIT_STRING *digest); + +const X509_NAME *OSSL_ISSUER_SERIAL_get0_issuer(const OSSL_ISSUER_SERIAL *isss); +const ASN1_INTEGER *OSSL_ISSUER_SERIAL_get0_serial(const OSSL_ISSUER_SERIAL *isss); +const ASN1_BIT_STRING *OSSL_ISSUER_SERIAL_get0_issuerUID(const OSSL_ISSUER_SERIAL *isss); + +int OSSL_ISSUER_SERIAL_set1_issuer(OSSL_ISSUER_SERIAL *isss, + const X509_NAME *issuer); +int OSSL_ISSUER_SERIAL_set1_serial(OSSL_ISSUER_SERIAL *isss, + const ASN1_INTEGER *serial); +int OSSL_ISSUER_SERIAL_set1_issuerUID(OSSL_ISSUER_SERIAL *isss, + const ASN1_BIT_STRING *uid); + +# define OSSL_IETFAS_OCTETS 0 +# define OSSL_IETFAS_OID 1 +# define OSSL_IETFAS_STRING 2 + +typedef struct OSSL_IETF_ATTR_SYNTAX_VALUE_st OSSL_IETF_ATTR_SYNTAX_VALUE; +typedef struct OSSL_IETF_ATTR_SYNTAX_st OSSL_IETF_ATTR_SYNTAX; +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_IETF_ATTR_SYNTAX_VALUE, OSSL_IETF_ATTR_SYNTAX_VALUE, OSSL_IETF_ATTR_SYNTAX_VALUE) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_value(sk, idx) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_value(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), (idx))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_new(cmp) ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_new(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_compfunc_type(cmp))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_new_null() ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_new_null()) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_new_reserve(cmp, n) ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_compfunc_type(cmp), (n))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), (n)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_free(sk) OPENSSL_sk_free(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_delete(sk, i) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_delete(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), (i))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_delete_ptr(sk, ptr) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_pop(sk) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_pop(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_shift(sk) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_shift(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk),ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_freefunc_type(freefunc)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr), (idx)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_set(sk, idx, ptr) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_set(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), (idx), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr), pnum) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_dup(sk) ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_dup(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_copyfunc_type(copyfunc), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_freefunc_type(freefunc))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_set_cmp_func(sk, cmp) ((sk_OSSL_IETF_ATTR_SYNTAX_VALUE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_compfunc_type(cmp))) + + +DECLARE_ASN1_ITEM(OSSL_IETF_ATTR_SYNTAX_VALUE) +DECLARE_ASN1_ALLOC_FUNCTIONS(OSSL_IETF_ATTR_SYNTAX_VALUE) +DECLARE_ASN1_FUNCTIONS(OSSL_IETF_ATTR_SYNTAX) + +const GENERAL_NAMES * +OSSL_IETF_ATTR_SYNTAX_get0_policyAuthority(const OSSL_IETF_ATTR_SYNTAX *a); +void OSSL_IETF_ATTR_SYNTAX_set0_policyAuthority(OSSL_IETF_ATTR_SYNTAX *a, + GENERAL_NAMES *names); + +int OSSL_IETF_ATTR_SYNTAX_get_value_num(const OSSL_IETF_ATTR_SYNTAX *a); +void *OSSL_IETF_ATTR_SYNTAX_get0_value(const OSSL_IETF_ATTR_SYNTAX *a, + int ind, int *type); +int OSSL_IETF_ATTR_SYNTAX_add1_value(OSSL_IETF_ATTR_SYNTAX *a, int type, + void *data); +int OSSL_IETF_ATTR_SYNTAX_print(BIO *bp, OSSL_IETF_ATTR_SYNTAX *a, int indent); + +struct TARGET_CERT_st { + OSSL_ISSUER_SERIAL *targetCertificate; + GENERAL_NAME *targetName; + OSSL_OBJECT_DIGEST_INFO *certDigestInfo; +}; + +typedef struct TARGET_CERT_st OSSL_TARGET_CERT; + +# define OSSL_TGT_TARGET_NAME 0 +# define OSSL_TGT_TARGET_GROUP 1 +# define OSSL_TGT_TARGET_CERT 2 + +typedef struct TARGET_st { + int type; + union { + GENERAL_NAME *targetName; + GENERAL_NAME *targetGroup; + OSSL_TARGET_CERT *targetCert; + } choice; +} OSSL_TARGET; + +typedef STACK_OF(OSSL_TARGET) OSSL_TARGETS; +typedef STACK_OF(OSSL_TARGETS) OSSL_TARGETING_INFORMATION; + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_TARGET, OSSL_TARGET, OSSL_TARGET) +#define sk_OSSL_TARGET_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_value(sk, idx) ((OSSL_TARGET *)OPENSSL_sk_value(ossl_check_const_OSSL_TARGET_sk_type(sk), (idx))) +#define sk_OSSL_TARGET_new(cmp) ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_new(ossl_check_OSSL_TARGET_compfunc_type(cmp))) +#define sk_OSSL_TARGET_new_null() ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_new_null()) +#define sk_OSSL_TARGET_new_reserve(cmp, n) ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_TARGET_compfunc_type(cmp), (n))) +#define sk_OSSL_TARGET_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_TARGET_sk_type(sk), (n)) +#define sk_OSSL_TARGET_free(sk) OPENSSL_sk_free(ossl_check_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_delete(sk, i) ((OSSL_TARGET *)OPENSSL_sk_delete(ossl_check_OSSL_TARGET_sk_type(sk), (i))) +#define sk_OSSL_TARGET_delete_ptr(sk, ptr) ((OSSL_TARGET *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr))) +#define sk_OSSL_TARGET_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr)) +#define sk_OSSL_TARGET_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr)) +#define sk_OSSL_TARGET_pop(sk) ((OSSL_TARGET *)OPENSSL_sk_pop(ossl_check_OSSL_TARGET_sk_type(sk))) +#define sk_OSSL_TARGET_shift(sk) ((OSSL_TARGET *)OPENSSL_sk_shift(ossl_check_OSSL_TARGET_sk_type(sk))) +#define sk_OSSL_TARGET_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_TARGET_sk_type(sk),ossl_check_OSSL_TARGET_freefunc_type(freefunc)) +#define sk_OSSL_TARGET_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr), (idx)) +#define sk_OSSL_TARGET_set(sk, idx, ptr) ((OSSL_TARGET *)OPENSSL_sk_set(ossl_check_OSSL_TARGET_sk_type(sk), (idx), ossl_check_OSSL_TARGET_type(ptr))) +#define sk_OSSL_TARGET_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr)) +#define sk_OSSL_TARGET_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr)) +#define sk_OSSL_TARGET_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr), pnum) +#define sk_OSSL_TARGET_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_dup(sk) ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_dup(ossl_check_const_OSSL_TARGET_sk_type(sk))) +#define sk_OSSL_TARGET_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_copyfunc_type(copyfunc), ossl_check_OSSL_TARGET_freefunc_type(freefunc))) +#define sk_OSSL_TARGET_set_cmp_func(sk, cmp) ((sk_OSSL_TARGET_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_compfunc_type(cmp))) + + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_TARGETS, OSSL_TARGETS, OSSL_TARGETS) +#define sk_OSSL_TARGETS_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_value(sk, idx) ((OSSL_TARGETS *)OPENSSL_sk_value(ossl_check_const_OSSL_TARGETS_sk_type(sk), (idx))) +#define sk_OSSL_TARGETS_new(cmp) ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_new(ossl_check_OSSL_TARGETS_compfunc_type(cmp))) +#define sk_OSSL_TARGETS_new_null() ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_new_null()) +#define sk_OSSL_TARGETS_new_reserve(cmp, n) ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_TARGETS_compfunc_type(cmp), (n))) +#define sk_OSSL_TARGETS_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_TARGETS_sk_type(sk), (n)) +#define sk_OSSL_TARGETS_free(sk) OPENSSL_sk_free(ossl_check_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_delete(sk, i) ((OSSL_TARGETS *)OPENSSL_sk_delete(ossl_check_OSSL_TARGETS_sk_type(sk), (i))) +#define sk_OSSL_TARGETS_delete_ptr(sk, ptr) ((OSSL_TARGETS *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr))) +#define sk_OSSL_TARGETS_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr)) +#define sk_OSSL_TARGETS_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr)) +#define sk_OSSL_TARGETS_pop(sk) ((OSSL_TARGETS *)OPENSSL_sk_pop(ossl_check_OSSL_TARGETS_sk_type(sk))) +#define sk_OSSL_TARGETS_shift(sk) ((OSSL_TARGETS *)OPENSSL_sk_shift(ossl_check_OSSL_TARGETS_sk_type(sk))) +#define sk_OSSL_TARGETS_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_TARGETS_sk_type(sk),ossl_check_OSSL_TARGETS_freefunc_type(freefunc)) +#define sk_OSSL_TARGETS_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr), (idx)) +#define sk_OSSL_TARGETS_set(sk, idx, ptr) ((OSSL_TARGETS *)OPENSSL_sk_set(ossl_check_OSSL_TARGETS_sk_type(sk), (idx), ossl_check_OSSL_TARGETS_type(ptr))) +#define sk_OSSL_TARGETS_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr)) +#define sk_OSSL_TARGETS_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr)) +#define sk_OSSL_TARGETS_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr), pnum) +#define sk_OSSL_TARGETS_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_dup(sk) ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_dup(ossl_check_const_OSSL_TARGETS_sk_type(sk))) +#define sk_OSSL_TARGETS_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_copyfunc_type(copyfunc), ossl_check_OSSL_TARGETS_freefunc_type(freefunc))) +#define sk_OSSL_TARGETS_set_cmp_func(sk, cmp) ((sk_OSSL_TARGETS_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_compfunc_type(cmp))) + + +DECLARE_ASN1_FUNCTIONS(OSSL_TARGET) +DECLARE_ASN1_FUNCTIONS(OSSL_TARGETS) +DECLARE_ASN1_FUNCTIONS(OSSL_TARGETING_INFORMATION) + +typedef STACK_OF(OSSL_ISSUER_SERIAL) OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX; +DECLARE_ASN1_FUNCTIONS(OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ISSUER_SERIAL, OSSL_ISSUER_SERIAL, OSSL_ISSUER_SERIAL) +#define sk_OSSL_ISSUER_SERIAL_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_value(sk, idx) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_value(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk), (idx))) +#define sk_OSSL_ISSUER_SERIAL_new(cmp) ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_new(ossl_check_OSSL_ISSUER_SERIAL_compfunc_type(cmp))) +#define sk_OSSL_ISSUER_SERIAL_new_null() ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ISSUER_SERIAL_new_reserve(cmp, n) ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ISSUER_SERIAL_compfunc_type(cmp), (n))) +#define sk_OSSL_ISSUER_SERIAL_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), (n)) +#define sk_OSSL_ISSUER_SERIAL_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_delete(sk, i) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_delete(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), (i))) +#define sk_OSSL_ISSUER_SERIAL_delete_ptr(sk, ptr) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr))) +#define sk_OSSL_ISSUER_SERIAL_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr)) +#define sk_OSSL_ISSUER_SERIAL_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr)) +#define sk_OSSL_ISSUER_SERIAL_pop(sk) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_pop(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk))) +#define sk_OSSL_ISSUER_SERIAL_shift(sk) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_shift(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk))) +#define sk_OSSL_ISSUER_SERIAL_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk),ossl_check_OSSL_ISSUER_SERIAL_freefunc_type(freefunc)) +#define sk_OSSL_ISSUER_SERIAL_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr), (idx)) +#define sk_OSSL_ISSUER_SERIAL_set(sk, idx, ptr) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_set(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), (idx), ossl_check_OSSL_ISSUER_SERIAL_type(ptr))) +#define sk_OSSL_ISSUER_SERIAL_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr)) +#define sk_OSSL_ISSUER_SERIAL_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr)) +#define sk_OSSL_ISSUER_SERIAL_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr), pnum) +#define sk_OSSL_ISSUER_SERIAL_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_dup(sk) ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk))) +#define sk_OSSL_ISSUER_SERIAL_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_copyfunc_type(copyfunc), ossl_check_OSSL_ISSUER_SERIAL_freefunc_type(freefunc))) +#define sk_OSSL_ISSUER_SERIAL_set_cmp_func(sk, cmp) ((sk_OSSL_ISSUER_SERIAL_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_compfunc_type(cmp))) + + +#endif diff --git a/deps/openssl/config/archs/BSD-x86_64/asm/include/openssl/x509_vfy.h b/deps/openssl/config/archs/BSD-x86_64/asm/include/openssl/x509_vfy.h index 29b0e147adcab1..c9bdc3b39d685d 100644 --- a/deps/openssl/config/archs/BSD-x86_64/asm/include/openssl/x509_vfy.h +++ b/deps/openssl/config/archs/BSD-x86_64/asm/include/openssl/x509_vfy.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/x509_vfy.h.in * - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -411,6 +411,7 @@ X509_LOOKUP_ctrl_ex((x), X509_L_ADD_STORE, (name), 0, NULL, \ # define X509_V_ERR_CA_CERT_MISSING_KEY_USAGE 92 # define X509_V_ERR_EXTENSIONS_REQUIRE_VERSION_3 93 # define X509_V_ERR_EC_KEY_EXPLICIT_PARAMS 94 +# define X509_V_ERR_RPK_UNTRUSTED 95 /* Certificate verify flags */ # ifndef OPENSSL_NO_DEPRECATED_1_1_0 @@ -491,71 +492,72 @@ int X509_OBJECT_set1_X509(X509_OBJECT *a, X509 *obj); X509_CRL *X509_OBJECT_get0_X509_CRL(const X509_OBJECT *a); int X509_OBJECT_set1_X509_CRL(X509_OBJECT *a, X509_CRL *obj); X509_STORE *X509_STORE_new(void); -void X509_STORE_free(X509_STORE *v); -int X509_STORE_lock(X509_STORE *ctx); -int X509_STORE_unlock(X509_STORE *ctx); -int X509_STORE_up_ref(X509_STORE *v); -STACK_OF(X509_OBJECT) *X509_STORE_get0_objects(const X509_STORE *v); -STACK_OF(X509) *X509_STORE_get1_all_certs(X509_STORE *st); -STACK_OF(X509) *X509_STORE_CTX_get1_certs(X509_STORE_CTX *st, +void X509_STORE_free(X509_STORE *xs); +int X509_STORE_lock(X509_STORE *xs); +int X509_STORE_unlock(X509_STORE *xs); +int X509_STORE_up_ref(X509_STORE *xs); +STACK_OF(X509_OBJECT) *X509_STORE_get0_objects(const X509_STORE *xs); +STACK_OF(X509_OBJECT) *X509_STORE_get1_objects(X509_STORE *xs); +STACK_OF(X509) *X509_STORE_get1_all_certs(X509_STORE *xs); +STACK_OF(X509) *X509_STORE_CTX_get1_certs(X509_STORE_CTX *xs, const X509_NAME *nm); STACK_OF(X509_CRL) *X509_STORE_CTX_get1_crls(const X509_STORE_CTX *st, const X509_NAME *nm); -int X509_STORE_set_flags(X509_STORE *ctx, unsigned long flags); -int X509_STORE_set_purpose(X509_STORE *ctx, int purpose); -int X509_STORE_set_trust(X509_STORE *ctx, int trust); -int X509_STORE_set1_param(X509_STORE *ctx, const X509_VERIFY_PARAM *pm); -X509_VERIFY_PARAM *X509_STORE_get0_param(const X509_STORE *ctx); +int X509_STORE_set_flags(X509_STORE *xs, unsigned long flags); +int X509_STORE_set_purpose(X509_STORE *xs, int purpose); +int X509_STORE_set_trust(X509_STORE *xs, int trust); +int X509_STORE_set1_param(X509_STORE *xs, const X509_VERIFY_PARAM *pm); +X509_VERIFY_PARAM *X509_STORE_get0_param(const X509_STORE *xs); -void X509_STORE_set_verify(X509_STORE *ctx, X509_STORE_CTX_verify_fn verify); +void X509_STORE_set_verify(X509_STORE *xs, X509_STORE_CTX_verify_fn verify); #define X509_STORE_set_verify_func(ctx, func) \ X509_STORE_set_verify((ctx),(func)) void X509_STORE_CTX_set_verify(X509_STORE_CTX *ctx, X509_STORE_CTX_verify_fn verify); -X509_STORE_CTX_verify_fn X509_STORE_get_verify(const X509_STORE *ctx); -void X509_STORE_set_verify_cb(X509_STORE *ctx, +X509_STORE_CTX_verify_fn X509_STORE_get_verify(const X509_STORE *xs); +void X509_STORE_set_verify_cb(X509_STORE *xs, X509_STORE_CTX_verify_cb verify_cb); # define X509_STORE_set_verify_cb_func(ctx,func) \ X509_STORE_set_verify_cb((ctx),(func)) -X509_STORE_CTX_verify_cb X509_STORE_get_verify_cb(const X509_STORE *ctx); -void X509_STORE_set_get_issuer(X509_STORE *ctx, +X509_STORE_CTX_verify_cb X509_STORE_get_verify_cb(const X509_STORE *xs); +void X509_STORE_set_get_issuer(X509_STORE *xs, X509_STORE_CTX_get_issuer_fn get_issuer); -X509_STORE_CTX_get_issuer_fn X509_STORE_get_get_issuer(const X509_STORE *ctx); -void X509_STORE_set_check_issued(X509_STORE *ctx, +X509_STORE_CTX_get_issuer_fn X509_STORE_get_get_issuer(const X509_STORE *xs); +void X509_STORE_set_check_issued(X509_STORE *xs, X509_STORE_CTX_check_issued_fn check_issued); -X509_STORE_CTX_check_issued_fn X509_STORE_get_check_issued(const X509_STORE *ctx); -void X509_STORE_set_check_revocation(X509_STORE *ctx, +X509_STORE_CTX_check_issued_fn X509_STORE_get_check_issued(const X509_STORE *s); +void X509_STORE_set_check_revocation(X509_STORE *xs, X509_STORE_CTX_check_revocation_fn check_revocation); X509_STORE_CTX_check_revocation_fn - X509_STORE_get_check_revocation(const X509_STORE *ctx); -void X509_STORE_set_get_crl(X509_STORE *ctx, + X509_STORE_get_check_revocation(const X509_STORE *xs); +void X509_STORE_set_get_crl(X509_STORE *xs, X509_STORE_CTX_get_crl_fn get_crl); -X509_STORE_CTX_get_crl_fn X509_STORE_get_get_crl(const X509_STORE *ctx); -void X509_STORE_set_check_crl(X509_STORE *ctx, +X509_STORE_CTX_get_crl_fn X509_STORE_get_get_crl(const X509_STORE *xs); +void X509_STORE_set_check_crl(X509_STORE *xs, X509_STORE_CTX_check_crl_fn check_crl); -X509_STORE_CTX_check_crl_fn X509_STORE_get_check_crl(const X509_STORE *ctx); -void X509_STORE_set_cert_crl(X509_STORE *ctx, +X509_STORE_CTX_check_crl_fn X509_STORE_get_check_crl(const X509_STORE *xs); +void X509_STORE_set_cert_crl(X509_STORE *xs, X509_STORE_CTX_cert_crl_fn cert_crl); -X509_STORE_CTX_cert_crl_fn X509_STORE_get_cert_crl(const X509_STORE *ctx); -void X509_STORE_set_check_policy(X509_STORE *ctx, +X509_STORE_CTX_cert_crl_fn X509_STORE_get_cert_crl(const X509_STORE *xs); +void X509_STORE_set_check_policy(X509_STORE *xs, X509_STORE_CTX_check_policy_fn check_policy); -X509_STORE_CTX_check_policy_fn X509_STORE_get_check_policy(const X509_STORE *ctx); -void X509_STORE_set_lookup_certs(X509_STORE *ctx, +X509_STORE_CTX_check_policy_fn X509_STORE_get_check_policy(const X509_STORE *s); +void X509_STORE_set_lookup_certs(X509_STORE *xs, X509_STORE_CTX_lookup_certs_fn lookup_certs); -X509_STORE_CTX_lookup_certs_fn X509_STORE_get_lookup_certs(const X509_STORE *ctx); -void X509_STORE_set_lookup_crls(X509_STORE *ctx, +X509_STORE_CTX_lookup_certs_fn X509_STORE_get_lookup_certs(const X509_STORE *s); +void X509_STORE_set_lookup_crls(X509_STORE *xs, X509_STORE_CTX_lookup_crls_fn lookup_crls); #define X509_STORE_set_lookup_crls_cb(ctx, func) \ X509_STORE_set_lookup_crls((ctx), (func)) -X509_STORE_CTX_lookup_crls_fn X509_STORE_get_lookup_crls(const X509_STORE *ctx); -void X509_STORE_set_cleanup(X509_STORE *ctx, +X509_STORE_CTX_lookup_crls_fn X509_STORE_get_lookup_crls(const X509_STORE *xs); +void X509_STORE_set_cleanup(X509_STORE *xs, X509_STORE_CTX_cleanup_fn cleanup); -X509_STORE_CTX_cleanup_fn X509_STORE_get_cleanup(const X509_STORE *ctx); +X509_STORE_CTX_cleanup_fn X509_STORE_get_cleanup(const X509_STORE *xs); #define X509_STORE_get_ex_new_index(l, p, newf, dupf, freef) \ CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_X509_STORE, l, p, newf, dupf, freef) -int X509_STORE_set_ex_data(X509_STORE *ctx, int idx, void *data); -void *X509_STORE_get_ex_data(const X509_STORE *ctx, int idx); +int X509_STORE_set_ex_data(X509_STORE *xs, int idx, void *data); +void *X509_STORE_get_ex_data(const X509_STORE *xs, int idx); X509_STORE_CTX *X509_STORE_CTX_new_ex(OSSL_LIB_CTX *libctx, const char *propq); X509_STORE_CTX *X509_STORE_CTX_new(void); @@ -565,11 +567,14 @@ int X509_STORE_CTX_get1_issuer(X509 **issuer, X509_STORE_CTX *ctx, X509 *x); void X509_STORE_CTX_free(X509_STORE_CTX *ctx); int X509_STORE_CTX_init(X509_STORE_CTX *ctx, X509_STORE *trust_store, X509 *target, STACK_OF(X509) *untrusted); +int X509_STORE_CTX_init_rpk(X509_STORE_CTX *ctx, X509_STORE *trust_store, + EVP_PKEY* rpk); void X509_STORE_CTX_set0_trusted_stack(X509_STORE_CTX *ctx, STACK_OF(X509) *sk); void X509_STORE_CTX_cleanup(X509_STORE_CTX *ctx); X509_STORE *X509_STORE_CTX_get0_store(const X509_STORE_CTX *ctx); X509 *X509_STORE_CTX_get0_cert(const X509_STORE_CTX *ctx); +EVP_PKEY *X509_STORE_CTX_get0_rpk(const X509_STORE_CTX *ctx); STACK_OF(X509)* X509_STORE_CTX_get0_untrusted(const X509_STORE_CTX *ctx); void X509_STORE_CTX_set0_untrusted(X509_STORE_CTX *ctx, STACK_OF(X509) *sk); void X509_STORE_CTX_set_verify_cb(X509_STORE_CTX *ctx, @@ -579,6 +584,8 @@ X509_STORE_CTX_verify_fn X509_STORE_CTX_get_verify(const X509_STORE_CTX *ctx); X509_STORE_CTX_get_issuer_fn X509_STORE_CTX_get_get_issuer(const X509_STORE_CTX *ctx); X509_STORE_CTX_check_issued_fn X509_STORE_CTX_get_check_issued(const X509_STORE_CTX *ctx); X509_STORE_CTX_check_revocation_fn X509_STORE_CTX_get_check_revocation(const X509_STORE_CTX *ctx); +void X509_STORE_CTX_set_get_crl(X509_STORE_CTX *ctx, + X509_STORE_CTX_get_crl_fn get_crl); X509_STORE_CTX_get_crl_fn X509_STORE_CTX_get_get_crl(const X509_STORE_CTX *ctx); X509_STORE_CTX_check_crl_fn X509_STORE_CTX_get_check_crl(const X509_STORE_CTX *ctx); X509_STORE_CTX_cert_crl_fn X509_STORE_CTX_get_cert_crl(const X509_STORE_CTX *ctx); @@ -600,7 +607,7 @@ X509_STORE_CTX_cleanup_fn X509_STORE_CTX_get_cleanup(const X509_STORE_CTX *ctx); # define X509_STORE_get1_crl X509_STORE_CTX_get1_crls #endif -X509_LOOKUP *X509_STORE_add_lookup(X509_STORE *v, X509_LOOKUP_METHOD *m); +X509_LOOKUP *X509_STORE_add_lookup(X509_STORE *xs, X509_LOOKUP_METHOD *m); X509_LOOKUP_METHOD *X509_LOOKUP_hash_dir(void); X509_LOOKUP_METHOD *X509_LOOKUP_file(void); X509_LOOKUP_METHOD *X509_LOOKUP_store(void); @@ -685,8 +692,8 @@ X509_LOOKUP_get_by_alias_fn X509_LOOKUP_meth_get_get_by_alias( const X509_LOOKUP_METHOD *method); -int X509_STORE_add_cert(X509_STORE *ctx, X509 *x); -int X509_STORE_add_crl(X509_STORE *ctx, X509_CRL *x); +int X509_STORE_add_cert(X509_STORE *xs, X509 *x); +int X509_STORE_add_crl(X509_STORE *xs, X509_CRL *x); int X509_STORE_CTX_get_by_subject(const X509_STORE_CTX *vs, X509_LOOKUP_TYPE type, @@ -730,23 +737,21 @@ void *X509_LOOKUP_get_method_data(const X509_LOOKUP *ctx); X509_STORE *X509_LOOKUP_get_store(const X509_LOOKUP *ctx); int X509_LOOKUP_shutdown(X509_LOOKUP *ctx); -int X509_STORE_load_file(X509_STORE *ctx, const char *file); -int X509_STORE_load_path(X509_STORE *ctx, const char *path); -int X509_STORE_load_store(X509_STORE *ctx, const char *store); -int X509_STORE_load_locations(X509_STORE *ctx, - const char *file, - const char *dir); -int X509_STORE_set_default_paths(X509_STORE *ctx); +int X509_STORE_load_file(X509_STORE *xs, const char *file); +int X509_STORE_load_path(X509_STORE *xs, const char *path); +int X509_STORE_load_store(X509_STORE *xs, const char *store); +int X509_STORE_load_locations(X509_STORE *s, const char *file, const char *dir); +int X509_STORE_set_default_paths(X509_STORE *xs); -int X509_STORE_load_file_ex(X509_STORE *ctx, const char *file, +int X509_STORE_load_file_ex(X509_STORE *xs, const char *file, OSSL_LIB_CTX *libctx, const char *propq); -int X509_STORE_load_store_ex(X509_STORE *ctx, const char *store, +int X509_STORE_load_store_ex(X509_STORE *xs, const char *store, OSSL_LIB_CTX *libctx, const char *propq); -int X509_STORE_load_locations_ex(X509_STORE *ctx, const char *file, - const char *dir, OSSL_LIB_CTX *libctx, - const char *propq); -int X509_STORE_set_default_paths_ex(X509_STORE *ctx, OSSL_LIB_CTX *libctx, - const char *propq); +int X509_STORE_load_locations_ex(X509_STORE *xs, + const char *file, const char *dir, + OSSL_LIB_CTX *libctx, const char *propq); +int X509_STORE_set_default_paths_ex(X509_STORE *xs, + OSSL_LIB_CTX *libctx, const char *propq); #define X509_STORE_CTX_get_ex_new_index(l, p, newf, dupf, freef) \ CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_X509_STORE_CTX, l, p, newf, dupf, freef) @@ -764,6 +769,7 @@ X509_STORE_CTX *X509_STORE_CTX_get0_parent_ctx(const X509_STORE_CTX *ctx); STACK_OF(X509) *X509_STORE_CTX_get0_chain(const X509_STORE_CTX *ctx); STACK_OF(X509) *X509_STORE_CTX_get1_chain(const X509_STORE_CTX *ctx); void X509_STORE_CTX_set_cert(X509_STORE_CTX *ctx, X509 *target); +void X509_STORE_CTX_set0_rpk(X509_STORE_CTX *ctx, EVP_PKEY *target); void X509_STORE_CTX_set0_verified_chain(X509_STORE_CTX *c, STACK_OF(X509) *sk); void X509_STORE_CTX_set0_crls(X509_STORE_CTX *ctx, STACK_OF(X509_CRL) *sk); int X509_STORE_CTX_set_purpose(X509_STORE_CTX *ctx, int purpose); @@ -773,6 +779,8 @@ int X509_STORE_CTX_purpose_inherit(X509_STORE_CTX *ctx, int def_purpose, void X509_STORE_CTX_set_flags(X509_STORE_CTX *ctx, unsigned long flags); void X509_STORE_CTX_set_time(X509_STORE_CTX *ctx, unsigned long flags, time_t t); +void X509_STORE_CTX_set_current_reasons(X509_STORE_CTX *ctx, + unsigned int current_reasons); X509_POLICY_TREE *X509_STORE_CTX_get0_policy_tree(const X509_STORE_CTX *ctx); int X509_STORE_CTX_get_explicit_policy(const X509_STORE_CTX *ctx); @@ -804,6 +812,7 @@ int X509_VERIFY_PARAM_clear_flags(X509_VERIFY_PARAM *param, unsigned long flags); unsigned long X509_VERIFY_PARAM_get_flags(const X509_VERIFY_PARAM *param); int X509_VERIFY_PARAM_set_purpose(X509_VERIFY_PARAM *param, int purpose); +int X509_VERIFY_PARAM_get_purpose(const X509_VERIFY_PARAM *param); int X509_VERIFY_PARAM_set_trust(X509_VERIFY_PARAM *param, int trust); void X509_VERIFY_PARAM_set_depth(X509_VERIFY_PARAM *param, int depth); void X509_VERIFY_PARAM_set_auth_level(X509_VERIFY_PARAM *param, int auth_level); diff --git a/deps/openssl/config/archs/BSD-x86_64/asm/include/openssl/x509v3.h b/deps/openssl/config/archs/BSD-x86_64/asm/include/openssl/x509v3.h index 20b67455f2061d..b8dabac35a4915 100644 --- a/deps/openssl/config/archs/BSD-x86_64/asm/include/openssl/x509v3.h +++ b/deps/openssl/config/archs/BSD-x86_64/asm/include/openssl/x509v3.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/x509v3.h.in * - * Copyright 1999-2023 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1999-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -25,6 +25,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -146,6 +149,11 @@ typedef struct BASIC_CONSTRAINTS_st { ASN1_INTEGER *pathlen; } BASIC_CONSTRAINTS; +typedef struct OSSL_BASIC_ATTR_CONSTRAINTS_st { + int authority; + ASN1_INTEGER *pathlen; +} OSSL_BASIC_ATTR_CONSTRAINTS; + typedef struct PKEY_USAGE_PERIOD_st { ASN1_GENERALIZEDTIME *notBefore; ASN1_GENERALIZEDTIME *notAfter; @@ -198,6 +206,8 @@ typedef struct ACCESS_DESCRIPTION_st { GENERAL_NAME *location; } ACCESS_DESCRIPTION; +int GENERAL_NAME_set1_X509_NAME(GENERAL_NAME **tgt, const X509_NAME *src); + SKM_DEFINE_STACK_OF_INTERNAL(ACCESS_DESCRIPTION, ACCESS_DESCRIPTION, ACCESS_DESCRIPTION) #define sk_ACCESS_DESCRIPTION_num(sk) OPENSSL_sk_num(ossl_check_const_ACCESS_DESCRIPTION_sk_type(sk)) #define sk_ACCESS_DESCRIPTION_value(sk, idx) ((ACCESS_DESCRIPTION *)OPENSSL_sk_value(ossl_check_const_ACCESS_DESCRIPTION_sk_type(sk), (idx))) @@ -294,6 +304,7 @@ typedef struct DIST_POINT_NAME_st { /* If relativename then this contains the full distribution point name */ X509_NAME *dpname; } DIST_POINT_NAME; +DECLARE_ASN1_DUP_FUNCTION(DIST_POINT_NAME) /* All existing reasons */ # define CRLDP_ALL_REASONS 0x807f @@ -659,15 +670,16 @@ struct ISSUING_DIST_POINT_st { # define EXFLAG_SAN_CRITICAL 0x80000 # define EXFLAG_NO_FINGERPRINT 0x100000 -# define KU_DIGITAL_SIGNATURE 0x0080 -# define KU_NON_REPUDIATION 0x0040 -# define KU_KEY_ENCIPHERMENT 0x0020 -# define KU_DATA_ENCIPHERMENT 0x0010 -# define KU_KEY_AGREEMENT 0x0008 -# define KU_KEY_CERT_SIGN 0x0004 -# define KU_CRL_SIGN 0x0002 -# define KU_ENCIPHER_ONLY 0x0001 -# define KU_DECIPHER_ONLY 0x8000 +/* https://datatracker.ietf.org/doc/html/rfc5280#section-4.2.1.3 */ +# define KU_DIGITAL_SIGNATURE X509v3_KU_DIGITAL_SIGNATURE +# define KU_NON_REPUDIATION X509v3_KU_NON_REPUDIATION +# define KU_KEY_ENCIPHERMENT X509v3_KU_KEY_ENCIPHERMENT +# define KU_DATA_ENCIPHERMENT X509v3_KU_DATA_ENCIPHERMENT +# define KU_KEY_AGREEMENT X509v3_KU_KEY_AGREEMENT +# define KU_KEY_CERT_SIGN X509v3_KU_KEY_CERT_SIGN +# define KU_CRL_SIGN X509v3_KU_CRL_SIGN +# define KU_ENCIPHER_ONLY X509v3_KU_ENCIPHER_ONLY +# define KU_DECIPHER_ONLY X509v3_KU_DECIPHER_ONLY # define NS_SSL_CLIENT 0x80 # define NS_SSL_SERVER 0x40 @@ -729,7 +741,7 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_PURPOSE, X509_PURPOSE, X509_PURPOSE) #define sk_X509_PURPOSE_set_cmp_func(sk, cmp) ((sk_X509_PURPOSE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_X509_PURPOSE_sk_type(sk), ossl_check_X509_PURPOSE_compfunc_type(cmp))) - +# define X509_PURPOSE_DEFAULT_ANY 0 # define X509_PURPOSE_SSL_CLIENT 1 # define X509_PURPOSE_SSL_SERVER 2 # define X509_PURPOSE_NS_SSL_SERVER 3 @@ -739,9 +751,10 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_PURPOSE, X509_PURPOSE, X509_PURPOSE) # define X509_PURPOSE_ANY 7 # define X509_PURPOSE_OCSP_HELPER 8 # define X509_PURPOSE_TIMESTAMP_SIGN 9 +# define X509_PURPOSE_CODE_SIGN 10 # define X509_PURPOSE_MIN 1 -# define X509_PURPOSE_MAX 9 +# define X509_PURPOSE_MAX 10 /* Flags for X509V3_EXT_print() */ @@ -767,6 +780,7 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_PURPOSE, X509_PURPOSE, X509_PURPOSE) # define X509V3_ADD_SILENT 0x10 DECLARE_ASN1_FUNCTIONS(BASIC_CONSTRAINTS) +DECLARE_ASN1_FUNCTIONS(OSSL_BASIC_ATTR_CONSTRAINTS) DECLARE_ASN1_FUNCTIONS(SXNET) DECLARE_ASN1_FUNCTIONS(SXNETID) @@ -976,7 +990,6 @@ int X509V3_extensions_print(BIO *out, const char *title, int X509_check_ca(X509 *x); int X509_check_purpose(X509 *x, int id, int ca); int X509_supported_extension(X509_EXTENSION *ex); -int X509_PURPOSE_set(int *p, int purpose); int X509_check_issued(X509 *issuer, X509 *subject); int X509_check_akid(const X509 *issuer, const AUTHORITY_KEYID *akid); void X509_set_proxy_flag(X509 *x); @@ -992,22 +1005,26 @@ const GENERAL_NAMES *X509_get0_authority_issuer(X509 *x); const ASN1_INTEGER *X509_get0_authority_serial(X509 *x); int X509_PURPOSE_get_count(void); -X509_PURPOSE *X509_PURPOSE_get0(int idx); +int X509_PURPOSE_get_unused_id(OSSL_LIB_CTX *libctx); int X509_PURPOSE_get_by_sname(const char *sname); int X509_PURPOSE_get_by_id(int id); int X509_PURPOSE_add(int id, int trust, int flags, int (*ck) (const X509_PURPOSE *, const X509 *, int), const char *name, const char *sname, void *arg); +void X509_PURPOSE_cleanup(void); + +X509_PURPOSE *X509_PURPOSE_get0(int idx); +int X509_PURPOSE_get_id(const X509_PURPOSE *); char *X509_PURPOSE_get0_name(const X509_PURPOSE *xp); char *X509_PURPOSE_get0_sname(const X509_PURPOSE *xp); int X509_PURPOSE_get_trust(const X509_PURPOSE *xp); -void X509_PURPOSE_cleanup(void); -int X509_PURPOSE_get_id(const X509_PURPOSE *); +int X509_PURPOSE_set(int *p, int purpose); STACK_OF(OPENSSL_STRING) *X509_get1_email(X509 *x); STACK_OF(OPENSSL_STRING) *X509_REQ_get1_email(X509_REQ *x); void X509_email_free(STACK_OF(OPENSSL_STRING) *sk); STACK_OF(OPENSSL_STRING) *X509_get1_ocsp(X509 *x); + /* Flags for X509_check_* functions */ /* @@ -1444,6 +1461,507 @@ const ASN1_PRINTABLESTRING *PROFESSION_INFO_get0_registrationNumber( void PROFESSION_INFO_set0_registrationNumber( PROFESSION_INFO *pi, ASN1_PRINTABLESTRING *rn); +int OSSL_GENERAL_NAMES_print(BIO *out, GENERAL_NAMES *gens, int indent); + +typedef STACK_OF(X509_ATTRIBUTE) OSSL_ATTRIBUTES_SYNTAX; +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTES_SYNTAX) + +typedef STACK_OF(USERNOTICE) OSSL_USER_NOTICE_SYNTAX; +DECLARE_ASN1_FUNCTIONS(OSSL_USER_NOTICE_SYNTAX) + +SKM_DEFINE_STACK_OF_INTERNAL(USERNOTICE, USERNOTICE, USERNOTICE) +#define sk_USERNOTICE_num(sk) OPENSSL_sk_num(ossl_check_const_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_value(sk, idx) ((USERNOTICE *)OPENSSL_sk_value(ossl_check_const_USERNOTICE_sk_type(sk), (idx))) +#define sk_USERNOTICE_new(cmp) ((STACK_OF(USERNOTICE) *)OPENSSL_sk_new(ossl_check_USERNOTICE_compfunc_type(cmp))) +#define sk_USERNOTICE_new_null() ((STACK_OF(USERNOTICE) *)OPENSSL_sk_new_null()) +#define sk_USERNOTICE_new_reserve(cmp, n) ((STACK_OF(USERNOTICE) *)OPENSSL_sk_new_reserve(ossl_check_USERNOTICE_compfunc_type(cmp), (n))) +#define sk_USERNOTICE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_USERNOTICE_sk_type(sk), (n)) +#define sk_USERNOTICE_free(sk) OPENSSL_sk_free(ossl_check_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_zero(sk) OPENSSL_sk_zero(ossl_check_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_delete(sk, i) ((USERNOTICE *)OPENSSL_sk_delete(ossl_check_USERNOTICE_sk_type(sk), (i))) +#define sk_USERNOTICE_delete_ptr(sk, ptr) ((USERNOTICE *)OPENSSL_sk_delete_ptr(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr))) +#define sk_USERNOTICE_push(sk, ptr) OPENSSL_sk_push(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr)) +#define sk_USERNOTICE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr)) +#define sk_USERNOTICE_pop(sk) ((USERNOTICE *)OPENSSL_sk_pop(ossl_check_USERNOTICE_sk_type(sk))) +#define sk_USERNOTICE_shift(sk) ((USERNOTICE *)OPENSSL_sk_shift(ossl_check_USERNOTICE_sk_type(sk))) +#define sk_USERNOTICE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_USERNOTICE_sk_type(sk),ossl_check_USERNOTICE_freefunc_type(freefunc)) +#define sk_USERNOTICE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr), (idx)) +#define sk_USERNOTICE_set(sk, idx, ptr) ((USERNOTICE *)OPENSSL_sk_set(ossl_check_USERNOTICE_sk_type(sk), (idx), ossl_check_USERNOTICE_type(ptr))) +#define sk_USERNOTICE_find(sk, ptr) OPENSSL_sk_find(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr)) +#define sk_USERNOTICE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr)) +#define sk_USERNOTICE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr), pnum) +#define sk_USERNOTICE_sort(sk) OPENSSL_sk_sort(ossl_check_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_dup(sk) ((STACK_OF(USERNOTICE) *)OPENSSL_sk_dup(ossl_check_const_USERNOTICE_sk_type(sk))) +#define sk_USERNOTICE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(USERNOTICE) *)OPENSSL_sk_deep_copy(ossl_check_const_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_copyfunc_type(copyfunc), ossl_check_USERNOTICE_freefunc_type(freefunc))) +#define sk_USERNOTICE_set_cmp_func(sk, cmp) ((sk_USERNOTICE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_compfunc_type(cmp))) + + +typedef struct OSSL_ROLE_SPEC_CERT_ID_st { + GENERAL_NAME *roleName; + GENERAL_NAME *roleCertIssuer; + ASN1_INTEGER *roleCertSerialNumber; + GENERAL_NAMES *roleCertLocator; +} OSSL_ROLE_SPEC_CERT_ID; + +DECLARE_ASN1_FUNCTIONS(OSSL_ROLE_SPEC_CERT_ID) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ROLE_SPEC_CERT_ID, OSSL_ROLE_SPEC_CERT_ID, OSSL_ROLE_SPEC_CERT_ID) +#define sk_OSSL_ROLE_SPEC_CERT_ID_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_value(sk, idx) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_value(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), (idx))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_new(cmp) ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_new(ossl_check_OSSL_ROLE_SPEC_CERT_ID_compfunc_type(cmp))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_new_null() ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ROLE_SPEC_CERT_ID_new_reserve(cmp, n) ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ROLE_SPEC_CERT_ID_compfunc_type(cmp), (n))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), (n)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_delete(sk, i) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_delete(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), (i))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_delete_ptr(sk, ptr) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_pop(sk) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_pop(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_shift(sk) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_shift(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk),ossl_check_OSSL_ROLE_SPEC_CERT_ID_freefunc_type(freefunc)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr), (idx)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_set(sk, idx, ptr) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_set(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), (idx), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr), pnum) +#define sk_OSSL_ROLE_SPEC_CERT_ID_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_dup(sk) ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_copyfunc_type(copyfunc), ossl_check_OSSL_ROLE_SPEC_CERT_ID_freefunc_type(freefunc))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_set_cmp_func(sk, cmp) ((sk_OSSL_ROLE_SPEC_CERT_ID_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_compfunc_type(cmp))) + + +typedef STACK_OF(OSSL_ROLE_SPEC_CERT_ID) OSSL_ROLE_SPEC_CERT_ID_SYNTAX; + +DECLARE_ASN1_FUNCTIONS(OSSL_ROLE_SPEC_CERT_ID_SYNTAX) +typedef struct OSSL_HASH_st { + X509_ALGOR *algorithmIdentifier; + ASN1_BIT_STRING *hashValue; +} OSSL_HASH; + +typedef struct OSSL_INFO_SYNTAX_POINTER_st { + GENERAL_NAMES *name; + OSSL_HASH *hash; +} OSSL_INFO_SYNTAX_POINTER; + +# define OSSL_INFO_SYNTAX_TYPE_CONTENT 0 +# define OSSL_INFO_SYNTAX_TYPE_POINTER 1 + +typedef struct OSSL_INFO_SYNTAX_st { + int type; + union { + ASN1_STRING *content; + OSSL_INFO_SYNTAX_POINTER *pointer; + } choice; +} OSSL_INFO_SYNTAX; + +typedef struct OSSL_PRIVILEGE_POLICY_ID_st { + ASN1_OBJECT *privilegePolicy; + OSSL_INFO_SYNTAX *privPolSyntax; +} OSSL_PRIVILEGE_POLICY_ID; + +typedef struct OSSL_ATTRIBUTE_DESCRIPTOR_st { + ASN1_OBJECT *identifier; + ASN1_STRING *attributeSyntax; + ASN1_UTF8STRING *name; + ASN1_UTF8STRING *description; + OSSL_PRIVILEGE_POLICY_ID *dominationRule; +} OSSL_ATTRIBUTE_DESCRIPTOR; + +DECLARE_ASN1_FUNCTIONS(OSSL_HASH) +DECLARE_ASN1_FUNCTIONS(OSSL_INFO_SYNTAX) +DECLARE_ASN1_FUNCTIONS(OSSL_INFO_SYNTAX_POINTER) +DECLARE_ASN1_FUNCTIONS(OSSL_PRIVILEGE_POLICY_ID) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_DESCRIPTOR) + +typedef struct OSSL_TIME_SPEC_ABSOLUTE_st { + ASN1_GENERALIZEDTIME *startTime; + ASN1_GENERALIZEDTIME *endTime; +} OSSL_TIME_SPEC_ABSOLUTE; + +typedef struct OSSL_DAY_TIME_st { + ASN1_INTEGER *hour; + ASN1_INTEGER *minute; + ASN1_INTEGER *second; +} OSSL_DAY_TIME; + +typedef struct OSSL_DAY_TIME_BAND_st { + OSSL_DAY_TIME *startDayTime; + OSSL_DAY_TIME *endDayTime; +} OSSL_DAY_TIME_BAND; + +# define OSSL_NAMED_DAY_TYPE_INT 0 +# define OSSL_NAMED_DAY_TYPE_BIT 1 +# define OSSL_NAMED_DAY_INT_SUN 1 +# define OSSL_NAMED_DAY_INT_MON 2 +# define OSSL_NAMED_DAY_INT_TUE 3 +# define OSSL_NAMED_DAY_INT_WED 4 +# define OSSL_NAMED_DAY_INT_THU 5 +# define OSSL_NAMED_DAY_INT_FRI 6 +# define OSSL_NAMED_DAY_INT_SAT 7 +# define OSSL_NAMED_DAY_BIT_SUN 0 +# define OSSL_NAMED_DAY_BIT_MON 1 +# define OSSL_NAMED_DAY_BIT_TUE 2 +# define OSSL_NAMED_DAY_BIT_WED 3 +# define OSSL_NAMED_DAY_BIT_THU 4 +# define OSSL_NAMED_DAY_BIT_FRI 5 +# define OSSL_NAMED_DAY_BIT_SAT 6 + +typedef struct OSSL_NAMED_DAY_st { + int type; + union { + ASN1_INTEGER *intNamedDays; + ASN1_BIT_STRING *bitNamedDays; + } choice; +} OSSL_NAMED_DAY; + +# define OSSL_TIME_SPEC_X_DAY_OF_FIRST 0 +# define OSSL_TIME_SPEC_X_DAY_OF_SECOND 1 +# define OSSL_TIME_SPEC_X_DAY_OF_THIRD 2 +# define OSSL_TIME_SPEC_X_DAY_OF_FOURTH 3 +# define OSSL_TIME_SPEC_X_DAY_OF_FIFTH 4 + +typedef struct OSSL_TIME_SPEC_X_DAY_OF_st { + int type; + union { + OSSL_NAMED_DAY *first; + OSSL_NAMED_DAY *second; + OSSL_NAMED_DAY *third; + OSSL_NAMED_DAY *fourth; + OSSL_NAMED_DAY *fifth; + } choice; +} OSSL_TIME_SPEC_X_DAY_OF; + +# define OSSL_TIME_SPEC_DAY_TYPE_INT 0 +# define OSSL_TIME_SPEC_DAY_TYPE_BIT 1 +# define OSSL_TIME_SPEC_DAY_TYPE_DAY_OF 2 +# define OSSL_TIME_SPEC_DAY_BIT_SUN 0 +# define OSSL_TIME_SPEC_DAY_BIT_MON 1 +# define OSSL_TIME_SPEC_DAY_BIT_TUE 2 +# define OSSL_TIME_SPEC_DAY_BIT_WED 3 +# define OSSL_TIME_SPEC_DAY_BIT_THU 4 +# define OSSL_TIME_SPEC_DAY_BIT_FRI 5 +# define OSSL_TIME_SPEC_DAY_BIT_SAT 6 +# define OSSL_TIME_SPEC_DAY_INT_SUN 1 +# define OSSL_TIME_SPEC_DAY_INT_MON 2 +# define OSSL_TIME_SPEC_DAY_INT_TUE 3 +# define OSSL_TIME_SPEC_DAY_INT_WED 4 +# define OSSL_TIME_SPEC_DAY_INT_THU 5 +# define OSSL_TIME_SPEC_DAY_INT_FRI 6 +# define OSSL_TIME_SPEC_DAY_INT_SAT 7 + +typedef struct OSSL_TIME_SPEC_DAY_st { + int type; + union { + STACK_OF(ASN1_INTEGER) *intDay; + ASN1_BIT_STRING *bitDay; + OSSL_TIME_SPEC_X_DAY_OF *dayOf; + } choice; +} OSSL_TIME_SPEC_DAY; + +# define OSSL_TIME_SPEC_WEEKS_TYPE_ALL 0 +# define OSSL_TIME_SPEC_WEEKS_TYPE_INT 1 +# define OSSL_TIME_SPEC_WEEKS_TYPE_BIT 2 +# define OSSL_TIME_SPEC_BIT_WEEKS_1 0 +# define OSSL_TIME_SPEC_BIT_WEEKS_2 1 +# define OSSL_TIME_SPEC_BIT_WEEKS_3 2 +# define OSSL_TIME_SPEC_BIT_WEEKS_4 3 +# define OSSL_TIME_SPEC_BIT_WEEKS_5 4 + +typedef struct OSSL_TIME_SPEC_WEEKS_st { + int type; + union { + ASN1_NULL *allWeeks; + STACK_OF(ASN1_INTEGER) *intWeek; + ASN1_BIT_STRING *bitWeek; + } choice; +} OSSL_TIME_SPEC_WEEKS; + +# define OSSL_TIME_SPEC_MONTH_TYPE_ALL 0 +# define OSSL_TIME_SPEC_MONTH_TYPE_INT 1 +# define OSSL_TIME_SPEC_MONTH_TYPE_BIT 2 +# define OSSL_TIME_SPEC_INT_MONTH_JAN 1 +# define OSSL_TIME_SPEC_INT_MONTH_FEB 2 +# define OSSL_TIME_SPEC_INT_MONTH_MAR 3 +# define OSSL_TIME_SPEC_INT_MONTH_APR 4 +# define OSSL_TIME_SPEC_INT_MONTH_MAY 5 +# define OSSL_TIME_SPEC_INT_MONTH_JUN 6 +# define OSSL_TIME_SPEC_INT_MONTH_JUL 7 +# define OSSL_TIME_SPEC_INT_MONTH_AUG 8 +# define OSSL_TIME_SPEC_INT_MONTH_SEP 9 +# define OSSL_TIME_SPEC_INT_MONTH_OCT 10 +# define OSSL_TIME_SPEC_INT_MONTH_NOV 11 +# define OSSL_TIME_SPEC_INT_MONTH_DEC 12 +# define OSSL_TIME_SPEC_BIT_MONTH_JAN 0 +# define OSSL_TIME_SPEC_BIT_MONTH_FEB 1 +# define OSSL_TIME_SPEC_BIT_MONTH_MAR 2 +# define OSSL_TIME_SPEC_BIT_MONTH_APR 3 +# define OSSL_TIME_SPEC_BIT_MONTH_MAY 4 +# define OSSL_TIME_SPEC_BIT_MONTH_JUN 5 +# define OSSL_TIME_SPEC_BIT_MONTH_JUL 6 +# define OSSL_TIME_SPEC_BIT_MONTH_AUG 7 +# define OSSL_TIME_SPEC_BIT_MONTH_SEP 8 +# define OSSL_TIME_SPEC_BIT_MONTH_OCT 9 +# define OSSL_TIME_SPEC_BIT_MONTH_NOV 10 +# define OSSL_TIME_SPEC_BIT_MONTH_DEC 11 + +typedef struct OSSL_TIME_SPEC_MONTH_st { + int type; + union { + ASN1_NULL *allMonths; + STACK_OF(ASN1_INTEGER) *intMonth; + ASN1_BIT_STRING *bitMonth; + } choice; +} OSSL_TIME_SPEC_MONTH; + +typedef struct OSSL_TIME_PERIOD_st { + STACK_OF(OSSL_DAY_TIME_BAND) *timesOfDay; + OSSL_TIME_SPEC_DAY *days; + OSSL_TIME_SPEC_WEEKS *weeks; + OSSL_TIME_SPEC_MONTH *months; + STACK_OF(ASN1_INTEGER) *years; +} OSSL_TIME_PERIOD; + +# define OSSL_TIME_SPEC_TIME_TYPE_ABSOLUTE 0 +# define OSSL_TIME_SPEC_TIME_TYPE_PERIODIC 1 + +typedef struct OSSL_TIME_SPEC_TIME_st { + int type; + union { + OSSL_TIME_SPEC_ABSOLUTE *absolute; + STACK_OF(OSSL_TIME_PERIOD) *periodic; + } choice; +} OSSL_TIME_SPEC_TIME; + +typedef struct OSSL_TIME_SPEC_st { + OSSL_TIME_SPEC_TIME *time; + ASN1_BOOLEAN notThisTime; + ASN1_INTEGER *timeZone; +} OSSL_TIME_SPEC; + +DECLARE_ASN1_FUNCTIONS(OSSL_DAY_TIME) +DECLARE_ASN1_FUNCTIONS(OSSL_DAY_TIME_BAND) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_DAY) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_WEEKS) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_MONTH) +DECLARE_ASN1_FUNCTIONS(OSSL_NAMED_DAY) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_X_DAY_OF) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_ABSOLUTE) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_TIME) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_PERIOD) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_TIME_PERIOD, OSSL_TIME_PERIOD, OSSL_TIME_PERIOD) +#define sk_OSSL_TIME_PERIOD_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_value(sk, idx) ((OSSL_TIME_PERIOD *)OPENSSL_sk_value(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk), (idx))) +#define sk_OSSL_TIME_PERIOD_new(cmp) ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_new(ossl_check_OSSL_TIME_PERIOD_compfunc_type(cmp))) +#define sk_OSSL_TIME_PERIOD_new_null() ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_new_null()) +#define sk_OSSL_TIME_PERIOD_new_reserve(cmp, n) ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_TIME_PERIOD_compfunc_type(cmp), (n))) +#define sk_OSSL_TIME_PERIOD_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), (n)) +#define sk_OSSL_TIME_PERIOD_free(sk) OPENSSL_sk_free(ossl_check_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_delete(sk, i) ((OSSL_TIME_PERIOD *)OPENSSL_sk_delete(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), (i))) +#define sk_OSSL_TIME_PERIOD_delete_ptr(sk, ptr) ((OSSL_TIME_PERIOD *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr))) +#define sk_OSSL_TIME_PERIOD_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr)) +#define sk_OSSL_TIME_PERIOD_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr)) +#define sk_OSSL_TIME_PERIOD_pop(sk) ((OSSL_TIME_PERIOD *)OPENSSL_sk_pop(ossl_check_OSSL_TIME_PERIOD_sk_type(sk))) +#define sk_OSSL_TIME_PERIOD_shift(sk) ((OSSL_TIME_PERIOD *)OPENSSL_sk_shift(ossl_check_OSSL_TIME_PERIOD_sk_type(sk))) +#define sk_OSSL_TIME_PERIOD_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_TIME_PERIOD_sk_type(sk),ossl_check_OSSL_TIME_PERIOD_freefunc_type(freefunc)) +#define sk_OSSL_TIME_PERIOD_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr), (idx)) +#define sk_OSSL_TIME_PERIOD_set(sk, idx, ptr) ((OSSL_TIME_PERIOD *)OPENSSL_sk_set(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), (idx), ossl_check_OSSL_TIME_PERIOD_type(ptr))) +#define sk_OSSL_TIME_PERIOD_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr)) +#define sk_OSSL_TIME_PERIOD_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr)) +#define sk_OSSL_TIME_PERIOD_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr), pnum) +#define sk_OSSL_TIME_PERIOD_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_dup(sk) ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_dup(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk))) +#define sk_OSSL_TIME_PERIOD_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_copyfunc_type(copyfunc), ossl_check_OSSL_TIME_PERIOD_freefunc_type(freefunc))) +#define sk_OSSL_TIME_PERIOD_set_cmp_func(sk, cmp) ((sk_OSSL_TIME_PERIOD_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_compfunc_type(cmp))) + + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_DAY_TIME_BAND, OSSL_DAY_TIME_BAND, OSSL_DAY_TIME_BAND) +#define sk_OSSL_DAY_TIME_BAND_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_value(sk, idx) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_value(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk), (idx))) +#define sk_OSSL_DAY_TIME_BAND_new(cmp) ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_new(ossl_check_OSSL_DAY_TIME_BAND_compfunc_type(cmp))) +#define sk_OSSL_DAY_TIME_BAND_new_null() ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_new_null()) +#define sk_OSSL_DAY_TIME_BAND_new_reserve(cmp, n) ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_DAY_TIME_BAND_compfunc_type(cmp), (n))) +#define sk_OSSL_DAY_TIME_BAND_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), (n)) +#define sk_OSSL_DAY_TIME_BAND_free(sk) OPENSSL_sk_free(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_delete(sk, i) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_delete(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), (i))) +#define sk_OSSL_DAY_TIME_BAND_delete_ptr(sk, ptr) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr))) +#define sk_OSSL_DAY_TIME_BAND_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr)) +#define sk_OSSL_DAY_TIME_BAND_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr)) +#define sk_OSSL_DAY_TIME_BAND_pop(sk) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_pop(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk))) +#define sk_OSSL_DAY_TIME_BAND_shift(sk) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_shift(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk))) +#define sk_OSSL_DAY_TIME_BAND_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk),ossl_check_OSSL_DAY_TIME_BAND_freefunc_type(freefunc)) +#define sk_OSSL_DAY_TIME_BAND_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr), (idx)) +#define sk_OSSL_DAY_TIME_BAND_set(sk, idx, ptr) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_set(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), (idx), ossl_check_OSSL_DAY_TIME_BAND_type(ptr))) +#define sk_OSSL_DAY_TIME_BAND_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr)) +#define sk_OSSL_DAY_TIME_BAND_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr)) +#define sk_OSSL_DAY_TIME_BAND_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr), pnum) +#define sk_OSSL_DAY_TIME_BAND_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_dup(sk) ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_dup(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk))) +#define sk_OSSL_DAY_TIME_BAND_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_copyfunc_type(copyfunc), ossl_check_OSSL_DAY_TIME_BAND_freefunc_type(freefunc))) +#define sk_OSSL_DAY_TIME_BAND_set_cmp_func(sk, cmp) ((sk_OSSL_DAY_TIME_BAND_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_compfunc_type(cmp))) + + +/* Attribute Type and Value */ +typedef struct atav_st { + ASN1_OBJECT *type; + ASN1_TYPE *value; +} OSSL_ATAV; + +typedef struct ATTRIBUTE_TYPE_MAPPING_st { + ASN1_OBJECT *local; + ASN1_OBJECT *remote; +} OSSL_ATTRIBUTE_TYPE_MAPPING; + +typedef struct ATTRIBUTE_VALUE_MAPPING_st { + OSSL_ATAV *local; + OSSL_ATAV *remote; +} OSSL_ATTRIBUTE_VALUE_MAPPING; + +# define OSSL_ATTR_MAP_TYPE 0 +# define OSSL_ATTR_MAP_VALUE 1 + +typedef struct ATTRIBUTE_MAPPING_st { + int type; + union { + OSSL_ATTRIBUTE_TYPE_MAPPING *typeMappings; + OSSL_ATTRIBUTE_VALUE_MAPPING *typeValueMappings; + } choice; +} OSSL_ATTRIBUTE_MAPPING; + +typedef STACK_OF(OSSL_ATTRIBUTE_MAPPING) OSSL_ATTRIBUTE_MAPPINGS; +DECLARE_ASN1_FUNCTIONS(OSSL_ATAV) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_TYPE_MAPPING) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_VALUE_MAPPING) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_MAPPING) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_MAPPINGS) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ATTRIBUTE_MAPPING, OSSL_ATTRIBUTE_MAPPING, OSSL_ATTRIBUTE_MAPPING) +#define sk_OSSL_ATTRIBUTE_MAPPING_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_value(sk, idx) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_value(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), (idx))) +#define sk_OSSL_ATTRIBUTE_MAPPING_new(cmp) ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_new(ossl_check_OSSL_ATTRIBUTE_MAPPING_compfunc_type(cmp))) +#define sk_OSSL_ATTRIBUTE_MAPPING_new_null() ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ATTRIBUTE_MAPPING_new_reserve(cmp, n) ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ATTRIBUTE_MAPPING_compfunc_type(cmp), (n))) +#define sk_OSSL_ATTRIBUTE_MAPPING_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), (n)) +#define sk_OSSL_ATTRIBUTE_MAPPING_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_delete(sk, i) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_delete(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), (i))) +#define sk_OSSL_ATTRIBUTE_MAPPING_delete_ptr(sk, ptr) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr))) +#define sk_OSSL_ATTRIBUTE_MAPPING_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr)) +#define sk_OSSL_ATTRIBUTE_MAPPING_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr)) +#define sk_OSSL_ATTRIBUTE_MAPPING_pop(sk) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_pop(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk))) +#define sk_OSSL_ATTRIBUTE_MAPPING_shift(sk) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_shift(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk))) +#define sk_OSSL_ATTRIBUTE_MAPPING_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk),ossl_check_OSSL_ATTRIBUTE_MAPPING_freefunc_type(freefunc)) +#define sk_OSSL_ATTRIBUTE_MAPPING_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr), (idx)) +#define sk_OSSL_ATTRIBUTE_MAPPING_set(sk, idx, ptr) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_set(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), (idx), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr))) +#define sk_OSSL_ATTRIBUTE_MAPPING_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr)) +#define sk_OSSL_ATTRIBUTE_MAPPING_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr)) +#define sk_OSSL_ATTRIBUTE_MAPPING_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr), pnum) +#define sk_OSSL_ATTRIBUTE_MAPPING_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_dup(sk) ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk))) +#define sk_OSSL_ATTRIBUTE_MAPPING_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_copyfunc_type(copyfunc), ossl_check_OSSL_ATTRIBUTE_MAPPING_freefunc_type(freefunc))) +#define sk_OSSL_ATTRIBUTE_MAPPING_set_cmp_func(sk, cmp) ((sk_OSSL_ATTRIBUTE_MAPPING_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_compfunc_type(cmp))) + + +# define OSSL_AAA_ATTRIBUTE_TYPE 0 +# define OSSL_AAA_ATTRIBUTE_VALUES 1 + +typedef struct ALLOWED_ATTRIBUTES_CHOICE_st { + int type; + union { + ASN1_OBJECT *attributeType; + X509_ATTRIBUTE *attributeTypeandValues; + } choice; +} OSSL_ALLOWED_ATTRIBUTES_CHOICE; + +typedef struct ALLOWED_ATTRIBUTES_ITEM_st { + STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *attributes; + GENERAL_NAME *holderDomain; +} OSSL_ALLOWED_ATTRIBUTES_ITEM; + +typedef STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) OSSL_ALLOWED_ATTRIBUTES_SYNTAX; + +DECLARE_ASN1_FUNCTIONS(OSSL_ALLOWED_ATTRIBUTES_CHOICE) +DECLARE_ASN1_FUNCTIONS(OSSL_ALLOWED_ATTRIBUTES_ITEM) +DECLARE_ASN1_FUNCTIONS(OSSL_ALLOWED_ATTRIBUTES_SYNTAX) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ALLOWED_ATTRIBUTES_CHOICE, OSSL_ALLOWED_ATTRIBUTES_CHOICE, OSSL_ALLOWED_ATTRIBUTES_CHOICE) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_value(sk, idx) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_value(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), (idx))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_new(cmp) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_new(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_compfunc_type(cmp))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_new_null() ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_new_reserve(cmp, n) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_compfunc_type(cmp), (n))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), (n)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_delete(sk, i) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_delete(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), (i))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_delete_ptr(sk, ptr) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_pop(sk) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_pop(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_shift(sk) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_shift(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk),ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_freefunc_type(freefunc)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr), (idx)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_set(sk, idx, ptr) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_set(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), (idx), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr), pnum) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_dup(sk) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_copyfunc_type(copyfunc), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_freefunc_type(freefunc))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_set_cmp_func(sk, cmp) ((sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_compfunc_type(cmp))) + + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ALLOWED_ATTRIBUTES_ITEM, OSSL_ALLOWED_ATTRIBUTES_ITEM, OSSL_ALLOWED_ATTRIBUTES_ITEM) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_value(sk, idx) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_value(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), (idx))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_new(cmp) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_new(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_compfunc_type(cmp))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_new_null() ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_new_reserve(cmp, n) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_compfunc_type(cmp), (n))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), (n)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_delete(sk, i) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_delete(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), (i))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_delete_ptr(sk, ptr) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_pop(sk) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_pop(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_shift(sk) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_shift(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk),ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_freefunc_type(freefunc)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr), (idx)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_set(sk, idx, ptr) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_set(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), (idx), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr), pnum) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_dup(sk) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_copyfunc_type(copyfunc), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_freefunc_type(freefunc))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_set_cmp_func(sk, cmp) ((sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_compfunc_type(cmp))) + + +typedef struct AA_DIST_POINT_st { + DIST_POINT_NAME *distpoint; + ASN1_BIT_STRING *reasons; + int dp_reasons; + ASN1_BOOLEAN indirectCRL; + ASN1_BOOLEAN containsUserAttributeCerts; + ASN1_BOOLEAN containsAACerts; + ASN1_BOOLEAN containsSOAPublicKeyCerts; +} OSSL_AA_DIST_POINT; + +DECLARE_ASN1_FUNCTIONS(OSSL_AA_DIST_POINT) + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/BSD-x86_64/asm/include/progs.h b/deps/openssl/config/archs/BSD-x86_64/asm/include/progs.h index be55f61503d405..1b62ec37dec130 100644 --- a/deps/openssl/config/archs/BSD-x86_64/asm/include/progs.h +++ b/deps/openssl/config/archs/BSD-x86_64/asm/include/progs.h @@ -56,6 +56,7 @@ extern int s_client_main(int argc, char *argv[]); extern int s_server_main(int argc, char *argv[]); extern int s_time_main(int argc, char *argv[]); extern int sess_id_main(int argc, char *argv[]); +extern int skeyutl_main(int argc, char *argv[]); extern int smime_main(int argc, char *argv[]); extern int speed_main(int argc, char *argv[]); extern int spkac_main(int argc, char *argv[]); @@ -110,6 +111,7 @@ extern const OPTIONS s_client_options[]; extern const OPTIONS s_server_options[]; extern const OPTIONS s_time_options[]; extern const OPTIONS sess_id_options[]; +extern const OPTIONS skeyutl_options[]; extern const OPTIONS smime_options[]; extern const OPTIONS speed_options[]; extern const OPTIONS spkac_options[]; diff --git a/deps/openssl/config/archs/BSD-x86_64/asm/openssl-cl.gypi b/deps/openssl/config/archs/BSD-x86_64/asm/openssl-cl.gypi index bfe296a44f604b..5bba9b3227268a 100644 --- a/deps/openssl/config/archs/BSD-x86_64/asm/openssl-cl.gypi +++ b/deps/openssl/config/archs/BSD-x86_64/asm/openssl-cl.gypi @@ -83,6 +83,7 @@ 'openssl/apps/s_server.c', 'openssl/apps/s_time.c', 'openssl/apps/sess_id.c', + 'openssl/apps/skeyutl.c', 'openssl/apps/smime.c', 'openssl/apps/speed.c', 'openssl/apps/spkac.c', @@ -98,12 +99,14 @@ 'openssl/apps/lib/app_rand.c', 'openssl/apps/lib/app_x509.c', 'openssl/apps/lib/apps.c', + 'openssl/apps/lib/apps_opt_printf.c', 'openssl/apps/lib/apps_ui.c', 'openssl/apps/lib/columns.c', 'openssl/apps/lib/engine.c', 'openssl/apps/lib/engine_loader.c', 'openssl/apps/lib/fmt.c', 'openssl/apps/lib/http_server.c', + 'openssl/apps/lib/log.c', 'openssl/apps/lib/names.c', 'openssl/apps/lib/opt.c', 'openssl/apps/lib/s_cb.c', diff --git a/deps/openssl/config/archs/BSD-x86_64/asm/openssl-fips.gypi b/deps/openssl/config/archs/BSD-x86_64/asm/openssl-fips.gypi index e98affa3c77d90..cfcc959545aff6 100644 --- a/deps/openssl/config/archs/BSD-x86_64/asm/openssl-fips.gypi +++ b/deps/openssl/config/archs/BSD-x86_64/asm/openssl-fips.gypi @@ -101,14 +101,15 @@ 'openssl/crypto/evp/kem.c', 'openssl/crypto/evp/keymgmt_lib.c', 'openssl/crypto/evp/keymgmt_meth.c', - 'openssl/crypto/evp/m_sigver.c', 'openssl/crypto/evp/mac_lib.c', 'openssl/crypto/evp/mac_meth.c', 'openssl/crypto/evp/p_lib.c', 'openssl/crypto/evp/pmeth_check.c', 'openssl/crypto/evp/pmeth_gn.c', 'openssl/crypto/evp/pmeth_lib.c', + 'openssl/crypto/evp/s_lib.c', 'openssl/crypto/evp/signature.c', + 'openssl/crypto/evp/skeymgmt_meth.c', 'openssl/crypto/ffc/ffc_backend.c', 'openssl/crypto/ffc/ffc_dh.c', 'openssl/crypto/ffc/ffc_key_generate.c', @@ -116,6 +117,8 @@ 'openssl/crypto/ffc/ffc_params.c', 'openssl/crypto/ffc/ffc_params_generate.c', 'openssl/crypto/ffc/ffc_params_validate.c', + 'openssl/crypto/hashtable/hashfunc.c', + 'openssl/crypto/hashtable/hashtable.c', 'openssl/crypto/hmac/hmac.c', 'openssl/crypto/lhash/lhash.c', 'openssl/crypto/asn1_dsa.c', @@ -145,6 +148,16 @@ 'openssl/crypto/threads_none.c', 'openssl/crypto/threads_pthread.c', 'openssl/crypto/threads_win.c', + 'openssl/crypto/time.c', + 'openssl/crypto/ml_dsa/ml_dsa_encoders.c', + 'openssl/crypto/ml_dsa/ml_dsa_key.c', + 'openssl/crypto/ml_dsa/ml_dsa_key_compress.c', + 'openssl/crypto/ml_dsa/ml_dsa_matrix.c', + 'openssl/crypto/ml_dsa/ml_dsa_ntt.c', + 'openssl/crypto/ml_dsa/ml_dsa_params.c', + 'openssl/crypto/ml_dsa/ml_dsa_sample.c', + 'openssl/crypto/ml_dsa/ml_dsa_sign.c', + 'openssl/crypto/ml_kem/ml_kem.c', 'openssl/crypto/modes/cbc128.c', 'openssl/crypto/modes/ccm128.c', 'openssl/crypto/modes/cfb128.c', @@ -153,6 +166,7 @@ 'openssl/crypto/modes/ofb128.c', 'openssl/crypto/modes/wrap128.c', 'openssl/crypto/modes/xts128.c', + 'openssl/crypto/modes/xts128gb.c', 'openssl/crypto/property/defn_cache.c', 'openssl/crypto/property/property.c', 'openssl/crypto/property/property_parse.c', @@ -180,7 +194,23 @@ 'openssl/crypto/sha/sha256.c', 'openssl/crypto/sha/sha3.c', 'openssl/crypto/sha/sha512.c', + 'openssl/crypto/slh_dsa/slh_adrs.c', + 'openssl/crypto/slh_dsa/slh_dsa.c', + 'openssl/crypto/slh_dsa/slh_dsa_hash_ctx.c', + 'openssl/crypto/slh_dsa/slh_dsa_key.c', + 'openssl/crypto/slh_dsa/slh_fors.c', + 'openssl/crypto/slh_dsa/slh_hash.c', + 'openssl/crypto/slh_dsa/slh_hypertree.c', + 'openssl/crypto/slh_dsa/slh_params.c', + 'openssl/crypto/slh_dsa/slh_wots.c', + 'openssl/crypto/slh_dsa/slh_xmss.c', 'openssl/crypto/stack/stack.c', + 'openssl/crypto/thread/arch/thread_none.c', + 'openssl/crypto/thread/arch/thread_posix.c', + 'openssl/crypto/thread/arch/thread_win.c', + 'openssl/crypto/thread/api.c', + 'openssl/crypto/thread/arch.c', + 'openssl/crypto/thread/internal.c', 'openssl/providers/common/der/der_rsa_sig.c', 'openssl/providers/common/bio_prov.c', 'openssl/providers/common/capabilities.c', @@ -189,6 +219,7 @@ 'openssl/providers/common/provider_util.c', 'openssl/providers/common/securitycheck.c', 'openssl/providers/common/securitycheck_fips.c', + 'openssl/providers/fips/fipsindicator.c', 'openssl/providers/fips/fipsprov.c', 'openssl/providers/fips/self_test.c', 'openssl/providers/fips/self_test_kats.c', @@ -226,6 +257,8 @@ 'openssl/providers/implementations/kdfs/sskdf.c', 'openssl/providers/implementations/kdfs/tls1_prf.c', 'openssl/providers/implementations/kdfs/x942kdf.c', + 'openssl/providers/implementations/kem/ml_kem_kem.c', + 'openssl/providers/implementations/kem/mlx_kem.c', 'openssl/providers/implementations/kem/rsa_kem.c', 'openssl/providers/implementations/keymgmt/dh_kmgmt.c', 'openssl/providers/implementations/keymgmt/dsa_kmgmt.c', @@ -233,29 +266,39 @@ 'openssl/providers/implementations/keymgmt/ecx_kmgmt.c', 'openssl/providers/implementations/keymgmt/kdf_legacy_kmgmt.c', 'openssl/providers/implementations/keymgmt/mac_legacy_kmgmt.c', + 'openssl/providers/implementations/keymgmt/ml_dsa_kmgmt.c', + 'openssl/providers/implementations/keymgmt/ml_kem_kmgmt.c', + 'openssl/providers/implementations/keymgmt/mlx_kmgmt.c', 'openssl/providers/implementations/keymgmt/rsa_kmgmt.c', + 'openssl/providers/implementations/keymgmt/slh_dsa_kmgmt.c', 'openssl/providers/implementations/macs/cmac_prov.c', 'openssl/providers/implementations/macs/gmac_prov.c', 'openssl/providers/implementations/macs/hmac_prov.c', 'openssl/providers/implementations/macs/kmac_prov.c', - 'openssl/providers/implementations/rands/crngt.c', 'openssl/providers/implementations/rands/drbg.c', 'openssl/providers/implementations/rands/drbg_ctr.c', 'openssl/providers/implementations/rands/drbg_hash.c', 'openssl/providers/implementations/rands/drbg_hmac.c', + 'openssl/providers/implementations/rands/fips_crng_test.c', 'openssl/providers/implementations/rands/test_rng.c', 'openssl/providers/implementations/signature/dsa_sig.c', 'openssl/providers/implementations/signature/ecdsa_sig.c', 'openssl/providers/implementations/signature/eddsa_sig.c', 'openssl/providers/implementations/signature/mac_legacy_sig.c', + 'openssl/providers/implementations/signature/ml_dsa_sig.c', 'openssl/providers/implementations/signature/rsa_sig.c', - 'openssl/ssl/s3_cbc.c', + 'openssl/providers/implementations/signature/slh_dsa_sig.c', + 'openssl/providers/implementations/skeymgmt/aes_skmgmt.c', + 'openssl/providers/implementations/skeymgmt/generic.c', + 'openssl/ssl/record/methods/ssl3_cbc.c', 'openssl/providers/common/der/der_dsa_key.c', 'openssl/providers/common/der/der_dsa_sig.c', 'openssl/providers/common/der/der_ec_key.c', 'openssl/providers/common/der/der_ec_sig.c', 'openssl/providers/common/der/der_ecx_key.c', + 'openssl/providers/common/der/der_ml_dsa_key.c', 'openssl/providers/common/der/der_rsa_key.c', + 'openssl/providers/common/der/der_slh_dsa_key.c', 'openssl/providers/common/provider_ctx.c', 'openssl/providers/common/provider_err.c', 'openssl/providers/implementations/ciphers/ciphercommon.c', @@ -266,7 +309,7 @@ 'openssl/providers/implementations/ciphers/ciphercommon_gcm_hw.c', 'openssl/providers/implementations/ciphers/ciphercommon_hw.c', 'openssl/providers/implementations/digests/digestcommon.c', - 'openssl/ssl/record/tls_pad.c', + 'openssl/ssl/record/methods/tls_pad.c', 'openssl/providers/fips/fips_entry.c', ], @@ -276,10 +319,16 @@ './config/archs/BSD-x86_64/asm/crypto/aes/aesni-sha1-x86_64.s', './config/archs/BSD-x86_64/asm/crypto/aes/aesni-sha256-x86_64.s', './config/archs/BSD-x86_64/asm/crypto/aes/aesni-x86_64.s', + './config/archs/BSD-x86_64/asm/crypto/aes/aesni-xts-avx512.s', './config/archs/BSD-x86_64/asm/crypto/aes/bsaes-x86_64.s', './config/archs/BSD-x86_64/asm/crypto/aes/vpaes-x86_64.s', + './config/archs/BSD-x86_64/asm/crypto/bn/rsaz-2k-avx512.s', + './config/archs/BSD-x86_64/asm/crypto/bn/rsaz-2k-avxifma.s', + './config/archs/BSD-x86_64/asm/crypto/bn/rsaz-3k-avx512.s', + './config/archs/BSD-x86_64/asm/crypto/bn/rsaz-3k-avxifma.s', + './config/archs/BSD-x86_64/asm/crypto/bn/rsaz-4k-avx512.s', + './config/archs/BSD-x86_64/asm/crypto/bn/rsaz-4k-avxifma.s', './config/archs/BSD-x86_64/asm/crypto/bn/rsaz-avx2.s', - './config/archs/BSD-x86_64/asm/crypto/bn/rsaz-avx512.s', './config/archs/BSD-x86_64/asm/crypto/bn/rsaz-x86_64.s', './config/archs/BSD-x86_64/asm/crypto/bn/x86_64-gf2m.s', './config/archs/BSD-x86_64/asm/crypto/bn/x86_64-mont.s', @@ -288,8 +337,10 @@ './config/archs/BSD-x86_64/asm/crypto/chacha/chacha-x86_64.s', './config/archs/BSD-x86_64/asm/crypto/ec/ecp_nistz256-x86_64.s', './config/archs/BSD-x86_64/asm/crypto/ec/x25519-x86_64.s', + './config/archs/BSD-x86_64/asm/crypto/params_idx.c', './config/archs/BSD-x86_64/asm/crypto/x86_64cpuid.s', './config/archs/BSD-x86_64/asm/crypto/md5/md5-x86_64.s', + './config/archs/BSD-x86_64/asm/crypto/modes/aes-gcm-avx512.s', './config/archs/BSD-x86_64/asm/crypto/modes/aesni-gcm-x86_64.s', './config/archs/BSD-x86_64/asm/crypto/modes/ghash-x86_64.s', './config/archs/BSD-x86_64/asm/crypto/poly1305/poly1305-x86_64.s', @@ -308,7 +359,9 @@ './config/archs/BSD-x86_64/asm/providers/common/der/der_dsa_gen.c', './config/archs/BSD-x86_64/asm/providers/common/der/der_ec_gen.c', './config/archs/BSD-x86_64/asm/providers/common/der/der_ecx_gen.c', + './config/archs/BSD-x86_64/asm/providers/common/der/der_ml_dsa_gen.c', './config/archs/BSD-x86_64/asm/providers/common/der/der_rsa_gen.c', + './config/archs/BSD-x86_64/asm/providers/common/der/der_slh_dsa_gen.c', './config/archs/BSD-x86_64/asm/providers/common/der/der_wrap_gen.c', './config/archs/BSD-x86_64/asm/providers/legacy.ld', './config/archs/BSD-x86_64/asm/providers/fips.ld', diff --git a/deps/openssl/config/archs/BSD-x86_64/asm/openssl.gypi b/deps/openssl/config/archs/BSD-x86_64/asm/openssl.gypi index f64b1e5b3bf451..6e425bd629a60d 100644 --- a/deps/openssl/config/archs/BSD-x86_64/asm/openssl.gypi +++ b/deps/openssl/config/archs/BSD-x86_64/asm/openssl.gypi @@ -7,14 +7,15 @@ 'openssl/ssl/d1_srtp.c', 'openssl/ssl/methods.c', 'openssl/ssl/pqueue.c', + 'openssl/ssl/priority_queue.c', 'openssl/ssl/s3_enc.c', 'openssl/ssl/s3_lib.c', 'openssl/ssl/s3_msg.c', 'openssl/ssl/ssl_asn1.c', 'openssl/ssl/ssl_cert.c', + 'openssl/ssl/ssl_cert_comp.c', 'openssl/ssl/ssl_ciph.c', 'openssl/ssl/ssl_conf.c', - 'openssl/ssl/ssl_err.c', 'openssl/ssl/ssl_err_legacy.c', 'openssl/ssl/ssl_init.c', 'openssl/ssl/ssl_lib.c', @@ -31,12 +32,60 @@ 'openssl/ssl/tls13_enc.c', 'openssl/ssl/tls_depr.c', 'openssl/ssl/tls_srp.c', - 'openssl/ssl/record/dtls1_bitmap.c', + 'openssl/ssl/quic/cc_newreno.c', + 'openssl/ssl/quic/json_enc.c', + 'openssl/ssl/quic/qlog.c', + 'openssl/ssl/quic/qlog_event_helpers.c', + 'openssl/ssl/quic/quic_ackm.c', + 'openssl/ssl/quic/quic_cfq.c', + 'openssl/ssl/quic/quic_channel.c', + 'openssl/ssl/quic/quic_demux.c', + 'openssl/ssl/quic/quic_engine.c', + 'openssl/ssl/quic/quic_fc.c', + 'openssl/ssl/quic/quic_fifd.c', + 'openssl/ssl/quic/quic_impl.c', + 'openssl/ssl/quic/quic_lcidm.c', + 'openssl/ssl/quic/quic_method.c', + 'openssl/ssl/quic/quic_obj.c', + 'openssl/ssl/quic/quic_port.c', + 'openssl/ssl/quic/quic_rcidm.c', + 'openssl/ssl/quic/quic_reactor.c', + 'openssl/ssl/quic/quic_reactor_wait_ctx.c', + 'openssl/ssl/quic/quic_record_rx.c', + 'openssl/ssl/quic/quic_record_shared.c', + 'openssl/ssl/quic/quic_record_tx.c', + 'openssl/ssl/quic/quic_record_util.c', + 'openssl/ssl/quic/quic_rstream.c', + 'openssl/ssl/quic/quic_rx_depack.c', + 'openssl/ssl/quic/quic_sf_list.c', + 'openssl/ssl/quic/quic_srt_gen.c', + 'openssl/ssl/quic/quic_srtm.c', + 'openssl/ssl/quic/quic_sstream.c', + 'openssl/ssl/quic/quic_statm.c', + 'openssl/ssl/quic/quic_stream_map.c', + 'openssl/ssl/quic/quic_thread_assist.c', + 'openssl/ssl/quic/quic_tls.c', + 'openssl/ssl/quic/quic_tls_api.c', + 'openssl/ssl/quic/quic_trace.c', + 'openssl/ssl/quic/quic_tserver.c', + 'openssl/ssl/quic/quic_txp.c', + 'openssl/ssl/quic/quic_txpim.c', + 'openssl/ssl/quic/quic_types.c', + 'openssl/ssl/quic/quic_wire.c', + 'openssl/ssl/quic/quic_wire_pkt.c', + 'openssl/ssl/quic/uint_set.c', 'openssl/ssl/record/rec_layer_d1.c', 'openssl/ssl/record/rec_layer_s3.c', - 'openssl/ssl/record/ssl3_buffer.c', - 'openssl/ssl/record/ssl3_record.c', - 'openssl/ssl/record/ssl3_record_tls13.c', + 'openssl/ssl/record/methods/dtls_meth.c', + 'openssl/ssl/record/methods/ssl3_meth.c', + 'openssl/ssl/record/methods/tls13_meth.c', + 'openssl/ssl/record/methods/tls1_meth.c', + 'openssl/ssl/record/methods/tls_common.c', + 'openssl/ssl/record/methods/tls_multib.c', + 'openssl/ssl/record/methods/tlsany_meth.c', + 'openssl/ssl/rio/poll_builder.c', + 'openssl/ssl/rio/poll_immediate.c', + 'openssl/ssl/rio/rio_notifier.c', 'openssl/ssl/statem/extensions.c', 'openssl/ssl/statem/extensions_clnt.c', 'openssl/ssl/statem/extensions_cust.c', @@ -148,6 +197,7 @@ 'openssl/crypto/bio/bss_conn.c', 'openssl/crypto/bio/bss_core.c', 'openssl/crypto/bio/bss_dgram.c', + 'openssl/crypto/bio/bss_dgram_pair.c', 'openssl/crypto/bio/bss_fd.c', 'openssl/crypto/bio/bss_file.c', 'openssl/crypto/bio/bss_log.c', @@ -207,6 +257,7 @@ 'openssl/crypto/cmp/cmp_client.c', 'openssl/crypto/cmp/cmp_ctx.c', 'openssl/crypto/cmp/cmp_err.c', + 'openssl/crypto/cmp/cmp_genm.c', 'openssl/crypto/cmp/cmp_hdr.c', 'openssl/crypto/cmp/cmp_http.c', 'openssl/crypto/cmp/cmp_msg.c', @@ -383,7 +434,9 @@ 'openssl/crypto/err/err_all.c', 'openssl/crypto/err/err_all_legacy.c', 'openssl/crypto/err/err_blocks.c', + 'openssl/crypto/err/err_mark.c', 'openssl/crypto/err/err_prn.c', + 'openssl/crypto/err/err_save.c', 'openssl/crypto/ess/ess_asn1.c', 'openssl/crypto/ess/ess_err.c', 'openssl/crypto/ess/ess_lib.c', @@ -466,7 +519,9 @@ 'openssl/crypto/evp/pmeth_check.c', 'openssl/crypto/evp/pmeth_gn.c', 'openssl/crypto/evp/pmeth_lib.c', + 'openssl/crypto/evp/s_lib.c', 'openssl/crypto/evp/signature.c', + 'openssl/crypto/evp/skeymgmt_meth.c', 'openssl/crypto/ffc/ffc_backend.c', 'openssl/crypto/ffc/ffc_dh.c', 'openssl/crypto/ffc/ffc_key_generate.c', @@ -474,7 +529,11 @@ 'openssl/crypto/ffc/ffc_params.c', 'openssl/crypto/ffc/ffc_params_generate.c', 'openssl/crypto/ffc/ffc_params_validate.c', + 'openssl/crypto/hashtable/hashfunc.c', + 'openssl/crypto/hashtable/hashtable.c', 'openssl/crypto/hmac/hmac.c', + 'openssl/crypto/hpke/hpke.c', + 'openssl/crypto/hpke/hpke_util.c', 'openssl/crypto/http/http_client.c', 'openssl/crypto/http/http_err.c', 'openssl/crypto/http/http_lib.c', @@ -488,6 +547,7 @@ 'openssl/crypto/lhash/lhash.c', 'openssl/crypto/asn1_dsa.c', 'openssl/crypto/bsearch.c', + 'openssl/crypto/comp_methods.c', 'openssl/crypto/context.c', 'openssl/crypto/core_algorithm.c', 'openssl/crypto/core_fetch.c', @@ -497,10 +557,13 @@ 'openssl/crypto/cryptlib.c', 'openssl/crypto/ctype.c', 'openssl/crypto/cversion.c', + 'openssl/crypto/defaults.c', 'openssl/crypto/der_writer.c', + 'openssl/crypto/deterministic_nonce.c', 'openssl/crypto/ebcdic.c', 'openssl/crypto/ex_data.c', 'openssl/crypto/getenv.c', + 'openssl/crypto/indicator_core.c', 'openssl/crypto/info.c', 'openssl/crypto/init.c', 'openssl/crypto/initthread.c', @@ -524,12 +587,16 @@ 'openssl/crypto/provider_core.c', 'openssl/crypto/provider_predefined.c', 'openssl/crypto/punycode.c', + 'openssl/crypto/quic_vlint.c', 'openssl/crypto/self_test_core.c', + 'openssl/crypto/sleep.c', 'openssl/crypto/sparse_array.c', + 'openssl/crypto/ssl_err.c', 'openssl/crypto/threads_lib.c', 'openssl/crypto/threads_none.c', 'openssl/crypto/threads_pthread.c', 'openssl/crypto/threads_win.c', + 'openssl/crypto/time.c', 'openssl/crypto/trace.c', 'openssl/crypto/uid.c', 'openssl/crypto/md4/md4_dgst.c', @@ -539,6 +606,15 @@ 'openssl/crypto/md5/md5_sha1.c', 'openssl/crypto/mdc2/mdc2_one.c', 'openssl/crypto/mdc2/mdc2dgst.c', + 'openssl/crypto/ml_dsa/ml_dsa_encoders.c', + 'openssl/crypto/ml_dsa/ml_dsa_key.c', + 'openssl/crypto/ml_dsa/ml_dsa_key_compress.c', + 'openssl/crypto/ml_dsa/ml_dsa_matrix.c', + 'openssl/crypto/ml_dsa/ml_dsa_ntt.c', + 'openssl/crypto/ml_dsa/ml_dsa_params.c', + 'openssl/crypto/ml_dsa/ml_dsa_sample.c', + 'openssl/crypto/ml_dsa/ml_dsa_sign.c', + 'openssl/crypto/ml_kem/ml_kem.c', 'openssl/crypto/modes/cbc128.c', 'openssl/crypto/modes/ccm128.c', 'openssl/crypto/modes/cfb128.c', @@ -550,6 +626,7 @@ 'openssl/crypto/modes/siv128.c', 'openssl/crypto/modes/wrap128.c', 'openssl/crypto/modes/xts128.c', + 'openssl/crypto/modes/xts128gb.c', 'openssl/crypto/objects/o_names.c', 'openssl/crypto/objects/obj_dat.c', 'openssl/crypto/objects/obj_err.c', @@ -613,6 +690,7 @@ 'openssl/crypto/rand/rand_lib.c', 'openssl/crypto/rand/rand_meth.c', 'openssl/crypto/rand/rand_pool.c', + 'openssl/crypto/rand/rand_uniform.c', 'openssl/crypto/rand/randfile.c', 'openssl/crypto/rc2/rc2_cbc.c', 'openssl/crypto/rc2/rc2_ecb.c', @@ -658,6 +736,16 @@ 'openssl/crypto/sha/sha3.c', 'openssl/crypto/sha/sha512.c', 'openssl/crypto/siphash/siphash.c', + 'openssl/crypto/slh_dsa/slh_adrs.c', + 'openssl/crypto/slh_dsa/slh_dsa.c', + 'openssl/crypto/slh_dsa/slh_dsa_hash_ctx.c', + 'openssl/crypto/slh_dsa/slh_dsa_key.c', + 'openssl/crypto/slh_dsa/slh_fors.c', + 'openssl/crypto/slh_dsa/slh_hash.c', + 'openssl/crypto/slh_dsa/slh_hypertree.c', + 'openssl/crypto/slh_dsa/slh_params.c', + 'openssl/crypto/slh_dsa/slh_wots.c', + 'openssl/crypto/slh_dsa/slh_xmss.c', 'openssl/crypto/sm2/sm2_crypt.c', 'openssl/crypto/sm2/sm2_err.c', 'openssl/crypto/sm2/sm2_key.c', @@ -675,6 +763,12 @@ 'openssl/crypto/store/store_register.c', 'openssl/crypto/store/store_result.c', 'openssl/crypto/store/store_strings.c', + 'openssl/crypto/thread/arch/thread_none.c', + 'openssl/crypto/thread/arch/thread_posix.c', + 'openssl/crypto/thread/arch/thread_win.c', + 'openssl/crypto/thread/api.c', + 'openssl/crypto/thread/arch.c', + 'openssl/crypto/thread/internal.c', 'openssl/crypto/ts/ts_asn1.c', 'openssl/crypto/ts/ts_conf.c', 'openssl/crypto/ts/ts_err.c', @@ -702,14 +796,22 @@ 'openssl/crypto/x509/pcy_map.c', 'openssl/crypto/x509/pcy_node.c', 'openssl/crypto/x509/pcy_tree.c', + 'openssl/crypto/x509/t_acert.c', 'openssl/crypto/x509/t_crl.c', 'openssl/crypto/x509/t_req.c', 'openssl/crypto/x509/t_x509.c', + 'openssl/crypto/x509/v3_aaa.c', + 'openssl/crypto/x509/v3_ac_tgt.c', 'openssl/crypto/x509/v3_addr.c', 'openssl/crypto/x509/v3_admis.c', 'openssl/crypto/x509/v3_akeya.c', 'openssl/crypto/x509/v3_akid.c', 'openssl/crypto/x509/v3_asid.c', + 'openssl/crypto/x509/v3_attrdesc.c', + 'openssl/crypto/x509/v3_attrmap.c', + 'openssl/crypto/x509/v3_audit_id.c', + 'openssl/crypto/x509/v3_authattid.c', + 'openssl/crypto/x509/v3_battcons.c', 'openssl/crypto/x509/v3_bcons.c', 'openssl/crypto/x509/v3_bitst.c', 'openssl/crypto/x509/v3_conf.c', @@ -718,12 +820,17 @@ 'openssl/crypto/x509/v3_enum.c', 'openssl/crypto/x509/v3_extku.c', 'openssl/crypto/x509/v3_genn.c', + 'openssl/crypto/x509/v3_group_ac.c', 'openssl/crypto/x509/v3_ia5.c', + 'openssl/crypto/x509/v3_ind_iss.c', 'openssl/crypto/x509/v3_info.c', 'openssl/crypto/x509/v3_int.c', + 'openssl/crypto/x509/v3_iobo.c', 'openssl/crypto/x509/v3_ist.c', 'openssl/crypto/x509/v3_lib.c', 'openssl/crypto/x509/v3_ncons.c', + 'openssl/crypto/x509/v3_no_ass.c', + 'openssl/crypto/x509/v3_no_rev_avail.c', 'openssl/crypto/x509/v3_pci.c', 'openssl/crypto/x509/v3_pcia.c', 'openssl/crypto/x509/v3_pcons.c', @@ -731,13 +838,20 @@ 'openssl/crypto/x509/v3_pmaps.c', 'openssl/crypto/x509/v3_prn.c', 'openssl/crypto/x509/v3_purp.c', + 'openssl/crypto/x509/v3_rolespec.c', 'openssl/crypto/x509/v3_san.c', + 'openssl/crypto/x509/v3_sda.c', + 'openssl/crypto/x509/v3_single_use.c', 'openssl/crypto/x509/v3_skid.c', + 'openssl/crypto/x509/v3_soa_id.c', 'openssl/crypto/x509/v3_sxnet.c', + 'openssl/crypto/x509/v3_timespec.c', 'openssl/crypto/x509/v3_tlsf.c', + 'openssl/crypto/x509/v3_usernotice.c', 'openssl/crypto/x509/v3_utf8.c', 'openssl/crypto/x509/v3_utl.c', 'openssl/crypto/x509/v3err.c', + 'openssl/crypto/x509/x509_acert.c', 'openssl/crypto/x509/x509_att.c', 'openssl/crypto/x509/x509_cmp.c', 'openssl/crypto/x509/x509_d2.c', @@ -755,6 +869,7 @@ 'openssl/crypto/x509/x509_v3.c', 'openssl/crypto/x509/x509_vfy.c', 'openssl/crypto/x509/x509_vpm.c', + 'openssl/crypto/x509/x509aset.c', 'openssl/crypto/x509/x509cset.c', 'openssl/crypto/x509/x509name.c', 'openssl/crypto/x509/x509rset.c', @@ -764,6 +879,7 @@ 'openssl/crypto/x509/x_attrib.c', 'openssl/crypto/x509/x_crl.c', 'openssl/crypto/x509/x_exten.c', + 'openssl/crypto/x509/x_ietfatt.c', 'openssl/crypto/x509/x_name.c', 'openssl/crypto/x509/x_pubkey.c', 'openssl/crypto/x509/x_req.c', @@ -796,6 +912,9 @@ 'openssl/providers/implementations/ciphers/cipher_aes_ccm_hw.c', 'openssl/providers/implementations/ciphers/cipher_aes_gcm.c', 'openssl/providers/implementations/ciphers/cipher_aes_gcm_hw.c', + 'openssl/providers/implementations/ciphers/cipher_aes_gcm_siv.c', + 'openssl/providers/implementations/ciphers/cipher_aes_gcm_siv_hw.c', + 'openssl/providers/implementations/ciphers/cipher_aes_gcm_siv_polyval.c', 'openssl/providers/implementations/ciphers/cipher_aes_hw.c', 'openssl/providers/implementations/ciphers/cipher_aes_ocb.c', 'openssl/providers/implementations/ciphers/cipher_aes_ocb_hw.c', @@ -820,7 +939,13 @@ 'openssl/providers/implementations/ciphers/cipher_cts.c', 'openssl/providers/implementations/ciphers/cipher_null.c', 'openssl/providers/implementations/ciphers/cipher_sm4.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_ccm.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_ccm_hw.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_gcm.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_gcm_hw.c', 'openssl/providers/implementations/ciphers/cipher_sm4_hw.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_xts.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_xts_hw.c', 'openssl/providers/implementations/ciphers/cipher_tdes.c', 'openssl/providers/implementations/ciphers/cipher_tdes_common.c', 'openssl/providers/implementations/ciphers/cipher_tdes_default.c', @@ -849,11 +974,16 @@ 'openssl/providers/implementations/encode_decode/encode_key2ms.c', 'openssl/providers/implementations/encode_decode/encode_key2text.c', 'openssl/providers/implementations/encode_decode/endecoder_common.c', + 'openssl/providers/implementations/encode_decode/ml_common_codecs.c', + 'openssl/providers/implementations/encode_decode/ml_dsa_codecs.c', + 'openssl/providers/implementations/encode_decode/ml_kem_codecs.c', 'openssl/providers/implementations/exchange/dh_exch.c', 'openssl/providers/implementations/exchange/ecdh_exch.c', 'openssl/providers/implementations/exchange/ecx_exch.c', 'openssl/providers/implementations/exchange/kdf_exch.c', + 'openssl/providers/implementations/kdfs/argon2.c', 'openssl/providers/implementations/kdfs/hkdf.c', + 'openssl/providers/implementations/kdfs/hmacdrbg_kdf.c', 'openssl/providers/implementations/kdfs/kbkdf.c', 'openssl/providers/implementations/kdfs/krb5kdf.c', 'openssl/providers/implementations/kdfs/pbkdf2.c', @@ -864,6 +994,11 @@ 'openssl/providers/implementations/kdfs/sskdf.c', 'openssl/providers/implementations/kdfs/tls1_prf.c', 'openssl/providers/implementations/kdfs/x942kdf.c', + 'openssl/providers/implementations/kem/ec_kem.c', + 'openssl/providers/implementations/kem/ecx_kem.c', + 'openssl/providers/implementations/kem/kem_util.c', + 'openssl/providers/implementations/kem/ml_kem_kem.c', + 'openssl/providers/implementations/kem/mlx_kem.c', 'openssl/providers/implementations/kem/rsa_kem.c', 'openssl/providers/implementations/keymgmt/dh_kmgmt.c', 'openssl/providers/implementations/keymgmt/dsa_kmgmt.c', @@ -871,7 +1006,11 @@ 'openssl/providers/implementations/keymgmt/ecx_kmgmt.c', 'openssl/providers/implementations/keymgmt/kdf_legacy_kmgmt.c', 'openssl/providers/implementations/keymgmt/mac_legacy_kmgmt.c', + 'openssl/providers/implementations/keymgmt/ml_dsa_kmgmt.c', + 'openssl/providers/implementations/keymgmt/ml_kem_kmgmt.c', + 'openssl/providers/implementations/keymgmt/mlx_kmgmt.c', 'openssl/providers/implementations/keymgmt/rsa_kmgmt.c', + 'openssl/providers/implementations/keymgmt/slh_dsa_kmgmt.c', 'openssl/providers/implementations/macs/blake2b_mac.c', 'openssl/providers/implementations/macs/blake2s_mac.c', 'openssl/providers/implementations/macs/cmac_prov.c', @@ -880,12 +1019,12 @@ 'openssl/providers/implementations/macs/kmac_prov.c', 'openssl/providers/implementations/macs/poly1305_prov.c', 'openssl/providers/implementations/macs/siphash_prov.c', - 'openssl/providers/implementations/rands/crngt.c', 'openssl/providers/implementations/rands/drbg.c', 'openssl/providers/implementations/rands/drbg_ctr.c', 'openssl/providers/implementations/rands/drbg_hash.c', 'openssl/providers/implementations/rands/drbg_hmac.c', 'openssl/providers/implementations/rands/seed_src.c', + 'openssl/providers/implementations/rands/seed_src_jitter.c', 'openssl/providers/implementations/rands/test_rng.c', 'openssl/providers/implementations/rands/seeding/rand_cpu_x86.c', 'openssl/providers/implementations/rands/seeding/rand_tsc.c', @@ -895,17 +1034,23 @@ 'openssl/providers/implementations/signature/ecdsa_sig.c', 'openssl/providers/implementations/signature/eddsa_sig.c', 'openssl/providers/implementations/signature/mac_legacy_sig.c', + 'openssl/providers/implementations/signature/ml_dsa_sig.c', 'openssl/providers/implementations/signature/rsa_sig.c', + 'openssl/providers/implementations/signature/slh_dsa_sig.c', 'openssl/providers/implementations/signature/sm2_sig.c', + 'openssl/providers/implementations/skeymgmt/aes_skmgmt.c', + 'openssl/providers/implementations/skeymgmt/generic.c', 'openssl/providers/implementations/storemgmt/file_store.c', 'openssl/providers/implementations/storemgmt/file_store_any2obj.c', - 'openssl/ssl/s3_cbc.c', + 'openssl/ssl/record/methods/ssl3_cbc.c', 'openssl/providers/common/der/der_dsa_key.c', 'openssl/providers/common/der/der_dsa_sig.c', 'openssl/providers/common/der/der_ec_key.c', 'openssl/providers/common/der/der_ec_sig.c', 'openssl/providers/common/der/der_ecx_key.c', + 'openssl/providers/common/der/der_ml_dsa_key.c', 'openssl/providers/common/der/der_rsa_key.c', + 'openssl/providers/common/der/der_slh_dsa_key.c', 'openssl/providers/common/provider_ctx.c', 'openssl/providers/common/provider_err.c', 'openssl/providers/implementations/ciphers/ciphercommon.c', @@ -916,7 +1061,7 @@ 'openssl/providers/implementations/ciphers/ciphercommon_gcm_hw.c', 'openssl/providers/implementations/ciphers/ciphercommon_hw.c', 'openssl/providers/implementations/digests/digestcommon.c', - 'openssl/ssl/record/tls_pad.c', + 'openssl/ssl/record/methods/tls_pad.c', 'openssl/providers/implementations/ciphers/cipher_blowfish.c', 'openssl/providers/implementations/ciphers/cipher_blowfish_hw.c', 'openssl/providers/implementations/ciphers/cipher_cast5.c', @@ -941,6 +1086,7 @@ 'openssl/providers/implementations/digests/ripemd_prov.c', 'openssl/providers/implementations/digests/wp_prov.c', 'openssl/providers/implementations/kdfs/pbkdf1.c', + 'openssl/providers/implementations/kdfs/pvkkdf.c', 'openssl/providers/prov_running.c', 'openssl/providers/legacyprov.c', ], @@ -950,10 +1096,16 @@ './config/archs/BSD-x86_64/asm/crypto/aes/aesni-sha1-x86_64.s', './config/archs/BSD-x86_64/asm/crypto/aes/aesni-sha256-x86_64.s', './config/archs/BSD-x86_64/asm/crypto/aes/aesni-x86_64.s', + './config/archs/BSD-x86_64/asm/crypto/aes/aesni-xts-avx512.s', './config/archs/BSD-x86_64/asm/crypto/aes/bsaes-x86_64.s', './config/archs/BSD-x86_64/asm/crypto/aes/vpaes-x86_64.s', + './config/archs/BSD-x86_64/asm/crypto/bn/rsaz-2k-avx512.s', + './config/archs/BSD-x86_64/asm/crypto/bn/rsaz-2k-avxifma.s', + './config/archs/BSD-x86_64/asm/crypto/bn/rsaz-3k-avx512.s', + './config/archs/BSD-x86_64/asm/crypto/bn/rsaz-3k-avxifma.s', + './config/archs/BSD-x86_64/asm/crypto/bn/rsaz-4k-avx512.s', + './config/archs/BSD-x86_64/asm/crypto/bn/rsaz-4k-avxifma.s', './config/archs/BSD-x86_64/asm/crypto/bn/rsaz-avx2.s', - './config/archs/BSD-x86_64/asm/crypto/bn/rsaz-avx512.s', './config/archs/BSD-x86_64/asm/crypto/bn/rsaz-x86_64.s', './config/archs/BSD-x86_64/asm/crypto/bn/x86_64-gf2m.s', './config/archs/BSD-x86_64/asm/crypto/bn/x86_64-mont.s', @@ -962,8 +1114,10 @@ './config/archs/BSD-x86_64/asm/crypto/chacha/chacha-x86_64.s', './config/archs/BSD-x86_64/asm/crypto/ec/ecp_nistz256-x86_64.s', './config/archs/BSD-x86_64/asm/crypto/ec/x25519-x86_64.s', + './config/archs/BSD-x86_64/asm/crypto/params_idx.c', './config/archs/BSD-x86_64/asm/crypto/x86_64cpuid.s', './config/archs/BSD-x86_64/asm/crypto/md5/md5-x86_64.s', + './config/archs/BSD-x86_64/asm/crypto/modes/aes-gcm-avx512.s', './config/archs/BSD-x86_64/asm/crypto/modes/aesni-gcm-x86_64.s', './config/archs/BSD-x86_64/asm/crypto/modes/ghash-x86_64.s', './config/archs/BSD-x86_64/asm/crypto/poly1305/poly1305-x86_64.s', @@ -982,7 +1136,9 @@ './config/archs/BSD-x86_64/asm/providers/common/der/der_dsa_gen.c', './config/archs/BSD-x86_64/asm/providers/common/der/der_ec_gen.c', './config/archs/BSD-x86_64/asm/providers/common/der/der_ecx_gen.c', + './config/archs/BSD-x86_64/asm/providers/common/der/der_ml_dsa_gen.c', './config/archs/BSD-x86_64/asm/providers/common/der/der_rsa_gen.c', + './config/archs/BSD-x86_64/asm/providers/common/der/der_slh_dsa_gen.c', './config/archs/BSD-x86_64/asm/providers/common/der/der_wrap_gen.c', './config/archs/BSD-x86_64/asm/providers/legacy.ld', './config/archs/BSD-x86_64/asm/providers/fips.ld', diff --git a/deps/openssl/config/archs/BSD-x86_64/asm/providers/common/der/der_ml_dsa_gen.c b/deps/openssl/config/archs/BSD-x86_64/asm/providers/common/der/der_ml_dsa_gen.c new file mode 100644 index 00000000000000..4a8a113a268578 --- /dev/null +++ b/deps/openssl/config/archs/BSD-x86_64/asm/providers/common/der/der_ml_dsa_gen.c @@ -0,0 +1,37 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from providers/common/der/der_ml_dsa_gen.c.in + * + * Copyright 2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include "prov/der_ml_dsa.h" + +/* Well known OIDs precompiled */ + +/* + * id-ml-dsa-44 OBJECT IDENTIFIER ::= { sigAlgs 17 } + */ +const unsigned char ossl_der_oid_id_ml_dsa_44[DER_OID_SZ_id_ml_dsa_44] = { + DER_OID_V_id_ml_dsa_44 +}; + +/* + * id-ml-dsa-65 OBJECT IDENTIFIER ::= { sigAlgs 18 } + */ +const unsigned char ossl_der_oid_id_ml_dsa_65[DER_OID_SZ_id_ml_dsa_65] = { + DER_OID_V_id_ml_dsa_65 +}; + +/* + * id-ml-dsa-87 OBJECT IDENTIFIER ::= { sigAlgs 19 } + */ +const unsigned char ossl_der_oid_id_ml_dsa_87[DER_OID_SZ_id_ml_dsa_87] = { + DER_OID_V_id_ml_dsa_87 +}; + diff --git a/deps/openssl/config/archs/BSD-x86_64/asm/providers/common/der/der_slh_dsa_gen.c b/deps/openssl/config/archs/BSD-x86_64/asm/providers/common/der/der_slh_dsa_gen.c new file mode 100644 index 00000000000000..1419a9515097dd --- /dev/null +++ b/deps/openssl/config/archs/BSD-x86_64/asm/providers/common/der/der_slh_dsa_gen.c @@ -0,0 +1,100 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from providers/common/der/der_slh_dsa_gen.c.in + * + * Copyright 2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include "prov/der_slh_dsa.h" + +/* Well known OIDs precompiled */ + +/* + * id-slh-dsa-sha2-128s OBJECT IDENTIFIER ::= { sigAlgs 20 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_128s[DER_OID_SZ_id_slh_dsa_sha2_128s] = { + DER_OID_V_id_slh_dsa_sha2_128s +}; + +/* + * id-slh-dsa-sha2-128f OBJECT IDENTIFIER ::= { sigAlgs 21 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_128f[DER_OID_SZ_id_slh_dsa_sha2_128f] = { + DER_OID_V_id_slh_dsa_sha2_128f +}; + +/* + * id-slh-dsa-sha2-192s OBJECT IDENTIFIER ::= { sigAlgs 22 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_192s[DER_OID_SZ_id_slh_dsa_sha2_192s] = { + DER_OID_V_id_slh_dsa_sha2_192s +}; + +/* + * id-slh-dsa-sha2-192f OBJECT IDENTIFIER ::= { sigAlgs 23 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_192f[DER_OID_SZ_id_slh_dsa_sha2_192f] = { + DER_OID_V_id_slh_dsa_sha2_192f +}; + +/* + * id-slh-dsa-sha2-256s OBJECT IDENTIFIER ::= { sigAlgs 24 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_256s[DER_OID_SZ_id_slh_dsa_sha2_256s] = { + DER_OID_V_id_slh_dsa_sha2_256s +}; + +/* + * id-slh-dsa-sha2-256f OBJECT IDENTIFIER ::= { sigAlgs 25 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_256f[DER_OID_SZ_id_slh_dsa_sha2_256f] = { + DER_OID_V_id_slh_dsa_sha2_256f +}; + +/* + * id-slh-dsa-shake-128s OBJECT IDENTIFIER ::= { sigAlgs 26 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_128s[DER_OID_SZ_id_slh_dsa_shake_128s] = { + DER_OID_V_id_slh_dsa_shake_128s +}; + +/* + * id-slh-dsa-shake-128f OBJECT IDENTIFIER ::= { sigAlgs 27 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_128f[DER_OID_SZ_id_slh_dsa_shake_128f] = { + DER_OID_V_id_slh_dsa_shake_128f +}; + +/* + * id-slh-dsa-shake-192s OBJECT IDENTIFIER ::= { sigAlgs 28 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_192s[DER_OID_SZ_id_slh_dsa_shake_192s] = { + DER_OID_V_id_slh_dsa_shake_192s +}; + +/* + * id-slh-dsa-shake-192f OBJECT IDENTIFIER ::= { sigAlgs 29 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_192f[DER_OID_SZ_id_slh_dsa_shake_192f] = { + DER_OID_V_id_slh_dsa_shake_192f +}; + +/* + * id-slh-dsa-shake-256s OBJECT IDENTIFIER ::= { sigAlgs 30 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_256s[DER_OID_SZ_id_slh_dsa_shake_256s] = { + DER_OID_V_id_slh_dsa_shake_256s +}; + +/* + * id-slh-dsa-shake-256f OBJECT IDENTIFIER ::= { sigAlgs 31 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_256f[DER_OID_SZ_id_slh_dsa_shake_256f] = { + DER_OID_V_id_slh_dsa_shake_256f +}; + diff --git a/deps/openssl/config/archs/BSD-x86_64/asm/providers/common/include/prov/der_ml_dsa.h b/deps/openssl/config/archs/BSD-x86_64/asm/providers/common/include/prov/der_ml_dsa.h new file mode 100644 index 00000000000000..c55f780ab4527c --- /dev/null +++ b/deps/openssl/config/archs/BSD-x86_64/asm/providers/common/include/prov/der_ml_dsa.h @@ -0,0 +1,40 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from providers/common/include/prov/der_ml_dsa.h.in + * + * Copyright 2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include "internal/der.h" +#include "crypto/ml_dsa.h" + +/* Well known OIDs precompiled */ + +/* + * id-ml-dsa-44 OBJECT IDENTIFIER ::= { sigAlgs 17 } + */ +#define DER_OID_V_id_ml_dsa_44 DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x11 +#define DER_OID_SZ_id_ml_dsa_44 11 +extern const unsigned char ossl_der_oid_id_ml_dsa_44[DER_OID_SZ_id_ml_dsa_44]; + +/* + * id-ml-dsa-65 OBJECT IDENTIFIER ::= { sigAlgs 18 } + */ +#define DER_OID_V_id_ml_dsa_65 DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x12 +#define DER_OID_SZ_id_ml_dsa_65 11 +extern const unsigned char ossl_der_oid_id_ml_dsa_65[DER_OID_SZ_id_ml_dsa_65]; + +/* + * id-ml-dsa-87 OBJECT IDENTIFIER ::= { sigAlgs 19 } + */ +#define DER_OID_V_id_ml_dsa_87 DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x13 +#define DER_OID_SZ_id_ml_dsa_87 11 +extern const unsigned char ossl_der_oid_id_ml_dsa_87[DER_OID_SZ_id_ml_dsa_87]; + + +int ossl_DER_w_algorithmIdentifier_ML_DSA(WPACKET *pkt, int tag, ML_DSA_KEY *key); diff --git a/deps/openssl/config/archs/BSD-x86_64/asm/providers/common/include/prov/der_slh_dsa.h b/deps/openssl/config/archs/BSD-x86_64/asm/providers/common/include/prov/der_slh_dsa.h new file mode 100644 index 00000000000000..760f8e7699be72 --- /dev/null +++ b/deps/openssl/config/archs/BSD-x86_64/asm/providers/common/include/prov/der_slh_dsa.h @@ -0,0 +1,103 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from providers/common/include/prov/der_slh_dsa.h.in + * + * Copyright 2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include "internal/der.h" +#include "crypto/slh_dsa.h" + +/* Well known OIDs precompiled */ + +/* + * id-slh-dsa-sha2-128s OBJECT IDENTIFIER ::= { sigAlgs 20 } + */ +#define DER_OID_V_id_slh_dsa_sha2_128s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x14 +#define DER_OID_SZ_id_slh_dsa_sha2_128s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_128s[DER_OID_SZ_id_slh_dsa_sha2_128s]; + +/* + * id-slh-dsa-sha2-128f OBJECT IDENTIFIER ::= { sigAlgs 21 } + */ +#define DER_OID_V_id_slh_dsa_sha2_128f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x15 +#define DER_OID_SZ_id_slh_dsa_sha2_128f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_128f[DER_OID_SZ_id_slh_dsa_sha2_128f]; + +/* + * id-slh-dsa-sha2-192s OBJECT IDENTIFIER ::= { sigAlgs 22 } + */ +#define DER_OID_V_id_slh_dsa_sha2_192s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x16 +#define DER_OID_SZ_id_slh_dsa_sha2_192s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_192s[DER_OID_SZ_id_slh_dsa_sha2_192s]; + +/* + * id-slh-dsa-sha2-192f OBJECT IDENTIFIER ::= { sigAlgs 23 } + */ +#define DER_OID_V_id_slh_dsa_sha2_192f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x17 +#define DER_OID_SZ_id_slh_dsa_sha2_192f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_192f[DER_OID_SZ_id_slh_dsa_sha2_192f]; + +/* + * id-slh-dsa-sha2-256s OBJECT IDENTIFIER ::= { sigAlgs 24 } + */ +#define DER_OID_V_id_slh_dsa_sha2_256s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x18 +#define DER_OID_SZ_id_slh_dsa_sha2_256s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_256s[DER_OID_SZ_id_slh_dsa_sha2_256s]; + +/* + * id-slh-dsa-sha2-256f OBJECT IDENTIFIER ::= { sigAlgs 25 } + */ +#define DER_OID_V_id_slh_dsa_sha2_256f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x19 +#define DER_OID_SZ_id_slh_dsa_sha2_256f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_256f[DER_OID_SZ_id_slh_dsa_sha2_256f]; + +/* + * id-slh-dsa-shake-128s OBJECT IDENTIFIER ::= { sigAlgs 26 } + */ +#define DER_OID_V_id_slh_dsa_shake_128s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1A +#define DER_OID_SZ_id_slh_dsa_shake_128s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_128s[DER_OID_SZ_id_slh_dsa_shake_128s]; + +/* + * id-slh-dsa-shake-128f OBJECT IDENTIFIER ::= { sigAlgs 27 } + */ +#define DER_OID_V_id_slh_dsa_shake_128f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1B +#define DER_OID_SZ_id_slh_dsa_shake_128f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_128f[DER_OID_SZ_id_slh_dsa_shake_128f]; + +/* + * id-slh-dsa-shake-192s OBJECT IDENTIFIER ::= { sigAlgs 28 } + */ +#define DER_OID_V_id_slh_dsa_shake_192s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1C +#define DER_OID_SZ_id_slh_dsa_shake_192s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_192s[DER_OID_SZ_id_slh_dsa_shake_192s]; + +/* + * id-slh-dsa-shake-192f OBJECT IDENTIFIER ::= { sigAlgs 29 } + */ +#define DER_OID_V_id_slh_dsa_shake_192f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1D +#define DER_OID_SZ_id_slh_dsa_shake_192f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_192f[DER_OID_SZ_id_slh_dsa_shake_192f]; + +/* + * id-slh-dsa-shake-256s OBJECT IDENTIFIER ::= { sigAlgs 30 } + */ +#define DER_OID_V_id_slh_dsa_shake_256s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1E +#define DER_OID_SZ_id_slh_dsa_shake_256s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_256s[DER_OID_SZ_id_slh_dsa_shake_256s]; + +/* + * id-slh-dsa-shake-256f OBJECT IDENTIFIER ::= { sigAlgs 31 } + */ +#define DER_OID_V_id_slh_dsa_shake_256f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1F +#define DER_OID_SZ_id_slh_dsa_shake_256f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_256f[DER_OID_SZ_id_slh_dsa_shake_256f]; + + +int ossl_DER_w_algorithmIdentifier_SLH_DSA(WPACKET *pkt, int tag, SLH_DSA_KEY *key); diff --git a/deps/openssl/config/archs/BSD-x86_64/asm_avx2/apps/progs.c b/deps/openssl/config/archs/BSD-x86_64/asm_avx2/apps/progs.c index 43cef00799b86e..acc204a3e6e781 100644 --- a/deps/openssl/config/archs/BSD-x86_64/asm_avx2/apps/progs.c +++ b/deps/openssl/config/archs/BSD-x86_64/asm_avx2/apps/progs.c @@ -89,6 +89,7 @@ FUNCTION functions[] = { {FT_general, "s_time", s_time_main, s_time_options, NULL, NULL}, #endif {FT_general, "sess_id", sess_id_main, sess_id_options, NULL, NULL}, + {FT_general, "skeyutl", skeyutl_main, skeyutl_options, NULL, NULL}, {FT_general, "smime", smime_main, smime_options, NULL, NULL}, {FT_general, "speed", speed_main, speed_options, NULL, NULL}, {FT_general, "spkac", spkac_main, spkac_options, NULL, NULL}, @@ -225,9 +226,15 @@ FUNCTION functions[] = { {FT_cipher, "camellia-256-ecb", enc_main, enc_options, NULL}, #endif {FT_cipher, "base64", enc_main, enc_options, NULL}, -#ifdef ZLIB +#ifndef OPENSSL_NO_ZLIB {FT_cipher, "zlib", enc_main, enc_options, NULL}, #endif +#ifndef OPENSSL_NO_BROTLI + {FT_cipher, "brotli", enc_main, enc_options, NULL}, +#endif +#ifndef OPENSSL_NO_ZSTD + {FT_cipher, "zstd", enc_main, enc_options, NULL}, +#endif #ifndef OPENSSL_NO_DES {FT_cipher, "des", enc_main, enc_options, NULL}, #endif diff --git a/deps/openssl/config/archs/BSD-x86_64/asm_avx2/configdata.pm b/deps/openssl/config/archs/BSD-x86_64/asm_avx2/configdata.pm index ca218619df1f17..6d722f8643473a 100644 --- a/deps/openssl/config/archs/BSD-x86_64/asm_avx2/configdata.pm +++ b/deps/openssl/config/archs/BSD-x86_64/asm_avx2/configdata.pm @@ -18,6 +18,7 @@ our %config = ( "ARFLAGS" => [ "qc" ], + "ASFLAGS" => [], "CC" => "../config/fake_gcc.pl", "CFLAGS" => [ "-Wall -O3" @@ -27,14 +28,16 @@ our %config = ( "CPPINCLUDES" => [], "CXXFLAGS" => [], "FIPSKEY" => "f4556650ac31d35461610bac4ed81b1a181b2d8a43ea2854cbae22ca74560813", + "FIPS_VENDOR" => "OpenSSL FIPS Provider", "HASHBANGPERL" => "/usr/bin/env perl", "LDFLAGS" => [], "LDLIBS" => [], + "OBJCOPY" => "objcopy", "PERL" => "/usr/bin/perl", "RANLIB" => "ranlib", "RC" => "windres", "RCFLAGS" => [], - "api" => "30000", + "api" => "30500", "b32" => "0", "b64" => "0", "b64l" => "1", @@ -56,11 +59,13 @@ our %config = ( "doc/build.info", "test/build.info", "engines/build.info", + "exporters/build.info", "crypto/objects/build.info", "crypto/buffer/build.info", "crypto/bio/build.info", "crypto/stack/build.info", "crypto/lhash/build.info", + "crypto/hashtable/build.info", "crypto/rand/build.info", "crypto/evp/build.info", "crypto/asn1/build.info", @@ -78,6 +83,7 @@ our %config = ( "crypto/md5/build.info", "crypto/sha/build.info", "crypto/mdc2/build.info", + "crypto/ml_kem/build.info", "crypto/hmac/build.info", "crypto/ripemd/build.info", "crypto/whrlpool/build.info", @@ -119,11 +125,19 @@ our %config = ( "crypto/cmp/build.info", "crypto/encode_decode/build.info", "crypto/ffc/build.info", + "crypto/hpke/build.info", + "crypto/thread/build.info", + "crypto/ml_dsa/build.info", + "crypto/slh_dsa/build.info", + "ssl/record/build.info", + "ssl/rio/build.info", + "ssl/quic/build.info", "apps/lib/build.info", "providers/common/build.info", "providers/implementations/build.info", "providers/fips/build.info", "doc/man1/build.info", + "ssl/record/methods/build.info", "providers/common/der/build.info", "providers/implementations/digests/build.info", "providers/implementations/ciphers/build.info", @@ -137,6 +151,7 @@ our %config = ( "providers/implementations/encode_decode/build.info", "providers/implementations/storemgmt/build.info", "providers/implementations/kem/build.info", + "providers/implementations/skeymgmt/build.info", "providers/implementations/rands/seeding/build.info" ], "build_metadata" => "", @@ -156,7 +171,7 @@ our %config = ( ], "dynamic_engines" => "0", "ex_libs" => [], - "full_version" => "3.0.17", + "full_version" => "3.5.1", "includes" => [], "lflags" => [], "lib_defines" => [ @@ -165,36 +180,51 @@ our %config = ( "libdir" => "", "major" => "3", "makedep_scheme" => "gcc", - "minor" => "0", + "minor" => "5", "openssl_api_defines" => [ - "OPENSSL_CONFIGURED_API=30000" + "OPENSSL_CONFIGURED_API=30500" ], "openssl_feature_defines" => [ "OPENSSL_RAND_SEED_OS", "OPENSSL_THREADS", "OPENSSL_NO_AFALGENG", "OPENSSL_NO_ASAN", + "OPENSSL_NO_BROTLI", + "OPENSSL_NO_BROTLI_DYNAMIC", "OPENSSL_NO_COMP", "OPENSSL_NO_CRYPTO_MDEBUG", "OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE", + "OPENSSL_NO_DEMOS", "OPENSSL_NO_EC_NISTP_64_GCC_128", "OPENSSL_NO_EGD", "OPENSSL_NO_EXTERNAL_TESTS", + "OPENSSL_NO_FIPS_JITTER", "OPENSSL_NO_FUZZ_AFL", "OPENSSL_NO_FUZZ_LIBFUZZER", + "OPENSSL_NO_H3DEMO", + "OPENSSL_NO_HQINTEROP", + "OPENSSL_NO_JITTER", "OPENSSL_NO_KTLS", "OPENSSL_NO_LOADERENG", "OPENSSL_NO_MD2", "OPENSSL_NO_MSAN", + "OPENSSL_NO_PIE", "OPENSSL_NO_RC5", "OPENSSL_NO_SCTP", "OPENSSL_NO_SSL3", "OPENSSL_NO_SSL3_METHOD", + "OPENSSL_NO_SSLKEYLOG", + "OPENSSL_NO_TFO", "OPENSSL_NO_TRACE", "OPENSSL_NO_UBSAN", "OPENSSL_NO_UNIT_TEST", "OPENSSL_NO_UPLINK", "OPENSSL_NO_WEAK_SSL_CIPHERS", + "OPENSSL_NO_WINSTORE", + "OPENSSL_NO_ZLIB", + "OPENSSL_NO_ZLIB_DYNAMIC", + "OPENSSL_NO_ZSTD", + "OPENSSL_NO_ZSTD_DYNAMIC", "OPENSSL_NO_DYNAMIC_ENGINE" ], "openssl_other_defines" => [ @@ -202,11 +232,11 @@ our %config = ( ], "openssl_sys_defines" => [], "openssldir" => "", - "options" => "enable-ssl-trace enable-fips no-afalgeng no-asan no-buildtest-c++ no-comp no-crypto-mdebug no-crypto-mdebug-backtrace no-dynamic-engine no-ec_nistp_64_gcc_128 no-egd no-external-tests no-fuzz-afl no-fuzz-libfuzzer no-ktls no-loadereng no-md2 no-msan no-rc5 no-sctp no-shared no-ssl3 no-ssl3-method no-trace no-ubsan no-unit-test no-uplink no-weak-ssl-ciphers no-zlib no-zlib-dynamic", - "patch" => "17", + "options" => "enable-ssl-trace enable-fips no-afalgeng no-asan no-brotli no-brotli-dynamic no-buildtest-c++ no-comp no-crypto-mdebug no-crypto-mdebug-backtrace no-demos no-dynamic-engine no-ec_nistp_64_gcc_128 no-egd no-external-tests no-fips-jitter no-fuzz-afl no-fuzz-libfuzzer no-h3demo no-hqinterop no-jitter no-ktls no-loadereng no-md2 no-msan no-pie no-rc5 no-sctp no-shared no-ssl3 no-ssl3-method no-sslkeylog no-tfo no-trace no-ubsan no-unit-test no-uplink no-weak-ssl-ciphers no-winstore no-zlib no-zlib-dynamic no-zstd no-zstd-dynamic", + "patch" => "1", "perl_archname" => "x86_64-linux-gnu-thread-multi", "perl_cmd" => "/usr/bin/perl", - "perl_version" => "5.38.2", + "perl_version" => "5.34.0", "perlargv" => [ "no-comp", "no-shared", @@ -236,6 +266,7 @@ our %config = ( "LDLIBS" => undef, "MT" => undef, "MTFLAGS" => undef, + "OBJCOPY" => undef, "OPENSSL_LOCAL_CONFIG_DIR" => undef, "PERL" => undef, "RANLIB" => undef, @@ -259,7 +290,7 @@ our %config = ( "shlib_version" => "3", "sourcedir" => ".", "target" => "BSD-x86_64", - "version" => "3.0.17" + "version" => "3.5.1" ); our %target = ( "AR" => "ar", @@ -267,6 +298,7 @@ our %target = ( "CC" => "cc", "CFLAGS" => "-Wall -O3", "HASHBANGPERL" => "/usr/bin/env perl", + "OBJCOPY" => "objcopy", "RANLIB" => "ranlib", "RC" => "windres", "_conf_fname_int" => [ @@ -278,6 +310,8 @@ our %target = ( "Configurations/shared-info.pl" ], "asm_arch" => "x86_64", + "bin_cflags" => "", + "bin_lflags" => "", "bn_ops" => "SIXTY_FOUR_BIT_LONG", "build_file" => "Makefile", "build_scheme" => [ @@ -321,6 +355,8 @@ our %target = ( our @disablables = ( "acvp-tests", "afalgeng", + "apps", + "argon2", "aria", "asan", "asm", @@ -331,11 +367,14 @@ our @disablables = ( "autoload-config", "bf", "blake2", + "brotli", + "brotli-dynamic", "buildtest-c++", "bulk", "cached-fetch", "camellia", "capieng", + "winstore", "cast", "chacha", "cmac", @@ -344,11 +383,16 @@ our @disablables = ( "comp", "crypto-mdebug", "ct", + "default-thread-pool", + "demos", + "h3demo", + "hqinterop", "deprecated", "des", "devcryptoeng", "dgram", "dh", + "docs", "dsa", "dso", "dtls", @@ -358,6 +402,7 @@ our @disablables = ( "ec_nistp_64_gcc_128", "ecdh", "ecdsa", + "ecx", "egd", "engine", "err", @@ -365,10 +410,15 @@ our @disablables = ( "filenames", "fips", "fips-securitychecks", + "fips-post", + "fips-jitter", "fuzz-afl", "fuzz-libfuzzer", "gost", + "http", "idea", + "integrity-only-ciphers", + "jitter", "ktls", "legacy", "loadereng", @@ -376,6 +426,8 @@ our @disablables = ( "md2", "md4", "mdc2", + "ml-dsa", + "ml-kem", "module", "msan", "multiblock", @@ -384,10 +436,13 @@ our @disablables = ( "ocsp", "padlockeng", "pic", + "pie", "pinshared", "poly1305", "posix-io", "psk", + "quic", + "unstable-qlog", "rc2", "rc4", "rc5", @@ -401,7 +456,9 @@ our @disablables = ( "shared", "siphash", "siv", + "slh-dsa", "sm2", + "sm2-precomp", "sm3", "sm4", "sock", @@ -412,9 +469,13 @@ our @disablables = ( "ssl-trace", "static-engine", "stdio", + "sslkeylog", "tests", + "tfo", + "thread-pool", "threads", "tls", + "tls-deprecated-ec", "trace", "ts", "ubsan", @@ -425,6 +486,8 @@ our @disablables = ( "whirlpool", "zlib", "zlib-dynamic", + "zstd", + "zstd-dynamic", "ssl3", "ssl3-method", "tls1", @@ -445,32 +508,45 @@ our @disablables_int = ( our %disabled = ( "afalgeng" => "option", "asan" => "default", + "brotli" => "default", + "brotli-dynamic" => "default", "buildtest-c++" => "default", "comp" => "option", "crypto-mdebug" => "default", "crypto-mdebug-backtrace" => "default", + "demos" => "default", "dynamic-engine" => "cascade", "ec_nistp_64_gcc_128" => "default", "egd" => "default", "external-tests" => "default", + "fips-jitter" => "default", "fuzz-afl" => "default", "fuzz-libfuzzer" => "default", + "h3demo" => "default", + "hqinterop" => "default", + "jitter" => "default", "ktls" => "default", "loadereng" => "cascade", "md2" => "default", "msan" => "default", + "pie" => "default", "rc5" => "default", "sctp" => "default", "shared" => "option", "ssl3" => "default", "ssl3-method" => "default", + "sslkeylog" => "default", + "tfo" => "default", "trace" => "default", "ubsan" => "default", "unit-test" => "default", "uplink" => "no uplink_arch", "weak-ssl-ciphers" => "default", + "winstore" => "not-windows", "zlib" => "default", - "zlib-dynamic" => "default" + "zlib-dynamic" => "default", + "zstd" => "default", + "zstd-dynamic" => "default" ); our %withargs = (); our %unified_info = ( @@ -696,6 +772,11 @@ our %unified_info = ( "pod" => "1" } }, + "doc/man1/openssl-skeyutl.pod" => { + "doc/man1/openssl-skeyutl.pod.in" => { + "pod" => "1" + } + }, "doc/man1/openssl-smime.pod" => { "doc/man1/openssl-smime.pod.in" => { "pod" => "1" @@ -753,6 +834,21 @@ our %unified_info = ( } }, "generate" => { + "exporters/OpenSSLConfig.cmake" => { + "exporter" => "cmake" + }, + "exporters/OpenSSLConfigVersion.cmake" => { + "exporter" => "cmake" + }, + "exporters/libcrypto.pc" => { + "exporter" => "pkg-config" + }, + "exporters/libssl.pc" => { + "exporter" => "pkg-config" + }, + "exporters/openssl.pc" => { + "exporter" => "pkg-config" + }, "include/openssl/configuration.h" => { "skip" => "1" } @@ -773,6 +869,9 @@ our %unified_info = ( "providers/liblegacy.a" => { "noinst" => "1" }, + "providers/libtemplate.a" => { + "noinst" => "1" + }, "test/libtestutil.a" => { "has_main" => "1", "noinst" => "1" @@ -790,6 +889,9 @@ our %unified_info = ( } }, "programs" => { + "fuzz/acert-test" => { + "noinst" => "1" + }, "fuzz/asn1-test" => { "noinst" => "1" }, @@ -820,9 +922,60 @@ our %unified_info = ( "fuzz/ct-test" => { "noinst" => "1" }, + "fuzz/decoder-test" => { + "noinst" => "1" + }, + "fuzz/dtlsclient-test" => { + "noinst" => "1" + }, + "fuzz/dtlsserver-test" => { + "noinst" => "1" + }, + "fuzz/hashtable-test" => { + "noinst" => "1" + }, + "fuzz/ml-dsa-test" => { + "noinst" => "1" + }, + "fuzz/ml-kem-test" => { + "noinst" => "1" + }, + "fuzz/pem-test" => { + "noinst" => "1" + }, + "fuzz/provider-test" => { + "noinst" => "1" + }, + "fuzz/punycode-test" => { + "noinst" => "1" + }, + "fuzz/quic-client-test" => { + "noinst" => "1" + }, + "fuzz/quic-lcidm-test" => { + "noinst" => "1" + }, + "fuzz/quic-rcidm-test" => { + "noinst" => "1" + }, + "fuzz/quic-server-test" => { + "noinst" => "1" + }, + "fuzz/quic-srtm-test" => { + "noinst" => "1" + }, "fuzz/server-test" => { "noinst" => "1" }, + "fuzz/slh-dsa-test" => { + "noinst" => "1" + }, + "fuzz/smime-test" => { + "noinst" => "1" + }, + "fuzz/v3name-test" => { + "noinst" => "1" + }, "fuzz/x509-test" => { "noinst" => "1" }, @@ -874,18 +1027,30 @@ our %unified_info = ( "test/bftest" => { "noinst" => "1" }, + "test/bio_addr_test" => { + "noinst" => "1" + }, + "test/bio_base64_test" => { + "noinst" => "1" + }, "test/bio_callback_test" => { "noinst" => "1" }, "test/bio_core_test" => { "noinst" => "1" }, + "test/bio_dgram_test" => { + "noinst" => "1" + }, "test/bio_enc_test" => { "noinst" => "1" }, "test/bio_memleak_test" => { "noinst" => "1" }, + "test/bio_meth_test" => { + "noinst" => "1" + }, "test/bio_prefix_text" => { "noinst" => "1" }, @@ -895,6 +1060,9 @@ our %unified_info = ( "test/bio_readbuffer_test" => { "noinst" => "1" }, + "test/bio_tfo_test" => { + "noinst" => "1" + }, "test/bioprinttest" => { "noinst" => "1" }, @@ -904,6 +1072,9 @@ our %unified_info = ( "test/bntest" => { "noinst" => "1" }, + "test/build_wincrypt_test" => { + "noinst" => "1" + }, "test/buildtest_c_aes" => { "noinst" => "1" }, @@ -919,6 +1090,9 @@ our %unified_info = ( "test/buildtest_c_buffer" => { "noinst" => "1" }, + "test/buildtest_c_byteorder" => { + "noinst" => "1" + }, "test/buildtest_c_camellia" => { "noinst" => "1" }, @@ -943,9 +1117,6 @@ our %unified_info = ( "test/buildtest_c_core_dispatch" => { "noinst" => "1" }, - "test/buildtest_c_core_names" => { - "noinst" => "1" - }, "test/buildtest_c_core_object" => { "noinst" => "1" }, @@ -970,6 +1141,9 @@ our %unified_info = ( "test/buildtest_c_e_os2" => { "noinst" => "1" }, + "test/buildtest_c_e_ostime" => { + "noinst" => "1" + }, "test/buildtest_c_ebcdic" => { "noinst" => "1" }, @@ -997,12 +1171,18 @@ our %unified_info = ( "test/buildtest_c_hmac" => { "noinst" => "1" }, + "test/buildtest_c_hpke" => { + "noinst" => "1" + }, "test/buildtest_c_http" => { "noinst" => "1" }, "test/buildtest_c_idea" => { "noinst" => "1" }, + "test/buildtest_c_indicator" => { + "noinst" => "1" + }, "test/buildtest_c_kdf" => { "noinst" => "1" }, @@ -1018,6 +1198,9 @@ our %unified_info = ( "test/buildtest_c_mdc2" => { "noinst" => "1" }, + "test/buildtest_c_ml_kem" => { + "noinst" => "1" + }, "test/buildtest_c_modes" => { "noinst" => "1" }, @@ -1048,6 +1231,9 @@ our %unified_info = ( "test/buildtest_c_provider" => { "noinst" => "1" }, + "test/buildtest_c_quic" => { + "noinst" => "1" + }, "test/buildtest_c_rand" => { "noinst" => "1" }, @@ -1090,6 +1276,9 @@ our %unified_info = ( "test/buildtest_c_symhacks" => { "noinst" => "1" }, + "test/buildtest_c_thread" => { + "noinst" => "1" + }, "test/buildtest_c_tls1" => { "noinst" => "1" }, @@ -1105,6 +1294,12 @@ our %unified_info = ( "test/buildtest_c_whrlpool" => { "noinst" => "1" }, + "test/byteorder_test" => { + "noinst" => "1" + }, + "test/ca_internals_test" => { + "noinst" => "1" + }, "test/casttest" => { "noinst" => "1" }, @@ -1189,6 +1384,9 @@ our %unified_info = ( "test/danetest" => { "noinst" => "1" }, + "test/decoder_propq_test" => { + "noinst" => "1" + }, "test/defltfips_test" => { "noinst" => "1" }, @@ -1261,15 +1459,24 @@ our %unified_info = ( "test/evp_pkey_ctx_new_from_name" => { "noinst" => "1" }, + "test/evp_pkey_dhkem_test" => { + "noinst" => "1" + }, "test/evp_pkey_dparams_test" => { "noinst" => "1" }, "test/evp_pkey_provided_test" => { "noinst" => "1" }, + "test/evp_skey_test" => { + "noinst" => "1" + }, "test/evp_test" => { "noinst" => "1" }, + "test/evp_xof_test" => { + "noinst" => "1" + }, "test/exdatatest" => { "noinst" => "1" }, @@ -1297,6 +1504,9 @@ our %unified_info = ( "test/hmactest" => { "noinst" => "1" }, + "test/hpke_test" => { + "noinst" => "1" + }, "test/http_test" => { "noinst" => "1" }, @@ -1306,12 +1516,18 @@ our %unified_info = ( "test/igetest" => { "noinst" => "1" }, + "test/json_test" => { + "noinst" => "1" + }, "test/keymgmt_internal_test" => { "noinst" => "1" }, "test/lhash_test" => { "noinst" => "1" }, + "test/list_test" => { + "noinst" => "1" + }, "test/localetest" => { "noinst" => "1" }, @@ -1321,9 +1537,21 @@ our %unified_info = ( "test/mdc2test" => { "noinst" => "1" }, + "test/membio_test" => { + "noinst" => "1" + }, "test/memleaktest" => { "noinst" => "1" }, + "test/ml_dsa_test" => { + "noinst" => "1" + }, + "test/ml_kem_evp_extra_test" => { + "noinst" => "1" + }, + "test/ml_kem_internal_test" => { + "noinst" => "1" + }, "test/modes_internal_test" => { "noinst" => "1" }, @@ -1342,6 +1570,9 @@ our %unified_info = ( "test/packettest" => { "noinst" => "1" }, + "test/pairwise_fail_test" => { + "noinst" => "1" + }, "test/param_build_test" => { "noinst" => "1" }, @@ -1366,6 +1597,9 @@ our %unified_info = ( "test/pemtest" => { "noinst" => "1" }, + "test/pkcs12_api_test" => { + "noinst" => "1" + }, "test/pkcs12_format_test" => { "noinst" => "1" }, @@ -1381,6 +1615,9 @@ our %unified_info = ( "test/poly1305_internal_test" => { "noinst" => "1" }, + "test/priority_queue_test" => { + "noinst" => "1" + }, "test/property_test" => { "noinst" => "1" }, @@ -1390,6 +1627,9 @@ our %unified_info = ( "test/provfetchtest" => { "noinst" => "1" }, + "test/provider_default_search_path_test" => { + "noinst" => "1" + }, "test/provider_fallback_test" => { "noinst" => "1" }, @@ -1408,6 +1648,72 @@ our %unified_info = ( "test/punycode_test" => { "noinst" => "1" }, + "test/quic_ackm_test" => { + "noinst" => "1" + }, + "test/quic_cc_test" => { + "noinst" => "1" + }, + "test/quic_cfq_test" => { + "noinst" => "1" + }, + "test/quic_client_test" => { + "noinst" => "1" + }, + "test/quic_fc_test" => { + "noinst" => "1" + }, + "test/quic_fifd_test" => { + "noinst" => "1" + }, + "test/quic_lcidm_test" => { + "noinst" => "1" + }, + "test/quic_multistream_test" => { + "noinst" => "1" + }, + "test/quic_newcid_test" => { + "noinst" => "1" + }, + "test/quic_qlog_test" => { + "noinst" => "1" + }, + "test/quic_radix_test" => { + "noinst" => "1" + }, + "test/quic_rcidm_test" => { + "noinst" => "1" + }, + "test/quic_record_test" => { + "noinst" => "1" + }, + "test/quic_srt_gen_test" => { + "noinst" => "1" + }, + "test/quic_srtm_test" => { + "noinst" => "1" + }, + "test/quic_stream_test" => { + "noinst" => "1" + }, + "test/quic_tserver_test" => { + "noinst" => "1" + }, + "test/quic_txp_test" => { + "noinst" => "1" + }, + "test/quic_txpim_test" => { + "noinst" => "1" + }, + "test/quic_wire_test" => { + "noinst" => "1" + }, + "test/quicapitest" => { + "noinst" => "1" + }, + "test/quicfaultstest" => { + "noinst" => "1" + }, "test/rand_status_test" => { "noinst" => "1" }, @@ -1423,12 +1729,15 @@ our %unified_info = ( "test/rc5test" => { "noinst" => "1" }, - "test/rdrand_sanitytest" => { + "test/rdcpu_sanitytest" => { "noinst" => "1" }, "test/recordlentest" => { "noinst" => "1" }, + "test/rpktest" => { + "noinst" => "1" + }, "test/rsa_complex" => { "noinst" => "1" }, @@ -1441,6 +1750,12 @@ our %unified_info = ( "test/rsa_test" => { "noinst" => "1" }, + "test/rsa_x931_test" => { + "noinst" => "1" + }, + "test/safe_math_test" => { + "noinst" => "1" + }, "test/sanitytest" => { "noinst" => "1" }, @@ -1456,6 +1771,9 @@ our %unified_info = ( "test/siphash_internal_test" => { "noinst" => "1" }, + "test/slh_dsa_test" => { + "noinst" => "1" + }, "test/sm2_internal_test" => { "noinst" => "1" }, @@ -1477,6 +1795,9 @@ our %unified_info = ( "test/ssl_ctx_test" => { "noinst" => "1" }, + "test/ssl_handshake_rtt_test" => { + "noinst" => "1" + }, "test/ssl_old_test" => { "noinst" => "1" }, @@ -1498,12 +1819,18 @@ our %unified_info = ( "test/stack_test" => { "noinst" => "1" }, + "test/strtoultest" => { + "noinst" => "1" + }, "test/sysdefaulttest" => { "noinst" => "1" }, "test/test_test" => { "noinst" => "1" }, + "test/threadpool_test" => { + "noinst" => "1" + }, "test/threadstest" => { "noinst" => "1" }, @@ -1513,12 +1840,18 @@ our %unified_info = ( "test/time_offset_test" => { "noinst" => "1" }, + "test/time_test" => { + "noinst" => "1" + }, "test/tls13ccstest" => { "noinst" => "1" }, "test/tls13encryptiontest" => { "noinst" => "1" }, + "test/tls13groupselection_test" => { + "noinst" => "1" + }, "test/trace_api_test" => { "noinst" => "1" }, @@ -1546,6 +1879,9 @@ our %unified_info = ( "test/wpackettest" => { "noinst" => "1" }, + "test/x509_acert_test" => { + "noinst" => "1" + }, "test/x509_check_cert_pkey_test" => { "noinst" => "1" }, @@ -1555,6 +1891,15 @@ our %unified_info = ( "test/x509_internal_test" => { "noinst" => "1" }, + "test/x509_load_cert_file_test" => { + "noinst" => "1" + }, + "test/x509_req_test" => { + "noinst" => "1" + }, + "test/x509_test" => { + "noinst" => "1" + }, "test/x509_time_test" => { "noinst" => "1" }, @@ -1634,6 +1979,7 @@ our %unified_info = ( "ECP_NISTZ256_ASM", "KECCAK1600_ASM", "OPENSSL_CPUID_OBJ", + "OPENSSL_IA32_SSE2", "SHA1_ASM", "SHA256_ASM", "SHA512_ASM", @@ -1662,6 +2008,9 @@ our %unified_info = ( "MD5_ASM", "RC4_ASM" ], + "test/endecode_test" => [ + "STATIC_LEGACY" + ], "test/evp_extra_test" => [ "STATIC_LEGACY" ], @@ -1674,14 +2023,21 @@ our %unified_info = ( }, "depends" => { "" => [ + "OpenSSLConfigVersion.cmake", + "crypto/params_idx.c", + "exporters/OpenSSLConfigVersion.cmake", + "exporters/openssl.pc", "include/crypto/bn_conf.h", "include/crypto/dso_conf.h", + "include/internal/param_names.h", "include/openssl/asn1.h", "include/openssl/asn1t.h", "include/openssl/bio.h", "include/openssl/cmp.h", "include/openssl/cms.h", + "include/openssl/comp.h", "include/openssl/conf.h", + "include/openssl/core_names.h", "include/openssl/crmf.h", "include/openssl/crypto.h", "include/openssl/ct.h", @@ -1698,10 +2054,22 @@ our %unified_info = ( "include/openssl/ssl.h", "include/openssl/ui.h", "include/openssl/x509.h", + "include/openssl/x509_acert.h", "include/openssl/x509_vfy.h", "include/openssl/x509v3.h", + "openssl.pc", "test/provider_internal_test.cnf" ], + "OpenSSLConfig.cmake" => [ + "builddata.pm" + ], + "OpenSSLConfigVersion.cmake" => [ + "OpenSSLConfig.cmake", + "builddata.pm" + ], + "apps/ca_internals_test-bin-ca.o" => [ + "apps/progs.h" + ], "apps/lib/cmp_client_test-bin-cmp_mock_srv.o" => [ "apps/progs.h" ], @@ -1847,6 +2215,9 @@ our %unified_info = ( "apps/openssl-bin-sess_id.o" => [ "apps/progs.h" ], + "apps/openssl-bin-skeyutl.o" => [ + "apps/progs.h" + ], "apps/openssl-bin-smime.o" => [ "apps/progs.h" ], @@ -1935,6 +2306,9 @@ our %unified_info = ( "crypto/libcrypto-lib-info.o" => [ "crypto/buildinf.h" ], + "crypto/params_idx.c" => [ + "util/perl|OpenSSL/paramnames.pm" + ], "crypto/rc4/rc4-586.S" => [ "crypto/perlasm/x86asm.pl" ], @@ -2100,6 +2474,9 @@ our %unified_info = ( "doc/html/man1/openssl-sess_id.html" => [ "doc/man1/openssl-sess_id.pod" ], + "doc/html/man1/openssl-skeyutl.html" => [ + "doc/man1/openssl-skeyutl.pod" + ], "doc/html/man1/openssl-smime.html" => [ "doc/man1/openssl-smime.pod" ], @@ -2241,6 +2618,9 @@ our %unified_info = ( "doc/html/man3/BIO_get_ex_new_index.html" => [ "doc/man3/BIO_get_ex_new_index.pod" ], + "doc/html/man3/BIO_get_rpoll_descriptor.html" => [ + "doc/man3/BIO_get_rpoll_descriptor.pod" + ], "doc/html/man3/BIO_meth_new.html" => [ "doc/man3/BIO_meth_new.pod" ], @@ -2277,6 +2657,9 @@ our %unified_info = ( "doc/html/man3/BIO_s_datagram.html" => [ "doc/man3/BIO_s_datagram.pod" ], + "doc/html/man3/BIO_s_dgram_pair.html" => [ + "doc/man3/BIO_s_dgram_pair.pod" + ], "doc/html/man3/BIO_s_fd.html" => [ "doc/man3/BIO_s_fd.pod" ], @@ -2292,6 +2675,9 @@ our %unified_info = ( "doc/html/man3/BIO_s_socket.html" => [ "doc/man3/BIO_s_socket.pod" ], + "doc/html/man3/BIO_sendmmsg.html" => [ + "doc/man3/BIO_sendmmsg.pod" + ], "doc/html/man3/BIO_set_callback.html" => [ "doc/man3/BIO_set_callback.pod" ], @@ -2364,6 +2750,9 @@ our %unified_info = ( "doc/html/man3/BUF_MEM_new.html" => [ "doc/man3/BUF_MEM_new.pod" ], + "doc/html/man3/CMAC_CTX.html" => [ + "doc/man3/CMAC_CTX.pod" + ], "doc/html/man3/CMS_EncryptedData_decrypt.html" => [ "doc/man3/CMS_EncryptedData_decrypt.pod" ], @@ -2430,6 +2819,9 @@ our %unified_info = ( "doc/html/man3/CMS_verify_receipt.html" => [ "doc/man3/CMS_verify_receipt.pod" ], + "doc/html/man3/COMP_CTX_new.html" => [ + "doc/man3/COMP_CTX_new.pod" + ], "doc/html/man3/CONF_modules_free.html" => [ "doc/man3/CONF_modules_free.pod" ], @@ -2529,6 +2921,12 @@ our %unified_info = ( "doc/html/man3/DTLS_set_timer_cb.html" => [ "doc/man3/DTLS_set_timer_cb.pod" ], + "doc/html/man3/DTLSv1_get_timeout.html" => [ + "doc/man3/DTLSv1_get_timeout.pod" + ], + "doc/html/man3/DTLSv1_handle_timeout.html" => [ + "doc/man3/DTLSv1_handle_timeout.pod" + ], "doc/html/man3/DTLSv1_listen.html" => [ "doc/man3/DTLSv1_listen.pod" ], @@ -2667,6 +3065,9 @@ our %unified_info = ( "doc/html/man3/EVP_PKEY_CTX_get0_pkey.html" => [ "doc/man3/EVP_PKEY_CTX_get0_pkey.pod" ], + "doc/html/man3/EVP_PKEY_CTX_get_algor.html" => [ + "doc/man3/EVP_PKEY_CTX_get_algor.pod" + ], "doc/html/man3/EVP_PKEY_CTX_new.html" => [ "doc/man3/EVP_PKEY_CTX_new.pod" ], @@ -2784,6 +3185,12 @@ our %unified_info = ( "doc/html/man3/EVP_SIGNATURE.html" => [ "doc/man3/EVP_SIGNATURE.pod" ], + "doc/html/man3/EVP_SKEY.html" => [ + "doc/man3/EVP_SKEY.pod" + ], + "doc/html/man3/EVP_SKEYMGMT.html" => [ + "doc/man3/EVP_SKEYMGMT.pod" + ], "doc/html/man3/EVP_SealInit.html" => [ "doc/man3/EVP_SealInit.pod" ], @@ -2871,6 +3278,9 @@ our %unified_info = ( "doc/html/man3/EVP_whirlpool.html" => [ "doc/man3/EVP_whirlpool.pod" ], + "doc/html/man3/GENERAL_NAME.html" => [ + "doc/man3/GENERAL_NAME.pod" + ], "doc/html/man3/HMAC.html" => [ "doc/man3/HMAC.pod" ], @@ -2943,9 +3353,15 @@ our %unified_info = ( "doc/html/man3/OPENSSL_load_builtin_modules.html" => [ "doc/man3/OPENSSL_load_builtin_modules.pod" ], + "doc/html/man3/OPENSSL_load_u16_le.html" => [ + "doc/man3/OPENSSL_load_u16_le.pod" + ], "doc/html/man3/OPENSSL_malloc.html" => [ "doc/man3/OPENSSL_malloc.pod" ], + "doc/html/man3/OPENSSL_riscvcap.html" => [ + "doc/man3/OPENSSL_riscvcap.pod" + ], "doc/html/man3/OPENSSL_s390xcap.html" => [ "doc/man3/OPENSSL_s390xcap.pod" ], @@ -2961,12 +3377,18 @@ our %unified_info = ( "doc/html/man3/OSSL_CALLBACK.html" => [ "doc/man3/OSSL_CALLBACK.pod" ], + "doc/html/man3/OSSL_CMP_ATAV_set0.html" => [ + "doc/man3/OSSL_CMP_ATAV_set0.pod" + ], "doc/html/man3/OSSL_CMP_CTX_new.html" => [ "doc/man3/OSSL_CMP_CTX_new.pod" ], "doc/html/man3/OSSL_CMP_HDR_get0_transactionID.html" => [ "doc/man3/OSSL_CMP_HDR_get0_transactionID.pod" ], + "doc/html/man3/OSSL_CMP_ITAV_new_caCerts.html" => [ + "doc/man3/OSSL_CMP_ITAV_new_caCerts.pod" + ], "doc/html/man3/OSSL_CMP_ITAV_set0.html" => [ "doc/man3/OSSL_CMP_ITAV_set0.pod" ], @@ -3036,9 +3458,18 @@ our %unified_info = ( "doc/html/man3/OSSL_ENCODER_to_bio.html" => [ "doc/man3/OSSL_ENCODER_to_bio.pod" ], + "doc/html/man3/OSSL_ERR_STATE_save.html" => [ + "doc/man3/OSSL_ERR_STATE_save.pod" + ], "doc/html/man3/OSSL_ESS_check_signing_certs.html" => [ "doc/man3/OSSL_ESS_check_signing_certs.pod" ], + "doc/html/man3/OSSL_GENERAL_NAMES_print.html" => [ + "doc/man3/OSSL_GENERAL_NAMES_print.pod" + ], + "doc/html/man3/OSSL_HPKE_CTX_new.html" => [ + "doc/man3/OSSL_HPKE_CTX_new.pod" + ], "doc/html/man3/OSSL_HTTP_REQ_CTX.html" => [ "doc/man3/OSSL_HTTP_REQ_CTX.pod" ], @@ -3048,12 +3479,24 @@ our %unified_info = ( "doc/html/man3/OSSL_HTTP_transfer.html" => [ "doc/man3/OSSL_HTTP_transfer.pod" ], + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX.html" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX.pod" + ], + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX_print.html" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX_print.pod" + ], + "doc/html/man3/OSSL_INDICATOR_set_callback.html" => [ + "doc/man3/OSSL_INDICATOR_set_callback.pod" + ], "doc/html/man3/OSSL_ITEM.html" => [ "doc/man3/OSSL_ITEM.pod" ], "doc/html/man3/OSSL_LIB_CTX.html" => [ "doc/man3/OSSL_LIB_CTX.pod" ], + "doc/html/man3/OSSL_LIB_CTX_set_conf_diagnostics.html" => [ + "doc/man3/OSSL_LIB_CTX_set_conf_diagnostics.pod" + ], "doc/html/man3/OSSL_PARAM.html" => [ "doc/man3/OSSL_PARAM.pod" ], @@ -3069,9 +3512,15 @@ our %unified_info = ( "doc/html/man3/OSSL_PARAM_int.html" => [ "doc/man3/OSSL_PARAM_int.pod" ], + "doc/html/man3/OSSL_PARAM_print_to_bio.html" => [ + "doc/man3/OSSL_PARAM_print_to_bio.pod" + ], "doc/html/man3/OSSL_PROVIDER.html" => [ "doc/man3/OSSL_PROVIDER.pod" ], + "doc/html/man3/OSSL_QUIC_client_method.html" => [ + "doc/man3/OSSL_QUIC_client_method.pod" + ], "doc/html/man3/OSSL_SELF_TEST_new.html" => [ "doc/man3/OSSL_SELF_TEST_new.pod" ], @@ -3096,6 +3545,9 @@ our %unified_info = ( "doc/html/man3/OSSL_STORE_open.html" => [ "doc/man3/OSSL_STORE_open.pod" ], + "doc/html/man3/OSSL_sleep.html" => [ + "doc/man3/OSSL_sleep.pod" + ], "doc/html/man3/OSSL_trace_enabled.html" => [ "doc/man3/OSSL_trace_enabled.pod" ], @@ -3111,6 +3563,9 @@ our %unified_info = ( "doc/html/man3/OpenSSL_version.html" => [ "doc/man3/OpenSSL_version.pod" ], + "doc/html/man3/PBMAC1_get1_pbkdf2_param.html" => [ + "doc/man3/PBMAC1_get1_pbkdf2_param.pod" + ], "doc/html/man3/PEM_X509_INFO_read_bio_ex.html" => [ "doc/man3/PEM_X509_INFO_read_bio_ex.pod" ], @@ -3147,6 +3602,9 @@ our %unified_info = ( "doc/html/man3/PKCS12_SAFEBAG_get1_cert.html" => [ "doc/man3/PKCS12_SAFEBAG_get1_cert.pod" ], + "doc/html/man3/PKCS12_SAFEBAG_set0_attrs.html" => [ + "doc/man3/PKCS12_SAFEBAG_set0_attrs.pod" + ], "doc/html/man3/PKCS12_add1_attr_by_NID.html" => [ "doc/man3/PKCS12_add1_attr_by_NID.pod" ], @@ -3420,6 +3878,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set0_CA_list.html" => [ "doc/man3/SSL_CTX_set0_CA_list.pod" ], + "doc/html/man3/SSL_CTX_set1_cert_comp_preference.html" => [ + "doc/man3/SSL_CTX_set1_cert_comp_preference.pod" + ], "doc/html/man3/SSL_CTX_set1_curves.html" => [ "doc/man3/SSL_CTX_set1_curves.pod" ], @@ -3459,6 +3920,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_default_passwd_cb.html" => [ "doc/man3/SSL_CTX_set_default_passwd_cb.pod" ], + "doc/html/man3/SSL_CTX_set_domain_flags.html" => [ + "doc/man3/SSL_CTX_set_domain_flags.pod" + ], "doc/html/man3/SSL_CTX_set_generate_session_id.html" => [ "doc/man3/SSL_CTX_set_generate_session_id.pod" ], @@ -3480,6 +3944,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_msg_callback.html" => [ "doc/man3/SSL_CTX_set_msg_callback.pod" ], + "doc/html/man3/SSL_CTX_set_new_pending_conn_cb.html" => [ + "doc/man3/SSL_CTX_set_new_pending_conn_cb.pod" + ], "doc/html/man3/SSL_CTX_set_num_tickets.html" => [ "doc/man3/SSL_CTX_set_num_tickets.pod" ], @@ -3594,6 +4061,9 @@ our %unified_info = ( "doc/html/man3/SSL_accept.html" => [ "doc/man3/SSL_accept.pod" ], + "doc/html/man3/SSL_accept_stream.html" => [ + "doc/man3/SSL_accept_stream.pod" + ], "doc/html/man3/SSL_alert_type_string.html" => [ "doc/man3/SSL_alert_type_string.pod" ], @@ -3621,9 +4091,21 @@ our %unified_info = ( "doc/html/man3/SSL_free.html" => [ "doc/man3/SSL_free.pod" ], + "doc/html/man3/SSL_get0_connection.html" => [ + "doc/man3/SSL_get0_connection.pod" + ], + "doc/html/man3/SSL_get0_group_name.html" => [ + "doc/man3/SSL_get0_group_name.pod" + ], + "doc/html/man3/SSL_get0_peer_rpk.html" => [ + "doc/man3/SSL_get0_peer_rpk.pod" + ], "doc/html/man3/SSL_get0_peer_scts.html" => [ "doc/man3/SSL_get0_peer_scts.pod" ], + "doc/html/man3/SSL_get1_builtin_sigalgs.html" => [ + "doc/man3/SSL_get1_builtin_sigalgs.pod" + ], "doc/html/man3/SSL_get_SSL_CTX.html" => [ "doc/man3/SSL_get_SSL_CTX.pod" ], @@ -3639,6 +4121,9 @@ our %unified_info = ( "doc/html/man3/SSL_get_client_random.html" => [ "doc/man3/SSL_get_client_random.pod" ], + "doc/html/man3/SSL_get_conn_close_info.html" => [ + "doc/man3/SSL_get_conn_close_info.pod" + ], "doc/html/man3/SSL_get_current_cipher.html" => [ "doc/man3/SSL_get_current_cipher.pod" ], @@ -3648,12 +4133,18 @@ our %unified_info = ( "doc/html/man3/SSL_get_error.html" => [ "doc/man3/SSL_get_error.pod" ], + "doc/html/man3/SSL_get_event_timeout.html" => [ + "doc/man3/SSL_get_event_timeout.pod" + ], "doc/html/man3/SSL_get_extms_support.html" => [ "doc/man3/SSL_get_extms_support.pod" ], "doc/html/man3/SSL_get_fd.html" => [ "doc/man3/SSL_get_fd.pod" ], + "doc/html/man3/SSL_get_handshake_rtt.html" => [ + "doc/man3/SSL_get_handshake_rtt.pod" + ], "doc/html/man3/SSL_get_peer_cert_chain.html" => [ "doc/man3/SSL_get_peer_cert_chain.pod" ], @@ -3672,12 +4163,24 @@ our %unified_info = ( "doc/html/man3/SSL_get_rbio.html" => [ "doc/man3/SSL_get_rbio.pod" ], + "doc/html/man3/SSL_get_rpoll_descriptor.html" => [ + "doc/man3/SSL_get_rpoll_descriptor.pod" + ], "doc/html/man3/SSL_get_session.html" => [ "doc/man3/SSL_get_session.pod" ], "doc/html/man3/SSL_get_shared_sigalgs.html" => [ "doc/man3/SSL_get_shared_sigalgs.pod" ], + "doc/html/man3/SSL_get_stream_id.html" => [ + "doc/man3/SSL_get_stream_id.pod" + ], + "doc/html/man3/SSL_get_stream_read_state.html" => [ + "doc/man3/SSL_get_stream_read_state.pod" + ], + "doc/html/man3/SSL_get_value_uint.html" => [ + "doc/man3/SSL_get_value_uint.pod" + ], "doc/html/man3/SSL_get_verify_result.html" => [ "doc/man3/SSL_get_verify_result.pod" ], @@ -3687,9 +4190,15 @@ our %unified_info = ( "doc/html/man3/SSL_group_to_name.html" => [ "doc/man3/SSL_group_to_name.pod" ], + "doc/html/man3/SSL_handle_events.html" => [ + "doc/man3/SSL_handle_events.pod" + ], "doc/html/man3/SSL_in_init.html" => [ "doc/man3/SSL_in_init.pod" ], + "doc/html/man3/SSL_inject_net_dgram.html" => [ + "doc/man3/SSL_inject_net_dgram.pod" + ], "doc/html/man3/SSL_key_update.html" => [ "doc/man3/SSL_key_update.pod" ], @@ -3702,9 +4211,21 @@ our %unified_info = ( "doc/html/man3/SSL_new.html" => [ "doc/man3/SSL_new.pod" ], + "doc/html/man3/SSL_new_domain.html" => [ + "doc/man3/SSL_new_domain.pod" + ], + "doc/html/man3/SSL_new_listener.html" => [ + "doc/man3/SSL_new_listener.pod" + ], + "doc/html/man3/SSL_new_stream.html" => [ + "doc/man3/SSL_new_stream.pod" + ], "doc/html/man3/SSL_pending.html" => [ "doc/man3/SSL_pending.pod" ], + "doc/html/man3/SSL_poll.html" => [ + "doc/man3/SSL_poll.pod" + ], "doc/html/man3/SSL_read.html" => [ "doc/man3/SSL_read.pod" ], @@ -3720,24 +4241,45 @@ our %unified_info = ( "doc/html/man3/SSL_set1_host.html" => [ "doc/man3/SSL_set1_host.pod" ], + "doc/html/man3/SSL_set1_initial_peer_addr.html" => [ + "doc/man3/SSL_set1_initial_peer_addr.pod" + ], + "doc/html/man3/SSL_set1_server_cert_type.html" => [ + "doc/man3/SSL_set1_server_cert_type.pod" + ], "doc/html/man3/SSL_set_async_callback.html" => [ "doc/man3/SSL_set_async_callback.pod" ], "doc/html/man3/SSL_set_bio.html" => [ "doc/man3/SSL_set_bio.pod" ], + "doc/html/man3/SSL_set_blocking_mode.html" => [ + "doc/man3/SSL_set_blocking_mode.pod" + ], "doc/html/man3/SSL_set_connect_state.html" => [ "doc/man3/SSL_set_connect_state.pod" ], + "doc/html/man3/SSL_set_default_stream_mode.html" => [ + "doc/man3/SSL_set_default_stream_mode.pod" + ], "doc/html/man3/SSL_set_fd.html" => [ "doc/man3/SSL_set_fd.pod" ], + "doc/html/man3/SSL_set_incoming_stream_policy.html" => [ + "doc/man3/SSL_set_incoming_stream_policy.pod" + ], + "doc/html/man3/SSL_set_quic_tls_cbs.html" => [ + "doc/man3/SSL_set_quic_tls_cbs.pod" + ], "doc/html/man3/SSL_set_retry_verify.html" => [ "doc/man3/SSL_set_retry_verify.pod" ], "doc/html/man3/SSL_set_session.html" => [ "doc/man3/SSL_set_session.pod" ], + "doc/html/man3/SSL_set_session_secret_cb.html" => [ + "doc/man3/SSL_set_session_secret_cb.pod" + ], "doc/html/man3/SSL_set_shutdown.html" => [ "doc/man3/SSL_set_shutdown.pod" ], @@ -3750,6 +4292,12 @@ our %unified_info = ( "doc/html/man3/SSL_state_string.html" => [ "doc/man3/SSL_state_string.pod" ], + "doc/html/man3/SSL_stream_conclude.html" => [ + "doc/man3/SSL_stream_conclude.pod" + ], + "doc/html/man3/SSL_stream_reset.html" => [ + "doc/man3/SSL_stream_reset.pod" + ], "doc/html/man3/SSL_want.html" => [ "doc/man3/SSL_want.pod" ], @@ -3759,8 +4307,8 @@ our %unified_info = ( "doc/html/man3/TS_RESP_CTX_new.html" => [ "doc/man3/TS_RESP_CTX_new.pod" ], - "doc/html/man3/TS_VERIFY_CTX_set_certs.html" => [ - "doc/man3/TS_VERIFY_CTX_set_certs.pod" + "doc/html/man3/TS_VERIFY_CTX.html" => [ + "doc/man3/TS_VERIFY_CTX.pod" ], "doc/html/man3/UI_STRING.html" => [ "doc/man3/UI_STRING.pod" @@ -3780,6 +4328,21 @@ our %unified_info = ( "doc/html/man3/X509V3_set_ctx.html" => [ "doc/man3/X509V3_set_ctx.pod" ], + "doc/html/man3/X509_ACERT_add1_attr.html" => [ + "doc/man3/X509_ACERT_add1_attr.pod" + ], + "doc/html/man3/X509_ACERT_add_attr_nconf.html" => [ + "doc/man3/X509_ACERT_add_attr_nconf.pod" + ], + "doc/html/man3/X509_ACERT_get0_holder_baseCertId.html" => [ + "doc/man3/X509_ACERT_get0_holder_baseCertId.pod" + ], + "doc/html/man3/X509_ACERT_get_attr.html" => [ + "doc/man3/X509_ACERT_get_attr.pod" + ], + "doc/html/man3/X509_ACERT_print_ex.html" => [ + "doc/man3/X509_ACERT_print_ex.pod" + ], "doc/html/man3/X509_ALGOR_dup.html" => [ "doc/man3/X509_ALGOR_dup.pod" ], @@ -3828,6 +4391,9 @@ our %unified_info = ( "doc/html/man3/X509_SIG_get0.html" => [ "doc/man3/X509_SIG_get0.pod" ], + "doc/html/man3/X509_STORE_CTX_get_by_subject.html" => [ + "doc/man3/X509_STORE_CTX_get_by_subject.pod" + ], "doc/html/man3/X509_STORE_CTX_get_error.html" => [ "doc/man3/X509_STORE_CTX_get_error.pod" ], @@ -3894,6 +4460,9 @@ our %unified_info = ( "doc/html/man3/X509_get0_uids.html" => [ "doc/man3/X509_get0_uids.pod" ], + "doc/html/man3/X509_get_default_cert_file.html" => [ + "doc/man3/X509_get_default_cert_file.pod" + ], "doc/html/man3/X509_get_extension_flags.html" => [ "doc/man3/X509_get_extension_flags.pod" ], @@ -4017,9 +4586,15 @@ our %unified_info = ( "doc/html/man7/EVP_CIPHER-SM4.html" => [ "doc/man7/EVP_CIPHER-SM4.pod" ], + "doc/html/man7/EVP_KDF-ARGON2.html" => [ + "doc/man7/EVP_KDF-ARGON2.pod" + ], "doc/html/man7/EVP_KDF-HKDF.html" => [ "doc/man7/EVP_KDF-HKDF.pod" ], + "doc/html/man7/EVP_KDF-HMAC-DRBG.html" => [ + "doc/man7/EVP_KDF-HMAC-DRBG.pod" + ], "doc/html/man7/EVP_KDF-KB.html" => [ "doc/man7/EVP_KDF-KB.pod" ], @@ -4035,6 +4610,9 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-PKCS12KDF.html" => [ "doc/man7/EVP_KDF-PKCS12KDF.pod" ], + "doc/html/man7/EVP_KDF-PVKKDF.html" => [ + "doc/man7/EVP_KDF-PVKKDF.pod" + ], "doc/html/man7/EVP_KDF-SCRYPT.html" => [ "doc/man7/EVP_KDF-SCRYPT.pod" ], @@ -4059,9 +4637,18 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-X963.html" => [ "doc/man7/EVP_KDF-X963.pod" ], + "doc/html/man7/EVP_KEM-EC.html" => [ + "doc/man7/EVP_KEM-EC.pod" + ], + "doc/html/man7/EVP_KEM-ML-KEM.html" => [ + "doc/man7/EVP_KEM-ML-KEM.pod" + ], "doc/html/man7/EVP_KEM-RSA.html" => [ "doc/man7/EVP_KEM-RSA.pod" ], + "doc/html/man7/EVP_KEM-X25519.html" => [ + "doc/man7/EVP_KEM-X25519.pod" + ], "doc/html/man7/EVP_KEYEXCH-DH.html" => [ "doc/man7/EVP_KEYEXCH-DH.pod" ], @@ -4095,6 +4682,9 @@ our %unified_info = ( "doc/html/man7/EVP_MD-BLAKE2.html" => [ "doc/man7/EVP_MD-BLAKE2.pod" ], + "doc/html/man7/EVP_MD-KECCAK.html" => [ + "doc/man7/EVP_MD-KECCAK.pod" + ], "doc/html/man7/EVP_MD-MD2.html" => [ "doc/man7/EVP_MD-MD2.pod" ], @@ -4152,15 +4742,27 @@ our %unified_info = ( "doc/html/man7/EVP_PKEY-HMAC.html" => [ "doc/man7/EVP_PKEY-HMAC.pod" ], + "doc/html/man7/EVP_PKEY-ML-DSA.html" => [ + "doc/man7/EVP_PKEY-ML-DSA.pod" + ], + "doc/html/man7/EVP_PKEY-ML-KEM.html" => [ + "doc/man7/EVP_PKEY-ML-KEM.pod" + ], "doc/html/man7/EVP_PKEY-RSA.html" => [ "doc/man7/EVP_PKEY-RSA.pod" ], + "doc/html/man7/EVP_PKEY-SLH-DSA.html" => [ + "doc/man7/EVP_PKEY-SLH-DSA.pod" + ], "doc/html/man7/EVP_PKEY-SM2.html" => [ "doc/man7/EVP_PKEY-SM2.pod" ], "doc/html/man7/EVP_PKEY-X25519.html" => [ "doc/man7/EVP_PKEY-X25519.pod" ], + "doc/html/man7/EVP_RAND-CRNG-TEST.html" => [ + "doc/man7/EVP_RAND-CRNG-TEST.pod" + ], "doc/html/man7/EVP_RAND-CTR-DRBG.html" => [ "doc/man7/EVP_RAND-CTR-DRBG.pod" ], @@ -4170,6 +4772,9 @@ our %unified_info = ( "doc/html/man7/EVP_RAND-HMAC-DRBG.html" => [ "doc/man7/EVP_RAND-HMAC-DRBG.pod" ], + "doc/html/man7/EVP_RAND-JITTER.html" => [ + "doc/man7/EVP_RAND-JITTER.pod" + ], "doc/html/man7/EVP_RAND-SEED-SRC.html" => [ "doc/man7/EVP_RAND-SEED-SRC.pod" ], @@ -4191,9 +4796,15 @@ our %unified_info = ( "doc/html/man7/EVP_SIGNATURE-HMAC.html" => [ "doc/man7/EVP_SIGNATURE-HMAC.pod" ], + "doc/html/man7/EVP_SIGNATURE-ML-DSA.html" => [ + "doc/man7/EVP_SIGNATURE-ML-DSA.pod" + ], "doc/html/man7/EVP_SIGNATURE-RSA.html" => [ "doc/man7/EVP_SIGNATURE-RSA.pod" ], + "doc/html/man7/EVP_SIGNATURE-SLH-DSA.html" => [ + "doc/man7/EVP_SIGNATURE-SLH-DSA.pod" + ], "doc/html/man7/OSSL_PROVIDER-FIPS.html" => [ "doc/man7/OSSL_PROVIDER-FIPS.pod" ], @@ -4209,6 +4820,9 @@ our %unified_info = ( "doc/html/man7/OSSL_PROVIDER-null.html" => [ "doc/man7/OSSL_PROVIDER-null.pod" ], + "doc/html/man7/OSSL_STORE-winstore.html" => [ + "doc/man7/OSSL_STORE-winstore.pod" + ], "doc/html/man7/RAND.html" => [ "doc/man7/RAND.pod" ], @@ -4221,9 +4835,6 @@ our %unified_info = ( "doc/html/man7/bio.html" => [ "doc/man7/bio.pod" ], - "doc/html/man7/crypto.html" => [ - "doc/man7/crypto.pod" - ], "doc/html/man7/ct.html" => [ "doc/man7/ct.pod" ], @@ -4254,9 +4865,6 @@ our %unified_info = ( "doc/html/man7/life_cycle-rand.html" => [ "doc/man7/life_cycle-rand.pod" ], - "doc/html/man7/migration_guide.html" => [ - "doc/man7/migration_guide.pod" - ], "doc/html/man7/openssl-core.h.html" => [ "doc/man7/openssl-core.h.pod" ], @@ -4272,12 +4880,66 @@ our %unified_info = ( "doc/html/man7/openssl-glossary.html" => [ "doc/man7/openssl-glossary.pod" ], + "doc/html/man7/openssl-qlog.html" => [ + "doc/man7/openssl-qlog.pod" + ], + "doc/html/man7/openssl-quic-concurrency.html" => [ + "doc/man7/openssl-quic-concurrency.pod" + ], + "doc/html/man7/openssl-quic.html" => [ + "doc/man7/openssl-quic.pod" + ], "doc/html/man7/openssl-threads.html" => [ "doc/man7/openssl-threads.pod" ], "doc/html/man7/openssl_user_macros.html" => [ "doc/man7/openssl_user_macros.pod" ], + "doc/html/man7/ossl-guide-introduction.html" => [ + "doc/man7/ossl-guide-introduction.pod" + ], + "doc/html/man7/ossl-guide-libcrypto-introduction.html" => [ + "doc/man7/ossl-guide-libcrypto-introduction.pod" + ], + "doc/html/man7/ossl-guide-libraries-introduction.html" => [ + "doc/man7/ossl-guide-libraries-introduction.pod" + ], + "doc/html/man7/ossl-guide-libssl-introduction.html" => [ + "doc/man7/ossl-guide-libssl-introduction.pod" + ], + "doc/html/man7/ossl-guide-migration.html" => [ + "doc/man7/ossl-guide-migration.pod" + ], + "doc/html/man7/ossl-guide-quic-client-block.html" => [ + "doc/man7/ossl-guide-quic-client-block.pod" + ], + "doc/html/man7/ossl-guide-quic-client-non-block.html" => [ + "doc/man7/ossl-guide-quic-client-non-block.pod" + ], + "doc/html/man7/ossl-guide-quic-introduction.html" => [ + "doc/man7/ossl-guide-quic-introduction.pod" + ], + "doc/html/man7/ossl-guide-quic-multi-stream.html" => [ + "doc/man7/ossl-guide-quic-multi-stream.pod" + ], + "doc/html/man7/ossl-guide-quic-server-block.html" => [ + "doc/man7/ossl-guide-quic-server-block.pod" + ], + "doc/html/man7/ossl-guide-quic-server-non-block.html" => [ + "doc/man7/ossl-guide-quic-server-non-block.pod" + ], + "doc/html/man7/ossl-guide-tls-client-block.html" => [ + "doc/man7/ossl-guide-tls-client-block.pod" + ], + "doc/html/man7/ossl-guide-tls-client-non-block.html" => [ + "doc/man7/ossl-guide-tls-client-non-block.pod" + ], + "doc/html/man7/ossl-guide-tls-introduction.html" => [ + "doc/man7/ossl-guide-tls-introduction.pod" + ], + "doc/html/man7/ossl-guide-tls-server-block.html" => [ + "doc/man7/ossl-guide-tls-server-block.pod" + ], "doc/html/man7/ossl_store-file.html" => [ "doc/man7/ossl_store-file.pod" ], @@ -4332,6 +4994,9 @@ our %unified_info = ( "doc/html/man7/provider-signature.html" => [ "doc/man7/provider-signature.pod" ], + "doc/html/man7/provider-skeymgmt.html" => [ + "doc/man7/provider-skeymgmt.pod" + ], "doc/html/man7/provider-storemgmt.html" => [ "doc/man7/provider-storemgmt.pod" ], @@ -4341,9 +5006,6 @@ our %unified_info = ( "doc/html/man7/proxy-certificates.html" => [ "doc/man7/proxy-certificates.pod" ], - "doc/html/man7/ssl.html" => [ - "doc/man7/ssl.pod" - ], "doc/html/man7/x509.html" => [ "doc/man7/x509.pod" ], @@ -4491,6 +5153,9 @@ our %unified_info = ( "doc/man/man1/openssl-sess_id.1" => [ "doc/man1/openssl-sess_id.pod" ], + "doc/man/man1/openssl-skeyutl.1" => [ + "doc/man1/openssl-skeyutl.pod" + ], "doc/man/man1/openssl-smime.1" => [ "doc/man1/openssl-smime.pod" ], @@ -4632,6 +5297,9 @@ our %unified_info = ( "doc/man/man3/BIO_get_ex_new_index.3" => [ "doc/man3/BIO_get_ex_new_index.pod" ], + "doc/man/man3/BIO_get_rpoll_descriptor.3" => [ + "doc/man3/BIO_get_rpoll_descriptor.pod" + ], "doc/man/man3/BIO_meth_new.3" => [ "doc/man3/BIO_meth_new.pod" ], @@ -4668,6 +5336,9 @@ our %unified_info = ( "doc/man/man3/BIO_s_datagram.3" => [ "doc/man3/BIO_s_datagram.pod" ], + "doc/man/man3/BIO_s_dgram_pair.3" => [ + "doc/man3/BIO_s_dgram_pair.pod" + ], "doc/man/man3/BIO_s_fd.3" => [ "doc/man3/BIO_s_fd.pod" ], @@ -4683,6 +5354,9 @@ our %unified_info = ( "doc/man/man3/BIO_s_socket.3" => [ "doc/man3/BIO_s_socket.pod" ], + "doc/man/man3/BIO_sendmmsg.3" => [ + "doc/man3/BIO_sendmmsg.pod" + ], "doc/man/man3/BIO_set_callback.3" => [ "doc/man3/BIO_set_callback.pod" ], @@ -4755,6 +5429,9 @@ our %unified_info = ( "doc/man/man3/BUF_MEM_new.3" => [ "doc/man3/BUF_MEM_new.pod" ], + "doc/man/man3/CMAC_CTX.3" => [ + "doc/man3/CMAC_CTX.pod" + ], "doc/man/man3/CMS_EncryptedData_decrypt.3" => [ "doc/man3/CMS_EncryptedData_decrypt.pod" ], @@ -4821,6 +5498,9 @@ our %unified_info = ( "doc/man/man3/CMS_verify_receipt.3" => [ "doc/man3/CMS_verify_receipt.pod" ], + "doc/man/man3/COMP_CTX_new.3" => [ + "doc/man3/COMP_CTX_new.pod" + ], "doc/man/man3/CONF_modules_free.3" => [ "doc/man3/CONF_modules_free.pod" ], @@ -4920,6 +5600,12 @@ our %unified_info = ( "doc/man/man3/DTLS_set_timer_cb.3" => [ "doc/man3/DTLS_set_timer_cb.pod" ], + "doc/man/man3/DTLSv1_get_timeout.3" => [ + "doc/man3/DTLSv1_get_timeout.pod" + ], + "doc/man/man3/DTLSv1_handle_timeout.3" => [ + "doc/man3/DTLSv1_handle_timeout.pod" + ], "doc/man/man3/DTLSv1_listen.3" => [ "doc/man3/DTLSv1_listen.pod" ], @@ -5058,6 +5744,9 @@ our %unified_info = ( "doc/man/man3/EVP_PKEY_CTX_get0_pkey.3" => [ "doc/man3/EVP_PKEY_CTX_get0_pkey.pod" ], + "doc/man/man3/EVP_PKEY_CTX_get_algor.3" => [ + "doc/man3/EVP_PKEY_CTX_get_algor.pod" + ], "doc/man/man3/EVP_PKEY_CTX_new.3" => [ "doc/man3/EVP_PKEY_CTX_new.pod" ], @@ -5175,6 +5864,12 @@ our %unified_info = ( "doc/man/man3/EVP_SIGNATURE.3" => [ "doc/man3/EVP_SIGNATURE.pod" ], + "doc/man/man3/EVP_SKEY.3" => [ + "doc/man3/EVP_SKEY.pod" + ], + "doc/man/man3/EVP_SKEYMGMT.3" => [ + "doc/man3/EVP_SKEYMGMT.pod" + ], "doc/man/man3/EVP_SealInit.3" => [ "doc/man3/EVP_SealInit.pod" ], @@ -5262,6 +5957,9 @@ our %unified_info = ( "doc/man/man3/EVP_whirlpool.3" => [ "doc/man3/EVP_whirlpool.pod" ], + "doc/man/man3/GENERAL_NAME.3" => [ + "doc/man3/GENERAL_NAME.pod" + ], "doc/man/man3/HMAC.3" => [ "doc/man3/HMAC.pod" ], @@ -5334,9 +6032,15 @@ our %unified_info = ( "doc/man/man3/OPENSSL_load_builtin_modules.3" => [ "doc/man3/OPENSSL_load_builtin_modules.pod" ], + "doc/man/man3/OPENSSL_load_u16_le.3" => [ + "doc/man3/OPENSSL_load_u16_le.pod" + ], "doc/man/man3/OPENSSL_malloc.3" => [ "doc/man3/OPENSSL_malloc.pod" ], + "doc/man/man3/OPENSSL_riscvcap.3" => [ + "doc/man3/OPENSSL_riscvcap.pod" + ], "doc/man/man3/OPENSSL_s390xcap.3" => [ "doc/man3/OPENSSL_s390xcap.pod" ], @@ -5352,12 +6056,18 @@ our %unified_info = ( "doc/man/man3/OSSL_CALLBACK.3" => [ "doc/man3/OSSL_CALLBACK.pod" ], + "doc/man/man3/OSSL_CMP_ATAV_set0.3" => [ + "doc/man3/OSSL_CMP_ATAV_set0.pod" + ], "doc/man/man3/OSSL_CMP_CTX_new.3" => [ "doc/man3/OSSL_CMP_CTX_new.pod" ], "doc/man/man3/OSSL_CMP_HDR_get0_transactionID.3" => [ "doc/man3/OSSL_CMP_HDR_get0_transactionID.pod" ], + "doc/man/man3/OSSL_CMP_ITAV_new_caCerts.3" => [ + "doc/man3/OSSL_CMP_ITAV_new_caCerts.pod" + ], "doc/man/man3/OSSL_CMP_ITAV_set0.3" => [ "doc/man3/OSSL_CMP_ITAV_set0.pod" ], @@ -5427,9 +6137,18 @@ our %unified_info = ( "doc/man/man3/OSSL_ENCODER_to_bio.3" => [ "doc/man3/OSSL_ENCODER_to_bio.pod" ], + "doc/man/man3/OSSL_ERR_STATE_save.3" => [ + "doc/man3/OSSL_ERR_STATE_save.pod" + ], "doc/man/man3/OSSL_ESS_check_signing_certs.3" => [ "doc/man3/OSSL_ESS_check_signing_certs.pod" ], + "doc/man/man3/OSSL_GENERAL_NAMES_print.3" => [ + "doc/man3/OSSL_GENERAL_NAMES_print.pod" + ], + "doc/man/man3/OSSL_HPKE_CTX_new.3" => [ + "doc/man3/OSSL_HPKE_CTX_new.pod" + ], "doc/man/man3/OSSL_HTTP_REQ_CTX.3" => [ "doc/man3/OSSL_HTTP_REQ_CTX.pod" ], @@ -5439,12 +6158,24 @@ our %unified_info = ( "doc/man/man3/OSSL_HTTP_transfer.3" => [ "doc/man3/OSSL_HTTP_transfer.pod" ], + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX.3" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX.pod" + ], + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX_print.3" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX_print.pod" + ], + "doc/man/man3/OSSL_INDICATOR_set_callback.3" => [ + "doc/man3/OSSL_INDICATOR_set_callback.pod" + ], "doc/man/man3/OSSL_ITEM.3" => [ "doc/man3/OSSL_ITEM.pod" ], "doc/man/man3/OSSL_LIB_CTX.3" => [ "doc/man3/OSSL_LIB_CTX.pod" ], + "doc/man/man3/OSSL_LIB_CTX_set_conf_diagnostics.3" => [ + "doc/man3/OSSL_LIB_CTX_set_conf_diagnostics.pod" + ], "doc/man/man3/OSSL_PARAM.3" => [ "doc/man3/OSSL_PARAM.pod" ], @@ -5460,9 +6191,15 @@ our %unified_info = ( "doc/man/man3/OSSL_PARAM_int.3" => [ "doc/man3/OSSL_PARAM_int.pod" ], + "doc/man/man3/OSSL_PARAM_print_to_bio.3" => [ + "doc/man3/OSSL_PARAM_print_to_bio.pod" + ], "doc/man/man3/OSSL_PROVIDER.3" => [ "doc/man3/OSSL_PROVIDER.pod" ], + "doc/man/man3/OSSL_QUIC_client_method.3" => [ + "doc/man3/OSSL_QUIC_client_method.pod" + ], "doc/man/man3/OSSL_SELF_TEST_new.3" => [ "doc/man3/OSSL_SELF_TEST_new.pod" ], @@ -5487,6 +6224,9 @@ our %unified_info = ( "doc/man/man3/OSSL_STORE_open.3" => [ "doc/man3/OSSL_STORE_open.pod" ], + "doc/man/man3/OSSL_sleep.3" => [ + "doc/man3/OSSL_sleep.pod" + ], "doc/man/man3/OSSL_trace_enabled.3" => [ "doc/man3/OSSL_trace_enabled.pod" ], @@ -5502,6 +6242,9 @@ our %unified_info = ( "doc/man/man3/OpenSSL_version.3" => [ "doc/man3/OpenSSL_version.pod" ], + "doc/man/man3/PBMAC1_get1_pbkdf2_param.3" => [ + "doc/man3/PBMAC1_get1_pbkdf2_param.pod" + ], "doc/man/man3/PEM_X509_INFO_read_bio_ex.3" => [ "doc/man3/PEM_X509_INFO_read_bio_ex.pod" ], @@ -5538,6 +6281,9 @@ our %unified_info = ( "doc/man/man3/PKCS12_SAFEBAG_get1_cert.3" => [ "doc/man3/PKCS12_SAFEBAG_get1_cert.pod" ], + "doc/man/man3/PKCS12_SAFEBAG_set0_attrs.3" => [ + "doc/man3/PKCS12_SAFEBAG_set0_attrs.pod" + ], "doc/man/man3/PKCS12_add1_attr_by_NID.3" => [ "doc/man3/PKCS12_add1_attr_by_NID.pod" ], @@ -5811,6 +6557,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set0_CA_list.3" => [ "doc/man3/SSL_CTX_set0_CA_list.pod" ], + "doc/man/man3/SSL_CTX_set1_cert_comp_preference.3" => [ + "doc/man3/SSL_CTX_set1_cert_comp_preference.pod" + ], "doc/man/man3/SSL_CTX_set1_curves.3" => [ "doc/man3/SSL_CTX_set1_curves.pod" ], @@ -5850,6 +6599,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_default_passwd_cb.3" => [ "doc/man3/SSL_CTX_set_default_passwd_cb.pod" ], + "doc/man/man3/SSL_CTX_set_domain_flags.3" => [ + "doc/man3/SSL_CTX_set_domain_flags.pod" + ], "doc/man/man3/SSL_CTX_set_generate_session_id.3" => [ "doc/man3/SSL_CTX_set_generate_session_id.pod" ], @@ -5871,6 +6623,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_msg_callback.3" => [ "doc/man3/SSL_CTX_set_msg_callback.pod" ], + "doc/man/man3/SSL_CTX_set_new_pending_conn_cb.3" => [ + "doc/man3/SSL_CTX_set_new_pending_conn_cb.pod" + ], "doc/man/man3/SSL_CTX_set_num_tickets.3" => [ "doc/man3/SSL_CTX_set_num_tickets.pod" ], @@ -5985,6 +6740,9 @@ our %unified_info = ( "doc/man/man3/SSL_accept.3" => [ "doc/man3/SSL_accept.pod" ], + "doc/man/man3/SSL_accept_stream.3" => [ + "doc/man3/SSL_accept_stream.pod" + ], "doc/man/man3/SSL_alert_type_string.3" => [ "doc/man3/SSL_alert_type_string.pod" ], @@ -6012,9 +6770,21 @@ our %unified_info = ( "doc/man/man3/SSL_free.3" => [ "doc/man3/SSL_free.pod" ], + "doc/man/man3/SSL_get0_connection.3" => [ + "doc/man3/SSL_get0_connection.pod" + ], + "doc/man/man3/SSL_get0_group_name.3" => [ + "doc/man3/SSL_get0_group_name.pod" + ], + "doc/man/man3/SSL_get0_peer_rpk.3" => [ + "doc/man3/SSL_get0_peer_rpk.pod" + ], "doc/man/man3/SSL_get0_peer_scts.3" => [ "doc/man3/SSL_get0_peer_scts.pod" ], + "doc/man/man3/SSL_get1_builtin_sigalgs.3" => [ + "doc/man3/SSL_get1_builtin_sigalgs.pod" + ], "doc/man/man3/SSL_get_SSL_CTX.3" => [ "doc/man3/SSL_get_SSL_CTX.pod" ], @@ -6030,6 +6800,9 @@ our %unified_info = ( "doc/man/man3/SSL_get_client_random.3" => [ "doc/man3/SSL_get_client_random.pod" ], + "doc/man/man3/SSL_get_conn_close_info.3" => [ + "doc/man3/SSL_get_conn_close_info.pod" + ], "doc/man/man3/SSL_get_current_cipher.3" => [ "doc/man3/SSL_get_current_cipher.pod" ], @@ -6039,12 +6812,18 @@ our %unified_info = ( "doc/man/man3/SSL_get_error.3" => [ "doc/man3/SSL_get_error.pod" ], + "doc/man/man3/SSL_get_event_timeout.3" => [ + "doc/man3/SSL_get_event_timeout.pod" + ], "doc/man/man3/SSL_get_extms_support.3" => [ "doc/man3/SSL_get_extms_support.pod" ], "doc/man/man3/SSL_get_fd.3" => [ "doc/man3/SSL_get_fd.pod" ], + "doc/man/man3/SSL_get_handshake_rtt.3" => [ + "doc/man3/SSL_get_handshake_rtt.pod" + ], "doc/man/man3/SSL_get_peer_cert_chain.3" => [ "doc/man3/SSL_get_peer_cert_chain.pod" ], @@ -6063,12 +6842,24 @@ our %unified_info = ( "doc/man/man3/SSL_get_rbio.3" => [ "doc/man3/SSL_get_rbio.pod" ], + "doc/man/man3/SSL_get_rpoll_descriptor.3" => [ + "doc/man3/SSL_get_rpoll_descriptor.pod" + ], "doc/man/man3/SSL_get_session.3" => [ "doc/man3/SSL_get_session.pod" ], "doc/man/man3/SSL_get_shared_sigalgs.3" => [ "doc/man3/SSL_get_shared_sigalgs.pod" ], + "doc/man/man3/SSL_get_stream_id.3" => [ + "doc/man3/SSL_get_stream_id.pod" + ], + "doc/man/man3/SSL_get_stream_read_state.3" => [ + "doc/man3/SSL_get_stream_read_state.pod" + ], + "doc/man/man3/SSL_get_value_uint.3" => [ + "doc/man3/SSL_get_value_uint.pod" + ], "doc/man/man3/SSL_get_verify_result.3" => [ "doc/man3/SSL_get_verify_result.pod" ], @@ -6078,9 +6869,15 @@ our %unified_info = ( "doc/man/man3/SSL_group_to_name.3" => [ "doc/man3/SSL_group_to_name.pod" ], + "doc/man/man3/SSL_handle_events.3" => [ + "doc/man3/SSL_handle_events.pod" + ], "doc/man/man3/SSL_in_init.3" => [ "doc/man3/SSL_in_init.pod" ], + "doc/man/man3/SSL_inject_net_dgram.3" => [ + "doc/man3/SSL_inject_net_dgram.pod" + ], "doc/man/man3/SSL_key_update.3" => [ "doc/man3/SSL_key_update.pod" ], @@ -6093,9 +6890,21 @@ our %unified_info = ( "doc/man/man3/SSL_new.3" => [ "doc/man3/SSL_new.pod" ], + "doc/man/man3/SSL_new_domain.3" => [ + "doc/man3/SSL_new_domain.pod" + ], + "doc/man/man3/SSL_new_listener.3" => [ + "doc/man3/SSL_new_listener.pod" + ], + "doc/man/man3/SSL_new_stream.3" => [ + "doc/man3/SSL_new_stream.pod" + ], "doc/man/man3/SSL_pending.3" => [ "doc/man3/SSL_pending.pod" ], + "doc/man/man3/SSL_poll.3" => [ + "doc/man3/SSL_poll.pod" + ], "doc/man/man3/SSL_read.3" => [ "doc/man3/SSL_read.pod" ], @@ -6111,24 +6920,45 @@ our %unified_info = ( "doc/man/man3/SSL_set1_host.3" => [ "doc/man3/SSL_set1_host.pod" ], + "doc/man/man3/SSL_set1_initial_peer_addr.3" => [ + "doc/man3/SSL_set1_initial_peer_addr.pod" + ], + "doc/man/man3/SSL_set1_server_cert_type.3" => [ + "doc/man3/SSL_set1_server_cert_type.pod" + ], "doc/man/man3/SSL_set_async_callback.3" => [ "doc/man3/SSL_set_async_callback.pod" ], "doc/man/man3/SSL_set_bio.3" => [ "doc/man3/SSL_set_bio.pod" ], + "doc/man/man3/SSL_set_blocking_mode.3" => [ + "doc/man3/SSL_set_blocking_mode.pod" + ], "doc/man/man3/SSL_set_connect_state.3" => [ "doc/man3/SSL_set_connect_state.pod" ], + "doc/man/man3/SSL_set_default_stream_mode.3" => [ + "doc/man3/SSL_set_default_stream_mode.pod" + ], "doc/man/man3/SSL_set_fd.3" => [ "doc/man3/SSL_set_fd.pod" ], + "doc/man/man3/SSL_set_incoming_stream_policy.3" => [ + "doc/man3/SSL_set_incoming_stream_policy.pod" + ], + "doc/man/man3/SSL_set_quic_tls_cbs.3" => [ + "doc/man3/SSL_set_quic_tls_cbs.pod" + ], "doc/man/man3/SSL_set_retry_verify.3" => [ "doc/man3/SSL_set_retry_verify.pod" ], "doc/man/man3/SSL_set_session.3" => [ "doc/man3/SSL_set_session.pod" ], + "doc/man/man3/SSL_set_session_secret_cb.3" => [ + "doc/man3/SSL_set_session_secret_cb.pod" + ], "doc/man/man3/SSL_set_shutdown.3" => [ "doc/man3/SSL_set_shutdown.pod" ], @@ -6141,6 +6971,12 @@ our %unified_info = ( "doc/man/man3/SSL_state_string.3" => [ "doc/man3/SSL_state_string.pod" ], + "doc/man/man3/SSL_stream_conclude.3" => [ + "doc/man3/SSL_stream_conclude.pod" + ], + "doc/man/man3/SSL_stream_reset.3" => [ + "doc/man3/SSL_stream_reset.pod" + ], "doc/man/man3/SSL_want.3" => [ "doc/man3/SSL_want.pod" ], @@ -6150,8 +6986,8 @@ our %unified_info = ( "doc/man/man3/TS_RESP_CTX_new.3" => [ "doc/man3/TS_RESP_CTX_new.pod" ], - "doc/man/man3/TS_VERIFY_CTX_set_certs.3" => [ - "doc/man3/TS_VERIFY_CTX_set_certs.pod" + "doc/man/man3/TS_VERIFY_CTX.3" => [ + "doc/man3/TS_VERIFY_CTX.pod" ], "doc/man/man3/UI_STRING.3" => [ "doc/man3/UI_STRING.pod" @@ -6171,6 +7007,21 @@ our %unified_info = ( "doc/man/man3/X509V3_set_ctx.3" => [ "doc/man3/X509V3_set_ctx.pod" ], + "doc/man/man3/X509_ACERT_add1_attr.3" => [ + "doc/man3/X509_ACERT_add1_attr.pod" + ], + "doc/man/man3/X509_ACERT_add_attr_nconf.3" => [ + "doc/man3/X509_ACERT_add_attr_nconf.pod" + ], + "doc/man/man3/X509_ACERT_get0_holder_baseCertId.3" => [ + "doc/man3/X509_ACERT_get0_holder_baseCertId.pod" + ], + "doc/man/man3/X509_ACERT_get_attr.3" => [ + "doc/man3/X509_ACERT_get_attr.pod" + ], + "doc/man/man3/X509_ACERT_print_ex.3" => [ + "doc/man3/X509_ACERT_print_ex.pod" + ], "doc/man/man3/X509_ALGOR_dup.3" => [ "doc/man3/X509_ALGOR_dup.pod" ], @@ -6219,6 +7070,9 @@ our %unified_info = ( "doc/man/man3/X509_SIG_get0.3" => [ "doc/man3/X509_SIG_get0.pod" ], + "doc/man/man3/X509_STORE_CTX_get_by_subject.3" => [ + "doc/man3/X509_STORE_CTX_get_by_subject.pod" + ], "doc/man/man3/X509_STORE_CTX_get_error.3" => [ "doc/man3/X509_STORE_CTX_get_error.pod" ], @@ -6285,6 +7139,9 @@ our %unified_info = ( "doc/man/man3/X509_get0_uids.3" => [ "doc/man3/X509_get0_uids.pod" ], + "doc/man/man3/X509_get_default_cert_file.3" => [ + "doc/man3/X509_get_default_cert_file.pod" + ], "doc/man/man3/X509_get_extension_flags.3" => [ "doc/man3/X509_get_extension_flags.pod" ], @@ -6408,9 +7265,15 @@ our %unified_info = ( "doc/man/man7/EVP_CIPHER-SM4.7" => [ "doc/man7/EVP_CIPHER-SM4.pod" ], + "doc/man/man7/EVP_KDF-ARGON2.7" => [ + "doc/man7/EVP_KDF-ARGON2.pod" + ], "doc/man/man7/EVP_KDF-HKDF.7" => [ "doc/man7/EVP_KDF-HKDF.pod" ], + "doc/man/man7/EVP_KDF-HMAC-DRBG.7" => [ + "doc/man7/EVP_KDF-HMAC-DRBG.pod" + ], "doc/man/man7/EVP_KDF-KB.7" => [ "doc/man7/EVP_KDF-KB.pod" ], @@ -6426,6 +7289,9 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-PKCS12KDF.7" => [ "doc/man7/EVP_KDF-PKCS12KDF.pod" ], + "doc/man/man7/EVP_KDF-PVKKDF.7" => [ + "doc/man7/EVP_KDF-PVKKDF.pod" + ], "doc/man/man7/EVP_KDF-SCRYPT.7" => [ "doc/man7/EVP_KDF-SCRYPT.pod" ], @@ -6450,9 +7316,18 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-X963.7" => [ "doc/man7/EVP_KDF-X963.pod" ], + "doc/man/man7/EVP_KEM-EC.7" => [ + "doc/man7/EVP_KEM-EC.pod" + ], + "doc/man/man7/EVP_KEM-ML-KEM.7" => [ + "doc/man7/EVP_KEM-ML-KEM.pod" + ], "doc/man/man7/EVP_KEM-RSA.7" => [ "doc/man7/EVP_KEM-RSA.pod" ], + "doc/man/man7/EVP_KEM-X25519.7" => [ + "doc/man7/EVP_KEM-X25519.pod" + ], "doc/man/man7/EVP_KEYEXCH-DH.7" => [ "doc/man7/EVP_KEYEXCH-DH.pod" ], @@ -6486,6 +7361,9 @@ our %unified_info = ( "doc/man/man7/EVP_MD-BLAKE2.7" => [ "doc/man7/EVP_MD-BLAKE2.pod" ], + "doc/man/man7/EVP_MD-KECCAK.7" => [ + "doc/man7/EVP_MD-KECCAK.pod" + ], "doc/man/man7/EVP_MD-MD2.7" => [ "doc/man7/EVP_MD-MD2.pod" ], @@ -6543,15 +7421,27 @@ our %unified_info = ( "doc/man/man7/EVP_PKEY-HMAC.7" => [ "doc/man7/EVP_PKEY-HMAC.pod" ], + "doc/man/man7/EVP_PKEY-ML-DSA.7" => [ + "doc/man7/EVP_PKEY-ML-DSA.pod" + ], + "doc/man/man7/EVP_PKEY-ML-KEM.7" => [ + "doc/man7/EVP_PKEY-ML-KEM.pod" + ], "doc/man/man7/EVP_PKEY-RSA.7" => [ "doc/man7/EVP_PKEY-RSA.pod" ], + "doc/man/man7/EVP_PKEY-SLH-DSA.7" => [ + "doc/man7/EVP_PKEY-SLH-DSA.pod" + ], "doc/man/man7/EVP_PKEY-SM2.7" => [ "doc/man7/EVP_PKEY-SM2.pod" ], "doc/man/man7/EVP_PKEY-X25519.7" => [ "doc/man7/EVP_PKEY-X25519.pod" ], + "doc/man/man7/EVP_RAND-CRNG-TEST.7" => [ + "doc/man7/EVP_RAND-CRNG-TEST.pod" + ], "doc/man/man7/EVP_RAND-CTR-DRBG.7" => [ "doc/man7/EVP_RAND-CTR-DRBG.pod" ], @@ -6561,6 +7451,9 @@ our %unified_info = ( "doc/man/man7/EVP_RAND-HMAC-DRBG.7" => [ "doc/man7/EVP_RAND-HMAC-DRBG.pod" ], + "doc/man/man7/EVP_RAND-JITTER.7" => [ + "doc/man7/EVP_RAND-JITTER.pod" + ], "doc/man/man7/EVP_RAND-SEED-SRC.7" => [ "doc/man7/EVP_RAND-SEED-SRC.pod" ], @@ -6582,9 +7475,15 @@ our %unified_info = ( "doc/man/man7/EVP_SIGNATURE-HMAC.7" => [ "doc/man7/EVP_SIGNATURE-HMAC.pod" ], + "doc/man/man7/EVP_SIGNATURE-ML-DSA.7" => [ + "doc/man7/EVP_SIGNATURE-ML-DSA.pod" + ], "doc/man/man7/EVP_SIGNATURE-RSA.7" => [ "doc/man7/EVP_SIGNATURE-RSA.pod" ], + "doc/man/man7/EVP_SIGNATURE-SLH-DSA.7" => [ + "doc/man7/EVP_SIGNATURE-SLH-DSA.pod" + ], "doc/man/man7/OSSL_PROVIDER-FIPS.7" => [ "doc/man7/OSSL_PROVIDER-FIPS.pod" ], @@ -6600,6 +7499,9 @@ our %unified_info = ( "doc/man/man7/OSSL_PROVIDER-null.7" => [ "doc/man7/OSSL_PROVIDER-null.pod" ], + "doc/man/man7/OSSL_STORE-winstore.7" => [ + "doc/man7/OSSL_STORE-winstore.pod" + ], "doc/man/man7/RAND.7" => [ "doc/man7/RAND.pod" ], @@ -6612,9 +7514,6 @@ our %unified_info = ( "doc/man/man7/bio.7" => [ "doc/man7/bio.pod" ], - "doc/man/man7/crypto.7" => [ - "doc/man7/crypto.pod" - ], "doc/man/man7/ct.7" => [ "doc/man7/ct.pod" ], @@ -6645,9 +7544,6 @@ our %unified_info = ( "doc/man/man7/life_cycle-rand.7" => [ "doc/man7/life_cycle-rand.pod" ], - "doc/man/man7/migration_guide.7" => [ - "doc/man7/migration_guide.pod" - ], "doc/man/man7/openssl-core.h.7" => [ "doc/man7/openssl-core.h.pod" ], @@ -6663,12 +7559,66 @@ our %unified_info = ( "doc/man/man7/openssl-glossary.7" => [ "doc/man7/openssl-glossary.pod" ], + "doc/man/man7/openssl-qlog.7" => [ + "doc/man7/openssl-qlog.pod" + ], + "doc/man/man7/openssl-quic-concurrency.7" => [ + "doc/man7/openssl-quic-concurrency.pod" + ], + "doc/man/man7/openssl-quic.7" => [ + "doc/man7/openssl-quic.pod" + ], "doc/man/man7/openssl-threads.7" => [ "doc/man7/openssl-threads.pod" ], "doc/man/man7/openssl_user_macros.7" => [ "doc/man7/openssl_user_macros.pod" ], + "doc/man/man7/ossl-guide-introduction.7" => [ + "doc/man7/ossl-guide-introduction.pod" + ], + "doc/man/man7/ossl-guide-libcrypto-introduction.7" => [ + "doc/man7/ossl-guide-libcrypto-introduction.pod" + ], + "doc/man/man7/ossl-guide-libraries-introduction.7" => [ + "doc/man7/ossl-guide-libraries-introduction.pod" + ], + "doc/man/man7/ossl-guide-libssl-introduction.7" => [ + "doc/man7/ossl-guide-libssl-introduction.pod" + ], + "doc/man/man7/ossl-guide-migration.7" => [ + "doc/man7/ossl-guide-migration.pod" + ], + "doc/man/man7/ossl-guide-quic-client-block.7" => [ + "doc/man7/ossl-guide-quic-client-block.pod" + ], + "doc/man/man7/ossl-guide-quic-client-non-block.7" => [ + "doc/man7/ossl-guide-quic-client-non-block.pod" + ], + "doc/man/man7/ossl-guide-quic-introduction.7" => [ + "doc/man7/ossl-guide-quic-introduction.pod" + ], + "doc/man/man7/ossl-guide-quic-multi-stream.7" => [ + "doc/man7/ossl-guide-quic-multi-stream.pod" + ], + "doc/man/man7/ossl-guide-quic-server-block.7" => [ + "doc/man7/ossl-guide-quic-server-block.pod" + ], + "doc/man/man7/ossl-guide-quic-server-non-block.7" => [ + "doc/man7/ossl-guide-quic-server-non-block.pod" + ], + "doc/man/man7/ossl-guide-tls-client-block.7" => [ + "doc/man7/ossl-guide-tls-client-block.pod" + ], + "doc/man/man7/ossl-guide-tls-client-non-block.7" => [ + "doc/man7/ossl-guide-tls-client-non-block.pod" + ], + "doc/man/man7/ossl-guide-tls-introduction.7" => [ + "doc/man7/ossl-guide-tls-introduction.pod" + ], + "doc/man/man7/ossl-guide-tls-server-block.7" => [ + "doc/man7/ossl-guide-tls-server-block.pod" + ], "doc/man/man7/ossl_store-file.7" => [ "doc/man7/ossl_store-file.pod" ], @@ -6723,6 +7673,9 @@ our %unified_info = ( "doc/man/man7/provider-signature.7" => [ "doc/man7/provider-signature.pod" ], + "doc/man/man7/provider-skeymgmt.7" => [ + "doc/man7/provider-skeymgmt.pod" + ], "doc/man/man7/provider-storemgmt.7" => [ "doc/man7/provider-storemgmt.pod" ], @@ -6732,9 +7685,6 @@ our %unified_info = ( "doc/man/man7/proxy-certificates.7" => [ "doc/man7/proxy-certificates.pod" ], - "doc/man/man7/ssl.7" => [ - "doc/man7/ssl.pod" - ], "doc/man/man7/x509.7" => [ "doc/man7/x509.pod" ], @@ -6914,6 +7864,10 @@ our %unified_info = ( "doc/man1/openssl-sess_id.pod.in", "doc/perlvars.pm" ], + "doc/man1/openssl-skeyutl.pod" => [ + "doc/man1/openssl-skeyutl.pod.in", + "doc/perlvars.pm" + ], "doc/man1/openssl-smime.pod" => [ "doc/man1/openssl-smime.pod.in", "doc/perlvars.pm" @@ -6953,6 +7907,27 @@ our %unified_info = ( "doc/man7/openssl_user_macros.pod" => [ "doc/man7/openssl_user_macros.pod.in" ], + "exporters/OpenSSLConfig.cmake" => [ + "installdata.pm" + ], + "exporters/OpenSSLConfigVersion.cmake" => [ + "exporters/OpenSSLConfig.cmake", + "installdata.pm" + ], + "exporters/libcrypto.pc" => [ + "installdata.pm" + ], + "exporters/libssl.pc" => [ + "installdata.pm" + ], + "exporters/openssl.pc" => [ + "exporters/libcrypto.pc", + "exporters/libssl.pc", + "installdata.pm" + ], + "fuzz/acert-test" => [ + "libcrypto" + ], "fuzz/asn1-test" => [ "libcrypto", "libssl" @@ -6985,17 +7960,85 @@ our %unified_info = ( "fuzz/ct-test" => [ "libcrypto" ], + "fuzz/decoder-test" => [ + "libcrypto" + ], + "fuzz/dtlsclient-test" => [ + "libcrypto", + "libssl" + ], + "fuzz/dtlsserver-test" => [ + "libcrypto", + "libssl" + ], + "fuzz/hashtable-test" => [ + "libcrypto.a" + ], + "fuzz/ml-dsa-test" => [ + "libcrypto.a" + ], + "fuzz/ml-kem-test" => [ + "libcrypto.a" + ], + "fuzz/pem-test" => [ + "libcrypto.a" + ], + "fuzz/provider-test" => [ + "libcrypto" + ], + "fuzz/punycode-test" => [ + "libcrypto.a" + ], + "fuzz/quic-client-test" => [ + "libcrypto.a", + "libssl.a" + ], + "fuzz/quic-lcidm-test" => [ + "libcrypto.a", + "libssl.a" + ], + "fuzz/quic-rcidm-test" => [ + "libcrypto.a", + "libssl.a" + ], + "fuzz/quic-server-test" => [ + "libcrypto.a", + "libssl.a" + ], + "fuzz/quic-srtm-test" => [ + "libcrypto.a", + "libssl.a" + ], "fuzz/server-test" => [ "libcrypto", "libssl" ], + "fuzz/slh-dsa-test" => [ + "libcrypto.a" + ], + "fuzz/smime-test" => [ + "libcrypto", + "libssl" + ], + "fuzz/v3name-test" => [ + "libcrypto.a" + ], "fuzz/x509-test" => [ "libcrypto" ], + "include/internal/param_names.h" => [ + "util/perl|OpenSSL/paramnames.pm" + ], + "include/openssl/core_names.h" => [ + "util/perl|OpenSSL/paramnames.pm" + ], "libcrypto.ld" => [ "configdata.pm", "util/perl/OpenSSL/Ordinals.pm" ], + "libcrypto.pc" => [ + "builddata.pm" + ], "libssl" => [ "libcrypto" ], @@ -7003,6 +8046,14 @@ our %unified_info = ( "configdata.pm", "util/perl/OpenSSL/Ordinals.pm" ], + "libssl.pc" => [ + "builddata.pm" + ], + "openssl.pc" => [ + "builddata.pm", + "libcrypto.pc", + "libssl.pc" + ], "providers/common/der/der_digests_gen.c" => [ "providers/common/der/DIGESTS.asn1", "providers/common/der/NIST.asn1", @@ -7020,11 +8071,19 @@ our %unified_info = ( "providers/common/der/ECX.asn1", "providers/common/der/oids_to_c.pm" ], + "providers/common/der/der_ml_dsa_gen.c" => [ + "providers/common/der/ML_DSA.asn1", + "providers/common/der/oids_to_c.pm" + ], "providers/common/der/der_rsa_gen.c" => [ "providers/common/der/NIST.asn1", "providers/common/der/RSA.asn1", "providers/common/der/oids_to_c.pm" ], + "providers/common/der/der_slh_dsa_gen.c" => [ + "providers/common/der/SLH_DSA.asn1", + "providers/common/der/oids_to_c.pm" + ], "providers/common/der/der_sm2_gen.c" => [ "providers/common/der/SM2.asn1", "providers/common/der/oids_to_c.pm" @@ -7064,6 +8123,12 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ecx_key.o" => [ "providers/common/include/prov/der_ecx.h" ], + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o" => [ + "providers/common/include/prov/der_ml_dsa.h" + ], + "providers/common/der/libcommon-lib-der_ml_dsa_key.o" => [ + "providers/common/include/prov/der_ml_dsa.h" + ], "providers/common/der/libcommon-lib-der_rsa_gen.o" => [ "providers/common/include/prov/der_rsa.h" ], @@ -7071,6 +8136,12 @@ our %unified_info = ( "providers/common/include/prov/der_digests.h", "providers/common/include/prov/der_rsa.h" ], + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o" => [ + "providers/common/include/prov/der_slh_dsa.h" + ], + "providers/common/der/libcommon-lib-der_slh_dsa_key.o" => [ + "providers/common/include/prov/der_slh_dsa.h" + ], "providers/common/der/libcommon-lib-der_wrap_gen.o" => [ "providers/common/include/prov/der_wrap.h" ], @@ -7110,11 +8181,19 @@ our %unified_info = ( "providers/common/der/ECX.asn1", "providers/common/der/oids_to_c.pm" ], + "providers/common/include/prov/der_ml_dsa.h" => [ + "providers/common/der/ML_DSA.asn1", + "providers/common/der/oids_to_c.pm" + ], "providers/common/include/prov/der_rsa.h" => [ "providers/common/der/NIST.asn1", "providers/common/der/RSA.asn1", "providers/common/der/oids_to_c.pm" ], + "providers/common/include/prov/der_slh_dsa.h" => [ + "providers/common/der/SLH_DSA.asn1", + "providers/common/der/oids_to_c.pm" + ], "providers/common/include/prov/der_sm2.h" => [ "providers/common/der/SM2.asn1", "providers/common/der/oids_to_c.pm" @@ -7147,9 +8226,15 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-eddsa_sig.o" => [ "providers/common/include/prov/der_ecx.h" ], + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o" => [ + "providers/common/include/prov/der_ml_dsa.h" + ], "providers/implementations/signature/libdefault-lib-rsa_sig.o" => [ "providers/common/include/prov/der_rsa.h" ], + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o" => [ + "providers/common/include/prov/der_slh_dsa.h" + ], "providers/implementations/signature/libdefault-lib-sm2_sig.o" => [ "providers/common/include/prov/der_sm2.h" ], @@ -7162,9 +8247,15 @@ our %unified_info = ( "providers/implementations/signature/libfips-lib-eddsa_sig.o" => [ "providers/common/include/prov/der_ecx.h" ], + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o" => [ + "providers/common/include/prov/der_ml_dsa.h" + ], "providers/implementations/signature/libfips-lib-rsa_sig.o" => [ "providers/common/include/prov/der_rsa.h" ], + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o" => [ + "providers/common/include/prov/der_slh_dsa.h" + ], "providers/legacy" => [ "libcrypto", "providers/liblegacy.a" @@ -7242,6 +8333,14 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/bio_addr_test" => [ + "libcrypto", + "test/libtestutil.a" + ], + "test/bio_base64_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/bio_callback_test" => [ "libcrypto", "test/libtestutil.a" @@ -7250,6 +8349,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/bio_dgram_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/bio_enc_test" => [ "libcrypto", "test/libtestutil.a" @@ -7258,6 +8361,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/bio_meth_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/bio_prefix_text" => [ "libcrypto", "test/libtestutil.a" @@ -7270,6 +8377,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/bio_tfo_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/bioprinttest" => [ "libcrypto", "test/libtestutil.a" @@ -7282,6 +8393,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/build_wincrypt_test" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_aes" => [ "libcrypto", "libssl" @@ -7302,6 +8417,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_byteorder" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_camellia" => [ "libcrypto", "libssl" @@ -7334,10 +8453,6 @@ our %unified_info = ( "libcrypto", "libssl" ], - "test/buildtest_c_core_names" => [ - "libcrypto", - "libssl" - ], "test/buildtest_c_core_object" => [ "libcrypto", "libssl" @@ -7370,6 +8485,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_e_ostime" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_ebcdic" => [ "libcrypto", "libssl" @@ -7406,6 +8525,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_hpke" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_http" => [ "libcrypto", "libssl" @@ -7414,6 +8537,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_indicator" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_kdf" => [ "libcrypto", "libssl" @@ -7434,6 +8561,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_ml_kem" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_modes" => [ "libcrypto", "libssl" @@ -7474,6 +8605,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_quic" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_rand" => [ "libcrypto", "libssl" @@ -7530,6 +8665,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_thread" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_tls1" => [ "libcrypto", "libssl" @@ -7550,10 +8689,23 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/byteorder_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], + "test/ca_internals_test" => [ + "libssl", + "test/libtestutil.a" + ], "test/casttest" => [ "libcrypto", "test/libtestutil.a" ], + "test/cert_comp_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], "test/chacha_internal_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -7667,6 +8819,10 @@ our %unified_info = ( "libssl", "test/libtestutil.a" ], + "test/decoder_propq_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/defltfips_test" => [ "libcrypto", "test/libtestutil.a" @@ -7723,6 +8879,8 @@ our %unified_info = ( ], "test/endecode_test" => [ "libcrypto.a", + "providers/libcommon.a", + "providers/liblegacy.a", "test/libtestutil.a" ], "test/endecoder_legacy_test" => [ @@ -7766,6 +8924,10 @@ our %unified_info = ( "test/evp_pkey_ctx_new_from_name" => [ "libcrypto" ], + "test/evp_pkey_dhkem_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/evp_pkey_dparams_test" => [ "libcrypto", "test/libtestutil.a" @@ -7774,10 +8936,18 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/evp_skey_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/evp_test" => [ "libcrypto", "test/libtestutil.a" ], + "test/evp_xof_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/exdatatest" => [ "libcrypto", "test/libtestutil.a" @@ -7816,6 +8986,10 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/hpke_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/http_test" => [ "libcrypto", "test/libtestutil.a" @@ -7828,17 +9002,25 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/json_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], "test/keymgmt_internal_test" => [ "libcrypto.a", "test/libtestutil.a" ], "test/lhash_test" => [ - "libcrypto", + "libcrypto.a", "test/libtestutil.a" ], "test/libtestutil.a" => [ "libcrypto" ], + "test/list_test" => [ + "test/libtestutil.a" + ], "test/localetest" => [ "libcrypto", "test/libtestutil.a" @@ -7851,10 +9033,26 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/membio_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/memleaktest" => [ "libcrypto", "test/libtestutil.a" ], + "test/ml_dsa_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], + "test/ml_kem_evp_extra_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], + "test/ml_kem_internal_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/modes_internal_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -7879,6 +9077,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/pairwise_fail_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/param_build_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -7911,6 +9113,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/pkcs12_api_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/pkcs12_format_test" => [ "libcrypto", "test/libtestutil.a" @@ -7931,6 +9137,11 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/priority_queue_test" => [ + "libcrypto", + "libssl.a", + "test/libtestutil.a" + ], "test/property_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -7943,6 +9154,10 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/provider_default_search_path_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/provider_fallback_test" => [ "libcrypto", "test/libtestutil.a" @@ -7967,12 +9182,122 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/quic_ackm_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_cc_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_cfq_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_client_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_fc_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_fifd_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_lcidm_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_multistream_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_newcid_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_qlog_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_radix_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_rcidm_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_record_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_srt_gen_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_srtm_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_stream_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_tserver_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_txp_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_txpim_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_wire_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quicapitest" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quicfaultstest" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], "test/rand_status_test" => [ "libcrypto", "test/libtestutil.a" ], "test/rand_test" => [ - "libcrypto", + "libcrypto.a", "test/libtestutil.a" ], "test/rc2test" => [ @@ -7987,7 +9312,7 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], - "test/rdrand_sanitytest" => [ + "test/rdcpu_sanitytest" => [ "libcrypto.a", "test/libtestutil.a" ], @@ -7996,6 +9321,11 @@ our %unified_info = ( "libssl", "test/libtestutil.a" ], + "test/rpktest" => [ + "libcrypto", + "libssl", + "test/libtestutil.a" + ], "test/rsa_mp_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -8008,10 +9338,18 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], - "test/sanitytest" => [ + "test/rsa_x931_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], + "test/safe_math_test" => [ "libcrypto", "test/libtestutil.a" ], + "test/sanitytest" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/secmemtest" => [ "libcrypto", "test/libtestutil.a" @@ -8029,6 +9367,10 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/slh_dsa_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/sm2_internal_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -8058,6 +9400,11 @@ our %unified_info = ( "libssl", "test/libtestutil.a" ], + "test/ssl_handshake_rtt_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], "test/ssl_old_test" => [ "libcrypto.a", "libssl.a", @@ -8074,8 +9421,8 @@ our %unified_info = ( "test/libtestutil.a" ], "test/sslapitest" => [ - "libcrypto", - "libssl", + "libcrypto.a", + "libssl.a", "test/libtestutil.a" ], "test/sslbuffertest" => [ @@ -8092,6 +9439,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/strtoultest" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/sysdefaulttest" => [ "libcrypto", "libssl", @@ -8101,8 +9452,12 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/threadpool_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/threadstest" => [ - "libcrypto", + "libcrypto.a", "test/libtestutil.a" ], "test/threadstest_fips" => [ @@ -8113,6 +9468,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/time_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/tls13ccstest" => [ "libcrypto", "libssl", @@ -8123,6 +9482,11 @@ our %unified_info = ( "libssl.a", "test/libtestutil.a" ], + "test/tls13groupselection_test" => [ + "libcrypto", + "libssl", + "test/libtestutil.a" + ], "test/trace_api_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -8160,6 +9524,10 @@ our %unified_info = ( "libssl.a", "test/libtestutil.a" ], + "test/x509_acert_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/x509_check_cert_pkey_test" => [ "libcrypto", "test/libtestutil.a" @@ -8172,6 +9540,18 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/x509_load_cert_file_test" => [ + "libcrypto", + "test/libtestutil.a" + ], + "test/x509_req_test" => [ + "libcrypto", + "test/libtestutil.a" + ], + "test/x509_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/x509_time_test" => [ "libcrypto", "test/libtestutil.a" @@ -8186,9 +9566,13 @@ our %unified_info = ( }, "dirinfo" => { "apps" => { + "deps" => [ + "apps/ca_internals_test-bin-ca.o" + ], "products" => { "bin" => [ - "apps/openssl" + "apps/openssl", + "test/ca_internals_test" ], "script" => [ "apps/CA.pl", @@ -8199,6 +9583,14 @@ our %unified_info = ( "apps/lib" => { "deps" => [ "apps/lib/openssl-bin-cmp_mock_srv.o", + "apps/lib/ca_internals_test-bin-app_libctx.o", + "apps/lib/ca_internals_test-bin-app_provider.o", + "apps/lib/ca_internals_test-bin-app_rand.o", + "apps/lib/ca_internals_test-bin-app_x509.o", + "apps/lib/ca_internals_test-bin-apps.o", + "apps/lib/ca_internals_test-bin-apps_ui.o", + "apps/lib/ca_internals_test-bin-engine.o", + "apps/lib/ca_internals_test-bin-fmt.o", "apps/lib/cmp_client_test-bin-cmp_mock_srv.o", "apps/lib/uitest-bin-apps_ui.o", "apps/lib/libapps-lib-app_libctx.o", @@ -8207,12 +9599,14 @@ our %unified_info = ( "apps/lib/libapps-lib-app_rand.o", "apps/lib/libapps-lib-app_x509.o", "apps/lib/libapps-lib-apps.o", + "apps/lib/libapps-lib-apps_opt_printf.o", "apps/lib/libapps-lib-apps_ui.o", "apps/lib/libapps-lib-columns.o", "apps/lib/libapps-lib-engine.o", "apps/lib/libapps-lib-engine_loader.o", "apps/lib/libapps-lib-fmt.o", "apps/lib/libapps-lib-http_server.o", + "apps/lib/libapps-lib-log.o", "apps/lib/libapps-lib-names.o", "apps/lib/libapps-lib-opt.o", "apps/lib/libapps-lib-s_cb.o", @@ -8223,6 +9617,7 @@ our %unified_info = ( "products" => { "bin" => [ "apps/openssl", + "test/ca_internals_test", "test/cmp_client_test", "test/uitest" ], @@ -8234,8 +9629,12 @@ our %unified_info = ( }, "crypto" => { "deps" => [ + "crypto/asn1_time_test-bin-ctype.o", + "crypto/ca_internals_test-bin-ctype.o", + "crypto/packettest-bin-quic_vlint.o", "crypto/libcrypto-lib-asn1_dsa.o", "crypto/libcrypto-lib-bsearch.o", + "crypto/libcrypto-lib-comp_methods.o", "crypto/libcrypto-lib-context.o", "crypto/libcrypto-lib-core_algorithm.o", "crypto/libcrypto-lib-core_fetch.o", @@ -8245,10 +9644,13 @@ our %unified_info = ( "crypto/libcrypto-lib-cryptlib.o", "crypto/libcrypto-lib-ctype.o", "crypto/libcrypto-lib-cversion.o", + "crypto/libcrypto-lib-defaults.o", "crypto/libcrypto-lib-der_writer.o", + "crypto/libcrypto-lib-deterministic_nonce.o", "crypto/libcrypto-lib-ebcdic.o", "crypto/libcrypto-lib-ex_data.o", "crypto/libcrypto-lib-getenv.o", + "crypto/libcrypto-lib-indicator_core.o", "crypto/libcrypto-lib-info.o", "crypto/libcrypto-lib-init.o", "crypto/libcrypto-lib-initthread.o", @@ -8265,6 +9667,7 @@ our %unified_info = ( "crypto/libcrypto-lib-params.o", "crypto/libcrypto-lib-params_dup.o", "crypto/libcrypto-lib-params_from_text.o", + "crypto/libcrypto-lib-params_idx.o", "crypto/libcrypto-lib-passphrase.o", "crypto/libcrypto-lib-provider.o", "crypto/libcrypto-lib-provider_child.o", @@ -8272,12 +9675,16 @@ our %unified_info = ( "crypto/libcrypto-lib-provider_core.o", "crypto/libcrypto-lib-provider_predefined.o", "crypto/libcrypto-lib-punycode.o", + "crypto/libcrypto-lib-quic_vlint.o", "crypto/libcrypto-lib-self_test_core.o", + "crypto/libcrypto-lib-sleep.o", "crypto/libcrypto-lib-sparse_array.o", + "crypto/libcrypto-lib-ssl_err.o", "crypto/libcrypto-lib-threads_lib.o", "crypto/libcrypto-lib-threads_none.o", "crypto/libcrypto-lib-threads_pthread.o", "crypto/libcrypto-lib-threads_win.o", + "crypto/libcrypto-lib-time.o", "crypto/libcrypto-lib-trace.o", "crypto/libcrypto-lib-uid.o", "crypto/libcrypto-lib-x86_64cpuid.o", @@ -8300,6 +9707,7 @@ our %unified_info = ( "crypto/libfips-lib-params.o", "crypto/libfips-lib-params_dup.o", "crypto/libfips-lib-params_from_text.o", + "crypto/libfips-lib-params_idx.o", "crypto/libfips-lib-provider_core.o", "crypto/libfips-lib-provider_predefined.o", "crypto/libfips-lib-self_test_core.o", @@ -8308,9 +9716,15 @@ our %unified_info = ( "crypto/libfips-lib-threads_none.o", "crypto/libfips-lib-threads_pthread.o", "crypto/libfips-lib-threads_win.o", + "crypto/libfips-lib-time.o", "crypto/libfips-lib-x86_64cpuid.o" ], "products" => { + "bin" => [ + "test/asn1_time_test", + "test/ca_internals_test", + "test/packettest" + ], "lib" => [ "libcrypto", "providers/libfips.a" @@ -8330,6 +9744,7 @@ our %unified_info = ( "crypto/aes/libcrypto-lib-aesni-sha1-x86_64.o", "crypto/aes/libcrypto-lib-aesni-sha256-x86_64.o", "crypto/aes/libcrypto-lib-aesni-x86_64.o", + "crypto/aes/libcrypto-lib-aesni-xts-avx512.o", "crypto/aes/libcrypto-lib-bsaes-x86_64.o", "crypto/aes/libcrypto-lib-vpaes-x86_64.o", "crypto/aes/libfips-lib-aes-x86_64.o", @@ -8339,6 +9754,7 @@ our %unified_info = ( "crypto/aes/libfips-lib-aesni-sha1-x86_64.o", "crypto/aes/libfips-lib-aesni-sha256-x86_64.o", "crypto/aes/libfips-lib-aesni-x86_64.o", + "crypto/aes/libfips-lib-aesni-xts-avx512.o", "crypto/aes/libfips-lib-bsaes-x86_64.o", "crypto/aes/libfips-lib-vpaes-x86_64.o" ], @@ -8361,6 +9777,8 @@ our %unified_info = ( }, "crypto/asn1" => { "deps" => [ + "crypto/asn1/asn1_time_test-bin-a_time.o", + "crypto/asn1/ca_internals_test-bin-a_time.o", "crypto/asn1/libcrypto-lib-a_bitstr.o", "crypto/asn1/libcrypto-lib-a_d2i_fp.o", "crypto/asn1/libcrypto-lib-a_digest.o", @@ -8427,6 +9845,10 @@ our %unified_info = ( "crypto/asn1/libcrypto-lib-x_val.o" ], "products" => { + "bin" => [ + "test/asn1_time_test", + "test/ca_internals_test" + ], "lib" => [ "libcrypto" ] @@ -8492,6 +9914,7 @@ our %unified_info = ( "crypto/bio/libcrypto-lib-bss_conn.o", "crypto/bio/libcrypto-lib-bss_core.o", "crypto/bio/libcrypto-lib-bss_dgram.o", + "crypto/bio/libcrypto-lib-bss_dgram_pair.o", "crypto/bio/libcrypto-lib-bss_fd.o", "crypto/bio/libcrypto-lib-bss_file.o", "crypto/bio/libcrypto-lib-bss_log.o", @@ -8540,8 +9963,13 @@ our %unified_info = ( "crypto/bn/libcrypto-lib-bn_srp.o", "crypto/bn/libcrypto-lib-bn_word.o", "crypto/bn/libcrypto-lib-bn_x931p.o", + "crypto/bn/libcrypto-lib-rsaz-2k-avx512.o", + "crypto/bn/libcrypto-lib-rsaz-2k-avxifma.o", + "crypto/bn/libcrypto-lib-rsaz-3k-avx512.o", + "crypto/bn/libcrypto-lib-rsaz-3k-avxifma.o", + "crypto/bn/libcrypto-lib-rsaz-4k-avx512.o", + "crypto/bn/libcrypto-lib-rsaz-4k-avxifma.o", "crypto/bn/libcrypto-lib-rsaz-avx2.o", - "crypto/bn/libcrypto-lib-rsaz-avx512.o", "crypto/bn/libcrypto-lib-rsaz-x86_64.o", "crypto/bn/libcrypto-lib-rsaz_exp.o", "crypto/bn/libcrypto-lib-rsaz_exp_x2.o", @@ -8575,8 +10003,13 @@ our %unified_info = ( "crypto/bn/libfips-lib-bn_sqr.o", "crypto/bn/libfips-lib-bn_sqrt.o", "crypto/bn/libfips-lib-bn_word.o", + "crypto/bn/libfips-lib-rsaz-2k-avx512.o", + "crypto/bn/libfips-lib-rsaz-2k-avxifma.o", + "crypto/bn/libfips-lib-rsaz-3k-avx512.o", + "crypto/bn/libfips-lib-rsaz-3k-avxifma.o", + "crypto/bn/libfips-lib-rsaz-4k-avx512.o", + "crypto/bn/libfips-lib-rsaz-4k-avxifma.o", "crypto/bn/libfips-lib-rsaz-avx2.o", - "crypto/bn/libfips-lib-rsaz-avx512.o", "crypto/bn/libfips-lib-rsaz-x86_64.o", "crypto/bn/libfips-lib-rsaz_exp.o", "crypto/bn/libfips-lib-rsaz_exp_x2.o", @@ -8673,6 +10106,7 @@ our %unified_info = ( "crypto/cmp/libcrypto-lib-cmp_client.o", "crypto/cmp/libcrypto-lib-cmp_ctx.o", "crypto/cmp/libcrypto-lib-cmp_err.o", + "crypto/cmp/libcrypto-lib-cmp_genm.o", "crypto/cmp/libcrypto-lib-cmp_hdr.o", "crypto/cmp/libcrypto-lib-cmp_http.o", "crypto/cmp/libcrypto-lib-cmp_msg.o", @@ -9046,7 +10480,9 @@ our %unified_info = ( "crypto/err/libcrypto-lib-err_all.o", "crypto/err/libcrypto-lib-err_all_legacy.o", "crypto/err/libcrypto-lib-err_blocks.o", - "crypto/err/libcrypto-lib-err_prn.o" + "crypto/err/libcrypto-lib-err_mark.o", + "crypto/err/libcrypto-lib-err_prn.o", + "crypto/err/libcrypto-lib-err_save.o" ], "products" => { "lib" => [ @@ -9147,7 +10583,9 @@ our %unified_info = ( "crypto/evp/libcrypto-lib-pmeth_check.o", "crypto/evp/libcrypto-lib-pmeth_gn.o", "crypto/evp/libcrypto-lib-pmeth_lib.o", + "crypto/evp/libcrypto-lib-s_lib.o", "crypto/evp/libcrypto-lib-signature.o", + "crypto/evp/libcrypto-lib-skeymgmt_meth.o", "crypto/evp/libfips-lib-asymcipher.o", "crypto/evp/libfips-lib-dh_support.o", "crypto/evp/libfips-lib-digest.o", @@ -9163,14 +10601,15 @@ our %unified_info = ( "crypto/evp/libfips-lib-kem.o", "crypto/evp/libfips-lib-keymgmt_lib.o", "crypto/evp/libfips-lib-keymgmt_meth.o", - "crypto/evp/libfips-lib-m_sigver.o", "crypto/evp/libfips-lib-mac_lib.o", "crypto/evp/libfips-lib-mac_meth.o", "crypto/evp/libfips-lib-p_lib.o", "crypto/evp/libfips-lib-pmeth_check.o", "crypto/evp/libfips-lib-pmeth_gn.o", "crypto/evp/libfips-lib-pmeth_lib.o", - "crypto/evp/libfips-lib-signature.o" + "crypto/evp/libfips-lib-s_lib.o", + "crypto/evp/libfips-lib-signature.o", + "crypto/evp/libfips-lib-skeymgmt_meth.o" ], "products" => { "lib" => [ @@ -9203,6 +10642,20 @@ our %unified_info = ( ] } }, + "crypto/hashtable" => { + "deps" => [ + "crypto/hashtable/libcrypto-lib-hashfunc.o", + "crypto/hashtable/libcrypto-lib-hashtable.o", + "crypto/hashtable/libfips-lib-hashfunc.o", + "crypto/hashtable/libfips-lib-hashtable.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, "crypto/hmac" => { "deps" => [ "crypto/hmac/libcrypto-lib-hmac.o", @@ -9215,6 +10668,17 @@ our %unified_info = ( ] } }, + "crypto/hpke" => { + "deps" => [ + "crypto/hpke/libcrypto-lib-hpke.o", + "crypto/hpke/libcrypto-lib-hpke_util.o" + ], + "products" => { + "lib" => [ + "libcrypto" + ] + } + }, "crypto/http" => { "deps" => [ "crypto/http/libcrypto-lib-http_client.o", @@ -9299,8 +10763,47 @@ our %unified_info = ( ] } }, + "crypto/ml_dsa" => { + "deps" => [ + "crypto/ml_dsa/libcrypto-lib-ml_dsa_encoders.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key_compress.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_matrix.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_ntt.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_params.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sample.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sign.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_encoders.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_key.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_key_compress.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_matrix.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_ntt.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_params.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_sample.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_sign.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, + "crypto/ml_kem" => { + "deps" => [ + "crypto/ml_kem/libcrypto-lib-ml_kem.o", + "crypto/ml_kem/libfips-lib-ml_kem.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, "crypto/modes" => { "deps" => [ + "crypto/modes/libcrypto-lib-aes-gcm-avx512.o", "crypto/modes/libcrypto-lib-aesni-gcm-x86_64.o", "crypto/modes/libcrypto-lib-cbc128.o", "crypto/modes/libcrypto-lib-ccm128.o", @@ -9314,6 +10817,8 @@ our %unified_info = ( "crypto/modes/libcrypto-lib-siv128.o", "crypto/modes/libcrypto-lib-wrap128.o", "crypto/modes/libcrypto-lib-xts128.o", + "crypto/modes/libcrypto-lib-xts128gb.o", + "crypto/modes/libfips-lib-aes-gcm-avx512.o", "crypto/modes/libfips-lib-aesni-gcm-x86_64.o", "crypto/modes/libfips-lib-cbc128.o", "crypto/modes/libfips-lib-ccm128.o", @@ -9323,7 +10828,8 @@ our %unified_info = ( "crypto/modes/libfips-lib-ghash-x86_64.o", "crypto/modes/libfips-lib-ofb128.o", "crypto/modes/libfips-lib-wrap128.o", - "crypto/modes/libfips-lib-xts128.o" + "crypto/modes/libfips-lib-xts128.o", + "crypto/modes/libfips-lib-xts128gb.o" ], "products" => { "lib" => [ @@ -9467,6 +10973,7 @@ our %unified_info = ( "crypto/rand/libcrypto-lib-rand_lib.o", "crypto/rand/libcrypto-lib-rand_meth.o", "crypto/rand/libcrypto-lib-rand_pool.o", + "crypto/rand/libcrypto-lib-rand_uniform.o", "crypto/rand/libcrypto-lib-randfile.o", "crypto/rand/libfips-lib-rand_lib.o" ], @@ -9621,6 +11128,36 @@ our %unified_info = ( ] } }, + "crypto/slh_dsa" => { + "deps" => [ + "crypto/slh_dsa/libcrypto-lib-slh_adrs.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa_hash_ctx.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa_key.o", + "crypto/slh_dsa/libcrypto-lib-slh_fors.o", + "crypto/slh_dsa/libcrypto-lib-slh_hash.o", + "crypto/slh_dsa/libcrypto-lib-slh_hypertree.o", + "crypto/slh_dsa/libcrypto-lib-slh_params.o", + "crypto/slh_dsa/libcrypto-lib-slh_wots.o", + "crypto/slh_dsa/libcrypto-lib-slh_xmss.o", + "crypto/slh_dsa/libfips-lib-slh_adrs.o", + "crypto/slh_dsa/libfips-lib-slh_dsa.o", + "crypto/slh_dsa/libfips-lib-slh_dsa_hash_ctx.o", + "crypto/slh_dsa/libfips-lib-slh_dsa_key.o", + "crypto/slh_dsa/libfips-lib-slh_fors.o", + "crypto/slh_dsa/libfips-lib-slh_hash.o", + "crypto/slh_dsa/libfips-lib-slh_hypertree.o", + "crypto/slh_dsa/libfips-lib-slh_params.o", + "crypto/slh_dsa/libfips-lib-slh_wots.o", + "crypto/slh_dsa/libfips-lib-slh_xmss.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, "crypto/sm2" => { "deps" => [ "crypto/sm2/libcrypto-lib-sm2_crypt.o", @@ -9694,6 +11231,38 @@ our %unified_info = ( ] } }, + "crypto/thread" => { + "deps" => [ + "crypto/thread/libcrypto-lib-api.o", + "crypto/thread/libcrypto-lib-arch.o", + "crypto/thread/libcrypto-lib-internal.o", + "crypto/thread/libfips-lib-api.o", + "crypto/thread/libfips-lib-arch.o", + "crypto/thread/libfips-lib-internal.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, + "crypto/thread/arch" => { + "deps" => [ + "crypto/thread/arch/libcrypto-lib-thread_none.o", + "crypto/thread/arch/libcrypto-lib-thread_posix.o", + "crypto/thread/arch/libcrypto-lib-thread_win.o", + "crypto/thread/arch/libfips-lib-thread_none.o", + "crypto/thread/arch/libfips-lib-thread_posix.o", + "crypto/thread/arch/libfips-lib-thread_win.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, "crypto/ts" => { "deps" => [ "crypto/ts/libcrypto-lib-ts_asn1.o", @@ -9760,14 +11329,22 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-pcy_map.o", "crypto/x509/libcrypto-lib-pcy_node.o", "crypto/x509/libcrypto-lib-pcy_tree.o", + "crypto/x509/libcrypto-lib-t_acert.o", "crypto/x509/libcrypto-lib-t_crl.o", "crypto/x509/libcrypto-lib-t_req.o", "crypto/x509/libcrypto-lib-t_x509.o", + "crypto/x509/libcrypto-lib-v3_aaa.o", + "crypto/x509/libcrypto-lib-v3_ac_tgt.o", "crypto/x509/libcrypto-lib-v3_addr.o", "crypto/x509/libcrypto-lib-v3_admis.o", "crypto/x509/libcrypto-lib-v3_akeya.o", "crypto/x509/libcrypto-lib-v3_akid.o", "crypto/x509/libcrypto-lib-v3_asid.o", + "crypto/x509/libcrypto-lib-v3_attrdesc.o", + "crypto/x509/libcrypto-lib-v3_attrmap.o", + "crypto/x509/libcrypto-lib-v3_audit_id.o", + "crypto/x509/libcrypto-lib-v3_authattid.o", + "crypto/x509/libcrypto-lib-v3_battcons.o", "crypto/x509/libcrypto-lib-v3_bcons.o", "crypto/x509/libcrypto-lib-v3_bitst.o", "crypto/x509/libcrypto-lib-v3_conf.o", @@ -9776,12 +11353,17 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_enum.o", "crypto/x509/libcrypto-lib-v3_extku.o", "crypto/x509/libcrypto-lib-v3_genn.o", + "crypto/x509/libcrypto-lib-v3_group_ac.o", "crypto/x509/libcrypto-lib-v3_ia5.o", + "crypto/x509/libcrypto-lib-v3_ind_iss.o", "crypto/x509/libcrypto-lib-v3_info.o", "crypto/x509/libcrypto-lib-v3_int.o", + "crypto/x509/libcrypto-lib-v3_iobo.o", "crypto/x509/libcrypto-lib-v3_ist.o", "crypto/x509/libcrypto-lib-v3_lib.o", "crypto/x509/libcrypto-lib-v3_ncons.o", + "crypto/x509/libcrypto-lib-v3_no_ass.o", + "crypto/x509/libcrypto-lib-v3_no_rev_avail.o", "crypto/x509/libcrypto-lib-v3_pci.o", "crypto/x509/libcrypto-lib-v3_pcia.o", "crypto/x509/libcrypto-lib-v3_pcons.o", @@ -9789,13 +11371,20 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_pmaps.o", "crypto/x509/libcrypto-lib-v3_prn.o", "crypto/x509/libcrypto-lib-v3_purp.o", + "crypto/x509/libcrypto-lib-v3_rolespec.o", "crypto/x509/libcrypto-lib-v3_san.o", + "crypto/x509/libcrypto-lib-v3_sda.o", + "crypto/x509/libcrypto-lib-v3_single_use.o", "crypto/x509/libcrypto-lib-v3_skid.o", + "crypto/x509/libcrypto-lib-v3_soa_id.o", "crypto/x509/libcrypto-lib-v3_sxnet.o", + "crypto/x509/libcrypto-lib-v3_timespec.o", "crypto/x509/libcrypto-lib-v3_tlsf.o", + "crypto/x509/libcrypto-lib-v3_usernotice.o", "crypto/x509/libcrypto-lib-v3_utf8.o", "crypto/x509/libcrypto-lib-v3_utl.o", "crypto/x509/libcrypto-lib-v3err.o", + "crypto/x509/libcrypto-lib-x509_acert.o", "crypto/x509/libcrypto-lib-x509_att.o", "crypto/x509/libcrypto-lib-x509_cmp.o", "crypto/x509/libcrypto-lib-x509_d2.o", @@ -9813,6 +11402,7 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x509_v3.o", "crypto/x509/libcrypto-lib-x509_vfy.o", "crypto/x509/libcrypto-lib-x509_vpm.o", + "crypto/x509/libcrypto-lib-x509aset.o", "crypto/x509/libcrypto-lib-x509cset.o", "crypto/x509/libcrypto-lib-x509name.o", "crypto/x509/libcrypto-lib-x509rset.o", @@ -9822,6 +11412,7 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x_attrib.o", "crypto/x509/libcrypto-lib-x_crl.o", "crypto/x509/libcrypto-lib-x_exten.o", + "crypto/x509/libcrypto-lib-x_ietfatt.o", "crypto/x509/libcrypto-lib-x_name.o", "crypto/x509/libcrypto-lib-x_pubkey.o", "crypto/x509/libcrypto-lib-x_req.o", @@ -9850,6 +11441,7 @@ our %unified_info = ( "fuzz" => { "products" => { "bin" => [ + "fuzz/acert-test", "fuzz/asn1-test", "fuzz/asn1parse-test", "fuzz/bignum-test", @@ -9860,13 +11452,31 @@ our %unified_info = ( "fuzz/conf-test", "fuzz/crl-test", "fuzz/ct-test", + "fuzz/decoder-test", + "fuzz/dtlsclient-test", + "fuzz/dtlsserver-test", + "fuzz/hashtable-test", + "fuzz/ml-dsa-test", + "fuzz/ml-kem-test", + "fuzz/pem-test", + "fuzz/provider-test", + "fuzz/punycode-test", + "fuzz/quic-client-test", + "fuzz/quic-lcidm-test", + "fuzz/quic-rcidm-test", + "fuzz/quic-server-test", + "fuzz/quic-srtm-test", "fuzz/server-test", + "fuzz/slh-dsa-test", + "fuzz/smime-test", + "fuzz/v3name-test", "fuzz/x509-test" ] } }, "providers" => { "deps" => [ + "providers/endecode_test-bin-legacyprov.o", "providers/evp_extra_test-bin-legacyprov.o", "providers/libcrypto-lib-baseprov.o", "providers/libcrypto-lib-defltprov.o", @@ -9876,6 +11486,7 @@ our %unified_info = ( ], "products" => { "bin" => [ + "test/endecode_test", "test/evp_extra_test" ], "dso" => [ @@ -9927,8 +11538,12 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ec_sig.o", "providers/common/der/libcommon-lib-der_ecx_gen.o", "providers/common/der/libcommon-lib-der_ecx_key.o", + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o", + "providers/common/der/libcommon-lib-der_ml_dsa_key.o", "providers/common/der/libcommon-lib-der_rsa_gen.o", "providers/common/der/libcommon-lib-der_rsa_key.o", + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o", + "providers/common/der/libcommon-lib-der_slh_dsa_key.o", "providers/common/der/libcommon-lib-der_wrap_gen.o", "providers/common/der/libdefault-lib-der_rsa_sig.o", "providers/common/der/libdefault-lib-der_sm2_gen.o", @@ -9947,6 +11562,7 @@ our %unified_info = ( "providers/fips" => { "deps" => [ "providers/fips/fips-dso-fips_entry.o", + "providers/fips/libfips-lib-fipsindicator.o", "providers/fips/libfips-lib-fipsprov.o", "providers/fips/libfips-lib-self_test.o", "providers/fips/libfips-lib-self_test_kats.o" @@ -9990,6 +11606,9 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_aes_ccm_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_polyval.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_ocb.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_ocb_hw.o", @@ -10014,7 +11633,13 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_cts.o", "providers/implementations/ciphers/libdefault-lib-cipher_null.o", "providers/implementations/ciphers/libdefault-lib-cipher_sm4.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_sm4_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes_common.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes_default.o", @@ -10111,7 +11736,10 @@ our %unified_info = ( "providers/implementations/encode_decode/libdefault-lib-encode_key2blob.o", "providers/implementations/encode_decode/libdefault-lib-encode_key2ms.o", "providers/implementations/encode_decode/libdefault-lib-encode_key2text.o", - "providers/implementations/encode_decode/libdefault-lib-endecoder_common.o" + "providers/implementations/encode_decode/libdefault-lib-endecoder_common.o", + "providers/implementations/encode_decode/libdefault-lib-ml_common_codecs.o", + "providers/implementations/encode_decode/libdefault-lib-ml_dsa_codecs.o", + "providers/implementations/encode_decode/libdefault-lib-ml_kem_codecs.o" ], "products" => { "lib" => [ @@ -10139,7 +11767,9 @@ our %unified_info = ( }, "providers/implementations/kdfs" => { "deps" => [ + "providers/implementations/kdfs/libdefault-lib-argon2.o", "providers/implementations/kdfs/libdefault-lib-hkdf.o", + "providers/implementations/kdfs/libdefault-lib-hmacdrbg_kdf.o", "providers/implementations/kdfs/libdefault-lib-kbkdf.o", "providers/implementations/kdfs/libdefault-lib-krb5kdf.o", "providers/implementations/kdfs/libdefault-lib-pbkdf2.o", @@ -10158,7 +11788,8 @@ our %unified_info = ( "providers/implementations/kdfs/libfips-lib-sskdf.o", "providers/implementations/kdfs/libfips-lib-tls1_prf.o", "providers/implementations/kdfs/libfips-lib-x942kdf.o", - "providers/implementations/kdfs/liblegacy-lib-pbkdf1.o" + "providers/implementations/kdfs/liblegacy-lib-pbkdf1.o", + "providers/implementations/kdfs/liblegacy-lib-pvkkdf.o" ], "products" => { "lib" => [ @@ -10170,13 +11801,22 @@ our %unified_info = ( }, "providers/implementations/kem" => { "deps" => [ + "providers/implementations/kem/libdefault-lib-ec_kem.o", + "providers/implementations/kem/libdefault-lib-ecx_kem.o", + "providers/implementations/kem/libdefault-lib-kem_util.o", + "providers/implementations/kem/libdefault-lib-ml_kem_kem.o", + "providers/implementations/kem/libdefault-lib-mlx_kem.o", "providers/implementations/kem/libdefault-lib-rsa_kem.o", - "providers/implementations/kem/libfips-lib-rsa_kem.o" + "providers/implementations/kem/libfips-lib-ml_kem_kem.o", + "providers/implementations/kem/libfips-lib-mlx_kem.o", + "providers/implementations/kem/libfips-lib-rsa_kem.o", + "providers/implementations/kem/libtemplate-lib-template_kem.o" ], "products" => { "lib" => [ "providers/libdefault.a", - "providers/libfips.a" + "providers/libfips.a", + "providers/libtemplate.a" ] } }, @@ -10188,19 +11828,29 @@ our %unified_info = ( "providers/implementations/keymgmt/libdefault-lib-ecx_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-kdf_legacy_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-mac_legacy_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-ml_dsa_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-ml_kem_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-mlx_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-rsa_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-slh_dsa_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-dh_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-dsa_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-ec_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-ecx_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-kdf_legacy_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-mac_legacy_kmgmt.o", - "providers/implementations/keymgmt/libfips-lib-rsa_kmgmt.o" + "providers/implementations/keymgmt/libfips-lib-ml_dsa_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-ml_kem_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-mlx_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-rsa_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-slh_dsa_kmgmt.o", + "providers/implementations/keymgmt/libtemplate-lib-template_kmgmt.o" ], "products" => { "lib" => [ "providers/libdefault.a", - "providers/libfips.a" + "providers/libfips.a", + "providers/libtemplate.a" ] } }, @@ -10228,18 +11878,18 @@ our %unified_info = ( }, "providers/implementations/rands" => { "deps" => [ - "providers/implementations/rands/libdefault-lib-crngt.o", "providers/implementations/rands/libdefault-lib-drbg.o", "providers/implementations/rands/libdefault-lib-drbg_ctr.o", "providers/implementations/rands/libdefault-lib-drbg_hash.o", "providers/implementations/rands/libdefault-lib-drbg_hmac.o", "providers/implementations/rands/libdefault-lib-seed_src.o", + "providers/implementations/rands/libdefault-lib-seed_src_jitter.o", "providers/implementations/rands/libdefault-lib-test_rng.o", - "providers/implementations/rands/libfips-lib-crngt.o", "providers/implementations/rands/libfips-lib-drbg.o", "providers/implementations/rands/libfips-lib-drbg_ctr.o", "providers/implementations/rands/libfips-lib-drbg_hash.o", "providers/implementations/rands/libfips-lib-drbg_hmac.o", + "providers/implementations/rands/libfips-lib-fips_crng_test.o", "providers/implementations/rands/libfips-lib-test_rng.o" ], "products" => { @@ -10268,13 +11918,31 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-ecdsa_sig.o", "providers/implementations/signature/libdefault-lib-eddsa_sig.o", "providers/implementations/signature/libdefault-lib-mac_legacy_sig.o", + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o", "providers/implementations/signature/libdefault-lib-rsa_sig.o", + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o", "providers/implementations/signature/libdefault-lib-sm2_sig.o", "providers/implementations/signature/libfips-lib-dsa_sig.o", "providers/implementations/signature/libfips-lib-ecdsa_sig.o", "providers/implementations/signature/libfips-lib-eddsa_sig.o", "providers/implementations/signature/libfips-lib-mac_legacy_sig.o", - "providers/implementations/signature/libfips-lib-rsa_sig.o" + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o", + "providers/implementations/signature/libfips-lib-rsa_sig.o", + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o" + ], + "products" => { + "lib" => [ + "providers/libdefault.a", + "providers/libfips.a" + ] + } + }, + "providers/implementations/skeymgmt" => { + "deps" => [ + "providers/implementations/skeymgmt/libdefault-lib-aes_skmgmt.o", + "providers/implementations/skeymgmt/libdefault-lib-generic.o", + "providers/implementations/skeymgmt/libfips-lib-aes_skmgmt.o", + "providers/implementations/skeymgmt/libfips-lib-generic.o" ], "products" => { "lib" => [ @@ -10302,14 +11970,15 @@ our %unified_info = ( "ssl/libssl-lib-d1_srtp.o", "ssl/libssl-lib-methods.o", "ssl/libssl-lib-pqueue.o", + "ssl/libssl-lib-priority_queue.o", "ssl/libssl-lib-s3_enc.o", "ssl/libssl-lib-s3_lib.o", "ssl/libssl-lib-s3_msg.o", "ssl/libssl-lib-ssl_asn1.o", "ssl/libssl-lib-ssl_cert.o", + "ssl/libssl-lib-ssl_cert_comp.o", "ssl/libssl-lib-ssl_ciph.o", "ssl/libssl-lib-ssl_conf.o", - "ssl/libssl-lib-ssl_err.o", "ssl/libssl-lib-ssl_err_legacy.o", "ssl/libssl-lib-ssl_init.o", "ssl/libssl-lib-ssl_lib.o", @@ -10325,32 +11994,107 @@ our %unified_info = ( "ssl/libssl-lib-t1_trce.o", "ssl/libssl-lib-tls13_enc.o", "ssl/libssl-lib-tls_depr.o", - "ssl/libssl-lib-tls_srp.o", - "ssl/libdefault-lib-s3_cbc.o", - "ssl/libfips-lib-s3_cbc.o" + "ssl/libssl-lib-tls_srp.o" ], "products" => { "lib" => [ - "libssl", - "providers/libdefault.a", - "providers/libfips.a" + "libssl" + ] + } + }, + "ssl/quic" => { + "deps" => [ + "ssl/quic/libssl-lib-cc_newreno.o", + "ssl/quic/libssl-lib-json_enc.o", + "ssl/quic/libssl-lib-qlog.o", + "ssl/quic/libssl-lib-qlog_event_helpers.o", + "ssl/quic/libssl-lib-quic_ackm.o", + "ssl/quic/libssl-lib-quic_cfq.o", + "ssl/quic/libssl-lib-quic_channel.o", + "ssl/quic/libssl-lib-quic_demux.o", + "ssl/quic/libssl-lib-quic_engine.o", + "ssl/quic/libssl-lib-quic_fc.o", + "ssl/quic/libssl-lib-quic_fifd.o", + "ssl/quic/libssl-lib-quic_impl.o", + "ssl/quic/libssl-lib-quic_lcidm.o", + "ssl/quic/libssl-lib-quic_method.o", + "ssl/quic/libssl-lib-quic_obj.o", + "ssl/quic/libssl-lib-quic_port.o", + "ssl/quic/libssl-lib-quic_rcidm.o", + "ssl/quic/libssl-lib-quic_reactor.o", + "ssl/quic/libssl-lib-quic_reactor_wait_ctx.o", + "ssl/quic/libssl-lib-quic_record_rx.o", + "ssl/quic/libssl-lib-quic_record_shared.o", + "ssl/quic/libssl-lib-quic_record_tx.o", + "ssl/quic/libssl-lib-quic_record_util.o", + "ssl/quic/libssl-lib-quic_rstream.o", + "ssl/quic/libssl-lib-quic_rx_depack.o", + "ssl/quic/libssl-lib-quic_sf_list.o", + "ssl/quic/libssl-lib-quic_srt_gen.o", + "ssl/quic/libssl-lib-quic_srtm.o", + "ssl/quic/libssl-lib-quic_sstream.o", + "ssl/quic/libssl-lib-quic_statm.o", + "ssl/quic/libssl-lib-quic_stream_map.o", + "ssl/quic/libssl-lib-quic_thread_assist.o", + "ssl/quic/libssl-lib-quic_tls.o", + "ssl/quic/libssl-lib-quic_tls_api.o", + "ssl/quic/libssl-lib-quic_trace.o", + "ssl/quic/libssl-lib-quic_tserver.o", + "ssl/quic/libssl-lib-quic_txp.o", + "ssl/quic/libssl-lib-quic_txpim.o", + "ssl/quic/libssl-lib-quic_types.o", + "ssl/quic/libssl-lib-quic_wire.o", + "ssl/quic/libssl-lib-quic_wire_pkt.o", + "ssl/quic/libssl-lib-uint_set.o" + ], + "products" => { + "lib" => [ + "libssl" ] } }, "ssl/record" => { "deps" => [ - "ssl/record/libssl-lib-dtls1_bitmap.o", "ssl/record/libssl-lib-rec_layer_d1.o", - "ssl/record/libssl-lib-rec_layer_s3.o", - "ssl/record/libssl-lib-ssl3_buffer.o", - "ssl/record/libssl-lib-ssl3_record.o", - "ssl/record/libssl-lib-ssl3_record_tls13.o", - "ssl/record/libcommon-lib-tls_pad.o" + "ssl/record/libssl-lib-rec_layer_s3.o" + ], + "products" => { + "lib" => [ + "libssl" + ] + } + }, + "ssl/record/methods" => { + "deps" => [ + "ssl/record/methods/libssl-lib-dtls_meth.o", + "ssl/record/methods/libssl-lib-ssl3_meth.o", + "ssl/record/methods/libssl-lib-tls13_meth.o", + "ssl/record/methods/libssl-lib-tls1_meth.o", + "ssl/record/methods/libssl-lib-tls_common.o", + "ssl/record/methods/libssl-lib-tls_multib.o", + "ssl/record/methods/libssl-lib-tlsany_meth.o", + "ssl/record/methods/libcommon-lib-tls_pad.o", + "ssl/record/methods/libdefault-lib-ssl3_cbc.o", + "ssl/record/methods/libfips-lib-ssl3_cbc.o" ], "products" => { "lib" => [ "libssl", - "providers/libcommon.a" + "providers/libcommon.a", + "providers/libdefault.a", + "providers/libfips.a" + ] + } + }, + "ssl/rio" => { + "deps" => [ + "ssl/rio/libssl-lib-poll_builder.o", + "ssl/rio/libssl-lib-poll_immediate.o", + "ssl/rio/libssl-lib-rio_notifier.o" + ], + "products" => { + "lib" => [ + "libssl" ] } }, @@ -10388,9 +12132,40 @@ our %unified_info = ( "test/helpers/dtlstest-bin-ssltestlib.o", "test/helpers/endecode_test-bin-predefined_dhparams.o", "test/helpers/fatalerrtest-bin-ssltestlib.o", + "test/helpers/json_test-bin-noisydgrambio.o", + "test/helpers/json_test-bin-pktsplitbio.o", + "test/helpers/json_test-bin-quictestlib.o", + "test/helpers/json_test-bin-ssltestlib.o", + "test/helpers/pkcs12_api_test-bin-pkcs12.o", "test/helpers/pkcs12_format_test-bin-pkcs12.o", + "test/helpers/quic_multistream_test-bin-noisydgrambio.o", + "test/helpers/quic_multistream_test-bin-pktsplitbio.o", + "test/helpers/quic_multistream_test-bin-quictestlib.o", + "test/helpers/quic_multistream_test-bin-ssltestlib.o", + "test/helpers/quic_newcid_test-bin-noisydgrambio.o", + "test/helpers/quic_newcid_test-bin-pktsplitbio.o", + "test/helpers/quic_newcid_test-bin-quictestlib.o", + "test/helpers/quic_newcid_test-bin-ssltestlib.o", + "test/helpers/quic_radix_test-bin-noisydgrambio.o", + "test/helpers/quic_radix_test-bin-pktsplitbio.o", + "test/helpers/quic_radix_test-bin-quictestlib.o", + "test/helpers/quic_radix_test-bin-ssltestlib.o", + "test/helpers/quic_srt_gen_test-bin-noisydgrambio.o", + "test/helpers/quic_srt_gen_test-bin-pktsplitbio.o", + "test/helpers/quic_srt_gen_test-bin-quictestlib.o", + "test/helpers/quic_srt_gen_test-bin-ssltestlib.o", + "test/helpers/quicapitest-bin-noisydgrambio.o", + "test/helpers/quicapitest-bin-pktsplitbio.o", + "test/helpers/quicapitest-bin-quictestlib.o", + "test/helpers/quicapitest-bin-ssltestlib.o", + "test/helpers/quicfaultstest-bin-noisydgrambio.o", + "test/helpers/quicfaultstest-bin-pktsplitbio.o", + "test/helpers/quicfaultstest-bin-quictestlib.o", + "test/helpers/quicfaultstest-bin-ssltestlib.o", "test/helpers/recordlentest-bin-ssltestlib.o", + "test/helpers/rpktest-bin-ssltestlib.o", "test/helpers/servername_test-bin-ssltestlib.o", + "test/helpers/ssl_handshake_rtt_test-bin-ssltestlib.o", "test/helpers/ssl_old_test-bin-predefined_dhparams.o", "test/helpers/ssl_test-bin-handshake.o", "test/helpers/ssl_test-bin-handshake_srp.o", @@ -10399,7 +12174,8 @@ our %unified_info = ( "test/helpers/sslapitest-bin-ssltestlib.o", "test/helpers/sslbuffertest-bin-ssltestlib.o", "test/helpers/sslcorrupttest-bin-ssltestlib.o", - "test/helpers/tls13ccstest-bin-ssltestlib.o" + "test/helpers/tls13ccstest-bin-ssltestlib.o", + "test/helpers/tls13groupselection_test-bin-ssltestlib.o" ], "products" => { "bin" => [ @@ -10417,16 +12193,37 @@ our %unified_info = ( "test/dtlstest", "test/endecode_test", "test/fatalerrtest", + "test/json_test", + "test/pkcs12_api_test", "test/pkcs12_format_test", + "test/quic_multistream_test", + "test/quic_newcid_test", + "test/quic_radix_test", + "test/quic_srt_gen_test", + "test/quicapitest", + "test/quicfaultstest", "test/recordlentest", + "test/rpktest", "test/servername_test", + "test/ssl_handshake_rtt_test", "test/ssl_old_test", "test/ssl_test", "test/ssl_test_ctx_test", "test/sslapitest", "test/sslbuffertest", "test/sslcorrupttest", - "test/tls13ccstest" + "test/tls13ccstest", + "test/tls13groupselection_test" + ] + } + }, + "test/radix" => { + "deps" => [ + "test/radix/quic_radix_test-bin-quic_radix.o" + ], + "products" => { + "bin" => [ + "test/quic_radix_test" ] } }, @@ -10438,6 +12235,7 @@ our %unified_info = ( "test/testutil/libtestutil-lib-driver.o", "test/testutil/libtestutil-lib-fake_random.o", "test/testutil/libtestutil-lib-format_output.o", + "test/testutil/libtestutil-lib-helper.o", "test/testutil/libtestutil-lib-load.o", "test/testutil/libtestutil-lib-main.o", "test/testutil/libtestutil-lib-options.o", @@ -10473,6 +12271,12 @@ our %unified_info = ( } }, "generate" => { + "OpenSSLConfig.cmake" => [ + "exporters/cmake/OpenSSLConfig.cmake.in" + ], + "OpenSSLConfigVersion.cmake" => [ + "exporters/cmake/OpenSSLConfigVersion.cmake.in" + ], "apps/progs.c" => [ "apps/progs.pl", "\"-C\"", @@ -10483,6 +12287,19 @@ our %unified_info = ( "\"-H\"", "\$(APPS_OPENSSL)" ], + "builddata.pm" => [ + "util/mkinstallvars.pl", + "PREFIX=.", + "BINDIR=apps", + "APPLINKDIR=ms", + "LIBDIR=", + "INCLUDEDIR=include", + "\"INCLUDEDIR=\$(SRCDIR)/include\"", + "ENGINESDIR=engines", + "MODULESDIR=providers", + "\"VERSION=\$(VERSION)\"", + "\"LDLIBS=\$(LIB_EX_LIBS)\"" + ], "crypto/aes/aes-586.S" => [ "crypto/aes/asm/aes-586.pl" ], @@ -10504,6 +12321,24 @@ our %unified_info = ( "crypto/aes/aes-ppc.s" => [ "crypto/aes/asm/aes-ppc.pl" ], + "crypto/aes/aes-riscv32-zkn.s" => [ + "crypto/aes/asm/aes-riscv32-zkn.pl" + ], + "crypto/aes/aes-riscv64-zkn.s" => [ + "crypto/aes/asm/aes-riscv64-zkn.pl" + ], + "crypto/aes/aes-riscv64-zvbb-zvkg-zvkned.s" => [ + "crypto/aes/asm/aes-riscv64-zvbb-zvkg-zvkned.pl" + ], + "crypto/aes/aes-riscv64-zvkb-zvkned.s" => [ + "crypto/aes/asm/aes-riscv64-zvkb-zvkned.pl" + ], + "crypto/aes/aes-riscv64-zvkned.s" => [ + "crypto/aes/asm/aes-riscv64-zvkned.pl" + ], + "crypto/aes/aes-riscv64.s" => [ + "crypto/aes/asm/aes-riscv64.pl" + ], "crypto/aes/aes-s390x.S" => [ "crypto/aes/asm/aes-s390x.pl" ], @@ -10531,6 +12366,9 @@ our %unified_info = ( "crypto/aes/aesni-x86_64.s" => [ "crypto/aes/asm/aesni-x86_64.pl" ], + "crypto/aes/aesni-xts-avx512.s" => [ + "crypto/aes/asm/aesni-xts-avx512.pl" + ], "crypto/aes/aesp8-ppc.s" => [ "crypto/aes/asm/aesp8-ppc.pl" ], @@ -10543,12 +12381,18 @@ our %unified_info = ( "crypto/aes/bsaes-armv7.S" => [ "crypto/aes/asm/bsaes-armv7.pl" ], + "crypto/aes/bsaes-armv8.S" => [ + "crypto/aes/asm/bsaes-armv8.pl" + ], "crypto/aes/bsaes-x86_64.s" => [ "crypto/aes/asm/bsaes-x86_64.pl" ], "crypto/aes/vpaes-armv8.S" => [ "crypto/aes/asm/vpaes-armv8.pl" ], + "crypto/aes/vpaes-loongarch64.S" => [ + "crypto/aes/asm/vpaes-loongarch64.pl" + ], "crypto/aes/vpaes-ppc.s" => [ "crypto/aes/asm/vpaes-ppc.pl" ], @@ -10609,15 +12453,33 @@ our %unified_info = ( "crypto/bn/ppc-mont.s" => [ "crypto/bn/asm/ppc-mont.pl" ], + "crypto/bn/ppc64-mont-fixed.s" => [ + "crypto/bn/asm/ppc64-mont-fixed.pl" + ], "crypto/bn/ppc64-mont.s" => [ "crypto/bn/asm/ppc64-mont.pl" ], + "crypto/bn/rsaz-2k-avx512.s" => [ + "crypto/bn/asm/rsaz-2k-avx512.pl" + ], + "crypto/bn/rsaz-2k-avxifma.s" => [ + "crypto/bn/asm/rsaz-2k-avxifma.pl" + ], + "crypto/bn/rsaz-3k-avx512.s" => [ + "crypto/bn/asm/rsaz-3k-avx512.pl" + ], + "crypto/bn/rsaz-3k-avxifma.s" => [ + "crypto/bn/asm/rsaz-3k-avxifma.pl" + ], + "crypto/bn/rsaz-4k-avx512.s" => [ + "crypto/bn/asm/rsaz-4k-avx512.pl" + ], + "crypto/bn/rsaz-4k-avxifma.s" => [ + "crypto/bn/asm/rsaz-4k-avxifma.pl" + ], "crypto/bn/rsaz-avx2.s" => [ "crypto/bn/asm/rsaz-avx2.pl" ], - "crypto/bn/rsaz-avx512.s" => [ - "crypto/bn/asm/rsaz-avx512.pl" - ], "crypto/bn/rsaz-x86_64.s" => [ "crypto/bn/asm/rsaz-x86_64.pl" ], @@ -10679,6 +12541,9 @@ our %unified_info = ( "crypto/chacha/chacha-armv4.S" => [ "crypto/chacha/asm/chacha-armv4.pl" ], + "crypto/chacha/chacha-armv8-sve.S" => [ + "crypto/chacha/asm/chacha-armv8-sve.pl" + ], "crypto/chacha/chacha-armv8.S" => [ "crypto/chacha/asm/chacha-armv8.pl" ], @@ -10691,9 +12556,19 @@ our %unified_info = ( "crypto/chacha/chacha-ia64.s" => [ "crypto/chacha/chacha-ia64.S" ], + "crypto/chacha/chacha-loongarch64.S" => [ + "crypto/chacha/asm/chacha-loongarch64.pl" + ], "crypto/chacha/chacha-ppc.s" => [ "crypto/chacha/asm/chacha-ppc.pl" ], + "crypto/chacha/chacha-riscv64-v-zbb-zvkb.s" => [ + "crypto/chacha/asm/chacha-riscv64-v-zbb.pl", + "zvkb" + ], + "crypto/chacha/chacha-riscv64-v-zbb.s" => [ + "crypto/chacha/asm/chacha-riscv64-v-zbb.pl" + ], "crypto/chacha/chacha-s390x.S" => [ "crypto/chacha/asm/chacha-s390x.pl" ], @@ -10703,6 +12578,9 @@ our %unified_info = ( "crypto/chacha/chacha-x86_64.s" => [ "crypto/chacha/asm/chacha-x86_64.pl" ], + "crypto/chacha/chachap10-ppc.s" => [ + "crypto/chacha/asm/chachap10-ppc.pl" + ], "crypto/des/crypt586.S" => [ "crypto/des/asm/crypt586.pl" ], @@ -10715,6 +12593,9 @@ our %unified_info = ( "crypto/des/dest4-sparcv9.S" => [ "crypto/des/asm/dest4-sparcv9.pl" ], + "crypto/ec/ecp_nistp384-ppc64.s" => [ + "crypto/ec/asm/ecp_nistp384-ppc64.pl" + ], "crypto/ec/ecp_nistp521-ppc64.s" => [ "crypto/ec/asm/ecp_nistp521-ppc64.pl" ], @@ -10739,6 +12620,9 @@ our %unified_info = ( "crypto/ec/ecp_nistz256-x86_64.s" => [ "crypto/ec/asm/ecp_nistz256-x86_64.pl" ], + "crypto/ec/ecp_sm2p256-armv8.S" => [ + "crypto/ec/asm/ecp_sm2p256-armv8.pl" + ], "crypto/ec/x25519-ppc64.s" => [ "crypto/ec/asm/x25519-ppc64.pl" ], @@ -10748,18 +12632,39 @@ our %unified_info = ( "crypto/ia64cpuid.s" => [ "crypto/ia64cpuid.S" ], + "crypto/loongarch64cpuid.s" => [ + "crypto/loongarch64cpuid.pl" + ], "crypto/md5/md5-586.S" => [ "crypto/md5/asm/md5-586.pl" ], + "crypto/md5/md5-aarch64.S" => [ + "crypto/md5/asm/md5-aarch64.pl" + ], + "crypto/md5/md5-loongarch64.S" => [ + "crypto/md5/asm/md5-loongarch64.pl" + ], "crypto/md5/md5-sparcv9.S" => [ "crypto/md5/asm/md5-sparcv9.pl" ], "crypto/md5/md5-x86_64.s" => [ "crypto/md5/asm/md5-x86_64.pl" ], + "crypto/modes/aes-gcm-armv8-unroll8_64.S" => [ + "crypto/modes/asm/aes-gcm-armv8-unroll8_64.pl" + ], "crypto/modes/aes-gcm-armv8_64.S" => [ "crypto/modes/asm/aes-gcm-armv8_64.pl" ], + "crypto/modes/aes-gcm-avx512.s" => [ + "crypto/modes/asm/aes-gcm-avx512.pl" + ], + "crypto/modes/aes-gcm-ppc.s" => [ + "crypto/modes/asm/aes-gcm-ppc.pl" + ], + "crypto/modes/aes-gcm-riscv64-zvkb-zvkg-zvkned.s" => [ + "crypto/modes/asm/aes-gcm-riscv64-zvkb-zvkg-zvkned.pl" + ], "crypto/modes/aesni-gcm-x86_64.s" => [ "crypto/modes/asm/aesni-gcm-x86_64.pl" ], @@ -10778,6 +12683,15 @@ our %unified_info = ( "crypto/modes/ghash-parisc.s" => [ "crypto/modes/asm/ghash-parisc.pl" ], + "crypto/modes/ghash-riscv64-zvkb-zvbc.s" => [ + "crypto/modes/asm/ghash-riscv64-zvkb-zvbc.pl" + ], + "crypto/modes/ghash-riscv64-zvkg.s" => [ + "crypto/modes/asm/ghash-riscv64-zvkg.pl" + ], + "crypto/modes/ghash-riscv64.s" => [ + "crypto/modes/asm/ghash-riscv64.pl" + ], "crypto/modes/ghash-s390x.S" => [ "crypto/modes/asm/ghash-s390x.pl" ], @@ -10796,6 +12710,9 @@ our %unified_info = ( "crypto/modes/ghashv8-armx.S" => [ "crypto/modes/asm/ghashv8-armx.pl" ], + "crypto/params_idx.c" => [ + "crypto/params_idx.c.in" + ], "crypto/pariscid.s" => [ "crypto/pariscid.pl" ], @@ -10856,6 +12773,12 @@ our %unified_info = ( "crypto/ripemd/rmd-586.S" => [ "crypto/ripemd/asm/rmd-586.pl" ], + "crypto/riscv32cpuid.s" => [ + "crypto/riscv32cpuid.pl" + ], + "crypto/riscv64cpuid.s" => [ + "crypto/riscv64cpuid.pl" + ], "crypto/s390xcpuid.S" => [ "crypto/s390xcpuid.pl" ], @@ -10964,6 +12887,9 @@ our %unified_info = ( "crypto/sha/sha256-ppc.s" => [ "crypto/sha/asm/sha512-ppc.pl" ], + "crypto/sha/sha256-riscv64-zvkb-zvknha_or_zvknhb.S" => [ + "crypto/sha/asm/sha256-riscv64-zvkb-zvknha_or_zvknhb.pl" + ], "crypto/sha/sha256-s390x.S" => [ "crypto/sha/asm/sha512-s390x.pl" ], @@ -11000,6 +12926,9 @@ our %unified_info = ( "crypto/sha/sha512-ppc.s" => [ "crypto/sha/asm/sha512-ppc.pl" ], + "crypto/sha/sha512-riscv64-zvkb-zvknhb.S" => [ + "crypto/sha/asm/sha512-riscv64-zvkb-zvknhb.pl" + ], "crypto/sha/sha512-s390x.S" => [ "crypto/sha/asm/sha512-s390x.pl" ], @@ -11012,6 +12941,24 @@ our %unified_info = ( "crypto/sha/sha512p8-ppc.s" => [ "crypto/sha/asm/sha512p8-ppc.pl" ], + "crypto/sm3/sm3-armv8.S" => [ + "crypto/sm3/asm/sm3-armv8.pl" + ], + "crypto/sm3/sm3-riscv64-zvksh.S" => [ + "crypto/sm3/asm/sm3-riscv64-zvksh.pl" + ], + "crypto/sm4/sm4-armv8.S" => [ + "crypto/sm4/asm/sm4-armv8.pl" + ], + "crypto/sm4/sm4-riscv64-zvksed.s" => [ + "crypto/sm4/asm/sm4-riscv64-zvksed.pl" + ], + "crypto/sm4/vpsm4-armv8.S" => [ + "crypto/sm4/asm/vpsm4-armv8.pl" + ], + "crypto/sm4/vpsm4_ex-armv8.S" => [ + "crypto/sm4/asm/vpsm4_ex-armv8.pl" + ], "crypto/uplink-ia64.s" => [ "ms/uplink-ia64.pl" ], @@ -11177,6 +13124,9 @@ our %unified_info = ( "doc/html/man1/openssl-sess_id.html" => [ "doc/man1/openssl-sess_id.pod" ], + "doc/html/man1/openssl-skeyutl.html" => [ + "doc/man1/openssl-skeyutl.pod" + ], "doc/html/man1/openssl-smime.html" => [ "doc/man1/openssl-smime.pod" ], @@ -11318,6 +13268,9 @@ our %unified_info = ( "doc/html/man3/BIO_get_ex_new_index.html" => [ "doc/man3/BIO_get_ex_new_index.pod" ], + "doc/html/man3/BIO_get_rpoll_descriptor.html" => [ + "doc/man3/BIO_get_rpoll_descriptor.pod" + ], "doc/html/man3/BIO_meth_new.html" => [ "doc/man3/BIO_meth_new.pod" ], @@ -11354,6 +13307,9 @@ our %unified_info = ( "doc/html/man3/BIO_s_datagram.html" => [ "doc/man3/BIO_s_datagram.pod" ], + "doc/html/man3/BIO_s_dgram_pair.html" => [ + "doc/man3/BIO_s_dgram_pair.pod" + ], "doc/html/man3/BIO_s_fd.html" => [ "doc/man3/BIO_s_fd.pod" ], @@ -11369,6 +13325,9 @@ our %unified_info = ( "doc/html/man3/BIO_s_socket.html" => [ "doc/man3/BIO_s_socket.pod" ], + "doc/html/man3/BIO_sendmmsg.html" => [ + "doc/man3/BIO_sendmmsg.pod" + ], "doc/html/man3/BIO_set_callback.html" => [ "doc/man3/BIO_set_callback.pod" ], @@ -11441,6 +13400,9 @@ our %unified_info = ( "doc/html/man3/BUF_MEM_new.html" => [ "doc/man3/BUF_MEM_new.pod" ], + "doc/html/man3/CMAC_CTX.html" => [ + "doc/man3/CMAC_CTX.pod" + ], "doc/html/man3/CMS_EncryptedData_decrypt.html" => [ "doc/man3/CMS_EncryptedData_decrypt.pod" ], @@ -11507,6 +13469,9 @@ our %unified_info = ( "doc/html/man3/CMS_verify_receipt.html" => [ "doc/man3/CMS_verify_receipt.pod" ], + "doc/html/man3/COMP_CTX_new.html" => [ + "doc/man3/COMP_CTX_new.pod" + ], "doc/html/man3/CONF_modules_free.html" => [ "doc/man3/CONF_modules_free.pod" ], @@ -11606,6 +13571,12 @@ our %unified_info = ( "doc/html/man3/DTLS_set_timer_cb.html" => [ "doc/man3/DTLS_set_timer_cb.pod" ], + "doc/html/man3/DTLSv1_get_timeout.html" => [ + "doc/man3/DTLSv1_get_timeout.pod" + ], + "doc/html/man3/DTLSv1_handle_timeout.html" => [ + "doc/man3/DTLSv1_handle_timeout.pod" + ], "doc/html/man3/DTLSv1_listen.html" => [ "doc/man3/DTLSv1_listen.pod" ], @@ -11744,6 +13715,9 @@ our %unified_info = ( "doc/html/man3/EVP_PKEY_CTX_get0_pkey.html" => [ "doc/man3/EVP_PKEY_CTX_get0_pkey.pod" ], + "doc/html/man3/EVP_PKEY_CTX_get_algor.html" => [ + "doc/man3/EVP_PKEY_CTX_get_algor.pod" + ], "doc/html/man3/EVP_PKEY_CTX_new.html" => [ "doc/man3/EVP_PKEY_CTX_new.pod" ], @@ -11861,6 +13835,12 @@ our %unified_info = ( "doc/html/man3/EVP_SIGNATURE.html" => [ "doc/man3/EVP_SIGNATURE.pod" ], + "doc/html/man3/EVP_SKEY.html" => [ + "doc/man3/EVP_SKEY.pod" + ], + "doc/html/man3/EVP_SKEYMGMT.html" => [ + "doc/man3/EVP_SKEYMGMT.pod" + ], "doc/html/man3/EVP_SealInit.html" => [ "doc/man3/EVP_SealInit.pod" ], @@ -11948,6 +13928,9 @@ our %unified_info = ( "doc/html/man3/EVP_whirlpool.html" => [ "doc/man3/EVP_whirlpool.pod" ], + "doc/html/man3/GENERAL_NAME.html" => [ + "doc/man3/GENERAL_NAME.pod" + ], "doc/html/man3/HMAC.html" => [ "doc/man3/HMAC.pod" ], @@ -12020,9 +14003,15 @@ our %unified_info = ( "doc/html/man3/OPENSSL_load_builtin_modules.html" => [ "doc/man3/OPENSSL_load_builtin_modules.pod" ], + "doc/html/man3/OPENSSL_load_u16_le.html" => [ + "doc/man3/OPENSSL_load_u16_le.pod" + ], "doc/html/man3/OPENSSL_malloc.html" => [ "doc/man3/OPENSSL_malloc.pod" ], + "doc/html/man3/OPENSSL_riscvcap.html" => [ + "doc/man3/OPENSSL_riscvcap.pod" + ], "doc/html/man3/OPENSSL_s390xcap.html" => [ "doc/man3/OPENSSL_s390xcap.pod" ], @@ -12038,12 +14027,18 @@ our %unified_info = ( "doc/html/man3/OSSL_CALLBACK.html" => [ "doc/man3/OSSL_CALLBACK.pod" ], + "doc/html/man3/OSSL_CMP_ATAV_set0.html" => [ + "doc/man3/OSSL_CMP_ATAV_set0.pod" + ], "doc/html/man3/OSSL_CMP_CTX_new.html" => [ "doc/man3/OSSL_CMP_CTX_new.pod" ], "doc/html/man3/OSSL_CMP_HDR_get0_transactionID.html" => [ "doc/man3/OSSL_CMP_HDR_get0_transactionID.pod" ], + "doc/html/man3/OSSL_CMP_ITAV_new_caCerts.html" => [ + "doc/man3/OSSL_CMP_ITAV_new_caCerts.pod" + ], "doc/html/man3/OSSL_CMP_ITAV_set0.html" => [ "doc/man3/OSSL_CMP_ITAV_set0.pod" ], @@ -12113,9 +14108,18 @@ our %unified_info = ( "doc/html/man3/OSSL_ENCODER_to_bio.html" => [ "doc/man3/OSSL_ENCODER_to_bio.pod" ], + "doc/html/man3/OSSL_ERR_STATE_save.html" => [ + "doc/man3/OSSL_ERR_STATE_save.pod" + ], "doc/html/man3/OSSL_ESS_check_signing_certs.html" => [ "doc/man3/OSSL_ESS_check_signing_certs.pod" ], + "doc/html/man3/OSSL_GENERAL_NAMES_print.html" => [ + "doc/man3/OSSL_GENERAL_NAMES_print.pod" + ], + "doc/html/man3/OSSL_HPKE_CTX_new.html" => [ + "doc/man3/OSSL_HPKE_CTX_new.pod" + ], "doc/html/man3/OSSL_HTTP_REQ_CTX.html" => [ "doc/man3/OSSL_HTTP_REQ_CTX.pod" ], @@ -12125,12 +14129,24 @@ our %unified_info = ( "doc/html/man3/OSSL_HTTP_transfer.html" => [ "doc/man3/OSSL_HTTP_transfer.pod" ], + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX.html" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX.pod" + ], + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX_print.html" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX_print.pod" + ], + "doc/html/man3/OSSL_INDICATOR_set_callback.html" => [ + "doc/man3/OSSL_INDICATOR_set_callback.pod" + ], "doc/html/man3/OSSL_ITEM.html" => [ "doc/man3/OSSL_ITEM.pod" ], "doc/html/man3/OSSL_LIB_CTX.html" => [ "doc/man3/OSSL_LIB_CTX.pod" ], + "doc/html/man3/OSSL_LIB_CTX_set_conf_diagnostics.html" => [ + "doc/man3/OSSL_LIB_CTX_set_conf_diagnostics.pod" + ], "doc/html/man3/OSSL_PARAM.html" => [ "doc/man3/OSSL_PARAM.pod" ], @@ -12146,9 +14162,15 @@ our %unified_info = ( "doc/html/man3/OSSL_PARAM_int.html" => [ "doc/man3/OSSL_PARAM_int.pod" ], + "doc/html/man3/OSSL_PARAM_print_to_bio.html" => [ + "doc/man3/OSSL_PARAM_print_to_bio.pod" + ], "doc/html/man3/OSSL_PROVIDER.html" => [ "doc/man3/OSSL_PROVIDER.pod" ], + "doc/html/man3/OSSL_QUIC_client_method.html" => [ + "doc/man3/OSSL_QUIC_client_method.pod" + ], "doc/html/man3/OSSL_SELF_TEST_new.html" => [ "doc/man3/OSSL_SELF_TEST_new.pod" ], @@ -12173,6 +14195,9 @@ our %unified_info = ( "doc/html/man3/OSSL_STORE_open.html" => [ "doc/man3/OSSL_STORE_open.pod" ], + "doc/html/man3/OSSL_sleep.html" => [ + "doc/man3/OSSL_sleep.pod" + ], "doc/html/man3/OSSL_trace_enabled.html" => [ "doc/man3/OSSL_trace_enabled.pod" ], @@ -12188,6 +14213,9 @@ our %unified_info = ( "doc/html/man3/OpenSSL_version.html" => [ "doc/man3/OpenSSL_version.pod" ], + "doc/html/man3/PBMAC1_get1_pbkdf2_param.html" => [ + "doc/man3/PBMAC1_get1_pbkdf2_param.pod" + ], "doc/html/man3/PEM_X509_INFO_read_bio_ex.html" => [ "doc/man3/PEM_X509_INFO_read_bio_ex.pod" ], @@ -12224,6 +14252,9 @@ our %unified_info = ( "doc/html/man3/PKCS12_SAFEBAG_get1_cert.html" => [ "doc/man3/PKCS12_SAFEBAG_get1_cert.pod" ], + "doc/html/man3/PKCS12_SAFEBAG_set0_attrs.html" => [ + "doc/man3/PKCS12_SAFEBAG_set0_attrs.pod" + ], "doc/html/man3/PKCS12_add1_attr_by_NID.html" => [ "doc/man3/PKCS12_add1_attr_by_NID.pod" ], @@ -12497,6 +14528,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set0_CA_list.html" => [ "doc/man3/SSL_CTX_set0_CA_list.pod" ], + "doc/html/man3/SSL_CTX_set1_cert_comp_preference.html" => [ + "doc/man3/SSL_CTX_set1_cert_comp_preference.pod" + ], "doc/html/man3/SSL_CTX_set1_curves.html" => [ "doc/man3/SSL_CTX_set1_curves.pod" ], @@ -12536,6 +14570,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_default_passwd_cb.html" => [ "doc/man3/SSL_CTX_set_default_passwd_cb.pod" ], + "doc/html/man3/SSL_CTX_set_domain_flags.html" => [ + "doc/man3/SSL_CTX_set_domain_flags.pod" + ], "doc/html/man3/SSL_CTX_set_generate_session_id.html" => [ "doc/man3/SSL_CTX_set_generate_session_id.pod" ], @@ -12557,6 +14594,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_msg_callback.html" => [ "doc/man3/SSL_CTX_set_msg_callback.pod" ], + "doc/html/man3/SSL_CTX_set_new_pending_conn_cb.html" => [ + "doc/man3/SSL_CTX_set_new_pending_conn_cb.pod" + ], "doc/html/man3/SSL_CTX_set_num_tickets.html" => [ "doc/man3/SSL_CTX_set_num_tickets.pod" ], @@ -12671,6 +14711,9 @@ our %unified_info = ( "doc/html/man3/SSL_accept.html" => [ "doc/man3/SSL_accept.pod" ], + "doc/html/man3/SSL_accept_stream.html" => [ + "doc/man3/SSL_accept_stream.pod" + ], "doc/html/man3/SSL_alert_type_string.html" => [ "doc/man3/SSL_alert_type_string.pod" ], @@ -12698,9 +14741,21 @@ our %unified_info = ( "doc/html/man3/SSL_free.html" => [ "doc/man3/SSL_free.pod" ], + "doc/html/man3/SSL_get0_connection.html" => [ + "doc/man3/SSL_get0_connection.pod" + ], + "doc/html/man3/SSL_get0_group_name.html" => [ + "doc/man3/SSL_get0_group_name.pod" + ], + "doc/html/man3/SSL_get0_peer_rpk.html" => [ + "doc/man3/SSL_get0_peer_rpk.pod" + ], "doc/html/man3/SSL_get0_peer_scts.html" => [ "doc/man3/SSL_get0_peer_scts.pod" ], + "doc/html/man3/SSL_get1_builtin_sigalgs.html" => [ + "doc/man3/SSL_get1_builtin_sigalgs.pod" + ], "doc/html/man3/SSL_get_SSL_CTX.html" => [ "doc/man3/SSL_get_SSL_CTX.pod" ], @@ -12716,6 +14771,9 @@ our %unified_info = ( "doc/html/man3/SSL_get_client_random.html" => [ "doc/man3/SSL_get_client_random.pod" ], + "doc/html/man3/SSL_get_conn_close_info.html" => [ + "doc/man3/SSL_get_conn_close_info.pod" + ], "doc/html/man3/SSL_get_current_cipher.html" => [ "doc/man3/SSL_get_current_cipher.pod" ], @@ -12725,12 +14783,18 @@ our %unified_info = ( "doc/html/man3/SSL_get_error.html" => [ "doc/man3/SSL_get_error.pod" ], + "doc/html/man3/SSL_get_event_timeout.html" => [ + "doc/man3/SSL_get_event_timeout.pod" + ], "doc/html/man3/SSL_get_extms_support.html" => [ "doc/man3/SSL_get_extms_support.pod" ], "doc/html/man3/SSL_get_fd.html" => [ "doc/man3/SSL_get_fd.pod" ], + "doc/html/man3/SSL_get_handshake_rtt.html" => [ + "doc/man3/SSL_get_handshake_rtt.pod" + ], "doc/html/man3/SSL_get_peer_cert_chain.html" => [ "doc/man3/SSL_get_peer_cert_chain.pod" ], @@ -12749,12 +14813,24 @@ our %unified_info = ( "doc/html/man3/SSL_get_rbio.html" => [ "doc/man3/SSL_get_rbio.pod" ], + "doc/html/man3/SSL_get_rpoll_descriptor.html" => [ + "doc/man3/SSL_get_rpoll_descriptor.pod" + ], "doc/html/man3/SSL_get_session.html" => [ "doc/man3/SSL_get_session.pod" ], "doc/html/man3/SSL_get_shared_sigalgs.html" => [ "doc/man3/SSL_get_shared_sigalgs.pod" ], + "doc/html/man3/SSL_get_stream_id.html" => [ + "doc/man3/SSL_get_stream_id.pod" + ], + "doc/html/man3/SSL_get_stream_read_state.html" => [ + "doc/man3/SSL_get_stream_read_state.pod" + ], + "doc/html/man3/SSL_get_value_uint.html" => [ + "doc/man3/SSL_get_value_uint.pod" + ], "doc/html/man3/SSL_get_verify_result.html" => [ "doc/man3/SSL_get_verify_result.pod" ], @@ -12764,9 +14840,15 @@ our %unified_info = ( "doc/html/man3/SSL_group_to_name.html" => [ "doc/man3/SSL_group_to_name.pod" ], + "doc/html/man3/SSL_handle_events.html" => [ + "doc/man3/SSL_handle_events.pod" + ], "doc/html/man3/SSL_in_init.html" => [ "doc/man3/SSL_in_init.pod" ], + "doc/html/man3/SSL_inject_net_dgram.html" => [ + "doc/man3/SSL_inject_net_dgram.pod" + ], "doc/html/man3/SSL_key_update.html" => [ "doc/man3/SSL_key_update.pod" ], @@ -12779,9 +14861,21 @@ our %unified_info = ( "doc/html/man3/SSL_new.html" => [ "doc/man3/SSL_new.pod" ], + "doc/html/man3/SSL_new_domain.html" => [ + "doc/man3/SSL_new_domain.pod" + ], + "doc/html/man3/SSL_new_listener.html" => [ + "doc/man3/SSL_new_listener.pod" + ], + "doc/html/man3/SSL_new_stream.html" => [ + "doc/man3/SSL_new_stream.pod" + ], "doc/html/man3/SSL_pending.html" => [ "doc/man3/SSL_pending.pod" ], + "doc/html/man3/SSL_poll.html" => [ + "doc/man3/SSL_poll.pod" + ], "doc/html/man3/SSL_read.html" => [ "doc/man3/SSL_read.pod" ], @@ -12797,24 +14891,45 @@ our %unified_info = ( "doc/html/man3/SSL_set1_host.html" => [ "doc/man3/SSL_set1_host.pod" ], + "doc/html/man3/SSL_set1_initial_peer_addr.html" => [ + "doc/man3/SSL_set1_initial_peer_addr.pod" + ], + "doc/html/man3/SSL_set1_server_cert_type.html" => [ + "doc/man3/SSL_set1_server_cert_type.pod" + ], "doc/html/man3/SSL_set_async_callback.html" => [ "doc/man3/SSL_set_async_callback.pod" ], "doc/html/man3/SSL_set_bio.html" => [ "doc/man3/SSL_set_bio.pod" ], + "doc/html/man3/SSL_set_blocking_mode.html" => [ + "doc/man3/SSL_set_blocking_mode.pod" + ], "doc/html/man3/SSL_set_connect_state.html" => [ "doc/man3/SSL_set_connect_state.pod" ], + "doc/html/man3/SSL_set_default_stream_mode.html" => [ + "doc/man3/SSL_set_default_stream_mode.pod" + ], "doc/html/man3/SSL_set_fd.html" => [ "doc/man3/SSL_set_fd.pod" ], + "doc/html/man3/SSL_set_incoming_stream_policy.html" => [ + "doc/man3/SSL_set_incoming_stream_policy.pod" + ], + "doc/html/man3/SSL_set_quic_tls_cbs.html" => [ + "doc/man3/SSL_set_quic_tls_cbs.pod" + ], "doc/html/man3/SSL_set_retry_verify.html" => [ "doc/man3/SSL_set_retry_verify.pod" ], "doc/html/man3/SSL_set_session.html" => [ "doc/man3/SSL_set_session.pod" ], + "doc/html/man3/SSL_set_session_secret_cb.html" => [ + "doc/man3/SSL_set_session_secret_cb.pod" + ], "doc/html/man3/SSL_set_shutdown.html" => [ "doc/man3/SSL_set_shutdown.pod" ], @@ -12827,6 +14942,12 @@ our %unified_info = ( "doc/html/man3/SSL_state_string.html" => [ "doc/man3/SSL_state_string.pod" ], + "doc/html/man3/SSL_stream_conclude.html" => [ + "doc/man3/SSL_stream_conclude.pod" + ], + "doc/html/man3/SSL_stream_reset.html" => [ + "doc/man3/SSL_stream_reset.pod" + ], "doc/html/man3/SSL_want.html" => [ "doc/man3/SSL_want.pod" ], @@ -12836,8 +14957,8 @@ our %unified_info = ( "doc/html/man3/TS_RESP_CTX_new.html" => [ "doc/man3/TS_RESP_CTX_new.pod" ], - "doc/html/man3/TS_VERIFY_CTX_set_certs.html" => [ - "doc/man3/TS_VERIFY_CTX_set_certs.pod" + "doc/html/man3/TS_VERIFY_CTX.html" => [ + "doc/man3/TS_VERIFY_CTX.pod" ], "doc/html/man3/UI_STRING.html" => [ "doc/man3/UI_STRING.pod" @@ -12857,6 +14978,21 @@ our %unified_info = ( "doc/html/man3/X509V3_set_ctx.html" => [ "doc/man3/X509V3_set_ctx.pod" ], + "doc/html/man3/X509_ACERT_add1_attr.html" => [ + "doc/man3/X509_ACERT_add1_attr.pod" + ], + "doc/html/man3/X509_ACERT_add_attr_nconf.html" => [ + "doc/man3/X509_ACERT_add_attr_nconf.pod" + ], + "doc/html/man3/X509_ACERT_get0_holder_baseCertId.html" => [ + "doc/man3/X509_ACERT_get0_holder_baseCertId.pod" + ], + "doc/html/man3/X509_ACERT_get_attr.html" => [ + "doc/man3/X509_ACERT_get_attr.pod" + ], + "doc/html/man3/X509_ACERT_print_ex.html" => [ + "doc/man3/X509_ACERT_print_ex.pod" + ], "doc/html/man3/X509_ALGOR_dup.html" => [ "doc/man3/X509_ALGOR_dup.pod" ], @@ -12905,6 +15041,9 @@ our %unified_info = ( "doc/html/man3/X509_SIG_get0.html" => [ "doc/man3/X509_SIG_get0.pod" ], + "doc/html/man3/X509_STORE_CTX_get_by_subject.html" => [ + "doc/man3/X509_STORE_CTX_get_by_subject.pod" + ], "doc/html/man3/X509_STORE_CTX_get_error.html" => [ "doc/man3/X509_STORE_CTX_get_error.pod" ], @@ -12971,6 +15110,9 @@ our %unified_info = ( "doc/html/man3/X509_get0_uids.html" => [ "doc/man3/X509_get0_uids.pod" ], + "doc/html/man3/X509_get_default_cert_file.html" => [ + "doc/man3/X509_get_default_cert_file.pod" + ], "doc/html/man3/X509_get_extension_flags.html" => [ "doc/man3/X509_get_extension_flags.pod" ], @@ -13094,9 +15236,15 @@ our %unified_info = ( "doc/html/man7/EVP_CIPHER-SM4.html" => [ "doc/man7/EVP_CIPHER-SM4.pod" ], + "doc/html/man7/EVP_KDF-ARGON2.html" => [ + "doc/man7/EVP_KDF-ARGON2.pod" + ], "doc/html/man7/EVP_KDF-HKDF.html" => [ "doc/man7/EVP_KDF-HKDF.pod" ], + "doc/html/man7/EVP_KDF-HMAC-DRBG.html" => [ + "doc/man7/EVP_KDF-HMAC-DRBG.pod" + ], "doc/html/man7/EVP_KDF-KB.html" => [ "doc/man7/EVP_KDF-KB.pod" ], @@ -13112,6 +15260,9 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-PKCS12KDF.html" => [ "doc/man7/EVP_KDF-PKCS12KDF.pod" ], + "doc/html/man7/EVP_KDF-PVKKDF.html" => [ + "doc/man7/EVP_KDF-PVKKDF.pod" + ], "doc/html/man7/EVP_KDF-SCRYPT.html" => [ "doc/man7/EVP_KDF-SCRYPT.pod" ], @@ -13136,9 +15287,18 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-X963.html" => [ "doc/man7/EVP_KDF-X963.pod" ], + "doc/html/man7/EVP_KEM-EC.html" => [ + "doc/man7/EVP_KEM-EC.pod" + ], + "doc/html/man7/EVP_KEM-ML-KEM.html" => [ + "doc/man7/EVP_KEM-ML-KEM.pod" + ], "doc/html/man7/EVP_KEM-RSA.html" => [ "doc/man7/EVP_KEM-RSA.pod" ], + "doc/html/man7/EVP_KEM-X25519.html" => [ + "doc/man7/EVP_KEM-X25519.pod" + ], "doc/html/man7/EVP_KEYEXCH-DH.html" => [ "doc/man7/EVP_KEYEXCH-DH.pod" ], @@ -13172,6 +15332,9 @@ our %unified_info = ( "doc/html/man7/EVP_MD-BLAKE2.html" => [ "doc/man7/EVP_MD-BLAKE2.pod" ], + "doc/html/man7/EVP_MD-KECCAK.html" => [ + "doc/man7/EVP_MD-KECCAK.pod" + ], "doc/html/man7/EVP_MD-MD2.html" => [ "doc/man7/EVP_MD-MD2.pod" ], @@ -13229,15 +15392,27 @@ our %unified_info = ( "doc/html/man7/EVP_PKEY-HMAC.html" => [ "doc/man7/EVP_PKEY-HMAC.pod" ], + "doc/html/man7/EVP_PKEY-ML-DSA.html" => [ + "doc/man7/EVP_PKEY-ML-DSA.pod" + ], + "doc/html/man7/EVP_PKEY-ML-KEM.html" => [ + "doc/man7/EVP_PKEY-ML-KEM.pod" + ], "doc/html/man7/EVP_PKEY-RSA.html" => [ "doc/man7/EVP_PKEY-RSA.pod" ], + "doc/html/man7/EVP_PKEY-SLH-DSA.html" => [ + "doc/man7/EVP_PKEY-SLH-DSA.pod" + ], "doc/html/man7/EVP_PKEY-SM2.html" => [ "doc/man7/EVP_PKEY-SM2.pod" ], "doc/html/man7/EVP_PKEY-X25519.html" => [ "doc/man7/EVP_PKEY-X25519.pod" ], + "doc/html/man7/EVP_RAND-CRNG-TEST.html" => [ + "doc/man7/EVP_RAND-CRNG-TEST.pod" + ], "doc/html/man7/EVP_RAND-CTR-DRBG.html" => [ "doc/man7/EVP_RAND-CTR-DRBG.pod" ], @@ -13247,6 +15422,9 @@ our %unified_info = ( "doc/html/man7/EVP_RAND-HMAC-DRBG.html" => [ "doc/man7/EVP_RAND-HMAC-DRBG.pod" ], + "doc/html/man7/EVP_RAND-JITTER.html" => [ + "doc/man7/EVP_RAND-JITTER.pod" + ], "doc/html/man7/EVP_RAND-SEED-SRC.html" => [ "doc/man7/EVP_RAND-SEED-SRC.pod" ], @@ -13268,9 +15446,15 @@ our %unified_info = ( "doc/html/man7/EVP_SIGNATURE-HMAC.html" => [ "doc/man7/EVP_SIGNATURE-HMAC.pod" ], + "doc/html/man7/EVP_SIGNATURE-ML-DSA.html" => [ + "doc/man7/EVP_SIGNATURE-ML-DSA.pod" + ], "doc/html/man7/EVP_SIGNATURE-RSA.html" => [ "doc/man7/EVP_SIGNATURE-RSA.pod" ], + "doc/html/man7/EVP_SIGNATURE-SLH-DSA.html" => [ + "doc/man7/EVP_SIGNATURE-SLH-DSA.pod" + ], "doc/html/man7/OSSL_PROVIDER-FIPS.html" => [ "doc/man7/OSSL_PROVIDER-FIPS.pod" ], @@ -13286,6 +15470,9 @@ our %unified_info = ( "doc/html/man7/OSSL_PROVIDER-null.html" => [ "doc/man7/OSSL_PROVIDER-null.pod" ], + "doc/html/man7/OSSL_STORE-winstore.html" => [ + "doc/man7/OSSL_STORE-winstore.pod" + ], "doc/html/man7/RAND.html" => [ "doc/man7/RAND.pod" ], @@ -13298,9 +15485,6 @@ our %unified_info = ( "doc/html/man7/bio.html" => [ "doc/man7/bio.pod" ], - "doc/html/man7/crypto.html" => [ - "doc/man7/crypto.pod" - ], "doc/html/man7/ct.html" => [ "doc/man7/ct.pod" ], @@ -13331,9 +15515,6 @@ our %unified_info = ( "doc/html/man7/life_cycle-rand.html" => [ "doc/man7/life_cycle-rand.pod" ], - "doc/html/man7/migration_guide.html" => [ - "doc/man7/migration_guide.pod" - ], "doc/html/man7/openssl-core.h.html" => [ "doc/man7/openssl-core.h.pod" ], @@ -13349,12 +15530,66 @@ our %unified_info = ( "doc/html/man7/openssl-glossary.html" => [ "doc/man7/openssl-glossary.pod" ], + "doc/html/man7/openssl-qlog.html" => [ + "doc/man7/openssl-qlog.pod" + ], + "doc/html/man7/openssl-quic-concurrency.html" => [ + "doc/man7/openssl-quic-concurrency.pod" + ], + "doc/html/man7/openssl-quic.html" => [ + "doc/man7/openssl-quic.pod" + ], "doc/html/man7/openssl-threads.html" => [ "doc/man7/openssl-threads.pod" ], "doc/html/man7/openssl_user_macros.html" => [ "doc/man7/openssl_user_macros.pod" ], + "doc/html/man7/ossl-guide-introduction.html" => [ + "doc/man7/ossl-guide-introduction.pod" + ], + "doc/html/man7/ossl-guide-libcrypto-introduction.html" => [ + "doc/man7/ossl-guide-libcrypto-introduction.pod" + ], + "doc/html/man7/ossl-guide-libraries-introduction.html" => [ + "doc/man7/ossl-guide-libraries-introduction.pod" + ], + "doc/html/man7/ossl-guide-libssl-introduction.html" => [ + "doc/man7/ossl-guide-libssl-introduction.pod" + ], + "doc/html/man7/ossl-guide-migration.html" => [ + "doc/man7/ossl-guide-migration.pod" + ], + "doc/html/man7/ossl-guide-quic-client-block.html" => [ + "doc/man7/ossl-guide-quic-client-block.pod" + ], + "doc/html/man7/ossl-guide-quic-client-non-block.html" => [ + "doc/man7/ossl-guide-quic-client-non-block.pod" + ], + "doc/html/man7/ossl-guide-quic-introduction.html" => [ + "doc/man7/ossl-guide-quic-introduction.pod" + ], + "doc/html/man7/ossl-guide-quic-multi-stream.html" => [ + "doc/man7/ossl-guide-quic-multi-stream.pod" + ], + "doc/html/man7/ossl-guide-quic-server-block.html" => [ + "doc/man7/ossl-guide-quic-server-block.pod" + ], + "doc/html/man7/ossl-guide-quic-server-non-block.html" => [ + "doc/man7/ossl-guide-quic-server-non-block.pod" + ], + "doc/html/man7/ossl-guide-tls-client-block.html" => [ + "doc/man7/ossl-guide-tls-client-block.pod" + ], + "doc/html/man7/ossl-guide-tls-client-non-block.html" => [ + "doc/man7/ossl-guide-tls-client-non-block.pod" + ], + "doc/html/man7/ossl-guide-tls-introduction.html" => [ + "doc/man7/ossl-guide-tls-introduction.pod" + ], + "doc/html/man7/ossl-guide-tls-server-block.html" => [ + "doc/man7/ossl-guide-tls-server-block.pod" + ], "doc/html/man7/ossl_store-file.html" => [ "doc/man7/ossl_store-file.pod" ], @@ -13409,6 +15644,9 @@ our %unified_info = ( "doc/html/man7/provider-signature.html" => [ "doc/man7/provider-signature.pod" ], + "doc/html/man7/provider-skeymgmt.html" => [ + "doc/man7/provider-skeymgmt.pod" + ], "doc/html/man7/provider-storemgmt.html" => [ "doc/man7/provider-storemgmt.pod" ], @@ -13418,9 +15656,6 @@ our %unified_info = ( "doc/html/man7/proxy-certificates.html" => [ "doc/man7/proxy-certificates.pod" ], - "doc/html/man7/ssl.html" => [ - "doc/man7/ssl.pod" - ], "doc/html/man7/x509.html" => [ "doc/man7/x509.pod" ], @@ -13568,6 +15803,9 @@ our %unified_info = ( "doc/man/man1/openssl-sess_id.1" => [ "doc/man1/openssl-sess_id.pod" ], + "doc/man/man1/openssl-skeyutl.1" => [ + "doc/man1/openssl-skeyutl.pod" + ], "doc/man/man1/openssl-smime.1" => [ "doc/man1/openssl-smime.pod" ], @@ -13709,6 +15947,9 @@ our %unified_info = ( "doc/man/man3/BIO_get_ex_new_index.3" => [ "doc/man3/BIO_get_ex_new_index.pod" ], + "doc/man/man3/BIO_get_rpoll_descriptor.3" => [ + "doc/man3/BIO_get_rpoll_descriptor.pod" + ], "doc/man/man3/BIO_meth_new.3" => [ "doc/man3/BIO_meth_new.pod" ], @@ -13745,6 +15986,9 @@ our %unified_info = ( "doc/man/man3/BIO_s_datagram.3" => [ "doc/man3/BIO_s_datagram.pod" ], + "doc/man/man3/BIO_s_dgram_pair.3" => [ + "doc/man3/BIO_s_dgram_pair.pod" + ], "doc/man/man3/BIO_s_fd.3" => [ "doc/man3/BIO_s_fd.pod" ], @@ -13760,6 +16004,9 @@ our %unified_info = ( "doc/man/man3/BIO_s_socket.3" => [ "doc/man3/BIO_s_socket.pod" ], + "doc/man/man3/BIO_sendmmsg.3" => [ + "doc/man3/BIO_sendmmsg.pod" + ], "doc/man/man3/BIO_set_callback.3" => [ "doc/man3/BIO_set_callback.pod" ], @@ -13832,6 +16079,9 @@ our %unified_info = ( "doc/man/man3/BUF_MEM_new.3" => [ "doc/man3/BUF_MEM_new.pod" ], + "doc/man/man3/CMAC_CTX.3" => [ + "doc/man3/CMAC_CTX.pod" + ], "doc/man/man3/CMS_EncryptedData_decrypt.3" => [ "doc/man3/CMS_EncryptedData_decrypt.pod" ], @@ -13898,6 +16148,9 @@ our %unified_info = ( "doc/man/man3/CMS_verify_receipt.3" => [ "doc/man3/CMS_verify_receipt.pod" ], + "doc/man/man3/COMP_CTX_new.3" => [ + "doc/man3/COMP_CTX_new.pod" + ], "doc/man/man3/CONF_modules_free.3" => [ "doc/man3/CONF_modules_free.pod" ], @@ -13997,6 +16250,12 @@ our %unified_info = ( "doc/man/man3/DTLS_set_timer_cb.3" => [ "doc/man3/DTLS_set_timer_cb.pod" ], + "doc/man/man3/DTLSv1_get_timeout.3" => [ + "doc/man3/DTLSv1_get_timeout.pod" + ], + "doc/man/man3/DTLSv1_handle_timeout.3" => [ + "doc/man3/DTLSv1_handle_timeout.pod" + ], "doc/man/man3/DTLSv1_listen.3" => [ "doc/man3/DTLSv1_listen.pod" ], @@ -14135,6 +16394,9 @@ our %unified_info = ( "doc/man/man3/EVP_PKEY_CTX_get0_pkey.3" => [ "doc/man3/EVP_PKEY_CTX_get0_pkey.pod" ], + "doc/man/man3/EVP_PKEY_CTX_get_algor.3" => [ + "doc/man3/EVP_PKEY_CTX_get_algor.pod" + ], "doc/man/man3/EVP_PKEY_CTX_new.3" => [ "doc/man3/EVP_PKEY_CTX_new.pod" ], @@ -14252,6 +16514,12 @@ our %unified_info = ( "doc/man/man3/EVP_SIGNATURE.3" => [ "doc/man3/EVP_SIGNATURE.pod" ], + "doc/man/man3/EVP_SKEY.3" => [ + "doc/man3/EVP_SKEY.pod" + ], + "doc/man/man3/EVP_SKEYMGMT.3" => [ + "doc/man3/EVP_SKEYMGMT.pod" + ], "doc/man/man3/EVP_SealInit.3" => [ "doc/man3/EVP_SealInit.pod" ], @@ -14339,6 +16607,9 @@ our %unified_info = ( "doc/man/man3/EVP_whirlpool.3" => [ "doc/man3/EVP_whirlpool.pod" ], + "doc/man/man3/GENERAL_NAME.3" => [ + "doc/man3/GENERAL_NAME.pod" + ], "doc/man/man3/HMAC.3" => [ "doc/man3/HMAC.pod" ], @@ -14411,9 +16682,15 @@ our %unified_info = ( "doc/man/man3/OPENSSL_load_builtin_modules.3" => [ "doc/man3/OPENSSL_load_builtin_modules.pod" ], + "doc/man/man3/OPENSSL_load_u16_le.3" => [ + "doc/man3/OPENSSL_load_u16_le.pod" + ], "doc/man/man3/OPENSSL_malloc.3" => [ "doc/man3/OPENSSL_malloc.pod" ], + "doc/man/man3/OPENSSL_riscvcap.3" => [ + "doc/man3/OPENSSL_riscvcap.pod" + ], "doc/man/man3/OPENSSL_s390xcap.3" => [ "doc/man3/OPENSSL_s390xcap.pod" ], @@ -14429,12 +16706,18 @@ our %unified_info = ( "doc/man/man3/OSSL_CALLBACK.3" => [ "doc/man3/OSSL_CALLBACK.pod" ], + "doc/man/man3/OSSL_CMP_ATAV_set0.3" => [ + "doc/man3/OSSL_CMP_ATAV_set0.pod" + ], "doc/man/man3/OSSL_CMP_CTX_new.3" => [ "doc/man3/OSSL_CMP_CTX_new.pod" ], "doc/man/man3/OSSL_CMP_HDR_get0_transactionID.3" => [ "doc/man3/OSSL_CMP_HDR_get0_transactionID.pod" ], + "doc/man/man3/OSSL_CMP_ITAV_new_caCerts.3" => [ + "doc/man3/OSSL_CMP_ITAV_new_caCerts.pod" + ], "doc/man/man3/OSSL_CMP_ITAV_set0.3" => [ "doc/man3/OSSL_CMP_ITAV_set0.pod" ], @@ -14504,9 +16787,18 @@ our %unified_info = ( "doc/man/man3/OSSL_ENCODER_to_bio.3" => [ "doc/man3/OSSL_ENCODER_to_bio.pod" ], + "doc/man/man3/OSSL_ERR_STATE_save.3" => [ + "doc/man3/OSSL_ERR_STATE_save.pod" + ], "doc/man/man3/OSSL_ESS_check_signing_certs.3" => [ "doc/man3/OSSL_ESS_check_signing_certs.pod" ], + "doc/man/man3/OSSL_GENERAL_NAMES_print.3" => [ + "doc/man3/OSSL_GENERAL_NAMES_print.pod" + ], + "doc/man/man3/OSSL_HPKE_CTX_new.3" => [ + "doc/man3/OSSL_HPKE_CTX_new.pod" + ], "doc/man/man3/OSSL_HTTP_REQ_CTX.3" => [ "doc/man3/OSSL_HTTP_REQ_CTX.pod" ], @@ -14516,12 +16808,24 @@ our %unified_info = ( "doc/man/man3/OSSL_HTTP_transfer.3" => [ "doc/man3/OSSL_HTTP_transfer.pod" ], + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX.3" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX.pod" + ], + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX_print.3" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX_print.pod" + ], + "doc/man/man3/OSSL_INDICATOR_set_callback.3" => [ + "doc/man3/OSSL_INDICATOR_set_callback.pod" + ], "doc/man/man3/OSSL_ITEM.3" => [ "doc/man3/OSSL_ITEM.pod" ], "doc/man/man3/OSSL_LIB_CTX.3" => [ "doc/man3/OSSL_LIB_CTX.pod" ], + "doc/man/man3/OSSL_LIB_CTX_set_conf_diagnostics.3" => [ + "doc/man3/OSSL_LIB_CTX_set_conf_diagnostics.pod" + ], "doc/man/man3/OSSL_PARAM.3" => [ "doc/man3/OSSL_PARAM.pod" ], @@ -14537,9 +16841,15 @@ our %unified_info = ( "doc/man/man3/OSSL_PARAM_int.3" => [ "doc/man3/OSSL_PARAM_int.pod" ], + "doc/man/man3/OSSL_PARAM_print_to_bio.3" => [ + "doc/man3/OSSL_PARAM_print_to_bio.pod" + ], "doc/man/man3/OSSL_PROVIDER.3" => [ "doc/man3/OSSL_PROVIDER.pod" ], + "doc/man/man3/OSSL_QUIC_client_method.3" => [ + "doc/man3/OSSL_QUIC_client_method.pod" + ], "doc/man/man3/OSSL_SELF_TEST_new.3" => [ "doc/man3/OSSL_SELF_TEST_new.pod" ], @@ -14564,6 +16874,9 @@ our %unified_info = ( "doc/man/man3/OSSL_STORE_open.3" => [ "doc/man3/OSSL_STORE_open.pod" ], + "doc/man/man3/OSSL_sleep.3" => [ + "doc/man3/OSSL_sleep.pod" + ], "doc/man/man3/OSSL_trace_enabled.3" => [ "doc/man3/OSSL_trace_enabled.pod" ], @@ -14579,6 +16892,9 @@ our %unified_info = ( "doc/man/man3/OpenSSL_version.3" => [ "doc/man3/OpenSSL_version.pod" ], + "doc/man/man3/PBMAC1_get1_pbkdf2_param.3" => [ + "doc/man3/PBMAC1_get1_pbkdf2_param.pod" + ], "doc/man/man3/PEM_X509_INFO_read_bio_ex.3" => [ "doc/man3/PEM_X509_INFO_read_bio_ex.pod" ], @@ -14615,6 +16931,9 @@ our %unified_info = ( "doc/man/man3/PKCS12_SAFEBAG_get1_cert.3" => [ "doc/man3/PKCS12_SAFEBAG_get1_cert.pod" ], + "doc/man/man3/PKCS12_SAFEBAG_set0_attrs.3" => [ + "doc/man3/PKCS12_SAFEBAG_set0_attrs.pod" + ], "doc/man/man3/PKCS12_add1_attr_by_NID.3" => [ "doc/man3/PKCS12_add1_attr_by_NID.pod" ], @@ -14888,6 +17207,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set0_CA_list.3" => [ "doc/man3/SSL_CTX_set0_CA_list.pod" ], + "doc/man/man3/SSL_CTX_set1_cert_comp_preference.3" => [ + "doc/man3/SSL_CTX_set1_cert_comp_preference.pod" + ], "doc/man/man3/SSL_CTX_set1_curves.3" => [ "doc/man3/SSL_CTX_set1_curves.pod" ], @@ -14927,6 +17249,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_default_passwd_cb.3" => [ "doc/man3/SSL_CTX_set_default_passwd_cb.pod" ], + "doc/man/man3/SSL_CTX_set_domain_flags.3" => [ + "doc/man3/SSL_CTX_set_domain_flags.pod" + ], "doc/man/man3/SSL_CTX_set_generate_session_id.3" => [ "doc/man3/SSL_CTX_set_generate_session_id.pod" ], @@ -14948,6 +17273,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_msg_callback.3" => [ "doc/man3/SSL_CTX_set_msg_callback.pod" ], + "doc/man/man3/SSL_CTX_set_new_pending_conn_cb.3" => [ + "doc/man3/SSL_CTX_set_new_pending_conn_cb.pod" + ], "doc/man/man3/SSL_CTX_set_num_tickets.3" => [ "doc/man3/SSL_CTX_set_num_tickets.pod" ], @@ -15062,6 +17390,9 @@ our %unified_info = ( "doc/man/man3/SSL_accept.3" => [ "doc/man3/SSL_accept.pod" ], + "doc/man/man3/SSL_accept_stream.3" => [ + "doc/man3/SSL_accept_stream.pod" + ], "doc/man/man3/SSL_alert_type_string.3" => [ "doc/man3/SSL_alert_type_string.pod" ], @@ -15089,9 +17420,21 @@ our %unified_info = ( "doc/man/man3/SSL_free.3" => [ "doc/man3/SSL_free.pod" ], + "doc/man/man3/SSL_get0_connection.3" => [ + "doc/man3/SSL_get0_connection.pod" + ], + "doc/man/man3/SSL_get0_group_name.3" => [ + "doc/man3/SSL_get0_group_name.pod" + ], + "doc/man/man3/SSL_get0_peer_rpk.3" => [ + "doc/man3/SSL_get0_peer_rpk.pod" + ], "doc/man/man3/SSL_get0_peer_scts.3" => [ "doc/man3/SSL_get0_peer_scts.pod" ], + "doc/man/man3/SSL_get1_builtin_sigalgs.3" => [ + "doc/man3/SSL_get1_builtin_sigalgs.pod" + ], "doc/man/man3/SSL_get_SSL_CTX.3" => [ "doc/man3/SSL_get_SSL_CTX.pod" ], @@ -15107,6 +17450,9 @@ our %unified_info = ( "doc/man/man3/SSL_get_client_random.3" => [ "doc/man3/SSL_get_client_random.pod" ], + "doc/man/man3/SSL_get_conn_close_info.3" => [ + "doc/man3/SSL_get_conn_close_info.pod" + ], "doc/man/man3/SSL_get_current_cipher.3" => [ "doc/man3/SSL_get_current_cipher.pod" ], @@ -15116,12 +17462,18 @@ our %unified_info = ( "doc/man/man3/SSL_get_error.3" => [ "doc/man3/SSL_get_error.pod" ], + "doc/man/man3/SSL_get_event_timeout.3" => [ + "doc/man3/SSL_get_event_timeout.pod" + ], "doc/man/man3/SSL_get_extms_support.3" => [ "doc/man3/SSL_get_extms_support.pod" ], "doc/man/man3/SSL_get_fd.3" => [ "doc/man3/SSL_get_fd.pod" ], + "doc/man/man3/SSL_get_handshake_rtt.3" => [ + "doc/man3/SSL_get_handshake_rtt.pod" + ], "doc/man/man3/SSL_get_peer_cert_chain.3" => [ "doc/man3/SSL_get_peer_cert_chain.pod" ], @@ -15140,12 +17492,24 @@ our %unified_info = ( "doc/man/man3/SSL_get_rbio.3" => [ "doc/man3/SSL_get_rbio.pod" ], + "doc/man/man3/SSL_get_rpoll_descriptor.3" => [ + "doc/man3/SSL_get_rpoll_descriptor.pod" + ], "doc/man/man3/SSL_get_session.3" => [ "doc/man3/SSL_get_session.pod" ], "doc/man/man3/SSL_get_shared_sigalgs.3" => [ "doc/man3/SSL_get_shared_sigalgs.pod" ], + "doc/man/man3/SSL_get_stream_id.3" => [ + "doc/man3/SSL_get_stream_id.pod" + ], + "doc/man/man3/SSL_get_stream_read_state.3" => [ + "doc/man3/SSL_get_stream_read_state.pod" + ], + "doc/man/man3/SSL_get_value_uint.3" => [ + "doc/man3/SSL_get_value_uint.pod" + ], "doc/man/man3/SSL_get_verify_result.3" => [ "doc/man3/SSL_get_verify_result.pod" ], @@ -15155,9 +17519,15 @@ our %unified_info = ( "doc/man/man3/SSL_group_to_name.3" => [ "doc/man3/SSL_group_to_name.pod" ], + "doc/man/man3/SSL_handle_events.3" => [ + "doc/man3/SSL_handle_events.pod" + ], "doc/man/man3/SSL_in_init.3" => [ "doc/man3/SSL_in_init.pod" ], + "doc/man/man3/SSL_inject_net_dgram.3" => [ + "doc/man3/SSL_inject_net_dgram.pod" + ], "doc/man/man3/SSL_key_update.3" => [ "doc/man3/SSL_key_update.pod" ], @@ -15170,9 +17540,21 @@ our %unified_info = ( "doc/man/man3/SSL_new.3" => [ "doc/man3/SSL_new.pod" ], + "doc/man/man3/SSL_new_domain.3" => [ + "doc/man3/SSL_new_domain.pod" + ], + "doc/man/man3/SSL_new_listener.3" => [ + "doc/man3/SSL_new_listener.pod" + ], + "doc/man/man3/SSL_new_stream.3" => [ + "doc/man3/SSL_new_stream.pod" + ], "doc/man/man3/SSL_pending.3" => [ "doc/man3/SSL_pending.pod" ], + "doc/man/man3/SSL_poll.3" => [ + "doc/man3/SSL_poll.pod" + ], "doc/man/man3/SSL_read.3" => [ "doc/man3/SSL_read.pod" ], @@ -15188,24 +17570,45 @@ our %unified_info = ( "doc/man/man3/SSL_set1_host.3" => [ "doc/man3/SSL_set1_host.pod" ], + "doc/man/man3/SSL_set1_initial_peer_addr.3" => [ + "doc/man3/SSL_set1_initial_peer_addr.pod" + ], + "doc/man/man3/SSL_set1_server_cert_type.3" => [ + "doc/man3/SSL_set1_server_cert_type.pod" + ], "doc/man/man3/SSL_set_async_callback.3" => [ "doc/man3/SSL_set_async_callback.pod" ], "doc/man/man3/SSL_set_bio.3" => [ "doc/man3/SSL_set_bio.pod" ], + "doc/man/man3/SSL_set_blocking_mode.3" => [ + "doc/man3/SSL_set_blocking_mode.pod" + ], "doc/man/man3/SSL_set_connect_state.3" => [ "doc/man3/SSL_set_connect_state.pod" ], + "doc/man/man3/SSL_set_default_stream_mode.3" => [ + "doc/man3/SSL_set_default_stream_mode.pod" + ], "doc/man/man3/SSL_set_fd.3" => [ "doc/man3/SSL_set_fd.pod" ], + "doc/man/man3/SSL_set_incoming_stream_policy.3" => [ + "doc/man3/SSL_set_incoming_stream_policy.pod" + ], + "doc/man/man3/SSL_set_quic_tls_cbs.3" => [ + "doc/man3/SSL_set_quic_tls_cbs.pod" + ], "doc/man/man3/SSL_set_retry_verify.3" => [ "doc/man3/SSL_set_retry_verify.pod" ], "doc/man/man3/SSL_set_session.3" => [ "doc/man3/SSL_set_session.pod" ], + "doc/man/man3/SSL_set_session_secret_cb.3" => [ + "doc/man3/SSL_set_session_secret_cb.pod" + ], "doc/man/man3/SSL_set_shutdown.3" => [ "doc/man3/SSL_set_shutdown.pod" ], @@ -15218,6 +17621,12 @@ our %unified_info = ( "doc/man/man3/SSL_state_string.3" => [ "doc/man3/SSL_state_string.pod" ], + "doc/man/man3/SSL_stream_conclude.3" => [ + "doc/man3/SSL_stream_conclude.pod" + ], + "doc/man/man3/SSL_stream_reset.3" => [ + "doc/man3/SSL_stream_reset.pod" + ], "doc/man/man3/SSL_want.3" => [ "doc/man3/SSL_want.pod" ], @@ -15227,8 +17636,8 @@ our %unified_info = ( "doc/man/man3/TS_RESP_CTX_new.3" => [ "doc/man3/TS_RESP_CTX_new.pod" ], - "doc/man/man3/TS_VERIFY_CTX_set_certs.3" => [ - "doc/man3/TS_VERIFY_CTX_set_certs.pod" + "doc/man/man3/TS_VERIFY_CTX.3" => [ + "doc/man3/TS_VERIFY_CTX.pod" ], "doc/man/man3/UI_STRING.3" => [ "doc/man3/UI_STRING.pod" @@ -15242,11 +17651,26 @@ our %unified_info = ( "doc/man/man3/UI_new.3" => [ "doc/man3/UI_new.pod" ], - "doc/man/man3/X509V3_get_d2i.3" => [ - "doc/man3/X509V3_get_d2i.pod" + "doc/man/man3/X509V3_get_d2i.3" => [ + "doc/man3/X509V3_get_d2i.pod" + ], + "doc/man/man3/X509V3_set_ctx.3" => [ + "doc/man3/X509V3_set_ctx.pod" + ], + "doc/man/man3/X509_ACERT_add1_attr.3" => [ + "doc/man3/X509_ACERT_add1_attr.pod" + ], + "doc/man/man3/X509_ACERT_add_attr_nconf.3" => [ + "doc/man3/X509_ACERT_add_attr_nconf.pod" + ], + "doc/man/man3/X509_ACERT_get0_holder_baseCertId.3" => [ + "doc/man3/X509_ACERT_get0_holder_baseCertId.pod" + ], + "doc/man/man3/X509_ACERT_get_attr.3" => [ + "doc/man3/X509_ACERT_get_attr.pod" ], - "doc/man/man3/X509V3_set_ctx.3" => [ - "doc/man3/X509V3_set_ctx.pod" + "doc/man/man3/X509_ACERT_print_ex.3" => [ + "doc/man3/X509_ACERT_print_ex.pod" ], "doc/man/man3/X509_ALGOR_dup.3" => [ "doc/man3/X509_ALGOR_dup.pod" @@ -15296,6 +17720,9 @@ our %unified_info = ( "doc/man/man3/X509_SIG_get0.3" => [ "doc/man3/X509_SIG_get0.pod" ], + "doc/man/man3/X509_STORE_CTX_get_by_subject.3" => [ + "doc/man3/X509_STORE_CTX_get_by_subject.pod" + ], "doc/man/man3/X509_STORE_CTX_get_error.3" => [ "doc/man3/X509_STORE_CTX_get_error.pod" ], @@ -15362,6 +17789,9 @@ our %unified_info = ( "doc/man/man3/X509_get0_uids.3" => [ "doc/man3/X509_get0_uids.pod" ], + "doc/man/man3/X509_get_default_cert_file.3" => [ + "doc/man3/X509_get_default_cert_file.pod" + ], "doc/man/man3/X509_get_extension_flags.3" => [ "doc/man3/X509_get_extension_flags.pod" ], @@ -15485,9 +17915,15 @@ our %unified_info = ( "doc/man/man7/EVP_CIPHER-SM4.7" => [ "doc/man7/EVP_CIPHER-SM4.pod" ], + "doc/man/man7/EVP_KDF-ARGON2.7" => [ + "doc/man7/EVP_KDF-ARGON2.pod" + ], "doc/man/man7/EVP_KDF-HKDF.7" => [ "doc/man7/EVP_KDF-HKDF.pod" ], + "doc/man/man7/EVP_KDF-HMAC-DRBG.7" => [ + "doc/man7/EVP_KDF-HMAC-DRBG.pod" + ], "doc/man/man7/EVP_KDF-KB.7" => [ "doc/man7/EVP_KDF-KB.pod" ], @@ -15503,6 +17939,9 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-PKCS12KDF.7" => [ "doc/man7/EVP_KDF-PKCS12KDF.pod" ], + "doc/man/man7/EVP_KDF-PVKKDF.7" => [ + "doc/man7/EVP_KDF-PVKKDF.pod" + ], "doc/man/man7/EVP_KDF-SCRYPT.7" => [ "doc/man7/EVP_KDF-SCRYPT.pod" ], @@ -15527,9 +17966,18 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-X963.7" => [ "doc/man7/EVP_KDF-X963.pod" ], + "doc/man/man7/EVP_KEM-EC.7" => [ + "doc/man7/EVP_KEM-EC.pod" + ], + "doc/man/man7/EVP_KEM-ML-KEM.7" => [ + "doc/man7/EVP_KEM-ML-KEM.pod" + ], "doc/man/man7/EVP_KEM-RSA.7" => [ "doc/man7/EVP_KEM-RSA.pod" ], + "doc/man/man7/EVP_KEM-X25519.7" => [ + "doc/man7/EVP_KEM-X25519.pod" + ], "doc/man/man7/EVP_KEYEXCH-DH.7" => [ "doc/man7/EVP_KEYEXCH-DH.pod" ], @@ -15563,6 +18011,9 @@ our %unified_info = ( "doc/man/man7/EVP_MD-BLAKE2.7" => [ "doc/man7/EVP_MD-BLAKE2.pod" ], + "doc/man/man7/EVP_MD-KECCAK.7" => [ + "doc/man7/EVP_MD-KECCAK.pod" + ], "doc/man/man7/EVP_MD-MD2.7" => [ "doc/man7/EVP_MD-MD2.pod" ], @@ -15620,15 +18071,27 @@ our %unified_info = ( "doc/man/man7/EVP_PKEY-HMAC.7" => [ "doc/man7/EVP_PKEY-HMAC.pod" ], + "doc/man/man7/EVP_PKEY-ML-DSA.7" => [ + "doc/man7/EVP_PKEY-ML-DSA.pod" + ], + "doc/man/man7/EVP_PKEY-ML-KEM.7" => [ + "doc/man7/EVP_PKEY-ML-KEM.pod" + ], "doc/man/man7/EVP_PKEY-RSA.7" => [ "doc/man7/EVP_PKEY-RSA.pod" ], + "doc/man/man7/EVP_PKEY-SLH-DSA.7" => [ + "doc/man7/EVP_PKEY-SLH-DSA.pod" + ], "doc/man/man7/EVP_PKEY-SM2.7" => [ "doc/man7/EVP_PKEY-SM2.pod" ], "doc/man/man7/EVP_PKEY-X25519.7" => [ "doc/man7/EVP_PKEY-X25519.pod" ], + "doc/man/man7/EVP_RAND-CRNG-TEST.7" => [ + "doc/man7/EVP_RAND-CRNG-TEST.pod" + ], "doc/man/man7/EVP_RAND-CTR-DRBG.7" => [ "doc/man7/EVP_RAND-CTR-DRBG.pod" ], @@ -15638,6 +18101,9 @@ our %unified_info = ( "doc/man/man7/EVP_RAND-HMAC-DRBG.7" => [ "doc/man7/EVP_RAND-HMAC-DRBG.pod" ], + "doc/man/man7/EVP_RAND-JITTER.7" => [ + "doc/man7/EVP_RAND-JITTER.pod" + ], "doc/man/man7/EVP_RAND-SEED-SRC.7" => [ "doc/man7/EVP_RAND-SEED-SRC.pod" ], @@ -15659,9 +18125,15 @@ our %unified_info = ( "doc/man/man7/EVP_SIGNATURE-HMAC.7" => [ "doc/man7/EVP_SIGNATURE-HMAC.pod" ], + "doc/man/man7/EVP_SIGNATURE-ML-DSA.7" => [ + "doc/man7/EVP_SIGNATURE-ML-DSA.pod" + ], "doc/man/man7/EVP_SIGNATURE-RSA.7" => [ "doc/man7/EVP_SIGNATURE-RSA.pod" ], + "doc/man/man7/EVP_SIGNATURE-SLH-DSA.7" => [ + "doc/man7/EVP_SIGNATURE-SLH-DSA.pod" + ], "doc/man/man7/OSSL_PROVIDER-FIPS.7" => [ "doc/man7/OSSL_PROVIDER-FIPS.pod" ], @@ -15677,6 +18149,9 @@ our %unified_info = ( "doc/man/man7/OSSL_PROVIDER-null.7" => [ "doc/man7/OSSL_PROVIDER-null.pod" ], + "doc/man/man7/OSSL_STORE-winstore.7" => [ + "doc/man7/OSSL_STORE-winstore.pod" + ], "doc/man/man7/RAND.7" => [ "doc/man7/RAND.pod" ], @@ -15689,9 +18164,6 @@ our %unified_info = ( "doc/man/man7/bio.7" => [ "doc/man7/bio.pod" ], - "doc/man/man7/crypto.7" => [ - "doc/man7/crypto.pod" - ], "doc/man/man7/ct.7" => [ "doc/man7/ct.pod" ], @@ -15722,9 +18194,6 @@ our %unified_info = ( "doc/man/man7/life_cycle-rand.7" => [ "doc/man7/life_cycle-rand.pod" ], - "doc/man/man7/migration_guide.7" => [ - "doc/man7/migration_guide.pod" - ], "doc/man/man7/openssl-core.h.7" => [ "doc/man7/openssl-core.h.pod" ], @@ -15740,12 +18209,66 @@ our %unified_info = ( "doc/man/man7/openssl-glossary.7" => [ "doc/man7/openssl-glossary.pod" ], + "doc/man/man7/openssl-qlog.7" => [ + "doc/man7/openssl-qlog.pod" + ], + "doc/man/man7/openssl-quic-concurrency.7" => [ + "doc/man7/openssl-quic-concurrency.pod" + ], + "doc/man/man7/openssl-quic.7" => [ + "doc/man7/openssl-quic.pod" + ], "doc/man/man7/openssl-threads.7" => [ "doc/man7/openssl-threads.pod" ], "doc/man/man7/openssl_user_macros.7" => [ "doc/man7/openssl_user_macros.pod" ], + "doc/man/man7/ossl-guide-introduction.7" => [ + "doc/man7/ossl-guide-introduction.pod" + ], + "doc/man/man7/ossl-guide-libcrypto-introduction.7" => [ + "doc/man7/ossl-guide-libcrypto-introduction.pod" + ], + "doc/man/man7/ossl-guide-libraries-introduction.7" => [ + "doc/man7/ossl-guide-libraries-introduction.pod" + ], + "doc/man/man7/ossl-guide-libssl-introduction.7" => [ + "doc/man7/ossl-guide-libssl-introduction.pod" + ], + "doc/man/man7/ossl-guide-migration.7" => [ + "doc/man7/ossl-guide-migration.pod" + ], + "doc/man/man7/ossl-guide-quic-client-block.7" => [ + "doc/man7/ossl-guide-quic-client-block.pod" + ], + "doc/man/man7/ossl-guide-quic-client-non-block.7" => [ + "doc/man7/ossl-guide-quic-client-non-block.pod" + ], + "doc/man/man7/ossl-guide-quic-introduction.7" => [ + "doc/man7/ossl-guide-quic-introduction.pod" + ], + "doc/man/man7/ossl-guide-quic-multi-stream.7" => [ + "doc/man7/ossl-guide-quic-multi-stream.pod" + ], + "doc/man/man7/ossl-guide-quic-server-block.7" => [ + "doc/man7/ossl-guide-quic-server-block.pod" + ], + "doc/man/man7/ossl-guide-quic-server-non-block.7" => [ + "doc/man7/ossl-guide-quic-server-non-block.pod" + ], + "doc/man/man7/ossl-guide-tls-client-block.7" => [ + "doc/man7/ossl-guide-tls-client-block.pod" + ], + "doc/man/man7/ossl-guide-tls-client-non-block.7" => [ + "doc/man7/ossl-guide-tls-client-non-block.pod" + ], + "doc/man/man7/ossl-guide-tls-introduction.7" => [ + "doc/man7/ossl-guide-tls-introduction.pod" + ], + "doc/man/man7/ossl-guide-tls-server-block.7" => [ + "doc/man7/ossl-guide-tls-server-block.pod" + ], "doc/man/man7/ossl_store-file.7" => [ "doc/man7/ossl_store-file.pod" ], @@ -15800,6 +18323,9 @@ our %unified_info = ( "doc/man/man7/provider-signature.7" => [ "doc/man7/provider-signature.pod" ], + "doc/man/man7/provider-skeymgmt.7" => [ + "doc/man7/provider-skeymgmt.pod" + ], "doc/man/man7/provider-storemgmt.7" => [ "doc/man7/provider-storemgmt.pod" ], @@ -15809,9 +18335,6 @@ our %unified_info = ( "doc/man/man7/proxy-certificates.7" => [ "doc/man7/proxy-certificates.pod" ], - "doc/man/man7/ssl.7" => [ - "doc/man7/ssl.pod" - ], "doc/man/man7/x509.7" => [ "doc/man7/x509.pod" ], @@ -15947,6 +18470,9 @@ our %unified_info = ( "doc/man1/openssl-sess_id.pod" => [ "doc/man1/openssl-sess_id.pod.in" ], + "doc/man1/openssl-skeyutl.pod" => [ + "doc/man1/openssl-skeyutl.pod.in" + ], "doc/man1/openssl-smime.pod" => [ "doc/man1/openssl-smime.pod.in" ], @@ -15983,12 +18509,30 @@ our %unified_info = ( "engines/e_padlock-x86_64.s" => [ "engines/asm/e_padlock-x86_64.pl" ], + "exporters/OpenSSLConfig.cmake" => [ + "exporters/cmake/OpenSSLConfig.cmake.in" + ], + "exporters/OpenSSLConfigVersion.cmake" => [ + "exporters/cmake/OpenSSLConfigVersion.cmake.in" + ], + "exporters/libcrypto.pc" => [ + "exporters/pkg-config/libcrypto.pc.in" + ], + "exporters/libssl.pc" => [ + "exporters/pkg-config/libssl.pc.in" + ], + "exporters/openssl.pc" => [ + "exporters/pkg-config/openssl.pc.in" + ], "include/crypto/bn_conf.h" => [ "include/crypto/bn_conf.h.in" ], "include/crypto/dso_conf.h" => [ "include/crypto/dso_conf.h.in" ], + "include/internal/param_names.h" => [ + "include/internal/param_names.h.in" + ], "include/openssl/asn1.h" => [ "include/openssl/asn1.h.in" ], @@ -16004,12 +18548,18 @@ our %unified_info = ( "include/openssl/cms.h" => [ "include/openssl/cms.h.in" ], + "include/openssl/comp.h" => [ + "include/openssl/comp.h.in" + ], "include/openssl/conf.h" => [ "include/openssl/conf.h.in" ], "include/openssl/configuration.h" => [ "include/openssl/configuration.h.in" ], + "include/openssl/core_names.h" => [ + "include/openssl/core_names.h.in" + ], "include/openssl/crmf.h" => [ "include/openssl/crmf.h.in" ], @@ -16058,20 +18608,47 @@ our %unified_info = ( "include/openssl/x509.h" => [ "include/openssl/x509.h.in" ], + "include/openssl/x509_acert.h" => [ + "include/openssl/x509_acert.h.in" + ], "include/openssl/x509_vfy.h" => [ "include/openssl/x509_vfy.h.in" ], "include/openssl/x509v3.h" => [ "include/openssl/x509v3.h.in" ], + "installdata.pm" => [ + "util/mkinstallvars.pl", + "\"PREFIX=\$(INSTALLTOP)\"", + "BINDIR=bin", + "\"LIBDIR=\$(LIBDIR)\"", + "\"libdir=\$(libdir)\"", + "INCLUDEDIR=include", + "APPLINKDIR=include/openssl", + "\"ENGINESDIR=\$(ENGINESDIR)\"", + "\"MODULESDIR=\$(MODULESDIR)\"", + "\"PKGCONFIGDIR=\$(PKGCONFIGDIR)\"", + "\"CMAKECONFIGDIR=\$(CMAKECONFIGDIR)\"", + "\"LDLIBS=\$(LIB_EX_LIBS)\"", + "\"VERSION=\$(VERSION)\"" + ], "libcrypto.ld" => [ "util/libcrypto.num", "libcrypto" ], + "libcrypto.pc" => [ + "exporters/pkg-config/libcrypto.pc.in" + ], "libssl.ld" => [ "util/libssl.num", "libssl" ], + "libssl.pc" => [ + "exporters/pkg-config/libssl.pc.in" + ], + "openssl.pc" => [ + "exporters/pkg-config/openssl.pc.in" + ], "providers/common/der/der_digests_gen.c" => [ "providers/common/der/der_digests_gen.c.in" ], @@ -16084,9 +18661,15 @@ our %unified_info = ( "providers/common/der/der_ecx_gen.c" => [ "providers/common/der/der_ecx_gen.c.in" ], + "providers/common/der/der_ml_dsa_gen.c" => [ + "providers/common/der/der_ml_dsa_gen.c.in" + ], "providers/common/der/der_rsa_gen.c" => [ "providers/common/der/der_rsa_gen.c.in" ], + "providers/common/der/der_slh_dsa_gen.c" => [ + "providers/common/der/der_slh_dsa_gen.c.in" + ], "providers/common/der/der_sm2_gen.c" => [ "providers/common/der/der_sm2_gen.c.in" ], @@ -16105,9 +18688,15 @@ our %unified_info = ( "providers/common/include/prov/der_ecx.h" => [ "providers/common/include/prov/der_ecx.h.in" ], + "providers/common/include/prov/der_ml_dsa.h" => [ + "providers/common/include/prov/der_ml_dsa.h.in" + ], "providers/common/include/prov/der_rsa.h" => [ "providers/common/include/prov/der_rsa.h.in" ], + "providers/common/include/prov/der_slh_dsa.h" => [ + "providers/common/include/prov/der_slh_dsa.h.in" + ], "providers/common/include/prov/der_sm2.h" => [ "providers/common/include/prov/der_sm2.h.in" ], @@ -16149,6 +18738,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "buffer" ], + "test/buildtest_byteorder.c" => [ + "test/generate_buildtest.pl", + "byteorder" + ], "test/buildtest_camellia.c" => [ "test/generate_buildtest.pl", "camellia" @@ -16181,10 +18774,6 @@ our %unified_info = ( "test/generate_buildtest.pl", "core_dispatch" ], - "test/buildtest_core_names.c" => [ - "test/generate_buildtest.pl", - "core_names" - ], "test/buildtest_core_object.c" => [ "test/generate_buildtest.pl", "core_object" @@ -16217,6 +18806,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "e_os2" ], + "test/buildtest_e_ostime.c" => [ + "test/generate_buildtest.pl", + "e_ostime" + ], "test/buildtest_ebcdic.c" => [ "test/generate_buildtest.pl", "ebcdic" @@ -16253,6 +18846,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "hmac" ], + "test/buildtest_hpke.c" => [ + "test/generate_buildtest.pl", + "hpke" + ], "test/buildtest_http.c" => [ "test/generate_buildtest.pl", "http" @@ -16261,6 +18858,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "idea" ], + "test/buildtest_indicator.c" => [ + "test/generate_buildtest.pl", + "indicator" + ], "test/buildtest_kdf.c" => [ "test/generate_buildtest.pl", "kdf" @@ -16281,6 +18882,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "mdc2" ], + "test/buildtest_ml_kem.c" => [ + "test/generate_buildtest.pl", + "ml_kem" + ], "test/buildtest_modes.c" => [ "test/generate_buildtest.pl", "modes" @@ -16321,6 +18926,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "provider" ], + "test/buildtest_quic.c" => [ + "test/generate_buildtest.pl", + "quic" + ], "test/buildtest_rand.c" => [ "test/generate_buildtest.pl", "rand" @@ -16377,6 +18986,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "symhacks" ], + "test/buildtest_thread.c" => [ + "test/generate_buildtest.pl", + "thread" + ], "test/buildtest_tls1.c" => [ "test/generate_buildtest.pl", "tls1" @@ -16457,6 +19070,7 @@ our %unified_info = ( "doc/html/man1/openssl-s_server.html", "doc/html/man1/openssl-s_time.html", "doc/html/man1/openssl-sess_id.html", + "doc/html/man1/openssl-skeyutl.html", "doc/html/man1/openssl-smime.html", "doc/html/man1/openssl-speed.html", "doc/html/man1/openssl-spkac.html", @@ -16506,6 +19120,7 @@ our %unified_info = ( "doc/html/man3/BIO_find_type.html", "doc/html/man3/BIO_get_data.html", "doc/html/man3/BIO_get_ex_new_index.html", + "doc/html/man3/BIO_get_rpoll_descriptor.html", "doc/html/man3/BIO_meth_new.html", "doc/html/man3/BIO_new.html", "doc/html/man3/BIO_new_CMS.html", @@ -16518,11 +19133,13 @@ our %unified_info = ( "doc/html/man3/BIO_s_connect.html", "doc/html/man3/BIO_s_core.html", "doc/html/man3/BIO_s_datagram.html", + "doc/html/man3/BIO_s_dgram_pair.html", "doc/html/man3/BIO_s_fd.html", "doc/html/man3/BIO_s_file.html", "doc/html/man3/BIO_s_mem.html", "doc/html/man3/BIO_s_null.html", "doc/html/man3/BIO_s_socket.html", + "doc/html/man3/BIO_sendmmsg.html", "doc/html/man3/BIO_set_callback.html", "doc/html/man3/BIO_should_retry.html", "doc/html/man3/BIO_socket_wait.html", @@ -16547,6 +19164,7 @@ our %unified_info = ( "doc/html/man3/BN_swap.html", "doc/html/man3/BN_zero.html", "doc/html/man3/BUF_MEM_new.html", + "doc/html/man3/CMAC_CTX.html", "doc/html/man3/CMS_EncryptedData_decrypt.html", "doc/html/man3/CMS_EncryptedData_encrypt.html", "doc/html/man3/CMS_EnvelopedData_create.html", @@ -16569,6 +19187,7 @@ our %unified_info = ( "doc/html/man3/CMS_uncompress.html", "doc/html/man3/CMS_verify.html", "doc/html/man3/CMS_verify_receipt.html", + "doc/html/man3/COMP_CTX_new.html", "doc/html/man3/CONF_modules_free.html", "doc/html/man3/CONF_modules_load_file.html", "doc/html/man3/CRYPTO_THREAD_run_once.html", @@ -16602,6 +19221,8 @@ our %unified_info = ( "doc/html/man3/DSA_size.html", "doc/html/man3/DTLS_get_data_mtu.html", "doc/html/man3/DTLS_set_timer_cb.html", + "doc/html/man3/DTLSv1_get_timeout.html", + "doc/html/man3/DTLSv1_handle_timeout.html", "doc/html/man3/DTLSv1_listen.html", "doc/html/man3/ECDSA_SIG_new.html", "doc/html/man3/ECDSA_sign.html", @@ -16648,6 +19269,7 @@ our %unified_info = ( "doc/html/man3/EVP_PKEY_CTX_ctrl.html", "doc/html/man3/EVP_PKEY_CTX_get0_libctx.html", "doc/html/man3/EVP_PKEY_CTX_get0_pkey.html", + "doc/html/man3/EVP_PKEY_CTX_get_algor.html", "doc/html/man3/EVP_PKEY_CTX_new.html", "doc/html/man3/EVP_PKEY_CTX_set1_pbe_pass.html", "doc/html/man3/EVP_PKEY_CTX_set_hkdf_md.html", @@ -16687,6 +19309,8 @@ our %unified_info = ( "doc/html/man3/EVP_PKEY_verify_recover.html", "doc/html/man3/EVP_RAND.html", "doc/html/man3/EVP_SIGNATURE.html", + "doc/html/man3/EVP_SKEY.html", + "doc/html/man3/EVP_SKEYMGMT.html", "doc/html/man3/EVP_SealInit.html", "doc/html/man3/EVP_SignInit.html", "doc/html/man3/EVP_VerifyInit.html", @@ -16716,6 +19340,7 @@ our %unified_info = ( "doc/html/man3/EVP_sm3.html", "doc/html/man3/EVP_sm4_cbc.html", "doc/html/man3/EVP_whirlpool.html", + "doc/html/man3/GENERAL_NAME.html", "doc/html/man3/HMAC.html", "doc/html/man3/MD5.html", "doc/html/man3/MDC2_Init.html", @@ -16740,14 +19365,18 @@ our %unified_info = ( "doc/html/man3/OPENSSL_init_ssl.html", "doc/html/man3/OPENSSL_instrument_bus.html", "doc/html/man3/OPENSSL_load_builtin_modules.html", + "doc/html/man3/OPENSSL_load_u16_le.html", "doc/html/man3/OPENSSL_malloc.html", + "doc/html/man3/OPENSSL_riscvcap.html", "doc/html/man3/OPENSSL_s390xcap.html", "doc/html/man3/OPENSSL_secure_malloc.html", "doc/html/man3/OPENSSL_strcasecmp.html", "doc/html/man3/OSSL_ALGORITHM.html", "doc/html/man3/OSSL_CALLBACK.html", + "doc/html/man3/OSSL_CMP_ATAV_set0.html", "doc/html/man3/OSSL_CMP_CTX_new.html", "doc/html/man3/OSSL_CMP_HDR_get0_transactionID.html", + "doc/html/man3/OSSL_CMP_ITAV_new_caCerts.html", "doc/html/man3/OSSL_CMP_ITAV_set0.html", "doc/html/man3/OSSL_CMP_MSG_get0_header.html", "doc/html/man3/OSSL_CMP_MSG_http_perform.html", @@ -16771,18 +19400,27 @@ our %unified_info = ( "doc/html/man3/OSSL_ENCODER_CTX.html", "doc/html/man3/OSSL_ENCODER_CTX_new_for_pkey.html", "doc/html/man3/OSSL_ENCODER_to_bio.html", + "doc/html/man3/OSSL_ERR_STATE_save.html", "doc/html/man3/OSSL_ESS_check_signing_certs.html", + "doc/html/man3/OSSL_GENERAL_NAMES_print.html", + "doc/html/man3/OSSL_HPKE_CTX_new.html", "doc/html/man3/OSSL_HTTP_REQ_CTX.html", "doc/html/man3/OSSL_HTTP_parse_url.html", "doc/html/man3/OSSL_HTTP_transfer.html", + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX.html", + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX_print.html", + "doc/html/man3/OSSL_INDICATOR_set_callback.html", "doc/html/man3/OSSL_ITEM.html", "doc/html/man3/OSSL_LIB_CTX.html", + "doc/html/man3/OSSL_LIB_CTX_set_conf_diagnostics.html", "doc/html/man3/OSSL_PARAM.html", "doc/html/man3/OSSL_PARAM_BLD.html", "doc/html/man3/OSSL_PARAM_allocate_from_text.html", "doc/html/man3/OSSL_PARAM_dup.html", "doc/html/man3/OSSL_PARAM_int.html", + "doc/html/man3/OSSL_PARAM_print_to_bio.html", "doc/html/man3/OSSL_PROVIDER.html", + "doc/html/man3/OSSL_QUIC_client_method.html", "doc/html/man3/OSSL_SELF_TEST_new.html", "doc/html/man3/OSSL_SELF_TEST_set_callback.html", "doc/html/man3/OSSL_STORE_INFO.html", @@ -16791,11 +19429,13 @@ our %unified_info = ( "doc/html/man3/OSSL_STORE_attach.html", "doc/html/man3/OSSL_STORE_expect.html", "doc/html/man3/OSSL_STORE_open.html", + "doc/html/man3/OSSL_sleep.html", "doc/html/man3/OSSL_trace_enabled.html", "doc/html/man3/OSSL_trace_get_category_num.html", "doc/html/man3/OSSL_trace_set_channel.html", "doc/html/man3/OpenSSL_add_all_algorithms.html", "doc/html/man3/OpenSSL_version.html", + "doc/html/man3/PBMAC1_get1_pbkdf2_param.html", "doc/html/man3/PEM_X509_INFO_read_bio_ex.html", "doc/html/man3/PEM_bytes_read_bio.html", "doc/html/man3/PEM_read.html", @@ -16808,6 +19448,7 @@ our %unified_info = ( "doc/html/man3/PKCS12_SAFEBAG_create_cert.html", "doc/html/man3/PKCS12_SAFEBAG_get0_attrs.html", "doc/html/man3/PKCS12_SAFEBAG_get1_cert.html", + "doc/html/man3/PKCS12_SAFEBAG_set0_attrs.html", "doc/html/man3/PKCS12_add1_attr_by_NID.html", "doc/html/man3/PKCS12_add_CSPName_asc.html", "doc/html/man3/PKCS12_add_cert.html", @@ -16899,6 +19540,7 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_sess_set_get_cb.html", "doc/html/man3/SSL_CTX_sessions.html", "doc/html/man3/SSL_CTX_set0_CA_list.html", + "doc/html/man3/SSL_CTX_set1_cert_comp_preference.html", "doc/html/man3/SSL_CTX_set1_curves.html", "doc/html/man3/SSL_CTX_set1_sigalgs.html", "doc/html/man3/SSL_CTX_set1_verify_cert_store.html", @@ -16912,6 +19554,7 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_ct_validation_callback.html", "doc/html/man3/SSL_CTX_set_ctlog_list_file.html", "doc/html/man3/SSL_CTX_set_default_passwd_cb.html", + "doc/html/man3/SSL_CTX_set_domain_flags.html", "doc/html/man3/SSL_CTX_set_generate_session_id.html", "doc/html/man3/SSL_CTX_set_info_callback.html", "doc/html/man3/SSL_CTX_set_keylog_callback.html", @@ -16919,6 +19562,7 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_min_proto_version.html", "doc/html/man3/SSL_CTX_set_mode.html", "doc/html/man3/SSL_CTX_set_msg_callback.html", + "doc/html/man3/SSL_CTX_set_new_pending_conn_cb.html", "doc/html/man3/SSL_CTX_set_num_tickets.html", "doc/html/man3/SSL_CTX_set_options.html", "doc/html/man3/SSL_CTX_set_psk_client_callback.html", @@ -16957,6 +19601,7 @@ our %unified_info = ( "doc/html/man3/SSL_SESSION_print.html", "doc/html/man3/SSL_SESSION_set1_id.html", "doc/html/man3/SSL_accept.html", + "doc/html/man3/SSL_accept_stream.html", "doc/html/man3/SSL_alert_type_string.html", "doc/html/man3/SSL_alloc_buffers.html", "doc/html/man3/SSL_check_chain.html", @@ -16966,59 +19611,90 @@ our %unified_info = ( "doc/html/man3/SSL_export_keying_material.html", "doc/html/man3/SSL_extension_supported.html", "doc/html/man3/SSL_free.html", + "doc/html/man3/SSL_get0_connection.html", + "doc/html/man3/SSL_get0_group_name.html", + "doc/html/man3/SSL_get0_peer_rpk.html", "doc/html/man3/SSL_get0_peer_scts.html", + "doc/html/man3/SSL_get1_builtin_sigalgs.html", "doc/html/man3/SSL_get_SSL_CTX.html", "doc/html/man3/SSL_get_all_async_fds.html", "doc/html/man3/SSL_get_certificate.html", "doc/html/man3/SSL_get_ciphers.html", "doc/html/man3/SSL_get_client_random.html", + "doc/html/man3/SSL_get_conn_close_info.html", "doc/html/man3/SSL_get_current_cipher.html", "doc/html/man3/SSL_get_default_timeout.html", "doc/html/man3/SSL_get_error.html", + "doc/html/man3/SSL_get_event_timeout.html", "doc/html/man3/SSL_get_extms_support.html", "doc/html/man3/SSL_get_fd.html", + "doc/html/man3/SSL_get_handshake_rtt.html", "doc/html/man3/SSL_get_peer_cert_chain.html", "doc/html/man3/SSL_get_peer_certificate.html", "doc/html/man3/SSL_get_peer_signature_nid.html", "doc/html/man3/SSL_get_peer_tmp_key.html", "doc/html/man3/SSL_get_psk_identity.html", "doc/html/man3/SSL_get_rbio.html", + "doc/html/man3/SSL_get_rpoll_descriptor.html", "doc/html/man3/SSL_get_session.html", "doc/html/man3/SSL_get_shared_sigalgs.html", + "doc/html/man3/SSL_get_stream_id.html", + "doc/html/man3/SSL_get_stream_read_state.html", + "doc/html/man3/SSL_get_value_uint.html", "doc/html/man3/SSL_get_verify_result.html", "doc/html/man3/SSL_get_version.html", "doc/html/man3/SSL_group_to_name.html", + "doc/html/man3/SSL_handle_events.html", "doc/html/man3/SSL_in_init.html", + "doc/html/man3/SSL_inject_net_dgram.html", "doc/html/man3/SSL_key_update.html", "doc/html/man3/SSL_library_init.html", "doc/html/man3/SSL_load_client_CA_file.html", "doc/html/man3/SSL_new.html", + "doc/html/man3/SSL_new_domain.html", + "doc/html/man3/SSL_new_listener.html", + "doc/html/man3/SSL_new_stream.html", "doc/html/man3/SSL_pending.html", + "doc/html/man3/SSL_poll.html", "doc/html/man3/SSL_read.html", "doc/html/man3/SSL_read_early_data.html", "doc/html/man3/SSL_rstate_string.html", "doc/html/man3/SSL_session_reused.html", "doc/html/man3/SSL_set1_host.html", + "doc/html/man3/SSL_set1_initial_peer_addr.html", + "doc/html/man3/SSL_set1_server_cert_type.html", "doc/html/man3/SSL_set_async_callback.html", "doc/html/man3/SSL_set_bio.html", + "doc/html/man3/SSL_set_blocking_mode.html", "doc/html/man3/SSL_set_connect_state.html", + "doc/html/man3/SSL_set_default_stream_mode.html", "doc/html/man3/SSL_set_fd.html", + "doc/html/man3/SSL_set_incoming_stream_policy.html", + "doc/html/man3/SSL_set_quic_tls_cbs.html", "doc/html/man3/SSL_set_retry_verify.html", "doc/html/man3/SSL_set_session.html", + "doc/html/man3/SSL_set_session_secret_cb.html", "doc/html/man3/SSL_set_shutdown.html", "doc/html/man3/SSL_set_verify_result.html", "doc/html/man3/SSL_shutdown.html", "doc/html/man3/SSL_state_string.html", + "doc/html/man3/SSL_stream_conclude.html", + "doc/html/man3/SSL_stream_reset.html", "doc/html/man3/SSL_want.html", "doc/html/man3/SSL_write.html", "doc/html/man3/TS_RESP_CTX_new.html", - "doc/html/man3/TS_VERIFY_CTX_set_certs.html", + "doc/html/man3/TS_VERIFY_CTX.html", "doc/html/man3/UI_STRING.html", "doc/html/man3/UI_UTIL_read_pw.html", "doc/html/man3/UI_create_method.html", "doc/html/man3/UI_new.html", "doc/html/man3/X509V3_get_d2i.html", "doc/html/man3/X509V3_set_ctx.html", + "doc/html/man3/X509_ACERT_add1_attr.html", + "doc/html/man3/X509_ACERT_add_attr_nconf.html", + "doc/html/man3/X509_ACERT_get0_holder_baseCertId.html", + "doc/html/man3/X509_ACERT_get_attr.html", + "doc/html/man3/X509_ACERT_print_ex.html", "doc/html/man3/X509_ALGOR_dup.html", "doc/html/man3/X509_ATTRIBUTE.html", "doc/html/man3/X509_CRL_get0_by_serial.html", @@ -17035,6 +19711,7 @@ our %unified_info = ( "doc/html/man3/X509_REQ_get_attr.html", "doc/html/man3/X509_REQ_get_extensions.html", "doc/html/man3/X509_SIG_get0.html", + "doc/html/man3/X509_STORE_CTX_get_by_subject.html", "doc/html/man3/X509_STORE_CTX_get_error.html", "doc/html/man3/X509_STORE_CTX_new.html", "doc/html/man3/X509_STORE_CTX_set_verify_cb.html", @@ -17057,6 +19734,7 @@ our %unified_info = ( "doc/html/man3/X509_get0_notBefore.html", "doc/html/man3/X509_get0_signature.html", "doc/html/man3/X509_get0_uids.html", + "doc/html/man3/X509_get_default_cert_file.html", "doc/html/man3/X509_get_extension_flags.html", "doc/html/man3/X509_get_pubkey.html", "doc/html/man3/X509_get_serialNumber.html", @@ -17102,12 +19780,15 @@ our %unified_info = ( "doc/html/man7/EVP_CIPHER-RC5.html", "doc/html/man7/EVP_CIPHER-SEED.html", "doc/html/man7/EVP_CIPHER-SM4.html", + "doc/html/man7/EVP_KDF-ARGON2.html", "doc/html/man7/EVP_KDF-HKDF.html", + "doc/html/man7/EVP_KDF-HMAC-DRBG.html", "doc/html/man7/EVP_KDF-KB.html", "doc/html/man7/EVP_KDF-KRB5KDF.html", "doc/html/man7/EVP_KDF-PBKDF1.html", "doc/html/man7/EVP_KDF-PBKDF2.html", "doc/html/man7/EVP_KDF-PKCS12KDF.html", + "doc/html/man7/EVP_KDF-PVKKDF.html", "doc/html/man7/EVP_KDF-SCRYPT.html", "doc/html/man7/EVP_KDF-SS.html", "doc/html/man7/EVP_KDF-SSHKDF.html", @@ -17116,7 +19797,10 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-X942-ASN1.html", "doc/html/man7/EVP_KDF-X942-CONCAT.html", "doc/html/man7/EVP_KDF-X963.html", + "doc/html/man7/EVP_KEM-EC.html", + "doc/html/man7/EVP_KEM-ML-KEM.html", "doc/html/man7/EVP_KEM-RSA.html", + "doc/html/man7/EVP_KEM-X25519.html", "doc/html/man7/EVP_KEYEXCH-DH.html", "doc/html/man7/EVP_KEYEXCH-ECDH.html", "doc/html/man7/EVP_KEYEXCH-X25519.html", @@ -17128,6 +19812,7 @@ our %unified_info = ( "doc/html/man7/EVP_MAC-Poly1305.html", "doc/html/man7/EVP_MAC-Siphash.html", "doc/html/man7/EVP_MD-BLAKE2.html", + "doc/html/man7/EVP_MD-KECCAK.html", "doc/html/man7/EVP_MD-MD2.html", "doc/html/man7/EVP_MD-MD4.html", "doc/html/man7/EVP_MD-MD5-SHA1.html", @@ -17147,12 +19832,17 @@ our %unified_info = ( "doc/html/man7/EVP_PKEY-EC.html", "doc/html/man7/EVP_PKEY-FFC.html", "doc/html/man7/EVP_PKEY-HMAC.html", + "doc/html/man7/EVP_PKEY-ML-DSA.html", + "doc/html/man7/EVP_PKEY-ML-KEM.html", "doc/html/man7/EVP_PKEY-RSA.html", + "doc/html/man7/EVP_PKEY-SLH-DSA.html", "doc/html/man7/EVP_PKEY-SM2.html", "doc/html/man7/EVP_PKEY-X25519.html", + "doc/html/man7/EVP_RAND-CRNG-TEST.html", "doc/html/man7/EVP_RAND-CTR-DRBG.html", "doc/html/man7/EVP_RAND-HASH-DRBG.html", "doc/html/man7/EVP_RAND-HMAC-DRBG.html", + "doc/html/man7/EVP_RAND-JITTER.html", "doc/html/man7/EVP_RAND-SEED-SRC.html", "doc/html/man7/EVP_RAND-TEST-RAND.html", "doc/html/man7/EVP_RAND.html", @@ -17160,17 +19850,19 @@ our %unified_info = ( "doc/html/man7/EVP_SIGNATURE-ECDSA.html", "doc/html/man7/EVP_SIGNATURE-ED25519.html", "doc/html/man7/EVP_SIGNATURE-HMAC.html", + "doc/html/man7/EVP_SIGNATURE-ML-DSA.html", "doc/html/man7/EVP_SIGNATURE-RSA.html", + "doc/html/man7/EVP_SIGNATURE-SLH-DSA.html", "doc/html/man7/OSSL_PROVIDER-FIPS.html", "doc/html/man7/OSSL_PROVIDER-base.html", "doc/html/man7/OSSL_PROVIDER-default.html", "doc/html/man7/OSSL_PROVIDER-legacy.html", "doc/html/man7/OSSL_PROVIDER-null.html", + "doc/html/man7/OSSL_STORE-winstore.html", "doc/html/man7/RAND.html", "doc/html/man7/RSA-PSS.html", "doc/html/man7/X25519.html", "doc/html/man7/bio.html", - "doc/html/man7/crypto.html", "doc/html/man7/ct.html", "doc/html/man7/des_modes.html", "doc/html/man7/evp.html", @@ -17181,14 +19873,31 @@ our %unified_info = ( "doc/html/man7/life_cycle-mac.html", "doc/html/man7/life_cycle-pkey.html", "doc/html/man7/life_cycle-rand.html", - "doc/html/man7/migration_guide.html", "doc/html/man7/openssl-core.h.html", "doc/html/man7/openssl-core_dispatch.h.html", "doc/html/man7/openssl-core_names.h.html", "doc/html/man7/openssl-env.html", "doc/html/man7/openssl-glossary.html", + "doc/html/man7/openssl-qlog.html", + "doc/html/man7/openssl-quic-concurrency.html", + "doc/html/man7/openssl-quic.html", "doc/html/man7/openssl-threads.html", "doc/html/man7/openssl_user_macros.html", + "doc/html/man7/ossl-guide-introduction.html", + "doc/html/man7/ossl-guide-libcrypto-introduction.html", + "doc/html/man7/ossl-guide-libraries-introduction.html", + "doc/html/man7/ossl-guide-libssl-introduction.html", + "doc/html/man7/ossl-guide-migration.html", + "doc/html/man7/ossl-guide-quic-client-block.html", + "doc/html/man7/ossl-guide-quic-client-non-block.html", + "doc/html/man7/ossl-guide-quic-introduction.html", + "doc/html/man7/ossl-guide-quic-multi-stream.html", + "doc/html/man7/ossl-guide-quic-server-block.html", + "doc/html/man7/ossl-guide-quic-server-non-block.html", + "doc/html/man7/ossl-guide-tls-client-block.html", + "doc/html/man7/ossl-guide-tls-client-non-block.html", + "doc/html/man7/ossl-guide-tls-introduction.html", + "doc/html/man7/ossl-guide-tls-server-block.html", "doc/html/man7/ossl_store-file.html", "doc/html/man7/ossl_store.html", "doc/html/man7/passphrase-encoding.html", @@ -17207,10 +19916,10 @@ our %unified_info = ( "doc/html/man7/provider-object.html", "doc/html/man7/provider-rand.html", "doc/html/man7/provider-signature.html", + "doc/html/man7/provider-skeymgmt.html", "doc/html/man7/provider-storemgmt.html", "doc/html/man7/provider.html", "doc/html/man7/proxy-certificates.html", - "doc/html/man7/ssl.html", "doc/html/man7/x509.html" ] }, @@ -17225,12 +19934,21 @@ our %unified_info = ( ] }, "includes" => { + "OpenSSLConfig.cmake" => [ + "." + ], + "OpenSSLConfigVersion.cmake" => [ + "." + ], "apps/asn1parse.o" => [ "apps" ], "apps/ca.o" => [ "apps" ], + "apps/ca_internals_test-bin-ca.o" => [ + "apps" + ], "apps/ciphers.o" => [ "apps" ], @@ -17457,6 +20175,9 @@ our %unified_info = ( "apps/openssl-bin-sess_id.o" => [ "apps" ], + "apps/openssl-bin-skeyutl.o" => [ + "apps" + ], "apps/openssl-bin-smime.o" => [ "apps" ], @@ -17544,6 +20265,9 @@ our %unified_info = ( "apps/sess_id.o" => [ "apps" ], + "apps/skeyutl.o" => [ + "apps" + ], "apps/smime.o" => [ "apps" ], @@ -17595,6 +20319,12 @@ our %unified_info = ( "crypto/aes/bsaes-armv7.o" => [ "crypto" ], + "crypto/aes/vpaes-armv8.o" => [ + "crypto" + ], + "crypto/aes/vpaes-loongarch64.o" => [ + "crypto" + ], "crypto/arm64cpuid.o" => [ "crypto" ], @@ -17646,9 +20376,15 @@ our %unified_info = ( "crypto/chacha/chacha-armv4.o" => [ "crypto" ], + "crypto/chacha/chacha-armv8-sve.o" => [ + "crypto" + ], "crypto/chacha/chacha-armv8.o" => [ "crypto" ], + "crypto/chacha/chacha-loongarch64.o" => [ + "crypto" + ], "crypto/chacha/chacha-s390x.o" => [ "crypto" ], @@ -17673,15 +20409,27 @@ our %unified_info = ( "crypto/ec/ecp_s390x_nistp.o" => [ "crypto" ], + "crypto/ec/ecp_sm2p256-armv8.o" => [ + "crypto" + ], + "crypto/ec/ecx_key.o" => [ + "crypto" + ], "crypto/ec/ecx_meth.o" => [ "crypto" ], "crypto/ec/ecx_s390x.o" => [ "crypto" ], + "crypto/ec/libcrypto-lib-ecx_key.o" => [ + "crypto" + ], "crypto/ec/libcrypto-lib-ecx_meth.o" => [ "crypto" ], + "crypto/ec/libfips-lib-ecx_key.o" => [ + "crypto" + ], "crypto/evp/e_aes.o" => [ "crypto", "crypto/modes" @@ -17753,9 +20501,18 @@ our %unified_info = ( "crypto/libfips-lib-cpuid.o" => [ "." ], + "crypto/md5/md5-aarch64.o" => [ + "crypto" + ], + "crypto/md5/md5-loongarch64.o" => [ + "crypto" + ], "crypto/md5/md5-sparcv9.o" => [ "crypto" ], + "crypto/modes/aes-gcm-armv8-unroll8_64.o" => [ + "crypto" + ], "crypto/modes/aes-gcm-armv8_64.o" => [ "crypto" ], @@ -17780,6 +20537,9 @@ our %unified_info = ( "crypto/modes/libfips-lib-gcm128.o" => [ "crypto" ], + "crypto/params_idx.c" => [ + "util/perl" + ], "crypto/poly1305/poly1305-armv4.o" => [ "crypto" ], @@ -17801,6 +20561,9 @@ our %unified_info = ( "crypto/sha/keccak1600-armv4.o" => [ "crypto" ], + "crypto/sha/keccak1600-armv8.o" => [ + "crypto" + ], "crypto/sha/sha1-armv4-large.o" => [ "crypto" ], @@ -17846,6 +20609,18 @@ our %unified_info = ( "crypto/sha/sha512-sparcv9.o" => [ "crypto" ], + "crypto/sm3/sm3-armv8.o" => [ + "crypto" + ], + "crypto/sm4/sm4-armv8.o" => [ + "crypto" + ], + "crypto/sm4/vpsm4-armv8.o" => [ + "crypto" + ], + "crypto/sm4/vpsm4_ex-armv8.o" => [ + "crypto" + ], "doc/man1/openssl-asn1parse.pod" => [ "doc" ], @@ -17978,6 +20753,9 @@ our %unified_info = ( "doc/man1/openssl-sess_id.pod" => [ "doc" ], + "doc/man1/openssl-skeyutl.pod" => [ + "doc" + ], "doc/man1/openssl-smime.pod" => [ "doc" ], @@ -18005,6 +20783,24 @@ our %unified_info = ( "doc/man1/openssl-x509.pod" => [ "doc" ], + "exporters/OpenSSLConfig.cmake" => [ + "." + ], + "exporters/OpenSSLConfigVersion.cmake" => [ + "." + ], + "exporters/libcrypto.pc" => [ + "." + ], + "exporters/libssl.pc" => [ + "." + ], + "exporters/openssl.pc" => [ + "." + ], + "fuzz/acert-test" => [ + "include" + ], "fuzz/asn1-test" => [ "include" ], @@ -18035,12 +20831,69 @@ our %unified_info = ( "fuzz/ct-test" => [ "include" ], + "fuzz/decoder-test" => [ + "include" + ], + "fuzz/dtlsclient-test" => [ + "include" + ], + "fuzz/dtlsserver-test" => [ + "include" + ], + "fuzz/hashtable-test" => [ + "include" + ], + "fuzz/ml-dsa-test" => [ + "include" + ], + "fuzz/ml-kem-test" => [ + "include" + ], + "fuzz/pem-test" => [ + "include" + ], + "fuzz/provider-test" => [ + "include" + ], + "fuzz/punycode-test" => [ + "include" + ], + "fuzz/quic-client-test" => [ + "include" + ], + "fuzz/quic-lcidm-test" => [ + "include" + ], + "fuzz/quic-rcidm-test" => [ + "include" + ], + "fuzz/quic-server-test" => [ + "include" + ], + "fuzz/quic-srtm-test" => [ + "include" + ], "fuzz/server-test" => [ "include" ], + "fuzz/slh-dsa-test" => [ + "include" + ], + "fuzz/smime-test" => [ + "include" + ], + "fuzz/v3name-test" => [ + "include" + ], "fuzz/x509-test" => [ "include" ], + "include/internal/param_names.h" => [ + "util/perl" + ], + "include/openssl/core_names.h" => [ + "util/perl" + ], "libcrypto" => [ ".", "include", @@ -18051,6 +20904,9 @@ our %unified_info = ( ".", "util/perl/OpenSSL" ], + "libcrypto.pc" => [ + "." + ], "libssl" => [ ".", "include" @@ -18059,6 +20915,12 @@ our %unified_info = ( ".", "util/perl/OpenSSL" ], + "libssl.pc" => [ + "." + ], + "openssl.pc" => [ + "." + ], "providers/common/der/der_digests_gen.c" => [ "providers/common/der" ], @@ -18098,6 +20960,15 @@ our %unified_info = ( "providers/common/der/der_ecx_key.o" => [ "providers/common/include/prov" ], + "providers/common/der/der_ml_dsa_gen.c" => [ + "providers/common/der" + ], + "providers/common/der/der_ml_dsa_gen.o" => [ + "providers/common/include/prov" + ], + "providers/common/der/der_ml_dsa_key.o" => [ + "providers/common/include/prov" + ], "providers/common/der/der_rsa_gen.c" => [ "providers/common/der" ], @@ -18110,6 +20981,15 @@ our %unified_info = ( "providers/common/der/der_rsa_sig.o" => [ "providers/common/include/prov" ], + "providers/common/der/der_slh_dsa_gen.c" => [ + "providers/common/der" + ], + "providers/common/der/der_slh_dsa_gen.o" => [ + "providers/common/include/prov" + ], + "providers/common/der/der_slh_dsa_key.o" => [ + "providers/common/include/prov" + ], "providers/common/der/der_sm2_gen.c" => [ "providers/common/der" ], @@ -18155,12 +21035,24 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ecx_key.o" => [ "providers/common/include/prov" ], + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o" => [ + "providers/common/include/prov" + ], + "providers/common/der/libcommon-lib-der_ml_dsa_key.o" => [ + "providers/common/include/prov" + ], "providers/common/der/libcommon-lib-der_rsa_gen.o" => [ "providers/common/include/prov" ], "providers/common/der/libcommon-lib-der_rsa_key.o" => [ "providers/common/include/prov" ], + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o" => [ + "providers/common/include/prov" + ], + "providers/common/der/libcommon-lib-der_slh_dsa_key.o" => [ + "providers/common/include/prov" + ], "providers/common/der/libcommon-lib-der_wrap_gen.o" => [ "providers/common/include/prov" ], @@ -18191,9 +21083,15 @@ our %unified_info = ( "providers/common/include/prov/der_ecx.h" => [ "providers/common/der" ], + "providers/common/include/prov/der_ml_dsa.h" => [ + "providers/common/der" + ], "providers/common/include/prov/der_rsa.h" => [ "providers/common/der" ], + "providers/common/include/prov/der_slh_dsa.h" => [ + "providers/common/der" + ], "providers/common/include/prov/der_sm2.h" => [ "providers/common/der" ], @@ -18236,9 +21134,15 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-eddsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/libdefault-lib-rsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/libdefault-lib-sm2_sig.o" => [ "providers/common/include/prov" ], @@ -18251,12 +21155,24 @@ our %unified_info = ( "providers/implementations/signature/libfips-lib-eddsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/libfips-lib-rsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o" => [ + "providers/common/include/prov" + ], + "providers/implementations/signature/ml_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/rsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/slh_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/sm2_sig.o" => [ "providers/common/include/prov" ], @@ -18269,28 +21185,39 @@ our %unified_info = ( "crypto", "include", "providers/implementations/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" ], "providers/libdefault.a" => [ ".", "crypto", "include", "providers/implementations/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" ], "providers/libfips.a" => [ ".", "crypto", "include", "providers/implementations/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" ], "providers/liblegacy.a" => [ ".", "crypto", "include", "providers/implementations/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" + ], + "providers/libtemplate.a" => [ + "crypto", + "include", + "providers/implementations/include", + "providers/common/include", + "providers/fips/include" ], "test/aborttest" => [ "include", @@ -18359,6 +21286,14 @@ our %unified_info = ( "include", "apps/include" ], + "test/bio_addr_test" => [ + "include", + "apps/include" + ], + "test/bio_base64_test" => [ + "include", + "apps/include" + ], "test/bio_callback_test" => [ "include", "apps/include" @@ -18367,6 +21302,11 @@ our %unified_info = ( "include", "apps/include" ], + "test/bio_dgram_test" => [ + "include", + "apps/include", + "." + ], "test/bio_enc_test" => [ "include", "apps/include" @@ -18375,6 +21315,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/bio_meth_test" => [ + "include", + "apps/include" + ], "test/bio_prefix_text" => [ ".", "include", @@ -18388,6 +21332,11 @@ our %unified_info = ( "include", "apps/include" ], + "test/bio_tfo_test" => [ + "include", + "apps/include", + "." + ], "test/bioprinttest" => [ "include", "apps/include" @@ -18402,6 +21351,9 @@ our %unified_info = ( "include", "apps/include" ], + "test/build_wincrypt_test" => [ + "include" + ], "test/buildtest_c_aes" => [ "include" ], @@ -18417,6 +21369,9 @@ our %unified_info = ( "test/buildtest_c_buffer" => [ "include" ], + "test/buildtest_c_byteorder" => [ + "include" + ], "test/buildtest_c_camellia" => [ "include" ], @@ -18441,9 +21396,6 @@ our %unified_info = ( "test/buildtest_c_core_dispatch" => [ "include" ], - "test/buildtest_c_core_names" => [ - "include" - ], "test/buildtest_c_core_object" => [ "include" ], @@ -18468,6 +21420,9 @@ our %unified_info = ( "test/buildtest_c_e_os2" => [ "include" ], + "test/buildtest_c_e_ostime" => [ + "include" + ], "test/buildtest_c_ebcdic" => [ "include" ], @@ -18495,12 +21450,18 @@ our %unified_info = ( "test/buildtest_c_hmac" => [ "include" ], + "test/buildtest_c_hpke" => [ + "include" + ], "test/buildtest_c_http" => [ "include" ], "test/buildtest_c_idea" => [ "include" ], + "test/buildtest_c_indicator" => [ + "include" + ], "test/buildtest_c_kdf" => [ "include" ], @@ -18516,6 +21477,9 @@ our %unified_info = ( "test/buildtest_c_mdc2" => [ "include" ], + "test/buildtest_c_ml_kem" => [ + "include" + ], "test/buildtest_c_modes" => [ "include" ], @@ -18546,6 +21510,9 @@ our %unified_info = ( "test/buildtest_c_provider" => [ "include" ], + "test/buildtest_c_quic" => [ + "include" + ], "test/buildtest_c_rand" => [ "include" ], @@ -18588,6 +21555,9 @@ our %unified_info = ( "test/buildtest_c_symhacks" => [ "include" ], + "test/buildtest_c_thread" => [ + "include" + ], "test/buildtest_c_tls1" => [ "include" ], @@ -18603,10 +21573,24 @@ our %unified_info = ( "test/buildtest_c_whrlpool" => [ "include" ], + "test/byteorder_test" => [ + "include", + "apps/include" + ], + "test/ca_internals_test" => [ + ".", + "include", + "apps/include" + ], "test/casttest" => [ "include", "apps/include" ], + "test/cert_comp_test" => [ + "include", + "apps/include", + "." + ], "test/chacha_internal_test" => [ ".", "include", @@ -18730,6 +21714,11 @@ our %unified_info = ( "include", "apps/include" ], + "test/decoder_propq_test" => [ + ".", + "include", + "apps/include" + ], "test/defltfips_test" => [ "include", "apps/include" @@ -18745,7 +21734,8 @@ our %unified_info = ( "test/drbgtest" => [ "include", "apps/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" ], "test/dsa_no_digest_size_test" => [ "include", @@ -18788,7 +21778,9 @@ our %unified_info = ( "test/endecode_test" => [ ".", "include", - "apps/include" + "apps/include", + "providers/common/include", + "providers/implementations/include" ], "test/endecoder_legacy_test" => [ ".", @@ -18833,6 +21825,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/evp_pkey_dhkem_test" => [ + "include", + "apps/include" + ], "test/evp_pkey_dparams_test" => [ "include", "apps/include" @@ -18841,10 +21837,18 @@ our %unified_info = ( "include", "apps/include" ], + "test/evp_skey_test" => [ + "include", + "apps/include" + ], "test/evp_test" => [ "include", "apps/include" ], + "test/evp_xof_test" => [ + "include", + "apps/include" + ], "test/exdatatest" => [ "include", "apps/include" @@ -18945,22 +21949,62 @@ our %unified_info = ( ".", "include" ], + "test/helpers/json_test-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/helpers/pkcs12.o" => [ ".", "include" ], + "test/helpers/pkcs12_api_test-bin-pkcs12.o" => [ + ".", + "include" + ], "test/helpers/pkcs12_format_test-bin-pkcs12.o" => [ ".", "include" ], + "test/helpers/quic_multistream_test-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quic_newcid_test-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quic_radix_test-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quic_srt_gen_test-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quicapitest-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quicfaultstest-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/helpers/recordlentest-bin-ssltestlib.o" => [ ".", "include" ], + "test/helpers/rpktest-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/helpers/servername_test-bin-ssltestlib.o" => [ ".", "include" ], + "test/helpers/ssl_handshake_rtt_test-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/helpers/ssl_test-bin-handshake.o" => [ ".", "include" @@ -18994,6 +22038,10 @@ our %unified_info = ( ".", "include" ], + "test/helpers/tls13groupselection_test-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/hexstr_test" => [ ".", "include", @@ -19003,6 +22051,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/hpke_test" => [ + "include", + "apps/include" + ], "test/http_test" => [ "include", "apps/include" @@ -19015,6 +22067,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/json_test" => [ + "include", + "apps/include" + ], "test/keymgmt_internal_test" => [ ".", "include", @@ -19029,6 +22085,10 @@ our %unified_info = ( "apps/include", "." ], + "test/list_test" => [ + "include", + "apps/include" + ], "test/localetest" => [ "include", "apps/include" @@ -19042,10 +22102,27 @@ our %unified_info = ( "include", "apps/include" ], + "test/membio_test" => [ + "include", + "apps/include", + "." + ], "test/memleaktest" => [ "include", "apps/include" ], + "test/ml_dsa_test" => [ + "include", + "apps/include" + ], + "test/ml_kem_evp_extra_test" => [ + "include", + "apps/include" + ], + "test/ml_kem_internal_test" => [ + "include", + "apps/include" + ], "test/modes_internal_test" => [ ".", "include", @@ -19080,6 +22157,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/pairwise_fail_test" => [ + "include", + "apps/include" + ], "test/param_build_test" => [ "include", "apps/include" @@ -19113,6 +22194,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/pkcs12_api_test" => [ + "include", + "apps/include" + ], "test/pkcs12_format_test" => [ "include", "apps/include" @@ -19134,6 +22219,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/priority_queue_test" => [ + "include", + "apps/include" + ], "test/property_test" => [ ".", "include", @@ -19147,6 +22236,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/provider_default_search_path_test" => [ + "include", + "apps/include" + ], "test/provider_fallback_test" => [ "include", "apps/include" @@ -19173,6 +22266,97 @@ our %unified_info = ( "include", "apps/include" ], + "test/quic_ackm_test" => [ + "include", + "apps/include" + ], + "test/quic_cc_test" => [ + "include", + "apps/include" + ], + "test/quic_cfq_test" => [ + "include", + "apps/include" + ], + "test/quic_client_test" => [ + "include", + "apps/include" + ], + "test/quic_fc_test" => [ + "include", + "apps/include" + ], + "test/quic_fifd_test" => [ + "include", + "apps/include" + ], + "test/quic_lcidm_test" => [ + "include", + "apps/include" + ], + "test/quic_multistream_test" => [ + "include", + "apps/include" + ], + "test/quic_newcid_test" => [ + "include", + "apps/include", + "." + ], + "test/quic_qlog_test" => [ + "include", + "apps/include" + ], + "test/quic_radix_test" => [ + "include", + "apps/include" + ], + "test/quic_rcidm_test" => [ + "include", + "apps/include" + ], + "test/quic_record_test" => [ + "include", + "apps/include" + ], + "test/quic_srt_gen_test" => [ + "include", + "apps/include", + "." + ], + "test/quic_srtm_test" => [ + "include", + "apps/include" + ], + "test/quic_stream_test" => [ + "include", + "apps/include" + ], + "test/quic_tserver_test" => [ + "include", + "apps/include" + ], + "test/quic_txp_test" => [ + "include", + "apps/include" + ], + "test/quic_txpim_test" => [ + "include", + "apps/include" + ], + "test/quic_wire_test" => [ + "include", + "apps/include" + ], + "test/quicapitest" => [ + "include", + "apps/include" + ], + "test/quicfaultstest" => [ + "include", + "apps/include", + "." + ], "test/rand_status_test" => [ "include", "apps/include" @@ -19193,14 +22377,20 @@ our %unified_info = ( "include", "apps/include" ], - "test/rdrand_sanitytest" => [ + "test/rdcpu_sanitytest" => [ "include", - "apps/include" + "apps/include", + "crypto" ], "test/recordlentest" => [ "include", "apps/include" ], + "test/rpktest" => [ + "include", + "apps/include", + "." + ], "test/rsa_complex" => [ "include", "apps/include" @@ -19219,6 +22409,15 @@ our %unified_info = ( "include", "apps/include" ], + "test/rsa_x931_test" => [ + ".", + "include", + "apps/include" + ], + "test/safe_math_test" => [ + "include", + "apps/include" + ], "test/sanitytest" => [ "include", "apps/include" @@ -19240,6 +22439,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/slh_dsa_test" => [ + "include", + "apps/include" + ], "test/sm2_internal_test" => [ "include", "apps/include" @@ -19270,6 +22473,11 @@ our %unified_info = ( "include", "apps/include" ], + "test/ssl_handshake_rtt_test" => [ + "include", + "apps/include", + "." + ], "test/ssl_old_test" => [ ".", "include", @@ -19286,6 +22494,7 @@ our %unified_info = ( "test/sslapitest" => [ "include", "apps/include", + "providers/common/include", "." ], "test/sslbuffertest" => [ @@ -19300,6 +22509,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/strtoultest" => [ + "include", + "apps/include" + ], "test/sysdefaulttest" => [ "include", "apps/include" @@ -19308,7 +22521,13 @@ our %unified_info = ( "include", "apps/include" ], + "test/threadpool_test" => [ + ".", + "include", + "apps/include" + ], "test/threadstest" => [ + ".", "include", "apps/include" ], @@ -19320,6 +22539,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/time_test" => [ + "include", + "apps/include" + ], "test/tls13ccstest" => [ "include", "apps/include" @@ -19329,6 +22552,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/tls13groupselection_test" => [ + "include", + "apps/include" + ], "test/trace_api_test" => [ ".", "include", @@ -19367,6 +22594,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/x509_acert_test" => [ + "include", + "apps/include" + ], "test/x509_check_cert_pkey_test" => [ "include", "apps/include" @@ -19380,6 +22611,18 @@ our %unified_info = ( "include", "apps/include" ], + "test/x509_load_cert_file_test" => [ + "include", + "apps/include" + ], + "test/x509_req_test" => [ + "include", + "apps/include" + ], + "test/x509_test" => [ + "include", + "apps/include" + ], "test/x509_time_test" => [ "include", "apps/include" @@ -19401,6 +22644,7 @@ our %unified_info = ( "providers/libdefault.a", "providers/libfips.a", "providers/liblegacy.a", + "providers/libtemplate.a", "test/libtestutil.a" ], "mandocs" => { @@ -19453,6 +22697,7 @@ our %unified_info = ( "doc/man/man1/openssl-s_server.1", "doc/man/man1/openssl-s_time.1", "doc/man/man1/openssl-sess_id.1", + "doc/man/man1/openssl-skeyutl.1", "doc/man/man1/openssl-smime.1", "doc/man/man1/openssl-speed.1", "doc/man/man1/openssl-spkac.1", @@ -19502,6 +22747,7 @@ our %unified_info = ( "doc/man/man3/BIO_find_type.3", "doc/man/man3/BIO_get_data.3", "doc/man/man3/BIO_get_ex_new_index.3", + "doc/man/man3/BIO_get_rpoll_descriptor.3", "doc/man/man3/BIO_meth_new.3", "doc/man/man3/BIO_new.3", "doc/man/man3/BIO_new_CMS.3", @@ -19514,11 +22760,13 @@ our %unified_info = ( "doc/man/man3/BIO_s_connect.3", "doc/man/man3/BIO_s_core.3", "doc/man/man3/BIO_s_datagram.3", + "doc/man/man3/BIO_s_dgram_pair.3", "doc/man/man3/BIO_s_fd.3", "doc/man/man3/BIO_s_file.3", "doc/man/man3/BIO_s_mem.3", "doc/man/man3/BIO_s_null.3", "doc/man/man3/BIO_s_socket.3", + "doc/man/man3/BIO_sendmmsg.3", "doc/man/man3/BIO_set_callback.3", "doc/man/man3/BIO_should_retry.3", "doc/man/man3/BIO_socket_wait.3", @@ -19543,6 +22791,7 @@ our %unified_info = ( "doc/man/man3/BN_swap.3", "doc/man/man3/BN_zero.3", "doc/man/man3/BUF_MEM_new.3", + "doc/man/man3/CMAC_CTX.3", "doc/man/man3/CMS_EncryptedData_decrypt.3", "doc/man/man3/CMS_EncryptedData_encrypt.3", "doc/man/man3/CMS_EnvelopedData_create.3", @@ -19565,6 +22814,7 @@ our %unified_info = ( "doc/man/man3/CMS_uncompress.3", "doc/man/man3/CMS_verify.3", "doc/man/man3/CMS_verify_receipt.3", + "doc/man/man3/COMP_CTX_new.3", "doc/man/man3/CONF_modules_free.3", "doc/man/man3/CONF_modules_load_file.3", "doc/man/man3/CRYPTO_THREAD_run_once.3", @@ -19598,6 +22848,8 @@ our %unified_info = ( "doc/man/man3/DSA_size.3", "doc/man/man3/DTLS_get_data_mtu.3", "doc/man/man3/DTLS_set_timer_cb.3", + "doc/man/man3/DTLSv1_get_timeout.3", + "doc/man/man3/DTLSv1_handle_timeout.3", "doc/man/man3/DTLSv1_listen.3", "doc/man/man3/ECDSA_SIG_new.3", "doc/man/man3/ECDSA_sign.3", @@ -19644,6 +22896,7 @@ our %unified_info = ( "doc/man/man3/EVP_PKEY_CTX_ctrl.3", "doc/man/man3/EVP_PKEY_CTX_get0_libctx.3", "doc/man/man3/EVP_PKEY_CTX_get0_pkey.3", + "doc/man/man3/EVP_PKEY_CTX_get_algor.3", "doc/man/man3/EVP_PKEY_CTX_new.3", "doc/man/man3/EVP_PKEY_CTX_set1_pbe_pass.3", "doc/man/man3/EVP_PKEY_CTX_set_hkdf_md.3", @@ -19683,6 +22936,8 @@ our %unified_info = ( "doc/man/man3/EVP_PKEY_verify_recover.3", "doc/man/man3/EVP_RAND.3", "doc/man/man3/EVP_SIGNATURE.3", + "doc/man/man3/EVP_SKEY.3", + "doc/man/man3/EVP_SKEYMGMT.3", "doc/man/man3/EVP_SealInit.3", "doc/man/man3/EVP_SignInit.3", "doc/man/man3/EVP_VerifyInit.3", @@ -19712,6 +22967,7 @@ our %unified_info = ( "doc/man/man3/EVP_sm3.3", "doc/man/man3/EVP_sm4_cbc.3", "doc/man/man3/EVP_whirlpool.3", + "doc/man/man3/GENERAL_NAME.3", "doc/man/man3/HMAC.3", "doc/man/man3/MD5.3", "doc/man/man3/MDC2_Init.3", @@ -19736,14 +22992,18 @@ our %unified_info = ( "doc/man/man3/OPENSSL_init_ssl.3", "doc/man/man3/OPENSSL_instrument_bus.3", "doc/man/man3/OPENSSL_load_builtin_modules.3", + "doc/man/man3/OPENSSL_load_u16_le.3", "doc/man/man3/OPENSSL_malloc.3", + "doc/man/man3/OPENSSL_riscvcap.3", "doc/man/man3/OPENSSL_s390xcap.3", "doc/man/man3/OPENSSL_secure_malloc.3", "doc/man/man3/OPENSSL_strcasecmp.3", "doc/man/man3/OSSL_ALGORITHM.3", "doc/man/man3/OSSL_CALLBACK.3", + "doc/man/man3/OSSL_CMP_ATAV_set0.3", "doc/man/man3/OSSL_CMP_CTX_new.3", "doc/man/man3/OSSL_CMP_HDR_get0_transactionID.3", + "doc/man/man3/OSSL_CMP_ITAV_new_caCerts.3", "doc/man/man3/OSSL_CMP_ITAV_set0.3", "doc/man/man3/OSSL_CMP_MSG_get0_header.3", "doc/man/man3/OSSL_CMP_MSG_http_perform.3", @@ -19767,18 +23027,27 @@ our %unified_info = ( "doc/man/man3/OSSL_ENCODER_CTX.3", "doc/man/man3/OSSL_ENCODER_CTX_new_for_pkey.3", "doc/man/man3/OSSL_ENCODER_to_bio.3", + "doc/man/man3/OSSL_ERR_STATE_save.3", "doc/man/man3/OSSL_ESS_check_signing_certs.3", + "doc/man/man3/OSSL_GENERAL_NAMES_print.3", + "doc/man/man3/OSSL_HPKE_CTX_new.3", "doc/man/man3/OSSL_HTTP_REQ_CTX.3", "doc/man/man3/OSSL_HTTP_parse_url.3", "doc/man/man3/OSSL_HTTP_transfer.3", + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX.3", + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX_print.3", + "doc/man/man3/OSSL_INDICATOR_set_callback.3", "doc/man/man3/OSSL_ITEM.3", "doc/man/man3/OSSL_LIB_CTX.3", + "doc/man/man3/OSSL_LIB_CTX_set_conf_diagnostics.3", "doc/man/man3/OSSL_PARAM.3", "doc/man/man3/OSSL_PARAM_BLD.3", "doc/man/man3/OSSL_PARAM_allocate_from_text.3", "doc/man/man3/OSSL_PARAM_dup.3", "doc/man/man3/OSSL_PARAM_int.3", + "doc/man/man3/OSSL_PARAM_print_to_bio.3", "doc/man/man3/OSSL_PROVIDER.3", + "doc/man/man3/OSSL_QUIC_client_method.3", "doc/man/man3/OSSL_SELF_TEST_new.3", "doc/man/man3/OSSL_SELF_TEST_set_callback.3", "doc/man/man3/OSSL_STORE_INFO.3", @@ -19787,11 +23056,13 @@ our %unified_info = ( "doc/man/man3/OSSL_STORE_attach.3", "doc/man/man3/OSSL_STORE_expect.3", "doc/man/man3/OSSL_STORE_open.3", + "doc/man/man3/OSSL_sleep.3", "doc/man/man3/OSSL_trace_enabled.3", "doc/man/man3/OSSL_trace_get_category_num.3", "doc/man/man3/OSSL_trace_set_channel.3", "doc/man/man3/OpenSSL_add_all_algorithms.3", "doc/man/man3/OpenSSL_version.3", + "doc/man/man3/PBMAC1_get1_pbkdf2_param.3", "doc/man/man3/PEM_X509_INFO_read_bio_ex.3", "doc/man/man3/PEM_bytes_read_bio.3", "doc/man/man3/PEM_read.3", @@ -19804,6 +23075,7 @@ our %unified_info = ( "doc/man/man3/PKCS12_SAFEBAG_create_cert.3", "doc/man/man3/PKCS12_SAFEBAG_get0_attrs.3", "doc/man/man3/PKCS12_SAFEBAG_get1_cert.3", + "doc/man/man3/PKCS12_SAFEBAG_set0_attrs.3", "doc/man/man3/PKCS12_add1_attr_by_NID.3", "doc/man/man3/PKCS12_add_CSPName_asc.3", "doc/man/man3/PKCS12_add_cert.3", @@ -19895,6 +23167,7 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_sess_set_get_cb.3", "doc/man/man3/SSL_CTX_sessions.3", "doc/man/man3/SSL_CTX_set0_CA_list.3", + "doc/man/man3/SSL_CTX_set1_cert_comp_preference.3", "doc/man/man3/SSL_CTX_set1_curves.3", "doc/man/man3/SSL_CTX_set1_sigalgs.3", "doc/man/man3/SSL_CTX_set1_verify_cert_store.3", @@ -19908,6 +23181,7 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_ct_validation_callback.3", "doc/man/man3/SSL_CTX_set_ctlog_list_file.3", "doc/man/man3/SSL_CTX_set_default_passwd_cb.3", + "doc/man/man3/SSL_CTX_set_domain_flags.3", "doc/man/man3/SSL_CTX_set_generate_session_id.3", "doc/man/man3/SSL_CTX_set_info_callback.3", "doc/man/man3/SSL_CTX_set_keylog_callback.3", @@ -19915,6 +23189,7 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_min_proto_version.3", "doc/man/man3/SSL_CTX_set_mode.3", "doc/man/man3/SSL_CTX_set_msg_callback.3", + "doc/man/man3/SSL_CTX_set_new_pending_conn_cb.3", "doc/man/man3/SSL_CTX_set_num_tickets.3", "doc/man/man3/SSL_CTX_set_options.3", "doc/man/man3/SSL_CTX_set_psk_client_callback.3", @@ -19953,6 +23228,7 @@ our %unified_info = ( "doc/man/man3/SSL_SESSION_print.3", "doc/man/man3/SSL_SESSION_set1_id.3", "doc/man/man3/SSL_accept.3", + "doc/man/man3/SSL_accept_stream.3", "doc/man/man3/SSL_alert_type_string.3", "doc/man/man3/SSL_alloc_buffers.3", "doc/man/man3/SSL_check_chain.3", @@ -19962,59 +23238,90 @@ our %unified_info = ( "doc/man/man3/SSL_export_keying_material.3", "doc/man/man3/SSL_extension_supported.3", "doc/man/man3/SSL_free.3", + "doc/man/man3/SSL_get0_connection.3", + "doc/man/man3/SSL_get0_group_name.3", + "doc/man/man3/SSL_get0_peer_rpk.3", "doc/man/man3/SSL_get0_peer_scts.3", + "doc/man/man3/SSL_get1_builtin_sigalgs.3", "doc/man/man3/SSL_get_SSL_CTX.3", "doc/man/man3/SSL_get_all_async_fds.3", "doc/man/man3/SSL_get_certificate.3", "doc/man/man3/SSL_get_ciphers.3", "doc/man/man3/SSL_get_client_random.3", + "doc/man/man3/SSL_get_conn_close_info.3", "doc/man/man3/SSL_get_current_cipher.3", "doc/man/man3/SSL_get_default_timeout.3", "doc/man/man3/SSL_get_error.3", + "doc/man/man3/SSL_get_event_timeout.3", "doc/man/man3/SSL_get_extms_support.3", "doc/man/man3/SSL_get_fd.3", + "doc/man/man3/SSL_get_handshake_rtt.3", "doc/man/man3/SSL_get_peer_cert_chain.3", "doc/man/man3/SSL_get_peer_certificate.3", "doc/man/man3/SSL_get_peer_signature_nid.3", "doc/man/man3/SSL_get_peer_tmp_key.3", "doc/man/man3/SSL_get_psk_identity.3", "doc/man/man3/SSL_get_rbio.3", + "doc/man/man3/SSL_get_rpoll_descriptor.3", "doc/man/man3/SSL_get_session.3", "doc/man/man3/SSL_get_shared_sigalgs.3", + "doc/man/man3/SSL_get_stream_id.3", + "doc/man/man3/SSL_get_stream_read_state.3", + "doc/man/man3/SSL_get_value_uint.3", "doc/man/man3/SSL_get_verify_result.3", "doc/man/man3/SSL_get_version.3", "doc/man/man3/SSL_group_to_name.3", + "doc/man/man3/SSL_handle_events.3", "doc/man/man3/SSL_in_init.3", + "doc/man/man3/SSL_inject_net_dgram.3", "doc/man/man3/SSL_key_update.3", "doc/man/man3/SSL_library_init.3", "doc/man/man3/SSL_load_client_CA_file.3", "doc/man/man3/SSL_new.3", + "doc/man/man3/SSL_new_domain.3", + "doc/man/man3/SSL_new_listener.3", + "doc/man/man3/SSL_new_stream.3", "doc/man/man3/SSL_pending.3", + "doc/man/man3/SSL_poll.3", "doc/man/man3/SSL_read.3", "doc/man/man3/SSL_read_early_data.3", "doc/man/man3/SSL_rstate_string.3", "doc/man/man3/SSL_session_reused.3", "doc/man/man3/SSL_set1_host.3", + "doc/man/man3/SSL_set1_initial_peer_addr.3", + "doc/man/man3/SSL_set1_server_cert_type.3", "doc/man/man3/SSL_set_async_callback.3", "doc/man/man3/SSL_set_bio.3", + "doc/man/man3/SSL_set_blocking_mode.3", "doc/man/man3/SSL_set_connect_state.3", + "doc/man/man3/SSL_set_default_stream_mode.3", "doc/man/man3/SSL_set_fd.3", + "doc/man/man3/SSL_set_incoming_stream_policy.3", + "doc/man/man3/SSL_set_quic_tls_cbs.3", "doc/man/man3/SSL_set_retry_verify.3", "doc/man/man3/SSL_set_session.3", + "doc/man/man3/SSL_set_session_secret_cb.3", "doc/man/man3/SSL_set_shutdown.3", "doc/man/man3/SSL_set_verify_result.3", "doc/man/man3/SSL_shutdown.3", "doc/man/man3/SSL_state_string.3", + "doc/man/man3/SSL_stream_conclude.3", + "doc/man/man3/SSL_stream_reset.3", "doc/man/man3/SSL_want.3", "doc/man/man3/SSL_write.3", "doc/man/man3/TS_RESP_CTX_new.3", - "doc/man/man3/TS_VERIFY_CTX_set_certs.3", + "doc/man/man3/TS_VERIFY_CTX.3", "doc/man/man3/UI_STRING.3", "doc/man/man3/UI_UTIL_read_pw.3", "doc/man/man3/UI_create_method.3", "doc/man/man3/UI_new.3", "doc/man/man3/X509V3_get_d2i.3", "doc/man/man3/X509V3_set_ctx.3", + "doc/man/man3/X509_ACERT_add1_attr.3", + "doc/man/man3/X509_ACERT_add_attr_nconf.3", + "doc/man/man3/X509_ACERT_get0_holder_baseCertId.3", + "doc/man/man3/X509_ACERT_get_attr.3", + "doc/man/man3/X509_ACERT_print_ex.3", "doc/man/man3/X509_ALGOR_dup.3", "doc/man/man3/X509_ATTRIBUTE.3", "doc/man/man3/X509_CRL_get0_by_serial.3", @@ -20031,6 +23338,7 @@ our %unified_info = ( "doc/man/man3/X509_REQ_get_attr.3", "doc/man/man3/X509_REQ_get_extensions.3", "doc/man/man3/X509_SIG_get0.3", + "doc/man/man3/X509_STORE_CTX_get_by_subject.3", "doc/man/man3/X509_STORE_CTX_get_error.3", "doc/man/man3/X509_STORE_CTX_new.3", "doc/man/man3/X509_STORE_CTX_set_verify_cb.3", @@ -20053,6 +23361,7 @@ our %unified_info = ( "doc/man/man3/X509_get0_notBefore.3", "doc/man/man3/X509_get0_signature.3", "doc/man/man3/X509_get0_uids.3", + "doc/man/man3/X509_get_default_cert_file.3", "doc/man/man3/X509_get_extension_flags.3", "doc/man/man3/X509_get_pubkey.3", "doc/man/man3/X509_get_serialNumber.3", @@ -20098,12 +23407,15 @@ our %unified_info = ( "doc/man/man7/EVP_CIPHER-RC5.7", "doc/man/man7/EVP_CIPHER-SEED.7", "doc/man/man7/EVP_CIPHER-SM4.7", + "doc/man/man7/EVP_KDF-ARGON2.7", "doc/man/man7/EVP_KDF-HKDF.7", + "doc/man/man7/EVP_KDF-HMAC-DRBG.7", "doc/man/man7/EVP_KDF-KB.7", "doc/man/man7/EVP_KDF-KRB5KDF.7", "doc/man/man7/EVP_KDF-PBKDF1.7", "doc/man/man7/EVP_KDF-PBKDF2.7", "doc/man/man7/EVP_KDF-PKCS12KDF.7", + "doc/man/man7/EVP_KDF-PVKKDF.7", "doc/man/man7/EVP_KDF-SCRYPT.7", "doc/man/man7/EVP_KDF-SS.7", "doc/man/man7/EVP_KDF-SSHKDF.7", @@ -20112,7 +23424,10 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-X942-ASN1.7", "doc/man/man7/EVP_KDF-X942-CONCAT.7", "doc/man/man7/EVP_KDF-X963.7", + "doc/man/man7/EVP_KEM-EC.7", + "doc/man/man7/EVP_KEM-ML-KEM.7", "doc/man/man7/EVP_KEM-RSA.7", + "doc/man/man7/EVP_KEM-X25519.7", "doc/man/man7/EVP_KEYEXCH-DH.7", "doc/man/man7/EVP_KEYEXCH-ECDH.7", "doc/man/man7/EVP_KEYEXCH-X25519.7", @@ -20124,6 +23439,7 @@ our %unified_info = ( "doc/man/man7/EVP_MAC-Poly1305.7", "doc/man/man7/EVP_MAC-Siphash.7", "doc/man/man7/EVP_MD-BLAKE2.7", + "doc/man/man7/EVP_MD-KECCAK.7", "doc/man/man7/EVP_MD-MD2.7", "doc/man/man7/EVP_MD-MD4.7", "doc/man/man7/EVP_MD-MD5-SHA1.7", @@ -20143,12 +23459,17 @@ our %unified_info = ( "doc/man/man7/EVP_PKEY-EC.7", "doc/man/man7/EVP_PKEY-FFC.7", "doc/man/man7/EVP_PKEY-HMAC.7", + "doc/man/man7/EVP_PKEY-ML-DSA.7", + "doc/man/man7/EVP_PKEY-ML-KEM.7", "doc/man/man7/EVP_PKEY-RSA.7", + "doc/man/man7/EVP_PKEY-SLH-DSA.7", "doc/man/man7/EVP_PKEY-SM2.7", "doc/man/man7/EVP_PKEY-X25519.7", + "doc/man/man7/EVP_RAND-CRNG-TEST.7", "doc/man/man7/EVP_RAND-CTR-DRBG.7", "doc/man/man7/EVP_RAND-HASH-DRBG.7", "doc/man/man7/EVP_RAND-HMAC-DRBG.7", + "doc/man/man7/EVP_RAND-JITTER.7", "doc/man/man7/EVP_RAND-SEED-SRC.7", "doc/man/man7/EVP_RAND-TEST-RAND.7", "doc/man/man7/EVP_RAND.7", @@ -20156,17 +23477,19 @@ our %unified_info = ( "doc/man/man7/EVP_SIGNATURE-ECDSA.7", "doc/man/man7/EVP_SIGNATURE-ED25519.7", "doc/man/man7/EVP_SIGNATURE-HMAC.7", + "doc/man/man7/EVP_SIGNATURE-ML-DSA.7", "doc/man/man7/EVP_SIGNATURE-RSA.7", + "doc/man/man7/EVP_SIGNATURE-SLH-DSA.7", "doc/man/man7/OSSL_PROVIDER-FIPS.7", "doc/man/man7/OSSL_PROVIDER-base.7", "doc/man/man7/OSSL_PROVIDER-default.7", "doc/man/man7/OSSL_PROVIDER-legacy.7", "doc/man/man7/OSSL_PROVIDER-null.7", + "doc/man/man7/OSSL_STORE-winstore.7", "doc/man/man7/RAND.7", "doc/man/man7/RSA-PSS.7", "doc/man/man7/X25519.7", "doc/man/man7/bio.7", - "doc/man/man7/crypto.7", "doc/man/man7/ct.7", "doc/man/man7/des_modes.7", "doc/man/man7/evp.7", @@ -20177,14 +23500,31 @@ our %unified_info = ( "doc/man/man7/life_cycle-mac.7", "doc/man/man7/life_cycle-pkey.7", "doc/man/man7/life_cycle-rand.7", - "doc/man/man7/migration_guide.7", "doc/man/man7/openssl-core.h.7", "doc/man/man7/openssl-core_dispatch.h.7", "doc/man/man7/openssl-core_names.h.7", "doc/man/man7/openssl-env.7", "doc/man/man7/openssl-glossary.7", + "doc/man/man7/openssl-qlog.7", + "doc/man/man7/openssl-quic-concurrency.7", + "doc/man/man7/openssl-quic.7", "doc/man/man7/openssl-threads.7", "doc/man/man7/openssl_user_macros.7", + "doc/man/man7/ossl-guide-introduction.7", + "doc/man/man7/ossl-guide-libcrypto-introduction.7", + "doc/man/man7/ossl-guide-libraries-introduction.7", + "doc/man/man7/ossl-guide-libssl-introduction.7", + "doc/man/man7/ossl-guide-migration.7", + "doc/man/man7/ossl-guide-quic-client-block.7", + "doc/man/man7/ossl-guide-quic-client-non-block.7", + "doc/man/man7/ossl-guide-quic-introduction.7", + "doc/man/man7/ossl-guide-quic-multi-stream.7", + "doc/man/man7/ossl-guide-quic-server-block.7", + "doc/man/man7/ossl-guide-quic-server-non-block.7", + "doc/man/man7/ossl-guide-tls-client-block.7", + "doc/man/man7/ossl-guide-tls-client-non-block.7", + "doc/man/man7/ossl-guide-tls-introduction.7", + "doc/man/man7/ossl-guide-tls-server-block.7", "doc/man/man7/ossl_store-file.7", "doc/man/man7/ossl_store.7", "doc/man/man7/passphrase-encoding.7", @@ -20203,10 +23543,10 @@ our %unified_info = ( "doc/man/man7/provider-object.7", "doc/man/man7/provider-rand.7", "doc/man/man7/provider-signature.7", + "doc/man/man7/provider-skeymgmt.7", "doc/man/man7/provider-storemgmt.7", "doc/man/man7/provider.7", "doc/man/man7/proxy-certificates.7", - "doc/man/man7/ssl.7", "doc/man/man7/x509.7" ] }, @@ -20218,6 +23558,7 @@ our %unified_info = ( ], "programs" => [ "apps/openssl", + "fuzz/acert-test", "fuzz/asn1-test", "fuzz/asn1parse-test", "fuzz/bignum-test", @@ -20228,7 +23569,24 @@ our %unified_info = ( "fuzz/conf-test", "fuzz/crl-test", "fuzz/ct-test", + "fuzz/decoder-test", + "fuzz/dtlsclient-test", + "fuzz/dtlsserver-test", + "fuzz/hashtable-test", + "fuzz/ml-dsa-test", + "fuzz/ml-kem-test", + "fuzz/pem-test", + "fuzz/provider-test", + "fuzz/punycode-test", + "fuzz/quic-client-test", + "fuzz/quic-lcidm-test", + "fuzz/quic-rcidm-test", + "fuzz/quic-server-test", + "fuzz/quic-srtm-test", "fuzz/server-test", + "fuzz/slh-dsa-test", + "fuzz/smime-test", + "fuzz/v3name-test", "fuzz/x509-test", "test/aborttest", "test/acvp_test", @@ -20246,21 +23604,28 @@ our %unified_info = ( "test/asynctest", "test/bad_dtls_test", "test/bftest", + "test/bio_addr_test", + "test/bio_base64_test", "test/bio_callback_test", "test/bio_core_test", + "test/bio_dgram_test", "test/bio_enc_test", "test/bio_memleak_test", + "test/bio_meth_test", "test/bio_prefix_text", "test/bio_pw_callback_test", "test/bio_readbuffer_test", + "test/bio_tfo_test", "test/bioprinttest", "test/bn_internal_test", "test/bntest", + "test/build_wincrypt_test", "test/buildtest_c_aes", "test/buildtest_c_async", "test/buildtest_c_blowfish", "test/buildtest_c_bn", "test/buildtest_c_buffer", + "test/buildtest_c_byteorder", "test/buildtest_c_camellia", "test/buildtest_c_cast", "test/buildtest_c_cmac", @@ -20269,7 +23634,6 @@ our %unified_info = ( "test/buildtest_c_conftypes", "test/buildtest_c_core", "test/buildtest_c_core_dispatch", - "test/buildtest_c_core_names", "test/buildtest_c_core_object", "test/buildtest_c_cryptoerr_legacy", "test/buildtest_c_decoder", @@ -20278,6 +23642,7 @@ our %unified_info = ( "test/buildtest_c_dsa", "test/buildtest_c_dtls1", "test/buildtest_c_e_os2", + "test/buildtest_c_e_ostime", "test/buildtest_c_ebcdic", "test/buildtest_c_ec", "test/buildtest_c_ecdh", @@ -20287,13 +23652,16 @@ our %unified_info = ( "test/buildtest_c_evp", "test/buildtest_c_fips_names", "test/buildtest_c_hmac", + "test/buildtest_c_hpke", "test/buildtest_c_http", "test/buildtest_c_idea", + "test/buildtest_c_indicator", "test/buildtest_c_kdf", "test/buildtest_c_macros", "test/buildtest_c_md4", "test/buildtest_c_md5", "test/buildtest_c_mdc2", + "test/buildtest_c_ml_kem", "test/buildtest_c_modes", "test/buildtest_c_obj_mac", "test/buildtest_c_objects", @@ -20304,6 +23672,7 @@ our %unified_info = ( "test/buildtest_c_pem2", "test/buildtest_c_prov_ssl", "test/buildtest_c_provider", + "test/buildtest_c_quic", "test/buildtest_c_rand", "test/buildtest_c_rc2", "test/buildtest_c_rc4", @@ -20318,11 +23687,14 @@ our %unified_info = ( "test/buildtest_c_stack", "test/buildtest_c_store", "test/buildtest_c_symhacks", + "test/buildtest_c_thread", "test/buildtest_c_tls1", "test/buildtest_c_ts", "test/buildtest_c_txt_db", "test/buildtest_c_types", "test/buildtest_c_whrlpool", + "test/byteorder_test", + "test/ca_internals_test", "test/casttest", "test/chacha_internal_test", "test/cipher_overhead_test", @@ -20351,6 +23723,7 @@ our %unified_info = ( "test/curve448_internal_test", "test/d2i_test", "test/danetest", + "test/decoder_propq_test", "test/defltfips_test", "test/destest", "test/dhtest", @@ -20375,9 +23748,12 @@ our %unified_info = ( "test/evp_kdf_test", "test/evp_libctx_test", "test/evp_pkey_ctx_new_from_name", + "test/evp_pkey_dhkem_test", "test/evp_pkey_dparams_test", "test/evp_pkey_provided_test", + "test/evp_skey_test", "test/evp_test", + "test/evp_xof_test", "test/exdatatest", "test/exptest", "test/ext_internal_test", @@ -20387,21 +23763,29 @@ our %unified_info = ( "test/gmdifftest", "test/hexstr_test", "test/hmactest", + "test/hpke_test", "test/http_test", "test/ideatest", "test/igetest", + "test/json_test", "test/keymgmt_internal_test", "test/lhash_test", + "test/list_test", "test/localetest", "test/mdc2_internal_test", "test/mdc2test", + "test/membio_test", "test/memleaktest", + "test/ml_dsa_test", + "test/ml_kem_evp_extra_test", + "test/ml_kem_internal_test", "test/modes_internal_test", "test/namemap_internal_test", "test/nodefltctxtest", "test/ocspapitest", "test/ossl_store_test", "test/packettest", + "test/pairwise_fail_test", "test/param_build_test", "test/params_api_test", "test/params_conversion_test", @@ -20410,36 +23794,65 @@ our %unified_info = ( "test/pbetest", "test/pem_read_depr_test", "test/pemtest", + "test/pkcs12_api_test", "test/pkcs12_format_test", "test/pkcs7_test", "test/pkey_meth_kdf_test", "test/pkey_meth_test", "test/poly1305_internal_test", + "test/priority_queue_test", "test/property_test", "test/prov_config_test", "test/provfetchtest", + "test/provider_default_search_path_test", "test/provider_fallback_test", "test/provider_internal_test", "test/provider_pkey_test", "test/provider_status_test", "test/provider_test", "test/punycode_test", + "test/quic_ackm_test", + "test/quic_cc_test", + "test/quic_cfq_test", + "test/quic_client_test", + "test/quic_fc_test", + "test/quic_fifd_test", + "test/quic_lcidm_test", + "test/quic_multistream_test", + "test/quic_newcid_test", + "test/quic_qlog_test", + "test/quic_radix_test", + "test/quic_rcidm_test", + "test/quic_record_test", + "test/quic_srt_gen_test", + "test/quic_srtm_test", + "test/quic_stream_test", + "test/quic_tserver_test", + "test/quic_txp_test", + "test/quic_txpim_test", + "test/quic_wire_test", + "test/quicapitest", + "test/quicfaultstest", "test/rand_status_test", "test/rand_test", "test/rc2test", "test/rc4test", "test/rc5test", - "test/rdrand_sanitytest", + "test/rdcpu_sanitytest", "test/recordlentest", + "test/rpktest", "test/rsa_complex", "test/rsa_mp_test", "test/rsa_sp800_56b_test", "test/rsa_test", + "test/rsa_x931_test", + "test/safe_math_test", "test/sanitytest", "test/secmemtest", "test/servername_test", "test/sha_test", "test/siphash_internal_test", + "test/slh_dsa_test", "test/sm2_internal_test", "test/sm3_internal_test", "test/sm4_internal_test", @@ -20447,6 +23860,7 @@ our %unified_info = ( "test/srptest", "test/ssl_cert_table_internal_test", "test/ssl_ctx_test", + "test/ssl_handshake_rtt_test", "test/ssl_old_test", "test/ssl_test", "test/ssl_test_ctx_test", @@ -20454,13 +23868,17 @@ our %unified_info = ( "test/sslbuffertest", "test/sslcorrupttest", "test/stack_test", + "test/strtoultest", "test/sysdefaulttest", "test/test_test", + "test/threadpool_test", "test/threadstest", "test/threadstest_fips", "test/time_offset_test", + "test/time_test", "test/tls13ccstest", "test/tls13encryptiontest", + "test/tls13groupselection_test", "test/trace_api_test", "test/uitest", "test/upcallstest", @@ -20470,9 +23888,13 @@ our %unified_info = ( "test/verify_extra_test", "test/versions", "test/wpackettest", + "test/x509_acert_test", "test/x509_check_cert_pkey_test", "test/x509_dup_cert_test", "test/x509_internal_test", + "test/x509_load_cert_file_test", + "test/x509_req_test", + "test/x509_test", "test/x509_time_test", "test/x509aux" ], @@ -20488,6 +23910,33 @@ our %unified_info = ( "apps/CA.pl" => [ "apps/CA.pl.in" ], + "apps/ca_internals_test-bin-ca.o" => [ + "apps/ca.c" + ], + "apps/lib/ca_internals_test-bin-app_libctx.o" => [ + "apps/lib/app_libctx.c" + ], + "apps/lib/ca_internals_test-bin-app_provider.o" => [ + "apps/lib/app_provider.c" + ], + "apps/lib/ca_internals_test-bin-app_rand.o" => [ + "apps/lib/app_rand.c" + ], + "apps/lib/ca_internals_test-bin-app_x509.o" => [ + "apps/lib/app_x509.c" + ], + "apps/lib/ca_internals_test-bin-apps.o" => [ + "apps/lib/apps.c" + ], + "apps/lib/ca_internals_test-bin-apps_ui.o" => [ + "apps/lib/apps_ui.c" + ], + "apps/lib/ca_internals_test-bin-engine.o" => [ + "apps/lib/engine.c" + ], + "apps/lib/ca_internals_test-bin-fmt.o" => [ + "apps/lib/fmt.c" + ], "apps/lib/cmp_client_test-bin-cmp_mock_srv.o" => [ "apps/lib/cmp_mock_srv.c" ], @@ -20509,6 +23958,9 @@ our %unified_info = ( "apps/lib/libapps-lib-apps.o" => [ "apps/lib/apps.c" ], + "apps/lib/libapps-lib-apps_opt_printf.o" => [ + "apps/lib/apps_opt_printf.c" + ], "apps/lib/libapps-lib-apps_ui.o" => [ "apps/lib/apps_ui.c" ], @@ -20527,6 +23979,9 @@ our %unified_info = ( "apps/lib/libapps-lib-http_server.o" => [ "apps/lib/http_server.c" ], + "apps/lib/libapps-lib-log.o" => [ + "apps/lib/log.c" + ], "apps/lib/libapps-lib-names.o" => [ "apps/lib/names.c" ], @@ -20558,12 +24013,14 @@ our %unified_info = ( "apps/lib/libapps-lib-app_rand.o", "apps/lib/libapps-lib-app_x509.o", "apps/lib/libapps-lib-apps.o", + "apps/lib/libapps-lib-apps_opt_printf.o", "apps/lib/libapps-lib-apps_ui.o", "apps/lib/libapps-lib-columns.o", "apps/lib/libapps-lib-engine.o", "apps/lib/libapps-lib-engine_loader.o", "apps/lib/libapps-lib-fmt.o", "apps/lib/libapps-lib-http_server.o", + "apps/lib/libapps-lib-log.o", "apps/lib/libapps-lib-names.o", "apps/lib/libapps-lib-opt.o", "apps/lib/libapps-lib-s_cb.o", @@ -20617,6 +24074,7 @@ our %unified_info = ( "apps/openssl-bin-s_server.o", "apps/openssl-bin-s_time.o", "apps/openssl-bin-sess_id.o", + "apps/openssl-bin-skeyutl.o", "apps/openssl-bin-smime.o", "apps/openssl-bin-speed.o", "apps/openssl-bin-spkac.o", @@ -20762,6 +24220,9 @@ our %unified_info = ( "apps/openssl-bin-sess_id.o" => [ "apps/sess_id.c" ], + "apps/openssl-bin-skeyutl.o" => [ + "apps/skeyutl.c" + ], "apps/openssl-bin-smime.o" => [ "apps/smime.c" ], @@ -20825,6 +24286,9 @@ our %unified_info = ( "crypto/aes/libcrypto-lib-aesni-x86_64.o" => [ "crypto/aes/aesni-x86_64.s" ], + "crypto/aes/libcrypto-lib-aesni-xts-avx512.o" => [ + "crypto/aes/aesni-xts-avx512.s" + ], "crypto/aes/libcrypto-lib-bsaes-x86_64.o" => [ "crypto/aes/bsaes-x86_64.s" ], @@ -20852,6 +24316,9 @@ our %unified_info = ( "crypto/aes/libfips-lib-aesni-x86_64.o" => [ "crypto/aes/aesni-x86_64.s" ], + "crypto/aes/libfips-lib-aesni-xts-avx512.o" => [ + "crypto/aes/aesni-xts-avx512.s" + ], "crypto/aes/libfips-lib-bsaes-x86_64.o" => [ "crypto/aes/bsaes-x86_64.s" ], @@ -20861,6 +24328,12 @@ our %unified_info = ( "crypto/aria/libcrypto-lib-aria.o" => [ "crypto/aria/aria.c" ], + "crypto/asn1/asn1_time_test-bin-a_time.o" => [ + "crypto/asn1/a_time.c" + ], + "crypto/asn1/ca_internals_test-bin-a_time.o" => [ + "crypto/asn1/a_time.c" + ], "crypto/asn1/libcrypto-lib-a_bitstr.o" => [ "crypto/asn1/a_bitstr.c" ], @@ -21053,6 +24526,9 @@ our %unified_info = ( "crypto/asn1/libcrypto-lib-x_val.o" => [ "crypto/asn1/x_val.c" ], + "crypto/asn1_time_test-bin-ctype.o" => [ + "crypto/ctype.c" + ], "crypto/async/arch/libcrypto-lib-async_null.o" => [ "crypto/async/arch/async_null.c" ], @@ -21146,6 +24622,9 @@ our %unified_info = ( "crypto/bio/libcrypto-lib-bss_dgram.o" => [ "crypto/bio/bss_dgram.c" ], + "crypto/bio/libcrypto-lib-bss_dgram_pair.o" => [ + "crypto/bio/bss_dgram_pair.c" + ], "crypto/bio/libcrypto-lib-bss_fd.o" => [ "crypto/bio/bss_fd.c" ], @@ -21269,12 +24748,27 @@ our %unified_info = ( "crypto/bn/libcrypto-lib-bn_x931p.o" => [ "crypto/bn/bn_x931p.c" ], + "crypto/bn/libcrypto-lib-rsaz-2k-avx512.o" => [ + "crypto/bn/rsaz-2k-avx512.s" + ], + "crypto/bn/libcrypto-lib-rsaz-2k-avxifma.o" => [ + "crypto/bn/rsaz-2k-avxifma.s" + ], + "crypto/bn/libcrypto-lib-rsaz-3k-avx512.o" => [ + "crypto/bn/rsaz-3k-avx512.s" + ], + "crypto/bn/libcrypto-lib-rsaz-3k-avxifma.o" => [ + "crypto/bn/rsaz-3k-avxifma.s" + ], + "crypto/bn/libcrypto-lib-rsaz-4k-avx512.o" => [ + "crypto/bn/rsaz-4k-avx512.s" + ], + "crypto/bn/libcrypto-lib-rsaz-4k-avxifma.o" => [ + "crypto/bn/rsaz-4k-avxifma.s" + ], "crypto/bn/libcrypto-lib-rsaz-avx2.o" => [ "crypto/bn/rsaz-avx2.s" ], - "crypto/bn/libcrypto-lib-rsaz-avx512.o" => [ - "crypto/bn/rsaz-avx512.s" - ], "crypto/bn/libcrypto-lib-rsaz-x86_64.o" => [ "crypto/bn/rsaz-x86_64.s" ], @@ -21374,12 +24868,27 @@ our %unified_info = ( "crypto/bn/libfips-lib-bn_word.o" => [ "crypto/bn/bn_word.c" ], + "crypto/bn/libfips-lib-rsaz-2k-avx512.o" => [ + "crypto/bn/rsaz-2k-avx512.s" + ], + "crypto/bn/libfips-lib-rsaz-2k-avxifma.o" => [ + "crypto/bn/rsaz-2k-avxifma.s" + ], + "crypto/bn/libfips-lib-rsaz-3k-avx512.o" => [ + "crypto/bn/rsaz-3k-avx512.s" + ], + "crypto/bn/libfips-lib-rsaz-3k-avxifma.o" => [ + "crypto/bn/rsaz-3k-avxifma.s" + ], + "crypto/bn/libfips-lib-rsaz-4k-avx512.o" => [ + "crypto/bn/rsaz-4k-avx512.s" + ], + "crypto/bn/libfips-lib-rsaz-4k-avxifma.o" => [ + "crypto/bn/rsaz-4k-avxifma.s" + ], "crypto/bn/libfips-lib-rsaz-avx2.o" => [ "crypto/bn/rsaz-avx2.s" ], - "crypto/bn/libfips-lib-rsaz-avx512.o" => [ - "crypto/bn/rsaz-avx512.s" - ], "crypto/bn/libfips-lib-rsaz-x86_64.o" => [ "crypto/bn/rsaz-x86_64.s" ], @@ -21407,6 +24916,9 @@ our %unified_info = ( "crypto/buffer/libfips-lib-buffer.o" => [ "crypto/buffer/buffer.c" ], + "crypto/ca_internals_test-bin-ctype.o" => [ + "crypto/ctype.c" + ], "crypto/camellia/libcrypto-lib-cmll-x86_64.o" => [ "crypto/camellia/cmll-x86_64.s" ], @@ -21461,6 +24973,9 @@ our %unified_info = ( "crypto/cmp/libcrypto-lib-cmp_err.o" => [ "crypto/cmp/cmp_err.c" ], + "crypto/cmp/libcrypto-lib-cmp_genm.o" => [ + "crypto/cmp/cmp_genm.c" + ], "crypto/cmp/libcrypto-lib-cmp_hdr.o" => [ "crypto/cmp/cmp_hdr.c" ], @@ -22154,9 +25669,15 @@ our %unified_info = ( "crypto/err/libcrypto-lib-err_blocks.o" => [ "crypto/err/err_blocks.c" ], + "crypto/err/libcrypto-lib-err_mark.o" => [ + "crypto/err/err_mark.c" + ], "crypto/err/libcrypto-lib-err_prn.o" => [ "crypto/err/err_prn.c" ], + "crypto/err/libcrypto-lib-err_save.o" => [ + "crypto/err/err_save.c" + ], "crypto/ess/libcrypto-lib-ess_asn1.o" => [ "crypto/ess/ess_asn1.c" ], @@ -22403,9 +25924,15 @@ our %unified_info = ( "crypto/evp/libcrypto-lib-pmeth_lib.o" => [ "crypto/evp/pmeth_lib.c" ], + "crypto/evp/libcrypto-lib-s_lib.o" => [ + "crypto/evp/s_lib.c" + ], "crypto/evp/libcrypto-lib-signature.o" => [ "crypto/evp/signature.c" ], + "crypto/evp/libcrypto-lib-skeymgmt_meth.o" => [ + "crypto/evp/skeymgmt_meth.c" + ], "crypto/evp/libfips-lib-asymcipher.o" => [ "crypto/evp/asymcipher.c" ], @@ -22451,9 +25978,6 @@ our %unified_info = ( "crypto/evp/libfips-lib-keymgmt_meth.o" => [ "crypto/evp/keymgmt_meth.c" ], - "crypto/evp/libfips-lib-m_sigver.o" => [ - "crypto/evp/m_sigver.c" - ], "crypto/evp/libfips-lib-mac_lib.o" => [ "crypto/evp/mac_lib.c" ], @@ -22472,9 +25996,15 @@ our %unified_info = ( "crypto/evp/libfips-lib-pmeth_lib.o" => [ "crypto/evp/pmeth_lib.c" ], + "crypto/evp/libfips-lib-s_lib.o" => [ + "crypto/evp/s_lib.c" + ], "crypto/evp/libfips-lib-signature.o" => [ "crypto/evp/signature.c" ], + "crypto/evp/libfips-lib-skeymgmt_meth.o" => [ + "crypto/evp/skeymgmt_meth.c" + ], "crypto/ffc/libcrypto-lib-ffc_backend.o" => [ "crypto/ffc/ffc_backend.c" ], @@ -22517,12 +26047,30 @@ our %unified_info = ( "crypto/ffc/libfips-lib-ffc_params_validate.o" => [ "crypto/ffc/ffc_params_validate.c" ], + "crypto/hashtable/libcrypto-lib-hashfunc.o" => [ + "crypto/hashtable/hashfunc.c" + ], + "crypto/hashtable/libcrypto-lib-hashtable.o" => [ + "crypto/hashtable/hashtable.c" + ], + "crypto/hashtable/libfips-lib-hashfunc.o" => [ + "crypto/hashtable/hashfunc.c" + ], + "crypto/hashtable/libfips-lib-hashtable.o" => [ + "crypto/hashtable/hashtable.c" + ], "crypto/hmac/libcrypto-lib-hmac.o" => [ "crypto/hmac/hmac.c" ], "crypto/hmac/libfips-lib-hmac.o" => [ "crypto/hmac/hmac.c" ], + "crypto/hpke/libcrypto-lib-hpke.o" => [ + "crypto/hpke/hpke.c" + ], + "crypto/hpke/libcrypto-lib-hpke_util.o" => [ + "crypto/hpke/hpke_util.c" + ], "crypto/http/libcrypto-lib-http_client.o" => [ "crypto/http/http_client.c" ], @@ -22565,6 +26113,9 @@ our %unified_info = ( "crypto/libcrypto-lib-bsearch.o" => [ "crypto/bsearch.c" ], + "crypto/libcrypto-lib-comp_methods.o" => [ + "crypto/comp_methods.c" + ], "crypto/libcrypto-lib-context.o" => [ "crypto/context.c" ], @@ -22592,9 +26143,15 @@ our %unified_info = ( "crypto/libcrypto-lib-cversion.o" => [ "crypto/cversion.c" ], + "crypto/libcrypto-lib-defaults.o" => [ + "crypto/defaults.c" + ], "crypto/libcrypto-lib-der_writer.o" => [ "crypto/der_writer.c" ], + "crypto/libcrypto-lib-deterministic_nonce.o" => [ + "crypto/deterministic_nonce.c" + ], "crypto/libcrypto-lib-ebcdic.o" => [ "crypto/ebcdic.c" ], @@ -22604,6 +26161,9 @@ our %unified_info = ( "crypto/libcrypto-lib-getenv.o" => [ "crypto/getenv.c" ], + "crypto/libcrypto-lib-indicator_core.o" => [ + "crypto/indicator_core.c" + ], "crypto/libcrypto-lib-info.o" => [ "crypto/info.c" ], @@ -22652,6 +26212,9 @@ our %unified_info = ( "crypto/libcrypto-lib-params_from_text.o" => [ "crypto/params_from_text.c" ], + "crypto/libcrypto-lib-params_idx.o" => [ + "crypto/params_idx.c" + ], "crypto/libcrypto-lib-passphrase.o" => [ "crypto/passphrase.c" ], @@ -22673,12 +26236,21 @@ our %unified_info = ( "crypto/libcrypto-lib-punycode.o" => [ "crypto/punycode.c" ], + "crypto/libcrypto-lib-quic_vlint.o" => [ + "crypto/quic_vlint.c" + ], "crypto/libcrypto-lib-self_test_core.o" => [ "crypto/self_test_core.c" ], + "crypto/libcrypto-lib-sleep.o" => [ + "crypto/sleep.c" + ], "crypto/libcrypto-lib-sparse_array.o" => [ "crypto/sparse_array.c" ], + "crypto/libcrypto-lib-ssl_err.o" => [ + "crypto/ssl_err.c" + ], "crypto/libcrypto-lib-threads_lib.o" => [ "crypto/threads_lib.c" ], @@ -22691,6 +26263,9 @@ our %unified_info = ( "crypto/libcrypto-lib-threads_win.o" => [ "crypto/threads_win.c" ], + "crypto/libcrypto-lib-time.o" => [ + "crypto/time.c" + ], "crypto/libcrypto-lib-trace.o" => [ "crypto/trace.c" ], @@ -22757,6 +26332,9 @@ our %unified_info = ( "crypto/libfips-lib-params_from_text.o" => [ "crypto/params_from_text.c" ], + "crypto/libfips-lib-params_idx.o" => [ + "crypto/params_idx.c" + ], "crypto/libfips-lib-provider_core.o" => [ "crypto/provider_core.c" ], @@ -22781,6 +26359,9 @@ our %unified_info = ( "crypto/libfips-lib-threads_win.o" => [ "crypto/threads_win.c" ], + "crypto/libfips-lib-time.o" => [ + "crypto/time.c" + ], "crypto/libfips-lib-x86_64cpuid.o" => [ "crypto/x86_64cpuid.s" ], @@ -22808,6 +26389,63 @@ our %unified_info = ( "crypto/mdc2/libcrypto-lib-mdc2dgst.o" => [ "crypto/mdc2/mdc2dgst.c" ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_encoders.o" => [ + "crypto/ml_dsa/ml_dsa_encoders.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key.o" => [ + "crypto/ml_dsa/ml_dsa_key.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key_compress.o" => [ + "crypto/ml_dsa/ml_dsa_key_compress.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_matrix.o" => [ + "crypto/ml_dsa/ml_dsa_matrix.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_ntt.o" => [ + "crypto/ml_dsa/ml_dsa_ntt.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_params.o" => [ + "crypto/ml_dsa/ml_dsa_params.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sample.o" => [ + "crypto/ml_dsa/ml_dsa_sample.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sign.o" => [ + "crypto/ml_dsa/ml_dsa_sign.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_encoders.o" => [ + "crypto/ml_dsa/ml_dsa_encoders.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_key.o" => [ + "crypto/ml_dsa/ml_dsa_key.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_key_compress.o" => [ + "crypto/ml_dsa/ml_dsa_key_compress.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_matrix.o" => [ + "crypto/ml_dsa/ml_dsa_matrix.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_ntt.o" => [ + "crypto/ml_dsa/ml_dsa_ntt.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_params.o" => [ + "crypto/ml_dsa/ml_dsa_params.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_sample.o" => [ + "crypto/ml_dsa/ml_dsa_sample.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_sign.o" => [ + "crypto/ml_dsa/ml_dsa_sign.c" + ], + "crypto/ml_kem/libcrypto-lib-ml_kem.o" => [ + "crypto/ml_kem/ml_kem.c" + ], + "crypto/ml_kem/libfips-lib-ml_kem.o" => [ + "crypto/ml_kem/ml_kem.c" + ], + "crypto/modes/libcrypto-lib-aes-gcm-avx512.o" => [ + "crypto/modes/aes-gcm-avx512.s" + ], "crypto/modes/libcrypto-lib-aesni-gcm-x86_64.o" => [ "crypto/modes/aesni-gcm-x86_64.s" ], @@ -22847,6 +26485,12 @@ our %unified_info = ( "crypto/modes/libcrypto-lib-xts128.o" => [ "crypto/modes/xts128.c" ], + "crypto/modes/libcrypto-lib-xts128gb.o" => [ + "crypto/modes/xts128gb.c" + ], + "crypto/modes/libfips-lib-aes-gcm-avx512.o" => [ + "crypto/modes/aes-gcm-avx512.s" + ], "crypto/modes/libfips-lib-aesni-gcm-x86_64.o" => [ "crypto/modes/aesni-gcm-x86_64.s" ], @@ -22877,6 +26521,9 @@ our %unified_info = ( "crypto/modes/libfips-lib-xts128.o" => [ "crypto/modes/xts128.c" ], + "crypto/modes/libfips-lib-xts128gb.o" => [ + "crypto/modes/xts128gb.c" + ], "crypto/objects/libcrypto-lib-o_names.o" => [ "crypto/objects/o_names.c" ], @@ -22922,6 +26569,9 @@ our %unified_info = ( "crypto/ocsp/libcrypto-lib-v3_ocsp.o" => [ "crypto/ocsp/v3_ocsp.c" ], + "crypto/packettest-bin-quic_vlint.o" => [ + "crypto/quic_vlint.c" + ], "crypto/pem/libcrypto-lib-pem_all.o" => [ "crypto/pem/pem_all.c" ], @@ -23084,6 +26734,9 @@ our %unified_info = ( "crypto/rand/libcrypto-lib-rand_pool.o" => [ "crypto/rand/rand_pool.c" ], + "crypto/rand/libcrypto-lib-rand_uniform.o" => [ + "crypto/rand/rand_uniform.c" + ], "crypto/rand/libcrypto-lib-randfile.o" => [ "crypto/rand/randfile.c" ], @@ -23327,6 +26980,66 @@ our %unified_info = ( "crypto/siphash/libcrypto-lib-siphash.o" => [ "crypto/siphash/siphash.c" ], + "crypto/slh_dsa/libcrypto-lib-slh_adrs.o" => [ + "crypto/slh_dsa/slh_adrs.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_dsa.o" => [ + "crypto/slh_dsa/slh_dsa.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_dsa_hash_ctx.o" => [ + "crypto/slh_dsa/slh_dsa_hash_ctx.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_dsa_key.o" => [ + "crypto/slh_dsa/slh_dsa_key.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_fors.o" => [ + "crypto/slh_dsa/slh_fors.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_hash.o" => [ + "crypto/slh_dsa/slh_hash.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_hypertree.o" => [ + "crypto/slh_dsa/slh_hypertree.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_params.o" => [ + "crypto/slh_dsa/slh_params.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_wots.o" => [ + "crypto/slh_dsa/slh_wots.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_xmss.o" => [ + "crypto/slh_dsa/slh_xmss.c" + ], + "crypto/slh_dsa/libfips-lib-slh_adrs.o" => [ + "crypto/slh_dsa/slh_adrs.c" + ], + "crypto/slh_dsa/libfips-lib-slh_dsa.o" => [ + "crypto/slh_dsa/slh_dsa.c" + ], + "crypto/slh_dsa/libfips-lib-slh_dsa_hash_ctx.o" => [ + "crypto/slh_dsa/slh_dsa_hash_ctx.c" + ], + "crypto/slh_dsa/libfips-lib-slh_dsa_key.o" => [ + "crypto/slh_dsa/slh_dsa_key.c" + ], + "crypto/slh_dsa/libfips-lib-slh_fors.o" => [ + "crypto/slh_dsa/slh_fors.c" + ], + "crypto/slh_dsa/libfips-lib-slh_hash.o" => [ + "crypto/slh_dsa/slh_hash.c" + ], + "crypto/slh_dsa/libfips-lib-slh_hypertree.o" => [ + "crypto/slh_dsa/slh_hypertree.c" + ], + "crypto/slh_dsa/libfips-lib-slh_params.o" => [ + "crypto/slh_dsa/slh_params.c" + ], + "crypto/slh_dsa/libfips-lib-slh_wots.o" => [ + "crypto/slh_dsa/slh_wots.c" + ], + "crypto/slh_dsa/libfips-lib-slh_xmss.o" => [ + "crypto/slh_dsa/slh_xmss.c" + ], "crypto/sm2/libcrypto-lib-sm2_crypt.o" => [ "crypto/sm2/sm2_crypt.c" ], @@ -23381,6 +27094,42 @@ our %unified_info = ( "crypto/store/libcrypto-lib-store_strings.o" => [ "crypto/store/store_strings.c" ], + "crypto/thread/arch/libcrypto-lib-thread_none.o" => [ + "crypto/thread/arch/thread_none.c" + ], + "crypto/thread/arch/libcrypto-lib-thread_posix.o" => [ + "crypto/thread/arch/thread_posix.c" + ], + "crypto/thread/arch/libcrypto-lib-thread_win.o" => [ + "crypto/thread/arch/thread_win.c" + ], + "crypto/thread/arch/libfips-lib-thread_none.o" => [ + "crypto/thread/arch/thread_none.c" + ], + "crypto/thread/arch/libfips-lib-thread_posix.o" => [ + "crypto/thread/arch/thread_posix.c" + ], + "crypto/thread/arch/libfips-lib-thread_win.o" => [ + "crypto/thread/arch/thread_win.c" + ], + "crypto/thread/libcrypto-lib-api.o" => [ + "crypto/thread/api.c" + ], + "crypto/thread/libcrypto-lib-arch.o" => [ + "crypto/thread/arch.c" + ], + "crypto/thread/libcrypto-lib-internal.o" => [ + "crypto/thread/internal.c" + ], + "crypto/thread/libfips-lib-api.o" => [ + "crypto/thread/api.c" + ], + "crypto/thread/libfips-lib-arch.o" => [ + "crypto/thread/arch.c" + ], + "crypto/thread/libfips-lib-internal.o" => [ + "crypto/thread/internal.c" + ], "crypto/ts/libcrypto-lib-ts_asn1.o" => [ "crypto/ts/ts_asn1.c" ], @@ -23465,6 +27214,9 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-pcy_tree.o" => [ "crypto/x509/pcy_tree.c" ], + "crypto/x509/libcrypto-lib-t_acert.o" => [ + "crypto/x509/t_acert.c" + ], "crypto/x509/libcrypto-lib-t_crl.o" => [ "crypto/x509/t_crl.c" ], @@ -23474,6 +27226,12 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-t_x509.o" => [ "crypto/x509/t_x509.c" ], + "crypto/x509/libcrypto-lib-v3_aaa.o" => [ + "crypto/x509/v3_aaa.c" + ], + "crypto/x509/libcrypto-lib-v3_ac_tgt.o" => [ + "crypto/x509/v3_ac_tgt.c" + ], "crypto/x509/libcrypto-lib-v3_addr.o" => [ "crypto/x509/v3_addr.c" ], @@ -23489,6 +27247,21 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_asid.o" => [ "crypto/x509/v3_asid.c" ], + "crypto/x509/libcrypto-lib-v3_attrdesc.o" => [ + "crypto/x509/v3_attrdesc.c" + ], + "crypto/x509/libcrypto-lib-v3_attrmap.o" => [ + "crypto/x509/v3_attrmap.c" + ], + "crypto/x509/libcrypto-lib-v3_audit_id.o" => [ + "crypto/x509/v3_audit_id.c" + ], + "crypto/x509/libcrypto-lib-v3_authattid.o" => [ + "crypto/x509/v3_authattid.c" + ], + "crypto/x509/libcrypto-lib-v3_battcons.o" => [ + "crypto/x509/v3_battcons.c" + ], "crypto/x509/libcrypto-lib-v3_bcons.o" => [ "crypto/x509/v3_bcons.c" ], @@ -23513,15 +27286,24 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_genn.o" => [ "crypto/x509/v3_genn.c" ], + "crypto/x509/libcrypto-lib-v3_group_ac.o" => [ + "crypto/x509/v3_group_ac.c" + ], "crypto/x509/libcrypto-lib-v3_ia5.o" => [ "crypto/x509/v3_ia5.c" ], + "crypto/x509/libcrypto-lib-v3_ind_iss.o" => [ + "crypto/x509/v3_ind_iss.c" + ], "crypto/x509/libcrypto-lib-v3_info.o" => [ "crypto/x509/v3_info.c" ], "crypto/x509/libcrypto-lib-v3_int.o" => [ "crypto/x509/v3_int.c" ], + "crypto/x509/libcrypto-lib-v3_iobo.o" => [ + "crypto/x509/v3_iobo.c" + ], "crypto/x509/libcrypto-lib-v3_ist.o" => [ "crypto/x509/v3_ist.c" ], @@ -23531,6 +27313,12 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_ncons.o" => [ "crypto/x509/v3_ncons.c" ], + "crypto/x509/libcrypto-lib-v3_no_ass.o" => [ + "crypto/x509/v3_no_ass.c" + ], + "crypto/x509/libcrypto-lib-v3_no_rev_avail.o" => [ + "crypto/x509/v3_no_rev_avail.c" + ], "crypto/x509/libcrypto-lib-v3_pci.o" => [ "crypto/x509/v3_pci.c" ], @@ -23552,18 +27340,36 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_purp.o" => [ "crypto/x509/v3_purp.c" ], + "crypto/x509/libcrypto-lib-v3_rolespec.o" => [ + "crypto/x509/v3_rolespec.c" + ], "crypto/x509/libcrypto-lib-v3_san.o" => [ "crypto/x509/v3_san.c" ], + "crypto/x509/libcrypto-lib-v3_sda.o" => [ + "crypto/x509/v3_sda.c" + ], + "crypto/x509/libcrypto-lib-v3_single_use.o" => [ + "crypto/x509/v3_single_use.c" + ], "crypto/x509/libcrypto-lib-v3_skid.o" => [ "crypto/x509/v3_skid.c" ], + "crypto/x509/libcrypto-lib-v3_soa_id.o" => [ + "crypto/x509/v3_soa_id.c" + ], "crypto/x509/libcrypto-lib-v3_sxnet.o" => [ "crypto/x509/v3_sxnet.c" ], + "crypto/x509/libcrypto-lib-v3_timespec.o" => [ + "crypto/x509/v3_timespec.c" + ], "crypto/x509/libcrypto-lib-v3_tlsf.o" => [ "crypto/x509/v3_tlsf.c" ], + "crypto/x509/libcrypto-lib-v3_usernotice.o" => [ + "crypto/x509/v3_usernotice.c" + ], "crypto/x509/libcrypto-lib-v3_utf8.o" => [ "crypto/x509/v3_utf8.c" ], @@ -23573,6 +27379,9 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3err.o" => [ "crypto/x509/v3err.c" ], + "crypto/x509/libcrypto-lib-x509_acert.o" => [ + "crypto/x509/x509_acert.c" + ], "crypto/x509/libcrypto-lib-x509_att.o" => [ "crypto/x509/x509_att.c" ], @@ -23624,6 +27433,9 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x509_vpm.o" => [ "crypto/x509/x509_vpm.c" ], + "crypto/x509/libcrypto-lib-x509aset.o" => [ + "crypto/x509/x509aset.c" + ], "crypto/x509/libcrypto-lib-x509cset.o" => [ "crypto/x509/x509cset.c" ], @@ -23651,6 +27463,9 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x_exten.o" => [ "crypto/x509/x_exten.c" ], + "crypto/x509/libcrypto-lib-x_ietfatt.o" => [ + "crypto/x509/x_ietfatt.c" + ], "crypto/x509/libcrypto-lib-x_name.o" => [ "crypto/x509/x_name.c" ], @@ -23678,6 +27493,16 @@ our %unified_info = ( "engines/libcrypto-lib-e_padlock.o" => [ "engines/e_padlock.c" ], + "fuzz/acert-test" => [ + "fuzz/acert-test-bin-acert.o", + "fuzz/acert-test-bin-test-corpus.o" + ], + "fuzz/acert-test-bin-acert.o" => [ + "fuzz/acert.c" + ], + "fuzz/acert-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], "fuzz/asn1-test" => [ "fuzz/asn1-test-bin-asn1.o", "fuzz/asn1-test-bin-fuzz_rand.o", @@ -23790,6 +27615,190 @@ our %unified_info = ( "fuzz/ct-test-bin-test-corpus.o" => [ "fuzz/test-corpus.c" ], + "fuzz/decoder-test" => [ + "fuzz/decoder-test-bin-decoder.o", + "fuzz/decoder-test-bin-fuzz_rand.o", + "fuzz/decoder-test-bin-test-corpus.o" + ], + "fuzz/decoder-test-bin-decoder.o" => [ + "fuzz/decoder.c" + ], + "fuzz/decoder-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/decoder-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/dtlsclient-test" => [ + "fuzz/dtlsclient-test-bin-dtlsclient.o", + "fuzz/dtlsclient-test-bin-fuzz_rand.o", + "fuzz/dtlsclient-test-bin-test-corpus.o" + ], + "fuzz/dtlsclient-test-bin-dtlsclient.o" => [ + "fuzz/dtlsclient.c" + ], + "fuzz/dtlsclient-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/dtlsclient-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/dtlsserver-test" => [ + "fuzz/dtlsserver-test-bin-dtlsserver.o", + "fuzz/dtlsserver-test-bin-fuzz_rand.o", + "fuzz/dtlsserver-test-bin-test-corpus.o" + ], + "fuzz/dtlsserver-test-bin-dtlsserver.o" => [ + "fuzz/dtlsserver.c" + ], + "fuzz/dtlsserver-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/dtlsserver-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/hashtable-test" => [ + "fuzz/hashtable-test-bin-fuzz_rand.o", + "fuzz/hashtable-test-bin-hashtable.o", + "fuzz/hashtable-test-bin-test-corpus.o" + ], + "fuzz/hashtable-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/hashtable-test-bin-hashtable.o" => [ + "fuzz/hashtable.c" + ], + "fuzz/hashtable-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/ml-dsa-test" => [ + "fuzz/ml-dsa-test-bin-fuzz_rand.o", + "fuzz/ml-dsa-test-bin-ml-dsa.o", + "fuzz/ml-dsa-test-bin-test-corpus.o" + ], + "fuzz/ml-dsa-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/ml-dsa-test-bin-ml-dsa.o" => [ + "fuzz/ml-dsa.c" + ], + "fuzz/ml-dsa-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/ml-kem-test" => [ + "fuzz/ml-kem-test-bin-fuzz_rand.o", + "fuzz/ml-kem-test-bin-ml-kem.o", + "fuzz/ml-kem-test-bin-test-corpus.o" + ], + "fuzz/ml-kem-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/ml-kem-test-bin-ml-kem.o" => [ + "fuzz/ml-kem.c" + ], + "fuzz/ml-kem-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/pem-test" => [ + "fuzz/pem-test-bin-pem.o", + "fuzz/pem-test-bin-test-corpus.o" + ], + "fuzz/pem-test-bin-pem.o" => [ + "fuzz/pem.c" + ], + "fuzz/pem-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/provider-test" => [ + "fuzz/provider-test-bin-provider.o", + "fuzz/provider-test-bin-test-corpus.o" + ], + "fuzz/provider-test-bin-provider.o" => [ + "fuzz/provider.c" + ], + "fuzz/provider-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/punycode-test" => [ + "fuzz/punycode-test-bin-punycode.o", + "fuzz/punycode-test-bin-test-corpus.o" + ], + "fuzz/punycode-test-bin-punycode.o" => [ + "fuzz/punycode.c" + ], + "fuzz/punycode-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-client-test" => [ + "fuzz/quic-client-test-bin-fuzz_rand.o", + "fuzz/quic-client-test-bin-quic-client.o", + "fuzz/quic-client-test-bin-test-corpus.o" + ], + "fuzz/quic-client-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-client-test-bin-quic-client.o" => [ + "fuzz/quic-client.c" + ], + "fuzz/quic-client-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-lcidm-test" => [ + "fuzz/quic-lcidm-test-bin-fuzz_rand.o", + "fuzz/quic-lcidm-test-bin-quic-lcidm.o", + "fuzz/quic-lcidm-test-bin-test-corpus.o" + ], + "fuzz/quic-lcidm-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-lcidm-test-bin-quic-lcidm.o" => [ + "fuzz/quic-lcidm.c" + ], + "fuzz/quic-lcidm-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-rcidm-test" => [ + "fuzz/quic-rcidm-test-bin-fuzz_rand.o", + "fuzz/quic-rcidm-test-bin-quic-rcidm.o", + "fuzz/quic-rcidm-test-bin-test-corpus.o" + ], + "fuzz/quic-rcidm-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-rcidm-test-bin-quic-rcidm.o" => [ + "fuzz/quic-rcidm.c" + ], + "fuzz/quic-rcidm-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-server-test" => [ + "fuzz/quic-server-test-bin-fuzz_rand.o", + "fuzz/quic-server-test-bin-quic-server.o", + "fuzz/quic-server-test-bin-test-corpus.o" + ], + "fuzz/quic-server-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-server-test-bin-quic-server.o" => [ + "fuzz/quic-server.c" + ], + "fuzz/quic-server-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-srtm-test" => [ + "fuzz/quic-srtm-test-bin-fuzz_rand.o", + "fuzz/quic-srtm-test-bin-quic-srtm.o", + "fuzz/quic-srtm-test-bin-test-corpus.o" + ], + "fuzz/quic-srtm-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-srtm-test-bin-quic-srtm.o" => [ + "fuzz/quic-srtm.c" + ], + "fuzz/quic-srtm-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], "fuzz/server-test" => [ "fuzz/server-test-bin-fuzz_rand.o", "fuzz/server-test-bin-server.o", @@ -23804,6 +27813,40 @@ our %unified_info = ( "fuzz/server-test-bin-test-corpus.o" => [ "fuzz/test-corpus.c" ], + "fuzz/slh-dsa-test" => [ + "fuzz/slh-dsa-test-bin-fuzz_rand.o", + "fuzz/slh-dsa-test-bin-slh-dsa.o", + "fuzz/slh-dsa-test-bin-test-corpus.o" + ], + "fuzz/slh-dsa-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/slh-dsa-test-bin-slh-dsa.o" => [ + "fuzz/slh-dsa.c" + ], + "fuzz/slh-dsa-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/smime-test" => [ + "fuzz/smime-test-bin-smime.o", + "fuzz/smime-test-bin-test-corpus.o" + ], + "fuzz/smime-test-bin-smime.o" => [ + "fuzz/smime.c" + ], + "fuzz/smime-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/v3name-test" => [ + "fuzz/v3name-test-bin-test-corpus.o", + "fuzz/v3name-test-bin-v3name.o" + ], + "fuzz/v3name-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/v3name-test-bin-v3name.o" => [ + "fuzz/v3name.c" + ], "fuzz/x509-test" => [ "fuzz/x509-test-bin-fuzz_rand.o", "fuzz/x509-test-bin-test-corpus.o", @@ -23830,6 +27873,7 @@ our %unified_info = ( "crypto/aes/libcrypto-lib-aesni-sha1-x86_64.o", "crypto/aes/libcrypto-lib-aesni-sha256-x86_64.o", "crypto/aes/libcrypto-lib-aesni-x86_64.o", + "crypto/aes/libcrypto-lib-aesni-xts-avx512.o", "crypto/aes/libcrypto-lib-bsaes-x86_64.o", "crypto/aes/libcrypto-lib-vpaes-x86_64.o", "crypto/aria/libcrypto-lib-aria.o", @@ -23928,6 +27972,7 @@ our %unified_info = ( "crypto/bio/libcrypto-lib-bss_conn.o", "crypto/bio/libcrypto-lib-bss_core.o", "crypto/bio/libcrypto-lib-bss_dgram.o", + "crypto/bio/libcrypto-lib-bss_dgram_pair.o", "crypto/bio/libcrypto-lib-bss_fd.o", "crypto/bio/libcrypto-lib-bss_file.o", "crypto/bio/libcrypto-lib-bss_log.o", @@ -23968,8 +28013,13 @@ our %unified_info = ( "crypto/bn/libcrypto-lib-bn_srp.o", "crypto/bn/libcrypto-lib-bn_word.o", "crypto/bn/libcrypto-lib-bn_x931p.o", + "crypto/bn/libcrypto-lib-rsaz-2k-avx512.o", + "crypto/bn/libcrypto-lib-rsaz-2k-avxifma.o", + "crypto/bn/libcrypto-lib-rsaz-3k-avx512.o", + "crypto/bn/libcrypto-lib-rsaz-3k-avxifma.o", + "crypto/bn/libcrypto-lib-rsaz-4k-avx512.o", + "crypto/bn/libcrypto-lib-rsaz-4k-avxifma.o", "crypto/bn/libcrypto-lib-rsaz-avx2.o", - "crypto/bn/libcrypto-lib-rsaz-avx512.o", "crypto/bn/libcrypto-lib-rsaz-x86_64.o", "crypto/bn/libcrypto-lib-rsaz_exp.o", "crypto/bn/libcrypto-lib-rsaz_exp_x2.o", @@ -23995,6 +28045,7 @@ our %unified_info = ( "crypto/cmp/libcrypto-lib-cmp_client.o", "crypto/cmp/libcrypto-lib-cmp_ctx.o", "crypto/cmp/libcrypto-lib-cmp_err.o", + "crypto/cmp/libcrypto-lib-cmp_genm.o", "crypto/cmp/libcrypto-lib-cmp_hdr.o", "crypto/cmp/libcrypto-lib-cmp_http.o", "crypto/cmp/libcrypto-lib-cmp_msg.o", @@ -24173,7 +28224,9 @@ our %unified_info = ( "crypto/err/libcrypto-lib-err_all.o", "crypto/err/libcrypto-lib-err_all_legacy.o", "crypto/err/libcrypto-lib-err_blocks.o", + "crypto/err/libcrypto-lib-err_mark.o", "crypto/err/libcrypto-lib-err_prn.o", + "crypto/err/libcrypto-lib-err_save.o", "crypto/ess/libcrypto-lib-ess_asn1.o", "crypto/ess/libcrypto-lib-ess_err.o", "crypto/ess/libcrypto-lib-ess_lib.o", @@ -24256,7 +28309,9 @@ our %unified_info = ( "crypto/evp/libcrypto-lib-pmeth_check.o", "crypto/evp/libcrypto-lib-pmeth_gn.o", "crypto/evp/libcrypto-lib-pmeth_lib.o", + "crypto/evp/libcrypto-lib-s_lib.o", "crypto/evp/libcrypto-lib-signature.o", + "crypto/evp/libcrypto-lib-skeymgmt_meth.o", "crypto/ffc/libcrypto-lib-ffc_backend.o", "crypto/ffc/libcrypto-lib-ffc_dh.o", "crypto/ffc/libcrypto-lib-ffc_key_generate.o", @@ -24264,7 +28319,11 @@ our %unified_info = ( "crypto/ffc/libcrypto-lib-ffc_params.o", "crypto/ffc/libcrypto-lib-ffc_params_generate.o", "crypto/ffc/libcrypto-lib-ffc_params_validate.o", + "crypto/hashtable/libcrypto-lib-hashfunc.o", + "crypto/hashtable/libcrypto-lib-hashtable.o", "crypto/hmac/libcrypto-lib-hmac.o", + "crypto/hpke/libcrypto-lib-hpke.o", + "crypto/hpke/libcrypto-lib-hpke_util.o", "crypto/http/libcrypto-lib-http_client.o", "crypto/http/libcrypto-lib-http_err.o", "crypto/http/libcrypto-lib-http_lib.o", @@ -24278,6 +28337,7 @@ our %unified_info = ( "crypto/lhash/libcrypto-lib-lhash.o", "crypto/libcrypto-lib-asn1_dsa.o", "crypto/libcrypto-lib-bsearch.o", + "crypto/libcrypto-lib-comp_methods.o", "crypto/libcrypto-lib-context.o", "crypto/libcrypto-lib-core_algorithm.o", "crypto/libcrypto-lib-core_fetch.o", @@ -24287,10 +28347,13 @@ our %unified_info = ( "crypto/libcrypto-lib-cryptlib.o", "crypto/libcrypto-lib-ctype.o", "crypto/libcrypto-lib-cversion.o", + "crypto/libcrypto-lib-defaults.o", "crypto/libcrypto-lib-der_writer.o", + "crypto/libcrypto-lib-deterministic_nonce.o", "crypto/libcrypto-lib-ebcdic.o", "crypto/libcrypto-lib-ex_data.o", "crypto/libcrypto-lib-getenv.o", + "crypto/libcrypto-lib-indicator_core.o", "crypto/libcrypto-lib-info.o", "crypto/libcrypto-lib-init.o", "crypto/libcrypto-lib-initthread.o", @@ -24307,6 +28370,7 @@ our %unified_info = ( "crypto/libcrypto-lib-params.o", "crypto/libcrypto-lib-params_dup.o", "crypto/libcrypto-lib-params_from_text.o", + "crypto/libcrypto-lib-params_idx.o", "crypto/libcrypto-lib-passphrase.o", "crypto/libcrypto-lib-provider.o", "crypto/libcrypto-lib-provider_child.o", @@ -24314,12 +28378,16 @@ our %unified_info = ( "crypto/libcrypto-lib-provider_core.o", "crypto/libcrypto-lib-provider_predefined.o", "crypto/libcrypto-lib-punycode.o", + "crypto/libcrypto-lib-quic_vlint.o", "crypto/libcrypto-lib-self_test_core.o", + "crypto/libcrypto-lib-sleep.o", "crypto/libcrypto-lib-sparse_array.o", + "crypto/libcrypto-lib-ssl_err.o", "crypto/libcrypto-lib-threads_lib.o", "crypto/libcrypto-lib-threads_none.o", "crypto/libcrypto-lib-threads_pthread.o", "crypto/libcrypto-lib-threads_win.o", + "crypto/libcrypto-lib-time.o", "crypto/libcrypto-lib-trace.o", "crypto/libcrypto-lib-uid.o", "crypto/libcrypto-lib-x86_64cpuid.o", @@ -24331,6 +28399,16 @@ our %unified_info = ( "crypto/md5/libcrypto-lib-md5_sha1.o", "crypto/mdc2/libcrypto-lib-mdc2_one.o", "crypto/mdc2/libcrypto-lib-mdc2dgst.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_encoders.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key_compress.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_matrix.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_ntt.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_params.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sample.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sign.o", + "crypto/ml_kem/libcrypto-lib-ml_kem.o", + "crypto/modes/libcrypto-lib-aes-gcm-avx512.o", "crypto/modes/libcrypto-lib-aesni-gcm-x86_64.o", "crypto/modes/libcrypto-lib-cbc128.o", "crypto/modes/libcrypto-lib-ccm128.o", @@ -24344,6 +28422,7 @@ our %unified_info = ( "crypto/modes/libcrypto-lib-siv128.o", "crypto/modes/libcrypto-lib-wrap128.o", "crypto/modes/libcrypto-lib-xts128.o", + "crypto/modes/libcrypto-lib-xts128gb.o", "crypto/objects/libcrypto-lib-o_names.o", "crypto/objects/libcrypto-lib-obj_dat.o", "crypto/objects/libcrypto-lib-obj_err.o", @@ -24408,6 +28487,7 @@ our %unified_info = ( "crypto/rand/libcrypto-lib-rand_lib.o", "crypto/rand/libcrypto-lib-rand_meth.o", "crypto/rand/libcrypto-lib-rand_pool.o", + "crypto/rand/libcrypto-lib-rand_uniform.o", "crypto/rand/libcrypto-lib-randfile.o", "crypto/rc2/libcrypto-lib-rc2_cbc.o", "crypto/rc2/libcrypto-lib-rc2_ecb.o", @@ -24461,6 +28541,16 @@ our %unified_info = ( "crypto/sha/libcrypto-lib-sha512-x86_64.o", "crypto/sha/libcrypto-lib-sha512.o", "crypto/siphash/libcrypto-lib-siphash.o", + "crypto/slh_dsa/libcrypto-lib-slh_adrs.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa_hash_ctx.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa_key.o", + "crypto/slh_dsa/libcrypto-lib-slh_fors.o", + "crypto/slh_dsa/libcrypto-lib-slh_hash.o", + "crypto/slh_dsa/libcrypto-lib-slh_hypertree.o", + "crypto/slh_dsa/libcrypto-lib-slh_params.o", + "crypto/slh_dsa/libcrypto-lib-slh_wots.o", + "crypto/slh_dsa/libcrypto-lib-slh_xmss.o", "crypto/sm2/libcrypto-lib-sm2_crypt.o", "crypto/sm2/libcrypto-lib-sm2_err.o", "crypto/sm2/libcrypto-lib-sm2_key.o", @@ -24478,6 +28568,12 @@ our %unified_info = ( "crypto/store/libcrypto-lib-store_register.o", "crypto/store/libcrypto-lib-store_result.o", "crypto/store/libcrypto-lib-store_strings.o", + "crypto/thread/arch/libcrypto-lib-thread_none.o", + "crypto/thread/arch/libcrypto-lib-thread_posix.o", + "crypto/thread/arch/libcrypto-lib-thread_win.o", + "crypto/thread/libcrypto-lib-api.o", + "crypto/thread/libcrypto-lib-arch.o", + "crypto/thread/libcrypto-lib-internal.o", "crypto/ts/libcrypto-lib-ts_asn1.o", "crypto/ts/libcrypto-lib-ts_conf.o", "crypto/ts/libcrypto-lib-ts_err.o", @@ -24506,14 +28602,22 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-pcy_map.o", "crypto/x509/libcrypto-lib-pcy_node.o", "crypto/x509/libcrypto-lib-pcy_tree.o", + "crypto/x509/libcrypto-lib-t_acert.o", "crypto/x509/libcrypto-lib-t_crl.o", "crypto/x509/libcrypto-lib-t_req.o", "crypto/x509/libcrypto-lib-t_x509.o", + "crypto/x509/libcrypto-lib-v3_aaa.o", + "crypto/x509/libcrypto-lib-v3_ac_tgt.o", "crypto/x509/libcrypto-lib-v3_addr.o", "crypto/x509/libcrypto-lib-v3_admis.o", "crypto/x509/libcrypto-lib-v3_akeya.o", "crypto/x509/libcrypto-lib-v3_akid.o", "crypto/x509/libcrypto-lib-v3_asid.o", + "crypto/x509/libcrypto-lib-v3_attrdesc.o", + "crypto/x509/libcrypto-lib-v3_attrmap.o", + "crypto/x509/libcrypto-lib-v3_audit_id.o", + "crypto/x509/libcrypto-lib-v3_authattid.o", + "crypto/x509/libcrypto-lib-v3_battcons.o", "crypto/x509/libcrypto-lib-v3_bcons.o", "crypto/x509/libcrypto-lib-v3_bitst.o", "crypto/x509/libcrypto-lib-v3_conf.o", @@ -24522,12 +28626,17 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_enum.o", "crypto/x509/libcrypto-lib-v3_extku.o", "crypto/x509/libcrypto-lib-v3_genn.o", + "crypto/x509/libcrypto-lib-v3_group_ac.o", "crypto/x509/libcrypto-lib-v3_ia5.o", + "crypto/x509/libcrypto-lib-v3_ind_iss.o", "crypto/x509/libcrypto-lib-v3_info.o", "crypto/x509/libcrypto-lib-v3_int.o", + "crypto/x509/libcrypto-lib-v3_iobo.o", "crypto/x509/libcrypto-lib-v3_ist.o", "crypto/x509/libcrypto-lib-v3_lib.o", "crypto/x509/libcrypto-lib-v3_ncons.o", + "crypto/x509/libcrypto-lib-v3_no_ass.o", + "crypto/x509/libcrypto-lib-v3_no_rev_avail.o", "crypto/x509/libcrypto-lib-v3_pci.o", "crypto/x509/libcrypto-lib-v3_pcia.o", "crypto/x509/libcrypto-lib-v3_pcons.o", @@ -24535,13 +28644,20 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_pmaps.o", "crypto/x509/libcrypto-lib-v3_prn.o", "crypto/x509/libcrypto-lib-v3_purp.o", + "crypto/x509/libcrypto-lib-v3_rolespec.o", "crypto/x509/libcrypto-lib-v3_san.o", + "crypto/x509/libcrypto-lib-v3_sda.o", + "crypto/x509/libcrypto-lib-v3_single_use.o", "crypto/x509/libcrypto-lib-v3_skid.o", + "crypto/x509/libcrypto-lib-v3_soa_id.o", "crypto/x509/libcrypto-lib-v3_sxnet.o", + "crypto/x509/libcrypto-lib-v3_timespec.o", "crypto/x509/libcrypto-lib-v3_tlsf.o", + "crypto/x509/libcrypto-lib-v3_usernotice.o", "crypto/x509/libcrypto-lib-v3_utf8.o", "crypto/x509/libcrypto-lib-v3_utl.o", "crypto/x509/libcrypto-lib-v3err.o", + "crypto/x509/libcrypto-lib-x509_acert.o", "crypto/x509/libcrypto-lib-x509_att.o", "crypto/x509/libcrypto-lib-x509_cmp.o", "crypto/x509/libcrypto-lib-x509_d2.o", @@ -24559,6 +28675,7 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x509_v3.o", "crypto/x509/libcrypto-lib-x509_vfy.o", "crypto/x509/libcrypto-lib-x509_vpm.o", + "crypto/x509/libcrypto-lib-x509aset.o", "crypto/x509/libcrypto-lib-x509cset.o", "crypto/x509/libcrypto-lib-x509name.o", "crypto/x509/libcrypto-lib-x509rset.o", @@ -24568,6 +28685,7 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x_attrib.o", "crypto/x509/libcrypto-lib-x_crl.o", "crypto/x509/libcrypto-lib-x_exten.o", + "crypto/x509/libcrypto-lib-x_ietfatt.o", "crypto/x509/libcrypto-lib-x_name.o", "crypto/x509/libcrypto-lib-x_pubkey.o", "crypto/x509/libcrypto-lib-x_req.o", @@ -24590,14 +28708,15 @@ our %unified_info = ( "ssl/libssl-lib-d1_srtp.o", "ssl/libssl-lib-methods.o", "ssl/libssl-lib-pqueue.o", + "ssl/libssl-lib-priority_queue.o", "ssl/libssl-lib-s3_enc.o", "ssl/libssl-lib-s3_lib.o", "ssl/libssl-lib-s3_msg.o", "ssl/libssl-lib-ssl_asn1.o", "ssl/libssl-lib-ssl_cert.o", + "ssl/libssl-lib-ssl_cert_comp.o", "ssl/libssl-lib-ssl_ciph.o", "ssl/libssl-lib-ssl_conf.o", - "ssl/libssl-lib-ssl_err.o", "ssl/libssl-lib-ssl_err_legacy.o", "ssl/libssl-lib-ssl_init.o", "ssl/libssl-lib-ssl_lib.o", @@ -24614,12 +28733,60 @@ our %unified_info = ( "ssl/libssl-lib-tls13_enc.o", "ssl/libssl-lib-tls_depr.o", "ssl/libssl-lib-tls_srp.o", - "ssl/record/libssl-lib-dtls1_bitmap.o", + "ssl/quic/libssl-lib-cc_newreno.o", + "ssl/quic/libssl-lib-json_enc.o", + "ssl/quic/libssl-lib-qlog.o", + "ssl/quic/libssl-lib-qlog_event_helpers.o", + "ssl/quic/libssl-lib-quic_ackm.o", + "ssl/quic/libssl-lib-quic_cfq.o", + "ssl/quic/libssl-lib-quic_channel.o", + "ssl/quic/libssl-lib-quic_demux.o", + "ssl/quic/libssl-lib-quic_engine.o", + "ssl/quic/libssl-lib-quic_fc.o", + "ssl/quic/libssl-lib-quic_fifd.o", + "ssl/quic/libssl-lib-quic_impl.o", + "ssl/quic/libssl-lib-quic_lcidm.o", + "ssl/quic/libssl-lib-quic_method.o", + "ssl/quic/libssl-lib-quic_obj.o", + "ssl/quic/libssl-lib-quic_port.o", + "ssl/quic/libssl-lib-quic_rcidm.o", + "ssl/quic/libssl-lib-quic_reactor.o", + "ssl/quic/libssl-lib-quic_reactor_wait_ctx.o", + "ssl/quic/libssl-lib-quic_record_rx.o", + "ssl/quic/libssl-lib-quic_record_shared.o", + "ssl/quic/libssl-lib-quic_record_tx.o", + "ssl/quic/libssl-lib-quic_record_util.o", + "ssl/quic/libssl-lib-quic_rstream.o", + "ssl/quic/libssl-lib-quic_rx_depack.o", + "ssl/quic/libssl-lib-quic_sf_list.o", + "ssl/quic/libssl-lib-quic_srt_gen.o", + "ssl/quic/libssl-lib-quic_srtm.o", + "ssl/quic/libssl-lib-quic_sstream.o", + "ssl/quic/libssl-lib-quic_statm.o", + "ssl/quic/libssl-lib-quic_stream_map.o", + "ssl/quic/libssl-lib-quic_thread_assist.o", + "ssl/quic/libssl-lib-quic_tls.o", + "ssl/quic/libssl-lib-quic_tls_api.o", + "ssl/quic/libssl-lib-quic_trace.o", + "ssl/quic/libssl-lib-quic_tserver.o", + "ssl/quic/libssl-lib-quic_txp.o", + "ssl/quic/libssl-lib-quic_txpim.o", + "ssl/quic/libssl-lib-quic_types.o", + "ssl/quic/libssl-lib-quic_wire.o", + "ssl/quic/libssl-lib-quic_wire_pkt.o", + "ssl/quic/libssl-lib-uint_set.o", "ssl/record/libssl-lib-rec_layer_d1.o", "ssl/record/libssl-lib-rec_layer_s3.o", - "ssl/record/libssl-lib-ssl3_buffer.o", - "ssl/record/libssl-lib-ssl3_record.o", - "ssl/record/libssl-lib-ssl3_record_tls13.o", + "ssl/record/methods/libssl-lib-dtls_meth.o", + "ssl/record/methods/libssl-lib-ssl3_meth.o", + "ssl/record/methods/libssl-lib-tls13_meth.o", + "ssl/record/methods/libssl-lib-tls1_meth.o", + "ssl/record/methods/libssl-lib-tls_common.o", + "ssl/record/methods/libssl-lib-tls_multib.o", + "ssl/record/methods/libssl-lib-tlsany_meth.o", + "ssl/rio/libssl-lib-poll_builder.o", + "ssl/rio/libssl-lib-poll_immediate.o", + "ssl/rio/libssl-lib-rio_notifier.o", "ssl/statem/libssl-lib-extensions.o", "ssl/statem/libssl-lib-extensions_clnt.o", "ssl/statem/libssl-lib-extensions_cust.o", @@ -24657,12 +28824,24 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ecx_key.o" => [ "providers/common/der/der_ecx_key.c" ], + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o" => [ + "providers/common/der/der_ml_dsa_gen.c" + ], + "providers/common/der/libcommon-lib-der_ml_dsa_key.o" => [ + "providers/common/der/der_ml_dsa_key.c" + ], "providers/common/der/libcommon-lib-der_rsa_gen.o" => [ "providers/common/der/der_rsa_gen.c" ], "providers/common/der/libcommon-lib-der_rsa_key.o" => [ "providers/common/der/der_rsa_key.c" ], + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o" => [ + "providers/common/der/der_slh_dsa_gen.c" + ], + "providers/common/der/libcommon-lib-der_slh_dsa_key.o" => [ + "providers/common/der/der_slh_dsa_key.c" + ], "providers/common/der/libcommon-lib-der_wrap_gen.o" => [ "providers/common/der/der_wrap_gen.c" ], @@ -24729,6 +28908,9 @@ our %unified_info = ( "providers/common/libfips-lib-securitycheck_fips.o" => [ "providers/common/securitycheck_fips.c" ], + "providers/endecode_test-bin-legacyprov.o" => [ + "providers/legacyprov.c" + ], "providers/evp_extra_test-bin-legacyprov.o" => [ "providers/legacyprov.c" ], @@ -24739,6 +28921,9 @@ our %unified_info = ( "providers/fips/fips-dso-fips_entry.o" => [ "providers/fips/fips_entry.c" ], + "providers/fips/libfips-lib-fipsindicator.o" => [ + "providers/fips/fipsindicator.c" + ], "providers/fips/libfips-lib-fipsprov.o" => [ "providers/fips/fipsprov.c" ], @@ -24802,6 +28987,15 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_hw.o" => [ "providers/implementations/ciphers/cipher_aes_gcm_hw.c" ], + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv.o" => [ + "providers/implementations/ciphers/cipher_aes_gcm_siv.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_hw.o" => [ + "providers/implementations/ciphers/cipher_aes_gcm_siv_hw.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_polyval.o" => [ + "providers/implementations/ciphers/cipher_aes_gcm_siv_polyval.c" + ], "providers/implementations/ciphers/libdefault-lib-cipher_aes_hw.o" => [ "providers/implementations/ciphers/cipher_aes_hw.c" ], @@ -24874,9 +29068,27 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_sm4.o" => [ "providers/implementations/ciphers/cipher_sm4.c" ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm.o" => [ + "providers/implementations/ciphers/cipher_sm4_ccm.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm_hw.o" => [ + "providers/implementations/ciphers/cipher_sm4_ccm_hw.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm.o" => [ + "providers/implementations/ciphers/cipher_sm4_gcm.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm_hw.o" => [ + "providers/implementations/ciphers/cipher_sm4_gcm_hw.c" + ], "providers/implementations/ciphers/libdefault-lib-cipher_sm4_hw.o" => [ "providers/implementations/ciphers/cipher_sm4_hw.c" ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts.o" => [ + "providers/implementations/ciphers/cipher_sm4_xts.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts_hw.o" => [ + "providers/implementations/ciphers/cipher_sm4_xts_hw.c" + ], "providers/implementations/ciphers/libdefault-lib-cipher_tdes.o" => [ "providers/implementations/ciphers/cipher_tdes.c" ], @@ -25096,6 +29308,15 @@ our %unified_info = ( "providers/implementations/encode_decode/libdefault-lib-endecoder_common.o" => [ "providers/implementations/encode_decode/endecoder_common.c" ], + "providers/implementations/encode_decode/libdefault-lib-ml_common_codecs.o" => [ + "providers/implementations/encode_decode/ml_common_codecs.c" + ], + "providers/implementations/encode_decode/libdefault-lib-ml_dsa_codecs.o" => [ + "providers/implementations/encode_decode/ml_dsa_codecs.c" + ], + "providers/implementations/encode_decode/libdefault-lib-ml_kem_codecs.o" => [ + "providers/implementations/encode_decode/ml_kem_codecs.c" + ], "providers/implementations/exchange/libdefault-lib-dh_exch.o" => [ "providers/implementations/exchange/dh_exch.c" ], @@ -25120,9 +29341,15 @@ our %unified_info = ( "providers/implementations/exchange/libfips-lib-kdf_exch.o" => [ "providers/implementations/exchange/kdf_exch.c" ], + "providers/implementations/kdfs/libdefault-lib-argon2.o" => [ + "providers/implementations/kdfs/argon2.c" + ], "providers/implementations/kdfs/libdefault-lib-hkdf.o" => [ "providers/implementations/kdfs/hkdf.c" ], + "providers/implementations/kdfs/libdefault-lib-hmacdrbg_kdf.o" => [ + "providers/implementations/kdfs/hmacdrbg_kdf.c" + ], "providers/implementations/kdfs/libdefault-lib-kbkdf.o" => [ "providers/implementations/kdfs/kbkdf.c" ], @@ -25180,12 +29407,39 @@ our %unified_info = ( "providers/implementations/kdfs/liblegacy-lib-pbkdf1.o" => [ "providers/implementations/kdfs/pbkdf1.c" ], + "providers/implementations/kdfs/liblegacy-lib-pvkkdf.o" => [ + "providers/implementations/kdfs/pvkkdf.c" + ], + "providers/implementations/kem/libdefault-lib-ec_kem.o" => [ + "providers/implementations/kem/ec_kem.c" + ], + "providers/implementations/kem/libdefault-lib-ecx_kem.o" => [ + "providers/implementations/kem/ecx_kem.c" + ], + "providers/implementations/kem/libdefault-lib-kem_util.o" => [ + "providers/implementations/kem/kem_util.c" + ], + "providers/implementations/kem/libdefault-lib-ml_kem_kem.o" => [ + "providers/implementations/kem/ml_kem_kem.c" + ], + "providers/implementations/kem/libdefault-lib-mlx_kem.o" => [ + "providers/implementations/kem/mlx_kem.c" + ], "providers/implementations/kem/libdefault-lib-rsa_kem.o" => [ "providers/implementations/kem/rsa_kem.c" ], + "providers/implementations/kem/libfips-lib-ml_kem_kem.o" => [ + "providers/implementations/kem/ml_kem_kem.c" + ], + "providers/implementations/kem/libfips-lib-mlx_kem.o" => [ + "providers/implementations/kem/mlx_kem.c" + ], "providers/implementations/kem/libfips-lib-rsa_kem.o" => [ "providers/implementations/kem/rsa_kem.c" ], + "providers/implementations/kem/libtemplate-lib-template_kem.o" => [ + "providers/implementations/kem/template_kem.c" + ], "providers/implementations/keymgmt/libdefault-lib-dh_kmgmt.o" => [ "providers/implementations/keymgmt/dh_kmgmt.c" ], @@ -25204,9 +29458,21 @@ our %unified_info = ( "providers/implementations/keymgmt/libdefault-lib-mac_legacy_kmgmt.o" => [ "providers/implementations/keymgmt/mac_legacy_kmgmt.c" ], + "providers/implementations/keymgmt/libdefault-lib-ml_dsa_kmgmt.o" => [ + "providers/implementations/keymgmt/ml_dsa_kmgmt.c" + ], + "providers/implementations/keymgmt/libdefault-lib-ml_kem_kmgmt.o" => [ + "providers/implementations/keymgmt/ml_kem_kmgmt.c" + ], + "providers/implementations/keymgmt/libdefault-lib-mlx_kmgmt.o" => [ + "providers/implementations/keymgmt/mlx_kmgmt.c" + ], "providers/implementations/keymgmt/libdefault-lib-rsa_kmgmt.o" => [ "providers/implementations/keymgmt/rsa_kmgmt.c" ], + "providers/implementations/keymgmt/libdefault-lib-slh_dsa_kmgmt.o" => [ + "providers/implementations/keymgmt/slh_dsa_kmgmt.c" + ], "providers/implementations/keymgmt/libfips-lib-dh_kmgmt.o" => [ "providers/implementations/keymgmt/dh_kmgmt.c" ], @@ -25225,9 +29491,24 @@ our %unified_info = ( "providers/implementations/keymgmt/libfips-lib-mac_legacy_kmgmt.o" => [ "providers/implementations/keymgmt/mac_legacy_kmgmt.c" ], + "providers/implementations/keymgmt/libfips-lib-ml_dsa_kmgmt.o" => [ + "providers/implementations/keymgmt/ml_dsa_kmgmt.c" + ], + "providers/implementations/keymgmt/libfips-lib-ml_kem_kmgmt.o" => [ + "providers/implementations/keymgmt/ml_kem_kmgmt.c" + ], + "providers/implementations/keymgmt/libfips-lib-mlx_kmgmt.o" => [ + "providers/implementations/keymgmt/mlx_kmgmt.c" + ], "providers/implementations/keymgmt/libfips-lib-rsa_kmgmt.o" => [ "providers/implementations/keymgmt/rsa_kmgmt.c" ], + "providers/implementations/keymgmt/libfips-lib-slh_dsa_kmgmt.o" => [ + "providers/implementations/keymgmt/slh_dsa_kmgmt.c" + ], + "providers/implementations/keymgmt/libtemplate-lib-template_kmgmt.o" => [ + "providers/implementations/keymgmt/template_kmgmt.c" + ], "providers/implementations/macs/libdefault-lib-blake2b_mac.o" => [ "providers/implementations/macs/blake2b_mac.c" ], @@ -25264,9 +29545,6 @@ our %unified_info = ( "providers/implementations/macs/libfips-lib-kmac_prov.o" => [ "providers/implementations/macs/kmac_prov.c" ], - "providers/implementations/rands/libdefault-lib-crngt.o" => [ - "providers/implementations/rands/crngt.c" - ], "providers/implementations/rands/libdefault-lib-drbg.o" => [ "providers/implementations/rands/drbg.c" ], @@ -25282,12 +29560,12 @@ our %unified_info = ( "providers/implementations/rands/libdefault-lib-seed_src.o" => [ "providers/implementations/rands/seed_src.c" ], + "providers/implementations/rands/libdefault-lib-seed_src_jitter.o" => [ + "providers/implementations/rands/seed_src_jitter.c" + ], "providers/implementations/rands/libdefault-lib-test_rng.o" => [ "providers/implementations/rands/test_rng.c" ], - "providers/implementations/rands/libfips-lib-crngt.o" => [ - "providers/implementations/rands/crngt.c" - ], "providers/implementations/rands/libfips-lib-drbg.o" => [ "providers/implementations/rands/drbg.c" ], @@ -25300,6 +29578,9 @@ our %unified_info = ( "providers/implementations/rands/libfips-lib-drbg_hmac.o" => [ "providers/implementations/rands/drbg_hmac.c" ], + "providers/implementations/rands/libfips-lib-fips_crng_test.o" => [ + "providers/implementations/rands/fips_crng_test.c" + ], "providers/implementations/rands/libfips-lib-test_rng.o" => [ "providers/implementations/rands/test_rng.c" ], @@ -25327,9 +29608,15 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-mac_legacy_sig.o" => [ "providers/implementations/signature/mac_legacy_sig.c" ], + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o" => [ + "providers/implementations/signature/ml_dsa_sig.c" + ], "providers/implementations/signature/libdefault-lib-rsa_sig.o" => [ "providers/implementations/signature/rsa_sig.c" ], + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o" => [ + "providers/implementations/signature/slh_dsa_sig.c" + ], "providers/implementations/signature/libdefault-lib-sm2_sig.o" => [ "providers/implementations/signature/sm2_sig.c" ], @@ -25345,9 +29632,27 @@ our %unified_info = ( "providers/implementations/signature/libfips-lib-mac_legacy_sig.o" => [ "providers/implementations/signature/mac_legacy_sig.c" ], + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o" => [ + "providers/implementations/signature/ml_dsa_sig.c" + ], "providers/implementations/signature/libfips-lib-rsa_sig.o" => [ "providers/implementations/signature/rsa_sig.c" ], + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o" => [ + "providers/implementations/signature/slh_dsa_sig.c" + ], + "providers/implementations/skeymgmt/libdefault-lib-aes_skmgmt.o" => [ + "providers/implementations/skeymgmt/aes_skmgmt.c" + ], + "providers/implementations/skeymgmt/libdefault-lib-generic.o" => [ + "providers/implementations/skeymgmt/generic.c" + ], + "providers/implementations/skeymgmt/libfips-lib-aes_skmgmt.o" => [ + "providers/implementations/skeymgmt/aes_skmgmt.c" + ], + "providers/implementations/skeymgmt/libfips-lib-generic.o" => [ + "providers/implementations/skeymgmt/generic.c" + ], "providers/implementations/storemgmt/libdefault-lib-file_store.o" => [ "providers/implementations/storemgmt/file_store.c" ], @@ -25371,8 +29676,12 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ec_sig.o", "providers/common/der/libcommon-lib-der_ecx_gen.o", "providers/common/der/libcommon-lib-der_ecx_key.o", + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o", + "providers/common/der/libcommon-lib-der_ml_dsa_key.o", "providers/common/der/libcommon-lib-der_rsa_gen.o", "providers/common/der/libcommon-lib-der_rsa_key.o", + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o", + "providers/common/der/libcommon-lib-der_slh_dsa_key.o", "providers/common/der/libcommon-lib-der_wrap_gen.o", "providers/common/libcommon-lib-provider_ctx.o", "providers/common/libcommon-lib-provider_err.o", @@ -25384,7 +29693,7 @@ our %unified_info = ( "providers/implementations/ciphers/libcommon-lib-ciphercommon_gcm_hw.o", "providers/implementations/ciphers/libcommon-lib-ciphercommon_hw.o", "providers/implementations/digests/libcommon-lib-digestcommon.o", - "ssl/record/libcommon-lib-tls_pad.o" + "ssl/record/methods/libcommon-lib-tls_pad.o" ], "providers/libcrypto-lib-baseprov.o" => [ "providers/baseprov.c" @@ -25420,6 +29729,9 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_aes_ccm_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_polyval.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_ocb.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_ocb_hw.o", @@ -25444,7 +29756,13 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_cts.o", "providers/implementations/ciphers/libdefault-lib-cipher_null.o", "providers/implementations/ciphers/libdefault-lib-cipher_sm4.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_sm4_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes_common.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes_default.o", @@ -25473,11 +29791,16 @@ our %unified_info = ( "providers/implementations/encode_decode/libdefault-lib-encode_key2ms.o", "providers/implementations/encode_decode/libdefault-lib-encode_key2text.o", "providers/implementations/encode_decode/libdefault-lib-endecoder_common.o", + "providers/implementations/encode_decode/libdefault-lib-ml_common_codecs.o", + "providers/implementations/encode_decode/libdefault-lib-ml_dsa_codecs.o", + "providers/implementations/encode_decode/libdefault-lib-ml_kem_codecs.o", "providers/implementations/exchange/libdefault-lib-dh_exch.o", "providers/implementations/exchange/libdefault-lib-ecdh_exch.o", "providers/implementations/exchange/libdefault-lib-ecx_exch.o", "providers/implementations/exchange/libdefault-lib-kdf_exch.o", + "providers/implementations/kdfs/libdefault-lib-argon2.o", "providers/implementations/kdfs/libdefault-lib-hkdf.o", + "providers/implementations/kdfs/libdefault-lib-hmacdrbg_kdf.o", "providers/implementations/kdfs/libdefault-lib-kbkdf.o", "providers/implementations/kdfs/libdefault-lib-krb5kdf.o", "providers/implementations/kdfs/libdefault-lib-pbkdf2.o", @@ -25488,6 +29811,11 @@ our %unified_info = ( "providers/implementations/kdfs/libdefault-lib-sskdf.o", "providers/implementations/kdfs/libdefault-lib-tls1_prf.o", "providers/implementations/kdfs/libdefault-lib-x942kdf.o", + "providers/implementations/kem/libdefault-lib-ec_kem.o", + "providers/implementations/kem/libdefault-lib-ecx_kem.o", + "providers/implementations/kem/libdefault-lib-kem_util.o", + "providers/implementations/kem/libdefault-lib-ml_kem_kem.o", + "providers/implementations/kem/libdefault-lib-mlx_kem.o", "providers/implementations/kem/libdefault-lib-rsa_kem.o", "providers/implementations/keymgmt/libdefault-lib-dh_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-dsa_kmgmt.o", @@ -25495,7 +29823,11 @@ our %unified_info = ( "providers/implementations/keymgmt/libdefault-lib-ecx_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-kdf_legacy_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-mac_legacy_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-ml_dsa_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-ml_kem_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-mlx_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-rsa_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-slh_dsa_kmgmt.o", "providers/implementations/macs/libdefault-lib-blake2b_mac.o", "providers/implementations/macs/libdefault-lib-blake2s_mac.o", "providers/implementations/macs/libdefault-lib-cmac_prov.o", @@ -25504,12 +29836,12 @@ our %unified_info = ( "providers/implementations/macs/libdefault-lib-kmac_prov.o", "providers/implementations/macs/libdefault-lib-poly1305_prov.o", "providers/implementations/macs/libdefault-lib-siphash_prov.o", - "providers/implementations/rands/libdefault-lib-crngt.o", "providers/implementations/rands/libdefault-lib-drbg.o", "providers/implementations/rands/libdefault-lib-drbg_ctr.o", "providers/implementations/rands/libdefault-lib-drbg_hash.o", "providers/implementations/rands/libdefault-lib-drbg_hmac.o", "providers/implementations/rands/libdefault-lib-seed_src.o", + "providers/implementations/rands/libdefault-lib-seed_src_jitter.o", "providers/implementations/rands/libdefault-lib-test_rng.o", "providers/implementations/rands/seeding/libdefault-lib-rand_cpu_x86.o", "providers/implementations/rands/seeding/libdefault-lib-rand_tsc.o", @@ -25519,11 +29851,15 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-ecdsa_sig.o", "providers/implementations/signature/libdefault-lib-eddsa_sig.o", "providers/implementations/signature/libdefault-lib-mac_legacy_sig.o", + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o", "providers/implementations/signature/libdefault-lib-rsa_sig.o", + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o", "providers/implementations/signature/libdefault-lib-sm2_sig.o", + "providers/implementations/skeymgmt/libdefault-lib-aes_skmgmt.o", + "providers/implementations/skeymgmt/libdefault-lib-generic.o", "providers/implementations/storemgmt/libdefault-lib-file_store.o", "providers/implementations/storemgmt/libdefault-lib-file_store_any2obj.o", - "ssl/libdefault-lib-s3_cbc.o" + "ssl/record/methods/libdefault-lib-ssl3_cbc.o" ], "providers/libfips.a" => [ "crypto/aes/libfips-lib-aes-x86_64.o", @@ -25533,6 +29869,7 @@ our %unified_info = ( "crypto/aes/libfips-lib-aesni-sha1-x86_64.o", "crypto/aes/libfips-lib-aesni-sha256-x86_64.o", "crypto/aes/libfips-lib-aesni-x86_64.o", + "crypto/aes/libfips-lib-aesni-xts-avx512.o", "crypto/aes/libfips-lib-bsaes-x86_64.o", "crypto/aes/libfips-lib-vpaes-x86_64.o", "crypto/bn/asm/libfips-lib-x86_64-gcc.o", @@ -25563,8 +29900,13 @@ our %unified_info = ( "crypto/bn/libfips-lib-bn_sqr.o", "crypto/bn/libfips-lib-bn_sqrt.o", "crypto/bn/libfips-lib-bn_word.o", + "crypto/bn/libfips-lib-rsaz-2k-avx512.o", + "crypto/bn/libfips-lib-rsaz-2k-avxifma.o", + "crypto/bn/libfips-lib-rsaz-3k-avx512.o", + "crypto/bn/libfips-lib-rsaz-3k-avxifma.o", + "crypto/bn/libfips-lib-rsaz-4k-avx512.o", + "crypto/bn/libfips-lib-rsaz-4k-avxifma.o", "crypto/bn/libfips-lib-rsaz-avx2.o", - "crypto/bn/libfips-lib-rsaz-avx512.o", "crypto/bn/libfips-lib-rsaz-x86_64.o", "crypto/bn/libfips-lib-rsaz_exp.o", "crypto/bn/libfips-lib-rsaz_exp_x2.o", @@ -25641,14 +29983,15 @@ our %unified_info = ( "crypto/evp/libfips-lib-kem.o", "crypto/evp/libfips-lib-keymgmt_lib.o", "crypto/evp/libfips-lib-keymgmt_meth.o", - "crypto/evp/libfips-lib-m_sigver.o", "crypto/evp/libfips-lib-mac_lib.o", "crypto/evp/libfips-lib-mac_meth.o", "crypto/evp/libfips-lib-p_lib.o", "crypto/evp/libfips-lib-pmeth_check.o", "crypto/evp/libfips-lib-pmeth_gn.o", "crypto/evp/libfips-lib-pmeth_lib.o", + "crypto/evp/libfips-lib-s_lib.o", "crypto/evp/libfips-lib-signature.o", + "crypto/evp/libfips-lib-skeymgmt_meth.o", "crypto/ffc/libfips-lib-ffc_backend.o", "crypto/ffc/libfips-lib-ffc_dh.o", "crypto/ffc/libfips-lib-ffc_key_generate.o", @@ -25656,6 +29999,8 @@ our %unified_info = ( "crypto/ffc/libfips-lib-ffc_params.o", "crypto/ffc/libfips-lib-ffc_params_generate.o", "crypto/ffc/libfips-lib-ffc_params_validate.o", + "crypto/hashtable/libfips-lib-hashfunc.o", + "crypto/hashtable/libfips-lib-hashtable.o", "crypto/hmac/libfips-lib-hmac.o", "crypto/lhash/libfips-lib-lhash.o", "crypto/libfips-lib-asn1_dsa.o", @@ -25677,6 +30022,7 @@ our %unified_info = ( "crypto/libfips-lib-params.o", "crypto/libfips-lib-params_dup.o", "crypto/libfips-lib-params_from_text.o", + "crypto/libfips-lib-params_idx.o", "crypto/libfips-lib-provider_core.o", "crypto/libfips-lib-provider_predefined.o", "crypto/libfips-lib-self_test_core.o", @@ -25685,7 +30031,18 @@ our %unified_info = ( "crypto/libfips-lib-threads_none.o", "crypto/libfips-lib-threads_pthread.o", "crypto/libfips-lib-threads_win.o", + "crypto/libfips-lib-time.o", "crypto/libfips-lib-x86_64cpuid.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_encoders.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_key.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_key_compress.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_matrix.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_ntt.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_params.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_sample.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_sign.o", + "crypto/ml_kem/libfips-lib-ml_kem.o", + "crypto/modes/libfips-lib-aes-gcm-avx512.o", "crypto/modes/libfips-lib-aesni-gcm-x86_64.o", "crypto/modes/libfips-lib-cbc128.o", "crypto/modes/libfips-lib-ccm128.o", @@ -25696,6 +30053,7 @@ our %unified_info = ( "crypto/modes/libfips-lib-ofb128.o", "crypto/modes/libfips-lib-wrap128.o", "crypto/modes/libfips-lib-xts128.o", + "crypto/modes/libfips-lib-xts128gb.o", "crypto/property/libfips-lib-defn_cache.o", "crypto/property/libfips-lib-property.o", "crypto/property/libfips-lib-property_parse.o", @@ -25729,7 +30087,23 @@ our %unified_info = ( "crypto/sha/libfips-lib-sha3.o", "crypto/sha/libfips-lib-sha512-x86_64.o", "crypto/sha/libfips-lib-sha512.o", + "crypto/slh_dsa/libfips-lib-slh_adrs.o", + "crypto/slh_dsa/libfips-lib-slh_dsa.o", + "crypto/slh_dsa/libfips-lib-slh_dsa_hash_ctx.o", + "crypto/slh_dsa/libfips-lib-slh_dsa_key.o", + "crypto/slh_dsa/libfips-lib-slh_fors.o", + "crypto/slh_dsa/libfips-lib-slh_hash.o", + "crypto/slh_dsa/libfips-lib-slh_hypertree.o", + "crypto/slh_dsa/libfips-lib-slh_params.o", + "crypto/slh_dsa/libfips-lib-slh_wots.o", + "crypto/slh_dsa/libfips-lib-slh_xmss.o", "crypto/stack/libfips-lib-stack.o", + "crypto/thread/arch/libfips-lib-thread_none.o", + "crypto/thread/arch/libfips-lib-thread_posix.o", + "crypto/thread/arch/libfips-lib-thread_win.o", + "crypto/thread/libfips-lib-api.o", + "crypto/thread/libfips-lib-arch.o", + "crypto/thread/libfips-lib-internal.o", "providers/common/der/libfips-lib-der_rsa_sig.o", "providers/common/libfips-lib-bio_prov.o", "providers/common/libfips-lib-capabilities.o", @@ -25738,6 +30112,7 @@ our %unified_info = ( "providers/common/libfips-lib-provider_util.o", "providers/common/libfips-lib-securitycheck.o", "providers/common/libfips-lib-securitycheck_fips.o", + "providers/fips/libfips-lib-fipsindicator.o", "providers/fips/libfips-lib-fipsprov.o", "providers/fips/libfips-lib-self_test.o", "providers/fips/libfips-lib-self_test_kats.o", @@ -25775,6 +30150,8 @@ our %unified_info = ( "providers/implementations/kdfs/libfips-lib-sskdf.o", "providers/implementations/kdfs/libfips-lib-tls1_prf.o", "providers/implementations/kdfs/libfips-lib-x942kdf.o", + "providers/implementations/kem/libfips-lib-ml_kem_kem.o", + "providers/implementations/kem/libfips-lib-mlx_kem.o", "providers/implementations/kem/libfips-lib-rsa_kem.o", "providers/implementations/keymgmt/libfips-lib-dh_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-dsa_kmgmt.o", @@ -25782,24 +30159,32 @@ our %unified_info = ( "providers/implementations/keymgmt/libfips-lib-ecx_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-kdf_legacy_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-mac_legacy_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-ml_dsa_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-ml_kem_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-mlx_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-rsa_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-slh_dsa_kmgmt.o", "providers/implementations/macs/libfips-lib-cmac_prov.o", "providers/implementations/macs/libfips-lib-gmac_prov.o", "providers/implementations/macs/libfips-lib-hmac_prov.o", "providers/implementations/macs/libfips-lib-kmac_prov.o", - "providers/implementations/rands/libfips-lib-crngt.o", "providers/implementations/rands/libfips-lib-drbg.o", "providers/implementations/rands/libfips-lib-drbg_ctr.o", "providers/implementations/rands/libfips-lib-drbg_hash.o", "providers/implementations/rands/libfips-lib-drbg_hmac.o", + "providers/implementations/rands/libfips-lib-fips_crng_test.o", "providers/implementations/rands/libfips-lib-test_rng.o", "providers/implementations/signature/libfips-lib-dsa_sig.o", "providers/implementations/signature/libfips-lib-ecdsa_sig.o", "providers/implementations/signature/libfips-lib-eddsa_sig.o", "providers/implementations/signature/libfips-lib-mac_legacy_sig.o", + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o", "providers/implementations/signature/libfips-lib-rsa_sig.o", + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o", + "providers/implementations/skeymgmt/libfips-lib-aes_skmgmt.o", + "providers/implementations/skeymgmt/libfips-lib-generic.o", "providers/libcommon.a", - "ssl/libfips-lib-s3_cbc.o" + "ssl/record/methods/libfips-lib-ssl3_cbc.o" ], "providers/liblegacy-lib-prov_running.o" => [ "providers/prov_running.c" @@ -25829,13 +30214,12 @@ our %unified_info = ( "providers/implementations/digests/liblegacy-lib-ripemd_prov.o", "providers/implementations/digests/liblegacy-lib-wp_prov.o", "providers/implementations/kdfs/liblegacy-lib-pbkdf1.o", + "providers/implementations/kdfs/liblegacy-lib-pvkkdf.o", "providers/liblegacy-lib-prov_running.o" ], - "ssl/libdefault-lib-s3_cbc.o" => [ - "ssl/s3_cbc.c" - ], - "ssl/libfips-lib-s3_cbc.o" => [ - "ssl/s3_cbc.c" + "providers/libtemplate.a" => [ + "providers/implementations/kem/libtemplate-lib-template_kem.o", + "providers/implementations/keymgmt/libtemplate-lib-template_kmgmt.o" ], "ssl/libssl-lib-bio_ssl.o" => [ "ssl/bio_ssl.c" @@ -25855,6 +30239,9 @@ our %unified_info = ( "ssl/libssl-lib-pqueue.o" => [ "ssl/pqueue.c" ], + "ssl/libssl-lib-priority_queue.o" => [ + "ssl/priority_queue.c" + ], "ssl/libssl-lib-s3_enc.o" => [ "ssl/s3_enc.c" ], @@ -25870,15 +30257,15 @@ our %unified_info = ( "ssl/libssl-lib-ssl_cert.o" => [ "ssl/ssl_cert.c" ], + "ssl/libssl-lib-ssl_cert_comp.o" => [ + "ssl/ssl_cert_comp.c" + ], "ssl/libssl-lib-ssl_ciph.o" => [ "ssl/ssl_ciph.c" ], "ssl/libssl-lib-ssl_conf.o" => [ "ssl/ssl_conf.c" ], - "ssl/libssl-lib-ssl_err.o" => [ - "ssl/ssl_err.c" - ], "ssl/libssl-lib-ssl_err_legacy.o" => [ "ssl/ssl_err_legacy.c" ], @@ -25927,11 +30314,131 @@ our %unified_info = ( "ssl/libssl-lib-tls_srp.o" => [ "ssl/tls_srp.c" ], - "ssl/record/libcommon-lib-tls_pad.o" => [ - "ssl/record/tls_pad.c" + "ssl/quic/libssl-lib-cc_newreno.o" => [ + "ssl/quic/cc_newreno.c" + ], + "ssl/quic/libssl-lib-json_enc.o" => [ + "ssl/quic/json_enc.c" + ], + "ssl/quic/libssl-lib-qlog.o" => [ + "ssl/quic/qlog.c" + ], + "ssl/quic/libssl-lib-qlog_event_helpers.o" => [ + "ssl/quic/qlog_event_helpers.c" + ], + "ssl/quic/libssl-lib-quic_ackm.o" => [ + "ssl/quic/quic_ackm.c" + ], + "ssl/quic/libssl-lib-quic_cfq.o" => [ + "ssl/quic/quic_cfq.c" + ], + "ssl/quic/libssl-lib-quic_channel.o" => [ + "ssl/quic/quic_channel.c" + ], + "ssl/quic/libssl-lib-quic_demux.o" => [ + "ssl/quic/quic_demux.c" + ], + "ssl/quic/libssl-lib-quic_engine.o" => [ + "ssl/quic/quic_engine.c" + ], + "ssl/quic/libssl-lib-quic_fc.o" => [ + "ssl/quic/quic_fc.c" + ], + "ssl/quic/libssl-lib-quic_fifd.o" => [ + "ssl/quic/quic_fifd.c" + ], + "ssl/quic/libssl-lib-quic_impl.o" => [ + "ssl/quic/quic_impl.c" + ], + "ssl/quic/libssl-lib-quic_lcidm.o" => [ + "ssl/quic/quic_lcidm.c" + ], + "ssl/quic/libssl-lib-quic_method.o" => [ + "ssl/quic/quic_method.c" + ], + "ssl/quic/libssl-lib-quic_obj.o" => [ + "ssl/quic/quic_obj.c" + ], + "ssl/quic/libssl-lib-quic_port.o" => [ + "ssl/quic/quic_port.c" + ], + "ssl/quic/libssl-lib-quic_rcidm.o" => [ + "ssl/quic/quic_rcidm.c" + ], + "ssl/quic/libssl-lib-quic_reactor.o" => [ + "ssl/quic/quic_reactor.c" + ], + "ssl/quic/libssl-lib-quic_reactor_wait_ctx.o" => [ + "ssl/quic/quic_reactor_wait_ctx.c" + ], + "ssl/quic/libssl-lib-quic_record_rx.o" => [ + "ssl/quic/quic_record_rx.c" + ], + "ssl/quic/libssl-lib-quic_record_shared.o" => [ + "ssl/quic/quic_record_shared.c" + ], + "ssl/quic/libssl-lib-quic_record_tx.o" => [ + "ssl/quic/quic_record_tx.c" + ], + "ssl/quic/libssl-lib-quic_record_util.o" => [ + "ssl/quic/quic_record_util.c" + ], + "ssl/quic/libssl-lib-quic_rstream.o" => [ + "ssl/quic/quic_rstream.c" ], - "ssl/record/libssl-lib-dtls1_bitmap.o" => [ - "ssl/record/dtls1_bitmap.c" + "ssl/quic/libssl-lib-quic_rx_depack.o" => [ + "ssl/quic/quic_rx_depack.c" + ], + "ssl/quic/libssl-lib-quic_sf_list.o" => [ + "ssl/quic/quic_sf_list.c" + ], + "ssl/quic/libssl-lib-quic_srt_gen.o" => [ + "ssl/quic/quic_srt_gen.c" + ], + "ssl/quic/libssl-lib-quic_srtm.o" => [ + "ssl/quic/quic_srtm.c" + ], + "ssl/quic/libssl-lib-quic_sstream.o" => [ + "ssl/quic/quic_sstream.c" + ], + "ssl/quic/libssl-lib-quic_statm.o" => [ + "ssl/quic/quic_statm.c" + ], + "ssl/quic/libssl-lib-quic_stream_map.o" => [ + "ssl/quic/quic_stream_map.c" + ], + "ssl/quic/libssl-lib-quic_thread_assist.o" => [ + "ssl/quic/quic_thread_assist.c" + ], + "ssl/quic/libssl-lib-quic_tls.o" => [ + "ssl/quic/quic_tls.c" + ], + "ssl/quic/libssl-lib-quic_tls_api.o" => [ + "ssl/quic/quic_tls_api.c" + ], + "ssl/quic/libssl-lib-quic_trace.o" => [ + "ssl/quic/quic_trace.c" + ], + "ssl/quic/libssl-lib-quic_tserver.o" => [ + "ssl/quic/quic_tserver.c" + ], + "ssl/quic/libssl-lib-quic_txp.o" => [ + "ssl/quic/quic_txp.c" + ], + "ssl/quic/libssl-lib-quic_txpim.o" => [ + "ssl/quic/quic_txpim.c" + ], + "ssl/quic/libssl-lib-quic_types.o" => [ + "ssl/quic/quic_types.c" + ], + "ssl/quic/libssl-lib-quic_wire.o" => [ + "ssl/quic/quic_wire.c" + ], + "ssl/quic/libssl-lib-quic_wire_pkt.o" => [ + "ssl/quic/quic_wire_pkt.c" + ], + "ssl/quic/libssl-lib-uint_set.o" => [ + "ssl/quic/uint_set.c" ], "ssl/record/libssl-lib-rec_layer_d1.o" => [ "ssl/record/rec_layer_d1.c" @@ -25939,14 +30446,44 @@ our %unified_info = ( "ssl/record/libssl-lib-rec_layer_s3.o" => [ "ssl/record/rec_layer_s3.c" ], - "ssl/record/libssl-lib-ssl3_buffer.o" => [ - "ssl/record/ssl3_buffer.c" + "ssl/record/methods/libcommon-lib-tls_pad.o" => [ + "ssl/record/methods/tls_pad.c" + ], + "ssl/record/methods/libdefault-lib-ssl3_cbc.o" => [ + "ssl/record/methods/ssl3_cbc.c" + ], + "ssl/record/methods/libfips-lib-ssl3_cbc.o" => [ + "ssl/record/methods/ssl3_cbc.c" + ], + "ssl/record/methods/libssl-lib-dtls_meth.o" => [ + "ssl/record/methods/dtls_meth.c" + ], + "ssl/record/methods/libssl-lib-ssl3_meth.o" => [ + "ssl/record/methods/ssl3_meth.c" + ], + "ssl/record/methods/libssl-lib-tls13_meth.o" => [ + "ssl/record/methods/tls13_meth.c" + ], + "ssl/record/methods/libssl-lib-tls1_meth.o" => [ + "ssl/record/methods/tls1_meth.c" + ], + "ssl/record/methods/libssl-lib-tls_common.o" => [ + "ssl/record/methods/tls_common.c" ], - "ssl/record/libssl-lib-ssl3_record.o" => [ - "ssl/record/ssl3_record.c" + "ssl/record/methods/libssl-lib-tls_multib.o" => [ + "ssl/record/methods/tls_multib.c" ], - "ssl/record/libssl-lib-ssl3_record_tls13.o" => [ - "ssl/record/ssl3_record_tls13.c" + "ssl/record/methods/libssl-lib-tlsany_meth.o" => [ + "ssl/record/methods/tlsany_meth.c" + ], + "ssl/rio/libssl-lib-poll_builder.o" => [ + "ssl/rio/poll_builder.c" + ], + "ssl/rio/libssl-lib-poll_immediate.o" => [ + "ssl/rio/poll_immediate.c" + ], + "ssl/rio/libssl-lib-rio_notifier.o" => [ + "ssl/rio/rio_notifier.c" ], "ssl/statem/libssl-lib-extensions.o" => [ "ssl/statem/extensions.c" @@ -26042,6 +30579,8 @@ our %unified_info = ( "test/asn1_string_table_test.c" ], "test/asn1_time_test" => [ + "crypto/asn1/asn1_time_test-bin-a_time.o", + "crypto/asn1_time_test-bin-ctype.o", "test/asn1_time_test-bin-asn1_time_test.o" ], "test/asn1_time_test-bin-asn1_time_test.o" => [ @@ -26072,6 +30611,18 @@ our %unified_info = ( "test/bftest-bin-bftest.o" => [ "test/bftest.c" ], + "test/bio_addr_test" => [ + "test/bio_addr_test-bin-bio_addr_test.o" + ], + "test/bio_addr_test-bin-bio_addr_test.o" => [ + "test/bio_addr_test.c" + ], + "test/bio_base64_test" => [ + "test/bio_base64_test-bin-bio_base64_test.o" + ], + "test/bio_base64_test-bin-bio_base64_test.o" => [ + "test/bio_base64_test.c" + ], "test/bio_callback_test" => [ "test/bio_callback_test-bin-bio_callback_test.o" ], @@ -26084,6 +30635,12 @@ our %unified_info = ( "test/bio_core_test-bin-bio_core_test.o" => [ "test/bio_core_test.c" ], + "test/bio_dgram_test" => [ + "test/bio_dgram_test-bin-bio_dgram_test.o" + ], + "test/bio_dgram_test-bin-bio_dgram_test.o" => [ + "test/bio_dgram_test.c" + ], "test/bio_enc_test" => [ "test/bio_enc_test-bin-bio_enc_test.o" ], @@ -26096,6 +30653,12 @@ our %unified_info = ( "test/bio_memleak_test-bin-bio_memleak_test.o" => [ "test/bio_memleak_test.c" ], + "test/bio_meth_test" => [ + "test/bio_meth_test-bin-bio_meth_test.o" + ], + "test/bio_meth_test-bin-bio_meth_test.o" => [ + "test/bio_meth_test.c" + ], "test/bio_prefix_text" => [ "test/bio_prefix_text-bin-bio_prefix_text.o" ], @@ -26114,6 +30677,12 @@ our %unified_info = ( "test/bio_readbuffer_test-bin-bio_readbuffer_test.o" => [ "test/bio_readbuffer_test.c" ], + "test/bio_tfo_test" => [ + "test/bio_tfo_test-bin-bio_tfo_test.o" + ], + "test/bio_tfo_test-bin-bio_tfo_test.o" => [ + "test/bio_tfo_test.c" + ], "test/bioprinttest" => [ "test/bioprinttest-bin-bioprinttest.o" ], @@ -26132,6 +30701,12 @@ our %unified_info = ( "test/bntest-bin-bntest.o" => [ "test/bntest.c" ], + "test/build_wincrypt_test" => [ + "test/build_wincrypt_test-bin-build_wincrypt_test.o" + ], + "test/build_wincrypt_test-bin-build_wincrypt_test.o" => [ + "test/build_wincrypt_test.c" + ], "test/buildtest_c_aes" => [ "test/buildtest_c_aes-bin-buildtest_aes.o" ], @@ -26162,6 +30737,12 @@ our %unified_info = ( "test/buildtest_c_buffer-bin-buildtest_buffer.o" => [ "test/buildtest_buffer.c" ], + "test/buildtest_c_byteorder" => [ + "test/buildtest_c_byteorder-bin-buildtest_byteorder.o" + ], + "test/buildtest_c_byteorder-bin-buildtest_byteorder.o" => [ + "test/buildtest_byteorder.c" + ], "test/buildtest_c_camellia" => [ "test/buildtest_c_camellia-bin-buildtest_camellia.o" ], @@ -26210,12 +30791,6 @@ our %unified_info = ( "test/buildtest_c_core_dispatch-bin-buildtest_core_dispatch.o" => [ "test/buildtest_core_dispatch.c" ], - "test/buildtest_c_core_names" => [ - "test/buildtest_c_core_names-bin-buildtest_core_names.o" - ], - "test/buildtest_c_core_names-bin-buildtest_core_names.o" => [ - "test/buildtest_core_names.c" - ], "test/buildtest_c_core_object" => [ "test/buildtest_c_core_object-bin-buildtest_core_object.o" ], @@ -26264,6 +30839,12 @@ our %unified_info = ( "test/buildtest_c_e_os2-bin-buildtest_e_os2.o" => [ "test/buildtest_e_os2.c" ], + "test/buildtest_c_e_ostime" => [ + "test/buildtest_c_e_ostime-bin-buildtest_e_ostime.o" + ], + "test/buildtest_c_e_ostime-bin-buildtest_e_ostime.o" => [ + "test/buildtest_e_ostime.c" + ], "test/buildtest_c_ebcdic" => [ "test/buildtest_c_ebcdic-bin-buildtest_ebcdic.o" ], @@ -26318,6 +30899,12 @@ our %unified_info = ( "test/buildtest_c_hmac-bin-buildtest_hmac.o" => [ "test/buildtest_hmac.c" ], + "test/buildtest_c_hpke" => [ + "test/buildtest_c_hpke-bin-buildtest_hpke.o" + ], + "test/buildtest_c_hpke-bin-buildtest_hpke.o" => [ + "test/buildtest_hpke.c" + ], "test/buildtest_c_http" => [ "test/buildtest_c_http-bin-buildtest_http.o" ], @@ -26330,6 +30917,12 @@ our %unified_info = ( "test/buildtest_c_idea-bin-buildtest_idea.o" => [ "test/buildtest_idea.c" ], + "test/buildtest_c_indicator" => [ + "test/buildtest_c_indicator-bin-buildtest_indicator.o" + ], + "test/buildtest_c_indicator-bin-buildtest_indicator.o" => [ + "test/buildtest_indicator.c" + ], "test/buildtest_c_kdf" => [ "test/buildtest_c_kdf-bin-buildtest_kdf.o" ], @@ -26360,6 +30953,12 @@ our %unified_info = ( "test/buildtest_c_mdc2-bin-buildtest_mdc2.o" => [ "test/buildtest_mdc2.c" ], + "test/buildtest_c_ml_kem" => [ + "test/buildtest_c_ml_kem-bin-buildtest_ml_kem.o" + ], + "test/buildtest_c_ml_kem-bin-buildtest_ml_kem.o" => [ + "test/buildtest_ml_kem.c" + ], "test/buildtest_c_modes" => [ "test/buildtest_c_modes-bin-buildtest_modes.o" ], @@ -26420,6 +31019,12 @@ our %unified_info = ( "test/buildtest_c_provider-bin-buildtest_provider.o" => [ "test/buildtest_provider.c" ], + "test/buildtest_c_quic" => [ + "test/buildtest_c_quic-bin-buildtest_quic.o" + ], + "test/buildtest_c_quic-bin-buildtest_quic.o" => [ + "test/buildtest_quic.c" + ], "test/buildtest_c_rand" => [ "test/buildtest_c_rand-bin-buildtest_rand.o" ], @@ -26504,6 +31109,12 @@ our %unified_info = ( "test/buildtest_c_symhacks-bin-buildtest_symhacks.o" => [ "test/buildtest_symhacks.c" ], + "test/buildtest_c_thread" => [ + "test/buildtest_c_thread-bin-buildtest_thread.o" + ], + "test/buildtest_c_thread-bin-buildtest_thread.o" => [ + "test/buildtest_thread.c" + ], "test/buildtest_c_tls1" => [ "test/buildtest_c_tls1-bin-buildtest_tls1.o" ], @@ -26534,6 +31145,29 @@ our %unified_info = ( "test/buildtest_c_whrlpool-bin-buildtest_whrlpool.o" => [ "test/buildtest_whrlpool.c" ], + "test/byteorder_test" => [ + "test/byteorder_test-bin-byteorder_test.o" + ], + "test/byteorder_test-bin-byteorder_test.o" => [ + "test/byteorder_test.c" + ], + "test/ca_internals_test" => [ + "apps/ca_internals_test-bin-ca.o", + "apps/lib/ca_internals_test-bin-app_libctx.o", + "apps/lib/ca_internals_test-bin-app_provider.o", + "apps/lib/ca_internals_test-bin-app_rand.o", + "apps/lib/ca_internals_test-bin-app_x509.o", + "apps/lib/ca_internals_test-bin-apps.o", + "apps/lib/ca_internals_test-bin-apps_ui.o", + "apps/lib/ca_internals_test-bin-engine.o", + "apps/lib/ca_internals_test-bin-fmt.o", + "crypto/asn1/ca_internals_test-bin-a_time.o", + "crypto/ca_internals_test-bin-ctype.o", + "test/ca_internals_test-bin-ca_internals_test.o" + ], + "test/ca_internals_test-bin-ca_internals_test.o" => [ + "test/ca_internals_test.c" + ], "test/casttest" => [ "test/casttest-bin-casttest.o" ], @@ -26712,6 +31346,12 @@ our %unified_info = ( "test/danetest-bin-danetest.o" => [ "test/danetest.c" ], + "test/decoder_propq_test" => [ + "test/decoder_propq_test-bin-decoder_propq_test.o" + ], + "test/decoder_propq_test-bin-decoder_propq_test.o" => [ + "test/decoder_propq_test.c" + ], "test/defltfips_test" => [ "test/defltfips_test-bin-defltfips_test.o" ], @@ -26793,6 +31433,7 @@ our %unified_info = ( "test/ectest.c" ], "test/endecode_test" => [ + "providers/endecode_test-bin-legacyprov.o", "test/endecode_test-bin-endecode_test.o", "test/helpers/endecode_test-bin-predefined_dhparams.o" ], @@ -26825,17 +31466,29 @@ our %unified_info = ( ], "test/evp_extra_test" => [ "providers/evp_extra_test-bin-legacyprov.o", - "test/evp_extra_test-bin-evp_extra_test.o" + "test/evp_extra_test-bin-evp_extra_test.o", + "test/evp_extra_test-bin-fake_pipelineprov.o", + "test/evp_extra_test-bin-fake_rsaprov.o" ], "test/evp_extra_test-bin-evp_extra_test.o" => [ "test/evp_extra_test.c" ], + "test/evp_extra_test-bin-fake_pipelineprov.o" => [ + "test/fake_pipelineprov.c" + ], + "test/evp_extra_test-bin-fake_rsaprov.o" => [ + "test/fake_rsaprov.c" + ], "test/evp_extra_test2" => [ - "test/evp_extra_test2-bin-evp_extra_test2.o" + "test/evp_extra_test2-bin-evp_extra_test2.o", + "test/evp_extra_test2-bin-tls-provider.o" ], "test/evp_extra_test2-bin-evp_extra_test2.o" => [ "test/evp_extra_test2.c" ], + "test/evp_extra_test2-bin-tls-provider.o" => [ + "test/tls-provider.c" + ], "test/evp_fetch_prov_test" => [ "test/evp_fetch_prov_test-bin-evp_fetch_prov_test.o" ], @@ -26860,6 +31513,12 @@ our %unified_info = ( "test/evp_pkey_ctx_new_from_name-bin-evp_pkey_ctx_new_from_name.o" => [ "test/evp_pkey_ctx_new_from_name.c" ], + "test/evp_pkey_dhkem_test" => [ + "test/evp_pkey_dhkem_test-bin-evp_pkey_dhkem_test.o" + ], + "test/evp_pkey_dhkem_test-bin-evp_pkey_dhkem_test.o" => [ + "test/evp_pkey_dhkem_test.c" + ], "test/evp_pkey_dparams_test" => [ "test/evp_pkey_dparams_test-bin-evp_pkey_dparams_test.o" ], @@ -26872,12 +31531,28 @@ our %unified_info = ( "test/evp_pkey_provided_test-bin-evp_pkey_provided_test.o" => [ "test/evp_pkey_provided_test.c" ], + "test/evp_skey_test" => [ + "test/evp_skey_test-bin-evp_skey_test.o", + "test/evp_skey_test-bin-fake_cipherprov.o" + ], + "test/evp_skey_test-bin-evp_skey_test.o" => [ + "test/evp_skey_test.c" + ], + "test/evp_skey_test-bin-fake_cipherprov.o" => [ + "test/fake_cipherprov.c" + ], "test/evp_test" => [ "test/evp_test-bin-evp_test.o" ], "test/evp_test-bin-evp_test.o" => [ "test/evp_test.c" ], + "test/evp_xof_test" => [ + "test/evp_xof_test-bin-evp_xof_test.o" + ], + "test/evp_xof_test-bin-evp_xof_test.o" => [ + "test/evp_xof_test.c" + ], "test/exdatatest" => [ "test/exdatatest-bin-exdatatest.o" ], @@ -26963,15 +31638,108 @@ our %unified_info = ( "test/helpers/fatalerrtest-bin-ssltestlib.o" => [ "test/helpers/ssltestlib.c" ], + "test/helpers/json_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/json_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/json_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/json_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/pkcs12_api_test-bin-pkcs12.o" => [ + "test/helpers/pkcs12.c" + ], "test/helpers/pkcs12_format_test-bin-pkcs12.o" => [ "test/helpers/pkcs12.c" ], + "test/helpers/quic_multistream_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quic_multistream_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quic_multistream_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quic_multistream_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quic_newcid_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quic_newcid_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quic_newcid_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quic_newcid_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quic_radix_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quic_radix_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quic_radix_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quic_radix_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quic_srt_gen_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quic_srt_gen_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quic_srt_gen_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quic_srt_gen_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quicapitest-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quicapitest-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quicapitest-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quicapitest-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quicfaultstest-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quicfaultstest-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quicfaultstest-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quicfaultstest-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], "test/helpers/recordlentest-bin-ssltestlib.o" => [ "test/helpers/ssltestlib.c" ], + "test/helpers/rpktest-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], "test/helpers/servername_test-bin-ssltestlib.o" => [ "test/helpers/ssltestlib.c" ], + "test/helpers/ssl_handshake_rtt_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], "test/helpers/ssl_old_test-bin-predefined_dhparams.o" => [ "test/helpers/predefined_dhparams.c" ], @@ -26999,6 +31767,9 @@ our %unified_info = ( "test/helpers/tls13ccstest-bin-ssltestlib.o" => [ "test/helpers/ssltestlib.c" ], + "test/helpers/tls13groupselection_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], "test/hexstr_test" => [ "test/hexstr_test-bin-hexstr_test.o" ], @@ -27011,6 +31782,12 @@ our %unified_info = ( "test/hmactest-bin-hmactest.o" => [ "test/hmactest.c" ], + "test/hpke_test" => [ + "test/hpke_test-bin-hpke_test.o" + ], + "test/hpke_test-bin-hpke_test.o" => [ + "test/hpke_test.c" + ], "test/http_test" => [ "test/http_test-bin-http_test.o" ], @@ -27029,6 +31806,16 @@ our %unified_info = ( "test/igetest-bin-igetest.o" => [ "test/igetest.c" ], + "test/json_test" => [ + "test/helpers/json_test-bin-noisydgrambio.o", + "test/helpers/json_test-bin-pktsplitbio.o", + "test/helpers/json_test-bin-quictestlib.o", + "test/helpers/json_test-bin-ssltestlib.o", + "test/json_test-bin-json_test.o" + ], + "test/json_test-bin-json_test.o" => [ + "test/json_test.c" + ], "test/keymgmt_internal_test" => [ "test/keymgmt_internal_test-bin-keymgmt_internal_test.o" ], @@ -27049,6 +31836,7 @@ our %unified_info = ( "test/testutil/libtestutil-lib-driver.o", "test/testutil/libtestutil-lib-fake_random.o", "test/testutil/libtestutil-lib-format_output.o", + "test/testutil/libtestutil-lib-helper.o", "test/testutil/libtestutil-lib-load.o", "test/testutil/libtestutil-lib-main.o", "test/testutil/libtestutil-lib-options.o", @@ -27061,6 +31849,12 @@ our %unified_info = ( "test/testutil/libtestutil-lib-tests.o", "test/testutil/libtestutil-lib-testutil_init.o" ], + "test/list_test" => [ + "test/list_test-bin-list_test.o" + ], + "test/list_test-bin-list_test.o" => [ + "test/list_test.c" + ], "test/localetest" => [ "test/localetest-bin-localetest.o" ], @@ -27079,12 +31873,36 @@ our %unified_info = ( "test/mdc2test-bin-mdc2test.o" => [ "test/mdc2test.c" ], + "test/membio_test" => [ + "test/membio_test-bin-membio_test.o" + ], + "test/membio_test-bin-membio_test.o" => [ + "test/membio_test.c" + ], "test/memleaktest" => [ "test/memleaktest-bin-memleaktest.o" ], "test/memleaktest-bin-memleaktest.o" => [ "test/memleaktest.c" ], + "test/ml_dsa_test" => [ + "test/ml_dsa_test-bin-ml_dsa_test.o" + ], + "test/ml_dsa_test-bin-ml_dsa_test.o" => [ + "test/ml_dsa_test.c" + ], + "test/ml_kem_evp_extra_test" => [ + "test/ml_kem_evp_extra_test-bin-ml_kem_evp_extra_test.o" + ], + "test/ml_kem_evp_extra_test-bin-ml_kem_evp_extra_test.o" => [ + "test/ml_kem_evp_extra_test.c" + ], + "test/ml_kem_internal_test" => [ + "test/ml_kem_internal_test-bin-ml_kem_internal_test.o" + ], + "test/ml_kem_internal_test-bin-ml_kem_internal_test.o" => [ + "test/ml_kem_internal_test.c" + ], "test/modes_internal_test" => [ "test/modes_internal_test-bin-modes_internal_test.o" ], @@ -27130,11 +31948,18 @@ our %unified_info = ( "test/p_test.c" ], "test/packettest" => [ + "crypto/packettest-bin-quic_vlint.o", "test/packettest-bin-packettest.o" ], "test/packettest-bin-packettest.o" => [ "test/packettest.c" ], + "test/pairwise_fail_test" => [ + "test/pairwise_fail_test-bin-pairwise_fail_test.o" + ], + "test/pairwise_fail_test-bin-pairwise_fail_test.o" => [ + "test/pairwise_fail_test.c" + ], "test/param_build_test" => [ "test/param_build_test-bin-param_build_test.o" ], @@ -27183,6 +32008,13 @@ our %unified_info = ( "test/pemtest-bin-pemtest.o" => [ "test/pemtest.c" ], + "test/pkcs12_api_test" => [ + "test/helpers/pkcs12_api_test-bin-pkcs12.o", + "test/pkcs12_api_test-bin-pkcs12_api_test.o" + ], + "test/pkcs12_api_test-bin-pkcs12_api_test.o" => [ + "test/pkcs12_api_test.c" + ], "test/pkcs12_format_test" => [ "test/helpers/pkcs12_format_test-bin-pkcs12.o", "test/pkcs12_format_test-bin-pkcs12_format_test.o" @@ -27214,6 +32046,12 @@ our %unified_info = ( "test/poly1305_internal_test-bin-poly1305_internal_test.o" => [ "test/poly1305_internal_test.c" ], + "test/priority_queue_test" => [ + "test/priority_queue_test-bin-priority_queue_test.o" + ], + "test/priority_queue_test-bin-priority_queue_test.o" => [ + "test/priority_queue_test.c" + ], "test/property_test" => [ "test/property_test-bin-property_test.o" ], @@ -27232,6 +32070,12 @@ our %unified_info = ( "test/provfetchtest-bin-provfetchtest.o" => [ "test/provfetchtest.c" ], + "test/provider_default_search_path_test" => [ + "test/provider_default_search_path_test-bin-provider_default_search_path_test.o" + ], + "test/provider_default_search_path_test-bin-provider_default_search_path_test.o" => [ + "test/provider_default_search_path_test.c" + ], "test/provider_fallback_test" => [ "test/provider_fallback_test-bin-provider_fallback_test.o" ], @@ -27280,6 +32124,174 @@ our %unified_info = ( "test/punycode_test-bin-punycode_test.o" => [ "test/punycode_test.c" ], + "test/quic_ackm_test" => [ + "test/quic_ackm_test-bin-cc_dummy.o", + "test/quic_ackm_test-bin-quic_ackm_test.o" + ], + "test/quic_ackm_test-bin-cc_dummy.o" => [ + "test/cc_dummy.c" + ], + "test/quic_ackm_test-bin-quic_ackm_test.o" => [ + "test/quic_ackm_test.c" + ], + "test/quic_cc_test" => [ + "test/quic_cc_test-bin-quic_cc_test.o" + ], + "test/quic_cc_test-bin-quic_cc_test.o" => [ + "test/quic_cc_test.c" + ], + "test/quic_cfq_test" => [ + "test/quic_cfq_test-bin-quic_cfq_test.o" + ], + "test/quic_cfq_test-bin-quic_cfq_test.o" => [ + "test/quic_cfq_test.c" + ], + "test/quic_client_test" => [ + "test/quic_client_test-bin-quic_client_test.o" + ], + "test/quic_client_test-bin-quic_client_test.o" => [ + "test/quic_client_test.c" + ], + "test/quic_fc_test" => [ + "test/quic_fc_test-bin-quic_fc_test.o" + ], + "test/quic_fc_test-bin-quic_fc_test.o" => [ + "test/quic_fc_test.c" + ], + "test/quic_fifd_test" => [ + "test/quic_fifd_test-bin-cc_dummy.o", + "test/quic_fifd_test-bin-quic_fifd_test.o" + ], + "test/quic_fifd_test-bin-cc_dummy.o" => [ + "test/cc_dummy.c" + ], + "test/quic_fifd_test-bin-quic_fifd_test.o" => [ + "test/quic_fifd_test.c" + ], + "test/quic_lcidm_test" => [ + "test/quic_lcidm_test-bin-quic_lcidm_test.o" + ], + "test/quic_lcidm_test-bin-quic_lcidm_test.o" => [ + "test/quic_lcidm_test.c" + ], + "test/quic_multistream_test" => [ + "test/helpers/quic_multistream_test-bin-noisydgrambio.o", + "test/helpers/quic_multistream_test-bin-pktsplitbio.o", + "test/helpers/quic_multistream_test-bin-quictestlib.o", + "test/helpers/quic_multistream_test-bin-ssltestlib.o", + "test/quic_multistream_test-bin-quic_multistream_test.o" + ], + "test/quic_multistream_test-bin-quic_multistream_test.o" => [ + "test/quic_multistream_test.c" + ], + "test/quic_newcid_test" => [ + "test/helpers/quic_newcid_test-bin-noisydgrambio.o", + "test/helpers/quic_newcid_test-bin-pktsplitbio.o", + "test/helpers/quic_newcid_test-bin-quictestlib.o", + "test/helpers/quic_newcid_test-bin-ssltestlib.o", + "test/quic_newcid_test-bin-quic_newcid_test.o" + ], + "test/quic_newcid_test-bin-quic_newcid_test.o" => [ + "test/quic_newcid_test.c" + ], + "test/quic_qlog_test" => [ + "test/quic_qlog_test-bin-quic_qlog_test.o" + ], + "test/quic_qlog_test-bin-quic_qlog_test.o" => [ + "test/quic_qlog_test.c" + ], + "test/quic_radix_test" => [ + "test/helpers/quic_radix_test-bin-noisydgrambio.o", + "test/helpers/quic_radix_test-bin-pktsplitbio.o", + "test/helpers/quic_radix_test-bin-quictestlib.o", + "test/helpers/quic_radix_test-bin-ssltestlib.o", + "test/radix/quic_radix_test-bin-quic_radix.o" + ], + "test/quic_rcidm_test" => [ + "test/quic_rcidm_test-bin-quic_rcidm_test.o" + ], + "test/quic_rcidm_test-bin-quic_rcidm_test.o" => [ + "test/quic_rcidm_test.c" + ], + "test/quic_record_test" => [ + "test/quic_record_test-bin-quic_record_test.o" + ], + "test/quic_record_test-bin-quic_record_test.o" => [ + "test/quic_record_test.c" + ], + "test/quic_srt_gen_test" => [ + "test/helpers/quic_srt_gen_test-bin-noisydgrambio.o", + "test/helpers/quic_srt_gen_test-bin-pktsplitbio.o", + "test/helpers/quic_srt_gen_test-bin-quictestlib.o", + "test/helpers/quic_srt_gen_test-bin-ssltestlib.o", + "test/quic_srt_gen_test-bin-quic_srt_gen_test.o" + ], + "test/quic_srt_gen_test-bin-quic_srt_gen_test.o" => [ + "test/quic_srt_gen_test.c" + ], + "test/quic_srtm_test" => [ + "test/quic_srtm_test-bin-quic_srtm_test.o" + ], + "test/quic_srtm_test-bin-quic_srtm_test.o" => [ + "test/quic_srtm_test.c" + ], + "test/quic_stream_test" => [ + "test/quic_stream_test-bin-quic_stream_test.o" + ], + "test/quic_stream_test-bin-quic_stream_test.o" => [ + "test/quic_stream_test.c" + ], + "test/quic_tserver_test" => [ + "test/quic_tserver_test-bin-quic_tserver_test.o" + ], + "test/quic_tserver_test-bin-quic_tserver_test.o" => [ + "test/quic_tserver_test.c" + ], + "test/quic_txp_test" => [ + "test/quic_txp_test-bin-cc_dummy.o", + "test/quic_txp_test-bin-quic_txp_test.o" + ], + "test/quic_txp_test-bin-cc_dummy.o" => [ + "test/cc_dummy.c" + ], + "test/quic_txp_test-bin-quic_txp_test.o" => [ + "test/quic_txp_test.c" + ], + "test/quic_txpim_test" => [ + "test/quic_txpim_test-bin-quic_txpim_test.o" + ], + "test/quic_txpim_test-bin-quic_txpim_test.o" => [ + "test/quic_txpim_test.c" + ], + "test/quic_wire_test" => [ + "test/quic_wire_test-bin-quic_wire_test.o" + ], + "test/quic_wire_test-bin-quic_wire_test.o" => [ + "test/quic_wire_test.c" + ], + "test/quicapitest" => [ + "test/helpers/quicapitest-bin-noisydgrambio.o", + "test/helpers/quicapitest-bin-pktsplitbio.o", + "test/helpers/quicapitest-bin-quictestlib.o", + "test/helpers/quicapitest-bin-ssltestlib.o", + "test/quicapitest-bin-quicapitest.o" + ], + "test/quicapitest-bin-quicapitest.o" => [ + "test/quicapitest.c" + ], + "test/quicfaultstest" => [ + "test/helpers/quicfaultstest-bin-noisydgrambio.o", + "test/helpers/quicfaultstest-bin-pktsplitbio.o", + "test/helpers/quicfaultstest-bin-quictestlib.o", + "test/helpers/quicfaultstest-bin-ssltestlib.o", + "test/quicfaultstest-bin-quicfaultstest.o" + ], + "test/quicfaultstest-bin-quicfaultstest.o" => [ + "test/quicfaultstest.c" + ], + "test/radix/quic_radix_test-bin-quic_radix.o" => [ + "test/radix/quic_radix.c" + ], "test/rand_status_test" => [ "test/rand_status_test-bin-rand_status_test.o" ], @@ -27310,11 +32322,11 @@ our %unified_info = ( "test/rc5test-bin-rc5test.o" => [ "test/rc5test.c" ], - "test/rdrand_sanitytest" => [ - "test/rdrand_sanitytest-bin-rdrand_sanitytest.o" + "test/rdcpu_sanitytest" => [ + "test/rdcpu_sanitytest-bin-rdcpu_sanitytest.o" ], - "test/rdrand_sanitytest-bin-rdrand_sanitytest.o" => [ - "test/rdrand_sanitytest.c" + "test/rdcpu_sanitytest-bin-rdcpu_sanitytest.o" => [ + "test/rdcpu_sanitytest.c" ], "test/recordlentest" => [ "test/helpers/recordlentest-bin-ssltestlib.o", @@ -27323,6 +32335,13 @@ our %unified_info = ( "test/recordlentest-bin-recordlentest.o" => [ "test/recordlentest.c" ], + "test/rpktest" => [ + "test/helpers/rpktest-bin-ssltestlib.o", + "test/rpktest-bin-rpktest.o" + ], + "test/rpktest-bin-rpktest.o" => [ + "test/rpktest.c" + ], "test/rsa_complex" => [ "test/rsa_complex-bin-rsa_complex.o" ], @@ -27347,6 +32366,18 @@ our %unified_info = ( "test/rsa_test-bin-rsa_test.o" => [ "test/rsa_test.c" ], + "test/rsa_x931_test" => [ + "test/rsa_x931_test-bin-rsa_x931_test.o" + ], + "test/rsa_x931_test-bin-rsa_x931_test.o" => [ + "test/rsa_x931_test.c" + ], + "test/safe_math_test" => [ + "test/safe_math_test-bin-safe_math_test.o" + ], + "test/safe_math_test-bin-safe_math_test.o" => [ + "test/safe_math_test.c" + ], "test/sanitytest" => [ "test/sanitytest-bin-sanitytest.o" ], @@ -27378,6 +32409,12 @@ our %unified_info = ( "test/siphash_internal_test-bin-siphash_internal_test.o" => [ "test/siphash_internal_test.c" ], + "test/slh_dsa_test" => [ + "test/slh_dsa_test-bin-slh_dsa_test.o" + ], + "test/slh_dsa_test-bin-slh_dsa_test.o" => [ + "test/slh_dsa_test.c" + ], "test/sm2_internal_test" => [ "test/sm2_internal_test-bin-sm2_internal_test.o" ], @@ -27420,6 +32457,13 @@ our %unified_info = ( "test/ssl_ctx_test-bin-ssl_ctx_test.o" => [ "test/ssl_ctx_test.c" ], + "test/ssl_handshake_rtt_test" => [ + "test/helpers/ssl_handshake_rtt_test-bin-ssltestlib.o", + "test/ssl_handshake_rtt_test-bin-ssl_handshake_rtt_test.o" + ], + "test/ssl_handshake_rtt_test-bin-ssl_handshake_rtt_test.o" => [ + "test/ssl_handshake_rtt_test.c" + ], "test/ssl_old_test" => [ "test/helpers/ssl_old_test-bin-predefined_dhparams.o", "test/ssl_old_test-bin-ssl_old_test.o" @@ -27478,6 +32522,12 @@ our %unified_info = ( "test/stack_test-bin-stack_test.o" => [ "test/stack_test.c" ], + "test/strtoultest" => [ + "test/strtoultest-bin-strtoultest.o" + ], + "test/strtoultest-bin-strtoultest.o" => [ + "test/strtoultest.c" + ], "test/sysdefaulttest" => [ "test/sysdefaulttest-bin-sysdefaulttest.o" ], @@ -27508,6 +32558,9 @@ our %unified_info = ( "test/testutil/libtestutil-lib-format_output.o" => [ "test/testutil/format_output.c" ], + "test/testutil/libtestutil-lib-helper.o" => [ + "test/testutil/helper.c" + ], "test/testutil/libtestutil-lib-load.o" => [ "test/testutil/load.c" ], @@ -27541,6 +32594,12 @@ our %unified_info = ( "test/testutil/libtestutil-lib-testutil_init.o" => [ "test/testutil/testutil_init.c" ], + "test/threadpool_test" => [ + "test/threadpool_test-bin-threadpool_test.o" + ], + "test/threadpool_test-bin-threadpool_test.o" => [ + "test/threadpool_test.c" + ], "test/threadstest" => [ "test/threadstest-bin-threadstest.o" ], @@ -27559,6 +32618,12 @@ our %unified_info = ( "test/time_offset_test-bin-time_offset_test.o" => [ "test/time_offset_test.c" ], + "test/time_test" => [ + "test/time_test-bin-time_test.o" + ], + "test/time_test-bin-time_test.o" => [ + "test/time_test.c" + ], "test/tls13ccstest" => [ "test/helpers/tls13ccstest-bin-ssltestlib.o", "test/tls13ccstest-bin-tls13ccstest.o" @@ -27572,6 +32637,13 @@ our %unified_info = ( "test/tls13encryptiontest-bin-tls13encryptiontest.o" => [ "test/tls13encryptiontest.c" ], + "test/tls13groupselection_test" => [ + "test/helpers/tls13groupselection_test-bin-ssltestlib.o", + "test/tls13groupselection_test-bin-tls13groupselection_test.o" + ], + "test/tls13groupselection_test-bin-tls13groupselection_test.o" => [ + "test/tls13groupselection_test.c" + ], "test/trace_api_test" => [ "test/trace_api_test-bin-trace_api_test.o" ], @@ -27627,6 +32699,12 @@ our %unified_info = ( "test/wpackettest-bin-wpackettest.o" => [ "test/wpackettest.c" ], + "test/x509_acert_test" => [ + "test/x509_acert_test-bin-x509_acert_test.o" + ], + "test/x509_acert_test-bin-x509_acert_test.o" => [ + "test/x509_acert_test.c" + ], "test/x509_check_cert_pkey_test" => [ "test/x509_check_cert_pkey_test-bin-x509_check_cert_pkey_test.o" ], @@ -27645,6 +32723,24 @@ our %unified_info = ( "test/x509_internal_test-bin-x509_internal_test.o" => [ "test/x509_internal_test.c" ], + "test/x509_load_cert_file_test" => [ + "test/x509_load_cert_file_test-bin-x509_load_cert_file_test.o" + ], + "test/x509_load_cert_file_test-bin-x509_load_cert_file_test.o" => [ + "test/x509_load_cert_file_test.c" + ], + "test/x509_req_test" => [ + "test/x509_req_test-bin-x509_req_test.o" + ], + "test/x509_req_test-bin-x509_req_test.o" => [ + "test/x509_req_test.c" + ], + "test/x509_test" => [ + "test/x509_test-bin-x509_test.o" + ], + "test/x509_test-bin-x509_test.o" => [ + "test/x509_test.c" + ], "test/x509_time_test" => [ "test/x509_time_test-bin-x509_time_test.o" ], @@ -27708,6 +32804,7 @@ my @makevars = ( "LDLIBS", "MT", "MTFLAGS", + "OBJCOPY", "PERL", "RANLIB", "RC", @@ -27721,6 +32818,12 @@ my %disabled_info = ( "asan" => { "macro" => "OPENSSL_NO_ASAN" }, + "brotli" => { + "macro" => "OPENSSL_NO_BROTLI" + }, + "brotli-dynamic" => { + "macro" => "OPENSSL_NO_BROTLI_DYNAMIC" + }, "comp" => { "macro" => "OPENSSL_NO_COMP", "skipped" => [ @@ -27733,6 +32836,9 @@ my %disabled_info = ( "crypto-mdebug-backtrace" => { "macro" => "OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE" }, + "demos" => { + "macro" => "OPENSSL_NO_DEMOS" + }, "ec_nistp_64_gcc_128" => { "macro" => "OPENSSL_NO_EC_NISTP_64_GCC_128" }, @@ -27742,12 +32848,24 @@ my %disabled_info = ( "external-tests" => { "macro" => "OPENSSL_NO_EXTERNAL_TESTS" }, + "fips-jitter" => { + "macro" => "OPENSSL_NO_FIPS_JITTER" + }, "fuzz-afl" => { "macro" => "OPENSSL_NO_FUZZ_AFL" }, "fuzz-libfuzzer" => { "macro" => "OPENSSL_NO_FUZZ_LIBFUZZER" }, + "h3demo" => { + "macro" => "OPENSSL_NO_H3DEMO" + }, + "hqinterop" => { + "macro" => "OPENSSL_NO_HQINTEROP" + }, + "jitter" => { + "macro" => "OPENSSL_NO_JITTER" + }, "ktls" => { "macro" => "OPENSSL_NO_KTLS" }, @@ -27763,6 +32881,9 @@ my %disabled_info = ( "msan" => { "macro" => "OPENSSL_NO_MSAN" }, + "pie" => { + "macro" => "OPENSSL_NO_PIE" + }, "rc5" => { "macro" => "OPENSSL_NO_RC5", "skipped" => [ @@ -27778,6 +32899,12 @@ my %disabled_info = ( "ssl3-method" => { "macro" => "OPENSSL_NO_SSL3_METHOD" }, + "sslkeylog" => { + "macro" => "OPENSSL_NO_SSLKEYLOG" + }, + "tfo" => { + "macro" => "OPENSSL_NO_TFO" + }, "trace" => { "macro" => "OPENSSL_NO_TRACE" }, @@ -27792,6 +32919,21 @@ my %disabled_info = ( }, "weak-ssl-ciphers" => { "macro" => "OPENSSL_NO_WEAK_SSL_CIPHERS" + }, + "winstore" => { + "macro" => "OPENSSL_NO_WINSTORE" + }, + "zlib" => { + "macro" => "OPENSSL_NO_ZLIB" + }, + "zlib-dynamic" => { + "macro" => "OPENSSL_NO_ZLIB_DYNAMIC" + }, + "zstd" => { + "macro" => "OPENSSL_NO_ZSTD" + }, + "zstd-dynamic" => { + "macro" => "OPENSSL_NO_ZSTD_DYNAMIC" } ); my @user_crossable = qw( AR AS CC CXX CPP LD MT RANLIB RC ); @@ -27805,15 +32947,15 @@ unless (caller) { use File::Copy; use Pod::Usage; - use lib '/home/runner/work/node/node/deps/openssl/openssl/util/perl'; - use OpenSSL::fallback '/home/runner/work/node/node/deps/openssl/openssl/external/perl/MODULES.txt'; + use lib '/node/deps/openssl/openssl/util/perl'; + use OpenSSL::fallback '/node/deps/openssl/openssl/external/perl/MODULES.txt'; my $here = dirname($0); if (scalar @ARGV == 0) { # With no arguments, re-create the build file # We do that in two steps, where the first step emits perl - # snipets. + # snippets. my $buildfile = $config{build_file}; my $buildfile_template = "$buildfile.in"; @@ -27833,7 +32975,7 @@ unless (caller) { ); use lib '.'; - use lib '/home/runner/work/node/node/deps/openssl/openssl/Configurations'; + use lib '/node/deps/openssl/openssl/Configurations'; use gentemplate; open my $buildfile_template_fh, ">$buildfile_template" @@ -27850,8 +32992,8 @@ unless (caller) { my $prepend = <<'_____'; use File::Spec::Functions; -use lib '/home/runner/work/node/node/deps/openssl/openssl/util/perl'; -use lib '/home/runner/work/node/node/deps/openssl/openssl/Configurations'; +use lib '/node/deps/openssl/openssl/util/perl'; +use lib '/node/deps/openssl/openssl/Configurations'; use lib '.'; use platform; _____ diff --git a/deps/openssl/config/archs/BSD-x86_64/asm_avx2/crypto/aes/aes-x86_64.s b/deps/openssl/config/archs/BSD-x86_64/asm_avx2/crypto/aes/aes-x86_64.s index 1e85beafbe4086..aeaa4d197b6101 100644 --- a/deps/openssl/config/archs/BSD-x86_64/asm_avx2/crypto/aes/aes-x86_64.s +++ b/deps/openssl/config/archs/BSD-x86_64/asm_avx2/crypto/aes/aes-x86_64.s @@ -1870,6 +1870,7 @@ AES_cbc_encrypt: .byte 0xf3,0xc3 .cfi_endproc .size AES_cbc_encrypt,.-AES_cbc_encrypt +.section .rodata .align 64 .LAES_Te: .long 0xa56363c6,0xa56363c6 @@ -2656,6 +2657,7 @@ AES_cbc_encrypt: .long 0x1b1b1b1b, 0x1b1b1b1b, 0, 0 .byte 65,69,83,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 .align 64 +.previous .section ".note.gnu.property", "a" .p2align 3 .long 1f - 0f diff --git a/deps/openssl/config/archs/BSD-x86_64/asm_avx2/crypto/aes/aesni-sha1-x86_64.s b/deps/openssl/config/archs/BSD-x86_64/asm_avx2/crypto/aes/aesni-sha1-x86_64.s index 2078fe2ab37874..aeafc094a08991 100644 --- a/deps/openssl/config/archs/BSD-x86_64/asm_avx2/crypto/aes/aesni-sha1-x86_64.s +++ b/deps/openssl/config/archs/BSD-x86_64/asm_avx2/crypto/aes/aesni-sha1-x86_64.s @@ -2718,6 +2718,7 @@ aesni_cbc_sha1_enc_avx: .byte 0xf3,0xc3 .cfi_endproc .size aesni_cbc_sha1_enc_avx,.-aesni_cbc_sha1_enc_avx +.section .rodata .align 64 K_XX_XX: .long 0x5a827999,0x5a827999,0x5a827999,0x5a827999 @@ -2729,6 +2730,7 @@ K_XX_XX: .byte 65,69,83,78,73,45,67,66,67,43,83,72,65,49,32,115,116,105,116,99,104,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 .align 64 +.previous .type aesni_cbc_sha1_enc_shaext,@function .align 32 aesni_cbc_sha1_enc_shaext: diff --git a/deps/openssl/config/archs/BSD-x86_64/asm_avx2/crypto/aes/aesni-sha256-x86_64.s b/deps/openssl/config/archs/BSD-x86_64/asm_avx2/crypto/aes/aesni-sha256-x86_64.s index c938e50b990bcd..f26bcd4772a4e7 100644 --- a/deps/openssl/config/archs/BSD-x86_64/asm_avx2/crypto/aes/aesni-sha256-x86_64.s +++ b/deps/openssl/config/archs/BSD-x86_64/asm_avx2/crypto/aes/aesni-sha256-x86_64.s @@ -34,6 +34,7 @@ aesni_cbc_sha256_enc: .cfi_endproc .size aesni_cbc_sha256_enc,.-aesni_cbc_sha256_enc +.section .rodata .align 64 .type K256,@object K256: @@ -76,6 +77,7 @@ K256: .long 0,0,0,0, 0,0,0,0 .byte 65,69,83,78,73,45,67,66,67,43,83,72,65,50,53,54,32,115,116,105,116,99,104,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 .align 64 +.previous .type aesni_cbc_sha256_enc_xop,@function .align 64 aesni_cbc_sha256_enc_xop: diff --git a/deps/openssl/config/archs/BSD-x86_64/asm_avx2/crypto/aes/aesni-x86_64.s b/deps/openssl/config/archs/BSD-x86_64/asm_avx2/crypto/aes/aesni-x86_64.s index 4e35b2b1d379c0..7970fdf0d4558f 100644 --- a/deps/openssl/config/archs/BSD-x86_64/asm_avx2/crypto/aes/aesni-x86_64.s +++ b/deps/openssl/config/archs/BSD-x86_64/asm_avx2/crypto/aes/aesni-x86_64.s @@ -4461,6 +4461,7 @@ __aesni_set_encrypt_key: .cfi_endproc .size aesni_set_encrypt_key,.-aesni_set_encrypt_key .size __aesni_set_encrypt_key,.-__aesni_set_encrypt_key +.section .rodata .align 64 .Lbswap_mask: .byte 15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0 @@ -4483,6 +4484,7 @@ __aesni_set_encrypt_key: .byte 65,69,83,32,102,111,114,32,73,110,116,101,108,32,65,69,83,45,78,73,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 .align 64 +.previous .section ".note.gnu.property", "a" .p2align 3 .long 1f - 0f diff --git a/deps/openssl/config/archs/BSD-x86_64/asm_avx2/crypto/aes/aesni-xts-avx512.s b/deps/openssl/config/archs/BSD-x86_64/asm_avx2/crypto/aes/aesni-xts-avx512.s new file mode 100644 index 00000000000000..4f2be52d04e1d4 --- /dev/null +++ b/deps/openssl/config/archs/BSD-x86_64/asm_avx2/crypto/aes/aesni-xts-avx512.s @@ -0,0 +1,45 @@ +.text +.globl aesni_xts_128_encrypt_avx512 +.globl aesni_xts_128_decrypt_avx512 + +aesni_xts_128_encrypt_avx512: +aesni_xts_128_decrypt_avx512: +.byte 0x0f,0x0b + .byte 0xf3,0xc3 + +.globl aesni_xts_256_encrypt_avx512 +.globl aesni_xts_256_decrypt_avx512 + +aesni_xts_256_encrypt_avx512: +aesni_xts_256_decrypt_avx512: +.byte 0x0f,0x0b + .byte 0xf3,0xc3 + +.globl aesni_xts_avx512_eligible +.type aesni_xts_avx512_eligible,@function +aesni_xts_avx512_eligible: + xorl %eax,%eax + .byte 0xf3,0xc3 +.size aesni_xts_avx512_eligible, .-aesni_xts_avx512_eligible + + .section ".note.gnu.property", "a" + .p2align 3 + .long 1f - 0f + .long 4f - 1f + .long 5 +0: + # "GNU" encoded with .byte, since .asciz isn't supported + # on Solaris. + .byte 0x47 + .byte 0x4e + .byte 0x55 + .byte 0 +1: + .p2align 3 + .long 0xc0000002 + .long 3f - 2f +2: + .long 3 +3: + .p2align 3 +4: diff --git a/deps/openssl/config/archs/BSD-x86_64/asm_avx2/crypto/aes/bsaes-x86_64.s b/deps/openssl/config/archs/BSD-x86_64/asm_avx2/crypto/aes/bsaes-x86_64.s index ff533b2df32c40..9705994c043782 100644 --- a/deps/openssl/config/archs/BSD-x86_64/asm_avx2/crypto/aes/bsaes-x86_64.s +++ b/deps/openssl/config/archs/BSD-x86_64/asm_avx2/crypto/aes/bsaes-x86_64.s @@ -1571,6 +1571,7 @@ ossl_bsaes_ctr32_encrypt_blocks: .align 16 ossl_bsaes_xts_encrypt: .cfi_startproc +.byte 243,15,30,250 movq %rsp,%rax .Lxts_enc_prologue: pushq %rbp @@ -2046,6 +2047,7 @@ ossl_bsaes_xts_encrypt: .align 16 ossl_bsaes_xts_decrypt: .cfi_startproc +.byte 243,15,30,250 movq %rsp,%rax .Lxts_dec_prologue: pushq %rbp @@ -2541,6 +2543,7 @@ ossl_bsaes_xts_decrypt: .cfi_endproc .size ossl_bsaes_xts_decrypt,.-ossl_bsaes_xts_decrypt .type _bsaes_const,@object +.section .rodata .align 64 _bsaes_const: .LM0ISR: @@ -2592,9 +2595,9 @@ _bsaes_const: .quad 0x02060a0e03070b0f, 0x0004080c0105090d .L63: .quad 0x6363636363636363, 0x6363636363636363 -.byte 66,105,116,45,115,108,105,99,101,100,32,65,69,83,32,102,111,114,32,120,56,54,95,54,52,47,83,83,83,69,51,44,32,69,109,105,108,105,97,32,75,195,164,115,112,101,114,44,32,80,101,116,101,114,32,83,99,104,119,97,98,101,44,32,65,110,100,121,32,80,111,108,121,97,107,111,118,0 .align 64 .size _bsaes_const,.-_bsaes_const +.byte 66,105,116,45,115,108,105,99,101,100,32,65,69,83,32,102,111,114,32,120,56,54,95,54,52,47,83,83,83,69,51,44,32,69,109,105,108,105,97,32,75,195,164,115,112,101,114,44,32,80,101,116,101,114,32,83,99,104,119,97,98,101,44,32,65,110,100,121,32,80,111,108,121,97,107,111,118,0 .section ".note.gnu.property", "a" .p2align 3 .long 1f - 0f diff --git a/deps/openssl/config/archs/BSD-x86_64/asm_avx2/crypto/aes/vpaes-x86_64.s b/deps/openssl/config/archs/BSD-x86_64/asm_avx2/crypto/aes/vpaes-x86_64.s index 7783c6a659f952..1c7816840a1fd4 100644 --- a/deps/openssl/config/archs/BSD-x86_64/asm_avx2/crypto/aes/vpaes-x86_64.s +++ b/deps/openssl/config/archs/BSD-x86_64/asm_avx2/crypto/aes/vpaes-x86_64.s @@ -758,6 +758,7 @@ _vpaes_preheat: .type _vpaes_consts,@object +.section .rodata .align 64 _vpaes_consts: .Lk_inv: @@ -853,9 +854,9 @@ _vpaes_consts: .Lk_dsbo: .quad 0x1387EA537EF94000, 0xC7AA6DB9D4943E2D .quad 0x12D7560F93441D00, 0xCA4B8159D8C58E9C -.byte 86,101,99,116,111,114,32,80,101,114,109,117,116,97,116,105,111,110,32,65,69,83,32,102,111,114,32,120,56,54,95,54,52,47,83,83,83,69,51,44,32,77,105,107,101,32,72,97,109,98,117,114,103,32,40,83,116,97,110,102,111,114,100,32,85,110,105,118,101,114,115,105,116,121,41,0 .align 64 .size _vpaes_consts,.-_vpaes_consts +.byte 86,101,99,116,111,114,32,80,101,114,109,117,116,97,116,105,111,110,32,65,69,83,32,102,111,114,32,120,56,54,95,54,52,47,83,83,83,69,51,44,32,77,105,107,101,32,72,97,109,98,117,114,103,32,40,83,116,97,110,102,111,114,100,32,85,110,105,118,101,114,115,105,116,121,41,0 .section ".note.gnu.property", "a" .p2align 3 .long 1f - 0f diff --git a/deps/openssl/config/archs/linux-x86_64/asm_avx2/crypto/bn/rsaz-avx512.s b/deps/openssl/config/archs/BSD-x86_64/asm_avx2/crypto/bn/rsaz-2k-avx512.s similarity index 71% rename from deps/openssl/config/archs/linux-x86_64/asm_avx2/crypto/bn/rsaz-avx512.s rename to deps/openssl/config/archs/BSD-x86_64/asm_avx2/crypto/bn/rsaz-2k-avx512.s index 08af694c2fd799..309f4fe9c30fe7 100644 --- a/deps/openssl/config/archs/linux-x86_64/asm_avx2/crypto/bn/rsaz-avx512.s +++ b/deps/openssl/config/archs/BSD-x86_64/asm_avx2/crypto/bn/rsaz-2k-avx512.s @@ -7,16 +7,16 @@ ossl_rsaz_avx512ifma_eligible: .byte 0xf3,0xc3 .size ossl_rsaz_avx512ifma_eligible, .-ossl_rsaz_avx512ifma_eligible -.globl ossl_rsaz_amm52x20_x1_256 -.globl ossl_rsaz_amm52x20_x2_256 +.globl ossl_rsaz_amm52x20_x1_ifma256 +.globl ossl_rsaz_amm52x20_x2_ifma256 .globl ossl_extract_multiplier_2x20_win5 -.type ossl_rsaz_amm52x20_x1_256,@function -ossl_rsaz_amm52x20_x1_256: -ossl_rsaz_amm52x20_x2_256: +.type ossl_rsaz_amm52x20_x1_ifma256,@function +ossl_rsaz_amm52x20_x1_ifma256: +ossl_rsaz_amm52x20_x2_ifma256: ossl_extract_multiplier_2x20_win5: .byte 0x0f,0x0b .byte 0xf3,0xc3 -.size ossl_rsaz_amm52x20_x1_256, .-ossl_rsaz_amm52x20_x1_256 +.size ossl_rsaz_amm52x20_x1_ifma256, .-ossl_rsaz_amm52x20_x1_ifma256 .section ".note.gnu.property", "a" .p2align 3 .long 1f - 0f diff --git a/deps/openssl/config/archs/BSD-x86_64/asm_avx2/crypto/bn/rsaz-2k-avxifma.s b/deps/openssl/config/archs/BSD-x86_64/asm_avx2/crypto/bn/rsaz-2k-avxifma.s new file mode 100644 index 00000000000000..4d776af5095e35 --- /dev/null +++ b/deps/openssl/config/archs/BSD-x86_64/asm_avx2/crypto/bn/rsaz-2k-avxifma.s @@ -0,0 +1,40 @@ +.text + +.globl ossl_rsaz_avxifma_eligible +.type ossl_rsaz_avxifma_eligible,@function +ossl_rsaz_avxifma_eligible: + xorl %eax,%eax + .byte 0xf3,0xc3 +.size ossl_rsaz_avxifma_eligible, .-ossl_rsaz_avxifma_eligible + +.globl ossl_rsaz_amm52x20_x1_avxifma256 +.globl ossl_rsaz_amm52x20_x2_avxifma256 +.globl ossl_extract_multiplier_2x20_win5_avx +.type ossl_rsaz_amm52x20_x1_avxifma256,@function +ossl_rsaz_amm52x20_x1_avxifma256: +ossl_rsaz_amm52x20_x2_avxifma256: +ossl_extract_multiplier_2x20_win5_avx: +.byte 0x0f,0x0b + .byte 0xf3,0xc3 +.size ossl_rsaz_amm52x20_x1_avxifma256, .-ossl_rsaz_amm52x20_x1_avxifma256 + .section ".note.gnu.property", "a" + .p2align 3 + .long 1f - 0f + .long 4f - 1f + .long 5 +0: + # "GNU" encoded with .byte, since .asciz isn't supported + # on Solaris. + .byte 0x47 + .byte 0x4e + .byte 0x55 + .byte 0 +1: + .p2align 3 + .long 0xc0000002 + .long 3f - 2f +2: + .long 3 +3: + .p2align 3 +4: diff --git a/deps/openssl/config/archs/BSD-x86_64/asm_avx2/crypto/bn/rsaz-3k-avx512.s b/deps/openssl/config/archs/BSD-x86_64/asm_avx2/crypto/bn/rsaz-3k-avx512.s new file mode 100644 index 00000000000000..a0a8b550a50517 --- /dev/null +++ b/deps/openssl/config/archs/BSD-x86_64/asm_avx2/crypto/bn/rsaz-3k-avx512.s @@ -0,0 +1,33 @@ +.text + +.globl ossl_rsaz_amm52x30_x1_ifma256 +.globl ossl_rsaz_amm52x30_x2_ifma256 +.globl ossl_extract_multiplier_2x30_win5 +.type ossl_rsaz_amm52x30_x1_ifma256,@function +ossl_rsaz_amm52x30_x1_ifma256: +ossl_rsaz_amm52x30_x2_ifma256: +ossl_extract_multiplier_2x30_win5: +.byte 0x0f,0x0b + .byte 0xf3,0xc3 +.size ossl_rsaz_amm52x30_x1_ifma256, .-ossl_rsaz_amm52x30_x1_ifma256 + .section ".note.gnu.property", "a" + .p2align 3 + .long 1f - 0f + .long 4f - 1f + .long 5 +0: + # "GNU" encoded with .byte, since .asciz isn't supported + # on Solaris. + .byte 0x47 + .byte 0x4e + .byte 0x55 + .byte 0 +1: + .p2align 3 + .long 0xc0000002 + .long 3f - 2f +2: + .long 3 +3: + .p2align 3 +4: diff --git a/deps/openssl/config/archs/BSD-x86_64/asm_avx2/crypto/bn/rsaz-3k-avxifma.s b/deps/openssl/config/archs/BSD-x86_64/asm_avx2/crypto/bn/rsaz-3k-avxifma.s new file mode 100644 index 00000000000000..e27748b02804e2 --- /dev/null +++ b/deps/openssl/config/archs/BSD-x86_64/asm_avx2/crypto/bn/rsaz-3k-avxifma.s @@ -0,0 +1,33 @@ +.text + +.globl ossl_rsaz_amm52x30_x1_avxifma256 +.globl ossl_rsaz_amm52x30_x2_avxifma256 +.globl ossl_extract_multiplier_2x30_win5_avx +.type ossl_rsaz_amm52x30_x1_avxifma256,@function +ossl_rsaz_amm52x30_x1_avxifma256: +ossl_rsaz_amm52x30_x2_avxifma256: +ossl_extract_multiplier_2x30_win5_avx: +.byte 0x0f,0x0b + .byte 0xf3,0xc3 +.size ossl_rsaz_amm52x30_x1_avxifma256, .-ossl_rsaz_amm52x30_x1_avxifma256 + .section ".note.gnu.property", "a" + .p2align 3 + .long 1f - 0f + .long 4f - 1f + .long 5 +0: + # "GNU" encoded with .byte, since .asciz isn't supported + # on Solaris. + .byte 0x47 + .byte 0x4e + .byte 0x55 + .byte 0 +1: + .p2align 3 + .long 0xc0000002 + .long 3f - 2f +2: + .long 3 +3: + .p2align 3 +4: diff --git a/deps/openssl/config/archs/BSD-x86_64/asm_avx2/crypto/bn/rsaz-4k-avx512.s b/deps/openssl/config/archs/BSD-x86_64/asm_avx2/crypto/bn/rsaz-4k-avx512.s new file mode 100644 index 00000000000000..5ee17c91b158b8 --- /dev/null +++ b/deps/openssl/config/archs/BSD-x86_64/asm_avx2/crypto/bn/rsaz-4k-avx512.s @@ -0,0 +1,33 @@ +.text + +.globl ossl_rsaz_amm52x40_x1_ifma256 +.globl ossl_rsaz_amm52x40_x2_ifma256 +.globl ossl_extract_multiplier_2x40_win5 +.type ossl_rsaz_amm52x40_x1_ifma256,@function +ossl_rsaz_amm52x40_x1_ifma256: +ossl_rsaz_amm52x40_x2_ifma256: +ossl_extract_multiplier_2x40_win5: +.byte 0x0f,0x0b + .byte 0xf3,0xc3 +.size ossl_rsaz_amm52x40_x1_ifma256, .-ossl_rsaz_amm52x40_x1_ifma256 + .section ".note.gnu.property", "a" + .p2align 3 + .long 1f - 0f + .long 4f - 1f + .long 5 +0: + # "GNU" encoded with .byte, since .asciz isn't supported + # on Solaris. + .byte 0x47 + .byte 0x4e + .byte 0x55 + .byte 0 +1: + .p2align 3 + .long 0xc0000002 + .long 3f - 2f +2: + .long 3 +3: + .p2align 3 +4: diff --git a/deps/openssl/config/archs/BSD-x86_64/asm_avx2/crypto/bn/rsaz-4k-avxifma.s b/deps/openssl/config/archs/BSD-x86_64/asm_avx2/crypto/bn/rsaz-4k-avxifma.s new file mode 100644 index 00000000000000..57a577a61e58ce --- /dev/null +++ b/deps/openssl/config/archs/BSD-x86_64/asm_avx2/crypto/bn/rsaz-4k-avxifma.s @@ -0,0 +1,33 @@ +.text + +.globl ossl_rsaz_amm52x40_x1_avxifma256 +.globl ossl_rsaz_amm52x40_x2_avxifma256 +.globl ossl_extract_multiplier_2x40_win5_avx +.type ossl_rsaz_amm52x40_x1_avxifma256,@function +ossl_rsaz_amm52x40_x1_avxifma256: +ossl_rsaz_amm52x40_x2_avxifma256: +ossl_extract_multiplier_2x40_win5_avx: +.byte 0x0f,0x0b + .byte 0xf3,0xc3 +.size ossl_rsaz_amm52x40_x1_avxifma256, .-ossl_rsaz_amm52x40_x1_avxifma256 + .section ".note.gnu.property", "a" + .p2align 3 + .long 1f - 0f + .long 4f - 1f + .long 5 +0: + # "GNU" encoded with .byte, since .asciz isn't supported + # on Solaris. + .byte 0x47 + .byte 0x4e + .byte 0x55 + .byte 0 +1: + .p2align 3 + .long 0xc0000002 + .long 3f - 2f +2: + .long 3 +3: + .p2align 3 +4: diff --git a/deps/openssl/config/archs/BSD-x86_64/asm_avx2/crypto/bn/rsaz-avx2.s b/deps/openssl/config/archs/BSD-x86_64/asm_avx2/crypto/bn/rsaz-avx2.s index 80d6c817664518..f58e783167f07b 100644 --- a/deps/openssl/config/archs/BSD-x86_64/asm_avx2/crypto/bn/rsaz-avx2.s +++ b/deps/openssl/config/archs/BSD-x86_64/asm_avx2/crypto/bn/rsaz-avx2.s @@ -1730,6 +1730,7 @@ rsaz_avx2_eligible: .byte 0xf3,0xc3 .size rsaz_avx2_eligible,.-rsaz_avx2_eligible +.section .rodata .align 64 .Land_mask: .quad 0x1fffffff,0x1fffffff,0x1fffffff,0x1fffffff @@ -1741,6 +1742,7 @@ rsaz_avx2_eligible: .long 0,0,0,0, 1,1,1,1 .long 2,2,2,2, 3,3,3,3 .long 4,4,4,4, 4,4,4,4 +.previous .align 64 .section ".note.gnu.property", "a" .p2align 3 diff --git a/deps/openssl/config/archs/BSD-x86_64/asm_avx2/crypto/bn/rsaz-x86_64.s b/deps/openssl/config/archs/BSD-x86_64/asm_avx2/crypto/bn/rsaz-x86_64.s index 0b2513c819db21..ca03617e929446 100644 --- a/deps/openssl/config/archs/BSD-x86_64/asm_avx2/crypto/bn/rsaz-x86_64.s +++ b/deps/openssl/config/archs/BSD-x86_64/asm_avx2/crypto/bn/rsaz-x86_64.s @@ -2009,10 +2009,12 @@ rsaz_512_gather4: .cfi_endproc .size rsaz_512_gather4,.-rsaz_512_gather4 +.section .rodata .align 64 .Linc: .long 0,0, 1,1 .long 2,2, 2,2 +.previous .section ".note.gnu.property", "a" .p2align 3 .long 1f - 0f diff --git a/deps/openssl/config/archs/BSD-x86_64/asm_avx2/crypto/bn/x86_64-mont5.s b/deps/openssl/config/archs/BSD-x86_64/asm_avx2/crypto/bn/x86_64-mont5.s index 0eb8b6c8b5c75b..1b7e7b922915f2 100644 --- a/deps/openssl/config/archs/BSD-x86_64/asm_avx2/crypto/bn/x86_64-mont5.s +++ b/deps/openssl/config/archs/BSD-x86_64/asm_avx2/crypto/bn/x86_64-mont5.s @@ -3596,11 +3596,13 @@ bn_gather5: .LSEH_end_bn_gather5: .cfi_endproc .size bn_gather5,.-bn_gather5 +.section .rodata .align 64 .Linc: .long 0,0, 1,1 .long 2,2, 2,2 .byte 77,111,110,116,103,111,109,101,114,121,32,77,117,108,116,105,112,108,105,99,97,116,105,111,110,32,119,105,116,104,32,115,99,97,116,116,101,114,47,103,97,116,104,101,114,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 +.previous .section ".note.gnu.property", "a" .p2align 3 .long 1f - 0f diff --git a/deps/openssl/config/archs/BSD-x86_64/asm_avx2/crypto/buildinf.h b/deps/openssl/config/archs/BSD-x86_64/asm_avx2/crypto/buildinf.h index a2efc4655115f8..71709472aac895 100644 --- a/deps/openssl/config/archs/BSD-x86_64/asm_avx2/crypto/buildinf.h +++ b/deps/openssl/config/archs/BSD-x86_64/asm_avx2/crypto/buildinf.h @@ -11,7 +11,7 @@ */ #define PLATFORM "platform: BSD-x86_64" -#define DATE "built on: Sun Jul 20 00:46:33 2025 UTC" +#define DATE "built on: Sun Jul 27 00:46:56 2025 UTC" /* * Generate compiler_flags as an array of individual characters. This is a diff --git a/deps/openssl/config/archs/BSD-x86_64/asm_avx2/crypto/camellia/cmll-x86_64.s b/deps/openssl/config/archs/BSD-x86_64/asm_avx2/crypto/camellia/cmll-x86_64.s index 605c25d74be399..c1a9846b51cb0c 100644 --- a/deps/openssl/config/archs/BSD-x86_64/asm_avx2/crypto/camellia/cmll-x86_64.s +++ b/deps/openssl/config/archs/BSD-x86_64/asm_avx2/crypto/camellia/cmll-x86_64.s @@ -1144,6 +1144,7 @@ Camellia_Ekeygen: .byte 0xf3,0xc3 .cfi_endproc .size Camellia_Ekeygen,.-Camellia_Ekeygen +.section .rodata .align 64 .LCamellia_SIGMA: .long 0x3bcc908b, 0xa09e667f, 0x4caa73b2, 0xb67ae858 @@ -1663,6 +1664,7 @@ Camellia_Ekeygen: .long 0x008f8f8f,0xe300e3e3 .long 0x00010101,0x40004040 .long 0x003d3d3d,0x4f004f4f +.text .globl Camellia_cbc_encrypt .type Camellia_cbc_encrypt,@function .align 16 diff --git a/deps/openssl/config/archs/BSD-x86_64/asm_avx2/crypto/chacha/chacha-x86_64.s b/deps/openssl/config/archs/BSD-x86_64/asm_avx2/crypto/chacha/chacha-x86_64.s index ec5251a82f42a4..bcdb0a922d6678 100644 --- a/deps/openssl/config/archs/BSD-x86_64/asm_avx2/crypto/chacha/chacha-x86_64.s +++ b/deps/openssl/config/archs/BSD-x86_64/asm_avx2/crypto/chacha/chacha-x86_64.s @@ -2,6 +2,7 @@ +.section .rodata .align 64 .Lzero: .long 0,0,0,0 @@ -33,6 +34,7 @@ .Lsigma: .byte 101,120,112,97,110,100,32,51,50,45,98,121,116,101,32,107,0 .byte 67,104,97,67,104,97,50,48,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 +.previous .globl ChaCha20_ctr32 .type ChaCha20_ctr32,@function .align 64 diff --git a/deps/openssl/config/archs/BSD-x86_64/asm_avx2/crypto/ec/ecp_nistz256-x86_64.s b/deps/openssl/config/archs/BSD-x86_64/asm_avx2/crypto/ec/ecp_nistz256-x86_64.s index 284c11748946b8..0cf1f47a7e67f9 100644 --- a/deps/openssl/config/archs/BSD-x86_64/asm_avx2/crypto/ec/ecp_nistz256-x86_64.s +++ b/deps/openssl/config/archs/BSD-x86_64/asm_avx2/crypto/ec/ecp_nistz256-x86_64.s @@ -1,4 +1,4 @@ -.text +.section .rodata .globl ecp_nistz256_precomputed .type ecp_nistz256_precomputed,@object .align 4096 @@ -2376,6 +2376,7 @@ ecp_nistz256_precomputed: +.section .rodata .align 64 .Lpoly: .quad 0xffffffffffffffff, 0x00000000ffffffff, 0x0000000000000000, 0xffffffff00000001 @@ -2398,6 +2399,7 @@ ecp_nistz256_precomputed: .quad 0xf3b9cac2fc632551, 0xbce6faada7179e84, 0xffffffffffffffff, 0xffffffff00000000 .LordK: .quad 0xccd1c8aaee00bc4f +.previous .globl ecp_nistz256_mul_by_2 .type ecp_nistz256_mul_by_2,@function diff --git a/deps/openssl/config/archs/BSD-x86_64/asm_avx2/crypto/md5/md5-x86_64.s b/deps/openssl/config/archs/BSD-x86_64/asm_avx2/crypto/md5/md5-x86_64.s index 85e1d0ca259271..6119335cb2e396 100644 --- a/deps/openssl/config/archs/BSD-x86_64/asm_avx2/crypto/md5/md5-x86_64.s +++ b/deps/openssl/config/archs/BSD-x86_64/asm_avx2/crypto/md5/md5-x86_64.s @@ -201,7 +201,7 @@ ossl_md5_block_asm_data_order: leal -165796510(%rax,%r10,1),%eax andl %ecx,%r11d movl 24(%rsi),%r10d - orl %r11d,%r12d + addl %r11d,%eax movl %ecx,%r11d addl %r12d,%eax movl %ecx,%r12d @@ -212,7 +212,7 @@ ossl_md5_block_asm_data_order: leal -1069501632(%rdx,%r10,1),%edx andl %ebx,%r11d movl 44(%rsi),%r10d - orl %r11d,%r12d + addl %r11d,%edx movl %ebx,%r11d addl %r12d,%edx movl %ebx,%r12d @@ -223,7 +223,7 @@ ossl_md5_block_asm_data_order: leal 643717713(%rcx,%r10,1),%ecx andl %eax,%r11d movl 0(%rsi),%r10d - orl %r11d,%r12d + addl %r11d,%ecx movl %eax,%r11d addl %r12d,%ecx movl %eax,%r12d @@ -234,7 +234,7 @@ ossl_md5_block_asm_data_order: leal -373897302(%rbx,%r10,1),%ebx andl %edx,%r11d movl 20(%rsi),%r10d - orl %r11d,%r12d + addl %r11d,%ebx movl %edx,%r11d addl %r12d,%ebx movl %edx,%r12d @@ -245,7 +245,7 @@ ossl_md5_block_asm_data_order: leal -701558691(%rax,%r10,1),%eax andl %ecx,%r11d movl 40(%rsi),%r10d - orl %r11d,%r12d + addl %r11d,%eax movl %ecx,%r11d addl %r12d,%eax movl %ecx,%r12d @@ -256,7 +256,7 @@ ossl_md5_block_asm_data_order: leal 38016083(%rdx,%r10,1),%edx andl %ebx,%r11d movl 60(%rsi),%r10d - orl %r11d,%r12d + addl %r11d,%edx movl %ebx,%r11d addl %r12d,%edx movl %ebx,%r12d @@ -267,7 +267,7 @@ ossl_md5_block_asm_data_order: leal -660478335(%rcx,%r10,1),%ecx andl %eax,%r11d movl 16(%rsi),%r10d - orl %r11d,%r12d + addl %r11d,%ecx movl %eax,%r11d addl %r12d,%ecx movl %eax,%r12d @@ -278,7 +278,7 @@ ossl_md5_block_asm_data_order: leal -405537848(%rbx,%r10,1),%ebx andl %edx,%r11d movl 36(%rsi),%r10d - orl %r11d,%r12d + addl %r11d,%ebx movl %edx,%r11d addl %r12d,%ebx movl %edx,%r12d @@ -289,7 +289,7 @@ ossl_md5_block_asm_data_order: leal 568446438(%rax,%r10,1),%eax andl %ecx,%r11d movl 56(%rsi),%r10d - orl %r11d,%r12d + addl %r11d,%eax movl %ecx,%r11d addl %r12d,%eax movl %ecx,%r12d @@ -300,7 +300,7 @@ ossl_md5_block_asm_data_order: leal -1019803690(%rdx,%r10,1),%edx andl %ebx,%r11d movl 12(%rsi),%r10d - orl %r11d,%r12d + addl %r11d,%edx movl %ebx,%r11d addl %r12d,%edx movl %ebx,%r12d @@ -311,7 +311,7 @@ ossl_md5_block_asm_data_order: leal -187363961(%rcx,%r10,1),%ecx andl %eax,%r11d movl 32(%rsi),%r10d - orl %r11d,%r12d + addl %r11d,%ecx movl %eax,%r11d addl %r12d,%ecx movl %eax,%r12d @@ -322,7 +322,7 @@ ossl_md5_block_asm_data_order: leal 1163531501(%rbx,%r10,1),%ebx andl %edx,%r11d movl 52(%rsi),%r10d - orl %r11d,%r12d + addl %r11d,%ebx movl %edx,%r11d addl %r12d,%ebx movl %edx,%r12d @@ -333,7 +333,7 @@ ossl_md5_block_asm_data_order: leal -1444681467(%rax,%r10,1),%eax andl %ecx,%r11d movl 8(%rsi),%r10d - orl %r11d,%r12d + addl %r11d,%eax movl %ecx,%r11d addl %r12d,%eax movl %ecx,%r12d @@ -344,7 +344,7 @@ ossl_md5_block_asm_data_order: leal -51403784(%rdx,%r10,1),%edx andl %ebx,%r11d movl 28(%rsi),%r10d - orl %r11d,%r12d + addl %r11d,%edx movl %ebx,%r11d addl %r12d,%edx movl %ebx,%r12d @@ -355,7 +355,7 @@ ossl_md5_block_asm_data_order: leal 1735328473(%rcx,%r10,1),%ecx andl %eax,%r11d movl 48(%rsi),%r10d - orl %r11d,%r12d + addl %r11d,%ecx movl %eax,%r11d addl %r12d,%ecx movl %eax,%r12d @@ -366,7 +366,7 @@ ossl_md5_block_asm_data_order: leal -1926607734(%rbx,%r10,1),%ebx andl %edx,%r11d movl 20(%rsi),%r10d - orl %r11d,%r12d + addl %r11d,%ebx movl %edx,%r11d addl %r12d,%ebx movl %edx,%r12d diff --git a/deps/openssl/config/archs/BSD-x86_64/asm_avx2/crypto/modes/aes-gcm-avx512.s b/deps/openssl/config/archs/BSD-x86_64/asm_avx2/crypto/modes/aes-gcm-avx512.s new file mode 100644 index 00000000000000..8b2c754f8d2336 --- /dev/null +++ b/deps/openssl/config/archs/BSD-x86_64/asm_avx2/crypto/modes/aes-gcm-avx512.s @@ -0,0 +1,48 @@ +.text +.globl ossl_vaes_vpclmulqdq_capable +.type ossl_vaes_vpclmulqdq_capable,@function +ossl_vaes_vpclmulqdq_capable: + xorl %eax,%eax + .byte 0xf3,0xc3 +.size ossl_vaes_vpclmulqdq_capable, .-ossl_vaes_vpclmulqdq_capable + +.globl ossl_aes_gcm_init_avx512 +.globl ossl_aes_gcm_setiv_avx512 +.globl ossl_aes_gcm_update_aad_avx512 +.globl ossl_aes_gcm_encrypt_avx512 +.globl ossl_aes_gcm_decrypt_avx512 +.globl ossl_aes_gcm_finalize_avx512 +.globl ossl_gcm_gmult_avx512 + +.type ossl_aes_gcm_init_avx512,@function +ossl_aes_gcm_init_avx512: +ossl_aes_gcm_setiv_avx512: +ossl_aes_gcm_update_aad_avx512: +ossl_aes_gcm_encrypt_avx512: +ossl_aes_gcm_decrypt_avx512: +ossl_aes_gcm_finalize_avx512: +ossl_gcm_gmult_avx512: +.byte 0x0f,0x0b + .byte 0xf3,0xc3 +.size ossl_aes_gcm_init_avx512, .-ossl_aes_gcm_init_avx512 + .section ".note.gnu.property", "a" + .p2align 3 + .long 1f - 0f + .long 4f - 1f + .long 5 +0: + # "GNU" encoded with .byte, since .asciz isn't supported + # on Solaris. + .byte 0x47 + .byte 0x4e + .byte 0x55 + .byte 0 +1: + .p2align 3 + .long 0xc0000002 + .long 3f - 2f +2: + .long 3 +3: + .p2align 3 +4: diff --git a/deps/openssl/config/archs/BSD-x86_64/asm_avx2/crypto/modes/aesni-gcm-x86_64.s b/deps/openssl/config/archs/BSD-x86_64/asm_avx2/crypto/modes/aesni-gcm-x86_64.s index e3813bf7cea0eb..4a7eca0125f321 100644 --- a/deps/openssl/config/archs/BSD-x86_64/asm_avx2/crypto/modes/aesni-gcm-x86_64.s +++ b/deps/openssl/config/archs/BSD-x86_64/asm_avx2/crypto/modes/aesni-gcm-x86_64.s @@ -774,6 +774,7 @@ aesni_gcm_encrypt: .byte 0xf3,0xc3 .cfi_endproc .size aesni_gcm_encrypt,.-aesni_gcm_encrypt +.section .rodata .align 64 .Lbswap_mask: .byte 15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0 @@ -786,6 +787,7 @@ aesni_gcm_encrypt: .Lone_lsb: .byte 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 .byte 65,69,83,45,78,73,32,71,67,77,32,109,111,100,117,108,101,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 +.previous .align 64 .section ".note.gnu.property", "a" .p2align 3 diff --git a/deps/openssl/config/archs/BSD-x86_64/asm_avx2/crypto/modes/ghash-x86_64.s b/deps/openssl/config/archs/BSD-x86_64/asm_avx2/crypto/modes/ghash-x86_64.s index 29dd9b13e956c6..894f152b263a52 100644 --- a/deps/openssl/config/archs/BSD-x86_64/asm_avx2/crypto/modes/ghash-x86_64.s +++ b/deps/openssl/config/archs/BSD-x86_64/asm_avx2/crypto/modes/ghash-x86_64.s @@ -708,6 +708,7 @@ gcm_ghash_4bit: .align 16 gcm_init_clmul: .cfi_startproc +.byte 243,15,30,250 .L_init_clmul: movdqu (%rsi),%xmm2 pshufd $78,%xmm2,%xmm2 @@ -1306,6 +1307,7 @@ gcm_ghash_clmul: .align 32 gcm_init_avx: .cfi_startproc +.byte 243,15,30,250 vzeroupper vmovdqu (%rsi),%xmm2 @@ -1798,6 +1800,7 @@ gcm_ghash_avx: .byte 0xf3,0xc3 .cfi_endproc .size gcm_ghash_avx,.-gcm_ghash_avx +.section .rodata .align 64 .Lbswap_mask: .byte 15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0 @@ -1851,6 +1854,7 @@ gcm_ghash_avx: .byte 71,72,65,83,72,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 .align 64 +.previous .section ".note.gnu.property", "a" .p2align 3 .long 1f - 0f diff --git a/deps/openssl/config/archs/BSD-x86_64/asm_avx2/crypto/params_idx.c b/deps/openssl/config/archs/BSD-x86_64/asm_avx2/crypto/params_idx.c new file mode 100644 index 00000000000000..9d76ffededc24c --- /dev/null +++ b/deps/openssl/config/archs/BSD-x86_64/asm_avx2/crypto/params_idx.c @@ -0,0 +1,3366 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from crypto/params_idx.c.in + * + * Copyright 2023 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + +#include "internal/e_os.h" +#include "internal/param_names.h" +#include + +/* Machine generated TRIE -- generated by util/perl/OpenSSL/paramnames.pm */ +int ossl_param_find_pidx(const char *s) +{ + switch(s[0]) { + default: + break; + case 'a': + switch(s[1]) { + default: + break; + case 'c': + if (strcmp("vp-info", s + 2) == 0) + return PIDX_KDF_PARAM_X942_ACVPINFO; + break; + case 'd': + switch(s[2]) { + default: + break; + case 'd': + if (strcmp("itional-random", s + 3) == 0) + return PIDX_SIGNATURE_PARAM_ADD_RANDOM; + break; + case '\0': + return PIDX_KDF_PARAM_ARGON2_AD; + } + break; + case 'e': + if (strcmp("ad", s + 2) == 0) + return PIDX_CIPHER_PARAM_AEAD; + break; + case 'l': + switch(s[2]) { + default: + break; + case 'g': + switch(s[3]) { + default: + break; + case '_': + if (strcmp("id_param", s + 4) == 0) + return PIDX_CIPHER_PARAM_ALGORITHM_ID_PARAMS_OLD; + break; + case 'i': + if (strcmp("d-absent", s + 4) == 0) + return PIDX_DIGEST_PARAM_ALGID_ABSENT; + break; + case 'o': + switch(s[4]) { + default: + break; + case 'r': + switch(s[5]) { + default: + break; + case 'i': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case 'h': + switch(s[8]) { + default: + break; + case 'm': + switch(s[9]) { + default: + break; + case '-': + switch(s[10]) { + default: + break; + case 'i': + switch(s[11]) { + default: + break; + case 'd': + switch(s[12]) { + default: + break; + case '-': + if (strcmp("params", s + 13) == 0) + return PIDX_ALG_PARAM_ALGORITHM_ID_PARAMS; + break; + case '\0': + return PIDX_ALG_PARAM_ALGORITHM_ID; + } + } + } + } + } + } + } + } + } + } + break; + case 'i': + if (strcmp("as", s + 3) == 0) + return PIDX_STORE_PARAM_ALIAS; + } + break; + case '\0': + return PIDX_PKEY_PARAM_EC_A; + } + break; + case 'b': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("sis-type", s + 2) == 0) + return PIDX_PKEY_PARAM_EC_CHAR2_TYPE; + break; + case 'i': + if (strcmp("ts", s + 2) == 0) + return PIDX_PKEY_PARAM_BITS; + break; + case 'l': + switch(s[2]) { + default: + break; + case 'o': + switch(s[3]) { + default: + break; + case 'c': + switch(s[4]) { + default: + break; + case 'k': + switch(s[5]) { + default: + break; + case '-': + if (strcmp("size", s + 6) == 0) + return PIDX_MAC_PARAM_BLOCK_SIZE; + break; + case '_': + if (strcmp("padding", s + 6) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_BLOCK_PADDING; + break; + case 's': + if (strcmp("ize", s + 6) == 0) + return PIDX_DIGEST_PARAM_BLOCK_SIZE; + } + } + } + } + break; + case 'u': + if (strcmp("ildinfo", s + 2) == 0) + return PIDX_PROV_PARAM_BUILDINFO; + break; + case '\0': + return PIDX_PKEY_PARAM_EC_B; + } + break; + case 'c': + switch(s[1]) { + default: + break; + case '-': + if (strcmp("rounds", s + 2) == 0) + return PIDX_MAC_PARAM_C_ROUNDS; + break; + case 'e': + if (strcmp("kalg", s + 2) == 0) + return PIDX_KDF_PARAM_CEK_ALG; + break; + case 'i': + if (strcmp("pher", s + 2) == 0) + return PIDX_ALG_PARAM_CIPHER; + break; + case 'o': + switch(s[2]) { + default: + break; + case 'f': + if (strcmp("actor", s + 3) == 0) + return PIDX_PKEY_PARAM_EC_COFACTOR; + break; + case 'n': + switch(s[3]) { + default: + break; + case 's': + if (strcmp("tant", s + 4) == 0) + return PIDX_KDF_PARAM_CONSTANT; + break; + case 't': + if (strcmp("ext-string", s + 4) == 0) + return PIDX_SIGNATURE_PARAM_CONTEXT_STRING; + } + } + break; + case 't': + switch(s[2]) { + default: + break; + case 's': + switch(s[3]) { + default: + break; + case '_': + if (strcmp("mode", s + 4) == 0) + return PIDX_CIPHER_PARAM_CTS_MODE; + break; + case '\0': + return PIDX_CIPHER_PARAM_CTS; + } + } + break; + case 'u': + switch(s[2]) { + default: + break; + case 's': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case 'o': + switch(s[5]) { + default: + break; + case 'm': + switch(s[6]) { + default: + break; + case '-': + if (strcmp("iv", s + 7) == 0) + return PIDX_CIPHER_PARAM_CUSTOM_IV; + break; + case '\0': + return PIDX_MAC_PARAM_CUSTOM; + } + } + } + } + } + } + break; + case 'd': + switch(s[1]) { + default: + break; + case '-': + if (strcmp("rounds", s + 2) == 0) + return PIDX_MAC_PARAM_D_ROUNDS; + break; + case 'a': + switch(s[2]) { + default: + break; + case 't': + switch(s[3]) { + default: + break; + case 'a': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 's': + if (strcmp("tructure", s + 6) == 0) + return PIDX_OBJECT_PARAM_DATA_STRUCTURE; + break; + case 't': + if (strcmp("ype", s + 6) == 0) + return PIDX_OBJECT_PARAM_DATA_TYPE; + } + break; + case '\0': + return PIDX_OBJECT_PARAM_DATA; + } + } + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'c': + switch(s[3]) { + default: + break; + case 'o': + if (strcmp("ded-from-explicit", s + 4) == 0) + return PIDX_PKEY_PARAM_EC_DECODED_FROM_EXPLICIT_PARAMS; + break; + case 'r': + if (strcmp("ypt-only", s + 4) == 0) + return PIDX_CIPHER_PARAM_DECRYPT_ONLY; + } + break; + case 'f': + if (strcmp("ault-digest", s + 3) == 0) + return PIDX_PKEY_PARAM_DEFAULT_DIGEST; + break; + case 's': + if (strcmp("c", s + 3) == 0) + return PIDX_OBJECT_PARAM_DESC; + break; + case 't': + if (strcmp("erministic", s + 3) == 0) + return PIDX_SIGNATURE_PARAM_DETERMINISTIC; + } + break; + case 'h': + if (strcmp("kem-ikm", s + 2) == 0) + return PIDX_PKEY_PARAM_DHKEM_IKM; + break; + case 'i': + switch(s[2]) { + default: + break; + case 'g': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case 's': + switch(s[5]) { + default: + break; + case 't': + switch(s[6]) { + default: + break; + case '-': + switch(s[7]) { + default: + break; + case 'c': + if (strcmp("heck", s + 8) == 0) + return PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK; + break; + case 'n': + if (strcmp("oinit", s + 8) == 0) + return PIDX_MAC_PARAM_DIGEST_NOINIT; + break; + case 'o': + if (strcmp("neshot", s + 8) == 0) + return PIDX_MAC_PARAM_DIGEST_ONESHOT; + break; + case 'p': + if (strcmp("rops", s + 8) == 0) + return PIDX_ASYM_CIPHER_PARAM_OAEP_DIGEST_PROPS; + break; + case 's': + if (strcmp("ize", s + 8) == 0) + return PIDX_PKEY_PARAM_DIGEST_SIZE; + } + break; + case '\0': + return PIDX_STORE_PARAM_DIGEST; + } + } + } + } + break; + case 's': + if (strcmp("tid", s + 3) == 0) + return PIDX_PKEY_PARAM_DIST_ID; + } + break; + case 'r': + if (strcmp("bg-no-trunc-md", s + 2) == 0) + return PIDX_PROV_PARAM_DRBG_TRUNC_DIGEST; + break; + case 's': + if (strcmp("a-sign-disabled", s + 2) == 0) + return PIDX_PROV_PARAM_DSA_SIGN_DISABLED; + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_D; + } + break; + case 'e': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("rly_clean", s + 2) == 0) + return PIDX_KDF_PARAM_EARLY_CLEAN; + break; + case 'c': + switch(s[2]) { + default: + break; + case 'd': + switch(s[3]) { + default: + break; + case 'h': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'c': + switch(s[6]) { + default: + break; + case 'o': + switch(s[7]) { + default: + break; + case 'f': + switch(s[8]) { + default: + break; + case 'a': + switch(s[9]) { + default: + break; + case 'c': + switch(s[10]) { + default: + break; + case 't': + switch(s[11]) { + default: + break; + case 'o': + switch(s[12]) { + default: + break; + case 'r': + switch(s[13]) { + default: + break; + case '-': + switch(s[14]) { + default: + break; + case 'c': + if (strcmp("heck", s + 15) == 0) + return PIDX_PROV_PARAM_ECDH_COFACTOR_CHECK; + break; + case 'm': + if (strcmp("ode", s + 15) == 0) + return PIDX_EXCHANGE_PARAM_EC_ECDH_COFACTOR_MODE; + } + } + } + } + } + } + } + } + } + } + } + } + } + break; + case 'm': + if (strcmp("s_check", s + 2) == 0) + return PIDX_KDF_PARAM_FIPS_EMS_CHECK; + break; + case 'n': + switch(s[2]) { + default: + break; + case 'c': + switch(s[3]) { + default: + break; + case 'o': + switch(s[4]) { + default: + break; + case 'd': + switch(s[5]) { + default: + break; + case 'e': + if (strcmp("d-pub-key", s + 6) == 0) + return PIDX_PKEY_PARAM_ENCODED_PUBLIC_KEY; + break; + case 'i': + if (strcmp("ng", s + 6) == 0) + return PIDX_PKEY_PARAM_EC_ENCODING; + } + } + break; + case 'r': + switch(s[4]) { + default: + break; + case 'y': + switch(s[5]) { + default: + break; + case 'p': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case '-': + switch(s[8]) { + default: + break; + case 'c': + if (strcmp("heck", s + 9) == 0) + return PIDX_CIPHER_PARAM_FIPS_ENCRYPT_CHECK; + break; + case 'l': + if (strcmp("evel", s + 9) == 0) + return PIDX_ENCODER_PARAM_ENCRYPT_LEVEL; + } + } + } + } + } + } + break; + case 'g': + if (strcmp("ine", s + 3) == 0) + return PIDX_ALG_PARAM_ENGINE; + break; + case 't': + switch(s[3]) { + default: + break; + case 'r': + switch(s[4]) { + default: + break; + case 'o': + switch(s[5]) { + default: + break; + case 'p': + switch(s[6]) { + default: + break; + case 'y': + switch(s[7]) { + default: + break; + case '_': + if (strcmp("required", s + 8) == 0) + return PIDX_DRBG_PARAM_ENTROPY_REQUIRED; + break; + case '\0': + return PIDX_KDF_PARAM_HMACDRBG_ENTROPY; + } + } + } + } + } + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_E; + break; + case 'x': + if (strcmp("pect", s + 2) == 0) + return PIDX_STORE_PARAM_EXPECT; + } + break; + case 'f': + switch(s[1]) { + default: + break; + case 'i': + switch(s[2]) { + default: + break; + case 'e': + if (strcmp("ld-type", s + 3) == 0) + return PIDX_PKEY_PARAM_EC_FIELD_TYPE; + break; + case 'n': + if (strcmp("gerprint", s + 3) == 0) + return PIDX_STORE_PARAM_FINGERPRINT; + break; + case 'p': + if (strcmp("s-indicator", s + 3) == 0) + return PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR; + } + } + break; + case 'g': + switch(s[1]) { + default: + break; + case 'e': + switch(s[2]) { + default: + break; + case 'n': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case 'r': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case 'e': + switch(s[8]) { + default: + break; + case '\0': + return PIDX_RAND_PARAM_GENERATE; + } + break; + case 'o': + if (strcmp("r", s + 8) == 0) + return PIDX_PKEY_PARAM_EC_GENERATOR; + } + } + } + } + } + } + break; + case 'i': + if (strcmp("ndex", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_GINDEX; + break; + case 'r': + switch(s[2]) { + default: + break; + case 'o': + switch(s[3]) { + default: + break; + case 'u': + switch(s[4]) { + default: + break; + case 'p': + switch(s[5]) { + default: + break; + case '-': + if (strcmp("check", s + 6) == 0) + return PIDX_PKEY_PARAM_EC_GROUP_CHECK_TYPE; + break; + case '\0': + return PIDX_PKEY_PARAM_GROUP_NAME; + } + } + } + } + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_G; + } + break; + case 'h': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("s-randkey", s + 2) == 0) + return PIDX_CIPHER_PARAM_HAS_RAND_KEY; + break; + case 'i': + if (strcmp("ndex", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_H; + break; + case 'k': + switch(s[2]) { + default: + break; + case 'd': + switch(s[3]) { + default: + break; + case 'f': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 6) == 0) + return PIDX_PROV_PARAM_HKDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 6) == 0) + return PIDX_PROV_PARAM_HKDF_KEY_CHECK; + } + } + } + } + break; + case 'm': + if (strcmp("ac-key-check", s + 2) == 0) + return PIDX_PROV_PARAM_HMAC_KEY_CHECK; + break; + case 's': + if (strcmp("_padding", s + 2) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_HS_PADDING; + } + break; + case 'i': + switch(s[1]) { + default: + break; + case 'd': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_KDF_PARAM_PKCS12_ID; + } + break; + case 'k': + if (strcmp("me", s + 2) == 0) + return PIDX_KEM_PARAM_IKME; + break; + case 'm': + if (strcmp("plicit-rejection", s + 2) == 0) + return PIDX_PKEY_PARAM_IMPLICIT_REJECTION; + break; + case 'n': + switch(s[2]) { + default: + break; + case 'c': + if (strcmp("lude-public", s + 3) == 0) + return PIDX_PKEY_PARAM_EC_INCLUDE_PUBLIC; + break; + case 'f': + if (strcmp("o", s + 3) == 0) + return PIDX_PASSPHRASE_PARAM_INFO; + break; + case 'p': + if (strcmp("ut-type", s + 3) == 0) + return PIDX_STORE_PARAM_INPUT_TYPE; + break; + case 's': + if (strcmp("tance", s + 3) == 0) + return PIDX_SIGNATURE_PARAM_INSTANCE; + } + break; + case 't': + switch(s[2]) { + default: + break; + case 'e': + switch(s[3]) { + default: + break; + case 'r': + switch(s[4]) { + default: + break; + case 'a': + if (strcmp("tion", s + 5) == 0) + return PIDX_GEN_PARAM_ITERATION; + break; + case '\0': + return PIDX_KDF_PARAM_ITER; + } + } + } + break; + case 'v': + switch(s[2]) { + default: + break; + case '-': + if (strcmp("generated", s + 3) == 0) + return PIDX_CIPHER_PARAM_AEAD_IV_GENERATED; + break; + case 'l': + if (strcmp("en", s + 3) == 0) + return PIDX_CIPHER_PARAM_IVLEN; + break; + case '\0': + return PIDX_MAC_PARAM_IV; + } + } + break; + case 'j': + switch(s[1]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_COFACTOR; + } + break; + case 'k': + switch(s[1]) { + default: + break; + case '1': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_PP_K1; + } + break; + case '2': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_PP_K2; + } + break; + case '3': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_PP_K3; + } + break; + case 'a': + if (strcmp("t", s + 2) == 0) + return PIDX_SIGNATURE_PARAM_KAT; + break; + case 'b': + if (strcmp("kdf-key-check", s + 2) == 0) + return PIDX_PROV_PARAM_KBKDF_KEY_CHECK; + break; + case 'd': + switch(s[2]) { + default: + break; + case 'f': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'd': + switch(s[5]) { + default: + break; + case 'i': + switch(s[6]) { + default: + break; + case 'g': + switch(s[7]) { + default: + break; + case 'e': + switch(s[8]) { + default: + break; + case 's': + switch(s[9]) { + default: + break; + case 't': + switch(s[10]) { + default: + break; + case '-': + if (strcmp("props", s + 11) == 0) + return PIDX_EXCHANGE_PARAM_KDF_DIGEST_PROPS; + break; + case '\0': + return PIDX_EXCHANGE_PARAM_KDF_DIGEST; + } + } + } + } + } + } + break; + case 'o': + if (strcmp("utlen", s + 5) == 0) + return PIDX_EXCHANGE_PARAM_KDF_OUTLEN; + break; + case 't': + if (strcmp("ype", s + 5) == 0) + return PIDX_EXCHANGE_PARAM_KDF_TYPE; + break; + case 'u': + if (strcmp("km", s + 5) == 0) + return PIDX_EXCHANGE_PARAM_KDF_UKM; + } + } + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'y': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'c': + if (strcmp("heck", s + 5) == 0) + return PIDX_PKEY_PARAM_FIPS_KEY_CHECK; + break; + case 'l': + if (strcmp("ength", s + 5) == 0) + return PIDX_SKEY_PARAM_KEY_LENGTH; + } + break; + case 'b': + if (strcmp("its", s + 4) == 0) + return PIDX_CIPHER_PARAM_RC2_KEYBITS; + break; + case 'l': + if (strcmp("en", s + 4) == 0) + return PIDX_CIPHER_PARAM_KEYLEN; + break; + case '\0': + return PIDX_MAC_PARAM_KEY; + } + } + break; + case 'm': + if (strcmp("ac-key-check", s + 2) == 0) + return PIDX_PROV_PARAM_KMAC_KEY_CHECK; + } + break; + case 'l': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'b': + if (strcmp("el", s + 3) == 0) + return PIDX_KDF_PARAM_LABEL; + break; + case 'n': + if (strcmp("es", s + 3) == 0) + return PIDX_KDF_PARAM_ARGON2_LANES; + } + } + break; + case 'm': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'c': + switch(s[3]) { + default: + break; + case 'k': + if (strcmp("ey", s + 4) == 0) + return PIDX_CIPHER_PARAM_AEAD_MAC_KEY; + break; + case 'l': + if (strcmp("en", s + 4) == 0) + return PIDX_KDF_PARAM_MAC_SIZE; + break; + case '\0': + return PIDX_ALG_PARAM_MAC; + } + break; + case 'n': + if (strcmp("datory-digest", s + 3) == 0) + return PIDX_PKEY_PARAM_MANDATORY_DIGEST; + break; + case 'x': + switch(s[3]) { + default: + break; + case '-': + if (strcmp("size", s + 4) == 0) + return PIDX_PKEY_PARAM_MAX_SIZE; + break; + case '_': + switch(s[4]) { + default: + break; + case 'a': + if (strcmp("dinlen", s + 5) == 0) + return PIDX_DRBG_PARAM_MAX_ADINLEN; + break; + case 'e': + switch(s[5]) { + default: + break; + case 'a': + if (strcmp("rly_data", s + 6) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_MAX_EARLY_DATA; + break; + case 'n': + if (strcmp("tropylen", s + 6) == 0) + return PIDX_DRBG_PARAM_MAX_ENTROPYLEN; + } + break; + case 'f': + if (strcmp("rag_len", s + 5) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_MAX_FRAG_LEN; + break; + case 'n': + if (strcmp("oncelen", s + 5) == 0) + return PIDX_DRBG_PARAM_MAX_NONCELEN; + break; + case 'p': + if (strcmp("erslen", s + 5) == 0) + return PIDX_DRBG_PARAM_MAX_PERSLEN; + break; + case 'r': + if (strcmp("equest", s + 5) == 0) + return PIDX_RAND_PARAM_MAX_REQUEST; + } + break; + case 'i': + if (strcmp("um_length", s + 4) == 0) + return PIDX_DRBG_PARAM_MAX_LENGTH; + break; + case 'm': + if (strcmp("em_bytes", s + 4) == 0) + return PIDX_KDF_PARAM_SCRYPT_MAXMEM; + } + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'm': + if (strcmp("cost", s + 3) == 0) + return PIDX_KDF_PARAM_ARGON2_MEMCOST; + break; + case 's': + if (strcmp("sage-encoding", s + 3) == 0) + return PIDX_SIGNATURE_PARAM_MESSAGE_ENCODING; + } + break; + case 'g': + switch(s[2]) { + default: + break; + case 'f': + switch(s[3]) { + default: + break; + case '1': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'd': + if (strcmp("igest", s + 6) == 0) + return PIDX_PKEY_PARAM_MGF1_DIGEST; + break; + case 'p': + if (strcmp("roperties", s + 6) == 0) + return PIDX_PKEY_PARAM_MGF1_PROPERTIES; + } + } + break; + case '\0': + return PIDX_PKEY_PARAM_MASKGENFUNC; + } + } + break; + case 'i': + switch(s[2]) { + default: + break; + case 'c': + if (strcmp("alg", s + 3) == 0) + return PIDX_DIGEST_PARAM_MICALG; + break; + case 'n': + switch(s[3]) { + default: + break; + case '_': + switch(s[4]) { + default: + break; + case 'e': + if (strcmp("ntropylen", s + 5) == 0) + return PIDX_DRBG_PARAM_MIN_ENTROPYLEN; + break; + case 'n': + if (strcmp("oncelen", s + 5) == 0) + return PIDX_DRBG_PARAM_MIN_NONCELEN; + } + break; + case 'i': + if (strcmp("um_length", s + 4) == 0) + return PIDX_DRBG_PARAM_MIN_LENGTH; + } + } + break; + case 'l': + switch(s[2]) { + default: + break; + case '-': + switch(s[3]) { + default: + break; + case 'd': + switch(s[4]) { + default: + break; + case 's': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case '.': + switch(s[7]) { + default: + break; + case 'i': + if (strcmp("nput_formats", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_DSA_INPUT_FORMATS; + break; + case 'o': + if (strcmp("utput_formats", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_DSA_OUTPUT_FORMATS; + break; + case 'p': + if (strcmp("refer_seed", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_DSA_PREFER_SEED; + break; + case 'r': + if (strcmp("etain_seed", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_DSA_RETAIN_SEED; + } + } + } + } + break; + case 'k': + switch(s[4]) { + default: + break; + case 'e': + switch(s[5]) { + default: + break; + case 'm': + switch(s[6]) { + default: + break; + case '.': + switch(s[7]) { + default: + break; + case 'i': + switch(s[8]) { + default: + break; + case 'm': + if (strcmp("port_pct_type", s + 9) == 0) + return PIDX_PKEY_PARAM_ML_KEM_IMPORT_PCT_TYPE; + break; + case 'n': + if (strcmp("put_formats", s + 9) == 0) + return PIDX_PKEY_PARAM_ML_KEM_INPUT_FORMATS; + } + break; + case 'o': + if (strcmp("utput_formats", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_KEM_OUTPUT_FORMATS; + break; + case 'p': + if (strcmp("refer_seed", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_KEM_PREFER_SEED; + break; + case 'r': + if (strcmp("etain_seed", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_KEM_RETAIN_SEED; + } + } + } + } + } + } + break; + case 'o': + switch(s[2]) { + default: + break; + case 'd': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case '\0': + return PIDX_LIBSSL_RECORD_LAYER_PARAM_MODE; + } + break; + case 'u': + if (strcmp("le-filename", s + 4) == 0) + return PIDX_PROV_PARAM_CORE_MODULE_FILENAME; + } + } + break; + case 'u': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_SIGNATURE_PARAM_MU; + } + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_M; + } + break; + case 'n': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("me", s + 2) == 0) + return PIDX_STORE_PARAM_ISSUER; + break; + case 'o': + switch(s[2]) { + default: + break; + case '-': + if (strcmp("short-mac", s + 3) == 0) + return PIDX_PROV_PARAM_NO_SHORT_MAC; + break; + case 'n': + switch(s[3]) { + default: + break; + case 'c': + switch(s[4]) { + default: + break; + case 'e': + switch(s[5]) { + default: + break; + case '-': + if (strcmp("type", s + 6) == 0) + return PIDX_SIGNATURE_PARAM_NONCE_TYPE; + break; + case '\0': + return PIDX_KDF_PARAM_HMACDRBG_NONCE; + } + } + } + } + break; + case 'u': + if (strcmp("m", s + 2) == 0) + return PIDX_CIPHER_PARAM_NUM; + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_N; + } + break; + case 'o': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("ep-label", s + 2) == 0) + return PIDX_ASYM_CIPHER_PARAM_OAEP_LABEL; + break; + case 'p': + switch(s[2]) { + default: + break; + case 'e': + switch(s[3]) { + default: + break; + case 'n': + if (strcmp("ssl-version", s + 4) == 0) + return PIDX_PROV_PARAM_CORE_VERSION; + break; + case 'r': + if (strcmp("ation", s + 4) == 0) + return PIDX_KEM_PARAM_OPERATION; + } + break; + case 't': + if (strcmp("ions", s + 3) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_OPTIONS; + } + break; + case 'r': + if (strcmp("der", s + 2) == 0) + return PIDX_PKEY_PARAM_EC_ORDER; + } + break; + case 'p': + switch(s[1]) { + default: + break; + case '1': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_P1; + } + break; + case '2': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_P2; + } + break; + case 'a': + switch(s[2]) { + default: + break; + case 'd': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'm': + if (strcmp("ode", s + 5) == 0) + return PIDX_PKEY_PARAM_PAD_MODE; + break; + case 't': + if (strcmp("ype", s + 5) == 0) + return PIDX_DIGEST_PARAM_PAD_TYPE; + } + break; + case 'd': + if (strcmp("ing", s + 4) == 0) + return PIDX_CIPHER_PARAM_PADDING; + break; + case '\0': + return PIDX_EXCHANGE_PARAM_PAD; + } + break; + case 'r': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case 'y': + switch(s[5]) { + default: + break; + case 'u': + if (strcmp("-info", s + 6) == 0) + return PIDX_KDF_PARAM_X942_PARTYUINFO; + break; + case 'v': + if (strcmp("-info", s + 6) == 0) + return PIDX_KDF_PARAM_X942_PARTYVINFO; + } + } + } + break; + case 's': + if (strcmp("s", s + 3) == 0) + return PIDX_KDF_PARAM_PASSWORD; + } + break; + case 'b': + switch(s[2]) { + default: + break; + case 'i': + if (strcmp("ts", s + 3) == 0) + return PIDX_PKEY_PARAM_FFC_PBITS; + break; + case 'k': + if (strcmp("df2-lower-bound-check", s + 3) == 0) + return PIDX_PROV_PARAM_PBKDF2_LOWER_BOUND_CHECK; + } + break; + case 'c': + if (strcmp("ounter", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_PCOUNTER; + break; + case 'i': + if (strcmp("peline-tag", s + 2) == 0) + return PIDX_CIPHER_PARAM_PIPELINE_AEAD_TAG; + break; + case 'k': + if (strcmp("cs5", s + 2) == 0) + return PIDX_KDF_PARAM_PKCS5; + break; + case 'o': + switch(s[2]) { + default: + break; + case 'i': + if (strcmp("nt-format", s + 3) == 0) + return PIDX_PKEY_PARAM_EC_POINT_CONVERSION_FORMAT; + break; + case 't': + if (strcmp("ential", s + 3) == 0) + return PIDX_GEN_PARAM_POTENTIAL; + } + break; + case 'r': + switch(s[2]) { + default: + break; + case 'e': + switch(s[3]) { + default: + break; + case 'd': + if (strcmp("iction_resistance", s + 4) == 0) + return PIDX_DRBG_PARAM_PREDICTION_RESISTANCE; + break; + case 'f': + if (strcmp("ix", s + 4) == 0) + return PIDX_KDF_PARAM_PREFIX; + } + break; + case 'i': + switch(s[3]) { + default: + break; + case 'm': + if (strcmp("es", s + 4) == 0) + return PIDX_PKEY_PARAM_RSA_PRIMES; + break; + case 'v': + switch(s[4]) { + default: + break; + case '_': + if (strcmp("len", s + 5) == 0) + return PIDX_PKEY_PARAM_DH_PRIV_LEN; + break; + case '\0': + return PIDX_PKEY_PARAM_PRIV_KEY; + } + } + break; + case 'o': + switch(s[3]) { + default: + break; + case 'p': + if (strcmp("erties", s + 4) == 0) + return PIDX_STORE_PARAM_PROPERTIES; + break; + case 'v': + if (strcmp("ider-name", s + 4) == 0) + return PIDX_PROV_PARAM_CORE_PROV_NAME; + } + } + break; + case 'u': + if (strcmp("b", s + 2) == 0) + return PIDX_PKEY_PARAM_PUB_KEY; + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_P; + } + break; + case 'q': + switch(s[1]) { + default: + break; + case '1': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_Q1; + } + break; + case '2': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_Q2; + } + break; + case 'b': + if (strcmp("its", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_QBITS; + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_Q; + break; + case 'x': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_PUB_X; + } + break; + case 'y': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_PUB_Y; + } + } + break; + case 'r': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'n': + switch(s[3]) { + default: + break; + case 'd': + switch(s[4]) { + default: + break; + case 'k': + if (strcmp("ey", s + 5) == 0) + return PIDX_CIPHER_PARAM_RANDOM_KEY; + break; + case 'o': + if (strcmp("m_data", s + 5) == 0) + return PIDX_DRBG_PARAM_RANDOM_DATA; + } + } + break; + case 'w': + if (strcmp("-bytes", s + 3) == 0) + return PIDX_SKEY_PARAM_RAW_BYTES; + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'a': + switch(s[3]) { + default: + break; + case 'd': + switch(s[4]) { + default: + break; + case '_': + switch(s[5]) { + default: + break; + case 'a': + if (strcmp("head", s + 6) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_READ_AHEAD; + break; + case 'b': + if (strcmp("uffer_len", s + 6) == 0) + return PIDX_LIBSSL_RECORD_LAYER_READ_BUFFER_LEN; + } + } + } + break; + case 'f': + if (strcmp("erence", s + 3) == 0) + return PIDX_OBJECT_PARAM_REFERENCE; + break; + case 's': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case 'e': + switch(s[5]) { + default: + break; + case 'd': + switch(s[6]) { + default: + break; + case '_': + switch(s[7]) { + default: + break; + case 'c': + if (strcmp("ounter", s + 8) == 0) + return PIDX_DRBG_PARAM_RESEED_COUNTER; + break; + case 'r': + if (strcmp("equests", s + 8) == 0) + return PIDX_DRBG_PARAM_RESEED_REQUESTS; + break; + case 't': + switch(s[8]) { + default: + break; + case 'i': + switch(s[9]) { + default: + break; + case 'm': + switch(s[10]) { + default: + break; + case 'e': + switch(s[11]) { + default: + break; + case '_': + if (strcmp("interval", s + 12) == 0) + return PIDX_DRBG_PARAM_RESEED_TIME_INTERVAL; + break; + case '\0': + return PIDX_DRBG_PARAM_RESEED_TIME; + } + } + } + } + } + } + } + } + } + } + break; + case 'o': + if (strcmp("unds", s + 2) == 0) + return PIDX_CIPHER_PARAM_ROUNDS; + break; + case 's': + switch(s[2]) { + default: + break; + case 'a': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'c': + switch(s[5]) { + default: + break; + case 'o': + switch(s[6]) { + default: + break; + case 'e': + switch(s[7]) { + default: + break; + case 'f': + switch(s[8]) { + default: + break; + case 'f': + switch(s[9]) { + default: + break; + case 'i': + switch(s[10]) { + default: + break; + case 'c': + switch(s[11]) { + default: + break; + case 'i': + switch(s[12]) { + default: + break; + case 'e': + switch(s[13]) { + default: + break; + case 'n': + switch(s[14]) { + default: + break; + case 't': + switch(s[15]) { + default: + break; + case '1': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT1; + } + break; + case '2': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT2; + } + break; + case '3': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT3; + } + break; + case '4': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT4; + } + break; + case '5': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT5; + } + break; + case '6': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT6; + } + break; + case '7': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT7; + } + break; + case '8': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT8; + } + break; + case '9': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT9; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT; + } + } + } + } + } + } + } + } + } + } + } + break; + case 'd': + if (strcmp("erive-from-pq", s + 5) == 0) + return PIDX_PKEY_PARAM_RSA_DERIVE_FROM_PQ; + break; + case 'e': + switch(s[5]) { + default: + break; + case 'x': + switch(s[6]) { + default: + break; + case 'p': + switch(s[7]) { + default: + break; + case 'o': + switch(s[8]) { + default: + break; + case 'n': + switch(s[9]) { + default: + break; + case 'e': + switch(s[10]) { + default: + break; + case 'n': + switch(s[11]) { + default: + break; + case 't': + switch(s[12]) { + default: + break; + case '1': + switch(s[13]) { + default: + break; + case '0': + switch(s[14]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT10; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT1; + } + break; + case '2': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT2; + } + break; + case '3': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT3; + } + break; + case '4': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT4; + } + break; + case '5': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT5; + } + break; + case '6': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT6; + } + break; + case '7': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT7; + } + break; + case '8': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT8; + } + break; + case '9': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT9; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT; + } + } + } + } + } + } + } + } + break; + case 'f': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case 'c': + switch(s[7]) { + default: + break; + case 't': + switch(s[8]) { + default: + break; + case 'o': + switch(s[9]) { + default: + break; + case 'r': + switch(s[10]) { + default: + break; + case '1': + switch(s[11]) { + default: + break; + case '0': + switch(s[12]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR10; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR1; + } + break; + case '2': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR2; + } + break; + case '3': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR3; + } + break; + case '4': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR4; + } + break; + case '5': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR5; + } + break; + case '6': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR6; + } + break; + case '7': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR7; + } + break; + case '8': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR8; + } + break; + case '9': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR9; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR; + } + } + } + } + } + } + break; + case 'p': + switch(s[5]) { + default: + break; + case 'k': + if (strcmp("cs15-pad-disabled", s + 6) == 0) + return PIDX_PROV_PARAM_RSA_PKCS15_PAD_DISABLED; + break; + case 's': + if (strcmp("s-saltlen-check", s + 6) == 0) + return PIDX_SIGNATURE_PARAM_FIPS_RSA_PSS_SALTLEN_CHECK; + } + break; + case 's': + if (strcmp("ign-x931-pad-disabled", s + 5) == 0) + return PIDX_PROV_PARAM_RSA_SIGN_X931_PAD_DISABLED; + } + } + } + break; + case '\0': + return PIDX_KDF_PARAM_SCRYPT_R; + } + break; + case 's': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'f': + if (strcmp("eprime-generator", s + 3) == 0) + return PIDX_PKEY_PARAM_DH_GENERATOR; + break; + case 'l': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case 'l': + if (strcmp("en", s + 5) == 0) + return PIDX_SIGNATURE_PARAM_PSS_SALTLEN; + break; + case '\0': + return PIDX_MAC_PARAM_SALT; + } + } + break; + case 'v': + if (strcmp("e-parameters", s + 3) == 0) + return PIDX_ENCODER_PARAM_SAVE_PARAMETERS; + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'c': + switch(s[3]) { + default: + break; + case 'r': + if (strcmp("et", s + 4) == 0) + return PIDX_KDF_PARAM_SECRET; + break; + case 'u': + switch(s[4]) { + default: + break; + case 'r': + switch(s[5]) { + default: + break; + case 'i': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case 'y': + switch(s[8]) { + default: + break; + case '-': + switch(s[9]) { + default: + break; + case 'b': + if (strcmp("its", s + 10) == 0) + return PIDX_PKEY_PARAM_SECURITY_BITS; + break; + case 'c': + if (strcmp("hecks", s + 10) == 0) + return PIDX_PROV_PARAM_SECURITY_CHECKS; + } + } + } + } + } + } + } + break; + case 'e': + if (strcmp("d", s + 3) == 0) + return PIDX_PKEY_PARAM_SLH_DSA_SEED; + break; + case 'r': + if (strcmp("ial", s + 3) == 0) + return PIDX_STORE_PARAM_SERIAL; + break; + case 's': + if (strcmp("sion_id", s + 3) == 0) + return PIDX_KDF_PARAM_SSHKDF_SESSION_ID; + } + break; + case 'i': + switch(s[2]) { + default: + break; + case 'g': + switch(s[3]) { + default: + break; + case 'n': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'c': + if (strcmp("heck", s + 6) == 0) + return PIDX_PKEY_PARAM_FIPS_SIGN_CHECK; + break; + case 'x': + if (strcmp("931-pad-check", s + 6) == 0) + return PIDX_SIGNATURE_PARAM_FIPS_SIGN_X931_PAD_CHECK; + } + break; + case 'a': + switch(s[5]) { + default: + break; + case 't': + switch(s[6]) { + default: + break; + case 'u': + switch(s[7]) { + default: + break; + case 'r': + switch(s[8]) { + default: + break; + case 'e': + switch(s[9]) { + default: + break; + case '-': + if (strcmp("digest-check", s + 10) == 0) + return PIDX_PROV_PARAM_SIGNATURE_DIGEST_CHECK; + break; + case '\0': + return PIDX_SIGNATURE_PARAM_SIGNATURE; + } + } + } + } + } + } + } + break; + case 'z': + if (strcmp("e", s + 3) == 0) + return PIDX_MAC_PARAM_SIZE; + } + break; + case 'p': + if (strcmp("eed", s + 2) == 0) + return PIDX_CIPHER_PARAM_SPEED; + break; + case 's': + switch(s[2]) { + default: + break; + case 'h': + switch(s[3]) { + default: + break; + case 'k': + switch(s[4]) { + default: + break; + case 'd': + switch(s[5]) { + default: + break; + case 'f': + switch(s[6]) { + default: + break; + case '-': + switch(s[7]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 8) == 0) + return PIDX_PROV_PARAM_SSHKDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 8) == 0) + return PIDX_PROV_PARAM_SSHKDF_KEY_CHECK; + } + } + } + } + } + break; + case 'k': + switch(s[3]) { + default: + break; + case 'd': + switch(s[4]) { + default: + break; + case 'f': + switch(s[5]) { + default: + break; + case '-': + switch(s[6]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 7) == 0) + return PIDX_PROV_PARAM_SSKDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 7) == 0) + return PIDX_PROV_PARAM_SSKDF_KEY_CHECK; + } + } + } + } + break; + case 'l': + if (strcmp("3-ms", s + 3) == 0) + return PIDX_DIGEST_PARAM_SSL3_MS; + } + break; + case 't': + switch(s[2]) { + default: + break; + case '-': + switch(s[3]) { + default: + break; + case 'd': + if (strcmp("esc", s + 4) == 0) + return PIDX_PROV_PARAM_SELF_TEST_DESC; + break; + case 'p': + if (strcmp("hase", s + 4) == 0) + return PIDX_PROV_PARAM_SELF_TEST_PHASE; + break; + case 't': + if (strcmp("ype", s + 4) == 0) + return PIDX_PROV_PARAM_SELF_TEST_TYPE; + } + break; + case 'a': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case 'e': + switch(s[5]) { + default: + break; + case '\0': + return PIDX_RAND_PARAM_STATE; + } + break; + case 'u': + if (strcmp("s", s + 5) == 0) + return PIDX_PROV_PARAM_STATUS; + } + } + break; + case 'r': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case 'a': + if (strcmp("m_mac", s + 5) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_STREAM_MAC; + break; + case 'n': + if (strcmp("gth", s + 5) == 0) + return PIDX_RAND_PARAM_STRENGTH; + } + } + } + break; + case 'u': + switch(s[2]) { + default: + break; + case 'b': + if (strcmp("ject", s + 3) == 0) + return PIDX_STORE_PARAM_SUBJECT; + break; + case 'p': + switch(s[3]) { + default: + break; + case 'p': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'p': + switch(s[6]) { + default: + break; + case 'r': + if (strcmp("ivinfo", s + 7) == 0) + return PIDX_KDF_PARAM_X942_SUPP_PRIVINFO; + break; + case 'u': + if (strcmp("binfo", s + 7) == 0) + return PIDX_KDF_PARAM_X942_SUPP_PUBINFO; + } + } + } + } + } + } + break; + case 't': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'g': + switch(s[3]) { + default: + break; + case 'l': + if (strcmp("en", s + 4) == 0) + return PIDX_CIPHER_PARAM_AEAD_TAGLEN; + break; + case '\0': + return PIDX_CIPHER_PARAM_AEAD_TAG; + } + } + break; + case 'd': + if (strcmp("es-encrypt-disabled", s + 2) == 0) + return PIDX_PROV_PARAM_TDES_ENCRYPT_DISABLED; + break; + case 'e': + switch(s[2]) { + default: + break; + case 's': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case '-': + if (strcmp("entropy", s + 5) == 0) + return PIDX_SIGNATURE_PARAM_TEST_ENTROPY; + break; + case '_': + switch(s[5]) { + default: + break; + case 'e': + if (strcmp("ntropy", s + 6) == 0) + return PIDX_RAND_PARAM_TEST_ENTROPY; + break; + case 'n': + if (strcmp("once", s + 6) == 0) + return PIDX_RAND_PARAM_TEST_NONCE; + } + } + } + } + break; + case 'h': + if (strcmp("reads", s + 2) == 0) + return PIDX_KDF_PARAM_THREADS; + break; + case 'l': + switch(s[2]) { + default: + break; + case 's': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'c': + if (strcmp("lient-version", s + 5) == 0) + return PIDX_ASYM_CIPHER_PARAM_TLS_CLIENT_VERSION; + break; + case 'd': + if (strcmp("ata-size", s + 5) == 0) + return PIDX_MAC_PARAM_TLS_DATA_SIZE; + break; + case 'g': + switch(s[5]) { + default: + break; + case 'r': + switch(s[6]) { + default: + break; + case 'o': + switch(s[7]) { + default: + break; + case 'u': + switch(s[8]) { + default: + break; + case 'p': + switch(s[9]) { + default: + break; + case '-': + switch(s[10]) { + default: + break; + case 'a': + if (strcmp("lg", s + 11) == 0) + return PIDX_CAPABILITY_TLS_GROUP_ALG; + break; + case 'i': + switch(s[11]) { + default: + break; + case 'd': + switch(s[12]) { + default: + break; + case '\0': + return PIDX_CAPABILITY_TLS_GROUP_ID; + } + break; + case 's': + if (strcmp("-kem", s + 12) == 0) + return PIDX_CAPABILITY_TLS_GROUP_IS_KEM; + } + break; + case 'n': + switch(s[11]) { + default: + break; + case 'a': + switch(s[12]) { + default: + break; + case 'm': + switch(s[13]) { + default: + break; + case 'e': + switch(s[14]) { + default: + break; + case '-': + if (strcmp("internal", s + 15) == 0) + return PIDX_CAPABILITY_TLS_GROUP_NAME_INTERNAL; + break; + case '\0': + return PIDX_CAPABILITY_TLS_GROUP_NAME; + } + } + } + } + break; + case 's': + if (strcmp("ec-bits", s + 11) == 0) + return PIDX_CAPABILITY_TLS_GROUP_SECURITY_BITS; + } + } + } + } + } + } + break; + case 'm': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case 'c': + switch(s[7]) { + default: + break; + case '-': + if (strcmp("size", s + 8) == 0) + return PIDX_CIPHER_PARAM_TLS_MAC_SIZE; + break; + case '\0': + return PIDX_CIPHER_PARAM_TLS_MAC; + } + break; + case 'x': + switch(s[7]) { + default: + break; + case '-': + switch(s[8]) { + default: + break; + case 'd': + if (strcmp("tls", s + 9) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_MAX_DTLS; + break; + case 't': + if (strcmp("ls", s + 9) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_MAX_TLS; + } + } + } + break; + case 'i': + switch(s[6]) { + default: + break; + case 'n': + switch(s[7]) { + default: + break; + case '-': + switch(s[8]) { + default: + break; + case 'd': + if (strcmp("tls", s + 9) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_MIN_DTLS; + break; + case 't': + if (strcmp("ls", s + 9) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_MIN_TLS; + } + } + } + break; + case 'u': + if (strcmp("lti", s + 6) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK; + } + break; + case 'n': + if (strcmp("egotiated-version", s + 5) == 0) + return PIDX_ASYM_CIPHER_PARAM_TLS_NEGOTIATED_VERSION; + break; + case 's': + switch(s[5]) { + default: + break; + case 'i': + switch(s[6]) { + default: + break; + case 'g': + switch(s[7]) { + default: + break; + case 'a': + switch(s[8]) { + default: + break; + case 'l': + switch(s[9]) { + default: + break; + case 'g': + switch(s[10]) { + default: + break; + case '-': + switch(s[11]) { + default: + break; + case 'c': + if (strcmp("ode-point", s + 12) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_CODE_POINT; + break; + case 'h': + switch(s[12]) { + default: + break; + case 'a': + switch(s[13]) { + default: + break; + case 's': + switch(s[14]) { + default: + break; + case 'h': + switch(s[15]) { + default: + break; + case '-': + switch(s[16]) { + default: + break; + case 'n': + if (strcmp("ame", s + 17) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_HASH_NAME; + break; + case 'o': + if (strcmp("id", s + 17) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_HASH_OID; + } + } + } + } + } + break; + case 'i': + if (strcmp("ana-name", s + 12) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_IANA_NAME; + break; + case 'k': + switch(s[12]) { + default: + break; + case 'e': + switch(s[13]) { + default: + break; + case 'y': + switch(s[14]) { + default: + break; + case 't': + switch(s[15]) { + default: + break; + case 'y': + switch(s[16]) { + default: + break; + case 'p': + switch(s[17]) { + default: + break; + case 'e': + switch(s[18]) { + default: + break; + case '-': + if (strcmp("oid", s + 19) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_KEYTYPE_OID; + break; + case '\0': + return PIDX_CAPABILITY_TLS_SIGALG_KEYTYPE; + } + } + } + } + } + } + } + break; + case 'n': + if (strcmp("ame", s + 12) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_NAME; + break; + case 'o': + if (strcmp("id", s + 12) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_OID; + break; + case 's': + switch(s[12]) { + default: + break; + case 'e': + if (strcmp("c-bits", s + 13) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_SECURITY_BITS; + break; + case 'i': + switch(s[13]) { + default: + break; + case 'g': + switch(s[14]) { + default: + break; + case '-': + switch(s[15]) { + default: + break; + case 'n': + if (strcmp("ame", s + 16) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_SIG_NAME; + break; + case 'o': + if (strcmp("id", s + 16) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_SIG_OID; + } + } + } + } + } + } + } + } + } + } + } + break; + case 'v': + if (strcmp("ersion", s + 5) == 0) + return PIDX_CIPHER_PARAM_TLS_VERSION; + } + break; + case '1': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'p': + switch(s[6]) { + default: + break; + case 'r': + switch(s[7]) { + default: + break; + case 'f': + switch(s[8]) { + default: + break; + case '-': + switch(s[9]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 10) == 0) + return PIDX_PROV_PARAM_TLS1_PRF_DIGEST_CHECK; + break; + case 'e': + if (strcmp("ms-check", s + 10) == 0) + return PIDX_PROV_PARAM_TLS1_PRF_EMS_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 10) == 0) + return PIDX_PROV_PARAM_TLS1_PRF_KEY_CHECK; + } + } + } + } + } + break; + case '3': + switch(s[5]) { + default: + break; + case '-': + switch(s[6]) { + default: + break; + case 'k': + switch(s[7]) { + default: + break; + case 'd': + switch(s[8]) { + default: + break; + case 'f': + switch(s[9]) { + default: + break; + case '-': + switch(s[10]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 11) == 0) + return PIDX_PROV_PARAM_TLS13_KDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 11) == 0) + return PIDX_PROV_PARAM_TLS13_KDF_KEY_CHECK; + } + } + } + } + } + } + break; + case 'm': + switch(s[5]) { + default: + break; + case 'u': + switch(s[6]) { + default: + break; + case 'l': + switch(s[7]) { + default: + break; + case 't': + switch(s[8]) { + default: + break; + case 'i': + switch(s[9]) { + default: + break; + case '_': + switch(s[10]) { + default: + break; + case 'a': + switch(s[11]) { + default: + break; + case 'a': + switch(s[12]) { + default: + break; + case 'd': + switch(s[13]) { + default: + break; + case 'p': + if (strcmp("acklen", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD_PACKLEN; + break; + case '\0': + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD; + } + } + } + break; + case 'e': + switch(s[11]) { + default: + break; + case 'n': + switch(s[12]) { + default: + break; + case 'c': + switch(s[13]) { + default: + break; + case 'i': + if (strcmp("n", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_IN; + break; + case 'l': + if (strcmp("en", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_LEN; + break; + case '\0': + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC; + } + } + } + break; + case 'i': + if (strcmp("nterleave", s + 11) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_INTERLEAVE; + break; + case 'm': + switch(s[11]) { + default: + break; + case 'a': + switch(s[12]) { + default: + break; + case 'x': + switch(s[13]) { + default: + break; + case 'b': + if (strcmp("ufsz", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_BUFSIZE; + break; + case 's': + if (strcmp("ndfrag", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_SEND_FRAGMENT; + } + } + } + } + } + } + } + } + } + } + break; + case 'a': + switch(s[4]) { + default: + break; + case 'a': + switch(s[5]) { + default: + break; + case 'd': + switch(s[6]) { + default: + break; + case 'p': + if (strcmp("ad", s + 7) == 0) + return PIDX_CIPHER_PARAM_AEAD_TLS1_AAD_PAD; + break; + case '\0': + return PIDX_CIPHER_PARAM_AEAD_TLS1_AAD; + } + } + } + break; + case 'i': + switch(s[4]) { + default: + break; + case 'v': + switch(s[5]) { + default: + break; + case 'f': + if (strcmp("ixed", s + 6) == 0) + return PIDX_CIPHER_PARAM_AEAD_TLS1_IV_FIXED; + break; + case 'g': + if (strcmp("en", s + 6) == 0) + return PIDX_CIPHER_PARAM_AEAD_TLS1_GET_IV_GEN; + break; + case 'i': + if (strcmp("nv", s + 6) == 0) + return PIDX_CIPHER_PARAM_AEAD_TLS1_SET_IV_INV; + } + } + break; + case 't': + if (strcmp("ree", s + 4) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_TLSTREE; + } + } + break; + case 'p': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_TP_BASIS; + } + break; + case 'y': + if (strcmp("pe", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_TYPE; + } + break; + case 'u': + switch(s[1]) { + default: + break; + case 'k': + if (strcmp("m", s + 2) == 0) + return PIDX_KDF_PARAM_UKM; + break; + case 'p': + if (strcmp("dated-iv", s + 2) == 0) + return PIDX_CIPHER_PARAM_UPDATED_IV; + break; + case 's': + switch(s[2]) { + default: + break; + case 'e': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'b': + if (strcmp("its", s + 5) == 0) + return PIDX_CIPHER_PARAM_USE_BITS; + break; + case 'c': + if (strcmp("ofactor-flag", s + 5) == 0) + return PIDX_PKEY_PARAM_USE_COFACTOR_FLAG; + break; + case 'k': + if (strcmp("eybits", s + 5) == 0) + return PIDX_KDF_PARAM_X942_USE_KEYBITS; + break; + case 'l': + switch(s[5]) { + default: + break; + case '\0': + return PIDX_KDF_PARAM_KBKDF_USE_L; + } + break; + case 's': + if (strcmp("eparator", s + 5) == 0) + return PIDX_KDF_PARAM_KBKDF_USE_SEPARATOR; + } + break; + case '_': + switch(s[4]) { + default: + break; + case 'd': + if (strcmp("erivation_function", s + 5) == 0) + return PIDX_DRBG_PARAM_USE_DF; + break; + case 'e': + if (strcmp("tm", s + 5) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_USE_ETM; + } + } + } + } + break; + case 'v': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'l': + switch(s[3]) { + default: + break; + case 'i': + switch(s[4]) { + default: + break; + case 'd': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case 'e': + switch(s[8]) { + default: + break; + case '-': + switch(s[9]) { + default: + break; + case 'g': + switch(s[10]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_VALIDATE_G; + } + break; + case 'l': + if (strcmp("egacy", s + 10) == 0) + return PIDX_PKEY_PARAM_FFC_VALIDATE_LEGACY; + break; + case 'p': + if (strcmp("q", s + 10) == 0) + return PIDX_PKEY_PARAM_FFC_VALIDATE_PQ; + } + } + } + } + } + } + } + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'r': + switch(s[3]) { + default: + break; + case 'i': + if (strcmp("fy-message", s + 4) == 0) + return PIDX_SIGNATURE_PARAM_FIPS_VERIFY_MESSAGE; + break; + case 's': + if (strcmp("ion", s + 4) == 0) + return PIDX_PROV_PARAM_VERSION; + } + } + } + break; + case 'x': + switch(s[1]) { + default: + break; + case '9': + switch(s[2]) { + default: + break; + case '4': + if (strcmp("2kdf-key-check", s + 3) == 0) + return PIDX_PROV_PARAM_X942KDF_KEY_CHECK; + break; + case '6': + switch(s[3]) { + default: + break; + case '3': + switch(s[4]) { + default: + break; + case 'k': + switch(s[5]) { + default: + break; + case 'd': + switch(s[6]) { + default: + break; + case 'f': + switch(s[7]) { + default: + break; + case '-': + switch(s[8]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 9) == 0) + return PIDX_PROV_PARAM_X963KDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 9) == 0) + return PIDX_PROV_PARAM_X963KDF_KEY_CHECK; + } + } + } + } + } + } + } + break; + case 'c': + if (strcmp("ghash", s + 2) == 0) + return PIDX_KDF_PARAM_SSHKDF_XCGHASH; + break; + case 'o': + switch(s[2]) { + default: + break; + case 'f': + switch(s[3]) { + default: + break; + case 'l': + if (strcmp("en", s + 4) == 0) + return PIDX_DIGEST_PARAM_XOFLEN; + break; + case '\0': + return PIDX_MAC_PARAM_XOF; + } + } + break; + case 'p': + switch(s[2]) { + default: + break; + case '1': + switch(s[3]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XP1; + } + break; + case '2': + switch(s[3]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XP2; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XP; + } + break; + case 'q': + switch(s[2]) { + default: + break; + case '1': + switch(s[3]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XQ1; + } + break; + case '2': + switch(s[3]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XQ2; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XQ; + } + break; + case 't': + if (strcmp("s_standard", s + 2) == 0) + return PIDX_CIPHER_PARAM_XTS_STANDARD; + } + } + return -1; +} + +/* End of TRIE */ diff --git a/deps/openssl/config/archs/BSD-x86_64/asm_avx2/crypto/poly1305/poly1305-x86_64.s b/deps/openssl/config/archs/BSD-x86_64/asm_avx2/crypto/poly1305/poly1305-x86_64.s index 9f9df19a3707b3..140884bb25c3c8 100644 --- a/deps/openssl/config/archs/BSD-x86_64/asm_avx2/crypto/poly1305/poly1305-x86_64.s +++ b/deps/openssl/config/archs/BSD-x86_64/asm_avx2/crypto/poly1305/poly1305-x86_64.s @@ -50,6 +50,7 @@ poly1305_init: .align 32 poly1305_blocks: .cfi_startproc +.byte 243,15,30,250 .Lblocks: shrq $4,%rdx jz .Lno_data @@ -165,6 +166,7 @@ poly1305_blocks: .align 32 poly1305_emit: .cfi_startproc +.byte 243,15,30,250 .Lemit: movq 0(%rdi),%r8 movq 8(%rdi),%r9 @@ -401,6 +403,7 @@ __poly1305_init_avx: .align 32 poly1305_blocks_avx: .cfi_startproc +.byte 243,15,30,250 movl 20(%rdi),%r8d cmpq $128,%rdx jae .Lblocks_avx @@ -1236,6 +1239,7 @@ poly1305_blocks_avx: .align 32 poly1305_emit_avx: .cfi_startproc +.byte 243,15,30,250 cmpl $0,20(%rdi) je .Lemit @@ -1292,6 +1296,7 @@ poly1305_emit_avx: .align 32 poly1305_blocks_avx2: .cfi_startproc +.byte 243,15,30,250 movl 20(%rdi),%r8d cmpq $128,%rdx jae .Lblocks_avx2 @@ -1932,6 +1937,7 @@ poly1305_blocks_avx2: .byte 0xf3,0xc3 .cfi_endproc .size poly1305_blocks_avx2,.-poly1305_blocks_avx2 +.section .rodata .align 64 .Lconst: .Lmask24: @@ -1963,6 +1969,7 @@ poly1305_blocks_avx2: .Lx_mask42: .quad 0x3ffffffffff,0x3ffffffffff,0x3ffffffffff,0x3ffffffffff .quad 0x3ffffffffff,0x3ffffffffff,0x3ffffffffff,0x3ffffffffff +.previous .byte 80,111,108,121,49,51,48,53,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 .align 16 .globl xor128_encrypt_n_pad diff --git a/deps/openssl/config/archs/BSD-x86_64/asm_avx2/crypto/sha/keccak1600-x86_64.s b/deps/openssl/config/archs/BSD-x86_64/asm_avx2/crypto/sha/keccak1600-x86_64.s index bb5222b73bc00a..021d34601ffc07 100644 --- a/deps/openssl/config/archs/BSD-x86_64/asm_avx2/crypto/sha/keccak1600-x86_64.s +++ b/deps/openssl/config/archs/BSD-x86_64/asm_avx2/crypto/sha/keccak1600-x86_64.s @@ -447,10 +447,12 @@ SHA3_squeeze: .cfi_offset %r14,-32 shrq $3,%rcx - movq %rdi,%r8 + movq %rdi,%r9 movq %rsi,%r12 movq %rdx,%r13 movq %rcx,%r14 + btl $0,%r8d + jc .Lnext_block jmp .Loop_squeeze .align 32 @@ -458,8 +460,8 @@ SHA3_squeeze: cmpq $8,%r13 jb .Ltail_squeeze - movq (%r8),%rax - leaq 8(%r8),%r8 + movq (%r9),%rax + leaq 8(%r9),%r9 movq %rax,(%r12) leaq 8(%r12),%r12 subq $8,%r13 @@ -467,14 +469,14 @@ SHA3_squeeze: subq $1,%rcx jnz .Loop_squeeze - +.Lnext_block: call KeccakF1600 - movq %rdi,%r8 + movq %rdi,%r9 movq %r14,%rcx jmp .Loop_squeeze .Ltail_squeeze: - movq %r8,%rsi + movq %r9,%rsi movq %r12,%rdi movq %r13,%rcx .byte 0xf3,0xa4 @@ -492,6 +494,7 @@ SHA3_squeeze: .byte 0xf3,0xc3 .cfi_endproc .size SHA3_squeeze,.-SHA3_squeeze +.section .rodata .align 256 .quad 0,0,0,0,0,0,0,0 .type iotas,@object diff --git a/deps/openssl/config/archs/BSD-x86_64/asm_avx2/crypto/sha/sha1-mb-x86_64.s b/deps/openssl/config/archs/BSD-x86_64/asm_avx2/crypto/sha/sha1-mb-x86_64.s index b835e0b6c95953..012a5094ac38d8 100644 --- a/deps/openssl/config/archs/BSD-x86_64/asm_avx2/crypto/sha/sha1-mb-x86_64.s +++ b/deps/openssl/config/archs/BSD-x86_64/asm_avx2/crypto/sha/sha1-mb-x86_64.s @@ -7286,7 +7286,7 @@ _avx2_shortcut: .byte 0xf3,0xc3 .cfi_endproc .size sha1_multi_block_avx2,.-sha1_multi_block_avx2 - +.section .rodata .align 256 .long 0x5a827999,0x5a827999,0x5a827999,0x5a827999 .long 0x5a827999,0x5a827999,0x5a827999,0x5a827999 @@ -7301,6 +7301,7 @@ K_XX_XX: .long 0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f .byte 0xf,0xe,0xd,0xc,0xb,0xa,0x9,0x8,0x7,0x6,0x5,0x4,0x3,0x2,0x1,0x0 .byte 83,72,65,49,32,109,117,108,116,105,45,98,108,111,99,107,32,116,114,97,110,115,102,111,114,109,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 +.previous .section ".note.gnu.property", "a" .p2align 3 .long 1f - 0f diff --git a/deps/openssl/config/archs/BSD-x86_64/asm_avx2/crypto/sha/sha1-x86_64.s b/deps/openssl/config/archs/BSD-x86_64/asm_avx2/crypto/sha/sha1-x86_64.s index 85e9a2909f8aff..234e625cfe8ad5 100644 --- a/deps/openssl/config/archs/BSD-x86_64/asm_avx2/crypto/sha/sha1-x86_64.s +++ b/deps/openssl/config/archs/BSD-x86_64/asm_avx2/crypto/sha/sha1-x86_64.s @@ -5433,6 +5433,7 @@ _avx2_shortcut: .byte 0xf3,0xc3 .cfi_endproc .size sha1_block_data_order_avx2,.-sha1_block_data_order_avx2 +.section .rodata .align 64 K_XX_XX: .long 0x5a827999,0x5a827999,0x5a827999,0x5a827999 @@ -5446,6 +5447,7 @@ K_XX_XX: .long 0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f .long 0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f .byte 0xf,0xe,0xd,0xc,0xb,0xa,0x9,0x8,0x7,0x6,0x5,0x4,0x3,0x2,0x1,0x0 +.previous .byte 83,72,65,49,32,98,108,111,99,107,32,116,114,97,110,115,102,111,114,109,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 .align 64 .section ".note.gnu.property", "a" diff --git a/deps/openssl/config/archs/BSD-x86_64/asm_avx2/crypto/sha/sha256-mb-x86_64.s b/deps/openssl/config/archs/BSD-x86_64/asm_avx2/crypto/sha/sha256-mb-x86_64.s index 8ac342f9ceb6c8..aabed290b1c350 100644 --- a/deps/openssl/config/archs/BSD-x86_64/asm_avx2/crypto/sha/sha256-mb-x86_64.s +++ b/deps/openssl/config/archs/BSD-x86_64/asm_avx2/crypto/sha/sha256-mb-x86_64.s @@ -7831,6 +7831,7 @@ _avx2_shortcut: .byte 0xf3,0xc3 .cfi_endproc .size sha256_multi_block_avx2,.-sha256_multi_block_avx2 +.section .rodata .align 256 K256: .long 1116352408,1116352408,1116352408,1116352408 @@ -7982,6 +7983,7 @@ K256_shaext: .long 0x748f82ee,0x78a5636f,0x84c87814,0x8cc70208 .long 0x90befffa,0xa4506ceb,0xbef9a3f7,0xc67178f2 .byte 83,72,65,50,53,54,32,109,117,108,116,105,45,98,108,111,99,107,32,116,114,97,110,115,102,111,114,109,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 +.previous .section ".note.gnu.property", "a" .p2align 3 .long 1f - 0f diff --git a/deps/openssl/config/archs/BSD-x86_64/asm_avx2/crypto/sha/sha256-x86_64.s b/deps/openssl/config/archs/BSD-x86_64/asm_avx2/crypto/sha/sha256-x86_64.s index e82bbec164f843..cb42c58633d88e 100644 --- a/deps/openssl/config/archs/BSD-x86_64/asm_avx2/crypto/sha/sha256-x86_64.s +++ b/deps/openssl/config/archs/BSD-x86_64/asm_avx2/crypto/sha/sha256-x86_64.s @@ -1728,6 +1728,7 @@ sha256_block_data_order: .byte 0xf3,0xc3 .cfi_endproc .size sha256_block_data_order,.-sha256_block_data_order +.section .rodata .align 64 .type K256,@object K256: @@ -1771,6 +1772,7 @@ K256: .long 0xffffffff,0xffffffff,0x03020100,0x0b0a0908 .long 0xffffffff,0xffffffff,0x03020100,0x0b0a0908 .byte 83,72,65,50,53,54,32,98,108,111,99,107,32,116,114,97,110,115,102,111,114,109,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 +.previous .type sha256_block_data_order_shaext,@function .align 64 sha256_block_data_order_shaext: diff --git a/deps/openssl/config/archs/BSD-x86_64/asm_avx2/crypto/sha/sha512-x86_64.s b/deps/openssl/config/archs/BSD-x86_64/asm_avx2/crypto/sha/sha512-x86_64.s index a76d017ba764b7..880b3fdbac34be 100644 --- a/deps/openssl/config/archs/BSD-x86_64/asm_avx2/crypto/sha/sha512-x86_64.s +++ b/deps/openssl/config/archs/BSD-x86_64/asm_avx2/crypto/sha/sha512-x86_64.s @@ -1726,6 +1726,7 @@ sha512_block_data_order: .byte 0xf3,0xc3 .cfi_endproc .size sha512_block_data_order,.-sha512_block_data_order +.section .rodata .align 64 .type K512,@object K512: @@ -1813,6 +1814,7 @@ K512: .quad 0x0001020304050607,0x08090a0b0c0d0e0f .quad 0x0001020304050607,0x08090a0b0c0d0e0f .byte 83,72,65,53,49,50,32,98,108,111,99,107,32,116,114,97,110,115,102,111,114,109,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 +.previous .type sha512_block_data_order_xop,@function .align 64 sha512_block_data_order_xop: diff --git a/deps/openssl/config/archs/BSD-x86_64/asm_avx2/crypto/whrlpool/wp-x86_64.s b/deps/openssl/config/archs/BSD-x86_64/asm_avx2/crypto/whrlpool/wp-x86_64.s index 5e236f9481856c..172459c6403d7b 100644 --- a/deps/openssl/config/archs/BSD-x86_64/asm_avx2/crypto/whrlpool/wp-x86_64.s +++ b/deps/openssl/config/archs/BSD-x86_64/asm_avx2/crypto/whrlpool/wp-x86_64.s @@ -608,6 +608,7 @@ whirlpool_block: .cfi_endproc .size whirlpool_block,.-whirlpool_block +.section .rodata .align 64 .type .Ltable,@object .Ltable: diff --git a/deps/openssl/config/archs/BSD-x86_64/asm_avx2/crypto/x86_64cpuid.s b/deps/openssl/config/archs/BSD-x86_64/asm_avx2/crypto/x86_64cpuid.s index 6a5180311ccca8..a4e5a58e1a3af2 100644 --- a/deps/openssl/config/archs/BSD-x86_64/asm_avx2/crypto/x86_64cpuid.s +++ b/deps/openssl/config/archs/BSD-x86_64/asm_avx2/crypto/x86_64cpuid.s @@ -1,11 +1,11 @@ + .hidden OPENSSL_cpuid_setup .section .init call OPENSSL_cpuid_setup .hidden OPENSSL_ia32cap_P -.comm OPENSSL_ia32cap_P,16,4 - +.comm OPENSSL_ia32cap_P,40,4 .text .globl OPENSSL_atomic_add @@ -163,6 +163,7 @@ OPENSSL_ia32_cpuid: movl $7,%eax xorl %ecx,%ecx cpuid + movd %eax,%xmm1 btl $26,%r9d jc .Lnotknights andl $0xfff7ffff,%ebx @@ -173,9 +174,31 @@ OPENSSL_ia32_cpuid: jne .Lnotskylakex andl $0xfffeffff,%ebx + .Lnotskylakex: movl %ebx,8(%rdi) movl %ecx,12(%rdi) + movl %edx,16(%rdi) + + movd %xmm1,%eax + cmpl $0x1,%eax + jb .Lno_extended_info + movl $0x7,%eax + movl $0x1,%ecx + cpuid + movl %eax,20(%rdi) + movl %edx,24(%rdi) + movl %ebx,28(%rdi) + movl %ecx,32(%rdi) + + andl $0x80000,%edx + cmpl $0x0,%edx + je .Lno_extended_info + movl $0x24,%eax + movl $0x0,%ecx + cpuid + movl %ebx,36(%rdi) + .Lno_extended_info: btl $27,%r9d @@ -194,6 +217,9 @@ OPENSSL_ia32_cpuid: cmpl $6,%eax je .Ldone .Lclear_avx: + andl $0xff7fffff,20(%rdi) + + movl $0xefffe7ff,%eax andl %eax,%r9d movl $0x3fdeffdf,%eax diff --git a/deps/openssl/config/archs/BSD-x86_64/asm_avx2/include/internal/param_names.h b/deps/openssl/config/archs/BSD-x86_64/asm_avx2/include/internal/param_names.h new file mode 100644 index 00000000000000..0a0404a57e82b9 --- /dev/null +++ b/deps/openssl/config/archs/BSD-x86_64/asm_avx2/include/internal/param_names.h @@ -0,0 +1,469 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from include/internal/param_names.h.in + * + * Copyright 2023 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + +int ossl_param_find_pidx(const char *s); + +/* Parameter name definitions - generated by util/perl/OpenSSL/paramnames.pm */ +#define NUM_PIDX 346 + +#define PIDX_ALG_PARAM_ALGORITHM_ID 0 +#define PIDX_ALG_PARAM_ALGORITHM_ID_PARAMS 1 +#define PIDX_ALG_PARAM_CIPHER 2 +#define PIDX_ALG_PARAM_DIGEST 3 +#define PIDX_ALG_PARAM_ENGINE 4 +#define PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR 5 +#define PIDX_ALG_PARAM_MAC 6 +#define PIDX_ALG_PARAM_PROPERTIES 7 +#define PIDX_ASYM_CIPHER_PARAM_DIGEST PIDX_PKEY_PARAM_DIGEST +#define PIDX_ASYM_CIPHER_PARAM_ENGINE PIDX_PKEY_PARAM_ENGINE +#define PIDX_ASYM_CIPHER_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_ASYM_CIPHER_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_ASYM_CIPHER_PARAM_FIPS_RSA_PKCS15_PAD_DISABLED PIDX_PROV_PARAM_RSA_PKCS15_PAD_DISABLED +#define PIDX_ASYM_CIPHER_PARAM_IMPLICIT_REJECTION 8 +#define PIDX_ASYM_CIPHER_PARAM_MGF1_DIGEST PIDX_PKEY_PARAM_MGF1_DIGEST +#define PIDX_ASYM_CIPHER_PARAM_MGF1_DIGEST_PROPS PIDX_PKEY_PARAM_MGF1_PROPERTIES +#define PIDX_ASYM_CIPHER_PARAM_OAEP_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_ASYM_CIPHER_PARAM_OAEP_DIGEST_PROPS 9 +#define PIDX_ASYM_CIPHER_PARAM_OAEP_LABEL 10 +#define PIDX_ASYM_CIPHER_PARAM_PAD_MODE PIDX_PKEY_PARAM_PAD_MODE +#define PIDX_ASYM_CIPHER_PARAM_PROPERTIES PIDX_PKEY_PARAM_PROPERTIES +#define PIDX_ASYM_CIPHER_PARAM_TLS_CLIENT_VERSION 11 +#define PIDX_ASYM_CIPHER_PARAM_TLS_NEGOTIATED_VERSION 12 +#define PIDX_CAPABILITY_TLS_GROUP_ALG 13 +#define PIDX_CAPABILITY_TLS_GROUP_ID 14 +#define PIDX_CAPABILITY_TLS_GROUP_IS_KEM 15 +#define PIDX_CAPABILITY_TLS_GROUP_MAX_DTLS 16 +#define PIDX_CAPABILITY_TLS_GROUP_MAX_TLS 17 +#define PIDX_CAPABILITY_TLS_GROUP_MIN_DTLS 18 +#define PIDX_CAPABILITY_TLS_GROUP_MIN_TLS 19 +#define PIDX_CAPABILITY_TLS_GROUP_NAME 20 +#define PIDX_CAPABILITY_TLS_GROUP_NAME_INTERNAL 21 +#define PIDX_CAPABILITY_TLS_GROUP_SECURITY_BITS 22 +#define PIDX_CAPABILITY_TLS_SIGALG_CODE_POINT 23 +#define PIDX_CAPABILITY_TLS_SIGALG_HASH_NAME 24 +#define PIDX_CAPABILITY_TLS_SIGALG_HASH_OID 25 +#define PIDX_CAPABILITY_TLS_SIGALG_IANA_NAME 26 +#define PIDX_CAPABILITY_TLS_SIGALG_KEYTYPE 27 +#define PIDX_CAPABILITY_TLS_SIGALG_KEYTYPE_OID 28 +#define PIDX_CAPABILITY_TLS_SIGALG_MAX_DTLS 16 +#define PIDX_CAPABILITY_TLS_SIGALG_MAX_TLS 17 +#define PIDX_CAPABILITY_TLS_SIGALG_MIN_DTLS 18 +#define PIDX_CAPABILITY_TLS_SIGALG_MIN_TLS 19 +#define PIDX_CAPABILITY_TLS_SIGALG_NAME 29 +#define PIDX_CAPABILITY_TLS_SIGALG_OID 30 +#define PIDX_CAPABILITY_TLS_SIGALG_SECURITY_BITS 31 +#define PIDX_CAPABILITY_TLS_SIGALG_SIG_NAME 32 +#define PIDX_CAPABILITY_TLS_SIGALG_SIG_OID 33 +#define PIDX_CIPHER_PARAM_AEAD 34 +#define PIDX_CIPHER_PARAM_AEAD_IVLEN PIDX_CIPHER_PARAM_IVLEN +#define PIDX_CIPHER_PARAM_AEAD_IV_GENERATED 35 +#define PIDX_CIPHER_PARAM_AEAD_MAC_KEY 36 +#define PIDX_CIPHER_PARAM_AEAD_TAG 37 +#define PIDX_CIPHER_PARAM_AEAD_TAGLEN 38 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_AAD 39 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_AAD_PAD 40 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_GET_IV_GEN 41 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_IV_FIXED 42 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_SET_IV_INV 43 +#define PIDX_CIPHER_PARAM_ALGORITHM_ID PIDX_ALG_PARAM_ALGORITHM_ID +#define PIDX_CIPHER_PARAM_ALGORITHM_ID_PARAMS PIDX_ALG_PARAM_ALGORITHM_ID_PARAMS +#define PIDX_CIPHER_PARAM_ALGORITHM_ID_PARAMS_OLD 44 +#define PIDX_CIPHER_PARAM_BLOCK_SIZE 45 +#define PIDX_CIPHER_PARAM_CTS 46 +#define PIDX_CIPHER_PARAM_CTS_MODE 47 +#define PIDX_CIPHER_PARAM_CUSTOM_IV 48 +#define PIDX_CIPHER_PARAM_DECRYPT_ONLY 49 +#define PIDX_CIPHER_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_CIPHER_PARAM_FIPS_ENCRYPT_CHECK 50 +#define PIDX_CIPHER_PARAM_HAS_RAND_KEY 51 +#define PIDX_CIPHER_PARAM_IV 52 +#define PIDX_CIPHER_PARAM_IVLEN 53 +#define PIDX_CIPHER_PARAM_KEYLEN 54 +#define PIDX_CIPHER_PARAM_MODE 55 +#define PIDX_CIPHER_PARAM_NUM 56 +#define PIDX_CIPHER_PARAM_PADDING 57 +#define PIDX_CIPHER_PARAM_PIPELINE_AEAD_TAG 58 +#define PIDX_CIPHER_PARAM_RANDOM_KEY 59 +#define PIDX_CIPHER_PARAM_RC2_KEYBITS 60 +#define PIDX_CIPHER_PARAM_ROUNDS 61 +#define PIDX_CIPHER_PARAM_SPEED 62 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK 63 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD 64 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD_PACKLEN 65 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC 66 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_IN 67 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_LEN 68 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_INTERLEAVE 69 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_BUFSIZE 70 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_SEND_FRAGMENT 71 +#define PIDX_CIPHER_PARAM_TLS_MAC 72 +#define PIDX_CIPHER_PARAM_TLS_MAC_SIZE 73 +#define PIDX_CIPHER_PARAM_TLS_VERSION 74 +#define PIDX_CIPHER_PARAM_UPDATED_IV 75 +#define PIDX_CIPHER_PARAM_USE_BITS 76 +#define PIDX_CIPHER_PARAM_XTS_STANDARD 77 +#define PIDX_DECODER_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_DIGEST_PARAM_ALGID_ABSENT 78 +#define PIDX_DIGEST_PARAM_BLOCK_SIZE 45 +#define PIDX_DIGEST_PARAM_MICALG 79 +#define PIDX_DIGEST_PARAM_PAD_TYPE 80 +#define PIDX_DIGEST_PARAM_SIZE 81 +#define PIDX_DIGEST_PARAM_SSL3_MS 82 +#define PIDX_DIGEST_PARAM_XOF 83 +#define PIDX_DIGEST_PARAM_XOFLEN 84 +#define PIDX_DRBG_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_DRBG_PARAM_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_DRBG_PARAM_ENTROPY_REQUIRED 85 +#define PIDX_DRBG_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_DRBG_PARAM_FIPS_DIGEST_CHECK PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK +#define PIDX_DRBG_PARAM_MAC PIDX_ALG_PARAM_MAC +#define PIDX_DRBG_PARAM_MAX_ADINLEN 86 +#define PIDX_DRBG_PARAM_MAX_ENTROPYLEN 87 +#define PIDX_DRBG_PARAM_MAX_LENGTH 88 +#define PIDX_DRBG_PARAM_MAX_NONCELEN 89 +#define PIDX_DRBG_PARAM_MAX_PERSLEN 90 +#define PIDX_DRBG_PARAM_MIN_ENTROPYLEN 91 +#define PIDX_DRBG_PARAM_MIN_LENGTH 92 +#define PIDX_DRBG_PARAM_MIN_NONCELEN 93 +#define PIDX_DRBG_PARAM_PREDICTION_RESISTANCE 94 +#define PIDX_DRBG_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_DRBG_PARAM_RANDOM_DATA 95 +#define PIDX_DRBG_PARAM_RESEED_COUNTER 96 +#define PIDX_DRBG_PARAM_RESEED_REQUESTS 97 +#define PIDX_DRBG_PARAM_RESEED_TIME 98 +#define PIDX_DRBG_PARAM_RESEED_TIME_INTERVAL 99 +#define PIDX_DRBG_PARAM_SIZE 81 +#define PIDX_DRBG_PARAM_USE_DF 100 +#define PIDX_ENCODER_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_ENCODER_PARAM_ENCRYPT_LEVEL 101 +#define PIDX_ENCODER_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_ENCODER_PARAM_SAVE_PARAMETERS 102 +#define PIDX_EXCHANGE_PARAM_EC_ECDH_COFACTOR_MODE 103 +#define PIDX_EXCHANGE_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_EXCHANGE_PARAM_FIPS_DIGEST_CHECK PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK +#define PIDX_EXCHANGE_PARAM_FIPS_ECDH_COFACTOR_CHECK PIDX_PROV_PARAM_ECDH_COFACTOR_CHECK +#define PIDX_EXCHANGE_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_EXCHANGE_PARAM_KDF_DIGEST 104 +#define PIDX_EXCHANGE_PARAM_KDF_DIGEST_PROPS 105 +#define PIDX_EXCHANGE_PARAM_KDF_OUTLEN 106 +#define PIDX_EXCHANGE_PARAM_KDF_TYPE 107 +#define PIDX_EXCHANGE_PARAM_KDF_UKM 108 +#define PIDX_EXCHANGE_PARAM_PAD 109 +#define PIDX_GEN_PARAM_ITERATION 110 +#define PIDX_GEN_PARAM_POTENTIAL 111 +#define PIDX_KDF_PARAM_ARGON2_AD 112 +#define PIDX_KDF_PARAM_ARGON2_LANES 113 +#define PIDX_KDF_PARAM_ARGON2_MEMCOST 114 +#define PIDX_KDF_PARAM_ARGON2_VERSION 115 +#define PIDX_KDF_PARAM_CEK_ALG 116 +#define PIDX_KDF_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_KDF_PARAM_CONSTANT 117 +#define PIDX_KDF_PARAM_DATA 118 +#define PIDX_KDF_PARAM_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_KDF_PARAM_EARLY_CLEAN 119 +#define PIDX_KDF_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_KDF_PARAM_FIPS_DIGEST_CHECK PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK +#define PIDX_KDF_PARAM_FIPS_EMS_CHECK 120 +#define PIDX_KDF_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_KDF_PARAM_HMACDRBG_ENTROPY 121 +#define PIDX_KDF_PARAM_HMACDRBG_NONCE 122 +#define PIDX_KDF_PARAM_INFO 123 +#define PIDX_KDF_PARAM_ITER 124 +#define PIDX_KDF_PARAM_KBKDF_R 125 +#define PIDX_KDF_PARAM_KBKDF_USE_L 126 +#define PIDX_KDF_PARAM_KBKDF_USE_SEPARATOR 127 +#define PIDX_KDF_PARAM_KEY 128 +#define PIDX_KDF_PARAM_LABEL 129 +#define PIDX_KDF_PARAM_MAC PIDX_ALG_PARAM_MAC +#define PIDX_KDF_PARAM_MAC_SIZE 130 +#define PIDX_KDF_PARAM_MODE 55 +#define PIDX_KDF_PARAM_PASSWORD 131 +#define PIDX_KDF_PARAM_PKCS12_ID 132 +#define PIDX_KDF_PARAM_PKCS5 133 +#define PIDX_KDF_PARAM_PREFIX 134 +#define PIDX_KDF_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_KDF_PARAM_SALT 135 +#define PIDX_KDF_PARAM_SCRYPT_MAXMEM 136 +#define PIDX_KDF_PARAM_SCRYPT_N 137 +#define PIDX_KDF_PARAM_SCRYPT_P 138 +#define PIDX_KDF_PARAM_SCRYPT_R 125 +#define PIDX_KDF_PARAM_SECRET 139 +#define PIDX_KDF_PARAM_SEED 140 +#define PIDX_KDF_PARAM_SIZE 81 +#define PIDX_KDF_PARAM_SSHKDF_SESSION_ID 141 +#define PIDX_KDF_PARAM_SSHKDF_TYPE 142 +#define PIDX_KDF_PARAM_SSHKDF_XCGHASH 143 +#define PIDX_KDF_PARAM_THREADS 144 +#define PIDX_KDF_PARAM_UKM 145 +#define PIDX_KDF_PARAM_X942_ACVPINFO 146 +#define PIDX_KDF_PARAM_X942_PARTYUINFO 147 +#define PIDX_KDF_PARAM_X942_PARTYVINFO 148 +#define PIDX_KDF_PARAM_X942_SUPP_PRIVINFO 149 +#define PIDX_KDF_PARAM_X942_SUPP_PUBINFO 150 +#define PIDX_KDF_PARAM_X942_USE_KEYBITS 151 +#define PIDX_KEM_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_KEM_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_KEM_PARAM_IKME 152 +#define PIDX_KEM_PARAM_OPERATION 153 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_BLOCK_PADDING 154 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_HS_PADDING 155 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_MAX_EARLY_DATA 156 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_MAX_FRAG_LEN 157 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_MODE 55 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_OPTIONS 158 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_READ_AHEAD 159 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_STREAM_MAC 160 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_TLSTREE 161 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_USE_ETM 162 +#define PIDX_LIBSSL_RECORD_LAYER_READ_BUFFER_LEN 163 +#define PIDX_MAC_PARAM_BLOCK_SIZE 164 +#define PIDX_MAC_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_MAC_PARAM_CUSTOM 165 +#define PIDX_MAC_PARAM_C_ROUNDS 166 +#define PIDX_MAC_PARAM_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_MAC_PARAM_DIGEST_NOINIT 167 +#define PIDX_MAC_PARAM_DIGEST_ONESHOT 168 +#define PIDX_MAC_PARAM_D_ROUNDS 169 +#define PIDX_MAC_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_MAC_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_MAC_PARAM_FIPS_NO_SHORT_MAC PIDX_PROV_PARAM_NO_SHORT_MAC +#define PIDX_MAC_PARAM_IV 52 +#define PIDX_MAC_PARAM_KEY 128 +#define PIDX_MAC_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_MAC_PARAM_SALT 135 +#define PIDX_MAC_PARAM_SIZE 81 +#define PIDX_MAC_PARAM_TLS_DATA_SIZE 170 +#define PIDX_MAC_PARAM_XOF 83 +#define PIDX_OBJECT_PARAM_DATA 118 +#define PIDX_OBJECT_PARAM_DATA_STRUCTURE 171 +#define PIDX_OBJECT_PARAM_DATA_TYPE 172 +#define PIDX_OBJECT_PARAM_DESC 173 +#define PIDX_OBJECT_PARAM_INPUT_TYPE 174 +#define PIDX_OBJECT_PARAM_REFERENCE 175 +#define PIDX_OBJECT_PARAM_TYPE 142 +#define PIDX_PASSPHRASE_PARAM_INFO 123 +#define PIDX_PKEY_PARAM_ALGORITHM_ID PIDX_ALG_PARAM_ALGORITHM_ID +#define PIDX_PKEY_PARAM_ALGORITHM_ID_PARAMS PIDX_ALG_PARAM_ALGORITHM_ID_PARAMS +#define PIDX_PKEY_PARAM_BITS 176 +#define PIDX_PKEY_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_PKEY_PARAM_DEFAULT_DIGEST 177 +#define PIDX_PKEY_PARAM_DHKEM_IKM 178 +#define PIDX_PKEY_PARAM_DH_GENERATOR 179 +#define PIDX_PKEY_PARAM_DH_PRIV_LEN 180 +#define PIDX_PKEY_PARAM_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_PKEY_PARAM_DIGEST_SIZE 181 +#define PIDX_PKEY_PARAM_DIST_ID 182 +#define PIDX_PKEY_PARAM_EC_A 183 +#define PIDX_PKEY_PARAM_EC_B 184 +#define PIDX_PKEY_PARAM_EC_CHAR2_M 185 +#define PIDX_PKEY_PARAM_EC_CHAR2_PP_K1 186 +#define PIDX_PKEY_PARAM_EC_CHAR2_PP_K2 187 +#define PIDX_PKEY_PARAM_EC_CHAR2_PP_K3 188 +#define PIDX_PKEY_PARAM_EC_CHAR2_TP_BASIS 189 +#define PIDX_PKEY_PARAM_EC_CHAR2_TYPE 190 +#define PIDX_PKEY_PARAM_EC_COFACTOR 191 +#define PIDX_PKEY_PARAM_EC_DECODED_FROM_EXPLICIT_PARAMS 192 +#define PIDX_PKEY_PARAM_EC_ENCODING 193 +#define PIDX_PKEY_PARAM_EC_FIELD_TYPE 194 +#define PIDX_PKEY_PARAM_EC_GENERATOR 195 +#define PIDX_PKEY_PARAM_EC_GROUP_CHECK_TYPE 196 +#define PIDX_PKEY_PARAM_EC_INCLUDE_PUBLIC 197 +#define PIDX_PKEY_PARAM_EC_ORDER 198 +#define PIDX_PKEY_PARAM_EC_P 138 +#define PIDX_PKEY_PARAM_EC_POINT_CONVERSION_FORMAT 199 +#define PIDX_PKEY_PARAM_EC_PUB_X 200 +#define PIDX_PKEY_PARAM_EC_PUB_Y 201 +#define PIDX_PKEY_PARAM_EC_SEED 140 +#define PIDX_PKEY_PARAM_ENCODED_PUBLIC_KEY 202 +#define PIDX_PKEY_PARAM_ENGINE PIDX_ALG_PARAM_ENGINE +#define PIDX_PKEY_PARAM_FFC_COFACTOR 203 +#define PIDX_PKEY_PARAM_FFC_DIGEST PIDX_PKEY_PARAM_DIGEST +#define PIDX_PKEY_PARAM_FFC_DIGEST_PROPS PIDX_PKEY_PARAM_PROPERTIES +#define PIDX_PKEY_PARAM_FFC_G 204 +#define PIDX_PKEY_PARAM_FFC_GINDEX 205 +#define PIDX_PKEY_PARAM_FFC_H 206 +#define PIDX_PKEY_PARAM_FFC_P 138 +#define PIDX_PKEY_PARAM_FFC_PBITS 207 +#define PIDX_PKEY_PARAM_FFC_PCOUNTER 208 +#define PIDX_PKEY_PARAM_FFC_Q 209 +#define PIDX_PKEY_PARAM_FFC_QBITS 210 +#define PIDX_PKEY_PARAM_FFC_SEED 140 +#define PIDX_PKEY_PARAM_FFC_TYPE 142 +#define PIDX_PKEY_PARAM_FFC_VALIDATE_G 211 +#define PIDX_PKEY_PARAM_FFC_VALIDATE_LEGACY 212 +#define PIDX_PKEY_PARAM_FFC_VALIDATE_PQ 213 +#define PIDX_PKEY_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK 214 +#define PIDX_PKEY_PARAM_FIPS_KEY_CHECK 215 +#define PIDX_PKEY_PARAM_FIPS_SIGN_CHECK 216 +#define PIDX_PKEY_PARAM_GROUP_NAME 217 +#define PIDX_PKEY_PARAM_IMPLICIT_REJECTION 8 +#define PIDX_PKEY_PARAM_MANDATORY_DIGEST 218 +#define PIDX_PKEY_PARAM_MASKGENFUNC 219 +#define PIDX_PKEY_PARAM_MAX_SIZE 220 +#define PIDX_PKEY_PARAM_MGF1_DIGEST 221 +#define PIDX_PKEY_PARAM_MGF1_PROPERTIES 222 +#define PIDX_PKEY_PARAM_ML_DSA_INPUT_FORMATS 223 +#define PIDX_PKEY_PARAM_ML_DSA_OUTPUT_FORMATS 224 +#define PIDX_PKEY_PARAM_ML_DSA_PREFER_SEED 225 +#define PIDX_PKEY_PARAM_ML_DSA_RETAIN_SEED 226 +#define PIDX_PKEY_PARAM_ML_DSA_SEED 140 +#define PIDX_PKEY_PARAM_ML_KEM_IMPORT_PCT_TYPE 227 +#define PIDX_PKEY_PARAM_ML_KEM_INPUT_FORMATS 228 +#define PIDX_PKEY_PARAM_ML_KEM_OUTPUT_FORMATS 229 +#define PIDX_PKEY_PARAM_ML_KEM_PREFER_SEED 230 +#define PIDX_PKEY_PARAM_ML_KEM_RETAIN_SEED 231 +#define PIDX_PKEY_PARAM_ML_KEM_SEED 140 +#define PIDX_PKEY_PARAM_PAD_MODE 232 +#define PIDX_PKEY_PARAM_PRIV_KEY 233 +#define PIDX_PKEY_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_PKEY_PARAM_PUB_KEY 234 +#define PIDX_PKEY_PARAM_RSA_BITS PIDX_PKEY_PARAM_BITS +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT 235 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT1 236 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT2 237 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT3 238 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT4 239 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT5 240 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT6 241 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT7 242 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT8 243 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT9 244 +#define PIDX_PKEY_PARAM_RSA_D 245 +#define PIDX_PKEY_PARAM_RSA_DERIVE_FROM_PQ 246 +#define PIDX_PKEY_PARAM_RSA_DIGEST PIDX_PKEY_PARAM_DIGEST +#define PIDX_PKEY_PARAM_RSA_DIGEST_PROPS PIDX_PKEY_PARAM_PROPERTIES +#define PIDX_PKEY_PARAM_RSA_E 247 +#define PIDX_PKEY_PARAM_RSA_EXPONENT 248 +#define PIDX_PKEY_PARAM_RSA_EXPONENT1 249 +#define PIDX_PKEY_PARAM_RSA_EXPONENT10 250 +#define PIDX_PKEY_PARAM_RSA_EXPONENT2 251 +#define PIDX_PKEY_PARAM_RSA_EXPONENT3 252 +#define PIDX_PKEY_PARAM_RSA_EXPONENT4 253 +#define PIDX_PKEY_PARAM_RSA_EXPONENT5 254 +#define PIDX_PKEY_PARAM_RSA_EXPONENT6 255 +#define PIDX_PKEY_PARAM_RSA_EXPONENT7 256 +#define PIDX_PKEY_PARAM_RSA_EXPONENT8 257 +#define PIDX_PKEY_PARAM_RSA_EXPONENT9 258 +#define PIDX_PKEY_PARAM_RSA_FACTOR 259 +#define PIDX_PKEY_PARAM_RSA_FACTOR1 260 +#define PIDX_PKEY_PARAM_RSA_FACTOR10 261 +#define PIDX_PKEY_PARAM_RSA_FACTOR2 262 +#define PIDX_PKEY_PARAM_RSA_FACTOR3 263 +#define PIDX_PKEY_PARAM_RSA_FACTOR4 264 +#define PIDX_PKEY_PARAM_RSA_FACTOR5 265 +#define PIDX_PKEY_PARAM_RSA_FACTOR6 266 +#define PIDX_PKEY_PARAM_RSA_FACTOR7 267 +#define PIDX_PKEY_PARAM_RSA_FACTOR8 268 +#define PIDX_PKEY_PARAM_RSA_FACTOR9 269 +#define PIDX_PKEY_PARAM_RSA_MASKGENFUNC PIDX_PKEY_PARAM_MASKGENFUNC +#define PIDX_PKEY_PARAM_RSA_MGF1_DIGEST PIDX_PKEY_PARAM_MGF1_DIGEST +#define PIDX_PKEY_PARAM_RSA_N 137 +#define PIDX_PKEY_PARAM_RSA_PRIMES 270 +#define PIDX_PKEY_PARAM_RSA_PSS_SALTLEN 271 +#define PIDX_PKEY_PARAM_RSA_TEST_P1 272 +#define PIDX_PKEY_PARAM_RSA_TEST_P2 273 +#define PIDX_PKEY_PARAM_RSA_TEST_Q1 274 +#define PIDX_PKEY_PARAM_RSA_TEST_Q2 275 +#define PIDX_PKEY_PARAM_RSA_TEST_XP 276 +#define PIDX_PKEY_PARAM_RSA_TEST_XP1 277 +#define PIDX_PKEY_PARAM_RSA_TEST_XP2 278 +#define PIDX_PKEY_PARAM_RSA_TEST_XQ 279 +#define PIDX_PKEY_PARAM_RSA_TEST_XQ1 280 +#define PIDX_PKEY_PARAM_RSA_TEST_XQ2 281 +#define PIDX_PKEY_PARAM_SECURITY_BITS 282 +#define PIDX_PKEY_PARAM_SLH_DSA_SEED 140 +#define PIDX_PKEY_PARAM_USE_COFACTOR_ECDH PIDX_PKEY_PARAM_USE_COFACTOR_FLAG +#define PIDX_PKEY_PARAM_USE_COFACTOR_FLAG 283 +#define PIDX_PROV_PARAM_BUILDINFO 284 +#define PIDX_PROV_PARAM_CORE_MODULE_FILENAME 285 +#define PIDX_PROV_PARAM_CORE_PROV_NAME 286 +#define PIDX_PROV_PARAM_CORE_VERSION 287 +#define PIDX_PROV_PARAM_DRBG_TRUNC_DIGEST 288 +#define PIDX_PROV_PARAM_DSA_SIGN_DISABLED 289 +#define PIDX_PROV_PARAM_ECDH_COFACTOR_CHECK 290 +#define PIDX_PROV_PARAM_HKDF_DIGEST_CHECK 291 +#define PIDX_PROV_PARAM_HKDF_KEY_CHECK 292 +#define PIDX_PROV_PARAM_HMAC_KEY_CHECK 293 +#define PIDX_PROV_PARAM_KBKDF_KEY_CHECK 294 +#define PIDX_PROV_PARAM_KMAC_KEY_CHECK 295 +#define PIDX_PROV_PARAM_NAME 296 +#define PIDX_PROV_PARAM_NO_SHORT_MAC 297 +#define PIDX_PROV_PARAM_PBKDF2_LOWER_BOUND_CHECK 298 +#define PIDX_PROV_PARAM_RSA_PKCS15_PAD_DISABLED 299 +#define PIDX_PROV_PARAM_RSA_PSS_SALTLEN_CHECK 300 +#define PIDX_PROV_PARAM_RSA_SIGN_X931_PAD_DISABLED 301 +#define PIDX_PROV_PARAM_SECURITY_CHECKS 302 +#define PIDX_PROV_PARAM_SELF_TEST_DESC 303 +#define PIDX_PROV_PARAM_SELF_TEST_PHASE 304 +#define PIDX_PROV_PARAM_SELF_TEST_TYPE 305 +#define PIDX_PROV_PARAM_SIGNATURE_DIGEST_CHECK 306 +#define PIDX_PROV_PARAM_SSHKDF_DIGEST_CHECK 307 +#define PIDX_PROV_PARAM_SSHKDF_KEY_CHECK 308 +#define PIDX_PROV_PARAM_SSKDF_DIGEST_CHECK 309 +#define PIDX_PROV_PARAM_SSKDF_KEY_CHECK 310 +#define PIDX_PROV_PARAM_STATUS 311 +#define PIDX_PROV_PARAM_TDES_ENCRYPT_DISABLED 312 +#define PIDX_PROV_PARAM_TLS13_KDF_DIGEST_CHECK 313 +#define PIDX_PROV_PARAM_TLS13_KDF_KEY_CHECK 314 +#define PIDX_PROV_PARAM_TLS1_PRF_DIGEST_CHECK 315 +#define PIDX_PROV_PARAM_TLS1_PRF_EMS_CHECK 316 +#define PIDX_PROV_PARAM_TLS1_PRF_KEY_CHECK 317 +#define PIDX_PROV_PARAM_VERSION 115 +#define PIDX_PROV_PARAM_X942KDF_KEY_CHECK 318 +#define PIDX_PROV_PARAM_X963KDF_DIGEST_CHECK 319 +#define PIDX_PROV_PARAM_X963KDF_KEY_CHECK 320 +#define PIDX_RAND_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_RAND_PARAM_GENERATE 321 +#define PIDX_RAND_PARAM_MAX_REQUEST 322 +#define PIDX_RAND_PARAM_STATE 323 +#define PIDX_RAND_PARAM_STRENGTH 324 +#define PIDX_RAND_PARAM_TEST_ENTROPY 325 +#define PIDX_RAND_PARAM_TEST_NONCE 326 +#define PIDX_SIGNATURE_PARAM_ADD_RANDOM 327 +#define PIDX_SIGNATURE_PARAM_ALGORITHM_ID PIDX_PKEY_PARAM_ALGORITHM_ID +#define PIDX_SIGNATURE_PARAM_ALGORITHM_ID_PARAMS PIDX_PKEY_PARAM_ALGORITHM_ID_PARAMS +#define PIDX_SIGNATURE_PARAM_CONTEXT_STRING 328 +#define PIDX_SIGNATURE_PARAM_DETERMINISTIC 329 +#define PIDX_SIGNATURE_PARAM_DIGEST PIDX_PKEY_PARAM_DIGEST +#define PIDX_SIGNATURE_PARAM_DIGEST_SIZE PIDX_PKEY_PARAM_DIGEST_SIZE +#define PIDX_SIGNATURE_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_SIGNATURE_PARAM_FIPS_DIGEST_CHECK PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK +#define PIDX_SIGNATURE_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_SIGNATURE_PARAM_FIPS_RSA_PSS_SALTLEN_CHECK 300 +#define PIDX_SIGNATURE_PARAM_FIPS_SIGN_CHECK PIDX_PKEY_PARAM_FIPS_SIGN_CHECK +#define PIDX_SIGNATURE_PARAM_FIPS_SIGN_X931_PAD_CHECK 330 +#define PIDX_SIGNATURE_PARAM_FIPS_VERIFY_MESSAGE 331 +#define PIDX_SIGNATURE_PARAM_INSTANCE 332 +#define PIDX_SIGNATURE_PARAM_KAT 333 +#define PIDX_SIGNATURE_PARAM_MESSAGE_ENCODING 334 +#define PIDX_SIGNATURE_PARAM_MGF1_DIGEST PIDX_PKEY_PARAM_MGF1_DIGEST +#define PIDX_SIGNATURE_PARAM_MGF1_PROPERTIES PIDX_PKEY_PARAM_MGF1_PROPERTIES +#define PIDX_SIGNATURE_PARAM_MU 335 +#define PIDX_SIGNATURE_PARAM_NONCE_TYPE 336 +#define PIDX_SIGNATURE_PARAM_PAD_MODE PIDX_PKEY_PARAM_PAD_MODE +#define PIDX_SIGNATURE_PARAM_PROPERTIES PIDX_PKEY_PARAM_PROPERTIES +#define PIDX_SIGNATURE_PARAM_PSS_SALTLEN 271 +#define PIDX_SIGNATURE_PARAM_SIGNATURE 337 +#define PIDX_SIGNATURE_PARAM_TEST_ENTROPY 338 +#define PIDX_SKEY_PARAM_KEY_LENGTH 339 +#define PIDX_SKEY_PARAM_RAW_BYTES 340 +#define PIDX_STORE_PARAM_ALIAS 341 +#define PIDX_STORE_PARAM_DIGEST 3 +#define PIDX_STORE_PARAM_EXPECT 342 +#define PIDX_STORE_PARAM_FINGERPRINT 343 +#define PIDX_STORE_PARAM_INPUT_TYPE 174 +#define PIDX_STORE_PARAM_ISSUER 296 +#define PIDX_STORE_PARAM_PROPERTIES 7 +#define PIDX_STORE_PARAM_SERIAL 344 +#define PIDX_STORE_PARAM_SUBJECT 345 diff --git a/deps/openssl/config/archs/BSD-x86_64/asm_avx2/include/openssl/asn1.h b/deps/openssl/config/archs/BSD-x86_64/asm_avx2/include/openssl/asn1.h index 21ff58e3d803d4..15e9e44674b0f3 100644 --- a/deps/openssl/config/archs/BSD-x86_64/asm_avx2/include/openssl/asn1.h +++ b/deps/openssl/config/archs/BSD-x86_64/asm_avx2/include/openssl/asn1.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/asn1.h.in * - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -21,6 +21,9 @@ # define HEADER_ASN1_H # endif +# ifndef OPENSSL_NO_STDIO +# include +# endif # include # include # include @@ -50,14 +53,14 @@ extern "C" { # define V_ASN1_PRIMITIVE_TAG 0x1f # define V_ASN1_PRIMATIVE_TAG /*compat*/ V_ASN1_PRIMITIVE_TAG -# define V_ASN1_APP_CHOOSE -2/* let the recipient choose */ -# define V_ASN1_OTHER -3/* used in ASN1_TYPE */ -# define V_ASN1_ANY -4/* used in ASN1 template code */ +# define V_ASN1_APP_CHOOSE -2 /* let the recipient choose */ +# define V_ASN1_OTHER -3 /* used in ASN1_TYPE */ +# define V_ASN1_ANY -4 /* used in ASN1 template code */ # define V_ASN1_UNDEF -1 /* ASN.1 tag values */ # define V_ASN1_EOC 0 -# define V_ASN1_BOOLEAN 1 /**/ +# define V_ASN1_BOOLEAN 1 # define V_ASN1_INTEGER 2 # define V_ASN1_BIT_STRING 3 # define V_ASN1_OCTET_STRING 4 @@ -70,19 +73,19 @@ extern "C" { # define V_ASN1_UTF8STRING 12 # define V_ASN1_SEQUENCE 16 # define V_ASN1_SET 17 -# define V_ASN1_NUMERICSTRING 18 /**/ +# define V_ASN1_NUMERICSTRING 18 # define V_ASN1_PRINTABLESTRING 19 # define V_ASN1_T61STRING 20 -# define V_ASN1_TELETEXSTRING 20/* alias */ -# define V_ASN1_VIDEOTEXSTRING 21 /**/ +# define V_ASN1_TELETEXSTRING 20 /* alias */ +# define V_ASN1_VIDEOTEXSTRING 21 # define V_ASN1_IA5STRING 22 # define V_ASN1_UTCTIME 23 -# define V_ASN1_GENERALIZEDTIME 24 /**/ -# define V_ASN1_GRAPHICSTRING 25 /**/ -# define V_ASN1_ISO64STRING 26 /**/ -# define V_ASN1_VISIBLESTRING 26/* alias */ -# define V_ASN1_GENERALSTRING 27 /**/ -# define V_ASN1_UNIVERSALSTRING 28 /**/ +# define V_ASN1_GENERALIZEDTIME 24 +# define V_ASN1_GRAPHICSTRING 25 +# define V_ASN1_ISO64STRING 26 +# define V_ASN1_VISIBLESTRING 26 /* alias */ +# define V_ASN1_GENERALSTRING 27 +# define V_ASN1_UNIVERSALSTRING 28 # define V_ASN1_BMPSTRING 30 /* @@ -155,7 +158,7 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_ALGOR, X509_ALGOR, X509_ALGOR) -# define ASN1_STRING_FLAG_BITS_LEFT 0x08/* Set if 0x07 has bits left value */ +# define ASN1_STRING_FLAG_BITS_LEFT 0x08 /* Set if 0x07 has bits left value */ /* * This indicates that the ASN1_STRING is not a real value but just a place * holder for the location where indefinite length constructed data should be @@ -275,7 +278,7 @@ typedef struct ASN1_TLC_st ASN1_TLC; /* This is just an opaque pointer */ typedef struct ASN1_VALUE_st ASN1_VALUE; -/* Declare ASN1 functions: the implement macro in in asn1t.h */ +/* Declare ASN1 functions: the implement macro is in asn1t.h */ /* * The mysterious 'extern' that's passed to some macros is innocuous, @@ -368,6 +371,7 @@ typedef struct ASN1_VALUE_st ASN1_VALUE; typedef void *d2i_of_void(void **, const unsigned char **, long); typedef int i2d_of_void(const void *, unsigned char **); +typedef int OSSL_i2d_of_void_ctx(const void *, unsigned char **, void *vctx); /*- * The following macros and typedefs allow an ASN1_ITEM @@ -996,6 +1000,8 @@ int ASN1_TYPE_get_int_octetstring(const ASN1_TYPE *a, long *num, unsigned char *data, int max_len); void *ASN1_item_unpack(const ASN1_STRING *oct, const ASN1_ITEM *it); +void *ASN1_item_unpack_ex(const ASN1_STRING *oct, const ASN1_ITEM *it, + OSSL_LIB_CTX *libctx, const char *propq); ASN1_STRING *ASN1_item_pack(void *obj, const ASN1_ITEM *it, ASN1_OCTET_STRING **oct); diff --git a/deps/openssl/config/archs/BSD-x86_64/asm_avx2/include/openssl/bio.h b/deps/openssl/config/archs/BSD-x86_64/asm_avx2/include/openssl/bio.h index f9aa74731c833c..e02f867beb0ec0 100644 --- a/deps/openssl/config/archs/BSD-x86_64/asm_avx2/include/openssl/bio.h +++ b/deps/openssl/config/archs/BSD-x86_64/asm_avx2/include/openssl/bio.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/bio.h.in * - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -67,8 +67,13 @@ extern "C" { # define BIO_TYPE_DGRAM_SCTP (24|BIO_TYPE_SOURCE_SINK|BIO_TYPE_DESCRIPTOR) # endif # define BIO_TYPE_CORE_TO_PROV (25|BIO_TYPE_SOURCE_SINK) +# define BIO_TYPE_DGRAM_PAIR (26|BIO_TYPE_SOURCE_SINK) +# define BIO_TYPE_DGRAM_MEM (27|BIO_TYPE_SOURCE_SINK) +/* Custom type starting index returned by BIO_get_new_index() */ #define BIO_TYPE_START 128 +/* Custom type maximum index that can be returned by BIO_get_new_index() */ +#define BIO_TYPE_MASK 0xFF /* * BIO_FILENAME_READ|BIO_CLOSE to open or close on free. @@ -171,6 +176,31 @@ extern "C" { # define BIO_CTRL_SET_INDENT 80 # define BIO_CTRL_GET_INDENT 81 +# define BIO_CTRL_DGRAM_GET_LOCAL_ADDR_CAP 82 +# define BIO_CTRL_DGRAM_GET_LOCAL_ADDR_ENABLE 83 +# define BIO_CTRL_DGRAM_SET_LOCAL_ADDR_ENABLE 84 +# define BIO_CTRL_DGRAM_GET_EFFECTIVE_CAPS 85 +# define BIO_CTRL_DGRAM_GET_CAPS 86 +# define BIO_CTRL_DGRAM_SET_CAPS 87 +# define BIO_CTRL_DGRAM_GET_NO_TRUNC 88 +# define BIO_CTRL_DGRAM_SET_NO_TRUNC 89 + +/* + * internal BIO: + * # define BIO_CTRL_SET_KTLS_TX_ZEROCOPY_SENDFILE 90 + */ + +# define BIO_CTRL_GET_RPOLL_DESCRIPTOR 91 +# define BIO_CTRL_GET_WPOLL_DESCRIPTOR 92 +# define BIO_CTRL_DGRAM_DETECT_PEER_ADDR 93 +# define BIO_CTRL_DGRAM_SET0_LOCAL_ADDR 94 + +# define BIO_DGRAM_CAP_NONE 0U +# define BIO_DGRAM_CAP_HANDLES_SRC_ADDR (1U << 0) +# define BIO_DGRAM_CAP_HANDLES_DST_ADDR (1U << 1) +# define BIO_DGRAM_CAP_PROVIDES_SRC_ADDR (1U << 2) +# define BIO_DGRAM_CAP_PROVIDES_DST_ADDR (1U << 3) + # ifndef OPENSSL_NO_KTLS # define BIO_get_ktls_send(b) \ (BIO_ctrl(b, BIO_CTRL_GET_KTLS_SEND, 0, NULL) > 0) @@ -208,7 +238,7 @@ extern "C" { # define BIO_FLAGS_NONCLEAR_RST 0x400 # define BIO_FLAGS_IN_EOF 0x800 -/* the BIO FLAGS values 0x1000 to 0x4000 are reserved for internal KTLS flags */ +/* the BIO FLAGS values 0x1000 to 0x8000 are reserved for internal KTLS flags */ typedef union bio_addr_st BIO_ADDR; typedef struct bio_addrinfo_st BIO_ADDRINFO; @@ -256,12 +286,14 @@ void BIO_clear_flags(BIO *b, int flags); # define BIO_RR_ACCEPT 0x03 /* These are passed by the BIO callback */ -# define BIO_CB_FREE 0x01 -# define BIO_CB_READ 0x02 -# define BIO_CB_WRITE 0x03 -# define BIO_CB_PUTS 0x04 -# define BIO_CB_GETS 0x05 -# define BIO_CB_CTRL 0x06 +# define BIO_CB_FREE 0x01 +# define BIO_CB_READ 0x02 +# define BIO_CB_WRITE 0x03 +# define BIO_CB_PUTS 0x04 +# define BIO_CB_GETS 0x05 +# define BIO_CB_CTRL 0x06 +# define BIO_CB_RECVMMSG 0x07 +# define BIO_CB_SENDMMSG 0x08 /* * The callback is called before and after the underling operation, The @@ -362,6 +394,36 @@ struct bio_dgram_sctp_prinfo { }; # endif +/* BIO_sendmmsg/BIO_recvmmsg-related definitions */ +typedef struct bio_msg_st { + void *data; + size_t data_len; + BIO_ADDR *peer, *local; + uint64_t flags; +} BIO_MSG; + +typedef struct bio_mmsg_cb_args_st { + BIO_MSG *msg; + size_t stride, num_msg; + uint64_t flags; + size_t *msgs_processed; +} BIO_MMSG_CB_ARGS; + +#define BIO_POLL_DESCRIPTOR_TYPE_NONE 0 +#define BIO_POLL_DESCRIPTOR_TYPE_SOCK_FD 1 +#define BIO_POLL_DESCRIPTOR_TYPE_SSL 2 +#define BIO_POLL_DESCRIPTOR_CUSTOM_START 8192 + +typedef struct bio_poll_descriptor_st { + uint32_t type; + union { + int fd; + void *custom; + uintptr_t custom_ui; + SSL *ssl; + } value; +} BIO_POLL_DESCRIPTOR; + /* * #define BIO_CONN_get_param_hostname BIO_ctrl */ @@ -428,10 +490,17 @@ struct bio_dgram_sctp_prinfo { # define BIO_C_SET_CONNECT_MODE 155 +# define BIO_C_SET_TFO 156 /* like BIO_C_SET_NBIO */ + +# define BIO_C_SET_SOCK_TYPE 157 +# define BIO_C_GET_SOCK_TYPE 158 +# define BIO_C_GET_DGRAM_BIO 159 + # define BIO_set_app_data(s,arg) BIO_set_ex_data(s,0,arg) # define BIO_get_app_data(s) BIO_get_ex_data(s,0) -# define BIO_set_nbio(b,n) BIO_ctrl(b,BIO_C_SET_NBIO,(n),NULL) +# define BIO_set_nbio(b,n) BIO_ctrl(b,BIO_C_SET_NBIO,(n),NULL) +# define BIO_set_tfo(b,n) BIO_ctrl(b,BIO_C_SET_TFO,(n),NULL) # ifndef OPENSSL_NO_SOCK /* IP families we support, for BIO_s_connect() and BIO_s_accept() */ @@ -452,7 +521,11 @@ struct bio_dgram_sctp_prinfo { # define BIO_get_conn_port(b) ((const char *)BIO_ptr_ctrl(b,BIO_C_GET_CONNECT,1)) # define BIO_get_conn_address(b) ((const BIO_ADDR *)BIO_ptr_ctrl(b,BIO_C_GET_CONNECT,2)) # define BIO_get_conn_ip_family(b) BIO_ctrl(b,BIO_C_GET_CONNECT,3,NULL) +# define BIO_get_conn_mode(b) BIO_ctrl(b,BIO_C_GET_CONNECT,4,NULL) # define BIO_set_conn_mode(b,n) BIO_ctrl(b,BIO_C_SET_CONNECT_MODE,(n),NULL) +# define BIO_set_sock_type(b,t) BIO_ctrl(b,BIO_C_SET_SOCK_TYPE,(t),NULL) +# define BIO_get_sock_type(b) BIO_ctrl(b,BIO_C_GET_SOCK_TYPE,0,NULL) +# define BIO_get0_dgram_bio(b, p) BIO_ctrl(b,BIO_C_GET_DGRAM_BIO,0,(void *)(BIO **)(p)) /* BIO_s_accept() */ # define BIO_set_accept_name(b,name) BIO_ctrl(b,BIO_C_SET_ACCEPT,0, \ @@ -469,6 +542,7 @@ struct bio_dgram_sctp_prinfo { (char *)(bio)) # define BIO_set_accept_ip_family(b,f) BIO_int_ctrl(b,BIO_C_SET_ACCEPT,4,f) # define BIO_get_accept_ip_family(b) BIO_ctrl(b,BIO_C_GET_ACCEPT,4,NULL) +# define BIO_set_tfo_accept(b,n) BIO_ctrl(b,BIO_C_SET_ACCEPT,5,(n)?(void *)"a":NULL) /* Aliases kept for backward compatibility */ # define BIO_BIND_NORMAL 0 @@ -596,8 +670,32 @@ int BIO_ctrl_reset_read_request(BIO *b); (int)BIO_ctrl(b, BIO_CTRL_DGRAM_GET_PEER, 0, (char *)(peer)) # define BIO_dgram_set_peer(b,peer) \ (int)BIO_ctrl(b, BIO_CTRL_DGRAM_SET_PEER, 0, (char *)(peer)) +# define BIO_dgram_detect_peer_addr(b,peer) \ + (int)BIO_ctrl(b, BIO_CTRL_DGRAM_DETECT_PEER_ADDR, 0, (char *)(peer)) # define BIO_dgram_get_mtu_overhead(b) \ (unsigned int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_MTU_OVERHEAD, 0, NULL) +# define BIO_dgram_get_local_addr_cap(b) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_LOCAL_ADDR_CAP, 0, NULL) +# define BIO_dgram_get_local_addr_enable(b, penable) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_LOCAL_ADDR_ENABLE, 0, (char *)(penable)) +# define BIO_dgram_set_local_addr_enable(b, enable) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET_LOCAL_ADDR_ENABLE, (enable), NULL) +# define BIO_dgram_get_effective_caps(b) \ + (uint32_t)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_EFFECTIVE_CAPS, 0, NULL) +# define BIO_dgram_get_caps(b) \ + (uint32_t)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_CAPS, 0, NULL) +# define BIO_dgram_set_caps(b, caps) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET_CAPS, (long)(caps), NULL) +# define BIO_dgram_get_no_trunc(b) \ + (unsigned int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_NO_TRUNC, 0, NULL) +# define BIO_dgram_set_no_trunc(b, enable) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET_NO_TRUNC, (enable), NULL) +# define BIO_dgram_get_mtu(b) \ + (unsigned int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_MTU, 0, NULL) +# define BIO_dgram_set_mtu(b, mtu) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET_MTU, (mtu), NULL) +# define BIO_dgram_set0_local_addr(b, addr) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET0_LOCAL_ADDR, 0, (addr)) /* ctrl macros for BIO_f_prefix */ # define BIO_set_prefix(b,p) BIO_ctrl((b), BIO_CTRL_SET_PREFIX, 0, (void *)(p)) @@ -640,10 +738,18 @@ void BIO_vfree(BIO *a); int BIO_up_ref(BIO *a); int BIO_read(BIO *b, void *data, int dlen); int BIO_read_ex(BIO *b, void *data, size_t dlen, size_t *readbytes); +__owur int BIO_recvmmsg(BIO *b, BIO_MSG *msg, + size_t stride, size_t num_msg, uint64_t flags, + size_t *msgs_processed); int BIO_gets(BIO *bp, char *buf, int size); int BIO_get_line(BIO *bio, char *buf, int size); int BIO_write(BIO *b, const void *data, int dlen); int BIO_write_ex(BIO *b, const void *data, size_t dlen, size_t *written); +__owur int BIO_sendmmsg(BIO *b, BIO_MSG *msg, + size_t stride, size_t num_msg, uint64_t flags, + size_t *msgs_processed); +__owur int BIO_get_rpoll_descriptor(BIO *b, BIO_POLL_DESCRIPTOR *desc); +__owur int BIO_get_wpoll_descriptor(BIO *b, BIO_POLL_DESCRIPTOR *desc); int BIO_puts(BIO *bp, const char *buf); int BIO_indent(BIO *b, int indent, int max); long BIO_ctrl(BIO *bp, int cmd, long larg, void *parg); @@ -667,6 +773,9 @@ int BIO_nwrite0(BIO *bio, char **buf); int BIO_nwrite(BIO *bio, char **buf, int num); const BIO_METHOD *BIO_s_mem(void); +# ifndef OPENSSL_NO_DGRAM +const BIO_METHOD *BIO_s_dgram_mem(void); +# endif const BIO_METHOD *BIO_s_secmem(void); BIO *BIO_new_mem_buf(const void *buf, int len); # ifndef OPENSSL_NO_SOCK @@ -686,6 +795,7 @@ const BIO_METHOD *BIO_f_nbio_test(void); const BIO_METHOD *BIO_f_prefix(void); const BIO_METHOD *BIO_s_core(void); # ifndef OPENSSL_NO_DGRAM +const BIO_METHOD *BIO_s_dgram_pair(void); const BIO_METHOD *BIO_s_datagram(void); int BIO_dgram_non_fatal_error(int error); BIO *BIO_new_dgram(int fd, int close_flag); @@ -704,6 +814,7 @@ int BIO_dgram_sctp_msg_waiting(BIO *b); # ifndef OPENSSL_NO_SOCK int BIO_sock_should_retry(int i); int BIO_sock_non_fatal_error(int error); +int BIO_err_is_non_fatal(unsigned int errcode); int BIO_socket_wait(int fd, int for_read, time_t max_time); # endif int BIO_wait(BIO *bio, time_t max_time, unsigned int nap_milliseconds); @@ -726,6 +837,8 @@ int BIO_hex_string(BIO *out, int indent, int width, const void *data, # ifndef OPENSSL_NO_SOCK BIO_ADDR *BIO_ADDR_new(void); +int BIO_ADDR_copy(BIO_ADDR *dst, const BIO_ADDR *src); +BIO_ADDR *BIO_ADDR_dup(const BIO_ADDR *ap); int BIO_ADDR_rawmake(BIO_ADDR *ap, int family, const void *where, size_t wherelen, unsigned short port); void BIO_ADDR_free(BIO_ADDR *); @@ -788,6 +901,7 @@ int BIO_sock_info(int sock, # define BIO_SOCK_KEEPALIVE 0x04 # define BIO_SOCK_NONBLOCK 0x08 # define BIO_SOCK_NODELAY 0x10 +# define BIO_SOCK_TFO 0x20 int BIO_socket(int domain, int socktype, int protocol, int options); int BIO_connect(int sock, const BIO_ADDR *addr, int options); @@ -805,6 +919,11 @@ BIO *BIO_new_fd(int fd, int close_flag); int BIO_new_bio_pair(BIO **bio1, size_t writebuf1, BIO **bio2, size_t writebuf2); +# ifndef OPENSSL_NO_DGRAM +int BIO_new_bio_dgram_pair(BIO **bio1, size_t writebuf1, + BIO **bio2, size_t writebuf2); +# endif + /* * If successful, returns 1 and in *bio1, *bio2 two BIO pair endpoints. * Otherwise returns 0 and sets *bio1 and *bio2 to NULL. Size 0 uses default @@ -849,38 +968,54 @@ ossl_bio__attr__((__format__(ossl_bio__printf__, 3, 0))); BIO_METHOD *BIO_meth_new(int type, const char *name); void BIO_meth_free(BIO_METHOD *biom); -int (*BIO_meth_get_write(const BIO_METHOD *biom)) (BIO *, const char *, int); -int (*BIO_meth_get_write_ex(const BIO_METHOD *biom)) (BIO *, const char *, size_t, - size_t *); int BIO_meth_set_write(BIO_METHOD *biom, int (*write) (BIO *, const char *, int)); int BIO_meth_set_write_ex(BIO_METHOD *biom, int (*bwrite) (BIO *, const char *, size_t, size_t *)); -int (*BIO_meth_get_read(const BIO_METHOD *biom)) (BIO *, char *, int); -int (*BIO_meth_get_read_ex(const BIO_METHOD *biom)) (BIO *, char *, size_t, size_t *); +int BIO_meth_set_sendmmsg(BIO_METHOD *biom, + int (*f) (BIO *, BIO_MSG *, size_t, size_t, + uint64_t, size_t *)); int BIO_meth_set_read(BIO_METHOD *biom, int (*read) (BIO *, char *, int)); int BIO_meth_set_read_ex(BIO_METHOD *biom, int (*bread) (BIO *, char *, size_t, size_t *)); -int (*BIO_meth_get_puts(const BIO_METHOD *biom)) (BIO *, const char *); +int BIO_meth_set_recvmmsg(BIO_METHOD *biom, + int (*f) (BIO *, BIO_MSG *, size_t, size_t, + uint64_t, size_t *)); int BIO_meth_set_puts(BIO_METHOD *biom, int (*puts) (BIO *, const char *)); -int (*BIO_meth_get_gets(const BIO_METHOD *biom)) (BIO *, char *, int); int BIO_meth_set_gets(BIO_METHOD *biom, int (*ossl_gets) (BIO *, char *, int)); -long (*BIO_meth_get_ctrl(const BIO_METHOD *biom)) (BIO *, int, long, void *); int BIO_meth_set_ctrl(BIO_METHOD *biom, long (*ctrl) (BIO *, int, long, void *)); -int (*BIO_meth_get_create(const BIO_METHOD *bion)) (BIO *); int BIO_meth_set_create(BIO_METHOD *biom, int (*create) (BIO *)); -int (*BIO_meth_get_destroy(const BIO_METHOD *biom)) (BIO *); int BIO_meth_set_destroy(BIO_METHOD *biom, int (*destroy) (BIO *)); -long (*BIO_meth_get_callback_ctrl(const BIO_METHOD *biom)) - (BIO *, int, BIO_info_cb *); int BIO_meth_set_callback_ctrl(BIO_METHOD *biom, long (*callback_ctrl) (BIO *, int, BIO_info_cb *)); - +# ifndef OPENSSL_NO_DEPRECATED_3_5 +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_write(const BIO_METHOD *biom)) (BIO *, const char *, + int); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_write_ex(const BIO_METHOD *biom)) (BIO *, const char *, + size_t, size_t *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_sendmmsg(const BIO_METHOD *biom))(BIO *, BIO_MSG *, + size_t, size_t, + uint64_t, size_t *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_read(const BIO_METHOD *biom)) (BIO *, char *, int); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_read_ex(const BIO_METHOD *biom)) (BIO *, char *, + size_t, size_t *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_recvmmsg(const BIO_METHOD *biom))(BIO *, BIO_MSG *, + size_t, size_t, + uint64_t, size_t *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_puts(const BIO_METHOD *biom)) (BIO *, const char *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_gets(const BIO_METHOD *biom)) (BIO *, char *, int); +OSSL_DEPRECATEDIN_3_5 long (*BIO_meth_get_ctrl(const BIO_METHOD *biom)) (BIO *, int, + long, void *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_create(const BIO_METHOD *bion)) (BIO *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_destroy(const BIO_METHOD *biom)) (BIO *); +OSSL_DEPRECATEDIN_3_5 long (*BIO_meth_get_callback_ctrl(const BIO_METHOD *biom)) (BIO *, int, + BIO_info_cb *); +# endif # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/BSD-x86_64/asm_avx2/include/openssl/cmp.h b/deps/openssl/config/archs/BSD-x86_64/asm_avx2/include/openssl/cmp.h index 49825570d8c303..05aed3029d594c 100644 --- a/deps/openssl/config/archs/BSD-x86_64/asm_avx2/include/openssl/cmp.h +++ b/deps/openssl/config/archs/BSD-x86_64/asm_avx2/include/openssl/cmp.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/cmp.h.in * - * Copyright 2007-2023 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2007-2024 The OpenSSL Project Authors. All Rights Reserved. * Copyright Nokia 2007-2019 * Copyright Siemens AG 2015-2019 * @@ -35,7 +35,9 @@ extern "C" { # endif -# define OSSL_CMP_PVNO 2 +# define OSSL_CMP_PVNO_2 2 +# define OSSL_CMP_PVNO_3 3 +# define OSSL_CMP_PVNO OSSL_CMP_PVNO_2 /* v2 is the default */ /*- * PKIFailureInfo ::= BIT STRING { @@ -137,7 +139,6 @@ extern "C" { # if OSSL_CMP_PKIFAILUREINFO_MAX_BIT_PATTERN > INT_MAX # error CMP_PKIFAILUREINFO_MAX bit pattern does not fit in type int # endif - typedef ASN1_BIT_STRING OSSL_CMP_PKIFAILUREINFO; # define OSSL_CMP_CTX_FAILINFO_badAlg (1 << 0) @@ -203,8 +204,8 @@ typedef ASN1_BIT_STRING OSSL_CMP_PKIFAILUREINFO; # define OSSL_CMP_PKISTATUS_revocationWarning 4 # define OSSL_CMP_PKISTATUS_revocationNotification 5 # define OSSL_CMP_PKISTATUS_keyUpdateWarning 6 - typedef ASN1_INTEGER OSSL_CMP_PKISTATUS; + DECLARE_ASN1_ITEM(OSSL_CMP_PKISTATUS) # define OSSL_CMP_CERTORENCCERT_CERTIFICATE 0 @@ -274,6 +275,46 @@ SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CMP_ITAV, OSSL_CMP_ITAV, OSSL_CMP_ITAV) #define sk_OSSL_CMP_ITAV_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_CMP_ITAV) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_CMP_ITAV_sk_type(sk), ossl_check_OSSL_CMP_ITAV_copyfunc_type(copyfunc), ossl_check_OSSL_CMP_ITAV_freefunc_type(freefunc))) #define sk_OSSL_CMP_ITAV_set_cmp_func(sk, cmp) ((sk_OSSL_CMP_ITAV_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CMP_ITAV_sk_type(sk), ossl_check_OSSL_CMP_ITAV_compfunc_type(cmp))) + +typedef struct ossl_cmp_crlstatus_st OSSL_CMP_CRLSTATUS; +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CMP_CRLSTATUS, OSSL_CMP_CRLSTATUS, OSSL_CMP_CRLSTATUS) +#define sk_OSSL_CMP_CRLSTATUS_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_value(sk, idx) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_value(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk), (idx))) +#define sk_OSSL_CMP_CRLSTATUS_new(cmp) ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_new(ossl_check_OSSL_CMP_CRLSTATUS_compfunc_type(cmp))) +#define sk_OSSL_CMP_CRLSTATUS_new_null() ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_new_null()) +#define sk_OSSL_CMP_CRLSTATUS_new_reserve(cmp, n) ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_CMP_CRLSTATUS_compfunc_type(cmp), (n))) +#define sk_OSSL_CMP_CRLSTATUS_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), (n)) +#define sk_OSSL_CMP_CRLSTATUS_free(sk) OPENSSL_sk_free(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_delete(sk, i) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_delete(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), (i))) +#define sk_OSSL_CMP_CRLSTATUS_delete_ptr(sk, ptr) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr))) +#define sk_OSSL_CMP_CRLSTATUS_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr)) +#define sk_OSSL_CMP_CRLSTATUS_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr)) +#define sk_OSSL_CMP_CRLSTATUS_pop(sk) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_pop(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk))) +#define sk_OSSL_CMP_CRLSTATUS_shift(sk) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_shift(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk))) +#define sk_OSSL_CMP_CRLSTATUS_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk),ossl_check_OSSL_CMP_CRLSTATUS_freefunc_type(freefunc)) +#define sk_OSSL_CMP_CRLSTATUS_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr), (idx)) +#define sk_OSSL_CMP_CRLSTATUS_set(sk, idx, ptr) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_set(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), (idx), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr))) +#define sk_OSSL_CMP_CRLSTATUS_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr)) +#define sk_OSSL_CMP_CRLSTATUS_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr)) +#define sk_OSSL_CMP_CRLSTATUS_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr), pnum) +#define sk_OSSL_CMP_CRLSTATUS_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_dup(sk) ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_dup(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk))) +#define sk_OSSL_CMP_CRLSTATUS_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_copyfunc_type(copyfunc), ossl_check_OSSL_CMP_CRLSTATUS_freefunc_type(freefunc))) +#define sk_OSSL_CMP_CRLSTATUS_set_cmp_func(sk, cmp) ((sk_OSSL_CMP_CRLSTATUS_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_compfunc_type(cmp))) + + +typedef OSSL_CRMF_ATTRIBUTETYPEANDVALUE OSSL_CMP_ATAV; +# define OSSL_CMP_ATAV_free OSSL_CRMF_ATTRIBUTETYPEANDVALUE_free +typedef STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) OSSL_CMP_ATAVS; +DECLARE_ASN1_FUNCTIONS(OSSL_CMP_ATAVS) +# define stack_st_OSSL_CMP_ATAV stack_st_OSSL_CRMF_ATTRIBUTETYPEANDVALUE +# define sk_OSSL_CMP_ATAV_num sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_num +# define sk_OSSL_CMP_ATAV_value sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_value +# define sk_OSSL_CMP_ATAV_push sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_push +# define sk_OSSL_CMP_ATAV_pop_free sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_pop_free + typedef struct ossl_cmp_revrepcontent_st OSSL_CMP_REVREPCONTENT; typedef struct ossl_cmp_pkisi_st OSSL_CMP_PKISI; DECLARE_ASN1_FUNCTIONS(OSSL_CMP_PKISI) @@ -375,21 +416,75 @@ void OSSL_CMP_ITAV_set0(OSSL_CMP_ITAV *itav, ASN1_OBJECT *type, ASN1_TYPE *value); ASN1_OBJECT *OSSL_CMP_ITAV_get0_type(const OSSL_CMP_ITAV *itav); ASN1_TYPE *OSSL_CMP_ITAV_get0_value(const OSSL_CMP_ITAV *itav); -int OSSL_CMP_ITAV_push0_stack_item(STACK_OF(OSSL_CMP_ITAV) **itav_sk_p, +int OSSL_CMP_ITAV_push0_stack_item(STACK_OF(OSSL_CMP_ITAV) **sk_p, OSSL_CMP_ITAV *itav); void OSSL_CMP_ITAV_free(OSSL_CMP_ITAV *itav); + +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new0_certProfile(STACK_OF(ASN1_UTF8STRING) + *certProfile); +int OSSL_CMP_ITAV_get0_certProfile(const OSSL_CMP_ITAV *itav, + STACK_OF(ASN1_UTF8STRING) **out); +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new_caCerts(const STACK_OF(X509) *caCerts); +int OSSL_CMP_ITAV_get0_caCerts(const OSSL_CMP_ITAV *itav, STACK_OF(X509) **out); + +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new_rootCaCert(const X509 *rootCaCert); +int OSSL_CMP_ITAV_get0_rootCaCert(const OSSL_CMP_ITAV *itav, X509 **out); +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new_rootCaKeyUpdate(const X509 *newWithNew, + const X509 *newWithOld, + const X509 *oldWithNew); +int OSSL_CMP_ITAV_get0_rootCaKeyUpdate(const OSSL_CMP_ITAV *itav, + X509 **newWithNew, + X509 **newWithOld, + X509 **oldWithNew); + +OSSL_CMP_CRLSTATUS *OSSL_CMP_CRLSTATUS_create(const X509_CRL *crl, + const X509 *cert, int only_DN); +OSSL_CMP_CRLSTATUS *OSSL_CMP_CRLSTATUS_new1(const DIST_POINT_NAME *dpn, + const GENERAL_NAMES *issuer, + const ASN1_TIME *thisUpdate); +int OSSL_CMP_CRLSTATUS_get0(const OSSL_CMP_CRLSTATUS *crlstatus, + DIST_POINT_NAME **dpn, GENERAL_NAMES **issuer, + ASN1_TIME **thisUpdate); +void OSSL_CMP_CRLSTATUS_free(OSSL_CMP_CRLSTATUS *crlstatus); +OSSL_CMP_ITAV +*OSSL_CMP_ITAV_new0_crlStatusList(STACK_OF(OSSL_CMP_CRLSTATUS) *crlStatusList); +int OSSL_CMP_ITAV_get0_crlStatusList(const OSSL_CMP_ITAV *itav, + STACK_OF(OSSL_CMP_CRLSTATUS) **out); +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new_crls(const X509_CRL *crls); +int OSSL_CMP_ITAV_get0_crls(const OSSL_CMP_ITAV *it, STACK_OF(X509_CRL) **out); +OSSL_CMP_ITAV +*OSSL_CMP_ITAV_new0_certReqTemplate(OSSL_CRMF_CERTTEMPLATE *certTemplate, + OSSL_CMP_ATAVS *keySpec); +int OSSL_CMP_ITAV_get1_certReqTemplate(const OSSL_CMP_ITAV *itav, + OSSL_CRMF_CERTTEMPLATE **certTemplate, + OSSL_CMP_ATAVS **keySpec); + +OSSL_CMP_ATAV *OSSL_CMP_ATAV_create(ASN1_OBJECT *type, ASN1_TYPE *value); +void OSSL_CMP_ATAV_set0(OSSL_CMP_ATAV *itav, ASN1_OBJECT *type, + ASN1_TYPE *value); +ASN1_OBJECT *OSSL_CMP_ATAV_get0_type(const OSSL_CMP_ATAV *itav); +ASN1_TYPE *OSSL_CMP_ATAV_get0_value(const OSSL_CMP_ATAV *itav); +OSSL_CMP_ATAV *OSSL_CMP_ATAV_new_algId(const X509_ALGOR *alg); +X509_ALGOR *OSSL_CMP_ATAV_get0_algId(const OSSL_CMP_ATAV *atav); +OSSL_CMP_ATAV *OSSL_CMP_ATAV_new_rsaKeyLen(int len); +int OSSL_CMP_ATAV_get_rsaKeyLen(const OSSL_CMP_ATAV *atav); +int OSSL_CMP_ATAV_push1(OSSL_CMP_ATAVS **sk_p, const OSSL_CMP_ATAV *atav); + void OSSL_CMP_MSG_free(OSSL_CMP_MSG *msg); /* from cmp_ctx.c */ OSSL_CMP_CTX *OSSL_CMP_CTX_new(OSSL_LIB_CTX *libctx, const char *propq); void OSSL_CMP_CTX_free(OSSL_CMP_CTX *ctx); int OSSL_CMP_CTX_reinit(OSSL_CMP_CTX *ctx); +OSSL_LIB_CTX *OSSL_CMP_CTX_get0_libctx(const OSSL_CMP_CTX *ctx); +const char *OSSL_CMP_CTX_get0_propq(const OSSL_CMP_CTX *ctx); /* CMP general options: */ # define OSSL_CMP_OPT_LOG_VERBOSITY 0 /* CMP transfer options: */ -# define OSSL_CMP_OPT_KEEP_ALIVE 10 -# define OSSL_CMP_OPT_MSG_TIMEOUT 11 +# define OSSL_CMP_OPT_KEEP_ALIVE 10 +# define OSSL_CMP_OPT_MSG_TIMEOUT 11 # define OSSL_CMP_OPT_TOTAL_TIMEOUT 12 +# define OSSL_CMP_OPT_USE_TLS 13 /* CMP request options: */ # define OSSL_CMP_OPT_VALIDITY_DAYS 20 # define OSSL_CMP_OPT_SUBJECTALTNAME_NODEFAULT 21 @@ -407,6 +502,7 @@ int OSSL_CMP_CTX_reinit(OSSL_CMP_CTX *ctx); # define OSSL_CMP_OPT_DIGEST_ALGNID 34 # define OSSL_CMP_OPT_IGNORE_KEYUSAGE 35 # define OSSL_CMP_OPT_PERMIT_TA_IN_EXTRACERTS_FOR_IR 36 +# define OSSL_CMP_OPT_NO_CACHE_EXTRACERTS 37 int OSSL_CMP_CTX_set_option(OSSL_CMP_CTX *ctx, int opt, int val); int OSSL_CMP_CTX_get_option(const OSSL_CMP_CTX *ctx, int opt); /* CMP-specific callback for logging and outputting the error queue: */ @@ -420,9 +516,11 @@ int OSSL_CMP_CTX_set1_server(OSSL_CMP_CTX *ctx, const char *address); int OSSL_CMP_CTX_set_serverPort(OSSL_CMP_CTX *ctx, int port); int OSSL_CMP_CTX_set1_proxy(OSSL_CMP_CTX *ctx, const char *name); int OSSL_CMP_CTX_set1_no_proxy(OSSL_CMP_CTX *ctx, const char *names); +# ifndef OPENSSL_NO_HTTP int OSSL_CMP_CTX_set_http_cb(OSSL_CMP_CTX *ctx, OSSL_HTTP_bio_cb_t cb); int OSSL_CMP_CTX_set_http_cb_arg(OSSL_CMP_CTX *ctx, void *arg); void *OSSL_CMP_CTX_get_http_cb_arg(const OSSL_CMP_CTX *ctx); +# endif typedef OSSL_CMP_MSG *(*OSSL_CMP_transfer_cb_t) (OSSL_CMP_CTX *ctx, const OSSL_CMP_MSG *req); int OSSL_CMP_CTX_set_transfer_cb(OSSL_CMP_CTX *ctx, OSSL_CMP_transfer_cb_t cb); @@ -432,7 +530,9 @@ void *OSSL_CMP_CTX_get_transfer_cb_arg(const OSSL_CMP_CTX *ctx); int OSSL_CMP_CTX_set1_srvCert(OSSL_CMP_CTX *ctx, X509 *cert); int OSSL_CMP_CTX_set1_expected_sender(OSSL_CMP_CTX *ctx, const X509_NAME *name); int OSSL_CMP_CTX_set0_trustedStore(OSSL_CMP_CTX *ctx, X509_STORE *store); +# define OSSL_CMP_CTX_set0_trusted OSSL_CMP_CTX_set0_trustedStore X509_STORE *OSSL_CMP_CTX_get0_trustedStore(const OSSL_CMP_CTX *ctx); +# define OSSL_CMP_CTX_get0_trusted OSSL_CMP_CTX_get0_trustedStore int OSSL_CMP_CTX_set1_untrusted(OSSL_CMP_CTX *ctx, STACK_OF(X509) *certs); STACK_OF(X509) *OSSL_CMP_CTX_get0_untrusted(const OSSL_CMP_CTX *ctx); /* client authentication: */ @@ -448,12 +548,15 @@ int OSSL_CMP_CTX_set1_secretValue(OSSL_CMP_CTX *ctx, int OSSL_CMP_CTX_set1_recipient(OSSL_CMP_CTX *ctx, const X509_NAME *name); int OSSL_CMP_CTX_push0_geninfo_ITAV(OSSL_CMP_CTX *ctx, OSSL_CMP_ITAV *itav); int OSSL_CMP_CTX_reset_geninfo_ITAVs(OSSL_CMP_CTX *ctx); +STACK_OF(OSSL_CMP_ITAV) + *OSSL_CMP_CTX_get0_geninfo_ITAVs(const OSSL_CMP_CTX *ctx); int OSSL_CMP_CTX_set1_extraCertsOut(OSSL_CMP_CTX *ctx, STACK_OF(X509) *extraCertsOut); /* certificate template: */ int OSSL_CMP_CTX_set0_newPkey(OSSL_CMP_CTX *ctx, int priv, EVP_PKEY *pkey); EVP_PKEY *OSSL_CMP_CTX_get0_newPkey(const OSSL_CMP_CTX *ctx, int priv); int OSSL_CMP_CTX_set1_issuer(OSSL_CMP_CTX *ctx, const X509_NAME *name); +int OSSL_CMP_CTX_set1_serialNumber(OSSL_CMP_CTX *ctx, const ASN1_INTEGER *sn); int OSSL_CMP_CTX_set1_subjectName(OSSL_CMP_CTX *ctx, const X509_NAME *name); int OSSL_CMP_CTX_push1_subjectAltName(OSSL_CMP_CTX *ctx, const GENERAL_NAME *name); @@ -477,6 +580,7 @@ int OSSL_CMP_CTX_get_status(const OSSL_CMP_CTX *ctx); OSSL_CMP_PKIFREETEXT *OSSL_CMP_CTX_get0_statusString(const OSSL_CMP_CTX *ctx); int OSSL_CMP_CTX_get_failInfoCode(const OSSL_CMP_CTX *ctx); # define OSSL_CMP_PKISI_BUFLEN 1024 +X509 *OSSL_CMP_CTX_get0_validatedSrvCert(const OSSL_CMP_CTX *ctx); X509 *OSSL_CMP_CTX_get0_newCert(const OSSL_CMP_CTX *ctx); STACK_OF(X509) *OSSL_CMP_CTX_get1_newChain(const OSSL_CMP_CTX *ctx); STACK_OF(X509) *OSSL_CMP_CTX_get1_caPubs(const OSSL_CMP_CTX *ctx); @@ -498,10 +602,13 @@ OSSL_CMP_STATUSINFO_new(int status, int fail_info, const char *text); ASN1_OCTET_STRING *OSSL_CMP_HDR_get0_transactionID(const OSSL_CMP_PKIHEADER *hdr); ASN1_OCTET_STRING *OSSL_CMP_HDR_get0_recipNonce(const OSSL_CMP_PKIHEADER *hdr); +STACK_OF(OSSL_CMP_ITAV) + *OSSL_CMP_HDR_get0_geninfo_ITAVs(const OSSL_CMP_PKIHEADER *hdr); /* from cmp_msg.c */ OSSL_CMP_PKIHEADER *OSSL_CMP_MSG_get0_header(const OSSL_CMP_MSG *msg); int OSSL_CMP_MSG_get_bodytype(const OSSL_CMP_MSG *msg); +X509_PUBKEY *OSSL_CMP_MSG_get0_certreq_publickey(const OSSL_CMP_MSG *msg); int OSSL_CMP_MSG_update_transactionID(OSSL_CMP_CTX *ctx, OSSL_CMP_MSG *msg); int OSSL_CMP_MSG_update_recipNonce(OSSL_CMP_CTX *ctx, OSSL_CMP_MSG *msg); OSSL_CRMF_MSG *OSSL_CMP_CTX_setup_CRM(OSSL_CMP_CTX *ctx, int for_KUR, int rid); @@ -517,8 +624,10 @@ int OSSL_CMP_validate_cert_path(const OSSL_CMP_CTX *ctx, X509_STORE *trusted_store, X509 *cert); /* from cmp_http.c */ +# ifndef OPENSSL_NO_HTTP OSSL_CMP_MSG *OSSL_CMP_MSG_http_perform(OSSL_CMP_CTX *ctx, const OSSL_CMP_MSG *req); +# endif /* from cmp_server.c */ typedef struct ossl_cmp_srv_ctx_st OSSL_CMP_SRV_CTX; @@ -561,6 +670,13 @@ int OSSL_CMP_SRV_CTX_init(OSSL_CMP_SRV_CTX *srv_ctx, void *custom_ctx, OSSL_CMP_SRV_error_cb_t process_error, OSSL_CMP_SRV_certConf_cb_t process_certConf, OSSL_CMP_SRV_pollReq_cb_t process_pollReq); +typedef int (*OSSL_CMP_SRV_delayed_delivery_cb_t)(OSSL_CMP_SRV_CTX *srv_ctx, + const OSSL_CMP_MSG *req); +typedef int (*OSSL_CMP_SRV_clean_transaction_cb_t)(OSSL_CMP_SRV_CTX *srv_ctx, + const ASN1_OCTET_STRING *id); +int OSSL_CMP_SRV_CTX_init_trans(OSSL_CMP_SRV_CTX *srv_ctx, + OSSL_CMP_SRV_delayed_delivery_cb_t delay, + OSSL_CMP_SRV_clean_transaction_cb_t clean); OSSL_CMP_CTX *OSSL_CMP_SRV_CTX_get0_cmp_ctx(const OSSL_CMP_SRV_CTX *srv_ctx); void *OSSL_CMP_SRV_CTX_get0_custom_ctx(const OSSL_CMP_SRV_CTX *srv_ctx); int OSSL_CMP_SRV_CTX_set_send_unprotected_errors(OSSL_CMP_SRV_CTX *srv_ctx, @@ -577,6 +693,8 @@ X509 *OSSL_CMP_exec_certreq(OSSL_CMP_CTX *ctx, int req_type, # define OSSL_CMP_CR 2 # define OSSL_CMP_P10CR 4 # define OSSL_CMP_KUR 7 +# define OSSL_CMP_GENM 21 +# define OSSL_CMP_ERROR 23 # define OSSL_CMP_exec_IR_ses(ctx) \ OSSL_CMP_exec_certreq(ctx, OSSL_CMP_IR, NULL) # define OSSL_CMP_exec_CR_ses(ctx) \ @@ -590,6 +708,18 @@ int OSSL_CMP_try_certreq(OSSL_CMP_CTX *ctx, int req_type, int OSSL_CMP_exec_RR_ses(OSSL_CMP_CTX *ctx); STACK_OF(OSSL_CMP_ITAV) *OSSL_CMP_exec_GENM_ses(OSSL_CMP_CTX *ctx); +/* from cmp_genm.c */ +int OSSL_CMP_get1_caCerts(OSSL_CMP_CTX *ctx, STACK_OF(X509) **out); +int OSSL_CMP_get1_rootCaKeyUpdate(OSSL_CMP_CTX *ctx, + const X509 *oldWithOld, X509 **newWithNew, + X509 **newWithOld, X509 **oldWithNew); +int OSSL_CMP_get1_crlUpdate(OSSL_CMP_CTX *ctx, const X509 *crlcert, + const X509_CRL *last_crl, + X509_CRL **crl); +int OSSL_CMP_get1_certReqTemplate(OSSL_CMP_CTX *ctx, + OSSL_CRMF_CERTTEMPLATE **certTemplate, + OSSL_CMP_ATAVS **keySpec); + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/BSD-x86_64/asm_avx2/include/openssl/cms.h b/deps/openssl/config/archs/BSD-x86_64/asm_avx2/include/openssl/cms.h index 3b453e6a2187a2..63afab563557b0 100644 --- a/deps/openssl/config/archs/BSD-x86_64/asm_avx2/include/openssl/cms.h +++ b/deps/openssl/config/archs/BSD-x86_64/asm_avx2/include/openssl/cms.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/cms.h.in * - * Copyright 2008-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2008-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -31,8 +31,10 @@ extern "C" { # endif +typedef struct CMS_EnvelopedData_st CMS_EnvelopedData; typedef struct CMS_ContentInfo_st CMS_ContentInfo; typedef struct CMS_SignerInfo_st CMS_SignerInfo; +typedef struct CMS_SignedData_st CMS_SignedData; typedef struct CMS_CertificateChoices CMS_CertificateChoices; typedef struct CMS_RevocationInfoChoice_st CMS_RevocationInfoChoice; typedef struct CMS_RecipientInfo_st CMS_RecipientInfo; @@ -147,10 +149,14 @@ SKM_DEFINE_STACK_OF_INTERNAL(CMS_RevocationInfoChoice, CMS_RevocationInfoChoice, #define sk_CMS_RevocationInfoChoice_set_cmp_func(sk, cmp) ((sk_CMS_RevocationInfoChoice_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_CMS_RevocationInfoChoice_sk_type(sk), ossl_check_CMS_RevocationInfoChoice_compfunc_type(cmp))) +DECLARE_ASN1_ITEM(CMS_EnvelopedData) +DECLARE_ASN1_ALLOC_FUNCTIONS(CMS_SignedData) DECLARE_ASN1_FUNCTIONS(CMS_ContentInfo) DECLARE_ASN1_FUNCTIONS(CMS_ReceiptRequest) DECLARE_ASN1_PRINT_FUNCTION(CMS_ContentInfo) +DECLARE_ASN1_DUP_FUNCTION(CMS_EnvelopedData) + CMS_ContentInfo *CMS_ContentInfo_new_ex(OSSL_LIB_CTX *libctx, const char *propq); # define CMS_SIGNERINFO_ISSUER_SERIAL 0 @@ -190,6 +196,7 @@ CMS_ContentInfo *CMS_ContentInfo_new_ex(OSSL_LIB_CTX *libctx, const char *propq) # define CMS_ASCIICRLF 0x80000 # define CMS_CADES 0x100000 # define CMS_USE_ORIGINATOR_KEYID 0x200000 +# define CMS_NO_SIGNING_TIME 0x400000 const ASN1_OBJECT *CMS_get0_type(const CMS_ContentInfo *cms); @@ -217,13 +224,16 @@ int SMIME_write_CMS(BIO *bio, CMS_ContentInfo *cms, BIO *data, int flags); int CMS_final(CMS_ContentInfo *cms, BIO *data, BIO *dcont, unsigned int flags); +int CMS_final_digest(CMS_ContentInfo *cms, + const unsigned char *md, unsigned int mdlen, BIO *dcont, + unsigned int flags); CMS_ContentInfo *CMS_sign(X509 *signcert, EVP_PKEY *pkey, STACK_OF(X509) *certs, BIO *data, unsigned int flags); CMS_ContentInfo *CMS_sign_ex(X509 *signcert, EVP_PKEY *pkey, STACK_OF(X509) *certs, BIO *data, - unsigned int flags, OSSL_LIB_CTX *ctx, + unsigned int flags, OSSL_LIB_CTX *libctx, const char *propq); CMS_ContentInfo *CMS_sign_receipt(CMS_SignerInfo *si, @@ -233,27 +243,26 @@ CMS_ContentInfo *CMS_sign_receipt(CMS_SignerInfo *si, int CMS_data(CMS_ContentInfo *cms, BIO *out, unsigned int flags); CMS_ContentInfo *CMS_data_create(BIO *in, unsigned int flags); CMS_ContentInfo *CMS_data_create_ex(BIO *in, unsigned int flags, - OSSL_LIB_CTX *ctx, const char *propq); + OSSL_LIB_CTX *libctx, const char *propq); int CMS_digest_verify(CMS_ContentInfo *cms, BIO *dcont, BIO *out, unsigned int flags); CMS_ContentInfo *CMS_digest_create(BIO *in, const EVP_MD *md, unsigned int flags); CMS_ContentInfo *CMS_digest_create_ex(BIO *in, const EVP_MD *md, - unsigned int flags, OSSL_LIB_CTX *ctx, + unsigned int flags, OSSL_LIB_CTX *libctx, const char *propq); int CMS_EncryptedData_decrypt(CMS_ContentInfo *cms, const unsigned char *key, size_t keylen, BIO *dcont, BIO *out, unsigned int flags); - CMS_ContentInfo *CMS_EncryptedData_encrypt(BIO *in, const EVP_CIPHER *cipher, const unsigned char *key, size_t keylen, unsigned int flags); CMS_ContentInfo *CMS_EncryptedData_encrypt_ex(BIO *in, const EVP_CIPHER *cipher, const unsigned char *key, size_t keylen, unsigned int flags, - OSSL_LIB_CTX *ctx, + OSSL_LIB_CTX *libctx, const char *propq); int CMS_EncryptedData_set1_key(CMS_ContentInfo *cms, const EVP_CIPHER *ciph, @@ -272,7 +281,7 @@ CMS_ContentInfo *CMS_encrypt(STACK_OF(X509) *certs, BIO *in, const EVP_CIPHER *cipher, unsigned int flags); CMS_ContentInfo *CMS_encrypt_ex(STACK_OF(X509) *certs, BIO *in, const EVP_CIPHER *cipher, unsigned int flags, - OSSL_LIB_CTX *ctx, const char *propq); + OSSL_LIB_CTX *libctx, const char *propq); int CMS_decrypt(CMS_ContentInfo *cms, EVP_PKEY *pkey, X509 *cert, BIO *dcont, BIO *out, unsigned int flags); @@ -291,12 +300,16 @@ int CMS_RecipientInfo_type(CMS_RecipientInfo *ri); EVP_PKEY_CTX *CMS_RecipientInfo_get0_pkey_ctx(CMS_RecipientInfo *ri); CMS_ContentInfo *CMS_AuthEnvelopedData_create(const EVP_CIPHER *cipher); CMS_ContentInfo * -CMS_AuthEnvelopedData_create_ex(const EVP_CIPHER *cipher, OSSL_LIB_CTX *ctx, +CMS_AuthEnvelopedData_create_ex(const EVP_CIPHER *cipher, OSSL_LIB_CTX *libctx, const char *propq); CMS_ContentInfo *CMS_EnvelopedData_create(const EVP_CIPHER *cipher); CMS_ContentInfo *CMS_EnvelopedData_create_ex(const EVP_CIPHER *cipher, - OSSL_LIB_CTX *ctx, + OSSL_LIB_CTX *libctx, const char *propq); +BIO *CMS_EnvelopedData_decrypt(CMS_EnvelopedData *env, BIO *detached_data, + EVP_PKEY *pkey, X509 *cert, + ASN1_OCTET_STRING *secret, unsigned int flags, + OSSL_LIB_CTX *libctx, const char *propq); CMS_RecipientInfo *CMS_add1_recipient_cert(CMS_ContentInfo *cms, X509 *recip, unsigned int flags); @@ -385,6 +398,11 @@ ASN1_OCTET_STRING *CMS_SignerInfo_get0_signature(CMS_SignerInfo *si); int CMS_SignerInfo_sign(CMS_SignerInfo *si); int CMS_SignerInfo_verify(CMS_SignerInfo *si); int CMS_SignerInfo_verify_content(CMS_SignerInfo *si, BIO *chain); +BIO *CMS_SignedData_verify(CMS_SignedData *sd, BIO *detached_data, + STACK_OF(X509) *scerts, X509_STORE *store, + STACK_OF(X509) *extra, STACK_OF(X509_CRL) *crls, + unsigned int flags, + OSSL_LIB_CTX *libctx, const char *propq); int CMS_add_smimecap(CMS_SignerInfo *si, STACK_OF(X509_ALGOR) *algs); int CMS_add_simple_smimecap(STACK_OF(X509_ALGOR) **algs, @@ -441,7 +459,7 @@ CMS_ReceiptRequest *CMS_ReceiptRequest_create0_ex( unsigned char *id, int idlen, int allorfirst, STACK_OF(GENERAL_NAMES) *receiptList, STACK_OF(GENERAL_NAMES) *receiptsTo, - OSSL_LIB_CTX *ctx); + OSSL_LIB_CTX *libctx); int CMS_add1_ReceiptRequest(CMS_SignerInfo *si, CMS_ReceiptRequest *rr); void CMS_ReceiptRequest_get0_values(CMS_ReceiptRequest *rr, diff --git a/deps/openssl/config/archs/BSD-x86_64/asm_avx2/include/openssl/comp.h b/deps/openssl/config/archs/BSD-x86_64/asm_avx2/include/openssl/comp.h new file mode 100644 index 00000000000000..90e39511fe8d28 --- /dev/null +++ b/deps/openssl/config/archs/BSD-x86_64/asm_avx2/include/openssl/comp.h @@ -0,0 +1,98 @@ +/* + * Copyright 2015-2024 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + + +#ifndef OPENSSL_COMP_H +# define OPENSSL_COMP_H +# pragma once + +# include +# ifndef OPENSSL_NO_DEPRECATED_3_0 +# define HEADER_COMP_H +# endif + +# include + +# include +# include +# ifdef __cplusplus +extern "C" { +# endif + + + +# ifndef OPENSSL_NO_COMP + +COMP_CTX *COMP_CTX_new(COMP_METHOD *meth); +const COMP_METHOD *COMP_CTX_get_method(const COMP_CTX *ctx); +int COMP_CTX_get_type(const COMP_CTX* comp); +int COMP_get_type(const COMP_METHOD *meth); +const char *COMP_get_name(const COMP_METHOD *meth); +void COMP_CTX_free(COMP_CTX *ctx); + +int COMP_compress_block(COMP_CTX *ctx, unsigned char *out, int olen, + unsigned char *in, int ilen); +int COMP_expand_block(COMP_CTX *ctx, unsigned char *out, int olen, + unsigned char *in, int ilen); + +COMP_METHOD *COMP_zlib(void); +COMP_METHOD *COMP_zlib_oneshot(void); +COMP_METHOD *COMP_brotli(void); +COMP_METHOD *COMP_brotli_oneshot(void); +COMP_METHOD *COMP_zstd(void); +COMP_METHOD *COMP_zstd_oneshot(void); + +# ifndef OPENSSL_NO_DEPRECATED_1_1_0 +# define COMP_zlib_cleanup() while(0) continue +# endif + +# ifdef OPENSSL_BIO_H +const BIO_METHOD *BIO_f_zlib(void); +const BIO_METHOD *BIO_f_brotli(void); +const BIO_METHOD *BIO_f_zstd(void); +# endif + +# endif + +typedef struct ssl_comp_st SSL_COMP; + +SKM_DEFINE_STACK_OF_INTERNAL(SSL_COMP, SSL_COMP, SSL_COMP) +#define sk_SSL_COMP_num(sk) OPENSSL_sk_num(ossl_check_const_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_value(sk, idx) ((SSL_COMP *)OPENSSL_sk_value(ossl_check_const_SSL_COMP_sk_type(sk), (idx))) +#define sk_SSL_COMP_new(cmp) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new(ossl_check_SSL_COMP_compfunc_type(cmp))) +#define sk_SSL_COMP_new_null() ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new_null()) +#define sk_SSL_COMP_new_reserve(cmp, n) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new_reserve(ossl_check_SSL_COMP_compfunc_type(cmp), (n))) +#define sk_SSL_COMP_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_SSL_COMP_sk_type(sk), (n)) +#define sk_SSL_COMP_free(sk) OPENSSL_sk_free(ossl_check_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_zero(sk) OPENSSL_sk_zero(ossl_check_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_delete(sk, i) ((SSL_COMP *)OPENSSL_sk_delete(ossl_check_SSL_COMP_sk_type(sk), (i))) +#define sk_SSL_COMP_delete_ptr(sk, ptr) ((SSL_COMP *)OPENSSL_sk_delete_ptr(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr))) +#define sk_SSL_COMP_push(sk, ptr) OPENSSL_sk_push(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) +#define sk_SSL_COMP_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) +#define sk_SSL_COMP_pop(sk) ((SSL_COMP *)OPENSSL_sk_pop(ossl_check_SSL_COMP_sk_type(sk))) +#define sk_SSL_COMP_shift(sk) ((SSL_COMP *)OPENSSL_sk_shift(ossl_check_SSL_COMP_sk_type(sk))) +#define sk_SSL_COMP_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_SSL_COMP_sk_type(sk),ossl_check_SSL_COMP_freefunc_type(freefunc)) +#define sk_SSL_COMP_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr), (idx)) +#define sk_SSL_COMP_set(sk, idx, ptr) ((SSL_COMP *)OPENSSL_sk_set(ossl_check_SSL_COMP_sk_type(sk), (idx), ossl_check_SSL_COMP_type(ptr))) +#define sk_SSL_COMP_find(sk, ptr) OPENSSL_sk_find(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) +#define sk_SSL_COMP_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) +#define sk_SSL_COMP_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr), pnum) +#define sk_SSL_COMP_sort(sk) OPENSSL_sk_sort(ossl_check_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_dup(sk) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_dup(ossl_check_const_SSL_COMP_sk_type(sk))) +#define sk_SSL_COMP_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_deep_copy(ossl_check_const_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_copyfunc_type(copyfunc), ossl_check_SSL_COMP_freefunc_type(freefunc))) +#define sk_SSL_COMP_set_cmp_func(sk, cmp) ((sk_SSL_COMP_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_compfunc_type(cmp))) + + + +# ifdef __cplusplus +} +# endif +#endif diff --git a/deps/openssl/config/archs/BSD-x86_64/asm_avx2/include/openssl/conf.h b/deps/openssl/config/archs/BSD-x86_64/asm_avx2/include/openssl/conf.h index 44989929f6c84a..38576290bf641b 100644 --- a/deps/openssl/config/archs/BSD-x86_64/asm_avx2/include/openssl/conf.h +++ b/deps/openssl/config/archs/BSD-x86_64/asm_avx2/include/openssl/conf.h @@ -27,6 +27,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -65,7 +68,7 @@ SKM_DEFINE_STACK_OF_INTERNAL(CONF_VALUE, CONF_VALUE, CONF_VALUE) #define sk_CONF_VALUE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(CONF_VALUE) *)OPENSSL_sk_deep_copy(ossl_check_const_CONF_VALUE_sk_type(sk), ossl_check_CONF_VALUE_copyfunc_type(copyfunc), ossl_check_CONF_VALUE_freefunc_type(freefunc))) #define sk_CONF_VALUE_set_cmp_func(sk, cmp) ((sk_CONF_VALUE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_CONF_VALUE_sk_type(sk), ossl_check_CONF_VALUE_compfunc_type(cmp))) DEFINE_LHASH_OF_INTERNAL(CONF_VALUE); -#define lh_CONF_VALUE_new(hfn, cmp) ((LHASH_OF(CONF_VALUE) *)OPENSSL_LH_new(ossl_check_CONF_VALUE_lh_hashfunc_type(hfn), ossl_check_CONF_VALUE_lh_compfunc_type(cmp))) +#define lh_CONF_VALUE_new(hfn, cmp) ((LHASH_OF(CONF_VALUE) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new(ossl_check_CONF_VALUE_lh_hashfunc_type(hfn), ossl_check_CONF_VALUE_lh_compfunc_type(cmp)), lh_CONF_VALUE_hash_thunk, lh_CONF_VALUE_comp_thunk, lh_CONF_VALUE_doall_thunk, lh_CONF_VALUE_doall_arg_thunk)) #define lh_CONF_VALUE_free(lh) OPENSSL_LH_free(ossl_check_CONF_VALUE_lh_type(lh)) #define lh_CONF_VALUE_flush(lh) OPENSSL_LH_flush(ossl_check_CONF_VALUE_lh_type(lh)) #define lh_CONF_VALUE_insert(lh, ptr) ((CONF_VALUE *)OPENSSL_LH_insert(ossl_check_CONF_VALUE_lh_type(lh), ossl_check_CONF_VALUE_lh_plain_type(ptr))) diff --git a/deps/openssl/config/archs/BSD-x86_64/asm_avx2/include/openssl/configuration.h b/deps/openssl/config/archs/BSD-x86_64/asm_avx2/include/openssl/configuration.h index e18969acd408c4..494098a6937b85 100644 --- a/deps/openssl/config/archs/BSD-x86_64/asm_avx2/include/openssl/configuration.h +++ b/deps/openssl/config/archs/BSD-x86_64/asm_avx2/include/openssl/configuration.h @@ -27,7 +27,7 @@ extern "C" { * OpenSSL was configured with the following options: */ -# define OPENSSL_CONFIGURED_API 30000 +# define OPENSSL_CONFIGURED_API 30500 # ifndef OPENSSL_RAND_SEED_OS # define OPENSSL_RAND_SEED_OS # endif @@ -40,6 +40,12 @@ extern "C" { # ifndef OPENSSL_NO_ASAN # define OPENSSL_NO_ASAN # endif +# ifndef OPENSSL_NO_BROTLI +# define OPENSSL_NO_BROTLI +# endif +# ifndef OPENSSL_NO_BROTLI_DYNAMIC +# define OPENSSL_NO_BROTLI_DYNAMIC +# endif # ifndef OPENSSL_NO_COMP # define OPENSSL_NO_COMP # endif @@ -49,6 +55,9 @@ extern "C" { # ifndef OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE # define OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE # endif +# ifndef OPENSSL_NO_DEMOS +# define OPENSSL_NO_DEMOS +# endif # ifndef OPENSSL_NO_EC_NISTP_64_GCC_128 # define OPENSSL_NO_EC_NISTP_64_GCC_128 # endif @@ -58,12 +67,24 @@ extern "C" { # ifndef OPENSSL_NO_EXTERNAL_TESTS # define OPENSSL_NO_EXTERNAL_TESTS # endif +# ifndef OPENSSL_NO_FIPS_JITTER +# define OPENSSL_NO_FIPS_JITTER +# endif # ifndef OPENSSL_NO_FUZZ_AFL # define OPENSSL_NO_FUZZ_AFL # endif # ifndef OPENSSL_NO_FUZZ_LIBFUZZER # define OPENSSL_NO_FUZZ_LIBFUZZER # endif +# ifndef OPENSSL_NO_H3DEMO +# define OPENSSL_NO_H3DEMO +# endif +# ifndef OPENSSL_NO_HQINTEROP +# define OPENSSL_NO_HQINTEROP +# endif +# ifndef OPENSSL_NO_JITTER +# define OPENSSL_NO_JITTER +# endif # ifndef OPENSSL_NO_KTLS # define OPENSSL_NO_KTLS # endif @@ -76,6 +97,9 @@ extern "C" { # ifndef OPENSSL_NO_MSAN # define OPENSSL_NO_MSAN # endif +# ifndef OPENSSL_NO_PIE +# define OPENSSL_NO_PIE +# endif # ifndef OPENSSL_NO_RC5 # define OPENSSL_NO_RC5 # endif @@ -88,6 +112,12 @@ extern "C" { # ifndef OPENSSL_NO_SSL3_METHOD # define OPENSSL_NO_SSL3_METHOD # endif +# ifndef OPENSSL_NO_SSLKEYLOG +# define OPENSSL_NO_SSLKEYLOG +# endif +# ifndef OPENSSL_NO_TFO +# define OPENSSL_NO_TFO +# endif # ifndef OPENSSL_NO_TRACE # define OPENSSL_NO_TRACE # endif @@ -103,6 +133,21 @@ extern "C" { # ifndef OPENSSL_NO_WEAK_SSL_CIPHERS # define OPENSSL_NO_WEAK_SSL_CIPHERS # endif +# ifndef OPENSSL_NO_WINSTORE +# define OPENSSL_NO_WINSTORE +# endif +# ifndef OPENSSL_NO_ZLIB +# define OPENSSL_NO_ZLIB +# endif +# ifndef OPENSSL_NO_ZLIB_DYNAMIC +# define OPENSSL_NO_ZLIB_DYNAMIC +# endif +# ifndef OPENSSL_NO_ZSTD +# define OPENSSL_NO_ZSTD +# endif +# ifndef OPENSSL_NO_ZSTD_DYNAMIC +# define OPENSSL_NO_ZSTD_DYNAMIC +# endif # ifndef OPENSSL_NO_DYNAMIC_ENGINE # define OPENSSL_NO_DYNAMIC_ENGINE # endif @@ -124,6 +169,12 @@ extern "C" { # define RC4_INT unsigned int +# if defined(OPENSSL_NO_COMP) || (defined(OPENSSL_NO_BROTLI) && defined(OPENSSL_NO_ZSTD) && defined(OPENSSL_NO_ZLIB)) +# define OPENSSL_NO_COMP_ALG +# else +# undef OPENSSL_NO_COMP_ALG +# endif + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/BSD-x86_64/asm_avx2/include/openssl/core_names.h b/deps/openssl/config/archs/BSD-x86_64/asm_avx2/include/openssl/core_names.h new file mode 100644 index 00000000000000..e93e79a52bc910 --- /dev/null +++ b/deps/openssl/config/archs/BSD-x86_64/asm_avx2/include/openssl/core_names.h @@ -0,0 +1,575 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from include/openssl/core_names.h.in + * + * Copyright 2019-2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + +#ifndef OPENSSL_CORE_NAMES_H +# define OPENSSL_CORE_NAMES_H +# pragma once + +# ifdef __cplusplus +extern "C" { +# endif + +/* OSSL_CIPHER_PARAM_CTS_MODE Values */ +# define OSSL_CIPHER_CTS_MODE_CS1 "CS1" +# define OSSL_CIPHER_CTS_MODE_CS2 "CS2" +# define OSSL_CIPHER_CTS_MODE_CS3 "CS3" + +/* Known CIPHER names (not a complete list) */ +# define OSSL_CIPHER_NAME_AES_128_GCM_SIV "AES-128-GCM-SIV" +# define OSSL_CIPHER_NAME_AES_192_GCM_SIV "AES-192-GCM-SIV" +# define OSSL_CIPHER_NAME_AES_256_GCM_SIV "AES-256-GCM-SIV" + +/* Known DIGEST names (not a complete list) */ +# define OSSL_DIGEST_NAME_MD5 "MD5" +# define OSSL_DIGEST_NAME_MD5_SHA1 "MD5-SHA1" +# define OSSL_DIGEST_NAME_SHA1 "SHA1" +# define OSSL_DIGEST_NAME_SHA2_224 "SHA2-224" +# define OSSL_DIGEST_NAME_SHA2_256 "SHA2-256" +# define OSSL_DIGEST_NAME_SHA2_256_192 "SHA2-256/192" +# define OSSL_DIGEST_NAME_SHA2_384 "SHA2-384" +# define OSSL_DIGEST_NAME_SHA2_512 "SHA2-512" +# define OSSL_DIGEST_NAME_SHA2_512_224 "SHA2-512/224" +# define OSSL_DIGEST_NAME_SHA2_512_256 "SHA2-512/256" +# define OSSL_DIGEST_NAME_MD2 "MD2" +# define OSSL_DIGEST_NAME_MD4 "MD4" +# define OSSL_DIGEST_NAME_MDC2 "MDC2" +# define OSSL_DIGEST_NAME_RIPEMD160 "RIPEMD160" +# define OSSL_DIGEST_NAME_SHA3_224 "SHA3-224" +# define OSSL_DIGEST_NAME_SHA3_256 "SHA3-256" +# define OSSL_DIGEST_NAME_SHA3_384 "SHA3-384" +# define OSSL_DIGEST_NAME_SHA3_512 "SHA3-512" +# define OSSL_DIGEST_NAME_KECCAK_KMAC128 "KECCAK-KMAC-128" +# define OSSL_DIGEST_NAME_KECCAK_KMAC256 "KECCAK-KMAC-256" +# define OSSL_DIGEST_NAME_SM3 "SM3" + +/* Known MAC names */ +# define OSSL_MAC_NAME_BLAKE2BMAC "BLAKE2BMAC" +# define OSSL_MAC_NAME_BLAKE2SMAC "BLAKE2SMAC" +# define OSSL_MAC_NAME_CMAC "CMAC" +# define OSSL_MAC_NAME_GMAC "GMAC" +# define OSSL_MAC_NAME_HMAC "HMAC" +# define OSSL_MAC_NAME_KMAC128 "KMAC128" +# define OSSL_MAC_NAME_KMAC256 "KMAC256" +# define OSSL_MAC_NAME_POLY1305 "POLY1305" +# define OSSL_MAC_NAME_SIPHASH "SIPHASH" + +/* Known KDF names */ +# define OSSL_KDF_NAME_HKDF "HKDF" +# define OSSL_KDF_NAME_TLS1_3_KDF "TLS13-KDF" +# define OSSL_KDF_NAME_PBKDF1 "PBKDF1" +# define OSSL_KDF_NAME_PBKDF2 "PBKDF2" +# define OSSL_KDF_NAME_SCRYPT "SCRYPT" +# define OSSL_KDF_NAME_SSHKDF "SSHKDF" +# define OSSL_KDF_NAME_SSKDF "SSKDF" +# define OSSL_KDF_NAME_TLS1_PRF "TLS1-PRF" +# define OSSL_KDF_NAME_X942KDF_ASN1 "X942KDF-ASN1" +# define OSSL_KDF_NAME_X942KDF_CONCAT "X942KDF-CONCAT" +# define OSSL_KDF_NAME_X963KDF "X963KDF" +# define OSSL_KDF_NAME_KBKDF "KBKDF" +# define OSSL_KDF_NAME_KRB5KDF "KRB5KDF" +# define OSSL_KDF_NAME_HMACDRBGKDF "HMAC-DRBG-KDF" + +/* RSA padding modes */ +# define OSSL_PKEY_RSA_PAD_MODE_NONE "none" +# define OSSL_PKEY_RSA_PAD_MODE_PKCSV15 "pkcs1" +# define OSSL_PKEY_RSA_PAD_MODE_OAEP "oaep" +# define OSSL_PKEY_RSA_PAD_MODE_X931 "x931" +# define OSSL_PKEY_RSA_PAD_MODE_PSS "pss" + +/* RSA pss padding salt length */ +# define OSSL_PKEY_RSA_PSS_SALT_LEN_DIGEST "digest" +# define OSSL_PKEY_RSA_PSS_SALT_LEN_MAX "max" +# define OSSL_PKEY_RSA_PSS_SALT_LEN_AUTO "auto" +# define OSSL_PKEY_RSA_PSS_SALT_LEN_AUTO_DIGEST_MAX "auto-digestmax" + +/* OSSL_PKEY_PARAM_EC_ENCODING values */ +# define OSSL_PKEY_EC_ENCODING_EXPLICIT "explicit" +# define OSSL_PKEY_EC_ENCODING_GROUP "named_curve" + +# define OSSL_PKEY_EC_POINT_CONVERSION_FORMAT_UNCOMPRESSED "uncompressed" +# define OSSL_PKEY_EC_POINT_CONVERSION_FORMAT_COMPRESSED "compressed" +# define OSSL_PKEY_EC_POINT_CONVERSION_FORMAT_HYBRID "hybrid" + +# define OSSL_PKEY_EC_GROUP_CHECK_DEFAULT "default" +# define OSSL_PKEY_EC_GROUP_CHECK_NAMED "named" +# define OSSL_PKEY_EC_GROUP_CHECK_NAMED_NIST "named-nist" + +/* PROV_SKEY well known key types */ +# define OSSL_SKEY_TYPE_GENERIC "GENERIC-SECRET" +# define OSSL_SKEY_TYPE_AES "AES" + +/* OSSL_KEM_PARAM_OPERATION values */ +#define OSSL_KEM_PARAM_OPERATION_RSASVE "RSASVE" +#define OSSL_KEM_PARAM_OPERATION_DHKEM "DHKEM" + +/* Provider configuration variables */ +#define OSSL_PKEY_RETAIN_SEED "pkey_retain_seed" + +/* Parameter name definitions - generated by util/perl/OpenSSL/paramnames.pm */ +# define OSSL_ALG_PARAM_ALGORITHM_ID "algorithm-id" +# define OSSL_ALG_PARAM_ALGORITHM_ID_PARAMS "algorithm-id-params" +# define OSSL_ALG_PARAM_CIPHER "cipher" +# define OSSL_ALG_PARAM_DIGEST "digest" +# define OSSL_ALG_PARAM_ENGINE "engine" +# define OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR "fips-indicator" +# define OSSL_ALG_PARAM_MAC "mac" +# define OSSL_ALG_PARAM_PROPERTIES "properties" +# define OSSL_ASYM_CIPHER_PARAM_DIGEST OSSL_PKEY_PARAM_DIGEST +# define OSSL_ASYM_CIPHER_PARAM_ENGINE OSSL_PKEY_PARAM_ENGINE +# define OSSL_ASYM_CIPHER_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_ASYM_CIPHER_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_ASYM_CIPHER_PARAM_FIPS_RSA_PKCS15_PAD_DISABLED OSSL_PROV_PARAM_RSA_PKCS15_PAD_DISABLED +# define OSSL_ASYM_CIPHER_PARAM_IMPLICIT_REJECTION "implicit-rejection" +# define OSSL_ASYM_CIPHER_PARAM_MGF1_DIGEST OSSL_PKEY_PARAM_MGF1_DIGEST +# define OSSL_ASYM_CIPHER_PARAM_MGF1_DIGEST_PROPS OSSL_PKEY_PARAM_MGF1_PROPERTIES +# define OSSL_ASYM_CIPHER_PARAM_OAEP_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_ASYM_CIPHER_PARAM_OAEP_DIGEST_PROPS "digest-props" +# define OSSL_ASYM_CIPHER_PARAM_OAEP_LABEL "oaep-label" +# define OSSL_ASYM_CIPHER_PARAM_PAD_MODE OSSL_PKEY_PARAM_PAD_MODE +# define OSSL_ASYM_CIPHER_PARAM_PROPERTIES OSSL_PKEY_PARAM_PROPERTIES +# define OSSL_ASYM_CIPHER_PARAM_TLS_CLIENT_VERSION "tls-client-version" +# define OSSL_ASYM_CIPHER_PARAM_TLS_NEGOTIATED_VERSION "tls-negotiated-version" +# define OSSL_CAPABILITY_TLS_GROUP_ALG "tls-group-alg" +# define OSSL_CAPABILITY_TLS_GROUP_ID "tls-group-id" +# define OSSL_CAPABILITY_TLS_GROUP_IS_KEM "tls-group-is-kem" +# define OSSL_CAPABILITY_TLS_GROUP_MAX_DTLS "tls-max-dtls" +# define OSSL_CAPABILITY_TLS_GROUP_MAX_TLS "tls-max-tls" +# define OSSL_CAPABILITY_TLS_GROUP_MIN_DTLS "tls-min-dtls" +# define OSSL_CAPABILITY_TLS_GROUP_MIN_TLS "tls-min-tls" +# define OSSL_CAPABILITY_TLS_GROUP_NAME "tls-group-name" +# define OSSL_CAPABILITY_TLS_GROUP_NAME_INTERNAL "tls-group-name-internal" +# define OSSL_CAPABILITY_TLS_GROUP_SECURITY_BITS "tls-group-sec-bits" +# define OSSL_CAPABILITY_TLS_SIGALG_CODE_POINT "tls-sigalg-code-point" +# define OSSL_CAPABILITY_TLS_SIGALG_HASH_NAME "tls-sigalg-hash-name" +# define OSSL_CAPABILITY_TLS_SIGALG_HASH_OID "tls-sigalg-hash-oid" +# define OSSL_CAPABILITY_TLS_SIGALG_IANA_NAME "tls-sigalg-iana-name" +# define OSSL_CAPABILITY_TLS_SIGALG_KEYTYPE "tls-sigalg-keytype" +# define OSSL_CAPABILITY_TLS_SIGALG_KEYTYPE_OID "tls-sigalg-keytype-oid" +# define OSSL_CAPABILITY_TLS_SIGALG_MAX_DTLS "tls-max-dtls" +# define OSSL_CAPABILITY_TLS_SIGALG_MAX_TLS "tls-max-tls" +# define OSSL_CAPABILITY_TLS_SIGALG_MIN_DTLS "tls-min-dtls" +# define OSSL_CAPABILITY_TLS_SIGALG_MIN_TLS "tls-min-tls" +# define OSSL_CAPABILITY_TLS_SIGALG_NAME "tls-sigalg-name" +# define OSSL_CAPABILITY_TLS_SIGALG_OID "tls-sigalg-oid" +# define OSSL_CAPABILITY_TLS_SIGALG_SECURITY_BITS "tls-sigalg-sec-bits" +# define OSSL_CAPABILITY_TLS_SIGALG_SIG_NAME "tls-sigalg-sig-name" +# define OSSL_CAPABILITY_TLS_SIGALG_SIG_OID "tls-sigalg-sig-oid" +# define OSSL_CIPHER_PARAM_AEAD "aead" +# define OSSL_CIPHER_PARAM_AEAD_IVLEN OSSL_CIPHER_PARAM_IVLEN +# define OSSL_CIPHER_PARAM_AEAD_IV_GENERATED "iv-generated" +# define OSSL_CIPHER_PARAM_AEAD_MAC_KEY "mackey" +# define OSSL_CIPHER_PARAM_AEAD_TAG "tag" +# define OSSL_CIPHER_PARAM_AEAD_TAGLEN "taglen" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_AAD "tlsaad" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_AAD_PAD "tlsaadpad" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_GET_IV_GEN "tlsivgen" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_IV_FIXED "tlsivfixed" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_SET_IV_INV "tlsivinv" +# define OSSL_CIPHER_PARAM_ALGORITHM_ID OSSL_ALG_PARAM_ALGORITHM_ID +# define OSSL_CIPHER_PARAM_ALGORITHM_ID_PARAMS OSSL_ALG_PARAM_ALGORITHM_ID_PARAMS +# define OSSL_CIPHER_PARAM_ALGORITHM_ID_PARAMS_OLD "alg_id_param" +# define OSSL_CIPHER_PARAM_BLOCK_SIZE "blocksize" +# define OSSL_CIPHER_PARAM_CTS "cts" +# define OSSL_CIPHER_PARAM_CTS_MODE "cts_mode" +# define OSSL_CIPHER_PARAM_CUSTOM_IV "custom-iv" +# define OSSL_CIPHER_PARAM_DECRYPT_ONLY "decrypt-only" +# define OSSL_CIPHER_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_CIPHER_PARAM_FIPS_ENCRYPT_CHECK "encrypt-check" +# define OSSL_CIPHER_PARAM_HAS_RAND_KEY "has-randkey" +# define OSSL_CIPHER_PARAM_IV "iv" +# define OSSL_CIPHER_PARAM_IVLEN "ivlen" +# define OSSL_CIPHER_PARAM_KEYLEN "keylen" +# define OSSL_CIPHER_PARAM_MODE "mode" +# define OSSL_CIPHER_PARAM_NUM "num" +# define OSSL_CIPHER_PARAM_PADDING "padding" +# define OSSL_CIPHER_PARAM_PIPELINE_AEAD_TAG "pipeline-tag" +# define OSSL_CIPHER_PARAM_RANDOM_KEY "randkey" +# define OSSL_CIPHER_PARAM_RC2_KEYBITS "keybits" +# define OSSL_CIPHER_PARAM_ROUNDS "rounds" +# define OSSL_CIPHER_PARAM_SPEED "speed" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK "tls-multi" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD "tls1multi_aad" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD_PACKLEN "tls1multi_aadpacklen" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC "tls1multi_enc" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_IN "tls1multi_encin" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_LEN "tls1multi_enclen" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_INTERLEAVE "tls1multi_interleave" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_BUFSIZE "tls1multi_maxbufsz" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_SEND_FRAGMENT "tls1multi_maxsndfrag" +# define OSSL_CIPHER_PARAM_TLS_MAC "tls-mac" +# define OSSL_CIPHER_PARAM_TLS_MAC_SIZE "tls-mac-size" +# define OSSL_CIPHER_PARAM_TLS_VERSION "tls-version" +# define OSSL_CIPHER_PARAM_UPDATED_IV "updated-iv" +# define OSSL_CIPHER_PARAM_USE_BITS "use-bits" +# define OSSL_CIPHER_PARAM_XTS_STANDARD "xts_standard" +# define OSSL_DECODER_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_DIGEST_PARAM_ALGID_ABSENT "algid-absent" +# define OSSL_DIGEST_PARAM_BLOCK_SIZE "blocksize" +# define OSSL_DIGEST_PARAM_MICALG "micalg" +# define OSSL_DIGEST_PARAM_PAD_TYPE "pad-type" +# define OSSL_DIGEST_PARAM_SIZE "size" +# define OSSL_DIGEST_PARAM_SSL3_MS "ssl3-ms" +# define OSSL_DIGEST_PARAM_XOF "xof" +# define OSSL_DIGEST_PARAM_XOFLEN "xoflen" +# define OSSL_DRBG_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_DRBG_PARAM_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_DRBG_PARAM_ENTROPY_REQUIRED "entropy_required" +# define OSSL_DRBG_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_DRBG_PARAM_FIPS_DIGEST_CHECK OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK +# define OSSL_DRBG_PARAM_MAC OSSL_ALG_PARAM_MAC +# define OSSL_DRBG_PARAM_MAX_ADINLEN "max_adinlen" +# define OSSL_DRBG_PARAM_MAX_ENTROPYLEN "max_entropylen" +# define OSSL_DRBG_PARAM_MAX_LENGTH "maxium_length" +# define OSSL_DRBG_PARAM_MAX_NONCELEN "max_noncelen" +# define OSSL_DRBG_PARAM_MAX_PERSLEN "max_perslen" +# define OSSL_DRBG_PARAM_MIN_ENTROPYLEN "min_entropylen" +# define OSSL_DRBG_PARAM_MIN_LENGTH "minium_length" +# define OSSL_DRBG_PARAM_MIN_NONCELEN "min_noncelen" +# define OSSL_DRBG_PARAM_PREDICTION_RESISTANCE "prediction_resistance" +# define OSSL_DRBG_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_DRBG_PARAM_RANDOM_DATA "random_data" +# define OSSL_DRBG_PARAM_RESEED_COUNTER "reseed_counter" +# define OSSL_DRBG_PARAM_RESEED_REQUESTS "reseed_requests" +# define OSSL_DRBG_PARAM_RESEED_TIME "reseed_time" +# define OSSL_DRBG_PARAM_RESEED_TIME_INTERVAL "reseed_time_interval" +# define OSSL_DRBG_PARAM_SIZE "size" +# define OSSL_DRBG_PARAM_USE_DF "use_derivation_function" +# define OSSL_ENCODER_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_ENCODER_PARAM_ENCRYPT_LEVEL "encrypt-level" +# define OSSL_ENCODER_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_ENCODER_PARAM_SAVE_PARAMETERS "save-parameters" +# define OSSL_EXCHANGE_PARAM_EC_ECDH_COFACTOR_MODE "ecdh-cofactor-mode" +# define OSSL_EXCHANGE_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_EXCHANGE_PARAM_FIPS_DIGEST_CHECK OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK +# define OSSL_EXCHANGE_PARAM_FIPS_ECDH_COFACTOR_CHECK OSSL_PROV_PARAM_ECDH_COFACTOR_CHECK +# define OSSL_EXCHANGE_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_EXCHANGE_PARAM_KDF_DIGEST "kdf-digest" +# define OSSL_EXCHANGE_PARAM_KDF_DIGEST_PROPS "kdf-digest-props" +# define OSSL_EXCHANGE_PARAM_KDF_OUTLEN "kdf-outlen" +# define OSSL_EXCHANGE_PARAM_KDF_TYPE "kdf-type" +# define OSSL_EXCHANGE_PARAM_KDF_UKM "kdf-ukm" +# define OSSL_EXCHANGE_PARAM_PAD "pad" +# define OSSL_GEN_PARAM_ITERATION "iteration" +# define OSSL_GEN_PARAM_POTENTIAL "potential" +# define OSSL_KDF_PARAM_ARGON2_AD "ad" +# define OSSL_KDF_PARAM_ARGON2_LANES "lanes" +# define OSSL_KDF_PARAM_ARGON2_MEMCOST "memcost" +# define OSSL_KDF_PARAM_ARGON2_VERSION "version" +# define OSSL_KDF_PARAM_CEK_ALG "cekalg" +# define OSSL_KDF_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_KDF_PARAM_CONSTANT "constant" +# define OSSL_KDF_PARAM_DATA "data" +# define OSSL_KDF_PARAM_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_KDF_PARAM_EARLY_CLEAN "early_clean" +# define OSSL_KDF_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_KDF_PARAM_FIPS_DIGEST_CHECK OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK +# define OSSL_KDF_PARAM_FIPS_EMS_CHECK "ems_check" +# define OSSL_KDF_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_KDF_PARAM_HMACDRBG_ENTROPY "entropy" +# define OSSL_KDF_PARAM_HMACDRBG_NONCE "nonce" +# define OSSL_KDF_PARAM_INFO "info" +# define OSSL_KDF_PARAM_ITER "iter" +# define OSSL_KDF_PARAM_KBKDF_R "r" +# define OSSL_KDF_PARAM_KBKDF_USE_L "use-l" +# define OSSL_KDF_PARAM_KBKDF_USE_SEPARATOR "use-separator" +# define OSSL_KDF_PARAM_KEY "key" +# define OSSL_KDF_PARAM_LABEL "label" +# define OSSL_KDF_PARAM_MAC OSSL_ALG_PARAM_MAC +# define OSSL_KDF_PARAM_MAC_SIZE "maclen" +# define OSSL_KDF_PARAM_MODE "mode" +# define OSSL_KDF_PARAM_PASSWORD "pass" +# define OSSL_KDF_PARAM_PKCS12_ID "id" +# define OSSL_KDF_PARAM_PKCS5 "pkcs5" +# define OSSL_KDF_PARAM_PREFIX "prefix" +# define OSSL_KDF_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_KDF_PARAM_SALT "salt" +# define OSSL_KDF_PARAM_SCRYPT_MAXMEM "maxmem_bytes" +# define OSSL_KDF_PARAM_SCRYPT_N "n" +# define OSSL_KDF_PARAM_SCRYPT_P "p" +# define OSSL_KDF_PARAM_SCRYPT_R "r" +# define OSSL_KDF_PARAM_SECRET "secret" +# define OSSL_KDF_PARAM_SEED "seed" +# define OSSL_KDF_PARAM_SIZE "size" +# define OSSL_KDF_PARAM_SSHKDF_SESSION_ID "session_id" +# define OSSL_KDF_PARAM_SSHKDF_TYPE "type" +# define OSSL_KDF_PARAM_SSHKDF_XCGHASH "xcghash" +# define OSSL_KDF_PARAM_THREADS "threads" +# define OSSL_KDF_PARAM_UKM "ukm" +# define OSSL_KDF_PARAM_X942_ACVPINFO "acvp-info" +# define OSSL_KDF_PARAM_X942_PARTYUINFO "partyu-info" +# define OSSL_KDF_PARAM_X942_PARTYVINFO "partyv-info" +# define OSSL_KDF_PARAM_X942_SUPP_PRIVINFO "supp-privinfo" +# define OSSL_KDF_PARAM_X942_SUPP_PUBINFO "supp-pubinfo" +# define OSSL_KDF_PARAM_X942_USE_KEYBITS "use-keybits" +# define OSSL_KEM_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_KEM_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_KEM_PARAM_IKME "ikme" +# define OSSL_KEM_PARAM_OPERATION "operation" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_BLOCK_PADDING "block_padding" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_HS_PADDING "hs_padding" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_MAX_EARLY_DATA "max_early_data" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_MAX_FRAG_LEN "max_frag_len" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_MODE "mode" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_OPTIONS "options" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_READ_AHEAD "read_ahead" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_STREAM_MAC "stream_mac" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_TLSTREE "tlstree" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_USE_ETM "use_etm" +# define OSSL_LIBSSL_RECORD_LAYER_READ_BUFFER_LEN "read_buffer_len" +# define OSSL_MAC_PARAM_BLOCK_SIZE "block-size" +# define OSSL_MAC_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_MAC_PARAM_CUSTOM "custom" +# define OSSL_MAC_PARAM_C_ROUNDS "c-rounds" +# define OSSL_MAC_PARAM_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_MAC_PARAM_DIGEST_NOINIT "digest-noinit" +# define OSSL_MAC_PARAM_DIGEST_ONESHOT "digest-oneshot" +# define OSSL_MAC_PARAM_D_ROUNDS "d-rounds" +# define OSSL_MAC_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_MAC_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_MAC_PARAM_FIPS_NO_SHORT_MAC OSSL_PROV_PARAM_NO_SHORT_MAC +# define OSSL_MAC_PARAM_IV "iv" +# define OSSL_MAC_PARAM_KEY "key" +# define OSSL_MAC_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_MAC_PARAM_SALT "salt" +# define OSSL_MAC_PARAM_SIZE "size" +# define OSSL_MAC_PARAM_TLS_DATA_SIZE "tls-data-size" +# define OSSL_MAC_PARAM_XOF "xof" +# define OSSL_OBJECT_PARAM_DATA "data" +# define OSSL_OBJECT_PARAM_DATA_STRUCTURE "data-structure" +# define OSSL_OBJECT_PARAM_DATA_TYPE "data-type" +# define OSSL_OBJECT_PARAM_DESC "desc" +# define OSSL_OBJECT_PARAM_INPUT_TYPE "input-type" +# define OSSL_OBJECT_PARAM_REFERENCE "reference" +# define OSSL_OBJECT_PARAM_TYPE "type" +# define OSSL_PASSPHRASE_PARAM_INFO "info" +# define OSSL_PKEY_PARAM_ALGORITHM_ID OSSL_ALG_PARAM_ALGORITHM_ID +# define OSSL_PKEY_PARAM_ALGORITHM_ID_PARAMS OSSL_ALG_PARAM_ALGORITHM_ID_PARAMS +# define OSSL_PKEY_PARAM_BITS "bits" +# define OSSL_PKEY_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_PKEY_PARAM_DEFAULT_DIGEST "default-digest" +# define OSSL_PKEY_PARAM_DHKEM_IKM "dhkem-ikm" +# define OSSL_PKEY_PARAM_DH_GENERATOR "safeprime-generator" +# define OSSL_PKEY_PARAM_DH_PRIV_LEN "priv_len" +# define OSSL_PKEY_PARAM_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_PKEY_PARAM_DIGEST_SIZE "digest-size" +# define OSSL_PKEY_PARAM_DIST_ID "distid" +# define OSSL_PKEY_PARAM_EC_A "a" +# define OSSL_PKEY_PARAM_EC_B "b" +# define OSSL_PKEY_PARAM_EC_CHAR2_M "m" +# define OSSL_PKEY_PARAM_EC_CHAR2_PP_K1 "k1" +# define OSSL_PKEY_PARAM_EC_CHAR2_PP_K2 "k2" +# define OSSL_PKEY_PARAM_EC_CHAR2_PP_K3 "k3" +# define OSSL_PKEY_PARAM_EC_CHAR2_TP_BASIS "tp" +# define OSSL_PKEY_PARAM_EC_CHAR2_TYPE "basis-type" +# define OSSL_PKEY_PARAM_EC_COFACTOR "cofactor" +# define OSSL_PKEY_PARAM_EC_DECODED_FROM_EXPLICIT_PARAMS "decoded-from-explicit" +# define OSSL_PKEY_PARAM_EC_ENCODING "encoding" +# define OSSL_PKEY_PARAM_EC_FIELD_TYPE "field-type" +# define OSSL_PKEY_PARAM_EC_GENERATOR "generator" +# define OSSL_PKEY_PARAM_EC_GROUP_CHECK_TYPE "group-check" +# define OSSL_PKEY_PARAM_EC_INCLUDE_PUBLIC "include-public" +# define OSSL_PKEY_PARAM_EC_ORDER "order" +# define OSSL_PKEY_PARAM_EC_P "p" +# define OSSL_PKEY_PARAM_EC_POINT_CONVERSION_FORMAT "point-format" +# define OSSL_PKEY_PARAM_EC_PUB_X "qx" +# define OSSL_PKEY_PARAM_EC_PUB_Y "qy" +# define OSSL_PKEY_PARAM_EC_SEED "seed" +# define OSSL_PKEY_PARAM_ENCODED_PUBLIC_KEY "encoded-pub-key" +# define OSSL_PKEY_PARAM_ENGINE OSSL_ALG_PARAM_ENGINE +# define OSSL_PKEY_PARAM_FFC_COFACTOR "j" +# define OSSL_PKEY_PARAM_FFC_DIGEST OSSL_PKEY_PARAM_DIGEST +# define OSSL_PKEY_PARAM_FFC_DIGEST_PROPS OSSL_PKEY_PARAM_PROPERTIES +# define OSSL_PKEY_PARAM_FFC_G "g" +# define OSSL_PKEY_PARAM_FFC_GINDEX "gindex" +# define OSSL_PKEY_PARAM_FFC_H "hindex" +# define OSSL_PKEY_PARAM_FFC_P "p" +# define OSSL_PKEY_PARAM_FFC_PBITS "pbits" +# define OSSL_PKEY_PARAM_FFC_PCOUNTER "pcounter" +# define OSSL_PKEY_PARAM_FFC_Q "q" +# define OSSL_PKEY_PARAM_FFC_QBITS "qbits" +# define OSSL_PKEY_PARAM_FFC_SEED "seed" +# define OSSL_PKEY_PARAM_FFC_TYPE "type" +# define OSSL_PKEY_PARAM_FFC_VALIDATE_G "validate-g" +# define OSSL_PKEY_PARAM_FFC_VALIDATE_LEGACY "validate-legacy" +# define OSSL_PKEY_PARAM_FFC_VALIDATE_PQ "validate-pq" +# define OSSL_PKEY_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK "digest-check" +# define OSSL_PKEY_PARAM_FIPS_KEY_CHECK "key-check" +# define OSSL_PKEY_PARAM_FIPS_SIGN_CHECK "sign-check" +# define OSSL_PKEY_PARAM_GROUP_NAME "group" +# define OSSL_PKEY_PARAM_IMPLICIT_REJECTION "implicit-rejection" +# define OSSL_PKEY_PARAM_MANDATORY_DIGEST "mandatory-digest" +# define OSSL_PKEY_PARAM_MASKGENFUNC "mgf" +# define OSSL_PKEY_PARAM_MAX_SIZE "max-size" +# define OSSL_PKEY_PARAM_MGF1_DIGEST "mgf1-digest" +# define OSSL_PKEY_PARAM_MGF1_PROPERTIES "mgf1-properties" +# define OSSL_PKEY_PARAM_ML_DSA_INPUT_FORMATS "ml-dsa.input_formats" +# define OSSL_PKEY_PARAM_ML_DSA_OUTPUT_FORMATS "ml-dsa.output_formats" +# define OSSL_PKEY_PARAM_ML_DSA_PREFER_SEED "ml-dsa.prefer_seed" +# define OSSL_PKEY_PARAM_ML_DSA_RETAIN_SEED "ml-dsa.retain_seed" +# define OSSL_PKEY_PARAM_ML_DSA_SEED "seed" +# define OSSL_PKEY_PARAM_ML_KEM_IMPORT_PCT_TYPE "ml-kem.import_pct_type" +# define OSSL_PKEY_PARAM_ML_KEM_INPUT_FORMATS "ml-kem.input_formats" +# define OSSL_PKEY_PARAM_ML_KEM_OUTPUT_FORMATS "ml-kem.output_formats" +# define OSSL_PKEY_PARAM_ML_KEM_PREFER_SEED "ml-kem.prefer_seed" +# define OSSL_PKEY_PARAM_ML_KEM_RETAIN_SEED "ml-kem.retain_seed" +# define OSSL_PKEY_PARAM_ML_KEM_SEED "seed" +# define OSSL_PKEY_PARAM_PAD_MODE "pad-mode" +# define OSSL_PKEY_PARAM_PRIV_KEY "priv" +# define OSSL_PKEY_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_PKEY_PARAM_PUB_KEY "pub" +# define OSSL_PKEY_PARAM_RSA_BITS OSSL_PKEY_PARAM_BITS +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT "rsa-coefficient" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT1 "rsa-coefficient1" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT2 "rsa-coefficient2" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT3 "rsa-coefficient3" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT4 "rsa-coefficient4" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT5 "rsa-coefficient5" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT6 "rsa-coefficient6" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT7 "rsa-coefficient7" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT8 "rsa-coefficient8" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT9 "rsa-coefficient9" +# define OSSL_PKEY_PARAM_RSA_D "d" +# define OSSL_PKEY_PARAM_RSA_DERIVE_FROM_PQ "rsa-derive-from-pq" +# define OSSL_PKEY_PARAM_RSA_DIGEST OSSL_PKEY_PARAM_DIGEST +# define OSSL_PKEY_PARAM_RSA_DIGEST_PROPS OSSL_PKEY_PARAM_PROPERTIES +# define OSSL_PKEY_PARAM_RSA_E "e" +# define OSSL_PKEY_PARAM_RSA_EXPONENT "rsa-exponent" +# define OSSL_PKEY_PARAM_RSA_EXPONENT1 "rsa-exponent1" +# define OSSL_PKEY_PARAM_RSA_EXPONENT10 "rsa-exponent10" +# define OSSL_PKEY_PARAM_RSA_EXPONENT2 "rsa-exponent2" +# define OSSL_PKEY_PARAM_RSA_EXPONENT3 "rsa-exponent3" +# define OSSL_PKEY_PARAM_RSA_EXPONENT4 "rsa-exponent4" +# define OSSL_PKEY_PARAM_RSA_EXPONENT5 "rsa-exponent5" +# define OSSL_PKEY_PARAM_RSA_EXPONENT6 "rsa-exponent6" +# define OSSL_PKEY_PARAM_RSA_EXPONENT7 "rsa-exponent7" +# define OSSL_PKEY_PARAM_RSA_EXPONENT8 "rsa-exponent8" +# define OSSL_PKEY_PARAM_RSA_EXPONENT9 "rsa-exponent9" +# define OSSL_PKEY_PARAM_RSA_FACTOR "rsa-factor" +# define OSSL_PKEY_PARAM_RSA_FACTOR1 "rsa-factor1" +# define OSSL_PKEY_PARAM_RSA_FACTOR10 "rsa-factor10" +# define OSSL_PKEY_PARAM_RSA_FACTOR2 "rsa-factor2" +# define OSSL_PKEY_PARAM_RSA_FACTOR3 "rsa-factor3" +# define OSSL_PKEY_PARAM_RSA_FACTOR4 "rsa-factor4" +# define OSSL_PKEY_PARAM_RSA_FACTOR5 "rsa-factor5" +# define OSSL_PKEY_PARAM_RSA_FACTOR6 "rsa-factor6" +# define OSSL_PKEY_PARAM_RSA_FACTOR7 "rsa-factor7" +# define OSSL_PKEY_PARAM_RSA_FACTOR8 "rsa-factor8" +# define OSSL_PKEY_PARAM_RSA_FACTOR9 "rsa-factor9" +# define OSSL_PKEY_PARAM_RSA_MASKGENFUNC OSSL_PKEY_PARAM_MASKGENFUNC +# define OSSL_PKEY_PARAM_RSA_MGF1_DIGEST OSSL_PKEY_PARAM_MGF1_DIGEST +# define OSSL_PKEY_PARAM_RSA_N "n" +# define OSSL_PKEY_PARAM_RSA_PRIMES "primes" +# define OSSL_PKEY_PARAM_RSA_PSS_SALTLEN "saltlen" +# define OSSL_PKEY_PARAM_RSA_TEST_P1 "p1" +# define OSSL_PKEY_PARAM_RSA_TEST_P2 "p2" +# define OSSL_PKEY_PARAM_RSA_TEST_Q1 "q1" +# define OSSL_PKEY_PARAM_RSA_TEST_Q2 "q2" +# define OSSL_PKEY_PARAM_RSA_TEST_XP "xp" +# define OSSL_PKEY_PARAM_RSA_TEST_XP1 "xp1" +# define OSSL_PKEY_PARAM_RSA_TEST_XP2 "xp2" +# define OSSL_PKEY_PARAM_RSA_TEST_XQ "xq" +# define OSSL_PKEY_PARAM_RSA_TEST_XQ1 "xq1" +# define OSSL_PKEY_PARAM_RSA_TEST_XQ2 "xq2" +# define OSSL_PKEY_PARAM_SECURITY_BITS "security-bits" +# define OSSL_PKEY_PARAM_SLH_DSA_SEED "seed" +# define OSSL_PKEY_PARAM_USE_COFACTOR_ECDH OSSL_PKEY_PARAM_USE_COFACTOR_FLAG +# define OSSL_PKEY_PARAM_USE_COFACTOR_FLAG "use-cofactor-flag" +# define OSSL_PROV_PARAM_BUILDINFO "buildinfo" +# define OSSL_PROV_PARAM_CORE_MODULE_FILENAME "module-filename" +# define OSSL_PROV_PARAM_CORE_PROV_NAME "provider-name" +# define OSSL_PROV_PARAM_CORE_VERSION "openssl-version" +# define OSSL_PROV_PARAM_DRBG_TRUNC_DIGEST "drbg-no-trunc-md" +# define OSSL_PROV_PARAM_DSA_SIGN_DISABLED "dsa-sign-disabled" +# define OSSL_PROV_PARAM_ECDH_COFACTOR_CHECK "ecdh-cofactor-check" +# define OSSL_PROV_PARAM_HKDF_DIGEST_CHECK "hkdf-digest-check" +# define OSSL_PROV_PARAM_HKDF_KEY_CHECK "hkdf-key-check" +# define OSSL_PROV_PARAM_HMAC_KEY_CHECK "hmac-key-check" +# define OSSL_PROV_PARAM_KBKDF_KEY_CHECK "kbkdf-key-check" +# define OSSL_PROV_PARAM_KMAC_KEY_CHECK "kmac-key-check" +# define OSSL_PROV_PARAM_NAME "name" +# define OSSL_PROV_PARAM_NO_SHORT_MAC "no-short-mac" +# define OSSL_PROV_PARAM_PBKDF2_LOWER_BOUND_CHECK "pbkdf2-lower-bound-check" +# define OSSL_PROV_PARAM_RSA_PKCS15_PAD_DISABLED "rsa-pkcs15-pad-disabled" +# define OSSL_PROV_PARAM_RSA_PSS_SALTLEN_CHECK "rsa-pss-saltlen-check" +# define OSSL_PROV_PARAM_RSA_SIGN_X931_PAD_DISABLED "rsa-sign-x931-pad-disabled" +# define OSSL_PROV_PARAM_SECURITY_CHECKS "security-checks" +# define OSSL_PROV_PARAM_SELF_TEST_DESC "st-desc" +# define OSSL_PROV_PARAM_SELF_TEST_PHASE "st-phase" +# define OSSL_PROV_PARAM_SELF_TEST_TYPE "st-type" +# define OSSL_PROV_PARAM_SIGNATURE_DIGEST_CHECK "signature-digest-check" +# define OSSL_PROV_PARAM_SSHKDF_DIGEST_CHECK "sshkdf-digest-check" +# define OSSL_PROV_PARAM_SSHKDF_KEY_CHECK "sshkdf-key-check" +# define OSSL_PROV_PARAM_SSKDF_DIGEST_CHECK "sskdf-digest-check" +# define OSSL_PROV_PARAM_SSKDF_KEY_CHECK "sskdf-key-check" +# define OSSL_PROV_PARAM_STATUS "status" +# define OSSL_PROV_PARAM_TDES_ENCRYPT_DISABLED "tdes-encrypt-disabled" +# define OSSL_PROV_PARAM_TLS13_KDF_DIGEST_CHECK "tls13-kdf-digest-check" +# define OSSL_PROV_PARAM_TLS13_KDF_KEY_CHECK "tls13-kdf-key-check" +# define OSSL_PROV_PARAM_TLS1_PRF_DIGEST_CHECK "tls1-prf-digest-check" +# define OSSL_PROV_PARAM_TLS1_PRF_EMS_CHECK "tls1-prf-ems-check" +# define OSSL_PROV_PARAM_TLS1_PRF_KEY_CHECK "tls1-prf-key-check" +# define OSSL_PROV_PARAM_VERSION "version" +# define OSSL_PROV_PARAM_X942KDF_KEY_CHECK "x942kdf-key-check" +# define OSSL_PROV_PARAM_X963KDF_DIGEST_CHECK "x963kdf-digest-check" +# define OSSL_PROV_PARAM_X963KDF_KEY_CHECK "x963kdf-key-check" +# define OSSL_RAND_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_RAND_PARAM_GENERATE "generate" +# define OSSL_RAND_PARAM_MAX_REQUEST "max_request" +# define OSSL_RAND_PARAM_STATE "state" +# define OSSL_RAND_PARAM_STRENGTH "strength" +# define OSSL_RAND_PARAM_TEST_ENTROPY "test_entropy" +# define OSSL_RAND_PARAM_TEST_NONCE "test_nonce" +# define OSSL_SIGNATURE_PARAM_ADD_RANDOM "additional-random" +# define OSSL_SIGNATURE_PARAM_ALGORITHM_ID OSSL_PKEY_PARAM_ALGORITHM_ID +# define OSSL_SIGNATURE_PARAM_ALGORITHM_ID_PARAMS OSSL_PKEY_PARAM_ALGORITHM_ID_PARAMS +# define OSSL_SIGNATURE_PARAM_CONTEXT_STRING "context-string" +# define OSSL_SIGNATURE_PARAM_DETERMINISTIC "deterministic" +# define OSSL_SIGNATURE_PARAM_DIGEST OSSL_PKEY_PARAM_DIGEST +# define OSSL_SIGNATURE_PARAM_DIGEST_SIZE OSSL_PKEY_PARAM_DIGEST_SIZE +# define OSSL_SIGNATURE_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_SIGNATURE_PARAM_FIPS_DIGEST_CHECK OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK +# define OSSL_SIGNATURE_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_SIGNATURE_PARAM_FIPS_RSA_PSS_SALTLEN_CHECK "rsa-pss-saltlen-check" +# define OSSL_SIGNATURE_PARAM_FIPS_SIGN_CHECK OSSL_PKEY_PARAM_FIPS_SIGN_CHECK +# define OSSL_SIGNATURE_PARAM_FIPS_SIGN_X931_PAD_CHECK "sign-x931-pad-check" +# define OSSL_SIGNATURE_PARAM_FIPS_VERIFY_MESSAGE "verify-message" +# define OSSL_SIGNATURE_PARAM_INSTANCE "instance" +# define OSSL_SIGNATURE_PARAM_KAT "kat" +# define OSSL_SIGNATURE_PARAM_MESSAGE_ENCODING "message-encoding" +# define OSSL_SIGNATURE_PARAM_MGF1_DIGEST OSSL_PKEY_PARAM_MGF1_DIGEST +# define OSSL_SIGNATURE_PARAM_MGF1_PROPERTIES OSSL_PKEY_PARAM_MGF1_PROPERTIES +# define OSSL_SIGNATURE_PARAM_MU "mu" +# define OSSL_SIGNATURE_PARAM_NONCE_TYPE "nonce-type" +# define OSSL_SIGNATURE_PARAM_PAD_MODE OSSL_PKEY_PARAM_PAD_MODE +# define OSSL_SIGNATURE_PARAM_PROPERTIES OSSL_PKEY_PARAM_PROPERTIES +# define OSSL_SIGNATURE_PARAM_PSS_SALTLEN "saltlen" +# define OSSL_SIGNATURE_PARAM_SIGNATURE "signature" +# define OSSL_SIGNATURE_PARAM_TEST_ENTROPY "test-entropy" +# define OSSL_SKEY_PARAM_KEY_LENGTH "key-length" +# define OSSL_SKEY_PARAM_RAW_BYTES "raw-bytes" +# define OSSL_STORE_PARAM_ALIAS "alias" +# define OSSL_STORE_PARAM_DIGEST "digest" +# define OSSL_STORE_PARAM_EXPECT "expect" +# define OSSL_STORE_PARAM_FINGERPRINT "fingerprint" +# define OSSL_STORE_PARAM_INPUT_TYPE "input-type" +# define OSSL_STORE_PARAM_ISSUER "name" +# define OSSL_STORE_PARAM_PROPERTIES "properties" +# define OSSL_STORE_PARAM_SERIAL "serial" +# define OSSL_STORE_PARAM_SUBJECT "subject" + +# ifdef __cplusplus +} +# endif + +#endif diff --git a/deps/openssl/config/archs/BSD-x86_64/asm_avx2/include/openssl/crmf.h b/deps/openssl/config/archs/BSD-x86_64/asm_avx2/include/openssl/crmf.h index 71b747ed33d239..4bf550fd47daa9 100644 --- a/deps/openssl/config/archs/BSD-x86_64/asm_avx2/include/openssl/crmf.h +++ b/deps/openssl/config/archs/BSD-x86_64/asm_avx2/include/openssl/crmf.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/crmf.h.in * - * Copyright 2007-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2007-2025 The OpenSSL Project Authors. All Rights Reserved. * Copyright Nokia 2007-2019 * Copyright Siemens AG 2015-2019 * @@ -26,6 +26,7 @@ # include # include # include /* for GENERAL_NAME etc. */ +# include /* explicit #includes not strictly needed since implied by the above: */ # include @@ -43,9 +44,12 @@ extern "C" { # define OSSL_CRMF_SUBSEQUENTMESSAGE_ENCRCERT 0 # define OSSL_CRMF_SUBSEQUENTMESSAGE_CHALLENGERESP 1 - typedef struct ossl_crmf_encryptedvalue_st OSSL_CRMF_ENCRYPTEDVALUE; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_ENCRYPTEDVALUE) + +typedef struct ossl_crmf_encryptedkey_st OSSL_CRMF_ENCRYPTEDKEY; +DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_ENCRYPTEDKEY) + typedef struct ossl_crmf_msg_st OSSL_CRMF_MSG; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_MSG) DECLARE_ASN1_DUP_FUNCTION(OSSL_CRMF_MSG) @@ -77,6 +81,36 @@ SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CRMF_MSG, OSSL_CRMF_MSG, OSSL_CRMF_MSG) #define sk_OSSL_CRMF_MSG_set_cmp_func(sk, cmp) ((sk_OSSL_CRMF_MSG_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CRMF_MSG_sk_type(sk), ossl_check_OSSL_CRMF_MSG_compfunc_type(cmp))) typedef struct ossl_crmf_attributetypeandvalue_st OSSL_CRMF_ATTRIBUTETYPEANDVALUE; +void OSSL_CRMF_ATTRIBUTETYPEANDVALUE_free(OSSL_CRMF_ATTRIBUTETYPEANDVALUE *v); +DECLARE_ASN1_DUP_FUNCTION(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CRMF_ATTRIBUTETYPEANDVALUE, OSSL_CRMF_ATTRIBUTETYPEANDVALUE, OSSL_CRMF_ATTRIBUTETYPEANDVALUE) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_value(sk, idx) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_value(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), (idx))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_new(cmp) ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_new(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_compfunc_type(cmp))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_new_null() ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_new_null()) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_new_reserve(cmp, n) ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_compfunc_type(cmp), (n))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), (n)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_free(sk) OPENSSL_sk_free(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_delete(sk, i) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_delete(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), (i))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_delete_ptr(sk, ptr) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_pop(sk) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_pop(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_shift(sk) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_shift(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk),ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_freefunc_type(freefunc)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr), (idx)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_set(sk, idx, ptr) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_set(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), (idx), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr), pnum) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_dup(sk) ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_dup(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_copyfunc_type(copyfunc), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_freefunc_type(freefunc))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_set_cmp_func(sk, cmp) ((sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_compfunc_type(cmp))) + + typedef struct ossl_crmf_pbmparameter_st OSSL_CRMF_PBMPARAMETER; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_PBMPARAMETER) typedef struct ossl_crmf_poposigningkey_st OSSL_CRMF_POPOSIGNINGKEY; @@ -118,6 +152,7 @@ typedef struct ossl_crmf_singlepubinfo_st OSSL_CRMF_SINGLEPUBINFO; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_SINGLEPUBINFO) typedef struct ossl_crmf_certtemplate_st OSSL_CRMF_CERTTEMPLATE; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_CERTTEMPLATE) +DECLARE_ASN1_DUP_FUNCTION(OSSL_CRMF_CERTTEMPLATE) typedef STACK_OF(OSSL_CRMF_MSG) OSSL_CRMF_MSGS; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_MSGS) @@ -198,12 +233,14 @@ int OSSL_CRMF_MSGS_verify_popo(const OSSL_CRMF_MSGS *reqs, int rid, int acceptRAVerified, OSSL_LIB_CTX *libctx, const char *propq); OSSL_CRMF_CERTTEMPLATE *OSSL_CRMF_MSG_get0_tmpl(const OSSL_CRMF_MSG *crm); -const ASN1_INTEGER -*OSSL_CRMF_CERTTEMPLATE_get0_serialNumber(const OSSL_CRMF_CERTTEMPLATE *tmpl); +X509_PUBKEY +*OSSL_CRMF_CERTTEMPLATE_get0_publicKey(const OSSL_CRMF_CERTTEMPLATE *tmpl); const X509_NAME *OSSL_CRMF_CERTTEMPLATE_get0_subject(const OSSL_CRMF_CERTTEMPLATE *tmpl); const X509_NAME *OSSL_CRMF_CERTTEMPLATE_get0_issuer(const OSSL_CRMF_CERTTEMPLATE *tmpl); +const ASN1_INTEGER +*OSSL_CRMF_CERTTEMPLATE_get0_serialNumber(const OSSL_CRMF_CERTTEMPLATE *tmpl); X509_EXTENSIONS *OSSL_CRMF_CERTTEMPLATE_get0_extensions(const OSSL_CRMF_CERTTEMPLATE *tmpl); const X509_NAME @@ -215,10 +252,24 @@ int OSSL_CRMF_CERTTEMPLATE_fill(OSSL_CRMF_CERTTEMPLATE *tmpl, const X509_NAME *subject, const X509_NAME *issuer, const ASN1_INTEGER *serial); -X509 -*OSSL_CRMF_ENCRYPTEDVALUE_get1_encCert(const OSSL_CRMF_ENCRYPTEDVALUE *ecert, - OSSL_LIB_CTX *libctx, const char *propq, - EVP_PKEY *pkey); +X509 *OSSL_CRMF_ENCRYPTEDVALUE_get1_encCert(const OSSL_CRMF_ENCRYPTEDVALUE *ecert, + OSSL_LIB_CTX *libctx, const char *propq, + EVP_PKEY *pkey); +X509 *OSSL_CRMF_ENCRYPTEDKEY_get1_encCert(const OSSL_CRMF_ENCRYPTEDKEY *ecert, + OSSL_LIB_CTX *libctx, const char *propq, + EVP_PKEY *pkey, unsigned int flags); +unsigned char +*OSSL_CRMF_ENCRYPTEDVALUE_decrypt(const OSSL_CRMF_ENCRYPTEDVALUE *enc, + OSSL_LIB_CTX *libctx, const char *propq, + EVP_PKEY *pkey, int *outlen); +EVP_PKEY *OSSL_CRMF_ENCRYPTEDKEY_get1_pkey(const OSSL_CRMF_ENCRYPTEDKEY *encryptedKey, + X509_STORE *ts, STACK_OF(X509) *extra, EVP_PKEY *pkey, + X509 *cert, ASN1_OCTET_STRING *secret, + OSSL_LIB_CTX *libctx, const char *propq); +int OSSL_CRMF_MSG_centralkeygen_requested(const OSSL_CRMF_MSG *crm, const X509_REQ *p10cr); +# ifndef OPENSSL_NO_CMS +OSSL_CRMF_ENCRYPTEDKEY *OSSL_CRMF_ENCRYPTEDKEY_init_envdata(CMS_EnvelopedData *envdata); +# endif # ifdef __cplusplus } diff --git a/deps/openssl/config/archs/BSD-x86_64/asm_avx2/include/openssl/crypto.h b/deps/openssl/config/archs/BSD-x86_64/asm_avx2/include/openssl/crypto.h index 3f40be6d8c61d5..fd2cfd3e5a9ac4 100644 --- a/deps/openssl/config/archs/BSD-x86_64/asm_avx2/include/openssl/crypto.h +++ b/deps/openssl/config/archs/BSD-x86_64/asm_avx2/include/openssl/crypto.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/crypto.h.in * - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2024 The OpenSSL Project Authors. All Rights Reserved. * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved * * Licensed under the Apache License 2.0 (the "License"). You may not use @@ -85,9 +85,15 @@ int CRYPTO_THREAD_unlock(CRYPTO_RWLOCK *lock); void CRYPTO_THREAD_lock_free(CRYPTO_RWLOCK *lock); int CRYPTO_atomic_add(int *val, int amount, int *ret, CRYPTO_RWLOCK *lock); +int CRYPTO_atomic_add64(uint64_t *val, uint64_t op, uint64_t *ret, + CRYPTO_RWLOCK *lock); +int CRYPTO_atomic_and(uint64_t *val, uint64_t op, uint64_t *ret, + CRYPTO_RWLOCK *lock); int CRYPTO_atomic_or(uint64_t *val, uint64_t op, uint64_t *ret, CRYPTO_RWLOCK *lock); int CRYPTO_atomic_load(uint64_t *val, uint64_t *ret, CRYPTO_RWLOCK *lock); +int CRYPTO_atomic_load_int(int *val, int *ret, CRYPTO_RWLOCK *lock); +int CRYPTO_atomic_store(uint64_t *dst, uint64_t val, CRYPTO_RWLOCK *lock); /* No longer needed, so this is a no-op */ #define OPENSSL_malloc_init() while(0) continue @@ -96,6 +102,9 @@ int CRYPTO_atomic_load(uint64_t *val, uint64_t *ret, CRYPTO_RWLOCK *lock); CRYPTO_malloc(num, OPENSSL_FILE, OPENSSL_LINE) # define OPENSSL_zalloc(num) \ CRYPTO_zalloc(num, OPENSSL_FILE, OPENSSL_LINE) +# define OPENSSL_aligned_alloc(num, alignment, freeptr) \ + CRYPTO_aligned_alloc(num, alignment, freeptr, \ + OPENSSL_FILE, OPENSSL_LINE) # define OPENSSL_realloc(addr, num) \ CRYPTO_realloc(addr, num, OPENSSL_FILE, OPENSSL_LINE) # define OPENSSL_clear_realloc(addr, old_num, num) \ @@ -124,6 +133,7 @@ int CRYPTO_atomic_load(uint64_t *val, uint64_t *ret, CRYPTO_RWLOCK *lock); size_t OPENSSL_strlcpy(char *dst, const char *src, size_t siz); size_t OPENSSL_strlcat(char *dst, const char *src, size_t siz); size_t OPENSSL_strnlen(const char *str, size_t maxlen); +int OPENSSL_strtoul(const char *str, char **endptr, int base, unsigned long *num); int OPENSSL_buf2hexstr_ex(char *str, size_t str_n, size_t *strlength, const unsigned char *buf, size_t buflen, const char sep); @@ -160,6 +170,7 @@ const char *OpenSSL_version(int type); # define OPENSSL_FULL_VERSION_STRING 7 # define OPENSSL_MODULES_DIR 8 # define OPENSSL_CPU_INFO 9 +# define OPENSSL_WINCTX 10 const char *OPENSSL_info(int type); /* @@ -174,6 +185,7 @@ const char *OPENSSL_info(int type); # define OPENSSL_INFO_LIST_SEPARATOR 1006 # define OPENSSL_INFO_SEED_SOURCE 1007 # define OPENSSL_INFO_CPU_SETTINGS 1008 +# define OPENSSL_INFO_WINDOWS_CONTEXT 1009 int OPENSSL_issetugid(void); @@ -341,11 +353,14 @@ void CRYPTO_get_mem_functions(CRYPTO_malloc_fn *malloc_fn, CRYPTO_realloc_fn *realloc_fn, CRYPTO_free_fn *free_fn); -void *CRYPTO_malloc(size_t num, const char *file, int line); -void *CRYPTO_zalloc(size_t num, const char *file, int line); -void *CRYPTO_memdup(const void *str, size_t siz, const char *file, int line); -char *CRYPTO_strdup(const char *str, const char *file, int line); -char *CRYPTO_strndup(const char *str, size_t s, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_malloc(size_t num, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_zalloc(size_t num, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_aligned_alloc(size_t num, size_t align, + void **freeptr, const char *file, + int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_memdup(const void *str, size_t siz, const char *file, int line); +OSSL_CRYPTO_ALLOC char *CRYPTO_strdup(const char *str, const char *file, int line); +OSSL_CRYPTO_ALLOC char *CRYPTO_strndup(const char *str, size_t s, const char *file, int line); void CRYPTO_free(void *ptr, const char *file, int line); void CRYPTO_clear_free(void *ptr, size_t num, const char *file, int line); void *CRYPTO_realloc(void *addr, size_t num, const char *file, int line); @@ -354,8 +369,8 @@ void *CRYPTO_clear_realloc(void *addr, size_t old_num, size_t num, int CRYPTO_secure_malloc_init(size_t sz, size_t minsize); int CRYPTO_secure_malloc_done(void); -void *CRYPTO_secure_malloc(size_t num, const char *file, int line); -void *CRYPTO_secure_zalloc(size_t num, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_secure_malloc(size_t num, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_secure_zalloc(size_t num, const char *file, int line); void CRYPTO_secure_free(void *ptr, const char *file, int line); void CRYPTO_secure_clear_free(void *ptr, size_t num, const char *file, int line); @@ -376,6 +391,9 @@ void OPENSSL_cleanse(void *ptr, size_t len); # define CRYPTO_MEM_CHECK_ENABLE 0x2 /* Control and mode bit */ # define CRYPTO_MEM_CHECK_DISABLE 0x3 /* Control only */ +/* max allowed length for value of OPENSSL_MALLOC_FAILURES env var. */ +# define CRYPTO_MEM_CHECK_MAX_FS 256 + void CRYPTO_get_alloc_counts(int *mcount, int *rcount, int *fcount); # ifndef OPENSSL_NO_DEPRECATED_3_0 # define OPENSSL_mem_debug_push(info) \ @@ -551,6 +569,13 @@ int OSSL_LIB_CTX_load_config(OSSL_LIB_CTX *ctx, const char *config_file); void OSSL_LIB_CTX_free(OSSL_LIB_CTX *); OSSL_LIB_CTX *OSSL_LIB_CTX_get0_global_default(void); OSSL_LIB_CTX *OSSL_LIB_CTX_set0_default(OSSL_LIB_CTX *libctx); +int OSSL_LIB_CTX_get_conf_diagnostics(OSSL_LIB_CTX *ctx); +void OSSL_LIB_CTX_set_conf_diagnostics(OSSL_LIB_CTX *ctx, int value); + +void OSSL_sleep(uint64_t millis); + + +void *OSSL_LIB_CTX_get_data(OSSL_LIB_CTX *ctx, int index); # ifdef __cplusplus } diff --git a/deps/openssl/config/archs/BSD-x86_64/asm_avx2/include/openssl/ct.h b/deps/openssl/config/archs/BSD-x86_64/asm_avx2/include/openssl/ct.h index b6dd8c3547710a..e6dd1192a4e0b3 100644 --- a/deps/openssl/config/archs/BSD-x86_64/asm_avx2/include/openssl/ct.h +++ b/deps/openssl/config/archs/BSD-x86_64/asm_avx2/include/openssl/ct.h @@ -133,7 +133,7 @@ typedef enum { */ CT_POLICY_EVAL_CTX *CT_POLICY_EVAL_CTX_new_ex(OSSL_LIB_CTX *libctx, const char *propq); - + /* * The same as CT_POLICY_EVAL_CTX_new_ex() but the default library * context and property query string is used. diff --git a/deps/openssl/config/archs/BSD-x86_64/asm_avx2/include/openssl/err.h b/deps/openssl/config/archs/BSD-x86_64/asm_avx2/include/openssl/err.h index 2abf2483488181..daca18e7b757b0 100644 --- a/deps/openssl/config/archs/BSD-x86_64/asm_avx2/include/openssl/err.h +++ b/deps/openssl/config/archs/BSD-x86_64/asm_avx2/include/openssl/err.h @@ -1,5 +1,5 @@ /* - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -372,7 +372,7 @@ typedef struct ERR_string_data_st { } ERR_STRING_DATA; DEFINE_LHASH_OF_INTERNAL(ERR_STRING_DATA); -#define lh_ERR_STRING_DATA_new(hfn, cmp) ((LHASH_OF(ERR_STRING_DATA) *)OPENSSL_LH_new(ossl_check_ERR_STRING_DATA_lh_hashfunc_type(hfn), ossl_check_ERR_STRING_DATA_lh_compfunc_type(cmp))) +#define lh_ERR_STRING_DATA_new(hfn, cmp) ((LHASH_OF(ERR_STRING_DATA) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new(ossl_check_ERR_STRING_DATA_lh_hashfunc_type(hfn), ossl_check_ERR_STRING_DATA_lh_compfunc_type(cmp)), lh_ERR_STRING_DATA_hash_thunk, lh_ERR_STRING_DATA_comp_thunk, lh_ERR_STRING_DATA_doall_thunk, lh_ERR_STRING_DATA_doall_arg_thunk)) #define lh_ERR_STRING_DATA_free(lh) OPENSSL_LH_free(ossl_check_ERR_STRING_DATA_lh_type(lh)) #define lh_ERR_STRING_DATA_flush(lh) OPENSSL_LH_flush(ossl_check_ERR_STRING_DATA_lh_type(lh)) #define lh_ERR_STRING_DATA_insert(lh, ptr) ((ERR_STRING_DATA *)OPENSSL_LH_insert(ossl_check_ERR_STRING_DATA_lh_type(lh), ossl_check_ERR_STRING_DATA_lh_plain_type(ptr))) @@ -496,6 +496,14 @@ int ERR_get_next_error_library(void); int ERR_set_mark(void); int ERR_pop_to_mark(void); int ERR_clear_last_mark(void); +int ERR_count_to_mark(void); +int ERR_pop(void); + +ERR_STATE *OSSL_ERR_STATE_new(void); +void OSSL_ERR_STATE_save(ERR_STATE *es); +void OSSL_ERR_STATE_save_to_mark(ERR_STATE *es); +void OSSL_ERR_STATE_restore(const ERR_STATE *es); +void OSSL_ERR_STATE_free(ERR_STATE *es); #ifdef __cplusplus } diff --git a/deps/openssl/config/archs/BSD-x86_64/asm_avx2/include/openssl/fipskey.h b/deps/openssl/config/archs/BSD-x86_64/asm_avx2/include/openssl/fipskey.h index 42ba014b313ba8..929db18c678364 100644 --- a/deps/openssl/config/archs/BSD-x86_64/asm_avx2/include/openssl/fipskey.h +++ b/deps/openssl/config/archs/BSD-x86_64/asm_avx2/include/openssl/fipskey.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/fipskey.h.in * - * Copyright 2020-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2020-2024 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -29,6 +29,11 @@ extern "C" { */ #define FIPS_KEY_STRING "f4556650ac31d35461610bac4ed81b1a181b2d8a43ea2854cbae22ca74560813" +/* + * The FIPS provider vendor name, as a string. + */ +#define FIPS_VENDOR "OpenSSL FIPS Provider" + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/BSD-x86_64/asm_avx2/include/openssl/lhash.h b/deps/openssl/config/archs/BSD-x86_64/asm_avx2/include/openssl/lhash.h index 39dd6254acdeb6..62c55b20fd9716 100644 --- a/deps/openssl/config/archs/BSD-x86_64/asm_avx2/include/openssl/lhash.h +++ b/deps/openssl/config/archs/BSD-x86_64/asm_avx2/include/openssl/lhash.h @@ -1,5 +1,5 @@ /* - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2024 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -24,6 +24,9 @@ # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -31,9 +34,13 @@ extern "C" { typedef struct lhash_node_st OPENSSL_LH_NODE; typedef int (*OPENSSL_LH_COMPFUNC) (const void *, const void *); +typedef int (*OPENSSL_LH_COMPFUNCTHUNK) (const void *, const void *, OPENSSL_LH_COMPFUNC cfn); typedef unsigned long (*OPENSSL_LH_HASHFUNC) (const void *); +typedef unsigned long (*OPENSSL_LH_HASHFUNCTHUNK) (const void *, OPENSSL_LH_HASHFUNC hfn); typedef void (*OPENSSL_LH_DOALL_FUNC) (void *); +typedef void (*OPENSSL_LH_DOALL_FUNC_THUNK) (void *, OPENSSL_LH_DOALL_FUNC doall); typedef void (*OPENSSL_LH_DOALL_FUNCARG) (void *, void *); +typedef void (*OPENSSL_LH_DOALL_FUNCARG_THUNK) (void *, void *, OPENSSL_LH_DOALL_FUNCARG doall); typedef struct lhash_st OPENSSL_LHASH; /* @@ -79,26 +86,40 @@ typedef struct lhash_st OPENSSL_LHASH; int OPENSSL_LH_error(OPENSSL_LHASH *lh); OPENSSL_LHASH *OPENSSL_LH_new(OPENSSL_LH_HASHFUNC h, OPENSSL_LH_COMPFUNC c); +OPENSSL_LHASH *OPENSSL_LH_set_thunks(OPENSSL_LHASH *lh, + OPENSSL_LH_HASHFUNCTHUNK hw, + OPENSSL_LH_COMPFUNCTHUNK cw, + OPENSSL_LH_DOALL_FUNC_THUNK daw, + OPENSSL_LH_DOALL_FUNCARG_THUNK daaw); void OPENSSL_LH_free(OPENSSL_LHASH *lh); void OPENSSL_LH_flush(OPENSSL_LHASH *lh); void *OPENSSL_LH_insert(OPENSSL_LHASH *lh, void *data); void *OPENSSL_LH_delete(OPENSSL_LHASH *lh, const void *data); void *OPENSSL_LH_retrieve(OPENSSL_LHASH *lh, const void *data); void OPENSSL_LH_doall(OPENSSL_LHASH *lh, OPENSSL_LH_DOALL_FUNC func); -void OPENSSL_LH_doall_arg(OPENSSL_LHASH *lh, OPENSSL_LH_DOALL_FUNCARG func, void *arg); +void OPENSSL_LH_doall_arg(OPENSSL_LHASH *lh, + OPENSSL_LH_DOALL_FUNCARG func, void *arg); +void OPENSSL_LH_doall_arg_thunk(OPENSSL_LHASH *lh, + OPENSSL_LH_DOALL_FUNCARG_THUNK daaw, + OPENSSL_LH_DOALL_FUNCARG fn, void *arg); + unsigned long OPENSSL_LH_strhash(const char *c); unsigned long OPENSSL_LH_num_items(const OPENSSL_LHASH *lh); unsigned long OPENSSL_LH_get_down_load(const OPENSSL_LHASH *lh); void OPENSSL_LH_set_down_load(OPENSSL_LHASH *lh, unsigned long down_load); # ifndef OPENSSL_NO_STDIO -void OPENSSL_LH_stats(const OPENSSL_LHASH *lh, FILE *fp); -void OPENSSL_LH_node_stats(const OPENSSL_LHASH *lh, FILE *fp); -void OPENSSL_LH_node_usage_stats(const OPENSSL_LHASH *lh, FILE *fp); +# ifndef OPENSSL_NO_DEPRECATED_3_1 +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_stats(const OPENSSL_LHASH *lh, FILE *fp); +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_node_stats(const OPENSSL_LHASH *lh, FILE *fp); +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_node_usage_stats(const OPENSSL_LHASH *lh, FILE *fp); +# endif +# endif +# ifndef OPENSSL_NO_DEPRECATED_3_1 +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_stats_bio(const OPENSSL_LHASH *lh, BIO *out); +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_node_stats_bio(const OPENSSL_LHASH *lh, BIO *out); +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_node_usage_stats_bio(const OPENSSL_LHASH *lh, BIO *out); # endif -void OPENSSL_LH_stats_bio(const OPENSSL_LHASH *lh, BIO *out); -void OPENSSL_LH_node_stats_bio(const OPENSSL_LHASH *lh, BIO *out); -void OPENSSL_LH_node_usage_stats_bio(const OPENSSL_LHASH *lh, BIO *out); # ifndef OPENSSL_NO_DEPRECATED_1_1_0 # define _LHASH OPENSSL_LHASH @@ -129,110 +150,190 @@ void OPENSSL_LH_node_usage_stats_bio(const OPENSSL_LHASH *lh, BIO *out); /* Helper macro for internal use */ # define DEFINE_LHASH_OF_INTERNAL(type) \ - LHASH_OF(type) { union lh_##type##_dummy { void* d1; unsigned long d2; int d3; } dummy; }; \ + LHASH_OF(type) { \ + union lh_##type##_dummy { void* d1; unsigned long d2; int d3; } dummy; \ + }; \ typedef int (*lh_##type##_compfunc)(const type *a, const type *b); \ typedef unsigned long (*lh_##type##_hashfunc)(const type *a); \ typedef void (*lh_##type##_doallfunc)(type *a); \ - static ossl_unused ossl_inline type *ossl_check_##type##_lh_plain_type(type *ptr) \ + static ossl_inline unsigned long lh_##type##_hash_thunk(const void *data, OPENSSL_LH_HASHFUNC hfn) \ + { \ + unsigned long (*hfn_conv)(const type *) = (unsigned long (*)(const type *))hfn; \ + return hfn_conv((const type *)data); \ + } \ + static ossl_inline int lh_##type##_comp_thunk(const void *da, const void *db, OPENSSL_LH_COMPFUNC cfn) \ + { \ + int (*cfn_conv)(const type *, const type *) = (int (*)(const type *, const type *))cfn; \ + return cfn_conv((const type *)da, (const type *)db); \ + } \ + static ossl_inline void lh_##type##_doall_thunk(void *node, OPENSSL_LH_DOALL_FUNC doall) \ + { \ + void (*doall_conv)(type *) = (void (*)(type *))doall; \ + doall_conv((type *)node); \ + } \ + static ossl_inline void lh_##type##_doall_arg_thunk(void *node, void *arg, OPENSSL_LH_DOALL_FUNCARG doall) \ + { \ + void (*doall_conv)(type *, void *) = (void (*)(type *, void *))doall; \ + doall_conv((type *)node, arg); \ + } \ + static ossl_unused ossl_inline type *\ + ossl_check_##type##_lh_plain_type(type *ptr) \ { \ return ptr; \ } \ - static ossl_unused ossl_inline const type *ossl_check_const_##type##_lh_plain_type(const type *ptr) \ + static ossl_unused ossl_inline const type * \ + ossl_check_const_##type##_lh_plain_type(const type *ptr) \ { \ return ptr; \ } \ - static ossl_unused ossl_inline const OPENSSL_LHASH *ossl_check_const_##type##_lh_type(const LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline const OPENSSL_LHASH * \ + ossl_check_const_##type##_lh_type(const LHASH_OF(type) *lh) \ { \ return (const OPENSSL_LHASH *)lh; \ } \ - static ossl_unused ossl_inline OPENSSL_LHASH *ossl_check_##type##_lh_type(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline OPENSSL_LHASH * \ + ossl_check_##type##_lh_type(LHASH_OF(type) *lh) \ { \ return (OPENSSL_LHASH *)lh; \ } \ - static ossl_unused ossl_inline OPENSSL_LH_COMPFUNC ossl_check_##type##_lh_compfunc_type(lh_##type##_compfunc cmp) \ + static ossl_unused ossl_inline OPENSSL_LH_COMPFUNC \ + ossl_check_##type##_lh_compfunc_type(lh_##type##_compfunc cmp) \ { \ return (OPENSSL_LH_COMPFUNC)cmp; \ } \ - static ossl_unused ossl_inline OPENSSL_LH_HASHFUNC ossl_check_##type##_lh_hashfunc_type(lh_##type##_hashfunc hfn) \ + static ossl_unused ossl_inline OPENSSL_LH_HASHFUNC \ + ossl_check_##type##_lh_hashfunc_type(lh_##type##_hashfunc hfn) \ { \ return (OPENSSL_LH_HASHFUNC)hfn; \ } \ - static ossl_unused ossl_inline OPENSSL_LH_DOALL_FUNC ossl_check_##type##_lh_doallfunc_type(lh_##type##_doallfunc dfn) \ + static ossl_unused ossl_inline OPENSSL_LH_DOALL_FUNC \ + ossl_check_##type##_lh_doallfunc_type(lh_##type##_doallfunc dfn) \ { \ return (OPENSSL_LH_DOALL_FUNC)dfn; \ } \ LHASH_OF(type) -# define DEFINE_LHASH_OF(type) \ - LHASH_OF(type) { union lh_##type##_dummy { void* d1; unsigned long d2; int d3; } dummy; }; \ - static ossl_unused ossl_inline LHASH_OF(type) *lh_##type##_new(unsigned long (*hfn)(const type *), \ - int (*cfn)(const type *, const type *)) \ +# ifndef OPENSSL_NO_DEPRECATED_3_1 +# define DEFINE_LHASH_OF_DEPRECATED(type) \ + static ossl_unused ossl_inline void \ + lh_##type##_node_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ { \ - return (LHASH_OF(type) *) \ - OPENSSL_LH_new((OPENSSL_LH_HASHFUNC)hfn, (OPENSSL_LH_COMPFUNC)cfn); \ + OPENSSL_LH_node_stats_bio((const OPENSSL_LHASH *)lh, out); \ } \ - static ossl_unused ossl_inline void lh_##type##_free(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline void \ + lh_##type##_node_usage_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + { \ + OPENSSL_LH_node_usage_stats_bio((const OPENSSL_LHASH *)lh, out); \ + } \ + static ossl_unused ossl_inline void \ + lh_##type##_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + { \ + OPENSSL_LH_stats_bio((const OPENSSL_LHASH *)lh, out); \ + } +# else +# define DEFINE_LHASH_OF_DEPRECATED(type) +# endif + +# define DEFINE_LHASH_OF_EX(type) \ + LHASH_OF(type) { \ + union lh_##type##_dummy { void* d1; unsigned long d2; int d3; } dummy; \ + }; \ + static unsigned long \ + lh_##type##_hfn_thunk(const void *data, OPENSSL_LH_HASHFUNC hfn) \ + { \ + unsigned long (*hfn_conv)(const type *) = (unsigned long (*)(const type *))hfn; \ + return hfn_conv((const type *)data); \ + } \ + static int lh_##type##_cfn_thunk(const void *da, const void *db, OPENSSL_LH_COMPFUNC cfn) \ + { \ + int (*cfn_conv)(const type *, const type *) = (int (*)(const type *, const type *))cfn; \ + return cfn_conv((const type *)da, (const type *)db); \ + } \ + static ossl_unused ossl_inline void \ + lh_##type##_free(LHASH_OF(type) *lh) \ { \ OPENSSL_LH_free((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline void lh_##type##_flush(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline void \ + lh_##type##_flush(LHASH_OF(type) *lh) \ { \ OPENSSL_LH_flush((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline type *lh_##type##_insert(LHASH_OF(type) *lh, type *d) \ + static ossl_unused ossl_inline type * \ + lh_##type##_insert(LHASH_OF(type) *lh, type *d) \ { \ return (type *)OPENSSL_LH_insert((OPENSSL_LHASH *)lh, d); \ } \ - static ossl_unused ossl_inline type *lh_##type##_delete(LHASH_OF(type) *lh, const type *d) \ + static ossl_unused ossl_inline type * \ + lh_##type##_delete(LHASH_OF(type) *lh, const type *d) \ { \ return (type *)OPENSSL_LH_delete((OPENSSL_LHASH *)lh, d); \ } \ - static ossl_unused ossl_inline type *lh_##type##_retrieve(LHASH_OF(type) *lh, const type *d) \ + static ossl_unused ossl_inline type * \ + lh_##type##_retrieve(LHASH_OF(type) *lh, const type *d) \ { \ return (type *)OPENSSL_LH_retrieve((OPENSSL_LHASH *)lh, d); \ } \ - static ossl_unused ossl_inline int lh_##type##_error(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline int \ + lh_##type##_error(LHASH_OF(type) *lh) \ { \ return OPENSSL_LH_error((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline unsigned long lh_##type##_num_items(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline unsigned long \ + lh_##type##_num_items(LHASH_OF(type) *lh) \ { \ return OPENSSL_LH_num_items((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline void lh_##type##_node_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + static ossl_unused ossl_inline unsigned long \ + lh_##type##_get_down_load(LHASH_OF(type) *lh) \ { \ - OPENSSL_LH_node_stats_bio((const OPENSSL_LHASH *)lh, out); \ + return OPENSSL_LH_get_down_load((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline void lh_##type##_node_usage_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + static ossl_unused ossl_inline void \ + lh_##type##_set_down_load(LHASH_OF(type) *lh, unsigned long dl) \ { \ - OPENSSL_LH_node_usage_stats_bio((const OPENSSL_LHASH *)lh, out); \ + OPENSSL_LH_set_down_load((OPENSSL_LHASH *)lh, dl); \ } \ - static ossl_unused ossl_inline void lh_##type##_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall_thunk(void *node, OPENSSL_LH_DOALL_FUNC doall) \ { \ - OPENSSL_LH_stats_bio((const OPENSSL_LHASH *)lh, out); \ + void (*doall_conv)(type *) = (void (*)(type *))doall; \ + doall_conv((type *)node); \ } \ - static ossl_unused ossl_inline unsigned long lh_##type##_get_down_load(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall_arg_thunk(void *node, void *arg, OPENSSL_LH_DOALL_FUNCARG doall) \ { \ - return OPENSSL_LH_get_down_load((OPENSSL_LHASH *)lh); \ + void (*doall_conv)(type *, void *) = (void (*)(type *, void *))doall; \ + doall_conv((type *)node, arg); \ } \ - static ossl_unused ossl_inline void lh_##type##_set_down_load(LHASH_OF(type) *lh, unsigned long dl) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall(LHASH_OF(type) *lh, void (*doall)(type *)) \ { \ - OPENSSL_LH_set_down_load((OPENSSL_LHASH *)lh, dl); \ + OPENSSL_LH_doall((OPENSSL_LHASH *)lh, (OPENSSL_LH_DOALL_FUNC)doall); \ } \ - static ossl_unused ossl_inline void lh_##type##_doall(LHASH_OF(type) *lh, \ - void (*doall)(type *)) \ + static ossl_unused ossl_inline LHASH_OF(type) * \ + lh_##type##_new(unsigned long (*hfn)(const type *), \ + int (*cfn)(const type *, const type *)) \ { \ - OPENSSL_LH_doall((OPENSSL_LHASH *)lh, (OPENSSL_LH_DOALL_FUNC)doall); \ + return (LHASH_OF(type) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new((OPENSSL_LH_HASHFUNC)hfn, (OPENSSL_LH_COMPFUNC)cfn), \ + lh_##type##_hfn_thunk, lh_##type##_cfn_thunk, \ + lh_##type##_doall_thunk, \ + lh_##type##_doall_arg_thunk); \ } \ - static ossl_unused ossl_inline void lh_##type##_doall_arg(LHASH_OF(type) *lh, \ - void (*doallarg)(type *, void *), \ - void *arg) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall_arg(LHASH_OF(type) *lh, \ + void (*doallarg)(type *, void *), void *arg) \ { \ OPENSSL_LH_doall_arg((OPENSSL_LHASH *)lh, \ (OPENSSL_LH_DOALL_FUNCARG)doallarg, arg); \ } \ LHASH_OF(type) +# define DEFINE_LHASH_OF(type) \ + DEFINE_LHASH_OF_EX(type); \ + DEFINE_LHASH_OF_DEPRECATED(type) \ + LHASH_OF(type) + #define IMPLEMENT_LHASH_DOALL_ARG_CONST(type, argtype) \ int_implement_lhash_doall(type, argtype, const type) @@ -240,17 +341,26 @@ void OPENSSL_LH_node_usage_stats_bio(const OPENSSL_LHASH *lh, BIO *out); int_implement_lhash_doall(type, argtype, type) #define int_implement_lhash_doall(type, argtype, cbargtype) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall_##argtype##_thunk(void *node, void *arg, OPENSSL_LH_DOALL_FUNCARG fn) \ + { \ + void (*fn_conv)(cbargtype *, argtype *) = (void (*)(cbargtype *, argtype *))fn; \ + fn_conv((cbargtype *)node, (argtype *)arg); \ + } \ static ossl_unused ossl_inline void \ lh_##type##_doall_##argtype(LHASH_OF(type) *lh, \ void (*fn)(cbargtype *, argtype *), \ argtype *arg) \ { \ - OPENSSL_LH_doall_arg((OPENSSL_LHASH *)lh, (OPENSSL_LH_DOALL_FUNCARG)fn, (void *)arg); \ + OPENSSL_LH_doall_arg_thunk((OPENSSL_LHASH *)lh, \ + lh_##type##_doall_##argtype##_thunk, \ + (OPENSSL_LH_DOALL_FUNCARG)fn, \ + (void *)arg); \ } \ LHASH_OF(type) DEFINE_LHASH_OF_INTERNAL(OPENSSL_STRING); -#define lh_OPENSSL_STRING_new(hfn, cmp) ((LHASH_OF(OPENSSL_STRING) *)OPENSSL_LH_new(ossl_check_OPENSSL_STRING_lh_hashfunc_type(hfn), ossl_check_OPENSSL_STRING_lh_compfunc_type(cmp))) +#define lh_OPENSSL_STRING_new(hfn, cmp) ((LHASH_OF(OPENSSL_STRING) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new(ossl_check_OPENSSL_STRING_lh_hashfunc_type(hfn), ossl_check_OPENSSL_STRING_lh_compfunc_type(cmp)), lh_OPENSSL_STRING_hash_thunk, lh_OPENSSL_STRING_comp_thunk, lh_OPENSSL_STRING_doall_thunk, lh_OPENSSL_STRING_doall_arg_thunk)) #define lh_OPENSSL_STRING_free(lh) OPENSSL_LH_free(ossl_check_OPENSSL_STRING_lh_type(lh)) #define lh_OPENSSL_STRING_flush(lh) OPENSSL_LH_flush(ossl_check_OPENSSL_STRING_lh_type(lh)) #define lh_OPENSSL_STRING_insert(lh, ptr) ((OPENSSL_STRING *)OPENSSL_LH_insert(ossl_check_OPENSSL_STRING_lh_type(lh), ossl_check_OPENSSL_STRING_lh_plain_type(ptr))) @@ -265,7 +375,7 @@ DEFINE_LHASH_OF_INTERNAL(OPENSSL_STRING); #define lh_OPENSSL_STRING_set_down_load(lh, dl) OPENSSL_LH_set_down_load(ossl_check_OPENSSL_STRING_lh_type(lh), dl) #define lh_OPENSSL_STRING_doall(lh, dfn) OPENSSL_LH_doall(ossl_check_OPENSSL_STRING_lh_type(lh), ossl_check_OPENSSL_STRING_lh_doallfunc_type(dfn)) DEFINE_LHASH_OF_INTERNAL(OPENSSL_CSTRING); -#define lh_OPENSSL_CSTRING_new(hfn, cmp) ((LHASH_OF(OPENSSL_CSTRING) *)OPENSSL_LH_new(ossl_check_OPENSSL_CSTRING_lh_hashfunc_type(hfn), ossl_check_OPENSSL_CSTRING_lh_compfunc_type(cmp))) +#define lh_OPENSSL_CSTRING_new(hfn, cmp) ((LHASH_OF(OPENSSL_CSTRING) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new(ossl_check_OPENSSL_CSTRING_lh_hashfunc_type(hfn), ossl_check_OPENSSL_CSTRING_lh_compfunc_type(cmp)), lh_OPENSSL_CSTRING_hash_thunk, lh_OPENSSL_CSTRING_comp_thunk, lh_OPENSSL_CSTRING_doall_thunk, lh_OPENSSL_CSTRING_doall_arg_thunk)) #define lh_OPENSSL_CSTRING_free(lh) OPENSSL_LH_free(ossl_check_OPENSSL_CSTRING_lh_type(lh)) #define lh_OPENSSL_CSTRING_flush(lh) OPENSSL_LH_flush(ossl_check_OPENSSL_CSTRING_lh_type(lh)) #define lh_OPENSSL_CSTRING_insert(lh, ptr) ((OPENSSL_CSTRING *)OPENSSL_LH_insert(ossl_check_OPENSSL_CSTRING_lh_type(lh), ossl_check_OPENSSL_CSTRING_lh_plain_type(ptr))) diff --git a/deps/openssl/config/archs/BSD-x86_64/asm_avx2/include/openssl/opensslv.h b/deps/openssl/config/archs/BSD-x86_64/asm_avx2/include/openssl/opensslv.h index 5fb5bc63056fe0..dd50d89cb9982d 100644 --- a/deps/openssl/config/archs/BSD-x86_64/asm_avx2/include/openssl/opensslv.h +++ b/deps/openssl/config/archs/BSD-x86_64/asm_avx2/include/openssl/opensslv.h @@ -28,8 +28,8 @@ extern "C" { * These macros express version number MAJOR.MINOR.PATCH exactly */ # define OPENSSL_VERSION_MAJOR 3 -# define OPENSSL_VERSION_MINOR 0 -# define OPENSSL_VERSION_PATCH 17 +# define OPENSSL_VERSION_MINOR 5 +# define OPENSSL_VERSION_PATCH 1 /* * Additional version information @@ -74,8 +74,8 @@ extern "C" { * longer variant with OPENSSL_VERSION_PRE_RELEASE_STR and * OPENSSL_VERSION_BUILD_METADATA_STR appended. */ -# define OPENSSL_VERSION_STR "3.0.17" -# define OPENSSL_FULL_VERSION_STR "3.0.17" +# define OPENSSL_VERSION_STR "3.5.1" +# define OPENSSL_FULL_VERSION_STR "3.5.1" /* * SECTION 3: ADDITIONAL METADATA @@ -88,7 +88,7 @@ extern "C" { * SECTION 4: BACKWARD COMPATIBILITY */ -# define OPENSSL_VERSION_TEXT "OpenSSL 3.0.17 1 Jul 2025" +# define OPENSSL_VERSION_TEXT "OpenSSL 3.5.1 1 Jul 2025" /* Synthesize OPENSSL_VERSION_NUMBER with the layout 0xMNN00PPSL */ # ifdef OPENSSL_VERSION_PRE_RELEASE diff --git a/deps/openssl/config/archs/BSD-x86_64/asm_avx2/include/openssl/pkcs12.h b/deps/openssl/config/archs/BSD-x86_64/asm_avx2/include/openssl/pkcs12.h index c5e0cab06491ec..0809645dad0bbf 100644 --- a/deps/openssl/config/archs/BSD-x86_64/asm_avx2/include/openssl/pkcs12.h +++ b/deps/openssl/config/archs/BSD-x86_64/asm_avx2/include/openssl/pkcs12.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/pkcs12.h.in * - * Copyright 1999-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1999-2024 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -25,6 +25,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -41,6 +44,7 @@ extern "C" { # define PKCS12_MAC_KEY_LENGTH 20 +/* The macro is expected to be used only internally. Kept for backwards compatibility. */ # define PKCS12_SALT_LEN 8 /* It's not clear if these are actually needed... */ @@ -130,7 +134,9 @@ int PKCS12_SAFEBAG_get_bag_nid(const PKCS12_SAFEBAG *bag); const ASN1_TYPE *PKCS12_SAFEBAG_get0_bag_obj(const PKCS12_SAFEBAG *bag); const ASN1_OBJECT *PKCS12_SAFEBAG_get0_bag_type(const PKCS12_SAFEBAG *bag); +X509 *PKCS12_SAFEBAG_get1_cert_ex(const PKCS12_SAFEBAG *bag, OSSL_LIB_CTX *libctx, const char *propq); X509 *PKCS12_SAFEBAG_get1_cert(const PKCS12_SAFEBAG *bag); +X509_CRL *PKCS12_SAFEBAG_get1_crl_ex(const PKCS12_SAFEBAG *bag, OSSL_LIB_CTX *libctx, const char *propq); X509_CRL *PKCS12_SAFEBAG_get1_crl(const PKCS12_SAFEBAG *bag); const STACK_OF(PKCS12_SAFEBAG) * PKCS12_SAFEBAG_get0_safes(const PKCS12_SAFEBAG *bag); @@ -218,6 +224,7 @@ ASN1_TYPE *PKCS12_get_attr_gen(const STACK_OF(X509_ATTRIBUTE) *attrs, char *PKCS12_get_friendlyname(PKCS12_SAFEBAG *bag); const STACK_OF(X509_ATTRIBUTE) * PKCS12_SAFEBAG_get0_attrs(const PKCS12_SAFEBAG *bag); +void PKCS12_SAFEBAG_set0_attrs(PKCS12_SAFEBAG *bag, STACK_OF(X509_ATTRIBUTE) *attrs); unsigned char *PKCS12_pbe_crypt(const X509_ALGOR *algor, const char *pass, int passlen, const unsigned char *in, int inlen, @@ -285,6 +292,9 @@ int PKCS12_verify_mac(PKCS12 *p12, const char *pass, int passlen); int PKCS12_set_mac(PKCS12 *p12, const char *pass, int passlen, unsigned char *salt, int saltlen, int iter, const EVP_MD *md_type); +int PKCS12_set_pbmac1_pbkdf2(PKCS12 *p12, const char *pass, int passlen, + unsigned char *salt, int saltlen, int iter, + const EVP_MD *md_type, const char *prf_md_name); int PKCS12_setup_mac(PKCS12 *p12, int iter, unsigned char *salt, int saltlen, const EVP_MD *md_type); unsigned char *OPENSSL_asc2uni(const char *asc, int asclen, @@ -305,6 +315,7 @@ DECLARE_ASN1_ITEM(PKCS12_AUTHSAFES) void PKCS12_PBE_add(void); int PKCS12_parse(PKCS12 *p12, const char *pass, EVP_PKEY **pkey, X509 **cert, STACK_OF(X509) **ca); +typedef int PKCS12_create_cb(PKCS12_SAFEBAG *bag, void *cbarg); PKCS12 *PKCS12_create(const char *pass, const char *name, EVP_PKEY *pkey, X509 *cert, STACK_OF(X509) *ca, int nid_key, int nid_cert, int iter, int mac_iter, int keytype); @@ -312,6 +323,11 @@ PKCS12 *PKCS12_create_ex(const char *pass, const char *name, EVP_PKEY *pkey, X509 *cert, STACK_OF(X509) *ca, int nid_key, int nid_cert, int iter, int mac_iter, int keytype, OSSL_LIB_CTX *ctx, const char *propq); +PKCS12 *PKCS12_create_ex2(const char *pass, const char *name, EVP_PKEY *pkey, + X509 *cert, STACK_OF(X509) *ca, int nid_key, int nid_cert, + int iter, int mac_iter, int keytype, + OSSL_LIB_CTX *ctx, const char *propq, + PKCS12_create_cb *cb, void *cbarg); PKCS12_SAFEBAG *PKCS12_add_cert(STACK_OF(PKCS12_SAFEBAG) **pbags, X509 *cert); PKCS12_SAFEBAG *PKCS12_add_key(STACK_OF(PKCS12_SAFEBAG) **pbags, diff --git a/deps/openssl/config/archs/BSD-x86_64/asm_avx2/include/openssl/pkcs7.h b/deps/openssl/config/archs/BSD-x86_64/asm_avx2/include/openssl/pkcs7.h index 0ce79bf4fa160e..fa68462aff973b 100644 --- a/deps/openssl/config/archs/BSD-x86_64/asm_avx2/include/openssl/pkcs7.h +++ b/deps/openssl/config/archs/BSD-x86_64/asm_avx2/include/openssl/pkcs7.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/pkcs7.h.in * - * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -28,6 +28,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -131,8 +134,8 @@ SKM_DEFINE_STACK_OF_INTERNAL(PKCS7_RECIP_INFO, PKCS7_RECIP_INFO, PKCS7_RECIP_INF typedef struct pkcs7_signed_st { ASN1_INTEGER *version; /* version 1 */ STACK_OF(X509_ALGOR) *md_algs; /* md used */ - STACK_OF(X509) *cert; /* [ 0 ] */ - STACK_OF(X509_CRL) *crl; /* [ 1 ] */ + STACK_OF(X509) *cert; /* [ 0 ] */ /* name should be 'certificates' */ + STACK_OF(X509_CRL) *crl; /* [ 1 ] */ /* name should be 'crls' */ STACK_OF(PKCS7_SIGNER_INFO) *signer_info; struct pkcs7_st *contents; } PKCS7_SIGNED; @@ -158,8 +161,8 @@ typedef struct pkcs7_enveloped_st { typedef struct pkcs7_signedandenveloped_st { ASN1_INTEGER *version; /* version 1 */ STACK_OF(X509_ALGOR) *md_algs; /* md used */ - STACK_OF(X509) *cert; /* [ 0 ] */ - STACK_OF(X509_CRL) *crl; /* [ 1 ] */ + STACK_OF(X509) *cert; /* [ 0 ] */ /* name should be 'certificates' */ + STACK_OF(X509_CRL) *crl; /* [ 1 ] */ /* name should be 'crls' */ STACK_OF(PKCS7_SIGNER_INFO) *signer_info; PKCS7_ENC_CONTENT *enc_data; STACK_OF(PKCS7_RECIP_INFO) *recipientinfo; @@ -200,7 +203,7 @@ typedef struct pkcs7_st { /* NID_pkcs7_data */ ASN1_OCTET_STRING *data; /* NID_pkcs7_signed */ - PKCS7_SIGNED *sign; + PKCS7_SIGNED *sign; /* field name 'signed' would clash with C keyword */ /* NID_pkcs7_enveloped */ PKCS7_ENVELOPE *enveloped; /* NID_pkcs7_signedAndEnveloped */ @@ -341,13 +344,13 @@ int PKCS7_SIGNER_INFO_set(PKCS7_SIGNER_INFO *p7i, X509 *x509, EVP_PKEY *pkey, const EVP_MD *dgst); int PKCS7_SIGNER_INFO_sign(PKCS7_SIGNER_INFO *si); int PKCS7_add_signer(PKCS7 *p7, PKCS7_SIGNER_INFO *p7i); -int PKCS7_add_certificate(PKCS7 *p7, X509 *x509); -int PKCS7_add_crl(PKCS7 *p7, X509_CRL *x509); +int PKCS7_add_certificate(PKCS7 *p7, X509 *cert); +int PKCS7_add_crl(PKCS7 *p7, X509_CRL *crl); int PKCS7_content_new(PKCS7 *p7, int nid); int PKCS7_dataVerify(X509_STORE *cert_store, X509_STORE_CTX *ctx, BIO *bio, PKCS7 *p7, PKCS7_SIGNER_INFO *si); int PKCS7_signatureVerify(BIO *bio, PKCS7 *p7, PKCS7_SIGNER_INFO *si, - X509 *x509); + X509 *signer); BIO *PKCS7_dataInit(PKCS7 *p7, BIO *bio); int PKCS7_dataFinal(PKCS7 *p7, BIO *bio); diff --git a/deps/openssl/config/archs/BSD-x86_64/asm_avx2/include/openssl/ssl.h b/deps/openssl/config/archs/BSD-x86_64/asm_avx2/include/openssl/ssl.h index 3df725c56d6c5e..7e3d89c7ef3dc9 100644 --- a/deps/openssl/config/archs/BSD-x86_64/asm_avx2/include/openssl/ssl.h +++ b/deps/openssl/config/archs/BSD-x86_64/asm_avx2/include/openssl/ssl.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/ssl.h.in * - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved * Copyright 2005 Nokia. All rights reserved. * @@ -24,6 +24,7 @@ # endif # include +# include # include # include # include @@ -42,6 +43,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -231,10 +235,8 @@ typedef struct ssl_cipher_st SSL_CIPHER; typedef struct ssl_session_st SSL_SESSION; typedef struct tls_sigalgs_st TLS_SIGALGS; typedef struct ssl_conf_ctx_st SSL_CONF_CTX; -typedef struct ssl_comp_st SSL_COMP; STACK_OF(SSL_CIPHER); -STACK_OF(SSL_COMP); /* SRTP protection profiles for use with the use_srtp extension (RFC 5764)*/ typedef struct srtp_protection_profile_st { @@ -278,28 +280,31 @@ typedef int (*tls_session_secret_cb_fn)(SSL *s, void *secret, int *secret_len, /* Extension context codes */ /* This extension is only allowed in TLS */ -#define SSL_EXT_TLS_ONLY 0x0001 +#define SSL_EXT_TLS_ONLY 0x00001 /* This extension is only allowed in DTLS */ -#define SSL_EXT_DTLS_ONLY 0x0002 +#define SSL_EXT_DTLS_ONLY 0x00002 /* Some extensions may be allowed in DTLS but we don't implement them for it */ -#define SSL_EXT_TLS_IMPLEMENTATION_ONLY 0x0004 +#define SSL_EXT_TLS_IMPLEMENTATION_ONLY 0x00004 /* Most extensions are not defined for SSLv3 but EXT_TYPE_renegotiate is */ -#define SSL_EXT_SSL3_ALLOWED 0x0008 +#define SSL_EXT_SSL3_ALLOWED 0x00008 /* Extension is only defined for TLS1.2 and below */ -#define SSL_EXT_TLS1_2_AND_BELOW_ONLY 0x0010 +#define SSL_EXT_TLS1_2_AND_BELOW_ONLY 0x00010 /* Extension is only defined for TLS1.3 and above */ -#define SSL_EXT_TLS1_3_ONLY 0x0020 +#define SSL_EXT_TLS1_3_ONLY 0x00020 /* Ignore this extension during parsing if we are resuming */ -#define SSL_EXT_IGNORE_ON_RESUMPTION 0x0040 -#define SSL_EXT_CLIENT_HELLO 0x0080 +#define SSL_EXT_IGNORE_ON_RESUMPTION 0x00040 +#define SSL_EXT_CLIENT_HELLO 0x00080 /* Really means TLS1.2 or below */ -#define SSL_EXT_TLS1_2_SERVER_HELLO 0x0100 -#define SSL_EXT_TLS1_3_SERVER_HELLO 0x0200 -#define SSL_EXT_TLS1_3_ENCRYPTED_EXTENSIONS 0x0400 -#define SSL_EXT_TLS1_3_HELLO_RETRY_REQUEST 0x0800 -#define SSL_EXT_TLS1_3_CERTIFICATE 0x1000 -#define SSL_EXT_TLS1_3_NEW_SESSION_TICKET 0x2000 -#define SSL_EXT_TLS1_3_CERTIFICATE_REQUEST 0x4000 +#define SSL_EXT_TLS1_2_SERVER_HELLO 0x00100 +#define SSL_EXT_TLS1_3_SERVER_HELLO 0x00200 +#define SSL_EXT_TLS1_3_ENCRYPTED_EXTENSIONS 0x00400 +#define SSL_EXT_TLS1_3_HELLO_RETRY_REQUEST 0x00800 +#define SSL_EXT_TLS1_3_CERTIFICATE 0x01000 +#define SSL_EXT_TLS1_3_NEW_SESSION_TICKET 0x02000 +#define SSL_EXT_TLS1_3_CERTIFICATE_REQUEST 0x04000 +#define SSL_EXT_TLS1_3_CERTIFICATE_COMPRESSION 0x08000 +/* When sending a raw public key in a certificate message */ +#define SSL_EXT_TLS1_3_RAW_PUBLIC_KEY 0x10000 /* Typedefs for handling custom extensions */ @@ -404,7 +409,7 @@ typedef int (*SSL_async_callback_fn)(SSL *s, void *arg); */ # define SSL_OP_CIPHER_SERVER_PREFERENCE SSL_OP_BIT(22) /* - * If set, a server will allow a client to issue a SSLv3.0 version + * If set, a server will allow a client to issue an SSLv3.0 version * number as latest version supported in the premaster secret, even when * TLSv1.0 (version 3.1) was announced in the client hello. Normally * this is forbidden to prevent version rollback attacks. @@ -430,6 +435,19 @@ typedef int (*SSL_async_callback_fn)(SSL *s, void *arg); * interoperability with CryptoPro CSP 3.x */ # define SSL_OP_CRYPTOPRO_TLSEXT_BUG SSL_OP_BIT(31) +/* + * Disable RFC8879 certificate compression + * SSL_OP_NO_TX_CERTIFICATE_COMPRESSION: don't send compressed certificates, + * and ignore the extension when received. + * SSL_OP_NO_RX_CERTIFICATE_COMPRESSION: don't send the extension, and + * subsequently indicating that receiving is not supported + */ +# define SSL_OP_NO_TX_CERTIFICATE_COMPRESSION SSL_OP_BIT(32) +# define SSL_OP_NO_RX_CERTIFICATE_COMPRESSION SSL_OP_BIT(33) + /* Enable KTLS TX zerocopy on Linux */ +# define SSL_OP_ENABLE_KTLS_TX_ZEROCOPY_SENDFILE SSL_OP_BIT(34) + +#define SSL_OP_PREFER_NO_DHE_KEX SSL_OP_BIT(35) /* * Option "collections." @@ -574,6 +592,8 @@ typedef int (*SSL_async_callback_fn)(SSL *s, void *arg); # define CERT_PKEY_CERT_TYPE 0x400 /* Cert chain suitable to Suite B */ # define CERT_PKEY_SUITEB 0x800 +/* Cert pkey valid for raw public key use */ +# define CERT_PKEY_RPK 0x1000 # define SSL_CONF_FLAG_CMDLINE 0x1 # define SSL_CONF_FLAG_FILE 0x2 @@ -965,6 +985,7 @@ uint32_t SSL_get_recv_max_early_data(const SSL *s); # include /* This is mostly sslv3 with a few tweaks */ # include /* Datagram TLS */ # include /* Support for the use_srtp extension */ +# include #ifdef __cplusplus extern "C" { @@ -1000,32 +1021,6 @@ SKM_DEFINE_STACK_OF_INTERNAL(SSL_CIPHER, const SSL_CIPHER, SSL_CIPHER) #define sk_SSL_CIPHER_dup(sk) ((STACK_OF(SSL_CIPHER) *)OPENSSL_sk_dup(ossl_check_const_SSL_CIPHER_sk_type(sk))) #define sk_SSL_CIPHER_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(SSL_CIPHER) *)OPENSSL_sk_deep_copy(ossl_check_const_SSL_CIPHER_sk_type(sk), ossl_check_SSL_CIPHER_copyfunc_type(copyfunc), ossl_check_SSL_CIPHER_freefunc_type(freefunc))) #define sk_SSL_CIPHER_set_cmp_func(sk, cmp) ((sk_SSL_CIPHER_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_SSL_CIPHER_sk_type(sk), ossl_check_SSL_CIPHER_compfunc_type(cmp))) -SKM_DEFINE_STACK_OF_INTERNAL(SSL_COMP, SSL_COMP, SSL_COMP) -#define sk_SSL_COMP_num(sk) OPENSSL_sk_num(ossl_check_const_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_value(sk, idx) ((SSL_COMP *)OPENSSL_sk_value(ossl_check_const_SSL_COMP_sk_type(sk), (idx))) -#define sk_SSL_COMP_new(cmp) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new(ossl_check_SSL_COMP_compfunc_type(cmp))) -#define sk_SSL_COMP_new_null() ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new_null()) -#define sk_SSL_COMP_new_reserve(cmp, n) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new_reserve(ossl_check_SSL_COMP_compfunc_type(cmp), (n))) -#define sk_SSL_COMP_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_SSL_COMP_sk_type(sk), (n)) -#define sk_SSL_COMP_free(sk) OPENSSL_sk_free(ossl_check_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_zero(sk) OPENSSL_sk_zero(ossl_check_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_delete(sk, i) ((SSL_COMP *)OPENSSL_sk_delete(ossl_check_SSL_COMP_sk_type(sk), (i))) -#define sk_SSL_COMP_delete_ptr(sk, ptr) ((SSL_COMP *)OPENSSL_sk_delete_ptr(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr))) -#define sk_SSL_COMP_push(sk, ptr) OPENSSL_sk_push(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) -#define sk_SSL_COMP_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) -#define sk_SSL_COMP_pop(sk) ((SSL_COMP *)OPENSSL_sk_pop(ossl_check_SSL_COMP_sk_type(sk))) -#define sk_SSL_COMP_shift(sk) ((SSL_COMP *)OPENSSL_sk_shift(ossl_check_SSL_COMP_sk_type(sk))) -#define sk_SSL_COMP_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_SSL_COMP_sk_type(sk),ossl_check_SSL_COMP_freefunc_type(freefunc)) -#define sk_SSL_COMP_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr), (idx)) -#define sk_SSL_COMP_set(sk, idx, ptr) ((SSL_COMP *)OPENSSL_sk_set(ossl_check_SSL_COMP_sk_type(sk), (idx), ossl_check_SSL_COMP_type(ptr))) -#define sk_SSL_COMP_find(sk, ptr) OPENSSL_sk_find(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) -#define sk_SSL_COMP_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) -#define sk_SSL_COMP_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr), pnum) -#define sk_SSL_COMP_sort(sk) OPENSSL_sk_sort(ossl_check_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_dup(sk) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_dup(ossl_check_const_SSL_COMP_sk_type(sk))) -#define sk_SSL_COMP_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_deep_copy(ossl_check_const_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_copyfunc_type(copyfunc), ossl_check_SSL_COMP_freefunc_type(freefunc))) -#define sk_SSL_COMP_set_cmp_func(sk, cmp) ((sk_SSL_COMP_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_compfunc_type(cmp))) /* compatibility */ @@ -1066,6 +1061,7 @@ typedef enum { DTLS_ST_CR_HELLO_VERIFY_REQUEST, TLS_ST_CR_SRVR_HELLO, TLS_ST_CR_CERT, + TLS_ST_CR_COMP_CERT, TLS_ST_CR_CERT_STATUS, TLS_ST_CR_KEY_EXCH, TLS_ST_CR_CERT_REQ, @@ -1075,6 +1071,7 @@ typedef enum { TLS_ST_CR_FINISHED, TLS_ST_CW_CLNT_HELLO, TLS_ST_CW_CERT, + TLS_ST_CW_COMP_CERT, TLS_ST_CW_KEY_EXCH, TLS_ST_CW_CERT_VRFY, TLS_ST_CW_CHANGE, @@ -1085,10 +1082,12 @@ typedef enum { DTLS_ST_SW_HELLO_VERIFY_REQUEST, TLS_ST_SW_SRVR_HELLO, TLS_ST_SW_CERT, + TLS_ST_SW_COMP_CERT, TLS_ST_SW_KEY_EXCH, TLS_ST_SW_CERT_REQ, TLS_ST_SW_SRVR_DONE, TLS_ST_SR_CERT, + TLS_ST_SR_COMP_CERT, TLS_ST_SR_KEY_EXCH, TLS_ST_SR_CERT_VRFY, TLS_ST_SR_NEXT_PROTO, @@ -1380,9 +1379,13 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) # define SSL_CTRL_GET_SIGNATURE_NID 132 # define SSL_CTRL_GET_TMP_KEY 133 # define SSL_CTRL_GET_NEGOTIATED_GROUP 134 +# define SSL_CTRL_GET_IANA_GROUPS 135 # define SSL_CTRL_SET_RETRY_VERIFY 136 # define SSL_CTRL_GET_VERIFY_CERT_STORE 137 # define SSL_CTRL_GET_CHAIN_CERT_STORE 138 +# define SSL_CTRL_GET0_IMPLEMENTED_GROUPS 139 +# define SSL_CTRL_GET_SIGNATURE_NAME 140 +# define SSL_CTRL_GET_PEER_SIGNATURE_NAME 141 # define SSL_CERT_SET_FIRST 1 # define SSL_CERT_SET_NEXT 2 # define SSL_CERT_SET_SERVER 3 @@ -1485,10 +1488,15 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) # define SSL_get1_groups(s, glist) \ SSL_ctrl(s,SSL_CTRL_GET_GROUPS,0,(int*)(glist)) +# define SSL_get0_iana_groups(s, plst) \ + SSL_ctrl(s,SSL_CTRL_GET_IANA_GROUPS,0,(uint16_t **)(plst)) # define SSL_CTX_set1_groups(ctx, glist, glistlen) \ SSL_CTX_ctrl(ctx,SSL_CTRL_SET_GROUPS,glistlen,(int *)(glist)) # define SSL_CTX_set1_groups_list(ctx, s) \ SSL_CTX_ctrl(ctx,SSL_CTRL_SET_GROUPS_LIST,0,(char *)(s)) +# define SSL_CTX_get0_implemented_groups(ctx, all, out) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_GET0_IMPLEMENTED_GROUPS, all, \ + (STACK_OF(OPENSSL_CSTRING) *)(out)) # define SSL_set1_groups(s, glist, glistlen) \ SSL_ctrl(s,SSL_CTRL_SET_GROUPS,glistlen,(char *)(glist)) # define SSL_set1_groups_list(s, str) \ @@ -1520,8 +1528,12 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) (char *)(clist)) # define SSL_set1_client_certificate_types(s, clist, clistlen) \ SSL_ctrl(s,SSL_CTRL_SET_CLIENT_CERT_TYPES,clistlen,(char *)(clist)) +# define SSL_get0_signature_name(s, str) \ + SSL_ctrl(s,SSL_CTRL_GET_SIGNATURE_NAME,0,(1?(str):(const char **)NULL)) # define SSL_get_signature_nid(s, pn) \ SSL_ctrl(s,SSL_CTRL_GET_SIGNATURE_NID,0,pn) +# define SSL_get0_peer_signature_name(s, str) \ + SSL_ctrl(s,SSL_CTRL_GET_PEER_SIGNATURE_NAME,0,(1?(str):(const char **)NULL)) # define SSL_get_peer_signature_nid(s, pn) \ SSL_ctrl(s,SSL_CTRL_GET_PEER_SIGNATURE_NID,0,pn) # define SSL_get_peer_tmp_key(s, pk) \ @@ -1549,6 +1561,7 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) # define SSL_get_max_proto_version(s) \ SSL_ctrl(s, SSL_CTRL_GET_MAX_PROTO_VERSION, 0, NULL) +const char *SSL_get0_group_name(SSL *s); const char *SSL_group_to_name(SSL *s, int id); /* Backwards compatibility, original 1.1.0 names */ @@ -1613,7 +1626,11 @@ void SSL_CTX_set1_cert_store(SSL_CTX *, X509_STORE *); __owur int SSL_want(const SSL *s); __owur int SSL_clear(SSL *s); +#ifndef OPENSSL_NO_DEPRECATED_3_4 +OSSL_DEPRECATEDIN_3_4_FOR("not Y2038-safe, replace with SSL_CTX_flush_sessions_ex()") void SSL_CTX_flush_sessions(SSL_CTX *ctx, long tm); +#endif +void SSL_CTX_flush_sessions_ex(SSL_CTX *ctx, time_t tm); __owur const SSL_CIPHER *SSL_get_current_cipher(const SSL *s); __owur const SSL_CIPHER *SSL_get_pending_cipher(const SSL *s); @@ -1725,13 +1742,21 @@ __owur const char *SSL_state_string(const SSL *s); __owur const char *SSL_rstate_string(const SSL *s); __owur const char *SSL_state_string_long(const SSL *s); __owur const char *SSL_rstate_string_long(const SSL *s); + +#ifndef OPENSSL_NO_DEPRECATED_3_4 +OSSL_DEPRECATEDIN_3_4_FOR("not Y2038-safe, replace with SSL_SESSION_get_time_ex()") __owur long SSL_SESSION_get_time(const SSL_SESSION *s); +OSSL_DEPRECATEDIN_3_4_FOR("not Y2038-safe, replace with SSL_SESSION_set_time_ex()") __owur long SSL_SESSION_set_time(SSL_SESSION *s, long t); +#endif __owur long SSL_SESSION_get_timeout(const SSL_SESSION *s); __owur long SSL_SESSION_set_timeout(SSL_SESSION *s, long t); __owur int SSL_SESSION_get_protocol_version(const SSL_SESSION *s); __owur int SSL_SESSION_set_protocol_version(SSL_SESSION *s, int version); +__owur time_t SSL_SESSION_get_time_ex(const SSL_SESSION *s); +__owur time_t SSL_SESSION_set_time_ex(SSL_SESSION *s, time_t t); + __owur const char *SSL_SESSION_get0_hostname(const SSL_SESSION *s); __owur int SSL_SESSION_set1_hostname(SSL_SESSION *s, const char *hostname); void SSL_SESSION_get0_alpn_selected(const SSL_SESSION *s, @@ -1783,6 +1808,9 @@ __owur int SSL_has_matching_session_id(const SSL *s, unsigned int id_len); SSL_SESSION *d2i_SSL_SESSION(SSL_SESSION **a, const unsigned char **pp, long length); +SSL_SESSION *d2i_SSL_SESSION_ex(SSL_SESSION **a, const unsigned char **pp, + long length, OSSL_LIB_CTX *libctx, + const char *propq); # ifdef OPENSSL_X509_H __owur X509 *SSL_get0_peer_certificate(const SSL *s); @@ -1840,6 +1868,8 @@ __owur int SSL_CTX_set_session_id_context(SSL_CTX *ctx, SSL *SSL_new(SSL_CTX *ctx); int SSL_up_ref(SSL *s); int SSL_is_dtls(const SSL *s); +int SSL_is_tls(const SSL *s); +int SSL_is_quic(const SSL *s); __owur int SSL_set_session_id_context(SSL *ssl, const unsigned char *sid_ctx, unsigned int sid_ctx_len); @@ -1848,8 +1878,8 @@ __owur int SSL_set_purpose(SSL *ssl, int purpose); __owur int SSL_CTX_set_trust(SSL_CTX *ctx, int trust); __owur int SSL_set_trust(SSL *ssl, int trust); -__owur int SSL_set1_host(SSL *s, const char *hostname); -__owur int SSL_add1_host(SSL *s, const char *hostname); +__owur int SSL_set1_host(SSL *s, const char *host); +__owur int SSL_add1_host(SSL *s, const char *host); __owur const char *SSL_get0_peername(SSL *s); void SSL_set_hostflags(SSL *s, unsigned int flags); @@ -1924,6 +1954,11 @@ OSSL_DEPRECATEDIN_3_0 __owur char *SSL_get_srp_userinfo(SSL *s); typedef int (*SSL_client_hello_cb_fn) (SSL *s, int *al, void *arg); void SSL_CTX_set_client_hello_cb(SSL_CTX *c, SSL_client_hello_cb_fn cb, void *arg); +typedef int (*SSL_new_pending_conn_cb_fn) (SSL_CTX *ctx, SSL *new_ssl, + void *arg); +void SSL_CTX_set_new_pending_conn_cb(SSL_CTX *c, SSL_new_pending_conn_cb_fn cb, + void *arg); + int SSL_client_hello_isv2(SSL *s); unsigned int SSL_client_hello_get0_legacy_version(SSL *s); size_t SSL_client_hello_get0_random(SSL *s, const unsigned char **out); @@ -1932,6 +1967,8 @@ size_t SSL_client_hello_get0_ciphers(SSL *s, const unsigned char **out); size_t SSL_client_hello_get0_compression_methods(SSL *s, const unsigned char **out); int SSL_client_hello_get1_extensions_present(SSL *s, int **out, size_t *outlen); +int SSL_client_hello_get_extension_order(SSL *s, uint16_t *exts, + size_t *num_exts); int SSL_client_hello_get0_ext(SSL *s, unsigned int type, const unsigned char **out, size_t *outlen); @@ -1978,6 +2015,12 @@ long SSL_callback_ctrl(SSL *, int, void (*)(void)); long SSL_CTX_ctrl(SSL_CTX *ctx, int cmd, long larg, void *parg); long SSL_CTX_callback_ctrl(SSL_CTX *, int, void (*)(void)); +# define SSL_WRITE_FLAG_CONCLUDE (1U << 0) + +__owur int SSL_write_ex2(SSL *s, const void *buf, size_t num, + uint64_t flags, + size_t *written); + # define SSL_EARLY_DATA_NOT_SENT 0 # define SSL_EARLY_DATA_REJECTED 1 # define SSL_EARLY_DATA_ACCEPTED 2 @@ -1986,6 +2029,7 @@ __owur int SSL_get_early_data_status(const SSL *s); __owur int SSL_get_error(const SSL *s, int ret_code); __owur const char *SSL_get_version(const SSL *s); +__owur int SSL_get_handshake_rtt(const SSL *s, uint64_t *rtt); /* This sets the 'default' SSL version that SSL_new() will create */ # ifndef OPENSSL_NO_DEPRECATED_3_0 @@ -2281,6 +2325,8 @@ void SSL_CTX_set_record_padding_callback(SSL_CTX *ctx, void SSL_CTX_set_record_padding_callback_arg(SSL_CTX *ctx, void *arg); void *SSL_CTX_get_record_padding_callback_arg(const SSL_CTX *ctx); int SSL_CTX_set_block_padding(SSL_CTX *ctx, size_t block_size); +int SSL_CTX_set_block_padding_ex(SSL_CTX *ctx, size_t app_block_size, + size_t hs_block_size); int SSL_set_record_padding_callback(SSL *ssl, size_t (*cb) (SSL *ssl, int type, @@ -2288,12 +2334,255 @@ int SSL_set_record_padding_callback(SSL *ssl, void SSL_set_record_padding_callback_arg(SSL *ssl, void *arg); void *SSL_get_record_padding_callback_arg(const SSL *ssl); int SSL_set_block_padding(SSL *ssl, size_t block_size); - +int SSL_set_block_padding_ex(SSL *ssl, size_t app_block_size, + size_t hs_block_size); int SSL_set_num_tickets(SSL *s, size_t num_tickets); size_t SSL_get_num_tickets(const SSL *s); int SSL_CTX_set_num_tickets(SSL_CTX *ctx, size_t num_tickets); size_t SSL_CTX_get_num_tickets(const SSL_CTX *ctx); +/* QUIC support */ +int SSL_handle_events(SSL *s); +__owur int SSL_get_event_timeout(SSL *s, struct timeval *tv, int *is_infinite); +__owur int SSL_get_rpoll_descriptor(SSL *s, BIO_POLL_DESCRIPTOR *desc); +__owur int SSL_get_wpoll_descriptor(SSL *s, BIO_POLL_DESCRIPTOR *desc); +__owur int SSL_net_read_desired(SSL *s); +__owur int SSL_net_write_desired(SSL *s); +__owur int SSL_set_blocking_mode(SSL *s, int blocking); +__owur int SSL_get_blocking_mode(SSL *s); +__owur int SSL_set1_initial_peer_addr(SSL *s, const BIO_ADDR *peer_addr); +__owur SSL *SSL_get0_connection(SSL *s); +__owur int SSL_is_connection(SSL *s); + +__owur int SSL_is_listener(SSL *ssl); +__owur SSL *SSL_get0_listener(SSL *s); +#define SSL_LISTENER_FLAG_NO_VALIDATE (1UL << 1) +__owur SSL *SSL_new_listener(SSL_CTX *ctx, uint64_t flags); +__owur SSL *SSL_new_listener_from(SSL *ssl, uint64_t flags); +__owur SSL *SSL_new_from_listener(SSL *ssl, uint64_t flags); +#define SSL_ACCEPT_CONNECTION_NO_BLOCK (1UL << 0) +__owur SSL *SSL_accept_connection(SSL *ssl, uint64_t flags); +__owur size_t SSL_get_accept_connection_queue_len(SSL *ssl); +__owur int SSL_listen(SSL *ssl); + +__owur int SSL_is_domain(SSL *s); +__owur SSL *SSL_get0_domain(SSL *s); +__owur SSL *SSL_new_domain(SSL_CTX *ctx, uint64_t flags); + +#define SSL_DOMAIN_FLAG_SINGLE_THREAD (1U << 0) +#define SSL_DOMAIN_FLAG_MULTI_THREAD (1U << 1) +#define SSL_DOMAIN_FLAG_THREAD_ASSISTED (1U << 2) +#define SSL_DOMAIN_FLAG_BLOCKING (1U << 3) +#define SSL_DOMAIN_FLAG_LEGACY_BLOCKING (1U << 4) + +__owur int SSL_CTX_set_domain_flags(SSL_CTX *ctx, uint64_t domain_flags); +__owur int SSL_CTX_get_domain_flags(const SSL_CTX *ctx, uint64_t *domain_flags); +__owur int SSL_get_domain_flags(const SSL *ssl, uint64_t *domain_flags); + +#define SSL_STREAM_TYPE_NONE 0 +#define SSL_STREAM_TYPE_READ (1U << 0) +#define SSL_STREAM_TYPE_WRITE (1U << 1) +#define SSL_STREAM_TYPE_BIDI (SSL_STREAM_TYPE_READ | SSL_STREAM_TYPE_WRITE) +__owur int SSL_get_stream_type(SSL *s); + +__owur uint64_t SSL_get_stream_id(SSL *s); +__owur int SSL_is_stream_local(SSL *s); + +#define SSL_DEFAULT_STREAM_MODE_NONE 0 +#define SSL_DEFAULT_STREAM_MODE_AUTO_BIDI 1 +#define SSL_DEFAULT_STREAM_MODE_AUTO_UNI 2 +__owur int SSL_set_default_stream_mode(SSL *s, uint32_t mode); + +#define SSL_STREAM_FLAG_UNI (1U << 0) +#define SSL_STREAM_FLAG_NO_BLOCK (1U << 1) +#define SSL_STREAM_FLAG_ADVANCE (1U << 2) +__owur SSL *SSL_new_stream(SSL *s, uint64_t flags); + +#define SSL_INCOMING_STREAM_POLICY_AUTO 0 +#define SSL_INCOMING_STREAM_POLICY_ACCEPT 1 +#define SSL_INCOMING_STREAM_POLICY_REJECT 2 +__owur int SSL_set_incoming_stream_policy(SSL *s, int policy, uint64_t aec); + +#define SSL_ACCEPT_STREAM_NO_BLOCK (1U << 0) +__owur SSL *SSL_accept_stream(SSL *s, uint64_t flags); +__owur size_t SSL_get_accept_stream_queue_len(SSL *s); + +# ifndef OPENSSL_NO_QUIC +__owur int SSL_inject_net_dgram(SSL *s, const unsigned char *buf, + size_t buf_len, + const BIO_ADDR *peer, + const BIO_ADDR *local); +# endif + +typedef struct ssl_shutdown_ex_args_st { + uint64_t quic_error_code; + const char *quic_reason; +} SSL_SHUTDOWN_EX_ARGS; + +#define SSL_SHUTDOWN_FLAG_RAPID (1U << 0) +#define SSL_SHUTDOWN_FLAG_NO_STREAM_FLUSH (1U << 1) +#define SSL_SHUTDOWN_FLAG_NO_BLOCK (1U << 2) +#define SSL_SHUTDOWN_FLAG_WAIT_PEER (1U << 3) + +__owur int SSL_shutdown_ex(SSL *ssl, uint64_t flags, + const SSL_SHUTDOWN_EX_ARGS *args, + size_t args_len); + +__owur int SSL_stream_conclude(SSL *ssl, uint64_t flags); + +typedef struct ssl_stream_reset_args_st { + uint64_t quic_error_code; +} SSL_STREAM_RESET_ARGS; + +__owur int SSL_stream_reset(SSL *ssl, + const SSL_STREAM_RESET_ARGS *args, + size_t args_len); + +#define SSL_STREAM_STATE_NONE 0 +#define SSL_STREAM_STATE_OK 1 +#define SSL_STREAM_STATE_WRONG_DIR 2 +#define SSL_STREAM_STATE_FINISHED 3 +#define SSL_STREAM_STATE_RESET_LOCAL 4 +#define SSL_STREAM_STATE_RESET_REMOTE 5 +#define SSL_STREAM_STATE_CONN_CLOSED 6 +__owur int SSL_get_stream_read_state(SSL *ssl); +__owur int SSL_get_stream_write_state(SSL *ssl); + +__owur int SSL_get_stream_read_error_code(SSL *ssl, uint64_t *app_error_code); +__owur int SSL_get_stream_write_error_code(SSL *ssl, uint64_t *app_error_code); + +#define SSL_CONN_CLOSE_FLAG_LOCAL (1U << 0) +#define SSL_CONN_CLOSE_FLAG_TRANSPORT (1U << 1) + +typedef struct ssl_conn_close_info_st { + uint64_t error_code, frame_type; + const char *reason; + size_t reason_len; + uint32_t flags; +} SSL_CONN_CLOSE_INFO; + +__owur int SSL_get_conn_close_info(SSL *ssl, + SSL_CONN_CLOSE_INFO *info, + size_t info_len); + +# define SSL_VALUE_CLASS_GENERIC 0 +# define SSL_VALUE_CLASS_FEATURE_REQUEST 1 +# define SSL_VALUE_CLASS_FEATURE_PEER_REQUEST 2 +# define SSL_VALUE_CLASS_FEATURE_NEGOTIATED 3 + +# define SSL_VALUE_NONE 0 +# define SSL_VALUE_QUIC_STREAM_BIDI_LOCAL_AVAIL 1 +# define SSL_VALUE_QUIC_STREAM_BIDI_REMOTE_AVAIL 2 +# define SSL_VALUE_QUIC_STREAM_UNI_LOCAL_AVAIL 3 +# define SSL_VALUE_QUIC_STREAM_UNI_REMOTE_AVAIL 4 +# define SSL_VALUE_QUIC_IDLE_TIMEOUT 5 +# define SSL_VALUE_EVENT_HANDLING_MODE 6 +# define SSL_VALUE_STREAM_WRITE_BUF_SIZE 7 +# define SSL_VALUE_STREAM_WRITE_BUF_USED 8 +# define SSL_VALUE_STREAM_WRITE_BUF_AVAIL 9 + +# define SSL_VALUE_EVENT_HANDLING_MODE_INHERIT 0 +# define SSL_VALUE_EVENT_HANDLING_MODE_IMPLICIT 1 +# define SSL_VALUE_EVENT_HANDLING_MODE_EXPLICIT 2 + +int SSL_get_value_uint(SSL *s, uint32_t class_, uint32_t id, uint64_t *v); +int SSL_set_value_uint(SSL *s, uint32_t class_, uint32_t id, uint64_t v); + +# define SSL_get_generic_value_uint(ssl, id, v) \ + SSL_get_value_uint((ssl), SSL_VALUE_CLASS_GENERIC, (id), (v)) +# define SSL_set_generic_value_uint(ssl, id, v) \ + SSL_set_value_uint((ssl), SSL_VALUE_CLASS_GENERIC, (id), (v)) +# define SSL_get_feature_request_uint(ssl, id, v) \ + SSL_get_value_uint((ssl), SSL_VALUE_CLASS_FEATURE_REQUEST, (id), (v)) +# define SSL_set_feature_request_uint(ssl, id, v) \ + SSL_set_value_uint((ssl), SSL_VALUE_CLASS_FEATURE_REQUEST, (id), (v)) +# define SSL_get_feature_peer_request_uint(ssl, id, v) \ + SSL_get_value_uint((ssl), SSL_VALUE_CLASS_FEATURE_PEER_REQUEST, (id), (v)) +# define SSL_get_feature_negotiated_uint(ssl, id, v) \ + SSL_get_value_uint((ssl), SSL_VALUE_CLASS_FEATURE_NEGOTIATED, (id), (v)) + +# define SSL_get_quic_stream_bidi_local_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_QUIC_STREAM_BIDI_LOCAL_AVAIL, \ + (value)) +# define SSL_get_quic_stream_bidi_remote_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_QUIC_STREAM_BIDI_REMOTE_AVAIL, \ + (value)) +# define SSL_get_quic_stream_uni_local_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_QUIC_STREAM_UNI_LOCAL_AVAIL, \ + (value)) +# define SSL_get_quic_stream_uni_remote_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_QUIC_STREAM_UNI_REMOTE_AVAIL, \ + (value)) + +# define SSL_get_event_handling_mode(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_EVENT_HANDLING_MODE, \ + (value)) +# define SSL_set_event_handling_mode(ssl, value) \ + SSL_set_generic_value_uint((ssl), SSL_VALUE_EVENT_HANDLING_MODE, \ + (value)) + +# define SSL_get_stream_write_buf_size(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_STREAM_WRITE_BUF_SIZE, \ + (value)) +# define SSL_get_stream_write_buf_used(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_STREAM_WRITE_BUF_USED, \ + (value)) +# define SSL_get_stream_write_buf_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_STREAM_WRITE_BUF_AVAIL, \ + (value)) + +# define SSL_POLL_EVENT_NONE 0 + +# define SSL_POLL_EVENT_F (1U << 0) /* F (Failure) */ +# define SSL_POLL_EVENT_EL (1U << 1) /* EL (Exception on Listener) */ +# define SSL_POLL_EVENT_EC (1U << 2) /* EC (Exception on Conn) */ +# define SSL_POLL_EVENT_ECD (1U << 3) /* ECD (Exception on Conn Drained) */ +# define SSL_POLL_EVENT_ER (1U << 4) /* ER (Exception on Read) */ +# define SSL_POLL_EVENT_EW (1U << 5) /* EW (Exception on Write) */ +# define SSL_POLL_EVENT_R (1U << 6) /* R (Readable) */ +# define SSL_POLL_EVENT_W (1U << 7) /* W (Writable) */ +# define SSL_POLL_EVENT_IC (1U << 8) /* IC (Incoming Connection) */ +# define SSL_POLL_EVENT_ISB (1U << 9) /* ISB (Incoming Stream: Bidi) */ +# define SSL_POLL_EVENT_ISU (1U << 10) /* ISU (Incoming Stream: Uni) */ +# define SSL_POLL_EVENT_OSB (1U << 11) /* OSB (Outgoing Stream: Bidi) */ +# define SSL_POLL_EVENT_OSU (1U << 12) /* OSU (Outgoing Stream: Uni) */ + +# define SSL_POLL_EVENT_RW (SSL_POLL_EVENT_R | SSL_POLL_EVENT_W) +# define SSL_POLL_EVENT_RE (SSL_POLL_EVENT_R | SSL_POLL_EVENT_ER) +# define SSL_POLL_EVENT_WE (SSL_POLL_EVENT_W | SSL_POLL_EVENT_EW) +# define SSL_POLL_EVENT_RWE (SSL_POLL_EVENT_RE | SSL_POLL_EVENT_WE) +# define SSL_POLL_EVENT_E (SSL_POLL_EVENT_EL | SSL_POLL_EVENT_EC \ + | SSL_POLL_EVENT_ER | SSL_POLL_EVENT_EW) +# define SSL_POLL_EVENT_IS (SSL_POLL_EVENT_ISB | SSL_POLL_EVENT_ISU) +# define SSL_POLL_EVENT_ISE (SSL_POLL_EVENT_IS | SSL_POLL_EVENT_EC) +# define SSL_POLL_EVENT_I (SSL_POLL_EVENT_IS | SSL_POLL_EVENT_IC) +# define SSL_POLL_EVENT_OS (SSL_POLL_EVENT_OSB | SSL_POLL_EVENT_OSU) +# define SSL_POLL_EVENT_OSE (SSL_POLL_EVENT_OS | SSL_POLL_EVENT_EC) + +typedef struct ssl_poll_item_st { + BIO_POLL_DESCRIPTOR desc; + uint64_t events, revents; +} SSL_POLL_ITEM; + +# define SSL_POLL_FLAG_NO_HANDLE_EVENTS (1U << 0) + +__owur int SSL_poll(SSL_POLL_ITEM *items, + size_t num_items, + size_t stride, + const struct timeval *timeout, + uint64_t flags, + size_t *result_count); + +static ossl_inline ossl_unused BIO_POLL_DESCRIPTOR +SSL_as_poll_descriptor(SSL *s) +{ + BIO_POLL_DESCRIPTOR d; + + d.type = BIO_POLL_DESCRIPTOR_TYPE_SSL; + d.value.ssl = s; + return d; +} + # ifndef OPENSSL_NO_DEPRECATED_1_1_0 # define SSL_cache_hit(s) SSL_session_reused(s) # endif @@ -2593,6 +2882,51 @@ void SSL_set_allow_early_data_cb(SSL *s, const char *OSSL_default_cipher_list(void); const char *OSSL_default_ciphersuites(void); +/* RFC8879 Certificate compression APIs */ + +int SSL_CTX_compress_certs(SSL_CTX *ctx, int alg); +int SSL_compress_certs(SSL *ssl, int alg); + +int SSL_CTX_set1_cert_comp_preference(SSL_CTX *ctx, int *algs, size_t len); +int SSL_set1_cert_comp_preference(SSL *ssl, int *algs, size_t len); + +int SSL_CTX_set1_compressed_cert(SSL_CTX *ctx, int algorithm, unsigned char *comp_data, + size_t comp_length, size_t orig_length); +int SSL_set1_compressed_cert(SSL *ssl, int algorithm, unsigned char *comp_data, + size_t comp_length, size_t orig_length); +size_t SSL_CTX_get1_compressed_cert(SSL_CTX *ctx, int alg, unsigned char **data, size_t *orig_len); +size_t SSL_get1_compressed_cert(SSL *ssl, int alg, unsigned char **data, size_t *orig_len); + +__owur int SSL_add_expected_rpk(SSL *s, EVP_PKEY *rpk); +__owur EVP_PKEY *SSL_get0_peer_rpk(const SSL *s); +__owur EVP_PKEY *SSL_SESSION_get0_peer_rpk(SSL_SESSION *s); +__owur int SSL_get_negotiated_client_cert_type(const SSL *s); +__owur int SSL_get_negotiated_server_cert_type(const SSL *s); + +__owur int SSL_set1_client_cert_type(SSL *s, const unsigned char *val, size_t len); +__owur int SSL_set1_server_cert_type(SSL *s, const unsigned char *val, size_t len); +__owur int SSL_CTX_set1_client_cert_type(SSL_CTX *ctx, const unsigned char *val, size_t len); +__owur int SSL_CTX_set1_server_cert_type(SSL_CTX *ctx, const unsigned char *val, size_t len); +__owur int SSL_get0_client_cert_type(const SSL *s, unsigned char **t, size_t *len); +__owur int SSL_get0_server_cert_type(const SSL *s, unsigned char **t, size_t *len); +__owur int SSL_CTX_get0_client_cert_type(const SSL_CTX *ctx, unsigned char **t, size_t *len); +__owur int SSL_CTX_get0_server_cert_type(const SSL_CTX *s, unsigned char **t, size_t *len); + +/* + * Protection level. For <= TLSv1.2 only "NONE" and "APPLICATION" are used. + */ +# define OSSL_RECORD_PROTECTION_LEVEL_NONE 0 +# define OSSL_RECORD_PROTECTION_LEVEL_EARLY 1 +# define OSSL_RECORD_PROTECTION_LEVEL_HANDSHAKE 2 +# define OSSL_RECORD_PROTECTION_LEVEL_APPLICATION 3 + +int SSL_set_quic_tls_cbs(SSL *s, const OSSL_DISPATCH *qtdis, void *arg); +int SSL_set_quic_tls_transport_params(SSL *s, + const unsigned char *params, + size_t params_len); + +int SSL_set_quic_tls_early_data_enabled(SSL *s, int enabled); + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/BSD-x86_64/asm_avx2/include/openssl/x509.h b/deps/openssl/config/archs/BSD-x86_64/asm_avx2/include/openssl/x509.h index 1f7755e5b69c75..d013458c226461 100644 --- a/deps/openssl/config/archs/BSD-x86_64/asm_avx2/include/openssl/x509.h +++ b/deps/openssl/config/archs/BSD-x86_64/asm_avx2/include/openssl/x509.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/x509.h.in * - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2024 The OpenSSL Project Authors. All Rights Reserved. * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved * * Licensed under the Apache License 2.0 (the "License"). You may not use @@ -40,6 +40,9 @@ # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -162,16 +165,24 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_CRL, X509_CRL, X509_CRL) # define X509_FILETYPE_ASN1 2 # define X509_FILETYPE_DEFAULT 3 -# define X509v3_KU_DIGITAL_SIGNATURE 0x0080 -# define X509v3_KU_NON_REPUDIATION 0x0040 -# define X509v3_KU_KEY_ENCIPHERMENT 0x0020 -# define X509v3_KU_DATA_ENCIPHERMENT 0x0010 -# define X509v3_KU_KEY_AGREEMENT 0x0008 -# define X509v3_KU_KEY_CERT_SIGN 0x0004 -# define X509v3_KU_CRL_SIGN 0x0002 -# define X509v3_KU_ENCIPHER_ONLY 0x0001 -# define X509v3_KU_DECIPHER_ONLY 0x8000 -# define X509v3_KU_UNDEF 0xffff +/*- + * : + * The KeyUsage BITSTRING is treated as a little-endian integer, hence bit `0` + * is 0x80, while bit `7` is 0x01 (the LSB of the integer value), bit `8` is + * then the MSB of the second octet, or 0x8000. + */ +# define X509v3_KU_DIGITAL_SIGNATURE 0x0080 /* (0) */ +# define X509v3_KU_NON_REPUDIATION 0x0040 /* (1) */ +# define X509v3_KU_KEY_ENCIPHERMENT 0x0020 /* (2) */ +# define X509v3_KU_DATA_ENCIPHERMENT 0x0010 /* (3) */ +# define X509v3_KU_KEY_AGREEMENT 0x0008 /* (4) */ +# define X509v3_KU_KEY_CERT_SIGN 0x0004 /* (5) */ +# define X509v3_KU_CRL_SIGN 0x0002 /* (6) */ +# define X509v3_KU_ENCIPHER_ONLY 0x0001 /* (7) */ +# define X509v3_KU_DECIPHER_ONLY 0x8000 /* (8) */ +# ifndef OPENSSL_NO_DEPRECATED_3_4 +# define X509v3_KU_UNDEF 0xffff /* vestigial, not used */ +# endif struct X509_algor_st { ASN1_OBJECT *algorithm; @@ -462,7 +473,12 @@ typedef struct PBKDF2PARAM_st { X509_ALGOR *prf; } PBKDF2PARAM; -#ifndef OPENSSL_NO_SCRYPT +typedef struct { + X509_ALGOR *keyDerivationFunc; + X509_ALGOR *messageAuthScheme; +} PBMAC1PARAM; + +# ifndef OPENSSL_NO_SCRYPT typedef struct SCRYPT_PARAMS_st { ASN1_OCTET_STRING *salt; ASN1_INTEGER *costParameter; @@ -470,7 +486,7 @@ typedef struct SCRYPT_PARAMS_st { ASN1_INTEGER *parallelizationParameter; ASN1_INTEGER *keyLength; } SCRYPT_PARAMS; -#endif +# endif #ifdef __cplusplus } @@ -603,6 +619,8 @@ EVP_PKEY *d2i_PrivateKey_ex_fp(FILE *fp, EVP_PKEY **a, OSSL_LIB_CTX *libctx, const char *propq); EVP_PKEY *d2i_PrivateKey_fp(FILE *fp, EVP_PKEY **a); int i2d_PUBKEY_fp(FILE *fp, const EVP_PKEY *pkey); +EVP_PKEY *d2i_PUBKEY_ex_fp(FILE *fp, EVP_PKEY **a, OSSL_LIB_CTX *libctx, + const char *propq); EVP_PKEY *d2i_PUBKEY_fp(FILE *fp, EVP_PKEY **a); # endif @@ -651,6 +669,8 @@ EVP_PKEY *d2i_PrivateKey_ex_bio(BIO *bp, EVP_PKEY **a, OSSL_LIB_CTX *libctx, const char *propq); EVP_PKEY *d2i_PrivateKey_bio(BIO *bp, EVP_PKEY **a); int i2d_PUBKEY_bio(BIO *bp, const EVP_PKEY *pkey); +EVP_PKEY *d2i_PUBKEY_ex_bio(BIO *bp, EVP_PKEY **a, OSSL_LIB_CTX *libctx, + const char *propq); EVP_PKEY *d2i_PUBKEY_bio(BIO *bp, EVP_PKEY **a); DECLARE_ASN1_DUP_FUNCTION(X509) @@ -884,12 +904,12 @@ int X509_REQ_get_signature_nid(const X509_REQ *req); int i2d_re_X509_REQ_tbs(X509_REQ *req, unsigned char **pp); int X509_REQ_set_pubkey(X509_REQ *x, EVP_PKEY *pkey); EVP_PKEY *X509_REQ_get_pubkey(X509_REQ *req); -EVP_PKEY *X509_REQ_get0_pubkey(X509_REQ *req); +EVP_PKEY *X509_REQ_get0_pubkey(const X509_REQ *req); X509_PUBKEY *X509_REQ_get_X509_PUBKEY(X509_REQ *req); int X509_REQ_extension_nid(int nid); int *X509_REQ_get_extension_nids(void); void X509_REQ_set_extension_nids(int *nids); -STACK_OF(X509_EXTENSION) *X509_REQ_get_extensions(X509_REQ *req); +STACK_OF(X509_EXTENSION) *X509_REQ_get_extensions(OSSL_FUTURE_CONST X509_REQ *req); int X509_REQ_add_extensions_nid(X509_REQ *req, const STACK_OF(X509_EXTENSION) *exts, int nid); int X509_REQ_add_extensions(X509_REQ *req, const STACK_OF(X509_EXTENSION) *ext); @@ -950,13 +970,14 @@ X509_REVOKED_get0_extensions(const X509_REVOKED *r); X509_CRL *X509_CRL_diff(X509_CRL *base, X509_CRL *newer, EVP_PKEY *skey, const EVP_MD *md, unsigned int flags); -int X509_REQ_check_private_key(X509_REQ *x509, EVP_PKEY *pkey); +int X509_REQ_check_private_key(const X509_REQ *req, EVP_PKEY *pkey); -int X509_check_private_key(const X509 *x509, const EVP_PKEY *pkey); +int X509_check_private_key(const X509 *cert, const EVP_PKEY *pkey); int X509_chain_check_suiteb(int *perror_depth, X509 *x, STACK_OF(X509) *chain, unsigned long flags); int X509_CRL_check_suiteb(X509_CRL *crl, EVP_PKEY *pk, unsigned long flags); +void OSSL_STACK_OF_X509_free(STACK_OF(X509) *certs); STACK_OF(X509) *X509_chain_up_ref(STACK_OF(X509) *chain); int X509_issuer_and_serial_cmp(const X509 *a, const X509 *b); @@ -1077,6 +1098,8 @@ X509_EXTENSION *X509v3_get_ext(const STACK_OF(X509_EXTENSION) *x, int loc); X509_EXTENSION *X509v3_delete_ext(STACK_OF(X509_EXTENSION) *x, int loc); STACK_OF(X509_EXTENSION) *X509v3_add_ext(STACK_OF(X509_EXTENSION) **x, X509_EXTENSION *ex, int loc); +STACK_OF(X509_EXTENSION) *X509v3_add_extensions(STACK_OF(X509_EXTENSION) **target, + const STACK_OF(X509_EXTENSION) *exts); int X509_get_ext_count(const X509 *x); int X509_get_ext_by_NID(const X509 *x, int nid, int lastpos); @@ -1198,9 +1221,10 @@ X509 *X509_find_by_subject(STACK_OF(X509) *sk, const X509_NAME *name); DECLARE_ASN1_FUNCTIONS(PBEPARAM) DECLARE_ASN1_FUNCTIONS(PBE2PARAM) DECLARE_ASN1_FUNCTIONS(PBKDF2PARAM) -#ifndef OPENSSL_NO_SCRYPT +DECLARE_ASN1_FUNCTIONS(PBMAC1PARAM) +# ifndef OPENSSL_NO_SCRYPT DECLARE_ASN1_FUNCTIONS(SCRYPT_PARAMS) -#endif +# endif int PKCS5_pbe_set0_algor(X509_ALGOR *algor, int alg, int iter, const unsigned char *salt, int saltlen); @@ -1237,6 +1261,7 @@ X509_ALGOR *PKCS5_pbkdf2_set_ex(int iter, unsigned char *salt, int saltlen, int prf_nid, int keylen, OSSL_LIB_CTX *libctx); +PBKDF2PARAM *PBMAC1_get1_pbkdf2_param(const X509_ALGOR *macalg); /* PKCS#8 utilities */ DECLARE_ASN1_FUNCTIONS(PKCS8_PRIV_KEY_INFO) @@ -1262,6 +1287,8 @@ int PKCS8_pkey_add1_attr_by_OBJ(PKCS8_PRIV_KEY_INFO *p8, const ASN1_OBJECT *obj, int type, const unsigned char *bytes, int len); +void X509_PUBKEY_set0_public_key(X509_PUBKEY *pub, + unsigned char *penc, int penclen); int X509_PUBKEY_set0_param(X509_PUBKEY *pub, ASN1_OBJECT *aobj, int ptype, void *pval, unsigned char *penc, int penclen); diff --git a/deps/openssl/config/archs/BSD-x86_64/asm_avx2/include/openssl/x509_acert.h b/deps/openssl/config/archs/BSD-x86_64/asm_avx2/include/openssl/x509_acert.h new file mode 100644 index 00000000000000..9dde625677f9a9 --- /dev/null +++ b/deps/openssl/config/archs/BSD-x86_64/asm_avx2/include/openssl/x509_acert.h @@ -0,0 +1,294 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from include/openssl/x509_acert.h.in + * + * Copyright 2022-2024 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + + +#ifndef OPENSSL_X509_ACERT_H +# define OPENSSL_X509_ACERT_H +# pragma once + +# include +# include +# include + +typedef struct X509_acert_st X509_ACERT; +typedef struct X509_acert_info_st X509_ACERT_INFO; +typedef struct ossl_object_digest_info_st OSSL_OBJECT_DIGEST_INFO; +typedef struct ossl_issuer_serial_st OSSL_ISSUER_SERIAL; +typedef struct X509_acert_issuer_v2form_st X509_ACERT_ISSUER_V2FORM; + +DECLARE_ASN1_FUNCTIONS(X509_ACERT) +DECLARE_ASN1_DUP_FUNCTION(X509_ACERT) +DECLARE_ASN1_ITEM(X509_ACERT_INFO) +DECLARE_ASN1_ALLOC_FUNCTIONS(X509_ACERT_INFO) +DECLARE_ASN1_ALLOC_FUNCTIONS(OSSL_OBJECT_DIGEST_INFO) +DECLARE_ASN1_ALLOC_FUNCTIONS(OSSL_ISSUER_SERIAL) +DECLARE_ASN1_ALLOC_FUNCTIONS(X509_ACERT_ISSUER_V2FORM) + +# ifndef OPENSSL_NO_STDIO +X509_ACERT *d2i_X509_ACERT_fp(FILE *fp, X509_ACERT **acert); +int i2d_X509_ACERT_fp(FILE *fp, const X509_ACERT *acert); +# endif + +DECLARE_PEM_rw(X509_ACERT, X509_ACERT) + +X509_ACERT *d2i_X509_ACERT_bio(BIO *bp, X509_ACERT **acert); +int i2d_X509_ACERT_bio(BIO *bp, const X509_ACERT *acert); + +int X509_ACERT_sign(X509_ACERT *x, EVP_PKEY *pkey, const EVP_MD *md); +int X509_ACERT_sign_ctx(X509_ACERT *x, EVP_MD_CTX *ctx); +int X509_ACERT_verify(X509_ACERT *a, EVP_PKEY *r); + +# define X509_ACERT_VERSION_2 1 + +const GENERAL_NAMES *X509_ACERT_get0_holder_entityName(const X509_ACERT *x); +const OSSL_ISSUER_SERIAL *X509_ACERT_get0_holder_baseCertId(const X509_ACERT *x); +const OSSL_OBJECT_DIGEST_INFO * X509_ACERT_get0_holder_digest(const X509_ACERT *x); +const X509_NAME *X509_ACERT_get0_issuerName(const X509_ACERT *x); +long X509_ACERT_get_version(const X509_ACERT *x); +void X509_ACERT_get0_signature(const X509_ACERT *x, + const ASN1_BIT_STRING **psig, + const X509_ALGOR **palg); +int X509_ACERT_get_signature_nid(const X509_ACERT *x); +const X509_ALGOR *X509_ACERT_get0_info_sigalg(const X509_ACERT *x); +const ASN1_INTEGER *X509_ACERT_get0_serialNumber(const X509_ACERT *x); +const ASN1_TIME *X509_ACERT_get0_notBefore(const X509_ACERT *x); +const ASN1_TIME *X509_ACERT_get0_notAfter(const X509_ACERT *x); +const ASN1_BIT_STRING *X509_ACERT_get0_issuerUID(const X509_ACERT *x); + +int X509_ACERT_print(BIO *bp, X509_ACERT *x); +int X509_ACERT_print_ex(BIO *bp, X509_ACERT *x, unsigned long nmflags, + unsigned long cflag); + +int X509_ACERT_get_attr_count(const X509_ACERT *x); +int X509_ACERT_get_attr_by_NID(const X509_ACERT *x, int nid, int lastpos); +int X509_ACERT_get_attr_by_OBJ(const X509_ACERT *x, const ASN1_OBJECT *obj, + int lastpos); +X509_ATTRIBUTE *X509_ACERT_get_attr(const X509_ACERT *x, int loc); +X509_ATTRIBUTE *X509_ACERT_delete_attr(X509_ACERT *x, int loc); + +void *X509_ACERT_get_ext_d2i(const X509_ACERT *x, int nid, int *crit, int *idx); +int X509_ACERT_add1_ext_i2d(X509_ACERT *x, int nid, void *value, int crit, + unsigned long flags); +const STACK_OF(X509_EXTENSION) *X509_ACERT_get0_extensions(const X509_ACERT *x); + +# define OSSL_OBJECT_DIGEST_INFO_PUBLIC_KEY 0 +# define OSSL_OBJECT_DIGEST_INFO_PUBLIC_KEY_CERT 1 +# define OSSL_OBJECT_DIGEST_INFO_OTHER 2 /* must not be used in RFC 5755 profile */ +int X509_ACERT_set_version(X509_ACERT *x, long version); +void X509_ACERT_set0_holder_entityName(X509_ACERT *x, GENERAL_NAMES *name); +void X509_ACERT_set0_holder_baseCertId(X509_ACERT *x, OSSL_ISSUER_SERIAL *isss); +void X509_ACERT_set0_holder_digest(X509_ACERT *x, + OSSL_OBJECT_DIGEST_INFO *dinfo); + +int X509_ACERT_add1_attr(X509_ACERT *x, X509_ATTRIBUTE *attr); +int X509_ACERT_add1_attr_by_OBJ(X509_ACERT *x, const ASN1_OBJECT *obj, + int type, const void *bytes, int len); +int X509_ACERT_add1_attr_by_NID(X509_ACERT *x, int nid, int type, + const void *bytes, int len); +int X509_ACERT_add1_attr_by_txt(X509_ACERT *x, const char *attrname, int type, + const unsigned char *bytes, int len); +int X509_ACERT_add_attr_nconf(CONF *conf, const char *section, + X509_ACERT *acert); + +int X509_ACERT_set1_issuerName(X509_ACERT *x, const X509_NAME *name); +int X509_ACERT_set1_serialNumber(X509_ACERT *x, const ASN1_INTEGER *serial); +int X509_ACERT_set1_notBefore(X509_ACERT *x, const ASN1_GENERALIZEDTIME *time); +int X509_ACERT_set1_notAfter(X509_ACERT *x, const ASN1_GENERALIZEDTIME *time); + +void OSSL_OBJECT_DIGEST_INFO_get0_digest(const OSSL_OBJECT_DIGEST_INFO *o, + int *digestedObjectType, + const X509_ALGOR **digestAlgorithm, + const ASN1_BIT_STRING **digest); + +int OSSL_OBJECT_DIGEST_INFO_set1_digest(OSSL_OBJECT_DIGEST_INFO *o, + int digestedObjectType, + X509_ALGOR *digestAlgorithm, + ASN1_BIT_STRING *digest); + +const X509_NAME *OSSL_ISSUER_SERIAL_get0_issuer(const OSSL_ISSUER_SERIAL *isss); +const ASN1_INTEGER *OSSL_ISSUER_SERIAL_get0_serial(const OSSL_ISSUER_SERIAL *isss); +const ASN1_BIT_STRING *OSSL_ISSUER_SERIAL_get0_issuerUID(const OSSL_ISSUER_SERIAL *isss); + +int OSSL_ISSUER_SERIAL_set1_issuer(OSSL_ISSUER_SERIAL *isss, + const X509_NAME *issuer); +int OSSL_ISSUER_SERIAL_set1_serial(OSSL_ISSUER_SERIAL *isss, + const ASN1_INTEGER *serial); +int OSSL_ISSUER_SERIAL_set1_issuerUID(OSSL_ISSUER_SERIAL *isss, + const ASN1_BIT_STRING *uid); + +# define OSSL_IETFAS_OCTETS 0 +# define OSSL_IETFAS_OID 1 +# define OSSL_IETFAS_STRING 2 + +typedef struct OSSL_IETF_ATTR_SYNTAX_VALUE_st OSSL_IETF_ATTR_SYNTAX_VALUE; +typedef struct OSSL_IETF_ATTR_SYNTAX_st OSSL_IETF_ATTR_SYNTAX; +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_IETF_ATTR_SYNTAX_VALUE, OSSL_IETF_ATTR_SYNTAX_VALUE, OSSL_IETF_ATTR_SYNTAX_VALUE) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_value(sk, idx) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_value(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), (idx))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_new(cmp) ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_new(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_compfunc_type(cmp))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_new_null() ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_new_null()) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_new_reserve(cmp, n) ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_compfunc_type(cmp), (n))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), (n)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_free(sk) OPENSSL_sk_free(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_delete(sk, i) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_delete(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), (i))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_delete_ptr(sk, ptr) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_pop(sk) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_pop(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_shift(sk) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_shift(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk),ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_freefunc_type(freefunc)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr), (idx)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_set(sk, idx, ptr) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_set(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), (idx), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr), pnum) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_dup(sk) ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_dup(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_copyfunc_type(copyfunc), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_freefunc_type(freefunc))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_set_cmp_func(sk, cmp) ((sk_OSSL_IETF_ATTR_SYNTAX_VALUE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_compfunc_type(cmp))) + + +DECLARE_ASN1_ITEM(OSSL_IETF_ATTR_SYNTAX_VALUE) +DECLARE_ASN1_ALLOC_FUNCTIONS(OSSL_IETF_ATTR_SYNTAX_VALUE) +DECLARE_ASN1_FUNCTIONS(OSSL_IETF_ATTR_SYNTAX) + +const GENERAL_NAMES * +OSSL_IETF_ATTR_SYNTAX_get0_policyAuthority(const OSSL_IETF_ATTR_SYNTAX *a); +void OSSL_IETF_ATTR_SYNTAX_set0_policyAuthority(OSSL_IETF_ATTR_SYNTAX *a, + GENERAL_NAMES *names); + +int OSSL_IETF_ATTR_SYNTAX_get_value_num(const OSSL_IETF_ATTR_SYNTAX *a); +void *OSSL_IETF_ATTR_SYNTAX_get0_value(const OSSL_IETF_ATTR_SYNTAX *a, + int ind, int *type); +int OSSL_IETF_ATTR_SYNTAX_add1_value(OSSL_IETF_ATTR_SYNTAX *a, int type, + void *data); +int OSSL_IETF_ATTR_SYNTAX_print(BIO *bp, OSSL_IETF_ATTR_SYNTAX *a, int indent); + +struct TARGET_CERT_st { + OSSL_ISSUER_SERIAL *targetCertificate; + GENERAL_NAME *targetName; + OSSL_OBJECT_DIGEST_INFO *certDigestInfo; +}; + +typedef struct TARGET_CERT_st OSSL_TARGET_CERT; + +# define OSSL_TGT_TARGET_NAME 0 +# define OSSL_TGT_TARGET_GROUP 1 +# define OSSL_TGT_TARGET_CERT 2 + +typedef struct TARGET_st { + int type; + union { + GENERAL_NAME *targetName; + GENERAL_NAME *targetGroup; + OSSL_TARGET_CERT *targetCert; + } choice; +} OSSL_TARGET; + +typedef STACK_OF(OSSL_TARGET) OSSL_TARGETS; +typedef STACK_OF(OSSL_TARGETS) OSSL_TARGETING_INFORMATION; + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_TARGET, OSSL_TARGET, OSSL_TARGET) +#define sk_OSSL_TARGET_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_value(sk, idx) ((OSSL_TARGET *)OPENSSL_sk_value(ossl_check_const_OSSL_TARGET_sk_type(sk), (idx))) +#define sk_OSSL_TARGET_new(cmp) ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_new(ossl_check_OSSL_TARGET_compfunc_type(cmp))) +#define sk_OSSL_TARGET_new_null() ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_new_null()) +#define sk_OSSL_TARGET_new_reserve(cmp, n) ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_TARGET_compfunc_type(cmp), (n))) +#define sk_OSSL_TARGET_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_TARGET_sk_type(sk), (n)) +#define sk_OSSL_TARGET_free(sk) OPENSSL_sk_free(ossl_check_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_delete(sk, i) ((OSSL_TARGET *)OPENSSL_sk_delete(ossl_check_OSSL_TARGET_sk_type(sk), (i))) +#define sk_OSSL_TARGET_delete_ptr(sk, ptr) ((OSSL_TARGET *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr))) +#define sk_OSSL_TARGET_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr)) +#define sk_OSSL_TARGET_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr)) +#define sk_OSSL_TARGET_pop(sk) ((OSSL_TARGET *)OPENSSL_sk_pop(ossl_check_OSSL_TARGET_sk_type(sk))) +#define sk_OSSL_TARGET_shift(sk) ((OSSL_TARGET *)OPENSSL_sk_shift(ossl_check_OSSL_TARGET_sk_type(sk))) +#define sk_OSSL_TARGET_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_TARGET_sk_type(sk),ossl_check_OSSL_TARGET_freefunc_type(freefunc)) +#define sk_OSSL_TARGET_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr), (idx)) +#define sk_OSSL_TARGET_set(sk, idx, ptr) ((OSSL_TARGET *)OPENSSL_sk_set(ossl_check_OSSL_TARGET_sk_type(sk), (idx), ossl_check_OSSL_TARGET_type(ptr))) +#define sk_OSSL_TARGET_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr)) +#define sk_OSSL_TARGET_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr)) +#define sk_OSSL_TARGET_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr), pnum) +#define sk_OSSL_TARGET_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_dup(sk) ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_dup(ossl_check_const_OSSL_TARGET_sk_type(sk))) +#define sk_OSSL_TARGET_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_copyfunc_type(copyfunc), ossl_check_OSSL_TARGET_freefunc_type(freefunc))) +#define sk_OSSL_TARGET_set_cmp_func(sk, cmp) ((sk_OSSL_TARGET_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_compfunc_type(cmp))) + + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_TARGETS, OSSL_TARGETS, OSSL_TARGETS) +#define sk_OSSL_TARGETS_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_value(sk, idx) ((OSSL_TARGETS *)OPENSSL_sk_value(ossl_check_const_OSSL_TARGETS_sk_type(sk), (idx))) +#define sk_OSSL_TARGETS_new(cmp) ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_new(ossl_check_OSSL_TARGETS_compfunc_type(cmp))) +#define sk_OSSL_TARGETS_new_null() ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_new_null()) +#define sk_OSSL_TARGETS_new_reserve(cmp, n) ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_TARGETS_compfunc_type(cmp), (n))) +#define sk_OSSL_TARGETS_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_TARGETS_sk_type(sk), (n)) +#define sk_OSSL_TARGETS_free(sk) OPENSSL_sk_free(ossl_check_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_delete(sk, i) ((OSSL_TARGETS *)OPENSSL_sk_delete(ossl_check_OSSL_TARGETS_sk_type(sk), (i))) +#define sk_OSSL_TARGETS_delete_ptr(sk, ptr) ((OSSL_TARGETS *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr))) +#define sk_OSSL_TARGETS_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr)) +#define sk_OSSL_TARGETS_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr)) +#define sk_OSSL_TARGETS_pop(sk) ((OSSL_TARGETS *)OPENSSL_sk_pop(ossl_check_OSSL_TARGETS_sk_type(sk))) +#define sk_OSSL_TARGETS_shift(sk) ((OSSL_TARGETS *)OPENSSL_sk_shift(ossl_check_OSSL_TARGETS_sk_type(sk))) +#define sk_OSSL_TARGETS_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_TARGETS_sk_type(sk),ossl_check_OSSL_TARGETS_freefunc_type(freefunc)) +#define sk_OSSL_TARGETS_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr), (idx)) +#define sk_OSSL_TARGETS_set(sk, idx, ptr) ((OSSL_TARGETS *)OPENSSL_sk_set(ossl_check_OSSL_TARGETS_sk_type(sk), (idx), ossl_check_OSSL_TARGETS_type(ptr))) +#define sk_OSSL_TARGETS_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr)) +#define sk_OSSL_TARGETS_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr)) +#define sk_OSSL_TARGETS_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr), pnum) +#define sk_OSSL_TARGETS_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_dup(sk) ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_dup(ossl_check_const_OSSL_TARGETS_sk_type(sk))) +#define sk_OSSL_TARGETS_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_copyfunc_type(copyfunc), ossl_check_OSSL_TARGETS_freefunc_type(freefunc))) +#define sk_OSSL_TARGETS_set_cmp_func(sk, cmp) ((sk_OSSL_TARGETS_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_compfunc_type(cmp))) + + +DECLARE_ASN1_FUNCTIONS(OSSL_TARGET) +DECLARE_ASN1_FUNCTIONS(OSSL_TARGETS) +DECLARE_ASN1_FUNCTIONS(OSSL_TARGETING_INFORMATION) + +typedef STACK_OF(OSSL_ISSUER_SERIAL) OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX; +DECLARE_ASN1_FUNCTIONS(OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ISSUER_SERIAL, OSSL_ISSUER_SERIAL, OSSL_ISSUER_SERIAL) +#define sk_OSSL_ISSUER_SERIAL_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_value(sk, idx) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_value(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk), (idx))) +#define sk_OSSL_ISSUER_SERIAL_new(cmp) ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_new(ossl_check_OSSL_ISSUER_SERIAL_compfunc_type(cmp))) +#define sk_OSSL_ISSUER_SERIAL_new_null() ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ISSUER_SERIAL_new_reserve(cmp, n) ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ISSUER_SERIAL_compfunc_type(cmp), (n))) +#define sk_OSSL_ISSUER_SERIAL_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), (n)) +#define sk_OSSL_ISSUER_SERIAL_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_delete(sk, i) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_delete(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), (i))) +#define sk_OSSL_ISSUER_SERIAL_delete_ptr(sk, ptr) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr))) +#define sk_OSSL_ISSUER_SERIAL_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr)) +#define sk_OSSL_ISSUER_SERIAL_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr)) +#define sk_OSSL_ISSUER_SERIAL_pop(sk) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_pop(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk))) +#define sk_OSSL_ISSUER_SERIAL_shift(sk) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_shift(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk))) +#define sk_OSSL_ISSUER_SERIAL_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk),ossl_check_OSSL_ISSUER_SERIAL_freefunc_type(freefunc)) +#define sk_OSSL_ISSUER_SERIAL_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr), (idx)) +#define sk_OSSL_ISSUER_SERIAL_set(sk, idx, ptr) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_set(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), (idx), ossl_check_OSSL_ISSUER_SERIAL_type(ptr))) +#define sk_OSSL_ISSUER_SERIAL_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr)) +#define sk_OSSL_ISSUER_SERIAL_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr)) +#define sk_OSSL_ISSUER_SERIAL_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr), pnum) +#define sk_OSSL_ISSUER_SERIAL_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_dup(sk) ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk))) +#define sk_OSSL_ISSUER_SERIAL_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_copyfunc_type(copyfunc), ossl_check_OSSL_ISSUER_SERIAL_freefunc_type(freefunc))) +#define sk_OSSL_ISSUER_SERIAL_set_cmp_func(sk, cmp) ((sk_OSSL_ISSUER_SERIAL_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_compfunc_type(cmp))) + + +#endif diff --git a/deps/openssl/config/archs/BSD-x86_64/asm_avx2/include/openssl/x509_vfy.h b/deps/openssl/config/archs/BSD-x86_64/asm_avx2/include/openssl/x509_vfy.h index 29b0e147adcab1..c9bdc3b39d685d 100644 --- a/deps/openssl/config/archs/BSD-x86_64/asm_avx2/include/openssl/x509_vfy.h +++ b/deps/openssl/config/archs/BSD-x86_64/asm_avx2/include/openssl/x509_vfy.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/x509_vfy.h.in * - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -411,6 +411,7 @@ X509_LOOKUP_ctrl_ex((x), X509_L_ADD_STORE, (name), 0, NULL, \ # define X509_V_ERR_CA_CERT_MISSING_KEY_USAGE 92 # define X509_V_ERR_EXTENSIONS_REQUIRE_VERSION_3 93 # define X509_V_ERR_EC_KEY_EXPLICIT_PARAMS 94 +# define X509_V_ERR_RPK_UNTRUSTED 95 /* Certificate verify flags */ # ifndef OPENSSL_NO_DEPRECATED_1_1_0 @@ -491,71 +492,72 @@ int X509_OBJECT_set1_X509(X509_OBJECT *a, X509 *obj); X509_CRL *X509_OBJECT_get0_X509_CRL(const X509_OBJECT *a); int X509_OBJECT_set1_X509_CRL(X509_OBJECT *a, X509_CRL *obj); X509_STORE *X509_STORE_new(void); -void X509_STORE_free(X509_STORE *v); -int X509_STORE_lock(X509_STORE *ctx); -int X509_STORE_unlock(X509_STORE *ctx); -int X509_STORE_up_ref(X509_STORE *v); -STACK_OF(X509_OBJECT) *X509_STORE_get0_objects(const X509_STORE *v); -STACK_OF(X509) *X509_STORE_get1_all_certs(X509_STORE *st); -STACK_OF(X509) *X509_STORE_CTX_get1_certs(X509_STORE_CTX *st, +void X509_STORE_free(X509_STORE *xs); +int X509_STORE_lock(X509_STORE *xs); +int X509_STORE_unlock(X509_STORE *xs); +int X509_STORE_up_ref(X509_STORE *xs); +STACK_OF(X509_OBJECT) *X509_STORE_get0_objects(const X509_STORE *xs); +STACK_OF(X509_OBJECT) *X509_STORE_get1_objects(X509_STORE *xs); +STACK_OF(X509) *X509_STORE_get1_all_certs(X509_STORE *xs); +STACK_OF(X509) *X509_STORE_CTX_get1_certs(X509_STORE_CTX *xs, const X509_NAME *nm); STACK_OF(X509_CRL) *X509_STORE_CTX_get1_crls(const X509_STORE_CTX *st, const X509_NAME *nm); -int X509_STORE_set_flags(X509_STORE *ctx, unsigned long flags); -int X509_STORE_set_purpose(X509_STORE *ctx, int purpose); -int X509_STORE_set_trust(X509_STORE *ctx, int trust); -int X509_STORE_set1_param(X509_STORE *ctx, const X509_VERIFY_PARAM *pm); -X509_VERIFY_PARAM *X509_STORE_get0_param(const X509_STORE *ctx); +int X509_STORE_set_flags(X509_STORE *xs, unsigned long flags); +int X509_STORE_set_purpose(X509_STORE *xs, int purpose); +int X509_STORE_set_trust(X509_STORE *xs, int trust); +int X509_STORE_set1_param(X509_STORE *xs, const X509_VERIFY_PARAM *pm); +X509_VERIFY_PARAM *X509_STORE_get0_param(const X509_STORE *xs); -void X509_STORE_set_verify(X509_STORE *ctx, X509_STORE_CTX_verify_fn verify); +void X509_STORE_set_verify(X509_STORE *xs, X509_STORE_CTX_verify_fn verify); #define X509_STORE_set_verify_func(ctx, func) \ X509_STORE_set_verify((ctx),(func)) void X509_STORE_CTX_set_verify(X509_STORE_CTX *ctx, X509_STORE_CTX_verify_fn verify); -X509_STORE_CTX_verify_fn X509_STORE_get_verify(const X509_STORE *ctx); -void X509_STORE_set_verify_cb(X509_STORE *ctx, +X509_STORE_CTX_verify_fn X509_STORE_get_verify(const X509_STORE *xs); +void X509_STORE_set_verify_cb(X509_STORE *xs, X509_STORE_CTX_verify_cb verify_cb); # define X509_STORE_set_verify_cb_func(ctx,func) \ X509_STORE_set_verify_cb((ctx),(func)) -X509_STORE_CTX_verify_cb X509_STORE_get_verify_cb(const X509_STORE *ctx); -void X509_STORE_set_get_issuer(X509_STORE *ctx, +X509_STORE_CTX_verify_cb X509_STORE_get_verify_cb(const X509_STORE *xs); +void X509_STORE_set_get_issuer(X509_STORE *xs, X509_STORE_CTX_get_issuer_fn get_issuer); -X509_STORE_CTX_get_issuer_fn X509_STORE_get_get_issuer(const X509_STORE *ctx); -void X509_STORE_set_check_issued(X509_STORE *ctx, +X509_STORE_CTX_get_issuer_fn X509_STORE_get_get_issuer(const X509_STORE *xs); +void X509_STORE_set_check_issued(X509_STORE *xs, X509_STORE_CTX_check_issued_fn check_issued); -X509_STORE_CTX_check_issued_fn X509_STORE_get_check_issued(const X509_STORE *ctx); -void X509_STORE_set_check_revocation(X509_STORE *ctx, +X509_STORE_CTX_check_issued_fn X509_STORE_get_check_issued(const X509_STORE *s); +void X509_STORE_set_check_revocation(X509_STORE *xs, X509_STORE_CTX_check_revocation_fn check_revocation); X509_STORE_CTX_check_revocation_fn - X509_STORE_get_check_revocation(const X509_STORE *ctx); -void X509_STORE_set_get_crl(X509_STORE *ctx, + X509_STORE_get_check_revocation(const X509_STORE *xs); +void X509_STORE_set_get_crl(X509_STORE *xs, X509_STORE_CTX_get_crl_fn get_crl); -X509_STORE_CTX_get_crl_fn X509_STORE_get_get_crl(const X509_STORE *ctx); -void X509_STORE_set_check_crl(X509_STORE *ctx, +X509_STORE_CTX_get_crl_fn X509_STORE_get_get_crl(const X509_STORE *xs); +void X509_STORE_set_check_crl(X509_STORE *xs, X509_STORE_CTX_check_crl_fn check_crl); -X509_STORE_CTX_check_crl_fn X509_STORE_get_check_crl(const X509_STORE *ctx); -void X509_STORE_set_cert_crl(X509_STORE *ctx, +X509_STORE_CTX_check_crl_fn X509_STORE_get_check_crl(const X509_STORE *xs); +void X509_STORE_set_cert_crl(X509_STORE *xs, X509_STORE_CTX_cert_crl_fn cert_crl); -X509_STORE_CTX_cert_crl_fn X509_STORE_get_cert_crl(const X509_STORE *ctx); -void X509_STORE_set_check_policy(X509_STORE *ctx, +X509_STORE_CTX_cert_crl_fn X509_STORE_get_cert_crl(const X509_STORE *xs); +void X509_STORE_set_check_policy(X509_STORE *xs, X509_STORE_CTX_check_policy_fn check_policy); -X509_STORE_CTX_check_policy_fn X509_STORE_get_check_policy(const X509_STORE *ctx); -void X509_STORE_set_lookup_certs(X509_STORE *ctx, +X509_STORE_CTX_check_policy_fn X509_STORE_get_check_policy(const X509_STORE *s); +void X509_STORE_set_lookup_certs(X509_STORE *xs, X509_STORE_CTX_lookup_certs_fn lookup_certs); -X509_STORE_CTX_lookup_certs_fn X509_STORE_get_lookup_certs(const X509_STORE *ctx); -void X509_STORE_set_lookup_crls(X509_STORE *ctx, +X509_STORE_CTX_lookup_certs_fn X509_STORE_get_lookup_certs(const X509_STORE *s); +void X509_STORE_set_lookup_crls(X509_STORE *xs, X509_STORE_CTX_lookup_crls_fn lookup_crls); #define X509_STORE_set_lookup_crls_cb(ctx, func) \ X509_STORE_set_lookup_crls((ctx), (func)) -X509_STORE_CTX_lookup_crls_fn X509_STORE_get_lookup_crls(const X509_STORE *ctx); -void X509_STORE_set_cleanup(X509_STORE *ctx, +X509_STORE_CTX_lookup_crls_fn X509_STORE_get_lookup_crls(const X509_STORE *xs); +void X509_STORE_set_cleanup(X509_STORE *xs, X509_STORE_CTX_cleanup_fn cleanup); -X509_STORE_CTX_cleanup_fn X509_STORE_get_cleanup(const X509_STORE *ctx); +X509_STORE_CTX_cleanup_fn X509_STORE_get_cleanup(const X509_STORE *xs); #define X509_STORE_get_ex_new_index(l, p, newf, dupf, freef) \ CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_X509_STORE, l, p, newf, dupf, freef) -int X509_STORE_set_ex_data(X509_STORE *ctx, int idx, void *data); -void *X509_STORE_get_ex_data(const X509_STORE *ctx, int idx); +int X509_STORE_set_ex_data(X509_STORE *xs, int idx, void *data); +void *X509_STORE_get_ex_data(const X509_STORE *xs, int idx); X509_STORE_CTX *X509_STORE_CTX_new_ex(OSSL_LIB_CTX *libctx, const char *propq); X509_STORE_CTX *X509_STORE_CTX_new(void); @@ -565,11 +567,14 @@ int X509_STORE_CTX_get1_issuer(X509 **issuer, X509_STORE_CTX *ctx, X509 *x); void X509_STORE_CTX_free(X509_STORE_CTX *ctx); int X509_STORE_CTX_init(X509_STORE_CTX *ctx, X509_STORE *trust_store, X509 *target, STACK_OF(X509) *untrusted); +int X509_STORE_CTX_init_rpk(X509_STORE_CTX *ctx, X509_STORE *trust_store, + EVP_PKEY* rpk); void X509_STORE_CTX_set0_trusted_stack(X509_STORE_CTX *ctx, STACK_OF(X509) *sk); void X509_STORE_CTX_cleanup(X509_STORE_CTX *ctx); X509_STORE *X509_STORE_CTX_get0_store(const X509_STORE_CTX *ctx); X509 *X509_STORE_CTX_get0_cert(const X509_STORE_CTX *ctx); +EVP_PKEY *X509_STORE_CTX_get0_rpk(const X509_STORE_CTX *ctx); STACK_OF(X509)* X509_STORE_CTX_get0_untrusted(const X509_STORE_CTX *ctx); void X509_STORE_CTX_set0_untrusted(X509_STORE_CTX *ctx, STACK_OF(X509) *sk); void X509_STORE_CTX_set_verify_cb(X509_STORE_CTX *ctx, @@ -579,6 +584,8 @@ X509_STORE_CTX_verify_fn X509_STORE_CTX_get_verify(const X509_STORE_CTX *ctx); X509_STORE_CTX_get_issuer_fn X509_STORE_CTX_get_get_issuer(const X509_STORE_CTX *ctx); X509_STORE_CTX_check_issued_fn X509_STORE_CTX_get_check_issued(const X509_STORE_CTX *ctx); X509_STORE_CTX_check_revocation_fn X509_STORE_CTX_get_check_revocation(const X509_STORE_CTX *ctx); +void X509_STORE_CTX_set_get_crl(X509_STORE_CTX *ctx, + X509_STORE_CTX_get_crl_fn get_crl); X509_STORE_CTX_get_crl_fn X509_STORE_CTX_get_get_crl(const X509_STORE_CTX *ctx); X509_STORE_CTX_check_crl_fn X509_STORE_CTX_get_check_crl(const X509_STORE_CTX *ctx); X509_STORE_CTX_cert_crl_fn X509_STORE_CTX_get_cert_crl(const X509_STORE_CTX *ctx); @@ -600,7 +607,7 @@ X509_STORE_CTX_cleanup_fn X509_STORE_CTX_get_cleanup(const X509_STORE_CTX *ctx); # define X509_STORE_get1_crl X509_STORE_CTX_get1_crls #endif -X509_LOOKUP *X509_STORE_add_lookup(X509_STORE *v, X509_LOOKUP_METHOD *m); +X509_LOOKUP *X509_STORE_add_lookup(X509_STORE *xs, X509_LOOKUP_METHOD *m); X509_LOOKUP_METHOD *X509_LOOKUP_hash_dir(void); X509_LOOKUP_METHOD *X509_LOOKUP_file(void); X509_LOOKUP_METHOD *X509_LOOKUP_store(void); @@ -685,8 +692,8 @@ X509_LOOKUP_get_by_alias_fn X509_LOOKUP_meth_get_get_by_alias( const X509_LOOKUP_METHOD *method); -int X509_STORE_add_cert(X509_STORE *ctx, X509 *x); -int X509_STORE_add_crl(X509_STORE *ctx, X509_CRL *x); +int X509_STORE_add_cert(X509_STORE *xs, X509 *x); +int X509_STORE_add_crl(X509_STORE *xs, X509_CRL *x); int X509_STORE_CTX_get_by_subject(const X509_STORE_CTX *vs, X509_LOOKUP_TYPE type, @@ -730,23 +737,21 @@ void *X509_LOOKUP_get_method_data(const X509_LOOKUP *ctx); X509_STORE *X509_LOOKUP_get_store(const X509_LOOKUP *ctx); int X509_LOOKUP_shutdown(X509_LOOKUP *ctx); -int X509_STORE_load_file(X509_STORE *ctx, const char *file); -int X509_STORE_load_path(X509_STORE *ctx, const char *path); -int X509_STORE_load_store(X509_STORE *ctx, const char *store); -int X509_STORE_load_locations(X509_STORE *ctx, - const char *file, - const char *dir); -int X509_STORE_set_default_paths(X509_STORE *ctx); +int X509_STORE_load_file(X509_STORE *xs, const char *file); +int X509_STORE_load_path(X509_STORE *xs, const char *path); +int X509_STORE_load_store(X509_STORE *xs, const char *store); +int X509_STORE_load_locations(X509_STORE *s, const char *file, const char *dir); +int X509_STORE_set_default_paths(X509_STORE *xs); -int X509_STORE_load_file_ex(X509_STORE *ctx, const char *file, +int X509_STORE_load_file_ex(X509_STORE *xs, const char *file, OSSL_LIB_CTX *libctx, const char *propq); -int X509_STORE_load_store_ex(X509_STORE *ctx, const char *store, +int X509_STORE_load_store_ex(X509_STORE *xs, const char *store, OSSL_LIB_CTX *libctx, const char *propq); -int X509_STORE_load_locations_ex(X509_STORE *ctx, const char *file, - const char *dir, OSSL_LIB_CTX *libctx, - const char *propq); -int X509_STORE_set_default_paths_ex(X509_STORE *ctx, OSSL_LIB_CTX *libctx, - const char *propq); +int X509_STORE_load_locations_ex(X509_STORE *xs, + const char *file, const char *dir, + OSSL_LIB_CTX *libctx, const char *propq); +int X509_STORE_set_default_paths_ex(X509_STORE *xs, + OSSL_LIB_CTX *libctx, const char *propq); #define X509_STORE_CTX_get_ex_new_index(l, p, newf, dupf, freef) \ CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_X509_STORE_CTX, l, p, newf, dupf, freef) @@ -764,6 +769,7 @@ X509_STORE_CTX *X509_STORE_CTX_get0_parent_ctx(const X509_STORE_CTX *ctx); STACK_OF(X509) *X509_STORE_CTX_get0_chain(const X509_STORE_CTX *ctx); STACK_OF(X509) *X509_STORE_CTX_get1_chain(const X509_STORE_CTX *ctx); void X509_STORE_CTX_set_cert(X509_STORE_CTX *ctx, X509 *target); +void X509_STORE_CTX_set0_rpk(X509_STORE_CTX *ctx, EVP_PKEY *target); void X509_STORE_CTX_set0_verified_chain(X509_STORE_CTX *c, STACK_OF(X509) *sk); void X509_STORE_CTX_set0_crls(X509_STORE_CTX *ctx, STACK_OF(X509_CRL) *sk); int X509_STORE_CTX_set_purpose(X509_STORE_CTX *ctx, int purpose); @@ -773,6 +779,8 @@ int X509_STORE_CTX_purpose_inherit(X509_STORE_CTX *ctx, int def_purpose, void X509_STORE_CTX_set_flags(X509_STORE_CTX *ctx, unsigned long flags); void X509_STORE_CTX_set_time(X509_STORE_CTX *ctx, unsigned long flags, time_t t); +void X509_STORE_CTX_set_current_reasons(X509_STORE_CTX *ctx, + unsigned int current_reasons); X509_POLICY_TREE *X509_STORE_CTX_get0_policy_tree(const X509_STORE_CTX *ctx); int X509_STORE_CTX_get_explicit_policy(const X509_STORE_CTX *ctx); @@ -804,6 +812,7 @@ int X509_VERIFY_PARAM_clear_flags(X509_VERIFY_PARAM *param, unsigned long flags); unsigned long X509_VERIFY_PARAM_get_flags(const X509_VERIFY_PARAM *param); int X509_VERIFY_PARAM_set_purpose(X509_VERIFY_PARAM *param, int purpose); +int X509_VERIFY_PARAM_get_purpose(const X509_VERIFY_PARAM *param); int X509_VERIFY_PARAM_set_trust(X509_VERIFY_PARAM *param, int trust); void X509_VERIFY_PARAM_set_depth(X509_VERIFY_PARAM *param, int depth); void X509_VERIFY_PARAM_set_auth_level(X509_VERIFY_PARAM *param, int auth_level); diff --git a/deps/openssl/config/archs/BSD-x86_64/asm_avx2/include/openssl/x509v3.h b/deps/openssl/config/archs/BSD-x86_64/asm_avx2/include/openssl/x509v3.h index 20b67455f2061d..b8dabac35a4915 100644 --- a/deps/openssl/config/archs/BSD-x86_64/asm_avx2/include/openssl/x509v3.h +++ b/deps/openssl/config/archs/BSD-x86_64/asm_avx2/include/openssl/x509v3.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/x509v3.h.in * - * Copyright 1999-2023 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1999-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -25,6 +25,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -146,6 +149,11 @@ typedef struct BASIC_CONSTRAINTS_st { ASN1_INTEGER *pathlen; } BASIC_CONSTRAINTS; +typedef struct OSSL_BASIC_ATTR_CONSTRAINTS_st { + int authority; + ASN1_INTEGER *pathlen; +} OSSL_BASIC_ATTR_CONSTRAINTS; + typedef struct PKEY_USAGE_PERIOD_st { ASN1_GENERALIZEDTIME *notBefore; ASN1_GENERALIZEDTIME *notAfter; @@ -198,6 +206,8 @@ typedef struct ACCESS_DESCRIPTION_st { GENERAL_NAME *location; } ACCESS_DESCRIPTION; +int GENERAL_NAME_set1_X509_NAME(GENERAL_NAME **tgt, const X509_NAME *src); + SKM_DEFINE_STACK_OF_INTERNAL(ACCESS_DESCRIPTION, ACCESS_DESCRIPTION, ACCESS_DESCRIPTION) #define sk_ACCESS_DESCRIPTION_num(sk) OPENSSL_sk_num(ossl_check_const_ACCESS_DESCRIPTION_sk_type(sk)) #define sk_ACCESS_DESCRIPTION_value(sk, idx) ((ACCESS_DESCRIPTION *)OPENSSL_sk_value(ossl_check_const_ACCESS_DESCRIPTION_sk_type(sk), (idx))) @@ -294,6 +304,7 @@ typedef struct DIST_POINT_NAME_st { /* If relativename then this contains the full distribution point name */ X509_NAME *dpname; } DIST_POINT_NAME; +DECLARE_ASN1_DUP_FUNCTION(DIST_POINT_NAME) /* All existing reasons */ # define CRLDP_ALL_REASONS 0x807f @@ -659,15 +670,16 @@ struct ISSUING_DIST_POINT_st { # define EXFLAG_SAN_CRITICAL 0x80000 # define EXFLAG_NO_FINGERPRINT 0x100000 -# define KU_DIGITAL_SIGNATURE 0x0080 -# define KU_NON_REPUDIATION 0x0040 -# define KU_KEY_ENCIPHERMENT 0x0020 -# define KU_DATA_ENCIPHERMENT 0x0010 -# define KU_KEY_AGREEMENT 0x0008 -# define KU_KEY_CERT_SIGN 0x0004 -# define KU_CRL_SIGN 0x0002 -# define KU_ENCIPHER_ONLY 0x0001 -# define KU_DECIPHER_ONLY 0x8000 +/* https://datatracker.ietf.org/doc/html/rfc5280#section-4.2.1.3 */ +# define KU_DIGITAL_SIGNATURE X509v3_KU_DIGITAL_SIGNATURE +# define KU_NON_REPUDIATION X509v3_KU_NON_REPUDIATION +# define KU_KEY_ENCIPHERMENT X509v3_KU_KEY_ENCIPHERMENT +# define KU_DATA_ENCIPHERMENT X509v3_KU_DATA_ENCIPHERMENT +# define KU_KEY_AGREEMENT X509v3_KU_KEY_AGREEMENT +# define KU_KEY_CERT_SIGN X509v3_KU_KEY_CERT_SIGN +# define KU_CRL_SIGN X509v3_KU_CRL_SIGN +# define KU_ENCIPHER_ONLY X509v3_KU_ENCIPHER_ONLY +# define KU_DECIPHER_ONLY X509v3_KU_DECIPHER_ONLY # define NS_SSL_CLIENT 0x80 # define NS_SSL_SERVER 0x40 @@ -729,7 +741,7 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_PURPOSE, X509_PURPOSE, X509_PURPOSE) #define sk_X509_PURPOSE_set_cmp_func(sk, cmp) ((sk_X509_PURPOSE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_X509_PURPOSE_sk_type(sk), ossl_check_X509_PURPOSE_compfunc_type(cmp))) - +# define X509_PURPOSE_DEFAULT_ANY 0 # define X509_PURPOSE_SSL_CLIENT 1 # define X509_PURPOSE_SSL_SERVER 2 # define X509_PURPOSE_NS_SSL_SERVER 3 @@ -739,9 +751,10 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_PURPOSE, X509_PURPOSE, X509_PURPOSE) # define X509_PURPOSE_ANY 7 # define X509_PURPOSE_OCSP_HELPER 8 # define X509_PURPOSE_TIMESTAMP_SIGN 9 +# define X509_PURPOSE_CODE_SIGN 10 # define X509_PURPOSE_MIN 1 -# define X509_PURPOSE_MAX 9 +# define X509_PURPOSE_MAX 10 /* Flags for X509V3_EXT_print() */ @@ -767,6 +780,7 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_PURPOSE, X509_PURPOSE, X509_PURPOSE) # define X509V3_ADD_SILENT 0x10 DECLARE_ASN1_FUNCTIONS(BASIC_CONSTRAINTS) +DECLARE_ASN1_FUNCTIONS(OSSL_BASIC_ATTR_CONSTRAINTS) DECLARE_ASN1_FUNCTIONS(SXNET) DECLARE_ASN1_FUNCTIONS(SXNETID) @@ -976,7 +990,6 @@ int X509V3_extensions_print(BIO *out, const char *title, int X509_check_ca(X509 *x); int X509_check_purpose(X509 *x, int id, int ca); int X509_supported_extension(X509_EXTENSION *ex); -int X509_PURPOSE_set(int *p, int purpose); int X509_check_issued(X509 *issuer, X509 *subject); int X509_check_akid(const X509 *issuer, const AUTHORITY_KEYID *akid); void X509_set_proxy_flag(X509 *x); @@ -992,22 +1005,26 @@ const GENERAL_NAMES *X509_get0_authority_issuer(X509 *x); const ASN1_INTEGER *X509_get0_authority_serial(X509 *x); int X509_PURPOSE_get_count(void); -X509_PURPOSE *X509_PURPOSE_get0(int idx); +int X509_PURPOSE_get_unused_id(OSSL_LIB_CTX *libctx); int X509_PURPOSE_get_by_sname(const char *sname); int X509_PURPOSE_get_by_id(int id); int X509_PURPOSE_add(int id, int trust, int flags, int (*ck) (const X509_PURPOSE *, const X509 *, int), const char *name, const char *sname, void *arg); +void X509_PURPOSE_cleanup(void); + +X509_PURPOSE *X509_PURPOSE_get0(int idx); +int X509_PURPOSE_get_id(const X509_PURPOSE *); char *X509_PURPOSE_get0_name(const X509_PURPOSE *xp); char *X509_PURPOSE_get0_sname(const X509_PURPOSE *xp); int X509_PURPOSE_get_trust(const X509_PURPOSE *xp); -void X509_PURPOSE_cleanup(void); -int X509_PURPOSE_get_id(const X509_PURPOSE *); +int X509_PURPOSE_set(int *p, int purpose); STACK_OF(OPENSSL_STRING) *X509_get1_email(X509 *x); STACK_OF(OPENSSL_STRING) *X509_REQ_get1_email(X509_REQ *x); void X509_email_free(STACK_OF(OPENSSL_STRING) *sk); STACK_OF(OPENSSL_STRING) *X509_get1_ocsp(X509 *x); + /* Flags for X509_check_* functions */ /* @@ -1444,6 +1461,507 @@ const ASN1_PRINTABLESTRING *PROFESSION_INFO_get0_registrationNumber( void PROFESSION_INFO_set0_registrationNumber( PROFESSION_INFO *pi, ASN1_PRINTABLESTRING *rn); +int OSSL_GENERAL_NAMES_print(BIO *out, GENERAL_NAMES *gens, int indent); + +typedef STACK_OF(X509_ATTRIBUTE) OSSL_ATTRIBUTES_SYNTAX; +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTES_SYNTAX) + +typedef STACK_OF(USERNOTICE) OSSL_USER_NOTICE_SYNTAX; +DECLARE_ASN1_FUNCTIONS(OSSL_USER_NOTICE_SYNTAX) + +SKM_DEFINE_STACK_OF_INTERNAL(USERNOTICE, USERNOTICE, USERNOTICE) +#define sk_USERNOTICE_num(sk) OPENSSL_sk_num(ossl_check_const_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_value(sk, idx) ((USERNOTICE *)OPENSSL_sk_value(ossl_check_const_USERNOTICE_sk_type(sk), (idx))) +#define sk_USERNOTICE_new(cmp) ((STACK_OF(USERNOTICE) *)OPENSSL_sk_new(ossl_check_USERNOTICE_compfunc_type(cmp))) +#define sk_USERNOTICE_new_null() ((STACK_OF(USERNOTICE) *)OPENSSL_sk_new_null()) +#define sk_USERNOTICE_new_reserve(cmp, n) ((STACK_OF(USERNOTICE) *)OPENSSL_sk_new_reserve(ossl_check_USERNOTICE_compfunc_type(cmp), (n))) +#define sk_USERNOTICE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_USERNOTICE_sk_type(sk), (n)) +#define sk_USERNOTICE_free(sk) OPENSSL_sk_free(ossl_check_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_zero(sk) OPENSSL_sk_zero(ossl_check_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_delete(sk, i) ((USERNOTICE *)OPENSSL_sk_delete(ossl_check_USERNOTICE_sk_type(sk), (i))) +#define sk_USERNOTICE_delete_ptr(sk, ptr) ((USERNOTICE *)OPENSSL_sk_delete_ptr(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr))) +#define sk_USERNOTICE_push(sk, ptr) OPENSSL_sk_push(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr)) +#define sk_USERNOTICE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr)) +#define sk_USERNOTICE_pop(sk) ((USERNOTICE *)OPENSSL_sk_pop(ossl_check_USERNOTICE_sk_type(sk))) +#define sk_USERNOTICE_shift(sk) ((USERNOTICE *)OPENSSL_sk_shift(ossl_check_USERNOTICE_sk_type(sk))) +#define sk_USERNOTICE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_USERNOTICE_sk_type(sk),ossl_check_USERNOTICE_freefunc_type(freefunc)) +#define sk_USERNOTICE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr), (idx)) +#define sk_USERNOTICE_set(sk, idx, ptr) ((USERNOTICE *)OPENSSL_sk_set(ossl_check_USERNOTICE_sk_type(sk), (idx), ossl_check_USERNOTICE_type(ptr))) +#define sk_USERNOTICE_find(sk, ptr) OPENSSL_sk_find(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr)) +#define sk_USERNOTICE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr)) +#define sk_USERNOTICE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr), pnum) +#define sk_USERNOTICE_sort(sk) OPENSSL_sk_sort(ossl_check_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_dup(sk) ((STACK_OF(USERNOTICE) *)OPENSSL_sk_dup(ossl_check_const_USERNOTICE_sk_type(sk))) +#define sk_USERNOTICE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(USERNOTICE) *)OPENSSL_sk_deep_copy(ossl_check_const_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_copyfunc_type(copyfunc), ossl_check_USERNOTICE_freefunc_type(freefunc))) +#define sk_USERNOTICE_set_cmp_func(sk, cmp) ((sk_USERNOTICE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_compfunc_type(cmp))) + + +typedef struct OSSL_ROLE_SPEC_CERT_ID_st { + GENERAL_NAME *roleName; + GENERAL_NAME *roleCertIssuer; + ASN1_INTEGER *roleCertSerialNumber; + GENERAL_NAMES *roleCertLocator; +} OSSL_ROLE_SPEC_CERT_ID; + +DECLARE_ASN1_FUNCTIONS(OSSL_ROLE_SPEC_CERT_ID) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ROLE_SPEC_CERT_ID, OSSL_ROLE_SPEC_CERT_ID, OSSL_ROLE_SPEC_CERT_ID) +#define sk_OSSL_ROLE_SPEC_CERT_ID_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_value(sk, idx) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_value(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), (idx))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_new(cmp) ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_new(ossl_check_OSSL_ROLE_SPEC_CERT_ID_compfunc_type(cmp))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_new_null() ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ROLE_SPEC_CERT_ID_new_reserve(cmp, n) ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ROLE_SPEC_CERT_ID_compfunc_type(cmp), (n))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), (n)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_delete(sk, i) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_delete(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), (i))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_delete_ptr(sk, ptr) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_pop(sk) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_pop(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_shift(sk) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_shift(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk),ossl_check_OSSL_ROLE_SPEC_CERT_ID_freefunc_type(freefunc)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr), (idx)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_set(sk, idx, ptr) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_set(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), (idx), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr), pnum) +#define sk_OSSL_ROLE_SPEC_CERT_ID_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_dup(sk) ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_copyfunc_type(copyfunc), ossl_check_OSSL_ROLE_SPEC_CERT_ID_freefunc_type(freefunc))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_set_cmp_func(sk, cmp) ((sk_OSSL_ROLE_SPEC_CERT_ID_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_compfunc_type(cmp))) + + +typedef STACK_OF(OSSL_ROLE_SPEC_CERT_ID) OSSL_ROLE_SPEC_CERT_ID_SYNTAX; + +DECLARE_ASN1_FUNCTIONS(OSSL_ROLE_SPEC_CERT_ID_SYNTAX) +typedef struct OSSL_HASH_st { + X509_ALGOR *algorithmIdentifier; + ASN1_BIT_STRING *hashValue; +} OSSL_HASH; + +typedef struct OSSL_INFO_SYNTAX_POINTER_st { + GENERAL_NAMES *name; + OSSL_HASH *hash; +} OSSL_INFO_SYNTAX_POINTER; + +# define OSSL_INFO_SYNTAX_TYPE_CONTENT 0 +# define OSSL_INFO_SYNTAX_TYPE_POINTER 1 + +typedef struct OSSL_INFO_SYNTAX_st { + int type; + union { + ASN1_STRING *content; + OSSL_INFO_SYNTAX_POINTER *pointer; + } choice; +} OSSL_INFO_SYNTAX; + +typedef struct OSSL_PRIVILEGE_POLICY_ID_st { + ASN1_OBJECT *privilegePolicy; + OSSL_INFO_SYNTAX *privPolSyntax; +} OSSL_PRIVILEGE_POLICY_ID; + +typedef struct OSSL_ATTRIBUTE_DESCRIPTOR_st { + ASN1_OBJECT *identifier; + ASN1_STRING *attributeSyntax; + ASN1_UTF8STRING *name; + ASN1_UTF8STRING *description; + OSSL_PRIVILEGE_POLICY_ID *dominationRule; +} OSSL_ATTRIBUTE_DESCRIPTOR; + +DECLARE_ASN1_FUNCTIONS(OSSL_HASH) +DECLARE_ASN1_FUNCTIONS(OSSL_INFO_SYNTAX) +DECLARE_ASN1_FUNCTIONS(OSSL_INFO_SYNTAX_POINTER) +DECLARE_ASN1_FUNCTIONS(OSSL_PRIVILEGE_POLICY_ID) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_DESCRIPTOR) + +typedef struct OSSL_TIME_SPEC_ABSOLUTE_st { + ASN1_GENERALIZEDTIME *startTime; + ASN1_GENERALIZEDTIME *endTime; +} OSSL_TIME_SPEC_ABSOLUTE; + +typedef struct OSSL_DAY_TIME_st { + ASN1_INTEGER *hour; + ASN1_INTEGER *minute; + ASN1_INTEGER *second; +} OSSL_DAY_TIME; + +typedef struct OSSL_DAY_TIME_BAND_st { + OSSL_DAY_TIME *startDayTime; + OSSL_DAY_TIME *endDayTime; +} OSSL_DAY_TIME_BAND; + +# define OSSL_NAMED_DAY_TYPE_INT 0 +# define OSSL_NAMED_DAY_TYPE_BIT 1 +# define OSSL_NAMED_DAY_INT_SUN 1 +# define OSSL_NAMED_DAY_INT_MON 2 +# define OSSL_NAMED_DAY_INT_TUE 3 +# define OSSL_NAMED_DAY_INT_WED 4 +# define OSSL_NAMED_DAY_INT_THU 5 +# define OSSL_NAMED_DAY_INT_FRI 6 +# define OSSL_NAMED_DAY_INT_SAT 7 +# define OSSL_NAMED_DAY_BIT_SUN 0 +# define OSSL_NAMED_DAY_BIT_MON 1 +# define OSSL_NAMED_DAY_BIT_TUE 2 +# define OSSL_NAMED_DAY_BIT_WED 3 +# define OSSL_NAMED_DAY_BIT_THU 4 +# define OSSL_NAMED_DAY_BIT_FRI 5 +# define OSSL_NAMED_DAY_BIT_SAT 6 + +typedef struct OSSL_NAMED_DAY_st { + int type; + union { + ASN1_INTEGER *intNamedDays; + ASN1_BIT_STRING *bitNamedDays; + } choice; +} OSSL_NAMED_DAY; + +# define OSSL_TIME_SPEC_X_DAY_OF_FIRST 0 +# define OSSL_TIME_SPEC_X_DAY_OF_SECOND 1 +# define OSSL_TIME_SPEC_X_DAY_OF_THIRD 2 +# define OSSL_TIME_SPEC_X_DAY_OF_FOURTH 3 +# define OSSL_TIME_SPEC_X_DAY_OF_FIFTH 4 + +typedef struct OSSL_TIME_SPEC_X_DAY_OF_st { + int type; + union { + OSSL_NAMED_DAY *first; + OSSL_NAMED_DAY *second; + OSSL_NAMED_DAY *third; + OSSL_NAMED_DAY *fourth; + OSSL_NAMED_DAY *fifth; + } choice; +} OSSL_TIME_SPEC_X_DAY_OF; + +# define OSSL_TIME_SPEC_DAY_TYPE_INT 0 +# define OSSL_TIME_SPEC_DAY_TYPE_BIT 1 +# define OSSL_TIME_SPEC_DAY_TYPE_DAY_OF 2 +# define OSSL_TIME_SPEC_DAY_BIT_SUN 0 +# define OSSL_TIME_SPEC_DAY_BIT_MON 1 +# define OSSL_TIME_SPEC_DAY_BIT_TUE 2 +# define OSSL_TIME_SPEC_DAY_BIT_WED 3 +# define OSSL_TIME_SPEC_DAY_BIT_THU 4 +# define OSSL_TIME_SPEC_DAY_BIT_FRI 5 +# define OSSL_TIME_SPEC_DAY_BIT_SAT 6 +# define OSSL_TIME_SPEC_DAY_INT_SUN 1 +# define OSSL_TIME_SPEC_DAY_INT_MON 2 +# define OSSL_TIME_SPEC_DAY_INT_TUE 3 +# define OSSL_TIME_SPEC_DAY_INT_WED 4 +# define OSSL_TIME_SPEC_DAY_INT_THU 5 +# define OSSL_TIME_SPEC_DAY_INT_FRI 6 +# define OSSL_TIME_SPEC_DAY_INT_SAT 7 + +typedef struct OSSL_TIME_SPEC_DAY_st { + int type; + union { + STACK_OF(ASN1_INTEGER) *intDay; + ASN1_BIT_STRING *bitDay; + OSSL_TIME_SPEC_X_DAY_OF *dayOf; + } choice; +} OSSL_TIME_SPEC_DAY; + +# define OSSL_TIME_SPEC_WEEKS_TYPE_ALL 0 +# define OSSL_TIME_SPEC_WEEKS_TYPE_INT 1 +# define OSSL_TIME_SPEC_WEEKS_TYPE_BIT 2 +# define OSSL_TIME_SPEC_BIT_WEEKS_1 0 +# define OSSL_TIME_SPEC_BIT_WEEKS_2 1 +# define OSSL_TIME_SPEC_BIT_WEEKS_3 2 +# define OSSL_TIME_SPEC_BIT_WEEKS_4 3 +# define OSSL_TIME_SPEC_BIT_WEEKS_5 4 + +typedef struct OSSL_TIME_SPEC_WEEKS_st { + int type; + union { + ASN1_NULL *allWeeks; + STACK_OF(ASN1_INTEGER) *intWeek; + ASN1_BIT_STRING *bitWeek; + } choice; +} OSSL_TIME_SPEC_WEEKS; + +# define OSSL_TIME_SPEC_MONTH_TYPE_ALL 0 +# define OSSL_TIME_SPEC_MONTH_TYPE_INT 1 +# define OSSL_TIME_SPEC_MONTH_TYPE_BIT 2 +# define OSSL_TIME_SPEC_INT_MONTH_JAN 1 +# define OSSL_TIME_SPEC_INT_MONTH_FEB 2 +# define OSSL_TIME_SPEC_INT_MONTH_MAR 3 +# define OSSL_TIME_SPEC_INT_MONTH_APR 4 +# define OSSL_TIME_SPEC_INT_MONTH_MAY 5 +# define OSSL_TIME_SPEC_INT_MONTH_JUN 6 +# define OSSL_TIME_SPEC_INT_MONTH_JUL 7 +# define OSSL_TIME_SPEC_INT_MONTH_AUG 8 +# define OSSL_TIME_SPEC_INT_MONTH_SEP 9 +# define OSSL_TIME_SPEC_INT_MONTH_OCT 10 +# define OSSL_TIME_SPEC_INT_MONTH_NOV 11 +# define OSSL_TIME_SPEC_INT_MONTH_DEC 12 +# define OSSL_TIME_SPEC_BIT_MONTH_JAN 0 +# define OSSL_TIME_SPEC_BIT_MONTH_FEB 1 +# define OSSL_TIME_SPEC_BIT_MONTH_MAR 2 +# define OSSL_TIME_SPEC_BIT_MONTH_APR 3 +# define OSSL_TIME_SPEC_BIT_MONTH_MAY 4 +# define OSSL_TIME_SPEC_BIT_MONTH_JUN 5 +# define OSSL_TIME_SPEC_BIT_MONTH_JUL 6 +# define OSSL_TIME_SPEC_BIT_MONTH_AUG 7 +# define OSSL_TIME_SPEC_BIT_MONTH_SEP 8 +# define OSSL_TIME_SPEC_BIT_MONTH_OCT 9 +# define OSSL_TIME_SPEC_BIT_MONTH_NOV 10 +# define OSSL_TIME_SPEC_BIT_MONTH_DEC 11 + +typedef struct OSSL_TIME_SPEC_MONTH_st { + int type; + union { + ASN1_NULL *allMonths; + STACK_OF(ASN1_INTEGER) *intMonth; + ASN1_BIT_STRING *bitMonth; + } choice; +} OSSL_TIME_SPEC_MONTH; + +typedef struct OSSL_TIME_PERIOD_st { + STACK_OF(OSSL_DAY_TIME_BAND) *timesOfDay; + OSSL_TIME_SPEC_DAY *days; + OSSL_TIME_SPEC_WEEKS *weeks; + OSSL_TIME_SPEC_MONTH *months; + STACK_OF(ASN1_INTEGER) *years; +} OSSL_TIME_PERIOD; + +# define OSSL_TIME_SPEC_TIME_TYPE_ABSOLUTE 0 +# define OSSL_TIME_SPEC_TIME_TYPE_PERIODIC 1 + +typedef struct OSSL_TIME_SPEC_TIME_st { + int type; + union { + OSSL_TIME_SPEC_ABSOLUTE *absolute; + STACK_OF(OSSL_TIME_PERIOD) *periodic; + } choice; +} OSSL_TIME_SPEC_TIME; + +typedef struct OSSL_TIME_SPEC_st { + OSSL_TIME_SPEC_TIME *time; + ASN1_BOOLEAN notThisTime; + ASN1_INTEGER *timeZone; +} OSSL_TIME_SPEC; + +DECLARE_ASN1_FUNCTIONS(OSSL_DAY_TIME) +DECLARE_ASN1_FUNCTIONS(OSSL_DAY_TIME_BAND) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_DAY) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_WEEKS) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_MONTH) +DECLARE_ASN1_FUNCTIONS(OSSL_NAMED_DAY) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_X_DAY_OF) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_ABSOLUTE) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_TIME) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_PERIOD) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_TIME_PERIOD, OSSL_TIME_PERIOD, OSSL_TIME_PERIOD) +#define sk_OSSL_TIME_PERIOD_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_value(sk, idx) ((OSSL_TIME_PERIOD *)OPENSSL_sk_value(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk), (idx))) +#define sk_OSSL_TIME_PERIOD_new(cmp) ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_new(ossl_check_OSSL_TIME_PERIOD_compfunc_type(cmp))) +#define sk_OSSL_TIME_PERIOD_new_null() ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_new_null()) +#define sk_OSSL_TIME_PERIOD_new_reserve(cmp, n) ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_TIME_PERIOD_compfunc_type(cmp), (n))) +#define sk_OSSL_TIME_PERIOD_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), (n)) +#define sk_OSSL_TIME_PERIOD_free(sk) OPENSSL_sk_free(ossl_check_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_delete(sk, i) ((OSSL_TIME_PERIOD *)OPENSSL_sk_delete(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), (i))) +#define sk_OSSL_TIME_PERIOD_delete_ptr(sk, ptr) ((OSSL_TIME_PERIOD *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr))) +#define sk_OSSL_TIME_PERIOD_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr)) +#define sk_OSSL_TIME_PERIOD_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr)) +#define sk_OSSL_TIME_PERIOD_pop(sk) ((OSSL_TIME_PERIOD *)OPENSSL_sk_pop(ossl_check_OSSL_TIME_PERIOD_sk_type(sk))) +#define sk_OSSL_TIME_PERIOD_shift(sk) ((OSSL_TIME_PERIOD *)OPENSSL_sk_shift(ossl_check_OSSL_TIME_PERIOD_sk_type(sk))) +#define sk_OSSL_TIME_PERIOD_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_TIME_PERIOD_sk_type(sk),ossl_check_OSSL_TIME_PERIOD_freefunc_type(freefunc)) +#define sk_OSSL_TIME_PERIOD_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr), (idx)) +#define sk_OSSL_TIME_PERIOD_set(sk, idx, ptr) ((OSSL_TIME_PERIOD *)OPENSSL_sk_set(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), (idx), ossl_check_OSSL_TIME_PERIOD_type(ptr))) +#define sk_OSSL_TIME_PERIOD_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr)) +#define sk_OSSL_TIME_PERIOD_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr)) +#define sk_OSSL_TIME_PERIOD_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr), pnum) +#define sk_OSSL_TIME_PERIOD_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_dup(sk) ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_dup(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk))) +#define sk_OSSL_TIME_PERIOD_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_copyfunc_type(copyfunc), ossl_check_OSSL_TIME_PERIOD_freefunc_type(freefunc))) +#define sk_OSSL_TIME_PERIOD_set_cmp_func(sk, cmp) ((sk_OSSL_TIME_PERIOD_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_compfunc_type(cmp))) + + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_DAY_TIME_BAND, OSSL_DAY_TIME_BAND, OSSL_DAY_TIME_BAND) +#define sk_OSSL_DAY_TIME_BAND_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_value(sk, idx) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_value(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk), (idx))) +#define sk_OSSL_DAY_TIME_BAND_new(cmp) ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_new(ossl_check_OSSL_DAY_TIME_BAND_compfunc_type(cmp))) +#define sk_OSSL_DAY_TIME_BAND_new_null() ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_new_null()) +#define sk_OSSL_DAY_TIME_BAND_new_reserve(cmp, n) ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_DAY_TIME_BAND_compfunc_type(cmp), (n))) +#define sk_OSSL_DAY_TIME_BAND_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), (n)) +#define sk_OSSL_DAY_TIME_BAND_free(sk) OPENSSL_sk_free(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_delete(sk, i) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_delete(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), (i))) +#define sk_OSSL_DAY_TIME_BAND_delete_ptr(sk, ptr) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr))) +#define sk_OSSL_DAY_TIME_BAND_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr)) +#define sk_OSSL_DAY_TIME_BAND_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr)) +#define sk_OSSL_DAY_TIME_BAND_pop(sk) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_pop(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk))) +#define sk_OSSL_DAY_TIME_BAND_shift(sk) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_shift(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk))) +#define sk_OSSL_DAY_TIME_BAND_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk),ossl_check_OSSL_DAY_TIME_BAND_freefunc_type(freefunc)) +#define sk_OSSL_DAY_TIME_BAND_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr), (idx)) +#define sk_OSSL_DAY_TIME_BAND_set(sk, idx, ptr) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_set(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), (idx), ossl_check_OSSL_DAY_TIME_BAND_type(ptr))) +#define sk_OSSL_DAY_TIME_BAND_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr)) +#define sk_OSSL_DAY_TIME_BAND_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr)) +#define sk_OSSL_DAY_TIME_BAND_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr), pnum) +#define sk_OSSL_DAY_TIME_BAND_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_dup(sk) ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_dup(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk))) +#define sk_OSSL_DAY_TIME_BAND_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_copyfunc_type(copyfunc), ossl_check_OSSL_DAY_TIME_BAND_freefunc_type(freefunc))) +#define sk_OSSL_DAY_TIME_BAND_set_cmp_func(sk, cmp) ((sk_OSSL_DAY_TIME_BAND_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_compfunc_type(cmp))) + + +/* Attribute Type and Value */ +typedef struct atav_st { + ASN1_OBJECT *type; + ASN1_TYPE *value; +} OSSL_ATAV; + +typedef struct ATTRIBUTE_TYPE_MAPPING_st { + ASN1_OBJECT *local; + ASN1_OBJECT *remote; +} OSSL_ATTRIBUTE_TYPE_MAPPING; + +typedef struct ATTRIBUTE_VALUE_MAPPING_st { + OSSL_ATAV *local; + OSSL_ATAV *remote; +} OSSL_ATTRIBUTE_VALUE_MAPPING; + +# define OSSL_ATTR_MAP_TYPE 0 +# define OSSL_ATTR_MAP_VALUE 1 + +typedef struct ATTRIBUTE_MAPPING_st { + int type; + union { + OSSL_ATTRIBUTE_TYPE_MAPPING *typeMappings; + OSSL_ATTRIBUTE_VALUE_MAPPING *typeValueMappings; + } choice; +} OSSL_ATTRIBUTE_MAPPING; + +typedef STACK_OF(OSSL_ATTRIBUTE_MAPPING) OSSL_ATTRIBUTE_MAPPINGS; +DECLARE_ASN1_FUNCTIONS(OSSL_ATAV) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_TYPE_MAPPING) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_VALUE_MAPPING) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_MAPPING) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_MAPPINGS) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ATTRIBUTE_MAPPING, OSSL_ATTRIBUTE_MAPPING, OSSL_ATTRIBUTE_MAPPING) +#define sk_OSSL_ATTRIBUTE_MAPPING_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_value(sk, idx) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_value(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), (idx))) +#define sk_OSSL_ATTRIBUTE_MAPPING_new(cmp) ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_new(ossl_check_OSSL_ATTRIBUTE_MAPPING_compfunc_type(cmp))) +#define sk_OSSL_ATTRIBUTE_MAPPING_new_null() ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ATTRIBUTE_MAPPING_new_reserve(cmp, n) ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ATTRIBUTE_MAPPING_compfunc_type(cmp), (n))) +#define sk_OSSL_ATTRIBUTE_MAPPING_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), (n)) +#define sk_OSSL_ATTRIBUTE_MAPPING_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_delete(sk, i) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_delete(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), (i))) +#define sk_OSSL_ATTRIBUTE_MAPPING_delete_ptr(sk, ptr) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr))) +#define sk_OSSL_ATTRIBUTE_MAPPING_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr)) +#define sk_OSSL_ATTRIBUTE_MAPPING_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr)) +#define sk_OSSL_ATTRIBUTE_MAPPING_pop(sk) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_pop(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk))) +#define sk_OSSL_ATTRIBUTE_MAPPING_shift(sk) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_shift(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk))) +#define sk_OSSL_ATTRIBUTE_MAPPING_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk),ossl_check_OSSL_ATTRIBUTE_MAPPING_freefunc_type(freefunc)) +#define sk_OSSL_ATTRIBUTE_MAPPING_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr), (idx)) +#define sk_OSSL_ATTRIBUTE_MAPPING_set(sk, idx, ptr) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_set(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), (idx), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr))) +#define sk_OSSL_ATTRIBUTE_MAPPING_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr)) +#define sk_OSSL_ATTRIBUTE_MAPPING_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr)) +#define sk_OSSL_ATTRIBUTE_MAPPING_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr), pnum) +#define sk_OSSL_ATTRIBUTE_MAPPING_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_dup(sk) ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk))) +#define sk_OSSL_ATTRIBUTE_MAPPING_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_copyfunc_type(copyfunc), ossl_check_OSSL_ATTRIBUTE_MAPPING_freefunc_type(freefunc))) +#define sk_OSSL_ATTRIBUTE_MAPPING_set_cmp_func(sk, cmp) ((sk_OSSL_ATTRIBUTE_MAPPING_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_compfunc_type(cmp))) + + +# define OSSL_AAA_ATTRIBUTE_TYPE 0 +# define OSSL_AAA_ATTRIBUTE_VALUES 1 + +typedef struct ALLOWED_ATTRIBUTES_CHOICE_st { + int type; + union { + ASN1_OBJECT *attributeType; + X509_ATTRIBUTE *attributeTypeandValues; + } choice; +} OSSL_ALLOWED_ATTRIBUTES_CHOICE; + +typedef struct ALLOWED_ATTRIBUTES_ITEM_st { + STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *attributes; + GENERAL_NAME *holderDomain; +} OSSL_ALLOWED_ATTRIBUTES_ITEM; + +typedef STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) OSSL_ALLOWED_ATTRIBUTES_SYNTAX; + +DECLARE_ASN1_FUNCTIONS(OSSL_ALLOWED_ATTRIBUTES_CHOICE) +DECLARE_ASN1_FUNCTIONS(OSSL_ALLOWED_ATTRIBUTES_ITEM) +DECLARE_ASN1_FUNCTIONS(OSSL_ALLOWED_ATTRIBUTES_SYNTAX) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ALLOWED_ATTRIBUTES_CHOICE, OSSL_ALLOWED_ATTRIBUTES_CHOICE, OSSL_ALLOWED_ATTRIBUTES_CHOICE) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_value(sk, idx) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_value(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), (idx))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_new(cmp) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_new(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_compfunc_type(cmp))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_new_null() ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_new_reserve(cmp, n) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_compfunc_type(cmp), (n))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), (n)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_delete(sk, i) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_delete(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), (i))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_delete_ptr(sk, ptr) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_pop(sk) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_pop(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_shift(sk) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_shift(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk),ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_freefunc_type(freefunc)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr), (idx)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_set(sk, idx, ptr) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_set(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), (idx), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr), pnum) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_dup(sk) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_copyfunc_type(copyfunc), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_freefunc_type(freefunc))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_set_cmp_func(sk, cmp) ((sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_compfunc_type(cmp))) + + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ALLOWED_ATTRIBUTES_ITEM, OSSL_ALLOWED_ATTRIBUTES_ITEM, OSSL_ALLOWED_ATTRIBUTES_ITEM) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_value(sk, idx) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_value(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), (idx))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_new(cmp) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_new(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_compfunc_type(cmp))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_new_null() ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_new_reserve(cmp, n) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_compfunc_type(cmp), (n))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), (n)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_delete(sk, i) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_delete(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), (i))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_delete_ptr(sk, ptr) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_pop(sk) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_pop(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_shift(sk) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_shift(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk),ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_freefunc_type(freefunc)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr), (idx)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_set(sk, idx, ptr) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_set(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), (idx), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr), pnum) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_dup(sk) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_copyfunc_type(copyfunc), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_freefunc_type(freefunc))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_set_cmp_func(sk, cmp) ((sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_compfunc_type(cmp))) + + +typedef struct AA_DIST_POINT_st { + DIST_POINT_NAME *distpoint; + ASN1_BIT_STRING *reasons; + int dp_reasons; + ASN1_BOOLEAN indirectCRL; + ASN1_BOOLEAN containsUserAttributeCerts; + ASN1_BOOLEAN containsAACerts; + ASN1_BOOLEAN containsSOAPublicKeyCerts; +} OSSL_AA_DIST_POINT; + +DECLARE_ASN1_FUNCTIONS(OSSL_AA_DIST_POINT) + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/BSD-x86_64/asm_avx2/include/progs.h b/deps/openssl/config/archs/BSD-x86_64/asm_avx2/include/progs.h index be55f61503d405..1b62ec37dec130 100644 --- a/deps/openssl/config/archs/BSD-x86_64/asm_avx2/include/progs.h +++ b/deps/openssl/config/archs/BSD-x86_64/asm_avx2/include/progs.h @@ -56,6 +56,7 @@ extern int s_client_main(int argc, char *argv[]); extern int s_server_main(int argc, char *argv[]); extern int s_time_main(int argc, char *argv[]); extern int sess_id_main(int argc, char *argv[]); +extern int skeyutl_main(int argc, char *argv[]); extern int smime_main(int argc, char *argv[]); extern int speed_main(int argc, char *argv[]); extern int spkac_main(int argc, char *argv[]); @@ -110,6 +111,7 @@ extern const OPTIONS s_client_options[]; extern const OPTIONS s_server_options[]; extern const OPTIONS s_time_options[]; extern const OPTIONS sess_id_options[]; +extern const OPTIONS skeyutl_options[]; extern const OPTIONS smime_options[]; extern const OPTIONS speed_options[]; extern const OPTIONS spkac_options[]; diff --git a/deps/openssl/config/archs/BSD-x86_64/asm_avx2/openssl-cl.gypi b/deps/openssl/config/archs/BSD-x86_64/asm_avx2/openssl-cl.gypi index 108012655aa24f..a4db7389987bbe 100644 --- a/deps/openssl/config/archs/BSD-x86_64/asm_avx2/openssl-cl.gypi +++ b/deps/openssl/config/archs/BSD-x86_64/asm_avx2/openssl-cl.gypi @@ -83,6 +83,7 @@ 'openssl/apps/s_server.c', 'openssl/apps/s_time.c', 'openssl/apps/sess_id.c', + 'openssl/apps/skeyutl.c', 'openssl/apps/smime.c', 'openssl/apps/speed.c', 'openssl/apps/spkac.c', @@ -98,12 +99,14 @@ 'openssl/apps/lib/app_rand.c', 'openssl/apps/lib/app_x509.c', 'openssl/apps/lib/apps.c', + 'openssl/apps/lib/apps_opt_printf.c', 'openssl/apps/lib/apps_ui.c', 'openssl/apps/lib/columns.c', 'openssl/apps/lib/engine.c', 'openssl/apps/lib/engine_loader.c', 'openssl/apps/lib/fmt.c', 'openssl/apps/lib/http_server.c', + 'openssl/apps/lib/log.c', 'openssl/apps/lib/names.c', 'openssl/apps/lib/opt.c', 'openssl/apps/lib/s_cb.c', diff --git a/deps/openssl/config/archs/BSD-x86_64/asm_avx2/openssl-fips.gypi b/deps/openssl/config/archs/BSD-x86_64/asm_avx2/openssl-fips.gypi index 2831a837c2afd2..4d73c4c1f2df43 100644 --- a/deps/openssl/config/archs/BSD-x86_64/asm_avx2/openssl-fips.gypi +++ b/deps/openssl/config/archs/BSD-x86_64/asm_avx2/openssl-fips.gypi @@ -101,14 +101,15 @@ 'openssl/crypto/evp/kem.c', 'openssl/crypto/evp/keymgmt_lib.c', 'openssl/crypto/evp/keymgmt_meth.c', - 'openssl/crypto/evp/m_sigver.c', 'openssl/crypto/evp/mac_lib.c', 'openssl/crypto/evp/mac_meth.c', 'openssl/crypto/evp/p_lib.c', 'openssl/crypto/evp/pmeth_check.c', 'openssl/crypto/evp/pmeth_gn.c', 'openssl/crypto/evp/pmeth_lib.c', + 'openssl/crypto/evp/s_lib.c', 'openssl/crypto/evp/signature.c', + 'openssl/crypto/evp/skeymgmt_meth.c', 'openssl/crypto/ffc/ffc_backend.c', 'openssl/crypto/ffc/ffc_dh.c', 'openssl/crypto/ffc/ffc_key_generate.c', @@ -116,6 +117,8 @@ 'openssl/crypto/ffc/ffc_params.c', 'openssl/crypto/ffc/ffc_params_generate.c', 'openssl/crypto/ffc/ffc_params_validate.c', + 'openssl/crypto/hashtable/hashfunc.c', + 'openssl/crypto/hashtable/hashtable.c', 'openssl/crypto/hmac/hmac.c', 'openssl/crypto/lhash/lhash.c', 'openssl/crypto/asn1_dsa.c', @@ -145,6 +148,16 @@ 'openssl/crypto/threads_none.c', 'openssl/crypto/threads_pthread.c', 'openssl/crypto/threads_win.c', + 'openssl/crypto/time.c', + 'openssl/crypto/ml_dsa/ml_dsa_encoders.c', + 'openssl/crypto/ml_dsa/ml_dsa_key.c', + 'openssl/crypto/ml_dsa/ml_dsa_key_compress.c', + 'openssl/crypto/ml_dsa/ml_dsa_matrix.c', + 'openssl/crypto/ml_dsa/ml_dsa_ntt.c', + 'openssl/crypto/ml_dsa/ml_dsa_params.c', + 'openssl/crypto/ml_dsa/ml_dsa_sample.c', + 'openssl/crypto/ml_dsa/ml_dsa_sign.c', + 'openssl/crypto/ml_kem/ml_kem.c', 'openssl/crypto/modes/cbc128.c', 'openssl/crypto/modes/ccm128.c', 'openssl/crypto/modes/cfb128.c', @@ -153,6 +166,7 @@ 'openssl/crypto/modes/ofb128.c', 'openssl/crypto/modes/wrap128.c', 'openssl/crypto/modes/xts128.c', + 'openssl/crypto/modes/xts128gb.c', 'openssl/crypto/property/defn_cache.c', 'openssl/crypto/property/property.c', 'openssl/crypto/property/property_parse.c', @@ -180,7 +194,23 @@ 'openssl/crypto/sha/sha256.c', 'openssl/crypto/sha/sha3.c', 'openssl/crypto/sha/sha512.c', + 'openssl/crypto/slh_dsa/slh_adrs.c', + 'openssl/crypto/slh_dsa/slh_dsa.c', + 'openssl/crypto/slh_dsa/slh_dsa_hash_ctx.c', + 'openssl/crypto/slh_dsa/slh_dsa_key.c', + 'openssl/crypto/slh_dsa/slh_fors.c', + 'openssl/crypto/slh_dsa/slh_hash.c', + 'openssl/crypto/slh_dsa/slh_hypertree.c', + 'openssl/crypto/slh_dsa/slh_params.c', + 'openssl/crypto/slh_dsa/slh_wots.c', + 'openssl/crypto/slh_dsa/slh_xmss.c', 'openssl/crypto/stack/stack.c', + 'openssl/crypto/thread/arch/thread_none.c', + 'openssl/crypto/thread/arch/thread_posix.c', + 'openssl/crypto/thread/arch/thread_win.c', + 'openssl/crypto/thread/api.c', + 'openssl/crypto/thread/arch.c', + 'openssl/crypto/thread/internal.c', 'openssl/providers/common/der/der_rsa_sig.c', 'openssl/providers/common/bio_prov.c', 'openssl/providers/common/capabilities.c', @@ -189,6 +219,7 @@ 'openssl/providers/common/provider_util.c', 'openssl/providers/common/securitycheck.c', 'openssl/providers/common/securitycheck_fips.c', + 'openssl/providers/fips/fipsindicator.c', 'openssl/providers/fips/fipsprov.c', 'openssl/providers/fips/self_test.c', 'openssl/providers/fips/self_test_kats.c', @@ -226,6 +257,8 @@ 'openssl/providers/implementations/kdfs/sskdf.c', 'openssl/providers/implementations/kdfs/tls1_prf.c', 'openssl/providers/implementations/kdfs/x942kdf.c', + 'openssl/providers/implementations/kem/ml_kem_kem.c', + 'openssl/providers/implementations/kem/mlx_kem.c', 'openssl/providers/implementations/kem/rsa_kem.c', 'openssl/providers/implementations/keymgmt/dh_kmgmt.c', 'openssl/providers/implementations/keymgmt/dsa_kmgmt.c', @@ -233,29 +266,39 @@ 'openssl/providers/implementations/keymgmt/ecx_kmgmt.c', 'openssl/providers/implementations/keymgmt/kdf_legacy_kmgmt.c', 'openssl/providers/implementations/keymgmt/mac_legacy_kmgmt.c', + 'openssl/providers/implementations/keymgmt/ml_dsa_kmgmt.c', + 'openssl/providers/implementations/keymgmt/ml_kem_kmgmt.c', + 'openssl/providers/implementations/keymgmt/mlx_kmgmt.c', 'openssl/providers/implementations/keymgmt/rsa_kmgmt.c', + 'openssl/providers/implementations/keymgmt/slh_dsa_kmgmt.c', 'openssl/providers/implementations/macs/cmac_prov.c', 'openssl/providers/implementations/macs/gmac_prov.c', 'openssl/providers/implementations/macs/hmac_prov.c', 'openssl/providers/implementations/macs/kmac_prov.c', - 'openssl/providers/implementations/rands/crngt.c', 'openssl/providers/implementations/rands/drbg.c', 'openssl/providers/implementations/rands/drbg_ctr.c', 'openssl/providers/implementations/rands/drbg_hash.c', 'openssl/providers/implementations/rands/drbg_hmac.c', + 'openssl/providers/implementations/rands/fips_crng_test.c', 'openssl/providers/implementations/rands/test_rng.c', 'openssl/providers/implementations/signature/dsa_sig.c', 'openssl/providers/implementations/signature/ecdsa_sig.c', 'openssl/providers/implementations/signature/eddsa_sig.c', 'openssl/providers/implementations/signature/mac_legacy_sig.c', + 'openssl/providers/implementations/signature/ml_dsa_sig.c', 'openssl/providers/implementations/signature/rsa_sig.c', - 'openssl/ssl/s3_cbc.c', + 'openssl/providers/implementations/signature/slh_dsa_sig.c', + 'openssl/providers/implementations/skeymgmt/aes_skmgmt.c', + 'openssl/providers/implementations/skeymgmt/generic.c', + 'openssl/ssl/record/methods/ssl3_cbc.c', 'openssl/providers/common/der/der_dsa_key.c', 'openssl/providers/common/der/der_dsa_sig.c', 'openssl/providers/common/der/der_ec_key.c', 'openssl/providers/common/der/der_ec_sig.c', 'openssl/providers/common/der/der_ecx_key.c', + 'openssl/providers/common/der/der_ml_dsa_key.c', 'openssl/providers/common/der/der_rsa_key.c', + 'openssl/providers/common/der/der_slh_dsa_key.c', 'openssl/providers/common/provider_ctx.c', 'openssl/providers/common/provider_err.c', 'openssl/providers/implementations/ciphers/ciphercommon.c', @@ -266,7 +309,7 @@ 'openssl/providers/implementations/ciphers/ciphercommon_gcm_hw.c', 'openssl/providers/implementations/ciphers/ciphercommon_hw.c', 'openssl/providers/implementations/digests/digestcommon.c', - 'openssl/ssl/record/tls_pad.c', + 'openssl/ssl/record/methods/tls_pad.c', 'openssl/providers/fips/fips_entry.c', ], @@ -276,10 +319,16 @@ './config/archs/BSD-x86_64/asm_avx2/crypto/aes/aesni-sha1-x86_64.s', './config/archs/BSD-x86_64/asm_avx2/crypto/aes/aesni-sha256-x86_64.s', './config/archs/BSD-x86_64/asm_avx2/crypto/aes/aesni-x86_64.s', + './config/archs/BSD-x86_64/asm_avx2/crypto/aes/aesni-xts-avx512.s', './config/archs/BSD-x86_64/asm_avx2/crypto/aes/bsaes-x86_64.s', './config/archs/BSD-x86_64/asm_avx2/crypto/aes/vpaes-x86_64.s', + './config/archs/BSD-x86_64/asm_avx2/crypto/bn/rsaz-2k-avx512.s', + './config/archs/BSD-x86_64/asm_avx2/crypto/bn/rsaz-2k-avxifma.s', + './config/archs/BSD-x86_64/asm_avx2/crypto/bn/rsaz-3k-avx512.s', + './config/archs/BSD-x86_64/asm_avx2/crypto/bn/rsaz-3k-avxifma.s', + './config/archs/BSD-x86_64/asm_avx2/crypto/bn/rsaz-4k-avx512.s', + './config/archs/BSD-x86_64/asm_avx2/crypto/bn/rsaz-4k-avxifma.s', './config/archs/BSD-x86_64/asm_avx2/crypto/bn/rsaz-avx2.s', - './config/archs/BSD-x86_64/asm_avx2/crypto/bn/rsaz-avx512.s', './config/archs/BSD-x86_64/asm_avx2/crypto/bn/rsaz-x86_64.s', './config/archs/BSD-x86_64/asm_avx2/crypto/bn/x86_64-gf2m.s', './config/archs/BSD-x86_64/asm_avx2/crypto/bn/x86_64-mont.s', @@ -288,8 +337,10 @@ './config/archs/BSD-x86_64/asm_avx2/crypto/chacha/chacha-x86_64.s', './config/archs/BSD-x86_64/asm_avx2/crypto/ec/ecp_nistz256-x86_64.s', './config/archs/BSD-x86_64/asm_avx2/crypto/ec/x25519-x86_64.s', + './config/archs/BSD-x86_64/asm_avx2/crypto/params_idx.c', './config/archs/BSD-x86_64/asm_avx2/crypto/x86_64cpuid.s', './config/archs/BSD-x86_64/asm_avx2/crypto/md5/md5-x86_64.s', + './config/archs/BSD-x86_64/asm_avx2/crypto/modes/aes-gcm-avx512.s', './config/archs/BSD-x86_64/asm_avx2/crypto/modes/aesni-gcm-x86_64.s', './config/archs/BSD-x86_64/asm_avx2/crypto/modes/ghash-x86_64.s', './config/archs/BSD-x86_64/asm_avx2/crypto/poly1305/poly1305-x86_64.s', @@ -308,7 +359,9 @@ './config/archs/BSD-x86_64/asm_avx2/providers/common/der/der_dsa_gen.c', './config/archs/BSD-x86_64/asm_avx2/providers/common/der/der_ec_gen.c', './config/archs/BSD-x86_64/asm_avx2/providers/common/der/der_ecx_gen.c', + './config/archs/BSD-x86_64/asm_avx2/providers/common/der/der_ml_dsa_gen.c', './config/archs/BSD-x86_64/asm_avx2/providers/common/der/der_rsa_gen.c', + './config/archs/BSD-x86_64/asm_avx2/providers/common/der/der_slh_dsa_gen.c', './config/archs/BSD-x86_64/asm_avx2/providers/common/der/der_wrap_gen.c', './config/archs/BSD-x86_64/asm_avx2/providers/legacy.ld', './config/archs/BSD-x86_64/asm_avx2/providers/fips.ld', diff --git a/deps/openssl/config/archs/BSD-x86_64/asm_avx2/openssl.gypi b/deps/openssl/config/archs/BSD-x86_64/asm_avx2/openssl.gypi index 9dc83c8bbb123d..a79f37a6eef887 100644 --- a/deps/openssl/config/archs/BSD-x86_64/asm_avx2/openssl.gypi +++ b/deps/openssl/config/archs/BSD-x86_64/asm_avx2/openssl.gypi @@ -7,14 +7,15 @@ 'openssl/ssl/d1_srtp.c', 'openssl/ssl/methods.c', 'openssl/ssl/pqueue.c', + 'openssl/ssl/priority_queue.c', 'openssl/ssl/s3_enc.c', 'openssl/ssl/s3_lib.c', 'openssl/ssl/s3_msg.c', 'openssl/ssl/ssl_asn1.c', 'openssl/ssl/ssl_cert.c', + 'openssl/ssl/ssl_cert_comp.c', 'openssl/ssl/ssl_ciph.c', 'openssl/ssl/ssl_conf.c', - 'openssl/ssl/ssl_err.c', 'openssl/ssl/ssl_err_legacy.c', 'openssl/ssl/ssl_init.c', 'openssl/ssl/ssl_lib.c', @@ -31,12 +32,60 @@ 'openssl/ssl/tls13_enc.c', 'openssl/ssl/tls_depr.c', 'openssl/ssl/tls_srp.c', - 'openssl/ssl/record/dtls1_bitmap.c', + 'openssl/ssl/quic/cc_newreno.c', + 'openssl/ssl/quic/json_enc.c', + 'openssl/ssl/quic/qlog.c', + 'openssl/ssl/quic/qlog_event_helpers.c', + 'openssl/ssl/quic/quic_ackm.c', + 'openssl/ssl/quic/quic_cfq.c', + 'openssl/ssl/quic/quic_channel.c', + 'openssl/ssl/quic/quic_demux.c', + 'openssl/ssl/quic/quic_engine.c', + 'openssl/ssl/quic/quic_fc.c', + 'openssl/ssl/quic/quic_fifd.c', + 'openssl/ssl/quic/quic_impl.c', + 'openssl/ssl/quic/quic_lcidm.c', + 'openssl/ssl/quic/quic_method.c', + 'openssl/ssl/quic/quic_obj.c', + 'openssl/ssl/quic/quic_port.c', + 'openssl/ssl/quic/quic_rcidm.c', + 'openssl/ssl/quic/quic_reactor.c', + 'openssl/ssl/quic/quic_reactor_wait_ctx.c', + 'openssl/ssl/quic/quic_record_rx.c', + 'openssl/ssl/quic/quic_record_shared.c', + 'openssl/ssl/quic/quic_record_tx.c', + 'openssl/ssl/quic/quic_record_util.c', + 'openssl/ssl/quic/quic_rstream.c', + 'openssl/ssl/quic/quic_rx_depack.c', + 'openssl/ssl/quic/quic_sf_list.c', + 'openssl/ssl/quic/quic_srt_gen.c', + 'openssl/ssl/quic/quic_srtm.c', + 'openssl/ssl/quic/quic_sstream.c', + 'openssl/ssl/quic/quic_statm.c', + 'openssl/ssl/quic/quic_stream_map.c', + 'openssl/ssl/quic/quic_thread_assist.c', + 'openssl/ssl/quic/quic_tls.c', + 'openssl/ssl/quic/quic_tls_api.c', + 'openssl/ssl/quic/quic_trace.c', + 'openssl/ssl/quic/quic_tserver.c', + 'openssl/ssl/quic/quic_txp.c', + 'openssl/ssl/quic/quic_txpim.c', + 'openssl/ssl/quic/quic_types.c', + 'openssl/ssl/quic/quic_wire.c', + 'openssl/ssl/quic/quic_wire_pkt.c', + 'openssl/ssl/quic/uint_set.c', 'openssl/ssl/record/rec_layer_d1.c', 'openssl/ssl/record/rec_layer_s3.c', - 'openssl/ssl/record/ssl3_buffer.c', - 'openssl/ssl/record/ssl3_record.c', - 'openssl/ssl/record/ssl3_record_tls13.c', + 'openssl/ssl/record/methods/dtls_meth.c', + 'openssl/ssl/record/methods/ssl3_meth.c', + 'openssl/ssl/record/methods/tls13_meth.c', + 'openssl/ssl/record/methods/tls1_meth.c', + 'openssl/ssl/record/methods/tls_common.c', + 'openssl/ssl/record/methods/tls_multib.c', + 'openssl/ssl/record/methods/tlsany_meth.c', + 'openssl/ssl/rio/poll_builder.c', + 'openssl/ssl/rio/poll_immediate.c', + 'openssl/ssl/rio/rio_notifier.c', 'openssl/ssl/statem/extensions.c', 'openssl/ssl/statem/extensions_clnt.c', 'openssl/ssl/statem/extensions_cust.c', @@ -148,6 +197,7 @@ 'openssl/crypto/bio/bss_conn.c', 'openssl/crypto/bio/bss_core.c', 'openssl/crypto/bio/bss_dgram.c', + 'openssl/crypto/bio/bss_dgram_pair.c', 'openssl/crypto/bio/bss_fd.c', 'openssl/crypto/bio/bss_file.c', 'openssl/crypto/bio/bss_log.c', @@ -207,6 +257,7 @@ 'openssl/crypto/cmp/cmp_client.c', 'openssl/crypto/cmp/cmp_ctx.c', 'openssl/crypto/cmp/cmp_err.c', + 'openssl/crypto/cmp/cmp_genm.c', 'openssl/crypto/cmp/cmp_hdr.c', 'openssl/crypto/cmp/cmp_http.c', 'openssl/crypto/cmp/cmp_msg.c', @@ -383,7 +434,9 @@ 'openssl/crypto/err/err_all.c', 'openssl/crypto/err/err_all_legacy.c', 'openssl/crypto/err/err_blocks.c', + 'openssl/crypto/err/err_mark.c', 'openssl/crypto/err/err_prn.c', + 'openssl/crypto/err/err_save.c', 'openssl/crypto/ess/ess_asn1.c', 'openssl/crypto/ess/ess_err.c', 'openssl/crypto/ess/ess_lib.c', @@ -466,7 +519,9 @@ 'openssl/crypto/evp/pmeth_check.c', 'openssl/crypto/evp/pmeth_gn.c', 'openssl/crypto/evp/pmeth_lib.c', + 'openssl/crypto/evp/s_lib.c', 'openssl/crypto/evp/signature.c', + 'openssl/crypto/evp/skeymgmt_meth.c', 'openssl/crypto/ffc/ffc_backend.c', 'openssl/crypto/ffc/ffc_dh.c', 'openssl/crypto/ffc/ffc_key_generate.c', @@ -474,7 +529,11 @@ 'openssl/crypto/ffc/ffc_params.c', 'openssl/crypto/ffc/ffc_params_generate.c', 'openssl/crypto/ffc/ffc_params_validate.c', + 'openssl/crypto/hashtable/hashfunc.c', + 'openssl/crypto/hashtable/hashtable.c', 'openssl/crypto/hmac/hmac.c', + 'openssl/crypto/hpke/hpke.c', + 'openssl/crypto/hpke/hpke_util.c', 'openssl/crypto/http/http_client.c', 'openssl/crypto/http/http_err.c', 'openssl/crypto/http/http_lib.c', @@ -488,6 +547,7 @@ 'openssl/crypto/lhash/lhash.c', 'openssl/crypto/asn1_dsa.c', 'openssl/crypto/bsearch.c', + 'openssl/crypto/comp_methods.c', 'openssl/crypto/context.c', 'openssl/crypto/core_algorithm.c', 'openssl/crypto/core_fetch.c', @@ -497,10 +557,13 @@ 'openssl/crypto/cryptlib.c', 'openssl/crypto/ctype.c', 'openssl/crypto/cversion.c', + 'openssl/crypto/defaults.c', 'openssl/crypto/der_writer.c', + 'openssl/crypto/deterministic_nonce.c', 'openssl/crypto/ebcdic.c', 'openssl/crypto/ex_data.c', 'openssl/crypto/getenv.c', + 'openssl/crypto/indicator_core.c', 'openssl/crypto/info.c', 'openssl/crypto/init.c', 'openssl/crypto/initthread.c', @@ -524,12 +587,16 @@ 'openssl/crypto/provider_core.c', 'openssl/crypto/provider_predefined.c', 'openssl/crypto/punycode.c', + 'openssl/crypto/quic_vlint.c', 'openssl/crypto/self_test_core.c', + 'openssl/crypto/sleep.c', 'openssl/crypto/sparse_array.c', + 'openssl/crypto/ssl_err.c', 'openssl/crypto/threads_lib.c', 'openssl/crypto/threads_none.c', 'openssl/crypto/threads_pthread.c', 'openssl/crypto/threads_win.c', + 'openssl/crypto/time.c', 'openssl/crypto/trace.c', 'openssl/crypto/uid.c', 'openssl/crypto/md4/md4_dgst.c', @@ -539,6 +606,15 @@ 'openssl/crypto/md5/md5_sha1.c', 'openssl/crypto/mdc2/mdc2_one.c', 'openssl/crypto/mdc2/mdc2dgst.c', + 'openssl/crypto/ml_dsa/ml_dsa_encoders.c', + 'openssl/crypto/ml_dsa/ml_dsa_key.c', + 'openssl/crypto/ml_dsa/ml_dsa_key_compress.c', + 'openssl/crypto/ml_dsa/ml_dsa_matrix.c', + 'openssl/crypto/ml_dsa/ml_dsa_ntt.c', + 'openssl/crypto/ml_dsa/ml_dsa_params.c', + 'openssl/crypto/ml_dsa/ml_dsa_sample.c', + 'openssl/crypto/ml_dsa/ml_dsa_sign.c', + 'openssl/crypto/ml_kem/ml_kem.c', 'openssl/crypto/modes/cbc128.c', 'openssl/crypto/modes/ccm128.c', 'openssl/crypto/modes/cfb128.c', @@ -550,6 +626,7 @@ 'openssl/crypto/modes/siv128.c', 'openssl/crypto/modes/wrap128.c', 'openssl/crypto/modes/xts128.c', + 'openssl/crypto/modes/xts128gb.c', 'openssl/crypto/objects/o_names.c', 'openssl/crypto/objects/obj_dat.c', 'openssl/crypto/objects/obj_err.c', @@ -613,6 +690,7 @@ 'openssl/crypto/rand/rand_lib.c', 'openssl/crypto/rand/rand_meth.c', 'openssl/crypto/rand/rand_pool.c', + 'openssl/crypto/rand/rand_uniform.c', 'openssl/crypto/rand/randfile.c', 'openssl/crypto/rc2/rc2_cbc.c', 'openssl/crypto/rc2/rc2_ecb.c', @@ -658,6 +736,16 @@ 'openssl/crypto/sha/sha3.c', 'openssl/crypto/sha/sha512.c', 'openssl/crypto/siphash/siphash.c', + 'openssl/crypto/slh_dsa/slh_adrs.c', + 'openssl/crypto/slh_dsa/slh_dsa.c', + 'openssl/crypto/slh_dsa/slh_dsa_hash_ctx.c', + 'openssl/crypto/slh_dsa/slh_dsa_key.c', + 'openssl/crypto/slh_dsa/slh_fors.c', + 'openssl/crypto/slh_dsa/slh_hash.c', + 'openssl/crypto/slh_dsa/slh_hypertree.c', + 'openssl/crypto/slh_dsa/slh_params.c', + 'openssl/crypto/slh_dsa/slh_wots.c', + 'openssl/crypto/slh_dsa/slh_xmss.c', 'openssl/crypto/sm2/sm2_crypt.c', 'openssl/crypto/sm2/sm2_err.c', 'openssl/crypto/sm2/sm2_key.c', @@ -675,6 +763,12 @@ 'openssl/crypto/store/store_register.c', 'openssl/crypto/store/store_result.c', 'openssl/crypto/store/store_strings.c', + 'openssl/crypto/thread/arch/thread_none.c', + 'openssl/crypto/thread/arch/thread_posix.c', + 'openssl/crypto/thread/arch/thread_win.c', + 'openssl/crypto/thread/api.c', + 'openssl/crypto/thread/arch.c', + 'openssl/crypto/thread/internal.c', 'openssl/crypto/ts/ts_asn1.c', 'openssl/crypto/ts/ts_conf.c', 'openssl/crypto/ts/ts_err.c', @@ -702,14 +796,22 @@ 'openssl/crypto/x509/pcy_map.c', 'openssl/crypto/x509/pcy_node.c', 'openssl/crypto/x509/pcy_tree.c', + 'openssl/crypto/x509/t_acert.c', 'openssl/crypto/x509/t_crl.c', 'openssl/crypto/x509/t_req.c', 'openssl/crypto/x509/t_x509.c', + 'openssl/crypto/x509/v3_aaa.c', + 'openssl/crypto/x509/v3_ac_tgt.c', 'openssl/crypto/x509/v3_addr.c', 'openssl/crypto/x509/v3_admis.c', 'openssl/crypto/x509/v3_akeya.c', 'openssl/crypto/x509/v3_akid.c', 'openssl/crypto/x509/v3_asid.c', + 'openssl/crypto/x509/v3_attrdesc.c', + 'openssl/crypto/x509/v3_attrmap.c', + 'openssl/crypto/x509/v3_audit_id.c', + 'openssl/crypto/x509/v3_authattid.c', + 'openssl/crypto/x509/v3_battcons.c', 'openssl/crypto/x509/v3_bcons.c', 'openssl/crypto/x509/v3_bitst.c', 'openssl/crypto/x509/v3_conf.c', @@ -718,12 +820,17 @@ 'openssl/crypto/x509/v3_enum.c', 'openssl/crypto/x509/v3_extku.c', 'openssl/crypto/x509/v3_genn.c', + 'openssl/crypto/x509/v3_group_ac.c', 'openssl/crypto/x509/v3_ia5.c', + 'openssl/crypto/x509/v3_ind_iss.c', 'openssl/crypto/x509/v3_info.c', 'openssl/crypto/x509/v3_int.c', + 'openssl/crypto/x509/v3_iobo.c', 'openssl/crypto/x509/v3_ist.c', 'openssl/crypto/x509/v3_lib.c', 'openssl/crypto/x509/v3_ncons.c', + 'openssl/crypto/x509/v3_no_ass.c', + 'openssl/crypto/x509/v3_no_rev_avail.c', 'openssl/crypto/x509/v3_pci.c', 'openssl/crypto/x509/v3_pcia.c', 'openssl/crypto/x509/v3_pcons.c', @@ -731,13 +838,20 @@ 'openssl/crypto/x509/v3_pmaps.c', 'openssl/crypto/x509/v3_prn.c', 'openssl/crypto/x509/v3_purp.c', + 'openssl/crypto/x509/v3_rolespec.c', 'openssl/crypto/x509/v3_san.c', + 'openssl/crypto/x509/v3_sda.c', + 'openssl/crypto/x509/v3_single_use.c', 'openssl/crypto/x509/v3_skid.c', + 'openssl/crypto/x509/v3_soa_id.c', 'openssl/crypto/x509/v3_sxnet.c', + 'openssl/crypto/x509/v3_timespec.c', 'openssl/crypto/x509/v3_tlsf.c', + 'openssl/crypto/x509/v3_usernotice.c', 'openssl/crypto/x509/v3_utf8.c', 'openssl/crypto/x509/v3_utl.c', 'openssl/crypto/x509/v3err.c', + 'openssl/crypto/x509/x509_acert.c', 'openssl/crypto/x509/x509_att.c', 'openssl/crypto/x509/x509_cmp.c', 'openssl/crypto/x509/x509_d2.c', @@ -755,6 +869,7 @@ 'openssl/crypto/x509/x509_v3.c', 'openssl/crypto/x509/x509_vfy.c', 'openssl/crypto/x509/x509_vpm.c', + 'openssl/crypto/x509/x509aset.c', 'openssl/crypto/x509/x509cset.c', 'openssl/crypto/x509/x509name.c', 'openssl/crypto/x509/x509rset.c', @@ -764,6 +879,7 @@ 'openssl/crypto/x509/x_attrib.c', 'openssl/crypto/x509/x_crl.c', 'openssl/crypto/x509/x_exten.c', + 'openssl/crypto/x509/x_ietfatt.c', 'openssl/crypto/x509/x_name.c', 'openssl/crypto/x509/x_pubkey.c', 'openssl/crypto/x509/x_req.c', @@ -796,6 +912,9 @@ 'openssl/providers/implementations/ciphers/cipher_aes_ccm_hw.c', 'openssl/providers/implementations/ciphers/cipher_aes_gcm.c', 'openssl/providers/implementations/ciphers/cipher_aes_gcm_hw.c', + 'openssl/providers/implementations/ciphers/cipher_aes_gcm_siv.c', + 'openssl/providers/implementations/ciphers/cipher_aes_gcm_siv_hw.c', + 'openssl/providers/implementations/ciphers/cipher_aes_gcm_siv_polyval.c', 'openssl/providers/implementations/ciphers/cipher_aes_hw.c', 'openssl/providers/implementations/ciphers/cipher_aes_ocb.c', 'openssl/providers/implementations/ciphers/cipher_aes_ocb_hw.c', @@ -820,7 +939,13 @@ 'openssl/providers/implementations/ciphers/cipher_cts.c', 'openssl/providers/implementations/ciphers/cipher_null.c', 'openssl/providers/implementations/ciphers/cipher_sm4.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_ccm.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_ccm_hw.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_gcm.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_gcm_hw.c', 'openssl/providers/implementations/ciphers/cipher_sm4_hw.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_xts.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_xts_hw.c', 'openssl/providers/implementations/ciphers/cipher_tdes.c', 'openssl/providers/implementations/ciphers/cipher_tdes_common.c', 'openssl/providers/implementations/ciphers/cipher_tdes_default.c', @@ -849,11 +974,16 @@ 'openssl/providers/implementations/encode_decode/encode_key2ms.c', 'openssl/providers/implementations/encode_decode/encode_key2text.c', 'openssl/providers/implementations/encode_decode/endecoder_common.c', + 'openssl/providers/implementations/encode_decode/ml_common_codecs.c', + 'openssl/providers/implementations/encode_decode/ml_dsa_codecs.c', + 'openssl/providers/implementations/encode_decode/ml_kem_codecs.c', 'openssl/providers/implementations/exchange/dh_exch.c', 'openssl/providers/implementations/exchange/ecdh_exch.c', 'openssl/providers/implementations/exchange/ecx_exch.c', 'openssl/providers/implementations/exchange/kdf_exch.c', + 'openssl/providers/implementations/kdfs/argon2.c', 'openssl/providers/implementations/kdfs/hkdf.c', + 'openssl/providers/implementations/kdfs/hmacdrbg_kdf.c', 'openssl/providers/implementations/kdfs/kbkdf.c', 'openssl/providers/implementations/kdfs/krb5kdf.c', 'openssl/providers/implementations/kdfs/pbkdf2.c', @@ -864,6 +994,11 @@ 'openssl/providers/implementations/kdfs/sskdf.c', 'openssl/providers/implementations/kdfs/tls1_prf.c', 'openssl/providers/implementations/kdfs/x942kdf.c', + 'openssl/providers/implementations/kem/ec_kem.c', + 'openssl/providers/implementations/kem/ecx_kem.c', + 'openssl/providers/implementations/kem/kem_util.c', + 'openssl/providers/implementations/kem/ml_kem_kem.c', + 'openssl/providers/implementations/kem/mlx_kem.c', 'openssl/providers/implementations/kem/rsa_kem.c', 'openssl/providers/implementations/keymgmt/dh_kmgmt.c', 'openssl/providers/implementations/keymgmt/dsa_kmgmt.c', @@ -871,7 +1006,11 @@ 'openssl/providers/implementations/keymgmt/ecx_kmgmt.c', 'openssl/providers/implementations/keymgmt/kdf_legacy_kmgmt.c', 'openssl/providers/implementations/keymgmt/mac_legacy_kmgmt.c', + 'openssl/providers/implementations/keymgmt/ml_dsa_kmgmt.c', + 'openssl/providers/implementations/keymgmt/ml_kem_kmgmt.c', + 'openssl/providers/implementations/keymgmt/mlx_kmgmt.c', 'openssl/providers/implementations/keymgmt/rsa_kmgmt.c', + 'openssl/providers/implementations/keymgmt/slh_dsa_kmgmt.c', 'openssl/providers/implementations/macs/blake2b_mac.c', 'openssl/providers/implementations/macs/blake2s_mac.c', 'openssl/providers/implementations/macs/cmac_prov.c', @@ -880,12 +1019,12 @@ 'openssl/providers/implementations/macs/kmac_prov.c', 'openssl/providers/implementations/macs/poly1305_prov.c', 'openssl/providers/implementations/macs/siphash_prov.c', - 'openssl/providers/implementations/rands/crngt.c', 'openssl/providers/implementations/rands/drbg.c', 'openssl/providers/implementations/rands/drbg_ctr.c', 'openssl/providers/implementations/rands/drbg_hash.c', 'openssl/providers/implementations/rands/drbg_hmac.c', 'openssl/providers/implementations/rands/seed_src.c', + 'openssl/providers/implementations/rands/seed_src_jitter.c', 'openssl/providers/implementations/rands/test_rng.c', 'openssl/providers/implementations/rands/seeding/rand_cpu_x86.c', 'openssl/providers/implementations/rands/seeding/rand_tsc.c', @@ -895,17 +1034,23 @@ 'openssl/providers/implementations/signature/ecdsa_sig.c', 'openssl/providers/implementations/signature/eddsa_sig.c', 'openssl/providers/implementations/signature/mac_legacy_sig.c', + 'openssl/providers/implementations/signature/ml_dsa_sig.c', 'openssl/providers/implementations/signature/rsa_sig.c', + 'openssl/providers/implementations/signature/slh_dsa_sig.c', 'openssl/providers/implementations/signature/sm2_sig.c', + 'openssl/providers/implementations/skeymgmt/aes_skmgmt.c', + 'openssl/providers/implementations/skeymgmt/generic.c', 'openssl/providers/implementations/storemgmt/file_store.c', 'openssl/providers/implementations/storemgmt/file_store_any2obj.c', - 'openssl/ssl/s3_cbc.c', + 'openssl/ssl/record/methods/ssl3_cbc.c', 'openssl/providers/common/der/der_dsa_key.c', 'openssl/providers/common/der/der_dsa_sig.c', 'openssl/providers/common/der/der_ec_key.c', 'openssl/providers/common/der/der_ec_sig.c', 'openssl/providers/common/der/der_ecx_key.c', + 'openssl/providers/common/der/der_ml_dsa_key.c', 'openssl/providers/common/der/der_rsa_key.c', + 'openssl/providers/common/der/der_slh_dsa_key.c', 'openssl/providers/common/provider_ctx.c', 'openssl/providers/common/provider_err.c', 'openssl/providers/implementations/ciphers/ciphercommon.c', @@ -916,7 +1061,7 @@ 'openssl/providers/implementations/ciphers/ciphercommon_gcm_hw.c', 'openssl/providers/implementations/ciphers/ciphercommon_hw.c', 'openssl/providers/implementations/digests/digestcommon.c', - 'openssl/ssl/record/tls_pad.c', + 'openssl/ssl/record/methods/tls_pad.c', 'openssl/providers/implementations/ciphers/cipher_blowfish.c', 'openssl/providers/implementations/ciphers/cipher_blowfish_hw.c', 'openssl/providers/implementations/ciphers/cipher_cast5.c', @@ -941,6 +1086,7 @@ 'openssl/providers/implementations/digests/ripemd_prov.c', 'openssl/providers/implementations/digests/wp_prov.c', 'openssl/providers/implementations/kdfs/pbkdf1.c', + 'openssl/providers/implementations/kdfs/pvkkdf.c', 'openssl/providers/prov_running.c', 'openssl/providers/legacyprov.c', ], @@ -950,10 +1096,16 @@ './config/archs/BSD-x86_64/asm_avx2/crypto/aes/aesni-sha1-x86_64.s', './config/archs/BSD-x86_64/asm_avx2/crypto/aes/aesni-sha256-x86_64.s', './config/archs/BSD-x86_64/asm_avx2/crypto/aes/aesni-x86_64.s', + './config/archs/BSD-x86_64/asm_avx2/crypto/aes/aesni-xts-avx512.s', './config/archs/BSD-x86_64/asm_avx2/crypto/aes/bsaes-x86_64.s', './config/archs/BSD-x86_64/asm_avx2/crypto/aes/vpaes-x86_64.s', + './config/archs/BSD-x86_64/asm_avx2/crypto/bn/rsaz-2k-avx512.s', + './config/archs/BSD-x86_64/asm_avx2/crypto/bn/rsaz-2k-avxifma.s', + './config/archs/BSD-x86_64/asm_avx2/crypto/bn/rsaz-3k-avx512.s', + './config/archs/BSD-x86_64/asm_avx2/crypto/bn/rsaz-3k-avxifma.s', + './config/archs/BSD-x86_64/asm_avx2/crypto/bn/rsaz-4k-avx512.s', + './config/archs/BSD-x86_64/asm_avx2/crypto/bn/rsaz-4k-avxifma.s', './config/archs/BSD-x86_64/asm_avx2/crypto/bn/rsaz-avx2.s', - './config/archs/BSD-x86_64/asm_avx2/crypto/bn/rsaz-avx512.s', './config/archs/BSD-x86_64/asm_avx2/crypto/bn/rsaz-x86_64.s', './config/archs/BSD-x86_64/asm_avx2/crypto/bn/x86_64-gf2m.s', './config/archs/BSD-x86_64/asm_avx2/crypto/bn/x86_64-mont.s', @@ -962,8 +1114,10 @@ './config/archs/BSD-x86_64/asm_avx2/crypto/chacha/chacha-x86_64.s', './config/archs/BSD-x86_64/asm_avx2/crypto/ec/ecp_nistz256-x86_64.s', './config/archs/BSD-x86_64/asm_avx2/crypto/ec/x25519-x86_64.s', + './config/archs/BSD-x86_64/asm_avx2/crypto/params_idx.c', './config/archs/BSD-x86_64/asm_avx2/crypto/x86_64cpuid.s', './config/archs/BSD-x86_64/asm_avx2/crypto/md5/md5-x86_64.s', + './config/archs/BSD-x86_64/asm_avx2/crypto/modes/aes-gcm-avx512.s', './config/archs/BSD-x86_64/asm_avx2/crypto/modes/aesni-gcm-x86_64.s', './config/archs/BSD-x86_64/asm_avx2/crypto/modes/ghash-x86_64.s', './config/archs/BSD-x86_64/asm_avx2/crypto/poly1305/poly1305-x86_64.s', @@ -982,7 +1136,9 @@ './config/archs/BSD-x86_64/asm_avx2/providers/common/der/der_dsa_gen.c', './config/archs/BSD-x86_64/asm_avx2/providers/common/der/der_ec_gen.c', './config/archs/BSD-x86_64/asm_avx2/providers/common/der/der_ecx_gen.c', + './config/archs/BSD-x86_64/asm_avx2/providers/common/der/der_ml_dsa_gen.c', './config/archs/BSD-x86_64/asm_avx2/providers/common/der/der_rsa_gen.c', + './config/archs/BSD-x86_64/asm_avx2/providers/common/der/der_slh_dsa_gen.c', './config/archs/BSD-x86_64/asm_avx2/providers/common/der/der_wrap_gen.c', './config/archs/BSD-x86_64/asm_avx2/providers/legacy.ld', './config/archs/BSD-x86_64/asm_avx2/providers/fips.ld', diff --git a/deps/openssl/config/archs/BSD-x86_64/asm_avx2/providers/common/der/der_ml_dsa_gen.c b/deps/openssl/config/archs/BSD-x86_64/asm_avx2/providers/common/der/der_ml_dsa_gen.c new file mode 100644 index 00000000000000..4a8a113a268578 --- /dev/null +++ b/deps/openssl/config/archs/BSD-x86_64/asm_avx2/providers/common/der/der_ml_dsa_gen.c @@ -0,0 +1,37 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from providers/common/der/der_ml_dsa_gen.c.in + * + * Copyright 2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include "prov/der_ml_dsa.h" + +/* Well known OIDs precompiled */ + +/* + * id-ml-dsa-44 OBJECT IDENTIFIER ::= { sigAlgs 17 } + */ +const unsigned char ossl_der_oid_id_ml_dsa_44[DER_OID_SZ_id_ml_dsa_44] = { + DER_OID_V_id_ml_dsa_44 +}; + +/* + * id-ml-dsa-65 OBJECT IDENTIFIER ::= { sigAlgs 18 } + */ +const unsigned char ossl_der_oid_id_ml_dsa_65[DER_OID_SZ_id_ml_dsa_65] = { + DER_OID_V_id_ml_dsa_65 +}; + +/* + * id-ml-dsa-87 OBJECT IDENTIFIER ::= { sigAlgs 19 } + */ +const unsigned char ossl_der_oid_id_ml_dsa_87[DER_OID_SZ_id_ml_dsa_87] = { + DER_OID_V_id_ml_dsa_87 +}; + diff --git a/deps/openssl/config/archs/BSD-x86_64/asm_avx2/providers/common/der/der_slh_dsa_gen.c b/deps/openssl/config/archs/BSD-x86_64/asm_avx2/providers/common/der/der_slh_dsa_gen.c new file mode 100644 index 00000000000000..1419a9515097dd --- /dev/null +++ b/deps/openssl/config/archs/BSD-x86_64/asm_avx2/providers/common/der/der_slh_dsa_gen.c @@ -0,0 +1,100 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from providers/common/der/der_slh_dsa_gen.c.in + * + * Copyright 2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include "prov/der_slh_dsa.h" + +/* Well known OIDs precompiled */ + +/* + * id-slh-dsa-sha2-128s OBJECT IDENTIFIER ::= { sigAlgs 20 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_128s[DER_OID_SZ_id_slh_dsa_sha2_128s] = { + DER_OID_V_id_slh_dsa_sha2_128s +}; + +/* + * id-slh-dsa-sha2-128f OBJECT IDENTIFIER ::= { sigAlgs 21 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_128f[DER_OID_SZ_id_slh_dsa_sha2_128f] = { + DER_OID_V_id_slh_dsa_sha2_128f +}; + +/* + * id-slh-dsa-sha2-192s OBJECT IDENTIFIER ::= { sigAlgs 22 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_192s[DER_OID_SZ_id_slh_dsa_sha2_192s] = { + DER_OID_V_id_slh_dsa_sha2_192s +}; + +/* + * id-slh-dsa-sha2-192f OBJECT IDENTIFIER ::= { sigAlgs 23 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_192f[DER_OID_SZ_id_slh_dsa_sha2_192f] = { + DER_OID_V_id_slh_dsa_sha2_192f +}; + +/* + * id-slh-dsa-sha2-256s OBJECT IDENTIFIER ::= { sigAlgs 24 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_256s[DER_OID_SZ_id_slh_dsa_sha2_256s] = { + DER_OID_V_id_slh_dsa_sha2_256s +}; + +/* + * id-slh-dsa-sha2-256f OBJECT IDENTIFIER ::= { sigAlgs 25 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_256f[DER_OID_SZ_id_slh_dsa_sha2_256f] = { + DER_OID_V_id_slh_dsa_sha2_256f +}; + +/* + * id-slh-dsa-shake-128s OBJECT IDENTIFIER ::= { sigAlgs 26 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_128s[DER_OID_SZ_id_slh_dsa_shake_128s] = { + DER_OID_V_id_slh_dsa_shake_128s +}; + +/* + * id-slh-dsa-shake-128f OBJECT IDENTIFIER ::= { sigAlgs 27 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_128f[DER_OID_SZ_id_slh_dsa_shake_128f] = { + DER_OID_V_id_slh_dsa_shake_128f +}; + +/* + * id-slh-dsa-shake-192s OBJECT IDENTIFIER ::= { sigAlgs 28 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_192s[DER_OID_SZ_id_slh_dsa_shake_192s] = { + DER_OID_V_id_slh_dsa_shake_192s +}; + +/* + * id-slh-dsa-shake-192f OBJECT IDENTIFIER ::= { sigAlgs 29 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_192f[DER_OID_SZ_id_slh_dsa_shake_192f] = { + DER_OID_V_id_slh_dsa_shake_192f +}; + +/* + * id-slh-dsa-shake-256s OBJECT IDENTIFIER ::= { sigAlgs 30 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_256s[DER_OID_SZ_id_slh_dsa_shake_256s] = { + DER_OID_V_id_slh_dsa_shake_256s +}; + +/* + * id-slh-dsa-shake-256f OBJECT IDENTIFIER ::= { sigAlgs 31 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_256f[DER_OID_SZ_id_slh_dsa_shake_256f] = { + DER_OID_V_id_slh_dsa_shake_256f +}; + diff --git a/deps/openssl/config/archs/BSD-x86_64/asm_avx2/providers/common/include/prov/der_ml_dsa.h b/deps/openssl/config/archs/BSD-x86_64/asm_avx2/providers/common/include/prov/der_ml_dsa.h new file mode 100644 index 00000000000000..c55f780ab4527c --- /dev/null +++ b/deps/openssl/config/archs/BSD-x86_64/asm_avx2/providers/common/include/prov/der_ml_dsa.h @@ -0,0 +1,40 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from providers/common/include/prov/der_ml_dsa.h.in + * + * Copyright 2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include "internal/der.h" +#include "crypto/ml_dsa.h" + +/* Well known OIDs precompiled */ + +/* + * id-ml-dsa-44 OBJECT IDENTIFIER ::= { sigAlgs 17 } + */ +#define DER_OID_V_id_ml_dsa_44 DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x11 +#define DER_OID_SZ_id_ml_dsa_44 11 +extern const unsigned char ossl_der_oid_id_ml_dsa_44[DER_OID_SZ_id_ml_dsa_44]; + +/* + * id-ml-dsa-65 OBJECT IDENTIFIER ::= { sigAlgs 18 } + */ +#define DER_OID_V_id_ml_dsa_65 DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x12 +#define DER_OID_SZ_id_ml_dsa_65 11 +extern const unsigned char ossl_der_oid_id_ml_dsa_65[DER_OID_SZ_id_ml_dsa_65]; + +/* + * id-ml-dsa-87 OBJECT IDENTIFIER ::= { sigAlgs 19 } + */ +#define DER_OID_V_id_ml_dsa_87 DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x13 +#define DER_OID_SZ_id_ml_dsa_87 11 +extern const unsigned char ossl_der_oid_id_ml_dsa_87[DER_OID_SZ_id_ml_dsa_87]; + + +int ossl_DER_w_algorithmIdentifier_ML_DSA(WPACKET *pkt, int tag, ML_DSA_KEY *key); diff --git a/deps/openssl/config/archs/BSD-x86_64/asm_avx2/providers/common/include/prov/der_slh_dsa.h b/deps/openssl/config/archs/BSD-x86_64/asm_avx2/providers/common/include/prov/der_slh_dsa.h new file mode 100644 index 00000000000000..760f8e7699be72 --- /dev/null +++ b/deps/openssl/config/archs/BSD-x86_64/asm_avx2/providers/common/include/prov/der_slh_dsa.h @@ -0,0 +1,103 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from providers/common/include/prov/der_slh_dsa.h.in + * + * Copyright 2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include "internal/der.h" +#include "crypto/slh_dsa.h" + +/* Well known OIDs precompiled */ + +/* + * id-slh-dsa-sha2-128s OBJECT IDENTIFIER ::= { sigAlgs 20 } + */ +#define DER_OID_V_id_slh_dsa_sha2_128s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x14 +#define DER_OID_SZ_id_slh_dsa_sha2_128s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_128s[DER_OID_SZ_id_slh_dsa_sha2_128s]; + +/* + * id-slh-dsa-sha2-128f OBJECT IDENTIFIER ::= { sigAlgs 21 } + */ +#define DER_OID_V_id_slh_dsa_sha2_128f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x15 +#define DER_OID_SZ_id_slh_dsa_sha2_128f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_128f[DER_OID_SZ_id_slh_dsa_sha2_128f]; + +/* + * id-slh-dsa-sha2-192s OBJECT IDENTIFIER ::= { sigAlgs 22 } + */ +#define DER_OID_V_id_slh_dsa_sha2_192s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x16 +#define DER_OID_SZ_id_slh_dsa_sha2_192s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_192s[DER_OID_SZ_id_slh_dsa_sha2_192s]; + +/* + * id-slh-dsa-sha2-192f OBJECT IDENTIFIER ::= { sigAlgs 23 } + */ +#define DER_OID_V_id_slh_dsa_sha2_192f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x17 +#define DER_OID_SZ_id_slh_dsa_sha2_192f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_192f[DER_OID_SZ_id_slh_dsa_sha2_192f]; + +/* + * id-slh-dsa-sha2-256s OBJECT IDENTIFIER ::= { sigAlgs 24 } + */ +#define DER_OID_V_id_slh_dsa_sha2_256s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x18 +#define DER_OID_SZ_id_slh_dsa_sha2_256s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_256s[DER_OID_SZ_id_slh_dsa_sha2_256s]; + +/* + * id-slh-dsa-sha2-256f OBJECT IDENTIFIER ::= { sigAlgs 25 } + */ +#define DER_OID_V_id_slh_dsa_sha2_256f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x19 +#define DER_OID_SZ_id_slh_dsa_sha2_256f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_256f[DER_OID_SZ_id_slh_dsa_sha2_256f]; + +/* + * id-slh-dsa-shake-128s OBJECT IDENTIFIER ::= { sigAlgs 26 } + */ +#define DER_OID_V_id_slh_dsa_shake_128s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1A +#define DER_OID_SZ_id_slh_dsa_shake_128s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_128s[DER_OID_SZ_id_slh_dsa_shake_128s]; + +/* + * id-slh-dsa-shake-128f OBJECT IDENTIFIER ::= { sigAlgs 27 } + */ +#define DER_OID_V_id_slh_dsa_shake_128f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1B +#define DER_OID_SZ_id_slh_dsa_shake_128f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_128f[DER_OID_SZ_id_slh_dsa_shake_128f]; + +/* + * id-slh-dsa-shake-192s OBJECT IDENTIFIER ::= { sigAlgs 28 } + */ +#define DER_OID_V_id_slh_dsa_shake_192s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1C +#define DER_OID_SZ_id_slh_dsa_shake_192s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_192s[DER_OID_SZ_id_slh_dsa_shake_192s]; + +/* + * id-slh-dsa-shake-192f OBJECT IDENTIFIER ::= { sigAlgs 29 } + */ +#define DER_OID_V_id_slh_dsa_shake_192f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1D +#define DER_OID_SZ_id_slh_dsa_shake_192f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_192f[DER_OID_SZ_id_slh_dsa_shake_192f]; + +/* + * id-slh-dsa-shake-256s OBJECT IDENTIFIER ::= { sigAlgs 30 } + */ +#define DER_OID_V_id_slh_dsa_shake_256s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1E +#define DER_OID_SZ_id_slh_dsa_shake_256s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_256s[DER_OID_SZ_id_slh_dsa_shake_256s]; + +/* + * id-slh-dsa-shake-256f OBJECT IDENTIFIER ::= { sigAlgs 31 } + */ +#define DER_OID_V_id_slh_dsa_shake_256f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1F +#define DER_OID_SZ_id_slh_dsa_shake_256f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_256f[DER_OID_SZ_id_slh_dsa_shake_256f]; + + +int ossl_DER_w_algorithmIdentifier_SLH_DSA(WPACKET *pkt, int tag, SLH_DSA_KEY *key); diff --git a/deps/openssl/config/archs/BSD-x86_64/no-asm/apps/progs.c b/deps/openssl/config/archs/BSD-x86_64/no-asm/apps/progs.c index 43cef00799b86e..acc204a3e6e781 100644 --- a/deps/openssl/config/archs/BSD-x86_64/no-asm/apps/progs.c +++ b/deps/openssl/config/archs/BSD-x86_64/no-asm/apps/progs.c @@ -89,6 +89,7 @@ FUNCTION functions[] = { {FT_general, "s_time", s_time_main, s_time_options, NULL, NULL}, #endif {FT_general, "sess_id", sess_id_main, sess_id_options, NULL, NULL}, + {FT_general, "skeyutl", skeyutl_main, skeyutl_options, NULL, NULL}, {FT_general, "smime", smime_main, smime_options, NULL, NULL}, {FT_general, "speed", speed_main, speed_options, NULL, NULL}, {FT_general, "spkac", spkac_main, spkac_options, NULL, NULL}, @@ -225,9 +226,15 @@ FUNCTION functions[] = { {FT_cipher, "camellia-256-ecb", enc_main, enc_options, NULL}, #endif {FT_cipher, "base64", enc_main, enc_options, NULL}, -#ifdef ZLIB +#ifndef OPENSSL_NO_ZLIB {FT_cipher, "zlib", enc_main, enc_options, NULL}, #endif +#ifndef OPENSSL_NO_BROTLI + {FT_cipher, "brotli", enc_main, enc_options, NULL}, +#endif +#ifndef OPENSSL_NO_ZSTD + {FT_cipher, "zstd", enc_main, enc_options, NULL}, +#endif #ifndef OPENSSL_NO_DES {FT_cipher, "des", enc_main, enc_options, NULL}, #endif diff --git a/deps/openssl/config/archs/BSD-x86_64/no-asm/configdata.pm b/deps/openssl/config/archs/BSD-x86_64/no-asm/configdata.pm index 11790411015e3e..35c1e9ed9f36f8 100644 --- a/deps/openssl/config/archs/BSD-x86_64/no-asm/configdata.pm +++ b/deps/openssl/config/archs/BSD-x86_64/no-asm/configdata.pm @@ -18,6 +18,7 @@ our %config = ( "ARFLAGS" => [ "qc" ], + "ASFLAGS" => [], "CC" => "cc", "CFLAGS" => [ "-Wall -O3" @@ -27,14 +28,16 @@ our %config = ( "CPPINCLUDES" => [], "CXXFLAGS" => [], "FIPSKEY" => "f4556650ac31d35461610bac4ed81b1a181b2d8a43ea2854cbae22ca74560813", + "FIPS_VENDOR" => "OpenSSL FIPS Provider", "HASHBANGPERL" => "/usr/bin/env perl", "LDFLAGS" => [], "LDLIBS" => [], + "OBJCOPY" => "objcopy", "PERL" => "/usr/bin/perl", "RANLIB" => "ranlib", "RC" => "windres", "RCFLAGS" => [], - "api" => "30000", + "api" => "30500", "b32" => "0", "b64" => "0", "b64l" => "1", @@ -56,11 +59,13 @@ our %config = ( "doc/build.info", "test/build.info", "engines/build.info", + "exporters/build.info", "crypto/objects/build.info", "crypto/buffer/build.info", "crypto/bio/build.info", "crypto/stack/build.info", "crypto/lhash/build.info", + "crypto/hashtable/build.info", "crypto/rand/build.info", "crypto/evp/build.info", "crypto/asn1/build.info", @@ -78,6 +83,7 @@ our %config = ( "crypto/md5/build.info", "crypto/sha/build.info", "crypto/mdc2/build.info", + "crypto/ml_kem/build.info", "crypto/hmac/build.info", "crypto/ripemd/build.info", "crypto/whrlpool/build.info", @@ -119,11 +125,19 @@ our %config = ( "crypto/cmp/build.info", "crypto/encode_decode/build.info", "crypto/ffc/build.info", + "crypto/hpke/build.info", + "crypto/thread/build.info", + "crypto/ml_dsa/build.info", + "crypto/slh_dsa/build.info", + "ssl/record/build.info", + "ssl/rio/build.info", + "ssl/quic/build.info", "apps/lib/build.info", "providers/common/build.info", "providers/implementations/build.info", "providers/fips/build.info", "doc/man1/build.info", + "ssl/record/methods/build.info", "providers/common/der/build.info", "providers/implementations/digests/build.info", "providers/implementations/ciphers/build.info", @@ -137,6 +151,7 @@ our %config = ( "providers/implementations/encode_decode/build.info", "providers/implementations/storemgmt/build.info", "providers/implementations/kem/build.info", + "providers/implementations/skeymgmt/build.info", "providers/implementations/rands/seeding/build.info" ], "build_metadata" => "", @@ -154,7 +169,7 @@ our %config = ( ], "dynamic_engines" => "0", "ex_libs" => [], - "full_version" => "3.0.17", + "full_version" => "3.5.1", "includes" => [], "lflags" => [], "lib_defines" => [ @@ -163,9 +178,9 @@ our %config = ( "libdir" => "", "major" => "3", "makedep_scheme" => "gcc", - "minor" => "0", + "minor" => "5", "openssl_api_defines" => [ - "OPENSSL_CONFIGURED_API=30000" + "OPENSSL_CONFIGURED_API=30500" ], "openssl_feature_defines" => [ "OPENSSL_RAND_SEED_OS", @@ -173,27 +188,42 @@ our %config = ( "OPENSSL_NO_AFALGENG", "OPENSSL_NO_ASAN", "OPENSSL_NO_ASM", + "OPENSSL_NO_BROTLI", + "OPENSSL_NO_BROTLI_DYNAMIC", "OPENSSL_NO_COMP", "OPENSSL_NO_CRYPTO_MDEBUG", "OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE", + "OPENSSL_NO_DEMOS", "OPENSSL_NO_EC_NISTP_64_GCC_128", "OPENSSL_NO_EGD", "OPENSSL_NO_EXTERNAL_TESTS", + "OPENSSL_NO_FIPS_JITTER", "OPENSSL_NO_FUZZ_AFL", "OPENSSL_NO_FUZZ_LIBFUZZER", + "OPENSSL_NO_H3DEMO", + "OPENSSL_NO_HQINTEROP", + "OPENSSL_NO_JITTER", "OPENSSL_NO_KTLS", "OPENSSL_NO_LOADERENG", "OPENSSL_NO_MD2", "OPENSSL_NO_MSAN", + "OPENSSL_NO_PIE", "OPENSSL_NO_RC5", "OPENSSL_NO_SCTP", "OPENSSL_NO_SSL3", "OPENSSL_NO_SSL3_METHOD", + "OPENSSL_NO_SSLKEYLOG", + "OPENSSL_NO_TFO", "OPENSSL_NO_TRACE", "OPENSSL_NO_UBSAN", "OPENSSL_NO_UNIT_TEST", "OPENSSL_NO_UPLINK", "OPENSSL_NO_WEAK_SSL_CIPHERS", + "OPENSSL_NO_WINSTORE", + "OPENSSL_NO_ZLIB", + "OPENSSL_NO_ZLIB_DYNAMIC", + "OPENSSL_NO_ZSTD", + "OPENSSL_NO_ZSTD_DYNAMIC", "OPENSSL_NO_DYNAMIC_ENGINE" ], "openssl_other_defines" => [ @@ -201,11 +231,11 @@ our %config = ( ], "openssl_sys_defines" => [], "openssldir" => "", - "options" => "enable-ssl-trace enable-fips no-afalgeng no-asan no-asm no-buildtest-c++ no-comp no-crypto-mdebug no-crypto-mdebug-backtrace no-dynamic-engine no-ec_nistp_64_gcc_128 no-egd no-external-tests no-fuzz-afl no-fuzz-libfuzzer no-ktls no-loadereng no-md2 no-msan no-rc5 no-sctp no-shared no-ssl3 no-ssl3-method no-trace no-ubsan no-unit-test no-uplink no-weak-ssl-ciphers no-zlib no-zlib-dynamic", - "patch" => "17", + "options" => "enable-ssl-trace enable-fips no-afalgeng no-asan no-asm no-brotli no-brotli-dynamic no-buildtest-c++ no-comp no-crypto-mdebug no-crypto-mdebug-backtrace no-demos no-dynamic-engine no-ec_nistp_64_gcc_128 no-egd no-external-tests no-fips-jitter no-fuzz-afl no-fuzz-libfuzzer no-h3demo no-hqinterop no-jitter no-ktls no-loadereng no-md2 no-msan no-pie no-rc5 no-sctp no-shared no-ssl3 no-ssl3-method no-sslkeylog no-tfo no-trace no-ubsan no-unit-test no-uplink no-weak-ssl-ciphers no-winstore no-zlib no-zlib-dynamic no-zstd no-zstd-dynamic", + "patch" => "1", "perl_archname" => "x86_64-linux-gnu-thread-multi", "perl_cmd" => "/usr/bin/perl", - "perl_version" => "5.38.2", + "perl_version" => "5.34.0", "perlargv" => [ "no-comp", "no-shared", @@ -236,6 +266,7 @@ our %config = ( "LDLIBS" => undef, "MT" => undef, "MTFLAGS" => undef, + "OBJCOPY" => undef, "OPENSSL_LOCAL_CONFIG_DIR" => undef, "PERL" => undef, "RANLIB" => undef, @@ -259,7 +290,7 @@ our %config = ( "shlib_version" => "3", "sourcedir" => ".", "target" => "BSD-x86_64", - "version" => "3.0.17" + "version" => "3.5.1" ); our %target = ( "AR" => "ar", @@ -267,6 +298,7 @@ our %target = ( "CC" => "cc", "CFLAGS" => "-Wall -O3", "HASHBANGPERL" => "/usr/bin/env perl", + "OBJCOPY" => "objcopy", "RANLIB" => "ranlib", "RC" => "windres", "_conf_fname_int" => [ @@ -278,6 +310,8 @@ our %target = ( "Configurations/shared-info.pl" ], "asm_arch" => "x86_64", + "bin_cflags" => "", + "bin_lflags" => "", "bn_ops" => "SIXTY_FOUR_BIT_LONG", "build_file" => "Makefile", "build_scheme" => [ @@ -321,6 +355,8 @@ our %target = ( our @disablables = ( "acvp-tests", "afalgeng", + "apps", + "argon2", "aria", "asan", "asm", @@ -331,11 +367,14 @@ our @disablables = ( "autoload-config", "bf", "blake2", + "brotli", + "brotli-dynamic", "buildtest-c++", "bulk", "cached-fetch", "camellia", "capieng", + "winstore", "cast", "chacha", "cmac", @@ -344,11 +383,16 @@ our @disablables = ( "comp", "crypto-mdebug", "ct", + "default-thread-pool", + "demos", + "h3demo", + "hqinterop", "deprecated", "des", "devcryptoeng", "dgram", "dh", + "docs", "dsa", "dso", "dtls", @@ -358,6 +402,7 @@ our @disablables = ( "ec_nistp_64_gcc_128", "ecdh", "ecdsa", + "ecx", "egd", "engine", "err", @@ -365,10 +410,15 @@ our @disablables = ( "filenames", "fips", "fips-securitychecks", + "fips-post", + "fips-jitter", "fuzz-afl", "fuzz-libfuzzer", "gost", + "http", "idea", + "integrity-only-ciphers", + "jitter", "ktls", "legacy", "loadereng", @@ -376,6 +426,8 @@ our @disablables = ( "md2", "md4", "mdc2", + "ml-dsa", + "ml-kem", "module", "msan", "multiblock", @@ -384,10 +436,13 @@ our @disablables = ( "ocsp", "padlockeng", "pic", + "pie", "pinshared", "poly1305", "posix-io", "psk", + "quic", + "unstable-qlog", "rc2", "rc4", "rc5", @@ -401,7 +456,9 @@ our @disablables = ( "shared", "siphash", "siv", + "slh-dsa", "sm2", + "sm2-precomp", "sm3", "sm4", "sock", @@ -412,9 +469,13 @@ our @disablables = ( "ssl-trace", "static-engine", "stdio", + "sslkeylog", "tests", + "tfo", + "thread-pool", "threads", "tls", + "tls-deprecated-ec", "trace", "ts", "ubsan", @@ -425,6 +486,8 @@ our @disablables = ( "whirlpool", "zlib", "zlib-dynamic", + "zstd", + "zstd-dynamic", "ssl3", "ssl3-method", "tls1", @@ -446,32 +509,45 @@ our %disabled = ( "afalgeng" => "option", "asan" => "default", "asm" => "option", + "brotli" => "default", + "brotli-dynamic" => "default", "buildtest-c++" => "default", "comp" => "option", "crypto-mdebug" => "default", "crypto-mdebug-backtrace" => "default", + "demos" => "default", "dynamic-engine" => "cascade", "ec_nistp_64_gcc_128" => "default", "egd" => "default", "external-tests" => "default", + "fips-jitter" => "default", "fuzz-afl" => "default", "fuzz-libfuzzer" => "default", + "h3demo" => "default", + "hqinterop" => "default", + "jitter" => "default", "ktls" => "default", "loadereng" => "cascade", "md2" => "default", "msan" => "default", + "pie" => "default", "rc5" => "default", "sctp" => "default", "shared" => "option", "ssl3" => "default", "ssl3-method" => "default", + "sslkeylog" => "default", + "tfo" => "default", "trace" => "default", "ubsan" => "default", "unit-test" => "default", "uplink" => "no uplink_arch", "weak-ssl-ciphers" => "default", + "winstore" => "not-windows", "zlib" => "default", - "zlib-dynamic" => "default" + "zlib-dynamic" => "default", + "zstd" => "default", + "zstd-dynamic" => "default" ); our %withargs = (); our %unified_info = ( @@ -697,6 +773,11 @@ our %unified_info = ( "pod" => "1" } }, + "doc/man1/openssl-skeyutl.pod" => { + "doc/man1/openssl-skeyutl.pod.in" => { + "pod" => "1" + } + }, "doc/man1/openssl-smime.pod" => { "doc/man1/openssl-smime.pod.in" => { "pod" => "1" @@ -754,6 +835,21 @@ our %unified_info = ( } }, "generate" => { + "exporters/OpenSSLConfig.cmake" => { + "exporter" => "cmake" + }, + "exporters/OpenSSLConfigVersion.cmake" => { + "exporter" => "cmake" + }, + "exporters/libcrypto.pc" => { + "exporter" => "pkg-config" + }, + "exporters/libssl.pc" => { + "exporter" => "pkg-config" + }, + "exporters/openssl.pc" => { + "exporter" => "pkg-config" + }, "include/openssl/configuration.h" => { "skip" => "1" } @@ -774,6 +870,9 @@ our %unified_info = ( "providers/liblegacy.a" => { "noinst" => "1" }, + "providers/libtemplate.a" => { + "noinst" => "1" + }, "test/libtestutil.a" => { "has_main" => "1", "noinst" => "1" @@ -791,6 +890,9 @@ our %unified_info = ( } }, "programs" => { + "fuzz/acert-test" => { + "noinst" => "1" + }, "fuzz/asn1-test" => { "noinst" => "1" }, @@ -821,9 +923,60 @@ our %unified_info = ( "fuzz/ct-test" => { "noinst" => "1" }, + "fuzz/decoder-test" => { + "noinst" => "1" + }, + "fuzz/dtlsclient-test" => { + "noinst" => "1" + }, + "fuzz/dtlsserver-test" => { + "noinst" => "1" + }, + "fuzz/hashtable-test" => { + "noinst" => "1" + }, + "fuzz/ml-dsa-test" => { + "noinst" => "1" + }, + "fuzz/ml-kem-test" => { + "noinst" => "1" + }, + "fuzz/pem-test" => { + "noinst" => "1" + }, + "fuzz/provider-test" => { + "noinst" => "1" + }, + "fuzz/punycode-test" => { + "noinst" => "1" + }, + "fuzz/quic-client-test" => { + "noinst" => "1" + }, + "fuzz/quic-lcidm-test" => { + "noinst" => "1" + }, + "fuzz/quic-rcidm-test" => { + "noinst" => "1" + }, + "fuzz/quic-server-test" => { + "noinst" => "1" + }, + "fuzz/quic-srtm-test" => { + "noinst" => "1" + }, "fuzz/server-test" => { "noinst" => "1" }, + "fuzz/slh-dsa-test" => { + "noinst" => "1" + }, + "fuzz/smime-test" => { + "noinst" => "1" + }, + "fuzz/v3name-test" => { + "noinst" => "1" + }, "fuzz/x509-test" => { "noinst" => "1" }, @@ -875,18 +1028,30 @@ our %unified_info = ( "test/bftest" => { "noinst" => "1" }, + "test/bio_addr_test" => { + "noinst" => "1" + }, + "test/bio_base64_test" => { + "noinst" => "1" + }, "test/bio_callback_test" => { "noinst" => "1" }, "test/bio_core_test" => { "noinst" => "1" }, + "test/bio_dgram_test" => { + "noinst" => "1" + }, "test/bio_enc_test" => { "noinst" => "1" }, "test/bio_memleak_test" => { "noinst" => "1" }, + "test/bio_meth_test" => { + "noinst" => "1" + }, "test/bio_prefix_text" => { "noinst" => "1" }, @@ -896,6 +1061,9 @@ our %unified_info = ( "test/bio_readbuffer_test" => { "noinst" => "1" }, + "test/bio_tfo_test" => { + "noinst" => "1" + }, "test/bioprinttest" => { "noinst" => "1" }, @@ -905,6 +1073,9 @@ our %unified_info = ( "test/bntest" => { "noinst" => "1" }, + "test/build_wincrypt_test" => { + "noinst" => "1" + }, "test/buildtest_c_aes" => { "noinst" => "1" }, @@ -920,6 +1091,9 @@ our %unified_info = ( "test/buildtest_c_buffer" => { "noinst" => "1" }, + "test/buildtest_c_byteorder" => { + "noinst" => "1" + }, "test/buildtest_c_camellia" => { "noinst" => "1" }, @@ -944,9 +1118,6 @@ our %unified_info = ( "test/buildtest_c_core_dispatch" => { "noinst" => "1" }, - "test/buildtest_c_core_names" => { - "noinst" => "1" - }, "test/buildtest_c_core_object" => { "noinst" => "1" }, @@ -971,6 +1142,9 @@ our %unified_info = ( "test/buildtest_c_e_os2" => { "noinst" => "1" }, + "test/buildtest_c_e_ostime" => { + "noinst" => "1" + }, "test/buildtest_c_ebcdic" => { "noinst" => "1" }, @@ -998,12 +1172,18 @@ our %unified_info = ( "test/buildtest_c_hmac" => { "noinst" => "1" }, + "test/buildtest_c_hpke" => { + "noinst" => "1" + }, "test/buildtest_c_http" => { "noinst" => "1" }, "test/buildtest_c_idea" => { "noinst" => "1" }, + "test/buildtest_c_indicator" => { + "noinst" => "1" + }, "test/buildtest_c_kdf" => { "noinst" => "1" }, @@ -1019,6 +1199,9 @@ our %unified_info = ( "test/buildtest_c_mdc2" => { "noinst" => "1" }, + "test/buildtest_c_ml_kem" => { + "noinst" => "1" + }, "test/buildtest_c_modes" => { "noinst" => "1" }, @@ -1049,6 +1232,9 @@ our %unified_info = ( "test/buildtest_c_provider" => { "noinst" => "1" }, + "test/buildtest_c_quic" => { + "noinst" => "1" + }, "test/buildtest_c_rand" => { "noinst" => "1" }, @@ -1091,6 +1277,9 @@ our %unified_info = ( "test/buildtest_c_symhacks" => { "noinst" => "1" }, + "test/buildtest_c_thread" => { + "noinst" => "1" + }, "test/buildtest_c_tls1" => { "noinst" => "1" }, @@ -1106,6 +1295,12 @@ our %unified_info = ( "test/buildtest_c_whrlpool" => { "noinst" => "1" }, + "test/byteorder_test" => { + "noinst" => "1" + }, + "test/ca_internals_test" => { + "noinst" => "1" + }, "test/casttest" => { "noinst" => "1" }, @@ -1190,6 +1385,9 @@ our %unified_info = ( "test/danetest" => { "noinst" => "1" }, + "test/decoder_propq_test" => { + "noinst" => "1" + }, "test/defltfips_test" => { "noinst" => "1" }, @@ -1262,15 +1460,24 @@ our %unified_info = ( "test/evp_pkey_ctx_new_from_name" => { "noinst" => "1" }, + "test/evp_pkey_dhkem_test" => { + "noinst" => "1" + }, "test/evp_pkey_dparams_test" => { "noinst" => "1" }, "test/evp_pkey_provided_test" => { "noinst" => "1" }, + "test/evp_skey_test" => { + "noinst" => "1" + }, "test/evp_test" => { "noinst" => "1" }, + "test/evp_xof_test" => { + "noinst" => "1" + }, "test/exdatatest" => { "noinst" => "1" }, @@ -1298,6 +1505,9 @@ our %unified_info = ( "test/hmactest" => { "noinst" => "1" }, + "test/hpke_test" => { + "noinst" => "1" + }, "test/http_test" => { "noinst" => "1" }, @@ -1307,12 +1517,18 @@ our %unified_info = ( "test/igetest" => { "noinst" => "1" }, + "test/json_test" => { + "noinst" => "1" + }, "test/keymgmt_internal_test" => { "noinst" => "1" }, "test/lhash_test" => { "noinst" => "1" }, + "test/list_test" => { + "noinst" => "1" + }, "test/localetest" => { "noinst" => "1" }, @@ -1322,9 +1538,21 @@ our %unified_info = ( "test/mdc2test" => { "noinst" => "1" }, + "test/membio_test" => { + "noinst" => "1" + }, "test/memleaktest" => { "noinst" => "1" }, + "test/ml_dsa_test" => { + "noinst" => "1" + }, + "test/ml_kem_evp_extra_test" => { + "noinst" => "1" + }, + "test/ml_kem_internal_test" => { + "noinst" => "1" + }, "test/modes_internal_test" => { "noinst" => "1" }, @@ -1343,6 +1571,9 @@ our %unified_info = ( "test/packettest" => { "noinst" => "1" }, + "test/pairwise_fail_test" => { + "noinst" => "1" + }, "test/param_build_test" => { "noinst" => "1" }, @@ -1367,6 +1598,9 @@ our %unified_info = ( "test/pemtest" => { "noinst" => "1" }, + "test/pkcs12_api_test" => { + "noinst" => "1" + }, "test/pkcs12_format_test" => { "noinst" => "1" }, @@ -1382,6 +1616,9 @@ our %unified_info = ( "test/poly1305_internal_test" => { "noinst" => "1" }, + "test/priority_queue_test" => { + "noinst" => "1" + }, "test/property_test" => { "noinst" => "1" }, @@ -1391,6 +1628,9 @@ our %unified_info = ( "test/provfetchtest" => { "noinst" => "1" }, + "test/provider_default_search_path_test" => { + "noinst" => "1" + }, "test/provider_fallback_test" => { "noinst" => "1" }, @@ -1409,6 +1649,72 @@ our %unified_info = ( "test/punycode_test" => { "noinst" => "1" }, + "test/quic_ackm_test" => { + "noinst" => "1" + }, + "test/quic_cc_test" => { + "noinst" => "1" + }, + "test/quic_cfq_test" => { + "noinst" => "1" + }, + "test/quic_client_test" => { + "noinst" => "1" + }, + "test/quic_fc_test" => { + "noinst" => "1" + }, + "test/quic_fifd_test" => { + "noinst" => "1" + }, + "test/quic_lcidm_test" => { + "noinst" => "1" + }, + "test/quic_multistream_test" => { + "noinst" => "1" + }, + "test/quic_newcid_test" => { + "noinst" => "1" + }, + "test/quic_qlog_test" => { + "noinst" => "1" + }, + "test/quic_radix_test" => { + "noinst" => "1" + }, + "test/quic_rcidm_test" => { + "noinst" => "1" + }, + "test/quic_record_test" => { + "noinst" => "1" + }, + "test/quic_srt_gen_test" => { + "noinst" => "1" + }, + "test/quic_srtm_test" => { + "noinst" => "1" + }, + "test/quic_stream_test" => { + "noinst" => "1" + }, + "test/quic_tserver_test" => { + "noinst" => "1" + }, + "test/quic_txp_test" => { + "noinst" => "1" + }, + "test/quic_txpim_test" => { + "noinst" => "1" + }, + "test/quic_wire_test" => { + "noinst" => "1" + }, + "test/quicapitest" => { + "noinst" => "1" + }, + "test/quicfaultstest" => { + "noinst" => "1" + }, "test/rand_status_test" => { "noinst" => "1" }, @@ -1424,12 +1730,15 @@ our %unified_info = ( "test/rc5test" => { "noinst" => "1" }, - "test/rdrand_sanitytest" => { + "test/rdcpu_sanitytest" => { "noinst" => "1" }, "test/recordlentest" => { "noinst" => "1" }, + "test/rpktest" => { + "noinst" => "1" + }, "test/rsa_complex" => { "noinst" => "1" }, @@ -1442,6 +1751,12 @@ our %unified_info = ( "test/rsa_test" => { "noinst" => "1" }, + "test/rsa_x931_test" => { + "noinst" => "1" + }, + "test/safe_math_test" => { + "noinst" => "1" + }, "test/sanitytest" => { "noinst" => "1" }, @@ -1457,6 +1772,9 @@ our %unified_info = ( "test/siphash_internal_test" => { "noinst" => "1" }, + "test/slh_dsa_test" => { + "noinst" => "1" + }, "test/sm2_internal_test" => { "noinst" => "1" }, @@ -1478,6 +1796,9 @@ our %unified_info = ( "test/ssl_ctx_test" => { "noinst" => "1" }, + "test/ssl_handshake_rtt_test" => { + "noinst" => "1" + }, "test/ssl_old_test" => { "noinst" => "1" }, @@ -1499,12 +1820,18 @@ our %unified_info = ( "test/stack_test" => { "noinst" => "1" }, + "test/strtoultest" => { + "noinst" => "1" + }, "test/sysdefaulttest" => { "noinst" => "1" }, "test/test_test" => { "noinst" => "1" }, + "test/threadpool_test" => { + "noinst" => "1" + }, "test/threadstest" => { "noinst" => "1" }, @@ -1514,12 +1841,18 @@ our %unified_info = ( "test/time_offset_test" => { "noinst" => "1" }, + "test/time_test" => { + "noinst" => "1" + }, "test/tls13ccstest" => { "noinst" => "1" }, "test/tls13encryptiontest" => { "noinst" => "1" }, + "test/tls13groupselection_test" => { + "noinst" => "1" + }, "test/trace_api_test" => { "noinst" => "1" }, @@ -1547,6 +1880,9 @@ our %unified_info = ( "test/wpackettest" => { "noinst" => "1" }, + "test/x509_acert_test" => { + "noinst" => "1" + }, "test/x509_check_cert_pkey_test" => { "noinst" => "1" }, @@ -1556,6 +1892,15 @@ our %unified_info = ( "test/x509_internal_test" => { "noinst" => "1" }, + "test/x509_load_cert_file_test" => { + "noinst" => "1" + }, + "test/x509_req_test" => { + "noinst" => "1" + }, + "test/x509_test" => { + "noinst" => "1" + }, "test/x509_time_test" => { "noinst" => "1" }, @@ -1599,6 +1944,9 @@ our %unified_info = ( "providers/libfips.a" => [ "FIPS_MODULE" ], + "test/endecode_test" => [ + "STATIC_LEGACY" + ], "test/evp_extra_test" => [ "STATIC_LEGACY" ], @@ -1611,14 +1959,21 @@ our %unified_info = ( }, "depends" => { "" => [ + "OpenSSLConfigVersion.cmake", + "crypto/params_idx.c", + "exporters/OpenSSLConfigVersion.cmake", + "exporters/openssl.pc", "include/crypto/bn_conf.h", "include/crypto/dso_conf.h", + "include/internal/param_names.h", "include/openssl/asn1.h", "include/openssl/asn1t.h", "include/openssl/bio.h", "include/openssl/cmp.h", "include/openssl/cms.h", + "include/openssl/comp.h", "include/openssl/conf.h", + "include/openssl/core_names.h", "include/openssl/crmf.h", "include/openssl/crypto.h", "include/openssl/ct.h", @@ -1635,10 +1990,22 @@ our %unified_info = ( "include/openssl/ssl.h", "include/openssl/ui.h", "include/openssl/x509.h", + "include/openssl/x509_acert.h", "include/openssl/x509_vfy.h", "include/openssl/x509v3.h", + "openssl.pc", "test/provider_internal_test.cnf" ], + "OpenSSLConfig.cmake" => [ + "builddata.pm" + ], + "OpenSSLConfigVersion.cmake" => [ + "OpenSSLConfig.cmake", + "builddata.pm" + ], + "apps/ca_internals_test-bin-ca.o" => [ + "apps/progs.h" + ], "apps/lib/cmp_client_test-bin-cmp_mock_srv.o" => [ "apps/progs.h" ], @@ -1784,6 +2151,9 @@ our %unified_info = ( "apps/openssl-bin-sess_id.o" => [ "apps/progs.h" ], + "apps/openssl-bin-skeyutl.o" => [ + "apps/progs.h" + ], "apps/openssl-bin-smime.o" => [ "apps/progs.h" ], @@ -1872,6 +2242,9 @@ our %unified_info = ( "crypto/libcrypto-lib-info.o" => [ "crypto/buildinf.h" ], + "crypto/params_idx.c" => [ + "util/perl|OpenSSL/paramnames.pm" + ], "crypto/rc4/rc4-586.S" => [ "crypto/perlasm/x86asm.pl" ], @@ -2037,6 +2410,9 @@ our %unified_info = ( "doc/html/man1/openssl-sess_id.html" => [ "doc/man1/openssl-sess_id.pod" ], + "doc/html/man1/openssl-skeyutl.html" => [ + "doc/man1/openssl-skeyutl.pod" + ], "doc/html/man1/openssl-smime.html" => [ "doc/man1/openssl-smime.pod" ], @@ -2178,6 +2554,9 @@ our %unified_info = ( "doc/html/man3/BIO_get_ex_new_index.html" => [ "doc/man3/BIO_get_ex_new_index.pod" ], + "doc/html/man3/BIO_get_rpoll_descriptor.html" => [ + "doc/man3/BIO_get_rpoll_descriptor.pod" + ], "doc/html/man3/BIO_meth_new.html" => [ "doc/man3/BIO_meth_new.pod" ], @@ -2214,6 +2593,9 @@ our %unified_info = ( "doc/html/man3/BIO_s_datagram.html" => [ "doc/man3/BIO_s_datagram.pod" ], + "doc/html/man3/BIO_s_dgram_pair.html" => [ + "doc/man3/BIO_s_dgram_pair.pod" + ], "doc/html/man3/BIO_s_fd.html" => [ "doc/man3/BIO_s_fd.pod" ], @@ -2229,6 +2611,9 @@ our %unified_info = ( "doc/html/man3/BIO_s_socket.html" => [ "doc/man3/BIO_s_socket.pod" ], + "doc/html/man3/BIO_sendmmsg.html" => [ + "doc/man3/BIO_sendmmsg.pod" + ], "doc/html/man3/BIO_set_callback.html" => [ "doc/man3/BIO_set_callback.pod" ], @@ -2301,6 +2686,9 @@ our %unified_info = ( "doc/html/man3/BUF_MEM_new.html" => [ "doc/man3/BUF_MEM_new.pod" ], + "doc/html/man3/CMAC_CTX.html" => [ + "doc/man3/CMAC_CTX.pod" + ], "doc/html/man3/CMS_EncryptedData_decrypt.html" => [ "doc/man3/CMS_EncryptedData_decrypt.pod" ], @@ -2367,6 +2755,9 @@ our %unified_info = ( "doc/html/man3/CMS_verify_receipt.html" => [ "doc/man3/CMS_verify_receipt.pod" ], + "doc/html/man3/COMP_CTX_new.html" => [ + "doc/man3/COMP_CTX_new.pod" + ], "doc/html/man3/CONF_modules_free.html" => [ "doc/man3/CONF_modules_free.pod" ], @@ -2466,6 +2857,12 @@ our %unified_info = ( "doc/html/man3/DTLS_set_timer_cb.html" => [ "doc/man3/DTLS_set_timer_cb.pod" ], + "doc/html/man3/DTLSv1_get_timeout.html" => [ + "doc/man3/DTLSv1_get_timeout.pod" + ], + "doc/html/man3/DTLSv1_handle_timeout.html" => [ + "doc/man3/DTLSv1_handle_timeout.pod" + ], "doc/html/man3/DTLSv1_listen.html" => [ "doc/man3/DTLSv1_listen.pod" ], @@ -2604,6 +3001,9 @@ our %unified_info = ( "doc/html/man3/EVP_PKEY_CTX_get0_pkey.html" => [ "doc/man3/EVP_PKEY_CTX_get0_pkey.pod" ], + "doc/html/man3/EVP_PKEY_CTX_get_algor.html" => [ + "doc/man3/EVP_PKEY_CTX_get_algor.pod" + ], "doc/html/man3/EVP_PKEY_CTX_new.html" => [ "doc/man3/EVP_PKEY_CTX_new.pod" ], @@ -2721,6 +3121,12 @@ our %unified_info = ( "doc/html/man3/EVP_SIGNATURE.html" => [ "doc/man3/EVP_SIGNATURE.pod" ], + "doc/html/man3/EVP_SKEY.html" => [ + "doc/man3/EVP_SKEY.pod" + ], + "doc/html/man3/EVP_SKEYMGMT.html" => [ + "doc/man3/EVP_SKEYMGMT.pod" + ], "doc/html/man3/EVP_SealInit.html" => [ "doc/man3/EVP_SealInit.pod" ], @@ -2808,6 +3214,9 @@ our %unified_info = ( "doc/html/man3/EVP_whirlpool.html" => [ "doc/man3/EVP_whirlpool.pod" ], + "doc/html/man3/GENERAL_NAME.html" => [ + "doc/man3/GENERAL_NAME.pod" + ], "doc/html/man3/HMAC.html" => [ "doc/man3/HMAC.pod" ], @@ -2880,9 +3289,15 @@ our %unified_info = ( "doc/html/man3/OPENSSL_load_builtin_modules.html" => [ "doc/man3/OPENSSL_load_builtin_modules.pod" ], + "doc/html/man3/OPENSSL_load_u16_le.html" => [ + "doc/man3/OPENSSL_load_u16_le.pod" + ], "doc/html/man3/OPENSSL_malloc.html" => [ "doc/man3/OPENSSL_malloc.pod" ], + "doc/html/man3/OPENSSL_riscvcap.html" => [ + "doc/man3/OPENSSL_riscvcap.pod" + ], "doc/html/man3/OPENSSL_s390xcap.html" => [ "doc/man3/OPENSSL_s390xcap.pod" ], @@ -2898,12 +3313,18 @@ our %unified_info = ( "doc/html/man3/OSSL_CALLBACK.html" => [ "doc/man3/OSSL_CALLBACK.pod" ], + "doc/html/man3/OSSL_CMP_ATAV_set0.html" => [ + "doc/man3/OSSL_CMP_ATAV_set0.pod" + ], "doc/html/man3/OSSL_CMP_CTX_new.html" => [ "doc/man3/OSSL_CMP_CTX_new.pod" ], "doc/html/man3/OSSL_CMP_HDR_get0_transactionID.html" => [ "doc/man3/OSSL_CMP_HDR_get0_transactionID.pod" ], + "doc/html/man3/OSSL_CMP_ITAV_new_caCerts.html" => [ + "doc/man3/OSSL_CMP_ITAV_new_caCerts.pod" + ], "doc/html/man3/OSSL_CMP_ITAV_set0.html" => [ "doc/man3/OSSL_CMP_ITAV_set0.pod" ], @@ -2973,9 +3394,18 @@ our %unified_info = ( "doc/html/man3/OSSL_ENCODER_to_bio.html" => [ "doc/man3/OSSL_ENCODER_to_bio.pod" ], + "doc/html/man3/OSSL_ERR_STATE_save.html" => [ + "doc/man3/OSSL_ERR_STATE_save.pod" + ], "doc/html/man3/OSSL_ESS_check_signing_certs.html" => [ "doc/man3/OSSL_ESS_check_signing_certs.pod" ], + "doc/html/man3/OSSL_GENERAL_NAMES_print.html" => [ + "doc/man3/OSSL_GENERAL_NAMES_print.pod" + ], + "doc/html/man3/OSSL_HPKE_CTX_new.html" => [ + "doc/man3/OSSL_HPKE_CTX_new.pod" + ], "doc/html/man3/OSSL_HTTP_REQ_CTX.html" => [ "doc/man3/OSSL_HTTP_REQ_CTX.pod" ], @@ -2985,12 +3415,24 @@ our %unified_info = ( "doc/html/man3/OSSL_HTTP_transfer.html" => [ "doc/man3/OSSL_HTTP_transfer.pod" ], + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX.html" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX.pod" + ], + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX_print.html" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX_print.pod" + ], + "doc/html/man3/OSSL_INDICATOR_set_callback.html" => [ + "doc/man3/OSSL_INDICATOR_set_callback.pod" + ], "doc/html/man3/OSSL_ITEM.html" => [ "doc/man3/OSSL_ITEM.pod" ], "doc/html/man3/OSSL_LIB_CTX.html" => [ "doc/man3/OSSL_LIB_CTX.pod" ], + "doc/html/man3/OSSL_LIB_CTX_set_conf_diagnostics.html" => [ + "doc/man3/OSSL_LIB_CTX_set_conf_diagnostics.pod" + ], "doc/html/man3/OSSL_PARAM.html" => [ "doc/man3/OSSL_PARAM.pod" ], @@ -3006,9 +3448,15 @@ our %unified_info = ( "doc/html/man3/OSSL_PARAM_int.html" => [ "doc/man3/OSSL_PARAM_int.pod" ], + "doc/html/man3/OSSL_PARAM_print_to_bio.html" => [ + "doc/man3/OSSL_PARAM_print_to_bio.pod" + ], "doc/html/man3/OSSL_PROVIDER.html" => [ "doc/man3/OSSL_PROVIDER.pod" ], + "doc/html/man3/OSSL_QUIC_client_method.html" => [ + "doc/man3/OSSL_QUIC_client_method.pod" + ], "doc/html/man3/OSSL_SELF_TEST_new.html" => [ "doc/man3/OSSL_SELF_TEST_new.pod" ], @@ -3033,6 +3481,9 @@ our %unified_info = ( "doc/html/man3/OSSL_STORE_open.html" => [ "doc/man3/OSSL_STORE_open.pod" ], + "doc/html/man3/OSSL_sleep.html" => [ + "doc/man3/OSSL_sleep.pod" + ], "doc/html/man3/OSSL_trace_enabled.html" => [ "doc/man3/OSSL_trace_enabled.pod" ], @@ -3048,6 +3499,9 @@ our %unified_info = ( "doc/html/man3/OpenSSL_version.html" => [ "doc/man3/OpenSSL_version.pod" ], + "doc/html/man3/PBMAC1_get1_pbkdf2_param.html" => [ + "doc/man3/PBMAC1_get1_pbkdf2_param.pod" + ], "doc/html/man3/PEM_X509_INFO_read_bio_ex.html" => [ "doc/man3/PEM_X509_INFO_read_bio_ex.pod" ], @@ -3084,6 +3538,9 @@ our %unified_info = ( "doc/html/man3/PKCS12_SAFEBAG_get1_cert.html" => [ "doc/man3/PKCS12_SAFEBAG_get1_cert.pod" ], + "doc/html/man3/PKCS12_SAFEBAG_set0_attrs.html" => [ + "doc/man3/PKCS12_SAFEBAG_set0_attrs.pod" + ], "doc/html/man3/PKCS12_add1_attr_by_NID.html" => [ "doc/man3/PKCS12_add1_attr_by_NID.pod" ], @@ -3357,6 +3814,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set0_CA_list.html" => [ "doc/man3/SSL_CTX_set0_CA_list.pod" ], + "doc/html/man3/SSL_CTX_set1_cert_comp_preference.html" => [ + "doc/man3/SSL_CTX_set1_cert_comp_preference.pod" + ], "doc/html/man3/SSL_CTX_set1_curves.html" => [ "doc/man3/SSL_CTX_set1_curves.pod" ], @@ -3396,6 +3856,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_default_passwd_cb.html" => [ "doc/man3/SSL_CTX_set_default_passwd_cb.pod" ], + "doc/html/man3/SSL_CTX_set_domain_flags.html" => [ + "doc/man3/SSL_CTX_set_domain_flags.pod" + ], "doc/html/man3/SSL_CTX_set_generate_session_id.html" => [ "doc/man3/SSL_CTX_set_generate_session_id.pod" ], @@ -3417,6 +3880,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_msg_callback.html" => [ "doc/man3/SSL_CTX_set_msg_callback.pod" ], + "doc/html/man3/SSL_CTX_set_new_pending_conn_cb.html" => [ + "doc/man3/SSL_CTX_set_new_pending_conn_cb.pod" + ], "doc/html/man3/SSL_CTX_set_num_tickets.html" => [ "doc/man3/SSL_CTX_set_num_tickets.pod" ], @@ -3531,6 +3997,9 @@ our %unified_info = ( "doc/html/man3/SSL_accept.html" => [ "doc/man3/SSL_accept.pod" ], + "doc/html/man3/SSL_accept_stream.html" => [ + "doc/man3/SSL_accept_stream.pod" + ], "doc/html/man3/SSL_alert_type_string.html" => [ "doc/man3/SSL_alert_type_string.pod" ], @@ -3558,9 +4027,21 @@ our %unified_info = ( "doc/html/man3/SSL_free.html" => [ "doc/man3/SSL_free.pod" ], + "doc/html/man3/SSL_get0_connection.html" => [ + "doc/man3/SSL_get0_connection.pod" + ], + "doc/html/man3/SSL_get0_group_name.html" => [ + "doc/man3/SSL_get0_group_name.pod" + ], + "doc/html/man3/SSL_get0_peer_rpk.html" => [ + "doc/man3/SSL_get0_peer_rpk.pod" + ], "doc/html/man3/SSL_get0_peer_scts.html" => [ "doc/man3/SSL_get0_peer_scts.pod" ], + "doc/html/man3/SSL_get1_builtin_sigalgs.html" => [ + "doc/man3/SSL_get1_builtin_sigalgs.pod" + ], "doc/html/man3/SSL_get_SSL_CTX.html" => [ "doc/man3/SSL_get_SSL_CTX.pod" ], @@ -3576,6 +4057,9 @@ our %unified_info = ( "doc/html/man3/SSL_get_client_random.html" => [ "doc/man3/SSL_get_client_random.pod" ], + "doc/html/man3/SSL_get_conn_close_info.html" => [ + "doc/man3/SSL_get_conn_close_info.pod" + ], "doc/html/man3/SSL_get_current_cipher.html" => [ "doc/man3/SSL_get_current_cipher.pod" ], @@ -3585,12 +4069,18 @@ our %unified_info = ( "doc/html/man3/SSL_get_error.html" => [ "doc/man3/SSL_get_error.pod" ], + "doc/html/man3/SSL_get_event_timeout.html" => [ + "doc/man3/SSL_get_event_timeout.pod" + ], "doc/html/man3/SSL_get_extms_support.html" => [ "doc/man3/SSL_get_extms_support.pod" ], "doc/html/man3/SSL_get_fd.html" => [ "doc/man3/SSL_get_fd.pod" ], + "doc/html/man3/SSL_get_handshake_rtt.html" => [ + "doc/man3/SSL_get_handshake_rtt.pod" + ], "doc/html/man3/SSL_get_peer_cert_chain.html" => [ "doc/man3/SSL_get_peer_cert_chain.pod" ], @@ -3609,12 +4099,24 @@ our %unified_info = ( "doc/html/man3/SSL_get_rbio.html" => [ "doc/man3/SSL_get_rbio.pod" ], + "doc/html/man3/SSL_get_rpoll_descriptor.html" => [ + "doc/man3/SSL_get_rpoll_descriptor.pod" + ], "doc/html/man3/SSL_get_session.html" => [ "doc/man3/SSL_get_session.pod" ], "doc/html/man3/SSL_get_shared_sigalgs.html" => [ "doc/man3/SSL_get_shared_sigalgs.pod" ], + "doc/html/man3/SSL_get_stream_id.html" => [ + "doc/man3/SSL_get_stream_id.pod" + ], + "doc/html/man3/SSL_get_stream_read_state.html" => [ + "doc/man3/SSL_get_stream_read_state.pod" + ], + "doc/html/man3/SSL_get_value_uint.html" => [ + "doc/man3/SSL_get_value_uint.pod" + ], "doc/html/man3/SSL_get_verify_result.html" => [ "doc/man3/SSL_get_verify_result.pod" ], @@ -3624,9 +4126,15 @@ our %unified_info = ( "doc/html/man3/SSL_group_to_name.html" => [ "doc/man3/SSL_group_to_name.pod" ], + "doc/html/man3/SSL_handle_events.html" => [ + "doc/man3/SSL_handle_events.pod" + ], "doc/html/man3/SSL_in_init.html" => [ "doc/man3/SSL_in_init.pod" ], + "doc/html/man3/SSL_inject_net_dgram.html" => [ + "doc/man3/SSL_inject_net_dgram.pod" + ], "doc/html/man3/SSL_key_update.html" => [ "doc/man3/SSL_key_update.pod" ], @@ -3639,9 +4147,21 @@ our %unified_info = ( "doc/html/man3/SSL_new.html" => [ "doc/man3/SSL_new.pod" ], + "doc/html/man3/SSL_new_domain.html" => [ + "doc/man3/SSL_new_domain.pod" + ], + "doc/html/man3/SSL_new_listener.html" => [ + "doc/man3/SSL_new_listener.pod" + ], + "doc/html/man3/SSL_new_stream.html" => [ + "doc/man3/SSL_new_stream.pod" + ], "doc/html/man3/SSL_pending.html" => [ "doc/man3/SSL_pending.pod" ], + "doc/html/man3/SSL_poll.html" => [ + "doc/man3/SSL_poll.pod" + ], "doc/html/man3/SSL_read.html" => [ "doc/man3/SSL_read.pod" ], @@ -3657,24 +4177,45 @@ our %unified_info = ( "doc/html/man3/SSL_set1_host.html" => [ "doc/man3/SSL_set1_host.pod" ], + "doc/html/man3/SSL_set1_initial_peer_addr.html" => [ + "doc/man3/SSL_set1_initial_peer_addr.pod" + ], + "doc/html/man3/SSL_set1_server_cert_type.html" => [ + "doc/man3/SSL_set1_server_cert_type.pod" + ], "doc/html/man3/SSL_set_async_callback.html" => [ "doc/man3/SSL_set_async_callback.pod" ], "doc/html/man3/SSL_set_bio.html" => [ "doc/man3/SSL_set_bio.pod" ], + "doc/html/man3/SSL_set_blocking_mode.html" => [ + "doc/man3/SSL_set_blocking_mode.pod" + ], "doc/html/man3/SSL_set_connect_state.html" => [ "doc/man3/SSL_set_connect_state.pod" ], + "doc/html/man3/SSL_set_default_stream_mode.html" => [ + "doc/man3/SSL_set_default_stream_mode.pod" + ], "doc/html/man3/SSL_set_fd.html" => [ "doc/man3/SSL_set_fd.pod" ], + "doc/html/man3/SSL_set_incoming_stream_policy.html" => [ + "doc/man3/SSL_set_incoming_stream_policy.pod" + ], + "doc/html/man3/SSL_set_quic_tls_cbs.html" => [ + "doc/man3/SSL_set_quic_tls_cbs.pod" + ], "doc/html/man3/SSL_set_retry_verify.html" => [ "doc/man3/SSL_set_retry_verify.pod" ], "doc/html/man3/SSL_set_session.html" => [ "doc/man3/SSL_set_session.pod" ], + "doc/html/man3/SSL_set_session_secret_cb.html" => [ + "doc/man3/SSL_set_session_secret_cb.pod" + ], "doc/html/man3/SSL_set_shutdown.html" => [ "doc/man3/SSL_set_shutdown.pod" ], @@ -3687,6 +4228,12 @@ our %unified_info = ( "doc/html/man3/SSL_state_string.html" => [ "doc/man3/SSL_state_string.pod" ], + "doc/html/man3/SSL_stream_conclude.html" => [ + "doc/man3/SSL_stream_conclude.pod" + ], + "doc/html/man3/SSL_stream_reset.html" => [ + "doc/man3/SSL_stream_reset.pod" + ], "doc/html/man3/SSL_want.html" => [ "doc/man3/SSL_want.pod" ], @@ -3696,8 +4243,8 @@ our %unified_info = ( "doc/html/man3/TS_RESP_CTX_new.html" => [ "doc/man3/TS_RESP_CTX_new.pod" ], - "doc/html/man3/TS_VERIFY_CTX_set_certs.html" => [ - "doc/man3/TS_VERIFY_CTX_set_certs.pod" + "doc/html/man3/TS_VERIFY_CTX.html" => [ + "doc/man3/TS_VERIFY_CTX.pod" ], "doc/html/man3/UI_STRING.html" => [ "doc/man3/UI_STRING.pod" @@ -3717,6 +4264,21 @@ our %unified_info = ( "doc/html/man3/X509V3_set_ctx.html" => [ "doc/man3/X509V3_set_ctx.pod" ], + "doc/html/man3/X509_ACERT_add1_attr.html" => [ + "doc/man3/X509_ACERT_add1_attr.pod" + ], + "doc/html/man3/X509_ACERT_add_attr_nconf.html" => [ + "doc/man3/X509_ACERT_add_attr_nconf.pod" + ], + "doc/html/man3/X509_ACERT_get0_holder_baseCertId.html" => [ + "doc/man3/X509_ACERT_get0_holder_baseCertId.pod" + ], + "doc/html/man3/X509_ACERT_get_attr.html" => [ + "doc/man3/X509_ACERT_get_attr.pod" + ], + "doc/html/man3/X509_ACERT_print_ex.html" => [ + "doc/man3/X509_ACERT_print_ex.pod" + ], "doc/html/man3/X509_ALGOR_dup.html" => [ "doc/man3/X509_ALGOR_dup.pod" ], @@ -3765,6 +4327,9 @@ our %unified_info = ( "doc/html/man3/X509_SIG_get0.html" => [ "doc/man3/X509_SIG_get0.pod" ], + "doc/html/man3/X509_STORE_CTX_get_by_subject.html" => [ + "doc/man3/X509_STORE_CTX_get_by_subject.pod" + ], "doc/html/man3/X509_STORE_CTX_get_error.html" => [ "doc/man3/X509_STORE_CTX_get_error.pod" ], @@ -3831,6 +4396,9 @@ our %unified_info = ( "doc/html/man3/X509_get0_uids.html" => [ "doc/man3/X509_get0_uids.pod" ], + "doc/html/man3/X509_get_default_cert_file.html" => [ + "doc/man3/X509_get_default_cert_file.pod" + ], "doc/html/man3/X509_get_extension_flags.html" => [ "doc/man3/X509_get_extension_flags.pod" ], @@ -3954,9 +4522,15 @@ our %unified_info = ( "doc/html/man7/EVP_CIPHER-SM4.html" => [ "doc/man7/EVP_CIPHER-SM4.pod" ], + "doc/html/man7/EVP_KDF-ARGON2.html" => [ + "doc/man7/EVP_KDF-ARGON2.pod" + ], "doc/html/man7/EVP_KDF-HKDF.html" => [ "doc/man7/EVP_KDF-HKDF.pod" ], + "doc/html/man7/EVP_KDF-HMAC-DRBG.html" => [ + "doc/man7/EVP_KDF-HMAC-DRBG.pod" + ], "doc/html/man7/EVP_KDF-KB.html" => [ "doc/man7/EVP_KDF-KB.pod" ], @@ -3972,6 +4546,9 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-PKCS12KDF.html" => [ "doc/man7/EVP_KDF-PKCS12KDF.pod" ], + "doc/html/man7/EVP_KDF-PVKKDF.html" => [ + "doc/man7/EVP_KDF-PVKKDF.pod" + ], "doc/html/man7/EVP_KDF-SCRYPT.html" => [ "doc/man7/EVP_KDF-SCRYPT.pod" ], @@ -3996,9 +4573,18 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-X963.html" => [ "doc/man7/EVP_KDF-X963.pod" ], + "doc/html/man7/EVP_KEM-EC.html" => [ + "doc/man7/EVP_KEM-EC.pod" + ], + "doc/html/man7/EVP_KEM-ML-KEM.html" => [ + "doc/man7/EVP_KEM-ML-KEM.pod" + ], "doc/html/man7/EVP_KEM-RSA.html" => [ "doc/man7/EVP_KEM-RSA.pod" ], + "doc/html/man7/EVP_KEM-X25519.html" => [ + "doc/man7/EVP_KEM-X25519.pod" + ], "doc/html/man7/EVP_KEYEXCH-DH.html" => [ "doc/man7/EVP_KEYEXCH-DH.pod" ], @@ -4032,6 +4618,9 @@ our %unified_info = ( "doc/html/man7/EVP_MD-BLAKE2.html" => [ "doc/man7/EVP_MD-BLAKE2.pod" ], + "doc/html/man7/EVP_MD-KECCAK.html" => [ + "doc/man7/EVP_MD-KECCAK.pod" + ], "doc/html/man7/EVP_MD-MD2.html" => [ "doc/man7/EVP_MD-MD2.pod" ], @@ -4089,15 +4678,27 @@ our %unified_info = ( "doc/html/man7/EVP_PKEY-HMAC.html" => [ "doc/man7/EVP_PKEY-HMAC.pod" ], + "doc/html/man7/EVP_PKEY-ML-DSA.html" => [ + "doc/man7/EVP_PKEY-ML-DSA.pod" + ], + "doc/html/man7/EVP_PKEY-ML-KEM.html" => [ + "doc/man7/EVP_PKEY-ML-KEM.pod" + ], "doc/html/man7/EVP_PKEY-RSA.html" => [ "doc/man7/EVP_PKEY-RSA.pod" ], + "doc/html/man7/EVP_PKEY-SLH-DSA.html" => [ + "doc/man7/EVP_PKEY-SLH-DSA.pod" + ], "doc/html/man7/EVP_PKEY-SM2.html" => [ "doc/man7/EVP_PKEY-SM2.pod" ], "doc/html/man7/EVP_PKEY-X25519.html" => [ "doc/man7/EVP_PKEY-X25519.pod" ], + "doc/html/man7/EVP_RAND-CRNG-TEST.html" => [ + "doc/man7/EVP_RAND-CRNG-TEST.pod" + ], "doc/html/man7/EVP_RAND-CTR-DRBG.html" => [ "doc/man7/EVP_RAND-CTR-DRBG.pod" ], @@ -4107,6 +4708,9 @@ our %unified_info = ( "doc/html/man7/EVP_RAND-HMAC-DRBG.html" => [ "doc/man7/EVP_RAND-HMAC-DRBG.pod" ], + "doc/html/man7/EVP_RAND-JITTER.html" => [ + "doc/man7/EVP_RAND-JITTER.pod" + ], "doc/html/man7/EVP_RAND-SEED-SRC.html" => [ "doc/man7/EVP_RAND-SEED-SRC.pod" ], @@ -4128,9 +4732,15 @@ our %unified_info = ( "doc/html/man7/EVP_SIGNATURE-HMAC.html" => [ "doc/man7/EVP_SIGNATURE-HMAC.pod" ], + "doc/html/man7/EVP_SIGNATURE-ML-DSA.html" => [ + "doc/man7/EVP_SIGNATURE-ML-DSA.pod" + ], "doc/html/man7/EVP_SIGNATURE-RSA.html" => [ "doc/man7/EVP_SIGNATURE-RSA.pod" ], + "doc/html/man7/EVP_SIGNATURE-SLH-DSA.html" => [ + "doc/man7/EVP_SIGNATURE-SLH-DSA.pod" + ], "doc/html/man7/OSSL_PROVIDER-FIPS.html" => [ "doc/man7/OSSL_PROVIDER-FIPS.pod" ], @@ -4146,6 +4756,9 @@ our %unified_info = ( "doc/html/man7/OSSL_PROVIDER-null.html" => [ "doc/man7/OSSL_PROVIDER-null.pod" ], + "doc/html/man7/OSSL_STORE-winstore.html" => [ + "doc/man7/OSSL_STORE-winstore.pod" + ], "doc/html/man7/RAND.html" => [ "doc/man7/RAND.pod" ], @@ -4158,9 +4771,6 @@ our %unified_info = ( "doc/html/man7/bio.html" => [ "doc/man7/bio.pod" ], - "doc/html/man7/crypto.html" => [ - "doc/man7/crypto.pod" - ], "doc/html/man7/ct.html" => [ "doc/man7/ct.pod" ], @@ -4191,9 +4801,6 @@ our %unified_info = ( "doc/html/man7/life_cycle-rand.html" => [ "doc/man7/life_cycle-rand.pod" ], - "doc/html/man7/migration_guide.html" => [ - "doc/man7/migration_guide.pod" - ], "doc/html/man7/openssl-core.h.html" => [ "doc/man7/openssl-core.h.pod" ], @@ -4209,12 +4816,66 @@ our %unified_info = ( "doc/html/man7/openssl-glossary.html" => [ "doc/man7/openssl-glossary.pod" ], + "doc/html/man7/openssl-qlog.html" => [ + "doc/man7/openssl-qlog.pod" + ], + "doc/html/man7/openssl-quic-concurrency.html" => [ + "doc/man7/openssl-quic-concurrency.pod" + ], + "doc/html/man7/openssl-quic.html" => [ + "doc/man7/openssl-quic.pod" + ], "doc/html/man7/openssl-threads.html" => [ "doc/man7/openssl-threads.pod" ], "doc/html/man7/openssl_user_macros.html" => [ "doc/man7/openssl_user_macros.pod" ], + "doc/html/man7/ossl-guide-introduction.html" => [ + "doc/man7/ossl-guide-introduction.pod" + ], + "doc/html/man7/ossl-guide-libcrypto-introduction.html" => [ + "doc/man7/ossl-guide-libcrypto-introduction.pod" + ], + "doc/html/man7/ossl-guide-libraries-introduction.html" => [ + "doc/man7/ossl-guide-libraries-introduction.pod" + ], + "doc/html/man7/ossl-guide-libssl-introduction.html" => [ + "doc/man7/ossl-guide-libssl-introduction.pod" + ], + "doc/html/man7/ossl-guide-migration.html" => [ + "doc/man7/ossl-guide-migration.pod" + ], + "doc/html/man7/ossl-guide-quic-client-block.html" => [ + "doc/man7/ossl-guide-quic-client-block.pod" + ], + "doc/html/man7/ossl-guide-quic-client-non-block.html" => [ + "doc/man7/ossl-guide-quic-client-non-block.pod" + ], + "doc/html/man7/ossl-guide-quic-introduction.html" => [ + "doc/man7/ossl-guide-quic-introduction.pod" + ], + "doc/html/man7/ossl-guide-quic-multi-stream.html" => [ + "doc/man7/ossl-guide-quic-multi-stream.pod" + ], + "doc/html/man7/ossl-guide-quic-server-block.html" => [ + "doc/man7/ossl-guide-quic-server-block.pod" + ], + "doc/html/man7/ossl-guide-quic-server-non-block.html" => [ + "doc/man7/ossl-guide-quic-server-non-block.pod" + ], + "doc/html/man7/ossl-guide-tls-client-block.html" => [ + "doc/man7/ossl-guide-tls-client-block.pod" + ], + "doc/html/man7/ossl-guide-tls-client-non-block.html" => [ + "doc/man7/ossl-guide-tls-client-non-block.pod" + ], + "doc/html/man7/ossl-guide-tls-introduction.html" => [ + "doc/man7/ossl-guide-tls-introduction.pod" + ], + "doc/html/man7/ossl-guide-tls-server-block.html" => [ + "doc/man7/ossl-guide-tls-server-block.pod" + ], "doc/html/man7/ossl_store-file.html" => [ "doc/man7/ossl_store-file.pod" ], @@ -4269,6 +4930,9 @@ our %unified_info = ( "doc/html/man7/provider-signature.html" => [ "doc/man7/provider-signature.pod" ], + "doc/html/man7/provider-skeymgmt.html" => [ + "doc/man7/provider-skeymgmt.pod" + ], "doc/html/man7/provider-storemgmt.html" => [ "doc/man7/provider-storemgmt.pod" ], @@ -4278,9 +4942,6 @@ our %unified_info = ( "doc/html/man7/proxy-certificates.html" => [ "doc/man7/proxy-certificates.pod" ], - "doc/html/man7/ssl.html" => [ - "doc/man7/ssl.pod" - ], "doc/html/man7/x509.html" => [ "doc/man7/x509.pod" ], @@ -4428,6 +5089,9 @@ our %unified_info = ( "doc/man/man1/openssl-sess_id.1" => [ "doc/man1/openssl-sess_id.pod" ], + "doc/man/man1/openssl-skeyutl.1" => [ + "doc/man1/openssl-skeyutl.pod" + ], "doc/man/man1/openssl-smime.1" => [ "doc/man1/openssl-smime.pod" ], @@ -4569,6 +5233,9 @@ our %unified_info = ( "doc/man/man3/BIO_get_ex_new_index.3" => [ "doc/man3/BIO_get_ex_new_index.pod" ], + "doc/man/man3/BIO_get_rpoll_descriptor.3" => [ + "doc/man3/BIO_get_rpoll_descriptor.pod" + ], "doc/man/man3/BIO_meth_new.3" => [ "doc/man3/BIO_meth_new.pod" ], @@ -4605,6 +5272,9 @@ our %unified_info = ( "doc/man/man3/BIO_s_datagram.3" => [ "doc/man3/BIO_s_datagram.pod" ], + "doc/man/man3/BIO_s_dgram_pair.3" => [ + "doc/man3/BIO_s_dgram_pair.pod" + ], "doc/man/man3/BIO_s_fd.3" => [ "doc/man3/BIO_s_fd.pod" ], @@ -4620,6 +5290,9 @@ our %unified_info = ( "doc/man/man3/BIO_s_socket.3" => [ "doc/man3/BIO_s_socket.pod" ], + "doc/man/man3/BIO_sendmmsg.3" => [ + "doc/man3/BIO_sendmmsg.pod" + ], "doc/man/man3/BIO_set_callback.3" => [ "doc/man3/BIO_set_callback.pod" ], @@ -4692,6 +5365,9 @@ our %unified_info = ( "doc/man/man3/BUF_MEM_new.3" => [ "doc/man3/BUF_MEM_new.pod" ], + "doc/man/man3/CMAC_CTX.3" => [ + "doc/man3/CMAC_CTX.pod" + ], "doc/man/man3/CMS_EncryptedData_decrypt.3" => [ "doc/man3/CMS_EncryptedData_decrypt.pod" ], @@ -4758,6 +5434,9 @@ our %unified_info = ( "doc/man/man3/CMS_verify_receipt.3" => [ "doc/man3/CMS_verify_receipt.pod" ], + "doc/man/man3/COMP_CTX_new.3" => [ + "doc/man3/COMP_CTX_new.pod" + ], "doc/man/man3/CONF_modules_free.3" => [ "doc/man3/CONF_modules_free.pod" ], @@ -4857,6 +5536,12 @@ our %unified_info = ( "doc/man/man3/DTLS_set_timer_cb.3" => [ "doc/man3/DTLS_set_timer_cb.pod" ], + "doc/man/man3/DTLSv1_get_timeout.3" => [ + "doc/man3/DTLSv1_get_timeout.pod" + ], + "doc/man/man3/DTLSv1_handle_timeout.3" => [ + "doc/man3/DTLSv1_handle_timeout.pod" + ], "doc/man/man3/DTLSv1_listen.3" => [ "doc/man3/DTLSv1_listen.pod" ], @@ -4995,6 +5680,9 @@ our %unified_info = ( "doc/man/man3/EVP_PKEY_CTX_get0_pkey.3" => [ "doc/man3/EVP_PKEY_CTX_get0_pkey.pod" ], + "doc/man/man3/EVP_PKEY_CTX_get_algor.3" => [ + "doc/man3/EVP_PKEY_CTX_get_algor.pod" + ], "doc/man/man3/EVP_PKEY_CTX_new.3" => [ "doc/man3/EVP_PKEY_CTX_new.pod" ], @@ -5112,6 +5800,12 @@ our %unified_info = ( "doc/man/man3/EVP_SIGNATURE.3" => [ "doc/man3/EVP_SIGNATURE.pod" ], + "doc/man/man3/EVP_SKEY.3" => [ + "doc/man3/EVP_SKEY.pod" + ], + "doc/man/man3/EVP_SKEYMGMT.3" => [ + "doc/man3/EVP_SKEYMGMT.pod" + ], "doc/man/man3/EVP_SealInit.3" => [ "doc/man3/EVP_SealInit.pod" ], @@ -5199,6 +5893,9 @@ our %unified_info = ( "doc/man/man3/EVP_whirlpool.3" => [ "doc/man3/EVP_whirlpool.pod" ], + "doc/man/man3/GENERAL_NAME.3" => [ + "doc/man3/GENERAL_NAME.pod" + ], "doc/man/man3/HMAC.3" => [ "doc/man3/HMAC.pod" ], @@ -5271,9 +5968,15 @@ our %unified_info = ( "doc/man/man3/OPENSSL_load_builtin_modules.3" => [ "doc/man3/OPENSSL_load_builtin_modules.pod" ], + "doc/man/man3/OPENSSL_load_u16_le.3" => [ + "doc/man3/OPENSSL_load_u16_le.pod" + ], "doc/man/man3/OPENSSL_malloc.3" => [ "doc/man3/OPENSSL_malloc.pod" ], + "doc/man/man3/OPENSSL_riscvcap.3" => [ + "doc/man3/OPENSSL_riscvcap.pod" + ], "doc/man/man3/OPENSSL_s390xcap.3" => [ "doc/man3/OPENSSL_s390xcap.pod" ], @@ -5289,12 +5992,18 @@ our %unified_info = ( "doc/man/man3/OSSL_CALLBACK.3" => [ "doc/man3/OSSL_CALLBACK.pod" ], + "doc/man/man3/OSSL_CMP_ATAV_set0.3" => [ + "doc/man3/OSSL_CMP_ATAV_set0.pod" + ], "doc/man/man3/OSSL_CMP_CTX_new.3" => [ "doc/man3/OSSL_CMP_CTX_new.pod" ], "doc/man/man3/OSSL_CMP_HDR_get0_transactionID.3" => [ "doc/man3/OSSL_CMP_HDR_get0_transactionID.pod" ], + "doc/man/man3/OSSL_CMP_ITAV_new_caCerts.3" => [ + "doc/man3/OSSL_CMP_ITAV_new_caCerts.pod" + ], "doc/man/man3/OSSL_CMP_ITAV_set0.3" => [ "doc/man3/OSSL_CMP_ITAV_set0.pod" ], @@ -5364,9 +6073,18 @@ our %unified_info = ( "doc/man/man3/OSSL_ENCODER_to_bio.3" => [ "doc/man3/OSSL_ENCODER_to_bio.pod" ], + "doc/man/man3/OSSL_ERR_STATE_save.3" => [ + "doc/man3/OSSL_ERR_STATE_save.pod" + ], "doc/man/man3/OSSL_ESS_check_signing_certs.3" => [ "doc/man3/OSSL_ESS_check_signing_certs.pod" ], + "doc/man/man3/OSSL_GENERAL_NAMES_print.3" => [ + "doc/man3/OSSL_GENERAL_NAMES_print.pod" + ], + "doc/man/man3/OSSL_HPKE_CTX_new.3" => [ + "doc/man3/OSSL_HPKE_CTX_new.pod" + ], "doc/man/man3/OSSL_HTTP_REQ_CTX.3" => [ "doc/man3/OSSL_HTTP_REQ_CTX.pod" ], @@ -5376,12 +6094,24 @@ our %unified_info = ( "doc/man/man3/OSSL_HTTP_transfer.3" => [ "doc/man3/OSSL_HTTP_transfer.pod" ], + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX.3" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX.pod" + ], + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX_print.3" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX_print.pod" + ], + "doc/man/man3/OSSL_INDICATOR_set_callback.3" => [ + "doc/man3/OSSL_INDICATOR_set_callback.pod" + ], "doc/man/man3/OSSL_ITEM.3" => [ "doc/man3/OSSL_ITEM.pod" ], "doc/man/man3/OSSL_LIB_CTX.3" => [ "doc/man3/OSSL_LIB_CTX.pod" ], + "doc/man/man3/OSSL_LIB_CTX_set_conf_diagnostics.3" => [ + "doc/man3/OSSL_LIB_CTX_set_conf_diagnostics.pod" + ], "doc/man/man3/OSSL_PARAM.3" => [ "doc/man3/OSSL_PARAM.pod" ], @@ -5397,9 +6127,15 @@ our %unified_info = ( "doc/man/man3/OSSL_PARAM_int.3" => [ "doc/man3/OSSL_PARAM_int.pod" ], + "doc/man/man3/OSSL_PARAM_print_to_bio.3" => [ + "doc/man3/OSSL_PARAM_print_to_bio.pod" + ], "doc/man/man3/OSSL_PROVIDER.3" => [ "doc/man3/OSSL_PROVIDER.pod" ], + "doc/man/man3/OSSL_QUIC_client_method.3" => [ + "doc/man3/OSSL_QUIC_client_method.pod" + ], "doc/man/man3/OSSL_SELF_TEST_new.3" => [ "doc/man3/OSSL_SELF_TEST_new.pod" ], @@ -5424,6 +6160,9 @@ our %unified_info = ( "doc/man/man3/OSSL_STORE_open.3" => [ "doc/man3/OSSL_STORE_open.pod" ], + "doc/man/man3/OSSL_sleep.3" => [ + "doc/man3/OSSL_sleep.pod" + ], "doc/man/man3/OSSL_trace_enabled.3" => [ "doc/man3/OSSL_trace_enabled.pod" ], @@ -5439,6 +6178,9 @@ our %unified_info = ( "doc/man/man3/OpenSSL_version.3" => [ "doc/man3/OpenSSL_version.pod" ], + "doc/man/man3/PBMAC1_get1_pbkdf2_param.3" => [ + "doc/man3/PBMAC1_get1_pbkdf2_param.pod" + ], "doc/man/man3/PEM_X509_INFO_read_bio_ex.3" => [ "doc/man3/PEM_X509_INFO_read_bio_ex.pod" ], @@ -5475,6 +6217,9 @@ our %unified_info = ( "doc/man/man3/PKCS12_SAFEBAG_get1_cert.3" => [ "doc/man3/PKCS12_SAFEBAG_get1_cert.pod" ], + "doc/man/man3/PKCS12_SAFEBAG_set0_attrs.3" => [ + "doc/man3/PKCS12_SAFEBAG_set0_attrs.pod" + ], "doc/man/man3/PKCS12_add1_attr_by_NID.3" => [ "doc/man3/PKCS12_add1_attr_by_NID.pod" ], @@ -5748,6 +6493,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set0_CA_list.3" => [ "doc/man3/SSL_CTX_set0_CA_list.pod" ], + "doc/man/man3/SSL_CTX_set1_cert_comp_preference.3" => [ + "doc/man3/SSL_CTX_set1_cert_comp_preference.pod" + ], "doc/man/man3/SSL_CTX_set1_curves.3" => [ "doc/man3/SSL_CTX_set1_curves.pod" ], @@ -5787,6 +6535,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_default_passwd_cb.3" => [ "doc/man3/SSL_CTX_set_default_passwd_cb.pod" ], + "doc/man/man3/SSL_CTX_set_domain_flags.3" => [ + "doc/man3/SSL_CTX_set_domain_flags.pod" + ], "doc/man/man3/SSL_CTX_set_generate_session_id.3" => [ "doc/man3/SSL_CTX_set_generate_session_id.pod" ], @@ -5808,6 +6559,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_msg_callback.3" => [ "doc/man3/SSL_CTX_set_msg_callback.pod" ], + "doc/man/man3/SSL_CTX_set_new_pending_conn_cb.3" => [ + "doc/man3/SSL_CTX_set_new_pending_conn_cb.pod" + ], "doc/man/man3/SSL_CTX_set_num_tickets.3" => [ "doc/man3/SSL_CTX_set_num_tickets.pod" ], @@ -5922,6 +6676,9 @@ our %unified_info = ( "doc/man/man3/SSL_accept.3" => [ "doc/man3/SSL_accept.pod" ], + "doc/man/man3/SSL_accept_stream.3" => [ + "doc/man3/SSL_accept_stream.pod" + ], "doc/man/man3/SSL_alert_type_string.3" => [ "doc/man3/SSL_alert_type_string.pod" ], @@ -5949,9 +6706,21 @@ our %unified_info = ( "doc/man/man3/SSL_free.3" => [ "doc/man3/SSL_free.pod" ], + "doc/man/man3/SSL_get0_connection.3" => [ + "doc/man3/SSL_get0_connection.pod" + ], + "doc/man/man3/SSL_get0_group_name.3" => [ + "doc/man3/SSL_get0_group_name.pod" + ], + "doc/man/man3/SSL_get0_peer_rpk.3" => [ + "doc/man3/SSL_get0_peer_rpk.pod" + ], "doc/man/man3/SSL_get0_peer_scts.3" => [ "doc/man3/SSL_get0_peer_scts.pod" ], + "doc/man/man3/SSL_get1_builtin_sigalgs.3" => [ + "doc/man3/SSL_get1_builtin_sigalgs.pod" + ], "doc/man/man3/SSL_get_SSL_CTX.3" => [ "doc/man3/SSL_get_SSL_CTX.pod" ], @@ -5967,6 +6736,9 @@ our %unified_info = ( "doc/man/man3/SSL_get_client_random.3" => [ "doc/man3/SSL_get_client_random.pod" ], + "doc/man/man3/SSL_get_conn_close_info.3" => [ + "doc/man3/SSL_get_conn_close_info.pod" + ], "doc/man/man3/SSL_get_current_cipher.3" => [ "doc/man3/SSL_get_current_cipher.pod" ], @@ -5976,12 +6748,18 @@ our %unified_info = ( "doc/man/man3/SSL_get_error.3" => [ "doc/man3/SSL_get_error.pod" ], + "doc/man/man3/SSL_get_event_timeout.3" => [ + "doc/man3/SSL_get_event_timeout.pod" + ], "doc/man/man3/SSL_get_extms_support.3" => [ "doc/man3/SSL_get_extms_support.pod" ], "doc/man/man3/SSL_get_fd.3" => [ "doc/man3/SSL_get_fd.pod" ], + "doc/man/man3/SSL_get_handshake_rtt.3" => [ + "doc/man3/SSL_get_handshake_rtt.pod" + ], "doc/man/man3/SSL_get_peer_cert_chain.3" => [ "doc/man3/SSL_get_peer_cert_chain.pod" ], @@ -6000,12 +6778,24 @@ our %unified_info = ( "doc/man/man3/SSL_get_rbio.3" => [ "doc/man3/SSL_get_rbio.pod" ], + "doc/man/man3/SSL_get_rpoll_descriptor.3" => [ + "doc/man3/SSL_get_rpoll_descriptor.pod" + ], "doc/man/man3/SSL_get_session.3" => [ "doc/man3/SSL_get_session.pod" ], "doc/man/man3/SSL_get_shared_sigalgs.3" => [ "doc/man3/SSL_get_shared_sigalgs.pod" ], + "doc/man/man3/SSL_get_stream_id.3" => [ + "doc/man3/SSL_get_stream_id.pod" + ], + "doc/man/man3/SSL_get_stream_read_state.3" => [ + "doc/man3/SSL_get_stream_read_state.pod" + ], + "doc/man/man3/SSL_get_value_uint.3" => [ + "doc/man3/SSL_get_value_uint.pod" + ], "doc/man/man3/SSL_get_verify_result.3" => [ "doc/man3/SSL_get_verify_result.pod" ], @@ -6015,9 +6805,15 @@ our %unified_info = ( "doc/man/man3/SSL_group_to_name.3" => [ "doc/man3/SSL_group_to_name.pod" ], + "doc/man/man3/SSL_handle_events.3" => [ + "doc/man3/SSL_handle_events.pod" + ], "doc/man/man3/SSL_in_init.3" => [ "doc/man3/SSL_in_init.pod" ], + "doc/man/man3/SSL_inject_net_dgram.3" => [ + "doc/man3/SSL_inject_net_dgram.pod" + ], "doc/man/man3/SSL_key_update.3" => [ "doc/man3/SSL_key_update.pod" ], @@ -6030,9 +6826,21 @@ our %unified_info = ( "doc/man/man3/SSL_new.3" => [ "doc/man3/SSL_new.pod" ], + "doc/man/man3/SSL_new_domain.3" => [ + "doc/man3/SSL_new_domain.pod" + ], + "doc/man/man3/SSL_new_listener.3" => [ + "doc/man3/SSL_new_listener.pod" + ], + "doc/man/man3/SSL_new_stream.3" => [ + "doc/man3/SSL_new_stream.pod" + ], "doc/man/man3/SSL_pending.3" => [ "doc/man3/SSL_pending.pod" ], + "doc/man/man3/SSL_poll.3" => [ + "doc/man3/SSL_poll.pod" + ], "doc/man/man3/SSL_read.3" => [ "doc/man3/SSL_read.pod" ], @@ -6048,24 +6856,45 @@ our %unified_info = ( "doc/man/man3/SSL_set1_host.3" => [ "doc/man3/SSL_set1_host.pod" ], + "doc/man/man3/SSL_set1_initial_peer_addr.3" => [ + "doc/man3/SSL_set1_initial_peer_addr.pod" + ], + "doc/man/man3/SSL_set1_server_cert_type.3" => [ + "doc/man3/SSL_set1_server_cert_type.pod" + ], "doc/man/man3/SSL_set_async_callback.3" => [ "doc/man3/SSL_set_async_callback.pod" ], "doc/man/man3/SSL_set_bio.3" => [ "doc/man3/SSL_set_bio.pod" ], + "doc/man/man3/SSL_set_blocking_mode.3" => [ + "doc/man3/SSL_set_blocking_mode.pod" + ], "doc/man/man3/SSL_set_connect_state.3" => [ "doc/man3/SSL_set_connect_state.pod" ], + "doc/man/man3/SSL_set_default_stream_mode.3" => [ + "doc/man3/SSL_set_default_stream_mode.pod" + ], "doc/man/man3/SSL_set_fd.3" => [ "doc/man3/SSL_set_fd.pod" ], + "doc/man/man3/SSL_set_incoming_stream_policy.3" => [ + "doc/man3/SSL_set_incoming_stream_policy.pod" + ], + "doc/man/man3/SSL_set_quic_tls_cbs.3" => [ + "doc/man3/SSL_set_quic_tls_cbs.pod" + ], "doc/man/man3/SSL_set_retry_verify.3" => [ "doc/man3/SSL_set_retry_verify.pod" ], "doc/man/man3/SSL_set_session.3" => [ "doc/man3/SSL_set_session.pod" ], + "doc/man/man3/SSL_set_session_secret_cb.3" => [ + "doc/man3/SSL_set_session_secret_cb.pod" + ], "doc/man/man3/SSL_set_shutdown.3" => [ "doc/man3/SSL_set_shutdown.pod" ], @@ -6078,6 +6907,12 @@ our %unified_info = ( "doc/man/man3/SSL_state_string.3" => [ "doc/man3/SSL_state_string.pod" ], + "doc/man/man3/SSL_stream_conclude.3" => [ + "doc/man3/SSL_stream_conclude.pod" + ], + "doc/man/man3/SSL_stream_reset.3" => [ + "doc/man3/SSL_stream_reset.pod" + ], "doc/man/man3/SSL_want.3" => [ "doc/man3/SSL_want.pod" ], @@ -6087,8 +6922,8 @@ our %unified_info = ( "doc/man/man3/TS_RESP_CTX_new.3" => [ "doc/man3/TS_RESP_CTX_new.pod" ], - "doc/man/man3/TS_VERIFY_CTX_set_certs.3" => [ - "doc/man3/TS_VERIFY_CTX_set_certs.pod" + "doc/man/man3/TS_VERIFY_CTX.3" => [ + "doc/man3/TS_VERIFY_CTX.pod" ], "doc/man/man3/UI_STRING.3" => [ "doc/man3/UI_STRING.pod" @@ -6108,6 +6943,21 @@ our %unified_info = ( "doc/man/man3/X509V3_set_ctx.3" => [ "doc/man3/X509V3_set_ctx.pod" ], + "doc/man/man3/X509_ACERT_add1_attr.3" => [ + "doc/man3/X509_ACERT_add1_attr.pod" + ], + "doc/man/man3/X509_ACERT_add_attr_nconf.3" => [ + "doc/man3/X509_ACERT_add_attr_nconf.pod" + ], + "doc/man/man3/X509_ACERT_get0_holder_baseCertId.3" => [ + "doc/man3/X509_ACERT_get0_holder_baseCertId.pod" + ], + "doc/man/man3/X509_ACERT_get_attr.3" => [ + "doc/man3/X509_ACERT_get_attr.pod" + ], + "doc/man/man3/X509_ACERT_print_ex.3" => [ + "doc/man3/X509_ACERT_print_ex.pod" + ], "doc/man/man3/X509_ALGOR_dup.3" => [ "doc/man3/X509_ALGOR_dup.pod" ], @@ -6156,6 +7006,9 @@ our %unified_info = ( "doc/man/man3/X509_SIG_get0.3" => [ "doc/man3/X509_SIG_get0.pod" ], + "doc/man/man3/X509_STORE_CTX_get_by_subject.3" => [ + "doc/man3/X509_STORE_CTX_get_by_subject.pod" + ], "doc/man/man3/X509_STORE_CTX_get_error.3" => [ "doc/man3/X509_STORE_CTX_get_error.pod" ], @@ -6222,6 +7075,9 @@ our %unified_info = ( "doc/man/man3/X509_get0_uids.3" => [ "doc/man3/X509_get0_uids.pod" ], + "doc/man/man3/X509_get_default_cert_file.3" => [ + "doc/man3/X509_get_default_cert_file.pod" + ], "doc/man/man3/X509_get_extension_flags.3" => [ "doc/man3/X509_get_extension_flags.pod" ], @@ -6345,9 +7201,15 @@ our %unified_info = ( "doc/man/man7/EVP_CIPHER-SM4.7" => [ "doc/man7/EVP_CIPHER-SM4.pod" ], + "doc/man/man7/EVP_KDF-ARGON2.7" => [ + "doc/man7/EVP_KDF-ARGON2.pod" + ], "doc/man/man7/EVP_KDF-HKDF.7" => [ "doc/man7/EVP_KDF-HKDF.pod" ], + "doc/man/man7/EVP_KDF-HMAC-DRBG.7" => [ + "doc/man7/EVP_KDF-HMAC-DRBG.pod" + ], "doc/man/man7/EVP_KDF-KB.7" => [ "doc/man7/EVP_KDF-KB.pod" ], @@ -6363,6 +7225,9 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-PKCS12KDF.7" => [ "doc/man7/EVP_KDF-PKCS12KDF.pod" ], + "doc/man/man7/EVP_KDF-PVKKDF.7" => [ + "doc/man7/EVP_KDF-PVKKDF.pod" + ], "doc/man/man7/EVP_KDF-SCRYPT.7" => [ "doc/man7/EVP_KDF-SCRYPT.pod" ], @@ -6387,9 +7252,18 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-X963.7" => [ "doc/man7/EVP_KDF-X963.pod" ], + "doc/man/man7/EVP_KEM-EC.7" => [ + "doc/man7/EVP_KEM-EC.pod" + ], + "doc/man/man7/EVP_KEM-ML-KEM.7" => [ + "doc/man7/EVP_KEM-ML-KEM.pod" + ], "doc/man/man7/EVP_KEM-RSA.7" => [ "doc/man7/EVP_KEM-RSA.pod" ], + "doc/man/man7/EVP_KEM-X25519.7" => [ + "doc/man7/EVP_KEM-X25519.pod" + ], "doc/man/man7/EVP_KEYEXCH-DH.7" => [ "doc/man7/EVP_KEYEXCH-DH.pod" ], @@ -6423,6 +7297,9 @@ our %unified_info = ( "doc/man/man7/EVP_MD-BLAKE2.7" => [ "doc/man7/EVP_MD-BLAKE2.pod" ], + "doc/man/man7/EVP_MD-KECCAK.7" => [ + "doc/man7/EVP_MD-KECCAK.pod" + ], "doc/man/man7/EVP_MD-MD2.7" => [ "doc/man7/EVP_MD-MD2.pod" ], @@ -6480,15 +7357,27 @@ our %unified_info = ( "doc/man/man7/EVP_PKEY-HMAC.7" => [ "doc/man7/EVP_PKEY-HMAC.pod" ], + "doc/man/man7/EVP_PKEY-ML-DSA.7" => [ + "doc/man7/EVP_PKEY-ML-DSA.pod" + ], + "doc/man/man7/EVP_PKEY-ML-KEM.7" => [ + "doc/man7/EVP_PKEY-ML-KEM.pod" + ], "doc/man/man7/EVP_PKEY-RSA.7" => [ "doc/man7/EVP_PKEY-RSA.pod" ], + "doc/man/man7/EVP_PKEY-SLH-DSA.7" => [ + "doc/man7/EVP_PKEY-SLH-DSA.pod" + ], "doc/man/man7/EVP_PKEY-SM2.7" => [ "doc/man7/EVP_PKEY-SM2.pod" ], "doc/man/man7/EVP_PKEY-X25519.7" => [ "doc/man7/EVP_PKEY-X25519.pod" ], + "doc/man/man7/EVP_RAND-CRNG-TEST.7" => [ + "doc/man7/EVP_RAND-CRNG-TEST.pod" + ], "doc/man/man7/EVP_RAND-CTR-DRBG.7" => [ "doc/man7/EVP_RAND-CTR-DRBG.pod" ], @@ -6498,6 +7387,9 @@ our %unified_info = ( "doc/man/man7/EVP_RAND-HMAC-DRBG.7" => [ "doc/man7/EVP_RAND-HMAC-DRBG.pod" ], + "doc/man/man7/EVP_RAND-JITTER.7" => [ + "doc/man7/EVP_RAND-JITTER.pod" + ], "doc/man/man7/EVP_RAND-SEED-SRC.7" => [ "doc/man7/EVP_RAND-SEED-SRC.pod" ], @@ -6519,9 +7411,15 @@ our %unified_info = ( "doc/man/man7/EVP_SIGNATURE-HMAC.7" => [ "doc/man7/EVP_SIGNATURE-HMAC.pod" ], + "doc/man/man7/EVP_SIGNATURE-ML-DSA.7" => [ + "doc/man7/EVP_SIGNATURE-ML-DSA.pod" + ], "doc/man/man7/EVP_SIGNATURE-RSA.7" => [ "doc/man7/EVP_SIGNATURE-RSA.pod" ], + "doc/man/man7/EVP_SIGNATURE-SLH-DSA.7" => [ + "doc/man7/EVP_SIGNATURE-SLH-DSA.pod" + ], "doc/man/man7/OSSL_PROVIDER-FIPS.7" => [ "doc/man7/OSSL_PROVIDER-FIPS.pod" ], @@ -6537,6 +7435,9 @@ our %unified_info = ( "doc/man/man7/OSSL_PROVIDER-null.7" => [ "doc/man7/OSSL_PROVIDER-null.pod" ], + "doc/man/man7/OSSL_STORE-winstore.7" => [ + "doc/man7/OSSL_STORE-winstore.pod" + ], "doc/man/man7/RAND.7" => [ "doc/man7/RAND.pod" ], @@ -6549,9 +7450,6 @@ our %unified_info = ( "doc/man/man7/bio.7" => [ "doc/man7/bio.pod" ], - "doc/man/man7/crypto.7" => [ - "doc/man7/crypto.pod" - ], "doc/man/man7/ct.7" => [ "doc/man7/ct.pod" ], @@ -6582,9 +7480,6 @@ our %unified_info = ( "doc/man/man7/life_cycle-rand.7" => [ "doc/man7/life_cycle-rand.pod" ], - "doc/man/man7/migration_guide.7" => [ - "doc/man7/migration_guide.pod" - ], "doc/man/man7/openssl-core.h.7" => [ "doc/man7/openssl-core.h.pod" ], @@ -6600,12 +7495,66 @@ our %unified_info = ( "doc/man/man7/openssl-glossary.7" => [ "doc/man7/openssl-glossary.pod" ], + "doc/man/man7/openssl-qlog.7" => [ + "doc/man7/openssl-qlog.pod" + ], + "doc/man/man7/openssl-quic-concurrency.7" => [ + "doc/man7/openssl-quic-concurrency.pod" + ], + "doc/man/man7/openssl-quic.7" => [ + "doc/man7/openssl-quic.pod" + ], "doc/man/man7/openssl-threads.7" => [ "doc/man7/openssl-threads.pod" ], "doc/man/man7/openssl_user_macros.7" => [ "doc/man7/openssl_user_macros.pod" ], + "doc/man/man7/ossl-guide-introduction.7" => [ + "doc/man7/ossl-guide-introduction.pod" + ], + "doc/man/man7/ossl-guide-libcrypto-introduction.7" => [ + "doc/man7/ossl-guide-libcrypto-introduction.pod" + ], + "doc/man/man7/ossl-guide-libraries-introduction.7" => [ + "doc/man7/ossl-guide-libraries-introduction.pod" + ], + "doc/man/man7/ossl-guide-libssl-introduction.7" => [ + "doc/man7/ossl-guide-libssl-introduction.pod" + ], + "doc/man/man7/ossl-guide-migration.7" => [ + "doc/man7/ossl-guide-migration.pod" + ], + "doc/man/man7/ossl-guide-quic-client-block.7" => [ + "doc/man7/ossl-guide-quic-client-block.pod" + ], + "doc/man/man7/ossl-guide-quic-client-non-block.7" => [ + "doc/man7/ossl-guide-quic-client-non-block.pod" + ], + "doc/man/man7/ossl-guide-quic-introduction.7" => [ + "doc/man7/ossl-guide-quic-introduction.pod" + ], + "doc/man/man7/ossl-guide-quic-multi-stream.7" => [ + "doc/man7/ossl-guide-quic-multi-stream.pod" + ], + "doc/man/man7/ossl-guide-quic-server-block.7" => [ + "doc/man7/ossl-guide-quic-server-block.pod" + ], + "doc/man/man7/ossl-guide-quic-server-non-block.7" => [ + "doc/man7/ossl-guide-quic-server-non-block.pod" + ], + "doc/man/man7/ossl-guide-tls-client-block.7" => [ + "doc/man7/ossl-guide-tls-client-block.pod" + ], + "doc/man/man7/ossl-guide-tls-client-non-block.7" => [ + "doc/man7/ossl-guide-tls-client-non-block.pod" + ], + "doc/man/man7/ossl-guide-tls-introduction.7" => [ + "doc/man7/ossl-guide-tls-introduction.pod" + ], + "doc/man/man7/ossl-guide-tls-server-block.7" => [ + "doc/man7/ossl-guide-tls-server-block.pod" + ], "doc/man/man7/ossl_store-file.7" => [ "doc/man7/ossl_store-file.pod" ], @@ -6660,6 +7609,9 @@ our %unified_info = ( "doc/man/man7/provider-signature.7" => [ "doc/man7/provider-signature.pod" ], + "doc/man/man7/provider-skeymgmt.7" => [ + "doc/man7/provider-skeymgmt.pod" + ], "doc/man/man7/provider-storemgmt.7" => [ "doc/man7/provider-storemgmt.pod" ], @@ -6669,9 +7621,6 @@ our %unified_info = ( "doc/man/man7/proxy-certificates.7" => [ "doc/man7/proxy-certificates.pod" ], - "doc/man/man7/ssl.7" => [ - "doc/man7/ssl.pod" - ], "doc/man/man7/x509.7" => [ "doc/man7/x509.pod" ], @@ -6851,6 +7800,10 @@ our %unified_info = ( "doc/man1/openssl-sess_id.pod.in", "doc/perlvars.pm" ], + "doc/man1/openssl-skeyutl.pod" => [ + "doc/man1/openssl-skeyutl.pod.in", + "doc/perlvars.pm" + ], "doc/man1/openssl-smime.pod" => [ "doc/man1/openssl-smime.pod.in", "doc/perlvars.pm" @@ -6890,6 +7843,27 @@ our %unified_info = ( "doc/man7/openssl_user_macros.pod" => [ "doc/man7/openssl_user_macros.pod.in" ], + "exporters/OpenSSLConfig.cmake" => [ + "installdata.pm" + ], + "exporters/OpenSSLConfigVersion.cmake" => [ + "exporters/OpenSSLConfig.cmake", + "installdata.pm" + ], + "exporters/libcrypto.pc" => [ + "installdata.pm" + ], + "exporters/libssl.pc" => [ + "installdata.pm" + ], + "exporters/openssl.pc" => [ + "exporters/libcrypto.pc", + "exporters/libssl.pc", + "installdata.pm" + ], + "fuzz/acert-test" => [ + "libcrypto" + ], "fuzz/asn1-test" => [ "libcrypto", "libssl" @@ -6922,17 +7896,85 @@ our %unified_info = ( "fuzz/ct-test" => [ "libcrypto" ], + "fuzz/decoder-test" => [ + "libcrypto" + ], + "fuzz/dtlsclient-test" => [ + "libcrypto", + "libssl" + ], + "fuzz/dtlsserver-test" => [ + "libcrypto", + "libssl" + ], + "fuzz/hashtable-test" => [ + "libcrypto.a" + ], + "fuzz/ml-dsa-test" => [ + "libcrypto.a" + ], + "fuzz/ml-kem-test" => [ + "libcrypto.a" + ], + "fuzz/pem-test" => [ + "libcrypto.a" + ], + "fuzz/provider-test" => [ + "libcrypto" + ], + "fuzz/punycode-test" => [ + "libcrypto.a" + ], + "fuzz/quic-client-test" => [ + "libcrypto.a", + "libssl.a" + ], + "fuzz/quic-lcidm-test" => [ + "libcrypto.a", + "libssl.a" + ], + "fuzz/quic-rcidm-test" => [ + "libcrypto.a", + "libssl.a" + ], + "fuzz/quic-server-test" => [ + "libcrypto.a", + "libssl.a" + ], + "fuzz/quic-srtm-test" => [ + "libcrypto.a", + "libssl.a" + ], "fuzz/server-test" => [ "libcrypto", "libssl" ], + "fuzz/slh-dsa-test" => [ + "libcrypto.a" + ], + "fuzz/smime-test" => [ + "libcrypto", + "libssl" + ], + "fuzz/v3name-test" => [ + "libcrypto.a" + ], "fuzz/x509-test" => [ "libcrypto" ], + "include/internal/param_names.h" => [ + "util/perl|OpenSSL/paramnames.pm" + ], + "include/openssl/core_names.h" => [ + "util/perl|OpenSSL/paramnames.pm" + ], "libcrypto.ld" => [ "configdata.pm", "util/perl/OpenSSL/Ordinals.pm" ], + "libcrypto.pc" => [ + "builddata.pm" + ], "libssl" => [ "libcrypto" ], @@ -6940,6 +7982,14 @@ our %unified_info = ( "configdata.pm", "util/perl/OpenSSL/Ordinals.pm" ], + "libssl.pc" => [ + "builddata.pm" + ], + "openssl.pc" => [ + "builddata.pm", + "libcrypto.pc", + "libssl.pc" + ], "providers/common/der/der_digests_gen.c" => [ "providers/common/der/DIGESTS.asn1", "providers/common/der/NIST.asn1", @@ -6957,11 +8007,19 @@ our %unified_info = ( "providers/common/der/ECX.asn1", "providers/common/der/oids_to_c.pm" ], + "providers/common/der/der_ml_dsa_gen.c" => [ + "providers/common/der/ML_DSA.asn1", + "providers/common/der/oids_to_c.pm" + ], "providers/common/der/der_rsa_gen.c" => [ "providers/common/der/NIST.asn1", "providers/common/der/RSA.asn1", "providers/common/der/oids_to_c.pm" ], + "providers/common/der/der_slh_dsa_gen.c" => [ + "providers/common/der/SLH_DSA.asn1", + "providers/common/der/oids_to_c.pm" + ], "providers/common/der/der_sm2_gen.c" => [ "providers/common/der/SM2.asn1", "providers/common/der/oids_to_c.pm" @@ -7001,6 +8059,12 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ecx_key.o" => [ "providers/common/include/prov/der_ecx.h" ], + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o" => [ + "providers/common/include/prov/der_ml_dsa.h" + ], + "providers/common/der/libcommon-lib-der_ml_dsa_key.o" => [ + "providers/common/include/prov/der_ml_dsa.h" + ], "providers/common/der/libcommon-lib-der_rsa_gen.o" => [ "providers/common/include/prov/der_rsa.h" ], @@ -7008,6 +8072,12 @@ our %unified_info = ( "providers/common/include/prov/der_digests.h", "providers/common/include/prov/der_rsa.h" ], + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o" => [ + "providers/common/include/prov/der_slh_dsa.h" + ], + "providers/common/der/libcommon-lib-der_slh_dsa_key.o" => [ + "providers/common/include/prov/der_slh_dsa.h" + ], "providers/common/der/libcommon-lib-der_wrap_gen.o" => [ "providers/common/include/prov/der_wrap.h" ], @@ -7047,11 +8117,19 @@ our %unified_info = ( "providers/common/der/ECX.asn1", "providers/common/der/oids_to_c.pm" ], + "providers/common/include/prov/der_ml_dsa.h" => [ + "providers/common/der/ML_DSA.asn1", + "providers/common/der/oids_to_c.pm" + ], "providers/common/include/prov/der_rsa.h" => [ "providers/common/der/NIST.asn1", "providers/common/der/RSA.asn1", "providers/common/der/oids_to_c.pm" ], + "providers/common/include/prov/der_slh_dsa.h" => [ + "providers/common/der/SLH_DSA.asn1", + "providers/common/der/oids_to_c.pm" + ], "providers/common/include/prov/der_sm2.h" => [ "providers/common/der/SM2.asn1", "providers/common/der/oids_to_c.pm" @@ -7084,9 +8162,15 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-eddsa_sig.o" => [ "providers/common/include/prov/der_ecx.h" ], + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o" => [ + "providers/common/include/prov/der_ml_dsa.h" + ], "providers/implementations/signature/libdefault-lib-rsa_sig.o" => [ "providers/common/include/prov/der_rsa.h" ], + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o" => [ + "providers/common/include/prov/der_slh_dsa.h" + ], "providers/implementations/signature/libdefault-lib-sm2_sig.o" => [ "providers/common/include/prov/der_sm2.h" ], @@ -7099,9 +8183,15 @@ our %unified_info = ( "providers/implementations/signature/libfips-lib-eddsa_sig.o" => [ "providers/common/include/prov/der_ecx.h" ], + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o" => [ + "providers/common/include/prov/der_ml_dsa.h" + ], "providers/implementations/signature/libfips-lib-rsa_sig.o" => [ "providers/common/include/prov/der_rsa.h" ], + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o" => [ + "providers/common/include/prov/der_slh_dsa.h" + ], "providers/legacy" => [ "libcrypto", "providers/liblegacy.a" @@ -7179,6 +8269,14 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/bio_addr_test" => [ + "libcrypto", + "test/libtestutil.a" + ], + "test/bio_base64_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/bio_callback_test" => [ "libcrypto", "test/libtestutil.a" @@ -7187,6 +8285,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/bio_dgram_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/bio_enc_test" => [ "libcrypto", "test/libtestutil.a" @@ -7195,6 +8297,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/bio_meth_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/bio_prefix_text" => [ "libcrypto", "test/libtestutil.a" @@ -7207,6 +8313,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/bio_tfo_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/bioprinttest" => [ "libcrypto", "test/libtestutil.a" @@ -7219,6 +8329,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/build_wincrypt_test" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_aes" => [ "libcrypto", "libssl" @@ -7239,6 +8353,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_byteorder" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_camellia" => [ "libcrypto", "libssl" @@ -7271,10 +8389,6 @@ our %unified_info = ( "libcrypto", "libssl" ], - "test/buildtest_c_core_names" => [ - "libcrypto", - "libssl" - ], "test/buildtest_c_core_object" => [ "libcrypto", "libssl" @@ -7307,6 +8421,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_e_ostime" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_ebcdic" => [ "libcrypto", "libssl" @@ -7343,6 +8461,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_hpke" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_http" => [ "libcrypto", "libssl" @@ -7351,6 +8473,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_indicator" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_kdf" => [ "libcrypto", "libssl" @@ -7371,6 +8497,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_ml_kem" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_modes" => [ "libcrypto", "libssl" @@ -7411,6 +8541,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_quic" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_rand" => [ "libcrypto", "libssl" @@ -7467,6 +8601,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_thread" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_tls1" => [ "libcrypto", "libssl" @@ -7487,10 +8625,23 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/byteorder_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], + "test/ca_internals_test" => [ + "libssl", + "test/libtestutil.a" + ], "test/casttest" => [ "libcrypto", "test/libtestutil.a" ], + "test/cert_comp_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], "test/chacha_internal_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -7604,7 +8755,11 @@ our %unified_info = ( "libssl", "test/libtestutil.a" ], - "test/defltfips_test" => [ + "test/decoder_propq_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], + "test/defltfips_test" => [ "libcrypto", "test/libtestutil.a" ], @@ -7660,6 +8815,8 @@ our %unified_info = ( ], "test/endecode_test" => [ "libcrypto.a", + "providers/libcommon.a", + "providers/liblegacy.a", "test/libtestutil.a" ], "test/endecoder_legacy_test" => [ @@ -7703,6 +8860,10 @@ our %unified_info = ( "test/evp_pkey_ctx_new_from_name" => [ "libcrypto" ], + "test/evp_pkey_dhkem_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/evp_pkey_dparams_test" => [ "libcrypto", "test/libtestutil.a" @@ -7711,10 +8872,18 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/evp_skey_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/evp_test" => [ "libcrypto", "test/libtestutil.a" ], + "test/evp_xof_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/exdatatest" => [ "libcrypto", "test/libtestutil.a" @@ -7753,6 +8922,10 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/hpke_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/http_test" => [ "libcrypto", "test/libtestutil.a" @@ -7765,17 +8938,25 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/json_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], "test/keymgmt_internal_test" => [ "libcrypto.a", "test/libtestutil.a" ], "test/lhash_test" => [ - "libcrypto", + "libcrypto.a", "test/libtestutil.a" ], "test/libtestutil.a" => [ "libcrypto" ], + "test/list_test" => [ + "test/libtestutil.a" + ], "test/localetest" => [ "libcrypto", "test/libtestutil.a" @@ -7788,10 +8969,26 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/membio_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/memleaktest" => [ "libcrypto", "test/libtestutil.a" ], + "test/ml_dsa_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], + "test/ml_kem_evp_extra_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], + "test/ml_kem_internal_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/modes_internal_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -7816,6 +9013,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/pairwise_fail_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/param_build_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -7848,6 +9049,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/pkcs12_api_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/pkcs12_format_test" => [ "libcrypto", "test/libtestutil.a" @@ -7868,6 +9073,11 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/priority_queue_test" => [ + "libcrypto", + "libssl.a", + "test/libtestutil.a" + ], "test/property_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -7880,6 +9090,10 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/provider_default_search_path_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/provider_fallback_test" => [ "libcrypto", "test/libtestutil.a" @@ -7904,12 +9118,122 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/quic_ackm_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_cc_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_cfq_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_client_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_fc_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_fifd_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_lcidm_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_multistream_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_newcid_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_qlog_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_radix_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_rcidm_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_record_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_srt_gen_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_srtm_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_stream_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_tserver_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_txp_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_txpim_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_wire_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quicapitest" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quicfaultstest" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], "test/rand_status_test" => [ "libcrypto", "test/libtestutil.a" ], "test/rand_test" => [ - "libcrypto", + "libcrypto.a", "test/libtestutil.a" ], "test/rc2test" => [ @@ -7924,7 +9248,7 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], - "test/rdrand_sanitytest" => [ + "test/rdcpu_sanitytest" => [ "libcrypto.a", "test/libtestutil.a" ], @@ -7933,6 +9257,11 @@ our %unified_info = ( "libssl", "test/libtestutil.a" ], + "test/rpktest" => [ + "libcrypto", + "libssl", + "test/libtestutil.a" + ], "test/rsa_mp_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -7945,10 +9274,18 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], - "test/sanitytest" => [ + "test/rsa_x931_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], + "test/safe_math_test" => [ "libcrypto", "test/libtestutil.a" ], + "test/sanitytest" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/secmemtest" => [ "libcrypto", "test/libtestutil.a" @@ -7966,6 +9303,10 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/slh_dsa_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/sm2_internal_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -7995,6 +9336,11 @@ our %unified_info = ( "libssl", "test/libtestutil.a" ], + "test/ssl_handshake_rtt_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], "test/ssl_old_test" => [ "libcrypto.a", "libssl.a", @@ -8011,8 +9357,8 @@ our %unified_info = ( "test/libtestutil.a" ], "test/sslapitest" => [ - "libcrypto", - "libssl", + "libcrypto.a", + "libssl.a", "test/libtestutil.a" ], "test/sslbuffertest" => [ @@ -8029,6 +9375,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/strtoultest" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/sysdefaulttest" => [ "libcrypto", "libssl", @@ -8038,8 +9388,12 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/threadpool_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/threadstest" => [ - "libcrypto", + "libcrypto.a", "test/libtestutil.a" ], "test/threadstest_fips" => [ @@ -8050,6 +9404,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/time_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/tls13ccstest" => [ "libcrypto", "libssl", @@ -8060,6 +9418,11 @@ our %unified_info = ( "libssl.a", "test/libtestutil.a" ], + "test/tls13groupselection_test" => [ + "libcrypto", + "libssl", + "test/libtestutil.a" + ], "test/trace_api_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -8097,6 +9460,10 @@ our %unified_info = ( "libssl.a", "test/libtestutil.a" ], + "test/x509_acert_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/x509_check_cert_pkey_test" => [ "libcrypto", "test/libtestutil.a" @@ -8109,6 +9476,18 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/x509_load_cert_file_test" => [ + "libcrypto", + "test/libtestutil.a" + ], + "test/x509_req_test" => [ + "libcrypto", + "test/libtestutil.a" + ], + "test/x509_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/x509_time_test" => [ "libcrypto", "test/libtestutil.a" @@ -8123,9 +9502,13 @@ our %unified_info = ( }, "dirinfo" => { "apps" => { + "deps" => [ + "apps/ca_internals_test-bin-ca.o" + ], "products" => { "bin" => [ - "apps/openssl" + "apps/openssl", + "test/ca_internals_test" ], "script" => [ "apps/CA.pl", @@ -8136,6 +9519,14 @@ our %unified_info = ( "apps/lib" => { "deps" => [ "apps/lib/openssl-bin-cmp_mock_srv.o", + "apps/lib/ca_internals_test-bin-app_libctx.o", + "apps/lib/ca_internals_test-bin-app_provider.o", + "apps/lib/ca_internals_test-bin-app_rand.o", + "apps/lib/ca_internals_test-bin-app_x509.o", + "apps/lib/ca_internals_test-bin-apps.o", + "apps/lib/ca_internals_test-bin-apps_ui.o", + "apps/lib/ca_internals_test-bin-engine.o", + "apps/lib/ca_internals_test-bin-fmt.o", "apps/lib/cmp_client_test-bin-cmp_mock_srv.o", "apps/lib/uitest-bin-apps_ui.o", "apps/lib/libapps-lib-app_libctx.o", @@ -8144,12 +9535,14 @@ our %unified_info = ( "apps/lib/libapps-lib-app_rand.o", "apps/lib/libapps-lib-app_x509.o", "apps/lib/libapps-lib-apps.o", + "apps/lib/libapps-lib-apps_opt_printf.o", "apps/lib/libapps-lib-apps_ui.o", "apps/lib/libapps-lib-columns.o", "apps/lib/libapps-lib-engine.o", "apps/lib/libapps-lib-engine_loader.o", "apps/lib/libapps-lib-fmt.o", "apps/lib/libapps-lib-http_server.o", + "apps/lib/libapps-lib-log.o", "apps/lib/libapps-lib-names.o", "apps/lib/libapps-lib-opt.o", "apps/lib/libapps-lib-s_cb.o", @@ -8160,6 +9553,7 @@ our %unified_info = ( "products" => { "bin" => [ "apps/openssl", + "test/ca_internals_test", "test/cmp_client_test", "test/uitest" ], @@ -8171,8 +9565,12 @@ our %unified_info = ( }, "crypto" => { "deps" => [ + "crypto/asn1_time_test-bin-ctype.o", + "crypto/ca_internals_test-bin-ctype.o", + "crypto/packettest-bin-quic_vlint.o", "crypto/libcrypto-lib-asn1_dsa.o", "crypto/libcrypto-lib-bsearch.o", + "crypto/libcrypto-lib-comp_methods.o", "crypto/libcrypto-lib-context.o", "crypto/libcrypto-lib-core_algorithm.o", "crypto/libcrypto-lib-core_fetch.o", @@ -8182,10 +9580,13 @@ our %unified_info = ( "crypto/libcrypto-lib-cryptlib.o", "crypto/libcrypto-lib-ctype.o", "crypto/libcrypto-lib-cversion.o", + "crypto/libcrypto-lib-defaults.o", "crypto/libcrypto-lib-der_writer.o", + "crypto/libcrypto-lib-deterministic_nonce.o", "crypto/libcrypto-lib-ebcdic.o", "crypto/libcrypto-lib-ex_data.o", "crypto/libcrypto-lib-getenv.o", + "crypto/libcrypto-lib-indicator_core.o", "crypto/libcrypto-lib-info.o", "crypto/libcrypto-lib-init.o", "crypto/libcrypto-lib-initthread.o", @@ -8203,6 +9604,7 @@ our %unified_info = ( "crypto/libcrypto-lib-params.o", "crypto/libcrypto-lib-params_dup.o", "crypto/libcrypto-lib-params_from_text.o", + "crypto/libcrypto-lib-params_idx.o", "crypto/libcrypto-lib-passphrase.o", "crypto/libcrypto-lib-provider.o", "crypto/libcrypto-lib-provider_child.o", @@ -8210,12 +9612,16 @@ our %unified_info = ( "crypto/libcrypto-lib-provider_core.o", "crypto/libcrypto-lib-provider_predefined.o", "crypto/libcrypto-lib-punycode.o", + "crypto/libcrypto-lib-quic_vlint.o", "crypto/libcrypto-lib-self_test_core.o", + "crypto/libcrypto-lib-sleep.o", "crypto/libcrypto-lib-sparse_array.o", + "crypto/libcrypto-lib-ssl_err.o", "crypto/libcrypto-lib-threads_lib.o", "crypto/libcrypto-lib-threads_none.o", "crypto/libcrypto-lib-threads_pthread.o", "crypto/libcrypto-lib-threads_win.o", + "crypto/libcrypto-lib-time.o", "crypto/libcrypto-lib-trace.o", "crypto/libcrypto-lib-uid.o", "crypto/libfips-lib-asn1_dsa.o", @@ -8238,6 +9644,7 @@ our %unified_info = ( "crypto/libfips-lib-params.o", "crypto/libfips-lib-params_dup.o", "crypto/libfips-lib-params_from_text.o", + "crypto/libfips-lib-params_idx.o", "crypto/libfips-lib-provider_core.o", "crypto/libfips-lib-provider_predefined.o", "crypto/libfips-lib-self_test_core.o", @@ -8245,9 +9652,15 @@ our %unified_info = ( "crypto/libfips-lib-threads_lib.o", "crypto/libfips-lib-threads_none.o", "crypto/libfips-lib-threads_pthread.o", - "crypto/libfips-lib-threads_win.o" + "crypto/libfips-lib-threads_win.o", + "crypto/libfips-lib-time.o" ], "products" => { + "bin" => [ + "test/asn1_time_test", + "test/ca_internals_test", + "test/packettest" + ], "lib" => [ "libcrypto", "providers/libfips.a" @@ -8288,6 +9701,8 @@ our %unified_info = ( }, "crypto/asn1" => { "deps" => [ + "crypto/asn1/asn1_time_test-bin-a_time.o", + "crypto/asn1/ca_internals_test-bin-a_time.o", "crypto/asn1/libcrypto-lib-a_bitstr.o", "crypto/asn1/libcrypto-lib-a_d2i_fp.o", "crypto/asn1/libcrypto-lib-a_digest.o", @@ -8354,6 +9769,10 @@ our %unified_info = ( "crypto/asn1/libcrypto-lib-x_val.o" ], "products" => { + "bin" => [ + "test/asn1_time_test", + "test/ca_internals_test" + ], "lib" => [ "libcrypto" ] @@ -8419,6 +9838,7 @@ our %unified_info = ( "crypto/bio/libcrypto-lib-bss_conn.o", "crypto/bio/libcrypto-lib-bss_core.o", "crypto/bio/libcrypto-lib-bss_dgram.o", + "crypto/bio/libcrypto-lib-bss_dgram_pair.o", "crypto/bio/libcrypto-lib-bss_fd.o", "crypto/bio/libcrypto-lib-bss_file.o", "crypto/bio/libcrypto-lib-bss_log.o", @@ -8575,6 +9995,7 @@ our %unified_info = ( "crypto/cmp/libcrypto-lib-cmp_client.o", "crypto/cmp/libcrypto-lib-cmp_ctx.o", "crypto/cmp/libcrypto-lib-cmp_err.o", + "crypto/cmp/libcrypto-lib-cmp_genm.o", "crypto/cmp/libcrypto-lib-cmp_hdr.o", "crypto/cmp/libcrypto-lib-cmp_http.o", "crypto/cmp/libcrypto-lib-cmp_msg.o", @@ -8942,7 +10363,9 @@ our %unified_info = ( "crypto/err/libcrypto-lib-err_all.o", "crypto/err/libcrypto-lib-err_all_legacy.o", "crypto/err/libcrypto-lib-err_blocks.o", - "crypto/err/libcrypto-lib-err_prn.o" + "crypto/err/libcrypto-lib-err_mark.o", + "crypto/err/libcrypto-lib-err_prn.o", + "crypto/err/libcrypto-lib-err_save.o" ], "products" => { "lib" => [ @@ -9043,7 +10466,9 @@ our %unified_info = ( "crypto/evp/libcrypto-lib-pmeth_check.o", "crypto/evp/libcrypto-lib-pmeth_gn.o", "crypto/evp/libcrypto-lib-pmeth_lib.o", + "crypto/evp/libcrypto-lib-s_lib.o", "crypto/evp/libcrypto-lib-signature.o", + "crypto/evp/libcrypto-lib-skeymgmt_meth.o", "crypto/evp/libfips-lib-asymcipher.o", "crypto/evp/libfips-lib-dh_support.o", "crypto/evp/libfips-lib-digest.o", @@ -9059,14 +10484,15 @@ our %unified_info = ( "crypto/evp/libfips-lib-kem.o", "crypto/evp/libfips-lib-keymgmt_lib.o", "crypto/evp/libfips-lib-keymgmt_meth.o", - "crypto/evp/libfips-lib-m_sigver.o", "crypto/evp/libfips-lib-mac_lib.o", "crypto/evp/libfips-lib-mac_meth.o", "crypto/evp/libfips-lib-p_lib.o", "crypto/evp/libfips-lib-pmeth_check.o", "crypto/evp/libfips-lib-pmeth_gn.o", "crypto/evp/libfips-lib-pmeth_lib.o", - "crypto/evp/libfips-lib-signature.o" + "crypto/evp/libfips-lib-s_lib.o", + "crypto/evp/libfips-lib-signature.o", + "crypto/evp/libfips-lib-skeymgmt_meth.o" ], "products" => { "lib" => [ @@ -9099,6 +10525,20 @@ our %unified_info = ( ] } }, + "crypto/hashtable" => { + "deps" => [ + "crypto/hashtable/libcrypto-lib-hashfunc.o", + "crypto/hashtable/libcrypto-lib-hashtable.o", + "crypto/hashtable/libfips-lib-hashfunc.o", + "crypto/hashtable/libfips-lib-hashtable.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, "crypto/hmac" => { "deps" => [ "crypto/hmac/libcrypto-lib-hmac.o", @@ -9111,6 +10551,17 @@ our %unified_info = ( ] } }, + "crypto/hpke" => { + "deps" => [ + "crypto/hpke/libcrypto-lib-hpke.o", + "crypto/hpke/libcrypto-lib-hpke_util.o" + ], + "products" => { + "lib" => [ + "libcrypto" + ] + } + }, "crypto/http" => { "deps" => [ "crypto/http/libcrypto-lib-http_client.o", @@ -9194,6 +10645,44 @@ our %unified_info = ( ] } }, + "crypto/ml_dsa" => { + "deps" => [ + "crypto/ml_dsa/libcrypto-lib-ml_dsa_encoders.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key_compress.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_matrix.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_ntt.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_params.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sample.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sign.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_encoders.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_key.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_key_compress.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_matrix.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_ntt.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_params.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_sample.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_sign.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, + "crypto/ml_kem" => { + "deps" => [ + "crypto/ml_kem/libcrypto-lib-ml_kem.o", + "crypto/ml_kem/libfips-lib-ml_kem.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, "crypto/modes" => { "deps" => [ "crypto/modes/libcrypto-lib-cbc128.o", @@ -9207,6 +10696,7 @@ our %unified_info = ( "crypto/modes/libcrypto-lib-siv128.o", "crypto/modes/libcrypto-lib-wrap128.o", "crypto/modes/libcrypto-lib-xts128.o", + "crypto/modes/libcrypto-lib-xts128gb.o", "crypto/modes/libfips-lib-cbc128.o", "crypto/modes/libfips-lib-ccm128.o", "crypto/modes/libfips-lib-cfb128.o", @@ -9214,7 +10704,8 @@ our %unified_info = ( "crypto/modes/libfips-lib-gcm128.o", "crypto/modes/libfips-lib-ofb128.o", "crypto/modes/libfips-lib-wrap128.o", - "crypto/modes/libfips-lib-xts128.o" + "crypto/modes/libfips-lib-xts128.o", + "crypto/modes/libfips-lib-xts128gb.o" ], "products" => { "lib" => [ @@ -9357,6 +10848,7 @@ our %unified_info = ( "crypto/rand/libcrypto-lib-rand_lib.o", "crypto/rand/libcrypto-lib-rand_meth.o", "crypto/rand/libcrypto-lib-rand_pool.o", + "crypto/rand/libcrypto-lib-rand_uniform.o", "crypto/rand/libcrypto-lib-randfile.o", "crypto/rand/libfips-lib-rand_lib.o" ], @@ -9501,6 +10993,36 @@ our %unified_info = ( ] } }, + "crypto/slh_dsa" => { + "deps" => [ + "crypto/slh_dsa/libcrypto-lib-slh_adrs.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa_hash_ctx.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa_key.o", + "crypto/slh_dsa/libcrypto-lib-slh_fors.o", + "crypto/slh_dsa/libcrypto-lib-slh_hash.o", + "crypto/slh_dsa/libcrypto-lib-slh_hypertree.o", + "crypto/slh_dsa/libcrypto-lib-slh_params.o", + "crypto/slh_dsa/libcrypto-lib-slh_wots.o", + "crypto/slh_dsa/libcrypto-lib-slh_xmss.o", + "crypto/slh_dsa/libfips-lib-slh_adrs.o", + "crypto/slh_dsa/libfips-lib-slh_dsa.o", + "crypto/slh_dsa/libfips-lib-slh_dsa_hash_ctx.o", + "crypto/slh_dsa/libfips-lib-slh_dsa_key.o", + "crypto/slh_dsa/libfips-lib-slh_fors.o", + "crypto/slh_dsa/libfips-lib-slh_hash.o", + "crypto/slh_dsa/libfips-lib-slh_hypertree.o", + "crypto/slh_dsa/libfips-lib-slh_params.o", + "crypto/slh_dsa/libfips-lib-slh_wots.o", + "crypto/slh_dsa/libfips-lib-slh_xmss.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, "crypto/sm2" => { "deps" => [ "crypto/sm2/libcrypto-lib-sm2_crypt.o", @@ -9574,6 +11096,38 @@ our %unified_info = ( ] } }, + "crypto/thread" => { + "deps" => [ + "crypto/thread/libcrypto-lib-api.o", + "crypto/thread/libcrypto-lib-arch.o", + "crypto/thread/libcrypto-lib-internal.o", + "crypto/thread/libfips-lib-api.o", + "crypto/thread/libfips-lib-arch.o", + "crypto/thread/libfips-lib-internal.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, + "crypto/thread/arch" => { + "deps" => [ + "crypto/thread/arch/libcrypto-lib-thread_none.o", + "crypto/thread/arch/libcrypto-lib-thread_posix.o", + "crypto/thread/arch/libcrypto-lib-thread_win.o", + "crypto/thread/arch/libfips-lib-thread_none.o", + "crypto/thread/arch/libfips-lib-thread_posix.o", + "crypto/thread/arch/libfips-lib-thread_win.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, "crypto/ts" => { "deps" => [ "crypto/ts/libcrypto-lib-ts_asn1.o", @@ -9640,14 +11194,22 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-pcy_map.o", "crypto/x509/libcrypto-lib-pcy_node.o", "crypto/x509/libcrypto-lib-pcy_tree.o", + "crypto/x509/libcrypto-lib-t_acert.o", "crypto/x509/libcrypto-lib-t_crl.o", "crypto/x509/libcrypto-lib-t_req.o", "crypto/x509/libcrypto-lib-t_x509.o", + "crypto/x509/libcrypto-lib-v3_aaa.o", + "crypto/x509/libcrypto-lib-v3_ac_tgt.o", "crypto/x509/libcrypto-lib-v3_addr.o", "crypto/x509/libcrypto-lib-v3_admis.o", "crypto/x509/libcrypto-lib-v3_akeya.o", "crypto/x509/libcrypto-lib-v3_akid.o", "crypto/x509/libcrypto-lib-v3_asid.o", + "crypto/x509/libcrypto-lib-v3_attrdesc.o", + "crypto/x509/libcrypto-lib-v3_attrmap.o", + "crypto/x509/libcrypto-lib-v3_audit_id.o", + "crypto/x509/libcrypto-lib-v3_authattid.o", + "crypto/x509/libcrypto-lib-v3_battcons.o", "crypto/x509/libcrypto-lib-v3_bcons.o", "crypto/x509/libcrypto-lib-v3_bitst.o", "crypto/x509/libcrypto-lib-v3_conf.o", @@ -9656,12 +11218,17 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_enum.o", "crypto/x509/libcrypto-lib-v3_extku.o", "crypto/x509/libcrypto-lib-v3_genn.o", + "crypto/x509/libcrypto-lib-v3_group_ac.o", "crypto/x509/libcrypto-lib-v3_ia5.o", + "crypto/x509/libcrypto-lib-v3_ind_iss.o", "crypto/x509/libcrypto-lib-v3_info.o", "crypto/x509/libcrypto-lib-v3_int.o", + "crypto/x509/libcrypto-lib-v3_iobo.o", "crypto/x509/libcrypto-lib-v3_ist.o", "crypto/x509/libcrypto-lib-v3_lib.o", "crypto/x509/libcrypto-lib-v3_ncons.o", + "crypto/x509/libcrypto-lib-v3_no_ass.o", + "crypto/x509/libcrypto-lib-v3_no_rev_avail.o", "crypto/x509/libcrypto-lib-v3_pci.o", "crypto/x509/libcrypto-lib-v3_pcia.o", "crypto/x509/libcrypto-lib-v3_pcons.o", @@ -9669,13 +11236,20 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_pmaps.o", "crypto/x509/libcrypto-lib-v3_prn.o", "crypto/x509/libcrypto-lib-v3_purp.o", + "crypto/x509/libcrypto-lib-v3_rolespec.o", "crypto/x509/libcrypto-lib-v3_san.o", + "crypto/x509/libcrypto-lib-v3_sda.o", + "crypto/x509/libcrypto-lib-v3_single_use.o", "crypto/x509/libcrypto-lib-v3_skid.o", + "crypto/x509/libcrypto-lib-v3_soa_id.o", "crypto/x509/libcrypto-lib-v3_sxnet.o", + "crypto/x509/libcrypto-lib-v3_timespec.o", "crypto/x509/libcrypto-lib-v3_tlsf.o", + "crypto/x509/libcrypto-lib-v3_usernotice.o", "crypto/x509/libcrypto-lib-v3_utf8.o", "crypto/x509/libcrypto-lib-v3_utl.o", "crypto/x509/libcrypto-lib-v3err.o", + "crypto/x509/libcrypto-lib-x509_acert.o", "crypto/x509/libcrypto-lib-x509_att.o", "crypto/x509/libcrypto-lib-x509_cmp.o", "crypto/x509/libcrypto-lib-x509_d2.o", @@ -9693,6 +11267,7 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x509_v3.o", "crypto/x509/libcrypto-lib-x509_vfy.o", "crypto/x509/libcrypto-lib-x509_vpm.o", + "crypto/x509/libcrypto-lib-x509aset.o", "crypto/x509/libcrypto-lib-x509cset.o", "crypto/x509/libcrypto-lib-x509name.o", "crypto/x509/libcrypto-lib-x509rset.o", @@ -9702,6 +11277,7 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x_attrib.o", "crypto/x509/libcrypto-lib-x_crl.o", "crypto/x509/libcrypto-lib-x_exten.o", + "crypto/x509/libcrypto-lib-x_ietfatt.o", "crypto/x509/libcrypto-lib-x_name.o", "crypto/x509/libcrypto-lib-x_pubkey.o", "crypto/x509/libcrypto-lib-x_req.o", @@ -9729,6 +11305,7 @@ our %unified_info = ( "fuzz" => { "products" => { "bin" => [ + "fuzz/acert-test", "fuzz/asn1-test", "fuzz/asn1parse-test", "fuzz/bignum-test", @@ -9739,13 +11316,31 @@ our %unified_info = ( "fuzz/conf-test", "fuzz/crl-test", "fuzz/ct-test", + "fuzz/decoder-test", + "fuzz/dtlsclient-test", + "fuzz/dtlsserver-test", + "fuzz/hashtable-test", + "fuzz/ml-dsa-test", + "fuzz/ml-kem-test", + "fuzz/pem-test", + "fuzz/provider-test", + "fuzz/punycode-test", + "fuzz/quic-client-test", + "fuzz/quic-lcidm-test", + "fuzz/quic-rcidm-test", + "fuzz/quic-server-test", + "fuzz/quic-srtm-test", "fuzz/server-test", + "fuzz/slh-dsa-test", + "fuzz/smime-test", + "fuzz/v3name-test", "fuzz/x509-test" ] } }, "providers" => { "deps" => [ + "providers/endecode_test-bin-legacyprov.o", "providers/evp_extra_test-bin-legacyprov.o", "providers/libcrypto-lib-baseprov.o", "providers/libcrypto-lib-defltprov.o", @@ -9755,6 +11350,7 @@ our %unified_info = ( ], "products" => { "bin" => [ + "test/endecode_test", "test/evp_extra_test" ], "dso" => [ @@ -9806,8 +11402,12 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ec_sig.o", "providers/common/der/libcommon-lib-der_ecx_gen.o", "providers/common/der/libcommon-lib-der_ecx_key.o", + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o", + "providers/common/der/libcommon-lib-der_ml_dsa_key.o", "providers/common/der/libcommon-lib-der_rsa_gen.o", "providers/common/der/libcommon-lib-der_rsa_key.o", + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o", + "providers/common/der/libcommon-lib-der_slh_dsa_key.o", "providers/common/der/libcommon-lib-der_wrap_gen.o", "providers/common/der/libdefault-lib-der_rsa_sig.o", "providers/common/der/libdefault-lib-der_sm2_gen.o", @@ -9826,6 +11426,7 @@ our %unified_info = ( "providers/fips" => { "deps" => [ "providers/fips/fips-dso-fips_entry.o", + "providers/fips/libfips-lib-fipsindicator.o", "providers/fips/libfips-lib-fipsprov.o", "providers/fips/libfips-lib-self_test.o", "providers/fips/libfips-lib-self_test_kats.o" @@ -9869,6 +11470,9 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_aes_ccm_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_polyval.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_ocb.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_ocb_hw.o", @@ -9893,7 +11497,13 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_cts.o", "providers/implementations/ciphers/libdefault-lib-cipher_null.o", "providers/implementations/ciphers/libdefault-lib-cipher_sm4.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_sm4_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes_common.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes_default.o", @@ -9990,7 +11600,10 @@ our %unified_info = ( "providers/implementations/encode_decode/libdefault-lib-encode_key2blob.o", "providers/implementations/encode_decode/libdefault-lib-encode_key2ms.o", "providers/implementations/encode_decode/libdefault-lib-encode_key2text.o", - "providers/implementations/encode_decode/libdefault-lib-endecoder_common.o" + "providers/implementations/encode_decode/libdefault-lib-endecoder_common.o", + "providers/implementations/encode_decode/libdefault-lib-ml_common_codecs.o", + "providers/implementations/encode_decode/libdefault-lib-ml_dsa_codecs.o", + "providers/implementations/encode_decode/libdefault-lib-ml_kem_codecs.o" ], "products" => { "lib" => [ @@ -10018,7 +11631,9 @@ our %unified_info = ( }, "providers/implementations/kdfs" => { "deps" => [ + "providers/implementations/kdfs/libdefault-lib-argon2.o", "providers/implementations/kdfs/libdefault-lib-hkdf.o", + "providers/implementations/kdfs/libdefault-lib-hmacdrbg_kdf.o", "providers/implementations/kdfs/libdefault-lib-kbkdf.o", "providers/implementations/kdfs/libdefault-lib-krb5kdf.o", "providers/implementations/kdfs/libdefault-lib-pbkdf2.o", @@ -10037,7 +11652,8 @@ our %unified_info = ( "providers/implementations/kdfs/libfips-lib-sskdf.o", "providers/implementations/kdfs/libfips-lib-tls1_prf.o", "providers/implementations/kdfs/libfips-lib-x942kdf.o", - "providers/implementations/kdfs/liblegacy-lib-pbkdf1.o" + "providers/implementations/kdfs/liblegacy-lib-pbkdf1.o", + "providers/implementations/kdfs/liblegacy-lib-pvkkdf.o" ], "products" => { "lib" => [ @@ -10049,13 +11665,22 @@ our %unified_info = ( }, "providers/implementations/kem" => { "deps" => [ + "providers/implementations/kem/libdefault-lib-ec_kem.o", + "providers/implementations/kem/libdefault-lib-ecx_kem.o", + "providers/implementations/kem/libdefault-lib-kem_util.o", + "providers/implementations/kem/libdefault-lib-ml_kem_kem.o", + "providers/implementations/kem/libdefault-lib-mlx_kem.o", "providers/implementations/kem/libdefault-lib-rsa_kem.o", - "providers/implementations/kem/libfips-lib-rsa_kem.o" + "providers/implementations/kem/libfips-lib-ml_kem_kem.o", + "providers/implementations/kem/libfips-lib-mlx_kem.o", + "providers/implementations/kem/libfips-lib-rsa_kem.o", + "providers/implementations/kem/libtemplate-lib-template_kem.o" ], "products" => { "lib" => [ "providers/libdefault.a", - "providers/libfips.a" + "providers/libfips.a", + "providers/libtemplate.a" ] } }, @@ -10067,19 +11692,29 @@ our %unified_info = ( "providers/implementations/keymgmt/libdefault-lib-ecx_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-kdf_legacy_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-mac_legacy_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-ml_dsa_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-ml_kem_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-mlx_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-rsa_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-slh_dsa_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-dh_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-dsa_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-ec_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-ecx_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-kdf_legacy_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-mac_legacy_kmgmt.o", - "providers/implementations/keymgmt/libfips-lib-rsa_kmgmt.o" + "providers/implementations/keymgmt/libfips-lib-ml_dsa_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-ml_kem_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-mlx_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-rsa_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-slh_dsa_kmgmt.o", + "providers/implementations/keymgmt/libtemplate-lib-template_kmgmt.o" ], "products" => { "lib" => [ "providers/libdefault.a", - "providers/libfips.a" + "providers/libfips.a", + "providers/libtemplate.a" ] } }, @@ -10107,18 +11742,18 @@ our %unified_info = ( }, "providers/implementations/rands" => { "deps" => [ - "providers/implementations/rands/libdefault-lib-crngt.o", "providers/implementations/rands/libdefault-lib-drbg.o", "providers/implementations/rands/libdefault-lib-drbg_ctr.o", "providers/implementations/rands/libdefault-lib-drbg_hash.o", "providers/implementations/rands/libdefault-lib-drbg_hmac.o", "providers/implementations/rands/libdefault-lib-seed_src.o", + "providers/implementations/rands/libdefault-lib-seed_src_jitter.o", "providers/implementations/rands/libdefault-lib-test_rng.o", - "providers/implementations/rands/libfips-lib-crngt.o", "providers/implementations/rands/libfips-lib-drbg.o", "providers/implementations/rands/libfips-lib-drbg_ctr.o", "providers/implementations/rands/libfips-lib-drbg_hash.o", "providers/implementations/rands/libfips-lib-drbg_hmac.o", + "providers/implementations/rands/libfips-lib-fips_crng_test.o", "providers/implementations/rands/libfips-lib-test_rng.o" ], "products" => { @@ -10147,13 +11782,31 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-ecdsa_sig.o", "providers/implementations/signature/libdefault-lib-eddsa_sig.o", "providers/implementations/signature/libdefault-lib-mac_legacy_sig.o", + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o", "providers/implementations/signature/libdefault-lib-rsa_sig.o", + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o", "providers/implementations/signature/libdefault-lib-sm2_sig.o", "providers/implementations/signature/libfips-lib-dsa_sig.o", "providers/implementations/signature/libfips-lib-ecdsa_sig.o", "providers/implementations/signature/libfips-lib-eddsa_sig.o", "providers/implementations/signature/libfips-lib-mac_legacy_sig.o", - "providers/implementations/signature/libfips-lib-rsa_sig.o" + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o", + "providers/implementations/signature/libfips-lib-rsa_sig.o", + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o" + ], + "products" => { + "lib" => [ + "providers/libdefault.a", + "providers/libfips.a" + ] + } + }, + "providers/implementations/skeymgmt" => { + "deps" => [ + "providers/implementations/skeymgmt/libdefault-lib-aes_skmgmt.o", + "providers/implementations/skeymgmt/libdefault-lib-generic.o", + "providers/implementations/skeymgmt/libfips-lib-aes_skmgmt.o", + "providers/implementations/skeymgmt/libfips-lib-generic.o" ], "products" => { "lib" => [ @@ -10181,14 +11834,15 @@ our %unified_info = ( "ssl/libssl-lib-d1_srtp.o", "ssl/libssl-lib-methods.o", "ssl/libssl-lib-pqueue.o", + "ssl/libssl-lib-priority_queue.o", "ssl/libssl-lib-s3_enc.o", "ssl/libssl-lib-s3_lib.o", "ssl/libssl-lib-s3_msg.o", "ssl/libssl-lib-ssl_asn1.o", "ssl/libssl-lib-ssl_cert.o", + "ssl/libssl-lib-ssl_cert_comp.o", "ssl/libssl-lib-ssl_ciph.o", "ssl/libssl-lib-ssl_conf.o", - "ssl/libssl-lib-ssl_err.o", "ssl/libssl-lib-ssl_err_legacy.o", "ssl/libssl-lib-ssl_init.o", "ssl/libssl-lib-ssl_lib.o", @@ -10204,32 +11858,107 @@ our %unified_info = ( "ssl/libssl-lib-t1_trce.o", "ssl/libssl-lib-tls13_enc.o", "ssl/libssl-lib-tls_depr.o", - "ssl/libssl-lib-tls_srp.o", - "ssl/libdefault-lib-s3_cbc.o", - "ssl/libfips-lib-s3_cbc.o" + "ssl/libssl-lib-tls_srp.o" ], "products" => { "lib" => [ - "libssl", - "providers/libdefault.a", - "providers/libfips.a" + "libssl" + ] + } + }, + "ssl/quic" => { + "deps" => [ + "ssl/quic/libssl-lib-cc_newreno.o", + "ssl/quic/libssl-lib-json_enc.o", + "ssl/quic/libssl-lib-qlog.o", + "ssl/quic/libssl-lib-qlog_event_helpers.o", + "ssl/quic/libssl-lib-quic_ackm.o", + "ssl/quic/libssl-lib-quic_cfq.o", + "ssl/quic/libssl-lib-quic_channel.o", + "ssl/quic/libssl-lib-quic_demux.o", + "ssl/quic/libssl-lib-quic_engine.o", + "ssl/quic/libssl-lib-quic_fc.o", + "ssl/quic/libssl-lib-quic_fifd.o", + "ssl/quic/libssl-lib-quic_impl.o", + "ssl/quic/libssl-lib-quic_lcidm.o", + "ssl/quic/libssl-lib-quic_method.o", + "ssl/quic/libssl-lib-quic_obj.o", + "ssl/quic/libssl-lib-quic_port.o", + "ssl/quic/libssl-lib-quic_rcidm.o", + "ssl/quic/libssl-lib-quic_reactor.o", + "ssl/quic/libssl-lib-quic_reactor_wait_ctx.o", + "ssl/quic/libssl-lib-quic_record_rx.o", + "ssl/quic/libssl-lib-quic_record_shared.o", + "ssl/quic/libssl-lib-quic_record_tx.o", + "ssl/quic/libssl-lib-quic_record_util.o", + "ssl/quic/libssl-lib-quic_rstream.o", + "ssl/quic/libssl-lib-quic_rx_depack.o", + "ssl/quic/libssl-lib-quic_sf_list.o", + "ssl/quic/libssl-lib-quic_srt_gen.o", + "ssl/quic/libssl-lib-quic_srtm.o", + "ssl/quic/libssl-lib-quic_sstream.o", + "ssl/quic/libssl-lib-quic_statm.o", + "ssl/quic/libssl-lib-quic_stream_map.o", + "ssl/quic/libssl-lib-quic_thread_assist.o", + "ssl/quic/libssl-lib-quic_tls.o", + "ssl/quic/libssl-lib-quic_tls_api.o", + "ssl/quic/libssl-lib-quic_trace.o", + "ssl/quic/libssl-lib-quic_tserver.o", + "ssl/quic/libssl-lib-quic_txp.o", + "ssl/quic/libssl-lib-quic_txpim.o", + "ssl/quic/libssl-lib-quic_types.o", + "ssl/quic/libssl-lib-quic_wire.o", + "ssl/quic/libssl-lib-quic_wire_pkt.o", + "ssl/quic/libssl-lib-uint_set.o" + ], + "products" => { + "lib" => [ + "libssl" ] } }, "ssl/record" => { "deps" => [ - "ssl/record/libssl-lib-dtls1_bitmap.o", "ssl/record/libssl-lib-rec_layer_d1.o", - "ssl/record/libssl-lib-rec_layer_s3.o", - "ssl/record/libssl-lib-ssl3_buffer.o", - "ssl/record/libssl-lib-ssl3_record.o", - "ssl/record/libssl-lib-ssl3_record_tls13.o", - "ssl/record/libcommon-lib-tls_pad.o" + "ssl/record/libssl-lib-rec_layer_s3.o" + ], + "products" => { + "lib" => [ + "libssl" + ] + } + }, + "ssl/record/methods" => { + "deps" => [ + "ssl/record/methods/libssl-lib-dtls_meth.o", + "ssl/record/methods/libssl-lib-ssl3_meth.o", + "ssl/record/methods/libssl-lib-tls13_meth.o", + "ssl/record/methods/libssl-lib-tls1_meth.o", + "ssl/record/methods/libssl-lib-tls_common.o", + "ssl/record/methods/libssl-lib-tls_multib.o", + "ssl/record/methods/libssl-lib-tlsany_meth.o", + "ssl/record/methods/libcommon-lib-tls_pad.o", + "ssl/record/methods/libdefault-lib-ssl3_cbc.o", + "ssl/record/methods/libfips-lib-ssl3_cbc.o" ], "products" => { "lib" => [ "libssl", - "providers/libcommon.a" + "providers/libcommon.a", + "providers/libdefault.a", + "providers/libfips.a" + ] + } + }, + "ssl/rio" => { + "deps" => [ + "ssl/rio/libssl-lib-poll_builder.o", + "ssl/rio/libssl-lib-poll_immediate.o", + "ssl/rio/libssl-lib-rio_notifier.o" + ], + "products" => { + "lib" => [ + "libssl" ] } }, @@ -10267,9 +11996,40 @@ our %unified_info = ( "test/helpers/dtlstest-bin-ssltestlib.o", "test/helpers/endecode_test-bin-predefined_dhparams.o", "test/helpers/fatalerrtest-bin-ssltestlib.o", + "test/helpers/json_test-bin-noisydgrambio.o", + "test/helpers/json_test-bin-pktsplitbio.o", + "test/helpers/json_test-bin-quictestlib.o", + "test/helpers/json_test-bin-ssltestlib.o", + "test/helpers/pkcs12_api_test-bin-pkcs12.o", "test/helpers/pkcs12_format_test-bin-pkcs12.o", + "test/helpers/quic_multistream_test-bin-noisydgrambio.o", + "test/helpers/quic_multistream_test-bin-pktsplitbio.o", + "test/helpers/quic_multistream_test-bin-quictestlib.o", + "test/helpers/quic_multistream_test-bin-ssltestlib.o", + "test/helpers/quic_newcid_test-bin-noisydgrambio.o", + "test/helpers/quic_newcid_test-bin-pktsplitbio.o", + "test/helpers/quic_newcid_test-bin-quictestlib.o", + "test/helpers/quic_newcid_test-bin-ssltestlib.o", + "test/helpers/quic_radix_test-bin-noisydgrambio.o", + "test/helpers/quic_radix_test-bin-pktsplitbio.o", + "test/helpers/quic_radix_test-bin-quictestlib.o", + "test/helpers/quic_radix_test-bin-ssltestlib.o", + "test/helpers/quic_srt_gen_test-bin-noisydgrambio.o", + "test/helpers/quic_srt_gen_test-bin-pktsplitbio.o", + "test/helpers/quic_srt_gen_test-bin-quictestlib.o", + "test/helpers/quic_srt_gen_test-bin-ssltestlib.o", + "test/helpers/quicapitest-bin-noisydgrambio.o", + "test/helpers/quicapitest-bin-pktsplitbio.o", + "test/helpers/quicapitest-bin-quictestlib.o", + "test/helpers/quicapitest-bin-ssltestlib.o", + "test/helpers/quicfaultstest-bin-noisydgrambio.o", + "test/helpers/quicfaultstest-bin-pktsplitbio.o", + "test/helpers/quicfaultstest-bin-quictestlib.o", + "test/helpers/quicfaultstest-bin-ssltestlib.o", "test/helpers/recordlentest-bin-ssltestlib.o", + "test/helpers/rpktest-bin-ssltestlib.o", "test/helpers/servername_test-bin-ssltestlib.o", + "test/helpers/ssl_handshake_rtt_test-bin-ssltestlib.o", "test/helpers/ssl_old_test-bin-predefined_dhparams.o", "test/helpers/ssl_test-bin-handshake.o", "test/helpers/ssl_test-bin-handshake_srp.o", @@ -10278,7 +12038,8 @@ our %unified_info = ( "test/helpers/sslapitest-bin-ssltestlib.o", "test/helpers/sslbuffertest-bin-ssltestlib.o", "test/helpers/sslcorrupttest-bin-ssltestlib.o", - "test/helpers/tls13ccstest-bin-ssltestlib.o" + "test/helpers/tls13ccstest-bin-ssltestlib.o", + "test/helpers/tls13groupselection_test-bin-ssltestlib.o" ], "products" => { "bin" => [ @@ -10296,16 +12057,37 @@ our %unified_info = ( "test/dtlstest", "test/endecode_test", "test/fatalerrtest", + "test/json_test", + "test/pkcs12_api_test", "test/pkcs12_format_test", + "test/quic_multistream_test", + "test/quic_newcid_test", + "test/quic_radix_test", + "test/quic_srt_gen_test", + "test/quicapitest", + "test/quicfaultstest", "test/recordlentest", + "test/rpktest", "test/servername_test", + "test/ssl_handshake_rtt_test", "test/ssl_old_test", "test/ssl_test", "test/ssl_test_ctx_test", "test/sslapitest", "test/sslbuffertest", "test/sslcorrupttest", - "test/tls13ccstest" + "test/tls13ccstest", + "test/tls13groupselection_test" + ] + } + }, + "test/radix" => { + "deps" => [ + "test/radix/quic_radix_test-bin-quic_radix.o" + ], + "products" => { + "bin" => [ + "test/quic_radix_test" ] } }, @@ -10317,6 +12099,7 @@ our %unified_info = ( "test/testutil/libtestutil-lib-driver.o", "test/testutil/libtestutil-lib-fake_random.o", "test/testutil/libtestutil-lib-format_output.o", + "test/testutil/libtestutil-lib-helper.o", "test/testutil/libtestutil-lib-load.o", "test/testutil/libtestutil-lib-main.o", "test/testutil/libtestutil-lib-options.o", @@ -10352,6 +12135,12 @@ our %unified_info = ( } }, "generate" => { + "OpenSSLConfig.cmake" => [ + "exporters/cmake/OpenSSLConfig.cmake.in" + ], + "OpenSSLConfigVersion.cmake" => [ + "exporters/cmake/OpenSSLConfigVersion.cmake.in" + ], "apps/progs.c" => [ "apps/progs.pl", "\"-C\"", @@ -10362,6 +12151,19 @@ our %unified_info = ( "\"-H\"", "\$(APPS_OPENSSL)" ], + "builddata.pm" => [ + "util/mkinstallvars.pl", + "PREFIX=.", + "BINDIR=apps", + "APPLINKDIR=ms", + "LIBDIR=", + "INCLUDEDIR=include", + "\"INCLUDEDIR=\$(SRCDIR)/include\"", + "ENGINESDIR=engines", + "MODULESDIR=providers", + "\"VERSION=\$(VERSION)\"", + "\"LDLIBS=\$(LIB_EX_LIBS)\"" + ], "crypto/aes/aes-586.S" => [ "crypto/aes/asm/aes-586.pl" ], @@ -10383,6 +12185,24 @@ our %unified_info = ( "crypto/aes/aes-ppc.s" => [ "crypto/aes/asm/aes-ppc.pl" ], + "crypto/aes/aes-riscv32-zkn.s" => [ + "crypto/aes/asm/aes-riscv32-zkn.pl" + ], + "crypto/aes/aes-riscv64-zkn.s" => [ + "crypto/aes/asm/aes-riscv64-zkn.pl" + ], + "crypto/aes/aes-riscv64-zvbb-zvkg-zvkned.s" => [ + "crypto/aes/asm/aes-riscv64-zvbb-zvkg-zvkned.pl" + ], + "crypto/aes/aes-riscv64-zvkb-zvkned.s" => [ + "crypto/aes/asm/aes-riscv64-zvkb-zvkned.pl" + ], + "crypto/aes/aes-riscv64-zvkned.s" => [ + "crypto/aes/asm/aes-riscv64-zvkned.pl" + ], + "crypto/aes/aes-riscv64.s" => [ + "crypto/aes/asm/aes-riscv64.pl" + ], "crypto/aes/aes-s390x.S" => [ "crypto/aes/asm/aes-s390x.pl" ], @@ -10410,6 +12230,9 @@ our %unified_info = ( "crypto/aes/aesni-x86_64.s" => [ "crypto/aes/asm/aesni-x86_64.pl" ], + "crypto/aes/aesni-xts-avx512.s" => [ + "crypto/aes/asm/aesni-xts-avx512.pl" + ], "crypto/aes/aesp8-ppc.s" => [ "crypto/aes/asm/aesp8-ppc.pl" ], @@ -10422,12 +12245,18 @@ our %unified_info = ( "crypto/aes/bsaes-armv7.S" => [ "crypto/aes/asm/bsaes-armv7.pl" ], + "crypto/aes/bsaes-armv8.S" => [ + "crypto/aes/asm/bsaes-armv8.pl" + ], "crypto/aes/bsaes-x86_64.s" => [ "crypto/aes/asm/bsaes-x86_64.pl" ], "crypto/aes/vpaes-armv8.S" => [ "crypto/aes/asm/vpaes-armv8.pl" ], + "crypto/aes/vpaes-loongarch64.S" => [ + "crypto/aes/asm/vpaes-loongarch64.pl" + ], "crypto/aes/vpaes-ppc.s" => [ "crypto/aes/asm/vpaes-ppc.pl" ], @@ -10488,15 +12317,33 @@ our %unified_info = ( "crypto/bn/ppc-mont.s" => [ "crypto/bn/asm/ppc-mont.pl" ], + "crypto/bn/ppc64-mont-fixed.s" => [ + "crypto/bn/asm/ppc64-mont-fixed.pl" + ], "crypto/bn/ppc64-mont.s" => [ "crypto/bn/asm/ppc64-mont.pl" ], + "crypto/bn/rsaz-2k-avx512.s" => [ + "crypto/bn/asm/rsaz-2k-avx512.pl" + ], + "crypto/bn/rsaz-2k-avxifma.s" => [ + "crypto/bn/asm/rsaz-2k-avxifma.pl" + ], + "crypto/bn/rsaz-3k-avx512.s" => [ + "crypto/bn/asm/rsaz-3k-avx512.pl" + ], + "crypto/bn/rsaz-3k-avxifma.s" => [ + "crypto/bn/asm/rsaz-3k-avxifma.pl" + ], + "crypto/bn/rsaz-4k-avx512.s" => [ + "crypto/bn/asm/rsaz-4k-avx512.pl" + ], + "crypto/bn/rsaz-4k-avxifma.s" => [ + "crypto/bn/asm/rsaz-4k-avxifma.pl" + ], "crypto/bn/rsaz-avx2.s" => [ "crypto/bn/asm/rsaz-avx2.pl" ], - "crypto/bn/rsaz-avx512.s" => [ - "crypto/bn/asm/rsaz-avx512.pl" - ], "crypto/bn/rsaz-x86_64.s" => [ "crypto/bn/asm/rsaz-x86_64.pl" ], @@ -10558,6 +12405,9 @@ our %unified_info = ( "crypto/chacha/chacha-armv4.S" => [ "crypto/chacha/asm/chacha-armv4.pl" ], + "crypto/chacha/chacha-armv8-sve.S" => [ + "crypto/chacha/asm/chacha-armv8-sve.pl" + ], "crypto/chacha/chacha-armv8.S" => [ "crypto/chacha/asm/chacha-armv8.pl" ], @@ -10570,9 +12420,19 @@ our %unified_info = ( "crypto/chacha/chacha-ia64.s" => [ "crypto/chacha/chacha-ia64.S" ], + "crypto/chacha/chacha-loongarch64.S" => [ + "crypto/chacha/asm/chacha-loongarch64.pl" + ], "crypto/chacha/chacha-ppc.s" => [ "crypto/chacha/asm/chacha-ppc.pl" ], + "crypto/chacha/chacha-riscv64-v-zbb-zvkb.s" => [ + "crypto/chacha/asm/chacha-riscv64-v-zbb.pl", + "zvkb" + ], + "crypto/chacha/chacha-riscv64-v-zbb.s" => [ + "crypto/chacha/asm/chacha-riscv64-v-zbb.pl" + ], "crypto/chacha/chacha-s390x.S" => [ "crypto/chacha/asm/chacha-s390x.pl" ], @@ -10582,6 +12442,9 @@ our %unified_info = ( "crypto/chacha/chacha-x86_64.s" => [ "crypto/chacha/asm/chacha-x86_64.pl" ], + "crypto/chacha/chachap10-ppc.s" => [ + "crypto/chacha/asm/chachap10-ppc.pl" + ], "crypto/des/crypt586.S" => [ "crypto/des/asm/crypt586.pl" ], @@ -10594,6 +12457,9 @@ our %unified_info = ( "crypto/des/dest4-sparcv9.S" => [ "crypto/des/asm/dest4-sparcv9.pl" ], + "crypto/ec/ecp_nistp384-ppc64.s" => [ + "crypto/ec/asm/ecp_nistp384-ppc64.pl" + ], "crypto/ec/ecp_nistp521-ppc64.s" => [ "crypto/ec/asm/ecp_nistp521-ppc64.pl" ], @@ -10618,6 +12484,9 @@ our %unified_info = ( "crypto/ec/ecp_nistz256-x86_64.s" => [ "crypto/ec/asm/ecp_nistz256-x86_64.pl" ], + "crypto/ec/ecp_sm2p256-armv8.S" => [ + "crypto/ec/asm/ecp_sm2p256-armv8.pl" + ], "crypto/ec/x25519-ppc64.s" => [ "crypto/ec/asm/x25519-ppc64.pl" ], @@ -10627,18 +12496,39 @@ our %unified_info = ( "crypto/ia64cpuid.s" => [ "crypto/ia64cpuid.S" ], + "crypto/loongarch64cpuid.s" => [ + "crypto/loongarch64cpuid.pl" + ], "crypto/md5/md5-586.S" => [ "crypto/md5/asm/md5-586.pl" ], + "crypto/md5/md5-aarch64.S" => [ + "crypto/md5/asm/md5-aarch64.pl" + ], + "crypto/md5/md5-loongarch64.S" => [ + "crypto/md5/asm/md5-loongarch64.pl" + ], "crypto/md5/md5-sparcv9.S" => [ "crypto/md5/asm/md5-sparcv9.pl" ], "crypto/md5/md5-x86_64.s" => [ "crypto/md5/asm/md5-x86_64.pl" ], + "crypto/modes/aes-gcm-armv8-unroll8_64.S" => [ + "crypto/modes/asm/aes-gcm-armv8-unroll8_64.pl" + ], "crypto/modes/aes-gcm-armv8_64.S" => [ "crypto/modes/asm/aes-gcm-armv8_64.pl" ], + "crypto/modes/aes-gcm-avx512.s" => [ + "crypto/modes/asm/aes-gcm-avx512.pl" + ], + "crypto/modes/aes-gcm-ppc.s" => [ + "crypto/modes/asm/aes-gcm-ppc.pl" + ], + "crypto/modes/aes-gcm-riscv64-zvkb-zvkg-zvkned.s" => [ + "crypto/modes/asm/aes-gcm-riscv64-zvkb-zvkg-zvkned.pl" + ], "crypto/modes/aesni-gcm-x86_64.s" => [ "crypto/modes/asm/aesni-gcm-x86_64.pl" ], @@ -10657,6 +12547,15 @@ our %unified_info = ( "crypto/modes/ghash-parisc.s" => [ "crypto/modes/asm/ghash-parisc.pl" ], + "crypto/modes/ghash-riscv64-zvkb-zvbc.s" => [ + "crypto/modes/asm/ghash-riscv64-zvkb-zvbc.pl" + ], + "crypto/modes/ghash-riscv64-zvkg.s" => [ + "crypto/modes/asm/ghash-riscv64-zvkg.pl" + ], + "crypto/modes/ghash-riscv64.s" => [ + "crypto/modes/asm/ghash-riscv64.pl" + ], "crypto/modes/ghash-s390x.S" => [ "crypto/modes/asm/ghash-s390x.pl" ], @@ -10675,6 +12574,9 @@ our %unified_info = ( "crypto/modes/ghashv8-armx.S" => [ "crypto/modes/asm/ghashv8-armx.pl" ], + "crypto/params_idx.c" => [ + "crypto/params_idx.c.in" + ], "crypto/pariscid.s" => [ "crypto/pariscid.pl" ], @@ -10735,6 +12637,12 @@ our %unified_info = ( "crypto/ripemd/rmd-586.S" => [ "crypto/ripemd/asm/rmd-586.pl" ], + "crypto/riscv32cpuid.s" => [ + "crypto/riscv32cpuid.pl" + ], + "crypto/riscv64cpuid.s" => [ + "crypto/riscv64cpuid.pl" + ], "crypto/s390xcpuid.S" => [ "crypto/s390xcpuid.pl" ], @@ -10843,6 +12751,9 @@ our %unified_info = ( "crypto/sha/sha256-ppc.s" => [ "crypto/sha/asm/sha512-ppc.pl" ], + "crypto/sha/sha256-riscv64-zvkb-zvknha_or_zvknhb.S" => [ + "crypto/sha/asm/sha256-riscv64-zvkb-zvknha_or_zvknhb.pl" + ], "crypto/sha/sha256-s390x.S" => [ "crypto/sha/asm/sha512-s390x.pl" ], @@ -10879,6 +12790,9 @@ our %unified_info = ( "crypto/sha/sha512-ppc.s" => [ "crypto/sha/asm/sha512-ppc.pl" ], + "crypto/sha/sha512-riscv64-zvkb-zvknhb.S" => [ + "crypto/sha/asm/sha512-riscv64-zvkb-zvknhb.pl" + ], "crypto/sha/sha512-s390x.S" => [ "crypto/sha/asm/sha512-s390x.pl" ], @@ -10891,6 +12805,24 @@ our %unified_info = ( "crypto/sha/sha512p8-ppc.s" => [ "crypto/sha/asm/sha512p8-ppc.pl" ], + "crypto/sm3/sm3-armv8.S" => [ + "crypto/sm3/asm/sm3-armv8.pl" + ], + "crypto/sm3/sm3-riscv64-zvksh.S" => [ + "crypto/sm3/asm/sm3-riscv64-zvksh.pl" + ], + "crypto/sm4/sm4-armv8.S" => [ + "crypto/sm4/asm/sm4-armv8.pl" + ], + "crypto/sm4/sm4-riscv64-zvksed.s" => [ + "crypto/sm4/asm/sm4-riscv64-zvksed.pl" + ], + "crypto/sm4/vpsm4-armv8.S" => [ + "crypto/sm4/asm/vpsm4-armv8.pl" + ], + "crypto/sm4/vpsm4_ex-armv8.S" => [ + "crypto/sm4/asm/vpsm4_ex-armv8.pl" + ], "crypto/uplink-ia64.s" => [ "ms/uplink-ia64.pl" ], @@ -11056,6 +12988,9 @@ our %unified_info = ( "doc/html/man1/openssl-sess_id.html" => [ "doc/man1/openssl-sess_id.pod" ], + "doc/html/man1/openssl-skeyutl.html" => [ + "doc/man1/openssl-skeyutl.pod" + ], "doc/html/man1/openssl-smime.html" => [ "doc/man1/openssl-smime.pod" ], @@ -11197,6 +13132,9 @@ our %unified_info = ( "doc/html/man3/BIO_get_ex_new_index.html" => [ "doc/man3/BIO_get_ex_new_index.pod" ], + "doc/html/man3/BIO_get_rpoll_descriptor.html" => [ + "doc/man3/BIO_get_rpoll_descriptor.pod" + ], "doc/html/man3/BIO_meth_new.html" => [ "doc/man3/BIO_meth_new.pod" ], @@ -11233,6 +13171,9 @@ our %unified_info = ( "doc/html/man3/BIO_s_datagram.html" => [ "doc/man3/BIO_s_datagram.pod" ], + "doc/html/man3/BIO_s_dgram_pair.html" => [ + "doc/man3/BIO_s_dgram_pair.pod" + ], "doc/html/man3/BIO_s_fd.html" => [ "doc/man3/BIO_s_fd.pod" ], @@ -11248,6 +13189,9 @@ our %unified_info = ( "doc/html/man3/BIO_s_socket.html" => [ "doc/man3/BIO_s_socket.pod" ], + "doc/html/man3/BIO_sendmmsg.html" => [ + "doc/man3/BIO_sendmmsg.pod" + ], "doc/html/man3/BIO_set_callback.html" => [ "doc/man3/BIO_set_callback.pod" ], @@ -11320,6 +13264,9 @@ our %unified_info = ( "doc/html/man3/BUF_MEM_new.html" => [ "doc/man3/BUF_MEM_new.pod" ], + "doc/html/man3/CMAC_CTX.html" => [ + "doc/man3/CMAC_CTX.pod" + ], "doc/html/man3/CMS_EncryptedData_decrypt.html" => [ "doc/man3/CMS_EncryptedData_decrypt.pod" ], @@ -11386,6 +13333,9 @@ our %unified_info = ( "doc/html/man3/CMS_verify_receipt.html" => [ "doc/man3/CMS_verify_receipt.pod" ], + "doc/html/man3/COMP_CTX_new.html" => [ + "doc/man3/COMP_CTX_new.pod" + ], "doc/html/man3/CONF_modules_free.html" => [ "doc/man3/CONF_modules_free.pod" ], @@ -11485,6 +13435,12 @@ our %unified_info = ( "doc/html/man3/DTLS_set_timer_cb.html" => [ "doc/man3/DTLS_set_timer_cb.pod" ], + "doc/html/man3/DTLSv1_get_timeout.html" => [ + "doc/man3/DTLSv1_get_timeout.pod" + ], + "doc/html/man3/DTLSv1_handle_timeout.html" => [ + "doc/man3/DTLSv1_handle_timeout.pod" + ], "doc/html/man3/DTLSv1_listen.html" => [ "doc/man3/DTLSv1_listen.pod" ], @@ -11623,6 +13579,9 @@ our %unified_info = ( "doc/html/man3/EVP_PKEY_CTX_get0_pkey.html" => [ "doc/man3/EVP_PKEY_CTX_get0_pkey.pod" ], + "doc/html/man3/EVP_PKEY_CTX_get_algor.html" => [ + "doc/man3/EVP_PKEY_CTX_get_algor.pod" + ], "doc/html/man3/EVP_PKEY_CTX_new.html" => [ "doc/man3/EVP_PKEY_CTX_new.pod" ], @@ -11740,6 +13699,12 @@ our %unified_info = ( "doc/html/man3/EVP_SIGNATURE.html" => [ "doc/man3/EVP_SIGNATURE.pod" ], + "doc/html/man3/EVP_SKEY.html" => [ + "doc/man3/EVP_SKEY.pod" + ], + "doc/html/man3/EVP_SKEYMGMT.html" => [ + "doc/man3/EVP_SKEYMGMT.pod" + ], "doc/html/man3/EVP_SealInit.html" => [ "doc/man3/EVP_SealInit.pod" ], @@ -11827,6 +13792,9 @@ our %unified_info = ( "doc/html/man3/EVP_whirlpool.html" => [ "doc/man3/EVP_whirlpool.pod" ], + "doc/html/man3/GENERAL_NAME.html" => [ + "doc/man3/GENERAL_NAME.pod" + ], "doc/html/man3/HMAC.html" => [ "doc/man3/HMAC.pod" ], @@ -11899,9 +13867,15 @@ our %unified_info = ( "doc/html/man3/OPENSSL_load_builtin_modules.html" => [ "doc/man3/OPENSSL_load_builtin_modules.pod" ], + "doc/html/man3/OPENSSL_load_u16_le.html" => [ + "doc/man3/OPENSSL_load_u16_le.pod" + ], "doc/html/man3/OPENSSL_malloc.html" => [ "doc/man3/OPENSSL_malloc.pod" ], + "doc/html/man3/OPENSSL_riscvcap.html" => [ + "doc/man3/OPENSSL_riscvcap.pod" + ], "doc/html/man3/OPENSSL_s390xcap.html" => [ "doc/man3/OPENSSL_s390xcap.pod" ], @@ -11917,12 +13891,18 @@ our %unified_info = ( "doc/html/man3/OSSL_CALLBACK.html" => [ "doc/man3/OSSL_CALLBACK.pod" ], + "doc/html/man3/OSSL_CMP_ATAV_set0.html" => [ + "doc/man3/OSSL_CMP_ATAV_set0.pod" + ], "doc/html/man3/OSSL_CMP_CTX_new.html" => [ "doc/man3/OSSL_CMP_CTX_new.pod" ], "doc/html/man3/OSSL_CMP_HDR_get0_transactionID.html" => [ "doc/man3/OSSL_CMP_HDR_get0_transactionID.pod" ], + "doc/html/man3/OSSL_CMP_ITAV_new_caCerts.html" => [ + "doc/man3/OSSL_CMP_ITAV_new_caCerts.pod" + ], "doc/html/man3/OSSL_CMP_ITAV_set0.html" => [ "doc/man3/OSSL_CMP_ITAV_set0.pod" ], @@ -11992,9 +13972,18 @@ our %unified_info = ( "doc/html/man3/OSSL_ENCODER_to_bio.html" => [ "doc/man3/OSSL_ENCODER_to_bio.pod" ], + "doc/html/man3/OSSL_ERR_STATE_save.html" => [ + "doc/man3/OSSL_ERR_STATE_save.pod" + ], "doc/html/man3/OSSL_ESS_check_signing_certs.html" => [ "doc/man3/OSSL_ESS_check_signing_certs.pod" ], + "doc/html/man3/OSSL_GENERAL_NAMES_print.html" => [ + "doc/man3/OSSL_GENERAL_NAMES_print.pod" + ], + "doc/html/man3/OSSL_HPKE_CTX_new.html" => [ + "doc/man3/OSSL_HPKE_CTX_new.pod" + ], "doc/html/man3/OSSL_HTTP_REQ_CTX.html" => [ "doc/man3/OSSL_HTTP_REQ_CTX.pod" ], @@ -12004,12 +13993,24 @@ our %unified_info = ( "doc/html/man3/OSSL_HTTP_transfer.html" => [ "doc/man3/OSSL_HTTP_transfer.pod" ], + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX.html" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX.pod" + ], + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX_print.html" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX_print.pod" + ], + "doc/html/man3/OSSL_INDICATOR_set_callback.html" => [ + "doc/man3/OSSL_INDICATOR_set_callback.pod" + ], "doc/html/man3/OSSL_ITEM.html" => [ "doc/man3/OSSL_ITEM.pod" ], "doc/html/man3/OSSL_LIB_CTX.html" => [ "doc/man3/OSSL_LIB_CTX.pod" ], + "doc/html/man3/OSSL_LIB_CTX_set_conf_diagnostics.html" => [ + "doc/man3/OSSL_LIB_CTX_set_conf_diagnostics.pod" + ], "doc/html/man3/OSSL_PARAM.html" => [ "doc/man3/OSSL_PARAM.pod" ], @@ -12025,9 +14026,15 @@ our %unified_info = ( "doc/html/man3/OSSL_PARAM_int.html" => [ "doc/man3/OSSL_PARAM_int.pod" ], + "doc/html/man3/OSSL_PARAM_print_to_bio.html" => [ + "doc/man3/OSSL_PARAM_print_to_bio.pod" + ], "doc/html/man3/OSSL_PROVIDER.html" => [ "doc/man3/OSSL_PROVIDER.pod" ], + "doc/html/man3/OSSL_QUIC_client_method.html" => [ + "doc/man3/OSSL_QUIC_client_method.pod" + ], "doc/html/man3/OSSL_SELF_TEST_new.html" => [ "doc/man3/OSSL_SELF_TEST_new.pod" ], @@ -12052,6 +14059,9 @@ our %unified_info = ( "doc/html/man3/OSSL_STORE_open.html" => [ "doc/man3/OSSL_STORE_open.pod" ], + "doc/html/man3/OSSL_sleep.html" => [ + "doc/man3/OSSL_sleep.pod" + ], "doc/html/man3/OSSL_trace_enabled.html" => [ "doc/man3/OSSL_trace_enabled.pod" ], @@ -12067,6 +14077,9 @@ our %unified_info = ( "doc/html/man3/OpenSSL_version.html" => [ "doc/man3/OpenSSL_version.pod" ], + "doc/html/man3/PBMAC1_get1_pbkdf2_param.html" => [ + "doc/man3/PBMAC1_get1_pbkdf2_param.pod" + ], "doc/html/man3/PEM_X509_INFO_read_bio_ex.html" => [ "doc/man3/PEM_X509_INFO_read_bio_ex.pod" ], @@ -12103,6 +14116,9 @@ our %unified_info = ( "doc/html/man3/PKCS12_SAFEBAG_get1_cert.html" => [ "doc/man3/PKCS12_SAFEBAG_get1_cert.pod" ], + "doc/html/man3/PKCS12_SAFEBAG_set0_attrs.html" => [ + "doc/man3/PKCS12_SAFEBAG_set0_attrs.pod" + ], "doc/html/man3/PKCS12_add1_attr_by_NID.html" => [ "doc/man3/PKCS12_add1_attr_by_NID.pod" ], @@ -12376,6 +14392,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set0_CA_list.html" => [ "doc/man3/SSL_CTX_set0_CA_list.pod" ], + "doc/html/man3/SSL_CTX_set1_cert_comp_preference.html" => [ + "doc/man3/SSL_CTX_set1_cert_comp_preference.pod" + ], "doc/html/man3/SSL_CTX_set1_curves.html" => [ "doc/man3/SSL_CTX_set1_curves.pod" ], @@ -12415,6 +14434,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_default_passwd_cb.html" => [ "doc/man3/SSL_CTX_set_default_passwd_cb.pod" ], + "doc/html/man3/SSL_CTX_set_domain_flags.html" => [ + "doc/man3/SSL_CTX_set_domain_flags.pod" + ], "doc/html/man3/SSL_CTX_set_generate_session_id.html" => [ "doc/man3/SSL_CTX_set_generate_session_id.pod" ], @@ -12436,6 +14458,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_msg_callback.html" => [ "doc/man3/SSL_CTX_set_msg_callback.pod" ], + "doc/html/man3/SSL_CTX_set_new_pending_conn_cb.html" => [ + "doc/man3/SSL_CTX_set_new_pending_conn_cb.pod" + ], "doc/html/man3/SSL_CTX_set_num_tickets.html" => [ "doc/man3/SSL_CTX_set_num_tickets.pod" ], @@ -12550,6 +14575,9 @@ our %unified_info = ( "doc/html/man3/SSL_accept.html" => [ "doc/man3/SSL_accept.pod" ], + "doc/html/man3/SSL_accept_stream.html" => [ + "doc/man3/SSL_accept_stream.pod" + ], "doc/html/man3/SSL_alert_type_string.html" => [ "doc/man3/SSL_alert_type_string.pod" ], @@ -12577,9 +14605,21 @@ our %unified_info = ( "doc/html/man3/SSL_free.html" => [ "doc/man3/SSL_free.pod" ], + "doc/html/man3/SSL_get0_connection.html" => [ + "doc/man3/SSL_get0_connection.pod" + ], + "doc/html/man3/SSL_get0_group_name.html" => [ + "doc/man3/SSL_get0_group_name.pod" + ], + "doc/html/man3/SSL_get0_peer_rpk.html" => [ + "doc/man3/SSL_get0_peer_rpk.pod" + ], "doc/html/man3/SSL_get0_peer_scts.html" => [ "doc/man3/SSL_get0_peer_scts.pod" ], + "doc/html/man3/SSL_get1_builtin_sigalgs.html" => [ + "doc/man3/SSL_get1_builtin_sigalgs.pod" + ], "doc/html/man3/SSL_get_SSL_CTX.html" => [ "doc/man3/SSL_get_SSL_CTX.pod" ], @@ -12595,6 +14635,9 @@ our %unified_info = ( "doc/html/man3/SSL_get_client_random.html" => [ "doc/man3/SSL_get_client_random.pod" ], + "doc/html/man3/SSL_get_conn_close_info.html" => [ + "doc/man3/SSL_get_conn_close_info.pod" + ], "doc/html/man3/SSL_get_current_cipher.html" => [ "doc/man3/SSL_get_current_cipher.pod" ], @@ -12604,12 +14647,18 @@ our %unified_info = ( "doc/html/man3/SSL_get_error.html" => [ "doc/man3/SSL_get_error.pod" ], + "doc/html/man3/SSL_get_event_timeout.html" => [ + "doc/man3/SSL_get_event_timeout.pod" + ], "doc/html/man3/SSL_get_extms_support.html" => [ "doc/man3/SSL_get_extms_support.pod" ], "doc/html/man3/SSL_get_fd.html" => [ "doc/man3/SSL_get_fd.pod" ], + "doc/html/man3/SSL_get_handshake_rtt.html" => [ + "doc/man3/SSL_get_handshake_rtt.pod" + ], "doc/html/man3/SSL_get_peer_cert_chain.html" => [ "doc/man3/SSL_get_peer_cert_chain.pod" ], @@ -12628,12 +14677,24 @@ our %unified_info = ( "doc/html/man3/SSL_get_rbio.html" => [ "doc/man3/SSL_get_rbio.pod" ], + "doc/html/man3/SSL_get_rpoll_descriptor.html" => [ + "doc/man3/SSL_get_rpoll_descriptor.pod" + ], "doc/html/man3/SSL_get_session.html" => [ "doc/man3/SSL_get_session.pod" ], "doc/html/man3/SSL_get_shared_sigalgs.html" => [ "doc/man3/SSL_get_shared_sigalgs.pod" ], + "doc/html/man3/SSL_get_stream_id.html" => [ + "doc/man3/SSL_get_stream_id.pod" + ], + "doc/html/man3/SSL_get_stream_read_state.html" => [ + "doc/man3/SSL_get_stream_read_state.pod" + ], + "doc/html/man3/SSL_get_value_uint.html" => [ + "doc/man3/SSL_get_value_uint.pod" + ], "doc/html/man3/SSL_get_verify_result.html" => [ "doc/man3/SSL_get_verify_result.pod" ], @@ -12643,9 +14704,15 @@ our %unified_info = ( "doc/html/man3/SSL_group_to_name.html" => [ "doc/man3/SSL_group_to_name.pod" ], + "doc/html/man3/SSL_handle_events.html" => [ + "doc/man3/SSL_handle_events.pod" + ], "doc/html/man3/SSL_in_init.html" => [ "doc/man3/SSL_in_init.pod" ], + "doc/html/man3/SSL_inject_net_dgram.html" => [ + "doc/man3/SSL_inject_net_dgram.pod" + ], "doc/html/man3/SSL_key_update.html" => [ "doc/man3/SSL_key_update.pod" ], @@ -12658,9 +14725,21 @@ our %unified_info = ( "doc/html/man3/SSL_new.html" => [ "doc/man3/SSL_new.pod" ], + "doc/html/man3/SSL_new_domain.html" => [ + "doc/man3/SSL_new_domain.pod" + ], + "doc/html/man3/SSL_new_listener.html" => [ + "doc/man3/SSL_new_listener.pod" + ], + "doc/html/man3/SSL_new_stream.html" => [ + "doc/man3/SSL_new_stream.pod" + ], "doc/html/man3/SSL_pending.html" => [ "doc/man3/SSL_pending.pod" ], + "doc/html/man3/SSL_poll.html" => [ + "doc/man3/SSL_poll.pod" + ], "doc/html/man3/SSL_read.html" => [ "doc/man3/SSL_read.pod" ], @@ -12676,24 +14755,45 @@ our %unified_info = ( "doc/html/man3/SSL_set1_host.html" => [ "doc/man3/SSL_set1_host.pod" ], + "doc/html/man3/SSL_set1_initial_peer_addr.html" => [ + "doc/man3/SSL_set1_initial_peer_addr.pod" + ], + "doc/html/man3/SSL_set1_server_cert_type.html" => [ + "doc/man3/SSL_set1_server_cert_type.pod" + ], "doc/html/man3/SSL_set_async_callback.html" => [ "doc/man3/SSL_set_async_callback.pod" ], "doc/html/man3/SSL_set_bio.html" => [ "doc/man3/SSL_set_bio.pod" ], + "doc/html/man3/SSL_set_blocking_mode.html" => [ + "doc/man3/SSL_set_blocking_mode.pod" + ], "doc/html/man3/SSL_set_connect_state.html" => [ "doc/man3/SSL_set_connect_state.pod" ], + "doc/html/man3/SSL_set_default_stream_mode.html" => [ + "doc/man3/SSL_set_default_stream_mode.pod" + ], "doc/html/man3/SSL_set_fd.html" => [ "doc/man3/SSL_set_fd.pod" ], + "doc/html/man3/SSL_set_incoming_stream_policy.html" => [ + "doc/man3/SSL_set_incoming_stream_policy.pod" + ], + "doc/html/man3/SSL_set_quic_tls_cbs.html" => [ + "doc/man3/SSL_set_quic_tls_cbs.pod" + ], "doc/html/man3/SSL_set_retry_verify.html" => [ "doc/man3/SSL_set_retry_verify.pod" ], "doc/html/man3/SSL_set_session.html" => [ "doc/man3/SSL_set_session.pod" ], + "doc/html/man3/SSL_set_session_secret_cb.html" => [ + "doc/man3/SSL_set_session_secret_cb.pod" + ], "doc/html/man3/SSL_set_shutdown.html" => [ "doc/man3/SSL_set_shutdown.pod" ], @@ -12706,6 +14806,12 @@ our %unified_info = ( "doc/html/man3/SSL_state_string.html" => [ "doc/man3/SSL_state_string.pod" ], + "doc/html/man3/SSL_stream_conclude.html" => [ + "doc/man3/SSL_stream_conclude.pod" + ], + "doc/html/man3/SSL_stream_reset.html" => [ + "doc/man3/SSL_stream_reset.pod" + ], "doc/html/man3/SSL_want.html" => [ "doc/man3/SSL_want.pod" ], @@ -12715,8 +14821,8 @@ our %unified_info = ( "doc/html/man3/TS_RESP_CTX_new.html" => [ "doc/man3/TS_RESP_CTX_new.pod" ], - "doc/html/man3/TS_VERIFY_CTX_set_certs.html" => [ - "doc/man3/TS_VERIFY_CTX_set_certs.pod" + "doc/html/man3/TS_VERIFY_CTX.html" => [ + "doc/man3/TS_VERIFY_CTX.pod" ], "doc/html/man3/UI_STRING.html" => [ "doc/man3/UI_STRING.pod" @@ -12736,6 +14842,21 @@ our %unified_info = ( "doc/html/man3/X509V3_set_ctx.html" => [ "doc/man3/X509V3_set_ctx.pod" ], + "doc/html/man3/X509_ACERT_add1_attr.html" => [ + "doc/man3/X509_ACERT_add1_attr.pod" + ], + "doc/html/man3/X509_ACERT_add_attr_nconf.html" => [ + "doc/man3/X509_ACERT_add_attr_nconf.pod" + ], + "doc/html/man3/X509_ACERT_get0_holder_baseCertId.html" => [ + "doc/man3/X509_ACERT_get0_holder_baseCertId.pod" + ], + "doc/html/man3/X509_ACERT_get_attr.html" => [ + "doc/man3/X509_ACERT_get_attr.pod" + ], + "doc/html/man3/X509_ACERT_print_ex.html" => [ + "doc/man3/X509_ACERT_print_ex.pod" + ], "doc/html/man3/X509_ALGOR_dup.html" => [ "doc/man3/X509_ALGOR_dup.pod" ], @@ -12784,6 +14905,9 @@ our %unified_info = ( "doc/html/man3/X509_SIG_get0.html" => [ "doc/man3/X509_SIG_get0.pod" ], + "doc/html/man3/X509_STORE_CTX_get_by_subject.html" => [ + "doc/man3/X509_STORE_CTX_get_by_subject.pod" + ], "doc/html/man3/X509_STORE_CTX_get_error.html" => [ "doc/man3/X509_STORE_CTX_get_error.pod" ], @@ -12850,6 +14974,9 @@ our %unified_info = ( "doc/html/man3/X509_get0_uids.html" => [ "doc/man3/X509_get0_uids.pod" ], + "doc/html/man3/X509_get_default_cert_file.html" => [ + "doc/man3/X509_get_default_cert_file.pod" + ], "doc/html/man3/X509_get_extension_flags.html" => [ "doc/man3/X509_get_extension_flags.pod" ], @@ -12973,9 +15100,15 @@ our %unified_info = ( "doc/html/man7/EVP_CIPHER-SM4.html" => [ "doc/man7/EVP_CIPHER-SM4.pod" ], + "doc/html/man7/EVP_KDF-ARGON2.html" => [ + "doc/man7/EVP_KDF-ARGON2.pod" + ], "doc/html/man7/EVP_KDF-HKDF.html" => [ "doc/man7/EVP_KDF-HKDF.pod" ], + "doc/html/man7/EVP_KDF-HMAC-DRBG.html" => [ + "doc/man7/EVP_KDF-HMAC-DRBG.pod" + ], "doc/html/man7/EVP_KDF-KB.html" => [ "doc/man7/EVP_KDF-KB.pod" ], @@ -12991,6 +15124,9 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-PKCS12KDF.html" => [ "doc/man7/EVP_KDF-PKCS12KDF.pod" ], + "doc/html/man7/EVP_KDF-PVKKDF.html" => [ + "doc/man7/EVP_KDF-PVKKDF.pod" + ], "doc/html/man7/EVP_KDF-SCRYPT.html" => [ "doc/man7/EVP_KDF-SCRYPT.pod" ], @@ -13015,9 +15151,18 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-X963.html" => [ "doc/man7/EVP_KDF-X963.pod" ], + "doc/html/man7/EVP_KEM-EC.html" => [ + "doc/man7/EVP_KEM-EC.pod" + ], + "doc/html/man7/EVP_KEM-ML-KEM.html" => [ + "doc/man7/EVP_KEM-ML-KEM.pod" + ], "doc/html/man7/EVP_KEM-RSA.html" => [ "doc/man7/EVP_KEM-RSA.pod" ], + "doc/html/man7/EVP_KEM-X25519.html" => [ + "doc/man7/EVP_KEM-X25519.pod" + ], "doc/html/man7/EVP_KEYEXCH-DH.html" => [ "doc/man7/EVP_KEYEXCH-DH.pod" ], @@ -13051,6 +15196,9 @@ our %unified_info = ( "doc/html/man7/EVP_MD-BLAKE2.html" => [ "doc/man7/EVP_MD-BLAKE2.pod" ], + "doc/html/man7/EVP_MD-KECCAK.html" => [ + "doc/man7/EVP_MD-KECCAK.pod" + ], "doc/html/man7/EVP_MD-MD2.html" => [ "doc/man7/EVP_MD-MD2.pod" ], @@ -13108,15 +15256,27 @@ our %unified_info = ( "doc/html/man7/EVP_PKEY-HMAC.html" => [ "doc/man7/EVP_PKEY-HMAC.pod" ], + "doc/html/man7/EVP_PKEY-ML-DSA.html" => [ + "doc/man7/EVP_PKEY-ML-DSA.pod" + ], + "doc/html/man7/EVP_PKEY-ML-KEM.html" => [ + "doc/man7/EVP_PKEY-ML-KEM.pod" + ], "doc/html/man7/EVP_PKEY-RSA.html" => [ "doc/man7/EVP_PKEY-RSA.pod" ], + "doc/html/man7/EVP_PKEY-SLH-DSA.html" => [ + "doc/man7/EVP_PKEY-SLH-DSA.pod" + ], "doc/html/man7/EVP_PKEY-SM2.html" => [ "doc/man7/EVP_PKEY-SM2.pod" ], "doc/html/man7/EVP_PKEY-X25519.html" => [ "doc/man7/EVP_PKEY-X25519.pod" ], + "doc/html/man7/EVP_RAND-CRNG-TEST.html" => [ + "doc/man7/EVP_RAND-CRNG-TEST.pod" + ], "doc/html/man7/EVP_RAND-CTR-DRBG.html" => [ "doc/man7/EVP_RAND-CTR-DRBG.pod" ], @@ -13126,6 +15286,9 @@ our %unified_info = ( "doc/html/man7/EVP_RAND-HMAC-DRBG.html" => [ "doc/man7/EVP_RAND-HMAC-DRBG.pod" ], + "doc/html/man7/EVP_RAND-JITTER.html" => [ + "doc/man7/EVP_RAND-JITTER.pod" + ], "doc/html/man7/EVP_RAND-SEED-SRC.html" => [ "doc/man7/EVP_RAND-SEED-SRC.pod" ], @@ -13147,9 +15310,15 @@ our %unified_info = ( "doc/html/man7/EVP_SIGNATURE-HMAC.html" => [ "doc/man7/EVP_SIGNATURE-HMAC.pod" ], + "doc/html/man7/EVP_SIGNATURE-ML-DSA.html" => [ + "doc/man7/EVP_SIGNATURE-ML-DSA.pod" + ], "doc/html/man7/EVP_SIGNATURE-RSA.html" => [ "doc/man7/EVP_SIGNATURE-RSA.pod" ], + "doc/html/man7/EVP_SIGNATURE-SLH-DSA.html" => [ + "doc/man7/EVP_SIGNATURE-SLH-DSA.pod" + ], "doc/html/man7/OSSL_PROVIDER-FIPS.html" => [ "doc/man7/OSSL_PROVIDER-FIPS.pod" ], @@ -13165,6 +15334,9 @@ our %unified_info = ( "doc/html/man7/OSSL_PROVIDER-null.html" => [ "doc/man7/OSSL_PROVIDER-null.pod" ], + "doc/html/man7/OSSL_STORE-winstore.html" => [ + "doc/man7/OSSL_STORE-winstore.pod" + ], "doc/html/man7/RAND.html" => [ "doc/man7/RAND.pod" ], @@ -13177,9 +15349,6 @@ our %unified_info = ( "doc/html/man7/bio.html" => [ "doc/man7/bio.pod" ], - "doc/html/man7/crypto.html" => [ - "doc/man7/crypto.pod" - ], "doc/html/man7/ct.html" => [ "doc/man7/ct.pod" ], @@ -13210,9 +15379,6 @@ our %unified_info = ( "doc/html/man7/life_cycle-rand.html" => [ "doc/man7/life_cycle-rand.pod" ], - "doc/html/man7/migration_guide.html" => [ - "doc/man7/migration_guide.pod" - ], "doc/html/man7/openssl-core.h.html" => [ "doc/man7/openssl-core.h.pod" ], @@ -13228,12 +15394,66 @@ our %unified_info = ( "doc/html/man7/openssl-glossary.html" => [ "doc/man7/openssl-glossary.pod" ], + "doc/html/man7/openssl-qlog.html" => [ + "doc/man7/openssl-qlog.pod" + ], + "doc/html/man7/openssl-quic-concurrency.html" => [ + "doc/man7/openssl-quic-concurrency.pod" + ], + "doc/html/man7/openssl-quic.html" => [ + "doc/man7/openssl-quic.pod" + ], "doc/html/man7/openssl-threads.html" => [ "doc/man7/openssl-threads.pod" ], "doc/html/man7/openssl_user_macros.html" => [ "doc/man7/openssl_user_macros.pod" ], + "doc/html/man7/ossl-guide-introduction.html" => [ + "doc/man7/ossl-guide-introduction.pod" + ], + "doc/html/man7/ossl-guide-libcrypto-introduction.html" => [ + "doc/man7/ossl-guide-libcrypto-introduction.pod" + ], + "doc/html/man7/ossl-guide-libraries-introduction.html" => [ + "doc/man7/ossl-guide-libraries-introduction.pod" + ], + "doc/html/man7/ossl-guide-libssl-introduction.html" => [ + "doc/man7/ossl-guide-libssl-introduction.pod" + ], + "doc/html/man7/ossl-guide-migration.html" => [ + "doc/man7/ossl-guide-migration.pod" + ], + "doc/html/man7/ossl-guide-quic-client-block.html" => [ + "doc/man7/ossl-guide-quic-client-block.pod" + ], + "doc/html/man7/ossl-guide-quic-client-non-block.html" => [ + "doc/man7/ossl-guide-quic-client-non-block.pod" + ], + "doc/html/man7/ossl-guide-quic-introduction.html" => [ + "doc/man7/ossl-guide-quic-introduction.pod" + ], + "doc/html/man7/ossl-guide-quic-multi-stream.html" => [ + "doc/man7/ossl-guide-quic-multi-stream.pod" + ], + "doc/html/man7/ossl-guide-quic-server-block.html" => [ + "doc/man7/ossl-guide-quic-server-block.pod" + ], + "doc/html/man7/ossl-guide-quic-server-non-block.html" => [ + "doc/man7/ossl-guide-quic-server-non-block.pod" + ], + "doc/html/man7/ossl-guide-tls-client-block.html" => [ + "doc/man7/ossl-guide-tls-client-block.pod" + ], + "doc/html/man7/ossl-guide-tls-client-non-block.html" => [ + "doc/man7/ossl-guide-tls-client-non-block.pod" + ], + "doc/html/man7/ossl-guide-tls-introduction.html" => [ + "doc/man7/ossl-guide-tls-introduction.pod" + ], + "doc/html/man7/ossl-guide-tls-server-block.html" => [ + "doc/man7/ossl-guide-tls-server-block.pod" + ], "doc/html/man7/ossl_store-file.html" => [ "doc/man7/ossl_store-file.pod" ], @@ -13288,6 +15508,9 @@ our %unified_info = ( "doc/html/man7/provider-signature.html" => [ "doc/man7/provider-signature.pod" ], + "doc/html/man7/provider-skeymgmt.html" => [ + "doc/man7/provider-skeymgmt.pod" + ], "doc/html/man7/provider-storemgmt.html" => [ "doc/man7/provider-storemgmt.pod" ], @@ -13297,9 +15520,6 @@ our %unified_info = ( "doc/html/man7/proxy-certificates.html" => [ "doc/man7/proxy-certificates.pod" ], - "doc/html/man7/ssl.html" => [ - "doc/man7/ssl.pod" - ], "doc/html/man7/x509.html" => [ "doc/man7/x509.pod" ], @@ -13447,6 +15667,9 @@ our %unified_info = ( "doc/man/man1/openssl-sess_id.1" => [ "doc/man1/openssl-sess_id.pod" ], + "doc/man/man1/openssl-skeyutl.1" => [ + "doc/man1/openssl-skeyutl.pod" + ], "doc/man/man1/openssl-smime.1" => [ "doc/man1/openssl-smime.pod" ], @@ -13588,6 +15811,9 @@ our %unified_info = ( "doc/man/man3/BIO_get_ex_new_index.3" => [ "doc/man3/BIO_get_ex_new_index.pod" ], + "doc/man/man3/BIO_get_rpoll_descriptor.3" => [ + "doc/man3/BIO_get_rpoll_descriptor.pod" + ], "doc/man/man3/BIO_meth_new.3" => [ "doc/man3/BIO_meth_new.pod" ], @@ -13624,6 +15850,9 @@ our %unified_info = ( "doc/man/man3/BIO_s_datagram.3" => [ "doc/man3/BIO_s_datagram.pod" ], + "doc/man/man3/BIO_s_dgram_pair.3" => [ + "doc/man3/BIO_s_dgram_pair.pod" + ], "doc/man/man3/BIO_s_fd.3" => [ "doc/man3/BIO_s_fd.pod" ], @@ -13639,6 +15868,9 @@ our %unified_info = ( "doc/man/man3/BIO_s_socket.3" => [ "doc/man3/BIO_s_socket.pod" ], + "doc/man/man3/BIO_sendmmsg.3" => [ + "doc/man3/BIO_sendmmsg.pod" + ], "doc/man/man3/BIO_set_callback.3" => [ "doc/man3/BIO_set_callback.pod" ], @@ -13711,6 +15943,9 @@ our %unified_info = ( "doc/man/man3/BUF_MEM_new.3" => [ "doc/man3/BUF_MEM_new.pod" ], + "doc/man/man3/CMAC_CTX.3" => [ + "doc/man3/CMAC_CTX.pod" + ], "doc/man/man3/CMS_EncryptedData_decrypt.3" => [ "doc/man3/CMS_EncryptedData_decrypt.pod" ], @@ -13777,6 +16012,9 @@ our %unified_info = ( "doc/man/man3/CMS_verify_receipt.3" => [ "doc/man3/CMS_verify_receipt.pod" ], + "doc/man/man3/COMP_CTX_new.3" => [ + "doc/man3/COMP_CTX_new.pod" + ], "doc/man/man3/CONF_modules_free.3" => [ "doc/man3/CONF_modules_free.pod" ], @@ -13876,6 +16114,12 @@ our %unified_info = ( "doc/man/man3/DTLS_set_timer_cb.3" => [ "doc/man3/DTLS_set_timer_cb.pod" ], + "doc/man/man3/DTLSv1_get_timeout.3" => [ + "doc/man3/DTLSv1_get_timeout.pod" + ], + "doc/man/man3/DTLSv1_handle_timeout.3" => [ + "doc/man3/DTLSv1_handle_timeout.pod" + ], "doc/man/man3/DTLSv1_listen.3" => [ "doc/man3/DTLSv1_listen.pod" ], @@ -14014,6 +16258,9 @@ our %unified_info = ( "doc/man/man3/EVP_PKEY_CTX_get0_pkey.3" => [ "doc/man3/EVP_PKEY_CTX_get0_pkey.pod" ], + "doc/man/man3/EVP_PKEY_CTX_get_algor.3" => [ + "doc/man3/EVP_PKEY_CTX_get_algor.pod" + ], "doc/man/man3/EVP_PKEY_CTX_new.3" => [ "doc/man3/EVP_PKEY_CTX_new.pod" ], @@ -14131,6 +16378,12 @@ our %unified_info = ( "doc/man/man3/EVP_SIGNATURE.3" => [ "doc/man3/EVP_SIGNATURE.pod" ], + "doc/man/man3/EVP_SKEY.3" => [ + "doc/man3/EVP_SKEY.pod" + ], + "doc/man/man3/EVP_SKEYMGMT.3" => [ + "doc/man3/EVP_SKEYMGMT.pod" + ], "doc/man/man3/EVP_SealInit.3" => [ "doc/man3/EVP_SealInit.pod" ], @@ -14218,6 +16471,9 @@ our %unified_info = ( "doc/man/man3/EVP_whirlpool.3" => [ "doc/man3/EVP_whirlpool.pod" ], + "doc/man/man3/GENERAL_NAME.3" => [ + "doc/man3/GENERAL_NAME.pod" + ], "doc/man/man3/HMAC.3" => [ "doc/man3/HMAC.pod" ], @@ -14290,9 +16546,15 @@ our %unified_info = ( "doc/man/man3/OPENSSL_load_builtin_modules.3" => [ "doc/man3/OPENSSL_load_builtin_modules.pod" ], + "doc/man/man3/OPENSSL_load_u16_le.3" => [ + "doc/man3/OPENSSL_load_u16_le.pod" + ], "doc/man/man3/OPENSSL_malloc.3" => [ "doc/man3/OPENSSL_malloc.pod" ], + "doc/man/man3/OPENSSL_riscvcap.3" => [ + "doc/man3/OPENSSL_riscvcap.pod" + ], "doc/man/man3/OPENSSL_s390xcap.3" => [ "doc/man3/OPENSSL_s390xcap.pod" ], @@ -14308,12 +16570,18 @@ our %unified_info = ( "doc/man/man3/OSSL_CALLBACK.3" => [ "doc/man3/OSSL_CALLBACK.pod" ], + "doc/man/man3/OSSL_CMP_ATAV_set0.3" => [ + "doc/man3/OSSL_CMP_ATAV_set0.pod" + ], "doc/man/man3/OSSL_CMP_CTX_new.3" => [ "doc/man3/OSSL_CMP_CTX_new.pod" ], "doc/man/man3/OSSL_CMP_HDR_get0_transactionID.3" => [ "doc/man3/OSSL_CMP_HDR_get0_transactionID.pod" ], + "doc/man/man3/OSSL_CMP_ITAV_new_caCerts.3" => [ + "doc/man3/OSSL_CMP_ITAV_new_caCerts.pod" + ], "doc/man/man3/OSSL_CMP_ITAV_set0.3" => [ "doc/man3/OSSL_CMP_ITAV_set0.pod" ], @@ -14383,9 +16651,18 @@ our %unified_info = ( "doc/man/man3/OSSL_ENCODER_to_bio.3" => [ "doc/man3/OSSL_ENCODER_to_bio.pod" ], + "doc/man/man3/OSSL_ERR_STATE_save.3" => [ + "doc/man3/OSSL_ERR_STATE_save.pod" + ], "doc/man/man3/OSSL_ESS_check_signing_certs.3" => [ "doc/man3/OSSL_ESS_check_signing_certs.pod" ], + "doc/man/man3/OSSL_GENERAL_NAMES_print.3" => [ + "doc/man3/OSSL_GENERAL_NAMES_print.pod" + ], + "doc/man/man3/OSSL_HPKE_CTX_new.3" => [ + "doc/man3/OSSL_HPKE_CTX_new.pod" + ], "doc/man/man3/OSSL_HTTP_REQ_CTX.3" => [ "doc/man3/OSSL_HTTP_REQ_CTX.pod" ], @@ -14395,12 +16672,24 @@ our %unified_info = ( "doc/man/man3/OSSL_HTTP_transfer.3" => [ "doc/man3/OSSL_HTTP_transfer.pod" ], + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX.3" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX.pod" + ], + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX_print.3" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX_print.pod" + ], + "doc/man/man3/OSSL_INDICATOR_set_callback.3" => [ + "doc/man3/OSSL_INDICATOR_set_callback.pod" + ], "doc/man/man3/OSSL_ITEM.3" => [ "doc/man3/OSSL_ITEM.pod" ], "doc/man/man3/OSSL_LIB_CTX.3" => [ "doc/man3/OSSL_LIB_CTX.pod" ], + "doc/man/man3/OSSL_LIB_CTX_set_conf_diagnostics.3" => [ + "doc/man3/OSSL_LIB_CTX_set_conf_diagnostics.pod" + ], "doc/man/man3/OSSL_PARAM.3" => [ "doc/man3/OSSL_PARAM.pod" ], @@ -14416,9 +16705,15 @@ our %unified_info = ( "doc/man/man3/OSSL_PARAM_int.3" => [ "doc/man3/OSSL_PARAM_int.pod" ], + "doc/man/man3/OSSL_PARAM_print_to_bio.3" => [ + "doc/man3/OSSL_PARAM_print_to_bio.pod" + ], "doc/man/man3/OSSL_PROVIDER.3" => [ "doc/man3/OSSL_PROVIDER.pod" ], + "doc/man/man3/OSSL_QUIC_client_method.3" => [ + "doc/man3/OSSL_QUIC_client_method.pod" + ], "doc/man/man3/OSSL_SELF_TEST_new.3" => [ "doc/man3/OSSL_SELF_TEST_new.pod" ], @@ -14443,6 +16738,9 @@ our %unified_info = ( "doc/man/man3/OSSL_STORE_open.3" => [ "doc/man3/OSSL_STORE_open.pod" ], + "doc/man/man3/OSSL_sleep.3" => [ + "doc/man3/OSSL_sleep.pod" + ], "doc/man/man3/OSSL_trace_enabled.3" => [ "doc/man3/OSSL_trace_enabled.pod" ], @@ -14458,6 +16756,9 @@ our %unified_info = ( "doc/man/man3/OpenSSL_version.3" => [ "doc/man3/OpenSSL_version.pod" ], + "doc/man/man3/PBMAC1_get1_pbkdf2_param.3" => [ + "doc/man3/PBMAC1_get1_pbkdf2_param.pod" + ], "doc/man/man3/PEM_X509_INFO_read_bio_ex.3" => [ "doc/man3/PEM_X509_INFO_read_bio_ex.pod" ], @@ -14494,6 +16795,9 @@ our %unified_info = ( "doc/man/man3/PKCS12_SAFEBAG_get1_cert.3" => [ "doc/man3/PKCS12_SAFEBAG_get1_cert.pod" ], + "doc/man/man3/PKCS12_SAFEBAG_set0_attrs.3" => [ + "doc/man3/PKCS12_SAFEBAG_set0_attrs.pod" + ], "doc/man/man3/PKCS12_add1_attr_by_NID.3" => [ "doc/man3/PKCS12_add1_attr_by_NID.pod" ], @@ -14767,6 +17071,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set0_CA_list.3" => [ "doc/man3/SSL_CTX_set0_CA_list.pod" ], + "doc/man/man3/SSL_CTX_set1_cert_comp_preference.3" => [ + "doc/man3/SSL_CTX_set1_cert_comp_preference.pod" + ], "doc/man/man3/SSL_CTX_set1_curves.3" => [ "doc/man3/SSL_CTX_set1_curves.pod" ], @@ -14806,6 +17113,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_default_passwd_cb.3" => [ "doc/man3/SSL_CTX_set_default_passwd_cb.pod" ], + "doc/man/man3/SSL_CTX_set_domain_flags.3" => [ + "doc/man3/SSL_CTX_set_domain_flags.pod" + ], "doc/man/man3/SSL_CTX_set_generate_session_id.3" => [ "doc/man3/SSL_CTX_set_generate_session_id.pod" ], @@ -14827,6 +17137,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_msg_callback.3" => [ "doc/man3/SSL_CTX_set_msg_callback.pod" ], + "doc/man/man3/SSL_CTX_set_new_pending_conn_cb.3" => [ + "doc/man3/SSL_CTX_set_new_pending_conn_cb.pod" + ], "doc/man/man3/SSL_CTX_set_num_tickets.3" => [ "doc/man3/SSL_CTX_set_num_tickets.pod" ], @@ -14941,6 +17254,9 @@ our %unified_info = ( "doc/man/man3/SSL_accept.3" => [ "doc/man3/SSL_accept.pod" ], + "doc/man/man3/SSL_accept_stream.3" => [ + "doc/man3/SSL_accept_stream.pod" + ], "doc/man/man3/SSL_alert_type_string.3" => [ "doc/man3/SSL_alert_type_string.pod" ], @@ -14968,9 +17284,21 @@ our %unified_info = ( "doc/man/man3/SSL_free.3" => [ "doc/man3/SSL_free.pod" ], + "doc/man/man3/SSL_get0_connection.3" => [ + "doc/man3/SSL_get0_connection.pod" + ], + "doc/man/man3/SSL_get0_group_name.3" => [ + "doc/man3/SSL_get0_group_name.pod" + ], + "doc/man/man3/SSL_get0_peer_rpk.3" => [ + "doc/man3/SSL_get0_peer_rpk.pod" + ], "doc/man/man3/SSL_get0_peer_scts.3" => [ "doc/man3/SSL_get0_peer_scts.pod" ], + "doc/man/man3/SSL_get1_builtin_sigalgs.3" => [ + "doc/man3/SSL_get1_builtin_sigalgs.pod" + ], "doc/man/man3/SSL_get_SSL_CTX.3" => [ "doc/man3/SSL_get_SSL_CTX.pod" ], @@ -14986,6 +17314,9 @@ our %unified_info = ( "doc/man/man3/SSL_get_client_random.3" => [ "doc/man3/SSL_get_client_random.pod" ], + "doc/man/man3/SSL_get_conn_close_info.3" => [ + "doc/man3/SSL_get_conn_close_info.pod" + ], "doc/man/man3/SSL_get_current_cipher.3" => [ "doc/man3/SSL_get_current_cipher.pod" ], @@ -14995,12 +17326,18 @@ our %unified_info = ( "doc/man/man3/SSL_get_error.3" => [ "doc/man3/SSL_get_error.pod" ], + "doc/man/man3/SSL_get_event_timeout.3" => [ + "doc/man3/SSL_get_event_timeout.pod" + ], "doc/man/man3/SSL_get_extms_support.3" => [ "doc/man3/SSL_get_extms_support.pod" ], "doc/man/man3/SSL_get_fd.3" => [ "doc/man3/SSL_get_fd.pod" ], + "doc/man/man3/SSL_get_handshake_rtt.3" => [ + "doc/man3/SSL_get_handshake_rtt.pod" + ], "doc/man/man3/SSL_get_peer_cert_chain.3" => [ "doc/man3/SSL_get_peer_cert_chain.pod" ], @@ -15019,11 +17356,23 @@ our %unified_info = ( "doc/man/man3/SSL_get_rbio.3" => [ "doc/man3/SSL_get_rbio.pod" ], + "doc/man/man3/SSL_get_rpoll_descriptor.3" => [ + "doc/man3/SSL_get_rpoll_descriptor.pod" + ], "doc/man/man3/SSL_get_session.3" => [ "doc/man3/SSL_get_session.pod" ], - "doc/man/man3/SSL_get_shared_sigalgs.3" => [ - "doc/man3/SSL_get_shared_sigalgs.pod" + "doc/man/man3/SSL_get_shared_sigalgs.3" => [ + "doc/man3/SSL_get_shared_sigalgs.pod" + ], + "doc/man/man3/SSL_get_stream_id.3" => [ + "doc/man3/SSL_get_stream_id.pod" + ], + "doc/man/man3/SSL_get_stream_read_state.3" => [ + "doc/man3/SSL_get_stream_read_state.pod" + ], + "doc/man/man3/SSL_get_value_uint.3" => [ + "doc/man3/SSL_get_value_uint.pod" ], "doc/man/man3/SSL_get_verify_result.3" => [ "doc/man3/SSL_get_verify_result.pod" @@ -15034,9 +17383,15 @@ our %unified_info = ( "doc/man/man3/SSL_group_to_name.3" => [ "doc/man3/SSL_group_to_name.pod" ], + "doc/man/man3/SSL_handle_events.3" => [ + "doc/man3/SSL_handle_events.pod" + ], "doc/man/man3/SSL_in_init.3" => [ "doc/man3/SSL_in_init.pod" ], + "doc/man/man3/SSL_inject_net_dgram.3" => [ + "doc/man3/SSL_inject_net_dgram.pod" + ], "doc/man/man3/SSL_key_update.3" => [ "doc/man3/SSL_key_update.pod" ], @@ -15049,9 +17404,21 @@ our %unified_info = ( "doc/man/man3/SSL_new.3" => [ "doc/man3/SSL_new.pod" ], + "doc/man/man3/SSL_new_domain.3" => [ + "doc/man3/SSL_new_domain.pod" + ], + "doc/man/man3/SSL_new_listener.3" => [ + "doc/man3/SSL_new_listener.pod" + ], + "doc/man/man3/SSL_new_stream.3" => [ + "doc/man3/SSL_new_stream.pod" + ], "doc/man/man3/SSL_pending.3" => [ "doc/man3/SSL_pending.pod" ], + "doc/man/man3/SSL_poll.3" => [ + "doc/man3/SSL_poll.pod" + ], "doc/man/man3/SSL_read.3" => [ "doc/man3/SSL_read.pod" ], @@ -15067,24 +17434,45 @@ our %unified_info = ( "doc/man/man3/SSL_set1_host.3" => [ "doc/man3/SSL_set1_host.pod" ], + "doc/man/man3/SSL_set1_initial_peer_addr.3" => [ + "doc/man3/SSL_set1_initial_peer_addr.pod" + ], + "doc/man/man3/SSL_set1_server_cert_type.3" => [ + "doc/man3/SSL_set1_server_cert_type.pod" + ], "doc/man/man3/SSL_set_async_callback.3" => [ "doc/man3/SSL_set_async_callback.pod" ], "doc/man/man3/SSL_set_bio.3" => [ "doc/man3/SSL_set_bio.pod" ], + "doc/man/man3/SSL_set_blocking_mode.3" => [ + "doc/man3/SSL_set_blocking_mode.pod" + ], "doc/man/man3/SSL_set_connect_state.3" => [ "doc/man3/SSL_set_connect_state.pod" ], + "doc/man/man3/SSL_set_default_stream_mode.3" => [ + "doc/man3/SSL_set_default_stream_mode.pod" + ], "doc/man/man3/SSL_set_fd.3" => [ "doc/man3/SSL_set_fd.pod" ], + "doc/man/man3/SSL_set_incoming_stream_policy.3" => [ + "doc/man3/SSL_set_incoming_stream_policy.pod" + ], + "doc/man/man3/SSL_set_quic_tls_cbs.3" => [ + "doc/man3/SSL_set_quic_tls_cbs.pod" + ], "doc/man/man3/SSL_set_retry_verify.3" => [ "doc/man3/SSL_set_retry_verify.pod" ], "doc/man/man3/SSL_set_session.3" => [ "doc/man3/SSL_set_session.pod" ], + "doc/man/man3/SSL_set_session_secret_cb.3" => [ + "doc/man3/SSL_set_session_secret_cb.pod" + ], "doc/man/man3/SSL_set_shutdown.3" => [ "doc/man3/SSL_set_shutdown.pod" ], @@ -15097,6 +17485,12 @@ our %unified_info = ( "doc/man/man3/SSL_state_string.3" => [ "doc/man3/SSL_state_string.pod" ], + "doc/man/man3/SSL_stream_conclude.3" => [ + "doc/man3/SSL_stream_conclude.pod" + ], + "doc/man/man3/SSL_stream_reset.3" => [ + "doc/man3/SSL_stream_reset.pod" + ], "doc/man/man3/SSL_want.3" => [ "doc/man3/SSL_want.pod" ], @@ -15106,8 +17500,8 @@ our %unified_info = ( "doc/man/man3/TS_RESP_CTX_new.3" => [ "doc/man3/TS_RESP_CTX_new.pod" ], - "doc/man/man3/TS_VERIFY_CTX_set_certs.3" => [ - "doc/man3/TS_VERIFY_CTX_set_certs.pod" + "doc/man/man3/TS_VERIFY_CTX.3" => [ + "doc/man3/TS_VERIFY_CTX.pod" ], "doc/man/man3/UI_STRING.3" => [ "doc/man3/UI_STRING.pod" @@ -15127,6 +17521,21 @@ our %unified_info = ( "doc/man/man3/X509V3_set_ctx.3" => [ "doc/man3/X509V3_set_ctx.pod" ], + "doc/man/man3/X509_ACERT_add1_attr.3" => [ + "doc/man3/X509_ACERT_add1_attr.pod" + ], + "doc/man/man3/X509_ACERT_add_attr_nconf.3" => [ + "doc/man3/X509_ACERT_add_attr_nconf.pod" + ], + "doc/man/man3/X509_ACERT_get0_holder_baseCertId.3" => [ + "doc/man3/X509_ACERT_get0_holder_baseCertId.pod" + ], + "doc/man/man3/X509_ACERT_get_attr.3" => [ + "doc/man3/X509_ACERT_get_attr.pod" + ], + "doc/man/man3/X509_ACERT_print_ex.3" => [ + "doc/man3/X509_ACERT_print_ex.pod" + ], "doc/man/man3/X509_ALGOR_dup.3" => [ "doc/man3/X509_ALGOR_dup.pod" ], @@ -15175,6 +17584,9 @@ our %unified_info = ( "doc/man/man3/X509_SIG_get0.3" => [ "doc/man3/X509_SIG_get0.pod" ], + "doc/man/man3/X509_STORE_CTX_get_by_subject.3" => [ + "doc/man3/X509_STORE_CTX_get_by_subject.pod" + ], "doc/man/man3/X509_STORE_CTX_get_error.3" => [ "doc/man3/X509_STORE_CTX_get_error.pod" ], @@ -15241,6 +17653,9 @@ our %unified_info = ( "doc/man/man3/X509_get0_uids.3" => [ "doc/man3/X509_get0_uids.pod" ], + "doc/man/man3/X509_get_default_cert_file.3" => [ + "doc/man3/X509_get_default_cert_file.pod" + ], "doc/man/man3/X509_get_extension_flags.3" => [ "doc/man3/X509_get_extension_flags.pod" ], @@ -15364,9 +17779,15 @@ our %unified_info = ( "doc/man/man7/EVP_CIPHER-SM4.7" => [ "doc/man7/EVP_CIPHER-SM4.pod" ], + "doc/man/man7/EVP_KDF-ARGON2.7" => [ + "doc/man7/EVP_KDF-ARGON2.pod" + ], "doc/man/man7/EVP_KDF-HKDF.7" => [ "doc/man7/EVP_KDF-HKDF.pod" ], + "doc/man/man7/EVP_KDF-HMAC-DRBG.7" => [ + "doc/man7/EVP_KDF-HMAC-DRBG.pod" + ], "doc/man/man7/EVP_KDF-KB.7" => [ "doc/man7/EVP_KDF-KB.pod" ], @@ -15382,6 +17803,9 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-PKCS12KDF.7" => [ "doc/man7/EVP_KDF-PKCS12KDF.pod" ], + "doc/man/man7/EVP_KDF-PVKKDF.7" => [ + "doc/man7/EVP_KDF-PVKKDF.pod" + ], "doc/man/man7/EVP_KDF-SCRYPT.7" => [ "doc/man7/EVP_KDF-SCRYPT.pod" ], @@ -15406,9 +17830,18 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-X963.7" => [ "doc/man7/EVP_KDF-X963.pod" ], + "doc/man/man7/EVP_KEM-EC.7" => [ + "doc/man7/EVP_KEM-EC.pod" + ], + "doc/man/man7/EVP_KEM-ML-KEM.7" => [ + "doc/man7/EVP_KEM-ML-KEM.pod" + ], "doc/man/man7/EVP_KEM-RSA.7" => [ "doc/man7/EVP_KEM-RSA.pod" ], + "doc/man/man7/EVP_KEM-X25519.7" => [ + "doc/man7/EVP_KEM-X25519.pod" + ], "doc/man/man7/EVP_KEYEXCH-DH.7" => [ "doc/man7/EVP_KEYEXCH-DH.pod" ], @@ -15442,6 +17875,9 @@ our %unified_info = ( "doc/man/man7/EVP_MD-BLAKE2.7" => [ "doc/man7/EVP_MD-BLAKE2.pod" ], + "doc/man/man7/EVP_MD-KECCAK.7" => [ + "doc/man7/EVP_MD-KECCAK.pod" + ], "doc/man/man7/EVP_MD-MD2.7" => [ "doc/man7/EVP_MD-MD2.pod" ], @@ -15499,15 +17935,27 @@ our %unified_info = ( "doc/man/man7/EVP_PKEY-HMAC.7" => [ "doc/man7/EVP_PKEY-HMAC.pod" ], + "doc/man/man7/EVP_PKEY-ML-DSA.7" => [ + "doc/man7/EVP_PKEY-ML-DSA.pod" + ], + "doc/man/man7/EVP_PKEY-ML-KEM.7" => [ + "doc/man7/EVP_PKEY-ML-KEM.pod" + ], "doc/man/man7/EVP_PKEY-RSA.7" => [ "doc/man7/EVP_PKEY-RSA.pod" ], + "doc/man/man7/EVP_PKEY-SLH-DSA.7" => [ + "doc/man7/EVP_PKEY-SLH-DSA.pod" + ], "doc/man/man7/EVP_PKEY-SM2.7" => [ "doc/man7/EVP_PKEY-SM2.pod" ], "doc/man/man7/EVP_PKEY-X25519.7" => [ "doc/man7/EVP_PKEY-X25519.pod" ], + "doc/man/man7/EVP_RAND-CRNG-TEST.7" => [ + "doc/man7/EVP_RAND-CRNG-TEST.pod" + ], "doc/man/man7/EVP_RAND-CTR-DRBG.7" => [ "doc/man7/EVP_RAND-CTR-DRBG.pod" ], @@ -15517,6 +17965,9 @@ our %unified_info = ( "doc/man/man7/EVP_RAND-HMAC-DRBG.7" => [ "doc/man7/EVP_RAND-HMAC-DRBG.pod" ], + "doc/man/man7/EVP_RAND-JITTER.7" => [ + "doc/man7/EVP_RAND-JITTER.pod" + ], "doc/man/man7/EVP_RAND-SEED-SRC.7" => [ "doc/man7/EVP_RAND-SEED-SRC.pod" ], @@ -15538,9 +17989,15 @@ our %unified_info = ( "doc/man/man7/EVP_SIGNATURE-HMAC.7" => [ "doc/man7/EVP_SIGNATURE-HMAC.pod" ], + "doc/man/man7/EVP_SIGNATURE-ML-DSA.7" => [ + "doc/man7/EVP_SIGNATURE-ML-DSA.pod" + ], "doc/man/man7/EVP_SIGNATURE-RSA.7" => [ "doc/man7/EVP_SIGNATURE-RSA.pod" ], + "doc/man/man7/EVP_SIGNATURE-SLH-DSA.7" => [ + "doc/man7/EVP_SIGNATURE-SLH-DSA.pod" + ], "doc/man/man7/OSSL_PROVIDER-FIPS.7" => [ "doc/man7/OSSL_PROVIDER-FIPS.pod" ], @@ -15556,6 +18013,9 @@ our %unified_info = ( "doc/man/man7/OSSL_PROVIDER-null.7" => [ "doc/man7/OSSL_PROVIDER-null.pod" ], + "doc/man/man7/OSSL_STORE-winstore.7" => [ + "doc/man7/OSSL_STORE-winstore.pod" + ], "doc/man/man7/RAND.7" => [ "doc/man7/RAND.pod" ], @@ -15568,9 +18028,6 @@ our %unified_info = ( "doc/man/man7/bio.7" => [ "doc/man7/bio.pod" ], - "doc/man/man7/crypto.7" => [ - "doc/man7/crypto.pod" - ], "doc/man/man7/ct.7" => [ "doc/man7/ct.pod" ], @@ -15601,9 +18058,6 @@ our %unified_info = ( "doc/man/man7/life_cycle-rand.7" => [ "doc/man7/life_cycle-rand.pod" ], - "doc/man/man7/migration_guide.7" => [ - "doc/man7/migration_guide.pod" - ], "doc/man/man7/openssl-core.h.7" => [ "doc/man7/openssl-core.h.pod" ], @@ -15619,12 +18073,66 @@ our %unified_info = ( "doc/man/man7/openssl-glossary.7" => [ "doc/man7/openssl-glossary.pod" ], + "doc/man/man7/openssl-qlog.7" => [ + "doc/man7/openssl-qlog.pod" + ], + "doc/man/man7/openssl-quic-concurrency.7" => [ + "doc/man7/openssl-quic-concurrency.pod" + ], + "doc/man/man7/openssl-quic.7" => [ + "doc/man7/openssl-quic.pod" + ], "doc/man/man7/openssl-threads.7" => [ "doc/man7/openssl-threads.pod" ], "doc/man/man7/openssl_user_macros.7" => [ "doc/man7/openssl_user_macros.pod" ], + "doc/man/man7/ossl-guide-introduction.7" => [ + "doc/man7/ossl-guide-introduction.pod" + ], + "doc/man/man7/ossl-guide-libcrypto-introduction.7" => [ + "doc/man7/ossl-guide-libcrypto-introduction.pod" + ], + "doc/man/man7/ossl-guide-libraries-introduction.7" => [ + "doc/man7/ossl-guide-libraries-introduction.pod" + ], + "doc/man/man7/ossl-guide-libssl-introduction.7" => [ + "doc/man7/ossl-guide-libssl-introduction.pod" + ], + "doc/man/man7/ossl-guide-migration.7" => [ + "doc/man7/ossl-guide-migration.pod" + ], + "doc/man/man7/ossl-guide-quic-client-block.7" => [ + "doc/man7/ossl-guide-quic-client-block.pod" + ], + "doc/man/man7/ossl-guide-quic-client-non-block.7" => [ + "doc/man7/ossl-guide-quic-client-non-block.pod" + ], + "doc/man/man7/ossl-guide-quic-introduction.7" => [ + "doc/man7/ossl-guide-quic-introduction.pod" + ], + "doc/man/man7/ossl-guide-quic-multi-stream.7" => [ + "doc/man7/ossl-guide-quic-multi-stream.pod" + ], + "doc/man/man7/ossl-guide-quic-server-block.7" => [ + "doc/man7/ossl-guide-quic-server-block.pod" + ], + "doc/man/man7/ossl-guide-quic-server-non-block.7" => [ + "doc/man7/ossl-guide-quic-server-non-block.pod" + ], + "doc/man/man7/ossl-guide-tls-client-block.7" => [ + "doc/man7/ossl-guide-tls-client-block.pod" + ], + "doc/man/man7/ossl-guide-tls-client-non-block.7" => [ + "doc/man7/ossl-guide-tls-client-non-block.pod" + ], + "doc/man/man7/ossl-guide-tls-introduction.7" => [ + "doc/man7/ossl-guide-tls-introduction.pod" + ], + "doc/man/man7/ossl-guide-tls-server-block.7" => [ + "doc/man7/ossl-guide-tls-server-block.pod" + ], "doc/man/man7/ossl_store-file.7" => [ "doc/man7/ossl_store-file.pod" ], @@ -15679,6 +18187,9 @@ our %unified_info = ( "doc/man/man7/provider-signature.7" => [ "doc/man7/provider-signature.pod" ], + "doc/man/man7/provider-skeymgmt.7" => [ + "doc/man7/provider-skeymgmt.pod" + ], "doc/man/man7/provider-storemgmt.7" => [ "doc/man7/provider-storemgmt.pod" ], @@ -15688,9 +18199,6 @@ our %unified_info = ( "doc/man/man7/proxy-certificates.7" => [ "doc/man7/proxy-certificates.pod" ], - "doc/man/man7/ssl.7" => [ - "doc/man7/ssl.pod" - ], "doc/man/man7/x509.7" => [ "doc/man7/x509.pod" ], @@ -15826,6 +18334,9 @@ our %unified_info = ( "doc/man1/openssl-sess_id.pod" => [ "doc/man1/openssl-sess_id.pod.in" ], + "doc/man1/openssl-skeyutl.pod" => [ + "doc/man1/openssl-skeyutl.pod.in" + ], "doc/man1/openssl-smime.pod" => [ "doc/man1/openssl-smime.pod.in" ], @@ -15862,12 +18373,30 @@ our %unified_info = ( "engines/e_padlock-x86_64.s" => [ "engines/asm/e_padlock-x86_64.pl" ], + "exporters/OpenSSLConfig.cmake" => [ + "exporters/cmake/OpenSSLConfig.cmake.in" + ], + "exporters/OpenSSLConfigVersion.cmake" => [ + "exporters/cmake/OpenSSLConfigVersion.cmake.in" + ], + "exporters/libcrypto.pc" => [ + "exporters/pkg-config/libcrypto.pc.in" + ], + "exporters/libssl.pc" => [ + "exporters/pkg-config/libssl.pc.in" + ], + "exporters/openssl.pc" => [ + "exporters/pkg-config/openssl.pc.in" + ], "include/crypto/bn_conf.h" => [ "include/crypto/bn_conf.h.in" ], "include/crypto/dso_conf.h" => [ "include/crypto/dso_conf.h.in" ], + "include/internal/param_names.h" => [ + "include/internal/param_names.h.in" + ], "include/openssl/asn1.h" => [ "include/openssl/asn1.h.in" ], @@ -15883,12 +18412,18 @@ our %unified_info = ( "include/openssl/cms.h" => [ "include/openssl/cms.h.in" ], + "include/openssl/comp.h" => [ + "include/openssl/comp.h.in" + ], "include/openssl/conf.h" => [ "include/openssl/conf.h.in" ], "include/openssl/configuration.h" => [ "include/openssl/configuration.h.in" ], + "include/openssl/core_names.h" => [ + "include/openssl/core_names.h.in" + ], "include/openssl/crmf.h" => [ "include/openssl/crmf.h.in" ], @@ -15937,20 +18472,47 @@ our %unified_info = ( "include/openssl/x509.h" => [ "include/openssl/x509.h.in" ], + "include/openssl/x509_acert.h" => [ + "include/openssl/x509_acert.h.in" + ], "include/openssl/x509_vfy.h" => [ "include/openssl/x509_vfy.h.in" ], "include/openssl/x509v3.h" => [ "include/openssl/x509v3.h.in" ], + "installdata.pm" => [ + "util/mkinstallvars.pl", + "\"PREFIX=\$(INSTALLTOP)\"", + "BINDIR=bin", + "\"LIBDIR=\$(LIBDIR)\"", + "\"libdir=\$(libdir)\"", + "INCLUDEDIR=include", + "APPLINKDIR=include/openssl", + "\"ENGINESDIR=\$(ENGINESDIR)\"", + "\"MODULESDIR=\$(MODULESDIR)\"", + "\"PKGCONFIGDIR=\$(PKGCONFIGDIR)\"", + "\"CMAKECONFIGDIR=\$(CMAKECONFIGDIR)\"", + "\"LDLIBS=\$(LIB_EX_LIBS)\"", + "\"VERSION=\$(VERSION)\"" + ], "libcrypto.ld" => [ "util/libcrypto.num", "libcrypto" ], + "libcrypto.pc" => [ + "exporters/pkg-config/libcrypto.pc.in" + ], "libssl.ld" => [ "util/libssl.num", "libssl" ], + "libssl.pc" => [ + "exporters/pkg-config/libssl.pc.in" + ], + "openssl.pc" => [ + "exporters/pkg-config/openssl.pc.in" + ], "providers/common/der/der_digests_gen.c" => [ "providers/common/der/der_digests_gen.c.in" ], @@ -15963,9 +18525,15 @@ our %unified_info = ( "providers/common/der/der_ecx_gen.c" => [ "providers/common/der/der_ecx_gen.c.in" ], + "providers/common/der/der_ml_dsa_gen.c" => [ + "providers/common/der/der_ml_dsa_gen.c.in" + ], "providers/common/der/der_rsa_gen.c" => [ "providers/common/der/der_rsa_gen.c.in" ], + "providers/common/der/der_slh_dsa_gen.c" => [ + "providers/common/der/der_slh_dsa_gen.c.in" + ], "providers/common/der/der_sm2_gen.c" => [ "providers/common/der/der_sm2_gen.c.in" ], @@ -15984,9 +18552,15 @@ our %unified_info = ( "providers/common/include/prov/der_ecx.h" => [ "providers/common/include/prov/der_ecx.h.in" ], + "providers/common/include/prov/der_ml_dsa.h" => [ + "providers/common/include/prov/der_ml_dsa.h.in" + ], "providers/common/include/prov/der_rsa.h" => [ "providers/common/include/prov/der_rsa.h.in" ], + "providers/common/include/prov/der_slh_dsa.h" => [ + "providers/common/include/prov/der_slh_dsa.h.in" + ], "providers/common/include/prov/der_sm2.h" => [ "providers/common/include/prov/der_sm2.h.in" ], @@ -16028,6 +18602,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "buffer" ], + "test/buildtest_byteorder.c" => [ + "test/generate_buildtest.pl", + "byteorder" + ], "test/buildtest_camellia.c" => [ "test/generate_buildtest.pl", "camellia" @@ -16060,10 +18638,6 @@ our %unified_info = ( "test/generate_buildtest.pl", "core_dispatch" ], - "test/buildtest_core_names.c" => [ - "test/generate_buildtest.pl", - "core_names" - ], "test/buildtest_core_object.c" => [ "test/generate_buildtest.pl", "core_object" @@ -16096,6 +18670,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "e_os2" ], + "test/buildtest_e_ostime.c" => [ + "test/generate_buildtest.pl", + "e_ostime" + ], "test/buildtest_ebcdic.c" => [ "test/generate_buildtest.pl", "ebcdic" @@ -16132,6 +18710,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "hmac" ], + "test/buildtest_hpke.c" => [ + "test/generate_buildtest.pl", + "hpke" + ], "test/buildtest_http.c" => [ "test/generate_buildtest.pl", "http" @@ -16140,6 +18722,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "idea" ], + "test/buildtest_indicator.c" => [ + "test/generate_buildtest.pl", + "indicator" + ], "test/buildtest_kdf.c" => [ "test/generate_buildtest.pl", "kdf" @@ -16160,6 +18746,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "mdc2" ], + "test/buildtest_ml_kem.c" => [ + "test/generate_buildtest.pl", + "ml_kem" + ], "test/buildtest_modes.c" => [ "test/generate_buildtest.pl", "modes" @@ -16200,6 +18790,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "provider" ], + "test/buildtest_quic.c" => [ + "test/generate_buildtest.pl", + "quic" + ], "test/buildtest_rand.c" => [ "test/generate_buildtest.pl", "rand" @@ -16256,6 +18850,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "symhacks" ], + "test/buildtest_thread.c" => [ + "test/generate_buildtest.pl", + "thread" + ], "test/buildtest_tls1.c" => [ "test/generate_buildtest.pl", "tls1" @@ -16336,6 +18934,7 @@ our %unified_info = ( "doc/html/man1/openssl-s_server.html", "doc/html/man1/openssl-s_time.html", "doc/html/man1/openssl-sess_id.html", + "doc/html/man1/openssl-skeyutl.html", "doc/html/man1/openssl-smime.html", "doc/html/man1/openssl-speed.html", "doc/html/man1/openssl-spkac.html", @@ -16385,6 +18984,7 @@ our %unified_info = ( "doc/html/man3/BIO_find_type.html", "doc/html/man3/BIO_get_data.html", "doc/html/man3/BIO_get_ex_new_index.html", + "doc/html/man3/BIO_get_rpoll_descriptor.html", "doc/html/man3/BIO_meth_new.html", "doc/html/man3/BIO_new.html", "doc/html/man3/BIO_new_CMS.html", @@ -16397,11 +18997,13 @@ our %unified_info = ( "doc/html/man3/BIO_s_connect.html", "doc/html/man3/BIO_s_core.html", "doc/html/man3/BIO_s_datagram.html", + "doc/html/man3/BIO_s_dgram_pair.html", "doc/html/man3/BIO_s_fd.html", "doc/html/man3/BIO_s_file.html", "doc/html/man3/BIO_s_mem.html", "doc/html/man3/BIO_s_null.html", "doc/html/man3/BIO_s_socket.html", + "doc/html/man3/BIO_sendmmsg.html", "doc/html/man3/BIO_set_callback.html", "doc/html/man3/BIO_should_retry.html", "doc/html/man3/BIO_socket_wait.html", @@ -16426,6 +19028,7 @@ our %unified_info = ( "doc/html/man3/BN_swap.html", "doc/html/man3/BN_zero.html", "doc/html/man3/BUF_MEM_new.html", + "doc/html/man3/CMAC_CTX.html", "doc/html/man3/CMS_EncryptedData_decrypt.html", "doc/html/man3/CMS_EncryptedData_encrypt.html", "doc/html/man3/CMS_EnvelopedData_create.html", @@ -16448,6 +19051,7 @@ our %unified_info = ( "doc/html/man3/CMS_uncompress.html", "doc/html/man3/CMS_verify.html", "doc/html/man3/CMS_verify_receipt.html", + "doc/html/man3/COMP_CTX_new.html", "doc/html/man3/CONF_modules_free.html", "doc/html/man3/CONF_modules_load_file.html", "doc/html/man3/CRYPTO_THREAD_run_once.html", @@ -16481,6 +19085,8 @@ our %unified_info = ( "doc/html/man3/DSA_size.html", "doc/html/man3/DTLS_get_data_mtu.html", "doc/html/man3/DTLS_set_timer_cb.html", + "doc/html/man3/DTLSv1_get_timeout.html", + "doc/html/man3/DTLSv1_handle_timeout.html", "doc/html/man3/DTLSv1_listen.html", "doc/html/man3/ECDSA_SIG_new.html", "doc/html/man3/ECDSA_sign.html", @@ -16527,6 +19133,7 @@ our %unified_info = ( "doc/html/man3/EVP_PKEY_CTX_ctrl.html", "doc/html/man3/EVP_PKEY_CTX_get0_libctx.html", "doc/html/man3/EVP_PKEY_CTX_get0_pkey.html", + "doc/html/man3/EVP_PKEY_CTX_get_algor.html", "doc/html/man3/EVP_PKEY_CTX_new.html", "doc/html/man3/EVP_PKEY_CTX_set1_pbe_pass.html", "doc/html/man3/EVP_PKEY_CTX_set_hkdf_md.html", @@ -16566,6 +19173,8 @@ our %unified_info = ( "doc/html/man3/EVP_PKEY_verify_recover.html", "doc/html/man3/EVP_RAND.html", "doc/html/man3/EVP_SIGNATURE.html", + "doc/html/man3/EVP_SKEY.html", + "doc/html/man3/EVP_SKEYMGMT.html", "doc/html/man3/EVP_SealInit.html", "doc/html/man3/EVP_SignInit.html", "doc/html/man3/EVP_VerifyInit.html", @@ -16595,6 +19204,7 @@ our %unified_info = ( "doc/html/man3/EVP_sm3.html", "doc/html/man3/EVP_sm4_cbc.html", "doc/html/man3/EVP_whirlpool.html", + "doc/html/man3/GENERAL_NAME.html", "doc/html/man3/HMAC.html", "doc/html/man3/MD5.html", "doc/html/man3/MDC2_Init.html", @@ -16619,14 +19229,18 @@ our %unified_info = ( "doc/html/man3/OPENSSL_init_ssl.html", "doc/html/man3/OPENSSL_instrument_bus.html", "doc/html/man3/OPENSSL_load_builtin_modules.html", + "doc/html/man3/OPENSSL_load_u16_le.html", "doc/html/man3/OPENSSL_malloc.html", + "doc/html/man3/OPENSSL_riscvcap.html", "doc/html/man3/OPENSSL_s390xcap.html", "doc/html/man3/OPENSSL_secure_malloc.html", "doc/html/man3/OPENSSL_strcasecmp.html", "doc/html/man3/OSSL_ALGORITHM.html", "doc/html/man3/OSSL_CALLBACK.html", + "doc/html/man3/OSSL_CMP_ATAV_set0.html", "doc/html/man3/OSSL_CMP_CTX_new.html", "doc/html/man3/OSSL_CMP_HDR_get0_transactionID.html", + "doc/html/man3/OSSL_CMP_ITAV_new_caCerts.html", "doc/html/man3/OSSL_CMP_ITAV_set0.html", "doc/html/man3/OSSL_CMP_MSG_get0_header.html", "doc/html/man3/OSSL_CMP_MSG_http_perform.html", @@ -16650,18 +19264,27 @@ our %unified_info = ( "doc/html/man3/OSSL_ENCODER_CTX.html", "doc/html/man3/OSSL_ENCODER_CTX_new_for_pkey.html", "doc/html/man3/OSSL_ENCODER_to_bio.html", + "doc/html/man3/OSSL_ERR_STATE_save.html", "doc/html/man3/OSSL_ESS_check_signing_certs.html", + "doc/html/man3/OSSL_GENERAL_NAMES_print.html", + "doc/html/man3/OSSL_HPKE_CTX_new.html", "doc/html/man3/OSSL_HTTP_REQ_CTX.html", "doc/html/man3/OSSL_HTTP_parse_url.html", "doc/html/man3/OSSL_HTTP_transfer.html", + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX.html", + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX_print.html", + "doc/html/man3/OSSL_INDICATOR_set_callback.html", "doc/html/man3/OSSL_ITEM.html", "doc/html/man3/OSSL_LIB_CTX.html", + "doc/html/man3/OSSL_LIB_CTX_set_conf_diagnostics.html", "doc/html/man3/OSSL_PARAM.html", "doc/html/man3/OSSL_PARAM_BLD.html", "doc/html/man3/OSSL_PARAM_allocate_from_text.html", "doc/html/man3/OSSL_PARAM_dup.html", "doc/html/man3/OSSL_PARAM_int.html", + "doc/html/man3/OSSL_PARAM_print_to_bio.html", "doc/html/man3/OSSL_PROVIDER.html", + "doc/html/man3/OSSL_QUIC_client_method.html", "doc/html/man3/OSSL_SELF_TEST_new.html", "doc/html/man3/OSSL_SELF_TEST_set_callback.html", "doc/html/man3/OSSL_STORE_INFO.html", @@ -16670,11 +19293,13 @@ our %unified_info = ( "doc/html/man3/OSSL_STORE_attach.html", "doc/html/man3/OSSL_STORE_expect.html", "doc/html/man3/OSSL_STORE_open.html", + "doc/html/man3/OSSL_sleep.html", "doc/html/man3/OSSL_trace_enabled.html", "doc/html/man3/OSSL_trace_get_category_num.html", "doc/html/man3/OSSL_trace_set_channel.html", "doc/html/man3/OpenSSL_add_all_algorithms.html", "doc/html/man3/OpenSSL_version.html", + "doc/html/man3/PBMAC1_get1_pbkdf2_param.html", "doc/html/man3/PEM_X509_INFO_read_bio_ex.html", "doc/html/man3/PEM_bytes_read_bio.html", "doc/html/man3/PEM_read.html", @@ -16687,6 +19312,7 @@ our %unified_info = ( "doc/html/man3/PKCS12_SAFEBAG_create_cert.html", "doc/html/man3/PKCS12_SAFEBAG_get0_attrs.html", "doc/html/man3/PKCS12_SAFEBAG_get1_cert.html", + "doc/html/man3/PKCS12_SAFEBAG_set0_attrs.html", "doc/html/man3/PKCS12_add1_attr_by_NID.html", "doc/html/man3/PKCS12_add_CSPName_asc.html", "doc/html/man3/PKCS12_add_cert.html", @@ -16778,6 +19404,7 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_sess_set_get_cb.html", "doc/html/man3/SSL_CTX_sessions.html", "doc/html/man3/SSL_CTX_set0_CA_list.html", + "doc/html/man3/SSL_CTX_set1_cert_comp_preference.html", "doc/html/man3/SSL_CTX_set1_curves.html", "doc/html/man3/SSL_CTX_set1_sigalgs.html", "doc/html/man3/SSL_CTX_set1_verify_cert_store.html", @@ -16791,6 +19418,7 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_ct_validation_callback.html", "doc/html/man3/SSL_CTX_set_ctlog_list_file.html", "doc/html/man3/SSL_CTX_set_default_passwd_cb.html", + "doc/html/man3/SSL_CTX_set_domain_flags.html", "doc/html/man3/SSL_CTX_set_generate_session_id.html", "doc/html/man3/SSL_CTX_set_info_callback.html", "doc/html/man3/SSL_CTX_set_keylog_callback.html", @@ -16798,6 +19426,7 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_min_proto_version.html", "doc/html/man3/SSL_CTX_set_mode.html", "doc/html/man3/SSL_CTX_set_msg_callback.html", + "doc/html/man3/SSL_CTX_set_new_pending_conn_cb.html", "doc/html/man3/SSL_CTX_set_num_tickets.html", "doc/html/man3/SSL_CTX_set_options.html", "doc/html/man3/SSL_CTX_set_psk_client_callback.html", @@ -16836,6 +19465,7 @@ our %unified_info = ( "doc/html/man3/SSL_SESSION_print.html", "doc/html/man3/SSL_SESSION_set1_id.html", "doc/html/man3/SSL_accept.html", + "doc/html/man3/SSL_accept_stream.html", "doc/html/man3/SSL_alert_type_string.html", "doc/html/man3/SSL_alloc_buffers.html", "doc/html/man3/SSL_check_chain.html", @@ -16845,59 +19475,90 @@ our %unified_info = ( "doc/html/man3/SSL_export_keying_material.html", "doc/html/man3/SSL_extension_supported.html", "doc/html/man3/SSL_free.html", + "doc/html/man3/SSL_get0_connection.html", + "doc/html/man3/SSL_get0_group_name.html", + "doc/html/man3/SSL_get0_peer_rpk.html", "doc/html/man3/SSL_get0_peer_scts.html", + "doc/html/man3/SSL_get1_builtin_sigalgs.html", "doc/html/man3/SSL_get_SSL_CTX.html", "doc/html/man3/SSL_get_all_async_fds.html", "doc/html/man3/SSL_get_certificate.html", "doc/html/man3/SSL_get_ciphers.html", "doc/html/man3/SSL_get_client_random.html", + "doc/html/man3/SSL_get_conn_close_info.html", "doc/html/man3/SSL_get_current_cipher.html", "doc/html/man3/SSL_get_default_timeout.html", "doc/html/man3/SSL_get_error.html", + "doc/html/man3/SSL_get_event_timeout.html", "doc/html/man3/SSL_get_extms_support.html", "doc/html/man3/SSL_get_fd.html", + "doc/html/man3/SSL_get_handshake_rtt.html", "doc/html/man3/SSL_get_peer_cert_chain.html", "doc/html/man3/SSL_get_peer_certificate.html", "doc/html/man3/SSL_get_peer_signature_nid.html", "doc/html/man3/SSL_get_peer_tmp_key.html", "doc/html/man3/SSL_get_psk_identity.html", "doc/html/man3/SSL_get_rbio.html", + "doc/html/man3/SSL_get_rpoll_descriptor.html", "doc/html/man3/SSL_get_session.html", "doc/html/man3/SSL_get_shared_sigalgs.html", + "doc/html/man3/SSL_get_stream_id.html", + "doc/html/man3/SSL_get_stream_read_state.html", + "doc/html/man3/SSL_get_value_uint.html", "doc/html/man3/SSL_get_verify_result.html", "doc/html/man3/SSL_get_version.html", "doc/html/man3/SSL_group_to_name.html", + "doc/html/man3/SSL_handle_events.html", "doc/html/man3/SSL_in_init.html", + "doc/html/man3/SSL_inject_net_dgram.html", "doc/html/man3/SSL_key_update.html", "doc/html/man3/SSL_library_init.html", "doc/html/man3/SSL_load_client_CA_file.html", "doc/html/man3/SSL_new.html", + "doc/html/man3/SSL_new_domain.html", + "doc/html/man3/SSL_new_listener.html", + "doc/html/man3/SSL_new_stream.html", "doc/html/man3/SSL_pending.html", + "doc/html/man3/SSL_poll.html", "doc/html/man3/SSL_read.html", "doc/html/man3/SSL_read_early_data.html", "doc/html/man3/SSL_rstate_string.html", "doc/html/man3/SSL_session_reused.html", "doc/html/man3/SSL_set1_host.html", + "doc/html/man3/SSL_set1_initial_peer_addr.html", + "doc/html/man3/SSL_set1_server_cert_type.html", "doc/html/man3/SSL_set_async_callback.html", "doc/html/man3/SSL_set_bio.html", + "doc/html/man3/SSL_set_blocking_mode.html", "doc/html/man3/SSL_set_connect_state.html", + "doc/html/man3/SSL_set_default_stream_mode.html", "doc/html/man3/SSL_set_fd.html", + "doc/html/man3/SSL_set_incoming_stream_policy.html", + "doc/html/man3/SSL_set_quic_tls_cbs.html", "doc/html/man3/SSL_set_retry_verify.html", "doc/html/man3/SSL_set_session.html", + "doc/html/man3/SSL_set_session_secret_cb.html", "doc/html/man3/SSL_set_shutdown.html", "doc/html/man3/SSL_set_verify_result.html", "doc/html/man3/SSL_shutdown.html", "doc/html/man3/SSL_state_string.html", + "doc/html/man3/SSL_stream_conclude.html", + "doc/html/man3/SSL_stream_reset.html", "doc/html/man3/SSL_want.html", "doc/html/man3/SSL_write.html", "doc/html/man3/TS_RESP_CTX_new.html", - "doc/html/man3/TS_VERIFY_CTX_set_certs.html", + "doc/html/man3/TS_VERIFY_CTX.html", "doc/html/man3/UI_STRING.html", "doc/html/man3/UI_UTIL_read_pw.html", "doc/html/man3/UI_create_method.html", "doc/html/man3/UI_new.html", "doc/html/man3/X509V3_get_d2i.html", "doc/html/man3/X509V3_set_ctx.html", + "doc/html/man3/X509_ACERT_add1_attr.html", + "doc/html/man3/X509_ACERT_add_attr_nconf.html", + "doc/html/man3/X509_ACERT_get0_holder_baseCertId.html", + "doc/html/man3/X509_ACERT_get_attr.html", + "doc/html/man3/X509_ACERT_print_ex.html", "doc/html/man3/X509_ALGOR_dup.html", "doc/html/man3/X509_ATTRIBUTE.html", "doc/html/man3/X509_CRL_get0_by_serial.html", @@ -16914,6 +19575,7 @@ our %unified_info = ( "doc/html/man3/X509_REQ_get_attr.html", "doc/html/man3/X509_REQ_get_extensions.html", "doc/html/man3/X509_SIG_get0.html", + "doc/html/man3/X509_STORE_CTX_get_by_subject.html", "doc/html/man3/X509_STORE_CTX_get_error.html", "doc/html/man3/X509_STORE_CTX_new.html", "doc/html/man3/X509_STORE_CTX_set_verify_cb.html", @@ -16936,6 +19598,7 @@ our %unified_info = ( "doc/html/man3/X509_get0_notBefore.html", "doc/html/man3/X509_get0_signature.html", "doc/html/man3/X509_get0_uids.html", + "doc/html/man3/X509_get_default_cert_file.html", "doc/html/man3/X509_get_extension_flags.html", "doc/html/man3/X509_get_pubkey.html", "doc/html/man3/X509_get_serialNumber.html", @@ -16981,12 +19644,15 @@ our %unified_info = ( "doc/html/man7/EVP_CIPHER-RC5.html", "doc/html/man7/EVP_CIPHER-SEED.html", "doc/html/man7/EVP_CIPHER-SM4.html", + "doc/html/man7/EVP_KDF-ARGON2.html", "doc/html/man7/EVP_KDF-HKDF.html", + "doc/html/man7/EVP_KDF-HMAC-DRBG.html", "doc/html/man7/EVP_KDF-KB.html", "doc/html/man7/EVP_KDF-KRB5KDF.html", "doc/html/man7/EVP_KDF-PBKDF1.html", "doc/html/man7/EVP_KDF-PBKDF2.html", "doc/html/man7/EVP_KDF-PKCS12KDF.html", + "doc/html/man7/EVP_KDF-PVKKDF.html", "doc/html/man7/EVP_KDF-SCRYPT.html", "doc/html/man7/EVP_KDF-SS.html", "doc/html/man7/EVP_KDF-SSHKDF.html", @@ -16995,7 +19661,10 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-X942-ASN1.html", "doc/html/man7/EVP_KDF-X942-CONCAT.html", "doc/html/man7/EVP_KDF-X963.html", + "doc/html/man7/EVP_KEM-EC.html", + "doc/html/man7/EVP_KEM-ML-KEM.html", "doc/html/man7/EVP_KEM-RSA.html", + "doc/html/man7/EVP_KEM-X25519.html", "doc/html/man7/EVP_KEYEXCH-DH.html", "doc/html/man7/EVP_KEYEXCH-ECDH.html", "doc/html/man7/EVP_KEYEXCH-X25519.html", @@ -17007,6 +19676,7 @@ our %unified_info = ( "doc/html/man7/EVP_MAC-Poly1305.html", "doc/html/man7/EVP_MAC-Siphash.html", "doc/html/man7/EVP_MD-BLAKE2.html", + "doc/html/man7/EVP_MD-KECCAK.html", "doc/html/man7/EVP_MD-MD2.html", "doc/html/man7/EVP_MD-MD4.html", "doc/html/man7/EVP_MD-MD5-SHA1.html", @@ -17026,12 +19696,17 @@ our %unified_info = ( "doc/html/man7/EVP_PKEY-EC.html", "doc/html/man7/EVP_PKEY-FFC.html", "doc/html/man7/EVP_PKEY-HMAC.html", + "doc/html/man7/EVP_PKEY-ML-DSA.html", + "doc/html/man7/EVP_PKEY-ML-KEM.html", "doc/html/man7/EVP_PKEY-RSA.html", + "doc/html/man7/EVP_PKEY-SLH-DSA.html", "doc/html/man7/EVP_PKEY-SM2.html", "doc/html/man7/EVP_PKEY-X25519.html", + "doc/html/man7/EVP_RAND-CRNG-TEST.html", "doc/html/man7/EVP_RAND-CTR-DRBG.html", "doc/html/man7/EVP_RAND-HASH-DRBG.html", "doc/html/man7/EVP_RAND-HMAC-DRBG.html", + "doc/html/man7/EVP_RAND-JITTER.html", "doc/html/man7/EVP_RAND-SEED-SRC.html", "doc/html/man7/EVP_RAND-TEST-RAND.html", "doc/html/man7/EVP_RAND.html", @@ -17039,17 +19714,19 @@ our %unified_info = ( "doc/html/man7/EVP_SIGNATURE-ECDSA.html", "doc/html/man7/EVP_SIGNATURE-ED25519.html", "doc/html/man7/EVP_SIGNATURE-HMAC.html", + "doc/html/man7/EVP_SIGNATURE-ML-DSA.html", "doc/html/man7/EVP_SIGNATURE-RSA.html", + "doc/html/man7/EVP_SIGNATURE-SLH-DSA.html", "doc/html/man7/OSSL_PROVIDER-FIPS.html", "doc/html/man7/OSSL_PROVIDER-base.html", "doc/html/man7/OSSL_PROVIDER-default.html", "doc/html/man7/OSSL_PROVIDER-legacy.html", "doc/html/man7/OSSL_PROVIDER-null.html", + "doc/html/man7/OSSL_STORE-winstore.html", "doc/html/man7/RAND.html", "doc/html/man7/RSA-PSS.html", "doc/html/man7/X25519.html", "doc/html/man7/bio.html", - "doc/html/man7/crypto.html", "doc/html/man7/ct.html", "doc/html/man7/des_modes.html", "doc/html/man7/evp.html", @@ -17060,14 +19737,31 @@ our %unified_info = ( "doc/html/man7/life_cycle-mac.html", "doc/html/man7/life_cycle-pkey.html", "doc/html/man7/life_cycle-rand.html", - "doc/html/man7/migration_guide.html", "doc/html/man7/openssl-core.h.html", "doc/html/man7/openssl-core_dispatch.h.html", "doc/html/man7/openssl-core_names.h.html", "doc/html/man7/openssl-env.html", "doc/html/man7/openssl-glossary.html", + "doc/html/man7/openssl-qlog.html", + "doc/html/man7/openssl-quic-concurrency.html", + "doc/html/man7/openssl-quic.html", "doc/html/man7/openssl-threads.html", "doc/html/man7/openssl_user_macros.html", + "doc/html/man7/ossl-guide-introduction.html", + "doc/html/man7/ossl-guide-libcrypto-introduction.html", + "doc/html/man7/ossl-guide-libraries-introduction.html", + "doc/html/man7/ossl-guide-libssl-introduction.html", + "doc/html/man7/ossl-guide-migration.html", + "doc/html/man7/ossl-guide-quic-client-block.html", + "doc/html/man7/ossl-guide-quic-client-non-block.html", + "doc/html/man7/ossl-guide-quic-introduction.html", + "doc/html/man7/ossl-guide-quic-multi-stream.html", + "doc/html/man7/ossl-guide-quic-server-block.html", + "doc/html/man7/ossl-guide-quic-server-non-block.html", + "doc/html/man7/ossl-guide-tls-client-block.html", + "doc/html/man7/ossl-guide-tls-client-non-block.html", + "doc/html/man7/ossl-guide-tls-introduction.html", + "doc/html/man7/ossl-guide-tls-server-block.html", "doc/html/man7/ossl_store-file.html", "doc/html/man7/ossl_store.html", "doc/html/man7/passphrase-encoding.html", @@ -17086,10 +19780,10 @@ our %unified_info = ( "doc/html/man7/provider-object.html", "doc/html/man7/provider-rand.html", "doc/html/man7/provider-signature.html", + "doc/html/man7/provider-skeymgmt.html", "doc/html/man7/provider-storemgmt.html", "doc/html/man7/provider.html", "doc/html/man7/proxy-certificates.html", - "doc/html/man7/ssl.html", "doc/html/man7/x509.html" ] }, @@ -17104,12 +19798,21 @@ our %unified_info = ( ] }, "includes" => { + "OpenSSLConfig.cmake" => [ + "." + ], + "OpenSSLConfigVersion.cmake" => [ + "." + ], "apps/asn1parse.o" => [ "apps" ], "apps/ca.o" => [ "apps" ], + "apps/ca_internals_test-bin-ca.o" => [ + "apps" + ], "apps/ciphers.o" => [ "apps" ], @@ -17336,6 +20039,9 @@ our %unified_info = ( "apps/openssl-bin-sess_id.o" => [ "apps" ], + "apps/openssl-bin-skeyutl.o" => [ + "apps" + ], "apps/openssl-bin-smime.o" => [ "apps" ], @@ -17423,6 +20129,9 @@ our %unified_info = ( "apps/sess_id.o" => [ "apps" ], + "apps/skeyutl.o" => [ + "apps" + ], "apps/smime.o" => [ "apps" ], @@ -17474,6 +20183,12 @@ our %unified_info = ( "crypto/aes/bsaes-armv7.o" => [ "crypto" ], + "crypto/aes/vpaes-armv8.o" => [ + "crypto" + ], + "crypto/aes/vpaes-loongarch64.o" => [ + "crypto" + ], "crypto/arm64cpuid.o" => [ "crypto" ], @@ -17525,9 +20240,15 @@ our %unified_info = ( "crypto/chacha/chacha-armv4.o" => [ "crypto" ], + "crypto/chacha/chacha-armv8-sve.o" => [ + "crypto" + ], "crypto/chacha/chacha-armv8.o" => [ "crypto" ], + "crypto/chacha/chacha-loongarch64.o" => [ + "crypto" + ], "crypto/chacha/chacha-s390x.o" => [ "crypto" ], @@ -17552,15 +20273,24 @@ our %unified_info = ( "crypto/ec/ecp_s390x_nistp.o" => [ "crypto" ], + "crypto/ec/ecp_sm2p256-armv8.o" => [ + "crypto" + ], + "crypto/ec/ecx_key.o" => [ + "crypto" + ], "crypto/ec/ecx_meth.o" => [ "crypto" ], - "crypto/ec/ecx_s390x.o" => [ + "crypto/ec/libcrypto-lib-ecx_key.o" => [ "crypto" ], "crypto/ec/libcrypto-lib-ecx_meth.o" => [ "crypto" ], + "crypto/ec/libfips-lib-ecx_key.o" => [ + "crypto" + ], "crypto/evp/e_aes.o" => [ "crypto", "crypto/modes" @@ -17632,9 +20362,18 @@ our %unified_info = ( "crypto/libfips-lib-cpuid.o" => [ "." ], + "crypto/md5/md5-aarch64.o" => [ + "crypto" + ], + "crypto/md5/md5-loongarch64.o" => [ + "crypto" + ], "crypto/md5/md5-sparcv9.o" => [ "crypto" ], + "crypto/modes/aes-gcm-armv8-unroll8_64.o" => [ + "crypto" + ], "crypto/modes/aes-gcm-armv8_64.o" => [ "crypto" ], @@ -17659,6 +20398,9 @@ our %unified_info = ( "crypto/modes/libfips-lib-gcm128.o" => [ "crypto" ], + "crypto/params_idx.c" => [ + "util/perl" + ], "crypto/poly1305/poly1305-armv4.o" => [ "crypto" ], @@ -17680,6 +20422,9 @@ our %unified_info = ( "crypto/sha/keccak1600-armv4.o" => [ "crypto" ], + "crypto/sha/keccak1600-armv8.o" => [ + "crypto" + ], "crypto/sha/sha1-armv4-large.o" => [ "crypto" ], @@ -17725,6 +20470,18 @@ our %unified_info = ( "crypto/sha/sha512-sparcv9.o" => [ "crypto" ], + "crypto/sm3/sm3-armv8.o" => [ + "crypto" + ], + "crypto/sm4/sm4-armv8.o" => [ + "crypto" + ], + "crypto/sm4/vpsm4-armv8.o" => [ + "crypto" + ], + "crypto/sm4/vpsm4_ex-armv8.o" => [ + "crypto" + ], "doc/man1/openssl-asn1parse.pod" => [ "doc" ], @@ -17857,6 +20614,9 @@ our %unified_info = ( "doc/man1/openssl-sess_id.pod" => [ "doc" ], + "doc/man1/openssl-skeyutl.pod" => [ + "doc" + ], "doc/man1/openssl-smime.pod" => [ "doc" ], @@ -17884,6 +20644,24 @@ our %unified_info = ( "doc/man1/openssl-x509.pod" => [ "doc" ], + "exporters/OpenSSLConfig.cmake" => [ + "." + ], + "exporters/OpenSSLConfigVersion.cmake" => [ + "." + ], + "exporters/libcrypto.pc" => [ + "." + ], + "exporters/libssl.pc" => [ + "." + ], + "exporters/openssl.pc" => [ + "." + ], + "fuzz/acert-test" => [ + "include" + ], "fuzz/asn1-test" => [ "include" ], @@ -17914,12 +20692,69 @@ our %unified_info = ( "fuzz/ct-test" => [ "include" ], + "fuzz/decoder-test" => [ + "include" + ], + "fuzz/dtlsclient-test" => [ + "include" + ], + "fuzz/dtlsserver-test" => [ + "include" + ], + "fuzz/hashtable-test" => [ + "include" + ], + "fuzz/ml-dsa-test" => [ + "include" + ], + "fuzz/ml-kem-test" => [ + "include" + ], + "fuzz/pem-test" => [ + "include" + ], + "fuzz/provider-test" => [ + "include" + ], + "fuzz/punycode-test" => [ + "include" + ], + "fuzz/quic-client-test" => [ + "include" + ], + "fuzz/quic-lcidm-test" => [ + "include" + ], + "fuzz/quic-rcidm-test" => [ + "include" + ], + "fuzz/quic-server-test" => [ + "include" + ], + "fuzz/quic-srtm-test" => [ + "include" + ], "fuzz/server-test" => [ "include" ], + "fuzz/slh-dsa-test" => [ + "include" + ], + "fuzz/smime-test" => [ + "include" + ], + "fuzz/v3name-test" => [ + "include" + ], "fuzz/x509-test" => [ "include" ], + "include/internal/param_names.h" => [ + "util/perl" + ], + "include/openssl/core_names.h" => [ + "util/perl" + ], "libcrypto" => [ ".", "include", @@ -17930,6 +20765,9 @@ our %unified_info = ( ".", "util/perl/OpenSSL" ], + "libcrypto.pc" => [ + "." + ], "libssl" => [ ".", "include" @@ -17938,6 +20776,12 @@ our %unified_info = ( ".", "util/perl/OpenSSL" ], + "libssl.pc" => [ + "." + ], + "openssl.pc" => [ + "." + ], "providers/common/der/der_digests_gen.c" => [ "providers/common/der" ], @@ -17977,6 +20821,15 @@ our %unified_info = ( "providers/common/der/der_ecx_key.o" => [ "providers/common/include/prov" ], + "providers/common/der/der_ml_dsa_gen.c" => [ + "providers/common/der" + ], + "providers/common/der/der_ml_dsa_gen.o" => [ + "providers/common/include/prov" + ], + "providers/common/der/der_ml_dsa_key.o" => [ + "providers/common/include/prov" + ], "providers/common/der/der_rsa_gen.c" => [ "providers/common/der" ], @@ -17989,6 +20842,15 @@ our %unified_info = ( "providers/common/der/der_rsa_sig.o" => [ "providers/common/include/prov" ], + "providers/common/der/der_slh_dsa_gen.c" => [ + "providers/common/der" + ], + "providers/common/der/der_slh_dsa_gen.o" => [ + "providers/common/include/prov" + ], + "providers/common/der/der_slh_dsa_key.o" => [ + "providers/common/include/prov" + ], "providers/common/der/der_sm2_gen.c" => [ "providers/common/der" ], @@ -18034,12 +20896,24 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ecx_key.o" => [ "providers/common/include/prov" ], + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o" => [ + "providers/common/include/prov" + ], + "providers/common/der/libcommon-lib-der_ml_dsa_key.o" => [ + "providers/common/include/prov" + ], "providers/common/der/libcommon-lib-der_rsa_gen.o" => [ "providers/common/include/prov" ], "providers/common/der/libcommon-lib-der_rsa_key.o" => [ "providers/common/include/prov" ], + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o" => [ + "providers/common/include/prov" + ], + "providers/common/der/libcommon-lib-der_slh_dsa_key.o" => [ + "providers/common/include/prov" + ], "providers/common/der/libcommon-lib-der_wrap_gen.o" => [ "providers/common/include/prov" ], @@ -18070,9 +20944,15 @@ our %unified_info = ( "providers/common/include/prov/der_ecx.h" => [ "providers/common/der" ], + "providers/common/include/prov/der_ml_dsa.h" => [ + "providers/common/der" + ], "providers/common/include/prov/der_rsa.h" => [ "providers/common/der" ], + "providers/common/include/prov/der_slh_dsa.h" => [ + "providers/common/der" + ], "providers/common/include/prov/der_sm2.h" => [ "providers/common/der" ], @@ -18115,9 +20995,15 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-eddsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/libdefault-lib-rsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/libdefault-lib-sm2_sig.o" => [ "providers/common/include/prov" ], @@ -18130,12 +21016,24 @@ our %unified_info = ( "providers/implementations/signature/libfips-lib-eddsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/libfips-lib-rsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o" => [ + "providers/common/include/prov" + ], + "providers/implementations/signature/ml_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/rsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/slh_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/sm2_sig.o" => [ "providers/common/include/prov" ], @@ -18148,28 +21046,39 @@ our %unified_info = ( "crypto", "include", "providers/implementations/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" ], "providers/libdefault.a" => [ ".", "crypto", "include", "providers/implementations/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" ], "providers/libfips.a" => [ ".", "crypto", "include", "providers/implementations/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" ], "providers/liblegacy.a" => [ ".", "crypto", "include", "providers/implementations/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" + ], + "providers/libtemplate.a" => [ + "crypto", + "include", + "providers/implementations/include", + "providers/common/include", + "providers/fips/include" ], "test/aborttest" => [ "include", @@ -18238,6 +21147,14 @@ our %unified_info = ( "include", "apps/include" ], + "test/bio_addr_test" => [ + "include", + "apps/include" + ], + "test/bio_base64_test" => [ + "include", + "apps/include" + ], "test/bio_callback_test" => [ "include", "apps/include" @@ -18246,11 +21163,20 @@ our %unified_info = ( "include", "apps/include" ], + "test/bio_dgram_test" => [ + "include", + "apps/include", + "." + ], "test/bio_enc_test" => [ "include", "apps/include" ], - "test/bio_memleak_test" => [ + "test/bio_memleak_test" => [ + "include", + "apps/include" + ], + "test/bio_meth_test" => [ "include", "apps/include" ], @@ -18267,6 +21193,11 @@ our %unified_info = ( "include", "apps/include" ], + "test/bio_tfo_test" => [ + "include", + "apps/include", + "." + ], "test/bioprinttest" => [ "include", "apps/include" @@ -18281,6 +21212,9 @@ our %unified_info = ( "include", "apps/include" ], + "test/build_wincrypt_test" => [ + "include" + ], "test/buildtest_c_aes" => [ "include" ], @@ -18296,6 +21230,9 @@ our %unified_info = ( "test/buildtest_c_buffer" => [ "include" ], + "test/buildtest_c_byteorder" => [ + "include" + ], "test/buildtest_c_camellia" => [ "include" ], @@ -18320,9 +21257,6 @@ our %unified_info = ( "test/buildtest_c_core_dispatch" => [ "include" ], - "test/buildtest_c_core_names" => [ - "include" - ], "test/buildtest_c_core_object" => [ "include" ], @@ -18347,6 +21281,9 @@ our %unified_info = ( "test/buildtest_c_e_os2" => [ "include" ], + "test/buildtest_c_e_ostime" => [ + "include" + ], "test/buildtest_c_ebcdic" => [ "include" ], @@ -18374,12 +21311,18 @@ our %unified_info = ( "test/buildtest_c_hmac" => [ "include" ], + "test/buildtest_c_hpke" => [ + "include" + ], "test/buildtest_c_http" => [ "include" ], "test/buildtest_c_idea" => [ "include" ], + "test/buildtest_c_indicator" => [ + "include" + ], "test/buildtest_c_kdf" => [ "include" ], @@ -18395,6 +21338,9 @@ our %unified_info = ( "test/buildtest_c_mdc2" => [ "include" ], + "test/buildtest_c_ml_kem" => [ + "include" + ], "test/buildtest_c_modes" => [ "include" ], @@ -18425,6 +21371,9 @@ our %unified_info = ( "test/buildtest_c_provider" => [ "include" ], + "test/buildtest_c_quic" => [ + "include" + ], "test/buildtest_c_rand" => [ "include" ], @@ -18467,6 +21416,9 @@ our %unified_info = ( "test/buildtest_c_symhacks" => [ "include" ], + "test/buildtest_c_thread" => [ + "include" + ], "test/buildtest_c_tls1" => [ "include" ], @@ -18482,10 +21434,24 @@ our %unified_info = ( "test/buildtest_c_whrlpool" => [ "include" ], + "test/byteorder_test" => [ + "include", + "apps/include" + ], + "test/ca_internals_test" => [ + ".", + "include", + "apps/include" + ], "test/casttest" => [ "include", "apps/include" ], + "test/cert_comp_test" => [ + "include", + "apps/include", + "." + ], "test/chacha_internal_test" => [ ".", "include", @@ -18609,6 +21575,11 @@ our %unified_info = ( "include", "apps/include" ], + "test/decoder_propq_test" => [ + ".", + "include", + "apps/include" + ], "test/defltfips_test" => [ "include", "apps/include" @@ -18624,7 +21595,8 @@ our %unified_info = ( "test/drbgtest" => [ "include", "apps/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" ], "test/dsa_no_digest_size_test" => [ "include", @@ -18667,7 +21639,9 @@ our %unified_info = ( "test/endecode_test" => [ ".", "include", - "apps/include" + "apps/include", + "providers/common/include", + "providers/implementations/include" ], "test/endecoder_legacy_test" => [ ".", @@ -18712,6 +21686,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/evp_pkey_dhkem_test" => [ + "include", + "apps/include" + ], "test/evp_pkey_dparams_test" => [ "include", "apps/include" @@ -18720,10 +21698,18 @@ our %unified_info = ( "include", "apps/include" ], + "test/evp_skey_test" => [ + "include", + "apps/include" + ], "test/evp_test" => [ "include", "apps/include" ], + "test/evp_xof_test" => [ + "include", + "apps/include" + ], "test/exdatatest" => [ "include", "apps/include" @@ -18824,22 +21810,62 @@ our %unified_info = ( ".", "include" ], + "test/helpers/json_test-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/helpers/pkcs12.o" => [ ".", "include" ], + "test/helpers/pkcs12_api_test-bin-pkcs12.o" => [ + ".", + "include" + ], "test/helpers/pkcs12_format_test-bin-pkcs12.o" => [ ".", "include" ], + "test/helpers/quic_multistream_test-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quic_newcid_test-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quic_radix_test-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quic_srt_gen_test-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quicapitest-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quicfaultstest-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/helpers/recordlentest-bin-ssltestlib.o" => [ ".", "include" ], + "test/helpers/rpktest-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/helpers/servername_test-bin-ssltestlib.o" => [ ".", "include" ], + "test/helpers/ssl_handshake_rtt_test-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/helpers/ssl_test-bin-handshake.o" => [ ".", "include" @@ -18873,6 +21899,10 @@ our %unified_info = ( ".", "include" ], + "test/helpers/tls13groupselection_test-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/hexstr_test" => [ ".", "include", @@ -18882,6 +21912,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/hpke_test" => [ + "include", + "apps/include" + ], "test/http_test" => [ "include", "apps/include" @@ -18894,6 +21928,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/json_test" => [ + "include", + "apps/include" + ], "test/keymgmt_internal_test" => [ ".", "include", @@ -18908,6 +21946,10 @@ our %unified_info = ( "apps/include", "." ], + "test/list_test" => [ + "include", + "apps/include" + ], "test/localetest" => [ "include", "apps/include" @@ -18921,10 +21963,27 @@ our %unified_info = ( "include", "apps/include" ], + "test/membio_test" => [ + "include", + "apps/include", + "." + ], "test/memleaktest" => [ "include", "apps/include" ], + "test/ml_dsa_test" => [ + "include", + "apps/include" + ], + "test/ml_kem_evp_extra_test" => [ + "include", + "apps/include" + ], + "test/ml_kem_internal_test" => [ + "include", + "apps/include" + ], "test/modes_internal_test" => [ ".", "include", @@ -18959,6 +22018,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/pairwise_fail_test" => [ + "include", + "apps/include" + ], "test/param_build_test" => [ "include", "apps/include" @@ -18992,6 +22055,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/pkcs12_api_test" => [ + "include", + "apps/include" + ], "test/pkcs12_format_test" => [ "include", "apps/include" @@ -19013,6 +22080,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/priority_queue_test" => [ + "include", + "apps/include" + ], "test/property_test" => [ ".", "include", @@ -19026,6 +22097,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/provider_default_search_path_test" => [ + "include", + "apps/include" + ], "test/provider_fallback_test" => [ "include", "apps/include" @@ -19052,6 +22127,97 @@ our %unified_info = ( "include", "apps/include" ], + "test/quic_ackm_test" => [ + "include", + "apps/include" + ], + "test/quic_cc_test" => [ + "include", + "apps/include" + ], + "test/quic_cfq_test" => [ + "include", + "apps/include" + ], + "test/quic_client_test" => [ + "include", + "apps/include" + ], + "test/quic_fc_test" => [ + "include", + "apps/include" + ], + "test/quic_fifd_test" => [ + "include", + "apps/include" + ], + "test/quic_lcidm_test" => [ + "include", + "apps/include" + ], + "test/quic_multistream_test" => [ + "include", + "apps/include" + ], + "test/quic_newcid_test" => [ + "include", + "apps/include", + "." + ], + "test/quic_qlog_test" => [ + "include", + "apps/include" + ], + "test/quic_radix_test" => [ + "include", + "apps/include" + ], + "test/quic_rcidm_test" => [ + "include", + "apps/include" + ], + "test/quic_record_test" => [ + "include", + "apps/include" + ], + "test/quic_srt_gen_test" => [ + "include", + "apps/include", + "." + ], + "test/quic_srtm_test" => [ + "include", + "apps/include" + ], + "test/quic_stream_test" => [ + "include", + "apps/include" + ], + "test/quic_tserver_test" => [ + "include", + "apps/include" + ], + "test/quic_txp_test" => [ + "include", + "apps/include" + ], + "test/quic_txpim_test" => [ + "include", + "apps/include" + ], + "test/quic_wire_test" => [ + "include", + "apps/include" + ], + "test/quicapitest" => [ + "include", + "apps/include" + ], + "test/quicfaultstest" => [ + "include", + "apps/include", + "." + ], "test/rand_status_test" => [ "include", "apps/include" @@ -19072,14 +22238,20 @@ our %unified_info = ( "include", "apps/include" ], - "test/rdrand_sanitytest" => [ + "test/rdcpu_sanitytest" => [ "include", - "apps/include" + "apps/include", + "crypto" ], "test/recordlentest" => [ "include", "apps/include" ], + "test/rpktest" => [ + "include", + "apps/include", + "." + ], "test/rsa_complex" => [ "include", "apps/include" @@ -19098,6 +22270,15 @@ our %unified_info = ( "include", "apps/include" ], + "test/rsa_x931_test" => [ + ".", + "include", + "apps/include" + ], + "test/safe_math_test" => [ + "include", + "apps/include" + ], "test/sanitytest" => [ "include", "apps/include" @@ -19119,6 +22300,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/slh_dsa_test" => [ + "include", + "apps/include" + ], "test/sm2_internal_test" => [ "include", "apps/include" @@ -19149,6 +22334,11 @@ our %unified_info = ( "include", "apps/include" ], + "test/ssl_handshake_rtt_test" => [ + "include", + "apps/include", + "." + ], "test/ssl_old_test" => [ ".", "include", @@ -19165,6 +22355,7 @@ our %unified_info = ( "test/sslapitest" => [ "include", "apps/include", + "providers/common/include", "." ], "test/sslbuffertest" => [ @@ -19179,6 +22370,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/strtoultest" => [ + "include", + "apps/include" + ], "test/sysdefaulttest" => [ "include", "apps/include" @@ -19187,7 +22382,13 @@ our %unified_info = ( "include", "apps/include" ], + "test/threadpool_test" => [ + ".", + "include", + "apps/include" + ], "test/threadstest" => [ + ".", "include", "apps/include" ], @@ -19199,6 +22400,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/time_test" => [ + "include", + "apps/include" + ], "test/tls13ccstest" => [ "include", "apps/include" @@ -19208,6 +22413,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/tls13groupselection_test" => [ + "include", + "apps/include" + ], "test/trace_api_test" => [ ".", "include", @@ -19246,6 +22455,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/x509_acert_test" => [ + "include", + "apps/include" + ], "test/x509_check_cert_pkey_test" => [ "include", "apps/include" @@ -19259,6 +22472,18 @@ our %unified_info = ( "include", "apps/include" ], + "test/x509_load_cert_file_test" => [ + "include", + "apps/include" + ], + "test/x509_req_test" => [ + "include", + "apps/include" + ], + "test/x509_test" => [ + "include", + "apps/include" + ], "test/x509_time_test" => [ "include", "apps/include" @@ -19280,6 +22505,7 @@ our %unified_info = ( "providers/libdefault.a", "providers/libfips.a", "providers/liblegacy.a", + "providers/libtemplate.a", "test/libtestutil.a" ], "mandocs" => { @@ -19332,6 +22558,7 @@ our %unified_info = ( "doc/man/man1/openssl-s_server.1", "doc/man/man1/openssl-s_time.1", "doc/man/man1/openssl-sess_id.1", + "doc/man/man1/openssl-skeyutl.1", "doc/man/man1/openssl-smime.1", "doc/man/man1/openssl-speed.1", "doc/man/man1/openssl-spkac.1", @@ -19381,6 +22608,7 @@ our %unified_info = ( "doc/man/man3/BIO_find_type.3", "doc/man/man3/BIO_get_data.3", "doc/man/man3/BIO_get_ex_new_index.3", + "doc/man/man3/BIO_get_rpoll_descriptor.3", "doc/man/man3/BIO_meth_new.3", "doc/man/man3/BIO_new.3", "doc/man/man3/BIO_new_CMS.3", @@ -19393,11 +22621,13 @@ our %unified_info = ( "doc/man/man3/BIO_s_connect.3", "doc/man/man3/BIO_s_core.3", "doc/man/man3/BIO_s_datagram.3", + "doc/man/man3/BIO_s_dgram_pair.3", "doc/man/man3/BIO_s_fd.3", "doc/man/man3/BIO_s_file.3", "doc/man/man3/BIO_s_mem.3", "doc/man/man3/BIO_s_null.3", "doc/man/man3/BIO_s_socket.3", + "doc/man/man3/BIO_sendmmsg.3", "doc/man/man3/BIO_set_callback.3", "doc/man/man3/BIO_should_retry.3", "doc/man/man3/BIO_socket_wait.3", @@ -19422,6 +22652,7 @@ our %unified_info = ( "doc/man/man3/BN_swap.3", "doc/man/man3/BN_zero.3", "doc/man/man3/BUF_MEM_new.3", + "doc/man/man3/CMAC_CTX.3", "doc/man/man3/CMS_EncryptedData_decrypt.3", "doc/man/man3/CMS_EncryptedData_encrypt.3", "doc/man/man3/CMS_EnvelopedData_create.3", @@ -19444,6 +22675,7 @@ our %unified_info = ( "doc/man/man3/CMS_uncompress.3", "doc/man/man3/CMS_verify.3", "doc/man/man3/CMS_verify_receipt.3", + "doc/man/man3/COMP_CTX_new.3", "doc/man/man3/CONF_modules_free.3", "doc/man/man3/CONF_modules_load_file.3", "doc/man/man3/CRYPTO_THREAD_run_once.3", @@ -19477,6 +22709,8 @@ our %unified_info = ( "doc/man/man3/DSA_size.3", "doc/man/man3/DTLS_get_data_mtu.3", "doc/man/man3/DTLS_set_timer_cb.3", + "doc/man/man3/DTLSv1_get_timeout.3", + "doc/man/man3/DTLSv1_handle_timeout.3", "doc/man/man3/DTLSv1_listen.3", "doc/man/man3/ECDSA_SIG_new.3", "doc/man/man3/ECDSA_sign.3", @@ -19523,6 +22757,7 @@ our %unified_info = ( "doc/man/man3/EVP_PKEY_CTX_ctrl.3", "doc/man/man3/EVP_PKEY_CTX_get0_libctx.3", "doc/man/man3/EVP_PKEY_CTX_get0_pkey.3", + "doc/man/man3/EVP_PKEY_CTX_get_algor.3", "doc/man/man3/EVP_PKEY_CTX_new.3", "doc/man/man3/EVP_PKEY_CTX_set1_pbe_pass.3", "doc/man/man3/EVP_PKEY_CTX_set_hkdf_md.3", @@ -19562,6 +22797,8 @@ our %unified_info = ( "doc/man/man3/EVP_PKEY_verify_recover.3", "doc/man/man3/EVP_RAND.3", "doc/man/man3/EVP_SIGNATURE.3", + "doc/man/man3/EVP_SKEY.3", + "doc/man/man3/EVP_SKEYMGMT.3", "doc/man/man3/EVP_SealInit.3", "doc/man/man3/EVP_SignInit.3", "doc/man/man3/EVP_VerifyInit.3", @@ -19591,6 +22828,7 @@ our %unified_info = ( "doc/man/man3/EVP_sm3.3", "doc/man/man3/EVP_sm4_cbc.3", "doc/man/man3/EVP_whirlpool.3", + "doc/man/man3/GENERAL_NAME.3", "doc/man/man3/HMAC.3", "doc/man/man3/MD5.3", "doc/man/man3/MDC2_Init.3", @@ -19615,14 +22853,18 @@ our %unified_info = ( "doc/man/man3/OPENSSL_init_ssl.3", "doc/man/man3/OPENSSL_instrument_bus.3", "doc/man/man3/OPENSSL_load_builtin_modules.3", + "doc/man/man3/OPENSSL_load_u16_le.3", "doc/man/man3/OPENSSL_malloc.3", + "doc/man/man3/OPENSSL_riscvcap.3", "doc/man/man3/OPENSSL_s390xcap.3", "doc/man/man3/OPENSSL_secure_malloc.3", "doc/man/man3/OPENSSL_strcasecmp.3", "doc/man/man3/OSSL_ALGORITHM.3", "doc/man/man3/OSSL_CALLBACK.3", + "doc/man/man3/OSSL_CMP_ATAV_set0.3", "doc/man/man3/OSSL_CMP_CTX_new.3", "doc/man/man3/OSSL_CMP_HDR_get0_transactionID.3", + "doc/man/man3/OSSL_CMP_ITAV_new_caCerts.3", "doc/man/man3/OSSL_CMP_ITAV_set0.3", "doc/man/man3/OSSL_CMP_MSG_get0_header.3", "doc/man/man3/OSSL_CMP_MSG_http_perform.3", @@ -19646,18 +22888,27 @@ our %unified_info = ( "doc/man/man3/OSSL_ENCODER_CTX.3", "doc/man/man3/OSSL_ENCODER_CTX_new_for_pkey.3", "doc/man/man3/OSSL_ENCODER_to_bio.3", + "doc/man/man3/OSSL_ERR_STATE_save.3", "doc/man/man3/OSSL_ESS_check_signing_certs.3", + "doc/man/man3/OSSL_GENERAL_NAMES_print.3", + "doc/man/man3/OSSL_HPKE_CTX_new.3", "doc/man/man3/OSSL_HTTP_REQ_CTX.3", "doc/man/man3/OSSL_HTTP_parse_url.3", "doc/man/man3/OSSL_HTTP_transfer.3", + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX.3", + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX_print.3", + "doc/man/man3/OSSL_INDICATOR_set_callback.3", "doc/man/man3/OSSL_ITEM.3", "doc/man/man3/OSSL_LIB_CTX.3", + "doc/man/man3/OSSL_LIB_CTX_set_conf_diagnostics.3", "doc/man/man3/OSSL_PARAM.3", "doc/man/man3/OSSL_PARAM_BLD.3", "doc/man/man3/OSSL_PARAM_allocate_from_text.3", "doc/man/man3/OSSL_PARAM_dup.3", "doc/man/man3/OSSL_PARAM_int.3", + "doc/man/man3/OSSL_PARAM_print_to_bio.3", "doc/man/man3/OSSL_PROVIDER.3", + "doc/man/man3/OSSL_QUIC_client_method.3", "doc/man/man3/OSSL_SELF_TEST_new.3", "doc/man/man3/OSSL_SELF_TEST_set_callback.3", "doc/man/man3/OSSL_STORE_INFO.3", @@ -19666,11 +22917,13 @@ our %unified_info = ( "doc/man/man3/OSSL_STORE_attach.3", "doc/man/man3/OSSL_STORE_expect.3", "doc/man/man3/OSSL_STORE_open.3", + "doc/man/man3/OSSL_sleep.3", "doc/man/man3/OSSL_trace_enabled.3", "doc/man/man3/OSSL_trace_get_category_num.3", "doc/man/man3/OSSL_trace_set_channel.3", "doc/man/man3/OpenSSL_add_all_algorithms.3", "doc/man/man3/OpenSSL_version.3", + "doc/man/man3/PBMAC1_get1_pbkdf2_param.3", "doc/man/man3/PEM_X509_INFO_read_bio_ex.3", "doc/man/man3/PEM_bytes_read_bio.3", "doc/man/man3/PEM_read.3", @@ -19683,6 +22936,7 @@ our %unified_info = ( "doc/man/man3/PKCS12_SAFEBAG_create_cert.3", "doc/man/man3/PKCS12_SAFEBAG_get0_attrs.3", "doc/man/man3/PKCS12_SAFEBAG_get1_cert.3", + "doc/man/man3/PKCS12_SAFEBAG_set0_attrs.3", "doc/man/man3/PKCS12_add1_attr_by_NID.3", "doc/man/man3/PKCS12_add_CSPName_asc.3", "doc/man/man3/PKCS12_add_cert.3", @@ -19774,6 +23028,7 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_sess_set_get_cb.3", "doc/man/man3/SSL_CTX_sessions.3", "doc/man/man3/SSL_CTX_set0_CA_list.3", + "doc/man/man3/SSL_CTX_set1_cert_comp_preference.3", "doc/man/man3/SSL_CTX_set1_curves.3", "doc/man/man3/SSL_CTX_set1_sigalgs.3", "doc/man/man3/SSL_CTX_set1_verify_cert_store.3", @@ -19787,6 +23042,7 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_ct_validation_callback.3", "doc/man/man3/SSL_CTX_set_ctlog_list_file.3", "doc/man/man3/SSL_CTX_set_default_passwd_cb.3", + "doc/man/man3/SSL_CTX_set_domain_flags.3", "doc/man/man3/SSL_CTX_set_generate_session_id.3", "doc/man/man3/SSL_CTX_set_info_callback.3", "doc/man/man3/SSL_CTX_set_keylog_callback.3", @@ -19794,6 +23050,7 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_min_proto_version.3", "doc/man/man3/SSL_CTX_set_mode.3", "doc/man/man3/SSL_CTX_set_msg_callback.3", + "doc/man/man3/SSL_CTX_set_new_pending_conn_cb.3", "doc/man/man3/SSL_CTX_set_num_tickets.3", "doc/man/man3/SSL_CTX_set_options.3", "doc/man/man3/SSL_CTX_set_psk_client_callback.3", @@ -19832,6 +23089,7 @@ our %unified_info = ( "doc/man/man3/SSL_SESSION_print.3", "doc/man/man3/SSL_SESSION_set1_id.3", "doc/man/man3/SSL_accept.3", + "doc/man/man3/SSL_accept_stream.3", "doc/man/man3/SSL_alert_type_string.3", "doc/man/man3/SSL_alloc_buffers.3", "doc/man/man3/SSL_check_chain.3", @@ -19841,59 +23099,90 @@ our %unified_info = ( "doc/man/man3/SSL_export_keying_material.3", "doc/man/man3/SSL_extension_supported.3", "doc/man/man3/SSL_free.3", + "doc/man/man3/SSL_get0_connection.3", + "doc/man/man3/SSL_get0_group_name.3", + "doc/man/man3/SSL_get0_peer_rpk.3", "doc/man/man3/SSL_get0_peer_scts.3", + "doc/man/man3/SSL_get1_builtin_sigalgs.3", "doc/man/man3/SSL_get_SSL_CTX.3", "doc/man/man3/SSL_get_all_async_fds.3", "doc/man/man3/SSL_get_certificate.3", "doc/man/man3/SSL_get_ciphers.3", "doc/man/man3/SSL_get_client_random.3", + "doc/man/man3/SSL_get_conn_close_info.3", "doc/man/man3/SSL_get_current_cipher.3", "doc/man/man3/SSL_get_default_timeout.3", "doc/man/man3/SSL_get_error.3", + "doc/man/man3/SSL_get_event_timeout.3", "doc/man/man3/SSL_get_extms_support.3", "doc/man/man3/SSL_get_fd.3", + "doc/man/man3/SSL_get_handshake_rtt.3", "doc/man/man3/SSL_get_peer_cert_chain.3", "doc/man/man3/SSL_get_peer_certificate.3", "doc/man/man3/SSL_get_peer_signature_nid.3", "doc/man/man3/SSL_get_peer_tmp_key.3", "doc/man/man3/SSL_get_psk_identity.3", "doc/man/man3/SSL_get_rbio.3", + "doc/man/man3/SSL_get_rpoll_descriptor.3", "doc/man/man3/SSL_get_session.3", "doc/man/man3/SSL_get_shared_sigalgs.3", + "doc/man/man3/SSL_get_stream_id.3", + "doc/man/man3/SSL_get_stream_read_state.3", + "doc/man/man3/SSL_get_value_uint.3", "doc/man/man3/SSL_get_verify_result.3", "doc/man/man3/SSL_get_version.3", "doc/man/man3/SSL_group_to_name.3", + "doc/man/man3/SSL_handle_events.3", "doc/man/man3/SSL_in_init.3", + "doc/man/man3/SSL_inject_net_dgram.3", "doc/man/man3/SSL_key_update.3", "doc/man/man3/SSL_library_init.3", "doc/man/man3/SSL_load_client_CA_file.3", "doc/man/man3/SSL_new.3", + "doc/man/man3/SSL_new_domain.3", + "doc/man/man3/SSL_new_listener.3", + "doc/man/man3/SSL_new_stream.3", "doc/man/man3/SSL_pending.3", + "doc/man/man3/SSL_poll.3", "doc/man/man3/SSL_read.3", "doc/man/man3/SSL_read_early_data.3", "doc/man/man3/SSL_rstate_string.3", "doc/man/man3/SSL_session_reused.3", "doc/man/man3/SSL_set1_host.3", + "doc/man/man3/SSL_set1_initial_peer_addr.3", + "doc/man/man3/SSL_set1_server_cert_type.3", "doc/man/man3/SSL_set_async_callback.3", "doc/man/man3/SSL_set_bio.3", + "doc/man/man3/SSL_set_blocking_mode.3", "doc/man/man3/SSL_set_connect_state.3", + "doc/man/man3/SSL_set_default_stream_mode.3", "doc/man/man3/SSL_set_fd.3", + "doc/man/man3/SSL_set_incoming_stream_policy.3", + "doc/man/man3/SSL_set_quic_tls_cbs.3", "doc/man/man3/SSL_set_retry_verify.3", "doc/man/man3/SSL_set_session.3", + "doc/man/man3/SSL_set_session_secret_cb.3", "doc/man/man3/SSL_set_shutdown.3", "doc/man/man3/SSL_set_verify_result.3", "doc/man/man3/SSL_shutdown.3", "doc/man/man3/SSL_state_string.3", + "doc/man/man3/SSL_stream_conclude.3", + "doc/man/man3/SSL_stream_reset.3", "doc/man/man3/SSL_want.3", "doc/man/man3/SSL_write.3", "doc/man/man3/TS_RESP_CTX_new.3", - "doc/man/man3/TS_VERIFY_CTX_set_certs.3", + "doc/man/man3/TS_VERIFY_CTX.3", "doc/man/man3/UI_STRING.3", "doc/man/man3/UI_UTIL_read_pw.3", "doc/man/man3/UI_create_method.3", "doc/man/man3/UI_new.3", "doc/man/man3/X509V3_get_d2i.3", "doc/man/man3/X509V3_set_ctx.3", + "doc/man/man3/X509_ACERT_add1_attr.3", + "doc/man/man3/X509_ACERT_add_attr_nconf.3", + "doc/man/man3/X509_ACERT_get0_holder_baseCertId.3", + "doc/man/man3/X509_ACERT_get_attr.3", + "doc/man/man3/X509_ACERT_print_ex.3", "doc/man/man3/X509_ALGOR_dup.3", "doc/man/man3/X509_ATTRIBUTE.3", "doc/man/man3/X509_CRL_get0_by_serial.3", @@ -19910,6 +23199,7 @@ our %unified_info = ( "doc/man/man3/X509_REQ_get_attr.3", "doc/man/man3/X509_REQ_get_extensions.3", "doc/man/man3/X509_SIG_get0.3", + "doc/man/man3/X509_STORE_CTX_get_by_subject.3", "doc/man/man3/X509_STORE_CTX_get_error.3", "doc/man/man3/X509_STORE_CTX_new.3", "doc/man/man3/X509_STORE_CTX_set_verify_cb.3", @@ -19932,6 +23222,7 @@ our %unified_info = ( "doc/man/man3/X509_get0_notBefore.3", "doc/man/man3/X509_get0_signature.3", "doc/man/man3/X509_get0_uids.3", + "doc/man/man3/X509_get_default_cert_file.3", "doc/man/man3/X509_get_extension_flags.3", "doc/man/man3/X509_get_pubkey.3", "doc/man/man3/X509_get_serialNumber.3", @@ -19977,12 +23268,15 @@ our %unified_info = ( "doc/man/man7/EVP_CIPHER-RC5.7", "doc/man/man7/EVP_CIPHER-SEED.7", "doc/man/man7/EVP_CIPHER-SM4.7", + "doc/man/man7/EVP_KDF-ARGON2.7", "doc/man/man7/EVP_KDF-HKDF.7", + "doc/man/man7/EVP_KDF-HMAC-DRBG.7", "doc/man/man7/EVP_KDF-KB.7", "doc/man/man7/EVP_KDF-KRB5KDF.7", "doc/man/man7/EVP_KDF-PBKDF1.7", "doc/man/man7/EVP_KDF-PBKDF2.7", "doc/man/man7/EVP_KDF-PKCS12KDF.7", + "doc/man/man7/EVP_KDF-PVKKDF.7", "doc/man/man7/EVP_KDF-SCRYPT.7", "doc/man/man7/EVP_KDF-SS.7", "doc/man/man7/EVP_KDF-SSHKDF.7", @@ -19991,7 +23285,10 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-X942-ASN1.7", "doc/man/man7/EVP_KDF-X942-CONCAT.7", "doc/man/man7/EVP_KDF-X963.7", + "doc/man/man7/EVP_KEM-EC.7", + "doc/man/man7/EVP_KEM-ML-KEM.7", "doc/man/man7/EVP_KEM-RSA.7", + "doc/man/man7/EVP_KEM-X25519.7", "doc/man/man7/EVP_KEYEXCH-DH.7", "doc/man/man7/EVP_KEYEXCH-ECDH.7", "doc/man/man7/EVP_KEYEXCH-X25519.7", @@ -20003,6 +23300,7 @@ our %unified_info = ( "doc/man/man7/EVP_MAC-Poly1305.7", "doc/man/man7/EVP_MAC-Siphash.7", "doc/man/man7/EVP_MD-BLAKE2.7", + "doc/man/man7/EVP_MD-KECCAK.7", "doc/man/man7/EVP_MD-MD2.7", "doc/man/man7/EVP_MD-MD4.7", "doc/man/man7/EVP_MD-MD5-SHA1.7", @@ -20022,12 +23320,17 @@ our %unified_info = ( "doc/man/man7/EVP_PKEY-EC.7", "doc/man/man7/EVP_PKEY-FFC.7", "doc/man/man7/EVP_PKEY-HMAC.7", + "doc/man/man7/EVP_PKEY-ML-DSA.7", + "doc/man/man7/EVP_PKEY-ML-KEM.7", "doc/man/man7/EVP_PKEY-RSA.7", + "doc/man/man7/EVP_PKEY-SLH-DSA.7", "doc/man/man7/EVP_PKEY-SM2.7", "doc/man/man7/EVP_PKEY-X25519.7", + "doc/man/man7/EVP_RAND-CRNG-TEST.7", "doc/man/man7/EVP_RAND-CTR-DRBG.7", "doc/man/man7/EVP_RAND-HASH-DRBG.7", "doc/man/man7/EVP_RAND-HMAC-DRBG.7", + "doc/man/man7/EVP_RAND-JITTER.7", "doc/man/man7/EVP_RAND-SEED-SRC.7", "doc/man/man7/EVP_RAND-TEST-RAND.7", "doc/man/man7/EVP_RAND.7", @@ -20035,17 +23338,19 @@ our %unified_info = ( "doc/man/man7/EVP_SIGNATURE-ECDSA.7", "doc/man/man7/EVP_SIGNATURE-ED25519.7", "doc/man/man7/EVP_SIGNATURE-HMAC.7", + "doc/man/man7/EVP_SIGNATURE-ML-DSA.7", "doc/man/man7/EVP_SIGNATURE-RSA.7", + "doc/man/man7/EVP_SIGNATURE-SLH-DSA.7", "doc/man/man7/OSSL_PROVIDER-FIPS.7", "doc/man/man7/OSSL_PROVIDER-base.7", "doc/man/man7/OSSL_PROVIDER-default.7", "doc/man/man7/OSSL_PROVIDER-legacy.7", "doc/man/man7/OSSL_PROVIDER-null.7", + "doc/man/man7/OSSL_STORE-winstore.7", "doc/man/man7/RAND.7", "doc/man/man7/RSA-PSS.7", "doc/man/man7/X25519.7", "doc/man/man7/bio.7", - "doc/man/man7/crypto.7", "doc/man/man7/ct.7", "doc/man/man7/des_modes.7", "doc/man/man7/evp.7", @@ -20056,14 +23361,31 @@ our %unified_info = ( "doc/man/man7/life_cycle-mac.7", "doc/man/man7/life_cycle-pkey.7", "doc/man/man7/life_cycle-rand.7", - "doc/man/man7/migration_guide.7", "doc/man/man7/openssl-core.h.7", "doc/man/man7/openssl-core_dispatch.h.7", "doc/man/man7/openssl-core_names.h.7", "doc/man/man7/openssl-env.7", "doc/man/man7/openssl-glossary.7", + "doc/man/man7/openssl-qlog.7", + "doc/man/man7/openssl-quic-concurrency.7", + "doc/man/man7/openssl-quic.7", "doc/man/man7/openssl-threads.7", "doc/man/man7/openssl_user_macros.7", + "doc/man/man7/ossl-guide-introduction.7", + "doc/man/man7/ossl-guide-libcrypto-introduction.7", + "doc/man/man7/ossl-guide-libraries-introduction.7", + "doc/man/man7/ossl-guide-libssl-introduction.7", + "doc/man/man7/ossl-guide-migration.7", + "doc/man/man7/ossl-guide-quic-client-block.7", + "doc/man/man7/ossl-guide-quic-client-non-block.7", + "doc/man/man7/ossl-guide-quic-introduction.7", + "doc/man/man7/ossl-guide-quic-multi-stream.7", + "doc/man/man7/ossl-guide-quic-server-block.7", + "doc/man/man7/ossl-guide-quic-server-non-block.7", + "doc/man/man7/ossl-guide-tls-client-block.7", + "doc/man/man7/ossl-guide-tls-client-non-block.7", + "doc/man/man7/ossl-guide-tls-introduction.7", + "doc/man/man7/ossl-guide-tls-server-block.7", "doc/man/man7/ossl_store-file.7", "doc/man/man7/ossl_store.7", "doc/man/man7/passphrase-encoding.7", @@ -20082,10 +23404,10 @@ our %unified_info = ( "doc/man/man7/provider-object.7", "doc/man/man7/provider-rand.7", "doc/man/man7/provider-signature.7", + "doc/man/man7/provider-skeymgmt.7", "doc/man/man7/provider-storemgmt.7", "doc/man/man7/provider.7", "doc/man/man7/proxy-certificates.7", - "doc/man/man7/ssl.7", "doc/man/man7/x509.7" ] }, @@ -20097,6 +23419,7 @@ our %unified_info = ( ], "programs" => [ "apps/openssl", + "fuzz/acert-test", "fuzz/asn1-test", "fuzz/asn1parse-test", "fuzz/bignum-test", @@ -20107,7 +23430,24 @@ our %unified_info = ( "fuzz/conf-test", "fuzz/crl-test", "fuzz/ct-test", + "fuzz/decoder-test", + "fuzz/dtlsclient-test", + "fuzz/dtlsserver-test", + "fuzz/hashtable-test", + "fuzz/ml-dsa-test", + "fuzz/ml-kem-test", + "fuzz/pem-test", + "fuzz/provider-test", + "fuzz/punycode-test", + "fuzz/quic-client-test", + "fuzz/quic-lcidm-test", + "fuzz/quic-rcidm-test", + "fuzz/quic-server-test", + "fuzz/quic-srtm-test", "fuzz/server-test", + "fuzz/slh-dsa-test", + "fuzz/smime-test", + "fuzz/v3name-test", "fuzz/x509-test", "test/aborttest", "test/acvp_test", @@ -20125,21 +23465,28 @@ our %unified_info = ( "test/asynctest", "test/bad_dtls_test", "test/bftest", + "test/bio_addr_test", + "test/bio_base64_test", "test/bio_callback_test", "test/bio_core_test", + "test/bio_dgram_test", "test/bio_enc_test", "test/bio_memleak_test", + "test/bio_meth_test", "test/bio_prefix_text", "test/bio_pw_callback_test", "test/bio_readbuffer_test", + "test/bio_tfo_test", "test/bioprinttest", "test/bn_internal_test", "test/bntest", + "test/build_wincrypt_test", "test/buildtest_c_aes", "test/buildtest_c_async", "test/buildtest_c_blowfish", "test/buildtest_c_bn", "test/buildtest_c_buffer", + "test/buildtest_c_byteorder", "test/buildtest_c_camellia", "test/buildtest_c_cast", "test/buildtest_c_cmac", @@ -20148,7 +23495,6 @@ our %unified_info = ( "test/buildtest_c_conftypes", "test/buildtest_c_core", "test/buildtest_c_core_dispatch", - "test/buildtest_c_core_names", "test/buildtest_c_core_object", "test/buildtest_c_cryptoerr_legacy", "test/buildtest_c_decoder", @@ -20157,6 +23503,7 @@ our %unified_info = ( "test/buildtest_c_dsa", "test/buildtest_c_dtls1", "test/buildtest_c_e_os2", + "test/buildtest_c_e_ostime", "test/buildtest_c_ebcdic", "test/buildtest_c_ec", "test/buildtest_c_ecdh", @@ -20166,13 +23513,16 @@ our %unified_info = ( "test/buildtest_c_evp", "test/buildtest_c_fips_names", "test/buildtest_c_hmac", + "test/buildtest_c_hpke", "test/buildtest_c_http", "test/buildtest_c_idea", + "test/buildtest_c_indicator", "test/buildtest_c_kdf", "test/buildtest_c_macros", "test/buildtest_c_md4", "test/buildtest_c_md5", "test/buildtest_c_mdc2", + "test/buildtest_c_ml_kem", "test/buildtest_c_modes", "test/buildtest_c_obj_mac", "test/buildtest_c_objects", @@ -20183,6 +23533,7 @@ our %unified_info = ( "test/buildtest_c_pem2", "test/buildtest_c_prov_ssl", "test/buildtest_c_provider", + "test/buildtest_c_quic", "test/buildtest_c_rand", "test/buildtest_c_rc2", "test/buildtest_c_rc4", @@ -20197,11 +23548,14 @@ our %unified_info = ( "test/buildtest_c_stack", "test/buildtest_c_store", "test/buildtest_c_symhacks", + "test/buildtest_c_thread", "test/buildtest_c_tls1", "test/buildtest_c_ts", "test/buildtest_c_txt_db", "test/buildtest_c_types", "test/buildtest_c_whrlpool", + "test/byteorder_test", + "test/ca_internals_test", "test/casttest", "test/chacha_internal_test", "test/cipher_overhead_test", @@ -20230,6 +23584,7 @@ our %unified_info = ( "test/curve448_internal_test", "test/d2i_test", "test/danetest", + "test/decoder_propq_test", "test/defltfips_test", "test/destest", "test/dhtest", @@ -20254,9 +23609,12 @@ our %unified_info = ( "test/evp_kdf_test", "test/evp_libctx_test", "test/evp_pkey_ctx_new_from_name", + "test/evp_pkey_dhkem_test", "test/evp_pkey_dparams_test", "test/evp_pkey_provided_test", + "test/evp_skey_test", "test/evp_test", + "test/evp_xof_test", "test/exdatatest", "test/exptest", "test/ext_internal_test", @@ -20266,21 +23624,29 @@ our %unified_info = ( "test/gmdifftest", "test/hexstr_test", "test/hmactest", + "test/hpke_test", "test/http_test", "test/ideatest", "test/igetest", + "test/json_test", "test/keymgmt_internal_test", "test/lhash_test", + "test/list_test", "test/localetest", "test/mdc2_internal_test", "test/mdc2test", + "test/membio_test", "test/memleaktest", + "test/ml_dsa_test", + "test/ml_kem_evp_extra_test", + "test/ml_kem_internal_test", "test/modes_internal_test", "test/namemap_internal_test", "test/nodefltctxtest", "test/ocspapitest", "test/ossl_store_test", "test/packettest", + "test/pairwise_fail_test", "test/param_build_test", "test/params_api_test", "test/params_conversion_test", @@ -20289,36 +23655,65 @@ our %unified_info = ( "test/pbetest", "test/pem_read_depr_test", "test/pemtest", + "test/pkcs12_api_test", "test/pkcs12_format_test", "test/pkcs7_test", "test/pkey_meth_kdf_test", "test/pkey_meth_test", "test/poly1305_internal_test", + "test/priority_queue_test", "test/property_test", "test/prov_config_test", "test/provfetchtest", + "test/provider_default_search_path_test", "test/provider_fallback_test", "test/provider_internal_test", "test/provider_pkey_test", "test/provider_status_test", "test/provider_test", "test/punycode_test", + "test/quic_ackm_test", + "test/quic_cc_test", + "test/quic_cfq_test", + "test/quic_client_test", + "test/quic_fc_test", + "test/quic_fifd_test", + "test/quic_lcidm_test", + "test/quic_multistream_test", + "test/quic_newcid_test", + "test/quic_qlog_test", + "test/quic_radix_test", + "test/quic_rcidm_test", + "test/quic_record_test", + "test/quic_srt_gen_test", + "test/quic_srtm_test", + "test/quic_stream_test", + "test/quic_tserver_test", + "test/quic_txp_test", + "test/quic_txpim_test", + "test/quic_wire_test", + "test/quicapitest", + "test/quicfaultstest", "test/rand_status_test", "test/rand_test", "test/rc2test", "test/rc4test", "test/rc5test", - "test/rdrand_sanitytest", + "test/rdcpu_sanitytest", "test/recordlentest", + "test/rpktest", "test/rsa_complex", "test/rsa_mp_test", "test/rsa_sp800_56b_test", "test/rsa_test", + "test/rsa_x931_test", + "test/safe_math_test", "test/sanitytest", "test/secmemtest", "test/servername_test", "test/sha_test", "test/siphash_internal_test", + "test/slh_dsa_test", "test/sm2_internal_test", "test/sm3_internal_test", "test/sm4_internal_test", @@ -20326,6 +23721,7 @@ our %unified_info = ( "test/srptest", "test/ssl_cert_table_internal_test", "test/ssl_ctx_test", + "test/ssl_handshake_rtt_test", "test/ssl_old_test", "test/ssl_test", "test/ssl_test_ctx_test", @@ -20333,13 +23729,17 @@ our %unified_info = ( "test/sslbuffertest", "test/sslcorrupttest", "test/stack_test", + "test/strtoultest", "test/sysdefaulttest", "test/test_test", + "test/threadpool_test", "test/threadstest", "test/threadstest_fips", "test/time_offset_test", + "test/time_test", "test/tls13ccstest", "test/tls13encryptiontest", + "test/tls13groupselection_test", "test/trace_api_test", "test/uitest", "test/upcallstest", @@ -20349,9 +23749,13 @@ our %unified_info = ( "test/verify_extra_test", "test/versions", "test/wpackettest", + "test/x509_acert_test", "test/x509_check_cert_pkey_test", "test/x509_dup_cert_test", "test/x509_internal_test", + "test/x509_load_cert_file_test", + "test/x509_req_test", + "test/x509_test", "test/x509_time_test", "test/x509aux" ], @@ -20367,6 +23771,33 @@ our %unified_info = ( "apps/CA.pl" => [ "apps/CA.pl.in" ], + "apps/ca_internals_test-bin-ca.o" => [ + "apps/ca.c" + ], + "apps/lib/ca_internals_test-bin-app_libctx.o" => [ + "apps/lib/app_libctx.c" + ], + "apps/lib/ca_internals_test-bin-app_provider.o" => [ + "apps/lib/app_provider.c" + ], + "apps/lib/ca_internals_test-bin-app_rand.o" => [ + "apps/lib/app_rand.c" + ], + "apps/lib/ca_internals_test-bin-app_x509.o" => [ + "apps/lib/app_x509.c" + ], + "apps/lib/ca_internals_test-bin-apps.o" => [ + "apps/lib/apps.c" + ], + "apps/lib/ca_internals_test-bin-apps_ui.o" => [ + "apps/lib/apps_ui.c" + ], + "apps/lib/ca_internals_test-bin-engine.o" => [ + "apps/lib/engine.c" + ], + "apps/lib/ca_internals_test-bin-fmt.o" => [ + "apps/lib/fmt.c" + ], "apps/lib/cmp_client_test-bin-cmp_mock_srv.o" => [ "apps/lib/cmp_mock_srv.c" ], @@ -20388,6 +23819,9 @@ our %unified_info = ( "apps/lib/libapps-lib-apps.o" => [ "apps/lib/apps.c" ], + "apps/lib/libapps-lib-apps_opt_printf.o" => [ + "apps/lib/apps_opt_printf.c" + ], "apps/lib/libapps-lib-apps_ui.o" => [ "apps/lib/apps_ui.c" ], @@ -20406,6 +23840,9 @@ our %unified_info = ( "apps/lib/libapps-lib-http_server.o" => [ "apps/lib/http_server.c" ], + "apps/lib/libapps-lib-log.o" => [ + "apps/lib/log.c" + ], "apps/lib/libapps-lib-names.o" => [ "apps/lib/names.c" ], @@ -20437,12 +23874,14 @@ our %unified_info = ( "apps/lib/libapps-lib-app_rand.o", "apps/lib/libapps-lib-app_x509.o", "apps/lib/libapps-lib-apps.o", + "apps/lib/libapps-lib-apps_opt_printf.o", "apps/lib/libapps-lib-apps_ui.o", "apps/lib/libapps-lib-columns.o", "apps/lib/libapps-lib-engine.o", "apps/lib/libapps-lib-engine_loader.o", "apps/lib/libapps-lib-fmt.o", "apps/lib/libapps-lib-http_server.o", + "apps/lib/libapps-lib-log.o", "apps/lib/libapps-lib-names.o", "apps/lib/libapps-lib-opt.o", "apps/lib/libapps-lib-s_cb.o", @@ -20496,6 +23935,7 @@ our %unified_info = ( "apps/openssl-bin-s_server.o", "apps/openssl-bin-s_time.o", "apps/openssl-bin-sess_id.o", + "apps/openssl-bin-skeyutl.o", "apps/openssl-bin-smime.o", "apps/openssl-bin-speed.o", "apps/openssl-bin-spkac.o", @@ -20641,6 +24081,9 @@ our %unified_info = ( "apps/openssl-bin-sess_id.o" => [ "apps/sess_id.c" ], + "apps/openssl-bin-skeyutl.o" => [ + "apps/skeyutl.c" + ], "apps/openssl-bin-smime.o" => [ "apps/smime.c" ], @@ -20710,6 +24153,12 @@ our %unified_info = ( "crypto/aria/libcrypto-lib-aria.o" => [ "crypto/aria/aria.c" ], + "crypto/asn1/asn1_time_test-bin-a_time.o" => [ + "crypto/asn1/a_time.c" + ], + "crypto/asn1/ca_internals_test-bin-a_time.o" => [ + "crypto/asn1/a_time.c" + ], "crypto/asn1/libcrypto-lib-a_bitstr.o" => [ "crypto/asn1/a_bitstr.c" ], @@ -20902,6 +24351,9 @@ our %unified_info = ( "crypto/asn1/libcrypto-lib-x_val.o" => [ "crypto/asn1/x_val.c" ], + "crypto/asn1_time_test-bin-ctype.o" => [ + "crypto/ctype.c" + ], "crypto/async/arch/libcrypto-lib-async_null.o" => [ "crypto/async/arch/async_null.c" ], @@ -20995,6 +24447,9 @@ our %unified_info = ( "crypto/bio/libcrypto-lib-bss_dgram.o" => [ "crypto/bio/bss_dgram.c" ], + "crypto/bio/libcrypto-lib-bss_dgram_pair.o" => [ + "crypto/bio/bss_dgram_pair.c" + ], "crypto/bio/libcrypto-lib-bss_fd.o" => [ "crypto/bio/bss_fd.c" ], @@ -21208,6 +24663,9 @@ our %unified_info = ( "crypto/buffer/libfips-lib-buffer.o" => [ "crypto/buffer/buffer.c" ], + "crypto/ca_internals_test-bin-ctype.o" => [ + "crypto/ctype.c" + ], "crypto/camellia/libcrypto-lib-camellia.o" => [ "crypto/camellia/camellia.c" ], @@ -21265,6 +24723,9 @@ our %unified_info = ( "crypto/cmp/libcrypto-lib-cmp_err.o" => [ "crypto/cmp/cmp_err.c" ], + "crypto/cmp/libcrypto-lib-cmp_genm.o" => [ + "crypto/cmp/cmp_genm.c" + ], "crypto/cmp/libcrypto-lib-cmp_hdr.o" => [ "crypto/cmp/cmp_hdr.c" ], @@ -21940,9 +25401,15 @@ our %unified_info = ( "crypto/err/libcrypto-lib-err_blocks.o" => [ "crypto/err/err_blocks.c" ], + "crypto/err/libcrypto-lib-err_mark.o" => [ + "crypto/err/err_mark.c" + ], "crypto/err/libcrypto-lib-err_prn.o" => [ "crypto/err/err_prn.c" ], + "crypto/err/libcrypto-lib-err_save.o" => [ + "crypto/err/err_save.c" + ], "crypto/ess/libcrypto-lib-ess_asn1.o" => [ "crypto/ess/ess_asn1.c" ], @@ -22189,9 +25656,15 @@ our %unified_info = ( "crypto/evp/libcrypto-lib-pmeth_lib.o" => [ "crypto/evp/pmeth_lib.c" ], + "crypto/evp/libcrypto-lib-s_lib.o" => [ + "crypto/evp/s_lib.c" + ], "crypto/evp/libcrypto-lib-signature.o" => [ "crypto/evp/signature.c" ], + "crypto/evp/libcrypto-lib-skeymgmt_meth.o" => [ + "crypto/evp/skeymgmt_meth.c" + ], "crypto/evp/libfips-lib-asymcipher.o" => [ "crypto/evp/asymcipher.c" ], @@ -22237,9 +25710,6 @@ our %unified_info = ( "crypto/evp/libfips-lib-keymgmt_meth.o" => [ "crypto/evp/keymgmt_meth.c" ], - "crypto/evp/libfips-lib-m_sigver.o" => [ - "crypto/evp/m_sigver.c" - ], "crypto/evp/libfips-lib-mac_lib.o" => [ "crypto/evp/mac_lib.c" ], @@ -22258,9 +25728,15 @@ our %unified_info = ( "crypto/evp/libfips-lib-pmeth_lib.o" => [ "crypto/evp/pmeth_lib.c" ], + "crypto/evp/libfips-lib-s_lib.o" => [ + "crypto/evp/s_lib.c" + ], "crypto/evp/libfips-lib-signature.o" => [ "crypto/evp/signature.c" ], + "crypto/evp/libfips-lib-skeymgmt_meth.o" => [ + "crypto/evp/skeymgmt_meth.c" + ], "crypto/ffc/libcrypto-lib-ffc_backend.o" => [ "crypto/ffc/ffc_backend.c" ], @@ -22303,12 +25779,30 @@ our %unified_info = ( "crypto/ffc/libfips-lib-ffc_params_validate.o" => [ "crypto/ffc/ffc_params_validate.c" ], + "crypto/hashtable/libcrypto-lib-hashfunc.o" => [ + "crypto/hashtable/hashfunc.c" + ], + "crypto/hashtable/libcrypto-lib-hashtable.o" => [ + "crypto/hashtable/hashtable.c" + ], + "crypto/hashtable/libfips-lib-hashfunc.o" => [ + "crypto/hashtable/hashfunc.c" + ], + "crypto/hashtable/libfips-lib-hashtable.o" => [ + "crypto/hashtable/hashtable.c" + ], "crypto/hmac/libcrypto-lib-hmac.o" => [ "crypto/hmac/hmac.c" ], "crypto/hmac/libfips-lib-hmac.o" => [ "crypto/hmac/hmac.c" ], + "crypto/hpke/libcrypto-lib-hpke.o" => [ + "crypto/hpke/hpke.c" + ], + "crypto/hpke/libcrypto-lib-hpke_util.o" => [ + "crypto/hpke/hpke_util.c" + ], "crypto/http/libcrypto-lib-http_client.o" => [ "crypto/http/http_client.c" ], @@ -22351,6 +25845,9 @@ our %unified_info = ( "crypto/libcrypto-lib-bsearch.o" => [ "crypto/bsearch.c" ], + "crypto/libcrypto-lib-comp_methods.o" => [ + "crypto/comp_methods.c" + ], "crypto/libcrypto-lib-context.o" => [ "crypto/context.c" ], @@ -22378,9 +25875,15 @@ our %unified_info = ( "crypto/libcrypto-lib-cversion.o" => [ "crypto/cversion.c" ], + "crypto/libcrypto-lib-defaults.o" => [ + "crypto/defaults.c" + ], "crypto/libcrypto-lib-der_writer.o" => [ "crypto/der_writer.c" ], + "crypto/libcrypto-lib-deterministic_nonce.o" => [ + "crypto/deterministic_nonce.c" + ], "crypto/libcrypto-lib-ebcdic.o" => [ "crypto/ebcdic.c" ], @@ -22390,6 +25893,9 @@ our %unified_info = ( "crypto/libcrypto-lib-getenv.o" => [ "crypto/getenv.c" ], + "crypto/libcrypto-lib-indicator_core.o" => [ + "crypto/indicator_core.c" + ], "crypto/libcrypto-lib-info.o" => [ "crypto/info.c" ], @@ -22441,6 +25947,9 @@ our %unified_info = ( "crypto/libcrypto-lib-params_from_text.o" => [ "crypto/params_from_text.c" ], + "crypto/libcrypto-lib-params_idx.o" => [ + "crypto/params_idx.c" + ], "crypto/libcrypto-lib-passphrase.o" => [ "crypto/passphrase.c" ], @@ -22462,12 +25971,21 @@ our %unified_info = ( "crypto/libcrypto-lib-punycode.o" => [ "crypto/punycode.c" ], + "crypto/libcrypto-lib-quic_vlint.o" => [ + "crypto/quic_vlint.c" + ], "crypto/libcrypto-lib-self_test_core.o" => [ "crypto/self_test_core.c" ], + "crypto/libcrypto-lib-sleep.o" => [ + "crypto/sleep.c" + ], "crypto/libcrypto-lib-sparse_array.o" => [ "crypto/sparse_array.c" ], + "crypto/libcrypto-lib-ssl_err.o" => [ + "crypto/ssl_err.c" + ], "crypto/libcrypto-lib-threads_lib.o" => [ "crypto/threads_lib.c" ], @@ -22480,6 +25998,9 @@ our %unified_info = ( "crypto/libcrypto-lib-threads_win.o" => [ "crypto/threads_win.c" ], + "crypto/libcrypto-lib-time.o" => [ + "crypto/time.c" + ], "crypto/libcrypto-lib-trace.o" => [ "crypto/trace.c" ], @@ -22546,6 +26067,9 @@ our %unified_info = ( "crypto/libfips-lib-params_from_text.o" => [ "crypto/params_from_text.c" ], + "crypto/libfips-lib-params_idx.o" => [ + "crypto/params_idx.c" + ], "crypto/libfips-lib-provider_core.o" => [ "crypto/provider_core.c" ], @@ -22570,6 +26094,9 @@ our %unified_info = ( "crypto/libfips-lib-threads_win.o" => [ "crypto/threads_win.c" ], + "crypto/libfips-lib-time.o" => [ + "crypto/time.c" + ], "crypto/md4/libcrypto-lib-md4_dgst.o" => [ "crypto/md4/md4_dgst.c" ], @@ -22591,6 +26118,60 @@ our %unified_info = ( "crypto/mdc2/libcrypto-lib-mdc2dgst.o" => [ "crypto/mdc2/mdc2dgst.c" ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_encoders.o" => [ + "crypto/ml_dsa/ml_dsa_encoders.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key.o" => [ + "crypto/ml_dsa/ml_dsa_key.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key_compress.o" => [ + "crypto/ml_dsa/ml_dsa_key_compress.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_matrix.o" => [ + "crypto/ml_dsa/ml_dsa_matrix.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_ntt.o" => [ + "crypto/ml_dsa/ml_dsa_ntt.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_params.o" => [ + "crypto/ml_dsa/ml_dsa_params.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sample.o" => [ + "crypto/ml_dsa/ml_dsa_sample.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sign.o" => [ + "crypto/ml_dsa/ml_dsa_sign.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_encoders.o" => [ + "crypto/ml_dsa/ml_dsa_encoders.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_key.o" => [ + "crypto/ml_dsa/ml_dsa_key.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_key_compress.o" => [ + "crypto/ml_dsa/ml_dsa_key_compress.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_matrix.o" => [ + "crypto/ml_dsa/ml_dsa_matrix.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_ntt.o" => [ + "crypto/ml_dsa/ml_dsa_ntt.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_params.o" => [ + "crypto/ml_dsa/ml_dsa_params.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_sample.o" => [ + "crypto/ml_dsa/ml_dsa_sample.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_sign.o" => [ + "crypto/ml_dsa/ml_dsa_sign.c" + ], + "crypto/ml_kem/libcrypto-lib-ml_kem.o" => [ + "crypto/ml_kem/ml_kem.c" + ], + "crypto/ml_kem/libfips-lib-ml_kem.o" => [ + "crypto/ml_kem/ml_kem.c" + ], "crypto/modes/libcrypto-lib-cbc128.o" => [ "crypto/modes/cbc128.c" ], @@ -22624,6 +26205,9 @@ our %unified_info = ( "crypto/modes/libcrypto-lib-xts128.o" => [ "crypto/modes/xts128.c" ], + "crypto/modes/libcrypto-lib-xts128gb.o" => [ + "crypto/modes/xts128gb.c" + ], "crypto/modes/libfips-lib-cbc128.o" => [ "crypto/modes/cbc128.c" ], @@ -22648,6 +26232,9 @@ our %unified_info = ( "crypto/modes/libfips-lib-xts128.o" => [ "crypto/modes/xts128.c" ], + "crypto/modes/libfips-lib-xts128gb.o" => [ + "crypto/modes/xts128gb.c" + ], "crypto/objects/libcrypto-lib-o_names.o" => [ "crypto/objects/o_names.c" ], @@ -22693,6 +26280,9 @@ our %unified_info = ( "crypto/ocsp/libcrypto-lib-v3_ocsp.o" => [ "crypto/ocsp/v3_ocsp.c" ], + "crypto/packettest-bin-quic_vlint.o" => [ + "crypto/quic_vlint.c" + ], "crypto/pem/libcrypto-lib-pem_all.o" => [ "crypto/pem/pem_all.c" ], @@ -22852,6 +26442,9 @@ our %unified_info = ( "crypto/rand/libcrypto-lib-rand_pool.o" => [ "crypto/rand/rand_pool.c" ], + "crypto/rand/libcrypto-lib-rand_uniform.o" => [ + "crypto/rand/rand_uniform.c" + ], "crypto/rand/libcrypto-lib-randfile.o" => [ "crypto/rand/randfile.c" ], @@ -23065,6 +26658,66 @@ our %unified_info = ( "crypto/siphash/libcrypto-lib-siphash.o" => [ "crypto/siphash/siphash.c" ], + "crypto/slh_dsa/libcrypto-lib-slh_adrs.o" => [ + "crypto/slh_dsa/slh_adrs.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_dsa.o" => [ + "crypto/slh_dsa/slh_dsa.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_dsa_hash_ctx.o" => [ + "crypto/slh_dsa/slh_dsa_hash_ctx.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_dsa_key.o" => [ + "crypto/slh_dsa/slh_dsa_key.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_fors.o" => [ + "crypto/slh_dsa/slh_fors.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_hash.o" => [ + "crypto/slh_dsa/slh_hash.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_hypertree.o" => [ + "crypto/slh_dsa/slh_hypertree.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_params.o" => [ + "crypto/slh_dsa/slh_params.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_wots.o" => [ + "crypto/slh_dsa/slh_wots.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_xmss.o" => [ + "crypto/slh_dsa/slh_xmss.c" + ], + "crypto/slh_dsa/libfips-lib-slh_adrs.o" => [ + "crypto/slh_dsa/slh_adrs.c" + ], + "crypto/slh_dsa/libfips-lib-slh_dsa.o" => [ + "crypto/slh_dsa/slh_dsa.c" + ], + "crypto/slh_dsa/libfips-lib-slh_dsa_hash_ctx.o" => [ + "crypto/slh_dsa/slh_dsa_hash_ctx.c" + ], + "crypto/slh_dsa/libfips-lib-slh_dsa_key.o" => [ + "crypto/slh_dsa/slh_dsa_key.c" + ], + "crypto/slh_dsa/libfips-lib-slh_fors.o" => [ + "crypto/slh_dsa/slh_fors.c" + ], + "crypto/slh_dsa/libfips-lib-slh_hash.o" => [ + "crypto/slh_dsa/slh_hash.c" + ], + "crypto/slh_dsa/libfips-lib-slh_hypertree.o" => [ + "crypto/slh_dsa/slh_hypertree.c" + ], + "crypto/slh_dsa/libfips-lib-slh_params.o" => [ + "crypto/slh_dsa/slh_params.c" + ], + "crypto/slh_dsa/libfips-lib-slh_wots.o" => [ + "crypto/slh_dsa/slh_wots.c" + ], + "crypto/slh_dsa/libfips-lib-slh_xmss.o" => [ + "crypto/slh_dsa/slh_xmss.c" + ], "crypto/sm2/libcrypto-lib-sm2_crypt.o" => [ "crypto/sm2/sm2_crypt.c" ], @@ -23119,6 +26772,42 @@ our %unified_info = ( "crypto/store/libcrypto-lib-store_strings.o" => [ "crypto/store/store_strings.c" ], + "crypto/thread/arch/libcrypto-lib-thread_none.o" => [ + "crypto/thread/arch/thread_none.c" + ], + "crypto/thread/arch/libcrypto-lib-thread_posix.o" => [ + "crypto/thread/arch/thread_posix.c" + ], + "crypto/thread/arch/libcrypto-lib-thread_win.o" => [ + "crypto/thread/arch/thread_win.c" + ], + "crypto/thread/arch/libfips-lib-thread_none.o" => [ + "crypto/thread/arch/thread_none.c" + ], + "crypto/thread/arch/libfips-lib-thread_posix.o" => [ + "crypto/thread/arch/thread_posix.c" + ], + "crypto/thread/arch/libfips-lib-thread_win.o" => [ + "crypto/thread/arch/thread_win.c" + ], + "crypto/thread/libcrypto-lib-api.o" => [ + "crypto/thread/api.c" + ], + "crypto/thread/libcrypto-lib-arch.o" => [ + "crypto/thread/arch.c" + ], + "crypto/thread/libcrypto-lib-internal.o" => [ + "crypto/thread/internal.c" + ], + "crypto/thread/libfips-lib-api.o" => [ + "crypto/thread/api.c" + ], + "crypto/thread/libfips-lib-arch.o" => [ + "crypto/thread/arch.c" + ], + "crypto/thread/libfips-lib-internal.o" => [ + "crypto/thread/internal.c" + ], "crypto/ts/libcrypto-lib-ts_asn1.o" => [ "crypto/ts/ts_asn1.c" ], @@ -23203,6 +26892,9 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-pcy_tree.o" => [ "crypto/x509/pcy_tree.c" ], + "crypto/x509/libcrypto-lib-t_acert.o" => [ + "crypto/x509/t_acert.c" + ], "crypto/x509/libcrypto-lib-t_crl.o" => [ "crypto/x509/t_crl.c" ], @@ -23212,6 +26904,12 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-t_x509.o" => [ "crypto/x509/t_x509.c" ], + "crypto/x509/libcrypto-lib-v3_aaa.o" => [ + "crypto/x509/v3_aaa.c" + ], + "crypto/x509/libcrypto-lib-v3_ac_tgt.o" => [ + "crypto/x509/v3_ac_tgt.c" + ], "crypto/x509/libcrypto-lib-v3_addr.o" => [ "crypto/x509/v3_addr.c" ], @@ -23227,6 +26925,21 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_asid.o" => [ "crypto/x509/v3_asid.c" ], + "crypto/x509/libcrypto-lib-v3_attrdesc.o" => [ + "crypto/x509/v3_attrdesc.c" + ], + "crypto/x509/libcrypto-lib-v3_attrmap.o" => [ + "crypto/x509/v3_attrmap.c" + ], + "crypto/x509/libcrypto-lib-v3_audit_id.o" => [ + "crypto/x509/v3_audit_id.c" + ], + "crypto/x509/libcrypto-lib-v3_authattid.o" => [ + "crypto/x509/v3_authattid.c" + ], + "crypto/x509/libcrypto-lib-v3_battcons.o" => [ + "crypto/x509/v3_battcons.c" + ], "crypto/x509/libcrypto-lib-v3_bcons.o" => [ "crypto/x509/v3_bcons.c" ], @@ -23251,15 +26964,24 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_genn.o" => [ "crypto/x509/v3_genn.c" ], + "crypto/x509/libcrypto-lib-v3_group_ac.o" => [ + "crypto/x509/v3_group_ac.c" + ], "crypto/x509/libcrypto-lib-v3_ia5.o" => [ "crypto/x509/v3_ia5.c" ], + "crypto/x509/libcrypto-lib-v3_ind_iss.o" => [ + "crypto/x509/v3_ind_iss.c" + ], "crypto/x509/libcrypto-lib-v3_info.o" => [ "crypto/x509/v3_info.c" ], "crypto/x509/libcrypto-lib-v3_int.o" => [ "crypto/x509/v3_int.c" ], + "crypto/x509/libcrypto-lib-v3_iobo.o" => [ + "crypto/x509/v3_iobo.c" + ], "crypto/x509/libcrypto-lib-v3_ist.o" => [ "crypto/x509/v3_ist.c" ], @@ -23269,6 +26991,12 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_ncons.o" => [ "crypto/x509/v3_ncons.c" ], + "crypto/x509/libcrypto-lib-v3_no_ass.o" => [ + "crypto/x509/v3_no_ass.c" + ], + "crypto/x509/libcrypto-lib-v3_no_rev_avail.o" => [ + "crypto/x509/v3_no_rev_avail.c" + ], "crypto/x509/libcrypto-lib-v3_pci.o" => [ "crypto/x509/v3_pci.c" ], @@ -23290,18 +27018,36 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_purp.o" => [ "crypto/x509/v3_purp.c" ], + "crypto/x509/libcrypto-lib-v3_rolespec.o" => [ + "crypto/x509/v3_rolespec.c" + ], "crypto/x509/libcrypto-lib-v3_san.o" => [ "crypto/x509/v3_san.c" ], + "crypto/x509/libcrypto-lib-v3_sda.o" => [ + "crypto/x509/v3_sda.c" + ], + "crypto/x509/libcrypto-lib-v3_single_use.o" => [ + "crypto/x509/v3_single_use.c" + ], "crypto/x509/libcrypto-lib-v3_skid.o" => [ "crypto/x509/v3_skid.c" ], + "crypto/x509/libcrypto-lib-v3_soa_id.o" => [ + "crypto/x509/v3_soa_id.c" + ], "crypto/x509/libcrypto-lib-v3_sxnet.o" => [ "crypto/x509/v3_sxnet.c" ], + "crypto/x509/libcrypto-lib-v3_timespec.o" => [ + "crypto/x509/v3_timespec.c" + ], "crypto/x509/libcrypto-lib-v3_tlsf.o" => [ "crypto/x509/v3_tlsf.c" ], + "crypto/x509/libcrypto-lib-v3_usernotice.o" => [ + "crypto/x509/v3_usernotice.c" + ], "crypto/x509/libcrypto-lib-v3_utf8.o" => [ "crypto/x509/v3_utf8.c" ], @@ -23311,6 +27057,9 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3err.o" => [ "crypto/x509/v3err.c" ], + "crypto/x509/libcrypto-lib-x509_acert.o" => [ + "crypto/x509/x509_acert.c" + ], "crypto/x509/libcrypto-lib-x509_att.o" => [ "crypto/x509/x509_att.c" ], @@ -23362,6 +27111,9 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x509_vpm.o" => [ "crypto/x509/x509_vpm.c" ], + "crypto/x509/libcrypto-lib-x509aset.o" => [ + "crypto/x509/x509aset.c" + ], "crypto/x509/libcrypto-lib-x509cset.o" => [ "crypto/x509/x509cset.c" ], @@ -23389,6 +27141,9 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x_exten.o" => [ "crypto/x509/x_exten.c" ], + "crypto/x509/libcrypto-lib-x_ietfatt.o" => [ + "crypto/x509/x_ietfatt.c" + ], "crypto/x509/libcrypto-lib-x_name.o" => [ "crypto/x509/x_name.c" ], @@ -23413,6 +27168,16 @@ our %unified_info = ( "engines/libcrypto-lib-e_padlock.o" => [ "engines/e_padlock.c" ], + "fuzz/acert-test" => [ + "fuzz/acert-test-bin-acert.o", + "fuzz/acert-test-bin-test-corpus.o" + ], + "fuzz/acert-test-bin-acert.o" => [ + "fuzz/acert.c" + ], + "fuzz/acert-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], "fuzz/asn1-test" => [ "fuzz/asn1-test-bin-asn1.o", "fuzz/asn1-test-bin-fuzz_rand.o", @@ -23525,6 +27290,190 @@ our %unified_info = ( "fuzz/ct-test-bin-test-corpus.o" => [ "fuzz/test-corpus.c" ], + "fuzz/decoder-test" => [ + "fuzz/decoder-test-bin-decoder.o", + "fuzz/decoder-test-bin-fuzz_rand.o", + "fuzz/decoder-test-bin-test-corpus.o" + ], + "fuzz/decoder-test-bin-decoder.o" => [ + "fuzz/decoder.c" + ], + "fuzz/decoder-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/decoder-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/dtlsclient-test" => [ + "fuzz/dtlsclient-test-bin-dtlsclient.o", + "fuzz/dtlsclient-test-bin-fuzz_rand.o", + "fuzz/dtlsclient-test-bin-test-corpus.o" + ], + "fuzz/dtlsclient-test-bin-dtlsclient.o" => [ + "fuzz/dtlsclient.c" + ], + "fuzz/dtlsclient-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/dtlsclient-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/dtlsserver-test" => [ + "fuzz/dtlsserver-test-bin-dtlsserver.o", + "fuzz/dtlsserver-test-bin-fuzz_rand.o", + "fuzz/dtlsserver-test-bin-test-corpus.o" + ], + "fuzz/dtlsserver-test-bin-dtlsserver.o" => [ + "fuzz/dtlsserver.c" + ], + "fuzz/dtlsserver-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/dtlsserver-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/hashtable-test" => [ + "fuzz/hashtable-test-bin-fuzz_rand.o", + "fuzz/hashtable-test-bin-hashtable.o", + "fuzz/hashtable-test-bin-test-corpus.o" + ], + "fuzz/hashtable-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/hashtable-test-bin-hashtable.o" => [ + "fuzz/hashtable.c" + ], + "fuzz/hashtable-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/ml-dsa-test" => [ + "fuzz/ml-dsa-test-bin-fuzz_rand.o", + "fuzz/ml-dsa-test-bin-ml-dsa.o", + "fuzz/ml-dsa-test-bin-test-corpus.o" + ], + "fuzz/ml-dsa-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/ml-dsa-test-bin-ml-dsa.o" => [ + "fuzz/ml-dsa.c" + ], + "fuzz/ml-dsa-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/ml-kem-test" => [ + "fuzz/ml-kem-test-bin-fuzz_rand.o", + "fuzz/ml-kem-test-bin-ml-kem.o", + "fuzz/ml-kem-test-bin-test-corpus.o" + ], + "fuzz/ml-kem-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/ml-kem-test-bin-ml-kem.o" => [ + "fuzz/ml-kem.c" + ], + "fuzz/ml-kem-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/pem-test" => [ + "fuzz/pem-test-bin-pem.o", + "fuzz/pem-test-bin-test-corpus.o" + ], + "fuzz/pem-test-bin-pem.o" => [ + "fuzz/pem.c" + ], + "fuzz/pem-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/provider-test" => [ + "fuzz/provider-test-bin-provider.o", + "fuzz/provider-test-bin-test-corpus.o" + ], + "fuzz/provider-test-bin-provider.o" => [ + "fuzz/provider.c" + ], + "fuzz/provider-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/punycode-test" => [ + "fuzz/punycode-test-bin-punycode.o", + "fuzz/punycode-test-bin-test-corpus.o" + ], + "fuzz/punycode-test-bin-punycode.o" => [ + "fuzz/punycode.c" + ], + "fuzz/punycode-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-client-test" => [ + "fuzz/quic-client-test-bin-fuzz_rand.o", + "fuzz/quic-client-test-bin-quic-client.o", + "fuzz/quic-client-test-bin-test-corpus.o" + ], + "fuzz/quic-client-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-client-test-bin-quic-client.o" => [ + "fuzz/quic-client.c" + ], + "fuzz/quic-client-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-lcidm-test" => [ + "fuzz/quic-lcidm-test-bin-fuzz_rand.o", + "fuzz/quic-lcidm-test-bin-quic-lcidm.o", + "fuzz/quic-lcidm-test-bin-test-corpus.o" + ], + "fuzz/quic-lcidm-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-lcidm-test-bin-quic-lcidm.o" => [ + "fuzz/quic-lcidm.c" + ], + "fuzz/quic-lcidm-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-rcidm-test" => [ + "fuzz/quic-rcidm-test-bin-fuzz_rand.o", + "fuzz/quic-rcidm-test-bin-quic-rcidm.o", + "fuzz/quic-rcidm-test-bin-test-corpus.o" + ], + "fuzz/quic-rcidm-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-rcidm-test-bin-quic-rcidm.o" => [ + "fuzz/quic-rcidm.c" + ], + "fuzz/quic-rcidm-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-server-test" => [ + "fuzz/quic-server-test-bin-fuzz_rand.o", + "fuzz/quic-server-test-bin-quic-server.o", + "fuzz/quic-server-test-bin-test-corpus.o" + ], + "fuzz/quic-server-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-server-test-bin-quic-server.o" => [ + "fuzz/quic-server.c" + ], + "fuzz/quic-server-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-srtm-test" => [ + "fuzz/quic-srtm-test-bin-fuzz_rand.o", + "fuzz/quic-srtm-test-bin-quic-srtm.o", + "fuzz/quic-srtm-test-bin-test-corpus.o" + ], + "fuzz/quic-srtm-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-srtm-test-bin-quic-srtm.o" => [ + "fuzz/quic-srtm.c" + ], + "fuzz/quic-srtm-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], "fuzz/server-test" => [ "fuzz/server-test-bin-fuzz_rand.o", "fuzz/server-test-bin-server.o", @@ -23539,6 +27488,40 @@ our %unified_info = ( "fuzz/server-test-bin-test-corpus.o" => [ "fuzz/test-corpus.c" ], + "fuzz/slh-dsa-test" => [ + "fuzz/slh-dsa-test-bin-fuzz_rand.o", + "fuzz/slh-dsa-test-bin-slh-dsa.o", + "fuzz/slh-dsa-test-bin-test-corpus.o" + ], + "fuzz/slh-dsa-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/slh-dsa-test-bin-slh-dsa.o" => [ + "fuzz/slh-dsa.c" + ], + "fuzz/slh-dsa-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/smime-test" => [ + "fuzz/smime-test-bin-smime.o", + "fuzz/smime-test-bin-test-corpus.o" + ], + "fuzz/smime-test-bin-smime.o" => [ + "fuzz/smime.c" + ], + "fuzz/smime-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/v3name-test" => [ + "fuzz/v3name-test-bin-test-corpus.o", + "fuzz/v3name-test-bin-v3name.o" + ], + "fuzz/v3name-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/v3name-test-bin-v3name.o" => [ + "fuzz/v3name.c" + ], "fuzz/x509-test" => [ "fuzz/x509-test-bin-fuzz_rand.o", "fuzz/x509-test-bin-test-corpus.o", @@ -23658,6 +27641,7 @@ our %unified_info = ( "crypto/bio/libcrypto-lib-bss_conn.o", "crypto/bio/libcrypto-lib-bss_core.o", "crypto/bio/libcrypto-lib-bss_dgram.o", + "crypto/bio/libcrypto-lib-bss_dgram_pair.o", "crypto/bio/libcrypto-lib-bss_fd.o", "crypto/bio/libcrypto-lib-bss_file.o", "crypto/bio/libcrypto-lib-bss_log.o", @@ -23718,6 +27702,7 @@ our %unified_info = ( "crypto/cmp/libcrypto-lib-cmp_client.o", "crypto/cmp/libcrypto-lib-cmp_ctx.o", "crypto/cmp/libcrypto-lib-cmp_err.o", + "crypto/cmp/libcrypto-lib-cmp_genm.o", "crypto/cmp/libcrypto-lib-cmp_hdr.o", "crypto/cmp/libcrypto-lib-cmp_http.o", "crypto/cmp/libcrypto-lib-cmp_msg.o", @@ -23893,7 +27878,9 @@ our %unified_info = ( "crypto/err/libcrypto-lib-err_all.o", "crypto/err/libcrypto-lib-err_all_legacy.o", "crypto/err/libcrypto-lib-err_blocks.o", + "crypto/err/libcrypto-lib-err_mark.o", "crypto/err/libcrypto-lib-err_prn.o", + "crypto/err/libcrypto-lib-err_save.o", "crypto/ess/libcrypto-lib-ess_asn1.o", "crypto/ess/libcrypto-lib-ess_err.o", "crypto/ess/libcrypto-lib-ess_lib.o", @@ -23976,7 +27963,9 @@ our %unified_info = ( "crypto/evp/libcrypto-lib-pmeth_check.o", "crypto/evp/libcrypto-lib-pmeth_gn.o", "crypto/evp/libcrypto-lib-pmeth_lib.o", + "crypto/evp/libcrypto-lib-s_lib.o", "crypto/evp/libcrypto-lib-signature.o", + "crypto/evp/libcrypto-lib-skeymgmt_meth.o", "crypto/ffc/libcrypto-lib-ffc_backend.o", "crypto/ffc/libcrypto-lib-ffc_dh.o", "crypto/ffc/libcrypto-lib-ffc_key_generate.o", @@ -23984,7 +27973,11 @@ our %unified_info = ( "crypto/ffc/libcrypto-lib-ffc_params.o", "crypto/ffc/libcrypto-lib-ffc_params_generate.o", "crypto/ffc/libcrypto-lib-ffc_params_validate.o", + "crypto/hashtable/libcrypto-lib-hashfunc.o", + "crypto/hashtable/libcrypto-lib-hashtable.o", "crypto/hmac/libcrypto-lib-hmac.o", + "crypto/hpke/libcrypto-lib-hpke.o", + "crypto/hpke/libcrypto-lib-hpke_util.o", "crypto/http/libcrypto-lib-http_client.o", "crypto/http/libcrypto-lib-http_err.o", "crypto/http/libcrypto-lib-http_lib.o", @@ -23998,6 +27991,7 @@ our %unified_info = ( "crypto/lhash/libcrypto-lib-lhash.o", "crypto/libcrypto-lib-asn1_dsa.o", "crypto/libcrypto-lib-bsearch.o", + "crypto/libcrypto-lib-comp_methods.o", "crypto/libcrypto-lib-context.o", "crypto/libcrypto-lib-core_algorithm.o", "crypto/libcrypto-lib-core_fetch.o", @@ -24007,10 +28001,13 @@ our %unified_info = ( "crypto/libcrypto-lib-cryptlib.o", "crypto/libcrypto-lib-ctype.o", "crypto/libcrypto-lib-cversion.o", + "crypto/libcrypto-lib-defaults.o", "crypto/libcrypto-lib-der_writer.o", + "crypto/libcrypto-lib-deterministic_nonce.o", "crypto/libcrypto-lib-ebcdic.o", "crypto/libcrypto-lib-ex_data.o", "crypto/libcrypto-lib-getenv.o", + "crypto/libcrypto-lib-indicator_core.o", "crypto/libcrypto-lib-info.o", "crypto/libcrypto-lib-init.o", "crypto/libcrypto-lib-initthread.o", @@ -24028,6 +28025,7 @@ our %unified_info = ( "crypto/libcrypto-lib-params.o", "crypto/libcrypto-lib-params_dup.o", "crypto/libcrypto-lib-params_from_text.o", + "crypto/libcrypto-lib-params_idx.o", "crypto/libcrypto-lib-passphrase.o", "crypto/libcrypto-lib-provider.o", "crypto/libcrypto-lib-provider_child.o", @@ -24035,12 +28033,16 @@ our %unified_info = ( "crypto/libcrypto-lib-provider_core.o", "crypto/libcrypto-lib-provider_predefined.o", "crypto/libcrypto-lib-punycode.o", + "crypto/libcrypto-lib-quic_vlint.o", "crypto/libcrypto-lib-self_test_core.o", + "crypto/libcrypto-lib-sleep.o", "crypto/libcrypto-lib-sparse_array.o", + "crypto/libcrypto-lib-ssl_err.o", "crypto/libcrypto-lib-threads_lib.o", "crypto/libcrypto-lib-threads_none.o", "crypto/libcrypto-lib-threads_pthread.o", "crypto/libcrypto-lib-threads_win.o", + "crypto/libcrypto-lib-time.o", "crypto/libcrypto-lib-trace.o", "crypto/libcrypto-lib-uid.o", "crypto/md4/libcrypto-lib-md4_dgst.o", @@ -24050,6 +28052,15 @@ our %unified_info = ( "crypto/md5/libcrypto-lib-md5_sha1.o", "crypto/mdc2/libcrypto-lib-mdc2_one.o", "crypto/mdc2/libcrypto-lib-mdc2dgst.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_encoders.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key_compress.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_matrix.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_ntt.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_params.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sample.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sign.o", + "crypto/ml_kem/libcrypto-lib-ml_kem.o", "crypto/modes/libcrypto-lib-cbc128.o", "crypto/modes/libcrypto-lib-ccm128.o", "crypto/modes/libcrypto-lib-cfb128.o", @@ -24061,6 +28072,7 @@ our %unified_info = ( "crypto/modes/libcrypto-lib-siv128.o", "crypto/modes/libcrypto-lib-wrap128.o", "crypto/modes/libcrypto-lib-xts128.o", + "crypto/modes/libcrypto-lib-xts128gb.o", "crypto/objects/libcrypto-lib-o_names.o", "crypto/objects/libcrypto-lib-obj_dat.o", "crypto/objects/libcrypto-lib-obj_err.o", @@ -24124,6 +28136,7 @@ our %unified_info = ( "crypto/rand/libcrypto-lib-rand_lib.o", "crypto/rand/libcrypto-lib-rand_meth.o", "crypto/rand/libcrypto-lib-rand_pool.o", + "crypto/rand/libcrypto-lib-rand_uniform.o", "crypto/rand/libcrypto-lib-randfile.o", "crypto/rc2/libcrypto-lib-rc2_cbc.o", "crypto/rc2/libcrypto-lib-rc2_ecb.o", @@ -24172,6 +28185,16 @@ our %unified_info = ( "crypto/sha/libcrypto-lib-sha3.o", "crypto/sha/libcrypto-lib-sha512.o", "crypto/siphash/libcrypto-lib-siphash.o", + "crypto/slh_dsa/libcrypto-lib-slh_adrs.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa_hash_ctx.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa_key.o", + "crypto/slh_dsa/libcrypto-lib-slh_fors.o", + "crypto/slh_dsa/libcrypto-lib-slh_hash.o", + "crypto/slh_dsa/libcrypto-lib-slh_hypertree.o", + "crypto/slh_dsa/libcrypto-lib-slh_params.o", + "crypto/slh_dsa/libcrypto-lib-slh_wots.o", + "crypto/slh_dsa/libcrypto-lib-slh_xmss.o", "crypto/sm2/libcrypto-lib-sm2_crypt.o", "crypto/sm2/libcrypto-lib-sm2_err.o", "crypto/sm2/libcrypto-lib-sm2_key.o", @@ -24189,6 +28212,12 @@ our %unified_info = ( "crypto/store/libcrypto-lib-store_register.o", "crypto/store/libcrypto-lib-store_result.o", "crypto/store/libcrypto-lib-store_strings.o", + "crypto/thread/arch/libcrypto-lib-thread_none.o", + "crypto/thread/arch/libcrypto-lib-thread_posix.o", + "crypto/thread/arch/libcrypto-lib-thread_win.o", + "crypto/thread/libcrypto-lib-api.o", + "crypto/thread/libcrypto-lib-arch.o", + "crypto/thread/libcrypto-lib-internal.o", "crypto/ts/libcrypto-lib-ts_asn1.o", "crypto/ts/libcrypto-lib-ts_conf.o", "crypto/ts/libcrypto-lib-ts_err.o", @@ -24217,14 +28246,22 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-pcy_map.o", "crypto/x509/libcrypto-lib-pcy_node.o", "crypto/x509/libcrypto-lib-pcy_tree.o", + "crypto/x509/libcrypto-lib-t_acert.o", "crypto/x509/libcrypto-lib-t_crl.o", "crypto/x509/libcrypto-lib-t_req.o", "crypto/x509/libcrypto-lib-t_x509.o", + "crypto/x509/libcrypto-lib-v3_aaa.o", + "crypto/x509/libcrypto-lib-v3_ac_tgt.o", "crypto/x509/libcrypto-lib-v3_addr.o", "crypto/x509/libcrypto-lib-v3_admis.o", "crypto/x509/libcrypto-lib-v3_akeya.o", "crypto/x509/libcrypto-lib-v3_akid.o", "crypto/x509/libcrypto-lib-v3_asid.o", + "crypto/x509/libcrypto-lib-v3_attrdesc.o", + "crypto/x509/libcrypto-lib-v3_attrmap.o", + "crypto/x509/libcrypto-lib-v3_audit_id.o", + "crypto/x509/libcrypto-lib-v3_authattid.o", + "crypto/x509/libcrypto-lib-v3_battcons.o", "crypto/x509/libcrypto-lib-v3_bcons.o", "crypto/x509/libcrypto-lib-v3_bitst.o", "crypto/x509/libcrypto-lib-v3_conf.o", @@ -24233,12 +28270,17 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_enum.o", "crypto/x509/libcrypto-lib-v3_extku.o", "crypto/x509/libcrypto-lib-v3_genn.o", + "crypto/x509/libcrypto-lib-v3_group_ac.o", "crypto/x509/libcrypto-lib-v3_ia5.o", + "crypto/x509/libcrypto-lib-v3_ind_iss.o", "crypto/x509/libcrypto-lib-v3_info.o", "crypto/x509/libcrypto-lib-v3_int.o", + "crypto/x509/libcrypto-lib-v3_iobo.o", "crypto/x509/libcrypto-lib-v3_ist.o", "crypto/x509/libcrypto-lib-v3_lib.o", "crypto/x509/libcrypto-lib-v3_ncons.o", + "crypto/x509/libcrypto-lib-v3_no_ass.o", + "crypto/x509/libcrypto-lib-v3_no_rev_avail.o", "crypto/x509/libcrypto-lib-v3_pci.o", "crypto/x509/libcrypto-lib-v3_pcia.o", "crypto/x509/libcrypto-lib-v3_pcons.o", @@ -24246,13 +28288,20 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_pmaps.o", "crypto/x509/libcrypto-lib-v3_prn.o", "crypto/x509/libcrypto-lib-v3_purp.o", + "crypto/x509/libcrypto-lib-v3_rolespec.o", "crypto/x509/libcrypto-lib-v3_san.o", + "crypto/x509/libcrypto-lib-v3_sda.o", + "crypto/x509/libcrypto-lib-v3_single_use.o", "crypto/x509/libcrypto-lib-v3_skid.o", + "crypto/x509/libcrypto-lib-v3_soa_id.o", "crypto/x509/libcrypto-lib-v3_sxnet.o", + "crypto/x509/libcrypto-lib-v3_timespec.o", "crypto/x509/libcrypto-lib-v3_tlsf.o", + "crypto/x509/libcrypto-lib-v3_usernotice.o", "crypto/x509/libcrypto-lib-v3_utf8.o", "crypto/x509/libcrypto-lib-v3_utl.o", "crypto/x509/libcrypto-lib-v3err.o", + "crypto/x509/libcrypto-lib-x509_acert.o", "crypto/x509/libcrypto-lib-x509_att.o", "crypto/x509/libcrypto-lib-x509_cmp.o", "crypto/x509/libcrypto-lib-x509_d2.o", @@ -24270,6 +28319,7 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x509_v3.o", "crypto/x509/libcrypto-lib-x509_vfy.o", "crypto/x509/libcrypto-lib-x509_vpm.o", + "crypto/x509/libcrypto-lib-x509aset.o", "crypto/x509/libcrypto-lib-x509cset.o", "crypto/x509/libcrypto-lib-x509name.o", "crypto/x509/libcrypto-lib-x509rset.o", @@ -24279,6 +28329,7 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x_attrib.o", "crypto/x509/libcrypto-lib-x_crl.o", "crypto/x509/libcrypto-lib-x_exten.o", + "crypto/x509/libcrypto-lib-x_ietfatt.o", "crypto/x509/libcrypto-lib-x_name.o", "crypto/x509/libcrypto-lib-x_pubkey.o", "crypto/x509/libcrypto-lib-x_req.o", @@ -24300,14 +28351,15 @@ our %unified_info = ( "ssl/libssl-lib-d1_srtp.o", "ssl/libssl-lib-methods.o", "ssl/libssl-lib-pqueue.o", + "ssl/libssl-lib-priority_queue.o", "ssl/libssl-lib-s3_enc.o", "ssl/libssl-lib-s3_lib.o", "ssl/libssl-lib-s3_msg.o", "ssl/libssl-lib-ssl_asn1.o", "ssl/libssl-lib-ssl_cert.o", + "ssl/libssl-lib-ssl_cert_comp.o", "ssl/libssl-lib-ssl_ciph.o", "ssl/libssl-lib-ssl_conf.o", - "ssl/libssl-lib-ssl_err.o", "ssl/libssl-lib-ssl_err_legacy.o", "ssl/libssl-lib-ssl_init.o", "ssl/libssl-lib-ssl_lib.o", @@ -24324,12 +28376,60 @@ our %unified_info = ( "ssl/libssl-lib-tls13_enc.o", "ssl/libssl-lib-tls_depr.o", "ssl/libssl-lib-tls_srp.o", - "ssl/record/libssl-lib-dtls1_bitmap.o", + "ssl/quic/libssl-lib-cc_newreno.o", + "ssl/quic/libssl-lib-json_enc.o", + "ssl/quic/libssl-lib-qlog.o", + "ssl/quic/libssl-lib-qlog_event_helpers.o", + "ssl/quic/libssl-lib-quic_ackm.o", + "ssl/quic/libssl-lib-quic_cfq.o", + "ssl/quic/libssl-lib-quic_channel.o", + "ssl/quic/libssl-lib-quic_demux.o", + "ssl/quic/libssl-lib-quic_engine.o", + "ssl/quic/libssl-lib-quic_fc.o", + "ssl/quic/libssl-lib-quic_fifd.o", + "ssl/quic/libssl-lib-quic_impl.o", + "ssl/quic/libssl-lib-quic_lcidm.o", + "ssl/quic/libssl-lib-quic_method.o", + "ssl/quic/libssl-lib-quic_obj.o", + "ssl/quic/libssl-lib-quic_port.o", + "ssl/quic/libssl-lib-quic_rcidm.o", + "ssl/quic/libssl-lib-quic_reactor.o", + "ssl/quic/libssl-lib-quic_reactor_wait_ctx.o", + "ssl/quic/libssl-lib-quic_record_rx.o", + "ssl/quic/libssl-lib-quic_record_shared.o", + "ssl/quic/libssl-lib-quic_record_tx.o", + "ssl/quic/libssl-lib-quic_record_util.o", + "ssl/quic/libssl-lib-quic_rstream.o", + "ssl/quic/libssl-lib-quic_rx_depack.o", + "ssl/quic/libssl-lib-quic_sf_list.o", + "ssl/quic/libssl-lib-quic_srt_gen.o", + "ssl/quic/libssl-lib-quic_srtm.o", + "ssl/quic/libssl-lib-quic_sstream.o", + "ssl/quic/libssl-lib-quic_statm.o", + "ssl/quic/libssl-lib-quic_stream_map.o", + "ssl/quic/libssl-lib-quic_thread_assist.o", + "ssl/quic/libssl-lib-quic_tls.o", + "ssl/quic/libssl-lib-quic_tls_api.o", + "ssl/quic/libssl-lib-quic_trace.o", + "ssl/quic/libssl-lib-quic_tserver.o", + "ssl/quic/libssl-lib-quic_txp.o", + "ssl/quic/libssl-lib-quic_txpim.o", + "ssl/quic/libssl-lib-quic_types.o", + "ssl/quic/libssl-lib-quic_wire.o", + "ssl/quic/libssl-lib-quic_wire_pkt.o", + "ssl/quic/libssl-lib-uint_set.o", "ssl/record/libssl-lib-rec_layer_d1.o", "ssl/record/libssl-lib-rec_layer_s3.o", - "ssl/record/libssl-lib-ssl3_buffer.o", - "ssl/record/libssl-lib-ssl3_record.o", - "ssl/record/libssl-lib-ssl3_record_tls13.o", + "ssl/record/methods/libssl-lib-dtls_meth.o", + "ssl/record/methods/libssl-lib-ssl3_meth.o", + "ssl/record/methods/libssl-lib-tls13_meth.o", + "ssl/record/methods/libssl-lib-tls1_meth.o", + "ssl/record/methods/libssl-lib-tls_common.o", + "ssl/record/methods/libssl-lib-tls_multib.o", + "ssl/record/methods/libssl-lib-tlsany_meth.o", + "ssl/rio/libssl-lib-poll_builder.o", + "ssl/rio/libssl-lib-poll_immediate.o", + "ssl/rio/libssl-lib-rio_notifier.o", "ssl/statem/libssl-lib-extensions.o", "ssl/statem/libssl-lib-extensions_clnt.o", "ssl/statem/libssl-lib-extensions_cust.o", @@ -24367,12 +28467,24 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ecx_key.o" => [ "providers/common/der/der_ecx_key.c" ], + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o" => [ + "providers/common/der/der_ml_dsa_gen.c" + ], + "providers/common/der/libcommon-lib-der_ml_dsa_key.o" => [ + "providers/common/der/der_ml_dsa_key.c" + ], "providers/common/der/libcommon-lib-der_rsa_gen.o" => [ "providers/common/der/der_rsa_gen.c" ], "providers/common/der/libcommon-lib-der_rsa_key.o" => [ "providers/common/der/der_rsa_key.c" ], + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o" => [ + "providers/common/der/der_slh_dsa_gen.c" + ], + "providers/common/der/libcommon-lib-der_slh_dsa_key.o" => [ + "providers/common/der/der_slh_dsa_key.c" + ], "providers/common/der/libcommon-lib-der_wrap_gen.o" => [ "providers/common/der/der_wrap_gen.c" ], @@ -24439,6 +28551,9 @@ our %unified_info = ( "providers/common/libfips-lib-securitycheck_fips.o" => [ "providers/common/securitycheck_fips.c" ], + "providers/endecode_test-bin-legacyprov.o" => [ + "providers/legacyprov.c" + ], "providers/evp_extra_test-bin-legacyprov.o" => [ "providers/legacyprov.c" ], @@ -24449,6 +28564,9 @@ our %unified_info = ( "providers/fips/fips-dso-fips_entry.o" => [ "providers/fips/fips_entry.c" ], + "providers/fips/libfips-lib-fipsindicator.o" => [ + "providers/fips/fipsindicator.c" + ], "providers/fips/libfips-lib-fipsprov.o" => [ "providers/fips/fipsprov.c" ], @@ -24512,6 +28630,15 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_hw.o" => [ "providers/implementations/ciphers/cipher_aes_gcm_hw.c" ], + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv.o" => [ + "providers/implementations/ciphers/cipher_aes_gcm_siv.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_hw.o" => [ + "providers/implementations/ciphers/cipher_aes_gcm_siv_hw.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_polyval.o" => [ + "providers/implementations/ciphers/cipher_aes_gcm_siv_polyval.c" + ], "providers/implementations/ciphers/libdefault-lib-cipher_aes_hw.o" => [ "providers/implementations/ciphers/cipher_aes_hw.c" ], @@ -24584,9 +28711,27 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_sm4.o" => [ "providers/implementations/ciphers/cipher_sm4.c" ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm.o" => [ + "providers/implementations/ciphers/cipher_sm4_ccm.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm_hw.o" => [ + "providers/implementations/ciphers/cipher_sm4_ccm_hw.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm.o" => [ + "providers/implementations/ciphers/cipher_sm4_gcm.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm_hw.o" => [ + "providers/implementations/ciphers/cipher_sm4_gcm_hw.c" + ], "providers/implementations/ciphers/libdefault-lib-cipher_sm4_hw.o" => [ "providers/implementations/ciphers/cipher_sm4_hw.c" ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts.o" => [ + "providers/implementations/ciphers/cipher_sm4_xts.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts_hw.o" => [ + "providers/implementations/ciphers/cipher_sm4_xts_hw.c" + ], "providers/implementations/ciphers/libdefault-lib-cipher_tdes.o" => [ "providers/implementations/ciphers/cipher_tdes.c" ], @@ -24806,6 +28951,15 @@ our %unified_info = ( "providers/implementations/encode_decode/libdefault-lib-endecoder_common.o" => [ "providers/implementations/encode_decode/endecoder_common.c" ], + "providers/implementations/encode_decode/libdefault-lib-ml_common_codecs.o" => [ + "providers/implementations/encode_decode/ml_common_codecs.c" + ], + "providers/implementations/encode_decode/libdefault-lib-ml_dsa_codecs.o" => [ + "providers/implementations/encode_decode/ml_dsa_codecs.c" + ], + "providers/implementations/encode_decode/libdefault-lib-ml_kem_codecs.o" => [ + "providers/implementations/encode_decode/ml_kem_codecs.c" + ], "providers/implementations/exchange/libdefault-lib-dh_exch.o" => [ "providers/implementations/exchange/dh_exch.c" ], @@ -24830,9 +28984,15 @@ our %unified_info = ( "providers/implementations/exchange/libfips-lib-kdf_exch.o" => [ "providers/implementations/exchange/kdf_exch.c" ], + "providers/implementations/kdfs/libdefault-lib-argon2.o" => [ + "providers/implementations/kdfs/argon2.c" + ], "providers/implementations/kdfs/libdefault-lib-hkdf.o" => [ "providers/implementations/kdfs/hkdf.c" ], + "providers/implementations/kdfs/libdefault-lib-hmacdrbg_kdf.o" => [ + "providers/implementations/kdfs/hmacdrbg_kdf.c" + ], "providers/implementations/kdfs/libdefault-lib-kbkdf.o" => [ "providers/implementations/kdfs/kbkdf.c" ], @@ -24890,12 +29050,39 @@ our %unified_info = ( "providers/implementations/kdfs/liblegacy-lib-pbkdf1.o" => [ "providers/implementations/kdfs/pbkdf1.c" ], + "providers/implementations/kdfs/liblegacy-lib-pvkkdf.o" => [ + "providers/implementations/kdfs/pvkkdf.c" + ], + "providers/implementations/kem/libdefault-lib-ec_kem.o" => [ + "providers/implementations/kem/ec_kem.c" + ], + "providers/implementations/kem/libdefault-lib-ecx_kem.o" => [ + "providers/implementations/kem/ecx_kem.c" + ], + "providers/implementations/kem/libdefault-lib-kem_util.o" => [ + "providers/implementations/kem/kem_util.c" + ], + "providers/implementations/kem/libdefault-lib-ml_kem_kem.o" => [ + "providers/implementations/kem/ml_kem_kem.c" + ], + "providers/implementations/kem/libdefault-lib-mlx_kem.o" => [ + "providers/implementations/kem/mlx_kem.c" + ], "providers/implementations/kem/libdefault-lib-rsa_kem.o" => [ "providers/implementations/kem/rsa_kem.c" ], + "providers/implementations/kem/libfips-lib-ml_kem_kem.o" => [ + "providers/implementations/kem/ml_kem_kem.c" + ], + "providers/implementations/kem/libfips-lib-mlx_kem.o" => [ + "providers/implementations/kem/mlx_kem.c" + ], "providers/implementations/kem/libfips-lib-rsa_kem.o" => [ "providers/implementations/kem/rsa_kem.c" ], + "providers/implementations/kem/libtemplate-lib-template_kem.o" => [ + "providers/implementations/kem/template_kem.c" + ], "providers/implementations/keymgmt/libdefault-lib-dh_kmgmt.o" => [ "providers/implementations/keymgmt/dh_kmgmt.c" ], @@ -24914,9 +29101,21 @@ our %unified_info = ( "providers/implementations/keymgmt/libdefault-lib-mac_legacy_kmgmt.o" => [ "providers/implementations/keymgmt/mac_legacy_kmgmt.c" ], + "providers/implementations/keymgmt/libdefault-lib-ml_dsa_kmgmt.o" => [ + "providers/implementations/keymgmt/ml_dsa_kmgmt.c" + ], + "providers/implementations/keymgmt/libdefault-lib-ml_kem_kmgmt.o" => [ + "providers/implementations/keymgmt/ml_kem_kmgmt.c" + ], + "providers/implementations/keymgmt/libdefault-lib-mlx_kmgmt.o" => [ + "providers/implementations/keymgmt/mlx_kmgmt.c" + ], "providers/implementations/keymgmt/libdefault-lib-rsa_kmgmt.o" => [ "providers/implementations/keymgmt/rsa_kmgmt.c" ], + "providers/implementations/keymgmt/libdefault-lib-slh_dsa_kmgmt.o" => [ + "providers/implementations/keymgmt/slh_dsa_kmgmt.c" + ], "providers/implementations/keymgmt/libfips-lib-dh_kmgmt.o" => [ "providers/implementations/keymgmt/dh_kmgmt.c" ], @@ -24935,9 +29134,24 @@ our %unified_info = ( "providers/implementations/keymgmt/libfips-lib-mac_legacy_kmgmt.o" => [ "providers/implementations/keymgmt/mac_legacy_kmgmt.c" ], + "providers/implementations/keymgmt/libfips-lib-ml_dsa_kmgmt.o" => [ + "providers/implementations/keymgmt/ml_dsa_kmgmt.c" + ], + "providers/implementations/keymgmt/libfips-lib-ml_kem_kmgmt.o" => [ + "providers/implementations/keymgmt/ml_kem_kmgmt.c" + ], + "providers/implementations/keymgmt/libfips-lib-mlx_kmgmt.o" => [ + "providers/implementations/keymgmt/mlx_kmgmt.c" + ], "providers/implementations/keymgmt/libfips-lib-rsa_kmgmt.o" => [ "providers/implementations/keymgmt/rsa_kmgmt.c" ], + "providers/implementations/keymgmt/libfips-lib-slh_dsa_kmgmt.o" => [ + "providers/implementations/keymgmt/slh_dsa_kmgmt.c" + ], + "providers/implementations/keymgmt/libtemplate-lib-template_kmgmt.o" => [ + "providers/implementations/keymgmt/template_kmgmt.c" + ], "providers/implementations/macs/libdefault-lib-blake2b_mac.o" => [ "providers/implementations/macs/blake2b_mac.c" ], @@ -24974,9 +29188,6 @@ our %unified_info = ( "providers/implementations/macs/libfips-lib-kmac_prov.o" => [ "providers/implementations/macs/kmac_prov.c" ], - "providers/implementations/rands/libdefault-lib-crngt.o" => [ - "providers/implementations/rands/crngt.c" - ], "providers/implementations/rands/libdefault-lib-drbg.o" => [ "providers/implementations/rands/drbg.c" ], @@ -24992,12 +29203,12 @@ our %unified_info = ( "providers/implementations/rands/libdefault-lib-seed_src.o" => [ "providers/implementations/rands/seed_src.c" ], + "providers/implementations/rands/libdefault-lib-seed_src_jitter.o" => [ + "providers/implementations/rands/seed_src_jitter.c" + ], "providers/implementations/rands/libdefault-lib-test_rng.o" => [ "providers/implementations/rands/test_rng.c" ], - "providers/implementations/rands/libfips-lib-crngt.o" => [ - "providers/implementations/rands/crngt.c" - ], "providers/implementations/rands/libfips-lib-drbg.o" => [ "providers/implementations/rands/drbg.c" ], @@ -25010,6 +29221,9 @@ our %unified_info = ( "providers/implementations/rands/libfips-lib-drbg_hmac.o" => [ "providers/implementations/rands/drbg_hmac.c" ], + "providers/implementations/rands/libfips-lib-fips_crng_test.o" => [ + "providers/implementations/rands/fips_crng_test.c" + ], "providers/implementations/rands/libfips-lib-test_rng.o" => [ "providers/implementations/rands/test_rng.c" ], @@ -25037,9 +29251,15 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-mac_legacy_sig.o" => [ "providers/implementations/signature/mac_legacy_sig.c" ], + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o" => [ + "providers/implementations/signature/ml_dsa_sig.c" + ], "providers/implementations/signature/libdefault-lib-rsa_sig.o" => [ "providers/implementations/signature/rsa_sig.c" ], + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o" => [ + "providers/implementations/signature/slh_dsa_sig.c" + ], "providers/implementations/signature/libdefault-lib-sm2_sig.o" => [ "providers/implementations/signature/sm2_sig.c" ], @@ -25055,9 +29275,27 @@ our %unified_info = ( "providers/implementations/signature/libfips-lib-mac_legacy_sig.o" => [ "providers/implementations/signature/mac_legacy_sig.c" ], + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o" => [ + "providers/implementations/signature/ml_dsa_sig.c" + ], "providers/implementations/signature/libfips-lib-rsa_sig.o" => [ "providers/implementations/signature/rsa_sig.c" ], + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o" => [ + "providers/implementations/signature/slh_dsa_sig.c" + ], + "providers/implementations/skeymgmt/libdefault-lib-aes_skmgmt.o" => [ + "providers/implementations/skeymgmt/aes_skmgmt.c" + ], + "providers/implementations/skeymgmt/libdefault-lib-generic.o" => [ + "providers/implementations/skeymgmt/generic.c" + ], + "providers/implementations/skeymgmt/libfips-lib-aes_skmgmt.o" => [ + "providers/implementations/skeymgmt/aes_skmgmt.c" + ], + "providers/implementations/skeymgmt/libfips-lib-generic.o" => [ + "providers/implementations/skeymgmt/generic.c" + ], "providers/implementations/storemgmt/libdefault-lib-file_store.o" => [ "providers/implementations/storemgmt/file_store.c" ], @@ -25081,8 +29319,12 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ec_sig.o", "providers/common/der/libcommon-lib-der_ecx_gen.o", "providers/common/der/libcommon-lib-der_ecx_key.o", + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o", + "providers/common/der/libcommon-lib-der_ml_dsa_key.o", "providers/common/der/libcommon-lib-der_rsa_gen.o", "providers/common/der/libcommon-lib-der_rsa_key.o", + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o", + "providers/common/der/libcommon-lib-der_slh_dsa_key.o", "providers/common/der/libcommon-lib-der_wrap_gen.o", "providers/common/libcommon-lib-provider_ctx.o", "providers/common/libcommon-lib-provider_err.o", @@ -25094,7 +29336,7 @@ our %unified_info = ( "providers/implementations/ciphers/libcommon-lib-ciphercommon_gcm_hw.o", "providers/implementations/ciphers/libcommon-lib-ciphercommon_hw.o", "providers/implementations/digests/libcommon-lib-digestcommon.o", - "ssl/record/libcommon-lib-tls_pad.o" + "ssl/record/methods/libcommon-lib-tls_pad.o" ], "providers/libcrypto-lib-baseprov.o" => [ "providers/baseprov.c" @@ -25130,6 +29372,9 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_aes_ccm_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_polyval.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_ocb.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_ocb_hw.o", @@ -25154,7 +29399,13 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_cts.o", "providers/implementations/ciphers/libdefault-lib-cipher_null.o", "providers/implementations/ciphers/libdefault-lib-cipher_sm4.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_sm4_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes_common.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes_default.o", @@ -25183,11 +29434,16 @@ our %unified_info = ( "providers/implementations/encode_decode/libdefault-lib-encode_key2ms.o", "providers/implementations/encode_decode/libdefault-lib-encode_key2text.o", "providers/implementations/encode_decode/libdefault-lib-endecoder_common.o", + "providers/implementations/encode_decode/libdefault-lib-ml_common_codecs.o", + "providers/implementations/encode_decode/libdefault-lib-ml_dsa_codecs.o", + "providers/implementations/encode_decode/libdefault-lib-ml_kem_codecs.o", "providers/implementations/exchange/libdefault-lib-dh_exch.o", "providers/implementations/exchange/libdefault-lib-ecdh_exch.o", "providers/implementations/exchange/libdefault-lib-ecx_exch.o", "providers/implementations/exchange/libdefault-lib-kdf_exch.o", + "providers/implementations/kdfs/libdefault-lib-argon2.o", "providers/implementations/kdfs/libdefault-lib-hkdf.o", + "providers/implementations/kdfs/libdefault-lib-hmacdrbg_kdf.o", "providers/implementations/kdfs/libdefault-lib-kbkdf.o", "providers/implementations/kdfs/libdefault-lib-krb5kdf.o", "providers/implementations/kdfs/libdefault-lib-pbkdf2.o", @@ -25198,6 +29454,11 @@ our %unified_info = ( "providers/implementations/kdfs/libdefault-lib-sskdf.o", "providers/implementations/kdfs/libdefault-lib-tls1_prf.o", "providers/implementations/kdfs/libdefault-lib-x942kdf.o", + "providers/implementations/kem/libdefault-lib-ec_kem.o", + "providers/implementations/kem/libdefault-lib-ecx_kem.o", + "providers/implementations/kem/libdefault-lib-kem_util.o", + "providers/implementations/kem/libdefault-lib-ml_kem_kem.o", + "providers/implementations/kem/libdefault-lib-mlx_kem.o", "providers/implementations/kem/libdefault-lib-rsa_kem.o", "providers/implementations/keymgmt/libdefault-lib-dh_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-dsa_kmgmt.o", @@ -25205,7 +29466,11 @@ our %unified_info = ( "providers/implementations/keymgmt/libdefault-lib-ecx_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-kdf_legacy_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-mac_legacy_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-ml_dsa_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-ml_kem_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-mlx_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-rsa_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-slh_dsa_kmgmt.o", "providers/implementations/macs/libdefault-lib-blake2b_mac.o", "providers/implementations/macs/libdefault-lib-blake2s_mac.o", "providers/implementations/macs/libdefault-lib-cmac_prov.o", @@ -25214,12 +29479,12 @@ our %unified_info = ( "providers/implementations/macs/libdefault-lib-kmac_prov.o", "providers/implementations/macs/libdefault-lib-poly1305_prov.o", "providers/implementations/macs/libdefault-lib-siphash_prov.o", - "providers/implementations/rands/libdefault-lib-crngt.o", "providers/implementations/rands/libdefault-lib-drbg.o", "providers/implementations/rands/libdefault-lib-drbg_ctr.o", "providers/implementations/rands/libdefault-lib-drbg_hash.o", "providers/implementations/rands/libdefault-lib-drbg_hmac.o", "providers/implementations/rands/libdefault-lib-seed_src.o", + "providers/implementations/rands/libdefault-lib-seed_src_jitter.o", "providers/implementations/rands/libdefault-lib-test_rng.o", "providers/implementations/rands/seeding/libdefault-lib-rand_cpu_x86.o", "providers/implementations/rands/seeding/libdefault-lib-rand_tsc.o", @@ -25229,11 +29494,15 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-ecdsa_sig.o", "providers/implementations/signature/libdefault-lib-eddsa_sig.o", "providers/implementations/signature/libdefault-lib-mac_legacy_sig.o", + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o", "providers/implementations/signature/libdefault-lib-rsa_sig.o", + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o", "providers/implementations/signature/libdefault-lib-sm2_sig.o", + "providers/implementations/skeymgmt/libdefault-lib-aes_skmgmt.o", + "providers/implementations/skeymgmt/libdefault-lib-generic.o", "providers/implementations/storemgmt/libdefault-lib-file_store.o", "providers/implementations/storemgmt/libdefault-lib-file_store_any2obj.o", - "ssl/libdefault-lib-s3_cbc.o" + "ssl/record/methods/libdefault-lib-ssl3_cbc.o" ], "providers/libfips.a" => [ "crypto/aes/libfips-lib-aes_cbc.o", @@ -25335,14 +29604,15 @@ our %unified_info = ( "crypto/evp/libfips-lib-kem.o", "crypto/evp/libfips-lib-keymgmt_lib.o", "crypto/evp/libfips-lib-keymgmt_meth.o", - "crypto/evp/libfips-lib-m_sigver.o", "crypto/evp/libfips-lib-mac_lib.o", "crypto/evp/libfips-lib-mac_meth.o", "crypto/evp/libfips-lib-p_lib.o", "crypto/evp/libfips-lib-pmeth_check.o", "crypto/evp/libfips-lib-pmeth_gn.o", "crypto/evp/libfips-lib-pmeth_lib.o", + "crypto/evp/libfips-lib-s_lib.o", "crypto/evp/libfips-lib-signature.o", + "crypto/evp/libfips-lib-skeymgmt_meth.o", "crypto/ffc/libfips-lib-ffc_backend.o", "crypto/ffc/libfips-lib-ffc_dh.o", "crypto/ffc/libfips-lib-ffc_key_generate.o", @@ -25350,6 +29620,8 @@ our %unified_info = ( "crypto/ffc/libfips-lib-ffc_params.o", "crypto/ffc/libfips-lib-ffc_params_generate.o", "crypto/ffc/libfips-lib-ffc_params_validate.o", + "crypto/hashtable/libfips-lib-hashfunc.o", + "crypto/hashtable/libfips-lib-hashtable.o", "crypto/hmac/libfips-lib-hmac.o", "crypto/lhash/libfips-lib-lhash.o", "crypto/libfips-lib-asn1_dsa.o", @@ -25372,6 +29644,7 @@ our %unified_info = ( "crypto/libfips-lib-params.o", "crypto/libfips-lib-params_dup.o", "crypto/libfips-lib-params_from_text.o", + "crypto/libfips-lib-params_idx.o", "crypto/libfips-lib-provider_core.o", "crypto/libfips-lib-provider_predefined.o", "crypto/libfips-lib-self_test_core.o", @@ -25380,6 +29653,16 @@ our %unified_info = ( "crypto/libfips-lib-threads_none.o", "crypto/libfips-lib-threads_pthread.o", "crypto/libfips-lib-threads_win.o", + "crypto/libfips-lib-time.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_encoders.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_key.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_key_compress.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_matrix.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_ntt.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_params.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_sample.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_sign.o", + "crypto/ml_kem/libfips-lib-ml_kem.o", "crypto/modes/libfips-lib-cbc128.o", "crypto/modes/libfips-lib-ccm128.o", "crypto/modes/libfips-lib-cfb128.o", @@ -25388,6 +29671,7 @@ our %unified_info = ( "crypto/modes/libfips-lib-ofb128.o", "crypto/modes/libfips-lib-wrap128.o", "crypto/modes/libfips-lib-xts128.o", + "crypto/modes/libfips-lib-xts128gb.o", "crypto/property/libfips-lib-defn_cache.o", "crypto/property/libfips-lib-property.o", "crypto/property/libfips-lib-property_parse.o", @@ -25416,7 +29700,23 @@ our %unified_info = ( "crypto/sha/libfips-lib-sha256.o", "crypto/sha/libfips-lib-sha3.o", "crypto/sha/libfips-lib-sha512.o", + "crypto/slh_dsa/libfips-lib-slh_adrs.o", + "crypto/slh_dsa/libfips-lib-slh_dsa.o", + "crypto/slh_dsa/libfips-lib-slh_dsa_hash_ctx.o", + "crypto/slh_dsa/libfips-lib-slh_dsa_key.o", + "crypto/slh_dsa/libfips-lib-slh_fors.o", + "crypto/slh_dsa/libfips-lib-slh_hash.o", + "crypto/slh_dsa/libfips-lib-slh_hypertree.o", + "crypto/slh_dsa/libfips-lib-slh_params.o", + "crypto/slh_dsa/libfips-lib-slh_wots.o", + "crypto/slh_dsa/libfips-lib-slh_xmss.o", "crypto/stack/libfips-lib-stack.o", + "crypto/thread/arch/libfips-lib-thread_none.o", + "crypto/thread/arch/libfips-lib-thread_posix.o", + "crypto/thread/arch/libfips-lib-thread_win.o", + "crypto/thread/libfips-lib-api.o", + "crypto/thread/libfips-lib-arch.o", + "crypto/thread/libfips-lib-internal.o", "providers/common/der/libfips-lib-der_rsa_sig.o", "providers/common/libfips-lib-bio_prov.o", "providers/common/libfips-lib-capabilities.o", @@ -25425,6 +29725,7 @@ our %unified_info = ( "providers/common/libfips-lib-provider_util.o", "providers/common/libfips-lib-securitycheck.o", "providers/common/libfips-lib-securitycheck_fips.o", + "providers/fips/libfips-lib-fipsindicator.o", "providers/fips/libfips-lib-fipsprov.o", "providers/fips/libfips-lib-self_test.o", "providers/fips/libfips-lib-self_test_kats.o", @@ -25462,6 +29763,8 @@ our %unified_info = ( "providers/implementations/kdfs/libfips-lib-sskdf.o", "providers/implementations/kdfs/libfips-lib-tls1_prf.o", "providers/implementations/kdfs/libfips-lib-x942kdf.o", + "providers/implementations/kem/libfips-lib-ml_kem_kem.o", + "providers/implementations/kem/libfips-lib-mlx_kem.o", "providers/implementations/kem/libfips-lib-rsa_kem.o", "providers/implementations/keymgmt/libfips-lib-dh_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-dsa_kmgmt.o", @@ -25469,24 +29772,32 @@ our %unified_info = ( "providers/implementations/keymgmt/libfips-lib-ecx_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-kdf_legacy_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-mac_legacy_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-ml_dsa_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-ml_kem_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-mlx_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-rsa_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-slh_dsa_kmgmt.o", "providers/implementations/macs/libfips-lib-cmac_prov.o", "providers/implementations/macs/libfips-lib-gmac_prov.o", "providers/implementations/macs/libfips-lib-hmac_prov.o", "providers/implementations/macs/libfips-lib-kmac_prov.o", - "providers/implementations/rands/libfips-lib-crngt.o", "providers/implementations/rands/libfips-lib-drbg.o", "providers/implementations/rands/libfips-lib-drbg_ctr.o", "providers/implementations/rands/libfips-lib-drbg_hash.o", "providers/implementations/rands/libfips-lib-drbg_hmac.o", + "providers/implementations/rands/libfips-lib-fips_crng_test.o", "providers/implementations/rands/libfips-lib-test_rng.o", "providers/implementations/signature/libfips-lib-dsa_sig.o", "providers/implementations/signature/libfips-lib-ecdsa_sig.o", "providers/implementations/signature/libfips-lib-eddsa_sig.o", "providers/implementations/signature/libfips-lib-mac_legacy_sig.o", + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o", "providers/implementations/signature/libfips-lib-rsa_sig.o", + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o", + "providers/implementations/skeymgmt/libfips-lib-aes_skmgmt.o", + "providers/implementations/skeymgmt/libfips-lib-generic.o", "providers/libcommon.a", - "ssl/libfips-lib-s3_cbc.o" + "ssl/record/methods/libfips-lib-ssl3_cbc.o" ], "providers/liblegacy-lib-prov_running.o" => [ "providers/prov_running.c" @@ -25516,13 +29827,12 @@ our %unified_info = ( "providers/implementations/digests/liblegacy-lib-ripemd_prov.o", "providers/implementations/digests/liblegacy-lib-wp_prov.o", "providers/implementations/kdfs/liblegacy-lib-pbkdf1.o", + "providers/implementations/kdfs/liblegacy-lib-pvkkdf.o", "providers/liblegacy-lib-prov_running.o" ], - "ssl/libdefault-lib-s3_cbc.o" => [ - "ssl/s3_cbc.c" - ], - "ssl/libfips-lib-s3_cbc.o" => [ - "ssl/s3_cbc.c" + "providers/libtemplate.a" => [ + "providers/implementations/kem/libtemplate-lib-template_kem.o", + "providers/implementations/keymgmt/libtemplate-lib-template_kmgmt.o" ], "ssl/libssl-lib-bio_ssl.o" => [ "ssl/bio_ssl.c" @@ -25542,6 +29852,9 @@ our %unified_info = ( "ssl/libssl-lib-pqueue.o" => [ "ssl/pqueue.c" ], + "ssl/libssl-lib-priority_queue.o" => [ + "ssl/priority_queue.c" + ], "ssl/libssl-lib-s3_enc.o" => [ "ssl/s3_enc.c" ], @@ -25557,15 +29870,15 @@ our %unified_info = ( "ssl/libssl-lib-ssl_cert.o" => [ "ssl/ssl_cert.c" ], + "ssl/libssl-lib-ssl_cert_comp.o" => [ + "ssl/ssl_cert_comp.c" + ], "ssl/libssl-lib-ssl_ciph.o" => [ "ssl/ssl_ciph.c" ], "ssl/libssl-lib-ssl_conf.o" => [ "ssl/ssl_conf.c" ], - "ssl/libssl-lib-ssl_err.o" => [ - "ssl/ssl_err.c" - ], "ssl/libssl-lib-ssl_err_legacy.o" => [ "ssl/ssl_err_legacy.c" ], @@ -25614,11 +29927,131 @@ our %unified_info = ( "ssl/libssl-lib-tls_srp.o" => [ "ssl/tls_srp.c" ], - "ssl/record/libcommon-lib-tls_pad.o" => [ - "ssl/record/tls_pad.c" + "ssl/quic/libssl-lib-cc_newreno.o" => [ + "ssl/quic/cc_newreno.c" + ], + "ssl/quic/libssl-lib-json_enc.o" => [ + "ssl/quic/json_enc.c" + ], + "ssl/quic/libssl-lib-qlog.o" => [ + "ssl/quic/qlog.c" + ], + "ssl/quic/libssl-lib-qlog_event_helpers.o" => [ + "ssl/quic/qlog_event_helpers.c" + ], + "ssl/quic/libssl-lib-quic_ackm.o" => [ + "ssl/quic/quic_ackm.c" + ], + "ssl/quic/libssl-lib-quic_cfq.o" => [ + "ssl/quic/quic_cfq.c" + ], + "ssl/quic/libssl-lib-quic_channel.o" => [ + "ssl/quic/quic_channel.c" + ], + "ssl/quic/libssl-lib-quic_demux.o" => [ + "ssl/quic/quic_demux.c" + ], + "ssl/quic/libssl-lib-quic_engine.o" => [ + "ssl/quic/quic_engine.c" + ], + "ssl/quic/libssl-lib-quic_fc.o" => [ + "ssl/quic/quic_fc.c" + ], + "ssl/quic/libssl-lib-quic_fifd.o" => [ + "ssl/quic/quic_fifd.c" + ], + "ssl/quic/libssl-lib-quic_impl.o" => [ + "ssl/quic/quic_impl.c" + ], + "ssl/quic/libssl-lib-quic_lcidm.o" => [ + "ssl/quic/quic_lcidm.c" + ], + "ssl/quic/libssl-lib-quic_method.o" => [ + "ssl/quic/quic_method.c" + ], + "ssl/quic/libssl-lib-quic_obj.o" => [ + "ssl/quic/quic_obj.c" + ], + "ssl/quic/libssl-lib-quic_port.o" => [ + "ssl/quic/quic_port.c" + ], + "ssl/quic/libssl-lib-quic_rcidm.o" => [ + "ssl/quic/quic_rcidm.c" + ], + "ssl/quic/libssl-lib-quic_reactor.o" => [ + "ssl/quic/quic_reactor.c" + ], + "ssl/quic/libssl-lib-quic_reactor_wait_ctx.o" => [ + "ssl/quic/quic_reactor_wait_ctx.c" + ], + "ssl/quic/libssl-lib-quic_record_rx.o" => [ + "ssl/quic/quic_record_rx.c" + ], + "ssl/quic/libssl-lib-quic_record_shared.o" => [ + "ssl/quic/quic_record_shared.c" + ], + "ssl/quic/libssl-lib-quic_record_tx.o" => [ + "ssl/quic/quic_record_tx.c" + ], + "ssl/quic/libssl-lib-quic_record_util.o" => [ + "ssl/quic/quic_record_util.c" + ], + "ssl/quic/libssl-lib-quic_rstream.o" => [ + "ssl/quic/quic_rstream.c" ], - "ssl/record/libssl-lib-dtls1_bitmap.o" => [ - "ssl/record/dtls1_bitmap.c" + "ssl/quic/libssl-lib-quic_rx_depack.o" => [ + "ssl/quic/quic_rx_depack.c" + ], + "ssl/quic/libssl-lib-quic_sf_list.o" => [ + "ssl/quic/quic_sf_list.c" + ], + "ssl/quic/libssl-lib-quic_srt_gen.o" => [ + "ssl/quic/quic_srt_gen.c" + ], + "ssl/quic/libssl-lib-quic_srtm.o" => [ + "ssl/quic/quic_srtm.c" + ], + "ssl/quic/libssl-lib-quic_sstream.o" => [ + "ssl/quic/quic_sstream.c" + ], + "ssl/quic/libssl-lib-quic_statm.o" => [ + "ssl/quic/quic_statm.c" + ], + "ssl/quic/libssl-lib-quic_stream_map.o" => [ + "ssl/quic/quic_stream_map.c" + ], + "ssl/quic/libssl-lib-quic_thread_assist.o" => [ + "ssl/quic/quic_thread_assist.c" + ], + "ssl/quic/libssl-lib-quic_tls.o" => [ + "ssl/quic/quic_tls.c" + ], + "ssl/quic/libssl-lib-quic_tls_api.o" => [ + "ssl/quic/quic_tls_api.c" + ], + "ssl/quic/libssl-lib-quic_trace.o" => [ + "ssl/quic/quic_trace.c" + ], + "ssl/quic/libssl-lib-quic_tserver.o" => [ + "ssl/quic/quic_tserver.c" + ], + "ssl/quic/libssl-lib-quic_txp.o" => [ + "ssl/quic/quic_txp.c" + ], + "ssl/quic/libssl-lib-quic_txpim.o" => [ + "ssl/quic/quic_txpim.c" + ], + "ssl/quic/libssl-lib-quic_types.o" => [ + "ssl/quic/quic_types.c" + ], + "ssl/quic/libssl-lib-quic_wire.o" => [ + "ssl/quic/quic_wire.c" + ], + "ssl/quic/libssl-lib-quic_wire_pkt.o" => [ + "ssl/quic/quic_wire_pkt.c" + ], + "ssl/quic/libssl-lib-uint_set.o" => [ + "ssl/quic/uint_set.c" ], "ssl/record/libssl-lib-rec_layer_d1.o" => [ "ssl/record/rec_layer_d1.c" @@ -25626,14 +30059,44 @@ our %unified_info = ( "ssl/record/libssl-lib-rec_layer_s3.o" => [ "ssl/record/rec_layer_s3.c" ], - "ssl/record/libssl-lib-ssl3_buffer.o" => [ - "ssl/record/ssl3_buffer.c" + "ssl/record/methods/libcommon-lib-tls_pad.o" => [ + "ssl/record/methods/tls_pad.c" + ], + "ssl/record/methods/libdefault-lib-ssl3_cbc.o" => [ + "ssl/record/methods/ssl3_cbc.c" + ], + "ssl/record/methods/libfips-lib-ssl3_cbc.o" => [ + "ssl/record/methods/ssl3_cbc.c" + ], + "ssl/record/methods/libssl-lib-dtls_meth.o" => [ + "ssl/record/methods/dtls_meth.c" + ], + "ssl/record/methods/libssl-lib-ssl3_meth.o" => [ + "ssl/record/methods/ssl3_meth.c" + ], + "ssl/record/methods/libssl-lib-tls13_meth.o" => [ + "ssl/record/methods/tls13_meth.c" + ], + "ssl/record/methods/libssl-lib-tls1_meth.o" => [ + "ssl/record/methods/tls1_meth.c" + ], + "ssl/record/methods/libssl-lib-tls_common.o" => [ + "ssl/record/methods/tls_common.c" ], - "ssl/record/libssl-lib-ssl3_record.o" => [ - "ssl/record/ssl3_record.c" + "ssl/record/methods/libssl-lib-tls_multib.o" => [ + "ssl/record/methods/tls_multib.c" ], - "ssl/record/libssl-lib-ssl3_record_tls13.o" => [ - "ssl/record/ssl3_record_tls13.c" + "ssl/record/methods/libssl-lib-tlsany_meth.o" => [ + "ssl/record/methods/tlsany_meth.c" + ], + "ssl/rio/libssl-lib-poll_builder.o" => [ + "ssl/rio/poll_builder.c" + ], + "ssl/rio/libssl-lib-poll_immediate.o" => [ + "ssl/rio/poll_immediate.c" + ], + "ssl/rio/libssl-lib-rio_notifier.o" => [ + "ssl/rio/rio_notifier.c" ], "ssl/statem/libssl-lib-extensions.o" => [ "ssl/statem/extensions.c" @@ -25729,6 +30192,8 @@ our %unified_info = ( "test/asn1_string_table_test.c" ], "test/asn1_time_test" => [ + "crypto/asn1/asn1_time_test-bin-a_time.o", + "crypto/asn1_time_test-bin-ctype.o", "test/asn1_time_test-bin-asn1_time_test.o" ], "test/asn1_time_test-bin-asn1_time_test.o" => [ @@ -25759,6 +30224,18 @@ our %unified_info = ( "test/bftest-bin-bftest.o" => [ "test/bftest.c" ], + "test/bio_addr_test" => [ + "test/bio_addr_test-bin-bio_addr_test.o" + ], + "test/bio_addr_test-bin-bio_addr_test.o" => [ + "test/bio_addr_test.c" + ], + "test/bio_base64_test" => [ + "test/bio_base64_test-bin-bio_base64_test.o" + ], + "test/bio_base64_test-bin-bio_base64_test.o" => [ + "test/bio_base64_test.c" + ], "test/bio_callback_test" => [ "test/bio_callback_test-bin-bio_callback_test.o" ], @@ -25771,6 +30248,12 @@ our %unified_info = ( "test/bio_core_test-bin-bio_core_test.o" => [ "test/bio_core_test.c" ], + "test/bio_dgram_test" => [ + "test/bio_dgram_test-bin-bio_dgram_test.o" + ], + "test/bio_dgram_test-bin-bio_dgram_test.o" => [ + "test/bio_dgram_test.c" + ], "test/bio_enc_test" => [ "test/bio_enc_test-bin-bio_enc_test.o" ], @@ -25783,6 +30266,12 @@ our %unified_info = ( "test/bio_memleak_test-bin-bio_memleak_test.o" => [ "test/bio_memleak_test.c" ], + "test/bio_meth_test" => [ + "test/bio_meth_test-bin-bio_meth_test.o" + ], + "test/bio_meth_test-bin-bio_meth_test.o" => [ + "test/bio_meth_test.c" + ], "test/bio_prefix_text" => [ "test/bio_prefix_text-bin-bio_prefix_text.o" ], @@ -25801,6 +30290,12 @@ our %unified_info = ( "test/bio_readbuffer_test-bin-bio_readbuffer_test.o" => [ "test/bio_readbuffer_test.c" ], + "test/bio_tfo_test" => [ + "test/bio_tfo_test-bin-bio_tfo_test.o" + ], + "test/bio_tfo_test-bin-bio_tfo_test.o" => [ + "test/bio_tfo_test.c" + ], "test/bioprinttest" => [ "test/bioprinttest-bin-bioprinttest.o" ], @@ -25819,6 +30314,12 @@ our %unified_info = ( "test/bntest-bin-bntest.o" => [ "test/bntest.c" ], + "test/build_wincrypt_test" => [ + "test/build_wincrypt_test-bin-build_wincrypt_test.o" + ], + "test/build_wincrypt_test-bin-build_wincrypt_test.o" => [ + "test/build_wincrypt_test.c" + ], "test/buildtest_c_aes" => [ "test/buildtest_c_aes-bin-buildtest_aes.o" ], @@ -25849,6 +30350,12 @@ our %unified_info = ( "test/buildtest_c_buffer-bin-buildtest_buffer.o" => [ "test/buildtest_buffer.c" ], + "test/buildtest_c_byteorder" => [ + "test/buildtest_c_byteorder-bin-buildtest_byteorder.o" + ], + "test/buildtest_c_byteorder-bin-buildtest_byteorder.o" => [ + "test/buildtest_byteorder.c" + ], "test/buildtest_c_camellia" => [ "test/buildtest_c_camellia-bin-buildtest_camellia.o" ], @@ -25897,12 +30404,6 @@ our %unified_info = ( "test/buildtest_c_core_dispatch-bin-buildtest_core_dispatch.o" => [ "test/buildtest_core_dispatch.c" ], - "test/buildtest_c_core_names" => [ - "test/buildtest_c_core_names-bin-buildtest_core_names.o" - ], - "test/buildtest_c_core_names-bin-buildtest_core_names.o" => [ - "test/buildtest_core_names.c" - ], "test/buildtest_c_core_object" => [ "test/buildtest_c_core_object-bin-buildtest_core_object.o" ], @@ -25951,6 +30452,12 @@ our %unified_info = ( "test/buildtest_c_e_os2-bin-buildtest_e_os2.o" => [ "test/buildtest_e_os2.c" ], + "test/buildtest_c_e_ostime" => [ + "test/buildtest_c_e_ostime-bin-buildtest_e_ostime.o" + ], + "test/buildtest_c_e_ostime-bin-buildtest_e_ostime.o" => [ + "test/buildtest_e_ostime.c" + ], "test/buildtest_c_ebcdic" => [ "test/buildtest_c_ebcdic-bin-buildtest_ebcdic.o" ], @@ -26005,6 +30512,12 @@ our %unified_info = ( "test/buildtest_c_hmac-bin-buildtest_hmac.o" => [ "test/buildtest_hmac.c" ], + "test/buildtest_c_hpke" => [ + "test/buildtest_c_hpke-bin-buildtest_hpke.o" + ], + "test/buildtest_c_hpke-bin-buildtest_hpke.o" => [ + "test/buildtest_hpke.c" + ], "test/buildtest_c_http" => [ "test/buildtest_c_http-bin-buildtest_http.o" ], @@ -26017,6 +30530,12 @@ our %unified_info = ( "test/buildtest_c_idea-bin-buildtest_idea.o" => [ "test/buildtest_idea.c" ], + "test/buildtest_c_indicator" => [ + "test/buildtest_c_indicator-bin-buildtest_indicator.o" + ], + "test/buildtest_c_indicator-bin-buildtest_indicator.o" => [ + "test/buildtest_indicator.c" + ], "test/buildtest_c_kdf" => [ "test/buildtest_c_kdf-bin-buildtest_kdf.o" ], @@ -26047,6 +30566,12 @@ our %unified_info = ( "test/buildtest_c_mdc2-bin-buildtest_mdc2.o" => [ "test/buildtest_mdc2.c" ], + "test/buildtest_c_ml_kem" => [ + "test/buildtest_c_ml_kem-bin-buildtest_ml_kem.o" + ], + "test/buildtest_c_ml_kem-bin-buildtest_ml_kem.o" => [ + "test/buildtest_ml_kem.c" + ], "test/buildtest_c_modes" => [ "test/buildtest_c_modes-bin-buildtest_modes.o" ], @@ -26107,6 +30632,12 @@ our %unified_info = ( "test/buildtest_c_provider-bin-buildtest_provider.o" => [ "test/buildtest_provider.c" ], + "test/buildtest_c_quic" => [ + "test/buildtest_c_quic-bin-buildtest_quic.o" + ], + "test/buildtest_c_quic-bin-buildtest_quic.o" => [ + "test/buildtest_quic.c" + ], "test/buildtest_c_rand" => [ "test/buildtest_c_rand-bin-buildtest_rand.o" ], @@ -26191,6 +30722,12 @@ our %unified_info = ( "test/buildtest_c_symhacks-bin-buildtest_symhacks.o" => [ "test/buildtest_symhacks.c" ], + "test/buildtest_c_thread" => [ + "test/buildtest_c_thread-bin-buildtest_thread.o" + ], + "test/buildtest_c_thread-bin-buildtest_thread.o" => [ + "test/buildtest_thread.c" + ], "test/buildtest_c_tls1" => [ "test/buildtest_c_tls1-bin-buildtest_tls1.o" ], @@ -26221,6 +30758,29 @@ our %unified_info = ( "test/buildtest_c_whrlpool-bin-buildtest_whrlpool.o" => [ "test/buildtest_whrlpool.c" ], + "test/byteorder_test" => [ + "test/byteorder_test-bin-byteorder_test.o" + ], + "test/byteorder_test-bin-byteorder_test.o" => [ + "test/byteorder_test.c" + ], + "test/ca_internals_test" => [ + "apps/ca_internals_test-bin-ca.o", + "apps/lib/ca_internals_test-bin-app_libctx.o", + "apps/lib/ca_internals_test-bin-app_provider.o", + "apps/lib/ca_internals_test-bin-app_rand.o", + "apps/lib/ca_internals_test-bin-app_x509.o", + "apps/lib/ca_internals_test-bin-apps.o", + "apps/lib/ca_internals_test-bin-apps_ui.o", + "apps/lib/ca_internals_test-bin-engine.o", + "apps/lib/ca_internals_test-bin-fmt.o", + "crypto/asn1/ca_internals_test-bin-a_time.o", + "crypto/ca_internals_test-bin-ctype.o", + "test/ca_internals_test-bin-ca_internals_test.o" + ], + "test/ca_internals_test-bin-ca_internals_test.o" => [ + "test/ca_internals_test.c" + ], "test/casttest" => [ "test/casttest-bin-casttest.o" ], @@ -26399,6 +30959,12 @@ our %unified_info = ( "test/danetest-bin-danetest.o" => [ "test/danetest.c" ], + "test/decoder_propq_test" => [ + "test/decoder_propq_test-bin-decoder_propq_test.o" + ], + "test/decoder_propq_test-bin-decoder_propq_test.o" => [ + "test/decoder_propq_test.c" + ], "test/defltfips_test" => [ "test/defltfips_test-bin-defltfips_test.o" ], @@ -26480,6 +31046,7 @@ our %unified_info = ( "test/ectest.c" ], "test/endecode_test" => [ + "providers/endecode_test-bin-legacyprov.o", "test/endecode_test-bin-endecode_test.o", "test/helpers/endecode_test-bin-predefined_dhparams.o" ], @@ -26512,17 +31079,29 @@ our %unified_info = ( ], "test/evp_extra_test" => [ "providers/evp_extra_test-bin-legacyprov.o", - "test/evp_extra_test-bin-evp_extra_test.o" + "test/evp_extra_test-bin-evp_extra_test.o", + "test/evp_extra_test-bin-fake_pipelineprov.o", + "test/evp_extra_test-bin-fake_rsaprov.o" ], "test/evp_extra_test-bin-evp_extra_test.o" => [ "test/evp_extra_test.c" ], + "test/evp_extra_test-bin-fake_pipelineprov.o" => [ + "test/fake_pipelineprov.c" + ], + "test/evp_extra_test-bin-fake_rsaprov.o" => [ + "test/fake_rsaprov.c" + ], "test/evp_extra_test2" => [ - "test/evp_extra_test2-bin-evp_extra_test2.o" + "test/evp_extra_test2-bin-evp_extra_test2.o", + "test/evp_extra_test2-bin-tls-provider.o" ], "test/evp_extra_test2-bin-evp_extra_test2.o" => [ "test/evp_extra_test2.c" ], + "test/evp_extra_test2-bin-tls-provider.o" => [ + "test/tls-provider.c" + ], "test/evp_fetch_prov_test" => [ "test/evp_fetch_prov_test-bin-evp_fetch_prov_test.o" ], @@ -26547,6 +31126,12 @@ our %unified_info = ( "test/evp_pkey_ctx_new_from_name-bin-evp_pkey_ctx_new_from_name.o" => [ "test/evp_pkey_ctx_new_from_name.c" ], + "test/evp_pkey_dhkem_test" => [ + "test/evp_pkey_dhkem_test-bin-evp_pkey_dhkem_test.o" + ], + "test/evp_pkey_dhkem_test-bin-evp_pkey_dhkem_test.o" => [ + "test/evp_pkey_dhkem_test.c" + ], "test/evp_pkey_dparams_test" => [ "test/evp_pkey_dparams_test-bin-evp_pkey_dparams_test.o" ], @@ -26559,12 +31144,28 @@ our %unified_info = ( "test/evp_pkey_provided_test-bin-evp_pkey_provided_test.o" => [ "test/evp_pkey_provided_test.c" ], + "test/evp_skey_test" => [ + "test/evp_skey_test-bin-evp_skey_test.o", + "test/evp_skey_test-bin-fake_cipherprov.o" + ], + "test/evp_skey_test-bin-evp_skey_test.o" => [ + "test/evp_skey_test.c" + ], + "test/evp_skey_test-bin-fake_cipherprov.o" => [ + "test/fake_cipherprov.c" + ], "test/evp_test" => [ "test/evp_test-bin-evp_test.o" ], "test/evp_test-bin-evp_test.o" => [ "test/evp_test.c" ], + "test/evp_xof_test" => [ + "test/evp_xof_test-bin-evp_xof_test.o" + ], + "test/evp_xof_test-bin-evp_xof_test.o" => [ + "test/evp_xof_test.c" + ], "test/exdatatest" => [ "test/exdatatest-bin-exdatatest.o" ], @@ -26650,15 +31251,108 @@ our %unified_info = ( "test/helpers/fatalerrtest-bin-ssltestlib.o" => [ "test/helpers/ssltestlib.c" ], + "test/helpers/json_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/json_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/json_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/json_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/pkcs12_api_test-bin-pkcs12.o" => [ + "test/helpers/pkcs12.c" + ], "test/helpers/pkcs12_format_test-bin-pkcs12.o" => [ "test/helpers/pkcs12.c" ], + "test/helpers/quic_multistream_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quic_multistream_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quic_multistream_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quic_multistream_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quic_newcid_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quic_newcid_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quic_newcid_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quic_newcid_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quic_radix_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quic_radix_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quic_radix_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quic_radix_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quic_srt_gen_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quic_srt_gen_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quic_srt_gen_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quic_srt_gen_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quicapitest-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quicapitest-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quicapitest-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quicapitest-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quicfaultstest-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quicfaultstest-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quicfaultstest-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quicfaultstest-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], "test/helpers/recordlentest-bin-ssltestlib.o" => [ "test/helpers/ssltestlib.c" ], + "test/helpers/rpktest-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], "test/helpers/servername_test-bin-ssltestlib.o" => [ "test/helpers/ssltestlib.c" ], + "test/helpers/ssl_handshake_rtt_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], "test/helpers/ssl_old_test-bin-predefined_dhparams.o" => [ "test/helpers/predefined_dhparams.c" ], @@ -26686,6 +31380,9 @@ our %unified_info = ( "test/helpers/tls13ccstest-bin-ssltestlib.o" => [ "test/helpers/ssltestlib.c" ], + "test/helpers/tls13groupselection_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], "test/hexstr_test" => [ "test/hexstr_test-bin-hexstr_test.o" ], @@ -26698,6 +31395,12 @@ our %unified_info = ( "test/hmactest-bin-hmactest.o" => [ "test/hmactest.c" ], + "test/hpke_test" => [ + "test/hpke_test-bin-hpke_test.o" + ], + "test/hpke_test-bin-hpke_test.o" => [ + "test/hpke_test.c" + ], "test/http_test" => [ "test/http_test-bin-http_test.o" ], @@ -26716,6 +31419,16 @@ our %unified_info = ( "test/igetest-bin-igetest.o" => [ "test/igetest.c" ], + "test/json_test" => [ + "test/helpers/json_test-bin-noisydgrambio.o", + "test/helpers/json_test-bin-pktsplitbio.o", + "test/helpers/json_test-bin-quictestlib.o", + "test/helpers/json_test-bin-ssltestlib.o", + "test/json_test-bin-json_test.o" + ], + "test/json_test-bin-json_test.o" => [ + "test/json_test.c" + ], "test/keymgmt_internal_test" => [ "test/keymgmt_internal_test-bin-keymgmt_internal_test.o" ], @@ -26736,6 +31449,7 @@ our %unified_info = ( "test/testutil/libtestutil-lib-driver.o", "test/testutil/libtestutil-lib-fake_random.o", "test/testutil/libtestutil-lib-format_output.o", + "test/testutil/libtestutil-lib-helper.o", "test/testutil/libtestutil-lib-load.o", "test/testutil/libtestutil-lib-main.o", "test/testutil/libtestutil-lib-options.o", @@ -26748,6 +31462,12 @@ our %unified_info = ( "test/testutil/libtestutil-lib-tests.o", "test/testutil/libtestutil-lib-testutil_init.o" ], + "test/list_test" => [ + "test/list_test-bin-list_test.o" + ], + "test/list_test-bin-list_test.o" => [ + "test/list_test.c" + ], "test/localetest" => [ "test/localetest-bin-localetest.o" ], @@ -26766,12 +31486,36 @@ our %unified_info = ( "test/mdc2test-bin-mdc2test.o" => [ "test/mdc2test.c" ], + "test/membio_test" => [ + "test/membio_test-bin-membio_test.o" + ], + "test/membio_test-bin-membio_test.o" => [ + "test/membio_test.c" + ], "test/memleaktest" => [ "test/memleaktest-bin-memleaktest.o" ], "test/memleaktest-bin-memleaktest.o" => [ "test/memleaktest.c" ], + "test/ml_dsa_test" => [ + "test/ml_dsa_test-bin-ml_dsa_test.o" + ], + "test/ml_dsa_test-bin-ml_dsa_test.o" => [ + "test/ml_dsa_test.c" + ], + "test/ml_kem_evp_extra_test" => [ + "test/ml_kem_evp_extra_test-bin-ml_kem_evp_extra_test.o" + ], + "test/ml_kem_evp_extra_test-bin-ml_kem_evp_extra_test.o" => [ + "test/ml_kem_evp_extra_test.c" + ], + "test/ml_kem_internal_test" => [ + "test/ml_kem_internal_test-bin-ml_kem_internal_test.o" + ], + "test/ml_kem_internal_test-bin-ml_kem_internal_test.o" => [ + "test/ml_kem_internal_test.c" + ], "test/modes_internal_test" => [ "test/modes_internal_test-bin-modes_internal_test.o" ], @@ -26817,11 +31561,18 @@ our %unified_info = ( "test/p_test.c" ], "test/packettest" => [ + "crypto/packettest-bin-quic_vlint.o", "test/packettest-bin-packettest.o" ], "test/packettest-bin-packettest.o" => [ "test/packettest.c" ], + "test/pairwise_fail_test" => [ + "test/pairwise_fail_test-bin-pairwise_fail_test.o" + ], + "test/pairwise_fail_test-bin-pairwise_fail_test.o" => [ + "test/pairwise_fail_test.c" + ], "test/param_build_test" => [ "test/param_build_test-bin-param_build_test.o" ], @@ -26870,6 +31621,13 @@ our %unified_info = ( "test/pemtest-bin-pemtest.o" => [ "test/pemtest.c" ], + "test/pkcs12_api_test" => [ + "test/helpers/pkcs12_api_test-bin-pkcs12.o", + "test/pkcs12_api_test-bin-pkcs12_api_test.o" + ], + "test/pkcs12_api_test-bin-pkcs12_api_test.o" => [ + "test/pkcs12_api_test.c" + ], "test/pkcs12_format_test" => [ "test/helpers/pkcs12_format_test-bin-pkcs12.o", "test/pkcs12_format_test-bin-pkcs12_format_test.o" @@ -26901,6 +31659,12 @@ our %unified_info = ( "test/poly1305_internal_test-bin-poly1305_internal_test.o" => [ "test/poly1305_internal_test.c" ], + "test/priority_queue_test" => [ + "test/priority_queue_test-bin-priority_queue_test.o" + ], + "test/priority_queue_test-bin-priority_queue_test.o" => [ + "test/priority_queue_test.c" + ], "test/property_test" => [ "test/property_test-bin-property_test.o" ], @@ -26919,6 +31683,12 @@ our %unified_info = ( "test/provfetchtest-bin-provfetchtest.o" => [ "test/provfetchtest.c" ], + "test/provider_default_search_path_test" => [ + "test/provider_default_search_path_test-bin-provider_default_search_path_test.o" + ], + "test/provider_default_search_path_test-bin-provider_default_search_path_test.o" => [ + "test/provider_default_search_path_test.c" + ], "test/provider_fallback_test" => [ "test/provider_fallback_test-bin-provider_fallback_test.o" ], @@ -26967,6 +31737,174 @@ our %unified_info = ( "test/punycode_test-bin-punycode_test.o" => [ "test/punycode_test.c" ], + "test/quic_ackm_test" => [ + "test/quic_ackm_test-bin-cc_dummy.o", + "test/quic_ackm_test-bin-quic_ackm_test.o" + ], + "test/quic_ackm_test-bin-cc_dummy.o" => [ + "test/cc_dummy.c" + ], + "test/quic_ackm_test-bin-quic_ackm_test.o" => [ + "test/quic_ackm_test.c" + ], + "test/quic_cc_test" => [ + "test/quic_cc_test-bin-quic_cc_test.o" + ], + "test/quic_cc_test-bin-quic_cc_test.o" => [ + "test/quic_cc_test.c" + ], + "test/quic_cfq_test" => [ + "test/quic_cfq_test-bin-quic_cfq_test.o" + ], + "test/quic_cfq_test-bin-quic_cfq_test.o" => [ + "test/quic_cfq_test.c" + ], + "test/quic_client_test" => [ + "test/quic_client_test-bin-quic_client_test.o" + ], + "test/quic_client_test-bin-quic_client_test.o" => [ + "test/quic_client_test.c" + ], + "test/quic_fc_test" => [ + "test/quic_fc_test-bin-quic_fc_test.o" + ], + "test/quic_fc_test-bin-quic_fc_test.o" => [ + "test/quic_fc_test.c" + ], + "test/quic_fifd_test" => [ + "test/quic_fifd_test-bin-cc_dummy.o", + "test/quic_fifd_test-bin-quic_fifd_test.o" + ], + "test/quic_fifd_test-bin-cc_dummy.o" => [ + "test/cc_dummy.c" + ], + "test/quic_fifd_test-bin-quic_fifd_test.o" => [ + "test/quic_fifd_test.c" + ], + "test/quic_lcidm_test" => [ + "test/quic_lcidm_test-bin-quic_lcidm_test.o" + ], + "test/quic_lcidm_test-bin-quic_lcidm_test.o" => [ + "test/quic_lcidm_test.c" + ], + "test/quic_multistream_test" => [ + "test/helpers/quic_multistream_test-bin-noisydgrambio.o", + "test/helpers/quic_multistream_test-bin-pktsplitbio.o", + "test/helpers/quic_multistream_test-bin-quictestlib.o", + "test/helpers/quic_multistream_test-bin-ssltestlib.o", + "test/quic_multistream_test-bin-quic_multistream_test.o" + ], + "test/quic_multistream_test-bin-quic_multistream_test.o" => [ + "test/quic_multistream_test.c" + ], + "test/quic_newcid_test" => [ + "test/helpers/quic_newcid_test-bin-noisydgrambio.o", + "test/helpers/quic_newcid_test-bin-pktsplitbio.o", + "test/helpers/quic_newcid_test-bin-quictestlib.o", + "test/helpers/quic_newcid_test-bin-ssltestlib.o", + "test/quic_newcid_test-bin-quic_newcid_test.o" + ], + "test/quic_newcid_test-bin-quic_newcid_test.o" => [ + "test/quic_newcid_test.c" + ], + "test/quic_qlog_test" => [ + "test/quic_qlog_test-bin-quic_qlog_test.o" + ], + "test/quic_qlog_test-bin-quic_qlog_test.o" => [ + "test/quic_qlog_test.c" + ], + "test/quic_radix_test" => [ + "test/helpers/quic_radix_test-bin-noisydgrambio.o", + "test/helpers/quic_radix_test-bin-pktsplitbio.o", + "test/helpers/quic_radix_test-bin-quictestlib.o", + "test/helpers/quic_radix_test-bin-ssltestlib.o", + "test/radix/quic_radix_test-bin-quic_radix.o" + ], + "test/quic_rcidm_test" => [ + "test/quic_rcidm_test-bin-quic_rcidm_test.o" + ], + "test/quic_rcidm_test-bin-quic_rcidm_test.o" => [ + "test/quic_rcidm_test.c" + ], + "test/quic_record_test" => [ + "test/quic_record_test-bin-quic_record_test.o" + ], + "test/quic_record_test-bin-quic_record_test.o" => [ + "test/quic_record_test.c" + ], + "test/quic_srt_gen_test" => [ + "test/helpers/quic_srt_gen_test-bin-noisydgrambio.o", + "test/helpers/quic_srt_gen_test-bin-pktsplitbio.o", + "test/helpers/quic_srt_gen_test-bin-quictestlib.o", + "test/helpers/quic_srt_gen_test-bin-ssltestlib.o", + "test/quic_srt_gen_test-bin-quic_srt_gen_test.o" + ], + "test/quic_srt_gen_test-bin-quic_srt_gen_test.o" => [ + "test/quic_srt_gen_test.c" + ], + "test/quic_srtm_test" => [ + "test/quic_srtm_test-bin-quic_srtm_test.o" + ], + "test/quic_srtm_test-bin-quic_srtm_test.o" => [ + "test/quic_srtm_test.c" + ], + "test/quic_stream_test" => [ + "test/quic_stream_test-bin-quic_stream_test.o" + ], + "test/quic_stream_test-bin-quic_stream_test.o" => [ + "test/quic_stream_test.c" + ], + "test/quic_tserver_test" => [ + "test/quic_tserver_test-bin-quic_tserver_test.o" + ], + "test/quic_tserver_test-bin-quic_tserver_test.o" => [ + "test/quic_tserver_test.c" + ], + "test/quic_txp_test" => [ + "test/quic_txp_test-bin-cc_dummy.o", + "test/quic_txp_test-bin-quic_txp_test.o" + ], + "test/quic_txp_test-bin-cc_dummy.o" => [ + "test/cc_dummy.c" + ], + "test/quic_txp_test-bin-quic_txp_test.o" => [ + "test/quic_txp_test.c" + ], + "test/quic_txpim_test" => [ + "test/quic_txpim_test-bin-quic_txpim_test.o" + ], + "test/quic_txpim_test-bin-quic_txpim_test.o" => [ + "test/quic_txpim_test.c" + ], + "test/quic_wire_test" => [ + "test/quic_wire_test-bin-quic_wire_test.o" + ], + "test/quic_wire_test-bin-quic_wire_test.o" => [ + "test/quic_wire_test.c" + ], + "test/quicapitest" => [ + "test/helpers/quicapitest-bin-noisydgrambio.o", + "test/helpers/quicapitest-bin-pktsplitbio.o", + "test/helpers/quicapitest-bin-quictestlib.o", + "test/helpers/quicapitest-bin-ssltestlib.o", + "test/quicapitest-bin-quicapitest.o" + ], + "test/quicapitest-bin-quicapitest.o" => [ + "test/quicapitest.c" + ], + "test/quicfaultstest" => [ + "test/helpers/quicfaultstest-bin-noisydgrambio.o", + "test/helpers/quicfaultstest-bin-pktsplitbio.o", + "test/helpers/quicfaultstest-bin-quictestlib.o", + "test/helpers/quicfaultstest-bin-ssltestlib.o", + "test/quicfaultstest-bin-quicfaultstest.o" + ], + "test/quicfaultstest-bin-quicfaultstest.o" => [ + "test/quicfaultstest.c" + ], + "test/radix/quic_radix_test-bin-quic_radix.o" => [ + "test/radix/quic_radix.c" + ], "test/rand_status_test" => [ "test/rand_status_test-bin-rand_status_test.o" ], @@ -26997,11 +31935,11 @@ our %unified_info = ( "test/rc5test-bin-rc5test.o" => [ "test/rc5test.c" ], - "test/rdrand_sanitytest" => [ - "test/rdrand_sanitytest-bin-rdrand_sanitytest.o" + "test/rdcpu_sanitytest" => [ + "test/rdcpu_sanitytest-bin-rdcpu_sanitytest.o" ], - "test/rdrand_sanitytest-bin-rdrand_sanitytest.o" => [ - "test/rdrand_sanitytest.c" + "test/rdcpu_sanitytest-bin-rdcpu_sanitytest.o" => [ + "test/rdcpu_sanitytest.c" ], "test/recordlentest" => [ "test/helpers/recordlentest-bin-ssltestlib.o", @@ -27010,6 +31948,13 @@ our %unified_info = ( "test/recordlentest-bin-recordlentest.o" => [ "test/recordlentest.c" ], + "test/rpktest" => [ + "test/helpers/rpktest-bin-ssltestlib.o", + "test/rpktest-bin-rpktest.o" + ], + "test/rpktest-bin-rpktest.o" => [ + "test/rpktest.c" + ], "test/rsa_complex" => [ "test/rsa_complex-bin-rsa_complex.o" ], @@ -27034,6 +31979,18 @@ our %unified_info = ( "test/rsa_test-bin-rsa_test.o" => [ "test/rsa_test.c" ], + "test/rsa_x931_test" => [ + "test/rsa_x931_test-bin-rsa_x931_test.o" + ], + "test/rsa_x931_test-bin-rsa_x931_test.o" => [ + "test/rsa_x931_test.c" + ], + "test/safe_math_test" => [ + "test/safe_math_test-bin-safe_math_test.o" + ], + "test/safe_math_test-bin-safe_math_test.o" => [ + "test/safe_math_test.c" + ], "test/sanitytest" => [ "test/sanitytest-bin-sanitytest.o" ], @@ -27065,6 +32022,12 @@ our %unified_info = ( "test/siphash_internal_test-bin-siphash_internal_test.o" => [ "test/siphash_internal_test.c" ], + "test/slh_dsa_test" => [ + "test/slh_dsa_test-bin-slh_dsa_test.o" + ], + "test/slh_dsa_test-bin-slh_dsa_test.o" => [ + "test/slh_dsa_test.c" + ], "test/sm2_internal_test" => [ "test/sm2_internal_test-bin-sm2_internal_test.o" ], @@ -27107,6 +32070,13 @@ our %unified_info = ( "test/ssl_ctx_test-bin-ssl_ctx_test.o" => [ "test/ssl_ctx_test.c" ], + "test/ssl_handshake_rtt_test" => [ + "test/helpers/ssl_handshake_rtt_test-bin-ssltestlib.o", + "test/ssl_handshake_rtt_test-bin-ssl_handshake_rtt_test.o" + ], + "test/ssl_handshake_rtt_test-bin-ssl_handshake_rtt_test.o" => [ + "test/ssl_handshake_rtt_test.c" + ], "test/ssl_old_test" => [ "test/helpers/ssl_old_test-bin-predefined_dhparams.o", "test/ssl_old_test-bin-ssl_old_test.o" @@ -27165,6 +32135,12 @@ our %unified_info = ( "test/stack_test-bin-stack_test.o" => [ "test/stack_test.c" ], + "test/strtoultest" => [ + "test/strtoultest-bin-strtoultest.o" + ], + "test/strtoultest-bin-strtoultest.o" => [ + "test/strtoultest.c" + ], "test/sysdefaulttest" => [ "test/sysdefaulttest-bin-sysdefaulttest.o" ], @@ -27195,6 +32171,9 @@ our %unified_info = ( "test/testutil/libtestutil-lib-format_output.o" => [ "test/testutil/format_output.c" ], + "test/testutil/libtestutil-lib-helper.o" => [ + "test/testutil/helper.c" + ], "test/testutil/libtestutil-lib-load.o" => [ "test/testutil/load.c" ], @@ -27228,6 +32207,12 @@ our %unified_info = ( "test/testutil/libtestutil-lib-testutil_init.o" => [ "test/testutil/testutil_init.c" ], + "test/threadpool_test" => [ + "test/threadpool_test-bin-threadpool_test.o" + ], + "test/threadpool_test-bin-threadpool_test.o" => [ + "test/threadpool_test.c" + ], "test/threadstest" => [ "test/threadstest-bin-threadstest.o" ], @@ -27246,6 +32231,12 @@ our %unified_info = ( "test/time_offset_test-bin-time_offset_test.o" => [ "test/time_offset_test.c" ], + "test/time_test" => [ + "test/time_test-bin-time_test.o" + ], + "test/time_test-bin-time_test.o" => [ + "test/time_test.c" + ], "test/tls13ccstest" => [ "test/helpers/tls13ccstest-bin-ssltestlib.o", "test/tls13ccstest-bin-tls13ccstest.o" @@ -27259,6 +32250,13 @@ our %unified_info = ( "test/tls13encryptiontest-bin-tls13encryptiontest.o" => [ "test/tls13encryptiontest.c" ], + "test/tls13groupselection_test" => [ + "test/helpers/tls13groupselection_test-bin-ssltestlib.o", + "test/tls13groupselection_test-bin-tls13groupselection_test.o" + ], + "test/tls13groupselection_test-bin-tls13groupselection_test.o" => [ + "test/tls13groupselection_test.c" + ], "test/trace_api_test" => [ "test/trace_api_test-bin-trace_api_test.o" ], @@ -27314,6 +32312,12 @@ our %unified_info = ( "test/wpackettest-bin-wpackettest.o" => [ "test/wpackettest.c" ], + "test/x509_acert_test" => [ + "test/x509_acert_test-bin-x509_acert_test.o" + ], + "test/x509_acert_test-bin-x509_acert_test.o" => [ + "test/x509_acert_test.c" + ], "test/x509_check_cert_pkey_test" => [ "test/x509_check_cert_pkey_test-bin-x509_check_cert_pkey_test.o" ], @@ -27332,6 +32336,24 @@ our %unified_info = ( "test/x509_internal_test-bin-x509_internal_test.o" => [ "test/x509_internal_test.c" ], + "test/x509_load_cert_file_test" => [ + "test/x509_load_cert_file_test-bin-x509_load_cert_file_test.o" + ], + "test/x509_load_cert_file_test-bin-x509_load_cert_file_test.o" => [ + "test/x509_load_cert_file_test.c" + ], + "test/x509_req_test" => [ + "test/x509_req_test-bin-x509_req_test.o" + ], + "test/x509_req_test-bin-x509_req_test.o" => [ + "test/x509_req_test.c" + ], + "test/x509_test" => [ + "test/x509_test-bin-x509_test.o" + ], + "test/x509_test-bin-x509_test.o" => [ + "test/x509_test.c" + ], "test/x509_time_test" => [ "test/x509_time_test-bin-x509_time_test.o" ], @@ -27395,6 +32417,7 @@ my @makevars = ( "LDLIBS", "MT", "MTFLAGS", + "OBJCOPY", "PERL", "RANLIB", "RC", @@ -27411,6 +32434,12 @@ my %disabled_info = ( "asm" => { "macro" => "OPENSSL_NO_ASM" }, + "brotli" => { + "macro" => "OPENSSL_NO_BROTLI" + }, + "brotli-dynamic" => { + "macro" => "OPENSSL_NO_BROTLI_DYNAMIC" + }, "comp" => { "macro" => "OPENSSL_NO_COMP", "skipped" => [ @@ -27423,6 +32452,9 @@ my %disabled_info = ( "crypto-mdebug-backtrace" => { "macro" => "OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE" }, + "demos" => { + "macro" => "OPENSSL_NO_DEMOS" + }, "ec_nistp_64_gcc_128" => { "macro" => "OPENSSL_NO_EC_NISTP_64_GCC_128" }, @@ -27432,12 +32464,24 @@ my %disabled_info = ( "external-tests" => { "macro" => "OPENSSL_NO_EXTERNAL_TESTS" }, + "fips-jitter" => { + "macro" => "OPENSSL_NO_FIPS_JITTER" + }, "fuzz-afl" => { "macro" => "OPENSSL_NO_FUZZ_AFL" }, "fuzz-libfuzzer" => { "macro" => "OPENSSL_NO_FUZZ_LIBFUZZER" }, + "h3demo" => { + "macro" => "OPENSSL_NO_H3DEMO" + }, + "hqinterop" => { + "macro" => "OPENSSL_NO_HQINTEROP" + }, + "jitter" => { + "macro" => "OPENSSL_NO_JITTER" + }, "ktls" => { "macro" => "OPENSSL_NO_KTLS" }, @@ -27453,6 +32497,9 @@ my %disabled_info = ( "msan" => { "macro" => "OPENSSL_NO_MSAN" }, + "pie" => { + "macro" => "OPENSSL_NO_PIE" + }, "rc5" => { "macro" => "OPENSSL_NO_RC5", "skipped" => [ @@ -27468,6 +32515,12 @@ my %disabled_info = ( "ssl3-method" => { "macro" => "OPENSSL_NO_SSL3_METHOD" }, + "sslkeylog" => { + "macro" => "OPENSSL_NO_SSLKEYLOG" + }, + "tfo" => { + "macro" => "OPENSSL_NO_TFO" + }, "trace" => { "macro" => "OPENSSL_NO_TRACE" }, @@ -27482,6 +32535,21 @@ my %disabled_info = ( }, "weak-ssl-ciphers" => { "macro" => "OPENSSL_NO_WEAK_SSL_CIPHERS" + }, + "winstore" => { + "macro" => "OPENSSL_NO_WINSTORE" + }, + "zlib" => { + "macro" => "OPENSSL_NO_ZLIB" + }, + "zlib-dynamic" => { + "macro" => "OPENSSL_NO_ZLIB_DYNAMIC" + }, + "zstd" => { + "macro" => "OPENSSL_NO_ZSTD" + }, + "zstd-dynamic" => { + "macro" => "OPENSSL_NO_ZSTD_DYNAMIC" } ); my @user_crossable = qw( AR AS CC CXX CPP LD MT RANLIB RC ); @@ -27495,15 +32563,15 @@ unless (caller) { use File::Copy; use Pod::Usage; - use lib '/home/runner/work/node/node/deps/openssl/openssl/util/perl'; - use OpenSSL::fallback '/home/runner/work/node/node/deps/openssl/openssl/external/perl/MODULES.txt'; + use lib '/node/deps/openssl/openssl/util/perl'; + use OpenSSL::fallback '/node/deps/openssl/openssl/external/perl/MODULES.txt'; my $here = dirname($0); if (scalar @ARGV == 0) { # With no arguments, re-create the build file # We do that in two steps, where the first step emits perl - # snipets. + # snippets. my $buildfile = $config{build_file}; my $buildfile_template = "$buildfile.in"; @@ -27523,7 +32591,7 @@ unless (caller) { ); use lib '.'; - use lib '/home/runner/work/node/node/deps/openssl/openssl/Configurations'; + use lib '/node/deps/openssl/openssl/Configurations'; use gentemplate; open my $buildfile_template_fh, ">$buildfile_template" @@ -27540,8 +32608,8 @@ unless (caller) { my $prepend = <<'_____'; use File::Spec::Functions; -use lib '/home/runner/work/node/node/deps/openssl/openssl/util/perl'; -use lib '/home/runner/work/node/node/deps/openssl/openssl/Configurations'; +use lib '/node/deps/openssl/openssl/util/perl'; +use lib '/node/deps/openssl/openssl/Configurations'; use lib '.'; use platform; _____ diff --git a/deps/openssl/config/archs/BSD-x86_64/no-asm/crypto/buildinf.h b/deps/openssl/config/archs/BSD-x86_64/no-asm/crypto/buildinf.h index e2ff6c7729ef02..b7e9fa3e33a1d9 100644 --- a/deps/openssl/config/archs/BSD-x86_64/no-asm/crypto/buildinf.h +++ b/deps/openssl/config/archs/BSD-x86_64/no-asm/crypto/buildinf.h @@ -11,7 +11,7 @@ */ #define PLATFORM "platform: BSD-x86_64" -#define DATE "built on: Sun Jul 20 00:46:48 2025 UTC" +#define DATE "built on: Sun Jul 27 00:47:16 2025 UTC" /* * Generate compiler_flags as an array of individual characters. This is a diff --git a/deps/openssl/config/archs/BSD-x86_64/no-asm/crypto/params_idx.c b/deps/openssl/config/archs/BSD-x86_64/no-asm/crypto/params_idx.c new file mode 100644 index 00000000000000..9d76ffededc24c --- /dev/null +++ b/deps/openssl/config/archs/BSD-x86_64/no-asm/crypto/params_idx.c @@ -0,0 +1,3366 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from crypto/params_idx.c.in + * + * Copyright 2023 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + +#include "internal/e_os.h" +#include "internal/param_names.h" +#include + +/* Machine generated TRIE -- generated by util/perl/OpenSSL/paramnames.pm */ +int ossl_param_find_pidx(const char *s) +{ + switch(s[0]) { + default: + break; + case 'a': + switch(s[1]) { + default: + break; + case 'c': + if (strcmp("vp-info", s + 2) == 0) + return PIDX_KDF_PARAM_X942_ACVPINFO; + break; + case 'd': + switch(s[2]) { + default: + break; + case 'd': + if (strcmp("itional-random", s + 3) == 0) + return PIDX_SIGNATURE_PARAM_ADD_RANDOM; + break; + case '\0': + return PIDX_KDF_PARAM_ARGON2_AD; + } + break; + case 'e': + if (strcmp("ad", s + 2) == 0) + return PIDX_CIPHER_PARAM_AEAD; + break; + case 'l': + switch(s[2]) { + default: + break; + case 'g': + switch(s[3]) { + default: + break; + case '_': + if (strcmp("id_param", s + 4) == 0) + return PIDX_CIPHER_PARAM_ALGORITHM_ID_PARAMS_OLD; + break; + case 'i': + if (strcmp("d-absent", s + 4) == 0) + return PIDX_DIGEST_PARAM_ALGID_ABSENT; + break; + case 'o': + switch(s[4]) { + default: + break; + case 'r': + switch(s[5]) { + default: + break; + case 'i': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case 'h': + switch(s[8]) { + default: + break; + case 'm': + switch(s[9]) { + default: + break; + case '-': + switch(s[10]) { + default: + break; + case 'i': + switch(s[11]) { + default: + break; + case 'd': + switch(s[12]) { + default: + break; + case '-': + if (strcmp("params", s + 13) == 0) + return PIDX_ALG_PARAM_ALGORITHM_ID_PARAMS; + break; + case '\0': + return PIDX_ALG_PARAM_ALGORITHM_ID; + } + } + } + } + } + } + } + } + } + } + break; + case 'i': + if (strcmp("as", s + 3) == 0) + return PIDX_STORE_PARAM_ALIAS; + } + break; + case '\0': + return PIDX_PKEY_PARAM_EC_A; + } + break; + case 'b': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("sis-type", s + 2) == 0) + return PIDX_PKEY_PARAM_EC_CHAR2_TYPE; + break; + case 'i': + if (strcmp("ts", s + 2) == 0) + return PIDX_PKEY_PARAM_BITS; + break; + case 'l': + switch(s[2]) { + default: + break; + case 'o': + switch(s[3]) { + default: + break; + case 'c': + switch(s[4]) { + default: + break; + case 'k': + switch(s[5]) { + default: + break; + case '-': + if (strcmp("size", s + 6) == 0) + return PIDX_MAC_PARAM_BLOCK_SIZE; + break; + case '_': + if (strcmp("padding", s + 6) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_BLOCK_PADDING; + break; + case 's': + if (strcmp("ize", s + 6) == 0) + return PIDX_DIGEST_PARAM_BLOCK_SIZE; + } + } + } + } + break; + case 'u': + if (strcmp("ildinfo", s + 2) == 0) + return PIDX_PROV_PARAM_BUILDINFO; + break; + case '\0': + return PIDX_PKEY_PARAM_EC_B; + } + break; + case 'c': + switch(s[1]) { + default: + break; + case '-': + if (strcmp("rounds", s + 2) == 0) + return PIDX_MAC_PARAM_C_ROUNDS; + break; + case 'e': + if (strcmp("kalg", s + 2) == 0) + return PIDX_KDF_PARAM_CEK_ALG; + break; + case 'i': + if (strcmp("pher", s + 2) == 0) + return PIDX_ALG_PARAM_CIPHER; + break; + case 'o': + switch(s[2]) { + default: + break; + case 'f': + if (strcmp("actor", s + 3) == 0) + return PIDX_PKEY_PARAM_EC_COFACTOR; + break; + case 'n': + switch(s[3]) { + default: + break; + case 's': + if (strcmp("tant", s + 4) == 0) + return PIDX_KDF_PARAM_CONSTANT; + break; + case 't': + if (strcmp("ext-string", s + 4) == 0) + return PIDX_SIGNATURE_PARAM_CONTEXT_STRING; + } + } + break; + case 't': + switch(s[2]) { + default: + break; + case 's': + switch(s[3]) { + default: + break; + case '_': + if (strcmp("mode", s + 4) == 0) + return PIDX_CIPHER_PARAM_CTS_MODE; + break; + case '\0': + return PIDX_CIPHER_PARAM_CTS; + } + } + break; + case 'u': + switch(s[2]) { + default: + break; + case 's': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case 'o': + switch(s[5]) { + default: + break; + case 'm': + switch(s[6]) { + default: + break; + case '-': + if (strcmp("iv", s + 7) == 0) + return PIDX_CIPHER_PARAM_CUSTOM_IV; + break; + case '\0': + return PIDX_MAC_PARAM_CUSTOM; + } + } + } + } + } + } + break; + case 'd': + switch(s[1]) { + default: + break; + case '-': + if (strcmp("rounds", s + 2) == 0) + return PIDX_MAC_PARAM_D_ROUNDS; + break; + case 'a': + switch(s[2]) { + default: + break; + case 't': + switch(s[3]) { + default: + break; + case 'a': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 's': + if (strcmp("tructure", s + 6) == 0) + return PIDX_OBJECT_PARAM_DATA_STRUCTURE; + break; + case 't': + if (strcmp("ype", s + 6) == 0) + return PIDX_OBJECT_PARAM_DATA_TYPE; + } + break; + case '\0': + return PIDX_OBJECT_PARAM_DATA; + } + } + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'c': + switch(s[3]) { + default: + break; + case 'o': + if (strcmp("ded-from-explicit", s + 4) == 0) + return PIDX_PKEY_PARAM_EC_DECODED_FROM_EXPLICIT_PARAMS; + break; + case 'r': + if (strcmp("ypt-only", s + 4) == 0) + return PIDX_CIPHER_PARAM_DECRYPT_ONLY; + } + break; + case 'f': + if (strcmp("ault-digest", s + 3) == 0) + return PIDX_PKEY_PARAM_DEFAULT_DIGEST; + break; + case 's': + if (strcmp("c", s + 3) == 0) + return PIDX_OBJECT_PARAM_DESC; + break; + case 't': + if (strcmp("erministic", s + 3) == 0) + return PIDX_SIGNATURE_PARAM_DETERMINISTIC; + } + break; + case 'h': + if (strcmp("kem-ikm", s + 2) == 0) + return PIDX_PKEY_PARAM_DHKEM_IKM; + break; + case 'i': + switch(s[2]) { + default: + break; + case 'g': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case 's': + switch(s[5]) { + default: + break; + case 't': + switch(s[6]) { + default: + break; + case '-': + switch(s[7]) { + default: + break; + case 'c': + if (strcmp("heck", s + 8) == 0) + return PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK; + break; + case 'n': + if (strcmp("oinit", s + 8) == 0) + return PIDX_MAC_PARAM_DIGEST_NOINIT; + break; + case 'o': + if (strcmp("neshot", s + 8) == 0) + return PIDX_MAC_PARAM_DIGEST_ONESHOT; + break; + case 'p': + if (strcmp("rops", s + 8) == 0) + return PIDX_ASYM_CIPHER_PARAM_OAEP_DIGEST_PROPS; + break; + case 's': + if (strcmp("ize", s + 8) == 0) + return PIDX_PKEY_PARAM_DIGEST_SIZE; + } + break; + case '\0': + return PIDX_STORE_PARAM_DIGEST; + } + } + } + } + break; + case 's': + if (strcmp("tid", s + 3) == 0) + return PIDX_PKEY_PARAM_DIST_ID; + } + break; + case 'r': + if (strcmp("bg-no-trunc-md", s + 2) == 0) + return PIDX_PROV_PARAM_DRBG_TRUNC_DIGEST; + break; + case 's': + if (strcmp("a-sign-disabled", s + 2) == 0) + return PIDX_PROV_PARAM_DSA_SIGN_DISABLED; + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_D; + } + break; + case 'e': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("rly_clean", s + 2) == 0) + return PIDX_KDF_PARAM_EARLY_CLEAN; + break; + case 'c': + switch(s[2]) { + default: + break; + case 'd': + switch(s[3]) { + default: + break; + case 'h': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'c': + switch(s[6]) { + default: + break; + case 'o': + switch(s[7]) { + default: + break; + case 'f': + switch(s[8]) { + default: + break; + case 'a': + switch(s[9]) { + default: + break; + case 'c': + switch(s[10]) { + default: + break; + case 't': + switch(s[11]) { + default: + break; + case 'o': + switch(s[12]) { + default: + break; + case 'r': + switch(s[13]) { + default: + break; + case '-': + switch(s[14]) { + default: + break; + case 'c': + if (strcmp("heck", s + 15) == 0) + return PIDX_PROV_PARAM_ECDH_COFACTOR_CHECK; + break; + case 'm': + if (strcmp("ode", s + 15) == 0) + return PIDX_EXCHANGE_PARAM_EC_ECDH_COFACTOR_MODE; + } + } + } + } + } + } + } + } + } + } + } + } + } + break; + case 'm': + if (strcmp("s_check", s + 2) == 0) + return PIDX_KDF_PARAM_FIPS_EMS_CHECK; + break; + case 'n': + switch(s[2]) { + default: + break; + case 'c': + switch(s[3]) { + default: + break; + case 'o': + switch(s[4]) { + default: + break; + case 'd': + switch(s[5]) { + default: + break; + case 'e': + if (strcmp("d-pub-key", s + 6) == 0) + return PIDX_PKEY_PARAM_ENCODED_PUBLIC_KEY; + break; + case 'i': + if (strcmp("ng", s + 6) == 0) + return PIDX_PKEY_PARAM_EC_ENCODING; + } + } + break; + case 'r': + switch(s[4]) { + default: + break; + case 'y': + switch(s[5]) { + default: + break; + case 'p': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case '-': + switch(s[8]) { + default: + break; + case 'c': + if (strcmp("heck", s + 9) == 0) + return PIDX_CIPHER_PARAM_FIPS_ENCRYPT_CHECK; + break; + case 'l': + if (strcmp("evel", s + 9) == 0) + return PIDX_ENCODER_PARAM_ENCRYPT_LEVEL; + } + } + } + } + } + } + break; + case 'g': + if (strcmp("ine", s + 3) == 0) + return PIDX_ALG_PARAM_ENGINE; + break; + case 't': + switch(s[3]) { + default: + break; + case 'r': + switch(s[4]) { + default: + break; + case 'o': + switch(s[5]) { + default: + break; + case 'p': + switch(s[6]) { + default: + break; + case 'y': + switch(s[7]) { + default: + break; + case '_': + if (strcmp("required", s + 8) == 0) + return PIDX_DRBG_PARAM_ENTROPY_REQUIRED; + break; + case '\0': + return PIDX_KDF_PARAM_HMACDRBG_ENTROPY; + } + } + } + } + } + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_E; + break; + case 'x': + if (strcmp("pect", s + 2) == 0) + return PIDX_STORE_PARAM_EXPECT; + } + break; + case 'f': + switch(s[1]) { + default: + break; + case 'i': + switch(s[2]) { + default: + break; + case 'e': + if (strcmp("ld-type", s + 3) == 0) + return PIDX_PKEY_PARAM_EC_FIELD_TYPE; + break; + case 'n': + if (strcmp("gerprint", s + 3) == 0) + return PIDX_STORE_PARAM_FINGERPRINT; + break; + case 'p': + if (strcmp("s-indicator", s + 3) == 0) + return PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR; + } + } + break; + case 'g': + switch(s[1]) { + default: + break; + case 'e': + switch(s[2]) { + default: + break; + case 'n': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case 'r': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case 'e': + switch(s[8]) { + default: + break; + case '\0': + return PIDX_RAND_PARAM_GENERATE; + } + break; + case 'o': + if (strcmp("r", s + 8) == 0) + return PIDX_PKEY_PARAM_EC_GENERATOR; + } + } + } + } + } + } + break; + case 'i': + if (strcmp("ndex", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_GINDEX; + break; + case 'r': + switch(s[2]) { + default: + break; + case 'o': + switch(s[3]) { + default: + break; + case 'u': + switch(s[4]) { + default: + break; + case 'p': + switch(s[5]) { + default: + break; + case '-': + if (strcmp("check", s + 6) == 0) + return PIDX_PKEY_PARAM_EC_GROUP_CHECK_TYPE; + break; + case '\0': + return PIDX_PKEY_PARAM_GROUP_NAME; + } + } + } + } + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_G; + } + break; + case 'h': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("s-randkey", s + 2) == 0) + return PIDX_CIPHER_PARAM_HAS_RAND_KEY; + break; + case 'i': + if (strcmp("ndex", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_H; + break; + case 'k': + switch(s[2]) { + default: + break; + case 'd': + switch(s[3]) { + default: + break; + case 'f': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 6) == 0) + return PIDX_PROV_PARAM_HKDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 6) == 0) + return PIDX_PROV_PARAM_HKDF_KEY_CHECK; + } + } + } + } + break; + case 'm': + if (strcmp("ac-key-check", s + 2) == 0) + return PIDX_PROV_PARAM_HMAC_KEY_CHECK; + break; + case 's': + if (strcmp("_padding", s + 2) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_HS_PADDING; + } + break; + case 'i': + switch(s[1]) { + default: + break; + case 'd': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_KDF_PARAM_PKCS12_ID; + } + break; + case 'k': + if (strcmp("me", s + 2) == 0) + return PIDX_KEM_PARAM_IKME; + break; + case 'm': + if (strcmp("plicit-rejection", s + 2) == 0) + return PIDX_PKEY_PARAM_IMPLICIT_REJECTION; + break; + case 'n': + switch(s[2]) { + default: + break; + case 'c': + if (strcmp("lude-public", s + 3) == 0) + return PIDX_PKEY_PARAM_EC_INCLUDE_PUBLIC; + break; + case 'f': + if (strcmp("o", s + 3) == 0) + return PIDX_PASSPHRASE_PARAM_INFO; + break; + case 'p': + if (strcmp("ut-type", s + 3) == 0) + return PIDX_STORE_PARAM_INPUT_TYPE; + break; + case 's': + if (strcmp("tance", s + 3) == 0) + return PIDX_SIGNATURE_PARAM_INSTANCE; + } + break; + case 't': + switch(s[2]) { + default: + break; + case 'e': + switch(s[3]) { + default: + break; + case 'r': + switch(s[4]) { + default: + break; + case 'a': + if (strcmp("tion", s + 5) == 0) + return PIDX_GEN_PARAM_ITERATION; + break; + case '\0': + return PIDX_KDF_PARAM_ITER; + } + } + } + break; + case 'v': + switch(s[2]) { + default: + break; + case '-': + if (strcmp("generated", s + 3) == 0) + return PIDX_CIPHER_PARAM_AEAD_IV_GENERATED; + break; + case 'l': + if (strcmp("en", s + 3) == 0) + return PIDX_CIPHER_PARAM_IVLEN; + break; + case '\0': + return PIDX_MAC_PARAM_IV; + } + } + break; + case 'j': + switch(s[1]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_COFACTOR; + } + break; + case 'k': + switch(s[1]) { + default: + break; + case '1': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_PP_K1; + } + break; + case '2': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_PP_K2; + } + break; + case '3': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_PP_K3; + } + break; + case 'a': + if (strcmp("t", s + 2) == 0) + return PIDX_SIGNATURE_PARAM_KAT; + break; + case 'b': + if (strcmp("kdf-key-check", s + 2) == 0) + return PIDX_PROV_PARAM_KBKDF_KEY_CHECK; + break; + case 'd': + switch(s[2]) { + default: + break; + case 'f': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'd': + switch(s[5]) { + default: + break; + case 'i': + switch(s[6]) { + default: + break; + case 'g': + switch(s[7]) { + default: + break; + case 'e': + switch(s[8]) { + default: + break; + case 's': + switch(s[9]) { + default: + break; + case 't': + switch(s[10]) { + default: + break; + case '-': + if (strcmp("props", s + 11) == 0) + return PIDX_EXCHANGE_PARAM_KDF_DIGEST_PROPS; + break; + case '\0': + return PIDX_EXCHANGE_PARAM_KDF_DIGEST; + } + } + } + } + } + } + break; + case 'o': + if (strcmp("utlen", s + 5) == 0) + return PIDX_EXCHANGE_PARAM_KDF_OUTLEN; + break; + case 't': + if (strcmp("ype", s + 5) == 0) + return PIDX_EXCHANGE_PARAM_KDF_TYPE; + break; + case 'u': + if (strcmp("km", s + 5) == 0) + return PIDX_EXCHANGE_PARAM_KDF_UKM; + } + } + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'y': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'c': + if (strcmp("heck", s + 5) == 0) + return PIDX_PKEY_PARAM_FIPS_KEY_CHECK; + break; + case 'l': + if (strcmp("ength", s + 5) == 0) + return PIDX_SKEY_PARAM_KEY_LENGTH; + } + break; + case 'b': + if (strcmp("its", s + 4) == 0) + return PIDX_CIPHER_PARAM_RC2_KEYBITS; + break; + case 'l': + if (strcmp("en", s + 4) == 0) + return PIDX_CIPHER_PARAM_KEYLEN; + break; + case '\0': + return PIDX_MAC_PARAM_KEY; + } + } + break; + case 'm': + if (strcmp("ac-key-check", s + 2) == 0) + return PIDX_PROV_PARAM_KMAC_KEY_CHECK; + } + break; + case 'l': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'b': + if (strcmp("el", s + 3) == 0) + return PIDX_KDF_PARAM_LABEL; + break; + case 'n': + if (strcmp("es", s + 3) == 0) + return PIDX_KDF_PARAM_ARGON2_LANES; + } + } + break; + case 'm': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'c': + switch(s[3]) { + default: + break; + case 'k': + if (strcmp("ey", s + 4) == 0) + return PIDX_CIPHER_PARAM_AEAD_MAC_KEY; + break; + case 'l': + if (strcmp("en", s + 4) == 0) + return PIDX_KDF_PARAM_MAC_SIZE; + break; + case '\0': + return PIDX_ALG_PARAM_MAC; + } + break; + case 'n': + if (strcmp("datory-digest", s + 3) == 0) + return PIDX_PKEY_PARAM_MANDATORY_DIGEST; + break; + case 'x': + switch(s[3]) { + default: + break; + case '-': + if (strcmp("size", s + 4) == 0) + return PIDX_PKEY_PARAM_MAX_SIZE; + break; + case '_': + switch(s[4]) { + default: + break; + case 'a': + if (strcmp("dinlen", s + 5) == 0) + return PIDX_DRBG_PARAM_MAX_ADINLEN; + break; + case 'e': + switch(s[5]) { + default: + break; + case 'a': + if (strcmp("rly_data", s + 6) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_MAX_EARLY_DATA; + break; + case 'n': + if (strcmp("tropylen", s + 6) == 0) + return PIDX_DRBG_PARAM_MAX_ENTROPYLEN; + } + break; + case 'f': + if (strcmp("rag_len", s + 5) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_MAX_FRAG_LEN; + break; + case 'n': + if (strcmp("oncelen", s + 5) == 0) + return PIDX_DRBG_PARAM_MAX_NONCELEN; + break; + case 'p': + if (strcmp("erslen", s + 5) == 0) + return PIDX_DRBG_PARAM_MAX_PERSLEN; + break; + case 'r': + if (strcmp("equest", s + 5) == 0) + return PIDX_RAND_PARAM_MAX_REQUEST; + } + break; + case 'i': + if (strcmp("um_length", s + 4) == 0) + return PIDX_DRBG_PARAM_MAX_LENGTH; + break; + case 'm': + if (strcmp("em_bytes", s + 4) == 0) + return PIDX_KDF_PARAM_SCRYPT_MAXMEM; + } + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'm': + if (strcmp("cost", s + 3) == 0) + return PIDX_KDF_PARAM_ARGON2_MEMCOST; + break; + case 's': + if (strcmp("sage-encoding", s + 3) == 0) + return PIDX_SIGNATURE_PARAM_MESSAGE_ENCODING; + } + break; + case 'g': + switch(s[2]) { + default: + break; + case 'f': + switch(s[3]) { + default: + break; + case '1': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'd': + if (strcmp("igest", s + 6) == 0) + return PIDX_PKEY_PARAM_MGF1_DIGEST; + break; + case 'p': + if (strcmp("roperties", s + 6) == 0) + return PIDX_PKEY_PARAM_MGF1_PROPERTIES; + } + } + break; + case '\0': + return PIDX_PKEY_PARAM_MASKGENFUNC; + } + } + break; + case 'i': + switch(s[2]) { + default: + break; + case 'c': + if (strcmp("alg", s + 3) == 0) + return PIDX_DIGEST_PARAM_MICALG; + break; + case 'n': + switch(s[3]) { + default: + break; + case '_': + switch(s[4]) { + default: + break; + case 'e': + if (strcmp("ntropylen", s + 5) == 0) + return PIDX_DRBG_PARAM_MIN_ENTROPYLEN; + break; + case 'n': + if (strcmp("oncelen", s + 5) == 0) + return PIDX_DRBG_PARAM_MIN_NONCELEN; + } + break; + case 'i': + if (strcmp("um_length", s + 4) == 0) + return PIDX_DRBG_PARAM_MIN_LENGTH; + } + } + break; + case 'l': + switch(s[2]) { + default: + break; + case '-': + switch(s[3]) { + default: + break; + case 'd': + switch(s[4]) { + default: + break; + case 's': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case '.': + switch(s[7]) { + default: + break; + case 'i': + if (strcmp("nput_formats", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_DSA_INPUT_FORMATS; + break; + case 'o': + if (strcmp("utput_formats", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_DSA_OUTPUT_FORMATS; + break; + case 'p': + if (strcmp("refer_seed", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_DSA_PREFER_SEED; + break; + case 'r': + if (strcmp("etain_seed", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_DSA_RETAIN_SEED; + } + } + } + } + break; + case 'k': + switch(s[4]) { + default: + break; + case 'e': + switch(s[5]) { + default: + break; + case 'm': + switch(s[6]) { + default: + break; + case '.': + switch(s[7]) { + default: + break; + case 'i': + switch(s[8]) { + default: + break; + case 'm': + if (strcmp("port_pct_type", s + 9) == 0) + return PIDX_PKEY_PARAM_ML_KEM_IMPORT_PCT_TYPE; + break; + case 'n': + if (strcmp("put_formats", s + 9) == 0) + return PIDX_PKEY_PARAM_ML_KEM_INPUT_FORMATS; + } + break; + case 'o': + if (strcmp("utput_formats", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_KEM_OUTPUT_FORMATS; + break; + case 'p': + if (strcmp("refer_seed", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_KEM_PREFER_SEED; + break; + case 'r': + if (strcmp("etain_seed", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_KEM_RETAIN_SEED; + } + } + } + } + } + } + break; + case 'o': + switch(s[2]) { + default: + break; + case 'd': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case '\0': + return PIDX_LIBSSL_RECORD_LAYER_PARAM_MODE; + } + break; + case 'u': + if (strcmp("le-filename", s + 4) == 0) + return PIDX_PROV_PARAM_CORE_MODULE_FILENAME; + } + } + break; + case 'u': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_SIGNATURE_PARAM_MU; + } + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_M; + } + break; + case 'n': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("me", s + 2) == 0) + return PIDX_STORE_PARAM_ISSUER; + break; + case 'o': + switch(s[2]) { + default: + break; + case '-': + if (strcmp("short-mac", s + 3) == 0) + return PIDX_PROV_PARAM_NO_SHORT_MAC; + break; + case 'n': + switch(s[3]) { + default: + break; + case 'c': + switch(s[4]) { + default: + break; + case 'e': + switch(s[5]) { + default: + break; + case '-': + if (strcmp("type", s + 6) == 0) + return PIDX_SIGNATURE_PARAM_NONCE_TYPE; + break; + case '\0': + return PIDX_KDF_PARAM_HMACDRBG_NONCE; + } + } + } + } + break; + case 'u': + if (strcmp("m", s + 2) == 0) + return PIDX_CIPHER_PARAM_NUM; + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_N; + } + break; + case 'o': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("ep-label", s + 2) == 0) + return PIDX_ASYM_CIPHER_PARAM_OAEP_LABEL; + break; + case 'p': + switch(s[2]) { + default: + break; + case 'e': + switch(s[3]) { + default: + break; + case 'n': + if (strcmp("ssl-version", s + 4) == 0) + return PIDX_PROV_PARAM_CORE_VERSION; + break; + case 'r': + if (strcmp("ation", s + 4) == 0) + return PIDX_KEM_PARAM_OPERATION; + } + break; + case 't': + if (strcmp("ions", s + 3) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_OPTIONS; + } + break; + case 'r': + if (strcmp("der", s + 2) == 0) + return PIDX_PKEY_PARAM_EC_ORDER; + } + break; + case 'p': + switch(s[1]) { + default: + break; + case '1': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_P1; + } + break; + case '2': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_P2; + } + break; + case 'a': + switch(s[2]) { + default: + break; + case 'd': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'm': + if (strcmp("ode", s + 5) == 0) + return PIDX_PKEY_PARAM_PAD_MODE; + break; + case 't': + if (strcmp("ype", s + 5) == 0) + return PIDX_DIGEST_PARAM_PAD_TYPE; + } + break; + case 'd': + if (strcmp("ing", s + 4) == 0) + return PIDX_CIPHER_PARAM_PADDING; + break; + case '\0': + return PIDX_EXCHANGE_PARAM_PAD; + } + break; + case 'r': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case 'y': + switch(s[5]) { + default: + break; + case 'u': + if (strcmp("-info", s + 6) == 0) + return PIDX_KDF_PARAM_X942_PARTYUINFO; + break; + case 'v': + if (strcmp("-info", s + 6) == 0) + return PIDX_KDF_PARAM_X942_PARTYVINFO; + } + } + } + break; + case 's': + if (strcmp("s", s + 3) == 0) + return PIDX_KDF_PARAM_PASSWORD; + } + break; + case 'b': + switch(s[2]) { + default: + break; + case 'i': + if (strcmp("ts", s + 3) == 0) + return PIDX_PKEY_PARAM_FFC_PBITS; + break; + case 'k': + if (strcmp("df2-lower-bound-check", s + 3) == 0) + return PIDX_PROV_PARAM_PBKDF2_LOWER_BOUND_CHECK; + } + break; + case 'c': + if (strcmp("ounter", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_PCOUNTER; + break; + case 'i': + if (strcmp("peline-tag", s + 2) == 0) + return PIDX_CIPHER_PARAM_PIPELINE_AEAD_TAG; + break; + case 'k': + if (strcmp("cs5", s + 2) == 0) + return PIDX_KDF_PARAM_PKCS5; + break; + case 'o': + switch(s[2]) { + default: + break; + case 'i': + if (strcmp("nt-format", s + 3) == 0) + return PIDX_PKEY_PARAM_EC_POINT_CONVERSION_FORMAT; + break; + case 't': + if (strcmp("ential", s + 3) == 0) + return PIDX_GEN_PARAM_POTENTIAL; + } + break; + case 'r': + switch(s[2]) { + default: + break; + case 'e': + switch(s[3]) { + default: + break; + case 'd': + if (strcmp("iction_resistance", s + 4) == 0) + return PIDX_DRBG_PARAM_PREDICTION_RESISTANCE; + break; + case 'f': + if (strcmp("ix", s + 4) == 0) + return PIDX_KDF_PARAM_PREFIX; + } + break; + case 'i': + switch(s[3]) { + default: + break; + case 'm': + if (strcmp("es", s + 4) == 0) + return PIDX_PKEY_PARAM_RSA_PRIMES; + break; + case 'v': + switch(s[4]) { + default: + break; + case '_': + if (strcmp("len", s + 5) == 0) + return PIDX_PKEY_PARAM_DH_PRIV_LEN; + break; + case '\0': + return PIDX_PKEY_PARAM_PRIV_KEY; + } + } + break; + case 'o': + switch(s[3]) { + default: + break; + case 'p': + if (strcmp("erties", s + 4) == 0) + return PIDX_STORE_PARAM_PROPERTIES; + break; + case 'v': + if (strcmp("ider-name", s + 4) == 0) + return PIDX_PROV_PARAM_CORE_PROV_NAME; + } + } + break; + case 'u': + if (strcmp("b", s + 2) == 0) + return PIDX_PKEY_PARAM_PUB_KEY; + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_P; + } + break; + case 'q': + switch(s[1]) { + default: + break; + case '1': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_Q1; + } + break; + case '2': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_Q2; + } + break; + case 'b': + if (strcmp("its", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_QBITS; + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_Q; + break; + case 'x': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_PUB_X; + } + break; + case 'y': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_PUB_Y; + } + } + break; + case 'r': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'n': + switch(s[3]) { + default: + break; + case 'd': + switch(s[4]) { + default: + break; + case 'k': + if (strcmp("ey", s + 5) == 0) + return PIDX_CIPHER_PARAM_RANDOM_KEY; + break; + case 'o': + if (strcmp("m_data", s + 5) == 0) + return PIDX_DRBG_PARAM_RANDOM_DATA; + } + } + break; + case 'w': + if (strcmp("-bytes", s + 3) == 0) + return PIDX_SKEY_PARAM_RAW_BYTES; + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'a': + switch(s[3]) { + default: + break; + case 'd': + switch(s[4]) { + default: + break; + case '_': + switch(s[5]) { + default: + break; + case 'a': + if (strcmp("head", s + 6) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_READ_AHEAD; + break; + case 'b': + if (strcmp("uffer_len", s + 6) == 0) + return PIDX_LIBSSL_RECORD_LAYER_READ_BUFFER_LEN; + } + } + } + break; + case 'f': + if (strcmp("erence", s + 3) == 0) + return PIDX_OBJECT_PARAM_REFERENCE; + break; + case 's': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case 'e': + switch(s[5]) { + default: + break; + case 'd': + switch(s[6]) { + default: + break; + case '_': + switch(s[7]) { + default: + break; + case 'c': + if (strcmp("ounter", s + 8) == 0) + return PIDX_DRBG_PARAM_RESEED_COUNTER; + break; + case 'r': + if (strcmp("equests", s + 8) == 0) + return PIDX_DRBG_PARAM_RESEED_REQUESTS; + break; + case 't': + switch(s[8]) { + default: + break; + case 'i': + switch(s[9]) { + default: + break; + case 'm': + switch(s[10]) { + default: + break; + case 'e': + switch(s[11]) { + default: + break; + case '_': + if (strcmp("interval", s + 12) == 0) + return PIDX_DRBG_PARAM_RESEED_TIME_INTERVAL; + break; + case '\0': + return PIDX_DRBG_PARAM_RESEED_TIME; + } + } + } + } + } + } + } + } + } + } + break; + case 'o': + if (strcmp("unds", s + 2) == 0) + return PIDX_CIPHER_PARAM_ROUNDS; + break; + case 's': + switch(s[2]) { + default: + break; + case 'a': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'c': + switch(s[5]) { + default: + break; + case 'o': + switch(s[6]) { + default: + break; + case 'e': + switch(s[7]) { + default: + break; + case 'f': + switch(s[8]) { + default: + break; + case 'f': + switch(s[9]) { + default: + break; + case 'i': + switch(s[10]) { + default: + break; + case 'c': + switch(s[11]) { + default: + break; + case 'i': + switch(s[12]) { + default: + break; + case 'e': + switch(s[13]) { + default: + break; + case 'n': + switch(s[14]) { + default: + break; + case 't': + switch(s[15]) { + default: + break; + case '1': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT1; + } + break; + case '2': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT2; + } + break; + case '3': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT3; + } + break; + case '4': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT4; + } + break; + case '5': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT5; + } + break; + case '6': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT6; + } + break; + case '7': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT7; + } + break; + case '8': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT8; + } + break; + case '9': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT9; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT; + } + } + } + } + } + } + } + } + } + } + } + break; + case 'd': + if (strcmp("erive-from-pq", s + 5) == 0) + return PIDX_PKEY_PARAM_RSA_DERIVE_FROM_PQ; + break; + case 'e': + switch(s[5]) { + default: + break; + case 'x': + switch(s[6]) { + default: + break; + case 'p': + switch(s[7]) { + default: + break; + case 'o': + switch(s[8]) { + default: + break; + case 'n': + switch(s[9]) { + default: + break; + case 'e': + switch(s[10]) { + default: + break; + case 'n': + switch(s[11]) { + default: + break; + case 't': + switch(s[12]) { + default: + break; + case '1': + switch(s[13]) { + default: + break; + case '0': + switch(s[14]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT10; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT1; + } + break; + case '2': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT2; + } + break; + case '3': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT3; + } + break; + case '4': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT4; + } + break; + case '5': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT5; + } + break; + case '6': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT6; + } + break; + case '7': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT7; + } + break; + case '8': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT8; + } + break; + case '9': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT9; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT; + } + } + } + } + } + } + } + } + break; + case 'f': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case 'c': + switch(s[7]) { + default: + break; + case 't': + switch(s[8]) { + default: + break; + case 'o': + switch(s[9]) { + default: + break; + case 'r': + switch(s[10]) { + default: + break; + case '1': + switch(s[11]) { + default: + break; + case '0': + switch(s[12]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR10; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR1; + } + break; + case '2': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR2; + } + break; + case '3': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR3; + } + break; + case '4': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR4; + } + break; + case '5': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR5; + } + break; + case '6': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR6; + } + break; + case '7': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR7; + } + break; + case '8': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR8; + } + break; + case '9': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR9; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR; + } + } + } + } + } + } + break; + case 'p': + switch(s[5]) { + default: + break; + case 'k': + if (strcmp("cs15-pad-disabled", s + 6) == 0) + return PIDX_PROV_PARAM_RSA_PKCS15_PAD_DISABLED; + break; + case 's': + if (strcmp("s-saltlen-check", s + 6) == 0) + return PIDX_SIGNATURE_PARAM_FIPS_RSA_PSS_SALTLEN_CHECK; + } + break; + case 's': + if (strcmp("ign-x931-pad-disabled", s + 5) == 0) + return PIDX_PROV_PARAM_RSA_SIGN_X931_PAD_DISABLED; + } + } + } + break; + case '\0': + return PIDX_KDF_PARAM_SCRYPT_R; + } + break; + case 's': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'f': + if (strcmp("eprime-generator", s + 3) == 0) + return PIDX_PKEY_PARAM_DH_GENERATOR; + break; + case 'l': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case 'l': + if (strcmp("en", s + 5) == 0) + return PIDX_SIGNATURE_PARAM_PSS_SALTLEN; + break; + case '\0': + return PIDX_MAC_PARAM_SALT; + } + } + break; + case 'v': + if (strcmp("e-parameters", s + 3) == 0) + return PIDX_ENCODER_PARAM_SAVE_PARAMETERS; + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'c': + switch(s[3]) { + default: + break; + case 'r': + if (strcmp("et", s + 4) == 0) + return PIDX_KDF_PARAM_SECRET; + break; + case 'u': + switch(s[4]) { + default: + break; + case 'r': + switch(s[5]) { + default: + break; + case 'i': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case 'y': + switch(s[8]) { + default: + break; + case '-': + switch(s[9]) { + default: + break; + case 'b': + if (strcmp("its", s + 10) == 0) + return PIDX_PKEY_PARAM_SECURITY_BITS; + break; + case 'c': + if (strcmp("hecks", s + 10) == 0) + return PIDX_PROV_PARAM_SECURITY_CHECKS; + } + } + } + } + } + } + } + break; + case 'e': + if (strcmp("d", s + 3) == 0) + return PIDX_PKEY_PARAM_SLH_DSA_SEED; + break; + case 'r': + if (strcmp("ial", s + 3) == 0) + return PIDX_STORE_PARAM_SERIAL; + break; + case 's': + if (strcmp("sion_id", s + 3) == 0) + return PIDX_KDF_PARAM_SSHKDF_SESSION_ID; + } + break; + case 'i': + switch(s[2]) { + default: + break; + case 'g': + switch(s[3]) { + default: + break; + case 'n': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'c': + if (strcmp("heck", s + 6) == 0) + return PIDX_PKEY_PARAM_FIPS_SIGN_CHECK; + break; + case 'x': + if (strcmp("931-pad-check", s + 6) == 0) + return PIDX_SIGNATURE_PARAM_FIPS_SIGN_X931_PAD_CHECK; + } + break; + case 'a': + switch(s[5]) { + default: + break; + case 't': + switch(s[6]) { + default: + break; + case 'u': + switch(s[7]) { + default: + break; + case 'r': + switch(s[8]) { + default: + break; + case 'e': + switch(s[9]) { + default: + break; + case '-': + if (strcmp("digest-check", s + 10) == 0) + return PIDX_PROV_PARAM_SIGNATURE_DIGEST_CHECK; + break; + case '\0': + return PIDX_SIGNATURE_PARAM_SIGNATURE; + } + } + } + } + } + } + } + break; + case 'z': + if (strcmp("e", s + 3) == 0) + return PIDX_MAC_PARAM_SIZE; + } + break; + case 'p': + if (strcmp("eed", s + 2) == 0) + return PIDX_CIPHER_PARAM_SPEED; + break; + case 's': + switch(s[2]) { + default: + break; + case 'h': + switch(s[3]) { + default: + break; + case 'k': + switch(s[4]) { + default: + break; + case 'd': + switch(s[5]) { + default: + break; + case 'f': + switch(s[6]) { + default: + break; + case '-': + switch(s[7]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 8) == 0) + return PIDX_PROV_PARAM_SSHKDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 8) == 0) + return PIDX_PROV_PARAM_SSHKDF_KEY_CHECK; + } + } + } + } + } + break; + case 'k': + switch(s[3]) { + default: + break; + case 'd': + switch(s[4]) { + default: + break; + case 'f': + switch(s[5]) { + default: + break; + case '-': + switch(s[6]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 7) == 0) + return PIDX_PROV_PARAM_SSKDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 7) == 0) + return PIDX_PROV_PARAM_SSKDF_KEY_CHECK; + } + } + } + } + break; + case 'l': + if (strcmp("3-ms", s + 3) == 0) + return PIDX_DIGEST_PARAM_SSL3_MS; + } + break; + case 't': + switch(s[2]) { + default: + break; + case '-': + switch(s[3]) { + default: + break; + case 'd': + if (strcmp("esc", s + 4) == 0) + return PIDX_PROV_PARAM_SELF_TEST_DESC; + break; + case 'p': + if (strcmp("hase", s + 4) == 0) + return PIDX_PROV_PARAM_SELF_TEST_PHASE; + break; + case 't': + if (strcmp("ype", s + 4) == 0) + return PIDX_PROV_PARAM_SELF_TEST_TYPE; + } + break; + case 'a': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case 'e': + switch(s[5]) { + default: + break; + case '\0': + return PIDX_RAND_PARAM_STATE; + } + break; + case 'u': + if (strcmp("s", s + 5) == 0) + return PIDX_PROV_PARAM_STATUS; + } + } + break; + case 'r': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case 'a': + if (strcmp("m_mac", s + 5) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_STREAM_MAC; + break; + case 'n': + if (strcmp("gth", s + 5) == 0) + return PIDX_RAND_PARAM_STRENGTH; + } + } + } + break; + case 'u': + switch(s[2]) { + default: + break; + case 'b': + if (strcmp("ject", s + 3) == 0) + return PIDX_STORE_PARAM_SUBJECT; + break; + case 'p': + switch(s[3]) { + default: + break; + case 'p': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'p': + switch(s[6]) { + default: + break; + case 'r': + if (strcmp("ivinfo", s + 7) == 0) + return PIDX_KDF_PARAM_X942_SUPP_PRIVINFO; + break; + case 'u': + if (strcmp("binfo", s + 7) == 0) + return PIDX_KDF_PARAM_X942_SUPP_PUBINFO; + } + } + } + } + } + } + break; + case 't': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'g': + switch(s[3]) { + default: + break; + case 'l': + if (strcmp("en", s + 4) == 0) + return PIDX_CIPHER_PARAM_AEAD_TAGLEN; + break; + case '\0': + return PIDX_CIPHER_PARAM_AEAD_TAG; + } + } + break; + case 'd': + if (strcmp("es-encrypt-disabled", s + 2) == 0) + return PIDX_PROV_PARAM_TDES_ENCRYPT_DISABLED; + break; + case 'e': + switch(s[2]) { + default: + break; + case 's': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case '-': + if (strcmp("entropy", s + 5) == 0) + return PIDX_SIGNATURE_PARAM_TEST_ENTROPY; + break; + case '_': + switch(s[5]) { + default: + break; + case 'e': + if (strcmp("ntropy", s + 6) == 0) + return PIDX_RAND_PARAM_TEST_ENTROPY; + break; + case 'n': + if (strcmp("once", s + 6) == 0) + return PIDX_RAND_PARAM_TEST_NONCE; + } + } + } + } + break; + case 'h': + if (strcmp("reads", s + 2) == 0) + return PIDX_KDF_PARAM_THREADS; + break; + case 'l': + switch(s[2]) { + default: + break; + case 's': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'c': + if (strcmp("lient-version", s + 5) == 0) + return PIDX_ASYM_CIPHER_PARAM_TLS_CLIENT_VERSION; + break; + case 'd': + if (strcmp("ata-size", s + 5) == 0) + return PIDX_MAC_PARAM_TLS_DATA_SIZE; + break; + case 'g': + switch(s[5]) { + default: + break; + case 'r': + switch(s[6]) { + default: + break; + case 'o': + switch(s[7]) { + default: + break; + case 'u': + switch(s[8]) { + default: + break; + case 'p': + switch(s[9]) { + default: + break; + case '-': + switch(s[10]) { + default: + break; + case 'a': + if (strcmp("lg", s + 11) == 0) + return PIDX_CAPABILITY_TLS_GROUP_ALG; + break; + case 'i': + switch(s[11]) { + default: + break; + case 'd': + switch(s[12]) { + default: + break; + case '\0': + return PIDX_CAPABILITY_TLS_GROUP_ID; + } + break; + case 's': + if (strcmp("-kem", s + 12) == 0) + return PIDX_CAPABILITY_TLS_GROUP_IS_KEM; + } + break; + case 'n': + switch(s[11]) { + default: + break; + case 'a': + switch(s[12]) { + default: + break; + case 'm': + switch(s[13]) { + default: + break; + case 'e': + switch(s[14]) { + default: + break; + case '-': + if (strcmp("internal", s + 15) == 0) + return PIDX_CAPABILITY_TLS_GROUP_NAME_INTERNAL; + break; + case '\0': + return PIDX_CAPABILITY_TLS_GROUP_NAME; + } + } + } + } + break; + case 's': + if (strcmp("ec-bits", s + 11) == 0) + return PIDX_CAPABILITY_TLS_GROUP_SECURITY_BITS; + } + } + } + } + } + } + break; + case 'm': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case 'c': + switch(s[7]) { + default: + break; + case '-': + if (strcmp("size", s + 8) == 0) + return PIDX_CIPHER_PARAM_TLS_MAC_SIZE; + break; + case '\0': + return PIDX_CIPHER_PARAM_TLS_MAC; + } + break; + case 'x': + switch(s[7]) { + default: + break; + case '-': + switch(s[8]) { + default: + break; + case 'd': + if (strcmp("tls", s + 9) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_MAX_DTLS; + break; + case 't': + if (strcmp("ls", s + 9) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_MAX_TLS; + } + } + } + break; + case 'i': + switch(s[6]) { + default: + break; + case 'n': + switch(s[7]) { + default: + break; + case '-': + switch(s[8]) { + default: + break; + case 'd': + if (strcmp("tls", s + 9) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_MIN_DTLS; + break; + case 't': + if (strcmp("ls", s + 9) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_MIN_TLS; + } + } + } + break; + case 'u': + if (strcmp("lti", s + 6) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK; + } + break; + case 'n': + if (strcmp("egotiated-version", s + 5) == 0) + return PIDX_ASYM_CIPHER_PARAM_TLS_NEGOTIATED_VERSION; + break; + case 's': + switch(s[5]) { + default: + break; + case 'i': + switch(s[6]) { + default: + break; + case 'g': + switch(s[7]) { + default: + break; + case 'a': + switch(s[8]) { + default: + break; + case 'l': + switch(s[9]) { + default: + break; + case 'g': + switch(s[10]) { + default: + break; + case '-': + switch(s[11]) { + default: + break; + case 'c': + if (strcmp("ode-point", s + 12) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_CODE_POINT; + break; + case 'h': + switch(s[12]) { + default: + break; + case 'a': + switch(s[13]) { + default: + break; + case 's': + switch(s[14]) { + default: + break; + case 'h': + switch(s[15]) { + default: + break; + case '-': + switch(s[16]) { + default: + break; + case 'n': + if (strcmp("ame", s + 17) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_HASH_NAME; + break; + case 'o': + if (strcmp("id", s + 17) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_HASH_OID; + } + } + } + } + } + break; + case 'i': + if (strcmp("ana-name", s + 12) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_IANA_NAME; + break; + case 'k': + switch(s[12]) { + default: + break; + case 'e': + switch(s[13]) { + default: + break; + case 'y': + switch(s[14]) { + default: + break; + case 't': + switch(s[15]) { + default: + break; + case 'y': + switch(s[16]) { + default: + break; + case 'p': + switch(s[17]) { + default: + break; + case 'e': + switch(s[18]) { + default: + break; + case '-': + if (strcmp("oid", s + 19) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_KEYTYPE_OID; + break; + case '\0': + return PIDX_CAPABILITY_TLS_SIGALG_KEYTYPE; + } + } + } + } + } + } + } + break; + case 'n': + if (strcmp("ame", s + 12) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_NAME; + break; + case 'o': + if (strcmp("id", s + 12) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_OID; + break; + case 's': + switch(s[12]) { + default: + break; + case 'e': + if (strcmp("c-bits", s + 13) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_SECURITY_BITS; + break; + case 'i': + switch(s[13]) { + default: + break; + case 'g': + switch(s[14]) { + default: + break; + case '-': + switch(s[15]) { + default: + break; + case 'n': + if (strcmp("ame", s + 16) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_SIG_NAME; + break; + case 'o': + if (strcmp("id", s + 16) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_SIG_OID; + } + } + } + } + } + } + } + } + } + } + } + break; + case 'v': + if (strcmp("ersion", s + 5) == 0) + return PIDX_CIPHER_PARAM_TLS_VERSION; + } + break; + case '1': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'p': + switch(s[6]) { + default: + break; + case 'r': + switch(s[7]) { + default: + break; + case 'f': + switch(s[8]) { + default: + break; + case '-': + switch(s[9]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 10) == 0) + return PIDX_PROV_PARAM_TLS1_PRF_DIGEST_CHECK; + break; + case 'e': + if (strcmp("ms-check", s + 10) == 0) + return PIDX_PROV_PARAM_TLS1_PRF_EMS_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 10) == 0) + return PIDX_PROV_PARAM_TLS1_PRF_KEY_CHECK; + } + } + } + } + } + break; + case '3': + switch(s[5]) { + default: + break; + case '-': + switch(s[6]) { + default: + break; + case 'k': + switch(s[7]) { + default: + break; + case 'd': + switch(s[8]) { + default: + break; + case 'f': + switch(s[9]) { + default: + break; + case '-': + switch(s[10]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 11) == 0) + return PIDX_PROV_PARAM_TLS13_KDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 11) == 0) + return PIDX_PROV_PARAM_TLS13_KDF_KEY_CHECK; + } + } + } + } + } + } + break; + case 'm': + switch(s[5]) { + default: + break; + case 'u': + switch(s[6]) { + default: + break; + case 'l': + switch(s[7]) { + default: + break; + case 't': + switch(s[8]) { + default: + break; + case 'i': + switch(s[9]) { + default: + break; + case '_': + switch(s[10]) { + default: + break; + case 'a': + switch(s[11]) { + default: + break; + case 'a': + switch(s[12]) { + default: + break; + case 'd': + switch(s[13]) { + default: + break; + case 'p': + if (strcmp("acklen", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD_PACKLEN; + break; + case '\0': + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD; + } + } + } + break; + case 'e': + switch(s[11]) { + default: + break; + case 'n': + switch(s[12]) { + default: + break; + case 'c': + switch(s[13]) { + default: + break; + case 'i': + if (strcmp("n", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_IN; + break; + case 'l': + if (strcmp("en", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_LEN; + break; + case '\0': + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC; + } + } + } + break; + case 'i': + if (strcmp("nterleave", s + 11) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_INTERLEAVE; + break; + case 'm': + switch(s[11]) { + default: + break; + case 'a': + switch(s[12]) { + default: + break; + case 'x': + switch(s[13]) { + default: + break; + case 'b': + if (strcmp("ufsz", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_BUFSIZE; + break; + case 's': + if (strcmp("ndfrag", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_SEND_FRAGMENT; + } + } + } + } + } + } + } + } + } + } + break; + case 'a': + switch(s[4]) { + default: + break; + case 'a': + switch(s[5]) { + default: + break; + case 'd': + switch(s[6]) { + default: + break; + case 'p': + if (strcmp("ad", s + 7) == 0) + return PIDX_CIPHER_PARAM_AEAD_TLS1_AAD_PAD; + break; + case '\0': + return PIDX_CIPHER_PARAM_AEAD_TLS1_AAD; + } + } + } + break; + case 'i': + switch(s[4]) { + default: + break; + case 'v': + switch(s[5]) { + default: + break; + case 'f': + if (strcmp("ixed", s + 6) == 0) + return PIDX_CIPHER_PARAM_AEAD_TLS1_IV_FIXED; + break; + case 'g': + if (strcmp("en", s + 6) == 0) + return PIDX_CIPHER_PARAM_AEAD_TLS1_GET_IV_GEN; + break; + case 'i': + if (strcmp("nv", s + 6) == 0) + return PIDX_CIPHER_PARAM_AEAD_TLS1_SET_IV_INV; + } + } + break; + case 't': + if (strcmp("ree", s + 4) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_TLSTREE; + } + } + break; + case 'p': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_TP_BASIS; + } + break; + case 'y': + if (strcmp("pe", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_TYPE; + } + break; + case 'u': + switch(s[1]) { + default: + break; + case 'k': + if (strcmp("m", s + 2) == 0) + return PIDX_KDF_PARAM_UKM; + break; + case 'p': + if (strcmp("dated-iv", s + 2) == 0) + return PIDX_CIPHER_PARAM_UPDATED_IV; + break; + case 's': + switch(s[2]) { + default: + break; + case 'e': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'b': + if (strcmp("its", s + 5) == 0) + return PIDX_CIPHER_PARAM_USE_BITS; + break; + case 'c': + if (strcmp("ofactor-flag", s + 5) == 0) + return PIDX_PKEY_PARAM_USE_COFACTOR_FLAG; + break; + case 'k': + if (strcmp("eybits", s + 5) == 0) + return PIDX_KDF_PARAM_X942_USE_KEYBITS; + break; + case 'l': + switch(s[5]) { + default: + break; + case '\0': + return PIDX_KDF_PARAM_KBKDF_USE_L; + } + break; + case 's': + if (strcmp("eparator", s + 5) == 0) + return PIDX_KDF_PARAM_KBKDF_USE_SEPARATOR; + } + break; + case '_': + switch(s[4]) { + default: + break; + case 'd': + if (strcmp("erivation_function", s + 5) == 0) + return PIDX_DRBG_PARAM_USE_DF; + break; + case 'e': + if (strcmp("tm", s + 5) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_USE_ETM; + } + } + } + } + break; + case 'v': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'l': + switch(s[3]) { + default: + break; + case 'i': + switch(s[4]) { + default: + break; + case 'd': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case 'e': + switch(s[8]) { + default: + break; + case '-': + switch(s[9]) { + default: + break; + case 'g': + switch(s[10]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_VALIDATE_G; + } + break; + case 'l': + if (strcmp("egacy", s + 10) == 0) + return PIDX_PKEY_PARAM_FFC_VALIDATE_LEGACY; + break; + case 'p': + if (strcmp("q", s + 10) == 0) + return PIDX_PKEY_PARAM_FFC_VALIDATE_PQ; + } + } + } + } + } + } + } + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'r': + switch(s[3]) { + default: + break; + case 'i': + if (strcmp("fy-message", s + 4) == 0) + return PIDX_SIGNATURE_PARAM_FIPS_VERIFY_MESSAGE; + break; + case 's': + if (strcmp("ion", s + 4) == 0) + return PIDX_PROV_PARAM_VERSION; + } + } + } + break; + case 'x': + switch(s[1]) { + default: + break; + case '9': + switch(s[2]) { + default: + break; + case '4': + if (strcmp("2kdf-key-check", s + 3) == 0) + return PIDX_PROV_PARAM_X942KDF_KEY_CHECK; + break; + case '6': + switch(s[3]) { + default: + break; + case '3': + switch(s[4]) { + default: + break; + case 'k': + switch(s[5]) { + default: + break; + case 'd': + switch(s[6]) { + default: + break; + case 'f': + switch(s[7]) { + default: + break; + case '-': + switch(s[8]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 9) == 0) + return PIDX_PROV_PARAM_X963KDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 9) == 0) + return PIDX_PROV_PARAM_X963KDF_KEY_CHECK; + } + } + } + } + } + } + } + break; + case 'c': + if (strcmp("ghash", s + 2) == 0) + return PIDX_KDF_PARAM_SSHKDF_XCGHASH; + break; + case 'o': + switch(s[2]) { + default: + break; + case 'f': + switch(s[3]) { + default: + break; + case 'l': + if (strcmp("en", s + 4) == 0) + return PIDX_DIGEST_PARAM_XOFLEN; + break; + case '\0': + return PIDX_MAC_PARAM_XOF; + } + } + break; + case 'p': + switch(s[2]) { + default: + break; + case '1': + switch(s[3]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XP1; + } + break; + case '2': + switch(s[3]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XP2; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XP; + } + break; + case 'q': + switch(s[2]) { + default: + break; + case '1': + switch(s[3]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XQ1; + } + break; + case '2': + switch(s[3]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XQ2; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XQ; + } + break; + case 't': + if (strcmp("s_standard", s + 2) == 0) + return PIDX_CIPHER_PARAM_XTS_STANDARD; + } + } + return -1; +} + +/* End of TRIE */ diff --git a/deps/openssl/config/archs/BSD-x86_64/no-asm/include/internal/param_names.h b/deps/openssl/config/archs/BSD-x86_64/no-asm/include/internal/param_names.h new file mode 100644 index 00000000000000..0a0404a57e82b9 --- /dev/null +++ b/deps/openssl/config/archs/BSD-x86_64/no-asm/include/internal/param_names.h @@ -0,0 +1,469 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from include/internal/param_names.h.in + * + * Copyright 2023 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + +int ossl_param_find_pidx(const char *s); + +/* Parameter name definitions - generated by util/perl/OpenSSL/paramnames.pm */ +#define NUM_PIDX 346 + +#define PIDX_ALG_PARAM_ALGORITHM_ID 0 +#define PIDX_ALG_PARAM_ALGORITHM_ID_PARAMS 1 +#define PIDX_ALG_PARAM_CIPHER 2 +#define PIDX_ALG_PARAM_DIGEST 3 +#define PIDX_ALG_PARAM_ENGINE 4 +#define PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR 5 +#define PIDX_ALG_PARAM_MAC 6 +#define PIDX_ALG_PARAM_PROPERTIES 7 +#define PIDX_ASYM_CIPHER_PARAM_DIGEST PIDX_PKEY_PARAM_DIGEST +#define PIDX_ASYM_CIPHER_PARAM_ENGINE PIDX_PKEY_PARAM_ENGINE +#define PIDX_ASYM_CIPHER_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_ASYM_CIPHER_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_ASYM_CIPHER_PARAM_FIPS_RSA_PKCS15_PAD_DISABLED PIDX_PROV_PARAM_RSA_PKCS15_PAD_DISABLED +#define PIDX_ASYM_CIPHER_PARAM_IMPLICIT_REJECTION 8 +#define PIDX_ASYM_CIPHER_PARAM_MGF1_DIGEST PIDX_PKEY_PARAM_MGF1_DIGEST +#define PIDX_ASYM_CIPHER_PARAM_MGF1_DIGEST_PROPS PIDX_PKEY_PARAM_MGF1_PROPERTIES +#define PIDX_ASYM_CIPHER_PARAM_OAEP_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_ASYM_CIPHER_PARAM_OAEP_DIGEST_PROPS 9 +#define PIDX_ASYM_CIPHER_PARAM_OAEP_LABEL 10 +#define PIDX_ASYM_CIPHER_PARAM_PAD_MODE PIDX_PKEY_PARAM_PAD_MODE +#define PIDX_ASYM_CIPHER_PARAM_PROPERTIES PIDX_PKEY_PARAM_PROPERTIES +#define PIDX_ASYM_CIPHER_PARAM_TLS_CLIENT_VERSION 11 +#define PIDX_ASYM_CIPHER_PARAM_TLS_NEGOTIATED_VERSION 12 +#define PIDX_CAPABILITY_TLS_GROUP_ALG 13 +#define PIDX_CAPABILITY_TLS_GROUP_ID 14 +#define PIDX_CAPABILITY_TLS_GROUP_IS_KEM 15 +#define PIDX_CAPABILITY_TLS_GROUP_MAX_DTLS 16 +#define PIDX_CAPABILITY_TLS_GROUP_MAX_TLS 17 +#define PIDX_CAPABILITY_TLS_GROUP_MIN_DTLS 18 +#define PIDX_CAPABILITY_TLS_GROUP_MIN_TLS 19 +#define PIDX_CAPABILITY_TLS_GROUP_NAME 20 +#define PIDX_CAPABILITY_TLS_GROUP_NAME_INTERNAL 21 +#define PIDX_CAPABILITY_TLS_GROUP_SECURITY_BITS 22 +#define PIDX_CAPABILITY_TLS_SIGALG_CODE_POINT 23 +#define PIDX_CAPABILITY_TLS_SIGALG_HASH_NAME 24 +#define PIDX_CAPABILITY_TLS_SIGALG_HASH_OID 25 +#define PIDX_CAPABILITY_TLS_SIGALG_IANA_NAME 26 +#define PIDX_CAPABILITY_TLS_SIGALG_KEYTYPE 27 +#define PIDX_CAPABILITY_TLS_SIGALG_KEYTYPE_OID 28 +#define PIDX_CAPABILITY_TLS_SIGALG_MAX_DTLS 16 +#define PIDX_CAPABILITY_TLS_SIGALG_MAX_TLS 17 +#define PIDX_CAPABILITY_TLS_SIGALG_MIN_DTLS 18 +#define PIDX_CAPABILITY_TLS_SIGALG_MIN_TLS 19 +#define PIDX_CAPABILITY_TLS_SIGALG_NAME 29 +#define PIDX_CAPABILITY_TLS_SIGALG_OID 30 +#define PIDX_CAPABILITY_TLS_SIGALG_SECURITY_BITS 31 +#define PIDX_CAPABILITY_TLS_SIGALG_SIG_NAME 32 +#define PIDX_CAPABILITY_TLS_SIGALG_SIG_OID 33 +#define PIDX_CIPHER_PARAM_AEAD 34 +#define PIDX_CIPHER_PARAM_AEAD_IVLEN PIDX_CIPHER_PARAM_IVLEN +#define PIDX_CIPHER_PARAM_AEAD_IV_GENERATED 35 +#define PIDX_CIPHER_PARAM_AEAD_MAC_KEY 36 +#define PIDX_CIPHER_PARAM_AEAD_TAG 37 +#define PIDX_CIPHER_PARAM_AEAD_TAGLEN 38 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_AAD 39 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_AAD_PAD 40 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_GET_IV_GEN 41 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_IV_FIXED 42 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_SET_IV_INV 43 +#define PIDX_CIPHER_PARAM_ALGORITHM_ID PIDX_ALG_PARAM_ALGORITHM_ID +#define PIDX_CIPHER_PARAM_ALGORITHM_ID_PARAMS PIDX_ALG_PARAM_ALGORITHM_ID_PARAMS +#define PIDX_CIPHER_PARAM_ALGORITHM_ID_PARAMS_OLD 44 +#define PIDX_CIPHER_PARAM_BLOCK_SIZE 45 +#define PIDX_CIPHER_PARAM_CTS 46 +#define PIDX_CIPHER_PARAM_CTS_MODE 47 +#define PIDX_CIPHER_PARAM_CUSTOM_IV 48 +#define PIDX_CIPHER_PARAM_DECRYPT_ONLY 49 +#define PIDX_CIPHER_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_CIPHER_PARAM_FIPS_ENCRYPT_CHECK 50 +#define PIDX_CIPHER_PARAM_HAS_RAND_KEY 51 +#define PIDX_CIPHER_PARAM_IV 52 +#define PIDX_CIPHER_PARAM_IVLEN 53 +#define PIDX_CIPHER_PARAM_KEYLEN 54 +#define PIDX_CIPHER_PARAM_MODE 55 +#define PIDX_CIPHER_PARAM_NUM 56 +#define PIDX_CIPHER_PARAM_PADDING 57 +#define PIDX_CIPHER_PARAM_PIPELINE_AEAD_TAG 58 +#define PIDX_CIPHER_PARAM_RANDOM_KEY 59 +#define PIDX_CIPHER_PARAM_RC2_KEYBITS 60 +#define PIDX_CIPHER_PARAM_ROUNDS 61 +#define PIDX_CIPHER_PARAM_SPEED 62 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK 63 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD 64 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD_PACKLEN 65 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC 66 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_IN 67 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_LEN 68 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_INTERLEAVE 69 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_BUFSIZE 70 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_SEND_FRAGMENT 71 +#define PIDX_CIPHER_PARAM_TLS_MAC 72 +#define PIDX_CIPHER_PARAM_TLS_MAC_SIZE 73 +#define PIDX_CIPHER_PARAM_TLS_VERSION 74 +#define PIDX_CIPHER_PARAM_UPDATED_IV 75 +#define PIDX_CIPHER_PARAM_USE_BITS 76 +#define PIDX_CIPHER_PARAM_XTS_STANDARD 77 +#define PIDX_DECODER_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_DIGEST_PARAM_ALGID_ABSENT 78 +#define PIDX_DIGEST_PARAM_BLOCK_SIZE 45 +#define PIDX_DIGEST_PARAM_MICALG 79 +#define PIDX_DIGEST_PARAM_PAD_TYPE 80 +#define PIDX_DIGEST_PARAM_SIZE 81 +#define PIDX_DIGEST_PARAM_SSL3_MS 82 +#define PIDX_DIGEST_PARAM_XOF 83 +#define PIDX_DIGEST_PARAM_XOFLEN 84 +#define PIDX_DRBG_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_DRBG_PARAM_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_DRBG_PARAM_ENTROPY_REQUIRED 85 +#define PIDX_DRBG_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_DRBG_PARAM_FIPS_DIGEST_CHECK PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK +#define PIDX_DRBG_PARAM_MAC PIDX_ALG_PARAM_MAC +#define PIDX_DRBG_PARAM_MAX_ADINLEN 86 +#define PIDX_DRBG_PARAM_MAX_ENTROPYLEN 87 +#define PIDX_DRBG_PARAM_MAX_LENGTH 88 +#define PIDX_DRBG_PARAM_MAX_NONCELEN 89 +#define PIDX_DRBG_PARAM_MAX_PERSLEN 90 +#define PIDX_DRBG_PARAM_MIN_ENTROPYLEN 91 +#define PIDX_DRBG_PARAM_MIN_LENGTH 92 +#define PIDX_DRBG_PARAM_MIN_NONCELEN 93 +#define PIDX_DRBG_PARAM_PREDICTION_RESISTANCE 94 +#define PIDX_DRBG_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_DRBG_PARAM_RANDOM_DATA 95 +#define PIDX_DRBG_PARAM_RESEED_COUNTER 96 +#define PIDX_DRBG_PARAM_RESEED_REQUESTS 97 +#define PIDX_DRBG_PARAM_RESEED_TIME 98 +#define PIDX_DRBG_PARAM_RESEED_TIME_INTERVAL 99 +#define PIDX_DRBG_PARAM_SIZE 81 +#define PIDX_DRBG_PARAM_USE_DF 100 +#define PIDX_ENCODER_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_ENCODER_PARAM_ENCRYPT_LEVEL 101 +#define PIDX_ENCODER_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_ENCODER_PARAM_SAVE_PARAMETERS 102 +#define PIDX_EXCHANGE_PARAM_EC_ECDH_COFACTOR_MODE 103 +#define PIDX_EXCHANGE_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_EXCHANGE_PARAM_FIPS_DIGEST_CHECK PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK +#define PIDX_EXCHANGE_PARAM_FIPS_ECDH_COFACTOR_CHECK PIDX_PROV_PARAM_ECDH_COFACTOR_CHECK +#define PIDX_EXCHANGE_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_EXCHANGE_PARAM_KDF_DIGEST 104 +#define PIDX_EXCHANGE_PARAM_KDF_DIGEST_PROPS 105 +#define PIDX_EXCHANGE_PARAM_KDF_OUTLEN 106 +#define PIDX_EXCHANGE_PARAM_KDF_TYPE 107 +#define PIDX_EXCHANGE_PARAM_KDF_UKM 108 +#define PIDX_EXCHANGE_PARAM_PAD 109 +#define PIDX_GEN_PARAM_ITERATION 110 +#define PIDX_GEN_PARAM_POTENTIAL 111 +#define PIDX_KDF_PARAM_ARGON2_AD 112 +#define PIDX_KDF_PARAM_ARGON2_LANES 113 +#define PIDX_KDF_PARAM_ARGON2_MEMCOST 114 +#define PIDX_KDF_PARAM_ARGON2_VERSION 115 +#define PIDX_KDF_PARAM_CEK_ALG 116 +#define PIDX_KDF_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_KDF_PARAM_CONSTANT 117 +#define PIDX_KDF_PARAM_DATA 118 +#define PIDX_KDF_PARAM_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_KDF_PARAM_EARLY_CLEAN 119 +#define PIDX_KDF_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_KDF_PARAM_FIPS_DIGEST_CHECK PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK +#define PIDX_KDF_PARAM_FIPS_EMS_CHECK 120 +#define PIDX_KDF_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_KDF_PARAM_HMACDRBG_ENTROPY 121 +#define PIDX_KDF_PARAM_HMACDRBG_NONCE 122 +#define PIDX_KDF_PARAM_INFO 123 +#define PIDX_KDF_PARAM_ITER 124 +#define PIDX_KDF_PARAM_KBKDF_R 125 +#define PIDX_KDF_PARAM_KBKDF_USE_L 126 +#define PIDX_KDF_PARAM_KBKDF_USE_SEPARATOR 127 +#define PIDX_KDF_PARAM_KEY 128 +#define PIDX_KDF_PARAM_LABEL 129 +#define PIDX_KDF_PARAM_MAC PIDX_ALG_PARAM_MAC +#define PIDX_KDF_PARAM_MAC_SIZE 130 +#define PIDX_KDF_PARAM_MODE 55 +#define PIDX_KDF_PARAM_PASSWORD 131 +#define PIDX_KDF_PARAM_PKCS12_ID 132 +#define PIDX_KDF_PARAM_PKCS5 133 +#define PIDX_KDF_PARAM_PREFIX 134 +#define PIDX_KDF_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_KDF_PARAM_SALT 135 +#define PIDX_KDF_PARAM_SCRYPT_MAXMEM 136 +#define PIDX_KDF_PARAM_SCRYPT_N 137 +#define PIDX_KDF_PARAM_SCRYPT_P 138 +#define PIDX_KDF_PARAM_SCRYPT_R 125 +#define PIDX_KDF_PARAM_SECRET 139 +#define PIDX_KDF_PARAM_SEED 140 +#define PIDX_KDF_PARAM_SIZE 81 +#define PIDX_KDF_PARAM_SSHKDF_SESSION_ID 141 +#define PIDX_KDF_PARAM_SSHKDF_TYPE 142 +#define PIDX_KDF_PARAM_SSHKDF_XCGHASH 143 +#define PIDX_KDF_PARAM_THREADS 144 +#define PIDX_KDF_PARAM_UKM 145 +#define PIDX_KDF_PARAM_X942_ACVPINFO 146 +#define PIDX_KDF_PARAM_X942_PARTYUINFO 147 +#define PIDX_KDF_PARAM_X942_PARTYVINFO 148 +#define PIDX_KDF_PARAM_X942_SUPP_PRIVINFO 149 +#define PIDX_KDF_PARAM_X942_SUPP_PUBINFO 150 +#define PIDX_KDF_PARAM_X942_USE_KEYBITS 151 +#define PIDX_KEM_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_KEM_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_KEM_PARAM_IKME 152 +#define PIDX_KEM_PARAM_OPERATION 153 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_BLOCK_PADDING 154 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_HS_PADDING 155 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_MAX_EARLY_DATA 156 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_MAX_FRAG_LEN 157 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_MODE 55 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_OPTIONS 158 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_READ_AHEAD 159 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_STREAM_MAC 160 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_TLSTREE 161 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_USE_ETM 162 +#define PIDX_LIBSSL_RECORD_LAYER_READ_BUFFER_LEN 163 +#define PIDX_MAC_PARAM_BLOCK_SIZE 164 +#define PIDX_MAC_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_MAC_PARAM_CUSTOM 165 +#define PIDX_MAC_PARAM_C_ROUNDS 166 +#define PIDX_MAC_PARAM_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_MAC_PARAM_DIGEST_NOINIT 167 +#define PIDX_MAC_PARAM_DIGEST_ONESHOT 168 +#define PIDX_MAC_PARAM_D_ROUNDS 169 +#define PIDX_MAC_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_MAC_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_MAC_PARAM_FIPS_NO_SHORT_MAC PIDX_PROV_PARAM_NO_SHORT_MAC +#define PIDX_MAC_PARAM_IV 52 +#define PIDX_MAC_PARAM_KEY 128 +#define PIDX_MAC_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_MAC_PARAM_SALT 135 +#define PIDX_MAC_PARAM_SIZE 81 +#define PIDX_MAC_PARAM_TLS_DATA_SIZE 170 +#define PIDX_MAC_PARAM_XOF 83 +#define PIDX_OBJECT_PARAM_DATA 118 +#define PIDX_OBJECT_PARAM_DATA_STRUCTURE 171 +#define PIDX_OBJECT_PARAM_DATA_TYPE 172 +#define PIDX_OBJECT_PARAM_DESC 173 +#define PIDX_OBJECT_PARAM_INPUT_TYPE 174 +#define PIDX_OBJECT_PARAM_REFERENCE 175 +#define PIDX_OBJECT_PARAM_TYPE 142 +#define PIDX_PASSPHRASE_PARAM_INFO 123 +#define PIDX_PKEY_PARAM_ALGORITHM_ID PIDX_ALG_PARAM_ALGORITHM_ID +#define PIDX_PKEY_PARAM_ALGORITHM_ID_PARAMS PIDX_ALG_PARAM_ALGORITHM_ID_PARAMS +#define PIDX_PKEY_PARAM_BITS 176 +#define PIDX_PKEY_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_PKEY_PARAM_DEFAULT_DIGEST 177 +#define PIDX_PKEY_PARAM_DHKEM_IKM 178 +#define PIDX_PKEY_PARAM_DH_GENERATOR 179 +#define PIDX_PKEY_PARAM_DH_PRIV_LEN 180 +#define PIDX_PKEY_PARAM_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_PKEY_PARAM_DIGEST_SIZE 181 +#define PIDX_PKEY_PARAM_DIST_ID 182 +#define PIDX_PKEY_PARAM_EC_A 183 +#define PIDX_PKEY_PARAM_EC_B 184 +#define PIDX_PKEY_PARAM_EC_CHAR2_M 185 +#define PIDX_PKEY_PARAM_EC_CHAR2_PP_K1 186 +#define PIDX_PKEY_PARAM_EC_CHAR2_PP_K2 187 +#define PIDX_PKEY_PARAM_EC_CHAR2_PP_K3 188 +#define PIDX_PKEY_PARAM_EC_CHAR2_TP_BASIS 189 +#define PIDX_PKEY_PARAM_EC_CHAR2_TYPE 190 +#define PIDX_PKEY_PARAM_EC_COFACTOR 191 +#define PIDX_PKEY_PARAM_EC_DECODED_FROM_EXPLICIT_PARAMS 192 +#define PIDX_PKEY_PARAM_EC_ENCODING 193 +#define PIDX_PKEY_PARAM_EC_FIELD_TYPE 194 +#define PIDX_PKEY_PARAM_EC_GENERATOR 195 +#define PIDX_PKEY_PARAM_EC_GROUP_CHECK_TYPE 196 +#define PIDX_PKEY_PARAM_EC_INCLUDE_PUBLIC 197 +#define PIDX_PKEY_PARAM_EC_ORDER 198 +#define PIDX_PKEY_PARAM_EC_P 138 +#define PIDX_PKEY_PARAM_EC_POINT_CONVERSION_FORMAT 199 +#define PIDX_PKEY_PARAM_EC_PUB_X 200 +#define PIDX_PKEY_PARAM_EC_PUB_Y 201 +#define PIDX_PKEY_PARAM_EC_SEED 140 +#define PIDX_PKEY_PARAM_ENCODED_PUBLIC_KEY 202 +#define PIDX_PKEY_PARAM_ENGINE PIDX_ALG_PARAM_ENGINE +#define PIDX_PKEY_PARAM_FFC_COFACTOR 203 +#define PIDX_PKEY_PARAM_FFC_DIGEST PIDX_PKEY_PARAM_DIGEST +#define PIDX_PKEY_PARAM_FFC_DIGEST_PROPS PIDX_PKEY_PARAM_PROPERTIES +#define PIDX_PKEY_PARAM_FFC_G 204 +#define PIDX_PKEY_PARAM_FFC_GINDEX 205 +#define PIDX_PKEY_PARAM_FFC_H 206 +#define PIDX_PKEY_PARAM_FFC_P 138 +#define PIDX_PKEY_PARAM_FFC_PBITS 207 +#define PIDX_PKEY_PARAM_FFC_PCOUNTER 208 +#define PIDX_PKEY_PARAM_FFC_Q 209 +#define PIDX_PKEY_PARAM_FFC_QBITS 210 +#define PIDX_PKEY_PARAM_FFC_SEED 140 +#define PIDX_PKEY_PARAM_FFC_TYPE 142 +#define PIDX_PKEY_PARAM_FFC_VALIDATE_G 211 +#define PIDX_PKEY_PARAM_FFC_VALIDATE_LEGACY 212 +#define PIDX_PKEY_PARAM_FFC_VALIDATE_PQ 213 +#define PIDX_PKEY_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK 214 +#define PIDX_PKEY_PARAM_FIPS_KEY_CHECK 215 +#define PIDX_PKEY_PARAM_FIPS_SIGN_CHECK 216 +#define PIDX_PKEY_PARAM_GROUP_NAME 217 +#define PIDX_PKEY_PARAM_IMPLICIT_REJECTION 8 +#define PIDX_PKEY_PARAM_MANDATORY_DIGEST 218 +#define PIDX_PKEY_PARAM_MASKGENFUNC 219 +#define PIDX_PKEY_PARAM_MAX_SIZE 220 +#define PIDX_PKEY_PARAM_MGF1_DIGEST 221 +#define PIDX_PKEY_PARAM_MGF1_PROPERTIES 222 +#define PIDX_PKEY_PARAM_ML_DSA_INPUT_FORMATS 223 +#define PIDX_PKEY_PARAM_ML_DSA_OUTPUT_FORMATS 224 +#define PIDX_PKEY_PARAM_ML_DSA_PREFER_SEED 225 +#define PIDX_PKEY_PARAM_ML_DSA_RETAIN_SEED 226 +#define PIDX_PKEY_PARAM_ML_DSA_SEED 140 +#define PIDX_PKEY_PARAM_ML_KEM_IMPORT_PCT_TYPE 227 +#define PIDX_PKEY_PARAM_ML_KEM_INPUT_FORMATS 228 +#define PIDX_PKEY_PARAM_ML_KEM_OUTPUT_FORMATS 229 +#define PIDX_PKEY_PARAM_ML_KEM_PREFER_SEED 230 +#define PIDX_PKEY_PARAM_ML_KEM_RETAIN_SEED 231 +#define PIDX_PKEY_PARAM_ML_KEM_SEED 140 +#define PIDX_PKEY_PARAM_PAD_MODE 232 +#define PIDX_PKEY_PARAM_PRIV_KEY 233 +#define PIDX_PKEY_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_PKEY_PARAM_PUB_KEY 234 +#define PIDX_PKEY_PARAM_RSA_BITS PIDX_PKEY_PARAM_BITS +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT 235 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT1 236 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT2 237 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT3 238 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT4 239 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT5 240 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT6 241 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT7 242 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT8 243 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT9 244 +#define PIDX_PKEY_PARAM_RSA_D 245 +#define PIDX_PKEY_PARAM_RSA_DERIVE_FROM_PQ 246 +#define PIDX_PKEY_PARAM_RSA_DIGEST PIDX_PKEY_PARAM_DIGEST +#define PIDX_PKEY_PARAM_RSA_DIGEST_PROPS PIDX_PKEY_PARAM_PROPERTIES +#define PIDX_PKEY_PARAM_RSA_E 247 +#define PIDX_PKEY_PARAM_RSA_EXPONENT 248 +#define PIDX_PKEY_PARAM_RSA_EXPONENT1 249 +#define PIDX_PKEY_PARAM_RSA_EXPONENT10 250 +#define PIDX_PKEY_PARAM_RSA_EXPONENT2 251 +#define PIDX_PKEY_PARAM_RSA_EXPONENT3 252 +#define PIDX_PKEY_PARAM_RSA_EXPONENT4 253 +#define PIDX_PKEY_PARAM_RSA_EXPONENT5 254 +#define PIDX_PKEY_PARAM_RSA_EXPONENT6 255 +#define PIDX_PKEY_PARAM_RSA_EXPONENT7 256 +#define PIDX_PKEY_PARAM_RSA_EXPONENT8 257 +#define PIDX_PKEY_PARAM_RSA_EXPONENT9 258 +#define PIDX_PKEY_PARAM_RSA_FACTOR 259 +#define PIDX_PKEY_PARAM_RSA_FACTOR1 260 +#define PIDX_PKEY_PARAM_RSA_FACTOR10 261 +#define PIDX_PKEY_PARAM_RSA_FACTOR2 262 +#define PIDX_PKEY_PARAM_RSA_FACTOR3 263 +#define PIDX_PKEY_PARAM_RSA_FACTOR4 264 +#define PIDX_PKEY_PARAM_RSA_FACTOR5 265 +#define PIDX_PKEY_PARAM_RSA_FACTOR6 266 +#define PIDX_PKEY_PARAM_RSA_FACTOR7 267 +#define PIDX_PKEY_PARAM_RSA_FACTOR8 268 +#define PIDX_PKEY_PARAM_RSA_FACTOR9 269 +#define PIDX_PKEY_PARAM_RSA_MASKGENFUNC PIDX_PKEY_PARAM_MASKGENFUNC +#define PIDX_PKEY_PARAM_RSA_MGF1_DIGEST PIDX_PKEY_PARAM_MGF1_DIGEST +#define PIDX_PKEY_PARAM_RSA_N 137 +#define PIDX_PKEY_PARAM_RSA_PRIMES 270 +#define PIDX_PKEY_PARAM_RSA_PSS_SALTLEN 271 +#define PIDX_PKEY_PARAM_RSA_TEST_P1 272 +#define PIDX_PKEY_PARAM_RSA_TEST_P2 273 +#define PIDX_PKEY_PARAM_RSA_TEST_Q1 274 +#define PIDX_PKEY_PARAM_RSA_TEST_Q2 275 +#define PIDX_PKEY_PARAM_RSA_TEST_XP 276 +#define PIDX_PKEY_PARAM_RSA_TEST_XP1 277 +#define PIDX_PKEY_PARAM_RSA_TEST_XP2 278 +#define PIDX_PKEY_PARAM_RSA_TEST_XQ 279 +#define PIDX_PKEY_PARAM_RSA_TEST_XQ1 280 +#define PIDX_PKEY_PARAM_RSA_TEST_XQ2 281 +#define PIDX_PKEY_PARAM_SECURITY_BITS 282 +#define PIDX_PKEY_PARAM_SLH_DSA_SEED 140 +#define PIDX_PKEY_PARAM_USE_COFACTOR_ECDH PIDX_PKEY_PARAM_USE_COFACTOR_FLAG +#define PIDX_PKEY_PARAM_USE_COFACTOR_FLAG 283 +#define PIDX_PROV_PARAM_BUILDINFO 284 +#define PIDX_PROV_PARAM_CORE_MODULE_FILENAME 285 +#define PIDX_PROV_PARAM_CORE_PROV_NAME 286 +#define PIDX_PROV_PARAM_CORE_VERSION 287 +#define PIDX_PROV_PARAM_DRBG_TRUNC_DIGEST 288 +#define PIDX_PROV_PARAM_DSA_SIGN_DISABLED 289 +#define PIDX_PROV_PARAM_ECDH_COFACTOR_CHECK 290 +#define PIDX_PROV_PARAM_HKDF_DIGEST_CHECK 291 +#define PIDX_PROV_PARAM_HKDF_KEY_CHECK 292 +#define PIDX_PROV_PARAM_HMAC_KEY_CHECK 293 +#define PIDX_PROV_PARAM_KBKDF_KEY_CHECK 294 +#define PIDX_PROV_PARAM_KMAC_KEY_CHECK 295 +#define PIDX_PROV_PARAM_NAME 296 +#define PIDX_PROV_PARAM_NO_SHORT_MAC 297 +#define PIDX_PROV_PARAM_PBKDF2_LOWER_BOUND_CHECK 298 +#define PIDX_PROV_PARAM_RSA_PKCS15_PAD_DISABLED 299 +#define PIDX_PROV_PARAM_RSA_PSS_SALTLEN_CHECK 300 +#define PIDX_PROV_PARAM_RSA_SIGN_X931_PAD_DISABLED 301 +#define PIDX_PROV_PARAM_SECURITY_CHECKS 302 +#define PIDX_PROV_PARAM_SELF_TEST_DESC 303 +#define PIDX_PROV_PARAM_SELF_TEST_PHASE 304 +#define PIDX_PROV_PARAM_SELF_TEST_TYPE 305 +#define PIDX_PROV_PARAM_SIGNATURE_DIGEST_CHECK 306 +#define PIDX_PROV_PARAM_SSHKDF_DIGEST_CHECK 307 +#define PIDX_PROV_PARAM_SSHKDF_KEY_CHECK 308 +#define PIDX_PROV_PARAM_SSKDF_DIGEST_CHECK 309 +#define PIDX_PROV_PARAM_SSKDF_KEY_CHECK 310 +#define PIDX_PROV_PARAM_STATUS 311 +#define PIDX_PROV_PARAM_TDES_ENCRYPT_DISABLED 312 +#define PIDX_PROV_PARAM_TLS13_KDF_DIGEST_CHECK 313 +#define PIDX_PROV_PARAM_TLS13_KDF_KEY_CHECK 314 +#define PIDX_PROV_PARAM_TLS1_PRF_DIGEST_CHECK 315 +#define PIDX_PROV_PARAM_TLS1_PRF_EMS_CHECK 316 +#define PIDX_PROV_PARAM_TLS1_PRF_KEY_CHECK 317 +#define PIDX_PROV_PARAM_VERSION 115 +#define PIDX_PROV_PARAM_X942KDF_KEY_CHECK 318 +#define PIDX_PROV_PARAM_X963KDF_DIGEST_CHECK 319 +#define PIDX_PROV_PARAM_X963KDF_KEY_CHECK 320 +#define PIDX_RAND_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_RAND_PARAM_GENERATE 321 +#define PIDX_RAND_PARAM_MAX_REQUEST 322 +#define PIDX_RAND_PARAM_STATE 323 +#define PIDX_RAND_PARAM_STRENGTH 324 +#define PIDX_RAND_PARAM_TEST_ENTROPY 325 +#define PIDX_RAND_PARAM_TEST_NONCE 326 +#define PIDX_SIGNATURE_PARAM_ADD_RANDOM 327 +#define PIDX_SIGNATURE_PARAM_ALGORITHM_ID PIDX_PKEY_PARAM_ALGORITHM_ID +#define PIDX_SIGNATURE_PARAM_ALGORITHM_ID_PARAMS PIDX_PKEY_PARAM_ALGORITHM_ID_PARAMS +#define PIDX_SIGNATURE_PARAM_CONTEXT_STRING 328 +#define PIDX_SIGNATURE_PARAM_DETERMINISTIC 329 +#define PIDX_SIGNATURE_PARAM_DIGEST PIDX_PKEY_PARAM_DIGEST +#define PIDX_SIGNATURE_PARAM_DIGEST_SIZE PIDX_PKEY_PARAM_DIGEST_SIZE +#define PIDX_SIGNATURE_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_SIGNATURE_PARAM_FIPS_DIGEST_CHECK PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK +#define PIDX_SIGNATURE_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_SIGNATURE_PARAM_FIPS_RSA_PSS_SALTLEN_CHECK 300 +#define PIDX_SIGNATURE_PARAM_FIPS_SIGN_CHECK PIDX_PKEY_PARAM_FIPS_SIGN_CHECK +#define PIDX_SIGNATURE_PARAM_FIPS_SIGN_X931_PAD_CHECK 330 +#define PIDX_SIGNATURE_PARAM_FIPS_VERIFY_MESSAGE 331 +#define PIDX_SIGNATURE_PARAM_INSTANCE 332 +#define PIDX_SIGNATURE_PARAM_KAT 333 +#define PIDX_SIGNATURE_PARAM_MESSAGE_ENCODING 334 +#define PIDX_SIGNATURE_PARAM_MGF1_DIGEST PIDX_PKEY_PARAM_MGF1_DIGEST +#define PIDX_SIGNATURE_PARAM_MGF1_PROPERTIES PIDX_PKEY_PARAM_MGF1_PROPERTIES +#define PIDX_SIGNATURE_PARAM_MU 335 +#define PIDX_SIGNATURE_PARAM_NONCE_TYPE 336 +#define PIDX_SIGNATURE_PARAM_PAD_MODE PIDX_PKEY_PARAM_PAD_MODE +#define PIDX_SIGNATURE_PARAM_PROPERTIES PIDX_PKEY_PARAM_PROPERTIES +#define PIDX_SIGNATURE_PARAM_PSS_SALTLEN 271 +#define PIDX_SIGNATURE_PARAM_SIGNATURE 337 +#define PIDX_SIGNATURE_PARAM_TEST_ENTROPY 338 +#define PIDX_SKEY_PARAM_KEY_LENGTH 339 +#define PIDX_SKEY_PARAM_RAW_BYTES 340 +#define PIDX_STORE_PARAM_ALIAS 341 +#define PIDX_STORE_PARAM_DIGEST 3 +#define PIDX_STORE_PARAM_EXPECT 342 +#define PIDX_STORE_PARAM_FINGERPRINT 343 +#define PIDX_STORE_PARAM_INPUT_TYPE 174 +#define PIDX_STORE_PARAM_ISSUER 296 +#define PIDX_STORE_PARAM_PROPERTIES 7 +#define PIDX_STORE_PARAM_SERIAL 344 +#define PIDX_STORE_PARAM_SUBJECT 345 diff --git a/deps/openssl/config/archs/BSD-x86_64/no-asm/include/openssl/asn1.h b/deps/openssl/config/archs/BSD-x86_64/no-asm/include/openssl/asn1.h index 21ff58e3d803d4..15e9e44674b0f3 100644 --- a/deps/openssl/config/archs/BSD-x86_64/no-asm/include/openssl/asn1.h +++ b/deps/openssl/config/archs/BSD-x86_64/no-asm/include/openssl/asn1.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/asn1.h.in * - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -21,6 +21,9 @@ # define HEADER_ASN1_H # endif +# ifndef OPENSSL_NO_STDIO +# include +# endif # include # include # include @@ -50,14 +53,14 @@ extern "C" { # define V_ASN1_PRIMITIVE_TAG 0x1f # define V_ASN1_PRIMATIVE_TAG /*compat*/ V_ASN1_PRIMITIVE_TAG -# define V_ASN1_APP_CHOOSE -2/* let the recipient choose */ -# define V_ASN1_OTHER -3/* used in ASN1_TYPE */ -# define V_ASN1_ANY -4/* used in ASN1 template code */ +# define V_ASN1_APP_CHOOSE -2 /* let the recipient choose */ +# define V_ASN1_OTHER -3 /* used in ASN1_TYPE */ +# define V_ASN1_ANY -4 /* used in ASN1 template code */ # define V_ASN1_UNDEF -1 /* ASN.1 tag values */ # define V_ASN1_EOC 0 -# define V_ASN1_BOOLEAN 1 /**/ +# define V_ASN1_BOOLEAN 1 # define V_ASN1_INTEGER 2 # define V_ASN1_BIT_STRING 3 # define V_ASN1_OCTET_STRING 4 @@ -70,19 +73,19 @@ extern "C" { # define V_ASN1_UTF8STRING 12 # define V_ASN1_SEQUENCE 16 # define V_ASN1_SET 17 -# define V_ASN1_NUMERICSTRING 18 /**/ +# define V_ASN1_NUMERICSTRING 18 # define V_ASN1_PRINTABLESTRING 19 # define V_ASN1_T61STRING 20 -# define V_ASN1_TELETEXSTRING 20/* alias */ -# define V_ASN1_VIDEOTEXSTRING 21 /**/ +# define V_ASN1_TELETEXSTRING 20 /* alias */ +# define V_ASN1_VIDEOTEXSTRING 21 # define V_ASN1_IA5STRING 22 # define V_ASN1_UTCTIME 23 -# define V_ASN1_GENERALIZEDTIME 24 /**/ -# define V_ASN1_GRAPHICSTRING 25 /**/ -# define V_ASN1_ISO64STRING 26 /**/ -# define V_ASN1_VISIBLESTRING 26/* alias */ -# define V_ASN1_GENERALSTRING 27 /**/ -# define V_ASN1_UNIVERSALSTRING 28 /**/ +# define V_ASN1_GENERALIZEDTIME 24 +# define V_ASN1_GRAPHICSTRING 25 +# define V_ASN1_ISO64STRING 26 +# define V_ASN1_VISIBLESTRING 26 /* alias */ +# define V_ASN1_GENERALSTRING 27 +# define V_ASN1_UNIVERSALSTRING 28 # define V_ASN1_BMPSTRING 30 /* @@ -155,7 +158,7 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_ALGOR, X509_ALGOR, X509_ALGOR) -# define ASN1_STRING_FLAG_BITS_LEFT 0x08/* Set if 0x07 has bits left value */ +# define ASN1_STRING_FLAG_BITS_LEFT 0x08 /* Set if 0x07 has bits left value */ /* * This indicates that the ASN1_STRING is not a real value but just a place * holder for the location where indefinite length constructed data should be @@ -275,7 +278,7 @@ typedef struct ASN1_TLC_st ASN1_TLC; /* This is just an opaque pointer */ typedef struct ASN1_VALUE_st ASN1_VALUE; -/* Declare ASN1 functions: the implement macro in in asn1t.h */ +/* Declare ASN1 functions: the implement macro is in asn1t.h */ /* * The mysterious 'extern' that's passed to some macros is innocuous, @@ -368,6 +371,7 @@ typedef struct ASN1_VALUE_st ASN1_VALUE; typedef void *d2i_of_void(void **, const unsigned char **, long); typedef int i2d_of_void(const void *, unsigned char **); +typedef int OSSL_i2d_of_void_ctx(const void *, unsigned char **, void *vctx); /*- * The following macros and typedefs allow an ASN1_ITEM @@ -996,6 +1000,8 @@ int ASN1_TYPE_get_int_octetstring(const ASN1_TYPE *a, long *num, unsigned char *data, int max_len); void *ASN1_item_unpack(const ASN1_STRING *oct, const ASN1_ITEM *it); +void *ASN1_item_unpack_ex(const ASN1_STRING *oct, const ASN1_ITEM *it, + OSSL_LIB_CTX *libctx, const char *propq); ASN1_STRING *ASN1_item_pack(void *obj, const ASN1_ITEM *it, ASN1_OCTET_STRING **oct); diff --git a/deps/openssl/config/archs/BSD-x86_64/no-asm/include/openssl/bio.h b/deps/openssl/config/archs/BSD-x86_64/no-asm/include/openssl/bio.h index f9aa74731c833c..e02f867beb0ec0 100644 --- a/deps/openssl/config/archs/BSD-x86_64/no-asm/include/openssl/bio.h +++ b/deps/openssl/config/archs/BSD-x86_64/no-asm/include/openssl/bio.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/bio.h.in * - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -67,8 +67,13 @@ extern "C" { # define BIO_TYPE_DGRAM_SCTP (24|BIO_TYPE_SOURCE_SINK|BIO_TYPE_DESCRIPTOR) # endif # define BIO_TYPE_CORE_TO_PROV (25|BIO_TYPE_SOURCE_SINK) +# define BIO_TYPE_DGRAM_PAIR (26|BIO_TYPE_SOURCE_SINK) +# define BIO_TYPE_DGRAM_MEM (27|BIO_TYPE_SOURCE_SINK) +/* Custom type starting index returned by BIO_get_new_index() */ #define BIO_TYPE_START 128 +/* Custom type maximum index that can be returned by BIO_get_new_index() */ +#define BIO_TYPE_MASK 0xFF /* * BIO_FILENAME_READ|BIO_CLOSE to open or close on free. @@ -171,6 +176,31 @@ extern "C" { # define BIO_CTRL_SET_INDENT 80 # define BIO_CTRL_GET_INDENT 81 +# define BIO_CTRL_DGRAM_GET_LOCAL_ADDR_CAP 82 +# define BIO_CTRL_DGRAM_GET_LOCAL_ADDR_ENABLE 83 +# define BIO_CTRL_DGRAM_SET_LOCAL_ADDR_ENABLE 84 +# define BIO_CTRL_DGRAM_GET_EFFECTIVE_CAPS 85 +# define BIO_CTRL_DGRAM_GET_CAPS 86 +# define BIO_CTRL_DGRAM_SET_CAPS 87 +# define BIO_CTRL_DGRAM_GET_NO_TRUNC 88 +# define BIO_CTRL_DGRAM_SET_NO_TRUNC 89 + +/* + * internal BIO: + * # define BIO_CTRL_SET_KTLS_TX_ZEROCOPY_SENDFILE 90 + */ + +# define BIO_CTRL_GET_RPOLL_DESCRIPTOR 91 +# define BIO_CTRL_GET_WPOLL_DESCRIPTOR 92 +# define BIO_CTRL_DGRAM_DETECT_PEER_ADDR 93 +# define BIO_CTRL_DGRAM_SET0_LOCAL_ADDR 94 + +# define BIO_DGRAM_CAP_NONE 0U +# define BIO_DGRAM_CAP_HANDLES_SRC_ADDR (1U << 0) +# define BIO_DGRAM_CAP_HANDLES_DST_ADDR (1U << 1) +# define BIO_DGRAM_CAP_PROVIDES_SRC_ADDR (1U << 2) +# define BIO_DGRAM_CAP_PROVIDES_DST_ADDR (1U << 3) + # ifndef OPENSSL_NO_KTLS # define BIO_get_ktls_send(b) \ (BIO_ctrl(b, BIO_CTRL_GET_KTLS_SEND, 0, NULL) > 0) @@ -208,7 +238,7 @@ extern "C" { # define BIO_FLAGS_NONCLEAR_RST 0x400 # define BIO_FLAGS_IN_EOF 0x800 -/* the BIO FLAGS values 0x1000 to 0x4000 are reserved for internal KTLS flags */ +/* the BIO FLAGS values 0x1000 to 0x8000 are reserved for internal KTLS flags */ typedef union bio_addr_st BIO_ADDR; typedef struct bio_addrinfo_st BIO_ADDRINFO; @@ -256,12 +286,14 @@ void BIO_clear_flags(BIO *b, int flags); # define BIO_RR_ACCEPT 0x03 /* These are passed by the BIO callback */ -# define BIO_CB_FREE 0x01 -# define BIO_CB_READ 0x02 -# define BIO_CB_WRITE 0x03 -# define BIO_CB_PUTS 0x04 -# define BIO_CB_GETS 0x05 -# define BIO_CB_CTRL 0x06 +# define BIO_CB_FREE 0x01 +# define BIO_CB_READ 0x02 +# define BIO_CB_WRITE 0x03 +# define BIO_CB_PUTS 0x04 +# define BIO_CB_GETS 0x05 +# define BIO_CB_CTRL 0x06 +# define BIO_CB_RECVMMSG 0x07 +# define BIO_CB_SENDMMSG 0x08 /* * The callback is called before and after the underling operation, The @@ -362,6 +394,36 @@ struct bio_dgram_sctp_prinfo { }; # endif +/* BIO_sendmmsg/BIO_recvmmsg-related definitions */ +typedef struct bio_msg_st { + void *data; + size_t data_len; + BIO_ADDR *peer, *local; + uint64_t flags; +} BIO_MSG; + +typedef struct bio_mmsg_cb_args_st { + BIO_MSG *msg; + size_t stride, num_msg; + uint64_t flags; + size_t *msgs_processed; +} BIO_MMSG_CB_ARGS; + +#define BIO_POLL_DESCRIPTOR_TYPE_NONE 0 +#define BIO_POLL_DESCRIPTOR_TYPE_SOCK_FD 1 +#define BIO_POLL_DESCRIPTOR_TYPE_SSL 2 +#define BIO_POLL_DESCRIPTOR_CUSTOM_START 8192 + +typedef struct bio_poll_descriptor_st { + uint32_t type; + union { + int fd; + void *custom; + uintptr_t custom_ui; + SSL *ssl; + } value; +} BIO_POLL_DESCRIPTOR; + /* * #define BIO_CONN_get_param_hostname BIO_ctrl */ @@ -428,10 +490,17 @@ struct bio_dgram_sctp_prinfo { # define BIO_C_SET_CONNECT_MODE 155 +# define BIO_C_SET_TFO 156 /* like BIO_C_SET_NBIO */ + +# define BIO_C_SET_SOCK_TYPE 157 +# define BIO_C_GET_SOCK_TYPE 158 +# define BIO_C_GET_DGRAM_BIO 159 + # define BIO_set_app_data(s,arg) BIO_set_ex_data(s,0,arg) # define BIO_get_app_data(s) BIO_get_ex_data(s,0) -# define BIO_set_nbio(b,n) BIO_ctrl(b,BIO_C_SET_NBIO,(n),NULL) +# define BIO_set_nbio(b,n) BIO_ctrl(b,BIO_C_SET_NBIO,(n),NULL) +# define BIO_set_tfo(b,n) BIO_ctrl(b,BIO_C_SET_TFO,(n),NULL) # ifndef OPENSSL_NO_SOCK /* IP families we support, for BIO_s_connect() and BIO_s_accept() */ @@ -452,7 +521,11 @@ struct bio_dgram_sctp_prinfo { # define BIO_get_conn_port(b) ((const char *)BIO_ptr_ctrl(b,BIO_C_GET_CONNECT,1)) # define BIO_get_conn_address(b) ((const BIO_ADDR *)BIO_ptr_ctrl(b,BIO_C_GET_CONNECT,2)) # define BIO_get_conn_ip_family(b) BIO_ctrl(b,BIO_C_GET_CONNECT,3,NULL) +# define BIO_get_conn_mode(b) BIO_ctrl(b,BIO_C_GET_CONNECT,4,NULL) # define BIO_set_conn_mode(b,n) BIO_ctrl(b,BIO_C_SET_CONNECT_MODE,(n),NULL) +# define BIO_set_sock_type(b,t) BIO_ctrl(b,BIO_C_SET_SOCK_TYPE,(t),NULL) +# define BIO_get_sock_type(b) BIO_ctrl(b,BIO_C_GET_SOCK_TYPE,0,NULL) +# define BIO_get0_dgram_bio(b, p) BIO_ctrl(b,BIO_C_GET_DGRAM_BIO,0,(void *)(BIO **)(p)) /* BIO_s_accept() */ # define BIO_set_accept_name(b,name) BIO_ctrl(b,BIO_C_SET_ACCEPT,0, \ @@ -469,6 +542,7 @@ struct bio_dgram_sctp_prinfo { (char *)(bio)) # define BIO_set_accept_ip_family(b,f) BIO_int_ctrl(b,BIO_C_SET_ACCEPT,4,f) # define BIO_get_accept_ip_family(b) BIO_ctrl(b,BIO_C_GET_ACCEPT,4,NULL) +# define BIO_set_tfo_accept(b,n) BIO_ctrl(b,BIO_C_SET_ACCEPT,5,(n)?(void *)"a":NULL) /* Aliases kept for backward compatibility */ # define BIO_BIND_NORMAL 0 @@ -596,8 +670,32 @@ int BIO_ctrl_reset_read_request(BIO *b); (int)BIO_ctrl(b, BIO_CTRL_DGRAM_GET_PEER, 0, (char *)(peer)) # define BIO_dgram_set_peer(b,peer) \ (int)BIO_ctrl(b, BIO_CTRL_DGRAM_SET_PEER, 0, (char *)(peer)) +# define BIO_dgram_detect_peer_addr(b,peer) \ + (int)BIO_ctrl(b, BIO_CTRL_DGRAM_DETECT_PEER_ADDR, 0, (char *)(peer)) # define BIO_dgram_get_mtu_overhead(b) \ (unsigned int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_MTU_OVERHEAD, 0, NULL) +# define BIO_dgram_get_local_addr_cap(b) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_LOCAL_ADDR_CAP, 0, NULL) +# define BIO_dgram_get_local_addr_enable(b, penable) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_LOCAL_ADDR_ENABLE, 0, (char *)(penable)) +# define BIO_dgram_set_local_addr_enable(b, enable) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET_LOCAL_ADDR_ENABLE, (enable), NULL) +# define BIO_dgram_get_effective_caps(b) \ + (uint32_t)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_EFFECTIVE_CAPS, 0, NULL) +# define BIO_dgram_get_caps(b) \ + (uint32_t)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_CAPS, 0, NULL) +# define BIO_dgram_set_caps(b, caps) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET_CAPS, (long)(caps), NULL) +# define BIO_dgram_get_no_trunc(b) \ + (unsigned int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_NO_TRUNC, 0, NULL) +# define BIO_dgram_set_no_trunc(b, enable) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET_NO_TRUNC, (enable), NULL) +# define BIO_dgram_get_mtu(b) \ + (unsigned int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_MTU, 0, NULL) +# define BIO_dgram_set_mtu(b, mtu) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET_MTU, (mtu), NULL) +# define BIO_dgram_set0_local_addr(b, addr) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET0_LOCAL_ADDR, 0, (addr)) /* ctrl macros for BIO_f_prefix */ # define BIO_set_prefix(b,p) BIO_ctrl((b), BIO_CTRL_SET_PREFIX, 0, (void *)(p)) @@ -640,10 +738,18 @@ void BIO_vfree(BIO *a); int BIO_up_ref(BIO *a); int BIO_read(BIO *b, void *data, int dlen); int BIO_read_ex(BIO *b, void *data, size_t dlen, size_t *readbytes); +__owur int BIO_recvmmsg(BIO *b, BIO_MSG *msg, + size_t stride, size_t num_msg, uint64_t flags, + size_t *msgs_processed); int BIO_gets(BIO *bp, char *buf, int size); int BIO_get_line(BIO *bio, char *buf, int size); int BIO_write(BIO *b, const void *data, int dlen); int BIO_write_ex(BIO *b, const void *data, size_t dlen, size_t *written); +__owur int BIO_sendmmsg(BIO *b, BIO_MSG *msg, + size_t stride, size_t num_msg, uint64_t flags, + size_t *msgs_processed); +__owur int BIO_get_rpoll_descriptor(BIO *b, BIO_POLL_DESCRIPTOR *desc); +__owur int BIO_get_wpoll_descriptor(BIO *b, BIO_POLL_DESCRIPTOR *desc); int BIO_puts(BIO *bp, const char *buf); int BIO_indent(BIO *b, int indent, int max); long BIO_ctrl(BIO *bp, int cmd, long larg, void *parg); @@ -667,6 +773,9 @@ int BIO_nwrite0(BIO *bio, char **buf); int BIO_nwrite(BIO *bio, char **buf, int num); const BIO_METHOD *BIO_s_mem(void); +# ifndef OPENSSL_NO_DGRAM +const BIO_METHOD *BIO_s_dgram_mem(void); +# endif const BIO_METHOD *BIO_s_secmem(void); BIO *BIO_new_mem_buf(const void *buf, int len); # ifndef OPENSSL_NO_SOCK @@ -686,6 +795,7 @@ const BIO_METHOD *BIO_f_nbio_test(void); const BIO_METHOD *BIO_f_prefix(void); const BIO_METHOD *BIO_s_core(void); # ifndef OPENSSL_NO_DGRAM +const BIO_METHOD *BIO_s_dgram_pair(void); const BIO_METHOD *BIO_s_datagram(void); int BIO_dgram_non_fatal_error(int error); BIO *BIO_new_dgram(int fd, int close_flag); @@ -704,6 +814,7 @@ int BIO_dgram_sctp_msg_waiting(BIO *b); # ifndef OPENSSL_NO_SOCK int BIO_sock_should_retry(int i); int BIO_sock_non_fatal_error(int error); +int BIO_err_is_non_fatal(unsigned int errcode); int BIO_socket_wait(int fd, int for_read, time_t max_time); # endif int BIO_wait(BIO *bio, time_t max_time, unsigned int nap_milliseconds); @@ -726,6 +837,8 @@ int BIO_hex_string(BIO *out, int indent, int width, const void *data, # ifndef OPENSSL_NO_SOCK BIO_ADDR *BIO_ADDR_new(void); +int BIO_ADDR_copy(BIO_ADDR *dst, const BIO_ADDR *src); +BIO_ADDR *BIO_ADDR_dup(const BIO_ADDR *ap); int BIO_ADDR_rawmake(BIO_ADDR *ap, int family, const void *where, size_t wherelen, unsigned short port); void BIO_ADDR_free(BIO_ADDR *); @@ -788,6 +901,7 @@ int BIO_sock_info(int sock, # define BIO_SOCK_KEEPALIVE 0x04 # define BIO_SOCK_NONBLOCK 0x08 # define BIO_SOCK_NODELAY 0x10 +# define BIO_SOCK_TFO 0x20 int BIO_socket(int domain, int socktype, int protocol, int options); int BIO_connect(int sock, const BIO_ADDR *addr, int options); @@ -805,6 +919,11 @@ BIO *BIO_new_fd(int fd, int close_flag); int BIO_new_bio_pair(BIO **bio1, size_t writebuf1, BIO **bio2, size_t writebuf2); +# ifndef OPENSSL_NO_DGRAM +int BIO_new_bio_dgram_pair(BIO **bio1, size_t writebuf1, + BIO **bio2, size_t writebuf2); +# endif + /* * If successful, returns 1 and in *bio1, *bio2 two BIO pair endpoints. * Otherwise returns 0 and sets *bio1 and *bio2 to NULL. Size 0 uses default @@ -849,38 +968,54 @@ ossl_bio__attr__((__format__(ossl_bio__printf__, 3, 0))); BIO_METHOD *BIO_meth_new(int type, const char *name); void BIO_meth_free(BIO_METHOD *biom); -int (*BIO_meth_get_write(const BIO_METHOD *biom)) (BIO *, const char *, int); -int (*BIO_meth_get_write_ex(const BIO_METHOD *biom)) (BIO *, const char *, size_t, - size_t *); int BIO_meth_set_write(BIO_METHOD *biom, int (*write) (BIO *, const char *, int)); int BIO_meth_set_write_ex(BIO_METHOD *biom, int (*bwrite) (BIO *, const char *, size_t, size_t *)); -int (*BIO_meth_get_read(const BIO_METHOD *biom)) (BIO *, char *, int); -int (*BIO_meth_get_read_ex(const BIO_METHOD *biom)) (BIO *, char *, size_t, size_t *); +int BIO_meth_set_sendmmsg(BIO_METHOD *biom, + int (*f) (BIO *, BIO_MSG *, size_t, size_t, + uint64_t, size_t *)); int BIO_meth_set_read(BIO_METHOD *biom, int (*read) (BIO *, char *, int)); int BIO_meth_set_read_ex(BIO_METHOD *biom, int (*bread) (BIO *, char *, size_t, size_t *)); -int (*BIO_meth_get_puts(const BIO_METHOD *biom)) (BIO *, const char *); +int BIO_meth_set_recvmmsg(BIO_METHOD *biom, + int (*f) (BIO *, BIO_MSG *, size_t, size_t, + uint64_t, size_t *)); int BIO_meth_set_puts(BIO_METHOD *biom, int (*puts) (BIO *, const char *)); -int (*BIO_meth_get_gets(const BIO_METHOD *biom)) (BIO *, char *, int); int BIO_meth_set_gets(BIO_METHOD *biom, int (*ossl_gets) (BIO *, char *, int)); -long (*BIO_meth_get_ctrl(const BIO_METHOD *biom)) (BIO *, int, long, void *); int BIO_meth_set_ctrl(BIO_METHOD *biom, long (*ctrl) (BIO *, int, long, void *)); -int (*BIO_meth_get_create(const BIO_METHOD *bion)) (BIO *); int BIO_meth_set_create(BIO_METHOD *biom, int (*create) (BIO *)); -int (*BIO_meth_get_destroy(const BIO_METHOD *biom)) (BIO *); int BIO_meth_set_destroy(BIO_METHOD *biom, int (*destroy) (BIO *)); -long (*BIO_meth_get_callback_ctrl(const BIO_METHOD *biom)) - (BIO *, int, BIO_info_cb *); int BIO_meth_set_callback_ctrl(BIO_METHOD *biom, long (*callback_ctrl) (BIO *, int, BIO_info_cb *)); - +# ifndef OPENSSL_NO_DEPRECATED_3_5 +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_write(const BIO_METHOD *biom)) (BIO *, const char *, + int); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_write_ex(const BIO_METHOD *biom)) (BIO *, const char *, + size_t, size_t *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_sendmmsg(const BIO_METHOD *biom))(BIO *, BIO_MSG *, + size_t, size_t, + uint64_t, size_t *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_read(const BIO_METHOD *biom)) (BIO *, char *, int); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_read_ex(const BIO_METHOD *biom)) (BIO *, char *, + size_t, size_t *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_recvmmsg(const BIO_METHOD *biom))(BIO *, BIO_MSG *, + size_t, size_t, + uint64_t, size_t *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_puts(const BIO_METHOD *biom)) (BIO *, const char *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_gets(const BIO_METHOD *biom)) (BIO *, char *, int); +OSSL_DEPRECATEDIN_3_5 long (*BIO_meth_get_ctrl(const BIO_METHOD *biom)) (BIO *, int, + long, void *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_create(const BIO_METHOD *bion)) (BIO *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_destroy(const BIO_METHOD *biom)) (BIO *); +OSSL_DEPRECATEDIN_3_5 long (*BIO_meth_get_callback_ctrl(const BIO_METHOD *biom)) (BIO *, int, + BIO_info_cb *); +# endif # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/BSD-x86_64/no-asm/include/openssl/cmp.h b/deps/openssl/config/archs/BSD-x86_64/no-asm/include/openssl/cmp.h index 49825570d8c303..05aed3029d594c 100644 --- a/deps/openssl/config/archs/BSD-x86_64/no-asm/include/openssl/cmp.h +++ b/deps/openssl/config/archs/BSD-x86_64/no-asm/include/openssl/cmp.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/cmp.h.in * - * Copyright 2007-2023 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2007-2024 The OpenSSL Project Authors. All Rights Reserved. * Copyright Nokia 2007-2019 * Copyright Siemens AG 2015-2019 * @@ -35,7 +35,9 @@ extern "C" { # endif -# define OSSL_CMP_PVNO 2 +# define OSSL_CMP_PVNO_2 2 +# define OSSL_CMP_PVNO_3 3 +# define OSSL_CMP_PVNO OSSL_CMP_PVNO_2 /* v2 is the default */ /*- * PKIFailureInfo ::= BIT STRING { @@ -137,7 +139,6 @@ extern "C" { # if OSSL_CMP_PKIFAILUREINFO_MAX_BIT_PATTERN > INT_MAX # error CMP_PKIFAILUREINFO_MAX bit pattern does not fit in type int # endif - typedef ASN1_BIT_STRING OSSL_CMP_PKIFAILUREINFO; # define OSSL_CMP_CTX_FAILINFO_badAlg (1 << 0) @@ -203,8 +204,8 @@ typedef ASN1_BIT_STRING OSSL_CMP_PKIFAILUREINFO; # define OSSL_CMP_PKISTATUS_revocationWarning 4 # define OSSL_CMP_PKISTATUS_revocationNotification 5 # define OSSL_CMP_PKISTATUS_keyUpdateWarning 6 - typedef ASN1_INTEGER OSSL_CMP_PKISTATUS; + DECLARE_ASN1_ITEM(OSSL_CMP_PKISTATUS) # define OSSL_CMP_CERTORENCCERT_CERTIFICATE 0 @@ -274,6 +275,46 @@ SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CMP_ITAV, OSSL_CMP_ITAV, OSSL_CMP_ITAV) #define sk_OSSL_CMP_ITAV_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_CMP_ITAV) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_CMP_ITAV_sk_type(sk), ossl_check_OSSL_CMP_ITAV_copyfunc_type(copyfunc), ossl_check_OSSL_CMP_ITAV_freefunc_type(freefunc))) #define sk_OSSL_CMP_ITAV_set_cmp_func(sk, cmp) ((sk_OSSL_CMP_ITAV_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CMP_ITAV_sk_type(sk), ossl_check_OSSL_CMP_ITAV_compfunc_type(cmp))) + +typedef struct ossl_cmp_crlstatus_st OSSL_CMP_CRLSTATUS; +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CMP_CRLSTATUS, OSSL_CMP_CRLSTATUS, OSSL_CMP_CRLSTATUS) +#define sk_OSSL_CMP_CRLSTATUS_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_value(sk, idx) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_value(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk), (idx))) +#define sk_OSSL_CMP_CRLSTATUS_new(cmp) ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_new(ossl_check_OSSL_CMP_CRLSTATUS_compfunc_type(cmp))) +#define sk_OSSL_CMP_CRLSTATUS_new_null() ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_new_null()) +#define sk_OSSL_CMP_CRLSTATUS_new_reserve(cmp, n) ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_CMP_CRLSTATUS_compfunc_type(cmp), (n))) +#define sk_OSSL_CMP_CRLSTATUS_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), (n)) +#define sk_OSSL_CMP_CRLSTATUS_free(sk) OPENSSL_sk_free(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_delete(sk, i) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_delete(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), (i))) +#define sk_OSSL_CMP_CRLSTATUS_delete_ptr(sk, ptr) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr))) +#define sk_OSSL_CMP_CRLSTATUS_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr)) +#define sk_OSSL_CMP_CRLSTATUS_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr)) +#define sk_OSSL_CMP_CRLSTATUS_pop(sk) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_pop(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk))) +#define sk_OSSL_CMP_CRLSTATUS_shift(sk) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_shift(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk))) +#define sk_OSSL_CMP_CRLSTATUS_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk),ossl_check_OSSL_CMP_CRLSTATUS_freefunc_type(freefunc)) +#define sk_OSSL_CMP_CRLSTATUS_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr), (idx)) +#define sk_OSSL_CMP_CRLSTATUS_set(sk, idx, ptr) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_set(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), (idx), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr))) +#define sk_OSSL_CMP_CRLSTATUS_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr)) +#define sk_OSSL_CMP_CRLSTATUS_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr)) +#define sk_OSSL_CMP_CRLSTATUS_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr), pnum) +#define sk_OSSL_CMP_CRLSTATUS_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_dup(sk) ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_dup(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk))) +#define sk_OSSL_CMP_CRLSTATUS_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_copyfunc_type(copyfunc), ossl_check_OSSL_CMP_CRLSTATUS_freefunc_type(freefunc))) +#define sk_OSSL_CMP_CRLSTATUS_set_cmp_func(sk, cmp) ((sk_OSSL_CMP_CRLSTATUS_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_compfunc_type(cmp))) + + +typedef OSSL_CRMF_ATTRIBUTETYPEANDVALUE OSSL_CMP_ATAV; +# define OSSL_CMP_ATAV_free OSSL_CRMF_ATTRIBUTETYPEANDVALUE_free +typedef STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) OSSL_CMP_ATAVS; +DECLARE_ASN1_FUNCTIONS(OSSL_CMP_ATAVS) +# define stack_st_OSSL_CMP_ATAV stack_st_OSSL_CRMF_ATTRIBUTETYPEANDVALUE +# define sk_OSSL_CMP_ATAV_num sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_num +# define sk_OSSL_CMP_ATAV_value sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_value +# define sk_OSSL_CMP_ATAV_push sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_push +# define sk_OSSL_CMP_ATAV_pop_free sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_pop_free + typedef struct ossl_cmp_revrepcontent_st OSSL_CMP_REVREPCONTENT; typedef struct ossl_cmp_pkisi_st OSSL_CMP_PKISI; DECLARE_ASN1_FUNCTIONS(OSSL_CMP_PKISI) @@ -375,21 +416,75 @@ void OSSL_CMP_ITAV_set0(OSSL_CMP_ITAV *itav, ASN1_OBJECT *type, ASN1_TYPE *value); ASN1_OBJECT *OSSL_CMP_ITAV_get0_type(const OSSL_CMP_ITAV *itav); ASN1_TYPE *OSSL_CMP_ITAV_get0_value(const OSSL_CMP_ITAV *itav); -int OSSL_CMP_ITAV_push0_stack_item(STACK_OF(OSSL_CMP_ITAV) **itav_sk_p, +int OSSL_CMP_ITAV_push0_stack_item(STACK_OF(OSSL_CMP_ITAV) **sk_p, OSSL_CMP_ITAV *itav); void OSSL_CMP_ITAV_free(OSSL_CMP_ITAV *itav); + +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new0_certProfile(STACK_OF(ASN1_UTF8STRING) + *certProfile); +int OSSL_CMP_ITAV_get0_certProfile(const OSSL_CMP_ITAV *itav, + STACK_OF(ASN1_UTF8STRING) **out); +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new_caCerts(const STACK_OF(X509) *caCerts); +int OSSL_CMP_ITAV_get0_caCerts(const OSSL_CMP_ITAV *itav, STACK_OF(X509) **out); + +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new_rootCaCert(const X509 *rootCaCert); +int OSSL_CMP_ITAV_get0_rootCaCert(const OSSL_CMP_ITAV *itav, X509 **out); +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new_rootCaKeyUpdate(const X509 *newWithNew, + const X509 *newWithOld, + const X509 *oldWithNew); +int OSSL_CMP_ITAV_get0_rootCaKeyUpdate(const OSSL_CMP_ITAV *itav, + X509 **newWithNew, + X509 **newWithOld, + X509 **oldWithNew); + +OSSL_CMP_CRLSTATUS *OSSL_CMP_CRLSTATUS_create(const X509_CRL *crl, + const X509 *cert, int only_DN); +OSSL_CMP_CRLSTATUS *OSSL_CMP_CRLSTATUS_new1(const DIST_POINT_NAME *dpn, + const GENERAL_NAMES *issuer, + const ASN1_TIME *thisUpdate); +int OSSL_CMP_CRLSTATUS_get0(const OSSL_CMP_CRLSTATUS *crlstatus, + DIST_POINT_NAME **dpn, GENERAL_NAMES **issuer, + ASN1_TIME **thisUpdate); +void OSSL_CMP_CRLSTATUS_free(OSSL_CMP_CRLSTATUS *crlstatus); +OSSL_CMP_ITAV +*OSSL_CMP_ITAV_new0_crlStatusList(STACK_OF(OSSL_CMP_CRLSTATUS) *crlStatusList); +int OSSL_CMP_ITAV_get0_crlStatusList(const OSSL_CMP_ITAV *itav, + STACK_OF(OSSL_CMP_CRLSTATUS) **out); +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new_crls(const X509_CRL *crls); +int OSSL_CMP_ITAV_get0_crls(const OSSL_CMP_ITAV *it, STACK_OF(X509_CRL) **out); +OSSL_CMP_ITAV +*OSSL_CMP_ITAV_new0_certReqTemplate(OSSL_CRMF_CERTTEMPLATE *certTemplate, + OSSL_CMP_ATAVS *keySpec); +int OSSL_CMP_ITAV_get1_certReqTemplate(const OSSL_CMP_ITAV *itav, + OSSL_CRMF_CERTTEMPLATE **certTemplate, + OSSL_CMP_ATAVS **keySpec); + +OSSL_CMP_ATAV *OSSL_CMP_ATAV_create(ASN1_OBJECT *type, ASN1_TYPE *value); +void OSSL_CMP_ATAV_set0(OSSL_CMP_ATAV *itav, ASN1_OBJECT *type, + ASN1_TYPE *value); +ASN1_OBJECT *OSSL_CMP_ATAV_get0_type(const OSSL_CMP_ATAV *itav); +ASN1_TYPE *OSSL_CMP_ATAV_get0_value(const OSSL_CMP_ATAV *itav); +OSSL_CMP_ATAV *OSSL_CMP_ATAV_new_algId(const X509_ALGOR *alg); +X509_ALGOR *OSSL_CMP_ATAV_get0_algId(const OSSL_CMP_ATAV *atav); +OSSL_CMP_ATAV *OSSL_CMP_ATAV_new_rsaKeyLen(int len); +int OSSL_CMP_ATAV_get_rsaKeyLen(const OSSL_CMP_ATAV *atav); +int OSSL_CMP_ATAV_push1(OSSL_CMP_ATAVS **sk_p, const OSSL_CMP_ATAV *atav); + void OSSL_CMP_MSG_free(OSSL_CMP_MSG *msg); /* from cmp_ctx.c */ OSSL_CMP_CTX *OSSL_CMP_CTX_new(OSSL_LIB_CTX *libctx, const char *propq); void OSSL_CMP_CTX_free(OSSL_CMP_CTX *ctx); int OSSL_CMP_CTX_reinit(OSSL_CMP_CTX *ctx); +OSSL_LIB_CTX *OSSL_CMP_CTX_get0_libctx(const OSSL_CMP_CTX *ctx); +const char *OSSL_CMP_CTX_get0_propq(const OSSL_CMP_CTX *ctx); /* CMP general options: */ # define OSSL_CMP_OPT_LOG_VERBOSITY 0 /* CMP transfer options: */ -# define OSSL_CMP_OPT_KEEP_ALIVE 10 -# define OSSL_CMP_OPT_MSG_TIMEOUT 11 +# define OSSL_CMP_OPT_KEEP_ALIVE 10 +# define OSSL_CMP_OPT_MSG_TIMEOUT 11 # define OSSL_CMP_OPT_TOTAL_TIMEOUT 12 +# define OSSL_CMP_OPT_USE_TLS 13 /* CMP request options: */ # define OSSL_CMP_OPT_VALIDITY_DAYS 20 # define OSSL_CMP_OPT_SUBJECTALTNAME_NODEFAULT 21 @@ -407,6 +502,7 @@ int OSSL_CMP_CTX_reinit(OSSL_CMP_CTX *ctx); # define OSSL_CMP_OPT_DIGEST_ALGNID 34 # define OSSL_CMP_OPT_IGNORE_KEYUSAGE 35 # define OSSL_CMP_OPT_PERMIT_TA_IN_EXTRACERTS_FOR_IR 36 +# define OSSL_CMP_OPT_NO_CACHE_EXTRACERTS 37 int OSSL_CMP_CTX_set_option(OSSL_CMP_CTX *ctx, int opt, int val); int OSSL_CMP_CTX_get_option(const OSSL_CMP_CTX *ctx, int opt); /* CMP-specific callback for logging and outputting the error queue: */ @@ -420,9 +516,11 @@ int OSSL_CMP_CTX_set1_server(OSSL_CMP_CTX *ctx, const char *address); int OSSL_CMP_CTX_set_serverPort(OSSL_CMP_CTX *ctx, int port); int OSSL_CMP_CTX_set1_proxy(OSSL_CMP_CTX *ctx, const char *name); int OSSL_CMP_CTX_set1_no_proxy(OSSL_CMP_CTX *ctx, const char *names); +# ifndef OPENSSL_NO_HTTP int OSSL_CMP_CTX_set_http_cb(OSSL_CMP_CTX *ctx, OSSL_HTTP_bio_cb_t cb); int OSSL_CMP_CTX_set_http_cb_arg(OSSL_CMP_CTX *ctx, void *arg); void *OSSL_CMP_CTX_get_http_cb_arg(const OSSL_CMP_CTX *ctx); +# endif typedef OSSL_CMP_MSG *(*OSSL_CMP_transfer_cb_t) (OSSL_CMP_CTX *ctx, const OSSL_CMP_MSG *req); int OSSL_CMP_CTX_set_transfer_cb(OSSL_CMP_CTX *ctx, OSSL_CMP_transfer_cb_t cb); @@ -432,7 +530,9 @@ void *OSSL_CMP_CTX_get_transfer_cb_arg(const OSSL_CMP_CTX *ctx); int OSSL_CMP_CTX_set1_srvCert(OSSL_CMP_CTX *ctx, X509 *cert); int OSSL_CMP_CTX_set1_expected_sender(OSSL_CMP_CTX *ctx, const X509_NAME *name); int OSSL_CMP_CTX_set0_trustedStore(OSSL_CMP_CTX *ctx, X509_STORE *store); +# define OSSL_CMP_CTX_set0_trusted OSSL_CMP_CTX_set0_trustedStore X509_STORE *OSSL_CMP_CTX_get0_trustedStore(const OSSL_CMP_CTX *ctx); +# define OSSL_CMP_CTX_get0_trusted OSSL_CMP_CTX_get0_trustedStore int OSSL_CMP_CTX_set1_untrusted(OSSL_CMP_CTX *ctx, STACK_OF(X509) *certs); STACK_OF(X509) *OSSL_CMP_CTX_get0_untrusted(const OSSL_CMP_CTX *ctx); /* client authentication: */ @@ -448,12 +548,15 @@ int OSSL_CMP_CTX_set1_secretValue(OSSL_CMP_CTX *ctx, int OSSL_CMP_CTX_set1_recipient(OSSL_CMP_CTX *ctx, const X509_NAME *name); int OSSL_CMP_CTX_push0_geninfo_ITAV(OSSL_CMP_CTX *ctx, OSSL_CMP_ITAV *itav); int OSSL_CMP_CTX_reset_geninfo_ITAVs(OSSL_CMP_CTX *ctx); +STACK_OF(OSSL_CMP_ITAV) + *OSSL_CMP_CTX_get0_geninfo_ITAVs(const OSSL_CMP_CTX *ctx); int OSSL_CMP_CTX_set1_extraCertsOut(OSSL_CMP_CTX *ctx, STACK_OF(X509) *extraCertsOut); /* certificate template: */ int OSSL_CMP_CTX_set0_newPkey(OSSL_CMP_CTX *ctx, int priv, EVP_PKEY *pkey); EVP_PKEY *OSSL_CMP_CTX_get0_newPkey(const OSSL_CMP_CTX *ctx, int priv); int OSSL_CMP_CTX_set1_issuer(OSSL_CMP_CTX *ctx, const X509_NAME *name); +int OSSL_CMP_CTX_set1_serialNumber(OSSL_CMP_CTX *ctx, const ASN1_INTEGER *sn); int OSSL_CMP_CTX_set1_subjectName(OSSL_CMP_CTX *ctx, const X509_NAME *name); int OSSL_CMP_CTX_push1_subjectAltName(OSSL_CMP_CTX *ctx, const GENERAL_NAME *name); @@ -477,6 +580,7 @@ int OSSL_CMP_CTX_get_status(const OSSL_CMP_CTX *ctx); OSSL_CMP_PKIFREETEXT *OSSL_CMP_CTX_get0_statusString(const OSSL_CMP_CTX *ctx); int OSSL_CMP_CTX_get_failInfoCode(const OSSL_CMP_CTX *ctx); # define OSSL_CMP_PKISI_BUFLEN 1024 +X509 *OSSL_CMP_CTX_get0_validatedSrvCert(const OSSL_CMP_CTX *ctx); X509 *OSSL_CMP_CTX_get0_newCert(const OSSL_CMP_CTX *ctx); STACK_OF(X509) *OSSL_CMP_CTX_get1_newChain(const OSSL_CMP_CTX *ctx); STACK_OF(X509) *OSSL_CMP_CTX_get1_caPubs(const OSSL_CMP_CTX *ctx); @@ -498,10 +602,13 @@ OSSL_CMP_STATUSINFO_new(int status, int fail_info, const char *text); ASN1_OCTET_STRING *OSSL_CMP_HDR_get0_transactionID(const OSSL_CMP_PKIHEADER *hdr); ASN1_OCTET_STRING *OSSL_CMP_HDR_get0_recipNonce(const OSSL_CMP_PKIHEADER *hdr); +STACK_OF(OSSL_CMP_ITAV) + *OSSL_CMP_HDR_get0_geninfo_ITAVs(const OSSL_CMP_PKIHEADER *hdr); /* from cmp_msg.c */ OSSL_CMP_PKIHEADER *OSSL_CMP_MSG_get0_header(const OSSL_CMP_MSG *msg); int OSSL_CMP_MSG_get_bodytype(const OSSL_CMP_MSG *msg); +X509_PUBKEY *OSSL_CMP_MSG_get0_certreq_publickey(const OSSL_CMP_MSG *msg); int OSSL_CMP_MSG_update_transactionID(OSSL_CMP_CTX *ctx, OSSL_CMP_MSG *msg); int OSSL_CMP_MSG_update_recipNonce(OSSL_CMP_CTX *ctx, OSSL_CMP_MSG *msg); OSSL_CRMF_MSG *OSSL_CMP_CTX_setup_CRM(OSSL_CMP_CTX *ctx, int for_KUR, int rid); @@ -517,8 +624,10 @@ int OSSL_CMP_validate_cert_path(const OSSL_CMP_CTX *ctx, X509_STORE *trusted_store, X509 *cert); /* from cmp_http.c */ +# ifndef OPENSSL_NO_HTTP OSSL_CMP_MSG *OSSL_CMP_MSG_http_perform(OSSL_CMP_CTX *ctx, const OSSL_CMP_MSG *req); +# endif /* from cmp_server.c */ typedef struct ossl_cmp_srv_ctx_st OSSL_CMP_SRV_CTX; @@ -561,6 +670,13 @@ int OSSL_CMP_SRV_CTX_init(OSSL_CMP_SRV_CTX *srv_ctx, void *custom_ctx, OSSL_CMP_SRV_error_cb_t process_error, OSSL_CMP_SRV_certConf_cb_t process_certConf, OSSL_CMP_SRV_pollReq_cb_t process_pollReq); +typedef int (*OSSL_CMP_SRV_delayed_delivery_cb_t)(OSSL_CMP_SRV_CTX *srv_ctx, + const OSSL_CMP_MSG *req); +typedef int (*OSSL_CMP_SRV_clean_transaction_cb_t)(OSSL_CMP_SRV_CTX *srv_ctx, + const ASN1_OCTET_STRING *id); +int OSSL_CMP_SRV_CTX_init_trans(OSSL_CMP_SRV_CTX *srv_ctx, + OSSL_CMP_SRV_delayed_delivery_cb_t delay, + OSSL_CMP_SRV_clean_transaction_cb_t clean); OSSL_CMP_CTX *OSSL_CMP_SRV_CTX_get0_cmp_ctx(const OSSL_CMP_SRV_CTX *srv_ctx); void *OSSL_CMP_SRV_CTX_get0_custom_ctx(const OSSL_CMP_SRV_CTX *srv_ctx); int OSSL_CMP_SRV_CTX_set_send_unprotected_errors(OSSL_CMP_SRV_CTX *srv_ctx, @@ -577,6 +693,8 @@ X509 *OSSL_CMP_exec_certreq(OSSL_CMP_CTX *ctx, int req_type, # define OSSL_CMP_CR 2 # define OSSL_CMP_P10CR 4 # define OSSL_CMP_KUR 7 +# define OSSL_CMP_GENM 21 +# define OSSL_CMP_ERROR 23 # define OSSL_CMP_exec_IR_ses(ctx) \ OSSL_CMP_exec_certreq(ctx, OSSL_CMP_IR, NULL) # define OSSL_CMP_exec_CR_ses(ctx) \ @@ -590,6 +708,18 @@ int OSSL_CMP_try_certreq(OSSL_CMP_CTX *ctx, int req_type, int OSSL_CMP_exec_RR_ses(OSSL_CMP_CTX *ctx); STACK_OF(OSSL_CMP_ITAV) *OSSL_CMP_exec_GENM_ses(OSSL_CMP_CTX *ctx); +/* from cmp_genm.c */ +int OSSL_CMP_get1_caCerts(OSSL_CMP_CTX *ctx, STACK_OF(X509) **out); +int OSSL_CMP_get1_rootCaKeyUpdate(OSSL_CMP_CTX *ctx, + const X509 *oldWithOld, X509 **newWithNew, + X509 **newWithOld, X509 **oldWithNew); +int OSSL_CMP_get1_crlUpdate(OSSL_CMP_CTX *ctx, const X509 *crlcert, + const X509_CRL *last_crl, + X509_CRL **crl); +int OSSL_CMP_get1_certReqTemplate(OSSL_CMP_CTX *ctx, + OSSL_CRMF_CERTTEMPLATE **certTemplate, + OSSL_CMP_ATAVS **keySpec); + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/BSD-x86_64/no-asm/include/openssl/cms.h b/deps/openssl/config/archs/BSD-x86_64/no-asm/include/openssl/cms.h index 3b453e6a2187a2..63afab563557b0 100644 --- a/deps/openssl/config/archs/BSD-x86_64/no-asm/include/openssl/cms.h +++ b/deps/openssl/config/archs/BSD-x86_64/no-asm/include/openssl/cms.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/cms.h.in * - * Copyright 2008-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2008-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -31,8 +31,10 @@ extern "C" { # endif +typedef struct CMS_EnvelopedData_st CMS_EnvelopedData; typedef struct CMS_ContentInfo_st CMS_ContentInfo; typedef struct CMS_SignerInfo_st CMS_SignerInfo; +typedef struct CMS_SignedData_st CMS_SignedData; typedef struct CMS_CertificateChoices CMS_CertificateChoices; typedef struct CMS_RevocationInfoChoice_st CMS_RevocationInfoChoice; typedef struct CMS_RecipientInfo_st CMS_RecipientInfo; @@ -147,10 +149,14 @@ SKM_DEFINE_STACK_OF_INTERNAL(CMS_RevocationInfoChoice, CMS_RevocationInfoChoice, #define sk_CMS_RevocationInfoChoice_set_cmp_func(sk, cmp) ((sk_CMS_RevocationInfoChoice_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_CMS_RevocationInfoChoice_sk_type(sk), ossl_check_CMS_RevocationInfoChoice_compfunc_type(cmp))) +DECLARE_ASN1_ITEM(CMS_EnvelopedData) +DECLARE_ASN1_ALLOC_FUNCTIONS(CMS_SignedData) DECLARE_ASN1_FUNCTIONS(CMS_ContentInfo) DECLARE_ASN1_FUNCTIONS(CMS_ReceiptRequest) DECLARE_ASN1_PRINT_FUNCTION(CMS_ContentInfo) +DECLARE_ASN1_DUP_FUNCTION(CMS_EnvelopedData) + CMS_ContentInfo *CMS_ContentInfo_new_ex(OSSL_LIB_CTX *libctx, const char *propq); # define CMS_SIGNERINFO_ISSUER_SERIAL 0 @@ -190,6 +196,7 @@ CMS_ContentInfo *CMS_ContentInfo_new_ex(OSSL_LIB_CTX *libctx, const char *propq) # define CMS_ASCIICRLF 0x80000 # define CMS_CADES 0x100000 # define CMS_USE_ORIGINATOR_KEYID 0x200000 +# define CMS_NO_SIGNING_TIME 0x400000 const ASN1_OBJECT *CMS_get0_type(const CMS_ContentInfo *cms); @@ -217,13 +224,16 @@ int SMIME_write_CMS(BIO *bio, CMS_ContentInfo *cms, BIO *data, int flags); int CMS_final(CMS_ContentInfo *cms, BIO *data, BIO *dcont, unsigned int flags); +int CMS_final_digest(CMS_ContentInfo *cms, + const unsigned char *md, unsigned int mdlen, BIO *dcont, + unsigned int flags); CMS_ContentInfo *CMS_sign(X509 *signcert, EVP_PKEY *pkey, STACK_OF(X509) *certs, BIO *data, unsigned int flags); CMS_ContentInfo *CMS_sign_ex(X509 *signcert, EVP_PKEY *pkey, STACK_OF(X509) *certs, BIO *data, - unsigned int flags, OSSL_LIB_CTX *ctx, + unsigned int flags, OSSL_LIB_CTX *libctx, const char *propq); CMS_ContentInfo *CMS_sign_receipt(CMS_SignerInfo *si, @@ -233,27 +243,26 @@ CMS_ContentInfo *CMS_sign_receipt(CMS_SignerInfo *si, int CMS_data(CMS_ContentInfo *cms, BIO *out, unsigned int flags); CMS_ContentInfo *CMS_data_create(BIO *in, unsigned int flags); CMS_ContentInfo *CMS_data_create_ex(BIO *in, unsigned int flags, - OSSL_LIB_CTX *ctx, const char *propq); + OSSL_LIB_CTX *libctx, const char *propq); int CMS_digest_verify(CMS_ContentInfo *cms, BIO *dcont, BIO *out, unsigned int flags); CMS_ContentInfo *CMS_digest_create(BIO *in, const EVP_MD *md, unsigned int flags); CMS_ContentInfo *CMS_digest_create_ex(BIO *in, const EVP_MD *md, - unsigned int flags, OSSL_LIB_CTX *ctx, + unsigned int flags, OSSL_LIB_CTX *libctx, const char *propq); int CMS_EncryptedData_decrypt(CMS_ContentInfo *cms, const unsigned char *key, size_t keylen, BIO *dcont, BIO *out, unsigned int flags); - CMS_ContentInfo *CMS_EncryptedData_encrypt(BIO *in, const EVP_CIPHER *cipher, const unsigned char *key, size_t keylen, unsigned int flags); CMS_ContentInfo *CMS_EncryptedData_encrypt_ex(BIO *in, const EVP_CIPHER *cipher, const unsigned char *key, size_t keylen, unsigned int flags, - OSSL_LIB_CTX *ctx, + OSSL_LIB_CTX *libctx, const char *propq); int CMS_EncryptedData_set1_key(CMS_ContentInfo *cms, const EVP_CIPHER *ciph, @@ -272,7 +281,7 @@ CMS_ContentInfo *CMS_encrypt(STACK_OF(X509) *certs, BIO *in, const EVP_CIPHER *cipher, unsigned int flags); CMS_ContentInfo *CMS_encrypt_ex(STACK_OF(X509) *certs, BIO *in, const EVP_CIPHER *cipher, unsigned int flags, - OSSL_LIB_CTX *ctx, const char *propq); + OSSL_LIB_CTX *libctx, const char *propq); int CMS_decrypt(CMS_ContentInfo *cms, EVP_PKEY *pkey, X509 *cert, BIO *dcont, BIO *out, unsigned int flags); @@ -291,12 +300,16 @@ int CMS_RecipientInfo_type(CMS_RecipientInfo *ri); EVP_PKEY_CTX *CMS_RecipientInfo_get0_pkey_ctx(CMS_RecipientInfo *ri); CMS_ContentInfo *CMS_AuthEnvelopedData_create(const EVP_CIPHER *cipher); CMS_ContentInfo * -CMS_AuthEnvelopedData_create_ex(const EVP_CIPHER *cipher, OSSL_LIB_CTX *ctx, +CMS_AuthEnvelopedData_create_ex(const EVP_CIPHER *cipher, OSSL_LIB_CTX *libctx, const char *propq); CMS_ContentInfo *CMS_EnvelopedData_create(const EVP_CIPHER *cipher); CMS_ContentInfo *CMS_EnvelopedData_create_ex(const EVP_CIPHER *cipher, - OSSL_LIB_CTX *ctx, + OSSL_LIB_CTX *libctx, const char *propq); +BIO *CMS_EnvelopedData_decrypt(CMS_EnvelopedData *env, BIO *detached_data, + EVP_PKEY *pkey, X509 *cert, + ASN1_OCTET_STRING *secret, unsigned int flags, + OSSL_LIB_CTX *libctx, const char *propq); CMS_RecipientInfo *CMS_add1_recipient_cert(CMS_ContentInfo *cms, X509 *recip, unsigned int flags); @@ -385,6 +398,11 @@ ASN1_OCTET_STRING *CMS_SignerInfo_get0_signature(CMS_SignerInfo *si); int CMS_SignerInfo_sign(CMS_SignerInfo *si); int CMS_SignerInfo_verify(CMS_SignerInfo *si); int CMS_SignerInfo_verify_content(CMS_SignerInfo *si, BIO *chain); +BIO *CMS_SignedData_verify(CMS_SignedData *sd, BIO *detached_data, + STACK_OF(X509) *scerts, X509_STORE *store, + STACK_OF(X509) *extra, STACK_OF(X509_CRL) *crls, + unsigned int flags, + OSSL_LIB_CTX *libctx, const char *propq); int CMS_add_smimecap(CMS_SignerInfo *si, STACK_OF(X509_ALGOR) *algs); int CMS_add_simple_smimecap(STACK_OF(X509_ALGOR) **algs, @@ -441,7 +459,7 @@ CMS_ReceiptRequest *CMS_ReceiptRequest_create0_ex( unsigned char *id, int idlen, int allorfirst, STACK_OF(GENERAL_NAMES) *receiptList, STACK_OF(GENERAL_NAMES) *receiptsTo, - OSSL_LIB_CTX *ctx); + OSSL_LIB_CTX *libctx); int CMS_add1_ReceiptRequest(CMS_SignerInfo *si, CMS_ReceiptRequest *rr); void CMS_ReceiptRequest_get0_values(CMS_ReceiptRequest *rr, diff --git a/deps/openssl/config/archs/BSD-x86_64/no-asm/include/openssl/comp.h b/deps/openssl/config/archs/BSD-x86_64/no-asm/include/openssl/comp.h new file mode 100644 index 00000000000000..90e39511fe8d28 --- /dev/null +++ b/deps/openssl/config/archs/BSD-x86_64/no-asm/include/openssl/comp.h @@ -0,0 +1,98 @@ +/* + * Copyright 2015-2024 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + + +#ifndef OPENSSL_COMP_H +# define OPENSSL_COMP_H +# pragma once + +# include +# ifndef OPENSSL_NO_DEPRECATED_3_0 +# define HEADER_COMP_H +# endif + +# include + +# include +# include +# ifdef __cplusplus +extern "C" { +# endif + + + +# ifndef OPENSSL_NO_COMP + +COMP_CTX *COMP_CTX_new(COMP_METHOD *meth); +const COMP_METHOD *COMP_CTX_get_method(const COMP_CTX *ctx); +int COMP_CTX_get_type(const COMP_CTX* comp); +int COMP_get_type(const COMP_METHOD *meth); +const char *COMP_get_name(const COMP_METHOD *meth); +void COMP_CTX_free(COMP_CTX *ctx); + +int COMP_compress_block(COMP_CTX *ctx, unsigned char *out, int olen, + unsigned char *in, int ilen); +int COMP_expand_block(COMP_CTX *ctx, unsigned char *out, int olen, + unsigned char *in, int ilen); + +COMP_METHOD *COMP_zlib(void); +COMP_METHOD *COMP_zlib_oneshot(void); +COMP_METHOD *COMP_brotli(void); +COMP_METHOD *COMP_brotli_oneshot(void); +COMP_METHOD *COMP_zstd(void); +COMP_METHOD *COMP_zstd_oneshot(void); + +# ifndef OPENSSL_NO_DEPRECATED_1_1_0 +# define COMP_zlib_cleanup() while(0) continue +# endif + +# ifdef OPENSSL_BIO_H +const BIO_METHOD *BIO_f_zlib(void); +const BIO_METHOD *BIO_f_brotli(void); +const BIO_METHOD *BIO_f_zstd(void); +# endif + +# endif + +typedef struct ssl_comp_st SSL_COMP; + +SKM_DEFINE_STACK_OF_INTERNAL(SSL_COMP, SSL_COMP, SSL_COMP) +#define sk_SSL_COMP_num(sk) OPENSSL_sk_num(ossl_check_const_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_value(sk, idx) ((SSL_COMP *)OPENSSL_sk_value(ossl_check_const_SSL_COMP_sk_type(sk), (idx))) +#define sk_SSL_COMP_new(cmp) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new(ossl_check_SSL_COMP_compfunc_type(cmp))) +#define sk_SSL_COMP_new_null() ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new_null()) +#define sk_SSL_COMP_new_reserve(cmp, n) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new_reserve(ossl_check_SSL_COMP_compfunc_type(cmp), (n))) +#define sk_SSL_COMP_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_SSL_COMP_sk_type(sk), (n)) +#define sk_SSL_COMP_free(sk) OPENSSL_sk_free(ossl_check_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_zero(sk) OPENSSL_sk_zero(ossl_check_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_delete(sk, i) ((SSL_COMP *)OPENSSL_sk_delete(ossl_check_SSL_COMP_sk_type(sk), (i))) +#define sk_SSL_COMP_delete_ptr(sk, ptr) ((SSL_COMP *)OPENSSL_sk_delete_ptr(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr))) +#define sk_SSL_COMP_push(sk, ptr) OPENSSL_sk_push(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) +#define sk_SSL_COMP_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) +#define sk_SSL_COMP_pop(sk) ((SSL_COMP *)OPENSSL_sk_pop(ossl_check_SSL_COMP_sk_type(sk))) +#define sk_SSL_COMP_shift(sk) ((SSL_COMP *)OPENSSL_sk_shift(ossl_check_SSL_COMP_sk_type(sk))) +#define sk_SSL_COMP_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_SSL_COMP_sk_type(sk),ossl_check_SSL_COMP_freefunc_type(freefunc)) +#define sk_SSL_COMP_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr), (idx)) +#define sk_SSL_COMP_set(sk, idx, ptr) ((SSL_COMP *)OPENSSL_sk_set(ossl_check_SSL_COMP_sk_type(sk), (idx), ossl_check_SSL_COMP_type(ptr))) +#define sk_SSL_COMP_find(sk, ptr) OPENSSL_sk_find(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) +#define sk_SSL_COMP_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) +#define sk_SSL_COMP_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr), pnum) +#define sk_SSL_COMP_sort(sk) OPENSSL_sk_sort(ossl_check_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_dup(sk) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_dup(ossl_check_const_SSL_COMP_sk_type(sk))) +#define sk_SSL_COMP_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_deep_copy(ossl_check_const_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_copyfunc_type(copyfunc), ossl_check_SSL_COMP_freefunc_type(freefunc))) +#define sk_SSL_COMP_set_cmp_func(sk, cmp) ((sk_SSL_COMP_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_compfunc_type(cmp))) + + + +# ifdef __cplusplus +} +# endif +#endif diff --git a/deps/openssl/config/archs/BSD-x86_64/no-asm/include/openssl/conf.h b/deps/openssl/config/archs/BSD-x86_64/no-asm/include/openssl/conf.h index 44989929f6c84a..38576290bf641b 100644 --- a/deps/openssl/config/archs/BSD-x86_64/no-asm/include/openssl/conf.h +++ b/deps/openssl/config/archs/BSD-x86_64/no-asm/include/openssl/conf.h @@ -27,6 +27,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -65,7 +68,7 @@ SKM_DEFINE_STACK_OF_INTERNAL(CONF_VALUE, CONF_VALUE, CONF_VALUE) #define sk_CONF_VALUE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(CONF_VALUE) *)OPENSSL_sk_deep_copy(ossl_check_const_CONF_VALUE_sk_type(sk), ossl_check_CONF_VALUE_copyfunc_type(copyfunc), ossl_check_CONF_VALUE_freefunc_type(freefunc))) #define sk_CONF_VALUE_set_cmp_func(sk, cmp) ((sk_CONF_VALUE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_CONF_VALUE_sk_type(sk), ossl_check_CONF_VALUE_compfunc_type(cmp))) DEFINE_LHASH_OF_INTERNAL(CONF_VALUE); -#define lh_CONF_VALUE_new(hfn, cmp) ((LHASH_OF(CONF_VALUE) *)OPENSSL_LH_new(ossl_check_CONF_VALUE_lh_hashfunc_type(hfn), ossl_check_CONF_VALUE_lh_compfunc_type(cmp))) +#define lh_CONF_VALUE_new(hfn, cmp) ((LHASH_OF(CONF_VALUE) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new(ossl_check_CONF_VALUE_lh_hashfunc_type(hfn), ossl_check_CONF_VALUE_lh_compfunc_type(cmp)), lh_CONF_VALUE_hash_thunk, lh_CONF_VALUE_comp_thunk, lh_CONF_VALUE_doall_thunk, lh_CONF_VALUE_doall_arg_thunk)) #define lh_CONF_VALUE_free(lh) OPENSSL_LH_free(ossl_check_CONF_VALUE_lh_type(lh)) #define lh_CONF_VALUE_flush(lh) OPENSSL_LH_flush(ossl_check_CONF_VALUE_lh_type(lh)) #define lh_CONF_VALUE_insert(lh, ptr) ((CONF_VALUE *)OPENSSL_LH_insert(ossl_check_CONF_VALUE_lh_type(lh), ossl_check_CONF_VALUE_lh_plain_type(ptr))) diff --git a/deps/openssl/config/archs/BSD-x86_64/no-asm/include/openssl/configuration.h b/deps/openssl/config/archs/BSD-x86_64/no-asm/include/openssl/configuration.h index a3124fd78744c1..2decc8cc46a65c 100644 --- a/deps/openssl/config/archs/BSD-x86_64/no-asm/include/openssl/configuration.h +++ b/deps/openssl/config/archs/BSD-x86_64/no-asm/include/openssl/configuration.h @@ -27,7 +27,7 @@ extern "C" { * OpenSSL was configured with the following options: */ -# define OPENSSL_CONFIGURED_API 30000 +# define OPENSSL_CONFIGURED_API 30500 # ifndef OPENSSL_RAND_SEED_OS # define OPENSSL_RAND_SEED_OS # endif @@ -43,6 +43,12 @@ extern "C" { # ifndef OPENSSL_NO_ASM # define OPENSSL_NO_ASM # endif +# ifndef OPENSSL_NO_BROTLI +# define OPENSSL_NO_BROTLI +# endif +# ifndef OPENSSL_NO_BROTLI_DYNAMIC +# define OPENSSL_NO_BROTLI_DYNAMIC +# endif # ifndef OPENSSL_NO_COMP # define OPENSSL_NO_COMP # endif @@ -52,6 +58,9 @@ extern "C" { # ifndef OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE # define OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE # endif +# ifndef OPENSSL_NO_DEMOS +# define OPENSSL_NO_DEMOS +# endif # ifndef OPENSSL_NO_EC_NISTP_64_GCC_128 # define OPENSSL_NO_EC_NISTP_64_GCC_128 # endif @@ -61,12 +70,24 @@ extern "C" { # ifndef OPENSSL_NO_EXTERNAL_TESTS # define OPENSSL_NO_EXTERNAL_TESTS # endif +# ifndef OPENSSL_NO_FIPS_JITTER +# define OPENSSL_NO_FIPS_JITTER +# endif # ifndef OPENSSL_NO_FUZZ_AFL # define OPENSSL_NO_FUZZ_AFL # endif # ifndef OPENSSL_NO_FUZZ_LIBFUZZER # define OPENSSL_NO_FUZZ_LIBFUZZER # endif +# ifndef OPENSSL_NO_H3DEMO +# define OPENSSL_NO_H3DEMO +# endif +# ifndef OPENSSL_NO_HQINTEROP +# define OPENSSL_NO_HQINTEROP +# endif +# ifndef OPENSSL_NO_JITTER +# define OPENSSL_NO_JITTER +# endif # ifndef OPENSSL_NO_KTLS # define OPENSSL_NO_KTLS # endif @@ -79,6 +100,9 @@ extern "C" { # ifndef OPENSSL_NO_MSAN # define OPENSSL_NO_MSAN # endif +# ifndef OPENSSL_NO_PIE +# define OPENSSL_NO_PIE +# endif # ifndef OPENSSL_NO_RC5 # define OPENSSL_NO_RC5 # endif @@ -91,6 +115,12 @@ extern "C" { # ifndef OPENSSL_NO_SSL3_METHOD # define OPENSSL_NO_SSL3_METHOD # endif +# ifndef OPENSSL_NO_SSLKEYLOG +# define OPENSSL_NO_SSLKEYLOG +# endif +# ifndef OPENSSL_NO_TFO +# define OPENSSL_NO_TFO +# endif # ifndef OPENSSL_NO_TRACE # define OPENSSL_NO_TRACE # endif @@ -106,6 +136,21 @@ extern "C" { # ifndef OPENSSL_NO_WEAK_SSL_CIPHERS # define OPENSSL_NO_WEAK_SSL_CIPHERS # endif +# ifndef OPENSSL_NO_WINSTORE +# define OPENSSL_NO_WINSTORE +# endif +# ifndef OPENSSL_NO_ZLIB +# define OPENSSL_NO_ZLIB +# endif +# ifndef OPENSSL_NO_ZLIB_DYNAMIC +# define OPENSSL_NO_ZLIB_DYNAMIC +# endif +# ifndef OPENSSL_NO_ZSTD +# define OPENSSL_NO_ZSTD +# endif +# ifndef OPENSSL_NO_ZSTD_DYNAMIC +# define OPENSSL_NO_ZSTD_DYNAMIC +# endif # ifndef OPENSSL_NO_DYNAMIC_ENGINE # define OPENSSL_NO_DYNAMIC_ENGINE # endif @@ -127,6 +172,12 @@ extern "C" { # define RC4_INT unsigned int +# if defined(OPENSSL_NO_COMP) || (defined(OPENSSL_NO_BROTLI) && defined(OPENSSL_NO_ZSTD) && defined(OPENSSL_NO_ZLIB)) +# define OPENSSL_NO_COMP_ALG +# else +# undef OPENSSL_NO_COMP_ALG +# endif + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/BSD-x86_64/no-asm/include/openssl/core_names.h b/deps/openssl/config/archs/BSD-x86_64/no-asm/include/openssl/core_names.h new file mode 100644 index 00000000000000..e93e79a52bc910 --- /dev/null +++ b/deps/openssl/config/archs/BSD-x86_64/no-asm/include/openssl/core_names.h @@ -0,0 +1,575 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from include/openssl/core_names.h.in + * + * Copyright 2019-2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + +#ifndef OPENSSL_CORE_NAMES_H +# define OPENSSL_CORE_NAMES_H +# pragma once + +# ifdef __cplusplus +extern "C" { +# endif + +/* OSSL_CIPHER_PARAM_CTS_MODE Values */ +# define OSSL_CIPHER_CTS_MODE_CS1 "CS1" +# define OSSL_CIPHER_CTS_MODE_CS2 "CS2" +# define OSSL_CIPHER_CTS_MODE_CS3 "CS3" + +/* Known CIPHER names (not a complete list) */ +# define OSSL_CIPHER_NAME_AES_128_GCM_SIV "AES-128-GCM-SIV" +# define OSSL_CIPHER_NAME_AES_192_GCM_SIV "AES-192-GCM-SIV" +# define OSSL_CIPHER_NAME_AES_256_GCM_SIV "AES-256-GCM-SIV" + +/* Known DIGEST names (not a complete list) */ +# define OSSL_DIGEST_NAME_MD5 "MD5" +# define OSSL_DIGEST_NAME_MD5_SHA1 "MD5-SHA1" +# define OSSL_DIGEST_NAME_SHA1 "SHA1" +# define OSSL_DIGEST_NAME_SHA2_224 "SHA2-224" +# define OSSL_DIGEST_NAME_SHA2_256 "SHA2-256" +# define OSSL_DIGEST_NAME_SHA2_256_192 "SHA2-256/192" +# define OSSL_DIGEST_NAME_SHA2_384 "SHA2-384" +# define OSSL_DIGEST_NAME_SHA2_512 "SHA2-512" +# define OSSL_DIGEST_NAME_SHA2_512_224 "SHA2-512/224" +# define OSSL_DIGEST_NAME_SHA2_512_256 "SHA2-512/256" +# define OSSL_DIGEST_NAME_MD2 "MD2" +# define OSSL_DIGEST_NAME_MD4 "MD4" +# define OSSL_DIGEST_NAME_MDC2 "MDC2" +# define OSSL_DIGEST_NAME_RIPEMD160 "RIPEMD160" +# define OSSL_DIGEST_NAME_SHA3_224 "SHA3-224" +# define OSSL_DIGEST_NAME_SHA3_256 "SHA3-256" +# define OSSL_DIGEST_NAME_SHA3_384 "SHA3-384" +# define OSSL_DIGEST_NAME_SHA3_512 "SHA3-512" +# define OSSL_DIGEST_NAME_KECCAK_KMAC128 "KECCAK-KMAC-128" +# define OSSL_DIGEST_NAME_KECCAK_KMAC256 "KECCAK-KMAC-256" +# define OSSL_DIGEST_NAME_SM3 "SM3" + +/* Known MAC names */ +# define OSSL_MAC_NAME_BLAKE2BMAC "BLAKE2BMAC" +# define OSSL_MAC_NAME_BLAKE2SMAC "BLAKE2SMAC" +# define OSSL_MAC_NAME_CMAC "CMAC" +# define OSSL_MAC_NAME_GMAC "GMAC" +# define OSSL_MAC_NAME_HMAC "HMAC" +# define OSSL_MAC_NAME_KMAC128 "KMAC128" +# define OSSL_MAC_NAME_KMAC256 "KMAC256" +# define OSSL_MAC_NAME_POLY1305 "POLY1305" +# define OSSL_MAC_NAME_SIPHASH "SIPHASH" + +/* Known KDF names */ +# define OSSL_KDF_NAME_HKDF "HKDF" +# define OSSL_KDF_NAME_TLS1_3_KDF "TLS13-KDF" +# define OSSL_KDF_NAME_PBKDF1 "PBKDF1" +# define OSSL_KDF_NAME_PBKDF2 "PBKDF2" +# define OSSL_KDF_NAME_SCRYPT "SCRYPT" +# define OSSL_KDF_NAME_SSHKDF "SSHKDF" +# define OSSL_KDF_NAME_SSKDF "SSKDF" +# define OSSL_KDF_NAME_TLS1_PRF "TLS1-PRF" +# define OSSL_KDF_NAME_X942KDF_ASN1 "X942KDF-ASN1" +# define OSSL_KDF_NAME_X942KDF_CONCAT "X942KDF-CONCAT" +# define OSSL_KDF_NAME_X963KDF "X963KDF" +# define OSSL_KDF_NAME_KBKDF "KBKDF" +# define OSSL_KDF_NAME_KRB5KDF "KRB5KDF" +# define OSSL_KDF_NAME_HMACDRBGKDF "HMAC-DRBG-KDF" + +/* RSA padding modes */ +# define OSSL_PKEY_RSA_PAD_MODE_NONE "none" +# define OSSL_PKEY_RSA_PAD_MODE_PKCSV15 "pkcs1" +# define OSSL_PKEY_RSA_PAD_MODE_OAEP "oaep" +# define OSSL_PKEY_RSA_PAD_MODE_X931 "x931" +# define OSSL_PKEY_RSA_PAD_MODE_PSS "pss" + +/* RSA pss padding salt length */ +# define OSSL_PKEY_RSA_PSS_SALT_LEN_DIGEST "digest" +# define OSSL_PKEY_RSA_PSS_SALT_LEN_MAX "max" +# define OSSL_PKEY_RSA_PSS_SALT_LEN_AUTO "auto" +# define OSSL_PKEY_RSA_PSS_SALT_LEN_AUTO_DIGEST_MAX "auto-digestmax" + +/* OSSL_PKEY_PARAM_EC_ENCODING values */ +# define OSSL_PKEY_EC_ENCODING_EXPLICIT "explicit" +# define OSSL_PKEY_EC_ENCODING_GROUP "named_curve" + +# define OSSL_PKEY_EC_POINT_CONVERSION_FORMAT_UNCOMPRESSED "uncompressed" +# define OSSL_PKEY_EC_POINT_CONVERSION_FORMAT_COMPRESSED "compressed" +# define OSSL_PKEY_EC_POINT_CONVERSION_FORMAT_HYBRID "hybrid" + +# define OSSL_PKEY_EC_GROUP_CHECK_DEFAULT "default" +# define OSSL_PKEY_EC_GROUP_CHECK_NAMED "named" +# define OSSL_PKEY_EC_GROUP_CHECK_NAMED_NIST "named-nist" + +/* PROV_SKEY well known key types */ +# define OSSL_SKEY_TYPE_GENERIC "GENERIC-SECRET" +# define OSSL_SKEY_TYPE_AES "AES" + +/* OSSL_KEM_PARAM_OPERATION values */ +#define OSSL_KEM_PARAM_OPERATION_RSASVE "RSASVE" +#define OSSL_KEM_PARAM_OPERATION_DHKEM "DHKEM" + +/* Provider configuration variables */ +#define OSSL_PKEY_RETAIN_SEED "pkey_retain_seed" + +/* Parameter name definitions - generated by util/perl/OpenSSL/paramnames.pm */ +# define OSSL_ALG_PARAM_ALGORITHM_ID "algorithm-id" +# define OSSL_ALG_PARAM_ALGORITHM_ID_PARAMS "algorithm-id-params" +# define OSSL_ALG_PARAM_CIPHER "cipher" +# define OSSL_ALG_PARAM_DIGEST "digest" +# define OSSL_ALG_PARAM_ENGINE "engine" +# define OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR "fips-indicator" +# define OSSL_ALG_PARAM_MAC "mac" +# define OSSL_ALG_PARAM_PROPERTIES "properties" +# define OSSL_ASYM_CIPHER_PARAM_DIGEST OSSL_PKEY_PARAM_DIGEST +# define OSSL_ASYM_CIPHER_PARAM_ENGINE OSSL_PKEY_PARAM_ENGINE +# define OSSL_ASYM_CIPHER_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_ASYM_CIPHER_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_ASYM_CIPHER_PARAM_FIPS_RSA_PKCS15_PAD_DISABLED OSSL_PROV_PARAM_RSA_PKCS15_PAD_DISABLED +# define OSSL_ASYM_CIPHER_PARAM_IMPLICIT_REJECTION "implicit-rejection" +# define OSSL_ASYM_CIPHER_PARAM_MGF1_DIGEST OSSL_PKEY_PARAM_MGF1_DIGEST +# define OSSL_ASYM_CIPHER_PARAM_MGF1_DIGEST_PROPS OSSL_PKEY_PARAM_MGF1_PROPERTIES +# define OSSL_ASYM_CIPHER_PARAM_OAEP_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_ASYM_CIPHER_PARAM_OAEP_DIGEST_PROPS "digest-props" +# define OSSL_ASYM_CIPHER_PARAM_OAEP_LABEL "oaep-label" +# define OSSL_ASYM_CIPHER_PARAM_PAD_MODE OSSL_PKEY_PARAM_PAD_MODE +# define OSSL_ASYM_CIPHER_PARAM_PROPERTIES OSSL_PKEY_PARAM_PROPERTIES +# define OSSL_ASYM_CIPHER_PARAM_TLS_CLIENT_VERSION "tls-client-version" +# define OSSL_ASYM_CIPHER_PARAM_TLS_NEGOTIATED_VERSION "tls-negotiated-version" +# define OSSL_CAPABILITY_TLS_GROUP_ALG "tls-group-alg" +# define OSSL_CAPABILITY_TLS_GROUP_ID "tls-group-id" +# define OSSL_CAPABILITY_TLS_GROUP_IS_KEM "tls-group-is-kem" +# define OSSL_CAPABILITY_TLS_GROUP_MAX_DTLS "tls-max-dtls" +# define OSSL_CAPABILITY_TLS_GROUP_MAX_TLS "tls-max-tls" +# define OSSL_CAPABILITY_TLS_GROUP_MIN_DTLS "tls-min-dtls" +# define OSSL_CAPABILITY_TLS_GROUP_MIN_TLS "tls-min-tls" +# define OSSL_CAPABILITY_TLS_GROUP_NAME "tls-group-name" +# define OSSL_CAPABILITY_TLS_GROUP_NAME_INTERNAL "tls-group-name-internal" +# define OSSL_CAPABILITY_TLS_GROUP_SECURITY_BITS "tls-group-sec-bits" +# define OSSL_CAPABILITY_TLS_SIGALG_CODE_POINT "tls-sigalg-code-point" +# define OSSL_CAPABILITY_TLS_SIGALG_HASH_NAME "tls-sigalg-hash-name" +# define OSSL_CAPABILITY_TLS_SIGALG_HASH_OID "tls-sigalg-hash-oid" +# define OSSL_CAPABILITY_TLS_SIGALG_IANA_NAME "tls-sigalg-iana-name" +# define OSSL_CAPABILITY_TLS_SIGALG_KEYTYPE "tls-sigalg-keytype" +# define OSSL_CAPABILITY_TLS_SIGALG_KEYTYPE_OID "tls-sigalg-keytype-oid" +# define OSSL_CAPABILITY_TLS_SIGALG_MAX_DTLS "tls-max-dtls" +# define OSSL_CAPABILITY_TLS_SIGALG_MAX_TLS "tls-max-tls" +# define OSSL_CAPABILITY_TLS_SIGALG_MIN_DTLS "tls-min-dtls" +# define OSSL_CAPABILITY_TLS_SIGALG_MIN_TLS "tls-min-tls" +# define OSSL_CAPABILITY_TLS_SIGALG_NAME "tls-sigalg-name" +# define OSSL_CAPABILITY_TLS_SIGALG_OID "tls-sigalg-oid" +# define OSSL_CAPABILITY_TLS_SIGALG_SECURITY_BITS "tls-sigalg-sec-bits" +# define OSSL_CAPABILITY_TLS_SIGALG_SIG_NAME "tls-sigalg-sig-name" +# define OSSL_CAPABILITY_TLS_SIGALG_SIG_OID "tls-sigalg-sig-oid" +# define OSSL_CIPHER_PARAM_AEAD "aead" +# define OSSL_CIPHER_PARAM_AEAD_IVLEN OSSL_CIPHER_PARAM_IVLEN +# define OSSL_CIPHER_PARAM_AEAD_IV_GENERATED "iv-generated" +# define OSSL_CIPHER_PARAM_AEAD_MAC_KEY "mackey" +# define OSSL_CIPHER_PARAM_AEAD_TAG "tag" +# define OSSL_CIPHER_PARAM_AEAD_TAGLEN "taglen" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_AAD "tlsaad" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_AAD_PAD "tlsaadpad" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_GET_IV_GEN "tlsivgen" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_IV_FIXED "tlsivfixed" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_SET_IV_INV "tlsivinv" +# define OSSL_CIPHER_PARAM_ALGORITHM_ID OSSL_ALG_PARAM_ALGORITHM_ID +# define OSSL_CIPHER_PARAM_ALGORITHM_ID_PARAMS OSSL_ALG_PARAM_ALGORITHM_ID_PARAMS +# define OSSL_CIPHER_PARAM_ALGORITHM_ID_PARAMS_OLD "alg_id_param" +# define OSSL_CIPHER_PARAM_BLOCK_SIZE "blocksize" +# define OSSL_CIPHER_PARAM_CTS "cts" +# define OSSL_CIPHER_PARAM_CTS_MODE "cts_mode" +# define OSSL_CIPHER_PARAM_CUSTOM_IV "custom-iv" +# define OSSL_CIPHER_PARAM_DECRYPT_ONLY "decrypt-only" +# define OSSL_CIPHER_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_CIPHER_PARAM_FIPS_ENCRYPT_CHECK "encrypt-check" +# define OSSL_CIPHER_PARAM_HAS_RAND_KEY "has-randkey" +# define OSSL_CIPHER_PARAM_IV "iv" +# define OSSL_CIPHER_PARAM_IVLEN "ivlen" +# define OSSL_CIPHER_PARAM_KEYLEN "keylen" +# define OSSL_CIPHER_PARAM_MODE "mode" +# define OSSL_CIPHER_PARAM_NUM "num" +# define OSSL_CIPHER_PARAM_PADDING "padding" +# define OSSL_CIPHER_PARAM_PIPELINE_AEAD_TAG "pipeline-tag" +# define OSSL_CIPHER_PARAM_RANDOM_KEY "randkey" +# define OSSL_CIPHER_PARAM_RC2_KEYBITS "keybits" +# define OSSL_CIPHER_PARAM_ROUNDS "rounds" +# define OSSL_CIPHER_PARAM_SPEED "speed" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK "tls-multi" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD "tls1multi_aad" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD_PACKLEN "tls1multi_aadpacklen" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC "tls1multi_enc" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_IN "tls1multi_encin" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_LEN "tls1multi_enclen" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_INTERLEAVE "tls1multi_interleave" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_BUFSIZE "tls1multi_maxbufsz" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_SEND_FRAGMENT "tls1multi_maxsndfrag" +# define OSSL_CIPHER_PARAM_TLS_MAC "tls-mac" +# define OSSL_CIPHER_PARAM_TLS_MAC_SIZE "tls-mac-size" +# define OSSL_CIPHER_PARAM_TLS_VERSION "tls-version" +# define OSSL_CIPHER_PARAM_UPDATED_IV "updated-iv" +# define OSSL_CIPHER_PARAM_USE_BITS "use-bits" +# define OSSL_CIPHER_PARAM_XTS_STANDARD "xts_standard" +# define OSSL_DECODER_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_DIGEST_PARAM_ALGID_ABSENT "algid-absent" +# define OSSL_DIGEST_PARAM_BLOCK_SIZE "blocksize" +# define OSSL_DIGEST_PARAM_MICALG "micalg" +# define OSSL_DIGEST_PARAM_PAD_TYPE "pad-type" +# define OSSL_DIGEST_PARAM_SIZE "size" +# define OSSL_DIGEST_PARAM_SSL3_MS "ssl3-ms" +# define OSSL_DIGEST_PARAM_XOF "xof" +# define OSSL_DIGEST_PARAM_XOFLEN "xoflen" +# define OSSL_DRBG_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_DRBG_PARAM_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_DRBG_PARAM_ENTROPY_REQUIRED "entropy_required" +# define OSSL_DRBG_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_DRBG_PARAM_FIPS_DIGEST_CHECK OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK +# define OSSL_DRBG_PARAM_MAC OSSL_ALG_PARAM_MAC +# define OSSL_DRBG_PARAM_MAX_ADINLEN "max_adinlen" +# define OSSL_DRBG_PARAM_MAX_ENTROPYLEN "max_entropylen" +# define OSSL_DRBG_PARAM_MAX_LENGTH "maxium_length" +# define OSSL_DRBG_PARAM_MAX_NONCELEN "max_noncelen" +# define OSSL_DRBG_PARAM_MAX_PERSLEN "max_perslen" +# define OSSL_DRBG_PARAM_MIN_ENTROPYLEN "min_entropylen" +# define OSSL_DRBG_PARAM_MIN_LENGTH "minium_length" +# define OSSL_DRBG_PARAM_MIN_NONCELEN "min_noncelen" +# define OSSL_DRBG_PARAM_PREDICTION_RESISTANCE "prediction_resistance" +# define OSSL_DRBG_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_DRBG_PARAM_RANDOM_DATA "random_data" +# define OSSL_DRBG_PARAM_RESEED_COUNTER "reseed_counter" +# define OSSL_DRBG_PARAM_RESEED_REQUESTS "reseed_requests" +# define OSSL_DRBG_PARAM_RESEED_TIME "reseed_time" +# define OSSL_DRBG_PARAM_RESEED_TIME_INTERVAL "reseed_time_interval" +# define OSSL_DRBG_PARAM_SIZE "size" +# define OSSL_DRBG_PARAM_USE_DF "use_derivation_function" +# define OSSL_ENCODER_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_ENCODER_PARAM_ENCRYPT_LEVEL "encrypt-level" +# define OSSL_ENCODER_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_ENCODER_PARAM_SAVE_PARAMETERS "save-parameters" +# define OSSL_EXCHANGE_PARAM_EC_ECDH_COFACTOR_MODE "ecdh-cofactor-mode" +# define OSSL_EXCHANGE_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_EXCHANGE_PARAM_FIPS_DIGEST_CHECK OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK +# define OSSL_EXCHANGE_PARAM_FIPS_ECDH_COFACTOR_CHECK OSSL_PROV_PARAM_ECDH_COFACTOR_CHECK +# define OSSL_EXCHANGE_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_EXCHANGE_PARAM_KDF_DIGEST "kdf-digest" +# define OSSL_EXCHANGE_PARAM_KDF_DIGEST_PROPS "kdf-digest-props" +# define OSSL_EXCHANGE_PARAM_KDF_OUTLEN "kdf-outlen" +# define OSSL_EXCHANGE_PARAM_KDF_TYPE "kdf-type" +# define OSSL_EXCHANGE_PARAM_KDF_UKM "kdf-ukm" +# define OSSL_EXCHANGE_PARAM_PAD "pad" +# define OSSL_GEN_PARAM_ITERATION "iteration" +# define OSSL_GEN_PARAM_POTENTIAL "potential" +# define OSSL_KDF_PARAM_ARGON2_AD "ad" +# define OSSL_KDF_PARAM_ARGON2_LANES "lanes" +# define OSSL_KDF_PARAM_ARGON2_MEMCOST "memcost" +# define OSSL_KDF_PARAM_ARGON2_VERSION "version" +# define OSSL_KDF_PARAM_CEK_ALG "cekalg" +# define OSSL_KDF_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_KDF_PARAM_CONSTANT "constant" +# define OSSL_KDF_PARAM_DATA "data" +# define OSSL_KDF_PARAM_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_KDF_PARAM_EARLY_CLEAN "early_clean" +# define OSSL_KDF_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_KDF_PARAM_FIPS_DIGEST_CHECK OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK +# define OSSL_KDF_PARAM_FIPS_EMS_CHECK "ems_check" +# define OSSL_KDF_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_KDF_PARAM_HMACDRBG_ENTROPY "entropy" +# define OSSL_KDF_PARAM_HMACDRBG_NONCE "nonce" +# define OSSL_KDF_PARAM_INFO "info" +# define OSSL_KDF_PARAM_ITER "iter" +# define OSSL_KDF_PARAM_KBKDF_R "r" +# define OSSL_KDF_PARAM_KBKDF_USE_L "use-l" +# define OSSL_KDF_PARAM_KBKDF_USE_SEPARATOR "use-separator" +# define OSSL_KDF_PARAM_KEY "key" +# define OSSL_KDF_PARAM_LABEL "label" +# define OSSL_KDF_PARAM_MAC OSSL_ALG_PARAM_MAC +# define OSSL_KDF_PARAM_MAC_SIZE "maclen" +# define OSSL_KDF_PARAM_MODE "mode" +# define OSSL_KDF_PARAM_PASSWORD "pass" +# define OSSL_KDF_PARAM_PKCS12_ID "id" +# define OSSL_KDF_PARAM_PKCS5 "pkcs5" +# define OSSL_KDF_PARAM_PREFIX "prefix" +# define OSSL_KDF_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_KDF_PARAM_SALT "salt" +# define OSSL_KDF_PARAM_SCRYPT_MAXMEM "maxmem_bytes" +# define OSSL_KDF_PARAM_SCRYPT_N "n" +# define OSSL_KDF_PARAM_SCRYPT_P "p" +# define OSSL_KDF_PARAM_SCRYPT_R "r" +# define OSSL_KDF_PARAM_SECRET "secret" +# define OSSL_KDF_PARAM_SEED "seed" +# define OSSL_KDF_PARAM_SIZE "size" +# define OSSL_KDF_PARAM_SSHKDF_SESSION_ID "session_id" +# define OSSL_KDF_PARAM_SSHKDF_TYPE "type" +# define OSSL_KDF_PARAM_SSHKDF_XCGHASH "xcghash" +# define OSSL_KDF_PARAM_THREADS "threads" +# define OSSL_KDF_PARAM_UKM "ukm" +# define OSSL_KDF_PARAM_X942_ACVPINFO "acvp-info" +# define OSSL_KDF_PARAM_X942_PARTYUINFO "partyu-info" +# define OSSL_KDF_PARAM_X942_PARTYVINFO "partyv-info" +# define OSSL_KDF_PARAM_X942_SUPP_PRIVINFO "supp-privinfo" +# define OSSL_KDF_PARAM_X942_SUPP_PUBINFO "supp-pubinfo" +# define OSSL_KDF_PARAM_X942_USE_KEYBITS "use-keybits" +# define OSSL_KEM_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_KEM_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_KEM_PARAM_IKME "ikme" +# define OSSL_KEM_PARAM_OPERATION "operation" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_BLOCK_PADDING "block_padding" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_HS_PADDING "hs_padding" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_MAX_EARLY_DATA "max_early_data" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_MAX_FRAG_LEN "max_frag_len" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_MODE "mode" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_OPTIONS "options" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_READ_AHEAD "read_ahead" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_STREAM_MAC "stream_mac" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_TLSTREE "tlstree" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_USE_ETM "use_etm" +# define OSSL_LIBSSL_RECORD_LAYER_READ_BUFFER_LEN "read_buffer_len" +# define OSSL_MAC_PARAM_BLOCK_SIZE "block-size" +# define OSSL_MAC_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_MAC_PARAM_CUSTOM "custom" +# define OSSL_MAC_PARAM_C_ROUNDS "c-rounds" +# define OSSL_MAC_PARAM_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_MAC_PARAM_DIGEST_NOINIT "digest-noinit" +# define OSSL_MAC_PARAM_DIGEST_ONESHOT "digest-oneshot" +# define OSSL_MAC_PARAM_D_ROUNDS "d-rounds" +# define OSSL_MAC_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_MAC_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_MAC_PARAM_FIPS_NO_SHORT_MAC OSSL_PROV_PARAM_NO_SHORT_MAC +# define OSSL_MAC_PARAM_IV "iv" +# define OSSL_MAC_PARAM_KEY "key" +# define OSSL_MAC_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_MAC_PARAM_SALT "salt" +# define OSSL_MAC_PARAM_SIZE "size" +# define OSSL_MAC_PARAM_TLS_DATA_SIZE "tls-data-size" +# define OSSL_MAC_PARAM_XOF "xof" +# define OSSL_OBJECT_PARAM_DATA "data" +# define OSSL_OBJECT_PARAM_DATA_STRUCTURE "data-structure" +# define OSSL_OBJECT_PARAM_DATA_TYPE "data-type" +# define OSSL_OBJECT_PARAM_DESC "desc" +# define OSSL_OBJECT_PARAM_INPUT_TYPE "input-type" +# define OSSL_OBJECT_PARAM_REFERENCE "reference" +# define OSSL_OBJECT_PARAM_TYPE "type" +# define OSSL_PASSPHRASE_PARAM_INFO "info" +# define OSSL_PKEY_PARAM_ALGORITHM_ID OSSL_ALG_PARAM_ALGORITHM_ID +# define OSSL_PKEY_PARAM_ALGORITHM_ID_PARAMS OSSL_ALG_PARAM_ALGORITHM_ID_PARAMS +# define OSSL_PKEY_PARAM_BITS "bits" +# define OSSL_PKEY_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_PKEY_PARAM_DEFAULT_DIGEST "default-digest" +# define OSSL_PKEY_PARAM_DHKEM_IKM "dhkem-ikm" +# define OSSL_PKEY_PARAM_DH_GENERATOR "safeprime-generator" +# define OSSL_PKEY_PARAM_DH_PRIV_LEN "priv_len" +# define OSSL_PKEY_PARAM_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_PKEY_PARAM_DIGEST_SIZE "digest-size" +# define OSSL_PKEY_PARAM_DIST_ID "distid" +# define OSSL_PKEY_PARAM_EC_A "a" +# define OSSL_PKEY_PARAM_EC_B "b" +# define OSSL_PKEY_PARAM_EC_CHAR2_M "m" +# define OSSL_PKEY_PARAM_EC_CHAR2_PP_K1 "k1" +# define OSSL_PKEY_PARAM_EC_CHAR2_PP_K2 "k2" +# define OSSL_PKEY_PARAM_EC_CHAR2_PP_K3 "k3" +# define OSSL_PKEY_PARAM_EC_CHAR2_TP_BASIS "tp" +# define OSSL_PKEY_PARAM_EC_CHAR2_TYPE "basis-type" +# define OSSL_PKEY_PARAM_EC_COFACTOR "cofactor" +# define OSSL_PKEY_PARAM_EC_DECODED_FROM_EXPLICIT_PARAMS "decoded-from-explicit" +# define OSSL_PKEY_PARAM_EC_ENCODING "encoding" +# define OSSL_PKEY_PARAM_EC_FIELD_TYPE "field-type" +# define OSSL_PKEY_PARAM_EC_GENERATOR "generator" +# define OSSL_PKEY_PARAM_EC_GROUP_CHECK_TYPE "group-check" +# define OSSL_PKEY_PARAM_EC_INCLUDE_PUBLIC "include-public" +# define OSSL_PKEY_PARAM_EC_ORDER "order" +# define OSSL_PKEY_PARAM_EC_P "p" +# define OSSL_PKEY_PARAM_EC_POINT_CONVERSION_FORMAT "point-format" +# define OSSL_PKEY_PARAM_EC_PUB_X "qx" +# define OSSL_PKEY_PARAM_EC_PUB_Y "qy" +# define OSSL_PKEY_PARAM_EC_SEED "seed" +# define OSSL_PKEY_PARAM_ENCODED_PUBLIC_KEY "encoded-pub-key" +# define OSSL_PKEY_PARAM_ENGINE OSSL_ALG_PARAM_ENGINE +# define OSSL_PKEY_PARAM_FFC_COFACTOR "j" +# define OSSL_PKEY_PARAM_FFC_DIGEST OSSL_PKEY_PARAM_DIGEST +# define OSSL_PKEY_PARAM_FFC_DIGEST_PROPS OSSL_PKEY_PARAM_PROPERTIES +# define OSSL_PKEY_PARAM_FFC_G "g" +# define OSSL_PKEY_PARAM_FFC_GINDEX "gindex" +# define OSSL_PKEY_PARAM_FFC_H "hindex" +# define OSSL_PKEY_PARAM_FFC_P "p" +# define OSSL_PKEY_PARAM_FFC_PBITS "pbits" +# define OSSL_PKEY_PARAM_FFC_PCOUNTER "pcounter" +# define OSSL_PKEY_PARAM_FFC_Q "q" +# define OSSL_PKEY_PARAM_FFC_QBITS "qbits" +# define OSSL_PKEY_PARAM_FFC_SEED "seed" +# define OSSL_PKEY_PARAM_FFC_TYPE "type" +# define OSSL_PKEY_PARAM_FFC_VALIDATE_G "validate-g" +# define OSSL_PKEY_PARAM_FFC_VALIDATE_LEGACY "validate-legacy" +# define OSSL_PKEY_PARAM_FFC_VALIDATE_PQ "validate-pq" +# define OSSL_PKEY_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK "digest-check" +# define OSSL_PKEY_PARAM_FIPS_KEY_CHECK "key-check" +# define OSSL_PKEY_PARAM_FIPS_SIGN_CHECK "sign-check" +# define OSSL_PKEY_PARAM_GROUP_NAME "group" +# define OSSL_PKEY_PARAM_IMPLICIT_REJECTION "implicit-rejection" +# define OSSL_PKEY_PARAM_MANDATORY_DIGEST "mandatory-digest" +# define OSSL_PKEY_PARAM_MASKGENFUNC "mgf" +# define OSSL_PKEY_PARAM_MAX_SIZE "max-size" +# define OSSL_PKEY_PARAM_MGF1_DIGEST "mgf1-digest" +# define OSSL_PKEY_PARAM_MGF1_PROPERTIES "mgf1-properties" +# define OSSL_PKEY_PARAM_ML_DSA_INPUT_FORMATS "ml-dsa.input_formats" +# define OSSL_PKEY_PARAM_ML_DSA_OUTPUT_FORMATS "ml-dsa.output_formats" +# define OSSL_PKEY_PARAM_ML_DSA_PREFER_SEED "ml-dsa.prefer_seed" +# define OSSL_PKEY_PARAM_ML_DSA_RETAIN_SEED "ml-dsa.retain_seed" +# define OSSL_PKEY_PARAM_ML_DSA_SEED "seed" +# define OSSL_PKEY_PARAM_ML_KEM_IMPORT_PCT_TYPE "ml-kem.import_pct_type" +# define OSSL_PKEY_PARAM_ML_KEM_INPUT_FORMATS "ml-kem.input_formats" +# define OSSL_PKEY_PARAM_ML_KEM_OUTPUT_FORMATS "ml-kem.output_formats" +# define OSSL_PKEY_PARAM_ML_KEM_PREFER_SEED "ml-kem.prefer_seed" +# define OSSL_PKEY_PARAM_ML_KEM_RETAIN_SEED "ml-kem.retain_seed" +# define OSSL_PKEY_PARAM_ML_KEM_SEED "seed" +# define OSSL_PKEY_PARAM_PAD_MODE "pad-mode" +# define OSSL_PKEY_PARAM_PRIV_KEY "priv" +# define OSSL_PKEY_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_PKEY_PARAM_PUB_KEY "pub" +# define OSSL_PKEY_PARAM_RSA_BITS OSSL_PKEY_PARAM_BITS +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT "rsa-coefficient" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT1 "rsa-coefficient1" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT2 "rsa-coefficient2" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT3 "rsa-coefficient3" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT4 "rsa-coefficient4" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT5 "rsa-coefficient5" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT6 "rsa-coefficient6" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT7 "rsa-coefficient7" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT8 "rsa-coefficient8" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT9 "rsa-coefficient9" +# define OSSL_PKEY_PARAM_RSA_D "d" +# define OSSL_PKEY_PARAM_RSA_DERIVE_FROM_PQ "rsa-derive-from-pq" +# define OSSL_PKEY_PARAM_RSA_DIGEST OSSL_PKEY_PARAM_DIGEST +# define OSSL_PKEY_PARAM_RSA_DIGEST_PROPS OSSL_PKEY_PARAM_PROPERTIES +# define OSSL_PKEY_PARAM_RSA_E "e" +# define OSSL_PKEY_PARAM_RSA_EXPONENT "rsa-exponent" +# define OSSL_PKEY_PARAM_RSA_EXPONENT1 "rsa-exponent1" +# define OSSL_PKEY_PARAM_RSA_EXPONENT10 "rsa-exponent10" +# define OSSL_PKEY_PARAM_RSA_EXPONENT2 "rsa-exponent2" +# define OSSL_PKEY_PARAM_RSA_EXPONENT3 "rsa-exponent3" +# define OSSL_PKEY_PARAM_RSA_EXPONENT4 "rsa-exponent4" +# define OSSL_PKEY_PARAM_RSA_EXPONENT5 "rsa-exponent5" +# define OSSL_PKEY_PARAM_RSA_EXPONENT6 "rsa-exponent6" +# define OSSL_PKEY_PARAM_RSA_EXPONENT7 "rsa-exponent7" +# define OSSL_PKEY_PARAM_RSA_EXPONENT8 "rsa-exponent8" +# define OSSL_PKEY_PARAM_RSA_EXPONENT9 "rsa-exponent9" +# define OSSL_PKEY_PARAM_RSA_FACTOR "rsa-factor" +# define OSSL_PKEY_PARAM_RSA_FACTOR1 "rsa-factor1" +# define OSSL_PKEY_PARAM_RSA_FACTOR10 "rsa-factor10" +# define OSSL_PKEY_PARAM_RSA_FACTOR2 "rsa-factor2" +# define OSSL_PKEY_PARAM_RSA_FACTOR3 "rsa-factor3" +# define OSSL_PKEY_PARAM_RSA_FACTOR4 "rsa-factor4" +# define OSSL_PKEY_PARAM_RSA_FACTOR5 "rsa-factor5" +# define OSSL_PKEY_PARAM_RSA_FACTOR6 "rsa-factor6" +# define OSSL_PKEY_PARAM_RSA_FACTOR7 "rsa-factor7" +# define OSSL_PKEY_PARAM_RSA_FACTOR8 "rsa-factor8" +# define OSSL_PKEY_PARAM_RSA_FACTOR9 "rsa-factor9" +# define OSSL_PKEY_PARAM_RSA_MASKGENFUNC OSSL_PKEY_PARAM_MASKGENFUNC +# define OSSL_PKEY_PARAM_RSA_MGF1_DIGEST OSSL_PKEY_PARAM_MGF1_DIGEST +# define OSSL_PKEY_PARAM_RSA_N "n" +# define OSSL_PKEY_PARAM_RSA_PRIMES "primes" +# define OSSL_PKEY_PARAM_RSA_PSS_SALTLEN "saltlen" +# define OSSL_PKEY_PARAM_RSA_TEST_P1 "p1" +# define OSSL_PKEY_PARAM_RSA_TEST_P2 "p2" +# define OSSL_PKEY_PARAM_RSA_TEST_Q1 "q1" +# define OSSL_PKEY_PARAM_RSA_TEST_Q2 "q2" +# define OSSL_PKEY_PARAM_RSA_TEST_XP "xp" +# define OSSL_PKEY_PARAM_RSA_TEST_XP1 "xp1" +# define OSSL_PKEY_PARAM_RSA_TEST_XP2 "xp2" +# define OSSL_PKEY_PARAM_RSA_TEST_XQ "xq" +# define OSSL_PKEY_PARAM_RSA_TEST_XQ1 "xq1" +# define OSSL_PKEY_PARAM_RSA_TEST_XQ2 "xq2" +# define OSSL_PKEY_PARAM_SECURITY_BITS "security-bits" +# define OSSL_PKEY_PARAM_SLH_DSA_SEED "seed" +# define OSSL_PKEY_PARAM_USE_COFACTOR_ECDH OSSL_PKEY_PARAM_USE_COFACTOR_FLAG +# define OSSL_PKEY_PARAM_USE_COFACTOR_FLAG "use-cofactor-flag" +# define OSSL_PROV_PARAM_BUILDINFO "buildinfo" +# define OSSL_PROV_PARAM_CORE_MODULE_FILENAME "module-filename" +# define OSSL_PROV_PARAM_CORE_PROV_NAME "provider-name" +# define OSSL_PROV_PARAM_CORE_VERSION "openssl-version" +# define OSSL_PROV_PARAM_DRBG_TRUNC_DIGEST "drbg-no-trunc-md" +# define OSSL_PROV_PARAM_DSA_SIGN_DISABLED "dsa-sign-disabled" +# define OSSL_PROV_PARAM_ECDH_COFACTOR_CHECK "ecdh-cofactor-check" +# define OSSL_PROV_PARAM_HKDF_DIGEST_CHECK "hkdf-digest-check" +# define OSSL_PROV_PARAM_HKDF_KEY_CHECK "hkdf-key-check" +# define OSSL_PROV_PARAM_HMAC_KEY_CHECK "hmac-key-check" +# define OSSL_PROV_PARAM_KBKDF_KEY_CHECK "kbkdf-key-check" +# define OSSL_PROV_PARAM_KMAC_KEY_CHECK "kmac-key-check" +# define OSSL_PROV_PARAM_NAME "name" +# define OSSL_PROV_PARAM_NO_SHORT_MAC "no-short-mac" +# define OSSL_PROV_PARAM_PBKDF2_LOWER_BOUND_CHECK "pbkdf2-lower-bound-check" +# define OSSL_PROV_PARAM_RSA_PKCS15_PAD_DISABLED "rsa-pkcs15-pad-disabled" +# define OSSL_PROV_PARAM_RSA_PSS_SALTLEN_CHECK "rsa-pss-saltlen-check" +# define OSSL_PROV_PARAM_RSA_SIGN_X931_PAD_DISABLED "rsa-sign-x931-pad-disabled" +# define OSSL_PROV_PARAM_SECURITY_CHECKS "security-checks" +# define OSSL_PROV_PARAM_SELF_TEST_DESC "st-desc" +# define OSSL_PROV_PARAM_SELF_TEST_PHASE "st-phase" +# define OSSL_PROV_PARAM_SELF_TEST_TYPE "st-type" +# define OSSL_PROV_PARAM_SIGNATURE_DIGEST_CHECK "signature-digest-check" +# define OSSL_PROV_PARAM_SSHKDF_DIGEST_CHECK "sshkdf-digest-check" +# define OSSL_PROV_PARAM_SSHKDF_KEY_CHECK "sshkdf-key-check" +# define OSSL_PROV_PARAM_SSKDF_DIGEST_CHECK "sskdf-digest-check" +# define OSSL_PROV_PARAM_SSKDF_KEY_CHECK "sskdf-key-check" +# define OSSL_PROV_PARAM_STATUS "status" +# define OSSL_PROV_PARAM_TDES_ENCRYPT_DISABLED "tdes-encrypt-disabled" +# define OSSL_PROV_PARAM_TLS13_KDF_DIGEST_CHECK "tls13-kdf-digest-check" +# define OSSL_PROV_PARAM_TLS13_KDF_KEY_CHECK "tls13-kdf-key-check" +# define OSSL_PROV_PARAM_TLS1_PRF_DIGEST_CHECK "tls1-prf-digest-check" +# define OSSL_PROV_PARAM_TLS1_PRF_EMS_CHECK "tls1-prf-ems-check" +# define OSSL_PROV_PARAM_TLS1_PRF_KEY_CHECK "tls1-prf-key-check" +# define OSSL_PROV_PARAM_VERSION "version" +# define OSSL_PROV_PARAM_X942KDF_KEY_CHECK "x942kdf-key-check" +# define OSSL_PROV_PARAM_X963KDF_DIGEST_CHECK "x963kdf-digest-check" +# define OSSL_PROV_PARAM_X963KDF_KEY_CHECK "x963kdf-key-check" +# define OSSL_RAND_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_RAND_PARAM_GENERATE "generate" +# define OSSL_RAND_PARAM_MAX_REQUEST "max_request" +# define OSSL_RAND_PARAM_STATE "state" +# define OSSL_RAND_PARAM_STRENGTH "strength" +# define OSSL_RAND_PARAM_TEST_ENTROPY "test_entropy" +# define OSSL_RAND_PARAM_TEST_NONCE "test_nonce" +# define OSSL_SIGNATURE_PARAM_ADD_RANDOM "additional-random" +# define OSSL_SIGNATURE_PARAM_ALGORITHM_ID OSSL_PKEY_PARAM_ALGORITHM_ID +# define OSSL_SIGNATURE_PARAM_ALGORITHM_ID_PARAMS OSSL_PKEY_PARAM_ALGORITHM_ID_PARAMS +# define OSSL_SIGNATURE_PARAM_CONTEXT_STRING "context-string" +# define OSSL_SIGNATURE_PARAM_DETERMINISTIC "deterministic" +# define OSSL_SIGNATURE_PARAM_DIGEST OSSL_PKEY_PARAM_DIGEST +# define OSSL_SIGNATURE_PARAM_DIGEST_SIZE OSSL_PKEY_PARAM_DIGEST_SIZE +# define OSSL_SIGNATURE_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_SIGNATURE_PARAM_FIPS_DIGEST_CHECK OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK +# define OSSL_SIGNATURE_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_SIGNATURE_PARAM_FIPS_RSA_PSS_SALTLEN_CHECK "rsa-pss-saltlen-check" +# define OSSL_SIGNATURE_PARAM_FIPS_SIGN_CHECK OSSL_PKEY_PARAM_FIPS_SIGN_CHECK +# define OSSL_SIGNATURE_PARAM_FIPS_SIGN_X931_PAD_CHECK "sign-x931-pad-check" +# define OSSL_SIGNATURE_PARAM_FIPS_VERIFY_MESSAGE "verify-message" +# define OSSL_SIGNATURE_PARAM_INSTANCE "instance" +# define OSSL_SIGNATURE_PARAM_KAT "kat" +# define OSSL_SIGNATURE_PARAM_MESSAGE_ENCODING "message-encoding" +# define OSSL_SIGNATURE_PARAM_MGF1_DIGEST OSSL_PKEY_PARAM_MGF1_DIGEST +# define OSSL_SIGNATURE_PARAM_MGF1_PROPERTIES OSSL_PKEY_PARAM_MGF1_PROPERTIES +# define OSSL_SIGNATURE_PARAM_MU "mu" +# define OSSL_SIGNATURE_PARAM_NONCE_TYPE "nonce-type" +# define OSSL_SIGNATURE_PARAM_PAD_MODE OSSL_PKEY_PARAM_PAD_MODE +# define OSSL_SIGNATURE_PARAM_PROPERTIES OSSL_PKEY_PARAM_PROPERTIES +# define OSSL_SIGNATURE_PARAM_PSS_SALTLEN "saltlen" +# define OSSL_SIGNATURE_PARAM_SIGNATURE "signature" +# define OSSL_SIGNATURE_PARAM_TEST_ENTROPY "test-entropy" +# define OSSL_SKEY_PARAM_KEY_LENGTH "key-length" +# define OSSL_SKEY_PARAM_RAW_BYTES "raw-bytes" +# define OSSL_STORE_PARAM_ALIAS "alias" +# define OSSL_STORE_PARAM_DIGEST "digest" +# define OSSL_STORE_PARAM_EXPECT "expect" +# define OSSL_STORE_PARAM_FINGERPRINT "fingerprint" +# define OSSL_STORE_PARAM_INPUT_TYPE "input-type" +# define OSSL_STORE_PARAM_ISSUER "name" +# define OSSL_STORE_PARAM_PROPERTIES "properties" +# define OSSL_STORE_PARAM_SERIAL "serial" +# define OSSL_STORE_PARAM_SUBJECT "subject" + +# ifdef __cplusplus +} +# endif + +#endif diff --git a/deps/openssl/config/archs/BSD-x86_64/no-asm/include/openssl/crmf.h b/deps/openssl/config/archs/BSD-x86_64/no-asm/include/openssl/crmf.h index 71b747ed33d239..4bf550fd47daa9 100644 --- a/deps/openssl/config/archs/BSD-x86_64/no-asm/include/openssl/crmf.h +++ b/deps/openssl/config/archs/BSD-x86_64/no-asm/include/openssl/crmf.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/crmf.h.in * - * Copyright 2007-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2007-2025 The OpenSSL Project Authors. All Rights Reserved. * Copyright Nokia 2007-2019 * Copyright Siemens AG 2015-2019 * @@ -26,6 +26,7 @@ # include # include # include /* for GENERAL_NAME etc. */ +# include /* explicit #includes not strictly needed since implied by the above: */ # include @@ -43,9 +44,12 @@ extern "C" { # define OSSL_CRMF_SUBSEQUENTMESSAGE_ENCRCERT 0 # define OSSL_CRMF_SUBSEQUENTMESSAGE_CHALLENGERESP 1 - typedef struct ossl_crmf_encryptedvalue_st OSSL_CRMF_ENCRYPTEDVALUE; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_ENCRYPTEDVALUE) + +typedef struct ossl_crmf_encryptedkey_st OSSL_CRMF_ENCRYPTEDKEY; +DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_ENCRYPTEDKEY) + typedef struct ossl_crmf_msg_st OSSL_CRMF_MSG; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_MSG) DECLARE_ASN1_DUP_FUNCTION(OSSL_CRMF_MSG) @@ -77,6 +81,36 @@ SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CRMF_MSG, OSSL_CRMF_MSG, OSSL_CRMF_MSG) #define sk_OSSL_CRMF_MSG_set_cmp_func(sk, cmp) ((sk_OSSL_CRMF_MSG_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CRMF_MSG_sk_type(sk), ossl_check_OSSL_CRMF_MSG_compfunc_type(cmp))) typedef struct ossl_crmf_attributetypeandvalue_st OSSL_CRMF_ATTRIBUTETYPEANDVALUE; +void OSSL_CRMF_ATTRIBUTETYPEANDVALUE_free(OSSL_CRMF_ATTRIBUTETYPEANDVALUE *v); +DECLARE_ASN1_DUP_FUNCTION(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CRMF_ATTRIBUTETYPEANDVALUE, OSSL_CRMF_ATTRIBUTETYPEANDVALUE, OSSL_CRMF_ATTRIBUTETYPEANDVALUE) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_value(sk, idx) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_value(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), (idx))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_new(cmp) ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_new(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_compfunc_type(cmp))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_new_null() ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_new_null()) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_new_reserve(cmp, n) ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_compfunc_type(cmp), (n))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), (n)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_free(sk) OPENSSL_sk_free(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_delete(sk, i) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_delete(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), (i))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_delete_ptr(sk, ptr) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_pop(sk) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_pop(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_shift(sk) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_shift(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk),ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_freefunc_type(freefunc)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr), (idx)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_set(sk, idx, ptr) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_set(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), (idx), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr), pnum) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_dup(sk) ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_dup(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_copyfunc_type(copyfunc), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_freefunc_type(freefunc))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_set_cmp_func(sk, cmp) ((sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_compfunc_type(cmp))) + + typedef struct ossl_crmf_pbmparameter_st OSSL_CRMF_PBMPARAMETER; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_PBMPARAMETER) typedef struct ossl_crmf_poposigningkey_st OSSL_CRMF_POPOSIGNINGKEY; @@ -118,6 +152,7 @@ typedef struct ossl_crmf_singlepubinfo_st OSSL_CRMF_SINGLEPUBINFO; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_SINGLEPUBINFO) typedef struct ossl_crmf_certtemplate_st OSSL_CRMF_CERTTEMPLATE; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_CERTTEMPLATE) +DECLARE_ASN1_DUP_FUNCTION(OSSL_CRMF_CERTTEMPLATE) typedef STACK_OF(OSSL_CRMF_MSG) OSSL_CRMF_MSGS; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_MSGS) @@ -198,12 +233,14 @@ int OSSL_CRMF_MSGS_verify_popo(const OSSL_CRMF_MSGS *reqs, int rid, int acceptRAVerified, OSSL_LIB_CTX *libctx, const char *propq); OSSL_CRMF_CERTTEMPLATE *OSSL_CRMF_MSG_get0_tmpl(const OSSL_CRMF_MSG *crm); -const ASN1_INTEGER -*OSSL_CRMF_CERTTEMPLATE_get0_serialNumber(const OSSL_CRMF_CERTTEMPLATE *tmpl); +X509_PUBKEY +*OSSL_CRMF_CERTTEMPLATE_get0_publicKey(const OSSL_CRMF_CERTTEMPLATE *tmpl); const X509_NAME *OSSL_CRMF_CERTTEMPLATE_get0_subject(const OSSL_CRMF_CERTTEMPLATE *tmpl); const X509_NAME *OSSL_CRMF_CERTTEMPLATE_get0_issuer(const OSSL_CRMF_CERTTEMPLATE *tmpl); +const ASN1_INTEGER +*OSSL_CRMF_CERTTEMPLATE_get0_serialNumber(const OSSL_CRMF_CERTTEMPLATE *tmpl); X509_EXTENSIONS *OSSL_CRMF_CERTTEMPLATE_get0_extensions(const OSSL_CRMF_CERTTEMPLATE *tmpl); const X509_NAME @@ -215,10 +252,24 @@ int OSSL_CRMF_CERTTEMPLATE_fill(OSSL_CRMF_CERTTEMPLATE *tmpl, const X509_NAME *subject, const X509_NAME *issuer, const ASN1_INTEGER *serial); -X509 -*OSSL_CRMF_ENCRYPTEDVALUE_get1_encCert(const OSSL_CRMF_ENCRYPTEDVALUE *ecert, - OSSL_LIB_CTX *libctx, const char *propq, - EVP_PKEY *pkey); +X509 *OSSL_CRMF_ENCRYPTEDVALUE_get1_encCert(const OSSL_CRMF_ENCRYPTEDVALUE *ecert, + OSSL_LIB_CTX *libctx, const char *propq, + EVP_PKEY *pkey); +X509 *OSSL_CRMF_ENCRYPTEDKEY_get1_encCert(const OSSL_CRMF_ENCRYPTEDKEY *ecert, + OSSL_LIB_CTX *libctx, const char *propq, + EVP_PKEY *pkey, unsigned int flags); +unsigned char +*OSSL_CRMF_ENCRYPTEDVALUE_decrypt(const OSSL_CRMF_ENCRYPTEDVALUE *enc, + OSSL_LIB_CTX *libctx, const char *propq, + EVP_PKEY *pkey, int *outlen); +EVP_PKEY *OSSL_CRMF_ENCRYPTEDKEY_get1_pkey(const OSSL_CRMF_ENCRYPTEDKEY *encryptedKey, + X509_STORE *ts, STACK_OF(X509) *extra, EVP_PKEY *pkey, + X509 *cert, ASN1_OCTET_STRING *secret, + OSSL_LIB_CTX *libctx, const char *propq); +int OSSL_CRMF_MSG_centralkeygen_requested(const OSSL_CRMF_MSG *crm, const X509_REQ *p10cr); +# ifndef OPENSSL_NO_CMS +OSSL_CRMF_ENCRYPTEDKEY *OSSL_CRMF_ENCRYPTEDKEY_init_envdata(CMS_EnvelopedData *envdata); +# endif # ifdef __cplusplus } diff --git a/deps/openssl/config/archs/BSD-x86_64/no-asm/include/openssl/crypto.h b/deps/openssl/config/archs/BSD-x86_64/no-asm/include/openssl/crypto.h index 3f40be6d8c61d5..fd2cfd3e5a9ac4 100644 --- a/deps/openssl/config/archs/BSD-x86_64/no-asm/include/openssl/crypto.h +++ b/deps/openssl/config/archs/BSD-x86_64/no-asm/include/openssl/crypto.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/crypto.h.in * - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2024 The OpenSSL Project Authors. All Rights Reserved. * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved * * Licensed under the Apache License 2.0 (the "License"). You may not use @@ -85,9 +85,15 @@ int CRYPTO_THREAD_unlock(CRYPTO_RWLOCK *lock); void CRYPTO_THREAD_lock_free(CRYPTO_RWLOCK *lock); int CRYPTO_atomic_add(int *val, int amount, int *ret, CRYPTO_RWLOCK *lock); +int CRYPTO_atomic_add64(uint64_t *val, uint64_t op, uint64_t *ret, + CRYPTO_RWLOCK *lock); +int CRYPTO_atomic_and(uint64_t *val, uint64_t op, uint64_t *ret, + CRYPTO_RWLOCK *lock); int CRYPTO_atomic_or(uint64_t *val, uint64_t op, uint64_t *ret, CRYPTO_RWLOCK *lock); int CRYPTO_atomic_load(uint64_t *val, uint64_t *ret, CRYPTO_RWLOCK *lock); +int CRYPTO_atomic_load_int(int *val, int *ret, CRYPTO_RWLOCK *lock); +int CRYPTO_atomic_store(uint64_t *dst, uint64_t val, CRYPTO_RWLOCK *lock); /* No longer needed, so this is a no-op */ #define OPENSSL_malloc_init() while(0) continue @@ -96,6 +102,9 @@ int CRYPTO_atomic_load(uint64_t *val, uint64_t *ret, CRYPTO_RWLOCK *lock); CRYPTO_malloc(num, OPENSSL_FILE, OPENSSL_LINE) # define OPENSSL_zalloc(num) \ CRYPTO_zalloc(num, OPENSSL_FILE, OPENSSL_LINE) +# define OPENSSL_aligned_alloc(num, alignment, freeptr) \ + CRYPTO_aligned_alloc(num, alignment, freeptr, \ + OPENSSL_FILE, OPENSSL_LINE) # define OPENSSL_realloc(addr, num) \ CRYPTO_realloc(addr, num, OPENSSL_FILE, OPENSSL_LINE) # define OPENSSL_clear_realloc(addr, old_num, num) \ @@ -124,6 +133,7 @@ int CRYPTO_atomic_load(uint64_t *val, uint64_t *ret, CRYPTO_RWLOCK *lock); size_t OPENSSL_strlcpy(char *dst, const char *src, size_t siz); size_t OPENSSL_strlcat(char *dst, const char *src, size_t siz); size_t OPENSSL_strnlen(const char *str, size_t maxlen); +int OPENSSL_strtoul(const char *str, char **endptr, int base, unsigned long *num); int OPENSSL_buf2hexstr_ex(char *str, size_t str_n, size_t *strlength, const unsigned char *buf, size_t buflen, const char sep); @@ -160,6 +170,7 @@ const char *OpenSSL_version(int type); # define OPENSSL_FULL_VERSION_STRING 7 # define OPENSSL_MODULES_DIR 8 # define OPENSSL_CPU_INFO 9 +# define OPENSSL_WINCTX 10 const char *OPENSSL_info(int type); /* @@ -174,6 +185,7 @@ const char *OPENSSL_info(int type); # define OPENSSL_INFO_LIST_SEPARATOR 1006 # define OPENSSL_INFO_SEED_SOURCE 1007 # define OPENSSL_INFO_CPU_SETTINGS 1008 +# define OPENSSL_INFO_WINDOWS_CONTEXT 1009 int OPENSSL_issetugid(void); @@ -341,11 +353,14 @@ void CRYPTO_get_mem_functions(CRYPTO_malloc_fn *malloc_fn, CRYPTO_realloc_fn *realloc_fn, CRYPTO_free_fn *free_fn); -void *CRYPTO_malloc(size_t num, const char *file, int line); -void *CRYPTO_zalloc(size_t num, const char *file, int line); -void *CRYPTO_memdup(const void *str, size_t siz, const char *file, int line); -char *CRYPTO_strdup(const char *str, const char *file, int line); -char *CRYPTO_strndup(const char *str, size_t s, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_malloc(size_t num, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_zalloc(size_t num, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_aligned_alloc(size_t num, size_t align, + void **freeptr, const char *file, + int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_memdup(const void *str, size_t siz, const char *file, int line); +OSSL_CRYPTO_ALLOC char *CRYPTO_strdup(const char *str, const char *file, int line); +OSSL_CRYPTO_ALLOC char *CRYPTO_strndup(const char *str, size_t s, const char *file, int line); void CRYPTO_free(void *ptr, const char *file, int line); void CRYPTO_clear_free(void *ptr, size_t num, const char *file, int line); void *CRYPTO_realloc(void *addr, size_t num, const char *file, int line); @@ -354,8 +369,8 @@ void *CRYPTO_clear_realloc(void *addr, size_t old_num, size_t num, int CRYPTO_secure_malloc_init(size_t sz, size_t minsize); int CRYPTO_secure_malloc_done(void); -void *CRYPTO_secure_malloc(size_t num, const char *file, int line); -void *CRYPTO_secure_zalloc(size_t num, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_secure_malloc(size_t num, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_secure_zalloc(size_t num, const char *file, int line); void CRYPTO_secure_free(void *ptr, const char *file, int line); void CRYPTO_secure_clear_free(void *ptr, size_t num, const char *file, int line); @@ -376,6 +391,9 @@ void OPENSSL_cleanse(void *ptr, size_t len); # define CRYPTO_MEM_CHECK_ENABLE 0x2 /* Control and mode bit */ # define CRYPTO_MEM_CHECK_DISABLE 0x3 /* Control only */ +/* max allowed length for value of OPENSSL_MALLOC_FAILURES env var. */ +# define CRYPTO_MEM_CHECK_MAX_FS 256 + void CRYPTO_get_alloc_counts(int *mcount, int *rcount, int *fcount); # ifndef OPENSSL_NO_DEPRECATED_3_0 # define OPENSSL_mem_debug_push(info) \ @@ -551,6 +569,13 @@ int OSSL_LIB_CTX_load_config(OSSL_LIB_CTX *ctx, const char *config_file); void OSSL_LIB_CTX_free(OSSL_LIB_CTX *); OSSL_LIB_CTX *OSSL_LIB_CTX_get0_global_default(void); OSSL_LIB_CTX *OSSL_LIB_CTX_set0_default(OSSL_LIB_CTX *libctx); +int OSSL_LIB_CTX_get_conf_diagnostics(OSSL_LIB_CTX *ctx); +void OSSL_LIB_CTX_set_conf_diagnostics(OSSL_LIB_CTX *ctx, int value); + +void OSSL_sleep(uint64_t millis); + + +void *OSSL_LIB_CTX_get_data(OSSL_LIB_CTX *ctx, int index); # ifdef __cplusplus } diff --git a/deps/openssl/config/archs/BSD-x86_64/no-asm/include/openssl/ct.h b/deps/openssl/config/archs/BSD-x86_64/no-asm/include/openssl/ct.h index b6dd8c3547710a..e6dd1192a4e0b3 100644 --- a/deps/openssl/config/archs/BSD-x86_64/no-asm/include/openssl/ct.h +++ b/deps/openssl/config/archs/BSD-x86_64/no-asm/include/openssl/ct.h @@ -133,7 +133,7 @@ typedef enum { */ CT_POLICY_EVAL_CTX *CT_POLICY_EVAL_CTX_new_ex(OSSL_LIB_CTX *libctx, const char *propq); - + /* * The same as CT_POLICY_EVAL_CTX_new_ex() but the default library * context and property query string is used. diff --git a/deps/openssl/config/archs/BSD-x86_64/no-asm/include/openssl/err.h b/deps/openssl/config/archs/BSD-x86_64/no-asm/include/openssl/err.h index 2abf2483488181..daca18e7b757b0 100644 --- a/deps/openssl/config/archs/BSD-x86_64/no-asm/include/openssl/err.h +++ b/deps/openssl/config/archs/BSD-x86_64/no-asm/include/openssl/err.h @@ -1,5 +1,5 @@ /* - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -372,7 +372,7 @@ typedef struct ERR_string_data_st { } ERR_STRING_DATA; DEFINE_LHASH_OF_INTERNAL(ERR_STRING_DATA); -#define lh_ERR_STRING_DATA_new(hfn, cmp) ((LHASH_OF(ERR_STRING_DATA) *)OPENSSL_LH_new(ossl_check_ERR_STRING_DATA_lh_hashfunc_type(hfn), ossl_check_ERR_STRING_DATA_lh_compfunc_type(cmp))) +#define lh_ERR_STRING_DATA_new(hfn, cmp) ((LHASH_OF(ERR_STRING_DATA) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new(ossl_check_ERR_STRING_DATA_lh_hashfunc_type(hfn), ossl_check_ERR_STRING_DATA_lh_compfunc_type(cmp)), lh_ERR_STRING_DATA_hash_thunk, lh_ERR_STRING_DATA_comp_thunk, lh_ERR_STRING_DATA_doall_thunk, lh_ERR_STRING_DATA_doall_arg_thunk)) #define lh_ERR_STRING_DATA_free(lh) OPENSSL_LH_free(ossl_check_ERR_STRING_DATA_lh_type(lh)) #define lh_ERR_STRING_DATA_flush(lh) OPENSSL_LH_flush(ossl_check_ERR_STRING_DATA_lh_type(lh)) #define lh_ERR_STRING_DATA_insert(lh, ptr) ((ERR_STRING_DATA *)OPENSSL_LH_insert(ossl_check_ERR_STRING_DATA_lh_type(lh), ossl_check_ERR_STRING_DATA_lh_plain_type(ptr))) @@ -496,6 +496,14 @@ int ERR_get_next_error_library(void); int ERR_set_mark(void); int ERR_pop_to_mark(void); int ERR_clear_last_mark(void); +int ERR_count_to_mark(void); +int ERR_pop(void); + +ERR_STATE *OSSL_ERR_STATE_new(void); +void OSSL_ERR_STATE_save(ERR_STATE *es); +void OSSL_ERR_STATE_save_to_mark(ERR_STATE *es); +void OSSL_ERR_STATE_restore(const ERR_STATE *es); +void OSSL_ERR_STATE_free(ERR_STATE *es); #ifdef __cplusplus } diff --git a/deps/openssl/config/archs/BSD-x86_64/no-asm/include/openssl/fipskey.h b/deps/openssl/config/archs/BSD-x86_64/no-asm/include/openssl/fipskey.h index 42ba014b313ba8..929db18c678364 100644 --- a/deps/openssl/config/archs/BSD-x86_64/no-asm/include/openssl/fipskey.h +++ b/deps/openssl/config/archs/BSD-x86_64/no-asm/include/openssl/fipskey.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/fipskey.h.in * - * Copyright 2020-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2020-2024 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -29,6 +29,11 @@ extern "C" { */ #define FIPS_KEY_STRING "f4556650ac31d35461610bac4ed81b1a181b2d8a43ea2854cbae22ca74560813" +/* + * The FIPS provider vendor name, as a string. + */ +#define FIPS_VENDOR "OpenSSL FIPS Provider" + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/BSD-x86_64/no-asm/include/openssl/lhash.h b/deps/openssl/config/archs/BSD-x86_64/no-asm/include/openssl/lhash.h index 39dd6254acdeb6..62c55b20fd9716 100644 --- a/deps/openssl/config/archs/BSD-x86_64/no-asm/include/openssl/lhash.h +++ b/deps/openssl/config/archs/BSD-x86_64/no-asm/include/openssl/lhash.h @@ -1,5 +1,5 @@ /* - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2024 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -24,6 +24,9 @@ # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -31,9 +34,13 @@ extern "C" { typedef struct lhash_node_st OPENSSL_LH_NODE; typedef int (*OPENSSL_LH_COMPFUNC) (const void *, const void *); +typedef int (*OPENSSL_LH_COMPFUNCTHUNK) (const void *, const void *, OPENSSL_LH_COMPFUNC cfn); typedef unsigned long (*OPENSSL_LH_HASHFUNC) (const void *); +typedef unsigned long (*OPENSSL_LH_HASHFUNCTHUNK) (const void *, OPENSSL_LH_HASHFUNC hfn); typedef void (*OPENSSL_LH_DOALL_FUNC) (void *); +typedef void (*OPENSSL_LH_DOALL_FUNC_THUNK) (void *, OPENSSL_LH_DOALL_FUNC doall); typedef void (*OPENSSL_LH_DOALL_FUNCARG) (void *, void *); +typedef void (*OPENSSL_LH_DOALL_FUNCARG_THUNK) (void *, void *, OPENSSL_LH_DOALL_FUNCARG doall); typedef struct lhash_st OPENSSL_LHASH; /* @@ -79,26 +86,40 @@ typedef struct lhash_st OPENSSL_LHASH; int OPENSSL_LH_error(OPENSSL_LHASH *lh); OPENSSL_LHASH *OPENSSL_LH_new(OPENSSL_LH_HASHFUNC h, OPENSSL_LH_COMPFUNC c); +OPENSSL_LHASH *OPENSSL_LH_set_thunks(OPENSSL_LHASH *lh, + OPENSSL_LH_HASHFUNCTHUNK hw, + OPENSSL_LH_COMPFUNCTHUNK cw, + OPENSSL_LH_DOALL_FUNC_THUNK daw, + OPENSSL_LH_DOALL_FUNCARG_THUNK daaw); void OPENSSL_LH_free(OPENSSL_LHASH *lh); void OPENSSL_LH_flush(OPENSSL_LHASH *lh); void *OPENSSL_LH_insert(OPENSSL_LHASH *lh, void *data); void *OPENSSL_LH_delete(OPENSSL_LHASH *lh, const void *data); void *OPENSSL_LH_retrieve(OPENSSL_LHASH *lh, const void *data); void OPENSSL_LH_doall(OPENSSL_LHASH *lh, OPENSSL_LH_DOALL_FUNC func); -void OPENSSL_LH_doall_arg(OPENSSL_LHASH *lh, OPENSSL_LH_DOALL_FUNCARG func, void *arg); +void OPENSSL_LH_doall_arg(OPENSSL_LHASH *lh, + OPENSSL_LH_DOALL_FUNCARG func, void *arg); +void OPENSSL_LH_doall_arg_thunk(OPENSSL_LHASH *lh, + OPENSSL_LH_DOALL_FUNCARG_THUNK daaw, + OPENSSL_LH_DOALL_FUNCARG fn, void *arg); + unsigned long OPENSSL_LH_strhash(const char *c); unsigned long OPENSSL_LH_num_items(const OPENSSL_LHASH *lh); unsigned long OPENSSL_LH_get_down_load(const OPENSSL_LHASH *lh); void OPENSSL_LH_set_down_load(OPENSSL_LHASH *lh, unsigned long down_load); # ifndef OPENSSL_NO_STDIO -void OPENSSL_LH_stats(const OPENSSL_LHASH *lh, FILE *fp); -void OPENSSL_LH_node_stats(const OPENSSL_LHASH *lh, FILE *fp); -void OPENSSL_LH_node_usage_stats(const OPENSSL_LHASH *lh, FILE *fp); +# ifndef OPENSSL_NO_DEPRECATED_3_1 +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_stats(const OPENSSL_LHASH *lh, FILE *fp); +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_node_stats(const OPENSSL_LHASH *lh, FILE *fp); +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_node_usage_stats(const OPENSSL_LHASH *lh, FILE *fp); +# endif +# endif +# ifndef OPENSSL_NO_DEPRECATED_3_1 +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_stats_bio(const OPENSSL_LHASH *lh, BIO *out); +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_node_stats_bio(const OPENSSL_LHASH *lh, BIO *out); +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_node_usage_stats_bio(const OPENSSL_LHASH *lh, BIO *out); # endif -void OPENSSL_LH_stats_bio(const OPENSSL_LHASH *lh, BIO *out); -void OPENSSL_LH_node_stats_bio(const OPENSSL_LHASH *lh, BIO *out); -void OPENSSL_LH_node_usage_stats_bio(const OPENSSL_LHASH *lh, BIO *out); # ifndef OPENSSL_NO_DEPRECATED_1_1_0 # define _LHASH OPENSSL_LHASH @@ -129,110 +150,190 @@ void OPENSSL_LH_node_usage_stats_bio(const OPENSSL_LHASH *lh, BIO *out); /* Helper macro for internal use */ # define DEFINE_LHASH_OF_INTERNAL(type) \ - LHASH_OF(type) { union lh_##type##_dummy { void* d1; unsigned long d2; int d3; } dummy; }; \ + LHASH_OF(type) { \ + union lh_##type##_dummy { void* d1; unsigned long d2; int d3; } dummy; \ + }; \ typedef int (*lh_##type##_compfunc)(const type *a, const type *b); \ typedef unsigned long (*lh_##type##_hashfunc)(const type *a); \ typedef void (*lh_##type##_doallfunc)(type *a); \ - static ossl_unused ossl_inline type *ossl_check_##type##_lh_plain_type(type *ptr) \ + static ossl_inline unsigned long lh_##type##_hash_thunk(const void *data, OPENSSL_LH_HASHFUNC hfn) \ + { \ + unsigned long (*hfn_conv)(const type *) = (unsigned long (*)(const type *))hfn; \ + return hfn_conv((const type *)data); \ + } \ + static ossl_inline int lh_##type##_comp_thunk(const void *da, const void *db, OPENSSL_LH_COMPFUNC cfn) \ + { \ + int (*cfn_conv)(const type *, const type *) = (int (*)(const type *, const type *))cfn; \ + return cfn_conv((const type *)da, (const type *)db); \ + } \ + static ossl_inline void lh_##type##_doall_thunk(void *node, OPENSSL_LH_DOALL_FUNC doall) \ + { \ + void (*doall_conv)(type *) = (void (*)(type *))doall; \ + doall_conv((type *)node); \ + } \ + static ossl_inline void lh_##type##_doall_arg_thunk(void *node, void *arg, OPENSSL_LH_DOALL_FUNCARG doall) \ + { \ + void (*doall_conv)(type *, void *) = (void (*)(type *, void *))doall; \ + doall_conv((type *)node, arg); \ + } \ + static ossl_unused ossl_inline type *\ + ossl_check_##type##_lh_plain_type(type *ptr) \ { \ return ptr; \ } \ - static ossl_unused ossl_inline const type *ossl_check_const_##type##_lh_plain_type(const type *ptr) \ + static ossl_unused ossl_inline const type * \ + ossl_check_const_##type##_lh_plain_type(const type *ptr) \ { \ return ptr; \ } \ - static ossl_unused ossl_inline const OPENSSL_LHASH *ossl_check_const_##type##_lh_type(const LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline const OPENSSL_LHASH * \ + ossl_check_const_##type##_lh_type(const LHASH_OF(type) *lh) \ { \ return (const OPENSSL_LHASH *)lh; \ } \ - static ossl_unused ossl_inline OPENSSL_LHASH *ossl_check_##type##_lh_type(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline OPENSSL_LHASH * \ + ossl_check_##type##_lh_type(LHASH_OF(type) *lh) \ { \ return (OPENSSL_LHASH *)lh; \ } \ - static ossl_unused ossl_inline OPENSSL_LH_COMPFUNC ossl_check_##type##_lh_compfunc_type(lh_##type##_compfunc cmp) \ + static ossl_unused ossl_inline OPENSSL_LH_COMPFUNC \ + ossl_check_##type##_lh_compfunc_type(lh_##type##_compfunc cmp) \ { \ return (OPENSSL_LH_COMPFUNC)cmp; \ } \ - static ossl_unused ossl_inline OPENSSL_LH_HASHFUNC ossl_check_##type##_lh_hashfunc_type(lh_##type##_hashfunc hfn) \ + static ossl_unused ossl_inline OPENSSL_LH_HASHFUNC \ + ossl_check_##type##_lh_hashfunc_type(lh_##type##_hashfunc hfn) \ { \ return (OPENSSL_LH_HASHFUNC)hfn; \ } \ - static ossl_unused ossl_inline OPENSSL_LH_DOALL_FUNC ossl_check_##type##_lh_doallfunc_type(lh_##type##_doallfunc dfn) \ + static ossl_unused ossl_inline OPENSSL_LH_DOALL_FUNC \ + ossl_check_##type##_lh_doallfunc_type(lh_##type##_doallfunc dfn) \ { \ return (OPENSSL_LH_DOALL_FUNC)dfn; \ } \ LHASH_OF(type) -# define DEFINE_LHASH_OF(type) \ - LHASH_OF(type) { union lh_##type##_dummy { void* d1; unsigned long d2; int d3; } dummy; }; \ - static ossl_unused ossl_inline LHASH_OF(type) *lh_##type##_new(unsigned long (*hfn)(const type *), \ - int (*cfn)(const type *, const type *)) \ +# ifndef OPENSSL_NO_DEPRECATED_3_1 +# define DEFINE_LHASH_OF_DEPRECATED(type) \ + static ossl_unused ossl_inline void \ + lh_##type##_node_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ { \ - return (LHASH_OF(type) *) \ - OPENSSL_LH_new((OPENSSL_LH_HASHFUNC)hfn, (OPENSSL_LH_COMPFUNC)cfn); \ + OPENSSL_LH_node_stats_bio((const OPENSSL_LHASH *)lh, out); \ } \ - static ossl_unused ossl_inline void lh_##type##_free(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline void \ + lh_##type##_node_usage_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + { \ + OPENSSL_LH_node_usage_stats_bio((const OPENSSL_LHASH *)lh, out); \ + } \ + static ossl_unused ossl_inline void \ + lh_##type##_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + { \ + OPENSSL_LH_stats_bio((const OPENSSL_LHASH *)lh, out); \ + } +# else +# define DEFINE_LHASH_OF_DEPRECATED(type) +# endif + +# define DEFINE_LHASH_OF_EX(type) \ + LHASH_OF(type) { \ + union lh_##type##_dummy { void* d1; unsigned long d2; int d3; } dummy; \ + }; \ + static unsigned long \ + lh_##type##_hfn_thunk(const void *data, OPENSSL_LH_HASHFUNC hfn) \ + { \ + unsigned long (*hfn_conv)(const type *) = (unsigned long (*)(const type *))hfn; \ + return hfn_conv((const type *)data); \ + } \ + static int lh_##type##_cfn_thunk(const void *da, const void *db, OPENSSL_LH_COMPFUNC cfn) \ + { \ + int (*cfn_conv)(const type *, const type *) = (int (*)(const type *, const type *))cfn; \ + return cfn_conv((const type *)da, (const type *)db); \ + } \ + static ossl_unused ossl_inline void \ + lh_##type##_free(LHASH_OF(type) *lh) \ { \ OPENSSL_LH_free((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline void lh_##type##_flush(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline void \ + lh_##type##_flush(LHASH_OF(type) *lh) \ { \ OPENSSL_LH_flush((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline type *lh_##type##_insert(LHASH_OF(type) *lh, type *d) \ + static ossl_unused ossl_inline type * \ + lh_##type##_insert(LHASH_OF(type) *lh, type *d) \ { \ return (type *)OPENSSL_LH_insert((OPENSSL_LHASH *)lh, d); \ } \ - static ossl_unused ossl_inline type *lh_##type##_delete(LHASH_OF(type) *lh, const type *d) \ + static ossl_unused ossl_inline type * \ + lh_##type##_delete(LHASH_OF(type) *lh, const type *d) \ { \ return (type *)OPENSSL_LH_delete((OPENSSL_LHASH *)lh, d); \ } \ - static ossl_unused ossl_inline type *lh_##type##_retrieve(LHASH_OF(type) *lh, const type *d) \ + static ossl_unused ossl_inline type * \ + lh_##type##_retrieve(LHASH_OF(type) *lh, const type *d) \ { \ return (type *)OPENSSL_LH_retrieve((OPENSSL_LHASH *)lh, d); \ } \ - static ossl_unused ossl_inline int lh_##type##_error(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline int \ + lh_##type##_error(LHASH_OF(type) *lh) \ { \ return OPENSSL_LH_error((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline unsigned long lh_##type##_num_items(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline unsigned long \ + lh_##type##_num_items(LHASH_OF(type) *lh) \ { \ return OPENSSL_LH_num_items((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline void lh_##type##_node_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + static ossl_unused ossl_inline unsigned long \ + lh_##type##_get_down_load(LHASH_OF(type) *lh) \ { \ - OPENSSL_LH_node_stats_bio((const OPENSSL_LHASH *)lh, out); \ + return OPENSSL_LH_get_down_load((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline void lh_##type##_node_usage_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + static ossl_unused ossl_inline void \ + lh_##type##_set_down_load(LHASH_OF(type) *lh, unsigned long dl) \ { \ - OPENSSL_LH_node_usage_stats_bio((const OPENSSL_LHASH *)lh, out); \ + OPENSSL_LH_set_down_load((OPENSSL_LHASH *)lh, dl); \ } \ - static ossl_unused ossl_inline void lh_##type##_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall_thunk(void *node, OPENSSL_LH_DOALL_FUNC doall) \ { \ - OPENSSL_LH_stats_bio((const OPENSSL_LHASH *)lh, out); \ + void (*doall_conv)(type *) = (void (*)(type *))doall; \ + doall_conv((type *)node); \ } \ - static ossl_unused ossl_inline unsigned long lh_##type##_get_down_load(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall_arg_thunk(void *node, void *arg, OPENSSL_LH_DOALL_FUNCARG doall) \ { \ - return OPENSSL_LH_get_down_load((OPENSSL_LHASH *)lh); \ + void (*doall_conv)(type *, void *) = (void (*)(type *, void *))doall; \ + doall_conv((type *)node, arg); \ } \ - static ossl_unused ossl_inline void lh_##type##_set_down_load(LHASH_OF(type) *lh, unsigned long dl) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall(LHASH_OF(type) *lh, void (*doall)(type *)) \ { \ - OPENSSL_LH_set_down_load((OPENSSL_LHASH *)lh, dl); \ + OPENSSL_LH_doall((OPENSSL_LHASH *)lh, (OPENSSL_LH_DOALL_FUNC)doall); \ } \ - static ossl_unused ossl_inline void lh_##type##_doall(LHASH_OF(type) *lh, \ - void (*doall)(type *)) \ + static ossl_unused ossl_inline LHASH_OF(type) * \ + lh_##type##_new(unsigned long (*hfn)(const type *), \ + int (*cfn)(const type *, const type *)) \ { \ - OPENSSL_LH_doall((OPENSSL_LHASH *)lh, (OPENSSL_LH_DOALL_FUNC)doall); \ + return (LHASH_OF(type) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new((OPENSSL_LH_HASHFUNC)hfn, (OPENSSL_LH_COMPFUNC)cfn), \ + lh_##type##_hfn_thunk, lh_##type##_cfn_thunk, \ + lh_##type##_doall_thunk, \ + lh_##type##_doall_arg_thunk); \ } \ - static ossl_unused ossl_inline void lh_##type##_doall_arg(LHASH_OF(type) *lh, \ - void (*doallarg)(type *, void *), \ - void *arg) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall_arg(LHASH_OF(type) *lh, \ + void (*doallarg)(type *, void *), void *arg) \ { \ OPENSSL_LH_doall_arg((OPENSSL_LHASH *)lh, \ (OPENSSL_LH_DOALL_FUNCARG)doallarg, arg); \ } \ LHASH_OF(type) +# define DEFINE_LHASH_OF(type) \ + DEFINE_LHASH_OF_EX(type); \ + DEFINE_LHASH_OF_DEPRECATED(type) \ + LHASH_OF(type) + #define IMPLEMENT_LHASH_DOALL_ARG_CONST(type, argtype) \ int_implement_lhash_doall(type, argtype, const type) @@ -240,17 +341,26 @@ void OPENSSL_LH_node_usage_stats_bio(const OPENSSL_LHASH *lh, BIO *out); int_implement_lhash_doall(type, argtype, type) #define int_implement_lhash_doall(type, argtype, cbargtype) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall_##argtype##_thunk(void *node, void *arg, OPENSSL_LH_DOALL_FUNCARG fn) \ + { \ + void (*fn_conv)(cbargtype *, argtype *) = (void (*)(cbargtype *, argtype *))fn; \ + fn_conv((cbargtype *)node, (argtype *)arg); \ + } \ static ossl_unused ossl_inline void \ lh_##type##_doall_##argtype(LHASH_OF(type) *lh, \ void (*fn)(cbargtype *, argtype *), \ argtype *arg) \ { \ - OPENSSL_LH_doall_arg((OPENSSL_LHASH *)lh, (OPENSSL_LH_DOALL_FUNCARG)fn, (void *)arg); \ + OPENSSL_LH_doall_arg_thunk((OPENSSL_LHASH *)lh, \ + lh_##type##_doall_##argtype##_thunk, \ + (OPENSSL_LH_DOALL_FUNCARG)fn, \ + (void *)arg); \ } \ LHASH_OF(type) DEFINE_LHASH_OF_INTERNAL(OPENSSL_STRING); -#define lh_OPENSSL_STRING_new(hfn, cmp) ((LHASH_OF(OPENSSL_STRING) *)OPENSSL_LH_new(ossl_check_OPENSSL_STRING_lh_hashfunc_type(hfn), ossl_check_OPENSSL_STRING_lh_compfunc_type(cmp))) +#define lh_OPENSSL_STRING_new(hfn, cmp) ((LHASH_OF(OPENSSL_STRING) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new(ossl_check_OPENSSL_STRING_lh_hashfunc_type(hfn), ossl_check_OPENSSL_STRING_lh_compfunc_type(cmp)), lh_OPENSSL_STRING_hash_thunk, lh_OPENSSL_STRING_comp_thunk, lh_OPENSSL_STRING_doall_thunk, lh_OPENSSL_STRING_doall_arg_thunk)) #define lh_OPENSSL_STRING_free(lh) OPENSSL_LH_free(ossl_check_OPENSSL_STRING_lh_type(lh)) #define lh_OPENSSL_STRING_flush(lh) OPENSSL_LH_flush(ossl_check_OPENSSL_STRING_lh_type(lh)) #define lh_OPENSSL_STRING_insert(lh, ptr) ((OPENSSL_STRING *)OPENSSL_LH_insert(ossl_check_OPENSSL_STRING_lh_type(lh), ossl_check_OPENSSL_STRING_lh_plain_type(ptr))) @@ -265,7 +375,7 @@ DEFINE_LHASH_OF_INTERNAL(OPENSSL_STRING); #define lh_OPENSSL_STRING_set_down_load(lh, dl) OPENSSL_LH_set_down_load(ossl_check_OPENSSL_STRING_lh_type(lh), dl) #define lh_OPENSSL_STRING_doall(lh, dfn) OPENSSL_LH_doall(ossl_check_OPENSSL_STRING_lh_type(lh), ossl_check_OPENSSL_STRING_lh_doallfunc_type(dfn)) DEFINE_LHASH_OF_INTERNAL(OPENSSL_CSTRING); -#define lh_OPENSSL_CSTRING_new(hfn, cmp) ((LHASH_OF(OPENSSL_CSTRING) *)OPENSSL_LH_new(ossl_check_OPENSSL_CSTRING_lh_hashfunc_type(hfn), ossl_check_OPENSSL_CSTRING_lh_compfunc_type(cmp))) +#define lh_OPENSSL_CSTRING_new(hfn, cmp) ((LHASH_OF(OPENSSL_CSTRING) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new(ossl_check_OPENSSL_CSTRING_lh_hashfunc_type(hfn), ossl_check_OPENSSL_CSTRING_lh_compfunc_type(cmp)), lh_OPENSSL_CSTRING_hash_thunk, lh_OPENSSL_CSTRING_comp_thunk, lh_OPENSSL_CSTRING_doall_thunk, lh_OPENSSL_CSTRING_doall_arg_thunk)) #define lh_OPENSSL_CSTRING_free(lh) OPENSSL_LH_free(ossl_check_OPENSSL_CSTRING_lh_type(lh)) #define lh_OPENSSL_CSTRING_flush(lh) OPENSSL_LH_flush(ossl_check_OPENSSL_CSTRING_lh_type(lh)) #define lh_OPENSSL_CSTRING_insert(lh, ptr) ((OPENSSL_CSTRING *)OPENSSL_LH_insert(ossl_check_OPENSSL_CSTRING_lh_type(lh), ossl_check_OPENSSL_CSTRING_lh_plain_type(ptr))) diff --git a/deps/openssl/config/archs/BSD-x86_64/no-asm/include/openssl/opensslv.h b/deps/openssl/config/archs/BSD-x86_64/no-asm/include/openssl/opensslv.h index 5fb5bc63056fe0..dd50d89cb9982d 100644 --- a/deps/openssl/config/archs/BSD-x86_64/no-asm/include/openssl/opensslv.h +++ b/deps/openssl/config/archs/BSD-x86_64/no-asm/include/openssl/opensslv.h @@ -28,8 +28,8 @@ extern "C" { * These macros express version number MAJOR.MINOR.PATCH exactly */ # define OPENSSL_VERSION_MAJOR 3 -# define OPENSSL_VERSION_MINOR 0 -# define OPENSSL_VERSION_PATCH 17 +# define OPENSSL_VERSION_MINOR 5 +# define OPENSSL_VERSION_PATCH 1 /* * Additional version information @@ -74,8 +74,8 @@ extern "C" { * longer variant with OPENSSL_VERSION_PRE_RELEASE_STR and * OPENSSL_VERSION_BUILD_METADATA_STR appended. */ -# define OPENSSL_VERSION_STR "3.0.17" -# define OPENSSL_FULL_VERSION_STR "3.0.17" +# define OPENSSL_VERSION_STR "3.5.1" +# define OPENSSL_FULL_VERSION_STR "3.5.1" /* * SECTION 3: ADDITIONAL METADATA @@ -88,7 +88,7 @@ extern "C" { * SECTION 4: BACKWARD COMPATIBILITY */ -# define OPENSSL_VERSION_TEXT "OpenSSL 3.0.17 1 Jul 2025" +# define OPENSSL_VERSION_TEXT "OpenSSL 3.5.1 1 Jul 2025" /* Synthesize OPENSSL_VERSION_NUMBER with the layout 0xMNN00PPSL */ # ifdef OPENSSL_VERSION_PRE_RELEASE diff --git a/deps/openssl/config/archs/BSD-x86_64/no-asm/include/openssl/pkcs12.h b/deps/openssl/config/archs/BSD-x86_64/no-asm/include/openssl/pkcs12.h index c5e0cab06491ec..0809645dad0bbf 100644 --- a/deps/openssl/config/archs/BSD-x86_64/no-asm/include/openssl/pkcs12.h +++ b/deps/openssl/config/archs/BSD-x86_64/no-asm/include/openssl/pkcs12.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/pkcs12.h.in * - * Copyright 1999-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1999-2024 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -25,6 +25,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -41,6 +44,7 @@ extern "C" { # define PKCS12_MAC_KEY_LENGTH 20 +/* The macro is expected to be used only internally. Kept for backwards compatibility. */ # define PKCS12_SALT_LEN 8 /* It's not clear if these are actually needed... */ @@ -130,7 +134,9 @@ int PKCS12_SAFEBAG_get_bag_nid(const PKCS12_SAFEBAG *bag); const ASN1_TYPE *PKCS12_SAFEBAG_get0_bag_obj(const PKCS12_SAFEBAG *bag); const ASN1_OBJECT *PKCS12_SAFEBAG_get0_bag_type(const PKCS12_SAFEBAG *bag); +X509 *PKCS12_SAFEBAG_get1_cert_ex(const PKCS12_SAFEBAG *bag, OSSL_LIB_CTX *libctx, const char *propq); X509 *PKCS12_SAFEBAG_get1_cert(const PKCS12_SAFEBAG *bag); +X509_CRL *PKCS12_SAFEBAG_get1_crl_ex(const PKCS12_SAFEBAG *bag, OSSL_LIB_CTX *libctx, const char *propq); X509_CRL *PKCS12_SAFEBAG_get1_crl(const PKCS12_SAFEBAG *bag); const STACK_OF(PKCS12_SAFEBAG) * PKCS12_SAFEBAG_get0_safes(const PKCS12_SAFEBAG *bag); @@ -218,6 +224,7 @@ ASN1_TYPE *PKCS12_get_attr_gen(const STACK_OF(X509_ATTRIBUTE) *attrs, char *PKCS12_get_friendlyname(PKCS12_SAFEBAG *bag); const STACK_OF(X509_ATTRIBUTE) * PKCS12_SAFEBAG_get0_attrs(const PKCS12_SAFEBAG *bag); +void PKCS12_SAFEBAG_set0_attrs(PKCS12_SAFEBAG *bag, STACK_OF(X509_ATTRIBUTE) *attrs); unsigned char *PKCS12_pbe_crypt(const X509_ALGOR *algor, const char *pass, int passlen, const unsigned char *in, int inlen, @@ -285,6 +292,9 @@ int PKCS12_verify_mac(PKCS12 *p12, const char *pass, int passlen); int PKCS12_set_mac(PKCS12 *p12, const char *pass, int passlen, unsigned char *salt, int saltlen, int iter, const EVP_MD *md_type); +int PKCS12_set_pbmac1_pbkdf2(PKCS12 *p12, const char *pass, int passlen, + unsigned char *salt, int saltlen, int iter, + const EVP_MD *md_type, const char *prf_md_name); int PKCS12_setup_mac(PKCS12 *p12, int iter, unsigned char *salt, int saltlen, const EVP_MD *md_type); unsigned char *OPENSSL_asc2uni(const char *asc, int asclen, @@ -305,6 +315,7 @@ DECLARE_ASN1_ITEM(PKCS12_AUTHSAFES) void PKCS12_PBE_add(void); int PKCS12_parse(PKCS12 *p12, const char *pass, EVP_PKEY **pkey, X509 **cert, STACK_OF(X509) **ca); +typedef int PKCS12_create_cb(PKCS12_SAFEBAG *bag, void *cbarg); PKCS12 *PKCS12_create(const char *pass, const char *name, EVP_PKEY *pkey, X509 *cert, STACK_OF(X509) *ca, int nid_key, int nid_cert, int iter, int mac_iter, int keytype); @@ -312,6 +323,11 @@ PKCS12 *PKCS12_create_ex(const char *pass, const char *name, EVP_PKEY *pkey, X509 *cert, STACK_OF(X509) *ca, int nid_key, int nid_cert, int iter, int mac_iter, int keytype, OSSL_LIB_CTX *ctx, const char *propq); +PKCS12 *PKCS12_create_ex2(const char *pass, const char *name, EVP_PKEY *pkey, + X509 *cert, STACK_OF(X509) *ca, int nid_key, int nid_cert, + int iter, int mac_iter, int keytype, + OSSL_LIB_CTX *ctx, const char *propq, + PKCS12_create_cb *cb, void *cbarg); PKCS12_SAFEBAG *PKCS12_add_cert(STACK_OF(PKCS12_SAFEBAG) **pbags, X509 *cert); PKCS12_SAFEBAG *PKCS12_add_key(STACK_OF(PKCS12_SAFEBAG) **pbags, diff --git a/deps/openssl/config/archs/BSD-x86_64/no-asm/include/openssl/pkcs7.h b/deps/openssl/config/archs/BSD-x86_64/no-asm/include/openssl/pkcs7.h index 0ce79bf4fa160e..fa68462aff973b 100644 --- a/deps/openssl/config/archs/BSD-x86_64/no-asm/include/openssl/pkcs7.h +++ b/deps/openssl/config/archs/BSD-x86_64/no-asm/include/openssl/pkcs7.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/pkcs7.h.in * - * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -28,6 +28,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -131,8 +134,8 @@ SKM_DEFINE_STACK_OF_INTERNAL(PKCS7_RECIP_INFO, PKCS7_RECIP_INFO, PKCS7_RECIP_INF typedef struct pkcs7_signed_st { ASN1_INTEGER *version; /* version 1 */ STACK_OF(X509_ALGOR) *md_algs; /* md used */ - STACK_OF(X509) *cert; /* [ 0 ] */ - STACK_OF(X509_CRL) *crl; /* [ 1 ] */ + STACK_OF(X509) *cert; /* [ 0 ] */ /* name should be 'certificates' */ + STACK_OF(X509_CRL) *crl; /* [ 1 ] */ /* name should be 'crls' */ STACK_OF(PKCS7_SIGNER_INFO) *signer_info; struct pkcs7_st *contents; } PKCS7_SIGNED; @@ -158,8 +161,8 @@ typedef struct pkcs7_enveloped_st { typedef struct pkcs7_signedandenveloped_st { ASN1_INTEGER *version; /* version 1 */ STACK_OF(X509_ALGOR) *md_algs; /* md used */ - STACK_OF(X509) *cert; /* [ 0 ] */ - STACK_OF(X509_CRL) *crl; /* [ 1 ] */ + STACK_OF(X509) *cert; /* [ 0 ] */ /* name should be 'certificates' */ + STACK_OF(X509_CRL) *crl; /* [ 1 ] */ /* name should be 'crls' */ STACK_OF(PKCS7_SIGNER_INFO) *signer_info; PKCS7_ENC_CONTENT *enc_data; STACK_OF(PKCS7_RECIP_INFO) *recipientinfo; @@ -200,7 +203,7 @@ typedef struct pkcs7_st { /* NID_pkcs7_data */ ASN1_OCTET_STRING *data; /* NID_pkcs7_signed */ - PKCS7_SIGNED *sign; + PKCS7_SIGNED *sign; /* field name 'signed' would clash with C keyword */ /* NID_pkcs7_enveloped */ PKCS7_ENVELOPE *enveloped; /* NID_pkcs7_signedAndEnveloped */ @@ -341,13 +344,13 @@ int PKCS7_SIGNER_INFO_set(PKCS7_SIGNER_INFO *p7i, X509 *x509, EVP_PKEY *pkey, const EVP_MD *dgst); int PKCS7_SIGNER_INFO_sign(PKCS7_SIGNER_INFO *si); int PKCS7_add_signer(PKCS7 *p7, PKCS7_SIGNER_INFO *p7i); -int PKCS7_add_certificate(PKCS7 *p7, X509 *x509); -int PKCS7_add_crl(PKCS7 *p7, X509_CRL *x509); +int PKCS7_add_certificate(PKCS7 *p7, X509 *cert); +int PKCS7_add_crl(PKCS7 *p7, X509_CRL *crl); int PKCS7_content_new(PKCS7 *p7, int nid); int PKCS7_dataVerify(X509_STORE *cert_store, X509_STORE_CTX *ctx, BIO *bio, PKCS7 *p7, PKCS7_SIGNER_INFO *si); int PKCS7_signatureVerify(BIO *bio, PKCS7 *p7, PKCS7_SIGNER_INFO *si, - X509 *x509); + X509 *signer); BIO *PKCS7_dataInit(PKCS7 *p7, BIO *bio); int PKCS7_dataFinal(PKCS7 *p7, BIO *bio); diff --git a/deps/openssl/config/archs/BSD-x86_64/no-asm/include/openssl/ssl.h b/deps/openssl/config/archs/BSD-x86_64/no-asm/include/openssl/ssl.h index 3df725c56d6c5e..7e3d89c7ef3dc9 100644 --- a/deps/openssl/config/archs/BSD-x86_64/no-asm/include/openssl/ssl.h +++ b/deps/openssl/config/archs/BSD-x86_64/no-asm/include/openssl/ssl.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/ssl.h.in * - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved * Copyright 2005 Nokia. All rights reserved. * @@ -24,6 +24,7 @@ # endif # include +# include # include # include # include @@ -42,6 +43,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -231,10 +235,8 @@ typedef struct ssl_cipher_st SSL_CIPHER; typedef struct ssl_session_st SSL_SESSION; typedef struct tls_sigalgs_st TLS_SIGALGS; typedef struct ssl_conf_ctx_st SSL_CONF_CTX; -typedef struct ssl_comp_st SSL_COMP; STACK_OF(SSL_CIPHER); -STACK_OF(SSL_COMP); /* SRTP protection profiles for use with the use_srtp extension (RFC 5764)*/ typedef struct srtp_protection_profile_st { @@ -278,28 +280,31 @@ typedef int (*tls_session_secret_cb_fn)(SSL *s, void *secret, int *secret_len, /* Extension context codes */ /* This extension is only allowed in TLS */ -#define SSL_EXT_TLS_ONLY 0x0001 +#define SSL_EXT_TLS_ONLY 0x00001 /* This extension is only allowed in DTLS */ -#define SSL_EXT_DTLS_ONLY 0x0002 +#define SSL_EXT_DTLS_ONLY 0x00002 /* Some extensions may be allowed in DTLS but we don't implement them for it */ -#define SSL_EXT_TLS_IMPLEMENTATION_ONLY 0x0004 +#define SSL_EXT_TLS_IMPLEMENTATION_ONLY 0x00004 /* Most extensions are not defined for SSLv3 but EXT_TYPE_renegotiate is */ -#define SSL_EXT_SSL3_ALLOWED 0x0008 +#define SSL_EXT_SSL3_ALLOWED 0x00008 /* Extension is only defined for TLS1.2 and below */ -#define SSL_EXT_TLS1_2_AND_BELOW_ONLY 0x0010 +#define SSL_EXT_TLS1_2_AND_BELOW_ONLY 0x00010 /* Extension is only defined for TLS1.3 and above */ -#define SSL_EXT_TLS1_3_ONLY 0x0020 +#define SSL_EXT_TLS1_3_ONLY 0x00020 /* Ignore this extension during parsing if we are resuming */ -#define SSL_EXT_IGNORE_ON_RESUMPTION 0x0040 -#define SSL_EXT_CLIENT_HELLO 0x0080 +#define SSL_EXT_IGNORE_ON_RESUMPTION 0x00040 +#define SSL_EXT_CLIENT_HELLO 0x00080 /* Really means TLS1.2 or below */ -#define SSL_EXT_TLS1_2_SERVER_HELLO 0x0100 -#define SSL_EXT_TLS1_3_SERVER_HELLO 0x0200 -#define SSL_EXT_TLS1_3_ENCRYPTED_EXTENSIONS 0x0400 -#define SSL_EXT_TLS1_3_HELLO_RETRY_REQUEST 0x0800 -#define SSL_EXT_TLS1_3_CERTIFICATE 0x1000 -#define SSL_EXT_TLS1_3_NEW_SESSION_TICKET 0x2000 -#define SSL_EXT_TLS1_3_CERTIFICATE_REQUEST 0x4000 +#define SSL_EXT_TLS1_2_SERVER_HELLO 0x00100 +#define SSL_EXT_TLS1_3_SERVER_HELLO 0x00200 +#define SSL_EXT_TLS1_3_ENCRYPTED_EXTENSIONS 0x00400 +#define SSL_EXT_TLS1_3_HELLO_RETRY_REQUEST 0x00800 +#define SSL_EXT_TLS1_3_CERTIFICATE 0x01000 +#define SSL_EXT_TLS1_3_NEW_SESSION_TICKET 0x02000 +#define SSL_EXT_TLS1_3_CERTIFICATE_REQUEST 0x04000 +#define SSL_EXT_TLS1_3_CERTIFICATE_COMPRESSION 0x08000 +/* When sending a raw public key in a certificate message */ +#define SSL_EXT_TLS1_3_RAW_PUBLIC_KEY 0x10000 /* Typedefs for handling custom extensions */ @@ -404,7 +409,7 @@ typedef int (*SSL_async_callback_fn)(SSL *s, void *arg); */ # define SSL_OP_CIPHER_SERVER_PREFERENCE SSL_OP_BIT(22) /* - * If set, a server will allow a client to issue a SSLv3.0 version + * If set, a server will allow a client to issue an SSLv3.0 version * number as latest version supported in the premaster secret, even when * TLSv1.0 (version 3.1) was announced in the client hello. Normally * this is forbidden to prevent version rollback attacks. @@ -430,6 +435,19 @@ typedef int (*SSL_async_callback_fn)(SSL *s, void *arg); * interoperability with CryptoPro CSP 3.x */ # define SSL_OP_CRYPTOPRO_TLSEXT_BUG SSL_OP_BIT(31) +/* + * Disable RFC8879 certificate compression + * SSL_OP_NO_TX_CERTIFICATE_COMPRESSION: don't send compressed certificates, + * and ignore the extension when received. + * SSL_OP_NO_RX_CERTIFICATE_COMPRESSION: don't send the extension, and + * subsequently indicating that receiving is not supported + */ +# define SSL_OP_NO_TX_CERTIFICATE_COMPRESSION SSL_OP_BIT(32) +# define SSL_OP_NO_RX_CERTIFICATE_COMPRESSION SSL_OP_BIT(33) + /* Enable KTLS TX zerocopy on Linux */ +# define SSL_OP_ENABLE_KTLS_TX_ZEROCOPY_SENDFILE SSL_OP_BIT(34) + +#define SSL_OP_PREFER_NO_DHE_KEX SSL_OP_BIT(35) /* * Option "collections." @@ -574,6 +592,8 @@ typedef int (*SSL_async_callback_fn)(SSL *s, void *arg); # define CERT_PKEY_CERT_TYPE 0x400 /* Cert chain suitable to Suite B */ # define CERT_PKEY_SUITEB 0x800 +/* Cert pkey valid for raw public key use */ +# define CERT_PKEY_RPK 0x1000 # define SSL_CONF_FLAG_CMDLINE 0x1 # define SSL_CONF_FLAG_FILE 0x2 @@ -965,6 +985,7 @@ uint32_t SSL_get_recv_max_early_data(const SSL *s); # include /* This is mostly sslv3 with a few tweaks */ # include /* Datagram TLS */ # include /* Support for the use_srtp extension */ +# include #ifdef __cplusplus extern "C" { @@ -1000,32 +1021,6 @@ SKM_DEFINE_STACK_OF_INTERNAL(SSL_CIPHER, const SSL_CIPHER, SSL_CIPHER) #define sk_SSL_CIPHER_dup(sk) ((STACK_OF(SSL_CIPHER) *)OPENSSL_sk_dup(ossl_check_const_SSL_CIPHER_sk_type(sk))) #define sk_SSL_CIPHER_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(SSL_CIPHER) *)OPENSSL_sk_deep_copy(ossl_check_const_SSL_CIPHER_sk_type(sk), ossl_check_SSL_CIPHER_copyfunc_type(copyfunc), ossl_check_SSL_CIPHER_freefunc_type(freefunc))) #define sk_SSL_CIPHER_set_cmp_func(sk, cmp) ((sk_SSL_CIPHER_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_SSL_CIPHER_sk_type(sk), ossl_check_SSL_CIPHER_compfunc_type(cmp))) -SKM_DEFINE_STACK_OF_INTERNAL(SSL_COMP, SSL_COMP, SSL_COMP) -#define sk_SSL_COMP_num(sk) OPENSSL_sk_num(ossl_check_const_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_value(sk, idx) ((SSL_COMP *)OPENSSL_sk_value(ossl_check_const_SSL_COMP_sk_type(sk), (idx))) -#define sk_SSL_COMP_new(cmp) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new(ossl_check_SSL_COMP_compfunc_type(cmp))) -#define sk_SSL_COMP_new_null() ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new_null()) -#define sk_SSL_COMP_new_reserve(cmp, n) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new_reserve(ossl_check_SSL_COMP_compfunc_type(cmp), (n))) -#define sk_SSL_COMP_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_SSL_COMP_sk_type(sk), (n)) -#define sk_SSL_COMP_free(sk) OPENSSL_sk_free(ossl_check_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_zero(sk) OPENSSL_sk_zero(ossl_check_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_delete(sk, i) ((SSL_COMP *)OPENSSL_sk_delete(ossl_check_SSL_COMP_sk_type(sk), (i))) -#define sk_SSL_COMP_delete_ptr(sk, ptr) ((SSL_COMP *)OPENSSL_sk_delete_ptr(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr))) -#define sk_SSL_COMP_push(sk, ptr) OPENSSL_sk_push(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) -#define sk_SSL_COMP_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) -#define sk_SSL_COMP_pop(sk) ((SSL_COMP *)OPENSSL_sk_pop(ossl_check_SSL_COMP_sk_type(sk))) -#define sk_SSL_COMP_shift(sk) ((SSL_COMP *)OPENSSL_sk_shift(ossl_check_SSL_COMP_sk_type(sk))) -#define sk_SSL_COMP_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_SSL_COMP_sk_type(sk),ossl_check_SSL_COMP_freefunc_type(freefunc)) -#define sk_SSL_COMP_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr), (idx)) -#define sk_SSL_COMP_set(sk, idx, ptr) ((SSL_COMP *)OPENSSL_sk_set(ossl_check_SSL_COMP_sk_type(sk), (idx), ossl_check_SSL_COMP_type(ptr))) -#define sk_SSL_COMP_find(sk, ptr) OPENSSL_sk_find(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) -#define sk_SSL_COMP_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) -#define sk_SSL_COMP_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr), pnum) -#define sk_SSL_COMP_sort(sk) OPENSSL_sk_sort(ossl_check_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_dup(sk) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_dup(ossl_check_const_SSL_COMP_sk_type(sk))) -#define sk_SSL_COMP_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_deep_copy(ossl_check_const_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_copyfunc_type(copyfunc), ossl_check_SSL_COMP_freefunc_type(freefunc))) -#define sk_SSL_COMP_set_cmp_func(sk, cmp) ((sk_SSL_COMP_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_compfunc_type(cmp))) /* compatibility */ @@ -1066,6 +1061,7 @@ typedef enum { DTLS_ST_CR_HELLO_VERIFY_REQUEST, TLS_ST_CR_SRVR_HELLO, TLS_ST_CR_CERT, + TLS_ST_CR_COMP_CERT, TLS_ST_CR_CERT_STATUS, TLS_ST_CR_KEY_EXCH, TLS_ST_CR_CERT_REQ, @@ -1075,6 +1071,7 @@ typedef enum { TLS_ST_CR_FINISHED, TLS_ST_CW_CLNT_HELLO, TLS_ST_CW_CERT, + TLS_ST_CW_COMP_CERT, TLS_ST_CW_KEY_EXCH, TLS_ST_CW_CERT_VRFY, TLS_ST_CW_CHANGE, @@ -1085,10 +1082,12 @@ typedef enum { DTLS_ST_SW_HELLO_VERIFY_REQUEST, TLS_ST_SW_SRVR_HELLO, TLS_ST_SW_CERT, + TLS_ST_SW_COMP_CERT, TLS_ST_SW_KEY_EXCH, TLS_ST_SW_CERT_REQ, TLS_ST_SW_SRVR_DONE, TLS_ST_SR_CERT, + TLS_ST_SR_COMP_CERT, TLS_ST_SR_KEY_EXCH, TLS_ST_SR_CERT_VRFY, TLS_ST_SR_NEXT_PROTO, @@ -1380,9 +1379,13 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) # define SSL_CTRL_GET_SIGNATURE_NID 132 # define SSL_CTRL_GET_TMP_KEY 133 # define SSL_CTRL_GET_NEGOTIATED_GROUP 134 +# define SSL_CTRL_GET_IANA_GROUPS 135 # define SSL_CTRL_SET_RETRY_VERIFY 136 # define SSL_CTRL_GET_VERIFY_CERT_STORE 137 # define SSL_CTRL_GET_CHAIN_CERT_STORE 138 +# define SSL_CTRL_GET0_IMPLEMENTED_GROUPS 139 +# define SSL_CTRL_GET_SIGNATURE_NAME 140 +# define SSL_CTRL_GET_PEER_SIGNATURE_NAME 141 # define SSL_CERT_SET_FIRST 1 # define SSL_CERT_SET_NEXT 2 # define SSL_CERT_SET_SERVER 3 @@ -1485,10 +1488,15 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) # define SSL_get1_groups(s, glist) \ SSL_ctrl(s,SSL_CTRL_GET_GROUPS,0,(int*)(glist)) +# define SSL_get0_iana_groups(s, plst) \ + SSL_ctrl(s,SSL_CTRL_GET_IANA_GROUPS,0,(uint16_t **)(plst)) # define SSL_CTX_set1_groups(ctx, glist, glistlen) \ SSL_CTX_ctrl(ctx,SSL_CTRL_SET_GROUPS,glistlen,(int *)(glist)) # define SSL_CTX_set1_groups_list(ctx, s) \ SSL_CTX_ctrl(ctx,SSL_CTRL_SET_GROUPS_LIST,0,(char *)(s)) +# define SSL_CTX_get0_implemented_groups(ctx, all, out) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_GET0_IMPLEMENTED_GROUPS, all, \ + (STACK_OF(OPENSSL_CSTRING) *)(out)) # define SSL_set1_groups(s, glist, glistlen) \ SSL_ctrl(s,SSL_CTRL_SET_GROUPS,glistlen,(char *)(glist)) # define SSL_set1_groups_list(s, str) \ @@ -1520,8 +1528,12 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) (char *)(clist)) # define SSL_set1_client_certificate_types(s, clist, clistlen) \ SSL_ctrl(s,SSL_CTRL_SET_CLIENT_CERT_TYPES,clistlen,(char *)(clist)) +# define SSL_get0_signature_name(s, str) \ + SSL_ctrl(s,SSL_CTRL_GET_SIGNATURE_NAME,0,(1?(str):(const char **)NULL)) # define SSL_get_signature_nid(s, pn) \ SSL_ctrl(s,SSL_CTRL_GET_SIGNATURE_NID,0,pn) +# define SSL_get0_peer_signature_name(s, str) \ + SSL_ctrl(s,SSL_CTRL_GET_PEER_SIGNATURE_NAME,0,(1?(str):(const char **)NULL)) # define SSL_get_peer_signature_nid(s, pn) \ SSL_ctrl(s,SSL_CTRL_GET_PEER_SIGNATURE_NID,0,pn) # define SSL_get_peer_tmp_key(s, pk) \ @@ -1549,6 +1561,7 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) # define SSL_get_max_proto_version(s) \ SSL_ctrl(s, SSL_CTRL_GET_MAX_PROTO_VERSION, 0, NULL) +const char *SSL_get0_group_name(SSL *s); const char *SSL_group_to_name(SSL *s, int id); /* Backwards compatibility, original 1.1.0 names */ @@ -1613,7 +1626,11 @@ void SSL_CTX_set1_cert_store(SSL_CTX *, X509_STORE *); __owur int SSL_want(const SSL *s); __owur int SSL_clear(SSL *s); +#ifndef OPENSSL_NO_DEPRECATED_3_4 +OSSL_DEPRECATEDIN_3_4_FOR("not Y2038-safe, replace with SSL_CTX_flush_sessions_ex()") void SSL_CTX_flush_sessions(SSL_CTX *ctx, long tm); +#endif +void SSL_CTX_flush_sessions_ex(SSL_CTX *ctx, time_t tm); __owur const SSL_CIPHER *SSL_get_current_cipher(const SSL *s); __owur const SSL_CIPHER *SSL_get_pending_cipher(const SSL *s); @@ -1725,13 +1742,21 @@ __owur const char *SSL_state_string(const SSL *s); __owur const char *SSL_rstate_string(const SSL *s); __owur const char *SSL_state_string_long(const SSL *s); __owur const char *SSL_rstate_string_long(const SSL *s); + +#ifndef OPENSSL_NO_DEPRECATED_3_4 +OSSL_DEPRECATEDIN_3_4_FOR("not Y2038-safe, replace with SSL_SESSION_get_time_ex()") __owur long SSL_SESSION_get_time(const SSL_SESSION *s); +OSSL_DEPRECATEDIN_3_4_FOR("not Y2038-safe, replace with SSL_SESSION_set_time_ex()") __owur long SSL_SESSION_set_time(SSL_SESSION *s, long t); +#endif __owur long SSL_SESSION_get_timeout(const SSL_SESSION *s); __owur long SSL_SESSION_set_timeout(SSL_SESSION *s, long t); __owur int SSL_SESSION_get_protocol_version(const SSL_SESSION *s); __owur int SSL_SESSION_set_protocol_version(SSL_SESSION *s, int version); +__owur time_t SSL_SESSION_get_time_ex(const SSL_SESSION *s); +__owur time_t SSL_SESSION_set_time_ex(SSL_SESSION *s, time_t t); + __owur const char *SSL_SESSION_get0_hostname(const SSL_SESSION *s); __owur int SSL_SESSION_set1_hostname(SSL_SESSION *s, const char *hostname); void SSL_SESSION_get0_alpn_selected(const SSL_SESSION *s, @@ -1783,6 +1808,9 @@ __owur int SSL_has_matching_session_id(const SSL *s, unsigned int id_len); SSL_SESSION *d2i_SSL_SESSION(SSL_SESSION **a, const unsigned char **pp, long length); +SSL_SESSION *d2i_SSL_SESSION_ex(SSL_SESSION **a, const unsigned char **pp, + long length, OSSL_LIB_CTX *libctx, + const char *propq); # ifdef OPENSSL_X509_H __owur X509 *SSL_get0_peer_certificate(const SSL *s); @@ -1840,6 +1868,8 @@ __owur int SSL_CTX_set_session_id_context(SSL_CTX *ctx, SSL *SSL_new(SSL_CTX *ctx); int SSL_up_ref(SSL *s); int SSL_is_dtls(const SSL *s); +int SSL_is_tls(const SSL *s); +int SSL_is_quic(const SSL *s); __owur int SSL_set_session_id_context(SSL *ssl, const unsigned char *sid_ctx, unsigned int sid_ctx_len); @@ -1848,8 +1878,8 @@ __owur int SSL_set_purpose(SSL *ssl, int purpose); __owur int SSL_CTX_set_trust(SSL_CTX *ctx, int trust); __owur int SSL_set_trust(SSL *ssl, int trust); -__owur int SSL_set1_host(SSL *s, const char *hostname); -__owur int SSL_add1_host(SSL *s, const char *hostname); +__owur int SSL_set1_host(SSL *s, const char *host); +__owur int SSL_add1_host(SSL *s, const char *host); __owur const char *SSL_get0_peername(SSL *s); void SSL_set_hostflags(SSL *s, unsigned int flags); @@ -1924,6 +1954,11 @@ OSSL_DEPRECATEDIN_3_0 __owur char *SSL_get_srp_userinfo(SSL *s); typedef int (*SSL_client_hello_cb_fn) (SSL *s, int *al, void *arg); void SSL_CTX_set_client_hello_cb(SSL_CTX *c, SSL_client_hello_cb_fn cb, void *arg); +typedef int (*SSL_new_pending_conn_cb_fn) (SSL_CTX *ctx, SSL *new_ssl, + void *arg); +void SSL_CTX_set_new_pending_conn_cb(SSL_CTX *c, SSL_new_pending_conn_cb_fn cb, + void *arg); + int SSL_client_hello_isv2(SSL *s); unsigned int SSL_client_hello_get0_legacy_version(SSL *s); size_t SSL_client_hello_get0_random(SSL *s, const unsigned char **out); @@ -1932,6 +1967,8 @@ size_t SSL_client_hello_get0_ciphers(SSL *s, const unsigned char **out); size_t SSL_client_hello_get0_compression_methods(SSL *s, const unsigned char **out); int SSL_client_hello_get1_extensions_present(SSL *s, int **out, size_t *outlen); +int SSL_client_hello_get_extension_order(SSL *s, uint16_t *exts, + size_t *num_exts); int SSL_client_hello_get0_ext(SSL *s, unsigned int type, const unsigned char **out, size_t *outlen); @@ -1978,6 +2015,12 @@ long SSL_callback_ctrl(SSL *, int, void (*)(void)); long SSL_CTX_ctrl(SSL_CTX *ctx, int cmd, long larg, void *parg); long SSL_CTX_callback_ctrl(SSL_CTX *, int, void (*)(void)); +# define SSL_WRITE_FLAG_CONCLUDE (1U << 0) + +__owur int SSL_write_ex2(SSL *s, const void *buf, size_t num, + uint64_t flags, + size_t *written); + # define SSL_EARLY_DATA_NOT_SENT 0 # define SSL_EARLY_DATA_REJECTED 1 # define SSL_EARLY_DATA_ACCEPTED 2 @@ -1986,6 +2029,7 @@ __owur int SSL_get_early_data_status(const SSL *s); __owur int SSL_get_error(const SSL *s, int ret_code); __owur const char *SSL_get_version(const SSL *s); +__owur int SSL_get_handshake_rtt(const SSL *s, uint64_t *rtt); /* This sets the 'default' SSL version that SSL_new() will create */ # ifndef OPENSSL_NO_DEPRECATED_3_0 @@ -2281,6 +2325,8 @@ void SSL_CTX_set_record_padding_callback(SSL_CTX *ctx, void SSL_CTX_set_record_padding_callback_arg(SSL_CTX *ctx, void *arg); void *SSL_CTX_get_record_padding_callback_arg(const SSL_CTX *ctx); int SSL_CTX_set_block_padding(SSL_CTX *ctx, size_t block_size); +int SSL_CTX_set_block_padding_ex(SSL_CTX *ctx, size_t app_block_size, + size_t hs_block_size); int SSL_set_record_padding_callback(SSL *ssl, size_t (*cb) (SSL *ssl, int type, @@ -2288,12 +2334,255 @@ int SSL_set_record_padding_callback(SSL *ssl, void SSL_set_record_padding_callback_arg(SSL *ssl, void *arg); void *SSL_get_record_padding_callback_arg(const SSL *ssl); int SSL_set_block_padding(SSL *ssl, size_t block_size); - +int SSL_set_block_padding_ex(SSL *ssl, size_t app_block_size, + size_t hs_block_size); int SSL_set_num_tickets(SSL *s, size_t num_tickets); size_t SSL_get_num_tickets(const SSL *s); int SSL_CTX_set_num_tickets(SSL_CTX *ctx, size_t num_tickets); size_t SSL_CTX_get_num_tickets(const SSL_CTX *ctx); +/* QUIC support */ +int SSL_handle_events(SSL *s); +__owur int SSL_get_event_timeout(SSL *s, struct timeval *tv, int *is_infinite); +__owur int SSL_get_rpoll_descriptor(SSL *s, BIO_POLL_DESCRIPTOR *desc); +__owur int SSL_get_wpoll_descriptor(SSL *s, BIO_POLL_DESCRIPTOR *desc); +__owur int SSL_net_read_desired(SSL *s); +__owur int SSL_net_write_desired(SSL *s); +__owur int SSL_set_blocking_mode(SSL *s, int blocking); +__owur int SSL_get_blocking_mode(SSL *s); +__owur int SSL_set1_initial_peer_addr(SSL *s, const BIO_ADDR *peer_addr); +__owur SSL *SSL_get0_connection(SSL *s); +__owur int SSL_is_connection(SSL *s); + +__owur int SSL_is_listener(SSL *ssl); +__owur SSL *SSL_get0_listener(SSL *s); +#define SSL_LISTENER_FLAG_NO_VALIDATE (1UL << 1) +__owur SSL *SSL_new_listener(SSL_CTX *ctx, uint64_t flags); +__owur SSL *SSL_new_listener_from(SSL *ssl, uint64_t flags); +__owur SSL *SSL_new_from_listener(SSL *ssl, uint64_t flags); +#define SSL_ACCEPT_CONNECTION_NO_BLOCK (1UL << 0) +__owur SSL *SSL_accept_connection(SSL *ssl, uint64_t flags); +__owur size_t SSL_get_accept_connection_queue_len(SSL *ssl); +__owur int SSL_listen(SSL *ssl); + +__owur int SSL_is_domain(SSL *s); +__owur SSL *SSL_get0_domain(SSL *s); +__owur SSL *SSL_new_domain(SSL_CTX *ctx, uint64_t flags); + +#define SSL_DOMAIN_FLAG_SINGLE_THREAD (1U << 0) +#define SSL_DOMAIN_FLAG_MULTI_THREAD (1U << 1) +#define SSL_DOMAIN_FLAG_THREAD_ASSISTED (1U << 2) +#define SSL_DOMAIN_FLAG_BLOCKING (1U << 3) +#define SSL_DOMAIN_FLAG_LEGACY_BLOCKING (1U << 4) + +__owur int SSL_CTX_set_domain_flags(SSL_CTX *ctx, uint64_t domain_flags); +__owur int SSL_CTX_get_domain_flags(const SSL_CTX *ctx, uint64_t *domain_flags); +__owur int SSL_get_domain_flags(const SSL *ssl, uint64_t *domain_flags); + +#define SSL_STREAM_TYPE_NONE 0 +#define SSL_STREAM_TYPE_READ (1U << 0) +#define SSL_STREAM_TYPE_WRITE (1U << 1) +#define SSL_STREAM_TYPE_BIDI (SSL_STREAM_TYPE_READ | SSL_STREAM_TYPE_WRITE) +__owur int SSL_get_stream_type(SSL *s); + +__owur uint64_t SSL_get_stream_id(SSL *s); +__owur int SSL_is_stream_local(SSL *s); + +#define SSL_DEFAULT_STREAM_MODE_NONE 0 +#define SSL_DEFAULT_STREAM_MODE_AUTO_BIDI 1 +#define SSL_DEFAULT_STREAM_MODE_AUTO_UNI 2 +__owur int SSL_set_default_stream_mode(SSL *s, uint32_t mode); + +#define SSL_STREAM_FLAG_UNI (1U << 0) +#define SSL_STREAM_FLAG_NO_BLOCK (1U << 1) +#define SSL_STREAM_FLAG_ADVANCE (1U << 2) +__owur SSL *SSL_new_stream(SSL *s, uint64_t flags); + +#define SSL_INCOMING_STREAM_POLICY_AUTO 0 +#define SSL_INCOMING_STREAM_POLICY_ACCEPT 1 +#define SSL_INCOMING_STREAM_POLICY_REJECT 2 +__owur int SSL_set_incoming_stream_policy(SSL *s, int policy, uint64_t aec); + +#define SSL_ACCEPT_STREAM_NO_BLOCK (1U << 0) +__owur SSL *SSL_accept_stream(SSL *s, uint64_t flags); +__owur size_t SSL_get_accept_stream_queue_len(SSL *s); + +# ifndef OPENSSL_NO_QUIC +__owur int SSL_inject_net_dgram(SSL *s, const unsigned char *buf, + size_t buf_len, + const BIO_ADDR *peer, + const BIO_ADDR *local); +# endif + +typedef struct ssl_shutdown_ex_args_st { + uint64_t quic_error_code; + const char *quic_reason; +} SSL_SHUTDOWN_EX_ARGS; + +#define SSL_SHUTDOWN_FLAG_RAPID (1U << 0) +#define SSL_SHUTDOWN_FLAG_NO_STREAM_FLUSH (1U << 1) +#define SSL_SHUTDOWN_FLAG_NO_BLOCK (1U << 2) +#define SSL_SHUTDOWN_FLAG_WAIT_PEER (1U << 3) + +__owur int SSL_shutdown_ex(SSL *ssl, uint64_t flags, + const SSL_SHUTDOWN_EX_ARGS *args, + size_t args_len); + +__owur int SSL_stream_conclude(SSL *ssl, uint64_t flags); + +typedef struct ssl_stream_reset_args_st { + uint64_t quic_error_code; +} SSL_STREAM_RESET_ARGS; + +__owur int SSL_stream_reset(SSL *ssl, + const SSL_STREAM_RESET_ARGS *args, + size_t args_len); + +#define SSL_STREAM_STATE_NONE 0 +#define SSL_STREAM_STATE_OK 1 +#define SSL_STREAM_STATE_WRONG_DIR 2 +#define SSL_STREAM_STATE_FINISHED 3 +#define SSL_STREAM_STATE_RESET_LOCAL 4 +#define SSL_STREAM_STATE_RESET_REMOTE 5 +#define SSL_STREAM_STATE_CONN_CLOSED 6 +__owur int SSL_get_stream_read_state(SSL *ssl); +__owur int SSL_get_stream_write_state(SSL *ssl); + +__owur int SSL_get_stream_read_error_code(SSL *ssl, uint64_t *app_error_code); +__owur int SSL_get_stream_write_error_code(SSL *ssl, uint64_t *app_error_code); + +#define SSL_CONN_CLOSE_FLAG_LOCAL (1U << 0) +#define SSL_CONN_CLOSE_FLAG_TRANSPORT (1U << 1) + +typedef struct ssl_conn_close_info_st { + uint64_t error_code, frame_type; + const char *reason; + size_t reason_len; + uint32_t flags; +} SSL_CONN_CLOSE_INFO; + +__owur int SSL_get_conn_close_info(SSL *ssl, + SSL_CONN_CLOSE_INFO *info, + size_t info_len); + +# define SSL_VALUE_CLASS_GENERIC 0 +# define SSL_VALUE_CLASS_FEATURE_REQUEST 1 +# define SSL_VALUE_CLASS_FEATURE_PEER_REQUEST 2 +# define SSL_VALUE_CLASS_FEATURE_NEGOTIATED 3 + +# define SSL_VALUE_NONE 0 +# define SSL_VALUE_QUIC_STREAM_BIDI_LOCAL_AVAIL 1 +# define SSL_VALUE_QUIC_STREAM_BIDI_REMOTE_AVAIL 2 +# define SSL_VALUE_QUIC_STREAM_UNI_LOCAL_AVAIL 3 +# define SSL_VALUE_QUIC_STREAM_UNI_REMOTE_AVAIL 4 +# define SSL_VALUE_QUIC_IDLE_TIMEOUT 5 +# define SSL_VALUE_EVENT_HANDLING_MODE 6 +# define SSL_VALUE_STREAM_WRITE_BUF_SIZE 7 +# define SSL_VALUE_STREAM_WRITE_BUF_USED 8 +# define SSL_VALUE_STREAM_WRITE_BUF_AVAIL 9 + +# define SSL_VALUE_EVENT_HANDLING_MODE_INHERIT 0 +# define SSL_VALUE_EVENT_HANDLING_MODE_IMPLICIT 1 +# define SSL_VALUE_EVENT_HANDLING_MODE_EXPLICIT 2 + +int SSL_get_value_uint(SSL *s, uint32_t class_, uint32_t id, uint64_t *v); +int SSL_set_value_uint(SSL *s, uint32_t class_, uint32_t id, uint64_t v); + +# define SSL_get_generic_value_uint(ssl, id, v) \ + SSL_get_value_uint((ssl), SSL_VALUE_CLASS_GENERIC, (id), (v)) +# define SSL_set_generic_value_uint(ssl, id, v) \ + SSL_set_value_uint((ssl), SSL_VALUE_CLASS_GENERIC, (id), (v)) +# define SSL_get_feature_request_uint(ssl, id, v) \ + SSL_get_value_uint((ssl), SSL_VALUE_CLASS_FEATURE_REQUEST, (id), (v)) +# define SSL_set_feature_request_uint(ssl, id, v) \ + SSL_set_value_uint((ssl), SSL_VALUE_CLASS_FEATURE_REQUEST, (id), (v)) +# define SSL_get_feature_peer_request_uint(ssl, id, v) \ + SSL_get_value_uint((ssl), SSL_VALUE_CLASS_FEATURE_PEER_REQUEST, (id), (v)) +# define SSL_get_feature_negotiated_uint(ssl, id, v) \ + SSL_get_value_uint((ssl), SSL_VALUE_CLASS_FEATURE_NEGOTIATED, (id), (v)) + +# define SSL_get_quic_stream_bidi_local_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_QUIC_STREAM_BIDI_LOCAL_AVAIL, \ + (value)) +# define SSL_get_quic_stream_bidi_remote_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_QUIC_STREAM_BIDI_REMOTE_AVAIL, \ + (value)) +# define SSL_get_quic_stream_uni_local_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_QUIC_STREAM_UNI_LOCAL_AVAIL, \ + (value)) +# define SSL_get_quic_stream_uni_remote_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_QUIC_STREAM_UNI_REMOTE_AVAIL, \ + (value)) + +# define SSL_get_event_handling_mode(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_EVENT_HANDLING_MODE, \ + (value)) +# define SSL_set_event_handling_mode(ssl, value) \ + SSL_set_generic_value_uint((ssl), SSL_VALUE_EVENT_HANDLING_MODE, \ + (value)) + +# define SSL_get_stream_write_buf_size(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_STREAM_WRITE_BUF_SIZE, \ + (value)) +# define SSL_get_stream_write_buf_used(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_STREAM_WRITE_BUF_USED, \ + (value)) +# define SSL_get_stream_write_buf_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_STREAM_WRITE_BUF_AVAIL, \ + (value)) + +# define SSL_POLL_EVENT_NONE 0 + +# define SSL_POLL_EVENT_F (1U << 0) /* F (Failure) */ +# define SSL_POLL_EVENT_EL (1U << 1) /* EL (Exception on Listener) */ +# define SSL_POLL_EVENT_EC (1U << 2) /* EC (Exception on Conn) */ +# define SSL_POLL_EVENT_ECD (1U << 3) /* ECD (Exception on Conn Drained) */ +# define SSL_POLL_EVENT_ER (1U << 4) /* ER (Exception on Read) */ +# define SSL_POLL_EVENT_EW (1U << 5) /* EW (Exception on Write) */ +# define SSL_POLL_EVENT_R (1U << 6) /* R (Readable) */ +# define SSL_POLL_EVENT_W (1U << 7) /* W (Writable) */ +# define SSL_POLL_EVENT_IC (1U << 8) /* IC (Incoming Connection) */ +# define SSL_POLL_EVENT_ISB (1U << 9) /* ISB (Incoming Stream: Bidi) */ +# define SSL_POLL_EVENT_ISU (1U << 10) /* ISU (Incoming Stream: Uni) */ +# define SSL_POLL_EVENT_OSB (1U << 11) /* OSB (Outgoing Stream: Bidi) */ +# define SSL_POLL_EVENT_OSU (1U << 12) /* OSU (Outgoing Stream: Uni) */ + +# define SSL_POLL_EVENT_RW (SSL_POLL_EVENT_R | SSL_POLL_EVENT_W) +# define SSL_POLL_EVENT_RE (SSL_POLL_EVENT_R | SSL_POLL_EVENT_ER) +# define SSL_POLL_EVENT_WE (SSL_POLL_EVENT_W | SSL_POLL_EVENT_EW) +# define SSL_POLL_EVENT_RWE (SSL_POLL_EVENT_RE | SSL_POLL_EVENT_WE) +# define SSL_POLL_EVENT_E (SSL_POLL_EVENT_EL | SSL_POLL_EVENT_EC \ + | SSL_POLL_EVENT_ER | SSL_POLL_EVENT_EW) +# define SSL_POLL_EVENT_IS (SSL_POLL_EVENT_ISB | SSL_POLL_EVENT_ISU) +# define SSL_POLL_EVENT_ISE (SSL_POLL_EVENT_IS | SSL_POLL_EVENT_EC) +# define SSL_POLL_EVENT_I (SSL_POLL_EVENT_IS | SSL_POLL_EVENT_IC) +# define SSL_POLL_EVENT_OS (SSL_POLL_EVENT_OSB | SSL_POLL_EVENT_OSU) +# define SSL_POLL_EVENT_OSE (SSL_POLL_EVENT_OS | SSL_POLL_EVENT_EC) + +typedef struct ssl_poll_item_st { + BIO_POLL_DESCRIPTOR desc; + uint64_t events, revents; +} SSL_POLL_ITEM; + +# define SSL_POLL_FLAG_NO_HANDLE_EVENTS (1U << 0) + +__owur int SSL_poll(SSL_POLL_ITEM *items, + size_t num_items, + size_t stride, + const struct timeval *timeout, + uint64_t flags, + size_t *result_count); + +static ossl_inline ossl_unused BIO_POLL_DESCRIPTOR +SSL_as_poll_descriptor(SSL *s) +{ + BIO_POLL_DESCRIPTOR d; + + d.type = BIO_POLL_DESCRIPTOR_TYPE_SSL; + d.value.ssl = s; + return d; +} + # ifndef OPENSSL_NO_DEPRECATED_1_1_0 # define SSL_cache_hit(s) SSL_session_reused(s) # endif @@ -2593,6 +2882,51 @@ void SSL_set_allow_early_data_cb(SSL *s, const char *OSSL_default_cipher_list(void); const char *OSSL_default_ciphersuites(void); +/* RFC8879 Certificate compression APIs */ + +int SSL_CTX_compress_certs(SSL_CTX *ctx, int alg); +int SSL_compress_certs(SSL *ssl, int alg); + +int SSL_CTX_set1_cert_comp_preference(SSL_CTX *ctx, int *algs, size_t len); +int SSL_set1_cert_comp_preference(SSL *ssl, int *algs, size_t len); + +int SSL_CTX_set1_compressed_cert(SSL_CTX *ctx, int algorithm, unsigned char *comp_data, + size_t comp_length, size_t orig_length); +int SSL_set1_compressed_cert(SSL *ssl, int algorithm, unsigned char *comp_data, + size_t comp_length, size_t orig_length); +size_t SSL_CTX_get1_compressed_cert(SSL_CTX *ctx, int alg, unsigned char **data, size_t *orig_len); +size_t SSL_get1_compressed_cert(SSL *ssl, int alg, unsigned char **data, size_t *orig_len); + +__owur int SSL_add_expected_rpk(SSL *s, EVP_PKEY *rpk); +__owur EVP_PKEY *SSL_get0_peer_rpk(const SSL *s); +__owur EVP_PKEY *SSL_SESSION_get0_peer_rpk(SSL_SESSION *s); +__owur int SSL_get_negotiated_client_cert_type(const SSL *s); +__owur int SSL_get_negotiated_server_cert_type(const SSL *s); + +__owur int SSL_set1_client_cert_type(SSL *s, const unsigned char *val, size_t len); +__owur int SSL_set1_server_cert_type(SSL *s, const unsigned char *val, size_t len); +__owur int SSL_CTX_set1_client_cert_type(SSL_CTX *ctx, const unsigned char *val, size_t len); +__owur int SSL_CTX_set1_server_cert_type(SSL_CTX *ctx, const unsigned char *val, size_t len); +__owur int SSL_get0_client_cert_type(const SSL *s, unsigned char **t, size_t *len); +__owur int SSL_get0_server_cert_type(const SSL *s, unsigned char **t, size_t *len); +__owur int SSL_CTX_get0_client_cert_type(const SSL_CTX *ctx, unsigned char **t, size_t *len); +__owur int SSL_CTX_get0_server_cert_type(const SSL_CTX *s, unsigned char **t, size_t *len); + +/* + * Protection level. For <= TLSv1.2 only "NONE" and "APPLICATION" are used. + */ +# define OSSL_RECORD_PROTECTION_LEVEL_NONE 0 +# define OSSL_RECORD_PROTECTION_LEVEL_EARLY 1 +# define OSSL_RECORD_PROTECTION_LEVEL_HANDSHAKE 2 +# define OSSL_RECORD_PROTECTION_LEVEL_APPLICATION 3 + +int SSL_set_quic_tls_cbs(SSL *s, const OSSL_DISPATCH *qtdis, void *arg); +int SSL_set_quic_tls_transport_params(SSL *s, + const unsigned char *params, + size_t params_len); + +int SSL_set_quic_tls_early_data_enabled(SSL *s, int enabled); + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/BSD-x86_64/no-asm/include/openssl/x509.h b/deps/openssl/config/archs/BSD-x86_64/no-asm/include/openssl/x509.h index 1f7755e5b69c75..d013458c226461 100644 --- a/deps/openssl/config/archs/BSD-x86_64/no-asm/include/openssl/x509.h +++ b/deps/openssl/config/archs/BSD-x86_64/no-asm/include/openssl/x509.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/x509.h.in * - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2024 The OpenSSL Project Authors. All Rights Reserved. * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved * * Licensed under the Apache License 2.0 (the "License"). You may not use @@ -40,6 +40,9 @@ # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -162,16 +165,24 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_CRL, X509_CRL, X509_CRL) # define X509_FILETYPE_ASN1 2 # define X509_FILETYPE_DEFAULT 3 -# define X509v3_KU_DIGITAL_SIGNATURE 0x0080 -# define X509v3_KU_NON_REPUDIATION 0x0040 -# define X509v3_KU_KEY_ENCIPHERMENT 0x0020 -# define X509v3_KU_DATA_ENCIPHERMENT 0x0010 -# define X509v3_KU_KEY_AGREEMENT 0x0008 -# define X509v3_KU_KEY_CERT_SIGN 0x0004 -# define X509v3_KU_CRL_SIGN 0x0002 -# define X509v3_KU_ENCIPHER_ONLY 0x0001 -# define X509v3_KU_DECIPHER_ONLY 0x8000 -# define X509v3_KU_UNDEF 0xffff +/*- + * : + * The KeyUsage BITSTRING is treated as a little-endian integer, hence bit `0` + * is 0x80, while bit `7` is 0x01 (the LSB of the integer value), bit `8` is + * then the MSB of the second octet, or 0x8000. + */ +# define X509v3_KU_DIGITAL_SIGNATURE 0x0080 /* (0) */ +# define X509v3_KU_NON_REPUDIATION 0x0040 /* (1) */ +# define X509v3_KU_KEY_ENCIPHERMENT 0x0020 /* (2) */ +# define X509v3_KU_DATA_ENCIPHERMENT 0x0010 /* (3) */ +# define X509v3_KU_KEY_AGREEMENT 0x0008 /* (4) */ +# define X509v3_KU_KEY_CERT_SIGN 0x0004 /* (5) */ +# define X509v3_KU_CRL_SIGN 0x0002 /* (6) */ +# define X509v3_KU_ENCIPHER_ONLY 0x0001 /* (7) */ +# define X509v3_KU_DECIPHER_ONLY 0x8000 /* (8) */ +# ifndef OPENSSL_NO_DEPRECATED_3_4 +# define X509v3_KU_UNDEF 0xffff /* vestigial, not used */ +# endif struct X509_algor_st { ASN1_OBJECT *algorithm; @@ -462,7 +473,12 @@ typedef struct PBKDF2PARAM_st { X509_ALGOR *prf; } PBKDF2PARAM; -#ifndef OPENSSL_NO_SCRYPT +typedef struct { + X509_ALGOR *keyDerivationFunc; + X509_ALGOR *messageAuthScheme; +} PBMAC1PARAM; + +# ifndef OPENSSL_NO_SCRYPT typedef struct SCRYPT_PARAMS_st { ASN1_OCTET_STRING *salt; ASN1_INTEGER *costParameter; @@ -470,7 +486,7 @@ typedef struct SCRYPT_PARAMS_st { ASN1_INTEGER *parallelizationParameter; ASN1_INTEGER *keyLength; } SCRYPT_PARAMS; -#endif +# endif #ifdef __cplusplus } @@ -603,6 +619,8 @@ EVP_PKEY *d2i_PrivateKey_ex_fp(FILE *fp, EVP_PKEY **a, OSSL_LIB_CTX *libctx, const char *propq); EVP_PKEY *d2i_PrivateKey_fp(FILE *fp, EVP_PKEY **a); int i2d_PUBKEY_fp(FILE *fp, const EVP_PKEY *pkey); +EVP_PKEY *d2i_PUBKEY_ex_fp(FILE *fp, EVP_PKEY **a, OSSL_LIB_CTX *libctx, + const char *propq); EVP_PKEY *d2i_PUBKEY_fp(FILE *fp, EVP_PKEY **a); # endif @@ -651,6 +669,8 @@ EVP_PKEY *d2i_PrivateKey_ex_bio(BIO *bp, EVP_PKEY **a, OSSL_LIB_CTX *libctx, const char *propq); EVP_PKEY *d2i_PrivateKey_bio(BIO *bp, EVP_PKEY **a); int i2d_PUBKEY_bio(BIO *bp, const EVP_PKEY *pkey); +EVP_PKEY *d2i_PUBKEY_ex_bio(BIO *bp, EVP_PKEY **a, OSSL_LIB_CTX *libctx, + const char *propq); EVP_PKEY *d2i_PUBKEY_bio(BIO *bp, EVP_PKEY **a); DECLARE_ASN1_DUP_FUNCTION(X509) @@ -884,12 +904,12 @@ int X509_REQ_get_signature_nid(const X509_REQ *req); int i2d_re_X509_REQ_tbs(X509_REQ *req, unsigned char **pp); int X509_REQ_set_pubkey(X509_REQ *x, EVP_PKEY *pkey); EVP_PKEY *X509_REQ_get_pubkey(X509_REQ *req); -EVP_PKEY *X509_REQ_get0_pubkey(X509_REQ *req); +EVP_PKEY *X509_REQ_get0_pubkey(const X509_REQ *req); X509_PUBKEY *X509_REQ_get_X509_PUBKEY(X509_REQ *req); int X509_REQ_extension_nid(int nid); int *X509_REQ_get_extension_nids(void); void X509_REQ_set_extension_nids(int *nids); -STACK_OF(X509_EXTENSION) *X509_REQ_get_extensions(X509_REQ *req); +STACK_OF(X509_EXTENSION) *X509_REQ_get_extensions(OSSL_FUTURE_CONST X509_REQ *req); int X509_REQ_add_extensions_nid(X509_REQ *req, const STACK_OF(X509_EXTENSION) *exts, int nid); int X509_REQ_add_extensions(X509_REQ *req, const STACK_OF(X509_EXTENSION) *ext); @@ -950,13 +970,14 @@ X509_REVOKED_get0_extensions(const X509_REVOKED *r); X509_CRL *X509_CRL_diff(X509_CRL *base, X509_CRL *newer, EVP_PKEY *skey, const EVP_MD *md, unsigned int flags); -int X509_REQ_check_private_key(X509_REQ *x509, EVP_PKEY *pkey); +int X509_REQ_check_private_key(const X509_REQ *req, EVP_PKEY *pkey); -int X509_check_private_key(const X509 *x509, const EVP_PKEY *pkey); +int X509_check_private_key(const X509 *cert, const EVP_PKEY *pkey); int X509_chain_check_suiteb(int *perror_depth, X509 *x, STACK_OF(X509) *chain, unsigned long flags); int X509_CRL_check_suiteb(X509_CRL *crl, EVP_PKEY *pk, unsigned long flags); +void OSSL_STACK_OF_X509_free(STACK_OF(X509) *certs); STACK_OF(X509) *X509_chain_up_ref(STACK_OF(X509) *chain); int X509_issuer_and_serial_cmp(const X509 *a, const X509 *b); @@ -1077,6 +1098,8 @@ X509_EXTENSION *X509v3_get_ext(const STACK_OF(X509_EXTENSION) *x, int loc); X509_EXTENSION *X509v3_delete_ext(STACK_OF(X509_EXTENSION) *x, int loc); STACK_OF(X509_EXTENSION) *X509v3_add_ext(STACK_OF(X509_EXTENSION) **x, X509_EXTENSION *ex, int loc); +STACK_OF(X509_EXTENSION) *X509v3_add_extensions(STACK_OF(X509_EXTENSION) **target, + const STACK_OF(X509_EXTENSION) *exts); int X509_get_ext_count(const X509 *x); int X509_get_ext_by_NID(const X509 *x, int nid, int lastpos); @@ -1198,9 +1221,10 @@ X509 *X509_find_by_subject(STACK_OF(X509) *sk, const X509_NAME *name); DECLARE_ASN1_FUNCTIONS(PBEPARAM) DECLARE_ASN1_FUNCTIONS(PBE2PARAM) DECLARE_ASN1_FUNCTIONS(PBKDF2PARAM) -#ifndef OPENSSL_NO_SCRYPT +DECLARE_ASN1_FUNCTIONS(PBMAC1PARAM) +# ifndef OPENSSL_NO_SCRYPT DECLARE_ASN1_FUNCTIONS(SCRYPT_PARAMS) -#endif +# endif int PKCS5_pbe_set0_algor(X509_ALGOR *algor, int alg, int iter, const unsigned char *salt, int saltlen); @@ -1237,6 +1261,7 @@ X509_ALGOR *PKCS5_pbkdf2_set_ex(int iter, unsigned char *salt, int saltlen, int prf_nid, int keylen, OSSL_LIB_CTX *libctx); +PBKDF2PARAM *PBMAC1_get1_pbkdf2_param(const X509_ALGOR *macalg); /* PKCS#8 utilities */ DECLARE_ASN1_FUNCTIONS(PKCS8_PRIV_KEY_INFO) @@ -1262,6 +1287,8 @@ int PKCS8_pkey_add1_attr_by_OBJ(PKCS8_PRIV_KEY_INFO *p8, const ASN1_OBJECT *obj, int type, const unsigned char *bytes, int len); +void X509_PUBKEY_set0_public_key(X509_PUBKEY *pub, + unsigned char *penc, int penclen); int X509_PUBKEY_set0_param(X509_PUBKEY *pub, ASN1_OBJECT *aobj, int ptype, void *pval, unsigned char *penc, int penclen); diff --git a/deps/openssl/config/archs/BSD-x86_64/no-asm/include/openssl/x509_acert.h b/deps/openssl/config/archs/BSD-x86_64/no-asm/include/openssl/x509_acert.h new file mode 100644 index 00000000000000..9dde625677f9a9 --- /dev/null +++ b/deps/openssl/config/archs/BSD-x86_64/no-asm/include/openssl/x509_acert.h @@ -0,0 +1,294 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from include/openssl/x509_acert.h.in + * + * Copyright 2022-2024 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + + +#ifndef OPENSSL_X509_ACERT_H +# define OPENSSL_X509_ACERT_H +# pragma once + +# include +# include +# include + +typedef struct X509_acert_st X509_ACERT; +typedef struct X509_acert_info_st X509_ACERT_INFO; +typedef struct ossl_object_digest_info_st OSSL_OBJECT_DIGEST_INFO; +typedef struct ossl_issuer_serial_st OSSL_ISSUER_SERIAL; +typedef struct X509_acert_issuer_v2form_st X509_ACERT_ISSUER_V2FORM; + +DECLARE_ASN1_FUNCTIONS(X509_ACERT) +DECLARE_ASN1_DUP_FUNCTION(X509_ACERT) +DECLARE_ASN1_ITEM(X509_ACERT_INFO) +DECLARE_ASN1_ALLOC_FUNCTIONS(X509_ACERT_INFO) +DECLARE_ASN1_ALLOC_FUNCTIONS(OSSL_OBJECT_DIGEST_INFO) +DECLARE_ASN1_ALLOC_FUNCTIONS(OSSL_ISSUER_SERIAL) +DECLARE_ASN1_ALLOC_FUNCTIONS(X509_ACERT_ISSUER_V2FORM) + +# ifndef OPENSSL_NO_STDIO +X509_ACERT *d2i_X509_ACERT_fp(FILE *fp, X509_ACERT **acert); +int i2d_X509_ACERT_fp(FILE *fp, const X509_ACERT *acert); +# endif + +DECLARE_PEM_rw(X509_ACERT, X509_ACERT) + +X509_ACERT *d2i_X509_ACERT_bio(BIO *bp, X509_ACERT **acert); +int i2d_X509_ACERT_bio(BIO *bp, const X509_ACERT *acert); + +int X509_ACERT_sign(X509_ACERT *x, EVP_PKEY *pkey, const EVP_MD *md); +int X509_ACERT_sign_ctx(X509_ACERT *x, EVP_MD_CTX *ctx); +int X509_ACERT_verify(X509_ACERT *a, EVP_PKEY *r); + +# define X509_ACERT_VERSION_2 1 + +const GENERAL_NAMES *X509_ACERT_get0_holder_entityName(const X509_ACERT *x); +const OSSL_ISSUER_SERIAL *X509_ACERT_get0_holder_baseCertId(const X509_ACERT *x); +const OSSL_OBJECT_DIGEST_INFO * X509_ACERT_get0_holder_digest(const X509_ACERT *x); +const X509_NAME *X509_ACERT_get0_issuerName(const X509_ACERT *x); +long X509_ACERT_get_version(const X509_ACERT *x); +void X509_ACERT_get0_signature(const X509_ACERT *x, + const ASN1_BIT_STRING **psig, + const X509_ALGOR **palg); +int X509_ACERT_get_signature_nid(const X509_ACERT *x); +const X509_ALGOR *X509_ACERT_get0_info_sigalg(const X509_ACERT *x); +const ASN1_INTEGER *X509_ACERT_get0_serialNumber(const X509_ACERT *x); +const ASN1_TIME *X509_ACERT_get0_notBefore(const X509_ACERT *x); +const ASN1_TIME *X509_ACERT_get0_notAfter(const X509_ACERT *x); +const ASN1_BIT_STRING *X509_ACERT_get0_issuerUID(const X509_ACERT *x); + +int X509_ACERT_print(BIO *bp, X509_ACERT *x); +int X509_ACERT_print_ex(BIO *bp, X509_ACERT *x, unsigned long nmflags, + unsigned long cflag); + +int X509_ACERT_get_attr_count(const X509_ACERT *x); +int X509_ACERT_get_attr_by_NID(const X509_ACERT *x, int nid, int lastpos); +int X509_ACERT_get_attr_by_OBJ(const X509_ACERT *x, const ASN1_OBJECT *obj, + int lastpos); +X509_ATTRIBUTE *X509_ACERT_get_attr(const X509_ACERT *x, int loc); +X509_ATTRIBUTE *X509_ACERT_delete_attr(X509_ACERT *x, int loc); + +void *X509_ACERT_get_ext_d2i(const X509_ACERT *x, int nid, int *crit, int *idx); +int X509_ACERT_add1_ext_i2d(X509_ACERT *x, int nid, void *value, int crit, + unsigned long flags); +const STACK_OF(X509_EXTENSION) *X509_ACERT_get0_extensions(const X509_ACERT *x); + +# define OSSL_OBJECT_DIGEST_INFO_PUBLIC_KEY 0 +# define OSSL_OBJECT_DIGEST_INFO_PUBLIC_KEY_CERT 1 +# define OSSL_OBJECT_DIGEST_INFO_OTHER 2 /* must not be used in RFC 5755 profile */ +int X509_ACERT_set_version(X509_ACERT *x, long version); +void X509_ACERT_set0_holder_entityName(X509_ACERT *x, GENERAL_NAMES *name); +void X509_ACERT_set0_holder_baseCertId(X509_ACERT *x, OSSL_ISSUER_SERIAL *isss); +void X509_ACERT_set0_holder_digest(X509_ACERT *x, + OSSL_OBJECT_DIGEST_INFO *dinfo); + +int X509_ACERT_add1_attr(X509_ACERT *x, X509_ATTRIBUTE *attr); +int X509_ACERT_add1_attr_by_OBJ(X509_ACERT *x, const ASN1_OBJECT *obj, + int type, const void *bytes, int len); +int X509_ACERT_add1_attr_by_NID(X509_ACERT *x, int nid, int type, + const void *bytes, int len); +int X509_ACERT_add1_attr_by_txt(X509_ACERT *x, const char *attrname, int type, + const unsigned char *bytes, int len); +int X509_ACERT_add_attr_nconf(CONF *conf, const char *section, + X509_ACERT *acert); + +int X509_ACERT_set1_issuerName(X509_ACERT *x, const X509_NAME *name); +int X509_ACERT_set1_serialNumber(X509_ACERT *x, const ASN1_INTEGER *serial); +int X509_ACERT_set1_notBefore(X509_ACERT *x, const ASN1_GENERALIZEDTIME *time); +int X509_ACERT_set1_notAfter(X509_ACERT *x, const ASN1_GENERALIZEDTIME *time); + +void OSSL_OBJECT_DIGEST_INFO_get0_digest(const OSSL_OBJECT_DIGEST_INFO *o, + int *digestedObjectType, + const X509_ALGOR **digestAlgorithm, + const ASN1_BIT_STRING **digest); + +int OSSL_OBJECT_DIGEST_INFO_set1_digest(OSSL_OBJECT_DIGEST_INFO *o, + int digestedObjectType, + X509_ALGOR *digestAlgorithm, + ASN1_BIT_STRING *digest); + +const X509_NAME *OSSL_ISSUER_SERIAL_get0_issuer(const OSSL_ISSUER_SERIAL *isss); +const ASN1_INTEGER *OSSL_ISSUER_SERIAL_get0_serial(const OSSL_ISSUER_SERIAL *isss); +const ASN1_BIT_STRING *OSSL_ISSUER_SERIAL_get0_issuerUID(const OSSL_ISSUER_SERIAL *isss); + +int OSSL_ISSUER_SERIAL_set1_issuer(OSSL_ISSUER_SERIAL *isss, + const X509_NAME *issuer); +int OSSL_ISSUER_SERIAL_set1_serial(OSSL_ISSUER_SERIAL *isss, + const ASN1_INTEGER *serial); +int OSSL_ISSUER_SERIAL_set1_issuerUID(OSSL_ISSUER_SERIAL *isss, + const ASN1_BIT_STRING *uid); + +# define OSSL_IETFAS_OCTETS 0 +# define OSSL_IETFAS_OID 1 +# define OSSL_IETFAS_STRING 2 + +typedef struct OSSL_IETF_ATTR_SYNTAX_VALUE_st OSSL_IETF_ATTR_SYNTAX_VALUE; +typedef struct OSSL_IETF_ATTR_SYNTAX_st OSSL_IETF_ATTR_SYNTAX; +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_IETF_ATTR_SYNTAX_VALUE, OSSL_IETF_ATTR_SYNTAX_VALUE, OSSL_IETF_ATTR_SYNTAX_VALUE) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_value(sk, idx) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_value(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), (idx))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_new(cmp) ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_new(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_compfunc_type(cmp))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_new_null() ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_new_null()) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_new_reserve(cmp, n) ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_compfunc_type(cmp), (n))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), (n)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_free(sk) OPENSSL_sk_free(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_delete(sk, i) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_delete(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), (i))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_delete_ptr(sk, ptr) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_pop(sk) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_pop(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_shift(sk) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_shift(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk),ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_freefunc_type(freefunc)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr), (idx)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_set(sk, idx, ptr) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_set(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), (idx), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr), pnum) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_dup(sk) ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_dup(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_copyfunc_type(copyfunc), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_freefunc_type(freefunc))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_set_cmp_func(sk, cmp) ((sk_OSSL_IETF_ATTR_SYNTAX_VALUE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_compfunc_type(cmp))) + + +DECLARE_ASN1_ITEM(OSSL_IETF_ATTR_SYNTAX_VALUE) +DECLARE_ASN1_ALLOC_FUNCTIONS(OSSL_IETF_ATTR_SYNTAX_VALUE) +DECLARE_ASN1_FUNCTIONS(OSSL_IETF_ATTR_SYNTAX) + +const GENERAL_NAMES * +OSSL_IETF_ATTR_SYNTAX_get0_policyAuthority(const OSSL_IETF_ATTR_SYNTAX *a); +void OSSL_IETF_ATTR_SYNTAX_set0_policyAuthority(OSSL_IETF_ATTR_SYNTAX *a, + GENERAL_NAMES *names); + +int OSSL_IETF_ATTR_SYNTAX_get_value_num(const OSSL_IETF_ATTR_SYNTAX *a); +void *OSSL_IETF_ATTR_SYNTAX_get0_value(const OSSL_IETF_ATTR_SYNTAX *a, + int ind, int *type); +int OSSL_IETF_ATTR_SYNTAX_add1_value(OSSL_IETF_ATTR_SYNTAX *a, int type, + void *data); +int OSSL_IETF_ATTR_SYNTAX_print(BIO *bp, OSSL_IETF_ATTR_SYNTAX *a, int indent); + +struct TARGET_CERT_st { + OSSL_ISSUER_SERIAL *targetCertificate; + GENERAL_NAME *targetName; + OSSL_OBJECT_DIGEST_INFO *certDigestInfo; +}; + +typedef struct TARGET_CERT_st OSSL_TARGET_CERT; + +# define OSSL_TGT_TARGET_NAME 0 +# define OSSL_TGT_TARGET_GROUP 1 +# define OSSL_TGT_TARGET_CERT 2 + +typedef struct TARGET_st { + int type; + union { + GENERAL_NAME *targetName; + GENERAL_NAME *targetGroup; + OSSL_TARGET_CERT *targetCert; + } choice; +} OSSL_TARGET; + +typedef STACK_OF(OSSL_TARGET) OSSL_TARGETS; +typedef STACK_OF(OSSL_TARGETS) OSSL_TARGETING_INFORMATION; + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_TARGET, OSSL_TARGET, OSSL_TARGET) +#define sk_OSSL_TARGET_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_value(sk, idx) ((OSSL_TARGET *)OPENSSL_sk_value(ossl_check_const_OSSL_TARGET_sk_type(sk), (idx))) +#define sk_OSSL_TARGET_new(cmp) ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_new(ossl_check_OSSL_TARGET_compfunc_type(cmp))) +#define sk_OSSL_TARGET_new_null() ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_new_null()) +#define sk_OSSL_TARGET_new_reserve(cmp, n) ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_TARGET_compfunc_type(cmp), (n))) +#define sk_OSSL_TARGET_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_TARGET_sk_type(sk), (n)) +#define sk_OSSL_TARGET_free(sk) OPENSSL_sk_free(ossl_check_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_delete(sk, i) ((OSSL_TARGET *)OPENSSL_sk_delete(ossl_check_OSSL_TARGET_sk_type(sk), (i))) +#define sk_OSSL_TARGET_delete_ptr(sk, ptr) ((OSSL_TARGET *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr))) +#define sk_OSSL_TARGET_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr)) +#define sk_OSSL_TARGET_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr)) +#define sk_OSSL_TARGET_pop(sk) ((OSSL_TARGET *)OPENSSL_sk_pop(ossl_check_OSSL_TARGET_sk_type(sk))) +#define sk_OSSL_TARGET_shift(sk) ((OSSL_TARGET *)OPENSSL_sk_shift(ossl_check_OSSL_TARGET_sk_type(sk))) +#define sk_OSSL_TARGET_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_TARGET_sk_type(sk),ossl_check_OSSL_TARGET_freefunc_type(freefunc)) +#define sk_OSSL_TARGET_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr), (idx)) +#define sk_OSSL_TARGET_set(sk, idx, ptr) ((OSSL_TARGET *)OPENSSL_sk_set(ossl_check_OSSL_TARGET_sk_type(sk), (idx), ossl_check_OSSL_TARGET_type(ptr))) +#define sk_OSSL_TARGET_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr)) +#define sk_OSSL_TARGET_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr)) +#define sk_OSSL_TARGET_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr), pnum) +#define sk_OSSL_TARGET_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_dup(sk) ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_dup(ossl_check_const_OSSL_TARGET_sk_type(sk))) +#define sk_OSSL_TARGET_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_copyfunc_type(copyfunc), ossl_check_OSSL_TARGET_freefunc_type(freefunc))) +#define sk_OSSL_TARGET_set_cmp_func(sk, cmp) ((sk_OSSL_TARGET_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_compfunc_type(cmp))) + + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_TARGETS, OSSL_TARGETS, OSSL_TARGETS) +#define sk_OSSL_TARGETS_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_value(sk, idx) ((OSSL_TARGETS *)OPENSSL_sk_value(ossl_check_const_OSSL_TARGETS_sk_type(sk), (idx))) +#define sk_OSSL_TARGETS_new(cmp) ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_new(ossl_check_OSSL_TARGETS_compfunc_type(cmp))) +#define sk_OSSL_TARGETS_new_null() ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_new_null()) +#define sk_OSSL_TARGETS_new_reserve(cmp, n) ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_TARGETS_compfunc_type(cmp), (n))) +#define sk_OSSL_TARGETS_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_TARGETS_sk_type(sk), (n)) +#define sk_OSSL_TARGETS_free(sk) OPENSSL_sk_free(ossl_check_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_delete(sk, i) ((OSSL_TARGETS *)OPENSSL_sk_delete(ossl_check_OSSL_TARGETS_sk_type(sk), (i))) +#define sk_OSSL_TARGETS_delete_ptr(sk, ptr) ((OSSL_TARGETS *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr))) +#define sk_OSSL_TARGETS_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr)) +#define sk_OSSL_TARGETS_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr)) +#define sk_OSSL_TARGETS_pop(sk) ((OSSL_TARGETS *)OPENSSL_sk_pop(ossl_check_OSSL_TARGETS_sk_type(sk))) +#define sk_OSSL_TARGETS_shift(sk) ((OSSL_TARGETS *)OPENSSL_sk_shift(ossl_check_OSSL_TARGETS_sk_type(sk))) +#define sk_OSSL_TARGETS_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_TARGETS_sk_type(sk),ossl_check_OSSL_TARGETS_freefunc_type(freefunc)) +#define sk_OSSL_TARGETS_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr), (idx)) +#define sk_OSSL_TARGETS_set(sk, idx, ptr) ((OSSL_TARGETS *)OPENSSL_sk_set(ossl_check_OSSL_TARGETS_sk_type(sk), (idx), ossl_check_OSSL_TARGETS_type(ptr))) +#define sk_OSSL_TARGETS_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr)) +#define sk_OSSL_TARGETS_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr)) +#define sk_OSSL_TARGETS_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr), pnum) +#define sk_OSSL_TARGETS_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_dup(sk) ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_dup(ossl_check_const_OSSL_TARGETS_sk_type(sk))) +#define sk_OSSL_TARGETS_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_copyfunc_type(copyfunc), ossl_check_OSSL_TARGETS_freefunc_type(freefunc))) +#define sk_OSSL_TARGETS_set_cmp_func(sk, cmp) ((sk_OSSL_TARGETS_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_compfunc_type(cmp))) + + +DECLARE_ASN1_FUNCTIONS(OSSL_TARGET) +DECLARE_ASN1_FUNCTIONS(OSSL_TARGETS) +DECLARE_ASN1_FUNCTIONS(OSSL_TARGETING_INFORMATION) + +typedef STACK_OF(OSSL_ISSUER_SERIAL) OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX; +DECLARE_ASN1_FUNCTIONS(OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ISSUER_SERIAL, OSSL_ISSUER_SERIAL, OSSL_ISSUER_SERIAL) +#define sk_OSSL_ISSUER_SERIAL_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_value(sk, idx) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_value(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk), (idx))) +#define sk_OSSL_ISSUER_SERIAL_new(cmp) ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_new(ossl_check_OSSL_ISSUER_SERIAL_compfunc_type(cmp))) +#define sk_OSSL_ISSUER_SERIAL_new_null() ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ISSUER_SERIAL_new_reserve(cmp, n) ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ISSUER_SERIAL_compfunc_type(cmp), (n))) +#define sk_OSSL_ISSUER_SERIAL_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), (n)) +#define sk_OSSL_ISSUER_SERIAL_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_delete(sk, i) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_delete(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), (i))) +#define sk_OSSL_ISSUER_SERIAL_delete_ptr(sk, ptr) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr))) +#define sk_OSSL_ISSUER_SERIAL_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr)) +#define sk_OSSL_ISSUER_SERIAL_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr)) +#define sk_OSSL_ISSUER_SERIAL_pop(sk) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_pop(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk))) +#define sk_OSSL_ISSUER_SERIAL_shift(sk) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_shift(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk))) +#define sk_OSSL_ISSUER_SERIAL_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk),ossl_check_OSSL_ISSUER_SERIAL_freefunc_type(freefunc)) +#define sk_OSSL_ISSUER_SERIAL_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr), (idx)) +#define sk_OSSL_ISSUER_SERIAL_set(sk, idx, ptr) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_set(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), (idx), ossl_check_OSSL_ISSUER_SERIAL_type(ptr))) +#define sk_OSSL_ISSUER_SERIAL_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr)) +#define sk_OSSL_ISSUER_SERIAL_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr)) +#define sk_OSSL_ISSUER_SERIAL_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr), pnum) +#define sk_OSSL_ISSUER_SERIAL_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_dup(sk) ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk))) +#define sk_OSSL_ISSUER_SERIAL_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_copyfunc_type(copyfunc), ossl_check_OSSL_ISSUER_SERIAL_freefunc_type(freefunc))) +#define sk_OSSL_ISSUER_SERIAL_set_cmp_func(sk, cmp) ((sk_OSSL_ISSUER_SERIAL_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_compfunc_type(cmp))) + + +#endif diff --git a/deps/openssl/config/archs/BSD-x86_64/no-asm/include/openssl/x509_vfy.h b/deps/openssl/config/archs/BSD-x86_64/no-asm/include/openssl/x509_vfy.h index 29b0e147adcab1..c9bdc3b39d685d 100644 --- a/deps/openssl/config/archs/BSD-x86_64/no-asm/include/openssl/x509_vfy.h +++ b/deps/openssl/config/archs/BSD-x86_64/no-asm/include/openssl/x509_vfy.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/x509_vfy.h.in * - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -411,6 +411,7 @@ X509_LOOKUP_ctrl_ex((x), X509_L_ADD_STORE, (name), 0, NULL, \ # define X509_V_ERR_CA_CERT_MISSING_KEY_USAGE 92 # define X509_V_ERR_EXTENSIONS_REQUIRE_VERSION_3 93 # define X509_V_ERR_EC_KEY_EXPLICIT_PARAMS 94 +# define X509_V_ERR_RPK_UNTRUSTED 95 /* Certificate verify flags */ # ifndef OPENSSL_NO_DEPRECATED_1_1_0 @@ -491,71 +492,72 @@ int X509_OBJECT_set1_X509(X509_OBJECT *a, X509 *obj); X509_CRL *X509_OBJECT_get0_X509_CRL(const X509_OBJECT *a); int X509_OBJECT_set1_X509_CRL(X509_OBJECT *a, X509_CRL *obj); X509_STORE *X509_STORE_new(void); -void X509_STORE_free(X509_STORE *v); -int X509_STORE_lock(X509_STORE *ctx); -int X509_STORE_unlock(X509_STORE *ctx); -int X509_STORE_up_ref(X509_STORE *v); -STACK_OF(X509_OBJECT) *X509_STORE_get0_objects(const X509_STORE *v); -STACK_OF(X509) *X509_STORE_get1_all_certs(X509_STORE *st); -STACK_OF(X509) *X509_STORE_CTX_get1_certs(X509_STORE_CTX *st, +void X509_STORE_free(X509_STORE *xs); +int X509_STORE_lock(X509_STORE *xs); +int X509_STORE_unlock(X509_STORE *xs); +int X509_STORE_up_ref(X509_STORE *xs); +STACK_OF(X509_OBJECT) *X509_STORE_get0_objects(const X509_STORE *xs); +STACK_OF(X509_OBJECT) *X509_STORE_get1_objects(X509_STORE *xs); +STACK_OF(X509) *X509_STORE_get1_all_certs(X509_STORE *xs); +STACK_OF(X509) *X509_STORE_CTX_get1_certs(X509_STORE_CTX *xs, const X509_NAME *nm); STACK_OF(X509_CRL) *X509_STORE_CTX_get1_crls(const X509_STORE_CTX *st, const X509_NAME *nm); -int X509_STORE_set_flags(X509_STORE *ctx, unsigned long flags); -int X509_STORE_set_purpose(X509_STORE *ctx, int purpose); -int X509_STORE_set_trust(X509_STORE *ctx, int trust); -int X509_STORE_set1_param(X509_STORE *ctx, const X509_VERIFY_PARAM *pm); -X509_VERIFY_PARAM *X509_STORE_get0_param(const X509_STORE *ctx); +int X509_STORE_set_flags(X509_STORE *xs, unsigned long flags); +int X509_STORE_set_purpose(X509_STORE *xs, int purpose); +int X509_STORE_set_trust(X509_STORE *xs, int trust); +int X509_STORE_set1_param(X509_STORE *xs, const X509_VERIFY_PARAM *pm); +X509_VERIFY_PARAM *X509_STORE_get0_param(const X509_STORE *xs); -void X509_STORE_set_verify(X509_STORE *ctx, X509_STORE_CTX_verify_fn verify); +void X509_STORE_set_verify(X509_STORE *xs, X509_STORE_CTX_verify_fn verify); #define X509_STORE_set_verify_func(ctx, func) \ X509_STORE_set_verify((ctx),(func)) void X509_STORE_CTX_set_verify(X509_STORE_CTX *ctx, X509_STORE_CTX_verify_fn verify); -X509_STORE_CTX_verify_fn X509_STORE_get_verify(const X509_STORE *ctx); -void X509_STORE_set_verify_cb(X509_STORE *ctx, +X509_STORE_CTX_verify_fn X509_STORE_get_verify(const X509_STORE *xs); +void X509_STORE_set_verify_cb(X509_STORE *xs, X509_STORE_CTX_verify_cb verify_cb); # define X509_STORE_set_verify_cb_func(ctx,func) \ X509_STORE_set_verify_cb((ctx),(func)) -X509_STORE_CTX_verify_cb X509_STORE_get_verify_cb(const X509_STORE *ctx); -void X509_STORE_set_get_issuer(X509_STORE *ctx, +X509_STORE_CTX_verify_cb X509_STORE_get_verify_cb(const X509_STORE *xs); +void X509_STORE_set_get_issuer(X509_STORE *xs, X509_STORE_CTX_get_issuer_fn get_issuer); -X509_STORE_CTX_get_issuer_fn X509_STORE_get_get_issuer(const X509_STORE *ctx); -void X509_STORE_set_check_issued(X509_STORE *ctx, +X509_STORE_CTX_get_issuer_fn X509_STORE_get_get_issuer(const X509_STORE *xs); +void X509_STORE_set_check_issued(X509_STORE *xs, X509_STORE_CTX_check_issued_fn check_issued); -X509_STORE_CTX_check_issued_fn X509_STORE_get_check_issued(const X509_STORE *ctx); -void X509_STORE_set_check_revocation(X509_STORE *ctx, +X509_STORE_CTX_check_issued_fn X509_STORE_get_check_issued(const X509_STORE *s); +void X509_STORE_set_check_revocation(X509_STORE *xs, X509_STORE_CTX_check_revocation_fn check_revocation); X509_STORE_CTX_check_revocation_fn - X509_STORE_get_check_revocation(const X509_STORE *ctx); -void X509_STORE_set_get_crl(X509_STORE *ctx, + X509_STORE_get_check_revocation(const X509_STORE *xs); +void X509_STORE_set_get_crl(X509_STORE *xs, X509_STORE_CTX_get_crl_fn get_crl); -X509_STORE_CTX_get_crl_fn X509_STORE_get_get_crl(const X509_STORE *ctx); -void X509_STORE_set_check_crl(X509_STORE *ctx, +X509_STORE_CTX_get_crl_fn X509_STORE_get_get_crl(const X509_STORE *xs); +void X509_STORE_set_check_crl(X509_STORE *xs, X509_STORE_CTX_check_crl_fn check_crl); -X509_STORE_CTX_check_crl_fn X509_STORE_get_check_crl(const X509_STORE *ctx); -void X509_STORE_set_cert_crl(X509_STORE *ctx, +X509_STORE_CTX_check_crl_fn X509_STORE_get_check_crl(const X509_STORE *xs); +void X509_STORE_set_cert_crl(X509_STORE *xs, X509_STORE_CTX_cert_crl_fn cert_crl); -X509_STORE_CTX_cert_crl_fn X509_STORE_get_cert_crl(const X509_STORE *ctx); -void X509_STORE_set_check_policy(X509_STORE *ctx, +X509_STORE_CTX_cert_crl_fn X509_STORE_get_cert_crl(const X509_STORE *xs); +void X509_STORE_set_check_policy(X509_STORE *xs, X509_STORE_CTX_check_policy_fn check_policy); -X509_STORE_CTX_check_policy_fn X509_STORE_get_check_policy(const X509_STORE *ctx); -void X509_STORE_set_lookup_certs(X509_STORE *ctx, +X509_STORE_CTX_check_policy_fn X509_STORE_get_check_policy(const X509_STORE *s); +void X509_STORE_set_lookup_certs(X509_STORE *xs, X509_STORE_CTX_lookup_certs_fn lookup_certs); -X509_STORE_CTX_lookup_certs_fn X509_STORE_get_lookup_certs(const X509_STORE *ctx); -void X509_STORE_set_lookup_crls(X509_STORE *ctx, +X509_STORE_CTX_lookup_certs_fn X509_STORE_get_lookup_certs(const X509_STORE *s); +void X509_STORE_set_lookup_crls(X509_STORE *xs, X509_STORE_CTX_lookup_crls_fn lookup_crls); #define X509_STORE_set_lookup_crls_cb(ctx, func) \ X509_STORE_set_lookup_crls((ctx), (func)) -X509_STORE_CTX_lookup_crls_fn X509_STORE_get_lookup_crls(const X509_STORE *ctx); -void X509_STORE_set_cleanup(X509_STORE *ctx, +X509_STORE_CTX_lookup_crls_fn X509_STORE_get_lookup_crls(const X509_STORE *xs); +void X509_STORE_set_cleanup(X509_STORE *xs, X509_STORE_CTX_cleanup_fn cleanup); -X509_STORE_CTX_cleanup_fn X509_STORE_get_cleanup(const X509_STORE *ctx); +X509_STORE_CTX_cleanup_fn X509_STORE_get_cleanup(const X509_STORE *xs); #define X509_STORE_get_ex_new_index(l, p, newf, dupf, freef) \ CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_X509_STORE, l, p, newf, dupf, freef) -int X509_STORE_set_ex_data(X509_STORE *ctx, int idx, void *data); -void *X509_STORE_get_ex_data(const X509_STORE *ctx, int idx); +int X509_STORE_set_ex_data(X509_STORE *xs, int idx, void *data); +void *X509_STORE_get_ex_data(const X509_STORE *xs, int idx); X509_STORE_CTX *X509_STORE_CTX_new_ex(OSSL_LIB_CTX *libctx, const char *propq); X509_STORE_CTX *X509_STORE_CTX_new(void); @@ -565,11 +567,14 @@ int X509_STORE_CTX_get1_issuer(X509 **issuer, X509_STORE_CTX *ctx, X509 *x); void X509_STORE_CTX_free(X509_STORE_CTX *ctx); int X509_STORE_CTX_init(X509_STORE_CTX *ctx, X509_STORE *trust_store, X509 *target, STACK_OF(X509) *untrusted); +int X509_STORE_CTX_init_rpk(X509_STORE_CTX *ctx, X509_STORE *trust_store, + EVP_PKEY* rpk); void X509_STORE_CTX_set0_trusted_stack(X509_STORE_CTX *ctx, STACK_OF(X509) *sk); void X509_STORE_CTX_cleanup(X509_STORE_CTX *ctx); X509_STORE *X509_STORE_CTX_get0_store(const X509_STORE_CTX *ctx); X509 *X509_STORE_CTX_get0_cert(const X509_STORE_CTX *ctx); +EVP_PKEY *X509_STORE_CTX_get0_rpk(const X509_STORE_CTX *ctx); STACK_OF(X509)* X509_STORE_CTX_get0_untrusted(const X509_STORE_CTX *ctx); void X509_STORE_CTX_set0_untrusted(X509_STORE_CTX *ctx, STACK_OF(X509) *sk); void X509_STORE_CTX_set_verify_cb(X509_STORE_CTX *ctx, @@ -579,6 +584,8 @@ X509_STORE_CTX_verify_fn X509_STORE_CTX_get_verify(const X509_STORE_CTX *ctx); X509_STORE_CTX_get_issuer_fn X509_STORE_CTX_get_get_issuer(const X509_STORE_CTX *ctx); X509_STORE_CTX_check_issued_fn X509_STORE_CTX_get_check_issued(const X509_STORE_CTX *ctx); X509_STORE_CTX_check_revocation_fn X509_STORE_CTX_get_check_revocation(const X509_STORE_CTX *ctx); +void X509_STORE_CTX_set_get_crl(X509_STORE_CTX *ctx, + X509_STORE_CTX_get_crl_fn get_crl); X509_STORE_CTX_get_crl_fn X509_STORE_CTX_get_get_crl(const X509_STORE_CTX *ctx); X509_STORE_CTX_check_crl_fn X509_STORE_CTX_get_check_crl(const X509_STORE_CTX *ctx); X509_STORE_CTX_cert_crl_fn X509_STORE_CTX_get_cert_crl(const X509_STORE_CTX *ctx); @@ -600,7 +607,7 @@ X509_STORE_CTX_cleanup_fn X509_STORE_CTX_get_cleanup(const X509_STORE_CTX *ctx); # define X509_STORE_get1_crl X509_STORE_CTX_get1_crls #endif -X509_LOOKUP *X509_STORE_add_lookup(X509_STORE *v, X509_LOOKUP_METHOD *m); +X509_LOOKUP *X509_STORE_add_lookup(X509_STORE *xs, X509_LOOKUP_METHOD *m); X509_LOOKUP_METHOD *X509_LOOKUP_hash_dir(void); X509_LOOKUP_METHOD *X509_LOOKUP_file(void); X509_LOOKUP_METHOD *X509_LOOKUP_store(void); @@ -685,8 +692,8 @@ X509_LOOKUP_get_by_alias_fn X509_LOOKUP_meth_get_get_by_alias( const X509_LOOKUP_METHOD *method); -int X509_STORE_add_cert(X509_STORE *ctx, X509 *x); -int X509_STORE_add_crl(X509_STORE *ctx, X509_CRL *x); +int X509_STORE_add_cert(X509_STORE *xs, X509 *x); +int X509_STORE_add_crl(X509_STORE *xs, X509_CRL *x); int X509_STORE_CTX_get_by_subject(const X509_STORE_CTX *vs, X509_LOOKUP_TYPE type, @@ -730,23 +737,21 @@ void *X509_LOOKUP_get_method_data(const X509_LOOKUP *ctx); X509_STORE *X509_LOOKUP_get_store(const X509_LOOKUP *ctx); int X509_LOOKUP_shutdown(X509_LOOKUP *ctx); -int X509_STORE_load_file(X509_STORE *ctx, const char *file); -int X509_STORE_load_path(X509_STORE *ctx, const char *path); -int X509_STORE_load_store(X509_STORE *ctx, const char *store); -int X509_STORE_load_locations(X509_STORE *ctx, - const char *file, - const char *dir); -int X509_STORE_set_default_paths(X509_STORE *ctx); +int X509_STORE_load_file(X509_STORE *xs, const char *file); +int X509_STORE_load_path(X509_STORE *xs, const char *path); +int X509_STORE_load_store(X509_STORE *xs, const char *store); +int X509_STORE_load_locations(X509_STORE *s, const char *file, const char *dir); +int X509_STORE_set_default_paths(X509_STORE *xs); -int X509_STORE_load_file_ex(X509_STORE *ctx, const char *file, +int X509_STORE_load_file_ex(X509_STORE *xs, const char *file, OSSL_LIB_CTX *libctx, const char *propq); -int X509_STORE_load_store_ex(X509_STORE *ctx, const char *store, +int X509_STORE_load_store_ex(X509_STORE *xs, const char *store, OSSL_LIB_CTX *libctx, const char *propq); -int X509_STORE_load_locations_ex(X509_STORE *ctx, const char *file, - const char *dir, OSSL_LIB_CTX *libctx, - const char *propq); -int X509_STORE_set_default_paths_ex(X509_STORE *ctx, OSSL_LIB_CTX *libctx, - const char *propq); +int X509_STORE_load_locations_ex(X509_STORE *xs, + const char *file, const char *dir, + OSSL_LIB_CTX *libctx, const char *propq); +int X509_STORE_set_default_paths_ex(X509_STORE *xs, + OSSL_LIB_CTX *libctx, const char *propq); #define X509_STORE_CTX_get_ex_new_index(l, p, newf, dupf, freef) \ CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_X509_STORE_CTX, l, p, newf, dupf, freef) @@ -764,6 +769,7 @@ X509_STORE_CTX *X509_STORE_CTX_get0_parent_ctx(const X509_STORE_CTX *ctx); STACK_OF(X509) *X509_STORE_CTX_get0_chain(const X509_STORE_CTX *ctx); STACK_OF(X509) *X509_STORE_CTX_get1_chain(const X509_STORE_CTX *ctx); void X509_STORE_CTX_set_cert(X509_STORE_CTX *ctx, X509 *target); +void X509_STORE_CTX_set0_rpk(X509_STORE_CTX *ctx, EVP_PKEY *target); void X509_STORE_CTX_set0_verified_chain(X509_STORE_CTX *c, STACK_OF(X509) *sk); void X509_STORE_CTX_set0_crls(X509_STORE_CTX *ctx, STACK_OF(X509_CRL) *sk); int X509_STORE_CTX_set_purpose(X509_STORE_CTX *ctx, int purpose); @@ -773,6 +779,8 @@ int X509_STORE_CTX_purpose_inherit(X509_STORE_CTX *ctx, int def_purpose, void X509_STORE_CTX_set_flags(X509_STORE_CTX *ctx, unsigned long flags); void X509_STORE_CTX_set_time(X509_STORE_CTX *ctx, unsigned long flags, time_t t); +void X509_STORE_CTX_set_current_reasons(X509_STORE_CTX *ctx, + unsigned int current_reasons); X509_POLICY_TREE *X509_STORE_CTX_get0_policy_tree(const X509_STORE_CTX *ctx); int X509_STORE_CTX_get_explicit_policy(const X509_STORE_CTX *ctx); @@ -804,6 +812,7 @@ int X509_VERIFY_PARAM_clear_flags(X509_VERIFY_PARAM *param, unsigned long flags); unsigned long X509_VERIFY_PARAM_get_flags(const X509_VERIFY_PARAM *param); int X509_VERIFY_PARAM_set_purpose(X509_VERIFY_PARAM *param, int purpose); +int X509_VERIFY_PARAM_get_purpose(const X509_VERIFY_PARAM *param); int X509_VERIFY_PARAM_set_trust(X509_VERIFY_PARAM *param, int trust); void X509_VERIFY_PARAM_set_depth(X509_VERIFY_PARAM *param, int depth); void X509_VERIFY_PARAM_set_auth_level(X509_VERIFY_PARAM *param, int auth_level); diff --git a/deps/openssl/config/archs/BSD-x86_64/no-asm/include/openssl/x509v3.h b/deps/openssl/config/archs/BSD-x86_64/no-asm/include/openssl/x509v3.h index 20b67455f2061d..b8dabac35a4915 100644 --- a/deps/openssl/config/archs/BSD-x86_64/no-asm/include/openssl/x509v3.h +++ b/deps/openssl/config/archs/BSD-x86_64/no-asm/include/openssl/x509v3.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/x509v3.h.in * - * Copyright 1999-2023 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1999-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -25,6 +25,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -146,6 +149,11 @@ typedef struct BASIC_CONSTRAINTS_st { ASN1_INTEGER *pathlen; } BASIC_CONSTRAINTS; +typedef struct OSSL_BASIC_ATTR_CONSTRAINTS_st { + int authority; + ASN1_INTEGER *pathlen; +} OSSL_BASIC_ATTR_CONSTRAINTS; + typedef struct PKEY_USAGE_PERIOD_st { ASN1_GENERALIZEDTIME *notBefore; ASN1_GENERALIZEDTIME *notAfter; @@ -198,6 +206,8 @@ typedef struct ACCESS_DESCRIPTION_st { GENERAL_NAME *location; } ACCESS_DESCRIPTION; +int GENERAL_NAME_set1_X509_NAME(GENERAL_NAME **tgt, const X509_NAME *src); + SKM_DEFINE_STACK_OF_INTERNAL(ACCESS_DESCRIPTION, ACCESS_DESCRIPTION, ACCESS_DESCRIPTION) #define sk_ACCESS_DESCRIPTION_num(sk) OPENSSL_sk_num(ossl_check_const_ACCESS_DESCRIPTION_sk_type(sk)) #define sk_ACCESS_DESCRIPTION_value(sk, idx) ((ACCESS_DESCRIPTION *)OPENSSL_sk_value(ossl_check_const_ACCESS_DESCRIPTION_sk_type(sk), (idx))) @@ -294,6 +304,7 @@ typedef struct DIST_POINT_NAME_st { /* If relativename then this contains the full distribution point name */ X509_NAME *dpname; } DIST_POINT_NAME; +DECLARE_ASN1_DUP_FUNCTION(DIST_POINT_NAME) /* All existing reasons */ # define CRLDP_ALL_REASONS 0x807f @@ -659,15 +670,16 @@ struct ISSUING_DIST_POINT_st { # define EXFLAG_SAN_CRITICAL 0x80000 # define EXFLAG_NO_FINGERPRINT 0x100000 -# define KU_DIGITAL_SIGNATURE 0x0080 -# define KU_NON_REPUDIATION 0x0040 -# define KU_KEY_ENCIPHERMENT 0x0020 -# define KU_DATA_ENCIPHERMENT 0x0010 -# define KU_KEY_AGREEMENT 0x0008 -# define KU_KEY_CERT_SIGN 0x0004 -# define KU_CRL_SIGN 0x0002 -# define KU_ENCIPHER_ONLY 0x0001 -# define KU_DECIPHER_ONLY 0x8000 +/* https://datatracker.ietf.org/doc/html/rfc5280#section-4.2.1.3 */ +# define KU_DIGITAL_SIGNATURE X509v3_KU_DIGITAL_SIGNATURE +# define KU_NON_REPUDIATION X509v3_KU_NON_REPUDIATION +# define KU_KEY_ENCIPHERMENT X509v3_KU_KEY_ENCIPHERMENT +# define KU_DATA_ENCIPHERMENT X509v3_KU_DATA_ENCIPHERMENT +# define KU_KEY_AGREEMENT X509v3_KU_KEY_AGREEMENT +# define KU_KEY_CERT_SIGN X509v3_KU_KEY_CERT_SIGN +# define KU_CRL_SIGN X509v3_KU_CRL_SIGN +# define KU_ENCIPHER_ONLY X509v3_KU_ENCIPHER_ONLY +# define KU_DECIPHER_ONLY X509v3_KU_DECIPHER_ONLY # define NS_SSL_CLIENT 0x80 # define NS_SSL_SERVER 0x40 @@ -729,7 +741,7 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_PURPOSE, X509_PURPOSE, X509_PURPOSE) #define sk_X509_PURPOSE_set_cmp_func(sk, cmp) ((sk_X509_PURPOSE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_X509_PURPOSE_sk_type(sk), ossl_check_X509_PURPOSE_compfunc_type(cmp))) - +# define X509_PURPOSE_DEFAULT_ANY 0 # define X509_PURPOSE_SSL_CLIENT 1 # define X509_PURPOSE_SSL_SERVER 2 # define X509_PURPOSE_NS_SSL_SERVER 3 @@ -739,9 +751,10 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_PURPOSE, X509_PURPOSE, X509_PURPOSE) # define X509_PURPOSE_ANY 7 # define X509_PURPOSE_OCSP_HELPER 8 # define X509_PURPOSE_TIMESTAMP_SIGN 9 +# define X509_PURPOSE_CODE_SIGN 10 # define X509_PURPOSE_MIN 1 -# define X509_PURPOSE_MAX 9 +# define X509_PURPOSE_MAX 10 /* Flags for X509V3_EXT_print() */ @@ -767,6 +780,7 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_PURPOSE, X509_PURPOSE, X509_PURPOSE) # define X509V3_ADD_SILENT 0x10 DECLARE_ASN1_FUNCTIONS(BASIC_CONSTRAINTS) +DECLARE_ASN1_FUNCTIONS(OSSL_BASIC_ATTR_CONSTRAINTS) DECLARE_ASN1_FUNCTIONS(SXNET) DECLARE_ASN1_FUNCTIONS(SXNETID) @@ -976,7 +990,6 @@ int X509V3_extensions_print(BIO *out, const char *title, int X509_check_ca(X509 *x); int X509_check_purpose(X509 *x, int id, int ca); int X509_supported_extension(X509_EXTENSION *ex); -int X509_PURPOSE_set(int *p, int purpose); int X509_check_issued(X509 *issuer, X509 *subject); int X509_check_akid(const X509 *issuer, const AUTHORITY_KEYID *akid); void X509_set_proxy_flag(X509 *x); @@ -992,22 +1005,26 @@ const GENERAL_NAMES *X509_get0_authority_issuer(X509 *x); const ASN1_INTEGER *X509_get0_authority_serial(X509 *x); int X509_PURPOSE_get_count(void); -X509_PURPOSE *X509_PURPOSE_get0(int idx); +int X509_PURPOSE_get_unused_id(OSSL_LIB_CTX *libctx); int X509_PURPOSE_get_by_sname(const char *sname); int X509_PURPOSE_get_by_id(int id); int X509_PURPOSE_add(int id, int trust, int flags, int (*ck) (const X509_PURPOSE *, const X509 *, int), const char *name, const char *sname, void *arg); +void X509_PURPOSE_cleanup(void); + +X509_PURPOSE *X509_PURPOSE_get0(int idx); +int X509_PURPOSE_get_id(const X509_PURPOSE *); char *X509_PURPOSE_get0_name(const X509_PURPOSE *xp); char *X509_PURPOSE_get0_sname(const X509_PURPOSE *xp); int X509_PURPOSE_get_trust(const X509_PURPOSE *xp); -void X509_PURPOSE_cleanup(void); -int X509_PURPOSE_get_id(const X509_PURPOSE *); +int X509_PURPOSE_set(int *p, int purpose); STACK_OF(OPENSSL_STRING) *X509_get1_email(X509 *x); STACK_OF(OPENSSL_STRING) *X509_REQ_get1_email(X509_REQ *x); void X509_email_free(STACK_OF(OPENSSL_STRING) *sk); STACK_OF(OPENSSL_STRING) *X509_get1_ocsp(X509 *x); + /* Flags for X509_check_* functions */ /* @@ -1444,6 +1461,507 @@ const ASN1_PRINTABLESTRING *PROFESSION_INFO_get0_registrationNumber( void PROFESSION_INFO_set0_registrationNumber( PROFESSION_INFO *pi, ASN1_PRINTABLESTRING *rn); +int OSSL_GENERAL_NAMES_print(BIO *out, GENERAL_NAMES *gens, int indent); + +typedef STACK_OF(X509_ATTRIBUTE) OSSL_ATTRIBUTES_SYNTAX; +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTES_SYNTAX) + +typedef STACK_OF(USERNOTICE) OSSL_USER_NOTICE_SYNTAX; +DECLARE_ASN1_FUNCTIONS(OSSL_USER_NOTICE_SYNTAX) + +SKM_DEFINE_STACK_OF_INTERNAL(USERNOTICE, USERNOTICE, USERNOTICE) +#define sk_USERNOTICE_num(sk) OPENSSL_sk_num(ossl_check_const_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_value(sk, idx) ((USERNOTICE *)OPENSSL_sk_value(ossl_check_const_USERNOTICE_sk_type(sk), (idx))) +#define sk_USERNOTICE_new(cmp) ((STACK_OF(USERNOTICE) *)OPENSSL_sk_new(ossl_check_USERNOTICE_compfunc_type(cmp))) +#define sk_USERNOTICE_new_null() ((STACK_OF(USERNOTICE) *)OPENSSL_sk_new_null()) +#define sk_USERNOTICE_new_reserve(cmp, n) ((STACK_OF(USERNOTICE) *)OPENSSL_sk_new_reserve(ossl_check_USERNOTICE_compfunc_type(cmp), (n))) +#define sk_USERNOTICE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_USERNOTICE_sk_type(sk), (n)) +#define sk_USERNOTICE_free(sk) OPENSSL_sk_free(ossl_check_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_zero(sk) OPENSSL_sk_zero(ossl_check_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_delete(sk, i) ((USERNOTICE *)OPENSSL_sk_delete(ossl_check_USERNOTICE_sk_type(sk), (i))) +#define sk_USERNOTICE_delete_ptr(sk, ptr) ((USERNOTICE *)OPENSSL_sk_delete_ptr(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr))) +#define sk_USERNOTICE_push(sk, ptr) OPENSSL_sk_push(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr)) +#define sk_USERNOTICE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr)) +#define sk_USERNOTICE_pop(sk) ((USERNOTICE *)OPENSSL_sk_pop(ossl_check_USERNOTICE_sk_type(sk))) +#define sk_USERNOTICE_shift(sk) ((USERNOTICE *)OPENSSL_sk_shift(ossl_check_USERNOTICE_sk_type(sk))) +#define sk_USERNOTICE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_USERNOTICE_sk_type(sk),ossl_check_USERNOTICE_freefunc_type(freefunc)) +#define sk_USERNOTICE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr), (idx)) +#define sk_USERNOTICE_set(sk, idx, ptr) ((USERNOTICE *)OPENSSL_sk_set(ossl_check_USERNOTICE_sk_type(sk), (idx), ossl_check_USERNOTICE_type(ptr))) +#define sk_USERNOTICE_find(sk, ptr) OPENSSL_sk_find(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr)) +#define sk_USERNOTICE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr)) +#define sk_USERNOTICE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr), pnum) +#define sk_USERNOTICE_sort(sk) OPENSSL_sk_sort(ossl_check_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_dup(sk) ((STACK_OF(USERNOTICE) *)OPENSSL_sk_dup(ossl_check_const_USERNOTICE_sk_type(sk))) +#define sk_USERNOTICE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(USERNOTICE) *)OPENSSL_sk_deep_copy(ossl_check_const_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_copyfunc_type(copyfunc), ossl_check_USERNOTICE_freefunc_type(freefunc))) +#define sk_USERNOTICE_set_cmp_func(sk, cmp) ((sk_USERNOTICE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_compfunc_type(cmp))) + + +typedef struct OSSL_ROLE_SPEC_CERT_ID_st { + GENERAL_NAME *roleName; + GENERAL_NAME *roleCertIssuer; + ASN1_INTEGER *roleCertSerialNumber; + GENERAL_NAMES *roleCertLocator; +} OSSL_ROLE_SPEC_CERT_ID; + +DECLARE_ASN1_FUNCTIONS(OSSL_ROLE_SPEC_CERT_ID) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ROLE_SPEC_CERT_ID, OSSL_ROLE_SPEC_CERT_ID, OSSL_ROLE_SPEC_CERT_ID) +#define sk_OSSL_ROLE_SPEC_CERT_ID_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_value(sk, idx) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_value(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), (idx))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_new(cmp) ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_new(ossl_check_OSSL_ROLE_SPEC_CERT_ID_compfunc_type(cmp))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_new_null() ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ROLE_SPEC_CERT_ID_new_reserve(cmp, n) ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ROLE_SPEC_CERT_ID_compfunc_type(cmp), (n))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), (n)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_delete(sk, i) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_delete(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), (i))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_delete_ptr(sk, ptr) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_pop(sk) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_pop(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_shift(sk) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_shift(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk),ossl_check_OSSL_ROLE_SPEC_CERT_ID_freefunc_type(freefunc)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr), (idx)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_set(sk, idx, ptr) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_set(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), (idx), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr), pnum) +#define sk_OSSL_ROLE_SPEC_CERT_ID_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_dup(sk) ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_copyfunc_type(copyfunc), ossl_check_OSSL_ROLE_SPEC_CERT_ID_freefunc_type(freefunc))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_set_cmp_func(sk, cmp) ((sk_OSSL_ROLE_SPEC_CERT_ID_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_compfunc_type(cmp))) + + +typedef STACK_OF(OSSL_ROLE_SPEC_CERT_ID) OSSL_ROLE_SPEC_CERT_ID_SYNTAX; + +DECLARE_ASN1_FUNCTIONS(OSSL_ROLE_SPEC_CERT_ID_SYNTAX) +typedef struct OSSL_HASH_st { + X509_ALGOR *algorithmIdentifier; + ASN1_BIT_STRING *hashValue; +} OSSL_HASH; + +typedef struct OSSL_INFO_SYNTAX_POINTER_st { + GENERAL_NAMES *name; + OSSL_HASH *hash; +} OSSL_INFO_SYNTAX_POINTER; + +# define OSSL_INFO_SYNTAX_TYPE_CONTENT 0 +# define OSSL_INFO_SYNTAX_TYPE_POINTER 1 + +typedef struct OSSL_INFO_SYNTAX_st { + int type; + union { + ASN1_STRING *content; + OSSL_INFO_SYNTAX_POINTER *pointer; + } choice; +} OSSL_INFO_SYNTAX; + +typedef struct OSSL_PRIVILEGE_POLICY_ID_st { + ASN1_OBJECT *privilegePolicy; + OSSL_INFO_SYNTAX *privPolSyntax; +} OSSL_PRIVILEGE_POLICY_ID; + +typedef struct OSSL_ATTRIBUTE_DESCRIPTOR_st { + ASN1_OBJECT *identifier; + ASN1_STRING *attributeSyntax; + ASN1_UTF8STRING *name; + ASN1_UTF8STRING *description; + OSSL_PRIVILEGE_POLICY_ID *dominationRule; +} OSSL_ATTRIBUTE_DESCRIPTOR; + +DECLARE_ASN1_FUNCTIONS(OSSL_HASH) +DECLARE_ASN1_FUNCTIONS(OSSL_INFO_SYNTAX) +DECLARE_ASN1_FUNCTIONS(OSSL_INFO_SYNTAX_POINTER) +DECLARE_ASN1_FUNCTIONS(OSSL_PRIVILEGE_POLICY_ID) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_DESCRIPTOR) + +typedef struct OSSL_TIME_SPEC_ABSOLUTE_st { + ASN1_GENERALIZEDTIME *startTime; + ASN1_GENERALIZEDTIME *endTime; +} OSSL_TIME_SPEC_ABSOLUTE; + +typedef struct OSSL_DAY_TIME_st { + ASN1_INTEGER *hour; + ASN1_INTEGER *minute; + ASN1_INTEGER *second; +} OSSL_DAY_TIME; + +typedef struct OSSL_DAY_TIME_BAND_st { + OSSL_DAY_TIME *startDayTime; + OSSL_DAY_TIME *endDayTime; +} OSSL_DAY_TIME_BAND; + +# define OSSL_NAMED_DAY_TYPE_INT 0 +# define OSSL_NAMED_DAY_TYPE_BIT 1 +# define OSSL_NAMED_DAY_INT_SUN 1 +# define OSSL_NAMED_DAY_INT_MON 2 +# define OSSL_NAMED_DAY_INT_TUE 3 +# define OSSL_NAMED_DAY_INT_WED 4 +# define OSSL_NAMED_DAY_INT_THU 5 +# define OSSL_NAMED_DAY_INT_FRI 6 +# define OSSL_NAMED_DAY_INT_SAT 7 +# define OSSL_NAMED_DAY_BIT_SUN 0 +# define OSSL_NAMED_DAY_BIT_MON 1 +# define OSSL_NAMED_DAY_BIT_TUE 2 +# define OSSL_NAMED_DAY_BIT_WED 3 +# define OSSL_NAMED_DAY_BIT_THU 4 +# define OSSL_NAMED_DAY_BIT_FRI 5 +# define OSSL_NAMED_DAY_BIT_SAT 6 + +typedef struct OSSL_NAMED_DAY_st { + int type; + union { + ASN1_INTEGER *intNamedDays; + ASN1_BIT_STRING *bitNamedDays; + } choice; +} OSSL_NAMED_DAY; + +# define OSSL_TIME_SPEC_X_DAY_OF_FIRST 0 +# define OSSL_TIME_SPEC_X_DAY_OF_SECOND 1 +# define OSSL_TIME_SPEC_X_DAY_OF_THIRD 2 +# define OSSL_TIME_SPEC_X_DAY_OF_FOURTH 3 +# define OSSL_TIME_SPEC_X_DAY_OF_FIFTH 4 + +typedef struct OSSL_TIME_SPEC_X_DAY_OF_st { + int type; + union { + OSSL_NAMED_DAY *first; + OSSL_NAMED_DAY *second; + OSSL_NAMED_DAY *third; + OSSL_NAMED_DAY *fourth; + OSSL_NAMED_DAY *fifth; + } choice; +} OSSL_TIME_SPEC_X_DAY_OF; + +# define OSSL_TIME_SPEC_DAY_TYPE_INT 0 +# define OSSL_TIME_SPEC_DAY_TYPE_BIT 1 +# define OSSL_TIME_SPEC_DAY_TYPE_DAY_OF 2 +# define OSSL_TIME_SPEC_DAY_BIT_SUN 0 +# define OSSL_TIME_SPEC_DAY_BIT_MON 1 +# define OSSL_TIME_SPEC_DAY_BIT_TUE 2 +# define OSSL_TIME_SPEC_DAY_BIT_WED 3 +# define OSSL_TIME_SPEC_DAY_BIT_THU 4 +# define OSSL_TIME_SPEC_DAY_BIT_FRI 5 +# define OSSL_TIME_SPEC_DAY_BIT_SAT 6 +# define OSSL_TIME_SPEC_DAY_INT_SUN 1 +# define OSSL_TIME_SPEC_DAY_INT_MON 2 +# define OSSL_TIME_SPEC_DAY_INT_TUE 3 +# define OSSL_TIME_SPEC_DAY_INT_WED 4 +# define OSSL_TIME_SPEC_DAY_INT_THU 5 +# define OSSL_TIME_SPEC_DAY_INT_FRI 6 +# define OSSL_TIME_SPEC_DAY_INT_SAT 7 + +typedef struct OSSL_TIME_SPEC_DAY_st { + int type; + union { + STACK_OF(ASN1_INTEGER) *intDay; + ASN1_BIT_STRING *bitDay; + OSSL_TIME_SPEC_X_DAY_OF *dayOf; + } choice; +} OSSL_TIME_SPEC_DAY; + +# define OSSL_TIME_SPEC_WEEKS_TYPE_ALL 0 +# define OSSL_TIME_SPEC_WEEKS_TYPE_INT 1 +# define OSSL_TIME_SPEC_WEEKS_TYPE_BIT 2 +# define OSSL_TIME_SPEC_BIT_WEEKS_1 0 +# define OSSL_TIME_SPEC_BIT_WEEKS_2 1 +# define OSSL_TIME_SPEC_BIT_WEEKS_3 2 +# define OSSL_TIME_SPEC_BIT_WEEKS_4 3 +# define OSSL_TIME_SPEC_BIT_WEEKS_5 4 + +typedef struct OSSL_TIME_SPEC_WEEKS_st { + int type; + union { + ASN1_NULL *allWeeks; + STACK_OF(ASN1_INTEGER) *intWeek; + ASN1_BIT_STRING *bitWeek; + } choice; +} OSSL_TIME_SPEC_WEEKS; + +# define OSSL_TIME_SPEC_MONTH_TYPE_ALL 0 +# define OSSL_TIME_SPEC_MONTH_TYPE_INT 1 +# define OSSL_TIME_SPEC_MONTH_TYPE_BIT 2 +# define OSSL_TIME_SPEC_INT_MONTH_JAN 1 +# define OSSL_TIME_SPEC_INT_MONTH_FEB 2 +# define OSSL_TIME_SPEC_INT_MONTH_MAR 3 +# define OSSL_TIME_SPEC_INT_MONTH_APR 4 +# define OSSL_TIME_SPEC_INT_MONTH_MAY 5 +# define OSSL_TIME_SPEC_INT_MONTH_JUN 6 +# define OSSL_TIME_SPEC_INT_MONTH_JUL 7 +# define OSSL_TIME_SPEC_INT_MONTH_AUG 8 +# define OSSL_TIME_SPEC_INT_MONTH_SEP 9 +# define OSSL_TIME_SPEC_INT_MONTH_OCT 10 +# define OSSL_TIME_SPEC_INT_MONTH_NOV 11 +# define OSSL_TIME_SPEC_INT_MONTH_DEC 12 +# define OSSL_TIME_SPEC_BIT_MONTH_JAN 0 +# define OSSL_TIME_SPEC_BIT_MONTH_FEB 1 +# define OSSL_TIME_SPEC_BIT_MONTH_MAR 2 +# define OSSL_TIME_SPEC_BIT_MONTH_APR 3 +# define OSSL_TIME_SPEC_BIT_MONTH_MAY 4 +# define OSSL_TIME_SPEC_BIT_MONTH_JUN 5 +# define OSSL_TIME_SPEC_BIT_MONTH_JUL 6 +# define OSSL_TIME_SPEC_BIT_MONTH_AUG 7 +# define OSSL_TIME_SPEC_BIT_MONTH_SEP 8 +# define OSSL_TIME_SPEC_BIT_MONTH_OCT 9 +# define OSSL_TIME_SPEC_BIT_MONTH_NOV 10 +# define OSSL_TIME_SPEC_BIT_MONTH_DEC 11 + +typedef struct OSSL_TIME_SPEC_MONTH_st { + int type; + union { + ASN1_NULL *allMonths; + STACK_OF(ASN1_INTEGER) *intMonth; + ASN1_BIT_STRING *bitMonth; + } choice; +} OSSL_TIME_SPEC_MONTH; + +typedef struct OSSL_TIME_PERIOD_st { + STACK_OF(OSSL_DAY_TIME_BAND) *timesOfDay; + OSSL_TIME_SPEC_DAY *days; + OSSL_TIME_SPEC_WEEKS *weeks; + OSSL_TIME_SPEC_MONTH *months; + STACK_OF(ASN1_INTEGER) *years; +} OSSL_TIME_PERIOD; + +# define OSSL_TIME_SPEC_TIME_TYPE_ABSOLUTE 0 +# define OSSL_TIME_SPEC_TIME_TYPE_PERIODIC 1 + +typedef struct OSSL_TIME_SPEC_TIME_st { + int type; + union { + OSSL_TIME_SPEC_ABSOLUTE *absolute; + STACK_OF(OSSL_TIME_PERIOD) *periodic; + } choice; +} OSSL_TIME_SPEC_TIME; + +typedef struct OSSL_TIME_SPEC_st { + OSSL_TIME_SPEC_TIME *time; + ASN1_BOOLEAN notThisTime; + ASN1_INTEGER *timeZone; +} OSSL_TIME_SPEC; + +DECLARE_ASN1_FUNCTIONS(OSSL_DAY_TIME) +DECLARE_ASN1_FUNCTIONS(OSSL_DAY_TIME_BAND) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_DAY) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_WEEKS) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_MONTH) +DECLARE_ASN1_FUNCTIONS(OSSL_NAMED_DAY) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_X_DAY_OF) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_ABSOLUTE) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_TIME) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_PERIOD) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_TIME_PERIOD, OSSL_TIME_PERIOD, OSSL_TIME_PERIOD) +#define sk_OSSL_TIME_PERIOD_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_value(sk, idx) ((OSSL_TIME_PERIOD *)OPENSSL_sk_value(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk), (idx))) +#define sk_OSSL_TIME_PERIOD_new(cmp) ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_new(ossl_check_OSSL_TIME_PERIOD_compfunc_type(cmp))) +#define sk_OSSL_TIME_PERIOD_new_null() ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_new_null()) +#define sk_OSSL_TIME_PERIOD_new_reserve(cmp, n) ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_TIME_PERIOD_compfunc_type(cmp), (n))) +#define sk_OSSL_TIME_PERIOD_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), (n)) +#define sk_OSSL_TIME_PERIOD_free(sk) OPENSSL_sk_free(ossl_check_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_delete(sk, i) ((OSSL_TIME_PERIOD *)OPENSSL_sk_delete(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), (i))) +#define sk_OSSL_TIME_PERIOD_delete_ptr(sk, ptr) ((OSSL_TIME_PERIOD *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr))) +#define sk_OSSL_TIME_PERIOD_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr)) +#define sk_OSSL_TIME_PERIOD_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr)) +#define sk_OSSL_TIME_PERIOD_pop(sk) ((OSSL_TIME_PERIOD *)OPENSSL_sk_pop(ossl_check_OSSL_TIME_PERIOD_sk_type(sk))) +#define sk_OSSL_TIME_PERIOD_shift(sk) ((OSSL_TIME_PERIOD *)OPENSSL_sk_shift(ossl_check_OSSL_TIME_PERIOD_sk_type(sk))) +#define sk_OSSL_TIME_PERIOD_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_TIME_PERIOD_sk_type(sk),ossl_check_OSSL_TIME_PERIOD_freefunc_type(freefunc)) +#define sk_OSSL_TIME_PERIOD_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr), (idx)) +#define sk_OSSL_TIME_PERIOD_set(sk, idx, ptr) ((OSSL_TIME_PERIOD *)OPENSSL_sk_set(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), (idx), ossl_check_OSSL_TIME_PERIOD_type(ptr))) +#define sk_OSSL_TIME_PERIOD_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr)) +#define sk_OSSL_TIME_PERIOD_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr)) +#define sk_OSSL_TIME_PERIOD_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr), pnum) +#define sk_OSSL_TIME_PERIOD_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_dup(sk) ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_dup(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk))) +#define sk_OSSL_TIME_PERIOD_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_copyfunc_type(copyfunc), ossl_check_OSSL_TIME_PERIOD_freefunc_type(freefunc))) +#define sk_OSSL_TIME_PERIOD_set_cmp_func(sk, cmp) ((sk_OSSL_TIME_PERIOD_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_compfunc_type(cmp))) + + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_DAY_TIME_BAND, OSSL_DAY_TIME_BAND, OSSL_DAY_TIME_BAND) +#define sk_OSSL_DAY_TIME_BAND_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_value(sk, idx) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_value(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk), (idx))) +#define sk_OSSL_DAY_TIME_BAND_new(cmp) ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_new(ossl_check_OSSL_DAY_TIME_BAND_compfunc_type(cmp))) +#define sk_OSSL_DAY_TIME_BAND_new_null() ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_new_null()) +#define sk_OSSL_DAY_TIME_BAND_new_reserve(cmp, n) ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_DAY_TIME_BAND_compfunc_type(cmp), (n))) +#define sk_OSSL_DAY_TIME_BAND_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), (n)) +#define sk_OSSL_DAY_TIME_BAND_free(sk) OPENSSL_sk_free(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_delete(sk, i) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_delete(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), (i))) +#define sk_OSSL_DAY_TIME_BAND_delete_ptr(sk, ptr) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr))) +#define sk_OSSL_DAY_TIME_BAND_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr)) +#define sk_OSSL_DAY_TIME_BAND_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr)) +#define sk_OSSL_DAY_TIME_BAND_pop(sk) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_pop(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk))) +#define sk_OSSL_DAY_TIME_BAND_shift(sk) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_shift(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk))) +#define sk_OSSL_DAY_TIME_BAND_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk),ossl_check_OSSL_DAY_TIME_BAND_freefunc_type(freefunc)) +#define sk_OSSL_DAY_TIME_BAND_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr), (idx)) +#define sk_OSSL_DAY_TIME_BAND_set(sk, idx, ptr) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_set(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), (idx), ossl_check_OSSL_DAY_TIME_BAND_type(ptr))) +#define sk_OSSL_DAY_TIME_BAND_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr)) +#define sk_OSSL_DAY_TIME_BAND_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr)) +#define sk_OSSL_DAY_TIME_BAND_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr), pnum) +#define sk_OSSL_DAY_TIME_BAND_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_dup(sk) ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_dup(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk))) +#define sk_OSSL_DAY_TIME_BAND_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_copyfunc_type(copyfunc), ossl_check_OSSL_DAY_TIME_BAND_freefunc_type(freefunc))) +#define sk_OSSL_DAY_TIME_BAND_set_cmp_func(sk, cmp) ((sk_OSSL_DAY_TIME_BAND_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_compfunc_type(cmp))) + + +/* Attribute Type and Value */ +typedef struct atav_st { + ASN1_OBJECT *type; + ASN1_TYPE *value; +} OSSL_ATAV; + +typedef struct ATTRIBUTE_TYPE_MAPPING_st { + ASN1_OBJECT *local; + ASN1_OBJECT *remote; +} OSSL_ATTRIBUTE_TYPE_MAPPING; + +typedef struct ATTRIBUTE_VALUE_MAPPING_st { + OSSL_ATAV *local; + OSSL_ATAV *remote; +} OSSL_ATTRIBUTE_VALUE_MAPPING; + +# define OSSL_ATTR_MAP_TYPE 0 +# define OSSL_ATTR_MAP_VALUE 1 + +typedef struct ATTRIBUTE_MAPPING_st { + int type; + union { + OSSL_ATTRIBUTE_TYPE_MAPPING *typeMappings; + OSSL_ATTRIBUTE_VALUE_MAPPING *typeValueMappings; + } choice; +} OSSL_ATTRIBUTE_MAPPING; + +typedef STACK_OF(OSSL_ATTRIBUTE_MAPPING) OSSL_ATTRIBUTE_MAPPINGS; +DECLARE_ASN1_FUNCTIONS(OSSL_ATAV) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_TYPE_MAPPING) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_VALUE_MAPPING) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_MAPPING) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_MAPPINGS) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ATTRIBUTE_MAPPING, OSSL_ATTRIBUTE_MAPPING, OSSL_ATTRIBUTE_MAPPING) +#define sk_OSSL_ATTRIBUTE_MAPPING_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_value(sk, idx) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_value(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), (idx))) +#define sk_OSSL_ATTRIBUTE_MAPPING_new(cmp) ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_new(ossl_check_OSSL_ATTRIBUTE_MAPPING_compfunc_type(cmp))) +#define sk_OSSL_ATTRIBUTE_MAPPING_new_null() ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ATTRIBUTE_MAPPING_new_reserve(cmp, n) ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ATTRIBUTE_MAPPING_compfunc_type(cmp), (n))) +#define sk_OSSL_ATTRIBUTE_MAPPING_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), (n)) +#define sk_OSSL_ATTRIBUTE_MAPPING_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_delete(sk, i) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_delete(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), (i))) +#define sk_OSSL_ATTRIBUTE_MAPPING_delete_ptr(sk, ptr) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr))) +#define sk_OSSL_ATTRIBUTE_MAPPING_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr)) +#define sk_OSSL_ATTRIBUTE_MAPPING_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr)) +#define sk_OSSL_ATTRIBUTE_MAPPING_pop(sk) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_pop(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk))) +#define sk_OSSL_ATTRIBUTE_MAPPING_shift(sk) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_shift(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk))) +#define sk_OSSL_ATTRIBUTE_MAPPING_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk),ossl_check_OSSL_ATTRIBUTE_MAPPING_freefunc_type(freefunc)) +#define sk_OSSL_ATTRIBUTE_MAPPING_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr), (idx)) +#define sk_OSSL_ATTRIBUTE_MAPPING_set(sk, idx, ptr) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_set(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), (idx), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr))) +#define sk_OSSL_ATTRIBUTE_MAPPING_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr)) +#define sk_OSSL_ATTRIBUTE_MAPPING_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr)) +#define sk_OSSL_ATTRIBUTE_MAPPING_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr), pnum) +#define sk_OSSL_ATTRIBUTE_MAPPING_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_dup(sk) ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk))) +#define sk_OSSL_ATTRIBUTE_MAPPING_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_copyfunc_type(copyfunc), ossl_check_OSSL_ATTRIBUTE_MAPPING_freefunc_type(freefunc))) +#define sk_OSSL_ATTRIBUTE_MAPPING_set_cmp_func(sk, cmp) ((sk_OSSL_ATTRIBUTE_MAPPING_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_compfunc_type(cmp))) + + +# define OSSL_AAA_ATTRIBUTE_TYPE 0 +# define OSSL_AAA_ATTRIBUTE_VALUES 1 + +typedef struct ALLOWED_ATTRIBUTES_CHOICE_st { + int type; + union { + ASN1_OBJECT *attributeType; + X509_ATTRIBUTE *attributeTypeandValues; + } choice; +} OSSL_ALLOWED_ATTRIBUTES_CHOICE; + +typedef struct ALLOWED_ATTRIBUTES_ITEM_st { + STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *attributes; + GENERAL_NAME *holderDomain; +} OSSL_ALLOWED_ATTRIBUTES_ITEM; + +typedef STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) OSSL_ALLOWED_ATTRIBUTES_SYNTAX; + +DECLARE_ASN1_FUNCTIONS(OSSL_ALLOWED_ATTRIBUTES_CHOICE) +DECLARE_ASN1_FUNCTIONS(OSSL_ALLOWED_ATTRIBUTES_ITEM) +DECLARE_ASN1_FUNCTIONS(OSSL_ALLOWED_ATTRIBUTES_SYNTAX) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ALLOWED_ATTRIBUTES_CHOICE, OSSL_ALLOWED_ATTRIBUTES_CHOICE, OSSL_ALLOWED_ATTRIBUTES_CHOICE) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_value(sk, idx) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_value(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), (idx))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_new(cmp) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_new(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_compfunc_type(cmp))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_new_null() ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_new_reserve(cmp, n) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_compfunc_type(cmp), (n))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), (n)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_delete(sk, i) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_delete(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), (i))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_delete_ptr(sk, ptr) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_pop(sk) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_pop(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_shift(sk) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_shift(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk),ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_freefunc_type(freefunc)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr), (idx)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_set(sk, idx, ptr) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_set(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), (idx), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr), pnum) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_dup(sk) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_copyfunc_type(copyfunc), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_freefunc_type(freefunc))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_set_cmp_func(sk, cmp) ((sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_compfunc_type(cmp))) + + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ALLOWED_ATTRIBUTES_ITEM, OSSL_ALLOWED_ATTRIBUTES_ITEM, OSSL_ALLOWED_ATTRIBUTES_ITEM) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_value(sk, idx) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_value(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), (idx))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_new(cmp) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_new(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_compfunc_type(cmp))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_new_null() ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_new_reserve(cmp, n) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_compfunc_type(cmp), (n))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), (n)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_delete(sk, i) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_delete(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), (i))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_delete_ptr(sk, ptr) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_pop(sk) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_pop(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_shift(sk) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_shift(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk),ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_freefunc_type(freefunc)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr), (idx)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_set(sk, idx, ptr) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_set(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), (idx), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr), pnum) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_dup(sk) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_copyfunc_type(copyfunc), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_freefunc_type(freefunc))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_set_cmp_func(sk, cmp) ((sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_compfunc_type(cmp))) + + +typedef struct AA_DIST_POINT_st { + DIST_POINT_NAME *distpoint; + ASN1_BIT_STRING *reasons; + int dp_reasons; + ASN1_BOOLEAN indirectCRL; + ASN1_BOOLEAN containsUserAttributeCerts; + ASN1_BOOLEAN containsAACerts; + ASN1_BOOLEAN containsSOAPublicKeyCerts; +} OSSL_AA_DIST_POINT; + +DECLARE_ASN1_FUNCTIONS(OSSL_AA_DIST_POINT) + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/BSD-x86_64/no-asm/include/progs.h b/deps/openssl/config/archs/BSD-x86_64/no-asm/include/progs.h index be55f61503d405..1b62ec37dec130 100644 --- a/deps/openssl/config/archs/BSD-x86_64/no-asm/include/progs.h +++ b/deps/openssl/config/archs/BSD-x86_64/no-asm/include/progs.h @@ -56,6 +56,7 @@ extern int s_client_main(int argc, char *argv[]); extern int s_server_main(int argc, char *argv[]); extern int s_time_main(int argc, char *argv[]); extern int sess_id_main(int argc, char *argv[]); +extern int skeyutl_main(int argc, char *argv[]); extern int smime_main(int argc, char *argv[]); extern int speed_main(int argc, char *argv[]); extern int spkac_main(int argc, char *argv[]); @@ -110,6 +111,7 @@ extern const OPTIONS s_client_options[]; extern const OPTIONS s_server_options[]; extern const OPTIONS s_time_options[]; extern const OPTIONS sess_id_options[]; +extern const OPTIONS skeyutl_options[]; extern const OPTIONS smime_options[]; extern const OPTIONS speed_options[]; extern const OPTIONS spkac_options[]; diff --git a/deps/openssl/config/archs/BSD-x86_64/no-asm/openssl-cl.gypi b/deps/openssl/config/archs/BSD-x86_64/no-asm/openssl-cl.gypi index b26fb2a5e1c46c..70fe127607efac 100644 --- a/deps/openssl/config/archs/BSD-x86_64/no-asm/openssl-cl.gypi +++ b/deps/openssl/config/archs/BSD-x86_64/no-asm/openssl-cl.gypi @@ -61,6 +61,7 @@ 'openssl/apps/s_server.c', 'openssl/apps/s_time.c', 'openssl/apps/sess_id.c', + 'openssl/apps/skeyutl.c', 'openssl/apps/smime.c', 'openssl/apps/speed.c', 'openssl/apps/spkac.c', @@ -76,12 +77,14 @@ 'openssl/apps/lib/app_rand.c', 'openssl/apps/lib/app_x509.c', 'openssl/apps/lib/apps.c', + 'openssl/apps/lib/apps_opt_printf.c', 'openssl/apps/lib/apps_ui.c', 'openssl/apps/lib/columns.c', 'openssl/apps/lib/engine.c', 'openssl/apps/lib/engine_loader.c', 'openssl/apps/lib/fmt.c', 'openssl/apps/lib/http_server.c', + 'openssl/apps/lib/log.c', 'openssl/apps/lib/names.c', 'openssl/apps/lib/opt.c', 'openssl/apps/lib/s_cb.c', diff --git a/deps/openssl/config/archs/BSD-x86_64/no-asm/openssl-fips.gypi b/deps/openssl/config/archs/BSD-x86_64/no-asm/openssl-fips.gypi index e1b0a3a63deac0..62e879b962df45 100644 --- a/deps/openssl/config/archs/BSD-x86_64/no-asm/openssl-fips.gypi +++ b/deps/openssl/config/archs/BSD-x86_64/no-asm/openssl-fips.gypi @@ -100,14 +100,15 @@ 'openssl/crypto/evp/kem.c', 'openssl/crypto/evp/keymgmt_lib.c', 'openssl/crypto/evp/keymgmt_meth.c', - 'openssl/crypto/evp/m_sigver.c', 'openssl/crypto/evp/mac_lib.c', 'openssl/crypto/evp/mac_meth.c', 'openssl/crypto/evp/p_lib.c', 'openssl/crypto/evp/pmeth_check.c', 'openssl/crypto/evp/pmeth_gn.c', 'openssl/crypto/evp/pmeth_lib.c', + 'openssl/crypto/evp/s_lib.c', 'openssl/crypto/evp/signature.c', + 'openssl/crypto/evp/skeymgmt_meth.c', 'openssl/crypto/ffc/ffc_backend.c', 'openssl/crypto/ffc/ffc_dh.c', 'openssl/crypto/ffc/ffc_key_generate.c', @@ -115,6 +116,8 @@ 'openssl/crypto/ffc/ffc_params.c', 'openssl/crypto/ffc/ffc_params_generate.c', 'openssl/crypto/ffc/ffc_params_validate.c', + 'openssl/crypto/hashtable/hashfunc.c', + 'openssl/crypto/hashtable/hashtable.c', 'openssl/crypto/hmac/hmac.c', 'openssl/crypto/lhash/lhash.c', 'openssl/crypto/asn1_dsa.c', @@ -145,6 +148,16 @@ 'openssl/crypto/threads_none.c', 'openssl/crypto/threads_pthread.c', 'openssl/crypto/threads_win.c', + 'openssl/crypto/time.c', + 'openssl/crypto/ml_dsa/ml_dsa_encoders.c', + 'openssl/crypto/ml_dsa/ml_dsa_key.c', + 'openssl/crypto/ml_dsa/ml_dsa_key_compress.c', + 'openssl/crypto/ml_dsa/ml_dsa_matrix.c', + 'openssl/crypto/ml_dsa/ml_dsa_ntt.c', + 'openssl/crypto/ml_dsa/ml_dsa_params.c', + 'openssl/crypto/ml_dsa/ml_dsa_sample.c', + 'openssl/crypto/ml_dsa/ml_dsa_sign.c', + 'openssl/crypto/ml_kem/ml_kem.c', 'openssl/crypto/modes/cbc128.c', 'openssl/crypto/modes/ccm128.c', 'openssl/crypto/modes/cfb128.c', @@ -153,6 +166,7 @@ 'openssl/crypto/modes/ofb128.c', 'openssl/crypto/modes/wrap128.c', 'openssl/crypto/modes/xts128.c', + 'openssl/crypto/modes/xts128gb.c', 'openssl/crypto/property/defn_cache.c', 'openssl/crypto/property/property.c', 'openssl/crypto/property/property_parse.c', @@ -181,7 +195,23 @@ 'openssl/crypto/sha/sha256.c', 'openssl/crypto/sha/sha3.c', 'openssl/crypto/sha/sha512.c', + 'openssl/crypto/slh_dsa/slh_adrs.c', + 'openssl/crypto/slh_dsa/slh_dsa.c', + 'openssl/crypto/slh_dsa/slh_dsa_hash_ctx.c', + 'openssl/crypto/slh_dsa/slh_dsa_key.c', + 'openssl/crypto/slh_dsa/slh_fors.c', + 'openssl/crypto/slh_dsa/slh_hash.c', + 'openssl/crypto/slh_dsa/slh_hypertree.c', + 'openssl/crypto/slh_dsa/slh_params.c', + 'openssl/crypto/slh_dsa/slh_wots.c', + 'openssl/crypto/slh_dsa/slh_xmss.c', 'openssl/crypto/stack/stack.c', + 'openssl/crypto/thread/arch/thread_none.c', + 'openssl/crypto/thread/arch/thread_posix.c', + 'openssl/crypto/thread/arch/thread_win.c', + 'openssl/crypto/thread/api.c', + 'openssl/crypto/thread/arch.c', + 'openssl/crypto/thread/internal.c', 'openssl/providers/common/der/der_rsa_sig.c', 'openssl/providers/common/bio_prov.c', 'openssl/providers/common/capabilities.c', @@ -190,6 +220,7 @@ 'openssl/providers/common/provider_util.c', 'openssl/providers/common/securitycheck.c', 'openssl/providers/common/securitycheck_fips.c', + 'openssl/providers/fips/fipsindicator.c', 'openssl/providers/fips/fipsprov.c', 'openssl/providers/fips/self_test.c', 'openssl/providers/fips/self_test_kats.c', @@ -227,6 +258,8 @@ 'openssl/providers/implementations/kdfs/sskdf.c', 'openssl/providers/implementations/kdfs/tls1_prf.c', 'openssl/providers/implementations/kdfs/x942kdf.c', + 'openssl/providers/implementations/kem/ml_kem_kem.c', + 'openssl/providers/implementations/kem/mlx_kem.c', 'openssl/providers/implementations/kem/rsa_kem.c', 'openssl/providers/implementations/keymgmt/dh_kmgmt.c', 'openssl/providers/implementations/keymgmt/dsa_kmgmt.c', @@ -234,29 +267,39 @@ 'openssl/providers/implementations/keymgmt/ecx_kmgmt.c', 'openssl/providers/implementations/keymgmt/kdf_legacy_kmgmt.c', 'openssl/providers/implementations/keymgmt/mac_legacy_kmgmt.c', + 'openssl/providers/implementations/keymgmt/ml_dsa_kmgmt.c', + 'openssl/providers/implementations/keymgmt/ml_kem_kmgmt.c', + 'openssl/providers/implementations/keymgmt/mlx_kmgmt.c', 'openssl/providers/implementations/keymgmt/rsa_kmgmt.c', + 'openssl/providers/implementations/keymgmt/slh_dsa_kmgmt.c', 'openssl/providers/implementations/macs/cmac_prov.c', 'openssl/providers/implementations/macs/gmac_prov.c', 'openssl/providers/implementations/macs/hmac_prov.c', 'openssl/providers/implementations/macs/kmac_prov.c', - 'openssl/providers/implementations/rands/crngt.c', 'openssl/providers/implementations/rands/drbg.c', 'openssl/providers/implementations/rands/drbg_ctr.c', 'openssl/providers/implementations/rands/drbg_hash.c', 'openssl/providers/implementations/rands/drbg_hmac.c', + 'openssl/providers/implementations/rands/fips_crng_test.c', 'openssl/providers/implementations/rands/test_rng.c', 'openssl/providers/implementations/signature/dsa_sig.c', 'openssl/providers/implementations/signature/ecdsa_sig.c', 'openssl/providers/implementations/signature/eddsa_sig.c', 'openssl/providers/implementations/signature/mac_legacy_sig.c', + 'openssl/providers/implementations/signature/ml_dsa_sig.c', 'openssl/providers/implementations/signature/rsa_sig.c', - 'openssl/ssl/s3_cbc.c', + 'openssl/providers/implementations/signature/slh_dsa_sig.c', + 'openssl/providers/implementations/skeymgmt/aes_skmgmt.c', + 'openssl/providers/implementations/skeymgmt/generic.c', + 'openssl/ssl/record/methods/ssl3_cbc.c', 'openssl/providers/common/der/der_dsa_key.c', 'openssl/providers/common/der/der_dsa_sig.c', 'openssl/providers/common/der/der_ec_key.c', 'openssl/providers/common/der/der_ec_sig.c', 'openssl/providers/common/der/der_ecx_key.c', + 'openssl/providers/common/der/der_ml_dsa_key.c', 'openssl/providers/common/der/der_rsa_key.c', + 'openssl/providers/common/der/der_slh_dsa_key.c', 'openssl/providers/common/provider_ctx.c', 'openssl/providers/common/provider_err.c', 'openssl/providers/implementations/ciphers/ciphercommon.c', @@ -267,17 +310,20 @@ 'openssl/providers/implementations/ciphers/ciphercommon_gcm_hw.c', 'openssl/providers/implementations/ciphers/ciphercommon_hw.c', 'openssl/providers/implementations/digests/digestcommon.c', - 'openssl/ssl/record/tls_pad.c', + 'openssl/ssl/record/methods/tls_pad.c', 'openssl/providers/fips/fips_entry.c', ], 'openssl_sources_BSD-x86_64': [ + './config/archs/BSD-x86_64/no-asm/crypto/params_idx.c', './config/archs/BSD-x86_64/no-asm/providers/common/der/der_sm2_gen.c', './config/archs/BSD-x86_64/no-asm/providers/common/der/der_digests_gen.c', './config/archs/BSD-x86_64/no-asm/providers/common/der/der_dsa_gen.c', './config/archs/BSD-x86_64/no-asm/providers/common/der/der_ec_gen.c', './config/archs/BSD-x86_64/no-asm/providers/common/der/der_ecx_gen.c', + './config/archs/BSD-x86_64/no-asm/providers/common/der/der_ml_dsa_gen.c', './config/archs/BSD-x86_64/no-asm/providers/common/der/der_rsa_gen.c', + './config/archs/BSD-x86_64/no-asm/providers/common/der/der_slh_dsa_gen.c', './config/archs/BSD-x86_64/no-asm/providers/common/der/der_wrap_gen.c', './config/archs/BSD-x86_64/no-asm/providers/legacy.ld', './config/archs/BSD-x86_64/no-asm/providers/fips.ld', diff --git a/deps/openssl/config/archs/BSD-x86_64/no-asm/openssl.gypi b/deps/openssl/config/archs/BSD-x86_64/no-asm/openssl.gypi index bb080a96ff626e..4be3cbae5d3a09 100644 --- a/deps/openssl/config/archs/BSD-x86_64/no-asm/openssl.gypi +++ b/deps/openssl/config/archs/BSD-x86_64/no-asm/openssl.gypi @@ -7,14 +7,15 @@ 'openssl/ssl/d1_srtp.c', 'openssl/ssl/methods.c', 'openssl/ssl/pqueue.c', + 'openssl/ssl/priority_queue.c', 'openssl/ssl/s3_enc.c', 'openssl/ssl/s3_lib.c', 'openssl/ssl/s3_msg.c', 'openssl/ssl/ssl_asn1.c', 'openssl/ssl/ssl_cert.c', + 'openssl/ssl/ssl_cert_comp.c', 'openssl/ssl/ssl_ciph.c', 'openssl/ssl/ssl_conf.c', - 'openssl/ssl/ssl_err.c', 'openssl/ssl/ssl_err_legacy.c', 'openssl/ssl/ssl_init.c', 'openssl/ssl/ssl_lib.c', @@ -31,12 +32,60 @@ 'openssl/ssl/tls13_enc.c', 'openssl/ssl/tls_depr.c', 'openssl/ssl/tls_srp.c', - 'openssl/ssl/record/dtls1_bitmap.c', + 'openssl/ssl/quic/cc_newreno.c', + 'openssl/ssl/quic/json_enc.c', + 'openssl/ssl/quic/qlog.c', + 'openssl/ssl/quic/qlog_event_helpers.c', + 'openssl/ssl/quic/quic_ackm.c', + 'openssl/ssl/quic/quic_cfq.c', + 'openssl/ssl/quic/quic_channel.c', + 'openssl/ssl/quic/quic_demux.c', + 'openssl/ssl/quic/quic_engine.c', + 'openssl/ssl/quic/quic_fc.c', + 'openssl/ssl/quic/quic_fifd.c', + 'openssl/ssl/quic/quic_impl.c', + 'openssl/ssl/quic/quic_lcidm.c', + 'openssl/ssl/quic/quic_method.c', + 'openssl/ssl/quic/quic_obj.c', + 'openssl/ssl/quic/quic_port.c', + 'openssl/ssl/quic/quic_rcidm.c', + 'openssl/ssl/quic/quic_reactor.c', + 'openssl/ssl/quic/quic_reactor_wait_ctx.c', + 'openssl/ssl/quic/quic_record_rx.c', + 'openssl/ssl/quic/quic_record_shared.c', + 'openssl/ssl/quic/quic_record_tx.c', + 'openssl/ssl/quic/quic_record_util.c', + 'openssl/ssl/quic/quic_rstream.c', + 'openssl/ssl/quic/quic_rx_depack.c', + 'openssl/ssl/quic/quic_sf_list.c', + 'openssl/ssl/quic/quic_srt_gen.c', + 'openssl/ssl/quic/quic_srtm.c', + 'openssl/ssl/quic/quic_sstream.c', + 'openssl/ssl/quic/quic_statm.c', + 'openssl/ssl/quic/quic_stream_map.c', + 'openssl/ssl/quic/quic_thread_assist.c', + 'openssl/ssl/quic/quic_tls.c', + 'openssl/ssl/quic/quic_tls_api.c', + 'openssl/ssl/quic/quic_trace.c', + 'openssl/ssl/quic/quic_tserver.c', + 'openssl/ssl/quic/quic_txp.c', + 'openssl/ssl/quic/quic_txpim.c', + 'openssl/ssl/quic/quic_types.c', + 'openssl/ssl/quic/quic_wire.c', + 'openssl/ssl/quic/quic_wire_pkt.c', + 'openssl/ssl/quic/uint_set.c', 'openssl/ssl/record/rec_layer_d1.c', 'openssl/ssl/record/rec_layer_s3.c', - 'openssl/ssl/record/ssl3_buffer.c', - 'openssl/ssl/record/ssl3_record.c', - 'openssl/ssl/record/ssl3_record_tls13.c', + 'openssl/ssl/record/methods/dtls_meth.c', + 'openssl/ssl/record/methods/ssl3_meth.c', + 'openssl/ssl/record/methods/tls13_meth.c', + 'openssl/ssl/record/methods/tls1_meth.c', + 'openssl/ssl/record/methods/tls_common.c', + 'openssl/ssl/record/methods/tls_multib.c', + 'openssl/ssl/record/methods/tlsany_meth.c', + 'openssl/ssl/rio/poll_builder.c', + 'openssl/ssl/rio/poll_immediate.c', + 'openssl/ssl/rio/rio_notifier.c', 'openssl/ssl/statem/extensions.c', 'openssl/ssl/statem/extensions_clnt.c', 'openssl/ssl/statem/extensions_cust.c', @@ -150,6 +199,7 @@ 'openssl/crypto/bio/bss_conn.c', 'openssl/crypto/bio/bss_core.c', 'openssl/crypto/bio/bss_dgram.c', + 'openssl/crypto/bio/bss_dgram_pair.c', 'openssl/crypto/bio/bss_fd.c', 'openssl/crypto/bio/bss_file.c', 'openssl/crypto/bio/bss_log.c', @@ -210,6 +260,7 @@ 'openssl/crypto/cmp/cmp_client.c', 'openssl/crypto/cmp/cmp_ctx.c', 'openssl/crypto/cmp/cmp_err.c', + 'openssl/crypto/cmp/cmp_genm.c', 'openssl/crypto/cmp/cmp_hdr.c', 'openssl/crypto/cmp/cmp_http.c', 'openssl/crypto/cmp/cmp_msg.c', @@ -385,7 +436,9 @@ 'openssl/crypto/err/err_all.c', 'openssl/crypto/err/err_all_legacy.c', 'openssl/crypto/err/err_blocks.c', + 'openssl/crypto/err/err_mark.c', 'openssl/crypto/err/err_prn.c', + 'openssl/crypto/err/err_save.c', 'openssl/crypto/ess/ess_asn1.c', 'openssl/crypto/ess/ess_err.c', 'openssl/crypto/ess/ess_lib.c', @@ -468,7 +521,9 @@ 'openssl/crypto/evp/pmeth_check.c', 'openssl/crypto/evp/pmeth_gn.c', 'openssl/crypto/evp/pmeth_lib.c', + 'openssl/crypto/evp/s_lib.c', 'openssl/crypto/evp/signature.c', + 'openssl/crypto/evp/skeymgmt_meth.c', 'openssl/crypto/ffc/ffc_backend.c', 'openssl/crypto/ffc/ffc_dh.c', 'openssl/crypto/ffc/ffc_key_generate.c', @@ -476,7 +531,11 @@ 'openssl/crypto/ffc/ffc_params.c', 'openssl/crypto/ffc/ffc_params_generate.c', 'openssl/crypto/ffc/ffc_params_validate.c', + 'openssl/crypto/hashtable/hashfunc.c', + 'openssl/crypto/hashtable/hashtable.c', 'openssl/crypto/hmac/hmac.c', + 'openssl/crypto/hpke/hpke.c', + 'openssl/crypto/hpke/hpke_util.c', 'openssl/crypto/http/http_client.c', 'openssl/crypto/http/http_err.c', 'openssl/crypto/http/http_lib.c', @@ -490,6 +549,7 @@ 'openssl/crypto/lhash/lhash.c', 'openssl/crypto/asn1_dsa.c', 'openssl/crypto/bsearch.c', + 'openssl/crypto/comp_methods.c', 'openssl/crypto/context.c', 'openssl/crypto/core_algorithm.c', 'openssl/crypto/core_fetch.c', @@ -499,10 +559,13 @@ 'openssl/crypto/cryptlib.c', 'openssl/crypto/ctype.c', 'openssl/crypto/cversion.c', + 'openssl/crypto/defaults.c', 'openssl/crypto/der_writer.c', + 'openssl/crypto/deterministic_nonce.c', 'openssl/crypto/ebcdic.c', 'openssl/crypto/ex_data.c', 'openssl/crypto/getenv.c', + 'openssl/crypto/indicator_core.c', 'openssl/crypto/info.c', 'openssl/crypto/init.c', 'openssl/crypto/initthread.c', @@ -527,12 +590,16 @@ 'openssl/crypto/provider_core.c', 'openssl/crypto/provider_predefined.c', 'openssl/crypto/punycode.c', + 'openssl/crypto/quic_vlint.c', 'openssl/crypto/self_test_core.c', + 'openssl/crypto/sleep.c', 'openssl/crypto/sparse_array.c', + 'openssl/crypto/ssl_err.c', 'openssl/crypto/threads_lib.c', 'openssl/crypto/threads_none.c', 'openssl/crypto/threads_pthread.c', 'openssl/crypto/threads_win.c', + 'openssl/crypto/time.c', 'openssl/crypto/trace.c', 'openssl/crypto/uid.c', 'openssl/crypto/md4/md4_dgst.c', @@ -542,6 +609,15 @@ 'openssl/crypto/md5/md5_sha1.c', 'openssl/crypto/mdc2/mdc2_one.c', 'openssl/crypto/mdc2/mdc2dgst.c', + 'openssl/crypto/ml_dsa/ml_dsa_encoders.c', + 'openssl/crypto/ml_dsa/ml_dsa_key.c', + 'openssl/crypto/ml_dsa/ml_dsa_key_compress.c', + 'openssl/crypto/ml_dsa/ml_dsa_matrix.c', + 'openssl/crypto/ml_dsa/ml_dsa_ntt.c', + 'openssl/crypto/ml_dsa/ml_dsa_params.c', + 'openssl/crypto/ml_dsa/ml_dsa_sample.c', + 'openssl/crypto/ml_dsa/ml_dsa_sign.c', + 'openssl/crypto/ml_kem/ml_kem.c', 'openssl/crypto/modes/cbc128.c', 'openssl/crypto/modes/ccm128.c', 'openssl/crypto/modes/cfb128.c', @@ -553,6 +629,7 @@ 'openssl/crypto/modes/siv128.c', 'openssl/crypto/modes/wrap128.c', 'openssl/crypto/modes/xts128.c', + 'openssl/crypto/modes/xts128gb.c', 'openssl/crypto/objects/o_names.c', 'openssl/crypto/objects/obj_dat.c', 'openssl/crypto/objects/obj_err.c', @@ -616,6 +693,7 @@ 'openssl/crypto/rand/rand_lib.c', 'openssl/crypto/rand/rand_meth.c', 'openssl/crypto/rand/rand_pool.c', + 'openssl/crypto/rand/rand_uniform.c', 'openssl/crypto/rand/randfile.c', 'openssl/crypto/rc2/rc2_cbc.c', 'openssl/crypto/rc2/rc2_ecb.c', @@ -664,6 +742,16 @@ 'openssl/crypto/sha/sha3.c', 'openssl/crypto/sha/sha512.c', 'openssl/crypto/siphash/siphash.c', + 'openssl/crypto/slh_dsa/slh_adrs.c', + 'openssl/crypto/slh_dsa/slh_dsa.c', + 'openssl/crypto/slh_dsa/slh_dsa_hash_ctx.c', + 'openssl/crypto/slh_dsa/slh_dsa_key.c', + 'openssl/crypto/slh_dsa/slh_fors.c', + 'openssl/crypto/slh_dsa/slh_hash.c', + 'openssl/crypto/slh_dsa/slh_hypertree.c', + 'openssl/crypto/slh_dsa/slh_params.c', + 'openssl/crypto/slh_dsa/slh_wots.c', + 'openssl/crypto/slh_dsa/slh_xmss.c', 'openssl/crypto/sm2/sm2_crypt.c', 'openssl/crypto/sm2/sm2_err.c', 'openssl/crypto/sm2/sm2_key.c', @@ -681,6 +769,12 @@ 'openssl/crypto/store/store_register.c', 'openssl/crypto/store/store_result.c', 'openssl/crypto/store/store_strings.c', + 'openssl/crypto/thread/arch/thread_none.c', + 'openssl/crypto/thread/arch/thread_posix.c', + 'openssl/crypto/thread/arch/thread_win.c', + 'openssl/crypto/thread/api.c', + 'openssl/crypto/thread/arch.c', + 'openssl/crypto/thread/internal.c', 'openssl/crypto/ts/ts_asn1.c', 'openssl/crypto/ts/ts_conf.c', 'openssl/crypto/ts/ts_err.c', @@ -709,14 +803,22 @@ 'openssl/crypto/x509/pcy_map.c', 'openssl/crypto/x509/pcy_node.c', 'openssl/crypto/x509/pcy_tree.c', + 'openssl/crypto/x509/t_acert.c', 'openssl/crypto/x509/t_crl.c', 'openssl/crypto/x509/t_req.c', 'openssl/crypto/x509/t_x509.c', + 'openssl/crypto/x509/v3_aaa.c', + 'openssl/crypto/x509/v3_ac_tgt.c', 'openssl/crypto/x509/v3_addr.c', 'openssl/crypto/x509/v3_admis.c', 'openssl/crypto/x509/v3_akeya.c', 'openssl/crypto/x509/v3_akid.c', 'openssl/crypto/x509/v3_asid.c', + 'openssl/crypto/x509/v3_attrdesc.c', + 'openssl/crypto/x509/v3_attrmap.c', + 'openssl/crypto/x509/v3_audit_id.c', + 'openssl/crypto/x509/v3_authattid.c', + 'openssl/crypto/x509/v3_battcons.c', 'openssl/crypto/x509/v3_bcons.c', 'openssl/crypto/x509/v3_bitst.c', 'openssl/crypto/x509/v3_conf.c', @@ -725,12 +827,17 @@ 'openssl/crypto/x509/v3_enum.c', 'openssl/crypto/x509/v3_extku.c', 'openssl/crypto/x509/v3_genn.c', + 'openssl/crypto/x509/v3_group_ac.c', 'openssl/crypto/x509/v3_ia5.c', + 'openssl/crypto/x509/v3_ind_iss.c', 'openssl/crypto/x509/v3_info.c', 'openssl/crypto/x509/v3_int.c', + 'openssl/crypto/x509/v3_iobo.c', 'openssl/crypto/x509/v3_ist.c', 'openssl/crypto/x509/v3_lib.c', 'openssl/crypto/x509/v3_ncons.c', + 'openssl/crypto/x509/v3_no_ass.c', + 'openssl/crypto/x509/v3_no_rev_avail.c', 'openssl/crypto/x509/v3_pci.c', 'openssl/crypto/x509/v3_pcia.c', 'openssl/crypto/x509/v3_pcons.c', @@ -738,13 +845,20 @@ 'openssl/crypto/x509/v3_pmaps.c', 'openssl/crypto/x509/v3_prn.c', 'openssl/crypto/x509/v3_purp.c', + 'openssl/crypto/x509/v3_rolespec.c', 'openssl/crypto/x509/v3_san.c', + 'openssl/crypto/x509/v3_sda.c', + 'openssl/crypto/x509/v3_single_use.c', 'openssl/crypto/x509/v3_skid.c', + 'openssl/crypto/x509/v3_soa_id.c', 'openssl/crypto/x509/v3_sxnet.c', + 'openssl/crypto/x509/v3_timespec.c', 'openssl/crypto/x509/v3_tlsf.c', + 'openssl/crypto/x509/v3_usernotice.c', 'openssl/crypto/x509/v3_utf8.c', 'openssl/crypto/x509/v3_utl.c', 'openssl/crypto/x509/v3err.c', + 'openssl/crypto/x509/x509_acert.c', 'openssl/crypto/x509/x509_att.c', 'openssl/crypto/x509/x509_cmp.c', 'openssl/crypto/x509/x509_d2.c', @@ -762,6 +876,7 @@ 'openssl/crypto/x509/x509_v3.c', 'openssl/crypto/x509/x509_vfy.c', 'openssl/crypto/x509/x509_vpm.c', + 'openssl/crypto/x509/x509aset.c', 'openssl/crypto/x509/x509cset.c', 'openssl/crypto/x509/x509name.c', 'openssl/crypto/x509/x509rset.c', @@ -771,6 +886,7 @@ 'openssl/crypto/x509/x_attrib.c', 'openssl/crypto/x509/x_crl.c', 'openssl/crypto/x509/x_exten.c', + 'openssl/crypto/x509/x_ietfatt.c', 'openssl/crypto/x509/x_name.c', 'openssl/crypto/x509/x_pubkey.c', 'openssl/crypto/x509/x_req.c', @@ -803,6 +919,9 @@ 'openssl/providers/implementations/ciphers/cipher_aes_ccm_hw.c', 'openssl/providers/implementations/ciphers/cipher_aes_gcm.c', 'openssl/providers/implementations/ciphers/cipher_aes_gcm_hw.c', + 'openssl/providers/implementations/ciphers/cipher_aes_gcm_siv.c', + 'openssl/providers/implementations/ciphers/cipher_aes_gcm_siv_hw.c', + 'openssl/providers/implementations/ciphers/cipher_aes_gcm_siv_polyval.c', 'openssl/providers/implementations/ciphers/cipher_aes_hw.c', 'openssl/providers/implementations/ciphers/cipher_aes_ocb.c', 'openssl/providers/implementations/ciphers/cipher_aes_ocb_hw.c', @@ -827,7 +946,13 @@ 'openssl/providers/implementations/ciphers/cipher_cts.c', 'openssl/providers/implementations/ciphers/cipher_null.c', 'openssl/providers/implementations/ciphers/cipher_sm4.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_ccm.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_ccm_hw.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_gcm.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_gcm_hw.c', 'openssl/providers/implementations/ciphers/cipher_sm4_hw.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_xts.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_xts_hw.c', 'openssl/providers/implementations/ciphers/cipher_tdes.c', 'openssl/providers/implementations/ciphers/cipher_tdes_common.c', 'openssl/providers/implementations/ciphers/cipher_tdes_default.c', @@ -856,11 +981,16 @@ 'openssl/providers/implementations/encode_decode/encode_key2ms.c', 'openssl/providers/implementations/encode_decode/encode_key2text.c', 'openssl/providers/implementations/encode_decode/endecoder_common.c', + 'openssl/providers/implementations/encode_decode/ml_common_codecs.c', + 'openssl/providers/implementations/encode_decode/ml_dsa_codecs.c', + 'openssl/providers/implementations/encode_decode/ml_kem_codecs.c', 'openssl/providers/implementations/exchange/dh_exch.c', 'openssl/providers/implementations/exchange/ecdh_exch.c', 'openssl/providers/implementations/exchange/ecx_exch.c', 'openssl/providers/implementations/exchange/kdf_exch.c', + 'openssl/providers/implementations/kdfs/argon2.c', 'openssl/providers/implementations/kdfs/hkdf.c', + 'openssl/providers/implementations/kdfs/hmacdrbg_kdf.c', 'openssl/providers/implementations/kdfs/kbkdf.c', 'openssl/providers/implementations/kdfs/krb5kdf.c', 'openssl/providers/implementations/kdfs/pbkdf2.c', @@ -871,6 +1001,11 @@ 'openssl/providers/implementations/kdfs/sskdf.c', 'openssl/providers/implementations/kdfs/tls1_prf.c', 'openssl/providers/implementations/kdfs/x942kdf.c', + 'openssl/providers/implementations/kem/ec_kem.c', + 'openssl/providers/implementations/kem/ecx_kem.c', + 'openssl/providers/implementations/kem/kem_util.c', + 'openssl/providers/implementations/kem/ml_kem_kem.c', + 'openssl/providers/implementations/kem/mlx_kem.c', 'openssl/providers/implementations/kem/rsa_kem.c', 'openssl/providers/implementations/keymgmt/dh_kmgmt.c', 'openssl/providers/implementations/keymgmt/dsa_kmgmt.c', @@ -878,7 +1013,11 @@ 'openssl/providers/implementations/keymgmt/ecx_kmgmt.c', 'openssl/providers/implementations/keymgmt/kdf_legacy_kmgmt.c', 'openssl/providers/implementations/keymgmt/mac_legacy_kmgmt.c', + 'openssl/providers/implementations/keymgmt/ml_dsa_kmgmt.c', + 'openssl/providers/implementations/keymgmt/ml_kem_kmgmt.c', + 'openssl/providers/implementations/keymgmt/mlx_kmgmt.c', 'openssl/providers/implementations/keymgmt/rsa_kmgmt.c', + 'openssl/providers/implementations/keymgmt/slh_dsa_kmgmt.c', 'openssl/providers/implementations/macs/blake2b_mac.c', 'openssl/providers/implementations/macs/blake2s_mac.c', 'openssl/providers/implementations/macs/cmac_prov.c', @@ -887,12 +1026,12 @@ 'openssl/providers/implementations/macs/kmac_prov.c', 'openssl/providers/implementations/macs/poly1305_prov.c', 'openssl/providers/implementations/macs/siphash_prov.c', - 'openssl/providers/implementations/rands/crngt.c', 'openssl/providers/implementations/rands/drbg.c', 'openssl/providers/implementations/rands/drbg_ctr.c', 'openssl/providers/implementations/rands/drbg_hash.c', 'openssl/providers/implementations/rands/drbg_hmac.c', 'openssl/providers/implementations/rands/seed_src.c', + 'openssl/providers/implementations/rands/seed_src_jitter.c', 'openssl/providers/implementations/rands/test_rng.c', 'openssl/providers/implementations/rands/seeding/rand_cpu_x86.c', 'openssl/providers/implementations/rands/seeding/rand_tsc.c', @@ -902,17 +1041,23 @@ 'openssl/providers/implementations/signature/ecdsa_sig.c', 'openssl/providers/implementations/signature/eddsa_sig.c', 'openssl/providers/implementations/signature/mac_legacy_sig.c', + 'openssl/providers/implementations/signature/ml_dsa_sig.c', 'openssl/providers/implementations/signature/rsa_sig.c', + 'openssl/providers/implementations/signature/slh_dsa_sig.c', 'openssl/providers/implementations/signature/sm2_sig.c', + 'openssl/providers/implementations/skeymgmt/aes_skmgmt.c', + 'openssl/providers/implementations/skeymgmt/generic.c', 'openssl/providers/implementations/storemgmt/file_store.c', 'openssl/providers/implementations/storemgmt/file_store_any2obj.c', - 'openssl/ssl/s3_cbc.c', + 'openssl/ssl/record/methods/ssl3_cbc.c', 'openssl/providers/common/der/der_dsa_key.c', 'openssl/providers/common/der/der_dsa_sig.c', 'openssl/providers/common/der/der_ec_key.c', 'openssl/providers/common/der/der_ec_sig.c', 'openssl/providers/common/der/der_ecx_key.c', + 'openssl/providers/common/der/der_ml_dsa_key.c', 'openssl/providers/common/der/der_rsa_key.c', + 'openssl/providers/common/der/der_slh_dsa_key.c', 'openssl/providers/common/provider_ctx.c', 'openssl/providers/common/provider_err.c', 'openssl/providers/implementations/ciphers/ciphercommon.c', @@ -923,7 +1068,7 @@ 'openssl/providers/implementations/ciphers/ciphercommon_gcm_hw.c', 'openssl/providers/implementations/ciphers/ciphercommon_hw.c', 'openssl/providers/implementations/digests/digestcommon.c', - 'openssl/ssl/record/tls_pad.c', + 'openssl/ssl/record/methods/tls_pad.c', 'openssl/providers/implementations/ciphers/cipher_blowfish.c', 'openssl/providers/implementations/ciphers/cipher_blowfish_hw.c', 'openssl/providers/implementations/ciphers/cipher_cast5.c', @@ -948,16 +1093,20 @@ 'openssl/providers/implementations/digests/ripemd_prov.c', 'openssl/providers/implementations/digests/wp_prov.c', 'openssl/providers/implementations/kdfs/pbkdf1.c', + 'openssl/providers/implementations/kdfs/pvkkdf.c', 'openssl/providers/prov_running.c', 'openssl/providers/legacyprov.c', ], 'openssl_sources_BSD-x86_64': [ + './config/archs/BSD-x86_64/no-asm/crypto/params_idx.c', './config/archs/BSD-x86_64/no-asm/providers/common/der/der_sm2_gen.c', './config/archs/BSD-x86_64/no-asm/providers/common/der/der_digests_gen.c', './config/archs/BSD-x86_64/no-asm/providers/common/der/der_dsa_gen.c', './config/archs/BSD-x86_64/no-asm/providers/common/der/der_ec_gen.c', './config/archs/BSD-x86_64/no-asm/providers/common/der/der_ecx_gen.c', + './config/archs/BSD-x86_64/no-asm/providers/common/der/der_ml_dsa_gen.c', './config/archs/BSD-x86_64/no-asm/providers/common/der/der_rsa_gen.c', + './config/archs/BSD-x86_64/no-asm/providers/common/der/der_slh_dsa_gen.c', './config/archs/BSD-x86_64/no-asm/providers/common/der/der_wrap_gen.c', './config/archs/BSD-x86_64/no-asm/providers/legacy.ld', './config/archs/BSD-x86_64/no-asm/providers/fips.ld', diff --git a/deps/openssl/config/archs/BSD-x86_64/no-asm/providers/common/der/der_ml_dsa_gen.c b/deps/openssl/config/archs/BSD-x86_64/no-asm/providers/common/der/der_ml_dsa_gen.c new file mode 100644 index 00000000000000..4a8a113a268578 --- /dev/null +++ b/deps/openssl/config/archs/BSD-x86_64/no-asm/providers/common/der/der_ml_dsa_gen.c @@ -0,0 +1,37 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from providers/common/der/der_ml_dsa_gen.c.in + * + * Copyright 2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include "prov/der_ml_dsa.h" + +/* Well known OIDs precompiled */ + +/* + * id-ml-dsa-44 OBJECT IDENTIFIER ::= { sigAlgs 17 } + */ +const unsigned char ossl_der_oid_id_ml_dsa_44[DER_OID_SZ_id_ml_dsa_44] = { + DER_OID_V_id_ml_dsa_44 +}; + +/* + * id-ml-dsa-65 OBJECT IDENTIFIER ::= { sigAlgs 18 } + */ +const unsigned char ossl_der_oid_id_ml_dsa_65[DER_OID_SZ_id_ml_dsa_65] = { + DER_OID_V_id_ml_dsa_65 +}; + +/* + * id-ml-dsa-87 OBJECT IDENTIFIER ::= { sigAlgs 19 } + */ +const unsigned char ossl_der_oid_id_ml_dsa_87[DER_OID_SZ_id_ml_dsa_87] = { + DER_OID_V_id_ml_dsa_87 +}; + diff --git a/deps/openssl/config/archs/BSD-x86_64/no-asm/providers/common/der/der_slh_dsa_gen.c b/deps/openssl/config/archs/BSD-x86_64/no-asm/providers/common/der/der_slh_dsa_gen.c new file mode 100644 index 00000000000000..1419a9515097dd --- /dev/null +++ b/deps/openssl/config/archs/BSD-x86_64/no-asm/providers/common/der/der_slh_dsa_gen.c @@ -0,0 +1,100 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from providers/common/der/der_slh_dsa_gen.c.in + * + * Copyright 2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include "prov/der_slh_dsa.h" + +/* Well known OIDs precompiled */ + +/* + * id-slh-dsa-sha2-128s OBJECT IDENTIFIER ::= { sigAlgs 20 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_128s[DER_OID_SZ_id_slh_dsa_sha2_128s] = { + DER_OID_V_id_slh_dsa_sha2_128s +}; + +/* + * id-slh-dsa-sha2-128f OBJECT IDENTIFIER ::= { sigAlgs 21 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_128f[DER_OID_SZ_id_slh_dsa_sha2_128f] = { + DER_OID_V_id_slh_dsa_sha2_128f +}; + +/* + * id-slh-dsa-sha2-192s OBJECT IDENTIFIER ::= { sigAlgs 22 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_192s[DER_OID_SZ_id_slh_dsa_sha2_192s] = { + DER_OID_V_id_slh_dsa_sha2_192s +}; + +/* + * id-slh-dsa-sha2-192f OBJECT IDENTIFIER ::= { sigAlgs 23 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_192f[DER_OID_SZ_id_slh_dsa_sha2_192f] = { + DER_OID_V_id_slh_dsa_sha2_192f +}; + +/* + * id-slh-dsa-sha2-256s OBJECT IDENTIFIER ::= { sigAlgs 24 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_256s[DER_OID_SZ_id_slh_dsa_sha2_256s] = { + DER_OID_V_id_slh_dsa_sha2_256s +}; + +/* + * id-slh-dsa-sha2-256f OBJECT IDENTIFIER ::= { sigAlgs 25 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_256f[DER_OID_SZ_id_slh_dsa_sha2_256f] = { + DER_OID_V_id_slh_dsa_sha2_256f +}; + +/* + * id-slh-dsa-shake-128s OBJECT IDENTIFIER ::= { sigAlgs 26 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_128s[DER_OID_SZ_id_slh_dsa_shake_128s] = { + DER_OID_V_id_slh_dsa_shake_128s +}; + +/* + * id-slh-dsa-shake-128f OBJECT IDENTIFIER ::= { sigAlgs 27 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_128f[DER_OID_SZ_id_slh_dsa_shake_128f] = { + DER_OID_V_id_slh_dsa_shake_128f +}; + +/* + * id-slh-dsa-shake-192s OBJECT IDENTIFIER ::= { sigAlgs 28 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_192s[DER_OID_SZ_id_slh_dsa_shake_192s] = { + DER_OID_V_id_slh_dsa_shake_192s +}; + +/* + * id-slh-dsa-shake-192f OBJECT IDENTIFIER ::= { sigAlgs 29 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_192f[DER_OID_SZ_id_slh_dsa_shake_192f] = { + DER_OID_V_id_slh_dsa_shake_192f +}; + +/* + * id-slh-dsa-shake-256s OBJECT IDENTIFIER ::= { sigAlgs 30 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_256s[DER_OID_SZ_id_slh_dsa_shake_256s] = { + DER_OID_V_id_slh_dsa_shake_256s +}; + +/* + * id-slh-dsa-shake-256f OBJECT IDENTIFIER ::= { sigAlgs 31 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_256f[DER_OID_SZ_id_slh_dsa_shake_256f] = { + DER_OID_V_id_slh_dsa_shake_256f +}; + diff --git a/deps/openssl/config/archs/BSD-x86_64/no-asm/providers/common/include/prov/der_ml_dsa.h b/deps/openssl/config/archs/BSD-x86_64/no-asm/providers/common/include/prov/der_ml_dsa.h new file mode 100644 index 00000000000000..c55f780ab4527c --- /dev/null +++ b/deps/openssl/config/archs/BSD-x86_64/no-asm/providers/common/include/prov/der_ml_dsa.h @@ -0,0 +1,40 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from providers/common/include/prov/der_ml_dsa.h.in + * + * Copyright 2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include "internal/der.h" +#include "crypto/ml_dsa.h" + +/* Well known OIDs precompiled */ + +/* + * id-ml-dsa-44 OBJECT IDENTIFIER ::= { sigAlgs 17 } + */ +#define DER_OID_V_id_ml_dsa_44 DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x11 +#define DER_OID_SZ_id_ml_dsa_44 11 +extern const unsigned char ossl_der_oid_id_ml_dsa_44[DER_OID_SZ_id_ml_dsa_44]; + +/* + * id-ml-dsa-65 OBJECT IDENTIFIER ::= { sigAlgs 18 } + */ +#define DER_OID_V_id_ml_dsa_65 DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x12 +#define DER_OID_SZ_id_ml_dsa_65 11 +extern const unsigned char ossl_der_oid_id_ml_dsa_65[DER_OID_SZ_id_ml_dsa_65]; + +/* + * id-ml-dsa-87 OBJECT IDENTIFIER ::= { sigAlgs 19 } + */ +#define DER_OID_V_id_ml_dsa_87 DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x13 +#define DER_OID_SZ_id_ml_dsa_87 11 +extern const unsigned char ossl_der_oid_id_ml_dsa_87[DER_OID_SZ_id_ml_dsa_87]; + + +int ossl_DER_w_algorithmIdentifier_ML_DSA(WPACKET *pkt, int tag, ML_DSA_KEY *key); diff --git a/deps/openssl/config/archs/BSD-x86_64/no-asm/providers/common/include/prov/der_slh_dsa.h b/deps/openssl/config/archs/BSD-x86_64/no-asm/providers/common/include/prov/der_slh_dsa.h new file mode 100644 index 00000000000000..760f8e7699be72 --- /dev/null +++ b/deps/openssl/config/archs/BSD-x86_64/no-asm/providers/common/include/prov/der_slh_dsa.h @@ -0,0 +1,103 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from providers/common/include/prov/der_slh_dsa.h.in + * + * Copyright 2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include "internal/der.h" +#include "crypto/slh_dsa.h" + +/* Well known OIDs precompiled */ + +/* + * id-slh-dsa-sha2-128s OBJECT IDENTIFIER ::= { sigAlgs 20 } + */ +#define DER_OID_V_id_slh_dsa_sha2_128s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x14 +#define DER_OID_SZ_id_slh_dsa_sha2_128s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_128s[DER_OID_SZ_id_slh_dsa_sha2_128s]; + +/* + * id-slh-dsa-sha2-128f OBJECT IDENTIFIER ::= { sigAlgs 21 } + */ +#define DER_OID_V_id_slh_dsa_sha2_128f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x15 +#define DER_OID_SZ_id_slh_dsa_sha2_128f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_128f[DER_OID_SZ_id_slh_dsa_sha2_128f]; + +/* + * id-slh-dsa-sha2-192s OBJECT IDENTIFIER ::= { sigAlgs 22 } + */ +#define DER_OID_V_id_slh_dsa_sha2_192s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x16 +#define DER_OID_SZ_id_slh_dsa_sha2_192s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_192s[DER_OID_SZ_id_slh_dsa_sha2_192s]; + +/* + * id-slh-dsa-sha2-192f OBJECT IDENTIFIER ::= { sigAlgs 23 } + */ +#define DER_OID_V_id_slh_dsa_sha2_192f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x17 +#define DER_OID_SZ_id_slh_dsa_sha2_192f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_192f[DER_OID_SZ_id_slh_dsa_sha2_192f]; + +/* + * id-slh-dsa-sha2-256s OBJECT IDENTIFIER ::= { sigAlgs 24 } + */ +#define DER_OID_V_id_slh_dsa_sha2_256s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x18 +#define DER_OID_SZ_id_slh_dsa_sha2_256s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_256s[DER_OID_SZ_id_slh_dsa_sha2_256s]; + +/* + * id-slh-dsa-sha2-256f OBJECT IDENTIFIER ::= { sigAlgs 25 } + */ +#define DER_OID_V_id_slh_dsa_sha2_256f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x19 +#define DER_OID_SZ_id_slh_dsa_sha2_256f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_256f[DER_OID_SZ_id_slh_dsa_sha2_256f]; + +/* + * id-slh-dsa-shake-128s OBJECT IDENTIFIER ::= { sigAlgs 26 } + */ +#define DER_OID_V_id_slh_dsa_shake_128s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1A +#define DER_OID_SZ_id_slh_dsa_shake_128s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_128s[DER_OID_SZ_id_slh_dsa_shake_128s]; + +/* + * id-slh-dsa-shake-128f OBJECT IDENTIFIER ::= { sigAlgs 27 } + */ +#define DER_OID_V_id_slh_dsa_shake_128f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1B +#define DER_OID_SZ_id_slh_dsa_shake_128f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_128f[DER_OID_SZ_id_slh_dsa_shake_128f]; + +/* + * id-slh-dsa-shake-192s OBJECT IDENTIFIER ::= { sigAlgs 28 } + */ +#define DER_OID_V_id_slh_dsa_shake_192s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1C +#define DER_OID_SZ_id_slh_dsa_shake_192s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_192s[DER_OID_SZ_id_slh_dsa_shake_192s]; + +/* + * id-slh-dsa-shake-192f OBJECT IDENTIFIER ::= { sigAlgs 29 } + */ +#define DER_OID_V_id_slh_dsa_shake_192f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1D +#define DER_OID_SZ_id_slh_dsa_shake_192f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_192f[DER_OID_SZ_id_slh_dsa_shake_192f]; + +/* + * id-slh-dsa-shake-256s OBJECT IDENTIFIER ::= { sigAlgs 30 } + */ +#define DER_OID_V_id_slh_dsa_shake_256s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1E +#define DER_OID_SZ_id_slh_dsa_shake_256s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_256s[DER_OID_SZ_id_slh_dsa_shake_256s]; + +/* + * id-slh-dsa-shake-256f OBJECT IDENTIFIER ::= { sigAlgs 31 } + */ +#define DER_OID_V_id_slh_dsa_shake_256f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1F +#define DER_OID_SZ_id_slh_dsa_shake_256f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_256f[DER_OID_SZ_id_slh_dsa_shake_256f]; + + +int ossl_DER_w_algorithmIdentifier_SLH_DSA(WPACKET *pkt, int tag, SLH_DSA_KEY *key); diff --git a/deps/openssl/config/archs/VC-WIN32/asm/apps/progs.c b/deps/openssl/config/archs/VC-WIN32/asm/apps/progs.c index 43cef00799b86e..acc204a3e6e781 100644 --- a/deps/openssl/config/archs/VC-WIN32/asm/apps/progs.c +++ b/deps/openssl/config/archs/VC-WIN32/asm/apps/progs.c @@ -89,6 +89,7 @@ FUNCTION functions[] = { {FT_general, "s_time", s_time_main, s_time_options, NULL, NULL}, #endif {FT_general, "sess_id", sess_id_main, sess_id_options, NULL, NULL}, + {FT_general, "skeyutl", skeyutl_main, skeyutl_options, NULL, NULL}, {FT_general, "smime", smime_main, smime_options, NULL, NULL}, {FT_general, "speed", speed_main, speed_options, NULL, NULL}, {FT_general, "spkac", spkac_main, spkac_options, NULL, NULL}, @@ -225,9 +226,15 @@ FUNCTION functions[] = { {FT_cipher, "camellia-256-ecb", enc_main, enc_options, NULL}, #endif {FT_cipher, "base64", enc_main, enc_options, NULL}, -#ifdef ZLIB +#ifndef OPENSSL_NO_ZLIB {FT_cipher, "zlib", enc_main, enc_options, NULL}, #endif +#ifndef OPENSSL_NO_BROTLI + {FT_cipher, "brotli", enc_main, enc_options, NULL}, +#endif +#ifndef OPENSSL_NO_ZSTD + {FT_cipher, "zstd", enc_main, enc_options, NULL}, +#endif #ifndef OPENSSL_NO_DES {FT_cipher, "des", enc_main, enc_options, NULL}, #endif diff --git a/deps/openssl/config/archs/VC-WIN32/asm/configdata.pm b/deps/openssl/config/archs/VC-WIN32/asm/configdata.pm index 2f73525b1e423a..4e6a966fb2cfc9 100644 --- a/deps/openssl/config/archs/VC-WIN32/asm/configdata.pm +++ b/deps/openssl/config/archs/VC-WIN32/asm/configdata.pm @@ -19,6 +19,7 @@ our %config = ( "/nologo" ], "AS" => "nasm", + "ASFLAGS" => [], "CC" => "gcc", "CFLAGS" => [ "/W3 /wd4090 /nologo /O2" @@ -29,6 +30,7 @@ our %config = ( "CPPINCLUDES" => [], "CXXFLAGS" => [], "FIPSKEY" => "f4556650ac31d35461610bac4ed81b1a181b2d8a43ea2854cbae22ca74560813", + "FIPS_VENDOR" => "OpenSSL FIPS Provider", "HASHBANGPERL" => "/usr/bin/env perl", "LD" => "link", "LDFLAGS" => [ @@ -43,7 +45,7 @@ our %config = ( "RANLIB" => "ranlib", "RC" => "rc", "RCFLAGS" => [], - "api" => "30000", + "api" => "30500", "b32" => "1", "b64" => "0", "b64l" => "0", @@ -65,11 +67,13 @@ our %config = ( "doc/build.info", "test/build.info", "engines/build.info", + "exporters/build.info", "crypto/objects/build.info", "crypto/buffer/build.info", "crypto/bio/build.info", "crypto/stack/build.info", "crypto/lhash/build.info", + "crypto/hashtable/build.info", "crypto/rand/build.info", "crypto/evp/build.info", "crypto/asn1/build.info", @@ -87,6 +91,7 @@ our %config = ( "crypto/md5/build.info", "crypto/sha/build.info", "crypto/mdc2/build.info", + "crypto/ml_kem/build.info", "crypto/hmac/build.info", "crypto/ripemd/build.info", "crypto/whrlpool/build.info", @@ -128,11 +133,19 @@ our %config = ( "crypto/cmp/build.info", "crypto/encode_decode/build.info", "crypto/ffc/build.info", + "crypto/hpke/build.info", + "crypto/thread/build.info", + "crypto/ml_dsa/build.info", + "crypto/slh_dsa/build.info", + "ssl/record/build.info", + "ssl/rio/build.info", + "ssl/quic/build.info", "apps/lib/build.info", "providers/common/build.info", "providers/implementations/build.info", "providers/fips/build.info", "doc/man1/build.info", + "ssl/record/methods/build.info", "providers/common/der/build.info", "providers/implementations/digests/build.info", "providers/implementations/ciphers/build.info", @@ -146,6 +159,7 @@ our %config = ( "providers/implementations/encode_decode/build.info", "providers/implementations/storemgmt/build.info", "providers/implementations/kem/build.info", + "providers/implementations/skeymgmt/build.info", "providers/implementations/rands/seeding/build.info" ], "build_metadata" => "", @@ -165,7 +179,7 @@ our %config = ( ], "dynamic_engines" => "0", "ex_libs" => [], - "full_version" => "3.0.17", + "full_version" => "3.5.1", "includes" => [], "lflags" => [], "lib_defines" => [ @@ -175,37 +189,51 @@ our %config = ( "major" => "3", "makedep_scheme" => "VC", "makedepcmd" => "\$(CC) /Zs /showIncludes", - "minor" => "0", + "minor" => "5", "openssl_api_defines" => [ - "OPENSSL_CONFIGURED_API=30000" + "OPENSSL_CONFIGURED_API=30500" ], "openssl_feature_defines" => [ "OPENSSL_RAND_SEED_OS", "OPENSSL_THREADS", "OPENSSL_NO_AFALGENG", "OPENSSL_NO_ASAN", + "OPENSSL_NO_BROTLI", + "OPENSSL_NO_BROTLI_DYNAMIC", "OPENSSL_NO_COMP", "OPENSSL_NO_CRYPTO_MDEBUG", "OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE", + "OPENSSL_NO_DEMOS", "OPENSSL_NO_DEVCRYPTOENG", "OPENSSL_NO_EC_NISTP_64_GCC_128", "OPENSSL_NO_EGD", "OPENSSL_NO_EXTERNAL_TESTS", + "OPENSSL_NO_FIPS_JITTER", "OPENSSL_NO_FUZZ_AFL", "OPENSSL_NO_FUZZ_LIBFUZZER", + "OPENSSL_NO_H3DEMO", + "OPENSSL_NO_HQINTEROP", + "OPENSSL_NO_JITTER", "OPENSSL_NO_KTLS", "OPENSSL_NO_LOADERENG", "OPENSSL_NO_MD2", "OPENSSL_NO_MSAN", + "OPENSSL_NO_PIE", "OPENSSL_NO_RC5", "OPENSSL_NO_SCTP", "OPENSSL_NO_SSL3", "OPENSSL_NO_SSL3_METHOD", + "OPENSSL_NO_SSLKEYLOG", + "OPENSSL_NO_TFO", "OPENSSL_NO_TRACE", "OPENSSL_NO_UBSAN", "OPENSSL_NO_UNIT_TEST", "OPENSSL_NO_UPLINK", "OPENSSL_NO_WEAK_SSL_CIPHERS", + "OPENSSL_NO_ZLIB", + "OPENSSL_NO_ZLIB_DYNAMIC", + "OPENSSL_NO_ZSTD", + "OPENSSL_NO_ZSTD_DYNAMIC", "OPENSSL_NO_DYNAMIC_ENGINE" ], "openssl_other_defines" => [ @@ -215,11 +243,11 @@ our %config = ( "OPENSSL_SYS_WIN32" ], "openssldir" => "", - "options" => "enable-ssl-trace enable-fips no-afalgeng no-asan no-buildtest-c++ no-comp no-crypto-mdebug no-crypto-mdebug-backtrace no-devcryptoeng no-dynamic-engine no-ec_nistp_64_gcc_128 no-egd no-external-tests no-fuzz-afl no-fuzz-libfuzzer no-ktls no-loadereng no-md2 no-msan no-rc5 no-sctp no-shared no-ssl3 no-ssl3-method no-trace no-ubsan no-unit-test no-uplink no-weak-ssl-ciphers no-zlib no-zlib-dynamic", - "patch" => "17", + "options" => "enable-ssl-trace enable-fips no-afalgeng no-asan no-brotli no-brotli-dynamic no-buildtest-c++ no-comp no-crypto-mdebug no-crypto-mdebug-backtrace no-demos no-devcryptoeng no-dynamic-engine no-ec_nistp_64_gcc_128 no-egd no-external-tests no-fips-jitter no-fuzz-afl no-fuzz-libfuzzer no-h3demo no-hqinterop no-jitter no-ktls no-loadereng no-md2 no-msan no-pie no-rc5 no-sctp no-shared no-ssl3 no-ssl3-method no-sslkeylog no-tfo no-trace no-ubsan no-unit-test no-uplink no-weak-ssl-ciphers no-zlib no-zlib-dynamic no-zstd no-zstd-dynamic", + "patch" => "1", "perl_archname" => "x86_64-linux-gnu-thread-multi", "perl_cmd" => "/usr/bin/perl", - "perl_version" => "5.38.2", + "perl_version" => "5.34.0", "perlargv" => [ "no-comp", "no-shared", @@ -249,6 +277,7 @@ our %config = ( "LDLIBS" => undef, "MT" => undef, "MTFLAGS" => undef, + "OBJCOPY" => undef, "OPENSSL_LOCAL_CONFIG_DIR" => undef, "PERL" => undef, "RANLIB" => undef, @@ -272,7 +301,7 @@ our %config = ( "shlib_version" => "3", "sourcedir" => ".", "target" => "VC-WIN32", - "version" => "3.0.17" + "version" => "3.5.1" ); our %target = ( "AR" => "lib", @@ -287,7 +316,7 @@ our %target = ( "LDFLAGS" => "/nologo /debug", "MT" => "mt", "MTFLAGS" => "-nologo", - "RANLIB" => "CODE(0x55b1c3240528)", + "RANLIB" => "CODE(0x55e0c94592c0)", "RC" => "rc", "_conf_fname_int" => [ "Configurations/00-base-templates.conf", @@ -370,6 +399,8 @@ our %target = ( our @disablables = ( "acvp-tests", "afalgeng", + "apps", + "argon2", "aria", "asan", "asm", @@ -380,11 +411,14 @@ our @disablables = ( "autoload-config", "bf", "blake2", + "brotli", + "brotli-dynamic", "buildtest-c++", "bulk", "cached-fetch", "camellia", "capieng", + "winstore", "cast", "chacha", "cmac", @@ -393,11 +427,16 @@ our @disablables = ( "comp", "crypto-mdebug", "ct", + "default-thread-pool", + "demos", + "h3demo", + "hqinterop", "deprecated", "des", "devcryptoeng", "dgram", "dh", + "docs", "dsa", "dso", "dtls", @@ -407,6 +446,7 @@ our @disablables = ( "ec_nistp_64_gcc_128", "ecdh", "ecdsa", + "ecx", "egd", "engine", "err", @@ -414,10 +454,15 @@ our @disablables = ( "filenames", "fips", "fips-securitychecks", + "fips-post", + "fips-jitter", "fuzz-afl", "fuzz-libfuzzer", "gost", + "http", "idea", + "integrity-only-ciphers", + "jitter", "ktls", "legacy", "loadereng", @@ -425,6 +470,8 @@ our @disablables = ( "md2", "md4", "mdc2", + "ml-dsa", + "ml-kem", "module", "msan", "multiblock", @@ -433,10 +480,13 @@ our @disablables = ( "ocsp", "padlockeng", "pic", + "pie", "pinshared", "poly1305", "posix-io", "psk", + "quic", + "unstable-qlog", "rc2", "rc4", "rc5", @@ -450,7 +500,9 @@ our @disablables = ( "shared", "siphash", "siv", + "slh-dsa", "sm2", + "sm2-precomp", "sm3", "sm4", "sock", @@ -461,9 +513,13 @@ our @disablables = ( "ssl-trace", "static-engine", "stdio", + "sslkeylog", "tests", + "tfo", + "thread-pool", "threads", "tls", + "tls-deprecated-ec", "trace", "ts", "ubsan", @@ -474,6 +530,8 @@ our @disablables = ( "whirlpool", "zlib", "zlib-dynamic", + "zstd", + "zstd-dynamic", "ssl3", "ssl3-method", "tls1", @@ -494,33 +552,45 @@ our @disablables_int = ( our %disabled = ( "afalgeng" => "option", "asan" => "default", + "brotli" => "default", + "brotli-dynamic" => "default", "buildtest-c++" => "default", "comp" => "option", "crypto-mdebug" => "default", "crypto-mdebug-backtrace" => "default", + "demos" => "default", "devcryptoeng" => "default", "dynamic-engine" => "cascade", "ec_nistp_64_gcc_128" => "default", "egd" => "default", "external-tests" => "default", + "fips-jitter" => "default", "fuzz-afl" => "default", "fuzz-libfuzzer" => "default", + "h3demo" => "default", + "hqinterop" => "default", + "jitter" => "default", "ktls" => "default", "loadereng" => "cascade", "md2" => "default", "msan" => "default", + "pie" => "default", "rc5" => "default", "sctp" => "default", "shared" => "option", "ssl3" => "default", "ssl3-method" => "default", + "sslkeylog" => "default", + "tfo" => "default", "trace" => "default", "ubsan" => "default", "unit-test" => "default", "uplink" => "cascade", "weak-ssl-ciphers" => "default", "zlib" => "default", - "zlib-dynamic" => "default" + "zlib-dynamic" => "default", + "zstd" => "default", + "zstd-dynamic" => "default" ); our %withargs = (); our %unified_info = ( @@ -746,6 +816,11 @@ our %unified_info = ( "pod" => "1" } }, + "doc/man1/openssl-skeyutl.pod" => { + "doc/man1/openssl-skeyutl.pod.in" => { + "pod" => "1" + } + }, "doc/man1/openssl-smime.pod" => { "doc/man1/openssl-smime.pod.in" => { "pod" => "1" @@ -803,6 +878,21 @@ our %unified_info = ( } }, "generate" => { + "exporters/OpenSSLConfig.cmake" => { + "exporter" => "cmake" + }, + "exporters/OpenSSLConfigVersion.cmake" => { + "exporter" => "cmake" + }, + "exporters/libcrypto.pc" => { + "exporter" => "pkg-config" + }, + "exporters/libssl.pc" => { + "exporter" => "pkg-config" + }, + "exporters/openssl.pc" => { + "exporter" => "pkg-config" + }, "include/openssl/configuration.h" => { "skip" => "1" } @@ -823,6 +913,9 @@ our %unified_info = ( "providers/liblegacy.a" => { "noinst" => "1" }, + "providers/libtemplate.a" => { + "noinst" => "1" + }, "test/libtestutil.a" => { "has_main" => "1", "noinst" => "1" @@ -840,6 +933,9 @@ our %unified_info = ( } }, "programs" => { + "fuzz/acert-test" => { + "noinst" => "1" + }, "fuzz/asn1-test" => { "noinst" => "1" }, @@ -870,9 +966,60 @@ our %unified_info = ( "fuzz/ct-test" => { "noinst" => "1" }, + "fuzz/decoder-test" => { + "noinst" => "1" + }, + "fuzz/dtlsclient-test" => { + "noinst" => "1" + }, + "fuzz/dtlsserver-test" => { + "noinst" => "1" + }, + "fuzz/hashtable-test" => { + "noinst" => "1" + }, + "fuzz/ml-dsa-test" => { + "noinst" => "1" + }, + "fuzz/ml-kem-test" => { + "noinst" => "1" + }, + "fuzz/pem-test" => { + "noinst" => "1" + }, + "fuzz/provider-test" => { + "noinst" => "1" + }, + "fuzz/punycode-test" => { + "noinst" => "1" + }, + "fuzz/quic-client-test" => { + "noinst" => "1" + }, + "fuzz/quic-lcidm-test" => { + "noinst" => "1" + }, + "fuzz/quic-rcidm-test" => { + "noinst" => "1" + }, + "fuzz/quic-server-test" => { + "noinst" => "1" + }, + "fuzz/quic-srtm-test" => { + "noinst" => "1" + }, "fuzz/server-test" => { "noinst" => "1" }, + "fuzz/slh-dsa-test" => { + "noinst" => "1" + }, + "fuzz/smime-test" => { + "noinst" => "1" + }, + "fuzz/v3name-test" => { + "noinst" => "1" + }, "fuzz/x509-test" => { "noinst" => "1" }, @@ -924,18 +1071,30 @@ our %unified_info = ( "test/bftest" => { "noinst" => "1" }, + "test/bio_addr_test" => { + "noinst" => "1" + }, + "test/bio_base64_test" => { + "noinst" => "1" + }, "test/bio_callback_test" => { "noinst" => "1" }, "test/bio_core_test" => { "noinst" => "1" }, + "test/bio_dgram_test" => { + "noinst" => "1" + }, "test/bio_enc_test" => { "noinst" => "1" }, "test/bio_memleak_test" => { "noinst" => "1" }, + "test/bio_meth_test" => { + "noinst" => "1" + }, "test/bio_prefix_text" => { "noinst" => "1" }, @@ -945,6 +1104,9 @@ our %unified_info = ( "test/bio_readbuffer_test" => { "noinst" => "1" }, + "test/bio_tfo_test" => { + "noinst" => "1" + }, "test/bioprinttest" => { "noinst" => "1" }, @@ -954,6 +1116,9 @@ our %unified_info = ( "test/bntest" => { "noinst" => "1" }, + "test/build_wincrypt_test" => { + "noinst" => "1" + }, "test/buildtest_c_aes" => { "noinst" => "1" }, @@ -969,6 +1134,9 @@ our %unified_info = ( "test/buildtest_c_buffer" => { "noinst" => "1" }, + "test/buildtest_c_byteorder" => { + "noinst" => "1" + }, "test/buildtest_c_camellia" => { "noinst" => "1" }, @@ -993,9 +1161,6 @@ our %unified_info = ( "test/buildtest_c_core_dispatch" => { "noinst" => "1" }, - "test/buildtest_c_core_names" => { - "noinst" => "1" - }, "test/buildtest_c_core_object" => { "noinst" => "1" }, @@ -1020,6 +1185,9 @@ our %unified_info = ( "test/buildtest_c_e_os2" => { "noinst" => "1" }, + "test/buildtest_c_e_ostime" => { + "noinst" => "1" + }, "test/buildtest_c_ebcdic" => { "noinst" => "1" }, @@ -1047,12 +1215,18 @@ our %unified_info = ( "test/buildtest_c_hmac" => { "noinst" => "1" }, + "test/buildtest_c_hpke" => { + "noinst" => "1" + }, "test/buildtest_c_http" => { "noinst" => "1" }, "test/buildtest_c_idea" => { "noinst" => "1" }, + "test/buildtest_c_indicator" => { + "noinst" => "1" + }, "test/buildtest_c_kdf" => { "noinst" => "1" }, @@ -1068,6 +1242,9 @@ our %unified_info = ( "test/buildtest_c_mdc2" => { "noinst" => "1" }, + "test/buildtest_c_ml_kem" => { + "noinst" => "1" + }, "test/buildtest_c_modes" => { "noinst" => "1" }, @@ -1098,6 +1275,9 @@ our %unified_info = ( "test/buildtest_c_provider" => { "noinst" => "1" }, + "test/buildtest_c_quic" => { + "noinst" => "1" + }, "test/buildtest_c_rand" => { "noinst" => "1" }, @@ -1140,6 +1320,9 @@ our %unified_info = ( "test/buildtest_c_symhacks" => { "noinst" => "1" }, + "test/buildtest_c_thread" => { + "noinst" => "1" + }, "test/buildtest_c_tls1" => { "noinst" => "1" }, @@ -1155,6 +1338,12 @@ our %unified_info = ( "test/buildtest_c_whrlpool" => { "noinst" => "1" }, + "test/byteorder_test" => { + "noinst" => "1" + }, + "test/ca_internals_test" => { + "noinst" => "1" + }, "test/casttest" => { "noinst" => "1" }, @@ -1239,6 +1428,9 @@ our %unified_info = ( "test/danetest" => { "noinst" => "1" }, + "test/decoder_propq_test" => { + "noinst" => "1" + }, "test/defltfips_test" => { "noinst" => "1" }, @@ -1311,15 +1503,24 @@ our %unified_info = ( "test/evp_pkey_ctx_new_from_name" => { "noinst" => "1" }, + "test/evp_pkey_dhkem_test" => { + "noinst" => "1" + }, "test/evp_pkey_dparams_test" => { "noinst" => "1" }, "test/evp_pkey_provided_test" => { "noinst" => "1" }, + "test/evp_skey_test" => { + "noinst" => "1" + }, "test/evp_test" => { "noinst" => "1" }, + "test/evp_xof_test" => { + "noinst" => "1" + }, "test/exdatatest" => { "noinst" => "1" }, @@ -1347,6 +1548,9 @@ our %unified_info = ( "test/hmactest" => { "noinst" => "1" }, + "test/hpke_test" => { + "noinst" => "1" + }, "test/http_test" => { "noinst" => "1" }, @@ -1356,12 +1560,18 @@ our %unified_info = ( "test/igetest" => { "noinst" => "1" }, + "test/json_test" => { + "noinst" => "1" + }, "test/keymgmt_internal_test" => { "noinst" => "1" }, "test/lhash_test" => { "noinst" => "1" }, + "test/list_test" => { + "noinst" => "1" + }, "test/localetest" => { "noinst" => "1" }, @@ -1371,9 +1581,21 @@ our %unified_info = ( "test/mdc2test" => { "noinst" => "1" }, + "test/membio_test" => { + "noinst" => "1" + }, "test/memleaktest" => { "noinst" => "1" }, + "test/ml_dsa_test" => { + "noinst" => "1" + }, + "test/ml_kem_evp_extra_test" => { + "noinst" => "1" + }, + "test/ml_kem_internal_test" => { + "noinst" => "1" + }, "test/modes_internal_test" => { "noinst" => "1" }, @@ -1392,6 +1614,9 @@ our %unified_info = ( "test/packettest" => { "noinst" => "1" }, + "test/pairwise_fail_test" => { + "noinst" => "1" + }, "test/param_build_test" => { "noinst" => "1" }, @@ -1416,6 +1641,9 @@ our %unified_info = ( "test/pemtest" => { "noinst" => "1" }, + "test/pkcs12_api_test" => { + "noinst" => "1" + }, "test/pkcs12_format_test" => { "noinst" => "1" }, @@ -1431,6 +1659,9 @@ our %unified_info = ( "test/poly1305_internal_test" => { "noinst" => "1" }, + "test/priority_queue_test" => { + "noinst" => "1" + }, "test/property_test" => { "noinst" => "1" }, @@ -1440,6 +1671,9 @@ our %unified_info = ( "test/provfetchtest" => { "noinst" => "1" }, + "test/provider_default_search_path_test" => { + "noinst" => "1" + }, "test/provider_fallback_test" => { "noinst" => "1" }, @@ -1458,6 +1692,72 @@ our %unified_info = ( "test/punycode_test" => { "noinst" => "1" }, + "test/quic_ackm_test" => { + "noinst" => "1" + }, + "test/quic_cc_test" => { + "noinst" => "1" + }, + "test/quic_cfq_test" => { + "noinst" => "1" + }, + "test/quic_client_test" => { + "noinst" => "1" + }, + "test/quic_fc_test" => { + "noinst" => "1" + }, + "test/quic_fifd_test" => { + "noinst" => "1" + }, + "test/quic_lcidm_test" => { + "noinst" => "1" + }, + "test/quic_multistream_test" => { + "noinst" => "1" + }, + "test/quic_newcid_test" => { + "noinst" => "1" + }, + "test/quic_qlog_test" => { + "noinst" => "1" + }, + "test/quic_radix_test" => { + "noinst" => "1" + }, + "test/quic_rcidm_test" => { + "noinst" => "1" + }, + "test/quic_record_test" => { + "noinst" => "1" + }, + "test/quic_srt_gen_test" => { + "noinst" => "1" + }, + "test/quic_srtm_test" => { + "noinst" => "1" + }, + "test/quic_stream_test" => { + "noinst" => "1" + }, + "test/quic_tserver_test" => { + "noinst" => "1" + }, + "test/quic_txp_test" => { + "noinst" => "1" + }, + "test/quic_txpim_test" => { + "noinst" => "1" + }, + "test/quic_wire_test" => { + "noinst" => "1" + }, + "test/quicapitest" => { + "noinst" => "1" + }, + "test/quicfaultstest" => { + "noinst" => "1" + }, "test/rand_status_test" => { "noinst" => "1" }, @@ -1473,12 +1773,15 @@ our %unified_info = ( "test/rc5test" => { "noinst" => "1" }, - "test/rdrand_sanitytest" => { + "test/rdcpu_sanitytest" => { "noinst" => "1" }, "test/recordlentest" => { "noinst" => "1" }, + "test/rpktest" => { + "noinst" => "1" + }, "test/rsa_complex" => { "noinst" => "1" }, @@ -1491,6 +1794,12 @@ our %unified_info = ( "test/rsa_test" => { "noinst" => "1" }, + "test/rsa_x931_test" => { + "noinst" => "1" + }, + "test/safe_math_test" => { + "noinst" => "1" + }, "test/sanitytest" => { "noinst" => "1" }, @@ -1506,6 +1815,9 @@ our %unified_info = ( "test/siphash_internal_test" => { "noinst" => "1" }, + "test/slh_dsa_test" => { + "noinst" => "1" + }, "test/sm2_internal_test" => { "noinst" => "1" }, @@ -1527,6 +1839,9 @@ our %unified_info = ( "test/ssl_ctx_test" => { "noinst" => "1" }, + "test/ssl_handshake_rtt_test" => { + "noinst" => "1" + }, "test/ssl_old_test" => { "noinst" => "1" }, @@ -1548,12 +1863,18 @@ our %unified_info = ( "test/stack_test" => { "noinst" => "1" }, + "test/strtoultest" => { + "noinst" => "1" + }, "test/sysdefaulttest" => { "noinst" => "1" }, "test/test_test" => { "noinst" => "1" }, + "test/threadpool_test" => { + "noinst" => "1" + }, "test/threadstest" => { "noinst" => "1" }, @@ -1563,12 +1884,18 @@ our %unified_info = ( "test/time_offset_test" => { "noinst" => "1" }, + "test/time_test" => { + "noinst" => "1" + }, "test/tls13ccstest" => { "noinst" => "1" }, "test/tls13encryptiontest" => { "noinst" => "1" }, + "test/tls13groupselection_test" => { + "noinst" => "1" + }, "test/trace_api_test" => { "noinst" => "1" }, @@ -1596,6 +1923,9 @@ our %unified_info = ( "test/wpackettest" => { "noinst" => "1" }, + "test/x509_acert_test" => { + "noinst" => "1" + }, "test/x509_check_cert_pkey_test" => { "noinst" => "1" }, @@ -1605,6 +1935,15 @@ our %unified_info = ( "test/x509_internal_test" => { "noinst" => "1" }, + "test/x509_load_cert_file_test" => { + "noinst" => "1" + }, + "test/x509_req_test" => { + "noinst" => "1" + }, + "test/x509_test" => { + "noinst" => "1" + }, "test/x509_time_test" => { "noinst" => "1" }, @@ -1704,6 +2043,9 @@ our %unified_info = ( "MD5_ASM", "RC4_ASM" ], + "test/endecode_test" => [ + "STATIC_LEGACY" + ], "test/evp_extra_test" => [ "STATIC_LEGACY" ], @@ -1716,14 +2058,21 @@ our %unified_info = ( }, "depends" => { "" => [ + "OpenSSLConfigVersion.cmake", + "crypto/params_idx.c", + "exporters/OpenSSLConfigVersion.cmake", + "exporters/openssl.pc", "include/crypto/bn_conf.h", "include/crypto/dso_conf.h", + "include/internal/param_names.h", "include/openssl/asn1.h", "include/openssl/asn1t.h", "include/openssl/bio.h", "include/openssl/cmp.h", "include/openssl/cms.h", + "include/openssl/comp.h", "include/openssl/conf.h", + "include/openssl/core_names.h", "include/openssl/crmf.h", "include/openssl/crypto.h", "include/openssl/ct.h", @@ -1740,10 +2089,22 @@ our %unified_info = ( "include/openssl/ssl.h", "include/openssl/ui.h", "include/openssl/x509.h", + "include/openssl/x509_acert.h", "include/openssl/x509_vfy.h", "include/openssl/x509v3.h", + "openssl.pc", "test/provider_internal_test.cnf" ], + "OpenSSLConfig.cmake" => [ + "builddata.pm" + ], + "OpenSSLConfigVersion.cmake" => [ + "OpenSSLConfig.cmake", + "builddata.pm" + ], + "apps/ca_internals_test-bin-ca.o" => [ + "apps/progs.h" + ], "apps/lib/cmp_client_test-bin-cmp_mock_srv.o" => [ "apps/progs.h" ], @@ -1889,6 +2250,9 @@ our %unified_info = ( "apps/openssl-bin-sess_id.o" => [ "apps/progs.h" ], + "apps/openssl-bin-skeyutl.o" => [ + "apps/progs.h" + ], "apps/openssl-bin-smime.o" => [ "apps/progs.h" ], @@ -1977,6 +2341,9 @@ our %unified_info = ( "crypto/libcrypto-lib-info.o" => [ "crypto/buildinf.h" ], + "crypto/params_idx.c" => [ + "util/perl|OpenSSL/paramnames.pm" + ], "crypto/rc4/rc4-586.S" => [ "crypto/perlasm/x86asm.pl" ], @@ -2142,6 +2509,9 @@ our %unified_info = ( "doc/html/man1/openssl-sess_id.html" => [ "doc/man1/openssl-sess_id.pod" ], + "doc/html/man1/openssl-skeyutl.html" => [ + "doc/man1/openssl-skeyutl.pod" + ], "doc/html/man1/openssl-smime.html" => [ "doc/man1/openssl-smime.pod" ], @@ -2283,6 +2653,9 @@ our %unified_info = ( "doc/html/man3/BIO_get_ex_new_index.html" => [ "doc/man3/BIO_get_ex_new_index.pod" ], + "doc/html/man3/BIO_get_rpoll_descriptor.html" => [ + "doc/man3/BIO_get_rpoll_descriptor.pod" + ], "doc/html/man3/BIO_meth_new.html" => [ "doc/man3/BIO_meth_new.pod" ], @@ -2319,6 +2692,9 @@ our %unified_info = ( "doc/html/man3/BIO_s_datagram.html" => [ "doc/man3/BIO_s_datagram.pod" ], + "doc/html/man3/BIO_s_dgram_pair.html" => [ + "doc/man3/BIO_s_dgram_pair.pod" + ], "doc/html/man3/BIO_s_fd.html" => [ "doc/man3/BIO_s_fd.pod" ], @@ -2334,6 +2710,9 @@ our %unified_info = ( "doc/html/man3/BIO_s_socket.html" => [ "doc/man3/BIO_s_socket.pod" ], + "doc/html/man3/BIO_sendmmsg.html" => [ + "doc/man3/BIO_sendmmsg.pod" + ], "doc/html/man3/BIO_set_callback.html" => [ "doc/man3/BIO_set_callback.pod" ], @@ -2406,6 +2785,9 @@ our %unified_info = ( "doc/html/man3/BUF_MEM_new.html" => [ "doc/man3/BUF_MEM_new.pod" ], + "doc/html/man3/CMAC_CTX.html" => [ + "doc/man3/CMAC_CTX.pod" + ], "doc/html/man3/CMS_EncryptedData_decrypt.html" => [ "doc/man3/CMS_EncryptedData_decrypt.pod" ], @@ -2472,6 +2854,9 @@ our %unified_info = ( "doc/html/man3/CMS_verify_receipt.html" => [ "doc/man3/CMS_verify_receipt.pod" ], + "doc/html/man3/COMP_CTX_new.html" => [ + "doc/man3/COMP_CTX_new.pod" + ], "doc/html/man3/CONF_modules_free.html" => [ "doc/man3/CONF_modules_free.pod" ], @@ -2571,6 +2956,12 @@ our %unified_info = ( "doc/html/man3/DTLS_set_timer_cb.html" => [ "doc/man3/DTLS_set_timer_cb.pod" ], + "doc/html/man3/DTLSv1_get_timeout.html" => [ + "doc/man3/DTLSv1_get_timeout.pod" + ], + "doc/html/man3/DTLSv1_handle_timeout.html" => [ + "doc/man3/DTLSv1_handle_timeout.pod" + ], "doc/html/man3/DTLSv1_listen.html" => [ "doc/man3/DTLSv1_listen.pod" ], @@ -2709,6 +3100,9 @@ our %unified_info = ( "doc/html/man3/EVP_PKEY_CTX_get0_pkey.html" => [ "doc/man3/EVP_PKEY_CTX_get0_pkey.pod" ], + "doc/html/man3/EVP_PKEY_CTX_get_algor.html" => [ + "doc/man3/EVP_PKEY_CTX_get_algor.pod" + ], "doc/html/man3/EVP_PKEY_CTX_new.html" => [ "doc/man3/EVP_PKEY_CTX_new.pod" ], @@ -2826,6 +3220,12 @@ our %unified_info = ( "doc/html/man3/EVP_SIGNATURE.html" => [ "doc/man3/EVP_SIGNATURE.pod" ], + "doc/html/man3/EVP_SKEY.html" => [ + "doc/man3/EVP_SKEY.pod" + ], + "doc/html/man3/EVP_SKEYMGMT.html" => [ + "doc/man3/EVP_SKEYMGMT.pod" + ], "doc/html/man3/EVP_SealInit.html" => [ "doc/man3/EVP_SealInit.pod" ], @@ -2913,6 +3313,9 @@ our %unified_info = ( "doc/html/man3/EVP_whirlpool.html" => [ "doc/man3/EVP_whirlpool.pod" ], + "doc/html/man3/GENERAL_NAME.html" => [ + "doc/man3/GENERAL_NAME.pod" + ], "doc/html/man3/HMAC.html" => [ "doc/man3/HMAC.pod" ], @@ -2985,9 +3388,15 @@ our %unified_info = ( "doc/html/man3/OPENSSL_load_builtin_modules.html" => [ "doc/man3/OPENSSL_load_builtin_modules.pod" ], + "doc/html/man3/OPENSSL_load_u16_le.html" => [ + "doc/man3/OPENSSL_load_u16_le.pod" + ], "doc/html/man3/OPENSSL_malloc.html" => [ "doc/man3/OPENSSL_malloc.pod" ], + "doc/html/man3/OPENSSL_riscvcap.html" => [ + "doc/man3/OPENSSL_riscvcap.pod" + ], "doc/html/man3/OPENSSL_s390xcap.html" => [ "doc/man3/OPENSSL_s390xcap.pod" ], @@ -3003,12 +3412,18 @@ our %unified_info = ( "doc/html/man3/OSSL_CALLBACK.html" => [ "doc/man3/OSSL_CALLBACK.pod" ], + "doc/html/man3/OSSL_CMP_ATAV_set0.html" => [ + "doc/man3/OSSL_CMP_ATAV_set0.pod" + ], "doc/html/man3/OSSL_CMP_CTX_new.html" => [ "doc/man3/OSSL_CMP_CTX_new.pod" ], "doc/html/man3/OSSL_CMP_HDR_get0_transactionID.html" => [ "doc/man3/OSSL_CMP_HDR_get0_transactionID.pod" ], + "doc/html/man3/OSSL_CMP_ITAV_new_caCerts.html" => [ + "doc/man3/OSSL_CMP_ITAV_new_caCerts.pod" + ], "doc/html/man3/OSSL_CMP_ITAV_set0.html" => [ "doc/man3/OSSL_CMP_ITAV_set0.pod" ], @@ -3078,9 +3493,18 @@ our %unified_info = ( "doc/html/man3/OSSL_ENCODER_to_bio.html" => [ "doc/man3/OSSL_ENCODER_to_bio.pod" ], + "doc/html/man3/OSSL_ERR_STATE_save.html" => [ + "doc/man3/OSSL_ERR_STATE_save.pod" + ], "doc/html/man3/OSSL_ESS_check_signing_certs.html" => [ "doc/man3/OSSL_ESS_check_signing_certs.pod" ], + "doc/html/man3/OSSL_GENERAL_NAMES_print.html" => [ + "doc/man3/OSSL_GENERAL_NAMES_print.pod" + ], + "doc/html/man3/OSSL_HPKE_CTX_new.html" => [ + "doc/man3/OSSL_HPKE_CTX_new.pod" + ], "doc/html/man3/OSSL_HTTP_REQ_CTX.html" => [ "doc/man3/OSSL_HTTP_REQ_CTX.pod" ], @@ -3090,12 +3514,24 @@ our %unified_info = ( "doc/html/man3/OSSL_HTTP_transfer.html" => [ "doc/man3/OSSL_HTTP_transfer.pod" ], + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX.html" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX.pod" + ], + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX_print.html" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX_print.pod" + ], + "doc/html/man3/OSSL_INDICATOR_set_callback.html" => [ + "doc/man3/OSSL_INDICATOR_set_callback.pod" + ], "doc/html/man3/OSSL_ITEM.html" => [ "doc/man3/OSSL_ITEM.pod" ], "doc/html/man3/OSSL_LIB_CTX.html" => [ "doc/man3/OSSL_LIB_CTX.pod" ], + "doc/html/man3/OSSL_LIB_CTX_set_conf_diagnostics.html" => [ + "doc/man3/OSSL_LIB_CTX_set_conf_diagnostics.pod" + ], "doc/html/man3/OSSL_PARAM.html" => [ "doc/man3/OSSL_PARAM.pod" ], @@ -3111,9 +3547,15 @@ our %unified_info = ( "doc/html/man3/OSSL_PARAM_int.html" => [ "doc/man3/OSSL_PARAM_int.pod" ], + "doc/html/man3/OSSL_PARAM_print_to_bio.html" => [ + "doc/man3/OSSL_PARAM_print_to_bio.pod" + ], "doc/html/man3/OSSL_PROVIDER.html" => [ "doc/man3/OSSL_PROVIDER.pod" ], + "doc/html/man3/OSSL_QUIC_client_method.html" => [ + "doc/man3/OSSL_QUIC_client_method.pod" + ], "doc/html/man3/OSSL_SELF_TEST_new.html" => [ "doc/man3/OSSL_SELF_TEST_new.pod" ], @@ -3138,6 +3580,9 @@ our %unified_info = ( "doc/html/man3/OSSL_STORE_open.html" => [ "doc/man3/OSSL_STORE_open.pod" ], + "doc/html/man3/OSSL_sleep.html" => [ + "doc/man3/OSSL_sleep.pod" + ], "doc/html/man3/OSSL_trace_enabled.html" => [ "doc/man3/OSSL_trace_enabled.pod" ], @@ -3153,6 +3598,9 @@ our %unified_info = ( "doc/html/man3/OpenSSL_version.html" => [ "doc/man3/OpenSSL_version.pod" ], + "doc/html/man3/PBMAC1_get1_pbkdf2_param.html" => [ + "doc/man3/PBMAC1_get1_pbkdf2_param.pod" + ], "doc/html/man3/PEM_X509_INFO_read_bio_ex.html" => [ "doc/man3/PEM_X509_INFO_read_bio_ex.pod" ], @@ -3189,6 +3637,9 @@ our %unified_info = ( "doc/html/man3/PKCS12_SAFEBAG_get1_cert.html" => [ "doc/man3/PKCS12_SAFEBAG_get1_cert.pod" ], + "doc/html/man3/PKCS12_SAFEBAG_set0_attrs.html" => [ + "doc/man3/PKCS12_SAFEBAG_set0_attrs.pod" + ], "doc/html/man3/PKCS12_add1_attr_by_NID.html" => [ "doc/man3/PKCS12_add1_attr_by_NID.pod" ], @@ -3462,6 +3913,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set0_CA_list.html" => [ "doc/man3/SSL_CTX_set0_CA_list.pod" ], + "doc/html/man3/SSL_CTX_set1_cert_comp_preference.html" => [ + "doc/man3/SSL_CTX_set1_cert_comp_preference.pod" + ], "doc/html/man3/SSL_CTX_set1_curves.html" => [ "doc/man3/SSL_CTX_set1_curves.pod" ], @@ -3501,6 +3955,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_default_passwd_cb.html" => [ "doc/man3/SSL_CTX_set_default_passwd_cb.pod" ], + "doc/html/man3/SSL_CTX_set_domain_flags.html" => [ + "doc/man3/SSL_CTX_set_domain_flags.pod" + ], "doc/html/man3/SSL_CTX_set_generate_session_id.html" => [ "doc/man3/SSL_CTX_set_generate_session_id.pod" ], @@ -3522,6 +3979,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_msg_callback.html" => [ "doc/man3/SSL_CTX_set_msg_callback.pod" ], + "doc/html/man3/SSL_CTX_set_new_pending_conn_cb.html" => [ + "doc/man3/SSL_CTX_set_new_pending_conn_cb.pod" + ], "doc/html/man3/SSL_CTX_set_num_tickets.html" => [ "doc/man3/SSL_CTX_set_num_tickets.pod" ], @@ -3636,6 +4096,9 @@ our %unified_info = ( "doc/html/man3/SSL_accept.html" => [ "doc/man3/SSL_accept.pod" ], + "doc/html/man3/SSL_accept_stream.html" => [ + "doc/man3/SSL_accept_stream.pod" + ], "doc/html/man3/SSL_alert_type_string.html" => [ "doc/man3/SSL_alert_type_string.pod" ], @@ -3663,9 +4126,21 @@ our %unified_info = ( "doc/html/man3/SSL_free.html" => [ "doc/man3/SSL_free.pod" ], + "doc/html/man3/SSL_get0_connection.html" => [ + "doc/man3/SSL_get0_connection.pod" + ], + "doc/html/man3/SSL_get0_group_name.html" => [ + "doc/man3/SSL_get0_group_name.pod" + ], + "doc/html/man3/SSL_get0_peer_rpk.html" => [ + "doc/man3/SSL_get0_peer_rpk.pod" + ], "doc/html/man3/SSL_get0_peer_scts.html" => [ "doc/man3/SSL_get0_peer_scts.pod" ], + "doc/html/man3/SSL_get1_builtin_sigalgs.html" => [ + "doc/man3/SSL_get1_builtin_sigalgs.pod" + ], "doc/html/man3/SSL_get_SSL_CTX.html" => [ "doc/man3/SSL_get_SSL_CTX.pod" ], @@ -3681,6 +4156,9 @@ our %unified_info = ( "doc/html/man3/SSL_get_client_random.html" => [ "doc/man3/SSL_get_client_random.pod" ], + "doc/html/man3/SSL_get_conn_close_info.html" => [ + "doc/man3/SSL_get_conn_close_info.pod" + ], "doc/html/man3/SSL_get_current_cipher.html" => [ "doc/man3/SSL_get_current_cipher.pod" ], @@ -3690,12 +4168,18 @@ our %unified_info = ( "doc/html/man3/SSL_get_error.html" => [ "doc/man3/SSL_get_error.pod" ], + "doc/html/man3/SSL_get_event_timeout.html" => [ + "doc/man3/SSL_get_event_timeout.pod" + ], "doc/html/man3/SSL_get_extms_support.html" => [ "doc/man3/SSL_get_extms_support.pod" ], "doc/html/man3/SSL_get_fd.html" => [ "doc/man3/SSL_get_fd.pod" ], + "doc/html/man3/SSL_get_handshake_rtt.html" => [ + "doc/man3/SSL_get_handshake_rtt.pod" + ], "doc/html/man3/SSL_get_peer_cert_chain.html" => [ "doc/man3/SSL_get_peer_cert_chain.pod" ], @@ -3714,12 +4198,24 @@ our %unified_info = ( "doc/html/man3/SSL_get_rbio.html" => [ "doc/man3/SSL_get_rbio.pod" ], + "doc/html/man3/SSL_get_rpoll_descriptor.html" => [ + "doc/man3/SSL_get_rpoll_descriptor.pod" + ], "doc/html/man3/SSL_get_session.html" => [ "doc/man3/SSL_get_session.pod" ], "doc/html/man3/SSL_get_shared_sigalgs.html" => [ "doc/man3/SSL_get_shared_sigalgs.pod" ], + "doc/html/man3/SSL_get_stream_id.html" => [ + "doc/man3/SSL_get_stream_id.pod" + ], + "doc/html/man3/SSL_get_stream_read_state.html" => [ + "doc/man3/SSL_get_stream_read_state.pod" + ], + "doc/html/man3/SSL_get_value_uint.html" => [ + "doc/man3/SSL_get_value_uint.pod" + ], "doc/html/man3/SSL_get_verify_result.html" => [ "doc/man3/SSL_get_verify_result.pod" ], @@ -3729,9 +4225,15 @@ our %unified_info = ( "doc/html/man3/SSL_group_to_name.html" => [ "doc/man3/SSL_group_to_name.pod" ], + "doc/html/man3/SSL_handle_events.html" => [ + "doc/man3/SSL_handle_events.pod" + ], "doc/html/man3/SSL_in_init.html" => [ "doc/man3/SSL_in_init.pod" ], + "doc/html/man3/SSL_inject_net_dgram.html" => [ + "doc/man3/SSL_inject_net_dgram.pod" + ], "doc/html/man3/SSL_key_update.html" => [ "doc/man3/SSL_key_update.pod" ], @@ -3744,9 +4246,21 @@ our %unified_info = ( "doc/html/man3/SSL_new.html" => [ "doc/man3/SSL_new.pod" ], + "doc/html/man3/SSL_new_domain.html" => [ + "doc/man3/SSL_new_domain.pod" + ], + "doc/html/man3/SSL_new_listener.html" => [ + "doc/man3/SSL_new_listener.pod" + ], + "doc/html/man3/SSL_new_stream.html" => [ + "doc/man3/SSL_new_stream.pod" + ], "doc/html/man3/SSL_pending.html" => [ "doc/man3/SSL_pending.pod" ], + "doc/html/man3/SSL_poll.html" => [ + "doc/man3/SSL_poll.pod" + ], "doc/html/man3/SSL_read.html" => [ "doc/man3/SSL_read.pod" ], @@ -3762,24 +4276,45 @@ our %unified_info = ( "doc/html/man3/SSL_set1_host.html" => [ "doc/man3/SSL_set1_host.pod" ], + "doc/html/man3/SSL_set1_initial_peer_addr.html" => [ + "doc/man3/SSL_set1_initial_peer_addr.pod" + ], + "doc/html/man3/SSL_set1_server_cert_type.html" => [ + "doc/man3/SSL_set1_server_cert_type.pod" + ], "doc/html/man3/SSL_set_async_callback.html" => [ "doc/man3/SSL_set_async_callback.pod" ], "doc/html/man3/SSL_set_bio.html" => [ "doc/man3/SSL_set_bio.pod" ], + "doc/html/man3/SSL_set_blocking_mode.html" => [ + "doc/man3/SSL_set_blocking_mode.pod" + ], "doc/html/man3/SSL_set_connect_state.html" => [ "doc/man3/SSL_set_connect_state.pod" ], + "doc/html/man3/SSL_set_default_stream_mode.html" => [ + "doc/man3/SSL_set_default_stream_mode.pod" + ], "doc/html/man3/SSL_set_fd.html" => [ "doc/man3/SSL_set_fd.pod" ], + "doc/html/man3/SSL_set_incoming_stream_policy.html" => [ + "doc/man3/SSL_set_incoming_stream_policy.pod" + ], + "doc/html/man3/SSL_set_quic_tls_cbs.html" => [ + "doc/man3/SSL_set_quic_tls_cbs.pod" + ], "doc/html/man3/SSL_set_retry_verify.html" => [ "doc/man3/SSL_set_retry_verify.pod" ], "doc/html/man3/SSL_set_session.html" => [ "doc/man3/SSL_set_session.pod" ], + "doc/html/man3/SSL_set_session_secret_cb.html" => [ + "doc/man3/SSL_set_session_secret_cb.pod" + ], "doc/html/man3/SSL_set_shutdown.html" => [ "doc/man3/SSL_set_shutdown.pod" ], @@ -3792,6 +4327,12 @@ our %unified_info = ( "doc/html/man3/SSL_state_string.html" => [ "doc/man3/SSL_state_string.pod" ], + "doc/html/man3/SSL_stream_conclude.html" => [ + "doc/man3/SSL_stream_conclude.pod" + ], + "doc/html/man3/SSL_stream_reset.html" => [ + "doc/man3/SSL_stream_reset.pod" + ], "doc/html/man3/SSL_want.html" => [ "doc/man3/SSL_want.pod" ], @@ -3801,8 +4342,8 @@ our %unified_info = ( "doc/html/man3/TS_RESP_CTX_new.html" => [ "doc/man3/TS_RESP_CTX_new.pod" ], - "doc/html/man3/TS_VERIFY_CTX_set_certs.html" => [ - "doc/man3/TS_VERIFY_CTX_set_certs.pod" + "doc/html/man3/TS_VERIFY_CTX.html" => [ + "doc/man3/TS_VERIFY_CTX.pod" ], "doc/html/man3/UI_STRING.html" => [ "doc/man3/UI_STRING.pod" @@ -3822,6 +4363,21 @@ our %unified_info = ( "doc/html/man3/X509V3_set_ctx.html" => [ "doc/man3/X509V3_set_ctx.pod" ], + "doc/html/man3/X509_ACERT_add1_attr.html" => [ + "doc/man3/X509_ACERT_add1_attr.pod" + ], + "doc/html/man3/X509_ACERT_add_attr_nconf.html" => [ + "doc/man3/X509_ACERT_add_attr_nconf.pod" + ], + "doc/html/man3/X509_ACERT_get0_holder_baseCertId.html" => [ + "doc/man3/X509_ACERT_get0_holder_baseCertId.pod" + ], + "doc/html/man3/X509_ACERT_get_attr.html" => [ + "doc/man3/X509_ACERT_get_attr.pod" + ], + "doc/html/man3/X509_ACERT_print_ex.html" => [ + "doc/man3/X509_ACERT_print_ex.pod" + ], "doc/html/man3/X509_ALGOR_dup.html" => [ "doc/man3/X509_ALGOR_dup.pod" ], @@ -3870,6 +4426,9 @@ our %unified_info = ( "doc/html/man3/X509_SIG_get0.html" => [ "doc/man3/X509_SIG_get0.pod" ], + "doc/html/man3/X509_STORE_CTX_get_by_subject.html" => [ + "doc/man3/X509_STORE_CTX_get_by_subject.pod" + ], "doc/html/man3/X509_STORE_CTX_get_error.html" => [ "doc/man3/X509_STORE_CTX_get_error.pod" ], @@ -3936,6 +4495,9 @@ our %unified_info = ( "doc/html/man3/X509_get0_uids.html" => [ "doc/man3/X509_get0_uids.pod" ], + "doc/html/man3/X509_get_default_cert_file.html" => [ + "doc/man3/X509_get_default_cert_file.pod" + ], "doc/html/man3/X509_get_extension_flags.html" => [ "doc/man3/X509_get_extension_flags.pod" ], @@ -4059,9 +4621,15 @@ our %unified_info = ( "doc/html/man7/EVP_CIPHER-SM4.html" => [ "doc/man7/EVP_CIPHER-SM4.pod" ], + "doc/html/man7/EVP_KDF-ARGON2.html" => [ + "doc/man7/EVP_KDF-ARGON2.pod" + ], "doc/html/man7/EVP_KDF-HKDF.html" => [ "doc/man7/EVP_KDF-HKDF.pod" ], + "doc/html/man7/EVP_KDF-HMAC-DRBG.html" => [ + "doc/man7/EVP_KDF-HMAC-DRBG.pod" + ], "doc/html/man7/EVP_KDF-KB.html" => [ "doc/man7/EVP_KDF-KB.pod" ], @@ -4077,6 +4645,9 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-PKCS12KDF.html" => [ "doc/man7/EVP_KDF-PKCS12KDF.pod" ], + "doc/html/man7/EVP_KDF-PVKKDF.html" => [ + "doc/man7/EVP_KDF-PVKKDF.pod" + ], "doc/html/man7/EVP_KDF-SCRYPT.html" => [ "doc/man7/EVP_KDF-SCRYPT.pod" ], @@ -4101,9 +4672,18 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-X963.html" => [ "doc/man7/EVP_KDF-X963.pod" ], + "doc/html/man7/EVP_KEM-EC.html" => [ + "doc/man7/EVP_KEM-EC.pod" + ], + "doc/html/man7/EVP_KEM-ML-KEM.html" => [ + "doc/man7/EVP_KEM-ML-KEM.pod" + ], "doc/html/man7/EVP_KEM-RSA.html" => [ "doc/man7/EVP_KEM-RSA.pod" ], + "doc/html/man7/EVP_KEM-X25519.html" => [ + "doc/man7/EVP_KEM-X25519.pod" + ], "doc/html/man7/EVP_KEYEXCH-DH.html" => [ "doc/man7/EVP_KEYEXCH-DH.pod" ], @@ -4137,6 +4717,9 @@ our %unified_info = ( "doc/html/man7/EVP_MD-BLAKE2.html" => [ "doc/man7/EVP_MD-BLAKE2.pod" ], + "doc/html/man7/EVP_MD-KECCAK.html" => [ + "doc/man7/EVP_MD-KECCAK.pod" + ], "doc/html/man7/EVP_MD-MD2.html" => [ "doc/man7/EVP_MD-MD2.pod" ], @@ -4194,15 +4777,27 @@ our %unified_info = ( "doc/html/man7/EVP_PKEY-HMAC.html" => [ "doc/man7/EVP_PKEY-HMAC.pod" ], + "doc/html/man7/EVP_PKEY-ML-DSA.html" => [ + "doc/man7/EVP_PKEY-ML-DSA.pod" + ], + "doc/html/man7/EVP_PKEY-ML-KEM.html" => [ + "doc/man7/EVP_PKEY-ML-KEM.pod" + ], "doc/html/man7/EVP_PKEY-RSA.html" => [ "doc/man7/EVP_PKEY-RSA.pod" ], + "doc/html/man7/EVP_PKEY-SLH-DSA.html" => [ + "doc/man7/EVP_PKEY-SLH-DSA.pod" + ], "doc/html/man7/EVP_PKEY-SM2.html" => [ "doc/man7/EVP_PKEY-SM2.pod" ], "doc/html/man7/EVP_PKEY-X25519.html" => [ "doc/man7/EVP_PKEY-X25519.pod" ], + "doc/html/man7/EVP_RAND-CRNG-TEST.html" => [ + "doc/man7/EVP_RAND-CRNG-TEST.pod" + ], "doc/html/man7/EVP_RAND-CTR-DRBG.html" => [ "doc/man7/EVP_RAND-CTR-DRBG.pod" ], @@ -4212,6 +4807,9 @@ our %unified_info = ( "doc/html/man7/EVP_RAND-HMAC-DRBG.html" => [ "doc/man7/EVP_RAND-HMAC-DRBG.pod" ], + "doc/html/man7/EVP_RAND-JITTER.html" => [ + "doc/man7/EVP_RAND-JITTER.pod" + ], "doc/html/man7/EVP_RAND-SEED-SRC.html" => [ "doc/man7/EVP_RAND-SEED-SRC.pod" ], @@ -4233,9 +4831,15 @@ our %unified_info = ( "doc/html/man7/EVP_SIGNATURE-HMAC.html" => [ "doc/man7/EVP_SIGNATURE-HMAC.pod" ], + "doc/html/man7/EVP_SIGNATURE-ML-DSA.html" => [ + "doc/man7/EVP_SIGNATURE-ML-DSA.pod" + ], "doc/html/man7/EVP_SIGNATURE-RSA.html" => [ "doc/man7/EVP_SIGNATURE-RSA.pod" ], + "doc/html/man7/EVP_SIGNATURE-SLH-DSA.html" => [ + "doc/man7/EVP_SIGNATURE-SLH-DSA.pod" + ], "doc/html/man7/OSSL_PROVIDER-FIPS.html" => [ "doc/man7/OSSL_PROVIDER-FIPS.pod" ], @@ -4251,6 +4855,9 @@ our %unified_info = ( "doc/html/man7/OSSL_PROVIDER-null.html" => [ "doc/man7/OSSL_PROVIDER-null.pod" ], + "doc/html/man7/OSSL_STORE-winstore.html" => [ + "doc/man7/OSSL_STORE-winstore.pod" + ], "doc/html/man7/RAND.html" => [ "doc/man7/RAND.pod" ], @@ -4263,9 +4870,6 @@ our %unified_info = ( "doc/html/man7/bio.html" => [ "doc/man7/bio.pod" ], - "doc/html/man7/crypto.html" => [ - "doc/man7/crypto.pod" - ], "doc/html/man7/ct.html" => [ "doc/man7/ct.pod" ], @@ -4296,9 +4900,6 @@ our %unified_info = ( "doc/html/man7/life_cycle-rand.html" => [ "doc/man7/life_cycle-rand.pod" ], - "doc/html/man7/migration_guide.html" => [ - "doc/man7/migration_guide.pod" - ], "doc/html/man7/openssl-core.h.html" => [ "doc/man7/openssl-core.h.pod" ], @@ -4314,12 +4915,66 @@ our %unified_info = ( "doc/html/man7/openssl-glossary.html" => [ "doc/man7/openssl-glossary.pod" ], + "doc/html/man7/openssl-qlog.html" => [ + "doc/man7/openssl-qlog.pod" + ], + "doc/html/man7/openssl-quic-concurrency.html" => [ + "doc/man7/openssl-quic-concurrency.pod" + ], + "doc/html/man7/openssl-quic.html" => [ + "doc/man7/openssl-quic.pod" + ], "doc/html/man7/openssl-threads.html" => [ "doc/man7/openssl-threads.pod" ], "doc/html/man7/openssl_user_macros.html" => [ "doc/man7/openssl_user_macros.pod" ], + "doc/html/man7/ossl-guide-introduction.html" => [ + "doc/man7/ossl-guide-introduction.pod" + ], + "doc/html/man7/ossl-guide-libcrypto-introduction.html" => [ + "doc/man7/ossl-guide-libcrypto-introduction.pod" + ], + "doc/html/man7/ossl-guide-libraries-introduction.html" => [ + "doc/man7/ossl-guide-libraries-introduction.pod" + ], + "doc/html/man7/ossl-guide-libssl-introduction.html" => [ + "doc/man7/ossl-guide-libssl-introduction.pod" + ], + "doc/html/man7/ossl-guide-migration.html" => [ + "doc/man7/ossl-guide-migration.pod" + ], + "doc/html/man7/ossl-guide-quic-client-block.html" => [ + "doc/man7/ossl-guide-quic-client-block.pod" + ], + "doc/html/man7/ossl-guide-quic-client-non-block.html" => [ + "doc/man7/ossl-guide-quic-client-non-block.pod" + ], + "doc/html/man7/ossl-guide-quic-introduction.html" => [ + "doc/man7/ossl-guide-quic-introduction.pod" + ], + "doc/html/man7/ossl-guide-quic-multi-stream.html" => [ + "doc/man7/ossl-guide-quic-multi-stream.pod" + ], + "doc/html/man7/ossl-guide-quic-server-block.html" => [ + "doc/man7/ossl-guide-quic-server-block.pod" + ], + "doc/html/man7/ossl-guide-quic-server-non-block.html" => [ + "doc/man7/ossl-guide-quic-server-non-block.pod" + ], + "doc/html/man7/ossl-guide-tls-client-block.html" => [ + "doc/man7/ossl-guide-tls-client-block.pod" + ], + "doc/html/man7/ossl-guide-tls-client-non-block.html" => [ + "doc/man7/ossl-guide-tls-client-non-block.pod" + ], + "doc/html/man7/ossl-guide-tls-introduction.html" => [ + "doc/man7/ossl-guide-tls-introduction.pod" + ], + "doc/html/man7/ossl-guide-tls-server-block.html" => [ + "doc/man7/ossl-guide-tls-server-block.pod" + ], "doc/html/man7/ossl_store-file.html" => [ "doc/man7/ossl_store-file.pod" ], @@ -4374,6 +5029,9 @@ our %unified_info = ( "doc/html/man7/provider-signature.html" => [ "doc/man7/provider-signature.pod" ], + "doc/html/man7/provider-skeymgmt.html" => [ + "doc/man7/provider-skeymgmt.pod" + ], "doc/html/man7/provider-storemgmt.html" => [ "doc/man7/provider-storemgmt.pod" ], @@ -4383,9 +5041,6 @@ our %unified_info = ( "doc/html/man7/proxy-certificates.html" => [ "doc/man7/proxy-certificates.pod" ], - "doc/html/man7/ssl.html" => [ - "doc/man7/ssl.pod" - ], "doc/html/man7/x509.html" => [ "doc/man7/x509.pod" ], @@ -4533,6 +5188,9 @@ our %unified_info = ( "doc/man/man1/openssl-sess_id.1" => [ "doc/man1/openssl-sess_id.pod" ], + "doc/man/man1/openssl-skeyutl.1" => [ + "doc/man1/openssl-skeyutl.pod" + ], "doc/man/man1/openssl-smime.1" => [ "doc/man1/openssl-smime.pod" ], @@ -4674,6 +5332,9 @@ our %unified_info = ( "doc/man/man3/BIO_get_ex_new_index.3" => [ "doc/man3/BIO_get_ex_new_index.pod" ], + "doc/man/man3/BIO_get_rpoll_descriptor.3" => [ + "doc/man3/BIO_get_rpoll_descriptor.pod" + ], "doc/man/man3/BIO_meth_new.3" => [ "doc/man3/BIO_meth_new.pod" ], @@ -4710,6 +5371,9 @@ our %unified_info = ( "doc/man/man3/BIO_s_datagram.3" => [ "doc/man3/BIO_s_datagram.pod" ], + "doc/man/man3/BIO_s_dgram_pair.3" => [ + "doc/man3/BIO_s_dgram_pair.pod" + ], "doc/man/man3/BIO_s_fd.3" => [ "doc/man3/BIO_s_fd.pod" ], @@ -4725,6 +5389,9 @@ our %unified_info = ( "doc/man/man3/BIO_s_socket.3" => [ "doc/man3/BIO_s_socket.pod" ], + "doc/man/man3/BIO_sendmmsg.3" => [ + "doc/man3/BIO_sendmmsg.pod" + ], "doc/man/man3/BIO_set_callback.3" => [ "doc/man3/BIO_set_callback.pod" ], @@ -4797,6 +5464,9 @@ our %unified_info = ( "doc/man/man3/BUF_MEM_new.3" => [ "doc/man3/BUF_MEM_new.pod" ], + "doc/man/man3/CMAC_CTX.3" => [ + "doc/man3/CMAC_CTX.pod" + ], "doc/man/man3/CMS_EncryptedData_decrypt.3" => [ "doc/man3/CMS_EncryptedData_decrypt.pod" ], @@ -4863,6 +5533,9 @@ our %unified_info = ( "doc/man/man3/CMS_verify_receipt.3" => [ "doc/man3/CMS_verify_receipt.pod" ], + "doc/man/man3/COMP_CTX_new.3" => [ + "doc/man3/COMP_CTX_new.pod" + ], "doc/man/man3/CONF_modules_free.3" => [ "doc/man3/CONF_modules_free.pod" ], @@ -4962,6 +5635,12 @@ our %unified_info = ( "doc/man/man3/DTLS_set_timer_cb.3" => [ "doc/man3/DTLS_set_timer_cb.pod" ], + "doc/man/man3/DTLSv1_get_timeout.3" => [ + "doc/man3/DTLSv1_get_timeout.pod" + ], + "doc/man/man3/DTLSv1_handle_timeout.3" => [ + "doc/man3/DTLSv1_handle_timeout.pod" + ], "doc/man/man3/DTLSv1_listen.3" => [ "doc/man3/DTLSv1_listen.pod" ], @@ -5100,6 +5779,9 @@ our %unified_info = ( "doc/man/man3/EVP_PKEY_CTX_get0_pkey.3" => [ "doc/man3/EVP_PKEY_CTX_get0_pkey.pod" ], + "doc/man/man3/EVP_PKEY_CTX_get_algor.3" => [ + "doc/man3/EVP_PKEY_CTX_get_algor.pod" + ], "doc/man/man3/EVP_PKEY_CTX_new.3" => [ "doc/man3/EVP_PKEY_CTX_new.pod" ], @@ -5217,6 +5899,12 @@ our %unified_info = ( "doc/man/man3/EVP_SIGNATURE.3" => [ "doc/man3/EVP_SIGNATURE.pod" ], + "doc/man/man3/EVP_SKEY.3" => [ + "doc/man3/EVP_SKEY.pod" + ], + "doc/man/man3/EVP_SKEYMGMT.3" => [ + "doc/man3/EVP_SKEYMGMT.pod" + ], "doc/man/man3/EVP_SealInit.3" => [ "doc/man3/EVP_SealInit.pod" ], @@ -5304,6 +5992,9 @@ our %unified_info = ( "doc/man/man3/EVP_whirlpool.3" => [ "doc/man3/EVP_whirlpool.pod" ], + "doc/man/man3/GENERAL_NAME.3" => [ + "doc/man3/GENERAL_NAME.pod" + ], "doc/man/man3/HMAC.3" => [ "doc/man3/HMAC.pod" ], @@ -5376,9 +6067,15 @@ our %unified_info = ( "doc/man/man3/OPENSSL_load_builtin_modules.3" => [ "doc/man3/OPENSSL_load_builtin_modules.pod" ], + "doc/man/man3/OPENSSL_load_u16_le.3" => [ + "doc/man3/OPENSSL_load_u16_le.pod" + ], "doc/man/man3/OPENSSL_malloc.3" => [ "doc/man3/OPENSSL_malloc.pod" ], + "doc/man/man3/OPENSSL_riscvcap.3" => [ + "doc/man3/OPENSSL_riscvcap.pod" + ], "doc/man/man3/OPENSSL_s390xcap.3" => [ "doc/man3/OPENSSL_s390xcap.pod" ], @@ -5394,12 +6091,18 @@ our %unified_info = ( "doc/man/man3/OSSL_CALLBACK.3" => [ "doc/man3/OSSL_CALLBACK.pod" ], + "doc/man/man3/OSSL_CMP_ATAV_set0.3" => [ + "doc/man3/OSSL_CMP_ATAV_set0.pod" + ], "doc/man/man3/OSSL_CMP_CTX_new.3" => [ "doc/man3/OSSL_CMP_CTX_new.pod" ], "doc/man/man3/OSSL_CMP_HDR_get0_transactionID.3" => [ "doc/man3/OSSL_CMP_HDR_get0_transactionID.pod" ], + "doc/man/man3/OSSL_CMP_ITAV_new_caCerts.3" => [ + "doc/man3/OSSL_CMP_ITAV_new_caCerts.pod" + ], "doc/man/man3/OSSL_CMP_ITAV_set0.3" => [ "doc/man3/OSSL_CMP_ITAV_set0.pod" ], @@ -5469,9 +6172,18 @@ our %unified_info = ( "doc/man/man3/OSSL_ENCODER_to_bio.3" => [ "doc/man3/OSSL_ENCODER_to_bio.pod" ], + "doc/man/man3/OSSL_ERR_STATE_save.3" => [ + "doc/man3/OSSL_ERR_STATE_save.pod" + ], "doc/man/man3/OSSL_ESS_check_signing_certs.3" => [ "doc/man3/OSSL_ESS_check_signing_certs.pod" ], + "doc/man/man3/OSSL_GENERAL_NAMES_print.3" => [ + "doc/man3/OSSL_GENERAL_NAMES_print.pod" + ], + "doc/man/man3/OSSL_HPKE_CTX_new.3" => [ + "doc/man3/OSSL_HPKE_CTX_new.pod" + ], "doc/man/man3/OSSL_HTTP_REQ_CTX.3" => [ "doc/man3/OSSL_HTTP_REQ_CTX.pod" ], @@ -5481,12 +6193,24 @@ our %unified_info = ( "doc/man/man3/OSSL_HTTP_transfer.3" => [ "doc/man3/OSSL_HTTP_transfer.pod" ], + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX.3" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX.pod" + ], + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX_print.3" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX_print.pod" + ], + "doc/man/man3/OSSL_INDICATOR_set_callback.3" => [ + "doc/man3/OSSL_INDICATOR_set_callback.pod" + ], "doc/man/man3/OSSL_ITEM.3" => [ "doc/man3/OSSL_ITEM.pod" ], "doc/man/man3/OSSL_LIB_CTX.3" => [ "doc/man3/OSSL_LIB_CTX.pod" ], + "doc/man/man3/OSSL_LIB_CTX_set_conf_diagnostics.3" => [ + "doc/man3/OSSL_LIB_CTX_set_conf_diagnostics.pod" + ], "doc/man/man3/OSSL_PARAM.3" => [ "doc/man3/OSSL_PARAM.pod" ], @@ -5502,9 +6226,15 @@ our %unified_info = ( "doc/man/man3/OSSL_PARAM_int.3" => [ "doc/man3/OSSL_PARAM_int.pod" ], + "doc/man/man3/OSSL_PARAM_print_to_bio.3" => [ + "doc/man3/OSSL_PARAM_print_to_bio.pod" + ], "doc/man/man3/OSSL_PROVIDER.3" => [ "doc/man3/OSSL_PROVIDER.pod" ], + "doc/man/man3/OSSL_QUIC_client_method.3" => [ + "doc/man3/OSSL_QUIC_client_method.pod" + ], "doc/man/man3/OSSL_SELF_TEST_new.3" => [ "doc/man3/OSSL_SELF_TEST_new.pod" ], @@ -5529,6 +6259,9 @@ our %unified_info = ( "doc/man/man3/OSSL_STORE_open.3" => [ "doc/man3/OSSL_STORE_open.pod" ], + "doc/man/man3/OSSL_sleep.3" => [ + "doc/man3/OSSL_sleep.pod" + ], "doc/man/man3/OSSL_trace_enabled.3" => [ "doc/man3/OSSL_trace_enabled.pod" ], @@ -5544,6 +6277,9 @@ our %unified_info = ( "doc/man/man3/OpenSSL_version.3" => [ "doc/man3/OpenSSL_version.pod" ], + "doc/man/man3/PBMAC1_get1_pbkdf2_param.3" => [ + "doc/man3/PBMAC1_get1_pbkdf2_param.pod" + ], "doc/man/man3/PEM_X509_INFO_read_bio_ex.3" => [ "doc/man3/PEM_X509_INFO_read_bio_ex.pod" ], @@ -5580,6 +6316,9 @@ our %unified_info = ( "doc/man/man3/PKCS12_SAFEBAG_get1_cert.3" => [ "doc/man3/PKCS12_SAFEBAG_get1_cert.pod" ], + "doc/man/man3/PKCS12_SAFEBAG_set0_attrs.3" => [ + "doc/man3/PKCS12_SAFEBAG_set0_attrs.pod" + ], "doc/man/man3/PKCS12_add1_attr_by_NID.3" => [ "doc/man3/PKCS12_add1_attr_by_NID.pod" ], @@ -5853,6 +6592,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set0_CA_list.3" => [ "doc/man3/SSL_CTX_set0_CA_list.pod" ], + "doc/man/man3/SSL_CTX_set1_cert_comp_preference.3" => [ + "doc/man3/SSL_CTX_set1_cert_comp_preference.pod" + ], "doc/man/man3/SSL_CTX_set1_curves.3" => [ "doc/man3/SSL_CTX_set1_curves.pod" ], @@ -5892,6 +6634,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_default_passwd_cb.3" => [ "doc/man3/SSL_CTX_set_default_passwd_cb.pod" ], + "doc/man/man3/SSL_CTX_set_domain_flags.3" => [ + "doc/man3/SSL_CTX_set_domain_flags.pod" + ], "doc/man/man3/SSL_CTX_set_generate_session_id.3" => [ "doc/man3/SSL_CTX_set_generate_session_id.pod" ], @@ -5913,6 +6658,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_msg_callback.3" => [ "doc/man3/SSL_CTX_set_msg_callback.pod" ], + "doc/man/man3/SSL_CTX_set_new_pending_conn_cb.3" => [ + "doc/man3/SSL_CTX_set_new_pending_conn_cb.pod" + ], "doc/man/man3/SSL_CTX_set_num_tickets.3" => [ "doc/man3/SSL_CTX_set_num_tickets.pod" ], @@ -6027,6 +6775,9 @@ our %unified_info = ( "doc/man/man3/SSL_accept.3" => [ "doc/man3/SSL_accept.pod" ], + "doc/man/man3/SSL_accept_stream.3" => [ + "doc/man3/SSL_accept_stream.pod" + ], "doc/man/man3/SSL_alert_type_string.3" => [ "doc/man3/SSL_alert_type_string.pod" ], @@ -6054,9 +6805,21 @@ our %unified_info = ( "doc/man/man3/SSL_free.3" => [ "doc/man3/SSL_free.pod" ], + "doc/man/man3/SSL_get0_connection.3" => [ + "doc/man3/SSL_get0_connection.pod" + ], + "doc/man/man3/SSL_get0_group_name.3" => [ + "doc/man3/SSL_get0_group_name.pod" + ], + "doc/man/man3/SSL_get0_peer_rpk.3" => [ + "doc/man3/SSL_get0_peer_rpk.pod" + ], "doc/man/man3/SSL_get0_peer_scts.3" => [ "doc/man3/SSL_get0_peer_scts.pod" ], + "doc/man/man3/SSL_get1_builtin_sigalgs.3" => [ + "doc/man3/SSL_get1_builtin_sigalgs.pod" + ], "doc/man/man3/SSL_get_SSL_CTX.3" => [ "doc/man3/SSL_get_SSL_CTX.pod" ], @@ -6072,6 +6835,9 @@ our %unified_info = ( "doc/man/man3/SSL_get_client_random.3" => [ "doc/man3/SSL_get_client_random.pod" ], + "doc/man/man3/SSL_get_conn_close_info.3" => [ + "doc/man3/SSL_get_conn_close_info.pod" + ], "doc/man/man3/SSL_get_current_cipher.3" => [ "doc/man3/SSL_get_current_cipher.pod" ], @@ -6081,12 +6847,18 @@ our %unified_info = ( "doc/man/man3/SSL_get_error.3" => [ "doc/man3/SSL_get_error.pod" ], + "doc/man/man3/SSL_get_event_timeout.3" => [ + "doc/man3/SSL_get_event_timeout.pod" + ], "doc/man/man3/SSL_get_extms_support.3" => [ "doc/man3/SSL_get_extms_support.pod" ], "doc/man/man3/SSL_get_fd.3" => [ "doc/man3/SSL_get_fd.pod" ], + "doc/man/man3/SSL_get_handshake_rtt.3" => [ + "doc/man3/SSL_get_handshake_rtt.pod" + ], "doc/man/man3/SSL_get_peer_cert_chain.3" => [ "doc/man3/SSL_get_peer_cert_chain.pod" ], @@ -6105,12 +6877,24 @@ our %unified_info = ( "doc/man/man3/SSL_get_rbio.3" => [ "doc/man3/SSL_get_rbio.pod" ], + "doc/man/man3/SSL_get_rpoll_descriptor.3" => [ + "doc/man3/SSL_get_rpoll_descriptor.pod" + ], "doc/man/man3/SSL_get_session.3" => [ "doc/man3/SSL_get_session.pod" ], "doc/man/man3/SSL_get_shared_sigalgs.3" => [ "doc/man3/SSL_get_shared_sigalgs.pod" ], + "doc/man/man3/SSL_get_stream_id.3" => [ + "doc/man3/SSL_get_stream_id.pod" + ], + "doc/man/man3/SSL_get_stream_read_state.3" => [ + "doc/man3/SSL_get_stream_read_state.pod" + ], + "doc/man/man3/SSL_get_value_uint.3" => [ + "doc/man3/SSL_get_value_uint.pod" + ], "doc/man/man3/SSL_get_verify_result.3" => [ "doc/man3/SSL_get_verify_result.pod" ], @@ -6120,9 +6904,15 @@ our %unified_info = ( "doc/man/man3/SSL_group_to_name.3" => [ "doc/man3/SSL_group_to_name.pod" ], + "doc/man/man3/SSL_handle_events.3" => [ + "doc/man3/SSL_handle_events.pod" + ], "doc/man/man3/SSL_in_init.3" => [ "doc/man3/SSL_in_init.pod" ], + "doc/man/man3/SSL_inject_net_dgram.3" => [ + "doc/man3/SSL_inject_net_dgram.pod" + ], "doc/man/man3/SSL_key_update.3" => [ "doc/man3/SSL_key_update.pod" ], @@ -6135,9 +6925,21 @@ our %unified_info = ( "doc/man/man3/SSL_new.3" => [ "doc/man3/SSL_new.pod" ], + "doc/man/man3/SSL_new_domain.3" => [ + "doc/man3/SSL_new_domain.pod" + ], + "doc/man/man3/SSL_new_listener.3" => [ + "doc/man3/SSL_new_listener.pod" + ], + "doc/man/man3/SSL_new_stream.3" => [ + "doc/man3/SSL_new_stream.pod" + ], "doc/man/man3/SSL_pending.3" => [ "doc/man3/SSL_pending.pod" ], + "doc/man/man3/SSL_poll.3" => [ + "doc/man3/SSL_poll.pod" + ], "doc/man/man3/SSL_read.3" => [ "doc/man3/SSL_read.pod" ], @@ -6153,24 +6955,45 @@ our %unified_info = ( "doc/man/man3/SSL_set1_host.3" => [ "doc/man3/SSL_set1_host.pod" ], + "doc/man/man3/SSL_set1_initial_peer_addr.3" => [ + "doc/man3/SSL_set1_initial_peer_addr.pod" + ], + "doc/man/man3/SSL_set1_server_cert_type.3" => [ + "doc/man3/SSL_set1_server_cert_type.pod" + ], "doc/man/man3/SSL_set_async_callback.3" => [ "doc/man3/SSL_set_async_callback.pod" ], "doc/man/man3/SSL_set_bio.3" => [ "doc/man3/SSL_set_bio.pod" ], + "doc/man/man3/SSL_set_blocking_mode.3" => [ + "doc/man3/SSL_set_blocking_mode.pod" + ], "doc/man/man3/SSL_set_connect_state.3" => [ "doc/man3/SSL_set_connect_state.pod" ], + "doc/man/man3/SSL_set_default_stream_mode.3" => [ + "doc/man3/SSL_set_default_stream_mode.pod" + ], "doc/man/man3/SSL_set_fd.3" => [ "doc/man3/SSL_set_fd.pod" ], + "doc/man/man3/SSL_set_incoming_stream_policy.3" => [ + "doc/man3/SSL_set_incoming_stream_policy.pod" + ], + "doc/man/man3/SSL_set_quic_tls_cbs.3" => [ + "doc/man3/SSL_set_quic_tls_cbs.pod" + ], "doc/man/man3/SSL_set_retry_verify.3" => [ "doc/man3/SSL_set_retry_verify.pod" ], "doc/man/man3/SSL_set_session.3" => [ "doc/man3/SSL_set_session.pod" ], + "doc/man/man3/SSL_set_session_secret_cb.3" => [ + "doc/man3/SSL_set_session_secret_cb.pod" + ], "doc/man/man3/SSL_set_shutdown.3" => [ "doc/man3/SSL_set_shutdown.pod" ], @@ -6183,6 +7006,12 @@ our %unified_info = ( "doc/man/man3/SSL_state_string.3" => [ "doc/man3/SSL_state_string.pod" ], + "doc/man/man3/SSL_stream_conclude.3" => [ + "doc/man3/SSL_stream_conclude.pod" + ], + "doc/man/man3/SSL_stream_reset.3" => [ + "doc/man3/SSL_stream_reset.pod" + ], "doc/man/man3/SSL_want.3" => [ "doc/man3/SSL_want.pod" ], @@ -6192,8 +7021,8 @@ our %unified_info = ( "doc/man/man3/TS_RESP_CTX_new.3" => [ "doc/man3/TS_RESP_CTX_new.pod" ], - "doc/man/man3/TS_VERIFY_CTX_set_certs.3" => [ - "doc/man3/TS_VERIFY_CTX_set_certs.pod" + "doc/man/man3/TS_VERIFY_CTX.3" => [ + "doc/man3/TS_VERIFY_CTX.pod" ], "doc/man/man3/UI_STRING.3" => [ "doc/man3/UI_STRING.pod" @@ -6213,6 +7042,21 @@ our %unified_info = ( "doc/man/man3/X509V3_set_ctx.3" => [ "doc/man3/X509V3_set_ctx.pod" ], + "doc/man/man3/X509_ACERT_add1_attr.3" => [ + "doc/man3/X509_ACERT_add1_attr.pod" + ], + "doc/man/man3/X509_ACERT_add_attr_nconf.3" => [ + "doc/man3/X509_ACERT_add_attr_nconf.pod" + ], + "doc/man/man3/X509_ACERT_get0_holder_baseCertId.3" => [ + "doc/man3/X509_ACERT_get0_holder_baseCertId.pod" + ], + "doc/man/man3/X509_ACERT_get_attr.3" => [ + "doc/man3/X509_ACERT_get_attr.pod" + ], + "doc/man/man3/X509_ACERT_print_ex.3" => [ + "doc/man3/X509_ACERT_print_ex.pod" + ], "doc/man/man3/X509_ALGOR_dup.3" => [ "doc/man3/X509_ALGOR_dup.pod" ], @@ -6261,6 +7105,9 @@ our %unified_info = ( "doc/man/man3/X509_SIG_get0.3" => [ "doc/man3/X509_SIG_get0.pod" ], + "doc/man/man3/X509_STORE_CTX_get_by_subject.3" => [ + "doc/man3/X509_STORE_CTX_get_by_subject.pod" + ], "doc/man/man3/X509_STORE_CTX_get_error.3" => [ "doc/man3/X509_STORE_CTX_get_error.pod" ], @@ -6327,6 +7174,9 @@ our %unified_info = ( "doc/man/man3/X509_get0_uids.3" => [ "doc/man3/X509_get0_uids.pod" ], + "doc/man/man3/X509_get_default_cert_file.3" => [ + "doc/man3/X509_get_default_cert_file.pod" + ], "doc/man/man3/X509_get_extension_flags.3" => [ "doc/man3/X509_get_extension_flags.pod" ], @@ -6450,9 +7300,15 @@ our %unified_info = ( "doc/man/man7/EVP_CIPHER-SM4.7" => [ "doc/man7/EVP_CIPHER-SM4.pod" ], + "doc/man/man7/EVP_KDF-ARGON2.7" => [ + "doc/man7/EVP_KDF-ARGON2.pod" + ], "doc/man/man7/EVP_KDF-HKDF.7" => [ "doc/man7/EVP_KDF-HKDF.pod" ], + "doc/man/man7/EVP_KDF-HMAC-DRBG.7" => [ + "doc/man7/EVP_KDF-HMAC-DRBG.pod" + ], "doc/man/man7/EVP_KDF-KB.7" => [ "doc/man7/EVP_KDF-KB.pod" ], @@ -6468,6 +7324,9 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-PKCS12KDF.7" => [ "doc/man7/EVP_KDF-PKCS12KDF.pod" ], + "doc/man/man7/EVP_KDF-PVKKDF.7" => [ + "doc/man7/EVP_KDF-PVKKDF.pod" + ], "doc/man/man7/EVP_KDF-SCRYPT.7" => [ "doc/man7/EVP_KDF-SCRYPT.pod" ], @@ -6492,9 +7351,18 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-X963.7" => [ "doc/man7/EVP_KDF-X963.pod" ], + "doc/man/man7/EVP_KEM-EC.7" => [ + "doc/man7/EVP_KEM-EC.pod" + ], + "doc/man/man7/EVP_KEM-ML-KEM.7" => [ + "doc/man7/EVP_KEM-ML-KEM.pod" + ], "doc/man/man7/EVP_KEM-RSA.7" => [ "doc/man7/EVP_KEM-RSA.pod" ], + "doc/man/man7/EVP_KEM-X25519.7" => [ + "doc/man7/EVP_KEM-X25519.pod" + ], "doc/man/man7/EVP_KEYEXCH-DH.7" => [ "doc/man7/EVP_KEYEXCH-DH.pod" ], @@ -6528,6 +7396,9 @@ our %unified_info = ( "doc/man/man7/EVP_MD-BLAKE2.7" => [ "doc/man7/EVP_MD-BLAKE2.pod" ], + "doc/man/man7/EVP_MD-KECCAK.7" => [ + "doc/man7/EVP_MD-KECCAK.pod" + ], "doc/man/man7/EVP_MD-MD2.7" => [ "doc/man7/EVP_MD-MD2.pod" ], @@ -6585,15 +7456,27 @@ our %unified_info = ( "doc/man/man7/EVP_PKEY-HMAC.7" => [ "doc/man7/EVP_PKEY-HMAC.pod" ], + "doc/man/man7/EVP_PKEY-ML-DSA.7" => [ + "doc/man7/EVP_PKEY-ML-DSA.pod" + ], + "doc/man/man7/EVP_PKEY-ML-KEM.7" => [ + "doc/man7/EVP_PKEY-ML-KEM.pod" + ], "doc/man/man7/EVP_PKEY-RSA.7" => [ "doc/man7/EVP_PKEY-RSA.pod" ], + "doc/man/man7/EVP_PKEY-SLH-DSA.7" => [ + "doc/man7/EVP_PKEY-SLH-DSA.pod" + ], "doc/man/man7/EVP_PKEY-SM2.7" => [ "doc/man7/EVP_PKEY-SM2.pod" ], "doc/man/man7/EVP_PKEY-X25519.7" => [ "doc/man7/EVP_PKEY-X25519.pod" ], + "doc/man/man7/EVP_RAND-CRNG-TEST.7" => [ + "doc/man7/EVP_RAND-CRNG-TEST.pod" + ], "doc/man/man7/EVP_RAND-CTR-DRBG.7" => [ "doc/man7/EVP_RAND-CTR-DRBG.pod" ], @@ -6603,6 +7486,9 @@ our %unified_info = ( "doc/man/man7/EVP_RAND-HMAC-DRBG.7" => [ "doc/man7/EVP_RAND-HMAC-DRBG.pod" ], + "doc/man/man7/EVP_RAND-JITTER.7" => [ + "doc/man7/EVP_RAND-JITTER.pod" + ], "doc/man/man7/EVP_RAND-SEED-SRC.7" => [ "doc/man7/EVP_RAND-SEED-SRC.pod" ], @@ -6624,9 +7510,15 @@ our %unified_info = ( "doc/man/man7/EVP_SIGNATURE-HMAC.7" => [ "doc/man7/EVP_SIGNATURE-HMAC.pod" ], + "doc/man/man7/EVP_SIGNATURE-ML-DSA.7" => [ + "doc/man7/EVP_SIGNATURE-ML-DSA.pod" + ], "doc/man/man7/EVP_SIGNATURE-RSA.7" => [ "doc/man7/EVP_SIGNATURE-RSA.pod" ], + "doc/man/man7/EVP_SIGNATURE-SLH-DSA.7" => [ + "doc/man7/EVP_SIGNATURE-SLH-DSA.pod" + ], "doc/man/man7/OSSL_PROVIDER-FIPS.7" => [ "doc/man7/OSSL_PROVIDER-FIPS.pod" ], @@ -6642,6 +7534,9 @@ our %unified_info = ( "doc/man/man7/OSSL_PROVIDER-null.7" => [ "doc/man7/OSSL_PROVIDER-null.pod" ], + "doc/man/man7/OSSL_STORE-winstore.7" => [ + "doc/man7/OSSL_STORE-winstore.pod" + ], "doc/man/man7/RAND.7" => [ "doc/man7/RAND.pod" ], @@ -6654,9 +7549,6 @@ our %unified_info = ( "doc/man/man7/bio.7" => [ "doc/man7/bio.pod" ], - "doc/man/man7/crypto.7" => [ - "doc/man7/crypto.pod" - ], "doc/man/man7/ct.7" => [ "doc/man7/ct.pod" ], @@ -6687,9 +7579,6 @@ our %unified_info = ( "doc/man/man7/life_cycle-rand.7" => [ "doc/man7/life_cycle-rand.pod" ], - "doc/man/man7/migration_guide.7" => [ - "doc/man7/migration_guide.pod" - ], "doc/man/man7/openssl-core.h.7" => [ "doc/man7/openssl-core.h.pod" ], @@ -6705,12 +7594,66 @@ our %unified_info = ( "doc/man/man7/openssl-glossary.7" => [ "doc/man7/openssl-glossary.pod" ], + "doc/man/man7/openssl-qlog.7" => [ + "doc/man7/openssl-qlog.pod" + ], + "doc/man/man7/openssl-quic-concurrency.7" => [ + "doc/man7/openssl-quic-concurrency.pod" + ], + "doc/man/man7/openssl-quic.7" => [ + "doc/man7/openssl-quic.pod" + ], "doc/man/man7/openssl-threads.7" => [ "doc/man7/openssl-threads.pod" ], "doc/man/man7/openssl_user_macros.7" => [ "doc/man7/openssl_user_macros.pod" ], + "doc/man/man7/ossl-guide-introduction.7" => [ + "doc/man7/ossl-guide-introduction.pod" + ], + "doc/man/man7/ossl-guide-libcrypto-introduction.7" => [ + "doc/man7/ossl-guide-libcrypto-introduction.pod" + ], + "doc/man/man7/ossl-guide-libraries-introduction.7" => [ + "doc/man7/ossl-guide-libraries-introduction.pod" + ], + "doc/man/man7/ossl-guide-libssl-introduction.7" => [ + "doc/man7/ossl-guide-libssl-introduction.pod" + ], + "doc/man/man7/ossl-guide-migration.7" => [ + "doc/man7/ossl-guide-migration.pod" + ], + "doc/man/man7/ossl-guide-quic-client-block.7" => [ + "doc/man7/ossl-guide-quic-client-block.pod" + ], + "doc/man/man7/ossl-guide-quic-client-non-block.7" => [ + "doc/man7/ossl-guide-quic-client-non-block.pod" + ], + "doc/man/man7/ossl-guide-quic-introduction.7" => [ + "doc/man7/ossl-guide-quic-introduction.pod" + ], + "doc/man/man7/ossl-guide-quic-multi-stream.7" => [ + "doc/man7/ossl-guide-quic-multi-stream.pod" + ], + "doc/man/man7/ossl-guide-quic-server-block.7" => [ + "doc/man7/ossl-guide-quic-server-block.pod" + ], + "doc/man/man7/ossl-guide-quic-server-non-block.7" => [ + "doc/man7/ossl-guide-quic-server-non-block.pod" + ], + "doc/man/man7/ossl-guide-tls-client-block.7" => [ + "doc/man7/ossl-guide-tls-client-block.pod" + ], + "doc/man/man7/ossl-guide-tls-client-non-block.7" => [ + "doc/man7/ossl-guide-tls-client-non-block.pod" + ], + "doc/man/man7/ossl-guide-tls-introduction.7" => [ + "doc/man7/ossl-guide-tls-introduction.pod" + ], + "doc/man/man7/ossl-guide-tls-server-block.7" => [ + "doc/man7/ossl-guide-tls-server-block.pod" + ], "doc/man/man7/ossl_store-file.7" => [ "doc/man7/ossl_store-file.pod" ], @@ -6765,6 +7708,9 @@ our %unified_info = ( "doc/man/man7/provider-signature.7" => [ "doc/man7/provider-signature.pod" ], + "doc/man/man7/provider-skeymgmt.7" => [ + "doc/man7/provider-skeymgmt.pod" + ], "doc/man/man7/provider-storemgmt.7" => [ "doc/man7/provider-storemgmt.pod" ], @@ -6774,9 +7720,6 @@ our %unified_info = ( "doc/man/man7/proxy-certificates.7" => [ "doc/man7/proxy-certificates.pod" ], - "doc/man/man7/ssl.7" => [ - "doc/man7/ssl.pod" - ], "doc/man/man7/x509.7" => [ "doc/man7/x509.pod" ], @@ -6956,6 +7899,10 @@ our %unified_info = ( "doc/man1/openssl-sess_id.pod.in", "doc/perlvars.pm" ], + "doc/man1/openssl-skeyutl.pod" => [ + "doc/man1/openssl-skeyutl.pod.in", + "doc/perlvars.pm" + ], "doc/man1/openssl-smime.pod" => [ "doc/man1/openssl-smime.pod.in", "doc/perlvars.pm" @@ -6995,6 +7942,27 @@ our %unified_info = ( "doc/man7/openssl_user_macros.pod" => [ "doc/man7/openssl_user_macros.pod.in" ], + "exporters/OpenSSLConfig.cmake" => [ + "installdata.pm" + ], + "exporters/OpenSSLConfigVersion.cmake" => [ + "exporters/OpenSSLConfig.cmake", + "installdata.pm" + ], + "exporters/libcrypto.pc" => [ + "installdata.pm" + ], + "exporters/libssl.pc" => [ + "installdata.pm" + ], + "exporters/openssl.pc" => [ + "exporters/libcrypto.pc", + "exporters/libssl.pc", + "installdata.pm" + ], + "fuzz/acert-test" => [ + "libcrypto" + ], "fuzz/asn1-test" => [ "libcrypto", "libssl" @@ -7027,17 +7995,85 @@ our %unified_info = ( "fuzz/ct-test" => [ "libcrypto" ], + "fuzz/decoder-test" => [ + "libcrypto" + ], + "fuzz/dtlsclient-test" => [ + "libcrypto", + "libssl" + ], + "fuzz/dtlsserver-test" => [ + "libcrypto", + "libssl" + ], + "fuzz/hashtable-test" => [ + "libcrypto.a" + ], + "fuzz/ml-dsa-test" => [ + "libcrypto.a" + ], + "fuzz/ml-kem-test" => [ + "libcrypto.a" + ], + "fuzz/pem-test" => [ + "libcrypto.a" + ], + "fuzz/provider-test" => [ + "libcrypto" + ], + "fuzz/punycode-test" => [ + "libcrypto.a" + ], + "fuzz/quic-client-test" => [ + "libcrypto.a", + "libssl.a" + ], + "fuzz/quic-lcidm-test" => [ + "libcrypto.a", + "libssl.a" + ], + "fuzz/quic-rcidm-test" => [ + "libcrypto.a", + "libssl.a" + ], + "fuzz/quic-server-test" => [ + "libcrypto.a", + "libssl.a" + ], + "fuzz/quic-srtm-test" => [ + "libcrypto.a", + "libssl.a" + ], "fuzz/server-test" => [ "libcrypto", "libssl" ], + "fuzz/slh-dsa-test" => [ + "libcrypto.a" + ], + "fuzz/smime-test" => [ + "libcrypto", + "libssl" + ], + "fuzz/v3name-test" => [ + "libcrypto.a" + ], "fuzz/x509-test" => [ "libcrypto" ], + "include/internal/param_names.h" => [ + "util/perl|OpenSSL/paramnames.pm" + ], + "include/openssl/core_names.h" => [ + "util/perl|OpenSSL/paramnames.pm" + ], "libcrypto.ld" => [ "configdata.pm", "util/perl/OpenSSL/Ordinals.pm" ], + "libcrypto.pc" => [ + "builddata.pm" + ], "libcrypto.rc" => [ "configdata.pm" ], @@ -7048,9 +8084,17 @@ our %unified_info = ( "configdata.pm", "util/perl/OpenSSL/Ordinals.pm" ], + "libssl.pc" => [ + "builddata.pm" + ], "libssl.rc" => [ "configdata.pm" ], + "openssl.pc" => [ + "builddata.pm", + "libcrypto.pc", + "libssl.pc" + ], "providers/common/der/der_digests_gen.c" => [ "providers/common/der/DIGESTS.asn1", "providers/common/der/NIST.asn1", @@ -7068,11 +8112,19 @@ our %unified_info = ( "providers/common/der/ECX.asn1", "providers/common/der/oids_to_c.pm" ], + "providers/common/der/der_ml_dsa_gen.c" => [ + "providers/common/der/ML_DSA.asn1", + "providers/common/der/oids_to_c.pm" + ], "providers/common/der/der_rsa_gen.c" => [ "providers/common/der/NIST.asn1", "providers/common/der/RSA.asn1", "providers/common/der/oids_to_c.pm" ], + "providers/common/der/der_slh_dsa_gen.c" => [ + "providers/common/der/SLH_DSA.asn1", + "providers/common/der/oids_to_c.pm" + ], "providers/common/der/der_sm2_gen.c" => [ "providers/common/der/SM2.asn1", "providers/common/der/oids_to_c.pm" @@ -7112,6 +8164,12 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ecx_key.o" => [ "providers/common/include/prov/der_ecx.h" ], + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o" => [ + "providers/common/include/prov/der_ml_dsa.h" + ], + "providers/common/der/libcommon-lib-der_ml_dsa_key.o" => [ + "providers/common/include/prov/der_ml_dsa.h" + ], "providers/common/der/libcommon-lib-der_rsa_gen.o" => [ "providers/common/include/prov/der_rsa.h" ], @@ -7119,6 +8177,12 @@ our %unified_info = ( "providers/common/include/prov/der_digests.h", "providers/common/include/prov/der_rsa.h" ], + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o" => [ + "providers/common/include/prov/der_slh_dsa.h" + ], + "providers/common/der/libcommon-lib-der_slh_dsa_key.o" => [ + "providers/common/include/prov/der_slh_dsa.h" + ], "providers/common/der/libcommon-lib-der_wrap_gen.o" => [ "providers/common/include/prov/der_wrap.h" ], @@ -7158,11 +8222,19 @@ our %unified_info = ( "providers/common/der/ECX.asn1", "providers/common/der/oids_to_c.pm" ], + "providers/common/include/prov/der_ml_dsa.h" => [ + "providers/common/der/ML_DSA.asn1", + "providers/common/der/oids_to_c.pm" + ], "providers/common/include/prov/der_rsa.h" => [ "providers/common/der/NIST.asn1", "providers/common/der/RSA.asn1", "providers/common/der/oids_to_c.pm" ], + "providers/common/include/prov/der_slh_dsa.h" => [ + "providers/common/der/SLH_DSA.asn1", + "providers/common/der/oids_to_c.pm" + ], "providers/common/include/prov/der_sm2.h" => [ "providers/common/der/SM2.asn1", "providers/common/der/oids_to_c.pm" @@ -7195,9 +8267,15 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-eddsa_sig.o" => [ "providers/common/include/prov/der_ecx.h" ], + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o" => [ + "providers/common/include/prov/der_ml_dsa.h" + ], "providers/implementations/signature/libdefault-lib-rsa_sig.o" => [ "providers/common/include/prov/der_rsa.h" ], + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o" => [ + "providers/common/include/prov/der_slh_dsa.h" + ], "providers/implementations/signature/libdefault-lib-sm2_sig.o" => [ "providers/common/include/prov/der_sm2.h" ], @@ -7210,9 +8288,15 @@ our %unified_info = ( "providers/implementations/signature/libfips-lib-eddsa_sig.o" => [ "providers/common/include/prov/der_ecx.h" ], + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o" => [ + "providers/common/include/prov/der_ml_dsa.h" + ], "providers/implementations/signature/libfips-lib-rsa_sig.o" => [ "providers/common/include/prov/der_rsa.h" ], + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o" => [ + "providers/common/include/prov/der_slh_dsa.h" + ], "providers/legacy" => [ "libcrypto", "providers/liblegacy.a" @@ -7290,6 +8374,14 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/bio_addr_test" => [ + "libcrypto", + "test/libtestutil.a" + ], + "test/bio_base64_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/bio_callback_test" => [ "libcrypto", "test/libtestutil.a" @@ -7298,6 +8390,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/bio_dgram_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/bio_enc_test" => [ "libcrypto", "test/libtestutil.a" @@ -7306,6 +8402,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/bio_meth_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/bio_prefix_text" => [ "libcrypto", "test/libtestutil.a" @@ -7318,6 +8418,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/bio_tfo_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/bioprinttest" => [ "libcrypto", "test/libtestutil.a" @@ -7330,6 +8434,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/build_wincrypt_test" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_aes" => [ "libcrypto", "libssl" @@ -7350,6 +8458,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_byteorder" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_camellia" => [ "libcrypto", "libssl" @@ -7382,10 +8494,6 @@ our %unified_info = ( "libcrypto", "libssl" ], - "test/buildtest_c_core_names" => [ - "libcrypto", - "libssl" - ], "test/buildtest_c_core_object" => [ "libcrypto", "libssl" @@ -7418,6 +8526,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_e_ostime" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_ebcdic" => [ "libcrypto", "libssl" @@ -7454,6 +8566,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_hpke" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_http" => [ "libcrypto", "libssl" @@ -7462,6 +8578,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_indicator" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_kdf" => [ "libcrypto", "libssl" @@ -7482,6 +8602,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_ml_kem" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_modes" => [ "libcrypto", "libssl" @@ -7522,6 +8646,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_quic" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_rand" => [ "libcrypto", "libssl" @@ -7578,6 +8706,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_thread" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_tls1" => [ "libcrypto", "libssl" @@ -7598,10 +8730,23 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/byteorder_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], + "test/ca_internals_test" => [ + "libssl", + "test/libtestutil.a" + ], "test/casttest" => [ "libcrypto", "test/libtestutil.a" ], + "test/cert_comp_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], "test/chacha_internal_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -7715,7 +8860,11 @@ our %unified_info = ( "libssl", "test/libtestutil.a" ], - "test/defltfips_test" => [ + "test/decoder_propq_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], + "test/defltfips_test" => [ "libcrypto", "test/libtestutil.a" ], @@ -7771,6 +8920,8 @@ our %unified_info = ( ], "test/endecode_test" => [ "libcrypto.a", + "providers/libcommon.a", + "providers/liblegacy.a", "test/libtestutil.a" ], "test/endecoder_legacy_test" => [ @@ -7814,6 +8965,10 @@ our %unified_info = ( "test/evp_pkey_ctx_new_from_name" => [ "libcrypto" ], + "test/evp_pkey_dhkem_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/evp_pkey_dparams_test" => [ "libcrypto", "test/libtestutil.a" @@ -7822,10 +8977,18 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/evp_skey_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/evp_test" => [ "libcrypto", "test/libtestutil.a" ], + "test/evp_xof_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/exdatatest" => [ "libcrypto", "test/libtestutil.a" @@ -7864,6 +9027,10 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/hpke_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/http_test" => [ "libcrypto", "test/libtestutil.a" @@ -7876,17 +9043,25 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/json_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], "test/keymgmt_internal_test" => [ "libcrypto.a", "test/libtestutil.a" ], "test/lhash_test" => [ - "libcrypto", + "libcrypto.a", "test/libtestutil.a" ], "test/libtestutil.a" => [ "libcrypto" ], + "test/list_test" => [ + "test/libtestutil.a" + ], "test/localetest" => [ "libcrypto", "test/libtestutil.a" @@ -7899,10 +9074,26 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/membio_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/memleaktest" => [ "libcrypto", "test/libtestutil.a" ], + "test/ml_dsa_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], + "test/ml_kem_evp_extra_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], + "test/ml_kem_internal_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/modes_internal_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -7927,6 +9118,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/pairwise_fail_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/param_build_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -7959,6 +9154,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/pkcs12_api_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/pkcs12_format_test" => [ "libcrypto", "test/libtestutil.a" @@ -7979,6 +9178,11 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/priority_queue_test" => [ + "libcrypto", + "libssl.a", + "test/libtestutil.a" + ], "test/property_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -7991,6 +9195,10 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/provider_default_search_path_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/provider_fallback_test" => [ "libcrypto", "test/libtestutil.a" @@ -8015,12 +9223,122 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/quic_ackm_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_cc_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_cfq_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_client_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_fc_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_fifd_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_lcidm_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_multistream_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_newcid_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_qlog_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_radix_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_rcidm_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_record_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_srt_gen_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_srtm_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_stream_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_tserver_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_txp_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_txpim_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_wire_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quicapitest" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quicfaultstest" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], "test/rand_status_test" => [ "libcrypto", "test/libtestutil.a" ], "test/rand_test" => [ - "libcrypto", + "libcrypto.a", "test/libtestutil.a" ], "test/rc2test" => [ @@ -8035,7 +9353,7 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], - "test/rdrand_sanitytest" => [ + "test/rdcpu_sanitytest" => [ "libcrypto.a", "test/libtestutil.a" ], @@ -8044,6 +9362,11 @@ our %unified_info = ( "libssl", "test/libtestutil.a" ], + "test/rpktest" => [ + "libcrypto", + "libssl", + "test/libtestutil.a" + ], "test/rsa_mp_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -8056,10 +9379,18 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], - "test/sanitytest" => [ + "test/rsa_x931_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], + "test/safe_math_test" => [ "libcrypto", "test/libtestutil.a" ], + "test/sanitytest" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/secmemtest" => [ "libcrypto", "test/libtestutil.a" @@ -8077,6 +9408,10 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/slh_dsa_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/sm2_internal_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -8106,6 +9441,11 @@ our %unified_info = ( "libssl", "test/libtestutil.a" ], + "test/ssl_handshake_rtt_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], "test/ssl_old_test" => [ "libcrypto.a", "libssl.a", @@ -8122,8 +9462,8 @@ our %unified_info = ( "test/libtestutil.a" ], "test/sslapitest" => [ - "libcrypto", - "libssl", + "libcrypto.a", + "libssl.a", "test/libtestutil.a" ], "test/sslbuffertest" => [ @@ -8140,6 +9480,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/strtoultest" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/sysdefaulttest" => [ "libcrypto", "libssl", @@ -8149,8 +9493,12 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/threadpool_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/threadstest" => [ - "libcrypto", + "libcrypto.a", "test/libtestutil.a" ], "test/threadstest_fips" => [ @@ -8161,6 +9509,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/time_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/tls13ccstest" => [ "libcrypto", "libssl", @@ -8171,6 +9523,11 @@ our %unified_info = ( "libssl.a", "test/libtestutil.a" ], + "test/tls13groupselection_test" => [ + "libcrypto", + "libssl", + "test/libtestutil.a" + ], "test/trace_api_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -8208,6 +9565,10 @@ our %unified_info = ( "libssl.a", "test/libtestutil.a" ], + "test/x509_acert_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/x509_check_cert_pkey_test" => [ "libcrypto", "test/libtestutil.a" @@ -8220,6 +9581,18 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/x509_load_cert_file_test" => [ + "libcrypto", + "test/libtestutil.a" + ], + "test/x509_req_test" => [ + "libcrypto", + "test/libtestutil.a" + ], + "test/x509_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/x509_time_test" => [ "libcrypto", "test/libtestutil.a" @@ -8234,9 +9607,13 @@ our %unified_info = ( }, "dirinfo" => { "apps" => { + "deps" => [ + "apps/ca_internals_test-bin-ca.o" + ], "products" => { "bin" => [ - "apps/openssl" + "apps/openssl", + "test/ca_internals_test" ], "script" => [ "apps/CA.pl", @@ -8247,6 +9624,14 @@ our %unified_info = ( "apps/lib" => { "deps" => [ "apps/lib/openssl-bin-cmp_mock_srv.o", + "apps/lib/ca_internals_test-bin-app_libctx.o", + "apps/lib/ca_internals_test-bin-app_provider.o", + "apps/lib/ca_internals_test-bin-app_rand.o", + "apps/lib/ca_internals_test-bin-app_x509.o", + "apps/lib/ca_internals_test-bin-apps.o", + "apps/lib/ca_internals_test-bin-apps_ui.o", + "apps/lib/ca_internals_test-bin-engine.o", + "apps/lib/ca_internals_test-bin-fmt.o", "apps/lib/cmp_client_test-bin-cmp_mock_srv.o", "apps/lib/uitest-bin-apps_ui.o", "apps/lib/libapps-lib-app_libctx.o", @@ -8255,12 +9640,14 @@ our %unified_info = ( "apps/lib/libapps-lib-app_rand.o", "apps/lib/libapps-lib-app_x509.o", "apps/lib/libapps-lib-apps.o", + "apps/lib/libapps-lib-apps_opt_printf.o", "apps/lib/libapps-lib-apps_ui.o", "apps/lib/libapps-lib-columns.o", "apps/lib/libapps-lib-engine.o", "apps/lib/libapps-lib-engine_loader.o", "apps/lib/libapps-lib-fmt.o", "apps/lib/libapps-lib-http_server.o", + "apps/lib/libapps-lib-log.o", "apps/lib/libapps-lib-names.o", "apps/lib/libapps-lib-opt.o", "apps/lib/libapps-lib-s_cb.o", @@ -8273,6 +9660,7 @@ our %unified_info = ( "products" => { "bin" => [ "apps/openssl", + "test/ca_internals_test", "test/cmp_client_test", "test/uitest" ], @@ -8284,8 +9672,12 @@ our %unified_info = ( }, "crypto" => { "deps" => [ + "crypto/asn1_time_test-bin-ctype.o", + "crypto/ca_internals_test-bin-ctype.o", + "crypto/packettest-bin-quic_vlint.o", "crypto/libcrypto-lib-asn1_dsa.o", "crypto/libcrypto-lib-bsearch.o", + "crypto/libcrypto-lib-comp_methods.o", "crypto/libcrypto-lib-context.o", "crypto/libcrypto-lib-core_algorithm.o", "crypto/libcrypto-lib-core_fetch.o", @@ -8295,10 +9687,13 @@ our %unified_info = ( "crypto/libcrypto-lib-cryptlib.o", "crypto/libcrypto-lib-ctype.o", "crypto/libcrypto-lib-cversion.o", + "crypto/libcrypto-lib-defaults.o", "crypto/libcrypto-lib-der_writer.o", + "crypto/libcrypto-lib-deterministic_nonce.o", "crypto/libcrypto-lib-ebcdic.o", "crypto/libcrypto-lib-ex_data.o", "crypto/libcrypto-lib-getenv.o", + "crypto/libcrypto-lib-indicator_core.o", "crypto/libcrypto-lib-info.o", "crypto/libcrypto-lib-init.o", "crypto/libcrypto-lib-initthread.o", @@ -8315,6 +9710,7 @@ our %unified_info = ( "crypto/libcrypto-lib-params.o", "crypto/libcrypto-lib-params_dup.o", "crypto/libcrypto-lib-params_from_text.o", + "crypto/libcrypto-lib-params_idx.o", "crypto/libcrypto-lib-passphrase.o", "crypto/libcrypto-lib-provider.o", "crypto/libcrypto-lib-provider_child.o", @@ -8322,12 +9718,16 @@ our %unified_info = ( "crypto/libcrypto-lib-provider_core.o", "crypto/libcrypto-lib-provider_predefined.o", "crypto/libcrypto-lib-punycode.o", + "crypto/libcrypto-lib-quic_vlint.o", "crypto/libcrypto-lib-self_test_core.o", + "crypto/libcrypto-lib-sleep.o", "crypto/libcrypto-lib-sparse_array.o", + "crypto/libcrypto-lib-ssl_err.o", "crypto/libcrypto-lib-threads_lib.o", "crypto/libcrypto-lib-threads_none.o", "crypto/libcrypto-lib-threads_pthread.o", "crypto/libcrypto-lib-threads_win.o", + "crypto/libcrypto-lib-time.o", "crypto/libcrypto-lib-trace.o", "crypto/libcrypto-lib-uid.o", "crypto/libcrypto-lib-x86cpuid.o", @@ -8350,6 +9750,7 @@ our %unified_info = ( "crypto/libfips-lib-params.o", "crypto/libfips-lib-params_dup.o", "crypto/libfips-lib-params_from_text.o", + "crypto/libfips-lib-params_idx.o", "crypto/libfips-lib-provider_core.o", "crypto/libfips-lib-provider_predefined.o", "crypto/libfips-lib-self_test_core.o", @@ -8358,9 +9759,15 @@ our %unified_info = ( "crypto/libfips-lib-threads_none.o", "crypto/libfips-lib-threads_pthread.o", "crypto/libfips-lib-threads_win.o", + "crypto/libfips-lib-time.o", "crypto/libfips-lib-x86cpuid.o" ], "products" => { + "bin" => [ + "test/asn1_time_test", + "test/ca_internals_test", + "test/packettest" + ], "lib" => [ "libcrypto", "providers/libfips.a" @@ -8403,6 +9810,8 @@ our %unified_info = ( }, "crypto/asn1" => { "deps" => [ + "crypto/asn1/asn1_time_test-bin-a_time.o", + "crypto/asn1/ca_internals_test-bin-a_time.o", "crypto/asn1/libcrypto-lib-a_bitstr.o", "crypto/asn1/libcrypto-lib-a_d2i_fp.o", "crypto/asn1/libcrypto-lib-a_digest.o", @@ -8469,6 +9878,10 @@ our %unified_info = ( "crypto/asn1/libcrypto-lib-x_val.o" ], "products" => { + "bin" => [ + "test/asn1_time_test", + "test/ca_internals_test" + ], "lib" => [ "libcrypto" ] @@ -8534,6 +9947,7 @@ our %unified_info = ( "crypto/bio/libcrypto-lib-bss_conn.o", "crypto/bio/libcrypto-lib-bss_core.o", "crypto/bio/libcrypto-lib-bss_dgram.o", + "crypto/bio/libcrypto-lib-bss_dgram_pair.o", "crypto/bio/libcrypto-lib-bss_fd.o", "crypto/bio/libcrypto-lib-bss_file.o", "crypto/bio/libcrypto-lib-bss_log.o", @@ -8694,6 +10108,7 @@ our %unified_info = ( "crypto/cmp/libcrypto-lib-cmp_client.o", "crypto/cmp/libcrypto-lib-cmp_ctx.o", "crypto/cmp/libcrypto-lib-cmp_err.o", + "crypto/cmp/libcrypto-lib-cmp_genm.o", "crypto/cmp/libcrypto-lib-cmp_hdr.o", "crypto/cmp/libcrypto-lib-cmp_http.o", "crypto/cmp/libcrypto-lib-cmp_msg.o", @@ -9065,7 +10480,9 @@ our %unified_info = ( "crypto/err/libcrypto-lib-err_all.o", "crypto/err/libcrypto-lib-err_all_legacy.o", "crypto/err/libcrypto-lib-err_blocks.o", - "crypto/err/libcrypto-lib-err_prn.o" + "crypto/err/libcrypto-lib-err_mark.o", + "crypto/err/libcrypto-lib-err_prn.o", + "crypto/err/libcrypto-lib-err_save.o" ], "products" => { "lib" => [ @@ -9166,7 +10583,9 @@ our %unified_info = ( "crypto/evp/libcrypto-lib-pmeth_check.o", "crypto/evp/libcrypto-lib-pmeth_gn.o", "crypto/evp/libcrypto-lib-pmeth_lib.o", + "crypto/evp/libcrypto-lib-s_lib.o", "crypto/evp/libcrypto-lib-signature.o", + "crypto/evp/libcrypto-lib-skeymgmt_meth.o", "crypto/evp/libfips-lib-asymcipher.o", "crypto/evp/libfips-lib-dh_support.o", "crypto/evp/libfips-lib-digest.o", @@ -9182,14 +10601,15 @@ our %unified_info = ( "crypto/evp/libfips-lib-kem.o", "crypto/evp/libfips-lib-keymgmt_lib.o", "crypto/evp/libfips-lib-keymgmt_meth.o", - "crypto/evp/libfips-lib-m_sigver.o", "crypto/evp/libfips-lib-mac_lib.o", "crypto/evp/libfips-lib-mac_meth.o", "crypto/evp/libfips-lib-p_lib.o", "crypto/evp/libfips-lib-pmeth_check.o", "crypto/evp/libfips-lib-pmeth_gn.o", "crypto/evp/libfips-lib-pmeth_lib.o", - "crypto/evp/libfips-lib-signature.o" + "crypto/evp/libfips-lib-s_lib.o", + "crypto/evp/libfips-lib-signature.o", + "crypto/evp/libfips-lib-skeymgmt_meth.o" ], "products" => { "lib" => [ @@ -9222,6 +10642,20 @@ our %unified_info = ( ] } }, + "crypto/hashtable" => { + "deps" => [ + "crypto/hashtable/libcrypto-lib-hashfunc.o", + "crypto/hashtable/libcrypto-lib-hashtable.o", + "crypto/hashtable/libfips-lib-hashfunc.o", + "crypto/hashtable/libfips-lib-hashtable.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, "crypto/hmac" => { "deps" => [ "crypto/hmac/libcrypto-lib-hmac.o", @@ -9234,6 +10668,17 @@ our %unified_info = ( ] } }, + "crypto/hpke" => { + "deps" => [ + "crypto/hpke/libcrypto-lib-hpke.o", + "crypto/hpke/libcrypto-lib-hpke_util.o" + ], + "products" => { + "lib" => [ + "libcrypto" + ] + } + }, "crypto/http" => { "deps" => [ "crypto/http/libcrypto-lib-http_client.o", @@ -9318,6 +10763,44 @@ our %unified_info = ( ] } }, + "crypto/ml_dsa" => { + "deps" => [ + "crypto/ml_dsa/libcrypto-lib-ml_dsa_encoders.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key_compress.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_matrix.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_ntt.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_params.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sample.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sign.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_encoders.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_key.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_key_compress.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_matrix.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_ntt.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_params.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_sample.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_sign.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, + "crypto/ml_kem" => { + "deps" => [ + "crypto/ml_kem/libcrypto-lib-ml_kem.o", + "crypto/ml_kem/libfips-lib-ml_kem.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, "crypto/modes" => { "deps" => [ "crypto/modes/libcrypto-lib-cbc128.o", @@ -9332,6 +10815,7 @@ our %unified_info = ( "crypto/modes/libcrypto-lib-siv128.o", "crypto/modes/libcrypto-lib-wrap128.o", "crypto/modes/libcrypto-lib-xts128.o", + "crypto/modes/libcrypto-lib-xts128gb.o", "crypto/modes/libfips-lib-cbc128.o", "crypto/modes/libfips-lib-ccm128.o", "crypto/modes/libfips-lib-cfb128.o", @@ -9340,7 +10824,8 @@ our %unified_info = ( "crypto/modes/libfips-lib-ghash-x86.o", "crypto/modes/libfips-lib-ofb128.o", "crypto/modes/libfips-lib-wrap128.o", - "crypto/modes/libfips-lib-xts128.o" + "crypto/modes/libfips-lib-xts128.o", + "crypto/modes/libfips-lib-xts128gb.o" ], "products" => { "lib" => [ @@ -9484,6 +10969,7 @@ our %unified_info = ( "crypto/rand/libcrypto-lib-rand_lib.o", "crypto/rand/libcrypto-lib-rand_meth.o", "crypto/rand/libcrypto-lib-rand_pool.o", + "crypto/rand/libcrypto-lib-rand_uniform.o", "crypto/rand/libcrypto-lib-randfile.o", "crypto/rand/libfips-lib-rand_lib.o" ], @@ -9634,6 +11120,36 @@ our %unified_info = ( ] } }, + "crypto/slh_dsa" => { + "deps" => [ + "crypto/slh_dsa/libcrypto-lib-slh_adrs.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa_hash_ctx.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa_key.o", + "crypto/slh_dsa/libcrypto-lib-slh_fors.o", + "crypto/slh_dsa/libcrypto-lib-slh_hash.o", + "crypto/slh_dsa/libcrypto-lib-slh_hypertree.o", + "crypto/slh_dsa/libcrypto-lib-slh_params.o", + "crypto/slh_dsa/libcrypto-lib-slh_wots.o", + "crypto/slh_dsa/libcrypto-lib-slh_xmss.o", + "crypto/slh_dsa/libfips-lib-slh_adrs.o", + "crypto/slh_dsa/libfips-lib-slh_dsa.o", + "crypto/slh_dsa/libfips-lib-slh_dsa_hash_ctx.o", + "crypto/slh_dsa/libfips-lib-slh_dsa_key.o", + "crypto/slh_dsa/libfips-lib-slh_fors.o", + "crypto/slh_dsa/libfips-lib-slh_hash.o", + "crypto/slh_dsa/libfips-lib-slh_hypertree.o", + "crypto/slh_dsa/libfips-lib-slh_params.o", + "crypto/slh_dsa/libfips-lib-slh_wots.o", + "crypto/slh_dsa/libfips-lib-slh_xmss.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, "crypto/sm2" => { "deps" => [ "crypto/sm2/libcrypto-lib-sm2_crypt.o", @@ -9707,6 +11223,38 @@ our %unified_info = ( ] } }, + "crypto/thread" => { + "deps" => [ + "crypto/thread/libcrypto-lib-api.o", + "crypto/thread/libcrypto-lib-arch.o", + "crypto/thread/libcrypto-lib-internal.o", + "crypto/thread/libfips-lib-api.o", + "crypto/thread/libfips-lib-arch.o", + "crypto/thread/libfips-lib-internal.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, + "crypto/thread/arch" => { + "deps" => [ + "crypto/thread/arch/libcrypto-lib-thread_none.o", + "crypto/thread/arch/libcrypto-lib-thread_posix.o", + "crypto/thread/arch/libcrypto-lib-thread_win.o", + "crypto/thread/arch/libfips-lib-thread_none.o", + "crypto/thread/arch/libfips-lib-thread_posix.o", + "crypto/thread/arch/libfips-lib-thread_win.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, "crypto/ts" => { "deps" => [ "crypto/ts/libcrypto-lib-ts_asn1.o", @@ -9774,14 +11322,22 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-pcy_map.o", "crypto/x509/libcrypto-lib-pcy_node.o", "crypto/x509/libcrypto-lib-pcy_tree.o", + "crypto/x509/libcrypto-lib-t_acert.o", "crypto/x509/libcrypto-lib-t_crl.o", "crypto/x509/libcrypto-lib-t_req.o", "crypto/x509/libcrypto-lib-t_x509.o", + "crypto/x509/libcrypto-lib-v3_aaa.o", + "crypto/x509/libcrypto-lib-v3_ac_tgt.o", "crypto/x509/libcrypto-lib-v3_addr.o", "crypto/x509/libcrypto-lib-v3_admis.o", "crypto/x509/libcrypto-lib-v3_akeya.o", "crypto/x509/libcrypto-lib-v3_akid.o", "crypto/x509/libcrypto-lib-v3_asid.o", + "crypto/x509/libcrypto-lib-v3_attrdesc.o", + "crypto/x509/libcrypto-lib-v3_attrmap.o", + "crypto/x509/libcrypto-lib-v3_audit_id.o", + "crypto/x509/libcrypto-lib-v3_authattid.o", + "crypto/x509/libcrypto-lib-v3_battcons.o", "crypto/x509/libcrypto-lib-v3_bcons.o", "crypto/x509/libcrypto-lib-v3_bitst.o", "crypto/x509/libcrypto-lib-v3_conf.o", @@ -9790,12 +11346,17 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_enum.o", "crypto/x509/libcrypto-lib-v3_extku.o", "crypto/x509/libcrypto-lib-v3_genn.o", + "crypto/x509/libcrypto-lib-v3_group_ac.o", "crypto/x509/libcrypto-lib-v3_ia5.o", + "crypto/x509/libcrypto-lib-v3_ind_iss.o", "crypto/x509/libcrypto-lib-v3_info.o", "crypto/x509/libcrypto-lib-v3_int.o", + "crypto/x509/libcrypto-lib-v3_iobo.o", "crypto/x509/libcrypto-lib-v3_ist.o", "crypto/x509/libcrypto-lib-v3_lib.o", "crypto/x509/libcrypto-lib-v3_ncons.o", + "crypto/x509/libcrypto-lib-v3_no_ass.o", + "crypto/x509/libcrypto-lib-v3_no_rev_avail.o", "crypto/x509/libcrypto-lib-v3_pci.o", "crypto/x509/libcrypto-lib-v3_pcia.o", "crypto/x509/libcrypto-lib-v3_pcons.o", @@ -9803,13 +11364,20 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_pmaps.o", "crypto/x509/libcrypto-lib-v3_prn.o", "crypto/x509/libcrypto-lib-v3_purp.o", + "crypto/x509/libcrypto-lib-v3_rolespec.o", "crypto/x509/libcrypto-lib-v3_san.o", + "crypto/x509/libcrypto-lib-v3_sda.o", + "crypto/x509/libcrypto-lib-v3_single_use.o", "crypto/x509/libcrypto-lib-v3_skid.o", + "crypto/x509/libcrypto-lib-v3_soa_id.o", "crypto/x509/libcrypto-lib-v3_sxnet.o", + "crypto/x509/libcrypto-lib-v3_timespec.o", "crypto/x509/libcrypto-lib-v3_tlsf.o", + "crypto/x509/libcrypto-lib-v3_usernotice.o", "crypto/x509/libcrypto-lib-v3_utf8.o", "crypto/x509/libcrypto-lib-v3_utl.o", "crypto/x509/libcrypto-lib-v3err.o", + "crypto/x509/libcrypto-lib-x509_acert.o", "crypto/x509/libcrypto-lib-x509_att.o", "crypto/x509/libcrypto-lib-x509_cmp.o", "crypto/x509/libcrypto-lib-x509_d2.o", @@ -9827,6 +11395,7 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x509_v3.o", "crypto/x509/libcrypto-lib-x509_vfy.o", "crypto/x509/libcrypto-lib-x509_vpm.o", + "crypto/x509/libcrypto-lib-x509aset.o", "crypto/x509/libcrypto-lib-x509cset.o", "crypto/x509/libcrypto-lib-x509name.o", "crypto/x509/libcrypto-lib-x509rset.o", @@ -9836,6 +11405,7 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x_attrib.o", "crypto/x509/libcrypto-lib-x_crl.o", "crypto/x509/libcrypto-lib-x_exten.o", + "crypto/x509/libcrypto-lib-x_ietfatt.o", "crypto/x509/libcrypto-lib-x_name.o", "crypto/x509/libcrypto-lib-x_pubkey.o", "crypto/x509/libcrypto-lib-x_req.o", @@ -9863,6 +11433,7 @@ our %unified_info = ( "fuzz" => { "products" => { "bin" => [ + "fuzz/acert-test", "fuzz/asn1-test", "fuzz/asn1parse-test", "fuzz/bignum-test", @@ -9873,13 +11444,31 @@ our %unified_info = ( "fuzz/conf-test", "fuzz/crl-test", "fuzz/ct-test", + "fuzz/decoder-test", + "fuzz/dtlsclient-test", + "fuzz/dtlsserver-test", + "fuzz/hashtable-test", + "fuzz/ml-dsa-test", + "fuzz/ml-kem-test", + "fuzz/pem-test", + "fuzz/provider-test", + "fuzz/punycode-test", + "fuzz/quic-client-test", + "fuzz/quic-lcidm-test", + "fuzz/quic-rcidm-test", + "fuzz/quic-server-test", + "fuzz/quic-srtm-test", "fuzz/server-test", + "fuzz/slh-dsa-test", + "fuzz/smime-test", + "fuzz/v3name-test", "fuzz/x509-test" ] } }, "providers" => { "deps" => [ + "providers/endecode_test-bin-legacyprov.o", "providers/evp_extra_test-bin-legacyprov.o", "providers/libcrypto-lib-baseprov.o", "providers/libcrypto-lib-defltprov.o", @@ -9889,6 +11478,7 @@ our %unified_info = ( ], "products" => { "bin" => [ + "test/endecode_test", "test/evp_extra_test" ], "dso" => [ @@ -9940,8 +11530,12 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ec_sig.o", "providers/common/der/libcommon-lib-der_ecx_gen.o", "providers/common/der/libcommon-lib-der_ecx_key.o", + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o", + "providers/common/der/libcommon-lib-der_ml_dsa_key.o", "providers/common/der/libcommon-lib-der_rsa_gen.o", "providers/common/der/libcommon-lib-der_rsa_key.o", + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o", + "providers/common/der/libcommon-lib-der_slh_dsa_key.o", "providers/common/der/libcommon-lib-der_wrap_gen.o", "providers/common/der/libdefault-lib-der_rsa_sig.o", "providers/common/der/libdefault-lib-der_sm2_gen.o", @@ -9960,6 +11554,7 @@ our %unified_info = ( "providers/fips" => { "deps" => [ "providers/fips/fips-dso-fips_entry.o", + "providers/fips/libfips-lib-fipsindicator.o", "providers/fips/libfips-lib-fipsprov.o", "providers/fips/libfips-lib-self_test.o", "providers/fips/libfips-lib-self_test_kats.o" @@ -10003,6 +11598,9 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_aes_ccm_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_polyval.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_ocb.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_ocb_hw.o", @@ -10027,7 +11625,13 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_cts.o", "providers/implementations/ciphers/libdefault-lib-cipher_null.o", "providers/implementations/ciphers/libdefault-lib-cipher_sm4.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_sm4_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes_common.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes_default.o", @@ -10124,7 +11728,10 @@ our %unified_info = ( "providers/implementations/encode_decode/libdefault-lib-encode_key2blob.o", "providers/implementations/encode_decode/libdefault-lib-encode_key2ms.o", "providers/implementations/encode_decode/libdefault-lib-encode_key2text.o", - "providers/implementations/encode_decode/libdefault-lib-endecoder_common.o" + "providers/implementations/encode_decode/libdefault-lib-endecoder_common.o", + "providers/implementations/encode_decode/libdefault-lib-ml_common_codecs.o", + "providers/implementations/encode_decode/libdefault-lib-ml_dsa_codecs.o", + "providers/implementations/encode_decode/libdefault-lib-ml_kem_codecs.o" ], "products" => { "lib" => [ @@ -10152,7 +11759,9 @@ our %unified_info = ( }, "providers/implementations/kdfs" => { "deps" => [ + "providers/implementations/kdfs/libdefault-lib-argon2.o", "providers/implementations/kdfs/libdefault-lib-hkdf.o", + "providers/implementations/kdfs/libdefault-lib-hmacdrbg_kdf.o", "providers/implementations/kdfs/libdefault-lib-kbkdf.o", "providers/implementations/kdfs/libdefault-lib-krb5kdf.o", "providers/implementations/kdfs/libdefault-lib-pbkdf2.o", @@ -10171,7 +11780,8 @@ our %unified_info = ( "providers/implementations/kdfs/libfips-lib-sskdf.o", "providers/implementations/kdfs/libfips-lib-tls1_prf.o", "providers/implementations/kdfs/libfips-lib-x942kdf.o", - "providers/implementations/kdfs/liblegacy-lib-pbkdf1.o" + "providers/implementations/kdfs/liblegacy-lib-pbkdf1.o", + "providers/implementations/kdfs/liblegacy-lib-pvkkdf.o" ], "products" => { "lib" => [ @@ -10183,13 +11793,22 @@ our %unified_info = ( }, "providers/implementations/kem" => { "deps" => [ + "providers/implementations/kem/libdefault-lib-ec_kem.o", + "providers/implementations/kem/libdefault-lib-ecx_kem.o", + "providers/implementations/kem/libdefault-lib-kem_util.o", + "providers/implementations/kem/libdefault-lib-ml_kem_kem.o", + "providers/implementations/kem/libdefault-lib-mlx_kem.o", "providers/implementations/kem/libdefault-lib-rsa_kem.o", - "providers/implementations/kem/libfips-lib-rsa_kem.o" + "providers/implementations/kem/libfips-lib-ml_kem_kem.o", + "providers/implementations/kem/libfips-lib-mlx_kem.o", + "providers/implementations/kem/libfips-lib-rsa_kem.o", + "providers/implementations/kem/libtemplate-lib-template_kem.o" ], "products" => { "lib" => [ "providers/libdefault.a", - "providers/libfips.a" + "providers/libfips.a", + "providers/libtemplate.a" ] } }, @@ -10201,19 +11820,29 @@ our %unified_info = ( "providers/implementations/keymgmt/libdefault-lib-ecx_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-kdf_legacy_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-mac_legacy_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-ml_dsa_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-ml_kem_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-mlx_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-rsa_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-slh_dsa_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-dh_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-dsa_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-ec_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-ecx_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-kdf_legacy_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-mac_legacy_kmgmt.o", - "providers/implementations/keymgmt/libfips-lib-rsa_kmgmt.o" + "providers/implementations/keymgmt/libfips-lib-ml_dsa_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-ml_kem_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-mlx_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-rsa_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-slh_dsa_kmgmt.o", + "providers/implementations/keymgmt/libtemplate-lib-template_kmgmt.o" ], "products" => { "lib" => [ "providers/libdefault.a", - "providers/libfips.a" + "providers/libfips.a", + "providers/libtemplate.a" ] } }, @@ -10241,18 +11870,18 @@ our %unified_info = ( }, "providers/implementations/rands" => { "deps" => [ - "providers/implementations/rands/libdefault-lib-crngt.o", "providers/implementations/rands/libdefault-lib-drbg.o", "providers/implementations/rands/libdefault-lib-drbg_ctr.o", "providers/implementations/rands/libdefault-lib-drbg_hash.o", "providers/implementations/rands/libdefault-lib-drbg_hmac.o", "providers/implementations/rands/libdefault-lib-seed_src.o", + "providers/implementations/rands/libdefault-lib-seed_src_jitter.o", "providers/implementations/rands/libdefault-lib-test_rng.o", - "providers/implementations/rands/libfips-lib-crngt.o", "providers/implementations/rands/libfips-lib-drbg.o", "providers/implementations/rands/libfips-lib-drbg_ctr.o", "providers/implementations/rands/libfips-lib-drbg_hash.o", "providers/implementations/rands/libfips-lib-drbg_hmac.o", + "providers/implementations/rands/libfips-lib-fips_crng_test.o", "providers/implementations/rands/libfips-lib-test_rng.o" ], "products" => { @@ -10281,13 +11910,31 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-ecdsa_sig.o", "providers/implementations/signature/libdefault-lib-eddsa_sig.o", "providers/implementations/signature/libdefault-lib-mac_legacy_sig.o", + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o", "providers/implementations/signature/libdefault-lib-rsa_sig.o", + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o", "providers/implementations/signature/libdefault-lib-sm2_sig.o", "providers/implementations/signature/libfips-lib-dsa_sig.o", "providers/implementations/signature/libfips-lib-ecdsa_sig.o", "providers/implementations/signature/libfips-lib-eddsa_sig.o", "providers/implementations/signature/libfips-lib-mac_legacy_sig.o", - "providers/implementations/signature/libfips-lib-rsa_sig.o" + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o", + "providers/implementations/signature/libfips-lib-rsa_sig.o", + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o" + ], + "products" => { + "lib" => [ + "providers/libdefault.a", + "providers/libfips.a" + ] + } + }, + "providers/implementations/skeymgmt" => { + "deps" => [ + "providers/implementations/skeymgmt/libdefault-lib-aes_skmgmt.o", + "providers/implementations/skeymgmt/libdefault-lib-generic.o", + "providers/implementations/skeymgmt/libfips-lib-aes_skmgmt.o", + "providers/implementations/skeymgmt/libfips-lib-generic.o" ], "products" => { "lib" => [ @@ -10299,7 +11946,8 @@ our %unified_info = ( "providers/implementations/storemgmt" => { "deps" => [ "providers/implementations/storemgmt/libdefault-lib-file_store.o", - "providers/implementations/storemgmt/libdefault-lib-file_store_any2obj.o" + "providers/implementations/storemgmt/libdefault-lib-file_store_any2obj.o", + "providers/implementations/storemgmt/libdefault-lib-winstore_store.o" ], "products" => { "lib" => [ @@ -10315,14 +11963,15 @@ our %unified_info = ( "ssl/libssl-lib-d1_srtp.o", "ssl/libssl-lib-methods.o", "ssl/libssl-lib-pqueue.o", + "ssl/libssl-lib-priority_queue.o", "ssl/libssl-lib-s3_enc.o", "ssl/libssl-lib-s3_lib.o", "ssl/libssl-lib-s3_msg.o", "ssl/libssl-lib-ssl_asn1.o", "ssl/libssl-lib-ssl_cert.o", + "ssl/libssl-lib-ssl_cert_comp.o", "ssl/libssl-lib-ssl_ciph.o", "ssl/libssl-lib-ssl_conf.o", - "ssl/libssl-lib-ssl_err.o", "ssl/libssl-lib-ssl_err_legacy.o", "ssl/libssl-lib-ssl_init.o", "ssl/libssl-lib-ssl_lib.o", @@ -10338,32 +11987,107 @@ our %unified_info = ( "ssl/libssl-lib-t1_trce.o", "ssl/libssl-lib-tls13_enc.o", "ssl/libssl-lib-tls_depr.o", - "ssl/libssl-lib-tls_srp.o", - "ssl/libdefault-lib-s3_cbc.o", - "ssl/libfips-lib-s3_cbc.o" + "ssl/libssl-lib-tls_srp.o" ], "products" => { "lib" => [ - "libssl", - "providers/libdefault.a", - "providers/libfips.a" + "libssl" + ] + } + }, + "ssl/quic" => { + "deps" => [ + "ssl/quic/libssl-lib-cc_newreno.o", + "ssl/quic/libssl-lib-json_enc.o", + "ssl/quic/libssl-lib-qlog.o", + "ssl/quic/libssl-lib-qlog_event_helpers.o", + "ssl/quic/libssl-lib-quic_ackm.o", + "ssl/quic/libssl-lib-quic_cfq.o", + "ssl/quic/libssl-lib-quic_channel.o", + "ssl/quic/libssl-lib-quic_demux.o", + "ssl/quic/libssl-lib-quic_engine.o", + "ssl/quic/libssl-lib-quic_fc.o", + "ssl/quic/libssl-lib-quic_fifd.o", + "ssl/quic/libssl-lib-quic_impl.o", + "ssl/quic/libssl-lib-quic_lcidm.o", + "ssl/quic/libssl-lib-quic_method.o", + "ssl/quic/libssl-lib-quic_obj.o", + "ssl/quic/libssl-lib-quic_port.o", + "ssl/quic/libssl-lib-quic_rcidm.o", + "ssl/quic/libssl-lib-quic_reactor.o", + "ssl/quic/libssl-lib-quic_reactor_wait_ctx.o", + "ssl/quic/libssl-lib-quic_record_rx.o", + "ssl/quic/libssl-lib-quic_record_shared.o", + "ssl/quic/libssl-lib-quic_record_tx.o", + "ssl/quic/libssl-lib-quic_record_util.o", + "ssl/quic/libssl-lib-quic_rstream.o", + "ssl/quic/libssl-lib-quic_rx_depack.o", + "ssl/quic/libssl-lib-quic_sf_list.o", + "ssl/quic/libssl-lib-quic_srt_gen.o", + "ssl/quic/libssl-lib-quic_srtm.o", + "ssl/quic/libssl-lib-quic_sstream.o", + "ssl/quic/libssl-lib-quic_statm.o", + "ssl/quic/libssl-lib-quic_stream_map.o", + "ssl/quic/libssl-lib-quic_thread_assist.o", + "ssl/quic/libssl-lib-quic_tls.o", + "ssl/quic/libssl-lib-quic_tls_api.o", + "ssl/quic/libssl-lib-quic_trace.o", + "ssl/quic/libssl-lib-quic_tserver.o", + "ssl/quic/libssl-lib-quic_txp.o", + "ssl/quic/libssl-lib-quic_txpim.o", + "ssl/quic/libssl-lib-quic_types.o", + "ssl/quic/libssl-lib-quic_wire.o", + "ssl/quic/libssl-lib-quic_wire_pkt.o", + "ssl/quic/libssl-lib-uint_set.o" + ], + "products" => { + "lib" => [ + "libssl" ] } }, "ssl/record" => { "deps" => [ - "ssl/record/libssl-lib-dtls1_bitmap.o", "ssl/record/libssl-lib-rec_layer_d1.o", - "ssl/record/libssl-lib-rec_layer_s3.o", - "ssl/record/libssl-lib-ssl3_buffer.o", - "ssl/record/libssl-lib-ssl3_record.o", - "ssl/record/libssl-lib-ssl3_record_tls13.o", - "ssl/record/libcommon-lib-tls_pad.o" + "ssl/record/libssl-lib-rec_layer_s3.o" + ], + "products" => { + "lib" => [ + "libssl" + ] + } + }, + "ssl/record/methods" => { + "deps" => [ + "ssl/record/methods/libssl-lib-dtls_meth.o", + "ssl/record/methods/libssl-lib-ssl3_meth.o", + "ssl/record/methods/libssl-lib-tls13_meth.o", + "ssl/record/methods/libssl-lib-tls1_meth.o", + "ssl/record/methods/libssl-lib-tls_common.o", + "ssl/record/methods/libssl-lib-tls_multib.o", + "ssl/record/methods/libssl-lib-tlsany_meth.o", + "ssl/record/methods/libcommon-lib-tls_pad.o", + "ssl/record/methods/libdefault-lib-ssl3_cbc.o", + "ssl/record/methods/libfips-lib-ssl3_cbc.o" ], "products" => { "lib" => [ "libssl", - "providers/libcommon.a" + "providers/libcommon.a", + "providers/libdefault.a", + "providers/libfips.a" + ] + } + }, + "ssl/rio" => { + "deps" => [ + "ssl/rio/libssl-lib-poll_builder.o", + "ssl/rio/libssl-lib-poll_immediate.o", + "ssl/rio/libssl-lib-rio_notifier.o" + ], + "products" => { + "lib" => [ + "libssl" ] } }, @@ -10401,9 +12125,40 @@ our %unified_info = ( "test/helpers/dtlstest-bin-ssltestlib.o", "test/helpers/endecode_test-bin-predefined_dhparams.o", "test/helpers/fatalerrtest-bin-ssltestlib.o", + "test/helpers/json_test-bin-noisydgrambio.o", + "test/helpers/json_test-bin-pktsplitbio.o", + "test/helpers/json_test-bin-quictestlib.o", + "test/helpers/json_test-bin-ssltestlib.o", + "test/helpers/pkcs12_api_test-bin-pkcs12.o", "test/helpers/pkcs12_format_test-bin-pkcs12.o", + "test/helpers/quic_multistream_test-bin-noisydgrambio.o", + "test/helpers/quic_multistream_test-bin-pktsplitbio.o", + "test/helpers/quic_multistream_test-bin-quictestlib.o", + "test/helpers/quic_multistream_test-bin-ssltestlib.o", + "test/helpers/quic_newcid_test-bin-noisydgrambio.o", + "test/helpers/quic_newcid_test-bin-pktsplitbio.o", + "test/helpers/quic_newcid_test-bin-quictestlib.o", + "test/helpers/quic_newcid_test-bin-ssltestlib.o", + "test/helpers/quic_radix_test-bin-noisydgrambio.o", + "test/helpers/quic_radix_test-bin-pktsplitbio.o", + "test/helpers/quic_radix_test-bin-quictestlib.o", + "test/helpers/quic_radix_test-bin-ssltestlib.o", + "test/helpers/quic_srt_gen_test-bin-noisydgrambio.o", + "test/helpers/quic_srt_gen_test-bin-pktsplitbio.o", + "test/helpers/quic_srt_gen_test-bin-quictestlib.o", + "test/helpers/quic_srt_gen_test-bin-ssltestlib.o", + "test/helpers/quicapitest-bin-noisydgrambio.o", + "test/helpers/quicapitest-bin-pktsplitbio.o", + "test/helpers/quicapitest-bin-quictestlib.o", + "test/helpers/quicapitest-bin-ssltestlib.o", + "test/helpers/quicfaultstest-bin-noisydgrambio.o", + "test/helpers/quicfaultstest-bin-pktsplitbio.o", + "test/helpers/quicfaultstest-bin-quictestlib.o", + "test/helpers/quicfaultstest-bin-ssltestlib.o", "test/helpers/recordlentest-bin-ssltestlib.o", + "test/helpers/rpktest-bin-ssltestlib.o", "test/helpers/servername_test-bin-ssltestlib.o", + "test/helpers/ssl_handshake_rtt_test-bin-ssltestlib.o", "test/helpers/ssl_old_test-bin-predefined_dhparams.o", "test/helpers/ssl_test-bin-handshake.o", "test/helpers/ssl_test-bin-handshake_srp.o", @@ -10412,7 +12167,8 @@ our %unified_info = ( "test/helpers/sslapitest-bin-ssltestlib.o", "test/helpers/sslbuffertest-bin-ssltestlib.o", "test/helpers/sslcorrupttest-bin-ssltestlib.o", - "test/helpers/tls13ccstest-bin-ssltestlib.o" + "test/helpers/tls13ccstest-bin-ssltestlib.o", + "test/helpers/tls13groupselection_test-bin-ssltestlib.o" ], "products" => { "bin" => [ @@ -10430,16 +12186,37 @@ our %unified_info = ( "test/dtlstest", "test/endecode_test", "test/fatalerrtest", + "test/json_test", + "test/pkcs12_api_test", "test/pkcs12_format_test", + "test/quic_multistream_test", + "test/quic_newcid_test", + "test/quic_radix_test", + "test/quic_srt_gen_test", + "test/quicapitest", + "test/quicfaultstest", "test/recordlentest", + "test/rpktest", "test/servername_test", + "test/ssl_handshake_rtt_test", "test/ssl_old_test", "test/ssl_test", "test/ssl_test_ctx_test", "test/sslapitest", "test/sslbuffertest", "test/sslcorrupttest", - "test/tls13ccstest" + "test/tls13ccstest", + "test/tls13groupselection_test" + ] + } + }, + "test/radix" => { + "deps" => [ + "test/radix/quic_radix_test-bin-quic_radix.o" + ], + "products" => { + "bin" => [ + "test/quic_radix_test" ] } }, @@ -10451,6 +12228,7 @@ our %unified_info = ( "test/testutil/libtestutil-lib-driver.o", "test/testutil/libtestutil-lib-fake_random.o", "test/testutil/libtestutil-lib-format_output.o", + "test/testutil/libtestutil-lib-helper.o", "test/testutil/libtestutil-lib-load.o", "test/testutil/libtestutil-lib-main.o", "test/testutil/libtestutil-lib-options.o", @@ -10485,6 +12263,12 @@ our %unified_info = ( } }, "generate" => { + "OpenSSLConfig.cmake" => [ + "exporters/cmake/OpenSSLConfig.cmake.in" + ], + "OpenSSLConfigVersion.cmake" => [ + "exporters/cmake/OpenSSLConfigVersion.cmake.in" + ], "apps/openssl.rc" => [ "util/mkrc.pl", "openssl" @@ -10499,6 +12283,19 @@ our %unified_info = ( "\"-H\"", "\$(APPS_OPENSSL)" ], + "builddata.pm" => [ + "util/mkinstallvars.pl", + "PREFIX=.", + "BINDIR=apps", + "APPLINKDIR=ms", + "LIBDIR=", + "INCLUDEDIR=include", + "\"INCLUDEDIR=\$(SRCDIR)/include\"", + "ENGINESDIR=engines", + "MODULESDIR=providers", + "\"VERSION=\$(VERSION)\"", + "\"LDLIBS=\$(LIB_EX_LIBS)\"" + ], "crypto/aes/aes-586.S" => [ "crypto/aes/asm/aes-586.pl" ], @@ -10520,6 +12317,24 @@ our %unified_info = ( "crypto/aes/aes-ppc.s" => [ "crypto/aes/asm/aes-ppc.pl" ], + "crypto/aes/aes-riscv32-zkn.s" => [ + "crypto/aes/asm/aes-riscv32-zkn.pl" + ], + "crypto/aes/aes-riscv64-zkn.s" => [ + "crypto/aes/asm/aes-riscv64-zkn.pl" + ], + "crypto/aes/aes-riscv64-zvbb-zvkg-zvkned.s" => [ + "crypto/aes/asm/aes-riscv64-zvbb-zvkg-zvkned.pl" + ], + "crypto/aes/aes-riscv64-zvkb-zvkned.s" => [ + "crypto/aes/asm/aes-riscv64-zvkb-zvkned.pl" + ], + "crypto/aes/aes-riscv64-zvkned.s" => [ + "crypto/aes/asm/aes-riscv64-zvkned.pl" + ], + "crypto/aes/aes-riscv64.s" => [ + "crypto/aes/asm/aes-riscv64.pl" + ], "crypto/aes/aes-s390x.S" => [ "crypto/aes/asm/aes-s390x.pl" ], @@ -10547,6 +12362,9 @@ our %unified_info = ( "crypto/aes/aesni-x86_64.s" => [ "crypto/aes/asm/aesni-x86_64.pl" ], + "crypto/aes/aesni-xts-avx512.s" => [ + "crypto/aes/asm/aesni-xts-avx512.pl" + ], "crypto/aes/aesp8-ppc.s" => [ "crypto/aes/asm/aesp8-ppc.pl" ], @@ -10559,12 +12377,18 @@ our %unified_info = ( "crypto/aes/bsaes-armv7.S" => [ "crypto/aes/asm/bsaes-armv7.pl" ], + "crypto/aes/bsaes-armv8.S" => [ + "crypto/aes/asm/bsaes-armv8.pl" + ], "crypto/aes/bsaes-x86_64.s" => [ "crypto/aes/asm/bsaes-x86_64.pl" ], "crypto/aes/vpaes-armv8.S" => [ "crypto/aes/asm/vpaes-armv8.pl" ], + "crypto/aes/vpaes-loongarch64.S" => [ + "crypto/aes/asm/vpaes-loongarch64.pl" + ], "crypto/aes/vpaes-ppc.s" => [ "crypto/aes/asm/vpaes-ppc.pl" ], @@ -10625,15 +12449,33 @@ our %unified_info = ( "crypto/bn/ppc-mont.s" => [ "crypto/bn/asm/ppc-mont.pl" ], + "crypto/bn/ppc64-mont-fixed.s" => [ + "crypto/bn/asm/ppc64-mont-fixed.pl" + ], "crypto/bn/ppc64-mont.s" => [ "crypto/bn/asm/ppc64-mont.pl" ], + "crypto/bn/rsaz-2k-avx512.s" => [ + "crypto/bn/asm/rsaz-2k-avx512.pl" + ], + "crypto/bn/rsaz-2k-avxifma.s" => [ + "crypto/bn/asm/rsaz-2k-avxifma.pl" + ], + "crypto/bn/rsaz-3k-avx512.s" => [ + "crypto/bn/asm/rsaz-3k-avx512.pl" + ], + "crypto/bn/rsaz-3k-avxifma.s" => [ + "crypto/bn/asm/rsaz-3k-avxifma.pl" + ], + "crypto/bn/rsaz-4k-avx512.s" => [ + "crypto/bn/asm/rsaz-4k-avx512.pl" + ], + "crypto/bn/rsaz-4k-avxifma.s" => [ + "crypto/bn/asm/rsaz-4k-avxifma.pl" + ], "crypto/bn/rsaz-avx2.s" => [ "crypto/bn/asm/rsaz-avx2.pl" ], - "crypto/bn/rsaz-avx512.s" => [ - "crypto/bn/asm/rsaz-avx512.pl" - ], "crypto/bn/rsaz-x86_64.s" => [ "crypto/bn/asm/rsaz-x86_64.pl" ], @@ -10695,6 +12537,9 @@ our %unified_info = ( "crypto/chacha/chacha-armv4.S" => [ "crypto/chacha/asm/chacha-armv4.pl" ], + "crypto/chacha/chacha-armv8-sve.S" => [ + "crypto/chacha/asm/chacha-armv8-sve.pl" + ], "crypto/chacha/chacha-armv8.S" => [ "crypto/chacha/asm/chacha-armv8.pl" ], @@ -10707,9 +12552,19 @@ our %unified_info = ( "crypto/chacha/chacha-ia64.s" => [ "crypto/chacha/chacha-ia64.S" ], + "crypto/chacha/chacha-loongarch64.S" => [ + "crypto/chacha/asm/chacha-loongarch64.pl" + ], "crypto/chacha/chacha-ppc.s" => [ "crypto/chacha/asm/chacha-ppc.pl" ], + "crypto/chacha/chacha-riscv64-v-zbb-zvkb.s" => [ + "crypto/chacha/asm/chacha-riscv64-v-zbb.pl", + "zvkb" + ], + "crypto/chacha/chacha-riscv64-v-zbb.s" => [ + "crypto/chacha/asm/chacha-riscv64-v-zbb.pl" + ], "crypto/chacha/chacha-s390x.S" => [ "crypto/chacha/asm/chacha-s390x.pl" ], @@ -10719,6 +12574,9 @@ our %unified_info = ( "crypto/chacha/chacha-x86_64.s" => [ "crypto/chacha/asm/chacha-x86_64.pl" ], + "crypto/chacha/chachap10-ppc.s" => [ + "crypto/chacha/asm/chachap10-ppc.pl" + ], "crypto/des/crypt586.S" => [ "crypto/des/asm/crypt586.pl" ], @@ -10731,6 +12589,9 @@ our %unified_info = ( "crypto/des/dest4-sparcv9.S" => [ "crypto/des/asm/dest4-sparcv9.pl" ], + "crypto/ec/ecp_nistp384-ppc64.s" => [ + "crypto/ec/asm/ecp_nistp384-ppc64.pl" + ], "crypto/ec/ecp_nistp521-ppc64.s" => [ "crypto/ec/asm/ecp_nistp521-ppc64.pl" ], @@ -10755,6 +12616,9 @@ our %unified_info = ( "crypto/ec/ecp_nistz256-x86_64.s" => [ "crypto/ec/asm/ecp_nistz256-x86_64.pl" ], + "crypto/ec/ecp_sm2p256-armv8.S" => [ + "crypto/ec/asm/ecp_sm2p256-armv8.pl" + ], "crypto/ec/x25519-ppc64.s" => [ "crypto/ec/asm/x25519-ppc64.pl" ], @@ -10764,18 +12628,39 @@ our %unified_info = ( "crypto/ia64cpuid.s" => [ "crypto/ia64cpuid.S" ], + "crypto/loongarch64cpuid.s" => [ + "crypto/loongarch64cpuid.pl" + ], "crypto/md5/md5-586.S" => [ "crypto/md5/asm/md5-586.pl" ], + "crypto/md5/md5-aarch64.S" => [ + "crypto/md5/asm/md5-aarch64.pl" + ], + "crypto/md5/md5-loongarch64.S" => [ + "crypto/md5/asm/md5-loongarch64.pl" + ], "crypto/md5/md5-sparcv9.S" => [ "crypto/md5/asm/md5-sparcv9.pl" ], "crypto/md5/md5-x86_64.s" => [ "crypto/md5/asm/md5-x86_64.pl" ], + "crypto/modes/aes-gcm-armv8-unroll8_64.S" => [ + "crypto/modes/asm/aes-gcm-armv8-unroll8_64.pl" + ], "crypto/modes/aes-gcm-armv8_64.S" => [ "crypto/modes/asm/aes-gcm-armv8_64.pl" ], + "crypto/modes/aes-gcm-avx512.s" => [ + "crypto/modes/asm/aes-gcm-avx512.pl" + ], + "crypto/modes/aes-gcm-ppc.s" => [ + "crypto/modes/asm/aes-gcm-ppc.pl" + ], + "crypto/modes/aes-gcm-riscv64-zvkb-zvkg-zvkned.s" => [ + "crypto/modes/asm/aes-gcm-riscv64-zvkb-zvkg-zvkned.pl" + ], "crypto/modes/aesni-gcm-x86_64.s" => [ "crypto/modes/asm/aesni-gcm-x86_64.pl" ], @@ -10794,6 +12679,15 @@ our %unified_info = ( "crypto/modes/ghash-parisc.s" => [ "crypto/modes/asm/ghash-parisc.pl" ], + "crypto/modes/ghash-riscv64-zvkb-zvbc.s" => [ + "crypto/modes/asm/ghash-riscv64-zvkb-zvbc.pl" + ], + "crypto/modes/ghash-riscv64-zvkg.s" => [ + "crypto/modes/asm/ghash-riscv64-zvkg.pl" + ], + "crypto/modes/ghash-riscv64.s" => [ + "crypto/modes/asm/ghash-riscv64.pl" + ], "crypto/modes/ghash-s390x.S" => [ "crypto/modes/asm/ghash-s390x.pl" ], @@ -10812,6 +12706,9 @@ our %unified_info = ( "crypto/modes/ghashv8-armx.S" => [ "crypto/modes/asm/ghashv8-armx.pl" ], + "crypto/params_idx.c" => [ + "crypto/params_idx.c.in" + ], "crypto/pariscid.s" => [ "crypto/pariscid.pl" ], @@ -10872,6 +12769,12 @@ our %unified_info = ( "crypto/ripemd/rmd-586.S" => [ "crypto/ripemd/asm/rmd-586.pl" ], + "crypto/riscv32cpuid.s" => [ + "crypto/riscv32cpuid.pl" + ], + "crypto/riscv64cpuid.s" => [ + "crypto/riscv64cpuid.pl" + ], "crypto/s390xcpuid.S" => [ "crypto/s390xcpuid.pl" ], @@ -10980,6 +12883,9 @@ our %unified_info = ( "crypto/sha/sha256-ppc.s" => [ "crypto/sha/asm/sha512-ppc.pl" ], + "crypto/sha/sha256-riscv64-zvkb-zvknha_or_zvknhb.S" => [ + "crypto/sha/asm/sha256-riscv64-zvkb-zvknha_or_zvknhb.pl" + ], "crypto/sha/sha256-s390x.S" => [ "crypto/sha/asm/sha512-s390x.pl" ], @@ -11016,6 +12922,9 @@ our %unified_info = ( "crypto/sha/sha512-ppc.s" => [ "crypto/sha/asm/sha512-ppc.pl" ], + "crypto/sha/sha512-riscv64-zvkb-zvknhb.S" => [ + "crypto/sha/asm/sha512-riscv64-zvkb-zvknhb.pl" + ], "crypto/sha/sha512-s390x.S" => [ "crypto/sha/asm/sha512-s390x.pl" ], @@ -11028,6 +12937,24 @@ our %unified_info = ( "crypto/sha/sha512p8-ppc.s" => [ "crypto/sha/asm/sha512p8-ppc.pl" ], + "crypto/sm3/sm3-armv8.S" => [ + "crypto/sm3/asm/sm3-armv8.pl" + ], + "crypto/sm3/sm3-riscv64-zvksh.S" => [ + "crypto/sm3/asm/sm3-riscv64-zvksh.pl" + ], + "crypto/sm4/sm4-armv8.S" => [ + "crypto/sm4/asm/sm4-armv8.pl" + ], + "crypto/sm4/sm4-riscv64-zvksed.s" => [ + "crypto/sm4/asm/sm4-riscv64-zvksed.pl" + ], + "crypto/sm4/vpsm4-armv8.S" => [ + "crypto/sm4/asm/vpsm4-armv8.pl" + ], + "crypto/sm4/vpsm4_ex-armv8.S" => [ + "crypto/sm4/asm/vpsm4_ex-armv8.pl" + ], "crypto/uplink-ia64.s" => [ "ms/uplink-ia64.pl" ], @@ -11193,6 +13120,9 @@ our %unified_info = ( "doc/html/man1/openssl-sess_id.html" => [ "doc/man1/openssl-sess_id.pod" ], + "doc/html/man1/openssl-skeyutl.html" => [ + "doc/man1/openssl-skeyutl.pod" + ], "doc/html/man1/openssl-smime.html" => [ "doc/man1/openssl-smime.pod" ], @@ -11334,6 +13264,9 @@ our %unified_info = ( "doc/html/man3/BIO_get_ex_new_index.html" => [ "doc/man3/BIO_get_ex_new_index.pod" ], + "doc/html/man3/BIO_get_rpoll_descriptor.html" => [ + "doc/man3/BIO_get_rpoll_descriptor.pod" + ], "doc/html/man3/BIO_meth_new.html" => [ "doc/man3/BIO_meth_new.pod" ], @@ -11370,6 +13303,9 @@ our %unified_info = ( "doc/html/man3/BIO_s_datagram.html" => [ "doc/man3/BIO_s_datagram.pod" ], + "doc/html/man3/BIO_s_dgram_pair.html" => [ + "doc/man3/BIO_s_dgram_pair.pod" + ], "doc/html/man3/BIO_s_fd.html" => [ "doc/man3/BIO_s_fd.pod" ], @@ -11385,6 +13321,9 @@ our %unified_info = ( "doc/html/man3/BIO_s_socket.html" => [ "doc/man3/BIO_s_socket.pod" ], + "doc/html/man3/BIO_sendmmsg.html" => [ + "doc/man3/BIO_sendmmsg.pod" + ], "doc/html/man3/BIO_set_callback.html" => [ "doc/man3/BIO_set_callback.pod" ], @@ -11457,6 +13396,9 @@ our %unified_info = ( "doc/html/man3/BUF_MEM_new.html" => [ "doc/man3/BUF_MEM_new.pod" ], + "doc/html/man3/CMAC_CTX.html" => [ + "doc/man3/CMAC_CTX.pod" + ], "doc/html/man3/CMS_EncryptedData_decrypt.html" => [ "doc/man3/CMS_EncryptedData_decrypt.pod" ], @@ -11523,6 +13465,9 @@ our %unified_info = ( "doc/html/man3/CMS_verify_receipt.html" => [ "doc/man3/CMS_verify_receipt.pod" ], + "doc/html/man3/COMP_CTX_new.html" => [ + "doc/man3/COMP_CTX_new.pod" + ], "doc/html/man3/CONF_modules_free.html" => [ "doc/man3/CONF_modules_free.pod" ], @@ -11622,6 +13567,12 @@ our %unified_info = ( "doc/html/man3/DTLS_set_timer_cb.html" => [ "doc/man3/DTLS_set_timer_cb.pod" ], + "doc/html/man3/DTLSv1_get_timeout.html" => [ + "doc/man3/DTLSv1_get_timeout.pod" + ], + "doc/html/man3/DTLSv1_handle_timeout.html" => [ + "doc/man3/DTLSv1_handle_timeout.pod" + ], "doc/html/man3/DTLSv1_listen.html" => [ "doc/man3/DTLSv1_listen.pod" ], @@ -11760,6 +13711,9 @@ our %unified_info = ( "doc/html/man3/EVP_PKEY_CTX_get0_pkey.html" => [ "doc/man3/EVP_PKEY_CTX_get0_pkey.pod" ], + "doc/html/man3/EVP_PKEY_CTX_get_algor.html" => [ + "doc/man3/EVP_PKEY_CTX_get_algor.pod" + ], "doc/html/man3/EVP_PKEY_CTX_new.html" => [ "doc/man3/EVP_PKEY_CTX_new.pod" ], @@ -11877,6 +13831,12 @@ our %unified_info = ( "doc/html/man3/EVP_SIGNATURE.html" => [ "doc/man3/EVP_SIGNATURE.pod" ], + "doc/html/man3/EVP_SKEY.html" => [ + "doc/man3/EVP_SKEY.pod" + ], + "doc/html/man3/EVP_SKEYMGMT.html" => [ + "doc/man3/EVP_SKEYMGMT.pod" + ], "doc/html/man3/EVP_SealInit.html" => [ "doc/man3/EVP_SealInit.pod" ], @@ -11964,6 +13924,9 @@ our %unified_info = ( "doc/html/man3/EVP_whirlpool.html" => [ "doc/man3/EVP_whirlpool.pod" ], + "doc/html/man3/GENERAL_NAME.html" => [ + "doc/man3/GENERAL_NAME.pod" + ], "doc/html/man3/HMAC.html" => [ "doc/man3/HMAC.pod" ], @@ -12036,9 +13999,15 @@ our %unified_info = ( "doc/html/man3/OPENSSL_load_builtin_modules.html" => [ "doc/man3/OPENSSL_load_builtin_modules.pod" ], + "doc/html/man3/OPENSSL_load_u16_le.html" => [ + "doc/man3/OPENSSL_load_u16_le.pod" + ], "doc/html/man3/OPENSSL_malloc.html" => [ "doc/man3/OPENSSL_malloc.pod" ], + "doc/html/man3/OPENSSL_riscvcap.html" => [ + "doc/man3/OPENSSL_riscvcap.pod" + ], "doc/html/man3/OPENSSL_s390xcap.html" => [ "doc/man3/OPENSSL_s390xcap.pod" ], @@ -12054,12 +14023,18 @@ our %unified_info = ( "doc/html/man3/OSSL_CALLBACK.html" => [ "doc/man3/OSSL_CALLBACK.pod" ], + "doc/html/man3/OSSL_CMP_ATAV_set0.html" => [ + "doc/man3/OSSL_CMP_ATAV_set0.pod" + ], "doc/html/man3/OSSL_CMP_CTX_new.html" => [ "doc/man3/OSSL_CMP_CTX_new.pod" ], "doc/html/man3/OSSL_CMP_HDR_get0_transactionID.html" => [ "doc/man3/OSSL_CMP_HDR_get0_transactionID.pod" ], + "doc/html/man3/OSSL_CMP_ITAV_new_caCerts.html" => [ + "doc/man3/OSSL_CMP_ITAV_new_caCerts.pod" + ], "doc/html/man3/OSSL_CMP_ITAV_set0.html" => [ "doc/man3/OSSL_CMP_ITAV_set0.pod" ], @@ -12129,9 +14104,18 @@ our %unified_info = ( "doc/html/man3/OSSL_ENCODER_to_bio.html" => [ "doc/man3/OSSL_ENCODER_to_bio.pod" ], + "doc/html/man3/OSSL_ERR_STATE_save.html" => [ + "doc/man3/OSSL_ERR_STATE_save.pod" + ], "doc/html/man3/OSSL_ESS_check_signing_certs.html" => [ "doc/man3/OSSL_ESS_check_signing_certs.pod" ], + "doc/html/man3/OSSL_GENERAL_NAMES_print.html" => [ + "doc/man3/OSSL_GENERAL_NAMES_print.pod" + ], + "doc/html/man3/OSSL_HPKE_CTX_new.html" => [ + "doc/man3/OSSL_HPKE_CTX_new.pod" + ], "doc/html/man3/OSSL_HTTP_REQ_CTX.html" => [ "doc/man3/OSSL_HTTP_REQ_CTX.pod" ], @@ -12141,12 +14125,24 @@ our %unified_info = ( "doc/html/man3/OSSL_HTTP_transfer.html" => [ "doc/man3/OSSL_HTTP_transfer.pod" ], + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX.html" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX.pod" + ], + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX_print.html" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX_print.pod" + ], + "doc/html/man3/OSSL_INDICATOR_set_callback.html" => [ + "doc/man3/OSSL_INDICATOR_set_callback.pod" + ], "doc/html/man3/OSSL_ITEM.html" => [ "doc/man3/OSSL_ITEM.pod" ], "doc/html/man3/OSSL_LIB_CTX.html" => [ "doc/man3/OSSL_LIB_CTX.pod" ], + "doc/html/man3/OSSL_LIB_CTX_set_conf_diagnostics.html" => [ + "doc/man3/OSSL_LIB_CTX_set_conf_diagnostics.pod" + ], "doc/html/man3/OSSL_PARAM.html" => [ "doc/man3/OSSL_PARAM.pod" ], @@ -12162,9 +14158,15 @@ our %unified_info = ( "doc/html/man3/OSSL_PARAM_int.html" => [ "doc/man3/OSSL_PARAM_int.pod" ], + "doc/html/man3/OSSL_PARAM_print_to_bio.html" => [ + "doc/man3/OSSL_PARAM_print_to_bio.pod" + ], "doc/html/man3/OSSL_PROVIDER.html" => [ "doc/man3/OSSL_PROVIDER.pod" ], + "doc/html/man3/OSSL_QUIC_client_method.html" => [ + "doc/man3/OSSL_QUIC_client_method.pod" + ], "doc/html/man3/OSSL_SELF_TEST_new.html" => [ "doc/man3/OSSL_SELF_TEST_new.pod" ], @@ -12189,6 +14191,9 @@ our %unified_info = ( "doc/html/man3/OSSL_STORE_open.html" => [ "doc/man3/OSSL_STORE_open.pod" ], + "doc/html/man3/OSSL_sleep.html" => [ + "doc/man3/OSSL_sleep.pod" + ], "doc/html/man3/OSSL_trace_enabled.html" => [ "doc/man3/OSSL_trace_enabled.pod" ], @@ -12204,6 +14209,9 @@ our %unified_info = ( "doc/html/man3/OpenSSL_version.html" => [ "doc/man3/OpenSSL_version.pod" ], + "doc/html/man3/PBMAC1_get1_pbkdf2_param.html" => [ + "doc/man3/PBMAC1_get1_pbkdf2_param.pod" + ], "doc/html/man3/PEM_X509_INFO_read_bio_ex.html" => [ "doc/man3/PEM_X509_INFO_read_bio_ex.pod" ], @@ -12240,6 +14248,9 @@ our %unified_info = ( "doc/html/man3/PKCS12_SAFEBAG_get1_cert.html" => [ "doc/man3/PKCS12_SAFEBAG_get1_cert.pod" ], + "doc/html/man3/PKCS12_SAFEBAG_set0_attrs.html" => [ + "doc/man3/PKCS12_SAFEBAG_set0_attrs.pod" + ], "doc/html/man3/PKCS12_add1_attr_by_NID.html" => [ "doc/man3/PKCS12_add1_attr_by_NID.pod" ], @@ -12513,6 +14524,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set0_CA_list.html" => [ "doc/man3/SSL_CTX_set0_CA_list.pod" ], + "doc/html/man3/SSL_CTX_set1_cert_comp_preference.html" => [ + "doc/man3/SSL_CTX_set1_cert_comp_preference.pod" + ], "doc/html/man3/SSL_CTX_set1_curves.html" => [ "doc/man3/SSL_CTX_set1_curves.pod" ], @@ -12552,6 +14566,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_default_passwd_cb.html" => [ "doc/man3/SSL_CTX_set_default_passwd_cb.pod" ], + "doc/html/man3/SSL_CTX_set_domain_flags.html" => [ + "doc/man3/SSL_CTX_set_domain_flags.pod" + ], "doc/html/man3/SSL_CTX_set_generate_session_id.html" => [ "doc/man3/SSL_CTX_set_generate_session_id.pod" ], @@ -12573,6 +14590,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_msg_callback.html" => [ "doc/man3/SSL_CTX_set_msg_callback.pod" ], + "doc/html/man3/SSL_CTX_set_new_pending_conn_cb.html" => [ + "doc/man3/SSL_CTX_set_new_pending_conn_cb.pod" + ], "doc/html/man3/SSL_CTX_set_num_tickets.html" => [ "doc/man3/SSL_CTX_set_num_tickets.pod" ], @@ -12687,6 +14707,9 @@ our %unified_info = ( "doc/html/man3/SSL_accept.html" => [ "doc/man3/SSL_accept.pod" ], + "doc/html/man3/SSL_accept_stream.html" => [ + "doc/man3/SSL_accept_stream.pod" + ], "doc/html/man3/SSL_alert_type_string.html" => [ "doc/man3/SSL_alert_type_string.pod" ], @@ -12714,9 +14737,21 @@ our %unified_info = ( "doc/html/man3/SSL_free.html" => [ "doc/man3/SSL_free.pod" ], + "doc/html/man3/SSL_get0_connection.html" => [ + "doc/man3/SSL_get0_connection.pod" + ], + "doc/html/man3/SSL_get0_group_name.html" => [ + "doc/man3/SSL_get0_group_name.pod" + ], + "doc/html/man3/SSL_get0_peer_rpk.html" => [ + "doc/man3/SSL_get0_peer_rpk.pod" + ], "doc/html/man3/SSL_get0_peer_scts.html" => [ "doc/man3/SSL_get0_peer_scts.pod" ], + "doc/html/man3/SSL_get1_builtin_sigalgs.html" => [ + "doc/man3/SSL_get1_builtin_sigalgs.pod" + ], "doc/html/man3/SSL_get_SSL_CTX.html" => [ "doc/man3/SSL_get_SSL_CTX.pod" ], @@ -12732,6 +14767,9 @@ our %unified_info = ( "doc/html/man3/SSL_get_client_random.html" => [ "doc/man3/SSL_get_client_random.pod" ], + "doc/html/man3/SSL_get_conn_close_info.html" => [ + "doc/man3/SSL_get_conn_close_info.pod" + ], "doc/html/man3/SSL_get_current_cipher.html" => [ "doc/man3/SSL_get_current_cipher.pod" ], @@ -12741,12 +14779,18 @@ our %unified_info = ( "doc/html/man3/SSL_get_error.html" => [ "doc/man3/SSL_get_error.pod" ], + "doc/html/man3/SSL_get_event_timeout.html" => [ + "doc/man3/SSL_get_event_timeout.pod" + ], "doc/html/man3/SSL_get_extms_support.html" => [ "doc/man3/SSL_get_extms_support.pod" ], "doc/html/man3/SSL_get_fd.html" => [ "doc/man3/SSL_get_fd.pod" ], + "doc/html/man3/SSL_get_handshake_rtt.html" => [ + "doc/man3/SSL_get_handshake_rtt.pod" + ], "doc/html/man3/SSL_get_peer_cert_chain.html" => [ "doc/man3/SSL_get_peer_cert_chain.pod" ], @@ -12765,12 +14809,24 @@ our %unified_info = ( "doc/html/man3/SSL_get_rbio.html" => [ "doc/man3/SSL_get_rbio.pod" ], + "doc/html/man3/SSL_get_rpoll_descriptor.html" => [ + "doc/man3/SSL_get_rpoll_descriptor.pod" + ], "doc/html/man3/SSL_get_session.html" => [ "doc/man3/SSL_get_session.pod" ], "doc/html/man3/SSL_get_shared_sigalgs.html" => [ "doc/man3/SSL_get_shared_sigalgs.pod" ], + "doc/html/man3/SSL_get_stream_id.html" => [ + "doc/man3/SSL_get_stream_id.pod" + ], + "doc/html/man3/SSL_get_stream_read_state.html" => [ + "doc/man3/SSL_get_stream_read_state.pod" + ], + "doc/html/man3/SSL_get_value_uint.html" => [ + "doc/man3/SSL_get_value_uint.pod" + ], "doc/html/man3/SSL_get_verify_result.html" => [ "doc/man3/SSL_get_verify_result.pod" ], @@ -12780,9 +14836,15 @@ our %unified_info = ( "doc/html/man3/SSL_group_to_name.html" => [ "doc/man3/SSL_group_to_name.pod" ], + "doc/html/man3/SSL_handle_events.html" => [ + "doc/man3/SSL_handle_events.pod" + ], "doc/html/man3/SSL_in_init.html" => [ "doc/man3/SSL_in_init.pod" ], + "doc/html/man3/SSL_inject_net_dgram.html" => [ + "doc/man3/SSL_inject_net_dgram.pod" + ], "doc/html/man3/SSL_key_update.html" => [ "doc/man3/SSL_key_update.pod" ], @@ -12795,9 +14857,21 @@ our %unified_info = ( "doc/html/man3/SSL_new.html" => [ "doc/man3/SSL_new.pod" ], + "doc/html/man3/SSL_new_domain.html" => [ + "doc/man3/SSL_new_domain.pod" + ], + "doc/html/man3/SSL_new_listener.html" => [ + "doc/man3/SSL_new_listener.pod" + ], + "doc/html/man3/SSL_new_stream.html" => [ + "doc/man3/SSL_new_stream.pod" + ], "doc/html/man3/SSL_pending.html" => [ "doc/man3/SSL_pending.pod" ], + "doc/html/man3/SSL_poll.html" => [ + "doc/man3/SSL_poll.pod" + ], "doc/html/man3/SSL_read.html" => [ "doc/man3/SSL_read.pod" ], @@ -12813,24 +14887,45 @@ our %unified_info = ( "doc/html/man3/SSL_set1_host.html" => [ "doc/man3/SSL_set1_host.pod" ], + "doc/html/man3/SSL_set1_initial_peer_addr.html" => [ + "doc/man3/SSL_set1_initial_peer_addr.pod" + ], + "doc/html/man3/SSL_set1_server_cert_type.html" => [ + "doc/man3/SSL_set1_server_cert_type.pod" + ], "doc/html/man3/SSL_set_async_callback.html" => [ "doc/man3/SSL_set_async_callback.pod" ], "doc/html/man3/SSL_set_bio.html" => [ "doc/man3/SSL_set_bio.pod" ], + "doc/html/man3/SSL_set_blocking_mode.html" => [ + "doc/man3/SSL_set_blocking_mode.pod" + ], "doc/html/man3/SSL_set_connect_state.html" => [ "doc/man3/SSL_set_connect_state.pod" ], + "doc/html/man3/SSL_set_default_stream_mode.html" => [ + "doc/man3/SSL_set_default_stream_mode.pod" + ], "doc/html/man3/SSL_set_fd.html" => [ "doc/man3/SSL_set_fd.pod" ], + "doc/html/man3/SSL_set_incoming_stream_policy.html" => [ + "doc/man3/SSL_set_incoming_stream_policy.pod" + ], + "doc/html/man3/SSL_set_quic_tls_cbs.html" => [ + "doc/man3/SSL_set_quic_tls_cbs.pod" + ], "doc/html/man3/SSL_set_retry_verify.html" => [ "doc/man3/SSL_set_retry_verify.pod" ], "doc/html/man3/SSL_set_session.html" => [ "doc/man3/SSL_set_session.pod" ], + "doc/html/man3/SSL_set_session_secret_cb.html" => [ + "doc/man3/SSL_set_session_secret_cb.pod" + ], "doc/html/man3/SSL_set_shutdown.html" => [ "doc/man3/SSL_set_shutdown.pod" ], @@ -12843,6 +14938,12 @@ our %unified_info = ( "doc/html/man3/SSL_state_string.html" => [ "doc/man3/SSL_state_string.pod" ], + "doc/html/man3/SSL_stream_conclude.html" => [ + "doc/man3/SSL_stream_conclude.pod" + ], + "doc/html/man3/SSL_stream_reset.html" => [ + "doc/man3/SSL_stream_reset.pod" + ], "doc/html/man3/SSL_want.html" => [ "doc/man3/SSL_want.pod" ], @@ -12852,8 +14953,8 @@ our %unified_info = ( "doc/html/man3/TS_RESP_CTX_new.html" => [ "doc/man3/TS_RESP_CTX_new.pod" ], - "doc/html/man3/TS_VERIFY_CTX_set_certs.html" => [ - "doc/man3/TS_VERIFY_CTX_set_certs.pod" + "doc/html/man3/TS_VERIFY_CTX.html" => [ + "doc/man3/TS_VERIFY_CTX.pod" ], "doc/html/man3/UI_STRING.html" => [ "doc/man3/UI_STRING.pod" @@ -12873,6 +14974,21 @@ our %unified_info = ( "doc/html/man3/X509V3_set_ctx.html" => [ "doc/man3/X509V3_set_ctx.pod" ], + "doc/html/man3/X509_ACERT_add1_attr.html" => [ + "doc/man3/X509_ACERT_add1_attr.pod" + ], + "doc/html/man3/X509_ACERT_add_attr_nconf.html" => [ + "doc/man3/X509_ACERT_add_attr_nconf.pod" + ], + "doc/html/man3/X509_ACERT_get0_holder_baseCertId.html" => [ + "doc/man3/X509_ACERT_get0_holder_baseCertId.pod" + ], + "doc/html/man3/X509_ACERT_get_attr.html" => [ + "doc/man3/X509_ACERT_get_attr.pod" + ], + "doc/html/man3/X509_ACERT_print_ex.html" => [ + "doc/man3/X509_ACERT_print_ex.pod" + ], "doc/html/man3/X509_ALGOR_dup.html" => [ "doc/man3/X509_ALGOR_dup.pod" ], @@ -12921,6 +15037,9 @@ our %unified_info = ( "doc/html/man3/X509_SIG_get0.html" => [ "doc/man3/X509_SIG_get0.pod" ], + "doc/html/man3/X509_STORE_CTX_get_by_subject.html" => [ + "doc/man3/X509_STORE_CTX_get_by_subject.pod" + ], "doc/html/man3/X509_STORE_CTX_get_error.html" => [ "doc/man3/X509_STORE_CTX_get_error.pod" ], @@ -12987,6 +15106,9 @@ our %unified_info = ( "doc/html/man3/X509_get0_uids.html" => [ "doc/man3/X509_get0_uids.pod" ], + "doc/html/man3/X509_get_default_cert_file.html" => [ + "doc/man3/X509_get_default_cert_file.pod" + ], "doc/html/man3/X509_get_extension_flags.html" => [ "doc/man3/X509_get_extension_flags.pod" ], @@ -13110,9 +15232,15 @@ our %unified_info = ( "doc/html/man7/EVP_CIPHER-SM4.html" => [ "doc/man7/EVP_CIPHER-SM4.pod" ], + "doc/html/man7/EVP_KDF-ARGON2.html" => [ + "doc/man7/EVP_KDF-ARGON2.pod" + ], "doc/html/man7/EVP_KDF-HKDF.html" => [ "doc/man7/EVP_KDF-HKDF.pod" ], + "doc/html/man7/EVP_KDF-HMAC-DRBG.html" => [ + "doc/man7/EVP_KDF-HMAC-DRBG.pod" + ], "doc/html/man7/EVP_KDF-KB.html" => [ "doc/man7/EVP_KDF-KB.pod" ], @@ -13128,6 +15256,9 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-PKCS12KDF.html" => [ "doc/man7/EVP_KDF-PKCS12KDF.pod" ], + "doc/html/man7/EVP_KDF-PVKKDF.html" => [ + "doc/man7/EVP_KDF-PVKKDF.pod" + ], "doc/html/man7/EVP_KDF-SCRYPT.html" => [ "doc/man7/EVP_KDF-SCRYPT.pod" ], @@ -13152,9 +15283,18 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-X963.html" => [ "doc/man7/EVP_KDF-X963.pod" ], + "doc/html/man7/EVP_KEM-EC.html" => [ + "doc/man7/EVP_KEM-EC.pod" + ], + "doc/html/man7/EVP_KEM-ML-KEM.html" => [ + "doc/man7/EVP_KEM-ML-KEM.pod" + ], "doc/html/man7/EVP_KEM-RSA.html" => [ "doc/man7/EVP_KEM-RSA.pod" ], + "doc/html/man7/EVP_KEM-X25519.html" => [ + "doc/man7/EVP_KEM-X25519.pod" + ], "doc/html/man7/EVP_KEYEXCH-DH.html" => [ "doc/man7/EVP_KEYEXCH-DH.pod" ], @@ -13188,6 +15328,9 @@ our %unified_info = ( "doc/html/man7/EVP_MD-BLAKE2.html" => [ "doc/man7/EVP_MD-BLAKE2.pod" ], + "doc/html/man7/EVP_MD-KECCAK.html" => [ + "doc/man7/EVP_MD-KECCAK.pod" + ], "doc/html/man7/EVP_MD-MD2.html" => [ "doc/man7/EVP_MD-MD2.pod" ], @@ -13245,15 +15388,27 @@ our %unified_info = ( "doc/html/man7/EVP_PKEY-HMAC.html" => [ "doc/man7/EVP_PKEY-HMAC.pod" ], + "doc/html/man7/EVP_PKEY-ML-DSA.html" => [ + "doc/man7/EVP_PKEY-ML-DSA.pod" + ], + "doc/html/man7/EVP_PKEY-ML-KEM.html" => [ + "doc/man7/EVP_PKEY-ML-KEM.pod" + ], "doc/html/man7/EVP_PKEY-RSA.html" => [ "doc/man7/EVP_PKEY-RSA.pod" ], + "doc/html/man7/EVP_PKEY-SLH-DSA.html" => [ + "doc/man7/EVP_PKEY-SLH-DSA.pod" + ], "doc/html/man7/EVP_PKEY-SM2.html" => [ "doc/man7/EVP_PKEY-SM2.pod" ], "doc/html/man7/EVP_PKEY-X25519.html" => [ "doc/man7/EVP_PKEY-X25519.pod" ], + "doc/html/man7/EVP_RAND-CRNG-TEST.html" => [ + "doc/man7/EVP_RAND-CRNG-TEST.pod" + ], "doc/html/man7/EVP_RAND-CTR-DRBG.html" => [ "doc/man7/EVP_RAND-CTR-DRBG.pod" ], @@ -13263,6 +15418,9 @@ our %unified_info = ( "doc/html/man7/EVP_RAND-HMAC-DRBG.html" => [ "doc/man7/EVP_RAND-HMAC-DRBG.pod" ], + "doc/html/man7/EVP_RAND-JITTER.html" => [ + "doc/man7/EVP_RAND-JITTER.pod" + ], "doc/html/man7/EVP_RAND-SEED-SRC.html" => [ "doc/man7/EVP_RAND-SEED-SRC.pod" ], @@ -13284,9 +15442,15 @@ our %unified_info = ( "doc/html/man7/EVP_SIGNATURE-HMAC.html" => [ "doc/man7/EVP_SIGNATURE-HMAC.pod" ], + "doc/html/man7/EVP_SIGNATURE-ML-DSA.html" => [ + "doc/man7/EVP_SIGNATURE-ML-DSA.pod" + ], "doc/html/man7/EVP_SIGNATURE-RSA.html" => [ "doc/man7/EVP_SIGNATURE-RSA.pod" ], + "doc/html/man7/EVP_SIGNATURE-SLH-DSA.html" => [ + "doc/man7/EVP_SIGNATURE-SLH-DSA.pod" + ], "doc/html/man7/OSSL_PROVIDER-FIPS.html" => [ "doc/man7/OSSL_PROVIDER-FIPS.pod" ], @@ -13302,6 +15466,9 @@ our %unified_info = ( "doc/html/man7/OSSL_PROVIDER-null.html" => [ "doc/man7/OSSL_PROVIDER-null.pod" ], + "doc/html/man7/OSSL_STORE-winstore.html" => [ + "doc/man7/OSSL_STORE-winstore.pod" + ], "doc/html/man7/RAND.html" => [ "doc/man7/RAND.pod" ], @@ -13314,9 +15481,6 @@ our %unified_info = ( "doc/html/man7/bio.html" => [ "doc/man7/bio.pod" ], - "doc/html/man7/crypto.html" => [ - "doc/man7/crypto.pod" - ], "doc/html/man7/ct.html" => [ "doc/man7/ct.pod" ], @@ -13347,9 +15511,6 @@ our %unified_info = ( "doc/html/man7/life_cycle-rand.html" => [ "doc/man7/life_cycle-rand.pod" ], - "doc/html/man7/migration_guide.html" => [ - "doc/man7/migration_guide.pod" - ], "doc/html/man7/openssl-core.h.html" => [ "doc/man7/openssl-core.h.pod" ], @@ -13365,12 +15526,66 @@ our %unified_info = ( "doc/html/man7/openssl-glossary.html" => [ "doc/man7/openssl-glossary.pod" ], + "doc/html/man7/openssl-qlog.html" => [ + "doc/man7/openssl-qlog.pod" + ], + "doc/html/man7/openssl-quic-concurrency.html" => [ + "doc/man7/openssl-quic-concurrency.pod" + ], + "doc/html/man7/openssl-quic.html" => [ + "doc/man7/openssl-quic.pod" + ], "doc/html/man7/openssl-threads.html" => [ "doc/man7/openssl-threads.pod" ], "doc/html/man7/openssl_user_macros.html" => [ "doc/man7/openssl_user_macros.pod" ], + "doc/html/man7/ossl-guide-introduction.html" => [ + "doc/man7/ossl-guide-introduction.pod" + ], + "doc/html/man7/ossl-guide-libcrypto-introduction.html" => [ + "doc/man7/ossl-guide-libcrypto-introduction.pod" + ], + "doc/html/man7/ossl-guide-libraries-introduction.html" => [ + "doc/man7/ossl-guide-libraries-introduction.pod" + ], + "doc/html/man7/ossl-guide-libssl-introduction.html" => [ + "doc/man7/ossl-guide-libssl-introduction.pod" + ], + "doc/html/man7/ossl-guide-migration.html" => [ + "doc/man7/ossl-guide-migration.pod" + ], + "doc/html/man7/ossl-guide-quic-client-block.html" => [ + "doc/man7/ossl-guide-quic-client-block.pod" + ], + "doc/html/man7/ossl-guide-quic-client-non-block.html" => [ + "doc/man7/ossl-guide-quic-client-non-block.pod" + ], + "doc/html/man7/ossl-guide-quic-introduction.html" => [ + "doc/man7/ossl-guide-quic-introduction.pod" + ], + "doc/html/man7/ossl-guide-quic-multi-stream.html" => [ + "doc/man7/ossl-guide-quic-multi-stream.pod" + ], + "doc/html/man7/ossl-guide-quic-server-block.html" => [ + "doc/man7/ossl-guide-quic-server-block.pod" + ], + "doc/html/man7/ossl-guide-quic-server-non-block.html" => [ + "doc/man7/ossl-guide-quic-server-non-block.pod" + ], + "doc/html/man7/ossl-guide-tls-client-block.html" => [ + "doc/man7/ossl-guide-tls-client-block.pod" + ], + "doc/html/man7/ossl-guide-tls-client-non-block.html" => [ + "doc/man7/ossl-guide-tls-client-non-block.pod" + ], + "doc/html/man7/ossl-guide-tls-introduction.html" => [ + "doc/man7/ossl-guide-tls-introduction.pod" + ], + "doc/html/man7/ossl-guide-tls-server-block.html" => [ + "doc/man7/ossl-guide-tls-server-block.pod" + ], "doc/html/man7/ossl_store-file.html" => [ "doc/man7/ossl_store-file.pod" ], @@ -13425,6 +15640,9 @@ our %unified_info = ( "doc/html/man7/provider-signature.html" => [ "doc/man7/provider-signature.pod" ], + "doc/html/man7/provider-skeymgmt.html" => [ + "doc/man7/provider-skeymgmt.pod" + ], "doc/html/man7/provider-storemgmt.html" => [ "doc/man7/provider-storemgmt.pod" ], @@ -13434,9 +15652,6 @@ our %unified_info = ( "doc/html/man7/proxy-certificates.html" => [ "doc/man7/proxy-certificates.pod" ], - "doc/html/man7/ssl.html" => [ - "doc/man7/ssl.pod" - ], "doc/html/man7/x509.html" => [ "doc/man7/x509.pod" ], @@ -13584,6 +15799,9 @@ our %unified_info = ( "doc/man/man1/openssl-sess_id.1" => [ "doc/man1/openssl-sess_id.pod" ], + "doc/man/man1/openssl-skeyutl.1" => [ + "doc/man1/openssl-skeyutl.pod" + ], "doc/man/man1/openssl-smime.1" => [ "doc/man1/openssl-smime.pod" ], @@ -13725,6 +15943,9 @@ our %unified_info = ( "doc/man/man3/BIO_get_ex_new_index.3" => [ "doc/man3/BIO_get_ex_new_index.pod" ], + "doc/man/man3/BIO_get_rpoll_descriptor.3" => [ + "doc/man3/BIO_get_rpoll_descriptor.pod" + ], "doc/man/man3/BIO_meth_new.3" => [ "doc/man3/BIO_meth_new.pod" ], @@ -13761,6 +15982,9 @@ our %unified_info = ( "doc/man/man3/BIO_s_datagram.3" => [ "doc/man3/BIO_s_datagram.pod" ], + "doc/man/man3/BIO_s_dgram_pair.3" => [ + "doc/man3/BIO_s_dgram_pair.pod" + ], "doc/man/man3/BIO_s_fd.3" => [ "doc/man3/BIO_s_fd.pod" ], @@ -13776,6 +16000,9 @@ our %unified_info = ( "doc/man/man3/BIO_s_socket.3" => [ "doc/man3/BIO_s_socket.pod" ], + "doc/man/man3/BIO_sendmmsg.3" => [ + "doc/man3/BIO_sendmmsg.pod" + ], "doc/man/man3/BIO_set_callback.3" => [ "doc/man3/BIO_set_callback.pod" ], @@ -13848,6 +16075,9 @@ our %unified_info = ( "doc/man/man3/BUF_MEM_new.3" => [ "doc/man3/BUF_MEM_new.pod" ], + "doc/man/man3/CMAC_CTX.3" => [ + "doc/man3/CMAC_CTX.pod" + ], "doc/man/man3/CMS_EncryptedData_decrypt.3" => [ "doc/man3/CMS_EncryptedData_decrypt.pod" ], @@ -13914,6 +16144,9 @@ our %unified_info = ( "doc/man/man3/CMS_verify_receipt.3" => [ "doc/man3/CMS_verify_receipt.pod" ], + "doc/man/man3/COMP_CTX_new.3" => [ + "doc/man3/COMP_CTX_new.pod" + ], "doc/man/man3/CONF_modules_free.3" => [ "doc/man3/CONF_modules_free.pod" ], @@ -14013,6 +16246,12 @@ our %unified_info = ( "doc/man/man3/DTLS_set_timer_cb.3" => [ "doc/man3/DTLS_set_timer_cb.pod" ], + "doc/man/man3/DTLSv1_get_timeout.3" => [ + "doc/man3/DTLSv1_get_timeout.pod" + ], + "doc/man/man3/DTLSv1_handle_timeout.3" => [ + "doc/man3/DTLSv1_handle_timeout.pod" + ], "doc/man/man3/DTLSv1_listen.3" => [ "doc/man3/DTLSv1_listen.pod" ], @@ -14151,6 +16390,9 @@ our %unified_info = ( "doc/man/man3/EVP_PKEY_CTX_get0_pkey.3" => [ "doc/man3/EVP_PKEY_CTX_get0_pkey.pod" ], + "doc/man/man3/EVP_PKEY_CTX_get_algor.3" => [ + "doc/man3/EVP_PKEY_CTX_get_algor.pod" + ], "doc/man/man3/EVP_PKEY_CTX_new.3" => [ "doc/man3/EVP_PKEY_CTX_new.pod" ], @@ -14268,6 +16510,12 @@ our %unified_info = ( "doc/man/man3/EVP_SIGNATURE.3" => [ "doc/man3/EVP_SIGNATURE.pod" ], + "doc/man/man3/EVP_SKEY.3" => [ + "doc/man3/EVP_SKEY.pod" + ], + "doc/man/man3/EVP_SKEYMGMT.3" => [ + "doc/man3/EVP_SKEYMGMT.pod" + ], "doc/man/man3/EVP_SealInit.3" => [ "doc/man3/EVP_SealInit.pod" ], @@ -14355,6 +16603,9 @@ our %unified_info = ( "doc/man/man3/EVP_whirlpool.3" => [ "doc/man3/EVP_whirlpool.pod" ], + "doc/man/man3/GENERAL_NAME.3" => [ + "doc/man3/GENERAL_NAME.pod" + ], "doc/man/man3/HMAC.3" => [ "doc/man3/HMAC.pod" ], @@ -14427,9 +16678,15 @@ our %unified_info = ( "doc/man/man3/OPENSSL_load_builtin_modules.3" => [ "doc/man3/OPENSSL_load_builtin_modules.pod" ], + "doc/man/man3/OPENSSL_load_u16_le.3" => [ + "doc/man3/OPENSSL_load_u16_le.pod" + ], "doc/man/man3/OPENSSL_malloc.3" => [ "doc/man3/OPENSSL_malloc.pod" ], + "doc/man/man3/OPENSSL_riscvcap.3" => [ + "doc/man3/OPENSSL_riscvcap.pod" + ], "doc/man/man3/OPENSSL_s390xcap.3" => [ "doc/man3/OPENSSL_s390xcap.pod" ], @@ -14445,12 +16702,18 @@ our %unified_info = ( "doc/man/man3/OSSL_CALLBACK.3" => [ "doc/man3/OSSL_CALLBACK.pod" ], + "doc/man/man3/OSSL_CMP_ATAV_set0.3" => [ + "doc/man3/OSSL_CMP_ATAV_set0.pod" + ], "doc/man/man3/OSSL_CMP_CTX_new.3" => [ "doc/man3/OSSL_CMP_CTX_new.pod" ], "doc/man/man3/OSSL_CMP_HDR_get0_transactionID.3" => [ "doc/man3/OSSL_CMP_HDR_get0_transactionID.pod" ], + "doc/man/man3/OSSL_CMP_ITAV_new_caCerts.3" => [ + "doc/man3/OSSL_CMP_ITAV_new_caCerts.pod" + ], "doc/man/man3/OSSL_CMP_ITAV_set0.3" => [ "doc/man3/OSSL_CMP_ITAV_set0.pod" ], @@ -14520,9 +16783,18 @@ our %unified_info = ( "doc/man/man3/OSSL_ENCODER_to_bio.3" => [ "doc/man3/OSSL_ENCODER_to_bio.pod" ], + "doc/man/man3/OSSL_ERR_STATE_save.3" => [ + "doc/man3/OSSL_ERR_STATE_save.pod" + ], "doc/man/man3/OSSL_ESS_check_signing_certs.3" => [ "doc/man3/OSSL_ESS_check_signing_certs.pod" ], + "doc/man/man3/OSSL_GENERAL_NAMES_print.3" => [ + "doc/man3/OSSL_GENERAL_NAMES_print.pod" + ], + "doc/man/man3/OSSL_HPKE_CTX_new.3" => [ + "doc/man3/OSSL_HPKE_CTX_new.pod" + ], "doc/man/man3/OSSL_HTTP_REQ_CTX.3" => [ "doc/man3/OSSL_HTTP_REQ_CTX.pod" ], @@ -14532,12 +16804,24 @@ our %unified_info = ( "doc/man/man3/OSSL_HTTP_transfer.3" => [ "doc/man3/OSSL_HTTP_transfer.pod" ], + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX.3" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX.pod" + ], + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX_print.3" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX_print.pod" + ], + "doc/man/man3/OSSL_INDICATOR_set_callback.3" => [ + "doc/man3/OSSL_INDICATOR_set_callback.pod" + ], "doc/man/man3/OSSL_ITEM.3" => [ "doc/man3/OSSL_ITEM.pod" ], "doc/man/man3/OSSL_LIB_CTX.3" => [ "doc/man3/OSSL_LIB_CTX.pod" ], + "doc/man/man3/OSSL_LIB_CTX_set_conf_diagnostics.3" => [ + "doc/man3/OSSL_LIB_CTX_set_conf_diagnostics.pod" + ], "doc/man/man3/OSSL_PARAM.3" => [ "doc/man3/OSSL_PARAM.pod" ], @@ -14553,9 +16837,15 @@ our %unified_info = ( "doc/man/man3/OSSL_PARAM_int.3" => [ "doc/man3/OSSL_PARAM_int.pod" ], + "doc/man/man3/OSSL_PARAM_print_to_bio.3" => [ + "doc/man3/OSSL_PARAM_print_to_bio.pod" + ], "doc/man/man3/OSSL_PROVIDER.3" => [ "doc/man3/OSSL_PROVIDER.pod" ], + "doc/man/man3/OSSL_QUIC_client_method.3" => [ + "doc/man3/OSSL_QUIC_client_method.pod" + ], "doc/man/man3/OSSL_SELF_TEST_new.3" => [ "doc/man3/OSSL_SELF_TEST_new.pod" ], @@ -14580,6 +16870,9 @@ our %unified_info = ( "doc/man/man3/OSSL_STORE_open.3" => [ "doc/man3/OSSL_STORE_open.pod" ], + "doc/man/man3/OSSL_sleep.3" => [ + "doc/man3/OSSL_sleep.pod" + ], "doc/man/man3/OSSL_trace_enabled.3" => [ "doc/man3/OSSL_trace_enabled.pod" ], @@ -14595,6 +16888,9 @@ our %unified_info = ( "doc/man/man3/OpenSSL_version.3" => [ "doc/man3/OpenSSL_version.pod" ], + "doc/man/man3/PBMAC1_get1_pbkdf2_param.3" => [ + "doc/man3/PBMAC1_get1_pbkdf2_param.pod" + ], "doc/man/man3/PEM_X509_INFO_read_bio_ex.3" => [ "doc/man3/PEM_X509_INFO_read_bio_ex.pod" ], @@ -14631,6 +16927,9 @@ our %unified_info = ( "doc/man/man3/PKCS12_SAFEBAG_get1_cert.3" => [ "doc/man3/PKCS12_SAFEBAG_get1_cert.pod" ], + "doc/man/man3/PKCS12_SAFEBAG_set0_attrs.3" => [ + "doc/man3/PKCS12_SAFEBAG_set0_attrs.pod" + ], "doc/man/man3/PKCS12_add1_attr_by_NID.3" => [ "doc/man3/PKCS12_add1_attr_by_NID.pod" ], @@ -14904,6 +17203,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set0_CA_list.3" => [ "doc/man3/SSL_CTX_set0_CA_list.pod" ], + "doc/man/man3/SSL_CTX_set1_cert_comp_preference.3" => [ + "doc/man3/SSL_CTX_set1_cert_comp_preference.pod" + ], "doc/man/man3/SSL_CTX_set1_curves.3" => [ "doc/man3/SSL_CTX_set1_curves.pod" ], @@ -14943,6 +17245,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_default_passwd_cb.3" => [ "doc/man3/SSL_CTX_set_default_passwd_cb.pod" ], + "doc/man/man3/SSL_CTX_set_domain_flags.3" => [ + "doc/man3/SSL_CTX_set_domain_flags.pod" + ], "doc/man/man3/SSL_CTX_set_generate_session_id.3" => [ "doc/man3/SSL_CTX_set_generate_session_id.pod" ], @@ -14964,6 +17269,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_msg_callback.3" => [ "doc/man3/SSL_CTX_set_msg_callback.pod" ], + "doc/man/man3/SSL_CTX_set_new_pending_conn_cb.3" => [ + "doc/man3/SSL_CTX_set_new_pending_conn_cb.pod" + ], "doc/man/man3/SSL_CTX_set_num_tickets.3" => [ "doc/man3/SSL_CTX_set_num_tickets.pod" ], @@ -15078,6 +17386,9 @@ our %unified_info = ( "doc/man/man3/SSL_accept.3" => [ "doc/man3/SSL_accept.pod" ], + "doc/man/man3/SSL_accept_stream.3" => [ + "doc/man3/SSL_accept_stream.pod" + ], "doc/man/man3/SSL_alert_type_string.3" => [ "doc/man3/SSL_alert_type_string.pod" ], @@ -15105,9 +17416,21 @@ our %unified_info = ( "doc/man/man3/SSL_free.3" => [ "doc/man3/SSL_free.pod" ], + "doc/man/man3/SSL_get0_connection.3" => [ + "doc/man3/SSL_get0_connection.pod" + ], + "doc/man/man3/SSL_get0_group_name.3" => [ + "doc/man3/SSL_get0_group_name.pod" + ], + "doc/man/man3/SSL_get0_peer_rpk.3" => [ + "doc/man3/SSL_get0_peer_rpk.pod" + ], "doc/man/man3/SSL_get0_peer_scts.3" => [ "doc/man3/SSL_get0_peer_scts.pod" ], + "doc/man/man3/SSL_get1_builtin_sigalgs.3" => [ + "doc/man3/SSL_get1_builtin_sigalgs.pod" + ], "doc/man/man3/SSL_get_SSL_CTX.3" => [ "doc/man3/SSL_get_SSL_CTX.pod" ], @@ -15123,6 +17446,9 @@ our %unified_info = ( "doc/man/man3/SSL_get_client_random.3" => [ "doc/man3/SSL_get_client_random.pod" ], + "doc/man/man3/SSL_get_conn_close_info.3" => [ + "doc/man3/SSL_get_conn_close_info.pod" + ], "doc/man/man3/SSL_get_current_cipher.3" => [ "doc/man3/SSL_get_current_cipher.pod" ], @@ -15132,12 +17458,18 @@ our %unified_info = ( "doc/man/man3/SSL_get_error.3" => [ "doc/man3/SSL_get_error.pod" ], + "doc/man/man3/SSL_get_event_timeout.3" => [ + "doc/man3/SSL_get_event_timeout.pod" + ], "doc/man/man3/SSL_get_extms_support.3" => [ "doc/man3/SSL_get_extms_support.pod" ], "doc/man/man3/SSL_get_fd.3" => [ "doc/man3/SSL_get_fd.pod" ], + "doc/man/man3/SSL_get_handshake_rtt.3" => [ + "doc/man3/SSL_get_handshake_rtt.pod" + ], "doc/man/man3/SSL_get_peer_cert_chain.3" => [ "doc/man3/SSL_get_peer_cert_chain.pod" ], @@ -15156,12 +17488,24 @@ our %unified_info = ( "doc/man/man3/SSL_get_rbio.3" => [ "doc/man3/SSL_get_rbio.pod" ], + "doc/man/man3/SSL_get_rpoll_descriptor.3" => [ + "doc/man3/SSL_get_rpoll_descriptor.pod" + ], "doc/man/man3/SSL_get_session.3" => [ "doc/man3/SSL_get_session.pod" ], "doc/man/man3/SSL_get_shared_sigalgs.3" => [ "doc/man3/SSL_get_shared_sigalgs.pod" ], + "doc/man/man3/SSL_get_stream_id.3" => [ + "doc/man3/SSL_get_stream_id.pod" + ], + "doc/man/man3/SSL_get_stream_read_state.3" => [ + "doc/man3/SSL_get_stream_read_state.pod" + ], + "doc/man/man3/SSL_get_value_uint.3" => [ + "doc/man3/SSL_get_value_uint.pod" + ], "doc/man/man3/SSL_get_verify_result.3" => [ "doc/man3/SSL_get_verify_result.pod" ], @@ -15171,9 +17515,15 @@ our %unified_info = ( "doc/man/man3/SSL_group_to_name.3" => [ "doc/man3/SSL_group_to_name.pod" ], + "doc/man/man3/SSL_handle_events.3" => [ + "doc/man3/SSL_handle_events.pod" + ], "doc/man/man3/SSL_in_init.3" => [ "doc/man3/SSL_in_init.pod" ], + "doc/man/man3/SSL_inject_net_dgram.3" => [ + "doc/man3/SSL_inject_net_dgram.pod" + ], "doc/man/man3/SSL_key_update.3" => [ "doc/man3/SSL_key_update.pod" ], @@ -15186,9 +17536,21 @@ our %unified_info = ( "doc/man/man3/SSL_new.3" => [ "doc/man3/SSL_new.pod" ], + "doc/man/man3/SSL_new_domain.3" => [ + "doc/man3/SSL_new_domain.pod" + ], + "doc/man/man3/SSL_new_listener.3" => [ + "doc/man3/SSL_new_listener.pod" + ], + "doc/man/man3/SSL_new_stream.3" => [ + "doc/man3/SSL_new_stream.pod" + ], "doc/man/man3/SSL_pending.3" => [ "doc/man3/SSL_pending.pod" ], + "doc/man/man3/SSL_poll.3" => [ + "doc/man3/SSL_poll.pod" + ], "doc/man/man3/SSL_read.3" => [ "doc/man3/SSL_read.pod" ], @@ -15204,24 +17566,45 @@ our %unified_info = ( "doc/man/man3/SSL_set1_host.3" => [ "doc/man3/SSL_set1_host.pod" ], + "doc/man/man3/SSL_set1_initial_peer_addr.3" => [ + "doc/man3/SSL_set1_initial_peer_addr.pod" + ], + "doc/man/man3/SSL_set1_server_cert_type.3" => [ + "doc/man3/SSL_set1_server_cert_type.pod" + ], "doc/man/man3/SSL_set_async_callback.3" => [ "doc/man3/SSL_set_async_callback.pod" ], "doc/man/man3/SSL_set_bio.3" => [ "doc/man3/SSL_set_bio.pod" ], + "doc/man/man3/SSL_set_blocking_mode.3" => [ + "doc/man3/SSL_set_blocking_mode.pod" + ], "doc/man/man3/SSL_set_connect_state.3" => [ "doc/man3/SSL_set_connect_state.pod" ], + "doc/man/man3/SSL_set_default_stream_mode.3" => [ + "doc/man3/SSL_set_default_stream_mode.pod" + ], "doc/man/man3/SSL_set_fd.3" => [ "doc/man3/SSL_set_fd.pod" ], + "doc/man/man3/SSL_set_incoming_stream_policy.3" => [ + "doc/man3/SSL_set_incoming_stream_policy.pod" + ], + "doc/man/man3/SSL_set_quic_tls_cbs.3" => [ + "doc/man3/SSL_set_quic_tls_cbs.pod" + ], "doc/man/man3/SSL_set_retry_verify.3" => [ "doc/man3/SSL_set_retry_verify.pod" ], "doc/man/man3/SSL_set_session.3" => [ "doc/man3/SSL_set_session.pod" ], + "doc/man/man3/SSL_set_session_secret_cb.3" => [ + "doc/man3/SSL_set_session_secret_cb.pod" + ], "doc/man/man3/SSL_set_shutdown.3" => [ "doc/man3/SSL_set_shutdown.pod" ], @@ -15234,6 +17617,12 @@ our %unified_info = ( "doc/man/man3/SSL_state_string.3" => [ "doc/man3/SSL_state_string.pod" ], + "doc/man/man3/SSL_stream_conclude.3" => [ + "doc/man3/SSL_stream_conclude.pod" + ], + "doc/man/man3/SSL_stream_reset.3" => [ + "doc/man3/SSL_stream_reset.pod" + ], "doc/man/man3/SSL_want.3" => [ "doc/man3/SSL_want.pod" ], @@ -15243,8 +17632,8 @@ our %unified_info = ( "doc/man/man3/TS_RESP_CTX_new.3" => [ "doc/man3/TS_RESP_CTX_new.pod" ], - "doc/man/man3/TS_VERIFY_CTX_set_certs.3" => [ - "doc/man3/TS_VERIFY_CTX_set_certs.pod" + "doc/man/man3/TS_VERIFY_CTX.3" => [ + "doc/man3/TS_VERIFY_CTX.pod" ], "doc/man/man3/UI_STRING.3" => [ "doc/man3/UI_STRING.pod" @@ -15264,6 +17653,21 @@ our %unified_info = ( "doc/man/man3/X509V3_set_ctx.3" => [ "doc/man3/X509V3_set_ctx.pod" ], + "doc/man/man3/X509_ACERT_add1_attr.3" => [ + "doc/man3/X509_ACERT_add1_attr.pod" + ], + "doc/man/man3/X509_ACERT_add_attr_nconf.3" => [ + "doc/man3/X509_ACERT_add_attr_nconf.pod" + ], + "doc/man/man3/X509_ACERT_get0_holder_baseCertId.3" => [ + "doc/man3/X509_ACERT_get0_holder_baseCertId.pod" + ], + "doc/man/man3/X509_ACERT_get_attr.3" => [ + "doc/man3/X509_ACERT_get_attr.pod" + ], + "doc/man/man3/X509_ACERT_print_ex.3" => [ + "doc/man3/X509_ACERT_print_ex.pod" + ], "doc/man/man3/X509_ALGOR_dup.3" => [ "doc/man3/X509_ALGOR_dup.pod" ], @@ -15312,6 +17716,9 @@ our %unified_info = ( "doc/man/man3/X509_SIG_get0.3" => [ "doc/man3/X509_SIG_get0.pod" ], + "doc/man/man3/X509_STORE_CTX_get_by_subject.3" => [ + "doc/man3/X509_STORE_CTX_get_by_subject.pod" + ], "doc/man/man3/X509_STORE_CTX_get_error.3" => [ "doc/man3/X509_STORE_CTX_get_error.pod" ], @@ -15378,6 +17785,9 @@ our %unified_info = ( "doc/man/man3/X509_get0_uids.3" => [ "doc/man3/X509_get0_uids.pod" ], + "doc/man/man3/X509_get_default_cert_file.3" => [ + "doc/man3/X509_get_default_cert_file.pod" + ], "doc/man/man3/X509_get_extension_flags.3" => [ "doc/man3/X509_get_extension_flags.pod" ], @@ -15501,9 +17911,15 @@ our %unified_info = ( "doc/man/man7/EVP_CIPHER-SM4.7" => [ "doc/man7/EVP_CIPHER-SM4.pod" ], + "doc/man/man7/EVP_KDF-ARGON2.7" => [ + "doc/man7/EVP_KDF-ARGON2.pod" + ], "doc/man/man7/EVP_KDF-HKDF.7" => [ "doc/man7/EVP_KDF-HKDF.pod" ], + "doc/man/man7/EVP_KDF-HMAC-DRBG.7" => [ + "doc/man7/EVP_KDF-HMAC-DRBG.pod" + ], "doc/man/man7/EVP_KDF-KB.7" => [ "doc/man7/EVP_KDF-KB.pod" ], @@ -15519,6 +17935,9 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-PKCS12KDF.7" => [ "doc/man7/EVP_KDF-PKCS12KDF.pod" ], + "doc/man/man7/EVP_KDF-PVKKDF.7" => [ + "doc/man7/EVP_KDF-PVKKDF.pod" + ], "doc/man/man7/EVP_KDF-SCRYPT.7" => [ "doc/man7/EVP_KDF-SCRYPT.pod" ], @@ -15543,9 +17962,18 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-X963.7" => [ "doc/man7/EVP_KDF-X963.pod" ], + "doc/man/man7/EVP_KEM-EC.7" => [ + "doc/man7/EVP_KEM-EC.pod" + ], + "doc/man/man7/EVP_KEM-ML-KEM.7" => [ + "doc/man7/EVP_KEM-ML-KEM.pod" + ], "doc/man/man7/EVP_KEM-RSA.7" => [ "doc/man7/EVP_KEM-RSA.pod" ], + "doc/man/man7/EVP_KEM-X25519.7" => [ + "doc/man7/EVP_KEM-X25519.pod" + ], "doc/man/man7/EVP_KEYEXCH-DH.7" => [ "doc/man7/EVP_KEYEXCH-DH.pod" ], @@ -15579,6 +18007,9 @@ our %unified_info = ( "doc/man/man7/EVP_MD-BLAKE2.7" => [ "doc/man7/EVP_MD-BLAKE2.pod" ], + "doc/man/man7/EVP_MD-KECCAK.7" => [ + "doc/man7/EVP_MD-KECCAK.pod" + ], "doc/man/man7/EVP_MD-MD2.7" => [ "doc/man7/EVP_MD-MD2.pod" ], @@ -15636,15 +18067,27 @@ our %unified_info = ( "doc/man/man7/EVP_PKEY-HMAC.7" => [ "doc/man7/EVP_PKEY-HMAC.pod" ], + "doc/man/man7/EVP_PKEY-ML-DSA.7" => [ + "doc/man7/EVP_PKEY-ML-DSA.pod" + ], + "doc/man/man7/EVP_PKEY-ML-KEM.7" => [ + "doc/man7/EVP_PKEY-ML-KEM.pod" + ], "doc/man/man7/EVP_PKEY-RSA.7" => [ "doc/man7/EVP_PKEY-RSA.pod" ], + "doc/man/man7/EVP_PKEY-SLH-DSA.7" => [ + "doc/man7/EVP_PKEY-SLH-DSA.pod" + ], "doc/man/man7/EVP_PKEY-SM2.7" => [ "doc/man7/EVP_PKEY-SM2.pod" ], "doc/man/man7/EVP_PKEY-X25519.7" => [ "doc/man7/EVP_PKEY-X25519.pod" ], + "doc/man/man7/EVP_RAND-CRNG-TEST.7" => [ + "doc/man7/EVP_RAND-CRNG-TEST.pod" + ], "doc/man/man7/EVP_RAND-CTR-DRBG.7" => [ "doc/man7/EVP_RAND-CTR-DRBG.pod" ], @@ -15654,6 +18097,9 @@ our %unified_info = ( "doc/man/man7/EVP_RAND-HMAC-DRBG.7" => [ "doc/man7/EVP_RAND-HMAC-DRBG.pod" ], + "doc/man/man7/EVP_RAND-JITTER.7" => [ + "doc/man7/EVP_RAND-JITTER.pod" + ], "doc/man/man7/EVP_RAND-SEED-SRC.7" => [ "doc/man7/EVP_RAND-SEED-SRC.pod" ], @@ -15675,9 +18121,15 @@ our %unified_info = ( "doc/man/man7/EVP_SIGNATURE-HMAC.7" => [ "doc/man7/EVP_SIGNATURE-HMAC.pod" ], + "doc/man/man7/EVP_SIGNATURE-ML-DSA.7" => [ + "doc/man7/EVP_SIGNATURE-ML-DSA.pod" + ], "doc/man/man7/EVP_SIGNATURE-RSA.7" => [ "doc/man7/EVP_SIGNATURE-RSA.pod" ], + "doc/man/man7/EVP_SIGNATURE-SLH-DSA.7" => [ + "doc/man7/EVP_SIGNATURE-SLH-DSA.pod" + ], "doc/man/man7/OSSL_PROVIDER-FIPS.7" => [ "doc/man7/OSSL_PROVIDER-FIPS.pod" ], @@ -15693,6 +18145,9 @@ our %unified_info = ( "doc/man/man7/OSSL_PROVIDER-null.7" => [ "doc/man7/OSSL_PROVIDER-null.pod" ], + "doc/man/man7/OSSL_STORE-winstore.7" => [ + "doc/man7/OSSL_STORE-winstore.pod" + ], "doc/man/man7/RAND.7" => [ "doc/man7/RAND.pod" ], @@ -15705,9 +18160,6 @@ our %unified_info = ( "doc/man/man7/bio.7" => [ "doc/man7/bio.pod" ], - "doc/man/man7/crypto.7" => [ - "doc/man7/crypto.pod" - ], "doc/man/man7/ct.7" => [ "doc/man7/ct.pod" ], @@ -15738,9 +18190,6 @@ our %unified_info = ( "doc/man/man7/life_cycle-rand.7" => [ "doc/man7/life_cycle-rand.pod" ], - "doc/man/man7/migration_guide.7" => [ - "doc/man7/migration_guide.pod" - ], "doc/man/man7/openssl-core.h.7" => [ "doc/man7/openssl-core.h.pod" ], @@ -15756,12 +18205,66 @@ our %unified_info = ( "doc/man/man7/openssl-glossary.7" => [ "doc/man7/openssl-glossary.pod" ], + "doc/man/man7/openssl-qlog.7" => [ + "doc/man7/openssl-qlog.pod" + ], + "doc/man/man7/openssl-quic-concurrency.7" => [ + "doc/man7/openssl-quic-concurrency.pod" + ], + "doc/man/man7/openssl-quic.7" => [ + "doc/man7/openssl-quic.pod" + ], "doc/man/man7/openssl-threads.7" => [ "doc/man7/openssl-threads.pod" ], "doc/man/man7/openssl_user_macros.7" => [ "doc/man7/openssl_user_macros.pod" ], + "doc/man/man7/ossl-guide-introduction.7" => [ + "doc/man7/ossl-guide-introduction.pod" + ], + "doc/man/man7/ossl-guide-libcrypto-introduction.7" => [ + "doc/man7/ossl-guide-libcrypto-introduction.pod" + ], + "doc/man/man7/ossl-guide-libraries-introduction.7" => [ + "doc/man7/ossl-guide-libraries-introduction.pod" + ], + "doc/man/man7/ossl-guide-libssl-introduction.7" => [ + "doc/man7/ossl-guide-libssl-introduction.pod" + ], + "doc/man/man7/ossl-guide-migration.7" => [ + "doc/man7/ossl-guide-migration.pod" + ], + "doc/man/man7/ossl-guide-quic-client-block.7" => [ + "doc/man7/ossl-guide-quic-client-block.pod" + ], + "doc/man/man7/ossl-guide-quic-client-non-block.7" => [ + "doc/man7/ossl-guide-quic-client-non-block.pod" + ], + "doc/man/man7/ossl-guide-quic-introduction.7" => [ + "doc/man7/ossl-guide-quic-introduction.pod" + ], + "doc/man/man7/ossl-guide-quic-multi-stream.7" => [ + "doc/man7/ossl-guide-quic-multi-stream.pod" + ], + "doc/man/man7/ossl-guide-quic-server-block.7" => [ + "doc/man7/ossl-guide-quic-server-block.pod" + ], + "doc/man/man7/ossl-guide-quic-server-non-block.7" => [ + "doc/man7/ossl-guide-quic-server-non-block.pod" + ], + "doc/man/man7/ossl-guide-tls-client-block.7" => [ + "doc/man7/ossl-guide-tls-client-block.pod" + ], + "doc/man/man7/ossl-guide-tls-client-non-block.7" => [ + "doc/man7/ossl-guide-tls-client-non-block.pod" + ], + "doc/man/man7/ossl-guide-tls-introduction.7" => [ + "doc/man7/ossl-guide-tls-introduction.pod" + ], + "doc/man/man7/ossl-guide-tls-server-block.7" => [ + "doc/man7/ossl-guide-tls-server-block.pod" + ], "doc/man/man7/ossl_store-file.7" => [ "doc/man7/ossl_store-file.pod" ], @@ -15816,6 +18319,9 @@ our %unified_info = ( "doc/man/man7/provider-signature.7" => [ "doc/man7/provider-signature.pod" ], + "doc/man/man7/provider-skeymgmt.7" => [ + "doc/man7/provider-skeymgmt.pod" + ], "doc/man/man7/provider-storemgmt.7" => [ "doc/man7/provider-storemgmt.pod" ], @@ -15825,9 +18331,6 @@ our %unified_info = ( "doc/man/man7/proxy-certificates.7" => [ "doc/man7/proxy-certificates.pod" ], - "doc/man/man7/ssl.7" => [ - "doc/man7/ssl.pod" - ], "doc/man/man7/x509.7" => [ "doc/man7/x509.pod" ], @@ -15963,6 +18466,9 @@ our %unified_info = ( "doc/man1/openssl-sess_id.pod" => [ "doc/man1/openssl-sess_id.pod.in" ], + "doc/man1/openssl-skeyutl.pod" => [ + "doc/man1/openssl-skeyutl.pod.in" + ], "doc/man1/openssl-smime.pod" => [ "doc/man1/openssl-smime.pod.in" ], @@ -15999,12 +18505,30 @@ our %unified_info = ( "engines/e_padlock-x86_64.s" => [ "engines/asm/e_padlock-x86_64.pl" ], + "exporters/OpenSSLConfig.cmake" => [ + "exporters/cmake/OpenSSLConfig.cmake.in" + ], + "exporters/OpenSSLConfigVersion.cmake" => [ + "exporters/cmake/OpenSSLConfigVersion.cmake.in" + ], + "exporters/libcrypto.pc" => [ + "exporters/pkg-config/libcrypto.pc.in" + ], + "exporters/libssl.pc" => [ + "exporters/pkg-config/libssl.pc.in" + ], + "exporters/openssl.pc" => [ + "exporters/pkg-config/openssl.pc.in" + ], "include/crypto/bn_conf.h" => [ "include/crypto/bn_conf.h.in" ], "include/crypto/dso_conf.h" => [ "include/crypto/dso_conf.h.in" ], + "include/internal/param_names.h" => [ + "include/internal/param_names.h.in" + ], "include/openssl/asn1.h" => [ "include/openssl/asn1.h.in" ], @@ -16020,12 +18544,18 @@ our %unified_info = ( "include/openssl/cms.h" => [ "include/openssl/cms.h.in" ], + "include/openssl/comp.h" => [ + "include/openssl/comp.h.in" + ], "include/openssl/conf.h" => [ "include/openssl/conf.h.in" ], "include/openssl/configuration.h" => [ "include/openssl/configuration.h.in" ], + "include/openssl/core_names.h" => [ + "include/openssl/core_names.h.in" + ], "include/openssl/crmf.h" => [ "include/openssl/crmf.h.in" ], @@ -16074,16 +18604,37 @@ our %unified_info = ( "include/openssl/x509.h" => [ "include/openssl/x509.h.in" ], + "include/openssl/x509_acert.h" => [ + "include/openssl/x509_acert.h.in" + ], "include/openssl/x509_vfy.h" => [ "include/openssl/x509_vfy.h.in" ], "include/openssl/x509v3.h" => [ "include/openssl/x509v3.h.in" ], + "installdata.pm" => [ + "util/mkinstallvars.pl", + "\"PREFIX=\$(INSTALLTOP)\"", + "BINDIR=bin", + "\"LIBDIR=\$(LIBDIR)\"", + "\"libdir=\$(libdir)\"", + "INCLUDEDIR=include", + "APPLINKDIR=include/openssl", + "\"ENGINESDIR=\$(ENGINESDIR)\"", + "\"MODULESDIR=\$(MODULESDIR)\"", + "\"PKGCONFIGDIR=\$(PKGCONFIGDIR)\"", + "\"CMAKECONFIGDIR=\$(CMAKECONFIGDIR)\"", + "\"LDLIBS=\$(LIB_EX_LIBS)\"", + "\"VERSION=\$(VERSION)\"" + ], "libcrypto.ld" => [ "util/libcrypto.num", "libcrypto" ], + "libcrypto.pc" => [ + "exporters/pkg-config/libcrypto.pc.in" + ], "libcrypto.rc" => [ "util/mkrc.pl", "libcrypto" @@ -16092,10 +18643,16 @@ our %unified_info = ( "util/libssl.num", "libssl" ], + "libssl.pc" => [ + "exporters/pkg-config/libssl.pc.in" + ], "libssl.rc" => [ "util/mkrc.pl", "libssl" ], + "openssl.pc" => [ + "exporters/pkg-config/openssl.pc.in" + ], "providers/common/der/der_digests_gen.c" => [ "providers/common/der/der_digests_gen.c.in" ], @@ -16108,9 +18665,15 @@ our %unified_info = ( "providers/common/der/der_ecx_gen.c" => [ "providers/common/der/der_ecx_gen.c.in" ], + "providers/common/der/der_ml_dsa_gen.c" => [ + "providers/common/der/der_ml_dsa_gen.c.in" + ], "providers/common/der/der_rsa_gen.c" => [ "providers/common/der/der_rsa_gen.c.in" ], + "providers/common/der/der_slh_dsa_gen.c" => [ + "providers/common/der/der_slh_dsa_gen.c.in" + ], "providers/common/der/der_sm2_gen.c" => [ "providers/common/der/der_sm2_gen.c.in" ], @@ -16129,9 +18692,15 @@ our %unified_info = ( "providers/common/include/prov/der_ecx.h" => [ "providers/common/include/prov/der_ecx.h.in" ], + "providers/common/include/prov/der_ml_dsa.h" => [ + "providers/common/include/prov/der_ml_dsa.h.in" + ], "providers/common/include/prov/der_rsa.h" => [ "providers/common/include/prov/der_rsa.h.in" ], + "providers/common/include/prov/der_slh_dsa.h" => [ + "providers/common/include/prov/der_slh_dsa.h.in" + ], "providers/common/include/prov/der_sm2.h" => [ "providers/common/include/prov/der_sm2.h.in" ], @@ -16181,6 +18750,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "buffer" ], + "test/buildtest_byteorder.c" => [ + "test/generate_buildtest.pl", + "byteorder" + ], "test/buildtest_camellia.c" => [ "test/generate_buildtest.pl", "camellia" @@ -16213,10 +18786,6 @@ our %unified_info = ( "test/generate_buildtest.pl", "core_dispatch" ], - "test/buildtest_core_names.c" => [ - "test/generate_buildtest.pl", - "core_names" - ], "test/buildtest_core_object.c" => [ "test/generate_buildtest.pl", "core_object" @@ -16249,6 +18818,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "e_os2" ], + "test/buildtest_e_ostime.c" => [ + "test/generate_buildtest.pl", + "e_ostime" + ], "test/buildtest_ebcdic.c" => [ "test/generate_buildtest.pl", "ebcdic" @@ -16285,6 +18858,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "hmac" ], + "test/buildtest_hpke.c" => [ + "test/generate_buildtest.pl", + "hpke" + ], "test/buildtest_http.c" => [ "test/generate_buildtest.pl", "http" @@ -16293,6 +18870,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "idea" ], + "test/buildtest_indicator.c" => [ + "test/generate_buildtest.pl", + "indicator" + ], "test/buildtest_kdf.c" => [ "test/generate_buildtest.pl", "kdf" @@ -16313,6 +18894,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "mdc2" ], + "test/buildtest_ml_kem.c" => [ + "test/generate_buildtest.pl", + "ml_kem" + ], "test/buildtest_modes.c" => [ "test/generate_buildtest.pl", "modes" @@ -16353,6 +18938,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "provider" ], + "test/buildtest_quic.c" => [ + "test/generate_buildtest.pl", + "quic" + ], "test/buildtest_rand.c" => [ "test/generate_buildtest.pl", "rand" @@ -16409,6 +18998,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "symhacks" ], + "test/buildtest_thread.c" => [ + "test/generate_buildtest.pl", + "thread" + ], "test/buildtest_tls1.c" => [ "test/generate_buildtest.pl", "tls1" @@ -16489,6 +19082,7 @@ our %unified_info = ( "doc/html/man1/openssl-s_server.html", "doc/html/man1/openssl-s_time.html", "doc/html/man1/openssl-sess_id.html", + "doc/html/man1/openssl-skeyutl.html", "doc/html/man1/openssl-smime.html", "doc/html/man1/openssl-speed.html", "doc/html/man1/openssl-spkac.html", @@ -16538,6 +19132,7 @@ our %unified_info = ( "doc/html/man3/BIO_find_type.html", "doc/html/man3/BIO_get_data.html", "doc/html/man3/BIO_get_ex_new_index.html", + "doc/html/man3/BIO_get_rpoll_descriptor.html", "doc/html/man3/BIO_meth_new.html", "doc/html/man3/BIO_new.html", "doc/html/man3/BIO_new_CMS.html", @@ -16550,11 +19145,13 @@ our %unified_info = ( "doc/html/man3/BIO_s_connect.html", "doc/html/man3/BIO_s_core.html", "doc/html/man3/BIO_s_datagram.html", + "doc/html/man3/BIO_s_dgram_pair.html", "doc/html/man3/BIO_s_fd.html", "doc/html/man3/BIO_s_file.html", "doc/html/man3/BIO_s_mem.html", "doc/html/man3/BIO_s_null.html", "doc/html/man3/BIO_s_socket.html", + "doc/html/man3/BIO_sendmmsg.html", "doc/html/man3/BIO_set_callback.html", "doc/html/man3/BIO_should_retry.html", "doc/html/man3/BIO_socket_wait.html", @@ -16579,6 +19176,7 @@ our %unified_info = ( "doc/html/man3/BN_swap.html", "doc/html/man3/BN_zero.html", "doc/html/man3/BUF_MEM_new.html", + "doc/html/man3/CMAC_CTX.html", "doc/html/man3/CMS_EncryptedData_decrypt.html", "doc/html/man3/CMS_EncryptedData_encrypt.html", "doc/html/man3/CMS_EnvelopedData_create.html", @@ -16601,6 +19199,7 @@ our %unified_info = ( "doc/html/man3/CMS_uncompress.html", "doc/html/man3/CMS_verify.html", "doc/html/man3/CMS_verify_receipt.html", + "doc/html/man3/COMP_CTX_new.html", "doc/html/man3/CONF_modules_free.html", "doc/html/man3/CONF_modules_load_file.html", "doc/html/man3/CRYPTO_THREAD_run_once.html", @@ -16634,6 +19233,8 @@ our %unified_info = ( "doc/html/man3/DSA_size.html", "doc/html/man3/DTLS_get_data_mtu.html", "doc/html/man3/DTLS_set_timer_cb.html", + "doc/html/man3/DTLSv1_get_timeout.html", + "doc/html/man3/DTLSv1_handle_timeout.html", "doc/html/man3/DTLSv1_listen.html", "doc/html/man3/ECDSA_SIG_new.html", "doc/html/man3/ECDSA_sign.html", @@ -16680,6 +19281,7 @@ our %unified_info = ( "doc/html/man3/EVP_PKEY_CTX_ctrl.html", "doc/html/man3/EVP_PKEY_CTX_get0_libctx.html", "doc/html/man3/EVP_PKEY_CTX_get0_pkey.html", + "doc/html/man3/EVP_PKEY_CTX_get_algor.html", "doc/html/man3/EVP_PKEY_CTX_new.html", "doc/html/man3/EVP_PKEY_CTX_set1_pbe_pass.html", "doc/html/man3/EVP_PKEY_CTX_set_hkdf_md.html", @@ -16719,6 +19321,8 @@ our %unified_info = ( "doc/html/man3/EVP_PKEY_verify_recover.html", "doc/html/man3/EVP_RAND.html", "doc/html/man3/EVP_SIGNATURE.html", + "doc/html/man3/EVP_SKEY.html", + "doc/html/man3/EVP_SKEYMGMT.html", "doc/html/man3/EVP_SealInit.html", "doc/html/man3/EVP_SignInit.html", "doc/html/man3/EVP_VerifyInit.html", @@ -16748,6 +19352,7 @@ our %unified_info = ( "doc/html/man3/EVP_sm3.html", "doc/html/man3/EVP_sm4_cbc.html", "doc/html/man3/EVP_whirlpool.html", + "doc/html/man3/GENERAL_NAME.html", "doc/html/man3/HMAC.html", "doc/html/man3/MD5.html", "doc/html/man3/MDC2_Init.html", @@ -16772,14 +19377,18 @@ our %unified_info = ( "doc/html/man3/OPENSSL_init_ssl.html", "doc/html/man3/OPENSSL_instrument_bus.html", "doc/html/man3/OPENSSL_load_builtin_modules.html", + "doc/html/man3/OPENSSL_load_u16_le.html", "doc/html/man3/OPENSSL_malloc.html", + "doc/html/man3/OPENSSL_riscvcap.html", "doc/html/man3/OPENSSL_s390xcap.html", "doc/html/man3/OPENSSL_secure_malloc.html", "doc/html/man3/OPENSSL_strcasecmp.html", "doc/html/man3/OSSL_ALGORITHM.html", "doc/html/man3/OSSL_CALLBACK.html", + "doc/html/man3/OSSL_CMP_ATAV_set0.html", "doc/html/man3/OSSL_CMP_CTX_new.html", "doc/html/man3/OSSL_CMP_HDR_get0_transactionID.html", + "doc/html/man3/OSSL_CMP_ITAV_new_caCerts.html", "doc/html/man3/OSSL_CMP_ITAV_set0.html", "doc/html/man3/OSSL_CMP_MSG_get0_header.html", "doc/html/man3/OSSL_CMP_MSG_http_perform.html", @@ -16803,18 +19412,27 @@ our %unified_info = ( "doc/html/man3/OSSL_ENCODER_CTX.html", "doc/html/man3/OSSL_ENCODER_CTX_new_for_pkey.html", "doc/html/man3/OSSL_ENCODER_to_bio.html", + "doc/html/man3/OSSL_ERR_STATE_save.html", "doc/html/man3/OSSL_ESS_check_signing_certs.html", + "doc/html/man3/OSSL_GENERAL_NAMES_print.html", + "doc/html/man3/OSSL_HPKE_CTX_new.html", "doc/html/man3/OSSL_HTTP_REQ_CTX.html", "doc/html/man3/OSSL_HTTP_parse_url.html", "doc/html/man3/OSSL_HTTP_transfer.html", + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX.html", + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX_print.html", + "doc/html/man3/OSSL_INDICATOR_set_callback.html", "doc/html/man3/OSSL_ITEM.html", "doc/html/man3/OSSL_LIB_CTX.html", + "doc/html/man3/OSSL_LIB_CTX_set_conf_diagnostics.html", "doc/html/man3/OSSL_PARAM.html", "doc/html/man3/OSSL_PARAM_BLD.html", "doc/html/man3/OSSL_PARAM_allocate_from_text.html", "doc/html/man3/OSSL_PARAM_dup.html", "doc/html/man3/OSSL_PARAM_int.html", + "doc/html/man3/OSSL_PARAM_print_to_bio.html", "doc/html/man3/OSSL_PROVIDER.html", + "doc/html/man3/OSSL_QUIC_client_method.html", "doc/html/man3/OSSL_SELF_TEST_new.html", "doc/html/man3/OSSL_SELF_TEST_set_callback.html", "doc/html/man3/OSSL_STORE_INFO.html", @@ -16823,11 +19441,13 @@ our %unified_info = ( "doc/html/man3/OSSL_STORE_attach.html", "doc/html/man3/OSSL_STORE_expect.html", "doc/html/man3/OSSL_STORE_open.html", + "doc/html/man3/OSSL_sleep.html", "doc/html/man3/OSSL_trace_enabled.html", "doc/html/man3/OSSL_trace_get_category_num.html", "doc/html/man3/OSSL_trace_set_channel.html", "doc/html/man3/OpenSSL_add_all_algorithms.html", "doc/html/man3/OpenSSL_version.html", + "doc/html/man3/PBMAC1_get1_pbkdf2_param.html", "doc/html/man3/PEM_X509_INFO_read_bio_ex.html", "doc/html/man3/PEM_bytes_read_bio.html", "doc/html/man3/PEM_read.html", @@ -16840,6 +19460,7 @@ our %unified_info = ( "doc/html/man3/PKCS12_SAFEBAG_create_cert.html", "doc/html/man3/PKCS12_SAFEBAG_get0_attrs.html", "doc/html/man3/PKCS12_SAFEBAG_get1_cert.html", + "doc/html/man3/PKCS12_SAFEBAG_set0_attrs.html", "doc/html/man3/PKCS12_add1_attr_by_NID.html", "doc/html/man3/PKCS12_add_CSPName_asc.html", "doc/html/man3/PKCS12_add_cert.html", @@ -16931,6 +19552,7 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_sess_set_get_cb.html", "doc/html/man3/SSL_CTX_sessions.html", "doc/html/man3/SSL_CTX_set0_CA_list.html", + "doc/html/man3/SSL_CTX_set1_cert_comp_preference.html", "doc/html/man3/SSL_CTX_set1_curves.html", "doc/html/man3/SSL_CTX_set1_sigalgs.html", "doc/html/man3/SSL_CTX_set1_verify_cert_store.html", @@ -16944,6 +19566,7 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_ct_validation_callback.html", "doc/html/man3/SSL_CTX_set_ctlog_list_file.html", "doc/html/man3/SSL_CTX_set_default_passwd_cb.html", + "doc/html/man3/SSL_CTX_set_domain_flags.html", "doc/html/man3/SSL_CTX_set_generate_session_id.html", "doc/html/man3/SSL_CTX_set_info_callback.html", "doc/html/man3/SSL_CTX_set_keylog_callback.html", @@ -16951,6 +19574,7 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_min_proto_version.html", "doc/html/man3/SSL_CTX_set_mode.html", "doc/html/man3/SSL_CTX_set_msg_callback.html", + "doc/html/man3/SSL_CTX_set_new_pending_conn_cb.html", "doc/html/man3/SSL_CTX_set_num_tickets.html", "doc/html/man3/SSL_CTX_set_options.html", "doc/html/man3/SSL_CTX_set_psk_client_callback.html", @@ -16989,6 +19613,7 @@ our %unified_info = ( "doc/html/man3/SSL_SESSION_print.html", "doc/html/man3/SSL_SESSION_set1_id.html", "doc/html/man3/SSL_accept.html", + "doc/html/man3/SSL_accept_stream.html", "doc/html/man3/SSL_alert_type_string.html", "doc/html/man3/SSL_alloc_buffers.html", "doc/html/man3/SSL_check_chain.html", @@ -16998,59 +19623,90 @@ our %unified_info = ( "doc/html/man3/SSL_export_keying_material.html", "doc/html/man3/SSL_extension_supported.html", "doc/html/man3/SSL_free.html", + "doc/html/man3/SSL_get0_connection.html", + "doc/html/man3/SSL_get0_group_name.html", + "doc/html/man3/SSL_get0_peer_rpk.html", "doc/html/man3/SSL_get0_peer_scts.html", + "doc/html/man3/SSL_get1_builtin_sigalgs.html", "doc/html/man3/SSL_get_SSL_CTX.html", "doc/html/man3/SSL_get_all_async_fds.html", "doc/html/man3/SSL_get_certificate.html", "doc/html/man3/SSL_get_ciphers.html", "doc/html/man3/SSL_get_client_random.html", + "doc/html/man3/SSL_get_conn_close_info.html", "doc/html/man3/SSL_get_current_cipher.html", "doc/html/man3/SSL_get_default_timeout.html", "doc/html/man3/SSL_get_error.html", + "doc/html/man3/SSL_get_event_timeout.html", "doc/html/man3/SSL_get_extms_support.html", "doc/html/man3/SSL_get_fd.html", + "doc/html/man3/SSL_get_handshake_rtt.html", "doc/html/man3/SSL_get_peer_cert_chain.html", "doc/html/man3/SSL_get_peer_certificate.html", "doc/html/man3/SSL_get_peer_signature_nid.html", "doc/html/man3/SSL_get_peer_tmp_key.html", "doc/html/man3/SSL_get_psk_identity.html", "doc/html/man3/SSL_get_rbio.html", + "doc/html/man3/SSL_get_rpoll_descriptor.html", "doc/html/man3/SSL_get_session.html", "doc/html/man3/SSL_get_shared_sigalgs.html", + "doc/html/man3/SSL_get_stream_id.html", + "doc/html/man3/SSL_get_stream_read_state.html", + "doc/html/man3/SSL_get_value_uint.html", "doc/html/man3/SSL_get_verify_result.html", "doc/html/man3/SSL_get_version.html", "doc/html/man3/SSL_group_to_name.html", + "doc/html/man3/SSL_handle_events.html", "doc/html/man3/SSL_in_init.html", + "doc/html/man3/SSL_inject_net_dgram.html", "doc/html/man3/SSL_key_update.html", "doc/html/man3/SSL_library_init.html", "doc/html/man3/SSL_load_client_CA_file.html", "doc/html/man3/SSL_new.html", + "doc/html/man3/SSL_new_domain.html", + "doc/html/man3/SSL_new_listener.html", + "doc/html/man3/SSL_new_stream.html", "doc/html/man3/SSL_pending.html", + "doc/html/man3/SSL_poll.html", "doc/html/man3/SSL_read.html", "doc/html/man3/SSL_read_early_data.html", "doc/html/man3/SSL_rstate_string.html", "doc/html/man3/SSL_session_reused.html", "doc/html/man3/SSL_set1_host.html", + "doc/html/man3/SSL_set1_initial_peer_addr.html", + "doc/html/man3/SSL_set1_server_cert_type.html", "doc/html/man3/SSL_set_async_callback.html", "doc/html/man3/SSL_set_bio.html", + "doc/html/man3/SSL_set_blocking_mode.html", "doc/html/man3/SSL_set_connect_state.html", + "doc/html/man3/SSL_set_default_stream_mode.html", "doc/html/man3/SSL_set_fd.html", + "doc/html/man3/SSL_set_incoming_stream_policy.html", + "doc/html/man3/SSL_set_quic_tls_cbs.html", "doc/html/man3/SSL_set_retry_verify.html", "doc/html/man3/SSL_set_session.html", + "doc/html/man3/SSL_set_session_secret_cb.html", "doc/html/man3/SSL_set_shutdown.html", "doc/html/man3/SSL_set_verify_result.html", "doc/html/man3/SSL_shutdown.html", "doc/html/man3/SSL_state_string.html", + "doc/html/man3/SSL_stream_conclude.html", + "doc/html/man3/SSL_stream_reset.html", "doc/html/man3/SSL_want.html", "doc/html/man3/SSL_write.html", "doc/html/man3/TS_RESP_CTX_new.html", - "doc/html/man3/TS_VERIFY_CTX_set_certs.html", + "doc/html/man3/TS_VERIFY_CTX.html", "doc/html/man3/UI_STRING.html", "doc/html/man3/UI_UTIL_read_pw.html", "doc/html/man3/UI_create_method.html", "doc/html/man3/UI_new.html", "doc/html/man3/X509V3_get_d2i.html", "doc/html/man3/X509V3_set_ctx.html", + "doc/html/man3/X509_ACERT_add1_attr.html", + "doc/html/man3/X509_ACERT_add_attr_nconf.html", + "doc/html/man3/X509_ACERT_get0_holder_baseCertId.html", + "doc/html/man3/X509_ACERT_get_attr.html", + "doc/html/man3/X509_ACERT_print_ex.html", "doc/html/man3/X509_ALGOR_dup.html", "doc/html/man3/X509_ATTRIBUTE.html", "doc/html/man3/X509_CRL_get0_by_serial.html", @@ -17067,6 +19723,7 @@ our %unified_info = ( "doc/html/man3/X509_REQ_get_attr.html", "doc/html/man3/X509_REQ_get_extensions.html", "doc/html/man3/X509_SIG_get0.html", + "doc/html/man3/X509_STORE_CTX_get_by_subject.html", "doc/html/man3/X509_STORE_CTX_get_error.html", "doc/html/man3/X509_STORE_CTX_new.html", "doc/html/man3/X509_STORE_CTX_set_verify_cb.html", @@ -17089,6 +19746,7 @@ our %unified_info = ( "doc/html/man3/X509_get0_notBefore.html", "doc/html/man3/X509_get0_signature.html", "doc/html/man3/X509_get0_uids.html", + "doc/html/man3/X509_get_default_cert_file.html", "doc/html/man3/X509_get_extension_flags.html", "doc/html/man3/X509_get_pubkey.html", "doc/html/man3/X509_get_serialNumber.html", @@ -17134,12 +19792,15 @@ our %unified_info = ( "doc/html/man7/EVP_CIPHER-RC5.html", "doc/html/man7/EVP_CIPHER-SEED.html", "doc/html/man7/EVP_CIPHER-SM4.html", + "doc/html/man7/EVP_KDF-ARGON2.html", "doc/html/man7/EVP_KDF-HKDF.html", + "doc/html/man7/EVP_KDF-HMAC-DRBG.html", "doc/html/man7/EVP_KDF-KB.html", "doc/html/man7/EVP_KDF-KRB5KDF.html", "doc/html/man7/EVP_KDF-PBKDF1.html", "doc/html/man7/EVP_KDF-PBKDF2.html", "doc/html/man7/EVP_KDF-PKCS12KDF.html", + "doc/html/man7/EVP_KDF-PVKKDF.html", "doc/html/man7/EVP_KDF-SCRYPT.html", "doc/html/man7/EVP_KDF-SS.html", "doc/html/man7/EVP_KDF-SSHKDF.html", @@ -17148,7 +19809,10 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-X942-ASN1.html", "doc/html/man7/EVP_KDF-X942-CONCAT.html", "doc/html/man7/EVP_KDF-X963.html", + "doc/html/man7/EVP_KEM-EC.html", + "doc/html/man7/EVP_KEM-ML-KEM.html", "doc/html/man7/EVP_KEM-RSA.html", + "doc/html/man7/EVP_KEM-X25519.html", "doc/html/man7/EVP_KEYEXCH-DH.html", "doc/html/man7/EVP_KEYEXCH-ECDH.html", "doc/html/man7/EVP_KEYEXCH-X25519.html", @@ -17160,6 +19824,7 @@ our %unified_info = ( "doc/html/man7/EVP_MAC-Poly1305.html", "doc/html/man7/EVP_MAC-Siphash.html", "doc/html/man7/EVP_MD-BLAKE2.html", + "doc/html/man7/EVP_MD-KECCAK.html", "doc/html/man7/EVP_MD-MD2.html", "doc/html/man7/EVP_MD-MD4.html", "doc/html/man7/EVP_MD-MD5-SHA1.html", @@ -17179,12 +19844,17 @@ our %unified_info = ( "doc/html/man7/EVP_PKEY-EC.html", "doc/html/man7/EVP_PKEY-FFC.html", "doc/html/man7/EVP_PKEY-HMAC.html", + "doc/html/man7/EVP_PKEY-ML-DSA.html", + "doc/html/man7/EVP_PKEY-ML-KEM.html", "doc/html/man7/EVP_PKEY-RSA.html", + "doc/html/man7/EVP_PKEY-SLH-DSA.html", "doc/html/man7/EVP_PKEY-SM2.html", "doc/html/man7/EVP_PKEY-X25519.html", + "doc/html/man7/EVP_RAND-CRNG-TEST.html", "doc/html/man7/EVP_RAND-CTR-DRBG.html", "doc/html/man7/EVP_RAND-HASH-DRBG.html", "doc/html/man7/EVP_RAND-HMAC-DRBG.html", + "doc/html/man7/EVP_RAND-JITTER.html", "doc/html/man7/EVP_RAND-SEED-SRC.html", "doc/html/man7/EVP_RAND-TEST-RAND.html", "doc/html/man7/EVP_RAND.html", @@ -17192,17 +19862,19 @@ our %unified_info = ( "doc/html/man7/EVP_SIGNATURE-ECDSA.html", "doc/html/man7/EVP_SIGNATURE-ED25519.html", "doc/html/man7/EVP_SIGNATURE-HMAC.html", + "doc/html/man7/EVP_SIGNATURE-ML-DSA.html", "doc/html/man7/EVP_SIGNATURE-RSA.html", + "doc/html/man7/EVP_SIGNATURE-SLH-DSA.html", "doc/html/man7/OSSL_PROVIDER-FIPS.html", "doc/html/man7/OSSL_PROVIDER-base.html", "doc/html/man7/OSSL_PROVIDER-default.html", "doc/html/man7/OSSL_PROVIDER-legacy.html", "doc/html/man7/OSSL_PROVIDER-null.html", + "doc/html/man7/OSSL_STORE-winstore.html", "doc/html/man7/RAND.html", "doc/html/man7/RSA-PSS.html", "doc/html/man7/X25519.html", "doc/html/man7/bio.html", - "doc/html/man7/crypto.html", "doc/html/man7/ct.html", "doc/html/man7/des_modes.html", "doc/html/man7/evp.html", @@ -17213,14 +19885,31 @@ our %unified_info = ( "doc/html/man7/life_cycle-mac.html", "doc/html/man7/life_cycle-pkey.html", "doc/html/man7/life_cycle-rand.html", - "doc/html/man7/migration_guide.html", "doc/html/man7/openssl-core.h.html", "doc/html/man7/openssl-core_dispatch.h.html", "doc/html/man7/openssl-core_names.h.html", "doc/html/man7/openssl-env.html", "doc/html/man7/openssl-glossary.html", + "doc/html/man7/openssl-qlog.html", + "doc/html/man7/openssl-quic-concurrency.html", + "doc/html/man7/openssl-quic.html", "doc/html/man7/openssl-threads.html", "doc/html/man7/openssl_user_macros.html", + "doc/html/man7/ossl-guide-introduction.html", + "doc/html/man7/ossl-guide-libcrypto-introduction.html", + "doc/html/man7/ossl-guide-libraries-introduction.html", + "doc/html/man7/ossl-guide-libssl-introduction.html", + "doc/html/man7/ossl-guide-migration.html", + "doc/html/man7/ossl-guide-quic-client-block.html", + "doc/html/man7/ossl-guide-quic-client-non-block.html", + "doc/html/man7/ossl-guide-quic-introduction.html", + "doc/html/man7/ossl-guide-quic-multi-stream.html", + "doc/html/man7/ossl-guide-quic-server-block.html", + "doc/html/man7/ossl-guide-quic-server-non-block.html", + "doc/html/man7/ossl-guide-tls-client-block.html", + "doc/html/man7/ossl-guide-tls-client-non-block.html", + "doc/html/man7/ossl-guide-tls-introduction.html", + "doc/html/man7/ossl-guide-tls-server-block.html", "doc/html/man7/ossl_store-file.html", "doc/html/man7/ossl_store.html", "doc/html/man7/passphrase-encoding.html", @@ -17239,10 +19928,10 @@ our %unified_info = ( "doc/html/man7/provider-object.html", "doc/html/man7/provider-rand.html", "doc/html/man7/provider-signature.html", + "doc/html/man7/provider-skeymgmt.html", "doc/html/man7/provider-storemgmt.html", "doc/html/man7/provider.html", "doc/html/man7/proxy-certificates.html", - "doc/html/man7/ssl.html", "doc/html/man7/x509.html" ] }, @@ -17257,12 +19946,21 @@ our %unified_info = ( ] }, "includes" => { + "OpenSSLConfig.cmake" => [ + "." + ], + "OpenSSLConfigVersion.cmake" => [ + "." + ], "apps/asn1parse.o" => [ "apps" ], "apps/ca.o" => [ "apps" ], + "apps/ca_internals_test-bin-ca.o" => [ + "apps" + ], "apps/ciphers.o" => [ "apps" ], @@ -17489,6 +20187,9 @@ our %unified_info = ( "apps/openssl-bin-sess_id.o" => [ "apps" ], + "apps/openssl-bin-skeyutl.o" => [ + "apps" + ], "apps/openssl-bin-smime.o" => [ "apps" ], @@ -17576,6 +20277,9 @@ our %unified_info = ( "apps/sess_id.o" => [ "apps" ], + "apps/skeyutl.o" => [ + "apps" + ], "apps/smime.o" => [ "apps" ], @@ -17627,6 +20331,12 @@ our %unified_info = ( "crypto/aes/bsaes-armv7.o" => [ "crypto" ], + "crypto/aes/vpaes-armv8.o" => [ + "crypto" + ], + "crypto/aes/vpaes-loongarch64.o" => [ + "crypto" + ], "crypto/arm64cpuid.o" => [ "crypto" ], @@ -17678,9 +20388,15 @@ our %unified_info = ( "crypto/chacha/chacha-armv4.o" => [ "crypto" ], + "crypto/chacha/chacha-armv8-sve.o" => [ + "crypto" + ], "crypto/chacha/chacha-armv8.o" => [ "crypto" ], + "crypto/chacha/chacha-loongarch64.o" => [ + "crypto" + ], "crypto/chacha/chacha-s390x.o" => [ "crypto" ], @@ -17705,15 +20421,27 @@ our %unified_info = ( "crypto/ec/ecp_s390x_nistp.o" => [ "crypto" ], + "crypto/ec/ecp_sm2p256-armv8.o" => [ + "crypto" + ], + "crypto/ec/ecx_key.o" => [ + "crypto" + ], "crypto/ec/ecx_meth.o" => [ "crypto" ], "crypto/ec/ecx_s390x.o" => [ "crypto" ], + "crypto/ec/libcrypto-lib-ecx_key.o" => [ + "crypto" + ], "crypto/ec/libcrypto-lib-ecx_meth.o" => [ "crypto" ], + "crypto/ec/libfips-lib-ecx_key.o" => [ + "crypto" + ], "crypto/evp/e_aes.o" => [ "crypto", "crypto/modes" @@ -17785,9 +20513,18 @@ our %unified_info = ( "crypto/libfips-lib-cpuid.o" => [ "." ], + "crypto/md5/md5-aarch64.o" => [ + "crypto" + ], + "crypto/md5/md5-loongarch64.o" => [ + "crypto" + ], "crypto/md5/md5-sparcv9.o" => [ "crypto" ], + "crypto/modes/aes-gcm-armv8-unroll8_64.o" => [ + "crypto" + ], "crypto/modes/aes-gcm-armv8_64.o" => [ "crypto" ], @@ -17812,6 +20549,9 @@ our %unified_info = ( "crypto/modes/libfips-lib-gcm128.o" => [ "crypto" ], + "crypto/params_idx.c" => [ + "util/perl" + ], "crypto/poly1305/poly1305-armv4.o" => [ "crypto" ], @@ -17833,6 +20573,9 @@ our %unified_info = ( "crypto/sha/keccak1600-armv4.o" => [ "crypto" ], + "crypto/sha/keccak1600-armv8.o" => [ + "crypto" + ], "crypto/sha/sha1-armv4-large.o" => [ "crypto" ], @@ -17878,6 +20621,18 @@ our %unified_info = ( "crypto/sha/sha512-sparcv9.o" => [ "crypto" ], + "crypto/sm3/sm3-armv8.o" => [ + "crypto" + ], + "crypto/sm4/sm4-armv8.o" => [ + "crypto" + ], + "crypto/sm4/vpsm4-armv8.o" => [ + "crypto" + ], + "crypto/sm4/vpsm4_ex-armv8.o" => [ + "crypto" + ], "doc/man1/openssl-asn1parse.pod" => [ "doc" ], @@ -18010,6 +20765,9 @@ our %unified_info = ( "doc/man1/openssl-sess_id.pod" => [ "doc" ], + "doc/man1/openssl-skeyutl.pod" => [ + "doc" + ], "doc/man1/openssl-smime.pod" => [ "doc" ], @@ -18037,6 +20795,24 @@ our %unified_info = ( "doc/man1/openssl-x509.pod" => [ "doc" ], + "exporters/OpenSSLConfig.cmake" => [ + "." + ], + "exporters/OpenSSLConfigVersion.cmake" => [ + "." + ], + "exporters/libcrypto.pc" => [ + "." + ], + "exporters/libssl.pc" => [ + "." + ], + "exporters/openssl.pc" => [ + "." + ], + "fuzz/acert-test" => [ + "include" + ], "fuzz/asn1-test" => [ "include" ], @@ -18067,12 +20843,69 @@ our %unified_info = ( "fuzz/ct-test" => [ "include" ], + "fuzz/decoder-test" => [ + "include" + ], + "fuzz/dtlsclient-test" => [ + "include" + ], + "fuzz/dtlsserver-test" => [ + "include" + ], + "fuzz/hashtable-test" => [ + "include" + ], + "fuzz/ml-dsa-test" => [ + "include" + ], + "fuzz/ml-kem-test" => [ + "include" + ], + "fuzz/pem-test" => [ + "include" + ], + "fuzz/provider-test" => [ + "include" + ], + "fuzz/punycode-test" => [ + "include" + ], + "fuzz/quic-client-test" => [ + "include" + ], + "fuzz/quic-lcidm-test" => [ + "include" + ], + "fuzz/quic-rcidm-test" => [ + "include" + ], + "fuzz/quic-server-test" => [ + "include" + ], + "fuzz/quic-srtm-test" => [ + "include" + ], "fuzz/server-test" => [ "include" ], + "fuzz/slh-dsa-test" => [ + "include" + ], + "fuzz/smime-test" => [ + "include" + ], + "fuzz/v3name-test" => [ + "include" + ], "fuzz/x509-test" => [ "include" ], + "include/internal/param_names.h" => [ + "util/perl" + ], + "include/openssl/core_names.h" => [ + "util/perl" + ], "libcrypto" => [ ".", "include", @@ -18083,6 +20916,9 @@ our %unified_info = ( ".", "util/perl/OpenSSL" ], + "libcrypto.pc" => [ + "." + ], "libcrypto.rc" => [ "." ], @@ -18094,9 +20930,15 @@ our %unified_info = ( ".", "util/perl/OpenSSL" ], + "libssl.pc" => [ + "." + ], "libssl.rc" => [ "." ], + "openssl.pc" => [ + "." + ], "providers/common/der/der_digests_gen.c" => [ "providers/common/der" ], @@ -18136,6 +20978,15 @@ our %unified_info = ( "providers/common/der/der_ecx_key.o" => [ "providers/common/include/prov" ], + "providers/common/der/der_ml_dsa_gen.c" => [ + "providers/common/der" + ], + "providers/common/der/der_ml_dsa_gen.o" => [ + "providers/common/include/prov" + ], + "providers/common/der/der_ml_dsa_key.o" => [ + "providers/common/include/prov" + ], "providers/common/der/der_rsa_gen.c" => [ "providers/common/der" ], @@ -18148,6 +20999,15 @@ our %unified_info = ( "providers/common/der/der_rsa_sig.o" => [ "providers/common/include/prov" ], + "providers/common/der/der_slh_dsa_gen.c" => [ + "providers/common/der" + ], + "providers/common/der/der_slh_dsa_gen.o" => [ + "providers/common/include/prov" + ], + "providers/common/der/der_slh_dsa_key.o" => [ + "providers/common/include/prov" + ], "providers/common/der/der_sm2_gen.c" => [ "providers/common/der" ], @@ -18193,12 +21053,24 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ecx_key.o" => [ "providers/common/include/prov" ], + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o" => [ + "providers/common/include/prov" + ], + "providers/common/der/libcommon-lib-der_ml_dsa_key.o" => [ + "providers/common/include/prov" + ], "providers/common/der/libcommon-lib-der_rsa_gen.o" => [ "providers/common/include/prov" ], "providers/common/der/libcommon-lib-der_rsa_key.o" => [ "providers/common/include/prov" ], + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o" => [ + "providers/common/include/prov" + ], + "providers/common/der/libcommon-lib-der_slh_dsa_key.o" => [ + "providers/common/include/prov" + ], "providers/common/der/libcommon-lib-der_wrap_gen.o" => [ "providers/common/include/prov" ], @@ -18229,9 +21101,15 @@ our %unified_info = ( "providers/common/include/prov/der_ecx.h" => [ "providers/common/der" ], + "providers/common/include/prov/der_ml_dsa.h" => [ + "providers/common/der" + ], "providers/common/include/prov/der_rsa.h" => [ "providers/common/der" ], + "providers/common/include/prov/der_slh_dsa.h" => [ + "providers/common/der" + ], "providers/common/include/prov/der_sm2.h" => [ "providers/common/der" ], @@ -18274,9 +21152,15 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-eddsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/libdefault-lib-rsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/libdefault-lib-sm2_sig.o" => [ "providers/common/include/prov" ], @@ -18289,12 +21173,24 @@ our %unified_info = ( "providers/implementations/signature/libfips-lib-eddsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/libfips-lib-rsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o" => [ + "providers/common/include/prov" + ], + "providers/implementations/signature/ml_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/rsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/slh_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/sm2_sig.o" => [ "providers/common/include/prov" ], @@ -18307,28 +21203,39 @@ our %unified_info = ( "crypto", "include", "providers/implementations/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" ], "providers/libdefault.a" => [ ".", "crypto", "include", "providers/implementations/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" ], "providers/libfips.a" => [ ".", "crypto", "include", "providers/implementations/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" ], "providers/liblegacy.a" => [ ".", "crypto", "include", "providers/implementations/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" + ], + "providers/libtemplate.a" => [ + "crypto", + "include", + "providers/implementations/include", + "providers/common/include", + "providers/fips/include" ], "test/aborttest" => [ "include", @@ -18397,6 +21304,14 @@ our %unified_info = ( "include", "apps/include" ], + "test/bio_addr_test" => [ + "include", + "apps/include" + ], + "test/bio_base64_test" => [ + "include", + "apps/include" + ], "test/bio_callback_test" => [ "include", "apps/include" @@ -18405,11 +21320,20 @@ our %unified_info = ( "include", "apps/include" ], + "test/bio_dgram_test" => [ + "include", + "apps/include", + "." + ], "test/bio_enc_test" => [ "include", "apps/include" ], - "test/bio_memleak_test" => [ + "test/bio_memleak_test" => [ + "include", + "apps/include" + ], + "test/bio_meth_test" => [ "include", "apps/include" ], @@ -18426,6 +21350,11 @@ our %unified_info = ( "include", "apps/include" ], + "test/bio_tfo_test" => [ + "include", + "apps/include", + "." + ], "test/bioprinttest" => [ "include", "apps/include" @@ -18440,6 +21369,9 @@ our %unified_info = ( "include", "apps/include" ], + "test/build_wincrypt_test" => [ + "include" + ], "test/buildtest_c_aes" => [ "include" ], @@ -18455,6 +21387,9 @@ our %unified_info = ( "test/buildtest_c_buffer" => [ "include" ], + "test/buildtest_c_byteorder" => [ + "include" + ], "test/buildtest_c_camellia" => [ "include" ], @@ -18479,9 +21414,6 @@ our %unified_info = ( "test/buildtest_c_core_dispatch" => [ "include" ], - "test/buildtest_c_core_names" => [ - "include" - ], "test/buildtest_c_core_object" => [ "include" ], @@ -18506,6 +21438,9 @@ our %unified_info = ( "test/buildtest_c_e_os2" => [ "include" ], + "test/buildtest_c_e_ostime" => [ + "include" + ], "test/buildtest_c_ebcdic" => [ "include" ], @@ -18533,12 +21468,18 @@ our %unified_info = ( "test/buildtest_c_hmac" => [ "include" ], + "test/buildtest_c_hpke" => [ + "include" + ], "test/buildtest_c_http" => [ "include" ], "test/buildtest_c_idea" => [ "include" ], + "test/buildtest_c_indicator" => [ + "include" + ], "test/buildtest_c_kdf" => [ "include" ], @@ -18554,6 +21495,9 @@ our %unified_info = ( "test/buildtest_c_mdc2" => [ "include" ], + "test/buildtest_c_ml_kem" => [ + "include" + ], "test/buildtest_c_modes" => [ "include" ], @@ -18584,6 +21528,9 @@ our %unified_info = ( "test/buildtest_c_provider" => [ "include" ], + "test/buildtest_c_quic" => [ + "include" + ], "test/buildtest_c_rand" => [ "include" ], @@ -18626,6 +21573,9 @@ our %unified_info = ( "test/buildtest_c_symhacks" => [ "include" ], + "test/buildtest_c_thread" => [ + "include" + ], "test/buildtest_c_tls1" => [ "include" ], @@ -18641,10 +21591,24 @@ our %unified_info = ( "test/buildtest_c_whrlpool" => [ "include" ], + "test/byteorder_test" => [ + "include", + "apps/include" + ], + "test/ca_internals_test" => [ + ".", + "include", + "apps/include" + ], "test/casttest" => [ "include", "apps/include" ], + "test/cert_comp_test" => [ + "include", + "apps/include", + "." + ], "test/chacha_internal_test" => [ ".", "include", @@ -18768,6 +21732,11 @@ our %unified_info = ( "include", "apps/include" ], + "test/decoder_propq_test" => [ + ".", + "include", + "apps/include" + ], "test/defltfips_test" => [ "include", "apps/include" @@ -18783,7 +21752,8 @@ our %unified_info = ( "test/drbgtest" => [ "include", "apps/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" ], "test/dsa_no_digest_size_test" => [ "include", @@ -18826,7 +21796,9 @@ our %unified_info = ( "test/endecode_test" => [ ".", "include", - "apps/include" + "apps/include", + "providers/common/include", + "providers/implementations/include" ], "test/endecoder_legacy_test" => [ ".", @@ -18871,6 +21843,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/evp_pkey_dhkem_test" => [ + "include", + "apps/include" + ], "test/evp_pkey_dparams_test" => [ "include", "apps/include" @@ -18879,10 +21855,18 @@ our %unified_info = ( "include", "apps/include" ], + "test/evp_skey_test" => [ + "include", + "apps/include" + ], "test/evp_test" => [ "include", "apps/include" ], + "test/evp_xof_test" => [ + "include", + "apps/include" + ], "test/exdatatest" => [ "include", "apps/include" @@ -18983,22 +21967,62 @@ our %unified_info = ( ".", "include" ], + "test/helpers/json_test-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/helpers/pkcs12.o" => [ ".", "include" ], + "test/helpers/pkcs12_api_test-bin-pkcs12.o" => [ + ".", + "include" + ], "test/helpers/pkcs12_format_test-bin-pkcs12.o" => [ ".", "include" ], + "test/helpers/quic_multistream_test-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quic_newcid_test-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quic_radix_test-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quic_srt_gen_test-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quicapitest-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quicfaultstest-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/helpers/recordlentest-bin-ssltestlib.o" => [ ".", "include" ], + "test/helpers/rpktest-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/helpers/servername_test-bin-ssltestlib.o" => [ ".", "include" ], + "test/helpers/ssl_handshake_rtt_test-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/helpers/ssl_test-bin-handshake.o" => [ ".", "include" @@ -19032,6 +22056,10 @@ our %unified_info = ( ".", "include" ], + "test/helpers/tls13groupselection_test-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/hexstr_test" => [ ".", "include", @@ -19041,6 +22069,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/hpke_test" => [ + "include", + "apps/include" + ], "test/http_test" => [ "include", "apps/include" @@ -19053,6 +22085,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/json_test" => [ + "include", + "apps/include" + ], "test/keymgmt_internal_test" => [ ".", "include", @@ -19067,6 +22103,10 @@ our %unified_info = ( "apps/include", "." ], + "test/list_test" => [ + "include", + "apps/include" + ], "test/localetest" => [ "include", "apps/include" @@ -19080,10 +22120,27 @@ our %unified_info = ( "include", "apps/include" ], + "test/membio_test" => [ + "include", + "apps/include", + "." + ], "test/memleaktest" => [ "include", "apps/include" ], + "test/ml_dsa_test" => [ + "include", + "apps/include" + ], + "test/ml_kem_evp_extra_test" => [ + "include", + "apps/include" + ], + "test/ml_kem_internal_test" => [ + "include", + "apps/include" + ], "test/modes_internal_test" => [ ".", "include", @@ -19118,6 +22175,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/pairwise_fail_test" => [ + "include", + "apps/include" + ], "test/param_build_test" => [ "include", "apps/include" @@ -19151,6 +22212,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/pkcs12_api_test" => [ + "include", + "apps/include" + ], "test/pkcs12_format_test" => [ "include", "apps/include" @@ -19172,6 +22237,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/priority_queue_test" => [ + "include", + "apps/include" + ], "test/property_test" => [ ".", "include", @@ -19185,6 +22254,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/provider_default_search_path_test" => [ + "include", + "apps/include" + ], "test/provider_fallback_test" => [ "include", "apps/include" @@ -19211,6 +22284,97 @@ our %unified_info = ( "include", "apps/include" ], + "test/quic_ackm_test" => [ + "include", + "apps/include" + ], + "test/quic_cc_test" => [ + "include", + "apps/include" + ], + "test/quic_cfq_test" => [ + "include", + "apps/include" + ], + "test/quic_client_test" => [ + "include", + "apps/include" + ], + "test/quic_fc_test" => [ + "include", + "apps/include" + ], + "test/quic_fifd_test" => [ + "include", + "apps/include" + ], + "test/quic_lcidm_test" => [ + "include", + "apps/include" + ], + "test/quic_multistream_test" => [ + "include", + "apps/include" + ], + "test/quic_newcid_test" => [ + "include", + "apps/include", + "." + ], + "test/quic_qlog_test" => [ + "include", + "apps/include" + ], + "test/quic_radix_test" => [ + "include", + "apps/include" + ], + "test/quic_rcidm_test" => [ + "include", + "apps/include" + ], + "test/quic_record_test" => [ + "include", + "apps/include" + ], + "test/quic_srt_gen_test" => [ + "include", + "apps/include", + "." + ], + "test/quic_srtm_test" => [ + "include", + "apps/include" + ], + "test/quic_stream_test" => [ + "include", + "apps/include" + ], + "test/quic_tserver_test" => [ + "include", + "apps/include" + ], + "test/quic_txp_test" => [ + "include", + "apps/include" + ], + "test/quic_txpim_test" => [ + "include", + "apps/include" + ], + "test/quic_wire_test" => [ + "include", + "apps/include" + ], + "test/quicapitest" => [ + "include", + "apps/include" + ], + "test/quicfaultstest" => [ + "include", + "apps/include", + "." + ], "test/rand_status_test" => [ "include", "apps/include" @@ -19231,14 +22395,20 @@ our %unified_info = ( "include", "apps/include" ], - "test/rdrand_sanitytest" => [ + "test/rdcpu_sanitytest" => [ "include", - "apps/include" + "apps/include", + "crypto" ], "test/recordlentest" => [ "include", "apps/include" ], + "test/rpktest" => [ + "include", + "apps/include", + "." + ], "test/rsa_complex" => [ "include", "apps/include" @@ -19257,6 +22427,15 @@ our %unified_info = ( "include", "apps/include" ], + "test/rsa_x931_test" => [ + ".", + "include", + "apps/include" + ], + "test/safe_math_test" => [ + "include", + "apps/include" + ], "test/sanitytest" => [ "include", "apps/include" @@ -19278,6 +22457,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/slh_dsa_test" => [ + "include", + "apps/include" + ], "test/sm2_internal_test" => [ "include", "apps/include" @@ -19308,6 +22491,11 @@ our %unified_info = ( "include", "apps/include" ], + "test/ssl_handshake_rtt_test" => [ + "include", + "apps/include", + "." + ], "test/ssl_old_test" => [ ".", "include", @@ -19324,6 +22512,7 @@ our %unified_info = ( "test/sslapitest" => [ "include", "apps/include", + "providers/common/include", "." ], "test/sslbuffertest" => [ @@ -19338,6 +22527,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/strtoultest" => [ + "include", + "apps/include" + ], "test/sysdefaulttest" => [ "include", "apps/include" @@ -19346,7 +22539,13 @@ our %unified_info = ( "include", "apps/include" ], + "test/threadpool_test" => [ + ".", + "include", + "apps/include" + ], "test/threadstest" => [ + ".", "include", "apps/include" ], @@ -19358,6 +22557,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/time_test" => [ + "include", + "apps/include" + ], "test/tls13ccstest" => [ "include", "apps/include" @@ -19367,6 +22570,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/tls13groupselection_test" => [ + "include", + "apps/include" + ], "test/trace_api_test" => [ ".", "include", @@ -19405,6 +22612,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/x509_acert_test" => [ + "include", + "apps/include" + ], "test/x509_check_cert_pkey_test" => [ "include", "apps/include" @@ -19418,6 +22629,18 @@ our %unified_info = ( "include", "apps/include" ], + "test/x509_load_cert_file_test" => [ + "include", + "apps/include" + ], + "test/x509_req_test" => [ + "include", + "apps/include" + ], + "test/x509_test" => [ + "include", + "apps/include" + ], "test/x509_time_test" => [ "include", "apps/include" @@ -19439,6 +22662,7 @@ our %unified_info = ( "providers/libdefault.a", "providers/libfips.a", "providers/liblegacy.a", + "providers/libtemplate.a", "test/libtestutil.a" ], "mandocs" => { @@ -19491,6 +22715,7 @@ our %unified_info = ( "doc/man/man1/openssl-s_server.1", "doc/man/man1/openssl-s_time.1", "doc/man/man1/openssl-sess_id.1", + "doc/man/man1/openssl-skeyutl.1", "doc/man/man1/openssl-smime.1", "doc/man/man1/openssl-speed.1", "doc/man/man1/openssl-spkac.1", @@ -19540,6 +22765,7 @@ our %unified_info = ( "doc/man/man3/BIO_find_type.3", "doc/man/man3/BIO_get_data.3", "doc/man/man3/BIO_get_ex_new_index.3", + "doc/man/man3/BIO_get_rpoll_descriptor.3", "doc/man/man3/BIO_meth_new.3", "doc/man/man3/BIO_new.3", "doc/man/man3/BIO_new_CMS.3", @@ -19552,11 +22778,13 @@ our %unified_info = ( "doc/man/man3/BIO_s_connect.3", "doc/man/man3/BIO_s_core.3", "doc/man/man3/BIO_s_datagram.3", + "doc/man/man3/BIO_s_dgram_pair.3", "doc/man/man3/BIO_s_fd.3", "doc/man/man3/BIO_s_file.3", "doc/man/man3/BIO_s_mem.3", "doc/man/man3/BIO_s_null.3", "doc/man/man3/BIO_s_socket.3", + "doc/man/man3/BIO_sendmmsg.3", "doc/man/man3/BIO_set_callback.3", "doc/man/man3/BIO_should_retry.3", "doc/man/man3/BIO_socket_wait.3", @@ -19581,6 +22809,7 @@ our %unified_info = ( "doc/man/man3/BN_swap.3", "doc/man/man3/BN_zero.3", "doc/man/man3/BUF_MEM_new.3", + "doc/man/man3/CMAC_CTX.3", "doc/man/man3/CMS_EncryptedData_decrypt.3", "doc/man/man3/CMS_EncryptedData_encrypt.3", "doc/man/man3/CMS_EnvelopedData_create.3", @@ -19603,6 +22832,7 @@ our %unified_info = ( "doc/man/man3/CMS_uncompress.3", "doc/man/man3/CMS_verify.3", "doc/man/man3/CMS_verify_receipt.3", + "doc/man/man3/COMP_CTX_new.3", "doc/man/man3/CONF_modules_free.3", "doc/man/man3/CONF_modules_load_file.3", "doc/man/man3/CRYPTO_THREAD_run_once.3", @@ -19636,6 +22866,8 @@ our %unified_info = ( "doc/man/man3/DSA_size.3", "doc/man/man3/DTLS_get_data_mtu.3", "doc/man/man3/DTLS_set_timer_cb.3", + "doc/man/man3/DTLSv1_get_timeout.3", + "doc/man/man3/DTLSv1_handle_timeout.3", "doc/man/man3/DTLSv1_listen.3", "doc/man/man3/ECDSA_SIG_new.3", "doc/man/man3/ECDSA_sign.3", @@ -19682,6 +22914,7 @@ our %unified_info = ( "doc/man/man3/EVP_PKEY_CTX_ctrl.3", "doc/man/man3/EVP_PKEY_CTX_get0_libctx.3", "doc/man/man3/EVP_PKEY_CTX_get0_pkey.3", + "doc/man/man3/EVP_PKEY_CTX_get_algor.3", "doc/man/man3/EVP_PKEY_CTX_new.3", "doc/man/man3/EVP_PKEY_CTX_set1_pbe_pass.3", "doc/man/man3/EVP_PKEY_CTX_set_hkdf_md.3", @@ -19721,6 +22954,8 @@ our %unified_info = ( "doc/man/man3/EVP_PKEY_verify_recover.3", "doc/man/man3/EVP_RAND.3", "doc/man/man3/EVP_SIGNATURE.3", + "doc/man/man3/EVP_SKEY.3", + "doc/man/man3/EVP_SKEYMGMT.3", "doc/man/man3/EVP_SealInit.3", "doc/man/man3/EVP_SignInit.3", "doc/man/man3/EVP_VerifyInit.3", @@ -19750,6 +22985,7 @@ our %unified_info = ( "doc/man/man3/EVP_sm3.3", "doc/man/man3/EVP_sm4_cbc.3", "doc/man/man3/EVP_whirlpool.3", + "doc/man/man3/GENERAL_NAME.3", "doc/man/man3/HMAC.3", "doc/man/man3/MD5.3", "doc/man/man3/MDC2_Init.3", @@ -19774,14 +23010,18 @@ our %unified_info = ( "doc/man/man3/OPENSSL_init_ssl.3", "doc/man/man3/OPENSSL_instrument_bus.3", "doc/man/man3/OPENSSL_load_builtin_modules.3", + "doc/man/man3/OPENSSL_load_u16_le.3", "doc/man/man3/OPENSSL_malloc.3", + "doc/man/man3/OPENSSL_riscvcap.3", "doc/man/man3/OPENSSL_s390xcap.3", "doc/man/man3/OPENSSL_secure_malloc.3", "doc/man/man3/OPENSSL_strcasecmp.3", "doc/man/man3/OSSL_ALGORITHM.3", "doc/man/man3/OSSL_CALLBACK.3", + "doc/man/man3/OSSL_CMP_ATAV_set0.3", "doc/man/man3/OSSL_CMP_CTX_new.3", "doc/man/man3/OSSL_CMP_HDR_get0_transactionID.3", + "doc/man/man3/OSSL_CMP_ITAV_new_caCerts.3", "doc/man/man3/OSSL_CMP_ITAV_set0.3", "doc/man/man3/OSSL_CMP_MSG_get0_header.3", "doc/man/man3/OSSL_CMP_MSG_http_perform.3", @@ -19805,18 +23045,27 @@ our %unified_info = ( "doc/man/man3/OSSL_ENCODER_CTX.3", "doc/man/man3/OSSL_ENCODER_CTX_new_for_pkey.3", "doc/man/man3/OSSL_ENCODER_to_bio.3", + "doc/man/man3/OSSL_ERR_STATE_save.3", "doc/man/man3/OSSL_ESS_check_signing_certs.3", + "doc/man/man3/OSSL_GENERAL_NAMES_print.3", + "doc/man/man3/OSSL_HPKE_CTX_new.3", "doc/man/man3/OSSL_HTTP_REQ_CTX.3", "doc/man/man3/OSSL_HTTP_parse_url.3", "doc/man/man3/OSSL_HTTP_transfer.3", + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX.3", + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX_print.3", + "doc/man/man3/OSSL_INDICATOR_set_callback.3", "doc/man/man3/OSSL_ITEM.3", "doc/man/man3/OSSL_LIB_CTX.3", + "doc/man/man3/OSSL_LIB_CTX_set_conf_diagnostics.3", "doc/man/man3/OSSL_PARAM.3", "doc/man/man3/OSSL_PARAM_BLD.3", "doc/man/man3/OSSL_PARAM_allocate_from_text.3", "doc/man/man3/OSSL_PARAM_dup.3", "doc/man/man3/OSSL_PARAM_int.3", + "doc/man/man3/OSSL_PARAM_print_to_bio.3", "doc/man/man3/OSSL_PROVIDER.3", + "doc/man/man3/OSSL_QUIC_client_method.3", "doc/man/man3/OSSL_SELF_TEST_new.3", "doc/man/man3/OSSL_SELF_TEST_set_callback.3", "doc/man/man3/OSSL_STORE_INFO.3", @@ -19825,11 +23074,13 @@ our %unified_info = ( "doc/man/man3/OSSL_STORE_attach.3", "doc/man/man3/OSSL_STORE_expect.3", "doc/man/man3/OSSL_STORE_open.3", + "doc/man/man3/OSSL_sleep.3", "doc/man/man3/OSSL_trace_enabled.3", "doc/man/man3/OSSL_trace_get_category_num.3", "doc/man/man3/OSSL_trace_set_channel.3", "doc/man/man3/OpenSSL_add_all_algorithms.3", "doc/man/man3/OpenSSL_version.3", + "doc/man/man3/PBMAC1_get1_pbkdf2_param.3", "doc/man/man3/PEM_X509_INFO_read_bio_ex.3", "doc/man/man3/PEM_bytes_read_bio.3", "doc/man/man3/PEM_read.3", @@ -19842,6 +23093,7 @@ our %unified_info = ( "doc/man/man3/PKCS12_SAFEBAG_create_cert.3", "doc/man/man3/PKCS12_SAFEBAG_get0_attrs.3", "doc/man/man3/PKCS12_SAFEBAG_get1_cert.3", + "doc/man/man3/PKCS12_SAFEBAG_set0_attrs.3", "doc/man/man3/PKCS12_add1_attr_by_NID.3", "doc/man/man3/PKCS12_add_CSPName_asc.3", "doc/man/man3/PKCS12_add_cert.3", @@ -19933,6 +23185,7 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_sess_set_get_cb.3", "doc/man/man3/SSL_CTX_sessions.3", "doc/man/man3/SSL_CTX_set0_CA_list.3", + "doc/man/man3/SSL_CTX_set1_cert_comp_preference.3", "doc/man/man3/SSL_CTX_set1_curves.3", "doc/man/man3/SSL_CTX_set1_sigalgs.3", "doc/man/man3/SSL_CTX_set1_verify_cert_store.3", @@ -19946,6 +23199,7 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_ct_validation_callback.3", "doc/man/man3/SSL_CTX_set_ctlog_list_file.3", "doc/man/man3/SSL_CTX_set_default_passwd_cb.3", + "doc/man/man3/SSL_CTX_set_domain_flags.3", "doc/man/man3/SSL_CTX_set_generate_session_id.3", "doc/man/man3/SSL_CTX_set_info_callback.3", "doc/man/man3/SSL_CTX_set_keylog_callback.3", @@ -19953,6 +23207,7 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_min_proto_version.3", "doc/man/man3/SSL_CTX_set_mode.3", "doc/man/man3/SSL_CTX_set_msg_callback.3", + "doc/man/man3/SSL_CTX_set_new_pending_conn_cb.3", "doc/man/man3/SSL_CTX_set_num_tickets.3", "doc/man/man3/SSL_CTX_set_options.3", "doc/man/man3/SSL_CTX_set_psk_client_callback.3", @@ -19991,6 +23246,7 @@ our %unified_info = ( "doc/man/man3/SSL_SESSION_print.3", "doc/man/man3/SSL_SESSION_set1_id.3", "doc/man/man3/SSL_accept.3", + "doc/man/man3/SSL_accept_stream.3", "doc/man/man3/SSL_alert_type_string.3", "doc/man/man3/SSL_alloc_buffers.3", "doc/man/man3/SSL_check_chain.3", @@ -20000,59 +23256,90 @@ our %unified_info = ( "doc/man/man3/SSL_export_keying_material.3", "doc/man/man3/SSL_extension_supported.3", "doc/man/man3/SSL_free.3", + "doc/man/man3/SSL_get0_connection.3", + "doc/man/man3/SSL_get0_group_name.3", + "doc/man/man3/SSL_get0_peer_rpk.3", "doc/man/man3/SSL_get0_peer_scts.3", + "doc/man/man3/SSL_get1_builtin_sigalgs.3", "doc/man/man3/SSL_get_SSL_CTX.3", "doc/man/man3/SSL_get_all_async_fds.3", "doc/man/man3/SSL_get_certificate.3", "doc/man/man3/SSL_get_ciphers.3", "doc/man/man3/SSL_get_client_random.3", + "doc/man/man3/SSL_get_conn_close_info.3", "doc/man/man3/SSL_get_current_cipher.3", "doc/man/man3/SSL_get_default_timeout.3", "doc/man/man3/SSL_get_error.3", + "doc/man/man3/SSL_get_event_timeout.3", "doc/man/man3/SSL_get_extms_support.3", "doc/man/man3/SSL_get_fd.3", + "doc/man/man3/SSL_get_handshake_rtt.3", "doc/man/man3/SSL_get_peer_cert_chain.3", "doc/man/man3/SSL_get_peer_certificate.3", "doc/man/man3/SSL_get_peer_signature_nid.3", "doc/man/man3/SSL_get_peer_tmp_key.3", "doc/man/man3/SSL_get_psk_identity.3", "doc/man/man3/SSL_get_rbio.3", + "doc/man/man3/SSL_get_rpoll_descriptor.3", "doc/man/man3/SSL_get_session.3", "doc/man/man3/SSL_get_shared_sigalgs.3", + "doc/man/man3/SSL_get_stream_id.3", + "doc/man/man3/SSL_get_stream_read_state.3", + "doc/man/man3/SSL_get_value_uint.3", "doc/man/man3/SSL_get_verify_result.3", "doc/man/man3/SSL_get_version.3", "doc/man/man3/SSL_group_to_name.3", + "doc/man/man3/SSL_handle_events.3", "doc/man/man3/SSL_in_init.3", + "doc/man/man3/SSL_inject_net_dgram.3", "doc/man/man3/SSL_key_update.3", "doc/man/man3/SSL_library_init.3", "doc/man/man3/SSL_load_client_CA_file.3", "doc/man/man3/SSL_new.3", + "doc/man/man3/SSL_new_domain.3", + "doc/man/man3/SSL_new_listener.3", + "doc/man/man3/SSL_new_stream.3", "doc/man/man3/SSL_pending.3", + "doc/man/man3/SSL_poll.3", "doc/man/man3/SSL_read.3", "doc/man/man3/SSL_read_early_data.3", "doc/man/man3/SSL_rstate_string.3", "doc/man/man3/SSL_session_reused.3", "doc/man/man3/SSL_set1_host.3", + "doc/man/man3/SSL_set1_initial_peer_addr.3", + "doc/man/man3/SSL_set1_server_cert_type.3", "doc/man/man3/SSL_set_async_callback.3", "doc/man/man3/SSL_set_bio.3", + "doc/man/man3/SSL_set_blocking_mode.3", "doc/man/man3/SSL_set_connect_state.3", + "doc/man/man3/SSL_set_default_stream_mode.3", "doc/man/man3/SSL_set_fd.3", + "doc/man/man3/SSL_set_incoming_stream_policy.3", + "doc/man/man3/SSL_set_quic_tls_cbs.3", "doc/man/man3/SSL_set_retry_verify.3", "doc/man/man3/SSL_set_session.3", + "doc/man/man3/SSL_set_session_secret_cb.3", "doc/man/man3/SSL_set_shutdown.3", "doc/man/man3/SSL_set_verify_result.3", "doc/man/man3/SSL_shutdown.3", "doc/man/man3/SSL_state_string.3", + "doc/man/man3/SSL_stream_conclude.3", + "doc/man/man3/SSL_stream_reset.3", "doc/man/man3/SSL_want.3", "doc/man/man3/SSL_write.3", "doc/man/man3/TS_RESP_CTX_new.3", - "doc/man/man3/TS_VERIFY_CTX_set_certs.3", + "doc/man/man3/TS_VERIFY_CTX.3", "doc/man/man3/UI_STRING.3", "doc/man/man3/UI_UTIL_read_pw.3", "doc/man/man3/UI_create_method.3", "doc/man/man3/UI_new.3", "doc/man/man3/X509V3_get_d2i.3", "doc/man/man3/X509V3_set_ctx.3", + "doc/man/man3/X509_ACERT_add1_attr.3", + "doc/man/man3/X509_ACERT_add_attr_nconf.3", + "doc/man/man3/X509_ACERT_get0_holder_baseCertId.3", + "doc/man/man3/X509_ACERT_get_attr.3", + "doc/man/man3/X509_ACERT_print_ex.3", "doc/man/man3/X509_ALGOR_dup.3", "doc/man/man3/X509_ATTRIBUTE.3", "doc/man/man3/X509_CRL_get0_by_serial.3", @@ -20069,6 +23356,7 @@ our %unified_info = ( "doc/man/man3/X509_REQ_get_attr.3", "doc/man/man3/X509_REQ_get_extensions.3", "doc/man/man3/X509_SIG_get0.3", + "doc/man/man3/X509_STORE_CTX_get_by_subject.3", "doc/man/man3/X509_STORE_CTX_get_error.3", "doc/man/man3/X509_STORE_CTX_new.3", "doc/man/man3/X509_STORE_CTX_set_verify_cb.3", @@ -20091,6 +23379,7 @@ our %unified_info = ( "doc/man/man3/X509_get0_notBefore.3", "doc/man/man3/X509_get0_signature.3", "doc/man/man3/X509_get0_uids.3", + "doc/man/man3/X509_get_default_cert_file.3", "doc/man/man3/X509_get_extension_flags.3", "doc/man/man3/X509_get_pubkey.3", "doc/man/man3/X509_get_serialNumber.3", @@ -20136,12 +23425,15 @@ our %unified_info = ( "doc/man/man7/EVP_CIPHER-RC5.7", "doc/man/man7/EVP_CIPHER-SEED.7", "doc/man/man7/EVP_CIPHER-SM4.7", + "doc/man/man7/EVP_KDF-ARGON2.7", "doc/man/man7/EVP_KDF-HKDF.7", + "doc/man/man7/EVP_KDF-HMAC-DRBG.7", "doc/man/man7/EVP_KDF-KB.7", "doc/man/man7/EVP_KDF-KRB5KDF.7", "doc/man/man7/EVP_KDF-PBKDF1.7", "doc/man/man7/EVP_KDF-PBKDF2.7", "doc/man/man7/EVP_KDF-PKCS12KDF.7", + "doc/man/man7/EVP_KDF-PVKKDF.7", "doc/man/man7/EVP_KDF-SCRYPT.7", "doc/man/man7/EVP_KDF-SS.7", "doc/man/man7/EVP_KDF-SSHKDF.7", @@ -20150,7 +23442,10 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-X942-ASN1.7", "doc/man/man7/EVP_KDF-X942-CONCAT.7", "doc/man/man7/EVP_KDF-X963.7", + "doc/man/man7/EVP_KEM-EC.7", + "doc/man/man7/EVP_KEM-ML-KEM.7", "doc/man/man7/EVP_KEM-RSA.7", + "doc/man/man7/EVP_KEM-X25519.7", "doc/man/man7/EVP_KEYEXCH-DH.7", "doc/man/man7/EVP_KEYEXCH-ECDH.7", "doc/man/man7/EVP_KEYEXCH-X25519.7", @@ -20162,6 +23457,7 @@ our %unified_info = ( "doc/man/man7/EVP_MAC-Poly1305.7", "doc/man/man7/EVP_MAC-Siphash.7", "doc/man/man7/EVP_MD-BLAKE2.7", + "doc/man/man7/EVP_MD-KECCAK.7", "doc/man/man7/EVP_MD-MD2.7", "doc/man/man7/EVP_MD-MD4.7", "doc/man/man7/EVP_MD-MD5-SHA1.7", @@ -20181,12 +23477,17 @@ our %unified_info = ( "doc/man/man7/EVP_PKEY-EC.7", "doc/man/man7/EVP_PKEY-FFC.7", "doc/man/man7/EVP_PKEY-HMAC.7", + "doc/man/man7/EVP_PKEY-ML-DSA.7", + "doc/man/man7/EVP_PKEY-ML-KEM.7", "doc/man/man7/EVP_PKEY-RSA.7", + "doc/man/man7/EVP_PKEY-SLH-DSA.7", "doc/man/man7/EVP_PKEY-SM2.7", "doc/man/man7/EVP_PKEY-X25519.7", + "doc/man/man7/EVP_RAND-CRNG-TEST.7", "doc/man/man7/EVP_RAND-CTR-DRBG.7", "doc/man/man7/EVP_RAND-HASH-DRBG.7", "doc/man/man7/EVP_RAND-HMAC-DRBG.7", + "doc/man/man7/EVP_RAND-JITTER.7", "doc/man/man7/EVP_RAND-SEED-SRC.7", "doc/man/man7/EVP_RAND-TEST-RAND.7", "doc/man/man7/EVP_RAND.7", @@ -20194,17 +23495,19 @@ our %unified_info = ( "doc/man/man7/EVP_SIGNATURE-ECDSA.7", "doc/man/man7/EVP_SIGNATURE-ED25519.7", "doc/man/man7/EVP_SIGNATURE-HMAC.7", + "doc/man/man7/EVP_SIGNATURE-ML-DSA.7", "doc/man/man7/EVP_SIGNATURE-RSA.7", + "doc/man/man7/EVP_SIGNATURE-SLH-DSA.7", "doc/man/man7/OSSL_PROVIDER-FIPS.7", "doc/man/man7/OSSL_PROVIDER-base.7", "doc/man/man7/OSSL_PROVIDER-default.7", "doc/man/man7/OSSL_PROVIDER-legacy.7", "doc/man/man7/OSSL_PROVIDER-null.7", + "doc/man/man7/OSSL_STORE-winstore.7", "doc/man/man7/RAND.7", "doc/man/man7/RSA-PSS.7", "doc/man/man7/X25519.7", "doc/man/man7/bio.7", - "doc/man/man7/crypto.7", "doc/man/man7/ct.7", "doc/man/man7/des_modes.7", "doc/man/man7/evp.7", @@ -20215,14 +23518,31 @@ our %unified_info = ( "doc/man/man7/life_cycle-mac.7", "doc/man/man7/life_cycle-pkey.7", "doc/man/man7/life_cycle-rand.7", - "doc/man/man7/migration_guide.7", "doc/man/man7/openssl-core.h.7", "doc/man/man7/openssl-core_dispatch.h.7", "doc/man/man7/openssl-core_names.h.7", "doc/man/man7/openssl-env.7", "doc/man/man7/openssl-glossary.7", + "doc/man/man7/openssl-qlog.7", + "doc/man/man7/openssl-quic-concurrency.7", + "doc/man/man7/openssl-quic.7", "doc/man/man7/openssl-threads.7", "doc/man/man7/openssl_user_macros.7", + "doc/man/man7/ossl-guide-introduction.7", + "doc/man/man7/ossl-guide-libcrypto-introduction.7", + "doc/man/man7/ossl-guide-libraries-introduction.7", + "doc/man/man7/ossl-guide-libssl-introduction.7", + "doc/man/man7/ossl-guide-migration.7", + "doc/man/man7/ossl-guide-quic-client-block.7", + "doc/man/man7/ossl-guide-quic-client-non-block.7", + "doc/man/man7/ossl-guide-quic-introduction.7", + "doc/man/man7/ossl-guide-quic-multi-stream.7", + "doc/man/man7/ossl-guide-quic-server-block.7", + "doc/man/man7/ossl-guide-quic-server-non-block.7", + "doc/man/man7/ossl-guide-tls-client-block.7", + "doc/man/man7/ossl-guide-tls-client-non-block.7", + "doc/man/man7/ossl-guide-tls-introduction.7", + "doc/man/man7/ossl-guide-tls-server-block.7", "doc/man/man7/ossl_store-file.7", "doc/man/man7/ossl_store.7", "doc/man/man7/passphrase-encoding.7", @@ -20241,10 +23561,10 @@ our %unified_info = ( "doc/man/man7/provider-object.7", "doc/man/man7/provider-rand.7", "doc/man/man7/provider-signature.7", + "doc/man/man7/provider-skeymgmt.7", "doc/man/man7/provider-storemgmt.7", "doc/man/man7/provider.7", "doc/man/man7/proxy-certificates.7", - "doc/man/man7/ssl.7", "doc/man/man7/x509.7" ] }, @@ -20256,6 +23576,7 @@ our %unified_info = ( ], "programs" => [ "apps/openssl", + "fuzz/acert-test", "fuzz/asn1-test", "fuzz/asn1parse-test", "fuzz/bignum-test", @@ -20266,7 +23587,24 @@ our %unified_info = ( "fuzz/conf-test", "fuzz/crl-test", "fuzz/ct-test", + "fuzz/decoder-test", + "fuzz/dtlsclient-test", + "fuzz/dtlsserver-test", + "fuzz/hashtable-test", + "fuzz/ml-dsa-test", + "fuzz/ml-kem-test", + "fuzz/pem-test", + "fuzz/provider-test", + "fuzz/punycode-test", + "fuzz/quic-client-test", + "fuzz/quic-lcidm-test", + "fuzz/quic-rcidm-test", + "fuzz/quic-server-test", + "fuzz/quic-srtm-test", "fuzz/server-test", + "fuzz/slh-dsa-test", + "fuzz/smime-test", + "fuzz/v3name-test", "fuzz/x509-test", "test/aborttest", "test/acvp_test", @@ -20284,21 +23622,28 @@ our %unified_info = ( "test/asynctest", "test/bad_dtls_test", "test/bftest", + "test/bio_addr_test", + "test/bio_base64_test", "test/bio_callback_test", "test/bio_core_test", + "test/bio_dgram_test", "test/bio_enc_test", "test/bio_memleak_test", + "test/bio_meth_test", "test/bio_prefix_text", "test/bio_pw_callback_test", "test/bio_readbuffer_test", + "test/bio_tfo_test", "test/bioprinttest", "test/bn_internal_test", "test/bntest", + "test/build_wincrypt_test", "test/buildtest_c_aes", "test/buildtest_c_async", "test/buildtest_c_blowfish", "test/buildtest_c_bn", "test/buildtest_c_buffer", + "test/buildtest_c_byteorder", "test/buildtest_c_camellia", "test/buildtest_c_cast", "test/buildtest_c_cmac", @@ -20307,7 +23652,6 @@ our %unified_info = ( "test/buildtest_c_conftypes", "test/buildtest_c_core", "test/buildtest_c_core_dispatch", - "test/buildtest_c_core_names", "test/buildtest_c_core_object", "test/buildtest_c_cryptoerr_legacy", "test/buildtest_c_decoder", @@ -20316,6 +23660,7 @@ our %unified_info = ( "test/buildtest_c_dsa", "test/buildtest_c_dtls1", "test/buildtest_c_e_os2", + "test/buildtest_c_e_ostime", "test/buildtest_c_ebcdic", "test/buildtest_c_ec", "test/buildtest_c_ecdh", @@ -20325,13 +23670,16 @@ our %unified_info = ( "test/buildtest_c_evp", "test/buildtest_c_fips_names", "test/buildtest_c_hmac", + "test/buildtest_c_hpke", "test/buildtest_c_http", "test/buildtest_c_idea", + "test/buildtest_c_indicator", "test/buildtest_c_kdf", "test/buildtest_c_macros", "test/buildtest_c_md4", "test/buildtest_c_md5", "test/buildtest_c_mdc2", + "test/buildtest_c_ml_kem", "test/buildtest_c_modes", "test/buildtest_c_obj_mac", "test/buildtest_c_objects", @@ -20342,6 +23690,7 @@ our %unified_info = ( "test/buildtest_c_pem2", "test/buildtest_c_prov_ssl", "test/buildtest_c_provider", + "test/buildtest_c_quic", "test/buildtest_c_rand", "test/buildtest_c_rc2", "test/buildtest_c_rc4", @@ -20356,11 +23705,14 @@ our %unified_info = ( "test/buildtest_c_stack", "test/buildtest_c_store", "test/buildtest_c_symhacks", + "test/buildtest_c_thread", "test/buildtest_c_tls1", "test/buildtest_c_ts", "test/buildtest_c_txt_db", "test/buildtest_c_types", "test/buildtest_c_whrlpool", + "test/byteorder_test", + "test/ca_internals_test", "test/casttest", "test/chacha_internal_test", "test/cipher_overhead_test", @@ -20389,6 +23741,7 @@ our %unified_info = ( "test/curve448_internal_test", "test/d2i_test", "test/danetest", + "test/decoder_propq_test", "test/defltfips_test", "test/destest", "test/dhtest", @@ -20413,9 +23766,12 @@ our %unified_info = ( "test/evp_kdf_test", "test/evp_libctx_test", "test/evp_pkey_ctx_new_from_name", + "test/evp_pkey_dhkem_test", "test/evp_pkey_dparams_test", "test/evp_pkey_provided_test", + "test/evp_skey_test", "test/evp_test", + "test/evp_xof_test", "test/exdatatest", "test/exptest", "test/ext_internal_test", @@ -20425,21 +23781,29 @@ our %unified_info = ( "test/gmdifftest", "test/hexstr_test", "test/hmactest", + "test/hpke_test", "test/http_test", "test/ideatest", "test/igetest", + "test/json_test", "test/keymgmt_internal_test", "test/lhash_test", + "test/list_test", "test/localetest", "test/mdc2_internal_test", "test/mdc2test", + "test/membio_test", "test/memleaktest", + "test/ml_dsa_test", + "test/ml_kem_evp_extra_test", + "test/ml_kem_internal_test", "test/modes_internal_test", "test/namemap_internal_test", "test/nodefltctxtest", "test/ocspapitest", "test/ossl_store_test", "test/packettest", + "test/pairwise_fail_test", "test/param_build_test", "test/params_api_test", "test/params_conversion_test", @@ -20448,36 +23812,65 @@ our %unified_info = ( "test/pbetest", "test/pem_read_depr_test", "test/pemtest", + "test/pkcs12_api_test", "test/pkcs12_format_test", "test/pkcs7_test", "test/pkey_meth_kdf_test", "test/pkey_meth_test", "test/poly1305_internal_test", + "test/priority_queue_test", "test/property_test", "test/prov_config_test", "test/provfetchtest", + "test/provider_default_search_path_test", "test/provider_fallback_test", "test/provider_internal_test", "test/provider_pkey_test", "test/provider_status_test", "test/provider_test", "test/punycode_test", + "test/quic_ackm_test", + "test/quic_cc_test", + "test/quic_cfq_test", + "test/quic_client_test", + "test/quic_fc_test", + "test/quic_fifd_test", + "test/quic_lcidm_test", + "test/quic_multistream_test", + "test/quic_newcid_test", + "test/quic_qlog_test", + "test/quic_radix_test", + "test/quic_rcidm_test", + "test/quic_record_test", + "test/quic_srt_gen_test", + "test/quic_srtm_test", + "test/quic_stream_test", + "test/quic_tserver_test", + "test/quic_txp_test", + "test/quic_txpim_test", + "test/quic_wire_test", + "test/quicapitest", + "test/quicfaultstest", "test/rand_status_test", "test/rand_test", "test/rc2test", "test/rc4test", "test/rc5test", - "test/rdrand_sanitytest", + "test/rdcpu_sanitytest", "test/recordlentest", + "test/rpktest", "test/rsa_complex", "test/rsa_mp_test", "test/rsa_sp800_56b_test", "test/rsa_test", + "test/rsa_x931_test", + "test/safe_math_test", "test/sanitytest", "test/secmemtest", "test/servername_test", "test/sha_test", "test/siphash_internal_test", + "test/slh_dsa_test", "test/sm2_internal_test", "test/sm3_internal_test", "test/sm4_internal_test", @@ -20485,6 +23878,7 @@ our %unified_info = ( "test/srptest", "test/ssl_cert_table_internal_test", "test/ssl_ctx_test", + "test/ssl_handshake_rtt_test", "test/ssl_old_test", "test/ssl_test", "test/ssl_test_ctx_test", @@ -20492,13 +23886,17 @@ our %unified_info = ( "test/sslbuffertest", "test/sslcorrupttest", "test/stack_test", + "test/strtoultest", "test/sysdefaulttest", "test/test_test", + "test/threadpool_test", "test/threadstest", "test/threadstest_fips", "test/time_offset_test", + "test/time_test", "test/tls13ccstest", "test/tls13encryptiontest", + "test/tls13groupselection_test", "test/trace_api_test", "test/uitest", "test/upcallstest", @@ -20508,9 +23906,13 @@ our %unified_info = ( "test/verify_extra_test", "test/versions", "test/wpackettest", + "test/x509_acert_test", "test/x509_check_cert_pkey_test", "test/x509_dup_cert_test", "test/x509_internal_test", + "test/x509_load_cert_file_test", + "test/x509_req_test", + "test/x509_test", "test/x509_time_test", "test/x509aux" ], @@ -20525,6 +23927,33 @@ our %unified_info = ( "apps/CA.pl" => [ "apps/CA.pl.in" ], + "apps/ca_internals_test-bin-ca.o" => [ + "apps/ca.c" + ], + "apps/lib/ca_internals_test-bin-app_libctx.o" => [ + "apps/lib/app_libctx.c" + ], + "apps/lib/ca_internals_test-bin-app_provider.o" => [ + "apps/lib/app_provider.c" + ], + "apps/lib/ca_internals_test-bin-app_rand.o" => [ + "apps/lib/app_rand.c" + ], + "apps/lib/ca_internals_test-bin-app_x509.o" => [ + "apps/lib/app_x509.c" + ], + "apps/lib/ca_internals_test-bin-apps.o" => [ + "apps/lib/apps.c" + ], + "apps/lib/ca_internals_test-bin-apps_ui.o" => [ + "apps/lib/apps_ui.c" + ], + "apps/lib/ca_internals_test-bin-engine.o" => [ + "apps/lib/engine.c" + ], + "apps/lib/ca_internals_test-bin-fmt.o" => [ + "apps/lib/fmt.c" + ], "apps/lib/cmp_client_test-bin-cmp_mock_srv.o" => [ "apps/lib/cmp_mock_srv.c" ], @@ -20546,6 +23975,9 @@ our %unified_info = ( "apps/lib/libapps-lib-apps.o" => [ "apps/lib/apps.c" ], + "apps/lib/libapps-lib-apps_opt_printf.o" => [ + "apps/lib/apps_opt_printf.c" + ], "apps/lib/libapps-lib-apps_ui.o" => [ "apps/lib/apps_ui.c" ], @@ -20564,6 +23996,9 @@ our %unified_info = ( "apps/lib/libapps-lib-http_server.o" => [ "apps/lib/http_server.c" ], + "apps/lib/libapps-lib-log.o" => [ + "apps/lib/log.c" + ], "apps/lib/libapps-lib-names.o" => [ "apps/lib/names.c" ], @@ -20601,12 +24036,14 @@ our %unified_info = ( "apps/lib/libapps-lib-app_rand.o", "apps/lib/libapps-lib-app_x509.o", "apps/lib/libapps-lib-apps.o", + "apps/lib/libapps-lib-apps_opt_printf.o", "apps/lib/libapps-lib-apps_ui.o", "apps/lib/libapps-lib-columns.o", "apps/lib/libapps-lib-engine.o", "apps/lib/libapps-lib-engine_loader.o", "apps/lib/libapps-lib-fmt.o", "apps/lib/libapps-lib-http_server.o", + "apps/lib/libapps-lib-log.o", "apps/lib/libapps-lib-names.o", "apps/lib/libapps-lib-opt.o", "apps/lib/libapps-lib-s_cb.o", @@ -20662,6 +24099,7 @@ our %unified_info = ( "apps/openssl-bin-s_server.o", "apps/openssl-bin-s_time.o", "apps/openssl-bin-sess_id.o", + "apps/openssl-bin-skeyutl.o", "apps/openssl-bin-smime.o", "apps/openssl-bin-speed.o", "apps/openssl-bin-spkac.o", @@ -20810,6 +24248,9 @@ our %unified_info = ( "apps/openssl-bin-sess_id.o" => [ "apps/sess_id.c" ], + "apps/openssl-bin-skeyutl.o" => [ + "apps/skeyutl.c" + ], "apps/openssl-bin-smime.o" => [ "apps/smime.c" ], @@ -20885,6 +24326,12 @@ our %unified_info = ( "crypto/aria/libcrypto-lib-aria.o" => [ "crypto/aria/aria.c" ], + "crypto/asn1/asn1_time_test-bin-a_time.o" => [ + "crypto/asn1/a_time.c" + ], + "crypto/asn1/ca_internals_test-bin-a_time.o" => [ + "crypto/asn1/a_time.c" + ], "crypto/asn1/libcrypto-lib-a_bitstr.o" => [ "crypto/asn1/a_bitstr.c" ], @@ -21077,6 +24524,9 @@ our %unified_info = ( "crypto/asn1/libcrypto-lib-x_val.o" => [ "crypto/asn1/x_val.c" ], + "crypto/asn1_time_test-bin-ctype.o" => [ + "crypto/ctype.c" + ], "crypto/async/arch/libcrypto-lib-async_null.o" => [ "crypto/async/arch/async_null.c" ], @@ -21170,6 +24620,9 @@ our %unified_info = ( "crypto/bio/libcrypto-lib-bss_dgram.o" => [ "crypto/bio/bss_dgram.c" ], + "crypto/bio/libcrypto-lib-bss_dgram_pair.o" => [ + "crypto/bio/bss_dgram_pair.c" + ], "crypto/bio/libcrypto-lib-bss_fd.o" => [ "crypto/bio/bss_fd.c" ], @@ -21401,6 +24854,9 @@ our %unified_info = ( "crypto/buffer/libfips-lib-buffer.o" => [ "crypto/buffer/buffer.c" ], + "crypto/ca_internals_test-bin-ctype.o" => [ + "crypto/ctype.c" + ], "crypto/camellia/libcrypto-lib-cmll-x86.o" => [ "crypto/camellia/cmll-x86.S" ], @@ -21452,6 +24908,9 @@ our %unified_info = ( "crypto/cmp/libcrypto-lib-cmp_err.o" => [ "crypto/cmp/cmp_err.c" ], + "crypto/cmp/libcrypto-lib-cmp_genm.o" => [ + "crypto/cmp/cmp_genm.c" + ], "crypto/cmp/libcrypto-lib-cmp_hdr.o" => [ "crypto/cmp/cmp_hdr.c" ], @@ -22139,9 +25598,15 @@ our %unified_info = ( "crypto/err/libcrypto-lib-err_blocks.o" => [ "crypto/err/err_blocks.c" ], + "crypto/err/libcrypto-lib-err_mark.o" => [ + "crypto/err/err_mark.c" + ], "crypto/err/libcrypto-lib-err_prn.o" => [ "crypto/err/err_prn.c" ], + "crypto/err/libcrypto-lib-err_save.o" => [ + "crypto/err/err_save.c" + ], "crypto/ess/libcrypto-lib-ess_asn1.o" => [ "crypto/ess/ess_asn1.c" ], @@ -22388,9 +25853,15 @@ our %unified_info = ( "crypto/evp/libcrypto-lib-pmeth_lib.o" => [ "crypto/evp/pmeth_lib.c" ], + "crypto/evp/libcrypto-lib-s_lib.o" => [ + "crypto/evp/s_lib.c" + ], "crypto/evp/libcrypto-lib-signature.o" => [ "crypto/evp/signature.c" ], + "crypto/evp/libcrypto-lib-skeymgmt_meth.o" => [ + "crypto/evp/skeymgmt_meth.c" + ], "crypto/evp/libfips-lib-asymcipher.o" => [ "crypto/evp/asymcipher.c" ], @@ -22436,9 +25907,6 @@ our %unified_info = ( "crypto/evp/libfips-lib-keymgmt_meth.o" => [ "crypto/evp/keymgmt_meth.c" ], - "crypto/evp/libfips-lib-m_sigver.o" => [ - "crypto/evp/m_sigver.c" - ], "crypto/evp/libfips-lib-mac_lib.o" => [ "crypto/evp/mac_lib.c" ], @@ -22457,9 +25925,15 @@ our %unified_info = ( "crypto/evp/libfips-lib-pmeth_lib.o" => [ "crypto/evp/pmeth_lib.c" ], + "crypto/evp/libfips-lib-s_lib.o" => [ + "crypto/evp/s_lib.c" + ], "crypto/evp/libfips-lib-signature.o" => [ "crypto/evp/signature.c" ], + "crypto/evp/libfips-lib-skeymgmt_meth.o" => [ + "crypto/evp/skeymgmt_meth.c" + ], "crypto/ffc/libcrypto-lib-ffc_backend.o" => [ "crypto/ffc/ffc_backend.c" ], @@ -22502,12 +25976,30 @@ our %unified_info = ( "crypto/ffc/libfips-lib-ffc_params_validate.o" => [ "crypto/ffc/ffc_params_validate.c" ], + "crypto/hashtable/libcrypto-lib-hashfunc.o" => [ + "crypto/hashtable/hashfunc.c" + ], + "crypto/hashtable/libcrypto-lib-hashtable.o" => [ + "crypto/hashtable/hashtable.c" + ], + "crypto/hashtable/libfips-lib-hashfunc.o" => [ + "crypto/hashtable/hashfunc.c" + ], + "crypto/hashtable/libfips-lib-hashtable.o" => [ + "crypto/hashtable/hashtable.c" + ], "crypto/hmac/libcrypto-lib-hmac.o" => [ "crypto/hmac/hmac.c" ], "crypto/hmac/libfips-lib-hmac.o" => [ "crypto/hmac/hmac.c" ], + "crypto/hpke/libcrypto-lib-hpke.o" => [ + "crypto/hpke/hpke.c" + ], + "crypto/hpke/libcrypto-lib-hpke_util.o" => [ + "crypto/hpke/hpke_util.c" + ], "crypto/http/libcrypto-lib-http_client.o" => [ "crypto/http/http_client.c" ], @@ -22550,6 +26042,9 @@ our %unified_info = ( "crypto/libcrypto-lib-bsearch.o" => [ "crypto/bsearch.c" ], + "crypto/libcrypto-lib-comp_methods.o" => [ + "crypto/comp_methods.c" + ], "crypto/libcrypto-lib-context.o" => [ "crypto/context.c" ], @@ -22577,9 +26072,15 @@ our %unified_info = ( "crypto/libcrypto-lib-cversion.o" => [ "crypto/cversion.c" ], + "crypto/libcrypto-lib-defaults.o" => [ + "crypto/defaults.c" + ], "crypto/libcrypto-lib-der_writer.o" => [ "crypto/der_writer.c" ], + "crypto/libcrypto-lib-deterministic_nonce.o" => [ + "crypto/deterministic_nonce.c" + ], "crypto/libcrypto-lib-ebcdic.o" => [ "crypto/ebcdic.c" ], @@ -22589,6 +26090,9 @@ our %unified_info = ( "crypto/libcrypto-lib-getenv.o" => [ "crypto/getenv.c" ], + "crypto/libcrypto-lib-indicator_core.o" => [ + "crypto/indicator_core.c" + ], "crypto/libcrypto-lib-info.o" => [ "crypto/info.c" ], @@ -22637,6 +26141,9 @@ our %unified_info = ( "crypto/libcrypto-lib-params_from_text.o" => [ "crypto/params_from_text.c" ], + "crypto/libcrypto-lib-params_idx.o" => [ + "crypto/params_idx.c" + ], "crypto/libcrypto-lib-passphrase.o" => [ "crypto/passphrase.c" ], @@ -22658,12 +26165,21 @@ our %unified_info = ( "crypto/libcrypto-lib-punycode.o" => [ "crypto/punycode.c" ], + "crypto/libcrypto-lib-quic_vlint.o" => [ + "crypto/quic_vlint.c" + ], "crypto/libcrypto-lib-self_test_core.o" => [ "crypto/self_test_core.c" ], + "crypto/libcrypto-lib-sleep.o" => [ + "crypto/sleep.c" + ], "crypto/libcrypto-lib-sparse_array.o" => [ "crypto/sparse_array.c" ], + "crypto/libcrypto-lib-ssl_err.o" => [ + "crypto/ssl_err.c" + ], "crypto/libcrypto-lib-threads_lib.o" => [ "crypto/threads_lib.c" ], @@ -22676,6 +26192,9 @@ our %unified_info = ( "crypto/libcrypto-lib-threads_win.o" => [ "crypto/threads_win.c" ], + "crypto/libcrypto-lib-time.o" => [ + "crypto/time.c" + ], "crypto/libcrypto-lib-trace.o" => [ "crypto/trace.c" ], @@ -22742,6 +26261,9 @@ our %unified_info = ( "crypto/libfips-lib-params_from_text.o" => [ "crypto/params_from_text.c" ], + "crypto/libfips-lib-params_idx.o" => [ + "crypto/params_idx.c" + ], "crypto/libfips-lib-provider_core.o" => [ "crypto/provider_core.c" ], @@ -22766,6 +26288,9 @@ our %unified_info = ( "crypto/libfips-lib-threads_win.o" => [ "crypto/threads_win.c" ], + "crypto/libfips-lib-time.o" => [ + "crypto/time.c" + ], "crypto/libfips-lib-x86cpuid.o" => [ "crypto/x86cpuid.S" ], @@ -22793,6 +26318,60 @@ our %unified_info = ( "crypto/mdc2/libcrypto-lib-mdc2dgst.o" => [ "crypto/mdc2/mdc2dgst.c" ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_encoders.o" => [ + "crypto/ml_dsa/ml_dsa_encoders.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key.o" => [ + "crypto/ml_dsa/ml_dsa_key.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key_compress.o" => [ + "crypto/ml_dsa/ml_dsa_key_compress.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_matrix.o" => [ + "crypto/ml_dsa/ml_dsa_matrix.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_ntt.o" => [ + "crypto/ml_dsa/ml_dsa_ntt.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_params.o" => [ + "crypto/ml_dsa/ml_dsa_params.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sample.o" => [ + "crypto/ml_dsa/ml_dsa_sample.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sign.o" => [ + "crypto/ml_dsa/ml_dsa_sign.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_encoders.o" => [ + "crypto/ml_dsa/ml_dsa_encoders.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_key.o" => [ + "crypto/ml_dsa/ml_dsa_key.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_key_compress.o" => [ + "crypto/ml_dsa/ml_dsa_key_compress.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_matrix.o" => [ + "crypto/ml_dsa/ml_dsa_matrix.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_ntt.o" => [ + "crypto/ml_dsa/ml_dsa_ntt.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_params.o" => [ + "crypto/ml_dsa/ml_dsa_params.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_sample.o" => [ + "crypto/ml_dsa/ml_dsa_sample.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_sign.o" => [ + "crypto/ml_dsa/ml_dsa_sign.c" + ], + "crypto/ml_kem/libcrypto-lib-ml_kem.o" => [ + "crypto/ml_kem/ml_kem.c" + ], + "crypto/ml_kem/libfips-lib-ml_kem.o" => [ + "crypto/ml_kem/ml_kem.c" + ], "crypto/modes/libcrypto-lib-cbc128.o" => [ "crypto/modes/cbc128.c" ], @@ -22829,6 +26408,9 @@ our %unified_info = ( "crypto/modes/libcrypto-lib-xts128.o" => [ "crypto/modes/xts128.c" ], + "crypto/modes/libcrypto-lib-xts128gb.o" => [ + "crypto/modes/xts128gb.c" + ], "crypto/modes/libfips-lib-cbc128.o" => [ "crypto/modes/cbc128.c" ], @@ -22856,6 +26438,9 @@ our %unified_info = ( "crypto/modes/libfips-lib-xts128.o" => [ "crypto/modes/xts128.c" ], + "crypto/modes/libfips-lib-xts128gb.o" => [ + "crypto/modes/xts128gb.c" + ], "crypto/objects/libcrypto-lib-o_names.o" => [ "crypto/objects/o_names.c" ], @@ -22901,6 +26486,9 @@ our %unified_info = ( "crypto/ocsp/libcrypto-lib-v3_ocsp.o" => [ "crypto/ocsp/v3_ocsp.c" ], + "crypto/packettest-bin-quic_vlint.o" => [ + "crypto/quic_vlint.c" + ], "crypto/pem/libcrypto-lib-pem_all.o" => [ "crypto/pem/pem_all.c" ], @@ -23063,6 +26651,9 @@ our %unified_info = ( "crypto/rand/libcrypto-lib-rand_pool.o" => [ "crypto/rand/rand_pool.c" ], + "crypto/rand/libcrypto-lib-rand_uniform.o" => [ + "crypto/rand/rand_uniform.c" + ], "crypto/rand/libcrypto-lib-randfile.o" => [ "crypto/rand/randfile.c" ], @@ -23294,6 +26885,66 @@ our %unified_info = ( "crypto/siphash/libcrypto-lib-siphash.o" => [ "crypto/siphash/siphash.c" ], + "crypto/slh_dsa/libcrypto-lib-slh_adrs.o" => [ + "crypto/slh_dsa/slh_adrs.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_dsa.o" => [ + "crypto/slh_dsa/slh_dsa.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_dsa_hash_ctx.o" => [ + "crypto/slh_dsa/slh_dsa_hash_ctx.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_dsa_key.o" => [ + "crypto/slh_dsa/slh_dsa_key.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_fors.o" => [ + "crypto/slh_dsa/slh_fors.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_hash.o" => [ + "crypto/slh_dsa/slh_hash.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_hypertree.o" => [ + "crypto/slh_dsa/slh_hypertree.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_params.o" => [ + "crypto/slh_dsa/slh_params.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_wots.o" => [ + "crypto/slh_dsa/slh_wots.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_xmss.o" => [ + "crypto/slh_dsa/slh_xmss.c" + ], + "crypto/slh_dsa/libfips-lib-slh_adrs.o" => [ + "crypto/slh_dsa/slh_adrs.c" + ], + "crypto/slh_dsa/libfips-lib-slh_dsa.o" => [ + "crypto/slh_dsa/slh_dsa.c" + ], + "crypto/slh_dsa/libfips-lib-slh_dsa_hash_ctx.o" => [ + "crypto/slh_dsa/slh_dsa_hash_ctx.c" + ], + "crypto/slh_dsa/libfips-lib-slh_dsa_key.o" => [ + "crypto/slh_dsa/slh_dsa_key.c" + ], + "crypto/slh_dsa/libfips-lib-slh_fors.o" => [ + "crypto/slh_dsa/slh_fors.c" + ], + "crypto/slh_dsa/libfips-lib-slh_hash.o" => [ + "crypto/slh_dsa/slh_hash.c" + ], + "crypto/slh_dsa/libfips-lib-slh_hypertree.o" => [ + "crypto/slh_dsa/slh_hypertree.c" + ], + "crypto/slh_dsa/libfips-lib-slh_params.o" => [ + "crypto/slh_dsa/slh_params.c" + ], + "crypto/slh_dsa/libfips-lib-slh_wots.o" => [ + "crypto/slh_dsa/slh_wots.c" + ], + "crypto/slh_dsa/libfips-lib-slh_xmss.o" => [ + "crypto/slh_dsa/slh_xmss.c" + ], "crypto/sm2/libcrypto-lib-sm2_crypt.o" => [ "crypto/sm2/sm2_crypt.c" ], @@ -23348,6 +26999,42 @@ our %unified_info = ( "crypto/store/libcrypto-lib-store_strings.o" => [ "crypto/store/store_strings.c" ], + "crypto/thread/arch/libcrypto-lib-thread_none.o" => [ + "crypto/thread/arch/thread_none.c" + ], + "crypto/thread/arch/libcrypto-lib-thread_posix.o" => [ + "crypto/thread/arch/thread_posix.c" + ], + "crypto/thread/arch/libcrypto-lib-thread_win.o" => [ + "crypto/thread/arch/thread_win.c" + ], + "crypto/thread/arch/libfips-lib-thread_none.o" => [ + "crypto/thread/arch/thread_none.c" + ], + "crypto/thread/arch/libfips-lib-thread_posix.o" => [ + "crypto/thread/arch/thread_posix.c" + ], + "crypto/thread/arch/libfips-lib-thread_win.o" => [ + "crypto/thread/arch/thread_win.c" + ], + "crypto/thread/libcrypto-lib-api.o" => [ + "crypto/thread/api.c" + ], + "crypto/thread/libcrypto-lib-arch.o" => [ + "crypto/thread/arch.c" + ], + "crypto/thread/libcrypto-lib-internal.o" => [ + "crypto/thread/internal.c" + ], + "crypto/thread/libfips-lib-api.o" => [ + "crypto/thread/api.c" + ], + "crypto/thread/libfips-lib-arch.o" => [ + "crypto/thread/arch.c" + ], + "crypto/thread/libfips-lib-internal.o" => [ + "crypto/thread/internal.c" + ], "crypto/ts/libcrypto-lib-ts_asn1.o" => [ "crypto/ts/ts_asn1.c" ], @@ -23435,6 +27122,9 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-pcy_tree.o" => [ "crypto/x509/pcy_tree.c" ], + "crypto/x509/libcrypto-lib-t_acert.o" => [ + "crypto/x509/t_acert.c" + ], "crypto/x509/libcrypto-lib-t_crl.o" => [ "crypto/x509/t_crl.c" ], @@ -23444,6 +27134,12 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-t_x509.o" => [ "crypto/x509/t_x509.c" ], + "crypto/x509/libcrypto-lib-v3_aaa.o" => [ + "crypto/x509/v3_aaa.c" + ], + "crypto/x509/libcrypto-lib-v3_ac_tgt.o" => [ + "crypto/x509/v3_ac_tgt.c" + ], "crypto/x509/libcrypto-lib-v3_addr.o" => [ "crypto/x509/v3_addr.c" ], @@ -23459,6 +27155,21 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_asid.o" => [ "crypto/x509/v3_asid.c" ], + "crypto/x509/libcrypto-lib-v3_attrdesc.o" => [ + "crypto/x509/v3_attrdesc.c" + ], + "crypto/x509/libcrypto-lib-v3_attrmap.o" => [ + "crypto/x509/v3_attrmap.c" + ], + "crypto/x509/libcrypto-lib-v3_audit_id.o" => [ + "crypto/x509/v3_audit_id.c" + ], + "crypto/x509/libcrypto-lib-v3_authattid.o" => [ + "crypto/x509/v3_authattid.c" + ], + "crypto/x509/libcrypto-lib-v3_battcons.o" => [ + "crypto/x509/v3_battcons.c" + ], "crypto/x509/libcrypto-lib-v3_bcons.o" => [ "crypto/x509/v3_bcons.c" ], @@ -23483,15 +27194,24 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_genn.o" => [ "crypto/x509/v3_genn.c" ], + "crypto/x509/libcrypto-lib-v3_group_ac.o" => [ + "crypto/x509/v3_group_ac.c" + ], "crypto/x509/libcrypto-lib-v3_ia5.o" => [ "crypto/x509/v3_ia5.c" ], + "crypto/x509/libcrypto-lib-v3_ind_iss.o" => [ + "crypto/x509/v3_ind_iss.c" + ], "crypto/x509/libcrypto-lib-v3_info.o" => [ "crypto/x509/v3_info.c" ], "crypto/x509/libcrypto-lib-v3_int.o" => [ "crypto/x509/v3_int.c" ], + "crypto/x509/libcrypto-lib-v3_iobo.o" => [ + "crypto/x509/v3_iobo.c" + ], "crypto/x509/libcrypto-lib-v3_ist.o" => [ "crypto/x509/v3_ist.c" ], @@ -23501,6 +27221,12 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_ncons.o" => [ "crypto/x509/v3_ncons.c" ], + "crypto/x509/libcrypto-lib-v3_no_ass.o" => [ + "crypto/x509/v3_no_ass.c" + ], + "crypto/x509/libcrypto-lib-v3_no_rev_avail.o" => [ + "crypto/x509/v3_no_rev_avail.c" + ], "crypto/x509/libcrypto-lib-v3_pci.o" => [ "crypto/x509/v3_pci.c" ], @@ -23522,18 +27248,36 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_purp.o" => [ "crypto/x509/v3_purp.c" ], + "crypto/x509/libcrypto-lib-v3_rolespec.o" => [ + "crypto/x509/v3_rolespec.c" + ], "crypto/x509/libcrypto-lib-v3_san.o" => [ "crypto/x509/v3_san.c" ], + "crypto/x509/libcrypto-lib-v3_sda.o" => [ + "crypto/x509/v3_sda.c" + ], + "crypto/x509/libcrypto-lib-v3_single_use.o" => [ + "crypto/x509/v3_single_use.c" + ], "crypto/x509/libcrypto-lib-v3_skid.o" => [ "crypto/x509/v3_skid.c" ], + "crypto/x509/libcrypto-lib-v3_soa_id.o" => [ + "crypto/x509/v3_soa_id.c" + ], "crypto/x509/libcrypto-lib-v3_sxnet.o" => [ "crypto/x509/v3_sxnet.c" ], + "crypto/x509/libcrypto-lib-v3_timespec.o" => [ + "crypto/x509/v3_timespec.c" + ], "crypto/x509/libcrypto-lib-v3_tlsf.o" => [ "crypto/x509/v3_tlsf.c" ], + "crypto/x509/libcrypto-lib-v3_usernotice.o" => [ + "crypto/x509/v3_usernotice.c" + ], "crypto/x509/libcrypto-lib-v3_utf8.o" => [ "crypto/x509/v3_utf8.c" ], @@ -23543,6 +27287,9 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3err.o" => [ "crypto/x509/v3err.c" ], + "crypto/x509/libcrypto-lib-x509_acert.o" => [ + "crypto/x509/x509_acert.c" + ], "crypto/x509/libcrypto-lib-x509_att.o" => [ "crypto/x509/x509_att.c" ], @@ -23594,6 +27341,9 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x509_vpm.o" => [ "crypto/x509/x509_vpm.c" ], + "crypto/x509/libcrypto-lib-x509aset.o" => [ + "crypto/x509/x509aset.c" + ], "crypto/x509/libcrypto-lib-x509cset.o" => [ "crypto/x509/x509cset.c" ], @@ -23621,6 +27371,9 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x_exten.o" => [ "crypto/x509/x_exten.c" ], + "crypto/x509/libcrypto-lib-x_ietfatt.o" => [ + "crypto/x509/x_ietfatt.c" + ], "crypto/x509/libcrypto-lib-x_name.o" => [ "crypto/x509/x_name.c" ], @@ -23645,6 +27398,16 @@ our %unified_info = ( "engines/libcrypto-lib-e_padlock.o" => [ "engines/e_padlock.c" ], + "fuzz/acert-test" => [ + "fuzz/acert-test-bin-acert.o", + "fuzz/acert-test-bin-test-corpus.o" + ], + "fuzz/acert-test-bin-acert.o" => [ + "fuzz/acert.c" + ], + "fuzz/acert-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], "fuzz/asn1-test" => [ "fuzz/asn1-test-bin-asn1.o", "fuzz/asn1-test-bin-fuzz_rand.o", @@ -23757,6 +27520,190 @@ our %unified_info = ( "fuzz/ct-test-bin-test-corpus.o" => [ "fuzz/test-corpus.c" ], + "fuzz/decoder-test" => [ + "fuzz/decoder-test-bin-decoder.o", + "fuzz/decoder-test-bin-fuzz_rand.o", + "fuzz/decoder-test-bin-test-corpus.o" + ], + "fuzz/decoder-test-bin-decoder.o" => [ + "fuzz/decoder.c" + ], + "fuzz/decoder-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/decoder-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/dtlsclient-test" => [ + "fuzz/dtlsclient-test-bin-dtlsclient.o", + "fuzz/dtlsclient-test-bin-fuzz_rand.o", + "fuzz/dtlsclient-test-bin-test-corpus.o" + ], + "fuzz/dtlsclient-test-bin-dtlsclient.o" => [ + "fuzz/dtlsclient.c" + ], + "fuzz/dtlsclient-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/dtlsclient-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/dtlsserver-test" => [ + "fuzz/dtlsserver-test-bin-dtlsserver.o", + "fuzz/dtlsserver-test-bin-fuzz_rand.o", + "fuzz/dtlsserver-test-bin-test-corpus.o" + ], + "fuzz/dtlsserver-test-bin-dtlsserver.o" => [ + "fuzz/dtlsserver.c" + ], + "fuzz/dtlsserver-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/dtlsserver-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/hashtable-test" => [ + "fuzz/hashtable-test-bin-fuzz_rand.o", + "fuzz/hashtable-test-bin-hashtable.o", + "fuzz/hashtable-test-bin-test-corpus.o" + ], + "fuzz/hashtable-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/hashtable-test-bin-hashtable.o" => [ + "fuzz/hashtable.c" + ], + "fuzz/hashtable-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/ml-dsa-test" => [ + "fuzz/ml-dsa-test-bin-fuzz_rand.o", + "fuzz/ml-dsa-test-bin-ml-dsa.o", + "fuzz/ml-dsa-test-bin-test-corpus.o" + ], + "fuzz/ml-dsa-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/ml-dsa-test-bin-ml-dsa.o" => [ + "fuzz/ml-dsa.c" + ], + "fuzz/ml-dsa-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/ml-kem-test" => [ + "fuzz/ml-kem-test-bin-fuzz_rand.o", + "fuzz/ml-kem-test-bin-ml-kem.o", + "fuzz/ml-kem-test-bin-test-corpus.o" + ], + "fuzz/ml-kem-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/ml-kem-test-bin-ml-kem.o" => [ + "fuzz/ml-kem.c" + ], + "fuzz/ml-kem-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/pem-test" => [ + "fuzz/pem-test-bin-pem.o", + "fuzz/pem-test-bin-test-corpus.o" + ], + "fuzz/pem-test-bin-pem.o" => [ + "fuzz/pem.c" + ], + "fuzz/pem-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/provider-test" => [ + "fuzz/provider-test-bin-provider.o", + "fuzz/provider-test-bin-test-corpus.o" + ], + "fuzz/provider-test-bin-provider.o" => [ + "fuzz/provider.c" + ], + "fuzz/provider-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/punycode-test" => [ + "fuzz/punycode-test-bin-punycode.o", + "fuzz/punycode-test-bin-test-corpus.o" + ], + "fuzz/punycode-test-bin-punycode.o" => [ + "fuzz/punycode.c" + ], + "fuzz/punycode-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-client-test" => [ + "fuzz/quic-client-test-bin-fuzz_rand.o", + "fuzz/quic-client-test-bin-quic-client.o", + "fuzz/quic-client-test-bin-test-corpus.o" + ], + "fuzz/quic-client-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-client-test-bin-quic-client.o" => [ + "fuzz/quic-client.c" + ], + "fuzz/quic-client-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-lcidm-test" => [ + "fuzz/quic-lcidm-test-bin-fuzz_rand.o", + "fuzz/quic-lcidm-test-bin-quic-lcidm.o", + "fuzz/quic-lcidm-test-bin-test-corpus.o" + ], + "fuzz/quic-lcidm-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-lcidm-test-bin-quic-lcidm.o" => [ + "fuzz/quic-lcidm.c" + ], + "fuzz/quic-lcidm-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-rcidm-test" => [ + "fuzz/quic-rcidm-test-bin-fuzz_rand.o", + "fuzz/quic-rcidm-test-bin-quic-rcidm.o", + "fuzz/quic-rcidm-test-bin-test-corpus.o" + ], + "fuzz/quic-rcidm-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-rcidm-test-bin-quic-rcidm.o" => [ + "fuzz/quic-rcidm.c" + ], + "fuzz/quic-rcidm-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-server-test" => [ + "fuzz/quic-server-test-bin-fuzz_rand.o", + "fuzz/quic-server-test-bin-quic-server.o", + "fuzz/quic-server-test-bin-test-corpus.o" + ], + "fuzz/quic-server-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-server-test-bin-quic-server.o" => [ + "fuzz/quic-server.c" + ], + "fuzz/quic-server-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-srtm-test" => [ + "fuzz/quic-srtm-test-bin-fuzz_rand.o", + "fuzz/quic-srtm-test-bin-quic-srtm.o", + "fuzz/quic-srtm-test-bin-test-corpus.o" + ], + "fuzz/quic-srtm-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-srtm-test-bin-quic-srtm.o" => [ + "fuzz/quic-srtm.c" + ], + "fuzz/quic-srtm-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], "fuzz/server-test" => [ "fuzz/server-test-bin-fuzz_rand.o", "fuzz/server-test-bin-server.o", @@ -23771,6 +27718,40 @@ our %unified_info = ( "fuzz/server-test-bin-test-corpus.o" => [ "fuzz/test-corpus.c" ], + "fuzz/slh-dsa-test" => [ + "fuzz/slh-dsa-test-bin-fuzz_rand.o", + "fuzz/slh-dsa-test-bin-slh-dsa.o", + "fuzz/slh-dsa-test-bin-test-corpus.o" + ], + "fuzz/slh-dsa-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/slh-dsa-test-bin-slh-dsa.o" => [ + "fuzz/slh-dsa.c" + ], + "fuzz/slh-dsa-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/smime-test" => [ + "fuzz/smime-test-bin-smime.o", + "fuzz/smime-test-bin-test-corpus.o" + ], + "fuzz/smime-test-bin-smime.o" => [ + "fuzz/smime.c" + ], + "fuzz/smime-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/v3name-test" => [ + "fuzz/v3name-test-bin-test-corpus.o", + "fuzz/v3name-test-bin-v3name.o" + ], + "fuzz/v3name-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/v3name-test-bin-v3name.o" => [ + "fuzz/v3name.c" + ], "fuzz/x509-test" => [ "fuzz/x509-test-bin-fuzz_rand.o", "fuzz/x509-test-bin-test-corpus.o", @@ -23891,6 +27872,7 @@ our %unified_info = ( "crypto/bio/libcrypto-lib-bss_conn.o", "crypto/bio/libcrypto-lib-bss_core.o", "crypto/bio/libcrypto-lib-bss_dgram.o", + "crypto/bio/libcrypto-lib-bss_dgram_pair.o", "crypto/bio/libcrypto-lib-bss_fd.o", "crypto/bio/libcrypto-lib-bss_file.o", "crypto/bio/libcrypto-lib-bss_log.o", @@ -23952,6 +27934,7 @@ our %unified_info = ( "crypto/cmp/libcrypto-lib-cmp_client.o", "crypto/cmp/libcrypto-lib-cmp_ctx.o", "crypto/cmp/libcrypto-lib-cmp_err.o", + "crypto/cmp/libcrypto-lib-cmp_genm.o", "crypto/cmp/libcrypto-lib-cmp_hdr.o", "crypto/cmp/libcrypto-lib-cmp_http.o", "crypto/cmp/libcrypto-lib-cmp_msg.o", @@ -24129,7 +28112,9 @@ our %unified_info = ( "crypto/err/libcrypto-lib-err_all.o", "crypto/err/libcrypto-lib-err_all_legacy.o", "crypto/err/libcrypto-lib-err_blocks.o", + "crypto/err/libcrypto-lib-err_mark.o", "crypto/err/libcrypto-lib-err_prn.o", + "crypto/err/libcrypto-lib-err_save.o", "crypto/ess/libcrypto-lib-ess_asn1.o", "crypto/ess/libcrypto-lib-ess_err.o", "crypto/ess/libcrypto-lib-ess_lib.o", @@ -24212,7 +28197,9 @@ our %unified_info = ( "crypto/evp/libcrypto-lib-pmeth_check.o", "crypto/evp/libcrypto-lib-pmeth_gn.o", "crypto/evp/libcrypto-lib-pmeth_lib.o", + "crypto/evp/libcrypto-lib-s_lib.o", "crypto/evp/libcrypto-lib-signature.o", + "crypto/evp/libcrypto-lib-skeymgmt_meth.o", "crypto/ffc/libcrypto-lib-ffc_backend.o", "crypto/ffc/libcrypto-lib-ffc_dh.o", "crypto/ffc/libcrypto-lib-ffc_key_generate.o", @@ -24220,7 +28207,11 @@ our %unified_info = ( "crypto/ffc/libcrypto-lib-ffc_params.o", "crypto/ffc/libcrypto-lib-ffc_params_generate.o", "crypto/ffc/libcrypto-lib-ffc_params_validate.o", + "crypto/hashtable/libcrypto-lib-hashfunc.o", + "crypto/hashtable/libcrypto-lib-hashtable.o", "crypto/hmac/libcrypto-lib-hmac.o", + "crypto/hpke/libcrypto-lib-hpke.o", + "crypto/hpke/libcrypto-lib-hpke_util.o", "crypto/http/libcrypto-lib-http_client.o", "crypto/http/libcrypto-lib-http_err.o", "crypto/http/libcrypto-lib-http_lib.o", @@ -24234,6 +28225,7 @@ our %unified_info = ( "crypto/lhash/libcrypto-lib-lhash.o", "crypto/libcrypto-lib-asn1_dsa.o", "crypto/libcrypto-lib-bsearch.o", + "crypto/libcrypto-lib-comp_methods.o", "crypto/libcrypto-lib-context.o", "crypto/libcrypto-lib-core_algorithm.o", "crypto/libcrypto-lib-core_fetch.o", @@ -24243,10 +28235,13 @@ our %unified_info = ( "crypto/libcrypto-lib-cryptlib.o", "crypto/libcrypto-lib-ctype.o", "crypto/libcrypto-lib-cversion.o", + "crypto/libcrypto-lib-defaults.o", "crypto/libcrypto-lib-der_writer.o", + "crypto/libcrypto-lib-deterministic_nonce.o", "crypto/libcrypto-lib-ebcdic.o", "crypto/libcrypto-lib-ex_data.o", "crypto/libcrypto-lib-getenv.o", + "crypto/libcrypto-lib-indicator_core.o", "crypto/libcrypto-lib-info.o", "crypto/libcrypto-lib-init.o", "crypto/libcrypto-lib-initthread.o", @@ -24263,6 +28258,7 @@ our %unified_info = ( "crypto/libcrypto-lib-params.o", "crypto/libcrypto-lib-params_dup.o", "crypto/libcrypto-lib-params_from_text.o", + "crypto/libcrypto-lib-params_idx.o", "crypto/libcrypto-lib-passphrase.o", "crypto/libcrypto-lib-provider.o", "crypto/libcrypto-lib-provider_child.o", @@ -24270,12 +28266,16 @@ our %unified_info = ( "crypto/libcrypto-lib-provider_core.o", "crypto/libcrypto-lib-provider_predefined.o", "crypto/libcrypto-lib-punycode.o", + "crypto/libcrypto-lib-quic_vlint.o", "crypto/libcrypto-lib-self_test_core.o", + "crypto/libcrypto-lib-sleep.o", "crypto/libcrypto-lib-sparse_array.o", + "crypto/libcrypto-lib-ssl_err.o", "crypto/libcrypto-lib-threads_lib.o", "crypto/libcrypto-lib-threads_none.o", "crypto/libcrypto-lib-threads_pthread.o", "crypto/libcrypto-lib-threads_win.o", + "crypto/libcrypto-lib-time.o", "crypto/libcrypto-lib-trace.o", "crypto/libcrypto-lib-uid.o", "crypto/libcrypto-lib-x86cpuid.o", @@ -24287,6 +28287,15 @@ our %unified_info = ( "crypto/md5/libcrypto-lib-md5_sha1.o", "crypto/mdc2/libcrypto-lib-mdc2_one.o", "crypto/mdc2/libcrypto-lib-mdc2dgst.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_encoders.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key_compress.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_matrix.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_ntt.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_params.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sample.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sign.o", + "crypto/ml_kem/libcrypto-lib-ml_kem.o", "crypto/modes/libcrypto-lib-cbc128.o", "crypto/modes/libcrypto-lib-ccm128.o", "crypto/modes/libcrypto-lib-cfb128.o", @@ -24299,6 +28308,7 @@ our %unified_info = ( "crypto/modes/libcrypto-lib-siv128.o", "crypto/modes/libcrypto-lib-wrap128.o", "crypto/modes/libcrypto-lib-xts128.o", + "crypto/modes/libcrypto-lib-xts128gb.o", "crypto/objects/libcrypto-lib-o_names.o", "crypto/objects/libcrypto-lib-obj_dat.o", "crypto/objects/libcrypto-lib-obj_err.o", @@ -24363,6 +28373,7 @@ our %unified_info = ( "crypto/rand/libcrypto-lib-rand_lib.o", "crypto/rand/libcrypto-lib-rand_meth.o", "crypto/rand/libcrypto-lib-rand_pool.o", + "crypto/rand/libcrypto-lib-rand_uniform.o", "crypto/rand/libcrypto-lib-randfile.o", "crypto/rc2/libcrypto-lib-rc2_cbc.o", "crypto/rc2/libcrypto-lib-rc2_ecb.o", @@ -24414,6 +28425,16 @@ our %unified_info = ( "crypto/sha/libcrypto-lib-sha512-586.o", "crypto/sha/libcrypto-lib-sha512.o", "crypto/siphash/libcrypto-lib-siphash.o", + "crypto/slh_dsa/libcrypto-lib-slh_adrs.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa_hash_ctx.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa_key.o", + "crypto/slh_dsa/libcrypto-lib-slh_fors.o", + "crypto/slh_dsa/libcrypto-lib-slh_hash.o", + "crypto/slh_dsa/libcrypto-lib-slh_hypertree.o", + "crypto/slh_dsa/libcrypto-lib-slh_params.o", + "crypto/slh_dsa/libcrypto-lib-slh_wots.o", + "crypto/slh_dsa/libcrypto-lib-slh_xmss.o", "crypto/sm2/libcrypto-lib-sm2_crypt.o", "crypto/sm2/libcrypto-lib-sm2_err.o", "crypto/sm2/libcrypto-lib-sm2_key.o", @@ -24431,6 +28452,12 @@ our %unified_info = ( "crypto/store/libcrypto-lib-store_register.o", "crypto/store/libcrypto-lib-store_result.o", "crypto/store/libcrypto-lib-store_strings.o", + "crypto/thread/arch/libcrypto-lib-thread_none.o", + "crypto/thread/arch/libcrypto-lib-thread_posix.o", + "crypto/thread/arch/libcrypto-lib-thread_win.o", + "crypto/thread/libcrypto-lib-api.o", + "crypto/thread/libcrypto-lib-arch.o", + "crypto/thread/libcrypto-lib-internal.o", "crypto/ts/libcrypto-lib-ts_asn1.o", "crypto/ts/libcrypto-lib-ts_conf.o", "crypto/ts/libcrypto-lib-ts_err.o", @@ -24460,14 +28487,22 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-pcy_map.o", "crypto/x509/libcrypto-lib-pcy_node.o", "crypto/x509/libcrypto-lib-pcy_tree.o", + "crypto/x509/libcrypto-lib-t_acert.o", "crypto/x509/libcrypto-lib-t_crl.o", "crypto/x509/libcrypto-lib-t_req.o", "crypto/x509/libcrypto-lib-t_x509.o", + "crypto/x509/libcrypto-lib-v3_aaa.o", + "crypto/x509/libcrypto-lib-v3_ac_tgt.o", "crypto/x509/libcrypto-lib-v3_addr.o", "crypto/x509/libcrypto-lib-v3_admis.o", "crypto/x509/libcrypto-lib-v3_akeya.o", "crypto/x509/libcrypto-lib-v3_akid.o", "crypto/x509/libcrypto-lib-v3_asid.o", + "crypto/x509/libcrypto-lib-v3_attrdesc.o", + "crypto/x509/libcrypto-lib-v3_attrmap.o", + "crypto/x509/libcrypto-lib-v3_audit_id.o", + "crypto/x509/libcrypto-lib-v3_authattid.o", + "crypto/x509/libcrypto-lib-v3_battcons.o", "crypto/x509/libcrypto-lib-v3_bcons.o", "crypto/x509/libcrypto-lib-v3_bitst.o", "crypto/x509/libcrypto-lib-v3_conf.o", @@ -24476,12 +28511,17 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_enum.o", "crypto/x509/libcrypto-lib-v3_extku.o", "crypto/x509/libcrypto-lib-v3_genn.o", + "crypto/x509/libcrypto-lib-v3_group_ac.o", "crypto/x509/libcrypto-lib-v3_ia5.o", + "crypto/x509/libcrypto-lib-v3_ind_iss.o", "crypto/x509/libcrypto-lib-v3_info.o", "crypto/x509/libcrypto-lib-v3_int.o", + "crypto/x509/libcrypto-lib-v3_iobo.o", "crypto/x509/libcrypto-lib-v3_ist.o", "crypto/x509/libcrypto-lib-v3_lib.o", "crypto/x509/libcrypto-lib-v3_ncons.o", + "crypto/x509/libcrypto-lib-v3_no_ass.o", + "crypto/x509/libcrypto-lib-v3_no_rev_avail.o", "crypto/x509/libcrypto-lib-v3_pci.o", "crypto/x509/libcrypto-lib-v3_pcia.o", "crypto/x509/libcrypto-lib-v3_pcons.o", @@ -24489,13 +28529,20 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_pmaps.o", "crypto/x509/libcrypto-lib-v3_prn.o", "crypto/x509/libcrypto-lib-v3_purp.o", + "crypto/x509/libcrypto-lib-v3_rolespec.o", "crypto/x509/libcrypto-lib-v3_san.o", + "crypto/x509/libcrypto-lib-v3_sda.o", + "crypto/x509/libcrypto-lib-v3_single_use.o", "crypto/x509/libcrypto-lib-v3_skid.o", + "crypto/x509/libcrypto-lib-v3_soa_id.o", "crypto/x509/libcrypto-lib-v3_sxnet.o", + "crypto/x509/libcrypto-lib-v3_timespec.o", "crypto/x509/libcrypto-lib-v3_tlsf.o", + "crypto/x509/libcrypto-lib-v3_usernotice.o", "crypto/x509/libcrypto-lib-v3_utf8.o", "crypto/x509/libcrypto-lib-v3_utl.o", "crypto/x509/libcrypto-lib-v3err.o", + "crypto/x509/libcrypto-lib-x509_acert.o", "crypto/x509/libcrypto-lib-x509_att.o", "crypto/x509/libcrypto-lib-x509_cmp.o", "crypto/x509/libcrypto-lib-x509_d2.o", @@ -24513,6 +28560,7 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x509_v3.o", "crypto/x509/libcrypto-lib-x509_vfy.o", "crypto/x509/libcrypto-lib-x509_vpm.o", + "crypto/x509/libcrypto-lib-x509aset.o", "crypto/x509/libcrypto-lib-x509cset.o", "crypto/x509/libcrypto-lib-x509name.o", "crypto/x509/libcrypto-lib-x509rset.o", @@ -24522,6 +28570,7 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x_attrib.o", "crypto/x509/libcrypto-lib-x_crl.o", "crypto/x509/libcrypto-lib-x_exten.o", + "crypto/x509/libcrypto-lib-x_ietfatt.o", "crypto/x509/libcrypto-lib-x_name.o", "crypto/x509/libcrypto-lib-x_pubkey.o", "crypto/x509/libcrypto-lib-x_req.o", @@ -24543,14 +28592,15 @@ our %unified_info = ( "ssl/libssl-lib-d1_srtp.o", "ssl/libssl-lib-methods.o", "ssl/libssl-lib-pqueue.o", + "ssl/libssl-lib-priority_queue.o", "ssl/libssl-lib-s3_enc.o", "ssl/libssl-lib-s3_lib.o", "ssl/libssl-lib-s3_msg.o", "ssl/libssl-lib-ssl_asn1.o", "ssl/libssl-lib-ssl_cert.o", + "ssl/libssl-lib-ssl_cert_comp.o", "ssl/libssl-lib-ssl_ciph.o", "ssl/libssl-lib-ssl_conf.o", - "ssl/libssl-lib-ssl_err.o", "ssl/libssl-lib-ssl_err_legacy.o", "ssl/libssl-lib-ssl_init.o", "ssl/libssl-lib-ssl_lib.o", @@ -24567,12 +28617,60 @@ our %unified_info = ( "ssl/libssl-lib-tls13_enc.o", "ssl/libssl-lib-tls_depr.o", "ssl/libssl-lib-tls_srp.o", - "ssl/record/libssl-lib-dtls1_bitmap.o", + "ssl/quic/libssl-lib-cc_newreno.o", + "ssl/quic/libssl-lib-json_enc.o", + "ssl/quic/libssl-lib-qlog.o", + "ssl/quic/libssl-lib-qlog_event_helpers.o", + "ssl/quic/libssl-lib-quic_ackm.o", + "ssl/quic/libssl-lib-quic_cfq.o", + "ssl/quic/libssl-lib-quic_channel.o", + "ssl/quic/libssl-lib-quic_demux.o", + "ssl/quic/libssl-lib-quic_engine.o", + "ssl/quic/libssl-lib-quic_fc.o", + "ssl/quic/libssl-lib-quic_fifd.o", + "ssl/quic/libssl-lib-quic_impl.o", + "ssl/quic/libssl-lib-quic_lcidm.o", + "ssl/quic/libssl-lib-quic_method.o", + "ssl/quic/libssl-lib-quic_obj.o", + "ssl/quic/libssl-lib-quic_port.o", + "ssl/quic/libssl-lib-quic_rcidm.o", + "ssl/quic/libssl-lib-quic_reactor.o", + "ssl/quic/libssl-lib-quic_reactor_wait_ctx.o", + "ssl/quic/libssl-lib-quic_record_rx.o", + "ssl/quic/libssl-lib-quic_record_shared.o", + "ssl/quic/libssl-lib-quic_record_tx.o", + "ssl/quic/libssl-lib-quic_record_util.o", + "ssl/quic/libssl-lib-quic_rstream.o", + "ssl/quic/libssl-lib-quic_rx_depack.o", + "ssl/quic/libssl-lib-quic_sf_list.o", + "ssl/quic/libssl-lib-quic_srt_gen.o", + "ssl/quic/libssl-lib-quic_srtm.o", + "ssl/quic/libssl-lib-quic_sstream.o", + "ssl/quic/libssl-lib-quic_statm.o", + "ssl/quic/libssl-lib-quic_stream_map.o", + "ssl/quic/libssl-lib-quic_thread_assist.o", + "ssl/quic/libssl-lib-quic_tls.o", + "ssl/quic/libssl-lib-quic_tls_api.o", + "ssl/quic/libssl-lib-quic_trace.o", + "ssl/quic/libssl-lib-quic_tserver.o", + "ssl/quic/libssl-lib-quic_txp.o", + "ssl/quic/libssl-lib-quic_txpim.o", + "ssl/quic/libssl-lib-quic_types.o", + "ssl/quic/libssl-lib-quic_wire.o", + "ssl/quic/libssl-lib-quic_wire_pkt.o", + "ssl/quic/libssl-lib-uint_set.o", "ssl/record/libssl-lib-rec_layer_d1.o", "ssl/record/libssl-lib-rec_layer_s3.o", - "ssl/record/libssl-lib-ssl3_buffer.o", - "ssl/record/libssl-lib-ssl3_record.o", - "ssl/record/libssl-lib-ssl3_record_tls13.o", + "ssl/record/methods/libssl-lib-dtls_meth.o", + "ssl/record/methods/libssl-lib-ssl3_meth.o", + "ssl/record/methods/libssl-lib-tls13_meth.o", + "ssl/record/methods/libssl-lib-tls1_meth.o", + "ssl/record/methods/libssl-lib-tls_common.o", + "ssl/record/methods/libssl-lib-tls_multib.o", + "ssl/record/methods/libssl-lib-tlsany_meth.o", + "ssl/rio/libssl-lib-poll_builder.o", + "ssl/rio/libssl-lib-poll_immediate.o", + "ssl/rio/libssl-lib-rio_notifier.o", "ssl/statem/libssl-lib-extensions.o", "ssl/statem/libssl-lib-extensions_clnt.o", "ssl/statem/libssl-lib-extensions_cust.o", @@ -24610,12 +28708,24 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ecx_key.o" => [ "providers/common/der/der_ecx_key.c" ], + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o" => [ + "providers/common/der/der_ml_dsa_gen.c" + ], + "providers/common/der/libcommon-lib-der_ml_dsa_key.o" => [ + "providers/common/der/der_ml_dsa_key.c" + ], "providers/common/der/libcommon-lib-der_rsa_gen.o" => [ "providers/common/der/der_rsa_gen.c" ], "providers/common/der/libcommon-lib-der_rsa_key.o" => [ "providers/common/der/der_rsa_key.c" ], + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o" => [ + "providers/common/der/der_slh_dsa_gen.c" + ], + "providers/common/der/libcommon-lib-der_slh_dsa_key.o" => [ + "providers/common/der/der_slh_dsa_key.c" + ], "providers/common/der/libcommon-lib-der_wrap_gen.o" => [ "providers/common/der/der_wrap_gen.c" ], @@ -24682,6 +28792,9 @@ our %unified_info = ( "providers/common/libfips-lib-securitycheck_fips.o" => [ "providers/common/securitycheck_fips.c" ], + "providers/endecode_test-bin-legacyprov.o" => [ + "providers/legacyprov.c" + ], "providers/evp_extra_test-bin-legacyprov.o" => [ "providers/legacyprov.c" ], @@ -24696,6 +28809,9 @@ our %unified_info = ( "providers/fips/fips-dso-fips_entry.o" => [ "providers/fips/fips_entry.c" ], + "providers/fips/libfips-lib-fipsindicator.o" => [ + "providers/fips/fipsindicator.c" + ], "providers/fips/libfips-lib-fipsprov.o" => [ "providers/fips/fipsprov.c" ], @@ -24759,6 +28875,15 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_hw.o" => [ "providers/implementations/ciphers/cipher_aes_gcm_hw.c" ], + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv.o" => [ + "providers/implementations/ciphers/cipher_aes_gcm_siv.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_hw.o" => [ + "providers/implementations/ciphers/cipher_aes_gcm_siv_hw.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_polyval.o" => [ + "providers/implementations/ciphers/cipher_aes_gcm_siv_polyval.c" + ], "providers/implementations/ciphers/libdefault-lib-cipher_aes_hw.o" => [ "providers/implementations/ciphers/cipher_aes_hw.c" ], @@ -24831,9 +28956,27 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_sm4.o" => [ "providers/implementations/ciphers/cipher_sm4.c" ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm.o" => [ + "providers/implementations/ciphers/cipher_sm4_ccm.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm_hw.o" => [ + "providers/implementations/ciphers/cipher_sm4_ccm_hw.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm.o" => [ + "providers/implementations/ciphers/cipher_sm4_gcm.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm_hw.o" => [ + "providers/implementations/ciphers/cipher_sm4_gcm_hw.c" + ], "providers/implementations/ciphers/libdefault-lib-cipher_sm4_hw.o" => [ "providers/implementations/ciphers/cipher_sm4_hw.c" ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts.o" => [ + "providers/implementations/ciphers/cipher_sm4_xts.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts_hw.o" => [ + "providers/implementations/ciphers/cipher_sm4_xts_hw.c" + ], "providers/implementations/ciphers/libdefault-lib-cipher_tdes.o" => [ "providers/implementations/ciphers/cipher_tdes.c" ], @@ -25053,6 +29196,15 @@ our %unified_info = ( "providers/implementations/encode_decode/libdefault-lib-endecoder_common.o" => [ "providers/implementations/encode_decode/endecoder_common.c" ], + "providers/implementations/encode_decode/libdefault-lib-ml_common_codecs.o" => [ + "providers/implementations/encode_decode/ml_common_codecs.c" + ], + "providers/implementations/encode_decode/libdefault-lib-ml_dsa_codecs.o" => [ + "providers/implementations/encode_decode/ml_dsa_codecs.c" + ], + "providers/implementations/encode_decode/libdefault-lib-ml_kem_codecs.o" => [ + "providers/implementations/encode_decode/ml_kem_codecs.c" + ], "providers/implementations/exchange/libdefault-lib-dh_exch.o" => [ "providers/implementations/exchange/dh_exch.c" ], @@ -25077,9 +29229,15 @@ our %unified_info = ( "providers/implementations/exchange/libfips-lib-kdf_exch.o" => [ "providers/implementations/exchange/kdf_exch.c" ], + "providers/implementations/kdfs/libdefault-lib-argon2.o" => [ + "providers/implementations/kdfs/argon2.c" + ], "providers/implementations/kdfs/libdefault-lib-hkdf.o" => [ "providers/implementations/kdfs/hkdf.c" ], + "providers/implementations/kdfs/libdefault-lib-hmacdrbg_kdf.o" => [ + "providers/implementations/kdfs/hmacdrbg_kdf.c" + ], "providers/implementations/kdfs/libdefault-lib-kbkdf.o" => [ "providers/implementations/kdfs/kbkdf.c" ], @@ -25137,12 +29295,39 @@ our %unified_info = ( "providers/implementations/kdfs/liblegacy-lib-pbkdf1.o" => [ "providers/implementations/kdfs/pbkdf1.c" ], + "providers/implementations/kdfs/liblegacy-lib-pvkkdf.o" => [ + "providers/implementations/kdfs/pvkkdf.c" + ], + "providers/implementations/kem/libdefault-lib-ec_kem.o" => [ + "providers/implementations/kem/ec_kem.c" + ], + "providers/implementations/kem/libdefault-lib-ecx_kem.o" => [ + "providers/implementations/kem/ecx_kem.c" + ], + "providers/implementations/kem/libdefault-lib-kem_util.o" => [ + "providers/implementations/kem/kem_util.c" + ], + "providers/implementations/kem/libdefault-lib-ml_kem_kem.o" => [ + "providers/implementations/kem/ml_kem_kem.c" + ], + "providers/implementations/kem/libdefault-lib-mlx_kem.o" => [ + "providers/implementations/kem/mlx_kem.c" + ], "providers/implementations/kem/libdefault-lib-rsa_kem.o" => [ "providers/implementations/kem/rsa_kem.c" ], + "providers/implementations/kem/libfips-lib-ml_kem_kem.o" => [ + "providers/implementations/kem/ml_kem_kem.c" + ], + "providers/implementations/kem/libfips-lib-mlx_kem.o" => [ + "providers/implementations/kem/mlx_kem.c" + ], "providers/implementations/kem/libfips-lib-rsa_kem.o" => [ "providers/implementations/kem/rsa_kem.c" ], + "providers/implementations/kem/libtemplate-lib-template_kem.o" => [ + "providers/implementations/kem/template_kem.c" + ], "providers/implementations/keymgmt/libdefault-lib-dh_kmgmt.o" => [ "providers/implementations/keymgmt/dh_kmgmt.c" ], @@ -25161,9 +29346,21 @@ our %unified_info = ( "providers/implementations/keymgmt/libdefault-lib-mac_legacy_kmgmt.o" => [ "providers/implementations/keymgmt/mac_legacy_kmgmt.c" ], + "providers/implementations/keymgmt/libdefault-lib-ml_dsa_kmgmt.o" => [ + "providers/implementations/keymgmt/ml_dsa_kmgmt.c" + ], + "providers/implementations/keymgmt/libdefault-lib-ml_kem_kmgmt.o" => [ + "providers/implementations/keymgmt/ml_kem_kmgmt.c" + ], + "providers/implementations/keymgmt/libdefault-lib-mlx_kmgmt.o" => [ + "providers/implementations/keymgmt/mlx_kmgmt.c" + ], "providers/implementations/keymgmt/libdefault-lib-rsa_kmgmt.o" => [ "providers/implementations/keymgmt/rsa_kmgmt.c" ], + "providers/implementations/keymgmt/libdefault-lib-slh_dsa_kmgmt.o" => [ + "providers/implementations/keymgmt/slh_dsa_kmgmt.c" + ], "providers/implementations/keymgmt/libfips-lib-dh_kmgmt.o" => [ "providers/implementations/keymgmt/dh_kmgmt.c" ], @@ -25182,9 +29379,24 @@ our %unified_info = ( "providers/implementations/keymgmt/libfips-lib-mac_legacy_kmgmt.o" => [ "providers/implementations/keymgmt/mac_legacy_kmgmt.c" ], + "providers/implementations/keymgmt/libfips-lib-ml_dsa_kmgmt.o" => [ + "providers/implementations/keymgmt/ml_dsa_kmgmt.c" + ], + "providers/implementations/keymgmt/libfips-lib-ml_kem_kmgmt.o" => [ + "providers/implementations/keymgmt/ml_kem_kmgmt.c" + ], + "providers/implementations/keymgmt/libfips-lib-mlx_kmgmt.o" => [ + "providers/implementations/keymgmt/mlx_kmgmt.c" + ], "providers/implementations/keymgmt/libfips-lib-rsa_kmgmt.o" => [ "providers/implementations/keymgmt/rsa_kmgmt.c" ], + "providers/implementations/keymgmt/libfips-lib-slh_dsa_kmgmt.o" => [ + "providers/implementations/keymgmt/slh_dsa_kmgmt.c" + ], + "providers/implementations/keymgmt/libtemplate-lib-template_kmgmt.o" => [ + "providers/implementations/keymgmt/template_kmgmt.c" + ], "providers/implementations/macs/libdefault-lib-blake2b_mac.o" => [ "providers/implementations/macs/blake2b_mac.c" ], @@ -25221,9 +29433,6 @@ our %unified_info = ( "providers/implementations/macs/libfips-lib-kmac_prov.o" => [ "providers/implementations/macs/kmac_prov.c" ], - "providers/implementations/rands/libdefault-lib-crngt.o" => [ - "providers/implementations/rands/crngt.c" - ], "providers/implementations/rands/libdefault-lib-drbg.o" => [ "providers/implementations/rands/drbg.c" ], @@ -25239,12 +29448,12 @@ our %unified_info = ( "providers/implementations/rands/libdefault-lib-seed_src.o" => [ "providers/implementations/rands/seed_src.c" ], + "providers/implementations/rands/libdefault-lib-seed_src_jitter.o" => [ + "providers/implementations/rands/seed_src_jitter.c" + ], "providers/implementations/rands/libdefault-lib-test_rng.o" => [ "providers/implementations/rands/test_rng.c" ], - "providers/implementations/rands/libfips-lib-crngt.o" => [ - "providers/implementations/rands/crngt.c" - ], "providers/implementations/rands/libfips-lib-drbg.o" => [ "providers/implementations/rands/drbg.c" ], @@ -25257,6 +29466,9 @@ our %unified_info = ( "providers/implementations/rands/libfips-lib-drbg_hmac.o" => [ "providers/implementations/rands/drbg_hmac.c" ], + "providers/implementations/rands/libfips-lib-fips_crng_test.o" => [ + "providers/implementations/rands/fips_crng_test.c" + ], "providers/implementations/rands/libfips-lib-test_rng.o" => [ "providers/implementations/rands/test_rng.c" ], @@ -25284,9 +29496,15 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-mac_legacy_sig.o" => [ "providers/implementations/signature/mac_legacy_sig.c" ], + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o" => [ + "providers/implementations/signature/ml_dsa_sig.c" + ], "providers/implementations/signature/libdefault-lib-rsa_sig.o" => [ "providers/implementations/signature/rsa_sig.c" ], + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o" => [ + "providers/implementations/signature/slh_dsa_sig.c" + ], "providers/implementations/signature/libdefault-lib-sm2_sig.o" => [ "providers/implementations/signature/sm2_sig.c" ], @@ -25302,15 +29520,36 @@ our %unified_info = ( "providers/implementations/signature/libfips-lib-mac_legacy_sig.o" => [ "providers/implementations/signature/mac_legacy_sig.c" ], + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o" => [ + "providers/implementations/signature/ml_dsa_sig.c" + ], "providers/implementations/signature/libfips-lib-rsa_sig.o" => [ "providers/implementations/signature/rsa_sig.c" ], + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o" => [ + "providers/implementations/signature/slh_dsa_sig.c" + ], + "providers/implementations/skeymgmt/libdefault-lib-aes_skmgmt.o" => [ + "providers/implementations/skeymgmt/aes_skmgmt.c" + ], + "providers/implementations/skeymgmt/libdefault-lib-generic.o" => [ + "providers/implementations/skeymgmt/generic.c" + ], + "providers/implementations/skeymgmt/libfips-lib-aes_skmgmt.o" => [ + "providers/implementations/skeymgmt/aes_skmgmt.c" + ], + "providers/implementations/skeymgmt/libfips-lib-generic.o" => [ + "providers/implementations/skeymgmt/generic.c" + ], "providers/implementations/storemgmt/libdefault-lib-file_store.o" => [ "providers/implementations/storemgmt/file_store.c" ], "providers/implementations/storemgmt/libdefault-lib-file_store_any2obj.o" => [ "providers/implementations/storemgmt/file_store_any2obj.c" ], + "providers/implementations/storemgmt/libdefault-lib-winstore_store.o" => [ + "providers/implementations/storemgmt/winstore_store.c" + ], "providers/legacy" => [ "providers/legacy-dso-legacy.res", "providers/legacy-dso-legacyprov.o", @@ -25332,8 +29571,12 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ec_sig.o", "providers/common/der/libcommon-lib-der_ecx_gen.o", "providers/common/der/libcommon-lib-der_ecx_key.o", + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o", + "providers/common/der/libcommon-lib-der_ml_dsa_key.o", "providers/common/der/libcommon-lib-der_rsa_gen.o", "providers/common/der/libcommon-lib-der_rsa_key.o", + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o", + "providers/common/der/libcommon-lib-der_slh_dsa_key.o", "providers/common/der/libcommon-lib-der_wrap_gen.o", "providers/common/libcommon-lib-provider_ctx.o", "providers/common/libcommon-lib-provider_err.o", @@ -25345,7 +29588,7 @@ our %unified_info = ( "providers/implementations/ciphers/libcommon-lib-ciphercommon_gcm_hw.o", "providers/implementations/ciphers/libcommon-lib-ciphercommon_hw.o", "providers/implementations/digests/libcommon-lib-digestcommon.o", - "ssl/record/libcommon-lib-tls_pad.o" + "ssl/record/methods/libcommon-lib-tls_pad.o" ], "providers/libcrypto-lib-baseprov.o" => [ "providers/baseprov.c" @@ -25381,6 +29624,9 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_aes_ccm_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_polyval.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_ocb.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_ocb_hw.o", @@ -25405,7 +29651,13 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_cts.o", "providers/implementations/ciphers/libdefault-lib-cipher_null.o", "providers/implementations/ciphers/libdefault-lib-cipher_sm4.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_sm4_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes_common.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes_default.o", @@ -25434,11 +29686,16 @@ our %unified_info = ( "providers/implementations/encode_decode/libdefault-lib-encode_key2ms.o", "providers/implementations/encode_decode/libdefault-lib-encode_key2text.o", "providers/implementations/encode_decode/libdefault-lib-endecoder_common.o", + "providers/implementations/encode_decode/libdefault-lib-ml_common_codecs.o", + "providers/implementations/encode_decode/libdefault-lib-ml_dsa_codecs.o", + "providers/implementations/encode_decode/libdefault-lib-ml_kem_codecs.o", "providers/implementations/exchange/libdefault-lib-dh_exch.o", "providers/implementations/exchange/libdefault-lib-ecdh_exch.o", "providers/implementations/exchange/libdefault-lib-ecx_exch.o", "providers/implementations/exchange/libdefault-lib-kdf_exch.o", + "providers/implementations/kdfs/libdefault-lib-argon2.o", "providers/implementations/kdfs/libdefault-lib-hkdf.o", + "providers/implementations/kdfs/libdefault-lib-hmacdrbg_kdf.o", "providers/implementations/kdfs/libdefault-lib-kbkdf.o", "providers/implementations/kdfs/libdefault-lib-krb5kdf.o", "providers/implementations/kdfs/libdefault-lib-pbkdf2.o", @@ -25449,6 +29706,11 @@ our %unified_info = ( "providers/implementations/kdfs/libdefault-lib-sskdf.o", "providers/implementations/kdfs/libdefault-lib-tls1_prf.o", "providers/implementations/kdfs/libdefault-lib-x942kdf.o", + "providers/implementations/kem/libdefault-lib-ec_kem.o", + "providers/implementations/kem/libdefault-lib-ecx_kem.o", + "providers/implementations/kem/libdefault-lib-kem_util.o", + "providers/implementations/kem/libdefault-lib-ml_kem_kem.o", + "providers/implementations/kem/libdefault-lib-mlx_kem.o", "providers/implementations/kem/libdefault-lib-rsa_kem.o", "providers/implementations/keymgmt/libdefault-lib-dh_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-dsa_kmgmt.o", @@ -25456,7 +29718,11 @@ our %unified_info = ( "providers/implementations/keymgmt/libdefault-lib-ecx_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-kdf_legacy_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-mac_legacy_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-ml_dsa_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-ml_kem_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-mlx_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-rsa_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-slh_dsa_kmgmt.o", "providers/implementations/macs/libdefault-lib-blake2b_mac.o", "providers/implementations/macs/libdefault-lib-blake2s_mac.o", "providers/implementations/macs/libdefault-lib-cmac_prov.o", @@ -25465,12 +29731,12 @@ our %unified_info = ( "providers/implementations/macs/libdefault-lib-kmac_prov.o", "providers/implementations/macs/libdefault-lib-poly1305_prov.o", "providers/implementations/macs/libdefault-lib-siphash_prov.o", - "providers/implementations/rands/libdefault-lib-crngt.o", "providers/implementations/rands/libdefault-lib-drbg.o", "providers/implementations/rands/libdefault-lib-drbg_ctr.o", "providers/implementations/rands/libdefault-lib-drbg_hash.o", "providers/implementations/rands/libdefault-lib-drbg_hmac.o", "providers/implementations/rands/libdefault-lib-seed_src.o", + "providers/implementations/rands/libdefault-lib-seed_src_jitter.o", "providers/implementations/rands/libdefault-lib-test_rng.o", "providers/implementations/rands/seeding/libdefault-lib-rand_cpu_x86.o", "providers/implementations/rands/seeding/libdefault-lib-rand_tsc.o", @@ -25480,11 +29746,16 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-ecdsa_sig.o", "providers/implementations/signature/libdefault-lib-eddsa_sig.o", "providers/implementations/signature/libdefault-lib-mac_legacy_sig.o", + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o", "providers/implementations/signature/libdefault-lib-rsa_sig.o", + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o", "providers/implementations/signature/libdefault-lib-sm2_sig.o", + "providers/implementations/skeymgmt/libdefault-lib-aes_skmgmt.o", + "providers/implementations/skeymgmt/libdefault-lib-generic.o", "providers/implementations/storemgmt/libdefault-lib-file_store.o", "providers/implementations/storemgmt/libdefault-lib-file_store_any2obj.o", - "ssl/libdefault-lib-s3_cbc.o" + "providers/implementations/storemgmt/libdefault-lib-winstore_store.o", + "ssl/record/methods/libdefault-lib-ssl3_cbc.o" ], "providers/libfips.a" => [ "crypto/aes/libfips-lib-aes-586.o", @@ -25592,14 +29863,15 @@ our %unified_info = ( "crypto/evp/libfips-lib-kem.o", "crypto/evp/libfips-lib-keymgmt_lib.o", "crypto/evp/libfips-lib-keymgmt_meth.o", - "crypto/evp/libfips-lib-m_sigver.o", "crypto/evp/libfips-lib-mac_lib.o", "crypto/evp/libfips-lib-mac_meth.o", "crypto/evp/libfips-lib-p_lib.o", "crypto/evp/libfips-lib-pmeth_check.o", "crypto/evp/libfips-lib-pmeth_gn.o", "crypto/evp/libfips-lib-pmeth_lib.o", + "crypto/evp/libfips-lib-s_lib.o", "crypto/evp/libfips-lib-signature.o", + "crypto/evp/libfips-lib-skeymgmt_meth.o", "crypto/ffc/libfips-lib-ffc_backend.o", "crypto/ffc/libfips-lib-ffc_dh.o", "crypto/ffc/libfips-lib-ffc_key_generate.o", @@ -25607,6 +29879,8 @@ our %unified_info = ( "crypto/ffc/libfips-lib-ffc_params.o", "crypto/ffc/libfips-lib-ffc_params_generate.o", "crypto/ffc/libfips-lib-ffc_params_validate.o", + "crypto/hashtable/libfips-lib-hashfunc.o", + "crypto/hashtable/libfips-lib-hashtable.o", "crypto/hmac/libfips-lib-hmac.o", "crypto/lhash/libfips-lib-lhash.o", "crypto/libfips-lib-asn1_dsa.o", @@ -25628,6 +29902,7 @@ our %unified_info = ( "crypto/libfips-lib-params.o", "crypto/libfips-lib-params_dup.o", "crypto/libfips-lib-params_from_text.o", + "crypto/libfips-lib-params_idx.o", "crypto/libfips-lib-provider_core.o", "crypto/libfips-lib-provider_predefined.o", "crypto/libfips-lib-self_test_core.o", @@ -25636,7 +29911,17 @@ our %unified_info = ( "crypto/libfips-lib-threads_none.o", "crypto/libfips-lib-threads_pthread.o", "crypto/libfips-lib-threads_win.o", + "crypto/libfips-lib-time.o", "crypto/libfips-lib-x86cpuid.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_encoders.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_key.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_key_compress.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_matrix.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_ntt.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_params.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_sample.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_sign.o", + "crypto/ml_kem/libfips-lib-ml_kem.o", "crypto/modes/libfips-lib-cbc128.o", "crypto/modes/libfips-lib-ccm128.o", "crypto/modes/libfips-lib-cfb128.o", @@ -25646,6 +29931,7 @@ our %unified_info = ( "crypto/modes/libfips-lib-ofb128.o", "crypto/modes/libfips-lib-wrap128.o", "crypto/modes/libfips-lib-xts128.o", + "crypto/modes/libfips-lib-xts128gb.o", "crypto/property/libfips-lib-defn_cache.o", "crypto/property/libfips-lib-property.o", "crypto/property/libfips-lib-property_parse.o", @@ -25677,7 +29963,23 @@ our %unified_info = ( "crypto/sha/libfips-lib-sha3.o", "crypto/sha/libfips-lib-sha512-586.o", "crypto/sha/libfips-lib-sha512.o", + "crypto/slh_dsa/libfips-lib-slh_adrs.o", + "crypto/slh_dsa/libfips-lib-slh_dsa.o", + "crypto/slh_dsa/libfips-lib-slh_dsa_hash_ctx.o", + "crypto/slh_dsa/libfips-lib-slh_dsa_key.o", + "crypto/slh_dsa/libfips-lib-slh_fors.o", + "crypto/slh_dsa/libfips-lib-slh_hash.o", + "crypto/slh_dsa/libfips-lib-slh_hypertree.o", + "crypto/slh_dsa/libfips-lib-slh_params.o", + "crypto/slh_dsa/libfips-lib-slh_wots.o", + "crypto/slh_dsa/libfips-lib-slh_xmss.o", "crypto/stack/libfips-lib-stack.o", + "crypto/thread/arch/libfips-lib-thread_none.o", + "crypto/thread/arch/libfips-lib-thread_posix.o", + "crypto/thread/arch/libfips-lib-thread_win.o", + "crypto/thread/libfips-lib-api.o", + "crypto/thread/libfips-lib-arch.o", + "crypto/thread/libfips-lib-internal.o", "providers/common/der/libfips-lib-der_rsa_sig.o", "providers/common/libfips-lib-bio_prov.o", "providers/common/libfips-lib-capabilities.o", @@ -25686,6 +29988,7 @@ our %unified_info = ( "providers/common/libfips-lib-provider_util.o", "providers/common/libfips-lib-securitycheck.o", "providers/common/libfips-lib-securitycheck_fips.o", + "providers/fips/libfips-lib-fipsindicator.o", "providers/fips/libfips-lib-fipsprov.o", "providers/fips/libfips-lib-self_test.o", "providers/fips/libfips-lib-self_test_kats.o", @@ -25723,6 +30026,8 @@ our %unified_info = ( "providers/implementations/kdfs/libfips-lib-sskdf.o", "providers/implementations/kdfs/libfips-lib-tls1_prf.o", "providers/implementations/kdfs/libfips-lib-x942kdf.o", + "providers/implementations/kem/libfips-lib-ml_kem_kem.o", + "providers/implementations/kem/libfips-lib-mlx_kem.o", "providers/implementations/kem/libfips-lib-rsa_kem.o", "providers/implementations/keymgmt/libfips-lib-dh_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-dsa_kmgmt.o", @@ -25730,24 +30035,32 @@ our %unified_info = ( "providers/implementations/keymgmt/libfips-lib-ecx_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-kdf_legacy_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-mac_legacy_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-ml_dsa_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-ml_kem_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-mlx_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-rsa_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-slh_dsa_kmgmt.o", "providers/implementations/macs/libfips-lib-cmac_prov.o", "providers/implementations/macs/libfips-lib-gmac_prov.o", "providers/implementations/macs/libfips-lib-hmac_prov.o", "providers/implementations/macs/libfips-lib-kmac_prov.o", - "providers/implementations/rands/libfips-lib-crngt.o", "providers/implementations/rands/libfips-lib-drbg.o", "providers/implementations/rands/libfips-lib-drbg_ctr.o", "providers/implementations/rands/libfips-lib-drbg_hash.o", "providers/implementations/rands/libfips-lib-drbg_hmac.o", + "providers/implementations/rands/libfips-lib-fips_crng_test.o", "providers/implementations/rands/libfips-lib-test_rng.o", "providers/implementations/signature/libfips-lib-dsa_sig.o", "providers/implementations/signature/libfips-lib-ecdsa_sig.o", "providers/implementations/signature/libfips-lib-eddsa_sig.o", "providers/implementations/signature/libfips-lib-mac_legacy_sig.o", + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o", "providers/implementations/signature/libfips-lib-rsa_sig.o", + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o", + "providers/implementations/skeymgmt/libfips-lib-aes_skmgmt.o", + "providers/implementations/skeymgmt/libfips-lib-generic.o", "providers/libcommon.a", - "ssl/libfips-lib-s3_cbc.o" + "ssl/record/methods/libfips-lib-ssl3_cbc.o" ], "providers/liblegacy-lib-prov_running.o" => [ "providers/prov_running.c" @@ -25777,13 +30090,12 @@ our %unified_info = ( "providers/implementations/digests/liblegacy-lib-ripemd_prov.o", "providers/implementations/digests/liblegacy-lib-wp_prov.o", "providers/implementations/kdfs/liblegacy-lib-pbkdf1.o", + "providers/implementations/kdfs/liblegacy-lib-pvkkdf.o", "providers/liblegacy-lib-prov_running.o" ], - "ssl/libdefault-lib-s3_cbc.o" => [ - "ssl/s3_cbc.c" - ], - "ssl/libfips-lib-s3_cbc.o" => [ - "ssl/s3_cbc.c" + "providers/libtemplate.a" => [ + "providers/implementations/kem/libtemplate-lib-template_kem.o", + "providers/implementations/keymgmt/libtemplate-lib-template_kmgmt.o" ], "ssl/libssl-lib-bio_ssl.o" => [ "ssl/bio_ssl.c" @@ -25803,6 +30115,9 @@ our %unified_info = ( "ssl/libssl-lib-pqueue.o" => [ "ssl/pqueue.c" ], + "ssl/libssl-lib-priority_queue.o" => [ + "ssl/priority_queue.c" + ], "ssl/libssl-lib-s3_enc.o" => [ "ssl/s3_enc.c" ], @@ -25818,15 +30133,15 @@ our %unified_info = ( "ssl/libssl-lib-ssl_cert.o" => [ "ssl/ssl_cert.c" ], + "ssl/libssl-lib-ssl_cert_comp.o" => [ + "ssl/ssl_cert_comp.c" + ], "ssl/libssl-lib-ssl_ciph.o" => [ "ssl/ssl_ciph.c" ], "ssl/libssl-lib-ssl_conf.o" => [ "ssl/ssl_conf.c" ], - "ssl/libssl-lib-ssl_err.o" => [ - "ssl/ssl_err.c" - ], "ssl/libssl-lib-ssl_err_legacy.o" => [ "ssl/ssl_err_legacy.c" ], @@ -25875,11 +30190,131 @@ our %unified_info = ( "ssl/libssl-lib-tls_srp.o" => [ "ssl/tls_srp.c" ], - "ssl/record/libcommon-lib-tls_pad.o" => [ - "ssl/record/tls_pad.c" + "ssl/quic/libssl-lib-cc_newreno.o" => [ + "ssl/quic/cc_newreno.c" + ], + "ssl/quic/libssl-lib-json_enc.o" => [ + "ssl/quic/json_enc.c" + ], + "ssl/quic/libssl-lib-qlog.o" => [ + "ssl/quic/qlog.c" + ], + "ssl/quic/libssl-lib-qlog_event_helpers.o" => [ + "ssl/quic/qlog_event_helpers.c" + ], + "ssl/quic/libssl-lib-quic_ackm.o" => [ + "ssl/quic/quic_ackm.c" + ], + "ssl/quic/libssl-lib-quic_cfq.o" => [ + "ssl/quic/quic_cfq.c" + ], + "ssl/quic/libssl-lib-quic_channel.o" => [ + "ssl/quic/quic_channel.c" + ], + "ssl/quic/libssl-lib-quic_demux.o" => [ + "ssl/quic/quic_demux.c" + ], + "ssl/quic/libssl-lib-quic_engine.o" => [ + "ssl/quic/quic_engine.c" + ], + "ssl/quic/libssl-lib-quic_fc.o" => [ + "ssl/quic/quic_fc.c" + ], + "ssl/quic/libssl-lib-quic_fifd.o" => [ + "ssl/quic/quic_fifd.c" + ], + "ssl/quic/libssl-lib-quic_impl.o" => [ + "ssl/quic/quic_impl.c" + ], + "ssl/quic/libssl-lib-quic_lcidm.o" => [ + "ssl/quic/quic_lcidm.c" + ], + "ssl/quic/libssl-lib-quic_method.o" => [ + "ssl/quic/quic_method.c" + ], + "ssl/quic/libssl-lib-quic_obj.o" => [ + "ssl/quic/quic_obj.c" + ], + "ssl/quic/libssl-lib-quic_port.o" => [ + "ssl/quic/quic_port.c" + ], + "ssl/quic/libssl-lib-quic_rcidm.o" => [ + "ssl/quic/quic_rcidm.c" + ], + "ssl/quic/libssl-lib-quic_reactor.o" => [ + "ssl/quic/quic_reactor.c" + ], + "ssl/quic/libssl-lib-quic_reactor_wait_ctx.o" => [ + "ssl/quic/quic_reactor_wait_ctx.c" + ], + "ssl/quic/libssl-lib-quic_record_rx.o" => [ + "ssl/quic/quic_record_rx.c" + ], + "ssl/quic/libssl-lib-quic_record_shared.o" => [ + "ssl/quic/quic_record_shared.c" + ], + "ssl/quic/libssl-lib-quic_record_tx.o" => [ + "ssl/quic/quic_record_tx.c" + ], + "ssl/quic/libssl-lib-quic_record_util.o" => [ + "ssl/quic/quic_record_util.c" ], - "ssl/record/libssl-lib-dtls1_bitmap.o" => [ - "ssl/record/dtls1_bitmap.c" + "ssl/quic/libssl-lib-quic_rstream.o" => [ + "ssl/quic/quic_rstream.c" + ], + "ssl/quic/libssl-lib-quic_rx_depack.o" => [ + "ssl/quic/quic_rx_depack.c" + ], + "ssl/quic/libssl-lib-quic_sf_list.o" => [ + "ssl/quic/quic_sf_list.c" + ], + "ssl/quic/libssl-lib-quic_srt_gen.o" => [ + "ssl/quic/quic_srt_gen.c" + ], + "ssl/quic/libssl-lib-quic_srtm.o" => [ + "ssl/quic/quic_srtm.c" + ], + "ssl/quic/libssl-lib-quic_sstream.o" => [ + "ssl/quic/quic_sstream.c" + ], + "ssl/quic/libssl-lib-quic_statm.o" => [ + "ssl/quic/quic_statm.c" + ], + "ssl/quic/libssl-lib-quic_stream_map.o" => [ + "ssl/quic/quic_stream_map.c" + ], + "ssl/quic/libssl-lib-quic_thread_assist.o" => [ + "ssl/quic/quic_thread_assist.c" + ], + "ssl/quic/libssl-lib-quic_tls.o" => [ + "ssl/quic/quic_tls.c" + ], + "ssl/quic/libssl-lib-quic_tls_api.o" => [ + "ssl/quic/quic_tls_api.c" + ], + "ssl/quic/libssl-lib-quic_trace.o" => [ + "ssl/quic/quic_trace.c" + ], + "ssl/quic/libssl-lib-quic_tserver.o" => [ + "ssl/quic/quic_tserver.c" + ], + "ssl/quic/libssl-lib-quic_txp.o" => [ + "ssl/quic/quic_txp.c" + ], + "ssl/quic/libssl-lib-quic_txpim.o" => [ + "ssl/quic/quic_txpim.c" + ], + "ssl/quic/libssl-lib-quic_types.o" => [ + "ssl/quic/quic_types.c" + ], + "ssl/quic/libssl-lib-quic_wire.o" => [ + "ssl/quic/quic_wire.c" + ], + "ssl/quic/libssl-lib-quic_wire_pkt.o" => [ + "ssl/quic/quic_wire_pkt.c" + ], + "ssl/quic/libssl-lib-uint_set.o" => [ + "ssl/quic/uint_set.c" ], "ssl/record/libssl-lib-rec_layer_d1.o" => [ "ssl/record/rec_layer_d1.c" @@ -25887,14 +30322,44 @@ our %unified_info = ( "ssl/record/libssl-lib-rec_layer_s3.o" => [ "ssl/record/rec_layer_s3.c" ], - "ssl/record/libssl-lib-ssl3_buffer.o" => [ - "ssl/record/ssl3_buffer.c" + "ssl/record/methods/libcommon-lib-tls_pad.o" => [ + "ssl/record/methods/tls_pad.c" + ], + "ssl/record/methods/libdefault-lib-ssl3_cbc.o" => [ + "ssl/record/methods/ssl3_cbc.c" + ], + "ssl/record/methods/libfips-lib-ssl3_cbc.o" => [ + "ssl/record/methods/ssl3_cbc.c" + ], + "ssl/record/methods/libssl-lib-dtls_meth.o" => [ + "ssl/record/methods/dtls_meth.c" + ], + "ssl/record/methods/libssl-lib-ssl3_meth.o" => [ + "ssl/record/methods/ssl3_meth.c" + ], + "ssl/record/methods/libssl-lib-tls13_meth.o" => [ + "ssl/record/methods/tls13_meth.c" + ], + "ssl/record/methods/libssl-lib-tls1_meth.o" => [ + "ssl/record/methods/tls1_meth.c" ], - "ssl/record/libssl-lib-ssl3_record.o" => [ - "ssl/record/ssl3_record.c" + "ssl/record/methods/libssl-lib-tls_common.o" => [ + "ssl/record/methods/tls_common.c" ], - "ssl/record/libssl-lib-ssl3_record_tls13.o" => [ - "ssl/record/ssl3_record_tls13.c" + "ssl/record/methods/libssl-lib-tls_multib.o" => [ + "ssl/record/methods/tls_multib.c" + ], + "ssl/record/methods/libssl-lib-tlsany_meth.o" => [ + "ssl/record/methods/tlsany_meth.c" + ], + "ssl/rio/libssl-lib-poll_builder.o" => [ + "ssl/rio/poll_builder.c" + ], + "ssl/rio/libssl-lib-poll_immediate.o" => [ + "ssl/rio/poll_immediate.c" + ], + "ssl/rio/libssl-lib-rio_notifier.o" => [ + "ssl/rio/rio_notifier.c" ], "ssl/statem/libssl-lib-extensions.o" => [ "ssl/statem/extensions.c" @@ -25990,6 +30455,8 @@ our %unified_info = ( "test/asn1_string_table_test.c" ], "test/asn1_time_test" => [ + "crypto/asn1/asn1_time_test-bin-a_time.o", + "crypto/asn1_time_test-bin-ctype.o", "test/asn1_time_test-bin-asn1_time_test.o" ], "test/asn1_time_test-bin-asn1_time_test.o" => [ @@ -26020,6 +30487,18 @@ our %unified_info = ( "test/bftest-bin-bftest.o" => [ "test/bftest.c" ], + "test/bio_addr_test" => [ + "test/bio_addr_test-bin-bio_addr_test.o" + ], + "test/bio_addr_test-bin-bio_addr_test.o" => [ + "test/bio_addr_test.c" + ], + "test/bio_base64_test" => [ + "test/bio_base64_test-bin-bio_base64_test.o" + ], + "test/bio_base64_test-bin-bio_base64_test.o" => [ + "test/bio_base64_test.c" + ], "test/bio_callback_test" => [ "test/bio_callback_test-bin-bio_callback_test.o" ], @@ -26032,6 +30511,12 @@ our %unified_info = ( "test/bio_core_test-bin-bio_core_test.o" => [ "test/bio_core_test.c" ], + "test/bio_dgram_test" => [ + "test/bio_dgram_test-bin-bio_dgram_test.o" + ], + "test/bio_dgram_test-bin-bio_dgram_test.o" => [ + "test/bio_dgram_test.c" + ], "test/bio_enc_test" => [ "test/bio_enc_test-bin-bio_enc_test.o" ], @@ -26044,6 +30529,12 @@ our %unified_info = ( "test/bio_memleak_test-bin-bio_memleak_test.o" => [ "test/bio_memleak_test.c" ], + "test/bio_meth_test" => [ + "test/bio_meth_test-bin-bio_meth_test.o" + ], + "test/bio_meth_test-bin-bio_meth_test.o" => [ + "test/bio_meth_test.c" + ], "test/bio_prefix_text" => [ "test/bio_prefix_text-bin-bio_prefix_text.o" ], @@ -26062,6 +30553,12 @@ our %unified_info = ( "test/bio_readbuffer_test-bin-bio_readbuffer_test.o" => [ "test/bio_readbuffer_test.c" ], + "test/bio_tfo_test" => [ + "test/bio_tfo_test-bin-bio_tfo_test.o" + ], + "test/bio_tfo_test-bin-bio_tfo_test.o" => [ + "test/bio_tfo_test.c" + ], "test/bioprinttest" => [ "test/bioprinttest-bin-bioprinttest.o" ], @@ -26080,6 +30577,12 @@ our %unified_info = ( "test/bntest-bin-bntest.o" => [ "test/bntest.c" ], + "test/build_wincrypt_test" => [ + "test/build_wincrypt_test-bin-build_wincrypt_test.o" + ], + "test/build_wincrypt_test-bin-build_wincrypt_test.o" => [ + "test/build_wincrypt_test.c" + ], "test/buildtest_c_aes" => [ "test/buildtest_c_aes-bin-buildtest_aes.o" ], @@ -26110,6 +30613,12 @@ our %unified_info = ( "test/buildtest_c_buffer-bin-buildtest_buffer.o" => [ "test/buildtest_buffer.c" ], + "test/buildtest_c_byteorder" => [ + "test/buildtest_c_byteorder-bin-buildtest_byteorder.o" + ], + "test/buildtest_c_byteorder-bin-buildtest_byteorder.o" => [ + "test/buildtest_byteorder.c" + ], "test/buildtest_c_camellia" => [ "test/buildtest_c_camellia-bin-buildtest_camellia.o" ], @@ -26158,12 +30667,6 @@ our %unified_info = ( "test/buildtest_c_core_dispatch-bin-buildtest_core_dispatch.o" => [ "test/buildtest_core_dispatch.c" ], - "test/buildtest_c_core_names" => [ - "test/buildtest_c_core_names-bin-buildtest_core_names.o" - ], - "test/buildtest_c_core_names-bin-buildtest_core_names.o" => [ - "test/buildtest_core_names.c" - ], "test/buildtest_c_core_object" => [ "test/buildtest_c_core_object-bin-buildtest_core_object.o" ], @@ -26212,6 +30715,12 @@ our %unified_info = ( "test/buildtest_c_e_os2-bin-buildtest_e_os2.o" => [ "test/buildtest_e_os2.c" ], + "test/buildtest_c_e_ostime" => [ + "test/buildtest_c_e_ostime-bin-buildtest_e_ostime.o" + ], + "test/buildtest_c_e_ostime-bin-buildtest_e_ostime.o" => [ + "test/buildtest_e_ostime.c" + ], "test/buildtest_c_ebcdic" => [ "test/buildtest_c_ebcdic-bin-buildtest_ebcdic.o" ], @@ -26266,6 +30775,12 @@ our %unified_info = ( "test/buildtest_c_hmac-bin-buildtest_hmac.o" => [ "test/buildtest_hmac.c" ], + "test/buildtest_c_hpke" => [ + "test/buildtest_c_hpke-bin-buildtest_hpke.o" + ], + "test/buildtest_c_hpke-bin-buildtest_hpke.o" => [ + "test/buildtest_hpke.c" + ], "test/buildtest_c_http" => [ "test/buildtest_c_http-bin-buildtest_http.o" ], @@ -26278,6 +30793,12 @@ our %unified_info = ( "test/buildtest_c_idea-bin-buildtest_idea.o" => [ "test/buildtest_idea.c" ], + "test/buildtest_c_indicator" => [ + "test/buildtest_c_indicator-bin-buildtest_indicator.o" + ], + "test/buildtest_c_indicator-bin-buildtest_indicator.o" => [ + "test/buildtest_indicator.c" + ], "test/buildtest_c_kdf" => [ "test/buildtest_c_kdf-bin-buildtest_kdf.o" ], @@ -26308,6 +30829,12 @@ our %unified_info = ( "test/buildtest_c_mdc2-bin-buildtest_mdc2.o" => [ "test/buildtest_mdc2.c" ], + "test/buildtest_c_ml_kem" => [ + "test/buildtest_c_ml_kem-bin-buildtest_ml_kem.o" + ], + "test/buildtest_c_ml_kem-bin-buildtest_ml_kem.o" => [ + "test/buildtest_ml_kem.c" + ], "test/buildtest_c_modes" => [ "test/buildtest_c_modes-bin-buildtest_modes.o" ], @@ -26368,6 +30895,12 @@ our %unified_info = ( "test/buildtest_c_provider-bin-buildtest_provider.o" => [ "test/buildtest_provider.c" ], + "test/buildtest_c_quic" => [ + "test/buildtest_c_quic-bin-buildtest_quic.o" + ], + "test/buildtest_c_quic-bin-buildtest_quic.o" => [ + "test/buildtest_quic.c" + ], "test/buildtest_c_rand" => [ "test/buildtest_c_rand-bin-buildtest_rand.o" ], @@ -26452,6 +30985,12 @@ our %unified_info = ( "test/buildtest_c_symhacks-bin-buildtest_symhacks.o" => [ "test/buildtest_symhacks.c" ], + "test/buildtest_c_thread" => [ + "test/buildtest_c_thread-bin-buildtest_thread.o" + ], + "test/buildtest_c_thread-bin-buildtest_thread.o" => [ + "test/buildtest_thread.c" + ], "test/buildtest_c_tls1" => [ "test/buildtest_c_tls1-bin-buildtest_tls1.o" ], @@ -26482,6 +31021,29 @@ our %unified_info = ( "test/buildtest_c_whrlpool-bin-buildtest_whrlpool.o" => [ "test/buildtest_whrlpool.c" ], + "test/byteorder_test" => [ + "test/byteorder_test-bin-byteorder_test.o" + ], + "test/byteorder_test-bin-byteorder_test.o" => [ + "test/byteorder_test.c" + ], + "test/ca_internals_test" => [ + "apps/ca_internals_test-bin-ca.o", + "apps/lib/ca_internals_test-bin-app_libctx.o", + "apps/lib/ca_internals_test-bin-app_provider.o", + "apps/lib/ca_internals_test-bin-app_rand.o", + "apps/lib/ca_internals_test-bin-app_x509.o", + "apps/lib/ca_internals_test-bin-apps.o", + "apps/lib/ca_internals_test-bin-apps_ui.o", + "apps/lib/ca_internals_test-bin-engine.o", + "apps/lib/ca_internals_test-bin-fmt.o", + "crypto/asn1/ca_internals_test-bin-a_time.o", + "crypto/ca_internals_test-bin-ctype.o", + "test/ca_internals_test-bin-ca_internals_test.o" + ], + "test/ca_internals_test-bin-ca_internals_test.o" => [ + "test/ca_internals_test.c" + ], "test/casttest" => [ "test/casttest-bin-casttest.o" ], @@ -26660,6 +31222,12 @@ our %unified_info = ( "test/danetest-bin-danetest.o" => [ "test/danetest.c" ], + "test/decoder_propq_test" => [ + "test/decoder_propq_test-bin-decoder_propq_test.o" + ], + "test/decoder_propq_test-bin-decoder_propq_test.o" => [ + "test/decoder_propq_test.c" + ], "test/defltfips_test" => [ "test/defltfips_test-bin-defltfips_test.o" ], @@ -26741,6 +31309,7 @@ our %unified_info = ( "test/ectest.c" ], "test/endecode_test" => [ + "providers/endecode_test-bin-legacyprov.o", "test/endecode_test-bin-endecode_test.o", "test/helpers/endecode_test-bin-predefined_dhparams.o" ], @@ -26773,17 +31342,29 @@ our %unified_info = ( ], "test/evp_extra_test" => [ "providers/evp_extra_test-bin-legacyprov.o", - "test/evp_extra_test-bin-evp_extra_test.o" + "test/evp_extra_test-bin-evp_extra_test.o", + "test/evp_extra_test-bin-fake_pipelineprov.o", + "test/evp_extra_test-bin-fake_rsaprov.o" ], "test/evp_extra_test-bin-evp_extra_test.o" => [ "test/evp_extra_test.c" ], + "test/evp_extra_test-bin-fake_pipelineprov.o" => [ + "test/fake_pipelineprov.c" + ], + "test/evp_extra_test-bin-fake_rsaprov.o" => [ + "test/fake_rsaprov.c" + ], "test/evp_extra_test2" => [ - "test/evp_extra_test2-bin-evp_extra_test2.o" + "test/evp_extra_test2-bin-evp_extra_test2.o", + "test/evp_extra_test2-bin-tls-provider.o" ], "test/evp_extra_test2-bin-evp_extra_test2.o" => [ "test/evp_extra_test2.c" ], + "test/evp_extra_test2-bin-tls-provider.o" => [ + "test/tls-provider.c" + ], "test/evp_fetch_prov_test" => [ "test/evp_fetch_prov_test-bin-evp_fetch_prov_test.o" ], @@ -26808,6 +31389,12 @@ our %unified_info = ( "test/evp_pkey_ctx_new_from_name-bin-evp_pkey_ctx_new_from_name.o" => [ "test/evp_pkey_ctx_new_from_name.c" ], + "test/evp_pkey_dhkem_test" => [ + "test/evp_pkey_dhkem_test-bin-evp_pkey_dhkem_test.o" + ], + "test/evp_pkey_dhkem_test-bin-evp_pkey_dhkem_test.o" => [ + "test/evp_pkey_dhkem_test.c" + ], "test/evp_pkey_dparams_test" => [ "test/evp_pkey_dparams_test-bin-evp_pkey_dparams_test.o" ], @@ -26820,12 +31407,28 @@ our %unified_info = ( "test/evp_pkey_provided_test-bin-evp_pkey_provided_test.o" => [ "test/evp_pkey_provided_test.c" ], + "test/evp_skey_test" => [ + "test/evp_skey_test-bin-evp_skey_test.o", + "test/evp_skey_test-bin-fake_cipherprov.o" + ], + "test/evp_skey_test-bin-evp_skey_test.o" => [ + "test/evp_skey_test.c" + ], + "test/evp_skey_test-bin-fake_cipherprov.o" => [ + "test/fake_cipherprov.c" + ], "test/evp_test" => [ "test/evp_test-bin-evp_test.o" ], "test/evp_test-bin-evp_test.o" => [ "test/evp_test.c" ], + "test/evp_xof_test" => [ + "test/evp_xof_test-bin-evp_xof_test.o" + ], + "test/evp_xof_test-bin-evp_xof_test.o" => [ + "test/evp_xof_test.c" + ], "test/exdatatest" => [ "test/exdatatest-bin-exdatatest.o" ], @@ -26911,15 +31514,108 @@ our %unified_info = ( "test/helpers/fatalerrtest-bin-ssltestlib.o" => [ "test/helpers/ssltestlib.c" ], + "test/helpers/json_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/json_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/json_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/json_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/pkcs12_api_test-bin-pkcs12.o" => [ + "test/helpers/pkcs12.c" + ], "test/helpers/pkcs12_format_test-bin-pkcs12.o" => [ "test/helpers/pkcs12.c" ], + "test/helpers/quic_multistream_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quic_multistream_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quic_multistream_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quic_multistream_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quic_newcid_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quic_newcid_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quic_newcid_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quic_newcid_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quic_radix_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quic_radix_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quic_radix_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quic_radix_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quic_srt_gen_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quic_srt_gen_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quic_srt_gen_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quic_srt_gen_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quicapitest-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quicapitest-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quicapitest-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quicapitest-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quicfaultstest-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quicfaultstest-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quicfaultstest-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quicfaultstest-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], "test/helpers/recordlentest-bin-ssltestlib.o" => [ "test/helpers/ssltestlib.c" ], + "test/helpers/rpktest-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], "test/helpers/servername_test-bin-ssltestlib.o" => [ "test/helpers/ssltestlib.c" ], + "test/helpers/ssl_handshake_rtt_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], "test/helpers/ssl_old_test-bin-predefined_dhparams.o" => [ "test/helpers/predefined_dhparams.c" ], @@ -26947,6 +31643,9 @@ our %unified_info = ( "test/helpers/tls13ccstest-bin-ssltestlib.o" => [ "test/helpers/ssltestlib.c" ], + "test/helpers/tls13groupselection_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], "test/hexstr_test" => [ "test/hexstr_test-bin-hexstr_test.o" ], @@ -26959,6 +31658,12 @@ our %unified_info = ( "test/hmactest-bin-hmactest.o" => [ "test/hmactest.c" ], + "test/hpke_test" => [ + "test/hpke_test-bin-hpke_test.o" + ], + "test/hpke_test-bin-hpke_test.o" => [ + "test/hpke_test.c" + ], "test/http_test" => [ "test/http_test-bin-http_test.o" ], @@ -26977,6 +31682,16 @@ our %unified_info = ( "test/igetest-bin-igetest.o" => [ "test/igetest.c" ], + "test/json_test" => [ + "test/helpers/json_test-bin-noisydgrambio.o", + "test/helpers/json_test-bin-pktsplitbio.o", + "test/helpers/json_test-bin-quictestlib.o", + "test/helpers/json_test-bin-ssltestlib.o", + "test/json_test-bin-json_test.o" + ], + "test/json_test-bin-json_test.o" => [ + "test/json_test.c" + ], "test/keymgmt_internal_test" => [ "test/keymgmt_internal_test-bin-keymgmt_internal_test.o" ], @@ -26998,6 +31713,7 @@ our %unified_info = ( "test/testutil/libtestutil-lib-driver.o", "test/testutil/libtestutil-lib-fake_random.o", "test/testutil/libtestutil-lib-format_output.o", + "test/testutil/libtestutil-lib-helper.o", "test/testutil/libtestutil-lib-load.o", "test/testutil/libtestutil-lib-main.o", "test/testutil/libtestutil-lib-options.o", @@ -27010,6 +31726,12 @@ our %unified_info = ( "test/testutil/libtestutil-lib-tests.o", "test/testutil/libtestutil-lib-testutil_init.o" ], + "test/list_test" => [ + "test/list_test-bin-list_test.o" + ], + "test/list_test-bin-list_test.o" => [ + "test/list_test.c" + ], "test/localetest" => [ "test/localetest-bin-localetest.o" ], @@ -27028,12 +31750,36 @@ our %unified_info = ( "test/mdc2test-bin-mdc2test.o" => [ "test/mdc2test.c" ], + "test/membio_test" => [ + "test/membio_test-bin-membio_test.o" + ], + "test/membio_test-bin-membio_test.o" => [ + "test/membio_test.c" + ], "test/memleaktest" => [ "test/memleaktest-bin-memleaktest.o" ], "test/memleaktest-bin-memleaktest.o" => [ "test/memleaktest.c" ], + "test/ml_dsa_test" => [ + "test/ml_dsa_test-bin-ml_dsa_test.o" + ], + "test/ml_dsa_test-bin-ml_dsa_test.o" => [ + "test/ml_dsa_test.c" + ], + "test/ml_kem_evp_extra_test" => [ + "test/ml_kem_evp_extra_test-bin-ml_kem_evp_extra_test.o" + ], + "test/ml_kem_evp_extra_test-bin-ml_kem_evp_extra_test.o" => [ + "test/ml_kem_evp_extra_test.c" + ], + "test/ml_kem_internal_test" => [ + "test/ml_kem_internal_test-bin-ml_kem_internal_test.o" + ], + "test/ml_kem_internal_test-bin-ml_kem_internal_test.o" => [ + "test/ml_kem_internal_test.c" + ], "test/modes_internal_test" => [ "test/modes_internal_test-bin-modes_internal_test.o" ], @@ -27079,11 +31825,18 @@ our %unified_info = ( "test/p_test.c" ], "test/packettest" => [ + "crypto/packettest-bin-quic_vlint.o", "test/packettest-bin-packettest.o" ], "test/packettest-bin-packettest.o" => [ "test/packettest.c" ], + "test/pairwise_fail_test" => [ + "test/pairwise_fail_test-bin-pairwise_fail_test.o" + ], + "test/pairwise_fail_test-bin-pairwise_fail_test.o" => [ + "test/pairwise_fail_test.c" + ], "test/param_build_test" => [ "test/param_build_test-bin-param_build_test.o" ], @@ -27132,6 +31885,13 @@ our %unified_info = ( "test/pemtest-bin-pemtest.o" => [ "test/pemtest.c" ], + "test/pkcs12_api_test" => [ + "test/helpers/pkcs12_api_test-bin-pkcs12.o", + "test/pkcs12_api_test-bin-pkcs12_api_test.o" + ], + "test/pkcs12_api_test-bin-pkcs12_api_test.o" => [ + "test/pkcs12_api_test.c" + ], "test/pkcs12_format_test" => [ "test/helpers/pkcs12_format_test-bin-pkcs12.o", "test/pkcs12_format_test-bin-pkcs12_format_test.o" @@ -27163,6 +31923,12 @@ our %unified_info = ( "test/poly1305_internal_test-bin-poly1305_internal_test.o" => [ "test/poly1305_internal_test.c" ], + "test/priority_queue_test" => [ + "test/priority_queue_test-bin-priority_queue_test.o" + ], + "test/priority_queue_test-bin-priority_queue_test.o" => [ + "test/priority_queue_test.c" + ], "test/property_test" => [ "test/property_test-bin-property_test.o" ], @@ -27181,6 +31947,12 @@ our %unified_info = ( "test/provfetchtest-bin-provfetchtest.o" => [ "test/provfetchtest.c" ], + "test/provider_default_search_path_test" => [ + "test/provider_default_search_path_test-bin-provider_default_search_path_test.o" + ], + "test/provider_default_search_path_test-bin-provider_default_search_path_test.o" => [ + "test/provider_default_search_path_test.c" + ], "test/provider_fallback_test" => [ "test/provider_fallback_test-bin-provider_fallback_test.o" ], @@ -27229,6 +32001,174 @@ our %unified_info = ( "test/punycode_test-bin-punycode_test.o" => [ "test/punycode_test.c" ], + "test/quic_ackm_test" => [ + "test/quic_ackm_test-bin-cc_dummy.o", + "test/quic_ackm_test-bin-quic_ackm_test.o" + ], + "test/quic_ackm_test-bin-cc_dummy.o" => [ + "test/cc_dummy.c" + ], + "test/quic_ackm_test-bin-quic_ackm_test.o" => [ + "test/quic_ackm_test.c" + ], + "test/quic_cc_test" => [ + "test/quic_cc_test-bin-quic_cc_test.o" + ], + "test/quic_cc_test-bin-quic_cc_test.o" => [ + "test/quic_cc_test.c" + ], + "test/quic_cfq_test" => [ + "test/quic_cfq_test-bin-quic_cfq_test.o" + ], + "test/quic_cfq_test-bin-quic_cfq_test.o" => [ + "test/quic_cfq_test.c" + ], + "test/quic_client_test" => [ + "test/quic_client_test-bin-quic_client_test.o" + ], + "test/quic_client_test-bin-quic_client_test.o" => [ + "test/quic_client_test.c" + ], + "test/quic_fc_test" => [ + "test/quic_fc_test-bin-quic_fc_test.o" + ], + "test/quic_fc_test-bin-quic_fc_test.o" => [ + "test/quic_fc_test.c" + ], + "test/quic_fifd_test" => [ + "test/quic_fifd_test-bin-cc_dummy.o", + "test/quic_fifd_test-bin-quic_fifd_test.o" + ], + "test/quic_fifd_test-bin-cc_dummy.o" => [ + "test/cc_dummy.c" + ], + "test/quic_fifd_test-bin-quic_fifd_test.o" => [ + "test/quic_fifd_test.c" + ], + "test/quic_lcidm_test" => [ + "test/quic_lcidm_test-bin-quic_lcidm_test.o" + ], + "test/quic_lcidm_test-bin-quic_lcidm_test.o" => [ + "test/quic_lcidm_test.c" + ], + "test/quic_multistream_test" => [ + "test/helpers/quic_multistream_test-bin-noisydgrambio.o", + "test/helpers/quic_multistream_test-bin-pktsplitbio.o", + "test/helpers/quic_multistream_test-bin-quictestlib.o", + "test/helpers/quic_multistream_test-bin-ssltestlib.o", + "test/quic_multistream_test-bin-quic_multistream_test.o" + ], + "test/quic_multistream_test-bin-quic_multistream_test.o" => [ + "test/quic_multistream_test.c" + ], + "test/quic_newcid_test" => [ + "test/helpers/quic_newcid_test-bin-noisydgrambio.o", + "test/helpers/quic_newcid_test-bin-pktsplitbio.o", + "test/helpers/quic_newcid_test-bin-quictestlib.o", + "test/helpers/quic_newcid_test-bin-ssltestlib.o", + "test/quic_newcid_test-bin-quic_newcid_test.o" + ], + "test/quic_newcid_test-bin-quic_newcid_test.o" => [ + "test/quic_newcid_test.c" + ], + "test/quic_qlog_test" => [ + "test/quic_qlog_test-bin-quic_qlog_test.o" + ], + "test/quic_qlog_test-bin-quic_qlog_test.o" => [ + "test/quic_qlog_test.c" + ], + "test/quic_radix_test" => [ + "test/helpers/quic_radix_test-bin-noisydgrambio.o", + "test/helpers/quic_radix_test-bin-pktsplitbio.o", + "test/helpers/quic_radix_test-bin-quictestlib.o", + "test/helpers/quic_radix_test-bin-ssltestlib.o", + "test/radix/quic_radix_test-bin-quic_radix.o" + ], + "test/quic_rcidm_test" => [ + "test/quic_rcidm_test-bin-quic_rcidm_test.o" + ], + "test/quic_rcidm_test-bin-quic_rcidm_test.o" => [ + "test/quic_rcidm_test.c" + ], + "test/quic_record_test" => [ + "test/quic_record_test-bin-quic_record_test.o" + ], + "test/quic_record_test-bin-quic_record_test.o" => [ + "test/quic_record_test.c" + ], + "test/quic_srt_gen_test" => [ + "test/helpers/quic_srt_gen_test-bin-noisydgrambio.o", + "test/helpers/quic_srt_gen_test-bin-pktsplitbio.o", + "test/helpers/quic_srt_gen_test-bin-quictestlib.o", + "test/helpers/quic_srt_gen_test-bin-ssltestlib.o", + "test/quic_srt_gen_test-bin-quic_srt_gen_test.o" + ], + "test/quic_srt_gen_test-bin-quic_srt_gen_test.o" => [ + "test/quic_srt_gen_test.c" + ], + "test/quic_srtm_test" => [ + "test/quic_srtm_test-bin-quic_srtm_test.o" + ], + "test/quic_srtm_test-bin-quic_srtm_test.o" => [ + "test/quic_srtm_test.c" + ], + "test/quic_stream_test" => [ + "test/quic_stream_test-bin-quic_stream_test.o" + ], + "test/quic_stream_test-bin-quic_stream_test.o" => [ + "test/quic_stream_test.c" + ], + "test/quic_tserver_test" => [ + "test/quic_tserver_test-bin-quic_tserver_test.o" + ], + "test/quic_tserver_test-bin-quic_tserver_test.o" => [ + "test/quic_tserver_test.c" + ], + "test/quic_txp_test" => [ + "test/quic_txp_test-bin-cc_dummy.o", + "test/quic_txp_test-bin-quic_txp_test.o" + ], + "test/quic_txp_test-bin-cc_dummy.o" => [ + "test/cc_dummy.c" + ], + "test/quic_txp_test-bin-quic_txp_test.o" => [ + "test/quic_txp_test.c" + ], + "test/quic_txpim_test" => [ + "test/quic_txpim_test-bin-quic_txpim_test.o" + ], + "test/quic_txpim_test-bin-quic_txpim_test.o" => [ + "test/quic_txpim_test.c" + ], + "test/quic_wire_test" => [ + "test/quic_wire_test-bin-quic_wire_test.o" + ], + "test/quic_wire_test-bin-quic_wire_test.o" => [ + "test/quic_wire_test.c" + ], + "test/quicapitest" => [ + "test/helpers/quicapitest-bin-noisydgrambio.o", + "test/helpers/quicapitest-bin-pktsplitbio.o", + "test/helpers/quicapitest-bin-quictestlib.o", + "test/helpers/quicapitest-bin-ssltestlib.o", + "test/quicapitest-bin-quicapitest.o" + ], + "test/quicapitest-bin-quicapitest.o" => [ + "test/quicapitest.c" + ], + "test/quicfaultstest" => [ + "test/helpers/quicfaultstest-bin-noisydgrambio.o", + "test/helpers/quicfaultstest-bin-pktsplitbio.o", + "test/helpers/quicfaultstest-bin-quictestlib.o", + "test/helpers/quicfaultstest-bin-ssltestlib.o", + "test/quicfaultstest-bin-quicfaultstest.o" + ], + "test/quicfaultstest-bin-quicfaultstest.o" => [ + "test/quicfaultstest.c" + ], + "test/radix/quic_radix_test-bin-quic_radix.o" => [ + "test/radix/quic_radix.c" + ], "test/rand_status_test" => [ "test/rand_status_test-bin-rand_status_test.o" ], @@ -27259,11 +32199,11 @@ our %unified_info = ( "test/rc5test-bin-rc5test.o" => [ "test/rc5test.c" ], - "test/rdrand_sanitytest" => [ - "test/rdrand_sanitytest-bin-rdrand_sanitytest.o" + "test/rdcpu_sanitytest" => [ + "test/rdcpu_sanitytest-bin-rdcpu_sanitytest.o" ], - "test/rdrand_sanitytest-bin-rdrand_sanitytest.o" => [ - "test/rdrand_sanitytest.c" + "test/rdcpu_sanitytest-bin-rdcpu_sanitytest.o" => [ + "test/rdcpu_sanitytest.c" ], "test/recordlentest" => [ "test/helpers/recordlentest-bin-ssltestlib.o", @@ -27272,6 +32212,13 @@ our %unified_info = ( "test/recordlentest-bin-recordlentest.o" => [ "test/recordlentest.c" ], + "test/rpktest" => [ + "test/helpers/rpktest-bin-ssltestlib.o", + "test/rpktest-bin-rpktest.o" + ], + "test/rpktest-bin-rpktest.o" => [ + "test/rpktest.c" + ], "test/rsa_complex" => [ "test/rsa_complex-bin-rsa_complex.o" ], @@ -27296,6 +32243,18 @@ our %unified_info = ( "test/rsa_test-bin-rsa_test.o" => [ "test/rsa_test.c" ], + "test/rsa_x931_test" => [ + "test/rsa_x931_test-bin-rsa_x931_test.o" + ], + "test/rsa_x931_test-bin-rsa_x931_test.o" => [ + "test/rsa_x931_test.c" + ], + "test/safe_math_test" => [ + "test/safe_math_test-bin-safe_math_test.o" + ], + "test/safe_math_test-bin-safe_math_test.o" => [ + "test/safe_math_test.c" + ], "test/sanitytest" => [ "test/sanitytest-bin-sanitytest.o" ], @@ -27327,6 +32286,12 @@ our %unified_info = ( "test/siphash_internal_test-bin-siphash_internal_test.o" => [ "test/siphash_internal_test.c" ], + "test/slh_dsa_test" => [ + "test/slh_dsa_test-bin-slh_dsa_test.o" + ], + "test/slh_dsa_test-bin-slh_dsa_test.o" => [ + "test/slh_dsa_test.c" + ], "test/sm2_internal_test" => [ "test/sm2_internal_test-bin-sm2_internal_test.o" ], @@ -27369,6 +32334,13 @@ our %unified_info = ( "test/ssl_ctx_test-bin-ssl_ctx_test.o" => [ "test/ssl_ctx_test.c" ], + "test/ssl_handshake_rtt_test" => [ + "test/helpers/ssl_handshake_rtt_test-bin-ssltestlib.o", + "test/ssl_handshake_rtt_test-bin-ssl_handshake_rtt_test.o" + ], + "test/ssl_handshake_rtt_test-bin-ssl_handshake_rtt_test.o" => [ + "test/ssl_handshake_rtt_test.c" + ], "test/ssl_old_test" => [ "test/helpers/ssl_old_test-bin-predefined_dhparams.o", "test/ssl_old_test-bin-ssl_old_test.o" @@ -27427,6 +32399,12 @@ our %unified_info = ( "test/stack_test-bin-stack_test.o" => [ "test/stack_test.c" ], + "test/strtoultest" => [ + "test/strtoultest-bin-strtoultest.o" + ], + "test/strtoultest-bin-strtoultest.o" => [ + "test/strtoultest.c" + ], "test/sysdefaulttest" => [ "test/sysdefaulttest-bin-sysdefaulttest.o" ], @@ -27457,6 +32435,9 @@ our %unified_info = ( "test/testutil/libtestutil-lib-format_output.o" => [ "test/testutil/format_output.c" ], + "test/testutil/libtestutil-lib-helper.o" => [ + "test/testutil/helper.c" + ], "test/testutil/libtestutil-lib-load.o" => [ "test/testutil/load.c" ], @@ -27490,6 +32471,12 @@ our %unified_info = ( "test/testutil/libtestutil-lib-testutil_init.o" => [ "test/testutil/testutil_init.c" ], + "test/threadpool_test" => [ + "test/threadpool_test-bin-threadpool_test.o" + ], + "test/threadpool_test-bin-threadpool_test.o" => [ + "test/threadpool_test.c" + ], "test/threadstest" => [ "test/threadstest-bin-threadstest.o" ], @@ -27508,6 +32495,12 @@ our %unified_info = ( "test/time_offset_test-bin-time_offset_test.o" => [ "test/time_offset_test.c" ], + "test/time_test" => [ + "test/time_test-bin-time_test.o" + ], + "test/time_test-bin-time_test.o" => [ + "test/time_test.c" + ], "test/tls13ccstest" => [ "test/helpers/tls13ccstest-bin-ssltestlib.o", "test/tls13ccstest-bin-tls13ccstest.o" @@ -27521,6 +32514,13 @@ our %unified_info = ( "test/tls13encryptiontest-bin-tls13encryptiontest.o" => [ "test/tls13encryptiontest.c" ], + "test/tls13groupselection_test" => [ + "test/helpers/tls13groupselection_test-bin-ssltestlib.o", + "test/tls13groupselection_test-bin-tls13groupselection_test.o" + ], + "test/tls13groupselection_test-bin-tls13groupselection_test.o" => [ + "test/tls13groupselection_test.c" + ], "test/trace_api_test" => [ "test/trace_api_test-bin-trace_api_test.o" ], @@ -27576,6 +32576,12 @@ our %unified_info = ( "test/wpackettest-bin-wpackettest.o" => [ "test/wpackettest.c" ], + "test/x509_acert_test" => [ + "test/x509_acert_test-bin-x509_acert_test.o" + ], + "test/x509_acert_test-bin-x509_acert_test.o" => [ + "test/x509_acert_test.c" + ], "test/x509_check_cert_pkey_test" => [ "test/x509_check_cert_pkey_test-bin-x509_check_cert_pkey_test.o" ], @@ -27594,6 +32600,24 @@ our %unified_info = ( "test/x509_internal_test-bin-x509_internal_test.o" => [ "test/x509_internal_test.c" ], + "test/x509_load_cert_file_test" => [ + "test/x509_load_cert_file_test-bin-x509_load_cert_file_test.o" + ], + "test/x509_load_cert_file_test-bin-x509_load_cert_file_test.o" => [ + "test/x509_load_cert_file_test.c" + ], + "test/x509_req_test" => [ + "test/x509_req_test-bin-x509_req_test.o" + ], + "test/x509_req_test-bin-x509_req_test.o" => [ + "test/x509_req_test.c" + ], + "test/x509_test" => [ + "test/x509_test-bin-x509_test.o" + ], + "test/x509_test-bin-x509_test.o" => [ + "test/x509_test.c" + ], "test/x509_time_test" => [ "test/x509_time_test-bin-x509_time_test.o" ], @@ -27654,6 +32678,7 @@ my @makevars = ( "LDLIBS", "MT", "MTFLAGS", + "OBJCOPY", "PERL", "RANLIB", "RC", @@ -27667,6 +32692,12 @@ my %disabled_info = ( "asan" => { "macro" => "OPENSSL_NO_ASAN" }, + "brotli" => { + "macro" => "OPENSSL_NO_BROTLI" + }, + "brotli-dynamic" => { + "macro" => "OPENSSL_NO_BROTLI_DYNAMIC" + }, "comp" => { "macro" => "OPENSSL_NO_COMP", "skipped" => [ @@ -27679,6 +32710,9 @@ my %disabled_info = ( "crypto-mdebug-backtrace" => { "macro" => "OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE" }, + "demos" => { + "macro" => "OPENSSL_NO_DEMOS" + }, "devcryptoeng" => { "macro" => "OPENSSL_NO_DEVCRYPTOENG" }, @@ -27691,12 +32725,24 @@ my %disabled_info = ( "external-tests" => { "macro" => "OPENSSL_NO_EXTERNAL_TESTS" }, + "fips-jitter" => { + "macro" => "OPENSSL_NO_FIPS_JITTER" + }, "fuzz-afl" => { "macro" => "OPENSSL_NO_FUZZ_AFL" }, "fuzz-libfuzzer" => { "macro" => "OPENSSL_NO_FUZZ_LIBFUZZER" }, + "h3demo" => { + "macro" => "OPENSSL_NO_H3DEMO" + }, + "hqinterop" => { + "macro" => "OPENSSL_NO_HQINTEROP" + }, + "jitter" => { + "macro" => "OPENSSL_NO_JITTER" + }, "ktls" => { "macro" => "OPENSSL_NO_KTLS" }, @@ -27712,6 +32758,9 @@ my %disabled_info = ( "msan" => { "macro" => "OPENSSL_NO_MSAN" }, + "pie" => { + "macro" => "OPENSSL_NO_PIE" + }, "rc5" => { "macro" => "OPENSSL_NO_RC5", "skipped" => [ @@ -27727,6 +32776,12 @@ my %disabled_info = ( "ssl3-method" => { "macro" => "OPENSSL_NO_SSL3_METHOD" }, + "sslkeylog" => { + "macro" => "OPENSSL_NO_SSLKEYLOG" + }, + "tfo" => { + "macro" => "OPENSSL_NO_TFO" + }, "trace" => { "macro" => "OPENSSL_NO_TRACE" }, @@ -27741,6 +32796,18 @@ my %disabled_info = ( }, "weak-ssl-ciphers" => { "macro" => "OPENSSL_NO_WEAK_SSL_CIPHERS" + }, + "zlib" => { + "macro" => "OPENSSL_NO_ZLIB" + }, + "zlib-dynamic" => { + "macro" => "OPENSSL_NO_ZLIB_DYNAMIC" + }, + "zstd" => { + "macro" => "OPENSSL_NO_ZSTD" + }, + "zstd-dynamic" => { + "macro" => "OPENSSL_NO_ZSTD_DYNAMIC" } ); my @user_crossable = qw( AR AS CC CXX CPP LD MT RANLIB RC ); @@ -27754,15 +32821,15 @@ unless (caller) { use File::Copy; use Pod::Usage; - use lib '/home/runner/work/node/node/deps/openssl/openssl/util/perl'; - use OpenSSL::fallback '/home/runner/work/node/node/deps/openssl/openssl/external/perl/MODULES.txt'; + use lib '/node/deps/openssl/openssl/util/perl'; + use OpenSSL::fallback '/node/deps/openssl/openssl/external/perl/MODULES.txt'; my $here = dirname($0); if (scalar @ARGV == 0) { # With no arguments, re-create the build file # We do that in two steps, where the first step emits perl - # snipets. + # snippets. my $buildfile = $config{build_file}; my $buildfile_template = "$buildfile.in"; @@ -27782,7 +32849,7 @@ unless (caller) { ); use lib '.'; - use lib '/home/runner/work/node/node/deps/openssl/openssl/Configurations'; + use lib '/node/deps/openssl/openssl/Configurations'; use gentemplate; open my $buildfile_template_fh, ">$buildfile_template" @@ -27799,8 +32866,8 @@ unless (caller) { my $prepend = <<'_____'; use File::Spec::Functions; -use lib '/home/runner/work/node/node/deps/openssl/openssl/util/perl'; -use lib '/home/runner/work/node/node/deps/openssl/openssl/Configurations'; +use lib '/node/deps/openssl/openssl/util/perl'; +use lib '/node/deps/openssl/openssl/Configurations'; use lib '.'; use platform; _____ diff --git a/deps/openssl/config/archs/VC-WIN32/asm/crypto/aes/aes-586.asm b/deps/openssl/config/archs/VC-WIN32/asm/crypto/aes/aes-586.asm index 7a17e847c64a73..a086cffb69f5aa 100644 --- a/deps/openssl/config/archs/VC-WIN32/asm/crypto/aes/aes-586.asm +++ b/deps/openssl/config/archs/VC-WIN32/asm/crypto/aes/aes-586.asm @@ -3208,4 +3208,4 @@ db 65,69,83,32,102,111,114,32,120,56,54,44,32,67,82,89 db 80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114 db 111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 segment .bss -common _OPENSSL_ia32cap_P 16 +common _OPENSSL_ia32cap_P 40 diff --git a/deps/openssl/config/archs/VC-WIN32/asm/crypto/aes/aesni-x86.asm b/deps/openssl/config/archs/VC-WIN32/asm/crypto/aes/aesni-x86.asm index 14abad18102ad1..02f717dfc10da6 100644 --- a/deps/openssl/config/archs/VC-WIN32/asm/crypto/aes/aesni-x86.asm +++ b/deps/openssl/config/archs/VC-WIN32/asm/crypto/aes/aesni-x86.asm @@ -3199,4 +3199,4 @@ db 83,45,78,73,44,32,67,82,89,80,84,79,71,65,77,83 db 32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115 db 115,108,46,111,114,103,62,0 segment .bss -common _OPENSSL_ia32cap_P 16 +common _OPENSSL_ia32cap_P 40 diff --git a/deps/openssl/config/archs/VC-WIN32/asm/crypto/bn/bn-586.asm b/deps/openssl/config/archs/VC-WIN32/asm/crypto/bn/bn-586.asm index 82002b353bfd3b..e9e8a059af1ddc 100644 --- a/deps/openssl/config/archs/VC-WIN32/asm/crypto/bn/bn-586.asm +++ b/deps/openssl/config/archs/VC-WIN32/asm/crypto/bn/bn-586.asm @@ -1512,4 +1512,4 @@ L$029pw_end: pop ebp ret segment .bss -common _OPENSSL_ia32cap_P 16 +common _OPENSSL_ia32cap_P 40 diff --git a/deps/openssl/config/archs/VC-WIN32/asm/crypto/bn/x86-gf2m.asm b/deps/openssl/config/archs/VC-WIN32/asm/crypto/bn/x86-gf2m.asm index 709f4a9e506873..e726f43a66bb84 100644 --- a/deps/openssl/config/archs/VC-WIN32/asm/crypto/bn/x86-gf2m.asm +++ b/deps/openssl/config/archs/VC-WIN32/asm/crypto/bn/x86-gf2m.asm @@ -342,4 +342,4 @@ db 67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97 db 112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103 db 62,0 segment .bss -common _OPENSSL_ia32cap_P 16 +common _OPENSSL_ia32cap_P 40 diff --git a/deps/openssl/config/archs/VC-WIN32/asm/crypto/bn/x86-mont.asm b/deps/openssl/config/archs/VC-WIN32/asm/crypto/bn/x86-mont.asm index 090630c3a00c2b..1ab7a560d37652 100644 --- a/deps/openssl/config/archs/VC-WIN32/asm/crypto/bn/x86-mont.asm +++ b/deps/openssl/config/archs/VC-WIN32/asm/crypto/bn/x86-mont.asm @@ -476,4 +476,4 @@ db 54,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121 db 32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46 db 111,114,103,62,0 segment .bss -common _OPENSSL_ia32cap_P 16 +common _OPENSSL_ia32cap_P 40 diff --git a/deps/openssl/config/archs/VC-WIN32/asm/crypto/buildinf.h b/deps/openssl/config/archs/VC-WIN32/asm/crypto/buildinf.h index 0aa05955cb7ded..7e41e912a20927 100644 --- a/deps/openssl/config/archs/VC-WIN32/asm/crypto/buildinf.h +++ b/deps/openssl/config/archs/VC-WIN32/asm/crypto/buildinf.h @@ -11,7 +11,7 @@ */ #define PLATFORM "platform: " -#define DATE "built on: Sun Jul 20 00:55:52 2025 UTC" +#define DATE "built on: Sun Jul 27 00:59:38 2025 UTC" /* * Generate compiler_flags as an array of individual characters. This is a diff --git a/deps/openssl/config/archs/VC-WIN32/asm/crypto/chacha/chacha-x86.asm b/deps/openssl/config/archs/VC-WIN32/asm/crypto/chacha/chacha-x86.asm index a19fea38079c07..fe015851bf8144 100644 --- a/deps/openssl/config/archs/VC-WIN32/asm/crypto/chacha/chacha-x86.asm +++ b/deps/openssl/config/archs/VC-WIN32/asm/crypto/chacha/chacha-x86.asm @@ -1444,4 +1444,4 @@ L$019done: pop ebp ret segment .bss -common _OPENSSL_ia32cap_P 16 +common _OPENSSL_ia32cap_P 40 diff --git a/deps/openssl/config/archs/VC-WIN32/asm/crypto/ec/ecp_nistz256-x86.asm b/deps/openssl/config/archs/VC-WIN32/asm/crypto/ec/ecp_nistz256-x86.asm index 96071a300ead92..df13353f9d805f 100644 --- a/deps/openssl/config/archs/VC-WIN32/asm/crypto/ec/ecp_nistz256-x86.asm +++ b/deps/openssl/config/archs/VC-WIN32/asm/crypto/ec/ecp_nistz256-x86.asm @@ -5125,4 +5125,4 @@ L$013pic: pop ebp ret segment .bss -common _OPENSSL_ia32cap_P 16 +common _OPENSSL_ia32cap_P 40 diff --git a/deps/openssl/config/archs/VC-WIN32/asm/crypto/params_idx.c b/deps/openssl/config/archs/VC-WIN32/asm/crypto/params_idx.c new file mode 100644 index 00000000000000..874125eb57a17c --- /dev/null +++ b/deps/openssl/config/archs/VC-WIN32/asm/crypto/params_idx.c @@ -0,0 +1,3366 @@ +/* + * WARNING: do not edit! + * Generated by makefile from crypto/params_idx.c.in + * + * Copyright 2023 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + +#include "internal/e_os.h" +#include "internal/param_names.h" +#include + +/* Machine generated TRIE -- generated by util/perl/OpenSSL/paramnames.pm */ +int ossl_param_find_pidx(const char *s) +{ + switch(s[0]) { + default: + break; + case 'a': + switch(s[1]) { + default: + break; + case 'c': + if (strcmp("vp-info", s + 2) == 0) + return PIDX_KDF_PARAM_X942_ACVPINFO; + break; + case 'd': + switch(s[2]) { + default: + break; + case 'd': + if (strcmp("itional-random", s + 3) == 0) + return PIDX_SIGNATURE_PARAM_ADD_RANDOM; + break; + case '\0': + return PIDX_KDF_PARAM_ARGON2_AD; + } + break; + case 'e': + if (strcmp("ad", s + 2) == 0) + return PIDX_CIPHER_PARAM_AEAD; + break; + case 'l': + switch(s[2]) { + default: + break; + case 'g': + switch(s[3]) { + default: + break; + case '_': + if (strcmp("id_param", s + 4) == 0) + return PIDX_CIPHER_PARAM_ALGORITHM_ID_PARAMS_OLD; + break; + case 'i': + if (strcmp("d-absent", s + 4) == 0) + return PIDX_DIGEST_PARAM_ALGID_ABSENT; + break; + case 'o': + switch(s[4]) { + default: + break; + case 'r': + switch(s[5]) { + default: + break; + case 'i': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case 'h': + switch(s[8]) { + default: + break; + case 'm': + switch(s[9]) { + default: + break; + case '-': + switch(s[10]) { + default: + break; + case 'i': + switch(s[11]) { + default: + break; + case 'd': + switch(s[12]) { + default: + break; + case '-': + if (strcmp("params", s + 13) == 0) + return PIDX_ALG_PARAM_ALGORITHM_ID_PARAMS; + break; + case '\0': + return PIDX_ALG_PARAM_ALGORITHM_ID; + } + } + } + } + } + } + } + } + } + } + break; + case 'i': + if (strcmp("as", s + 3) == 0) + return PIDX_STORE_PARAM_ALIAS; + } + break; + case '\0': + return PIDX_PKEY_PARAM_EC_A; + } + break; + case 'b': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("sis-type", s + 2) == 0) + return PIDX_PKEY_PARAM_EC_CHAR2_TYPE; + break; + case 'i': + if (strcmp("ts", s + 2) == 0) + return PIDX_PKEY_PARAM_BITS; + break; + case 'l': + switch(s[2]) { + default: + break; + case 'o': + switch(s[3]) { + default: + break; + case 'c': + switch(s[4]) { + default: + break; + case 'k': + switch(s[5]) { + default: + break; + case '-': + if (strcmp("size", s + 6) == 0) + return PIDX_MAC_PARAM_BLOCK_SIZE; + break; + case '_': + if (strcmp("padding", s + 6) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_BLOCK_PADDING; + break; + case 's': + if (strcmp("ize", s + 6) == 0) + return PIDX_DIGEST_PARAM_BLOCK_SIZE; + } + } + } + } + break; + case 'u': + if (strcmp("ildinfo", s + 2) == 0) + return PIDX_PROV_PARAM_BUILDINFO; + break; + case '\0': + return PIDX_PKEY_PARAM_EC_B; + } + break; + case 'c': + switch(s[1]) { + default: + break; + case '-': + if (strcmp("rounds", s + 2) == 0) + return PIDX_MAC_PARAM_C_ROUNDS; + break; + case 'e': + if (strcmp("kalg", s + 2) == 0) + return PIDX_KDF_PARAM_CEK_ALG; + break; + case 'i': + if (strcmp("pher", s + 2) == 0) + return PIDX_ALG_PARAM_CIPHER; + break; + case 'o': + switch(s[2]) { + default: + break; + case 'f': + if (strcmp("actor", s + 3) == 0) + return PIDX_PKEY_PARAM_EC_COFACTOR; + break; + case 'n': + switch(s[3]) { + default: + break; + case 's': + if (strcmp("tant", s + 4) == 0) + return PIDX_KDF_PARAM_CONSTANT; + break; + case 't': + if (strcmp("ext-string", s + 4) == 0) + return PIDX_SIGNATURE_PARAM_CONTEXT_STRING; + } + } + break; + case 't': + switch(s[2]) { + default: + break; + case 's': + switch(s[3]) { + default: + break; + case '_': + if (strcmp("mode", s + 4) == 0) + return PIDX_CIPHER_PARAM_CTS_MODE; + break; + case '\0': + return PIDX_CIPHER_PARAM_CTS; + } + } + break; + case 'u': + switch(s[2]) { + default: + break; + case 's': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case 'o': + switch(s[5]) { + default: + break; + case 'm': + switch(s[6]) { + default: + break; + case '-': + if (strcmp("iv", s + 7) == 0) + return PIDX_CIPHER_PARAM_CUSTOM_IV; + break; + case '\0': + return PIDX_MAC_PARAM_CUSTOM; + } + } + } + } + } + } + break; + case 'd': + switch(s[1]) { + default: + break; + case '-': + if (strcmp("rounds", s + 2) == 0) + return PIDX_MAC_PARAM_D_ROUNDS; + break; + case 'a': + switch(s[2]) { + default: + break; + case 't': + switch(s[3]) { + default: + break; + case 'a': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 's': + if (strcmp("tructure", s + 6) == 0) + return PIDX_OBJECT_PARAM_DATA_STRUCTURE; + break; + case 't': + if (strcmp("ype", s + 6) == 0) + return PIDX_OBJECT_PARAM_DATA_TYPE; + } + break; + case '\0': + return PIDX_OBJECT_PARAM_DATA; + } + } + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'c': + switch(s[3]) { + default: + break; + case 'o': + if (strcmp("ded-from-explicit", s + 4) == 0) + return PIDX_PKEY_PARAM_EC_DECODED_FROM_EXPLICIT_PARAMS; + break; + case 'r': + if (strcmp("ypt-only", s + 4) == 0) + return PIDX_CIPHER_PARAM_DECRYPT_ONLY; + } + break; + case 'f': + if (strcmp("ault-digest", s + 3) == 0) + return PIDX_PKEY_PARAM_DEFAULT_DIGEST; + break; + case 's': + if (strcmp("c", s + 3) == 0) + return PIDX_OBJECT_PARAM_DESC; + break; + case 't': + if (strcmp("erministic", s + 3) == 0) + return PIDX_SIGNATURE_PARAM_DETERMINISTIC; + } + break; + case 'h': + if (strcmp("kem-ikm", s + 2) == 0) + return PIDX_PKEY_PARAM_DHKEM_IKM; + break; + case 'i': + switch(s[2]) { + default: + break; + case 'g': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case 's': + switch(s[5]) { + default: + break; + case 't': + switch(s[6]) { + default: + break; + case '-': + switch(s[7]) { + default: + break; + case 'c': + if (strcmp("heck", s + 8) == 0) + return PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK; + break; + case 'n': + if (strcmp("oinit", s + 8) == 0) + return PIDX_MAC_PARAM_DIGEST_NOINIT; + break; + case 'o': + if (strcmp("neshot", s + 8) == 0) + return PIDX_MAC_PARAM_DIGEST_ONESHOT; + break; + case 'p': + if (strcmp("rops", s + 8) == 0) + return PIDX_ASYM_CIPHER_PARAM_OAEP_DIGEST_PROPS; + break; + case 's': + if (strcmp("ize", s + 8) == 0) + return PIDX_PKEY_PARAM_DIGEST_SIZE; + } + break; + case '\0': + return PIDX_STORE_PARAM_DIGEST; + } + } + } + } + break; + case 's': + if (strcmp("tid", s + 3) == 0) + return PIDX_PKEY_PARAM_DIST_ID; + } + break; + case 'r': + if (strcmp("bg-no-trunc-md", s + 2) == 0) + return PIDX_PROV_PARAM_DRBG_TRUNC_DIGEST; + break; + case 's': + if (strcmp("a-sign-disabled", s + 2) == 0) + return PIDX_PROV_PARAM_DSA_SIGN_DISABLED; + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_D; + } + break; + case 'e': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("rly_clean", s + 2) == 0) + return PIDX_KDF_PARAM_EARLY_CLEAN; + break; + case 'c': + switch(s[2]) { + default: + break; + case 'd': + switch(s[3]) { + default: + break; + case 'h': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'c': + switch(s[6]) { + default: + break; + case 'o': + switch(s[7]) { + default: + break; + case 'f': + switch(s[8]) { + default: + break; + case 'a': + switch(s[9]) { + default: + break; + case 'c': + switch(s[10]) { + default: + break; + case 't': + switch(s[11]) { + default: + break; + case 'o': + switch(s[12]) { + default: + break; + case 'r': + switch(s[13]) { + default: + break; + case '-': + switch(s[14]) { + default: + break; + case 'c': + if (strcmp("heck", s + 15) == 0) + return PIDX_PROV_PARAM_ECDH_COFACTOR_CHECK; + break; + case 'm': + if (strcmp("ode", s + 15) == 0) + return PIDX_EXCHANGE_PARAM_EC_ECDH_COFACTOR_MODE; + } + } + } + } + } + } + } + } + } + } + } + } + } + break; + case 'm': + if (strcmp("s_check", s + 2) == 0) + return PIDX_KDF_PARAM_FIPS_EMS_CHECK; + break; + case 'n': + switch(s[2]) { + default: + break; + case 'c': + switch(s[3]) { + default: + break; + case 'o': + switch(s[4]) { + default: + break; + case 'd': + switch(s[5]) { + default: + break; + case 'e': + if (strcmp("d-pub-key", s + 6) == 0) + return PIDX_PKEY_PARAM_ENCODED_PUBLIC_KEY; + break; + case 'i': + if (strcmp("ng", s + 6) == 0) + return PIDX_PKEY_PARAM_EC_ENCODING; + } + } + break; + case 'r': + switch(s[4]) { + default: + break; + case 'y': + switch(s[5]) { + default: + break; + case 'p': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case '-': + switch(s[8]) { + default: + break; + case 'c': + if (strcmp("heck", s + 9) == 0) + return PIDX_CIPHER_PARAM_FIPS_ENCRYPT_CHECK; + break; + case 'l': + if (strcmp("evel", s + 9) == 0) + return PIDX_ENCODER_PARAM_ENCRYPT_LEVEL; + } + } + } + } + } + } + break; + case 'g': + if (strcmp("ine", s + 3) == 0) + return PIDX_ALG_PARAM_ENGINE; + break; + case 't': + switch(s[3]) { + default: + break; + case 'r': + switch(s[4]) { + default: + break; + case 'o': + switch(s[5]) { + default: + break; + case 'p': + switch(s[6]) { + default: + break; + case 'y': + switch(s[7]) { + default: + break; + case '_': + if (strcmp("required", s + 8) == 0) + return PIDX_DRBG_PARAM_ENTROPY_REQUIRED; + break; + case '\0': + return PIDX_KDF_PARAM_HMACDRBG_ENTROPY; + } + } + } + } + } + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_E; + break; + case 'x': + if (strcmp("pect", s + 2) == 0) + return PIDX_STORE_PARAM_EXPECT; + } + break; + case 'f': + switch(s[1]) { + default: + break; + case 'i': + switch(s[2]) { + default: + break; + case 'e': + if (strcmp("ld-type", s + 3) == 0) + return PIDX_PKEY_PARAM_EC_FIELD_TYPE; + break; + case 'n': + if (strcmp("gerprint", s + 3) == 0) + return PIDX_STORE_PARAM_FINGERPRINT; + break; + case 'p': + if (strcmp("s-indicator", s + 3) == 0) + return PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR; + } + } + break; + case 'g': + switch(s[1]) { + default: + break; + case 'e': + switch(s[2]) { + default: + break; + case 'n': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case 'r': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case 'e': + switch(s[8]) { + default: + break; + case '\0': + return PIDX_RAND_PARAM_GENERATE; + } + break; + case 'o': + if (strcmp("r", s + 8) == 0) + return PIDX_PKEY_PARAM_EC_GENERATOR; + } + } + } + } + } + } + break; + case 'i': + if (strcmp("ndex", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_GINDEX; + break; + case 'r': + switch(s[2]) { + default: + break; + case 'o': + switch(s[3]) { + default: + break; + case 'u': + switch(s[4]) { + default: + break; + case 'p': + switch(s[5]) { + default: + break; + case '-': + if (strcmp("check", s + 6) == 0) + return PIDX_PKEY_PARAM_EC_GROUP_CHECK_TYPE; + break; + case '\0': + return PIDX_PKEY_PARAM_GROUP_NAME; + } + } + } + } + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_G; + } + break; + case 'h': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("s-randkey", s + 2) == 0) + return PIDX_CIPHER_PARAM_HAS_RAND_KEY; + break; + case 'i': + if (strcmp("ndex", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_H; + break; + case 'k': + switch(s[2]) { + default: + break; + case 'd': + switch(s[3]) { + default: + break; + case 'f': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 6) == 0) + return PIDX_PROV_PARAM_HKDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 6) == 0) + return PIDX_PROV_PARAM_HKDF_KEY_CHECK; + } + } + } + } + break; + case 'm': + if (strcmp("ac-key-check", s + 2) == 0) + return PIDX_PROV_PARAM_HMAC_KEY_CHECK; + break; + case 's': + if (strcmp("_padding", s + 2) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_HS_PADDING; + } + break; + case 'i': + switch(s[1]) { + default: + break; + case 'd': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_KDF_PARAM_PKCS12_ID; + } + break; + case 'k': + if (strcmp("me", s + 2) == 0) + return PIDX_KEM_PARAM_IKME; + break; + case 'm': + if (strcmp("plicit-rejection", s + 2) == 0) + return PIDX_PKEY_PARAM_IMPLICIT_REJECTION; + break; + case 'n': + switch(s[2]) { + default: + break; + case 'c': + if (strcmp("lude-public", s + 3) == 0) + return PIDX_PKEY_PARAM_EC_INCLUDE_PUBLIC; + break; + case 'f': + if (strcmp("o", s + 3) == 0) + return PIDX_PASSPHRASE_PARAM_INFO; + break; + case 'p': + if (strcmp("ut-type", s + 3) == 0) + return PIDX_STORE_PARAM_INPUT_TYPE; + break; + case 's': + if (strcmp("tance", s + 3) == 0) + return PIDX_SIGNATURE_PARAM_INSTANCE; + } + break; + case 't': + switch(s[2]) { + default: + break; + case 'e': + switch(s[3]) { + default: + break; + case 'r': + switch(s[4]) { + default: + break; + case 'a': + if (strcmp("tion", s + 5) == 0) + return PIDX_GEN_PARAM_ITERATION; + break; + case '\0': + return PIDX_KDF_PARAM_ITER; + } + } + } + break; + case 'v': + switch(s[2]) { + default: + break; + case '-': + if (strcmp("generated", s + 3) == 0) + return PIDX_CIPHER_PARAM_AEAD_IV_GENERATED; + break; + case 'l': + if (strcmp("en", s + 3) == 0) + return PIDX_CIPHER_PARAM_IVLEN; + break; + case '\0': + return PIDX_MAC_PARAM_IV; + } + } + break; + case 'j': + switch(s[1]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_COFACTOR; + } + break; + case 'k': + switch(s[1]) { + default: + break; + case '1': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_PP_K1; + } + break; + case '2': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_PP_K2; + } + break; + case '3': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_PP_K3; + } + break; + case 'a': + if (strcmp("t", s + 2) == 0) + return PIDX_SIGNATURE_PARAM_KAT; + break; + case 'b': + if (strcmp("kdf-key-check", s + 2) == 0) + return PIDX_PROV_PARAM_KBKDF_KEY_CHECK; + break; + case 'd': + switch(s[2]) { + default: + break; + case 'f': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'd': + switch(s[5]) { + default: + break; + case 'i': + switch(s[6]) { + default: + break; + case 'g': + switch(s[7]) { + default: + break; + case 'e': + switch(s[8]) { + default: + break; + case 's': + switch(s[9]) { + default: + break; + case 't': + switch(s[10]) { + default: + break; + case '-': + if (strcmp("props", s + 11) == 0) + return PIDX_EXCHANGE_PARAM_KDF_DIGEST_PROPS; + break; + case '\0': + return PIDX_EXCHANGE_PARAM_KDF_DIGEST; + } + } + } + } + } + } + break; + case 'o': + if (strcmp("utlen", s + 5) == 0) + return PIDX_EXCHANGE_PARAM_KDF_OUTLEN; + break; + case 't': + if (strcmp("ype", s + 5) == 0) + return PIDX_EXCHANGE_PARAM_KDF_TYPE; + break; + case 'u': + if (strcmp("km", s + 5) == 0) + return PIDX_EXCHANGE_PARAM_KDF_UKM; + } + } + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'y': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'c': + if (strcmp("heck", s + 5) == 0) + return PIDX_PKEY_PARAM_FIPS_KEY_CHECK; + break; + case 'l': + if (strcmp("ength", s + 5) == 0) + return PIDX_SKEY_PARAM_KEY_LENGTH; + } + break; + case 'b': + if (strcmp("its", s + 4) == 0) + return PIDX_CIPHER_PARAM_RC2_KEYBITS; + break; + case 'l': + if (strcmp("en", s + 4) == 0) + return PIDX_CIPHER_PARAM_KEYLEN; + break; + case '\0': + return PIDX_MAC_PARAM_KEY; + } + } + break; + case 'm': + if (strcmp("ac-key-check", s + 2) == 0) + return PIDX_PROV_PARAM_KMAC_KEY_CHECK; + } + break; + case 'l': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'b': + if (strcmp("el", s + 3) == 0) + return PIDX_KDF_PARAM_LABEL; + break; + case 'n': + if (strcmp("es", s + 3) == 0) + return PIDX_KDF_PARAM_ARGON2_LANES; + } + } + break; + case 'm': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'c': + switch(s[3]) { + default: + break; + case 'k': + if (strcmp("ey", s + 4) == 0) + return PIDX_CIPHER_PARAM_AEAD_MAC_KEY; + break; + case 'l': + if (strcmp("en", s + 4) == 0) + return PIDX_KDF_PARAM_MAC_SIZE; + break; + case '\0': + return PIDX_ALG_PARAM_MAC; + } + break; + case 'n': + if (strcmp("datory-digest", s + 3) == 0) + return PIDX_PKEY_PARAM_MANDATORY_DIGEST; + break; + case 'x': + switch(s[3]) { + default: + break; + case '-': + if (strcmp("size", s + 4) == 0) + return PIDX_PKEY_PARAM_MAX_SIZE; + break; + case '_': + switch(s[4]) { + default: + break; + case 'a': + if (strcmp("dinlen", s + 5) == 0) + return PIDX_DRBG_PARAM_MAX_ADINLEN; + break; + case 'e': + switch(s[5]) { + default: + break; + case 'a': + if (strcmp("rly_data", s + 6) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_MAX_EARLY_DATA; + break; + case 'n': + if (strcmp("tropylen", s + 6) == 0) + return PIDX_DRBG_PARAM_MAX_ENTROPYLEN; + } + break; + case 'f': + if (strcmp("rag_len", s + 5) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_MAX_FRAG_LEN; + break; + case 'n': + if (strcmp("oncelen", s + 5) == 0) + return PIDX_DRBG_PARAM_MAX_NONCELEN; + break; + case 'p': + if (strcmp("erslen", s + 5) == 0) + return PIDX_DRBG_PARAM_MAX_PERSLEN; + break; + case 'r': + if (strcmp("equest", s + 5) == 0) + return PIDX_RAND_PARAM_MAX_REQUEST; + } + break; + case 'i': + if (strcmp("um_length", s + 4) == 0) + return PIDX_DRBG_PARAM_MAX_LENGTH; + break; + case 'm': + if (strcmp("em_bytes", s + 4) == 0) + return PIDX_KDF_PARAM_SCRYPT_MAXMEM; + } + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'm': + if (strcmp("cost", s + 3) == 0) + return PIDX_KDF_PARAM_ARGON2_MEMCOST; + break; + case 's': + if (strcmp("sage-encoding", s + 3) == 0) + return PIDX_SIGNATURE_PARAM_MESSAGE_ENCODING; + } + break; + case 'g': + switch(s[2]) { + default: + break; + case 'f': + switch(s[3]) { + default: + break; + case '1': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'd': + if (strcmp("igest", s + 6) == 0) + return PIDX_PKEY_PARAM_MGF1_DIGEST; + break; + case 'p': + if (strcmp("roperties", s + 6) == 0) + return PIDX_PKEY_PARAM_MGF1_PROPERTIES; + } + } + break; + case '\0': + return PIDX_PKEY_PARAM_MASKGENFUNC; + } + } + break; + case 'i': + switch(s[2]) { + default: + break; + case 'c': + if (strcmp("alg", s + 3) == 0) + return PIDX_DIGEST_PARAM_MICALG; + break; + case 'n': + switch(s[3]) { + default: + break; + case '_': + switch(s[4]) { + default: + break; + case 'e': + if (strcmp("ntropylen", s + 5) == 0) + return PIDX_DRBG_PARAM_MIN_ENTROPYLEN; + break; + case 'n': + if (strcmp("oncelen", s + 5) == 0) + return PIDX_DRBG_PARAM_MIN_NONCELEN; + } + break; + case 'i': + if (strcmp("um_length", s + 4) == 0) + return PIDX_DRBG_PARAM_MIN_LENGTH; + } + } + break; + case 'l': + switch(s[2]) { + default: + break; + case '-': + switch(s[3]) { + default: + break; + case 'd': + switch(s[4]) { + default: + break; + case 's': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case '.': + switch(s[7]) { + default: + break; + case 'i': + if (strcmp("nput_formats", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_DSA_INPUT_FORMATS; + break; + case 'o': + if (strcmp("utput_formats", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_DSA_OUTPUT_FORMATS; + break; + case 'p': + if (strcmp("refer_seed", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_DSA_PREFER_SEED; + break; + case 'r': + if (strcmp("etain_seed", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_DSA_RETAIN_SEED; + } + } + } + } + break; + case 'k': + switch(s[4]) { + default: + break; + case 'e': + switch(s[5]) { + default: + break; + case 'm': + switch(s[6]) { + default: + break; + case '.': + switch(s[7]) { + default: + break; + case 'i': + switch(s[8]) { + default: + break; + case 'm': + if (strcmp("port_pct_type", s + 9) == 0) + return PIDX_PKEY_PARAM_ML_KEM_IMPORT_PCT_TYPE; + break; + case 'n': + if (strcmp("put_formats", s + 9) == 0) + return PIDX_PKEY_PARAM_ML_KEM_INPUT_FORMATS; + } + break; + case 'o': + if (strcmp("utput_formats", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_KEM_OUTPUT_FORMATS; + break; + case 'p': + if (strcmp("refer_seed", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_KEM_PREFER_SEED; + break; + case 'r': + if (strcmp("etain_seed", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_KEM_RETAIN_SEED; + } + } + } + } + } + } + break; + case 'o': + switch(s[2]) { + default: + break; + case 'd': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case '\0': + return PIDX_LIBSSL_RECORD_LAYER_PARAM_MODE; + } + break; + case 'u': + if (strcmp("le-filename", s + 4) == 0) + return PIDX_PROV_PARAM_CORE_MODULE_FILENAME; + } + } + break; + case 'u': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_SIGNATURE_PARAM_MU; + } + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_M; + } + break; + case 'n': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("me", s + 2) == 0) + return PIDX_STORE_PARAM_ISSUER; + break; + case 'o': + switch(s[2]) { + default: + break; + case '-': + if (strcmp("short-mac", s + 3) == 0) + return PIDX_PROV_PARAM_NO_SHORT_MAC; + break; + case 'n': + switch(s[3]) { + default: + break; + case 'c': + switch(s[4]) { + default: + break; + case 'e': + switch(s[5]) { + default: + break; + case '-': + if (strcmp("type", s + 6) == 0) + return PIDX_SIGNATURE_PARAM_NONCE_TYPE; + break; + case '\0': + return PIDX_KDF_PARAM_HMACDRBG_NONCE; + } + } + } + } + break; + case 'u': + if (strcmp("m", s + 2) == 0) + return PIDX_CIPHER_PARAM_NUM; + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_N; + } + break; + case 'o': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("ep-label", s + 2) == 0) + return PIDX_ASYM_CIPHER_PARAM_OAEP_LABEL; + break; + case 'p': + switch(s[2]) { + default: + break; + case 'e': + switch(s[3]) { + default: + break; + case 'n': + if (strcmp("ssl-version", s + 4) == 0) + return PIDX_PROV_PARAM_CORE_VERSION; + break; + case 'r': + if (strcmp("ation", s + 4) == 0) + return PIDX_KEM_PARAM_OPERATION; + } + break; + case 't': + if (strcmp("ions", s + 3) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_OPTIONS; + } + break; + case 'r': + if (strcmp("der", s + 2) == 0) + return PIDX_PKEY_PARAM_EC_ORDER; + } + break; + case 'p': + switch(s[1]) { + default: + break; + case '1': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_P1; + } + break; + case '2': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_P2; + } + break; + case 'a': + switch(s[2]) { + default: + break; + case 'd': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'm': + if (strcmp("ode", s + 5) == 0) + return PIDX_PKEY_PARAM_PAD_MODE; + break; + case 't': + if (strcmp("ype", s + 5) == 0) + return PIDX_DIGEST_PARAM_PAD_TYPE; + } + break; + case 'd': + if (strcmp("ing", s + 4) == 0) + return PIDX_CIPHER_PARAM_PADDING; + break; + case '\0': + return PIDX_EXCHANGE_PARAM_PAD; + } + break; + case 'r': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case 'y': + switch(s[5]) { + default: + break; + case 'u': + if (strcmp("-info", s + 6) == 0) + return PIDX_KDF_PARAM_X942_PARTYUINFO; + break; + case 'v': + if (strcmp("-info", s + 6) == 0) + return PIDX_KDF_PARAM_X942_PARTYVINFO; + } + } + } + break; + case 's': + if (strcmp("s", s + 3) == 0) + return PIDX_KDF_PARAM_PASSWORD; + } + break; + case 'b': + switch(s[2]) { + default: + break; + case 'i': + if (strcmp("ts", s + 3) == 0) + return PIDX_PKEY_PARAM_FFC_PBITS; + break; + case 'k': + if (strcmp("df2-lower-bound-check", s + 3) == 0) + return PIDX_PROV_PARAM_PBKDF2_LOWER_BOUND_CHECK; + } + break; + case 'c': + if (strcmp("ounter", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_PCOUNTER; + break; + case 'i': + if (strcmp("peline-tag", s + 2) == 0) + return PIDX_CIPHER_PARAM_PIPELINE_AEAD_TAG; + break; + case 'k': + if (strcmp("cs5", s + 2) == 0) + return PIDX_KDF_PARAM_PKCS5; + break; + case 'o': + switch(s[2]) { + default: + break; + case 'i': + if (strcmp("nt-format", s + 3) == 0) + return PIDX_PKEY_PARAM_EC_POINT_CONVERSION_FORMAT; + break; + case 't': + if (strcmp("ential", s + 3) == 0) + return PIDX_GEN_PARAM_POTENTIAL; + } + break; + case 'r': + switch(s[2]) { + default: + break; + case 'e': + switch(s[3]) { + default: + break; + case 'd': + if (strcmp("iction_resistance", s + 4) == 0) + return PIDX_DRBG_PARAM_PREDICTION_RESISTANCE; + break; + case 'f': + if (strcmp("ix", s + 4) == 0) + return PIDX_KDF_PARAM_PREFIX; + } + break; + case 'i': + switch(s[3]) { + default: + break; + case 'm': + if (strcmp("es", s + 4) == 0) + return PIDX_PKEY_PARAM_RSA_PRIMES; + break; + case 'v': + switch(s[4]) { + default: + break; + case '_': + if (strcmp("len", s + 5) == 0) + return PIDX_PKEY_PARAM_DH_PRIV_LEN; + break; + case '\0': + return PIDX_PKEY_PARAM_PRIV_KEY; + } + } + break; + case 'o': + switch(s[3]) { + default: + break; + case 'p': + if (strcmp("erties", s + 4) == 0) + return PIDX_STORE_PARAM_PROPERTIES; + break; + case 'v': + if (strcmp("ider-name", s + 4) == 0) + return PIDX_PROV_PARAM_CORE_PROV_NAME; + } + } + break; + case 'u': + if (strcmp("b", s + 2) == 0) + return PIDX_PKEY_PARAM_PUB_KEY; + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_P; + } + break; + case 'q': + switch(s[1]) { + default: + break; + case '1': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_Q1; + } + break; + case '2': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_Q2; + } + break; + case 'b': + if (strcmp("its", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_QBITS; + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_Q; + break; + case 'x': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_PUB_X; + } + break; + case 'y': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_PUB_Y; + } + } + break; + case 'r': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'n': + switch(s[3]) { + default: + break; + case 'd': + switch(s[4]) { + default: + break; + case 'k': + if (strcmp("ey", s + 5) == 0) + return PIDX_CIPHER_PARAM_RANDOM_KEY; + break; + case 'o': + if (strcmp("m_data", s + 5) == 0) + return PIDX_DRBG_PARAM_RANDOM_DATA; + } + } + break; + case 'w': + if (strcmp("-bytes", s + 3) == 0) + return PIDX_SKEY_PARAM_RAW_BYTES; + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'a': + switch(s[3]) { + default: + break; + case 'd': + switch(s[4]) { + default: + break; + case '_': + switch(s[5]) { + default: + break; + case 'a': + if (strcmp("head", s + 6) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_READ_AHEAD; + break; + case 'b': + if (strcmp("uffer_len", s + 6) == 0) + return PIDX_LIBSSL_RECORD_LAYER_READ_BUFFER_LEN; + } + } + } + break; + case 'f': + if (strcmp("erence", s + 3) == 0) + return PIDX_OBJECT_PARAM_REFERENCE; + break; + case 's': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case 'e': + switch(s[5]) { + default: + break; + case 'd': + switch(s[6]) { + default: + break; + case '_': + switch(s[7]) { + default: + break; + case 'c': + if (strcmp("ounter", s + 8) == 0) + return PIDX_DRBG_PARAM_RESEED_COUNTER; + break; + case 'r': + if (strcmp("equests", s + 8) == 0) + return PIDX_DRBG_PARAM_RESEED_REQUESTS; + break; + case 't': + switch(s[8]) { + default: + break; + case 'i': + switch(s[9]) { + default: + break; + case 'm': + switch(s[10]) { + default: + break; + case 'e': + switch(s[11]) { + default: + break; + case '_': + if (strcmp("interval", s + 12) == 0) + return PIDX_DRBG_PARAM_RESEED_TIME_INTERVAL; + break; + case '\0': + return PIDX_DRBG_PARAM_RESEED_TIME; + } + } + } + } + } + } + } + } + } + } + break; + case 'o': + if (strcmp("unds", s + 2) == 0) + return PIDX_CIPHER_PARAM_ROUNDS; + break; + case 's': + switch(s[2]) { + default: + break; + case 'a': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'c': + switch(s[5]) { + default: + break; + case 'o': + switch(s[6]) { + default: + break; + case 'e': + switch(s[7]) { + default: + break; + case 'f': + switch(s[8]) { + default: + break; + case 'f': + switch(s[9]) { + default: + break; + case 'i': + switch(s[10]) { + default: + break; + case 'c': + switch(s[11]) { + default: + break; + case 'i': + switch(s[12]) { + default: + break; + case 'e': + switch(s[13]) { + default: + break; + case 'n': + switch(s[14]) { + default: + break; + case 't': + switch(s[15]) { + default: + break; + case '1': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT1; + } + break; + case '2': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT2; + } + break; + case '3': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT3; + } + break; + case '4': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT4; + } + break; + case '5': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT5; + } + break; + case '6': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT6; + } + break; + case '7': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT7; + } + break; + case '8': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT8; + } + break; + case '9': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT9; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT; + } + } + } + } + } + } + } + } + } + } + } + break; + case 'd': + if (strcmp("erive-from-pq", s + 5) == 0) + return PIDX_PKEY_PARAM_RSA_DERIVE_FROM_PQ; + break; + case 'e': + switch(s[5]) { + default: + break; + case 'x': + switch(s[6]) { + default: + break; + case 'p': + switch(s[7]) { + default: + break; + case 'o': + switch(s[8]) { + default: + break; + case 'n': + switch(s[9]) { + default: + break; + case 'e': + switch(s[10]) { + default: + break; + case 'n': + switch(s[11]) { + default: + break; + case 't': + switch(s[12]) { + default: + break; + case '1': + switch(s[13]) { + default: + break; + case '0': + switch(s[14]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT10; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT1; + } + break; + case '2': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT2; + } + break; + case '3': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT3; + } + break; + case '4': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT4; + } + break; + case '5': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT5; + } + break; + case '6': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT6; + } + break; + case '7': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT7; + } + break; + case '8': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT8; + } + break; + case '9': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT9; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT; + } + } + } + } + } + } + } + } + break; + case 'f': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case 'c': + switch(s[7]) { + default: + break; + case 't': + switch(s[8]) { + default: + break; + case 'o': + switch(s[9]) { + default: + break; + case 'r': + switch(s[10]) { + default: + break; + case '1': + switch(s[11]) { + default: + break; + case '0': + switch(s[12]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR10; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR1; + } + break; + case '2': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR2; + } + break; + case '3': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR3; + } + break; + case '4': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR4; + } + break; + case '5': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR5; + } + break; + case '6': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR6; + } + break; + case '7': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR7; + } + break; + case '8': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR8; + } + break; + case '9': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR9; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR; + } + } + } + } + } + } + break; + case 'p': + switch(s[5]) { + default: + break; + case 'k': + if (strcmp("cs15-pad-disabled", s + 6) == 0) + return PIDX_PROV_PARAM_RSA_PKCS15_PAD_DISABLED; + break; + case 's': + if (strcmp("s-saltlen-check", s + 6) == 0) + return PIDX_SIGNATURE_PARAM_FIPS_RSA_PSS_SALTLEN_CHECK; + } + break; + case 's': + if (strcmp("ign-x931-pad-disabled", s + 5) == 0) + return PIDX_PROV_PARAM_RSA_SIGN_X931_PAD_DISABLED; + } + } + } + break; + case '\0': + return PIDX_KDF_PARAM_SCRYPT_R; + } + break; + case 's': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'f': + if (strcmp("eprime-generator", s + 3) == 0) + return PIDX_PKEY_PARAM_DH_GENERATOR; + break; + case 'l': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case 'l': + if (strcmp("en", s + 5) == 0) + return PIDX_SIGNATURE_PARAM_PSS_SALTLEN; + break; + case '\0': + return PIDX_MAC_PARAM_SALT; + } + } + break; + case 'v': + if (strcmp("e-parameters", s + 3) == 0) + return PIDX_ENCODER_PARAM_SAVE_PARAMETERS; + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'c': + switch(s[3]) { + default: + break; + case 'r': + if (strcmp("et", s + 4) == 0) + return PIDX_KDF_PARAM_SECRET; + break; + case 'u': + switch(s[4]) { + default: + break; + case 'r': + switch(s[5]) { + default: + break; + case 'i': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case 'y': + switch(s[8]) { + default: + break; + case '-': + switch(s[9]) { + default: + break; + case 'b': + if (strcmp("its", s + 10) == 0) + return PIDX_PKEY_PARAM_SECURITY_BITS; + break; + case 'c': + if (strcmp("hecks", s + 10) == 0) + return PIDX_PROV_PARAM_SECURITY_CHECKS; + } + } + } + } + } + } + } + break; + case 'e': + if (strcmp("d", s + 3) == 0) + return PIDX_PKEY_PARAM_SLH_DSA_SEED; + break; + case 'r': + if (strcmp("ial", s + 3) == 0) + return PIDX_STORE_PARAM_SERIAL; + break; + case 's': + if (strcmp("sion_id", s + 3) == 0) + return PIDX_KDF_PARAM_SSHKDF_SESSION_ID; + } + break; + case 'i': + switch(s[2]) { + default: + break; + case 'g': + switch(s[3]) { + default: + break; + case 'n': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'c': + if (strcmp("heck", s + 6) == 0) + return PIDX_PKEY_PARAM_FIPS_SIGN_CHECK; + break; + case 'x': + if (strcmp("931-pad-check", s + 6) == 0) + return PIDX_SIGNATURE_PARAM_FIPS_SIGN_X931_PAD_CHECK; + } + break; + case 'a': + switch(s[5]) { + default: + break; + case 't': + switch(s[6]) { + default: + break; + case 'u': + switch(s[7]) { + default: + break; + case 'r': + switch(s[8]) { + default: + break; + case 'e': + switch(s[9]) { + default: + break; + case '-': + if (strcmp("digest-check", s + 10) == 0) + return PIDX_PROV_PARAM_SIGNATURE_DIGEST_CHECK; + break; + case '\0': + return PIDX_SIGNATURE_PARAM_SIGNATURE; + } + } + } + } + } + } + } + break; + case 'z': + if (strcmp("e", s + 3) == 0) + return PIDX_MAC_PARAM_SIZE; + } + break; + case 'p': + if (strcmp("eed", s + 2) == 0) + return PIDX_CIPHER_PARAM_SPEED; + break; + case 's': + switch(s[2]) { + default: + break; + case 'h': + switch(s[3]) { + default: + break; + case 'k': + switch(s[4]) { + default: + break; + case 'd': + switch(s[5]) { + default: + break; + case 'f': + switch(s[6]) { + default: + break; + case '-': + switch(s[7]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 8) == 0) + return PIDX_PROV_PARAM_SSHKDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 8) == 0) + return PIDX_PROV_PARAM_SSHKDF_KEY_CHECK; + } + } + } + } + } + break; + case 'k': + switch(s[3]) { + default: + break; + case 'd': + switch(s[4]) { + default: + break; + case 'f': + switch(s[5]) { + default: + break; + case '-': + switch(s[6]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 7) == 0) + return PIDX_PROV_PARAM_SSKDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 7) == 0) + return PIDX_PROV_PARAM_SSKDF_KEY_CHECK; + } + } + } + } + break; + case 'l': + if (strcmp("3-ms", s + 3) == 0) + return PIDX_DIGEST_PARAM_SSL3_MS; + } + break; + case 't': + switch(s[2]) { + default: + break; + case '-': + switch(s[3]) { + default: + break; + case 'd': + if (strcmp("esc", s + 4) == 0) + return PIDX_PROV_PARAM_SELF_TEST_DESC; + break; + case 'p': + if (strcmp("hase", s + 4) == 0) + return PIDX_PROV_PARAM_SELF_TEST_PHASE; + break; + case 't': + if (strcmp("ype", s + 4) == 0) + return PIDX_PROV_PARAM_SELF_TEST_TYPE; + } + break; + case 'a': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case 'e': + switch(s[5]) { + default: + break; + case '\0': + return PIDX_RAND_PARAM_STATE; + } + break; + case 'u': + if (strcmp("s", s + 5) == 0) + return PIDX_PROV_PARAM_STATUS; + } + } + break; + case 'r': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case 'a': + if (strcmp("m_mac", s + 5) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_STREAM_MAC; + break; + case 'n': + if (strcmp("gth", s + 5) == 0) + return PIDX_RAND_PARAM_STRENGTH; + } + } + } + break; + case 'u': + switch(s[2]) { + default: + break; + case 'b': + if (strcmp("ject", s + 3) == 0) + return PIDX_STORE_PARAM_SUBJECT; + break; + case 'p': + switch(s[3]) { + default: + break; + case 'p': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'p': + switch(s[6]) { + default: + break; + case 'r': + if (strcmp("ivinfo", s + 7) == 0) + return PIDX_KDF_PARAM_X942_SUPP_PRIVINFO; + break; + case 'u': + if (strcmp("binfo", s + 7) == 0) + return PIDX_KDF_PARAM_X942_SUPP_PUBINFO; + } + } + } + } + } + } + break; + case 't': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'g': + switch(s[3]) { + default: + break; + case 'l': + if (strcmp("en", s + 4) == 0) + return PIDX_CIPHER_PARAM_AEAD_TAGLEN; + break; + case '\0': + return PIDX_CIPHER_PARAM_AEAD_TAG; + } + } + break; + case 'd': + if (strcmp("es-encrypt-disabled", s + 2) == 0) + return PIDX_PROV_PARAM_TDES_ENCRYPT_DISABLED; + break; + case 'e': + switch(s[2]) { + default: + break; + case 's': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case '-': + if (strcmp("entropy", s + 5) == 0) + return PIDX_SIGNATURE_PARAM_TEST_ENTROPY; + break; + case '_': + switch(s[5]) { + default: + break; + case 'e': + if (strcmp("ntropy", s + 6) == 0) + return PIDX_RAND_PARAM_TEST_ENTROPY; + break; + case 'n': + if (strcmp("once", s + 6) == 0) + return PIDX_RAND_PARAM_TEST_NONCE; + } + } + } + } + break; + case 'h': + if (strcmp("reads", s + 2) == 0) + return PIDX_KDF_PARAM_THREADS; + break; + case 'l': + switch(s[2]) { + default: + break; + case 's': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'c': + if (strcmp("lient-version", s + 5) == 0) + return PIDX_ASYM_CIPHER_PARAM_TLS_CLIENT_VERSION; + break; + case 'd': + if (strcmp("ata-size", s + 5) == 0) + return PIDX_MAC_PARAM_TLS_DATA_SIZE; + break; + case 'g': + switch(s[5]) { + default: + break; + case 'r': + switch(s[6]) { + default: + break; + case 'o': + switch(s[7]) { + default: + break; + case 'u': + switch(s[8]) { + default: + break; + case 'p': + switch(s[9]) { + default: + break; + case '-': + switch(s[10]) { + default: + break; + case 'a': + if (strcmp("lg", s + 11) == 0) + return PIDX_CAPABILITY_TLS_GROUP_ALG; + break; + case 'i': + switch(s[11]) { + default: + break; + case 'd': + switch(s[12]) { + default: + break; + case '\0': + return PIDX_CAPABILITY_TLS_GROUP_ID; + } + break; + case 's': + if (strcmp("-kem", s + 12) == 0) + return PIDX_CAPABILITY_TLS_GROUP_IS_KEM; + } + break; + case 'n': + switch(s[11]) { + default: + break; + case 'a': + switch(s[12]) { + default: + break; + case 'm': + switch(s[13]) { + default: + break; + case 'e': + switch(s[14]) { + default: + break; + case '-': + if (strcmp("internal", s + 15) == 0) + return PIDX_CAPABILITY_TLS_GROUP_NAME_INTERNAL; + break; + case '\0': + return PIDX_CAPABILITY_TLS_GROUP_NAME; + } + } + } + } + break; + case 's': + if (strcmp("ec-bits", s + 11) == 0) + return PIDX_CAPABILITY_TLS_GROUP_SECURITY_BITS; + } + } + } + } + } + } + break; + case 'm': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case 'c': + switch(s[7]) { + default: + break; + case '-': + if (strcmp("size", s + 8) == 0) + return PIDX_CIPHER_PARAM_TLS_MAC_SIZE; + break; + case '\0': + return PIDX_CIPHER_PARAM_TLS_MAC; + } + break; + case 'x': + switch(s[7]) { + default: + break; + case '-': + switch(s[8]) { + default: + break; + case 'd': + if (strcmp("tls", s + 9) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_MAX_DTLS; + break; + case 't': + if (strcmp("ls", s + 9) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_MAX_TLS; + } + } + } + break; + case 'i': + switch(s[6]) { + default: + break; + case 'n': + switch(s[7]) { + default: + break; + case '-': + switch(s[8]) { + default: + break; + case 'd': + if (strcmp("tls", s + 9) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_MIN_DTLS; + break; + case 't': + if (strcmp("ls", s + 9) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_MIN_TLS; + } + } + } + break; + case 'u': + if (strcmp("lti", s + 6) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK; + } + break; + case 'n': + if (strcmp("egotiated-version", s + 5) == 0) + return PIDX_ASYM_CIPHER_PARAM_TLS_NEGOTIATED_VERSION; + break; + case 's': + switch(s[5]) { + default: + break; + case 'i': + switch(s[6]) { + default: + break; + case 'g': + switch(s[7]) { + default: + break; + case 'a': + switch(s[8]) { + default: + break; + case 'l': + switch(s[9]) { + default: + break; + case 'g': + switch(s[10]) { + default: + break; + case '-': + switch(s[11]) { + default: + break; + case 'c': + if (strcmp("ode-point", s + 12) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_CODE_POINT; + break; + case 'h': + switch(s[12]) { + default: + break; + case 'a': + switch(s[13]) { + default: + break; + case 's': + switch(s[14]) { + default: + break; + case 'h': + switch(s[15]) { + default: + break; + case '-': + switch(s[16]) { + default: + break; + case 'n': + if (strcmp("ame", s + 17) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_HASH_NAME; + break; + case 'o': + if (strcmp("id", s + 17) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_HASH_OID; + } + } + } + } + } + break; + case 'i': + if (strcmp("ana-name", s + 12) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_IANA_NAME; + break; + case 'k': + switch(s[12]) { + default: + break; + case 'e': + switch(s[13]) { + default: + break; + case 'y': + switch(s[14]) { + default: + break; + case 't': + switch(s[15]) { + default: + break; + case 'y': + switch(s[16]) { + default: + break; + case 'p': + switch(s[17]) { + default: + break; + case 'e': + switch(s[18]) { + default: + break; + case '-': + if (strcmp("oid", s + 19) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_KEYTYPE_OID; + break; + case '\0': + return PIDX_CAPABILITY_TLS_SIGALG_KEYTYPE; + } + } + } + } + } + } + } + break; + case 'n': + if (strcmp("ame", s + 12) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_NAME; + break; + case 'o': + if (strcmp("id", s + 12) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_OID; + break; + case 's': + switch(s[12]) { + default: + break; + case 'e': + if (strcmp("c-bits", s + 13) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_SECURITY_BITS; + break; + case 'i': + switch(s[13]) { + default: + break; + case 'g': + switch(s[14]) { + default: + break; + case '-': + switch(s[15]) { + default: + break; + case 'n': + if (strcmp("ame", s + 16) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_SIG_NAME; + break; + case 'o': + if (strcmp("id", s + 16) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_SIG_OID; + } + } + } + } + } + } + } + } + } + } + } + break; + case 'v': + if (strcmp("ersion", s + 5) == 0) + return PIDX_CIPHER_PARAM_TLS_VERSION; + } + break; + case '1': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'p': + switch(s[6]) { + default: + break; + case 'r': + switch(s[7]) { + default: + break; + case 'f': + switch(s[8]) { + default: + break; + case '-': + switch(s[9]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 10) == 0) + return PIDX_PROV_PARAM_TLS1_PRF_DIGEST_CHECK; + break; + case 'e': + if (strcmp("ms-check", s + 10) == 0) + return PIDX_PROV_PARAM_TLS1_PRF_EMS_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 10) == 0) + return PIDX_PROV_PARAM_TLS1_PRF_KEY_CHECK; + } + } + } + } + } + break; + case '3': + switch(s[5]) { + default: + break; + case '-': + switch(s[6]) { + default: + break; + case 'k': + switch(s[7]) { + default: + break; + case 'd': + switch(s[8]) { + default: + break; + case 'f': + switch(s[9]) { + default: + break; + case '-': + switch(s[10]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 11) == 0) + return PIDX_PROV_PARAM_TLS13_KDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 11) == 0) + return PIDX_PROV_PARAM_TLS13_KDF_KEY_CHECK; + } + } + } + } + } + } + break; + case 'm': + switch(s[5]) { + default: + break; + case 'u': + switch(s[6]) { + default: + break; + case 'l': + switch(s[7]) { + default: + break; + case 't': + switch(s[8]) { + default: + break; + case 'i': + switch(s[9]) { + default: + break; + case '_': + switch(s[10]) { + default: + break; + case 'a': + switch(s[11]) { + default: + break; + case 'a': + switch(s[12]) { + default: + break; + case 'd': + switch(s[13]) { + default: + break; + case 'p': + if (strcmp("acklen", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD_PACKLEN; + break; + case '\0': + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD; + } + } + } + break; + case 'e': + switch(s[11]) { + default: + break; + case 'n': + switch(s[12]) { + default: + break; + case 'c': + switch(s[13]) { + default: + break; + case 'i': + if (strcmp("n", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_IN; + break; + case 'l': + if (strcmp("en", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_LEN; + break; + case '\0': + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC; + } + } + } + break; + case 'i': + if (strcmp("nterleave", s + 11) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_INTERLEAVE; + break; + case 'm': + switch(s[11]) { + default: + break; + case 'a': + switch(s[12]) { + default: + break; + case 'x': + switch(s[13]) { + default: + break; + case 'b': + if (strcmp("ufsz", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_BUFSIZE; + break; + case 's': + if (strcmp("ndfrag", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_SEND_FRAGMENT; + } + } + } + } + } + } + } + } + } + } + break; + case 'a': + switch(s[4]) { + default: + break; + case 'a': + switch(s[5]) { + default: + break; + case 'd': + switch(s[6]) { + default: + break; + case 'p': + if (strcmp("ad", s + 7) == 0) + return PIDX_CIPHER_PARAM_AEAD_TLS1_AAD_PAD; + break; + case '\0': + return PIDX_CIPHER_PARAM_AEAD_TLS1_AAD; + } + } + } + break; + case 'i': + switch(s[4]) { + default: + break; + case 'v': + switch(s[5]) { + default: + break; + case 'f': + if (strcmp("ixed", s + 6) == 0) + return PIDX_CIPHER_PARAM_AEAD_TLS1_IV_FIXED; + break; + case 'g': + if (strcmp("en", s + 6) == 0) + return PIDX_CIPHER_PARAM_AEAD_TLS1_GET_IV_GEN; + break; + case 'i': + if (strcmp("nv", s + 6) == 0) + return PIDX_CIPHER_PARAM_AEAD_TLS1_SET_IV_INV; + } + } + break; + case 't': + if (strcmp("ree", s + 4) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_TLSTREE; + } + } + break; + case 'p': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_TP_BASIS; + } + break; + case 'y': + if (strcmp("pe", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_TYPE; + } + break; + case 'u': + switch(s[1]) { + default: + break; + case 'k': + if (strcmp("m", s + 2) == 0) + return PIDX_KDF_PARAM_UKM; + break; + case 'p': + if (strcmp("dated-iv", s + 2) == 0) + return PIDX_CIPHER_PARAM_UPDATED_IV; + break; + case 's': + switch(s[2]) { + default: + break; + case 'e': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'b': + if (strcmp("its", s + 5) == 0) + return PIDX_CIPHER_PARAM_USE_BITS; + break; + case 'c': + if (strcmp("ofactor-flag", s + 5) == 0) + return PIDX_PKEY_PARAM_USE_COFACTOR_FLAG; + break; + case 'k': + if (strcmp("eybits", s + 5) == 0) + return PIDX_KDF_PARAM_X942_USE_KEYBITS; + break; + case 'l': + switch(s[5]) { + default: + break; + case '\0': + return PIDX_KDF_PARAM_KBKDF_USE_L; + } + break; + case 's': + if (strcmp("eparator", s + 5) == 0) + return PIDX_KDF_PARAM_KBKDF_USE_SEPARATOR; + } + break; + case '_': + switch(s[4]) { + default: + break; + case 'd': + if (strcmp("erivation_function", s + 5) == 0) + return PIDX_DRBG_PARAM_USE_DF; + break; + case 'e': + if (strcmp("tm", s + 5) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_USE_ETM; + } + } + } + } + break; + case 'v': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'l': + switch(s[3]) { + default: + break; + case 'i': + switch(s[4]) { + default: + break; + case 'd': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case 'e': + switch(s[8]) { + default: + break; + case '-': + switch(s[9]) { + default: + break; + case 'g': + switch(s[10]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_VALIDATE_G; + } + break; + case 'l': + if (strcmp("egacy", s + 10) == 0) + return PIDX_PKEY_PARAM_FFC_VALIDATE_LEGACY; + break; + case 'p': + if (strcmp("q", s + 10) == 0) + return PIDX_PKEY_PARAM_FFC_VALIDATE_PQ; + } + } + } + } + } + } + } + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'r': + switch(s[3]) { + default: + break; + case 'i': + if (strcmp("fy-message", s + 4) == 0) + return PIDX_SIGNATURE_PARAM_FIPS_VERIFY_MESSAGE; + break; + case 's': + if (strcmp("ion", s + 4) == 0) + return PIDX_PROV_PARAM_VERSION; + } + } + } + break; + case 'x': + switch(s[1]) { + default: + break; + case '9': + switch(s[2]) { + default: + break; + case '4': + if (strcmp("2kdf-key-check", s + 3) == 0) + return PIDX_PROV_PARAM_X942KDF_KEY_CHECK; + break; + case '6': + switch(s[3]) { + default: + break; + case '3': + switch(s[4]) { + default: + break; + case 'k': + switch(s[5]) { + default: + break; + case 'd': + switch(s[6]) { + default: + break; + case 'f': + switch(s[7]) { + default: + break; + case '-': + switch(s[8]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 9) == 0) + return PIDX_PROV_PARAM_X963KDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 9) == 0) + return PIDX_PROV_PARAM_X963KDF_KEY_CHECK; + } + } + } + } + } + } + } + break; + case 'c': + if (strcmp("ghash", s + 2) == 0) + return PIDX_KDF_PARAM_SSHKDF_XCGHASH; + break; + case 'o': + switch(s[2]) { + default: + break; + case 'f': + switch(s[3]) { + default: + break; + case 'l': + if (strcmp("en", s + 4) == 0) + return PIDX_DIGEST_PARAM_XOFLEN; + break; + case '\0': + return PIDX_MAC_PARAM_XOF; + } + } + break; + case 'p': + switch(s[2]) { + default: + break; + case '1': + switch(s[3]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XP1; + } + break; + case '2': + switch(s[3]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XP2; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XP; + } + break; + case 'q': + switch(s[2]) { + default: + break; + case '1': + switch(s[3]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XQ1; + } + break; + case '2': + switch(s[3]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XQ2; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XQ; + } + break; + case 't': + if (strcmp("s_standard", s + 2) == 0) + return PIDX_CIPHER_PARAM_XTS_STANDARD; + } + } + return -1; +} + +/* End of TRIE */ diff --git a/deps/openssl/config/archs/VC-WIN32/asm/crypto/poly1305/poly1305-x86.asm b/deps/openssl/config/archs/VC-WIN32/asm/crypto/poly1305/poly1305-x86.asm index ba241b7992bd8c..436d70f5315f63 100644 --- a/deps/openssl/config/archs/VC-WIN32/asm/crypto/poly1305/poly1305-x86.asm +++ b/deps/openssl/config/archs/VC-WIN32/asm/crypto/poly1305/poly1305-x86.asm @@ -1900,4 +1900,4 @@ db 60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111 db 114,103,62,0 align 4 segment .bss -common _OPENSSL_ia32cap_P 16 +common _OPENSSL_ia32cap_P 40 diff --git a/deps/openssl/config/archs/VC-WIN32/asm/crypto/rc4/rc4-586.asm b/deps/openssl/config/archs/VC-WIN32/asm/crypto/rc4/rc4-586.asm index c2758bfe8f69b1..8d4906eba79ef8 100644 --- a/deps/openssl/config/archs/VC-WIN32/asm/crypto/rc4/rc4-586.asm +++ b/deps/openssl/config/archs/VC-WIN32/asm/crypto/rc4/rc4-586.asm @@ -371,4 +371,4 @@ db 80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114 db 111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 align 64 segment .bss -common _OPENSSL_ia32cap_P 16 +common _OPENSSL_ia32cap_P 40 diff --git a/deps/openssl/config/archs/VC-WIN32/asm/crypto/sha/sha1-586.asm b/deps/openssl/config/archs/VC-WIN32/asm/crypto/sha/sha1-586.asm index 1112de399f7e89..70a2dbb81d9ddc 100644 --- a/deps/openssl/config/archs/VC-WIN32/asm/crypto/sha/sha1-586.asm +++ b/deps/openssl/config/archs/VC-WIN32/asm/crypto/sha/sha1-586.asm @@ -3967,4 +3967,4 @@ db 102,111,114,109,32,102,111,114,32,120,56,54,44,32,67,82 db 89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112 db 114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 segment .bss -common _OPENSSL_ia32cap_P 16 +common _OPENSSL_ia32cap_P 40 diff --git a/deps/openssl/config/archs/VC-WIN32/asm/crypto/sha/sha256-586.asm b/deps/openssl/config/archs/VC-WIN32/asm/crypto/sha/sha256-586.asm index 1108147ae6c7c0..b145406ab50bd7 100644 --- a/deps/openssl/config/archs/VC-WIN32/asm/crypto/sha/sha256-586.asm +++ b/deps/openssl/config/archs/VC-WIN32/asm/crypto/sha/sha256-586.asm @@ -6786,4 +6786,4 @@ L$018avx_bmi_00_47: pop ebp ret segment .bss -common _OPENSSL_ia32cap_P 16 +common _OPENSSL_ia32cap_P 40 diff --git a/deps/openssl/config/archs/VC-WIN32/asm/crypto/sha/sha512-586.asm b/deps/openssl/config/archs/VC-WIN32/asm/crypto/sha/sha512-586.asm index 2202228ce0214e..7f78330a2262e5 100644 --- a/deps/openssl/config/archs/VC-WIN32/asm/crypto/sha/sha512-586.asm +++ b/deps/openssl/config/archs/VC-WIN32/asm/crypto/sha/sha512-586.asm @@ -2832,4 +2832,4 @@ db 67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97 db 112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103 db 62,0 segment .bss -common _OPENSSL_ia32cap_P 16 +common _OPENSSL_ia32cap_P 40 diff --git a/deps/openssl/config/archs/VC-WIN32/asm/crypto/x86cpuid.asm b/deps/openssl/config/archs/VC-WIN32/asm/crypto/x86cpuid.asm index fc920ed46a1e4a..1f336501d737c8 100644 --- a/deps/openssl/config/archs/VC-WIN32/asm/crypto/x86cpuid.asm +++ b/deps/openssl/config/archs/VC-WIN32/asm/crypto/x86cpuid.asm @@ -123,6 +123,24 @@ L$002generic: xor ecx,ecx cpuid mov DWORD [8+edi],ebx + mov DWORD [12+edi],ecx + mov DWORD [16+edi],edx + cmp eax,1 + jb NEAR L$005no_extended_info + mov eax,7 + mov ecx,1 + cpuid + mov DWORD [20+edi],eax + mov DWORD [24+edi],edx + mov DWORD [28+edi],ebx + mov DWORD [32+edi],ecx + and edx,524288 + cmp edx,0 + je NEAR L$005no_extended_info + mov eax,36 + mov ecx,0 + cpuid + mov DWORD [36+edi],ebx L$005no_extended_info: bt ebp,27 jnc NEAR L$006clear_avx @@ -138,6 +156,7 @@ L$008clear_xmm: and esi,4278190079 L$006clear_avx: and ebp,4026525695 + and DWORD [20+edi],4286578687 and DWORD [8+edi],4294967263 L$007done: mov eax,esi @@ -500,7 +519,7 @@ L$031done: pop edi ret segment .bss -common _OPENSSL_ia32cap_P 16 +common _OPENSSL_ia32cap_P 40 segment .CRT$XCU data align=4 extern _OPENSSL_cpuid_setup dd _OPENSSL_cpuid_setup diff --git a/deps/openssl/config/archs/VC-WIN32/asm/include/internal/param_names.h b/deps/openssl/config/archs/VC-WIN32/asm/include/internal/param_names.h new file mode 100644 index 00000000000000..ec5bff6e31c126 --- /dev/null +++ b/deps/openssl/config/archs/VC-WIN32/asm/include/internal/param_names.h @@ -0,0 +1,469 @@ +/* + * WARNING: do not edit! + * Generated by makefile from include/internal/param_names.h.in + * + * Copyright 2023 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + +int ossl_param_find_pidx(const char *s); + +/* Parameter name definitions - generated by util/perl/OpenSSL/paramnames.pm */ +#define NUM_PIDX 346 + +#define PIDX_ALG_PARAM_ALGORITHM_ID 0 +#define PIDX_ALG_PARAM_ALGORITHM_ID_PARAMS 1 +#define PIDX_ALG_PARAM_CIPHER 2 +#define PIDX_ALG_PARAM_DIGEST 3 +#define PIDX_ALG_PARAM_ENGINE 4 +#define PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR 5 +#define PIDX_ALG_PARAM_MAC 6 +#define PIDX_ALG_PARAM_PROPERTIES 7 +#define PIDX_ASYM_CIPHER_PARAM_DIGEST PIDX_PKEY_PARAM_DIGEST +#define PIDX_ASYM_CIPHER_PARAM_ENGINE PIDX_PKEY_PARAM_ENGINE +#define PIDX_ASYM_CIPHER_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_ASYM_CIPHER_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_ASYM_CIPHER_PARAM_FIPS_RSA_PKCS15_PAD_DISABLED PIDX_PROV_PARAM_RSA_PKCS15_PAD_DISABLED +#define PIDX_ASYM_CIPHER_PARAM_IMPLICIT_REJECTION 8 +#define PIDX_ASYM_CIPHER_PARAM_MGF1_DIGEST PIDX_PKEY_PARAM_MGF1_DIGEST +#define PIDX_ASYM_CIPHER_PARAM_MGF1_DIGEST_PROPS PIDX_PKEY_PARAM_MGF1_PROPERTIES +#define PIDX_ASYM_CIPHER_PARAM_OAEP_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_ASYM_CIPHER_PARAM_OAEP_DIGEST_PROPS 9 +#define PIDX_ASYM_CIPHER_PARAM_OAEP_LABEL 10 +#define PIDX_ASYM_CIPHER_PARAM_PAD_MODE PIDX_PKEY_PARAM_PAD_MODE +#define PIDX_ASYM_CIPHER_PARAM_PROPERTIES PIDX_PKEY_PARAM_PROPERTIES +#define PIDX_ASYM_CIPHER_PARAM_TLS_CLIENT_VERSION 11 +#define PIDX_ASYM_CIPHER_PARAM_TLS_NEGOTIATED_VERSION 12 +#define PIDX_CAPABILITY_TLS_GROUP_ALG 13 +#define PIDX_CAPABILITY_TLS_GROUP_ID 14 +#define PIDX_CAPABILITY_TLS_GROUP_IS_KEM 15 +#define PIDX_CAPABILITY_TLS_GROUP_MAX_DTLS 16 +#define PIDX_CAPABILITY_TLS_GROUP_MAX_TLS 17 +#define PIDX_CAPABILITY_TLS_GROUP_MIN_DTLS 18 +#define PIDX_CAPABILITY_TLS_GROUP_MIN_TLS 19 +#define PIDX_CAPABILITY_TLS_GROUP_NAME 20 +#define PIDX_CAPABILITY_TLS_GROUP_NAME_INTERNAL 21 +#define PIDX_CAPABILITY_TLS_GROUP_SECURITY_BITS 22 +#define PIDX_CAPABILITY_TLS_SIGALG_CODE_POINT 23 +#define PIDX_CAPABILITY_TLS_SIGALG_HASH_NAME 24 +#define PIDX_CAPABILITY_TLS_SIGALG_HASH_OID 25 +#define PIDX_CAPABILITY_TLS_SIGALG_IANA_NAME 26 +#define PIDX_CAPABILITY_TLS_SIGALG_KEYTYPE 27 +#define PIDX_CAPABILITY_TLS_SIGALG_KEYTYPE_OID 28 +#define PIDX_CAPABILITY_TLS_SIGALG_MAX_DTLS 16 +#define PIDX_CAPABILITY_TLS_SIGALG_MAX_TLS 17 +#define PIDX_CAPABILITY_TLS_SIGALG_MIN_DTLS 18 +#define PIDX_CAPABILITY_TLS_SIGALG_MIN_TLS 19 +#define PIDX_CAPABILITY_TLS_SIGALG_NAME 29 +#define PIDX_CAPABILITY_TLS_SIGALG_OID 30 +#define PIDX_CAPABILITY_TLS_SIGALG_SECURITY_BITS 31 +#define PIDX_CAPABILITY_TLS_SIGALG_SIG_NAME 32 +#define PIDX_CAPABILITY_TLS_SIGALG_SIG_OID 33 +#define PIDX_CIPHER_PARAM_AEAD 34 +#define PIDX_CIPHER_PARAM_AEAD_IVLEN PIDX_CIPHER_PARAM_IVLEN +#define PIDX_CIPHER_PARAM_AEAD_IV_GENERATED 35 +#define PIDX_CIPHER_PARAM_AEAD_MAC_KEY 36 +#define PIDX_CIPHER_PARAM_AEAD_TAG 37 +#define PIDX_CIPHER_PARAM_AEAD_TAGLEN 38 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_AAD 39 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_AAD_PAD 40 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_GET_IV_GEN 41 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_IV_FIXED 42 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_SET_IV_INV 43 +#define PIDX_CIPHER_PARAM_ALGORITHM_ID PIDX_ALG_PARAM_ALGORITHM_ID +#define PIDX_CIPHER_PARAM_ALGORITHM_ID_PARAMS PIDX_ALG_PARAM_ALGORITHM_ID_PARAMS +#define PIDX_CIPHER_PARAM_ALGORITHM_ID_PARAMS_OLD 44 +#define PIDX_CIPHER_PARAM_BLOCK_SIZE 45 +#define PIDX_CIPHER_PARAM_CTS 46 +#define PIDX_CIPHER_PARAM_CTS_MODE 47 +#define PIDX_CIPHER_PARAM_CUSTOM_IV 48 +#define PIDX_CIPHER_PARAM_DECRYPT_ONLY 49 +#define PIDX_CIPHER_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_CIPHER_PARAM_FIPS_ENCRYPT_CHECK 50 +#define PIDX_CIPHER_PARAM_HAS_RAND_KEY 51 +#define PIDX_CIPHER_PARAM_IV 52 +#define PIDX_CIPHER_PARAM_IVLEN 53 +#define PIDX_CIPHER_PARAM_KEYLEN 54 +#define PIDX_CIPHER_PARAM_MODE 55 +#define PIDX_CIPHER_PARAM_NUM 56 +#define PIDX_CIPHER_PARAM_PADDING 57 +#define PIDX_CIPHER_PARAM_PIPELINE_AEAD_TAG 58 +#define PIDX_CIPHER_PARAM_RANDOM_KEY 59 +#define PIDX_CIPHER_PARAM_RC2_KEYBITS 60 +#define PIDX_CIPHER_PARAM_ROUNDS 61 +#define PIDX_CIPHER_PARAM_SPEED 62 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK 63 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD 64 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD_PACKLEN 65 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC 66 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_IN 67 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_LEN 68 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_INTERLEAVE 69 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_BUFSIZE 70 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_SEND_FRAGMENT 71 +#define PIDX_CIPHER_PARAM_TLS_MAC 72 +#define PIDX_CIPHER_PARAM_TLS_MAC_SIZE 73 +#define PIDX_CIPHER_PARAM_TLS_VERSION 74 +#define PIDX_CIPHER_PARAM_UPDATED_IV 75 +#define PIDX_CIPHER_PARAM_USE_BITS 76 +#define PIDX_CIPHER_PARAM_XTS_STANDARD 77 +#define PIDX_DECODER_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_DIGEST_PARAM_ALGID_ABSENT 78 +#define PIDX_DIGEST_PARAM_BLOCK_SIZE 45 +#define PIDX_DIGEST_PARAM_MICALG 79 +#define PIDX_DIGEST_PARAM_PAD_TYPE 80 +#define PIDX_DIGEST_PARAM_SIZE 81 +#define PIDX_DIGEST_PARAM_SSL3_MS 82 +#define PIDX_DIGEST_PARAM_XOF 83 +#define PIDX_DIGEST_PARAM_XOFLEN 84 +#define PIDX_DRBG_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_DRBG_PARAM_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_DRBG_PARAM_ENTROPY_REQUIRED 85 +#define PIDX_DRBG_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_DRBG_PARAM_FIPS_DIGEST_CHECK PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK +#define PIDX_DRBG_PARAM_MAC PIDX_ALG_PARAM_MAC +#define PIDX_DRBG_PARAM_MAX_ADINLEN 86 +#define PIDX_DRBG_PARAM_MAX_ENTROPYLEN 87 +#define PIDX_DRBG_PARAM_MAX_LENGTH 88 +#define PIDX_DRBG_PARAM_MAX_NONCELEN 89 +#define PIDX_DRBG_PARAM_MAX_PERSLEN 90 +#define PIDX_DRBG_PARAM_MIN_ENTROPYLEN 91 +#define PIDX_DRBG_PARAM_MIN_LENGTH 92 +#define PIDX_DRBG_PARAM_MIN_NONCELEN 93 +#define PIDX_DRBG_PARAM_PREDICTION_RESISTANCE 94 +#define PIDX_DRBG_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_DRBG_PARAM_RANDOM_DATA 95 +#define PIDX_DRBG_PARAM_RESEED_COUNTER 96 +#define PIDX_DRBG_PARAM_RESEED_REQUESTS 97 +#define PIDX_DRBG_PARAM_RESEED_TIME 98 +#define PIDX_DRBG_PARAM_RESEED_TIME_INTERVAL 99 +#define PIDX_DRBG_PARAM_SIZE 81 +#define PIDX_DRBG_PARAM_USE_DF 100 +#define PIDX_ENCODER_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_ENCODER_PARAM_ENCRYPT_LEVEL 101 +#define PIDX_ENCODER_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_ENCODER_PARAM_SAVE_PARAMETERS 102 +#define PIDX_EXCHANGE_PARAM_EC_ECDH_COFACTOR_MODE 103 +#define PIDX_EXCHANGE_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_EXCHANGE_PARAM_FIPS_DIGEST_CHECK PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK +#define PIDX_EXCHANGE_PARAM_FIPS_ECDH_COFACTOR_CHECK PIDX_PROV_PARAM_ECDH_COFACTOR_CHECK +#define PIDX_EXCHANGE_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_EXCHANGE_PARAM_KDF_DIGEST 104 +#define PIDX_EXCHANGE_PARAM_KDF_DIGEST_PROPS 105 +#define PIDX_EXCHANGE_PARAM_KDF_OUTLEN 106 +#define PIDX_EXCHANGE_PARAM_KDF_TYPE 107 +#define PIDX_EXCHANGE_PARAM_KDF_UKM 108 +#define PIDX_EXCHANGE_PARAM_PAD 109 +#define PIDX_GEN_PARAM_ITERATION 110 +#define PIDX_GEN_PARAM_POTENTIAL 111 +#define PIDX_KDF_PARAM_ARGON2_AD 112 +#define PIDX_KDF_PARAM_ARGON2_LANES 113 +#define PIDX_KDF_PARAM_ARGON2_MEMCOST 114 +#define PIDX_KDF_PARAM_ARGON2_VERSION 115 +#define PIDX_KDF_PARAM_CEK_ALG 116 +#define PIDX_KDF_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_KDF_PARAM_CONSTANT 117 +#define PIDX_KDF_PARAM_DATA 118 +#define PIDX_KDF_PARAM_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_KDF_PARAM_EARLY_CLEAN 119 +#define PIDX_KDF_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_KDF_PARAM_FIPS_DIGEST_CHECK PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK +#define PIDX_KDF_PARAM_FIPS_EMS_CHECK 120 +#define PIDX_KDF_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_KDF_PARAM_HMACDRBG_ENTROPY 121 +#define PIDX_KDF_PARAM_HMACDRBG_NONCE 122 +#define PIDX_KDF_PARAM_INFO 123 +#define PIDX_KDF_PARAM_ITER 124 +#define PIDX_KDF_PARAM_KBKDF_R 125 +#define PIDX_KDF_PARAM_KBKDF_USE_L 126 +#define PIDX_KDF_PARAM_KBKDF_USE_SEPARATOR 127 +#define PIDX_KDF_PARAM_KEY 128 +#define PIDX_KDF_PARAM_LABEL 129 +#define PIDX_KDF_PARAM_MAC PIDX_ALG_PARAM_MAC +#define PIDX_KDF_PARAM_MAC_SIZE 130 +#define PIDX_KDF_PARAM_MODE 55 +#define PIDX_KDF_PARAM_PASSWORD 131 +#define PIDX_KDF_PARAM_PKCS12_ID 132 +#define PIDX_KDF_PARAM_PKCS5 133 +#define PIDX_KDF_PARAM_PREFIX 134 +#define PIDX_KDF_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_KDF_PARAM_SALT 135 +#define PIDX_KDF_PARAM_SCRYPT_MAXMEM 136 +#define PIDX_KDF_PARAM_SCRYPT_N 137 +#define PIDX_KDF_PARAM_SCRYPT_P 138 +#define PIDX_KDF_PARAM_SCRYPT_R 125 +#define PIDX_KDF_PARAM_SECRET 139 +#define PIDX_KDF_PARAM_SEED 140 +#define PIDX_KDF_PARAM_SIZE 81 +#define PIDX_KDF_PARAM_SSHKDF_SESSION_ID 141 +#define PIDX_KDF_PARAM_SSHKDF_TYPE 142 +#define PIDX_KDF_PARAM_SSHKDF_XCGHASH 143 +#define PIDX_KDF_PARAM_THREADS 144 +#define PIDX_KDF_PARAM_UKM 145 +#define PIDX_KDF_PARAM_X942_ACVPINFO 146 +#define PIDX_KDF_PARAM_X942_PARTYUINFO 147 +#define PIDX_KDF_PARAM_X942_PARTYVINFO 148 +#define PIDX_KDF_PARAM_X942_SUPP_PRIVINFO 149 +#define PIDX_KDF_PARAM_X942_SUPP_PUBINFO 150 +#define PIDX_KDF_PARAM_X942_USE_KEYBITS 151 +#define PIDX_KEM_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_KEM_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_KEM_PARAM_IKME 152 +#define PIDX_KEM_PARAM_OPERATION 153 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_BLOCK_PADDING 154 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_HS_PADDING 155 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_MAX_EARLY_DATA 156 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_MAX_FRAG_LEN 157 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_MODE 55 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_OPTIONS 158 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_READ_AHEAD 159 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_STREAM_MAC 160 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_TLSTREE 161 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_USE_ETM 162 +#define PIDX_LIBSSL_RECORD_LAYER_READ_BUFFER_LEN 163 +#define PIDX_MAC_PARAM_BLOCK_SIZE 164 +#define PIDX_MAC_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_MAC_PARAM_CUSTOM 165 +#define PIDX_MAC_PARAM_C_ROUNDS 166 +#define PIDX_MAC_PARAM_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_MAC_PARAM_DIGEST_NOINIT 167 +#define PIDX_MAC_PARAM_DIGEST_ONESHOT 168 +#define PIDX_MAC_PARAM_D_ROUNDS 169 +#define PIDX_MAC_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_MAC_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_MAC_PARAM_FIPS_NO_SHORT_MAC PIDX_PROV_PARAM_NO_SHORT_MAC +#define PIDX_MAC_PARAM_IV 52 +#define PIDX_MAC_PARAM_KEY 128 +#define PIDX_MAC_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_MAC_PARAM_SALT 135 +#define PIDX_MAC_PARAM_SIZE 81 +#define PIDX_MAC_PARAM_TLS_DATA_SIZE 170 +#define PIDX_MAC_PARAM_XOF 83 +#define PIDX_OBJECT_PARAM_DATA 118 +#define PIDX_OBJECT_PARAM_DATA_STRUCTURE 171 +#define PIDX_OBJECT_PARAM_DATA_TYPE 172 +#define PIDX_OBJECT_PARAM_DESC 173 +#define PIDX_OBJECT_PARAM_INPUT_TYPE 174 +#define PIDX_OBJECT_PARAM_REFERENCE 175 +#define PIDX_OBJECT_PARAM_TYPE 142 +#define PIDX_PASSPHRASE_PARAM_INFO 123 +#define PIDX_PKEY_PARAM_ALGORITHM_ID PIDX_ALG_PARAM_ALGORITHM_ID +#define PIDX_PKEY_PARAM_ALGORITHM_ID_PARAMS PIDX_ALG_PARAM_ALGORITHM_ID_PARAMS +#define PIDX_PKEY_PARAM_BITS 176 +#define PIDX_PKEY_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_PKEY_PARAM_DEFAULT_DIGEST 177 +#define PIDX_PKEY_PARAM_DHKEM_IKM 178 +#define PIDX_PKEY_PARAM_DH_GENERATOR 179 +#define PIDX_PKEY_PARAM_DH_PRIV_LEN 180 +#define PIDX_PKEY_PARAM_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_PKEY_PARAM_DIGEST_SIZE 181 +#define PIDX_PKEY_PARAM_DIST_ID 182 +#define PIDX_PKEY_PARAM_EC_A 183 +#define PIDX_PKEY_PARAM_EC_B 184 +#define PIDX_PKEY_PARAM_EC_CHAR2_M 185 +#define PIDX_PKEY_PARAM_EC_CHAR2_PP_K1 186 +#define PIDX_PKEY_PARAM_EC_CHAR2_PP_K2 187 +#define PIDX_PKEY_PARAM_EC_CHAR2_PP_K3 188 +#define PIDX_PKEY_PARAM_EC_CHAR2_TP_BASIS 189 +#define PIDX_PKEY_PARAM_EC_CHAR2_TYPE 190 +#define PIDX_PKEY_PARAM_EC_COFACTOR 191 +#define PIDX_PKEY_PARAM_EC_DECODED_FROM_EXPLICIT_PARAMS 192 +#define PIDX_PKEY_PARAM_EC_ENCODING 193 +#define PIDX_PKEY_PARAM_EC_FIELD_TYPE 194 +#define PIDX_PKEY_PARAM_EC_GENERATOR 195 +#define PIDX_PKEY_PARAM_EC_GROUP_CHECK_TYPE 196 +#define PIDX_PKEY_PARAM_EC_INCLUDE_PUBLIC 197 +#define PIDX_PKEY_PARAM_EC_ORDER 198 +#define PIDX_PKEY_PARAM_EC_P 138 +#define PIDX_PKEY_PARAM_EC_POINT_CONVERSION_FORMAT 199 +#define PIDX_PKEY_PARAM_EC_PUB_X 200 +#define PIDX_PKEY_PARAM_EC_PUB_Y 201 +#define PIDX_PKEY_PARAM_EC_SEED 140 +#define PIDX_PKEY_PARAM_ENCODED_PUBLIC_KEY 202 +#define PIDX_PKEY_PARAM_ENGINE PIDX_ALG_PARAM_ENGINE +#define PIDX_PKEY_PARAM_FFC_COFACTOR 203 +#define PIDX_PKEY_PARAM_FFC_DIGEST PIDX_PKEY_PARAM_DIGEST +#define PIDX_PKEY_PARAM_FFC_DIGEST_PROPS PIDX_PKEY_PARAM_PROPERTIES +#define PIDX_PKEY_PARAM_FFC_G 204 +#define PIDX_PKEY_PARAM_FFC_GINDEX 205 +#define PIDX_PKEY_PARAM_FFC_H 206 +#define PIDX_PKEY_PARAM_FFC_P 138 +#define PIDX_PKEY_PARAM_FFC_PBITS 207 +#define PIDX_PKEY_PARAM_FFC_PCOUNTER 208 +#define PIDX_PKEY_PARAM_FFC_Q 209 +#define PIDX_PKEY_PARAM_FFC_QBITS 210 +#define PIDX_PKEY_PARAM_FFC_SEED 140 +#define PIDX_PKEY_PARAM_FFC_TYPE 142 +#define PIDX_PKEY_PARAM_FFC_VALIDATE_G 211 +#define PIDX_PKEY_PARAM_FFC_VALIDATE_LEGACY 212 +#define PIDX_PKEY_PARAM_FFC_VALIDATE_PQ 213 +#define PIDX_PKEY_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK 214 +#define PIDX_PKEY_PARAM_FIPS_KEY_CHECK 215 +#define PIDX_PKEY_PARAM_FIPS_SIGN_CHECK 216 +#define PIDX_PKEY_PARAM_GROUP_NAME 217 +#define PIDX_PKEY_PARAM_IMPLICIT_REJECTION 8 +#define PIDX_PKEY_PARAM_MANDATORY_DIGEST 218 +#define PIDX_PKEY_PARAM_MASKGENFUNC 219 +#define PIDX_PKEY_PARAM_MAX_SIZE 220 +#define PIDX_PKEY_PARAM_MGF1_DIGEST 221 +#define PIDX_PKEY_PARAM_MGF1_PROPERTIES 222 +#define PIDX_PKEY_PARAM_ML_DSA_INPUT_FORMATS 223 +#define PIDX_PKEY_PARAM_ML_DSA_OUTPUT_FORMATS 224 +#define PIDX_PKEY_PARAM_ML_DSA_PREFER_SEED 225 +#define PIDX_PKEY_PARAM_ML_DSA_RETAIN_SEED 226 +#define PIDX_PKEY_PARAM_ML_DSA_SEED 140 +#define PIDX_PKEY_PARAM_ML_KEM_IMPORT_PCT_TYPE 227 +#define PIDX_PKEY_PARAM_ML_KEM_INPUT_FORMATS 228 +#define PIDX_PKEY_PARAM_ML_KEM_OUTPUT_FORMATS 229 +#define PIDX_PKEY_PARAM_ML_KEM_PREFER_SEED 230 +#define PIDX_PKEY_PARAM_ML_KEM_RETAIN_SEED 231 +#define PIDX_PKEY_PARAM_ML_KEM_SEED 140 +#define PIDX_PKEY_PARAM_PAD_MODE 232 +#define PIDX_PKEY_PARAM_PRIV_KEY 233 +#define PIDX_PKEY_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_PKEY_PARAM_PUB_KEY 234 +#define PIDX_PKEY_PARAM_RSA_BITS PIDX_PKEY_PARAM_BITS +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT 235 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT1 236 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT2 237 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT3 238 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT4 239 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT5 240 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT6 241 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT7 242 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT8 243 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT9 244 +#define PIDX_PKEY_PARAM_RSA_D 245 +#define PIDX_PKEY_PARAM_RSA_DERIVE_FROM_PQ 246 +#define PIDX_PKEY_PARAM_RSA_DIGEST PIDX_PKEY_PARAM_DIGEST +#define PIDX_PKEY_PARAM_RSA_DIGEST_PROPS PIDX_PKEY_PARAM_PROPERTIES +#define PIDX_PKEY_PARAM_RSA_E 247 +#define PIDX_PKEY_PARAM_RSA_EXPONENT 248 +#define PIDX_PKEY_PARAM_RSA_EXPONENT1 249 +#define PIDX_PKEY_PARAM_RSA_EXPONENT10 250 +#define PIDX_PKEY_PARAM_RSA_EXPONENT2 251 +#define PIDX_PKEY_PARAM_RSA_EXPONENT3 252 +#define PIDX_PKEY_PARAM_RSA_EXPONENT4 253 +#define PIDX_PKEY_PARAM_RSA_EXPONENT5 254 +#define PIDX_PKEY_PARAM_RSA_EXPONENT6 255 +#define PIDX_PKEY_PARAM_RSA_EXPONENT7 256 +#define PIDX_PKEY_PARAM_RSA_EXPONENT8 257 +#define PIDX_PKEY_PARAM_RSA_EXPONENT9 258 +#define PIDX_PKEY_PARAM_RSA_FACTOR 259 +#define PIDX_PKEY_PARAM_RSA_FACTOR1 260 +#define PIDX_PKEY_PARAM_RSA_FACTOR10 261 +#define PIDX_PKEY_PARAM_RSA_FACTOR2 262 +#define PIDX_PKEY_PARAM_RSA_FACTOR3 263 +#define PIDX_PKEY_PARAM_RSA_FACTOR4 264 +#define PIDX_PKEY_PARAM_RSA_FACTOR5 265 +#define PIDX_PKEY_PARAM_RSA_FACTOR6 266 +#define PIDX_PKEY_PARAM_RSA_FACTOR7 267 +#define PIDX_PKEY_PARAM_RSA_FACTOR8 268 +#define PIDX_PKEY_PARAM_RSA_FACTOR9 269 +#define PIDX_PKEY_PARAM_RSA_MASKGENFUNC PIDX_PKEY_PARAM_MASKGENFUNC +#define PIDX_PKEY_PARAM_RSA_MGF1_DIGEST PIDX_PKEY_PARAM_MGF1_DIGEST +#define PIDX_PKEY_PARAM_RSA_N 137 +#define PIDX_PKEY_PARAM_RSA_PRIMES 270 +#define PIDX_PKEY_PARAM_RSA_PSS_SALTLEN 271 +#define PIDX_PKEY_PARAM_RSA_TEST_P1 272 +#define PIDX_PKEY_PARAM_RSA_TEST_P2 273 +#define PIDX_PKEY_PARAM_RSA_TEST_Q1 274 +#define PIDX_PKEY_PARAM_RSA_TEST_Q2 275 +#define PIDX_PKEY_PARAM_RSA_TEST_XP 276 +#define PIDX_PKEY_PARAM_RSA_TEST_XP1 277 +#define PIDX_PKEY_PARAM_RSA_TEST_XP2 278 +#define PIDX_PKEY_PARAM_RSA_TEST_XQ 279 +#define PIDX_PKEY_PARAM_RSA_TEST_XQ1 280 +#define PIDX_PKEY_PARAM_RSA_TEST_XQ2 281 +#define PIDX_PKEY_PARAM_SECURITY_BITS 282 +#define PIDX_PKEY_PARAM_SLH_DSA_SEED 140 +#define PIDX_PKEY_PARAM_USE_COFACTOR_ECDH PIDX_PKEY_PARAM_USE_COFACTOR_FLAG +#define PIDX_PKEY_PARAM_USE_COFACTOR_FLAG 283 +#define PIDX_PROV_PARAM_BUILDINFO 284 +#define PIDX_PROV_PARAM_CORE_MODULE_FILENAME 285 +#define PIDX_PROV_PARAM_CORE_PROV_NAME 286 +#define PIDX_PROV_PARAM_CORE_VERSION 287 +#define PIDX_PROV_PARAM_DRBG_TRUNC_DIGEST 288 +#define PIDX_PROV_PARAM_DSA_SIGN_DISABLED 289 +#define PIDX_PROV_PARAM_ECDH_COFACTOR_CHECK 290 +#define PIDX_PROV_PARAM_HKDF_DIGEST_CHECK 291 +#define PIDX_PROV_PARAM_HKDF_KEY_CHECK 292 +#define PIDX_PROV_PARAM_HMAC_KEY_CHECK 293 +#define PIDX_PROV_PARAM_KBKDF_KEY_CHECK 294 +#define PIDX_PROV_PARAM_KMAC_KEY_CHECK 295 +#define PIDX_PROV_PARAM_NAME 296 +#define PIDX_PROV_PARAM_NO_SHORT_MAC 297 +#define PIDX_PROV_PARAM_PBKDF2_LOWER_BOUND_CHECK 298 +#define PIDX_PROV_PARAM_RSA_PKCS15_PAD_DISABLED 299 +#define PIDX_PROV_PARAM_RSA_PSS_SALTLEN_CHECK 300 +#define PIDX_PROV_PARAM_RSA_SIGN_X931_PAD_DISABLED 301 +#define PIDX_PROV_PARAM_SECURITY_CHECKS 302 +#define PIDX_PROV_PARAM_SELF_TEST_DESC 303 +#define PIDX_PROV_PARAM_SELF_TEST_PHASE 304 +#define PIDX_PROV_PARAM_SELF_TEST_TYPE 305 +#define PIDX_PROV_PARAM_SIGNATURE_DIGEST_CHECK 306 +#define PIDX_PROV_PARAM_SSHKDF_DIGEST_CHECK 307 +#define PIDX_PROV_PARAM_SSHKDF_KEY_CHECK 308 +#define PIDX_PROV_PARAM_SSKDF_DIGEST_CHECK 309 +#define PIDX_PROV_PARAM_SSKDF_KEY_CHECK 310 +#define PIDX_PROV_PARAM_STATUS 311 +#define PIDX_PROV_PARAM_TDES_ENCRYPT_DISABLED 312 +#define PIDX_PROV_PARAM_TLS13_KDF_DIGEST_CHECK 313 +#define PIDX_PROV_PARAM_TLS13_KDF_KEY_CHECK 314 +#define PIDX_PROV_PARAM_TLS1_PRF_DIGEST_CHECK 315 +#define PIDX_PROV_PARAM_TLS1_PRF_EMS_CHECK 316 +#define PIDX_PROV_PARAM_TLS1_PRF_KEY_CHECK 317 +#define PIDX_PROV_PARAM_VERSION 115 +#define PIDX_PROV_PARAM_X942KDF_KEY_CHECK 318 +#define PIDX_PROV_PARAM_X963KDF_DIGEST_CHECK 319 +#define PIDX_PROV_PARAM_X963KDF_KEY_CHECK 320 +#define PIDX_RAND_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_RAND_PARAM_GENERATE 321 +#define PIDX_RAND_PARAM_MAX_REQUEST 322 +#define PIDX_RAND_PARAM_STATE 323 +#define PIDX_RAND_PARAM_STRENGTH 324 +#define PIDX_RAND_PARAM_TEST_ENTROPY 325 +#define PIDX_RAND_PARAM_TEST_NONCE 326 +#define PIDX_SIGNATURE_PARAM_ADD_RANDOM 327 +#define PIDX_SIGNATURE_PARAM_ALGORITHM_ID PIDX_PKEY_PARAM_ALGORITHM_ID +#define PIDX_SIGNATURE_PARAM_ALGORITHM_ID_PARAMS PIDX_PKEY_PARAM_ALGORITHM_ID_PARAMS +#define PIDX_SIGNATURE_PARAM_CONTEXT_STRING 328 +#define PIDX_SIGNATURE_PARAM_DETERMINISTIC 329 +#define PIDX_SIGNATURE_PARAM_DIGEST PIDX_PKEY_PARAM_DIGEST +#define PIDX_SIGNATURE_PARAM_DIGEST_SIZE PIDX_PKEY_PARAM_DIGEST_SIZE +#define PIDX_SIGNATURE_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_SIGNATURE_PARAM_FIPS_DIGEST_CHECK PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK +#define PIDX_SIGNATURE_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_SIGNATURE_PARAM_FIPS_RSA_PSS_SALTLEN_CHECK 300 +#define PIDX_SIGNATURE_PARAM_FIPS_SIGN_CHECK PIDX_PKEY_PARAM_FIPS_SIGN_CHECK +#define PIDX_SIGNATURE_PARAM_FIPS_SIGN_X931_PAD_CHECK 330 +#define PIDX_SIGNATURE_PARAM_FIPS_VERIFY_MESSAGE 331 +#define PIDX_SIGNATURE_PARAM_INSTANCE 332 +#define PIDX_SIGNATURE_PARAM_KAT 333 +#define PIDX_SIGNATURE_PARAM_MESSAGE_ENCODING 334 +#define PIDX_SIGNATURE_PARAM_MGF1_DIGEST PIDX_PKEY_PARAM_MGF1_DIGEST +#define PIDX_SIGNATURE_PARAM_MGF1_PROPERTIES PIDX_PKEY_PARAM_MGF1_PROPERTIES +#define PIDX_SIGNATURE_PARAM_MU 335 +#define PIDX_SIGNATURE_PARAM_NONCE_TYPE 336 +#define PIDX_SIGNATURE_PARAM_PAD_MODE PIDX_PKEY_PARAM_PAD_MODE +#define PIDX_SIGNATURE_PARAM_PROPERTIES PIDX_PKEY_PARAM_PROPERTIES +#define PIDX_SIGNATURE_PARAM_PSS_SALTLEN 271 +#define PIDX_SIGNATURE_PARAM_SIGNATURE 337 +#define PIDX_SIGNATURE_PARAM_TEST_ENTROPY 338 +#define PIDX_SKEY_PARAM_KEY_LENGTH 339 +#define PIDX_SKEY_PARAM_RAW_BYTES 340 +#define PIDX_STORE_PARAM_ALIAS 341 +#define PIDX_STORE_PARAM_DIGEST 3 +#define PIDX_STORE_PARAM_EXPECT 342 +#define PIDX_STORE_PARAM_FINGERPRINT 343 +#define PIDX_STORE_PARAM_INPUT_TYPE 174 +#define PIDX_STORE_PARAM_ISSUER 296 +#define PIDX_STORE_PARAM_PROPERTIES 7 +#define PIDX_STORE_PARAM_SERIAL 344 +#define PIDX_STORE_PARAM_SUBJECT 345 diff --git a/deps/openssl/config/archs/VC-WIN32/asm/include/openssl/asn1.h b/deps/openssl/config/archs/VC-WIN32/asm/include/openssl/asn1.h index e28efbbb718e2b..5129217b2e0977 100644 --- a/deps/openssl/config/archs/VC-WIN32/asm/include/openssl/asn1.h +++ b/deps/openssl/config/archs/VC-WIN32/asm/include/openssl/asn1.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by makefile from include/openssl/asn1.h.in * - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -21,6 +21,9 @@ # define HEADER_ASN1_H # endif +# ifndef OPENSSL_NO_STDIO +# include +# endif # include # include # include @@ -50,14 +53,14 @@ extern "C" { # define V_ASN1_PRIMITIVE_TAG 0x1f # define V_ASN1_PRIMATIVE_TAG /*compat*/ V_ASN1_PRIMITIVE_TAG -# define V_ASN1_APP_CHOOSE -2/* let the recipient choose */ -# define V_ASN1_OTHER -3/* used in ASN1_TYPE */ -# define V_ASN1_ANY -4/* used in ASN1 template code */ +# define V_ASN1_APP_CHOOSE -2 /* let the recipient choose */ +# define V_ASN1_OTHER -3 /* used in ASN1_TYPE */ +# define V_ASN1_ANY -4 /* used in ASN1 template code */ # define V_ASN1_UNDEF -1 /* ASN.1 tag values */ # define V_ASN1_EOC 0 -# define V_ASN1_BOOLEAN 1 /**/ +# define V_ASN1_BOOLEAN 1 # define V_ASN1_INTEGER 2 # define V_ASN1_BIT_STRING 3 # define V_ASN1_OCTET_STRING 4 @@ -70,19 +73,19 @@ extern "C" { # define V_ASN1_UTF8STRING 12 # define V_ASN1_SEQUENCE 16 # define V_ASN1_SET 17 -# define V_ASN1_NUMERICSTRING 18 /**/ +# define V_ASN1_NUMERICSTRING 18 # define V_ASN1_PRINTABLESTRING 19 # define V_ASN1_T61STRING 20 -# define V_ASN1_TELETEXSTRING 20/* alias */ -# define V_ASN1_VIDEOTEXSTRING 21 /**/ +# define V_ASN1_TELETEXSTRING 20 /* alias */ +# define V_ASN1_VIDEOTEXSTRING 21 # define V_ASN1_IA5STRING 22 # define V_ASN1_UTCTIME 23 -# define V_ASN1_GENERALIZEDTIME 24 /**/ -# define V_ASN1_GRAPHICSTRING 25 /**/ -# define V_ASN1_ISO64STRING 26 /**/ -# define V_ASN1_VISIBLESTRING 26/* alias */ -# define V_ASN1_GENERALSTRING 27 /**/ -# define V_ASN1_UNIVERSALSTRING 28 /**/ +# define V_ASN1_GENERALIZEDTIME 24 +# define V_ASN1_GRAPHICSTRING 25 +# define V_ASN1_ISO64STRING 26 +# define V_ASN1_VISIBLESTRING 26 /* alias */ +# define V_ASN1_GENERALSTRING 27 +# define V_ASN1_UNIVERSALSTRING 28 # define V_ASN1_BMPSTRING 30 /* @@ -155,7 +158,7 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_ALGOR, X509_ALGOR, X509_ALGOR) -# define ASN1_STRING_FLAG_BITS_LEFT 0x08/* Set if 0x07 has bits left value */ +# define ASN1_STRING_FLAG_BITS_LEFT 0x08 /* Set if 0x07 has bits left value */ /* * This indicates that the ASN1_STRING is not a real value but just a place * holder for the location where indefinite length constructed data should be @@ -275,7 +278,7 @@ typedef struct ASN1_TLC_st ASN1_TLC; /* This is just an opaque pointer */ typedef struct ASN1_VALUE_st ASN1_VALUE; -/* Declare ASN1 functions: the implement macro in in asn1t.h */ +/* Declare ASN1 functions: the implement macro is in asn1t.h */ /* * The mysterious 'extern' that's passed to some macros is innocuous, @@ -368,6 +371,7 @@ typedef struct ASN1_VALUE_st ASN1_VALUE; typedef void *d2i_of_void(void **, const unsigned char **, long); typedef int i2d_of_void(const void *, unsigned char **); +typedef int OSSL_i2d_of_void_ctx(const void *, unsigned char **, void *vctx); /*- * The following macros and typedefs allow an ASN1_ITEM @@ -996,6 +1000,8 @@ int ASN1_TYPE_get_int_octetstring(const ASN1_TYPE *a, long *num, unsigned char *data, int max_len); void *ASN1_item_unpack(const ASN1_STRING *oct, const ASN1_ITEM *it); +void *ASN1_item_unpack_ex(const ASN1_STRING *oct, const ASN1_ITEM *it, + OSSL_LIB_CTX *libctx, const char *propq); ASN1_STRING *ASN1_item_pack(void *obj, const ASN1_ITEM *it, ASN1_OCTET_STRING **oct); diff --git a/deps/openssl/config/archs/VC-WIN32/asm/include/openssl/bio.h b/deps/openssl/config/archs/VC-WIN32/asm/include/openssl/bio.h index d094af47b73f1c..be24d086a54013 100644 --- a/deps/openssl/config/archs/VC-WIN32/asm/include/openssl/bio.h +++ b/deps/openssl/config/archs/VC-WIN32/asm/include/openssl/bio.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by makefile from include/openssl/bio.h.in * - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -67,8 +67,13 @@ extern "C" { # define BIO_TYPE_DGRAM_SCTP (24|BIO_TYPE_SOURCE_SINK|BIO_TYPE_DESCRIPTOR) # endif # define BIO_TYPE_CORE_TO_PROV (25|BIO_TYPE_SOURCE_SINK) +# define BIO_TYPE_DGRAM_PAIR (26|BIO_TYPE_SOURCE_SINK) +# define BIO_TYPE_DGRAM_MEM (27|BIO_TYPE_SOURCE_SINK) +/* Custom type starting index returned by BIO_get_new_index() */ #define BIO_TYPE_START 128 +/* Custom type maximum index that can be returned by BIO_get_new_index() */ +#define BIO_TYPE_MASK 0xFF /* * BIO_FILENAME_READ|BIO_CLOSE to open or close on free. @@ -171,6 +176,31 @@ extern "C" { # define BIO_CTRL_SET_INDENT 80 # define BIO_CTRL_GET_INDENT 81 +# define BIO_CTRL_DGRAM_GET_LOCAL_ADDR_CAP 82 +# define BIO_CTRL_DGRAM_GET_LOCAL_ADDR_ENABLE 83 +# define BIO_CTRL_DGRAM_SET_LOCAL_ADDR_ENABLE 84 +# define BIO_CTRL_DGRAM_GET_EFFECTIVE_CAPS 85 +# define BIO_CTRL_DGRAM_GET_CAPS 86 +# define BIO_CTRL_DGRAM_SET_CAPS 87 +# define BIO_CTRL_DGRAM_GET_NO_TRUNC 88 +# define BIO_CTRL_DGRAM_SET_NO_TRUNC 89 + +/* + * internal BIO: + * # define BIO_CTRL_SET_KTLS_TX_ZEROCOPY_SENDFILE 90 + */ + +# define BIO_CTRL_GET_RPOLL_DESCRIPTOR 91 +# define BIO_CTRL_GET_WPOLL_DESCRIPTOR 92 +# define BIO_CTRL_DGRAM_DETECT_PEER_ADDR 93 +# define BIO_CTRL_DGRAM_SET0_LOCAL_ADDR 94 + +# define BIO_DGRAM_CAP_NONE 0U +# define BIO_DGRAM_CAP_HANDLES_SRC_ADDR (1U << 0) +# define BIO_DGRAM_CAP_HANDLES_DST_ADDR (1U << 1) +# define BIO_DGRAM_CAP_PROVIDES_SRC_ADDR (1U << 2) +# define BIO_DGRAM_CAP_PROVIDES_DST_ADDR (1U << 3) + # ifndef OPENSSL_NO_KTLS # define BIO_get_ktls_send(b) \ (BIO_ctrl(b, BIO_CTRL_GET_KTLS_SEND, 0, NULL) > 0) @@ -208,7 +238,7 @@ extern "C" { # define BIO_FLAGS_NONCLEAR_RST 0x400 # define BIO_FLAGS_IN_EOF 0x800 -/* the BIO FLAGS values 0x1000 to 0x4000 are reserved for internal KTLS flags */ +/* the BIO FLAGS values 0x1000 to 0x8000 are reserved for internal KTLS flags */ typedef union bio_addr_st BIO_ADDR; typedef struct bio_addrinfo_st BIO_ADDRINFO; @@ -256,12 +286,14 @@ void BIO_clear_flags(BIO *b, int flags); # define BIO_RR_ACCEPT 0x03 /* These are passed by the BIO callback */ -# define BIO_CB_FREE 0x01 -# define BIO_CB_READ 0x02 -# define BIO_CB_WRITE 0x03 -# define BIO_CB_PUTS 0x04 -# define BIO_CB_GETS 0x05 -# define BIO_CB_CTRL 0x06 +# define BIO_CB_FREE 0x01 +# define BIO_CB_READ 0x02 +# define BIO_CB_WRITE 0x03 +# define BIO_CB_PUTS 0x04 +# define BIO_CB_GETS 0x05 +# define BIO_CB_CTRL 0x06 +# define BIO_CB_RECVMMSG 0x07 +# define BIO_CB_SENDMMSG 0x08 /* * The callback is called before and after the underling operation, The @@ -362,6 +394,36 @@ struct bio_dgram_sctp_prinfo { }; # endif +/* BIO_sendmmsg/BIO_recvmmsg-related definitions */ +typedef struct bio_msg_st { + void *data; + size_t data_len; + BIO_ADDR *peer, *local; + uint64_t flags; +} BIO_MSG; + +typedef struct bio_mmsg_cb_args_st { + BIO_MSG *msg; + size_t stride, num_msg; + uint64_t flags; + size_t *msgs_processed; +} BIO_MMSG_CB_ARGS; + +#define BIO_POLL_DESCRIPTOR_TYPE_NONE 0 +#define BIO_POLL_DESCRIPTOR_TYPE_SOCK_FD 1 +#define BIO_POLL_DESCRIPTOR_TYPE_SSL 2 +#define BIO_POLL_DESCRIPTOR_CUSTOM_START 8192 + +typedef struct bio_poll_descriptor_st { + uint32_t type; + union { + int fd; + void *custom; + uintptr_t custom_ui; + SSL *ssl; + } value; +} BIO_POLL_DESCRIPTOR; + /* * #define BIO_CONN_get_param_hostname BIO_ctrl */ @@ -428,10 +490,17 @@ struct bio_dgram_sctp_prinfo { # define BIO_C_SET_CONNECT_MODE 155 +# define BIO_C_SET_TFO 156 /* like BIO_C_SET_NBIO */ + +# define BIO_C_SET_SOCK_TYPE 157 +# define BIO_C_GET_SOCK_TYPE 158 +# define BIO_C_GET_DGRAM_BIO 159 + # define BIO_set_app_data(s,arg) BIO_set_ex_data(s,0,arg) # define BIO_get_app_data(s) BIO_get_ex_data(s,0) -# define BIO_set_nbio(b,n) BIO_ctrl(b,BIO_C_SET_NBIO,(n),NULL) +# define BIO_set_nbio(b,n) BIO_ctrl(b,BIO_C_SET_NBIO,(n),NULL) +# define BIO_set_tfo(b,n) BIO_ctrl(b,BIO_C_SET_TFO,(n),NULL) # ifndef OPENSSL_NO_SOCK /* IP families we support, for BIO_s_connect() and BIO_s_accept() */ @@ -452,7 +521,11 @@ struct bio_dgram_sctp_prinfo { # define BIO_get_conn_port(b) ((const char *)BIO_ptr_ctrl(b,BIO_C_GET_CONNECT,1)) # define BIO_get_conn_address(b) ((const BIO_ADDR *)BIO_ptr_ctrl(b,BIO_C_GET_CONNECT,2)) # define BIO_get_conn_ip_family(b) BIO_ctrl(b,BIO_C_GET_CONNECT,3,NULL) +# define BIO_get_conn_mode(b) BIO_ctrl(b,BIO_C_GET_CONNECT,4,NULL) # define BIO_set_conn_mode(b,n) BIO_ctrl(b,BIO_C_SET_CONNECT_MODE,(n),NULL) +# define BIO_set_sock_type(b,t) BIO_ctrl(b,BIO_C_SET_SOCK_TYPE,(t),NULL) +# define BIO_get_sock_type(b) BIO_ctrl(b,BIO_C_GET_SOCK_TYPE,0,NULL) +# define BIO_get0_dgram_bio(b, p) BIO_ctrl(b,BIO_C_GET_DGRAM_BIO,0,(void *)(BIO **)(p)) /* BIO_s_accept() */ # define BIO_set_accept_name(b,name) BIO_ctrl(b,BIO_C_SET_ACCEPT,0, \ @@ -469,6 +542,7 @@ struct bio_dgram_sctp_prinfo { (char *)(bio)) # define BIO_set_accept_ip_family(b,f) BIO_int_ctrl(b,BIO_C_SET_ACCEPT,4,f) # define BIO_get_accept_ip_family(b) BIO_ctrl(b,BIO_C_GET_ACCEPT,4,NULL) +# define BIO_set_tfo_accept(b,n) BIO_ctrl(b,BIO_C_SET_ACCEPT,5,(n)?(void *)"a":NULL) /* Aliases kept for backward compatibility */ # define BIO_BIND_NORMAL 0 @@ -596,8 +670,32 @@ int BIO_ctrl_reset_read_request(BIO *b); (int)BIO_ctrl(b, BIO_CTRL_DGRAM_GET_PEER, 0, (char *)(peer)) # define BIO_dgram_set_peer(b,peer) \ (int)BIO_ctrl(b, BIO_CTRL_DGRAM_SET_PEER, 0, (char *)(peer)) +# define BIO_dgram_detect_peer_addr(b,peer) \ + (int)BIO_ctrl(b, BIO_CTRL_DGRAM_DETECT_PEER_ADDR, 0, (char *)(peer)) # define BIO_dgram_get_mtu_overhead(b) \ (unsigned int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_MTU_OVERHEAD, 0, NULL) +# define BIO_dgram_get_local_addr_cap(b) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_LOCAL_ADDR_CAP, 0, NULL) +# define BIO_dgram_get_local_addr_enable(b, penable) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_LOCAL_ADDR_ENABLE, 0, (char *)(penable)) +# define BIO_dgram_set_local_addr_enable(b, enable) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET_LOCAL_ADDR_ENABLE, (enable), NULL) +# define BIO_dgram_get_effective_caps(b) \ + (uint32_t)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_EFFECTIVE_CAPS, 0, NULL) +# define BIO_dgram_get_caps(b) \ + (uint32_t)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_CAPS, 0, NULL) +# define BIO_dgram_set_caps(b, caps) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET_CAPS, (long)(caps), NULL) +# define BIO_dgram_get_no_trunc(b) \ + (unsigned int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_NO_TRUNC, 0, NULL) +# define BIO_dgram_set_no_trunc(b, enable) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET_NO_TRUNC, (enable), NULL) +# define BIO_dgram_get_mtu(b) \ + (unsigned int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_MTU, 0, NULL) +# define BIO_dgram_set_mtu(b, mtu) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET_MTU, (mtu), NULL) +# define BIO_dgram_set0_local_addr(b, addr) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET0_LOCAL_ADDR, 0, (addr)) /* ctrl macros for BIO_f_prefix */ # define BIO_set_prefix(b,p) BIO_ctrl((b), BIO_CTRL_SET_PREFIX, 0, (void *)(p)) @@ -640,10 +738,18 @@ void BIO_vfree(BIO *a); int BIO_up_ref(BIO *a); int BIO_read(BIO *b, void *data, int dlen); int BIO_read_ex(BIO *b, void *data, size_t dlen, size_t *readbytes); +__owur int BIO_recvmmsg(BIO *b, BIO_MSG *msg, + size_t stride, size_t num_msg, uint64_t flags, + size_t *msgs_processed); int BIO_gets(BIO *bp, char *buf, int size); int BIO_get_line(BIO *bio, char *buf, int size); int BIO_write(BIO *b, const void *data, int dlen); int BIO_write_ex(BIO *b, const void *data, size_t dlen, size_t *written); +__owur int BIO_sendmmsg(BIO *b, BIO_MSG *msg, + size_t stride, size_t num_msg, uint64_t flags, + size_t *msgs_processed); +__owur int BIO_get_rpoll_descriptor(BIO *b, BIO_POLL_DESCRIPTOR *desc); +__owur int BIO_get_wpoll_descriptor(BIO *b, BIO_POLL_DESCRIPTOR *desc); int BIO_puts(BIO *bp, const char *buf); int BIO_indent(BIO *b, int indent, int max); long BIO_ctrl(BIO *bp, int cmd, long larg, void *parg); @@ -667,6 +773,9 @@ int BIO_nwrite0(BIO *bio, char **buf); int BIO_nwrite(BIO *bio, char **buf, int num); const BIO_METHOD *BIO_s_mem(void); +# ifndef OPENSSL_NO_DGRAM +const BIO_METHOD *BIO_s_dgram_mem(void); +# endif const BIO_METHOD *BIO_s_secmem(void); BIO *BIO_new_mem_buf(const void *buf, int len); # ifndef OPENSSL_NO_SOCK @@ -686,6 +795,7 @@ const BIO_METHOD *BIO_f_nbio_test(void); const BIO_METHOD *BIO_f_prefix(void); const BIO_METHOD *BIO_s_core(void); # ifndef OPENSSL_NO_DGRAM +const BIO_METHOD *BIO_s_dgram_pair(void); const BIO_METHOD *BIO_s_datagram(void); int BIO_dgram_non_fatal_error(int error); BIO *BIO_new_dgram(int fd, int close_flag); @@ -704,6 +814,7 @@ int BIO_dgram_sctp_msg_waiting(BIO *b); # ifndef OPENSSL_NO_SOCK int BIO_sock_should_retry(int i); int BIO_sock_non_fatal_error(int error); +int BIO_err_is_non_fatal(unsigned int errcode); int BIO_socket_wait(int fd, int for_read, time_t max_time); # endif int BIO_wait(BIO *bio, time_t max_time, unsigned int nap_milliseconds); @@ -726,6 +837,8 @@ int BIO_hex_string(BIO *out, int indent, int width, const void *data, # ifndef OPENSSL_NO_SOCK BIO_ADDR *BIO_ADDR_new(void); +int BIO_ADDR_copy(BIO_ADDR *dst, const BIO_ADDR *src); +BIO_ADDR *BIO_ADDR_dup(const BIO_ADDR *ap); int BIO_ADDR_rawmake(BIO_ADDR *ap, int family, const void *where, size_t wherelen, unsigned short port); void BIO_ADDR_free(BIO_ADDR *); @@ -788,6 +901,7 @@ int BIO_sock_info(int sock, # define BIO_SOCK_KEEPALIVE 0x04 # define BIO_SOCK_NONBLOCK 0x08 # define BIO_SOCK_NODELAY 0x10 +# define BIO_SOCK_TFO 0x20 int BIO_socket(int domain, int socktype, int protocol, int options); int BIO_connect(int sock, const BIO_ADDR *addr, int options); @@ -805,6 +919,11 @@ BIO *BIO_new_fd(int fd, int close_flag); int BIO_new_bio_pair(BIO **bio1, size_t writebuf1, BIO **bio2, size_t writebuf2); +# ifndef OPENSSL_NO_DGRAM +int BIO_new_bio_dgram_pair(BIO **bio1, size_t writebuf1, + BIO **bio2, size_t writebuf2); +# endif + /* * If successful, returns 1 and in *bio1, *bio2 two BIO pair endpoints. * Otherwise returns 0 and sets *bio1 and *bio2 to NULL. Size 0 uses default @@ -849,38 +968,54 @@ ossl_bio__attr__((__format__(ossl_bio__printf__, 3, 0))); BIO_METHOD *BIO_meth_new(int type, const char *name); void BIO_meth_free(BIO_METHOD *biom); -int (*BIO_meth_get_write(const BIO_METHOD *biom)) (BIO *, const char *, int); -int (*BIO_meth_get_write_ex(const BIO_METHOD *biom)) (BIO *, const char *, size_t, - size_t *); int BIO_meth_set_write(BIO_METHOD *biom, int (*write) (BIO *, const char *, int)); int BIO_meth_set_write_ex(BIO_METHOD *biom, int (*bwrite) (BIO *, const char *, size_t, size_t *)); -int (*BIO_meth_get_read(const BIO_METHOD *biom)) (BIO *, char *, int); -int (*BIO_meth_get_read_ex(const BIO_METHOD *biom)) (BIO *, char *, size_t, size_t *); +int BIO_meth_set_sendmmsg(BIO_METHOD *biom, + int (*f) (BIO *, BIO_MSG *, size_t, size_t, + uint64_t, size_t *)); int BIO_meth_set_read(BIO_METHOD *biom, int (*read) (BIO *, char *, int)); int BIO_meth_set_read_ex(BIO_METHOD *biom, int (*bread) (BIO *, char *, size_t, size_t *)); -int (*BIO_meth_get_puts(const BIO_METHOD *biom)) (BIO *, const char *); +int BIO_meth_set_recvmmsg(BIO_METHOD *biom, + int (*f) (BIO *, BIO_MSG *, size_t, size_t, + uint64_t, size_t *)); int BIO_meth_set_puts(BIO_METHOD *biom, int (*puts) (BIO *, const char *)); -int (*BIO_meth_get_gets(const BIO_METHOD *biom)) (BIO *, char *, int); int BIO_meth_set_gets(BIO_METHOD *biom, int (*ossl_gets) (BIO *, char *, int)); -long (*BIO_meth_get_ctrl(const BIO_METHOD *biom)) (BIO *, int, long, void *); int BIO_meth_set_ctrl(BIO_METHOD *biom, long (*ctrl) (BIO *, int, long, void *)); -int (*BIO_meth_get_create(const BIO_METHOD *bion)) (BIO *); int BIO_meth_set_create(BIO_METHOD *biom, int (*create) (BIO *)); -int (*BIO_meth_get_destroy(const BIO_METHOD *biom)) (BIO *); int BIO_meth_set_destroy(BIO_METHOD *biom, int (*destroy) (BIO *)); -long (*BIO_meth_get_callback_ctrl(const BIO_METHOD *biom)) - (BIO *, int, BIO_info_cb *); int BIO_meth_set_callback_ctrl(BIO_METHOD *biom, long (*callback_ctrl) (BIO *, int, BIO_info_cb *)); - +# ifndef OPENSSL_NO_DEPRECATED_3_5 +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_write(const BIO_METHOD *biom)) (BIO *, const char *, + int); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_write_ex(const BIO_METHOD *biom)) (BIO *, const char *, + size_t, size_t *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_sendmmsg(const BIO_METHOD *biom))(BIO *, BIO_MSG *, + size_t, size_t, + uint64_t, size_t *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_read(const BIO_METHOD *biom)) (BIO *, char *, int); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_read_ex(const BIO_METHOD *biom)) (BIO *, char *, + size_t, size_t *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_recvmmsg(const BIO_METHOD *biom))(BIO *, BIO_MSG *, + size_t, size_t, + uint64_t, size_t *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_puts(const BIO_METHOD *biom)) (BIO *, const char *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_gets(const BIO_METHOD *biom)) (BIO *, char *, int); +OSSL_DEPRECATEDIN_3_5 long (*BIO_meth_get_ctrl(const BIO_METHOD *biom)) (BIO *, int, + long, void *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_create(const BIO_METHOD *bion)) (BIO *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_destroy(const BIO_METHOD *biom)) (BIO *); +OSSL_DEPRECATEDIN_3_5 long (*BIO_meth_get_callback_ctrl(const BIO_METHOD *biom)) (BIO *, int, + BIO_info_cb *); +# endif # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/VC-WIN32/asm/include/openssl/cmp.h b/deps/openssl/config/archs/VC-WIN32/asm/include/openssl/cmp.h index f0e768e01baacd..ded2dd2905f756 100644 --- a/deps/openssl/config/archs/VC-WIN32/asm/include/openssl/cmp.h +++ b/deps/openssl/config/archs/VC-WIN32/asm/include/openssl/cmp.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by makefile from include/openssl/cmp.h.in * - * Copyright 2007-2023 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2007-2024 The OpenSSL Project Authors. All Rights Reserved. * Copyright Nokia 2007-2019 * Copyright Siemens AG 2015-2019 * @@ -35,7 +35,9 @@ extern "C" { # endif -# define OSSL_CMP_PVNO 2 +# define OSSL_CMP_PVNO_2 2 +# define OSSL_CMP_PVNO_3 3 +# define OSSL_CMP_PVNO OSSL_CMP_PVNO_2 /* v2 is the default */ /*- * PKIFailureInfo ::= BIT STRING { @@ -137,7 +139,6 @@ extern "C" { # if OSSL_CMP_PKIFAILUREINFO_MAX_BIT_PATTERN > INT_MAX # error CMP_PKIFAILUREINFO_MAX bit pattern does not fit in type int # endif - typedef ASN1_BIT_STRING OSSL_CMP_PKIFAILUREINFO; # define OSSL_CMP_CTX_FAILINFO_badAlg (1 << 0) @@ -203,8 +204,8 @@ typedef ASN1_BIT_STRING OSSL_CMP_PKIFAILUREINFO; # define OSSL_CMP_PKISTATUS_revocationWarning 4 # define OSSL_CMP_PKISTATUS_revocationNotification 5 # define OSSL_CMP_PKISTATUS_keyUpdateWarning 6 - typedef ASN1_INTEGER OSSL_CMP_PKISTATUS; + DECLARE_ASN1_ITEM(OSSL_CMP_PKISTATUS) # define OSSL_CMP_CERTORENCCERT_CERTIFICATE 0 @@ -274,6 +275,46 @@ SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CMP_ITAV, OSSL_CMP_ITAV, OSSL_CMP_ITAV) #define sk_OSSL_CMP_ITAV_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_CMP_ITAV) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_CMP_ITAV_sk_type(sk), ossl_check_OSSL_CMP_ITAV_copyfunc_type(copyfunc), ossl_check_OSSL_CMP_ITAV_freefunc_type(freefunc))) #define sk_OSSL_CMP_ITAV_set_cmp_func(sk, cmp) ((sk_OSSL_CMP_ITAV_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CMP_ITAV_sk_type(sk), ossl_check_OSSL_CMP_ITAV_compfunc_type(cmp))) + +typedef struct ossl_cmp_crlstatus_st OSSL_CMP_CRLSTATUS; +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CMP_CRLSTATUS, OSSL_CMP_CRLSTATUS, OSSL_CMP_CRLSTATUS) +#define sk_OSSL_CMP_CRLSTATUS_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_value(sk, idx) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_value(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk), (idx))) +#define sk_OSSL_CMP_CRLSTATUS_new(cmp) ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_new(ossl_check_OSSL_CMP_CRLSTATUS_compfunc_type(cmp))) +#define sk_OSSL_CMP_CRLSTATUS_new_null() ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_new_null()) +#define sk_OSSL_CMP_CRLSTATUS_new_reserve(cmp, n) ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_CMP_CRLSTATUS_compfunc_type(cmp), (n))) +#define sk_OSSL_CMP_CRLSTATUS_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), (n)) +#define sk_OSSL_CMP_CRLSTATUS_free(sk) OPENSSL_sk_free(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_delete(sk, i) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_delete(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), (i))) +#define sk_OSSL_CMP_CRLSTATUS_delete_ptr(sk, ptr) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr))) +#define sk_OSSL_CMP_CRLSTATUS_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr)) +#define sk_OSSL_CMP_CRLSTATUS_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr)) +#define sk_OSSL_CMP_CRLSTATUS_pop(sk) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_pop(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk))) +#define sk_OSSL_CMP_CRLSTATUS_shift(sk) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_shift(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk))) +#define sk_OSSL_CMP_CRLSTATUS_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk),ossl_check_OSSL_CMP_CRLSTATUS_freefunc_type(freefunc)) +#define sk_OSSL_CMP_CRLSTATUS_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr), (idx)) +#define sk_OSSL_CMP_CRLSTATUS_set(sk, idx, ptr) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_set(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), (idx), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr))) +#define sk_OSSL_CMP_CRLSTATUS_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr)) +#define sk_OSSL_CMP_CRLSTATUS_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr)) +#define sk_OSSL_CMP_CRLSTATUS_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr), pnum) +#define sk_OSSL_CMP_CRLSTATUS_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_dup(sk) ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_dup(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk))) +#define sk_OSSL_CMP_CRLSTATUS_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_copyfunc_type(copyfunc), ossl_check_OSSL_CMP_CRLSTATUS_freefunc_type(freefunc))) +#define sk_OSSL_CMP_CRLSTATUS_set_cmp_func(sk, cmp) ((sk_OSSL_CMP_CRLSTATUS_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_compfunc_type(cmp))) + + +typedef OSSL_CRMF_ATTRIBUTETYPEANDVALUE OSSL_CMP_ATAV; +# define OSSL_CMP_ATAV_free OSSL_CRMF_ATTRIBUTETYPEANDVALUE_free +typedef STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) OSSL_CMP_ATAVS; +DECLARE_ASN1_FUNCTIONS(OSSL_CMP_ATAVS) +# define stack_st_OSSL_CMP_ATAV stack_st_OSSL_CRMF_ATTRIBUTETYPEANDVALUE +# define sk_OSSL_CMP_ATAV_num sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_num +# define sk_OSSL_CMP_ATAV_value sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_value +# define sk_OSSL_CMP_ATAV_push sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_push +# define sk_OSSL_CMP_ATAV_pop_free sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_pop_free + typedef struct ossl_cmp_revrepcontent_st OSSL_CMP_REVREPCONTENT; typedef struct ossl_cmp_pkisi_st OSSL_CMP_PKISI; DECLARE_ASN1_FUNCTIONS(OSSL_CMP_PKISI) @@ -375,21 +416,75 @@ void OSSL_CMP_ITAV_set0(OSSL_CMP_ITAV *itav, ASN1_OBJECT *type, ASN1_TYPE *value); ASN1_OBJECT *OSSL_CMP_ITAV_get0_type(const OSSL_CMP_ITAV *itav); ASN1_TYPE *OSSL_CMP_ITAV_get0_value(const OSSL_CMP_ITAV *itav); -int OSSL_CMP_ITAV_push0_stack_item(STACK_OF(OSSL_CMP_ITAV) **itav_sk_p, +int OSSL_CMP_ITAV_push0_stack_item(STACK_OF(OSSL_CMP_ITAV) **sk_p, OSSL_CMP_ITAV *itav); void OSSL_CMP_ITAV_free(OSSL_CMP_ITAV *itav); + +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new0_certProfile(STACK_OF(ASN1_UTF8STRING) + *certProfile); +int OSSL_CMP_ITAV_get0_certProfile(const OSSL_CMP_ITAV *itav, + STACK_OF(ASN1_UTF8STRING) **out); +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new_caCerts(const STACK_OF(X509) *caCerts); +int OSSL_CMP_ITAV_get0_caCerts(const OSSL_CMP_ITAV *itav, STACK_OF(X509) **out); + +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new_rootCaCert(const X509 *rootCaCert); +int OSSL_CMP_ITAV_get0_rootCaCert(const OSSL_CMP_ITAV *itav, X509 **out); +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new_rootCaKeyUpdate(const X509 *newWithNew, + const X509 *newWithOld, + const X509 *oldWithNew); +int OSSL_CMP_ITAV_get0_rootCaKeyUpdate(const OSSL_CMP_ITAV *itav, + X509 **newWithNew, + X509 **newWithOld, + X509 **oldWithNew); + +OSSL_CMP_CRLSTATUS *OSSL_CMP_CRLSTATUS_create(const X509_CRL *crl, + const X509 *cert, int only_DN); +OSSL_CMP_CRLSTATUS *OSSL_CMP_CRLSTATUS_new1(const DIST_POINT_NAME *dpn, + const GENERAL_NAMES *issuer, + const ASN1_TIME *thisUpdate); +int OSSL_CMP_CRLSTATUS_get0(const OSSL_CMP_CRLSTATUS *crlstatus, + DIST_POINT_NAME **dpn, GENERAL_NAMES **issuer, + ASN1_TIME **thisUpdate); +void OSSL_CMP_CRLSTATUS_free(OSSL_CMP_CRLSTATUS *crlstatus); +OSSL_CMP_ITAV +*OSSL_CMP_ITAV_new0_crlStatusList(STACK_OF(OSSL_CMP_CRLSTATUS) *crlStatusList); +int OSSL_CMP_ITAV_get0_crlStatusList(const OSSL_CMP_ITAV *itav, + STACK_OF(OSSL_CMP_CRLSTATUS) **out); +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new_crls(const X509_CRL *crls); +int OSSL_CMP_ITAV_get0_crls(const OSSL_CMP_ITAV *it, STACK_OF(X509_CRL) **out); +OSSL_CMP_ITAV +*OSSL_CMP_ITAV_new0_certReqTemplate(OSSL_CRMF_CERTTEMPLATE *certTemplate, + OSSL_CMP_ATAVS *keySpec); +int OSSL_CMP_ITAV_get1_certReqTemplate(const OSSL_CMP_ITAV *itav, + OSSL_CRMF_CERTTEMPLATE **certTemplate, + OSSL_CMP_ATAVS **keySpec); + +OSSL_CMP_ATAV *OSSL_CMP_ATAV_create(ASN1_OBJECT *type, ASN1_TYPE *value); +void OSSL_CMP_ATAV_set0(OSSL_CMP_ATAV *itav, ASN1_OBJECT *type, + ASN1_TYPE *value); +ASN1_OBJECT *OSSL_CMP_ATAV_get0_type(const OSSL_CMP_ATAV *itav); +ASN1_TYPE *OSSL_CMP_ATAV_get0_value(const OSSL_CMP_ATAV *itav); +OSSL_CMP_ATAV *OSSL_CMP_ATAV_new_algId(const X509_ALGOR *alg); +X509_ALGOR *OSSL_CMP_ATAV_get0_algId(const OSSL_CMP_ATAV *atav); +OSSL_CMP_ATAV *OSSL_CMP_ATAV_new_rsaKeyLen(int len); +int OSSL_CMP_ATAV_get_rsaKeyLen(const OSSL_CMP_ATAV *atav); +int OSSL_CMP_ATAV_push1(OSSL_CMP_ATAVS **sk_p, const OSSL_CMP_ATAV *atav); + void OSSL_CMP_MSG_free(OSSL_CMP_MSG *msg); /* from cmp_ctx.c */ OSSL_CMP_CTX *OSSL_CMP_CTX_new(OSSL_LIB_CTX *libctx, const char *propq); void OSSL_CMP_CTX_free(OSSL_CMP_CTX *ctx); int OSSL_CMP_CTX_reinit(OSSL_CMP_CTX *ctx); +OSSL_LIB_CTX *OSSL_CMP_CTX_get0_libctx(const OSSL_CMP_CTX *ctx); +const char *OSSL_CMP_CTX_get0_propq(const OSSL_CMP_CTX *ctx); /* CMP general options: */ # define OSSL_CMP_OPT_LOG_VERBOSITY 0 /* CMP transfer options: */ -# define OSSL_CMP_OPT_KEEP_ALIVE 10 -# define OSSL_CMP_OPT_MSG_TIMEOUT 11 +# define OSSL_CMP_OPT_KEEP_ALIVE 10 +# define OSSL_CMP_OPT_MSG_TIMEOUT 11 # define OSSL_CMP_OPT_TOTAL_TIMEOUT 12 +# define OSSL_CMP_OPT_USE_TLS 13 /* CMP request options: */ # define OSSL_CMP_OPT_VALIDITY_DAYS 20 # define OSSL_CMP_OPT_SUBJECTALTNAME_NODEFAULT 21 @@ -407,6 +502,7 @@ int OSSL_CMP_CTX_reinit(OSSL_CMP_CTX *ctx); # define OSSL_CMP_OPT_DIGEST_ALGNID 34 # define OSSL_CMP_OPT_IGNORE_KEYUSAGE 35 # define OSSL_CMP_OPT_PERMIT_TA_IN_EXTRACERTS_FOR_IR 36 +# define OSSL_CMP_OPT_NO_CACHE_EXTRACERTS 37 int OSSL_CMP_CTX_set_option(OSSL_CMP_CTX *ctx, int opt, int val); int OSSL_CMP_CTX_get_option(const OSSL_CMP_CTX *ctx, int opt); /* CMP-specific callback for logging and outputting the error queue: */ @@ -420,9 +516,11 @@ int OSSL_CMP_CTX_set1_server(OSSL_CMP_CTX *ctx, const char *address); int OSSL_CMP_CTX_set_serverPort(OSSL_CMP_CTX *ctx, int port); int OSSL_CMP_CTX_set1_proxy(OSSL_CMP_CTX *ctx, const char *name); int OSSL_CMP_CTX_set1_no_proxy(OSSL_CMP_CTX *ctx, const char *names); +# ifndef OPENSSL_NO_HTTP int OSSL_CMP_CTX_set_http_cb(OSSL_CMP_CTX *ctx, OSSL_HTTP_bio_cb_t cb); int OSSL_CMP_CTX_set_http_cb_arg(OSSL_CMP_CTX *ctx, void *arg); void *OSSL_CMP_CTX_get_http_cb_arg(const OSSL_CMP_CTX *ctx); +# endif typedef OSSL_CMP_MSG *(*OSSL_CMP_transfer_cb_t) (OSSL_CMP_CTX *ctx, const OSSL_CMP_MSG *req); int OSSL_CMP_CTX_set_transfer_cb(OSSL_CMP_CTX *ctx, OSSL_CMP_transfer_cb_t cb); @@ -432,7 +530,9 @@ void *OSSL_CMP_CTX_get_transfer_cb_arg(const OSSL_CMP_CTX *ctx); int OSSL_CMP_CTX_set1_srvCert(OSSL_CMP_CTX *ctx, X509 *cert); int OSSL_CMP_CTX_set1_expected_sender(OSSL_CMP_CTX *ctx, const X509_NAME *name); int OSSL_CMP_CTX_set0_trustedStore(OSSL_CMP_CTX *ctx, X509_STORE *store); +# define OSSL_CMP_CTX_set0_trusted OSSL_CMP_CTX_set0_trustedStore X509_STORE *OSSL_CMP_CTX_get0_trustedStore(const OSSL_CMP_CTX *ctx); +# define OSSL_CMP_CTX_get0_trusted OSSL_CMP_CTX_get0_trustedStore int OSSL_CMP_CTX_set1_untrusted(OSSL_CMP_CTX *ctx, STACK_OF(X509) *certs); STACK_OF(X509) *OSSL_CMP_CTX_get0_untrusted(const OSSL_CMP_CTX *ctx); /* client authentication: */ @@ -448,12 +548,15 @@ int OSSL_CMP_CTX_set1_secretValue(OSSL_CMP_CTX *ctx, int OSSL_CMP_CTX_set1_recipient(OSSL_CMP_CTX *ctx, const X509_NAME *name); int OSSL_CMP_CTX_push0_geninfo_ITAV(OSSL_CMP_CTX *ctx, OSSL_CMP_ITAV *itav); int OSSL_CMP_CTX_reset_geninfo_ITAVs(OSSL_CMP_CTX *ctx); +STACK_OF(OSSL_CMP_ITAV) + *OSSL_CMP_CTX_get0_geninfo_ITAVs(const OSSL_CMP_CTX *ctx); int OSSL_CMP_CTX_set1_extraCertsOut(OSSL_CMP_CTX *ctx, STACK_OF(X509) *extraCertsOut); /* certificate template: */ int OSSL_CMP_CTX_set0_newPkey(OSSL_CMP_CTX *ctx, int priv, EVP_PKEY *pkey); EVP_PKEY *OSSL_CMP_CTX_get0_newPkey(const OSSL_CMP_CTX *ctx, int priv); int OSSL_CMP_CTX_set1_issuer(OSSL_CMP_CTX *ctx, const X509_NAME *name); +int OSSL_CMP_CTX_set1_serialNumber(OSSL_CMP_CTX *ctx, const ASN1_INTEGER *sn); int OSSL_CMP_CTX_set1_subjectName(OSSL_CMP_CTX *ctx, const X509_NAME *name); int OSSL_CMP_CTX_push1_subjectAltName(OSSL_CMP_CTX *ctx, const GENERAL_NAME *name); @@ -477,6 +580,7 @@ int OSSL_CMP_CTX_get_status(const OSSL_CMP_CTX *ctx); OSSL_CMP_PKIFREETEXT *OSSL_CMP_CTX_get0_statusString(const OSSL_CMP_CTX *ctx); int OSSL_CMP_CTX_get_failInfoCode(const OSSL_CMP_CTX *ctx); # define OSSL_CMP_PKISI_BUFLEN 1024 +X509 *OSSL_CMP_CTX_get0_validatedSrvCert(const OSSL_CMP_CTX *ctx); X509 *OSSL_CMP_CTX_get0_newCert(const OSSL_CMP_CTX *ctx); STACK_OF(X509) *OSSL_CMP_CTX_get1_newChain(const OSSL_CMP_CTX *ctx); STACK_OF(X509) *OSSL_CMP_CTX_get1_caPubs(const OSSL_CMP_CTX *ctx); @@ -498,10 +602,13 @@ OSSL_CMP_STATUSINFO_new(int status, int fail_info, const char *text); ASN1_OCTET_STRING *OSSL_CMP_HDR_get0_transactionID(const OSSL_CMP_PKIHEADER *hdr); ASN1_OCTET_STRING *OSSL_CMP_HDR_get0_recipNonce(const OSSL_CMP_PKIHEADER *hdr); +STACK_OF(OSSL_CMP_ITAV) + *OSSL_CMP_HDR_get0_geninfo_ITAVs(const OSSL_CMP_PKIHEADER *hdr); /* from cmp_msg.c */ OSSL_CMP_PKIHEADER *OSSL_CMP_MSG_get0_header(const OSSL_CMP_MSG *msg); int OSSL_CMP_MSG_get_bodytype(const OSSL_CMP_MSG *msg); +X509_PUBKEY *OSSL_CMP_MSG_get0_certreq_publickey(const OSSL_CMP_MSG *msg); int OSSL_CMP_MSG_update_transactionID(OSSL_CMP_CTX *ctx, OSSL_CMP_MSG *msg); int OSSL_CMP_MSG_update_recipNonce(OSSL_CMP_CTX *ctx, OSSL_CMP_MSG *msg); OSSL_CRMF_MSG *OSSL_CMP_CTX_setup_CRM(OSSL_CMP_CTX *ctx, int for_KUR, int rid); @@ -517,8 +624,10 @@ int OSSL_CMP_validate_cert_path(const OSSL_CMP_CTX *ctx, X509_STORE *trusted_store, X509 *cert); /* from cmp_http.c */ +# ifndef OPENSSL_NO_HTTP OSSL_CMP_MSG *OSSL_CMP_MSG_http_perform(OSSL_CMP_CTX *ctx, const OSSL_CMP_MSG *req); +# endif /* from cmp_server.c */ typedef struct ossl_cmp_srv_ctx_st OSSL_CMP_SRV_CTX; @@ -561,6 +670,13 @@ int OSSL_CMP_SRV_CTX_init(OSSL_CMP_SRV_CTX *srv_ctx, void *custom_ctx, OSSL_CMP_SRV_error_cb_t process_error, OSSL_CMP_SRV_certConf_cb_t process_certConf, OSSL_CMP_SRV_pollReq_cb_t process_pollReq); +typedef int (*OSSL_CMP_SRV_delayed_delivery_cb_t)(OSSL_CMP_SRV_CTX *srv_ctx, + const OSSL_CMP_MSG *req); +typedef int (*OSSL_CMP_SRV_clean_transaction_cb_t)(OSSL_CMP_SRV_CTX *srv_ctx, + const ASN1_OCTET_STRING *id); +int OSSL_CMP_SRV_CTX_init_trans(OSSL_CMP_SRV_CTX *srv_ctx, + OSSL_CMP_SRV_delayed_delivery_cb_t delay, + OSSL_CMP_SRV_clean_transaction_cb_t clean); OSSL_CMP_CTX *OSSL_CMP_SRV_CTX_get0_cmp_ctx(const OSSL_CMP_SRV_CTX *srv_ctx); void *OSSL_CMP_SRV_CTX_get0_custom_ctx(const OSSL_CMP_SRV_CTX *srv_ctx); int OSSL_CMP_SRV_CTX_set_send_unprotected_errors(OSSL_CMP_SRV_CTX *srv_ctx, @@ -577,6 +693,8 @@ X509 *OSSL_CMP_exec_certreq(OSSL_CMP_CTX *ctx, int req_type, # define OSSL_CMP_CR 2 # define OSSL_CMP_P10CR 4 # define OSSL_CMP_KUR 7 +# define OSSL_CMP_GENM 21 +# define OSSL_CMP_ERROR 23 # define OSSL_CMP_exec_IR_ses(ctx) \ OSSL_CMP_exec_certreq(ctx, OSSL_CMP_IR, NULL) # define OSSL_CMP_exec_CR_ses(ctx) \ @@ -590,6 +708,18 @@ int OSSL_CMP_try_certreq(OSSL_CMP_CTX *ctx, int req_type, int OSSL_CMP_exec_RR_ses(OSSL_CMP_CTX *ctx); STACK_OF(OSSL_CMP_ITAV) *OSSL_CMP_exec_GENM_ses(OSSL_CMP_CTX *ctx); +/* from cmp_genm.c */ +int OSSL_CMP_get1_caCerts(OSSL_CMP_CTX *ctx, STACK_OF(X509) **out); +int OSSL_CMP_get1_rootCaKeyUpdate(OSSL_CMP_CTX *ctx, + const X509 *oldWithOld, X509 **newWithNew, + X509 **newWithOld, X509 **oldWithNew); +int OSSL_CMP_get1_crlUpdate(OSSL_CMP_CTX *ctx, const X509 *crlcert, + const X509_CRL *last_crl, + X509_CRL **crl); +int OSSL_CMP_get1_certReqTemplate(OSSL_CMP_CTX *ctx, + OSSL_CRMF_CERTTEMPLATE **certTemplate, + OSSL_CMP_ATAVS **keySpec); + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/VC-WIN32/asm/include/openssl/cms.h b/deps/openssl/config/archs/VC-WIN32/asm/include/openssl/cms.h index 03ce6ab07aac44..1a51921256fea4 100644 --- a/deps/openssl/config/archs/VC-WIN32/asm/include/openssl/cms.h +++ b/deps/openssl/config/archs/VC-WIN32/asm/include/openssl/cms.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by makefile from include/openssl/cms.h.in * - * Copyright 2008-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2008-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -31,8 +31,10 @@ extern "C" { # endif +typedef struct CMS_EnvelopedData_st CMS_EnvelopedData; typedef struct CMS_ContentInfo_st CMS_ContentInfo; typedef struct CMS_SignerInfo_st CMS_SignerInfo; +typedef struct CMS_SignedData_st CMS_SignedData; typedef struct CMS_CertificateChoices CMS_CertificateChoices; typedef struct CMS_RevocationInfoChoice_st CMS_RevocationInfoChoice; typedef struct CMS_RecipientInfo_st CMS_RecipientInfo; @@ -147,10 +149,14 @@ SKM_DEFINE_STACK_OF_INTERNAL(CMS_RevocationInfoChoice, CMS_RevocationInfoChoice, #define sk_CMS_RevocationInfoChoice_set_cmp_func(sk, cmp) ((sk_CMS_RevocationInfoChoice_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_CMS_RevocationInfoChoice_sk_type(sk), ossl_check_CMS_RevocationInfoChoice_compfunc_type(cmp))) +DECLARE_ASN1_ITEM(CMS_EnvelopedData) +DECLARE_ASN1_ALLOC_FUNCTIONS(CMS_SignedData) DECLARE_ASN1_FUNCTIONS(CMS_ContentInfo) DECLARE_ASN1_FUNCTIONS(CMS_ReceiptRequest) DECLARE_ASN1_PRINT_FUNCTION(CMS_ContentInfo) +DECLARE_ASN1_DUP_FUNCTION(CMS_EnvelopedData) + CMS_ContentInfo *CMS_ContentInfo_new_ex(OSSL_LIB_CTX *libctx, const char *propq); # define CMS_SIGNERINFO_ISSUER_SERIAL 0 @@ -190,6 +196,7 @@ CMS_ContentInfo *CMS_ContentInfo_new_ex(OSSL_LIB_CTX *libctx, const char *propq) # define CMS_ASCIICRLF 0x80000 # define CMS_CADES 0x100000 # define CMS_USE_ORIGINATOR_KEYID 0x200000 +# define CMS_NO_SIGNING_TIME 0x400000 const ASN1_OBJECT *CMS_get0_type(const CMS_ContentInfo *cms); @@ -217,13 +224,16 @@ int SMIME_write_CMS(BIO *bio, CMS_ContentInfo *cms, BIO *data, int flags); int CMS_final(CMS_ContentInfo *cms, BIO *data, BIO *dcont, unsigned int flags); +int CMS_final_digest(CMS_ContentInfo *cms, + const unsigned char *md, unsigned int mdlen, BIO *dcont, + unsigned int flags); CMS_ContentInfo *CMS_sign(X509 *signcert, EVP_PKEY *pkey, STACK_OF(X509) *certs, BIO *data, unsigned int flags); CMS_ContentInfo *CMS_sign_ex(X509 *signcert, EVP_PKEY *pkey, STACK_OF(X509) *certs, BIO *data, - unsigned int flags, OSSL_LIB_CTX *ctx, + unsigned int flags, OSSL_LIB_CTX *libctx, const char *propq); CMS_ContentInfo *CMS_sign_receipt(CMS_SignerInfo *si, @@ -233,27 +243,26 @@ CMS_ContentInfo *CMS_sign_receipt(CMS_SignerInfo *si, int CMS_data(CMS_ContentInfo *cms, BIO *out, unsigned int flags); CMS_ContentInfo *CMS_data_create(BIO *in, unsigned int flags); CMS_ContentInfo *CMS_data_create_ex(BIO *in, unsigned int flags, - OSSL_LIB_CTX *ctx, const char *propq); + OSSL_LIB_CTX *libctx, const char *propq); int CMS_digest_verify(CMS_ContentInfo *cms, BIO *dcont, BIO *out, unsigned int flags); CMS_ContentInfo *CMS_digest_create(BIO *in, const EVP_MD *md, unsigned int flags); CMS_ContentInfo *CMS_digest_create_ex(BIO *in, const EVP_MD *md, - unsigned int flags, OSSL_LIB_CTX *ctx, + unsigned int flags, OSSL_LIB_CTX *libctx, const char *propq); int CMS_EncryptedData_decrypt(CMS_ContentInfo *cms, const unsigned char *key, size_t keylen, BIO *dcont, BIO *out, unsigned int flags); - CMS_ContentInfo *CMS_EncryptedData_encrypt(BIO *in, const EVP_CIPHER *cipher, const unsigned char *key, size_t keylen, unsigned int flags); CMS_ContentInfo *CMS_EncryptedData_encrypt_ex(BIO *in, const EVP_CIPHER *cipher, const unsigned char *key, size_t keylen, unsigned int flags, - OSSL_LIB_CTX *ctx, + OSSL_LIB_CTX *libctx, const char *propq); int CMS_EncryptedData_set1_key(CMS_ContentInfo *cms, const EVP_CIPHER *ciph, @@ -272,7 +281,7 @@ CMS_ContentInfo *CMS_encrypt(STACK_OF(X509) *certs, BIO *in, const EVP_CIPHER *cipher, unsigned int flags); CMS_ContentInfo *CMS_encrypt_ex(STACK_OF(X509) *certs, BIO *in, const EVP_CIPHER *cipher, unsigned int flags, - OSSL_LIB_CTX *ctx, const char *propq); + OSSL_LIB_CTX *libctx, const char *propq); int CMS_decrypt(CMS_ContentInfo *cms, EVP_PKEY *pkey, X509 *cert, BIO *dcont, BIO *out, unsigned int flags); @@ -291,12 +300,16 @@ int CMS_RecipientInfo_type(CMS_RecipientInfo *ri); EVP_PKEY_CTX *CMS_RecipientInfo_get0_pkey_ctx(CMS_RecipientInfo *ri); CMS_ContentInfo *CMS_AuthEnvelopedData_create(const EVP_CIPHER *cipher); CMS_ContentInfo * -CMS_AuthEnvelopedData_create_ex(const EVP_CIPHER *cipher, OSSL_LIB_CTX *ctx, +CMS_AuthEnvelopedData_create_ex(const EVP_CIPHER *cipher, OSSL_LIB_CTX *libctx, const char *propq); CMS_ContentInfo *CMS_EnvelopedData_create(const EVP_CIPHER *cipher); CMS_ContentInfo *CMS_EnvelopedData_create_ex(const EVP_CIPHER *cipher, - OSSL_LIB_CTX *ctx, + OSSL_LIB_CTX *libctx, const char *propq); +BIO *CMS_EnvelopedData_decrypt(CMS_EnvelopedData *env, BIO *detached_data, + EVP_PKEY *pkey, X509 *cert, + ASN1_OCTET_STRING *secret, unsigned int flags, + OSSL_LIB_CTX *libctx, const char *propq); CMS_RecipientInfo *CMS_add1_recipient_cert(CMS_ContentInfo *cms, X509 *recip, unsigned int flags); @@ -385,6 +398,11 @@ ASN1_OCTET_STRING *CMS_SignerInfo_get0_signature(CMS_SignerInfo *si); int CMS_SignerInfo_sign(CMS_SignerInfo *si); int CMS_SignerInfo_verify(CMS_SignerInfo *si); int CMS_SignerInfo_verify_content(CMS_SignerInfo *si, BIO *chain); +BIO *CMS_SignedData_verify(CMS_SignedData *sd, BIO *detached_data, + STACK_OF(X509) *scerts, X509_STORE *store, + STACK_OF(X509) *extra, STACK_OF(X509_CRL) *crls, + unsigned int flags, + OSSL_LIB_CTX *libctx, const char *propq); int CMS_add_smimecap(CMS_SignerInfo *si, STACK_OF(X509_ALGOR) *algs); int CMS_add_simple_smimecap(STACK_OF(X509_ALGOR) **algs, @@ -441,7 +459,7 @@ CMS_ReceiptRequest *CMS_ReceiptRequest_create0_ex( unsigned char *id, int idlen, int allorfirst, STACK_OF(GENERAL_NAMES) *receiptList, STACK_OF(GENERAL_NAMES) *receiptsTo, - OSSL_LIB_CTX *ctx); + OSSL_LIB_CTX *libctx); int CMS_add1_ReceiptRequest(CMS_SignerInfo *si, CMS_ReceiptRequest *rr); void CMS_ReceiptRequest_get0_values(CMS_ReceiptRequest *rr, diff --git a/deps/openssl/config/archs/VC-WIN32/asm/include/openssl/comp.h b/deps/openssl/config/archs/VC-WIN32/asm/include/openssl/comp.h new file mode 100644 index 00000000000000..90e39511fe8d28 --- /dev/null +++ b/deps/openssl/config/archs/VC-WIN32/asm/include/openssl/comp.h @@ -0,0 +1,98 @@ +/* + * Copyright 2015-2024 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + + +#ifndef OPENSSL_COMP_H +# define OPENSSL_COMP_H +# pragma once + +# include +# ifndef OPENSSL_NO_DEPRECATED_3_0 +# define HEADER_COMP_H +# endif + +# include + +# include +# include +# ifdef __cplusplus +extern "C" { +# endif + + + +# ifndef OPENSSL_NO_COMP + +COMP_CTX *COMP_CTX_new(COMP_METHOD *meth); +const COMP_METHOD *COMP_CTX_get_method(const COMP_CTX *ctx); +int COMP_CTX_get_type(const COMP_CTX* comp); +int COMP_get_type(const COMP_METHOD *meth); +const char *COMP_get_name(const COMP_METHOD *meth); +void COMP_CTX_free(COMP_CTX *ctx); + +int COMP_compress_block(COMP_CTX *ctx, unsigned char *out, int olen, + unsigned char *in, int ilen); +int COMP_expand_block(COMP_CTX *ctx, unsigned char *out, int olen, + unsigned char *in, int ilen); + +COMP_METHOD *COMP_zlib(void); +COMP_METHOD *COMP_zlib_oneshot(void); +COMP_METHOD *COMP_brotli(void); +COMP_METHOD *COMP_brotli_oneshot(void); +COMP_METHOD *COMP_zstd(void); +COMP_METHOD *COMP_zstd_oneshot(void); + +# ifndef OPENSSL_NO_DEPRECATED_1_1_0 +# define COMP_zlib_cleanup() while(0) continue +# endif + +# ifdef OPENSSL_BIO_H +const BIO_METHOD *BIO_f_zlib(void); +const BIO_METHOD *BIO_f_brotli(void); +const BIO_METHOD *BIO_f_zstd(void); +# endif + +# endif + +typedef struct ssl_comp_st SSL_COMP; + +SKM_DEFINE_STACK_OF_INTERNAL(SSL_COMP, SSL_COMP, SSL_COMP) +#define sk_SSL_COMP_num(sk) OPENSSL_sk_num(ossl_check_const_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_value(sk, idx) ((SSL_COMP *)OPENSSL_sk_value(ossl_check_const_SSL_COMP_sk_type(sk), (idx))) +#define sk_SSL_COMP_new(cmp) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new(ossl_check_SSL_COMP_compfunc_type(cmp))) +#define sk_SSL_COMP_new_null() ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new_null()) +#define sk_SSL_COMP_new_reserve(cmp, n) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new_reserve(ossl_check_SSL_COMP_compfunc_type(cmp), (n))) +#define sk_SSL_COMP_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_SSL_COMP_sk_type(sk), (n)) +#define sk_SSL_COMP_free(sk) OPENSSL_sk_free(ossl_check_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_zero(sk) OPENSSL_sk_zero(ossl_check_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_delete(sk, i) ((SSL_COMP *)OPENSSL_sk_delete(ossl_check_SSL_COMP_sk_type(sk), (i))) +#define sk_SSL_COMP_delete_ptr(sk, ptr) ((SSL_COMP *)OPENSSL_sk_delete_ptr(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr))) +#define sk_SSL_COMP_push(sk, ptr) OPENSSL_sk_push(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) +#define sk_SSL_COMP_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) +#define sk_SSL_COMP_pop(sk) ((SSL_COMP *)OPENSSL_sk_pop(ossl_check_SSL_COMP_sk_type(sk))) +#define sk_SSL_COMP_shift(sk) ((SSL_COMP *)OPENSSL_sk_shift(ossl_check_SSL_COMP_sk_type(sk))) +#define sk_SSL_COMP_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_SSL_COMP_sk_type(sk),ossl_check_SSL_COMP_freefunc_type(freefunc)) +#define sk_SSL_COMP_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr), (idx)) +#define sk_SSL_COMP_set(sk, idx, ptr) ((SSL_COMP *)OPENSSL_sk_set(ossl_check_SSL_COMP_sk_type(sk), (idx), ossl_check_SSL_COMP_type(ptr))) +#define sk_SSL_COMP_find(sk, ptr) OPENSSL_sk_find(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) +#define sk_SSL_COMP_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) +#define sk_SSL_COMP_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr), pnum) +#define sk_SSL_COMP_sort(sk) OPENSSL_sk_sort(ossl_check_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_dup(sk) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_dup(ossl_check_const_SSL_COMP_sk_type(sk))) +#define sk_SSL_COMP_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_deep_copy(ossl_check_const_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_copyfunc_type(copyfunc), ossl_check_SSL_COMP_freefunc_type(freefunc))) +#define sk_SSL_COMP_set_cmp_func(sk, cmp) ((sk_SSL_COMP_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_compfunc_type(cmp))) + + + +# ifdef __cplusplus +} +# endif +#endif diff --git a/deps/openssl/config/archs/VC-WIN32/asm/include/openssl/conf.h b/deps/openssl/config/archs/VC-WIN32/asm/include/openssl/conf.h index 994e573a957435..ffa9ced71e8b26 100644 --- a/deps/openssl/config/archs/VC-WIN32/asm/include/openssl/conf.h +++ b/deps/openssl/config/archs/VC-WIN32/asm/include/openssl/conf.h @@ -27,6 +27,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -65,7 +68,7 @@ SKM_DEFINE_STACK_OF_INTERNAL(CONF_VALUE, CONF_VALUE, CONF_VALUE) #define sk_CONF_VALUE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(CONF_VALUE) *)OPENSSL_sk_deep_copy(ossl_check_const_CONF_VALUE_sk_type(sk), ossl_check_CONF_VALUE_copyfunc_type(copyfunc), ossl_check_CONF_VALUE_freefunc_type(freefunc))) #define sk_CONF_VALUE_set_cmp_func(sk, cmp) ((sk_CONF_VALUE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_CONF_VALUE_sk_type(sk), ossl_check_CONF_VALUE_compfunc_type(cmp))) DEFINE_LHASH_OF_INTERNAL(CONF_VALUE); -#define lh_CONF_VALUE_new(hfn, cmp) ((LHASH_OF(CONF_VALUE) *)OPENSSL_LH_new(ossl_check_CONF_VALUE_lh_hashfunc_type(hfn), ossl_check_CONF_VALUE_lh_compfunc_type(cmp))) +#define lh_CONF_VALUE_new(hfn, cmp) ((LHASH_OF(CONF_VALUE) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new(ossl_check_CONF_VALUE_lh_hashfunc_type(hfn), ossl_check_CONF_VALUE_lh_compfunc_type(cmp)), lh_CONF_VALUE_hash_thunk, lh_CONF_VALUE_comp_thunk, lh_CONF_VALUE_doall_thunk, lh_CONF_VALUE_doall_arg_thunk)) #define lh_CONF_VALUE_free(lh) OPENSSL_LH_free(ossl_check_CONF_VALUE_lh_type(lh)) #define lh_CONF_VALUE_flush(lh) OPENSSL_LH_flush(ossl_check_CONF_VALUE_lh_type(lh)) #define lh_CONF_VALUE_insert(lh, ptr) ((CONF_VALUE *)OPENSSL_LH_insert(ossl_check_CONF_VALUE_lh_type(lh), ossl_check_CONF_VALUE_lh_plain_type(ptr))) diff --git a/deps/openssl/config/archs/VC-WIN32/asm/include/openssl/configuration.h b/deps/openssl/config/archs/VC-WIN32/asm/include/openssl/configuration.h index 254054cd2238c7..8dedfeab00f64a 100644 --- a/deps/openssl/config/archs/VC-WIN32/asm/include/openssl/configuration.h +++ b/deps/openssl/config/archs/VC-WIN32/asm/include/openssl/configuration.h @@ -29,7 +29,7 @@ extern "C" { # ifndef OPENSSL_SYS_WIN32 # define OPENSSL_SYS_WIN32 1 # endif -# define OPENSSL_CONFIGURED_API 30000 +# define OPENSSL_CONFIGURED_API 30500 # ifndef OPENSSL_RAND_SEED_OS # define OPENSSL_RAND_SEED_OS # endif @@ -42,6 +42,12 @@ extern "C" { # ifndef OPENSSL_NO_ASAN # define OPENSSL_NO_ASAN # endif +# ifndef OPENSSL_NO_BROTLI +# define OPENSSL_NO_BROTLI +# endif +# ifndef OPENSSL_NO_BROTLI_DYNAMIC +# define OPENSSL_NO_BROTLI_DYNAMIC +# endif # ifndef OPENSSL_NO_COMP # define OPENSSL_NO_COMP # endif @@ -51,6 +57,9 @@ extern "C" { # ifndef OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE # define OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE # endif +# ifndef OPENSSL_NO_DEMOS +# define OPENSSL_NO_DEMOS +# endif # ifndef OPENSSL_NO_DEVCRYPTOENG # define OPENSSL_NO_DEVCRYPTOENG # endif @@ -63,12 +72,24 @@ extern "C" { # ifndef OPENSSL_NO_EXTERNAL_TESTS # define OPENSSL_NO_EXTERNAL_TESTS # endif +# ifndef OPENSSL_NO_FIPS_JITTER +# define OPENSSL_NO_FIPS_JITTER +# endif # ifndef OPENSSL_NO_FUZZ_AFL # define OPENSSL_NO_FUZZ_AFL # endif # ifndef OPENSSL_NO_FUZZ_LIBFUZZER # define OPENSSL_NO_FUZZ_LIBFUZZER # endif +# ifndef OPENSSL_NO_H3DEMO +# define OPENSSL_NO_H3DEMO +# endif +# ifndef OPENSSL_NO_HQINTEROP +# define OPENSSL_NO_HQINTEROP +# endif +# ifndef OPENSSL_NO_JITTER +# define OPENSSL_NO_JITTER +# endif # ifndef OPENSSL_NO_KTLS # define OPENSSL_NO_KTLS # endif @@ -81,6 +102,9 @@ extern "C" { # ifndef OPENSSL_NO_MSAN # define OPENSSL_NO_MSAN # endif +# ifndef OPENSSL_NO_PIE +# define OPENSSL_NO_PIE +# endif # ifndef OPENSSL_NO_RC5 # define OPENSSL_NO_RC5 # endif @@ -93,6 +117,12 @@ extern "C" { # ifndef OPENSSL_NO_SSL3_METHOD # define OPENSSL_NO_SSL3_METHOD # endif +# ifndef OPENSSL_NO_SSLKEYLOG +# define OPENSSL_NO_SSLKEYLOG +# endif +# ifndef OPENSSL_NO_TFO +# define OPENSSL_NO_TFO +# endif # ifndef OPENSSL_NO_TRACE # define OPENSSL_NO_TRACE # endif @@ -108,6 +138,18 @@ extern "C" { # ifndef OPENSSL_NO_WEAK_SSL_CIPHERS # define OPENSSL_NO_WEAK_SSL_CIPHERS # endif +# ifndef OPENSSL_NO_ZLIB +# define OPENSSL_NO_ZLIB +# endif +# ifndef OPENSSL_NO_ZLIB_DYNAMIC +# define OPENSSL_NO_ZLIB_DYNAMIC +# endif +# ifndef OPENSSL_NO_ZSTD +# define OPENSSL_NO_ZSTD +# endif +# ifndef OPENSSL_NO_ZSTD_DYNAMIC +# define OPENSSL_NO_ZSTD_DYNAMIC +# endif # ifndef OPENSSL_NO_DYNAMIC_ENGINE # define OPENSSL_NO_DYNAMIC_ENGINE # endif @@ -129,6 +171,12 @@ extern "C" { # define RC4_INT unsigned int +# if defined(OPENSSL_NO_COMP) || (defined(OPENSSL_NO_BROTLI) && defined(OPENSSL_NO_ZSTD) && defined(OPENSSL_NO_ZLIB)) +# define OPENSSL_NO_COMP_ALG +# else +# undef OPENSSL_NO_COMP_ALG +# endif + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/VC-WIN32/asm/include/openssl/core_names.h b/deps/openssl/config/archs/VC-WIN32/asm/include/openssl/core_names.h new file mode 100644 index 00000000000000..aaca6051c81b53 --- /dev/null +++ b/deps/openssl/config/archs/VC-WIN32/asm/include/openssl/core_names.h @@ -0,0 +1,575 @@ +/* + * WARNING: do not edit! + * Generated by makefile from include/openssl/core_names.h.in + * + * Copyright 2019-2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + +#ifndef OPENSSL_CORE_NAMES_H +# define OPENSSL_CORE_NAMES_H +# pragma once + +# ifdef __cplusplus +extern "C" { +# endif + +/* OSSL_CIPHER_PARAM_CTS_MODE Values */ +# define OSSL_CIPHER_CTS_MODE_CS1 "CS1" +# define OSSL_CIPHER_CTS_MODE_CS2 "CS2" +# define OSSL_CIPHER_CTS_MODE_CS3 "CS3" + +/* Known CIPHER names (not a complete list) */ +# define OSSL_CIPHER_NAME_AES_128_GCM_SIV "AES-128-GCM-SIV" +# define OSSL_CIPHER_NAME_AES_192_GCM_SIV "AES-192-GCM-SIV" +# define OSSL_CIPHER_NAME_AES_256_GCM_SIV "AES-256-GCM-SIV" + +/* Known DIGEST names (not a complete list) */ +# define OSSL_DIGEST_NAME_MD5 "MD5" +# define OSSL_DIGEST_NAME_MD5_SHA1 "MD5-SHA1" +# define OSSL_DIGEST_NAME_SHA1 "SHA1" +# define OSSL_DIGEST_NAME_SHA2_224 "SHA2-224" +# define OSSL_DIGEST_NAME_SHA2_256 "SHA2-256" +# define OSSL_DIGEST_NAME_SHA2_256_192 "SHA2-256/192" +# define OSSL_DIGEST_NAME_SHA2_384 "SHA2-384" +# define OSSL_DIGEST_NAME_SHA2_512 "SHA2-512" +# define OSSL_DIGEST_NAME_SHA2_512_224 "SHA2-512/224" +# define OSSL_DIGEST_NAME_SHA2_512_256 "SHA2-512/256" +# define OSSL_DIGEST_NAME_MD2 "MD2" +# define OSSL_DIGEST_NAME_MD4 "MD4" +# define OSSL_DIGEST_NAME_MDC2 "MDC2" +# define OSSL_DIGEST_NAME_RIPEMD160 "RIPEMD160" +# define OSSL_DIGEST_NAME_SHA3_224 "SHA3-224" +# define OSSL_DIGEST_NAME_SHA3_256 "SHA3-256" +# define OSSL_DIGEST_NAME_SHA3_384 "SHA3-384" +# define OSSL_DIGEST_NAME_SHA3_512 "SHA3-512" +# define OSSL_DIGEST_NAME_KECCAK_KMAC128 "KECCAK-KMAC-128" +# define OSSL_DIGEST_NAME_KECCAK_KMAC256 "KECCAK-KMAC-256" +# define OSSL_DIGEST_NAME_SM3 "SM3" + +/* Known MAC names */ +# define OSSL_MAC_NAME_BLAKE2BMAC "BLAKE2BMAC" +# define OSSL_MAC_NAME_BLAKE2SMAC "BLAKE2SMAC" +# define OSSL_MAC_NAME_CMAC "CMAC" +# define OSSL_MAC_NAME_GMAC "GMAC" +# define OSSL_MAC_NAME_HMAC "HMAC" +# define OSSL_MAC_NAME_KMAC128 "KMAC128" +# define OSSL_MAC_NAME_KMAC256 "KMAC256" +# define OSSL_MAC_NAME_POLY1305 "POLY1305" +# define OSSL_MAC_NAME_SIPHASH "SIPHASH" + +/* Known KDF names */ +# define OSSL_KDF_NAME_HKDF "HKDF" +# define OSSL_KDF_NAME_TLS1_3_KDF "TLS13-KDF" +# define OSSL_KDF_NAME_PBKDF1 "PBKDF1" +# define OSSL_KDF_NAME_PBKDF2 "PBKDF2" +# define OSSL_KDF_NAME_SCRYPT "SCRYPT" +# define OSSL_KDF_NAME_SSHKDF "SSHKDF" +# define OSSL_KDF_NAME_SSKDF "SSKDF" +# define OSSL_KDF_NAME_TLS1_PRF "TLS1-PRF" +# define OSSL_KDF_NAME_X942KDF_ASN1 "X942KDF-ASN1" +# define OSSL_KDF_NAME_X942KDF_CONCAT "X942KDF-CONCAT" +# define OSSL_KDF_NAME_X963KDF "X963KDF" +# define OSSL_KDF_NAME_KBKDF "KBKDF" +# define OSSL_KDF_NAME_KRB5KDF "KRB5KDF" +# define OSSL_KDF_NAME_HMACDRBGKDF "HMAC-DRBG-KDF" + +/* RSA padding modes */ +# define OSSL_PKEY_RSA_PAD_MODE_NONE "none" +# define OSSL_PKEY_RSA_PAD_MODE_PKCSV15 "pkcs1" +# define OSSL_PKEY_RSA_PAD_MODE_OAEP "oaep" +# define OSSL_PKEY_RSA_PAD_MODE_X931 "x931" +# define OSSL_PKEY_RSA_PAD_MODE_PSS "pss" + +/* RSA pss padding salt length */ +# define OSSL_PKEY_RSA_PSS_SALT_LEN_DIGEST "digest" +# define OSSL_PKEY_RSA_PSS_SALT_LEN_MAX "max" +# define OSSL_PKEY_RSA_PSS_SALT_LEN_AUTO "auto" +# define OSSL_PKEY_RSA_PSS_SALT_LEN_AUTO_DIGEST_MAX "auto-digestmax" + +/* OSSL_PKEY_PARAM_EC_ENCODING values */ +# define OSSL_PKEY_EC_ENCODING_EXPLICIT "explicit" +# define OSSL_PKEY_EC_ENCODING_GROUP "named_curve" + +# define OSSL_PKEY_EC_POINT_CONVERSION_FORMAT_UNCOMPRESSED "uncompressed" +# define OSSL_PKEY_EC_POINT_CONVERSION_FORMAT_COMPRESSED "compressed" +# define OSSL_PKEY_EC_POINT_CONVERSION_FORMAT_HYBRID "hybrid" + +# define OSSL_PKEY_EC_GROUP_CHECK_DEFAULT "default" +# define OSSL_PKEY_EC_GROUP_CHECK_NAMED "named" +# define OSSL_PKEY_EC_GROUP_CHECK_NAMED_NIST "named-nist" + +/* PROV_SKEY well known key types */ +# define OSSL_SKEY_TYPE_GENERIC "GENERIC-SECRET" +# define OSSL_SKEY_TYPE_AES "AES" + +/* OSSL_KEM_PARAM_OPERATION values */ +#define OSSL_KEM_PARAM_OPERATION_RSASVE "RSASVE" +#define OSSL_KEM_PARAM_OPERATION_DHKEM "DHKEM" + +/* Provider configuration variables */ +#define OSSL_PKEY_RETAIN_SEED "pkey_retain_seed" + +/* Parameter name definitions - generated by util/perl/OpenSSL/paramnames.pm */ +# define OSSL_ALG_PARAM_ALGORITHM_ID "algorithm-id" +# define OSSL_ALG_PARAM_ALGORITHM_ID_PARAMS "algorithm-id-params" +# define OSSL_ALG_PARAM_CIPHER "cipher" +# define OSSL_ALG_PARAM_DIGEST "digest" +# define OSSL_ALG_PARAM_ENGINE "engine" +# define OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR "fips-indicator" +# define OSSL_ALG_PARAM_MAC "mac" +# define OSSL_ALG_PARAM_PROPERTIES "properties" +# define OSSL_ASYM_CIPHER_PARAM_DIGEST OSSL_PKEY_PARAM_DIGEST +# define OSSL_ASYM_CIPHER_PARAM_ENGINE OSSL_PKEY_PARAM_ENGINE +# define OSSL_ASYM_CIPHER_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_ASYM_CIPHER_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_ASYM_CIPHER_PARAM_FIPS_RSA_PKCS15_PAD_DISABLED OSSL_PROV_PARAM_RSA_PKCS15_PAD_DISABLED +# define OSSL_ASYM_CIPHER_PARAM_IMPLICIT_REJECTION "implicit-rejection" +# define OSSL_ASYM_CIPHER_PARAM_MGF1_DIGEST OSSL_PKEY_PARAM_MGF1_DIGEST +# define OSSL_ASYM_CIPHER_PARAM_MGF1_DIGEST_PROPS OSSL_PKEY_PARAM_MGF1_PROPERTIES +# define OSSL_ASYM_CIPHER_PARAM_OAEP_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_ASYM_CIPHER_PARAM_OAEP_DIGEST_PROPS "digest-props" +# define OSSL_ASYM_CIPHER_PARAM_OAEP_LABEL "oaep-label" +# define OSSL_ASYM_CIPHER_PARAM_PAD_MODE OSSL_PKEY_PARAM_PAD_MODE +# define OSSL_ASYM_CIPHER_PARAM_PROPERTIES OSSL_PKEY_PARAM_PROPERTIES +# define OSSL_ASYM_CIPHER_PARAM_TLS_CLIENT_VERSION "tls-client-version" +# define OSSL_ASYM_CIPHER_PARAM_TLS_NEGOTIATED_VERSION "tls-negotiated-version" +# define OSSL_CAPABILITY_TLS_GROUP_ALG "tls-group-alg" +# define OSSL_CAPABILITY_TLS_GROUP_ID "tls-group-id" +# define OSSL_CAPABILITY_TLS_GROUP_IS_KEM "tls-group-is-kem" +# define OSSL_CAPABILITY_TLS_GROUP_MAX_DTLS "tls-max-dtls" +# define OSSL_CAPABILITY_TLS_GROUP_MAX_TLS "tls-max-tls" +# define OSSL_CAPABILITY_TLS_GROUP_MIN_DTLS "tls-min-dtls" +# define OSSL_CAPABILITY_TLS_GROUP_MIN_TLS "tls-min-tls" +# define OSSL_CAPABILITY_TLS_GROUP_NAME "tls-group-name" +# define OSSL_CAPABILITY_TLS_GROUP_NAME_INTERNAL "tls-group-name-internal" +# define OSSL_CAPABILITY_TLS_GROUP_SECURITY_BITS "tls-group-sec-bits" +# define OSSL_CAPABILITY_TLS_SIGALG_CODE_POINT "tls-sigalg-code-point" +# define OSSL_CAPABILITY_TLS_SIGALG_HASH_NAME "tls-sigalg-hash-name" +# define OSSL_CAPABILITY_TLS_SIGALG_HASH_OID "tls-sigalg-hash-oid" +# define OSSL_CAPABILITY_TLS_SIGALG_IANA_NAME "tls-sigalg-iana-name" +# define OSSL_CAPABILITY_TLS_SIGALG_KEYTYPE "tls-sigalg-keytype" +# define OSSL_CAPABILITY_TLS_SIGALG_KEYTYPE_OID "tls-sigalg-keytype-oid" +# define OSSL_CAPABILITY_TLS_SIGALG_MAX_DTLS "tls-max-dtls" +# define OSSL_CAPABILITY_TLS_SIGALG_MAX_TLS "tls-max-tls" +# define OSSL_CAPABILITY_TLS_SIGALG_MIN_DTLS "tls-min-dtls" +# define OSSL_CAPABILITY_TLS_SIGALG_MIN_TLS "tls-min-tls" +# define OSSL_CAPABILITY_TLS_SIGALG_NAME "tls-sigalg-name" +# define OSSL_CAPABILITY_TLS_SIGALG_OID "tls-sigalg-oid" +# define OSSL_CAPABILITY_TLS_SIGALG_SECURITY_BITS "tls-sigalg-sec-bits" +# define OSSL_CAPABILITY_TLS_SIGALG_SIG_NAME "tls-sigalg-sig-name" +# define OSSL_CAPABILITY_TLS_SIGALG_SIG_OID "tls-sigalg-sig-oid" +# define OSSL_CIPHER_PARAM_AEAD "aead" +# define OSSL_CIPHER_PARAM_AEAD_IVLEN OSSL_CIPHER_PARAM_IVLEN +# define OSSL_CIPHER_PARAM_AEAD_IV_GENERATED "iv-generated" +# define OSSL_CIPHER_PARAM_AEAD_MAC_KEY "mackey" +# define OSSL_CIPHER_PARAM_AEAD_TAG "tag" +# define OSSL_CIPHER_PARAM_AEAD_TAGLEN "taglen" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_AAD "tlsaad" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_AAD_PAD "tlsaadpad" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_GET_IV_GEN "tlsivgen" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_IV_FIXED "tlsivfixed" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_SET_IV_INV "tlsivinv" +# define OSSL_CIPHER_PARAM_ALGORITHM_ID OSSL_ALG_PARAM_ALGORITHM_ID +# define OSSL_CIPHER_PARAM_ALGORITHM_ID_PARAMS OSSL_ALG_PARAM_ALGORITHM_ID_PARAMS +# define OSSL_CIPHER_PARAM_ALGORITHM_ID_PARAMS_OLD "alg_id_param" +# define OSSL_CIPHER_PARAM_BLOCK_SIZE "blocksize" +# define OSSL_CIPHER_PARAM_CTS "cts" +# define OSSL_CIPHER_PARAM_CTS_MODE "cts_mode" +# define OSSL_CIPHER_PARAM_CUSTOM_IV "custom-iv" +# define OSSL_CIPHER_PARAM_DECRYPT_ONLY "decrypt-only" +# define OSSL_CIPHER_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_CIPHER_PARAM_FIPS_ENCRYPT_CHECK "encrypt-check" +# define OSSL_CIPHER_PARAM_HAS_RAND_KEY "has-randkey" +# define OSSL_CIPHER_PARAM_IV "iv" +# define OSSL_CIPHER_PARAM_IVLEN "ivlen" +# define OSSL_CIPHER_PARAM_KEYLEN "keylen" +# define OSSL_CIPHER_PARAM_MODE "mode" +# define OSSL_CIPHER_PARAM_NUM "num" +# define OSSL_CIPHER_PARAM_PADDING "padding" +# define OSSL_CIPHER_PARAM_PIPELINE_AEAD_TAG "pipeline-tag" +# define OSSL_CIPHER_PARAM_RANDOM_KEY "randkey" +# define OSSL_CIPHER_PARAM_RC2_KEYBITS "keybits" +# define OSSL_CIPHER_PARAM_ROUNDS "rounds" +# define OSSL_CIPHER_PARAM_SPEED "speed" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK "tls-multi" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD "tls1multi_aad" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD_PACKLEN "tls1multi_aadpacklen" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC "tls1multi_enc" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_IN "tls1multi_encin" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_LEN "tls1multi_enclen" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_INTERLEAVE "tls1multi_interleave" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_BUFSIZE "tls1multi_maxbufsz" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_SEND_FRAGMENT "tls1multi_maxsndfrag" +# define OSSL_CIPHER_PARAM_TLS_MAC "tls-mac" +# define OSSL_CIPHER_PARAM_TLS_MAC_SIZE "tls-mac-size" +# define OSSL_CIPHER_PARAM_TLS_VERSION "tls-version" +# define OSSL_CIPHER_PARAM_UPDATED_IV "updated-iv" +# define OSSL_CIPHER_PARAM_USE_BITS "use-bits" +# define OSSL_CIPHER_PARAM_XTS_STANDARD "xts_standard" +# define OSSL_DECODER_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_DIGEST_PARAM_ALGID_ABSENT "algid-absent" +# define OSSL_DIGEST_PARAM_BLOCK_SIZE "blocksize" +# define OSSL_DIGEST_PARAM_MICALG "micalg" +# define OSSL_DIGEST_PARAM_PAD_TYPE "pad-type" +# define OSSL_DIGEST_PARAM_SIZE "size" +# define OSSL_DIGEST_PARAM_SSL3_MS "ssl3-ms" +# define OSSL_DIGEST_PARAM_XOF "xof" +# define OSSL_DIGEST_PARAM_XOFLEN "xoflen" +# define OSSL_DRBG_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_DRBG_PARAM_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_DRBG_PARAM_ENTROPY_REQUIRED "entropy_required" +# define OSSL_DRBG_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_DRBG_PARAM_FIPS_DIGEST_CHECK OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK +# define OSSL_DRBG_PARAM_MAC OSSL_ALG_PARAM_MAC +# define OSSL_DRBG_PARAM_MAX_ADINLEN "max_adinlen" +# define OSSL_DRBG_PARAM_MAX_ENTROPYLEN "max_entropylen" +# define OSSL_DRBG_PARAM_MAX_LENGTH "maxium_length" +# define OSSL_DRBG_PARAM_MAX_NONCELEN "max_noncelen" +# define OSSL_DRBG_PARAM_MAX_PERSLEN "max_perslen" +# define OSSL_DRBG_PARAM_MIN_ENTROPYLEN "min_entropylen" +# define OSSL_DRBG_PARAM_MIN_LENGTH "minium_length" +# define OSSL_DRBG_PARAM_MIN_NONCELEN "min_noncelen" +# define OSSL_DRBG_PARAM_PREDICTION_RESISTANCE "prediction_resistance" +# define OSSL_DRBG_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_DRBG_PARAM_RANDOM_DATA "random_data" +# define OSSL_DRBG_PARAM_RESEED_COUNTER "reseed_counter" +# define OSSL_DRBG_PARAM_RESEED_REQUESTS "reseed_requests" +# define OSSL_DRBG_PARAM_RESEED_TIME "reseed_time" +# define OSSL_DRBG_PARAM_RESEED_TIME_INTERVAL "reseed_time_interval" +# define OSSL_DRBG_PARAM_SIZE "size" +# define OSSL_DRBG_PARAM_USE_DF "use_derivation_function" +# define OSSL_ENCODER_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_ENCODER_PARAM_ENCRYPT_LEVEL "encrypt-level" +# define OSSL_ENCODER_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_ENCODER_PARAM_SAVE_PARAMETERS "save-parameters" +# define OSSL_EXCHANGE_PARAM_EC_ECDH_COFACTOR_MODE "ecdh-cofactor-mode" +# define OSSL_EXCHANGE_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_EXCHANGE_PARAM_FIPS_DIGEST_CHECK OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK +# define OSSL_EXCHANGE_PARAM_FIPS_ECDH_COFACTOR_CHECK OSSL_PROV_PARAM_ECDH_COFACTOR_CHECK +# define OSSL_EXCHANGE_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_EXCHANGE_PARAM_KDF_DIGEST "kdf-digest" +# define OSSL_EXCHANGE_PARAM_KDF_DIGEST_PROPS "kdf-digest-props" +# define OSSL_EXCHANGE_PARAM_KDF_OUTLEN "kdf-outlen" +# define OSSL_EXCHANGE_PARAM_KDF_TYPE "kdf-type" +# define OSSL_EXCHANGE_PARAM_KDF_UKM "kdf-ukm" +# define OSSL_EXCHANGE_PARAM_PAD "pad" +# define OSSL_GEN_PARAM_ITERATION "iteration" +# define OSSL_GEN_PARAM_POTENTIAL "potential" +# define OSSL_KDF_PARAM_ARGON2_AD "ad" +# define OSSL_KDF_PARAM_ARGON2_LANES "lanes" +# define OSSL_KDF_PARAM_ARGON2_MEMCOST "memcost" +# define OSSL_KDF_PARAM_ARGON2_VERSION "version" +# define OSSL_KDF_PARAM_CEK_ALG "cekalg" +# define OSSL_KDF_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_KDF_PARAM_CONSTANT "constant" +# define OSSL_KDF_PARAM_DATA "data" +# define OSSL_KDF_PARAM_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_KDF_PARAM_EARLY_CLEAN "early_clean" +# define OSSL_KDF_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_KDF_PARAM_FIPS_DIGEST_CHECK OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK +# define OSSL_KDF_PARAM_FIPS_EMS_CHECK "ems_check" +# define OSSL_KDF_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_KDF_PARAM_HMACDRBG_ENTROPY "entropy" +# define OSSL_KDF_PARAM_HMACDRBG_NONCE "nonce" +# define OSSL_KDF_PARAM_INFO "info" +# define OSSL_KDF_PARAM_ITER "iter" +# define OSSL_KDF_PARAM_KBKDF_R "r" +# define OSSL_KDF_PARAM_KBKDF_USE_L "use-l" +# define OSSL_KDF_PARAM_KBKDF_USE_SEPARATOR "use-separator" +# define OSSL_KDF_PARAM_KEY "key" +# define OSSL_KDF_PARAM_LABEL "label" +# define OSSL_KDF_PARAM_MAC OSSL_ALG_PARAM_MAC +# define OSSL_KDF_PARAM_MAC_SIZE "maclen" +# define OSSL_KDF_PARAM_MODE "mode" +# define OSSL_KDF_PARAM_PASSWORD "pass" +# define OSSL_KDF_PARAM_PKCS12_ID "id" +# define OSSL_KDF_PARAM_PKCS5 "pkcs5" +# define OSSL_KDF_PARAM_PREFIX "prefix" +# define OSSL_KDF_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_KDF_PARAM_SALT "salt" +# define OSSL_KDF_PARAM_SCRYPT_MAXMEM "maxmem_bytes" +# define OSSL_KDF_PARAM_SCRYPT_N "n" +# define OSSL_KDF_PARAM_SCRYPT_P "p" +# define OSSL_KDF_PARAM_SCRYPT_R "r" +# define OSSL_KDF_PARAM_SECRET "secret" +# define OSSL_KDF_PARAM_SEED "seed" +# define OSSL_KDF_PARAM_SIZE "size" +# define OSSL_KDF_PARAM_SSHKDF_SESSION_ID "session_id" +# define OSSL_KDF_PARAM_SSHKDF_TYPE "type" +# define OSSL_KDF_PARAM_SSHKDF_XCGHASH "xcghash" +# define OSSL_KDF_PARAM_THREADS "threads" +# define OSSL_KDF_PARAM_UKM "ukm" +# define OSSL_KDF_PARAM_X942_ACVPINFO "acvp-info" +# define OSSL_KDF_PARAM_X942_PARTYUINFO "partyu-info" +# define OSSL_KDF_PARAM_X942_PARTYVINFO "partyv-info" +# define OSSL_KDF_PARAM_X942_SUPP_PRIVINFO "supp-privinfo" +# define OSSL_KDF_PARAM_X942_SUPP_PUBINFO "supp-pubinfo" +# define OSSL_KDF_PARAM_X942_USE_KEYBITS "use-keybits" +# define OSSL_KEM_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_KEM_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_KEM_PARAM_IKME "ikme" +# define OSSL_KEM_PARAM_OPERATION "operation" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_BLOCK_PADDING "block_padding" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_HS_PADDING "hs_padding" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_MAX_EARLY_DATA "max_early_data" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_MAX_FRAG_LEN "max_frag_len" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_MODE "mode" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_OPTIONS "options" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_READ_AHEAD "read_ahead" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_STREAM_MAC "stream_mac" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_TLSTREE "tlstree" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_USE_ETM "use_etm" +# define OSSL_LIBSSL_RECORD_LAYER_READ_BUFFER_LEN "read_buffer_len" +# define OSSL_MAC_PARAM_BLOCK_SIZE "block-size" +# define OSSL_MAC_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_MAC_PARAM_CUSTOM "custom" +# define OSSL_MAC_PARAM_C_ROUNDS "c-rounds" +# define OSSL_MAC_PARAM_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_MAC_PARAM_DIGEST_NOINIT "digest-noinit" +# define OSSL_MAC_PARAM_DIGEST_ONESHOT "digest-oneshot" +# define OSSL_MAC_PARAM_D_ROUNDS "d-rounds" +# define OSSL_MAC_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_MAC_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_MAC_PARAM_FIPS_NO_SHORT_MAC OSSL_PROV_PARAM_NO_SHORT_MAC +# define OSSL_MAC_PARAM_IV "iv" +# define OSSL_MAC_PARAM_KEY "key" +# define OSSL_MAC_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_MAC_PARAM_SALT "salt" +# define OSSL_MAC_PARAM_SIZE "size" +# define OSSL_MAC_PARAM_TLS_DATA_SIZE "tls-data-size" +# define OSSL_MAC_PARAM_XOF "xof" +# define OSSL_OBJECT_PARAM_DATA "data" +# define OSSL_OBJECT_PARAM_DATA_STRUCTURE "data-structure" +# define OSSL_OBJECT_PARAM_DATA_TYPE "data-type" +# define OSSL_OBJECT_PARAM_DESC "desc" +# define OSSL_OBJECT_PARAM_INPUT_TYPE "input-type" +# define OSSL_OBJECT_PARAM_REFERENCE "reference" +# define OSSL_OBJECT_PARAM_TYPE "type" +# define OSSL_PASSPHRASE_PARAM_INFO "info" +# define OSSL_PKEY_PARAM_ALGORITHM_ID OSSL_ALG_PARAM_ALGORITHM_ID +# define OSSL_PKEY_PARAM_ALGORITHM_ID_PARAMS OSSL_ALG_PARAM_ALGORITHM_ID_PARAMS +# define OSSL_PKEY_PARAM_BITS "bits" +# define OSSL_PKEY_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_PKEY_PARAM_DEFAULT_DIGEST "default-digest" +# define OSSL_PKEY_PARAM_DHKEM_IKM "dhkem-ikm" +# define OSSL_PKEY_PARAM_DH_GENERATOR "safeprime-generator" +# define OSSL_PKEY_PARAM_DH_PRIV_LEN "priv_len" +# define OSSL_PKEY_PARAM_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_PKEY_PARAM_DIGEST_SIZE "digest-size" +# define OSSL_PKEY_PARAM_DIST_ID "distid" +# define OSSL_PKEY_PARAM_EC_A "a" +# define OSSL_PKEY_PARAM_EC_B "b" +# define OSSL_PKEY_PARAM_EC_CHAR2_M "m" +# define OSSL_PKEY_PARAM_EC_CHAR2_PP_K1 "k1" +# define OSSL_PKEY_PARAM_EC_CHAR2_PP_K2 "k2" +# define OSSL_PKEY_PARAM_EC_CHAR2_PP_K3 "k3" +# define OSSL_PKEY_PARAM_EC_CHAR2_TP_BASIS "tp" +# define OSSL_PKEY_PARAM_EC_CHAR2_TYPE "basis-type" +# define OSSL_PKEY_PARAM_EC_COFACTOR "cofactor" +# define OSSL_PKEY_PARAM_EC_DECODED_FROM_EXPLICIT_PARAMS "decoded-from-explicit" +# define OSSL_PKEY_PARAM_EC_ENCODING "encoding" +# define OSSL_PKEY_PARAM_EC_FIELD_TYPE "field-type" +# define OSSL_PKEY_PARAM_EC_GENERATOR "generator" +# define OSSL_PKEY_PARAM_EC_GROUP_CHECK_TYPE "group-check" +# define OSSL_PKEY_PARAM_EC_INCLUDE_PUBLIC "include-public" +# define OSSL_PKEY_PARAM_EC_ORDER "order" +# define OSSL_PKEY_PARAM_EC_P "p" +# define OSSL_PKEY_PARAM_EC_POINT_CONVERSION_FORMAT "point-format" +# define OSSL_PKEY_PARAM_EC_PUB_X "qx" +# define OSSL_PKEY_PARAM_EC_PUB_Y "qy" +# define OSSL_PKEY_PARAM_EC_SEED "seed" +# define OSSL_PKEY_PARAM_ENCODED_PUBLIC_KEY "encoded-pub-key" +# define OSSL_PKEY_PARAM_ENGINE OSSL_ALG_PARAM_ENGINE +# define OSSL_PKEY_PARAM_FFC_COFACTOR "j" +# define OSSL_PKEY_PARAM_FFC_DIGEST OSSL_PKEY_PARAM_DIGEST +# define OSSL_PKEY_PARAM_FFC_DIGEST_PROPS OSSL_PKEY_PARAM_PROPERTIES +# define OSSL_PKEY_PARAM_FFC_G "g" +# define OSSL_PKEY_PARAM_FFC_GINDEX "gindex" +# define OSSL_PKEY_PARAM_FFC_H "hindex" +# define OSSL_PKEY_PARAM_FFC_P "p" +# define OSSL_PKEY_PARAM_FFC_PBITS "pbits" +# define OSSL_PKEY_PARAM_FFC_PCOUNTER "pcounter" +# define OSSL_PKEY_PARAM_FFC_Q "q" +# define OSSL_PKEY_PARAM_FFC_QBITS "qbits" +# define OSSL_PKEY_PARAM_FFC_SEED "seed" +# define OSSL_PKEY_PARAM_FFC_TYPE "type" +# define OSSL_PKEY_PARAM_FFC_VALIDATE_G "validate-g" +# define OSSL_PKEY_PARAM_FFC_VALIDATE_LEGACY "validate-legacy" +# define OSSL_PKEY_PARAM_FFC_VALIDATE_PQ "validate-pq" +# define OSSL_PKEY_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK "digest-check" +# define OSSL_PKEY_PARAM_FIPS_KEY_CHECK "key-check" +# define OSSL_PKEY_PARAM_FIPS_SIGN_CHECK "sign-check" +# define OSSL_PKEY_PARAM_GROUP_NAME "group" +# define OSSL_PKEY_PARAM_IMPLICIT_REJECTION "implicit-rejection" +# define OSSL_PKEY_PARAM_MANDATORY_DIGEST "mandatory-digest" +# define OSSL_PKEY_PARAM_MASKGENFUNC "mgf" +# define OSSL_PKEY_PARAM_MAX_SIZE "max-size" +# define OSSL_PKEY_PARAM_MGF1_DIGEST "mgf1-digest" +# define OSSL_PKEY_PARAM_MGF1_PROPERTIES "mgf1-properties" +# define OSSL_PKEY_PARAM_ML_DSA_INPUT_FORMATS "ml-dsa.input_formats" +# define OSSL_PKEY_PARAM_ML_DSA_OUTPUT_FORMATS "ml-dsa.output_formats" +# define OSSL_PKEY_PARAM_ML_DSA_PREFER_SEED "ml-dsa.prefer_seed" +# define OSSL_PKEY_PARAM_ML_DSA_RETAIN_SEED "ml-dsa.retain_seed" +# define OSSL_PKEY_PARAM_ML_DSA_SEED "seed" +# define OSSL_PKEY_PARAM_ML_KEM_IMPORT_PCT_TYPE "ml-kem.import_pct_type" +# define OSSL_PKEY_PARAM_ML_KEM_INPUT_FORMATS "ml-kem.input_formats" +# define OSSL_PKEY_PARAM_ML_KEM_OUTPUT_FORMATS "ml-kem.output_formats" +# define OSSL_PKEY_PARAM_ML_KEM_PREFER_SEED "ml-kem.prefer_seed" +# define OSSL_PKEY_PARAM_ML_KEM_RETAIN_SEED "ml-kem.retain_seed" +# define OSSL_PKEY_PARAM_ML_KEM_SEED "seed" +# define OSSL_PKEY_PARAM_PAD_MODE "pad-mode" +# define OSSL_PKEY_PARAM_PRIV_KEY "priv" +# define OSSL_PKEY_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_PKEY_PARAM_PUB_KEY "pub" +# define OSSL_PKEY_PARAM_RSA_BITS OSSL_PKEY_PARAM_BITS +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT "rsa-coefficient" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT1 "rsa-coefficient1" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT2 "rsa-coefficient2" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT3 "rsa-coefficient3" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT4 "rsa-coefficient4" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT5 "rsa-coefficient5" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT6 "rsa-coefficient6" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT7 "rsa-coefficient7" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT8 "rsa-coefficient8" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT9 "rsa-coefficient9" +# define OSSL_PKEY_PARAM_RSA_D "d" +# define OSSL_PKEY_PARAM_RSA_DERIVE_FROM_PQ "rsa-derive-from-pq" +# define OSSL_PKEY_PARAM_RSA_DIGEST OSSL_PKEY_PARAM_DIGEST +# define OSSL_PKEY_PARAM_RSA_DIGEST_PROPS OSSL_PKEY_PARAM_PROPERTIES +# define OSSL_PKEY_PARAM_RSA_E "e" +# define OSSL_PKEY_PARAM_RSA_EXPONENT "rsa-exponent" +# define OSSL_PKEY_PARAM_RSA_EXPONENT1 "rsa-exponent1" +# define OSSL_PKEY_PARAM_RSA_EXPONENT10 "rsa-exponent10" +# define OSSL_PKEY_PARAM_RSA_EXPONENT2 "rsa-exponent2" +# define OSSL_PKEY_PARAM_RSA_EXPONENT3 "rsa-exponent3" +# define OSSL_PKEY_PARAM_RSA_EXPONENT4 "rsa-exponent4" +# define OSSL_PKEY_PARAM_RSA_EXPONENT5 "rsa-exponent5" +# define OSSL_PKEY_PARAM_RSA_EXPONENT6 "rsa-exponent6" +# define OSSL_PKEY_PARAM_RSA_EXPONENT7 "rsa-exponent7" +# define OSSL_PKEY_PARAM_RSA_EXPONENT8 "rsa-exponent8" +# define OSSL_PKEY_PARAM_RSA_EXPONENT9 "rsa-exponent9" +# define OSSL_PKEY_PARAM_RSA_FACTOR "rsa-factor" +# define OSSL_PKEY_PARAM_RSA_FACTOR1 "rsa-factor1" +# define OSSL_PKEY_PARAM_RSA_FACTOR10 "rsa-factor10" +# define OSSL_PKEY_PARAM_RSA_FACTOR2 "rsa-factor2" +# define OSSL_PKEY_PARAM_RSA_FACTOR3 "rsa-factor3" +# define OSSL_PKEY_PARAM_RSA_FACTOR4 "rsa-factor4" +# define OSSL_PKEY_PARAM_RSA_FACTOR5 "rsa-factor5" +# define OSSL_PKEY_PARAM_RSA_FACTOR6 "rsa-factor6" +# define OSSL_PKEY_PARAM_RSA_FACTOR7 "rsa-factor7" +# define OSSL_PKEY_PARAM_RSA_FACTOR8 "rsa-factor8" +# define OSSL_PKEY_PARAM_RSA_FACTOR9 "rsa-factor9" +# define OSSL_PKEY_PARAM_RSA_MASKGENFUNC OSSL_PKEY_PARAM_MASKGENFUNC +# define OSSL_PKEY_PARAM_RSA_MGF1_DIGEST OSSL_PKEY_PARAM_MGF1_DIGEST +# define OSSL_PKEY_PARAM_RSA_N "n" +# define OSSL_PKEY_PARAM_RSA_PRIMES "primes" +# define OSSL_PKEY_PARAM_RSA_PSS_SALTLEN "saltlen" +# define OSSL_PKEY_PARAM_RSA_TEST_P1 "p1" +# define OSSL_PKEY_PARAM_RSA_TEST_P2 "p2" +# define OSSL_PKEY_PARAM_RSA_TEST_Q1 "q1" +# define OSSL_PKEY_PARAM_RSA_TEST_Q2 "q2" +# define OSSL_PKEY_PARAM_RSA_TEST_XP "xp" +# define OSSL_PKEY_PARAM_RSA_TEST_XP1 "xp1" +# define OSSL_PKEY_PARAM_RSA_TEST_XP2 "xp2" +# define OSSL_PKEY_PARAM_RSA_TEST_XQ "xq" +# define OSSL_PKEY_PARAM_RSA_TEST_XQ1 "xq1" +# define OSSL_PKEY_PARAM_RSA_TEST_XQ2 "xq2" +# define OSSL_PKEY_PARAM_SECURITY_BITS "security-bits" +# define OSSL_PKEY_PARAM_SLH_DSA_SEED "seed" +# define OSSL_PKEY_PARAM_USE_COFACTOR_ECDH OSSL_PKEY_PARAM_USE_COFACTOR_FLAG +# define OSSL_PKEY_PARAM_USE_COFACTOR_FLAG "use-cofactor-flag" +# define OSSL_PROV_PARAM_BUILDINFO "buildinfo" +# define OSSL_PROV_PARAM_CORE_MODULE_FILENAME "module-filename" +# define OSSL_PROV_PARAM_CORE_PROV_NAME "provider-name" +# define OSSL_PROV_PARAM_CORE_VERSION "openssl-version" +# define OSSL_PROV_PARAM_DRBG_TRUNC_DIGEST "drbg-no-trunc-md" +# define OSSL_PROV_PARAM_DSA_SIGN_DISABLED "dsa-sign-disabled" +# define OSSL_PROV_PARAM_ECDH_COFACTOR_CHECK "ecdh-cofactor-check" +# define OSSL_PROV_PARAM_HKDF_DIGEST_CHECK "hkdf-digest-check" +# define OSSL_PROV_PARAM_HKDF_KEY_CHECK "hkdf-key-check" +# define OSSL_PROV_PARAM_HMAC_KEY_CHECK "hmac-key-check" +# define OSSL_PROV_PARAM_KBKDF_KEY_CHECK "kbkdf-key-check" +# define OSSL_PROV_PARAM_KMAC_KEY_CHECK "kmac-key-check" +# define OSSL_PROV_PARAM_NAME "name" +# define OSSL_PROV_PARAM_NO_SHORT_MAC "no-short-mac" +# define OSSL_PROV_PARAM_PBKDF2_LOWER_BOUND_CHECK "pbkdf2-lower-bound-check" +# define OSSL_PROV_PARAM_RSA_PKCS15_PAD_DISABLED "rsa-pkcs15-pad-disabled" +# define OSSL_PROV_PARAM_RSA_PSS_SALTLEN_CHECK "rsa-pss-saltlen-check" +# define OSSL_PROV_PARAM_RSA_SIGN_X931_PAD_DISABLED "rsa-sign-x931-pad-disabled" +# define OSSL_PROV_PARAM_SECURITY_CHECKS "security-checks" +# define OSSL_PROV_PARAM_SELF_TEST_DESC "st-desc" +# define OSSL_PROV_PARAM_SELF_TEST_PHASE "st-phase" +# define OSSL_PROV_PARAM_SELF_TEST_TYPE "st-type" +# define OSSL_PROV_PARAM_SIGNATURE_DIGEST_CHECK "signature-digest-check" +# define OSSL_PROV_PARAM_SSHKDF_DIGEST_CHECK "sshkdf-digest-check" +# define OSSL_PROV_PARAM_SSHKDF_KEY_CHECK "sshkdf-key-check" +# define OSSL_PROV_PARAM_SSKDF_DIGEST_CHECK "sskdf-digest-check" +# define OSSL_PROV_PARAM_SSKDF_KEY_CHECK "sskdf-key-check" +# define OSSL_PROV_PARAM_STATUS "status" +# define OSSL_PROV_PARAM_TDES_ENCRYPT_DISABLED "tdes-encrypt-disabled" +# define OSSL_PROV_PARAM_TLS13_KDF_DIGEST_CHECK "tls13-kdf-digest-check" +# define OSSL_PROV_PARAM_TLS13_KDF_KEY_CHECK "tls13-kdf-key-check" +# define OSSL_PROV_PARAM_TLS1_PRF_DIGEST_CHECK "tls1-prf-digest-check" +# define OSSL_PROV_PARAM_TLS1_PRF_EMS_CHECK "tls1-prf-ems-check" +# define OSSL_PROV_PARAM_TLS1_PRF_KEY_CHECK "tls1-prf-key-check" +# define OSSL_PROV_PARAM_VERSION "version" +# define OSSL_PROV_PARAM_X942KDF_KEY_CHECK "x942kdf-key-check" +# define OSSL_PROV_PARAM_X963KDF_DIGEST_CHECK "x963kdf-digest-check" +# define OSSL_PROV_PARAM_X963KDF_KEY_CHECK "x963kdf-key-check" +# define OSSL_RAND_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_RAND_PARAM_GENERATE "generate" +# define OSSL_RAND_PARAM_MAX_REQUEST "max_request" +# define OSSL_RAND_PARAM_STATE "state" +# define OSSL_RAND_PARAM_STRENGTH "strength" +# define OSSL_RAND_PARAM_TEST_ENTROPY "test_entropy" +# define OSSL_RAND_PARAM_TEST_NONCE "test_nonce" +# define OSSL_SIGNATURE_PARAM_ADD_RANDOM "additional-random" +# define OSSL_SIGNATURE_PARAM_ALGORITHM_ID OSSL_PKEY_PARAM_ALGORITHM_ID +# define OSSL_SIGNATURE_PARAM_ALGORITHM_ID_PARAMS OSSL_PKEY_PARAM_ALGORITHM_ID_PARAMS +# define OSSL_SIGNATURE_PARAM_CONTEXT_STRING "context-string" +# define OSSL_SIGNATURE_PARAM_DETERMINISTIC "deterministic" +# define OSSL_SIGNATURE_PARAM_DIGEST OSSL_PKEY_PARAM_DIGEST +# define OSSL_SIGNATURE_PARAM_DIGEST_SIZE OSSL_PKEY_PARAM_DIGEST_SIZE +# define OSSL_SIGNATURE_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_SIGNATURE_PARAM_FIPS_DIGEST_CHECK OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK +# define OSSL_SIGNATURE_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_SIGNATURE_PARAM_FIPS_RSA_PSS_SALTLEN_CHECK "rsa-pss-saltlen-check" +# define OSSL_SIGNATURE_PARAM_FIPS_SIGN_CHECK OSSL_PKEY_PARAM_FIPS_SIGN_CHECK +# define OSSL_SIGNATURE_PARAM_FIPS_SIGN_X931_PAD_CHECK "sign-x931-pad-check" +# define OSSL_SIGNATURE_PARAM_FIPS_VERIFY_MESSAGE "verify-message" +# define OSSL_SIGNATURE_PARAM_INSTANCE "instance" +# define OSSL_SIGNATURE_PARAM_KAT "kat" +# define OSSL_SIGNATURE_PARAM_MESSAGE_ENCODING "message-encoding" +# define OSSL_SIGNATURE_PARAM_MGF1_DIGEST OSSL_PKEY_PARAM_MGF1_DIGEST +# define OSSL_SIGNATURE_PARAM_MGF1_PROPERTIES OSSL_PKEY_PARAM_MGF1_PROPERTIES +# define OSSL_SIGNATURE_PARAM_MU "mu" +# define OSSL_SIGNATURE_PARAM_NONCE_TYPE "nonce-type" +# define OSSL_SIGNATURE_PARAM_PAD_MODE OSSL_PKEY_PARAM_PAD_MODE +# define OSSL_SIGNATURE_PARAM_PROPERTIES OSSL_PKEY_PARAM_PROPERTIES +# define OSSL_SIGNATURE_PARAM_PSS_SALTLEN "saltlen" +# define OSSL_SIGNATURE_PARAM_SIGNATURE "signature" +# define OSSL_SIGNATURE_PARAM_TEST_ENTROPY "test-entropy" +# define OSSL_SKEY_PARAM_KEY_LENGTH "key-length" +# define OSSL_SKEY_PARAM_RAW_BYTES "raw-bytes" +# define OSSL_STORE_PARAM_ALIAS "alias" +# define OSSL_STORE_PARAM_DIGEST "digest" +# define OSSL_STORE_PARAM_EXPECT "expect" +# define OSSL_STORE_PARAM_FINGERPRINT "fingerprint" +# define OSSL_STORE_PARAM_INPUT_TYPE "input-type" +# define OSSL_STORE_PARAM_ISSUER "name" +# define OSSL_STORE_PARAM_PROPERTIES "properties" +# define OSSL_STORE_PARAM_SERIAL "serial" +# define OSSL_STORE_PARAM_SUBJECT "subject" + +# ifdef __cplusplus +} +# endif + +#endif diff --git a/deps/openssl/config/archs/VC-WIN32/asm/include/openssl/crmf.h b/deps/openssl/config/archs/VC-WIN32/asm/include/openssl/crmf.h index 0419170bb99974..9b6f13fac240b2 100644 --- a/deps/openssl/config/archs/VC-WIN32/asm/include/openssl/crmf.h +++ b/deps/openssl/config/archs/VC-WIN32/asm/include/openssl/crmf.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by makefile from include/openssl/crmf.h.in * - * Copyright 2007-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2007-2025 The OpenSSL Project Authors. All Rights Reserved. * Copyright Nokia 2007-2019 * Copyright Siemens AG 2015-2019 * @@ -26,6 +26,7 @@ # include # include # include /* for GENERAL_NAME etc. */ +# include /* explicit #includes not strictly needed since implied by the above: */ # include @@ -43,9 +44,12 @@ extern "C" { # define OSSL_CRMF_SUBSEQUENTMESSAGE_ENCRCERT 0 # define OSSL_CRMF_SUBSEQUENTMESSAGE_CHALLENGERESP 1 - typedef struct ossl_crmf_encryptedvalue_st OSSL_CRMF_ENCRYPTEDVALUE; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_ENCRYPTEDVALUE) + +typedef struct ossl_crmf_encryptedkey_st OSSL_CRMF_ENCRYPTEDKEY; +DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_ENCRYPTEDKEY) + typedef struct ossl_crmf_msg_st OSSL_CRMF_MSG; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_MSG) DECLARE_ASN1_DUP_FUNCTION(OSSL_CRMF_MSG) @@ -77,6 +81,36 @@ SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CRMF_MSG, OSSL_CRMF_MSG, OSSL_CRMF_MSG) #define sk_OSSL_CRMF_MSG_set_cmp_func(sk, cmp) ((sk_OSSL_CRMF_MSG_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CRMF_MSG_sk_type(sk), ossl_check_OSSL_CRMF_MSG_compfunc_type(cmp))) typedef struct ossl_crmf_attributetypeandvalue_st OSSL_CRMF_ATTRIBUTETYPEANDVALUE; +void OSSL_CRMF_ATTRIBUTETYPEANDVALUE_free(OSSL_CRMF_ATTRIBUTETYPEANDVALUE *v); +DECLARE_ASN1_DUP_FUNCTION(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CRMF_ATTRIBUTETYPEANDVALUE, OSSL_CRMF_ATTRIBUTETYPEANDVALUE, OSSL_CRMF_ATTRIBUTETYPEANDVALUE) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_value(sk, idx) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_value(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), (idx))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_new(cmp) ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_new(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_compfunc_type(cmp))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_new_null() ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_new_null()) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_new_reserve(cmp, n) ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_compfunc_type(cmp), (n))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), (n)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_free(sk) OPENSSL_sk_free(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_delete(sk, i) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_delete(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), (i))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_delete_ptr(sk, ptr) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_pop(sk) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_pop(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_shift(sk) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_shift(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk),ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_freefunc_type(freefunc)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr), (idx)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_set(sk, idx, ptr) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_set(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), (idx), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr), pnum) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_dup(sk) ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_dup(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_copyfunc_type(copyfunc), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_freefunc_type(freefunc))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_set_cmp_func(sk, cmp) ((sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_compfunc_type(cmp))) + + typedef struct ossl_crmf_pbmparameter_st OSSL_CRMF_PBMPARAMETER; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_PBMPARAMETER) typedef struct ossl_crmf_poposigningkey_st OSSL_CRMF_POPOSIGNINGKEY; @@ -118,6 +152,7 @@ typedef struct ossl_crmf_singlepubinfo_st OSSL_CRMF_SINGLEPUBINFO; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_SINGLEPUBINFO) typedef struct ossl_crmf_certtemplate_st OSSL_CRMF_CERTTEMPLATE; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_CERTTEMPLATE) +DECLARE_ASN1_DUP_FUNCTION(OSSL_CRMF_CERTTEMPLATE) typedef STACK_OF(OSSL_CRMF_MSG) OSSL_CRMF_MSGS; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_MSGS) @@ -198,12 +233,14 @@ int OSSL_CRMF_MSGS_verify_popo(const OSSL_CRMF_MSGS *reqs, int rid, int acceptRAVerified, OSSL_LIB_CTX *libctx, const char *propq); OSSL_CRMF_CERTTEMPLATE *OSSL_CRMF_MSG_get0_tmpl(const OSSL_CRMF_MSG *crm); -const ASN1_INTEGER -*OSSL_CRMF_CERTTEMPLATE_get0_serialNumber(const OSSL_CRMF_CERTTEMPLATE *tmpl); +X509_PUBKEY +*OSSL_CRMF_CERTTEMPLATE_get0_publicKey(const OSSL_CRMF_CERTTEMPLATE *tmpl); const X509_NAME *OSSL_CRMF_CERTTEMPLATE_get0_subject(const OSSL_CRMF_CERTTEMPLATE *tmpl); const X509_NAME *OSSL_CRMF_CERTTEMPLATE_get0_issuer(const OSSL_CRMF_CERTTEMPLATE *tmpl); +const ASN1_INTEGER +*OSSL_CRMF_CERTTEMPLATE_get0_serialNumber(const OSSL_CRMF_CERTTEMPLATE *tmpl); X509_EXTENSIONS *OSSL_CRMF_CERTTEMPLATE_get0_extensions(const OSSL_CRMF_CERTTEMPLATE *tmpl); const X509_NAME @@ -215,10 +252,24 @@ int OSSL_CRMF_CERTTEMPLATE_fill(OSSL_CRMF_CERTTEMPLATE *tmpl, const X509_NAME *subject, const X509_NAME *issuer, const ASN1_INTEGER *serial); -X509 -*OSSL_CRMF_ENCRYPTEDVALUE_get1_encCert(const OSSL_CRMF_ENCRYPTEDVALUE *ecert, - OSSL_LIB_CTX *libctx, const char *propq, - EVP_PKEY *pkey); +X509 *OSSL_CRMF_ENCRYPTEDVALUE_get1_encCert(const OSSL_CRMF_ENCRYPTEDVALUE *ecert, + OSSL_LIB_CTX *libctx, const char *propq, + EVP_PKEY *pkey); +X509 *OSSL_CRMF_ENCRYPTEDKEY_get1_encCert(const OSSL_CRMF_ENCRYPTEDKEY *ecert, + OSSL_LIB_CTX *libctx, const char *propq, + EVP_PKEY *pkey, unsigned int flags); +unsigned char +*OSSL_CRMF_ENCRYPTEDVALUE_decrypt(const OSSL_CRMF_ENCRYPTEDVALUE *enc, + OSSL_LIB_CTX *libctx, const char *propq, + EVP_PKEY *pkey, int *outlen); +EVP_PKEY *OSSL_CRMF_ENCRYPTEDKEY_get1_pkey(const OSSL_CRMF_ENCRYPTEDKEY *encryptedKey, + X509_STORE *ts, STACK_OF(X509) *extra, EVP_PKEY *pkey, + X509 *cert, ASN1_OCTET_STRING *secret, + OSSL_LIB_CTX *libctx, const char *propq); +int OSSL_CRMF_MSG_centralkeygen_requested(const OSSL_CRMF_MSG *crm, const X509_REQ *p10cr); +# ifndef OPENSSL_NO_CMS +OSSL_CRMF_ENCRYPTEDKEY *OSSL_CRMF_ENCRYPTEDKEY_init_envdata(CMS_EnvelopedData *envdata); +# endif # ifdef __cplusplus } diff --git a/deps/openssl/config/archs/VC-WIN32/asm/include/openssl/crypto.h b/deps/openssl/config/archs/VC-WIN32/asm/include/openssl/crypto.h index 668c52cfee1f15..2a825986bf3a55 100644 --- a/deps/openssl/config/archs/VC-WIN32/asm/include/openssl/crypto.h +++ b/deps/openssl/config/archs/VC-WIN32/asm/include/openssl/crypto.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by makefile from include/openssl/crypto.h.in * - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2024 The OpenSSL Project Authors. All Rights Reserved. * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved * * Licensed under the Apache License 2.0 (the "License"). You may not use @@ -85,9 +85,15 @@ int CRYPTO_THREAD_unlock(CRYPTO_RWLOCK *lock); void CRYPTO_THREAD_lock_free(CRYPTO_RWLOCK *lock); int CRYPTO_atomic_add(int *val, int amount, int *ret, CRYPTO_RWLOCK *lock); +int CRYPTO_atomic_add64(uint64_t *val, uint64_t op, uint64_t *ret, + CRYPTO_RWLOCK *lock); +int CRYPTO_atomic_and(uint64_t *val, uint64_t op, uint64_t *ret, + CRYPTO_RWLOCK *lock); int CRYPTO_atomic_or(uint64_t *val, uint64_t op, uint64_t *ret, CRYPTO_RWLOCK *lock); int CRYPTO_atomic_load(uint64_t *val, uint64_t *ret, CRYPTO_RWLOCK *lock); +int CRYPTO_atomic_load_int(int *val, int *ret, CRYPTO_RWLOCK *lock); +int CRYPTO_atomic_store(uint64_t *dst, uint64_t val, CRYPTO_RWLOCK *lock); /* No longer needed, so this is a no-op */ #define OPENSSL_malloc_init() while(0) continue @@ -96,6 +102,9 @@ int CRYPTO_atomic_load(uint64_t *val, uint64_t *ret, CRYPTO_RWLOCK *lock); CRYPTO_malloc(num, OPENSSL_FILE, OPENSSL_LINE) # define OPENSSL_zalloc(num) \ CRYPTO_zalloc(num, OPENSSL_FILE, OPENSSL_LINE) +# define OPENSSL_aligned_alloc(num, alignment, freeptr) \ + CRYPTO_aligned_alloc(num, alignment, freeptr, \ + OPENSSL_FILE, OPENSSL_LINE) # define OPENSSL_realloc(addr, num) \ CRYPTO_realloc(addr, num, OPENSSL_FILE, OPENSSL_LINE) # define OPENSSL_clear_realloc(addr, old_num, num) \ @@ -124,6 +133,7 @@ int CRYPTO_atomic_load(uint64_t *val, uint64_t *ret, CRYPTO_RWLOCK *lock); size_t OPENSSL_strlcpy(char *dst, const char *src, size_t siz); size_t OPENSSL_strlcat(char *dst, const char *src, size_t siz); size_t OPENSSL_strnlen(const char *str, size_t maxlen); +int OPENSSL_strtoul(const char *str, char **endptr, int base, unsigned long *num); int OPENSSL_buf2hexstr_ex(char *str, size_t str_n, size_t *strlength, const unsigned char *buf, size_t buflen, const char sep); @@ -160,6 +170,7 @@ const char *OpenSSL_version(int type); # define OPENSSL_FULL_VERSION_STRING 7 # define OPENSSL_MODULES_DIR 8 # define OPENSSL_CPU_INFO 9 +# define OPENSSL_WINCTX 10 const char *OPENSSL_info(int type); /* @@ -174,6 +185,7 @@ const char *OPENSSL_info(int type); # define OPENSSL_INFO_LIST_SEPARATOR 1006 # define OPENSSL_INFO_SEED_SOURCE 1007 # define OPENSSL_INFO_CPU_SETTINGS 1008 +# define OPENSSL_INFO_WINDOWS_CONTEXT 1009 int OPENSSL_issetugid(void); @@ -341,11 +353,14 @@ void CRYPTO_get_mem_functions(CRYPTO_malloc_fn *malloc_fn, CRYPTO_realloc_fn *realloc_fn, CRYPTO_free_fn *free_fn); -void *CRYPTO_malloc(size_t num, const char *file, int line); -void *CRYPTO_zalloc(size_t num, const char *file, int line); -void *CRYPTO_memdup(const void *str, size_t siz, const char *file, int line); -char *CRYPTO_strdup(const char *str, const char *file, int line); -char *CRYPTO_strndup(const char *str, size_t s, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_malloc(size_t num, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_zalloc(size_t num, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_aligned_alloc(size_t num, size_t align, + void **freeptr, const char *file, + int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_memdup(const void *str, size_t siz, const char *file, int line); +OSSL_CRYPTO_ALLOC char *CRYPTO_strdup(const char *str, const char *file, int line); +OSSL_CRYPTO_ALLOC char *CRYPTO_strndup(const char *str, size_t s, const char *file, int line); void CRYPTO_free(void *ptr, const char *file, int line); void CRYPTO_clear_free(void *ptr, size_t num, const char *file, int line); void *CRYPTO_realloc(void *addr, size_t num, const char *file, int line); @@ -354,8 +369,8 @@ void *CRYPTO_clear_realloc(void *addr, size_t old_num, size_t num, int CRYPTO_secure_malloc_init(size_t sz, size_t minsize); int CRYPTO_secure_malloc_done(void); -void *CRYPTO_secure_malloc(size_t num, const char *file, int line); -void *CRYPTO_secure_zalloc(size_t num, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_secure_malloc(size_t num, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_secure_zalloc(size_t num, const char *file, int line); void CRYPTO_secure_free(void *ptr, const char *file, int line); void CRYPTO_secure_clear_free(void *ptr, size_t num, const char *file, int line); @@ -376,6 +391,9 @@ void OPENSSL_cleanse(void *ptr, size_t len); # define CRYPTO_MEM_CHECK_ENABLE 0x2 /* Control and mode bit */ # define CRYPTO_MEM_CHECK_DISABLE 0x3 /* Control only */ +/* max allowed length for value of OPENSSL_MALLOC_FAILURES env var. */ +# define CRYPTO_MEM_CHECK_MAX_FS 256 + void CRYPTO_get_alloc_counts(int *mcount, int *rcount, int *fcount); # ifndef OPENSSL_NO_DEPRECATED_3_0 # define OPENSSL_mem_debug_push(info) \ @@ -551,6 +569,13 @@ int OSSL_LIB_CTX_load_config(OSSL_LIB_CTX *ctx, const char *config_file); void OSSL_LIB_CTX_free(OSSL_LIB_CTX *); OSSL_LIB_CTX *OSSL_LIB_CTX_get0_global_default(void); OSSL_LIB_CTX *OSSL_LIB_CTX_set0_default(OSSL_LIB_CTX *libctx); +int OSSL_LIB_CTX_get_conf_diagnostics(OSSL_LIB_CTX *ctx); +void OSSL_LIB_CTX_set_conf_diagnostics(OSSL_LIB_CTX *ctx, int value); + +void OSSL_sleep(uint64_t millis); + + +void *OSSL_LIB_CTX_get_data(OSSL_LIB_CTX *ctx, int index); # ifdef __cplusplus } diff --git a/deps/openssl/config/archs/VC-WIN32/asm/include/openssl/ct.h b/deps/openssl/config/archs/VC-WIN32/asm/include/openssl/ct.h index 15a276e33ff7ca..d29dbc78997c0b 100644 --- a/deps/openssl/config/archs/VC-WIN32/asm/include/openssl/ct.h +++ b/deps/openssl/config/archs/VC-WIN32/asm/include/openssl/ct.h @@ -133,7 +133,7 @@ typedef enum { */ CT_POLICY_EVAL_CTX *CT_POLICY_EVAL_CTX_new_ex(OSSL_LIB_CTX *libctx, const char *propq); - + /* * The same as CT_POLICY_EVAL_CTX_new_ex() but the default library * context and property query string is used. diff --git a/deps/openssl/config/archs/VC-WIN32/asm/include/openssl/err.h b/deps/openssl/config/archs/VC-WIN32/asm/include/openssl/err.h index 2abf2483488181..daca18e7b757b0 100644 --- a/deps/openssl/config/archs/VC-WIN32/asm/include/openssl/err.h +++ b/deps/openssl/config/archs/VC-WIN32/asm/include/openssl/err.h @@ -1,5 +1,5 @@ /* - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -372,7 +372,7 @@ typedef struct ERR_string_data_st { } ERR_STRING_DATA; DEFINE_LHASH_OF_INTERNAL(ERR_STRING_DATA); -#define lh_ERR_STRING_DATA_new(hfn, cmp) ((LHASH_OF(ERR_STRING_DATA) *)OPENSSL_LH_new(ossl_check_ERR_STRING_DATA_lh_hashfunc_type(hfn), ossl_check_ERR_STRING_DATA_lh_compfunc_type(cmp))) +#define lh_ERR_STRING_DATA_new(hfn, cmp) ((LHASH_OF(ERR_STRING_DATA) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new(ossl_check_ERR_STRING_DATA_lh_hashfunc_type(hfn), ossl_check_ERR_STRING_DATA_lh_compfunc_type(cmp)), lh_ERR_STRING_DATA_hash_thunk, lh_ERR_STRING_DATA_comp_thunk, lh_ERR_STRING_DATA_doall_thunk, lh_ERR_STRING_DATA_doall_arg_thunk)) #define lh_ERR_STRING_DATA_free(lh) OPENSSL_LH_free(ossl_check_ERR_STRING_DATA_lh_type(lh)) #define lh_ERR_STRING_DATA_flush(lh) OPENSSL_LH_flush(ossl_check_ERR_STRING_DATA_lh_type(lh)) #define lh_ERR_STRING_DATA_insert(lh, ptr) ((ERR_STRING_DATA *)OPENSSL_LH_insert(ossl_check_ERR_STRING_DATA_lh_type(lh), ossl_check_ERR_STRING_DATA_lh_plain_type(ptr))) @@ -496,6 +496,14 @@ int ERR_get_next_error_library(void); int ERR_set_mark(void); int ERR_pop_to_mark(void); int ERR_clear_last_mark(void); +int ERR_count_to_mark(void); +int ERR_pop(void); + +ERR_STATE *OSSL_ERR_STATE_new(void); +void OSSL_ERR_STATE_save(ERR_STATE *es); +void OSSL_ERR_STATE_save_to_mark(ERR_STATE *es); +void OSSL_ERR_STATE_restore(const ERR_STATE *es); +void OSSL_ERR_STATE_free(ERR_STATE *es); #ifdef __cplusplus } diff --git a/deps/openssl/config/archs/VC-WIN32/asm/include/openssl/fipskey.h b/deps/openssl/config/archs/VC-WIN32/asm/include/openssl/fipskey.h index bf03682482fdd5..6939fd3c55ba6e 100644 --- a/deps/openssl/config/archs/VC-WIN32/asm/include/openssl/fipskey.h +++ b/deps/openssl/config/archs/VC-WIN32/asm/include/openssl/fipskey.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by makefile from include/openssl/fipskey.h.in * - * Copyright 2020-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2020-2024 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -29,6 +29,11 @@ extern "C" { */ #define FIPS_KEY_STRING "f4556650ac31d35461610bac4ed81b1a181b2d8a43ea2854cbae22ca74560813" +/* + * The FIPS provider vendor name, as a string. + */ +#define FIPS_VENDOR "OpenSSL FIPS Provider" + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/VC-WIN32/asm/include/openssl/lhash.h b/deps/openssl/config/archs/VC-WIN32/asm/include/openssl/lhash.h index 39dd6254acdeb6..62c55b20fd9716 100644 --- a/deps/openssl/config/archs/VC-WIN32/asm/include/openssl/lhash.h +++ b/deps/openssl/config/archs/VC-WIN32/asm/include/openssl/lhash.h @@ -1,5 +1,5 @@ /* - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2024 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -24,6 +24,9 @@ # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -31,9 +34,13 @@ extern "C" { typedef struct lhash_node_st OPENSSL_LH_NODE; typedef int (*OPENSSL_LH_COMPFUNC) (const void *, const void *); +typedef int (*OPENSSL_LH_COMPFUNCTHUNK) (const void *, const void *, OPENSSL_LH_COMPFUNC cfn); typedef unsigned long (*OPENSSL_LH_HASHFUNC) (const void *); +typedef unsigned long (*OPENSSL_LH_HASHFUNCTHUNK) (const void *, OPENSSL_LH_HASHFUNC hfn); typedef void (*OPENSSL_LH_DOALL_FUNC) (void *); +typedef void (*OPENSSL_LH_DOALL_FUNC_THUNK) (void *, OPENSSL_LH_DOALL_FUNC doall); typedef void (*OPENSSL_LH_DOALL_FUNCARG) (void *, void *); +typedef void (*OPENSSL_LH_DOALL_FUNCARG_THUNK) (void *, void *, OPENSSL_LH_DOALL_FUNCARG doall); typedef struct lhash_st OPENSSL_LHASH; /* @@ -79,26 +86,40 @@ typedef struct lhash_st OPENSSL_LHASH; int OPENSSL_LH_error(OPENSSL_LHASH *lh); OPENSSL_LHASH *OPENSSL_LH_new(OPENSSL_LH_HASHFUNC h, OPENSSL_LH_COMPFUNC c); +OPENSSL_LHASH *OPENSSL_LH_set_thunks(OPENSSL_LHASH *lh, + OPENSSL_LH_HASHFUNCTHUNK hw, + OPENSSL_LH_COMPFUNCTHUNK cw, + OPENSSL_LH_DOALL_FUNC_THUNK daw, + OPENSSL_LH_DOALL_FUNCARG_THUNK daaw); void OPENSSL_LH_free(OPENSSL_LHASH *lh); void OPENSSL_LH_flush(OPENSSL_LHASH *lh); void *OPENSSL_LH_insert(OPENSSL_LHASH *lh, void *data); void *OPENSSL_LH_delete(OPENSSL_LHASH *lh, const void *data); void *OPENSSL_LH_retrieve(OPENSSL_LHASH *lh, const void *data); void OPENSSL_LH_doall(OPENSSL_LHASH *lh, OPENSSL_LH_DOALL_FUNC func); -void OPENSSL_LH_doall_arg(OPENSSL_LHASH *lh, OPENSSL_LH_DOALL_FUNCARG func, void *arg); +void OPENSSL_LH_doall_arg(OPENSSL_LHASH *lh, + OPENSSL_LH_DOALL_FUNCARG func, void *arg); +void OPENSSL_LH_doall_arg_thunk(OPENSSL_LHASH *lh, + OPENSSL_LH_DOALL_FUNCARG_THUNK daaw, + OPENSSL_LH_DOALL_FUNCARG fn, void *arg); + unsigned long OPENSSL_LH_strhash(const char *c); unsigned long OPENSSL_LH_num_items(const OPENSSL_LHASH *lh); unsigned long OPENSSL_LH_get_down_load(const OPENSSL_LHASH *lh); void OPENSSL_LH_set_down_load(OPENSSL_LHASH *lh, unsigned long down_load); # ifndef OPENSSL_NO_STDIO -void OPENSSL_LH_stats(const OPENSSL_LHASH *lh, FILE *fp); -void OPENSSL_LH_node_stats(const OPENSSL_LHASH *lh, FILE *fp); -void OPENSSL_LH_node_usage_stats(const OPENSSL_LHASH *lh, FILE *fp); +# ifndef OPENSSL_NO_DEPRECATED_3_1 +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_stats(const OPENSSL_LHASH *lh, FILE *fp); +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_node_stats(const OPENSSL_LHASH *lh, FILE *fp); +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_node_usage_stats(const OPENSSL_LHASH *lh, FILE *fp); +# endif +# endif +# ifndef OPENSSL_NO_DEPRECATED_3_1 +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_stats_bio(const OPENSSL_LHASH *lh, BIO *out); +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_node_stats_bio(const OPENSSL_LHASH *lh, BIO *out); +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_node_usage_stats_bio(const OPENSSL_LHASH *lh, BIO *out); # endif -void OPENSSL_LH_stats_bio(const OPENSSL_LHASH *lh, BIO *out); -void OPENSSL_LH_node_stats_bio(const OPENSSL_LHASH *lh, BIO *out); -void OPENSSL_LH_node_usage_stats_bio(const OPENSSL_LHASH *lh, BIO *out); # ifndef OPENSSL_NO_DEPRECATED_1_1_0 # define _LHASH OPENSSL_LHASH @@ -129,110 +150,190 @@ void OPENSSL_LH_node_usage_stats_bio(const OPENSSL_LHASH *lh, BIO *out); /* Helper macro for internal use */ # define DEFINE_LHASH_OF_INTERNAL(type) \ - LHASH_OF(type) { union lh_##type##_dummy { void* d1; unsigned long d2; int d3; } dummy; }; \ + LHASH_OF(type) { \ + union lh_##type##_dummy { void* d1; unsigned long d2; int d3; } dummy; \ + }; \ typedef int (*lh_##type##_compfunc)(const type *a, const type *b); \ typedef unsigned long (*lh_##type##_hashfunc)(const type *a); \ typedef void (*lh_##type##_doallfunc)(type *a); \ - static ossl_unused ossl_inline type *ossl_check_##type##_lh_plain_type(type *ptr) \ + static ossl_inline unsigned long lh_##type##_hash_thunk(const void *data, OPENSSL_LH_HASHFUNC hfn) \ + { \ + unsigned long (*hfn_conv)(const type *) = (unsigned long (*)(const type *))hfn; \ + return hfn_conv((const type *)data); \ + } \ + static ossl_inline int lh_##type##_comp_thunk(const void *da, const void *db, OPENSSL_LH_COMPFUNC cfn) \ + { \ + int (*cfn_conv)(const type *, const type *) = (int (*)(const type *, const type *))cfn; \ + return cfn_conv((const type *)da, (const type *)db); \ + } \ + static ossl_inline void lh_##type##_doall_thunk(void *node, OPENSSL_LH_DOALL_FUNC doall) \ + { \ + void (*doall_conv)(type *) = (void (*)(type *))doall; \ + doall_conv((type *)node); \ + } \ + static ossl_inline void lh_##type##_doall_arg_thunk(void *node, void *arg, OPENSSL_LH_DOALL_FUNCARG doall) \ + { \ + void (*doall_conv)(type *, void *) = (void (*)(type *, void *))doall; \ + doall_conv((type *)node, arg); \ + } \ + static ossl_unused ossl_inline type *\ + ossl_check_##type##_lh_plain_type(type *ptr) \ { \ return ptr; \ } \ - static ossl_unused ossl_inline const type *ossl_check_const_##type##_lh_plain_type(const type *ptr) \ + static ossl_unused ossl_inline const type * \ + ossl_check_const_##type##_lh_plain_type(const type *ptr) \ { \ return ptr; \ } \ - static ossl_unused ossl_inline const OPENSSL_LHASH *ossl_check_const_##type##_lh_type(const LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline const OPENSSL_LHASH * \ + ossl_check_const_##type##_lh_type(const LHASH_OF(type) *lh) \ { \ return (const OPENSSL_LHASH *)lh; \ } \ - static ossl_unused ossl_inline OPENSSL_LHASH *ossl_check_##type##_lh_type(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline OPENSSL_LHASH * \ + ossl_check_##type##_lh_type(LHASH_OF(type) *lh) \ { \ return (OPENSSL_LHASH *)lh; \ } \ - static ossl_unused ossl_inline OPENSSL_LH_COMPFUNC ossl_check_##type##_lh_compfunc_type(lh_##type##_compfunc cmp) \ + static ossl_unused ossl_inline OPENSSL_LH_COMPFUNC \ + ossl_check_##type##_lh_compfunc_type(lh_##type##_compfunc cmp) \ { \ return (OPENSSL_LH_COMPFUNC)cmp; \ } \ - static ossl_unused ossl_inline OPENSSL_LH_HASHFUNC ossl_check_##type##_lh_hashfunc_type(lh_##type##_hashfunc hfn) \ + static ossl_unused ossl_inline OPENSSL_LH_HASHFUNC \ + ossl_check_##type##_lh_hashfunc_type(lh_##type##_hashfunc hfn) \ { \ return (OPENSSL_LH_HASHFUNC)hfn; \ } \ - static ossl_unused ossl_inline OPENSSL_LH_DOALL_FUNC ossl_check_##type##_lh_doallfunc_type(lh_##type##_doallfunc dfn) \ + static ossl_unused ossl_inline OPENSSL_LH_DOALL_FUNC \ + ossl_check_##type##_lh_doallfunc_type(lh_##type##_doallfunc dfn) \ { \ return (OPENSSL_LH_DOALL_FUNC)dfn; \ } \ LHASH_OF(type) -# define DEFINE_LHASH_OF(type) \ - LHASH_OF(type) { union lh_##type##_dummy { void* d1; unsigned long d2; int d3; } dummy; }; \ - static ossl_unused ossl_inline LHASH_OF(type) *lh_##type##_new(unsigned long (*hfn)(const type *), \ - int (*cfn)(const type *, const type *)) \ +# ifndef OPENSSL_NO_DEPRECATED_3_1 +# define DEFINE_LHASH_OF_DEPRECATED(type) \ + static ossl_unused ossl_inline void \ + lh_##type##_node_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ { \ - return (LHASH_OF(type) *) \ - OPENSSL_LH_new((OPENSSL_LH_HASHFUNC)hfn, (OPENSSL_LH_COMPFUNC)cfn); \ + OPENSSL_LH_node_stats_bio((const OPENSSL_LHASH *)lh, out); \ } \ - static ossl_unused ossl_inline void lh_##type##_free(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline void \ + lh_##type##_node_usage_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + { \ + OPENSSL_LH_node_usage_stats_bio((const OPENSSL_LHASH *)lh, out); \ + } \ + static ossl_unused ossl_inline void \ + lh_##type##_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + { \ + OPENSSL_LH_stats_bio((const OPENSSL_LHASH *)lh, out); \ + } +# else +# define DEFINE_LHASH_OF_DEPRECATED(type) +# endif + +# define DEFINE_LHASH_OF_EX(type) \ + LHASH_OF(type) { \ + union lh_##type##_dummy { void* d1; unsigned long d2; int d3; } dummy; \ + }; \ + static unsigned long \ + lh_##type##_hfn_thunk(const void *data, OPENSSL_LH_HASHFUNC hfn) \ + { \ + unsigned long (*hfn_conv)(const type *) = (unsigned long (*)(const type *))hfn; \ + return hfn_conv((const type *)data); \ + } \ + static int lh_##type##_cfn_thunk(const void *da, const void *db, OPENSSL_LH_COMPFUNC cfn) \ + { \ + int (*cfn_conv)(const type *, const type *) = (int (*)(const type *, const type *))cfn; \ + return cfn_conv((const type *)da, (const type *)db); \ + } \ + static ossl_unused ossl_inline void \ + lh_##type##_free(LHASH_OF(type) *lh) \ { \ OPENSSL_LH_free((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline void lh_##type##_flush(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline void \ + lh_##type##_flush(LHASH_OF(type) *lh) \ { \ OPENSSL_LH_flush((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline type *lh_##type##_insert(LHASH_OF(type) *lh, type *d) \ + static ossl_unused ossl_inline type * \ + lh_##type##_insert(LHASH_OF(type) *lh, type *d) \ { \ return (type *)OPENSSL_LH_insert((OPENSSL_LHASH *)lh, d); \ } \ - static ossl_unused ossl_inline type *lh_##type##_delete(LHASH_OF(type) *lh, const type *d) \ + static ossl_unused ossl_inline type * \ + lh_##type##_delete(LHASH_OF(type) *lh, const type *d) \ { \ return (type *)OPENSSL_LH_delete((OPENSSL_LHASH *)lh, d); \ } \ - static ossl_unused ossl_inline type *lh_##type##_retrieve(LHASH_OF(type) *lh, const type *d) \ + static ossl_unused ossl_inline type * \ + lh_##type##_retrieve(LHASH_OF(type) *lh, const type *d) \ { \ return (type *)OPENSSL_LH_retrieve((OPENSSL_LHASH *)lh, d); \ } \ - static ossl_unused ossl_inline int lh_##type##_error(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline int \ + lh_##type##_error(LHASH_OF(type) *lh) \ { \ return OPENSSL_LH_error((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline unsigned long lh_##type##_num_items(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline unsigned long \ + lh_##type##_num_items(LHASH_OF(type) *lh) \ { \ return OPENSSL_LH_num_items((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline void lh_##type##_node_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + static ossl_unused ossl_inline unsigned long \ + lh_##type##_get_down_load(LHASH_OF(type) *lh) \ { \ - OPENSSL_LH_node_stats_bio((const OPENSSL_LHASH *)lh, out); \ + return OPENSSL_LH_get_down_load((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline void lh_##type##_node_usage_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + static ossl_unused ossl_inline void \ + lh_##type##_set_down_load(LHASH_OF(type) *lh, unsigned long dl) \ { \ - OPENSSL_LH_node_usage_stats_bio((const OPENSSL_LHASH *)lh, out); \ + OPENSSL_LH_set_down_load((OPENSSL_LHASH *)lh, dl); \ } \ - static ossl_unused ossl_inline void lh_##type##_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall_thunk(void *node, OPENSSL_LH_DOALL_FUNC doall) \ { \ - OPENSSL_LH_stats_bio((const OPENSSL_LHASH *)lh, out); \ + void (*doall_conv)(type *) = (void (*)(type *))doall; \ + doall_conv((type *)node); \ } \ - static ossl_unused ossl_inline unsigned long lh_##type##_get_down_load(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall_arg_thunk(void *node, void *arg, OPENSSL_LH_DOALL_FUNCARG doall) \ { \ - return OPENSSL_LH_get_down_load((OPENSSL_LHASH *)lh); \ + void (*doall_conv)(type *, void *) = (void (*)(type *, void *))doall; \ + doall_conv((type *)node, arg); \ } \ - static ossl_unused ossl_inline void lh_##type##_set_down_load(LHASH_OF(type) *lh, unsigned long dl) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall(LHASH_OF(type) *lh, void (*doall)(type *)) \ { \ - OPENSSL_LH_set_down_load((OPENSSL_LHASH *)lh, dl); \ + OPENSSL_LH_doall((OPENSSL_LHASH *)lh, (OPENSSL_LH_DOALL_FUNC)doall); \ } \ - static ossl_unused ossl_inline void lh_##type##_doall(LHASH_OF(type) *lh, \ - void (*doall)(type *)) \ + static ossl_unused ossl_inline LHASH_OF(type) * \ + lh_##type##_new(unsigned long (*hfn)(const type *), \ + int (*cfn)(const type *, const type *)) \ { \ - OPENSSL_LH_doall((OPENSSL_LHASH *)lh, (OPENSSL_LH_DOALL_FUNC)doall); \ + return (LHASH_OF(type) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new((OPENSSL_LH_HASHFUNC)hfn, (OPENSSL_LH_COMPFUNC)cfn), \ + lh_##type##_hfn_thunk, lh_##type##_cfn_thunk, \ + lh_##type##_doall_thunk, \ + lh_##type##_doall_arg_thunk); \ } \ - static ossl_unused ossl_inline void lh_##type##_doall_arg(LHASH_OF(type) *lh, \ - void (*doallarg)(type *, void *), \ - void *arg) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall_arg(LHASH_OF(type) *lh, \ + void (*doallarg)(type *, void *), void *arg) \ { \ OPENSSL_LH_doall_arg((OPENSSL_LHASH *)lh, \ (OPENSSL_LH_DOALL_FUNCARG)doallarg, arg); \ } \ LHASH_OF(type) +# define DEFINE_LHASH_OF(type) \ + DEFINE_LHASH_OF_EX(type); \ + DEFINE_LHASH_OF_DEPRECATED(type) \ + LHASH_OF(type) + #define IMPLEMENT_LHASH_DOALL_ARG_CONST(type, argtype) \ int_implement_lhash_doall(type, argtype, const type) @@ -240,17 +341,26 @@ void OPENSSL_LH_node_usage_stats_bio(const OPENSSL_LHASH *lh, BIO *out); int_implement_lhash_doall(type, argtype, type) #define int_implement_lhash_doall(type, argtype, cbargtype) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall_##argtype##_thunk(void *node, void *arg, OPENSSL_LH_DOALL_FUNCARG fn) \ + { \ + void (*fn_conv)(cbargtype *, argtype *) = (void (*)(cbargtype *, argtype *))fn; \ + fn_conv((cbargtype *)node, (argtype *)arg); \ + } \ static ossl_unused ossl_inline void \ lh_##type##_doall_##argtype(LHASH_OF(type) *lh, \ void (*fn)(cbargtype *, argtype *), \ argtype *arg) \ { \ - OPENSSL_LH_doall_arg((OPENSSL_LHASH *)lh, (OPENSSL_LH_DOALL_FUNCARG)fn, (void *)arg); \ + OPENSSL_LH_doall_arg_thunk((OPENSSL_LHASH *)lh, \ + lh_##type##_doall_##argtype##_thunk, \ + (OPENSSL_LH_DOALL_FUNCARG)fn, \ + (void *)arg); \ } \ LHASH_OF(type) DEFINE_LHASH_OF_INTERNAL(OPENSSL_STRING); -#define lh_OPENSSL_STRING_new(hfn, cmp) ((LHASH_OF(OPENSSL_STRING) *)OPENSSL_LH_new(ossl_check_OPENSSL_STRING_lh_hashfunc_type(hfn), ossl_check_OPENSSL_STRING_lh_compfunc_type(cmp))) +#define lh_OPENSSL_STRING_new(hfn, cmp) ((LHASH_OF(OPENSSL_STRING) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new(ossl_check_OPENSSL_STRING_lh_hashfunc_type(hfn), ossl_check_OPENSSL_STRING_lh_compfunc_type(cmp)), lh_OPENSSL_STRING_hash_thunk, lh_OPENSSL_STRING_comp_thunk, lh_OPENSSL_STRING_doall_thunk, lh_OPENSSL_STRING_doall_arg_thunk)) #define lh_OPENSSL_STRING_free(lh) OPENSSL_LH_free(ossl_check_OPENSSL_STRING_lh_type(lh)) #define lh_OPENSSL_STRING_flush(lh) OPENSSL_LH_flush(ossl_check_OPENSSL_STRING_lh_type(lh)) #define lh_OPENSSL_STRING_insert(lh, ptr) ((OPENSSL_STRING *)OPENSSL_LH_insert(ossl_check_OPENSSL_STRING_lh_type(lh), ossl_check_OPENSSL_STRING_lh_plain_type(ptr))) @@ -265,7 +375,7 @@ DEFINE_LHASH_OF_INTERNAL(OPENSSL_STRING); #define lh_OPENSSL_STRING_set_down_load(lh, dl) OPENSSL_LH_set_down_load(ossl_check_OPENSSL_STRING_lh_type(lh), dl) #define lh_OPENSSL_STRING_doall(lh, dfn) OPENSSL_LH_doall(ossl_check_OPENSSL_STRING_lh_type(lh), ossl_check_OPENSSL_STRING_lh_doallfunc_type(dfn)) DEFINE_LHASH_OF_INTERNAL(OPENSSL_CSTRING); -#define lh_OPENSSL_CSTRING_new(hfn, cmp) ((LHASH_OF(OPENSSL_CSTRING) *)OPENSSL_LH_new(ossl_check_OPENSSL_CSTRING_lh_hashfunc_type(hfn), ossl_check_OPENSSL_CSTRING_lh_compfunc_type(cmp))) +#define lh_OPENSSL_CSTRING_new(hfn, cmp) ((LHASH_OF(OPENSSL_CSTRING) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new(ossl_check_OPENSSL_CSTRING_lh_hashfunc_type(hfn), ossl_check_OPENSSL_CSTRING_lh_compfunc_type(cmp)), lh_OPENSSL_CSTRING_hash_thunk, lh_OPENSSL_CSTRING_comp_thunk, lh_OPENSSL_CSTRING_doall_thunk, lh_OPENSSL_CSTRING_doall_arg_thunk)) #define lh_OPENSSL_CSTRING_free(lh) OPENSSL_LH_free(ossl_check_OPENSSL_CSTRING_lh_type(lh)) #define lh_OPENSSL_CSTRING_flush(lh) OPENSSL_LH_flush(ossl_check_OPENSSL_CSTRING_lh_type(lh)) #define lh_OPENSSL_CSTRING_insert(lh, ptr) ((OPENSSL_CSTRING *)OPENSSL_LH_insert(ossl_check_OPENSSL_CSTRING_lh_type(lh), ossl_check_OPENSSL_CSTRING_lh_plain_type(ptr))) diff --git a/deps/openssl/config/archs/VC-WIN32/asm/include/openssl/opensslv.h b/deps/openssl/config/archs/VC-WIN32/asm/include/openssl/opensslv.h index 94f44daf376f8e..a26d4e609af1b7 100644 --- a/deps/openssl/config/archs/VC-WIN32/asm/include/openssl/opensslv.h +++ b/deps/openssl/config/archs/VC-WIN32/asm/include/openssl/opensslv.h @@ -28,8 +28,8 @@ extern "C" { * These macros express version number MAJOR.MINOR.PATCH exactly */ # define OPENSSL_VERSION_MAJOR 3 -# define OPENSSL_VERSION_MINOR 0 -# define OPENSSL_VERSION_PATCH 17 +# define OPENSSL_VERSION_MINOR 5 +# define OPENSSL_VERSION_PATCH 1 /* * Additional version information @@ -74,8 +74,8 @@ extern "C" { * longer variant with OPENSSL_VERSION_PRE_RELEASE_STR and * OPENSSL_VERSION_BUILD_METADATA_STR appended. */ -# define OPENSSL_VERSION_STR "3.0.17" -# define OPENSSL_FULL_VERSION_STR "3.0.17" +# define OPENSSL_VERSION_STR "3.5.1" +# define OPENSSL_FULL_VERSION_STR "3.5.1" /* * SECTION 3: ADDITIONAL METADATA @@ -88,7 +88,7 @@ extern "C" { * SECTION 4: BACKWARD COMPATIBILITY */ -# define OPENSSL_VERSION_TEXT "OpenSSL 3.0.17 1 Jul 2025" +# define OPENSSL_VERSION_TEXT "OpenSSL 3.5.1 1 Jul 2025" /* Synthesize OPENSSL_VERSION_NUMBER with the layout 0xMNN00PPSL */ # ifdef OPENSSL_VERSION_PRE_RELEASE diff --git a/deps/openssl/config/archs/VC-WIN32/asm/include/openssl/pkcs12.h b/deps/openssl/config/archs/VC-WIN32/asm/include/openssl/pkcs12.h index 80369818c8ecdc..35d04f039366ce 100644 --- a/deps/openssl/config/archs/VC-WIN32/asm/include/openssl/pkcs12.h +++ b/deps/openssl/config/archs/VC-WIN32/asm/include/openssl/pkcs12.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by makefile from include/openssl/pkcs12.h.in * - * Copyright 1999-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1999-2024 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -25,6 +25,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -41,6 +44,7 @@ extern "C" { # define PKCS12_MAC_KEY_LENGTH 20 +/* The macro is expected to be used only internally. Kept for backwards compatibility. */ # define PKCS12_SALT_LEN 8 /* It's not clear if these are actually needed... */ @@ -130,7 +134,9 @@ int PKCS12_SAFEBAG_get_bag_nid(const PKCS12_SAFEBAG *bag); const ASN1_TYPE *PKCS12_SAFEBAG_get0_bag_obj(const PKCS12_SAFEBAG *bag); const ASN1_OBJECT *PKCS12_SAFEBAG_get0_bag_type(const PKCS12_SAFEBAG *bag); +X509 *PKCS12_SAFEBAG_get1_cert_ex(const PKCS12_SAFEBAG *bag, OSSL_LIB_CTX *libctx, const char *propq); X509 *PKCS12_SAFEBAG_get1_cert(const PKCS12_SAFEBAG *bag); +X509_CRL *PKCS12_SAFEBAG_get1_crl_ex(const PKCS12_SAFEBAG *bag, OSSL_LIB_CTX *libctx, const char *propq); X509_CRL *PKCS12_SAFEBAG_get1_crl(const PKCS12_SAFEBAG *bag); const STACK_OF(PKCS12_SAFEBAG) * PKCS12_SAFEBAG_get0_safes(const PKCS12_SAFEBAG *bag); @@ -218,6 +224,7 @@ ASN1_TYPE *PKCS12_get_attr_gen(const STACK_OF(X509_ATTRIBUTE) *attrs, char *PKCS12_get_friendlyname(PKCS12_SAFEBAG *bag); const STACK_OF(X509_ATTRIBUTE) * PKCS12_SAFEBAG_get0_attrs(const PKCS12_SAFEBAG *bag); +void PKCS12_SAFEBAG_set0_attrs(PKCS12_SAFEBAG *bag, STACK_OF(X509_ATTRIBUTE) *attrs); unsigned char *PKCS12_pbe_crypt(const X509_ALGOR *algor, const char *pass, int passlen, const unsigned char *in, int inlen, @@ -285,6 +292,9 @@ int PKCS12_verify_mac(PKCS12 *p12, const char *pass, int passlen); int PKCS12_set_mac(PKCS12 *p12, const char *pass, int passlen, unsigned char *salt, int saltlen, int iter, const EVP_MD *md_type); +int PKCS12_set_pbmac1_pbkdf2(PKCS12 *p12, const char *pass, int passlen, + unsigned char *salt, int saltlen, int iter, + const EVP_MD *md_type, const char *prf_md_name); int PKCS12_setup_mac(PKCS12 *p12, int iter, unsigned char *salt, int saltlen, const EVP_MD *md_type); unsigned char *OPENSSL_asc2uni(const char *asc, int asclen, @@ -305,6 +315,7 @@ DECLARE_ASN1_ITEM(PKCS12_AUTHSAFES) void PKCS12_PBE_add(void); int PKCS12_parse(PKCS12 *p12, const char *pass, EVP_PKEY **pkey, X509 **cert, STACK_OF(X509) **ca); +typedef int PKCS12_create_cb(PKCS12_SAFEBAG *bag, void *cbarg); PKCS12 *PKCS12_create(const char *pass, const char *name, EVP_PKEY *pkey, X509 *cert, STACK_OF(X509) *ca, int nid_key, int nid_cert, int iter, int mac_iter, int keytype); @@ -312,6 +323,11 @@ PKCS12 *PKCS12_create_ex(const char *pass, const char *name, EVP_PKEY *pkey, X509 *cert, STACK_OF(X509) *ca, int nid_key, int nid_cert, int iter, int mac_iter, int keytype, OSSL_LIB_CTX *ctx, const char *propq); +PKCS12 *PKCS12_create_ex2(const char *pass, const char *name, EVP_PKEY *pkey, + X509 *cert, STACK_OF(X509) *ca, int nid_key, int nid_cert, + int iter, int mac_iter, int keytype, + OSSL_LIB_CTX *ctx, const char *propq, + PKCS12_create_cb *cb, void *cbarg); PKCS12_SAFEBAG *PKCS12_add_cert(STACK_OF(PKCS12_SAFEBAG) **pbags, X509 *cert); PKCS12_SAFEBAG *PKCS12_add_key(STACK_OF(PKCS12_SAFEBAG) **pbags, diff --git a/deps/openssl/config/archs/VC-WIN32/asm/include/openssl/pkcs7.h b/deps/openssl/config/archs/VC-WIN32/asm/include/openssl/pkcs7.h index 0a95a93e59e262..641d9411a47354 100644 --- a/deps/openssl/config/archs/VC-WIN32/asm/include/openssl/pkcs7.h +++ b/deps/openssl/config/archs/VC-WIN32/asm/include/openssl/pkcs7.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by makefile from include/openssl/pkcs7.h.in * - * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -28,6 +28,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -131,8 +134,8 @@ SKM_DEFINE_STACK_OF_INTERNAL(PKCS7_RECIP_INFO, PKCS7_RECIP_INFO, PKCS7_RECIP_INF typedef struct pkcs7_signed_st { ASN1_INTEGER *version; /* version 1 */ STACK_OF(X509_ALGOR) *md_algs; /* md used */ - STACK_OF(X509) *cert; /* [ 0 ] */ - STACK_OF(X509_CRL) *crl; /* [ 1 ] */ + STACK_OF(X509) *cert; /* [ 0 ] */ /* name should be 'certificates' */ + STACK_OF(X509_CRL) *crl; /* [ 1 ] */ /* name should be 'crls' */ STACK_OF(PKCS7_SIGNER_INFO) *signer_info; struct pkcs7_st *contents; } PKCS7_SIGNED; @@ -158,8 +161,8 @@ typedef struct pkcs7_enveloped_st { typedef struct pkcs7_signedandenveloped_st { ASN1_INTEGER *version; /* version 1 */ STACK_OF(X509_ALGOR) *md_algs; /* md used */ - STACK_OF(X509) *cert; /* [ 0 ] */ - STACK_OF(X509_CRL) *crl; /* [ 1 ] */ + STACK_OF(X509) *cert; /* [ 0 ] */ /* name should be 'certificates' */ + STACK_OF(X509_CRL) *crl; /* [ 1 ] */ /* name should be 'crls' */ STACK_OF(PKCS7_SIGNER_INFO) *signer_info; PKCS7_ENC_CONTENT *enc_data; STACK_OF(PKCS7_RECIP_INFO) *recipientinfo; @@ -200,7 +203,7 @@ typedef struct pkcs7_st { /* NID_pkcs7_data */ ASN1_OCTET_STRING *data; /* NID_pkcs7_signed */ - PKCS7_SIGNED *sign; + PKCS7_SIGNED *sign; /* field name 'signed' would clash with C keyword */ /* NID_pkcs7_enveloped */ PKCS7_ENVELOPE *enveloped; /* NID_pkcs7_signedAndEnveloped */ @@ -341,13 +344,13 @@ int PKCS7_SIGNER_INFO_set(PKCS7_SIGNER_INFO *p7i, X509 *x509, EVP_PKEY *pkey, const EVP_MD *dgst); int PKCS7_SIGNER_INFO_sign(PKCS7_SIGNER_INFO *si); int PKCS7_add_signer(PKCS7 *p7, PKCS7_SIGNER_INFO *p7i); -int PKCS7_add_certificate(PKCS7 *p7, X509 *x509); -int PKCS7_add_crl(PKCS7 *p7, X509_CRL *x509); +int PKCS7_add_certificate(PKCS7 *p7, X509 *cert); +int PKCS7_add_crl(PKCS7 *p7, X509_CRL *crl); int PKCS7_content_new(PKCS7 *p7, int nid); int PKCS7_dataVerify(X509_STORE *cert_store, X509_STORE_CTX *ctx, BIO *bio, PKCS7 *p7, PKCS7_SIGNER_INFO *si); int PKCS7_signatureVerify(BIO *bio, PKCS7 *p7, PKCS7_SIGNER_INFO *si, - X509 *x509); + X509 *signer); BIO *PKCS7_dataInit(PKCS7 *p7, BIO *bio); int PKCS7_dataFinal(PKCS7 *p7, BIO *bio); diff --git a/deps/openssl/config/archs/VC-WIN32/asm/include/openssl/ssl.h b/deps/openssl/config/archs/VC-WIN32/asm/include/openssl/ssl.h index 7e9ca09bbf39f0..6396681867d76c 100644 --- a/deps/openssl/config/archs/VC-WIN32/asm/include/openssl/ssl.h +++ b/deps/openssl/config/archs/VC-WIN32/asm/include/openssl/ssl.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by makefile from include/openssl/ssl.h.in * - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved * Copyright 2005 Nokia. All rights reserved. * @@ -24,6 +24,7 @@ # endif # include +# include # include # include # include @@ -42,6 +43,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -231,10 +235,8 @@ typedef struct ssl_cipher_st SSL_CIPHER; typedef struct ssl_session_st SSL_SESSION; typedef struct tls_sigalgs_st TLS_SIGALGS; typedef struct ssl_conf_ctx_st SSL_CONF_CTX; -typedef struct ssl_comp_st SSL_COMP; STACK_OF(SSL_CIPHER); -STACK_OF(SSL_COMP); /* SRTP protection profiles for use with the use_srtp extension (RFC 5764)*/ typedef struct srtp_protection_profile_st { @@ -278,28 +280,31 @@ typedef int (*tls_session_secret_cb_fn)(SSL *s, void *secret, int *secret_len, /* Extension context codes */ /* This extension is only allowed in TLS */ -#define SSL_EXT_TLS_ONLY 0x0001 +#define SSL_EXT_TLS_ONLY 0x00001 /* This extension is only allowed in DTLS */ -#define SSL_EXT_DTLS_ONLY 0x0002 +#define SSL_EXT_DTLS_ONLY 0x00002 /* Some extensions may be allowed in DTLS but we don't implement them for it */ -#define SSL_EXT_TLS_IMPLEMENTATION_ONLY 0x0004 +#define SSL_EXT_TLS_IMPLEMENTATION_ONLY 0x00004 /* Most extensions are not defined for SSLv3 but EXT_TYPE_renegotiate is */ -#define SSL_EXT_SSL3_ALLOWED 0x0008 +#define SSL_EXT_SSL3_ALLOWED 0x00008 /* Extension is only defined for TLS1.2 and below */ -#define SSL_EXT_TLS1_2_AND_BELOW_ONLY 0x0010 +#define SSL_EXT_TLS1_2_AND_BELOW_ONLY 0x00010 /* Extension is only defined for TLS1.3 and above */ -#define SSL_EXT_TLS1_3_ONLY 0x0020 +#define SSL_EXT_TLS1_3_ONLY 0x00020 /* Ignore this extension during parsing if we are resuming */ -#define SSL_EXT_IGNORE_ON_RESUMPTION 0x0040 -#define SSL_EXT_CLIENT_HELLO 0x0080 +#define SSL_EXT_IGNORE_ON_RESUMPTION 0x00040 +#define SSL_EXT_CLIENT_HELLO 0x00080 /* Really means TLS1.2 or below */ -#define SSL_EXT_TLS1_2_SERVER_HELLO 0x0100 -#define SSL_EXT_TLS1_3_SERVER_HELLO 0x0200 -#define SSL_EXT_TLS1_3_ENCRYPTED_EXTENSIONS 0x0400 -#define SSL_EXT_TLS1_3_HELLO_RETRY_REQUEST 0x0800 -#define SSL_EXT_TLS1_3_CERTIFICATE 0x1000 -#define SSL_EXT_TLS1_3_NEW_SESSION_TICKET 0x2000 -#define SSL_EXT_TLS1_3_CERTIFICATE_REQUEST 0x4000 +#define SSL_EXT_TLS1_2_SERVER_HELLO 0x00100 +#define SSL_EXT_TLS1_3_SERVER_HELLO 0x00200 +#define SSL_EXT_TLS1_3_ENCRYPTED_EXTENSIONS 0x00400 +#define SSL_EXT_TLS1_3_HELLO_RETRY_REQUEST 0x00800 +#define SSL_EXT_TLS1_3_CERTIFICATE 0x01000 +#define SSL_EXT_TLS1_3_NEW_SESSION_TICKET 0x02000 +#define SSL_EXT_TLS1_3_CERTIFICATE_REQUEST 0x04000 +#define SSL_EXT_TLS1_3_CERTIFICATE_COMPRESSION 0x08000 +/* When sending a raw public key in a certificate message */ +#define SSL_EXT_TLS1_3_RAW_PUBLIC_KEY 0x10000 /* Typedefs for handling custom extensions */ @@ -404,7 +409,7 @@ typedef int (*SSL_async_callback_fn)(SSL *s, void *arg); */ # define SSL_OP_CIPHER_SERVER_PREFERENCE SSL_OP_BIT(22) /* - * If set, a server will allow a client to issue a SSLv3.0 version + * If set, a server will allow a client to issue an SSLv3.0 version * number as latest version supported in the premaster secret, even when * TLSv1.0 (version 3.1) was announced in the client hello. Normally * this is forbidden to prevent version rollback attacks. @@ -430,6 +435,19 @@ typedef int (*SSL_async_callback_fn)(SSL *s, void *arg); * interoperability with CryptoPro CSP 3.x */ # define SSL_OP_CRYPTOPRO_TLSEXT_BUG SSL_OP_BIT(31) +/* + * Disable RFC8879 certificate compression + * SSL_OP_NO_TX_CERTIFICATE_COMPRESSION: don't send compressed certificates, + * and ignore the extension when received. + * SSL_OP_NO_RX_CERTIFICATE_COMPRESSION: don't send the extension, and + * subsequently indicating that receiving is not supported + */ +# define SSL_OP_NO_TX_CERTIFICATE_COMPRESSION SSL_OP_BIT(32) +# define SSL_OP_NO_RX_CERTIFICATE_COMPRESSION SSL_OP_BIT(33) + /* Enable KTLS TX zerocopy on Linux */ +# define SSL_OP_ENABLE_KTLS_TX_ZEROCOPY_SENDFILE SSL_OP_BIT(34) + +#define SSL_OP_PREFER_NO_DHE_KEX SSL_OP_BIT(35) /* * Option "collections." @@ -574,6 +592,8 @@ typedef int (*SSL_async_callback_fn)(SSL *s, void *arg); # define CERT_PKEY_CERT_TYPE 0x400 /* Cert chain suitable to Suite B */ # define CERT_PKEY_SUITEB 0x800 +/* Cert pkey valid for raw public key use */ +# define CERT_PKEY_RPK 0x1000 # define SSL_CONF_FLAG_CMDLINE 0x1 # define SSL_CONF_FLAG_FILE 0x2 @@ -965,6 +985,7 @@ uint32_t SSL_get_recv_max_early_data(const SSL *s); # include /* This is mostly sslv3 with a few tweaks */ # include /* Datagram TLS */ # include /* Support for the use_srtp extension */ +# include #ifdef __cplusplus extern "C" { @@ -1000,32 +1021,6 @@ SKM_DEFINE_STACK_OF_INTERNAL(SSL_CIPHER, const SSL_CIPHER, SSL_CIPHER) #define sk_SSL_CIPHER_dup(sk) ((STACK_OF(SSL_CIPHER) *)OPENSSL_sk_dup(ossl_check_const_SSL_CIPHER_sk_type(sk))) #define sk_SSL_CIPHER_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(SSL_CIPHER) *)OPENSSL_sk_deep_copy(ossl_check_const_SSL_CIPHER_sk_type(sk), ossl_check_SSL_CIPHER_copyfunc_type(copyfunc), ossl_check_SSL_CIPHER_freefunc_type(freefunc))) #define sk_SSL_CIPHER_set_cmp_func(sk, cmp) ((sk_SSL_CIPHER_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_SSL_CIPHER_sk_type(sk), ossl_check_SSL_CIPHER_compfunc_type(cmp))) -SKM_DEFINE_STACK_OF_INTERNAL(SSL_COMP, SSL_COMP, SSL_COMP) -#define sk_SSL_COMP_num(sk) OPENSSL_sk_num(ossl_check_const_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_value(sk, idx) ((SSL_COMP *)OPENSSL_sk_value(ossl_check_const_SSL_COMP_sk_type(sk), (idx))) -#define sk_SSL_COMP_new(cmp) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new(ossl_check_SSL_COMP_compfunc_type(cmp))) -#define sk_SSL_COMP_new_null() ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new_null()) -#define sk_SSL_COMP_new_reserve(cmp, n) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new_reserve(ossl_check_SSL_COMP_compfunc_type(cmp), (n))) -#define sk_SSL_COMP_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_SSL_COMP_sk_type(sk), (n)) -#define sk_SSL_COMP_free(sk) OPENSSL_sk_free(ossl_check_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_zero(sk) OPENSSL_sk_zero(ossl_check_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_delete(sk, i) ((SSL_COMP *)OPENSSL_sk_delete(ossl_check_SSL_COMP_sk_type(sk), (i))) -#define sk_SSL_COMP_delete_ptr(sk, ptr) ((SSL_COMP *)OPENSSL_sk_delete_ptr(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr))) -#define sk_SSL_COMP_push(sk, ptr) OPENSSL_sk_push(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) -#define sk_SSL_COMP_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) -#define sk_SSL_COMP_pop(sk) ((SSL_COMP *)OPENSSL_sk_pop(ossl_check_SSL_COMP_sk_type(sk))) -#define sk_SSL_COMP_shift(sk) ((SSL_COMP *)OPENSSL_sk_shift(ossl_check_SSL_COMP_sk_type(sk))) -#define sk_SSL_COMP_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_SSL_COMP_sk_type(sk),ossl_check_SSL_COMP_freefunc_type(freefunc)) -#define sk_SSL_COMP_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr), (idx)) -#define sk_SSL_COMP_set(sk, idx, ptr) ((SSL_COMP *)OPENSSL_sk_set(ossl_check_SSL_COMP_sk_type(sk), (idx), ossl_check_SSL_COMP_type(ptr))) -#define sk_SSL_COMP_find(sk, ptr) OPENSSL_sk_find(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) -#define sk_SSL_COMP_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) -#define sk_SSL_COMP_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr), pnum) -#define sk_SSL_COMP_sort(sk) OPENSSL_sk_sort(ossl_check_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_dup(sk) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_dup(ossl_check_const_SSL_COMP_sk_type(sk))) -#define sk_SSL_COMP_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_deep_copy(ossl_check_const_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_copyfunc_type(copyfunc), ossl_check_SSL_COMP_freefunc_type(freefunc))) -#define sk_SSL_COMP_set_cmp_func(sk, cmp) ((sk_SSL_COMP_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_compfunc_type(cmp))) /* compatibility */ @@ -1066,6 +1061,7 @@ typedef enum { DTLS_ST_CR_HELLO_VERIFY_REQUEST, TLS_ST_CR_SRVR_HELLO, TLS_ST_CR_CERT, + TLS_ST_CR_COMP_CERT, TLS_ST_CR_CERT_STATUS, TLS_ST_CR_KEY_EXCH, TLS_ST_CR_CERT_REQ, @@ -1075,6 +1071,7 @@ typedef enum { TLS_ST_CR_FINISHED, TLS_ST_CW_CLNT_HELLO, TLS_ST_CW_CERT, + TLS_ST_CW_COMP_CERT, TLS_ST_CW_KEY_EXCH, TLS_ST_CW_CERT_VRFY, TLS_ST_CW_CHANGE, @@ -1085,10 +1082,12 @@ typedef enum { DTLS_ST_SW_HELLO_VERIFY_REQUEST, TLS_ST_SW_SRVR_HELLO, TLS_ST_SW_CERT, + TLS_ST_SW_COMP_CERT, TLS_ST_SW_KEY_EXCH, TLS_ST_SW_CERT_REQ, TLS_ST_SW_SRVR_DONE, TLS_ST_SR_CERT, + TLS_ST_SR_COMP_CERT, TLS_ST_SR_KEY_EXCH, TLS_ST_SR_CERT_VRFY, TLS_ST_SR_NEXT_PROTO, @@ -1380,9 +1379,13 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) # define SSL_CTRL_GET_SIGNATURE_NID 132 # define SSL_CTRL_GET_TMP_KEY 133 # define SSL_CTRL_GET_NEGOTIATED_GROUP 134 +# define SSL_CTRL_GET_IANA_GROUPS 135 # define SSL_CTRL_SET_RETRY_VERIFY 136 # define SSL_CTRL_GET_VERIFY_CERT_STORE 137 # define SSL_CTRL_GET_CHAIN_CERT_STORE 138 +# define SSL_CTRL_GET0_IMPLEMENTED_GROUPS 139 +# define SSL_CTRL_GET_SIGNATURE_NAME 140 +# define SSL_CTRL_GET_PEER_SIGNATURE_NAME 141 # define SSL_CERT_SET_FIRST 1 # define SSL_CERT_SET_NEXT 2 # define SSL_CERT_SET_SERVER 3 @@ -1485,10 +1488,15 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) # define SSL_get1_groups(s, glist) \ SSL_ctrl(s,SSL_CTRL_GET_GROUPS,0,(int*)(glist)) +# define SSL_get0_iana_groups(s, plst) \ + SSL_ctrl(s,SSL_CTRL_GET_IANA_GROUPS,0,(uint16_t **)(plst)) # define SSL_CTX_set1_groups(ctx, glist, glistlen) \ SSL_CTX_ctrl(ctx,SSL_CTRL_SET_GROUPS,glistlen,(int *)(glist)) # define SSL_CTX_set1_groups_list(ctx, s) \ SSL_CTX_ctrl(ctx,SSL_CTRL_SET_GROUPS_LIST,0,(char *)(s)) +# define SSL_CTX_get0_implemented_groups(ctx, all, out) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_GET0_IMPLEMENTED_GROUPS, all, \ + (STACK_OF(OPENSSL_CSTRING) *)(out)) # define SSL_set1_groups(s, glist, glistlen) \ SSL_ctrl(s,SSL_CTRL_SET_GROUPS,glistlen,(char *)(glist)) # define SSL_set1_groups_list(s, str) \ @@ -1520,8 +1528,12 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) (char *)(clist)) # define SSL_set1_client_certificate_types(s, clist, clistlen) \ SSL_ctrl(s,SSL_CTRL_SET_CLIENT_CERT_TYPES,clistlen,(char *)(clist)) +# define SSL_get0_signature_name(s, str) \ + SSL_ctrl(s,SSL_CTRL_GET_SIGNATURE_NAME,0,(1?(str):(const char **)NULL)) # define SSL_get_signature_nid(s, pn) \ SSL_ctrl(s,SSL_CTRL_GET_SIGNATURE_NID,0,pn) +# define SSL_get0_peer_signature_name(s, str) \ + SSL_ctrl(s,SSL_CTRL_GET_PEER_SIGNATURE_NAME,0,(1?(str):(const char **)NULL)) # define SSL_get_peer_signature_nid(s, pn) \ SSL_ctrl(s,SSL_CTRL_GET_PEER_SIGNATURE_NID,0,pn) # define SSL_get_peer_tmp_key(s, pk) \ @@ -1549,6 +1561,7 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) # define SSL_get_max_proto_version(s) \ SSL_ctrl(s, SSL_CTRL_GET_MAX_PROTO_VERSION, 0, NULL) +const char *SSL_get0_group_name(SSL *s); const char *SSL_group_to_name(SSL *s, int id); /* Backwards compatibility, original 1.1.0 names */ @@ -1613,7 +1626,11 @@ void SSL_CTX_set1_cert_store(SSL_CTX *, X509_STORE *); __owur int SSL_want(const SSL *s); __owur int SSL_clear(SSL *s); +#ifndef OPENSSL_NO_DEPRECATED_3_4 +OSSL_DEPRECATEDIN_3_4_FOR("not Y2038-safe, replace with SSL_CTX_flush_sessions_ex()") void SSL_CTX_flush_sessions(SSL_CTX *ctx, long tm); +#endif +void SSL_CTX_flush_sessions_ex(SSL_CTX *ctx, time_t tm); __owur const SSL_CIPHER *SSL_get_current_cipher(const SSL *s); __owur const SSL_CIPHER *SSL_get_pending_cipher(const SSL *s); @@ -1725,13 +1742,21 @@ __owur const char *SSL_state_string(const SSL *s); __owur const char *SSL_rstate_string(const SSL *s); __owur const char *SSL_state_string_long(const SSL *s); __owur const char *SSL_rstate_string_long(const SSL *s); + +#ifndef OPENSSL_NO_DEPRECATED_3_4 +OSSL_DEPRECATEDIN_3_4_FOR("not Y2038-safe, replace with SSL_SESSION_get_time_ex()") __owur long SSL_SESSION_get_time(const SSL_SESSION *s); +OSSL_DEPRECATEDIN_3_4_FOR("not Y2038-safe, replace with SSL_SESSION_set_time_ex()") __owur long SSL_SESSION_set_time(SSL_SESSION *s, long t); +#endif __owur long SSL_SESSION_get_timeout(const SSL_SESSION *s); __owur long SSL_SESSION_set_timeout(SSL_SESSION *s, long t); __owur int SSL_SESSION_get_protocol_version(const SSL_SESSION *s); __owur int SSL_SESSION_set_protocol_version(SSL_SESSION *s, int version); +__owur time_t SSL_SESSION_get_time_ex(const SSL_SESSION *s); +__owur time_t SSL_SESSION_set_time_ex(SSL_SESSION *s, time_t t); + __owur const char *SSL_SESSION_get0_hostname(const SSL_SESSION *s); __owur int SSL_SESSION_set1_hostname(SSL_SESSION *s, const char *hostname); void SSL_SESSION_get0_alpn_selected(const SSL_SESSION *s, @@ -1783,6 +1808,9 @@ __owur int SSL_has_matching_session_id(const SSL *s, unsigned int id_len); SSL_SESSION *d2i_SSL_SESSION(SSL_SESSION **a, const unsigned char **pp, long length); +SSL_SESSION *d2i_SSL_SESSION_ex(SSL_SESSION **a, const unsigned char **pp, + long length, OSSL_LIB_CTX *libctx, + const char *propq); # ifdef OPENSSL_X509_H __owur X509 *SSL_get0_peer_certificate(const SSL *s); @@ -1840,6 +1868,8 @@ __owur int SSL_CTX_set_session_id_context(SSL_CTX *ctx, SSL *SSL_new(SSL_CTX *ctx); int SSL_up_ref(SSL *s); int SSL_is_dtls(const SSL *s); +int SSL_is_tls(const SSL *s); +int SSL_is_quic(const SSL *s); __owur int SSL_set_session_id_context(SSL *ssl, const unsigned char *sid_ctx, unsigned int sid_ctx_len); @@ -1848,8 +1878,8 @@ __owur int SSL_set_purpose(SSL *ssl, int purpose); __owur int SSL_CTX_set_trust(SSL_CTX *ctx, int trust); __owur int SSL_set_trust(SSL *ssl, int trust); -__owur int SSL_set1_host(SSL *s, const char *hostname); -__owur int SSL_add1_host(SSL *s, const char *hostname); +__owur int SSL_set1_host(SSL *s, const char *host); +__owur int SSL_add1_host(SSL *s, const char *host); __owur const char *SSL_get0_peername(SSL *s); void SSL_set_hostflags(SSL *s, unsigned int flags); @@ -1924,6 +1954,11 @@ OSSL_DEPRECATEDIN_3_0 __owur char *SSL_get_srp_userinfo(SSL *s); typedef int (*SSL_client_hello_cb_fn) (SSL *s, int *al, void *arg); void SSL_CTX_set_client_hello_cb(SSL_CTX *c, SSL_client_hello_cb_fn cb, void *arg); +typedef int (*SSL_new_pending_conn_cb_fn) (SSL_CTX *ctx, SSL *new_ssl, + void *arg); +void SSL_CTX_set_new_pending_conn_cb(SSL_CTX *c, SSL_new_pending_conn_cb_fn cb, + void *arg); + int SSL_client_hello_isv2(SSL *s); unsigned int SSL_client_hello_get0_legacy_version(SSL *s); size_t SSL_client_hello_get0_random(SSL *s, const unsigned char **out); @@ -1932,6 +1967,8 @@ size_t SSL_client_hello_get0_ciphers(SSL *s, const unsigned char **out); size_t SSL_client_hello_get0_compression_methods(SSL *s, const unsigned char **out); int SSL_client_hello_get1_extensions_present(SSL *s, int **out, size_t *outlen); +int SSL_client_hello_get_extension_order(SSL *s, uint16_t *exts, + size_t *num_exts); int SSL_client_hello_get0_ext(SSL *s, unsigned int type, const unsigned char **out, size_t *outlen); @@ -1978,6 +2015,12 @@ long SSL_callback_ctrl(SSL *, int, void (*)(void)); long SSL_CTX_ctrl(SSL_CTX *ctx, int cmd, long larg, void *parg); long SSL_CTX_callback_ctrl(SSL_CTX *, int, void (*)(void)); +# define SSL_WRITE_FLAG_CONCLUDE (1U << 0) + +__owur int SSL_write_ex2(SSL *s, const void *buf, size_t num, + uint64_t flags, + size_t *written); + # define SSL_EARLY_DATA_NOT_SENT 0 # define SSL_EARLY_DATA_REJECTED 1 # define SSL_EARLY_DATA_ACCEPTED 2 @@ -1986,6 +2029,7 @@ __owur int SSL_get_early_data_status(const SSL *s); __owur int SSL_get_error(const SSL *s, int ret_code); __owur const char *SSL_get_version(const SSL *s); +__owur int SSL_get_handshake_rtt(const SSL *s, uint64_t *rtt); /* This sets the 'default' SSL version that SSL_new() will create */ # ifndef OPENSSL_NO_DEPRECATED_3_0 @@ -2281,6 +2325,8 @@ void SSL_CTX_set_record_padding_callback(SSL_CTX *ctx, void SSL_CTX_set_record_padding_callback_arg(SSL_CTX *ctx, void *arg); void *SSL_CTX_get_record_padding_callback_arg(const SSL_CTX *ctx); int SSL_CTX_set_block_padding(SSL_CTX *ctx, size_t block_size); +int SSL_CTX_set_block_padding_ex(SSL_CTX *ctx, size_t app_block_size, + size_t hs_block_size); int SSL_set_record_padding_callback(SSL *ssl, size_t (*cb) (SSL *ssl, int type, @@ -2288,12 +2334,255 @@ int SSL_set_record_padding_callback(SSL *ssl, void SSL_set_record_padding_callback_arg(SSL *ssl, void *arg); void *SSL_get_record_padding_callback_arg(const SSL *ssl); int SSL_set_block_padding(SSL *ssl, size_t block_size); - +int SSL_set_block_padding_ex(SSL *ssl, size_t app_block_size, + size_t hs_block_size); int SSL_set_num_tickets(SSL *s, size_t num_tickets); size_t SSL_get_num_tickets(const SSL *s); int SSL_CTX_set_num_tickets(SSL_CTX *ctx, size_t num_tickets); size_t SSL_CTX_get_num_tickets(const SSL_CTX *ctx); +/* QUIC support */ +int SSL_handle_events(SSL *s); +__owur int SSL_get_event_timeout(SSL *s, struct timeval *tv, int *is_infinite); +__owur int SSL_get_rpoll_descriptor(SSL *s, BIO_POLL_DESCRIPTOR *desc); +__owur int SSL_get_wpoll_descriptor(SSL *s, BIO_POLL_DESCRIPTOR *desc); +__owur int SSL_net_read_desired(SSL *s); +__owur int SSL_net_write_desired(SSL *s); +__owur int SSL_set_blocking_mode(SSL *s, int blocking); +__owur int SSL_get_blocking_mode(SSL *s); +__owur int SSL_set1_initial_peer_addr(SSL *s, const BIO_ADDR *peer_addr); +__owur SSL *SSL_get0_connection(SSL *s); +__owur int SSL_is_connection(SSL *s); + +__owur int SSL_is_listener(SSL *ssl); +__owur SSL *SSL_get0_listener(SSL *s); +#define SSL_LISTENER_FLAG_NO_VALIDATE (1UL << 1) +__owur SSL *SSL_new_listener(SSL_CTX *ctx, uint64_t flags); +__owur SSL *SSL_new_listener_from(SSL *ssl, uint64_t flags); +__owur SSL *SSL_new_from_listener(SSL *ssl, uint64_t flags); +#define SSL_ACCEPT_CONNECTION_NO_BLOCK (1UL << 0) +__owur SSL *SSL_accept_connection(SSL *ssl, uint64_t flags); +__owur size_t SSL_get_accept_connection_queue_len(SSL *ssl); +__owur int SSL_listen(SSL *ssl); + +__owur int SSL_is_domain(SSL *s); +__owur SSL *SSL_get0_domain(SSL *s); +__owur SSL *SSL_new_domain(SSL_CTX *ctx, uint64_t flags); + +#define SSL_DOMAIN_FLAG_SINGLE_THREAD (1U << 0) +#define SSL_DOMAIN_FLAG_MULTI_THREAD (1U << 1) +#define SSL_DOMAIN_FLAG_THREAD_ASSISTED (1U << 2) +#define SSL_DOMAIN_FLAG_BLOCKING (1U << 3) +#define SSL_DOMAIN_FLAG_LEGACY_BLOCKING (1U << 4) + +__owur int SSL_CTX_set_domain_flags(SSL_CTX *ctx, uint64_t domain_flags); +__owur int SSL_CTX_get_domain_flags(const SSL_CTX *ctx, uint64_t *domain_flags); +__owur int SSL_get_domain_flags(const SSL *ssl, uint64_t *domain_flags); + +#define SSL_STREAM_TYPE_NONE 0 +#define SSL_STREAM_TYPE_READ (1U << 0) +#define SSL_STREAM_TYPE_WRITE (1U << 1) +#define SSL_STREAM_TYPE_BIDI (SSL_STREAM_TYPE_READ | SSL_STREAM_TYPE_WRITE) +__owur int SSL_get_stream_type(SSL *s); + +__owur uint64_t SSL_get_stream_id(SSL *s); +__owur int SSL_is_stream_local(SSL *s); + +#define SSL_DEFAULT_STREAM_MODE_NONE 0 +#define SSL_DEFAULT_STREAM_MODE_AUTO_BIDI 1 +#define SSL_DEFAULT_STREAM_MODE_AUTO_UNI 2 +__owur int SSL_set_default_stream_mode(SSL *s, uint32_t mode); + +#define SSL_STREAM_FLAG_UNI (1U << 0) +#define SSL_STREAM_FLAG_NO_BLOCK (1U << 1) +#define SSL_STREAM_FLAG_ADVANCE (1U << 2) +__owur SSL *SSL_new_stream(SSL *s, uint64_t flags); + +#define SSL_INCOMING_STREAM_POLICY_AUTO 0 +#define SSL_INCOMING_STREAM_POLICY_ACCEPT 1 +#define SSL_INCOMING_STREAM_POLICY_REJECT 2 +__owur int SSL_set_incoming_stream_policy(SSL *s, int policy, uint64_t aec); + +#define SSL_ACCEPT_STREAM_NO_BLOCK (1U << 0) +__owur SSL *SSL_accept_stream(SSL *s, uint64_t flags); +__owur size_t SSL_get_accept_stream_queue_len(SSL *s); + +# ifndef OPENSSL_NO_QUIC +__owur int SSL_inject_net_dgram(SSL *s, const unsigned char *buf, + size_t buf_len, + const BIO_ADDR *peer, + const BIO_ADDR *local); +# endif + +typedef struct ssl_shutdown_ex_args_st { + uint64_t quic_error_code; + const char *quic_reason; +} SSL_SHUTDOWN_EX_ARGS; + +#define SSL_SHUTDOWN_FLAG_RAPID (1U << 0) +#define SSL_SHUTDOWN_FLAG_NO_STREAM_FLUSH (1U << 1) +#define SSL_SHUTDOWN_FLAG_NO_BLOCK (1U << 2) +#define SSL_SHUTDOWN_FLAG_WAIT_PEER (1U << 3) + +__owur int SSL_shutdown_ex(SSL *ssl, uint64_t flags, + const SSL_SHUTDOWN_EX_ARGS *args, + size_t args_len); + +__owur int SSL_stream_conclude(SSL *ssl, uint64_t flags); + +typedef struct ssl_stream_reset_args_st { + uint64_t quic_error_code; +} SSL_STREAM_RESET_ARGS; + +__owur int SSL_stream_reset(SSL *ssl, + const SSL_STREAM_RESET_ARGS *args, + size_t args_len); + +#define SSL_STREAM_STATE_NONE 0 +#define SSL_STREAM_STATE_OK 1 +#define SSL_STREAM_STATE_WRONG_DIR 2 +#define SSL_STREAM_STATE_FINISHED 3 +#define SSL_STREAM_STATE_RESET_LOCAL 4 +#define SSL_STREAM_STATE_RESET_REMOTE 5 +#define SSL_STREAM_STATE_CONN_CLOSED 6 +__owur int SSL_get_stream_read_state(SSL *ssl); +__owur int SSL_get_stream_write_state(SSL *ssl); + +__owur int SSL_get_stream_read_error_code(SSL *ssl, uint64_t *app_error_code); +__owur int SSL_get_stream_write_error_code(SSL *ssl, uint64_t *app_error_code); + +#define SSL_CONN_CLOSE_FLAG_LOCAL (1U << 0) +#define SSL_CONN_CLOSE_FLAG_TRANSPORT (1U << 1) + +typedef struct ssl_conn_close_info_st { + uint64_t error_code, frame_type; + const char *reason; + size_t reason_len; + uint32_t flags; +} SSL_CONN_CLOSE_INFO; + +__owur int SSL_get_conn_close_info(SSL *ssl, + SSL_CONN_CLOSE_INFO *info, + size_t info_len); + +# define SSL_VALUE_CLASS_GENERIC 0 +# define SSL_VALUE_CLASS_FEATURE_REQUEST 1 +# define SSL_VALUE_CLASS_FEATURE_PEER_REQUEST 2 +# define SSL_VALUE_CLASS_FEATURE_NEGOTIATED 3 + +# define SSL_VALUE_NONE 0 +# define SSL_VALUE_QUIC_STREAM_BIDI_LOCAL_AVAIL 1 +# define SSL_VALUE_QUIC_STREAM_BIDI_REMOTE_AVAIL 2 +# define SSL_VALUE_QUIC_STREAM_UNI_LOCAL_AVAIL 3 +# define SSL_VALUE_QUIC_STREAM_UNI_REMOTE_AVAIL 4 +# define SSL_VALUE_QUIC_IDLE_TIMEOUT 5 +# define SSL_VALUE_EVENT_HANDLING_MODE 6 +# define SSL_VALUE_STREAM_WRITE_BUF_SIZE 7 +# define SSL_VALUE_STREAM_WRITE_BUF_USED 8 +# define SSL_VALUE_STREAM_WRITE_BUF_AVAIL 9 + +# define SSL_VALUE_EVENT_HANDLING_MODE_INHERIT 0 +# define SSL_VALUE_EVENT_HANDLING_MODE_IMPLICIT 1 +# define SSL_VALUE_EVENT_HANDLING_MODE_EXPLICIT 2 + +int SSL_get_value_uint(SSL *s, uint32_t class_, uint32_t id, uint64_t *v); +int SSL_set_value_uint(SSL *s, uint32_t class_, uint32_t id, uint64_t v); + +# define SSL_get_generic_value_uint(ssl, id, v) \ + SSL_get_value_uint((ssl), SSL_VALUE_CLASS_GENERIC, (id), (v)) +# define SSL_set_generic_value_uint(ssl, id, v) \ + SSL_set_value_uint((ssl), SSL_VALUE_CLASS_GENERIC, (id), (v)) +# define SSL_get_feature_request_uint(ssl, id, v) \ + SSL_get_value_uint((ssl), SSL_VALUE_CLASS_FEATURE_REQUEST, (id), (v)) +# define SSL_set_feature_request_uint(ssl, id, v) \ + SSL_set_value_uint((ssl), SSL_VALUE_CLASS_FEATURE_REQUEST, (id), (v)) +# define SSL_get_feature_peer_request_uint(ssl, id, v) \ + SSL_get_value_uint((ssl), SSL_VALUE_CLASS_FEATURE_PEER_REQUEST, (id), (v)) +# define SSL_get_feature_negotiated_uint(ssl, id, v) \ + SSL_get_value_uint((ssl), SSL_VALUE_CLASS_FEATURE_NEGOTIATED, (id), (v)) + +# define SSL_get_quic_stream_bidi_local_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_QUIC_STREAM_BIDI_LOCAL_AVAIL, \ + (value)) +# define SSL_get_quic_stream_bidi_remote_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_QUIC_STREAM_BIDI_REMOTE_AVAIL, \ + (value)) +# define SSL_get_quic_stream_uni_local_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_QUIC_STREAM_UNI_LOCAL_AVAIL, \ + (value)) +# define SSL_get_quic_stream_uni_remote_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_QUIC_STREAM_UNI_REMOTE_AVAIL, \ + (value)) + +# define SSL_get_event_handling_mode(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_EVENT_HANDLING_MODE, \ + (value)) +# define SSL_set_event_handling_mode(ssl, value) \ + SSL_set_generic_value_uint((ssl), SSL_VALUE_EVENT_HANDLING_MODE, \ + (value)) + +# define SSL_get_stream_write_buf_size(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_STREAM_WRITE_BUF_SIZE, \ + (value)) +# define SSL_get_stream_write_buf_used(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_STREAM_WRITE_BUF_USED, \ + (value)) +# define SSL_get_stream_write_buf_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_STREAM_WRITE_BUF_AVAIL, \ + (value)) + +# define SSL_POLL_EVENT_NONE 0 + +# define SSL_POLL_EVENT_F (1U << 0) /* F (Failure) */ +# define SSL_POLL_EVENT_EL (1U << 1) /* EL (Exception on Listener) */ +# define SSL_POLL_EVENT_EC (1U << 2) /* EC (Exception on Conn) */ +# define SSL_POLL_EVENT_ECD (1U << 3) /* ECD (Exception on Conn Drained) */ +# define SSL_POLL_EVENT_ER (1U << 4) /* ER (Exception on Read) */ +# define SSL_POLL_EVENT_EW (1U << 5) /* EW (Exception on Write) */ +# define SSL_POLL_EVENT_R (1U << 6) /* R (Readable) */ +# define SSL_POLL_EVENT_W (1U << 7) /* W (Writable) */ +# define SSL_POLL_EVENT_IC (1U << 8) /* IC (Incoming Connection) */ +# define SSL_POLL_EVENT_ISB (1U << 9) /* ISB (Incoming Stream: Bidi) */ +# define SSL_POLL_EVENT_ISU (1U << 10) /* ISU (Incoming Stream: Uni) */ +# define SSL_POLL_EVENT_OSB (1U << 11) /* OSB (Outgoing Stream: Bidi) */ +# define SSL_POLL_EVENT_OSU (1U << 12) /* OSU (Outgoing Stream: Uni) */ + +# define SSL_POLL_EVENT_RW (SSL_POLL_EVENT_R | SSL_POLL_EVENT_W) +# define SSL_POLL_EVENT_RE (SSL_POLL_EVENT_R | SSL_POLL_EVENT_ER) +# define SSL_POLL_EVENT_WE (SSL_POLL_EVENT_W | SSL_POLL_EVENT_EW) +# define SSL_POLL_EVENT_RWE (SSL_POLL_EVENT_RE | SSL_POLL_EVENT_WE) +# define SSL_POLL_EVENT_E (SSL_POLL_EVENT_EL | SSL_POLL_EVENT_EC \ + | SSL_POLL_EVENT_ER | SSL_POLL_EVENT_EW) +# define SSL_POLL_EVENT_IS (SSL_POLL_EVENT_ISB | SSL_POLL_EVENT_ISU) +# define SSL_POLL_EVENT_ISE (SSL_POLL_EVENT_IS | SSL_POLL_EVENT_EC) +# define SSL_POLL_EVENT_I (SSL_POLL_EVENT_IS | SSL_POLL_EVENT_IC) +# define SSL_POLL_EVENT_OS (SSL_POLL_EVENT_OSB | SSL_POLL_EVENT_OSU) +# define SSL_POLL_EVENT_OSE (SSL_POLL_EVENT_OS | SSL_POLL_EVENT_EC) + +typedef struct ssl_poll_item_st { + BIO_POLL_DESCRIPTOR desc; + uint64_t events, revents; +} SSL_POLL_ITEM; + +# define SSL_POLL_FLAG_NO_HANDLE_EVENTS (1U << 0) + +__owur int SSL_poll(SSL_POLL_ITEM *items, + size_t num_items, + size_t stride, + const struct timeval *timeout, + uint64_t flags, + size_t *result_count); + +static ossl_inline ossl_unused BIO_POLL_DESCRIPTOR +SSL_as_poll_descriptor(SSL *s) +{ + BIO_POLL_DESCRIPTOR d; + + d.type = BIO_POLL_DESCRIPTOR_TYPE_SSL; + d.value.ssl = s; + return d; +} + # ifndef OPENSSL_NO_DEPRECATED_1_1_0 # define SSL_cache_hit(s) SSL_session_reused(s) # endif @@ -2593,6 +2882,51 @@ void SSL_set_allow_early_data_cb(SSL *s, const char *OSSL_default_cipher_list(void); const char *OSSL_default_ciphersuites(void); +/* RFC8879 Certificate compression APIs */ + +int SSL_CTX_compress_certs(SSL_CTX *ctx, int alg); +int SSL_compress_certs(SSL *ssl, int alg); + +int SSL_CTX_set1_cert_comp_preference(SSL_CTX *ctx, int *algs, size_t len); +int SSL_set1_cert_comp_preference(SSL *ssl, int *algs, size_t len); + +int SSL_CTX_set1_compressed_cert(SSL_CTX *ctx, int algorithm, unsigned char *comp_data, + size_t comp_length, size_t orig_length); +int SSL_set1_compressed_cert(SSL *ssl, int algorithm, unsigned char *comp_data, + size_t comp_length, size_t orig_length); +size_t SSL_CTX_get1_compressed_cert(SSL_CTX *ctx, int alg, unsigned char **data, size_t *orig_len); +size_t SSL_get1_compressed_cert(SSL *ssl, int alg, unsigned char **data, size_t *orig_len); + +__owur int SSL_add_expected_rpk(SSL *s, EVP_PKEY *rpk); +__owur EVP_PKEY *SSL_get0_peer_rpk(const SSL *s); +__owur EVP_PKEY *SSL_SESSION_get0_peer_rpk(SSL_SESSION *s); +__owur int SSL_get_negotiated_client_cert_type(const SSL *s); +__owur int SSL_get_negotiated_server_cert_type(const SSL *s); + +__owur int SSL_set1_client_cert_type(SSL *s, const unsigned char *val, size_t len); +__owur int SSL_set1_server_cert_type(SSL *s, const unsigned char *val, size_t len); +__owur int SSL_CTX_set1_client_cert_type(SSL_CTX *ctx, const unsigned char *val, size_t len); +__owur int SSL_CTX_set1_server_cert_type(SSL_CTX *ctx, const unsigned char *val, size_t len); +__owur int SSL_get0_client_cert_type(const SSL *s, unsigned char **t, size_t *len); +__owur int SSL_get0_server_cert_type(const SSL *s, unsigned char **t, size_t *len); +__owur int SSL_CTX_get0_client_cert_type(const SSL_CTX *ctx, unsigned char **t, size_t *len); +__owur int SSL_CTX_get0_server_cert_type(const SSL_CTX *s, unsigned char **t, size_t *len); + +/* + * Protection level. For <= TLSv1.2 only "NONE" and "APPLICATION" are used. + */ +# define OSSL_RECORD_PROTECTION_LEVEL_NONE 0 +# define OSSL_RECORD_PROTECTION_LEVEL_EARLY 1 +# define OSSL_RECORD_PROTECTION_LEVEL_HANDSHAKE 2 +# define OSSL_RECORD_PROTECTION_LEVEL_APPLICATION 3 + +int SSL_set_quic_tls_cbs(SSL *s, const OSSL_DISPATCH *qtdis, void *arg); +int SSL_set_quic_tls_transport_params(SSL *s, + const unsigned char *params, + size_t params_len); + +int SSL_set_quic_tls_early_data_enabled(SSL *s, int enabled); + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/VC-WIN32/asm/include/openssl/x509.h b/deps/openssl/config/archs/VC-WIN32/asm/include/openssl/x509.h index 0f2353c821aa9b..5e9c548c48d65b 100644 --- a/deps/openssl/config/archs/VC-WIN32/asm/include/openssl/x509.h +++ b/deps/openssl/config/archs/VC-WIN32/asm/include/openssl/x509.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by makefile from include/openssl/x509.h.in * - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2024 The OpenSSL Project Authors. All Rights Reserved. * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved * * Licensed under the Apache License 2.0 (the "License"). You may not use @@ -40,6 +40,9 @@ # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -162,16 +165,24 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_CRL, X509_CRL, X509_CRL) # define X509_FILETYPE_ASN1 2 # define X509_FILETYPE_DEFAULT 3 -# define X509v3_KU_DIGITAL_SIGNATURE 0x0080 -# define X509v3_KU_NON_REPUDIATION 0x0040 -# define X509v3_KU_KEY_ENCIPHERMENT 0x0020 -# define X509v3_KU_DATA_ENCIPHERMENT 0x0010 -# define X509v3_KU_KEY_AGREEMENT 0x0008 -# define X509v3_KU_KEY_CERT_SIGN 0x0004 -# define X509v3_KU_CRL_SIGN 0x0002 -# define X509v3_KU_ENCIPHER_ONLY 0x0001 -# define X509v3_KU_DECIPHER_ONLY 0x8000 -# define X509v3_KU_UNDEF 0xffff +/*- + * : + * The KeyUsage BITSTRING is treated as a little-endian integer, hence bit `0` + * is 0x80, while bit `7` is 0x01 (the LSB of the integer value), bit `8` is + * then the MSB of the second octet, or 0x8000. + */ +# define X509v3_KU_DIGITAL_SIGNATURE 0x0080 /* (0) */ +# define X509v3_KU_NON_REPUDIATION 0x0040 /* (1) */ +# define X509v3_KU_KEY_ENCIPHERMENT 0x0020 /* (2) */ +# define X509v3_KU_DATA_ENCIPHERMENT 0x0010 /* (3) */ +# define X509v3_KU_KEY_AGREEMENT 0x0008 /* (4) */ +# define X509v3_KU_KEY_CERT_SIGN 0x0004 /* (5) */ +# define X509v3_KU_CRL_SIGN 0x0002 /* (6) */ +# define X509v3_KU_ENCIPHER_ONLY 0x0001 /* (7) */ +# define X509v3_KU_DECIPHER_ONLY 0x8000 /* (8) */ +# ifndef OPENSSL_NO_DEPRECATED_3_4 +# define X509v3_KU_UNDEF 0xffff /* vestigial, not used */ +# endif struct X509_algor_st { ASN1_OBJECT *algorithm; @@ -462,7 +473,12 @@ typedef struct PBKDF2PARAM_st { X509_ALGOR *prf; } PBKDF2PARAM; -#ifndef OPENSSL_NO_SCRYPT +typedef struct { + X509_ALGOR *keyDerivationFunc; + X509_ALGOR *messageAuthScheme; +} PBMAC1PARAM; + +# ifndef OPENSSL_NO_SCRYPT typedef struct SCRYPT_PARAMS_st { ASN1_OCTET_STRING *salt; ASN1_INTEGER *costParameter; @@ -470,7 +486,7 @@ typedef struct SCRYPT_PARAMS_st { ASN1_INTEGER *parallelizationParameter; ASN1_INTEGER *keyLength; } SCRYPT_PARAMS; -#endif +# endif #ifdef __cplusplus } @@ -603,6 +619,8 @@ EVP_PKEY *d2i_PrivateKey_ex_fp(FILE *fp, EVP_PKEY **a, OSSL_LIB_CTX *libctx, const char *propq); EVP_PKEY *d2i_PrivateKey_fp(FILE *fp, EVP_PKEY **a); int i2d_PUBKEY_fp(FILE *fp, const EVP_PKEY *pkey); +EVP_PKEY *d2i_PUBKEY_ex_fp(FILE *fp, EVP_PKEY **a, OSSL_LIB_CTX *libctx, + const char *propq); EVP_PKEY *d2i_PUBKEY_fp(FILE *fp, EVP_PKEY **a); # endif @@ -651,6 +669,8 @@ EVP_PKEY *d2i_PrivateKey_ex_bio(BIO *bp, EVP_PKEY **a, OSSL_LIB_CTX *libctx, const char *propq); EVP_PKEY *d2i_PrivateKey_bio(BIO *bp, EVP_PKEY **a); int i2d_PUBKEY_bio(BIO *bp, const EVP_PKEY *pkey); +EVP_PKEY *d2i_PUBKEY_ex_bio(BIO *bp, EVP_PKEY **a, OSSL_LIB_CTX *libctx, + const char *propq); EVP_PKEY *d2i_PUBKEY_bio(BIO *bp, EVP_PKEY **a); DECLARE_ASN1_DUP_FUNCTION(X509) @@ -884,12 +904,12 @@ int X509_REQ_get_signature_nid(const X509_REQ *req); int i2d_re_X509_REQ_tbs(X509_REQ *req, unsigned char **pp); int X509_REQ_set_pubkey(X509_REQ *x, EVP_PKEY *pkey); EVP_PKEY *X509_REQ_get_pubkey(X509_REQ *req); -EVP_PKEY *X509_REQ_get0_pubkey(X509_REQ *req); +EVP_PKEY *X509_REQ_get0_pubkey(const X509_REQ *req); X509_PUBKEY *X509_REQ_get_X509_PUBKEY(X509_REQ *req); int X509_REQ_extension_nid(int nid); int *X509_REQ_get_extension_nids(void); void X509_REQ_set_extension_nids(int *nids); -STACK_OF(X509_EXTENSION) *X509_REQ_get_extensions(X509_REQ *req); +STACK_OF(X509_EXTENSION) *X509_REQ_get_extensions(OSSL_FUTURE_CONST X509_REQ *req); int X509_REQ_add_extensions_nid(X509_REQ *req, const STACK_OF(X509_EXTENSION) *exts, int nid); int X509_REQ_add_extensions(X509_REQ *req, const STACK_OF(X509_EXTENSION) *ext); @@ -950,13 +970,14 @@ X509_REVOKED_get0_extensions(const X509_REVOKED *r); X509_CRL *X509_CRL_diff(X509_CRL *base, X509_CRL *newer, EVP_PKEY *skey, const EVP_MD *md, unsigned int flags); -int X509_REQ_check_private_key(X509_REQ *x509, EVP_PKEY *pkey); +int X509_REQ_check_private_key(const X509_REQ *req, EVP_PKEY *pkey); -int X509_check_private_key(const X509 *x509, const EVP_PKEY *pkey); +int X509_check_private_key(const X509 *cert, const EVP_PKEY *pkey); int X509_chain_check_suiteb(int *perror_depth, X509 *x, STACK_OF(X509) *chain, unsigned long flags); int X509_CRL_check_suiteb(X509_CRL *crl, EVP_PKEY *pk, unsigned long flags); +void OSSL_STACK_OF_X509_free(STACK_OF(X509) *certs); STACK_OF(X509) *X509_chain_up_ref(STACK_OF(X509) *chain); int X509_issuer_and_serial_cmp(const X509 *a, const X509 *b); @@ -1077,6 +1098,8 @@ X509_EXTENSION *X509v3_get_ext(const STACK_OF(X509_EXTENSION) *x, int loc); X509_EXTENSION *X509v3_delete_ext(STACK_OF(X509_EXTENSION) *x, int loc); STACK_OF(X509_EXTENSION) *X509v3_add_ext(STACK_OF(X509_EXTENSION) **x, X509_EXTENSION *ex, int loc); +STACK_OF(X509_EXTENSION) *X509v3_add_extensions(STACK_OF(X509_EXTENSION) **target, + const STACK_OF(X509_EXTENSION) *exts); int X509_get_ext_count(const X509 *x); int X509_get_ext_by_NID(const X509 *x, int nid, int lastpos); @@ -1198,9 +1221,10 @@ X509 *X509_find_by_subject(STACK_OF(X509) *sk, const X509_NAME *name); DECLARE_ASN1_FUNCTIONS(PBEPARAM) DECLARE_ASN1_FUNCTIONS(PBE2PARAM) DECLARE_ASN1_FUNCTIONS(PBKDF2PARAM) -#ifndef OPENSSL_NO_SCRYPT +DECLARE_ASN1_FUNCTIONS(PBMAC1PARAM) +# ifndef OPENSSL_NO_SCRYPT DECLARE_ASN1_FUNCTIONS(SCRYPT_PARAMS) -#endif +# endif int PKCS5_pbe_set0_algor(X509_ALGOR *algor, int alg, int iter, const unsigned char *salt, int saltlen); @@ -1237,6 +1261,7 @@ X509_ALGOR *PKCS5_pbkdf2_set_ex(int iter, unsigned char *salt, int saltlen, int prf_nid, int keylen, OSSL_LIB_CTX *libctx); +PBKDF2PARAM *PBMAC1_get1_pbkdf2_param(const X509_ALGOR *macalg); /* PKCS#8 utilities */ DECLARE_ASN1_FUNCTIONS(PKCS8_PRIV_KEY_INFO) @@ -1262,6 +1287,8 @@ int PKCS8_pkey_add1_attr_by_OBJ(PKCS8_PRIV_KEY_INFO *p8, const ASN1_OBJECT *obj, int type, const unsigned char *bytes, int len); +void X509_PUBKEY_set0_public_key(X509_PUBKEY *pub, + unsigned char *penc, int penclen); int X509_PUBKEY_set0_param(X509_PUBKEY *pub, ASN1_OBJECT *aobj, int ptype, void *pval, unsigned char *penc, int penclen); diff --git a/deps/openssl/config/archs/VC-WIN32/asm/include/openssl/x509_acert.h b/deps/openssl/config/archs/VC-WIN32/asm/include/openssl/x509_acert.h new file mode 100644 index 00000000000000..efae82c8f6b635 --- /dev/null +++ b/deps/openssl/config/archs/VC-WIN32/asm/include/openssl/x509_acert.h @@ -0,0 +1,294 @@ +/* + * WARNING: do not edit! + * Generated by makefile from include/openssl/x509_acert.h.in + * + * Copyright 2022-2024 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + + +#ifndef OPENSSL_X509_ACERT_H +# define OPENSSL_X509_ACERT_H +# pragma once + +# include +# include +# include + +typedef struct X509_acert_st X509_ACERT; +typedef struct X509_acert_info_st X509_ACERT_INFO; +typedef struct ossl_object_digest_info_st OSSL_OBJECT_DIGEST_INFO; +typedef struct ossl_issuer_serial_st OSSL_ISSUER_SERIAL; +typedef struct X509_acert_issuer_v2form_st X509_ACERT_ISSUER_V2FORM; + +DECLARE_ASN1_FUNCTIONS(X509_ACERT) +DECLARE_ASN1_DUP_FUNCTION(X509_ACERT) +DECLARE_ASN1_ITEM(X509_ACERT_INFO) +DECLARE_ASN1_ALLOC_FUNCTIONS(X509_ACERT_INFO) +DECLARE_ASN1_ALLOC_FUNCTIONS(OSSL_OBJECT_DIGEST_INFO) +DECLARE_ASN1_ALLOC_FUNCTIONS(OSSL_ISSUER_SERIAL) +DECLARE_ASN1_ALLOC_FUNCTIONS(X509_ACERT_ISSUER_V2FORM) + +# ifndef OPENSSL_NO_STDIO +X509_ACERT *d2i_X509_ACERT_fp(FILE *fp, X509_ACERT **acert); +int i2d_X509_ACERT_fp(FILE *fp, const X509_ACERT *acert); +# endif + +DECLARE_PEM_rw(X509_ACERT, X509_ACERT) + +X509_ACERT *d2i_X509_ACERT_bio(BIO *bp, X509_ACERT **acert); +int i2d_X509_ACERT_bio(BIO *bp, const X509_ACERT *acert); + +int X509_ACERT_sign(X509_ACERT *x, EVP_PKEY *pkey, const EVP_MD *md); +int X509_ACERT_sign_ctx(X509_ACERT *x, EVP_MD_CTX *ctx); +int X509_ACERT_verify(X509_ACERT *a, EVP_PKEY *r); + +# define X509_ACERT_VERSION_2 1 + +const GENERAL_NAMES *X509_ACERT_get0_holder_entityName(const X509_ACERT *x); +const OSSL_ISSUER_SERIAL *X509_ACERT_get0_holder_baseCertId(const X509_ACERT *x); +const OSSL_OBJECT_DIGEST_INFO * X509_ACERT_get0_holder_digest(const X509_ACERT *x); +const X509_NAME *X509_ACERT_get0_issuerName(const X509_ACERT *x); +long X509_ACERT_get_version(const X509_ACERT *x); +void X509_ACERT_get0_signature(const X509_ACERT *x, + const ASN1_BIT_STRING **psig, + const X509_ALGOR **palg); +int X509_ACERT_get_signature_nid(const X509_ACERT *x); +const X509_ALGOR *X509_ACERT_get0_info_sigalg(const X509_ACERT *x); +const ASN1_INTEGER *X509_ACERT_get0_serialNumber(const X509_ACERT *x); +const ASN1_TIME *X509_ACERT_get0_notBefore(const X509_ACERT *x); +const ASN1_TIME *X509_ACERT_get0_notAfter(const X509_ACERT *x); +const ASN1_BIT_STRING *X509_ACERT_get0_issuerUID(const X509_ACERT *x); + +int X509_ACERT_print(BIO *bp, X509_ACERT *x); +int X509_ACERT_print_ex(BIO *bp, X509_ACERT *x, unsigned long nmflags, + unsigned long cflag); + +int X509_ACERT_get_attr_count(const X509_ACERT *x); +int X509_ACERT_get_attr_by_NID(const X509_ACERT *x, int nid, int lastpos); +int X509_ACERT_get_attr_by_OBJ(const X509_ACERT *x, const ASN1_OBJECT *obj, + int lastpos); +X509_ATTRIBUTE *X509_ACERT_get_attr(const X509_ACERT *x, int loc); +X509_ATTRIBUTE *X509_ACERT_delete_attr(X509_ACERT *x, int loc); + +void *X509_ACERT_get_ext_d2i(const X509_ACERT *x, int nid, int *crit, int *idx); +int X509_ACERT_add1_ext_i2d(X509_ACERT *x, int nid, void *value, int crit, + unsigned long flags); +const STACK_OF(X509_EXTENSION) *X509_ACERT_get0_extensions(const X509_ACERT *x); + +# define OSSL_OBJECT_DIGEST_INFO_PUBLIC_KEY 0 +# define OSSL_OBJECT_DIGEST_INFO_PUBLIC_KEY_CERT 1 +# define OSSL_OBJECT_DIGEST_INFO_OTHER 2 /* must not be used in RFC 5755 profile */ +int X509_ACERT_set_version(X509_ACERT *x, long version); +void X509_ACERT_set0_holder_entityName(X509_ACERT *x, GENERAL_NAMES *name); +void X509_ACERT_set0_holder_baseCertId(X509_ACERT *x, OSSL_ISSUER_SERIAL *isss); +void X509_ACERT_set0_holder_digest(X509_ACERT *x, + OSSL_OBJECT_DIGEST_INFO *dinfo); + +int X509_ACERT_add1_attr(X509_ACERT *x, X509_ATTRIBUTE *attr); +int X509_ACERT_add1_attr_by_OBJ(X509_ACERT *x, const ASN1_OBJECT *obj, + int type, const void *bytes, int len); +int X509_ACERT_add1_attr_by_NID(X509_ACERT *x, int nid, int type, + const void *bytes, int len); +int X509_ACERT_add1_attr_by_txt(X509_ACERT *x, const char *attrname, int type, + const unsigned char *bytes, int len); +int X509_ACERT_add_attr_nconf(CONF *conf, const char *section, + X509_ACERT *acert); + +int X509_ACERT_set1_issuerName(X509_ACERT *x, const X509_NAME *name); +int X509_ACERT_set1_serialNumber(X509_ACERT *x, const ASN1_INTEGER *serial); +int X509_ACERT_set1_notBefore(X509_ACERT *x, const ASN1_GENERALIZEDTIME *time); +int X509_ACERT_set1_notAfter(X509_ACERT *x, const ASN1_GENERALIZEDTIME *time); + +void OSSL_OBJECT_DIGEST_INFO_get0_digest(const OSSL_OBJECT_DIGEST_INFO *o, + int *digestedObjectType, + const X509_ALGOR **digestAlgorithm, + const ASN1_BIT_STRING **digest); + +int OSSL_OBJECT_DIGEST_INFO_set1_digest(OSSL_OBJECT_DIGEST_INFO *o, + int digestedObjectType, + X509_ALGOR *digestAlgorithm, + ASN1_BIT_STRING *digest); + +const X509_NAME *OSSL_ISSUER_SERIAL_get0_issuer(const OSSL_ISSUER_SERIAL *isss); +const ASN1_INTEGER *OSSL_ISSUER_SERIAL_get0_serial(const OSSL_ISSUER_SERIAL *isss); +const ASN1_BIT_STRING *OSSL_ISSUER_SERIAL_get0_issuerUID(const OSSL_ISSUER_SERIAL *isss); + +int OSSL_ISSUER_SERIAL_set1_issuer(OSSL_ISSUER_SERIAL *isss, + const X509_NAME *issuer); +int OSSL_ISSUER_SERIAL_set1_serial(OSSL_ISSUER_SERIAL *isss, + const ASN1_INTEGER *serial); +int OSSL_ISSUER_SERIAL_set1_issuerUID(OSSL_ISSUER_SERIAL *isss, + const ASN1_BIT_STRING *uid); + +# define OSSL_IETFAS_OCTETS 0 +# define OSSL_IETFAS_OID 1 +# define OSSL_IETFAS_STRING 2 + +typedef struct OSSL_IETF_ATTR_SYNTAX_VALUE_st OSSL_IETF_ATTR_SYNTAX_VALUE; +typedef struct OSSL_IETF_ATTR_SYNTAX_st OSSL_IETF_ATTR_SYNTAX; +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_IETF_ATTR_SYNTAX_VALUE, OSSL_IETF_ATTR_SYNTAX_VALUE, OSSL_IETF_ATTR_SYNTAX_VALUE) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_value(sk, idx) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_value(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), (idx))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_new(cmp) ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_new(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_compfunc_type(cmp))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_new_null() ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_new_null()) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_new_reserve(cmp, n) ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_compfunc_type(cmp), (n))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), (n)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_free(sk) OPENSSL_sk_free(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_delete(sk, i) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_delete(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), (i))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_delete_ptr(sk, ptr) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_pop(sk) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_pop(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_shift(sk) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_shift(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk),ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_freefunc_type(freefunc)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr), (idx)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_set(sk, idx, ptr) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_set(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), (idx), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr), pnum) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_dup(sk) ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_dup(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_copyfunc_type(copyfunc), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_freefunc_type(freefunc))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_set_cmp_func(sk, cmp) ((sk_OSSL_IETF_ATTR_SYNTAX_VALUE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_compfunc_type(cmp))) + + +DECLARE_ASN1_ITEM(OSSL_IETF_ATTR_SYNTAX_VALUE) +DECLARE_ASN1_ALLOC_FUNCTIONS(OSSL_IETF_ATTR_SYNTAX_VALUE) +DECLARE_ASN1_FUNCTIONS(OSSL_IETF_ATTR_SYNTAX) + +const GENERAL_NAMES * +OSSL_IETF_ATTR_SYNTAX_get0_policyAuthority(const OSSL_IETF_ATTR_SYNTAX *a); +void OSSL_IETF_ATTR_SYNTAX_set0_policyAuthority(OSSL_IETF_ATTR_SYNTAX *a, + GENERAL_NAMES *names); + +int OSSL_IETF_ATTR_SYNTAX_get_value_num(const OSSL_IETF_ATTR_SYNTAX *a); +void *OSSL_IETF_ATTR_SYNTAX_get0_value(const OSSL_IETF_ATTR_SYNTAX *a, + int ind, int *type); +int OSSL_IETF_ATTR_SYNTAX_add1_value(OSSL_IETF_ATTR_SYNTAX *a, int type, + void *data); +int OSSL_IETF_ATTR_SYNTAX_print(BIO *bp, OSSL_IETF_ATTR_SYNTAX *a, int indent); + +struct TARGET_CERT_st { + OSSL_ISSUER_SERIAL *targetCertificate; + GENERAL_NAME *targetName; + OSSL_OBJECT_DIGEST_INFO *certDigestInfo; +}; + +typedef struct TARGET_CERT_st OSSL_TARGET_CERT; + +# define OSSL_TGT_TARGET_NAME 0 +# define OSSL_TGT_TARGET_GROUP 1 +# define OSSL_TGT_TARGET_CERT 2 + +typedef struct TARGET_st { + int type; + union { + GENERAL_NAME *targetName; + GENERAL_NAME *targetGroup; + OSSL_TARGET_CERT *targetCert; + } choice; +} OSSL_TARGET; + +typedef STACK_OF(OSSL_TARGET) OSSL_TARGETS; +typedef STACK_OF(OSSL_TARGETS) OSSL_TARGETING_INFORMATION; + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_TARGET, OSSL_TARGET, OSSL_TARGET) +#define sk_OSSL_TARGET_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_value(sk, idx) ((OSSL_TARGET *)OPENSSL_sk_value(ossl_check_const_OSSL_TARGET_sk_type(sk), (idx))) +#define sk_OSSL_TARGET_new(cmp) ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_new(ossl_check_OSSL_TARGET_compfunc_type(cmp))) +#define sk_OSSL_TARGET_new_null() ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_new_null()) +#define sk_OSSL_TARGET_new_reserve(cmp, n) ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_TARGET_compfunc_type(cmp), (n))) +#define sk_OSSL_TARGET_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_TARGET_sk_type(sk), (n)) +#define sk_OSSL_TARGET_free(sk) OPENSSL_sk_free(ossl_check_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_delete(sk, i) ((OSSL_TARGET *)OPENSSL_sk_delete(ossl_check_OSSL_TARGET_sk_type(sk), (i))) +#define sk_OSSL_TARGET_delete_ptr(sk, ptr) ((OSSL_TARGET *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr))) +#define sk_OSSL_TARGET_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr)) +#define sk_OSSL_TARGET_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr)) +#define sk_OSSL_TARGET_pop(sk) ((OSSL_TARGET *)OPENSSL_sk_pop(ossl_check_OSSL_TARGET_sk_type(sk))) +#define sk_OSSL_TARGET_shift(sk) ((OSSL_TARGET *)OPENSSL_sk_shift(ossl_check_OSSL_TARGET_sk_type(sk))) +#define sk_OSSL_TARGET_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_TARGET_sk_type(sk),ossl_check_OSSL_TARGET_freefunc_type(freefunc)) +#define sk_OSSL_TARGET_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr), (idx)) +#define sk_OSSL_TARGET_set(sk, idx, ptr) ((OSSL_TARGET *)OPENSSL_sk_set(ossl_check_OSSL_TARGET_sk_type(sk), (idx), ossl_check_OSSL_TARGET_type(ptr))) +#define sk_OSSL_TARGET_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr)) +#define sk_OSSL_TARGET_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr)) +#define sk_OSSL_TARGET_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr), pnum) +#define sk_OSSL_TARGET_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_dup(sk) ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_dup(ossl_check_const_OSSL_TARGET_sk_type(sk))) +#define sk_OSSL_TARGET_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_copyfunc_type(copyfunc), ossl_check_OSSL_TARGET_freefunc_type(freefunc))) +#define sk_OSSL_TARGET_set_cmp_func(sk, cmp) ((sk_OSSL_TARGET_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_compfunc_type(cmp))) + + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_TARGETS, OSSL_TARGETS, OSSL_TARGETS) +#define sk_OSSL_TARGETS_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_value(sk, idx) ((OSSL_TARGETS *)OPENSSL_sk_value(ossl_check_const_OSSL_TARGETS_sk_type(sk), (idx))) +#define sk_OSSL_TARGETS_new(cmp) ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_new(ossl_check_OSSL_TARGETS_compfunc_type(cmp))) +#define sk_OSSL_TARGETS_new_null() ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_new_null()) +#define sk_OSSL_TARGETS_new_reserve(cmp, n) ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_TARGETS_compfunc_type(cmp), (n))) +#define sk_OSSL_TARGETS_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_TARGETS_sk_type(sk), (n)) +#define sk_OSSL_TARGETS_free(sk) OPENSSL_sk_free(ossl_check_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_delete(sk, i) ((OSSL_TARGETS *)OPENSSL_sk_delete(ossl_check_OSSL_TARGETS_sk_type(sk), (i))) +#define sk_OSSL_TARGETS_delete_ptr(sk, ptr) ((OSSL_TARGETS *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr))) +#define sk_OSSL_TARGETS_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr)) +#define sk_OSSL_TARGETS_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr)) +#define sk_OSSL_TARGETS_pop(sk) ((OSSL_TARGETS *)OPENSSL_sk_pop(ossl_check_OSSL_TARGETS_sk_type(sk))) +#define sk_OSSL_TARGETS_shift(sk) ((OSSL_TARGETS *)OPENSSL_sk_shift(ossl_check_OSSL_TARGETS_sk_type(sk))) +#define sk_OSSL_TARGETS_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_TARGETS_sk_type(sk),ossl_check_OSSL_TARGETS_freefunc_type(freefunc)) +#define sk_OSSL_TARGETS_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr), (idx)) +#define sk_OSSL_TARGETS_set(sk, idx, ptr) ((OSSL_TARGETS *)OPENSSL_sk_set(ossl_check_OSSL_TARGETS_sk_type(sk), (idx), ossl_check_OSSL_TARGETS_type(ptr))) +#define sk_OSSL_TARGETS_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr)) +#define sk_OSSL_TARGETS_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr)) +#define sk_OSSL_TARGETS_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr), pnum) +#define sk_OSSL_TARGETS_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_dup(sk) ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_dup(ossl_check_const_OSSL_TARGETS_sk_type(sk))) +#define sk_OSSL_TARGETS_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_copyfunc_type(copyfunc), ossl_check_OSSL_TARGETS_freefunc_type(freefunc))) +#define sk_OSSL_TARGETS_set_cmp_func(sk, cmp) ((sk_OSSL_TARGETS_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_compfunc_type(cmp))) + + +DECLARE_ASN1_FUNCTIONS(OSSL_TARGET) +DECLARE_ASN1_FUNCTIONS(OSSL_TARGETS) +DECLARE_ASN1_FUNCTIONS(OSSL_TARGETING_INFORMATION) + +typedef STACK_OF(OSSL_ISSUER_SERIAL) OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX; +DECLARE_ASN1_FUNCTIONS(OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ISSUER_SERIAL, OSSL_ISSUER_SERIAL, OSSL_ISSUER_SERIAL) +#define sk_OSSL_ISSUER_SERIAL_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_value(sk, idx) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_value(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk), (idx))) +#define sk_OSSL_ISSUER_SERIAL_new(cmp) ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_new(ossl_check_OSSL_ISSUER_SERIAL_compfunc_type(cmp))) +#define sk_OSSL_ISSUER_SERIAL_new_null() ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ISSUER_SERIAL_new_reserve(cmp, n) ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ISSUER_SERIAL_compfunc_type(cmp), (n))) +#define sk_OSSL_ISSUER_SERIAL_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), (n)) +#define sk_OSSL_ISSUER_SERIAL_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_delete(sk, i) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_delete(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), (i))) +#define sk_OSSL_ISSUER_SERIAL_delete_ptr(sk, ptr) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr))) +#define sk_OSSL_ISSUER_SERIAL_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr)) +#define sk_OSSL_ISSUER_SERIAL_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr)) +#define sk_OSSL_ISSUER_SERIAL_pop(sk) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_pop(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk))) +#define sk_OSSL_ISSUER_SERIAL_shift(sk) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_shift(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk))) +#define sk_OSSL_ISSUER_SERIAL_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk),ossl_check_OSSL_ISSUER_SERIAL_freefunc_type(freefunc)) +#define sk_OSSL_ISSUER_SERIAL_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr), (idx)) +#define sk_OSSL_ISSUER_SERIAL_set(sk, idx, ptr) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_set(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), (idx), ossl_check_OSSL_ISSUER_SERIAL_type(ptr))) +#define sk_OSSL_ISSUER_SERIAL_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr)) +#define sk_OSSL_ISSUER_SERIAL_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr)) +#define sk_OSSL_ISSUER_SERIAL_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr), pnum) +#define sk_OSSL_ISSUER_SERIAL_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_dup(sk) ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk))) +#define sk_OSSL_ISSUER_SERIAL_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_copyfunc_type(copyfunc), ossl_check_OSSL_ISSUER_SERIAL_freefunc_type(freefunc))) +#define sk_OSSL_ISSUER_SERIAL_set_cmp_func(sk, cmp) ((sk_OSSL_ISSUER_SERIAL_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_compfunc_type(cmp))) + + +#endif diff --git a/deps/openssl/config/archs/VC-WIN32/asm/include/openssl/x509_vfy.h b/deps/openssl/config/archs/VC-WIN32/asm/include/openssl/x509_vfy.h index f571187265cfc9..f08a134b17b7db 100644 --- a/deps/openssl/config/archs/VC-WIN32/asm/include/openssl/x509_vfy.h +++ b/deps/openssl/config/archs/VC-WIN32/asm/include/openssl/x509_vfy.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by makefile from include/openssl/x509_vfy.h.in * - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -411,6 +411,7 @@ X509_LOOKUP_ctrl_ex((x), X509_L_ADD_STORE, (name), 0, NULL, \ # define X509_V_ERR_CA_CERT_MISSING_KEY_USAGE 92 # define X509_V_ERR_EXTENSIONS_REQUIRE_VERSION_3 93 # define X509_V_ERR_EC_KEY_EXPLICIT_PARAMS 94 +# define X509_V_ERR_RPK_UNTRUSTED 95 /* Certificate verify flags */ # ifndef OPENSSL_NO_DEPRECATED_1_1_0 @@ -491,71 +492,72 @@ int X509_OBJECT_set1_X509(X509_OBJECT *a, X509 *obj); X509_CRL *X509_OBJECT_get0_X509_CRL(const X509_OBJECT *a); int X509_OBJECT_set1_X509_CRL(X509_OBJECT *a, X509_CRL *obj); X509_STORE *X509_STORE_new(void); -void X509_STORE_free(X509_STORE *v); -int X509_STORE_lock(X509_STORE *ctx); -int X509_STORE_unlock(X509_STORE *ctx); -int X509_STORE_up_ref(X509_STORE *v); -STACK_OF(X509_OBJECT) *X509_STORE_get0_objects(const X509_STORE *v); -STACK_OF(X509) *X509_STORE_get1_all_certs(X509_STORE *st); -STACK_OF(X509) *X509_STORE_CTX_get1_certs(X509_STORE_CTX *st, +void X509_STORE_free(X509_STORE *xs); +int X509_STORE_lock(X509_STORE *xs); +int X509_STORE_unlock(X509_STORE *xs); +int X509_STORE_up_ref(X509_STORE *xs); +STACK_OF(X509_OBJECT) *X509_STORE_get0_objects(const X509_STORE *xs); +STACK_OF(X509_OBJECT) *X509_STORE_get1_objects(X509_STORE *xs); +STACK_OF(X509) *X509_STORE_get1_all_certs(X509_STORE *xs); +STACK_OF(X509) *X509_STORE_CTX_get1_certs(X509_STORE_CTX *xs, const X509_NAME *nm); STACK_OF(X509_CRL) *X509_STORE_CTX_get1_crls(const X509_STORE_CTX *st, const X509_NAME *nm); -int X509_STORE_set_flags(X509_STORE *ctx, unsigned long flags); -int X509_STORE_set_purpose(X509_STORE *ctx, int purpose); -int X509_STORE_set_trust(X509_STORE *ctx, int trust); -int X509_STORE_set1_param(X509_STORE *ctx, const X509_VERIFY_PARAM *pm); -X509_VERIFY_PARAM *X509_STORE_get0_param(const X509_STORE *ctx); +int X509_STORE_set_flags(X509_STORE *xs, unsigned long flags); +int X509_STORE_set_purpose(X509_STORE *xs, int purpose); +int X509_STORE_set_trust(X509_STORE *xs, int trust); +int X509_STORE_set1_param(X509_STORE *xs, const X509_VERIFY_PARAM *pm); +X509_VERIFY_PARAM *X509_STORE_get0_param(const X509_STORE *xs); -void X509_STORE_set_verify(X509_STORE *ctx, X509_STORE_CTX_verify_fn verify); +void X509_STORE_set_verify(X509_STORE *xs, X509_STORE_CTX_verify_fn verify); #define X509_STORE_set_verify_func(ctx, func) \ X509_STORE_set_verify((ctx),(func)) void X509_STORE_CTX_set_verify(X509_STORE_CTX *ctx, X509_STORE_CTX_verify_fn verify); -X509_STORE_CTX_verify_fn X509_STORE_get_verify(const X509_STORE *ctx); -void X509_STORE_set_verify_cb(X509_STORE *ctx, +X509_STORE_CTX_verify_fn X509_STORE_get_verify(const X509_STORE *xs); +void X509_STORE_set_verify_cb(X509_STORE *xs, X509_STORE_CTX_verify_cb verify_cb); # define X509_STORE_set_verify_cb_func(ctx,func) \ X509_STORE_set_verify_cb((ctx),(func)) -X509_STORE_CTX_verify_cb X509_STORE_get_verify_cb(const X509_STORE *ctx); -void X509_STORE_set_get_issuer(X509_STORE *ctx, +X509_STORE_CTX_verify_cb X509_STORE_get_verify_cb(const X509_STORE *xs); +void X509_STORE_set_get_issuer(X509_STORE *xs, X509_STORE_CTX_get_issuer_fn get_issuer); -X509_STORE_CTX_get_issuer_fn X509_STORE_get_get_issuer(const X509_STORE *ctx); -void X509_STORE_set_check_issued(X509_STORE *ctx, +X509_STORE_CTX_get_issuer_fn X509_STORE_get_get_issuer(const X509_STORE *xs); +void X509_STORE_set_check_issued(X509_STORE *xs, X509_STORE_CTX_check_issued_fn check_issued); -X509_STORE_CTX_check_issued_fn X509_STORE_get_check_issued(const X509_STORE *ctx); -void X509_STORE_set_check_revocation(X509_STORE *ctx, +X509_STORE_CTX_check_issued_fn X509_STORE_get_check_issued(const X509_STORE *s); +void X509_STORE_set_check_revocation(X509_STORE *xs, X509_STORE_CTX_check_revocation_fn check_revocation); X509_STORE_CTX_check_revocation_fn - X509_STORE_get_check_revocation(const X509_STORE *ctx); -void X509_STORE_set_get_crl(X509_STORE *ctx, + X509_STORE_get_check_revocation(const X509_STORE *xs); +void X509_STORE_set_get_crl(X509_STORE *xs, X509_STORE_CTX_get_crl_fn get_crl); -X509_STORE_CTX_get_crl_fn X509_STORE_get_get_crl(const X509_STORE *ctx); -void X509_STORE_set_check_crl(X509_STORE *ctx, +X509_STORE_CTX_get_crl_fn X509_STORE_get_get_crl(const X509_STORE *xs); +void X509_STORE_set_check_crl(X509_STORE *xs, X509_STORE_CTX_check_crl_fn check_crl); -X509_STORE_CTX_check_crl_fn X509_STORE_get_check_crl(const X509_STORE *ctx); -void X509_STORE_set_cert_crl(X509_STORE *ctx, +X509_STORE_CTX_check_crl_fn X509_STORE_get_check_crl(const X509_STORE *xs); +void X509_STORE_set_cert_crl(X509_STORE *xs, X509_STORE_CTX_cert_crl_fn cert_crl); -X509_STORE_CTX_cert_crl_fn X509_STORE_get_cert_crl(const X509_STORE *ctx); -void X509_STORE_set_check_policy(X509_STORE *ctx, +X509_STORE_CTX_cert_crl_fn X509_STORE_get_cert_crl(const X509_STORE *xs); +void X509_STORE_set_check_policy(X509_STORE *xs, X509_STORE_CTX_check_policy_fn check_policy); -X509_STORE_CTX_check_policy_fn X509_STORE_get_check_policy(const X509_STORE *ctx); -void X509_STORE_set_lookup_certs(X509_STORE *ctx, +X509_STORE_CTX_check_policy_fn X509_STORE_get_check_policy(const X509_STORE *s); +void X509_STORE_set_lookup_certs(X509_STORE *xs, X509_STORE_CTX_lookup_certs_fn lookup_certs); -X509_STORE_CTX_lookup_certs_fn X509_STORE_get_lookup_certs(const X509_STORE *ctx); -void X509_STORE_set_lookup_crls(X509_STORE *ctx, +X509_STORE_CTX_lookup_certs_fn X509_STORE_get_lookup_certs(const X509_STORE *s); +void X509_STORE_set_lookup_crls(X509_STORE *xs, X509_STORE_CTX_lookup_crls_fn lookup_crls); #define X509_STORE_set_lookup_crls_cb(ctx, func) \ X509_STORE_set_lookup_crls((ctx), (func)) -X509_STORE_CTX_lookup_crls_fn X509_STORE_get_lookup_crls(const X509_STORE *ctx); -void X509_STORE_set_cleanup(X509_STORE *ctx, +X509_STORE_CTX_lookup_crls_fn X509_STORE_get_lookup_crls(const X509_STORE *xs); +void X509_STORE_set_cleanup(X509_STORE *xs, X509_STORE_CTX_cleanup_fn cleanup); -X509_STORE_CTX_cleanup_fn X509_STORE_get_cleanup(const X509_STORE *ctx); +X509_STORE_CTX_cleanup_fn X509_STORE_get_cleanup(const X509_STORE *xs); #define X509_STORE_get_ex_new_index(l, p, newf, dupf, freef) \ CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_X509_STORE, l, p, newf, dupf, freef) -int X509_STORE_set_ex_data(X509_STORE *ctx, int idx, void *data); -void *X509_STORE_get_ex_data(const X509_STORE *ctx, int idx); +int X509_STORE_set_ex_data(X509_STORE *xs, int idx, void *data); +void *X509_STORE_get_ex_data(const X509_STORE *xs, int idx); X509_STORE_CTX *X509_STORE_CTX_new_ex(OSSL_LIB_CTX *libctx, const char *propq); X509_STORE_CTX *X509_STORE_CTX_new(void); @@ -565,11 +567,14 @@ int X509_STORE_CTX_get1_issuer(X509 **issuer, X509_STORE_CTX *ctx, X509 *x); void X509_STORE_CTX_free(X509_STORE_CTX *ctx); int X509_STORE_CTX_init(X509_STORE_CTX *ctx, X509_STORE *trust_store, X509 *target, STACK_OF(X509) *untrusted); +int X509_STORE_CTX_init_rpk(X509_STORE_CTX *ctx, X509_STORE *trust_store, + EVP_PKEY* rpk); void X509_STORE_CTX_set0_trusted_stack(X509_STORE_CTX *ctx, STACK_OF(X509) *sk); void X509_STORE_CTX_cleanup(X509_STORE_CTX *ctx); X509_STORE *X509_STORE_CTX_get0_store(const X509_STORE_CTX *ctx); X509 *X509_STORE_CTX_get0_cert(const X509_STORE_CTX *ctx); +EVP_PKEY *X509_STORE_CTX_get0_rpk(const X509_STORE_CTX *ctx); STACK_OF(X509)* X509_STORE_CTX_get0_untrusted(const X509_STORE_CTX *ctx); void X509_STORE_CTX_set0_untrusted(X509_STORE_CTX *ctx, STACK_OF(X509) *sk); void X509_STORE_CTX_set_verify_cb(X509_STORE_CTX *ctx, @@ -579,6 +584,8 @@ X509_STORE_CTX_verify_fn X509_STORE_CTX_get_verify(const X509_STORE_CTX *ctx); X509_STORE_CTX_get_issuer_fn X509_STORE_CTX_get_get_issuer(const X509_STORE_CTX *ctx); X509_STORE_CTX_check_issued_fn X509_STORE_CTX_get_check_issued(const X509_STORE_CTX *ctx); X509_STORE_CTX_check_revocation_fn X509_STORE_CTX_get_check_revocation(const X509_STORE_CTX *ctx); +void X509_STORE_CTX_set_get_crl(X509_STORE_CTX *ctx, + X509_STORE_CTX_get_crl_fn get_crl); X509_STORE_CTX_get_crl_fn X509_STORE_CTX_get_get_crl(const X509_STORE_CTX *ctx); X509_STORE_CTX_check_crl_fn X509_STORE_CTX_get_check_crl(const X509_STORE_CTX *ctx); X509_STORE_CTX_cert_crl_fn X509_STORE_CTX_get_cert_crl(const X509_STORE_CTX *ctx); @@ -600,7 +607,7 @@ X509_STORE_CTX_cleanup_fn X509_STORE_CTX_get_cleanup(const X509_STORE_CTX *ctx); # define X509_STORE_get1_crl X509_STORE_CTX_get1_crls #endif -X509_LOOKUP *X509_STORE_add_lookup(X509_STORE *v, X509_LOOKUP_METHOD *m); +X509_LOOKUP *X509_STORE_add_lookup(X509_STORE *xs, X509_LOOKUP_METHOD *m); X509_LOOKUP_METHOD *X509_LOOKUP_hash_dir(void); X509_LOOKUP_METHOD *X509_LOOKUP_file(void); X509_LOOKUP_METHOD *X509_LOOKUP_store(void); @@ -685,8 +692,8 @@ X509_LOOKUP_get_by_alias_fn X509_LOOKUP_meth_get_get_by_alias( const X509_LOOKUP_METHOD *method); -int X509_STORE_add_cert(X509_STORE *ctx, X509 *x); -int X509_STORE_add_crl(X509_STORE *ctx, X509_CRL *x); +int X509_STORE_add_cert(X509_STORE *xs, X509 *x); +int X509_STORE_add_crl(X509_STORE *xs, X509_CRL *x); int X509_STORE_CTX_get_by_subject(const X509_STORE_CTX *vs, X509_LOOKUP_TYPE type, @@ -730,23 +737,21 @@ void *X509_LOOKUP_get_method_data(const X509_LOOKUP *ctx); X509_STORE *X509_LOOKUP_get_store(const X509_LOOKUP *ctx); int X509_LOOKUP_shutdown(X509_LOOKUP *ctx); -int X509_STORE_load_file(X509_STORE *ctx, const char *file); -int X509_STORE_load_path(X509_STORE *ctx, const char *path); -int X509_STORE_load_store(X509_STORE *ctx, const char *store); -int X509_STORE_load_locations(X509_STORE *ctx, - const char *file, - const char *dir); -int X509_STORE_set_default_paths(X509_STORE *ctx); +int X509_STORE_load_file(X509_STORE *xs, const char *file); +int X509_STORE_load_path(X509_STORE *xs, const char *path); +int X509_STORE_load_store(X509_STORE *xs, const char *store); +int X509_STORE_load_locations(X509_STORE *s, const char *file, const char *dir); +int X509_STORE_set_default_paths(X509_STORE *xs); -int X509_STORE_load_file_ex(X509_STORE *ctx, const char *file, +int X509_STORE_load_file_ex(X509_STORE *xs, const char *file, OSSL_LIB_CTX *libctx, const char *propq); -int X509_STORE_load_store_ex(X509_STORE *ctx, const char *store, +int X509_STORE_load_store_ex(X509_STORE *xs, const char *store, OSSL_LIB_CTX *libctx, const char *propq); -int X509_STORE_load_locations_ex(X509_STORE *ctx, const char *file, - const char *dir, OSSL_LIB_CTX *libctx, - const char *propq); -int X509_STORE_set_default_paths_ex(X509_STORE *ctx, OSSL_LIB_CTX *libctx, - const char *propq); +int X509_STORE_load_locations_ex(X509_STORE *xs, + const char *file, const char *dir, + OSSL_LIB_CTX *libctx, const char *propq); +int X509_STORE_set_default_paths_ex(X509_STORE *xs, + OSSL_LIB_CTX *libctx, const char *propq); #define X509_STORE_CTX_get_ex_new_index(l, p, newf, dupf, freef) \ CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_X509_STORE_CTX, l, p, newf, dupf, freef) @@ -764,6 +769,7 @@ X509_STORE_CTX *X509_STORE_CTX_get0_parent_ctx(const X509_STORE_CTX *ctx); STACK_OF(X509) *X509_STORE_CTX_get0_chain(const X509_STORE_CTX *ctx); STACK_OF(X509) *X509_STORE_CTX_get1_chain(const X509_STORE_CTX *ctx); void X509_STORE_CTX_set_cert(X509_STORE_CTX *ctx, X509 *target); +void X509_STORE_CTX_set0_rpk(X509_STORE_CTX *ctx, EVP_PKEY *target); void X509_STORE_CTX_set0_verified_chain(X509_STORE_CTX *c, STACK_OF(X509) *sk); void X509_STORE_CTX_set0_crls(X509_STORE_CTX *ctx, STACK_OF(X509_CRL) *sk); int X509_STORE_CTX_set_purpose(X509_STORE_CTX *ctx, int purpose); @@ -773,6 +779,8 @@ int X509_STORE_CTX_purpose_inherit(X509_STORE_CTX *ctx, int def_purpose, void X509_STORE_CTX_set_flags(X509_STORE_CTX *ctx, unsigned long flags); void X509_STORE_CTX_set_time(X509_STORE_CTX *ctx, unsigned long flags, time_t t); +void X509_STORE_CTX_set_current_reasons(X509_STORE_CTX *ctx, + unsigned int current_reasons); X509_POLICY_TREE *X509_STORE_CTX_get0_policy_tree(const X509_STORE_CTX *ctx); int X509_STORE_CTX_get_explicit_policy(const X509_STORE_CTX *ctx); @@ -804,6 +812,7 @@ int X509_VERIFY_PARAM_clear_flags(X509_VERIFY_PARAM *param, unsigned long flags); unsigned long X509_VERIFY_PARAM_get_flags(const X509_VERIFY_PARAM *param); int X509_VERIFY_PARAM_set_purpose(X509_VERIFY_PARAM *param, int purpose); +int X509_VERIFY_PARAM_get_purpose(const X509_VERIFY_PARAM *param); int X509_VERIFY_PARAM_set_trust(X509_VERIFY_PARAM *param, int trust); void X509_VERIFY_PARAM_set_depth(X509_VERIFY_PARAM *param, int depth); void X509_VERIFY_PARAM_set_auth_level(X509_VERIFY_PARAM *param, int auth_level); diff --git a/deps/openssl/config/archs/VC-WIN32/asm/include/openssl/x509v3.h b/deps/openssl/config/archs/VC-WIN32/asm/include/openssl/x509v3.h index ed08a546f9813d..362ce3fb4387f7 100644 --- a/deps/openssl/config/archs/VC-WIN32/asm/include/openssl/x509v3.h +++ b/deps/openssl/config/archs/VC-WIN32/asm/include/openssl/x509v3.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by makefile from include/openssl/x509v3.h.in * - * Copyright 1999-2023 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1999-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -25,6 +25,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -146,6 +149,11 @@ typedef struct BASIC_CONSTRAINTS_st { ASN1_INTEGER *pathlen; } BASIC_CONSTRAINTS; +typedef struct OSSL_BASIC_ATTR_CONSTRAINTS_st { + int authority; + ASN1_INTEGER *pathlen; +} OSSL_BASIC_ATTR_CONSTRAINTS; + typedef struct PKEY_USAGE_PERIOD_st { ASN1_GENERALIZEDTIME *notBefore; ASN1_GENERALIZEDTIME *notAfter; @@ -198,6 +206,8 @@ typedef struct ACCESS_DESCRIPTION_st { GENERAL_NAME *location; } ACCESS_DESCRIPTION; +int GENERAL_NAME_set1_X509_NAME(GENERAL_NAME **tgt, const X509_NAME *src); + SKM_DEFINE_STACK_OF_INTERNAL(ACCESS_DESCRIPTION, ACCESS_DESCRIPTION, ACCESS_DESCRIPTION) #define sk_ACCESS_DESCRIPTION_num(sk) OPENSSL_sk_num(ossl_check_const_ACCESS_DESCRIPTION_sk_type(sk)) #define sk_ACCESS_DESCRIPTION_value(sk, idx) ((ACCESS_DESCRIPTION *)OPENSSL_sk_value(ossl_check_const_ACCESS_DESCRIPTION_sk_type(sk), (idx))) @@ -294,6 +304,7 @@ typedef struct DIST_POINT_NAME_st { /* If relativename then this contains the full distribution point name */ X509_NAME *dpname; } DIST_POINT_NAME; +DECLARE_ASN1_DUP_FUNCTION(DIST_POINT_NAME) /* All existing reasons */ # define CRLDP_ALL_REASONS 0x807f @@ -659,15 +670,16 @@ struct ISSUING_DIST_POINT_st { # define EXFLAG_SAN_CRITICAL 0x80000 # define EXFLAG_NO_FINGERPRINT 0x100000 -# define KU_DIGITAL_SIGNATURE 0x0080 -# define KU_NON_REPUDIATION 0x0040 -# define KU_KEY_ENCIPHERMENT 0x0020 -# define KU_DATA_ENCIPHERMENT 0x0010 -# define KU_KEY_AGREEMENT 0x0008 -# define KU_KEY_CERT_SIGN 0x0004 -# define KU_CRL_SIGN 0x0002 -# define KU_ENCIPHER_ONLY 0x0001 -# define KU_DECIPHER_ONLY 0x8000 +/* https://datatracker.ietf.org/doc/html/rfc5280#section-4.2.1.3 */ +# define KU_DIGITAL_SIGNATURE X509v3_KU_DIGITAL_SIGNATURE +# define KU_NON_REPUDIATION X509v3_KU_NON_REPUDIATION +# define KU_KEY_ENCIPHERMENT X509v3_KU_KEY_ENCIPHERMENT +# define KU_DATA_ENCIPHERMENT X509v3_KU_DATA_ENCIPHERMENT +# define KU_KEY_AGREEMENT X509v3_KU_KEY_AGREEMENT +# define KU_KEY_CERT_SIGN X509v3_KU_KEY_CERT_SIGN +# define KU_CRL_SIGN X509v3_KU_CRL_SIGN +# define KU_ENCIPHER_ONLY X509v3_KU_ENCIPHER_ONLY +# define KU_DECIPHER_ONLY X509v3_KU_DECIPHER_ONLY # define NS_SSL_CLIENT 0x80 # define NS_SSL_SERVER 0x40 @@ -729,7 +741,7 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_PURPOSE, X509_PURPOSE, X509_PURPOSE) #define sk_X509_PURPOSE_set_cmp_func(sk, cmp) ((sk_X509_PURPOSE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_X509_PURPOSE_sk_type(sk), ossl_check_X509_PURPOSE_compfunc_type(cmp))) - +# define X509_PURPOSE_DEFAULT_ANY 0 # define X509_PURPOSE_SSL_CLIENT 1 # define X509_PURPOSE_SSL_SERVER 2 # define X509_PURPOSE_NS_SSL_SERVER 3 @@ -739,9 +751,10 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_PURPOSE, X509_PURPOSE, X509_PURPOSE) # define X509_PURPOSE_ANY 7 # define X509_PURPOSE_OCSP_HELPER 8 # define X509_PURPOSE_TIMESTAMP_SIGN 9 +# define X509_PURPOSE_CODE_SIGN 10 # define X509_PURPOSE_MIN 1 -# define X509_PURPOSE_MAX 9 +# define X509_PURPOSE_MAX 10 /* Flags for X509V3_EXT_print() */ @@ -767,6 +780,7 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_PURPOSE, X509_PURPOSE, X509_PURPOSE) # define X509V3_ADD_SILENT 0x10 DECLARE_ASN1_FUNCTIONS(BASIC_CONSTRAINTS) +DECLARE_ASN1_FUNCTIONS(OSSL_BASIC_ATTR_CONSTRAINTS) DECLARE_ASN1_FUNCTIONS(SXNET) DECLARE_ASN1_FUNCTIONS(SXNETID) @@ -976,7 +990,6 @@ int X509V3_extensions_print(BIO *out, const char *title, int X509_check_ca(X509 *x); int X509_check_purpose(X509 *x, int id, int ca); int X509_supported_extension(X509_EXTENSION *ex); -int X509_PURPOSE_set(int *p, int purpose); int X509_check_issued(X509 *issuer, X509 *subject); int X509_check_akid(const X509 *issuer, const AUTHORITY_KEYID *akid); void X509_set_proxy_flag(X509 *x); @@ -992,22 +1005,26 @@ const GENERAL_NAMES *X509_get0_authority_issuer(X509 *x); const ASN1_INTEGER *X509_get0_authority_serial(X509 *x); int X509_PURPOSE_get_count(void); -X509_PURPOSE *X509_PURPOSE_get0(int idx); +int X509_PURPOSE_get_unused_id(OSSL_LIB_CTX *libctx); int X509_PURPOSE_get_by_sname(const char *sname); int X509_PURPOSE_get_by_id(int id); int X509_PURPOSE_add(int id, int trust, int flags, int (*ck) (const X509_PURPOSE *, const X509 *, int), const char *name, const char *sname, void *arg); +void X509_PURPOSE_cleanup(void); + +X509_PURPOSE *X509_PURPOSE_get0(int idx); +int X509_PURPOSE_get_id(const X509_PURPOSE *); char *X509_PURPOSE_get0_name(const X509_PURPOSE *xp); char *X509_PURPOSE_get0_sname(const X509_PURPOSE *xp); int X509_PURPOSE_get_trust(const X509_PURPOSE *xp); -void X509_PURPOSE_cleanup(void); -int X509_PURPOSE_get_id(const X509_PURPOSE *); +int X509_PURPOSE_set(int *p, int purpose); STACK_OF(OPENSSL_STRING) *X509_get1_email(X509 *x); STACK_OF(OPENSSL_STRING) *X509_REQ_get1_email(X509_REQ *x); void X509_email_free(STACK_OF(OPENSSL_STRING) *sk); STACK_OF(OPENSSL_STRING) *X509_get1_ocsp(X509 *x); + /* Flags for X509_check_* functions */ /* @@ -1444,6 +1461,507 @@ const ASN1_PRINTABLESTRING *PROFESSION_INFO_get0_registrationNumber( void PROFESSION_INFO_set0_registrationNumber( PROFESSION_INFO *pi, ASN1_PRINTABLESTRING *rn); +int OSSL_GENERAL_NAMES_print(BIO *out, GENERAL_NAMES *gens, int indent); + +typedef STACK_OF(X509_ATTRIBUTE) OSSL_ATTRIBUTES_SYNTAX; +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTES_SYNTAX) + +typedef STACK_OF(USERNOTICE) OSSL_USER_NOTICE_SYNTAX; +DECLARE_ASN1_FUNCTIONS(OSSL_USER_NOTICE_SYNTAX) + +SKM_DEFINE_STACK_OF_INTERNAL(USERNOTICE, USERNOTICE, USERNOTICE) +#define sk_USERNOTICE_num(sk) OPENSSL_sk_num(ossl_check_const_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_value(sk, idx) ((USERNOTICE *)OPENSSL_sk_value(ossl_check_const_USERNOTICE_sk_type(sk), (idx))) +#define sk_USERNOTICE_new(cmp) ((STACK_OF(USERNOTICE) *)OPENSSL_sk_new(ossl_check_USERNOTICE_compfunc_type(cmp))) +#define sk_USERNOTICE_new_null() ((STACK_OF(USERNOTICE) *)OPENSSL_sk_new_null()) +#define sk_USERNOTICE_new_reserve(cmp, n) ((STACK_OF(USERNOTICE) *)OPENSSL_sk_new_reserve(ossl_check_USERNOTICE_compfunc_type(cmp), (n))) +#define sk_USERNOTICE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_USERNOTICE_sk_type(sk), (n)) +#define sk_USERNOTICE_free(sk) OPENSSL_sk_free(ossl_check_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_zero(sk) OPENSSL_sk_zero(ossl_check_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_delete(sk, i) ((USERNOTICE *)OPENSSL_sk_delete(ossl_check_USERNOTICE_sk_type(sk), (i))) +#define sk_USERNOTICE_delete_ptr(sk, ptr) ((USERNOTICE *)OPENSSL_sk_delete_ptr(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr))) +#define sk_USERNOTICE_push(sk, ptr) OPENSSL_sk_push(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr)) +#define sk_USERNOTICE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr)) +#define sk_USERNOTICE_pop(sk) ((USERNOTICE *)OPENSSL_sk_pop(ossl_check_USERNOTICE_sk_type(sk))) +#define sk_USERNOTICE_shift(sk) ((USERNOTICE *)OPENSSL_sk_shift(ossl_check_USERNOTICE_sk_type(sk))) +#define sk_USERNOTICE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_USERNOTICE_sk_type(sk),ossl_check_USERNOTICE_freefunc_type(freefunc)) +#define sk_USERNOTICE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr), (idx)) +#define sk_USERNOTICE_set(sk, idx, ptr) ((USERNOTICE *)OPENSSL_sk_set(ossl_check_USERNOTICE_sk_type(sk), (idx), ossl_check_USERNOTICE_type(ptr))) +#define sk_USERNOTICE_find(sk, ptr) OPENSSL_sk_find(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr)) +#define sk_USERNOTICE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr)) +#define sk_USERNOTICE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr), pnum) +#define sk_USERNOTICE_sort(sk) OPENSSL_sk_sort(ossl_check_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_dup(sk) ((STACK_OF(USERNOTICE) *)OPENSSL_sk_dup(ossl_check_const_USERNOTICE_sk_type(sk))) +#define sk_USERNOTICE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(USERNOTICE) *)OPENSSL_sk_deep_copy(ossl_check_const_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_copyfunc_type(copyfunc), ossl_check_USERNOTICE_freefunc_type(freefunc))) +#define sk_USERNOTICE_set_cmp_func(sk, cmp) ((sk_USERNOTICE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_compfunc_type(cmp))) + + +typedef struct OSSL_ROLE_SPEC_CERT_ID_st { + GENERAL_NAME *roleName; + GENERAL_NAME *roleCertIssuer; + ASN1_INTEGER *roleCertSerialNumber; + GENERAL_NAMES *roleCertLocator; +} OSSL_ROLE_SPEC_CERT_ID; + +DECLARE_ASN1_FUNCTIONS(OSSL_ROLE_SPEC_CERT_ID) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ROLE_SPEC_CERT_ID, OSSL_ROLE_SPEC_CERT_ID, OSSL_ROLE_SPEC_CERT_ID) +#define sk_OSSL_ROLE_SPEC_CERT_ID_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_value(sk, idx) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_value(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), (idx))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_new(cmp) ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_new(ossl_check_OSSL_ROLE_SPEC_CERT_ID_compfunc_type(cmp))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_new_null() ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ROLE_SPEC_CERT_ID_new_reserve(cmp, n) ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ROLE_SPEC_CERT_ID_compfunc_type(cmp), (n))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), (n)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_delete(sk, i) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_delete(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), (i))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_delete_ptr(sk, ptr) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_pop(sk) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_pop(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_shift(sk) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_shift(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk),ossl_check_OSSL_ROLE_SPEC_CERT_ID_freefunc_type(freefunc)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr), (idx)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_set(sk, idx, ptr) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_set(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), (idx), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr), pnum) +#define sk_OSSL_ROLE_SPEC_CERT_ID_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_dup(sk) ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_copyfunc_type(copyfunc), ossl_check_OSSL_ROLE_SPEC_CERT_ID_freefunc_type(freefunc))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_set_cmp_func(sk, cmp) ((sk_OSSL_ROLE_SPEC_CERT_ID_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_compfunc_type(cmp))) + + +typedef STACK_OF(OSSL_ROLE_SPEC_CERT_ID) OSSL_ROLE_SPEC_CERT_ID_SYNTAX; + +DECLARE_ASN1_FUNCTIONS(OSSL_ROLE_SPEC_CERT_ID_SYNTAX) +typedef struct OSSL_HASH_st { + X509_ALGOR *algorithmIdentifier; + ASN1_BIT_STRING *hashValue; +} OSSL_HASH; + +typedef struct OSSL_INFO_SYNTAX_POINTER_st { + GENERAL_NAMES *name; + OSSL_HASH *hash; +} OSSL_INFO_SYNTAX_POINTER; + +# define OSSL_INFO_SYNTAX_TYPE_CONTENT 0 +# define OSSL_INFO_SYNTAX_TYPE_POINTER 1 + +typedef struct OSSL_INFO_SYNTAX_st { + int type; + union { + ASN1_STRING *content; + OSSL_INFO_SYNTAX_POINTER *pointer; + } choice; +} OSSL_INFO_SYNTAX; + +typedef struct OSSL_PRIVILEGE_POLICY_ID_st { + ASN1_OBJECT *privilegePolicy; + OSSL_INFO_SYNTAX *privPolSyntax; +} OSSL_PRIVILEGE_POLICY_ID; + +typedef struct OSSL_ATTRIBUTE_DESCRIPTOR_st { + ASN1_OBJECT *identifier; + ASN1_STRING *attributeSyntax; + ASN1_UTF8STRING *name; + ASN1_UTF8STRING *description; + OSSL_PRIVILEGE_POLICY_ID *dominationRule; +} OSSL_ATTRIBUTE_DESCRIPTOR; + +DECLARE_ASN1_FUNCTIONS(OSSL_HASH) +DECLARE_ASN1_FUNCTIONS(OSSL_INFO_SYNTAX) +DECLARE_ASN1_FUNCTIONS(OSSL_INFO_SYNTAX_POINTER) +DECLARE_ASN1_FUNCTIONS(OSSL_PRIVILEGE_POLICY_ID) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_DESCRIPTOR) + +typedef struct OSSL_TIME_SPEC_ABSOLUTE_st { + ASN1_GENERALIZEDTIME *startTime; + ASN1_GENERALIZEDTIME *endTime; +} OSSL_TIME_SPEC_ABSOLUTE; + +typedef struct OSSL_DAY_TIME_st { + ASN1_INTEGER *hour; + ASN1_INTEGER *minute; + ASN1_INTEGER *second; +} OSSL_DAY_TIME; + +typedef struct OSSL_DAY_TIME_BAND_st { + OSSL_DAY_TIME *startDayTime; + OSSL_DAY_TIME *endDayTime; +} OSSL_DAY_TIME_BAND; + +# define OSSL_NAMED_DAY_TYPE_INT 0 +# define OSSL_NAMED_DAY_TYPE_BIT 1 +# define OSSL_NAMED_DAY_INT_SUN 1 +# define OSSL_NAMED_DAY_INT_MON 2 +# define OSSL_NAMED_DAY_INT_TUE 3 +# define OSSL_NAMED_DAY_INT_WED 4 +# define OSSL_NAMED_DAY_INT_THU 5 +# define OSSL_NAMED_DAY_INT_FRI 6 +# define OSSL_NAMED_DAY_INT_SAT 7 +# define OSSL_NAMED_DAY_BIT_SUN 0 +# define OSSL_NAMED_DAY_BIT_MON 1 +# define OSSL_NAMED_DAY_BIT_TUE 2 +# define OSSL_NAMED_DAY_BIT_WED 3 +# define OSSL_NAMED_DAY_BIT_THU 4 +# define OSSL_NAMED_DAY_BIT_FRI 5 +# define OSSL_NAMED_DAY_BIT_SAT 6 + +typedef struct OSSL_NAMED_DAY_st { + int type; + union { + ASN1_INTEGER *intNamedDays; + ASN1_BIT_STRING *bitNamedDays; + } choice; +} OSSL_NAMED_DAY; + +# define OSSL_TIME_SPEC_X_DAY_OF_FIRST 0 +# define OSSL_TIME_SPEC_X_DAY_OF_SECOND 1 +# define OSSL_TIME_SPEC_X_DAY_OF_THIRD 2 +# define OSSL_TIME_SPEC_X_DAY_OF_FOURTH 3 +# define OSSL_TIME_SPEC_X_DAY_OF_FIFTH 4 + +typedef struct OSSL_TIME_SPEC_X_DAY_OF_st { + int type; + union { + OSSL_NAMED_DAY *first; + OSSL_NAMED_DAY *second; + OSSL_NAMED_DAY *third; + OSSL_NAMED_DAY *fourth; + OSSL_NAMED_DAY *fifth; + } choice; +} OSSL_TIME_SPEC_X_DAY_OF; + +# define OSSL_TIME_SPEC_DAY_TYPE_INT 0 +# define OSSL_TIME_SPEC_DAY_TYPE_BIT 1 +# define OSSL_TIME_SPEC_DAY_TYPE_DAY_OF 2 +# define OSSL_TIME_SPEC_DAY_BIT_SUN 0 +# define OSSL_TIME_SPEC_DAY_BIT_MON 1 +# define OSSL_TIME_SPEC_DAY_BIT_TUE 2 +# define OSSL_TIME_SPEC_DAY_BIT_WED 3 +# define OSSL_TIME_SPEC_DAY_BIT_THU 4 +# define OSSL_TIME_SPEC_DAY_BIT_FRI 5 +# define OSSL_TIME_SPEC_DAY_BIT_SAT 6 +# define OSSL_TIME_SPEC_DAY_INT_SUN 1 +# define OSSL_TIME_SPEC_DAY_INT_MON 2 +# define OSSL_TIME_SPEC_DAY_INT_TUE 3 +# define OSSL_TIME_SPEC_DAY_INT_WED 4 +# define OSSL_TIME_SPEC_DAY_INT_THU 5 +# define OSSL_TIME_SPEC_DAY_INT_FRI 6 +# define OSSL_TIME_SPEC_DAY_INT_SAT 7 + +typedef struct OSSL_TIME_SPEC_DAY_st { + int type; + union { + STACK_OF(ASN1_INTEGER) *intDay; + ASN1_BIT_STRING *bitDay; + OSSL_TIME_SPEC_X_DAY_OF *dayOf; + } choice; +} OSSL_TIME_SPEC_DAY; + +# define OSSL_TIME_SPEC_WEEKS_TYPE_ALL 0 +# define OSSL_TIME_SPEC_WEEKS_TYPE_INT 1 +# define OSSL_TIME_SPEC_WEEKS_TYPE_BIT 2 +# define OSSL_TIME_SPEC_BIT_WEEKS_1 0 +# define OSSL_TIME_SPEC_BIT_WEEKS_2 1 +# define OSSL_TIME_SPEC_BIT_WEEKS_3 2 +# define OSSL_TIME_SPEC_BIT_WEEKS_4 3 +# define OSSL_TIME_SPEC_BIT_WEEKS_5 4 + +typedef struct OSSL_TIME_SPEC_WEEKS_st { + int type; + union { + ASN1_NULL *allWeeks; + STACK_OF(ASN1_INTEGER) *intWeek; + ASN1_BIT_STRING *bitWeek; + } choice; +} OSSL_TIME_SPEC_WEEKS; + +# define OSSL_TIME_SPEC_MONTH_TYPE_ALL 0 +# define OSSL_TIME_SPEC_MONTH_TYPE_INT 1 +# define OSSL_TIME_SPEC_MONTH_TYPE_BIT 2 +# define OSSL_TIME_SPEC_INT_MONTH_JAN 1 +# define OSSL_TIME_SPEC_INT_MONTH_FEB 2 +# define OSSL_TIME_SPEC_INT_MONTH_MAR 3 +# define OSSL_TIME_SPEC_INT_MONTH_APR 4 +# define OSSL_TIME_SPEC_INT_MONTH_MAY 5 +# define OSSL_TIME_SPEC_INT_MONTH_JUN 6 +# define OSSL_TIME_SPEC_INT_MONTH_JUL 7 +# define OSSL_TIME_SPEC_INT_MONTH_AUG 8 +# define OSSL_TIME_SPEC_INT_MONTH_SEP 9 +# define OSSL_TIME_SPEC_INT_MONTH_OCT 10 +# define OSSL_TIME_SPEC_INT_MONTH_NOV 11 +# define OSSL_TIME_SPEC_INT_MONTH_DEC 12 +# define OSSL_TIME_SPEC_BIT_MONTH_JAN 0 +# define OSSL_TIME_SPEC_BIT_MONTH_FEB 1 +# define OSSL_TIME_SPEC_BIT_MONTH_MAR 2 +# define OSSL_TIME_SPEC_BIT_MONTH_APR 3 +# define OSSL_TIME_SPEC_BIT_MONTH_MAY 4 +# define OSSL_TIME_SPEC_BIT_MONTH_JUN 5 +# define OSSL_TIME_SPEC_BIT_MONTH_JUL 6 +# define OSSL_TIME_SPEC_BIT_MONTH_AUG 7 +# define OSSL_TIME_SPEC_BIT_MONTH_SEP 8 +# define OSSL_TIME_SPEC_BIT_MONTH_OCT 9 +# define OSSL_TIME_SPEC_BIT_MONTH_NOV 10 +# define OSSL_TIME_SPEC_BIT_MONTH_DEC 11 + +typedef struct OSSL_TIME_SPEC_MONTH_st { + int type; + union { + ASN1_NULL *allMonths; + STACK_OF(ASN1_INTEGER) *intMonth; + ASN1_BIT_STRING *bitMonth; + } choice; +} OSSL_TIME_SPEC_MONTH; + +typedef struct OSSL_TIME_PERIOD_st { + STACK_OF(OSSL_DAY_TIME_BAND) *timesOfDay; + OSSL_TIME_SPEC_DAY *days; + OSSL_TIME_SPEC_WEEKS *weeks; + OSSL_TIME_SPEC_MONTH *months; + STACK_OF(ASN1_INTEGER) *years; +} OSSL_TIME_PERIOD; + +# define OSSL_TIME_SPEC_TIME_TYPE_ABSOLUTE 0 +# define OSSL_TIME_SPEC_TIME_TYPE_PERIODIC 1 + +typedef struct OSSL_TIME_SPEC_TIME_st { + int type; + union { + OSSL_TIME_SPEC_ABSOLUTE *absolute; + STACK_OF(OSSL_TIME_PERIOD) *periodic; + } choice; +} OSSL_TIME_SPEC_TIME; + +typedef struct OSSL_TIME_SPEC_st { + OSSL_TIME_SPEC_TIME *time; + ASN1_BOOLEAN notThisTime; + ASN1_INTEGER *timeZone; +} OSSL_TIME_SPEC; + +DECLARE_ASN1_FUNCTIONS(OSSL_DAY_TIME) +DECLARE_ASN1_FUNCTIONS(OSSL_DAY_TIME_BAND) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_DAY) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_WEEKS) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_MONTH) +DECLARE_ASN1_FUNCTIONS(OSSL_NAMED_DAY) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_X_DAY_OF) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_ABSOLUTE) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_TIME) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_PERIOD) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_TIME_PERIOD, OSSL_TIME_PERIOD, OSSL_TIME_PERIOD) +#define sk_OSSL_TIME_PERIOD_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_value(sk, idx) ((OSSL_TIME_PERIOD *)OPENSSL_sk_value(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk), (idx))) +#define sk_OSSL_TIME_PERIOD_new(cmp) ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_new(ossl_check_OSSL_TIME_PERIOD_compfunc_type(cmp))) +#define sk_OSSL_TIME_PERIOD_new_null() ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_new_null()) +#define sk_OSSL_TIME_PERIOD_new_reserve(cmp, n) ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_TIME_PERIOD_compfunc_type(cmp), (n))) +#define sk_OSSL_TIME_PERIOD_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), (n)) +#define sk_OSSL_TIME_PERIOD_free(sk) OPENSSL_sk_free(ossl_check_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_delete(sk, i) ((OSSL_TIME_PERIOD *)OPENSSL_sk_delete(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), (i))) +#define sk_OSSL_TIME_PERIOD_delete_ptr(sk, ptr) ((OSSL_TIME_PERIOD *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr))) +#define sk_OSSL_TIME_PERIOD_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr)) +#define sk_OSSL_TIME_PERIOD_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr)) +#define sk_OSSL_TIME_PERIOD_pop(sk) ((OSSL_TIME_PERIOD *)OPENSSL_sk_pop(ossl_check_OSSL_TIME_PERIOD_sk_type(sk))) +#define sk_OSSL_TIME_PERIOD_shift(sk) ((OSSL_TIME_PERIOD *)OPENSSL_sk_shift(ossl_check_OSSL_TIME_PERIOD_sk_type(sk))) +#define sk_OSSL_TIME_PERIOD_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_TIME_PERIOD_sk_type(sk),ossl_check_OSSL_TIME_PERIOD_freefunc_type(freefunc)) +#define sk_OSSL_TIME_PERIOD_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr), (idx)) +#define sk_OSSL_TIME_PERIOD_set(sk, idx, ptr) ((OSSL_TIME_PERIOD *)OPENSSL_sk_set(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), (idx), ossl_check_OSSL_TIME_PERIOD_type(ptr))) +#define sk_OSSL_TIME_PERIOD_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr)) +#define sk_OSSL_TIME_PERIOD_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr)) +#define sk_OSSL_TIME_PERIOD_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr), pnum) +#define sk_OSSL_TIME_PERIOD_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_dup(sk) ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_dup(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk))) +#define sk_OSSL_TIME_PERIOD_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_copyfunc_type(copyfunc), ossl_check_OSSL_TIME_PERIOD_freefunc_type(freefunc))) +#define sk_OSSL_TIME_PERIOD_set_cmp_func(sk, cmp) ((sk_OSSL_TIME_PERIOD_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_compfunc_type(cmp))) + + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_DAY_TIME_BAND, OSSL_DAY_TIME_BAND, OSSL_DAY_TIME_BAND) +#define sk_OSSL_DAY_TIME_BAND_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_value(sk, idx) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_value(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk), (idx))) +#define sk_OSSL_DAY_TIME_BAND_new(cmp) ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_new(ossl_check_OSSL_DAY_TIME_BAND_compfunc_type(cmp))) +#define sk_OSSL_DAY_TIME_BAND_new_null() ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_new_null()) +#define sk_OSSL_DAY_TIME_BAND_new_reserve(cmp, n) ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_DAY_TIME_BAND_compfunc_type(cmp), (n))) +#define sk_OSSL_DAY_TIME_BAND_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), (n)) +#define sk_OSSL_DAY_TIME_BAND_free(sk) OPENSSL_sk_free(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_delete(sk, i) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_delete(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), (i))) +#define sk_OSSL_DAY_TIME_BAND_delete_ptr(sk, ptr) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr))) +#define sk_OSSL_DAY_TIME_BAND_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr)) +#define sk_OSSL_DAY_TIME_BAND_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr)) +#define sk_OSSL_DAY_TIME_BAND_pop(sk) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_pop(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk))) +#define sk_OSSL_DAY_TIME_BAND_shift(sk) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_shift(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk))) +#define sk_OSSL_DAY_TIME_BAND_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk),ossl_check_OSSL_DAY_TIME_BAND_freefunc_type(freefunc)) +#define sk_OSSL_DAY_TIME_BAND_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr), (idx)) +#define sk_OSSL_DAY_TIME_BAND_set(sk, idx, ptr) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_set(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), (idx), ossl_check_OSSL_DAY_TIME_BAND_type(ptr))) +#define sk_OSSL_DAY_TIME_BAND_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr)) +#define sk_OSSL_DAY_TIME_BAND_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr)) +#define sk_OSSL_DAY_TIME_BAND_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr), pnum) +#define sk_OSSL_DAY_TIME_BAND_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_dup(sk) ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_dup(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk))) +#define sk_OSSL_DAY_TIME_BAND_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_copyfunc_type(copyfunc), ossl_check_OSSL_DAY_TIME_BAND_freefunc_type(freefunc))) +#define sk_OSSL_DAY_TIME_BAND_set_cmp_func(sk, cmp) ((sk_OSSL_DAY_TIME_BAND_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_compfunc_type(cmp))) + + +/* Attribute Type and Value */ +typedef struct atav_st { + ASN1_OBJECT *type; + ASN1_TYPE *value; +} OSSL_ATAV; + +typedef struct ATTRIBUTE_TYPE_MAPPING_st { + ASN1_OBJECT *local; + ASN1_OBJECT *remote; +} OSSL_ATTRIBUTE_TYPE_MAPPING; + +typedef struct ATTRIBUTE_VALUE_MAPPING_st { + OSSL_ATAV *local; + OSSL_ATAV *remote; +} OSSL_ATTRIBUTE_VALUE_MAPPING; + +# define OSSL_ATTR_MAP_TYPE 0 +# define OSSL_ATTR_MAP_VALUE 1 + +typedef struct ATTRIBUTE_MAPPING_st { + int type; + union { + OSSL_ATTRIBUTE_TYPE_MAPPING *typeMappings; + OSSL_ATTRIBUTE_VALUE_MAPPING *typeValueMappings; + } choice; +} OSSL_ATTRIBUTE_MAPPING; + +typedef STACK_OF(OSSL_ATTRIBUTE_MAPPING) OSSL_ATTRIBUTE_MAPPINGS; +DECLARE_ASN1_FUNCTIONS(OSSL_ATAV) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_TYPE_MAPPING) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_VALUE_MAPPING) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_MAPPING) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_MAPPINGS) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ATTRIBUTE_MAPPING, OSSL_ATTRIBUTE_MAPPING, OSSL_ATTRIBUTE_MAPPING) +#define sk_OSSL_ATTRIBUTE_MAPPING_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_value(sk, idx) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_value(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), (idx))) +#define sk_OSSL_ATTRIBUTE_MAPPING_new(cmp) ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_new(ossl_check_OSSL_ATTRIBUTE_MAPPING_compfunc_type(cmp))) +#define sk_OSSL_ATTRIBUTE_MAPPING_new_null() ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ATTRIBUTE_MAPPING_new_reserve(cmp, n) ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ATTRIBUTE_MAPPING_compfunc_type(cmp), (n))) +#define sk_OSSL_ATTRIBUTE_MAPPING_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), (n)) +#define sk_OSSL_ATTRIBUTE_MAPPING_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_delete(sk, i) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_delete(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), (i))) +#define sk_OSSL_ATTRIBUTE_MAPPING_delete_ptr(sk, ptr) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr))) +#define sk_OSSL_ATTRIBUTE_MAPPING_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr)) +#define sk_OSSL_ATTRIBUTE_MAPPING_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr)) +#define sk_OSSL_ATTRIBUTE_MAPPING_pop(sk) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_pop(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk))) +#define sk_OSSL_ATTRIBUTE_MAPPING_shift(sk) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_shift(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk))) +#define sk_OSSL_ATTRIBUTE_MAPPING_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk),ossl_check_OSSL_ATTRIBUTE_MAPPING_freefunc_type(freefunc)) +#define sk_OSSL_ATTRIBUTE_MAPPING_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr), (idx)) +#define sk_OSSL_ATTRIBUTE_MAPPING_set(sk, idx, ptr) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_set(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), (idx), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr))) +#define sk_OSSL_ATTRIBUTE_MAPPING_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr)) +#define sk_OSSL_ATTRIBUTE_MAPPING_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr)) +#define sk_OSSL_ATTRIBUTE_MAPPING_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr), pnum) +#define sk_OSSL_ATTRIBUTE_MAPPING_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_dup(sk) ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk))) +#define sk_OSSL_ATTRIBUTE_MAPPING_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_copyfunc_type(copyfunc), ossl_check_OSSL_ATTRIBUTE_MAPPING_freefunc_type(freefunc))) +#define sk_OSSL_ATTRIBUTE_MAPPING_set_cmp_func(sk, cmp) ((sk_OSSL_ATTRIBUTE_MAPPING_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_compfunc_type(cmp))) + + +# define OSSL_AAA_ATTRIBUTE_TYPE 0 +# define OSSL_AAA_ATTRIBUTE_VALUES 1 + +typedef struct ALLOWED_ATTRIBUTES_CHOICE_st { + int type; + union { + ASN1_OBJECT *attributeType; + X509_ATTRIBUTE *attributeTypeandValues; + } choice; +} OSSL_ALLOWED_ATTRIBUTES_CHOICE; + +typedef struct ALLOWED_ATTRIBUTES_ITEM_st { + STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *attributes; + GENERAL_NAME *holderDomain; +} OSSL_ALLOWED_ATTRIBUTES_ITEM; + +typedef STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) OSSL_ALLOWED_ATTRIBUTES_SYNTAX; + +DECLARE_ASN1_FUNCTIONS(OSSL_ALLOWED_ATTRIBUTES_CHOICE) +DECLARE_ASN1_FUNCTIONS(OSSL_ALLOWED_ATTRIBUTES_ITEM) +DECLARE_ASN1_FUNCTIONS(OSSL_ALLOWED_ATTRIBUTES_SYNTAX) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ALLOWED_ATTRIBUTES_CHOICE, OSSL_ALLOWED_ATTRIBUTES_CHOICE, OSSL_ALLOWED_ATTRIBUTES_CHOICE) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_value(sk, idx) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_value(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), (idx))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_new(cmp) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_new(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_compfunc_type(cmp))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_new_null() ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_new_reserve(cmp, n) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_compfunc_type(cmp), (n))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), (n)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_delete(sk, i) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_delete(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), (i))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_delete_ptr(sk, ptr) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_pop(sk) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_pop(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_shift(sk) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_shift(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk),ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_freefunc_type(freefunc)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr), (idx)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_set(sk, idx, ptr) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_set(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), (idx), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr), pnum) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_dup(sk) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_copyfunc_type(copyfunc), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_freefunc_type(freefunc))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_set_cmp_func(sk, cmp) ((sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_compfunc_type(cmp))) + + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ALLOWED_ATTRIBUTES_ITEM, OSSL_ALLOWED_ATTRIBUTES_ITEM, OSSL_ALLOWED_ATTRIBUTES_ITEM) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_value(sk, idx) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_value(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), (idx))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_new(cmp) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_new(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_compfunc_type(cmp))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_new_null() ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_new_reserve(cmp, n) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_compfunc_type(cmp), (n))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), (n)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_delete(sk, i) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_delete(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), (i))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_delete_ptr(sk, ptr) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_pop(sk) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_pop(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_shift(sk) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_shift(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk),ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_freefunc_type(freefunc)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr), (idx)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_set(sk, idx, ptr) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_set(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), (idx), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr), pnum) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_dup(sk) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_copyfunc_type(copyfunc), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_freefunc_type(freefunc))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_set_cmp_func(sk, cmp) ((sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_compfunc_type(cmp))) + + +typedef struct AA_DIST_POINT_st { + DIST_POINT_NAME *distpoint; + ASN1_BIT_STRING *reasons; + int dp_reasons; + ASN1_BOOLEAN indirectCRL; + ASN1_BOOLEAN containsUserAttributeCerts; + ASN1_BOOLEAN containsAACerts; + ASN1_BOOLEAN containsSOAPublicKeyCerts; +} OSSL_AA_DIST_POINT; + +DECLARE_ASN1_FUNCTIONS(OSSL_AA_DIST_POINT) + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/VC-WIN32/asm/include/progs.h b/deps/openssl/config/archs/VC-WIN32/asm/include/progs.h index be55f61503d405..1b62ec37dec130 100644 --- a/deps/openssl/config/archs/VC-WIN32/asm/include/progs.h +++ b/deps/openssl/config/archs/VC-WIN32/asm/include/progs.h @@ -56,6 +56,7 @@ extern int s_client_main(int argc, char *argv[]); extern int s_server_main(int argc, char *argv[]); extern int s_time_main(int argc, char *argv[]); extern int sess_id_main(int argc, char *argv[]); +extern int skeyutl_main(int argc, char *argv[]); extern int smime_main(int argc, char *argv[]); extern int speed_main(int argc, char *argv[]); extern int spkac_main(int argc, char *argv[]); @@ -110,6 +111,7 @@ extern const OPTIONS s_client_options[]; extern const OPTIONS s_server_options[]; extern const OPTIONS s_time_options[]; extern const OPTIONS sess_id_options[]; +extern const OPTIONS skeyutl_options[]; extern const OPTIONS smime_options[]; extern const OPTIONS speed_options[]; extern const OPTIONS spkac_options[]; diff --git a/deps/openssl/config/archs/VC-WIN32/asm/openssl-cl.gypi b/deps/openssl/config/archs/VC-WIN32/asm/openssl-cl.gypi index b0f6b78e59e0d9..a1873a8a0c797b 100644 --- a/deps/openssl/config/archs/VC-WIN32/asm/openssl-cl.gypi +++ b/deps/openssl/config/archs/VC-WIN32/asm/openssl-cl.gypi @@ -87,6 +87,7 @@ 'openssl/apps/s_server.c', 'openssl/apps/s_time.c', 'openssl/apps/sess_id.c', + 'openssl/apps/skeyutl.c', 'openssl/apps/smime.c', 'openssl/apps/speed.c', 'openssl/apps/spkac.c', @@ -102,12 +103,14 @@ 'openssl/apps/lib/app_rand.c', 'openssl/apps/lib/app_x509.c', 'openssl/apps/lib/apps.c', + 'openssl/apps/lib/apps_opt_printf.c', 'openssl/apps/lib/apps_ui.c', 'openssl/apps/lib/columns.c', 'openssl/apps/lib/engine.c', 'openssl/apps/lib/engine_loader.c', 'openssl/apps/lib/fmt.c', 'openssl/apps/lib/http_server.c', + 'openssl/apps/lib/log.c', 'openssl/apps/lib/names.c', 'openssl/apps/lib/opt.c', 'openssl/apps/lib/s_cb.c', diff --git a/deps/openssl/config/archs/VC-WIN32/asm/openssl-fips.gypi b/deps/openssl/config/archs/VC-WIN32/asm/openssl-fips.gypi index 44bc4f894fb1ee..708da9a70f6db5 100644 --- a/deps/openssl/config/archs/VC-WIN32/asm/openssl-fips.gypi +++ b/deps/openssl/config/archs/VC-WIN32/asm/openssl-fips.gypi @@ -96,14 +96,15 @@ 'openssl/crypto/evp/kem.c', 'openssl/crypto/evp/keymgmt_lib.c', 'openssl/crypto/evp/keymgmt_meth.c', - 'openssl/crypto/evp/m_sigver.c', 'openssl/crypto/evp/mac_lib.c', 'openssl/crypto/evp/mac_meth.c', 'openssl/crypto/evp/p_lib.c', 'openssl/crypto/evp/pmeth_check.c', 'openssl/crypto/evp/pmeth_gn.c', 'openssl/crypto/evp/pmeth_lib.c', + 'openssl/crypto/evp/s_lib.c', 'openssl/crypto/evp/signature.c', + 'openssl/crypto/evp/skeymgmt_meth.c', 'openssl/crypto/ffc/ffc_backend.c', 'openssl/crypto/ffc/ffc_dh.c', 'openssl/crypto/ffc/ffc_key_generate.c', @@ -111,6 +112,8 @@ 'openssl/crypto/ffc/ffc_params.c', 'openssl/crypto/ffc/ffc_params_generate.c', 'openssl/crypto/ffc/ffc_params_validate.c', + 'openssl/crypto/hashtable/hashfunc.c', + 'openssl/crypto/hashtable/hashtable.c', 'openssl/crypto/hmac/hmac.c', 'openssl/crypto/lhash/lhash.c', 'openssl/crypto/asn1_dsa.c', @@ -140,6 +143,16 @@ 'openssl/crypto/threads_none.c', 'openssl/crypto/threads_pthread.c', 'openssl/crypto/threads_win.c', + 'openssl/crypto/time.c', + 'openssl/crypto/ml_dsa/ml_dsa_encoders.c', + 'openssl/crypto/ml_dsa/ml_dsa_key.c', + 'openssl/crypto/ml_dsa/ml_dsa_key_compress.c', + 'openssl/crypto/ml_dsa/ml_dsa_matrix.c', + 'openssl/crypto/ml_dsa/ml_dsa_ntt.c', + 'openssl/crypto/ml_dsa/ml_dsa_params.c', + 'openssl/crypto/ml_dsa/ml_dsa_sample.c', + 'openssl/crypto/ml_dsa/ml_dsa_sign.c', + 'openssl/crypto/ml_kem/ml_kem.c', 'openssl/crypto/modes/cbc128.c', 'openssl/crypto/modes/ccm128.c', 'openssl/crypto/modes/cfb128.c', @@ -148,6 +161,7 @@ 'openssl/crypto/modes/ofb128.c', 'openssl/crypto/modes/wrap128.c', 'openssl/crypto/modes/xts128.c', + 'openssl/crypto/modes/xts128gb.c', 'openssl/crypto/property/defn_cache.c', 'openssl/crypto/property/property.c', 'openssl/crypto/property/property_parse.c', @@ -176,7 +190,23 @@ 'openssl/crypto/sha/sha256.c', 'openssl/crypto/sha/sha3.c', 'openssl/crypto/sha/sha512.c', + 'openssl/crypto/slh_dsa/slh_adrs.c', + 'openssl/crypto/slh_dsa/slh_dsa.c', + 'openssl/crypto/slh_dsa/slh_dsa_hash_ctx.c', + 'openssl/crypto/slh_dsa/slh_dsa_key.c', + 'openssl/crypto/slh_dsa/slh_fors.c', + 'openssl/crypto/slh_dsa/slh_hash.c', + 'openssl/crypto/slh_dsa/slh_hypertree.c', + 'openssl/crypto/slh_dsa/slh_params.c', + 'openssl/crypto/slh_dsa/slh_wots.c', + 'openssl/crypto/slh_dsa/slh_xmss.c', 'openssl/crypto/stack/stack.c', + 'openssl/crypto/thread/arch/thread_none.c', + 'openssl/crypto/thread/arch/thread_posix.c', + 'openssl/crypto/thread/arch/thread_win.c', + 'openssl/crypto/thread/api.c', + 'openssl/crypto/thread/arch.c', + 'openssl/crypto/thread/internal.c', 'openssl/providers/common/der/der_rsa_sig.c', 'openssl/providers/common/bio_prov.c', 'openssl/providers/common/capabilities.c', @@ -185,6 +215,7 @@ 'openssl/providers/common/provider_util.c', 'openssl/providers/common/securitycheck.c', 'openssl/providers/common/securitycheck_fips.c', + 'openssl/providers/fips/fipsindicator.c', 'openssl/providers/fips/fipsprov.c', 'openssl/providers/fips/self_test.c', 'openssl/providers/fips/self_test_kats.c', @@ -222,6 +253,8 @@ 'openssl/providers/implementations/kdfs/sskdf.c', 'openssl/providers/implementations/kdfs/tls1_prf.c', 'openssl/providers/implementations/kdfs/x942kdf.c', + 'openssl/providers/implementations/kem/ml_kem_kem.c', + 'openssl/providers/implementations/kem/mlx_kem.c', 'openssl/providers/implementations/kem/rsa_kem.c', 'openssl/providers/implementations/keymgmt/dh_kmgmt.c', 'openssl/providers/implementations/keymgmt/dsa_kmgmt.c', @@ -229,29 +262,39 @@ 'openssl/providers/implementations/keymgmt/ecx_kmgmt.c', 'openssl/providers/implementations/keymgmt/kdf_legacy_kmgmt.c', 'openssl/providers/implementations/keymgmt/mac_legacy_kmgmt.c', + 'openssl/providers/implementations/keymgmt/ml_dsa_kmgmt.c', + 'openssl/providers/implementations/keymgmt/ml_kem_kmgmt.c', + 'openssl/providers/implementations/keymgmt/mlx_kmgmt.c', 'openssl/providers/implementations/keymgmt/rsa_kmgmt.c', + 'openssl/providers/implementations/keymgmt/slh_dsa_kmgmt.c', 'openssl/providers/implementations/macs/cmac_prov.c', 'openssl/providers/implementations/macs/gmac_prov.c', 'openssl/providers/implementations/macs/hmac_prov.c', 'openssl/providers/implementations/macs/kmac_prov.c', - 'openssl/providers/implementations/rands/crngt.c', 'openssl/providers/implementations/rands/drbg.c', 'openssl/providers/implementations/rands/drbg_ctr.c', 'openssl/providers/implementations/rands/drbg_hash.c', 'openssl/providers/implementations/rands/drbg_hmac.c', + 'openssl/providers/implementations/rands/fips_crng_test.c', 'openssl/providers/implementations/rands/test_rng.c', 'openssl/providers/implementations/signature/dsa_sig.c', 'openssl/providers/implementations/signature/ecdsa_sig.c', 'openssl/providers/implementations/signature/eddsa_sig.c', 'openssl/providers/implementations/signature/mac_legacy_sig.c', + 'openssl/providers/implementations/signature/ml_dsa_sig.c', 'openssl/providers/implementations/signature/rsa_sig.c', - 'openssl/ssl/s3_cbc.c', + 'openssl/providers/implementations/signature/slh_dsa_sig.c', + 'openssl/providers/implementations/skeymgmt/aes_skmgmt.c', + 'openssl/providers/implementations/skeymgmt/generic.c', + 'openssl/ssl/record/methods/ssl3_cbc.c', 'openssl/providers/common/der/der_dsa_key.c', 'openssl/providers/common/der/der_dsa_sig.c', 'openssl/providers/common/der/der_ec_key.c', 'openssl/providers/common/der/der_ec_sig.c', 'openssl/providers/common/der/der_ecx_key.c', + 'openssl/providers/common/der/der_ml_dsa_key.c', 'openssl/providers/common/der/der_rsa_key.c', + 'openssl/providers/common/der/der_slh_dsa_key.c', 'openssl/providers/common/provider_ctx.c', 'openssl/providers/common/provider_err.c', 'openssl/providers/implementations/ciphers/ciphercommon.c', @@ -262,7 +305,7 @@ 'openssl/providers/implementations/ciphers/ciphercommon_gcm_hw.c', 'openssl/providers/implementations/ciphers/ciphercommon_hw.c', 'openssl/providers/implementations/digests/digestcommon.c', - 'openssl/ssl/record/tls_pad.c', + 'openssl/ssl/record/methods/tls_pad.c', 'openssl/providers/fips/fips_entry.c', ], @@ -280,6 +323,7 @@ './config/archs/VC-WIN32/asm/crypto/des/crypt586.asm', './config/archs/VC-WIN32/asm/crypto/des/des-586.asm', './config/archs/VC-WIN32/asm/crypto/ec/ecp_nistz256-x86.asm', + './config/archs/VC-WIN32/asm/crypto/params_idx.c', './config/archs/VC-WIN32/asm/crypto/x86cpuid.asm', './config/archs/VC-WIN32/asm/crypto/md5/md5-586.asm', './config/archs/VC-WIN32/asm/crypto/modes/ghash-x86.asm', @@ -296,7 +340,9 @@ './config/archs/VC-WIN32/asm/providers/common/der/der_dsa_gen.c', './config/archs/VC-WIN32/asm/providers/common/der/der_ec_gen.c', './config/archs/VC-WIN32/asm/providers/common/der/der_ecx_gen.c', + './config/archs/VC-WIN32/asm/providers/common/der/der_ml_dsa_gen.c', './config/archs/VC-WIN32/asm/providers/common/der/der_rsa_gen.c', + './config/archs/VC-WIN32/asm/providers/common/der/der_slh_dsa_gen.c', './config/archs/VC-WIN32/asm/providers/common/der/der_wrap_gen.c', ], diff --git a/deps/openssl/config/archs/VC-WIN32/asm/openssl.gypi b/deps/openssl/config/archs/VC-WIN32/asm/openssl.gypi index 0fb4d6ad1a813d..9db3574e8a98bb 100644 --- a/deps/openssl/config/archs/VC-WIN32/asm/openssl.gypi +++ b/deps/openssl/config/archs/VC-WIN32/asm/openssl.gypi @@ -7,14 +7,15 @@ 'openssl/ssl/d1_srtp.c', 'openssl/ssl/methods.c', 'openssl/ssl/pqueue.c', + 'openssl/ssl/priority_queue.c', 'openssl/ssl/s3_enc.c', 'openssl/ssl/s3_lib.c', 'openssl/ssl/s3_msg.c', 'openssl/ssl/ssl_asn1.c', 'openssl/ssl/ssl_cert.c', + 'openssl/ssl/ssl_cert_comp.c', 'openssl/ssl/ssl_ciph.c', 'openssl/ssl/ssl_conf.c', - 'openssl/ssl/ssl_err.c', 'openssl/ssl/ssl_err_legacy.c', 'openssl/ssl/ssl_init.c', 'openssl/ssl/ssl_lib.c', @@ -31,12 +32,60 @@ 'openssl/ssl/tls13_enc.c', 'openssl/ssl/tls_depr.c', 'openssl/ssl/tls_srp.c', - 'openssl/ssl/record/dtls1_bitmap.c', + 'openssl/ssl/quic/cc_newreno.c', + 'openssl/ssl/quic/json_enc.c', + 'openssl/ssl/quic/qlog.c', + 'openssl/ssl/quic/qlog_event_helpers.c', + 'openssl/ssl/quic/quic_ackm.c', + 'openssl/ssl/quic/quic_cfq.c', + 'openssl/ssl/quic/quic_channel.c', + 'openssl/ssl/quic/quic_demux.c', + 'openssl/ssl/quic/quic_engine.c', + 'openssl/ssl/quic/quic_fc.c', + 'openssl/ssl/quic/quic_fifd.c', + 'openssl/ssl/quic/quic_impl.c', + 'openssl/ssl/quic/quic_lcidm.c', + 'openssl/ssl/quic/quic_method.c', + 'openssl/ssl/quic/quic_obj.c', + 'openssl/ssl/quic/quic_port.c', + 'openssl/ssl/quic/quic_rcidm.c', + 'openssl/ssl/quic/quic_reactor.c', + 'openssl/ssl/quic/quic_reactor_wait_ctx.c', + 'openssl/ssl/quic/quic_record_rx.c', + 'openssl/ssl/quic/quic_record_shared.c', + 'openssl/ssl/quic/quic_record_tx.c', + 'openssl/ssl/quic/quic_record_util.c', + 'openssl/ssl/quic/quic_rstream.c', + 'openssl/ssl/quic/quic_rx_depack.c', + 'openssl/ssl/quic/quic_sf_list.c', + 'openssl/ssl/quic/quic_srt_gen.c', + 'openssl/ssl/quic/quic_srtm.c', + 'openssl/ssl/quic/quic_sstream.c', + 'openssl/ssl/quic/quic_statm.c', + 'openssl/ssl/quic/quic_stream_map.c', + 'openssl/ssl/quic/quic_thread_assist.c', + 'openssl/ssl/quic/quic_tls.c', + 'openssl/ssl/quic/quic_tls_api.c', + 'openssl/ssl/quic/quic_trace.c', + 'openssl/ssl/quic/quic_tserver.c', + 'openssl/ssl/quic/quic_txp.c', + 'openssl/ssl/quic/quic_txpim.c', + 'openssl/ssl/quic/quic_types.c', + 'openssl/ssl/quic/quic_wire.c', + 'openssl/ssl/quic/quic_wire_pkt.c', + 'openssl/ssl/quic/uint_set.c', 'openssl/ssl/record/rec_layer_d1.c', 'openssl/ssl/record/rec_layer_s3.c', - 'openssl/ssl/record/ssl3_buffer.c', - 'openssl/ssl/record/ssl3_record.c', - 'openssl/ssl/record/ssl3_record_tls13.c', + 'openssl/ssl/record/methods/dtls_meth.c', + 'openssl/ssl/record/methods/ssl3_meth.c', + 'openssl/ssl/record/methods/tls13_meth.c', + 'openssl/ssl/record/methods/tls1_meth.c', + 'openssl/ssl/record/methods/tls_common.c', + 'openssl/ssl/record/methods/tls_multib.c', + 'openssl/ssl/record/methods/tlsany_meth.c', + 'openssl/ssl/rio/poll_builder.c', + 'openssl/ssl/rio/poll_immediate.c', + 'openssl/ssl/rio/rio_notifier.c', 'openssl/ssl/statem/extensions.c', 'openssl/ssl/statem/extensions_clnt.c', 'openssl/ssl/statem/extensions_cust.c', @@ -147,6 +196,7 @@ 'openssl/crypto/bio/bss_conn.c', 'openssl/crypto/bio/bss_core.c', 'openssl/crypto/bio/bss_dgram.c', + 'openssl/crypto/bio/bss_dgram_pair.c', 'openssl/crypto/bio/bss_fd.c', 'openssl/crypto/bio/bss_file.c', 'openssl/crypto/bio/bss_log.c', @@ -202,6 +252,7 @@ 'openssl/crypto/cmp/cmp_client.c', 'openssl/crypto/cmp/cmp_ctx.c', 'openssl/crypto/cmp/cmp_err.c', + 'openssl/crypto/cmp/cmp_genm.c', 'openssl/crypto/cmp/cmp_hdr.c', 'openssl/crypto/cmp/cmp_http.c', 'openssl/crypto/cmp/cmp_msg.c', @@ -376,7 +427,9 @@ 'openssl/crypto/err/err_all.c', 'openssl/crypto/err/err_all_legacy.c', 'openssl/crypto/err/err_blocks.c', + 'openssl/crypto/err/err_mark.c', 'openssl/crypto/err/err_prn.c', + 'openssl/crypto/err/err_save.c', 'openssl/crypto/ess/ess_asn1.c', 'openssl/crypto/ess/ess_err.c', 'openssl/crypto/ess/ess_lib.c', @@ -459,7 +512,9 @@ 'openssl/crypto/evp/pmeth_check.c', 'openssl/crypto/evp/pmeth_gn.c', 'openssl/crypto/evp/pmeth_lib.c', + 'openssl/crypto/evp/s_lib.c', 'openssl/crypto/evp/signature.c', + 'openssl/crypto/evp/skeymgmt_meth.c', 'openssl/crypto/ffc/ffc_backend.c', 'openssl/crypto/ffc/ffc_dh.c', 'openssl/crypto/ffc/ffc_key_generate.c', @@ -467,7 +522,11 @@ 'openssl/crypto/ffc/ffc_params.c', 'openssl/crypto/ffc/ffc_params_generate.c', 'openssl/crypto/ffc/ffc_params_validate.c', + 'openssl/crypto/hashtable/hashfunc.c', + 'openssl/crypto/hashtable/hashtable.c', 'openssl/crypto/hmac/hmac.c', + 'openssl/crypto/hpke/hpke.c', + 'openssl/crypto/hpke/hpke_util.c', 'openssl/crypto/http/http_client.c', 'openssl/crypto/http/http_err.c', 'openssl/crypto/http/http_lib.c', @@ -481,6 +540,7 @@ 'openssl/crypto/lhash/lhash.c', 'openssl/crypto/asn1_dsa.c', 'openssl/crypto/bsearch.c', + 'openssl/crypto/comp_methods.c', 'openssl/crypto/context.c', 'openssl/crypto/core_algorithm.c', 'openssl/crypto/core_fetch.c', @@ -490,10 +550,13 @@ 'openssl/crypto/cryptlib.c', 'openssl/crypto/ctype.c', 'openssl/crypto/cversion.c', + 'openssl/crypto/defaults.c', 'openssl/crypto/der_writer.c', + 'openssl/crypto/deterministic_nonce.c', 'openssl/crypto/ebcdic.c', 'openssl/crypto/ex_data.c', 'openssl/crypto/getenv.c', + 'openssl/crypto/indicator_core.c', 'openssl/crypto/info.c', 'openssl/crypto/init.c', 'openssl/crypto/initthread.c', @@ -517,12 +580,16 @@ 'openssl/crypto/provider_core.c', 'openssl/crypto/provider_predefined.c', 'openssl/crypto/punycode.c', + 'openssl/crypto/quic_vlint.c', 'openssl/crypto/self_test_core.c', + 'openssl/crypto/sleep.c', 'openssl/crypto/sparse_array.c', + 'openssl/crypto/ssl_err.c', 'openssl/crypto/threads_lib.c', 'openssl/crypto/threads_none.c', 'openssl/crypto/threads_pthread.c', 'openssl/crypto/threads_win.c', + 'openssl/crypto/time.c', 'openssl/crypto/trace.c', 'openssl/crypto/uid.c', 'openssl/crypto/md4/md4_dgst.c', @@ -532,6 +599,15 @@ 'openssl/crypto/md5/md5_sha1.c', 'openssl/crypto/mdc2/mdc2_one.c', 'openssl/crypto/mdc2/mdc2dgst.c', + 'openssl/crypto/ml_dsa/ml_dsa_encoders.c', + 'openssl/crypto/ml_dsa/ml_dsa_key.c', + 'openssl/crypto/ml_dsa/ml_dsa_key_compress.c', + 'openssl/crypto/ml_dsa/ml_dsa_matrix.c', + 'openssl/crypto/ml_dsa/ml_dsa_ntt.c', + 'openssl/crypto/ml_dsa/ml_dsa_params.c', + 'openssl/crypto/ml_dsa/ml_dsa_sample.c', + 'openssl/crypto/ml_dsa/ml_dsa_sign.c', + 'openssl/crypto/ml_kem/ml_kem.c', 'openssl/crypto/modes/cbc128.c', 'openssl/crypto/modes/ccm128.c', 'openssl/crypto/modes/cfb128.c', @@ -543,6 +619,7 @@ 'openssl/crypto/modes/siv128.c', 'openssl/crypto/modes/wrap128.c', 'openssl/crypto/modes/xts128.c', + 'openssl/crypto/modes/xts128gb.c', 'openssl/crypto/objects/o_names.c', 'openssl/crypto/objects/obj_dat.c', 'openssl/crypto/objects/obj_err.c', @@ -606,6 +683,7 @@ 'openssl/crypto/rand/rand_lib.c', 'openssl/crypto/rand/rand_meth.c', 'openssl/crypto/rand/rand_pool.c', + 'openssl/crypto/rand/rand_uniform.c', 'openssl/crypto/rand/randfile.c', 'openssl/crypto/rc2/rc2_cbc.c', 'openssl/crypto/rc2/rc2_ecb.c', @@ -652,6 +730,16 @@ 'openssl/crypto/sha/sha3.c', 'openssl/crypto/sha/sha512.c', 'openssl/crypto/siphash/siphash.c', + 'openssl/crypto/slh_dsa/slh_adrs.c', + 'openssl/crypto/slh_dsa/slh_dsa.c', + 'openssl/crypto/slh_dsa/slh_dsa_hash_ctx.c', + 'openssl/crypto/slh_dsa/slh_dsa_key.c', + 'openssl/crypto/slh_dsa/slh_fors.c', + 'openssl/crypto/slh_dsa/slh_hash.c', + 'openssl/crypto/slh_dsa/slh_hypertree.c', + 'openssl/crypto/slh_dsa/slh_params.c', + 'openssl/crypto/slh_dsa/slh_wots.c', + 'openssl/crypto/slh_dsa/slh_xmss.c', 'openssl/crypto/sm2/sm2_crypt.c', 'openssl/crypto/sm2/sm2_err.c', 'openssl/crypto/sm2/sm2_key.c', @@ -669,6 +757,12 @@ 'openssl/crypto/store/store_register.c', 'openssl/crypto/store/store_result.c', 'openssl/crypto/store/store_strings.c', + 'openssl/crypto/thread/arch/thread_none.c', + 'openssl/crypto/thread/arch/thread_posix.c', + 'openssl/crypto/thread/arch/thread_win.c', + 'openssl/crypto/thread/api.c', + 'openssl/crypto/thread/arch.c', + 'openssl/crypto/thread/internal.c', 'openssl/crypto/ts/ts_asn1.c', 'openssl/crypto/ts/ts_conf.c', 'openssl/crypto/ts/ts_err.c', @@ -697,14 +791,22 @@ 'openssl/crypto/x509/pcy_map.c', 'openssl/crypto/x509/pcy_node.c', 'openssl/crypto/x509/pcy_tree.c', + 'openssl/crypto/x509/t_acert.c', 'openssl/crypto/x509/t_crl.c', 'openssl/crypto/x509/t_req.c', 'openssl/crypto/x509/t_x509.c', + 'openssl/crypto/x509/v3_aaa.c', + 'openssl/crypto/x509/v3_ac_tgt.c', 'openssl/crypto/x509/v3_addr.c', 'openssl/crypto/x509/v3_admis.c', 'openssl/crypto/x509/v3_akeya.c', 'openssl/crypto/x509/v3_akid.c', 'openssl/crypto/x509/v3_asid.c', + 'openssl/crypto/x509/v3_attrdesc.c', + 'openssl/crypto/x509/v3_attrmap.c', + 'openssl/crypto/x509/v3_audit_id.c', + 'openssl/crypto/x509/v3_authattid.c', + 'openssl/crypto/x509/v3_battcons.c', 'openssl/crypto/x509/v3_bcons.c', 'openssl/crypto/x509/v3_bitst.c', 'openssl/crypto/x509/v3_conf.c', @@ -713,12 +815,17 @@ 'openssl/crypto/x509/v3_enum.c', 'openssl/crypto/x509/v3_extku.c', 'openssl/crypto/x509/v3_genn.c', + 'openssl/crypto/x509/v3_group_ac.c', 'openssl/crypto/x509/v3_ia5.c', + 'openssl/crypto/x509/v3_ind_iss.c', 'openssl/crypto/x509/v3_info.c', 'openssl/crypto/x509/v3_int.c', + 'openssl/crypto/x509/v3_iobo.c', 'openssl/crypto/x509/v3_ist.c', 'openssl/crypto/x509/v3_lib.c', 'openssl/crypto/x509/v3_ncons.c', + 'openssl/crypto/x509/v3_no_ass.c', + 'openssl/crypto/x509/v3_no_rev_avail.c', 'openssl/crypto/x509/v3_pci.c', 'openssl/crypto/x509/v3_pcia.c', 'openssl/crypto/x509/v3_pcons.c', @@ -726,13 +833,20 @@ 'openssl/crypto/x509/v3_pmaps.c', 'openssl/crypto/x509/v3_prn.c', 'openssl/crypto/x509/v3_purp.c', + 'openssl/crypto/x509/v3_rolespec.c', 'openssl/crypto/x509/v3_san.c', + 'openssl/crypto/x509/v3_sda.c', + 'openssl/crypto/x509/v3_single_use.c', 'openssl/crypto/x509/v3_skid.c', + 'openssl/crypto/x509/v3_soa_id.c', 'openssl/crypto/x509/v3_sxnet.c', + 'openssl/crypto/x509/v3_timespec.c', 'openssl/crypto/x509/v3_tlsf.c', + 'openssl/crypto/x509/v3_usernotice.c', 'openssl/crypto/x509/v3_utf8.c', 'openssl/crypto/x509/v3_utl.c', 'openssl/crypto/x509/v3err.c', + 'openssl/crypto/x509/x509_acert.c', 'openssl/crypto/x509/x509_att.c', 'openssl/crypto/x509/x509_cmp.c', 'openssl/crypto/x509/x509_d2.c', @@ -750,6 +864,7 @@ 'openssl/crypto/x509/x509_v3.c', 'openssl/crypto/x509/x509_vfy.c', 'openssl/crypto/x509/x509_vpm.c', + 'openssl/crypto/x509/x509aset.c', 'openssl/crypto/x509/x509cset.c', 'openssl/crypto/x509/x509name.c', 'openssl/crypto/x509/x509rset.c', @@ -759,6 +874,7 @@ 'openssl/crypto/x509/x_attrib.c', 'openssl/crypto/x509/x_crl.c', 'openssl/crypto/x509/x_exten.c', + 'openssl/crypto/x509/x_ietfatt.c', 'openssl/crypto/x509/x_name.c', 'openssl/crypto/x509/x_pubkey.c', 'openssl/crypto/x509/x_req.c', @@ -790,6 +906,9 @@ 'openssl/providers/implementations/ciphers/cipher_aes_ccm_hw.c', 'openssl/providers/implementations/ciphers/cipher_aes_gcm.c', 'openssl/providers/implementations/ciphers/cipher_aes_gcm_hw.c', + 'openssl/providers/implementations/ciphers/cipher_aes_gcm_siv.c', + 'openssl/providers/implementations/ciphers/cipher_aes_gcm_siv_hw.c', + 'openssl/providers/implementations/ciphers/cipher_aes_gcm_siv_polyval.c', 'openssl/providers/implementations/ciphers/cipher_aes_hw.c', 'openssl/providers/implementations/ciphers/cipher_aes_ocb.c', 'openssl/providers/implementations/ciphers/cipher_aes_ocb_hw.c', @@ -814,7 +933,13 @@ 'openssl/providers/implementations/ciphers/cipher_cts.c', 'openssl/providers/implementations/ciphers/cipher_null.c', 'openssl/providers/implementations/ciphers/cipher_sm4.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_ccm.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_ccm_hw.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_gcm.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_gcm_hw.c', 'openssl/providers/implementations/ciphers/cipher_sm4_hw.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_xts.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_xts_hw.c', 'openssl/providers/implementations/ciphers/cipher_tdes.c', 'openssl/providers/implementations/ciphers/cipher_tdes_common.c', 'openssl/providers/implementations/ciphers/cipher_tdes_default.c', @@ -843,11 +968,16 @@ 'openssl/providers/implementations/encode_decode/encode_key2ms.c', 'openssl/providers/implementations/encode_decode/encode_key2text.c', 'openssl/providers/implementations/encode_decode/endecoder_common.c', + 'openssl/providers/implementations/encode_decode/ml_common_codecs.c', + 'openssl/providers/implementations/encode_decode/ml_dsa_codecs.c', + 'openssl/providers/implementations/encode_decode/ml_kem_codecs.c', 'openssl/providers/implementations/exchange/dh_exch.c', 'openssl/providers/implementations/exchange/ecdh_exch.c', 'openssl/providers/implementations/exchange/ecx_exch.c', 'openssl/providers/implementations/exchange/kdf_exch.c', + 'openssl/providers/implementations/kdfs/argon2.c', 'openssl/providers/implementations/kdfs/hkdf.c', + 'openssl/providers/implementations/kdfs/hmacdrbg_kdf.c', 'openssl/providers/implementations/kdfs/kbkdf.c', 'openssl/providers/implementations/kdfs/krb5kdf.c', 'openssl/providers/implementations/kdfs/pbkdf2.c', @@ -858,6 +988,11 @@ 'openssl/providers/implementations/kdfs/sskdf.c', 'openssl/providers/implementations/kdfs/tls1_prf.c', 'openssl/providers/implementations/kdfs/x942kdf.c', + 'openssl/providers/implementations/kem/ec_kem.c', + 'openssl/providers/implementations/kem/ecx_kem.c', + 'openssl/providers/implementations/kem/kem_util.c', + 'openssl/providers/implementations/kem/ml_kem_kem.c', + 'openssl/providers/implementations/kem/mlx_kem.c', 'openssl/providers/implementations/kem/rsa_kem.c', 'openssl/providers/implementations/keymgmt/dh_kmgmt.c', 'openssl/providers/implementations/keymgmt/dsa_kmgmt.c', @@ -865,7 +1000,11 @@ 'openssl/providers/implementations/keymgmt/ecx_kmgmt.c', 'openssl/providers/implementations/keymgmt/kdf_legacy_kmgmt.c', 'openssl/providers/implementations/keymgmt/mac_legacy_kmgmt.c', + 'openssl/providers/implementations/keymgmt/ml_dsa_kmgmt.c', + 'openssl/providers/implementations/keymgmt/ml_kem_kmgmt.c', + 'openssl/providers/implementations/keymgmt/mlx_kmgmt.c', 'openssl/providers/implementations/keymgmt/rsa_kmgmt.c', + 'openssl/providers/implementations/keymgmt/slh_dsa_kmgmt.c', 'openssl/providers/implementations/macs/blake2b_mac.c', 'openssl/providers/implementations/macs/blake2s_mac.c', 'openssl/providers/implementations/macs/cmac_prov.c', @@ -874,12 +1013,12 @@ 'openssl/providers/implementations/macs/kmac_prov.c', 'openssl/providers/implementations/macs/poly1305_prov.c', 'openssl/providers/implementations/macs/siphash_prov.c', - 'openssl/providers/implementations/rands/crngt.c', 'openssl/providers/implementations/rands/drbg.c', 'openssl/providers/implementations/rands/drbg_ctr.c', 'openssl/providers/implementations/rands/drbg_hash.c', 'openssl/providers/implementations/rands/drbg_hmac.c', 'openssl/providers/implementations/rands/seed_src.c', + 'openssl/providers/implementations/rands/seed_src_jitter.c', 'openssl/providers/implementations/rands/test_rng.c', 'openssl/providers/implementations/rands/seeding/rand_cpu_x86.c', 'openssl/providers/implementations/rands/seeding/rand_tsc.c', @@ -889,17 +1028,24 @@ 'openssl/providers/implementations/signature/ecdsa_sig.c', 'openssl/providers/implementations/signature/eddsa_sig.c', 'openssl/providers/implementations/signature/mac_legacy_sig.c', + 'openssl/providers/implementations/signature/ml_dsa_sig.c', 'openssl/providers/implementations/signature/rsa_sig.c', + 'openssl/providers/implementations/signature/slh_dsa_sig.c', 'openssl/providers/implementations/signature/sm2_sig.c', + 'openssl/providers/implementations/skeymgmt/aes_skmgmt.c', + 'openssl/providers/implementations/skeymgmt/generic.c', 'openssl/providers/implementations/storemgmt/file_store.c', 'openssl/providers/implementations/storemgmt/file_store_any2obj.c', - 'openssl/ssl/s3_cbc.c', + 'openssl/providers/implementations/storemgmt/winstore_store.c', + 'openssl/ssl/record/methods/ssl3_cbc.c', 'openssl/providers/common/der/der_dsa_key.c', 'openssl/providers/common/der/der_dsa_sig.c', 'openssl/providers/common/der/der_ec_key.c', 'openssl/providers/common/der/der_ec_sig.c', 'openssl/providers/common/der/der_ecx_key.c', + 'openssl/providers/common/der/der_ml_dsa_key.c', 'openssl/providers/common/der/der_rsa_key.c', + 'openssl/providers/common/der/der_slh_dsa_key.c', 'openssl/providers/common/provider_ctx.c', 'openssl/providers/common/provider_err.c', 'openssl/providers/implementations/ciphers/ciphercommon.c', @@ -910,7 +1056,7 @@ 'openssl/providers/implementations/ciphers/ciphercommon_gcm_hw.c', 'openssl/providers/implementations/ciphers/ciphercommon_hw.c', 'openssl/providers/implementations/digests/digestcommon.c', - 'openssl/ssl/record/tls_pad.c', + 'openssl/ssl/record/methods/tls_pad.c', 'openssl/providers/implementations/ciphers/cipher_blowfish.c', 'openssl/providers/implementations/ciphers/cipher_blowfish_hw.c', 'openssl/providers/implementations/ciphers/cipher_cast5.c', @@ -935,6 +1081,7 @@ 'openssl/providers/implementations/digests/ripemd_prov.c', 'openssl/providers/implementations/digests/wp_prov.c', 'openssl/providers/implementations/kdfs/pbkdf1.c', + 'openssl/providers/implementations/kdfs/pvkkdf.c', 'openssl/providers/prov_running.c', 'openssl/providers/legacyprov.c', ], @@ -952,6 +1099,7 @@ './config/archs/VC-WIN32/asm/crypto/des/crypt586.asm', './config/archs/VC-WIN32/asm/crypto/des/des-586.asm', './config/archs/VC-WIN32/asm/crypto/ec/ecp_nistz256-x86.asm', + './config/archs/VC-WIN32/asm/crypto/params_idx.c', './config/archs/VC-WIN32/asm/crypto/x86cpuid.asm', './config/archs/VC-WIN32/asm/crypto/md5/md5-586.asm', './config/archs/VC-WIN32/asm/crypto/modes/ghash-x86.asm', @@ -968,7 +1116,9 @@ './config/archs/VC-WIN32/asm/providers/common/der/der_dsa_gen.c', './config/archs/VC-WIN32/asm/providers/common/der/der_ec_gen.c', './config/archs/VC-WIN32/asm/providers/common/der/der_ecx_gen.c', + './config/archs/VC-WIN32/asm/providers/common/der/der_ml_dsa_gen.c', './config/archs/VC-WIN32/asm/providers/common/der/der_rsa_gen.c', + './config/archs/VC-WIN32/asm/providers/common/der/der_slh_dsa_gen.c', './config/archs/VC-WIN32/asm/providers/common/der/der_wrap_gen.c', ], 'openssl_defines_VC-WIN32': [ diff --git a/deps/openssl/config/archs/VC-WIN32/asm/providers/common/der/der_ml_dsa_gen.c b/deps/openssl/config/archs/VC-WIN32/asm/providers/common/der/der_ml_dsa_gen.c new file mode 100644 index 00000000000000..4a8a113a268578 --- /dev/null +++ b/deps/openssl/config/archs/VC-WIN32/asm/providers/common/der/der_ml_dsa_gen.c @@ -0,0 +1,37 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from providers/common/der/der_ml_dsa_gen.c.in + * + * Copyright 2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include "prov/der_ml_dsa.h" + +/* Well known OIDs precompiled */ + +/* + * id-ml-dsa-44 OBJECT IDENTIFIER ::= { sigAlgs 17 } + */ +const unsigned char ossl_der_oid_id_ml_dsa_44[DER_OID_SZ_id_ml_dsa_44] = { + DER_OID_V_id_ml_dsa_44 +}; + +/* + * id-ml-dsa-65 OBJECT IDENTIFIER ::= { sigAlgs 18 } + */ +const unsigned char ossl_der_oid_id_ml_dsa_65[DER_OID_SZ_id_ml_dsa_65] = { + DER_OID_V_id_ml_dsa_65 +}; + +/* + * id-ml-dsa-87 OBJECT IDENTIFIER ::= { sigAlgs 19 } + */ +const unsigned char ossl_der_oid_id_ml_dsa_87[DER_OID_SZ_id_ml_dsa_87] = { + DER_OID_V_id_ml_dsa_87 +}; + diff --git a/deps/openssl/config/archs/VC-WIN32/asm/providers/common/der/der_slh_dsa_gen.c b/deps/openssl/config/archs/VC-WIN32/asm/providers/common/der/der_slh_dsa_gen.c new file mode 100644 index 00000000000000..1419a9515097dd --- /dev/null +++ b/deps/openssl/config/archs/VC-WIN32/asm/providers/common/der/der_slh_dsa_gen.c @@ -0,0 +1,100 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from providers/common/der/der_slh_dsa_gen.c.in + * + * Copyright 2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include "prov/der_slh_dsa.h" + +/* Well known OIDs precompiled */ + +/* + * id-slh-dsa-sha2-128s OBJECT IDENTIFIER ::= { sigAlgs 20 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_128s[DER_OID_SZ_id_slh_dsa_sha2_128s] = { + DER_OID_V_id_slh_dsa_sha2_128s +}; + +/* + * id-slh-dsa-sha2-128f OBJECT IDENTIFIER ::= { sigAlgs 21 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_128f[DER_OID_SZ_id_slh_dsa_sha2_128f] = { + DER_OID_V_id_slh_dsa_sha2_128f +}; + +/* + * id-slh-dsa-sha2-192s OBJECT IDENTIFIER ::= { sigAlgs 22 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_192s[DER_OID_SZ_id_slh_dsa_sha2_192s] = { + DER_OID_V_id_slh_dsa_sha2_192s +}; + +/* + * id-slh-dsa-sha2-192f OBJECT IDENTIFIER ::= { sigAlgs 23 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_192f[DER_OID_SZ_id_slh_dsa_sha2_192f] = { + DER_OID_V_id_slh_dsa_sha2_192f +}; + +/* + * id-slh-dsa-sha2-256s OBJECT IDENTIFIER ::= { sigAlgs 24 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_256s[DER_OID_SZ_id_slh_dsa_sha2_256s] = { + DER_OID_V_id_slh_dsa_sha2_256s +}; + +/* + * id-slh-dsa-sha2-256f OBJECT IDENTIFIER ::= { sigAlgs 25 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_256f[DER_OID_SZ_id_slh_dsa_sha2_256f] = { + DER_OID_V_id_slh_dsa_sha2_256f +}; + +/* + * id-slh-dsa-shake-128s OBJECT IDENTIFIER ::= { sigAlgs 26 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_128s[DER_OID_SZ_id_slh_dsa_shake_128s] = { + DER_OID_V_id_slh_dsa_shake_128s +}; + +/* + * id-slh-dsa-shake-128f OBJECT IDENTIFIER ::= { sigAlgs 27 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_128f[DER_OID_SZ_id_slh_dsa_shake_128f] = { + DER_OID_V_id_slh_dsa_shake_128f +}; + +/* + * id-slh-dsa-shake-192s OBJECT IDENTIFIER ::= { sigAlgs 28 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_192s[DER_OID_SZ_id_slh_dsa_shake_192s] = { + DER_OID_V_id_slh_dsa_shake_192s +}; + +/* + * id-slh-dsa-shake-192f OBJECT IDENTIFIER ::= { sigAlgs 29 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_192f[DER_OID_SZ_id_slh_dsa_shake_192f] = { + DER_OID_V_id_slh_dsa_shake_192f +}; + +/* + * id-slh-dsa-shake-256s OBJECT IDENTIFIER ::= { sigAlgs 30 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_256s[DER_OID_SZ_id_slh_dsa_shake_256s] = { + DER_OID_V_id_slh_dsa_shake_256s +}; + +/* + * id-slh-dsa-shake-256f OBJECT IDENTIFIER ::= { sigAlgs 31 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_256f[DER_OID_SZ_id_slh_dsa_shake_256f] = { + DER_OID_V_id_slh_dsa_shake_256f +}; + diff --git a/deps/openssl/config/archs/VC-WIN32/asm/providers/common/include/prov/der_ml_dsa.h b/deps/openssl/config/archs/VC-WIN32/asm/providers/common/include/prov/der_ml_dsa.h new file mode 100644 index 00000000000000..c55f780ab4527c --- /dev/null +++ b/deps/openssl/config/archs/VC-WIN32/asm/providers/common/include/prov/der_ml_dsa.h @@ -0,0 +1,40 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from providers/common/include/prov/der_ml_dsa.h.in + * + * Copyright 2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include "internal/der.h" +#include "crypto/ml_dsa.h" + +/* Well known OIDs precompiled */ + +/* + * id-ml-dsa-44 OBJECT IDENTIFIER ::= { sigAlgs 17 } + */ +#define DER_OID_V_id_ml_dsa_44 DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x11 +#define DER_OID_SZ_id_ml_dsa_44 11 +extern const unsigned char ossl_der_oid_id_ml_dsa_44[DER_OID_SZ_id_ml_dsa_44]; + +/* + * id-ml-dsa-65 OBJECT IDENTIFIER ::= { sigAlgs 18 } + */ +#define DER_OID_V_id_ml_dsa_65 DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x12 +#define DER_OID_SZ_id_ml_dsa_65 11 +extern const unsigned char ossl_der_oid_id_ml_dsa_65[DER_OID_SZ_id_ml_dsa_65]; + +/* + * id-ml-dsa-87 OBJECT IDENTIFIER ::= { sigAlgs 19 } + */ +#define DER_OID_V_id_ml_dsa_87 DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x13 +#define DER_OID_SZ_id_ml_dsa_87 11 +extern const unsigned char ossl_der_oid_id_ml_dsa_87[DER_OID_SZ_id_ml_dsa_87]; + + +int ossl_DER_w_algorithmIdentifier_ML_DSA(WPACKET *pkt, int tag, ML_DSA_KEY *key); diff --git a/deps/openssl/config/archs/VC-WIN32/asm/providers/common/include/prov/der_slh_dsa.h b/deps/openssl/config/archs/VC-WIN32/asm/providers/common/include/prov/der_slh_dsa.h new file mode 100644 index 00000000000000..760f8e7699be72 --- /dev/null +++ b/deps/openssl/config/archs/VC-WIN32/asm/providers/common/include/prov/der_slh_dsa.h @@ -0,0 +1,103 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from providers/common/include/prov/der_slh_dsa.h.in + * + * Copyright 2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include "internal/der.h" +#include "crypto/slh_dsa.h" + +/* Well known OIDs precompiled */ + +/* + * id-slh-dsa-sha2-128s OBJECT IDENTIFIER ::= { sigAlgs 20 } + */ +#define DER_OID_V_id_slh_dsa_sha2_128s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x14 +#define DER_OID_SZ_id_slh_dsa_sha2_128s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_128s[DER_OID_SZ_id_slh_dsa_sha2_128s]; + +/* + * id-slh-dsa-sha2-128f OBJECT IDENTIFIER ::= { sigAlgs 21 } + */ +#define DER_OID_V_id_slh_dsa_sha2_128f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x15 +#define DER_OID_SZ_id_slh_dsa_sha2_128f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_128f[DER_OID_SZ_id_slh_dsa_sha2_128f]; + +/* + * id-slh-dsa-sha2-192s OBJECT IDENTIFIER ::= { sigAlgs 22 } + */ +#define DER_OID_V_id_slh_dsa_sha2_192s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x16 +#define DER_OID_SZ_id_slh_dsa_sha2_192s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_192s[DER_OID_SZ_id_slh_dsa_sha2_192s]; + +/* + * id-slh-dsa-sha2-192f OBJECT IDENTIFIER ::= { sigAlgs 23 } + */ +#define DER_OID_V_id_slh_dsa_sha2_192f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x17 +#define DER_OID_SZ_id_slh_dsa_sha2_192f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_192f[DER_OID_SZ_id_slh_dsa_sha2_192f]; + +/* + * id-slh-dsa-sha2-256s OBJECT IDENTIFIER ::= { sigAlgs 24 } + */ +#define DER_OID_V_id_slh_dsa_sha2_256s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x18 +#define DER_OID_SZ_id_slh_dsa_sha2_256s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_256s[DER_OID_SZ_id_slh_dsa_sha2_256s]; + +/* + * id-slh-dsa-sha2-256f OBJECT IDENTIFIER ::= { sigAlgs 25 } + */ +#define DER_OID_V_id_slh_dsa_sha2_256f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x19 +#define DER_OID_SZ_id_slh_dsa_sha2_256f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_256f[DER_OID_SZ_id_slh_dsa_sha2_256f]; + +/* + * id-slh-dsa-shake-128s OBJECT IDENTIFIER ::= { sigAlgs 26 } + */ +#define DER_OID_V_id_slh_dsa_shake_128s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1A +#define DER_OID_SZ_id_slh_dsa_shake_128s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_128s[DER_OID_SZ_id_slh_dsa_shake_128s]; + +/* + * id-slh-dsa-shake-128f OBJECT IDENTIFIER ::= { sigAlgs 27 } + */ +#define DER_OID_V_id_slh_dsa_shake_128f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1B +#define DER_OID_SZ_id_slh_dsa_shake_128f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_128f[DER_OID_SZ_id_slh_dsa_shake_128f]; + +/* + * id-slh-dsa-shake-192s OBJECT IDENTIFIER ::= { sigAlgs 28 } + */ +#define DER_OID_V_id_slh_dsa_shake_192s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1C +#define DER_OID_SZ_id_slh_dsa_shake_192s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_192s[DER_OID_SZ_id_slh_dsa_shake_192s]; + +/* + * id-slh-dsa-shake-192f OBJECT IDENTIFIER ::= { sigAlgs 29 } + */ +#define DER_OID_V_id_slh_dsa_shake_192f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1D +#define DER_OID_SZ_id_slh_dsa_shake_192f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_192f[DER_OID_SZ_id_slh_dsa_shake_192f]; + +/* + * id-slh-dsa-shake-256s OBJECT IDENTIFIER ::= { sigAlgs 30 } + */ +#define DER_OID_V_id_slh_dsa_shake_256s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1E +#define DER_OID_SZ_id_slh_dsa_shake_256s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_256s[DER_OID_SZ_id_slh_dsa_shake_256s]; + +/* + * id-slh-dsa-shake-256f OBJECT IDENTIFIER ::= { sigAlgs 31 } + */ +#define DER_OID_V_id_slh_dsa_shake_256f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1F +#define DER_OID_SZ_id_slh_dsa_shake_256f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_256f[DER_OID_SZ_id_slh_dsa_shake_256f]; + + +int ossl_DER_w_algorithmIdentifier_SLH_DSA(WPACKET *pkt, int tag, SLH_DSA_KEY *key); diff --git a/deps/openssl/config/archs/VC-WIN32/asm_avx2/apps/progs.c b/deps/openssl/config/archs/VC-WIN32/asm_avx2/apps/progs.c index 43cef00799b86e..acc204a3e6e781 100644 --- a/deps/openssl/config/archs/VC-WIN32/asm_avx2/apps/progs.c +++ b/deps/openssl/config/archs/VC-WIN32/asm_avx2/apps/progs.c @@ -89,6 +89,7 @@ FUNCTION functions[] = { {FT_general, "s_time", s_time_main, s_time_options, NULL, NULL}, #endif {FT_general, "sess_id", sess_id_main, sess_id_options, NULL, NULL}, + {FT_general, "skeyutl", skeyutl_main, skeyutl_options, NULL, NULL}, {FT_general, "smime", smime_main, smime_options, NULL, NULL}, {FT_general, "speed", speed_main, speed_options, NULL, NULL}, {FT_general, "spkac", spkac_main, spkac_options, NULL, NULL}, @@ -225,9 +226,15 @@ FUNCTION functions[] = { {FT_cipher, "camellia-256-ecb", enc_main, enc_options, NULL}, #endif {FT_cipher, "base64", enc_main, enc_options, NULL}, -#ifdef ZLIB +#ifndef OPENSSL_NO_ZLIB {FT_cipher, "zlib", enc_main, enc_options, NULL}, #endif +#ifndef OPENSSL_NO_BROTLI + {FT_cipher, "brotli", enc_main, enc_options, NULL}, +#endif +#ifndef OPENSSL_NO_ZSTD + {FT_cipher, "zstd", enc_main, enc_options, NULL}, +#endif #ifndef OPENSSL_NO_DES {FT_cipher, "des", enc_main, enc_options, NULL}, #endif diff --git a/deps/openssl/config/archs/VC-WIN32/asm_avx2/configdata.pm b/deps/openssl/config/archs/VC-WIN32/asm_avx2/configdata.pm index e9d7ebaf5ec8e4..76d54ff3d0471e 100644 --- a/deps/openssl/config/archs/VC-WIN32/asm_avx2/configdata.pm +++ b/deps/openssl/config/archs/VC-WIN32/asm_avx2/configdata.pm @@ -19,6 +19,7 @@ our %config = ( "/nologo" ], "AS" => "nasm", + "ASFLAGS" => [], "CC" => "../config/fake_gcc.pl", "CFLAGS" => [ "/W3 /wd4090 /nologo /O2" @@ -29,6 +30,7 @@ our %config = ( "CPPINCLUDES" => [], "CXXFLAGS" => [], "FIPSKEY" => "f4556650ac31d35461610bac4ed81b1a181b2d8a43ea2854cbae22ca74560813", + "FIPS_VENDOR" => "OpenSSL FIPS Provider", "HASHBANGPERL" => "/usr/bin/env perl", "LD" => "link", "LDFLAGS" => [ @@ -43,7 +45,7 @@ our %config = ( "RANLIB" => "ranlib", "RC" => "rc", "RCFLAGS" => [], - "api" => "30000", + "api" => "30500", "b32" => "1", "b64" => "0", "b64l" => "0", @@ -65,11 +67,13 @@ our %config = ( "doc/build.info", "test/build.info", "engines/build.info", + "exporters/build.info", "crypto/objects/build.info", "crypto/buffer/build.info", "crypto/bio/build.info", "crypto/stack/build.info", "crypto/lhash/build.info", + "crypto/hashtable/build.info", "crypto/rand/build.info", "crypto/evp/build.info", "crypto/asn1/build.info", @@ -87,6 +91,7 @@ our %config = ( "crypto/md5/build.info", "crypto/sha/build.info", "crypto/mdc2/build.info", + "crypto/ml_kem/build.info", "crypto/hmac/build.info", "crypto/ripemd/build.info", "crypto/whrlpool/build.info", @@ -128,11 +133,19 @@ our %config = ( "crypto/cmp/build.info", "crypto/encode_decode/build.info", "crypto/ffc/build.info", + "crypto/hpke/build.info", + "crypto/thread/build.info", + "crypto/ml_dsa/build.info", + "crypto/slh_dsa/build.info", + "ssl/record/build.info", + "ssl/rio/build.info", + "ssl/quic/build.info", "apps/lib/build.info", "providers/common/build.info", "providers/implementations/build.info", "providers/fips/build.info", "doc/man1/build.info", + "ssl/record/methods/build.info", "providers/common/der/build.info", "providers/implementations/digests/build.info", "providers/implementations/ciphers/build.info", @@ -146,6 +159,7 @@ our %config = ( "providers/implementations/encode_decode/build.info", "providers/implementations/storemgmt/build.info", "providers/implementations/kem/build.info", + "providers/implementations/skeymgmt/build.info", "providers/implementations/rands/seeding/build.info" ], "build_metadata" => "", @@ -165,7 +179,7 @@ our %config = ( ], "dynamic_engines" => "0", "ex_libs" => [], - "full_version" => "3.0.17", + "full_version" => "3.5.1", "includes" => [], "lflags" => [], "lib_defines" => [ @@ -175,37 +189,51 @@ our %config = ( "major" => "3", "makedep_scheme" => "VC", "makedepcmd" => "\$(CC) /Zs /showIncludes", - "minor" => "0", + "minor" => "5", "openssl_api_defines" => [ - "OPENSSL_CONFIGURED_API=30000" + "OPENSSL_CONFIGURED_API=30500" ], "openssl_feature_defines" => [ "OPENSSL_RAND_SEED_OS", "OPENSSL_THREADS", "OPENSSL_NO_AFALGENG", "OPENSSL_NO_ASAN", + "OPENSSL_NO_BROTLI", + "OPENSSL_NO_BROTLI_DYNAMIC", "OPENSSL_NO_COMP", "OPENSSL_NO_CRYPTO_MDEBUG", "OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE", + "OPENSSL_NO_DEMOS", "OPENSSL_NO_DEVCRYPTOENG", "OPENSSL_NO_EC_NISTP_64_GCC_128", "OPENSSL_NO_EGD", "OPENSSL_NO_EXTERNAL_TESTS", + "OPENSSL_NO_FIPS_JITTER", "OPENSSL_NO_FUZZ_AFL", "OPENSSL_NO_FUZZ_LIBFUZZER", + "OPENSSL_NO_H3DEMO", + "OPENSSL_NO_HQINTEROP", + "OPENSSL_NO_JITTER", "OPENSSL_NO_KTLS", "OPENSSL_NO_LOADERENG", "OPENSSL_NO_MD2", "OPENSSL_NO_MSAN", + "OPENSSL_NO_PIE", "OPENSSL_NO_RC5", "OPENSSL_NO_SCTP", "OPENSSL_NO_SSL3", "OPENSSL_NO_SSL3_METHOD", + "OPENSSL_NO_SSLKEYLOG", + "OPENSSL_NO_TFO", "OPENSSL_NO_TRACE", "OPENSSL_NO_UBSAN", "OPENSSL_NO_UNIT_TEST", "OPENSSL_NO_UPLINK", "OPENSSL_NO_WEAK_SSL_CIPHERS", + "OPENSSL_NO_ZLIB", + "OPENSSL_NO_ZLIB_DYNAMIC", + "OPENSSL_NO_ZSTD", + "OPENSSL_NO_ZSTD_DYNAMIC", "OPENSSL_NO_DYNAMIC_ENGINE" ], "openssl_other_defines" => [ @@ -215,11 +243,11 @@ our %config = ( "OPENSSL_SYS_WIN32" ], "openssldir" => "", - "options" => "enable-ssl-trace enable-fips no-afalgeng no-asan no-buildtest-c++ no-comp no-crypto-mdebug no-crypto-mdebug-backtrace no-devcryptoeng no-dynamic-engine no-ec_nistp_64_gcc_128 no-egd no-external-tests no-fuzz-afl no-fuzz-libfuzzer no-ktls no-loadereng no-md2 no-msan no-rc5 no-sctp no-shared no-ssl3 no-ssl3-method no-trace no-ubsan no-unit-test no-uplink no-weak-ssl-ciphers no-zlib no-zlib-dynamic", - "patch" => "17", + "options" => "enable-ssl-trace enable-fips no-afalgeng no-asan no-brotli no-brotli-dynamic no-buildtest-c++ no-comp no-crypto-mdebug no-crypto-mdebug-backtrace no-demos no-devcryptoeng no-dynamic-engine no-ec_nistp_64_gcc_128 no-egd no-external-tests no-fips-jitter no-fuzz-afl no-fuzz-libfuzzer no-h3demo no-hqinterop no-jitter no-ktls no-loadereng no-md2 no-msan no-pie no-rc5 no-sctp no-shared no-ssl3 no-ssl3-method no-sslkeylog no-tfo no-trace no-ubsan no-unit-test no-uplink no-weak-ssl-ciphers no-zlib no-zlib-dynamic no-zstd no-zstd-dynamic", + "patch" => "1", "perl_archname" => "x86_64-linux-gnu-thread-multi", "perl_cmd" => "/usr/bin/perl", - "perl_version" => "5.38.2", + "perl_version" => "5.34.0", "perlargv" => [ "no-comp", "no-shared", @@ -249,6 +277,7 @@ our %config = ( "LDLIBS" => undef, "MT" => undef, "MTFLAGS" => undef, + "OBJCOPY" => undef, "OPENSSL_LOCAL_CONFIG_DIR" => undef, "PERL" => undef, "RANLIB" => undef, @@ -272,7 +301,7 @@ our %config = ( "shlib_version" => "3", "sourcedir" => ".", "target" => "VC-WIN32", - "version" => "3.0.17" + "version" => "3.5.1" ); our %target = ( "AR" => "lib", @@ -287,7 +316,7 @@ our %target = ( "LDFLAGS" => "/nologo /debug", "MT" => "mt", "MTFLAGS" => "-nologo", - "RANLIB" => "CODE(0x55c13a704328)", + "RANLIB" => "CODE(0x55b8f3b4a600)", "RC" => "rc", "_conf_fname_int" => [ "Configurations/00-base-templates.conf", @@ -370,6 +399,8 @@ our %target = ( our @disablables = ( "acvp-tests", "afalgeng", + "apps", + "argon2", "aria", "asan", "asm", @@ -380,11 +411,14 @@ our @disablables = ( "autoload-config", "bf", "blake2", + "brotli", + "brotli-dynamic", "buildtest-c++", "bulk", "cached-fetch", "camellia", "capieng", + "winstore", "cast", "chacha", "cmac", @@ -393,11 +427,16 @@ our @disablables = ( "comp", "crypto-mdebug", "ct", + "default-thread-pool", + "demos", + "h3demo", + "hqinterop", "deprecated", "des", "devcryptoeng", "dgram", "dh", + "docs", "dsa", "dso", "dtls", @@ -407,6 +446,7 @@ our @disablables = ( "ec_nistp_64_gcc_128", "ecdh", "ecdsa", + "ecx", "egd", "engine", "err", @@ -414,10 +454,15 @@ our @disablables = ( "filenames", "fips", "fips-securitychecks", + "fips-post", + "fips-jitter", "fuzz-afl", "fuzz-libfuzzer", "gost", + "http", "idea", + "integrity-only-ciphers", + "jitter", "ktls", "legacy", "loadereng", @@ -425,6 +470,8 @@ our @disablables = ( "md2", "md4", "mdc2", + "ml-dsa", + "ml-kem", "module", "msan", "multiblock", @@ -433,10 +480,13 @@ our @disablables = ( "ocsp", "padlockeng", "pic", + "pie", "pinshared", "poly1305", "posix-io", "psk", + "quic", + "unstable-qlog", "rc2", "rc4", "rc5", @@ -450,7 +500,9 @@ our @disablables = ( "shared", "siphash", "siv", + "slh-dsa", "sm2", + "sm2-precomp", "sm3", "sm4", "sock", @@ -461,9 +513,13 @@ our @disablables = ( "ssl-trace", "static-engine", "stdio", + "sslkeylog", "tests", + "tfo", + "thread-pool", "threads", "tls", + "tls-deprecated-ec", "trace", "ts", "ubsan", @@ -474,6 +530,8 @@ our @disablables = ( "whirlpool", "zlib", "zlib-dynamic", + "zstd", + "zstd-dynamic", "ssl3", "ssl3-method", "tls1", @@ -494,33 +552,45 @@ our @disablables_int = ( our %disabled = ( "afalgeng" => "option", "asan" => "default", + "brotli" => "default", + "brotli-dynamic" => "default", "buildtest-c++" => "default", "comp" => "option", "crypto-mdebug" => "default", "crypto-mdebug-backtrace" => "default", + "demos" => "default", "devcryptoeng" => "default", "dynamic-engine" => "cascade", "ec_nistp_64_gcc_128" => "default", "egd" => "default", "external-tests" => "default", + "fips-jitter" => "default", "fuzz-afl" => "default", "fuzz-libfuzzer" => "default", + "h3demo" => "default", + "hqinterop" => "default", + "jitter" => "default", "ktls" => "default", "loadereng" => "cascade", "md2" => "default", "msan" => "default", + "pie" => "default", "rc5" => "default", "sctp" => "default", "shared" => "option", "ssl3" => "default", "ssl3-method" => "default", + "sslkeylog" => "default", + "tfo" => "default", "trace" => "default", "ubsan" => "default", "unit-test" => "default", "uplink" => "cascade", "weak-ssl-ciphers" => "default", "zlib" => "default", - "zlib-dynamic" => "default" + "zlib-dynamic" => "default", + "zstd" => "default", + "zstd-dynamic" => "default" ); our %withargs = (); our %unified_info = ( @@ -746,6 +816,11 @@ our %unified_info = ( "pod" => "1" } }, + "doc/man1/openssl-skeyutl.pod" => { + "doc/man1/openssl-skeyutl.pod.in" => { + "pod" => "1" + } + }, "doc/man1/openssl-smime.pod" => { "doc/man1/openssl-smime.pod.in" => { "pod" => "1" @@ -803,6 +878,21 @@ our %unified_info = ( } }, "generate" => { + "exporters/OpenSSLConfig.cmake" => { + "exporter" => "cmake" + }, + "exporters/OpenSSLConfigVersion.cmake" => { + "exporter" => "cmake" + }, + "exporters/libcrypto.pc" => { + "exporter" => "pkg-config" + }, + "exporters/libssl.pc" => { + "exporter" => "pkg-config" + }, + "exporters/openssl.pc" => { + "exporter" => "pkg-config" + }, "include/openssl/configuration.h" => { "skip" => "1" } @@ -823,6 +913,9 @@ our %unified_info = ( "providers/liblegacy.a" => { "noinst" => "1" }, + "providers/libtemplate.a" => { + "noinst" => "1" + }, "test/libtestutil.a" => { "has_main" => "1", "noinst" => "1" @@ -840,6 +933,9 @@ our %unified_info = ( } }, "programs" => { + "fuzz/acert-test" => { + "noinst" => "1" + }, "fuzz/asn1-test" => { "noinst" => "1" }, @@ -870,9 +966,60 @@ our %unified_info = ( "fuzz/ct-test" => { "noinst" => "1" }, + "fuzz/decoder-test" => { + "noinst" => "1" + }, + "fuzz/dtlsclient-test" => { + "noinst" => "1" + }, + "fuzz/dtlsserver-test" => { + "noinst" => "1" + }, + "fuzz/hashtable-test" => { + "noinst" => "1" + }, + "fuzz/ml-dsa-test" => { + "noinst" => "1" + }, + "fuzz/ml-kem-test" => { + "noinst" => "1" + }, + "fuzz/pem-test" => { + "noinst" => "1" + }, + "fuzz/provider-test" => { + "noinst" => "1" + }, + "fuzz/punycode-test" => { + "noinst" => "1" + }, + "fuzz/quic-client-test" => { + "noinst" => "1" + }, + "fuzz/quic-lcidm-test" => { + "noinst" => "1" + }, + "fuzz/quic-rcidm-test" => { + "noinst" => "1" + }, + "fuzz/quic-server-test" => { + "noinst" => "1" + }, + "fuzz/quic-srtm-test" => { + "noinst" => "1" + }, "fuzz/server-test" => { "noinst" => "1" }, + "fuzz/slh-dsa-test" => { + "noinst" => "1" + }, + "fuzz/smime-test" => { + "noinst" => "1" + }, + "fuzz/v3name-test" => { + "noinst" => "1" + }, "fuzz/x509-test" => { "noinst" => "1" }, @@ -924,18 +1071,30 @@ our %unified_info = ( "test/bftest" => { "noinst" => "1" }, + "test/bio_addr_test" => { + "noinst" => "1" + }, + "test/bio_base64_test" => { + "noinst" => "1" + }, "test/bio_callback_test" => { "noinst" => "1" }, "test/bio_core_test" => { "noinst" => "1" }, + "test/bio_dgram_test" => { + "noinst" => "1" + }, "test/bio_enc_test" => { "noinst" => "1" }, "test/bio_memleak_test" => { "noinst" => "1" }, + "test/bio_meth_test" => { + "noinst" => "1" + }, "test/bio_prefix_text" => { "noinst" => "1" }, @@ -945,6 +1104,9 @@ our %unified_info = ( "test/bio_readbuffer_test" => { "noinst" => "1" }, + "test/bio_tfo_test" => { + "noinst" => "1" + }, "test/bioprinttest" => { "noinst" => "1" }, @@ -954,6 +1116,9 @@ our %unified_info = ( "test/bntest" => { "noinst" => "1" }, + "test/build_wincrypt_test" => { + "noinst" => "1" + }, "test/buildtest_c_aes" => { "noinst" => "1" }, @@ -969,6 +1134,9 @@ our %unified_info = ( "test/buildtest_c_buffer" => { "noinst" => "1" }, + "test/buildtest_c_byteorder" => { + "noinst" => "1" + }, "test/buildtest_c_camellia" => { "noinst" => "1" }, @@ -993,9 +1161,6 @@ our %unified_info = ( "test/buildtest_c_core_dispatch" => { "noinst" => "1" }, - "test/buildtest_c_core_names" => { - "noinst" => "1" - }, "test/buildtest_c_core_object" => { "noinst" => "1" }, @@ -1020,6 +1185,9 @@ our %unified_info = ( "test/buildtest_c_e_os2" => { "noinst" => "1" }, + "test/buildtest_c_e_ostime" => { + "noinst" => "1" + }, "test/buildtest_c_ebcdic" => { "noinst" => "1" }, @@ -1047,12 +1215,18 @@ our %unified_info = ( "test/buildtest_c_hmac" => { "noinst" => "1" }, + "test/buildtest_c_hpke" => { + "noinst" => "1" + }, "test/buildtest_c_http" => { "noinst" => "1" }, "test/buildtest_c_idea" => { "noinst" => "1" }, + "test/buildtest_c_indicator" => { + "noinst" => "1" + }, "test/buildtest_c_kdf" => { "noinst" => "1" }, @@ -1068,6 +1242,9 @@ our %unified_info = ( "test/buildtest_c_mdc2" => { "noinst" => "1" }, + "test/buildtest_c_ml_kem" => { + "noinst" => "1" + }, "test/buildtest_c_modes" => { "noinst" => "1" }, @@ -1098,6 +1275,9 @@ our %unified_info = ( "test/buildtest_c_provider" => { "noinst" => "1" }, + "test/buildtest_c_quic" => { + "noinst" => "1" + }, "test/buildtest_c_rand" => { "noinst" => "1" }, @@ -1140,6 +1320,9 @@ our %unified_info = ( "test/buildtest_c_symhacks" => { "noinst" => "1" }, + "test/buildtest_c_thread" => { + "noinst" => "1" + }, "test/buildtest_c_tls1" => { "noinst" => "1" }, @@ -1155,6 +1338,12 @@ our %unified_info = ( "test/buildtest_c_whrlpool" => { "noinst" => "1" }, + "test/byteorder_test" => { + "noinst" => "1" + }, + "test/ca_internals_test" => { + "noinst" => "1" + }, "test/casttest" => { "noinst" => "1" }, @@ -1239,6 +1428,9 @@ our %unified_info = ( "test/danetest" => { "noinst" => "1" }, + "test/decoder_propq_test" => { + "noinst" => "1" + }, "test/defltfips_test" => { "noinst" => "1" }, @@ -1311,15 +1503,24 @@ our %unified_info = ( "test/evp_pkey_ctx_new_from_name" => { "noinst" => "1" }, + "test/evp_pkey_dhkem_test" => { + "noinst" => "1" + }, "test/evp_pkey_dparams_test" => { "noinst" => "1" }, "test/evp_pkey_provided_test" => { "noinst" => "1" }, + "test/evp_skey_test" => { + "noinst" => "1" + }, "test/evp_test" => { "noinst" => "1" }, + "test/evp_xof_test" => { + "noinst" => "1" + }, "test/exdatatest" => { "noinst" => "1" }, @@ -1347,6 +1548,9 @@ our %unified_info = ( "test/hmactest" => { "noinst" => "1" }, + "test/hpke_test" => { + "noinst" => "1" + }, "test/http_test" => { "noinst" => "1" }, @@ -1356,12 +1560,18 @@ our %unified_info = ( "test/igetest" => { "noinst" => "1" }, + "test/json_test" => { + "noinst" => "1" + }, "test/keymgmt_internal_test" => { "noinst" => "1" }, "test/lhash_test" => { "noinst" => "1" }, + "test/list_test" => { + "noinst" => "1" + }, "test/localetest" => { "noinst" => "1" }, @@ -1371,9 +1581,21 @@ our %unified_info = ( "test/mdc2test" => { "noinst" => "1" }, + "test/membio_test" => { + "noinst" => "1" + }, "test/memleaktest" => { "noinst" => "1" }, + "test/ml_dsa_test" => { + "noinst" => "1" + }, + "test/ml_kem_evp_extra_test" => { + "noinst" => "1" + }, + "test/ml_kem_internal_test" => { + "noinst" => "1" + }, "test/modes_internal_test" => { "noinst" => "1" }, @@ -1392,6 +1614,9 @@ our %unified_info = ( "test/packettest" => { "noinst" => "1" }, + "test/pairwise_fail_test" => { + "noinst" => "1" + }, "test/param_build_test" => { "noinst" => "1" }, @@ -1416,6 +1641,9 @@ our %unified_info = ( "test/pemtest" => { "noinst" => "1" }, + "test/pkcs12_api_test" => { + "noinst" => "1" + }, "test/pkcs12_format_test" => { "noinst" => "1" }, @@ -1431,6 +1659,9 @@ our %unified_info = ( "test/poly1305_internal_test" => { "noinst" => "1" }, + "test/priority_queue_test" => { + "noinst" => "1" + }, "test/property_test" => { "noinst" => "1" }, @@ -1440,6 +1671,9 @@ our %unified_info = ( "test/provfetchtest" => { "noinst" => "1" }, + "test/provider_default_search_path_test" => { + "noinst" => "1" + }, "test/provider_fallback_test" => { "noinst" => "1" }, @@ -1458,6 +1692,72 @@ our %unified_info = ( "test/punycode_test" => { "noinst" => "1" }, + "test/quic_ackm_test" => { + "noinst" => "1" + }, + "test/quic_cc_test" => { + "noinst" => "1" + }, + "test/quic_cfq_test" => { + "noinst" => "1" + }, + "test/quic_client_test" => { + "noinst" => "1" + }, + "test/quic_fc_test" => { + "noinst" => "1" + }, + "test/quic_fifd_test" => { + "noinst" => "1" + }, + "test/quic_lcidm_test" => { + "noinst" => "1" + }, + "test/quic_multistream_test" => { + "noinst" => "1" + }, + "test/quic_newcid_test" => { + "noinst" => "1" + }, + "test/quic_qlog_test" => { + "noinst" => "1" + }, + "test/quic_radix_test" => { + "noinst" => "1" + }, + "test/quic_rcidm_test" => { + "noinst" => "1" + }, + "test/quic_record_test" => { + "noinst" => "1" + }, + "test/quic_srt_gen_test" => { + "noinst" => "1" + }, + "test/quic_srtm_test" => { + "noinst" => "1" + }, + "test/quic_stream_test" => { + "noinst" => "1" + }, + "test/quic_tserver_test" => { + "noinst" => "1" + }, + "test/quic_txp_test" => { + "noinst" => "1" + }, + "test/quic_txpim_test" => { + "noinst" => "1" + }, + "test/quic_wire_test" => { + "noinst" => "1" + }, + "test/quicapitest" => { + "noinst" => "1" + }, + "test/quicfaultstest" => { + "noinst" => "1" + }, "test/rand_status_test" => { "noinst" => "1" }, @@ -1473,12 +1773,15 @@ our %unified_info = ( "test/rc5test" => { "noinst" => "1" }, - "test/rdrand_sanitytest" => { + "test/rdcpu_sanitytest" => { "noinst" => "1" }, "test/recordlentest" => { "noinst" => "1" }, + "test/rpktest" => { + "noinst" => "1" + }, "test/rsa_complex" => { "noinst" => "1" }, @@ -1491,6 +1794,12 @@ our %unified_info = ( "test/rsa_test" => { "noinst" => "1" }, + "test/rsa_x931_test" => { + "noinst" => "1" + }, + "test/safe_math_test" => { + "noinst" => "1" + }, "test/sanitytest" => { "noinst" => "1" }, @@ -1506,6 +1815,9 @@ our %unified_info = ( "test/siphash_internal_test" => { "noinst" => "1" }, + "test/slh_dsa_test" => { + "noinst" => "1" + }, "test/sm2_internal_test" => { "noinst" => "1" }, @@ -1527,6 +1839,9 @@ our %unified_info = ( "test/ssl_ctx_test" => { "noinst" => "1" }, + "test/ssl_handshake_rtt_test" => { + "noinst" => "1" + }, "test/ssl_old_test" => { "noinst" => "1" }, @@ -1548,12 +1863,18 @@ our %unified_info = ( "test/stack_test" => { "noinst" => "1" }, + "test/strtoultest" => { + "noinst" => "1" + }, "test/sysdefaulttest" => { "noinst" => "1" }, "test/test_test" => { "noinst" => "1" }, + "test/threadpool_test" => { + "noinst" => "1" + }, "test/threadstest" => { "noinst" => "1" }, @@ -1563,12 +1884,18 @@ our %unified_info = ( "test/time_offset_test" => { "noinst" => "1" }, + "test/time_test" => { + "noinst" => "1" + }, "test/tls13ccstest" => { "noinst" => "1" }, "test/tls13encryptiontest" => { "noinst" => "1" }, + "test/tls13groupselection_test" => { + "noinst" => "1" + }, "test/trace_api_test" => { "noinst" => "1" }, @@ -1596,6 +1923,9 @@ our %unified_info = ( "test/wpackettest" => { "noinst" => "1" }, + "test/x509_acert_test" => { + "noinst" => "1" + }, "test/x509_check_cert_pkey_test" => { "noinst" => "1" }, @@ -1605,6 +1935,15 @@ our %unified_info = ( "test/x509_internal_test" => { "noinst" => "1" }, + "test/x509_load_cert_file_test" => { + "noinst" => "1" + }, + "test/x509_req_test" => { + "noinst" => "1" + }, + "test/x509_test" => { + "noinst" => "1" + }, "test/x509_time_test" => { "noinst" => "1" }, @@ -1704,6 +2043,9 @@ our %unified_info = ( "MD5_ASM", "RC4_ASM" ], + "test/endecode_test" => [ + "STATIC_LEGACY" + ], "test/evp_extra_test" => [ "STATIC_LEGACY" ], @@ -1716,14 +2058,21 @@ our %unified_info = ( }, "depends" => { "" => [ + "OpenSSLConfigVersion.cmake", + "crypto/params_idx.c", + "exporters/OpenSSLConfigVersion.cmake", + "exporters/openssl.pc", "include/crypto/bn_conf.h", "include/crypto/dso_conf.h", + "include/internal/param_names.h", "include/openssl/asn1.h", "include/openssl/asn1t.h", "include/openssl/bio.h", "include/openssl/cmp.h", "include/openssl/cms.h", + "include/openssl/comp.h", "include/openssl/conf.h", + "include/openssl/core_names.h", "include/openssl/crmf.h", "include/openssl/crypto.h", "include/openssl/ct.h", @@ -1740,10 +2089,22 @@ our %unified_info = ( "include/openssl/ssl.h", "include/openssl/ui.h", "include/openssl/x509.h", + "include/openssl/x509_acert.h", "include/openssl/x509_vfy.h", "include/openssl/x509v3.h", + "openssl.pc", "test/provider_internal_test.cnf" ], + "OpenSSLConfig.cmake" => [ + "builddata.pm" + ], + "OpenSSLConfigVersion.cmake" => [ + "OpenSSLConfig.cmake", + "builddata.pm" + ], + "apps/ca_internals_test-bin-ca.o" => [ + "apps/progs.h" + ], "apps/lib/cmp_client_test-bin-cmp_mock_srv.o" => [ "apps/progs.h" ], @@ -1889,6 +2250,9 @@ our %unified_info = ( "apps/openssl-bin-sess_id.o" => [ "apps/progs.h" ], + "apps/openssl-bin-skeyutl.o" => [ + "apps/progs.h" + ], "apps/openssl-bin-smime.o" => [ "apps/progs.h" ], @@ -1977,6 +2341,9 @@ our %unified_info = ( "crypto/libcrypto-lib-info.o" => [ "crypto/buildinf.h" ], + "crypto/params_idx.c" => [ + "util/perl|OpenSSL/paramnames.pm" + ], "crypto/rc4/rc4-586.S" => [ "crypto/perlasm/x86asm.pl" ], @@ -2142,6 +2509,9 @@ our %unified_info = ( "doc/html/man1/openssl-sess_id.html" => [ "doc/man1/openssl-sess_id.pod" ], + "doc/html/man1/openssl-skeyutl.html" => [ + "doc/man1/openssl-skeyutl.pod" + ], "doc/html/man1/openssl-smime.html" => [ "doc/man1/openssl-smime.pod" ], @@ -2283,6 +2653,9 @@ our %unified_info = ( "doc/html/man3/BIO_get_ex_new_index.html" => [ "doc/man3/BIO_get_ex_new_index.pod" ], + "doc/html/man3/BIO_get_rpoll_descriptor.html" => [ + "doc/man3/BIO_get_rpoll_descriptor.pod" + ], "doc/html/man3/BIO_meth_new.html" => [ "doc/man3/BIO_meth_new.pod" ], @@ -2319,6 +2692,9 @@ our %unified_info = ( "doc/html/man3/BIO_s_datagram.html" => [ "doc/man3/BIO_s_datagram.pod" ], + "doc/html/man3/BIO_s_dgram_pair.html" => [ + "doc/man3/BIO_s_dgram_pair.pod" + ], "doc/html/man3/BIO_s_fd.html" => [ "doc/man3/BIO_s_fd.pod" ], @@ -2334,6 +2710,9 @@ our %unified_info = ( "doc/html/man3/BIO_s_socket.html" => [ "doc/man3/BIO_s_socket.pod" ], + "doc/html/man3/BIO_sendmmsg.html" => [ + "doc/man3/BIO_sendmmsg.pod" + ], "doc/html/man3/BIO_set_callback.html" => [ "doc/man3/BIO_set_callback.pod" ], @@ -2406,6 +2785,9 @@ our %unified_info = ( "doc/html/man3/BUF_MEM_new.html" => [ "doc/man3/BUF_MEM_new.pod" ], + "doc/html/man3/CMAC_CTX.html" => [ + "doc/man3/CMAC_CTX.pod" + ], "doc/html/man3/CMS_EncryptedData_decrypt.html" => [ "doc/man3/CMS_EncryptedData_decrypt.pod" ], @@ -2472,6 +2854,9 @@ our %unified_info = ( "doc/html/man3/CMS_verify_receipt.html" => [ "doc/man3/CMS_verify_receipt.pod" ], + "doc/html/man3/COMP_CTX_new.html" => [ + "doc/man3/COMP_CTX_new.pod" + ], "doc/html/man3/CONF_modules_free.html" => [ "doc/man3/CONF_modules_free.pod" ], @@ -2571,6 +2956,12 @@ our %unified_info = ( "doc/html/man3/DTLS_set_timer_cb.html" => [ "doc/man3/DTLS_set_timer_cb.pod" ], + "doc/html/man3/DTLSv1_get_timeout.html" => [ + "doc/man3/DTLSv1_get_timeout.pod" + ], + "doc/html/man3/DTLSv1_handle_timeout.html" => [ + "doc/man3/DTLSv1_handle_timeout.pod" + ], "doc/html/man3/DTLSv1_listen.html" => [ "doc/man3/DTLSv1_listen.pod" ], @@ -2709,6 +3100,9 @@ our %unified_info = ( "doc/html/man3/EVP_PKEY_CTX_get0_pkey.html" => [ "doc/man3/EVP_PKEY_CTX_get0_pkey.pod" ], + "doc/html/man3/EVP_PKEY_CTX_get_algor.html" => [ + "doc/man3/EVP_PKEY_CTX_get_algor.pod" + ], "doc/html/man3/EVP_PKEY_CTX_new.html" => [ "doc/man3/EVP_PKEY_CTX_new.pod" ], @@ -2826,6 +3220,12 @@ our %unified_info = ( "doc/html/man3/EVP_SIGNATURE.html" => [ "doc/man3/EVP_SIGNATURE.pod" ], + "doc/html/man3/EVP_SKEY.html" => [ + "doc/man3/EVP_SKEY.pod" + ], + "doc/html/man3/EVP_SKEYMGMT.html" => [ + "doc/man3/EVP_SKEYMGMT.pod" + ], "doc/html/man3/EVP_SealInit.html" => [ "doc/man3/EVP_SealInit.pod" ], @@ -2913,6 +3313,9 @@ our %unified_info = ( "doc/html/man3/EVP_whirlpool.html" => [ "doc/man3/EVP_whirlpool.pod" ], + "doc/html/man3/GENERAL_NAME.html" => [ + "doc/man3/GENERAL_NAME.pod" + ], "doc/html/man3/HMAC.html" => [ "doc/man3/HMAC.pod" ], @@ -2985,9 +3388,15 @@ our %unified_info = ( "doc/html/man3/OPENSSL_load_builtin_modules.html" => [ "doc/man3/OPENSSL_load_builtin_modules.pod" ], + "doc/html/man3/OPENSSL_load_u16_le.html" => [ + "doc/man3/OPENSSL_load_u16_le.pod" + ], "doc/html/man3/OPENSSL_malloc.html" => [ "doc/man3/OPENSSL_malloc.pod" ], + "doc/html/man3/OPENSSL_riscvcap.html" => [ + "doc/man3/OPENSSL_riscvcap.pod" + ], "doc/html/man3/OPENSSL_s390xcap.html" => [ "doc/man3/OPENSSL_s390xcap.pod" ], @@ -3003,12 +3412,18 @@ our %unified_info = ( "doc/html/man3/OSSL_CALLBACK.html" => [ "doc/man3/OSSL_CALLBACK.pod" ], + "doc/html/man3/OSSL_CMP_ATAV_set0.html" => [ + "doc/man3/OSSL_CMP_ATAV_set0.pod" + ], "doc/html/man3/OSSL_CMP_CTX_new.html" => [ "doc/man3/OSSL_CMP_CTX_new.pod" ], "doc/html/man3/OSSL_CMP_HDR_get0_transactionID.html" => [ "doc/man3/OSSL_CMP_HDR_get0_transactionID.pod" ], + "doc/html/man3/OSSL_CMP_ITAV_new_caCerts.html" => [ + "doc/man3/OSSL_CMP_ITAV_new_caCerts.pod" + ], "doc/html/man3/OSSL_CMP_ITAV_set0.html" => [ "doc/man3/OSSL_CMP_ITAV_set0.pod" ], @@ -3078,9 +3493,18 @@ our %unified_info = ( "doc/html/man3/OSSL_ENCODER_to_bio.html" => [ "doc/man3/OSSL_ENCODER_to_bio.pod" ], + "doc/html/man3/OSSL_ERR_STATE_save.html" => [ + "doc/man3/OSSL_ERR_STATE_save.pod" + ], "doc/html/man3/OSSL_ESS_check_signing_certs.html" => [ "doc/man3/OSSL_ESS_check_signing_certs.pod" ], + "doc/html/man3/OSSL_GENERAL_NAMES_print.html" => [ + "doc/man3/OSSL_GENERAL_NAMES_print.pod" + ], + "doc/html/man3/OSSL_HPKE_CTX_new.html" => [ + "doc/man3/OSSL_HPKE_CTX_new.pod" + ], "doc/html/man3/OSSL_HTTP_REQ_CTX.html" => [ "doc/man3/OSSL_HTTP_REQ_CTX.pod" ], @@ -3090,12 +3514,24 @@ our %unified_info = ( "doc/html/man3/OSSL_HTTP_transfer.html" => [ "doc/man3/OSSL_HTTP_transfer.pod" ], + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX.html" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX.pod" + ], + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX_print.html" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX_print.pod" + ], + "doc/html/man3/OSSL_INDICATOR_set_callback.html" => [ + "doc/man3/OSSL_INDICATOR_set_callback.pod" + ], "doc/html/man3/OSSL_ITEM.html" => [ "doc/man3/OSSL_ITEM.pod" ], "doc/html/man3/OSSL_LIB_CTX.html" => [ "doc/man3/OSSL_LIB_CTX.pod" ], + "doc/html/man3/OSSL_LIB_CTX_set_conf_diagnostics.html" => [ + "doc/man3/OSSL_LIB_CTX_set_conf_diagnostics.pod" + ], "doc/html/man3/OSSL_PARAM.html" => [ "doc/man3/OSSL_PARAM.pod" ], @@ -3111,9 +3547,15 @@ our %unified_info = ( "doc/html/man3/OSSL_PARAM_int.html" => [ "doc/man3/OSSL_PARAM_int.pod" ], + "doc/html/man3/OSSL_PARAM_print_to_bio.html" => [ + "doc/man3/OSSL_PARAM_print_to_bio.pod" + ], "doc/html/man3/OSSL_PROVIDER.html" => [ "doc/man3/OSSL_PROVIDER.pod" ], + "doc/html/man3/OSSL_QUIC_client_method.html" => [ + "doc/man3/OSSL_QUIC_client_method.pod" + ], "doc/html/man3/OSSL_SELF_TEST_new.html" => [ "doc/man3/OSSL_SELF_TEST_new.pod" ], @@ -3138,6 +3580,9 @@ our %unified_info = ( "doc/html/man3/OSSL_STORE_open.html" => [ "doc/man3/OSSL_STORE_open.pod" ], + "doc/html/man3/OSSL_sleep.html" => [ + "doc/man3/OSSL_sleep.pod" + ], "doc/html/man3/OSSL_trace_enabled.html" => [ "doc/man3/OSSL_trace_enabled.pod" ], @@ -3153,6 +3598,9 @@ our %unified_info = ( "doc/html/man3/OpenSSL_version.html" => [ "doc/man3/OpenSSL_version.pod" ], + "doc/html/man3/PBMAC1_get1_pbkdf2_param.html" => [ + "doc/man3/PBMAC1_get1_pbkdf2_param.pod" + ], "doc/html/man3/PEM_X509_INFO_read_bio_ex.html" => [ "doc/man3/PEM_X509_INFO_read_bio_ex.pod" ], @@ -3189,6 +3637,9 @@ our %unified_info = ( "doc/html/man3/PKCS12_SAFEBAG_get1_cert.html" => [ "doc/man3/PKCS12_SAFEBAG_get1_cert.pod" ], + "doc/html/man3/PKCS12_SAFEBAG_set0_attrs.html" => [ + "doc/man3/PKCS12_SAFEBAG_set0_attrs.pod" + ], "doc/html/man3/PKCS12_add1_attr_by_NID.html" => [ "doc/man3/PKCS12_add1_attr_by_NID.pod" ], @@ -3462,6 +3913,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set0_CA_list.html" => [ "doc/man3/SSL_CTX_set0_CA_list.pod" ], + "doc/html/man3/SSL_CTX_set1_cert_comp_preference.html" => [ + "doc/man3/SSL_CTX_set1_cert_comp_preference.pod" + ], "doc/html/man3/SSL_CTX_set1_curves.html" => [ "doc/man3/SSL_CTX_set1_curves.pod" ], @@ -3501,6 +3955,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_default_passwd_cb.html" => [ "doc/man3/SSL_CTX_set_default_passwd_cb.pod" ], + "doc/html/man3/SSL_CTX_set_domain_flags.html" => [ + "doc/man3/SSL_CTX_set_domain_flags.pod" + ], "doc/html/man3/SSL_CTX_set_generate_session_id.html" => [ "doc/man3/SSL_CTX_set_generate_session_id.pod" ], @@ -3522,6 +3979,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_msg_callback.html" => [ "doc/man3/SSL_CTX_set_msg_callback.pod" ], + "doc/html/man3/SSL_CTX_set_new_pending_conn_cb.html" => [ + "doc/man3/SSL_CTX_set_new_pending_conn_cb.pod" + ], "doc/html/man3/SSL_CTX_set_num_tickets.html" => [ "doc/man3/SSL_CTX_set_num_tickets.pod" ], @@ -3636,6 +4096,9 @@ our %unified_info = ( "doc/html/man3/SSL_accept.html" => [ "doc/man3/SSL_accept.pod" ], + "doc/html/man3/SSL_accept_stream.html" => [ + "doc/man3/SSL_accept_stream.pod" + ], "doc/html/man3/SSL_alert_type_string.html" => [ "doc/man3/SSL_alert_type_string.pod" ], @@ -3663,9 +4126,21 @@ our %unified_info = ( "doc/html/man3/SSL_free.html" => [ "doc/man3/SSL_free.pod" ], + "doc/html/man3/SSL_get0_connection.html" => [ + "doc/man3/SSL_get0_connection.pod" + ], + "doc/html/man3/SSL_get0_group_name.html" => [ + "doc/man3/SSL_get0_group_name.pod" + ], + "doc/html/man3/SSL_get0_peer_rpk.html" => [ + "doc/man3/SSL_get0_peer_rpk.pod" + ], "doc/html/man3/SSL_get0_peer_scts.html" => [ "doc/man3/SSL_get0_peer_scts.pod" ], + "doc/html/man3/SSL_get1_builtin_sigalgs.html" => [ + "doc/man3/SSL_get1_builtin_sigalgs.pod" + ], "doc/html/man3/SSL_get_SSL_CTX.html" => [ "doc/man3/SSL_get_SSL_CTX.pod" ], @@ -3681,6 +4156,9 @@ our %unified_info = ( "doc/html/man3/SSL_get_client_random.html" => [ "doc/man3/SSL_get_client_random.pod" ], + "doc/html/man3/SSL_get_conn_close_info.html" => [ + "doc/man3/SSL_get_conn_close_info.pod" + ], "doc/html/man3/SSL_get_current_cipher.html" => [ "doc/man3/SSL_get_current_cipher.pod" ], @@ -3690,12 +4168,18 @@ our %unified_info = ( "doc/html/man3/SSL_get_error.html" => [ "doc/man3/SSL_get_error.pod" ], + "doc/html/man3/SSL_get_event_timeout.html" => [ + "doc/man3/SSL_get_event_timeout.pod" + ], "doc/html/man3/SSL_get_extms_support.html" => [ "doc/man3/SSL_get_extms_support.pod" ], "doc/html/man3/SSL_get_fd.html" => [ "doc/man3/SSL_get_fd.pod" ], + "doc/html/man3/SSL_get_handshake_rtt.html" => [ + "doc/man3/SSL_get_handshake_rtt.pod" + ], "doc/html/man3/SSL_get_peer_cert_chain.html" => [ "doc/man3/SSL_get_peer_cert_chain.pod" ], @@ -3714,12 +4198,24 @@ our %unified_info = ( "doc/html/man3/SSL_get_rbio.html" => [ "doc/man3/SSL_get_rbio.pod" ], + "doc/html/man3/SSL_get_rpoll_descriptor.html" => [ + "doc/man3/SSL_get_rpoll_descriptor.pod" + ], "doc/html/man3/SSL_get_session.html" => [ "doc/man3/SSL_get_session.pod" ], "doc/html/man3/SSL_get_shared_sigalgs.html" => [ "doc/man3/SSL_get_shared_sigalgs.pod" ], + "doc/html/man3/SSL_get_stream_id.html" => [ + "doc/man3/SSL_get_stream_id.pod" + ], + "doc/html/man3/SSL_get_stream_read_state.html" => [ + "doc/man3/SSL_get_stream_read_state.pod" + ], + "doc/html/man3/SSL_get_value_uint.html" => [ + "doc/man3/SSL_get_value_uint.pod" + ], "doc/html/man3/SSL_get_verify_result.html" => [ "doc/man3/SSL_get_verify_result.pod" ], @@ -3729,9 +4225,15 @@ our %unified_info = ( "doc/html/man3/SSL_group_to_name.html" => [ "doc/man3/SSL_group_to_name.pod" ], + "doc/html/man3/SSL_handle_events.html" => [ + "doc/man3/SSL_handle_events.pod" + ], "doc/html/man3/SSL_in_init.html" => [ "doc/man3/SSL_in_init.pod" ], + "doc/html/man3/SSL_inject_net_dgram.html" => [ + "doc/man3/SSL_inject_net_dgram.pod" + ], "doc/html/man3/SSL_key_update.html" => [ "doc/man3/SSL_key_update.pod" ], @@ -3744,9 +4246,21 @@ our %unified_info = ( "doc/html/man3/SSL_new.html" => [ "doc/man3/SSL_new.pod" ], + "doc/html/man3/SSL_new_domain.html" => [ + "doc/man3/SSL_new_domain.pod" + ], + "doc/html/man3/SSL_new_listener.html" => [ + "doc/man3/SSL_new_listener.pod" + ], + "doc/html/man3/SSL_new_stream.html" => [ + "doc/man3/SSL_new_stream.pod" + ], "doc/html/man3/SSL_pending.html" => [ "doc/man3/SSL_pending.pod" ], + "doc/html/man3/SSL_poll.html" => [ + "doc/man3/SSL_poll.pod" + ], "doc/html/man3/SSL_read.html" => [ "doc/man3/SSL_read.pod" ], @@ -3762,24 +4276,45 @@ our %unified_info = ( "doc/html/man3/SSL_set1_host.html" => [ "doc/man3/SSL_set1_host.pod" ], + "doc/html/man3/SSL_set1_initial_peer_addr.html" => [ + "doc/man3/SSL_set1_initial_peer_addr.pod" + ], + "doc/html/man3/SSL_set1_server_cert_type.html" => [ + "doc/man3/SSL_set1_server_cert_type.pod" + ], "doc/html/man3/SSL_set_async_callback.html" => [ "doc/man3/SSL_set_async_callback.pod" ], "doc/html/man3/SSL_set_bio.html" => [ "doc/man3/SSL_set_bio.pod" ], + "doc/html/man3/SSL_set_blocking_mode.html" => [ + "doc/man3/SSL_set_blocking_mode.pod" + ], "doc/html/man3/SSL_set_connect_state.html" => [ "doc/man3/SSL_set_connect_state.pod" ], + "doc/html/man3/SSL_set_default_stream_mode.html" => [ + "doc/man3/SSL_set_default_stream_mode.pod" + ], "doc/html/man3/SSL_set_fd.html" => [ "doc/man3/SSL_set_fd.pod" ], + "doc/html/man3/SSL_set_incoming_stream_policy.html" => [ + "doc/man3/SSL_set_incoming_stream_policy.pod" + ], + "doc/html/man3/SSL_set_quic_tls_cbs.html" => [ + "doc/man3/SSL_set_quic_tls_cbs.pod" + ], "doc/html/man3/SSL_set_retry_verify.html" => [ "doc/man3/SSL_set_retry_verify.pod" ], "doc/html/man3/SSL_set_session.html" => [ "doc/man3/SSL_set_session.pod" ], + "doc/html/man3/SSL_set_session_secret_cb.html" => [ + "doc/man3/SSL_set_session_secret_cb.pod" + ], "doc/html/man3/SSL_set_shutdown.html" => [ "doc/man3/SSL_set_shutdown.pod" ], @@ -3792,6 +4327,12 @@ our %unified_info = ( "doc/html/man3/SSL_state_string.html" => [ "doc/man3/SSL_state_string.pod" ], + "doc/html/man3/SSL_stream_conclude.html" => [ + "doc/man3/SSL_stream_conclude.pod" + ], + "doc/html/man3/SSL_stream_reset.html" => [ + "doc/man3/SSL_stream_reset.pod" + ], "doc/html/man3/SSL_want.html" => [ "doc/man3/SSL_want.pod" ], @@ -3801,8 +4342,8 @@ our %unified_info = ( "doc/html/man3/TS_RESP_CTX_new.html" => [ "doc/man3/TS_RESP_CTX_new.pod" ], - "doc/html/man3/TS_VERIFY_CTX_set_certs.html" => [ - "doc/man3/TS_VERIFY_CTX_set_certs.pod" + "doc/html/man3/TS_VERIFY_CTX.html" => [ + "doc/man3/TS_VERIFY_CTX.pod" ], "doc/html/man3/UI_STRING.html" => [ "doc/man3/UI_STRING.pod" @@ -3822,6 +4363,21 @@ our %unified_info = ( "doc/html/man3/X509V3_set_ctx.html" => [ "doc/man3/X509V3_set_ctx.pod" ], + "doc/html/man3/X509_ACERT_add1_attr.html" => [ + "doc/man3/X509_ACERT_add1_attr.pod" + ], + "doc/html/man3/X509_ACERT_add_attr_nconf.html" => [ + "doc/man3/X509_ACERT_add_attr_nconf.pod" + ], + "doc/html/man3/X509_ACERT_get0_holder_baseCertId.html" => [ + "doc/man3/X509_ACERT_get0_holder_baseCertId.pod" + ], + "doc/html/man3/X509_ACERT_get_attr.html" => [ + "doc/man3/X509_ACERT_get_attr.pod" + ], + "doc/html/man3/X509_ACERT_print_ex.html" => [ + "doc/man3/X509_ACERT_print_ex.pod" + ], "doc/html/man3/X509_ALGOR_dup.html" => [ "doc/man3/X509_ALGOR_dup.pod" ], @@ -3870,6 +4426,9 @@ our %unified_info = ( "doc/html/man3/X509_SIG_get0.html" => [ "doc/man3/X509_SIG_get0.pod" ], + "doc/html/man3/X509_STORE_CTX_get_by_subject.html" => [ + "doc/man3/X509_STORE_CTX_get_by_subject.pod" + ], "doc/html/man3/X509_STORE_CTX_get_error.html" => [ "doc/man3/X509_STORE_CTX_get_error.pod" ], @@ -3936,6 +4495,9 @@ our %unified_info = ( "doc/html/man3/X509_get0_uids.html" => [ "doc/man3/X509_get0_uids.pod" ], + "doc/html/man3/X509_get_default_cert_file.html" => [ + "doc/man3/X509_get_default_cert_file.pod" + ], "doc/html/man3/X509_get_extension_flags.html" => [ "doc/man3/X509_get_extension_flags.pod" ], @@ -4059,9 +4621,15 @@ our %unified_info = ( "doc/html/man7/EVP_CIPHER-SM4.html" => [ "doc/man7/EVP_CIPHER-SM4.pod" ], + "doc/html/man7/EVP_KDF-ARGON2.html" => [ + "doc/man7/EVP_KDF-ARGON2.pod" + ], "doc/html/man7/EVP_KDF-HKDF.html" => [ "doc/man7/EVP_KDF-HKDF.pod" ], + "doc/html/man7/EVP_KDF-HMAC-DRBG.html" => [ + "doc/man7/EVP_KDF-HMAC-DRBG.pod" + ], "doc/html/man7/EVP_KDF-KB.html" => [ "doc/man7/EVP_KDF-KB.pod" ], @@ -4077,6 +4645,9 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-PKCS12KDF.html" => [ "doc/man7/EVP_KDF-PKCS12KDF.pod" ], + "doc/html/man7/EVP_KDF-PVKKDF.html" => [ + "doc/man7/EVP_KDF-PVKKDF.pod" + ], "doc/html/man7/EVP_KDF-SCRYPT.html" => [ "doc/man7/EVP_KDF-SCRYPT.pod" ], @@ -4101,9 +4672,18 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-X963.html" => [ "doc/man7/EVP_KDF-X963.pod" ], + "doc/html/man7/EVP_KEM-EC.html" => [ + "doc/man7/EVP_KEM-EC.pod" + ], + "doc/html/man7/EVP_KEM-ML-KEM.html" => [ + "doc/man7/EVP_KEM-ML-KEM.pod" + ], "doc/html/man7/EVP_KEM-RSA.html" => [ "doc/man7/EVP_KEM-RSA.pod" ], + "doc/html/man7/EVP_KEM-X25519.html" => [ + "doc/man7/EVP_KEM-X25519.pod" + ], "doc/html/man7/EVP_KEYEXCH-DH.html" => [ "doc/man7/EVP_KEYEXCH-DH.pod" ], @@ -4137,6 +4717,9 @@ our %unified_info = ( "doc/html/man7/EVP_MD-BLAKE2.html" => [ "doc/man7/EVP_MD-BLAKE2.pod" ], + "doc/html/man7/EVP_MD-KECCAK.html" => [ + "doc/man7/EVP_MD-KECCAK.pod" + ], "doc/html/man7/EVP_MD-MD2.html" => [ "doc/man7/EVP_MD-MD2.pod" ], @@ -4194,15 +4777,27 @@ our %unified_info = ( "doc/html/man7/EVP_PKEY-HMAC.html" => [ "doc/man7/EVP_PKEY-HMAC.pod" ], + "doc/html/man7/EVP_PKEY-ML-DSA.html" => [ + "doc/man7/EVP_PKEY-ML-DSA.pod" + ], + "doc/html/man7/EVP_PKEY-ML-KEM.html" => [ + "doc/man7/EVP_PKEY-ML-KEM.pod" + ], "doc/html/man7/EVP_PKEY-RSA.html" => [ "doc/man7/EVP_PKEY-RSA.pod" ], + "doc/html/man7/EVP_PKEY-SLH-DSA.html" => [ + "doc/man7/EVP_PKEY-SLH-DSA.pod" + ], "doc/html/man7/EVP_PKEY-SM2.html" => [ "doc/man7/EVP_PKEY-SM2.pod" ], "doc/html/man7/EVP_PKEY-X25519.html" => [ "doc/man7/EVP_PKEY-X25519.pod" ], + "doc/html/man7/EVP_RAND-CRNG-TEST.html" => [ + "doc/man7/EVP_RAND-CRNG-TEST.pod" + ], "doc/html/man7/EVP_RAND-CTR-DRBG.html" => [ "doc/man7/EVP_RAND-CTR-DRBG.pod" ], @@ -4212,6 +4807,9 @@ our %unified_info = ( "doc/html/man7/EVP_RAND-HMAC-DRBG.html" => [ "doc/man7/EVP_RAND-HMAC-DRBG.pod" ], + "doc/html/man7/EVP_RAND-JITTER.html" => [ + "doc/man7/EVP_RAND-JITTER.pod" + ], "doc/html/man7/EVP_RAND-SEED-SRC.html" => [ "doc/man7/EVP_RAND-SEED-SRC.pod" ], @@ -4233,9 +4831,15 @@ our %unified_info = ( "doc/html/man7/EVP_SIGNATURE-HMAC.html" => [ "doc/man7/EVP_SIGNATURE-HMAC.pod" ], + "doc/html/man7/EVP_SIGNATURE-ML-DSA.html" => [ + "doc/man7/EVP_SIGNATURE-ML-DSA.pod" + ], "doc/html/man7/EVP_SIGNATURE-RSA.html" => [ "doc/man7/EVP_SIGNATURE-RSA.pod" ], + "doc/html/man7/EVP_SIGNATURE-SLH-DSA.html" => [ + "doc/man7/EVP_SIGNATURE-SLH-DSA.pod" + ], "doc/html/man7/OSSL_PROVIDER-FIPS.html" => [ "doc/man7/OSSL_PROVIDER-FIPS.pod" ], @@ -4251,6 +4855,9 @@ our %unified_info = ( "doc/html/man7/OSSL_PROVIDER-null.html" => [ "doc/man7/OSSL_PROVIDER-null.pod" ], + "doc/html/man7/OSSL_STORE-winstore.html" => [ + "doc/man7/OSSL_STORE-winstore.pod" + ], "doc/html/man7/RAND.html" => [ "doc/man7/RAND.pod" ], @@ -4263,9 +4870,6 @@ our %unified_info = ( "doc/html/man7/bio.html" => [ "doc/man7/bio.pod" ], - "doc/html/man7/crypto.html" => [ - "doc/man7/crypto.pod" - ], "doc/html/man7/ct.html" => [ "doc/man7/ct.pod" ], @@ -4296,9 +4900,6 @@ our %unified_info = ( "doc/html/man7/life_cycle-rand.html" => [ "doc/man7/life_cycle-rand.pod" ], - "doc/html/man7/migration_guide.html" => [ - "doc/man7/migration_guide.pod" - ], "doc/html/man7/openssl-core.h.html" => [ "doc/man7/openssl-core.h.pod" ], @@ -4314,12 +4915,66 @@ our %unified_info = ( "doc/html/man7/openssl-glossary.html" => [ "doc/man7/openssl-glossary.pod" ], + "doc/html/man7/openssl-qlog.html" => [ + "doc/man7/openssl-qlog.pod" + ], + "doc/html/man7/openssl-quic-concurrency.html" => [ + "doc/man7/openssl-quic-concurrency.pod" + ], + "doc/html/man7/openssl-quic.html" => [ + "doc/man7/openssl-quic.pod" + ], "doc/html/man7/openssl-threads.html" => [ "doc/man7/openssl-threads.pod" ], "doc/html/man7/openssl_user_macros.html" => [ "doc/man7/openssl_user_macros.pod" ], + "doc/html/man7/ossl-guide-introduction.html" => [ + "doc/man7/ossl-guide-introduction.pod" + ], + "doc/html/man7/ossl-guide-libcrypto-introduction.html" => [ + "doc/man7/ossl-guide-libcrypto-introduction.pod" + ], + "doc/html/man7/ossl-guide-libraries-introduction.html" => [ + "doc/man7/ossl-guide-libraries-introduction.pod" + ], + "doc/html/man7/ossl-guide-libssl-introduction.html" => [ + "doc/man7/ossl-guide-libssl-introduction.pod" + ], + "doc/html/man7/ossl-guide-migration.html" => [ + "doc/man7/ossl-guide-migration.pod" + ], + "doc/html/man7/ossl-guide-quic-client-block.html" => [ + "doc/man7/ossl-guide-quic-client-block.pod" + ], + "doc/html/man7/ossl-guide-quic-client-non-block.html" => [ + "doc/man7/ossl-guide-quic-client-non-block.pod" + ], + "doc/html/man7/ossl-guide-quic-introduction.html" => [ + "doc/man7/ossl-guide-quic-introduction.pod" + ], + "doc/html/man7/ossl-guide-quic-multi-stream.html" => [ + "doc/man7/ossl-guide-quic-multi-stream.pod" + ], + "doc/html/man7/ossl-guide-quic-server-block.html" => [ + "doc/man7/ossl-guide-quic-server-block.pod" + ], + "doc/html/man7/ossl-guide-quic-server-non-block.html" => [ + "doc/man7/ossl-guide-quic-server-non-block.pod" + ], + "doc/html/man7/ossl-guide-tls-client-block.html" => [ + "doc/man7/ossl-guide-tls-client-block.pod" + ], + "doc/html/man7/ossl-guide-tls-client-non-block.html" => [ + "doc/man7/ossl-guide-tls-client-non-block.pod" + ], + "doc/html/man7/ossl-guide-tls-introduction.html" => [ + "doc/man7/ossl-guide-tls-introduction.pod" + ], + "doc/html/man7/ossl-guide-tls-server-block.html" => [ + "doc/man7/ossl-guide-tls-server-block.pod" + ], "doc/html/man7/ossl_store-file.html" => [ "doc/man7/ossl_store-file.pod" ], @@ -4374,6 +5029,9 @@ our %unified_info = ( "doc/html/man7/provider-signature.html" => [ "doc/man7/provider-signature.pod" ], + "doc/html/man7/provider-skeymgmt.html" => [ + "doc/man7/provider-skeymgmt.pod" + ], "doc/html/man7/provider-storemgmt.html" => [ "doc/man7/provider-storemgmt.pod" ], @@ -4383,9 +5041,6 @@ our %unified_info = ( "doc/html/man7/proxy-certificates.html" => [ "doc/man7/proxy-certificates.pod" ], - "doc/html/man7/ssl.html" => [ - "doc/man7/ssl.pod" - ], "doc/html/man7/x509.html" => [ "doc/man7/x509.pod" ], @@ -4533,6 +5188,9 @@ our %unified_info = ( "doc/man/man1/openssl-sess_id.1" => [ "doc/man1/openssl-sess_id.pod" ], + "doc/man/man1/openssl-skeyutl.1" => [ + "doc/man1/openssl-skeyutl.pod" + ], "doc/man/man1/openssl-smime.1" => [ "doc/man1/openssl-smime.pod" ], @@ -4674,6 +5332,9 @@ our %unified_info = ( "doc/man/man3/BIO_get_ex_new_index.3" => [ "doc/man3/BIO_get_ex_new_index.pod" ], + "doc/man/man3/BIO_get_rpoll_descriptor.3" => [ + "doc/man3/BIO_get_rpoll_descriptor.pod" + ], "doc/man/man3/BIO_meth_new.3" => [ "doc/man3/BIO_meth_new.pod" ], @@ -4710,6 +5371,9 @@ our %unified_info = ( "doc/man/man3/BIO_s_datagram.3" => [ "doc/man3/BIO_s_datagram.pod" ], + "doc/man/man3/BIO_s_dgram_pair.3" => [ + "doc/man3/BIO_s_dgram_pair.pod" + ], "doc/man/man3/BIO_s_fd.3" => [ "doc/man3/BIO_s_fd.pod" ], @@ -4725,6 +5389,9 @@ our %unified_info = ( "doc/man/man3/BIO_s_socket.3" => [ "doc/man3/BIO_s_socket.pod" ], + "doc/man/man3/BIO_sendmmsg.3" => [ + "doc/man3/BIO_sendmmsg.pod" + ], "doc/man/man3/BIO_set_callback.3" => [ "doc/man3/BIO_set_callback.pod" ], @@ -4797,6 +5464,9 @@ our %unified_info = ( "doc/man/man3/BUF_MEM_new.3" => [ "doc/man3/BUF_MEM_new.pod" ], + "doc/man/man3/CMAC_CTX.3" => [ + "doc/man3/CMAC_CTX.pod" + ], "doc/man/man3/CMS_EncryptedData_decrypt.3" => [ "doc/man3/CMS_EncryptedData_decrypt.pod" ], @@ -4863,6 +5533,9 @@ our %unified_info = ( "doc/man/man3/CMS_verify_receipt.3" => [ "doc/man3/CMS_verify_receipt.pod" ], + "doc/man/man3/COMP_CTX_new.3" => [ + "doc/man3/COMP_CTX_new.pod" + ], "doc/man/man3/CONF_modules_free.3" => [ "doc/man3/CONF_modules_free.pod" ], @@ -4962,6 +5635,12 @@ our %unified_info = ( "doc/man/man3/DTLS_set_timer_cb.3" => [ "doc/man3/DTLS_set_timer_cb.pod" ], + "doc/man/man3/DTLSv1_get_timeout.3" => [ + "doc/man3/DTLSv1_get_timeout.pod" + ], + "doc/man/man3/DTLSv1_handle_timeout.3" => [ + "doc/man3/DTLSv1_handle_timeout.pod" + ], "doc/man/man3/DTLSv1_listen.3" => [ "doc/man3/DTLSv1_listen.pod" ], @@ -5100,6 +5779,9 @@ our %unified_info = ( "doc/man/man3/EVP_PKEY_CTX_get0_pkey.3" => [ "doc/man3/EVP_PKEY_CTX_get0_pkey.pod" ], + "doc/man/man3/EVP_PKEY_CTX_get_algor.3" => [ + "doc/man3/EVP_PKEY_CTX_get_algor.pod" + ], "doc/man/man3/EVP_PKEY_CTX_new.3" => [ "doc/man3/EVP_PKEY_CTX_new.pod" ], @@ -5217,6 +5899,12 @@ our %unified_info = ( "doc/man/man3/EVP_SIGNATURE.3" => [ "doc/man3/EVP_SIGNATURE.pod" ], + "doc/man/man3/EVP_SKEY.3" => [ + "doc/man3/EVP_SKEY.pod" + ], + "doc/man/man3/EVP_SKEYMGMT.3" => [ + "doc/man3/EVP_SKEYMGMT.pod" + ], "doc/man/man3/EVP_SealInit.3" => [ "doc/man3/EVP_SealInit.pod" ], @@ -5304,6 +5992,9 @@ our %unified_info = ( "doc/man/man3/EVP_whirlpool.3" => [ "doc/man3/EVP_whirlpool.pod" ], + "doc/man/man3/GENERAL_NAME.3" => [ + "doc/man3/GENERAL_NAME.pod" + ], "doc/man/man3/HMAC.3" => [ "doc/man3/HMAC.pod" ], @@ -5376,9 +6067,15 @@ our %unified_info = ( "doc/man/man3/OPENSSL_load_builtin_modules.3" => [ "doc/man3/OPENSSL_load_builtin_modules.pod" ], + "doc/man/man3/OPENSSL_load_u16_le.3" => [ + "doc/man3/OPENSSL_load_u16_le.pod" + ], "doc/man/man3/OPENSSL_malloc.3" => [ "doc/man3/OPENSSL_malloc.pod" ], + "doc/man/man3/OPENSSL_riscvcap.3" => [ + "doc/man3/OPENSSL_riscvcap.pod" + ], "doc/man/man3/OPENSSL_s390xcap.3" => [ "doc/man3/OPENSSL_s390xcap.pod" ], @@ -5394,12 +6091,18 @@ our %unified_info = ( "doc/man/man3/OSSL_CALLBACK.3" => [ "doc/man3/OSSL_CALLBACK.pod" ], + "doc/man/man3/OSSL_CMP_ATAV_set0.3" => [ + "doc/man3/OSSL_CMP_ATAV_set0.pod" + ], "doc/man/man3/OSSL_CMP_CTX_new.3" => [ "doc/man3/OSSL_CMP_CTX_new.pod" ], "doc/man/man3/OSSL_CMP_HDR_get0_transactionID.3" => [ "doc/man3/OSSL_CMP_HDR_get0_transactionID.pod" ], + "doc/man/man3/OSSL_CMP_ITAV_new_caCerts.3" => [ + "doc/man3/OSSL_CMP_ITAV_new_caCerts.pod" + ], "doc/man/man3/OSSL_CMP_ITAV_set0.3" => [ "doc/man3/OSSL_CMP_ITAV_set0.pod" ], @@ -5469,9 +6172,18 @@ our %unified_info = ( "doc/man/man3/OSSL_ENCODER_to_bio.3" => [ "doc/man3/OSSL_ENCODER_to_bio.pod" ], + "doc/man/man3/OSSL_ERR_STATE_save.3" => [ + "doc/man3/OSSL_ERR_STATE_save.pod" + ], "doc/man/man3/OSSL_ESS_check_signing_certs.3" => [ "doc/man3/OSSL_ESS_check_signing_certs.pod" ], + "doc/man/man3/OSSL_GENERAL_NAMES_print.3" => [ + "doc/man3/OSSL_GENERAL_NAMES_print.pod" + ], + "doc/man/man3/OSSL_HPKE_CTX_new.3" => [ + "doc/man3/OSSL_HPKE_CTX_new.pod" + ], "doc/man/man3/OSSL_HTTP_REQ_CTX.3" => [ "doc/man3/OSSL_HTTP_REQ_CTX.pod" ], @@ -5481,12 +6193,24 @@ our %unified_info = ( "doc/man/man3/OSSL_HTTP_transfer.3" => [ "doc/man3/OSSL_HTTP_transfer.pod" ], + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX.3" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX.pod" + ], + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX_print.3" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX_print.pod" + ], + "doc/man/man3/OSSL_INDICATOR_set_callback.3" => [ + "doc/man3/OSSL_INDICATOR_set_callback.pod" + ], "doc/man/man3/OSSL_ITEM.3" => [ "doc/man3/OSSL_ITEM.pod" ], "doc/man/man3/OSSL_LIB_CTX.3" => [ "doc/man3/OSSL_LIB_CTX.pod" ], + "doc/man/man3/OSSL_LIB_CTX_set_conf_diagnostics.3" => [ + "doc/man3/OSSL_LIB_CTX_set_conf_diagnostics.pod" + ], "doc/man/man3/OSSL_PARAM.3" => [ "doc/man3/OSSL_PARAM.pod" ], @@ -5502,9 +6226,15 @@ our %unified_info = ( "doc/man/man3/OSSL_PARAM_int.3" => [ "doc/man3/OSSL_PARAM_int.pod" ], + "doc/man/man3/OSSL_PARAM_print_to_bio.3" => [ + "doc/man3/OSSL_PARAM_print_to_bio.pod" + ], "doc/man/man3/OSSL_PROVIDER.3" => [ "doc/man3/OSSL_PROVIDER.pod" ], + "doc/man/man3/OSSL_QUIC_client_method.3" => [ + "doc/man3/OSSL_QUIC_client_method.pod" + ], "doc/man/man3/OSSL_SELF_TEST_new.3" => [ "doc/man3/OSSL_SELF_TEST_new.pod" ], @@ -5529,6 +6259,9 @@ our %unified_info = ( "doc/man/man3/OSSL_STORE_open.3" => [ "doc/man3/OSSL_STORE_open.pod" ], + "doc/man/man3/OSSL_sleep.3" => [ + "doc/man3/OSSL_sleep.pod" + ], "doc/man/man3/OSSL_trace_enabled.3" => [ "doc/man3/OSSL_trace_enabled.pod" ], @@ -5544,6 +6277,9 @@ our %unified_info = ( "doc/man/man3/OpenSSL_version.3" => [ "doc/man3/OpenSSL_version.pod" ], + "doc/man/man3/PBMAC1_get1_pbkdf2_param.3" => [ + "doc/man3/PBMAC1_get1_pbkdf2_param.pod" + ], "doc/man/man3/PEM_X509_INFO_read_bio_ex.3" => [ "doc/man3/PEM_X509_INFO_read_bio_ex.pod" ], @@ -5580,6 +6316,9 @@ our %unified_info = ( "doc/man/man3/PKCS12_SAFEBAG_get1_cert.3" => [ "doc/man3/PKCS12_SAFEBAG_get1_cert.pod" ], + "doc/man/man3/PKCS12_SAFEBAG_set0_attrs.3" => [ + "doc/man3/PKCS12_SAFEBAG_set0_attrs.pod" + ], "doc/man/man3/PKCS12_add1_attr_by_NID.3" => [ "doc/man3/PKCS12_add1_attr_by_NID.pod" ], @@ -5853,6 +6592,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set0_CA_list.3" => [ "doc/man3/SSL_CTX_set0_CA_list.pod" ], + "doc/man/man3/SSL_CTX_set1_cert_comp_preference.3" => [ + "doc/man3/SSL_CTX_set1_cert_comp_preference.pod" + ], "doc/man/man3/SSL_CTX_set1_curves.3" => [ "doc/man3/SSL_CTX_set1_curves.pod" ], @@ -5892,6 +6634,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_default_passwd_cb.3" => [ "doc/man3/SSL_CTX_set_default_passwd_cb.pod" ], + "doc/man/man3/SSL_CTX_set_domain_flags.3" => [ + "doc/man3/SSL_CTX_set_domain_flags.pod" + ], "doc/man/man3/SSL_CTX_set_generate_session_id.3" => [ "doc/man3/SSL_CTX_set_generate_session_id.pod" ], @@ -5913,6 +6658,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_msg_callback.3" => [ "doc/man3/SSL_CTX_set_msg_callback.pod" ], + "doc/man/man3/SSL_CTX_set_new_pending_conn_cb.3" => [ + "doc/man3/SSL_CTX_set_new_pending_conn_cb.pod" + ], "doc/man/man3/SSL_CTX_set_num_tickets.3" => [ "doc/man3/SSL_CTX_set_num_tickets.pod" ], @@ -6027,6 +6775,9 @@ our %unified_info = ( "doc/man/man3/SSL_accept.3" => [ "doc/man3/SSL_accept.pod" ], + "doc/man/man3/SSL_accept_stream.3" => [ + "doc/man3/SSL_accept_stream.pod" + ], "doc/man/man3/SSL_alert_type_string.3" => [ "doc/man3/SSL_alert_type_string.pod" ], @@ -6054,9 +6805,21 @@ our %unified_info = ( "doc/man/man3/SSL_free.3" => [ "doc/man3/SSL_free.pod" ], + "doc/man/man3/SSL_get0_connection.3" => [ + "doc/man3/SSL_get0_connection.pod" + ], + "doc/man/man3/SSL_get0_group_name.3" => [ + "doc/man3/SSL_get0_group_name.pod" + ], + "doc/man/man3/SSL_get0_peer_rpk.3" => [ + "doc/man3/SSL_get0_peer_rpk.pod" + ], "doc/man/man3/SSL_get0_peer_scts.3" => [ "doc/man3/SSL_get0_peer_scts.pod" ], + "doc/man/man3/SSL_get1_builtin_sigalgs.3" => [ + "doc/man3/SSL_get1_builtin_sigalgs.pod" + ], "doc/man/man3/SSL_get_SSL_CTX.3" => [ "doc/man3/SSL_get_SSL_CTX.pod" ], @@ -6072,6 +6835,9 @@ our %unified_info = ( "doc/man/man3/SSL_get_client_random.3" => [ "doc/man3/SSL_get_client_random.pod" ], + "doc/man/man3/SSL_get_conn_close_info.3" => [ + "doc/man3/SSL_get_conn_close_info.pod" + ], "doc/man/man3/SSL_get_current_cipher.3" => [ "doc/man3/SSL_get_current_cipher.pod" ], @@ -6081,12 +6847,18 @@ our %unified_info = ( "doc/man/man3/SSL_get_error.3" => [ "doc/man3/SSL_get_error.pod" ], + "doc/man/man3/SSL_get_event_timeout.3" => [ + "doc/man3/SSL_get_event_timeout.pod" + ], "doc/man/man3/SSL_get_extms_support.3" => [ "doc/man3/SSL_get_extms_support.pod" ], "doc/man/man3/SSL_get_fd.3" => [ "doc/man3/SSL_get_fd.pod" ], + "doc/man/man3/SSL_get_handshake_rtt.3" => [ + "doc/man3/SSL_get_handshake_rtt.pod" + ], "doc/man/man3/SSL_get_peer_cert_chain.3" => [ "doc/man3/SSL_get_peer_cert_chain.pod" ], @@ -6105,12 +6877,24 @@ our %unified_info = ( "doc/man/man3/SSL_get_rbio.3" => [ "doc/man3/SSL_get_rbio.pod" ], + "doc/man/man3/SSL_get_rpoll_descriptor.3" => [ + "doc/man3/SSL_get_rpoll_descriptor.pod" + ], "doc/man/man3/SSL_get_session.3" => [ "doc/man3/SSL_get_session.pod" ], "doc/man/man3/SSL_get_shared_sigalgs.3" => [ "doc/man3/SSL_get_shared_sigalgs.pod" ], + "doc/man/man3/SSL_get_stream_id.3" => [ + "doc/man3/SSL_get_stream_id.pod" + ], + "doc/man/man3/SSL_get_stream_read_state.3" => [ + "doc/man3/SSL_get_stream_read_state.pod" + ], + "doc/man/man3/SSL_get_value_uint.3" => [ + "doc/man3/SSL_get_value_uint.pod" + ], "doc/man/man3/SSL_get_verify_result.3" => [ "doc/man3/SSL_get_verify_result.pod" ], @@ -6120,9 +6904,15 @@ our %unified_info = ( "doc/man/man3/SSL_group_to_name.3" => [ "doc/man3/SSL_group_to_name.pod" ], + "doc/man/man3/SSL_handle_events.3" => [ + "doc/man3/SSL_handle_events.pod" + ], "doc/man/man3/SSL_in_init.3" => [ "doc/man3/SSL_in_init.pod" ], + "doc/man/man3/SSL_inject_net_dgram.3" => [ + "doc/man3/SSL_inject_net_dgram.pod" + ], "doc/man/man3/SSL_key_update.3" => [ "doc/man3/SSL_key_update.pod" ], @@ -6135,9 +6925,21 @@ our %unified_info = ( "doc/man/man3/SSL_new.3" => [ "doc/man3/SSL_new.pod" ], + "doc/man/man3/SSL_new_domain.3" => [ + "doc/man3/SSL_new_domain.pod" + ], + "doc/man/man3/SSL_new_listener.3" => [ + "doc/man3/SSL_new_listener.pod" + ], + "doc/man/man3/SSL_new_stream.3" => [ + "doc/man3/SSL_new_stream.pod" + ], "doc/man/man3/SSL_pending.3" => [ "doc/man3/SSL_pending.pod" ], + "doc/man/man3/SSL_poll.3" => [ + "doc/man3/SSL_poll.pod" + ], "doc/man/man3/SSL_read.3" => [ "doc/man3/SSL_read.pod" ], @@ -6153,24 +6955,45 @@ our %unified_info = ( "doc/man/man3/SSL_set1_host.3" => [ "doc/man3/SSL_set1_host.pod" ], + "doc/man/man3/SSL_set1_initial_peer_addr.3" => [ + "doc/man3/SSL_set1_initial_peer_addr.pod" + ], + "doc/man/man3/SSL_set1_server_cert_type.3" => [ + "doc/man3/SSL_set1_server_cert_type.pod" + ], "doc/man/man3/SSL_set_async_callback.3" => [ "doc/man3/SSL_set_async_callback.pod" ], "doc/man/man3/SSL_set_bio.3" => [ "doc/man3/SSL_set_bio.pod" ], + "doc/man/man3/SSL_set_blocking_mode.3" => [ + "doc/man3/SSL_set_blocking_mode.pod" + ], "doc/man/man3/SSL_set_connect_state.3" => [ "doc/man3/SSL_set_connect_state.pod" ], + "doc/man/man3/SSL_set_default_stream_mode.3" => [ + "doc/man3/SSL_set_default_stream_mode.pod" + ], "doc/man/man3/SSL_set_fd.3" => [ "doc/man3/SSL_set_fd.pod" ], + "doc/man/man3/SSL_set_incoming_stream_policy.3" => [ + "doc/man3/SSL_set_incoming_stream_policy.pod" + ], + "doc/man/man3/SSL_set_quic_tls_cbs.3" => [ + "doc/man3/SSL_set_quic_tls_cbs.pod" + ], "doc/man/man3/SSL_set_retry_verify.3" => [ "doc/man3/SSL_set_retry_verify.pod" ], "doc/man/man3/SSL_set_session.3" => [ "doc/man3/SSL_set_session.pod" ], + "doc/man/man3/SSL_set_session_secret_cb.3" => [ + "doc/man3/SSL_set_session_secret_cb.pod" + ], "doc/man/man3/SSL_set_shutdown.3" => [ "doc/man3/SSL_set_shutdown.pod" ], @@ -6183,6 +7006,12 @@ our %unified_info = ( "doc/man/man3/SSL_state_string.3" => [ "doc/man3/SSL_state_string.pod" ], + "doc/man/man3/SSL_stream_conclude.3" => [ + "doc/man3/SSL_stream_conclude.pod" + ], + "doc/man/man3/SSL_stream_reset.3" => [ + "doc/man3/SSL_stream_reset.pod" + ], "doc/man/man3/SSL_want.3" => [ "doc/man3/SSL_want.pod" ], @@ -6192,8 +7021,8 @@ our %unified_info = ( "doc/man/man3/TS_RESP_CTX_new.3" => [ "doc/man3/TS_RESP_CTX_new.pod" ], - "doc/man/man3/TS_VERIFY_CTX_set_certs.3" => [ - "doc/man3/TS_VERIFY_CTX_set_certs.pod" + "doc/man/man3/TS_VERIFY_CTX.3" => [ + "doc/man3/TS_VERIFY_CTX.pod" ], "doc/man/man3/UI_STRING.3" => [ "doc/man3/UI_STRING.pod" @@ -6213,6 +7042,21 @@ our %unified_info = ( "doc/man/man3/X509V3_set_ctx.3" => [ "doc/man3/X509V3_set_ctx.pod" ], + "doc/man/man3/X509_ACERT_add1_attr.3" => [ + "doc/man3/X509_ACERT_add1_attr.pod" + ], + "doc/man/man3/X509_ACERT_add_attr_nconf.3" => [ + "doc/man3/X509_ACERT_add_attr_nconf.pod" + ], + "doc/man/man3/X509_ACERT_get0_holder_baseCertId.3" => [ + "doc/man3/X509_ACERT_get0_holder_baseCertId.pod" + ], + "doc/man/man3/X509_ACERT_get_attr.3" => [ + "doc/man3/X509_ACERT_get_attr.pod" + ], + "doc/man/man3/X509_ACERT_print_ex.3" => [ + "doc/man3/X509_ACERT_print_ex.pod" + ], "doc/man/man3/X509_ALGOR_dup.3" => [ "doc/man3/X509_ALGOR_dup.pod" ], @@ -6261,6 +7105,9 @@ our %unified_info = ( "doc/man/man3/X509_SIG_get0.3" => [ "doc/man3/X509_SIG_get0.pod" ], + "doc/man/man3/X509_STORE_CTX_get_by_subject.3" => [ + "doc/man3/X509_STORE_CTX_get_by_subject.pod" + ], "doc/man/man3/X509_STORE_CTX_get_error.3" => [ "doc/man3/X509_STORE_CTX_get_error.pod" ], @@ -6327,6 +7174,9 @@ our %unified_info = ( "doc/man/man3/X509_get0_uids.3" => [ "doc/man3/X509_get0_uids.pod" ], + "doc/man/man3/X509_get_default_cert_file.3" => [ + "doc/man3/X509_get_default_cert_file.pod" + ], "doc/man/man3/X509_get_extension_flags.3" => [ "doc/man3/X509_get_extension_flags.pod" ], @@ -6450,9 +7300,15 @@ our %unified_info = ( "doc/man/man7/EVP_CIPHER-SM4.7" => [ "doc/man7/EVP_CIPHER-SM4.pod" ], + "doc/man/man7/EVP_KDF-ARGON2.7" => [ + "doc/man7/EVP_KDF-ARGON2.pod" + ], "doc/man/man7/EVP_KDF-HKDF.7" => [ "doc/man7/EVP_KDF-HKDF.pod" ], + "doc/man/man7/EVP_KDF-HMAC-DRBG.7" => [ + "doc/man7/EVP_KDF-HMAC-DRBG.pod" + ], "doc/man/man7/EVP_KDF-KB.7" => [ "doc/man7/EVP_KDF-KB.pod" ], @@ -6468,6 +7324,9 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-PKCS12KDF.7" => [ "doc/man7/EVP_KDF-PKCS12KDF.pod" ], + "doc/man/man7/EVP_KDF-PVKKDF.7" => [ + "doc/man7/EVP_KDF-PVKKDF.pod" + ], "doc/man/man7/EVP_KDF-SCRYPT.7" => [ "doc/man7/EVP_KDF-SCRYPT.pod" ], @@ -6492,9 +7351,18 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-X963.7" => [ "doc/man7/EVP_KDF-X963.pod" ], + "doc/man/man7/EVP_KEM-EC.7" => [ + "doc/man7/EVP_KEM-EC.pod" + ], + "doc/man/man7/EVP_KEM-ML-KEM.7" => [ + "doc/man7/EVP_KEM-ML-KEM.pod" + ], "doc/man/man7/EVP_KEM-RSA.7" => [ "doc/man7/EVP_KEM-RSA.pod" ], + "doc/man/man7/EVP_KEM-X25519.7" => [ + "doc/man7/EVP_KEM-X25519.pod" + ], "doc/man/man7/EVP_KEYEXCH-DH.7" => [ "doc/man7/EVP_KEYEXCH-DH.pod" ], @@ -6528,6 +7396,9 @@ our %unified_info = ( "doc/man/man7/EVP_MD-BLAKE2.7" => [ "doc/man7/EVP_MD-BLAKE2.pod" ], + "doc/man/man7/EVP_MD-KECCAK.7" => [ + "doc/man7/EVP_MD-KECCAK.pod" + ], "doc/man/man7/EVP_MD-MD2.7" => [ "doc/man7/EVP_MD-MD2.pod" ], @@ -6585,15 +7456,27 @@ our %unified_info = ( "doc/man/man7/EVP_PKEY-HMAC.7" => [ "doc/man7/EVP_PKEY-HMAC.pod" ], + "doc/man/man7/EVP_PKEY-ML-DSA.7" => [ + "doc/man7/EVP_PKEY-ML-DSA.pod" + ], + "doc/man/man7/EVP_PKEY-ML-KEM.7" => [ + "doc/man7/EVP_PKEY-ML-KEM.pod" + ], "doc/man/man7/EVP_PKEY-RSA.7" => [ "doc/man7/EVP_PKEY-RSA.pod" ], + "doc/man/man7/EVP_PKEY-SLH-DSA.7" => [ + "doc/man7/EVP_PKEY-SLH-DSA.pod" + ], "doc/man/man7/EVP_PKEY-SM2.7" => [ "doc/man7/EVP_PKEY-SM2.pod" ], "doc/man/man7/EVP_PKEY-X25519.7" => [ "doc/man7/EVP_PKEY-X25519.pod" ], + "doc/man/man7/EVP_RAND-CRNG-TEST.7" => [ + "doc/man7/EVP_RAND-CRNG-TEST.pod" + ], "doc/man/man7/EVP_RAND-CTR-DRBG.7" => [ "doc/man7/EVP_RAND-CTR-DRBG.pod" ], @@ -6603,6 +7486,9 @@ our %unified_info = ( "doc/man/man7/EVP_RAND-HMAC-DRBG.7" => [ "doc/man7/EVP_RAND-HMAC-DRBG.pod" ], + "doc/man/man7/EVP_RAND-JITTER.7" => [ + "doc/man7/EVP_RAND-JITTER.pod" + ], "doc/man/man7/EVP_RAND-SEED-SRC.7" => [ "doc/man7/EVP_RAND-SEED-SRC.pod" ], @@ -6624,9 +7510,15 @@ our %unified_info = ( "doc/man/man7/EVP_SIGNATURE-HMAC.7" => [ "doc/man7/EVP_SIGNATURE-HMAC.pod" ], + "doc/man/man7/EVP_SIGNATURE-ML-DSA.7" => [ + "doc/man7/EVP_SIGNATURE-ML-DSA.pod" + ], "doc/man/man7/EVP_SIGNATURE-RSA.7" => [ "doc/man7/EVP_SIGNATURE-RSA.pod" ], + "doc/man/man7/EVP_SIGNATURE-SLH-DSA.7" => [ + "doc/man7/EVP_SIGNATURE-SLH-DSA.pod" + ], "doc/man/man7/OSSL_PROVIDER-FIPS.7" => [ "doc/man7/OSSL_PROVIDER-FIPS.pod" ], @@ -6642,6 +7534,9 @@ our %unified_info = ( "doc/man/man7/OSSL_PROVIDER-null.7" => [ "doc/man7/OSSL_PROVIDER-null.pod" ], + "doc/man/man7/OSSL_STORE-winstore.7" => [ + "doc/man7/OSSL_STORE-winstore.pod" + ], "doc/man/man7/RAND.7" => [ "doc/man7/RAND.pod" ], @@ -6654,9 +7549,6 @@ our %unified_info = ( "doc/man/man7/bio.7" => [ "doc/man7/bio.pod" ], - "doc/man/man7/crypto.7" => [ - "doc/man7/crypto.pod" - ], "doc/man/man7/ct.7" => [ "doc/man7/ct.pod" ], @@ -6687,9 +7579,6 @@ our %unified_info = ( "doc/man/man7/life_cycle-rand.7" => [ "doc/man7/life_cycle-rand.pod" ], - "doc/man/man7/migration_guide.7" => [ - "doc/man7/migration_guide.pod" - ], "doc/man/man7/openssl-core.h.7" => [ "doc/man7/openssl-core.h.pod" ], @@ -6705,12 +7594,66 @@ our %unified_info = ( "doc/man/man7/openssl-glossary.7" => [ "doc/man7/openssl-glossary.pod" ], + "doc/man/man7/openssl-qlog.7" => [ + "doc/man7/openssl-qlog.pod" + ], + "doc/man/man7/openssl-quic-concurrency.7" => [ + "doc/man7/openssl-quic-concurrency.pod" + ], + "doc/man/man7/openssl-quic.7" => [ + "doc/man7/openssl-quic.pod" + ], "doc/man/man7/openssl-threads.7" => [ "doc/man7/openssl-threads.pod" ], "doc/man/man7/openssl_user_macros.7" => [ "doc/man7/openssl_user_macros.pod" ], + "doc/man/man7/ossl-guide-introduction.7" => [ + "doc/man7/ossl-guide-introduction.pod" + ], + "doc/man/man7/ossl-guide-libcrypto-introduction.7" => [ + "doc/man7/ossl-guide-libcrypto-introduction.pod" + ], + "doc/man/man7/ossl-guide-libraries-introduction.7" => [ + "doc/man7/ossl-guide-libraries-introduction.pod" + ], + "doc/man/man7/ossl-guide-libssl-introduction.7" => [ + "doc/man7/ossl-guide-libssl-introduction.pod" + ], + "doc/man/man7/ossl-guide-migration.7" => [ + "doc/man7/ossl-guide-migration.pod" + ], + "doc/man/man7/ossl-guide-quic-client-block.7" => [ + "doc/man7/ossl-guide-quic-client-block.pod" + ], + "doc/man/man7/ossl-guide-quic-client-non-block.7" => [ + "doc/man7/ossl-guide-quic-client-non-block.pod" + ], + "doc/man/man7/ossl-guide-quic-introduction.7" => [ + "doc/man7/ossl-guide-quic-introduction.pod" + ], + "doc/man/man7/ossl-guide-quic-multi-stream.7" => [ + "doc/man7/ossl-guide-quic-multi-stream.pod" + ], + "doc/man/man7/ossl-guide-quic-server-block.7" => [ + "doc/man7/ossl-guide-quic-server-block.pod" + ], + "doc/man/man7/ossl-guide-quic-server-non-block.7" => [ + "doc/man7/ossl-guide-quic-server-non-block.pod" + ], + "doc/man/man7/ossl-guide-tls-client-block.7" => [ + "doc/man7/ossl-guide-tls-client-block.pod" + ], + "doc/man/man7/ossl-guide-tls-client-non-block.7" => [ + "doc/man7/ossl-guide-tls-client-non-block.pod" + ], + "doc/man/man7/ossl-guide-tls-introduction.7" => [ + "doc/man7/ossl-guide-tls-introduction.pod" + ], + "doc/man/man7/ossl-guide-tls-server-block.7" => [ + "doc/man7/ossl-guide-tls-server-block.pod" + ], "doc/man/man7/ossl_store-file.7" => [ "doc/man7/ossl_store-file.pod" ], @@ -6765,6 +7708,9 @@ our %unified_info = ( "doc/man/man7/provider-signature.7" => [ "doc/man7/provider-signature.pod" ], + "doc/man/man7/provider-skeymgmt.7" => [ + "doc/man7/provider-skeymgmt.pod" + ], "doc/man/man7/provider-storemgmt.7" => [ "doc/man7/provider-storemgmt.pod" ], @@ -6774,9 +7720,6 @@ our %unified_info = ( "doc/man/man7/proxy-certificates.7" => [ "doc/man7/proxy-certificates.pod" ], - "doc/man/man7/ssl.7" => [ - "doc/man7/ssl.pod" - ], "doc/man/man7/x509.7" => [ "doc/man7/x509.pod" ], @@ -6956,6 +7899,10 @@ our %unified_info = ( "doc/man1/openssl-sess_id.pod.in", "doc/perlvars.pm" ], + "doc/man1/openssl-skeyutl.pod" => [ + "doc/man1/openssl-skeyutl.pod.in", + "doc/perlvars.pm" + ], "doc/man1/openssl-smime.pod" => [ "doc/man1/openssl-smime.pod.in", "doc/perlvars.pm" @@ -6995,6 +7942,27 @@ our %unified_info = ( "doc/man7/openssl_user_macros.pod" => [ "doc/man7/openssl_user_macros.pod.in" ], + "exporters/OpenSSLConfig.cmake" => [ + "installdata.pm" + ], + "exporters/OpenSSLConfigVersion.cmake" => [ + "exporters/OpenSSLConfig.cmake", + "installdata.pm" + ], + "exporters/libcrypto.pc" => [ + "installdata.pm" + ], + "exporters/libssl.pc" => [ + "installdata.pm" + ], + "exporters/openssl.pc" => [ + "exporters/libcrypto.pc", + "exporters/libssl.pc", + "installdata.pm" + ], + "fuzz/acert-test" => [ + "libcrypto" + ], "fuzz/asn1-test" => [ "libcrypto", "libssl" @@ -7027,17 +7995,85 @@ our %unified_info = ( "fuzz/ct-test" => [ "libcrypto" ], + "fuzz/decoder-test" => [ + "libcrypto" + ], + "fuzz/dtlsclient-test" => [ + "libcrypto", + "libssl" + ], + "fuzz/dtlsserver-test" => [ + "libcrypto", + "libssl" + ], + "fuzz/hashtable-test" => [ + "libcrypto.a" + ], + "fuzz/ml-dsa-test" => [ + "libcrypto.a" + ], + "fuzz/ml-kem-test" => [ + "libcrypto.a" + ], + "fuzz/pem-test" => [ + "libcrypto.a" + ], + "fuzz/provider-test" => [ + "libcrypto" + ], + "fuzz/punycode-test" => [ + "libcrypto.a" + ], + "fuzz/quic-client-test" => [ + "libcrypto.a", + "libssl.a" + ], + "fuzz/quic-lcidm-test" => [ + "libcrypto.a", + "libssl.a" + ], + "fuzz/quic-rcidm-test" => [ + "libcrypto.a", + "libssl.a" + ], + "fuzz/quic-server-test" => [ + "libcrypto.a", + "libssl.a" + ], + "fuzz/quic-srtm-test" => [ + "libcrypto.a", + "libssl.a" + ], "fuzz/server-test" => [ "libcrypto", "libssl" ], + "fuzz/slh-dsa-test" => [ + "libcrypto.a" + ], + "fuzz/smime-test" => [ + "libcrypto", + "libssl" + ], + "fuzz/v3name-test" => [ + "libcrypto.a" + ], "fuzz/x509-test" => [ "libcrypto" ], + "include/internal/param_names.h" => [ + "util/perl|OpenSSL/paramnames.pm" + ], + "include/openssl/core_names.h" => [ + "util/perl|OpenSSL/paramnames.pm" + ], "libcrypto.ld" => [ "configdata.pm", "util/perl/OpenSSL/Ordinals.pm" ], + "libcrypto.pc" => [ + "builddata.pm" + ], "libcrypto.rc" => [ "configdata.pm" ], @@ -7048,9 +8084,17 @@ our %unified_info = ( "configdata.pm", "util/perl/OpenSSL/Ordinals.pm" ], + "libssl.pc" => [ + "builddata.pm" + ], "libssl.rc" => [ "configdata.pm" ], + "openssl.pc" => [ + "builddata.pm", + "libcrypto.pc", + "libssl.pc" + ], "providers/common/der/der_digests_gen.c" => [ "providers/common/der/DIGESTS.asn1", "providers/common/der/NIST.asn1", @@ -7068,11 +8112,19 @@ our %unified_info = ( "providers/common/der/ECX.asn1", "providers/common/der/oids_to_c.pm" ], + "providers/common/der/der_ml_dsa_gen.c" => [ + "providers/common/der/ML_DSA.asn1", + "providers/common/der/oids_to_c.pm" + ], "providers/common/der/der_rsa_gen.c" => [ "providers/common/der/NIST.asn1", "providers/common/der/RSA.asn1", "providers/common/der/oids_to_c.pm" ], + "providers/common/der/der_slh_dsa_gen.c" => [ + "providers/common/der/SLH_DSA.asn1", + "providers/common/der/oids_to_c.pm" + ], "providers/common/der/der_sm2_gen.c" => [ "providers/common/der/SM2.asn1", "providers/common/der/oids_to_c.pm" @@ -7112,6 +8164,12 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ecx_key.o" => [ "providers/common/include/prov/der_ecx.h" ], + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o" => [ + "providers/common/include/prov/der_ml_dsa.h" + ], + "providers/common/der/libcommon-lib-der_ml_dsa_key.o" => [ + "providers/common/include/prov/der_ml_dsa.h" + ], "providers/common/der/libcommon-lib-der_rsa_gen.o" => [ "providers/common/include/prov/der_rsa.h" ], @@ -7119,6 +8177,12 @@ our %unified_info = ( "providers/common/include/prov/der_digests.h", "providers/common/include/prov/der_rsa.h" ], + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o" => [ + "providers/common/include/prov/der_slh_dsa.h" + ], + "providers/common/der/libcommon-lib-der_slh_dsa_key.o" => [ + "providers/common/include/prov/der_slh_dsa.h" + ], "providers/common/der/libcommon-lib-der_wrap_gen.o" => [ "providers/common/include/prov/der_wrap.h" ], @@ -7158,11 +8222,19 @@ our %unified_info = ( "providers/common/der/ECX.asn1", "providers/common/der/oids_to_c.pm" ], + "providers/common/include/prov/der_ml_dsa.h" => [ + "providers/common/der/ML_DSA.asn1", + "providers/common/der/oids_to_c.pm" + ], "providers/common/include/prov/der_rsa.h" => [ "providers/common/der/NIST.asn1", "providers/common/der/RSA.asn1", "providers/common/der/oids_to_c.pm" ], + "providers/common/include/prov/der_slh_dsa.h" => [ + "providers/common/der/SLH_DSA.asn1", + "providers/common/der/oids_to_c.pm" + ], "providers/common/include/prov/der_sm2.h" => [ "providers/common/der/SM2.asn1", "providers/common/der/oids_to_c.pm" @@ -7195,9 +8267,15 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-eddsa_sig.o" => [ "providers/common/include/prov/der_ecx.h" ], + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o" => [ + "providers/common/include/prov/der_ml_dsa.h" + ], "providers/implementations/signature/libdefault-lib-rsa_sig.o" => [ "providers/common/include/prov/der_rsa.h" ], + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o" => [ + "providers/common/include/prov/der_slh_dsa.h" + ], "providers/implementations/signature/libdefault-lib-sm2_sig.o" => [ "providers/common/include/prov/der_sm2.h" ], @@ -7210,9 +8288,15 @@ our %unified_info = ( "providers/implementations/signature/libfips-lib-eddsa_sig.o" => [ "providers/common/include/prov/der_ecx.h" ], + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o" => [ + "providers/common/include/prov/der_ml_dsa.h" + ], "providers/implementations/signature/libfips-lib-rsa_sig.o" => [ "providers/common/include/prov/der_rsa.h" ], + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o" => [ + "providers/common/include/prov/der_slh_dsa.h" + ], "providers/legacy" => [ "libcrypto", "providers/liblegacy.a" @@ -7290,6 +8374,14 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/bio_addr_test" => [ + "libcrypto", + "test/libtestutil.a" + ], + "test/bio_base64_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/bio_callback_test" => [ "libcrypto", "test/libtestutil.a" @@ -7298,6 +8390,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/bio_dgram_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/bio_enc_test" => [ "libcrypto", "test/libtestutil.a" @@ -7306,6 +8402,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/bio_meth_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/bio_prefix_text" => [ "libcrypto", "test/libtestutil.a" @@ -7318,6 +8418,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/bio_tfo_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/bioprinttest" => [ "libcrypto", "test/libtestutil.a" @@ -7330,6 +8434,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/build_wincrypt_test" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_aes" => [ "libcrypto", "libssl" @@ -7350,6 +8458,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_byteorder" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_camellia" => [ "libcrypto", "libssl" @@ -7382,10 +8494,6 @@ our %unified_info = ( "libcrypto", "libssl" ], - "test/buildtest_c_core_names" => [ - "libcrypto", - "libssl" - ], "test/buildtest_c_core_object" => [ "libcrypto", "libssl" @@ -7418,6 +8526,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_e_ostime" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_ebcdic" => [ "libcrypto", "libssl" @@ -7454,6 +8566,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_hpke" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_http" => [ "libcrypto", "libssl" @@ -7462,6 +8578,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_indicator" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_kdf" => [ "libcrypto", "libssl" @@ -7482,6 +8602,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_ml_kem" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_modes" => [ "libcrypto", "libssl" @@ -7522,6 +8646,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_quic" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_rand" => [ "libcrypto", "libssl" @@ -7578,6 +8706,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_thread" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_tls1" => [ "libcrypto", "libssl" @@ -7598,10 +8730,23 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/byteorder_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], + "test/ca_internals_test" => [ + "libssl", + "test/libtestutil.a" + ], "test/casttest" => [ "libcrypto", "test/libtestutil.a" ], + "test/cert_comp_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], "test/chacha_internal_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -7715,7 +8860,11 @@ our %unified_info = ( "libssl", "test/libtestutil.a" ], - "test/defltfips_test" => [ + "test/decoder_propq_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], + "test/defltfips_test" => [ "libcrypto", "test/libtestutil.a" ], @@ -7771,6 +8920,8 @@ our %unified_info = ( ], "test/endecode_test" => [ "libcrypto.a", + "providers/libcommon.a", + "providers/liblegacy.a", "test/libtestutil.a" ], "test/endecoder_legacy_test" => [ @@ -7814,6 +8965,10 @@ our %unified_info = ( "test/evp_pkey_ctx_new_from_name" => [ "libcrypto" ], + "test/evp_pkey_dhkem_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/evp_pkey_dparams_test" => [ "libcrypto", "test/libtestutil.a" @@ -7822,10 +8977,18 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/evp_skey_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/evp_test" => [ "libcrypto", "test/libtestutil.a" ], + "test/evp_xof_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/exdatatest" => [ "libcrypto", "test/libtestutil.a" @@ -7864,6 +9027,10 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/hpke_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/http_test" => [ "libcrypto", "test/libtestutil.a" @@ -7876,17 +9043,25 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/json_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], "test/keymgmt_internal_test" => [ "libcrypto.a", "test/libtestutil.a" ], "test/lhash_test" => [ - "libcrypto", + "libcrypto.a", "test/libtestutil.a" ], "test/libtestutil.a" => [ "libcrypto" ], + "test/list_test" => [ + "test/libtestutil.a" + ], "test/localetest" => [ "libcrypto", "test/libtestutil.a" @@ -7899,10 +9074,26 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/membio_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/memleaktest" => [ "libcrypto", "test/libtestutil.a" ], + "test/ml_dsa_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], + "test/ml_kem_evp_extra_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], + "test/ml_kem_internal_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/modes_internal_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -7927,6 +9118,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/pairwise_fail_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/param_build_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -7959,6 +9154,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/pkcs12_api_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/pkcs12_format_test" => [ "libcrypto", "test/libtestutil.a" @@ -7979,6 +9178,11 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/priority_queue_test" => [ + "libcrypto", + "libssl.a", + "test/libtestutil.a" + ], "test/property_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -7991,6 +9195,10 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/provider_default_search_path_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/provider_fallback_test" => [ "libcrypto", "test/libtestutil.a" @@ -8015,12 +9223,122 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/quic_ackm_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_cc_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_cfq_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_client_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_fc_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_fifd_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_lcidm_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_multistream_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_newcid_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_qlog_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_radix_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_rcidm_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_record_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_srt_gen_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_srtm_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_stream_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_tserver_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_txp_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_txpim_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_wire_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quicapitest" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quicfaultstest" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], "test/rand_status_test" => [ "libcrypto", "test/libtestutil.a" ], "test/rand_test" => [ - "libcrypto", + "libcrypto.a", "test/libtestutil.a" ], "test/rc2test" => [ @@ -8035,7 +9353,7 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], - "test/rdrand_sanitytest" => [ + "test/rdcpu_sanitytest" => [ "libcrypto.a", "test/libtestutil.a" ], @@ -8044,6 +9362,11 @@ our %unified_info = ( "libssl", "test/libtestutil.a" ], + "test/rpktest" => [ + "libcrypto", + "libssl", + "test/libtestutil.a" + ], "test/rsa_mp_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -8056,10 +9379,18 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], - "test/sanitytest" => [ + "test/rsa_x931_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], + "test/safe_math_test" => [ "libcrypto", "test/libtestutil.a" ], + "test/sanitytest" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/secmemtest" => [ "libcrypto", "test/libtestutil.a" @@ -8077,6 +9408,10 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/slh_dsa_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/sm2_internal_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -8106,6 +9441,11 @@ our %unified_info = ( "libssl", "test/libtestutil.a" ], + "test/ssl_handshake_rtt_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], "test/ssl_old_test" => [ "libcrypto.a", "libssl.a", @@ -8122,8 +9462,8 @@ our %unified_info = ( "test/libtestutil.a" ], "test/sslapitest" => [ - "libcrypto", - "libssl", + "libcrypto.a", + "libssl.a", "test/libtestutil.a" ], "test/sslbuffertest" => [ @@ -8140,6 +9480,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/strtoultest" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/sysdefaulttest" => [ "libcrypto", "libssl", @@ -8149,8 +9493,12 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/threadpool_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/threadstest" => [ - "libcrypto", + "libcrypto.a", "test/libtestutil.a" ], "test/threadstest_fips" => [ @@ -8161,6 +9509,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/time_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/tls13ccstest" => [ "libcrypto", "libssl", @@ -8171,6 +9523,11 @@ our %unified_info = ( "libssl.a", "test/libtestutil.a" ], + "test/tls13groupselection_test" => [ + "libcrypto", + "libssl", + "test/libtestutil.a" + ], "test/trace_api_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -8208,6 +9565,10 @@ our %unified_info = ( "libssl.a", "test/libtestutil.a" ], + "test/x509_acert_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/x509_check_cert_pkey_test" => [ "libcrypto", "test/libtestutil.a" @@ -8220,6 +9581,18 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/x509_load_cert_file_test" => [ + "libcrypto", + "test/libtestutil.a" + ], + "test/x509_req_test" => [ + "libcrypto", + "test/libtestutil.a" + ], + "test/x509_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/x509_time_test" => [ "libcrypto", "test/libtestutil.a" @@ -8234,9 +9607,13 @@ our %unified_info = ( }, "dirinfo" => { "apps" => { + "deps" => [ + "apps/ca_internals_test-bin-ca.o" + ], "products" => { "bin" => [ - "apps/openssl" + "apps/openssl", + "test/ca_internals_test" ], "script" => [ "apps/CA.pl", @@ -8247,6 +9624,14 @@ our %unified_info = ( "apps/lib" => { "deps" => [ "apps/lib/openssl-bin-cmp_mock_srv.o", + "apps/lib/ca_internals_test-bin-app_libctx.o", + "apps/lib/ca_internals_test-bin-app_provider.o", + "apps/lib/ca_internals_test-bin-app_rand.o", + "apps/lib/ca_internals_test-bin-app_x509.o", + "apps/lib/ca_internals_test-bin-apps.o", + "apps/lib/ca_internals_test-bin-apps_ui.o", + "apps/lib/ca_internals_test-bin-engine.o", + "apps/lib/ca_internals_test-bin-fmt.o", "apps/lib/cmp_client_test-bin-cmp_mock_srv.o", "apps/lib/uitest-bin-apps_ui.o", "apps/lib/libapps-lib-app_libctx.o", @@ -8255,12 +9640,14 @@ our %unified_info = ( "apps/lib/libapps-lib-app_rand.o", "apps/lib/libapps-lib-app_x509.o", "apps/lib/libapps-lib-apps.o", + "apps/lib/libapps-lib-apps_opt_printf.o", "apps/lib/libapps-lib-apps_ui.o", "apps/lib/libapps-lib-columns.o", "apps/lib/libapps-lib-engine.o", "apps/lib/libapps-lib-engine_loader.o", "apps/lib/libapps-lib-fmt.o", "apps/lib/libapps-lib-http_server.o", + "apps/lib/libapps-lib-log.o", "apps/lib/libapps-lib-names.o", "apps/lib/libapps-lib-opt.o", "apps/lib/libapps-lib-s_cb.o", @@ -8273,6 +9660,7 @@ our %unified_info = ( "products" => { "bin" => [ "apps/openssl", + "test/ca_internals_test", "test/cmp_client_test", "test/uitest" ], @@ -8284,8 +9672,12 @@ our %unified_info = ( }, "crypto" => { "deps" => [ + "crypto/asn1_time_test-bin-ctype.o", + "crypto/ca_internals_test-bin-ctype.o", + "crypto/packettest-bin-quic_vlint.o", "crypto/libcrypto-lib-asn1_dsa.o", "crypto/libcrypto-lib-bsearch.o", + "crypto/libcrypto-lib-comp_methods.o", "crypto/libcrypto-lib-context.o", "crypto/libcrypto-lib-core_algorithm.o", "crypto/libcrypto-lib-core_fetch.o", @@ -8295,10 +9687,13 @@ our %unified_info = ( "crypto/libcrypto-lib-cryptlib.o", "crypto/libcrypto-lib-ctype.o", "crypto/libcrypto-lib-cversion.o", + "crypto/libcrypto-lib-defaults.o", "crypto/libcrypto-lib-der_writer.o", + "crypto/libcrypto-lib-deterministic_nonce.o", "crypto/libcrypto-lib-ebcdic.o", "crypto/libcrypto-lib-ex_data.o", "crypto/libcrypto-lib-getenv.o", + "crypto/libcrypto-lib-indicator_core.o", "crypto/libcrypto-lib-info.o", "crypto/libcrypto-lib-init.o", "crypto/libcrypto-lib-initthread.o", @@ -8315,6 +9710,7 @@ our %unified_info = ( "crypto/libcrypto-lib-params.o", "crypto/libcrypto-lib-params_dup.o", "crypto/libcrypto-lib-params_from_text.o", + "crypto/libcrypto-lib-params_idx.o", "crypto/libcrypto-lib-passphrase.o", "crypto/libcrypto-lib-provider.o", "crypto/libcrypto-lib-provider_child.o", @@ -8322,12 +9718,16 @@ our %unified_info = ( "crypto/libcrypto-lib-provider_core.o", "crypto/libcrypto-lib-provider_predefined.o", "crypto/libcrypto-lib-punycode.o", + "crypto/libcrypto-lib-quic_vlint.o", "crypto/libcrypto-lib-self_test_core.o", + "crypto/libcrypto-lib-sleep.o", "crypto/libcrypto-lib-sparse_array.o", + "crypto/libcrypto-lib-ssl_err.o", "crypto/libcrypto-lib-threads_lib.o", "crypto/libcrypto-lib-threads_none.o", "crypto/libcrypto-lib-threads_pthread.o", "crypto/libcrypto-lib-threads_win.o", + "crypto/libcrypto-lib-time.o", "crypto/libcrypto-lib-trace.o", "crypto/libcrypto-lib-uid.o", "crypto/libcrypto-lib-x86cpuid.o", @@ -8350,6 +9750,7 @@ our %unified_info = ( "crypto/libfips-lib-params.o", "crypto/libfips-lib-params_dup.o", "crypto/libfips-lib-params_from_text.o", + "crypto/libfips-lib-params_idx.o", "crypto/libfips-lib-provider_core.o", "crypto/libfips-lib-provider_predefined.o", "crypto/libfips-lib-self_test_core.o", @@ -8358,9 +9759,15 @@ our %unified_info = ( "crypto/libfips-lib-threads_none.o", "crypto/libfips-lib-threads_pthread.o", "crypto/libfips-lib-threads_win.o", + "crypto/libfips-lib-time.o", "crypto/libfips-lib-x86cpuid.o" ], "products" => { + "bin" => [ + "test/asn1_time_test", + "test/ca_internals_test", + "test/packettest" + ], "lib" => [ "libcrypto", "providers/libfips.a" @@ -8403,6 +9810,8 @@ our %unified_info = ( }, "crypto/asn1" => { "deps" => [ + "crypto/asn1/asn1_time_test-bin-a_time.o", + "crypto/asn1/ca_internals_test-bin-a_time.o", "crypto/asn1/libcrypto-lib-a_bitstr.o", "crypto/asn1/libcrypto-lib-a_d2i_fp.o", "crypto/asn1/libcrypto-lib-a_digest.o", @@ -8469,6 +9878,10 @@ our %unified_info = ( "crypto/asn1/libcrypto-lib-x_val.o" ], "products" => { + "bin" => [ + "test/asn1_time_test", + "test/ca_internals_test" + ], "lib" => [ "libcrypto" ] @@ -8534,6 +9947,7 @@ our %unified_info = ( "crypto/bio/libcrypto-lib-bss_conn.o", "crypto/bio/libcrypto-lib-bss_core.o", "crypto/bio/libcrypto-lib-bss_dgram.o", + "crypto/bio/libcrypto-lib-bss_dgram_pair.o", "crypto/bio/libcrypto-lib-bss_fd.o", "crypto/bio/libcrypto-lib-bss_file.o", "crypto/bio/libcrypto-lib-bss_log.o", @@ -8694,6 +10108,7 @@ our %unified_info = ( "crypto/cmp/libcrypto-lib-cmp_client.o", "crypto/cmp/libcrypto-lib-cmp_ctx.o", "crypto/cmp/libcrypto-lib-cmp_err.o", + "crypto/cmp/libcrypto-lib-cmp_genm.o", "crypto/cmp/libcrypto-lib-cmp_hdr.o", "crypto/cmp/libcrypto-lib-cmp_http.o", "crypto/cmp/libcrypto-lib-cmp_msg.o", @@ -9065,7 +10480,9 @@ our %unified_info = ( "crypto/err/libcrypto-lib-err_all.o", "crypto/err/libcrypto-lib-err_all_legacy.o", "crypto/err/libcrypto-lib-err_blocks.o", - "crypto/err/libcrypto-lib-err_prn.o" + "crypto/err/libcrypto-lib-err_mark.o", + "crypto/err/libcrypto-lib-err_prn.o", + "crypto/err/libcrypto-lib-err_save.o" ], "products" => { "lib" => [ @@ -9166,7 +10583,9 @@ our %unified_info = ( "crypto/evp/libcrypto-lib-pmeth_check.o", "crypto/evp/libcrypto-lib-pmeth_gn.o", "crypto/evp/libcrypto-lib-pmeth_lib.o", + "crypto/evp/libcrypto-lib-s_lib.o", "crypto/evp/libcrypto-lib-signature.o", + "crypto/evp/libcrypto-lib-skeymgmt_meth.o", "crypto/evp/libfips-lib-asymcipher.o", "crypto/evp/libfips-lib-dh_support.o", "crypto/evp/libfips-lib-digest.o", @@ -9182,14 +10601,15 @@ our %unified_info = ( "crypto/evp/libfips-lib-kem.o", "crypto/evp/libfips-lib-keymgmt_lib.o", "crypto/evp/libfips-lib-keymgmt_meth.o", - "crypto/evp/libfips-lib-m_sigver.o", "crypto/evp/libfips-lib-mac_lib.o", "crypto/evp/libfips-lib-mac_meth.o", "crypto/evp/libfips-lib-p_lib.o", "crypto/evp/libfips-lib-pmeth_check.o", "crypto/evp/libfips-lib-pmeth_gn.o", "crypto/evp/libfips-lib-pmeth_lib.o", - "crypto/evp/libfips-lib-signature.o" + "crypto/evp/libfips-lib-s_lib.o", + "crypto/evp/libfips-lib-signature.o", + "crypto/evp/libfips-lib-skeymgmt_meth.o" ], "products" => { "lib" => [ @@ -9222,6 +10642,20 @@ our %unified_info = ( ] } }, + "crypto/hashtable" => { + "deps" => [ + "crypto/hashtable/libcrypto-lib-hashfunc.o", + "crypto/hashtable/libcrypto-lib-hashtable.o", + "crypto/hashtable/libfips-lib-hashfunc.o", + "crypto/hashtable/libfips-lib-hashtable.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, "crypto/hmac" => { "deps" => [ "crypto/hmac/libcrypto-lib-hmac.o", @@ -9234,6 +10668,17 @@ our %unified_info = ( ] } }, + "crypto/hpke" => { + "deps" => [ + "crypto/hpke/libcrypto-lib-hpke.o", + "crypto/hpke/libcrypto-lib-hpke_util.o" + ], + "products" => { + "lib" => [ + "libcrypto" + ] + } + }, "crypto/http" => { "deps" => [ "crypto/http/libcrypto-lib-http_client.o", @@ -9318,6 +10763,44 @@ our %unified_info = ( ] } }, + "crypto/ml_dsa" => { + "deps" => [ + "crypto/ml_dsa/libcrypto-lib-ml_dsa_encoders.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key_compress.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_matrix.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_ntt.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_params.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sample.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sign.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_encoders.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_key.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_key_compress.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_matrix.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_ntt.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_params.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_sample.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_sign.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, + "crypto/ml_kem" => { + "deps" => [ + "crypto/ml_kem/libcrypto-lib-ml_kem.o", + "crypto/ml_kem/libfips-lib-ml_kem.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, "crypto/modes" => { "deps" => [ "crypto/modes/libcrypto-lib-cbc128.o", @@ -9332,6 +10815,7 @@ our %unified_info = ( "crypto/modes/libcrypto-lib-siv128.o", "crypto/modes/libcrypto-lib-wrap128.o", "crypto/modes/libcrypto-lib-xts128.o", + "crypto/modes/libcrypto-lib-xts128gb.o", "crypto/modes/libfips-lib-cbc128.o", "crypto/modes/libfips-lib-ccm128.o", "crypto/modes/libfips-lib-cfb128.o", @@ -9340,7 +10824,8 @@ our %unified_info = ( "crypto/modes/libfips-lib-ghash-x86.o", "crypto/modes/libfips-lib-ofb128.o", "crypto/modes/libfips-lib-wrap128.o", - "crypto/modes/libfips-lib-xts128.o" + "crypto/modes/libfips-lib-xts128.o", + "crypto/modes/libfips-lib-xts128gb.o" ], "products" => { "lib" => [ @@ -9484,6 +10969,7 @@ our %unified_info = ( "crypto/rand/libcrypto-lib-rand_lib.o", "crypto/rand/libcrypto-lib-rand_meth.o", "crypto/rand/libcrypto-lib-rand_pool.o", + "crypto/rand/libcrypto-lib-rand_uniform.o", "crypto/rand/libcrypto-lib-randfile.o", "crypto/rand/libfips-lib-rand_lib.o" ], @@ -9634,6 +11120,36 @@ our %unified_info = ( ] } }, + "crypto/slh_dsa" => { + "deps" => [ + "crypto/slh_dsa/libcrypto-lib-slh_adrs.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa_hash_ctx.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa_key.o", + "crypto/slh_dsa/libcrypto-lib-slh_fors.o", + "crypto/slh_dsa/libcrypto-lib-slh_hash.o", + "crypto/slh_dsa/libcrypto-lib-slh_hypertree.o", + "crypto/slh_dsa/libcrypto-lib-slh_params.o", + "crypto/slh_dsa/libcrypto-lib-slh_wots.o", + "crypto/slh_dsa/libcrypto-lib-slh_xmss.o", + "crypto/slh_dsa/libfips-lib-slh_adrs.o", + "crypto/slh_dsa/libfips-lib-slh_dsa.o", + "crypto/slh_dsa/libfips-lib-slh_dsa_hash_ctx.o", + "crypto/slh_dsa/libfips-lib-slh_dsa_key.o", + "crypto/slh_dsa/libfips-lib-slh_fors.o", + "crypto/slh_dsa/libfips-lib-slh_hash.o", + "crypto/slh_dsa/libfips-lib-slh_hypertree.o", + "crypto/slh_dsa/libfips-lib-slh_params.o", + "crypto/slh_dsa/libfips-lib-slh_wots.o", + "crypto/slh_dsa/libfips-lib-slh_xmss.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, "crypto/sm2" => { "deps" => [ "crypto/sm2/libcrypto-lib-sm2_crypt.o", @@ -9707,6 +11223,38 @@ our %unified_info = ( ] } }, + "crypto/thread" => { + "deps" => [ + "crypto/thread/libcrypto-lib-api.o", + "crypto/thread/libcrypto-lib-arch.o", + "crypto/thread/libcrypto-lib-internal.o", + "crypto/thread/libfips-lib-api.o", + "crypto/thread/libfips-lib-arch.o", + "crypto/thread/libfips-lib-internal.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, + "crypto/thread/arch" => { + "deps" => [ + "crypto/thread/arch/libcrypto-lib-thread_none.o", + "crypto/thread/arch/libcrypto-lib-thread_posix.o", + "crypto/thread/arch/libcrypto-lib-thread_win.o", + "crypto/thread/arch/libfips-lib-thread_none.o", + "crypto/thread/arch/libfips-lib-thread_posix.o", + "crypto/thread/arch/libfips-lib-thread_win.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, "crypto/ts" => { "deps" => [ "crypto/ts/libcrypto-lib-ts_asn1.o", @@ -9774,14 +11322,22 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-pcy_map.o", "crypto/x509/libcrypto-lib-pcy_node.o", "crypto/x509/libcrypto-lib-pcy_tree.o", + "crypto/x509/libcrypto-lib-t_acert.o", "crypto/x509/libcrypto-lib-t_crl.o", "crypto/x509/libcrypto-lib-t_req.o", "crypto/x509/libcrypto-lib-t_x509.o", + "crypto/x509/libcrypto-lib-v3_aaa.o", + "crypto/x509/libcrypto-lib-v3_ac_tgt.o", "crypto/x509/libcrypto-lib-v3_addr.o", "crypto/x509/libcrypto-lib-v3_admis.o", "crypto/x509/libcrypto-lib-v3_akeya.o", "crypto/x509/libcrypto-lib-v3_akid.o", "crypto/x509/libcrypto-lib-v3_asid.o", + "crypto/x509/libcrypto-lib-v3_attrdesc.o", + "crypto/x509/libcrypto-lib-v3_attrmap.o", + "crypto/x509/libcrypto-lib-v3_audit_id.o", + "crypto/x509/libcrypto-lib-v3_authattid.o", + "crypto/x509/libcrypto-lib-v3_battcons.o", "crypto/x509/libcrypto-lib-v3_bcons.o", "crypto/x509/libcrypto-lib-v3_bitst.o", "crypto/x509/libcrypto-lib-v3_conf.o", @@ -9790,12 +11346,17 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_enum.o", "crypto/x509/libcrypto-lib-v3_extku.o", "crypto/x509/libcrypto-lib-v3_genn.o", + "crypto/x509/libcrypto-lib-v3_group_ac.o", "crypto/x509/libcrypto-lib-v3_ia5.o", + "crypto/x509/libcrypto-lib-v3_ind_iss.o", "crypto/x509/libcrypto-lib-v3_info.o", "crypto/x509/libcrypto-lib-v3_int.o", + "crypto/x509/libcrypto-lib-v3_iobo.o", "crypto/x509/libcrypto-lib-v3_ist.o", "crypto/x509/libcrypto-lib-v3_lib.o", "crypto/x509/libcrypto-lib-v3_ncons.o", + "crypto/x509/libcrypto-lib-v3_no_ass.o", + "crypto/x509/libcrypto-lib-v3_no_rev_avail.o", "crypto/x509/libcrypto-lib-v3_pci.o", "crypto/x509/libcrypto-lib-v3_pcia.o", "crypto/x509/libcrypto-lib-v3_pcons.o", @@ -9803,13 +11364,20 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_pmaps.o", "crypto/x509/libcrypto-lib-v3_prn.o", "crypto/x509/libcrypto-lib-v3_purp.o", + "crypto/x509/libcrypto-lib-v3_rolespec.o", "crypto/x509/libcrypto-lib-v3_san.o", + "crypto/x509/libcrypto-lib-v3_sda.o", + "crypto/x509/libcrypto-lib-v3_single_use.o", "crypto/x509/libcrypto-lib-v3_skid.o", + "crypto/x509/libcrypto-lib-v3_soa_id.o", "crypto/x509/libcrypto-lib-v3_sxnet.o", + "crypto/x509/libcrypto-lib-v3_timespec.o", "crypto/x509/libcrypto-lib-v3_tlsf.o", + "crypto/x509/libcrypto-lib-v3_usernotice.o", "crypto/x509/libcrypto-lib-v3_utf8.o", "crypto/x509/libcrypto-lib-v3_utl.o", "crypto/x509/libcrypto-lib-v3err.o", + "crypto/x509/libcrypto-lib-x509_acert.o", "crypto/x509/libcrypto-lib-x509_att.o", "crypto/x509/libcrypto-lib-x509_cmp.o", "crypto/x509/libcrypto-lib-x509_d2.o", @@ -9827,6 +11395,7 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x509_v3.o", "crypto/x509/libcrypto-lib-x509_vfy.o", "crypto/x509/libcrypto-lib-x509_vpm.o", + "crypto/x509/libcrypto-lib-x509aset.o", "crypto/x509/libcrypto-lib-x509cset.o", "crypto/x509/libcrypto-lib-x509name.o", "crypto/x509/libcrypto-lib-x509rset.o", @@ -9836,6 +11405,7 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x_attrib.o", "crypto/x509/libcrypto-lib-x_crl.o", "crypto/x509/libcrypto-lib-x_exten.o", + "crypto/x509/libcrypto-lib-x_ietfatt.o", "crypto/x509/libcrypto-lib-x_name.o", "crypto/x509/libcrypto-lib-x_pubkey.o", "crypto/x509/libcrypto-lib-x_req.o", @@ -9863,6 +11433,7 @@ our %unified_info = ( "fuzz" => { "products" => { "bin" => [ + "fuzz/acert-test", "fuzz/asn1-test", "fuzz/asn1parse-test", "fuzz/bignum-test", @@ -9873,13 +11444,31 @@ our %unified_info = ( "fuzz/conf-test", "fuzz/crl-test", "fuzz/ct-test", + "fuzz/decoder-test", + "fuzz/dtlsclient-test", + "fuzz/dtlsserver-test", + "fuzz/hashtable-test", + "fuzz/ml-dsa-test", + "fuzz/ml-kem-test", + "fuzz/pem-test", + "fuzz/provider-test", + "fuzz/punycode-test", + "fuzz/quic-client-test", + "fuzz/quic-lcidm-test", + "fuzz/quic-rcidm-test", + "fuzz/quic-server-test", + "fuzz/quic-srtm-test", "fuzz/server-test", + "fuzz/slh-dsa-test", + "fuzz/smime-test", + "fuzz/v3name-test", "fuzz/x509-test" ] } }, "providers" => { "deps" => [ + "providers/endecode_test-bin-legacyprov.o", "providers/evp_extra_test-bin-legacyprov.o", "providers/libcrypto-lib-baseprov.o", "providers/libcrypto-lib-defltprov.o", @@ -9889,6 +11478,7 @@ our %unified_info = ( ], "products" => { "bin" => [ + "test/endecode_test", "test/evp_extra_test" ], "dso" => [ @@ -9940,8 +11530,12 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ec_sig.o", "providers/common/der/libcommon-lib-der_ecx_gen.o", "providers/common/der/libcommon-lib-der_ecx_key.o", + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o", + "providers/common/der/libcommon-lib-der_ml_dsa_key.o", "providers/common/der/libcommon-lib-der_rsa_gen.o", "providers/common/der/libcommon-lib-der_rsa_key.o", + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o", + "providers/common/der/libcommon-lib-der_slh_dsa_key.o", "providers/common/der/libcommon-lib-der_wrap_gen.o", "providers/common/der/libdefault-lib-der_rsa_sig.o", "providers/common/der/libdefault-lib-der_sm2_gen.o", @@ -9960,6 +11554,7 @@ our %unified_info = ( "providers/fips" => { "deps" => [ "providers/fips/fips-dso-fips_entry.o", + "providers/fips/libfips-lib-fipsindicator.o", "providers/fips/libfips-lib-fipsprov.o", "providers/fips/libfips-lib-self_test.o", "providers/fips/libfips-lib-self_test_kats.o" @@ -10003,6 +11598,9 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_aes_ccm_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_polyval.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_ocb.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_ocb_hw.o", @@ -10027,7 +11625,13 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_cts.o", "providers/implementations/ciphers/libdefault-lib-cipher_null.o", "providers/implementations/ciphers/libdefault-lib-cipher_sm4.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_sm4_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes_common.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes_default.o", @@ -10124,7 +11728,10 @@ our %unified_info = ( "providers/implementations/encode_decode/libdefault-lib-encode_key2blob.o", "providers/implementations/encode_decode/libdefault-lib-encode_key2ms.o", "providers/implementations/encode_decode/libdefault-lib-encode_key2text.o", - "providers/implementations/encode_decode/libdefault-lib-endecoder_common.o" + "providers/implementations/encode_decode/libdefault-lib-endecoder_common.o", + "providers/implementations/encode_decode/libdefault-lib-ml_common_codecs.o", + "providers/implementations/encode_decode/libdefault-lib-ml_dsa_codecs.o", + "providers/implementations/encode_decode/libdefault-lib-ml_kem_codecs.o" ], "products" => { "lib" => [ @@ -10152,7 +11759,9 @@ our %unified_info = ( }, "providers/implementations/kdfs" => { "deps" => [ + "providers/implementations/kdfs/libdefault-lib-argon2.o", "providers/implementations/kdfs/libdefault-lib-hkdf.o", + "providers/implementations/kdfs/libdefault-lib-hmacdrbg_kdf.o", "providers/implementations/kdfs/libdefault-lib-kbkdf.o", "providers/implementations/kdfs/libdefault-lib-krb5kdf.o", "providers/implementations/kdfs/libdefault-lib-pbkdf2.o", @@ -10171,7 +11780,8 @@ our %unified_info = ( "providers/implementations/kdfs/libfips-lib-sskdf.o", "providers/implementations/kdfs/libfips-lib-tls1_prf.o", "providers/implementations/kdfs/libfips-lib-x942kdf.o", - "providers/implementations/kdfs/liblegacy-lib-pbkdf1.o" + "providers/implementations/kdfs/liblegacy-lib-pbkdf1.o", + "providers/implementations/kdfs/liblegacy-lib-pvkkdf.o" ], "products" => { "lib" => [ @@ -10183,13 +11793,22 @@ our %unified_info = ( }, "providers/implementations/kem" => { "deps" => [ + "providers/implementations/kem/libdefault-lib-ec_kem.o", + "providers/implementations/kem/libdefault-lib-ecx_kem.o", + "providers/implementations/kem/libdefault-lib-kem_util.o", + "providers/implementations/kem/libdefault-lib-ml_kem_kem.o", + "providers/implementations/kem/libdefault-lib-mlx_kem.o", "providers/implementations/kem/libdefault-lib-rsa_kem.o", - "providers/implementations/kem/libfips-lib-rsa_kem.o" + "providers/implementations/kem/libfips-lib-ml_kem_kem.o", + "providers/implementations/kem/libfips-lib-mlx_kem.o", + "providers/implementations/kem/libfips-lib-rsa_kem.o", + "providers/implementations/kem/libtemplate-lib-template_kem.o" ], "products" => { "lib" => [ "providers/libdefault.a", - "providers/libfips.a" + "providers/libfips.a", + "providers/libtemplate.a" ] } }, @@ -10201,19 +11820,29 @@ our %unified_info = ( "providers/implementations/keymgmt/libdefault-lib-ecx_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-kdf_legacy_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-mac_legacy_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-ml_dsa_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-ml_kem_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-mlx_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-rsa_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-slh_dsa_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-dh_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-dsa_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-ec_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-ecx_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-kdf_legacy_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-mac_legacy_kmgmt.o", - "providers/implementations/keymgmt/libfips-lib-rsa_kmgmt.o" + "providers/implementations/keymgmt/libfips-lib-ml_dsa_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-ml_kem_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-mlx_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-rsa_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-slh_dsa_kmgmt.o", + "providers/implementations/keymgmt/libtemplate-lib-template_kmgmt.o" ], "products" => { "lib" => [ "providers/libdefault.a", - "providers/libfips.a" + "providers/libfips.a", + "providers/libtemplate.a" ] } }, @@ -10241,18 +11870,18 @@ our %unified_info = ( }, "providers/implementations/rands" => { "deps" => [ - "providers/implementations/rands/libdefault-lib-crngt.o", "providers/implementations/rands/libdefault-lib-drbg.o", "providers/implementations/rands/libdefault-lib-drbg_ctr.o", "providers/implementations/rands/libdefault-lib-drbg_hash.o", "providers/implementations/rands/libdefault-lib-drbg_hmac.o", "providers/implementations/rands/libdefault-lib-seed_src.o", + "providers/implementations/rands/libdefault-lib-seed_src_jitter.o", "providers/implementations/rands/libdefault-lib-test_rng.o", - "providers/implementations/rands/libfips-lib-crngt.o", "providers/implementations/rands/libfips-lib-drbg.o", "providers/implementations/rands/libfips-lib-drbg_ctr.o", "providers/implementations/rands/libfips-lib-drbg_hash.o", "providers/implementations/rands/libfips-lib-drbg_hmac.o", + "providers/implementations/rands/libfips-lib-fips_crng_test.o", "providers/implementations/rands/libfips-lib-test_rng.o" ], "products" => { @@ -10281,13 +11910,31 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-ecdsa_sig.o", "providers/implementations/signature/libdefault-lib-eddsa_sig.o", "providers/implementations/signature/libdefault-lib-mac_legacy_sig.o", + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o", "providers/implementations/signature/libdefault-lib-rsa_sig.o", + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o", "providers/implementations/signature/libdefault-lib-sm2_sig.o", "providers/implementations/signature/libfips-lib-dsa_sig.o", "providers/implementations/signature/libfips-lib-ecdsa_sig.o", "providers/implementations/signature/libfips-lib-eddsa_sig.o", "providers/implementations/signature/libfips-lib-mac_legacy_sig.o", - "providers/implementations/signature/libfips-lib-rsa_sig.o" + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o", + "providers/implementations/signature/libfips-lib-rsa_sig.o", + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o" + ], + "products" => { + "lib" => [ + "providers/libdefault.a", + "providers/libfips.a" + ] + } + }, + "providers/implementations/skeymgmt" => { + "deps" => [ + "providers/implementations/skeymgmt/libdefault-lib-aes_skmgmt.o", + "providers/implementations/skeymgmt/libdefault-lib-generic.o", + "providers/implementations/skeymgmt/libfips-lib-aes_skmgmt.o", + "providers/implementations/skeymgmt/libfips-lib-generic.o" ], "products" => { "lib" => [ @@ -10299,7 +11946,8 @@ our %unified_info = ( "providers/implementations/storemgmt" => { "deps" => [ "providers/implementations/storemgmt/libdefault-lib-file_store.o", - "providers/implementations/storemgmt/libdefault-lib-file_store_any2obj.o" + "providers/implementations/storemgmt/libdefault-lib-file_store_any2obj.o", + "providers/implementations/storemgmt/libdefault-lib-winstore_store.o" ], "products" => { "lib" => [ @@ -10315,14 +11963,15 @@ our %unified_info = ( "ssl/libssl-lib-d1_srtp.o", "ssl/libssl-lib-methods.o", "ssl/libssl-lib-pqueue.o", + "ssl/libssl-lib-priority_queue.o", "ssl/libssl-lib-s3_enc.o", "ssl/libssl-lib-s3_lib.o", "ssl/libssl-lib-s3_msg.o", "ssl/libssl-lib-ssl_asn1.o", "ssl/libssl-lib-ssl_cert.o", + "ssl/libssl-lib-ssl_cert_comp.o", "ssl/libssl-lib-ssl_ciph.o", "ssl/libssl-lib-ssl_conf.o", - "ssl/libssl-lib-ssl_err.o", "ssl/libssl-lib-ssl_err_legacy.o", "ssl/libssl-lib-ssl_init.o", "ssl/libssl-lib-ssl_lib.o", @@ -10338,32 +11987,107 @@ our %unified_info = ( "ssl/libssl-lib-t1_trce.o", "ssl/libssl-lib-tls13_enc.o", "ssl/libssl-lib-tls_depr.o", - "ssl/libssl-lib-tls_srp.o", - "ssl/libdefault-lib-s3_cbc.o", - "ssl/libfips-lib-s3_cbc.o" + "ssl/libssl-lib-tls_srp.o" ], "products" => { "lib" => [ - "libssl", - "providers/libdefault.a", - "providers/libfips.a" + "libssl" + ] + } + }, + "ssl/quic" => { + "deps" => [ + "ssl/quic/libssl-lib-cc_newreno.o", + "ssl/quic/libssl-lib-json_enc.o", + "ssl/quic/libssl-lib-qlog.o", + "ssl/quic/libssl-lib-qlog_event_helpers.o", + "ssl/quic/libssl-lib-quic_ackm.o", + "ssl/quic/libssl-lib-quic_cfq.o", + "ssl/quic/libssl-lib-quic_channel.o", + "ssl/quic/libssl-lib-quic_demux.o", + "ssl/quic/libssl-lib-quic_engine.o", + "ssl/quic/libssl-lib-quic_fc.o", + "ssl/quic/libssl-lib-quic_fifd.o", + "ssl/quic/libssl-lib-quic_impl.o", + "ssl/quic/libssl-lib-quic_lcidm.o", + "ssl/quic/libssl-lib-quic_method.o", + "ssl/quic/libssl-lib-quic_obj.o", + "ssl/quic/libssl-lib-quic_port.o", + "ssl/quic/libssl-lib-quic_rcidm.o", + "ssl/quic/libssl-lib-quic_reactor.o", + "ssl/quic/libssl-lib-quic_reactor_wait_ctx.o", + "ssl/quic/libssl-lib-quic_record_rx.o", + "ssl/quic/libssl-lib-quic_record_shared.o", + "ssl/quic/libssl-lib-quic_record_tx.o", + "ssl/quic/libssl-lib-quic_record_util.o", + "ssl/quic/libssl-lib-quic_rstream.o", + "ssl/quic/libssl-lib-quic_rx_depack.o", + "ssl/quic/libssl-lib-quic_sf_list.o", + "ssl/quic/libssl-lib-quic_srt_gen.o", + "ssl/quic/libssl-lib-quic_srtm.o", + "ssl/quic/libssl-lib-quic_sstream.o", + "ssl/quic/libssl-lib-quic_statm.o", + "ssl/quic/libssl-lib-quic_stream_map.o", + "ssl/quic/libssl-lib-quic_thread_assist.o", + "ssl/quic/libssl-lib-quic_tls.o", + "ssl/quic/libssl-lib-quic_tls_api.o", + "ssl/quic/libssl-lib-quic_trace.o", + "ssl/quic/libssl-lib-quic_tserver.o", + "ssl/quic/libssl-lib-quic_txp.o", + "ssl/quic/libssl-lib-quic_txpim.o", + "ssl/quic/libssl-lib-quic_types.o", + "ssl/quic/libssl-lib-quic_wire.o", + "ssl/quic/libssl-lib-quic_wire_pkt.o", + "ssl/quic/libssl-lib-uint_set.o" + ], + "products" => { + "lib" => [ + "libssl" ] } }, "ssl/record" => { "deps" => [ - "ssl/record/libssl-lib-dtls1_bitmap.o", "ssl/record/libssl-lib-rec_layer_d1.o", - "ssl/record/libssl-lib-rec_layer_s3.o", - "ssl/record/libssl-lib-ssl3_buffer.o", - "ssl/record/libssl-lib-ssl3_record.o", - "ssl/record/libssl-lib-ssl3_record_tls13.o", - "ssl/record/libcommon-lib-tls_pad.o" + "ssl/record/libssl-lib-rec_layer_s3.o" + ], + "products" => { + "lib" => [ + "libssl" + ] + } + }, + "ssl/record/methods" => { + "deps" => [ + "ssl/record/methods/libssl-lib-dtls_meth.o", + "ssl/record/methods/libssl-lib-ssl3_meth.o", + "ssl/record/methods/libssl-lib-tls13_meth.o", + "ssl/record/methods/libssl-lib-tls1_meth.o", + "ssl/record/methods/libssl-lib-tls_common.o", + "ssl/record/methods/libssl-lib-tls_multib.o", + "ssl/record/methods/libssl-lib-tlsany_meth.o", + "ssl/record/methods/libcommon-lib-tls_pad.o", + "ssl/record/methods/libdefault-lib-ssl3_cbc.o", + "ssl/record/methods/libfips-lib-ssl3_cbc.o" ], "products" => { "lib" => [ "libssl", - "providers/libcommon.a" + "providers/libcommon.a", + "providers/libdefault.a", + "providers/libfips.a" + ] + } + }, + "ssl/rio" => { + "deps" => [ + "ssl/rio/libssl-lib-poll_builder.o", + "ssl/rio/libssl-lib-poll_immediate.o", + "ssl/rio/libssl-lib-rio_notifier.o" + ], + "products" => { + "lib" => [ + "libssl" ] } }, @@ -10401,9 +12125,40 @@ our %unified_info = ( "test/helpers/dtlstest-bin-ssltestlib.o", "test/helpers/endecode_test-bin-predefined_dhparams.o", "test/helpers/fatalerrtest-bin-ssltestlib.o", + "test/helpers/json_test-bin-noisydgrambio.o", + "test/helpers/json_test-bin-pktsplitbio.o", + "test/helpers/json_test-bin-quictestlib.o", + "test/helpers/json_test-bin-ssltestlib.o", + "test/helpers/pkcs12_api_test-bin-pkcs12.o", "test/helpers/pkcs12_format_test-bin-pkcs12.o", + "test/helpers/quic_multistream_test-bin-noisydgrambio.o", + "test/helpers/quic_multistream_test-bin-pktsplitbio.o", + "test/helpers/quic_multistream_test-bin-quictestlib.o", + "test/helpers/quic_multistream_test-bin-ssltestlib.o", + "test/helpers/quic_newcid_test-bin-noisydgrambio.o", + "test/helpers/quic_newcid_test-bin-pktsplitbio.o", + "test/helpers/quic_newcid_test-bin-quictestlib.o", + "test/helpers/quic_newcid_test-bin-ssltestlib.o", + "test/helpers/quic_radix_test-bin-noisydgrambio.o", + "test/helpers/quic_radix_test-bin-pktsplitbio.o", + "test/helpers/quic_radix_test-bin-quictestlib.o", + "test/helpers/quic_radix_test-bin-ssltestlib.o", + "test/helpers/quic_srt_gen_test-bin-noisydgrambio.o", + "test/helpers/quic_srt_gen_test-bin-pktsplitbio.o", + "test/helpers/quic_srt_gen_test-bin-quictestlib.o", + "test/helpers/quic_srt_gen_test-bin-ssltestlib.o", + "test/helpers/quicapitest-bin-noisydgrambio.o", + "test/helpers/quicapitest-bin-pktsplitbio.o", + "test/helpers/quicapitest-bin-quictestlib.o", + "test/helpers/quicapitest-bin-ssltestlib.o", + "test/helpers/quicfaultstest-bin-noisydgrambio.o", + "test/helpers/quicfaultstest-bin-pktsplitbio.o", + "test/helpers/quicfaultstest-bin-quictestlib.o", + "test/helpers/quicfaultstest-bin-ssltestlib.o", "test/helpers/recordlentest-bin-ssltestlib.o", + "test/helpers/rpktest-bin-ssltestlib.o", "test/helpers/servername_test-bin-ssltestlib.o", + "test/helpers/ssl_handshake_rtt_test-bin-ssltestlib.o", "test/helpers/ssl_old_test-bin-predefined_dhparams.o", "test/helpers/ssl_test-bin-handshake.o", "test/helpers/ssl_test-bin-handshake_srp.o", @@ -10412,7 +12167,8 @@ our %unified_info = ( "test/helpers/sslapitest-bin-ssltestlib.o", "test/helpers/sslbuffertest-bin-ssltestlib.o", "test/helpers/sslcorrupttest-bin-ssltestlib.o", - "test/helpers/tls13ccstest-bin-ssltestlib.o" + "test/helpers/tls13ccstest-bin-ssltestlib.o", + "test/helpers/tls13groupselection_test-bin-ssltestlib.o" ], "products" => { "bin" => [ @@ -10430,16 +12186,37 @@ our %unified_info = ( "test/dtlstest", "test/endecode_test", "test/fatalerrtest", + "test/json_test", + "test/pkcs12_api_test", "test/pkcs12_format_test", + "test/quic_multistream_test", + "test/quic_newcid_test", + "test/quic_radix_test", + "test/quic_srt_gen_test", + "test/quicapitest", + "test/quicfaultstest", "test/recordlentest", + "test/rpktest", "test/servername_test", + "test/ssl_handshake_rtt_test", "test/ssl_old_test", "test/ssl_test", "test/ssl_test_ctx_test", "test/sslapitest", "test/sslbuffertest", "test/sslcorrupttest", - "test/tls13ccstest" + "test/tls13ccstest", + "test/tls13groupselection_test" + ] + } + }, + "test/radix" => { + "deps" => [ + "test/radix/quic_radix_test-bin-quic_radix.o" + ], + "products" => { + "bin" => [ + "test/quic_radix_test" ] } }, @@ -10451,6 +12228,7 @@ our %unified_info = ( "test/testutil/libtestutil-lib-driver.o", "test/testutil/libtestutil-lib-fake_random.o", "test/testutil/libtestutil-lib-format_output.o", + "test/testutil/libtestutil-lib-helper.o", "test/testutil/libtestutil-lib-load.o", "test/testutil/libtestutil-lib-main.o", "test/testutil/libtestutil-lib-options.o", @@ -10485,6 +12263,12 @@ our %unified_info = ( } }, "generate" => { + "OpenSSLConfig.cmake" => [ + "exporters/cmake/OpenSSLConfig.cmake.in" + ], + "OpenSSLConfigVersion.cmake" => [ + "exporters/cmake/OpenSSLConfigVersion.cmake.in" + ], "apps/openssl.rc" => [ "util/mkrc.pl", "openssl" @@ -10499,6 +12283,19 @@ our %unified_info = ( "\"-H\"", "\$(APPS_OPENSSL)" ], + "builddata.pm" => [ + "util/mkinstallvars.pl", + "PREFIX=.", + "BINDIR=apps", + "APPLINKDIR=ms", + "LIBDIR=", + "INCLUDEDIR=include", + "\"INCLUDEDIR=\$(SRCDIR)/include\"", + "ENGINESDIR=engines", + "MODULESDIR=providers", + "\"VERSION=\$(VERSION)\"", + "\"LDLIBS=\$(LIB_EX_LIBS)\"" + ], "crypto/aes/aes-586.S" => [ "crypto/aes/asm/aes-586.pl" ], @@ -10520,6 +12317,24 @@ our %unified_info = ( "crypto/aes/aes-ppc.s" => [ "crypto/aes/asm/aes-ppc.pl" ], + "crypto/aes/aes-riscv32-zkn.s" => [ + "crypto/aes/asm/aes-riscv32-zkn.pl" + ], + "crypto/aes/aes-riscv64-zkn.s" => [ + "crypto/aes/asm/aes-riscv64-zkn.pl" + ], + "crypto/aes/aes-riscv64-zvbb-zvkg-zvkned.s" => [ + "crypto/aes/asm/aes-riscv64-zvbb-zvkg-zvkned.pl" + ], + "crypto/aes/aes-riscv64-zvkb-zvkned.s" => [ + "crypto/aes/asm/aes-riscv64-zvkb-zvkned.pl" + ], + "crypto/aes/aes-riscv64-zvkned.s" => [ + "crypto/aes/asm/aes-riscv64-zvkned.pl" + ], + "crypto/aes/aes-riscv64.s" => [ + "crypto/aes/asm/aes-riscv64.pl" + ], "crypto/aes/aes-s390x.S" => [ "crypto/aes/asm/aes-s390x.pl" ], @@ -10547,6 +12362,9 @@ our %unified_info = ( "crypto/aes/aesni-x86_64.s" => [ "crypto/aes/asm/aesni-x86_64.pl" ], + "crypto/aes/aesni-xts-avx512.s" => [ + "crypto/aes/asm/aesni-xts-avx512.pl" + ], "crypto/aes/aesp8-ppc.s" => [ "crypto/aes/asm/aesp8-ppc.pl" ], @@ -10559,12 +12377,18 @@ our %unified_info = ( "crypto/aes/bsaes-armv7.S" => [ "crypto/aes/asm/bsaes-armv7.pl" ], + "crypto/aes/bsaes-armv8.S" => [ + "crypto/aes/asm/bsaes-armv8.pl" + ], "crypto/aes/bsaes-x86_64.s" => [ "crypto/aes/asm/bsaes-x86_64.pl" ], "crypto/aes/vpaes-armv8.S" => [ "crypto/aes/asm/vpaes-armv8.pl" ], + "crypto/aes/vpaes-loongarch64.S" => [ + "crypto/aes/asm/vpaes-loongarch64.pl" + ], "crypto/aes/vpaes-ppc.s" => [ "crypto/aes/asm/vpaes-ppc.pl" ], @@ -10625,15 +12449,33 @@ our %unified_info = ( "crypto/bn/ppc-mont.s" => [ "crypto/bn/asm/ppc-mont.pl" ], + "crypto/bn/ppc64-mont-fixed.s" => [ + "crypto/bn/asm/ppc64-mont-fixed.pl" + ], "crypto/bn/ppc64-mont.s" => [ "crypto/bn/asm/ppc64-mont.pl" ], + "crypto/bn/rsaz-2k-avx512.s" => [ + "crypto/bn/asm/rsaz-2k-avx512.pl" + ], + "crypto/bn/rsaz-2k-avxifma.s" => [ + "crypto/bn/asm/rsaz-2k-avxifma.pl" + ], + "crypto/bn/rsaz-3k-avx512.s" => [ + "crypto/bn/asm/rsaz-3k-avx512.pl" + ], + "crypto/bn/rsaz-3k-avxifma.s" => [ + "crypto/bn/asm/rsaz-3k-avxifma.pl" + ], + "crypto/bn/rsaz-4k-avx512.s" => [ + "crypto/bn/asm/rsaz-4k-avx512.pl" + ], + "crypto/bn/rsaz-4k-avxifma.s" => [ + "crypto/bn/asm/rsaz-4k-avxifma.pl" + ], "crypto/bn/rsaz-avx2.s" => [ "crypto/bn/asm/rsaz-avx2.pl" ], - "crypto/bn/rsaz-avx512.s" => [ - "crypto/bn/asm/rsaz-avx512.pl" - ], "crypto/bn/rsaz-x86_64.s" => [ "crypto/bn/asm/rsaz-x86_64.pl" ], @@ -10695,6 +12537,9 @@ our %unified_info = ( "crypto/chacha/chacha-armv4.S" => [ "crypto/chacha/asm/chacha-armv4.pl" ], + "crypto/chacha/chacha-armv8-sve.S" => [ + "crypto/chacha/asm/chacha-armv8-sve.pl" + ], "crypto/chacha/chacha-armv8.S" => [ "crypto/chacha/asm/chacha-armv8.pl" ], @@ -10707,9 +12552,19 @@ our %unified_info = ( "crypto/chacha/chacha-ia64.s" => [ "crypto/chacha/chacha-ia64.S" ], + "crypto/chacha/chacha-loongarch64.S" => [ + "crypto/chacha/asm/chacha-loongarch64.pl" + ], "crypto/chacha/chacha-ppc.s" => [ "crypto/chacha/asm/chacha-ppc.pl" ], + "crypto/chacha/chacha-riscv64-v-zbb-zvkb.s" => [ + "crypto/chacha/asm/chacha-riscv64-v-zbb.pl", + "zvkb" + ], + "crypto/chacha/chacha-riscv64-v-zbb.s" => [ + "crypto/chacha/asm/chacha-riscv64-v-zbb.pl" + ], "crypto/chacha/chacha-s390x.S" => [ "crypto/chacha/asm/chacha-s390x.pl" ], @@ -10719,6 +12574,9 @@ our %unified_info = ( "crypto/chacha/chacha-x86_64.s" => [ "crypto/chacha/asm/chacha-x86_64.pl" ], + "crypto/chacha/chachap10-ppc.s" => [ + "crypto/chacha/asm/chachap10-ppc.pl" + ], "crypto/des/crypt586.S" => [ "crypto/des/asm/crypt586.pl" ], @@ -10731,6 +12589,9 @@ our %unified_info = ( "crypto/des/dest4-sparcv9.S" => [ "crypto/des/asm/dest4-sparcv9.pl" ], + "crypto/ec/ecp_nistp384-ppc64.s" => [ + "crypto/ec/asm/ecp_nistp384-ppc64.pl" + ], "crypto/ec/ecp_nistp521-ppc64.s" => [ "crypto/ec/asm/ecp_nistp521-ppc64.pl" ], @@ -10755,6 +12616,9 @@ our %unified_info = ( "crypto/ec/ecp_nistz256-x86_64.s" => [ "crypto/ec/asm/ecp_nistz256-x86_64.pl" ], + "crypto/ec/ecp_sm2p256-armv8.S" => [ + "crypto/ec/asm/ecp_sm2p256-armv8.pl" + ], "crypto/ec/x25519-ppc64.s" => [ "crypto/ec/asm/x25519-ppc64.pl" ], @@ -10764,18 +12628,39 @@ our %unified_info = ( "crypto/ia64cpuid.s" => [ "crypto/ia64cpuid.S" ], + "crypto/loongarch64cpuid.s" => [ + "crypto/loongarch64cpuid.pl" + ], "crypto/md5/md5-586.S" => [ "crypto/md5/asm/md5-586.pl" ], + "crypto/md5/md5-aarch64.S" => [ + "crypto/md5/asm/md5-aarch64.pl" + ], + "crypto/md5/md5-loongarch64.S" => [ + "crypto/md5/asm/md5-loongarch64.pl" + ], "crypto/md5/md5-sparcv9.S" => [ "crypto/md5/asm/md5-sparcv9.pl" ], "crypto/md5/md5-x86_64.s" => [ "crypto/md5/asm/md5-x86_64.pl" ], + "crypto/modes/aes-gcm-armv8-unroll8_64.S" => [ + "crypto/modes/asm/aes-gcm-armv8-unroll8_64.pl" + ], "crypto/modes/aes-gcm-armv8_64.S" => [ "crypto/modes/asm/aes-gcm-armv8_64.pl" ], + "crypto/modes/aes-gcm-avx512.s" => [ + "crypto/modes/asm/aes-gcm-avx512.pl" + ], + "crypto/modes/aes-gcm-ppc.s" => [ + "crypto/modes/asm/aes-gcm-ppc.pl" + ], + "crypto/modes/aes-gcm-riscv64-zvkb-zvkg-zvkned.s" => [ + "crypto/modes/asm/aes-gcm-riscv64-zvkb-zvkg-zvkned.pl" + ], "crypto/modes/aesni-gcm-x86_64.s" => [ "crypto/modes/asm/aesni-gcm-x86_64.pl" ], @@ -10794,6 +12679,15 @@ our %unified_info = ( "crypto/modes/ghash-parisc.s" => [ "crypto/modes/asm/ghash-parisc.pl" ], + "crypto/modes/ghash-riscv64-zvkb-zvbc.s" => [ + "crypto/modes/asm/ghash-riscv64-zvkb-zvbc.pl" + ], + "crypto/modes/ghash-riscv64-zvkg.s" => [ + "crypto/modes/asm/ghash-riscv64-zvkg.pl" + ], + "crypto/modes/ghash-riscv64.s" => [ + "crypto/modes/asm/ghash-riscv64.pl" + ], "crypto/modes/ghash-s390x.S" => [ "crypto/modes/asm/ghash-s390x.pl" ], @@ -10812,6 +12706,9 @@ our %unified_info = ( "crypto/modes/ghashv8-armx.S" => [ "crypto/modes/asm/ghashv8-armx.pl" ], + "crypto/params_idx.c" => [ + "crypto/params_idx.c.in" + ], "crypto/pariscid.s" => [ "crypto/pariscid.pl" ], @@ -10872,6 +12769,12 @@ our %unified_info = ( "crypto/ripemd/rmd-586.S" => [ "crypto/ripemd/asm/rmd-586.pl" ], + "crypto/riscv32cpuid.s" => [ + "crypto/riscv32cpuid.pl" + ], + "crypto/riscv64cpuid.s" => [ + "crypto/riscv64cpuid.pl" + ], "crypto/s390xcpuid.S" => [ "crypto/s390xcpuid.pl" ], @@ -10980,6 +12883,9 @@ our %unified_info = ( "crypto/sha/sha256-ppc.s" => [ "crypto/sha/asm/sha512-ppc.pl" ], + "crypto/sha/sha256-riscv64-zvkb-zvknha_or_zvknhb.S" => [ + "crypto/sha/asm/sha256-riscv64-zvkb-zvknha_or_zvknhb.pl" + ], "crypto/sha/sha256-s390x.S" => [ "crypto/sha/asm/sha512-s390x.pl" ], @@ -11016,6 +12922,9 @@ our %unified_info = ( "crypto/sha/sha512-ppc.s" => [ "crypto/sha/asm/sha512-ppc.pl" ], + "crypto/sha/sha512-riscv64-zvkb-zvknhb.S" => [ + "crypto/sha/asm/sha512-riscv64-zvkb-zvknhb.pl" + ], "crypto/sha/sha512-s390x.S" => [ "crypto/sha/asm/sha512-s390x.pl" ], @@ -11028,6 +12937,24 @@ our %unified_info = ( "crypto/sha/sha512p8-ppc.s" => [ "crypto/sha/asm/sha512p8-ppc.pl" ], + "crypto/sm3/sm3-armv8.S" => [ + "crypto/sm3/asm/sm3-armv8.pl" + ], + "crypto/sm3/sm3-riscv64-zvksh.S" => [ + "crypto/sm3/asm/sm3-riscv64-zvksh.pl" + ], + "crypto/sm4/sm4-armv8.S" => [ + "crypto/sm4/asm/sm4-armv8.pl" + ], + "crypto/sm4/sm4-riscv64-zvksed.s" => [ + "crypto/sm4/asm/sm4-riscv64-zvksed.pl" + ], + "crypto/sm4/vpsm4-armv8.S" => [ + "crypto/sm4/asm/vpsm4-armv8.pl" + ], + "crypto/sm4/vpsm4_ex-armv8.S" => [ + "crypto/sm4/asm/vpsm4_ex-armv8.pl" + ], "crypto/uplink-ia64.s" => [ "ms/uplink-ia64.pl" ], @@ -11193,6 +13120,9 @@ our %unified_info = ( "doc/html/man1/openssl-sess_id.html" => [ "doc/man1/openssl-sess_id.pod" ], + "doc/html/man1/openssl-skeyutl.html" => [ + "doc/man1/openssl-skeyutl.pod" + ], "doc/html/man1/openssl-smime.html" => [ "doc/man1/openssl-smime.pod" ], @@ -11334,6 +13264,9 @@ our %unified_info = ( "doc/html/man3/BIO_get_ex_new_index.html" => [ "doc/man3/BIO_get_ex_new_index.pod" ], + "doc/html/man3/BIO_get_rpoll_descriptor.html" => [ + "doc/man3/BIO_get_rpoll_descriptor.pod" + ], "doc/html/man3/BIO_meth_new.html" => [ "doc/man3/BIO_meth_new.pod" ], @@ -11370,6 +13303,9 @@ our %unified_info = ( "doc/html/man3/BIO_s_datagram.html" => [ "doc/man3/BIO_s_datagram.pod" ], + "doc/html/man3/BIO_s_dgram_pair.html" => [ + "doc/man3/BIO_s_dgram_pair.pod" + ], "doc/html/man3/BIO_s_fd.html" => [ "doc/man3/BIO_s_fd.pod" ], @@ -11385,6 +13321,9 @@ our %unified_info = ( "doc/html/man3/BIO_s_socket.html" => [ "doc/man3/BIO_s_socket.pod" ], + "doc/html/man3/BIO_sendmmsg.html" => [ + "doc/man3/BIO_sendmmsg.pod" + ], "doc/html/man3/BIO_set_callback.html" => [ "doc/man3/BIO_set_callback.pod" ], @@ -11457,6 +13396,9 @@ our %unified_info = ( "doc/html/man3/BUF_MEM_new.html" => [ "doc/man3/BUF_MEM_new.pod" ], + "doc/html/man3/CMAC_CTX.html" => [ + "doc/man3/CMAC_CTX.pod" + ], "doc/html/man3/CMS_EncryptedData_decrypt.html" => [ "doc/man3/CMS_EncryptedData_decrypt.pod" ], @@ -11523,6 +13465,9 @@ our %unified_info = ( "doc/html/man3/CMS_verify_receipt.html" => [ "doc/man3/CMS_verify_receipt.pod" ], + "doc/html/man3/COMP_CTX_new.html" => [ + "doc/man3/COMP_CTX_new.pod" + ], "doc/html/man3/CONF_modules_free.html" => [ "doc/man3/CONF_modules_free.pod" ], @@ -11622,6 +13567,12 @@ our %unified_info = ( "doc/html/man3/DTLS_set_timer_cb.html" => [ "doc/man3/DTLS_set_timer_cb.pod" ], + "doc/html/man3/DTLSv1_get_timeout.html" => [ + "doc/man3/DTLSv1_get_timeout.pod" + ], + "doc/html/man3/DTLSv1_handle_timeout.html" => [ + "doc/man3/DTLSv1_handle_timeout.pod" + ], "doc/html/man3/DTLSv1_listen.html" => [ "doc/man3/DTLSv1_listen.pod" ], @@ -11760,6 +13711,9 @@ our %unified_info = ( "doc/html/man3/EVP_PKEY_CTX_get0_pkey.html" => [ "doc/man3/EVP_PKEY_CTX_get0_pkey.pod" ], + "doc/html/man3/EVP_PKEY_CTX_get_algor.html" => [ + "doc/man3/EVP_PKEY_CTX_get_algor.pod" + ], "doc/html/man3/EVP_PKEY_CTX_new.html" => [ "doc/man3/EVP_PKEY_CTX_new.pod" ], @@ -11877,6 +13831,12 @@ our %unified_info = ( "doc/html/man3/EVP_SIGNATURE.html" => [ "doc/man3/EVP_SIGNATURE.pod" ], + "doc/html/man3/EVP_SKEY.html" => [ + "doc/man3/EVP_SKEY.pod" + ], + "doc/html/man3/EVP_SKEYMGMT.html" => [ + "doc/man3/EVP_SKEYMGMT.pod" + ], "doc/html/man3/EVP_SealInit.html" => [ "doc/man3/EVP_SealInit.pod" ], @@ -11964,6 +13924,9 @@ our %unified_info = ( "doc/html/man3/EVP_whirlpool.html" => [ "doc/man3/EVP_whirlpool.pod" ], + "doc/html/man3/GENERAL_NAME.html" => [ + "doc/man3/GENERAL_NAME.pod" + ], "doc/html/man3/HMAC.html" => [ "doc/man3/HMAC.pod" ], @@ -12036,9 +13999,15 @@ our %unified_info = ( "doc/html/man3/OPENSSL_load_builtin_modules.html" => [ "doc/man3/OPENSSL_load_builtin_modules.pod" ], + "doc/html/man3/OPENSSL_load_u16_le.html" => [ + "doc/man3/OPENSSL_load_u16_le.pod" + ], "doc/html/man3/OPENSSL_malloc.html" => [ "doc/man3/OPENSSL_malloc.pod" ], + "doc/html/man3/OPENSSL_riscvcap.html" => [ + "doc/man3/OPENSSL_riscvcap.pod" + ], "doc/html/man3/OPENSSL_s390xcap.html" => [ "doc/man3/OPENSSL_s390xcap.pod" ], @@ -12054,12 +14023,18 @@ our %unified_info = ( "doc/html/man3/OSSL_CALLBACK.html" => [ "doc/man3/OSSL_CALLBACK.pod" ], + "doc/html/man3/OSSL_CMP_ATAV_set0.html" => [ + "doc/man3/OSSL_CMP_ATAV_set0.pod" + ], "doc/html/man3/OSSL_CMP_CTX_new.html" => [ "doc/man3/OSSL_CMP_CTX_new.pod" ], "doc/html/man3/OSSL_CMP_HDR_get0_transactionID.html" => [ "doc/man3/OSSL_CMP_HDR_get0_transactionID.pod" ], + "doc/html/man3/OSSL_CMP_ITAV_new_caCerts.html" => [ + "doc/man3/OSSL_CMP_ITAV_new_caCerts.pod" + ], "doc/html/man3/OSSL_CMP_ITAV_set0.html" => [ "doc/man3/OSSL_CMP_ITAV_set0.pod" ], @@ -12129,9 +14104,18 @@ our %unified_info = ( "doc/html/man3/OSSL_ENCODER_to_bio.html" => [ "doc/man3/OSSL_ENCODER_to_bio.pod" ], + "doc/html/man3/OSSL_ERR_STATE_save.html" => [ + "doc/man3/OSSL_ERR_STATE_save.pod" + ], "doc/html/man3/OSSL_ESS_check_signing_certs.html" => [ "doc/man3/OSSL_ESS_check_signing_certs.pod" ], + "doc/html/man3/OSSL_GENERAL_NAMES_print.html" => [ + "doc/man3/OSSL_GENERAL_NAMES_print.pod" + ], + "doc/html/man3/OSSL_HPKE_CTX_new.html" => [ + "doc/man3/OSSL_HPKE_CTX_new.pod" + ], "doc/html/man3/OSSL_HTTP_REQ_CTX.html" => [ "doc/man3/OSSL_HTTP_REQ_CTX.pod" ], @@ -12141,12 +14125,24 @@ our %unified_info = ( "doc/html/man3/OSSL_HTTP_transfer.html" => [ "doc/man3/OSSL_HTTP_transfer.pod" ], + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX.html" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX.pod" + ], + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX_print.html" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX_print.pod" + ], + "doc/html/man3/OSSL_INDICATOR_set_callback.html" => [ + "doc/man3/OSSL_INDICATOR_set_callback.pod" + ], "doc/html/man3/OSSL_ITEM.html" => [ "doc/man3/OSSL_ITEM.pod" ], "doc/html/man3/OSSL_LIB_CTX.html" => [ "doc/man3/OSSL_LIB_CTX.pod" ], + "doc/html/man3/OSSL_LIB_CTX_set_conf_diagnostics.html" => [ + "doc/man3/OSSL_LIB_CTX_set_conf_diagnostics.pod" + ], "doc/html/man3/OSSL_PARAM.html" => [ "doc/man3/OSSL_PARAM.pod" ], @@ -12162,9 +14158,15 @@ our %unified_info = ( "doc/html/man3/OSSL_PARAM_int.html" => [ "doc/man3/OSSL_PARAM_int.pod" ], + "doc/html/man3/OSSL_PARAM_print_to_bio.html" => [ + "doc/man3/OSSL_PARAM_print_to_bio.pod" + ], "doc/html/man3/OSSL_PROVIDER.html" => [ "doc/man3/OSSL_PROVIDER.pod" ], + "doc/html/man3/OSSL_QUIC_client_method.html" => [ + "doc/man3/OSSL_QUIC_client_method.pod" + ], "doc/html/man3/OSSL_SELF_TEST_new.html" => [ "doc/man3/OSSL_SELF_TEST_new.pod" ], @@ -12189,6 +14191,9 @@ our %unified_info = ( "doc/html/man3/OSSL_STORE_open.html" => [ "doc/man3/OSSL_STORE_open.pod" ], + "doc/html/man3/OSSL_sleep.html" => [ + "doc/man3/OSSL_sleep.pod" + ], "doc/html/man3/OSSL_trace_enabled.html" => [ "doc/man3/OSSL_trace_enabled.pod" ], @@ -12204,6 +14209,9 @@ our %unified_info = ( "doc/html/man3/OpenSSL_version.html" => [ "doc/man3/OpenSSL_version.pod" ], + "doc/html/man3/PBMAC1_get1_pbkdf2_param.html" => [ + "doc/man3/PBMAC1_get1_pbkdf2_param.pod" + ], "doc/html/man3/PEM_X509_INFO_read_bio_ex.html" => [ "doc/man3/PEM_X509_INFO_read_bio_ex.pod" ], @@ -12240,6 +14248,9 @@ our %unified_info = ( "doc/html/man3/PKCS12_SAFEBAG_get1_cert.html" => [ "doc/man3/PKCS12_SAFEBAG_get1_cert.pod" ], + "doc/html/man3/PKCS12_SAFEBAG_set0_attrs.html" => [ + "doc/man3/PKCS12_SAFEBAG_set0_attrs.pod" + ], "doc/html/man3/PKCS12_add1_attr_by_NID.html" => [ "doc/man3/PKCS12_add1_attr_by_NID.pod" ], @@ -12513,6 +14524,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set0_CA_list.html" => [ "doc/man3/SSL_CTX_set0_CA_list.pod" ], + "doc/html/man3/SSL_CTX_set1_cert_comp_preference.html" => [ + "doc/man3/SSL_CTX_set1_cert_comp_preference.pod" + ], "doc/html/man3/SSL_CTX_set1_curves.html" => [ "doc/man3/SSL_CTX_set1_curves.pod" ], @@ -12552,6 +14566,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_default_passwd_cb.html" => [ "doc/man3/SSL_CTX_set_default_passwd_cb.pod" ], + "doc/html/man3/SSL_CTX_set_domain_flags.html" => [ + "doc/man3/SSL_CTX_set_domain_flags.pod" + ], "doc/html/man3/SSL_CTX_set_generate_session_id.html" => [ "doc/man3/SSL_CTX_set_generate_session_id.pod" ], @@ -12573,6 +14590,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_msg_callback.html" => [ "doc/man3/SSL_CTX_set_msg_callback.pod" ], + "doc/html/man3/SSL_CTX_set_new_pending_conn_cb.html" => [ + "doc/man3/SSL_CTX_set_new_pending_conn_cb.pod" + ], "doc/html/man3/SSL_CTX_set_num_tickets.html" => [ "doc/man3/SSL_CTX_set_num_tickets.pod" ], @@ -12687,6 +14707,9 @@ our %unified_info = ( "doc/html/man3/SSL_accept.html" => [ "doc/man3/SSL_accept.pod" ], + "doc/html/man3/SSL_accept_stream.html" => [ + "doc/man3/SSL_accept_stream.pod" + ], "doc/html/man3/SSL_alert_type_string.html" => [ "doc/man3/SSL_alert_type_string.pod" ], @@ -12714,9 +14737,21 @@ our %unified_info = ( "doc/html/man3/SSL_free.html" => [ "doc/man3/SSL_free.pod" ], + "doc/html/man3/SSL_get0_connection.html" => [ + "doc/man3/SSL_get0_connection.pod" + ], + "doc/html/man3/SSL_get0_group_name.html" => [ + "doc/man3/SSL_get0_group_name.pod" + ], + "doc/html/man3/SSL_get0_peer_rpk.html" => [ + "doc/man3/SSL_get0_peer_rpk.pod" + ], "doc/html/man3/SSL_get0_peer_scts.html" => [ "doc/man3/SSL_get0_peer_scts.pod" ], + "doc/html/man3/SSL_get1_builtin_sigalgs.html" => [ + "doc/man3/SSL_get1_builtin_sigalgs.pod" + ], "doc/html/man3/SSL_get_SSL_CTX.html" => [ "doc/man3/SSL_get_SSL_CTX.pod" ], @@ -12732,6 +14767,9 @@ our %unified_info = ( "doc/html/man3/SSL_get_client_random.html" => [ "doc/man3/SSL_get_client_random.pod" ], + "doc/html/man3/SSL_get_conn_close_info.html" => [ + "doc/man3/SSL_get_conn_close_info.pod" + ], "doc/html/man3/SSL_get_current_cipher.html" => [ "doc/man3/SSL_get_current_cipher.pod" ], @@ -12741,12 +14779,18 @@ our %unified_info = ( "doc/html/man3/SSL_get_error.html" => [ "doc/man3/SSL_get_error.pod" ], + "doc/html/man3/SSL_get_event_timeout.html" => [ + "doc/man3/SSL_get_event_timeout.pod" + ], "doc/html/man3/SSL_get_extms_support.html" => [ "doc/man3/SSL_get_extms_support.pod" ], "doc/html/man3/SSL_get_fd.html" => [ "doc/man3/SSL_get_fd.pod" ], + "doc/html/man3/SSL_get_handshake_rtt.html" => [ + "doc/man3/SSL_get_handshake_rtt.pod" + ], "doc/html/man3/SSL_get_peer_cert_chain.html" => [ "doc/man3/SSL_get_peer_cert_chain.pod" ], @@ -12765,12 +14809,24 @@ our %unified_info = ( "doc/html/man3/SSL_get_rbio.html" => [ "doc/man3/SSL_get_rbio.pod" ], + "doc/html/man3/SSL_get_rpoll_descriptor.html" => [ + "doc/man3/SSL_get_rpoll_descriptor.pod" + ], "doc/html/man3/SSL_get_session.html" => [ "doc/man3/SSL_get_session.pod" ], "doc/html/man3/SSL_get_shared_sigalgs.html" => [ "doc/man3/SSL_get_shared_sigalgs.pod" ], + "doc/html/man3/SSL_get_stream_id.html" => [ + "doc/man3/SSL_get_stream_id.pod" + ], + "doc/html/man3/SSL_get_stream_read_state.html" => [ + "doc/man3/SSL_get_stream_read_state.pod" + ], + "doc/html/man3/SSL_get_value_uint.html" => [ + "doc/man3/SSL_get_value_uint.pod" + ], "doc/html/man3/SSL_get_verify_result.html" => [ "doc/man3/SSL_get_verify_result.pod" ], @@ -12780,9 +14836,15 @@ our %unified_info = ( "doc/html/man3/SSL_group_to_name.html" => [ "doc/man3/SSL_group_to_name.pod" ], + "doc/html/man3/SSL_handle_events.html" => [ + "doc/man3/SSL_handle_events.pod" + ], "doc/html/man3/SSL_in_init.html" => [ "doc/man3/SSL_in_init.pod" ], + "doc/html/man3/SSL_inject_net_dgram.html" => [ + "doc/man3/SSL_inject_net_dgram.pod" + ], "doc/html/man3/SSL_key_update.html" => [ "doc/man3/SSL_key_update.pod" ], @@ -12795,9 +14857,21 @@ our %unified_info = ( "doc/html/man3/SSL_new.html" => [ "doc/man3/SSL_new.pod" ], + "doc/html/man3/SSL_new_domain.html" => [ + "doc/man3/SSL_new_domain.pod" + ], + "doc/html/man3/SSL_new_listener.html" => [ + "doc/man3/SSL_new_listener.pod" + ], + "doc/html/man3/SSL_new_stream.html" => [ + "doc/man3/SSL_new_stream.pod" + ], "doc/html/man3/SSL_pending.html" => [ "doc/man3/SSL_pending.pod" ], + "doc/html/man3/SSL_poll.html" => [ + "doc/man3/SSL_poll.pod" + ], "doc/html/man3/SSL_read.html" => [ "doc/man3/SSL_read.pod" ], @@ -12813,24 +14887,45 @@ our %unified_info = ( "doc/html/man3/SSL_set1_host.html" => [ "doc/man3/SSL_set1_host.pod" ], + "doc/html/man3/SSL_set1_initial_peer_addr.html" => [ + "doc/man3/SSL_set1_initial_peer_addr.pod" + ], + "doc/html/man3/SSL_set1_server_cert_type.html" => [ + "doc/man3/SSL_set1_server_cert_type.pod" + ], "doc/html/man3/SSL_set_async_callback.html" => [ "doc/man3/SSL_set_async_callback.pod" ], "doc/html/man3/SSL_set_bio.html" => [ "doc/man3/SSL_set_bio.pod" ], + "doc/html/man3/SSL_set_blocking_mode.html" => [ + "doc/man3/SSL_set_blocking_mode.pod" + ], "doc/html/man3/SSL_set_connect_state.html" => [ "doc/man3/SSL_set_connect_state.pod" ], + "doc/html/man3/SSL_set_default_stream_mode.html" => [ + "doc/man3/SSL_set_default_stream_mode.pod" + ], "doc/html/man3/SSL_set_fd.html" => [ "doc/man3/SSL_set_fd.pod" ], + "doc/html/man3/SSL_set_incoming_stream_policy.html" => [ + "doc/man3/SSL_set_incoming_stream_policy.pod" + ], + "doc/html/man3/SSL_set_quic_tls_cbs.html" => [ + "doc/man3/SSL_set_quic_tls_cbs.pod" + ], "doc/html/man3/SSL_set_retry_verify.html" => [ "doc/man3/SSL_set_retry_verify.pod" ], "doc/html/man3/SSL_set_session.html" => [ "doc/man3/SSL_set_session.pod" ], + "doc/html/man3/SSL_set_session_secret_cb.html" => [ + "doc/man3/SSL_set_session_secret_cb.pod" + ], "doc/html/man3/SSL_set_shutdown.html" => [ "doc/man3/SSL_set_shutdown.pod" ], @@ -12843,6 +14938,12 @@ our %unified_info = ( "doc/html/man3/SSL_state_string.html" => [ "doc/man3/SSL_state_string.pod" ], + "doc/html/man3/SSL_stream_conclude.html" => [ + "doc/man3/SSL_stream_conclude.pod" + ], + "doc/html/man3/SSL_stream_reset.html" => [ + "doc/man3/SSL_stream_reset.pod" + ], "doc/html/man3/SSL_want.html" => [ "doc/man3/SSL_want.pod" ], @@ -12852,8 +14953,8 @@ our %unified_info = ( "doc/html/man3/TS_RESP_CTX_new.html" => [ "doc/man3/TS_RESP_CTX_new.pod" ], - "doc/html/man3/TS_VERIFY_CTX_set_certs.html" => [ - "doc/man3/TS_VERIFY_CTX_set_certs.pod" + "doc/html/man3/TS_VERIFY_CTX.html" => [ + "doc/man3/TS_VERIFY_CTX.pod" ], "doc/html/man3/UI_STRING.html" => [ "doc/man3/UI_STRING.pod" @@ -12873,6 +14974,21 @@ our %unified_info = ( "doc/html/man3/X509V3_set_ctx.html" => [ "doc/man3/X509V3_set_ctx.pod" ], + "doc/html/man3/X509_ACERT_add1_attr.html" => [ + "doc/man3/X509_ACERT_add1_attr.pod" + ], + "doc/html/man3/X509_ACERT_add_attr_nconf.html" => [ + "doc/man3/X509_ACERT_add_attr_nconf.pod" + ], + "doc/html/man3/X509_ACERT_get0_holder_baseCertId.html" => [ + "doc/man3/X509_ACERT_get0_holder_baseCertId.pod" + ], + "doc/html/man3/X509_ACERT_get_attr.html" => [ + "doc/man3/X509_ACERT_get_attr.pod" + ], + "doc/html/man3/X509_ACERT_print_ex.html" => [ + "doc/man3/X509_ACERT_print_ex.pod" + ], "doc/html/man3/X509_ALGOR_dup.html" => [ "doc/man3/X509_ALGOR_dup.pod" ], @@ -12921,6 +15037,9 @@ our %unified_info = ( "doc/html/man3/X509_SIG_get0.html" => [ "doc/man3/X509_SIG_get0.pod" ], + "doc/html/man3/X509_STORE_CTX_get_by_subject.html" => [ + "doc/man3/X509_STORE_CTX_get_by_subject.pod" + ], "doc/html/man3/X509_STORE_CTX_get_error.html" => [ "doc/man3/X509_STORE_CTX_get_error.pod" ], @@ -12987,6 +15106,9 @@ our %unified_info = ( "doc/html/man3/X509_get0_uids.html" => [ "doc/man3/X509_get0_uids.pod" ], + "doc/html/man3/X509_get_default_cert_file.html" => [ + "doc/man3/X509_get_default_cert_file.pod" + ], "doc/html/man3/X509_get_extension_flags.html" => [ "doc/man3/X509_get_extension_flags.pod" ], @@ -13110,9 +15232,15 @@ our %unified_info = ( "doc/html/man7/EVP_CIPHER-SM4.html" => [ "doc/man7/EVP_CIPHER-SM4.pod" ], + "doc/html/man7/EVP_KDF-ARGON2.html" => [ + "doc/man7/EVP_KDF-ARGON2.pod" + ], "doc/html/man7/EVP_KDF-HKDF.html" => [ "doc/man7/EVP_KDF-HKDF.pod" ], + "doc/html/man7/EVP_KDF-HMAC-DRBG.html" => [ + "doc/man7/EVP_KDF-HMAC-DRBG.pod" + ], "doc/html/man7/EVP_KDF-KB.html" => [ "doc/man7/EVP_KDF-KB.pod" ], @@ -13128,6 +15256,9 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-PKCS12KDF.html" => [ "doc/man7/EVP_KDF-PKCS12KDF.pod" ], + "doc/html/man7/EVP_KDF-PVKKDF.html" => [ + "doc/man7/EVP_KDF-PVKKDF.pod" + ], "doc/html/man7/EVP_KDF-SCRYPT.html" => [ "doc/man7/EVP_KDF-SCRYPT.pod" ], @@ -13152,9 +15283,18 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-X963.html" => [ "doc/man7/EVP_KDF-X963.pod" ], + "doc/html/man7/EVP_KEM-EC.html" => [ + "doc/man7/EVP_KEM-EC.pod" + ], + "doc/html/man7/EVP_KEM-ML-KEM.html" => [ + "doc/man7/EVP_KEM-ML-KEM.pod" + ], "doc/html/man7/EVP_KEM-RSA.html" => [ "doc/man7/EVP_KEM-RSA.pod" ], + "doc/html/man7/EVP_KEM-X25519.html" => [ + "doc/man7/EVP_KEM-X25519.pod" + ], "doc/html/man7/EVP_KEYEXCH-DH.html" => [ "doc/man7/EVP_KEYEXCH-DH.pod" ], @@ -13188,6 +15328,9 @@ our %unified_info = ( "doc/html/man7/EVP_MD-BLAKE2.html" => [ "doc/man7/EVP_MD-BLAKE2.pod" ], + "doc/html/man7/EVP_MD-KECCAK.html" => [ + "doc/man7/EVP_MD-KECCAK.pod" + ], "doc/html/man7/EVP_MD-MD2.html" => [ "doc/man7/EVP_MD-MD2.pod" ], @@ -13245,15 +15388,27 @@ our %unified_info = ( "doc/html/man7/EVP_PKEY-HMAC.html" => [ "doc/man7/EVP_PKEY-HMAC.pod" ], + "doc/html/man7/EVP_PKEY-ML-DSA.html" => [ + "doc/man7/EVP_PKEY-ML-DSA.pod" + ], + "doc/html/man7/EVP_PKEY-ML-KEM.html" => [ + "doc/man7/EVP_PKEY-ML-KEM.pod" + ], "doc/html/man7/EVP_PKEY-RSA.html" => [ "doc/man7/EVP_PKEY-RSA.pod" ], + "doc/html/man7/EVP_PKEY-SLH-DSA.html" => [ + "doc/man7/EVP_PKEY-SLH-DSA.pod" + ], "doc/html/man7/EVP_PKEY-SM2.html" => [ "doc/man7/EVP_PKEY-SM2.pod" ], "doc/html/man7/EVP_PKEY-X25519.html" => [ "doc/man7/EVP_PKEY-X25519.pod" ], + "doc/html/man7/EVP_RAND-CRNG-TEST.html" => [ + "doc/man7/EVP_RAND-CRNG-TEST.pod" + ], "doc/html/man7/EVP_RAND-CTR-DRBG.html" => [ "doc/man7/EVP_RAND-CTR-DRBG.pod" ], @@ -13263,6 +15418,9 @@ our %unified_info = ( "doc/html/man7/EVP_RAND-HMAC-DRBG.html" => [ "doc/man7/EVP_RAND-HMAC-DRBG.pod" ], + "doc/html/man7/EVP_RAND-JITTER.html" => [ + "doc/man7/EVP_RAND-JITTER.pod" + ], "doc/html/man7/EVP_RAND-SEED-SRC.html" => [ "doc/man7/EVP_RAND-SEED-SRC.pod" ], @@ -13284,9 +15442,15 @@ our %unified_info = ( "doc/html/man7/EVP_SIGNATURE-HMAC.html" => [ "doc/man7/EVP_SIGNATURE-HMAC.pod" ], + "doc/html/man7/EVP_SIGNATURE-ML-DSA.html" => [ + "doc/man7/EVP_SIGNATURE-ML-DSA.pod" + ], "doc/html/man7/EVP_SIGNATURE-RSA.html" => [ "doc/man7/EVP_SIGNATURE-RSA.pod" ], + "doc/html/man7/EVP_SIGNATURE-SLH-DSA.html" => [ + "doc/man7/EVP_SIGNATURE-SLH-DSA.pod" + ], "doc/html/man7/OSSL_PROVIDER-FIPS.html" => [ "doc/man7/OSSL_PROVIDER-FIPS.pod" ], @@ -13302,6 +15466,9 @@ our %unified_info = ( "doc/html/man7/OSSL_PROVIDER-null.html" => [ "doc/man7/OSSL_PROVIDER-null.pod" ], + "doc/html/man7/OSSL_STORE-winstore.html" => [ + "doc/man7/OSSL_STORE-winstore.pod" + ], "doc/html/man7/RAND.html" => [ "doc/man7/RAND.pod" ], @@ -13314,9 +15481,6 @@ our %unified_info = ( "doc/html/man7/bio.html" => [ "doc/man7/bio.pod" ], - "doc/html/man7/crypto.html" => [ - "doc/man7/crypto.pod" - ], "doc/html/man7/ct.html" => [ "doc/man7/ct.pod" ], @@ -13347,9 +15511,6 @@ our %unified_info = ( "doc/html/man7/life_cycle-rand.html" => [ "doc/man7/life_cycle-rand.pod" ], - "doc/html/man7/migration_guide.html" => [ - "doc/man7/migration_guide.pod" - ], "doc/html/man7/openssl-core.h.html" => [ "doc/man7/openssl-core.h.pod" ], @@ -13365,12 +15526,66 @@ our %unified_info = ( "doc/html/man7/openssl-glossary.html" => [ "doc/man7/openssl-glossary.pod" ], + "doc/html/man7/openssl-qlog.html" => [ + "doc/man7/openssl-qlog.pod" + ], + "doc/html/man7/openssl-quic-concurrency.html" => [ + "doc/man7/openssl-quic-concurrency.pod" + ], + "doc/html/man7/openssl-quic.html" => [ + "doc/man7/openssl-quic.pod" + ], "doc/html/man7/openssl-threads.html" => [ "doc/man7/openssl-threads.pod" ], "doc/html/man7/openssl_user_macros.html" => [ "doc/man7/openssl_user_macros.pod" ], + "doc/html/man7/ossl-guide-introduction.html" => [ + "doc/man7/ossl-guide-introduction.pod" + ], + "doc/html/man7/ossl-guide-libcrypto-introduction.html" => [ + "doc/man7/ossl-guide-libcrypto-introduction.pod" + ], + "doc/html/man7/ossl-guide-libraries-introduction.html" => [ + "doc/man7/ossl-guide-libraries-introduction.pod" + ], + "doc/html/man7/ossl-guide-libssl-introduction.html" => [ + "doc/man7/ossl-guide-libssl-introduction.pod" + ], + "doc/html/man7/ossl-guide-migration.html" => [ + "doc/man7/ossl-guide-migration.pod" + ], + "doc/html/man7/ossl-guide-quic-client-block.html" => [ + "doc/man7/ossl-guide-quic-client-block.pod" + ], + "doc/html/man7/ossl-guide-quic-client-non-block.html" => [ + "doc/man7/ossl-guide-quic-client-non-block.pod" + ], + "doc/html/man7/ossl-guide-quic-introduction.html" => [ + "doc/man7/ossl-guide-quic-introduction.pod" + ], + "doc/html/man7/ossl-guide-quic-multi-stream.html" => [ + "doc/man7/ossl-guide-quic-multi-stream.pod" + ], + "doc/html/man7/ossl-guide-quic-server-block.html" => [ + "doc/man7/ossl-guide-quic-server-block.pod" + ], + "doc/html/man7/ossl-guide-quic-server-non-block.html" => [ + "doc/man7/ossl-guide-quic-server-non-block.pod" + ], + "doc/html/man7/ossl-guide-tls-client-block.html" => [ + "doc/man7/ossl-guide-tls-client-block.pod" + ], + "doc/html/man7/ossl-guide-tls-client-non-block.html" => [ + "doc/man7/ossl-guide-tls-client-non-block.pod" + ], + "doc/html/man7/ossl-guide-tls-introduction.html" => [ + "doc/man7/ossl-guide-tls-introduction.pod" + ], + "doc/html/man7/ossl-guide-tls-server-block.html" => [ + "doc/man7/ossl-guide-tls-server-block.pod" + ], "doc/html/man7/ossl_store-file.html" => [ "doc/man7/ossl_store-file.pod" ], @@ -13425,6 +15640,9 @@ our %unified_info = ( "doc/html/man7/provider-signature.html" => [ "doc/man7/provider-signature.pod" ], + "doc/html/man7/provider-skeymgmt.html" => [ + "doc/man7/provider-skeymgmt.pod" + ], "doc/html/man7/provider-storemgmt.html" => [ "doc/man7/provider-storemgmt.pod" ], @@ -13434,9 +15652,6 @@ our %unified_info = ( "doc/html/man7/proxy-certificates.html" => [ "doc/man7/proxy-certificates.pod" ], - "doc/html/man7/ssl.html" => [ - "doc/man7/ssl.pod" - ], "doc/html/man7/x509.html" => [ "doc/man7/x509.pod" ], @@ -13584,6 +15799,9 @@ our %unified_info = ( "doc/man/man1/openssl-sess_id.1" => [ "doc/man1/openssl-sess_id.pod" ], + "doc/man/man1/openssl-skeyutl.1" => [ + "doc/man1/openssl-skeyutl.pod" + ], "doc/man/man1/openssl-smime.1" => [ "doc/man1/openssl-smime.pod" ], @@ -13725,6 +15943,9 @@ our %unified_info = ( "doc/man/man3/BIO_get_ex_new_index.3" => [ "doc/man3/BIO_get_ex_new_index.pod" ], + "doc/man/man3/BIO_get_rpoll_descriptor.3" => [ + "doc/man3/BIO_get_rpoll_descriptor.pod" + ], "doc/man/man3/BIO_meth_new.3" => [ "doc/man3/BIO_meth_new.pod" ], @@ -13761,6 +15982,9 @@ our %unified_info = ( "doc/man/man3/BIO_s_datagram.3" => [ "doc/man3/BIO_s_datagram.pod" ], + "doc/man/man3/BIO_s_dgram_pair.3" => [ + "doc/man3/BIO_s_dgram_pair.pod" + ], "doc/man/man3/BIO_s_fd.3" => [ "doc/man3/BIO_s_fd.pod" ], @@ -13776,6 +16000,9 @@ our %unified_info = ( "doc/man/man3/BIO_s_socket.3" => [ "doc/man3/BIO_s_socket.pod" ], + "doc/man/man3/BIO_sendmmsg.3" => [ + "doc/man3/BIO_sendmmsg.pod" + ], "doc/man/man3/BIO_set_callback.3" => [ "doc/man3/BIO_set_callback.pod" ], @@ -13848,6 +16075,9 @@ our %unified_info = ( "doc/man/man3/BUF_MEM_new.3" => [ "doc/man3/BUF_MEM_new.pod" ], + "doc/man/man3/CMAC_CTX.3" => [ + "doc/man3/CMAC_CTX.pod" + ], "doc/man/man3/CMS_EncryptedData_decrypt.3" => [ "doc/man3/CMS_EncryptedData_decrypt.pod" ], @@ -13914,6 +16144,9 @@ our %unified_info = ( "doc/man/man3/CMS_verify_receipt.3" => [ "doc/man3/CMS_verify_receipt.pod" ], + "doc/man/man3/COMP_CTX_new.3" => [ + "doc/man3/COMP_CTX_new.pod" + ], "doc/man/man3/CONF_modules_free.3" => [ "doc/man3/CONF_modules_free.pod" ], @@ -14013,6 +16246,12 @@ our %unified_info = ( "doc/man/man3/DTLS_set_timer_cb.3" => [ "doc/man3/DTLS_set_timer_cb.pod" ], + "doc/man/man3/DTLSv1_get_timeout.3" => [ + "doc/man3/DTLSv1_get_timeout.pod" + ], + "doc/man/man3/DTLSv1_handle_timeout.3" => [ + "doc/man3/DTLSv1_handle_timeout.pod" + ], "doc/man/man3/DTLSv1_listen.3" => [ "doc/man3/DTLSv1_listen.pod" ], @@ -14151,6 +16390,9 @@ our %unified_info = ( "doc/man/man3/EVP_PKEY_CTX_get0_pkey.3" => [ "doc/man3/EVP_PKEY_CTX_get0_pkey.pod" ], + "doc/man/man3/EVP_PKEY_CTX_get_algor.3" => [ + "doc/man3/EVP_PKEY_CTX_get_algor.pod" + ], "doc/man/man3/EVP_PKEY_CTX_new.3" => [ "doc/man3/EVP_PKEY_CTX_new.pod" ], @@ -14268,6 +16510,12 @@ our %unified_info = ( "doc/man/man3/EVP_SIGNATURE.3" => [ "doc/man3/EVP_SIGNATURE.pod" ], + "doc/man/man3/EVP_SKEY.3" => [ + "doc/man3/EVP_SKEY.pod" + ], + "doc/man/man3/EVP_SKEYMGMT.3" => [ + "doc/man3/EVP_SKEYMGMT.pod" + ], "doc/man/man3/EVP_SealInit.3" => [ "doc/man3/EVP_SealInit.pod" ], @@ -14355,6 +16603,9 @@ our %unified_info = ( "doc/man/man3/EVP_whirlpool.3" => [ "doc/man3/EVP_whirlpool.pod" ], + "doc/man/man3/GENERAL_NAME.3" => [ + "doc/man3/GENERAL_NAME.pod" + ], "doc/man/man3/HMAC.3" => [ "doc/man3/HMAC.pod" ], @@ -14427,9 +16678,15 @@ our %unified_info = ( "doc/man/man3/OPENSSL_load_builtin_modules.3" => [ "doc/man3/OPENSSL_load_builtin_modules.pod" ], + "doc/man/man3/OPENSSL_load_u16_le.3" => [ + "doc/man3/OPENSSL_load_u16_le.pod" + ], "doc/man/man3/OPENSSL_malloc.3" => [ "doc/man3/OPENSSL_malloc.pod" ], + "doc/man/man3/OPENSSL_riscvcap.3" => [ + "doc/man3/OPENSSL_riscvcap.pod" + ], "doc/man/man3/OPENSSL_s390xcap.3" => [ "doc/man3/OPENSSL_s390xcap.pod" ], @@ -14445,12 +16702,18 @@ our %unified_info = ( "doc/man/man3/OSSL_CALLBACK.3" => [ "doc/man3/OSSL_CALLBACK.pod" ], + "doc/man/man3/OSSL_CMP_ATAV_set0.3" => [ + "doc/man3/OSSL_CMP_ATAV_set0.pod" + ], "doc/man/man3/OSSL_CMP_CTX_new.3" => [ "doc/man3/OSSL_CMP_CTX_new.pod" ], "doc/man/man3/OSSL_CMP_HDR_get0_transactionID.3" => [ "doc/man3/OSSL_CMP_HDR_get0_transactionID.pod" ], + "doc/man/man3/OSSL_CMP_ITAV_new_caCerts.3" => [ + "doc/man3/OSSL_CMP_ITAV_new_caCerts.pod" + ], "doc/man/man3/OSSL_CMP_ITAV_set0.3" => [ "doc/man3/OSSL_CMP_ITAV_set0.pod" ], @@ -14520,9 +16783,18 @@ our %unified_info = ( "doc/man/man3/OSSL_ENCODER_to_bio.3" => [ "doc/man3/OSSL_ENCODER_to_bio.pod" ], + "doc/man/man3/OSSL_ERR_STATE_save.3" => [ + "doc/man3/OSSL_ERR_STATE_save.pod" + ], "doc/man/man3/OSSL_ESS_check_signing_certs.3" => [ "doc/man3/OSSL_ESS_check_signing_certs.pod" ], + "doc/man/man3/OSSL_GENERAL_NAMES_print.3" => [ + "doc/man3/OSSL_GENERAL_NAMES_print.pod" + ], + "doc/man/man3/OSSL_HPKE_CTX_new.3" => [ + "doc/man3/OSSL_HPKE_CTX_new.pod" + ], "doc/man/man3/OSSL_HTTP_REQ_CTX.3" => [ "doc/man3/OSSL_HTTP_REQ_CTX.pod" ], @@ -14532,12 +16804,24 @@ our %unified_info = ( "doc/man/man3/OSSL_HTTP_transfer.3" => [ "doc/man3/OSSL_HTTP_transfer.pod" ], + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX.3" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX.pod" + ], + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX_print.3" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX_print.pod" + ], + "doc/man/man3/OSSL_INDICATOR_set_callback.3" => [ + "doc/man3/OSSL_INDICATOR_set_callback.pod" + ], "doc/man/man3/OSSL_ITEM.3" => [ "doc/man3/OSSL_ITEM.pod" ], "doc/man/man3/OSSL_LIB_CTX.3" => [ "doc/man3/OSSL_LIB_CTX.pod" ], + "doc/man/man3/OSSL_LIB_CTX_set_conf_diagnostics.3" => [ + "doc/man3/OSSL_LIB_CTX_set_conf_diagnostics.pod" + ], "doc/man/man3/OSSL_PARAM.3" => [ "doc/man3/OSSL_PARAM.pod" ], @@ -14553,9 +16837,15 @@ our %unified_info = ( "doc/man/man3/OSSL_PARAM_int.3" => [ "doc/man3/OSSL_PARAM_int.pod" ], + "doc/man/man3/OSSL_PARAM_print_to_bio.3" => [ + "doc/man3/OSSL_PARAM_print_to_bio.pod" + ], "doc/man/man3/OSSL_PROVIDER.3" => [ "doc/man3/OSSL_PROVIDER.pod" ], + "doc/man/man3/OSSL_QUIC_client_method.3" => [ + "doc/man3/OSSL_QUIC_client_method.pod" + ], "doc/man/man3/OSSL_SELF_TEST_new.3" => [ "doc/man3/OSSL_SELF_TEST_new.pod" ], @@ -14580,6 +16870,9 @@ our %unified_info = ( "doc/man/man3/OSSL_STORE_open.3" => [ "doc/man3/OSSL_STORE_open.pod" ], + "doc/man/man3/OSSL_sleep.3" => [ + "doc/man3/OSSL_sleep.pod" + ], "doc/man/man3/OSSL_trace_enabled.3" => [ "doc/man3/OSSL_trace_enabled.pod" ], @@ -14595,6 +16888,9 @@ our %unified_info = ( "doc/man/man3/OpenSSL_version.3" => [ "doc/man3/OpenSSL_version.pod" ], + "doc/man/man3/PBMAC1_get1_pbkdf2_param.3" => [ + "doc/man3/PBMAC1_get1_pbkdf2_param.pod" + ], "doc/man/man3/PEM_X509_INFO_read_bio_ex.3" => [ "doc/man3/PEM_X509_INFO_read_bio_ex.pod" ], @@ -14631,6 +16927,9 @@ our %unified_info = ( "doc/man/man3/PKCS12_SAFEBAG_get1_cert.3" => [ "doc/man3/PKCS12_SAFEBAG_get1_cert.pod" ], + "doc/man/man3/PKCS12_SAFEBAG_set0_attrs.3" => [ + "doc/man3/PKCS12_SAFEBAG_set0_attrs.pod" + ], "doc/man/man3/PKCS12_add1_attr_by_NID.3" => [ "doc/man3/PKCS12_add1_attr_by_NID.pod" ], @@ -14904,6 +17203,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set0_CA_list.3" => [ "doc/man3/SSL_CTX_set0_CA_list.pod" ], + "doc/man/man3/SSL_CTX_set1_cert_comp_preference.3" => [ + "doc/man3/SSL_CTX_set1_cert_comp_preference.pod" + ], "doc/man/man3/SSL_CTX_set1_curves.3" => [ "doc/man3/SSL_CTX_set1_curves.pod" ], @@ -14943,6 +17245,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_default_passwd_cb.3" => [ "doc/man3/SSL_CTX_set_default_passwd_cb.pod" ], + "doc/man/man3/SSL_CTX_set_domain_flags.3" => [ + "doc/man3/SSL_CTX_set_domain_flags.pod" + ], "doc/man/man3/SSL_CTX_set_generate_session_id.3" => [ "doc/man3/SSL_CTX_set_generate_session_id.pod" ], @@ -14964,6 +17269,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_msg_callback.3" => [ "doc/man3/SSL_CTX_set_msg_callback.pod" ], + "doc/man/man3/SSL_CTX_set_new_pending_conn_cb.3" => [ + "doc/man3/SSL_CTX_set_new_pending_conn_cb.pod" + ], "doc/man/man3/SSL_CTX_set_num_tickets.3" => [ "doc/man3/SSL_CTX_set_num_tickets.pod" ], @@ -15078,6 +17386,9 @@ our %unified_info = ( "doc/man/man3/SSL_accept.3" => [ "doc/man3/SSL_accept.pod" ], + "doc/man/man3/SSL_accept_stream.3" => [ + "doc/man3/SSL_accept_stream.pod" + ], "doc/man/man3/SSL_alert_type_string.3" => [ "doc/man3/SSL_alert_type_string.pod" ], @@ -15105,9 +17416,21 @@ our %unified_info = ( "doc/man/man3/SSL_free.3" => [ "doc/man3/SSL_free.pod" ], + "doc/man/man3/SSL_get0_connection.3" => [ + "doc/man3/SSL_get0_connection.pod" + ], + "doc/man/man3/SSL_get0_group_name.3" => [ + "doc/man3/SSL_get0_group_name.pod" + ], + "doc/man/man3/SSL_get0_peer_rpk.3" => [ + "doc/man3/SSL_get0_peer_rpk.pod" + ], "doc/man/man3/SSL_get0_peer_scts.3" => [ "doc/man3/SSL_get0_peer_scts.pod" ], + "doc/man/man3/SSL_get1_builtin_sigalgs.3" => [ + "doc/man3/SSL_get1_builtin_sigalgs.pod" + ], "doc/man/man3/SSL_get_SSL_CTX.3" => [ "doc/man3/SSL_get_SSL_CTX.pod" ], @@ -15123,6 +17446,9 @@ our %unified_info = ( "doc/man/man3/SSL_get_client_random.3" => [ "doc/man3/SSL_get_client_random.pod" ], + "doc/man/man3/SSL_get_conn_close_info.3" => [ + "doc/man3/SSL_get_conn_close_info.pod" + ], "doc/man/man3/SSL_get_current_cipher.3" => [ "doc/man3/SSL_get_current_cipher.pod" ], @@ -15132,12 +17458,18 @@ our %unified_info = ( "doc/man/man3/SSL_get_error.3" => [ "doc/man3/SSL_get_error.pod" ], + "doc/man/man3/SSL_get_event_timeout.3" => [ + "doc/man3/SSL_get_event_timeout.pod" + ], "doc/man/man3/SSL_get_extms_support.3" => [ "doc/man3/SSL_get_extms_support.pod" ], "doc/man/man3/SSL_get_fd.3" => [ "doc/man3/SSL_get_fd.pod" ], + "doc/man/man3/SSL_get_handshake_rtt.3" => [ + "doc/man3/SSL_get_handshake_rtt.pod" + ], "doc/man/man3/SSL_get_peer_cert_chain.3" => [ "doc/man3/SSL_get_peer_cert_chain.pod" ], @@ -15156,12 +17488,24 @@ our %unified_info = ( "doc/man/man3/SSL_get_rbio.3" => [ "doc/man3/SSL_get_rbio.pod" ], + "doc/man/man3/SSL_get_rpoll_descriptor.3" => [ + "doc/man3/SSL_get_rpoll_descriptor.pod" + ], "doc/man/man3/SSL_get_session.3" => [ "doc/man3/SSL_get_session.pod" ], "doc/man/man3/SSL_get_shared_sigalgs.3" => [ "doc/man3/SSL_get_shared_sigalgs.pod" ], + "doc/man/man3/SSL_get_stream_id.3" => [ + "doc/man3/SSL_get_stream_id.pod" + ], + "doc/man/man3/SSL_get_stream_read_state.3" => [ + "doc/man3/SSL_get_stream_read_state.pod" + ], + "doc/man/man3/SSL_get_value_uint.3" => [ + "doc/man3/SSL_get_value_uint.pod" + ], "doc/man/man3/SSL_get_verify_result.3" => [ "doc/man3/SSL_get_verify_result.pod" ], @@ -15171,9 +17515,15 @@ our %unified_info = ( "doc/man/man3/SSL_group_to_name.3" => [ "doc/man3/SSL_group_to_name.pod" ], + "doc/man/man3/SSL_handle_events.3" => [ + "doc/man3/SSL_handle_events.pod" + ], "doc/man/man3/SSL_in_init.3" => [ "doc/man3/SSL_in_init.pod" ], + "doc/man/man3/SSL_inject_net_dgram.3" => [ + "doc/man3/SSL_inject_net_dgram.pod" + ], "doc/man/man3/SSL_key_update.3" => [ "doc/man3/SSL_key_update.pod" ], @@ -15186,9 +17536,21 @@ our %unified_info = ( "doc/man/man3/SSL_new.3" => [ "doc/man3/SSL_new.pod" ], + "doc/man/man3/SSL_new_domain.3" => [ + "doc/man3/SSL_new_domain.pod" + ], + "doc/man/man3/SSL_new_listener.3" => [ + "doc/man3/SSL_new_listener.pod" + ], + "doc/man/man3/SSL_new_stream.3" => [ + "doc/man3/SSL_new_stream.pod" + ], "doc/man/man3/SSL_pending.3" => [ "doc/man3/SSL_pending.pod" ], + "doc/man/man3/SSL_poll.3" => [ + "doc/man3/SSL_poll.pod" + ], "doc/man/man3/SSL_read.3" => [ "doc/man3/SSL_read.pod" ], @@ -15204,24 +17566,45 @@ our %unified_info = ( "doc/man/man3/SSL_set1_host.3" => [ "doc/man3/SSL_set1_host.pod" ], + "doc/man/man3/SSL_set1_initial_peer_addr.3" => [ + "doc/man3/SSL_set1_initial_peer_addr.pod" + ], + "doc/man/man3/SSL_set1_server_cert_type.3" => [ + "doc/man3/SSL_set1_server_cert_type.pod" + ], "doc/man/man3/SSL_set_async_callback.3" => [ "doc/man3/SSL_set_async_callback.pod" ], "doc/man/man3/SSL_set_bio.3" => [ "doc/man3/SSL_set_bio.pod" ], + "doc/man/man3/SSL_set_blocking_mode.3" => [ + "doc/man3/SSL_set_blocking_mode.pod" + ], "doc/man/man3/SSL_set_connect_state.3" => [ "doc/man3/SSL_set_connect_state.pod" ], + "doc/man/man3/SSL_set_default_stream_mode.3" => [ + "doc/man3/SSL_set_default_stream_mode.pod" + ], "doc/man/man3/SSL_set_fd.3" => [ "doc/man3/SSL_set_fd.pod" ], + "doc/man/man3/SSL_set_incoming_stream_policy.3" => [ + "doc/man3/SSL_set_incoming_stream_policy.pod" + ], + "doc/man/man3/SSL_set_quic_tls_cbs.3" => [ + "doc/man3/SSL_set_quic_tls_cbs.pod" + ], "doc/man/man3/SSL_set_retry_verify.3" => [ "doc/man3/SSL_set_retry_verify.pod" ], "doc/man/man3/SSL_set_session.3" => [ "doc/man3/SSL_set_session.pod" ], + "doc/man/man3/SSL_set_session_secret_cb.3" => [ + "doc/man3/SSL_set_session_secret_cb.pod" + ], "doc/man/man3/SSL_set_shutdown.3" => [ "doc/man3/SSL_set_shutdown.pod" ], @@ -15234,6 +17617,12 @@ our %unified_info = ( "doc/man/man3/SSL_state_string.3" => [ "doc/man3/SSL_state_string.pod" ], + "doc/man/man3/SSL_stream_conclude.3" => [ + "doc/man3/SSL_stream_conclude.pod" + ], + "doc/man/man3/SSL_stream_reset.3" => [ + "doc/man3/SSL_stream_reset.pod" + ], "doc/man/man3/SSL_want.3" => [ "doc/man3/SSL_want.pod" ], @@ -15243,8 +17632,8 @@ our %unified_info = ( "doc/man/man3/TS_RESP_CTX_new.3" => [ "doc/man3/TS_RESP_CTX_new.pod" ], - "doc/man/man3/TS_VERIFY_CTX_set_certs.3" => [ - "doc/man3/TS_VERIFY_CTX_set_certs.pod" + "doc/man/man3/TS_VERIFY_CTX.3" => [ + "doc/man3/TS_VERIFY_CTX.pod" ], "doc/man/man3/UI_STRING.3" => [ "doc/man3/UI_STRING.pod" @@ -15264,6 +17653,21 @@ our %unified_info = ( "doc/man/man3/X509V3_set_ctx.3" => [ "doc/man3/X509V3_set_ctx.pod" ], + "doc/man/man3/X509_ACERT_add1_attr.3" => [ + "doc/man3/X509_ACERT_add1_attr.pod" + ], + "doc/man/man3/X509_ACERT_add_attr_nconf.3" => [ + "doc/man3/X509_ACERT_add_attr_nconf.pod" + ], + "doc/man/man3/X509_ACERT_get0_holder_baseCertId.3" => [ + "doc/man3/X509_ACERT_get0_holder_baseCertId.pod" + ], + "doc/man/man3/X509_ACERT_get_attr.3" => [ + "doc/man3/X509_ACERT_get_attr.pod" + ], + "doc/man/man3/X509_ACERT_print_ex.3" => [ + "doc/man3/X509_ACERT_print_ex.pod" + ], "doc/man/man3/X509_ALGOR_dup.3" => [ "doc/man3/X509_ALGOR_dup.pod" ], @@ -15312,6 +17716,9 @@ our %unified_info = ( "doc/man/man3/X509_SIG_get0.3" => [ "doc/man3/X509_SIG_get0.pod" ], + "doc/man/man3/X509_STORE_CTX_get_by_subject.3" => [ + "doc/man3/X509_STORE_CTX_get_by_subject.pod" + ], "doc/man/man3/X509_STORE_CTX_get_error.3" => [ "doc/man3/X509_STORE_CTX_get_error.pod" ], @@ -15378,6 +17785,9 @@ our %unified_info = ( "doc/man/man3/X509_get0_uids.3" => [ "doc/man3/X509_get0_uids.pod" ], + "doc/man/man3/X509_get_default_cert_file.3" => [ + "doc/man3/X509_get_default_cert_file.pod" + ], "doc/man/man3/X509_get_extension_flags.3" => [ "doc/man3/X509_get_extension_flags.pod" ], @@ -15501,9 +17911,15 @@ our %unified_info = ( "doc/man/man7/EVP_CIPHER-SM4.7" => [ "doc/man7/EVP_CIPHER-SM4.pod" ], + "doc/man/man7/EVP_KDF-ARGON2.7" => [ + "doc/man7/EVP_KDF-ARGON2.pod" + ], "doc/man/man7/EVP_KDF-HKDF.7" => [ "doc/man7/EVP_KDF-HKDF.pod" ], + "doc/man/man7/EVP_KDF-HMAC-DRBG.7" => [ + "doc/man7/EVP_KDF-HMAC-DRBG.pod" + ], "doc/man/man7/EVP_KDF-KB.7" => [ "doc/man7/EVP_KDF-KB.pod" ], @@ -15519,6 +17935,9 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-PKCS12KDF.7" => [ "doc/man7/EVP_KDF-PKCS12KDF.pod" ], + "doc/man/man7/EVP_KDF-PVKKDF.7" => [ + "doc/man7/EVP_KDF-PVKKDF.pod" + ], "doc/man/man7/EVP_KDF-SCRYPT.7" => [ "doc/man7/EVP_KDF-SCRYPT.pod" ], @@ -15543,9 +17962,18 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-X963.7" => [ "doc/man7/EVP_KDF-X963.pod" ], + "doc/man/man7/EVP_KEM-EC.7" => [ + "doc/man7/EVP_KEM-EC.pod" + ], + "doc/man/man7/EVP_KEM-ML-KEM.7" => [ + "doc/man7/EVP_KEM-ML-KEM.pod" + ], "doc/man/man7/EVP_KEM-RSA.7" => [ "doc/man7/EVP_KEM-RSA.pod" ], + "doc/man/man7/EVP_KEM-X25519.7" => [ + "doc/man7/EVP_KEM-X25519.pod" + ], "doc/man/man7/EVP_KEYEXCH-DH.7" => [ "doc/man7/EVP_KEYEXCH-DH.pod" ], @@ -15579,6 +18007,9 @@ our %unified_info = ( "doc/man/man7/EVP_MD-BLAKE2.7" => [ "doc/man7/EVP_MD-BLAKE2.pod" ], + "doc/man/man7/EVP_MD-KECCAK.7" => [ + "doc/man7/EVP_MD-KECCAK.pod" + ], "doc/man/man7/EVP_MD-MD2.7" => [ "doc/man7/EVP_MD-MD2.pod" ], @@ -15636,15 +18067,27 @@ our %unified_info = ( "doc/man/man7/EVP_PKEY-HMAC.7" => [ "doc/man7/EVP_PKEY-HMAC.pod" ], + "doc/man/man7/EVP_PKEY-ML-DSA.7" => [ + "doc/man7/EVP_PKEY-ML-DSA.pod" + ], + "doc/man/man7/EVP_PKEY-ML-KEM.7" => [ + "doc/man7/EVP_PKEY-ML-KEM.pod" + ], "doc/man/man7/EVP_PKEY-RSA.7" => [ "doc/man7/EVP_PKEY-RSA.pod" ], + "doc/man/man7/EVP_PKEY-SLH-DSA.7" => [ + "doc/man7/EVP_PKEY-SLH-DSA.pod" + ], "doc/man/man7/EVP_PKEY-SM2.7" => [ "doc/man7/EVP_PKEY-SM2.pod" ], "doc/man/man7/EVP_PKEY-X25519.7" => [ "doc/man7/EVP_PKEY-X25519.pod" ], + "doc/man/man7/EVP_RAND-CRNG-TEST.7" => [ + "doc/man7/EVP_RAND-CRNG-TEST.pod" + ], "doc/man/man7/EVP_RAND-CTR-DRBG.7" => [ "doc/man7/EVP_RAND-CTR-DRBG.pod" ], @@ -15654,6 +18097,9 @@ our %unified_info = ( "doc/man/man7/EVP_RAND-HMAC-DRBG.7" => [ "doc/man7/EVP_RAND-HMAC-DRBG.pod" ], + "doc/man/man7/EVP_RAND-JITTER.7" => [ + "doc/man7/EVP_RAND-JITTER.pod" + ], "doc/man/man7/EVP_RAND-SEED-SRC.7" => [ "doc/man7/EVP_RAND-SEED-SRC.pod" ], @@ -15675,9 +18121,15 @@ our %unified_info = ( "doc/man/man7/EVP_SIGNATURE-HMAC.7" => [ "doc/man7/EVP_SIGNATURE-HMAC.pod" ], + "doc/man/man7/EVP_SIGNATURE-ML-DSA.7" => [ + "doc/man7/EVP_SIGNATURE-ML-DSA.pod" + ], "doc/man/man7/EVP_SIGNATURE-RSA.7" => [ "doc/man7/EVP_SIGNATURE-RSA.pod" ], + "doc/man/man7/EVP_SIGNATURE-SLH-DSA.7" => [ + "doc/man7/EVP_SIGNATURE-SLH-DSA.pod" + ], "doc/man/man7/OSSL_PROVIDER-FIPS.7" => [ "doc/man7/OSSL_PROVIDER-FIPS.pod" ], @@ -15693,6 +18145,9 @@ our %unified_info = ( "doc/man/man7/OSSL_PROVIDER-null.7" => [ "doc/man7/OSSL_PROVIDER-null.pod" ], + "doc/man/man7/OSSL_STORE-winstore.7" => [ + "doc/man7/OSSL_STORE-winstore.pod" + ], "doc/man/man7/RAND.7" => [ "doc/man7/RAND.pod" ], @@ -15705,9 +18160,6 @@ our %unified_info = ( "doc/man/man7/bio.7" => [ "doc/man7/bio.pod" ], - "doc/man/man7/crypto.7" => [ - "doc/man7/crypto.pod" - ], "doc/man/man7/ct.7" => [ "doc/man7/ct.pod" ], @@ -15738,9 +18190,6 @@ our %unified_info = ( "doc/man/man7/life_cycle-rand.7" => [ "doc/man7/life_cycle-rand.pod" ], - "doc/man/man7/migration_guide.7" => [ - "doc/man7/migration_guide.pod" - ], "doc/man/man7/openssl-core.h.7" => [ "doc/man7/openssl-core.h.pod" ], @@ -15756,12 +18205,66 @@ our %unified_info = ( "doc/man/man7/openssl-glossary.7" => [ "doc/man7/openssl-glossary.pod" ], + "doc/man/man7/openssl-qlog.7" => [ + "doc/man7/openssl-qlog.pod" + ], + "doc/man/man7/openssl-quic-concurrency.7" => [ + "doc/man7/openssl-quic-concurrency.pod" + ], + "doc/man/man7/openssl-quic.7" => [ + "doc/man7/openssl-quic.pod" + ], "doc/man/man7/openssl-threads.7" => [ "doc/man7/openssl-threads.pod" ], "doc/man/man7/openssl_user_macros.7" => [ "doc/man7/openssl_user_macros.pod" ], + "doc/man/man7/ossl-guide-introduction.7" => [ + "doc/man7/ossl-guide-introduction.pod" + ], + "doc/man/man7/ossl-guide-libcrypto-introduction.7" => [ + "doc/man7/ossl-guide-libcrypto-introduction.pod" + ], + "doc/man/man7/ossl-guide-libraries-introduction.7" => [ + "doc/man7/ossl-guide-libraries-introduction.pod" + ], + "doc/man/man7/ossl-guide-libssl-introduction.7" => [ + "doc/man7/ossl-guide-libssl-introduction.pod" + ], + "doc/man/man7/ossl-guide-migration.7" => [ + "doc/man7/ossl-guide-migration.pod" + ], + "doc/man/man7/ossl-guide-quic-client-block.7" => [ + "doc/man7/ossl-guide-quic-client-block.pod" + ], + "doc/man/man7/ossl-guide-quic-client-non-block.7" => [ + "doc/man7/ossl-guide-quic-client-non-block.pod" + ], + "doc/man/man7/ossl-guide-quic-introduction.7" => [ + "doc/man7/ossl-guide-quic-introduction.pod" + ], + "doc/man/man7/ossl-guide-quic-multi-stream.7" => [ + "doc/man7/ossl-guide-quic-multi-stream.pod" + ], + "doc/man/man7/ossl-guide-quic-server-block.7" => [ + "doc/man7/ossl-guide-quic-server-block.pod" + ], + "doc/man/man7/ossl-guide-quic-server-non-block.7" => [ + "doc/man7/ossl-guide-quic-server-non-block.pod" + ], + "doc/man/man7/ossl-guide-tls-client-block.7" => [ + "doc/man7/ossl-guide-tls-client-block.pod" + ], + "doc/man/man7/ossl-guide-tls-client-non-block.7" => [ + "doc/man7/ossl-guide-tls-client-non-block.pod" + ], + "doc/man/man7/ossl-guide-tls-introduction.7" => [ + "doc/man7/ossl-guide-tls-introduction.pod" + ], + "doc/man/man7/ossl-guide-tls-server-block.7" => [ + "doc/man7/ossl-guide-tls-server-block.pod" + ], "doc/man/man7/ossl_store-file.7" => [ "doc/man7/ossl_store-file.pod" ], @@ -15816,6 +18319,9 @@ our %unified_info = ( "doc/man/man7/provider-signature.7" => [ "doc/man7/provider-signature.pod" ], + "doc/man/man7/provider-skeymgmt.7" => [ + "doc/man7/provider-skeymgmt.pod" + ], "doc/man/man7/provider-storemgmt.7" => [ "doc/man7/provider-storemgmt.pod" ], @@ -15825,9 +18331,6 @@ our %unified_info = ( "doc/man/man7/proxy-certificates.7" => [ "doc/man7/proxy-certificates.pod" ], - "doc/man/man7/ssl.7" => [ - "doc/man7/ssl.pod" - ], "doc/man/man7/x509.7" => [ "doc/man7/x509.pod" ], @@ -15963,6 +18466,9 @@ our %unified_info = ( "doc/man1/openssl-sess_id.pod" => [ "doc/man1/openssl-sess_id.pod.in" ], + "doc/man1/openssl-skeyutl.pod" => [ + "doc/man1/openssl-skeyutl.pod.in" + ], "doc/man1/openssl-smime.pod" => [ "doc/man1/openssl-smime.pod.in" ], @@ -15999,12 +18505,30 @@ our %unified_info = ( "engines/e_padlock-x86_64.s" => [ "engines/asm/e_padlock-x86_64.pl" ], + "exporters/OpenSSLConfig.cmake" => [ + "exporters/cmake/OpenSSLConfig.cmake.in" + ], + "exporters/OpenSSLConfigVersion.cmake" => [ + "exporters/cmake/OpenSSLConfigVersion.cmake.in" + ], + "exporters/libcrypto.pc" => [ + "exporters/pkg-config/libcrypto.pc.in" + ], + "exporters/libssl.pc" => [ + "exporters/pkg-config/libssl.pc.in" + ], + "exporters/openssl.pc" => [ + "exporters/pkg-config/openssl.pc.in" + ], "include/crypto/bn_conf.h" => [ "include/crypto/bn_conf.h.in" ], "include/crypto/dso_conf.h" => [ "include/crypto/dso_conf.h.in" ], + "include/internal/param_names.h" => [ + "include/internal/param_names.h.in" + ], "include/openssl/asn1.h" => [ "include/openssl/asn1.h.in" ], @@ -16020,12 +18544,18 @@ our %unified_info = ( "include/openssl/cms.h" => [ "include/openssl/cms.h.in" ], + "include/openssl/comp.h" => [ + "include/openssl/comp.h.in" + ], "include/openssl/conf.h" => [ "include/openssl/conf.h.in" ], "include/openssl/configuration.h" => [ "include/openssl/configuration.h.in" ], + "include/openssl/core_names.h" => [ + "include/openssl/core_names.h.in" + ], "include/openssl/crmf.h" => [ "include/openssl/crmf.h.in" ], @@ -16074,16 +18604,37 @@ our %unified_info = ( "include/openssl/x509.h" => [ "include/openssl/x509.h.in" ], + "include/openssl/x509_acert.h" => [ + "include/openssl/x509_acert.h.in" + ], "include/openssl/x509_vfy.h" => [ "include/openssl/x509_vfy.h.in" ], "include/openssl/x509v3.h" => [ "include/openssl/x509v3.h.in" ], + "installdata.pm" => [ + "util/mkinstallvars.pl", + "\"PREFIX=\$(INSTALLTOP)\"", + "BINDIR=bin", + "\"LIBDIR=\$(LIBDIR)\"", + "\"libdir=\$(libdir)\"", + "INCLUDEDIR=include", + "APPLINKDIR=include/openssl", + "\"ENGINESDIR=\$(ENGINESDIR)\"", + "\"MODULESDIR=\$(MODULESDIR)\"", + "\"PKGCONFIGDIR=\$(PKGCONFIGDIR)\"", + "\"CMAKECONFIGDIR=\$(CMAKECONFIGDIR)\"", + "\"LDLIBS=\$(LIB_EX_LIBS)\"", + "\"VERSION=\$(VERSION)\"" + ], "libcrypto.ld" => [ "util/libcrypto.num", "libcrypto" ], + "libcrypto.pc" => [ + "exporters/pkg-config/libcrypto.pc.in" + ], "libcrypto.rc" => [ "util/mkrc.pl", "libcrypto" @@ -16092,10 +18643,16 @@ our %unified_info = ( "util/libssl.num", "libssl" ], + "libssl.pc" => [ + "exporters/pkg-config/libssl.pc.in" + ], "libssl.rc" => [ "util/mkrc.pl", "libssl" ], + "openssl.pc" => [ + "exporters/pkg-config/openssl.pc.in" + ], "providers/common/der/der_digests_gen.c" => [ "providers/common/der/der_digests_gen.c.in" ], @@ -16108,9 +18665,15 @@ our %unified_info = ( "providers/common/der/der_ecx_gen.c" => [ "providers/common/der/der_ecx_gen.c.in" ], + "providers/common/der/der_ml_dsa_gen.c" => [ + "providers/common/der/der_ml_dsa_gen.c.in" + ], "providers/common/der/der_rsa_gen.c" => [ "providers/common/der/der_rsa_gen.c.in" ], + "providers/common/der/der_slh_dsa_gen.c" => [ + "providers/common/der/der_slh_dsa_gen.c.in" + ], "providers/common/der/der_sm2_gen.c" => [ "providers/common/der/der_sm2_gen.c.in" ], @@ -16129,9 +18692,15 @@ our %unified_info = ( "providers/common/include/prov/der_ecx.h" => [ "providers/common/include/prov/der_ecx.h.in" ], + "providers/common/include/prov/der_ml_dsa.h" => [ + "providers/common/include/prov/der_ml_dsa.h.in" + ], "providers/common/include/prov/der_rsa.h" => [ "providers/common/include/prov/der_rsa.h.in" ], + "providers/common/include/prov/der_slh_dsa.h" => [ + "providers/common/include/prov/der_slh_dsa.h.in" + ], "providers/common/include/prov/der_sm2.h" => [ "providers/common/include/prov/der_sm2.h.in" ], @@ -16181,6 +18750,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "buffer" ], + "test/buildtest_byteorder.c" => [ + "test/generate_buildtest.pl", + "byteorder" + ], "test/buildtest_camellia.c" => [ "test/generate_buildtest.pl", "camellia" @@ -16213,10 +18786,6 @@ our %unified_info = ( "test/generate_buildtest.pl", "core_dispatch" ], - "test/buildtest_core_names.c" => [ - "test/generate_buildtest.pl", - "core_names" - ], "test/buildtest_core_object.c" => [ "test/generate_buildtest.pl", "core_object" @@ -16249,6 +18818,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "e_os2" ], + "test/buildtest_e_ostime.c" => [ + "test/generate_buildtest.pl", + "e_ostime" + ], "test/buildtest_ebcdic.c" => [ "test/generate_buildtest.pl", "ebcdic" @@ -16285,6 +18858,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "hmac" ], + "test/buildtest_hpke.c" => [ + "test/generate_buildtest.pl", + "hpke" + ], "test/buildtest_http.c" => [ "test/generate_buildtest.pl", "http" @@ -16293,6 +18870,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "idea" ], + "test/buildtest_indicator.c" => [ + "test/generate_buildtest.pl", + "indicator" + ], "test/buildtest_kdf.c" => [ "test/generate_buildtest.pl", "kdf" @@ -16313,6 +18894,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "mdc2" ], + "test/buildtest_ml_kem.c" => [ + "test/generate_buildtest.pl", + "ml_kem" + ], "test/buildtest_modes.c" => [ "test/generate_buildtest.pl", "modes" @@ -16353,6 +18938,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "provider" ], + "test/buildtest_quic.c" => [ + "test/generate_buildtest.pl", + "quic" + ], "test/buildtest_rand.c" => [ "test/generate_buildtest.pl", "rand" @@ -16409,6 +18998,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "symhacks" ], + "test/buildtest_thread.c" => [ + "test/generate_buildtest.pl", + "thread" + ], "test/buildtest_tls1.c" => [ "test/generate_buildtest.pl", "tls1" @@ -16489,6 +19082,7 @@ our %unified_info = ( "doc/html/man1/openssl-s_server.html", "doc/html/man1/openssl-s_time.html", "doc/html/man1/openssl-sess_id.html", + "doc/html/man1/openssl-skeyutl.html", "doc/html/man1/openssl-smime.html", "doc/html/man1/openssl-speed.html", "doc/html/man1/openssl-spkac.html", @@ -16538,6 +19132,7 @@ our %unified_info = ( "doc/html/man3/BIO_find_type.html", "doc/html/man3/BIO_get_data.html", "doc/html/man3/BIO_get_ex_new_index.html", + "doc/html/man3/BIO_get_rpoll_descriptor.html", "doc/html/man3/BIO_meth_new.html", "doc/html/man3/BIO_new.html", "doc/html/man3/BIO_new_CMS.html", @@ -16550,11 +19145,13 @@ our %unified_info = ( "doc/html/man3/BIO_s_connect.html", "doc/html/man3/BIO_s_core.html", "doc/html/man3/BIO_s_datagram.html", + "doc/html/man3/BIO_s_dgram_pair.html", "doc/html/man3/BIO_s_fd.html", "doc/html/man3/BIO_s_file.html", "doc/html/man3/BIO_s_mem.html", "doc/html/man3/BIO_s_null.html", "doc/html/man3/BIO_s_socket.html", + "doc/html/man3/BIO_sendmmsg.html", "doc/html/man3/BIO_set_callback.html", "doc/html/man3/BIO_should_retry.html", "doc/html/man3/BIO_socket_wait.html", @@ -16579,6 +19176,7 @@ our %unified_info = ( "doc/html/man3/BN_swap.html", "doc/html/man3/BN_zero.html", "doc/html/man3/BUF_MEM_new.html", + "doc/html/man3/CMAC_CTX.html", "doc/html/man3/CMS_EncryptedData_decrypt.html", "doc/html/man3/CMS_EncryptedData_encrypt.html", "doc/html/man3/CMS_EnvelopedData_create.html", @@ -16601,6 +19199,7 @@ our %unified_info = ( "doc/html/man3/CMS_uncompress.html", "doc/html/man3/CMS_verify.html", "doc/html/man3/CMS_verify_receipt.html", + "doc/html/man3/COMP_CTX_new.html", "doc/html/man3/CONF_modules_free.html", "doc/html/man3/CONF_modules_load_file.html", "doc/html/man3/CRYPTO_THREAD_run_once.html", @@ -16634,6 +19233,8 @@ our %unified_info = ( "doc/html/man3/DSA_size.html", "doc/html/man3/DTLS_get_data_mtu.html", "doc/html/man3/DTLS_set_timer_cb.html", + "doc/html/man3/DTLSv1_get_timeout.html", + "doc/html/man3/DTLSv1_handle_timeout.html", "doc/html/man3/DTLSv1_listen.html", "doc/html/man3/ECDSA_SIG_new.html", "doc/html/man3/ECDSA_sign.html", @@ -16680,6 +19281,7 @@ our %unified_info = ( "doc/html/man3/EVP_PKEY_CTX_ctrl.html", "doc/html/man3/EVP_PKEY_CTX_get0_libctx.html", "doc/html/man3/EVP_PKEY_CTX_get0_pkey.html", + "doc/html/man3/EVP_PKEY_CTX_get_algor.html", "doc/html/man3/EVP_PKEY_CTX_new.html", "doc/html/man3/EVP_PKEY_CTX_set1_pbe_pass.html", "doc/html/man3/EVP_PKEY_CTX_set_hkdf_md.html", @@ -16719,6 +19321,8 @@ our %unified_info = ( "doc/html/man3/EVP_PKEY_verify_recover.html", "doc/html/man3/EVP_RAND.html", "doc/html/man3/EVP_SIGNATURE.html", + "doc/html/man3/EVP_SKEY.html", + "doc/html/man3/EVP_SKEYMGMT.html", "doc/html/man3/EVP_SealInit.html", "doc/html/man3/EVP_SignInit.html", "doc/html/man3/EVP_VerifyInit.html", @@ -16748,6 +19352,7 @@ our %unified_info = ( "doc/html/man3/EVP_sm3.html", "doc/html/man3/EVP_sm4_cbc.html", "doc/html/man3/EVP_whirlpool.html", + "doc/html/man3/GENERAL_NAME.html", "doc/html/man3/HMAC.html", "doc/html/man3/MD5.html", "doc/html/man3/MDC2_Init.html", @@ -16772,14 +19377,18 @@ our %unified_info = ( "doc/html/man3/OPENSSL_init_ssl.html", "doc/html/man3/OPENSSL_instrument_bus.html", "doc/html/man3/OPENSSL_load_builtin_modules.html", + "doc/html/man3/OPENSSL_load_u16_le.html", "doc/html/man3/OPENSSL_malloc.html", + "doc/html/man3/OPENSSL_riscvcap.html", "doc/html/man3/OPENSSL_s390xcap.html", "doc/html/man3/OPENSSL_secure_malloc.html", "doc/html/man3/OPENSSL_strcasecmp.html", "doc/html/man3/OSSL_ALGORITHM.html", "doc/html/man3/OSSL_CALLBACK.html", + "doc/html/man3/OSSL_CMP_ATAV_set0.html", "doc/html/man3/OSSL_CMP_CTX_new.html", "doc/html/man3/OSSL_CMP_HDR_get0_transactionID.html", + "doc/html/man3/OSSL_CMP_ITAV_new_caCerts.html", "doc/html/man3/OSSL_CMP_ITAV_set0.html", "doc/html/man3/OSSL_CMP_MSG_get0_header.html", "doc/html/man3/OSSL_CMP_MSG_http_perform.html", @@ -16803,18 +19412,27 @@ our %unified_info = ( "doc/html/man3/OSSL_ENCODER_CTX.html", "doc/html/man3/OSSL_ENCODER_CTX_new_for_pkey.html", "doc/html/man3/OSSL_ENCODER_to_bio.html", + "doc/html/man3/OSSL_ERR_STATE_save.html", "doc/html/man3/OSSL_ESS_check_signing_certs.html", + "doc/html/man3/OSSL_GENERAL_NAMES_print.html", + "doc/html/man3/OSSL_HPKE_CTX_new.html", "doc/html/man3/OSSL_HTTP_REQ_CTX.html", "doc/html/man3/OSSL_HTTP_parse_url.html", "doc/html/man3/OSSL_HTTP_transfer.html", + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX.html", + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX_print.html", + "doc/html/man3/OSSL_INDICATOR_set_callback.html", "doc/html/man3/OSSL_ITEM.html", "doc/html/man3/OSSL_LIB_CTX.html", + "doc/html/man3/OSSL_LIB_CTX_set_conf_diagnostics.html", "doc/html/man3/OSSL_PARAM.html", "doc/html/man3/OSSL_PARAM_BLD.html", "doc/html/man3/OSSL_PARAM_allocate_from_text.html", "doc/html/man3/OSSL_PARAM_dup.html", "doc/html/man3/OSSL_PARAM_int.html", + "doc/html/man3/OSSL_PARAM_print_to_bio.html", "doc/html/man3/OSSL_PROVIDER.html", + "doc/html/man3/OSSL_QUIC_client_method.html", "doc/html/man3/OSSL_SELF_TEST_new.html", "doc/html/man3/OSSL_SELF_TEST_set_callback.html", "doc/html/man3/OSSL_STORE_INFO.html", @@ -16823,11 +19441,13 @@ our %unified_info = ( "doc/html/man3/OSSL_STORE_attach.html", "doc/html/man3/OSSL_STORE_expect.html", "doc/html/man3/OSSL_STORE_open.html", + "doc/html/man3/OSSL_sleep.html", "doc/html/man3/OSSL_trace_enabled.html", "doc/html/man3/OSSL_trace_get_category_num.html", "doc/html/man3/OSSL_trace_set_channel.html", "doc/html/man3/OpenSSL_add_all_algorithms.html", "doc/html/man3/OpenSSL_version.html", + "doc/html/man3/PBMAC1_get1_pbkdf2_param.html", "doc/html/man3/PEM_X509_INFO_read_bio_ex.html", "doc/html/man3/PEM_bytes_read_bio.html", "doc/html/man3/PEM_read.html", @@ -16840,6 +19460,7 @@ our %unified_info = ( "doc/html/man3/PKCS12_SAFEBAG_create_cert.html", "doc/html/man3/PKCS12_SAFEBAG_get0_attrs.html", "doc/html/man3/PKCS12_SAFEBAG_get1_cert.html", + "doc/html/man3/PKCS12_SAFEBAG_set0_attrs.html", "doc/html/man3/PKCS12_add1_attr_by_NID.html", "doc/html/man3/PKCS12_add_CSPName_asc.html", "doc/html/man3/PKCS12_add_cert.html", @@ -16931,6 +19552,7 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_sess_set_get_cb.html", "doc/html/man3/SSL_CTX_sessions.html", "doc/html/man3/SSL_CTX_set0_CA_list.html", + "doc/html/man3/SSL_CTX_set1_cert_comp_preference.html", "doc/html/man3/SSL_CTX_set1_curves.html", "doc/html/man3/SSL_CTX_set1_sigalgs.html", "doc/html/man3/SSL_CTX_set1_verify_cert_store.html", @@ -16944,6 +19566,7 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_ct_validation_callback.html", "doc/html/man3/SSL_CTX_set_ctlog_list_file.html", "doc/html/man3/SSL_CTX_set_default_passwd_cb.html", + "doc/html/man3/SSL_CTX_set_domain_flags.html", "doc/html/man3/SSL_CTX_set_generate_session_id.html", "doc/html/man3/SSL_CTX_set_info_callback.html", "doc/html/man3/SSL_CTX_set_keylog_callback.html", @@ -16951,6 +19574,7 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_min_proto_version.html", "doc/html/man3/SSL_CTX_set_mode.html", "doc/html/man3/SSL_CTX_set_msg_callback.html", + "doc/html/man3/SSL_CTX_set_new_pending_conn_cb.html", "doc/html/man3/SSL_CTX_set_num_tickets.html", "doc/html/man3/SSL_CTX_set_options.html", "doc/html/man3/SSL_CTX_set_psk_client_callback.html", @@ -16989,6 +19613,7 @@ our %unified_info = ( "doc/html/man3/SSL_SESSION_print.html", "doc/html/man3/SSL_SESSION_set1_id.html", "doc/html/man3/SSL_accept.html", + "doc/html/man3/SSL_accept_stream.html", "doc/html/man3/SSL_alert_type_string.html", "doc/html/man3/SSL_alloc_buffers.html", "doc/html/man3/SSL_check_chain.html", @@ -16998,59 +19623,90 @@ our %unified_info = ( "doc/html/man3/SSL_export_keying_material.html", "doc/html/man3/SSL_extension_supported.html", "doc/html/man3/SSL_free.html", + "doc/html/man3/SSL_get0_connection.html", + "doc/html/man3/SSL_get0_group_name.html", + "doc/html/man3/SSL_get0_peer_rpk.html", "doc/html/man3/SSL_get0_peer_scts.html", + "doc/html/man3/SSL_get1_builtin_sigalgs.html", "doc/html/man3/SSL_get_SSL_CTX.html", "doc/html/man3/SSL_get_all_async_fds.html", "doc/html/man3/SSL_get_certificate.html", "doc/html/man3/SSL_get_ciphers.html", "doc/html/man3/SSL_get_client_random.html", + "doc/html/man3/SSL_get_conn_close_info.html", "doc/html/man3/SSL_get_current_cipher.html", "doc/html/man3/SSL_get_default_timeout.html", "doc/html/man3/SSL_get_error.html", + "doc/html/man3/SSL_get_event_timeout.html", "doc/html/man3/SSL_get_extms_support.html", "doc/html/man3/SSL_get_fd.html", + "doc/html/man3/SSL_get_handshake_rtt.html", "doc/html/man3/SSL_get_peer_cert_chain.html", "doc/html/man3/SSL_get_peer_certificate.html", "doc/html/man3/SSL_get_peer_signature_nid.html", "doc/html/man3/SSL_get_peer_tmp_key.html", "doc/html/man3/SSL_get_psk_identity.html", "doc/html/man3/SSL_get_rbio.html", + "doc/html/man3/SSL_get_rpoll_descriptor.html", "doc/html/man3/SSL_get_session.html", "doc/html/man3/SSL_get_shared_sigalgs.html", + "doc/html/man3/SSL_get_stream_id.html", + "doc/html/man3/SSL_get_stream_read_state.html", + "doc/html/man3/SSL_get_value_uint.html", "doc/html/man3/SSL_get_verify_result.html", "doc/html/man3/SSL_get_version.html", "doc/html/man3/SSL_group_to_name.html", + "doc/html/man3/SSL_handle_events.html", "doc/html/man3/SSL_in_init.html", + "doc/html/man3/SSL_inject_net_dgram.html", "doc/html/man3/SSL_key_update.html", "doc/html/man3/SSL_library_init.html", "doc/html/man3/SSL_load_client_CA_file.html", "doc/html/man3/SSL_new.html", + "doc/html/man3/SSL_new_domain.html", + "doc/html/man3/SSL_new_listener.html", + "doc/html/man3/SSL_new_stream.html", "doc/html/man3/SSL_pending.html", + "doc/html/man3/SSL_poll.html", "doc/html/man3/SSL_read.html", "doc/html/man3/SSL_read_early_data.html", "doc/html/man3/SSL_rstate_string.html", "doc/html/man3/SSL_session_reused.html", "doc/html/man3/SSL_set1_host.html", + "doc/html/man3/SSL_set1_initial_peer_addr.html", + "doc/html/man3/SSL_set1_server_cert_type.html", "doc/html/man3/SSL_set_async_callback.html", "doc/html/man3/SSL_set_bio.html", + "doc/html/man3/SSL_set_blocking_mode.html", "doc/html/man3/SSL_set_connect_state.html", + "doc/html/man3/SSL_set_default_stream_mode.html", "doc/html/man3/SSL_set_fd.html", + "doc/html/man3/SSL_set_incoming_stream_policy.html", + "doc/html/man3/SSL_set_quic_tls_cbs.html", "doc/html/man3/SSL_set_retry_verify.html", "doc/html/man3/SSL_set_session.html", + "doc/html/man3/SSL_set_session_secret_cb.html", "doc/html/man3/SSL_set_shutdown.html", "doc/html/man3/SSL_set_verify_result.html", "doc/html/man3/SSL_shutdown.html", "doc/html/man3/SSL_state_string.html", + "doc/html/man3/SSL_stream_conclude.html", + "doc/html/man3/SSL_stream_reset.html", "doc/html/man3/SSL_want.html", "doc/html/man3/SSL_write.html", "doc/html/man3/TS_RESP_CTX_new.html", - "doc/html/man3/TS_VERIFY_CTX_set_certs.html", + "doc/html/man3/TS_VERIFY_CTX.html", "doc/html/man3/UI_STRING.html", "doc/html/man3/UI_UTIL_read_pw.html", "doc/html/man3/UI_create_method.html", "doc/html/man3/UI_new.html", "doc/html/man3/X509V3_get_d2i.html", "doc/html/man3/X509V3_set_ctx.html", + "doc/html/man3/X509_ACERT_add1_attr.html", + "doc/html/man3/X509_ACERT_add_attr_nconf.html", + "doc/html/man3/X509_ACERT_get0_holder_baseCertId.html", + "doc/html/man3/X509_ACERT_get_attr.html", + "doc/html/man3/X509_ACERT_print_ex.html", "doc/html/man3/X509_ALGOR_dup.html", "doc/html/man3/X509_ATTRIBUTE.html", "doc/html/man3/X509_CRL_get0_by_serial.html", @@ -17067,6 +19723,7 @@ our %unified_info = ( "doc/html/man3/X509_REQ_get_attr.html", "doc/html/man3/X509_REQ_get_extensions.html", "doc/html/man3/X509_SIG_get0.html", + "doc/html/man3/X509_STORE_CTX_get_by_subject.html", "doc/html/man3/X509_STORE_CTX_get_error.html", "doc/html/man3/X509_STORE_CTX_new.html", "doc/html/man3/X509_STORE_CTX_set_verify_cb.html", @@ -17089,6 +19746,7 @@ our %unified_info = ( "doc/html/man3/X509_get0_notBefore.html", "doc/html/man3/X509_get0_signature.html", "doc/html/man3/X509_get0_uids.html", + "doc/html/man3/X509_get_default_cert_file.html", "doc/html/man3/X509_get_extension_flags.html", "doc/html/man3/X509_get_pubkey.html", "doc/html/man3/X509_get_serialNumber.html", @@ -17134,12 +19792,15 @@ our %unified_info = ( "doc/html/man7/EVP_CIPHER-RC5.html", "doc/html/man7/EVP_CIPHER-SEED.html", "doc/html/man7/EVP_CIPHER-SM4.html", + "doc/html/man7/EVP_KDF-ARGON2.html", "doc/html/man7/EVP_KDF-HKDF.html", + "doc/html/man7/EVP_KDF-HMAC-DRBG.html", "doc/html/man7/EVP_KDF-KB.html", "doc/html/man7/EVP_KDF-KRB5KDF.html", "doc/html/man7/EVP_KDF-PBKDF1.html", "doc/html/man7/EVP_KDF-PBKDF2.html", "doc/html/man7/EVP_KDF-PKCS12KDF.html", + "doc/html/man7/EVP_KDF-PVKKDF.html", "doc/html/man7/EVP_KDF-SCRYPT.html", "doc/html/man7/EVP_KDF-SS.html", "doc/html/man7/EVP_KDF-SSHKDF.html", @@ -17148,7 +19809,10 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-X942-ASN1.html", "doc/html/man7/EVP_KDF-X942-CONCAT.html", "doc/html/man7/EVP_KDF-X963.html", + "doc/html/man7/EVP_KEM-EC.html", + "doc/html/man7/EVP_KEM-ML-KEM.html", "doc/html/man7/EVP_KEM-RSA.html", + "doc/html/man7/EVP_KEM-X25519.html", "doc/html/man7/EVP_KEYEXCH-DH.html", "doc/html/man7/EVP_KEYEXCH-ECDH.html", "doc/html/man7/EVP_KEYEXCH-X25519.html", @@ -17160,6 +19824,7 @@ our %unified_info = ( "doc/html/man7/EVP_MAC-Poly1305.html", "doc/html/man7/EVP_MAC-Siphash.html", "doc/html/man7/EVP_MD-BLAKE2.html", + "doc/html/man7/EVP_MD-KECCAK.html", "doc/html/man7/EVP_MD-MD2.html", "doc/html/man7/EVP_MD-MD4.html", "doc/html/man7/EVP_MD-MD5-SHA1.html", @@ -17179,12 +19844,17 @@ our %unified_info = ( "doc/html/man7/EVP_PKEY-EC.html", "doc/html/man7/EVP_PKEY-FFC.html", "doc/html/man7/EVP_PKEY-HMAC.html", + "doc/html/man7/EVP_PKEY-ML-DSA.html", + "doc/html/man7/EVP_PKEY-ML-KEM.html", "doc/html/man7/EVP_PKEY-RSA.html", + "doc/html/man7/EVP_PKEY-SLH-DSA.html", "doc/html/man7/EVP_PKEY-SM2.html", "doc/html/man7/EVP_PKEY-X25519.html", + "doc/html/man7/EVP_RAND-CRNG-TEST.html", "doc/html/man7/EVP_RAND-CTR-DRBG.html", "doc/html/man7/EVP_RAND-HASH-DRBG.html", "doc/html/man7/EVP_RAND-HMAC-DRBG.html", + "doc/html/man7/EVP_RAND-JITTER.html", "doc/html/man7/EVP_RAND-SEED-SRC.html", "doc/html/man7/EVP_RAND-TEST-RAND.html", "doc/html/man7/EVP_RAND.html", @@ -17192,17 +19862,19 @@ our %unified_info = ( "doc/html/man7/EVP_SIGNATURE-ECDSA.html", "doc/html/man7/EVP_SIGNATURE-ED25519.html", "doc/html/man7/EVP_SIGNATURE-HMAC.html", + "doc/html/man7/EVP_SIGNATURE-ML-DSA.html", "doc/html/man7/EVP_SIGNATURE-RSA.html", + "doc/html/man7/EVP_SIGNATURE-SLH-DSA.html", "doc/html/man7/OSSL_PROVIDER-FIPS.html", "doc/html/man7/OSSL_PROVIDER-base.html", "doc/html/man7/OSSL_PROVIDER-default.html", "doc/html/man7/OSSL_PROVIDER-legacy.html", "doc/html/man7/OSSL_PROVIDER-null.html", + "doc/html/man7/OSSL_STORE-winstore.html", "doc/html/man7/RAND.html", "doc/html/man7/RSA-PSS.html", "doc/html/man7/X25519.html", "doc/html/man7/bio.html", - "doc/html/man7/crypto.html", "doc/html/man7/ct.html", "doc/html/man7/des_modes.html", "doc/html/man7/evp.html", @@ -17213,14 +19885,31 @@ our %unified_info = ( "doc/html/man7/life_cycle-mac.html", "doc/html/man7/life_cycle-pkey.html", "doc/html/man7/life_cycle-rand.html", - "doc/html/man7/migration_guide.html", "doc/html/man7/openssl-core.h.html", "doc/html/man7/openssl-core_dispatch.h.html", "doc/html/man7/openssl-core_names.h.html", "doc/html/man7/openssl-env.html", "doc/html/man7/openssl-glossary.html", + "doc/html/man7/openssl-qlog.html", + "doc/html/man7/openssl-quic-concurrency.html", + "doc/html/man7/openssl-quic.html", "doc/html/man7/openssl-threads.html", "doc/html/man7/openssl_user_macros.html", + "doc/html/man7/ossl-guide-introduction.html", + "doc/html/man7/ossl-guide-libcrypto-introduction.html", + "doc/html/man7/ossl-guide-libraries-introduction.html", + "doc/html/man7/ossl-guide-libssl-introduction.html", + "doc/html/man7/ossl-guide-migration.html", + "doc/html/man7/ossl-guide-quic-client-block.html", + "doc/html/man7/ossl-guide-quic-client-non-block.html", + "doc/html/man7/ossl-guide-quic-introduction.html", + "doc/html/man7/ossl-guide-quic-multi-stream.html", + "doc/html/man7/ossl-guide-quic-server-block.html", + "doc/html/man7/ossl-guide-quic-server-non-block.html", + "doc/html/man7/ossl-guide-tls-client-block.html", + "doc/html/man7/ossl-guide-tls-client-non-block.html", + "doc/html/man7/ossl-guide-tls-introduction.html", + "doc/html/man7/ossl-guide-tls-server-block.html", "doc/html/man7/ossl_store-file.html", "doc/html/man7/ossl_store.html", "doc/html/man7/passphrase-encoding.html", @@ -17239,10 +19928,10 @@ our %unified_info = ( "doc/html/man7/provider-object.html", "doc/html/man7/provider-rand.html", "doc/html/man7/provider-signature.html", + "doc/html/man7/provider-skeymgmt.html", "doc/html/man7/provider-storemgmt.html", "doc/html/man7/provider.html", "doc/html/man7/proxy-certificates.html", - "doc/html/man7/ssl.html", "doc/html/man7/x509.html" ] }, @@ -17257,12 +19946,21 @@ our %unified_info = ( ] }, "includes" => { + "OpenSSLConfig.cmake" => [ + "." + ], + "OpenSSLConfigVersion.cmake" => [ + "." + ], "apps/asn1parse.o" => [ "apps" ], "apps/ca.o" => [ "apps" ], + "apps/ca_internals_test-bin-ca.o" => [ + "apps" + ], "apps/ciphers.o" => [ "apps" ], @@ -17489,6 +20187,9 @@ our %unified_info = ( "apps/openssl-bin-sess_id.o" => [ "apps" ], + "apps/openssl-bin-skeyutl.o" => [ + "apps" + ], "apps/openssl-bin-smime.o" => [ "apps" ], @@ -17576,6 +20277,9 @@ our %unified_info = ( "apps/sess_id.o" => [ "apps" ], + "apps/skeyutl.o" => [ + "apps" + ], "apps/smime.o" => [ "apps" ], @@ -17627,6 +20331,12 @@ our %unified_info = ( "crypto/aes/bsaes-armv7.o" => [ "crypto" ], + "crypto/aes/vpaes-armv8.o" => [ + "crypto" + ], + "crypto/aes/vpaes-loongarch64.o" => [ + "crypto" + ], "crypto/arm64cpuid.o" => [ "crypto" ], @@ -17678,9 +20388,15 @@ our %unified_info = ( "crypto/chacha/chacha-armv4.o" => [ "crypto" ], + "crypto/chacha/chacha-armv8-sve.o" => [ + "crypto" + ], "crypto/chacha/chacha-armv8.o" => [ "crypto" ], + "crypto/chacha/chacha-loongarch64.o" => [ + "crypto" + ], "crypto/chacha/chacha-s390x.o" => [ "crypto" ], @@ -17705,15 +20421,27 @@ our %unified_info = ( "crypto/ec/ecp_s390x_nistp.o" => [ "crypto" ], + "crypto/ec/ecp_sm2p256-armv8.o" => [ + "crypto" + ], + "crypto/ec/ecx_key.o" => [ + "crypto" + ], "crypto/ec/ecx_meth.o" => [ "crypto" ], "crypto/ec/ecx_s390x.o" => [ "crypto" ], + "crypto/ec/libcrypto-lib-ecx_key.o" => [ + "crypto" + ], "crypto/ec/libcrypto-lib-ecx_meth.o" => [ "crypto" ], + "crypto/ec/libfips-lib-ecx_key.o" => [ + "crypto" + ], "crypto/evp/e_aes.o" => [ "crypto", "crypto/modes" @@ -17785,9 +20513,18 @@ our %unified_info = ( "crypto/libfips-lib-cpuid.o" => [ "." ], + "crypto/md5/md5-aarch64.o" => [ + "crypto" + ], + "crypto/md5/md5-loongarch64.o" => [ + "crypto" + ], "crypto/md5/md5-sparcv9.o" => [ "crypto" ], + "crypto/modes/aes-gcm-armv8-unroll8_64.o" => [ + "crypto" + ], "crypto/modes/aes-gcm-armv8_64.o" => [ "crypto" ], @@ -17812,6 +20549,9 @@ our %unified_info = ( "crypto/modes/libfips-lib-gcm128.o" => [ "crypto" ], + "crypto/params_idx.c" => [ + "util/perl" + ], "crypto/poly1305/poly1305-armv4.o" => [ "crypto" ], @@ -17833,6 +20573,9 @@ our %unified_info = ( "crypto/sha/keccak1600-armv4.o" => [ "crypto" ], + "crypto/sha/keccak1600-armv8.o" => [ + "crypto" + ], "crypto/sha/sha1-armv4-large.o" => [ "crypto" ], @@ -17878,6 +20621,18 @@ our %unified_info = ( "crypto/sha/sha512-sparcv9.o" => [ "crypto" ], + "crypto/sm3/sm3-armv8.o" => [ + "crypto" + ], + "crypto/sm4/sm4-armv8.o" => [ + "crypto" + ], + "crypto/sm4/vpsm4-armv8.o" => [ + "crypto" + ], + "crypto/sm4/vpsm4_ex-armv8.o" => [ + "crypto" + ], "doc/man1/openssl-asn1parse.pod" => [ "doc" ], @@ -18010,6 +20765,9 @@ our %unified_info = ( "doc/man1/openssl-sess_id.pod" => [ "doc" ], + "doc/man1/openssl-skeyutl.pod" => [ + "doc" + ], "doc/man1/openssl-smime.pod" => [ "doc" ], @@ -18037,6 +20795,24 @@ our %unified_info = ( "doc/man1/openssl-x509.pod" => [ "doc" ], + "exporters/OpenSSLConfig.cmake" => [ + "." + ], + "exporters/OpenSSLConfigVersion.cmake" => [ + "." + ], + "exporters/libcrypto.pc" => [ + "." + ], + "exporters/libssl.pc" => [ + "." + ], + "exporters/openssl.pc" => [ + "." + ], + "fuzz/acert-test" => [ + "include" + ], "fuzz/asn1-test" => [ "include" ], @@ -18067,12 +20843,69 @@ our %unified_info = ( "fuzz/ct-test" => [ "include" ], + "fuzz/decoder-test" => [ + "include" + ], + "fuzz/dtlsclient-test" => [ + "include" + ], + "fuzz/dtlsserver-test" => [ + "include" + ], + "fuzz/hashtable-test" => [ + "include" + ], + "fuzz/ml-dsa-test" => [ + "include" + ], + "fuzz/ml-kem-test" => [ + "include" + ], + "fuzz/pem-test" => [ + "include" + ], + "fuzz/provider-test" => [ + "include" + ], + "fuzz/punycode-test" => [ + "include" + ], + "fuzz/quic-client-test" => [ + "include" + ], + "fuzz/quic-lcidm-test" => [ + "include" + ], + "fuzz/quic-rcidm-test" => [ + "include" + ], + "fuzz/quic-server-test" => [ + "include" + ], + "fuzz/quic-srtm-test" => [ + "include" + ], "fuzz/server-test" => [ "include" ], + "fuzz/slh-dsa-test" => [ + "include" + ], + "fuzz/smime-test" => [ + "include" + ], + "fuzz/v3name-test" => [ + "include" + ], "fuzz/x509-test" => [ "include" ], + "include/internal/param_names.h" => [ + "util/perl" + ], + "include/openssl/core_names.h" => [ + "util/perl" + ], "libcrypto" => [ ".", "include", @@ -18083,6 +20916,9 @@ our %unified_info = ( ".", "util/perl/OpenSSL" ], + "libcrypto.pc" => [ + "." + ], "libcrypto.rc" => [ "." ], @@ -18094,9 +20930,15 @@ our %unified_info = ( ".", "util/perl/OpenSSL" ], + "libssl.pc" => [ + "." + ], "libssl.rc" => [ "." ], + "openssl.pc" => [ + "." + ], "providers/common/der/der_digests_gen.c" => [ "providers/common/der" ], @@ -18136,6 +20978,15 @@ our %unified_info = ( "providers/common/der/der_ecx_key.o" => [ "providers/common/include/prov" ], + "providers/common/der/der_ml_dsa_gen.c" => [ + "providers/common/der" + ], + "providers/common/der/der_ml_dsa_gen.o" => [ + "providers/common/include/prov" + ], + "providers/common/der/der_ml_dsa_key.o" => [ + "providers/common/include/prov" + ], "providers/common/der/der_rsa_gen.c" => [ "providers/common/der" ], @@ -18148,6 +20999,15 @@ our %unified_info = ( "providers/common/der/der_rsa_sig.o" => [ "providers/common/include/prov" ], + "providers/common/der/der_slh_dsa_gen.c" => [ + "providers/common/der" + ], + "providers/common/der/der_slh_dsa_gen.o" => [ + "providers/common/include/prov" + ], + "providers/common/der/der_slh_dsa_key.o" => [ + "providers/common/include/prov" + ], "providers/common/der/der_sm2_gen.c" => [ "providers/common/der" ], @@ -18193,12 +21053,24 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ecx_key.o" => [ "providers/common/include/prov" ], + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o" => [ + "providers/common/include/prov" + ], + "providers/common/der/libcommon-lib-der_ml_dsa_key.o" => [ + "providers/common/include/prov" + ], "providers/common/der/libcommon-lib-der_rsa_gen.o" => [ "providers/common/include/prov" ], "providers/common/der/libcommon-lib-der_rsa_key.o" => [ "providers/common/include/prov" ], + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o" => [ + "providers/common/include/prov" + ], + "providers/common/der/libcommon-lib-der_slh_dsa_key.o" => [ + "providers/common/include/prov" + ], "providers/common/der/libcommon-lib-der_wrap_gen.o" => [ "providers/common/include/prov" ], @@ -18229,9 +21101,15 @@ our %unified_info = ( "providers/common/include/prov/der_ecx.h" => [ "providers/common/der" ], + "providers/common/include/prov/der_ml_dsa.h" => [ + "providers/common/der" + ], "providers/common/include/prov/der_rsa.h" => [ "providers/common/der" ], + "providers/common/include/prov/der_slh_dsa.h" => [ + "providers/common/der" + ], "providers/common/include/prov/der_sm2.h" => [ "providers/common/der" ], @@ -18274,9 +21152,15 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-eddsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/libdefault-lib-rsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/libdefault-lib-sm2_sig.o" => [ "providers/common/include/prov" ], @@ -18289,12 +21173,24 @@ our %unified_info = ( "providers/implementations/signature/libfips-lib-eddsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/libfips-lib-rsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o" => [ + "providers/common/include/prov" + ], + "providers/implementations/signature/ml_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/rsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/slh_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/sm2_sig.o" => [ "providers/common/include/prov" ], @@ -18307,28 +21203,39 @@ our %unified_info = ( "crypto", "include", "providers/implementations/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" ], "providers/libdefault.a" => [ ".", "crypto", "include", "providers/implementations/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" ], "providers/libfips.a" => [ ".", "crypto", "include", "providers/implementations/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" ], "providers/liblegacy.a" => [ ".", "crypto", "include", "providers/implementations/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" + ], + "providers/libtemplate.a" => [ + "crypto", + "include", + "providers/implementations/include", + "providers/common/include", + "providers/fips/include" ], "test/aborttest" => [ "include", @@ -18397,6 +21304,14 @@ our %unified_info = ( "include", "apps/include" ], + "test/bio_addr_test" => [ + "include", + "apps/include" + ], + "test/bio_base64_test" => [ + "include", + "apps/include" + ], "test/bio_callback_test" => [ "include", "apps/include" @@ -18405,11 +21320,20 @@ our %unified_info = ( "include", "apps/include" ], + "test/bio_dgram_test" => [ + "include", + "apps/include", + "." + ], "test/bio_enc_test" => [ "include", "apps/include" ], - "test/bio_memleak_test" => [ + "test/bio_memleak_test" => [ + "include", + "apps/include" + ], + "test/bio_meth_test" => [ "include", "apps/include" ], @@ -18426,6 +21350,11 @@ our %unified_info = ( "include", "apps/include" ], + "test/bio_tfo_test" => [ + "include", + "apps/include", + "." + ], "test/bioprinttest" => [ "include", "apps/include" @@ -18440,6 +21369,9 @@ our %unified_info = ( "include", "apps/include" ], + "test/build_wincrypt_test" => [ + "include" + ], "test/buildtest_c_aes" => [ "include" ], @@ -18455,6 +21387,9 @@ our %unified_info = ( "test/buildtest_c_buffer" => [ "include" ], + "test/buildtest_c_byteorder" => [ + "include" + ], "test/buildtest_c_camellia" => [ "include" ], @@ -18479,9 +21414,6 @@ our %unified_info = ( "test/buildtest_c_core_dispatch" => [ "include" ], - "test/buildtest_c_core_names" => [ - "include" - ], "test/buildtest_c_core_object" => [ "include" ], @@ -18506,6 +21438,9 @@ our %unified_info = ( "test/buildtest_c_e_os2" => [ "include" ], + "test/buildtest_c_e_ostime" => [ + "include" + ], "test/buildtest_c_ebcdic" => [ "include" ], @@ -18533,12 +21468,18 @@ our %unified_info = ( "test/buildtest_c_hmac" => [ "include" ], + "test/buildtest_c_hpke" => [ + "include" + ], "test/buildtest_c_http" => [ "include" ], "test/buildtest_c_idea" => [ "include" ], + "test/buildtest_c_indicator" => [ + "include" + ], "test/buildtest_c_kdf" => [ "include" ], @@ -18554,6 +21495,9 @@ our %unified_info = ( "test/buildtest_c_mdc2" => [ "include" ], + "test/buildtest_c_ml_kem" => [ + "include" + ], "test/buildtest_c_modes" => [ "include" ], @@ -18584,6 +21528,9 @@ our %unified_info = ( "test/buildtest_c_provider" => [ "include" ], + "test/buildtest_c_quic" => [ + "include" + ], "test/buildtest_c_rand" => [ "include" ], @@ -18626,6 +21573,9 @@ our %unified_info = ( "test/buildtest_c_symhacks" => [ "include" ], + "test/buildtest_c_thread" => [ + "include" + ], "test/buildtest_c_tls1" => [ "include" ], @@ -18641,10 +21591,24 @@ our %unified_info = ( "test/buildtest_c_whrlpool" => [ "include" ], + "test/byteorder_test" => [ + "include", + "apps/include" + ], + "test/ca_internals_test" => [ + ".", + "include", + "apps/include" + ], "test/casttest" => [ "include", "apps/include" ], + "test/cert_comp_test" => [ + "include", + "apps/include", + "." + ], "test/chacha_internal_test" => [ ".", "include", @@ -18768,6 +21732,11 @@ our %unified_info = ( "include", "apps/include" ], + "test/decoder_propq_test" => [ + ".", + "include", + "apps/include" + ], "test/defltfips_test" => [ "include", "apps/include" @@ -18783,7 +21752,8 @@ our %unified_info = ( "test/drbgtest" => [ "include", "apps/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" ], "test/dsa_no_digest_size_test" => [ "include", @@ -18826,7 +21796,9 @@ our %unified_info = ( "test/endecode_test" => [ ".", "include", - "apps/include" + "apps/include", + "providers/common/include", + "providers/implementations/include" ], "test/endecoder_legacy_test" => [ ".", @@ -18871,6 +21843,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/evp_pkey_dhkem_test" => [ + "include", + "apps/include" + ], "test/evp_pkey_dparams_test" => [ "include", "apps/include" @@ -18879,10 +21855,18 @@ our %unified_info = ( "include", "apps/include" ], + "test/evp_skey_test" => [ + "include", + "apps/include" + ], "test/evp_test" => [ "include", "apps/include" ], + "test/evp_xof_test" => [ + "include", + "apps/include" + ], "test/exdatatest" => [ "include", "apps/include" @@ -18983,22 +21967,62 @@ our %unified_info = ( ".", "include" ], + "test/helpers/json_test-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/helpers/pkcs12.o" => [ ".", "include" ], + "test/helpers/pkcs12_api_test-bin-pkcs12.o" => [ + ".", + "include" + ], "test/helpers/pkcs12_format_test-bin-pkcs12.o" => [ ".", "include" ], + "test/helpers/quic_multistream_test-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quic_newcid_test-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quic_radix_test-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quic_srt_gen_test-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quicapitest-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quicfaultstest-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/helpers/recordlentest-bin-ssltestlib.o" => [ ".", "include" ], + "test/helpers/rpktest-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/helpers/servername_test-bin-ssltestlib.o" => [ ".", "include" ], + "test/helpers/ssl_handshake_rtt_test-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/helpers/ssl_test-bin-handshake.o" => [ ".", "include" @@ -19032,6 +22056,10 @@ our %unified_info = ( ".", "include" ], + "test/helpers/tls13groupselection_test-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/hexstr_test" => [ ".", "include", @@ -19041,6 +22069,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/hpke_test" => [ + "include", + "apps/include" + ], "test/http_test" => [ "include", "apps/include" @@ -19053,6 +22085,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/json_test" => [ + "include", + "apps/include" + ], "test/keymgmt_internal_test" => [ ".", "include", @@ -19067,6 +22103,10 @@ our %unified_info = ( "apps/include", "." ], + "test/list_test" => [ + "include", + "apps/include" + ], "test/localetest" => [ "include", "apps/include" @@ -19080,10 +22120,27 @@ our %unified_info = ( "include", "apps/include" ], + "test/membio_test" => [ + "include", + "apps/include", + "." + ], "test/memleaktest" => [ "include", "apps/include" ], + "test/ml_dsa_test" => [ + "include", + "apps/include" + ], + "test/ml_kem_evp_extra_test" => [ + "include", + "apps/include" + ], + "test/ml_kem_internal_test" => [ + "include", + "apps/include" + ], "test/modes_internal_test" => [ ".", "include", @@ -19118,6 +22175,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/pairwise_fail_test" => [ + "include", + "apps/include" + ], "test/param_build_test" => [ "include", "apps/include" @@ -19151,6 +22212,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/pkcs12_api_test" => [ + "include", + "apps/include" + ], "test/pkcs12_format_test" => [ "include", "apps/include" @@ -19172,6 +22237,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/priority_queue_test" => [ + "include", + "apps/include" + ], "test/property_test" => [ ".", "include", @@ -19185,6 +22254,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/provider_default_search_path_test" => [ + "include", + "apps/include" + ], "test/provider_fallback_test" => [ "include", "apps/include" @@ -19211,6 +22284,97 @@ our %unified_info = ( "include", "apps/include" ], + "test/quic_ackm_test" => [ + "include", + "apps/include" + ], + "test/quic_cc_test" => [ + "include", + "apps/include" + ], + "test/quic_cfq_test" => [ + "include", + "apps/include" + ], + "test/quic_client_test" => [ + "include", + "apps/include" + ], + "test/quic_fc_test" => [ + "include", + "apps/include" + ], + "test/quic_fifd_test" => [ + "include", + "apps/include" + ], + "test/quic_lcidm_test" => [ + "include", + "apps/include" + ], + "test/quic_multistream_test" => [ + "include", + "apps/include" + ], + "test/quic_newcid_test" => [ + "include", + "apps/include", + "." + ], + "test/quic_qlog_test" => [ + "include", + "apps/include" + ], + "test/quic_radix_test" => [ + "include", + "apps/include" + ], + "test/quic_rcidm_test" => [ + "include", + "apps/include" + ], + "test/quic_record_test" => [ + "include", + "apps/include" + ], + "test/quic_srt_gen_test" => [ + "include", + "apps/include", + "." + ], + "test/quic_srtm_test" => [ + "include", + "apps/include" + ], + "test/quic_stream_test" => [ + "include", + "apps/include" + ], + "test/quic_tserver_test" => [ + "include", + "apps/include" + ], + "test/quic_txp_test" => [ + "include", + "apps/include" + ], + "test/quic_txpim_test" => [ + "include", + "apps/include" + ], + "test/quic_wire_test" => [ + "include", + "apps/include" + ], + "test/quicapitest" => [ + "include", + "apps/include" + ], + "test/quicfaultstest" => [ + "include", + "apps/include", + "." + ], "test/rand_status_test" => [ "include", "apps/include" @@ -19231,14 +22395,20 @@ our %unified_info = ( "include", "apps/include" ], - "test/rdrand_sanitytest" => [ + "test/rdcpu_sanitytest" => [ "include", - "apps/include" + "apps/include", + "crypto" ], "test/recordlentest" => [ "include", "apps/include" ], + "test/rpktest" => [ + "include", + "apps/include", + "." + ], "test/rsa_complex" => [ "include", "apps/include" @@ -19257,6 +22427,15 @@ our %unified_info = ( "include", "apps/include" ], + "test/rsa_x931_test" => [ + ".", + "include", + "apps/include" + ], + "test/safe_math_test" => [ + "include", + "apps/include" + ], "test/sanitytest" => [ "include", "apps/include" @@ -19278,6 +22457,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/slh_dsa_test" => [ + "include", + "apps/include" + ], "test/sm2_internal_test" => [ "include", "apps/include" @@ -19308,6 +22491,11 @@ our %unified_info = ( "include", "apps/include" ], + "test/ssl_handshake_rtt_test" => [ + "include", + "apps/include", + "." + ], "test/ssl_old_test" => [ ".", "include", @@ -19324,6 +22512,7 @@ our %unified_info = ( "test/sslapitest" => [ "include", "apps/include", + "providers/common/include", "." ], "test/sslbuffertest" => [ @@ -19338,6 +22527,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/strtoultest" => [ + "include", + "apps/include" + ], "test/sysdefaulttest" => [ "include", "apps/include" @@ -19346,7 +22539,13 @@ our %unified_info = ( "include", "apps/include" ], + "test/threadpool_test" => [ + ".", + "include", + "apps/include" + ], "test/threadstest" => [ + ".", "include", "apps/include" ], @@ -19358,6 +22557,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/time_test" => [ + "include", + "apps/include" + ], "test/tls13ccstest" => [ "include", "apps/include" @@ -19367,6 +22570,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/tls13groupselection_test" => [ + "include", + "apps/include" + ], "test/trace_api_test" => [ ".", "include", @@ -19405,6 +22612,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/x509_acert_test" => [ + "include", + "apps/include" + ], "test/x509_check_cert_pkey_test" => [ "include", "apps/include" @@ -19418,6 +22629,18 @@ our %unified_info = ( "include", "apps/include" ], + "test/x509_load_cert_file_test" => [ + "include", + "apps/include" + ], + "test/x509_req_test" => [ + "include", + "apps/include" + ], + "test/x509_test" => [ + "include", + "apps/include" + ], "test/x509_time_test" => [ "include", "apps/include" @@ -19439,6 +22662,7 @@ our %unified_info = ( "providers/libdefault.a", "providers/libfips.a", "providers/liblegacy.a", + "providers/libtemplate.a", "test/libtestutil.a" ], "mandocs" => { @@ -19491,6 +22715,7 @@ our %unified_info = ( "doc/man/man1/openssl-s_server.1", "doc/man/man1/openssl-s_time.1", "doc/man/man1/openssl-sess_id.1", + "doc/man/man1/openssl-skeyutl.1", "doc/man/man1/openssl-smime.1", "doc/man/man1/openssl-speed.1", "doc/man/man1/openssl-spkac.1", @@ -19540,6 +22765,7 @@ our %unified_info = ( "doc/man/man3/BIO_find_type.3", "doc/man/man3/BIO_get_data.3", "doc/man/man3/BIO_get_ex_new_index.3", + "doc/man/man3/BIO_get_rpoll_descriptor.3", "doc/man/man3/BIO_meth_new.3", "doc/man/man3/BIO_new.3", "doc/man/man3/BIO_new_CMS.3", @@ -19552,11 +22778,13 @@ our %unified_info = ( "doc/man/man3/BIO_s_connect.3", "doc/man/man3/BIO_s_core.3", "doc/man/man3/BIO_s_datagram.3", + "doc/man/man3/BIO_s_dgram_pair.3", "doc/man/man3/BIO_s_fd.3", "doc/man/man3/BIO_s_file.3", "doc/man/man3/BIO_s_mem.3", "doc/man/man3/BIO_s_null.3", "doc/man/man3/BIO_s_socket.3", + "doc/man/man3/BIO_sendmmsg.3", "doc/man/man3/BIO_set_callback.3", "doc/man/man3/BIO_should_retry.3", "doc/man/man3/BIO_socket_wait.3", @@ -19581,6 +22809,7 @@ our %unified_info = ( "doc/man/man3/BN_swap.3", "doc/man/man3/BN_zero.3", "doc/man/man3/BUF_MEM_new.3", + "doc/man/man3/CMAC_CTX.3", "doc/man/man3/CMS_EncryptedData_decrypt.3", "doc/man/man3/CMS_EncryptedData_encrypt.3", "doc/man/man3/CMS_EnvelopedData_create.3", @@ -19603,6 +22832,7 @@ our %unified_info = ( "doc/man/man3/CMS_uncompress.3", "doc/man/man3/CMS_verify.3", "doc/man/man3/CMS_verify_receipt.3", + "doc/man/man3/COMP_CTX_new.3", "doc/man/man3/CONF_modules_free.3", "doc/man/man3/CONF_modules_load_file.3", "doc/man/man3/CRYPTO_THREAD_run_once.3", @@ -19636,6 +22866,8 @@ our %unified_info = ( "doc/man/man3/DSA_size.3", "doc/man/man3/DTLS_get_data_mtu.3", "doc/man/man3/DTLS_set_timer_cb.3", + "doc/man/man3/DTLSv1_get_timeout.3", + "doc/man/man3/DTLSv1_handle_timeout.3", "doc/man/man3/DTLSv1_listen.3", "doc/man/man3/ECDSA_SIG_new.3", "doc/man/man3/ECDSA_sign.3", @@ -19682,6 +22914,7 @@ our %unified_info = ( "doc/man/man3/EVP_PKEY_CTX_ctrl.3", "doc/man/man3/EVP_PKEY_CTX_get0_libctx.3", "doc/man/man3/EVP_PKEY_CTX_get0_pkey.3", + "doc/man/man3/EVP_PKEY_CTX_get_algor.3", "doc/man/man3/EVP_PKEY_CTX_new.3", "doc/man/man3/EVP_PKEY_CTX_set1_pbe_pass.3", "doc/man/man3/EVP_PKEY_CTX_set_hkdf_md.3", @@ -19721,6 +22954,8 @@ our %unified_info = ( "doc/man/man3/EVP_PKEY_verify_recover.3", "doc/man/man3/EVP_RAND.3", "doc/man/man3/EVP_SIGNATURE.3", + "doc/man/man3/EVP_SKEY.3", + "doc/man/man3/EVP_SKEYMGMT.3", "doc/man/man3/EVP_SealInit.3", "doc/man/man3/EVP_SignInit.3", "doc/man/man3/EVP_VerifyInit.3", @@ -19750,6 +22985,7 @@ our %unified_info = ( "doc/man/man3/EVP_sm3.3", "doc/man/man3/EVP_sm4_cbc.3", "doc/man/man3/EVP_whirlpool.3", + "doc/man/man3/GENERAL_NAME.3", "doc/man/man3/HMAC.3", "doc/man/man3/MD5.3", "doc/man/man3/MDC2_Init.3", @@ -19774,14 +23010,18 @@ our %unified_info = ( "doc/man/man3/OPENSSL_init_ssl.3", "doc/man/man3/OPENSSL_instrument_bus.3", "doc/man/man3/OPENSSL_load_builtin_modules.3", + "doc/man/man3/OPENSSL_load_u16_le.3", "doc/man/man3/OPENSSL_malloc.3", + "doc/man/man3/OPENSSL_riscvcap.3", "doc/man/man3/OPENSSL_s390xcap.3", "doc/man/man3/OPENSSL_secure_malloc.3", "doc/man/man3/OPENSSL_strcasecmp.3", "doc/man/man3/OSSL_ALGORITHM.3", "doc/man/man3/OSSL_CALLBACK.3", + "doc/man/man3/OSSL_CMP_ATAV_set0.3", "doc/man/man3/OSSL_CMP_CTX_new.3", "doc/man/man3/OSSL_CMP_HDR_get0_transactionID.3", + "doc/man/man3/OSSL_CMP_ITAV_new_caCerts.3", "doc/man/man3/OSSL_CMP_ITAV_set0.3", "doc/man/man3/OSSL_CMP_MSG_get0_header.3", "doc/man/man3/OSSL_CMP_MSG_http_perform.3", @@ -19805,18 +23045,27 @@ our %unified_info = ( "doc/man/man3/OSSL_ENCODER_CTX.3", "doc/man/man3/OSSL_ENCODER_CTX_new_for_pkey.3", "doc/man/man3/OSSL_ENCODER_to_bio.3", + "doc/man/man3/OSSL_ERR_STATE_save.3", "doc/man/man3/OSSL_ESS_check_signing_certs.3", + "doc/man/man3/OSSL_GENERAL_NAMES_print.3", + "doc/man/man3/OSSL_HPKE_CTX_new.3", "doc/man/man3/OSSL_HTTP_REQ_CTX.3", "doc/man/man3/OSSL_HTTP_parse_url.3", "doc/man/man3/OSSL_HTTP_transfer.3", + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX.3", + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX_print.3", + "doc/man/man3/OSSL_INDICATOR_set_callback.3", "doc/man/man3/OSSL_ITEM.3", "doc/man/man3/OSSL_LIB_CTX.3", + "doc/man/man3/OSSL_LIB_CTX_set_conf_diagnostics.3", "doc/man/man3/OSSL_PARAM.3", "doc/man/man3/OSSL_PARAM_BLD.3", "doc/man/man3/OSSL_PARAM_allocate_from_text.3", "doc/man/man3/OSSL_PARAM_dup.3", "doc/man/man3/OSSL_PARAM_int.3", + "doc/man/man3/OSSL_PARAM_print_to_bio.3", "doc/man/man3/OSSL_PROVIDER.3", + "doc/man/man3/OSSL_QUIC_client_method.3", "doc/man/man3/OSSL_SELF_TEST_new.3", "doc/man/man3/OSSL_SELF_TEST_set_callback.3", "doc/man/man3/OSSL_STORE_INFO.3", @@ -19825,11 +23074,13 @@ our %unified_info = ( "doc/man/man3/OSSL_STORE_attach.3", "doc/man/man3/OSSL_STORE_expect.3", "doc/man/man3/OSSL_STORE_open.3", + "doc/man/man3/OSSL_sleep.3", "doc/man/man3/OSSL_trace_enabled.3", "doc/man/man3/OSSL_trace_get_category_num.3", "doc/man/man3/OSSL_trace_set_channel.3", "doc/man/man3/OpenSSL_add_all_algorithms.3", "doc/man/man3/OpenSSL_version.3", + "doc/man/man3/PBMAC1_get1_pbkdf2_param.3", "doc/man/man3/PEM_X509_INFO_read_bio_ex.3", "doc/man/man3/PEM_bytes_read_bio.3", "doc/man/man3/PEM_read.3", @@ -19842,6 +23093,7 @@ our %unified_info = ( "doc/man/man3/PKCS12_SAFEBAG_create_cert.3", "doc/man/man3/PKCS12_SAFEBAG_get0_attrs.3", "doc/man/man3/PKCS12_SAFEBAG_get1_cert.3", + "doc/man/man3/PKCS12_SAFEBAG_set0_attrs.3", "doc/man/man3/PKCS12_add1_attr_by_NID.3", "doc/man/man3/PKCS12_add_CSPName_asc.3", "doc/man/man3/PKCS12_add_cert.3", @@ -19933,6 +23185,7 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_sess_set_get_cb.3", "doc/man/man3/SSL_CTX_sessions.3", "doc/man/man3/SSL_CTX_set0_CA_list.3", + "doc/man/man3/SSL_CTX_set1_cert_comp_preference.3", "doc/man/man3/SSL_CTX_set1_curves.3", "doc/man/man3/SSL_CTX_set1_sigalgs.3", "doc/man/man3/SSL_CTX_set1_verify_cert_store.3", @@ -19946,6 +23199,7 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_ct_validation_callback.3", "doc/man/man3/SSL_CTX_set_ctlog_list_file.3", "doc/man/man3/SSL_CTX_set_default_passwd_cb.3", + "doc/man/man3/SSL_CTX_set_domain_flags.3", "doc/man/man3/SSL_CTX_set_generate_session_id.3", "doc/man/man3/SSL_CTX_set_info_callback.3", "doc/man/man3/SSL_CTX_set_keylog_callback.3", @@ -19953,6 +23207,7 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_min_proto_version.3", "doc/man/man3/SSL_CTX_set_mode.3", "doc/man/man3/SSL_CTX_set_msg_callback.3", + "doc/man/man3/SSL_CTX_set_new_pending_conn_cb.3", "doc/man/man3/SSL_CTX_set_num_tickets.3", "doc/man/man3/SSL_CTX_set_options.3", "doc/man/man3/SSL_CTX_set_psk_client_callback.3", @@ -19991,6 +23246,7 @@ our %unified_info = ( "doc/man/man3/SSL_SESSION_print.3", "doc/man/man3/SSL_SESSION_set1_id.3", "doc/man/man3/SSL_accept.3", + "doc/man/man3/SSL_accept_stream.3", "doc/man/man3/SSL_alert_type_string.3", "doc/man/man3/SSL_alloc_buffers.3", "doc/man/man3/SSL_check_chain.3", @@ -20000,59 +23256,90 @@ our %unified_info = ( "doc/man/man3/SSL_export_keying_material.3", "doc/man/man3/SSL_extension_supported.3", "doc/man/man3/SSL_free.3", + "doc/man/man3/SSL_get0_connection.3", + "doc/man/man3/SSL_get0_group_name.3", + "doc/man/man3/SSL_get0_peer_rpk.3", "doc/man/man3/SSL_get0_peer_scts.3", + "doc/man/man3/SSL_get1_builtin_sigalgs.3", "doc/man/man3/SSL_get_SSL_CTX.3", "doc/man/man3/SSL_get_all_async_fds.3", "doc/man/man3/SSL_get_certificate.3", "doc/man/man3/SSL_get_ciphers.3", "doc/man/man3/SSL_get_client_random.3", + "doc/man/man3/SSL_get_conn_close_info.3", "doc/man/man3/SSL_get_current_cipher.3", "doc/man/man3/SSL_get_default_timeout.3", "doc/man/man3/SSL_get_error.3", + "doc/man/man3/SSL_get_event_timeout.3", "doc/man/man3/SSL_get_extms_support.3", "doc/man/man3/SSL_get_fd.3", + "doc/man/man3/SSL_get_handshake_rtt.3", "doc/man/man3/SSL_get_peer_cert_chain.3", "doc/man/man3/SSL_get_peer_certificate.3", "doc/man/man3/SSL_get_peer_signature_nid.3", "doc/man/man3/SSL_get_peer_tmp_key.3", "doc/man/man3/SSL_get_psk_identity.3", "doc/man/man3/SSL_get_rbio.3", + "doc/man/man3/SSL_get_rpoll_descriptor.3", "doc/man/man3/SSL_get_session.3", "doc/man/man3/SSL_get_shared_sigalgs.3", + "doc/man/man3/SSL_get_stream_id.3", + "doc/man/man3/SSL_get_stream_read_state.3", + "doc/man/man3/SSL_get_value_uint.3", "doc/man/man3/SSL_get_verify_result.3", "doc/man/man3/SSL_get_version.3", "doc/man/man3/SSL_group_to_name.3", + "doc/man/man3/SSL_handle_events.3", "doc/man/man3/SSL_in_init.3", + "doc/man/man3/SSL_inject_net_dgram.3", "doc/man/man3/SSL_key_update.3", "doc/man/man3/SSL_library_init.3", "doc/man/man3/SSL_load_client_CA_file.3", "doc/man/man3/SSL_new.3", + "doc/man/man3/SSL_new_domain.3", + "doc/man/man3/SSL_new_listener.3", + "doc/man/man3/SSL_new_stream.3", "doc/man/man3/SSL_pending.3", + "doc/man/man3/SSL_poll.3", "doc/man/man3/SSL_read.3", "doc/man/man3/SSL_read_early_data.3", "doc/man/man3/SSL_rstate_string.3", "doc/man/man3/SSL_session_reused.3", "doc/man/man3/SSL_set1_host.3", + "doc/man/man3/SSL_set1_initial_peer_addr.3", + "doc/man/man3/SSL_set1_server_cert_type.3", "doc/man/man3/SSL_set_async_callback.3", "doc/man/man3/SSL_set_bio.3", + "doc/man/man3/SSL_set_blocking_mode.3", "doc/man/man3/SSL_set_connect_state.3", + "doc/man/man3/SSL_set_default_stream_mode.3", "doc/man/man3/SSL_set_fd.3", + "doc/man/man3/SSL_set_incoming_stream_policy.3", + "doc/man/man3/SSL_set_quic_tls_cbs.3", "doc/man/man3/SSL_set_retry_verify.3", "doc/man/man3/SSL_set_session.3", + "doc/man/man3/SSL_set_session_secret_cb.3", "doc/man/man3/SSL_set_shutdown.3", "doc/man/man3/SSL_set_verify_result.3", "doc/man/man3/SSL_shutdown.3", "doc/man/man3/SSL_state_string.3", + "doc/man/man3/SSL_stream_conclude.3", + "doc/man/man3/SSL_stream_reset.3", "doc/man/man3/SSL_want.3", "doc/man/man3/SSL_write.3", "doc/man/man3/TS_RESP_CTX_new.3", - "doc/man/man3/TS_VERIFY_CTX_set_certs.3", + "doc/man/man3/TS_VERIFY_CTX.3", "doc/man/man3/UI_STRING.3", "doc/man/man3/UI_UTIL_read_pw.3", "doc/man/man3/UI_create_method.3", "doc/man/man3/UI_new.3", "doc/man/man3/X509V3_get_d2i.3", "doc/man/man3/X509V3_set_ctx.3", + "doc/man/man3/X509_ACERT_add1_attr.3", + "doc/man/man3/X509_ACERT_add_attr_nconf.3", + "doc/man/man3/X509_ACERT_get0_holder_baseCertId.3", + "doc/man/man3/X509_ACERT_get_attr.3", + "doc/man/man3/X509_ACERT_print_ex.3", "doc/man/man3/X509_ALGOR_dup.3", "doc/man/man3/X509_ATTRIBUTE.3", "doc/man/man3/X509_CRL_get0_by_serial.3", @@ -20069,6 +23356,7 @@ our %unified_info = ( "doc/man/man3/X509_REQ_get_attr.3", "doc/man/man3/X509_REQ_get_extensions.3", "doc/man/man3/X509_SIG_get0.3", + "doc/man/man3/X509_STORE_CTX_get_by_subject.3", "doc/man/man3/X509_STORE_CTX_get_error.3", "doc/man/man3/X509_STORE_CTX_new.3", "doc/man/man3/X509_STORE_CTX_set_verify_cb.3", @@ -20091,6 +23379,7 @@ our %unified_info = ( "doc/man/man3/X509_get0_notBefore.3", "doc/man/man3/X509_get0_signature.3", "doc/man/man3/X509_get0_uids.3", + "doc/man/man3/X509_get_default_cert_file.3", "doc/man/man3/X509_get_extension_flags.3", "doc/man/man3/X509_get_pubkey.3", "doc/man/man3/X509_get_serialNumber.3", @@ -20136,12 +23425,15 @@ our %unified_info = ( "doc/man/man7/EVP_CIPHER-RC5.7", "doc/man/man7/EVP_CIPHER-SEED.7", "doc/man/man7/EVP_CIPHER-SM4.7", + "doc/man/man7/EVP_KDF-ARGON2.7", "doc/man/man7/EVP_KDF-HKDF.7", + "doc/man/man7/EVP_KDF-HMAC-DRBG.7", "doc/man/man7/EVP_KDF-KB.7", "doc/man/man7/EVP_KDF-KRB5KDF.7", "doc/man/man7/EVP_KDF-PBKDF1.7", "doc/man/man7/EVP_KDF-PBKDF2.7", "doc/man/man7/EVP_KDF-PKCS12KDF.7", + "doc/man/man7/EVP_KDF-PVKKDF.7", "doc/man/man7/EVP_KDF-SCRYPT.7", "doc/man/man7/EVP_KDF-SS.7", "doc/man/man7/EVP_KDF-SSHKDF.7", @@ -20150,7 +23442,10 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-X942-ASN1.7", "doc/man/man7/EVP_KDF-X942-CONCAT.7", "doc/man/man7/EVP_KDF-X963.7", + "doc/man/man7/EVP_KEM-EC.7", + "doc/man/man7/EVP_KEM-ML-KEM.7", "doc/man/man7/EVP_KEM-RSA.7", + "doc/man/man7/EVP_KEM-X25519.7", "doc/man/man7/EVP_KEYEXCH-DH.7", "doc/man/man7/EVP_KEYEXCH-ECDH.7", "doc/man/man7/EVP_KEYEXCH-X25519.7", @@ -20162,6 +23457,7 @@ our %unified_info = ( "doc/man/man7/EVP_MAC-Poly1305.7", "doc/man/man7/EVP_MAC-Siphash.7", "doc/man/man7/EVP_MD-BLAKE2.7", + "doc/man/man7/EVP_MD-KECCAK.7", "doc/man/man7/EVP_MD-MD2.7", "doc/man/man7/EVP_MD-MD4.7", "doc/man/man7/EVP_MD-MD5-SHA1.7", @@ -20181,12 +23477,17 @@ our %unified_info = ( "doc/man/man7/EVP_PKEY-EC.7", "doc/man/man7/EVP_PKEY-FFC.7", "doc/man/man7/EVP_PKEY-HMAC.7", + "doc/man/man7/EVP_PKEY-ML-DSA.7", + "doc/man/man7/EVP_PKEY-ML-KEM.7", "doc/man/man7/EVP_PKEY-RSA.7", + "doc/man/man7/EVP_PKEY-SLH-DSA.7", "doc/man/man7/EVP_PKEY-SM2.7", "doc/man/man7/EVP_PKEY-X25519.7", + "doc/man/man7/EVP_RAND-CRNG-TEST.7", "doc/man/man7/EVP_RAND-CTR-DRBG.7", "doc/man/man7/EVP_RAND-HASH-DRBG.7", "doc/man/man7/EVP_RAND-HMAC-DRBG.7", + "doc/man/man7/EVP_RAND-JITTER.7", "doc/man/man7/EVP_RAND-SEED-SRC.7", "doc/man/man7/EVP_RAND-TEST-RAND.7", "doc/man/man7/EVP_RAND.7", @@ -20194,17 +23495,19 @@ our %unified_info = ( "doc/man/man7/EVP_SIGNATURE-ECDSA.7", "doc/man/man7/EVP_SIGNATURE-ED25519.7", "doc/man/man7/EVP_SIGNATURE-HMAC.7", + "doc/man/man7/EVP_SIGNATURE-ML-DSA.7", "doc/man/man7/EVP_SIGNATURE-RSA.7", + "doc/man/man7/EVP_SIGNATURE-SLH-DSA.7", "doc/man/man7/OSSL_PROVIDER-FIPS.7", "doc/man/man7/OSSL_PROVIDER-base.7", "doc/man/man7/OSSL_PROVIDER-default.7", "doc/man/man7/OSSL_PROVIDER-legacy.7", "doc/man/man7/OSSL_PROVIDER-null.7", + "doc/man/man7/OSSL_STORE-winstore.7", "doc/man/man7/RAND.7", "doc/man/man7/RSA-PSS.7", "doc/man/man7/X25519.7", "doc/man/man7/bio.7", - "doc/man/man7/crypto.7", "doc/man/man7/ct.7", "doc/man/man7/des_modes.7", "doc/man/man7/evp.7", @@ -20215,14 +23518,31 @@ our %unified_info = ( "doc/man/man7/life_cycle-mac.7", "doc/man/man7/life_cycle-pkey.7", "doc/man/man7/life_cycle-rand.7", - "doc/man/man7/migration_guide.7", "doc/man/man7/openssl-core.h.7", "doc/man/man7/openssl-core_dispatch.h.7", "doc/man/man7/openssl-core_names.h.7", "doc/man/man7/openssl-env.7", "doc/man/man7/openssl-glossary.7", + "doc/man/man7/openssl-qlog.7", + "doc/man/man7/openssl-quic-concurrency.7", + "doc/man/man7/openssl-quic.7", "doc/man/man7/openssl-threads.7", "doc/man/man7/openssl_user_macros.7", + "doc/man/man7/ossl-guide-introduction.7", + "doc/man/man7/ossl-guide-libcrypto-introduction.7", + "doc/man/man7/ossl-guide-libraries-introduction.7", + "doc/man/man7/ossl-guide-libssl-introduction.7", + "doc/man/man7/ossl-guide-migration.7", + "doc/man/man7/ossl-guide-quic-client-block.7", + "doc/man/man7/ossl-guide-quic-client-non-block.7", + "doc/man/man7/ossl-guide-quic-introduction.7", + "doc/man/man7/ossl-guide-quic-multi-stream.7", + "doc/man/man7/ossl-guide-quic-server-block.7", + "doc/man/man7/ossl-guide-quic-server-non-block.7", + "doc/man/man7/ossl-guide-tls-client-block.7", + "doc/man/man7/ossl-guide-tls-client-non-block.7", + "doc/man/man7/ossl-guide-tls-introduction.7", + "doc/man/man7/ossl-guide-tls-server-block.7", "doc/man/man7/ossl_store-file.7", "doc/man/man7/ossl_store.7", "doc/man/man7/passphrase-encoding.7", @@ -20241,10 +23561,10 @@ our %unified_info = ( "doc/man/man7/provider-object.7", "doc/man/man7/provider-rand.7", "doc/man/man7/provider-signature.7", + "doc/man/man7/provider-skeymgmt.7", "doc/man/man7/provider-storemgmt.7", "doc/man/man7/provider.7", "doc/man/man7/proxy-certificates.7", - "doc/man/man7/ssl.7", "doc/man/man7/x509.7" ] }, @@ -20256,6 +23576,7 @@ our %unified_info = ( ], "programs" => [ "apps/openssl", + "fuzz/acert-test", "fuzz/asn1-test", "fuzz/asn1parse-test", "fuzz/bignum-test", @@ -20266,7 +23587,24 @@ our %unified_info = ( "fuzz/conf-test", "fuzz/crl-test", "fuzz/ct-test", + "fuzz/decoder-test", + "fuzz/dtlsclient-test", + "fuzz/dtlsserver-test", + "fuzz/hashtable-test", + "fuzz/ml-dsa-test", + "fuzz/ml-kem-test", + "fuzz/pem-test", + "fuzz/provider-test", + "fuzz/punycode-test", + "fuzz/quic-client-test", + "fuzz/quic-lcidm-test", + "fuzz/quic-rcidm-test", + "fuzz/quic-server-test", + "fuzz/quic-srtm-test", "fuzz/server-test", + "fuzz/slh-dsa-test", + "fuzz/smime-test", + "fuzz/v3name-test", "fuzz/x509-test", "test/aborttest", "test/acvp_test", @@ -20284,21 +23622,28 @@ our %unified_info = ( "test/asynctest", "test/bad_dtls_test", "test/bftest", + "test/bio_addr_test", + "test/bio_base64_test", "test/bio_callback_test", "test/bio_core_test", + "test/bio_dgram_test", "test/bio_enc_test", "test/bio_memleak_test", + "test/bio_meth_test", "test/bio_prefix_text", "test/bio_pw_callback_test", "test/bio_readbuffer_test", + "test/bio_tfo_test", "test/bioprinttest", "test/bn_internal_test", "test/bntest", + "test/build_wincrypt_test", "test/buildtest_c_aes", "test/buildtest_c_async", "test/buildtest_c_blowfish", "test/buildtest_c_bn", "test/buildtest_c_buffer", + "test/buildtest_c_byteorder", "test/buildtest_c_camellia", "test/buildtest_c_cast", "test/buildtest_c_cmac", @@ -20307,7 +23652,6 @@ our %unified_info = ( "test/buildtest_c_conftypes", "test/buildtest_c_core", "test/buildtest_c_core_dispatch", - "test/buildtest_c_core_names", "test/buildtest_c_core_object", "test/buildtest_c_cryptoerr_legacy", "test/buildtest_c_decoder", @@ -20316,6 +23660,7 @@ our %unified_info = ( "test/buildtest_c_dsa", "test/buildtest_c_dtls1", "test/buildtest_c_e_os2", + "test/buildtest_c_e_ostime", "test/buildtest_c_ebcdic", "test/buildtest_c_ec", "test/buildtest_c_ecdh", @@ -20325,13 +23670,16 @@ our %unified_info = ( "test/buildtest_c_evp", "test/buildtest_c_fips_names", "test/buildtest_c_hmac", + "test/buildtest_c_hpke", "test/buildtest_c_http", "test/buildtest_c_idea", + "test/buildtest_c_indicator", "test/buildtest_c_kdf", "test/buildtest_c_macros", "test/buildtest_c_md4", "test/buildtest_c_md5", "test/buildtest_c_mdc2", + "test/buildtest_c_ml_kem", "test/buildtest_c_modes", "test/buildtest_c_obj_mac", "test/buildtest_c_objects", @@ -20342,6 +23690,7 @@ our %unified_info = ( "test/buildtest_c_pem2", "test/buildtest_c_prov_ssl", "test/buildtest_c_provider", + "test/buildtest_c_quic", "test/buildtest_c_rand", "test/buildtest_c_rc2", "test/buildtest_c_rc4", @@ -20356,11 +23705,14 @@ our %unified_info = ( "test/buildtest_c_stack", "test/buildtest_c_store", "test/buildtest_c_symhacks", + "test/buildtest_c_thread", "test/buildtest_c_tls1", "test/buildtest_c_ts", "test/buildtest_c_txt_db", "test/buildtest_c_types", "test/buildtest_c_whrlpool", + "test/byteorder_test", + "test/ca_internals_test", "test/casttest", "test/chacha_internal_test", "test/cipher_overhead_test", @@ -20389,6 +23741,7 @@ our %unified_info = ( "test/curve448_internal_test", "test/d2i_test", "test/danetest", + "test/decoder_propq_test", "test/defltfips_test", "test/destest", "test/dhtest", @@ -20413,9 +23766,12 @@ our %unified_info = ( "test/evp_kdf_test", "test/evp_libctx_test", "test/evp_pkey_ctx_new_from_name", + "test/evp_pkey_dhkem_test", "test/evp_pkey_dparams_test", "test/evp_pkey_provided_test", + "test/evp_skey_test", "test/evp_test", + "test/evp_xof_test", "test/exdatatest", "test/exptest", "test/ext_internal_test", @@ -20425,21 +23781,29 @@ our %unified_info = ( "test/gmdifftest", "test/hexstr_test", "test/hmactest", + "test/hpke_test", "test/http_test", "test/ideatest", "test/igetest", + "test/json_test", "test/keymgmt_internal_test", "test/lhash_test", + "test/list_test", "test/localetest", "test/mdc2_internal_test", "test/mdc2test", + "test/membio_test", "test/memleaktest", + "test/ml_dsa_test", + "test/ml_kem_evp_extra_test", + "test/ml_kem_internal_test", "test/modes_internal_test", "test/namemap_internal_test", "test/nodefltctxtest", "test/ocspapitest", "test/ossl_store_test", "test/packettest", + "test/pairwise_fail_test", "test/param_build_test", "test/params_api_test", "test/params_conversion_test", @@ -20448,36 +23812,65 @@ our %unified_info = ( "test/pbetest", "test/pem_read_depr_test", "test/pemtest", + "test/pkcs12_api_test", "test/pkcs12_format_test", "test/pkcs7_test", "test/pkey_meth_kdf_test", "test/pkey_meth_test", "test/poly1305_internal_test", + "test/priority_queue_test", "test/property_test", "test/prov_config_test", "test/provfetchtest", + "test/provider_default_search_path_test", "test/provider_fallback_test", "test/provider_internal_test", "test/provider_pkey_test", "test/provider_status_test", "test/provider_test", "test/punycode_test", + "test/quic_ackm_test", + "test/quic_cc_test", + "test/quic_cfq_test", + "test/quic_client_test", + "test/quic_fc_test", + "test/quic_fifd_test", + "test/quic_lcidm_test", + "test/quic_multistream_test", + "test/quic_newcid_test", + "test/quic_qlog_test", + "test/quic_radix_test", + "test/quic_rcidm_test", + "test/quic_record_test", + "test/quic_srt_gen_test", + "test/quic_srtm_test", + "test/quic_stream_test", + "test/quic_tserver_test", + "test/quic_txp_test", + "test/quic_txpim_test", + "test/quic_wire_test", + "test/quicapitest", + "test/quicfaultstest", "test/rand_status_test", "test/rand_test", "test/rc2test", "test/rc4test", "test/rc5test", - "test/rdrand_sanitytest", + "test/rdcpu_sanitytest", "test/recordlentest", + "test/rpktest", "test/rsa_complex", "test/rsa_mp_test", "test/rsa_sp800_56b_test", "test/rsa_test", + "test/rsa_x931_test", + "test/safe_math_test", "test/sanitytest", "test/secmemtest", "test/servername_test", "test/sha_test", "test/siphash_internal_test", + "test/slh_dsa_test", "test/sm2_internal_test", "test/sm3_internal_test", "test/sm4_internal_test", @@ -20485,6 +23878,7 @@ our %unified_info = ( "test/srptest", "test/ssl_cert_table_internal_test", "test/ssl_ctx_test", + "test/ssl_handshake_rtt_test", "test/ssl_old_test", "test/ssl_test", "test/ssl_test_ctx_test", @@ -20492,13 +23886,17 @@ our %unified_info = ( "test/sslbuffertest", "test/sslcorrupttest", "test/stack_test", + "test/strtoultest", "test/sysdefaulttest", "test/test_test", + "test/threadpool_test", "test/threadstest", "test/threadstest_fips", "test/time_offset_test", + "test/time_test", "test/tls13ccstest", "test/tls13encryptiontest", + "test/tls13groupselection_test", "test/trace_api_test", "test/uitest", "test/upcallstest", @@ -20508,9 +23906,13 @@ our %unified_info = ( "test/verify_extra_test", "test/versions", "test/wpackettest", + "test/x509_acert_test", "test/x509_check_cert_pkey_test", "test/x509_dup_cert_test", "test/x509_internal_test", + "test/x509_load_cert_file_test", + "test/x509_req_test", + "test/x509_test", "test/x509_time_test", "test/x509aux" ], @@ -20525,6 +23927,33 @@ our %unified_info = ( "apps/CA.pl" => [ "apps/CA.pl.in" ], + "apps/ca_internals_test-bin-ca.o" => [ + "apps/ca.c" + ], + "apps/lib/ca_internals_test-bin-app_libctx.o" => [ + "apps/lib/app_libctx.c" + ], + "apps/lib/ca_internals_test-bin-app_provider.o" => [ + "apps/lib/app_provider.c" + ], + "apps/lib/ca_internals_test-bin-app_rand.o" => [ + "apps/lib/app_rand.c" + ], + "apps/lib/ca_internals_test-bin-app_x509.o" => [ + "apps/lib/app_x509.c" + ], + "apps/lib/ca_internals_test-bin-apps.o" => [ + "apps/lib/apps.c" + ], + "apps/lib/ca_internals_test-bin-apps_ui.o" => [ + "apps/lib/apps_ui.c" + ], + "apps/lib/ca_internals_test-bin-engine.o" => [ + "apps/lib/engine.c" + ], + "apps/lib/ca_internals_test-bin-fmt.o" => [ + "apps/lib/fmt.c" + ], "apps/lib/cmp_client_test-bin-cmp_mock_srv.o" => [ "apps/lib/cmp_mock_srv.c" ], @@ -20546,6 +23975,9 @@ our %unified_info = ( "apps/lib/libapps-lib-apps.o" => [ "apps/lib/apps.c" ], + "apps/lib/libapps-lib-apps_opt_printf.o" => [ + "apps/lib/apps_opt_printf.c" + ], "apps/lib/libapps-lib-apps_ui.o" => [ "apps/lib/apps_ui.c" ], @@ -20564,6 +23996,9 @@ our %unified_info = ( "apps/lib/libapps-lib-http_server.o" => [ "apps/lib/http_server.c" ], + "apps/lib/libapps-lib-log.o" => [ + "apps/lib/log.c" + ], "apps/lib/libapps-lib-names.o" => [ "apps/lib/names.c" ], @@ -20601,12 +24036,14 @@ our %unified_info = ( "apps/lib/libapps-lib-app_rand.o", "apps/lib/libapps-lib-app_x509.o", "apps/lib/libapps-lib-apps.o", + "apps/lib/libapps-lib-apps_opt_printf.o", "apps/lib/libapps-lib-apps_ui.o", "apps/lib/libapps-lib-columns.o", "apps/lib/libapps-lib-engine.o", "apps/lib/libapps-lib-engine_loader.o", "apps/lib/libapps-lib-fmt.o", "apps/lib/libapps-lib-http_server.o", + "apps/lib/libapps-lib-log.o", "apps/lib/libapps-lib-names.o", "apps/lib/libapps-lib-opt.o", "apps/lib/libapps-lib-s_cb.o", @@ -20662,6 +24099,7 @@ our %unified_info = ( "apps/openssl-bin-s_server.o", "apps/openssl-bin-s_time.o", "apps/openssl-bin-sess_id.o", + "apps/openssl-bin-skeyutl.o", "apps/openssl-bin-smime.o", "apps/openssl-bin-speed.o", "apps/openssl-bin-spkac.o", @@ -20810,6 +24248,9 @@ our %unified_info = ( "apps/openssl-bin-sess_id.o" => [ "apps/sess_id.c" ], + "apps/openssl-bin-skeyutl.o" => [ + "apps/skeyutl.c" + ], "apps/openssl-bin-smime.o" => [ "apps/smime.c" ], @@ -20885,6 +24326,12 @@ our %unified_info = ( "crypto/aria/libcrypto-lib-aria.o" => [ "crypto/aria/aria.c" ], + "crypto/asn1/asn1_time_test-bin-a_time.o" => [ + "crypto/asn1/a_time.c" + ], + "crypto/asn1/ca_internals_test-bin-a_time.o" => [ + "crypto/asn1/a_time.c" + ], "crypto/asn1/libcrypto-lib-a_bitstr.o" => [ "crypto/asn1/a_bitstr.c" ], @@ -21077,6 +24524,9 @@ our %unified_info = ( "crypto/asn1/libcrypto-lib-x_val.o" => [ "crypto/asn1/x_val.c" ], + "crypto/asn1_time_test-bin-ctype.o" => [ + "crypto/ctype.c" + ], "crypto/async/arch/libcrypto-lib-async_null.o" => [ "crypto/async/arch/async_null.c" ], @@ -21170,6 +24620,9 @@ our %unified_info = ( "crypto/bio/libcrypto-lib-bss_dgram.o" => [ "crypto/bio/bss_dgram.c" ], + "crypto/bio/libcrypto-lib-bss_dgram_pair.o" => [ + "crypto/bio/bss_dgram_pair.c" + ], "crypto/bio/libcrypto-lib-bss_fd.o" => [ "crypto/bio/bss_fd.c" ], @@ -21401,6 +24854,9 @@ our %unified_info = ( "crypto/buffer/libfips-lib-buffer.o" => [ "crypto/buffer/buffer.c" ], + "crypto/ca_internals_test-bin-ctype.o" => [ + "crypto/ctype.c" + ], "crypto/camellia/libcrypto-lib-cmll-x86.o" => [ "crypto/camellia/cmll-x86.S" ], @@ -21452,6 +24908,9 @@ our %unified_info = ( "crypto/cmp/libcrypto-lib-cmp_err.o" => [ "crypto/cmp/cmp_err.c" ], + "crypto/cmp/libcrypto-lib-cmp_genm.o" => [ + "crypto/cmp/cmp_genm.c" + ], "crypto/cmp/libcrypto-lib-cmp_hdr.o" => [ "crypto/cmp/cmp_hdr.c" ], @@ -22139,9 +25598,15 @@ our %unified_info = ( "crypto/err/libcrypto-lib-err_blocks.o" => [ "crypto/err/err_blocks.c" ], + "crypto/err/libcrypto-lib-err_mark.o" => [ + "crypto/err/err_mark.c" + ], "crypto/err/libcrypto-lib-err_prn.o" => [ "crypto/err/err_prn.c" ], + "crypto/err/libcrypto-lib-err_save.o" => [ + "crypto/err/err_save.c" + ], "crypto/ess/libcrypto-lib-ess_asn1.o" => [ "crypto/ess/ess_asn1.c" ], @@ -22388,9 +25853,15 @@ our %unified_info = ( "crypto/evp/libcrypto-lib-pmeth_lib.o" => [ "crypto/evp/pmeth_lib.c" ], + "crypto/evp/libcrypto-lib-s_lib.o" => [ + "crypto/evp/s_lib.c" + ], "crypto/evp/libcrypto-lib-signature.o" => [ "crypto/evp/signature.c" ], + "crypto/evp/libcrypto-lib-skeymgmt_meth.o" => [ + "crypto/evp/skeymgmt_meth.c" + ], "crypto/evp/libfips-lib-asymcipher.o" => [ "crypto/evp/asymcipher.c" ], @@ -22436,9 +25907,6 @@ our %unified_info = ( "crypto/evp/libfips-lib-keymgmt_meth.o" => [ "crypto/evp/keymgmt_meth.c" ], - "crypto/evp/libfips-lib-m_sigver.o" => [ - "crypto/evp/m_sigver.c" - ], "crypto/evp/libfips-lib-mac_lib.o" => [ "crypto/evp/mac_lib.c" ], @@ -22457,9 +25925,15 @@ our %unified_info = ( "crypto/evp/libfips-lib-pmeth_lib.o" => [ "crypto/evp/pmeth_lib.c" ], + "crypto/evp/libfips-lib-s_lib.o" => [ + "crypto/evp/s_lib.c" + ], "crypto/evp/libfips-lib-signature.o" => [ "crypto/evp/signature.c" ], + "crypto/evp/libfips-lib-skeymgmt_meth.o" => [ + "crypto/evp/skeymgmt_meth.c" + ], "crypto/ffc/libcrypto-lib-ffc_backend.o" => [ "crypto/ffc/ffc_backend.c" ], @@ -22502,12 +25976,30 @@ our %unified_info = ( "crypto/ffc/libfips-lib-ffc_params_validate.o" => [ "crypto/ffc/ffc_params_validate.c" ], + "crypto/hashtable/libcrypto-lib-hashfunc.o" => [ + "crypto/hashtable/hashfunc.c" + ], + "crypto/hashtable/libcrypto-lib-hashtable.o" => [ + "crypto/hashtable/hashtable.c" + ], + "crypto/hashtable/libfips-lib-hashfunc.o" => [ + "crypto/hashtable/hashfunc.c" + ], + "crypto/hashtable/libfips-lib-hashtable.o" => [ + "crypto/hashtable/hashtable.c" + ], "crypto/hmac/libcrypto-lib-hmac.o" => [ "crypto/hmac/hmac.c" ], "crypto/hmac/libfips-lib-hmac.o" => [ "crypto/hmac/hmac.c" ], + "crypto/hpke/libcrypto-lib-hpke.o" => [ + "crypto/hpke/hpke.c" + ], + "crypto/hpke/libcrypto-lib-hpke_util.o" => [ + "crypto/hpke/hpke_util.c" + ], "crypto/http/libcrypto-lib-http_client.o" => [ "crypto/http/http_client.c" ], @@ -22550,6 +26042,9 @@ our %unified_info = ( "crypto/libcrypto-lib-bsearch.o" => [ "crypto/bsearch.c" ], + "crypto/libcrypto-lib-comp_methods.o" => [ + "crypto/comp_methods.c" + ], "crypto/libcrypto-lib-context.o" => [ "crypto/context.c" ], @@ -22577,9 +26072,15 @@ our %unified_info = ( "crypto/libcrypto-lib-cversion.o" => [ "crypto/cversion.c" ], + "crypto/libcrypto-lib-defaults.o" => [ + "crypto/defaults.c" + ], "crypto/libcrypto-lib-der_writer.o" => [ "crypto/der_writer.c" ], + "crypto/libcrypto-lib-deterministic_nonce.o" => [ + "crypto/deterministic_nonce.c" + ], "crypto/libcrypto-lib-ebcdic.o" => [ "crypto/ebcdic.c" ], @@ -22589,6 +26090,9 @@ our %unified_info = ( "crypto/libcrypto-lib-getenv.o" => [ "crypto/getenv.c" ], + "crypto/libcrypto-lib-indicator_core.o" => [ + "crypto/indicator_core.c" + ], "crypto/libcrypto-lib-info.o" => [ "crypto/info.c" ], @@ -22637,6 +26141,9 @@ our %unified_info = ( "crypto/libcrypto-lib-params_from_text.o" => [ "crypto/params_from_text.c" ], + "crypto/libcrypto-lib-params_idx.o" => [ + "crypto/params_idx.c" + ], "crypto/libcrypto-lib-passphrase.o" => [ "crypto/passphrase.c" ], @@ -22658,12 +26165,21 @@ our %unified_info = ( "crypto/libcrypto-lib-punycode.o" => [ "crypto/punycode.c" ], + "crypto/libcrypto-lib-quic_vlint.o" => [ + "crypto/quic_vlint.c" + ], "crypto/libcrypto-lib-self_test_core.o" => [ "crypto/self_test_core.c" ], + "crypto/libcrypto-lib-sleep.o" => [ + "crypto/sleep.c" + ], "crypto/libcrypto-lib-sparse_array.o" => [ "crypto/sparse_array.c" ], + "crypto/libcrypto-lib-ssl_err.o" => [ + "crypto/ssl_err.c" + ], "crypto/libcrypto-lib-threads_lib.o" => [ "crypto/threads_lib.c" ], @@ -22676,6 +26192,9 @@ our %unified_info = ( "crypto/libcrypto-lib-threads_win.o" => [ "crypto/threads_win.c" ], + "crypto/libcrypto-lib-time.o" => [ + "crypto/time.c" + ], "crypto/libcrypto-lib-trace.o" => [ "crypto/trace.c" ], @@ -22742,6 +26261,9 @@ our %unified_info = ( "crypto/libfips-lib-params_from_text.o" => [ "crypto/params_from_text.c" ], + "crypto/libfips-lib-params_idx.o" => [ + "crypto/params_idx.c" + ], "crypto/libfips-lib-provider_core.o" => [ "crypto/provider_core.c" ], @@ -22766,6 +26288,9 @@ our %unified_info = ( "crypto/libfips-lib-threads_win.o" => [ "crypto/threads_win.c" ], + "crypto/libfips-lib-time.o" => [ + "crypto/time.c" + ], "crypto/libfips-lib-x86cpuid.o" => [ "crypto/x86cpuid.S" ], @@ -22793,6 +26318,60 @@ our %unified_info = ( "crypto/mdc2/libcrypto-lib-mdc2dgst.o" => [ "crypto/mdc2/mdc2dgst.c" ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_encoders.o" => [ + "crypto/ml_dsa/ml_dsa_encoders.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key.o" => [ + "crypto/ml_dsa/ml_dsa_key.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key_compress.o" => [ + "crypto/ml_dsa/ml_dsa_key_compress.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_matrix.o" => [ + "crypto/ml_dsa/ml_dsa_matrix.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_ntt.o" => [ + "crypto/ml_dsa/ml_dsa_ntt.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_params.o" => [ + "crypto/ml_dsa/ml_dsa_params.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sample.o" => [ + "crypto/ml_dsa/ml_dsa_sample.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sign.o" => [ + "crypto/ml_dsa/ml_dsa_sign.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_encoders.o" => [ + "crypto/ml_dsa/ml_dsa_encoders.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_key.o" => [ + "crypto/ml_dsa/ml_dsa_key.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_key_compress.o" => [ + "crypto/ml_dsa/ml_dsa_key_compress.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_matrix.o" => [ + "crypto/ml_dsa/ml_dsa_matrix.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_ntt.o" => [ + "crypto/ml_dsa/ml_dsa_ntt.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_params.o" => [ + "crypto/ml_dsa/ml_dsa_params.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_sample.o" => [ + "crypto/ml_dsa/ml_dsa_sample.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_sign.o" => [ + "crypto/ml_dsa/ml_dsa_sign.c" + ], + "crypto/ml_kem/libcrypto-lib-ml_kem.o" => [ + "crypto/ml_kem/ml_kem.c" + ], + "crypto/ml_kem/libfips-lib-ml_kem.o" => [ + "crypto/ml_kem/ml_kem.c" + ], "crypto/modes/libcrypto-lib-cbc128.o" => [ "crypto/modes/cbc128.c" ], @@ -22829,6 +26408,9 @@ our %unified_info = ( "crypto/modes/libcrypto-lib-xts128.o" => [ "crypto/modes/xts128.c" ], + "crypto/modes/libcrypto-lib-xts128gb.o" => [ + "crypto/modes/xts128gb.c" + ], "crypto/modes/libfips-lib-cbc128.o" => [ "crypto/modes/cbc128.c" ], @@ -22856,6 +26438,9 @@ our %unified_info = ( "crypto/modes/libfips-lib-xts128.o" => [ "crypto/modes/xts128.c" ], + "crypto/modes/libfips-lib-xts128gb.o" => [ + "crypto/modes/xts128gb.c" + ], "crypto/objects/libcrypto-lib-o_names.o" => [ "crypto/objects/o_names.c" ], @@ -22901,6 +26486,9 @@ our %unified_info = ( "crypto/ocsp/libcrypto-lib-v3_ocsp.o" => [ "crypto/ocsp/v3_ocsp.c" ], + "crypto/packettest-bin-quic_vlint.o" => [ + "crypto/quic_vlint.c" + ], "crypto/pem/libcrypto-lib-pem_all.o" => [ "crypto/pem/pem_all.c" ], @@ -23063,6 +26651,9 @@ our %unified_info = ( "crypto/rand/libcrypto-lib-rand_pool.o" => [ "crypto/rand/rand_pool.c" ], + "crypto/rand/libcrypto-lib-rand_uniform.o" => [ + "crypto/rand/rand_uniform.c" + ], "crypto/rand/libcrypto-lib-randfile.o" => [ "crypto/rand/randfile.c" ], @@ -23294,6 +26885,66 @@ our %unified_info = ( "crypto/siphash/libcrypto-lib-siphash.o" => [ "crypto/siphash/siphash.c" ], + "crypto/slh_dsa/libcrypto-lib-slh_adrs.o" => [ + "crypto/slh_dsa/slh_adrs.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_dsa.o" => [ + "crypto/slh_dsa/slh_dsa.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_dsa_hash_ctx.o" => [ + "crypto/slh_dsa/slh_dsa_hash_ctx.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_dsa_key.o" => [ + "crypto/slh_dsa/slh_dsa_key.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_fors.o" => [ + "crypto/slh_dsa/slh_fors.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_hash.o" => [ + "crypto/slh_dsa/slh_hash.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_hypertree.o" => [ + "crypto/slh_dsa/slh_hypertree.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_params.o" => [ + "crypto/slh_dsa/slh_params.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_wots.o" => [ + "crypto/slh_dsa/slh_wots.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_xmss.o" => [ + "crypto/slh_dsa/slh_xmss.c" + ], + "crypto/slh_dsa/libfips-lib-slh_adrs.o" => [ + "crypto/slh_dsa/slh_adrs.c" + ], + "crypto/slh_dsa/libfips-lib-slh_dsa.o" => [ + "crypto/slh_dsa/slh_dsa.c" + ], + "crypto/slh_dsa/libfips-lib-slh_dsa_hash_ctx.o" => [ + "crypto/slh_dsa/slh_dsa_hash_ctx.c" + ], + "crypto/slh_dsa/libfips-lib-slh_dsa_key.o" => [ + "crypto/slh_dsa/slh_dsa_key.c" + ], + "crypto/slh_dsa/libfips-lib-slh_fors.o" => [ + "crypto/slh_dsa/slh_fors.c" + ], + "crypto/slh_dsa/libfips-lib-slh_hash.o" => [ + "crypto/slh_dsa/slh_hash.c" + ], + "crypto/slh_dsa/libfips-lib-slh_hypertree.o" => [ + "crypto/slh_dsa/slh_hypertree.c" + ], + "crypto/slh_dsa/libfips-lib-slh_params.o" => [ + "crypto/slh_dsa/slh_params.c" + ], + "crypto/slh_dsa/libfips-lib-slh_wots.o" => [ + "crypto/slh_dsa/slh_wots.c" + ], + "crypto/slh_dsa/libfips-lib-slh_xmss.o" => [ + "crypto/slh_dsa/slh_xmss.c" + ], "crypto/sm2/libcrypto-lib-sm2_crypt.o" => [ "crypto/sm2/sm2_crypt.c" ], @@ -23348,6 +26999,42 @@ our %unified_info = ( "crypto/store/libcrypto-lib-store_strings.o" => [ "crypto/store/store_strings.c" ], + "crypto/thread/arch/libcrypto-lib-thread_none.o" => [ + "crypto/thread/arch/thread_none.c" + ], + "crypto/thread/arch/libcrypto-lib-thread_posix.o" => [ + "crypto/thread/arch/thread_posix.c" + ], + "crypto/thread/arch/libcrypto-lib-thread_win.o" => [ + "crypto/thread/arch/thread_win.c" + ], + "crypto/thread/arch/libfips-lib-thread_none.o" => [ + "crypto/thread/arch/thread_none.c" + ], + "crypto/thread/arch/libfips-lib-thread_posix.o" => [ + "crypto/thread/arch/thread_posix.c" + ], + "crypto/thread/arch/libfips-lib-thread_win.o" => [ + "crypto/thread/arch/thread_win.c" + ], + "crypto/thread/libcrypto-lib-api.o" => [ + "crypto/thread/api.c" + ], + "crypto/thread/libcrypto-lib-arch.o" => [ + "crypto/thread/arch.c" + ], + "crypto/thread/libcrypto-lib-internal.o" => [ + "crypto/thread/internal.c" + ], + "crypto/thread/libfips-lib-api.o" => [ + "crypto/thread/api.c" + ], + "crypto/thread/libfips-lib-arch.o" => [ + "crypto/thread/arch.c" + ], + "crypto/thread/libfips-lib-internal.o" => [ + "crypto/thread/internal.c" + ], "crypto/ts/libcrypto-lib-ts_asn1.o" => [ "crypto/ts/ts_asn1.c" ], @@ -23435,6 +27122,9 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-pcy_tree.o" => [ "crypto/x509/pcy_tree.c" ], + "crypto/x509/libcrypto-lib-t_acert.o" => [ + "crypto/x509/t_acert.c" + ], "crypto/x509/libcrypto-lib-t_crl.o" => [ "crypto/x509/t_crl.c" ], @@ -23444,6 +27134,12 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-t_x509.o" => [ "crypto/x509/t_x509.c" ], + "crypto/x509/libcrypto-lib-v3_aaa.o" => [ + "crypto/x509/v3_aaa.c" + ], + "crypto/x509/libcrypto-lib-v3_ac_tgt.o" => [ + "crypto/x509/v3_ac_tgt.c" + ], "crypto/x509/libcrypto-lib-v3_addr.o" => [ "crypto/x509/v3_addr.c" ], @@ -23459,6 +27155,21 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_asid.o" => [ "crypto/x509/v3_asid.c" ], + "crypto/x509/libcrypto-lib-v3_attrdesc.o" => [ + "crypto/x509/v3_attrdesc.c" + ], + "crypto/x509/libcrypto-lib-v3_attrmap.o" => [ + "crypto/x509/v3_attrmap.c" + ], + "crypto/x509/libcrypto-lib-v3_audit_id.o" => [ + "crypto/x509/v3_audit_id.c" + ], + "crypto/x509/libcrypto-lib-v3_authattid.o" => [ + "crypto/x509/v3_authattid.c" + ], + "crypto/x509/libcrypto-lib-v3_battcons.o" => [ + "crypto/x509/v3_battcons.c" + ], "crypto/x509/libcrypto-lib-v3_bcons.o" => [ "crypto/x509/v3_bcons.c" ], @@ -23483,15 +27194,24 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_genn.o" => [ "crypto/x509/v3_genn.c" ], + "crypto/x509/libcrypto-lib-v3_group_ac.o" => [ + "crypto/x509/v3_group_ac.c" + ], "crypto/x509/libcrypto-lib-v3_ia5.o" => [ "crypto/x509/v3_ia5.c" ], + "crypto/x509/libcrypto-lib-v3_ind_iss.o" => [ + "crypto/x509/v3_ind_iss.c" + ], "crypto/x509/libcrypto-lib-v3_info.o" => [ "crypto/x509/v3_info.c" ], "crypto/x509/libcrypto-lib-v3_int.o" => [ "crypto/x509/v3_int.c" ], + "crypto/x509/libcrypto-lib-v3_iobo.o" => [ + "crypto/x509/v3_iobo.c" + ], "crypto/x509/libcrypto-lib-v3_ist.o" => [ "crypto/x509/v3_ist.c" ], @@ -23501,6 +27221,12 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_ncons.o" => [ "crypto/x509/v3_ncons.c" ], + "crypto/x509/libcrypto-lib-v3_no_ass.o" => [ + "crypto/x509/v3_no_ass.c" + ], + "crypto/x509/libcrypto-lib-v3_no_rev_avail.o" => [ + "crypto/x509/v3_no_rev_avail.c" + ], "crypto/x509/libcrypto-lib-v3_pci.o" => [ "crypto/x509/v3_pci.c" ], @@ -23522,18 +27248,36 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_purp.o" => [ "crypto/x509/v3_purp.c" ], + "crypto/x509/libcrypto-lib-v3_rolespec.o" => [ + "crypto/x509/v3_rolespec.c" + ], "crypto/x509/libcrypto-lib-v3_san.o" => [ "crypto/x509/v3_san.c" ], + "crypto/x509/libcrypto-lib-v3_sda.o" => [ + "crypto/x509/v3_sda.c" + ], + "crypto/x509/libcrypto-lib-v3_single_use.o" => [ + "crypto/x509/v3_single_use.c" + ], "crypto/x509/libcrypto-lib-v3_skid.o" => [ "crypto/x509/v3_skid.c" ], + "crypto/x509/libcrypto-lib-v3_soa_id.o" => [ + "crypto/x509/v3_soa_id.c" + ], "crypto/x509/libcrypto-lib-v3_sxnet.o" => [ "crypto/x509/v3_sxnet.c" ], + "crypto/x509/libcrypto-lib-v3_timespec.o" => [ + "crypto/x509/v3_timespec.c" + ], "crypto/x509/libcrypto-lib-v3_tlsf.o" => [ "crypto/x509/v3_tlsf.c" ], + "crypto/x509/libcrypto-lib-v3_usernotice.o" => [ + "crypto/x509/v3_usernotice.c" + ], "crypto/x509/libcrypto-lib-v3_utf8.o" => [ "crypto/x509/v3_utf8.c" ], @@ -23543,6 +27287,9 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3err.o" => [ "crypto/x509/v3err.c" ], + "crypto/x509/libcrypto-lib-x509_acert.o" => [ + "crypto/x509/x509_acert.c" + ], "crypto/x509/libcrypto-lib-x509_att.o" => [ "crypto/x509/x509_att.c" ], @@ -23594,6 +27341,9 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x509_vpm.o" => [ "crypto/x509/x509_vpm.c" ], + "crypto/x509/libcrypto-lib-x509aset.o" => [ + "crypto/x509/x509aset.c" + ], "crypto/x509/libcrypto-lib-x509cset.o" => [ "crypto/x509/x509cset.c" ], @@ -23621,6 +27371,9 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x_exten.o" => [ "crypto/x509/x_exten.c" ], + "crypto/x509/libcrypto-lib-x_ietfatt.o" => [ + "crypto/x509/x_ietfatt.c" + ], "crypto/x509/libcrypto-lib-x_name.o" => [ "crypto/x509/x_name.c" ], @@ -23645,6 +27398,16 @@ our %unified_info = ( "engines/libcrypto-lib-e_padlock.o" => [ "engines/e_padlock.c" ], + "fuzz/acert-test" => [ + "fuzz/acert-test-bin-acert.o", + "fuzz/acert-test-bin-test-corpus.o" + ], + "fuzz/acert-test-bin-acert.o" => [ + "fuzz/acert.c" + ], + "fuzz/acert-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], "fuzz/asn1-test" => [ "fuzz/asn1-test-bin-asn1.o", "fuzz/asn1-test-bin-fuzz_rand.o", @@ -23757,6 +27520,190 @@ our %unified_info = ( "fuzz/ct-test-bin-test-corpus.o" => [ "fuzz/test-corpus.c" ], + "fuzz/decoder-test" => [ + "fuzz/decoder-test-bin-decoder.o", + "fuzz/decoder-test-bin-fuzz_rand.o", + "fuzz/decoder-test-bin-test-corpus.o" + ], + "fuzz/decoder-test-bin-decoder.o" => [ + "fuzz/decoder.c" + ], + "fuzz/decoder-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/decoder-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/dtlsclient-test" => [ + "fuzz/dtlsclient-test-bin-dtlsclient.o", + "fuzz/dtlsclient-test-bin-fuzz_rand.o", + "fuzz/dtlsclient-test-bin-test-corpus.o" + ], + "fuzz/dtlsclient-test-bin-dtlsclient.o" => [ + "fuzz/dtlsclient.c" + ], + "fuzz/dtlsclient-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/dtlsclient-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/dtlsserver-test" => [ + "fuzz/dtlsserver-test-bin-dtlsserver.o", + "fuzz/dtlsserver-test-bin-fuzz_rand.o", + "fuzz/dtlsserver-test-bin-test-corpus.o" + ], + "fuzz/dtlsserver-test-bin-dtlsserver.o" => [ + "fuzz/dtlsserver.c" + ], + "fuzz/dtlsserver-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/dtlsserver-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/hashtable-test" => [ + "fuzz/hashtable-test-bin-fuzz_rand.o", + "fuzz/hashtable-test-bin-hashtable.o", + "fuzz/hashtable-test-bin-test-corpus.o" + ], + "fuzz/hashtable-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/hashtable-test-bin-hashtable.o" => [ + "fuzz/hashtable.c" + ], + "fuzz/hashtable-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/ml-dsa-test" => [ + "fuzz/ml-dsa-test-bin-fuzz_rand.o", + "fuzz/ml-dsa-test-bin-ml-dsa.o", + "fuzz/ml-dsa-test-bin-test-corpus.o" + ], + "fuzz/ml-dsa-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/ml-dsa-test-bin-ml-dsa.o" => [ + "fuzz/ml-dsa.c" + ], + "fuzz/ml-dsa-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/ml-kem-test" => [ + "fuzz/ml-kem-test-bin-fuzz_rand.o", + "fuzz/ml-kem-test-bin-ml-kem.o", + "fuzz/ml-kem-test-bin-test-corpus.o" + ], + "fuzz/ml-kem-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/ml-kem-test-bin-ml-kem.o" => [ + "fuzz/ml-kem.c" + ], + "fuzz/ml-kem-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/pem-test" => [ + "fuzz/pem-test-bin-pem.o", + "fuzz/pem-test-bin-test-corpus.o" + ], + "fuzz/pem-test-bin-pem.o" => [ + "fuzz/pem.c" + ], + "fuzz/pem-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/provider-test" => [ + "fuzz/provider-test-bin-provider.o", + "fuzz/provider-test-bin-test-corpus.o" + ], + "fuzz/provider-test-bin-provider.o" => [ + "fuzz/provider.c" + ], + "fuzz/provider-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/punycode-test" => [ + "fuzz/punycode-test-bin-punycode.o", + "fuzz/punycode-test-bin-test-corpus.o" + ], + "fuzz/punycode-test-bin-punycode.o" => [ + "fuzz/punycode.c" + ], + "fuzz/punycode-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-client-test" => [ + "fuzz/quic-client-test-bin-fuzz_rand.o", + "fuzz/quic-client-test-bin-quic-client.o", + "fuzz/quic-client-test-bin-test-corpus.o" + ], + "fuzz/quic-client-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-client-test-bin-quic-client.o" => [ + "fuzz/quic-client.c" + ], + "fuzz/quic-client-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-lcidm-test" => [ + "fuzz/quic-lcidm-test-bin-fuzz_rand.o", + "fuzz/quic-lcidm-test-bin-quic-lcidm.o", + "fuzz/quic-lcidm-test-bin-test-corpus.o" + ], + "fuzz/quic-lcidm-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-lcidm-test-bin-quic-lcidm.o" => [ + "fuzz/quic-lcidm.c" + ], + "fuzz/quic-lcidm-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-rcidm-test" => [ + "fuzz/quic-rcidm-test-bin-fuzz_rand.o", + "fuzz/quic-rcidm-test-bin-quic-rcidm.o", + "fuzz/quic-rcidm-test-bin-test-corpus.o" + ], + "fuzz/quic-rcidm-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-rcidm-test-bin-quic-rcidm.o" => [ + "fuzz/quic-rcidm.c" + ], + "fuzz/quic-rcidm-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-server-test" => [ + "fuzz/quic-server-test-bin-fuzz_rand.o", + "fuzz/quic-server-test-bin-quic-server.o", + "fuzz/quic-server-test-bin-test-corpus.o" + ], + "fuzz/quic-server-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-server-test-bin-quic-server.o" => [ + "fuzz/quic-server.c" + ], + "fuzz/quic-server-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-srtm-test" => [ + "fuzz/quic-srtm-test-bin-fuzz_rand.o", + "fuzz/quic-srtm-test-bin-quic-srtm.o", + "fuzz/quic-srtm-test-bin-test-corpus.o" + ], + "fuzz/quic-srtm-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-srtm-test-bin-quic-srtm.o" => [ + "fuzz/quic-srtm.c" + ], + "fuzz/quic-srtm-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], "fuzz/server-test" => [ "fuzz/server-test-bin-fuzz_rand.o", "fuzz/server-test-bin-server.o", @@ -23771,6 +27718,40 @@ our %unified_info = ( "fuzz/server-test-bin-test-corpus.o" => [ "fuzz/test-corpus.c" ], + "fuzz/slh-dsa-test" => [ + "fuzz/slh-dsa-test-bin-fuzz_rand.o", + "fuzz/slh-dsa-test-bin-slh-dsa.o", + "fuzz/slh-dsa-test-bin-test-corpus.o" + ], + "fuzz/slh-dsa-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/slh-dsa-test-bin-slh-dsa.o" => [ + "fuzz/slh-dsa.c" + ], + "fuzz/slh-dsa-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/smime-test" => [ + "fuzz/smime-test-bin-smime.o", + "fuzz/smime-test-bin-test-corpus.o" + ], + "fuzz/smime-test-bin-smime.o" => [ + "fuzz/smime.c" + ], + "fuzz/smime-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/v3name-test" => [ + "fuzz/v3name-test-bin-test-corpus.o", + "fuzz/v3name-test-bin-v3name.o" + ], + "fuzz/v3name-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/v3name-test-bin-v3name.o" => [ + "fuzz/v3name.c" + ], "fuzz/x509-test" => [ "fuzz/x509-test-bin-fuzz_rand.o", "fuzz/x509-test-bin-test-corpus.o", @@ -23891,6 +27872,7 @@ our %unified_info = ( "crypto/bio/libcrypto-lib-bss_conn.o", "crypto/bio/libcrypto-lib-bss_core.o", "crypto/bio/libcrypto-lib-bss_dgram.o", + "crypto/bio/libcrypto-lib-bss_dgram_pair.o", "crypto/bio/libcrypto-lib-bss_fd.o", "crypto/bio/libcrypto-lib-bss_file.o", "crypto/bio/libcrypto-lib-bss_log.o", @@ -23952,6 +27934,7 @@ our %unified_info = ( "crypto/cmp/libcrypto-lib-cmp_client.o", "crypto/cmp/libcrypto-lib-cmp_ctx.o", "crypto/cmp/libcrypto-lib-cmp_err.o", + "crypto/cmp/libcrypto-lib-cmp_genm.o", "crypto/cmp/libcrypto-lib-cmp_hdr.o", "crypto/cmp/libcrypto-lib-cmp_http.o", "crypto/cmp/libcrypto-lib-cmp_msg.o", @@ -24129,7 +28112,9 @@ our %unified_info = ( "crypto/err/libcrypto-lib-err_all.o", "crypto/err/libcrypto-lib-err_all_legacy.o", "crypto/err/libcrypto-lib-err_blocks.o", + "crypto/err/libcrypto-lib-err_mark.o", "crypto/err/libcrypto-lib-err_prn.o", + "crypto/err/libcrypto-lib-err_save.o", "crypto/ess/libcrypto-lib-ess_asn1.o", "crypto/ess/libcrypto-lib-ess_err.o", "crypto/ess/libcrypto-lib-ess_lib.o", @@ -24212,7 +28197,9 @@ our %unified_info = ( "crypto/evp/libcrypto-lib-pmeth_check.o", "crypto/evp/libcrypto-lib-pmeth_gn.o", "crypto/evp/libcrypto-lib-pmeth_lib.o", + "crypto/evp/libcrypto-lib-s_lib.o", "crypto/evp/libcrypto-lib-signature.o", + "crypto/evp/libcrypto-lib-skeymgmt_meth.o", "crypto/ffc/libcrypto-lib-ffc_backend.o", "crypto/ffc/libcrypto-lib-ffc_dh.o", "crypto/ffc/libcrypto-lib-ffc_key_generate.o", @@ -24220,7 +28207,11 @@ our %unified_info = ( "crypto/ffc/libcrypto-lib-ffc_params.o", "crypto/ffc/libcrypto-lib-ffc_params_generate.o", "crypto/ffc/libcrypto-lib-ffc_params_validate.o", + "crypto/hashtable/libcrypto-lib-hashfunc.o", + "crypto/hashtable/libcrypto-lib-hashtable.o", "crypto/hmac/libcrypto-lib-hmac.o", + "crypto/hpke/libcrypto-lib-hpke.o", + "crypto/hpke/libcrypto-lib-hpke_util.o", "crypto/http/libcrypto-lib-http_client.o", "crypto/http/libcrypto-lib-http_err.o", "crypto/http/libcrypto-lib-http_lib.o", @@ -24234,6 +28225,7 @@ our %unified_info = ( "crypto/lhash/libcrypto-lib-lhash.o", "crypto/libcrypto-lib-asn1_dsa.o", "crypto/libcrypto-lib-bsearch.o", + "crypto/libcrypto-lib-comp_methods.o", "crypto/libcrypto-lib-context.o", "crypto/libcrypto-lib-core_algorithm.o", "crypto/libcrypto-lib-core_fetch.o", @@ -24243,10 +28235,13 @@ our %unified_info = ( "crypto/libcrypto-lib-cryptlib.o", "crypto/libcrypto-lib-ctype.o", "crypto/libcrypto-lib-cversion.o", + "crypto/libcrypto-lib-defaults.o", "crypto/libcrypto-lib-der_writer.o", + "crypto/libcrypto-lib-deterministic_nonce.o", "crypto/libcrypto-lib-ebcdic.o", "crypto/libcrypto-lib-ex_data.o", "crypto/libcrypto-lib-getenv.o", + "crypto/libcrypto-lib-indicator_core.o", "crypto/libcrypto-lib-info.o", "crypto/libcrypto-lib-init.o", "crypto/libcrypto-lib-initthread.o", @@ -24263,6 +28258,7 @@ our %unified_info = ( "crypto/libcrypto-lib-params.o", "crypto/libcrypto-lib-params_dup.o", "crypto/libcrypto-lib-params_from_text.o", + "crypto/libcrypto-lib-params_idx.o", "crypto/libcrypto-lib-passphrase.o", "crypto/libcrypto-lib-provider.o", "crypto/libcrypto-lib-provider_child.o", @@ -24270,12 +28266,16 @@ our %unified_info = ( "crypto/libcrypto-lib-provider_core.o", "crypto/libcrypto-lib-provider_predefined.o", "crypto/libcrypto-lib-punycode.o", + "crypto/libcrypto-lib-quic_vlint.o", "crypto/libcrypto-lib-self_test_core.o", + "crypto/libcrypto-lib-sleep.o", "crypto/libcrypto-lib-sparse_array.o", + "crypto/libcrypto-lib-ssl_err.o", "crypto/libcrypto-lib-threads_lib.o", "crypto/libcrypto-lib-threads_none.o", "crypto/libcrypto-lib-threads_pthread.o", "crypto/libcrypto-lib-threads_win.o", + "crypto/libcrypto-lib-time.o", "crypto/libcrypto-lib-trace.o", "crypto/libcrypto-lib-uid.o", "crypto/libcrypto-lib-x86cpuid.o", @@ -24287,6 +28287,15 @@ our %unified_info = ( "crypto/md5/libcrypto-lib-md5_sha1.o", "crypto/mdc2/libcrypto-lib-mdc2_one.o", "crypto/mdc2/libcrypto-lib-mdc2dgst.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_encoders.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key_compress.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_matrix.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_ntt.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_params.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sample.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sign.o", + "crypto/ml_kem/libcrypto-lib-ml_kem.o", "crypto/modes/libcrypto-lib-cbc128.o", "crypto/modes/libcrypto-lib-ccm128.o", "crypto/modes/libcrypto-lib-cfb128.o", @@ -24299,6 +28308,7 @@ our %unified_info = ( "crypto/modes/libcrypto-lib-siv128.o", "crypto/modes/libcrypto-lib-wrap128.o", "crypto/modes/libcrypto-lib-xts128.o", + "crypto/modes/libcrypto-lib-xts128gb.o", "crypto/objects/libcrypto-lib-o_names.o", "crypto/objects/libcrypto-lib-obj_dat.o", "crypto/objects/libcrypto-lib-obj_err.o", @@ -24363,6 +28373,7 @@ our %unified_info = ( "crypto/rand/libcrypto-lib-rand_lib.o", "crypto/rand/libcrypto-lib-rand_meth.o", "crypto/rand/libcrypto-lib-rand_pool.o", + "crypto/rand/libcrypto-lib-rand_uniform.o", "crypto/rand/libcrypto-lib-randfile.o", "crypto/rc2/libcrypto-lib-rc2_cbc.o", "crypto/rc2/libcrypto-lib-rc2_ecb.o", @@ -24414,6 +28425,16 @@ our %unified_info = ( "crypto/sha/libcrypto-lib-sha512-586.o", "crypto/sha/libcrypto-lib-sha512.o", "crypto/siphash/libcrypto-lib-siphash.o", + "crypto/slh_dsa/libcrypto-lib-slh_adrs.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa_hash_ctx.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa_key.o", + "crypto/slh_dsa/libcrypto-lib-slh_fors.o", + "crypto/slh_dsa/libcrypto-lib-slh_hash.o", + "crypto/slh_dsa/libcrypto-lib-slh_hypertree.o", + "crypto/slh_dsa/libcrypto-lib-slh_params.o", + "crypto/slh_dsa/libcrypto-lib-slh_wots.o", + "crypto/slh_dsa/libcrypto-lib-slh_xmss.o", "crypto/sm2/libcrypto-lib-sm2_crypt.o", "crypto/sm2/libcrypto-lib-sm2_err.o", "crypto/sm2/libcrypto-lib-sm2_key.o", @@ -24431,6 +28452,12 @@ our %unified_info = ( "crypto/store/libcrypto-lib-store_register.o", "crypto/store/libcrypto-lib-store_result.o", "crypto/store/libcrypto-lib-store_strings.o", + "crypto/thread/arch/libcrypto-lib-thread_none.o", + "crypto/thread/arch/libcrypto-lib-thread_posix.o", + "crypto/thread/arch/libcrypto-lib-thread_win.o", + "crypto/thread/libcrypto-lib-api.o", + "crypto/thread/libcrypto-lib-arch.o", + "crypto/thread/libcrypto-lib-internal.o", "crypto/ts/libcrypto-lib-ts_asn1.o", "crypto/ts/libcrypto-lib-ts_conf.o", "crypto/ts/libcrypto-lib-ts_err.o", @@ -24460,14 +28487,22 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-pcy_map.o", "crypto/x509/libcrypto-lib-pcy_node.o", "crypto/x509/libcrypto-lib-pcy_tree.o", + "crypto/x509/libcrypto-lib-t_acert.o", "crypto/x509/libcrypto-lib-t_crl.o", "crypto/x509/libcrypto-lib-t_req.o", "crypto/x509/libcrypto-lib-t_x509.o", + "crypto/x509/libcrypto-lib-v3_aaa.o", + "crypto/x509/libcrypto-lib-v3_ac_tgt.o", "crypto/x509/libcrypto-lib-v3_addr.o", "crypto/x509/libcrypto-lib-v3_admis.o", "crypto/x509/libcrypto-lib-v3_akeya.o", "crypto/x509/libcrypto-lib-v3_akid.o", "crypto/x509/libcrypto-lib-v3_asid.o", + "crypto/x509/libcrypto-lib-v3_attrdesc.o", + "crypto/x509/libcrypto-lib-v3_attrmap.o", + "crypto/x509/libcrypto-lib-v3_audit_id.o", + "crypto/x509/libcrypto-lib-v3_authattid.o", + "crypto/x509/libcrypto-lib-v3_battcons.o", "crypto/x509/libcrypto-lib-v3_bcons.o", "crypto/x509/libcrypto-lib-v3_bitst.o", "crypto/x509/libcrypto-lib-v3_conf.o", @@ -24476,12 +28511,17 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_enum.o", "crypto/x509/libcrypto-lib-v3_extku.o", "crypto/x509/libcrypto-lib-v3_genn.o", + "crypto/x509/libcrypto-lib-v3_group_ac.o", "crypto/x509/libcrypto-lib-v3_ia5.o", + "crypto/x509/libcrypto-lib-v3_ind_iss.o", "crypto/x509/libcrypto-lib-v3_info.o", "crypto/x509/libcrypto-lib-v3_int.o", + "crypto/x509/libcrypto-lib-v3_iobo.o", "crypto/x509/libcrypto-lib-v3_ist.o", "crypto/x509/libcrypto-lib-v3_lib.o", "crypto/x509/libcrypto-lib-v3_ncons.o", + "crypto/x509/libcrypto-lib-v3_no_ass.o", + "crypto/x509/libcrypto-lib-v3_no_rev_avail.o", "crypto/x509/libcrypto-lib-v3_pci.o", "crypto/x509/libcrypto-lib-v3_pcia.o", "crypto/x509/libcrypto-lib-v3_pcons.o", @@ -24489,13 +28529,20 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_pmaps.o", "crypto/x509/libcrypto-lib-v3_prn.o", "crypto/x509/libcrypto-lib-v3_purp.o", + "crypto/x509/libcrypto-lib-v3_rolespec.o", "crypto/x509/libcrypto-lib-v3_san.o", + "crypto/x509/libcrypto-lib-v3_sda.o", + "crypto/x509/libcrypto-lib-v3_single_use.o", "crypto/x509/libcrypto-lib-v3_skid.o", + "crypto/x509/libcrypto-lib-v3_soa_id.o", "crypto/x509/libcrypto-lib-v3_sxnet.o", + "crypto/x509/libcrypto-lib-v3_timespec.o", "crypto/x509/libcrypto-lib-v3_tlsf.o", + "crypto/x509/libcrypto-lib-v3_usernotice.o", "crypto/x509/libcrypto-lib-v3_utf8.o", "crypto/x509/libcrypto-lib-v3_utl.o", "crypto/x509/libcrypto-lib-v3err.o", + "crypto/x509/libcrypto-lib-x509_acert.o", "crypto/x509/libcrypto-lib-x509_att.o", "crypto/x509/libcrypto-lib-x509_cmp.o", "crypto/x509/libcrypto-lib-x509_d2.o", @@ -24513,6 +28560,7 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x509_v3.o", "crypto/x509/libcrypto-lib-x509_vfy.o", "crypto/x509/libcrypto-lib-x509_vpm.o", + "crypto/x509/libcrypto-lib-x509aset.o", "crypto/x509/libcrypto-lib-x509cset.o", "crypto/x509/libcrypto-lib-x509name.o", "crypto/x509/libcrypto-lib-x509rset.o", @@ -24522,6 +28570,7 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x_attrib.o", "crypto/x509/libcrypto-lib-x_crl.o", "crypto/x509/libcrypto-lib-x_exten.o", + "crypto/x509/libcrypto-lib-x_ietfatt.o", "crypto/x509/libcrypto-lib-x_name.o", "crypto/x509/libcrypto-lib-x_pubkey.o", "crypto/x509/libcrypto-lib-x_req.o", @@ -24543,14 +28592,15 @@ our %unified_info = ( "ssl/libssl-lib-d1_srtp.o", "ssl/libssl-lib-methods.o", "ssl/libssl-lib-pqueue.o", + "ssl/libssl-lib-priority_queue.o", "ssl/libssl-lib-s3_enc.o", "ssl/libssl-lib-s3_lib.o", "ssl/libssl-lib-s3_msg.o", "ssl/libssl-lib-ssl_asn1.o", "ssl/libssl-lib-ssl_cert.o", + "ssl/libssl-lib-ssl_cert_comp.o", "ssl/libssl-lib-ssl_ciph.o", "ssl/libssl-lib-ssl_conf.o", - "ssl/libssl-lib-ssl_err.o", "ssl/libssl-lib-ssl_err_legacy.o", "ssl/libssl-lib-ssl_init.o", "ssl/libssl-lib-ssl_lib.o", @@ -24567,12 +28617,60 @@ our %unified_info = ( "ssl/libssl-lib-tls13_enc.o", "ssl/libssl-lib-tls_depr.o", "ssl/libssl-lib-tls_srp.o", - "ssl/record/libssl-lib-dtls1_bitmap.o", + "ssl/quic/libssl-lib-cc_newreno.o", + "ssl/quic/libssl-lib-json_enc.o", + "ssl/quic/libssl-lib-qlog.o", + "ssl/quic/libssl-lib-qlog_event_helpers.o", + "ssl/quic/libssl-lib-quic_ackm.o", + "ssl/quic/libssl-lib-quic_cfq.o", + "ssl/quic/libssl-lib-quic_channel.o", + "ssl/quic/libssl-lib-quic_demux.o", + "ssl/quic/libssl-lib-quic_engine.o", + "ssl/quic/libssl-lib-quic_fc.o", + "ssl/quic/libssl-lib-quic_fifd.o", + "ssl/quic/libssl-lib-quic_impl.o", + "ssl/quic/libssl-lib-quic_lcidm.o", + "ssl/quic/libssl-lib-quic_method.o", + "ssl/quic/libssl-lib-quic_obj.o", + "ssl/quic/libssl-lib-quic_port.o", + "ssl/quic/libssl-lib-quic_rcidm.o", + "ssl/quic/libssl-lib-quic_reactor.o", + "ssl/quic/libssl-lib-quic_reactor_wait_ctx.o", + "ssl/quic/libssl-lib-quic_record_rx.o", + "ssl/quic/libssl-lib-quic_record_shared.o", + "ssl/quic/libssl-lib-quic_record_tx.o", + "ssl/quic/libssl-lib-quic_record_util.o", + "ssl/quic/libssl-lib-quic_rstream.o", + "ssl/quic/libssl-lib-quic_rx_depack.o", + "ssl/quic/libssl-lib-quic_sf_list.o", + "ssl/quic/libssl-lib-quic_srt_gen.o", + "ssl/quic/libssl-lib-quic_srtm.o", + "ssl/quic/libssl-lib-quic_sstream.o", + "ssl/quic/libssl-lib-quic_statm.o", + "ssl/quic/libssl-lib-quic_stream_map.o", + "ssl/quic/libssl-lib-quic_thread_assist.o", + "ssl/quic/libssl-lib-quic_tls.o", + "ssl/quic/libssl-lib-quic_tls_api.o", + "ssl/quic/libssl-lib-quic_trace.o", + "ssl/quic/libssl-lib-quic_tserver.o", + "ssl/quic/libssl-lib-quic_txp.o", + "ssl/quic/libssl-lib-quic_txpim.o", + "ssl/quic/libssl-lib-quic_types.o", + "ssl/quic/libssl-lib-quic_wire.o", + "ssl/quic/libssl-lib-quic_wire_pkt.o", + "ssl/quic/libssl-lib-uint_set.o", "ssl/record/libssl-lib-rec_layer_d1.o", "ssl/record/libssl-lib-rec_layer_s3.o", - "ssl/record/libssl-lib-ssl3_buffer.o", - "ssl/record/libssl-lib-ssl3_record.o", - "ssl/record/libssl-lib-ssl3_record_tls13.o", + "ssl/record/methods/libssl-lib-dtls_meth.o", + "ssl/record/methods/libssl-lib-ssl3_meth.o", + "ssl/record/methods/libssl-lib-tls13_meth.o", + "ssl/record/methods/libssl-lib-tls1_meth.o", + "ssl/record/methods/libssl-lib-tls_common.o", + "ssl/record/methods/libssl-lib-tls_multib.o", + "ssl/record/methods/libssl-lib-tlsany_meth.o", + "ssl/rio/libssl-lib-poll_builder.o", + "ssl/rio/libssl-lib-poll_immediate.o", + "ssl/rio/libssl-lib-rio_notifier.o", "ssl/statem/libssl-lib-extensions.o", "ssl/statem/libssl-lib-extensions_clnt.o", "ssl/statem/libssl-lib-extensions_cust.o", @@ -24610,12 +28708,24 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ecx_key.o" => [ "providers/common/der/der_ecx_key.c" ], + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o" => [ + "providers/common/der/der_ml_dsa_gen.c" + ], + "providers/common/der/libcommon-lib-der_ml_dsa_key.o" => [ + "providers/common/der/der_ml_dsa_key.c" + ], "providers/common/der/libcommon-lib-der_rsa_gen.o" => [ "providers/common/der/der_rsa_gen.c" ], "providers/common/der/libcommon-lib-der_rsa_key.o" => [ "providers/common/der/der_rsa_key.c" ], + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o" => [ + "providers/common/der/der_slh_dsa_gen.c" + ], + "providers/common/der/libcommon-lib-der_slh_dsa_key.o" => [ + "providers/common/der/der_slh_dsa_key.c" + ], "providers/common/der/libcommon-lib-der_wrap_gen.o" => [ "providers/common/der/der_wrap_gen.c" ], @@ -24682,6 +28792,9 @@ our %unified_info = ( "providers/common/libfips-lib-securitycheck_fips.o" => [ "providers/common/securitycheck_fips.c" ], + "providers/endecode_test-bin-legacyprov.o" => [ + "providers/legacyprov.c" + ], "providers/evp_extra_test-bin-legacyprov.o" => [ "providers/legacyprov.c" ], @@ -24696,6 +28809,9 @@ our %unified_info = ( "providers/fips/fips-dso-fips_entry.o" => [ "providers/fips/fips_entry.c" ], + "providers/fips/libfips-lib-fipsindicator.o" => [ + "providers/fips/fipsindicator.c" + ], "providers/fips/libfips-lib-fipsprov.o" => [ "providers/fips/fipsprov.c" ], @@ -24759,6 +28875,15 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_hw.o" => [ "providers/implementations/ciphers/cipher_aes_gcm_hw.c" ], + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv.o" => [ + "providers/implementations/ciphers/cipher_aes_gcm_siv.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_hw.o" => [ + "providers/implementations/ciphers/cipher_aes_gcm_siv_hw.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_polyval.o" => [ + "providers/implementations/ciphers/cipher_aes_gcm_siv_polyval.c" + ], "providers/implementations/ciphers/libdefault-lib-cipher_aes_hw.o" => [ "providers/implementations/ciphers/cipher_aes_hw.c" ], @@ -24831,9 +28956,27 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_sm4.o" => [ "providers/implementations/ciphers/cipher_sm4.c" ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm.o" => [ + "providers/implementations/ciphers/cipher_sm4_ccm.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm_hw.o" => [ + "providers/implementations/ciphers/cipher_sm4_ccm_hw.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm.o" => [ + "providers/implementations/ciphers/cipher_sm4_gcm.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm_hw.o" => [ + "providers/implementations/ciphers/cipher_sm4_gcm_hw.c" + ], "providers/implementations/ciphers/libdefault-lib-cipher_sm4_hw.o" => [ "providers/implementations/ciphers/cipher_sm4_hw.c" ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts.o" => [ + "providers/implementations/ciphers/cipher_sm4_xts.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts_hw.o" => [ + "providers/implementations/ciphers/cipher_sm4_xts_hw.c" + ], "providers/implementations/ciphers/libdefault-lib-cipher_tdes.o" => [ "providers/implementations/ciphers/cipher_tdes.c" ], @@ -25053,6 +29196,15 @@ our %unified_info = ( "providers/implementations/encode_decode/libdefault-lib-endecoder_common.o" => [ "providers/implementations/encode_decode/endecoder_common.c" ], + "providers/implementations/encode_decode/libdefault-lib-ml_common_codecs.o" => [ + "providers/implementations/encode_decode/ml_common_codecs.c" + ], + "providers/implementations/encode_decode/libdefault-lib-ml_dsa_codecs.o" => [ + "providers/implementations/encode_decode/ml_dsa_codecs.c" + ], + "providers/implementations/encode_decode/libdefault-lib-ml_kem_codecs.o" => [ + "providers/implementations/encode_decode/ml_kem_codecs.c" + ], "providers/implementations/exchange/libdefault-lib-dh_exch.o" => [ "providers/implementations/exchange/dh_exch.c" ], @@ -25077,9 +29229,15 @@ our %unified_info = ( "providers/implementations/exchange/libfips-lib-kdf_exch.o" => [ "providers/implementations/exchange/kdf_exch.c" ], + "providers/implementations/kdfs/libdefault-lib-argon2.o" => [ + "providers/implementations/kdfs/argon2.c" + ], "providers/implementations/kdfs/libdefault-lib-hkdf.o" => [ "providers/implementations/kdfs/hkdf.c" ], + "providers/implementations/kdfs/libdefault-lib-hmacdrbg_kdf.o" => [ + "providers/implementations/kdfs/hmacdrbg_kdf.c" + ], "providers/implementations/kdfs/libdefault-lib-kbkdf.o" => [ "providers/implementations/kdfs/kbkdf.c" ], @@ -25137,12 +29295,39 @@ our %unified_info = ( "providers/implementations/kdfs/liblegacy-lib-pbkdf1.o" => [ "providers/implementations/kdfs/pbkdf1.c" ], + "providers/implementations/kdfs/liblegacy-lib-pvkkdf.o" => [ + "providers/implementations/kdfs/pvkkdf.c" + ], + "providers/implementations/kem/libdefault-lib-ec_kem.o" => [ + "providers/implementations/kem/ec_kem.c" + ], + "providers/implementations/kem/libdefault-lib-ecx_kem.o" => [ + "providers/implementations/kem/ecx_kem.c" + ], + "providers/implementations/kem/libdefault-lib-kem_util.o" => [ + "providers/implementations/kem/kem_util.c" + ], + "providers/implementations/kem/libdefault-lib-ml_kem_kem.o" => [ + "providers/implementations/kem/ml_kem_kem.c" + ], + "providers/implementations/kem/libdefault-lib-mlx_kem.o" => [ + "providers/implementations/kem/mlx_kem.c" + ], "providers/implementations/kem/libdefault-lib-rsa_kem.o" => [ "providers/implementations/kem/rsa_kem.c" ], + "providers/implementations/kem/libfips-lib-ml_kem_kem.o" => [ + "providers/implementations/kem/ml_kem_kem.c" + ], + "providers/implementations/kem/libfips-lib-mlx_kem.o" => [ + "providers/implementations/kem/mlx_kem.c" + ], "providers/implementations/kem/libfips-lib-rsa_kem.o" => [ "providers/implementations/kem/rsa_kem.c" ], + "providers/implementations/kem/libtemplate-lib-template_kem.o" => [ + "providers/implementations/kem/template_kem.c" + ], "providers/implementations/keymgmt/libdefault-lib-dh_kmgmt.o" => [ "providers/implementations/keymgmt/dh_kmgmt.c" ], @@ -25161,9 +29346,21 @@ our %unified_info = ( "providers/implementations/keymgmt/libdefault-lib-mac_legacy_kmgmt.o" => [ "providers/implementations/keymgmt/mac_legacy_kmgmt.c" ], + "providers/implementations/keymgmt/libdefault-lib-ml_dsa_kmgmt.o" => [ + "providers/implementations/keymgmt/ml_dsa_kmgmt.c" + ], + "providers/implementations/keymgmt/libdefault-lib-ml_kem_kmgmt.o" => [ + "providers/implementations/keymgmt/ml_kem_kmgmt.c" + ], + "providers/implementations/keymgmt/libdefault-lib-mlx_kmgmt.o" => [ + "providers/implementations/keymgmt/mlx_kmgmt.c" + ], "providers/implementations/keymgmt/libdefault-lib-rsa_kmgmt.o" => [ "providers/implementations/keymgmt/rsa_kmgmt.c" ], + "providers/implementations/keymgmt/libdefault-lib-slh_dsa_kmgmt.o" => [ + "providers/implementations/keymgmt/slh_dsa_kmgmt.c" + ], "providers/implementations/keymgmt/libfips-lib-dh_kmgmt.o" => [ "providers/implementations/keymgmt/dh_kmgmt.c" ], @@ -25182,9 +29379,24 @@ our %unified_info = ( "providers/implementations/keymgmt/libfips-lib-mac_legacy_kmgmt.o" => [ "providers/implementations/keymgmt/mac_legacy_kmgmt.c" ], + "providers/implementations/keymgmt/libfips-lib-ml_dsa_kmgmt.o" => [ + "providers/implementations/keymgmt/ml_dsa_kmgmt.c" + ], + "providers/implementations/keymgmt/libfips-lib-ml_kem_kmgmt.o" => [ + "providers/implementations/keymgmt/ml_kem_kmgmt.c" + ], + "providers/implementations/keymgmt/libfips-lib-mlx_kmgmt.o" => [ + "providers/implementations/keymgmt/mlx_kmgmt.c" + ], "providers/implementations/keymgmt/libfips-lib-rsa_kmgmt.o" => [ "providers/implementations/keymgmt/rsa_kmgmt.c" ], + "providers/implementations/keymgmt/libfips-lib-slh_dsa_kmgmt.o" => [ + "providers/implementations/keymgmt/slh_dsa_kmgmt.c" + ], + "providers/implementations/keymgmt/libtemplate-lib-template_kmgmt.o" => [ + "providers/implementations/keymgmt/template_kmgmt.c" + ], "providers/implementations/macs/libdefault-lib-blake2b_mac.o" => [ "providers/implementations/macs/blake2b_mac.c" ], @@ -25221,9 +29433,6 @@ our %unified_info = ( "providers/implementations/macs/libfips-lib-kmac_prov.o" => [ "providers/implementations/macs/kmac_prov.c" ], - "providers/implementations/rands/libdefault-lib-crngt.o" => [ - "providers/implementations/rands/crngt.c" - ], "providers/implementations/rands/libdefault-lib-drbg.o" => [ "providers/implementations/rands/drbg.c" ], @@ -25239,12 +29448,12 @@ our %unified_info = ( "providers/implementations/rands/libdefault-lib-seed_src.o" => [ "providers/implementations/rands/seed_src.c" ], + "providers/implementations/rands/libdefault-lib-seed_src_jitter.o" => [ + "providers/implementations/rands/seed_src_jitter.c" + ], "providers/implementations/rands/libdefault-lib-test_rng.o" => [ "providers/implementations/rands/test_rng.c" ], - "providers/implementations/rands/libfips-lib-crngt.o" => [ - "providers/implementations/rands/crngt.c" - ], "providers/implementations/rands/libfips-lib-drbg.o" => [ "providers/implementations/rands/drbg.c" ], @@ -25257,6 +29466,9 @@ our %unified_info = ( "providers/implementations/rands/libfips-lib-drbg_hmac.o" => [ "providers/implementations/rands/drbg_hmac.c" ], + "providers/implementations/rands/libfips-lib-fips_crng_test.o" => [ + "providers/implementations/rands/fips_crng_test.c" + ], "providers/implementations/rands/libfips-lib-test_rng.o" => [ "providers/implementations/rands/test_rng.c" ], @@ -25284,9 +29496,15 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-mac_legacy_sig.o" => [ "providers/implementations/signature/mac_legacy_sig.c" ], + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o" => [ + "providers/implementations/signature/ml_dsa_sig.c" + ], "providers/implementations/signature/libdefault-lib-rsa_sig.o" => [ "providers/implementations/signature/rsa_sig.c" ], + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o" => [ + "providers/implementations/signature/slh_dsa_sig.c" + ], "providers/implementations/signature/libdefault-lib-sm2_sig.o" => [ "providers/implementations/signature/sm2_sig.c" ], @@ -25302,15 +29520,36 @@ our %unified_info = ( "providers/implementations/signature/libfips-lib-mac_legacy_sig.o" => [ "providers/implementations/signature/mac_legacy_sig.c" ], + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o" => [ + "providers/implementations/signature/ml_dsa_sig.c" + ], "providers/implementations/signature/libfips-lib-rsa_sig.o" => [ "providers/implementations/signature/rsa_sig.c" ], + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o" => [ + "providers/implementations/signature/slh_dsa_sig.c" + ], + "providers/implementations/skeymgmt/libdefault-lib-aes_skmgmt.o" => [ + "providers/implementations/skeymgmt/aes_skmgmt.c" + ], + "providers/implementations/skeymgmt/libdefault-lib-generic.o" => [ + "providers/implementations/skeymgmt/generic.c" + ], + "providers/implementations/skeymgmt/libfips-lib-aes_skmgmt.o" => [ + "providers/implementations/skeymgmt/aes_skmgmt.c" + ], + "providers/implementations/skeymgmt/libfips-lib-generic.o" => [ + "providers/implementations/skeymgmt/generic.c" + ], "providers/implementations/storemgmt/libdefault-lib-file_store.o" => [ "providers/implementations/storemgmt/file_store.c" ], "providers/implementations/storemgmt/libdefault-lib-file_store_any2obj.o" => [ "providers/implementations/storemgmt/file_store_any2obj.c" ], + "providers/implementations/storemgmt/libdefault-lib-winstore_store.o" => [ + "providers/implementations/storemgmt/winstore_store.c" + ], "providers/legacy" => [ "providers/legacy-dso-legacy.res", "providers/legacy-dso-legacyprov.o", @@ -25332,8 +29571,12 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ec_sig.o", "providers/common/der/libcommon-lib-der_ecx_gen.o", "providers/common/der/libcommon-lib-der_ecx_key.o", + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o", + "providers/common/der/libcommon-lib-der_ml_dsa_key.o", "providers/common/der/libcommon-lib-der_rsa_gen.o", "providers/common/der/libcommon-lib-der_rsa_key.o", + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o", + "providers/common/der/libcommon-lib-der_slh_dsa_key.o", "providers/common/der/libcommon-lib-der_wrap_gen.o", "providers/common/libcommon-lib-provider_ctx.o", "providers/common/libcommon-lib-provider_err.o", @@ -25345,7 +29588,7 @@ our %unified_info = ( "providers/implementations/ciphers/libcommon-lib-ciphercommon_gcm_hw.o", "providers/implementations/ciphers/libcommon-lib-ciphercommon_hw.o", "providers/implementations/digests/libcommon-lib-digestcommon.o", - "ssl/record/libcommon-lib-tls_pad.o" + "ssl/record/methods/libcommon-lib-tls_pad.o" ], "providers/libcrypto-lib-baseprov.o" => [ "providers/baseprov.c" @@ -25381,6 +29624,9 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_aes_ccm_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_polyval.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_ocb.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_ocb_hw.o", @@ -25405,7 +29651,13 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_cts.o", "providers/implementations/ciphers/libdefault-lib-cipher_null.o", "providers/implementations/ciphers/libdefault-lib-cipher_sm4.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_sm4_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes_common.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes_default.o", @@ -25434,11 +29686,16 @@ our %unified_info = ( "providers/implementations/encode_decode/libdefault-lib-encode_key2ms.o", "providers/implementations/encode_decode/libdefault-lib-encode_key2text.o", "providers/implementations/encode_decode/libdefault-lib-endecoder_common.o", + "providers/implementations/encode_decode/libdefault-lib-ml_common_codecs.o", + "providers/implementations/encode_decode/libdefault-lib-ml_dsa_codecs.o", + "providers/implementations/encode_decode/libdefault-lib-ml_kem_codecs.o", "providers/implementations/exchange/libdefault-lib-dh_exch.o", "providers/implementations/exchange/libdefault-lib-ecdh_exch.o", "providers/implementations/exchange/libdefault-lib-ecx_exch.o", "providers/implementations/exchange/libdefault-lib-kdf_exch.o", + "providers/implementations/kdfs/libdefault-lib-argon2.o", "providers/implementations/kdfs/libdefault-lib-hkdf.o", + "providers/implementations/kdfs/libdefault-lib-hmacdrbg_kdf.o", "providers/implementations/kdfs/libdefault-lib-kbkdf.o", "providers/implementations/kdfs/libdefault-lib-krb5kdf.o", "providers/implementations/kdfs/libdefault-lib-pbkdf2.o", @@ -25449,6 +29706,11 @@ our %unified_info = ( "providers/implementations/kdfs/libdefault-lib-sskdf.o", "providers/implementations/kdfs/libdefault-lib-tls1_prf.o", "providers/implementations/kdfs/libdefault-lib-x942kdf.o", + "providers/implementations/kem/libdefault-lib-ec_kem.o", + "providers/implementations/kem/libdefault-lib-ecx_kem.o", + "providers/implementations/kem/libdefault-lib-kem_util.o", + "providers/implementations/kem/libdefault-lib-ml_kem_kem.o", + "providers/implementations/kem/libdefault-lib-mlx_kem.o", "providers/implementations/kem/libdefault-lib-rsa_kem.o", "providers/implementations/keymgmt/libdefault-lib-dh_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-dsa_kmgmt.o", @@ -25456,7 +29718,11 @@ our %unified_info = ( "providers/implementations/keymgmt/libdefault-lib-ecx_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-kdf_legacy_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-mac_legacy_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-ml_dsa_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-ml_kem_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-mlx_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-rsa_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-slh_dsa_kmgmt.o", "providers/implementations/macs/libdefault-lib-blake2b_mac.o", "providers/implementations/macs/libdefault-lib-blake2s_mac.o", "providers/implementations/macs/libdefault-lib-cmac_prov.o", @@ -25465,12 +29731,12 @@ our %unified_info = ( "providers/implementations/macs/libdefault-lib-kmac_prov.o", "providers/implementations/macs/libdefault-lib-poly1305_prov.o", "providers/implementations/macs/libdefault-lib-siphash_prov.o", - "providers/implementations/rands/libdefault-lib-crngt.o", "providers/implementations/rands/libdefault-lib-drbg.o", "providers/implementations/rands/libdefault-lib-drbg_ctr.o", "providers/implementations/rands/libdefault-lib-drbg_hash.o", "providers/implementations/rands/libdefault-lib-drbg_hmac.o", "providers/implementations/rands/libdefault-lib-seed_src.o", + "providers/implementations/rands/libdefault-lib-seed_src_jitter.o", "providers/implementations/rands/libdefault-lib-test_rng.o", "providers/implementations/rands/seeding/libdefault-lib-rand_cpu_x86.o", "providers/implementations/rands/seeding/libdefault-lib-rand_tsc.o", @@ -25480,11 +29746,16 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-ecdsa_sig.o", "providers/implementations/signature/libdefault-lib-eddsa_sig.o", "providers/implementations/signature/libdefault-lib-mac_legacy_sig.o", + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o", "providers/implementations/signature/libdefault-lib-rsa_sig.o", + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o", "providers/implementations/signature/libdefault-lib-sm2_sig.o", + "providers/implementations/skeymgmt/libdefault-lib-aes_skmgmt.o", + "providers/implementations/skeymgmt/libdefault-lib-generic.o", "providers/implementations/storemgmt/libdefault-lib-file_store.o", "providers/implementations/storemgmt/libdefault-lib-file_store_any2obj.o", - "ssl/libdefault-lib-s3_cbc.o" + "providers/implementations/storemgmt/libdefault-lib-winstore_store.o", + "ssl/record/methods/libdefault-lib-ssl3_cbc.o" ], "providers/libfips.a" => [ "crypto/aes/libfips-lib-aes-586.o", @@ -25592,14 +29863,15 @@ our %unified_info = ( "crypto/evp/libfips-lib-kem.o", "crypto/evp/libfips-lib-keymgmt_lib.o", "crypto/evp/libfips-lib-keymgmt_meth.o", - "crypto/evp/libfips-lib-m_sigver.o", "crypto/evp/libfips-lib-mac_lib.o", "crypto/evp/libfips-lib-mac_meth.o", "crypto/evp/libfips-lib-p_lib.o", "crypto/evp/libfips-lib-pmeth_check.o", "crypto/evp/libfips-lib-pmeth_gn.o", "crypto/evp/libfips-lib-pmeth_lib.o", + "crypto/evp/libfips-lib-s_lib.o", "crypto/evp/libfips-lib-signature.o", + "crypto/evp/libfips-lib-skeymgmt_meth.o", "crypto/ffc/libfips-lib-ffc_backend.o", "crypto/ffc/libfips-lib-ffc_dh.o", "crypto/ffc/libfips-lib-ffc_key_generate.o", @@ -25607,6 +29879,8 @@ our %unified_info = ( "crypto/ffc/libfips-lib-ffc_params.o", "crypto/ffc/libfips-lib-ffc_params_generate.o", "crypto/ffc/libfips-lib-ffc_params_validate.o", + "crypto/hashtable/libfips-lib-hashfunc.o", + "crypto/hashtable/libfips-lib-hashtable.o", "crypto/hmac/libfips-lib-hmac.o", "crypto/lhash/libfips-lib-lhash.o", "crypto/libfips-lib-asn1_dsa.o", @@ -25628,6 +29902,7 @@ our %unified_info = ( "crypto/libfips-lib-params.o", "crypto/libfips-lib-params_dup.o", "crypto/libfips-lib-params_from_text.o", + "crypto/libfips-lib-params_idx.o", "crypto/libfips-lib-provider_core.o", "crypto/libfips-lib-provider_predefined.o", "crypto/libfips-lib-self_test_core.o", @@ -25636,7 +29911,17 @@ our %unified_info = ( "crypto/libfips-lib-threads_none.o", "crypto/libfips-lib-threads_pthread.o", "crypto/libfips-lib-threads_win.o", + "crypto/libfips-lib-time.o", "crypto/libfips-lib-x86cpuid.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_encoders.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_key.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_key_compress.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_matrix.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_ntt.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_params.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_sample.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_sign.o", + "crypto/ml_kem/libfips-lib-ml_kem.o", "crypto/modes/libfips-lib-cbc128.o", "crypto/modes/libfips-lib-ccm128.o", "crypto/modes/libfips-lib-cfb128.o", @@ -25646,6 +29931,7 @@ our %unified_info = ( "crypto/modes/libfips-lib-ofb128.o", "crypto/modes/libfips-lib-wrap128.o", "crypto/modes/libfips-lib-xts128.o", + "crypto/modes/libfips-lib-xts128gb.o", "crypto/property/libfips-lib-defn_cache.o", "crypto/property/libfips-lib-property.o", "crypto/property/libfips-lib-property_parse.o", @@ -25677,7 +29963,23 @@ our %unified_info = ( "crypto/sha/libfips-lib-sha3.o", "crypto/sha/libfips-lib-sha512-586.o", "crypto/sha/libfips-lib-sha512.o", + "crypto/slh_dsa/libfips-lib-slh_adrs.o", + "crypto/slh_dsa/libfips-lib-slh_dsa.o", + "crypto/slh_dsa/libfips-lib-slh_dsa_hash_ctx.o", + "crypto/slh_dsa/libfips-lib-slh_dsa_key.o", + "crypto/slh_dsa/libfips-lib-slh_fors.o", + "crypto/slh_dsa/libfips-lib-slh_hash.o", + "crypto/slh_dsa/libfips-lib-slh_hypertree.o", + "crypto/slh_dsa/libfips-lib-slh_params.o", + "crypto/slh_dsa/libfips-lib-slh_wots.o", + "crypto/slh_dsa/libfips-lib-slh_xmss.o", "crypto/stack/libfips-lib-stack.o", + "crypto/thread/arch/libfips-lib-thread_none.o", + "crypto/thread/arch/libfips-lib-thread_posix.o", + "crypto/thread/arch/libfips-lib-thread_win.o", + "crypto/thread/libfips-lib-api.o", + "crypto/thread/libfips-lib-arch.o", + "crypto/thread/libfips-lib-internal.o", "providers/common/der/libfips-lib-der_rsa_sig.o", "providers/common/libfips-lib-bio_prov.o", "providers/common/libfips-lib-capabilities.o", @@ -25686,6 +29988,7 @@ our %unified_info = ( "providers/common/libfips-lib-provider_util.o", "providers/common/libfips-lib-securitycheck.o", "providers/common/libfips-lib-securitycheck_fips.o", + "providers/fips/libfips-lib-fipsindicator.o", "providers/fips/libfips-lib-fipsprov.o", "providers/fips/libfips-lib-self_test.o", "providers/fips/libfips-lib-self_test_kats.o", @@ -25723,6 +30026,8 @@ our %unified_info = ( "providers/implementations/kdfs/libfips-lib-sskdf.o", "providers/implementations/kdfs/libfips-lib-tls1_prf.o", "providers/implementations/kdfs/libfips-lib-x942kdf.o", + "providers/implementations/kem/libfips-lib-ml_kem_kem.o", + "providers/implementations/kem/libfips-lib-mlx_kem.o", "providers/implementations/kem/libfips-lib-rsa_kem.o", "providers/implementations/keymgmt/libfips-lib-dh_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-dsa_kmgmt.o", @@ -25730,24 +30035,32 @@ our %unified_info = ( "providers/implementations/keymgmt/libfips-lib-ecx_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-kdf_legacy_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-mac_legacy_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-ml_dsa_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-ml_kem_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-mlx_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-rsa_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-slh_dsa_kmgmt.o", "providers/implementations/macs/libfips-lib-cmac_prov.o", "providers/implementations/macs/libfips-lib-gmac_prov.o", "providers/implementations/macs/libfips-lib-hmac_prov.o", "providers/implementations/macs/libfips-lib-kmac_prov.o", - "providers/implementations/rands/libfips-lib-crngt.o", "providers/implementations/rands/libfips-lib-drbg.o", "providers/implementations/rands/libfips-lib-drbg_ctr.o", "providers/implementations/rands/libfips-lib-drbg_hash.o", "providers/implementations/rands/libfips-lib-drbg_hmac.o", + "providers/implementations/rands/libfips-lib-fips_crng_test.o", "providers/implementations/rands/libfips-lib-test_rng.o", "providers/implementations/signature/libfips-lib-dsa_sig.o", "providers/implementations/signature/libfips-lib-ecdsa_sig.o", "providers/implementations/signature/libfips-lib-eddsa_sig.o", "providers/implementations/signature/libfips-lib-mac_legacy_sig.o", + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o", "providers/implementations/signature/libfips-lib-rsa_sig.o", + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o", + "providers/implementations/skeymgmt/libfips-lib-aes_skmgmt.o", + "providers/implementations/skeymgmt/libfips-lib-generic.o", "providers/libcommon.a", - "ssl/libfips-lib-s3_cbc.o" + "ssl/record/methods/libfips-lib-ssl3_cbc.o" ], "providers/liblegacy-lib-prov_running.o" => [ "providers/prov_running.c" @@ -25777,13 +30090,12 @@ our %unified_info = ( "providers/implementations/digests/liblegacy-lib-ripemd_prov.o", "providers/implementations/digests/liblegacy-lib-wp_prov.o", "providers/implementations/kdfs/liblegacy-lib-pbkdf1.o", + "providers/implementations/kdfs/liblegacy-lib-pvkkdf.o", "providers/liblegacy-lib-prov_running.o" ], - "ssl/libdefault-lib-s3_cbc.o" => [ - "ssl/s3_cbc.c" - ], - "ssl/libfips-lib-s3_cbc.o" => [ - "ssl/s3_cbc.c" + "providers/libtemplate.a" => [ + "providers/implementations/kem/libtemplate-lib-template_kem.o", + "providers/implementations/keymgmt/libtemplate-lib-template_kmgmt.o" ], "ssl/libssl-lib-bio_ssl.o" => [ "ssl/bio_ssl.c" @@ -25803,6 +30115,9 @@ our %unified_info = ( "ssl/libssl-lib-pqueue.o" => [ "ssl/pqueue.c" ], + "ssl/libssl-lib-priority_queue.o" => [ + "ssl/priority_queue.c" + ], "ssl/libssl-lib-s3_enc.o" => [ "ssl/s3_enc.c" ], @@ -25818,15 +30133,15 @@ our %unified_info = ( "ssl/libssl-lib-ssl_cert.o" => [ "ssl/ssl_cert.c" ], + "ssl/libssl-lib-ssl_cert_comp.o" => [ + "ssl/ssl_cert_comp.c" + ], "ssl/libssl-lib-ssl_ciph.o" => [ "ssl/ssl_ciph.c" ], "ssl/libssl-lib-ssl_conf.o" => [ "ssl/ssl_conf.c" ], - "ssl/libssl-lib-ssl_err.o" => [ - "ssl/ssl_err.c" - ], "ssl/libssl-lib-ssl_err_legacy.o" => [ "ssl/ssl_err_legacy.c" ], @@ -25875,11 +30190,131 @@ our %unified_info = ( "ssl/libssl-lib-tls_srp.o" => [ "ssl/tls_srp.c" ], - "ssl/record/libcommon-lib-tls_pad.o" => [ - "ssl/record/tls_pad.c" + "ssl/quic/libssl-lib-cc_newreno.o" => [ + "ssl/quic/cc_newreno.c" + ], + "ssl/quic/libssl-lib-json_enc.o" => [ + "ssl/quic/json_enc.c" + ], + "ssl/quic/libssl-lib-qlog.o" => [ + "ssl/quic/qlog.c" + ], + "ssl/quic/libssl-lib-qlog_event_helpers.o" => [ + "ssl/quic/qlog_event_helpers.c" + ], + "ssl/quic/libssl-lib-quic_ackm.o" => [ + "ssl/quic/quic_ackm.c" + ], + "ssl/quic/libssl-lib-quic_cfq.o" => [ + "ssl/quic/quic_cfq.c" + ], + "ssl/quic/libssl-lib-quic_channel.o" => [ + "ssl/quic/quic_channel.c" + ], + "ssl/quic/libssl-lib-quic_demux.o" => [ + "ssl/quic/quic_demux.c" + ], + "ssl/quic/libssl-lib-quic_engine.o" => [ + "ssl/quic/quic_engine.c" + ], + "ssl/quic/libssl-lib-quic_fc.o" => [ + "ssl/quic/quic_fc.c" + ], + "ssl/quic/libssl-lib-quic_fifd.o" => [ + "ssl/quic/quic_fifd.c" + ], + "ssl/quic/libssl-lib-quic_impl.o" => [ + "ssl/quic/quic_impl.c" + ], + "ssl/quic/libssl-lib-quic_lcidm.o" => [ + "ssl/quic/quic_lcidm.c" + ], + "ssl/quic/libssl-lib-quic_method.o" => [ + "ssl/quic/quic_method.c" + ], + "ssl/quic/libssl-lib-quic_obj.o" => [ + "ssl/quic/quic_obj.c" + ], + "ssl/quic/libssl-lib-quic_port.o" => [ + "ssl/quic/quic_port.c" + ], + "ssl/quic/libssl-lib-quic_rcidm.o" => [ + "ssl/quic/quic_rcidm.c" + ], + "ssl/quic/libssl-lib-quic_reactor.o" => [ + "ssl/quic/quic_reactor.c" + ], + "ssl/quic/libssl-lib-quic_reactor_wait_ctx.o" => [ + "ssl/quic/quic_reactor_wait_ctx.c" + ], + "ssl/quic/libssl-lib-quic_record_rx.o" => [ + "ssl/quic/quic_record_rx.c" + ], + "ssl/quic/libssl-lib-quic_record_shared.o" => [ + "ssl/quic/quic_record_shared.c" + ], + "ssl/quic/libssl-lib-quic_record_tx.o" => [ + "ssl/quic/quic_record_tx.c" + ], + "ssl/quic/libssl-lib-quic_record_util.o" => [ + "ssl/quic/quic_record_util.c" ], - "ssl/record/libssl-lib-dtls1_bitmap.o" => [ - "ssl/record/dtls1_bitmap.c" + "ssl/quic/libssl-lib-quic_rstream.o" => [ + "ssl/quic/quic_rstream.c" + ], + "ssl/quic/libssl-lib-quic_rx_depack.o" => [ + "ssl/quic/quic_rx_depack.c" + ], + "ssl/quic/libssl-lib-quic_sf_list.o" => [ + "ssl/quic/quic_sf_list.c" + ], + "ssl/quic/libssl-lib-quic_srt_gen.o" => [ + "ssl/quic/quic_srt_gen.c" + ], + "ssl/quic/libssl-lib-quic_srtm.o" => [ + "ssl/quic/quic_srtm.c" + ], + "ssl/quic/libssl-lib-quic_sstream.o" => [ + "ssl/quic/quic_sstream.c" + ], + "ssl/quic/libssl-lib-quic_statm.o" => [ + "ssl/quic/quic_statm.c" + ], + "ssl/quic/libssl-lib-quic_stream_map.o" => [ + "ssl/quic/quic_stream_map.c" + ], + "ssl/quic/libssl-lib-quic_thread_assist.o" => [ + "ssl/quic/quic_thread_assist.c" + ], + "ssl/quic/libssl-lib-quic_tls.o" => [ + "ssl/quic/quic_tls.c" + ], + "ssl/quic/libssl-lib-quic_tls_api.o" => [ + "ssl/quic/quic_tls_api.c" + ], + "ssl/quic/libssl-lib-quic_trace.o" => [ + "ssl/quic/quic_trace.c" + ], + "ssl/quic/libssl-lib-quic_tserver.o" => [ + "ssl/quic/quic_tserver.c" + ], + "ssl/quic/libssl-lib-quic_txp.o" => [ + "ssl/quic/quic_txp.c" + ], + "ssl/quic/libssl-lib-quic_txpim.o" => [ + "ssl/quic/quic_txpim.c" + ], + "ssl/quic/libssl-lib-quic_types.o" => [ + "ssl/quic/quic_types.c" + ], + "ssl/quic/libssl-lib-quic_wire.o" => [ + "ssl/quic/quic_wire.c" + ], + "ssl/quic/libssl-lib-quic_wire_pkt.o" => [ + "ssl/quic/quic_wire_pkt.c" + ], + "ssl/quic/libssl-lib-uint_set.o" => [ + "ssl/quic/uint_set.c" ], "ssl/record/libssl-lib-rec_layer_d1.o" => [ "ssl/record/rec_layer_d1.c" @@ -25887,14 +30322,44 @@ our %unified_info = ( "ssl/record/libssl-lib-rec_layer_s3.o" => [ "ssl/record/rec_layer_s3.c" ], - "ssl/record/libssl-lib-ssl3_buffer.o" => [ - "ssl/record/ssl3_buffer.c" + "ssl/record/methods/libcommon-lib-tls_pad.o" => [ + "ssl/record/methods/tls_pad.c" + ], + "ssl/record/methods/libdefault-lib-ssl3_cbc.o" => [ + "ssl/record/methods/ssl3_cbc.c" + ], + "ssl/record/methods/libfips-lib-ssl3_cbc.o" => [ + "ssl/record/methods/ssl3_cbc.c" + ], + "ssl/record/methods/libssl-lib-dtls_meth.o" => [ + "ssl/record/methods/dtls_meth.c" + ], + "ssl/record/methods/libssl-lib-ssl3_meth.o" => [ + "ssl/record/methods/ssl3_meth.c" + ], + "ssl/record/methods/libssl-lib-tls13_meth.o" => [ + "ssl/record/methods/tls13_meth.c" + ], + "ssl/record/methods/libssl-lib-tls1_meth.o" => [ + "ssl/record/methods/tls1_meth.c" ], - "ssl/record/libssl-lib-ssl3_record.o" => [ - "ssl/record/ssl3_record.c" + "ssl/record/methods/libssl-lib-tls_common.o" => [ + "ssl/record/methods/tls_common.c" ], - "ssl/record/libssl-lib-ssl3_record_tls13.o" => [ - "ssl/record/ssl3_record_tls13.c" + "ssl/record/methods/libssl-lib-tls_multib.o" => [ + "ssl/record/methods/tls_multib.c" + ], + "ssl/record/methods/libssl-lib-tlsany_meth.o" => [ + "ssl/record/methods/tlsany_meth.c" + ], + "ssl/rio/libssl-lib-poll_builder.o" => [ + "ssl/rio/poll_builder.c" + ], + "ssl/rio/libssl-lib-poll_immediate.o" => [ + "ssl/rio/poll_immediate.c" + ], + "ssl/rio/libssl-lib-rio_notifier.o" => [ + "ssl/rio/rio_notifier.c" ], "ssl/statem/libssl-lib-extensions.o" => [ "ssl/statem/extensions.c" @@ -25990,6 +30455,8 @@ our %unified_info = ( "test/asn1_string_table_test.c" ], "test/asn1_time_test" => [ + "crypto/asn1/asn1_time_test-bin-a_time.o", + "crypto/asn1_time_test-bin-ctype.o", "test/asn1_time_test-bin-asn1_time_test.o" ], "test/asn1_time_test-bin-asn1_time_test.o" => [ @@ -26020,6 +30487,18 @@ our %unified_info = ( "test/bftest-bin-bftest.o" => [ "test/bftest.c" ], + "test/bio_addr_test" => [ + "test/bio_addr_test-bin-bio_addr_test.o" + ], + "test/bio_addr_test-bin-bio_addr_test.o" => [ + "test/bio_addr_test.c" + ], + "test/bio_base64_test" => [ + "test/bio_base64_test-bin-bio_base64_test.o" + ], + "test/bio_base64_test-bin-bio_base64_test.o" => [ + "test/bio_base64_test.c" + ], "test/bio_callback_test" => [ "test/bio_callback_test-bin-bio_callback_test.o" ], @@ -26032,6 +30511,12 @@ our %unified_info = ( "test/bio_core_test-bin-bio_core_test.o" => [ "test/bio_core_test.c" ], + "test/bio_dgram_test" => [ + "test/bio_dgram_test-bin-bio_dgram_test.o" + ], + "test/bio_dgram_test-bin-bio_dgram_test.o" => [ + "test/bio_dgram_test.c" + ], "test/bio_enc_test" => [ "test/bio_enc_test-bin-bio_enc_test.o" ], @@ -26044,6 +30529,12 @@ our %unified_info = ( "test/bio_memleak_test-bin-bio_memleak_test.o" => [ "test/bio_memleak_test.c" ], + "test/bio_meth_test" => [ + "test/bio_meth_test-bin-bio_meth_test.o" + ], + "test/bio_meth_test-bin-bio_meth_test.o" => [ + "test/bio_meth_test.c" + ], "test/bio_prefix_text" => [ "test/bio_prefix_text-bin-bio_prefix_text.o" ], @@ -26062,6 +30553,12 @@ our %unified_info = ( "test/bio_readbuffer_test-bin-bio_readbuffer_test.o" => [ "test/bio_readbuffer_test.c" ], + "test/bio_tfo_test" => [ + "test/bio_tfo_test-bin-bio_tfo_test.o" + ], + "test/bio_tfo_test-bin-bio_tfo_test.o" => [ + "test/bio_tfo_test.c" + ], "test/bioprinttest" => [ "test/bioprinttest-bin-bioprinttest.o" ], @@ -26080,6 +30577,12 @@ our %unified_info = ( "test/bntest-bin-bntest.o" => [ "test/bntest.c" ], + "test/build_wincrypt_test" => [ + "test/build_wincrypt_test-bin-build_wincrypt_test.o" + ], + "test/build_wincrypt_test-bin-build_wincrypt_test.o" => [ + "test/build_wincrypt_test.c" + ], "test/buildtest_c_aes" => [ "test/buildtest_c_aes-bin-buildtest_aes.o" ], @@ -26110,6 +30613,12 @@ our %unified_info = ( "test/buildtest_c_buffer-bin-buildtest_buffer.o" => [ "test/buildtest_buffer.c" ], + "test/buildtest_c_byteorder" => [ + "test/buildtest_c_byteorder-bin-buildtest_byteorder.o" + ], + "test/buildtest_c_byteorder-bin-buildtest_byteorder.o" => [ + "test/buildtest_byteorder.c" + ], "test/buildtest_c_camellia" => [ "test/buildtest_c_camellia-bin-buildtest_camellia.o" ], @@ -26158,12 +30667,6 @@ our %unified_info = ( "test/buildtest_c_core_dispatch-bin-buildtest_core_dispatch.o" => [ "test/buildtest_core_dispatch.c" ], - "test/buildtest_c_core_names" => [ - "test/buildtest_c_core_names-bin-buildtest_core_names.o" - ], - "test/buildtest_c_core_names-bin-buildtest_core_names.o" => [ - "test/buildtest_core_names.c" - ], "test/buildtest_c_core_object" => [ "test/buildtest_c_core_object-bin-buildtest_core_object.o" ], @@ -26212,6 +30715,12 @@ our %unified_info = ( "test/buildtest_c_e_os2-bin-buildtest_e_os2.o" => [ "test/buildtest_e_os2.c" ], + "test/buildtest_c_e_ostime" => [ + "test/buildtest_c_e_ostime-bin-buildtest_e_ostime.o" + ], + "test/buildtest_c_e_ostime-bin-buildtest_e_ostime.o" => [ + "test/buildtest_e_ostime.c" + ], "test/buildtest_c_ebcdic" => [ "test/buildtest_c_ebcdic-bin-buildtest_ebcdic.o" ], @@ -26266,6 +30775,12 @@ our %unified_info = ( "test/buildtest_c_hmac-bin-buildtest_hmac.o" => [ "test/buildtest_hmac.c" ], + "test/buildtest_c_hpke" => [ + "test/buildtest_c_hpke-bin-buildtest_hpke.o" + ], + "test/buildtest_c_hpke-bin-buildtest_hpke.o" => [ + "test/buildtest_hpke.c" + ], "test/buildtest_c_http" => [ "test/buildtest_c_http-bin-buildtest_http.o" ], @@ -26278,6 +30793,12 @@ our %unified_info = ( "test/buildtest_c_idea-bin-buildtest_idea.o" => [ "test/buildtest_idea.c" ], + "test/buildtest_c_indicator" => [ + "test/buildtest_c_indicator-bin-buildtest_indicator.o" + ], + "test/buildtest_c_indicator-bin-buildtest_indicator.o" => [ + "test/buildtest_indicator.c" + ], "test/buildtest_c_kdf" => [ "test/buildtest_c_kdf-bin-buildtest_kdf.o" ], @@ -26308,6 +30829,12 @@ our %unified_info = ( "test/buildtest_c_mdc2-bin-buildtest_mdc2.o" => [ "test/buildtest_mdc2.c" ], + "test/buildtest_c_ml_kem" => [ + "test/buildtest_c_ml_kem-bin-buildtest_ml_kem.o" + ], + "test/buildtest_c_ml_kem-bin-buildtest_ml_kem.o" => [ + "test/buildtest_ml_kem.c" + ], "test/buildtest_c_modes" => [ "test/buildtest_c_modes-bin-buildtest_modes.o" ], @@ -26368,6 +30895,12 @@ our %unified_info = ( "test/buildtest_c_provider-bin-buildtest_provider.o" => [ "test/buildtest_provider.c" ], + "test/buildtest_c_quic" => [ + "test/buildtest_c_quic-bin-buildtest_quic.o" + ], + "test/buildtest_c_quic-bin-buildtest_quic.o" => [ + "test/buildtest_quic.c" + ], "test/buildtest_c_rand" => [ "test/buildtest_c_rand-bin-buildtest_rand.o" ], @@ -26452,6 +30985,12 @@ our %unified_info = ( "test/buildtest_c_symhacks-bin-buildtest_symhacks.o" => [ "test/buildtest_symhacks.c" ], + "test/buildtest_c_thread" => [ + "test/buildtest_c_thread-bin-buildtest_thread.o" + ], + "test/buildtest_c_thread-bin-buildtest_thread.o" => [ + "test/buildtest_thread.c" + ], "test/buildtest_c_tls1" => [ "test/buildtest_c_tls1-bin-buildtest_tls1.o" ], @@ -26482,6 +31021,29 @@ our %unified_info = ( "test/buildtest_c_whrlpool-bin-buildtest_whrlpool.o" => [ "test/buildtest_whrlpool.c" ], + "test/byteorder_test" => [ + "test/byteorder_test-bin-byteorder_test.o" + ], + "test/byteorder_test-bin-byteorder_test.o" => [ + "test/byteorder_test.c" + ], + "test/ca_internals_test" => [ + "apps/ca_internals_test-bin-ca.o", + "apps/lib/ca_internals_test-bin-app_libctx.o", + "apps/lib/ca_internals_test-bin-app_provider.o", + "apps/lib/ca_internals_test-bin-app_rand.o", + "apps/lib/ca_internals_test-bin-app_x509.o", + "apps/lib/ca_internals_test-bin-apps.o", + "apps/lib/ca_internals_test-bin-apps_ui.o", + "apps/lib/ca_internals_test-bin-engine.o", + "apps/lib/ca_internals_test-bin-fmt.o", + "crypto/asn1/ca_internals_test-bin-a_time.o", + "crypto/ca_internals_test-bin-ctype.o", + "test/ca_internals_test-bin-ca_internals_test.o" + ], + "test/ca_internals_test-bin-ca_internals_test.o" => [ + "test/ca_internals_test.c" + ], "test/casttest" => [ "test/casttest-bin-casttest.o" ], @@ -26660,6 +31222,12 @@ our %unified_info = ( "test/danetest-bin-danetest.o" => [ "test/danetest.c" ], + "test/decoder_propq_test" => [ + "test/decoder_propq_test-bin-decoder_propq_test.o" + ], + "test/decoder_propq_test-bin-decoder_propq_test.o" => [ + "test/decoder_propq_test.c" + ], "test/defltfips_test" => [ "test/defltfips_test-bin-defltfips_test.o" ], @@ -26741,6 +31309,7 @@ our %unified_info = ( "test/ectest.c" ], "test/endecode_test" => [ + "providers/endecode_test-bin-legacyprov.o", "test/endecode_test-bin-endecode_test.o", "test/helpers/endecode_test-bin-predefined_dhparams.o" ], @@ -26773,17 +31342,29 @@ our %unified_info = ( ], "test/evp_extra_test" => [ "providers/evp_extra_test-bin-legacyprov.o", - "test/evp_extra_test-bin-evp_extra_test.o" + "test/evp_extra_test-bin-evp_extra_test.o", + "test/evp_extra_test-bin-fake_pipelineprov.o", + "test/evp_extra_test-bin-fake_rsaprov.o" ], "test/evp_extra_test-bin-evp_extra_test.o" => [ "test/evp_extra_test.c" ], + "test/evp_extra_test-bin-fake_pipelineprov.o" => [ + "test/fake_pipelineprov.c" + ], + "test/evp_extra_test-bin-fake_rsaprov.o" => [ + "test/fake_rsaprov.c" + ], "test/evp_extra_test2" => [ - "test/evp_extra_test2-bin-evp_extra_test2.o" + "test/evp_extra_test2-bin-evp_extra_test2.o", + "test/evp_extra_test2-bin-tls-provider.o" ], "test/evp_extra_test2-bin-evp_extra_test2.o" => [ "test/evp_extra_test2.c" ], + "test/evp_extra_test2-bin-tls-provider.o" => [ + "test/tls-provider.c" + ], "test/evp_fetch_prov_test" => [ "test/evp_fetch_prov_test-bin-evp_fetch_prov_test.o" ], @@ -26808,6 +31389,12 @@ our %unified_info = ( "test/evp_pkey_ctx_new_from_name-bin-evp_pkey_ctx_new_from_name.o" => [ "test/evp_pkey_ctx_new_from_name.c" ], + "test/evp_pkey_dhkem_test" => [ + "test/evp_pkey_dhkem_test-bin-evp_pkey_dhkem_test.o" + ], + "test/evp_pkey_dhkem_test-bin-evp_pkey_dhkem_test.o" => [ + "test/evp_pkey_dhkem_test.c" + ], "test/evp_pkey_dparams_test" => [ "test/evp_pkey_dparams_test-bin-evp_pkey_dparams_test.o" ], @@ -26820,12 +31407,28 @@ our %unified_info = ( "test/evp_pkey_provided_test-bin-evp_pkey_provided_test.o" => [ "test/evp_pkey_provided_test.c" ], + "test/evp_skey_test" => [ + "test/evp_skey_test-bin-evp_skey_test.o", + "test/evp_skey_test-bin-fake_cipherprov.o" + ], + "test/evp_skey_test-bin-evp_skey_test.o" => [ + "test/evp_skey_test.c" + ], + "test/evp_skey_test-bin-fake_cipherprov.o" => [ + "test/fake_cipherprov.c" + ], "test/evp_test" => [ "test/evp_test-bin-evp_test.o" ], "test/evp_test-bin-evp_test.o" => [ "test/evp_test.c" ], + "test/evp_xof_test" => [ + "test/evp_xof_test-bin-evp_xof_test.o" + ], + "test/evp_xof_test-bin-evp_xof_test.o" => [ + "test/evp_xof_test.c" + ], "test/exdatatest" => [ "test/exdatatest-bin-exdatatest.o" ], @@ -26911,15 +31514,108 @@ our %unified_info = ( "test/helpers/fatalerrtest-bin-ssltestlib.o" => [ "test/helpers/ssltestlib.c" ], + "test/helpers/json_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/json_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/json_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/json_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/pkcs12_api_test-bin-pkcs12.o" => [ + "test/helpers/pkcs12.c" + ], "test/helpers/pkcs12_format_test-bin-pkcs12.o" => [ "test/helpers/pkcs12.c" ], + "test/helpers/quic_multistream_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quic_multistream_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quic_multistream_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quic_multistream_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quic_newcid_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quic_newcid_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quic_newcid_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quic_newcid_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quic_radix_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quic_radix_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quic_radix_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quic_radix_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quic_srt_gen_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quic_srt_gen_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quic_srt_gen_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quic_srt_gen_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quicapitest-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quicapitest-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quicapitest-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quicapitest-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quicfaultstest-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quicfaultstest-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quicfaultstest-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quicfaultstest-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], "test/helpers/recordlentest-bin-ssltestlib.o" => [ "test/helpers/ssltestlib.c" ], + "test/helpers/rpktest-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], "test/helpers/servername_test-bin-ssltestlib.o" => [ "test/helpers/ssltestlib.c" ], + "test/helpers/ssl_handshake_rtt_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], "test/helpers/ssl_old_test-bin-predefined_dhparams.o" => [ "test/helpers/predefined_dhparams.c" ], @@ -26947,6 +31643,9 @@ our %unified_info = ( "test/helpers/tls13ccstest-bin-ssltestlib.o" => [ "test/helpers/ssltestlib.c" ], + "test/helpers/tls13groupselection_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], "test/hexstr_test" => [ "test/hexstr_test-bin-hexstr_test.o" ], @@ -26959,6 +31658,12 @@ our %unified_info = ( "test/hmactest-bin-hmactest.o" => [ "test/hmactest.c" ], + "test/hpke_test" => [ + "test/hpke_test-bin-hpke_test.o" + ], + "test/hpke_test-bin-hpke_test.o" => [ + "test/hpke_test.c" + ], "test/http_test" => [ "test/http_test-bin-http_test.o" ], @@ -26977,6 +31682,16 @@ our %unified_info = ( "test/igetest-bin-igetest.o" => [ "test/igetest.c" ], + "test/json_test" => [ + "test/helpers/json_test-bin-noisydgrambio.o", + "test/helpers/json_test-bin-pktsplitbio.o", + "test/helpers/json_test-bin-quictestlib.o", + "test/helpers/json_test-bin-ssltestlib.o", + "test/json_test-bin-json_test.o" + ], + "test/json_test-bin-json_test.o" => [ + "test/json_test.c" + ], "test/keymgmt_internal_test" => [ "test/keymgmt_internal_test-bin-keymgmt_internal_test.o" ], @@ -26998,6 +31713,7 @@ our %unified_info = ( "test/testutil/libtestutil-lib-driver.o", "test/testutil/libtestutil-lib-fake_random.o", "test/testutil/libtestutil-lib-format_output.o", + "test/testutil/libtestutil-lib-helper.o", "test/testutil/libtestutil-lib-load.o", "test/testutil/libtestutil-lib-main.o", "test/testutil/libtestutil-lib-options.o", @@ -27010,6 +31726,12 @@ our %unified_info = ( "test/testutil/libtestutil-lib-tests.o", "test/testutil/libtestutil-lib-testutil_init.o" ], + "test/list_test" => [ + "test/list_test-bin-list_test.o" + ], + "test/list_test-bin-list_test.o" => [ + "test/list_test.c" + ], "test/localetest" => [ "test/localetest-bin-localetest.o" ], @@ -27028,12 +31750,36 @@ our %unified_info = ( "test/mdc2test-bin-mdc2test.o" => [ "test/mdc2test.c" ], + "test/membio_test" => [ + "test/membio_test-bin-membio_test.o" + ], + "test/membio_test-bin-membio_test.o" => [ + "test/membio_test.c" + ], "test/memleaktest" => [ "test/memleaktest-bin-memleaktest.o" ], "test/memleaktest-bin-memleaktest.o" => [ "test/memleaktest.c" ], + "test/ml_dsa_test" => [ + "test/ml_dsa_test-bin-ml_dsa_test.o" + ], + "test/ml_dsa_test-bin-ml_dsa_test.o" => [ + "test/ml_dsa_test.c" + ], + "test/ml_kem_evp_extra_test" => [ + "test/ml_kem_evp_extra_test-bin-ml_kem_evp_extra_test.o" + ], + "test/ml_kem_evp_extra_test-bin-ml_kem_evp_extra_test.o" => [ + "test/ml_kem_evp_extra_test.c" + ], + "test/ml_kem_internal_test" => [ + "test/ml_kem_internal_test-bin-ml_kem_internal_test.o" + ], + "test/ml_kem_internal_test-bin-ml_kem_internal_test.o" => [ + "test/ml_kem_internal_test.c" + ], "test/modes_internal_test" => [ "test/modes_internal_test-bin-modes_internal_test.o" ], @@ -27079,11 +31825,18 @@ our %unified_info = ( "test/p_test.c" ], "test/packettest" => [ + "crypto/packettest-bin-quic_vlint.o", "test/packettest-bin-packettest.o" ], "test/packettest-bin-packettest.o" => [ "test/packettest.c" ], + "test/pairwise_fail_test" => [ + "test/pairwise_fail_test-bin-pairwise_fail_test.o" + ], + "test/pairwise_fail_test-bin-pairwise_fail_test.o" => [ + "test/pairwise_fail_test.c" + ], "test/param_build_test" => [ "test/param_build_test-bin-param_build_test.o" ], @@ -27132,6 +31885,13 @@ our %unified_info = ( "test/pemtest-bin-pemtest.o" => [ "test/pemtest.c" ], + "test/pkcs12_api_test" => [ + "test/helpers/pkcs12_api_test-bin-pkcs12.o", + "test/pkcs12_api_test-bin-pkcs12_api_test.o" + ], + "test/pkcs12_api_test-bin-pkcs12_api_test.o" => [ + "test/pkcs12_api_test.c" + ], "test/pkcs12_format_test" => [ "test/helpers/pkcs12_format_test-bin-pkcs12.o", "test/pkcs12_format_test-bin-pkcs12_format_test.o" @@ -27163,6 +31923,12 @@ our %unified_info = ( "test/poly1305_internal_test-bin-poly1305_internal_test.o" => [ "test/poly1305_internal_test.c" ], + "test/priority_queue_test" => [ + "test/priority_queue_test-bin-priority_queue_test.o" + ], + "test/priority_queue_test-bin-priority_queue_test.o" => [ + "test/priority_queue_test.c" + ], "test/property_test" => [ "test/property_test-bin-property_test.o" ], @@ -27181,6 +31947,12 @@ our %unified_info = ( "test/provfetchtest-bin-provfetchtest.o" => [ "test/provfetchtest.c" ], + "test/provider_default_search_path_test" => [ + "test/provider_default_search_path_test-bin-provider_default_search_path_test.o" + ], + "test/provider_default_search_path_test-bin-provider_default_search_path_test.o" => [ + "test/provider_default_search_path_test.c" + ], "test/provider_fallback_test" => [ "test/provider_fallback_test-bin-provider_fallback_test.o" ], @@ -27229,6 +32001,174 @@ our %unified_info = ( "test/punycode_test-bin-punycode_test.o" => [ "test/punycode_test.c" ], + "test/quic_ackm_test" => [ + "test/quic_ackm_test-bin-cc_dummy.o", + "test/quic_ackm_test-bin-quic_ackm_test.o" + ], + "test/quic_ackm_test-bin-cc_dummy.o" => [ + "test/cc_dummy.c" + ], + "test/quic_ackm_test-bin-quic_ackm_test.o" => [ + "test/quic_ackm_test.c" + ], + "test/quic_cc_test" => [ + "test/quic_cc_test-bin-quic_cc_test.o" + ], + "test/quic_cc_test-bin-quic_cc_test.o" => [ + "test/quic_cc_test.c" + ], + "test/quic_cfq_test" => [ + "test/quic_cfq_test-bin-quic_cfq_test.o" + ], + "test/quic_cfq_test-bin-quic_cfq_test.o" => [ + "test/quic_cfq_test.c" + ], + "test/quic_client_test" => [ + "test/quic_client_test-bin-quic_client_test.o" + ], + "test/quic_client_test-bin-quic_client_test.o" => [ + "test/quic_client_test.c" + ], + "test/quic_fc_test" => [ + "test/quic_fc_test-bin-quic_fc_test.o" + ], + "test/quic_fc_test-bin-quic_fc_test.o" => [ + "test/quic_fc_test.c" + ], + "test/quic_fifd_test" => [ + "test/quic_fifd_test-bin-cc_dummy.o", + "test/quic_fifd_test-bin-quic_fifd_test.o" + ], + "test/quic_fifd_test-bin-cc_dummy.o" => [ + "test/cc_dummy.c" + ], + "test/quic_fifd_test-bin-quic_fifd_test.o" => [ + "test/quic_fifd_test.c" + ], + "test/quic_lcidm_test" => [ + "test/quic_lcidm_test-bin-quic_lcidm_test.o" + ], + "test/quic_lcidm_test-bin-quic_lcidm_test.o" => [ + "test/quic_lcidm_test.c" + ], + "test/quic_multistream_test" => [ + "test/helpers/quic_multistream_test-bin-noisydgrambio.o", + "test/helpers/quic_multistream_test-bin-pktsplitbio.o", + "test/helpers/quic_multistream_test-bin-quictestlib.o", + "test/helpers/quic_multistream_test-bin-ssltestlib.o", + "test/quic_multistream_test-bin-quic_multistream_test.o" + ], + "test/quic_multistream_test-bin-quic_multistream_test.o" => [ + "test/quic_multistream_test.c" + ], + "test/quic_newcid_test" => [ + "test/helpers/quic_newcid_test-bin-noisydgrambio.o", + "test/helpers/quic_newcid_test-bin-pktsplitbio.o", + "test/helpers/quic_newcid_test-bin-quictestlib.o", + "test/helpers/quic_newcid_test-bin-ssltestlib.o", + "test/quic_newcid_test-bin-quic_newcid_test.o" + ], + "test/quic_newcid_test-bin-quic_newcid_test.o" => [ + "test/quic_newcid_test.c" + ], + "test/quic_qlog_test" => [ + "test/quic_qlog_test-bin-quic_qlog_test.o" + ], + "test/quic_qlog_test-bin-quic_qlog_test.o" => [ + "test/quic_qlog_test.c" + ], + "test/quic_radix_test" => [ + "test/helpers/quic_radix_test-bin-noisydgrambio.o", + "test/helpers/quic_radix_test-bin-pktsplitbio.o", + "test/helpers/quic_radix_test-bin-quictestlib.o", + "test/helpers/quic_radix_test-bin-ssltestlib.o", + "test/radix/quic_radix_test-bin-quic_radix.o" + ], + "test/quic_rcidm_test" => [ + "test/quic_rcidm_test-bin-quic_rcidm_test.o" + ], + "test/quic_rcidm_test-bin-quic_rcidm_test.o" => [ + "test/quic_rcidm_test.c" + ], + "test/quic_record_test" => [ + "test/quic_record_test-bin-quic_record_test.o" + ], + "test/quic_record_test-bin-quic_record_test.o" => [ + "test/quic_record_test.c" + ], + "test/quic_srt_gen_test" => [ + "test/helpers/quic_srt_gen_test-bin-noisydgrambio.o", + "test/helpers/quic_srt_gen_test-bin-pktsplitbio.o", + "test/helpers/quic_srt_gen_test-bin-quictestlib.o", + "test/helpers/quic_srt_gen_test-bin-ssltestlib.o", + "test/quic_srt_gen_test-bin-quic_srt_gen_test.o" + ], + "test/quic_srt_gen_test-bin-quic_srt_gen_test.o" => [ + "test/quic_srt_gen_test.c" + ], + "test/quic_srtm_test" => [ + "test/quic_srtm_test-bin-quic_srtm_test.o" + ], + "test/quic_srtm_test-bin-quic_srtm_test.o" => [ + "test/quic_srtm_test.c" + ], + "test/quic_stream_test" => [ + "test/quic_stream_test-bin-quic_stream_test.o" + ], + "test/quic_stream_test-bin-quic_stream_test.o" => [ + "test/quic_stream_test.c" + ], + "test/quic_tserver_test" => [ + "test/quic_tserver_test-bin-quic_tserver_test.o" + ], + "test/quic_tserver_test-bin-quic_tserver_test.o" => [ + "test/quic_tserver_test.c" + ], + "test/quic_txp_test" => [ + "test/quic_txp_test-bin-cc_dummy.o", + "test/quic_txp_test-bin-quic_txp_test.o" + ], + "test/quic_txp_test-bin-cc_dummy.o" => [ + "test/cc_dummy.c" + ], + "test/quic_txp_test-bin-quic_txp_test.o" => [ + "test/quic_txp_test.c" + ], + "test/quic_txpim_test" => [ + "test/quic_txpim_test-bin-quic_txpim_test.o" + ], + "test/quic_txpim_test-bin-quic_txpim_test.o" => [ + "test/quic_txpim_test.c" + ], + "test/quic_wire_test" => [ + "test/quic_wire_test-bin-quic_wire_test.o" + ], + "test/quic_wire_test-bin-quic_wire_test.o" => [ + "test/quic_wire_test.c" + ], + "test/quicapitest" => [ + "test/helpers/quicapitest-bin-noisydgrambio.o", + "test/helpers/quicapitest-bin-pktsplitbio.o", + "test/helpers/quicapitest-bin-quictestlib.o", + "test/helpers/quicapitest-bin-ssltestlib.o", + "test/quicapitest-bin-quicapitest.o" + ], + "test/quicapitest-bin-quicapitest.o" => [ + "test/quicapitest.c" + ], + "test/quicfaultstest" => [ + "test/helpers/quicfaultstest-bin-noisydgrambio.o", + "test/helpers/quicfaultstest-bin-pktsplitbio.o", + "test/helpers/quicfaultstest-bin-quictestlib.o", + "test/helpers/quicfaultstest-bin-ssltestlib.o", + "test/quicfaultstest-bin-quicfaultstest.o" + ], + "test/quicfaultstest-bin-quicfaultstest.o" => [ + "test/quicfaultstest.c" + ], + "test/radix/quic_radix_test-bin-quic_radix.o" => [ + "test/radix/quic_radix.c" + ], "test/rand_status_test" => [ "test/rand_status_test-bin-rand_status_test.o" ], @@ -27259,11 +32199,11 @@ our %unified_info = ( "test/rc5test-bin-rc5test.o" => [ "test/rc5test.c" ], - "test/rdrand_sanitytest" => [ - "test/rdrand_sanitytest-bin-rdrand_sanitytest.o" + "test/rdcpu_sanitytest" => [ + "test/rdcpu_sanitytest-bin-rdcpu_sanitytest.o" ], - "test/rdrand_sanitytest-bin-rdrand_sanitytest.o" => [ - "test/rdrand_sanitytest.c" + "test/rdcpu_sanitytest-bin-rdcpu_sanitytest.o" => [ + "test/rdcpu_sanitytest.c" ], "test/recordlentest" => [ "test/helpers/recordlentest-bin-ssltestlib.o", @@ -27272,6 +32212,13 @@ our %unified_info = ( "test/recordlentest-bin-recordlentest.o" => [ "test/recordlentest.c" ], + "test/rpktest" => [ + "test/helpers/rpktest-bin-ssltestlib.o", + "test/rpktest-bin-rpktest.o" + ], + "test/rpktest-bin-rpktest.o" => [ + "test/rpktest.c" + ], "test/rsa_complex" => [ "test/rsa_complex-bin-rsa_complex.o" ], @@ -27296,6 +32243,18 @@ our %unified_info = ( "test/rsa_test-bin-rsa_test.o" => [ "test/rsa_test.c" ], + "test/rsa_x931_test" => [ + "test/rsa_x931_test-bin-rsa_x931_test.o" + ], + "test/rsa_x931_test-bin-rsa_x931_test.o" => [ + "test/rsa_x931_test.c" + ], + "test/safe_math_test" => [ + "test/safe_math_test-bin-safe_math_test.o" + ], + "test/safe_math_test-bin-safe_math_test.o" => [ + "test/safe_math_test.c" + ], "test/sanitytest" => [ "test/sanitytest-bin-sanitytest.o" ], @@ -27327,6 +32286,12 @@ our %unified_info = ( "test/siphash_internal_test-bin-siphash_internal_test.o" => [ "test/siphash_internal_test.c" ], + "test/slh_dsa_test" => [ + "test/slh_dsa_test-bin-slh_dsa_test.o" + ], + "test/slh_dsa_test-bin-slh_dsa_test.o" => [ + "test/slh_dsa_test.c" + ], "test/sm2_internal_test" => [ "test/sm2_internal_test-bin-sm2_internal_test.o" ], @@ -27369,6 +32334,13 @@ our %unified_info = ( "test/ssl_ctx_test-bin-ssl_ctx_test.o" => [ "test/ssl_ctx_test.c" ], + "test/ssl_handshake_rtt_test" => [ + "test/helpers/ssl_handshake_rtt_test-bin-ssltestlib.o", + "test/ssl_handshake_rtt_test-bin-ssl_handshake_rtt_test.o" + ], + "test/ssl_handshake_rtt_test-bin-ssl_handshake_rtt_test.o" => [ + "test/ssl_handshake_rtt_test.c" + ], "test/ssl_old_test" => [ "test/helpers/ssl_old_test-bin-predefined_dhparams.o", "test/ssl_old_test-bin-ssl_old_test.o" @@ -27427,6 +32399,12 @@ our %unified_info = ( "test/stack_test-bin-stack_test.o" => [ "test/stack_test.c" ], + "test/strtoultest" => [ + "test/strtoultest-bin-strtoultest.o" + ], + "test/strtoultest-bin-strtoultest.o" => [ + "test/strtoultest.c" + ], "test/sysdefaulttest" => [ "test/sysdefaulttest-bin-sysdefaulttest.o" ], @@ -27457,6 +32435,9 @@ our %unified_info = ( "test/testutil/libtestutil-lib-format_output.o" => [ "test/testutil/format_output.c" ], + "test/testutil/libtestutil-lib-helper.o" => [ + "test/testutil/helper.c" + ], "test/testutil/libtestutil-lib-load.o" => [ "test/testutil/load.c" ], @@ -27490,6 +32471,12 @@ our %unified_info = ( "test/testutil/libtestutil-lib-testutil_init.o" => [ "test/testutil/testutil_init.c" ], + "test/threadpool_test" => [ + "test/threadpool_test-bin-threadpool_test.o" + ], + "test/threadpool_test-bin-threadpool_test.o" => [ + "test/threadpool_test.c" + ], "test/threadstest" => [ "test/threadstest-bin-threadstest.o" ], @@ -27508,6 +32495,12 @@ our %unified_info = ( "test/time_offset_test-bin-time_offset_test.o" => [ "test/time_offset_test.c" ], + "test/time_test" => [ + "test/time_test-bin-time_test.o" + ], + "test/time_test-bin-time_test.o" => [ + "test/time_test.c" + ], "test/tls13ccstest" => [ "test/helpers/tls13ccstest-bin-ssltestlib.o", "test/tls13ccstest-bin-tls13ccstest.o" @@ -27521,6 +32514,13 @@ our %unified_info = ( "test/tls13encryptiontest-bin-tls13encryptiontest.o" => [ "test/tls13encryptiontest.c" ], + "test/tls13groupselection_test" => [ + "test/helpers/tls13groupselection_test-bin-ssltestlib.o", + "test/tls13groupselection_test-bin-tls13groupselection_test.o" + ], + "test/tls13groupselection_test-bin-tls13groupselection_test.o" => [ + "test/tls13groupselection_test.c" + ], "test/trace_api_test" => [ "test/trace_api_test-bin-trace_api_test.o" ], @@ -27576,6 +32576,12 @@ our %unified_info = ( "test/wpackettest-bin-wpackettest.o" => [ "test/wpackettest.c" ], + "test/x509_acert_test" => [ + "test/x509_acert_test-bin-x509_acert_test.o" + ], + "test/x509_acert_test-bin-x509_acert_test.o" => [ + "test/x509_acert_test.c" + ], "test/x509_check_cert_pkey_test" => [ "test/x509_check_cert_pkey_test-bin-x509_check_cert_pkey_test.o" ], @@ -27594,6 +32600,24 @@ our %unified_info = ( "test/x509_internal_test-bin-x509_internal_test.o" => [ "test/x509_internal_test.c" ], + "test/x509_load_cert_file_test" => [ + "test/x509_load_cert_file_test-bin-x509_load_cert_file_test.o" + ], + "test/x509_load_cert_file_test-bin-x509_load_cert_file_test.o" => [ + "test/x509_load_cert_file_test.c" + ], + "test/x509_req_test" => [ + "test/x509_req_test-bin-x509_req_test.o" + ], + "test/x509_req_test-bin-x509_req_test.o" => [ + "test/x509_req_test.c" + ], + "test/x509_test" => [ + "test/x509_test-bin-x509_test.o" + ], + "test/x509_test-bin-x509_test.o" => [ + "test/x509_test.c" + ], "test/x509_time_test" => [ "test/x509_time_test-bin-x509_time_test.o" ], @@ -27654,6 +32678,7 @@ my @makevars = ( "LDLIBS", "MT", "MTFLAGS", + "OBJCOPY", "PERL", "RANLIB", "RC", @@ -27667,6 +32692,12 @@ my %disabled_info = ( "asan" => { "macro" => "OPENSSL_NO_ASAN" }, + "brotli" => { + "macro" => "OPENSSL_NO_BROTLI" + }, + "brotli-dynamic" => { + "macro" => "OPENSSL_NO_BROTLI_DYNAMIC" + }, "comp" => { "macro" => "OPENSSL_NO_COMP", "skipped" => [ @@ -27679,6 +32710,9 @@ my %disabled_info = ( "crypto-mdebug-backtrace" => { "macro" => "OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE" }, + "demos" => { + "macro" => "OPENSSL_NO_DEMOS" + }, "devcryptoeng" => { "macro" => "OPENSSL_NO_DEVCRYPTOENG" }, @@ -27691,12 +32725,24 @@ my %disabled_info = ( "external-tests" => { "macro" => "OPENSSL_NO_EXTERNAL_TESTS" }, + "fips-jitter" => { + "macro" => "OPENSSL_NO_FIPS_JITTER" + }, "fuzz-afl" => { "macro" => "OPENSSL_NO_FUZZ_AFL" }, "fuzz-libfuzzer" => { "macro" => "OPENSSL_NO_FUZZ_LIBFUZZER" }, + "h3demo" => { + "macro" => "OPENSSL_NO_H3DEMO" + }, + "hqinterop" => { + "macro" => "OPENSSL_NO_HQINTEROP" + }, + "jitter" => { + "macro" => "OPENSSL_NO_JITTER" + }, "ktls" => { "macro" => "OPENSSL_NO_KTLS" }, @@ -27712,6 +32758,9 @@ my %disabled_info = ( "msan" => { "macro" => "OPENSSL_NO_MSAN" }, + "pie" => { + "macro" => "OPENSSL_NO_PIE" + }, "rc5" => { "macro" => "OPENSSL_NO_RC5", "skipped" => [ @@ -27727,6 +32776,12 @@ my %disabled_info = ( "ssl3-method" => { "macro" => "OPENSSL_NO_SSL3_METHOD" }, + "sslkeylog" => { + "macro" => "OPENSSL_NO_SSLKEYLOG" + }, + "tfo" => { + "macro" => "OPENSSL_NO_TFO" + }, "trace" => { "macro" => "OPENSSL_NO_TRACE" }, @@ -27741,6 +32796,18 @@ my %disabled_info = ( }, "weak-ssl-ciphers" => { "macro" => "OPENSSL_NO_WEAK_SSL_CIPHERS" + }, + "zlib" => { + "macro" => "OPENSSL_NO_ZLIB" + }, + "zlib-dynamic" => { + "macro" => "OPENSSL_NO_ZLIB_DYNAMIC" + }, + "zstd" => { + "macro" => "OPENSSL_NO_ZSTD" + }, + "zstd-dynamic" => { + "macro" => "OPENSSL_NO_ZSTD_DYNAMIC" } ); my @user_crossable = qw( AR AS CC CXX CPP LD MT RANLIB RC ); @@ -27754,15 +32821,15 @@ unless (caller) { use File::Copy; use Pod::Usage; - use lib '/home/runner/work/node/node/deps/openssl/openssl/util/perl'; - use OpenSSL::fallback '/home/runner/work/node/node/deps/openssl/openssl/external/perl/MODULES.txt'; + use lib '/node/deps/openssl/openssl/util/perl'; + use OpenSSL::fallback '/node/deps/openssl/openssl/external/perl/MODULES.txt'; my $here = dirname($0); if (scalar @ARGV == 0) { # With no arguments, re-create the build file # We do that in two steps, where the first step emits perl - # snipets. + # snippets. my $buildfile = $config{build_file}; my $buildfile_template = "$buildfile.in"; @@ -27782,7 +32849,7 @@ unless (caller) { ); use lib '.'; - use lib '/home/runner/work/node/node/deps/openssl/openssl/Configurations'; + use lib '/node/deps/openssl/openssl/Configurations'; use gentemplate; open my $buildfile_template_fh, ">$buildfile_template" @@ -27799,8 +32866,8 @@ unless (caller) { my $prepend = <<'_____'; use File::Spec::Functions; -use lib '/home/runner/work/node/node/deps/openssl/openssl/util/perl'; -use lib '/home/runner/work/node/node/deps/openssl/openssl/Configurations'; +use lib '/node/deps/openssl/openssl/util/perl'; +use lib '/node/deps/openssl/openssl/Configurations'; use lib '.'; use platform; _____ diff --git a/deps/openssl/config/archs/VC-WIN32/asm_avx2/crypto/aes/aes-586.asm b/deps/openssl/config/archs/VC-WIN32/asm_avx2/crypto/aes/aes-586.asm index 7a17e847c64a73..a086cffb69f5aa 100644 --- a/deps/openssl/config/archs/VC-WIN32/asm_avx2/crypto/aes/aes-586.asm +++ b/deps/openssl/config/archs/VC-WIN32/asm_avx2/crypto/aes/aes-586.asm @@ -3208,4 +3208,4 @@ db 65,69,83,32,102,111,114,32,120,56,54,44,32,67,82,89 db 80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114 db 111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 segment .bss -common _OPENSSL_ia32cap_P 16 +common _OPENSSL_ia32cap_P 40 diff --git a/deps/openssl/config/archs/VC-WIN32/asm_avx2/crypto/aes/aesni-x86.asm b/deps/openssl/config/archs/VC-WIN32/asm_avx2/crypto/aes/aesni-x86.asm index 14abad18102ad1..02f717dfc10da6 100644 --- a/deps/openssl/config/archs/VC-WIN32/asm_avx2/crypto/aes/aesni-x86.asm +++ b/deps/openssl/config/archs/VC-WIN32/asm_avx2/crypto/aes/aesni-x86.asm @@ -3199,4 +3199,4 @@ db 83,45,78,73,44,32,67,82,89,80,84,79,71,65,77,83 db 32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115 db 115,108,46,111,114,103,62,0 segment .bss -common _OPENSSL_ia32cap_P 16 +common _OPENSSL_ia32cap_P 40 diff --git a/deps/openssl/config/archs/VC-WIN32/asm_avx2/crypto/bn/bn-586.asm b/deps/openssl/config/archs/VC-WIN32/asm_avx2/crypto/bn/bn-586.asm index 82002b353bfd3b..e9e8a059af1ddc 100644 --- a/deps/openssl/config/archs/VC-WIN32/asm_avx2/crypto/bn/bn-586.asm +++ b/deps/openssl/config/archs/VC-WIN32/asm_avx2/crypto/bn/bn-586.asm @@ -1512,4 +1512,4 @@ L$029pw_end: pop ebp ret segment .bss -common _OPENSSL_ia32cap_P 16 +common _OPENSSL_ia32cap_P 40 diff --git a/deps/openssl/config/archs/VC-WIN32/asm_avx2/crypto/bn/x86-gf2m.asm b/deps/openssl/config/archs/VC-WIN32/asm_avx2/crypto/bn/x86-gf2m.asm index 709f4a9e506873..e726f43a66bb84 100644 --- a/deps/openssl/config/archs/VC-WIN32/asm_avx2/crypto/bn/x86-gf2m.asm +++ b/deps/openssl/config/archs/VC-WIN32/asm_avx2/crypto/bn/x86-gf2m.asm @@ -342,4 +342,4 @@ db 67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97 db 112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103 db 62,0 segment .bss -common _OPENSSL_ia32cap_P 16 +common _OPENSSL_ia32cap_P 40 diff --git a/deps/openssl/config/archs/VC-WIN32/asm_avx2/crypto/bn/x86-mont.asm b/deps/openssl/config/archs/VC-WIN32/asm_avx2/crypto/bn/x86-mont.asm index 090630c3a00c2b..1ab7a560d37652 100644 --- a/deps/openssl/config/archs/VC-WIN32/asm_avx2/crypto/bn/x86-mont.asm +++ b/deps/openssl/config/archs/VC-WIN32/asm_avx2/crypto/bn/x86-mont.asm @@ -476,4 +476,4 @@ db 54,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121 db 32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46 db 111,114,103,62,0 segment .bss -common _OPENSSL_ia32cap_P 16 +common _OPENSSL_ia32cap_P 40 diff --git a/deps/openssl/config/archs/VC-WIN32/asm_avx2/crypto/buildinf.h b/deps/openssl/config/archs/VC-WIN32/asm_avx2/crypto/buildinf.h index f90d9391b1b15c..3af6d1b67ee2a4 100644 --- a/deps/openssl/config/archs/VC-WIN32/asm_avx2/crypto/buildinf.h +++ b/deps/openssl/config/archs/VC-WIN32/asm_avx2/crypto/buildinf.h @@ -11,7 +11,7 @@ */ #define PLATFORM "platform: " -#define DATE "built on: Sun Jul 20 00:56:04 2025 UTC" +#define DATE "built on: Sun Jul 27 00:59:53 2025 UTC" /* * Generate compiler_flags as an array of individual characters. This is a diff --git a/deps/openssl/config/archs/VC-WIN32/asm_avx2/crypto/chacha/chacha-x86.asm b/deps/openssl/config/archs/VC-WIN32/asm_avx2/crypto/chacha/chacha-x86.asm index a19fea38079c07..fe015851bf8144 100644 --- a/deps/openssl/config/archs/VC-WIN32/asm_avx2/crypto/chacha/chacha-x86.asm +++ b/deps/openssl/config/archs/VC-WIN32/asm_avx2/crypto/chacha/chacha-x86.asm @@ -1444,4 +1444,4 @@ L$019done: pop ebp ret segment .bss -common _OPENSSL_ia32cap_P 16 +common _OPENSSL_ia32cap_P 40 diff --git a/deps/openssl/config/archs/VC-WIN32/asm_avx2/crypto/ec/ecp_nistz256-x86.asm b/deps/openssl/config/archs/VC-WIN32/asm_avx2/crypto/ec/ecp_nistz256-x86.asm index 96071a300ead92..df13353f9d805f 100644 --- a/deps/openssl/config/archs/VC-WIN32/asm_avx2/crypto/ec/ecp_nistz256-x86.asm +++ b/deps/openssl/config/archs/VC-WIN32/asm_avx2/crypto/ec/ecp_nistz256-x86.asm @@ -5125,4 +5125,4 @@ L$013pic: pop ebp ret segment .bss -common _OPENSSL_ia32cap_P 16 +common _OPENSSL_ia32cap_P 40 diff --git a/deps/openssl/config/archs/VC-WIN32/asm_avx2/crypto/params_idx.c b/deps/openssl/config/archs/VC-WIN32/asm_avx2/crypto/params_idx.c new file mode 100644 index 00000000000000..874125eb57a17c --- /dev/null +++ b/deps/openssl/config/archs/VC-WIN32/asm_avx2/crypto/params_idx.c @@ -0,0 +1,3366 @@ +/* + * WARNING: do not edit! + * Generated by makefile from crypto/params_idx.c.in + * + * Copyright 2023 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + +#include "internal/e_os.h" +#include "internal/param_names.h" +#include + +/* Machine generated TRIE -- generated by util/perl/OpenSSL/paramnames.pm */ +int ossl_param_find_pidx(const char *s) +{ + switch(s[0]) { + default: + break; + case 'a': + switch(s[1]) { + default: + break; + case 'c': + if (strcmp("vp-info", s + 2) == 0) + return PIDX_KDF_PARAM_X942_ACVPINFO; + break; + case 'd': + switch(s[2]) { + default: + break; + case 'd': + if (strcmp("itional-random", s + 3) == 0) + return PIDX_SIGNATURE_PARAM_ADD_RANDOM; + break; + case '\0': + return PIDX_KDF_PARAM_ARGON2_AD; + } + break; + case 'e': + if (strcmp("ad", s + 2) == 0) + return PIDX_CIPHER_PARAM_AEAD; + break; + case 'l': + switch(s[2]) { + default: + break; + case 'g': + switch(s[3]) { + default: + break; + case '_': + if (strcmp("id_param", s + 4) == 0) + return PIDX_CIPHER_PARAM_ALGORITHM_ID_PARAMS_OLD; + break; + case 'i': + if (strcmp("d-absent", s + 4) == 0) + return PIDX_DIGEST_PARAM_ALGID_ABSENT; + break; + case 'o': + switch(s[4]) { + default: + break; + case 'r': + switch(s[5]) { + default: + break; + case 'i': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case 'h': + switch(s[8]) { + default: + break; + case 'm': + switch(s[9]) { + default: + break; + case '-': + switch(s[10]) { + default: + break; + case 'i': + switch(s[11]) { + default: + break; + case 'd': + switch(s[12]) { + default: + break; + case '-': + if (strcmp("params", s + 13) == 0) + return PIDX_ALG_PARAM_ALGORITHM_ID_PARAMS; + break; + case '\0': + return PIDX_ALG_PARAM_ALGORITHM_ID; + } + } + } + } + } + } + } + } + } + } + break; + case 'i': + if (strcmp("as", s + 3) == 0) + return PIDX_STORE_PARAM_ALIAS; + } + break; + case '\0': + return PIDX_PKEY_PARAM_EC_A; + } + break; + case 'b': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("sis-type", s + 2) == 0) + return PIDX_PKEY_PARAM_EC_CHAR2_TYPE; + break; + case 'i': + if (strcmp("ts", s + 2) == 0) + return PIDX_PKEY_PARAM_BITS; + break; + case 'l': + switch(s[2]) { + default: + break; + case 'o': + switch(s[3]) { + default: + break; + case 'c': + switch(s[4]) { + default: + break; + case 'k': + switch(s[5]) { + default: + break; + case '-': + if (strcmp("size", s + 6) == 0) + return PIDX_MAC_PARAM_BLOCK_SIZE; + break; + case '_': + if (strcmp("padding", s + 6) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_BLOCK_PADDING; + break; + case 's': + if (strcmp("ize", s + 6) == 0) + return PIDX_DIGEST_PARAM_BLOCK_SIZE; + } + } + } + } + break; + case 'u': + if (strcmp("ildinfo", s + 2) == 0) + return PIDX_PROV_PARAM_BUILDINFO; + break; + case '\0': + return PIDX_PKEY_PARAM_EC_B; + } + break; + case 'c': + switch(s[1]) { + default: + break; + case '-': + if (strcmp("rounds", s + 2) == 0) + return PIDX_MAC_PARAM_C_ROUNDS; + break; + case 'e': + if (strcmp("kalg", s + 2) == 0) + return PIDX_KDF_PARAM_CEK_ALG; + break; + case 'i': + if (strcmp("pher", s + 2) == 0) + return PIDX_ALG_PARAM_CIPHER; + break; + case 'o': + switch(s[2]) { + default: + break; + case 'f': + if (strcmp("actor", s + 3) == 0) + return PIDX_PKEY_PARAM_EC_COFACTOR; + break; + case 'n': + switch(s[3]) { + default: + break; + case 's': + if (strcmp("tant", s + 4) == 0) + return PIDX_KDF_PARAM_CONSTANT; + break; + case 't': + if (strcmp("ext-string", s + 4) == 0) + return PIDX_SIGNATURE_PARAM_CONTEXT_STRING; + } + } + break; + case 't': + switch(s[2]) { + default: + break; + case 's': + switch(s[3]) { + default: + break; + case '_': + if (strcmp("mode", s + 4) == 0) + return PIDX_CIPHER_PARAM_CTS_MODE; + break; + case '\0': + return PIDX_CIPHER_PARAM_CTS; + } + } + break; + case 'u': + switch(s[2]) { + default: + break; + case 's': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case 'o': + switch(s[5]) { + default: + break; + case 'm': + switch(s[6]) { + default: + break; + case '-': + if (strcmp("iv", s + 7) == 0) + return PIDX_CIPHER_PARAM_CUSTOM_IV; + break; + case '\0': + return PIDX_MAC_PARAM_CUSTOM; + } + } + } + } + } + } + break; + case 'd': + switch(s[1]) { + default: + break; + case '-': + if (strcmp("rounds", s + 2) == 0) + return PIDX_MAC_PARAM_D_ROUNDS; + break; + case 'a': + switch(s[2]) { + default: + break; + case 't': + switch(s[3]) { + default: + break; + case 'a': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 's': + if (strcmp("tructure", s + 6) == 0) + return PIDX_OBJECT_PARAM_DATA_STRUCTURE; + break; + case 't': + if (strcmp("ype", s + 6) == 0) + return PIDX_OBJECT_PARAM_DATA_TYPE; + } + break; + case '\0': + return PIDX_OBJECT_PARAM_DATA; + } + } + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'c': + switch(s[3]) { + default: + break; + case 'o': + if (strcmp("ded-from-explicit", s + 4) == 0) + return PIDX_PKEY_PARAM_EC_DECODED_FROM_EXPLICIT_PARAMS; + break; + case 'r': + if (strcmp("ypt-only", s + 4) == 0) + return PIDX_CIPHER_PARAM_DECRYPT_ONLY; + } + break; + case 'f': + if (strcmp("ault-digest", s + 3) == 0) + return PIDX_PKEY_PARAM_DEFAULT_DIGEST; + break; + case 's': + if (strcmp("c", s + 3) == 0) + return PIDX_OBJECT_PARAM_DESC; + break; + case 't': + if (strcmp("erministic", s + 3) == 0) + return PIDX_SIGNATURE_PARAM_DETERMINISTIC; + } + break; + case 'h': + if (strcmp("kem-ikm", s + 2) == 0) + return PIDX_PKEY_PARAM_DHKEM_IKM; + break; + case 'i': + switch(s[2]) { + default: + break; + case 'g': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case 's': + switch(s[5]) { + default: + break; + case 't': + switch(s[6]) { + default: + break; + case '-': + switch(s[7]) { + default: + break; + case 'c': + if (strcmp("heck", s + 8) == 0) + return PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK; + break; + case 'n': + if (strcmp("oinit", s + 8) == 0) + return PIDX_MAC_PARAM_DIGEST_NOINIT; + break; + case 'o': + if (strcmp("neshot", s + 8) == 0) + return PIDX_MAC_PARAM_DIGEST_ONESHOT; + break; + case 'p': + if (strcmp("rops", s + 8) == 0) + return PIDX_ASYM_CIPHER_PARAM_OAEP_DIGEST_PROPS; + break; + case 's': + if (strcmp("ize", s + 8) == 0) + return PIDX_PKEY_PARAM_DIGEST_SIZE; + } + break; + case '\0': + return PIDX_STORE_PARAM_DIGEST; + } + } + } + } + break; + case 's': + if (strcmp("tid", s + 3) == 0) + return PIDX_PKEY_PARAM_DIST_ID; + } + break; + case 'r': + if (strcmp("bg-no-trunc-md", s + 2) == 0) + return PIDX_PROV_PARAM_DRBG_TRUNC_DIGEST; + break; + case 's': + if (strcmp("a-sign-disabled", s + 2) == 0) + return PIDX_PROV_PARAM_DSA_SIGN_DISABLED; + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_D; + } + break; + case 'e': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("rly_clean", s + 2) == 0) + return PIDX_KDF_PARAM_EARLY_CLEAN; + break; + case 'c': + switch(s[2]) { + default: + break; + case 'd': + switch(s[3]) { + default: + break; + case 'h': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'c': + switch(s[6]) { + default: + break; + case 'o': + switch(s[7]) { + default: + break; + case 'f': + switch(s[8]) { + default: + break; + case 'a': + switch(s[9]) { + default: + break; + case 'c': + switch(s[10]) { + default: + break; + case 't': + switch(s[11]) { + default: + break; + case 'o': + switch(s[12]) { + default: + break; + case 'r': + switch(s[13]) { + default: + break; + case '-': + switch(s[14]) { + default: + break; + case 'c': + if (strcmp("heck", s + 15) == 0) + return PIDX_PROV_PARAM_ECDH_COFACTOR_CHECK; + break; + case 'm': + if (strcmp("ode", s + 15) == 0) + return PIDX_EXCHANGE_PARAM_EC_ECDH_COFACTOR_MODE; + } + } + } + } + } + } + } + } + } + } + } + } + } + break; + case 'm': + if (strcmp("s_check", s + 2) == 0) + return PIDX_KDF_PARAM_FIPS_EMS_CHECK; + break; + case 'n': + switch(s[2]) { + default: + break; + case 'c': + switch(s[3]) { + default: + break; + case 'o': + switch(s[4]) { + default: + break; + case 'd': + switch(s[5]) { + default: + break; + case 'e': + if (strcmp("d-pub-key", s + 6) == 0) + return PIDX_PKEY_PARAM_ENCODED_PUBLIC_KEY; + break; + case 'i': + if (strcmp("ng", s + 6) == 0) + return PIDX_PKEY_PARAM_EC_ENCODING; + } + } + break; + case 'r': + switch(s[4]) { + default: + break; + case 'y': + switch(s[5]) { + default: + break; + case 'p': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case '-': + switch(s[8]) { + default: + break; + case 'c': + if (strcmp("heck", s + 9) == 0) + return PIDX_CIPHER_PARAM_FIPS_ENCRYPT_CHECK; + break; + case 'l': + if (strcmp("evel", s + 9) == 0) + return PIDX_ENCODER_PARAM_ENCRYPT_LEVEL; + } + } + } + } + } + } + break; + case 'g': + if (strcmp("ine", s + 3) == 0) + return PIDX_ALG_PARAM_ENGINE; + break; + case 't': + switch(s[3]) { + default: + break; + case 'r': + switch(s[4]) { + default: + break; + case 'o': + switch(s[5]) { + default: + break; + case 'p': + switch(s[6]) { + default: + break; + case 'y': + switch(s[7]) { + default: + break; + case '_': + if (strcmp("required", s + 8) == 0) + return PIDX_DRBG_PARAM_ENTROPY_REQUIRED; + break; + case '\0': + return PIDX_KDF_PARAM_HMACDRBG_ENTROPY; + } + } + } + } + } + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_E; + break; + case 'x': + if (strcmp("pect", s + 2) == 0) + return PIDX_STORE_PARAM_EXPECT; + } + break; + case 'f': + switch(s[1]) { + default: + break; + case 'i': + switch(s[2]) { + default: + break; + case 'e': + if (strcmp("ld-type", s + 3) == 0) + return PIDX_PKEY_PARAM_EC_FIELD_TYPE; + break; + case 'n': + if (strcmp("gerprint", s + 3) == 0) + return PIDX_STORE_PARAM_FINGERPRINT; + break; + case 'p': + if (strcmp("s-indicator", s + 3) == 0) + return PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR; + } + } + break; + case 'g': + switch(s[1]) { + default: + break; + case 'e': + switch(s[2]) { + default: + break; + case 'n': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case 'r': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case 'e': + switch(s[8]) { + default: + break; + case '\0': + return PIDX_RAND_PARAM_GENERATE; + } + break; + case 'o': + if (strcmp("r", s + 8) == 0) + return PIDX_PKEY_PARAM_EC_GENERATOR; + } + } + } + } + } + } + break; + case 'i': + if (strcmp("ndex", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_GINDEX; + break; + case 'r': + switch(s[2]) { + default: + break; + case 'o': + switch(s[3]) { + default: + break; + case 'u': + switch(s[4]) { + default: + break; + case 'p': + switch(s[5]) { + default: + break; + case '-': + if (strcmp("check", s + 6) == 0) + return PIDX_PKEY_PARAM_EC_GROUP_CHECK_TYPE; + break; + case '\0': + return PIDX_PKEY_PARAM_GROUP_NAME; + } + } + } + } + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_G; + } + break; + case 'h': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("s-randkey", s + 2) == 0) + return PIDX_CIPHER_PARAM_HAS_RAND_KEY; + break; + case 'i': + if (strcmp("ndex", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_H; + break; + case 'k': + switch(s[2]) { + default: + break; + case 'd': + switch(s[3]) { + default: + break; + case 'f': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 6) == 0) + return PIDX_PROV_PARAM_HKDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 6) == 0) + return PIDX_PROV_PARAM_HKDF_KEY_CHECK; + } + } + } + } + break; + case 'm': + if (strcmp("ac-key-check", s + 2) == 0) + return PIDX_PROV_PARAM_HMAC_KEY_CHECK; + break; + case 's': + if (strcmp("_padding", s + 2) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_HS_PADDING; + } + break; + case 'i': + switch(s[1]) { + default: + break; + case 'd': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_KDF_PARAM_PKCS12_ID; + } + break; + case 'k': + if (strcmp("me", s + 2) == 0) + return PIDX_KEM_PARAM_IKME; + break; + case 'm': + if (strcmp("plicit-rejection", s + 2) == 0) + return PIDX_PKEY_PARAM_IMPLICIT_REJECTION; + break; + case 'n': + switch(s[2]) { + default: + break; + case 'c': + if (strcmp("lude-public", s + 3) == 0) + return PIDX_PKEY_PARAM_EC_INCLUDE_PUBLIC; + break; + case 'f': + if (strcmp("o", s + 3) == 0) + return PIDX_PASSPHRASE_PARAM_INFO; + break; + case 'p': + if (strcmp("ut-type", s + 3) == 0) + return PIDX_STORE_PARAM_INPUT_TYPE; + break; + case 's': + if (strcmp("tance", s + 3) == 0) + return PIDX_SIGNATURE_PARAM_INSTANCE; + } + break; + case 't': + switch(s[2]) { + default: + break; + case 'e': + switch(s[3]) { + default: + break; + case 'r': + switch(s[4]) { + default: + break; + case 'a': + if (strcmp("tion", s + 5) == 0) + return PIDX_GEN_PARAM_ITERATION; + break; + case '\0': + return PIDX_KDF_PARAM_ITER; + } + } + } + break; + case 'v': + switch(s[2]) { + default: + break; + case '-': + if (strcmp("generated", s + 3) == 0) + return PIDX_CIPHER_PARAM_AEAD_IV_GENERATED; + break; + case 'l': + if (strcmp("en", s + 3) == 0) + return PIDX_CIPHER_PARAM_IVLEN; + break; + case '\0': + return PIDX_MAC_PARAM_IV; + } + } + break; + case 'j': + switch(s[1]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_COFACTOR; + } + break; + case 'k': + switch(s[1]) { + default: + break; + case '1': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_PP_K1; + } + break; + case '2': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_PP_K2; + } + break; + case '3': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_PP_K3; + } + break; + case 'a': + if (strcmp("t", s + 2) == 0) + return PIDX_SIGNATURE_PARAM_KAT; + break; + case 'b': + if (strcmp("kdf-key-check", s + 2) == 0) + return PIDX_PROV_PARAM_KBKDF_KEY_CHECK; + break; + case 'd': + switch(s[2]) { + default: + break; + case 'f': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'd': + switch(s[5]) { + default: + break; + case 'i': + switch(s[6]) { + default: + break; + case 'g': + switch(s[7]) { + default: + break; + case 'e': + switch(s[8]) { + default: + break; + case 's': + switch(s[9]) { + default: + break; + case 't': + switch(s[10]) { + default: + break; + case '-': + if (strcmp("props", s + 11) == 0) + return PIDX_EXCHANGE_PARAM_KDF_DIGEST_PROPS; + break; + case '\0': + return PIDX_EXCHANGE_PARAM_KDF_DIGEST; + } + } + } + } + } + } + break; + case 'o': + if (strcmp("utlen", s + 5) == 0) + return PIDX_EXCHANGE_PARAM_KDF_OUTLEN; + break; + case 't': + if (strcmp("ype", s + 5) == 0) + return PIDX_EXCHANGE_PARAM_KDF_TYPE; + break; + case 'u': + if (strcmp("km", s + 5) == 0) + return PIDX_EXCHANGE_PARAM_KDF_UKM; + } + } + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'y': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'c': + if (strcmp("heck", s + 5) == 0) + return PIDX_PKEY_PARAM_FIPS_KEY_CHECK; + break; + case 'l': + if (strcmp("ength", s + 5) == 0) + return PIDX_SKEY_PARAM_KEY_LENGTH; + } + break; + case 'b': + if (strcmp("its", s + 4) == 0) + return PIDX_CIPHER_PARAM_RC2_KEYBITS; + break; + case 'l': + if (strcmp("en", s + 4) == 0) + return PIDX_CIPHER_PARAM_KEYLEN; + break; + case '\0': + return PIDX_MAC_PARAM_KEY; + } + } + break; + case 'm': + if (strcmp("ac-key-check", s + 2) == 0) + return PIDX_PROV_PARAM_KMAC_KEY_CHECK; + } + break; + case 'l': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'b': + if (strcmp("el", s + 3) == 0) + return PIDX_KDF_PARAM_LABEL; + break; + case 'n': + if (strcmp("es", s + 3) == 0) + return PIDX_KDF_PARAM_ARGON2_LANES; + } + } + break; + case 'm': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'c': + switch(s[3]) { + default: + break; + case 'k': + if (strcmp("ey", s + 4) == 0) + return PIDX_CIPHER_PARAM_AEAD_MAC_KEY; + break; + case 'l': + if (strcmp("en", s + 4) == 0) + return PIDX_KDF_PARAM_MAC_SIZE; + break; + case '\0': + return PIDX_ALG_PARAM_MAC; + } + break; + case 'n': + if (strcmp("datory-digest", s + 3) == 0) + return PIDX_PKEY_PARAM_MANDATORY_DIGEST; + break; + case 'x': + switch(s[3]) { + default: + break; + case '-': + if (strcmp("size", s + 4) == 0) + return PIDX_PKEY_PARAM_MAX_SIZE; + break; + case '_': + switch(s[4]) { + default: + break; + case 'a': + if (strcmp("dinlen", s + 5) == 0) + return PIDX_DRBG_PARAM_MAX_ADINLEN; + break; + case 'e': + switch(s[5]) { + default: + break; + case 'a': + if (strcmp("rly_data", s + 6) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_MAX_EARLY_DATA; + break; + case 'n': + if (strcmp("tropylen", s + 6) == 0) + return PIDX_DRBG_PARAM_MAX_ENTROPYLEN; + } + break; + case 'f': + if (strcmp("rag_len", s + 5) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_MAX_FRAG_LEN; + break; + case 'n': + if (strcmp("oncelen", s + 5) == 0) + return PIDX_DRBG_PARAM_MAX_NONCELEN; + break; + case 'p': + if (strcmp("erslen", s + 5) == 0) + return PIDX_DRBG_PARAM_MAX_PERSLEN; + break; + case 'r': + if (strcmp("equest", s + 5) == 0) + return PIDX_RAND_PARAM_MAX_REQUEST; + } + break; + case 'i': + if (strcmp("um_length", s + 4) == 0) + return PIDX_DRBG_PARAM_MAX_LENGTH; + break; + case 'm': + if (strcmp("em_bytes", s + 4) == 0) + return PIDX_KDF_PARAM_SCRYPT_MAXMEM; + } + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'm': + if (strcmp("cost", s + 3) == 0) + return PIDX_KDF_PARAM_ARGON2_MEMCOST; + break; + case 's': + if (strcmp("sage-encoding", s + 3) == 0) + return PIDX_SIGNATURE_PARAM_MESSAGE_ENCODING; + } + break; + case 'g': + switch(s[2]) { + default: + break; + case 'f': + switch(s[3]) { + default: + break; + case '1': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'd': + if (strcmp("igest", s + 6) == 0) + return PIDX_PKEY_PARAM_MGF1_DIGEST; + break; + case 'p': + if (strcmp("roperties", s + 6) == 0) + return PIDX_PKEY_PARAM_MGF1_PROPERTIES; + } + } + break; + case '\0': + return PIDX_PKEY_PARAM_MASKGENFUNC; + } + } + break; + case 'i': + switch(s[2]) { + default: + break; + case 'c': + if (strcmp("alg", s + 3) == 0) + return PIDX_DIGEST_PARAM_MICALG; + break; + case 'n': + switch(s[3]) { + default: + break; + case '_': + switch(s[4]) { + default: + break; + case 'e': + if (strcmp("ntropylen", s + 5) == 0) + return PIDX_DRBG_PARAM_MIN_ENTROPYLEN; + break; + case 'n': + if (strcmp("oncelen", s + 5) == 0) + return PIDX_DRBG_PARAM_MIN_NONCELEN; + } + break; + case 'i': + if (strcmp("um_length", s + 4) == 0) + return PIDX_DRBG_PARAM_MIN_LENGTH; + } + } + break; + case 'l': + switch(s[2]) { + default: + break; + case '-': + switch(s[3]) { + default: + break; + case 'd': + switch(s[4]) { + default: + break; + case 's': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case '.': + switch(s[7]) { + default: + break; + case 'i': + if (strcmp("nput_formats", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_DSA_INPUT_FORMATS; + break; + case 'o': + if (strcmp("utput_formats", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_DSA_OUTPUT_FORMATS; + break; + case 'p': + if (strcmp("refer_seed", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_DSA_PREFER_SEED; + break; + case 'r': + if (strcmp("etain_seed", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_DSA_RETAIN_SEED; + } + } + } + } + break; + case 'k': + switch(s[4]) { + default: + break; + case 'e': + switch(s[5]) { + default: + break; + case 'm': + switch(s[6]) { + default: + break; + case '.': + switch(s[7]) { + default: + break; + case 'i': + switch(s[8]) { + default: + break; + case 'm': + if (strcmp("port_pct_type", s + 9) == 0) + return PIDX_PKEY_PARAM_ML_KEM_IMPORT_PCT_TYPE; + break; + case 'n': + if (strcmp("put_formats", s + 9) == 0) + return PIDX_PKEY_PARAM_ML_KEM_INPUT_FORMATS; + } + break; + case 'o': + if (strcmp("utput_formats", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_KEM_OUTPUT_FORMATS; + break; + case 'p': + if (strcmp("refer_seed", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_KEM_PREFER_SEED; + break; + case 'r': + if (strcmp("etain_seed", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_KEM_RETAIN_SEED; + } + } + } + } + } + } + break; + case 'o': + switch(s[2]) { + default: + break; + case 'd': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case '\0': + return PIDX_LIBSSL_RECORD_LAYER_PARAM_MODE; + } + break; + case 'u': + if (strcmp("le-filename", s + 4) == 0) + return PIDX_PROV_PARAM_CORE_MODULE_FILENAME; + } + } + break; + case 'u': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_SIGNATURE_PARAM_MU; + } + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_M; + } + break; + case 'n': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("me", s + 2) == 0) + return PIDX_STORE_PARAM_ISSUER; + break; + case 'o': + switch(s[2]) { + default: + break; + case '-': + if (strcmp("short-mac", s + 3) == 0) + return PIDX_PROV_PARAM_NO_SHORT_MAC; + break; + case 'n': + switch(s[3]) { + default: + break; + case 'c': + switch(s[4]) { + default: + break; + case 'e': + switch(s[5]) { + default: + break; + case '-': + if (strcmp("type", s + 6) == 0) + return PIDX_SIGNATURE_PARAM_NONCE_TYPE; + break; + case '\0': + return PIDX_KDF_PARAM_HMACDRBG_NONCE; + } + } + } + } + break; + case 'u': + if (strcmp("m", s + 2) == 0) + return PIDX_CIPHER_PARAM_NUM; + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_N; + } + break; + case 'o': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("ep-label", s + 2) == 0) + return PIDX_ASYM_CIPHER_PARAM_OAEP_LABEL; + break; + case 'p': + switch(s[2]) { + default: + break; + case 'e': + switch(s[3]) { + default: + break; + case 'n': + if (strcmp("ssl-version", s + 4) == 0) + return PIDX_PROV_PARAM_CORE_VERSION; + break; + case 'r': + if (strcmp("ation", s + 4) == 0) + return PIDX_KEM_PARAM_OPERATION; + } + break; + case 't': + if (strcmp("ions", s + 3) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_OPTIONS; + } + break; + case 'r': + if (strcmp("der", s + 2) == 0) + return PIDX_PKEY_PARAM_EC_ORDER; + } + break; + case 'p': + switch(s[1]) { + default: + break; + case '1': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_P1; + } + break; + case '2': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_P2; + } + break; + case 'a': + switch(s[2]) { + default: + break; + case 'd': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'm': + if (strcmp("ode", s + 5) == 0) + return PIDX_PKEY_PARAM_PAD_MODE; + break; + case 't': + if (strcmp("ype", s + 5) == 0) + return PIDX_DIGEST_PARAM_PAD_TYPE; + } + break; + case 'd': + if (strcmp("ing", s + 4) == 0) + return PIDX_CIPHER_PARAM_PADDING; + break; + case '\0': + return PIDX_EXCHANGE_PARAM_PAD; + } + break; + case 'r': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case 'y': + switch(s[5]) { + default: + break; + case 'u': + if (strcmp("-info", s + 6) == 0) + return PIDX_KDF_PARAM_X942_PARTYUINFO; + break; + case 'v': + if (strcmp("-info", s + 6) == 0) + return PIDX_KDF_PARAM_X942_PARTYVINFO; + } + } + } + break; + case 's': + if (strcmp("s", s + 3) == 0) + return PIDX_KDF_PARAM_PASSWORD; + } + break; + case 'b': + switch(s[2]) { + default: + break; + case 'i': + if (strcmp("ts", s + 3) == 0) + return PIDX_PKEY_PARAM_FFC_PBITS; + break; + case 'k': + if (strcmp("df2-lower-bound-check", s + 3) == 0) + return PIDX_PROV_PARAM_PBKDF2_LOWER_BOUND_CHECK; + } + break; + case 'c': + if (strcmp("ounter", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_PCOUNTER; + break; + case 'i': + if (strcmp("peline-tag", s + 2) == 0) + return PIDX_CIPHER_PARAM_PIPELINE_AEAD_TAG; + break; + case 'k': + if (strcmp("cs5", s + 2) == 0) + return PIDX_KDF_PARAM_PKCS5; + break; + case 'o': + switch(s[2]) { + default: + break; + case 'i': + if (strcmp("nt-format", s + 3) == 0) + return PIDX_PKEY_PARAM_EC_POINT_CONVERSION_FORMAT; + break; + case 't': + if (strcmp("ential", s + 3) == 0) + return PIDX_GEN_PARAM_POTENTIAL; + } + break; + case 'r': + switch(s[2]) { + default: + break; + case 'e': + switch(s[3]) { + default: + break; + case 'd': + if (strcmp("iction_resistance", s + 4) == 0) + return PIDX_DRBG_PARAM_PREDICTION_RESISTANCE; + break; + case 'f': + if (strcmp("ix", s + 4) == 0) + return PIDX_KDF_PARAM_PREFIX; + } + break; + case 'i': + switch(s[3]) { + default: + break; + case 'm': + if (strcmp("es", s + 4) == 0) + return PIDX_PKEY_PARAM_RSA_PRIMES; + break; + case 'v': + switch(s[4]) { + default: + break; + case '_': + if (strcmp("len", s + 5) == 0) + return PIDX_PKEY_PARAM_DH_PRIV_LEN; + break; + case '\0': + return PIDX_PKEY_PARAM_PRIV_KEY; + } + } + break; + case 'o': + switch(s[3]) { + default: + break; + case 'p': + if (strcmp("erties", s + 4) == 0) + return PIDX_STORE_PARAM_PROPERTIES; + break; + case 'v': + if (strcmp("ider-name", s + 4) == 0) + return PIDX_PROV_PARAM_CORE_PROV_NAME; + } + } + break; + case 'u': + if (strcmp("b", s + 2) == 0) + return PIDX_PKEY_PARAM_PUB_KEY; + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_P; + } + break; + case 'q': + switch(s[1]) { + default: + break; + case '1': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_Q1; + } + break; + case '2': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_Q2; + } + break; + case 'b': + if (strcmp("its", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_QBITS; + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_Q; + break; + case 'x': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_PUB_X; + } + break; + case 'y': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_PUB_Y; + } + } + break; + case 'r': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'n': + switch(s[3]) { + default: + break; + case 'd': + switch(s[4]) { + default: + break; + case 'k': + if (strcmp("ey", s + 5) == 0) + return PIDX_CIPHER_PARAM_RANDOM_KEY; + break; + case 'o': + if (strcmp("m_data", s + 5) == 0) + return PIDX_DRBG_PARAM_RANDOM_DATA; + } + } + break; + case 'w': + if (strcmp("-bytes", s + 3) == 0) + return PIDX_SKEY_PARAM_RAW_BYTES; + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'a': + switch(s[3]) { + default: + break; + case 'd': + switch(s[4]) { + default: + break; + case '_': + switch(s[5]) { + default: + break; + case 'a': + if (strcmp("head", s + 6) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_READ_AHEAD; + break; + case 'b': + if (strcmp("uffer_len", s + 6) == 0) + return PIDX_LIBSSL_RECORD_LAYER_READ_BUFFER_LEN; + } + } + } + break; + case 'f': + if (strcmp("erence", s + 3) == 0) + return PIDX_OBJECT_PARAM_REFERENCE; + break; + case 's': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case 'e': + switch(s[5]) { + default: + break; + case 'd': + switch(s[6]) { + default: + break; + case '_': + switch(s[7]) { + default: + break; + case 'c': + if (strcmp("ounter", s + 8) == 0) + return PIDX_DRBG_PARAM_RESEED_COUNTER; + break; + case 'r': + if (strcmp("equests", s + 8) == 0) + return PIDX_DRBG_PARAM_RESEED_REQUESTS; + break; + case 't': + switch(s[8]) { + default: + break; + case 'i': + switch(s[9]) { + default: + break; + case 'm': + switch(s[10]) { + default: + break; + case 'e': + switch(s[11]) { + default: + break; + case '_': + if (strcmp("interval", s + 12) == 0) + return PIDX_DRBG_PARAM_RESEED_TIME_INTERVAL; + break; + case '\0': + return PIDX_DRBG_PARAM_RESEED_TIME; + } + } + } + } + } + } + } + } + } + } + break; + case 'o': + if (strcmp("unds", s + 2) == 0) + return PIDX_CIPHER_PARAM_ROUNDS; + break; + case 's': + switch(s[2]) { + default: + break; + case 'a': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'c': + switch(s[5]) { + default: + break; + case 'o': + switch(s[6]) { + default: + break; + case 'e': + switch(s[7]) { + default: + break; + case 'f': + switch(s[8]) { + default: + break; + case 'f': + switch(s[9]) { + default: + break; + case 'i': + switch(s[10]) { + default: + break; + case 'c': + switch(s[11]) { + default: + break; + case 'i': + switch(s[12]) { + default: + break; + case 'e': + switch(s[13]) { + default: + break; + case 'n': + switch(s[14]) { + default: + break; + case 't': + switch(s[15]) { + default: + break; + case '1': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT1; + } + break; + case '2': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT2; + } + break; + case '3': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT3; + } + break; + case '4': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT4; + } + break; + case '5': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT5; + } + break; + case '6': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT6; + } + break; + case '7': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT7; + } + break; + case '8': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT8; + } + break; + case '9': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT9; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT; + } + } + } + } + } + } + } + } + } + } + } + break; + case 'd': + if (strcmp("erive-from-pq", s + 5) == 0) + return PIDX_PKEY_PARAM_RSA_DERIVE_FROM_PQ; + break; + case 'e': + switch(s[5]) { + default: + break; + case 'x': + switch(s[6]) { + default: + break; + case 'p': + switch(s[7]) { + default: + break; + case 'o': + switch(s[8]) { + default: + break; + case 'n': + switch(s[9]) { + default: + break; + case 'e': + switch(s[10]) { + default: + break; + case 'n': + switch(s[11]) { + default: + break; + case 't': + switch(s[12]) { + default: + break; + case '1': + switch(s[13]) { + default: + break; + case '0': + switch(s[14]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT10; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT1; + } + break; + case '2': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT2; + } + break; + case '3': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT3; + } + break; + case '4': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT4; + } + break; + case '5': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT5; + } + break; + case '6': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT6; + } + break; + case '7': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT7; + } + break; + case '8': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT8; + } + break; + case '9': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT9; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT; + } + } + } + } + } + } + } + } + break; + case 'f': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case 'c': + switch(s[7]) { + default: + break; + case 't': + switch(s[8]) { + default: + break; + case 'o': + switch(s[9]) { + default: + break; + case 'r': + switch(s[10]) { + default: + break; + case '1': + switch(s[11]) { + default: + break; + case '0': + switch(s[12]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR10; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR1; + } + break; + case '2': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR2; + } + break; + case '3': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR3; + } + break; + case '4': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR4; + } + break; + case '5': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR5; + } + break; + case '6': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR6; + } + break; + case '7': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR7; + } + break; + case '8': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR8; + } + break; + case '9': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR9; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR; + } + } + } + } + } + } + break; + case 'p': + switch(s[5]) { + default: + break; + case 'k': + if (strcmp("cs15-pad-disabled", s + 6) == 0) + return PIDX_PROV_PARAM_RSA_PKCS15_PAD_DISABLED; + break; + case 's': + if (strcmp("s-saltlen-check", s + 6) == 0) + return PIDX_SIGNATURE_PARAM_FIPS_RSA_PSS_SALTLEN_CHECK; + } + break; + case 's': + if (strcmp("ign-x931-pad-disabled", s + 5) == 0) + return PIDX_PROV_PARAM_RSA_SIGN_X931_PAD_DISABLED; + } + } + } + break; + case '\0': + return PIDX_KDF_PARAM_SCRYPT_R; + } + break; + case 's': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'f': + if (strcmp("eprime-generator", s + 3) == 0) + return PIDX_PKEY_PARAM_DH_GENERATOR; + break; + case 'l': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case 'l': + if (strcmp("en", s + 5) == 0) + return PIDX_SIGNATURE_PARAM_PSS_SALTLEN; + break; + case '\0': + return PIDX_MAC_PARAM_SALT; + } + } + break; + case 'v': + if (strcmp("e-parameters", s + 3) == 0) + return PIDX_ENCODER_PARAM_SAVE_PARAMETERS; + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'c': + switch(s[3]) { + default: + break; + case 'r': + if (strcmp("et", s + 4) == 0) + return PIDX_KDF_PARAM_SECRET; + break; + case 'u': + switch(s[4]) { + default: + break; + case 'r': + switch(s[5]) { + default: + break; + case 'i': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case 'y': + switch(s[8]) { + default: + break; + case '-': + switch(s[9]) { + default: + break; + case 'b': + if (strcmp("its", s + 10) == 0) + return PIDX_PKEY_PARAM_SECURITY_BITS; + break; + case 'c': + if (strcmp("hecks", s + 10) == 0) + return PIDX_PROV_PARAM_SECURITY_CHECKS; + } + } + } + } + } + } + } + break; + case 'e': + if (strcmp("d", s + 3) == 0) + return PIDX_PKEY_PARAM_SLH_DSA_SEED; + break; + case 'r': + if (strcmp("ial", s + 3) == 0) + return PIDX_STORE_PARAM_SERIAL; + break; + case 's': + if (strcmp("sion_id", s + 3) == 0) + return PIDX_KDF_PARAM_SSHKDF_SESSION_ID; + } + break; + case 'i': + switch(s[2]) { + default: + break; + case 'g': + switch(s[3]) { + default: + break; + case 'n': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'c': + if (strcmp("heck", s + 6) == 0) + return PIDX_PKEY_PARAM_FIPS_SIGN_CHECK; + break; + case 'x': + if (strcmp("931-pad-check", s + 6) == 0) + return PIDX_SIGNATURE_PARAM_FIPS_SIGN_X931_PAD_CHECK; + } + break; + case 'a': + switch(s[5]) { + default: + break; + case 't': + switch(s[6]) { + default: + break; + case 'u': + switch(s[7]) { + default: + break; + case 'r': + switch(s[8]) { + default: + break; + case 'e': + switch(s[9]) { + default: + break; + case '-': + if (strcmp("digest-check", s + 10) == 0) + return PIDX_PROV_PARAM_SIGNATURE_DIGEST_CHECK; + break; + case '\0': + return PIDX_SIGNATURE_PARAM_SIGNATURE; + } + } + } + } + } + } + } + break; + case 'z': + if (strcmp("e", s + 3) == 0) + return PIDX_MAC_PARAM_SIZE; + } + break; + case 'p': + if (strcmp("eed", s + 2) == 0) + return PIDX_CIPHER_PARAM_SPEED; + break; + case 's': + switch(s[2]) { + default: + break; + case 'h': + switch(s[3]) { + default: + break; + case 'k': + switch(s[4]) { + default: + break; + case 'd': + switch(s[5]) { + default: + break; + case 'f': + switch(s[6]) { + default: + break; + case '-': + switch(s[7]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 8) == 0) + return PIDX_PROV_PARAM_SSHKDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 8) == 0) + return PIDX_PROV_PARAM_SSHKDF_KEY_CHECK; + } + } + } + } + } + break; + case 'k': + switch(s[3]) { + default: + break; + case 'd': + switch(s[4]) { + default: + break; + case 'f': + switch(s[5]) { + default: + break; + case '-': + switch(s[6]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 7) == 0) + return PIDX_PROV_PARAM_SSKDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 7) == 0) + return PIDX_PROV_PARAM_SSKDF_KEY_CHECK; + } + } + } + } + break; + case 'l': + if (strcmp("3-ms", s + 3) == 0) + return PIDX_DIGEST_PARAM_SSL3_MS; + } + break; + case 't': + switch(s[2]) { + default: + break; + case '-': + switch(s[3]) { + default: + break; + case 'd': + if (strcmp("esc", s + 4) == 0) + return PIDX_PROV_PARAM_SELF_TEST_DESC; + break; + case 'p': + if (strcmp("hase", s + 4) == 0) + return PIDX_PROV_PARAM_SELF_TEST_PHASE; + break; + case 't': + if (strcmp("ype", s + 4) == 0) + return PIDX_PROV_PARAM_SELF_TEST_TYPE; + } + break; + case 'a': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case 'e': + switch(s[5]) { + default: + break; + case '\0': + return PIDX_RAND_PARAM_STATE; + } + break; + case 'u': + if (strcmp("s", s + 5) == 0) + return PIDX_PROV_PARAM_STATUS; + } + } + break; + case 'r': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case 'a': + if (strcmp("m_mac", s + 5) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_STREAM_MAC; + break; + case 'n': + if (strcmp("gth", s + 5) == 0) + return PIDX_RAND_PARAM_STRENGTH; + } + } + } + break; + case 'u': + switch(s[2]) { + default: + break; + case 'b': + if (strcmp("ject", s + 3) == 0) + return PIDX_STORE_PARAM_SUBJECT; + break; + case 'p': + switch(s[3]) { + default: + break; + case 'p': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'p': + switch(s[6]) { + default: + break; + case 'r': + if (strcmp("ivinfo", s + 7) == 0) + return PIDX_KDF_PARAM_X942_SUPP_PRIVINFO; + break; + case 'u': + if (strcmp("binfo", s + 7) == 0) + return PIDX_KDF_PARAM_X942_SUPP_PUBINFO; + } + } + } + } + } + } + break; + case 't': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'g': + switch(s[3]) { + default: + break; + case 'l': + if (strcmp("en", s + 4) == 0) + return PIDX_CIPHER_PARAM_AEAD_TAGLEN; + break; + case '\0': + return PIDX_CIPHER_PARAM_AEAD_TAG; + } + } + break; + case 'd': + if (strcmp("es-encrypt-disabled", s + 2) == 0) + return PIDX_PROV_PARAM_TDES_ENCRYPT_DISABLED; + break; + case 'e': + switch(s[2]) { + default: + break; + case 's': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case '-': + if (strcmp("entropy", s + 5) == 0) + return PIDX_SIGNATURE_PARAM_TEST_ENTROPY; + break; + case '_': + switch(s[5]) { + default: + break; + case 'e': + if (strcmp("ntropy", s + 6) == 0) + return PIDX_RAND_PARAM_TEST_ENTROPY; + break; + case 'n': + if (strcmp("once", s + 6) == 0) + return PIDX_RAND_PARAM_TEST_NONCE; + } + } + } + } + break; + case 'h': + if (strcmp("reads", s + 2) == 0) + return PIDX_KDF_PARAM_THREADS; + break; + case 'l': + switch(s[2]) { + default: + break; + case 's': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'c': + if (strcmp("lient-version", s + 5) == 0) + return PIDX_ASYM_CIPHER_PARAM_TLS_CLIENT_VERSION; + break; + case 'd': + if (strcmp("ata-size", s + 5) == 0) + return PIDX_MAC_PARAM_TLS_DATA_SIZE; + break; + case 'g': + switch(s[5]) { + default: + break; + case 'r': + switch(s[6]) { + default: + break; + case 'o': + switch(s[7]) { + default: + break; + case 'u': + switch(s[8]) { + default: + break; + case 'p': + switch(s[9]) { + default: + break; + case '-': + switch(s[10]) { + default: + break; + case 'a': + if (strcmp("lg", s + 11) == 0) + return PIDX_CAPABILITY_TLS_GROUP_ALG; + break; + case 'i': + switch(s[11]) { + default: + break; + case 'd': + switch(s[12]) { + default: + break; + case '\0': + return PIDX_CAPABILITY_TLS_GROUP_ID; + } + break; + case 's': + if (strcmp("-kem", s + 12) == 0) + return PIDX_CAPABILITY_TLS_GROUP_IS_KEM; + } + break; + case 'n': + switch(s[11]) { + default: + break; + case 'a': + switch(s[12]) { + default: + break; + case 'm': + switch(s[13]) { + default: + break; + case 'e': + switch(s[14]) { + default: + break; + case '-': + if (strcmp("internal", s + 15) == 0) + return PIDX_CAPABILITY_TLS_GROUP_NAME_INTERNAL; + break; + case '\0': + return PIDX_CAPABILITY_TLS_GROUP_NAME; + } + } + } + } + break; + case 's': + if (strcmp("ec-bits", s + 11) == 0) + return PIDX_CAPABILITY_TLS_GROUP_SECURITY_BITS; + } + } + } + } + } + } + break; + case 'm': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case 'c': + switch(s[7]) { + default: + break; + case '-': + if (strcmp("size", s + 8) == 0) + return PIDX_CIPHER_PARAM_TLS_MAC_SIZE; + break; + case '\0': + return PIDX_CIPHER_PARAM_TLS_MAC; + } + break; + case 'x': + switch(s[7]) { + default: + break; + case '-': + switch(s[8]) { + default: + break; + case 'd': + if (strcmp("tls", s + 9) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_MAX_DTLS; + break; + case 't': + if (strcmp("ls", s + 9) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_MAX_TLS; + } + } + } + break; + case 'i': + switch(s[6]) { + default: + break; + case 'n': + switch(s[7]) { + default: + break; + case '-': + switch(s[8]) { + default: + break; + case 'd': + if (strcmp("tls", s + 9) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_MIN_DTLS; + break; + case 't': + if (strcmp("ls", s + 9) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_MIN_TLS; + } + } + } + break; + case 'u': + if (strcmp("lti", s + 6) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK; + } + break; + case 'n': + if (strcmp("egotiated-version", s + 5) == 0) + return PIDX_ASYM_CIPHER_PARAM_TLS_NEGOTIATED_VERSION; + break; + case 's': + switch(s[5]) { + default: + break; + case 'i': + switch(s[6]) { + default: + break; + case 'g': + switch(s[7]) { + default: + break; + case 'a': + switch(s[8]) { + default: + break; + case 'l': + switch(s[9]) { + default: + break; + case 'g': + switch(s[10]) { + default: + break; + case '-': + switch(s[11]) { + default: + break; + case 'c': + if (strcmp("ode-point", s + 12) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_CODE_POINT; + break; + case 'h': + switch(s[12]) { + default: + break; + case 'a': + switch(s[13]) { + default: + break; + case 's': + switch(s[14]) { + default: + break; + case 'h': + switch(s[15]) { + default: + break; + case '-': + switch(s[16]) { + default: + break; + case 'n': + if (strcmp("ame", s + 17) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_HASH_NAME; + break; + case 'o': + if (strcmp("id", s + 17) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_HASH_OID; + } + } + } + } + } + break; + case 'i': + if (strcmp("ana-name", s + 12) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_IANA_NAME; + break; + case 'k': + switch(s[12]) { + default: + break; + case 'e': + switch(s[13]) { + default: + break; + case 'y': + switch(s[14]) { + default: + break; + case 't': + switch(s[15]) { + default: + break; + case 'y': + switch(s[16]) { + default: + break; + case 'p': + switch(s[17]) { + default: + break; + case 'e': + switch(s[18]) { + default: + break; + case '-': + if (strcmp("oid", s + 19) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_KEYTYPE_OID; + break; + case '\0': + return PIDX_CAPABILITY_TLS_SIGALG_KEYTYPE; + } + } + } + } + } + } + } + break; + case 'n': + if (strcmp("ame", s + 12) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_NAME; + break; + case 'o': + if (strcmp("id", s + 12) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_OID; + break; + case 's': + switch(s[12]) { + default: + break; + case 'e': + if (strcmp("c-bits", s + 13) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_SECURITY_BITS; + break; + case 'i': + switch(s[13]) { + default: + break; + case 'g': + switch(s[14]) { + default: + break; + case '-': + switch(s[15]) { + default: + break; + case 'n': + if (strcmp("ame", s + 16) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_SIG_NAME; + break; + case 'o': + if (strcmp("id", s + 16) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_SIG_OID; + } + } + } + } + } + } + } + } + } + } + } + break; + case 'v': + if (strcmp("ersion", s + 5) == 0) + return PIDX_CIPHER_PARAM_TLS_VERSION; + } + break; + case '1': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'p': + switch(s[6]) { + default: + break; + case 'r': + switch(s[7]) { + default: + break; + case 'f': + switch(s[8]) { + default: + break; + case '-': + switch(s[9]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 10) == 0) + return PIDX_PROV_PARAM_TLS1_PRF_DIGEST_CHECK; + break; + case 'e': + if (strcmp("ms-check", s + 10) == 0) + return PIDX_PROV_PARAM_TLS1_PRF_EMS_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 10) == 0) + return PIDX_PROV_PARAM_TLS1_PRF_KEY_CHECK; + } + } + } + } + } + break; + case '3': + switch(s[5]) { + default: + break; + case '-': + switch(s[6]) { + default: + break; + case 'k': + switch(s[7]) { + default: + break; + case 'd': + switch(s[8]) { + default: + break; + case 'f': + switch(s[9]) { + default: + break; + case '-': + switch(s[10]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 11) == 0) + return PIDX_PROV_PARAM_TLS13_KDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 11) == 0) + return PIDX_PROV_PARAM_TLS13_KDF_KEY_CHECK; + } + } + } + } + } + } + break; + case 'm': + switch(s[5]) { + default: + break; + case 'u': + switch(s[6]) { + default: + break; + case 'l': + switch(s[7]) { + default: + break; + case 't': + switch(s[8]) { + default: + break; + case 'i': + switch(s[9]) { + default: + break; + case '_': + switch(s[10]) { + default: + break; + case 'a': + switch(s[11]) { + default: + break; + case 'a': + switch(s[12]) { + default: + break; + case 'd': + switch(s[13]) { + default: + break; + case 'p': + if (strcmp("acklen", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD_PACKLEN; + break; + case '\0': + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD; + } + } + } + break; + case 'e': + switch(s[11]) { + default: + break; + case 'n': + switch(s[12]) { + default: + break; + case 'c': + switch(s[13]) { + default: + break; + case 'i': + if (strcmp("n", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_IN; + break; + case 'l': + if (strcmp("en", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_LEN; + break; + case '\0': + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC; + } + } + } + break; + case 'i': + if (strcmp("nterleave", s + 11) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_INTERLEAVE; + break; + case 'm': + switch(s[11]) { + default: + break; + case 'a': + switch(s[12]) { + default: + break; + case 'x': + switch(s[13]) { + default: + break; + case 'b': + if (strcmp("ufsz", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_BUFSIZE; + break; + case 's': + if (strcmp("ndfrag", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_SEND_FRAGMENT; + } + } + } + } + } + } + } + } + } + } + break; + case 'a': + switch(s[4]) { + default: + break; + case 'a': + switch(s[5]) { + default: + break; + case 'd': + switch(s[6]) { + default: + break; + case 'p': + if (strcmp("ad", s + 7) == 0) + return PIDX_CIPHER_PARAM_AEAD_TLS1_AAD_PAD; + break; + case '\0': + return PIDX_CIPHER_PARAM_AEAD_TLS1_AAD; + } + } + } + break; + case 'i': + switch(s[4]) { + default: + break; + case 'v': + switch(s[5]) { + default: + break; + case 'f': + if (strcmp("ixed", s + 6) == 0) + return PIDX_CIPHER_PARAM_AEAD_TLS1_IV_FIXED; + break; + case 'g': + if (strcmp("en", s + 6) == 0) + return PIDX_CIPHER_PARAM_AEAD_TLS1_GET_IV_GEN; + break; + case 'i': + if (strcmp("nv", s + 6) == 0) + return PIDX_CIPHER_PARAM_AEAD_TLS1_SET_IV_INV; + } + } + break; + case 't': + if (strcmp("ree", s + 4) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_TLSTREE; + } + } + break; + case 'p': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_TP_BASIS; + } + break; + case 'y': + if (strcmp("pe", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_TYPE; + } + break; + case 'u': + switch(s[1]) { + default: + break; + case 'k': + if (strcmp("m", s + 2) == 0) + return PIDX_KDF_PARAM_UKM; + break; + case 'p': + if (strcmp("dated-iv", s + 2) == 0) + return PIDX_CIPHER_PARAM_UPDATED_IV; + break; + case 's': + switch(s[2]) { + default: + break; + case 'e': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'b': + if (strcmp("its", s + 5) == 0) + return PIDX_CIPHER_PARAM_USE_BITS; + break; + case 'c': + if (strcmp("ofactor-flag", s + 5) == 0) + return PIDX_PKEY_PARAM_USE_COFACTOR_FLAG; + break; + case 'k': + if (strcmp("eybits", s + 5) == 0) + return PIDX_KDF_PARAM_X942_USE_KEYBITS; + break; + case 'l': + switch(s[5]) { + default: + break; + case '\0': + return PIDX_KDF_PARAM_KBKDF_USE_L; + } + break; + case 's': + if (strcmp("eparator", s + 5) == 0) + return PIDX_KDF_PARAM_KBKDF_USE_SEPARATOR; + } + break; + case '_': + switch(s[4]) { + default: + break; + case 'd': + if (strcmp("erivation_function", s + 5) == 0) + return PIDX_DRBG_PARAM_USE_DF; + break; + case 'e': + if (strcmp("tm", s + 5) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_USE_ETM; + } + } + } + } + break; + case 'v': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'l': + switch(s[3]) { + default: + break; + case 'i': + switch(s[4]) { + default: + break; + case 'd': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case 'e': + switch(s[8]) { + default: + break; + case '-': + switch(s[9]) { + default: + break; + case 'g': + switch(s[10]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_VALIDATE_G; + } + break; + case 'l': + if (strcmp("egacy", s + 10) == 0) + return PIDX_PKEY_PARAM_FFC_VALIDATE_LEGACY; + break; + case 'p': + if (strcmp("q", s + 10) == 0) + return PIDX_PKEY_PARAM_FFC_VALIDATE_PQ; + } + } + } + } + } + } + } + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'r': + switch(s[3]) { + default: + break; + case 'i': + if (strcmp("fy-message", s + 4) == 0) + return PIDX_SIGNATURE_PARAM_FIPS_VERIFY_MESSAGE; + break; + case 's': + if (strcmp("ion", s + 4) == 0) + return PIDX_PROV_PARAM_VERSION; + } + } + } + break; + case 'x': + switch(s[1]) { + default: + break; + case '9': + switch(s[2]) { + default: + break; + case '4': + if (strcmp("2kdf-key-check", s + 3) == 0) + return PIDX_PROV_PARAM_X942KDF_KEY_CHECK; + break; + case '6': + switch(s[3]) { + default: + break; + case '3': + switch(s[4]) { + default: + break; + case 'k': + switch(s[5]) { + default: + break; + case 'd': + switch(s[6]) { + default: + break; + case 'f': + switch(s[7]) { + default: + break; + case '-': + switch(s[8]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 9) == 0) + return PIDX_PROV_PARAM_X963KDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 9) == 0) + return PIDX_PROV_PARAM_X963KDF_KEY_CHECK; + } + } + } + } + } + } + } + break; + case 'c': + if (strcmp("ghash", s + 2) == 0) + return PIDX_KDF_PARAM_SSHKDF_XCGHASH; + break; + case 'o': + switch(s[2]) { + default: + break; + case 'f': + switch(s[3]) { + default: + break; + case 'l': + if (strcmp("en", s + 4) == 0) + return PIDX_DIGEST_PARAM_XOFLEN; + break; + case '\0': + return PIDX_MAC_PARAM_XOF; + } + } + break; + case 'p': + switch(s[2]) { + default: + break; + case '1': + switch(s[3]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XP1; + } + break; + case '2': + switch(s[3]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XP2; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XP; + } + break; + case 'q': + switch(s[2]) { + default: + break; + case '1': + switch(s[3]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XQ1; + } + break; + case '2': + switch(s[3]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XQ2; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XQ; + } + break; + case 't': + if (strcmp("s_standard", s + 2) == 0) + return PIDX_CIPHER_PARAM_XTS_STANDARD; + } + } + return -1; +} + +/* End of TRIE */ diff --git a/deps/openssl/config/archs/VC-WIN32/asm_avx2/crypto/poly1305/poly1305-x86.asm b/deps/openssl/config/archs/VC-WIN32/asm_avx2/crypto/poly1305/poly1305-x86.asm index ba241b7992bd8c..436d70f5315f63 100644 --- a/deps/openssl/config/archs/VC-WIN32/asm_avx2/crypto/poly1305/poly1305-x86.asm +++ b/deps/openssl/config/archs/VC-WIN32/asm_avx2/crypto/poly1305/poly1305-x86.asm @@ -1900,4 +1900,4 @@ db 60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111 db 114,103,62,0 align 4 segment .bss -common _OPENSSL_ia32cap_P 16 +common _OPENSSL_ia32cap_P 40 diff --git a/deps/openssl/config/archs/VC-WIN32/asm_avx2/crypto/rc4/rc4-586.asm b/deps/openssl/config/archs/VC-WIN32/asm_avx2/crypto/rc4/rc4-586.asm index c2758bfe8f69b1..8d4906eba79ef8 100644 --- a/deps/openssl/config/archs/VC-WIN32/asm_avx2/crypto/rc4/rc4-586.asm +++ b/deps/openssl/config/archs/VC-WIN32/asm_avx2/crypto/rc4/rc4-586.asm @@ -371,4 +371,4 @@ db 80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114 db 111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 align 64 segment .bss -common _OPENSSL_ia32cap_P 16 +common _OPENSSL_ia32cap_P 40 diff --git a/deps/openssl/config/archs/VC-WIN32/asm_avx2/crypto/sha/sha1-586.asm b/deps/openssl/config/archs/VC-WIN32/asm_avx2/crypto/sha/sha1-586.asm index 1112de399f7e89..70a2dbb81d9ddc 100644 --- a/deps/openssl/config/archs/VC-WIN32/asm_avx2/crypto/sha/sha1-586.asm +++ b/deps/openssl/config/archs/VC-WIN32/asm_avx2/crypto/sha/sha1-586.asm @@ -3967,4 +3967,4 @@ db 102,111,114,109,32,102,111,114,32,120,56,54,44,32,67,82 db 89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112 db 114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 segment .bss -common _OPENSSL_ia32cap_P 16 +common _OPENSSL_ia32cap_P 40 diff --git a/deps/openssl/config/archs/VC-WIN32/asm_avx2/crypto/sha/sha256-586.asm b/deps/openssl/config/archs/VC-WIN32/asm_avx2/crypto/sha/sha256-586.asm index 1108147ae6c7c0..b145406ab50bd7 100644 --- a/deps/openssl/config/archs/VC-WIN32/asm_avx2/crypto/sha/sha256-586.asm +++ b/deps/openssl/config/archs/VC-WIN32/asm_avx2/crypto/sha/sha256-586.asm @@ -6786,4 +6786,4 @@ L$018avx_bmi_00_47: pop ebp ret segment .bss -common _OPENSSL_ia32cap_P 16 +common _OPENSSL_ia32cap_P 40 diff --git a/deps/openssl/config/archs/VC-WIN32/asm_avx2/crypto/sha/sha512-586.asm b/deps/openssl/config/archs/VC-WIN32/asm_avx2/crypto/sha/sha512-586.asm index 2202228ce0214e..7f78330a2262e5 100644 --- a/deps/openssl/config/archs/VC-WIN32/asm_avx2/crypto/sha/sha512-586.asm +++ b/deps/openssl/config/archs/VC-WIN32/asm_avx2/crypto/sha/sha512-586.asm @@ -2832,4 +2832,4 @@ db 67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97 db 112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103 db 62,0 segment .bss -common _OPENSSL_ia32cap_P 16 +common _OPENSSL_ia32cap_P 40 diff --git a/deps/openssl/config/archs/VC-WIN32/asm_avx2/crypto/x86cpuid.asm b/deps/openssl/config/archs/VC-WIN32/asm_avx2/crypto/x86cpuid.asm index fc920ed46a1e4a..1f336501d737c8 100644 --- a/deps/openssl/config/archs/VC-WIN32/asm_avx2/crypto/x86cpuid.asm +++ b/deps/openssl/config/archs/VC-WIN32/asm_avx2/crypto/x86cpuid.asm @@ -123,6 +123,24 @@ L$002generic: xor ecx,ecx cpuid mov DWORD [8+edi],ebx + mov DWORD [12+edi],ecx + mov DWORD [16+edi],edx + cmp eax,1 + jb NEAR L$005no_extended_info + mov eax,7 + mov ecx,1 + cpuid + mov DWORD [20+edi],eax + mov DWORD [24+edi],edx + mov DWORD [28+edi],ebx + mov DWORD [32+edi],ecx + and edx,524288 + cmp edx,0 + je NEAR L$005no_extended_info + mov eax,36 + mov ecx,0 + cpuid + mov DWORD [36+edi],ebx L$005no_extended_info: bt ebp,27 jnc NEAR L$006clear_avx @@ -138,6 +156,7 @@ L$008clear_xmm: and esi,4278190079 L$006clear_avx: and ebp,4026525695 + and DWORD [20+edi],4286578687 and DWORD [8+edi],4294967263 L$007done: mov eax,esi @@ -500,7 +519,7 @@ L$031done: pop edi ret segment .bss -common _OPENSSL_ia32cap_P 16 +common _OPENSSL_ia32cap_P 40 segment .CRT$XCU data align=4 extern _OPENSSL_cpuid_setup dd _OPENSSL_cpuid_setup diff --git a/deps/openssl/config/archs/VC-WIN32/asm_avx2/include/internal/param_names.h b/deps/openssl/config/archs/VC-WIN32/asm_avx2/include/internal/param_names.h new file mode 100644 index 00000000000000..ec5bff6e31c126 --- /dev/null +++ b/deps/openssl/config/archs/VC-WIN32/asm_avx2/include/internal/param_names.h @@ -0,0 +1,469 @@ +/* + * WARNING: do not edit! + * Generated by makefile from include/internal/param_names.h.in + * + * Copyright 2023 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + +int ossl_param_find_pidx(const char *s); + +/* Parameter name definitions - generated by util/perl/OpenSSL/paramnames.pm */ +#define NUM_PIDX 346 + +#define PIDX_ALG_PARAM_ALGORITHM_ID 0 +#define PIDX_ALG_PARAM_ALGORITHM_ID_PARAMS 1 +#define PIDX_ALG_PARAM_CIPHER 2 +#define PIDX_ALG_PARAM_DIGEST 3 +#define PIDX_ALG_PARAM_ENGINE 4 +#define PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR 5 +#define PIDX_ALG_PARAM_MAC 6 +#define PIDX_ALG_PARAM_PROPERTIES 7 +#define PIDX_ASYM_CIPHER_PARAM_DIGEST PIDX_PKEY_PARAM_DIGEST +#define PIDX_ASYM_CIPHER_PARAM_ENGINE PIDX_PKEY_PARAM_ENGINE +#define PIDX_ASYM_CIPHER_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_ASYM_CIPHER_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_ASYM_CIPHER_PARAM_FIPS_RSA_PKCS15_PAD_DISABLED PIDX_PROV_PARAM_RSA_PKCS15_PAD_DISABLED +#define PIDX_ASYM_CIPHER_PARAM_IMPLICIT_REJECTION 8 +#define PIDX_ASYM_CIPHER_PARAM_MGF1_DIGEST PIDX_PKEY_PARAM_MGF1_DIGEST +#define PIDX_ASYM_CIPHER_PARAM_MGF1_DIGEST_PROPS PIDX_PKEY_PARAM_MGF1_PROPERTIES +#define PIDX_ASYM_CIPHER_PARAM_OAEP_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_ASYM_CIPHER_PARAM_OAEP_DIGEST_PROPS 9 +#define PIDX_ASYM_CIPHER_PARAM_OAEP_LABEL 10 +#define PIDX_ASYM_CIPHER_PARAM_PAD_MODE PIDX_PKEY_PARAM_PAD_MODE +#define PIDX_ASYM_CIPHER_PARAM_PROPERTIES PIDX_PKEY_PARAM_PROPERTIES +#define PIDX_ASYM_CIPHER_PARAM_TLS_CLIENT_VERSION 11 +#define PIDX_ASYM_CIPHER_PARAM_TLS_NEGOTIATED_VERSION 12 +#define PIDX_CAPABILITY_TLS_GROUP_ALG 13 +#define PIDX_CAPABILITY_TLS_GROUP_ID 14 +#define PIDX_CAPABILITY_TLS_GROUP_IS_KEM 15 +#define PIDX_CAPABILITY_TLS_GROUP_MAX_DTLS 16 +#define PIDX_CAPABILITY_TLS_GROUP_MAX_TLS 17 +#define PIDX_CAPABILITY_TLS_GROUP_MIN_DTLS 18 +#define PIDX_CAPABILITY_TLS_GROUP_MIN_TLS 19 +#define PIDX_CAPABILITY_TLS_GROUP_NAME 20 +#define PIDX_CAPABILITY_TLS_GROUP_NAME_INTERNAL 21 +#define PIDX_CAPABILITY_TLS_GROUP_SECURITY_BITS 22 +#define PIDX_CAPABILITY_TLS_SIGALG_CODE_POINT 23 +#define PIDX_CAPABILITY_TLS_SIGALG_HASH_NAME 24 +#define PIDX_CAPABILITY_TLS_SIGALG_HASH_OID 25 +#define PIDX_CAPABILITY_TLS_SIGALG_IANA_NAME 26 +#define PIDX_CAPABILITY_TLS_SIGALG_KEYTYPE 27 +#define PIDX_CAPABILITY_TLS_SIGALG_KEYTYPE_OID 28 +#define PIDX_CAPABILITY_TLS_SIGALG_MAX_DTLS 16 +#define PIDX_CAPABILITY_TLS_SIGALG_MAX_TLS 17 +#define PIDX_CAPABILITY_TLS_SIGALG_MIN_DTLS 18 +#define PIDX_CAPABILITY_TLS_SIGALG_MIN_TLS 19 +#define PIDX_CAPABILITY_TLS_SIGALG_NAME 29 +#define PIDX_CAPABILITY_TLS_SIGALG_OID 30 +#define PIDX_CAPABILITY_TLS_SIGALG_SECURITY_BITS 31 +#define PIDX_CAPABILITY_TLS_SIGALG_SIG_NAME 32 +#define PIDX_CAPABILITY_TLS_SIGALG_SIG_OID 33 +#define PIDX_CIPHER_PARAM_AEAD 34 +#define PIDX_CIPHER_PARAM_AEAD_IVLEN PIDX_CIPHER_PARAM_IVLEN +#define PIDX_CIPHER_PARAM_AEAD_IV_GENERATED 35 +#define PIDX_CIPHER_PARAM_AEAD_MAC_KEY 36 +#define PIDX_CIPHER_PARAM_AEAD_TAG 37 +#define PIDX_CIPHER_PARAM_AEAD_TAGLEN 38 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_AAD 39 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_AAD_PAD 40 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_GET_IV_GEN 41 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_IV_FIXED 42 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_SET_IV_INV 43 +#define PIDX_CIPHER_PARAM_ALGORITHM_ID PIDX_ALG_PARAM_ALGORITHM_ID +#define PIDX_CIPHER_PARAM_ALGORITHM_ID_PARAMS PIDX_ALG_PARAM_ALGORITHM_ID_PARAMS +#define PIDX_CIPHER_PARAM_ALGORITHM_ID_PARAMS_OLD 44 +#define PIDX_CIPHER_PARAM_BLOCK_SIZE 45 +#define PIDX_CIPHER_PARAM_CTS 46 +#define PIDX_CIPHER_PARAM_CTS_MODE 47 +#define PIDX_CIPHER_PARAM_CUSTOM_IV 48 +#define PIDX_CIPHER_PARAM_DECRYPT_ONLY 49 +#define PIDX_CIPHER_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_CIPHER_PARAM_FIPS_ENCRYPT_CHECK 50 +#define PIDX_CIPHER_PARAM_HAS_RAND_KEY 51 +#define PIDX_CIPHER_PARAM_IV 52 +#define PIDX_CIPHER_PARAM_IVLEN 53 +#define PIDX_CIPHER_PARAM_KEYLEN 54 +#define PIDX_CIPHER_PARAM_MODE 55 +#define PIDX_CIPHER_PARAM_NUM 56 +#define PIDX_CIPHER_PARAM_PADDING 57 +#define PIDX_CIPHER_PARAM_PIPELINE_AEAD_TAG 58 +#define PIDX_CIPHER_PARAM_RANDOM_KEY 59 +#define PIDX_CIPHER_PARAM_RC2_KEYBITS 60 +#define PIDX_CIPHER_PARAM_ROUNDS 61 +#define PIDX_CIPHER_PARAM_SPEED 62 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK 63 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD 64 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD_PACKLEN 65 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC 66 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_IN 67 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_LEN 68 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_INTERLEAVE 69 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_BUFSIZE 70 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_SEND_FRAGMENT 71 +#define PIDX_CIPHER_PARAM_TLS_MAC 72 +#define PIDX_CIPHER_PARAM_TLS_MAC_SIZE 73 +#define PIDX_CIPHER_PARAM_TLS_VERSION 74 +#define PIDX_CIPHER_PARAM_UPDATED_IV 75 +#define PIDX_CIPHER_PARAM_USE_BITS 76 +#define PIDX_CIPHER_PARAM_XTS_STANDARD 77 +#define PIDX_DECODER_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_DIGEST_PARAM_ALGID_ABSENT 78 +#define PIDX_DIGEST_PARAM_BLOCK_SIZE 45 +#define PIDX_DIGEST_PARAM_MICALG 79 +#define PIDX_DIGEST_PARAM_PAD_TYPE 80 +#define PIDX_DIGEST_PARAM_SIZE 81 +#define PIDX_DIGEST_PARAM_SSL3_MS 82 +#define PIDX_DIGEST_PARAM_XOF 83 +#define PIDX_DIGEST_PARAM_XOFLEN 84 +#define PIDX_DRBG_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_DRBG_PARAM_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_DRBG_PARAM_ENTROPY_REQUIRED 85 +#define PIDX_DRBG_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_DRBG_PARAM_FIPS_DIGEST_CHECK PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK +#define PIDX_DRBG_PARAM_MAC PIDX_ALG_PARAM_MAC +#define PIDX_DRBG_PARAM_MAX_ADINLEN 86 +#define PIDX_DRBG_PARAM_MAX_ENTROPYLEN 87 +#define PIDX_DRBG_PARAM_MAX_LENGTH 88 +#define PIDX_DRBG_PARAM_MAX_NONCELEN 89 +#define PIDX_DRBG_PARAM_MAX_PERSLEN 90 +#define PIDX_DRBG_PARAM_MIN_ENTROPYLEN 91 +#define PIDX_DRBG_PARAM_MIN_LENGTH 92 +#define PIDX_DRBG_PARAM_MIN_NONCELEN 93 +#define PIDX_DRBG_PARAM_PREDICTION_RESISTANCE 94 +#define PIDX_DRBG_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_DRBG_PARAM_RANDOM_DATA 95 +#define PIDX_DRBG_PARAM_RESEED_COUNTER 96 +#define PIDX_DRBG_PARAM_RESEED_REQUESTS 97 +#define PIDX_DRBG_PARAM_RESEED_TIME 98 +#define PIDX_DRBG_PARAM_RESEED_TIME_INTERVAL 99 +#define PIDX_DRBG_PARAM_SIZE 81 +#define PIDX_DRBG_PARAM_USE_DF 100 +#define PIDX_ENCODER_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_ENCODER_PARAM_ENCRYPT_LEVEL 101 +#define PIDX_ENCODER_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_ENCODER_PARAM_SAVE_PARAMETERS 102 +#define PIDX_EXCHANGE_PARAM_EC_ECDH_COFACTOR_MODE 103 +#define PIDX_EXCHANGE_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_EXCHANGE_PARAM_FIPS_DIGEST_CHECK PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK +#define PIDX_EXCHANGE_PARAM_FIPS_ECDH_COFACTOR_CHECK PIDX_PROV_PARAM_ECDH_COFACTOR_CHECK +#define PIDX_EXCHANGE_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_EXCHANGE_PARAM_KDF_DIGEST 104 +#define PIDX_EXCHANGE_PARAM_KDF_DIGEST_PROPS 105 +#define PIDX_EXCHANGE_PARAM_KDF_OUTLEN 106 +#define PIDX_EXCHANGE_PARAM_KDF_TYPE 107 +#define PIDX_EXCHANGE_PARAM_KDF_UKM 108 +#define PIDX_EXCHANGE_PARAM_PAD 109 +#define PIDX_GEN_PARAM_ITERATION 110 +#define PIDX_GEN_PARAM_POTENTIAL 111 +#define PIDX_KDF_PARAM_ARGON2_AD 112 +#define PIDX_KDF_PARAM_ARGON2_LANES 113 +#define PIDX_KDF_PARAM_ARGON2_MEMCOST 114 +#define PIDX_KDF_PARAM_ARGON2_VERSION 115 +#define PIDX_KDF_PARAM_CEK_ALG 116 +#define PIDX_KDF_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_KDF_PARAM_CONSTANT 117 +#define PIDX_KDF_PARAM_DATA 118 +#define PIDX_KDF_PARAM_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_KDF_PARAM_EARLY_CLEAN 119 +#define PIDX_KDF_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_KDF_PARAM_FIPS_DIGEST_CHECK PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK +#define PIDX_KDF_PARAM_FIPS_EMS_CHECK 120 +#define PIDX_KDF_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_KDF_PARAM_HMACDRBG_ENTROPY 121 +#define PIDX_KDF_PARAM_HMACDRBG_NONCE 122 +#define PIDX_KDF_PARAM_INFO 123 +#define PIDX_KDF_PARAM_ITER 124 +#define PIDX_KDF_PARAM_KBKDF_R 125 +#define PIDX_KDF_PARAM_KBKDF_USE_L 126 +#define PIDX_KDF_PARAM_KBKDF_USE_SEPARATOR 127 +#define PIDX_KDF_PARAM_KEY 128 +#define PIDX_KDF_PARAM_LABEL 129 +#define PIDX_KDF_PARAM_MAC PIDX_ALG_PARAM_MAC +#define PIDX_KDF_PARAM_MAC_SIZE 130 +#define PIDX_KDF_PARAM_MODE 55 +#define PIDX_KDF_PARAM_PASSWORD 131 +#define PIDX_KDF_PARAM_PKCS12_ID 132 +#define PIDX_KDF_PARAM_PKCS5 133 +#define PIDX_KDF_PARAM_PREFIX 134 +#define PIDX_KDF_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_KDF_PARAM_SALT 135 +#define PIDX_KDF_PARAM_SCRYPT_MAXMEM 136 +#define PIDX_KDF_PARAM_SCRYPT_N 137 +#define PIDX_KDF_PARAM_SCRYPT_P 138 +#define PIDX_KDF_PARAM_SCRYPT_R 125 +#define PIDX_KDF_PARAM_SECRET 139 +#define PIDX_KDF_PARAM_SEED 140 +#define PIDX_KDF_PARAM_SIZE 81 +#define PIDX_KDF_PARAM_SSHKDF_SESSION_ID 141 +#define PIDX_KDF_PARAM_SSHKDF_TYPE 142 +#define PIDX_KDF_PARAM_SSHKDF_XCGHASH 143 +#define PIDX_KDF_PARAM_THREADS 144 +#define PIDX_KDF_PARAM_UKM 145 +#define PIDX_KDF_PARAM_X942_ACVPINFO 146 +#define PIDX_KDF_PARAM_X942_PARTYUINFO 147 +#define PIDX_KDF_PARAM_X942_PARTYVINFO 148 +#define PIDX_KDF_PARAM_X942_SUPP_PRIVINFO 149 +#define PIDX_KDF_PARAM_X942_SUPP_PUBINFO 150 +#define PIDX_KDF_PARAM_X942_USE_KEYBITS 151 +#define PIDX_KEM_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_KEM_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_KEM_PARAM_IKME 152 +#define PIDX_KEM_PARAM_OPERATION 153 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_BLOCK_PADDING 154 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_HS_PADDING 155 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_MAX_EARLY_DATA 156 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_MAX_FRAG_LEN 157 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_MODE 55 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_OPTIONS 158 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_READ_AHEAD 159 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_STREAM_MAC 160 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_TLSTREE 161 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_USE_ETM 162 +#define PIDX_LIBSSL_RECORD_LAYER_READ_BUFFER_LEN 163 +#define PIDX_MAC_PARAM_BLOCK_SIZE 164 +#define PIDX_MAC_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_MAC_PARAM_CUSTOM 165 +#define PIDX_MAC_PARAM_C_ROUNDS 166 +#define PIDX_MAC_PARAM_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_MAC_PARAM_DIGEST_NOINIT 167 +#define PIDX_MAC_PARAM_DIGEST_ONESHOT 168 +#define PIDX_MAC_PARAM_D_ROUNDS 169 +#define PIDX_MAC_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_MAC_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_MAC_PARAM_FIPS_NO_SHORT_MAC PIDX_PROV_PARAM_NO_SHORT_MAC +#define PIDX_MAC_PARAM_IV 52 +#define PIDX_MAC_PARAM_KEY 128 +#define PIDX_MAC_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_MAC_PARAM_SALT 135 +#define PIDX_MAC_PARAM_SIZE 81 +#define PIDX_MAC_PARAM_TLS_DATA_SIZE 170 +#define PIDX_MAC_PARAM_XOF 83 +#define PIDX_OBJECT_PARAM_DATA 118 +#define PIDX_OBJECT_PARAM_DATA_STRUCTURE 171 +#define PIDX_OBJECT_PARAM_DATA_TYPE 172 +#define PIDX_OBJECT_PARAM_DESC 173 +#define PIDX_OBJECT_PARAM_INPUT_TYPE 174 +#define PIDX_OBJECT_PARAM_REFERENCE 175 +#define PIDX_OBJECT_PARAM_TYPE 142 +#define PIDX_PASSPHRASE_PARAM_INFO 123 +#define PIDX_PKEY_PARAM_ALGORITHM_ID PIDX_ALG_PARAM_ALGORITHM_ID +#define PIDX_PKEY_PARAM_ALGORITHM_ID_PARAMS PIDX_ALG_PARAM_ALGORITHM_ID_PARAMS +#define PIDX_PKEY_PARAM_BITS 176 +#define PIDX_PKEY_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_PKEY_PARAM_DEFAULT_DIGEST 177 +#define PIDX_PKEY_PARAM_DHKEM_IKM 178 +#define PIDX_PKEY_PARAM_DH_GENERATOR 179 +#define PIDX_PKEY_PARAM_DH_PRIV_LEN 180 +#define PIDX_PKEY_PARAM_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_PKEY_PARAM_DIGEST_SIZE 181 +#define PIDX_PKEY_PARAM_DIST_ID 182 +#define PIDX_PKEY_PARAM_EC_A 183 +#define PIDX_PKEY_PARAM_EC_B 184 +#define PIDX_PKEY_PARAM_EC_CHAR2_M 185 +#define PIDX_PKEY_PARAM_EC_CHAR2_PP_K1 186 +#define PIDX_PKEY_PARAM_EC_CHAR2_PP_K2 187 +#define PIDX_PKEY_PARAM_EC_CHAR2_PP_K3 188 +#define PIDX_PKEY_PARAM_EC_CHAR2_TP_BASIS 189 +#define PIDX_PKEY_PARAM_EC_CHAR2_TYPE 190 +#define PIDX_PKEY_PARAM_EC_COFACTOR 191 +#define PIDX_PKEY_PARAM_EC_DECODED_FROM_EXPLICIT_PARAMS 192 +#define PIDX_PKEY_PARAM_EC_ENCODING 193 +#define PIDX_PKEY_PARAM_EC_FIELD_TYPE 194 +#define PIDX_PKEY_PARAM_EC_GENERATOR 195 +#define PIDX_PKEY_PARAM_EC_GROUP_CHECK_TYPE 196 +#define PIDX_PKEY_PARAM_EC_INCLUDE_PUBLIC 197 +#define PIDX_PKEY_PARAM_EC_ORDER 198 +#define PIDX_PKEY_PARAM_EC_P 138 +#define PIDX_PKEY_PARAM_EC_POINT_CONVERSION_FORMAT 199 +#define PIDX_PKEY_PARAM_EC_PUB_X 200 +#define PIDX_PKEY_PARAM_EC_PUB_Y 201 +#define PIDX_PKEY_PARAM_EC_SEED 140 +#define PIDX_PKEY_PARAM_ENCODED_PUBLIC_KEY 202 +#define PIDX_PKEY_PARAM_ENGINE PIDX_ALG_PARAM_ENGINE +#define PIDX_PKEY_PARAM_FFC_COFACTOR 203 +#define PIDX_PKEY_PARAM_FFC_DIGEST PIDX_PKEY_PARAM_DIGEST +#define PIDX_PKEY_PARAM_FFC_DIGEST_PROPS PIDX_PKEY_PARAM_PROPERTIES +#define PIDX_PKEY_PARAM_FFC_G 204 +#define PIDX_PKEY_PARAM_FFC_GINDEX 205 +#define PIDX_PKEY_PARAM_FFC_H 206 +#define PIDX_PKEY_PARAM_FFC_P 138 +#define PIDX_PKEY_PARAM_FFC_PBITS 207 +#define PIDX_PKEY_PARAM_FFC_PCOUNTER 208 +#define PIDX_PKEY_PARAM_FFC_Q 209 +#define PIDX_PKEY_PARAM_FFC_QBITS 210 +#define PIDX_PKEY_PARAM_FFC_SEED 140 +#define PIDX_PKEY_PARAM_FFC_TYPE 142 +#define PIDX_PKEY_PARAM_FFC_VALIDATE_G 211 +#define PIDX_PKEY_PARAM_FFC_VALIDATE_LEGACY 212 +#define PIDX_PKEY_PARAM_FFC_VALIDATE_PQ 213 +#define PIDX_PKEY_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK 214 +#define PIDX_PKEY_PARAM_FIPS_KEY_CHECK 215 +#define PIDX_PKEY_PARAM_FIPS_SIGN_CHECK 216 +#define PIDX_PKEY_PARAM_GROUP_NAME 217 +#define PIDX_PKEY_PARAM_IMPLICIT_REJECTION 8 +#define PIDX_PKEY_PARAM_MANDATORY_DIGEST 218 +#define PIDX_PKEY_PARAM_MASKGENFUNC 219 +#define PIDX_PKEY_PARAM_MAX_SIZE 220 +#define PIDX_PKEY_PARAM_MGF1_DIGEST 221 +#define PIDX_PKEY_PARAM_MGF1_PROPERTIES 222 +#define PIDX_PKEY_PARAM_ML_DSA_INPUT_FORMATS 223 +#define PIDX_PKEY_PARAM_ML_DSA_OUTPUT_FORMATS 224 +#define PIDX_PKEY_PARAM_ML_DSA_PREFER_SEED 225 +#define PIDX_PKEY_PARAM_ML_DSA_RETAIN_SEED 226 +#define PIDX_PKEY_PARAM_ML_DSA_SEED 140 +#define PIDX_PKEY_PARAM_ML_KEM_IMPORT_PCT_TYPE 227 +#define PIDX_PKEY_PARAM_ML_KEM_INPUT_FORMATS 228 +#define PIDX_PKEY_PARAM_ML_KEM_OUTPUT_FORMATS 229 +#define PIDX_PKEY_PARAM_ML_KEM_PREFER_SEED 230 +#define PIDX_PKEY_PARAM_ML_KEM_RETAIN_SEED 231 +#define PIDX_PKEY_PARAM_ML_KEM_SEED 140 +#define PIDX_PKEY_PARAM_PAD_MODE 232 +#define PIDX_PKEY_PARAM_PRIV_KEY 233 +#define PIDX_PKEY_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_PKEY_PARAM_PUB_KEY 234 +#define PIDX_PKEY_PARAM_RSA_BITS PIDX_PKEY_PARAM_BITS +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT 235 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT1 236 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT2 237 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT3 238 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT4 239 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT5 240 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT6 241 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT7 242 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT8 243 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT9 244 +#define PIDX_PKEY_PARAM_RSA_D 245 +#define PIDX_PKEY_PARAM_RSA_DERIVE_FROM_PQ 246 +#define PIDX_PKEY_PARAM_RSA_DIGEST PIDX_PKEY_PARAM_DIGEST +#define PIDX_PKEY_PARAM_RSA_DIGEST_PROPS PIDX_PKEY_PARAM_PROPERTIES +#define PIDX_PKEY_PARAM_RSA_E 247 +#define PIDX_PKEY_PARAM_RSA_EXPONENT 248 +#define PIDX_PKEY_PARAM_RSA_EXPONENT1 249 +#define PIDX_PKEY_PARAM_RSA_EXPONENT10 250 +#define PIDX_PKEY_PARAM_RSA_EXPONENT2 251 +#define PIDX_PKEY_PARAM_RSA_EXPONENT3 252 +#define PIDX_PKEY_PARAM_RSA_EXPONENT4 253 +#define PIDX_PKEY_PARAM_RSA_EXPONENT5 254 +#define PIDX_PKEY_PARAM_RSA_EXPONENT6 255 +#define PIDX_PKEY_PARAM_RSA_EXPONENT7 256 +#define PIDX_PKEY_PARAM_RSA_EXPONENT8 257 +#define PIDX_PKEY_PARAM_RSA_EXPONENT9 258 +#define PIDX_PKEY_PARAM_RSA_FACTOR 259 +#define PIDX_PKEY_PARAM_RSA_FACTOR1 260 +#define PIDX_PKEY_PARAM_RSA_FACTOR10 261 +#define PIDX_PKEY_PARAM_RSA_FACTOR2 262 +#define PIDX_PKEY_PARAM_RSA_FACTOR3 263 +#define PIDX_PKEY_PARAM_RSA_FACTOR4 264 +#define PIDX_PKEY_PARAM_RSA_FACTOR5 265 +#define PIDX_PKEY_PARAM_RSA_FACTOR6 266 +#define PIDX_PKEY_PARAM_RSA_FACTOR7 267 +#define PIDX_PKEY_PARAM_RSA_FACTOR8 268 +#define PIDX_PKEY_PARAM_RSA_FACTOR9 269 +#define PIDX_PKEY_PARAM_RSA_MASKGENFUNC PIDX_PKEY_PARAM_MASKGENFUNC +#define PIDX_PKEY_PARAM_RSA_MGF1_DIGEST PIDX_PKEY_PARAM_MGF1_DIGEST +#define PIDX_PKEY_PARAM_RSA_N 137 +#define PIDX_PKEY_PARAM_RSA_PRIMES 270 +#define PIDX_PKEY_PARAM_RSA_PSS_SALTLEN 271 +#define PIDX_PKEY_PARAM_RSA_TEST_P1 272 +#define PIDX_PKEY_PARAM_RSA_TEST_P2 273 +#define PIDX_PKEY_PARAM_RSA_TEST_Q1 274 +#define PIDX_PKEY_PARAM_RSA_TEST_Q2 275 +#define PIDX_PKEY_PARAM_RSA_TEST_XP 276 +#define PIDX_PKEY_PARAM_RSA_TEST_XP1 277 +#define PIDX_PKEY_PARAM_RSA_TEST_XP2 278 +#define PIDX_PKEY_PARAM_RSA_TEST_XQ 279 +#define PIDX_PKEY_PARAM_RSA_TEST_XQ1 280 +#define PIDX_PKEY_PARAM_RSA_TEST_XQ2 281 +#define PIDX_PKEY_PARAM_SECURITY_BITS 282 +#define PIDX_PKEY_PARAM_SLH_DSA_SEED 140 +#define PIDX_PKEY_PARAM_USE_COFACTOR_ECDH PIDX_PKEY_PARAM_USE_COFACTOR_FLAG +#define PIDX_PKEY_PARAM_USE_COFACTOR_FLAG 283 +#define PIDX_PROV_PARAM_BUILDINFO 284 +#define PIDX_PROV_PARAM_CORE_MODULE_FILENAME 285 +#define PIDX_PROV_PARAM_CORE_PROV_NAME 286 +#define PIDX_PROV_PARAM_CORE_VERSION 287 +#define PIDX_PROV_PARAM_DRBG_TRUNC_DIGEST 288 +#define PIDX_PROV_PARAM_DSA_SIGN_DISABLED 289 +#define PIDX_PROV_PARAM_ECDH_COFACTOR_CHECK 290 +#define PIDX_PROV_PARAM_HKDF_DIGEST_CHECK 291 +#define PIDX_PROV_PARAM_HKDF_KEY_CHECK 292 +#define PIDX_PROV_PARAM_HMAC_KEY_CHECK 293 +#define PIDX_PROV_PARAM_KBKDF_KEY_CHECK 294 +#define PIDX_PROV_PARAM_KMAC_KEY_CHECK 295 +#define PIDX_PROV_PARAM_NAME 296 +#define PIDX_PROV_PARAM_NO_SHORT_MAC 297 +#define PIDX_PROV_PARAM_PBKDF2_LOWER_BOUND_CHECK 298 +#define PIDX_PROV_PARAM_RSA_PKCS15_PAD_DISABLED 299 +#define PIDX_PROV_PARAM_RSA_PSS_SALTLEN_CHECK 300 +#define PIDX_PROV_PARAM_RSA_SIGN_X931_PAD_DISABLED 301 +#define PIDX_PROV_PARAM_SECURITY_CHECKS 302 +#define PIDX_PROV_PARAM_SELF_TEST_DESC 303 +#define PIDX_PROV_PARAM_SELF_TEST_PHASE 304 +#define PIDX_PROV_PARAM_SELF_TEST_TYPE 305 +#define PIDX_PROV_PARAM_SIGNATURE_DIGEST_CHECK 306 +#define PIDX_PROV_PARAM_SSHKDF_DIGEST_CHECK 307 +#define PIDX_PROV_PARAM_SSHKDF_KEY_CHECK 308 +#define PIDX_PROV_PARAM_SSKDF_DIGEST_CHECK 309 +#define PIDX_PROV_PARAM_SSKDF_KEY_CHECK 310 +#define PIDX_PROV_PARAM_STATUS 311 +#define PIDX_PROV_PARAM_TDES_ENCRYPT_DISABLED 312 +#define PIDX_PROV_PARAM_TLS13_KDF_DIGEST_CHECK 313 +#define PIDX_PROV_PARAM_TLS13_KDF_KEY_CHECK 314 +#define PIDX_PROV_PARAM_TLS1_PRF_DIGEST_CHECK 315 +#define PIDX_PROV_PARAM_TLS1_PRF_EMS_CHECK 316 +#define PIDX_PROV_PARAM_TLS1_PRF_KEY_CHECK 317 +#define PIDX_PROV_PARAM_VERSION 115 +#define PIDX_PROV_PARAM_X942KDF_KEY_CHECK 318 +#define PIDX_PROV_PARAM_X963KDF_DIGEST_CHECK 319 +#define PIDX_PROV_PARAM_X963KDF_KEY_CHECK 320 +#define PIDX_RAND_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_RAND_PARAM_GENERATE 321 +#define PIDX_RAND_PARAM_MAX_REQUEST 322 +#define PIDX_RAND_PARAM_STATE 323 +#define PIDX_RAND_PARAM_STRENGTH 324 +#define PIDX_RAND_PARAM_TEST_ENTROPY 325 +#define PIDX_RAND_PARAM_TEST_NONCE 326 +#define PIDX_SIGNATURE_PARAM_ADD_RANDOM 327 +#define PIDX_SIGNATURE_PARAM_ALGORITHM_ID PIDX_PKEY_PARAM_ALGORITHM_ID +#define PIDX_SIGNATURE_PARAM_ALGORITHM_ID_PARAMS PIDX_PKEY_PARAM_ALGORITHM_ID_PARAMS +#define PIDX_SIGNATURE_PARAM_CONTEXT_STRING 328 +#define PIDX_SIGNATURE_PARAM_DETERMINISTIC 329 +#define PIDX_SIGNATURE_PARAM_DIGEST PIDX_PKEY_PARAM_DIGEST +#define PIDX_SIGNATURE_PARAM_DIGEST_SIZE PIDX_PKEY_PARAM_DIGEST_SIZE +#define PIDX_SIGNATURE_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_SIGNATURE_PARAM_FIPS_DIGEST_CHECK PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK +#define PIDX_SIGNATURE_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_SIGNATURE_PARAM_FIPS_RSA_PSS_SALTLEN_CHECK 300 +#define PIDX_SIGNATURE_PARAM_FIPS_SIGN_CHECK PIDX_PKEY_PARAM_FIPS_SIGN_CHECK +#define PIDX_SIGNATURE_PARAM_FIPS_SIGN_X931_PAD_CHECK 330 +#define PIDX_SIGNATURE_PARAM_FIPS_VERIFY_MESSAGE 331 +#define PIDX_SIGNATURE_PARAM_INSTANCE 332 +#define PIDX_SIGNATURE_PARAM_KAT 333 +#define PIDX_SIGNATURE_PARAM_MESSAGE_ENCODING 334 +#define PIDX_SIGNATURE_PARAM_MGF1_DIGEST PIDX_PKEY_PARAM_MGF1_DIGEST +#define PIDX_SIGNATURE_PARAM_MGF1_PROPERTIES PIDX_PKEY_PARAM_MGF1_PROPERTIES +#define PIDX_SIGNATURE_PARAM_MU 335 +#define PIDX_SIGNATURE_PARAM_NONCE_TYPE 336 +#define PIDX_SIGNATURE_PARAM_PAD_MODE PIDX_PKEY_PARAM_PAD_MODE +#define PIDX_SIGNATURE_PARAM_PROPERTIES PIDX_PKEY_PARAM_PROPERTIES +#define PIDX_SIGNATURE_PARAM_PSS_SALTLEN 271 +#define PIDX_SIGNATURE_PARAM_SIGNATURE 337 +#define PIDX_SIGNATURE_PARAM_TEST_ENTROPY 338 +#define PIDX_SKEY_PARAM_KEY_LENGTH 339 +#define PIDX_SKEY_PARAM_RAW_BYTES 340 +#define PIDX_STORE_PARAM_ALIAS 341 +#define PIDX_STORE_PARAM_DIGEST 3 +#define PIDX_STORE_PARAM_EXPECT 342 +#define PIDX_STORE_PARAM_FINGERPRINT 343 +#define PIDX_STORE_PARAM_INPUT_TYPE 174 +#define PIDX_STORE_PARAM_ISSUER 296 +#define PIDX_STORE_PARAM_PROPERTIES 7 +#define PIDX_STORE_PARAM_SERIAL 344 +#define PIDX_STORE_PARAM_SUBJECT 345 diff --git a/deps/openssl/config/archs/VC-WIN32/asm_avx2/include/openssl/asn1.h b/deps/openssl/config/archs/VC-WIN32/asm_avx2/include/openssl/asn1.h index e28efbbb718e2b..5129217b2e0977 100644 --- a/deps/openssl/config/archs/VC-WIN32/asm_avx2/include/openssl/asn1.h +++ b/deps/openssl/config/archs/VC-WIN32/asm_avx2/include/openssl/asn1.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by makefile from include/openssl/asn1.h.in * - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -21,6 +21,9 @@ # define HEADER_ASN1_H # endif +# ifndef OPENSSL_NO_STDIO +# include +# endif # include # include # include @@ -50,14 +53,14 @@ extern "C" { # define V_ASN1_PRIMITIVE_TAG 0x1f # define V_ASN1_PRIMATIVE_TAG /*compat*/ V_ASN1_PRIMITIVE_TAG -# define V_ASN1_APP_CHOOSE -2/* let the recipient choose */ -# define V_ASN1_OTHER -3/* used in ASN1_TYPE */ -# define V_ASN1_ANY -4/* used in ASN1 template code */ +# define V_ASN1_APP_CHOOSE -2 /* let the recipient choose */ +# define V_ASN1_OTHER -3 /* used in ASN1_TYPE */ +# define V_ASN1_ANY -4 /* used in ASN1 template code */ # define V_ASN1_UNDEF -1 /* ASN.1 tag values */ # define V_ASN1_EOC 0 -# define V_ASN1_BOOLEAN 1 /**/ +# define V_ASN1_BOOLEAN 1 # define V_ASN1_INTEGER 2 # define V_ASN1_BIT_STRING 3 # define V_ASN1_OCTET_STRING 4 @@ -70,19 +73,19 @@ extern "C" { # define V_ASN1_UTF8STRING 12 # define V_ASN1_SEQUENCE 16 # define V_ASN1_SET 17 -# define V_ASN1_NUMERICSTRING 18 /**/ +# define V_ASN1_NUMERICSTRING 18 # define V_ASN1_PRINTABLESTRING 19 # define V_ASN1_T61STRING 20 -# define V_ASN1_TELETEXSTRING 20/* alias */ -# define V_ASN1_VIDEOTEXSTRING 21 /**/ +# define V_ASN1_TELETEXSTRING 20 /* alias */ +# define V_ASN1_VIDEOTEXSTRING 21 # define V_ASN1_IA5STRING 22 # define V_ASN1_UTCTIME 23 -# define V_ASN1_GENERALIZEDTIME 24 /**/ -# define V_ASN1_GRAPHICSTRING 25 /**/ -# define V_ASN1_ISO64STRING 26 /**/ -# define V_ASN1_VISIBLESTRING 26/* alias */ -# define V_ASN1_GENERALSTRING 27 /**/ -# define V_ASN1_UNIVERSALSTRING 28 /**/ +# define V_ASN1_GENERALIZEDTIME 24 +# define V_ASN1_GRAPHICSTRING 25 +# define V_ASN1_ISO64STRING 26 +# define V_ASN1_VISIBLESTRING 26 /* alias */ +# define V_ASN1_GENERALSTRING 27 +# define V_ASN1_UNIVERSALSTRING 28 # define V_ASN1_BMPSTRING 30 /* @@ -155,7 +158,7 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_ALGOR, X509_ALGOR, X509_ALGOR) -# define ASN1_STRING_FLAG_BITS_LEFT 0x08/* Set if 0x07 has bits left value */ +# define ASN1_STRING_FLAG_BITS_LEFT 0x08 /* Set if 0x07 has bits left value */ /* * This indicates that the ASN1_STRING is not a real value but just a place * holder for the location where indefinite length constructed data should be @@ -275,7 +278,7 @@ typedef struct ASN1_TLC_st ASN1_TLC; /* This is just an opaque pointer */ typedef struct ASN1_VALUE_st ASN1_VALUE; -/* Declare ASN1 functions: the implement macro in in asn1t.h */ +/* Declare ASN1 functions: the implement macro is in asn1t.h */ /* * The mysterious 'extern' that's passed to some macros is innocuous, @@ -368,6 +371,7 @@ typedef struct ASN1_VALUE_st ASN1_VALUE; typedef void *d2i_of_void(void **, const unsigned char **, long); typedef int i2d_of_void(const void *, unsigned char **); +typedef int OSSL_i2d_of_void_ctx(const void *, unsigned char **, void *vctx); /*- * The following macros and typedefs allow an ASN1_ITEM @@ -996,6 +1000,8 @@ int ASN1_TYPE_get_int_octetstring(const ASN1_TYPE *a, long *num, unsigned char *data, int max_len); void *ASN1_item_unpack(const ASN1_STRING *oct, const ASN1_ITEM *it); +void *ASN1_item_unpack_ex(const ASN1_STRING *oct, const ASN1_ITEM *it, + OSSL_LIB_CTX *libctx, const char *propq); ASN1_STRING *ASN1_item_pack(void *obj, const ASN1_ITEM *it, ASN1_OCTET_STRING **oct); diff --git a/deps/openssl/config/archs/VC-WIN32/asm_avx2/include/openssl/bio.h b/deps/openssl/config/archs/VC-WIN32/asm_avx2/include/openssl/bio.h index d094af47b73f1c..be24d086a54013 100644 --- a/deps/openssl/config/archs/VC-WIN32/asm_avx2/include/openssl/bio.h +++ b/deps/openssl/config/archs/VC-WIN32/asm_avx2/include/openssl/bio.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by makefile from include/openssl/bio.h.in * - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -67,8 +67,13 @@ extern "C" { # define BIO_TYPE_DGRAM_SCTP (24|BIO_TYPE_SOURCE_SINK|BIO_TYPE_DESCRIPTOR) # endif # define BIO_TYPE_CORE_TO_PROV (25|BIO_TYPE_SOURCE_SINK) +# define BIO_TYPE_DGRAM_PAIR (26|BIO_TYPE_SOURCE_SINK) +# define BIO_TYPE_DGRAM_MEM (27|BIO_TYPE_SOURCE_SINK) +/* Custom type starting index returned by BIO_get_new_index() */ #define BIO_TYPE_START 128 +/* Custom type maximum index that can be returned by BIO_get_new_index() */ +#define BIO_TYPE_MASK 0xFF /* * BIO_FILENAME_READ|BIO_CLOSE to open or close on free. @@ -171,6 +176,31 @@ extern "C" { # define BIO_CTRL_SET_INDENT 80 # define BIO_CTRL_GET_INDENT 81 +# define BIO_CTRL_DGRAM_GET_LOCAL_ADDR_CAP 82 +# define BIO_CTRL_DGRAM_GET_LOCAL_ADDR_ENABLE 83 +# define BIO_CTRL_DGRAM_SET_LOCAL_ADDR_ENABLE 84 +# define BIO_CTRL_DGRAM_GET_EFFECTIVE_CAPS 85 +# define BIO_CTRL_DGRAM_GET_CAPS 86 +# define BIO_CTRL_DGRAM_SET_CAPS 87 +# define BIO_CTRL_DGRAM_GET_NO_TRUNC 88 +# define BIO_CTRL_DGRAM_SET_NO_TRUNC 89 + +/* + * internal BIO: + * # define BIO_CTRL_SET_KTLS_TX_ZEROCOPY_SENDFILE 90 + */ + +# define BIO_CTRL_GET_RPOLL_DESCRIPTOR 91 +# define BIO_CTRL_GET_WPOLL_DESCRIPTOR 92 +# define BIO_CTRL_DGRAM_DETECT_PEER_ADDR 93 +# define BIO_CTRL_DGRAM_SET0_LOCAL_ADDR 94 + +# define BIO_DGRAM_CAP_NONE 0U +# define BIO_DGRAM_CAP_HANDLES_SRC_ADDR (1U << 0) +# define BIO_DGRAM_CAP_HANDLES_DST_ADDR (1U << 1) +# define BIO_DGRAM_CAP_PROVIDES_SRC_ADDR (1U << 2) +# define BIO_DGRAM_CAP_PROVIDES_DST_ADDR (1U << 3) + # ifndef OPENSSL_NO_KTLS # define BIO_get_ktls_send(b) \ (BIO_ctrl(b, BIO_CTRL_GET_KTLS_SEND, 0, NULL) > 0) @@ -208,7 +238,7 @@ extern "C" { # define BIO_FLAGS_NONCLEAR_RST 0x400 # define BIO_FLAGS_IN_EOF 0x800 -/* the BIO FLAGS values 0x1000 to 0x4000 are reserved for internal KTLS flags */ +/* the BIO FLAGS values 0x1000 to 0x8000 are reserved for internal KTLS flags */ typedef union bio_addr_st BIO_ADDR; typedef struct bio_addrinfo_st BIO_ADDRINFO; @@ -256,12 +286,14 @@ void BIO_clear_flags(BIO *b, int flags); # define BIO_RR_ACCEPT 0x03 /* These are passed by the BIO callback */ -# define BIO_CB_FREE 0x01 -# define BIO_CB_READ 0x02 -# define BIO_CB_WRITE 0x03 -# define BIO_CB_PUTS 0x04 -# define BIO_CB_GETS 0x05 -# define BIO_CB_CTRL 0x06 +# define BIO_CB_FREE 0x01 +# define BIO_CB_READ 0x02 +# define BIO_CB_WRITE 0x03 +# define BIO_CB_PUTS 0x04 +# define BIO_CB_GETS 0x05 +# define BIO_CB_CTRL 0x06 +# define BIO_CB_RECVMMSG 0x07 +# define BIO_CB_SENDMMSG 0x08 /* * The callback is called before and after the underling operation, The @@ -362,6 +394,36 @@ struct bio_dgram_sctp_prinfo { }; # endif +/* BIO_sendmmsg/BIO_recvmmsg-related definitions */ +typedef struct bio_msg_st { + void *data; + size_t data_len; + BIO_ADDR *peer, *local; + uint64_t flags; +} BIO_MSG; + +typedef struct bio_mmsg_cb_args_st { + BIO_MSG *msg; + size_t stride, num_msg; + uint64_t flags; + size_t *msgs_processed; +} BIO_MMSG_CB_ARGS; + +#define BIO_POLL_DESCRIPTOR_TYPE_NONE 0 +#define BIO_POLL_DESCRIPTOR_TYPE_SOCK_FD 1 +#define BIO_POLL_DESCRIPTOR_TYPE_SSL 2 +#define BIO_POLL_DESCRIPTOR_CUSTOM_START 8192 + +typedef struct bio_poll_descriptor_st { + uint32_t type; + union { + int fd; + void *custom; + uintptr_t custom_ui; + SSL *ssl; + } value; +} BIO_POLL_DESCRIPTOR; + /* * #define BIO_CONN_get_param_hostname BIO_ctrl */ @@ -428,10 +490,17 @@ struct bio_dgram_sctp_prinfo { # define BIO_C_SET_CONNECT_MODE 155 +# define BIO_C_SET_TFO 156 /* like BIO_C_SET_NBIO */ + +# define BIO_C_SET_SOCK_TYPE 157 +# define BIO_C_GET_SOCK_TYPE 158 +# define BIO_C_GET_DGRAM_BIO 159 + # define BIO_set_app_data(s,arg) BIO_set_ex_data(s,0,arg) # define BIO_get_app_data(s) BIO_get_ex_data(s,0) -# define BIO_set_nbio(b,n) BIO_ctrl(b,BIO_C_SET_NBIO,(n),NULL) +# define BIO_set_nbio(b,n) BIO_ctrl(b,BIO_C_SET_NBIO,(n),NULL) +# define BIO_set_tfo(b,n) BIO_ctrl(b,BIO_C_SET_TFO,(n),NULL) # ifndef OPENSSL_NO_SOCK /* IP families we support, for BIO_s_connect() and BIO_s_accept() */ @@ -452,7 +521,11 @@ struct bio_dgram_sctp_prinfo { # define BIO_get_conn_port(b) ((const char *)BIO_ptr_ctrl(b,BIO_C_GET_CONNECT,1)) # define BIO_get_conn_address(b) ((const BIO_ADDR *)BIO_ptr_ctrl(b,BIO_C_GET_CONNECT,2)) # define BIO_get_conn_ip_family(b) BIO_ctrl(b,BIO_C_GET_CONNECT,3,NULL) +# define BIO_get_conn_mode(b) BIO_ctrl(b,BIO_C_GET_CONNECT,4,NULL) # define BIO_set_conn_mode(b,n) BIO_ctrl(b,BIO_C_SET_CONNECT_MODE,(n),NULL) +# define BIO_set_sock_type(b,t) BIO_ctrl(b,BIO_C_SET_SOCK_TYPE,(t),NULL) +# define BIO_get_sock_type(b) BIO_ctrl(b,BIO_C_GET_SOCK_TYPE,0,NULL) +# define BIO_get0_dgram_bio(b, p) BIO_ctrl(b,BIO_C_GET_DGRAM_BIO,0,(void *)(BIO **)(p)) /* BIO_s_accept() */ # define BIO_set_accept_name(b,name) BIO_ctrl(b,BIO_C_SET_ACCEPT,0, \ @@ -469,6 +542,7 @@ struct bio_dgram_sctp_prinfo { (char *)(bio)) # define BIO_set_accept_ip_family(b,f) BIO_int_ctrl(b,BIO_C_SET_ACCEPT,4,f) # define BIO_get_accept_ip_family(b) BIO_ctrl(b,BIO_C_GET_ACCEPT,4,NULL) +# define BIO_set_tfo_accept(b,n) BIO_ctrl(b,BIO_C_SET_ACCEPT,5,(n)?(void *)"a":NULL) /* Aliases kept for backward compatibility */ # define BIO_BIND_NORMAL 0 @@ -596,8 +670,32 @@ int BIO_ctrl_reset_read_request(BIO *b); (int)BIO_ctrl(b, BIO_CTRL_DGRAM_GET_PEER, 0, (char *)(peer)) # define BIO_dgram_set_peer(b,peer) \ (int)BIO_ctrl(b, BIO_CTRL_DGRAM_SET_PEER, 0, (char *)(peer)) +# define BIO_dgram_detect_peer_addr(b,peer) \ + (int)BIO_ctrl(b, BIO_CTRL_DGRAM_DETECT_PEER_ADDR, 0, (char *)(peer)) # define BIO_dgram_get_mtu_overhead(b) \ (unsigned int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_MTU_OVERHEAD, 0, NULL) +# define BIO_dgram_get_local_addr_cap(b) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_LOCAL_ADDR_CAP, 0, NULL) +# define BIO_dgram_get_local_addr_enable(b, penable) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_LOCAL_ADDR_ENABLE, 0, (char *)(penable)) +# define BIO_dgram_set_local_addr_enable(b, enable) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET_LOCAL_ADDR_ENABLE, (enable), NULL) +# define BIO_dgram_get_effective_caps(b) \ + (uint32_t)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_EFFECTIVE_CAPS, 0, NULL) +# define BIO_dgram_get_caps(b) \ + (uint32_t)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_CAPS, 0, NULL) +# define BIO_dgram_set_caps(b, caps) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET_CAPS, (long)(caps), NULL) +# define BIO_dgram_get_no_trunc(b) \ + (unsigned int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_NO_TRUNC, 0, NULL) +# define BIO_dgram_set_no_trunc(b, enable) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET_NO_TRUNC, (enable), NULL) +# define BIO_dgram_get_mtu(b) \ + (unsigned int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_MTU, 0, NULL) +# define BIO_dgram_set_mtu(b, mtu) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET_MTU, (mtu), NULL) +# define BIO_dgram_set0_local_addr(b, addr) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET0_LOCAL_ADDR, 0, (addr)) /* ctrl macros for BIO_f_prefix */ # define BIO_set_prefix(b,p) BIO_ctrl((b), BIO_CTRL_SET_PREFIX, 0, (void *)(p)) @@ -640,10 +738,18 @@ void BIO_vfree(BIO *a); int BIO_up_ref(BIO *a); int BIO_read(BIO *b, void *data, int dlen); int BIO_read_ex(BIO *b, void *data, size_t dlen, size_t *readbytes); +__owur int BIO_recvmmsg(BIO *b, BIO_MSG *msg, + size_t stride, size_t num_msg, uint64_t flags, + size_t *msgs_processed); int BIO_gets(BIO *bp, char *buf, int size); int BIO_get_line(BIO *bio, char *buf, int size); int BIO_write(BIO *b, const void *data, int dlen); int BIO_write_ex(BIO *b, const void *data, size_t dlen, size_t *written); +__owur int BIO_sendmmsg(BIO *b, BIO_MSG *msg, + size_t stride, size_t num_msg, uint64_t flags, + size_t *msgs_processed); +__owur int BIO_get_rpoll_descriptor(BIO *b, BIO_POLL_DESCRIPTOR *desc); +__owur int BIO_get_wpoll_descriptor(BIO *b, BIO_POLL_DESCRIPTOR *desc); int BIO_puts(BIO *bp, const char *buf); int BIO_indent(BIO *b, int indent, int max); long BIO_ctrl(BIO *bp, int cmd, long larg, void *parg); @@ -667,6 +773,9 @@ int BIO_nwrite0(BIO *bio, char **buf); int BIO_nwrite(BIO *bio, char **buf, int num); const BIO_METHOD *BIO_s_mem(void); +# ifndef OPENSSL_NO_DGRAM +const BIO_METHOD *BIO_s_dgram_mem(void); +# endif const BIO_METHOD *BIO_s_secmem(void); BIO *BIO_new_mem_buf(const void *buf, int len); # ifndef OPENSSL_NO_SOCK @@ -686,6 +795,7 @@ const BIO_METHOD *BIO_f_nbio_test(void); const BIO_METHOD *BIO_f_prefix(void); const BIO_METHOD *BIO_s_core(void); # ifndef OPENSSL_NO_DGRAM +const BIO_METHOD *BIO_s_dgram_pair(void); const BIO_METHOD *BIO_s_datagram(void); int BIO_dgram_non_fatal_error(int error); BIO *BIO_new_dgram(int fd, int close_flag); @@ -704,6 +814,7 @@ int BIO_dgram_sctp_msg_waiting(BIO *b); # ifndef OPENSSL_NO_SOCK int BIO_sock_should_retry(int i); int BIO_sock_non_fatal_error(int error); +int BIO_err_is_non_fatal(unsigned int errcode); int BIO_socket_wait(int fd, int for_read, time_t max_time); # endif int BIO_wait(BIO *bio, time_t max_time, unsigned int nap_milliseconds); @@ -726,6 +837,8 @@ int BIO_hex_string(BIO *out, int indent, int width, const void *data, # ifndef OPENSSL_NO_SOCK BIO_ADDR *BIO_ADDR_new(void); +int BIO_ADDR_copy(BIO_ADDR *dst, const BIO_ADDR *src); +BIO_ADDR *BIO_ADDR_dup(const BIO_ADDR *ap); int BIO_ADDR_rawmake(BIO_ADDR *ap, int family, const void *where, size_t wherelen, unsigned short port); void BIO_ADDR_free(BIO_ADDR *); @@ -788,6 +901,7 @@ int BIO_sock_info(int sock, # define BIO_SOCK_KEEPALIVE 0x04 # define BIO_SOCK_NONBLOCK 0x08 # define BIO_SOCK_NODELAY 0x10 +# define BIO_SOCK_TFO 0x20 int BIO_socket(int domain, int socktype, int protocol, int options); int BIO_connect(int sock, const BIO_ADDR *addr, int options); @@ -805,6 +919,11 @@ BIO *BIO_new_fd(int fd, int close_flag); int BIO_new_bio_pair(BIO **bio1, size_t writebuf1, BIO **bio2, size_t writebuf2); +# ifndef OPENSSL_NO_DGRAM +int BIO_new_bio_dgram_pair(BIO **bio1, size_t writebuf1, + BIO **bio2, size_t writebuf2); +# endif + /* * If successful, returns 1 and in *bio1, *bio2 two BIO pair endpoints. * Otherwise returns 0 and sets *bio1 and *bio2 to NULL. Size 0 uses default @@ -849,38 +968,54 @@ ossl_bio__attr__((__format__(ossl_bio__printf__, 3, 0))); BIO_METHOD *BIO_meth_new(int type, const char *name); void BIO_meth_free(BIO_METHOD *biom); -int (*BIO_meth_get_write(const BIO_METHOD *biom)) (BIO *, const char *, int); -int (*BIO_meth_get_write_ex(const BIO_METHOD *biom)) (BIO *, const char *, size_t, - size_t *); int BIO_meth_set_write(BIO_METHOD *biom, int (*write) (BIO *, const char *, int)); int BIO_meth_set_write_ex(BIO_METHOD *biom, int (*bwrite) (BIO *, const char *, size_t, size_t *)); -int (*BIO_meth_get_read(const BIO_METHOD *biom)) (BIO *, char *, int); -int (*BIO_meth_get_read_ex(const BIO_METHOD *biom)) (BIO *, char *, size_t, size_t *); +int BIO_meth_set_sendmmsg(BIO_METHOD *biom, + int (*f) (BIO *, BIO_MSG *, size_t, size_t, + uint64_t, size_t *)); int BIO_meth_set_read(BIO_METHOD *biom, int (*read) (BIO *, char *, int)); int BIO_meth_set_read_ex(BIO_METHOD *biom, int (*bread) (BIO *, char *, size_t, size_t *)); -int (*BIO_meth_get_puts(const BIO_METHOD *biom)) (BIO *, const char *); +int BIO_meth_set_recvmmsg(BIO_METHOD *biom, + int (*f) (BIO *, BIO_MSG *, size_t, size_t, + uint64_t, size_t *)); int BIO_meth_set_puts(BIO_METHOD *biom, int (*puts) (BIO *, const char *)); -int (*BIO_meth_get_gets(const BIO_METHOD *biom)) (BIO *, char *, int); int BIO_meth_set_gets(BIO_METHOD *biom, int (*ossl_gets) (BIO *, char *, int)); -long (*BIO_meth_get_ctrl(const BIO_METHOD *biom)) (BIO *, int, long, void *); int BIO_meth_set_ctrl(BIO_METHOD *biom, long (*ctrl) (BIO *, int, long, void *)); -int (*BIO_meth_get_create(const BIO_METHOD *bion)) (BIO *); int BIO_meth_set_create(BIO_METHOD *biom, int (*create) (BIO *)); -int (*BIO_meth_get_destroy(const BIO_METHOD *biom)) (BIO *); int BIO_meth_set_destroy(BIO_METHOD *biom, int (*destroy) (BIO *)); -long (*BIO_meth_get_callback_ctrl(const BIO_METHOD *biom)) - (BIO *, int, BIO_info_cb *); int BIO_meth_set_callback_ctrl(BIO_METHOD *biom, long (*callback_ctrl) (BIO *, int, BIO_info_cb *)); - +# ifndef OPENSSL_NO_DEPRECATED_3_5 +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_write(const BIO_METHOD *biom)) (BIO *, const char *, + int); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_write_ex(const BIO_METHOD *biom)) (BIO *, const char *, + size_t, size_t *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_sendmmsg(const BIO_METHOD *biom))(BIO *, BIO_MSG *, + size_t, size_t, + uint64_t, size_t *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_read(const BIO_METHOD *biom)) (BIO *, char *, int); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_read_ex(const BIO_METHOD *biom)) (BIO *, char *, + size_t, size_t *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_recvmmsg(const BIO_METHOD *biom))(BIO *, BIO_MSG *, + size_t, size_t, + uint64_t, size_t *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_puts(const BIO_METHOD *biom)) (BIO *, const char *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_gets(const BIO_METHOD *biom)) (BIO *, char *, int); +OSSL_DEPRECATEDIN_3_5 long (*BIO_meth_get_ctrl(const BIO_METHOD *biom)) (BIO *, int, + long, void *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_create(const BIO_METHOD *bion)) (BIO *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_destroy(const BIO_METHOD *biom)) (BIO *); +OSSL_DEPRECATEDIN_3_5 long (*BIO_meth_get_callback_ctrl(const BIO_METHOD *biom)) (BIO *, int, + BIO_info_cb *); +# endif # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/VC-WIN32/asm_avx2/include/openssl/cmp.h b/deps/openssl/config/archs/VC-WIN32/asm_avx2/include/openssl/cmp.h index f0e768e01baacd..ded2dd2905f756 100644 --- a/deps/openssl/config/archs/VC-WIN32/asm_avx2/include/openssl/cmp.h +++ b/deps/openssl/config/archs/VC-WIN32/asm_avx2/include/openssl/cmp.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by makefile from include/openssl/cmp.h.in * - * Copyright 2007-2023 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2007-2024 The OpenSSL Project Authors. All Rights Reserved. * Copyright Nokia 2007-2019 * Copyright Siemens AG 2015-2019 * @@ -35,7 +35,9 @@ extern "C" { # endif -# define OSSL_CMP_PVNO 2 +# define OSSL_CMP_PVNO_2 2 +# define OSSL_CMP_PVNO_3 3 +# define OSSL_CMP_PVNO OSSL_CMP_PVNO_2 /* v2 is the default */ /*- * PKIFailureInfo ::= BIT STRING { @@ -137,7 +139,6 @@ extern "C" { # if OSSL_CMP_PKIFAILUREINFO_MAX_BIT_PATTERN > INT_MAX # error CMP_PKIFAILUREINFO_MAX bit pattern does not fit in type int # endif - typedef ASN1_BIT_STRING OSSL_CMP_PKIFAILUREINFO; # define OSSL_CMP_CTX_FAILINFO_badAlg (1 << 0) @@ -203,8 +204,8 @@ typedef ASN1_BIT_STRING OSSL_CMP_PKIFAILUREINFO; # define OSSL_CMP_PKISTATUS_revocationWarning 4 # define OSSL_CMP_PKISTATUS_revocationNotification 5 # define OSSL_CMP_PKISTATUS_keyUpdateWarning 6 - typedef ASN1_INTEGER OSSL_CMP_PKISTATUS; + DECLARE_ASN1_ITEM(OSSL_CMP_PKISTATUS) # define OSSL_CMP_CERTORENCCERT_CERTIFICATE 0 @@ -274,6 +275,46 @@ SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CMP_ITAV, OSSL_CMP_ITAV, OSSL_CMP_ITAV) #define sk_OSSL_CMP_ITAV_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_CMP_ITAV) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_CMP_ITAV_sk_type(sk), ossl_check_OSSL_CMP_ITAV_copyfunc_type(copyfunc), ossl_check_OSSL_CMP_ITAV_freefunc_type(freefunc))) #define sk_OSSL_CMP_ITAV_set_cmp_func(sk, cmp) ((sk_OSSL_CMP_ITAV_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CMP_ITAV_sk_type(sk), ossl_check_OSSL_CMP_ITAV_compfunc_type(cmp))) + +typedef struct ossl_cmp_crlstatus_st OSSL_CMP_CRLSTATUS; +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CMP_CRLSTATUS, OSSL_CMP_CRLSTATUS, OSSL_CMP_CRLSTATUS) +#define sk_OSSL_CMP_CRLSTATUS_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_value(sk, idx) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_value(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk), (idx))) +#define sk_OSSL_CMP_CRLSTATUS_new(cmp) ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_new(ossl_check_OSSL_CMP_CRLSTATUS_compfunc_type(cmp))) +#define sk_OSSL_CMP_CRLSTATUS_new_null() ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_new_null()) +#define sk_OSSL_CMP_CRLSTATUS_new_reserve(cmp, n) ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_CMP_CRLSTATUS_compfunc_type(cmp), (n))) +#define sk_OSSL_CMP_CRLSTATUS_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), (n)) +#define sk_OSSL_CMP_CRLSTATUS_free(sk) OPENSSL_sk_free(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_delete(sk, i) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_delete(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), (i))) +#define sk_OSSL_CMP_CRLSTATUS_delete_ptr(sk, ptr) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr))) +#define sk_OSSL_CMP_CRLSTATUS_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr)) +#define sk_OSSL_CMP_CRLSTATUS_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr)) +#define sk_OSSL_CMP_CRLSTATUS_pop(sk) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_pop(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk))) +#define sk_OSSL_CMP_CRLSTATUS_shift(sk) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_shift(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk))) +#define sk_OSSL_CMP_CRLSTATUS_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk),ossl_check_OSSL_CMP_CRLSTATUS_freefunc_type(freefunc)) +#define sk_OSSL_CMP_CRLSTATUS_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr), (idx)) +#define sk_OSSL_CMP_CRLSTATUS_set(sk, idx, ptr) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_set(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), (idx), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr))) +#define sk_OSSL_CMP_CRLSTATUS_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr)) +#define sk_OSSL_CMP_CRLSTATUS_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr)) +#define sk_OSSL_CMP_CRLSTATUS_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr), pnum) +#define sk_OSSL_CMP_CRLSTATUS_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_dup(sk) ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_dup(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk))) +#define sk_OSSL_CMP_CRLSTATUS_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_copyfunc_type(copyfunc), ossl_check_OSSL_CMP_CRLSTATUS_freefunc_type(freefunc))) +#define sk_OSSL_CMP_CRLSTATUS_set_cmp_func(sk, cmp) ((sk_OSSL_CMP_CRLSTATUS_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_compfunc_type(cmp))) + + +typedef OSSL_CRMF_ATTRIBUTETYPEANDVALUE OSSL_CMP_ATAV; +# define OSSL_CMP_ATAV_free OSSL_CRMF_ATTRIBUTETYPEANDVALUE_free +typedef STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) OSSL_CMP_ATAVS; +DECLARE_ASN1_FUNCTIONS(OSSL_CMP_ATAVS) +# define stack_st_OSSL_CMP_ATAV stack_st_OSSL_CRMF_ATTRIBUTETYPEANDVALUE +# define sk_OSSL_CMP_ATAV_num sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_num +# define sk_OSSL_CMP_ATAV_value sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_value +# define sk_OSSL_CMP_ATAV_push sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_push +# define sk_OSSL_CMP_ATAV_pop_free sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_pop_free + typedef struct ossl_cmp_revrepcontent_st OSSL_CMP_REVREPCONTENT; typedef struct ossl_cmp_pkisi_st OSSL_CMP_PKISI; DECLARE_ASN1_FUNCTIONS(OSSL_CMP_PKISI) @@ -375,21 +416,75 @@ void OSSL_CMP_ITAV_set0(OSSL_CMP_ITAV *itav, ASN1_OBJECT *type, ASN1_TYPE *value); ASN1_OBJECT *OSSL_CMP_ITAV_get0_type(const OSSL_CMP_ITAV *itav); ASN1_TYPE *OSSL_CMP_ITAV_get0_value(const OSSL_CMP_ITAV *itav); -int OSSL_CMP_ITAV_push0_stack_item(STACK_OF(OSSL_CMP_ITAV) **itav_sk_p, +int OSSL_CMP_ITAV_push0_stack_item(STACK_OF(OSSL_CMP_ITAV) **sk_p, OSSL_CMP_ITAV *itav); void OSSL_CMP_ITAV_free(OSSL_CMP_ITAV *itav); + +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new0_certProfile(STACK_OF(ASN1_UTF8STRING) + *certProfile); +int OSSL_CMP_ITAV_get0_certProfile(const OSSL_CMP_ITAV *itav, + STACK_OF(ASN1_UTF8STRING) **out); +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new_caCerts(const STACK_OF(X509) *caCerts); +int OSSL_CMP_ITAV_get0_caCerts(const OSSL_CMP_ITAV *itav, STACK_OF(X509) **out); + +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new_rootCaCert(const X509 *rootCaCert); +int OSSL_CMP_ITAV_get0_rootCaCert(const OSSL_CMP_ITAV *itav, X509 **out); +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new_rootCaKeyUpdate(const X509 *newWithNew, + const X509 *newWithOld, + const X509 *oldWithNew); +int OSSL_CMP_ITAV_get0_rootCaKeyUpdate(const OSSL_CMP_ITAV *itav, + X509 **newWithNew, + X509 **newWithOld, + X509 **oldWithNew); + +OSSL_CMP_CRLSTATUS *OSSL_CMP_CRLSTATUS_create(const X509_CRL *crl, + const X509 *cert, int only_DN); +OSSL_CMP_CRLSTATUS *OSSL_CMP_CRLSTATUS_new1(const DIST_POINT_NAME *dpn, + const GENERAL_NAMES *issuer, + const ASN1_TIME *thisUpdate); +int OSSL_CMP_CRLSTATUS_get0(const OSSL_CMP_CRLSTATUS *crlstatus, + DIST_POINT_NAME **dpn, GENERAL_NAMES **issuer, + ASN1_TIME **thisUpdate); +void OSSL_CMP_CRLSTATUS_free(OSSL_CMP_CRLSTATUS *crlstatus); +OSSL_CMP_ITAV +*OSSL_CMP_ITAV_new0_crlStatusList(STACK_OF(OSSL_CMP_CRLSTATUS) *crlStatusList); +int OSSL_CMP_ITAV_get0_crlStatusList(const OSSL_CMP_ITAV *itav, + STACK_OF(OSSL_CMP_CRLSTATUS) **out); +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new_crls(const X509_CRL *crls); +int OSSL_CMP_ITAV_get0_crls(const OSSL_CMP_ITAV *it, STACK_OF(X509_CRL) **out); +OSSL_CMP_ITAV +*OSSL_CMP_ITAV_new0_certReqTemplate(OSSL_CRMF_CERTTEMPLATE *certTemplate, + OSSL_CMP_ATAVS *keySpec); +int OSSL_CMP_ITAV_get1_certReqTemplate(const OSSL_CMP_ITAV *itav, + OSSL_CRMF_CERTTEMPLATE **certTemplate, + OSSL_CMP_ATAVS **keySpec); + +OSSL_CMP_ATAV *OSSL_CMP_ATAV_create(ASN1_OBJECT *type, ASN1_TYPE *value); +void OSSL_CMP_ATAV_set0(OSSL_CMP_ATAV *itav, ASN1_OBJECT *type, + ASN1_TYPE *value); +ASN1_OBJECT *OSSL_CMP_ATAV_get0_type(const OSSL_CMP_ATAV *itav); +ASN1_TYPE *OSSL_CMP_ATAV_get0_value(const OSSL_CMP_ATAV *itav); +OSSL_CMP_ATAV *OSSL_CMP_ATAV_new_algId(const X509_ALGOR *alg); +X509_ALGOR *OSSL_CMP_ATAV_get0_algId(const OSSL_CMP_ATAV *atav); +OSSL_CMP_ATAV *OSSL_CMP_ATAV_new_rsaKeyLen(int len); +int OSSL_CMP_ATAV_get_rsaKeyLen(const OSSL_CMP_ATAV *atav); +int OSSL_CMP_ATAV_push1(OSSL_CMP_ATAVS **sk_p, const OSSL_CMP_ATAV *atav); + void OSSL_CMP_MSG_free(OSSL_CMP_MSG *msg); /* from cmp_ctx.c */ OSSL_CMP_CTX *OSSL_CMP_CTX_new(OSSL_LIB_CTX *libctx, const char *propq); void OSSL_CMP_CTX_free(OSSL_CMP_CTX *ctx); int OSSL_CMP_CTX_reinit(OSSL_CMP_CTX *ctx); +OSSL_LIB_CTX *OSSL_CMP_CTX_get0_libctx(const OSSL_CMP_CTX *ctx); +const char *OSSL_CMP_CTX_get0_propq(const OSSL_CMP_CTX *ctx); /* CMP general options: */ # define OSSL_CMP_OPT_LOG_VERBOSITY 0 /* CMP transfer options: */ -# define OSSL_CMP_OPT_KEEP_ALIVE 10 -# define OSSL_CMP_OPT_MSG_TIMEOUT 11 +# define OSSL_CMP_OPT_KEEP_ALIVE 10 +# define OSSL_CMP_OPT_MSG_TIMEOUT 11 # define OSSL_CMP_OPT_TOTAL_TIMEOUT 12 +# define OSSL_CMP_OPT_USE_TLS 13 /* CMP request options: */ # define OSSL_CMP_OPT_VALIDITY_DAYS 20 # define OSSL_CMP_OPT_SUBJECTALTNAME_NODEFAULT 21 @@ -407,6 +502,7 @@ int OSSL_CMP_CTX_reinit(OSSL_CMP_CTX *ctx); # define OSSL_CMP_OPT_DIGEST_ALGNID 34 # define OSSL_CMP_OPT_IGNORE_KEYUSAGE 35 # define OSSL_CMP_OPT_PERMIT_TA_IN_EXTRACERTS_FOR_IR 36 +# define OSSL_CMP_OPT_NO_CACHE_EXTRACERTS 37 int OSSL_CMP_CTX_set_option(OSSL_CMP_CTX *ctx, int opt, int val); int OSSL_CMP_CTX_get_option(const OSSL_CMP_CTX *ctx, int opt); /* CMP-specific callback for logging and outputting the error queue: */ @@ -420,9 +516,11 @@ int OSSL_CMP_CTX_set1_server(OSSL_CMP_CTX *ctx, const char *address); int OSSL_CMP_CTX_set_serverPort(OSSL_CMP_CTX *ctx, int port); int OSSL_CMP_CTX_set1_proxy(OSSL_CMP_CTX *ctx, const char *name); int OSSL_CMP_CTX_set1_no_proxy(OSSL_CMP_CTX *ctx, const char *names); +# ifndef OPENSSL_NO_HTTP int OSSL_CMP_CTX_set_http_cb(OSSL_CMP_CTX *ctx, OSSL_HTTP_bio_cb_t cb); int OSSL_CMP_CTX_set_http_cb_arg(OSSL_CMP_CTX *ctx, void *arg); void *OSSL_CMP_CTX_get_http_cb_arg(const OSSL_CMP_CTX *ctx); +# endif typedef OSSL_CMP_MSG *(*OSSL_CMP_transfer_cb_t) (OSSL_CMP_CTX *ctx, const OSSL_CMP_MSG *req); int OSSL_CMP_CTX_set_transfer_cb(OSSL_CMP_CTX *ctx, OSSL_CMP_transfer_cb_t cb); @@ -432,7 +530,9 @@ void *OSSL_CMP_CTX_get_transfer_cb_arg(const OSSL_CMP_CTX *ctx); int OSSL_CMP_CTX_set1_srvCert(OSSL_CMP_CTX *ctx, X509 *cert); int OSSL_CMP_CTX_set1_expected_sender(OSSL_CMP_CTX *ctx, const X509_NAME *name); int OSSL_CMP_CTX_set0_trustedStore(OSSL_CMP_CTX *ctx, X509_STORE *store); +# define OSSL_CMP_CTX_set0_trusted OSSL_CMP_CTX_set0_trustedStore X509_STORE *OSSL_CMP_CTX_get0_trustedStore(const OSSL_CMP_CTX *ctx); +# define OSSL_CMP_CTX_get0_trusted OSSL_CMP_CTX_get0_trustedStore int OSSL_CMP_CTX_set1_untrusted(OSSL_CMP_CTX *ctx, STACK_OF(X509) *certs); STACK_OF(X509) *OSSL_CMP_CTX_get0_untrusted(const OSSL_CMP_CTX *ctx); /* client authentication: */ @@ -448,12 +548,15 @@ int OSSL_CMP_CTX_set1_secretValue(OSSL_CMP_CTX *ctx, int OSSL_CMP_CTX_set1_recipient(OSSL_CMP_CTX *ctx, const X509_NAME *name); int OSSL_CMP_CTX_push0_geninfo_ITAV(OSSL_CMP_CTX *ctx, OSSL_CMP_ITAV *itav); int OSSL_CMP_CTX_reset_geninfo_ITAVs(OSSL_CMP_CTX *ctx); +STACK_OF(OSSL_CMP_ITAV) + *OSSL_CMP_CTX_get0_geninfo_ITAVs(const OSSL_CMP_CTX *ctx); int OSSL_CMP_CTX_set1_extraCertsOut(OSSL_CMP_CTX *ctx, STACK_OF(X509) *extraCertsOut); /* certificate template: */ int OSSL_CMP_CTX_set0_newPkey(OSSL_CMP_CTX *ctx, int priv, EVP_PKEY *pkey); EVP_PKEY *OSSL_CMP_CTX_get0_newPkey(const OSSL_CMP_CTX *ctx, int priv); int OSSL_CMP_CTX_set1_issuer(OSSL_CMP_CTX *ctx, const X509_NAME *name); +int OSSL_CMP_CTX_set1_serialNumber(OSSL_CMP_CTX *ctx, const ASN1_INTEGER *sn); int OSSL_CMP_CTX_set1_subjectName(OSSL_CMP_CTX *ctx, const X509_NAME *name); int OSSL_CMP_CTX_push1_subjectAltName(OSSL_CMP_CTX *ctx, const GENERAL_NAME *name); @@ -477,6 +580,7 @@ int OSSL_CMP_CTX_get_status(const OSSL_CMP_CTX *ctx); OSSL_CMP_PKIFREETEXT *OSSL_CMP_CTX_get0_statusString(const OSSL_CMP_CTX *ctx); int OSSL_CMP_CTX_get_failInfoCode(const OSSL_CMP_CTX *ctx); # define OSSL_CMP_PKISI_BUFLEN 1024 +X509 *OSSL_CMP_CTX_get0_validatedSrvCert(const OSSL_CMP_CTX *ctx); X509 *OSSL_CMP_CTX_get0_newCert(const OSSL_CMP_CTX *ctx); STACK_OF(X509) *OSSL_CMP_CTX_get1_newChain(const OSSL_CMP_CTX *ctx); STACK_OF(X509) *OSSL_CMP_CTX_get1_caPubs(const OSSL_CMP_CTX *ctx); @@ -498,10 +602,13 @@ OSSL_CMP_STATUSINFO_new(int status, int fail_info, const char *text); ASN1_OCTET_STRING *OSSL_CMP_HDR_get0_transactionID(const OSSL_CMP_PKIHEADER *hdr); ASN1_OCTET_STRING *OSSL_CMP_HDR_get0_recipNonce(const OSSL_CMP_PKIHEADER *hdr); +STACK_OF(OSSL_CMP_ITAV) + *OSSL_CMP_HDR_get0_geninfo_ITAVs(const OSSL_CMP_PKIHEADER *hdr); /* from cmp_msg.c */ OSSL_CMP_PKIHEADER *OSSL_CMP_MSG_get0_header(const OSSL_CMP_MSG *msg); int OSSL_CMP_MSG_get_bodytype(const OSSL_CMP_MSG *msg); +X509_PUBKEY *OSSL_CMP_MSG_get0_certreq_publickey(const OSSL_CMP_MSG *msg); int OSSL_CMP_MSG_update_transactionID(OSSL_CMP_CTX *ctx, OSSL_CMP_MSG *msg); int OSSL_CMP_MSG_update_recipNonce(OSSL_CMP_CTX *ctx, OSSL_CMP_MSG *msg); OSSL_CRMF_MSG *OSSL_CMP_CTX_setup_CRM(OSSL_CMP_CTX *ctx, int for_KUR, int rid); @@ -517,8 +624,10 @@ int OSSL_CMP_validate_cert_path(const OSSL_CMP_CTX *ctx, X509_STORE *trusted_store, X509 *cert); /* from cmp_http.c */ +# ifndef OPENSSL_NO_HTTP OSSL_CMP_MSG *OSSL_CMP_MSG_http_perform(OSSL_CMP_CTX *ctx, const OSSL_CMP_MSG *req); +# endif /* from cmp_server.c */ typedef struct ossl_cmp_srv_ctx_st OSSL_CMP_SRV_CTX; @@ -561,6 +670,13 @@ int OSSL_CMP_SRV_CTX_init(OSSL_CMP_SRV_CTX *srv_ctx, void *custom_ctx, OSSL_CMP_SRV_error_cb_t process_error, OSSL_CMP_SRV_certConf_cb_t process_certConf, OSSL_CMP_SRV_pollReq_cb_t process_pollReq); +typedef int (*OSSL_CMP_SRV_delayed_delivery_cb_t)(OSSL_CMP_SRV_CTX *srv_ctx, + const OSSL_CMP_MSG *req); +typedef int (*OSSL_CMP_SRV_clean_transaction_cb_t)(OSSL_CMP_SRV_CTX *srv_ctx, + const ASN1_OCTET_STRING *id); +int OSSL_CMP_SRV_CTX_init_trans(OSSL_CMP_SRV_CTX *srv_ctx, + OSSL_CMP_SRV_delayed_delivery_cb_t delay, + OSSL_CMP_SRV_clean_transaction_cb_t clean); OSSL_CMP_CTX *OSSL_CMP_SRV_CTX_get0_cmp_ctx(const OSSL_CMP_SRV_CTX *srv_ctx); void *OSSL_CMP_SRV_CTX_get0_custom_ctx(const OSSL_CMP_SRV_CTX *srv_ctx); int OSSL_CMP_SRV_CTX_set_send_unprotected_errors(OSSL_CMP_SRV_CTX *srv_ctx, @@ -577,6 +693,8 @@ X509 *OSSL_CMP_exec_certreq(OSSL_CMP_CTX *ctx, int req_type, # define OSSL_CMP_CR 2 # define OSSL_CMP_P10CR 4 # define OSSL_CMP_KUR 7 +# define OSSL_CMP_GENM 21 +# define OSSL_CMP_ERROR 23 # define OSSL_CMP_exec_IR_ses(ctx) \ OSSL_CMP_exec_certreq(ctx, OSSL_CMP_IR, NULL) # define OSSL_CMP_exec_CR_ses(ctx) \ @@ -590,6 +708,18 @@ int OSSL_CMP_try_certreq(OSSL_CMP_CTX *ctx, int req_type, int OSSL_CMP_exec_RR_ses(OSSL_CMP_CTX *ctx); STACK_OF(OSSL_CMP_ITAV) *OSSL_CMP_exec_GENM_ses(OSSL_CMP_CTX *ctx); +/* from cmp_genm.c */ +int OSSL_CMP_get1_caCerts(OSSL_CMP_CTX *ctx, STACK_OF(X509) **out); +int OSSL_CMP_get1_rootCaKeyUpdate(OSSL_CMP_CTX *ctx, + const X509 *oldWithOld, X509 **newWithNew, + X509 **newWithOld, X509 **oldWithNew); +int OSSL_CMP_get1_crlUpdate(OSSL_CMP_CTX *ctx, const X509 *crlcert, + const X509_CRL *last_crl, + X509_CRL **crl); +int OSSL_CMP_get1_certReqTemplate(OSSL_CMP_CTX *ctx, + OSSL_CRMF_CERTTEMPLATE **certTemplate, + OSSL_CMP_ATAVS **keySpec); + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/VC-WIN32/asm_avx2/include/openssl/cms.h b/deps/openssl/config/archs/VC-WIN32/asm_avx2/include/openssl/cms.h index 03ce6ab07aac44..1a51921256fea4 100644 --- a/deps/openssl/config/archs/VC-WIN32/asm_avx2/include/openssl/cms.h +++ b/deps/openssl/config/archs/VC-WIN32/asm_avx2/include/openssl/cms.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by makefile from include/openssl/cms.h.in * - * Copyright 2008-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2008-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -31,8 +31,10 @@ extern "C" { # endif +typedef struct CMS_EnvelopedData_st CMS_EnvelopedData; typedef struct CMS_ContentInfo_st CMS_ContentInfo; typedef struct CMS_SignerInfo_st CMS_SignerInfo; +typedef struct CMS_SignedData_st CMS_SignedData; typedef struct CMS_CertificateChoices CMS_CertificateChoices; typedef struct CMS_RevocationInfoChoice_st CMS_RevocationInfoChoice; typedef struct CMS_RecipientInfo_st CMS_RecipientInfo; @@ -147,10 +149,14 @@ SKM_DEFINE_STACK_OF_INTERNAL(CMS_RevocationInfoChoice, CMS_RevocationInfoChoice, #define sk_CMS_RevocationInfoChoice_set_cmp_func(sk, cmp) ((sk_CMS_RevocationInfoChoice_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_CMS_RevocationInfoChoice_sk_type(sk), ossl_check_CMS_RevocationInfoChoice_compfunc_type(cmp))) +DECLARE_ASN1_ITEM(CMS_EnvelopedData) +DECLARE_ASN1_ALLOC_FUNCTIONS(CMS_SignedData) DECLARE_ASN1_FUNCTIONS(CMS_ContentInfo) DECLARE_ASN1_FUNCTIONS(CMS_ReceiptRequest) DECLARE_ASN1_PRINT_FUNCTION(CMS_ContentInfo) +DECLARE_ASN1_DUP_FUNCTION(CMS_EnvelopedData) + CMS_ContentInfo *CMS_ContentInfo_new_ex(OSSL_LIB_CTX *libctx, const char *propq); # define CMS_SIGNERINFO_ISSUER_SERIAL 0 @@ -190,6 +196,7 @@ CMS_ContentInfo *CMS_ContentInfo_new_ex(OSSL_LIB_CTX *libctx, const char *propq) # define CMS_ASCIICRLF 0x80000 # define CMS_CADES 0x100000 # define CMS_USE_ORIGINATOR_KEYID 0x200000 +# define CMS_NO_SIGNING_TIME 0x400000 const ASN1_OBJECT *CMS_get0_type(const CMS_ContentInfo *cms); @@ -217,13 +224,16 @@ int SMIME_write_CMS(BIO *bio, CMS_ContentInfo *cms, BIO *data, int flags); int CMS_final(CMS_ContentInfo *cms, BIO *data, BIO *dcont, unsigned int flags); +int CMS_final_digest(CMS_ContentInfo *cms, + const unsigned char *md, unsigned int mdlen, BIO *dcont, + unsigned int flags); CMS_ContentInfo *CMS_sign(X509 *signcert, EVP_PKEY *pkey, STACK_OF(X509) *certs, BIO *data, unsigned int flags); CMS_ContentInfo *CMS_sign_ex(X509 *signcert, EVP_PKEY *pkey, STACK_OF(X509) *certs, BIO *data, - unsigned int flags, OSSL_LIB_CTX *ctx, + unsigned int flags, OSSL_LIB_CTX *libctx, const char *propq); CMS_ContentInfo *CMS_sign_receipt(CMS_SignerInfo *si, @@ -233,27 +243,26 @@ CMS_ContentInfo *CMS_sign_receipt(CMS_SignerInfo *si, int CMS_data(CMS_ContentInfo *cms, BIO *out, unsigned int flags); CMS_ContentInfo *CMS_data_create(BIO *in, unsigned int flags); CMS_ContentInfo *CMS_data_create_ex(BIO *in, unsigned int flags, - OSSL_LIB_CTX *ctx, const char *propq); + OSSL_LIB_CTX *libctx, const char *propq); int CMS_digest_verify(CMS_ContentInfo *cms, BIO *dcont, BIO *out, unsigned int flags); CMS_ContentInfo *CMS_digest_create(BIO *in, const EVP_MD *md, unsigned int flags); CMS_ContentInfo *CMS_digest_create_ex(BIO *in, const EVP_MD *md, - unsigned int flags, OSSL_LIB_CTX *ctx, + unsigned int flags, OSSL_LIB_CTX *libctx, const char *propq); int CMS_EncryptedData_decrypt(CMS_ContentInfo *cms, const unsigned char *key, size_t keylen, BIO *dcont, BIO *out, unsigned int flags); - CMS_ContentInfo *CMS_EncryptedData_encrypt(BIO *in, const EVP_CIPHER *cipher, const unsigned char *key, size_t keylen, unsigned int flags); CMS_ContentInfo *CMS_EncryptedData_encrypt_ex(BIO *in, const EVP_CIPHER *cipher, const unsigned char *key, size_t keylen, unsigned int flags, - OSSL_LIB_CTX *ctx, + OSSL_LIB_CTX *libctx, const char *propq); int CMS_EncryptedData_set1_key(CMS_ContentInfo *cms, const EVP_CIPHER *ciph, @@ -272,7 +281,7 @@ CMS_ContentInfo *CMS_encrypt(STACK_OF(X509) *certs, BIO *in, const EVP_CIPHER *cipher, unsigned int flags); CMS_ContentInfo *CMS_encrypt_ex(STACK_OF(X509) *certs, BIO *in, const EVP_CIPHER *cipher, unsigned int flags, - OSSL_LIB_CTX *ctx, const char *propq); + OSSL_LIB_CTX *libctx, const char *propq); int CMS_decrypt(CMS_ContentInfo *cms, EVP_PKEY *pkey, X509 *cert, BIO *dcont, BIO *out, unsigned int flags); @@ -291,12 +300,16 @@ int CMS_RecipientInfo_type(CMS_RecipientInfo *ri); EVP_PKEY_CTX *CMS_RecipientInfo_get0_pkey_ctx(CMS_RecipientInfo *ri); CMS_ContentInfo *CMS_AuthEnvelopedData_create(const EVP_CIPHER *cipher); CMS_ContentInfo * -CMS_AuthEnvelopedData_create_ex(const EVP_CIPHER *cipher, OSSL_LIB_CTX *ctx, +CMS_AuthEnvelopedData_create_ex(const EVP_CIPHER *cipher, OSSL_LIB_CTX *libctx, const char *propq); CMS_ContentInfo *CMS_EnvelopedData_create(const EVP_CIPHER *cipher); CMS_ContentInfo *CMS_EnvelopedData_create_ex(const EVP_CIPHER *cipher, - OSSL_LIB_CTX *ctx, + OSSL_LIB_CTX *libctx, const char *propq); +BIO *CMS_EnvelopedData_decrypt(CMS_EnvelopedData *env, BIO *detached_data, + EVP_PKEY *pkey, X509 *cert, + ASN1_OCTET_STRING *secret, unsigned int flags, + OSSL_LIB_CTX *libctx, const char *propq); CMS_RecipientInfo *CMS_add1_recipient_cert(CMS_ContentInfo *cms, X509 *recip, unsigned int flags); @@ -385,6 +398,11 @@ ASN1_OCTET_STRING *CMS_SignerInfo_get0_signature(CMS_SignerInfo *si); int CMS_SignerInfo_sign(CMS_SignerInfo *si); int CMS_SignerInfo_verify(CMS_SignerInfo *si); int CMS_SignerInfo_verify_content(CMS_SignerInfo *si, BIO *chain); +BIO *CMS_SignedData_verify(CMS_SignedData *sd, BIO *detached_data, + STACK_OF(X509) *scerts, X509_STORE *store, + STACK_OF(X509) *extra, STACK_OF(X509_CRL) *crls, + unsigned int flags, + OSSL_LIB_CTX *libctx, const char *propq); int CMS_add_smimecap(CMS_SignerInfo *si, STACK_OF(X509_ALGOR) *algs); int CMS_add_simple_smimecap(STACK_OF(X509_ALGOR) **algs, @@ -441,7 +459,7 @@ CMS_ReceiptRequest *CMS_ReceiptRequest_create0_ex( unsigned char *id, int idlen, int allorfirst, STACK_OF(GENERAL_NAMES) *receiptList, STACK_OF(GENERAL_NAMES) *receiptsTo, - OSSL_LIB_CTX *ctx); + OSSL_LIB_CTX *libctx); int CMS_add1_ReceiptRequest(CMS_SignerInfo *si, CMS_ReceiptRequest *rr); void CMS_ReceiptRequest_get0_values(CMS_ReceiptRequest *rr, diff --git a/deps/openssl/config/archs/VC-WIN32/asm_avx2/include/openssl/comp.h b/deps/openssl/config/archs/VC-WIN32/asm_avx2/include/openssl/comp.h new file mode 100644 index 00000000000000..90e39511fe8d28 --- /dev/null +++ b/deps/openssl/config/archs/VC-WIN32/asm_avx2/include/openssl/comp.h @@ -0,0 +1,98 @@ +/* + * Copyright 2015-2024 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + + +#ifndef OPENSSL_COMP_H +# define OPENSSL_COMP_H +# pragma once + +# include +# ifndef OPENSSL_NO_DEPRECATED_3_0 +# define HEADER_COMP_H +# endif + +# include + +# include +# include +# ifdef __cplusplus +extern "C" { +# endif + + + +# ifndef OPENSSL_NO_COMP + +COMP_CTX *COMP_CTX_new(COMP_METHOD *meth); +const COMP_METHOD *COMP_CTX_get_method(const COMP_CTX *ctx); +int COMP_CTX_get_type(const COMP_CTX* comp); +int COMP_get_type(const COMP_METHOD *meth); +const char *COMP_get_name(const COMP_METHOD *meth); +void COMP_CTX_free(COMP_CTX *ctx); + +int COMP_compress_block(COMP_CTX *ctx, unsigned char *out, int olen, + unsigned char *in, int ilen); +int COMP_expand_block(COMP_CTX *ctx, unsigned char *out, int olen, + unsigned char *in, int ilen); + +COMP_METHOD *COMP_zlib(void); +COMP_METHOD *COMP_zlib_oneshot(void); +COMP_METHOD *COMP_brotli(void); +COMP_METHOD *COMP_brotli_oneshot(void); +COMP_METHOD *COMP_zstd(void); +COMP_METHOD *COMP_zstd_oneshot(void); + +# ifndef OPENSSL_NO_DEPRECATED_1_1_0 +# define COMP_zlib_cleanup() while(0) continue +# endif + +# ifdef OPENSSL_BIO_H +const BIO_METHOD *BIO_f_zlib(void); +const BIO_METHOD *BIO_f_brotli(void); +const BIO_METHOD *BIO_f_zstd(void); +# endif + +# endif + +typedef struct ssl_comp_st SSL_COMP; + +SKM_DEFINE_STACK_OF_INTERNAL(SSL_COMP, SSL_COMP, SSL_COMP) +#define sk_SSL_COMP_num(sk) OPENSSL_sk_num(ossl_check_const_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_value(sk, idx) ((SSL_COMP *)OPENSSL_sk_value(ossl_check_const_SSL_COMP_sk_type(sk), (idx))) +#define sk_SSL_COMP_new(cmp) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new(ossl_check_SSL_COMP_compfunc_type(cmp))) +#define sk_SSL_COMP_new_null() ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new_null()) +#define sk_SSL_COMP_new_reserve(cmp, n) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new_reserve(ossl_check_SSL_COMP_compfunc_type(cmp), (n))) +#define sk_SSL_COMP_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_SSL_COMP_sk_type(sk), (n)) +#define sk_SSL_COMP_free(sk) OPENSSL_sk_free(ossl_check_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_zero(sk) OPENSSL_sk_zero(ossl_check_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_delete(sk, i) ((SSL_COMP *)OPENSSL_sk_delete(ossl_check_SSL_COMP_sk_type(sk), (i))) +#define sk_SSL_COMP_delete_ptr(sk, ptr) ((SSL_COMP *)OPENSSL_sk_delete_ptr(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr))) +#define sk_SSL_COMP_push(sk, ptr) OPENSSL_sk_push(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) +#define sk_SSL_COMP_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) +#define sk_SSL_COMP_pop(sk) ((SSL_COMP *)OPENSSL_sk_pop(ossl_check_SSL_COMP_sk_type(sk))) +#define sk_SSL_COMP_shift(sk) ((SSL_COMP *)OPENSSL_sk_shift(ossl_check_SSL_COMP_sk_type(sk))) +#define sk_SSL_COMP_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_SSL_COMP_sk_type(sk),ossl_check_SSL_COMP_freefunc_type(freefunc)) +#define sk_SSL_COMP_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr), (idx)) +#define sk_SSL_COMP_set(sk, idx, ptr) ((SSL_COMP *)OPENSSL_sk_set(ossl_check_SSL_COMP_sk_type(sk), (idx), ossl_check_SSL_COMP_type(ptr))) +#define sk_SSL_COMP_find(sk, ptr) OPENSSL_sk_find(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) +#define sk_SSL_COMP_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) +#define sk_SSL_COMP_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr), pnum) +#define sk_SSL_COMP_sort(sk) OPENSSL_sk_sort(ossl_check_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_dup(sk) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_dup(ossl_check_const_SSL_COMP_sk_type(sk))) +#define sk_SSL_COMP_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_deep_copy(ossl_check_const_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_copyfunc_type(copyfunc), ossl_check_SSL_COMP_freefunc_type(freefunc))) +#define sk_SSL_COMP_set_cmp_func(sk, cmp) ((sk_SSL_COMP_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_compfunc_type(cmp))) + + + +# ifdef __cplusplus +} +# endif +#endif diff --git a/deps/openssl/config/archs/VC-WIN32/asm_avx2/include/openssl/conf.h b/deps/openssl/config/archs/VC-WIN32/asm_avx2/include/openssl/conf.h index 994e573a957435..ffa9ced71e8b26 100644 --- a/deps/openssl/config/archs/VC-WIN32/asm_avx2/include/openssl/conf.h +++ b/deps/openssl/config/archs/VC-WIN32/asm_avx2/include/openssl/conf.h @@ -27,6 +27,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -65,7 +68,7 @@ SKM_DEFINE_STACK_OF_INTERNAL(CONF_VALUE, CONF_VALUE, CONF_VALUE) #define sk_CONF_VALUE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(CONF_VALUE) *)OPENSSL_sk_deep_copy(ossl_check_const_CONF_VALUE_sk_type(sk), ossl_check_CONF_VALUE_copyfunc_type(copyfunc), ossl_check_CONF_VALUE_freefunc_type(freefunc))) #define sk_CONF_VALUE_set_cmp_func(sk, cmp) ((sk_CONF_VALUE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_CONF_VALUE_sk_type(sk), ossl_check_CONF_VALUE_compfunc_type(cmp))) DEFINE_LHASH_OF_INTERNAL(CONF_VALUE); -#define lh_CONF_VALUE_new(hfn, cmp) ((LHASH_OF(CONF_VALUE) *)OPENSSL_LH_new(ossl_check_CONF_VALUE_lh_hashfunc_type(hfn), ossl_check_CONF_VALUE_lh_compfunc_type(cmp))) +#define lh_CONF_VALUE_new(hfn, cmp) ((LHASH_OF(CONF_VALUE) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new(ossl_check_CONF_VALUE_lh_hashfunc_type(hfn), ossl_check_CONF_VALUE_lh_compfunc_type(cmp)), lh_CONF_VALUE_hash_thunk, lh_CONF_VALUE_comp_thunk, lh_CONF_VALUE_doall_thunk, lh_CONF_VALUE_doall_arg_thunk)) #define lh_CONF_VALUE_free(lh) OPENSSL_LH_free(ossl_check_CONF_VALUE_lh_type(lh)) #define lh_CONF_VALUE_flush(lh) OPENSSL_LH_flush(ossl_check_CONF_VALUE_lh_type(lh)) #define lh_CONF_VALUE_insert(lh, ptr) ((CONF_VALUE *)OPENSSL_LH_insert(ossl_check_CONF_VALUE_lh_type(lh), ossl_check_CONF_VALUE_lh_plain_type(ptr))) diff --git a/deps/openssl/config/archs/VC-WIN32/asm_avx2/include/openssl/configuration.h b/deps/openssl/config/archs/VC-WIN32/asm_avx2/include/openssl/configuration.h index 254054cd2238c7..8dedfeab00f64a 100644 --- a/deps/openssl/config/archs/VC-WIN32/asm_avx2/include/openssl/configuration.h +++ b/deps/openssl/config/archs/VC-WIN32/asm_avx2/include/openssl/configuration.h @@ -29,7 +29,7 @@ extern "C" { # ifndef OPENSSL_SYS_WIN32 # define OPENSSL_SYS_WIN32 1 # endif -# define OPENSSL_CONFIGURED_API 30000 +# define OPENSSL_CONFIGURED_API 30500 # ifndef OPENSSL_RAND_SEED_OS # define OPENSSL_RAND_SEED_OS # endif @@ -42,6 +42,12 @@ extern "C" { # ifndef OPENSSL_NO_ASAN # define OPENSSL_NO_ASAN # endif +# ifndef OPENSSL_NO_BROTLI +# define OPENSSL_NO_BROTLI +# endif +# ifndef OPENSSL_NO_BROTLI_DYNAMIC +# define OPENSSL_NO_BROTLI_DYNAMIC +# endif # ifndef OPENSSL_NO_COMP # define OPENSSL_NO_COMP # endif @@ -51,6 +57,9 @@ extern "C" { # ifndef OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE # define OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE # endif +# ifndef OPENSSL_NO_DEMOS +# define OPENSSL_NO_DEMOS +# endif # ifndef OPENSSL_NO_DEVCRYPTOENG # define OPENSSL_NO_DEVCRYPTOENG # endif @@ -63,12 +72,24 @@ extern "C" { # ifndef OPENSSL_NO_EXTERNAL_TESTS # define OPENSSL_NO_EXTERNAL_TESTS # endif +# ifndef OPENSSL_NO_FIPS_JITTER +# define OPENSSL_NO_FIPS_JITTER +# endif # ifndef OPENSSL_NO_FUZZ_AFL # define OPENSSL_NO_FUZZ_AFL # endif # ifndef OPENSSL_NO_FUZZ_LIBFUZZER # define OPENSSL_NO_FUZZ_LIBFUZZER # endif +# ifndef OPENSSL_NO_H3DEMO +# define OPENSSL_NO_H3DEMO +# endif +# ifndef OPENSSL_NO_HQINTEROP +# define OPENSSL_NO_HQINTEROP +# endif +# ifndef OPENSSL_NO_JITTER +# define OPENSSL_NO_JITTER +# endif # ifndef OPENSSL_NO_KTLS # define OPENSSL_NO_KTLS # endif @@ -81,6 +102,9 @@ extern "C" { # ifndef OPENSSL_NO_MSAN # define OPENSSL_NO_MSAN # endif +# ifndef OPENSSL_NO_PIE +# define OPENSSL_NO_PIE +# endif # ifndef OPENSSL_NO_RC5 # define OPENSSL_NO_RC5 # endif @@ -93,6 +117,12 @@ extern "C" { # ifndef OPENSSL_NO_SSL3_METHOD # define OPENSSL_NO_SSL3_METHOD # endif +# ifndef OPENSSL_NO_SSLKEYLOG +# define OPENSSL_NO_SSLKEYLOG +# endif +# ifndef OPENSSL_NO_TFO +# define OPENSSL_NO_TFO +# endif # ifndef OPENSSL_NO_TRACE # define OPENSSL_NO_TRACE # endif @@ -108,6 +138,18 @@ extern "C" { # ifndef OPENSSL_NO_WEAK_SSL_CIPHERS # define OPENSSL_NO_WEAK_SSL_CIPHERS # endif +# ifndef OPENSSL_NO_ZLIB +# define OPENSSL_NO_ZLIB +# endif +# ifndef OPENSSL_NO_ZLIB_DYNAMIC +# define OPENSSL_NO_ZLIB_DYNAMIC +# endif +# ifndef OPENSSL_NO_ZSTD +# define OPENSSL_NO_ZSTD +# endif +# ifndef OPENSSL_NO_ZSTD_DYNAMIC +# define OPENSSL_NO_ZSTD_DYNAMIC +# endif # ifndef OPENSSL_NO_DYNAMIC_ENGINE # define OPENSSL_NO_DYNAMIC_ENGINE # endif @@ -129,6 +171,12 @@ extern "C" { # define RC4_INT unsigned int +# if defined(OPENSSL_NO_COMP) || (defined(OPENSSL_NO_BROTLI) && defined(OPENSSL_NO_ZSTD) && defined(OPENSSL_NO_ZLIB)) +# define OPENSSL_NO_COMP_ALG +# else +# undef OPENSSL_NO_COMP_ALG +# endif + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/VC-WIN32/asm_avx2/include/openssl/core_names.h b/deps/openssl/config/archs/VC-WIN32/asm_avx2/include/openssl/core_names.h new file mode 100644 index 00000000000000..aaca6051c81b53 --- /dev/null +++ b/deps/openssl/config/archs/VC-WIN32/asm_avx2/include/openssl/core_names.h @@ -0,0 +1,575 @@ +/* + * WARNING: do not edit! + * Generated by makefile from include/openssl/core_names.h.in + * + * Copyright 2019-2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + +#ifndef OPENSSL_CORE_NAMES_H +# define OPENSSL_CORE_NAMES_H +# pragma once + +# ifdef __cplusplus +extern "C" { +# endif + +/* OSSL_CIPHER_PARAM_CTS_MODE Values */ +# define OSSL_CIPHER_CTS_MODE_CS1 "CS1" +# define OSSL_CIPHER_CTS_MODE_CS2 "CS2" +# define OSSL_CIPHER_CTS_MODE_CS3 "CS3" + +/* Known CIPHER names (not a complete list) */ +# define OSSL_CIPHER_NAME_AES_128_GCM_SIV "AES-128-GCM-SIV" +# define OSSL_CIPHER_NAME_AES_192_GCM_SIV "AES-192-GCM-SIV" +# define OSSL_CIPHER_NAME_AES_256_GCM_SIV "AES-256-GCM-SIV" + +/* Known DIGEST names (not a complete list) */ +# define OSSL_DIGEST_NAME_MD5 "MD5" +# define OSSL_DIGEST_NAME_MD5_SHA1 "MD5-SHA1" +# define OSSL_DIGEST_NAME_SHA1 "SHA1" +# define OSSL_DIGEST_NAME_SHA2_224 "SHA2-224" +# define OSSL_DIGEST_NAME_SHA2_256 "SHA2-256" +# define OSSL_DIGEST_NAME_SHA2_256_192 "SHA2-256/192" +# define OSSL_DIGEST_NAME_SHA2_384 "SHA2-384" +# define OSSL_DIGEST_NAME_SHA2_512 "SHA2-512" +# define OSSL_DIGEST_NAME_SHA2_512_224 "SHA2-512/224" +# define OSSL_DIGEST_NAME_SHA2_512_256 "SHA2-512/256" +# define OSSL_DIGEST_NAME_MD2 "MD2" +# define OSSL_DIGEST_NAME_MD4 "MD4" +# define OSSL_DIGEST_NAME_MDC2 "MDC2" +# define OSSL_DIGEST_NAME_RIPEMD160 "RIPEMD160" +# define OSSL_DIGEST_NAME_SHA3_224 "SHA3-224" +# define OSSL_DIGEST_NAME_SHA3_256 "SHA3-256" +# define OSSL_DIGEST_NAME_SHA3_384 "SHA3-384" +# define OSSL_DIGEST_NAME_SHA3_512 "SHA3-512" +# define OSSL_DIGEST_NAME_KECCAK_KMAC128 "KECCAK-KMAC-128" +# define OSSL_DIGEST_NAME_KECCAK_KMAC256 "KECCAK-KMAC-256" +# define OSSL_DIGEST_NAME_SM3 "SM3" + +/* Known MAC names */ +# define OSSL_MAC_NAME_BLAKE2BMAC "BLAKE2BMAC" +# define OSSL_MAC_NAME_BLAKE2SMAC "BLAKE2SMAC" +# define OSSL_MAC_NAME_CMAC "CMAC" +# define OSSL_MAC_NAME_GMAC "GMAC" +# define OSSL_MAC_NAME_HMAC "HMAC" +# define OSSL_MAC_NAME_KMAC128 "KMAC128" +# define OSSL_MAC_NAME_KMAC256 "KMAC256" +# define OSSL_MAC_NAME_POLY1305 "POLY1305" +# define OSSL_MAC_NAME_SIPHASH "SIPHASH" + +/* Known KDF names */ +# define OSSL_KDF_NAME_HKDF "HKDF" +# define OSSL_KDF_NAME_TLS1_3_KDF "TLS13-KDF" +# define OSSL_KDF_NAME_PBKDF1 "PBKDF1" +# define OSSL_KDF_NAME_PBKDF2 "PBKDF2" +# define OSSL_KDF_NAME_SCRYPT "SCRYPT" +# define OSSL_KDF_NAME_SSHKDF "SSHKDF" +# define OSSL_KDF_NAME_SSKDF "SSKDF" +# define OSSL_KDF_NAME_TLS1_PRF "TLS1-PRF" +# define OSSL_KDF_NAME_X942KDF_ASN1 "X942KDF-ASN1" +# define OSSL_KDF_NAME_X942KDF_CONCAT "X942KDF-CONCAT" +# define OSSL_KDF_NAME_X963KDF "X963KDF" +# define OSSL_KDF_NAME_KBKDF "KBKDF" +# define OSSL_KDF_NAME_KRB5KDF "KRB5KDF" +# define OSSL_KDF_NAME_HMACDRBGKDF "HMAC-DRBG-KDF" + +/* RSA padding modes */ +# define OSSL_PKEY_RSA_PAD_MODE_NONE "none" +# define OSSL_PKEY_RSA_PAD_MODE_PKCSV15 "pkcs1" +# define OSSL_PKEY_RSA_PAD_MODE_OAEP "oaep" +# define OSSL_PKEY_RSA_PAD_MODE_X931 "x931" +# define OSSL_PKEY_RSA_PAD_MODE_PSS "pss" + +/* RSA pss padding salt length */ +# define OSSL_PKEY_RSA_PSS_SALT_LEN_DIGEST "digest" +# define OSSL_PKEY_RSA_PSS_SALT_LEN_MAX "max" +# define OSSL_PKEY_RSA_PSS_SALT_LEN_AUTO "auto" +# define OSSL_PKEY_RSA_PSS_SALT_LEN_AUTO_DIGEST_MAX "auto-digestmax" + +/* OSSL_PKEY_PARAM_EC_ENCODING values */ +# define OSSL_PKEY_EC_ENCODING_EXPLICIT "explicit" +# define OSSL_PKEY_EC_ENCODING_GROUP "named_curve" + +# define OSSL_PKEY_EC_POINT_CONVERSION_FORMAT_UNCOMPRESSED "uncompressed" +# define OSSL_PKEY_EC_POINT_CONVERSION_FORMAT_COMPRESSED "compressed" +# define OSSL_PKEY_EC_POINT_CONVERSION_FORMAT_HYBRID "hybrid" + +# define OSSL_PKEY_EC_GROUP_CHECK_DEFAULT "default" +# define OSSL_PKEY_EC_GROUP_CHECK_NAMED "named" +# define OSSL_PKEY_EC_GROUP_CHECK_NAMED_NIST "named-nist" + +/* PROV_SKEY well known key types */ +# define OSSL_SKEY_TYPE_GENERIC "GENERIC-SECRET" +# define OSSL_SKEY_TYPE_AES "AES" + +/* OSSL_KEM_PARAM_OPERATION values */ +#define OSSL_KEM_PARAM_OPERATION_RSASVE "RSASVE" +#define OSSL_KEM_PARAM_OPERATION_DHKEM "DHKEM" + +/* Provider configuration variables */ +#define OSSL_PKEY_RETAIN_SEED "pkey_retain_seed" + +/* Parameter name definitions - generated by util/perl/OpenSSL/paramnames.pm */ +# define OSSL_ALG_PARAM_ALGORITHM_ID "algorithm-id" +# define OSSL_ALG_PARAM_ALGORITHM_ID_PARAMS "algorithm-id-params" +# define OSSL_ALG_PARAM_CIPHER "cipher" +# define OSSL_ALG_PARAM_DIGEST "digest" +# define OSSL_ALG_PARAM_ENGINE "engine" +# define OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR "fips-indicator" +# define OSSL_ALG_PARAM_MAC "mac" +# define OSSL_ALG_PARAM_PROPERTIES "properties" +# define OSSL_ASYM_CIPHER_PARAM_DIGEST OSSL_PKEY_PARAM_DIGEST +# define OSSL_ASYM_CIPHER_PARAM_ENGINE OSSL_PKEY_PARAM_ENGINE +# define OSSL_ASYM_CIPHER_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_ASYM_CIPHER_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_ASYM_CIPHER_PARAM_FIPS_RSA_PKCS15_PAD_DISABLED OSSL_PROV_PARAM_RSA_PKCS15_PAD_DISABLED +# define OSSL_ASYM_CIPHER_PARAM_IMPLICIT_REJECTION "implicit-rejection" +# define OSSL_ASYM_CIPHER_PARAM_MGF1_DIGEST OSSL_PKEY_PARAM_MGF1_DIGEST +# define OSSL_ASYM_CIPHER_PARAM_MGF1_DIGEST_PROPS OSSL_PKEY_PARAM_MGF1_PROPERTIES +# define OSSL_ASYM_CIPHER_PARAM_OAEP_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_ASYM_CIPHER_PARAM_OAEP_DIGEST_PROPS "digest-props" +# define OSSL_ASYM_CIPHER_PARAM_OAEP_LABEL "oaep-label" +# define OSSL_ASYM_CIPHER_PARAM_PAD_MODE OSSL_PKEY_PARAM_PAD_MODE +# define OSSL_ASYM_CIPHER_PARAM_PROPERTIES OSSL_PKEY_PARAM_PROPERTIES +# define OSSL_ASYM_CIPHER_PARAM_TLS_CLIENT_VERSION "tls-client-version" +# define OSSL_ASYM_CIPHER_PARAM_TLS_NEGOTIATED_VERSION "tls-negotiated-version" +# define OSSL_CAPABILITY_TLS_GROUP_ALG "tls-group-alg" +# define OSSL_CAPABILITY_TLS_GROUP_ID "tls-group-id" +# define OSSL_CAPABILITY_TLS_GROUP_IS_KEM "tls-group-is-kem" +# define OSSL_CAPABILITY_TLS_GROUP_MAX_DTLS "tls-max-dtls" +# define OSSL_CAPABILITY_TLS_GROUP_MAX_TLS "tls-max-tls" +# define OSSL_CAPABILITY_TLS_GROUP_MIN_DTLS "tls-min-dtls" +# define OSSL_CAPABILITY_TLS_GROUP_MIN_TLS "tls-min-tls" +# define OSSL_CAPABILITY_TLS_GROUP_NAME "tls-group-name" +# define OSSL_CAPABILITY_TLS_GROUP_NAME_INTERNAL "tls-group-name-internal" +# define OSSL_CAPABILITY_TLS_GROUP_SECURITY_BITS "tls-group-sec-bits" +# define OSSL_CAPABILITY_TLS_SIGALG_CODE_POINT "tls-sigalg-code-point" +# define OSSL_CAPABILITY_TLS_SIGALG_HASH_NAME "tls-sigalg-hash-name" +# define OSSL_CAPABILITY_TLS_SIGALG_HASH_OID "tls-sigalg-hash-oid" +# define OSSL_CAPABILITY_TLS_SIGALG_IANA_NAME "tls-sigalg-iana-name" +# define OSSL_CAPABILITY_TLS_SIGALG_KEYTYPE "tls-sigalg-keytype" +# define OSSL_CAPABILITY_TLS_SIGALG_KEYTYPE_OID "tls-sigalg-keytype-oid" +# define OSSL_CAPABILITY_TLS_SIGALG_MAX_DTLS "tls-max-dtls" +# define OSSL_CAPABILITY_TLS_SIGALG_MAX_TLS "tls-max-tls" +# define OSSL_CAPABILITY_TLS_SIGALG_MIN_DTLS "tls-min-dtls" +# define OSSL_CAPABILITY_TLS_SIGALG_MIN_TLS "tls-min-tls" +# define OSSL_CAPABILITY_TLS_SIGALG_NAME "tls-sigalg-name" +# define OSSL_CAPABILITY_TLS_SIGALG_OID "tls-sigalg-oid" +# define OSSL_CAPABILITY_TLS_SIGALG_SECURITY_BITS "tls-sigalg-sec-bits" +# define OSSL_CAPABILITY_TLS_SIGALG_SIG_NAME "tls-sigalg-sig-name" +# define OSSL_CAPABILITY_TLS_SIGALG_SIG_OID "tls-sigalg-sig-oid" +# define OSSL_CIPHER_PARAM_AEAD "aead" +# define OSSL_CIPHER_PARAM_AEAD_IVLEN OSSL_CIPHER_PARAM_IVLEN +# define OSSL_CIPHER_PARAM_AEAD_IV_GENERATED "iv-generated" +# define OSSL_CIPHER_PARAM_AEAD_MAC_KEY "mackey" +# define OSSL_CIPHER_PARAM_AEAD_TAG "tag" +# define OSSL_CIPHER_PARAM_AEAD_TAGLEN "taglen" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_AAD "tlsaad" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_AAD_PAD "tlsaadpad" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_GET_IV_GEN "tlsivgen" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_IV_FIXED "tlsivfixed" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_SET_IV_INV "tlsivinv" +# define OSSL_CIPHER_PARAM_ALGORITHM_ID OSSL_ALG_PARAM_ALGORITHM_ID +# define OSSL_CIPHER_PARAM_ALGORITHM_ID_PARAMS OSSL_ALG_PARAM_ALGORITHM_ID_PARAMS +# define OSSL_CIPHER_PARAM_ALGORITHM_ID_PARAMS_OLD "alg_id_param" +# define OSSL_CIPHER_PARAM_BLOCK_SIZE "blocksize" +# define OSSL_CIPHER_PARAM_CTS "cts" +# define OSSL_CIPHER_PARAM_CTS_MODE "cts_mode" +# define OSSL_CIPHER_PARAM_CUSTOM_IV "custom-iv" +# define OSSL_CIPHER_PARAM_DECRYPT_ONLY "decrypt-only" +# define OSSL_CIPHER_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_CIPHER_PARAM_FIPS_ENCRYPT_CHECK "encrypt-check" +# define OSSL_CIPHER_PARAM_HAS_RAND_KEY "has-randkey" +# define OSSL_CIPHER_PARAM_IV "iv" +# define OSSL_CIPHER_PARAM_IVLEN "ivlen" +# define OSSL_CIPHER_PARAM_KEYLEN "keylen" +# define OSSL_CIPHER_PARAM_MODE "mode" +# define OSSL_CIPHER_PARAM_NUM "num" +# define OSSL_CIPHER_PARAM_PADDING "padding" +# define OSSL_CIPHER_PARAM_PIPELINE_AEAD_TAG "pipeline-tag" +# define OSSL_CIPHER_PARAM_RANDOM_KEY "randkey" +# define OSSL_CIPHER_PARAM_RC2_KEYBITS "keybits" +# define OSSL_CIPHER_PARAM_ROUNDS "rounds" +# define OSSL_CIPHER_PARAM_SPEED "speed" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK "tls-multi" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD "tls1multi_aad" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD_PACKLEN "tls1multi_aadpacklen" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC "tls1multi_enc" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_IN "tls1multi_encin" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_LEN "tls1multi_enclen" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_INTERLEAVE "tls1multi_interleave" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_BUFSIZE "tls1multi_maxbufsz" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_SEND_FRAGMENT "tls1multi_maxsndfrag" +# define OSSL_CIPHER_PARAM_TLS_MAC "tls-mac" +# define OSSL_CIPHER_PARAM_TLS_MAC_SIZE "tls-mac-size" +# define OSSL_CIPHER_PARAM_TLS_VERSION "tls-version" +# define OSSL_CIPHER_PARAM_UPDATED_IV "updated-iv" +# define OSSL_CIPHER_PARAM_USE_BITS "use-bits" +# define OSSL_CIPHER_PARAM_XTS_STANDARD "xts_standard" +# define OSSL_DECODER_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_DIGEST_PARAM_ALGID_ABSENT "algid-absent" +# define OSSL_DIGEST_PARAM_BLOCK_SIZE "blocksize" +# define OSSL_DIGEST_PARAM_MICALG "micalg" +# define OSSL_DIGEST_PARAM_PAD_TYPE "pad-type" +# define OSSL_DIGEST_PARAM_SIZE "size" +# define OSSL_DIGEST_PARAM_SSL3_MS "ssl3-ms" +# define OSSL_DIGEST_PARAM_XOF "xof" +# define OSSL_DIGEST_PARAM_XOFLEN "xoflen" +# define OSSL_DRBG_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_DRBG_PARAM_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_DRBG_PARAM_ENTROPY_REQUIRED "entropy_required" +# define OSSL_DRBG_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_DRBG_PARAM_FIPS_DIGEST_CHECK OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK +# define OSSL_DRBG_PARAM_MAC OSSL_ALG_PARAM_MAC +# define OSSL_DRBG_PARAM_MAX_ADINLEN "max_adinlen" +# define OSSL_DRBG_PARAM_MAX_ENTROPYLEN "max_entropylen" +# define OSSL_DRBG_PARAM_MAX_LENGTH "maxium_length" +# define OSSL_DRBG_PARAM_MAX_NONCELEN "max_noncelen" +# define OSSL_DRBG_PARAM_MAX_PERSLEN "max_perslen" +# define OSSL_DRBG_PARAM_MIN_ENTROPYLEN "min_entropylen" +# define OSSL_DRBG_PARAM_MIN_LENGTH "minium_length" +# define OSSL_DRBG_PARAM_MIN_NONCELEN "min_noncelen" +# define OSSL_DRBG_PARAM_PREDICTION_RESISTANCE "prediction_resistance" +# define OSSL_DRBG_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_DRBG_PARAM_RANDOM_DATA "random_data" +# define OSSL_DRBG_PARAM_RESEED_COUNTER "reseed_counter" +# define OSSL_DRBG_PARAM_RESEED_REQUESTS "reseed_requests" +# define OSSL_DRBG_PARAM_RESEED_TIME "reseed_time" +# define OSSL_DRBG_PARAM_RESEED_TIME_INTERVAL "reseed_time_interval" +# define OSSL_DRBG_PARAM_SIZE "size" +# define OSSL_DRBG_PARAM_USE_DF "use_derivation_function" +# define OSSL_ENCODER_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_ENCODER_PARAM_ENCRYPT_LEVEL "encrypt-level" +# define OSSL_ENCODER_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_ENCODER_PARAM_SAVE_PARAMETERS "save-parameters" +# define OSSL_EXCHANGE_PARAM_EC_ECDH_COFACTOR_MODE "ecdh-cofactor-mode" +# define OSSL_EXCHANGE_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_EXCHANGE_PARAM_FIPS_DIGEST_CHECK OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK +# define OSSL_EXCHANGE_PARAM_FIPS_ECDH_COFACTOR_CHECK OSSL_PROV_PARAM_ECDH_COFACTOR_CHECK +# define OSSL_EXCHANGE_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_EXCHANGE_PARAM_KDF_DIGEST "kdf-digest" +# define OSSL_EXCHANGE_PARAM_KDF_DIGEST_PROPS "kdf-digest-props" +# define OSSL_EXCHANGE_PARAM_KDF_OUTLEN "kdf-outlen" +# define OSSL_EXCHANGE_PARAM_KDF_TYPE "kdf-type" +# define OSSL_EXCHANGE_PARAM_KDF_UKM "kdf-ukm" +# define OSSL_EXCHANGE_PARAM_PAD "pad" +# define OSSL_GEN_PARAM_ITERATION "iteration" +# define OSSL_GEN_PARAM_POTENTIAL "potential" +# define OSSL_KDF_PARAM_ARGON2_AD "ad" +# define OSSL_KDF_PARAM_ARGON2_LANES "lanes" +# define OSSL_KDF_PARAM_ARGON2_MEMCOST "memcost" +# define OSSL_KDF_PARAM_ARGON2_VERSION "version" +# define OSSL_KDF_PARAM_CEK_ALG "cekalg" +# define OSSL_KDF_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_KDF_PARAM_CONSTANT "constant" +# define OSSL_KDF_PARAM_DATA "data" +# define OSSL_KDF_PARAM_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_KDF_PARAM_EARLY_CLEAN "early_clean" +# define OSSL_KDF_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_KDF_PARAM_FIPS_DIGEST_CHECK OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK +# define OSSL_KDF_PARAM_FIPS_EMS_CHECK "ems_check" +# define OSSL_KDF_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_KDF_PARAM_HMACDRBG_ENTROPY "entropy" +# define OSSL_KDF_PARAM_HMACDRBG_NONCE "nonce" +# define OSSL_KDF_PARAM_INFO "info" +# define OSSL_KDF_PARAM_ITER "iter" +# define OSSL_KDF_PARAM_KBKDF_R "r" +# define OSSL_KDF_PARAM_KBKDF_USE_L "use-l" +# define OSSL_KDF_PARAM_KBKDF_USE_SEPARATOR "use-separator" +# define OSSL_KDF_PARAM_KEY "key" +# define OSSL_KDF_PARAM_LABEL "label" +# define OSSL_KDF_PARAM_MAC OSSL_ALG_PARAM_MAC +# define OSSL_KDF_PARAM_MAC_SIZE "maclen" +# define OSSL_KDF_PARAM_MODE "mode" +# define OSSL_KDF_PARAM_PASSWORD "pass" +# define OSSL_KDF_PARAM_PKCS12_ID "id" +# define OSSL_KDF_PARAM_PKCS5 "pkcs5" +# define OSSL_KDF_PARAM_PREFIX "prefix" +# define OSSL_KDF_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_KDF_PARAM_SALT "salt" +# define OSSL_KDF_PARAM_SCRYPT_MAXMEM "maxmem_bytes" +# define OSSL_KDF_PARAM_SCRYPT_N "n" +# define OSSL_KDF_PARAM_SCRYPT_P "p" +# define OSSL_KDF_PARAM_SCRYPT_R "r" +# define OSSL_KDF_PARAM_SECRET "secret" +# define OSSL_KDF_PARAM_SEED "seed" +# define OSSL_KDF_PARAM_SIZE "size" +# define OSSL_KDF_PARAM_SSHKDF_SESSION_ID "session_id" +# define OSSL_KDF_PARAM_SSHKDF_TYPE "type" +# define OSSL_KDF_PARAM_SSHKDF_XCGHASH "xcghash" +# define OSSL_KDF_PARAM_THREADS "threads" +# define OSSL_KDF_PARAM_UKM "ukm" +# define OSSL_KDF_PARAM_X942_ACVPINFO "acvp-info" +# define OSSL_KDF_PARAM_X942_PARTYUINFO "partyu-info" +# define OSSL_KDF_PARAM_X942_PARTYVINFO "partyv-info" +# define OSSL_KDF_PARAM_X942_SUPP_PRIVINFO "supp-privinfo" +# define OSSL_KDF_PARAM_X942_SUPP_PUBINFO "supp-pubinfo" +# define OSSL_KDF_PARAM_X942_USE_KEYBITS "use-keybits" +# define OSSL_KEM_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_KEM_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_KEM_PARAM_IKME "ikme" +# define OSSL_KEM_PARAM_OPERATION "operation" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_BLOCK_PADDING "block_padding" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_HS_PADDING "hs_padding" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_MAX_EARLY_DATA "max_early_data" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_MAX_FRAG_LEN "max_frag_len" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_MODE "mode" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_OPTIONS "options" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_READ_AHEAD "read_ahead" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_STREAM_MAC "stream_mac" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_TLSTREE "tlstree" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_USE_ETM "use_etm" +# define OSSL_LIBSSL_RECORD_LAYER_READ_BUFFER_LEN "read_buffer_len" +# define OSSL_MAC_PARAM_BLOCK_SIZE "block-size" +# define OSSL_MAC_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_MAC_PARAM_CUSTOM "custom" +# define OSSL_MAC_PARAM_C_ROUNDS "c-rounds" +# define OSSL_MAC_PARAM_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_MAC_PARAM_DIGEST_NOINIT "digest-noinit" +# define OSSL_MAC_PARAM_DIGEST_ONESHOT "digest-oneshot" +# define OSSL_MAC_PARAM_D_ROUNDS "d-rounds" +# define OSSL_MAC_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_MAC_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_MAC_PARAM_FIPS_NO_SHORT_MAC OSSL_PROV_PARAM_NO_SHORT_MAC +# define OSSL_MAC_PARAM_IV "iv" +# define OSSL_MAC_PARAM_KEY "key" +# define OSSL_MAC_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_MAC_PARAM_SALT "salt" +# define OSSL_MAC_PARAM_SIZE "size" +# define OSSL_MAC_PARAM_TLS_DATA_SIZE "tls-data-size" +# define OSSL_MAC_PARAM_XOF "xof" +# define OSSL_OBJECT_PARAM_DATA "data" +# define OSSL_OBJECT_PARAM_DATA_STRUCTURE "data-structure" +# define OSSL_OBJECT_PARAM_DATA_TYPE "data-type" +# define OSSL_OBJECT_PARAM_DESC "desc" +# define OSSL_OBJECT_PARAM_INPUT_TYPE "input-type" +# define OSSL_OBJECT_PARAM_REFERENCE "reference" +# define OSSL_OBJECT_PARAM_TYPE "type" +# define OSSL_PASSPHRASE_PARAM_INFO "info" +# define OSSL_PKEY_PARAM_ALGORITHM_ID OSSL_ALG_PARAM_ALGORITHM_ID +# define OSSL_PKEY_PARAM_ALGORITHM_ID_PARAMS OSSL_ALG_PARAM_ALGORITHM_ID_PARAMS +# define OSSL_PKEY_PARAM_BITS "bits" +# define OSSL_PKEY_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_PKEY_PARAM_DEFAULT_DIGEST "default-digest" +# define OSSL_PKEY_PARAM_DHKEM_IKM "dhkem-ikm" +# define OSSL_PKEY_PARAM_DH_GENERATOR "safeprime-generator" +# define OSSL_PKEY_PARAM_DH_PRIV_LEN "priv_len" +# define OSSL_PKEY_PARAM_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_PKEY_PARAM_DIGEST_SIZE "digest-size" +# define OSSL_PKEY_PARAM_DIST_ID "distid" +# define OSSL_PKEY_PARAM_EC_A "a" +# define OSSL_PKEY_PARAM_EC_B "b" +# define OSSL_PKEY_PARAM_EC_CHAR2_M "m" +# define OSSL_PKEY_PARAM_EC_CHAR2_PP_K1 "k1" +# define OSSL_PKEY_PARAM_EC_CHAR2_PP_K2 "k2" +# define OSSL_PKEY_PARAM_EC_CHAR2_PP_K3 "k3" +# define OSSL_PKEY_PARAM_EC_CHAR2_TP_BASIS "tp" +# define OSSL_PKEY_PARAM_EC_CHAR2_TYPE "basis-type" +# define OSSL_PKEY_PARAM_EC_COFACTOR "cofactor" +# define OSSL_PKEY_PARAM_EC_DECODED_FROM_EXPLICIT_PARAMS "decoded-from-explicit" +# define OSSL_PKEY_PARAM_EC_ENCODING "encoding" +# define OSSL_PKEY_PARAM_EC_FIELD_TYPE "field-type" +# define OSSL_PKEY_PARAM_EC_GENERATOR "generator" +# define OSSL_PKEY_PARAM_EC_GROUP_CHECK_TYPE "group-check" +# define OSSL_PKEY_PARAM_EC_INCLUDE_PUBLIC "include-public" +# define OSSL_PKEY_PARAM_EC_ORDER "order" +# define OSSL_PKEY_PARAM_EC_P "p" +# define OSSL_PKEY_PARAM_EC_POINT_CONVERSION_FORMAT "point-format" +# define OSSL_PKEY_PARAM_EC_PUB_X "qx" +# define OSSL_PKEY_PARAM_EC_PUB_Y "qy" +# define OSSL_PKEY_PARAM_EC_SEED "seed" +# define OSSL_PKEY_PARAM_ENCODED_PUBLIC_KEY "encoded-pub-key" +# define OSSL_PKEY_PARAM_ENGINE OSSL_ALG_PARAM_ENGINE +# define OSSL_PKEY_PARAM_FFC_COFACTOR "j" +# define OSSL_PKEY_PARAM_FFC_DIGEST OSSL_PKEY_PARAM_DIGEST +# define OSSL_PKEY_PARAM_FFC_DIGEST_PROPS OSSL_PKEY_PARAM_PROPERTIES +# define OSSL_PKEY_PARAM_FFC_G "g" +# define OSSL_PKEY_PARAM_FFC_GINDEX "gindex" +# define OSSL_PKEY_PARAM_FFC_H "hindex" +# define OSSL_PKEY_PARAM_FFC_P "p" +# define OSSL_PKEY_PARAM_FFC_PBITS "pbits" +# define OSSL_PKEY_PARAM_FFC_PCOUNTER "pcounter" +# define OSSL_PKEY_PARAM_FFC_Q "q" +# define OSSL_PKEY_PARAM_FFC_QBITS "qbits" +# define OSSL_PKEY_PARAM_FFC_SEED "seed" +# define OSSL_PKEY_PARAM_FFC_TYPE "type" +# define OSSL_PKEY_PARAM_FFC_VALIDATE_G "validate-g" +# define OSSL_PKEY_PARAM_FFC_VALIDATE_LEGACY "validate-legacy" +# define OSSL_PKEY_PARAM_FFC_VALIDATE_PQ "validate-pq" +# define OSSL_PKEY_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK "digest-check" +# define OSSL_PKEY_PARAM_FIPS_KEY_CHECK "key-check" +# define OSSL_PKEY_PARAM_FIPS_SIGN_CHECK "sign-check" +# define OSSL_PKEY_PARAM_GROUP_NAME "group" +# define OSSL_PKEY_PARAM_IMPLICIT_REJECTION "implicit-rejection" +# define OSSL_PKEY_PARAM_MANDATORY_DIGEST "mandatory-digest" +# define OSSL_PKEY_PARAM_MASKGENFUNC "mgf" +# define OSSL_PKEY_PARAM_MAX_SIZE "max-size" +# define OSSL_PKEY_PARAM_MGF1_DIGEST "mgf1-digest" +# define OSSL_PKEY_PARAM_MGF1_PROPERTIES "mgf1-properties" +# define OSSL_PKEY_PARAM_ML_DSA_INPUT_FORMATS "ml-dsa.input_formats" +# define OSSL_PKEY_PARAM_ML_DSA_OUTPUT_FORMATS "ml-dsa.output_formats" +# define OSSL_PKEY_PARAM_ML_DSA_PREFER_SEED "ml-dsa.prefer_seed" +# define OSSL_PKEY_PARAM_ML_DSA_RETAIN_SEED "ml-dsa.retain_seed" +# define OSSL_PKEY_PARAM_ML_DSA_SEED "seed" +# define OSSL_PKEY_PARAM_ML_KEM_IMPORT_PCT_TYPE "ml-kem.import_pct_type" +# define OSSL_PKEY_PARAM_ML_KEM_INPUT_FORMATS "ml-kem.input_formats" +# define OSSL_PKEY_PARAM_ML_KEM_OUTPUT_FORMATS "ml-kem.output_formats" +# define OSSL_PKEY_PARAM_ML_KEM_PREFER_SEED "ml-kem.prefer_seed" +# define OSSL_PKEY_PARAM_ML_KEM_RETAIN_SEED "ml-kem.retain_seed" +# define OSSL_PKEY_PARAM_ML_KEM_SEED "seed" +# define OSSL_PKEY_PARAM_PAD_MODE "pad-mode" +# define OSSL_PKEY_PARAM_PRIV_KEY "priv" +# define OSSL_PKEY_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_PKEY_PARAM_PUB_KEY "pub" +# define OSSL_PKEY_PARAM_RSA_BITS OSSL_PKEY_PARAM_BITS +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT "rsa-coefficient" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT1 "rsa-coefficient1" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT2 "rsa-coefficient2" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT3 "rsa-coefficient3" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT4 "rsa-coefficient4" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT5 "rsa-coefficient5" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT6 "rsa-coefficient6" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT7 "rsa-coefficient7" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT8 "rsa-coefficient8" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT9 "rsa-coefficient9" +# define OSSL_PKEY_PARAM_RSA_D "d" +# define OSSL_PKEY_PARAM_RSA_DERIVE_FROM_PQ "rsa-derive-from-pq" +# define OSSL_PKEY_PARAM_RSA_DIGEST OSSL_PKEY_PARAM_DIGEST +# define OSSL_PKEY_PARAM_RSA_DIGEST_PROPS OSSL_PKEY_PARAM_PROPERTIES +# define OSSL_PKEY_PARAM_RSA_E "e" +# define OSSL_PKEY_PARAM_RSA_EXPONENT "rsa-exponent" +# define OSSL_PKEY_PARAM_RSA_EXPONENT1 "rsa-exponent1" +# define OSSL_PKEY_PARAM_RSA_EXPONENT10 "rsa-exponent10" +# define OSSL_PKEY_PARAM_RSA_EXPONENT2 "rsa-exponent2" +# define OSSL_PKEY_PARAM_RSA_EXPONENT3 "rsa-exponent3" +# define OSSL_PKEY_PARAM_RSA_EXPONENT4 "rsa-exponent4" +# define OSSL_PKEY_PARAM_RSA_EXPONENT5 "rsa-exponent5" +# define OSSL_PKEY_PARAM_RSA_EXPONENT6 "rsa-exponent6" +# define OSSL_PKEY_PARAM_RSA_EXPONENT7 "rsa-exponent7" +# define OSSL_PKEY_PARAM_RSA_EXPONENT8 "rsa-exponent8" +# define OSSL_PKEY_PARAM_RSA_EXPONENT9 "rsa-exponent9" +# define OSSL_PKEY_PARAM_RSA_FACTOR "rsa-factor" +# define OSSL_PKEY_PARAM_RSA_FACTOR1 "rsa-factor1" +# define OSSL_PKEY_PARAM_RSA_FACTOR10 "rsa-factor10" +# define OSSL_PKEY_PARAM_RSA_FACTOR2 "rsa-factor2" +# define OSSL_PKEY_PARAM_RSA_FACTOR3 "rsa-factor3" +# define OSSL_PKEY_PARAM_RSA_FACTOR4 "rsa-factor4" +# define OSSL_PKEY_PARAM_RSA_FACTOR5 "rsa-factor5" +# define OSSL_PKEY_PARAM_RSA_FACTOR6 "rsa-factor6" +# define OSSL_PKEY_PARAM_RSA_FACTOR7 "rsa-factor7" +# define OSSL_PKEY_PARAM_RSA_FACTOR8 "rsa-factor8" +# define OSSL_PKEY_PARAM_RSA_FACTOR9 "rsa-factor9" +# define OSSL_PKEY_PARAM_RSA_MASKGENFUNC OSSL_PKEY_PARAM_MASKGENFUNC +# define OSSL_PKEY_PARAM_RSA_MGF1_DIGEST OSSL_PKEY_PARAM_MGF1_DIGEST +# define OSSL_PKEY_PARAM_RSA_N "n" +# define OSSL_PKEY_PARAM_RSA_PRIMES "primes" +# define OSSL_PKEY_PARAM_RSA_PSS_SALTLEN "saltlen" +# define OSSL_PKEY_PARAM_RSA_TEST_P1 "p1" +# define OSSL_PKEY_PARAM_RSA_TEST_P2 "p2" +# define OSSL_PKEY_PARAM_RSA_TEST_Q1 "q1" +# define OSSL_PKEY_PARAM_RSA_TEST_Q2 "q2" +# define OSSL_PKEY_PARAM_RSA_TEST_XP "xp" +# define OSSL_PKEY_PARAM_RSA_TEST_XP1 "xp1" +# define OSSL_PKEY_PARAM_RSA_TEST_XP2 "xp2" +# define OSSL_PKEY_PARAM_RSA_TEST_XQ "xq" +# define OSSL_PKEY_PARAM_RSA_TEST_XQ1 "xq1" +# define OSSL_PKEY_PARAM_RSA_TEST_XQ2 "xq2" +# define OSSL_PKEY_PARAM_SECURITY_BITS "security-bits" +# define OSSL_PKEY_PARAM_SLH_DSA_SEED "seed" +# define OSSL_PKEY_PARAM_USE_COFACTOR_ECDH OSSL_PKEY_PARAM_USE_COFACTOR_FLAG +# define OSSL_PKEY_PARAM_USE_COFACTOR_FLAG "use-cofactor-flag" +# define OSSL_PROV_PARAM_BUILDINFO "buildinfo" +# define OSSL_PROV_PARAM_CORE_MODULE_FILENAME "module-filename" +# define OSSL_PROV_PARAM_CORE_PROV_NAME "provider-name" +# define OSSL_PROV_PARAM_CORE_VERSION "openssl-version" +# define OSSL_PROV_PARAM_DRBG_TRUNC_DIGEST "drbg-no-trunc-md" +# define OSSL_PROV_PARAM_DSA_SIGN_DISABLED "dsa-sign-disabled" +# define OSSL_PROV_PARAM_ECDH_COFACTOR_CHECK "ecdh-cofactor-check" +# define OSSL_PROV_PARAM_HKDF_DIGEST_CHECK "hkdf-digest-check" +# define OSSL_PROV_PARAM_HKDF_KEY_CHECK "hkdf-key-check" +# define OSSL_PROV_PARAM_HMAC_KEY_CHECK "hmac-key-check" +# define OSSL_PROV_PARAM_KBKDF_KEY_CHECK "kbkdf-key-check" +# define OSSL_PROV_PARAM_KMAC_KEY_CHECK "kmac-key-check" +# define OSSL_PROV_PARAM_NAME "name" +# define OSSL_PROV_PARAM_NO_SHORT_MAC "no-short-mac" +# define OSSL_PROV_PARAM_PBKDF2_LOWER_BOUND_CHECK "pbkdf2-lower-bound-check" +# define OSSL_PROV_PARAM_RSA_PKCS15_PAD_DISABLED "rsa-pkcs15-pad-disabled" +# define OSSL_PROV_PARAM_RSA_PSS_SALTLEN_CHECK "rsa-pss-saltlen-check" +# define OSSL_PROV_PARAM_RSA_SIGN_X931_PAD_DISABLED "rsa-sign-x931-pad-disabled" +# define OSSL_PROV_PARAM_SECURITY_CHECKS "security-checks" +# define OSSL_PROV_PARAM_SELF_TEST_DESC "st-desc" +# define OSSL_PROV_PARAM_SELF_TEST_PHASE "st-phase" +# define OSSL_PROV_PARAM_SELF_TEST_TYPE "st-type" +# define OSSL_PROV_PARAM_SIGNATURE_DIGEST_CHECK "signature-digest-check" +# define OSSL_PROV_PARAM_SSHKDF_DIGEST_CHECK "sshkdf-digest-check" +# define OSSL_PROV_PARAM_SSHKDF_KEY_CHECK "sshkdf-key-check" +# define OSSL_PROV_PARAM_SSKDF_DIGEST_CHECK "sskdf-digest-check" +# define OSSL_PROV_PARAM_SSKDF_KEY_CHECK "sskdf-key-check" +# define OSSL_PROV_PARAM_STATUS "status" +# define OSSL_PROV_PARAM_TDES_ENCRYPT_DISABLED "tdes-encrypt-disabled" +# define OSSL_PROV_PARAM_TLS13_KDF_DIGEST_CHECK "tls13-kdf-digest-check" +# define OSSL_PROV_PARAM_TLS13_KDF_KEY_CHECK "tls13-kdf-key-check" +# define OSSL_PROV_PARAM_TLS1_PRF_DIGEST_CHECK "tls1-prf-digest-check" +# define OSSL_PROV_PARAM_TLS1_PRF_EMS_CHECK "tls1-prf-ems-check" +# define OSSL_PROV_PARAM_TLS1_PRF_KEY_CHECK "tls1-prf-key-check" +# define OSSL_PROV_PARAM_VERSION "version" +# define OSSL_PROV_PARAM_X942KDF_KEY_CHECK "x942kdf-key-check" +# define OSSL_PROV_PARAM_X963KDF_DIGEST_CHECK "x963kdf-digest-check" +# define OSSL_PROV_PARAM_X963KDF_KEY_CHECK "x963kdf-key-check" +# define OSSL_RAND_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_RAND_PARAM_GENERATE "generate" +# define OSSL_RAND_PARAM_MAX_REQUEST "max_request" +# define OSSL_RAND_PARAM_STATE "state" +# define OSSL_RAND_PARAM_STRENGTH "strength" +# define OSSL_RAND_PARAM_TEST_ENTROPY "test_entropy" +# define OSSL_RAND_PARAM_TEST_NONCE "test_nonce" +# define OSSL_SIGNATURE_PARAM_ADD_RANDOM "additional-random" +# define OSSL_SIGNATURE_PARAM_ALGORITHM_ID OSSL_PKEY_PARAM_ALGORITHM_ID +# define OSSL_SIGNATURE_PARAM_ALGORITHM_ID_PARAMS OSSL_PKEY_PARAM_ALGORITHM_ID_PARAMS +# define OSSL_SIGNATURE_PARAM_CONTEXT_STRING "context-string" +# define OSSL_SIGNATURE_PARAM_DETERMINISTIC "deterministic" +# define OSSL_SIGNATURE_PARAM_DIGEST OSSL_PKEY_PARAM_DIGEST +# define OSSL_SIGNATURE_PARAM_DIGEST_SIZE OSSL_PKEY_PARAM_DIGEST_SIZE +# define OSSL_SIGNATURE_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_SIGNATURE_PARAM_FIPS_DIGEST_CHECK OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK +# define OSSL_SIGNATURE_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_SIGNATURE_PARAM_FIPS_RSA_PSS_SALTLEN_CHECK "rsa-pss-saltlen-check" +# define OSSL_SIGNATURE_PARAM_FIPS_SIGN_CHECK OSSL_PKEY_PARAM_FIPS_SIGN_CHECK +# define OSSL_SIGNATURE_PARAM_FIPS_SIGN_X931_PAD_CHECK "sign-x931-pad-check" +# define OSSL_SIGNATURE_PARAM_FIPS_VERIFY_MESSAGE "verify-message" +# define OSSL_SIGNATURE_PARAM_INSTANCE "instance" +# define OSSL_SIGNATURE_PARAM_KAT "kat" +# define OSSL_SIGNATURE_PARAM_MESSAGE_ENCODING "message-encoding" +# define OSSL_SIGNATURE_PARAM_MGF1_DIGEST OSSL_PKEY_PARAM_MGF1_DIGEST +# define OSSL_SIGNATURE_PARAM_MGF1_PROPERTIES OSSL_PKEY_PARAM_MGF1_PROPERTIES +# define OSSL_SIGNATURE_PARAM_MU "mu" +# define OSSL_SIGNATURE_PARAM_NONCE_TYPE "nonce-type" +# define OSSL_SIGNATURE_PARAM_PAD_MODE OSSL_PKEY_PARAM_PAD_MODE +# define OSSL_SIGNATURE_PARAM_PROPERTIES OSSL_PKEY_PARAM_PROPERTIES +# define OSSL_SIGNATURE_PARAM_PSS_SALTLEN "saltlen" +# define OSSL_SIGNATURE_PARAM_SIGNATURE "signature" +# define OSSL_SIGNATURE_PARAM_TEST_ENTROPY "test-entropy" +# define OSSL_SKEY_PARAM_KEY_LENGTH "key-length" +# define OSSL_SKEY_PARAM_RAW_BYTES "raw-bytes" +# define OSSL_STORE_PARAM_ALIAS "alias" +# define OSSL_STORE_PARAM_DIGEST "digest" +# define OSSL_STORE_PARAM_EXPECT "expect" +# define OSSL_STORE_PARAM_FINGERPRINT "fingerprint" +# define OSSL_STORE_PARAM_INPUT_TYPE "input-type" +# define OSSL_STORE_PARAM_ISSUER "name" +# define OSSL_STORE_PARAM_PROPERTIES "properties" +# define OSSL_STORE_PARAM_SERIAL "serial" +# define OSSL_STORE_PARAM_SUBJECT "subject" + +# ifdef __cplusplus +} +# endif + +#endif diff --git a/deps/openssl/config/archs/VC-WIN32/asm_avx2/include/openssl/crmf.h b/deps/openssl/config/archs/VC-WIN32/asm_avx2/include/openssl/crmf.h index 0419170bb99974..9b6f13fac240b2 100644 --- a/deps/openssl/config/archs/VC-WIN32/asm_avx2/include/openssl/crmf.h +++ b/deps/openssl/config/archs/VC-WIN32/asm_avx2/include/openssl/crmf.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by makefile from include/openssl/crmf.h.in * - * Copyright 2007-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2007-2025 The OpenSSL Project Authors. All Rights Reserved. * Copyright Nokia 2007-2019 * Copyright Siemens AG 2015-2019 * @@ -26,6 +26,7 @@ # include # include # include /* for GENERAL_NAME etc. */ +# include /* explicit #includes not strictly needed since implied by the above: */ # include @@ -43,9 +44,12 @@ extern "C" { # define OSSL_CRMF_SUBSEQUENTMESSAGE_ENCRCERT 0 # define OSSL_CRMF_SUBSEQUENTMESSAGE_CHALLENGERESP 1 - typedef struct ossl_crmf_encryptedvalue_st OSSL_CRMF_ENCRYPTEDVALUE; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_ENCRYPTEDVALUE) + +typedef struct ossl_crmf_encryptedkey_st OSSL_CRMF_ENCRYPTEDKEY; +DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_ENCRYPTEDKEY) + typedef struct ossl_crmf_msg_st OSSL_CRMF_MSG; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_MSG) DECLARE_ASN1_DUP_FUNCTION(OSSL_CRMF_MSG) @@ -77,6 +81,36 @@ SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CRMF_MSG, OSSL_CRMF_MSG, OSSL_CRMF_MSG) #define sk_OSSL_CRMF_MSG_set_cmp_func(sk, cmp) ((sk_OSSL_CRMF_MSG_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CRMF_MSG_sk_type(sk), ossl_check_OSSL_CRMF_MSG_compfunc_type(cmp))) typedef struct ossl_crmf_attributetypeandvalue_st OSSL_CRMF_ATTRIBUTETYPEANDVALUE; +void OSSL_CRMF_ATTRIBUTETYPEANDVALUE_free(OSSL_CRMF_ATTRIBUTETYPEANDVALUE *v); +DECLARE_ASN1_DUP_FUNCTION(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CRMF_ATTRIBUTETYPEANDVALUE, OSSL_CRMF_ATTRIBUTETYPEANDVALUE, OSSL_CRMF_ATTRIBUTETYPEANDVALUE) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_value(sk, idx) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_value(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), (idx))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_new(cmp) ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_new(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_compfunc_type(cmp))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_new_null() ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_new_null()) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_new_reserve(cmp, n) ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_compfunc_type(cmp), (n))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), (n)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_free(sk) OPENSSL_sk_free(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_delete(sk, i) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_delete(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), (i))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_delete_ptr(sk, ptr) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_pop(sk) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_pop(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_shift(sk) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_shift(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk),ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_freefunc_type(freefunc)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr), (idx)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_set(sk, idx, ptr) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_set(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), (idx), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr), pnum) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_dup(sk) ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_dup(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_copyfunc_type(copyfunc), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_freefunc_type(freefunc))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_set_cmp_func(sk, cmp) ((sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_compfunc_type(cmp))) + + typedef struct ossl_crmf_pbmparameter_st OSSL_CRMF_PBMPARAMETER; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_PBMPARAMETER) typedef struct ossl_crmf_poposigningkey_st OSSL_CRMF_POPOSIGNINGKEY; @@ -118,6 +152,7 @@ typedef struct ossl_crmf_singlepubinfo_st OSSL_CRMF_SINGLEPUBINFO; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_SINGLEPUBINFO) typedef struct ossl_crmf_certtemplate_st OSSL_CRMF_CERTTEMPLATE; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_CERTTEMPLATE) +DECLARE_ASN1_DUP_FUNCTION(OSSL_CRMF_CERTTEMPLATE) typedef STACK_OF(OSSL_CRMF_MSG) OSSL_CRMF_MSGS; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_MSGS) @@ -198,12 +233,14 @@ int OSSL_CRMF_MSGS_verify_popo(const OSSL_CRMF_MSGS *reqs, int rid, int acceptRAVerified, OSSL_LIB_CTX *libctx, const char *propq); OSSL_CRMF_CERTTEMPLATE *OSSL_CRMF_MSG_get0_tmpl(const OSSL_CRMF_MSG *crm); -const ASN1_INTEGER -*OSSL_CRMF_CERTTEMPLATE_get0_serialNumber(const OSSL_CRMF_CERTTEMPLATE *tmpl); +X509_PUBKEY +*OSSL_CRMF_CERTTEMPLATE_get0_publicKey(const OSSL_CRMF_CERTTEMPLATE *tmpl); const X509_NAME *OSSL_CRMF_CERTTEMPLATE_get0_subject(const OSSL_CRMF_CERTTEMPLATE *tmpl); const X509_NAME *OSSL_CRMF_CERTTEMPLATE_get0_issuer(const OSSL_CRMF_CERTTEMPLATE *tmpl); +const ASN1_INTEGER +*OSSL_CRMF_CERTTEMPLATE_get0_serialNumber(const OSSL_CRMF_CERTTEMPLATE *tmpl); X509_EXTENSIONS *OSSL_CRMF_CERTTEMPLATE_get0_extensions(const OSSL_CRMF_CERTTEMPLATE *tmpl); const X509_NAME @@ -215,10 +252,24 @@ int OSSL_CRMF_CERTTEMPLATE_fill(OSSL_CRMF_CERTTEMPLATE *tmpl, const X509_NAME *subject, const X509_NAME *issuer, const ASN1_INTEGER *serial); -X509 -*OSSL_CRMF_ENCRYPTEDVALUE_get1_encCert(const OSSL_CRMF_ENCRYPTEDVALUE *ecert, - OSSL_LIB_CTX *libctx, const char *propq, - EVP_PKEY *pkey); +X509 *OSSL_CRMF_ENCRYPTEDVALUE_get1_encCert(const OSSL_CRMF_ENCRYPTEDVALUE *ecert, + OSSL_LIB_CTX *libctx, const char *propq, + EVP_PKEY *pkey); +X509 *OSSL_CRMF_ENCRYPTEDKEY_get1_encCert(const OSSL_CRMF_ENCRYPTEDKEY *ecert, + OSSL_LIB_CTX *libctx, const char *propq, + EVP_PKEY *pkey, unsigned int flags); +unsigned char +*OSSL_CRMF_ENCRYPTEDVALUE_decrypt(const OSSL_CRMF_ENCRYPTEDVALUE *enc, + OSSL_LIB_CTX *libctx, const char *propq, + EVP_PKEY *pkey, int *outlen); +EVP_PKEY *OSSL_CRMF_ENCRYPTEDKEY_get1_pkey(const OSSL_CRMF_ENCRYPTEDKEY *encryptedKey, + X509_STORE *ts, STACK_OF(X509) *extra, EVP_PKEY *pkey, + X509 *cert, ASN1_OCTET_STRING *secret, + OSSL_LIB_CTX *libctx, const char *propq); +int OSSL_CRMF_MSG_centralkeygen_requested(const OSSL_CRMF_MSG *crm, const X509_REQ *p10cr); +# ifndef OPENSSL_NO_CMS +OSSL_CRMF_ENCRYPTEDKEY *OSSL_CRMF_ENCRYPTEDKEY_init_envdata(CMS_EnvelopedData *envdata); +# endif # ifdef __cplusplus } diff --git a/deps/openssl/config/archs/VC-WIN32/asm_avx2/include/openssl/crypto.h b/deps/openssl/config/archs/VC-WIN32/asm_avx2/include/openssl/crypto.h index 668c52cfee1f15..2a825986bf3a55 100644 --- a/deps/openssl/config/archs/VC-WIN32/asm_avx2/include/openssl/crypto.h +++ b/deps/openssl/config/archs/VC-WIN32/asm_avx2/include/openssl/crypto.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by makefile from include/openssl/crypto.h.in * - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2024 The OpenSSL Project Authors. All Rights Reserved. * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved * * Licensed under the Apache License 2.0 (the "License"). You may not use @@ -85,9 +85,15 @@ int CRYPTO_THREAD_unlock(CRYPTO_RWLOCK *lock); void CRYPTO_THREAD_lock_free(CRYPTO_RWLOCK *lock); int CRYPTO_atomic_add(int *val, int amount, int *ret, CRYPTO_RWLOCK *lock); +int CRYPTO_atomic_add64(uint64_t *val, uint64_t op, uint64_t *ret, + CRYPTO_RWLOCK *lock); +int CRYPTO_atomic_and(uint64_t *val, uint64_t op, uint64_t *ret, + CRYPTO_RWLOCK *lock); int CRYPTO_atomic_or(uint64_t *val, uint64_t op, uint64_t *ret, CRYPTO_RWLOCK *lock); int CRYPTO_atomic_load(uint64_t *val, uint64_t *ret, CRYPTO_RWLOCK *lock); +int CRYPTO_atomic_load_int(int *val, int *ret, CRYPTO_RWLOCK *lock); +int CRYPTO_atomic_store(uint64_t *dst, uint64_t val, CRYPTO_RWLOCK *lock); /* No longer needed, so this is a no-op */ #define OPENSSL_malloc_init() while(0) continue @@ -96,6 +102,9 @@ int CRYPTO_atomic_load(uint64_t *val, uint64_t *ret, CRYPTO_RWLOCK *lock); CRYPTO_malloc(num, OPENSSL_FILE, OPENSSL_LINE) # define OPENSSL_zalloc(num) \ CRYPTO_zalloc(num, OPENSSL_FILE, OPENSSL_LINE) +# define OPENSSL_aligned_alloc(num, alignment, freeptr) \ + CRYPTO_aligned_alloc(num, alignment, freeptr, \ + OPENSSL_FILE, OPENSSL_LINE) # define OPENSSL_realloc(addr, num) \ CRYPTO_realloc(addr, num, OPENSSL_FILE, OPENSSL_LINE) # define OPENSSL_clear_realloc(addr, old_num, num) \ @@ -124,6 +133,7 @@ int CRYPTO_atomic_load(uint64_t *val, uint64_t *ret, CRYPTO_RWLOCK *lock); size_t OPENSSL_strlcpy(char *dst, const char *src, size_t siz); size_t OPENSSL_strlcat(char *dst, const char *src, size_t siz); size_t OPENSSL_strnlen(const char *str, size_t maxlen); +int OPENSSL_strtoul(const char *str, char **endptr, int base, unsigned long *num); int OPENSSL_buf2hexstr_ex(char *str, size_t str_n, size_t *strlength, const unsigned char *buf, size_t buflen, const char sep); @@ -160,6 +170,7 @@ const char *OpenSSL_version(int type); # define OPENSSL_FULL_VERSION_STRING 7 # define OPENSSL_MODULES_DIR 8 # define OPENSSL_CPU_INFO 9 +# define OPENSSL_WINCTX 10 const char *OPENSSL_info(int type); /* @@ -174,6 +185,7 @@ const char *OPENSSL_info(int type); # define OPENSSL_INFO_LIST_SEPARATOR 1006 # define OPENSSL_INFO_SEED_SOURCE 1007 # define OPENSSL_INFO_CPU_SETTINGS 1008 +# define OPENSSL_INFO_WINDOWS_CONTEXT 1009 int OPENSSL_issetugid(void); @@ -341,11 +353,14 @@ void CRYPTO_get_mem_functions(CRYPTO_malloc_fn *malloc_fn, CRYPTO_realloc_fn *realloc_fn, CRYPTO_free_fn *free_fn); -void *CRYPTO_malloc(size_t num, const char *file, int line); -void *CRYPTO_zalloc(size_t num, const char *file, int line); -void *CRYPTO_memdup(const void *str, size_t siz, const char *file, int line); -char *CRYPTO_strdup(const char *str, const char *file, int line); -char *CRYPTO_strndup(const char *str, size_t s, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_malloc(size_t num, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_zalloc(size_t num, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_aligned_alloc(size_t num, size_t align, + void **freeptr, const char *file, + int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_memdup(const void *str, size_t siz, const char *file, int line); +OSSL_CRYPTO_ALLOC char *CRYPTO_strdup(const char *str, const char *file, int line); +OSSL_CRYPTO_ALLOC char *CRYPTO_strndup(const char *str, size_t s, const char *file, int line); void CRYPTO_free(void *ptr, const char *file, int line); void CRYPTO_clear_free(void *ptr, size_t num, const char *file, int line); void *CRYPTO_realloc(void *addr, size_t num, const char *file, int line); @@ -354,8 +369,8 @@ void *CRYPTO_clear_realloc(void *addr, size_t old_num, size_t num, int CRYPTO_secure_malloc_init(size_t sz, size_t minsize); int CRYPTO_secure_malloc_done(void); -void *CRYPTO_secure_malloc(size_t num, const char *file, int line); -void *CRYPTO_secure_zalloc(size_t num, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_secure_malloc(size_t num, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_secure_zalloc(size_t num, const char *file, int line); void CRYPTO_secure_free(void *ptr, const char *file, int line); void CRYPTO_secure_clear_free(void *ptr, size_t num, const char *file, int line); @@ -376,6 +391,9 @@ void OPENSSL_cleanse(void *ptr, size_t len); # define CRYPTO_MEM_CHECK_ENABLE 0x2 /* Control and mode bit */ # define CRYPTO_MEM_CHECK_DISABLE 0x3 /* Control only */ +/* max allowed length for value of OPENSSL_MALLOC_FAILURES env var. */ +# define CRYPTO_MEM_CHECK_MAX_FS 256 + void CRYPTO_get_alloc_counts(int *mcount, int *rcount, int *fcount); # ifndef OPENSSL_NO_DEPRECATED_3_0 # define OPENSSL_mem_debug_push(info) \ @@ -551,6 +569,13 @@ int OSSL_LIB_CTX_load_config(OSSL_LIB_CTX *ctx, const char *config_file); void OSSL_LIB_CTX_free(OSSL_LIB_CTX *); OSSL_LIB_CTX *OSSL_LIB_CTX_get0_global_default(void); OSSL_LIB_CTX *OSSL_LIB_CTX_set0_default(OSSL_LIB_CTX *libctx); +int OSSL_LIB_CTX_get_conf_diagnostics(OSSL_LIB_CTX *ctx); +void OSSL_LIB_CTX_set_conf_diagnostics(OSSL_LIB_CTX *ctx, int value); + +void OSSL_sleep(uint64_t millis); + + +void *OSSL_LIB_CTX_get_data(OSSL_LIB_CTX *ctx, int index); # ifdef __cplusplus } diff --git a/deps/openssl/config/archs/VC-WIN32/asm_avx2/include/openssl/ct.h b/deps/openssl/config/archs/VC-WIN32/asm_avx2/include/openssl/ct.h index 15a276e33ff7ca..d29dbc78997c0b 100644 --- a/deps/openssl/config/archs/VC-WIN32/asm_avx2/include/openssl/ct.h +++ b/deps/openssl/config/archs/VC-WIN32/asm_avx2/include/openssl/ct.h @@ -133,7 +133,7 @@ typedef enum { */ CT_POLICY_EVAL_CTX *CT_POLICY_EVAL_CTX_new_ex(OSSL_LIB_CTX *libctx, const char *propq); - + /* * The same as CT_POLICY_EVAL_CTX_new_ex() but the default library * context and property query string is used. diff --git a/deps/openssl/config/archs/VC-WIN32/asm_avx2/include/openssl/err.h b/deps/openssl/config/archs/VC-WIN32/asm_avx2/include/openssl/err.h index 2abf2483488181..daca18e7b757b0 100644 --- a/deps/openssl/config/archs/VC-WIN32/asm_avx2/include/openssl/err.h +++ b/deps/openssl/config/archs/VC-WIN32/asm_avx2/include/openssl/err.h @@ -1,5 +1,5 @@ /* - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -372,7 +372,7 @@ typedef struct ERR_string_data_st { } ERR_STRING_DATA; DEFINE_LHASH_OF_INTERNAL(ERR_STRING_DATA); -#define lh_ERR_STRING_DATA_new(hfn, cmp) ((LHASH_OF(ERR_STRING_DATA) *)OPENSSL_LH_new(ossl_check_ERR_STRING_DATA_lh_hashfunc_type(hfn), ossl_check_ERR_STRING_DATA_lh_compfunc_type(cmp))) +#define lh_ERR_STRING_DATA_new(hfn, cmp) ((LHASH_OF(ERR_STRING_DATA) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new(ossl_check_ERR_STRING_DATA_lh_hashfunc_type(hfn), ossl_check_ERR_STRING_DATA_lh_compfunc_type(cmp)), lh_ERR_STRING_DATA_hash_thunk, lh_ERR_STRING_DATA_comp_thunk, lh_ERR_STRING_DATA_doall_thunk, lh_ERR_STRING_DATA_doall_arg_thunk)) #define lh_ERR_STRING_DATA_free(lh) OPENSSL_LH_free(ossl_check_ERR_STRING_DATA_lh_type(lh)) #define lh_ERR_STRING_DATA_flush(lh) OPENSSL_LH_flush(ossl_check_ERR_STRING_DATA_lh_type(lh)) #define lh_ERR_STRING_DATA_insert(lh, ptr) ((ERR_STRING_DATA *)OPENSSL_LH_insert(ossl_check_ERR_STRING_DATA_lh_type(lh), ossl_check_ERR_STRING_DATA_lh_plain_type(ptr))) @@ -496,6 +496,14 @@ int ERR_get_next_error_library(void); int ERR_set_mark(void); int ERR_pop_to_mark(void); int ERR_clear_last_mark(void); +int ERR_count_to_mark(void); +int ERR_pop(void); + +ERR_STATE *OSSL_ERR_STATE_new(void); +void OSSL_ERR_STATE_save(ERR_STATE *es); +void OSSL_ERR_STATE_save_to_mark(ERR_STATE *es); +void OSSL_ERR_STATE_restore(const ERR_STATE *es); +void OSSL_ERR_STATE_free(ERR_STATE *es); #ifdef __cplusplus } diff --git a/deps/openssl/config/archs/VC-WIN32/asm_avx2/include/openssl/fipskey.h b/deps/openssl/config/archs/VC-WIN32/asm_avx2/include/openssl/fipskey.h index bf03682482fdd5..6939fd3c55ba6e 100644 --- a/deps/openssl/config/archs/VC-WIN32/asm_avx2/include/openssl/fipskey.h +++ b/deps/openssl/config/archs/VC-WIN32/asm_avx2/include/openssl/fipskey.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by makefile from include/openssl/fipskey.h.in * - * Copyright 2020-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2020-2024 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -29,6 +29,11 @@ extern "C" { */ #define FIPS_KEY_STRING "f4556650ac31d35461610bac4ed81b1a181b2d8a43ea2854cbae22ca74560813" +/* + * The FIPS provider vendor name, as a string. + */ +#define FIPS_VENDOR "OpenSSL FIPS Provider" + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/VC-WIN32/asm_avx2/include/openssl/lhash.h b/deps/openssl/config/archs/VC-WIN32/asm_avx2/include/openssl/lhash.h index 39dd6254acdeb6..62c55b20fd9716 100644 --- a/deps/openssl/config/archs/VC-WIN32/asm_avx2/include/openssl/lhash.h +++ b/deps/openssl/config/archs/VC-WIN32/asm_avx2/include/openssl/lhash.h @@ -1,5 +1,5 @@ /* - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2024 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -24,6 +24,9 @@ # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -31,9 +34,13 @@ extern "C" { typedef struct lhash_node_st OPENSSL_LH_NODE; typedef int (*OPENSSL_LH_COMPFUNC) (const void *, const void *); +typedef int (*OPENSSL_LH_COMPFUNCTHUNK) (const void *, const void *, OPENSSL_LH_COMPFUNC cfn); typedef unsigned long (*OPENSSL_LH_HASHFUNC) (const void *); +typedef unsigned long (*OPENSSL_LH_HASHFUNCTHUNK) (const void *, OPENSSL_LH_HASHFUNC hfn); typedef void (*OPENSSL_LH_DOALL_FUNC) (void *); +typedef void (*OPENSSL_LH_DOALL_FUNC_THUNK) (void *, OPENSSL_LH_DOALL_FUNC doall); typedef void (*OPENSSL_LH_DOALL_FUNCARG) (void *, void *); +typedef void (*OPENSSL_LH_DOALL_FUNCARG_THUNK) (void *, void *, OPENSSL_LH_DOALL_FUNCARG doall); typedef struct lhash_st OPENSSL_LHASH; /* @@ -79,26 +86,40 @@ typedef struct lhash_st OPENSSL_LHASH; int OPENSSL_LH_error(OPENSSL_LHASH *lh); OPENSSL_LHASH *OPENSSL_LH_new(OPENSSL_LH_HASHFUNC h, OPENSSL_LH_COMPFUNC c); +OPENSSL_LHASH *OPENSSL_LH_set_thunks(OPENSSL_LHASH *lh, + OPENSSL_LH_HASHFUNCTHUNK hw, + OPENSSL_LH_COMPFUNCTHUNK cw, + OPENSSL_LH_DOALL_FUNC_THUNK daw, + OPENSSL_LH_DOALL_FUNCARG_THUNK daaw); void OPENSSL_LH_free(OPENSSL_LHASH *lh); void OPENSSL_LH_flush(OPENSSL_LHASH *lh); void *OPENSSL_LH_insert(OPENSSL_LHASH *lh, void *data); void *OPENSSL_LH_delete(OPENSSL_LHASH *lh, const void *data); void *OPENSSL_LH_retrieve(OPENSSL_LHASH *lh, const void *data); void OPENSSL_LH_doall(OPENSSL_LHASH *lh, OPENSSL_LH_DOALL_FUNC func); -void OPENSSL_LH_doall_arg(OPENSSL_LHASH *lh, OPENSSL_LH_DOALL_FUNCARG func, void *arg); +void OPENSSL_LH_doall_arg(OPENSSL_LHASH *lh, + OPENSSL_LH_DOALL_FUNCARG func, void *arg); +void OPENSSL_LH_doall_arg_thunk(OPENSSL_LHASH *lh, + OPENSSL_LH_DOALL_FUNCARG_THUNK daaw, + OPENSSL_LH_DOALL_FUNCARG fn, void *arg); + unsigned long OPENSSL_LH_strhash(const char *c); unsigned long OPENSSL_LH_num_items(const OPENSSL_LHASH *lh); unsigned long OPENSSL_LH_get_down_load(const OPENSSL_LHASH *lh); void OPENSSL_LH_set_down_load(OPENSSL_LHASH *lh, unsigned long down_load); # ifndef OPENSSL_NO_STDIO -void OPENSSL_LH_stats(const OPENSSL_LHASH *lh, FILE *fp); -void OPENSSL_LH_node_stats(const OPENSSL_LHASH *lh, FILE *fp); -void OPENSSL_LH_node_usage_stats(const OPENSSL_LHASH *lh, FILE *fp); +# ifndef OPENSSL_NO_DEPRECATED_3_1 +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_stats(const OPENSSL_LHASH *lh, FILE *fp); +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_node_stats(const OPENSSL_LHASH *lh, FILE *fp); +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_node_usage_stats(const OPENSSL_LHASH *lh, FILE *fp); +# endif +# endif +# ifndef OPENSSL_NO_DEPRECATED_3_1 +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_stats_bio(const OPENSSL_LHASH *lh, BIO *out); +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_node_stats_bio(const OPENSSL_LHASH *lh, BIO *out); +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_node_usage_stats_bio(const OPENSSL_LHASH *lh, BIO *out); # endif -void OPENSSL_LH_stats_bio(const OPENSSL_LHASH *lh, BIO *out); -void OPENSSL_LH_node_stats_bio(const OPENSSL_LHASH *lh, BIO *out); -void OPENSSL_LH_node_usage_stats_bio(const OPENSSL_LHASH *lh, BIO *out); # ifndef OPENSSL_NO_DEPRECATED_1_1_0 # define _LHASH OPENSSL_LHASH @@ -129,110 +150,190 @@ void OPENSSL_LH_node_usage_stats_bio(const OPENSSL_LHASH *lh, BIO *out); /* Helper macro for internal use */ # define DEFINE_LHASH_OF_INTERNAL(type) \ - LHASH_OF(type) { union lh_##type##_dummy { void* d1; unsigned long d2; int d3; } dummy; }; \ + LHASH_OF(type) { \ + union lh_##type##_dummy { void* d1; unsigned long d2; int d3; } dummy; \ + }; \ typedef int (*lh_##type##_compfunc)(const type *a, const type *b); \ typedef unsigned long (*lh_##type##_hashfunc)(const type *a); \ typedef void (*lh_##type##_doallfunc)(type *a); \ - static ossl_unused ossl_inline type *ossl_check_##type##_lh_plain_type(type *ptr) \ + static ossl_inline unsigned long lh_##type##_hash_thunk(const void *data, OPENSSL_LH_HASHFUNC hfn) \ + { \ + unsigned long (*hfn_conv)(const type *) = (unsigned long (*)(const type *))hfn; \ + return hfn_conv((const type *)data); \ + } \ + static ossl_inline int lh_##type##_comp_thunk(const void *da, const void *db, OPENSSL_LH_COMPFUNC cfn) \ + { \ + int (*cfn_conv)(const type *, const type *) = (int (*)(const type *, const type *))cfn; \ + return cfn_conv((const type *)da, (const type *)db); \ + } \ + static ossl_inline void lh_##type##_doall_thunk(void *node, OPENSSL_LH_DOALL_FUNC doall) \ + { \ + void (*doall_conv)(type *) = (void (*)(type *))doall; \ + doall_conv((type *)node); \ + } \ + static ossl_inline void lh_##type##_doall_arg_thunk(void *node, void *arg, OPENSSL_LH_DOALL_FUNCARG doall) \ + { \ + void (*doall_conv)(type *, void *) = (void (*)(type *, void *))doall; \ + doall_conv((type *)node, arg); \ + } \ + static ossl_unused ossl_inline type *\ + ossl_check_##type##_lh_plain_type(type *ptr) \ { \ return ptr; \ } \ - static ossl_unused ossl_inline const type *ossl_check_const_##type##_lh_plain_type(const type *ptr) \ + static ossl_unused ossl_inline const type * \ + ossl_check_const_##type##_lh_plain_type(const type *ptr) \ { \ return ptr; \ } \ - static ossl_unused ossl_inline const OPENSSL_LHASH *ossl_check_const_##type##_lh_type(const LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline const OPENSSL_LHASH * \ + ossl_check_const_##type##_lh_type(const LHASH_OF(type) *lh) \ { \ return (const OPENSSL_LHASH *)lh; \ } \ - static ossl_unused ossl_inline OPENSSL_LHASH *ossl_check_##type##_lh_type(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline OPENSSL_LHASH * \ + ossl_check_##type##_lh_type(LHASH_OF(type) *lh) \ { \ return (OPENSSL_LHASH *)lh; \ } \ - static ossl_unused ossl_inline OPENSSL_LH_COMPFUNC ossl_check_##type##_lh_compfunc_type(lh_##type##_compfunc cmp) \ + static ossl_unused ossl_inline OPENSSL_LH_COMPFUNC \ + ossl_check_##type##_lh_compfunc_type(lh_##type##_compfunc cmp) \ { \ return (OPENSSL_LH_COMPFUNC)cmp; \ } \ - static ossl_unused ossl_inline OPENSSL_LH_HASHFUNC ossl_check_##type##_lh_hashfunc_type(lh_##type##_hashfunc hfn) \ + static ossl_unused ossl_inline OPENSSL_LH_HASHFUNC \ + ossl_check_##type##_lh_hashfunc_type(lh_##type##_hashfunc hfn) \ { \ return (OPENSSL_LH_HASHFUNC)hfn; \ } \ - static ossl_unused ossl_inline OPENSSL_LH_DOALL_FUNC ossl_check_##type##_lh_doallfunc_type(lh_##type##_doallfunc dfn) \ + static ossl_unused ossl_inline OPENSSL_LH_DOALL_FUNC \ + ossl_check_##type##_lh_doallfunc_type(lh_##type##_doallfunc dfn) \ { \ return (OPENSSL_LH_DOALL_FUNC)dfn; \ } \ LHASH_OF(type) -# define DEFINE_LHASH_OF(type) \ - LHASH_OF(type) { union lh_##type##_dummy { void* d1; unsigned long d2; int d3; } dummy; }; \ - static ossl_unused ossl_inline LHASH_OF(type) *lh_##type##_new(unsigned long (*hfn)(const type *), \ - int (*cfn)(const type *, const type *)) \ +# ifndef OPENSSL_NO_DEPRECATED_3_1 +# define DEFINE_LHASH_OF_DEPRECATED(type) \ + static ossl_unused ossl_inline void \ + lh_##type##_node_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ { \ - return (LHASH_OF(type) *) \ - OPENSSL_LH_new((OPENSSL_LH_HASHFUNC)hfn, (OPENSSL_LH_COMPFUNC)cfn); \ + OPENSSL_LH_node_stats_bio((const OPENSSL_LHASH *)lh, out); \ } \ - static ossl_unused ossl_inline void lh_##type##_free(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline void \ + lh_##type##_node_usage_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + { \ + OPENSSL_LH_node_usage_stats_bio((const OPENSSL_LHASH *)lh, out); \ + } \ + static ossl_unused ossl_inline void \ + lh_##type##_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + { \ + OPENSSL_LH_stats_bio((const OPENSSL_LHASH *)lh, out); \ + } +# else +# define DEFINE_LHASH_OF_DEPRECATED(type) +# endif + +# define DEFINE_LHASH_OF_EX(type) \ + LHASH_OF(type) { \ + union lh_##type##_dummy { void* d1; unsigned long d2; int d3; } dummy; \ + }; \ + static unsigned long \ + lh_##type##_hfn_thunk(const void *data, OPENSSL_LH_HASHFUNC hfn) \ + { \ + unsigned long (*hfn_conv)(const type *) = (unsigned long (*)(const type *))hfn; \ + return hfn_conv((const type *)data); \ + } \ + static int lh_##type##_cfn_thunk(const void *da, const void *db, OPENSSL_LH_COMPFUNC cfn) \ + { \ + int (*cfn_conv)(const type *, const type *) = (int (*)(const type *, const type *))cfn; \ + return cfn_conv((const type *)da, (const type *)db); \ + } \ + static ossl_unused ossl_inline void \ + lh_##type##_free(LHASH_OF(type) *lh) \ { \ OPENSSL_LH_free((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline void lh_##type##_flush(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline void \ + lh_##type##_flush(LHASH_OF(type) *lh) \ { \ OPENSSL_LH_flush((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline type *lh_##type##_insert(LHASH_OF(type) *lh, type *d) \ + static ossl_unused ossl_inline type * \ + lh_##type##_insert(LHASH_OF(type) *lh, type *d) \ { \ return (type *)OPENSSL_LH_insert((OPENSSL_LHASH *)lh, d); \ } \ - static ossl_unused ossl_inline type *lh_##type##_delete(LHASH_OF(type) *lh, const type *d) \ + static ossl_unused ossl_inline type * \ + lh_##type##_delete(LHASH_OF(type) *lh, const type *d) \ { \ return (type *)OPENSSL_LH_delete((OPENSSL_LHASH *)lh, d); \ } \ - static ossl_unused ossl_inline type *lh_##type##_retrieve(LHASH_OF(type) *lh, const type *d) \ + static ossl_unused ossl_inline type * \ + lh_##type##_retrieve(LHASH_OF(type) *lh, const type *d) \ { \ return (type *)OPENSSL_LH_retrieve((OPENSSL_LHASH *)lh, d); \ } \ - static ossl_unused ossl_inline int lh_##type##_error(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline int \ + lh_##type##_error(LHASH_OF(type) *lh) \ { \ return OPENSSL_LH_error((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline unsigned long lh_##type##_num_items(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline unsigned long \ + lh_##type##_num_items(LHASH_OF(type) *lh) \ { \ return OPENSSL_LH_num_items((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline void lh_##type##_node_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + static ossl_unused ossl_inline unsigned long \ + lh_##type##_get_down_load(LHASH_OF(type) *lh) \ { \ - OPENSSL_LH_node_stats_bio((const OPENSSL_LHASH *)lh, out); \ + return OPENSSL_LH_get_down_load((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline void lh_##type##_node_usage_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + static ossl_unused ossl_inline void \ + lh_##type##_set_down_load(LHASH_OF(type) *lh, unsigned long dl) \ { \ - OPENSSL_LH_node_usage_stats_bio((const OPENSSL_LHASH *)lh, out); \ + OPENSSL_LH_set_down_load((OPENSSL_LHASH *)lh, dl); \ } \ - static ossl_unused ossl_inline void lh_##type##_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall_thunk(void *node, OPENSSL_LH_DOALL_FUNC doall) \ { \ - OPENSSL_LH_stats_bio((const OPENSSL_LHASH *)lh, out); \ + void (*doall_conv)(type *) = (void (*)(type *))doall; \ + doall_conv((type *)node); \ } \ - static ossl_unused ossl_inline unsigned long lh_##type##_get_down_load(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall_arg_thunk(void *node, void *arg, OPENSSL_LH_DOALL_FUNCARG doall) \ { \ - return OPENSSL_LH_get_down_load((OPENSSL_LHASH *)lh); \ + void (*doall_conv)(type *, void *) = (void (*)(type *, void *))doall; \ + doall_conv((type *)node, arg); \ } \ - static ossl_unused ossl_inline void lh_##type##_set_down_load(LHASH_OF(type) *lh, unsigned long dl) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall(LHASH_OF(type) *lh, void (*doall)(type *)) \ { \ - OPENSSL_LH_set_down_load((OPENSSL_LHASH *)lh, dl); \ + OPENSSL_LH_doall((OPENSSL_LHASH *)lh, (OPENSSL_LH_DOALL_FUNC)doall); \ } \ - static ossl_unused ossl_inline void lh_##type##_doall(LHASH_OF(type) *lh, \ - void (*doall)(type *)) \ + static ossl_unused ossl_inline LHASH_OF(type) * \ + lh_##type##_new(unsigned long (*hfn)(const type *), \ + int (*cfn)(const type *, const type *)) \ { \ - OPENSSL_LH_doall((OPENSSL_LHASH *)lh, (OPENSSL_LH_DOALL_FUNC)doall); \ + return (LHASH_OF(type) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new((OPENSSL_LH_HASHFUNC)hfn, (OPENSSL_LH_COMPFUNC)cfn), \ + lh_##type##_hfn_thunk, lh_##type##_cfn_thunk, \ + lh_##type##_doall_thunk, \ + lh_##type##_doall_arg_thunk); \ } \ - static ossl_unused ossl_inline void lh_##type##_doall_arg(LHASH_OF(type) *lh, \ - void (*doallarg)(type *, void *), \ - void *arg) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall_arg(LHASH_OF(type) *lh, \ + void (*doallarg)(type *, void *), void *arg) \ { \ OPENSSL_LH_doall_arg((OPENSSL_LHASH *)lh, \ (OPENSSL_LH_DOALL_FUNCARG)doallarg, arg); \ } \ LHASH_OF(type) +# define DEFINE_LHASH_OF(type) \ + DEFINE_LHASH_OF_EX(type); \ + DEFINE_LHASH_OF_DEPRECATED(type) \ + LHASH_OF(type) + #define IMPLEMENT_LHASH_DOALL_ARG_CONST(type, argtype) \ int_implement_lhash_doall(type, argtype, const type) @@ -240,17 +341,26 @@ void OPENSSL_LH_node_usage_stats_bio(const OPENSSL_LHASH *lh, BIO *out); int_implement_lhash_doall(type, argtype, type) #define int_implement_lhash_doall(type, argtype, cbargtype) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall_##argtype##_thunk(void *node, void *arg, OPENSSL_LH_DOALL_FUNCARG fn) \ + { \ + void (*fn_conv)(cbargtype *, argtype *) = (void (*)(cbargtype *, argtype *))fn; \ + fn_conv((cbargtype *)node, (argtype *)arg); \ + } \ static ossl_unused ossl_inline void \ lh_##type##_doall_##argtype(LHASH_OF(type) *lh, \ void (*fn)(cbargtype *, argtype *), \ argtype *arg) \ { \ - OPENSSL_LH_doall_arg((OPENSSL_LHASH *)lh, (OPENSSL_LH_DOALL_FUNCARG)fn, (void *)arg); \ + OPENSSL_LH_doall_arg_thunk((OPENSSL_LHASH *)lh, \ + lh_##type##_doall_##argtype##_thunk, \ + (OPENSSL_LH_DOALL_FUNCARG)fn, \ + (void *)arg); \ } \ LHASH_OF(type) DEFINE_LHASH_OF_INTERNAL(OPENSSL_STRING); -#define lh_OPENSSL_STRING_new(hfn, cmp) ((LHASH_OF(OPENSSL_STRING) *)OPENSSL_LH_new(ossl_check_OPENSSL_STRING_lh_hashfunc_type(hfn), ossl_check_OPENSSL_STRING_lh_compfunc_type(cmp))) +#define lh_OPENSSL_STRING_new(hfn, cmp) ((LHASH_OF(OPENSSL_STRING) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new(ossl_check_OPENSSL_STRING_lh_hashfunc_type(hfn), ossl_check_OPENSSL_STRING_lh_compfunc_type(cmp)), lh_OPENSSL_STRING_hash_thunk, lh_OPENSSL_STRING_comp_thunk, lh_OPENSSL_STRING_doall_thunk, lh_OPENSSL_STRING_doall_arg_thunk)) #define lh_OPENSSL_STRING_free(lh) OPENSSL_LH_free(ossl_check_OPENSSL_STRING_lh_type(lh)) #define lh_OPENSSL_STRING_flush(lh) OPENSSL_LH_flush(ossl_check_OPENSSL_STRING_lh_type(lh)) #define lh_OPENSSL_STRING_insert(lh, ptr) ((OPENSSL_STRING *)OPENSSL_LH_insert(ossl_check_OPENSSL_STRING_lh_type(lh), ossl_check_OPENSSL_STRING_lh_plain_type(ptr))) @@ -265,7 +375,7 @@ DEFINE_LHASH_OF_INTERNAL(OPENSSL_STRING); #define lh_OPENSSL_STRING_set_down_load(lh, dl) OPENSSL_LH_set_down_load(ossl_check_OPENSSL_STRING_lh_type(lh), dl) #define lh_OPENSSL_STRING_doall(lh, dfn) OPENSSL_LH_doall(ossl_check_OPENSSL_STRING_lh_type(lh), ossl_check_OPENSSL_STRING_lh_doallfunc_type(dfn)) DEFINE_LHASH_OF_INTERNAL(OPENSSL_CSTRING); -#define lh_OPENSSL_CSTRING_new(hfn, cmp) ((LHASH_OF(OPENSSL_CSTRING) *)OPENSSL_LH_new(ossl_check_OPENSSL_CSTRING_lh_hashfunc_type(hfn), ossl_check_OPENSSL_CSTRING_lh_compfunc_type(cmp))) +#define lh_OPENSSL_CSTRING_new(hfn, cmp) ((LHASH_OF(OPENSSL_CSTRING) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new(ossl_check_OPENSSL_CSTRING_lh_hashfunc_type(hfn), ossl_check_OPENSSL_CSTRING_lh_compfunc_type(cmp)), lh_OPENSSL_CSTRING_hash_thunk, lh_OPENSSL_CSTRING_comp_thunk, lh_OPENSSL_CSTRING_doall_thunk, lh_OPENSSL_CSTRING_doall_arg_thunk)) #define lh_OPENSSL_CSTRING_free(lh) OPENSSL_LH_free(ossl_check_OPENSSL_CSTRING_lh_type(lh)) #define lh_OPENSSL_CSTRING_flush(lh) OPENSSL_LH_flush(ossl_check_OPENSSL_CSTRING_lh_type(lh)) #define lh_OPENSSL_CSTRING_insert(lh, ptr) ((OPENSSL_CSTRING *)OPENSSL_LH_insert(ossl_check_OPENSSL_CSTRING_lh_type(lh), ossl_check_OPENSSL_CSTRING_lh_plain_type(ptr))) diff --git a/deps/openssl/config/archs/VC-WIN32/asm_avx2/include/openssl/opensslv.h b/deps/openssl/config/archs/VC-WIN32/asm_avx2/include/openssl/opensslv.h index 94f44daf376f8e..a26d4e609af1b7 100644 --- a/deps/openssl/config/archs/VC-WIN32/asm_avx2/include/openssl/opensslv.h +++ b/deps/openssl/config/archs/VC-WIN32/asm_avx2/include/openssl/opensslv.h @@ -28,8 +28,8 @@ extern "C" { * These macros express version number MAJOR.MINOR.PATCH exactly */ # define OPENSSL_VERSION_MAJOR 3 -# define OPENSSL_VERSION_MINOR 0 -# define OPENSSL_VERSION_PATCH 17 +# define OPENSSL_VERSION_MINOR 5 +# define OPENSSL_VERSION_PATCH 1 /* * Additional version information @@ -74,8 +74,8 @@ extern "C" { * longer variant with OPENSSL_VERSION_PRE_RELEASE_STR and * OPENSSL_VERSION_BUILD_METADATA_STR appended. */ -# define OPENSSL_VERSION_STR "3.0.17" -# define OPENSSL_FULL_VERSION_STR "3.0.17" +# define OPENSSL_VERSION_STR "3.5.1" +# define OPENSSL_FULL_VERSION_STR "3.5.1" /* * SECTION 3: ADDITIONAL METADATA @@ -88,7 +88,7 @@ extern "C" { * SECTION 4: BACKWARD COMPATIBILITY */ -# define OPENSSL_VERSION_TEXT "OpenSSL 3.0.17 1 Jul 2025" +# define OPENSSL_VERSION_TEXT "OpenSSL 3.5.1 1 Jul 2025" /* Synthesize OPENSSL_VERSION_NUMBER with the layout 0xMNN00PPSL */ # ifdef OPENSSL_VERSION_PRE_RELEASE diff --git a/deps/openssl/config/archs/VC-WIN32/asm_avx2/include/openssl/pkcs12.h b/deps/openssl/config/archs/VC-WIN32/asm_avx2/include/openssl/pkcs12.h index 80369818c8ecdc..35d04f039366ce 100644 --- a/deps/openssl/config/archs/VC-WIN32/asm_avx2/include/openssl/pkcs12.h +++ b/deps/openssl/config/archs/VC-WIN32/asm_avx2/include/openssl/pkcs12.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by makefile from include/openssl/pkcs12.h.in * - * Copyright 1999-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1999-2024 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -25,6 +25,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -41,6 +44,7 @@ extern "C" { # define PKCS12_MAC_KEY_LENGTH 20 +/* The macro is expected to be used only internally. Kept for backwards compatibility. */ # define PKCS12_SALT_LEN 8 /* It's not clear if these are actually needed... */ @@ -130,7 +134,9 @@ int PKCS12_SAFEBAG_get_bag_nid(const PKCS12_SAFEBAG *bag); const ASN1_TYPE *PKCS12_SAFEBAG_get0_bag_obj(const PKCS12_SAFEBAG *bag); const ASN1_OBJECT *PKCS12_SAFEBAG_get0_bag_type(const PKCS12_SAFEBAG *bag); +X509 *PKCS12_SAFEBAG_get1_cert_ex(const PKCS12_SAFEBAG *bag, OSSL_LIB_CTX *libctx, const char *propq); X509 *PKCS12_SAFEBAG_get1_cert(const PKCS12_SAFEBAG *bag); +X509_CRL *PKCS12_SAFEBAG_get1_crl_ex(const PKCS12_SAFEBAG *bag, OSSL_LIB_CTX *libctx, const char *propq); X509_CRL *PKCS12_SAFEBAG_get1_crl(const PKCS12_SAFEBAG *bag); const STACK_OF(PKCS12_SAFEBAG) * PKCS12_SAFEBAG_get0_safes(const PKCS12_SAFEBAG *bag); @@ -218,6 +224,7 @@ ASN1_TYPE *PKCS12_get_attr_gen(const STACK_OF(X509_ATTRIBUTE) *attrs, char *PKCS12_get_friendlyname(PKCS12_SAFEBAG *bag); const STACK_OF(X509_ATTRIBUTE) * PKCS12_SAFEBAG_get0_attrs(const PKCS12_SAFEBAG *bag); +void PKCS12_SAFEBAG_set0_attrs(PKCS12_SAFEBAG *bag, STACK_OF(X509_ATTRIBUTE) *attrs); unsigned char *PKCS12_pbe_crypt(const X509_ALGOR *algor, const char *pass, int passlen, const unsigned char *in, int inlen, @@ -285,6 +292,9 @@ int PKCS12_verify_mac(PKCS12 *p12, const char *pass, int passlen); int PKCS12_set_mac(PKCS12 *p12, const char *pass, int passlen, unsigned char *salt, int saltlen, int iter, const EVP_MD *md_type); +int PKCS12_set_pbmac1_pbkdf2(PKCS12 *p12, const char *pass, int passlen, + unsigned char *salt, int saltlen, int iter, + const EVP_MD *md_type, const char *prf_md_name); int PKCS12_setup_mac(PKCS12 *p12, int iter, unsigned char *salt, int saltlen, const EVP_MD *md_type); unsigned char *OPENSSL_asc2uni(const char *asc, int asclen, @@ -305,6 +315,7 @@ DECLARE_ASN1_ITEM(PKCS12_AUTHSAFES) void PKCS12_PBE_add(void); int PKCS12_parse(PKCS12 *p12, const char *pass, EVP_PKEY **pkey, X509 **cert, STACK_OF(X509) **ca); +typedef int PKCS12_create_cb(PKCS12_SAFEBAG *bag, void *cbarg); PKCS12 *PKCS12_create(const char *pass, const char *name, EVP_PKEY *pkey, X509 *cert, STACK_OF(X509) *ca, int nid_key, int nid_cert, int iter, int mac_iter, int keytype); @@ -312,6 +323,11 @@ PKCS12 *PKCS12_create_ex(const char *pass, const char *name, EVP_PKEY *pkey, X509 *cert, STACK_OF(X509) *ca, int nid_key, int nid_cert, int iter, int mac_iter, int keytype, OSSL_LIB_CTX *ctx, const char *propq); +PKCS12 *PKCS12_create_ex2(const char *pass, const char *name, EVP_PKEY *pkey, + X509 *cert, STACK_OF(X509) *ca, int nid_key, int nid_cert, + int iter, int mac_iter, int keytype, + OSSL_LIB_CTX *ctx, const char *propq, + PKCS12_create_cb *cb, void *cbarg); PKCS12_SAFEBAG *PKCS12_add_cert(STACK_OF(PKCS12_SAFEBAG) **pbags, X509 *cert); PKCS12_SAFEBAG *PKCS12_add_key(STACK_OF(PKCS12_SAFEBAG) **pbags, diff --git a/deps/openssl/config/archs/VC-WIN32/asm_avx2/include/openssl/pkcs7.h b/deps/openssl/config/archs/VC-WIN32/asm_avx2/include/openssl/pkcs7.h index 0a95a93e59e262..641d9411a47354 100644 --- a/deps/openssl/config/archs/VC-WIN32/asm_avx2/include/openssl/pkcs7.h +++ b/deps/openssl/config/archs/VC-WIN32/asm_avx2/include/openssl/pkcs7.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by makefile from include/openssl/pkcs7.h.in * - * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -28,6 +28,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -131,8 +134,8 @@ SKM_DEFINE_STACK_OF_INTERNAL(PKCS7_RECIP_INFO, PKCS7_RECIP_INFO, PKCS7_RECIP_INF typedef struct pkcs7_signed_st { ASN1_INTEGER *version; /* version 1 */ STACK_OF(X509_ALGOR) *md_algs; /* md used */ - STACK_OF(X509) *cert; /* [ 0 ] */ - STACK_OF(X509_CRL) *crl; /* [ 1 ] */ + STACK_OF(X509) *cert; /* [ 0 ] */ /* name should be 'certificates' */ + STACK_OF(X509_CRL) *crl; /* [ 1 ] */ /* name should be 'crls' */ STACK_OF(PKCS7_SIGNER_INFO) *signer_info; struct pkcs7_st *contents; } PKCS7_SIGNED; @@ -158,8 +161,8 @@ typedef struct pkcs7_enveloped_st { typedef struct pkcs7_signedandenveloped_st { ASN1_INTEGER *version; /* version 1 */ STACK_OF(X509_ALGOR) *md_algs; /* md used */ - STACK_OF(X509) *cert; /* [ 0 ] */ - STACK_OF(X509_CRL) *crl; /* [ 1 ] */ + STACK_OF(X509) *cert; /* [ 0 ] */ /* name should be 'certificates' */ + STACK_OF(X509_CRL) *crl; /* [ 1 ] */ /* name should be 'crls' */ STACK_OF(PKCS7_SIGNER_INFO) *signer_info; PKCS7_ENC_CONTENT *enc_data; STACK_OF(PKCS7_RECIP_INFO) *recipientinfo; @@ -200,7 +203,7 @@ typedef struct pkcs7_st { /* NID_pkcs7_data */ ASN1_OCTET_STRING *data; /* NID_pkcs7_signed */ - PKCS7_SIGNED *sign; + PKCS7_SIGNED *sign; /* field name 'signed' would clash with C keyword */ /* NID_pkcs7_enveloped */ PKCS7_ENVELOPE *enveloped; /* NID_pkcs7_signedAndEnveloped */ @@ -341,13 +344,13 @@ int PKCS7_SIGNER_INFO_set(PKCS7_SIGNER_INFO *p7i, X509 *x509, EVP_PKEY *pkey, const EVP_MD *dgst); int PKCS7_SIGNER_INFO_sign(PKCS7_SIGNER_INFO *si); int PKCS7_add_signer(PKCS7 *p7, PKCS7_SIGNER_INFO *p7i); -int PKCS7_add_certificate(PKCS7 *p7, X509 *x509); -int PKCS7_add_crl(PKCS7 *p7, X509_CRL *x509); +int PKCS7_add_certificate(PKCS7 *p7, X509 *cert); +int PKCS7_add_crl(PKCS7 *p7, X509_CRL *crl); int PKCS7_content_new(PKCS7 *p7, int nid); int PKCS7_dataVerify(X509_STORE *cert_store, X509_STORE_CTX *ctx, BIO *bio, PKCS7 *p7, PKCS7_SIGNER_INFO *si); int PKCS7_signatureVerify(BIO *bio, PKCS7 *p7, PKCS7_SIGNER_INFO *si, - X509 *x509); + X509 *signer); BIO *PKCS7_dataInit(PKCS7 *p7, BIO *bio); int PKCS7_dataFinal(PKCS7 *p7, BIO *bio); diff --git a/deps/openssl/config/archs/VC-WIN32/asm_avx2/include/openssl/ssl.h b/deps/openssl/config/archs/VC-WIN32/asm_avx2/include/openssl/ssl.h index 7e9ca09bbf39f0..6396681867d76c 100644 --- a/deps/openssl/config/archs/VC-WIN32/asm_avx2/include/openssl/ssl.h +++ b/deps/openssl/config/archs/VC-WIN32/asm_avx2/include/openssl/ssl.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by makefile from include/openssl/ssl.h.in * - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved * Copyright 2005 Nokia. All rights reserved. * @@ -24,6 +24,7 @@ # endif # include +# include # include # include # include @@ -42,6 +43,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -231,10 +235,8 @@ typedef struct ssl_cipher_st SSL_CIPHER; typedef struct ssl_session_st SSL_SESSION; typedef struct tls_sigalgs_st TLS_SIGALGS; typedef struct ssl_conf_ctx_st SSL_CONF_CTX; -typedef struct ssl_comp_st SSL_COMP; STACK_OF(SSL_CIPHER); -STACK_OF(SSL_COMP); /* SRTP protection profiles for use with the use_srtp extension (RFC 5764)*/ typedef struct srtp_protection_profile_st { @@ -278,28 +280,31 @@ typedef int (*tls_session_secret_cb_fn)(SSL *s, void *secret, int *secret_len, /* Extension context codes */ /* This extension is only allowed in TLS */ -#define SSL_EXT_TLS_ONLY 0x0001 +#define SSL_EXT_TLS_ONLY 0x00001 /* This extension is only allowed in DTLS */ -#define SSL_EXT_DTLS_ONLY 0x0002 +#define SSL_EXT_DTLS_ONLY 0x00002 /* Some extensions may be allowed in DTLS but we don't implement them for it */ -#define SSL_EXT_TLS_IMPLEMENTATION_ONLY 0x0004 +#define SSL_EXT_TLS_IMPLEMENTATION_ONLY 0x00004 /* Most extensions are not defined for SSLv3 but EXT_TYPE_renegotiate is */ -#define SSL_EXT_SSL3_ALLOWED 0x0008 +#define SSL_EXT_SSL3_ALLOWED 0x00008 /* Extension is only defined for TLS1.2 and below */ -#define SSL_EXT_TLS1_2_AND_BELOW_ONLY 0x0010 +#define SSL_EXT_TLS1_2_AND_BELOW_ONLY 0x00010 /* Extension is only defined for TLS1.3 and above */ -#define SSL_EXT_TLS1_3_ONLY 0x0020 +#define SSL_EXT_TLS1_3_ONLY 0x00020 /* Ignore this extension during parsing if we are resuming */ -#define SSL_EXT_IGNORE_ON_RESUMPTION 0x0040 -#define SSL_EXT_CLIENT_HELLO 0x0080 +#define SSL_EXT_IGNORE_ON_RESUMPTION 0x00040 +#define SSL_EXT_CLIENT_HELLO 0x00080 /* Really means TLS1.2 or below */ -#define SSL_EXT_TLS1_2_SERVER_HELLO 0x0100 -#define SSL_EXT_TLS1_3_SERVER_HELLO 0x0200 -#define SSL_EXT_TLS1_3_ENCRYPTED_EXTENSIONS 0x0400 -#define SSL_EXT_TLS1_3_HELLO_RETRY_REQUEST 0x0800 -#define SSL_EXT_TLS1_3_CERTIFICATE 0x1000 -#define SSL_EXT_TLS1_3_NEW_SESSION_TICKET 0x2000 -#define SSL_EXT_TLS1_3_CERTIFICATE_REQUEST 0x4000 +#define SSL_EXT_TLS1_2_SERVER_HELLO 0x00100 +#define SSL_EXT_TLS1_3_SERVER_HELLO 0x00200 +#define SSL_EXT_TLS1_3_ENCRYPTED_EXTENSIONS 0x00400 +#define SSL_EXT_TLS1_3_HELLO_RETRY_REQUEST 0x00800 +#define SSL_EXT_TLS1_3_CERTIFICATE 0x01000 +#define SSL_EXT_TLS1_3_NEW_SESSION_TICKET 0x02000 +#define SSL_EXT_TLS1_3_CERTIFICATE_REQUEST 0x04000 +#define SSL_EXT_TLS1_3_CERTIFICATE_COMPRESSION 0x08000 +/* When sending a raw public key in a certificate message */ +#define SSL_EXT_TLS1_3_RAW_PUBLIC_KEY 0x10000 /* Typedefs for handling custom extensions */ @@ -404,7 +409,7 @@ typedef int (*SSL_async_callback_fn)(SSL *s, void *arg); */ # define SSL_OP_CIPHER_SERVER_PREFERENCE SSL_OP_BIT(22) /* - * If set, a server will allow a client to issue a SSLv3.0 version + * If set, a server will allow a client to issue an SSLv3.0 version * number as latest version supported in the premaster secret, even when * TLSv1.0 (version 3.1) was announced in the client hello. Normally * this is forbidden to prevent version rollback attacks. @@ -430,6 +435,19 @@ typedef int (*SSL_async_callback_fn)(SSL *s, void *arg); * interoperability with CryptoPro CSP 3.x */ # define SSL_OP_CRYPTOPRO_TLSEXT_BUG SSL_OP_BIT(31) +/* + * Disable RFC8879 certificate compression + * SSL_OP_NO_TX_CERTIFICATE_COMPRESSION: don't send compressed certificates, + * and ignore the extension when received. + * SSL_OP_NO_RX_CERTIFICATE_COMPRESSION: don't send the extension, and + * subsequently indicating that receiving is not supported + */ +# define SSL_OP_NO_TX_CERTIFICATE_COMPRESSION SSL_OP_BIT(32) +# define SSL_OP_NO_RX_CERTIFICATE_COMPRESSION SSL_OP_BIT(33) + /* Enable KTLS TX zerocopy on Linux */ +# define SSL_OP_ENABLE_KTLS_TX_ZEROCOPY_SENDFILE SSL_OP_BIT(34) + +#define SSL_OP_PREFER_NO_DHE_KEX SSL_OP_BIT(35) /* * Option "collections." @@ -574,6 +592,8 @@ typedef int (*SSL_async_callback_fn)(SSL *s, void *arg); # define CERT_PKEY_CERT_TYPE 0x400 /* Cert chain suitable to Suite B */ # define CERT_PKEY_SUITEB 0x800 +/* Cert pkey valid for raw public key use */ +# define CERT_PKEY_RPK 0x1000 # define SSL_CONF_FLAG_CMDLINE 0x1 # define SSL_CONF_FLAG_FILE 0x2 @@ -965,6 +985,7 @@ uint32_t SSL_get_recv_max_early_data(const SSL *s); # include /* This is mostly sslv3 with a few tweaks */ # include /* Datagram TLS */ # include /* Support for the use_srtp extension */ +# include #ifdef __cplusplus extern "C" { @@ -1000,32 +1021,6 @@ SKM_DEFINE_STACK_OF_INTERNAL(SSL_CIPHER, const SSL_CIPHER, SSL_CIPHER) #define sk_SSL_CIPHER_dup(sk) ((STACK_OF(SSL_CIPHER) *)OPENSSL_sk_dup(ossl_check_const_SSL_CIPHER_sk_type(sk))) #define sk_SSL_CIPHER_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(SSL_CIPHER) *)OPENSSL_sk_deep_copy(ossl_check_const_SSL_CIPHER_sk_type(sk), ossl_check_SSL_CIPHER_copyfunc_type(copyfunc), ossl_check_SSL_CIPHER_freefunc_type(freefunc))) #define sk_SSL_CIPHER_set_cmp_func(sk, cmp) ((sk_SSL_CIPHER_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_SSL_CIPHER_sk_type(sk), ossl_check_SSL_CIPHER_compfunc_type(cmp))) -SKM_DEFINE_STACK_OF_INTERNAL(SSL_COMP, SSL_COMP, SSL_COMP) -#define sk_SSL_COMP_num(sk) OPENSSL_sk_num(ossl_check_const_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_value(sk, idx) ((SSL_COMP *)OPENSSL_sk_value(ossl_check_const_SSL_COMP_sk_type(sk), (idx))) -#define sk_SSL_COMP_new(cmp) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new(ossl_check_SSL_COMP_compfunc_type(cmp))) -#define sk_SSL_COMP_new_null() ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new_null()) -#define sk_SSL_COMP_new_reserve(cmp, n) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new_reserve(ossl_check_SSL_COMP_compfunc_type(cmp), (n))) -#define sk_SSL_COMP_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_SSL_COMP_sk_type(sk), (n)) -#define sk_SSL_COMP_free(sk) OPENSSL_sk_free(ossl_check_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_zero(sk) OPENSSL_sk_zero(ossl_check_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_delete(sk, i) ((SSL_COMP *)OPENSSL_sk_delete(ossl_check_SSL_COMP_sk_type(sk), (i))) -#define sk_SSL_COMP_delete_ptr(sk, ptr) ((SSL_COMP *)OPENSSL_sk_delete_ptr(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr))) -#define sk_SSL_COMP_push(sk, ptr) OPENSSL_sk_push(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) -#define sk_SSL_COMP_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) -#define sk_SSL_COMP_pop(sk) ((SSL_COMP *)OPENSSL_sk_pop(ossl_check_SSL_COMP_sk_type(sk))) -#define sk_SSL_COMP_shift(sk) ((SSL_COMP *)OPENSSL_sk_shift(ossl_check_SSL_COMP_sk_type(sk))) -#define sk_SSL_COMP_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_SSL_COMP_sk_type(sk),ossl_check_SSL_COMP_freefunc_type(freefunc)) -#define sk_SSL_COMP_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr), (idx)) -#define sk_SSL_COMP_set(sk, idx, ptr) ((SSL_COMP *)OPENSSL_sk_set(ossl_check_SSL_COMP_sk_type(sk), (idx), ossl_check_SSL_COMP_type(ptr))) -#define sk_SSL_COMP_find(sk, ptr) OPENSSL_sk_find(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) -#define sk_SSL_COMP_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) -#define sk_SSL_COMP_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr), pnum) -#define sk_SSL_COMP_sort(sk) OPENSSL_sk_sort(ossl_check_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_dup(sk) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_dup(ossl_check_const_SSL_COMP_sk_type(sk))) -#define sk_SSL_COMP_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_deep_copy(ossl_check_const_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_copyfunc_type(copyfunc), ossl_check_SSL_COMP_freefunc_type(freefunc))) -#define sk_SSL_COMP_set_cmp_func(sk, cmp) ((sk_SSL_COMP_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_compfunc_type(cmp))) /* compatibility */ @@ -1066,6 +1061,7 @@ typedef enum { DTLS_ST_CR_HELLO_VERIFY_REQUEST, TLS_ST_CR_SRVR_HELLO, TLS_ST_CR_CERT, + TLS_ST_CR_COMP_CERT, TLS_ST_CR_CERT_STATUS, TLS_ST_CR_KEY_EXCH, TLS_ST_CR_CERT_REQ, @@ -1075,6 +1071,7 @@ typedef enum { TLS_ST_CR_FINISHED, TLS_ST_CW_CLNT_HELLO, TLS_ST_CW_CERT, + TLS_ST_CW_COMP_CERT, TLS_ST_CW_KEY_EXCH, TLS_ST_CW_CERT_VRFY, TLS_ST_CW_CHANGE, @@ -1085,10 +1082,12 @@ typedef enum { DTLS_ST_SW_HELLO_VERIFY_REQUEST, TLS_ST_SW_SRVR_HELLO, TLS_ST_SW_CERT, + TLS_ST_SW_COMP_CERT, TLS_ST_SW_KEY_EXCH, TLS_ST_SW_CERT_REQ, TLS_ST_SW_SRVR_DONE, TLS_ST_SR_CERT, + TLS_ST_SR_COMP_CERT, TLS_ST_SR_KEY_EXCH, TLS_ST_SR_CERT_VRFY, TLS_ST_SR_NEXT_PROTO, @@ -1380,9 +1379,13 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) # define SSL_CTRL_GET_SIGNATURE_NID 132 # define SSL_CTRL_GET_TMP_KEY 133 # define SSL_CTRL_GET_NEGOTIATED_GROUP 134 +# define SSL_CTRL_GET_IANA_GROUPS 135 # define SSL_CTRL_SET_RETRY_VERIFY 136 # define SSL_CTRL_GET_VERIFY_CERT_STORE 137 # define SSL_CTRL_GET_CHAIN_CERT_STORE 138 +# define SSL_CTRL_GET0_IMPLEMENTED_GROUPS 139 +# define SSL_CTRL_GET_SIGNATURE_NAME 140 +# define SSL_CTRL_GET_PEER_SIGNATURE_NAME 141 # define SSL_CERT_SET_FIRST 1 # define SSL_CERT_SET_NEXT 2 # define SSL_CERT_SET_SERVER 3 @@ -1485,10 +1488,15 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) # define SSL_get1_groups(s, glist) \ SSL_ctrl(s,SSL_CTRL_GET_GROUPS,0,(int*)(glist)) +# define SSL_get0_iana_groups(s, plst) \ + SSL_ctrl(s,SSL_CTRL_GET_IANA_GROUPS,0,(uint16_t **)(plst)) # define SSL_CTX_set1_groups(ctx, glist, glistlen) \ SSL_CTX_ctrl(ctx,SSL_CTRL_SET_GROUPS,glistlen,(int *)(glist)) # define SSL_CTX_set1_groups_list(ctx, s) \ SSL_CTX_ctrl(ctx,SSL_CTRL_SET_GROUPS_LIST,0,(char *)(s)) +# define SSL_CTX_get0_implemented_groups(ctx, all, out) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_GET0_IMPLEMENTED_GROUPS, all, \ + (STACK_OF(OPENSSL_CSTRING) *)(out)) # define SSL_set1_groups(s, glist, glistlen) \ SSL_ctrl(s,SSL_CTRL_SET_GROUPS,glistlen,(char *)(glist)) # define SSL_set1_groups_list(s, str) \ @@ -1520,8 +1528,12 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) (char *)(clist)) # define SSL_set1_client_certificate_types(s, clist, clistlen) \ SSL_ctrl(s,SSL_CTRL_SET_CLIENT_CERT_TYPES,clistlen,(char *)(clist)) +# define SSL_get0_signature_name(s, str) \ + SSL_ctrl(s,SSL_CTRL_GET_SIGNATURE_NAME,0,(1?(str):(const char **)NULL)) # define SSL_get_signature_nid(s, pn) \ SSL_ctrl(s,SSL_CTRL_GET_SIGNATURE_NID,0,pn) +# define SSL_get0_peer_signature_name(s, str) \ + SSL_ctrl(s,SSL_CTRL_GET_PEER_SIGNATURE_NAME,0,(1?(str):(const char **)NULL)) # define SSL_get_peer_signature_nid(s, pn) \ SSL_ctrl(s,SSL_CTRL_GET_PEER_SIGNATURE_NID,0,pn) # define SSL_get_peer_tmp_key(s, pk) \ @@ -1549,6 +1561,7 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) # define SSL_get_max_proto_version(s) \ SSL_ctrl(s, SSL_CTRL_GET_MAX_PROTO_VERSION, 0, NULL) +const char *SSL_get0_group_name(SSL *s); const char *SSL_group_to_name(SSL *s, int id); /* Backwards compatibility, original 1.1.0 names */ @@ -1613,7 +1626,11 @@ void SSL_CTX_set1_cert_store(SSL_CTX *, X509_STORE *); __owur int SSL_want(const SSL *s); __owur int SSL_clear(SSL *s); +#ifndef OPENSSL_NO_DEPRECATED_3_4 +OSSL_DEPRECATEDIN_3_4_FOR("not Y2038-safe, replace with SSL_CTX_flush_sessions_ex()") void SSL_CTX_flush_sessions(SSL_CTX *ctx, long tm); +#endif +void SSL_CTX_flush_sessions_ex(SSL_CTX *ctx, time_t tm); __owur const SSL_CIPHER *SSL_get_current_cipher(const SSL *s); __owur const SSL_CIPHER *SSL_get_pending_cipher(const SSL *s); @@ -1725,13 +1742,21 @@ __owur const char *SSL_state_string(const SSL *s); __owur const char *SSL_rstate_string(const SSL *s); __owur const char *SSL_state_string_long(const SSL *s); __owur const char *SSL_rstate_string_long(const SSL *s); + +#ifndef OPENSSL_NO_DEPRECATED_3_4 +OSSL_DEPRECATEDIN_3_4_FOR("not Y2038-safe, replace with SSL_SESSION_get_time_ex()") __owur long SSL_SESSION_get_time(const SSL_SESSION *s); +OSSL_DEPRECATEDIN_3_4_FOR("not Y2038-safe, replace with SSL_SESSION_set_time_ex()") __owur long SSL_SESSION_set_time(SSL_SESSION *s, long t); +#endif __owur long SSL_SESSION_get_timeout(const SSL_SESSION *s); __owur long SSL_SESSION_set_timeout(SSL_SESSION *s, long t); __owur int SSL_SESSION_get_protocol_version(const SSL_SESSION *s); __owur int SSL_SESSION_set_protocol_version(SSL_SESSION *s, int version); +__owur time_t SSL_SESSION_get_time_ex(const SSL_SESSION *s); +__owur time_t SSL_SESSION_set_time_ex(SSL_SESSION *s, time_t t); + __owur const char *SSL_SESSION_get0_hostname(const SSL_SESSION *s); __owur int SSL_SESSION_set1_hostname(SSL_SESSION *s, const char *hostname); void SSL_SESSION_get0_alpn_selected(const SSL_SESSION *s, @@ -1783,6 +1808,9 @@ __owur int SSL_has_matching_session_id(const SSL *s, unsigned int id_len); SSL_SESSION *d2i_SSL_SESSION(SSL_SESSION **a, const unsigned char **pp, long length); +SSL_SESSION *d2i_SSL_SESSION_ex(SSL_SESSION **a, const unsigned char **pp, + long length, OSSL_LIB_CTX *libctx, + const char *propq); # ifdef OPENSSL_X509_H __owur X509 *SSL_get0_peer_certificate(const SSL *s); @@ -1840,6 +1868,8 @@ __owur int SSL_CTX_set_session_id_context(SSL_CTX *ctx, SSL *SSL_new(SSL_CTX *ctx); int SSL_up_ref(SSL *s); int SSL_is_dtls(const SSL *s); +int SSL_is_tls(const SSL *s); +int SSL_is_quic(const SSL *s); __owur int SSL_set_session_id_context(SSL *ssl, const unsigned char *sid_ctx, unsigned int sid_ctx_len); @@ -1848,8 +1878,8 @@ __owur int SSL_set_purpose(SSL *ssl, int purpose); __owur int SSL_CTX_set_trust(SSL_CTX *ctx, int trust); __owur int SSL_set_trust(SSL *ssl, int trust); -__owur int SSL_set1_host(SSL *s, const char *hostname); -__owur int SSL_add1_host(SSL *s, const char *hostname); +__owur int SSL_set1_host(SSL *s, const char *host); +__owur int SSL_add1_host(SSL *s, const char *host); __owur const char *SSL_get0_peername(SSL *s); void SSL_set_hostflags(SSL *s, unsigned int flags); @@ -1924,6 +1954,11 @@ OSSL_DEPRECATEDIN_3_0 __owur char *SSL_get_srp_userinfo(SSL *s); typedef int (*SSL_client_hello_cb_fn) (SSL *s, int *al, void *arg); void SSL_CTX_set_client_hello_cb(SSL_CTX *c, SSL_client_hello_cb_fn cb, void *arg); +typedef int (*SSL_new_pending_conn_cb_fn) (SSL_CTX *ctx, SSL *new_ssl, + void *arg); +void SSL_CTX_set_new_pending_conn_cb(SSL_CTX *c, SSL_new_pending_conn_cb_fn cb, + void *arg); + int SSL_client_hello_isv2(SSL *s); unsigned int SSL_client_hello_get0_legacy_version(SSL *s); size_t SSL_client_hello_get0_random(SSL *s, const unsigned char **out); @@ -1932,6 +1967,8 @@ size_t SSL_client_hello_get0_ciphers(SSL *s, const unsigned char **out); size_t SSL_client_hello_get0_compression_methods(SSL *s, const unsigned char **out); int SSL_client_hello_get1_extensions_present(SSL *s, int **out, size_t *outlen); +int SSL_client_hello_get_extension_order(SSL *s, uint16_t *exts, + size_t *num_exts); int SSL_client_hello_get0_ext(SSL *s, unsigned int type, const unsigned char **out, size_t *outlen); @@ -1978,6 +2015,12 @@ long SSL_callback_ctrl(SSL *, int, void (*)(void)); long SSL_CTX_ctrl(SSL_CTX *ctx, int cmd, long larg, void *parg); long SSL_CTX_callback_ctrl(SSL_CTX *, int, void (*)(void)); +# define SSL_WRITE_FLAG_CONCLUDE (1U << 0) + +__owur int SSL_write_ex2(SSL *s, const void *buf, size_t num, + uint64_t flags, + size_t *written); + # define SSL_EARLY_DATA_NOT_SENT 0 # define SSL_EARLY_DATA_REJECTED 1 # define SSL_EARLY_DATA_ACCEPTED 2 @@ -1986,6 +2029,7 @@ __owur int SSL_get_early_data_status(const SSL *s); __owur int SSL_get_error(const SSL *s, int ret_code); __owur const char *SSL_get_version(const SSL *s); +__owur int SSL_get_handshake_rtt(const SSL *s, uint64_t *rtt); /* This sets the 'default' SSL version that SSL_new() will create */ # ifndef OPENSSL_NO_DEPRECATED_3_0 @@ -2281,6 +2325,8 @@ void SSL_CTX_set_record_padding_callback(SSL_CTX *ctx, void SSL_CTX_set_record_padding_callback_arg(SSL_CTX *ctx, void *arg); void *SSL_CTX_get_record_padding_callback_arg(const SSL_CTX *ctx); int SSL_CTX_set_block_padding(SSL_CTX *ctx, size_t block_size); +int SSL_CTX_set_block_padding_ex(SSL_CTX *ctx, size_t app_block_size, + size_t hs_block_size); int SSL_set_record_padding_callback(SSL *ssl, size_t (*cb) (SSL *ssl, int type, @@ -2288,12 +2334,255 @@ int SSL_set_record_padding_callback(SSL *ssl, void SSL_set_record_padding_callback_arg(SSL *ssl, void *arg); void *SSL_get_record_padding_callback_arg(const SSL *ssl); int SSL_set_block_padding(SSL *ssl, size_t block_size); - +int SSL_set_block_padding_ex(SSL *ssl, size_t app_block_size, + size_t hs_block_size); int SSL_set_num_tickets(SSL *s, size_t num_tickets); size_t SSL_get_num_tickets(const SSL *s); int SSL_CTX_set_num_tickets(SSL_CTX *ctx, size_t num_tickets); size_t SSL_CTX_get_num_tickets(const SSL_CTX *ctx); +/* QUIC support */ +int SSL_handle_events(SSL *s); +__owur int SSL_get_event_timeout(SSL *s, struct timeval *tv, int *is_infinite); +__owur int SSL_get_rpoll_descriptor(SSL *s, BIO_POLL_DESCRIPTOR *desc); +__owur int SSL_get_wpoll_descriptor(SSL *s, BIO_POLL_DESCRIPTOR *desc); +__owur int SSL_net_read_desired(SSL *s); +__owur int SSL_net_write_desired(SSL *s); +__owur int SSL_set_blocking_mode(SSL *s, int blocking); +__owur int SSL_get_blocking_mode(SSL *s); +__owur int SSL_set1_initial_peer_addr(SSL *s, const BIO_ADDR *peer_addr); +__owur SSL *SSL_get0_connection(SSL *s); +__owur int SSL_is_connection(SSL *s); + +__owur int SSL_is_listener(SSL *ssl); +__owur SSL *SSL_get0_listener(SSL *s); +#define SSL_LISTENER_FLAG_NO_VALIDATE (1UL << 1) +__owur SSL *SSL_new_listener(SSL_CTX *ctx, uint64_t flags); +__owur SSL *SSL_new_listener_from(SSL *ssl, uint64_t flags); +__owur SSL *SSL_new_from_listener(SSL *ssl, uint64_t flags); +#define SSL_ACCEPT_CONNECTION_NO_BLOCK (1UL << 0) +__owur SSL *SSL_accept_connection(SSL *ssl, uint64_t flags); +__owur size_t SSL_get_accept_connection_queue_len(SSL *ssl); +__owur int SSL_listen(SSL *ssl); + +__owur int SSL_is_domain(SSL *s); +__owur SSL *SSL_get0_domain(SSL *s); +__owur SSL *SSL_new_domain(SSL_CTX *ctx, uint64_t flags); + +#define SSL_DOMAIN_FLAG_SINGLE_THREAD (1U << 0) +#define SSL_DOMAIN_FLAG_MULTI_THREAD (1U << 1) +#define SSL_DOMAIN_FLAG_THREAD_ASSISTED (1U << 2) +#define SSL_DOMAIN_FLAG_BLOCKING (1U << 3) +#define SSL_DOMAIN_FLAG_LEGACY_BLOCKING (1U << 4) + +__owur int SSL_CTX_set_domain_flags(SSL_CTX *ctx, uint64_t domain_flags); +__owur int SSL_CTX_get_domain_flags(const SSL_CTX *ctx, uint64_t *domain_flags); +__owur int SSL_get_domain_flags(const SSL *ssl, uint64_t *domain_flags); + +#define SSL_STREAM_TYPE_NONE 0 +#define SSL_STREAM_TYPE_READ (1U << 0) +#define SSL_STREAM_TYPE_WRITE (1U << 1) +#define SSL_STREAM_TYPE_BIDI (SSL_STREAM_TYPE_READ | SSL_STREAM_TYPE_WRITE) +__owur int SSL_get_stream_type(SSL *s); + +__owur uint64_t SSL_get_stream_id(SSL *s); +__owur int SSL_is_stream_local(SSL *s); + +#define SSL_DEFAULT_STREAM_MODE_NONE 0 +#define SSL_DEFAULT_STREAM_MODE_AUTO_BIDI 1 +#define SSL_DEFAULT_STREAM_MODE_AUTO_UNI 2 +__owur int SSL_set_default_stream_mode(SSL *s, uint32_t mode); + +#define SSL_STREAM_FLAG_UNI (1U << 0) +#define SSL_STREAM_FLAG_NO_BLOCK (1U << 1) +#define SSL_STREAM_FLAG_ADVANCE (1U << 2) +__owur SSL *SSL_new_stream(SSL *s, uint64_t flags); + +#define SSL_INCOMING_STREAM_POLICY_AUTO 0 +#define SSL_INCOMING_STREAM_POLICY_ACCEPT 1 +#define SSL_INCOMING_STREAM_POLICY_REJECT 2 +__owur int SSL_set_incoming_stream_policy(SSL *s, int policy, uint64_t aec); + +#define SSL_ACCEPT_STREAM_NO_BLOCK (1U << 0) +__owur SSL *SSL_accept_stream(SSL *s, uint64_t flags); +__owur size_t SSL_get_accept_stream_queue_len(SSL *s); + +# ifndef OPENSSL_NO_QUIC +__owur int SSL_inject_net_dgram(SSL *s, const unsigned char *buf, + size_t buf_len, + const BIO_ADDR *peer, + const BIO_ADDR *local); +# endif + +typedef struct ssl_shutdown_ex_args_st { + uint64_t quic_error_code; + const char *quic_reason; +} SSL_SHUTDOWN_EX_ARGS; + +#define SSL_SHUTDOWN_FLAG_RAPID (1U << 0) +#define SSL_SHUTDOWN_FLAG_NO_STREAM_FLUSH (1U << 1) +#define SSL_SHUTDOWN_FLAG_NO_BLOCK (1U << 2) +#define SSL_SHUTDOWN_FLAG_WAIT_PEER (1U << 3) + +__owur int SSL_shutdown_ex(SSL *ssl, uint64_t flags, + const SSL_SHUTDOWN_EX_ARGS *args, + size_t args_len); + +__owur int SSL_stream_conclude(SSL *ssl, uint64_t flags); + +typedef struct ssl_stream_reset_args_st { + uint64_t quic_error_code; +} SSL_STREAM_RESET_ARGS; + +__owur int SSL_stream_reset(SSL *ssl, + const SSL_STREAM_RESET_ARGS *args, + size_t args_len); + +#define SSL_STREAM_STATE_NONE 0 +#define SSL_STREAM_STATE_OK 1 +#define SSL_STREAM_STATE_WRONG_DIR 2 +#define SSL_STREAM_STATE_FINISHED 3 +#define SSL_STREAM_STATE_RESET_LOCAL 4 +#define SSL_STREAM_STATE_RESET_REMOTE 5 +#define SSL_STREAM_STATE_CONN_CLOSED 6 +__owur int SSL_get_stream_read_state(SSL *ssl); +__owur int SSL_get_stream_write_state(SSL *ssl); + +__owur int SSL_get_stream_read_error_code(SSL *ssl, uint64_t *app_error_code); +__owur int SSL_get_stream_write_error_code(SSL *ssl, uint64_t *app_error_code); + +#define SSL_CONN_CLOSE_FLAG_LOCAL (1U << 0) +#define SSL_CONN_CLOSE_FLAG_TRANSPORT (1U << 1) + +typedef struct ssl_conn_close_info_st { + uint64_t error_code, frame_type; + const char *reason; + size_t reason_len; + uint32_t flags; +} SSL_CONN_CLOSE_INFO; + +__owur int SSL_get_conn_close_info(SSL *ssl, + SSL_CONN_CLOSE_INFO *info, + size_t info_len); + +# define SSL_VALUE_CLASS_GENERIC 0 +# define SSL_VALUE_CLASS_FEATURE_REQUEST 1 +# define SSL_VALUE_CLASS_FEATURE_PEER_REQUEST 2 +# define SSL_VALUE_CLASS_FEATURE_NEGOTIATED 3 + +# define SSL_VALUE_NONE 0 +# define SSL_VALUE_QUIC_STREAM_BIDI_LOCAL_AVAIL 1 +# define SSL_VALUE_QUIC_STREAM_BIDI_REMOTE_AVAIL 2 +# define SSL_VALUE_QUIC_STREAM_UNI_LOCAL_AVAIL 3 +# define SSL_VALUE_QUIC_STREAM_UNI_REMOTE_AVAIL 4 +# define SSL_VALUE_QUIC_IDLE_TIMEOUT 5 +# define SSL_VALUE_EVENT_HANDLING_MODE 6 +# define SSL_VALUE_STREAM_WRITE_BUF_SIZE 7 +# define SSL_VALUE_STREAM_WRITE_BUF_USED 8 +# define SSL_VALUE_STREAM_WRITE_BUF_AVAIL 9 + +# define SSL_VALUE_EVENT_HANDLING_MODE_INHERIT 0 +# define SSL_VALUE_EVENT_HANDLING_MODE_IMPLICIT 1 +# define SSL_VALUE_EVENT_HANDLING_MODE_EXPLICIT 2 + +int SSL_get_value_uint(SSL *s, uint32_t class_, uint32_t id, uint64_t *v); +int SSL_set_value_uint(SSL *s, uint32_t class_, uint32_t id, uint64_t v); + +# define SSL_get_generic_value_uint(ssl, id, v) \ + SSL_get_value_uint((ssl), SSL_VALUE_CLASS_GENERIC, (id), (v)) +# define SSL_set_generic_value_uint(ssl, id, v) \ + SSL_set_value_uint((ssl), SSL_VALUE_CLASS_GENERIC, (id), (v)) +# define SSL_get_feature_request_uint(ssl, id, v) \ + SSL_get_value_uint((ssl), SSL_VALUE_CLASS_FEATURE_REQUEST, (id), (v)) +# define SSL_set_feature_request_uint(ssl, id, v) \ + SSL_set_value_uint((ssl), SSL_VALUE_CLASS_FEATURE_REQUEST, (id), (v)) +# define SSL_get_feature_peer_request_uint(ssl, id, v) \ + SSL_get_value_uint((ssl), SSL_VALUE_CLASS_FEATURE_PEER_REQUEST, (id), (v)) +# define SSL_get_feature_negotiated_uint(ssl, id, v) \ + SSL_get_value_uint((ssl), SSL_VALUE_CLASS_FEATURE_NEGOTIATED, (id), (v)) + +# define SSL_get_quic_stream_bidi_local_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_QUIC_STREAM_BIDI_LOCAL_AVAIL, \ + (value)) +# define SSL_get_quic_stream_bidi_remote_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_QUIC_STREAM_BIDI_REMOTE_AVAIL, \ + (value)) +# define SSL_get_quic_stream_uni_local_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_QUIC_STREAM_UNI_LOCAL_AVAIL, \ + (value)) +# define SSL_get_quic_stream_uni_remote_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_QUIC_STREAM_UNI_REMOTE_AVAIL, \ + (value)) + +# define SSL_get_event_handling_mode(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_EVENT_HANDLING_MODE, \ + (value)) +# define SSL_set_event_handling_mode(ssl, value) \ + SSL_set_generic_value_uint((ssl), SSL_VALUE_EVENT_HANDLING_MODE, \ + (value)) + +# define SSL_get_stream_write_buf_size(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_STREAM_WRITE_BUF_SIZE, \ + (value)) +# define SSL_get_stream_write_buf_used(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_STREAM_WRITE_BUF_USED, \ + (value)) +# define SSL_get_stream_write_buf_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_STREAM_WRITE_BUF_AVAIL, \ + (value)) + +# define SSL_POLL_EVENT_NONE 0 + +# define SSL_POLL_EVENT_F (1U << 0) /* F (Failure) */ +# define SSL_POLL_EVENT_EL (1U << 1) /* EL (Exception on Listener) */ +# define SSL_POLL_EVENT_EC (1U << 2) /* EC (Exception on Conn) */ +# define SSL_POLL_EVENT_ECD (1U << 3) /* ECD (Exception on Conn Drained) */ +# define SSL_POLL_EVENT_ER (1U << 4) /* ER (Exception on Read) */ +# define SSL_POLL_EVENT_EW (1U << 5) /* EW (Exception on Write) */ +# define SSL_POLL_EVENT_R (1U << 6) /* R (Readable) */ +# define SSL_POLL_EVENT_W (1U << 7) /* W (Writable) */ +# define SSL_POLL_EVENT_IC (1U << 8) /* IC (Incoming Connection) */ +# define SSL_POLL_EVENT_ISB (1U << 9) /* ISB (Incoming Stream: Bidi) */ +# define SSL_POLL_EVENT_ISU (1U << 10) /* ISU (Incoming Stream: Uni) */ +# define SSL_POLL_EVENT_OSB (1U << 11) /* OSB (Outgoing Stream: Bidi) */ +# define SSL_POLL_EVENT_OSU (1U << 12) /* OSU (Outgoing Stream: Uni) */ + +# define SSL_POLL_EVENT_RW (SSL_POLL_EVENT_R | SSL_POLL_EVENT_W) +# define SSL_POLL_EVENT_RE (SSL_POLL_EVENT_R | SSL_POLL_EVENT_ER) +# define SSL_POLL_EVENT_WE (SSL_POLL_EVENT_W | SSL_POLL_EVENT_EW) +# define SSL_POLL_EVENT_RWE (SSL_POLL_EVENT_RE | SSL_POLL_EVENT_WE) +# define SSL_POLL_EVENT_E (SSL_POLL_EVENT_EL | SSL_POLL_EVENT_EC \ + | SSL_POLL_EVENT_ER | SSL_POLL_EVENT_EW) +# define SSL_POLL_EVENT_IS (SSL_POLL_EVENT_ISB | SSL_POLL_EVENT_ISU) +# define SSL_POLL_EVENT_ISE (SSL_POLL_EVENT_IS | SSL_POLL_EVENT_EC) +# define SSL_POLL_EVENT_I (SSL_POLL_EVENT_IS | SSL_POLL_EVENT_IC) +# define SSL_POLL_EVENT_OS (SSL_POLL_EVENT_OSB | SSL_POLL_EVENT_OSU) +# define SSL_POLL_EVENT_OSE (SSL_POLL_EVENT_OS | SSL_POLL_EVENT_EC) + +typedef struct ssl_poll_item_st { + BIO_POLL_DESCRIPTOR desc; + uint64_t events, revents; +} SSL_POLL_ITEM; + +# define SSL_POLL_FLAG_NO_HANDLE_EVENTS (1U << 0) + +__owur int SSL_poll(SSL_POLL_ITEM *items, + size_t num_items, + size_t stride, + const struct timeval *timeout, + uint64_t flags, + size_t *result_count); + +static ossl_inline ossl_unused BIO_POLL_DESCRIPTOR +SSL_as_poll_descriptor(SSL *s) +{ + BIO_POLL_DESCRIPTOR d; + + d.type = BIO_POLL_DESCRIPTOR_TYPE_SSL; + d.value.ssl = s; + return d; +} + # ifndef OPENSSL_NO_DEPRECATED_1_1_0 # define SSL_cache_hit(s) SSL_session_reused(s) # endif @@ -2593,6 +2882,51 @@ void SSL_set_allow_early_data_cb(SSL *s, const char *OSSL_default_cipher_list(void); const char *OSSL_default_ciphersuites(void); +/* RFC8879 Certificate compression APIs */ + +int SSL_CTX_compress_certs(SSL_CTX *ctx, int alg); +int SSL_compress_certs(SSL *ssl, int alg); + +int SSL_CTX_set1_cert_comp_preference(SSL_CTX *ctx, int *algs, size_t len); +int SSL_set1_cert_comp_preference(SSL *ssl, int *algs, size_t len); + +int SSL_CTX_set1_compressed_cert(SSL_CTX *ctx, int algorithm, unsigned char *comp_data, + size_t comp_length, size_t orig_length); +int SSL_set1_compressed_cert(SSL *ssl, int algorithm, unsigned char *comp_data, + size_t comp_length, size_t orig_length); +size_t SSL_CTX_get1_compressed_cert(SSL_CTX *ctx, int alg, unsigned char **data, size_t *orig_len); +size_t SSL_get1_compressed_cert(SSL *ssl, int alg, unsigned char **data, size_t *orig_len); + +__owur int SSL_add_expected_rpk(SSL *s, EVP_PKEY *rpk); +__owur EVP_PKEY *SSL_get0_peer_rpk(const SSL *s); +__owur EVP_PKEY *SSL_SESSION_get0_peer_rpk(SSL_SESSION *s); +__owur int SSL_get_negotiated_client_cert_type(const SSL *s); +__owur int SSL_get_negotiated_server_cert_type(const SSL *s); + +__owur int SSL_set1_client_cert_type(SSL *s, const unsigned char *val, size_t len); +__owur int SSL_set1_server_cert_type(SSL *s, const unsigned char *val, size_t len); +__owur int SSL_CTX_set1_client_cert_type(SSL_CTX *ctx, const unsigned char *val, size_t len); +__owur int SSL_CTX_set1_server_cert_type(SSL_CTX *ctx, const unsigned char *val, size_t len); +__owur int SSL_get0_client_cert_type(const SSL *s, unsigned char **t, size_t *len); +__owur int SSL_get0_server_cert_type(const SSL *s, unsigned char **t, size_t *len); +__owur int SSL_CTX_get0_client_cert_type(const SSL_CTX *ctx, unsigned char **t, size_t *len); +__owur int SSL_CTX_get0_server_cert_type(const SSL_CTX *s, unsigned char **t, size_t *len); + +/* + * Protection level. For <= TLSv1.2 only "NONE" and "APPLICATION" are used. + */ +# define OSSL_RECORD_PROTECTION_LEVEL_NONE 0 +# define OSSL_RECORD_PROTECTION_LEVEL_EARLY 1 +# define OSSL_RECORD_PROTECTION_LEVEL_HANDSHAKE 2 +# define OSSL_RECORD_PROTECTION_LEVEL_APPLICATION 3 + +int SSL_set_quic_tls_cbs(SSL *s, const OSSL_DISPATCH *qtdis, void *arg); +int SSL_set_quic_tls_transport_params(SSL *s, + const unsigned char *params, + size_t params_len); + +int SSL_set_quic_tls_early_data_enabled(SSL *s, int enabled); + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/VC-WIN32/asm_avx2/include/openssl/x509.h b/deps/openssl/config/archs/VC-WIN32/asm_avx2/include/openssl/x509.h index 0f2353c821aa9b..5e9c548c48d65b 100644 --- a/deps/openssl/config/archs/VC-WIN32/asm_avx2/include/openssl/x509.h +++ b/deps/openssl/config/archs/VC-WIN32/asm_avx2/include/openssl/x509.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by makefile from include/openssl/x509.h.in * - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2024 The OpenSSL Project Authors. All Rights Reserved. * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved * * Licensed under the Apache License 2.0 (the "License"). You may not use @@ -40,6 +40,9 @@ # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -162,16 +165,24 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_CRL, X509_CRL, X509_CRL) # define X509_FILETYPE_ASN1 2 # define X509_FILETYPE_DEFAULT 3 -# define X509v3_KU_DIGITAL_SIGNATURE 0x0080 -# define X509v3_KU_NON_REPUDIATION 0x0040 -# define X509v3_KU_KEY_ENCIPHERMENT 0x0020 -# define X509v3_KU_DATA_ENCIPHERMENT 0x0010 -# define X509v3_KU_KEY_AGREEMENT 0x0008 -# define X509v3_KU_KEY_CERT_SIGN 0x0004 -# define X509v3_KU_CRL_SIGN 0x0002 -# define X509v3_KU_ENCIPHER_ONLY 0x0001 -# define X509v3_KU_DECIPHER_ONLY 0x8000 -# define X509v3_KU_UNDEF 0xffff +/*- + * : + * The KeyUsage BITSTRING is treated as a little-endian integer, hence bit `0` + * is 0x80, while bit `7` is 0x01 (the LSB of the integer value), bit `8` is + * then the MSB of the second octet, or 0x8000. + */ +# define X509v3_KU_DIGITAL_SIGNATURE 0x0080 /* (0) */ +# define X509v3_KU_NON_REPUDIATION 0x0040 /* (1) */ +# define X509v3_KU_KEY_ENCIPHERMENT 0x0020 /* (2) */ +# define X509v3_KU_DATA_ENCIPHERMENT 0x0010 /* (3) */ +# define X509v3_KU_KEY_AGREEMENT 0x0008 /* (4) */ +# define X509v3_KU_KEY_CERT_SIGN 0x0004 /* (5) */ +# define X509v3_KU_CRL_SIGN 0x0002 /* (6) */ +# define X509v3_KU_ENCIPHER_ONLY 0x0001 /* (7) */ +# define X509v3_KU_DECIPHER_ONLY 0x8000 /* (8) */ +# ifndef OPENSSL_NO_DEPRECATED_3_4 +# define X509v3_KU_UNDEF 0xffff /* vestigial, not used */ +# endif struct X509_algor_st { ASN1_OBJECT *algorithm; @@ -462,7 +473,12 @@ typedef struct PBKDF2PARAM_st { X509_ALGOR *prf; } PBKDF2PARAM; -#ifndef OPENSSL_NO_SCRYPT +typedef struct { + X509_ALGOR *keyDerivationFunc; + X509_ALGOR *messageAuthScheme; +} PBMAC1PARAM; + +# ifndef OPENSSL_NO_SCRYPT typedef struct SCRYPT_PARAMS_st { ASN1_OCTET_STRING *salt; ASN1_INTEGER *costParameter; @@ -470,7 +486,7 @@ typedef struct SCRYPT_PARAMS_st { ASN1_INTEGER *parallelizationParameter; ASN1_INTEGER *keyLength; } SCRYPT_PARAMS; -#endif +# endif #ifdef __cplusplus } @@ -603,6 +619,8 @@ EVP_PKEY *d2i_PrivateKey_ex_fp(FILE *fp, EVP_PKEY **a, OSSL_LIB_CTX *libctx, const char *propq); EVP_PKEY *d2i_PrivateKey_fp(FILE *fp, EVP_PKEY **a); int i2d_PUBKEY_fp(FILE *fp, const EVP_PKEY *pkey); +EVP_PKEY *d2i_PUBKEY_ex_fp(FILE *fp, EVP_PKEY **a, OSSL_LIB_CTX *libctx, + const char *propq); EVP_PKEY *d2i_PUBKEY_fp(FILE *fp, EVP_PKEY **a); # endif @@ -651,6 +669,8 @@ EVP_PKEY *d2i_PrivateKey_ex_bio(BIO *bp, EVP_PKEY **a, OSSL_LIB_CTX *libctx, const char *propq); EVP_PKEY *d2i_PrivateKey_bio(BIO *bp, EVP_PKEY **a); int i2d_PUBKEY_bio(BIO *bp, const EVP_PKEY *pkey); +EVP_PKEY *d2i_PUBKEY_ex_bio(BIO *bp, EVP_PKEY **a, OSSL_LIB_CTX *libctx, + const char *propq); EVP_PKEY *d2i_PUBKEY_bio(BIO *bp, EVP_PKEY **a); DECLARE_ASN1_DUP_FUNCTION(X509) @@ -884,12 +904,12 @@ int X509_REQ_get_signature_nid(const X509_REQ *req); int i2d_re_X509_REQ_tbs(X509_REQ *req, unsigned char **pp); int X509_REQ_set_pubkey(X509_REQ *x, EVP_PKEY *pkey); EVP_PKEY *X509_REQ_get_pubkey(X509_REQ *req); -EVP_PKEY *X509_REQ_get0_pubkey(X509_REQ *req); +EVP_PKEY *X509_REQ_get0_pubkey(const X509_REQ *req); X509_PUBKEY *X509_REQ_get_X509_PUBKEY(X509_REQ *req); int X509_REQ_extension_nid(int nid); int *X509_REQ_get_extension_nids(void); void X509_REQ_set_extension_nids(int *nids); -STACK_OF(X509_EXTENSION) *X509_REQ_get_extensions(X509_REQ *req); +STACK_OF(X509_EXTENSION) *X509_REQ_get_extensions(OSSL_FUTURE_CONST X509_REQ *req); int X509_REQ_add_extensions_nid(X509_REQ *req, const STACK_OF(X509_EXTENSION) *exts, int nid); int X509_REQ_add_extensions(X509_REQ *req, const STACK_OF(X509_EXTENSION) *ext); @@ -950,13 +970,14 @@ X509_REVOKED_get0_extensions(const X509_REVOKED *r); X509_CRL *X509_CRL_diff(X509_CRL *base, X509_CRL *newer, EVP_PKEY *skey, const EVP_MD *md, unsigned int flags); -int X509_REQ_check_private_key(X509_REQ *x509, EVP_PKEY *pkey); +int X509_REQ_check_private_key(const X509_REQ *req, EVP_PKEY *pkey); -int X509_check_private_key(const X509 *x509, const EVP_PKEY *pkey); +int X509_check_private_key(const X509 *cert, const EVP_PKEY *pkey); int X509_chain_check_suiteb(int *perror_depth, X509 *x, STACK_OF(X509) *chain, unsigned long flags); int X509_CRL_check_suiteb(X509_CRL *crl, EVP_PKEY *pk, unsigned long flags); +void OSSL_STACK_OF_X509_free(STACK_OF(X509) *certs); STACK_OF(X509) *X509_chain_up_ref(STACK_OF(X509) *chain); int X509_issuer_and_serial_cmp(const X509 *a, const X509 *b); @@ -1077,6 +1098,8 @@ X509_EXTENSION *X509v3_get_ext(const STACK_OF(X509_EXTENSION) *x, int loc); X509_EXTENSION *X509v3_delete_ext(STACK_OF(X509_EXTENSION) *x, int loc); STACK_OF(X509_EXTENSION) *X509v3_add_ext(STACK_OF(X509_EXTENSION) **x, X509_EXTENSION *ex, int loc); +STACK_OF(X509_EXTENSION) *X509v3_add_extensions(STACK_OF(X509_EXTENSION) **target, + const STACK_OF(X509_EXTENSION) *exts); int X509_get_ext_count(const X509 *x); int X509_get_ext_by_NID(const X509 *x, int nid, int lastpos); @@ -1198,9 +1221,10 @@ X509 *X509_find_by_subject(STACK_OF(X509) *sk, const X509_NAME *name); DECLARE_ASN1_FUNCTIONS(PBEPARAM) DECLARE_ASN1_FUNCTIONS(PBE2PARAM) DECLARE_ASN1_FUNCTIONS(PBKDF2PARAM) -#ifndef OPENSSL_NO_SCRYPT +DECLARE_ASN1_FUNCTIONS(PBMAC1PARAM) +# ifndef OPENSSL_NO_SCRYPT DECLARE_ASN1_FUNCTIONS(SCRYPT_PARAMS) -#endif +# endif int PKCS5_pbe_set0_algor(X509_ALGOR *algor, int alg, int iter, const unsigned char *salt, int saltlen); @@ -1237,6 +1261,7 @@ X509_ALGOR *PKCS5_pbkdf2_set_ex(int iter, unsigned char *salt, int saltlen, int prf_nid, int keylen, OSSL_LIB_CTX *libctx); +PBKDF2PARAM *PBMAC1_get1_pbkdf2_param(const X509_ALGOR *macalg); /* PKCS#8 utilities */ DECLARE_ASN1_FUNCTIONS(PKCS8_PRIV_KEY_INFO) @@ -1262,6 +1287,8 @@ int PKCS8_pkey_add1_attr_by_OBJ(PKCS8_PRIV_KEY_INFO *p8, const ASN1_OBJECT *obj, int type, const unsigned char *bytes, int len); +void X509_PUBKEY_set0_public_key(X509_PUBKEY *pub, + unsigned char *penc, int penclen); int X509_PUBKEY_set0_param(X509_PUBKEY *pub, ASN1_OBJECT *aobj, int ptype, void *pval, unsigned char *penc, int penclen); diff --git a/deps/openssl/config/archs/VC-WIN32/asm_avx2/include/openssl/x509_acert.h b/deps/openssl/config/archs/VC-WIN32/asm_avx2/include/openssl/x509_acert.h new file mode 100644 index 00000000000000..efae82c8f6b635 --- /dev/null +++ b/deps/openssl/config/archs/VC-WIN32/asm_avx2/include/openssl/x509_acert.h @@ -0,0 +1,294 @@ +/* + * WARNING: do not edit! + * Generated by makefile from include/openssl/x509_acert.h.in + * + * Copyright 2022-2024 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + + +#ifndef OPENSSL_X509_ACERT_H +# define OPENSSL_X509_ACERT_H +# pragma once + +# include +# include +# include + +typedef struct X509_acert_st X509_ACERT; +typedef struct X509_acert_info_st X509_ACERT_INFO; +typedef struct ossl_object_digest_info_st OSSL_OBJECT_DIGEST_INFO; +typedef struct ossl_issuer_serial_st OSSL_ISSUER_SERIAL; +typedef struct X509_acert_issuer_v2form_st X509_ACERT_ISSUER_V2FORM; + +DECLARE_ASN1_FUNCTIONS(X509_ACERT) +DECLARE_ASN1_DUP_FUNCTION(X509_ACERT) +DECLARE_ASN1_ITEM(X509_ACERT_INFO) +DECLARE_ASN1_ALLOC_FUNCTIONS(X509_ACERT_INFO) +DECLARE_ASN1_ALLOC_FUNCTIONS(OSSL_OBJECT_DIGEST_INFO) +DECLARE_ASN1_ALLOC_FUNCTIONS(OSSL_ISSUER_SERIAL) +DECLARE_ASN1_ALLOC_FUNCTIONS(X509_ACERT_ISSUER_V2FORM) + +# ifndef OPENSSL_NO_STDIO +X509_ACERT *d2i_X509_ACERT_fp(FILE *fp, X509_ACERT **acert); +int i2d_X509_ACERT_fp(FILE *fp, const X509_ACERT *acert); +# endif + +DECLARE_PEM_rw(X509_ACERT, X509_ACERT) + +X509_ACERT *d2i_X509_ACERT_bio(BIO *bp, X509_ACERT **acert); +int i2d_X509_ACERT_bio(BIO *bp, const X509_ACERT *acert); + +int X509_ACERT_sign(X509_ACERT *x, EVP_PKEY *pkey, const EVP_MD *md); +int X509_ACERT_sign_ctx(X509_ACERT *x, EVP_MD_CTX *ctx); +int X509_ACERT_verify(X509_ACERT *a, EVP_PKEY *r); + +# define X509_ACERT_VERSION_2 1 + +const GENERAL_NAMES *X509_ACERT_get0_holder_entityName(const X509_ACERT *x); +const OSSL_ISSUER_SERIAL *X509_ACERT_get0_holder_baseCertId(const X509_ACERT *x); +const OSSL_OBJECT_DIGEST_INFO * X509_ACERT_get0_holder_digest(const X509_ACERT *x); +const X509_NAME *X509_ACERT_get0_issuerName(const X509_ACERT *x); +long X509_ACERT_get_version(const X509_ACERT *x); +void X509_ACERT_get0_signature(const X509_ACERT *x, + const ASN1_BIT_STRING **psig, + const X509_ALGOR **palg); +int X509_ACERT_get_signature_nid(const X509_ACERT *x); +const X509_ALGOR *X509_ACERT_get0_info_sigalg(const X509_ACERT *x); +const ASN1_INTEGER *X509_ACERT_get0_serialNumber(const X509_ACERT *x); +const ASN1_TIME *X509_ACERT_get0_notBefore(const X509_ACERT *x); +const ASN1_TIME *X509_ACERT_get0_notAfter(const X509_ACERT *x); +const ASN1_BIT_STRING *X509_ACERT_get0_issuerUID(const X509_ACERT *x); + +int X509_ACERT_print(BIO *bp, X509_ACERT *x); +int X509_ACERT_print_ex(BIO *bp, X509_ACERT *x, unsigned long nmflags, + unsigned long cflag); + +int X509_ACERT_get_attr_count(const X509_ACERT *x); +int X509_ACERT_get_attr_by_NID(const X509_ACERT *x, int nid, int lastpos); +int X509_ACERT_get_attr_by_OBJ(const X509_ACERT *x, const ASN1_OBJECT *obj, + int lastpos); +X509_ATTRIBUTE *X509_ACERT_get_attr(const X509_ACERT *x, int loc); +X509_ATTRIBUTE *X509_ACERT_delete_attr(X509_ACERT *x, int loc); + +void *X509_ACERT_get_ext_d2i(const X509_ACERT *x, int nid, int *crit, int *idx); +int X509_ACERT_add1_ext_i2d(X509_ACERT *x, int nid, void *value, int crit, + unsigned long flags); +const STACK_OF(X509_EXTENSION) *X509_ACERT_get0_extensions(const X509_ACERT *x); + +# define OSSL_OBJECT_DIGEST_INFO_PUBLIC_KEY 0 +# define OSSL_OBJECT_DIGEST_INFO_PUBLIC_KEY_CERT 1 +# define OSSL_OBJECT_DIGEST_INFO_OTHER 2 /* must not be used in RFC 5755 profile */ +int X509_ACERT_set_version(X509_ACERT *x, long version); +void X509_ACERT_set0_holder_entityName(X509_ACERT *x, GENERAL_NAMES *name); +void X509_ACERT_set0_holder_baseCertId(X509_ACERT *x, OSSL_ISSUER_SERIAL *isss); +void X509_ACERT_set0_holder_digest(X509_ACERT *x, + OSSL_OBJECT_DIGEST_INFO *dinfo); + +int X509_ACERT_add1_attr(X509_ACERT *x, X509_ATTRIBUTE *attr); +int X509_ACERT_add1_attr_by_OBJ(X509_ACERT *x, const ASN1_OBJECT *obj, + int type, const void *bytes, int len); +int X509_ACERT_add1_attr_by_NID(X509_ACERT *x, int nid, int type, + const void *bytes, int len); +int X509_ACERT_add1_attr_by_txt(X509_ACERT *x, const char *attrname, int type, + const unsigned char *bytes, int len); +int X509_ACERT_add_attr_nconf(CONF *conf, const char *section, + X509_ACERT *acert); + +int X509_ACERT_set1_issuerName(X509_ACERT *x, const X509_NAME *name); +int X509_ACERT_set1_serialNumber(X509_ACERT *x, const ASN1_INTEGER *serial); +int X509_ACERT_set1_notBefore(X509_ACERT *x, const ASN1_GENERALIZEDTIME *time); +int X509_ACERT_set1_notAfter(X509_ACERT *x, const ASN1_GENERALIZEDTIME *time); + +void OSSL_OBJECT_DIGEST_INFO_get0_digest(const OSSL_OBJECT_DIGEST_INFO *o, + int *digestedObjectType, + const X509_ALGOR **digestAlgorithm, + const ASN1_BIT_STRING **digest); + +int OSSL_OBJECT_DIGEST_INFO_set1_digest(OSSL_OBJECT_DIGEST_INFO *o, + int digestedObjectType, + X509_ALGOR *digestAlgorithm, + ASN1_BIT_STRING *digest); + +const X509_NAME *OSSL_ISSUER_SERIAL_get0_issuer(const OSSL_ISSUER_SERIAL *isss); +const ASN1_INTEGER *OSSL_ISSUER_SERIAL_get0_serial(const OSSL_ISSUER_SERIAL *isss); +const ASN1_BIT_STRING *OSSL_ISSUER_SERIAL_get0_issuerUID(const OSSL_ISSUER_SERIAL *isss); + +int OSSL_ISSUER_SERIAL_set1_issuer(OSSL_ISSUER_SERIAL *isss, + const X509_NAME *issuer); +int OSSL_ISSUER_SERIAL_set1_serial(OSSL_ISSUER_SERIAL *isss, + const ASN1_INTEGER *serial); +int OSSL_ISSUER_SERIAL_set1_issuerUID(OSSL_ISSUER_SERIAL *isss, + const ASN1_BIT_STRING *uid); + +# define OSSL_IETFAS_OCTETS 0 +# define OSSL_IETFAS_OID 1 +# define OSSL_IETFAS_STRING 2 + +typedef struct OSSL_IETF_ATTR_SYNTAX_VALUE_st OSSL_IETF_ATTR_SYNTAX_VALUE; +typedef struct OSSL_IETF_ATTR_SYNTAX_st OSSL_IETF_ATTR_SYNTAX; +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_IETF_ATTR_SYNTAX_VALUE, OSSL_IETF_ATTR_SYNTAX_VALUE, OSSL_IETF_ATTR_SYNTAX_VALUE) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_value(sk, idx) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_value(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), (idx))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_new(cmp) ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_new(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_compfunc_type(cmp))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_new_null() ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_new_null()) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_new_reserve(cmp, n) ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_compfunc_type(cmp), (n))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), (n)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_free(sk) OPENSSL_sk_free(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_delete(sk, i) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_delete(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), (i))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_delete_ptr(sk, ptr) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_pop(sk) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_pop(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_shift(sk) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_shift(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk),ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_freefunc_type(freefunc)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr), (idx)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_set(sk, idx, ptr) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_set(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), (idx), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr), pnum) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_dup(sk) ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_dup(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_copyfunc_type(copyfunc), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_freefunc_type(freefunc))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_set_cmp_func(sk, cmp) ((sk_OSSL_IETF_ATTR_SYNTAX_VALUE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_compfunc_type(cmp))) + + +DECLARE_ASN1_ITEM(OSSL_IETF_ATTR_SYNTAX_VALUE) +DECLARE_ASN1_ALLOC_FUNCTIONS(OSSL_IETF_ATTR_SYNTAX_VALUE) +DECLARE_ASN1_FUNCTIONS(OSSL_IETF_ATTR_SYNTAX) + +const GENERAL_NAMES * +OSSL_IETF_ATTR_SYNTAX_get0_policyAuthority(const OSSL_IETF_ATTR_SYNTAX *a); +void OSSL_IETF_ATTR_SYNTAX_set0_policyAuthority(OSSL_IETF_ATTR_SYNTAX *a, + GENERAL_NAMES *names); + +int OSSL_IETF_ATTR_SYNTAX_get_value_num(const OSSL_IETF_ATTR_SYNTAX *a); +void *OSSL_IETF_ATTR_SYNTAX_get0_value(const OSSL_IETF_ATTR_SYNTAX *a, + int ind, int *type); +int OSSL_IETF_ATTR_SYNTAX_add1_value(OSSL_IETF_ATTR_SYNTAX *a, int type, + void *data); +int OSSL_IETF_ATTR_SYNTAX_print(BIO *bp, OSSL_IETF_ATTR_SYNTAX *a, int indent); + +struct TARGET_CERT_st { + OSSL_ISSUER_SERIAL *targetCertificate; + GENERAL_NAME *targetName; + OSSL_OBJECT_DIGEST_INFO *certDigestInfo; +}; + +typedef struct TARGET_CERT_st OSSL_TARGET_CERT; + +# define OSSL_TGT_TARGET_NAME 0 +# define OSSL_TGT_TARGET_GROUP 1 +# define OSSL_TGT_TARGET_CERT 2 + +typedef struct TARGET_st { + int type; + union { + GENERAL_NAME *targetName; + GENERAL_NAME *targetGroup; + OSSL_TARGET_CERT *targetCert; + } choice; +} OSSL_TARGET; + +typedef STACK_OF(OSSL_TARGET) OSSL_TARGETS; +typedef STACK_OF(OSSL_TARGETS) OSSL_TARGETING_INFORMATION; + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_TARGET, OSSL_TARGET, OSSL_TARGET) +#define sk_OSSL_TARGET_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_value(sk, idx) ((OSSL_TARGET *)OPENSSL_sk_value(ossl_check_const_OSSL_TARGET_sk_type(sk), (idx))) +#define sk_OSSL_TARGET_new(cmp) ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_new(ossl_check_OSSL_TARGET_compfunc_type(cmp))) +#define sk_OSSL_TARGET_new_null() ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_new_null()) +#define sk_OSSL_TARGET_new_reserve(cmp, n) ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_TARGET_compfunc_type(cmp), (n))) +#define sk_OSSL_TARGET_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_TARGET_sk_type(sk), (n)) +#define sk_OSSL_TARGET_free(sk) OPENSSL_sk_free(ossl_check_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_delete(sk, i) ((OSSL_TARGET *)OPENSSL_sk_delete(ossl_check_OSSL_TARGET_sk_type(sk), (i))) +#define sk_OSSL_TARGET_delete_ptr(sk, ptr) ((OSSL_TARGET *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr))) +#define sk_OSSL_TARGET_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr)) +#define sk_OSSL_TARGET_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr)) +#define sk_OSSL_TARGET_pop(sk) ((OSSL_TARGET *)OPENSSL_sk_pop(ossl_check_OSSL_TARGET_sk_type(sk))) +#define sk_OSSL_TARGET_shift(sk) ((OSSL_TARGET *)OPENSSL_sk_shift(ossl_check_OSSL_TARGET_sk_type(sk))) +#define sk_OSSL_TARGET_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_TARGET_sk_type(sk),ossl_check_OSSL_TARGET_freefunc_type(freefunc)) +#define sk_OSSL_TARGET_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr), (idx)) +#define sk_OSSL_TARGET_set(sk, idx, ptr) ((OSSL_TARGET *)OPENSSL_sk_set(ossl_check_OSSL_TARGET_sk_type(sk), (idx), ossl_check_OSSL_TARGET_type(ptr))) +#define sk_OSSL_TARGET_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr)) +#define sk_OSSL_TARGET_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr)) +#define sk_OSSL_TARGET_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr), pnum) +#define sk_OSSL_TARGET_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_dup(sk) ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_dup(ossl_check_const_OSSL_TARGET_sk_type(sk))) +#define sk_OSSL_TARGET_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_copyfunc_type(copyfunc), ossl_check_OSSL_TARGET_freefunc_type(freefunc))) +#define sk_OSSL_TARGET_set_cmp_func(sk, cmp) ((sk_OSSL_TARGET_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_compfunc_type(cmp))) + + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_TARGETS, OSSL_TARGETS, OSSL_TARGETS) +#define sk_OSSL_TARGETS_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_value(sk, idx) ((OSSL_TARGETS *)OPENSSL_sk_value(ossl_check_const_OSSL_TARGETS_sk_type(sk), (idx))) +#define sk_OSSL_TARGETS_new(cmp) ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_new(ossl_check_OSSL_TARGETS_compfunc_type(cmp))) +#define sk_OSSL_TARGETS_new_null() ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_new_null()) +#define sk_OSSL_TARGETS_new_reserve(cmp, n) ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_TARGETS_compfunc_type(cmp), (n))) +#define sk_OSSL_TARGETS_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_TARGETS_sk_type(sk), (n)) +#define sk_OSSL_TARGETS_free(sk) OPENSSL_sk_free(ossl_check_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_delete(sk, i) ((OSSL_TARGETS *)OPENSSL_sk_delete(ossl_check_OSSL_TARGETS_sk_type(sk), (i))) +#define sk_OSSL_TARGETS_delete_ptr(sk, ptr) ((OSSL_TARGETS *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr))) +#define sk_OSSL_TARGETS_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr)) +#define sk_OSSL_TARGETS_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr)) +#define sk_OSSL_TARGETS_pop(sk) ((OSSL_TARGETS *)OPENSSL_sk_pop(ossl_check_OSSL_TARGETS_sk_type(sk))) +#define sk_OSSL_TARGETS_shift(sk) ((OSSL_TARGETS *)OPENSSL_sk_shift(ossl_check_OSSL_TARGETS_sk_type(sk))) +#define sk_OSSL_TARGETS_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_TARGETS_sk_type(sk),ossl_check_OSSL_TARGETS_freefunc_type(freefunc)) +#define sk_OSSL_TARGETS_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr), (idx)) +#define sk_OSSL_TARGETS_set(sk, idx, ptr) ((OSSL_TARGETS *)OPENSSL_sk_set(ossl_check_OSSL_TARGETS_sk_type(sk), (idx), ossl_check_OSSL_TARGETS_type(ptr))) +#define sk_OSSL_TARGETS_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr)) +#define sk_OSSL_TARGETS_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr)) +#define sk_OSSL_TARGETS_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr), pnum) +#define sk_OSSL_TARGETS_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_dup(sk) ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_dup(ossl_check_const_OSSL_TARGETS_sk_type(sk))) +#define sk_OSSL_TARGETS_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_copyfunc_type(copyfunc), ossl_check_OSSL_TARGETS_freefunc_type(freefunc))) +#define sk_OSSL_TARGETS_set_cmp_func(sk, cmp) ((sk_OSSL_TARGETS_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_compfunc_type(cmp))) + + +DECLARE_ASN1_FUNCTIONS(OSSL_TARGET) +DECLARE_ASN1_FUNCTIONS(OSSL_TARGETS) +DECLARE_ASN1_FUNCTIONS(OSSL_TARGETING_INFORMATION) + +typedef STACK_OF(OSSL_ISSUER_SERIAL) OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX; +DECLARE_ASN1_FUNCTIONS(OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ISSUER_SERIAL, OSSL_ISSUER_SERIAL, OSSL_ISSUER_SERIAL) +#define sk_OSSL_ISSUER_SERIAL_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_value(sk, idx) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_value(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk), (idx))) +#define sk_OSSL_ISSUER_SERIAL_new(cmp) ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_new(ossl_check_OSSL_ISSUER_SERIAL_compfunc_type(cmp))) +#define sk_OSSL_ISSUER_SERIAL_new_null() ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ISSUER_SERIAL_new_reserve(cmp, n) ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ISSUER_SERIAL_compfunc_type(cmp), (n))) +#define sk_OSSL_ISSUER_SERIAL_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), (n)) +#define sk_OSSL_ISSUER_SERIAL_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_delete(sk, i) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_delete(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), (i))) +#define sk_OSSL_ISSUER_SERIAL_delete_ptr(sk, ptr) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr))) +#define sk_OSSL_ISSUER_SERIAL_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr)) +#define sk_OSSL_ISSUER_SERIAL_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr)) +#define sk_OSSL_ISSUER_SERIAL_pop(sk) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_pop(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk))) +#define sk_OSSL_ISSUER_SERIAL_shift(sk) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_shift(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk))) +#define sk_OSSL_ISSUER_SERIAL_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk),ossl_check_OSSL_ISSUER_SERIAL_freefunc_type(freefunc)) +#define sk_OSSL_ISSUER_SERIAL_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr), (idx)) +#define sk_OSSL_ISSUER_SERIAL_set(sk, idx, ptr) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_set(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), (idx), ossl_check_OSSL_ISSUER_SERIAL_type(ptr))) +#define sk_OSSL_ISSUER_SERIAL_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr)) +#define sk_OSSL_ISSUER_SERIAL_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr)) +#define sk_OSSL_ISSUER_SERIAL_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr), pnum) +#define sk_OSSL_ISSUER_SERIAL_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_dup(sk) ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk))) +#define sk_OSSL_ISSUER_SERIAL_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_copyfunc_type(copyfunc), ossl_check_OSSL_ISSUER_SERIAL_freefunc_type(freefunc))) +#define sk_OSSL_ISSUER_SERIAL_set_cmp_func(sk, cmp) ((sk_OSSL_ISSUER_SERIAL_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_compfunc_type(cmp))) + + +#endif diff --git a/deps/openssl/config/archs/VC-WIN32/asm_avx2/include/openssl/x509_vfy.h b/deps/openssl/config/archs/VC-WIN32/asm_avx2/include/openssl/x509_vfy.h index f571187265cfc9..f08a134b17b7db 100644 --- a/deps/openssl/config/archs/VC-WIN32/asm_avx2/include/openssl/x509_vfy.h +++ b/deps/openssl/config/archs/VC-WIN32/asm_avx2/include/openssl/x509_vfy.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by makefile from include/openssl/x509_vfy.h.in * - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -411,6 +411,7 @@ X509_LOOKUP_ctrl_ex((x), X509_L_ADD_STORE, (name), 0, NULL, \ # define X509_V_ERR_CA_CERT_MISSING_KEY_USAGE 92 # define X509_V_ERR_EXTENSIONS_REQUIRE_VERSION_3 93 # define X509_V_ERR_EC_KEY_EXPLICIT_PARAMS 94 +# define X509_V_ERR_RPK_UNTRUSTED 95 /* Certificate verify flags */ # ifndef OPENSSL_NO_DEPRECATED_1_1_0 @@ -491,71 +492,72 @@ int X509_OBJECT_set1_X509(X509_OBJECT *a, X509 *obj); X509_CRL *X509_OBJECT_get0_X509_CRL(const X509_OBJECT *a); int X509_OBJECT_set1_X509_CRL(X509_OBJECT *a, X509_CRL *obj); X509_STORE *X509_STORE_new(void); -void X509_STORE_free(X509_STORE *v); -int X509_STORE_lock(X509_STORE *ctx); -int X509_STORE_unlock(X509_STORE *ctx); -int X509_STORE_up_ref(X509_STORE *v); -STACK_OF(X509_OBJECT) *X509_STORE_get0_objects(const X509_STORE *v); -STACK_OF(X509) *X509_STORE_get1_all_certs(X509_STORE *st); -STACK_OF(X509) *X509_STORE_CTX_get1_certs(X509_STORE_CTX *st, +void X509_STORE_free(X509_STORE *xs); +int X509_STORE_lock(X509_STORE *xs); +int X509_STORE_unlock(X509_STORE *xs); +int X509_STORE_up_ref(X509_STORE *xs); +STACK_OF(X509_OBJECT) *X509_STORE_get0_objects(const X509_STORE *xs); +STACK_OF(X509_OBJECT) *X509_STORE_get1_objects(X509_STORE *xs); +STACK_OF(X509) *X509_STORE_get1_all_certs(X509_STORE *xs); +STACK_OF(X509) *X509_STORE_CTX_get1_certs(X509_STORE_CTX *xs, const X509_NAME *nm); STACK_OF(X509_CRL) *X509_STORE_CTX_get1_crls(const X509_STORE_CTX *st, const X509_NAME *nm); -int X509_STORE_set_flags(X509_STORE *ctx, unsigned long flags); -int X509_STORE_set_purpose(X509_STORE *ctx, int purpose); -int X509_STORE_set_trust(X509_STORE *ctx, int trust); -int X509_STORE_set1_param(X509_STORE *ctx, const X509_VERIFY_PARAM *pm); -X509_VERIFY_PARAM *X509_STORE_get0_param(const X509_STORE *ctx); +int X509_STORE_set_flags(X509_STORE *xs, unsigned long flags); +int X509_STORE_set_purpose(X509_STORE *xs, int purpose); +int X509_STORE_set_trust(X509_STORE *xs, int trust); +int X509_STORE_set1_param(X509_STORE *xs, const X509_VERIFY_PARAM *pm); +X509_VERIFY_PARAM *X509_STORE_get0_param(const X509_STORE *xs); -void X509_STORE_set_verify(X509_STORE *ctx, X509_STORE_CTX_verify_fn verify); +void X509_STORE_set_verify(X509_STORE *xs, X509_STORE_CTX_verify_fn verify); #define X509_STORE_set_verify_func(ctx, func) \ X509_STORE_set_verify((ctx),(func)) void X509_STORE_CTX_set_verify(X509_STORE_CTX *ctx, X509_STORE_CTX_verify_fn verify); -X509_STORE_CTX_verify_fn X509_STORE_get_verify(const X509_STORE *ctx); -void X509_STORE_set_verify_cb(X509_STORE *ctx, +X509_STORE_CTX_verify_fn X509_STORE_get_verify(const X509_STORE *xs); +void X509_STORE_set_verify_cb(X509_STORE *xs, X509_STORE_CTX_verify_cb verify_cb); # define X509_STORE_set_verify_cb_func(ctx,func) \ X509_STORE_set_verify_cb((ctx),(func)) -X509_STORE_CTX_verify_cb X509_STORE_get_verify_cb(const X509_STORE *ctx); -void X509_STORE_set_get_issuer(X509_STORE *ctx, +X509_STORE_CTX_verify_cb X509_STORE_get_verify_cb(const X509_STORE *xs); +void X509_STORE_set_get_issuer(X509_STORE *xs, X509_STORE_CTX_get_issuer_fn get_issuer); -X509_STORE_CTX_get_issuer_fn X509_STORE_get_get_issuer(const X509_STORE *ctx); -void X509_STORE_set_check_issued(X509_STORE *ctx, +X509_STORE_CTX_get_issuer_fn X509_STORE_get_get_issuer(const X509_STORE *xs); +void X509_STORE_set_check_issued(X509_STORE *xs, X509_STORE_CTX_check_issued_fn check_issued); -X509_STORE_CTX_check_issued_fn X509_STORE_get_check_issued(const X509_STORE *ctx); -void X509_STORE_set_check_revocation(X509_STORE *ctx, +X509_STORE_CTX_check_issued_fn X509_STORE_get_check_issued(const X509_STORE *s); +void X509_STORE_set_check_revocation(X509_STORE *xs, X509_STORE_CTX_check_revocation_fn check_revocation); X509_STORE_CTX_check_revocation_fn - X509_STORE_get_check_revocation(const X509_STORE *ctx); -void X509_STORE_set_get_crl(X509_STORE *ctx, + X509_STORE_get_check_revocation(const X509_STORE *xs); +void X509_STORE_set_get_crl(X509_STORE *xs, X509_STORE_CTX_get_crl_fn get_crl); -X509_STORE_CTX_get_crl_fn X509_STORE_get_get_crl(const X509_STORE *ctx); -void X509_STORE_set_check_crl(X509_STORE *ctx, +X509_STORE_CTX_get_crl_fn X509_STORE_get_get_crl(const X509_STORE *xs); +void X509_STORE_set_check_crl(X509_STORE *xs, X509_STORE_CTX_check_crl_fn check_crl); -X509_STORE_CTX_check_crl_fn X509_STORE_get_check_crl(const X509_STORE *ctx); -void X509_STORE_set_cert_crl(X509_STORE *ctx, +X509_STORE_CTX_check_crl_fn X509_STORE_get_check_crl(const X509_STORE *xs); +void X509_STORE_set_cert_crl(X509_STORE *xs, X509_STORE_CTX_cert_crl_fn cert_crl); -X509_STORE_CTX_cert_crl_fn X509_STORE_get_cert_crl(const X509_STORE *ctx); -void X509_STORE_set_check_policy(X509_STORE *ctx, +X509_STORE_CTX_cert_crl_fn X509_STORE_get_cert_crl(const X509_STORE *xs); +void X509_STORE_set_check_policy(X509_STORE *xs, X509_STORE_CTX_check_policy_fn check_policy); -X509_STORE_CTX_check_policy_fn X509_STORE_get_check_policy(const X509_STORE *ctx); -void X509_STORE_set_lookup_certs(X509_STORE *ctx, +X509_STORE_CTX_check_policy_fn X509_STORE_get_check_policy(const X509_STORE *s); +void X509_STORE_set_lookup_certs(X509_STORE *xs, X509_STORE_CTX_lookup_certs_fn lookup_certs); -X509_STORE_CTX_lookup_certs_fn X509_STORE_get_lookup_certs(const X509_STORE *ctx); -void X509_STORE_set_lookup_crls(X509_STORE *ctx, +X509_STORE_CTX_lookup_certs_fn X509_STORE_get_lookup_certs(const X509_STORE *s); +void X509_STORE_set_lookup_crls(X509_STORE *xs, X509_STORE_CTX_lookup_crls_fn lookup_crls); #define X509_STORE_set_lookup_crls_cb(ctx, func) \ X509_STORE_set_lookup_crls((ctx), (func)) -X509_STORE_CTX_lookup_crls_fn X509_STORE_get_lookup_crls(const X509_STORE *ctx); -void X509_STORE_set_cleanup(X509_STORE *ctx, +X509_STORE_CTX_lookup_crls_fn X509_STORE_get_lookup_crls(const X509_STORE *xs); +void X509_STORE_set_cleanup(X509_STORE *xs, X509_STORE_CTX_cleanup_fn cleanup); -X509_STORE_CTX_cleanup_fn X509_STORE_get_cleanup(const X509_STORE *ctx); +X509_STORE_CTX_cleanup_fn X509_STORE_get_cleanup(const X509_STORE *xs); #define X509_STORE_get_ex_new_index(l, p, newf, dupf, freef) \ CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_X509_STORE, l, p, newf, dupf, freef) -int X509_STORE_set_ex_data(X509_STORE *ctx, int idx, void *data); -void *X509_STORE_get_ex_data(const X509_STORE *ctx, int idx); +int X509_STORE_set_ex_data(X509_STORE *xs, int idx, void *data); +void *X509_STORE_get_ex_data(const X509_STORE *xs, int idx); X509_STORE_CTX *X509_STORE_CTX_new_ex(OSSL_LIB_CTX *libctx, const char *propq); X509_STORE_CTX *X509_STORE_CTX_new(void); @@ -565,11 +567,14 @@ int X509_STORE_CTX_get1_issuer(X509 **issuer, X509_STORE_CTX *ctx, X509 *x); void X509_STORE_CTX_free(X509_STORE_CTX *ctx); int X509_STORE_CTX_init(X509_STORE_CTX *ctx, X509_STORE *trust_store, X509 *target, STACK_OF(X509) *untrusted); +int X509_STORE_CTX_init_rpk(X509_STORE_CTX *ctx, X509_STORE *trust_store, + EVP_PKEY* rpk); void X509_STORE_CTX_set0_trusted_stack(X509_STORE_CTX *ctx, STACK_OF(X509) *sk); void X509_STORE_CTX_cleanup(X509_STORE_CTX *ctx); X509_STORE *X509_STORE_CTX_get0_store(const X509_STORE_CTX *ctx); X509 *X509_STORE_CTX_get0_cert(const X509_STORE_CTX *ctx); +EVP_PKEY *X509_STORE_CTX_get0_rpk(const X509_STORE_CTX *ctx); STACK_OF(X509)* X509_STORE_CTX_get0_untrusted(const X509_STORE_CTX *ctx); void X509_STORE_CTX_set0_untrusted(X509_STORE_CTX *ctx, STACK_OF(X509) *sk); void X509_STORE_CTX_set_verify_cb(X509_STORE_CTX *ctx, @@ -579,6 +584,8 @@ X509_STORE_CTX_verify_fn X509_STORE_CTX_get_verify(const X509_STORE_CTX *ctx); X509_STORE_CTX_get_issuer_fn X509_STORE_CTX_get_get_issuer(const X509_STORE_CTX *ctx); X509_STORE_CTX_check_issued_fn X509_STORE_CTX_get_check_issued(const X509_STORE_CTX *ctx); X509_STORE_CTX_check_revocation_fn X509_STORE_CTX_get_check_revocation(const X509_STORE_CTX *ctx); +void X509_STORE_CTX_set_get_crl(X509_STORE_CTX *ctx, + X509_STORE_CTX_get_crl_fn get_crl); X509_STORE_CTX_get_crl_fn X509_STORE_CTX_get_get_crl(const X509_STORE_CTX *ctx); X509_STORE_CTX_check_crl_fn X509_STORE_CTX_get_check_crl(const X509_STORE_CTX *ctx); X509_STORE_CTX_cert_crl_fn X509_STORE_CTX_get_cert_crl(const X509_STORE_CTX *ctx); @@ -600,7 +607,7 @@ X509_STORE_CTX_cleanup_fn X509_STORE_CTX_get_cleanup(const X509_STORE_CTX *ctx); # define X509_STORE_get1_crl X509_STORE_CTX_get1_crls #endif -X509_LOOKUP *X509_STORE_add_lookup(X509_STORE *v, X509_LOOKUP_METHOD *m); +X509_LOOKUP *X509_STORE_add_lookup(X509_STORE *xs, X509_LOOKUP_METHOD *m); X509_LOOKUP_METHOD *X509_LOOKUP_hash_dir(void); X509_LOOKUP_METHOD *X509_LOOKUP_file(void); X509_LOOKUP_METHOD *X509_LOOKUP_store(void); @@ -685,8 +692,8 @@ X509_LOOKUP_get_by_alias_fn X509_LOOKUP_meth_get_get_by_alias( const X509_LOOKUP_METHOD *method); -int X509_STORE_add_cert(X509_STORE *ctx, X509 *x); -int X509_STORE_add_crl(X509_STORE *ctx, X509_CRL *x); +int X509_STORE_add_cert(X509_STORE *xs, X509 *x); +int X509_STORE_add_crl(X509_STORE *xs, X509_CRL *x); int X509_STORE_CTX_get_by_subject(const X509_STORE_CTX *vs, X509_LOOKUP_TYPE type, @@ -730,23 +737,21 @@ void *X509_LOOKUP_get_method_data(const X509_LOOKUP *ctx); X509_STORE *X509_LOOKUP_get_store(const X509_LOOKUP *ctx); int X509_LOOKUP_shutdown(X509_LOOKUP *ctx); -int X509_STORE_load_file(X509_STORE *ctx, const char *file); -int X509_STORE_load_path(X509_STORE *ctx, const char *path); -int X509_STORE_load_store(X509_STORE *ctx, const char *store); -int X509_STORE_load_locations(X509_STORE *ctx, - const char *file, - const char *dir); -int X509_STORE_set_default_paths(X509_STORE *ctx); +int X509_STORE_load_file(X509_STORE *xs, const char *file); +int X509_STORE_load_path(X509_STORE *xs, const char *path); +int X509_STORE_load_store(X509_STORE *xs, const char *store); +int X509_STORE_load_locations(X509_STORE *s, const char *file, const char *dir); +int X509_STORE_set_default_paths(X509_STORE *xs); -int X509_STORE_load_file_ex(X509_STORE *ctx, const char *file, +int X509_STORE_load_file_ex(X509_STORE *xs, const char *file, OSSL_LIB_CTX *libctx, const char *propq); -int X509_STORE_load_store_ex(X509_STORE *ctx, const char *store, +int X509_STORE_load_store_ex(X509_STORE *xs, const char *store, OSSL_LIB_CTX *libctx, const char *propq); -int X509_STORE_load_locations_ex(X509_STORE *ctx, const char *file, - const char *dir, OSSL_LIB_CTX *libctx, - const char *propq); -int X509_STORE_set_default_paths_ex(X509_STORE *ctx, OSSL_LIB_CTX *libctx, - const char *propq); +int X509_STORE_load_locations_ex(X509_STORE *xs, + const char *file, const char *dir, + OSSL_LIB_CTX *libctx, const char *propq); +int X509_STORE_set_default_paths_ex(X509_STORE *xs, + OSSL_LIB_CTX *libctx, const char *propq); #define X509_STORE_CTX_get_ex_new_index(l, p, newf, dupf, freef) \ CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_X509_STORE_CTX, l, p, newf, dupf, freef) @@ -764,6 +769,7 @@ X509_STORE_CTX *X509_STORE_CTX_get0_parent_ctx(const X509_STORE_CTX *ctx); STACK_OF(X509) *X509_STORE_CTX_get0_chain(const X509_STORE_CTX *ctx); STACK_OF(X509) *X509_STORE_CTX_get1_chain(const X509_STORE_CTX *ctx); void X509_STORE_CTX_set_cert(X509_STORE_CTX *ctx, X509 *target); +void X509_STORE_CTX_set0_rpk(X509_STORE_CTX *ctx, EVP_PKEY *target); void X509_STORE_CTX_set0_verified_chain(X509_STORE_CTX *c, STACK_OF(X509) *sk); void X509_STORE_CTX_set0_crls(X509_STORE_CTX *ctx, STACK_OF(X509_CRL) *sk); int X509_STORE_CTX_set_purpose(X509_STORE_CTX *ctx, int purpose); @@ -773,6 +779,8 @@ int X509_STORE_CTX_purpose_inherit(X509_STORE_CTX *ctx, int def_purpose, void X509_STORE_CTX_set_flags(X509_STORE_CTX *ctx, unsigned long flags); void X509_STORE_CTX_set_time(X509_STORE_CTX *ctx, unsigned long flags, time_t t); +void X509_STORE_CTX_set_current_reasons(X509_STORE_CTX *ctx, + unsigned int current_reasons); X509_POLICY_TREE *X509_STORE_CTX_get0_policy_tree(const X509_STORE_CTX *ctx); int X509_STORE_CTX_get_explicit_policy(const X509_STORE_CTX *ctx); @@ -804,6 +812,7 @@ int X509_VERIFY_PARAM_clear_flags(X509_VERIFY_PARAM *param, unsigned long flags); unsigned long X509_VERIFY_PARAM_get_flags(const X509_VERIFY_PARAM *param); int X509_VERIFY_PARAM_set_purpose(X509_VERIFY_PARAM *param, int purpose); +int X509_VERIFY_PARAM_get_purpose(const X509_VERIFY_PARAM *param); int X509_VERIFY_PARAM_set_trust(X509_VERIFY_PARAM *param, int trust); void X509_VERIFY_PARAM_set_depth(X509_VERIFY_PARAM *param, int depth); void X509_VERIFY_PARAM_set_auth_level(X509_VERIFY_PARAM *param, int auth_level); diff --git a/deps/openssl/config/archs/VC-WIN32/asm_avx2/include/openssl/x509v3.h b/deps/openssl/config/archs/VC-WIN32/asm_avx2/include/openssl/x509v3.h index ed08a546f9813d..362ce3fb4387f7 100644 --- a/deps/openssl/config/archs/VC-WIN32/asm_avx2/include/openssl/x509v3.h +++ b/deps/openssl/config/archs/VC-WIN32/asm_avx2/include/openssl/x509v3.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by makefile from include/openssl/x509v3.h.in * - * Copyright 1999-2023 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1999-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -25,6 +25,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -146,6 +149,11 @@ typedef struct BASIC_CONSTRAINTS_st { ASN1_INTEGER *pathlen; } BASIC_CONSTRAINTS; +typedef struct OSSL_BASIC_ATTR_CONSTRAINTS_st { + int authority; + ASN1_INTEGER *pathlen; +} OSSL_BASIC_ATTR_CONSTRAINTS; + typedef struct PKEY_USAGE_PERIOD_st { ASN1_GENERALIZEDTIME *notBefore; ASN1_GENERALIZEDTIME *notAfter; @@ -198,6 +206,8 @@ typedef struct ACCESS_DESCRIPTION_st { GENERAL_NAME *location; } ACCESS_DESCRIPTION; +int GENERAL_NAME_set1_X509_NAME(GENERAL_NAME **tgt, const X509_NAME *src); + SKM_DEFINE_STACK_OF_INTERNAL(ACCESS_DESCRIPTION, ACCESS_DESCRIPTION, ACCESS_DESCRIPTION) #define sk_ACCESS_DESCRIPTION_num(sk) OPENSSL_sk_num(ossl_check_const_ACCESS_DESCRIPTION_sk_type(sk)) #define sk_ACCESS_DESCRIPTION_value(sk, idx) ((ACCESS_DESCRIPTION *)OPENSSL_sk_value(ossl_check_const_ACCESS_DESCRIPTION_sk_type(sk), (idx))) @@ -294,6 +304,7 @@ typedef struct DIST_POINT_NAME_st { /* If relativename then this contains the full distribution point name */ X509_NAME *dpname; } DIST_POINT_NAME; +DECLARE_ASN1_DUP_FUNCTION(DIST_POINT_NAME) /* All existing reasons */ # define CRLDP_ALL_REASONS 0x807f @@ -659,15 +670,16 @@ struct ISSUING_DIST_POINT_st { # define EXFLAG_SAN_CRITICAL 0x80000 # define EXFLAG_NO_FINGERPRINT 0x100000 -# define KU_DIGITAL_SIGNATURE 0x0080 -# define KU_NON_REPUDIATION 0x0040 -# define KU_KEY_ENCIPHERMENT 0x0020 -# define KU_DATA_ENCIPHERMENT 0x0010 -# define KU_KEY_AGREEMENT 0x0008 -# define KU_KEY_CERT_SIGN 0x0004 -# define KU_CRL_SIGN 0x0002 -# define KU_ENCIPHER_ONLY 0x0001 -# define KU_DECIPHER_ONLY 0x8000 +/* https://datatracker.ietf.org/doc/html/rfc5280#section-4.2.1.3 */ +# define KU_DIGITAL_SIGNATURE X509v3_KU_DIGITAL_SIGNATURE +# define KU_NON_REPUDIATION X509v3_KU_NON_REPUDIATION +# define KU_KEY_ENCIPHERMENT X509v3_KU_KEY_ENCIPHERMENT +# define KU_DATA_ENCIPHERMENT X509v3_KU_DATA_ENCIPHERMENT +# define KU_KEY_AGREEMENT X509v3_KU_KEY_AGREEMENT +# define KU_KEY_CERT_SIGN X509v3_KU_KEY_CERT_SIGN +# define KU_CRL_SIGN X509v3_KU_CRL_SIGN +# define KU_ENCIPHER_ONLY X509v3_KU_ENCIPHER_ONLY +# define KU_DECIPHER_ONLY X509v3_KU_DECIPHER_ONLY # define NS_SSL_CLIENT 0x80 # define NS_SSL_SERVER 0x40 @@ -729,7 +741,7 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_PURPOSE, X509_PURPOSE, X509_PURPOSE) #define sk_X509_PURPOSE_set_cmp_func(sk, cmp) ((sk_X509_PURPOSE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_X509_PURPOSE_sk_type(sk), ossl_check_X509_PURPOSE_compfunc_type(cmp))) - +# define X509_PURPOSE_DEFAULT_ANY 0 # define X509_PURPOSE_SSL_CLIENT 1 # define X509_PURPOSE_SSL_SERVER 2 # define X509_PURPOSE_NS_SSL_SERVER 3 @@ -739,9 +751,10 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_PURPOSE, X509_PURPOSE, X509_PURPOSE) # define X509_PURPOSE_ANY 7 # define X509_PURPOSE_OCSP_HELPER 8 # define X509_PURPOSE_TIMESTAMP_SIGN 9 +# define X509_PURPOSE_CODE_SIGN 10 # define X509_PURPOSE_MIN 1 -# define X509_PURPOSE_MAX 9 +# define X509_PURPOSE_MAX 10 /* Flags for X509V3_EXT_print() */ @@ -767,6 +780,7 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_PURPOSE, X509_PURPOSE, X509_PURPOSE) # define X509V3_ADD_SILENT 0x10 DECLARE_ASN1_FUNCTIONS(BASIC_CONSTRAINTS) +DECLARE_ASN1_FUNCTIONS(OSSL_BASIC_ATTR_CONSTRAINTS) DECLARE_ASN1_FUNCTIONS(SXNET) DECLARE_ASN1_FUNCTIONS(SXNETID) @@ -976,7 +990,6 @@ int X509V3_extensions_print(BIO *out, const char *title, int X509_check_ca(X509 *x); int X509_check_purpose(X509 *x, int id, int ca); int X509_supported_extension(X509_EXTENSION *ex); -int X509_PURPOSE_set(int *p, int purpose); int X509_check_issued(X509 *issuer, X509 *subject); int X509_check_akid(const X509 *issuer, const AUTHORITY_KEYID *akid); void X509_set_proxy_flag(X509 *x); @@ -992,22 +1005,26 @@ const GENERAL_NAMES *X509_get0_authority_issuer(X509 *x); const ASN1_INTEGER *X509_get0_authority_serial(X509 *x); int X509_PURPOSE_get_count(void); -X509_PURPOSE *X509_PURPOSE_get0(int idx); +int X509_PURPOSE_get_unused_id(OSSL_LIB_CTX *libctx); int X509_PURPOSE_get_by_sname(const char *sname); int X509_PURPOSE_get_by_id(int id); int X509_PURPOSE_add(int id, int trust, int flags, int (*ck) (const X509_PURPOSE *, const X509 *, int), const char *name, const char *sname, void *arg); +void X509_PURPOSE_cleanup(void); + +X509_PURPOSE *X509_PURPOSE_get0(int idx); +int X509_PURPOSE_get_id(const X509_PURPOSE *); char *X509_PURPOSE_get0_name(const X509_PURPOSE *xp); char *X509_PURPOSE_get0_sname(const X509_PURPOSE *xp); int X509_PURPOSE_get_trust(const X509_PURPOSE *xp); -void X509_PURPOSE_cleanup(void); -int X509_PURPOSE_get_id(const X509_PURPOSE *); +int X509_PURPOSE_set(int *p, int purpose); STACK_OF(OPENSSL_STRING) *X509_get1_email(X509 *x); STACK_OF(OPENSSL_STRING) *X509_REQ_get1_email(X509_REQ *x); void X509_email_free(STACK_OF(OPENSSL_STRING) *sk); STACK_OF(OPENSSL_STRING) *X509_get1_ocsp(X509 *x); + /* Flags for X509_check_* functions */ /* @@ -1444,6 +1461,507 @@ const ASN1_PRINTABLESTRING *PROFESSION_INFO_get0_registrationNumber( void PROFESSION_INFO_set0_registrationNumber( PROFESSION_INFO *pi, ASN1_PRINTABLESTRING *rn); +int OSSL_GENERAL_NAMES_print(BIO *out, GENERAL_NAMES *gens, int indent); + +typedef STACK_OF(X509_ATTRIBUTE) OSSL_ATTRIBUTES_SYNTAX; +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTES_SYNTAX) + +typedef STACK_OF(USERNOTICE) OSSL_USER_NOTICE_SYNTAX; +DECLARE_ASN1_FUNCTIONS(OSSL_USER_NOTICE_SYNTAX) + +SKM_DEFINE_STACK_OF_INTERNAL(USERNOTICE, USERNOTICE, USERNOTICE) +#define sk_USERNOTICE_num(sk) OPENSSL_sk_num(ossl_check_const_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_value(sk, idx) ((USERNOTICE *)OPENSSL_sk_value(ossl_check_const_USERNOTICE_sk_type(sk), (idx))) +#define sk_USERNOTICE_new(cmp) ((STACK_OF(USERNOTICE) *)OPENSSL_sk_new(ossl_check_USERNOTICE_compfunc_type(cmp))) +#define sk_USERNOTICE_new_null() ((STACK_OF(USERNOTICE) *)OPENSSL_sk_new_null()) +#define sk_USERNOTICE_new_reserve(cmp, n) ((STACK_OF(USERNOTICE) *)OPENSSL_sk_new_reserve(ossl_check_USERNOTICE_compfunc_type(cmp), (n))) +#define sk_USERNOTICE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_USERNOTICE_sk_type(sk), (n)) +#define sk_USERNOTICE_free(sk) OPENSSL_sk_free(ossl_check_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_zero(sk) OPENSSL_sk_zero(ossl_check_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_delete(sk, i) ((USERNOTICE *)OPENSSL_sk_delete(ossl_check_USERNOTICE_sk_type(sk), (i))) +#define sk_USERNOTICE_delete_ptr(sk, ptr) ((USERNOTICE *)OPENSSL_sk_delete_ptr(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr))) +#define sk_USERNOTICE_push(sk, ptr) OPENSSL_sk_push(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr)) +#define sk_USERNOTICE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr)) +#define sk_USERNOTICE_pop(sk) ((USERNOTICE *)OPENSSL_sk_pop(ossl_check_USERNOTICE_sk_type(sk))) +#define sk_USERNOTICE_shift(sk) ((USERNOTICE *)OPENSSL_sk_shift(ossl_check_USERNOTICE_sk_type(sk))) +#define sk_USERNOTICE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_USERNOTICE_sk_type(sk),ossl_check_USERNOTICE_freefunc_type(freefunc)) +#define sk_USERNOTICE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr), (idx)) +#define sk_USERNOTICE_set(sk, idx, ptr) ((USERNOTICE *)OPENSSL_sk_set(ossl_check_USERNOTICE_sk_type(sk), (idx), ossl_check_USERNOTICE_type(ptr))) +#define sk_USERNOTICE_find(sk, ptr) OPENSSL_sk_find(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr)) +#define sk_USERNOTICE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr)) +#define sk_USERNOTICE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr), pnum) +#define sk_USERNOTICE_sort(sk) OPENSSL_sk_sort(ossl_check_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_dup(sk) ((STACK_OF(USERNOTICE) *)OPENSSL_sk_dup(ossl_check_const_USERNOTICE_sk_type(sk))) +#define sk_USERNOTICE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(USERNOTICE) *)OPENSSL_sk_deep_copy(ossl_check_const_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_copyfunc_type(copyfunc), ossl_check_USERNOTICE_freefunc_type(freefunc))) +#define sk_USERNOTICE_set_cmp_func(sk, cmp) ((sk_USERNOTICE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_compfunc_type(cmp))) + + +typedef struct OSSL_ROLE_SPEC_CERT_ID_st { + GENERAL_NAME *roleName; + GENERAL_NAME *roleCertIssuer; + ASN1_INTEGER *roleCertSerialNumber; + GENERAL_NAMES *roleCertLocator; +} OSSL_ROLE_SPEC_CERT_ID; + +DECLARE_ASN1_FUNCTIONS(OSSL_ROLE_SPEC_CERT_ID) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ROLE_SPEC_CERT_ID, OSSL_ROLE_SPEC_CERT_ID, OSSL_ROLE_SPEC_CERT_ID) +#define sk_OSSL_ROLE_SPEC_CERT_ID_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_value(sk, idx) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_value(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), (idx))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_new(cmp) ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_new(ossl_check_OSSL_ROLE_SPEC_CERT_ID_compfunc_type(cmp))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_new_null() ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ROLE_SPEC_CERT_ID_new_reserve(cmp, n) ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ROLE_SPEC_CERT_ID_compfunc_type(cmp), (n))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), (n)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_delete(sk, i) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_delete(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), (i))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_delete_ptr(sk, ptr) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_pop(sk) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_pop(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_shift(sk) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_shift(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk),ossl_check_OSSL_ROLE_SPEC_CERT_ID_freefunc_type(freefunc)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr), (idx)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_set(sk, idx, ptr) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_set(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), (idx), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr), pnum) +#define sk_OSSL_ROLE_SPEC_CERT_ID_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_dup(sk) ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_copyfunc_type(copyfunc), ossl_check_OSSL_ROLE_SPEC_CERT_ID_freefunc_type(freefunc))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_set_cmp_func(sk, cmp) ((sk_OSSL_ROLE_SPEC_CERT_ID_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_compfunc_type(cmp))) + + +typedef STACK_OF(OSSL_ROLE_SPEC_CERT_ID) OSSL_ROLE_SPEC_CERT_ID_SYNTAX; + +DECLARE_ASN1_FUNCTIONS(OSSL_ROLE_SPEC_CERT_ID_SYNTAX) +typedef struct OSSL_HASH_st { + X509_ALGOR *algorithmIdentifier; + ASN1_BIT_STRING *hashValue; +} OSSL_HASH; + +typedef struct OSSL_INFO_SYNTAX_POINTER_st { + GENERAL_NAMES *name; + OSSL_HASH *hash; +} OSSL_INFO_SYNTAX_POINTER; + +# define OSSL_INFO_SYNTAX_TYPE_CONTENT 0 +# define OSSL_INFO_SYNTAX_TYPE_POINTER 1 + +typedef struct OSSL_INFO_SYNTAX_st { + int type; + union { + ASN1_STRING *content; + OSSL_INFO_SYNTAX_POINTER *pointer; + } choice; +} OSSL_INFO_SYNTAX; + +typedef struct OSSL_PRIVILEGE_POLICY_ID_st { + ASN1_OBJECT *privilegePolicy; + OSSL_INFO_SYNTAX *privPolSyntax; +} OSSL_PRIVILEGE_POLICY_ID; + +typedef struct OSSL_ATTRIBUTE_DESCRIPTOR_st { + ASN1_OBJECT *identifier; + ASN1_STRING *attributeSyntax; + ASN1_UTF8STRING *name; + ASN1_UTF8STRING *description; + OSSL_PRIVILEGE_POLICY_ID *dominationRule; +} OSSL_ATTRIBUTE_DESCRIPTOR; + +DECLARE_ASN1_FUNCTIONS(OSSL_HASH) +DECLARE_ASN1_FUNCTIONS(OSSL_INFO_SYNTAX) +DECLARE_ASN1_FUNCTIONS(OSSL_INFO_SYNTAX_POINTER) +DECLARE_ASN1_FUNCTIONS(OSSL_PRIVILEGE_POLICY_ID) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_DESCRIPTOR) + +typedef struct OSSL_TIME_SPEC_ABSOLUTE_st { + ASN1_GENERALIZEDTIME *startTime; + ASN1_GENERALIZEDTIME *endTime; +} OSSL_TIME_SPEC_ABSOLUTE; + +typedef struct OSSL_DAY_TIME_st { + ASN1_INTEGER *hour; + ASN1_INTEGER *minute; + ASN1_INTEGER *second; +} OSSL_DAY_TIME; + +typedef struct OSSL_DAY_TIME_BAND_st { + OSSL_DAY_TIME *startDayTime; + OSSL_DAY_TIME *endDayTime; +} OSSL_DAY_TIME_BAND; + +# define OSSL_NAMED_DAY_TYPE_INT 0 +# define OSSL_NAMED_DAY_TYPE_BIT 1 +# define OSSL_NAMED_DAY_INT_SUN 1 +# define OSSL_NAMED_DAY_INT_MON 2 +# define OSSL_NAMED_DAY_INT_TUE 3 +# define OSSL_NAMED_DAY_INT_WED 4 +# define OSSL_NAMED_DAY_INT_THU 5 +# define OSSL_NAMED_DAY_INT_FRI 6 +# define OSSL_NAMED_DAY_INT_SAT 7 +# define OSSL_NAMED_DAY_BIT_SUN 0 +# define OSSL_NAMED_DAY_BIT_MON 1 +# define OSSL_NAMED_DAY_BIT_TUE 2 +# define OSSL_NAMED_DAY_BIT_WED 3 +# define OSSL_NAMED_DAY_BIT_THU 4 +# define OSSL_NAMED_DAY_BIT_FRI 5 +# define OSSL_NAMED_DAY_BIT_SAT 6 + +typedef struct OSSL_NAMED_DAY_st { + int type; + union { + ASN1_INTEGER *intNamedDays; + ASN1_BIT_STRING *bitNamedDays; + } choice; +} OSSL_NAMED_DAY; + +# define OSSL_TIME_SPEC_X_DAY_OF_FIRST 0 +# define OSSL_TIME_SPEC_X_DAY_OF_SECOND 1 +# define OSSL_TIME_SPEC_X_DAY_OF_THIRD 2 +# define OSSL_TIME_SPEC_X_DAY_OF_FOURTH 3 +# define OSSL_TIME_SPEC_X_DAY_OF_FIFTH 4 + +typedef struct OSSL_TIME_SPEC_X_DAY_OF_st { + int type; + union { + OSSL_NAMED_DAY *first; + OSSL_NAMED_DAY *second; + OSSL_NAMED_DAY *third; + OSSL_NAMED_DAY *fourth; + OSSL_NAMED_DAY *fifth; + } choice; +} OSSL_TIME_SPEC_X_DAY_OF; + +# define OSSL_TIME_SPEC_DAY_TYPE_INT 0 +# define OSSL_TIME_SPEC_DAY_TYPE_BIT 1 +# define OSSL_TIME_SPEC_DAY_TYPE_DAY_OF 2 +# define OSSL_TIME_SPEC_DAY_BIT_SUN 0 +# define OSSL_TIME_SPEC_DAY_BIT_MON 1 +# define OSSL_TIME_SPEC_DAY_BIT_TUE 2 +# define OSSL_TIME_SPEC_DAY_BIT_WED 3 +# define OSSL_TIME_SPEC_DAY_BIT_THU 4 +# define OSSL_TIME_SPEC_DAY_BIT_FRI 5 +# define OSSL_TIME_SPEC_DAY_BIT_SAT 6 +# define OSSL_TIME_SPEC_DAY_INT_SUN 1 +# define OSSL_TIME_SPEC_DAY_INT_MON 2 +# define OSSL_TIME_SPEC_DAY_INT_TUE 3 +# define OSSL_TIME_SPEC_DAY_INT_WED 4 +# define OSSL_TIME_SPEC_DAY_INT_THU 5 +# define OSSL_TIME_SPEC_DAY_INT_FRI 6 +# define OSSL_TIME_SPEC_DAY_INT_SAT 7 + +typedef struct OSSL_TIME_SPEC_DAY_st { + int type; + union { + STACK_OF(ASN1_INTEGER) *intDay; + ASN1_BIT_STRING *bitDay; + OSSL_TIME_SPEC_X_DAY_OF *dayOf; + } choice; +} OSSL_TIME_SPEC_DAY; + +# define OSSL_TIME_SPEC_WEEKS_TYPE_ALL 0 +# define OSSL_TIME_SPEC_WEEKS_TYPE_INT 1 +# define OSSL_TIME_SPEC_WEEKS_TYPE_BIT 2 +# define OSSL_TIME_SPEC_BIT_WEEKS_1 0 +# define OSSL_TIME_SPEC_BIT_WEEKS_2 1 +# define OSSL_TIME_SPEC_BIT_WEEKS_3 2 +# define OSSL_TIME_SPEC_BIT_WEEKS_4 3 +# define OSSL_TIME_SPEC_BIT_WEEKS_5 4 + +typedef struct OSSL_TIME_SPEC_WEEKS_st { + int type; + union { + ASN1_NULL *allWeeks; + STACK_OF(ASN1_INTEGER) *intWeek; + ASN1_BIT_STRING *bitWeek; + } choice; +} OSSL_TIME_SPEC_WEEKS; + +# define OSSL_TIME_SPEC_MONTH_TYPE_ALL 0 +# define OSSL_TIME_SPEC_MONTH_TYPE_INT 1 +# define OSSL_TIME_SPEC_MONTH_TYPE_BIT 2 +# define OSSL_TIME_SPEC_INT_MONTH_JAN 1 +# define OSSL_TIME_SPEC_INT_MONTH_FEB 2 +# define OSSL_TIME_SPEC_INT_MONTH_MAR 3 +# define OSSL_TIME_SPEC_INT_MONTH_APR 4 +# define OSSL_TIME_SPEC_INT_MONTH_MAY 5 +# define OSSL_TIME_SPEC_INT_MONTH_JUN 6 +# define OSSL_TIME_SPEC_INT_MONTH_JUL 7 +# define OSSL_TIME_SPEC_INT_MONTH_AUG 8 +# define OSSL_TIME_SPEC_INT_MONTH_SEP 9 +# define OSSL_TIME_SPEC_INT_MONTH_OCT 10 +# define OSSL_TIME_SPEC_INT_MONTH_NOV 11 +# define OSSL_TIME_SPEC_INT_MONTH_DEC 12 +# define OSSL_TIME_SPEC_BIT_MONTH_JAN 0 +# define OSSL_TIME_SPEC_BIT_MONTH_FEB 1 +# define OSSL_TIME_SPEC_BIT_MONTH_MAR 2 +# define OSSL_TIME_SPEC_BIT_MONTH_APR 3 +# define OSSL_TIME_SPEC_BIT_MONTH_MAY 4 +# define OSSL_TIME_SPEC_BIT_MONTH_JUN 5 +# define OSSL_TIME_SPEC_BIT_MONTH_JUL 6 +# define OSSL_TIME_SPEC_BIT_MONTH_AUG 7 +# define OSSL_TIME_SPEC_BIT_MONTH_SEP 8 +# define OSSL_TIME_SPEC_BIT_MONTH_OCT 9 +# define OSSL_TIME_SPEC_BIT_MONTH_NOV 10 +# define OSSL_TIME_SPEC_BIT_MONTH_DEC 11 + +typedef struct OSSL_TIME_SPEC_MONTH_st { + int type; + union { + ASN1_NULL *allMonths; + STACK_OF(ASN1_INTEGER) *intMonth; + ASN1_BIT_STRING *bitMonth; + } choice; +} OSSL_TIME_SPEC_MONTH; + +typedef struct OSSL_TIME_PERIOD_st { + STACK_OF(OSSL_DAY_TIME_BAND) *timesOfDay; + OSSL_TIME_SPEC_DAY *days; + OSSL_TIME_SPEC_WEEKS *weeks; + OSSL_TIME_SPEC_MONTH *months; + STACK_OF(ASN1_INTEGER) *years; +} OSSL_TIME_PERIOD; + +# define OSSL_TIME_SPEC_TIME_TYPE_ABSOLUTE 0 +# define OSSL_TIME_SPEC_TIME_TYPE_PERIODIC 1 + +typedef struct OSSL_TIME_SPEC_TIME_st { + int type; + union { + OSSL_TIME_SPEC_ABSOLUTE *absolute; + STACK_OF(OSSL_TIME_PERIOD) *periodic; + } choice; +} OSSL_TIME_SPEC_TIME; + +typedef struct OSSL_TIME_SPEC_st { + OSSL_TIME_SPEC_TIME *time; + ASN1_BOOLEAN notThisTime; + ASN1_INTEGER *timeZone; +} OSSL_TIME_SPEC; + +DECLARE_ASN1_FUNCTIONS(OSSL_DAY_TIME) +DECLARE_ASN1_FUNCTIONS(OSSL_DAY_TIME_BAND) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_DAY) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_WEEKS) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_MONTH) +DECLARE_ASN1_FUNCTIONS(OSSL_NAMED_DAY) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_X_DAY_OF) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_ABSOLUTE) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_TIME) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_PERIOD) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_TIME_PERIOD, OSSL_TIME_PERIOD, OSSL_TIME_PERIOD) +#define sk_OSSL_TIME_PERIOD_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_value(sk, idx) ((OSSL_TIME_PERIOD *)OPENSSL_sk_value(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk), (idx))) +#define sk_OSSL_TIME_PERIOD_new(cmp) ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_new(ossl_check_OSSL_TIME_PERIOD_compfunc_type(cmp))) +#define sk_OSSL_TIME_PERIOD_new_null() ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_new_null()) +#define sk_OSSL_TIME_PERIOD_new_reserve(cmp, n) ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_TIME_PERIOD_compfunc_type(cmp), (n))) +#define sk_OSSL_TIME_PERIOD_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), (n)) +#define sk_OSSL_TIME_PERIOD_free(sk) OPENSSL_sk_free(ossl_check_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_delete(sk, i) ((OSSL_TIME_PERIOD *)OPENSSL_sk_delete(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), (i))) +#define sk_OSSL_TIME_PERIOD_delete_ptr(sk, ptr) ((OSSL_TIME_PERIOD *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr))) +#define sk_OSSL_TIME_PERIOD_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr)) +#define sk_OSSL_TIME_PERIOD_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr)) +#define sk_OSSL_TIME_PERIOD_pop(sk) ((OSSL_TIME_PERIOD *)OPENSSL_sk_pop(ossl_check_OSSL_TIME_PERIOD_sk_type(sk))) +#define sk_OSSL_TIME_PERIOD_shift(sk) ((OSSL_TIME_PERIOD *)OPENSSL_sk_shift(ossl_check_OSSL_TIME_PERIOD_sk_type(sk))) +#define sk_OSSL_TIME_PERIOD_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_TIME_PERIOD_sk_type(sk),ossl_check_OSSL_TIME_PERIOD_freefunc_type(freefunc)) +#define sk_OSSL_TIME_PERIOD_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr), (idx)) +#define sk_OSSL_TIME_PERIOD_set(sk, idx, ptr) ((OSSL_TIME_PERIOD *)OPENSSL_sk_set(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), (idx), ossl_check_OSSL_TIME_PERIOD_type(ptr))) +#define sk_OSSL_TIME_PERIOD_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr)) +#define sk_OSSL_TIME_PERIOD_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr)) +#define sk_OSSL_TIME_PERIOD_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr), pnum) +#define sk_OSSL_TIME_PERIOD_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_dup(sk) ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_dup(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk))) +#define sk_OSSL_TIME_PERIOD_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_copyfunc_type(copyfunc), ossl_check_OSSL_TIME_PERIOD_freefunc_type(freefunc))) +#define sk_OSSL_TIME_PERIOD_set_cmp_func(sk, cmp) ((sk_OSSL_TIME_PERIOD_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_compfunc_type(cmp))) + + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_DAY_TIME_BAND, OSSL_DAY_TIME_BAND, OSSL_DAY_TIME_BAND) +#define sk_OSSL_DAY_TIME_BAND_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_value(sk, idx) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_value(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk), (idx))) +#define sk_OSSL_DAY_TIME_BAND_new(cmp) ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_new(ossl_check_OSSL_DAY_TIME_BAND_compfunc_type(cmp))) +#define sk_OSSL_DAY_TIME_BAND_new_null() ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_new_null()) +#define sk_OSSL_DAY_TIME_BAND_new_reserve(cmp, n) ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_DAY_TIME_BAND_compfunc_type(cmp), (n))) +#define sk_OSSL_DAY_TIME_BAND_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), (n)) +#define sk_OSSL_DAY_TIME_BAND_free(sk) OPENSSL_sk_free(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_delete(sk, i) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_delete(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), (i))) +#define sk_OSSL_DAY_TIME_BAND_delete_ptr(sk, ptr) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr))) +#define sk_OSSL_DAY_TIME_BAND_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr)) +#define sk_OSSL_DAY_TIME_BAND_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr)) +#define sk_OSSL_DAY_TIME_BAND_pop(sk) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_pop(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk))) +#define sk_OSSL_DAY_TIME_BAND_shift(sk) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_shift(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk))) +#define sk_OSSL_DAY_TIME_BAND_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk),ossl_check_OSSL_DAY_TIME_BAND_freefunc_type(freefunc)) +#define sk_OSSL_DAY_TIME_BAND_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr), (idx)) +#define sk_OSSL_DAY_TIME_BAND_set(sk, idx, ptr) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_set(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), (idx), ossl_check_OSSL_DAY_TIME_BAND_type(ptr))) +#define sk_OSSL_DAY_TIME_BAND_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr)) +#define sk_OSSL_DAY_TIME_BAND_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr)) +#define sk_OSSL_DAY_TIME_BAND_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr), pnum) +#define sk_OSSL_DAY_TIME_BAND_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_dup(sk) ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_dup(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk))) +#define sk_OSSL_DAY_TIME_BAND_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_copyfunc_type(copyfunc), ossl_check_OSSL_DAY_TIME_BAND_freefunc_type(freefunc))) +#define sk_OSSL_DAY_TIME_BAND_set_cmp_func(sk, cmp) ((sk_OSSL_DAY_TIME_BAND_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_compfunc_type(cmp))) + + +/* Attribute Type and Value */ +typedef struct atav_st { + ASN1_OBJECT *type; + ASN1_TYPE *value; +} OSSL_ATAV; + +typedef struct ATTRIBUTE_TYPE_MAPPING_st { + ASN1_OBJECT *local; + ASN1_OBJECT *remote; +} OSSL_ATTRIBUTE_TYPE_MAPPING; + +typedef struct ATTRIBUTE_VALUE_MAPPING_st { + OSSL_ATAV *local; + OSSL_ATAV *remote; +} OSSL_ATTRIBUTE_VALUE_MAPPING; + +# define OSSL_ATTR_MAP_TYPE 0 +# define OSSL_ATTR_MAP_VALUE 1 + +typedef struct ATTRIBUTE_MAPPING_st { + int type; + union { + OSSL_ATTRIBUTE_TYPE_MAPPING *typeMappings; + OSSL_ATTRIBUTE_VALUE_MAPPING *typeValueMappings; + } choice; +} OSSL_ATTRIBUTE_MAPPING; + +typedef STACK_OF(OSSL_ATTRIBUTE_MAPPING) OSSL_ATTRIBUTE_MAPPINGS; +DECLARE_ASN1_FUNCTIONS(OSSL_ATAV) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_TYPE_MAPPING) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_VALUE_MAPPING) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_MAPPING) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_MAPPINGS) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ATTRIBUTE_MAPPING, OSSL_ATTRIBUTE_MAPPING, OSSL_ATTRIBUTE_MAPPING) +#define sk_OSSL_ATTRIBUTE_MAPPING_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_value(sk, idx) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_value(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), (idx))) +#define sk_OSSL_ATTRIBUTE_MAPPING_new(cmp) ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_new(ossl_check_OSSL_ATTRIBUTE_MAPPING_compfunc_type(cmp))) +#define sk_OSSL_ATTRIBUTE_MAPPING_new_null() ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ATTRIBUTE_MAPPING_new_reserve(cmp, n) ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ATTRIBUTE_MAPPING_compfunc_type(cmp), (n))) +#define sk_OSSL_ATTRIBUTE_MAPPING_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), (n)) +#define sk_OSSL_ATTRIBUTE_MAPPING_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_delete(sk, i) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_delete(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), (i))) +#define sk_OSSL_ATTRIBUTE_MAPPING_delete_ptr(sk, ptr) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr))) +#define sk_OSSL_ATTRIBUTE_MAPPING_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr)) +#define sk_OSSL_ATTRIBUTE_MAPPING_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr)) +#define sk_OSSL_ATTRIBUTE_MAPPING_pop(sk) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_pop(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk))) +#define sk_OSSL_ATTRIBUTE_MAPPING_shift(sk) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_shift(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk))) +#define sk_OSSL_ATTRIBUTE_MAPPING_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk),ossl_check_OSSL_ATTRIBUTE_MAPPING_freefunc_type(freefunc)) +#define sk_OSSL_ATTRIBUTE_MAPPING_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr), (idx)) +#define sk_OSSL_ATTRIBUTE_MAPPING_set(sk, idx, ptr) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_set(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), (idx), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr))) +#define sk_OSSL_ATTRIBUTE_MAPPING_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr)) +#define sk_OSSL_ATTRIBUTE_MAPPING_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr)) +#define sk_OSSL_ATTRIBUTE_MAPPING_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr), pnum) +#define sk_OSSL_ATTRIBUTE_MAPPING_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_dup(sk) ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk))) +#define sk_OSSL_ATTRIBUTE_MAPPING_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_copyfunc_type(copyfunc), ossl_check_OSSL_ATTRIBUTE_MAPPING_freefunc_type(freefunc))) +#define sk_OSSL_ATTRIBUTE_MAPPING_set_cmp_func(sk, cmp) ((sk_OSSL_ATTRIBUTE_MAPPING_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_compfunc_type(cmp))) + + +# define OSSL_AAA_ATTRIBUTE_TYPE 0 +# define OSSL_AAA_ATTRIBUTE_VALUES 1 + +typedef struct ALLOWED_ATTRIBUTES_CHOICE_st { + int type; + union { + ASN1_OBJECT *attributeType; + X509_ATTRIBUTE *attributeTypeandValues; + } choice; +} OSSL_ALLOWED_ATTRIBUTES_CHOICE; + +typedef struct ALLOWED_ATTRIBUTES_ITEM_st { + STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *attributes; + GENERAL_NAME *holderDomain; +} OSSL_ALLOWED_ATTRIBUTES_ITEM; + +typedef STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) OSSL_ALLOWED_ATTRIBUTES_SYNTAX; + +DECLARE_ASN1_FUNCTIONS(OSSL_ALLOWED_ATTRIBUTES_CHOICE) +DECLARE_ASN1_FUNCTIONS(OSSL_ALLOWED_ATTRIBUTES_ITEM) +DECLARE_ASN1_FUNCTIONS(OSSL_ALLOWED_ATTRIBUTES_SYNTAX) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ALLOWED_ATTRIBUTES_CHOICE, OSSL_ALLOWED_ATTRIBUTES_CHOICE, OSSL_ALLOWED_ATTRIBUTES_CHOICE) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_value(sk, idx) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_value(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), (idx))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_new(cmp) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_new(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_compfunc_type(cmp))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_new_null() ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_new_reserve(cmp, n) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_compfunc_type(cmp), (n))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), (n)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_delete(sk, i) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_delete(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), (i))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_delete_ptr(sk, ptr) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_pop(sk) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_pop(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_shift(sk) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_shift(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk),ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_freefunc_type(freefunc)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr), (idx)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_set(sk, idx, ptr) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_set(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), (idx), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr), pnum) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_dup(sk) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_copyfunc_type(copyfunc), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_freefunc_type(freefunc))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_set_cmp_func(sk, cmp) ((sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_compfunc_type(cmp))) + + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ALLOWED_ATTRIBUTES_ITEM, OSSL_ALLOWED_ATTRIBUTES_ITEM, OSSL_ALLOWED_ATTRIBUTES_ITEM) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_value(sk, idx) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_value(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), (idx))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_new(cmp) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_new(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_compfunc_type(cmp))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_new_null() ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_new_reserve(cmp, n) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_compfunc_type(cmp), (n))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), (n)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_delete(sk, i) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_delete(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), (i))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_delete_ptr(sk, ptr) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_pop(sk) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_pop(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_shift(sk) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_shift(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk),ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_freefunc_type(freefunc)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr), (idx)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_set(sk, idx, ptr) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_set(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), (idx), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr), pnum) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_dup(sk) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_copyfunc_type(copyfunc), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_freefunc_type(freefunc))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_set_cmp_func(sk, cmp) ((sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_compfunc_type(cmp))) + + +typedef struct AA_DIST_POINT_st { + DIST_POINT_NAME *distpoint; + ASN1_BIT_STRING *reasons; + int dp_reasons; + ASN1_BOOLEAN indirectCRL; + ASN1_BOOLEAN containsUserAttributeCerts; + ASN1_BOOLEAN containsAACerts; + ASN1_BOOLEAN containsSOAPublicKeyCerts; +} OSSL_AA_DIST_POINT; + +DECLARE_ASN1_FUNCTIONS(OSSL_AA_DIST_POINT) + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/VC-WIN32/asm_avx2/include/progs.h b/deps/openssl/config/archs/VC-WIN32/asm_avx2/include/progs.h index be55f61503d405..1b62ec37dec130 100644 --- a/deps/openssl/config/archs/VC-WIN32/asm_avx2/include/progs.h +++ b/deps/openssl/config/archs/VC-WIN32/asm_avx2/include/progs.h @@ -56,6 +56,7 @@ extern int s_client_main(int argc, char *argv[]); extern int s_server_main(int argc, char *argv[]); extern int s_time_main(int argc, char *argv[]); extern int sess_id_main(int argc, char *argv[]); +extern int skeyutl_main(int argc, char *argv[]); extern int smime_main(int argc, char *argv[]); extern int speed_main(int argc, char *argv[]); extern int spkac_main(int argc, char *argv[]); @@ -110,6 +111,7 @@ extern const OPTIONS s_client_options[]; extern const OPTIONS s_server_options[]; extern const OPTIONS s_time_options[]; extern const OPTIONS sess_id_options[]; +extern const OPTIONS skeyutl_options[]; extern const OPTIONS smime_options[]; extern const OPTIONS speed_options[]; extern const OPTIONS spkac_options[]; diff --git a/deps/openssl/config/archs/VC-WIN32/asm_avx2/openssl-cl.gypi b/deps/openssl/config/archs/VC-WIN32/asm_avx2/openssl-cl.gypi index 487571baf1b020..21d695947f9190 100644 --- a/deps/openssl/config/archs/VC-WIN32/asm_avx2/openssl-cl.gypi +++ b/deps/openssl/config/archs/VC-WIN32/asm_avx2/openssl-cl.gypi @@ -87,6 +87,7 @@ 'openssl/apps/s_server.c', 'openssl/apps/s_time.c', 'openssl/apps/sess_id.c', + 'openssl/apps/skeyutl.c', 'openssl/apps/smime.c', 'openssl/apps/speed.c', 'openssl/apps/spkac.c', @@ -102,12 +103,14 @@ 'openssl/apps/lib/app_rand.c', 'openssl/apps/lib/app_x509.c', 'openssl/apps/lib/apps.c', + 'openssl/apps/lib/apps_opt_printf.c', 'openssl/apps/lib/apps_ui.c', 'openssl/apps/lib/columns.c', 'openssl/apps/lib/engine.c', 'openssl/apps/lib/engine_loader.c', 'openssl/apps/lib/fmt.c', 'openssl/apps/lib/http_server.c', + 'openssl/apps/lib/log.c', 'openssl/apps/lib/names.c', 'openssl/apps/lib/opt.c', 'openssl/apps/lib/s_cb.c', diff --git a/deps/openssl/config/archs/VC-WIN32/asm_avx2/openssl-fips.gypi b/deps/openssl/config/archs/VC-WIN32/asm_avx2/openssl-fips.gypi index 8f90fc015d135d..ed6a2a5dcd00a9 100644 --- a/deps/openssl/config/archs/VC-WIN32/asm_avx2/openssl-fips.gypi +++ b/deps/openssl/config/archs/VC-WIN32/asm_avx2/openssl-fips.gypi @@ -96,14 +96,15 @@ 'openssl/crypto/evp/kem.c', 'openssl/crypto/evp/keymgmt_lib.c', 'openssl/crypto/evp/keymgmt_meth.c', - 'openssl/crypto/evp/m_sigver.c', 'openssl/crypto/evp/mac_lib.c', 'openssl/crypto/evp/mac_meth.c', 'openssl/crypto/evp/p_lib.c', 'openssl/crypto/evp/pmeth_check.c', 'openssl/crypto/evp/pmeth_gn.c', 'openssl/crypto/evp/pmeth_lib.c', + 'openssl/crypto/evp/s_lib.c', 'openssl/crypto/evp/signature.c', + 'openssl/crypto/evp/skeymgmt_meth.c', 'openssl/crypto/ffc/ffc_backend.c', 'openssl/crypto/ffc/ffc_dh.c', 'openssl/crypto/ffc/ffc_key_generate.c', @@ -111,6 +112,8 @@ 'openssl/crypto/ffc/ffc_params.c', 'openssl/crypto/ffc/ffc_params_generate.c', 'openssl/crypto/ffc/ffc_params_validate.c', + 'openssl/crypto/hashtable/hashfunc.c', + 'openssl/crypto/hashtable/hashtable.c', 'openssl/crypto/hmac/hmac.c', 'openssl/crypto/lhash/lhash.c', 'openssl/crypto/asn1_dsa.c', @@ -140,6 +143,16 @@ 'openssl/crypto/threads_none.c', 'openssl/crypto/threads_pthread.c', 'openssl/crypto/threads_win.c', + 'openssl/crypto/time.c', + 'openssl/crypto/ml_dsa/ml_dsa_encoders.c', + 'openssl/crypto/ml_dsa/ml_dsa_key.c', + 'openssl/crypto/ml_dsa/ml_dsa_key_compress.c', + 'openssl/crypto/ml_dsa/ml_dsa_matrix.c', + 'openssl/crypto/ml_dsa/ml_dsa_ntt.c', + 'openssl/crypto/ml_dsa/ml_dsa_params.c', + 'openssl/crypto/ml_dsa/ml_dsa_sample.c', + 'openssl/crypto/ml_dsa/ml_dsa_sign.c', + 'openssl/crypto/ml_kem/ml_kem.c', 'openssl/crypto/modes/cbc128.c', 'openssl/crypto/modes/ccm128.c', 'openssl/crypto/modes/cfb128.c', @@ -148,6 +161,7 @@ 'openssl/crypto/modes/ofb128.c', 'openssl/crypto/modes/wrap128.c', 'openssl/crypto/modes/xts128.c', + 'openssl/crypto/modes/xts128gb.c', 'openssl/crypto/property/defn_cache.c', 'openssl/crypto/property/property.c', 'openssl/crypto/property/property_parse.c', @@ -176,7 +190,23 @@ 'openssl/crypto/sha/sha256.c', 'openssl/crypto/sha/sha3.c', 'openssl/crypto/sha/sha512.c', + 'openssl/crypto/slh_dsa/slh_adrs.c', + 'openssl/crypto/slh_dsa/slh_dsa.c', + 'openssl/crypto/slh_dsa/slh_dsa_hash_ctx.c', + 'openssl/crypto/slh_dsa/slh_dsa_key.c', + 'openssl/crypto/slh_dsa/slh_fors.c', + 'openssl/crypto/slh_dsa/slh_hash.c', + 'openssl/crypto/slh_dsa/slh_hypertree.c', + 'openssl/crypto/slh_dsa/slh_params.c', + 'openssl/crypto/slh_dsa/slh_wots.c', + 'openssl/crypto/slh_dsa/slh_xmss.c', 'openssl/crypto/stack/stack.c', + 'openssl/crypto/thread/arch/thread_none.c', + 'openssl/crypto/thread/arch/thread_posix.c', + 'openssl/crypto/thread/arch/thread_win.c', + 'openssl/crypto/thread/api.c', + 'openssl/crypto/thread/arch.c', + 'openssl/crypto/thread/internal.c', 'openssl/providers/common/der/der_rsa_sig.c', 'openssl/providers/common/bio_prov.c', 'openssl/providers/common/capabilities.c', @@ -185,6 +215,7 @@ 'openssl/providers/common/provider_util.c', 'openssl/providers/common/securitycheck.c', 'openssl/providers/common/securitycheck_fips.c', + 'openssl/providers/fips/fipsindicator.c', 'openssl/providers/fips/fipsprov.c', 'openssl/providers/fips/self_test.c', 'openssl/providers/fips/self_test_kats.c', @@ -222,6 +253,8 @@ 'openssl/providers/implementations/kdfs/sskdf.c', 'openssl/providers/implementations/kdfs/tls1_prf.c', 'openssl/providers/implementations/kdfs/x942kdf.c', + 'openssl/providers/implementations/kem/ml_kem_kem.c', + 'openssl/providers/implementations/kem/mlx_kem.c', 'openssl/providers/implementations/kem/rsa_kem.c', 'openssl/providers/implementations/keymgmt/dh_kmgmt.c', 'openssl/providers/implementations/keymgmt/dsa_kmgmt.c', @@ -229,29 +262,39 @@ 'openssl/providers/implementations/keymgmt/ecx_kmgmt.c', 'openssl/providers/implementations/keymgmt/kdf_legacy_kmgmt.c', 'openssl/providers/implementations/keymgmt/mac_legacy_kmgmt.c', + 'openssl/providers/implementations/keymgmt/ml_dsa_kmgmt.c', + 'openssl/providers/implementations/keymgmt/ml_kem_kmgmt.c', + 'openssl/providers/implementations/keymgmt/mlx_kmgmt.c', 'openssl/providers/implementations/keymgmt/rsa_kmgmt.c', + 'openssl/providers/implementations/keymgmt/slh_dsa_kmgmt.c', 'openssl/providers/implementations/macs/cmac_prov.c', 'openssl/providers/implementations/macs/gmac_prov.c', 'openssl/providers/implementations/macs/hmac_prov.c', 'openssl/providers/implementations/macs/kmac_prov.c', - 'openssl/providers/implementations/rands/crngt.c', 'openssl/providers/implementations/rands/drbg.c', 'openssl/providers/implementations/rands/drbg_ctr.c', 'openssl/providers/implementations/rands/drbg_hash.c', 'openssl/providers/implementations/rands/drbg_hmac.c', + 'openssl/providers/implementations/rands/fips_crng_test.c', 'openssl/providers/implementations/rands/test_rng.c', 'openssl/providers/implementations/signature/dsa_sig.c', 'openssl/providers/implementations/signature/ecdsa_sig.c', 'openssl/providers/implementations/signature/eddsa_sig.c', 'openssl/providers/implementations/signature/mac_legacy_sig.c', + 'openssl/providers/implementations/signature/ml_dsa_sig.c', 'openssl/providers/implementations/signature/rsa_sig.c', - 'openssl/ssl/s3_cbc.c', + 'openssl/providers/implementations/signature/slh_dsa_sig.c', + 'openssl/providers/implementations/skeymgmt/aes_skmgmt.c', + 'openssl/providers/implementations/skeymgmt/generic.c', + 'openssl/ssl/record/methods/ssl3_cbc.c', 'openssl/providers/common/der/der_dsa_key.c', 'openssl/providers/common/der/der_dsa_sig.c', 'openssl/providers/common/der/der_ec_key.c', 'openssl/providers/common/der/der_ec_sig.c', 'openssl/providers/common/der/der_ecx_key.c', + 'openssl/providers/common/der/der_ml_dsa_key.c', 'openssl/providers/common/der/der_rsa_key.c', + 'openssl/providers/common/der/der_slh_dsa_key.c', 'openssl/providers/common/provider_ctx.c', 'openssl/providers/common/provider_err.c', 'openssl/providers/implementations/ciphers/ciphercommon.c', @@ -262,7 +305,7 @@ 'openssl/providers/implementations/ciphers/ciphercommon_gcm_hw.c', 'openssl/providers/implementations/ciphers/ciphercommon_hw.c', 'openssl/providers/implementations/digests/digestcommon.c', - 'openssl/ssl/record/tls_pad.c', + 'openssl/ssl/record/methods/tls_pad.c', 'openssl/providers/fips/fips_entry.c', ], @@ -280,6 +323,7 @@ './config/archs/VC-WIN32/asm_avx2/crypto/des/crypt586.asm', './config/archs/VC-WIN32/asm_avx2/crypto/des/des-586.asm', './config/archs/VC-WIN32/asm_avx2/crypto/ec/ecp_nistz256-x86.asm', + './config/archs/VC-WIN32/asm_avx2/crypto/params_idx.c', './config/archs/VC-WIN32/asm_avx2/crypto/x86cpuid.asm', './config/archs/VC-WIN32/asm_avx2/crypto/md5/md5-586.asm', './config/archs/VC-WIN32/asm_avx2/crypto/modes/ghash-x86.asm', @@ -296,7 +340,9 @@ './config/archs/VC-WIN32/asm_avx2/providers/common/der/der_dsa_gen.c', './config/archs/VC-WIN32/asm_avx2/providers/common/der/der_ec_gen.c', './config/archs/VC-WIN32/asm_avx2/providers/common/der/der_ecx_gen.c', + './config/archs/VC-WIN32/asm_avx2/providers/common/der/der_ml_dsa_gen.c', './config/archs/VC-WIN32/asm_avx2/providers/common/der/der_rsa_gen.c', + './config/archs/VC-WIN32/asm_avx2/providers/common/der/der_slh_dsa_gen.c', './config/archs/VC-WIN32/asm_avx2/providers/common/der/der_wrap_gen.c', ], diff --git a/deps/openssl/config/archs/VC-WIN32/asm_avx2/openssl.gypi b/deps/openssl/config/archs/VC-WIN32/asm_avx2/openssl.gypi index 6771de85fc0e73..ea34dae5791bfc 100644 --- a/deps/openssl/config/archs/VC-WIN32/asm_avx2/openssl.gypi +++ b/deps/openssl/config/archs/VC-WIN32/asm_avx2/openssl.gypi @@ -7,14 +7,15 @@ 'openssl/ssl/d1_srtp.c', 'openssl/ssl/methods.c', 'openssl/ssl/pqueue.c', + 'openssl/ssl/priority_queue.c', 'openssl/ssl/s3_enc.c', 'openssl/ssl/s3_lib.c', 'openssl/ssl/s3_msg.c', 'openssl/ssl/ssl_asn1.c', 'openssl/ssl/ssl_cert.c', + 'openssl/ssl/ssl_cert_comp.c', 'openssl/ssl/ssl_ciph.c', 'openssl/ssl/ssl_conf.c', - 'openssl/ssl/ssl_err.c', 'openssl/ssl/ssl_err_legacy.c', 'openssl/ssl/ssl_init.c', 'openssl/ssl/ssl_lib.c', @@ -31,12 +32,60 @@ 'openssl/ssl/tls13_enc.c', 'openssl/ssl/tls_depr.c', 'openssl/ssl/tls_srp.c', - 'openssl/ssl/record/dtls1_bitmap.c', + 'openssl/ssl/quic/cc_newreno.c', + 'openssl/ssl/quic/json_enc.c', + 'openssl/ssl/quic/qlog.c', + 'openssl/ssl/quic/qlog_event_helpers.c', + 'openssl/ssl/quic/quic_ackm.c', + 'openssl/ssl/quic/quic_cfq.c', + 'openssl/ssl/quic/quic_channel.c', + 'openssl/ssl/quic/quic_demux.c', + 'openssl/ssl/quic/quic_engine.c', + 'openssl/ssl/quic/quic_fc.c', + 'openssl/ssl/quic/quic_fifd.c', + 'openssl/ssl/quic/quic_impl.c', + 'openssl/ssl/quic/quic_lcidm.c', + 'openssl/ssl/quic/quic_method.c', + 'openssl/ssl/quic/quic_obj.c', + 'openssl/ssl/quic/quic_port.c', + 'openssl/ssl/quic/quic_rcidm.c', + 'openssl/ssl/quic/quic_reactor.c', + 'openssl/ssl/quic/quic_reactor_wait_ctx.c', + 'openssl/ssl/quic/quic_record_rx.c', + 'openssl/ssl/quic/quic_record_shared.c', + 'openssl/ssl/quic/quic_record_tx.c', + 'openssl/ssl/quic/quic_record_util.c', + 'openssl/ssl/quic/quic_rstream.c', + 'openssl/ssl/quic/quic_rx_depack.c', + 'openssl/ssl/quic/quic_sf_list.c', + 'openssl/ssl/quic/quic_srt_gen.c', + 'openssl/ssl/quic/quic_srtm.c', + 'openssl/ssl/quic/quic_sstream.c', + 'openssl/ssl/quic/quic_statm.c', + 'openssl/ssl/quic/quic_stream_map.c', + 'openssl/ssl/quic/quic_thread_assist.c', + 'openssl/ssl/quic/quic_tls.c', + 'openssl/ssl/quic/quic_tls_api.c', + 'openssl/ssl/quic/quic_trace.c', + 'openssl/ssl/quic/quic_tserver.c', + 'openssl/ssl/quic/quic_txp.c', + 'openssl/ssl/quic/quic_txpim.c', + 'openssl/ssl/quic/quic_types.c', + 'openssl/ssl/quic/quic_wire.c', + 'openssl/ssl/quic/quic_wire_pkt.c', + 'openssl/ssl/quic/uint_set.c', 'openssl/ssl/record/rec_layer_d1.c', 'openssl/ssl/record/rec_layer_s3.c', - 'openssl/ssl/record/ssl3_buffer.c', - 'openssl/ssl/record/ssl3_record.c', - 'openssl/ssl/record/ssl3_record_tls13.c', + 'openssl/ssl/record/methods/dtls_meth.c', + 'openssl/ssl/record/methods/ssl3_meth.c', + 'openssl/ssl/record/methods/tls13_meth.c', + 'openssl/ssl/record/methods/tls1_meth.c', + 'openssl/ssl/record/methods/tls_common.c', + 'openssl/ssl/record/methods/tls_multib.c', + 'openssl/ssl/record/methods/tlsany_meth.c', + 'openssl/ssl/rio/poll_builder.c', + 'openssl/ssl/rio/poll_immediate.c', + 'openssl/ssl/rio/rio_notifier.c', 'openssl/ssl/statem/extensions.c', 'openssl/ssl/statem/extensions_clnt.c', 'openssl/ssl/statem/extensions_cust.c', @@ -147,6 +196,7 @@ 'openssl/crypto/bio/bss_conn.c', 'openssl/crypto/bio/bss_core.c', 'openssl/crypto/bio/bss_dgram.c', + 'openssl/crypto/bio/bss_dgram_pair.c', 'openssl/crypto/bio/bss_fd.c', 'openssl/crypto/bio/bss_file.c', 'openssl/crypto/bio/bss_log.c', @@ -202,6 +252,7 @@ 'openssl/crypto/cmp/cmp_client.c', 'openssl/crypto/cmp/cmp_ctx.c', 'openssl/crypto/cmp/cmp_err.c', + 'openssl/crypto/cmp/cmp_genm.c', 'openssl/crypto/cmp/cmp_hdr.c', 'openssl/crypto/cmp/cmp_http.c', 'openssl/crypto/cmp/cmp_msg.c', @@ -376,7 +427,9 @@ 'openssl/crypto/err/err_all.c', 'openssl/crypto/err/err_all_legacy.c', 'openssl/crypto/err/err_blocks.c', + 'openssl/crypto/err/err_mark.c', 'openssl/crypto/err/err_prn.c', + 'openssl/crypto/err/err_save.c', 'openssl/crypto/ess/ess_asn1.c', 'openssl/crypto/ess/ess_err.c', 'openssl/crypto/ess/ess_lib.c', @@ -459,7 +512,9 @@ 'openssl/crypto/evp/pmeth_check.c', 'openssl/crypto/evp/pmeth_gn.c', 'openssl/crypto/evp/pmeth_lib.c', + 'openssl/crypto/evp/s_lib.c', 'openssl/crypto/evp/signature.c', + 'openssl/crypto/evp/skeymgmt_meth.c', 'openssl/crypto/ffc/ffc_backend.c', 'openssl/crypto/ffc/ffc_dh.c', 'openssl/crypto/ffc/ffc_key_generate.c', @@ -467,7 +522,11 @@ 'openssl/crypto/ffc/ffc_params.c', 'openssl/crypto/ffc/ffc_params_generate.c', 'openssl/crypto/ffc/ffc_params_validate.c', + 'openssl/crypto/hashtable/hashfunc.c', + 'openssl/crypto/hashtable/hashtable.c', 'openssl/crypto/hmac/hmac.c', + 'openssl/crypto/hpke/hpke.c', + 'openssl/crypto/hpke/hpke_util.c', 'openssl/crypto/http/http_client.c', 'openssl/crypto/http/http_err.c', 'openssl/crypto/http/http_lib.c', @@ -481,6 +540,7 @@ 'openssl/crypto/lhash/lhash.c', 'openssl/crypto/asn1_dsa.c', 'openssl/crypto/bsearch.c', + 'openssl/crypto/comp_methods.c', 'openssl/crypto/context.c', 'openssl/crypto/core_algorithm.c', 'openssl/crypto/core_fetch.c', @@ -490,10 +550,13 @@ 'openssl/crypto/cryptlib.c', 'openssl/crypto/ctype.c', 'openssl/crypto/cversion.c', + 'openssl/crypto/defaults.c', 'openssl/crypto/der_writer.c', + 'openssl/crypto/deterministic_nonce.c', 'openssl/crypto/ebcdic.c', 'openssl/crypto/ex_data.c', 'openssl/crypto/getenv.c', + 'openssl/crypto/indicator_core.c', 'openssl/crypto/info.c', 'openssl/crypto/init.c', 'openssl/crypto/initthread.c', @@ -517,12 +580,16 @@ 'openssl/crypto/provider_core.c', 'openssl/crypto/provider_predefined.c', 'openssl/crypto/punycode.c', + 'openssl/crypto/quic_vlint.c', 'openssl/crypto/self_test_core.c', + 'openssl/crypto/sleep.c', 'openssl/crypto/sparse_array.c', + 'openssl/crypto/ssl_err.c', 'openssl/crypto/threads_lib.c', 'openssl/crypto/threads_none.c', 'openssl/crypto/threads_pthread.c', 'openssl/crypto/threads_win.c', + 'openssl/crypto/time.c', 'openssl/crypto/trace.c', 'openssl/crypto/uid.c', 'openssl/crypto/md4/md4_dgst.c', @@ -532,6 +599,15 @@ 'openssl/crypto/md5/md5_sha1.c', 'openssl/crypto/mdc2/mdc2_one.c', 'openssl/crypto/mdc2/mdc2dgst.c', + 'openssl/crypto/ml_dsa/ml_dsa_encoders.c', + 'openssl/crypto/ml_dsa/ml_dsa_key.c', + 'openssl/crypto/ml_dsa/ml_dsa_key_compress.c', + 'openssl/crypto/ml_dsa/ml_dsa_matrix.c', + 'openssl/crypto/ml_dsa/ml_dsa_ntt.c', + 'openssl/crypto/ml_dsa/ml_dsa_params.c', + 'openssl/crypto/ml_dsa/ml_dsa_sample.c', + 'openssl/crypto/ml_dsa/ml_dsa_sign.c', + 'openssl/crypto/ml_kem/ml_kem.c', 'openssl/crypto/modes/cbc128.c', 'openssl/crypto/modes/ccm128.c', 'openssl/crypto/modes/cfb128.c', @@ -543,6 +619,7 @@ 'openssl/crypto/modes/siv128.c', 'openssl/crypto/modes/wrap128.c', 'openssl/crypto/modes/xts128.c', + 'openssl/crypto/modes/xts128gb.c', 'openssl/crypto/objects/o_names.c', 'openssl/crypto/objects/obj_dat.c', 'openssl/crypto/objects/obj_err.c', @@ -606,6 +683,7 @@ 'openssl/crypto/rand/rand_lib.c', 'openssl/crypto/rand/rand_meth.c', 'openssl/crypto/rand/rand_pool.c', + 'openssl/crypto/rand/rand_uniform.c', 'openssl/crypto/rand/randfile.c', 'openssl/crypto/rc2/rc2_cbc.c', 'openssl/crypto/rc2/rc2_ecb.c', @@ -652,6 +730,16 @@ 'openssl/crypto/sha/sha3.c', 'openssl/crypto/sha/sha512.c', 'openssl/crypto/siphash/siphash.c', + 'openssl/crypto/slh_dsa/slh_adrs.c', + 'openssl/crypto/slh_dsa/slh_dsa.c', + 'openssl/crypto/slh_dsa/slh_dsa_hash_ctx.c', + 'openssl/crypto/slh_dsa/slh_dsa_key.c', + 'openssl/crypto/slh_dsa/slh_fors.c', + 'openssl/crypto/slh_dsa/slh_hash.c', + 'openssl/crypto/slh_dsa/slh_hypertree.c', + 'openssl/crypto/slh_dsa/slh_params.c', + 'openssl/crypto/slh_dsa/slh_wots.c', + 'openssl/crypto/slh_dsa/slh_xmss.c', 'openssl/crypto/sm2/sm2_crypt.c', 'openssl/crypto/sm2/sm2_err.c', 'openssl/crypto/sm2/sm2_key.c', @@ -669,6 +757,12 @@ 'openssl/crypto/store/store_register.c', 'openssl/crypto/store/store_result.c', 'openssl/crypto/store/store_strings.c', + 'openssl/crypto/thread/arch/thread_none.c', + 'openssl/crypto/thread/arch/thread_posix.c', + 'openssl/crypto/thread/arch/thread_win.c', + 'openssl/crypto/thread/api.c', + 'openssl/crypto/thread/arch.c', + 'openssl/crypto/thread/internal.c', 'openssl/crypto/ts/ts_asn1.c', 'openssl/crypto/ts/ts_conf.c', 'openssl/crypto/ts/ts_err.c', @@ -697,14 +791,22 @@ 'openssl/crypto/x509/pcy_map.c', 'openssl/crypto/x509/pcy_node.c', 'openssl/crypto/x509/pcy_tree.c', + 'openssl/crypto/x509/t_acert.c', 'openssl/crypto/x509/t_crl.c', 'openssl/crypto/x509/t_req.c', 'openssl/crypto/x509/t_x509.c', + 'openssl/crypto/x509/v3_aaa.c', + 'openssl/crypto/x509/v3_ac_tgt.c', 'openssl/crypto/x509/v3_addr.c', 'openssl/crypto/x509/v3_admis.c', 'openssl/crypto/x509/v3_akeya.c', 'openssl/crypto/x509/v3_akid.c', 'openssl/crypto/x509/v3_asid.c', + 'openssl/crypto/x509/v3_attrdesc.c', + 'openssl/crypto/x509/v3_attrmap.c', + 'openssl/crypto/x509/v3_audit_id.c', + 'openssl/crypto/x509/v3_authattid.c', + 'openssl/crypto/x509/v3_battcons.c', 'openssl/crypto/x509/v3_bcons.c', 'openssl/crypto/x509/v3_bitst.c', 'openssl/crypto/x509/v3_conf.c', @@ -713,12 +815,17 @@ 'openssl/crypto/x509/v3_enum.c', 'openssl/crypto/x509/v3_extku.c', 'openssl/crypto/x509/v3_genn.c', + 'openssl/crypto/x509/v3_group_ac.c', 'openssl/crypto/x509/v3_ia5.c', + 'openssl/crypto/x509/v3_ind_iss.c', 'openssl/crypto/x509/v3_info.c', 'openssl/crypto/x509/v3_int.c', + 'openssl/crypto/x509/v3_iobo.c', 'openssl/crypto/x509/v3_ist.c', 'openssl/crypto/x509/v3_lib.c', 'openssl/crypto/x509/v3_ncons.c', + 'openssl/crypto/x509/v3_no_ass.c', + 'openssl/crypto/x509/v3_no_rev_avail.c', 'openssl/crypto/x509/v3_pci.c', 'openssl/crypto/x509/v3_pcia.c', 'openssl/crypto/x509/v3_pcons.c', @@ -726,13 +833,20 @@ 'openssl/crypto/x509/v3_pmaps.c', 'openssl/crypto/x509/v3_prn.c', 'openssl/crypto/x509/v3_purp.c', + 'openssl/crypto/x509/v3_rolespec.c', 'openssl/crypto/x509/v3_san.c', + 'openssl/crypto/x509/v3_sda.c', + 'openssl/crypto/x509/v3_single_use.c', 'openssl/crypto/x509/v3_skid.c', + 'openssl/crypto/x509/v3_soa_id.c', 'openssl/crypto/x509/v3_sxnet.c', + 'openssl/crypto/x509/v3_timespec.c', 'openssl/crypto/x509/v3_tlsf.c', + 'openssl/crypto/x509/v3_usernotice.c', 'openssl/crypto/x509/v3_utf8.c', 'openssl/crypto/x509/v3_utl.c', 'openssl/crypto/x509/v3err.c', + 'openssl/crypto/x509/x509_acert.c', 'openssl/crypto/x509/x509_att.c', 'openssl/crypto/x509/x509_cmp.c', 'openssl/crypto/x509/x509_d2.c', @@ -750,6 +864,7 @@ 'openssl/crypto/x509/x509_v3.c', 'openssl/crypto/x509/x509_vfy.c', 'openssl/crypto/x509/x509_vpm.c', + 'openssl/crypto/x509/x509aset.c', 'openssl/crypto/x509/x509cset.c', 'openssl/crypto/x509/x509name.c', 'openssl/crypto/x509/x509rset.c', @@ -759,6 +874,7 @@ 'openssl/crypto/x509/x_attrib.c', 'openssl/crypto/x509/x_crl.c', 'openssl/crypto/x509/x_exten.c', + 'openssl/crypto/x509/x_ietfatt.c', 'openssl/crypto/x509/x_name.c', 'openssl/crypto/x509/x_pubkey.c', 'openssl/crypto/x509/x_req.c', @@ -790,6 +906,9 @@ 'openssl/providers/implementations/ciphers/cipher_aes_ccm_hw.c', 'openssl/providers/implementations/ciphers/cipher_aes_gcm.c', 'openssl/providers/implementations/ciphers/cipher_aes_gcm_hw.c', + 'openssl/providers/implementations/ciphers/cipher_aes_gcm_siv.c', + 'openssl/providers/implementations/ciphers/cipher_aes_gcm_siv_hw.c', + 'openssl/providers/implementations/ciphers/cipher_aes_gcm_siv_polyval.c', 'openssl/providers/implementations/ciphers/cipher_aes_hw.c', 'openssl/providers/implementations/ciphers/cipher_aes_ocb.c', 'openssl/providers/implementations/ciphers/cipher_aes_ocb_hw.c', @@ -814,7 +933,13 @@ 'openssl/providers/implementations/ciphers/cipher_cts.c', 'openssl/providers/implementations/ciphers/cipher_null.c', 'openssl/providers/implementations/ciphers/cipher_sm4.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_ccm.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_ccm_hw.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_gcm.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_gcm_hw.c', 'openssl/providers/implementations/ciphers/cipher_sm4_hw.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_xts.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_xts_hw.c', 'openssl/providers/implementations/ciphers/cipher_tdes.c', 'openssl/providers/implementations/ciphers/cipher_tdes_common.c', 'openssl/providers/implementations/ciphers/cipher_tdes_default.c', @@ -843,11 +968,16 @@ 'openssl/providers/implementations/encode_decode/encode_key2ms.c', 'openssl/providers/implementations/encode_decode/encode_key2text.c', 'openssl/providers/implementations/encode_decode/endecoder_common.c', + 'openssl/providers/implementations/encode_decode/ml_common_codecs.c', + 'openssl/providers/implementations/encode_decode/ml_dsa_codecs.c', + 'openssl/providers/implementations/encode_decode/ml_kem_codecs.c', 'openssl/providers/implementations/exchange/dh_exch.c', 'openssl/providers/implementations/exchange/ecdh_exch.c', 'openssl/providers/implementations/exchange/ecx_exch.c', 'openssl/providers/implementations/exchange/kdf_exch.c', + 'openssl/providers/implementations/kdfs/argon2.c', 'openssl/providers/implementations/kdfs/hkdf.c', + 'openssl/providers/implementations/kdfs/hmacdrbg_kdf.c', 'openssl/providers/implementations/kdfs/kbkdf.c', 'openssl/providers/implementations/kdfs/krb5kdf.c', 'openssl/providers/implementations/kdfs/pbkdf2.c', @@ -858,6 +988,11 @@ 'openssl/providers/implementations/kdfs/sskdf.c', 'openssl/providers/implementations/kdfs/tls1_prf.c', 'openssl/providers/implementations/kdfs/x942kdf.c', + 'openssl/providers/implementations/kem/ec_kem.c', + 'openssl/providers/implementations/kem/ecx_kem.c', + 'openssl/providers/implementations/kem/kem_util.c', + 'openssl/providers/implementations/kem/ml_kem_kem.c', + 'openssl/providers/implementations/kem/mlx_kem.c', 'openssl/providers/implementations/kem/rsa_kem.c', 'openssl/providers/implementations/keymgmt/dh_kmgmt.c', 'openssl/providers/implementations/keymgmt/dsa_kmgmt.c', @@ -865,7 +1000,11 @@ 'openssl/providers/implementations/keymgmt/ecx_kmgmt.c', 'openssl/providers/implementations/keymgmt/kdf_legacy_kmgmt.c', 'openssl/providers/implementations/keymgmt/mac_legacy_kmgmt.c', + 'openssl/providers/implementations/keymgmt/ml_dsa_kmgmt.c', + 'openssl/providers/implementations/keymgmt/ml_kem_kmgmt.c', + 'openssl/providers/implementations/keymgmt/mlx_kmgmt.c', 'openssl/providers/implementations/keymgmt/rsa_kmgmt.c', + 'openssl/providers/implementations/keymgmt/slh_dsa_kmgmt.c', 'openssl/providers/implementations/macs/blake2b_mac.c', 'openssl/providers/implementations/macs/blake2s_mac.c', 'openssl/providers/implementations/macs/cmac_prov.c', @@ -874,12 +1013,12 @@ 'openssl/providers/implementations/macs/kmac_prov.c', 'openssl/providers/implementations/macs/poly1305_prov.c', 'openssl/providers/implementations/macs/siphash_prov.c', - 'openssl/providers/implementations/rands/crngt.c', 'openssl/providers/implementations/rands/drbg.c', 'openssl/providers/implementations/rands/drbg_ctr.c', 'openssl/providers/implementations/rands/drbg_hash.c', 'openssl/providers/implementations/rands/drbg_hmac.c', 'openssl/providers/implementations/rands/seed_src.c', + 'openssl/providers/implementations/rands/seed_src_jitter.c', 'openssl/providers/implementations/rands/test_rng.c', 'openssl/providers/implementations/rands/seeding/rand_cpu_x86.c', 'openssl/providers/implementations/rands/seeding/rand_tsc.c', @@ -889,17 +1028,24 @@ 'openssl/providers/implementations/signature/ecdsa_sig.c', 'openssl/providers/implementations/signature/eddsa_sig.c', 'openssl/providers/implementations/signature/mac_legacy_sig.c', + 'openssl/providers/implementations/signature/ml_dsa_sig.c', 'openssl/providers/implementations/signature/rsa_sig.c', + 'openssl/providers/implementations/signature/slh_dsa_sig.c', 'openssl/providers/implementations/signature/sm2_sig.c', + 'openssl/providers/implementations/skeymgmt/aes_skmgmt.c', + 'openssl/providers/implementations/skeymgmt/generic.c', 'openssl/providers/implementations/storemgmt/file_store.c', 'openssl/providers/implementations/storemgmt/file_store_any2obj.c', - 'openssl/ssl/s3_cbc.c', + 'openssl/providers/implementations/storemgmt/winstore_store.c', + 'openssl/ssl/record/methods/ssl3_cbc.c', 'openssl/providers/common/der/der_dsa_key.c', 'openssl/providers/common/der/der_dsa_sig.c', 'openssl/providers/common/der/der_ec_key.c', 'openssl/providers/common/der/der_ec_sig.c', 'openssl/providers/common/der/der_ecx_key.c', + 'openssl/providers/common/der/der_ml_dsa_key.c', 'openssl/providers/common/der/der_rsa_key.c', + 'openssl/providers/common/der/der_slh_dsa_key.c', 'openssl/providers/common/provider_ctx.c', 'openssl/providers/common/provider_err.c', 'openssl/providers/implementations/ciphers/ciphercommon.c', @@ -910,7 +1056,7 @@ 'openssl/providers/implementations/ciphers/ciphercommon_gcm_hw.c', 'openssl/providers/implementations/ciphers/ciphercommon_hw.c', 'openssl/providers/implementations/digests/digestcommon.c', - 'openssl/ssl/record/tls_pad.c', + 'openssl/ssl/record/methods/tls_pad.c', 'openssl/providers/implementations/ciphers/cipher_blowfish.c', 'openssl/providers/implementations/ciphers/cipher_blowfish_hw.c', 'openssl/providers/implementations/ciphers/cipher_cast5.c', @@ -935,6 +1081,7 @@ 'openssl/providers/implementations/digests/ripemd_prov.c', 'openssl/providers/implementations/digests/wp_prov.c', 'openssl/providers/implementations/kdfs/pbkdf1.c', + 'openssl/providers/implementations/kdfs/pvkkdf.c', 'openssl/providers/prov_running.c', 'openssl/providers/legacyprov.c', ], @@ -952,6 +1099,7 @@ './config/archs/VC-WIN32/asm_avx2/crypto/des/crypt586.asm', './config/archs/VC-WIN32/asm_avx2/crypto/des/des-586.asm', './config/archs/VC-WIN32/asm_avx2/crypto/ec/ecp_nistz256-x86.asm', + './config/archs/VC-WIN32/asm_avx2/crypto/params_idx.c', './config/archs/VC-WIN32/asm_avx2/crypto/x86cpuid.asm', './config/archs/VC-WIN32/asm_avx2/crypto/md5/md5-586.asm', './config/archs/VC-WIN32/asm_avx2/crypto/modes/ghash-x86.asm', @@ -968,7 +1116,9 @@ './config/archs/VC-WIN32/asm_avx2/providers/common/der/der_dsa_gen.c', './config/archs/VC-WIN32/asm_avx2/providers/common/der/der_ec_gen.c', './config/archs/VC-WIN32/asm_avx2/providers/common/der/der_ecx_gen.c', + './config/archs/VC-WIN32/asm_avx2/providers/common/der/der_ml_dsa_gen.c', './config/archs/VC-WIN32/asm_avx2/providers/common/der/der_rsa_gen.c', + './config/archs/VC-WIN32/asm_avx2/providers/common/der/der_slh_dsa_gen.c', './config/archs/VC-WIN32/asm_avx2/providers/common/der/der_wrap_gen.c', ], 'openssl_defines_VC-WIN32': [ diff --git a/deps/openssl/config/archs/VC-WIN32/asm_avx2/providers/common/der/der_ml_dsa_gen.c b/deps/openssl/config/archs/VC-WIN32/asm_avx2/providers/common/der/der_ml_dsa_gen.c new file mode 100644 index 00000000000000..4a8a113a268578 --- /dev/null +++ b/deps/openssl/config/archs/VC-WIN32/asm_avx2/providers/common/der/der_ml_dsa_gen.c @@ -0,0 +1,37 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from providers/common/der/der_ml_dsa_gen.c.in + * + * Copyright 2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include "prov/der_ml_dsa.h" + +/* Well known OIDs precompiled */ + +/* + * id-ml-dsa-44 OBJECT IDENTIFIER ::= { sigAlgs 17 } + */ +const unsigned char ossl_der_oid_id_ml_dsa_44[DER_OID_SZ_id_ml_dsa_44] = { + DER_OID_V_id_ml_dsa_44 +}; + +/* + * id-ml-dsa-65 OBJECT IDENTIFIER ::= { sigAlgs 18 } + */ +const unsigned char ossl_der_oid_id_ml_dsa_65[DER_OID_SZ_id_ml_dsa_65] = { + DER_OID_V_id_ml_dsa_65 +}; + +/* + * id-ml-dsa-87 OBJECT IDENTIFIER ::= { sigAlgs 19 } + */ +const unsigned char ossl_der_oid_id_ml_dsa_87[DER_OID_SZ_id_ml_dsa_87] = { + DER_OID_V_id_ml_dsa_87 +}; + diff --git a/deps/openssl/config/archs/VC-WIN32/asm_avx2/providers/common/der/der_slh_dsa_gen.c b/deps/openssl/config/archs/VC-WIN32/asm_avx2/providers/common/der/der_slh_dsa_gen.c new file mode 100644 index 00000000000000..1419a9515097dd --- /dev/null +++ b/deps/openssl/config/archs/VC-WIN32/asm_avx2/providers/common/der/der_slh_dsa_gen.c @@ -0,0 +1,100 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from providers/common/der/der_slh_dsa_gen.c.in + * + * Copyright 2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include "prov/der_slh_dsa.h" + +/* Well known OIDs precompiled */ + +/* + * id-slh-dsa-sha2-128s OBJECT IDENTIFIER ::= { sigAlgs 20 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_128s[DER_OID_SZ_id_slh_dsa_sha2_128s] = { + DER_OID_V_id_slh_dsa_sha2_128s +}; + +/* + * id-slh-dsa-sha2-128f OBJECT IDENTIFIER ::= { sigAlgs 21 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_128f[DER_OID_SZ_id_slh_dsa_sha2_128f] = { + DER_OID_V_id_slh_dsa_sha2_128f +}; + +/* + * id-slh-dsa-sha2-192s OBJECT IDENTIFIER ::= { sigAlgs 22 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_192s[DER_OID_SZ_id_slh_dsa_sha2_192s] = { + DER_OID_V_id_slh_dsa_sha2_192s +}; + +/* + * id-slh-dsa-sha2-192f OBJECT IDENTIFIER ::= { sigAlgs 23 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_192f[DER_OID_SZ_id_slh_dsa_sha2_192f] = { + DER_OID_V_id_slh_dsa_sha2_192f +}; + +/* + * id-slh-dsa-sha2-256s OBJECT IDENTIFIER ::= { sigAlgs 24 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_256s[DER_OID_SZ_id_slh_dsa_sha2_256s] = { + DER_OID_V_id_slh_dsa_sha2_256s +}; + +/* + * id-slh-dsa-sha2-256f OBJECT IDENTIFIER ::= { sigAlgs 25 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_256f[DER_OID_SZ_id_slh_dsa_sha2_256f] = { + DER_OID_V_id_slh_dsa_sha2_256f +}; + +/* + * id-slh-dsa-shake-128s OBJECT IDENTIFIER ::= { sigAlgs 26 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_128s[DER_OID_SZ_id_slh_dsa_shake_128s] = { + DER_OID_V_id_slh_dsa_shake_128s +}; + +/* + * id-slh-dsa-shake-128f OBJECT IDENTIFIER ::= { sigAlgs 27 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_128f[DER_OID_SZ_id_slh_dsa_shake_128f] = { + DER_OID_V_id_slh_dsa_shake_128f +}; + +/* + * id-slh-dsa-shake-192s OBJECT IDENTIFIER ::= { sigAlgs 28 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_192s[DER_OID_SZ_id_slh_dsa_shake_192s] = { + DER_OID_V_id_slh_dsa_shake_192s +}; + +/* + * id-slh-dsa-shake-192f OBJECT IDENTIFIER ::= { sigAlgs 29 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_192f[DER_OID_SZ_id_slh_dsa_shake_192f] = { + DER_OID_V_id_slh_dsa_shake_192f +}; + +/* + * id-slh-dsa-shake-256s OBJECT IDENTIFIER ::= { sigAlgs 30 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_256s[DER_OID_SZ_id_slh_dsa_shake_256s] = { + DER_OID_V_id_slh_dsa_shake_256s +}; + +/* + * id-slh-dsa-shake-256f OBJECT IDENTIFIER ::= { sigAlgs 31 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_256f[DER_OID_SZ_id_slh_dsa_shake_256f] = { + DER_OID_V_id_slh_dsa_shake_256f +}; + diff --git a/deps/openssl/config/archs/VC-WIN32/asm_avx2/providers/common/include/prov/der_ml_dsa.h b/deps/openssl/config/archs/VC-WIN32/asm_avx2/providers/common/include/prov/der_ml_dsa.h new file mode 100644 index 00000000000000..c55f780ab4527c --- /dev/null +++ b/deps/openssl/config/archs/VC-WIN32/asm_avx2/providers/common/include/prov/der_ml_dsa.h @@ -0,0 +1,40 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from providers/common/include/prov/der_ml_dsa.h.in + * + * Copyright 2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include "internal/der.h" +#include "crypto/ml_dsa.h" + +/* Well known OIDs precompiled */ + +/* + * id-ml-dsa-44 OBJECT IDENTIFIER ::= { sigAlgs 17 } + */ +#define DER_OID_V_id_ml_dsa_44 DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x11 +#define DER_OID_SZ_id_ml_dsa_44 11 +extern const unsigned char ossl_der_oid_id_ml_dsa_44[DER_OID_SZ_id_ml_dsa_44]; + +/* + * id-ml-dsa-65 OBJECT IDENTIFIER ::= { sigAlgs 18 } + */ +#define DER_OID_V_id_ml_dsa_65 DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x12 +#define DER_OID_SZ_id_ml_dsa_65 11 +extern const unsigned char ossl_der_oid_id_ml_dsa_65[DER_OID_SZ_id_ml_dsa_65]; + +/* + * id-ml-dsa-87 OBJECT IDENTIFIER ::= { sigAlgs 19 } + */ +#define DER_OID_V_id_ml_dsa_87 DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x13 +#define DER_OID_SZ_id_ml_dsa_87 11 +extern const unsigned char ossl_der_oid_id_ml_dsa_87[DER_OID_SZ_id_ml_dsa_87]; + + +int ossl_DER_w_algorithmIdentifier_ML_DSA(WPACKET *pkt, int tag, ML_DSA_KEY *key); diff --git a/deps/openssl/config/archs/VC-WIN32/asm_avx2/providers/common/include/prov/der_slh_dsa.h b/deps/openssl/config/archs/VC-WIN32/asm_avx2/providers/common/include/prov/der_slh_dsa.h new file mode 100644 index 00000000000000..760f8e7699be72 --- /dev/null +++ b/deps/openssl/config/archs/VC-WIN32/asm_avx2/providers/common/include/prov/der_slh_dsa.h @@ -0,0 +1,103 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from providers/common/include/prov/der_slh_dsa.h.in + * + * Copyright 2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include "internal/der.h" +#include "crypto/slh_dsa.h" + +/* Well known OIDs precompiled */ + +/* + * id-slh-dsa-sha2-128s OBJECT IDENTIFIER ::= { sigAlgs 20 } + */ +#define DER_OID_V_id_slh_dsa_sha2_128s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x14 +#define DER_OID_SZ_id_slh_dsa_sha2_128s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_128s[DER_OID_SZ_id_slh_dsa_sha2_128s]; + +/* + * id-slh-dsa-sha2-128f OBJECT IDENTIFIER ::= { sigAlgs 21 } + */ +#define DER_OID_V_id_slh_dsa_sha2_128f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x15 +#define DER_OID_SZ_id_slh_dsa_sha2_128f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_128f[DER_OID_SZ_id_slh_dsa_sha2_128f]; + +/* + * id-slh-dsa-sha2-192s OBJECT IDENTIFIER ::= { sigAlgs 22 } + */ +#define DER_OID_V_id_slh_dsa_sha2_192s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x16 +#define DER_OID_SZ_id_slh_dsa_sha2_192s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_192s[DER_OID_SZ_id_slh_dsa_sha2_192s]; + +/* + * id-slh-dsa-sha2-192f OBJECT IDENTIFIER ::= { sigAlgs 23 } + */ +#define DER_OID_V_id_slh_dsa_sha2_192f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x17 +#define DER_OID_SZ_id_slh_dsa_sha2_192f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_192f[DER_OID_SZ_id_slh_dsa_sha2_192f]; + +/* + * id-slh-dsa-sha2-256s OBJECT IDENTIFIER ::= { sigAlgs 24 } + */ +#define DER_OID_V_id_slh_dsa_sha2_256s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x18 +#define DER_OID_SZ_id_slh_dsa_sha2_256s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_256s[DER_OID_SZ_id_slh_dsa_sha2_256s]; + +/* + * id-slh-dsa-sha2-256f OBJECT IDENTIFIER ::= { sigAlgs 25 } + */ +#define DER_OID_V_id_slh_dsa_sha2_256f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x19 +#define DER_OID_SZ_id_slh_dsa_sha2_256f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_256f[DER_OID_SZ_id_slh_dsa_sha2_256f]; + +/* + * id-slh-dsa-shake-128s OBJECT IDENTIFIER ::= { sigAlgs 26 } + */ +#define DER_OID_V_id_slh_dsa_shake_128s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1A +#define DER_OID_SZ_id_slh_dsa_shake_128s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_128s[DER_OID_SZ_id_slh_dsa_shake_128s]; + +/* + * id-slh-dsa-shake-128f OBJECT IDENTIFIER ::= { sigAlgs 27 } + */ +#define DER_OID_V_id_slh_dsa_shake_128f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1B +#define DER_OID_SZ_id_slh_dsa_shake_128f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_128f[DER_OID_SZ_id_slh_dsa_shake_128f]; + +/* + * id-slh-dsa-shake-192s OBJECT IDENTIFIER ::= { sigAlgs 28 } + */ +#define DER_OID_V_id_slh_dsa_shake_192s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1C +#define DER_OID_SZ_id_slh_dsa_shake_192s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_192s[DER_OID_SZ_id_slh_dsa_shake_192s]; + +/* + * id-slh-dsa-shake-192f OBJECT IDENTIFIER ::= { sigAlgs 29 } + */ +#define DER_OID_V_id_slh_dsa_shake_192f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1D +#define DER_OID_SZ_id_slh_dsa_shake_192f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_192f[DER_OID_SZ_id_slh_dsa_shake_192f]; + +/* + * id-slh-dsa-shake-256s OBJECT IDENTIFIER ::= { sigAlgs 30 } + */ +#define DER_OID_V_id_slh_dsa_shake_256s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1E +#define DER_OID_SZ_id_slh_dsa_shake_256s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_256s[DER_OID_SZ_id_slh_dsa_shake_256s]; + +/* + * id-slh-dsa-shake-256f OBJECT IDENTIFIER ::= { sigAlgs 31 } + */ +#define DER_OID_V_id_slh_dsa_shake_256f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1F +#define DER_OID_SZ_id_slh_dsa_shake_256f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_256f[DER_OID_SZ_id_slh_dsa_shake_256f]; + + +int ossl_DER_w_algorithmIdentifier_SLH_DSA(WPACKET *pkt, int tag, SLH_DSA_KEY *key); diff --git a/deps/openssl/config/archs/VC-WIN32/no-asm/apps/progs.c b/deps/openssl/config/archs/VC-WIN32/no-asm/apps/progs.c index 43cef00799b86e..acc204a3e6e781 100644 --- a/deps/openssl/config/archs/VC-WIN32/no-asm/apps/progs.c +++ b/deps/openssl/config/archs/VC-WIN32/no-asm/apps/progs.c @@ -89,6 +89,7 @@ FUNCTION functions[] = { {FT_general, "s_time", s_time_main, s_time_options, NULL, NULL}, #endif {FT_general, "sess_id", sess_id_main, sess_id_options, NULL, NULL}, + {FT_general, "skeyutl", skeyutl_main, skeyutl_options, NULL, NULL}, {FT_general, "smime", smime_main, smime_options, NULL, NULL}, {FT_general, "speed", speed_main, speed_options, NULL, NULL}, {FT_general, "spkac", spkac_main, spkac_options, NULL, NULL}, @@ -225,9 +226,15 @@ FUNCTION functions[] = { {FT_cipher, "camellia-256-ecb", enc_main, enc_options, NULL}, #endif {FT_cipher, "base64", enc_main, enc_options, NULL}, -#ifdef ZLIB +#ifndef OPENSSL_NO_ZLIB {FT_cipher, "zlib", enc_main, enc_options, NULL}, #endif +#ifndef OPENSSL_NO_BROTLI + {FT_cipher, "brotli", enc_main, enc_options, NULL}, +#endif +#ifndef OPENSSL_NO_ZSTD + {FT_cipher, "zstd", enc_main, enc_options, NULL}, +#endif #ifndef OPENSSL_NO_DES {FT_cipher, "des", enc_main, enc_options, NULL}, #endif diff --git a/deps/openssl/config/archs/VC-WIN32/no-asm/configdata.pm b/deps/openssl/config/archs/VC-WIN32/no-asm/configdata.pm index a92b4f30d07262..4217efcd6a39c7 100644 --- a/deps/openssl/config/archs/VC-WIN32/no-asm/configdata.pm +++ b/deps/openssl/config/archs/VC-WIN32/no-asm/configdata.pm @@ -19,6 +19,7 @@ our %config = ( "/nologo" ], "AS" => "nasm", + "ASFLAGS" => [], "CC" => "cl", "CFLAGS" => [ "/W3 /wd4090 /nologo /O2" @@ -29,6 +30,7 @@ our %config = ( "CPPINCLUDES" => [], "CXXFLAGS" => [], "FIPSKEY" => "f4556650ac31d35461610bac4ed81b1a181b2d8a43ea2854cbae22ca74560813", + "FIPS_VENDOR" => "OpenSSL FIPS Provider", "HASHBANGPERL" => "/usr/bin/env perl", "LD" => "link", "LDFLAGS" => [ @@ -43,7 +45,7 @@ our %config = ( "RANLIB" => "ranlib", "RC" => "rc", "RCFLAGS" => [], - "api" => "30000", + "api" => "30500", "b32" => "1", "b64" => "0", "b64l" => "0", @@ -65,11 +67,13 @@ our %config = ( "doc/build.info", "test/build.info", "engines/build.info", + "exporters/build.info", "crypto/objects/build.info", "crypto/buffer/build.info", "crypto/bio/build.info", "crypto/stack/build.info", "crypto/lhash/build.info", + "crypto/hashtable/build.info", "crypto/rand/build.info", "crypto/evp/build.info", "crypto/asn1/build.info", @@ -87,6 +91,7 @@ our %config = ( "crypto/md5/build.info", "crypto/sha/build.info", "crypto/mdc2/build.info", + "crypto/ml_kem/build.info", "crypto/hmac/build.info", "crypto/ripemd/build.info", "crypto/whrlpool/build.info", @@ -128,11 +133,19 @@ our %config = ( "crypto/cmp/build.info", "crypto/encode_decode/build.info", "crypto/ffc/build.info", + "crypto/hpke/build.info", + "crypto/thread/build.info", + "crypto/ml_dsa/build.info", + "crypto/slh_dsa/build.info", + "ssl/record/build.info", + "ssl/rio/build.info", + "ssl/quic/build.info", "apps/lib/build.info", "providers/common/build.info", "providers/implementations/build.info", "providers/fips/build.info", "doc/man1/build.info", + "ssl/record/methods/build.info", "providers/common/der/build.info", "providers/implementations/digests/build.info", "providers/implementations/ciphers/build.info", @@ -146,6 +159,7 @@ our %config = ( "providers/implementations/encode_decode/build.info", "providers/implementations/storemgmt/build.info", "providers/implementations/kem/build.info", + "providers/implementations/skeymgmt/build.info", "providers/implementations/rands/seeding/build.info" ], "build_metadata" => "", @@ -163,7 +177,7 @@ our %config = ( ], "dynamic_engines" => "0", "ex_libs" => [], - "full_version" => "3.0.17", + "full_version" => "3.5.1", "includes" => [], "lflags" => [], "lib_defines" => [ @@ -173,9 +187,9 @@ our %config = ( "major" => "3", "makedep_scheme" => "VC", "makedepcmd" => "\$(CC) /Zs /showIncludes", - "minor" => "0", + "minor" => "5", "openssl_api_defines" => [ - "OPENSSL_CONFIGURED_API=30000" + "OPENSSL_CONFIGURED_API=30500" ], "openssl_feature_defines" => [ "OPENSSL_RAND_SEED_OS", @@ -183,28 +197,42 @@ our %config = ( "OPENSSL_NO_AFALGENG", "OPENSSL_NO_ASAN", "OPENSSL_NO_ASM", + "OPENSSL_NO_BROTLI", + "OPENSSL_NO_BROTLI_DYNAMIC", "OPENSSL_NO_COMP", "OPENSSL_NO_CRYPTO_MDEBUG", "OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE", + "OPENSSL_NO_DEMOS", "OPENSSL_NO_DEVCRYPTOENG", "OPENSSL_NO_EC_NISTP_64_GCC_128", "OPENSSL_NO_EGD", "OPENSSL_NO_EXTERNAL_TESTS", + "OPENSSL_NO_FIPS_JITTER", "OPENSSL_NO_FUZZ_AFL", "OPENSSL_NO_FUZZ_LIBFUZZER", + "OPENSSL_NO_H3DEMO", + "OPENSSL_NO_HQINTEROP", + "OPENSSL_NO_JITTER", "OPENSSL_NO_KTLS", "OPENSSL_NO_LOADERENG", "OPENSSL_NO_MD2", "OPENSSL_NO_MSAN", + "OPENSSL_NO_PIE", "OPENSSL_NO_RC5", "OPENSSL_NO_SCTP", "OPENSSL_NO_SSL3", "OPENSSL_NO_SSL3_METHOD", + "OPENSSL_NO_SSLKEYLOG", + "OPENSSL_NO_TFO", "OPENSSL_NO_TRACE", "OPENSSL_NO_UBSAN", "OPENSSL_NO_UNIT_TEST", "OPENSSL_NO_UPLINK", "OPENSSL_NO_WEAK_SSL_CIPHERS", + "OPENSSL_NO_ZLIB", + "OPENSSL_NO_ZLIB_DYNAMIC", + "OPENSSL_NO_ZSTD", + "OPENSSL_NO_ZSTD_DYNAMIC", "OPENSSL_NO_DYNAMIC_ENGINE" ], "openssl_other_defines" => [ @@ -214,11 +242,11 @@ our %config = ( "OPENSSL_SYS_WIN32" ], "openssldir" => "", - "options" => "enable-ssl-trace enable-fips no-afalgeng no-asan no-asm no-buildtest-c++ no-comp no-crypto-mdebug no-crypto-mdebug-backtrace no-devcryptoeng no-dynamic-engine no-ec_nistp_64_gcc_128 no-egd no-external-tests no-fuzz-afl no-fuzz-libfuzzer no-ktls no-loadereng no-md2 no-msan no-rc5 no-sctp no-shared no-ssl3 no-ssl3-method no-trace no-ubsan no-unit-test no-uplink no-weak-ssl-ciphers no-zlib no-zlib-dynamic", - "patch" => "17", + "options" => "enable-ssl-trace enable-fips no-afalgeng no-asan no-asm no-brotli no-brotli-dynamic no-buildtest-c++ no-comp no-crypto-mdebug no-crypto-mdebug-backtrace no-demos no-devcryptoeng no-dynamic-engine no-ec_nistp_64_gcc_128 no-egd no-external-tests no-fips-jitter no-fuzz-afl no-fuzz-libfuzzer no-h3demo no-hqinterop no-jitter no-ktls no-loadereng no-md2 no-msan no-pie no-rc5 no-sctp no-shared no-ssl3 no-ssl3-method no-sslkeylog no-tfo no-trace no-ubsan no-unit-test no-uplink no-weak-ssl-ciphers no-zlib no-zlib-dynamic no-zstd no-zstd-dynamic", + "patch" => "1", "perl_archname" => "x86_64-linux-gnu-thread-multi", "perl_cmd" => "/usr/bin/perl", - "perl_version" => "5.38.2", + "perl_version" => "5.34.0", "perlargv" => [ "no-comp", "no-shared", @@ -249,6 +277,7 @@ our %config = ( "LDLIBS" => undef, "MT" => undef, "MTFLAGS" => undef, + "OBJCOPY" => undef, "OPENSSL_LOCAL_CONFIG_DIR" => undef, "PERL" => undef, "RANLIB" => undef, @@ -272,7 +301,7 @@ our %config = ( "shlib_version" => "3", "sourcedir" => ".", "target" => "VC-WIN32", - "version" => "3.0.17" + "version" => "3.5.1" ); our %target = ( "AR" => "lib", @@ -287,7 +316,7 @@ our %target = ( "LDFLAGS" => "/nologo /debug", "MT" => "mt", "MTFLAGS" => "-nologo", - "RANLIB" => "CODE(0x556f297fb5a8)", + "RANLIB" => "CODE(0x55b60cdb1fe0)", "RC" => "rc", "_conf_fname_int" => [ "Configurations/00-base-templates.conf", @@ -370,6 +399,8 @@ our %target = ( our @disablables = ( "acvp-tests", "afalgeng", + "apps", + "argon2", "aria", "asan", "asm", @@ -380,11 +411,14 @@ our @disablables = ( "autoload-config", "bf", "blake2", + "brotli", + "brotli-dynamic", "buildtest-c++", "bulk", "cached-fetch", "camellia", "capieng", + "winstore", "cast", "chacha", "cmac", @@ -393,11 +427,16 @@ our @disablables = ( "comp", "crypto-mdebug", "ct", + "default-thread-pool", + "demos", + "h3demo", + "hqinterop", "deprecated", "des", "devcryptoeng", "dgram", "dh", + "docs", "dsa", "dso", "dtls", @@ -407,6 +446,7 @@ our @disablables = ( "ec_nistp_64_gcc_128", "ecdh", "ecdsa", + "ecx", "egd", "engine", "err", @@ -414,10 +454,15 @@ our @disablables = ( "filenames", "fips", "fips-securitychecks", + "fips-post", + "fips-jitter", "fuzz-afl", "fuzz-libfuzzer", "gost", + "http", "idea", + "integrity-only-ciphers", + "jitter", "ktls", "legacy", "loadereng", @@ -425,6 +470,8 @@ our @disablables = ( "md2", "md4", "mdc2", + "ml-dsa", + "ml-kem", "module", "msan", "multiblock", @@ -433,10 +480,13 @@ our @disablables = ( "ocsp", "padlockeng", "pic", + "pie", "pinshared", "poly1305", "posix-io", "psk", + "quic", + "unstable-qlog", "rc2", "rc4", "rc5", @@ -450,7 +500,9 @@ our @disablables = ( "shared", "siphash", "siv", + "slh-dsa", "sm2", + "sm2-precomp", "sm3", "sm4", "sock", @@ -461,9 +513,13 @@ our @disablables = ( "ssl-trace", "static-engine", "stdio", + "sslkeylog", "tests", + "tfo", + "thread-pool", "threads", "tls", + "tls-deprecated-ec", "trace", "ts", "ubsan", @@ -474,6 +530,8 @@ our @disablables = ( "whirlpool", "zlib", "zlib-dynamic", + "zstd", + "zstd-dynamic", "ssl3", "ssl3-method", "tls1", @@ -495,33 +553,45 @@ our %disabled = ( "afalgeng" => "option", "asan" => "default", "asm" => "option", + "brotli" => "default", + "brotli-dynamic" => "default", "buildtest-c++" => "default", "comp" => "option", "crypto-mdebug" => "default", "crypto-mdebug-backtrace" => "default", + "demos" => "default", "devcryptoeng" => "default", "dynamic-engine" => "cascade", "ec_nistp_64_gcc_128" => "default", "egd" => "default", "external-tests" => "default", + "fips-jitter" => "default", "fuzz-afl" => "default", "fuzz-libfuzzer" => "default", + "h3demo" => "default", + "hqinterop" => "default", + "jitter" => "default", "ktls" => "default", "loadereng" => "cascade", "md2" => "default", "msan" => "default", + "pie" => "default", "rc5" => "default", "sctp" => "default", "shared" => "option", "ssl3" => "default", "ssl3-method" => "default", + "sslkeylog" => "default", + "tfo" => "default", "trace" => "default", "ubsan" => "default", "unit-test" => "default", "uplink" => "cascade", "weak-ssl-ciphers" => "default", "zlib" => "default", - "zlib-dynamic" => "default" + "zlib-dynamic" => "default", + "zstd" => "default", + "zstd-dynamic" => "default" ); our %withargs = (); our %unified_info = ( @@ -747,6 +817,11 @@ our %unified_info = ( "pod" => "1" } }, + "doc/man1/openssl-skeyutl.pod" => { + "doc/man1/openssl-skeyutl.pod.in" => { + "pod" => "1" + } + }, "doc/man1/openssl-smime.pod" => { "doc/man1/openssl-smime.pod.in" => { "pod" => "1" @@ -804,6 +879,21 @@ our %unified_info = ( } }, "generate" => { + "exporters/OpenSSLConfig.cmake" => { + "exporter" => "cmake" + }, + "exporters/OpenSSLConfigVersion.cmake" => { + "exporter" => "cmake" + }, + "exporters/libcrypto.pc" => { + "exporter" => "pkg-config" + }, + "exporters/libssl.pc" => { + "exporter" => "pkg-config" + }, + "exporters/openssl.pc" => { + "exporter" => "pkg-config" + }, "include/openssl/configuration.h" => { "skip" => "1" } @@ -824,6 +914,9 @@ our %unified_info = ( "providers/liblegacy.a" => { "noinst" => "1" }, + "providers/libtemplate.a" => { + "noinst" => "1" + }, "test/libtestutil.a" => { "has_main" => "1", "noinst" => "1" @@ -841,6 +934,9 @@ our %unified_info = ( } }, "programs" => { + "fuzz/acert-test" => { + "noinst" => "1" + }, "fuzz/asn1-test" => { "noinst" => "1" }, @@ -871,9 +967,60 @@ our %unified_info = ( "fuzz/ct-test" => { "noinst" => "1" }, + "fuzz/decoder-test" => { + "noinst" => "1" + }, + "fuzz/dtlsclient-test" => { + "noinst" => "1" + }, + "fuzz/dtlsserver-test" => { + "noinst" => "1" + }, + "fuzz/hashtable-test" => { + "noinst" => "1" + }, + "fuzz/ml-dsa-test" => { + "noinst" => "1" + }, + "fuzz/ml-kem-test" => { + "noinst" => "1" + }, + "fuzz/pem-test" => { + "noinst" => "1" + }, + "fuzz/provider-test" => { + "noinst" => "1" + }, + "fuzz/punycode-test" => { + "noinst" => "1" + }, + "fuzz/quic-client-test" => { + "noinst" => "1" + }, + "fuzz/quic-lcidm-test" => { + "noinst" => "1" + }, + "fuzz/quic-rcidm-test" => { + "noinst" => "1" + }, + "fuzz/quic-server-test" => { + "noinst" => "1" + }, + "fuzz/quic-srtm-test" => { + "noinst" => "1" + }, "fuzz/server-test" => { "noinst" => "1" }, + "fuzz/slh-dsa-test" => { + "noinst" => "1" + }, + "fuzz/smime-test" => { + "noinst" => "1" + }, + "fuzz/v3name-test" => { + "noinst" => "1" + }, "fuzz/x509-test" => { "noinst" => "1" }, @@ -925,18 +1072,30 @@ our %unified_info = ( "test/bftest" => { "noinst" => "1" }, + "test/bio_addr_test" => { + "noinst" => "1" + }, + "test/bio_base64_test" => { + "noinst" => "1" + }, "test/bio_callback_test" => { "noinst" => "1" }, "test/bio_core_test" => { "noinst" => "1" }, + "test/bio_dgram_test" => { + "noinst" => "1" + }, "test/bio_enc_test" => { "noinst" => "1" }, "test/bio_memleak_test" => { "noinst" => "1" }, + "test/bio_meth_test" => { + "noinst" => "1" + }, "test/bio_prefix_text" => { "noinst" => "1" }, @@ -946,6 +1105,9 @@ our %unified_info = ( "test/bio_readbuffer_test" => { "noinst" => "1" }, + "test/bio_tfo_test" => { + "noinst" => "1" + }, "test/bioprinttest" => { "noinst" => "1" }, @@ -955,6 +1117,9 @@ our %unified_info = ( "test/bntest" => { "noinst" => "1" }, + "test/build_wincrypt_test" => { + "noinst" => "1" + }, "test/buildtest_c_aes" => { "noinst" => "1" }, @@ -970,6 +1135,9 @@ our %unified_info = ( "test/buildtest_c_buffer" => { "noinst" => "1" }, + "test/buildtest_c_byteorder" => { + "noinst" => "1" + }, "test/buildtest_c_camellia" => { "noinst" => "1" }, @@ -994,9 +1162,6 @@ our %unified_info = ( "test/buildtest_c_core_dispatch" => { "noinst" => "1" }, - "test/buildtest_c_core_names" => { - "noinst" => "1" - }, "test/buildtest_c_core_object" => { "noinst" => "1" }, @@ -1021,6 +1186,9 @@ our %unified_info = ( "test/buildtest_c_e_os2" => { "noinst" => "1" }, + "test/buildtest_c_e_ostime" => { + "noinst" => "1" + }, "test/buildtest_c_ebcdic" => { "noinst" => "1" }, @@ -1048,12 +1216,18 @@ our %unified_info = ( "test/buildtest_c_hmac" => { "noinst" => "1" }, + "test/buildtest_c_hpke" => { + "noinst" => "1" + }, "test/buildtest_c_http" => { "noinst" => "1" }, "test/buildtest_c_idea" => { "noinst" => "1" }, + "test/buildtest_c_indicator" => { + "noinst" => "1" + }, "test/buildtest_c_kdf" => { "noinst" => "1" }, @@ -1069,6 +1243,9 @@ our %unified_info = ( "test/buildtest_c_mdc2" => { "noinst" => "1" }, + "test/buildtest_c_ml_kem" => { + "noinst" => "1" + }, "test/buildtest_c_modes" => { "noinst" => "1" }, @@ -1099,6 +1276,9 @@ our %unified_info = ( "test/buildtest_c_provider" => { "noinst" => "1" }, + "test/buildtest_c_quic" => { + "noinst" => "1" + }, "test/buildtest_c_rand" => { "noinst" => "1" }, @@ -1141,6 +1321,9 @@ our %unified_info = ( "test/buildtest_c_symhacks" => { "noinst" => "1" }, + "test/buildtest_c_thread" => { + "noinst" => "1" + }, "test/buildtest_c_tls1" => { "noinst" => "1" }, @@ -1156,6 +1339,12 @@ our %unified_info = ( "test/buildtest_c_whrlpool" => { "noinst" => "1" }, + "test/byteorder_test" => { + "noinst" => "1" + }, + "test/ca_internals_test" => { + "noinst" => "1" + }, "test/casttest" => { "noinst" => "1" }, @@ -1240,6 +1429,9 @@ our %unified_info = ( "test/danetest" => { "noinst" => "1" }, + "test/decoder_propq_test" => { + "noinst" => "1" + }, "test/defltfips_test" => { "noinst" => "1" }, @@ -1312,15 +1504,24 @@ our %unified_info = ( "test/evp_pkey_ctx_new_from_name" => { "noinst" => "1" }, + "test/evp_pkey_dhkem_test" => { + "noinst" => "1" + }, "test/evp_pkey_dparams_test" => { "noinst" => "1" }, "test/evp_pkey_provided_test" => { "noinst" => "1" }, + "test/evp_skey_test" => { + "noinst" => "1" + }, "test/evp_test" => { "noinst" => "1" }, + "test/evp_xof_test" => { + "noinst" => "1" + }, "test/exdatatest" => { "noinst" => "1" }, @@ -1348,6 +1549,9 @@ our %unified_info = ( "test/hmactest" => { "noinst" => "1" }, + "test/hpke_test" => { + "noinst" => "1" + }, "test/http_test" => { "noinst" => "1" }, @@ -1357,12 +1561,18 @@ our %unified_info = ( "test/igetest" => { "noinst" => "1" }, + "test/json_test" => { + "noinst" => "1" + }, "test/keymgmt_internal_test" => { "noinst" => "1" }, "test/lhash_test" => { "noinst" => "1" }, + "test/list_test" => { + "noinst" => "1" + }, "test/localetest" => { "noinst" => "1" }, @@ -1372,9 +1582,21 @@ our %unified_info = ( "test/mdc2test" => { "noinst" => "1" }, + "test/membio_test" => { + "noinst" => "1" + }, "test/memleaktest" => { "noinst" => "1" }, + "test/ml_dsa_test" => { + "noinst" => "1" + }, + "test/ml_kem_evp_extra_test" => { + "noinst" => "1" + }, + "test/ml_kem_internal_test" => { + "noinst" => "1" + }, "test/modes_internal_test" => { "noinst" => "1" }, @@ -1393,6 +1615,9 @@ our %unified_info = ( "test/packettest" => { "noinst" => "1" }, + "test/pairwise_fail_test" => { + "noinst" => "1" + }, "test/param_build_test" => { "noinst" => "1" }, @@ -1417,6 +1642,9 @@ our %unified_info = ( "test/pemtest" => { "noinst" => "1" }, + "test/pkcs12_api_test" => { + "noinst" => "1" + }, "test/pkcs12_format_test" => { "noinst" => "1" }, @@ -1432,6 +1660,9 @@ our %unified_info = ( "test/poly1305_internal_test" => { "noinst" => "1" }, + "test/priority_queue_test" => { + "noinst" => "1" + }, "test/property_test" => { "noinst" => "1" }, @@ -1441,6 +1672,9 @@ our %unified_info = ( "test/provfetchtest" => { "noinst" => "1" }, + "test/provider_default_search_path_test" => { + "noinst" => "1" + }, "test/provider_fallback_test" => { "noinst" => "1" }, @@ -1459,6 +1693,72 @@ our %unified_info = ( "test/punycode_test" => { "noinst" => "1" }, + "test/quic_ackm_test" => { + "noinst" => "1" + }, + "test/quic_cc_test" => { + "noinst" => "1" + }, + "test/quic_cfq_test" => { + "noinst" => "1" + }, + "test/quic_client_test" => { + "noinst" => "1" + }, + "test/quic_fc_test" => { + "noinst" => "1" + }, + "test/quic_fifd_test" => { + "noinst" => "1" + }, + "test/quic_lcidm_test" => { + "noinst" => "1" + }, + "test/quic_multistream_test" => { + "noinst" => "1" + }, + "test/quic_newcid_test" => { + "noinst" => "1" + }, + "test/quic_qlog_test" => { + "noinst" => "1" + }, + "test/quic_radix_test" => { + "noinst" => "1" + }, + "test/quic_rcidm_test" => { + "noinst" => "1" + }, + "test/quic_record_test" => { + "noinst" => "1" + }, + "test/quic_srt_gen_test" => { + "noinst" => "1" + }, + "test/quic_srtm_test" => { + "noinst" => "1" + }, + "test/quic_stream_test" => { + "noinst" => "1" + }, + "test/quic_tserver_test" => { + "noinst" => "1" + }, + "test/quic_txp_test" => { + "noinst" => "1" + }, + "test/quic_txpim_test" => { + "noinst" => "1" + }, + "test/quic_wire_test" => { + "noinst" => "1" + }, + "test/quicapitest" => { + "noinst" => "1" + }, + "test/quicfaultstest" => { + "noinst" => "1" + }, "test/rand_status_test" => { "noinst" => "1" }, @@ -1474,12 +1774,15 @@ our %unified_info = ( "test/rc5test" => { "noinst" => "1" }, - "test/rdrand_sanitytest" => { + "test/rdcpu_sanitytest" => { "noinst" => "1" }, "test/recordlentest" => { "noinst" => "1" }, + "test/rpktest" => { + "noinst" => "1" + }, "test/rsa_complex" => { "noinst" => "1" }, @@ -1492,6 +1795,12 @@ our %unified_info = ( "test/rsa_test" => { "noinst" => "1" }, + "test/rsa_x931_test" => { + "noinst" => "1" + }, + "test/safe_math_test" => { + "noinst" => "1" + }, "test/sanitytest" => { "noinst" => "1" }, @@ -1507,6 +1816,9 @@ our %unified_info = ( "test/siphash_internal_test" => { "noinst" => "1" }, + "test/slh_dsa_test" => { + "noinst" => "1" + }, "test/sm2_internal_test" => { "noinst" => "1" }, @@ -1528,6 +1840,9 @@ our %unified_info = ( "test/ssl_ctx_test" => { "noinst" => "1" }, + "test/ssl_handshake_rtt_test" => { + "noinst" => "1" + }, "test/ssl_old_test" => { "noinst" => "1" }, @@ -1549,12 +1864,18 @@ our %unified_info = ( "test/stack_test" => { "noinst" => "1" }, + "test/strtoultest" => { + "noinst" => "1" + }, "test/sysdefaulttest" => { "noinst" => "1" }, "test/test_test" => { "noinst" => "1" }, + "test/threadpool_test" => { + "noinst" => "1" + }, "test/threadstest" => { "noinst" => "1" }, @@ -1564,12 +1885,18 @@ our %unified_info = ( "test/time_offset_test" => { "noinst" => "1" }, + "test/time_test" => { + "noinst" => "1" + }, "test/tls13ccstest" => { "noinst" => "1" }, "test/tls13encryptiontest" => { "noinst" => "1" }, + "test/tls13groupselection_test" => { + "noinst" => "1" + }, "test/trace_api_test" => { "noinst" => "1" }, @@ -1597,6 +1924,9 @@ our %unified_info = ( "test/wpackettest" => { "noinst" => "1" }, + "test/x509_acert_test" => { + "noinst" => "1" + }, "test/x509_check_cert_pkey_test" => { "noinst" => "1" }, @@ -1606,6 +1936,15 @@ our %unified_info = ( "test/x509_internal_test" => { "noinst" => "1" }, + "test/x509_load_cert_file_test" => { + "noinst" => "1" + }, + "test/x509_req_test" => { + "noinst" => "1" + }, + "test/x509_test" => { + "noinst" => "1" + }, "test/x509_time_test" => { "noinst" => "1" }, @@ -1646,6 +1985,9 @@ our %unified_info = ( "providers/libfips.a" => [ "FIPS_MODULE" ], + "test/endecode_test" => [ + "STATIC_LEGACY" + ], "test/evp_extra_test" => [ "STATIC_LEGACY" ], @@ -1658,14 +2000,21 @@ our %unified_info = ( }, "depends" => { "" => [ + "OpenSSLConfigVersion.cmake", + "crypto/params_idx.c", + "exporters/OpenSSLConfigVersion.cmake", + "exporters/openssl.pc", "include/crypto/bn_conf.h", "include/crypto/dso_conf.h", + "include/internal/param_names.h", "include/openssl/asn1.h", "include/openssl/asn1t.h", "include/openssl/bio.h", "include/openssl/cmp.h", "include/openssl/cms.h", + "include/openssl/comp.h", "include/openssl/conf.h", + "include/openssl/core_names.h", "include/openssl/crmf.h", "include/openssl/crypto.h", "include/openssl/ct.h", @@ -1682,10 +2031,22 @@ our %unified_info = ( "include/openssl/ssl.h", "include/openssl/ui.h", "include/openssl/x509.h", + "include/openssl/x509_acert.h", "include/openssl/x509_vfy.h", "include/openssl/x509v3.h", + "openssl.pc", "test/provider_internal_test.cnf" ], + "OpenSSLConfig.cmake" => [ + "builddata.pm" + ], + "OpenSSLConfigVersion.cmake" => [ + "OpenSSLConfig.cmake", + "builddata.pm" + ], + "apps/ca_internals_test-bin-ca.o" => [ + "apps/progs.h" + ], "apps/lib/cmp_client_test-bin-cmp_mock_srv.o" => [ "apps/progs.h" ], @@ -1831,6 +2192,9 @@ our %unified_info = ( "apps/openssl-bin-sess_id.o" => [ "apps/progs.h" ], + "apps/openssl-bin-skeyutl.o" => [ + "apps/progs.h" + ], "apps/openssl-bin-smime.o" => [ "apps/progs.h" ], @@ -1919,6 +2283,9 @@ our %unified_info = ( "crypto/libcrypto-lib-info.o" => [ "crypto/buildinf.h" ], + "crypto/params_idx.c" => [ + "util/perl|OpenSSL/paramnames.pm" + ], "crypto/rc4/rc4-586.S" => [ "crypto/perlasm/x86asm.pl" ], @@ -2084,6 +2451,9 @@ our %unified_info = ( "doc/html/man1/openssl-sess_id.html" => [ "doc/man1/openssl-sess_id.pod" ], + "doc/html/man1/openssl-skeyutl.html" => [ + "doc/man1/openssl-skeyutl.pod" + ], "doc/html/man1/openssl-smime.html" => [ "doc/man1/openssl-smime.pod" ], @@ -2225,6 +2595,9 @@ our %unified_info = ( "doc/html/man3/BIO_get_ex_new_index.html" => [ "doc/man3/BIO_get_ex_new_index.pod" ], + "doc/html/man3/BIO_get_rpoll_descriptor.html" => [ + "doc/man3/BIO_get_rpoll_descriptor.pod" + ], "doc/html/man3/BIO_meth_new.html" => [ "doc/man3/BIO_meth_new.pod" ], @@ -2261,6 +2634,9 @@ our %unified_info = ( "doc/html/man3/BIO_s_datagram.html" => [ "doc/man3/BIO_s_datagram.pod" ], + "doc/html/man3/BIO_s_dgram_pair.html" => [ + "doc/man3/BIO_s_dgram_pair.pod" + ], "doc/html/man3/BIO_s_fd.html" => [ "doc/man3/BIO_s_fd.pod" ], @@ -2276,6 +2652,9 @@ our %unified_info = ( "doc/html/man3/BIO_s_socket.html" => [ "doc/man3/BIO_s_socket.pod" ], + "doc/html/man3/BIO_sendmmsg.html" => [ + "doc/man3/BIO_sendmmsg.pod" + ], "doc/html/man3/BIO_set_callback.html" => [ "doc/man3/BIO_set_callback.pod" ], @@ -2348,6 +2727,9 @@ our %unified_info = ( "doc/html/man3/BUF_MEM_new.html" => [ "doc/man3/BUF_MEM_new.pod" ], + "doc/html/man3/CMAC_CTX.html" => [ + "doc/man3/CMAC_CTX.pod" + ], "doc/html/man3/CMS_EncryptedData_decrypt.html" => [ "doc/man3/CMS_EncryptedData_decrypt.pod" ], @@ -2414,6 +2796,9 @@ our %unified_info = ( "doc/html/man3/CMS_verify_receipt.html" => [ "doc/man3/CMS_verify_receipt.pod" ], + "doc/html/man3/COMP_CTX_new.html" => [ + "doc/man3/COMP_CTX_new.pod" + ], "doc/html/man3/CONF_modules_free.html" => [ "doc/man3/CONF_modules_free.pod" ], @@ -2513,6 +2898,12 @@ our %unified_info = ( "doc/html/man3/DTLS_set_timer_cb.html" => [ "doc/man3/DTLS_set_timer_cb.pod" ], + "doc/html/man3/DTLSv1_get_timeout.html" => [ + "doc/man3/DTLSv1_get_timeout.pod" + ], + "doc/html/man3/DTLSv1_handle_timeout.html" => [ + "doc/man3/DTLSv1_handle_timeout.pod" + ], "doc/html/man3/DTLSv1_listen.html" => [ "doc/man3/DTLSv1_listen.pod" ], @@ -2651,6 +3042,9 @@ our %unified_info = ( "doc/html/man3/EVP_PKEY_CTX_get0_pkey.html" => [ "doc/man3/EVP_PKEY_CTX_get0_pkey.pod" ], + "doc/html/man3/EVP_PKEY_CTX_get_algor.html" => [ + "doc/man3/EVP_PKEY_CTX_get_algor.pod" + ], "doc/html/man3/EVP_PKEY_CTX_new.html" => [ "doc/man3/EVP_PKEY_CTX_new.pod" ], @@ -2768,6 +3162,12 @@ our %unified_info = ( "doc/html/man3/EVP_SIGNATURE.html" => [ "doc/man3/EVP_SIGNATURE.pod" ], + "doc/html/man3/EVP_SKEY.html" => [ + "doc/man3/EVP_SKEY.pod" + ], + "doc/html/man3/EVP_SKEYMGMT.html" => [ + "doc/man3/EVP_SKEYMGMT.pod" + ], "doc/html/man3/EVP_SealInit.html" => [ "doc/man3/EVP_SealInit.pod" ], @@ -2855,6 +3255,9 @@ our %unified_info = ( "doc/html/man3/EVP_whirlpool.html" => [ "doc/man3/EVP_whirlpool.pod" ], + "doc/html/man3/GENERAL_NAME.html" => [ + "doc/man3/GENERAL_NAME.pod" + ], "doc/html/man3/HMAC.html" => [ "doc/man3/HMAC.pod" ], @@ -2927,9 +3330,15 @@ our %unified_info = ( "doc/html/man3/OPENSSL_load_builtin_modules.html" => [ "doc/man3/OPENSSL_load_builtin_modules.pod" ], + "doc/html/man3/OPENSSL_load_u16_le.html" => [ + "doc/man3/OPENSSL_load_u16_le.pod" + ], "doc/html/man3/OPENSSL_malloc.html" => [ "doc/man3/OPENSSL_malloc.pod" ], + "doc/html/man3/OPENSSL_riscvcap.html" => [ + "doc/man3/OPENSSL_riscvcap.pod" + ], "doc/html/man3/OPENSSL_s390xcap.html" => [ "doc/man3/OPENSSL_s390xcap.pod" ], @@ -2945,12 +3354,18 @@ our %unified_info = ( "doc/html/man3/OSSL_CALLBACK.html" => [ "doc/man3/OSSL_CALLBACK.pod" ], + "doc/html/man3/OSSL_CMP_ATAV_set0.html" => [ + "doc/man3/OSSL_CMP_ATAV_set0.pod" + ], "doc/html/man3/OSSL_CMP_CTX_new.html" => [ "doc/man3/OSSL_CMP_CTX_new.pod" ], "doc/html/man3/OSSL_CMP_HDR_get0_transactionID.html" => [ "doc/man3/OSSL_CMP_HDR_get0_transactionID.pod" ], + "doc/html/man3/OSSL_CMP_ITAV_new_caCerts.html" => [ + "doc/man3/OSSL_CMP_ITAV_new_caCerts.pod" + ], "doc/html/man3/OSSL_CMP_ITAV_set0.html" => [ "doc/man3/OSSL_CMP_ITAV_set0.pod" ], @@ -3020,9 +3435,18 @@ our %unified_info = ( "doc/html/man3/OSSL_ENCODER_to_bio.html" => [ "doc/man3/OSSL_ENCODER_to_bio.pod" ], + "doc/html/man3/OSSL_ERR_STATE_save.html" => [ + "doc/man3/OSSL_ERR_STATE_save.pod" + ], "doc/html/man3/OSSL_ESS_check_signing_certs.html" => [ "doc/man3/OSSL_ESS_check_signing_certs.pod" ], + "doc/html/man3/OSSL_GENERAL_NAMES_print.html" => [ + "doc/man3/OSSL_GENERAL_NAMES_print.pod" + ], + "doc/html/man3/OSSL_HPKE_CTX_new.html" => [ + "doc/man3/OSSL_HPKE_CTX_new.pod" + ], "doc/html/man3/OSSL_HTTP_REQ_CTX.html" => [ "doc/man3/OSSL_HTTP_REQ_CTX.pod" ], @@ -3032,12 +3456,24 @@ our %unified_info = ( "doc/html/man3/OSSL_HTTP_transfer.html" => [ "doc/man3/OSSL_HTTP_transfer.pod" ], + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX.html" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX.pod" + ], + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX_print.html" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX_print.pod" + ], + "doc/html/man3/OSSL_INDICATOR_set_callback.html" => [ + "doc/man3/OSSL_INDICATOR_set_callback.pod" + ], "doc/html/man3/OSSL_ITEM.html" => [ "doc/man3/OSSL_ITEM.pod" ], "doc/html/man3/OSSL_LIB_CTX.html" => [ "doc/man3/OSSL_LIB_CTX.pod" ], + "doc/html/man3/OSSL_LIB_CTX_set_conf_diagnostics.html" => [ + "doc/man3/OSSL_LIB_CTX_set_conf_diagnostics.pod" + ], "doc/html/man3/OSSL_PARAM.html" => [ "doc/man3/OSSL_PARAM.pod" ], @@ -3053,9 +3489,15 @@ our %unified_info = ( "doc/html/man3/OSSL_PARAM_int.html" => [ "doc/man3/OSSL_PARAM_int.pod" ], + "doc/html/man3/OSSL_PARAM_print_to_bio.html" => [ + "doc/man3/OSSL_PARAM_print_to_bio.pod" + ], "doc/html/man3/OSSL_PROVIDER.html" => [ "doc/man3/OSSL_PROVIDER.pod" ], + "doc/html/man3/OSSL_QUIC_client_method.html" => [ + "doc/man3/OSSL_QUIC_client_method.pod" + ], "doc/html/man3/OSSL_SELF_TEST_new.html" => [ "doc/man3/OSSL_SELF_TEST_new.pod" ], @@ -3080,6 +3522,9 @@ our %unified_info = ( "doc/html/man3/OSSL_STORE_open.html" => [ "doc/man3/OSSL_STORE_open.pod" ], + "doc/html/man3/OSSL_sleep.html" => [ + "doc/man3/OSSL_sleep.pod" + ], "doc/html/man3/OSSL_trace_enabled.html" => [ "doc/man3/OSSL_trace_enabled.pod" ], @@ -3095,6 +3540,9 @@ our %unified_info = ( "doc/html/man3/OpenSSL_version.html" => [ "doc/man3/OpenSSL_version.pod" ], + "doc/html/man3/PBMAC1_get1_pbkdf2_param.html" => [ + "doc/man3/PBMAC1_get1_pbkdf2_param.pod" + ], "doc/html/man3/PEM_X509_INFO_read_bio_ex.html" => [ "doc/man3/PEM_X509_INFO_read_bio_ex.pod" ], @@ -3131,6 +3579,9 @@ our %unified_info = ( "doc/html/man3/PKCS12_SAFEBAG_get1_cert.html" => [ "doc/man3/PKCS12_SAFEBAG_get1_cert.pod" ], + "doc/html/man3/PKCS12_SAFEBAG_set0_attrs.html" => [ + "doc/man3/PKCS12_SAFEBAG_set0_attrs.pod" + ], "doc/html/man3/PKCS12_add1_attr_by_NID.html" => [ "doc/man3/PKCS12_add1_attr_by_NID.pod" ], @@ -3404,6 +3855,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set0_CA_list.html" => [ "doc/man3/SSL_CTX_set0_CA_list.pod" ], + "doc/html/man3/SSL_CTX_set1_cert_comp_preference.html" => [ + "doc/man3/SSL_CTX_set1_cert_comp_preference.pod" + ], "doc/html/man3/SSL_CTX_set1_curves.html" => [ "doc/man3/SSL_CTX_set1_curves.pod" ], @@ -3443,6 +3897,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_default_passwd_cb.html" => [ "doc/man3/SSL_CTX_set_default_passwd_cb.pod" ], + "doc/html/man3/SSL_CTX_set_domain_flags.html" => [ + "doc/man3/SSL_CTX_set_domain_flags.pod" + ], "doc/html/man3/SSL_CTX_set_generate_session_id.html" => [ "doc/man3/SSL_CTX_set_generate_session_id.pod" ], @@ -3464,6 +3921,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_msg_callback.html" => [ "doc/man3/SSL_CTX_set_msg_callback.pod" ], + "doc/html/man3/SSL_CTX_set_new_pending_conn_cb.html" => [ + "doc/man3/SSL_CTX_set_new_pending_conn_cb.pod" + ], "doc/html/man3/SSL_CTX_set_num_tickets.html" => [ "doc/man3/SSL_CTX_set_num_tickets.pod" ], @@ -3578,6 +4038,9 @@ our %unified_info = ( "doc/html/man3/SSL_accept.html" => [ "doc/man3/SSL_accept.pod" ], + "doc/html/man3/SSL_accept_stream.html" => [ + "doc/man3/SSL_accept_stream.pod" + ], "doc/html/man3/SSL_alert_type_string.html" => [ "doc/man3/SSL_alert_type_string.pod" ], @@ -3605,9 +4068,21 @@ our %unified_info = ( "doc/html/man3/SSL_free.html" => [ "doc/man3/SSL_free.pod" ], + "doc/html/man3/SSL_get0_connection.html" => [ + "doc/man3/SSL_get0_connection.pod" + ], + "doc/html/man3/SSL_get0_group_name.html" => [ + "doc/man3/SSL_get0_group_name.pod" + ], + "doc/html/man3/SSL_get0_peer_rpk.html" => [ + "doc/man3/SSL_get0_peer_rpk.pod" + ], "doc/html/man3/SSL_get0_peer_scts.html" => [ "doc/man3/SSL_get0_peer_scts.pod" ], + "doc/html/man3/SSL_get1_builtin_sigalgs.html" => [ + "doc/man3/SSL_get1_builtin_sigalgs.pod" + ], "doc/html/man3/SSL_get_SSL_CTX.html" => [ "doc/man3/SSL_get_SSL_CTX.pod" ], @@ -3623,6 +4098,9 @@ our %unified_info = ( "doc/html/man3/SSL_get_client_random.html" => [ "doc/man3/SSL_get_client_random.pod" ], + "doc/html/man3/SSL_get_conn_close_info.html" => [ + "doc/man3/SSL_get_conn_close_info.pod" + ], "doc/html/man3/SSL_get_current_cipher.html" => [ "doc/man3/SSL_get_current_cipher.pod" ], @@ -3632,12 +4110,18 @@ our %unified_info = ( "doc/html/man3/SSL_get_error.html" => [ "doc/man3/SSL_get_error.pod" ], + "doc/html/man3/SSL_get_event_timeout.html" => [ + "doc/man3/SSL_get_event_timeout.pod" + ], "doc/html/man3/SSL_get_extms_support.html" => [ "doc/man3/SSL_get_extms_support.pod" ], "doc/html/man3/SSL_get_fd.html" => [ "doc/man3/SSL_get_fd.pod" ], + "doc/html/man3/SSL_get_handshake_rtt.html" => [ + "doc/man3/SSL_get_handshake_rtt.pod" + ], "doc/html/man3/SSL_get_peer_cert_chain.html" => [ "doc/man3/SSL_get_peer_cert_chain.pod" ], @@ -3656,12 +4140,24 @@ our %unified_info = ( "doc/html/man3/SSL_get_rbio.html" => [ "doc/man3/SSL_get_rbio.pod" ], + "doc/html/man3/SSL_get_rpoll_descriptor.html" => [ + "doc/man3/SSL_get_rpoll_descriptor.pod" + ], "doc/html/man3/SSL_get_session.html" => [ "doc/man3/SSL_get_session.pod" ], "doc/html/man3/SSL_get_shared_sigalgs.html" => [ "doc/man3/SSL_get_shared_sigalgs.pod" ], + "doc/html/man3/SSL_get_stream_id.html" => [ + "doc/man3/SSL_get_stream_id.pod" + ], + "doc/html/man3/SSL_get_stream_read_state.html" => [ + "doc/man3/SSL_get_stream_read_state.pod" + ], + "doc/html/man3/SSL_get_value_uint.html" => [ + "doc/man3/SSL_get_value_uint.pod" + ], "doc/html/man3/SSL_get_verify_result.html" => [ "doc/man3/SSL_get_verify_result.pod" ], @@ -3671,9 +4167,15 @@ our %unified_info = ( "doc/html/man3/SSL_group_to_name.html" => [ "doc/man3/SSL_group_to_name.pod" ], + "doc/html/man3/SSL_handle_events.html" => [ + "doc/man3/SSL_handle_events.pod" + ], "doc/html/man3/SSL_in_init.html" => [ "doc/man3/SSL_in_init.pod" ], + "doc/html/man3/SSL_inject_net_dgram.html" => [ + "doc/man3/SSL_inject_net_dgram.pod" + ], "doc/html/man3/SSL_key_update.html" => [ "doc/man3/SSL_key_update.pod" ], @@ -3686,9 +4188,21 @@ our %unified_info = ( "doc/html/man3/SSL_new.html" => [ "doc/man3/SSL_new.pod" ], + "doc/html/man3/SSL_new_domain.html" => [ + "doc/man3/SSL_new_domain.pod" + ], + "doc/html/man3/SSL_new_listener.html" => [ + "doc/man3/SSL_new_listener.pod" + ], + "doc/html/man3/SSL_new_stream.html" => [ + "doc/man3/SSL_new_stream.pod" + ], "doc/html/man3/SSL_pending.html" => [ "doc/man3/SSL_pending.pod" ], + "doc/html/man3/SSL_poll.html" => [ + "doc/man3/SSL_poll.pod" + ], "doc/html/man3/SSL_read.html" => [ "doc/man3/SSL_read.pod" ], @@ -3704,24 +4218,45 @@ our %unified_info = ( "doc/html/man3/SSL_set1_host.html" => [ "doc/man3/SSL_set1_host.pod" ], + "doc/html/man3/SSL_set1_initial_peer_addr.html" => [ + "doc/man3/SSL_set1_initial_peer_addr.pod" + ], + "doc/html/man3/SSL_set1_server_cert_type.html" => [ + "doc/man3/SSL_set1_server_cert_type.pod" + ], "doc/html/man3/SSL_set_async_callback.html" => [ "doc/man3/SSL_set_async_callback.pod" ], "doc/html/man3/SSL_set_bio.html" => [ "doc/man3/SSL_set_bio.pod" ], + "doc/html/man3/SSL_set_blocking_mode.html" => [ + "doc/man3/SSL_set_blocking_mode.pod" + ], "doc/html/man3/SSL_set_connect_state.html" => [ "doc/man3/SSL_set_connect_state.pod" ], + "doc/html/man3/SSL_set_default_stream_mode.html" => [ + "doc/man3/SSL_set_default_stream_mode.pod" + ], "doc/html/man3/SSL_set_fd.html" => [ "doc/man3/SSL_set_fd.pod" ], + "doc/html/man3/SSL_set_incoming_stream_policy.html" => [ + "doc/man3/SSL_set_incoming_stream_policy.pod" + ], + "doc/html/man3/SSL_set_quic_tls_cbs.html" => [ + "doc/man3/SSL_set_quic_tls_cbs.pod" + ], "doc/html/man3/SSL_set_retry_verify.html" => [ "doc/man3/SSL_set_retry_verify.pod" ], "doc/html/man3/SSL_set_session.html" => [ "doc/man3/SSL_set_session.pod" ], + "doc/html/man3/SSL_set_session_secret_cb.html" => [ + "doc/man3/SSL_set_session_secret_cb.pod" + ], "doc/html/man3/SSL_set_shutdown.html" => [ "doc/man3/SSL_set_shutdown.pod" ], @@ -3734,6 +4269,12 @@ our %unified_info = ( "doc/html/man3/SSL_state_string.html" => [ "doc/man3/SSL_state_string.pod" ], + "doc/html/man3/SSL_stream_conclude.html" => [ + "doc/man3/SSL_stream_conclude.pod" + ], + "doc/html/man3/SSL_stream_reset.html" => [ + "doc/man3/SSL_stream_reset.pod" + ], "doc/html/man3/SSL_want.html" => [ "doc/man3/SSL_want.pod" ], @@ -3743,8 +4284,8 @@ our %unified_info = ( "doc/html/man3/TS_RESP_CTX_new.html" => [ "doc/man3/TS_RESP_CTX_new.pod" ], - "doc/html/man3/TS_VERIFY_CTX_set_certs.html" => [ - "doc/man3/TS_VERIFY_CTX_set_certs.pod" + "doc/html/man3/TS_VERIFY_CTX.html" => [ + "doc/man3/TS_VERIFY_CTX.pod" ], "doc/html/man3/UI_STRING.html" => [ "doc/man3/UI_STRING.pod" @@ -3764,6 +4305,21 @@ our %unified_info = ( "doc/html/man3/X509V3_set_ctx.html" => [ "doc/man3/X509V3_set_ctx.pod" ], + "doc/html/man3/X509_ACERT_add1_attr.html" => [ + "doc/man3/X509_ACERT_add1_attr.pod" + ], + "doc/html/man3/X509_ACERT_add_attr_nconf.html" => [ + "doc/man3/X509_ACERT_add_attr_nconf.pod" + ], + "doc/html/man3/X509_ACERT_get0_holder_baseCertId.html" => [ + "doc/man3/X509_ACERT_get0_holder_baseCertId.pod" + ], + "doc/html/man3/X509_ACERT_get_attr.html" => [ + "doc/man3/X509_ACERT_get_attr.pod" + ], + "doc/html/man3/X509_ACERT_print_ex.html" => [ + "doc/man3/X509_ACERT_print_ex.pod" + ], "doc/html/man3/X509_ALGOR_dup.html" => [ "doc/man3/X509_ALGOR_dup.pod" ], @@ -3812,6 +4368,9 @@ our %unified_info = ( "doc/html/man3/X509_SIG_get0.html" => [ "doc/man3/X509_SIG_get0.pod" ], + "doc/html/man3/X509_STORE_CTX_get_by_subject.html" => [ + "doc/man3/X509_STORE_CTX_get_by_subject.pod" + ], "doc/html/man3/X509_STORE_CTX_get_error.html" => [ "doc/man3/X509_STORE_CTX_get_error.pod" ], @@ -3878,6 +4437,9 @@ our %unified_info = ( "doc/html/man3/X509_get0_uids.html" => [ "doc/man3/X509_get0_uids.pod" ], + "doc/html/man3/X509_get_default_cert_file.html" => [ + "doc/man3/X509_get_default_cert_file.pod" + ], "doc/html/man3/X509_get_extension_flags.html" => [ "doc/man3/X509_get_extension_flags.pod" ], @@ -4001,9 +4563,15 @@ our %unified_info = ( "doc/html/man7/EVP_CIPHER-SM4.html" => [ "doc/man7/EVP_CIPHER-SM4.pod" ], + "doc/html/man7/EVP_KDF-ARGON2.html" => [ + "doc/man7/EVP_KDF-ARGON2.pod" + ], "doc/html/man7/EVP_KDF-HKDF.html" => [ "doc/man7/EVP_KDF-HKDF.pod" ], + "doc/html/man7/EVP_KDF-HMAC-DRBG.html" => [ + "doc/man7/EVP_KDF-HMAC-DRBG.pod" + ], "doc/html/man7/EVP_KDF-KB.html" => [ "doc/man7/EVP_KDF-KB.pod" ], @@ -4019,6 +4587,9 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-PKCS12KDF.html" => [ "doc/man7/EVP_KDF-PKCS12KDF.pod" ], + "doc/html/man7/EVP_KDF-PVKKDF.html" => [ + "doc/man7/EVP_KDF-PVKKDF.pod" + ], "doc/html/man7/EVP_KDF-SCRYPT.html" => [ "doc/man7/EVP_KDF-SCRYPT.pod" ], @@ -4043,9 +4614,18 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-X963.html" => [ "doc/man7/EVP_KDF-X963.pod" ], + "doc/html/man7/EVP_KEM-EC.html" => [ + "doc/man7/EVP_KEM-EC.pod" + ], + "doc/html/man7/EVP_KEM-ML-KEM.html" => [ + "doc/man7/EVP_KEM-ML-KEM.pod" + ], "doc/html/man7/EVP_KEM-RSA.html" => [ "doc/man7/EVP_KEM-RSA.pod" ], + "doc/html/man7/EVP_KEM-X25519.html" => [ + "doc/man7/EVP_KEM-X25519.pod" + ], "doc/html/man7/EVP_KEYEXCH-DH.html" => [ "doc/man7/EVP_KEYEXCH-DH.pod" ], @@ -4079,6 +4659,9 @@ our %unified_info = ( "doc/html/man7/EVP_MD-BLAKE2.html" => [ "doc/man7/EVP_MD-BLAKE2.pod" ], + "doc/html/man7/EVP_MD-KECCAK.html" => [ + "doc/man7/EVP_MD-KECCAK.pod" + ], "doc/html/man7/EVP_MD-MD2.html" => [ "doc/man7/EVP_MD-MD2.pod" ], @@ -4136,15 +4719,27 @@ our %unified_info = ( "doc/html/man7/EVP_PKEY-HMAC.html" => [ "doc/man7/EVP_PKEY-HMAC.pod" ], + "doc/html/man7/EVP_PKEY-ML-DSA.html" => [ + "doc/man7/EVP_PKEY-ML-DSA.pod" + ], + "doc/html/man7/EVP_PKEY-ML-KEM.html" => [ + "doc/man7/EVP_PKEY-ML-KEM.pod" + ], "doc/html/man7/EVP_PKEY-RSA.html" => [ "doc/man7/EVP_PKEY-RSA.pod" ], + "doc/html/man7/EVP_PKEY-SLH-DSA.html" => [ + "doc/man7/EVP_PKEY-SLH-DSA.pod" + ], "doc/html/man7/EVP_PKEY-SM2.html" => [ "doc/man7/EVP_PKEY-SM2.pod" ], "doc/html/man7/EVP_PKEY-X25519.html" => [ "doc/man7/EVP_PKEY-X25519.pod" ], + "doc/html/man7/EVP_RAND-CRNG-TEST.html" => [ + "doc/man7/EVP_RAND-CRNG-TEST.pod" + ], "doc/html/man7/EVP_RAND-CTR-DRBG.html" => [ "doc/man7/EVP_RAND-CTR-DRBG.pod" ], @@ -4154,6 +4749,9 @@ our %unified_info = ( "doc/html/man7/EVP_RAND-HMAC-DRBG.html" => [ "doc/man7/EVP_RAND-HMAC-DRBG.pod" ], + "doc/html/man7/EVP_RAND-JITTER.html" => [ + "doc/man7/EVP_RAND-JITTER.pod" + ], "doc/html/man7/EVP_RAND-SEED-SRC.html" => [ "doc/man7/EVP_RAND-SEED-SRC.pod" ], @@ -4175,9 +4773,15 @@ our %unified_info = ( "doc/html/man7/EVP_SIGNATURE-HMAC.html" => [ "doc/man7/EVP_SIGNATURE-HMAC.pod" ], + "doc/html/man7/EVP_SIGNATURE-ML-DSA.html" => [ + "doc/man7/EVP_SIGNATURE-ML-DSA.pod" + ], "doc/html/man7/EVP_SIGNATURE-RSA.html" => [ "doc/man7/EVP_SIGNATURE-RSA.pod" ], + "doc/html/man7/EVP_SIGNATURE-SLH-DSA.html" => [ + "doc/man7/EVP_SIGNATURE-SLH-DSA.pod" + ], "doc/html/man7/OSSL_PROVIDER-FIPS.html" => [ "doc/man7/OSSL_PROVIDER-FIPS.pod" ], @@ -4193,6 +4797,9 @@ our %unified_info = ( "doc/html/man7/OSSL_PROVIDER-null.html" => [ "doc/man7/OSSL_PROVIDER-null.pod" ], + "doc/html/man7/OSSL_STORE-winstore.html" => [ + "doc/man7/OSSL_STORE-winstore.pod" + ], "doc/html/man7/RAND.html" => [ "doc/man7/RAND.pod" ], @@ -4205,9 +4812,6 @@ our %unified_info = ( "doc/html/man7/bio.html" => [ "doc/man7/bio.pod" ], - "doc/html/man7/crypto.html" => [ - "doc/man7/crypto.pod" - ], "doc/html/man7/ct.html" => [ "doc/man7/ct.pod" ], @@ -4238,9 +4842,6 @@ our %unified_info = ( "doc/html/man7/life_cycle-rand.html" => [ "doc/man7/life_cycle-rand.pod" ], - "doc/html/man7/migration_guide.html" => [ - "doc/man7/migration_guide.pod" - ], "doc/html/man7/openssl-core.h.html" => [ "doc/man7/openssl-core.h.pod" ], @@ -4256,12 +4857,66 @@ our %unified_info = ( "doc/html/man7/openssl-glossary.html" => [ "doc/man7/openssl-glossary.pod" ], + "doc/html/man7/openssl-qlog.html" => [ + "doc/man7/openssl-qlog.pod" + ], + "doc/html/man7/openssl-quic-concurrency.html" => [ + "doc/man7/openssl-quic-concurrency.pod" + ], + "doc/html/man7/openssl-quic.html" => [ + "doc/man7/openssl-quic.pod" + ], "doc/html/man7/openssl-threads.html" => [ "doc/man7/openssl-threads.pod" ], "doc/html/man7/openssl_user_macros.html" => [ "doc/man7/openssl_user_macros.pod" ], + "doc/html/man7/ossl-guide-introduction.html" => [ + "doc/man7/ossl-guide-introduction.pod" + ], + "doc/html/man7/ossl-guide-libcrypto-introduction.html" => [ + "doc/man7/ossl-guide-libcrypto-introduction.pod" + ], + "doc/html/man7/ossl-guide-libraries-introduction.html" => [ + "doc/man7/ossl-guide-libraries-introduction.pod" + ], + "doc/html/man7/ossl-guide-libssl-introduction.html" => [ + "doc/man7/ossl-guide-libssl-introduction.pod" + ], + "doc/html/man7/ossl-guide-migration.html" => [ + "doc/man7/ossl-guide-migration.pod" + ], + "doc/html/man7/ossl-guide-quic-client-block.html" => [ + "doc/man7/ossl-guide-quic-client-block.pod" + ], + "doc/html/man7/ossl-guide-quic-client-non-block.html" => [ + "doc/man7/ossl-guide-quic-client-non-block.pod" + ], + "doc/html/man7/ossl-guide-quic-introduction.html" => [ + "doc/man7/ossl-guide-quic-introduction.pod" + ], + "doc/html/man7/ossl-guide-quic-multi-stream.html" => [ + "doc/man7/ossl-guide-quic-multi-stream.pod" + ], + "doc/html/man7/ossl-guide-quic-server-block.html" => [ + "doc/man7/ossl-guide-quic-server-block.pod" + ], + "doc/html/man7/ossl-guide-quic-server-non-block.html" => [ + "doc/man7/ossl-guide-quic-server-non-block.pod" + ], + "doc/html/man7/ossl-guide-tls-client-block.html" => [ + "doc/man7/ossl-guide-tls-client-block.pod" + ], + "doc/html/man7/ossl-guide-tls-client-non-block.html" => [ + "doc/man7/ossl-guide-tls-client-non-block.pod" + ], + "doc/html/man7/ossl-guide-tls-introduction.html" => [ + "doc/man7/ossl-guide-tls-introduction.pod" + ], + "doc/html/man7/ossl-guide-tls-server-block.html" => [ + "doc/man7/ossl-guide-tls-server-block.pod" + ], "doc/html/man7/ossl_store-file.html" => [ "doc/man7/ossl_store-file.pod" ], @@ -4316,6 +4971,9 @@ our %unified_info = ( "doc/html/man7/provider-signature.html" => [ "doc/man7/provider-signature.pod" ], + "doc/html/man7/provider-skeymgmt.html" => [ + "doc/man7/provider-skeymgmt.pod" + ], "doc/html/man7/provider-storemgmt.html" => [ "doc/man7/provider-storemgmt.pod" ], @@ -4325,9 +4983,6 @@ our %unified_info = ( "doc/html/man7/proxy-certificates.html" => [ "doc/man7/proxy-certificates.pod" ], - "doc/html/man7/ssl.html" => [ - "doc/man7/ssl.pod" - ], "doc/html/man7/x509.html" => [ "doc/man7/x509.pod" ], @@ -4475,6 +5130,9 @@ our %unified_info = ( "doc/man/man1/openssl-sess_id.1" => [ "doc/man1/openssl-sess_id.pod" ], + "doc/man/man1/openssl-skeyutl.1" => [ + "doc/man1/openssl-skeyutl.pod" + ], "doc/man/man1/openssl-smime.1" => [ "doc/man1/openssl-smime.pod" ], @@ -4616,6 +5274,9 @@ our %unified_info = ( "doc/man/man3/BIO_get_ex_new_index.3" => [ "doc/man3/BIO_get_ex_new_index.pod" ], + "doc/man/man3/BIO_get_rpoll_descriptor.3" => [ + "doc/man3/BIO_get_rpoll_descriptor.pod" + ], "doc/man/man3/BIO_meth_new.3" => [ "doc/man3/BIO_meth_new.pod" ], @@ -4652,6 +5313,9 @@ our %unified_info = ( "doc/man/man3/BIO_s_datagram.3" => [ "doc/man3/BIO_s_datagram.pod" ], + "doc/man/man3/BIO_s_dgram_pair.3" => [ + "doc/man3/BIO_s_dgram_pair.pod" + ], "doc/man/man3/BIO_s_fd.3" => [ "doc/man3/BIO_s_fd.pod" ], @@ -4667,6 +5331,9 @@ our %unified_info = ( "doc/man/man3/BIO_s_socket.3" => [ "doc/man3/BIO_s_socket.pod" ], + "doc/man/man3/BIO_sendmmsg.3" => [ + "doc/man3/BIO_sendmmsg.pod" + ], "doc/man/man3/BIO_set_callback.3" => [ "doc/man3/BIO_set_callback.pod" ], @@ -4739,6 +5406,9 @@ our %unified_info = ( "doc/man/man3/BUF_MEM_new.3" => [ "doc/man3/BUF_MEM_new.pod" ], + "doc/man/man3/CMAC_CTX.3" => [ + "doc/man3/CMAC_CTX.pod" + ], "doc/man/man3/CMS_EncryptedData_decrypt.3" => [ "doc/man3/CMS_EncryptedData_decrypt.pod" ], @@ -4805,6 +5475,9 @@ our %unified_info = ( "doc/man/man3/CMS_verify_receipt.3" => [ "doc/man3/CMS_verify_receipt.pod" ], + "doc/man/man3/COMP_CTX_new.3" => [ + "doc/man3/COMP_CTX_new.pod" + ], "doc/man/man3/CONF_modules_free.3" => [ "doc/man3/CONF_modules_free.pod" ], @@ -4904,6 +5577,12 @@ our %unified_info = ( "doc/man/man3/DTLS_set_timer_cb.3" => [ "doc/man3/DTLS_set_timer_cb.pod" ], + "doc/man/man3/DTLSv1_get_timeout.3" => [ + "doc/man3/DTLSv1_get_timeout.pod" + ], + "doc/man/man3/DTLSv1_handle_timeout.3" => [ + "doc/man3/DTLSv1_handle_timeout.pod" + ], "doc/man/man3/DTLSv1_listen.3" => [ "doc/man3/DTLSv1_listen.pod" ], @@ -5042,6 +5721,9 @@ our %unified_info = ( "doc/man/man3/EVP_PKEY_CTX_get0_pkey.3" => [ "doc/man3/EVP_PKEY_CTX_get0_pkey.pod" ], + "doc/man/man3/EVP_PKEY_CTX_get_algor.3" => [ + "doc/man3/EVP_PKEY_CTX_get_algor.pod" + ], "doc/man/man3/EVP_PKEY_CTX_new.3" => [ "doc/man3/EVP_PKEY_CTX_new.pod" ], @@ -5159,6 +5841,12 @@ our %unified_info = ( "doc/man/man3/EVP_SIGNATURE.3" => [ "doc/man3/EVP_SIGNATURE.pod" ], + "doc/man/man3/EVP_SKEY.3" => [ + "doc/man3/EVP_SKEY.pod" + ], + "doc/man/man3/EVP_SKEYMGMT.3" => [ + "doc/man3/EVP_SKEYMGMT.pod" + ], "doc/man/man3/EVP_SealInit.3" => [ "doc/man3/EVP_SealInit.pod" ], @@ -5246,6 +5934,9 @@ our %unified_info = ( "doc/man/man3/EVP_whirlpool.3" => [ "doc/man3/EVP_whirlpool.pod" ], + "doc/man/man3/GENERAL_NAME.3" => [ + "doc/man3/GENERAL_NAME.pod" + ], "doc/man/man3/HMAC.3" => [ "doc/man3/HMAC.pod" ], @@ -5318,9 +6009,15 @@ our %unified_info = ( "doc/man/man3/OPENSSL_load_builtin_modules.3" => [ "doc/man3/OPENSSL_load_builtin_modules.pod" ], + "doc/man/man3/OPENSSL_load_u16_le.3" => [ + "doc/man3/OPENSSL_load_u16_le.pod" + ], "doc/man/man3/OPENSSL_malloc.3" => [ "doc/man3/OPENSSL_malloc.pod" ], + "doc/man/man3/OPENSSL_riscvcap.3" => [ + "doc/man3/OPENSSL_riscvcap.pod" + ], "doc/man/man3/OPENSSL_s390xcap.3" => [ "doc/man3/OPENSSL_s390xcap.pod" ], @@ -5336,12 +6033,18 @@ our %unified_info = ( "doc/man/man3/OSSL_CALLBACK.3" => [ "doc/man3/OSSL_CALLBACK.pod" ], + "doc/man/man3/OSSL_CMP_ATAV_set0.3" => [ + "doc/man3/OSSL_CMP_ATAV_set0.pod" + ], "doc/man/man3/OSSL_CMP_CTX_new.3" => [ "doc/man3/OSSL_CMP_CTX_new.pod" ], "doc/man/man3/OSSL_CMP_HDR_get0_transactionID.3" => [ "doc/man3/OSSL_CMP_HDR_get0_transactionID.pod" ], + "doc/man/man3/OSSL_CMP_ITAV_new_caCerts.3" => [ + "doc/man3/OSSL_CMP_ITAV_new_caCerts.pod" + ], "doc/man/man3/OSSL_CMP_ITAV_set0.3" => [ "doc/man3/OSSL_CMP_ITAV_set0.pod" ], @@ -5411,9 +6114,18 @@ our %unified_info = ( "doc/man/man3/OSSL_ENCODER_to_bio.3" => [ "doc/man3/OSSL_ENCODER_to_bio.pod" ], + "doc/man/man3/OSSL_ERR_STATE_save.3" => [ + "doc/man3/OSSL_ERR_STATE_save.pod" + ], "doc/man/man3/OSSL_ESS_check_signing_certs.3" => [ "doc/man3/OSSL_ESS_check_signing_certs.pod" ], + "doc/man/man3/OSSL_GENERAL_NAMES_print.3" => [ + "doc/man3/OSSL_GENERAL_NAMES_print.pod" + ], + "doc/man/man3/OSSL_HPKE_CTX_new.3" => [ + "doc/man3/OSSL_HPKE_CTX_new.pod" + ], "doc/man/man3/OSSL_HTTP_REQ_CTX.3" => [ "doc/man3/OSSL_HTTP_REQ_CTX.pod" ], @@ -5423,12 +6135,24 @@ our %unified_info = ( "doc/man/man3/OSSL_HTTP_transfer.3" => [ "doc/man3/OSSL_HTTP_transfer.pod" ], + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX.3" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX.pod" + ], + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX_print.3" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX_print.pod" + ], + "doc/man/man3/OSSL_INDICATOR_set_callback.3" => [ + "doc/man3/OSSL_INDICATOR_set_callback.pod" + ], "doc/man/man3/OSSL_ITEM.3" => [ "doc/man3/OSSL_ITEM.pod" ], "doc/man/man3/OSSL_LIB_CTX.3" => [ "doc/man3/OSSL_LIB_CTX.pod" ], + "doc/man/man3/OSSL_LIB_CTX_set_conf_diagnostics.3" => [ + "doc/man3/OSSL_LIB_CTX_set_conf_diagnostics.pod" + ], "doc/man/man3/OSSL_PARAM.3" => [ "doc/man3/OSSL_PARAM.pod" ], @@ -5444,9 +6168,15 @@ our %unified_info = ( "doc/man/man3/OSSL_PARAM_int.3" => [ "doc/man3/OSSL_PARAM_int.pod" ], + "doc/man/man3/OSSL_PARAM_print_to_bio.3" => [ + "doc/man3/OSSL_PARAM_print_to_bio.pod" + ], "doc/man/man3/OSSL_PROVIDER.3" => [ "doc/man3/OSSL_PROVIDER.pod" ], + "doc/man/man3/OSSL_QUIC_client_method.3" => [ + "doc/man3/OSSL_QUIC_client_method.pod" + ], "doc/man/man3/OSSL_SELF_TEST_new.3" => [ "doc/man3/OSSL_SELF_TEST_new.pod" ], @@ -5471,6 +6201,9 @@ our %unified_info = ( "doc/man/man3/OSSL_STORE_open.3" => [ "doc/man3/OSSL_STORE_open.pod" ], + "doc/man/man3/OSSL_sleep.3" => [ + "doc/man3/OSSL_sleep.pod" + ], "doc/man/man3/OSSL_trace_enabled.3" => [ "doc/man3/OSSL_trace_enabled.pod" ], @@ -5486,6 +6219,9 @@ our %unified_info = ( "doc/man/man3/OpenSSL_version.3" => [ "doc/man3/OpenSSL_version.pod" ], + "doc/man/man3/PBMAC1_get1_pbkdf2_param.3" => [ + "doc/man3/PBMAC1_get1_pbkdf2_param.pod" + ], "doc/man/man3/PEM_X509_INFO_read_bio_ex.3" => [ "doc/man3/PEM_X509_INFO_read_bio_ex.pod" ], @@ -5522,6 +6258,9 @@ our %unified_info = ( "doc/man/man3/PKCS12_SAFEBAG_get1_cert.3" => [ "doc/man3/PKCS12_SAFEBAG_get1_cert.pod" ], + "doc/man/man3/PKCS12_SAFEBAG_set0_attrs.3" => [ + "doc/man3/PKCS12_SAFEBAG_set0_attrs.pod" + ], "doc/man/man3/PKCS12_add1_attr_by_NID.3" => [ "doc/man3/PKCS12_add1_attr_by_NID.pod" ], @@ -5795,6 +6534,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set0_CA_list.3" => [ "doc/man3/SSL_CTX_set0_CA_list.pod" ], + "doc/man/man3/SSL_CTX_set1_cert_comp_preference.3" => [ + "doc/man3/SSL_CTX_set1_cert_comp_preference.pod" + ], "doc/man/man3/SSL_CTX_set1_curves.3" => [ "doc/man3/SSL_CTX_set1_curves.pod" ], @@ -5834,6 +6576,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_default_passwd_cb.3" => [ "doc/man3/SSL_CTX_set_default_passwd_cb.pod" ], + "doc/man/man3/SSL_CTX_set_domain_flags.3" => [ + "doc/man3/SSL_CTX_set_domain_flags.pod" + ], "doc/man/man3/SSL_CTX_set_generate_session_id.3" => [ "doc/man3/SSL_CTX_set_generate_session_id.pod" ], @@ -5855,6 +6600,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_msg_callback.3" => [ "doc/man3/SSL_CTX_set_msg_callback.pod" ], + "doc/man/man3/SSL_CTX_set_new_pending_conn_cb.3" => [ + "doc/man3/SSL_CTX_set_new_pending_conn_cb.pod" + ], "doc/man/man3/SSL_CTX_set_num_tickets.3" => [ "doc/man3/SSL_CTX_set_num_tickets.pod" ], @@ -5969,6 +6717,9 @@ our %unified_info = ( "doc/man/man3/SSL_accept.3" => [ "doc/man3/SSL_accept.pod" ], + "doc/man/man3/SSL_accept_stream.3" => [ + "doc/man3/SSL_accept_stream.pod" + ], "doc/man/man3/SSL_alert_type_string.3" => [ "doc/man3/SSL_alert_type_string.pod" ], @@ -5996,9 +6747,21 @@ our %unified_info = ( "doc/man/man3/SSL_free.3" => [ "doc/man3/SSL_free.pod" ], + "doc/man/man3/SSL_get0_connection.3" => [ + "doc/man3/SSL_get0_connection.pod" + ], + "doc/man/man3/SSL_get0_group_name.3" => [ + "doc/man3/SSL_get0_group_name.pod" + ], + "doc/man/man3/SSL_get0_peer_rpk.3" => [ + "doc/man3/SSL_get0_peer_rpk.pod" + ], "doc/man/man3/SSL_get0_peer_scts.3" => [ "doc/man3/SSL_get0_peer_scts.pod" ], + "doc/man/man3/SSL_get1_builtin_sigalgs.3" => [ + "doc/man3/SSL_get1_builtin_sigalgs.pod" + ], "doc/man/man3/SSL_get_SSL_CTX.3" => [ "doc/man3/SSL_get_SSL_CTX.pod" ], @@ -6014,6 +6777,9 @@ our %unified_info = ( "doc/man/man3/SSL_get_client_random.3" => [ "doc/man3/SSL_get_client_random.pod" ], + "doc/man/man3/SSL_get_conn_close_info.3" => [ + "doc/man3/SSL_get_conn_close_info.pod" + ], "doc/man/man3/SSL_get_current_cipher.3" => [ "doc/man3/SSL_get_current_cipher.pod" ], @@ -6023,12 +6789,18 @@ our %unified_info = ( "doc/man/man3/SSL_get_error.3" => [ "doc/man3/SSL_get_error.pod" ], + "doc/man/man3/SSL_get_event_timeout.3" => [ + "doc/man3/SSL_get_event_timeout.pod" + ], "doc/man/man3/SSL_get_extms_support.3" => [ "doc/man3/SSL_get_extms_support.pod" ], "doc/man/man3/SSL_get_fd.3" => [ "doc/man3/SSL_get_fd.pod" ], + "doc/man/man3/SSL_get_handshake_rtt.3" => [ + "doc/man3/SSL_get_handshake_rtt.pod" + ], "doc/man/man3/SSL_get_peer_cert_chain.3" => [ "doc/man3/SSL_get_peer_cert_chain.pod" ], @@ -6047,12 +6819,24 @@ our %unified_info = ( "doc/man/man3/SSL_get_rbio.3" => [ "doc/man3/SSL_get_rbio.pod" ], + "doc/man/man3/SSL_get_rpoll_descriptor.3" => [ + "doc/man3/SSL_get_rpoll_descriptor.pod" + ], "doc/man/man3/SSL_get_session.3" => [ "doc/man3/SSL_get_session.pod" ], "doc/man/man3/SSL_get_shared_sigalgs.3" => [ "doc/man3/SSL_get_shared_sigalgs.pod" ], + "doc/man/man3/SSL_get_stream_id.3" => [ + "doc/man3/SSL_get_stream_id.pod" + ], + "doc/man/man3/SSL_get_stream_read_state.3" => [ + "doc/man3/SSL_get_stream_read_state.pod" + ], + "doc/man/man3/SSL_get_value_uint.3" => [ + "doc/man3/SSL_get_value_uint.pod" + ], "doc/man/man3/SSL_get_verify_result.3" => [ "doc/man3/SSL_get_verify_result.pod" ], @@ -6062,9 +6846,15 @@ our %unified_info = ( "doc/man/man3/SSL_group_to_name.3" => [ "doc/man3/SSL_group_to_name.pod" ], + "doc/man/man3/SSL_handle_events.3" => [ + "doc/man3/SSL_handle_events.pod" + ], "doc/man/man3/SSL_in_init.3" => [ "doc/man3/SSL_in_init.pod" ], + "doc/man/man3/SSL_inject_net_dgram.3" => [ + "doc/man3/SSL_inject_net_dgram.pod" + ], "doc/man/man3/SSL_key_update.3" => [ "doc/man3/SSL_key_update.pod" ], @@ -6077,9 +6867,21 @@ our %unified_info = ( "doc/man/man3/SSL_new.3" => [ "doc/man3/SSL_new.pod" ], + "doc/man/man3/SSL_new_domain.3" => [ + "doc/man3/SSL_new_domain.pod" + ], + "doc/man/man3/SSL_new_listener.3" => [ + "doc/man3/SSL_new_listener.pod" + ], + "doc/man/man3/SSL_new_stream.3" => [ + "doc/man3/SSL_new_stream.pod" + ], "doc/man/man3/SSL_pending.3" => [ "doc/man3/SSL_pending.pod" ], + "doc/man/man3/SSL_poll.3" => [ + "doc/man3/SSL_poll.pod" + ], "doc/man/man3/SSL_read.3" => [ "doc/man3/SSL_read.pod" ], @@ -6095,24 +6897,45 @@ our %unified_info = ( "doc/man/man3/SSL_set1_host.3" => [ "doc/man3/SSL_set1_host.pod" ], + "doc/man/man3/SSL_set1_initial_peer_addr.3" => [ + "doc/man3/SSL_set1_initial_peer_addr.pod" + ], + "doc/man/man3/SSL_set1_server_cert_type.3" => [ + "doc/man3/SSL_set1_server_cert_type.pod" + ], "doc/man/man3/SSL_set_async_callback.3" => [ "doc/man3/SSL_set_async_callback.pod" ], "doc/man/man3/SSL_set_bio.3" => [ "doc/man3/SSL_set_bio.pod" ], + "doc/man/man3/SSL_set_blocking_mode.3" => [ + "doc/man3/SSL_set_blocking_mode.pod" + ], "doc/man/man3/SSL_set_connect_state.3" => [ "doc/man3/SSL_set_connect_state.pod" ], + "doc/man/man3/SSL_set_default_stream_mode.3" => [ + "doc/man3/SSL_set_default_stream_mode.pod" + ], "doc/man/man3/SSL_set_fd.3" => [ "doc/man3/SSL_set_fd.pod" ], + "doc/man/man3/SSL_set_incoming_stream_policy.3" => [ + "doc/man3/SSL_set_incoming_stream_policy.pod" + ], + "doc/man/man3/SSL_set_quic_tls_cbs.3" => [ + "doc/man3/SSL_set_quic_tls_cbs.pod" + ], "doc/man/man3/SSL_set_retry_verify.3" => [ "doc/man3/SSL_set_retry_verify.pod" ], "doc/man/man3/SSL_set_session.3" => [ "doc/man3/SSL_set_session.pod" ], + "doc/man/man3/SSL_set_session_secret_cb.3" => [ + "doc/man3/SSL_set_session_secret_cb.pod" + ], "doc/man/man3/SSL_set_shutdown.3" => [ "doc/man3/SSL_set_shutdown.pod" ], @@ -6125,6 +6948,12 @@ our %unified_info = ( "doc/man/man3/SSL_state_string.3" => [ "doc/man3/SSL_state_string.pod" ], + "doc/man/man3/SSL_stream_conclude.3" => [ + "doc/man3/SSL_stream_conclude.pod" + ], + "doc/man/man3/SSL_stream_reset.3" => [ + "doc/man3/SSL_stream_reset.pod" + ], "doc/man/man3/SSL_want.3" => [ "doc/man3/SSL_want.pod" ], @@ -6134,8 +6963,8 @@ our %unified_info = ( "doc/man/man3/TS_RESP_CTX_new.3" => [ "doc/man3/TS_RESP_CTX_new.pod" ], - "doc/man/man3/TS_VERIFY_CTX_set_certs.3" => [ - "doc/man3/TS_VERIFY_CTX_set_certs.pod" + "doc/man/man3/TS_VERIFY_CTX.3" => [ + "doc/man3/TS_VERIFY_CTX.pod" ], "doc/man/man3/UI_STRING.3" => [ "doc/man3/UI_STRING.pod" @@ -6155,6 +6984,21 @@ our %unified_info = ( "doc/man/man3/X509V3_set_ctx.3" => [ "doc/man3/X509V3_set_ctx.pod" ], + "doc/man/man3/X509_ACERT_add1_attr.3" => [ + "doc/man3/X509_ACERT_add1_attr.pod" + ], + "doc/man/man3/X509_ACERT_add_attr_nconf.3" => [ + "doc/man3/X509_ACERT_add_attr_nconf.pod" + ], + "doc/man/man3/X509_ACERT_get0_holder_baseCertId.3" => [ + "doc/man3/X509_ACERT_get0_holder_baseCertId.pod" + ], + "doc/man/man3/X509_ACERT_get_attr.3" => [ + "doc/man3/X509_ACERT_get_attr.pod" + ], + "doc/man/man3/X509_ACERT_print_ex.3" => [ + "doc/man3/X509_ACERT_print_ex.pod" + ], "doc/man/man3/X509_ALGOR_dup.3" => [ "doc/man3/X509_ALGOR_dup.pod" ], @@ -6203,6 +7047,9 @@ our %unified_info = ( "doc/man/man3/X509_SIG_get0.3" => [ "doc/man3/X509_SIG_get0.pod" ], + "doc/man/man3/X509_STORE_CTX_get_by_subject.3" => [ + "doc/man3/X509_STORE_CTX_get_by_subject.pod" + ], "doc/man/man3/X509_STORE_CTX_get_error.3" => [ "doc/man3/X509_STORE_CTX_get_error.pod" ], @@ -6269,6 +7116,9 @@ our %unified_info = ( "doc/man/man3/X509_get0_uids.3" => [ "doc/man3/X509_get0_uids.pod" ], + "doc/man/man3/X509_get_default_cert_file.3" => [ + "doc/man3/X509_get_default_cert_file.pod" + ], "doc/man/man3/X509_get_extension_flags.3" => [ "doc/man3/X509_get_extension_flags.pod" ], @@ -6392,9 +7242,15 @@ our %unified_info = ( "doc/man/man7/EVP_CIPHER-SM4.7" => [ "doc/man7/EVP_CIPHER-SM4.pod" ], + "doc/man/man7/EVP_KDF-ARGON2.7" => [ + "doc/man7/EVP_KDF-ARGON2.pod" + ], "doc/man/man7/EVP_KDF-HKDF.7" => [ "doc/man7/EVP_KDF-HKDF.pod" ], + "doc/man/man7/EVP_KDF-HMAC-DRBG.7" => [ + "doc/man7/EVP_KDF-HMAC-DRBG.pod" + ], "doc/man/man7/EVP_KDF-KB.7" => [ "doc/man7/EVP_KDF-KB.pod" ], @@ -6410,6 +7266,9 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-PKCS12KDF.7" => [ "doc/man7/EVP_KDF-PKCS12KDF.pod" ], + "doc/man/man7/EVP_KDF-PVKKDF.7" => [ + "doc/man7/EVP_KDF-PVKKDF.pod" + ], "doc/man/man7/EVP_KDF-SCRYPT.7" => [ "doc/man7/EVP_KDF-SCRYPT.pod" ], @@ -6434,9 +7293,18 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-X963.7" => [ "doc/man7/EVP_KDF-X963.pod" ], + "doc/man/man7/EVP_KEM-EC.7" => [ + "doc/man7/EVP_KEM-EC.pod" + ], + "doc/man/man7/EVP_KEM-ML-KEM.7" => [ + "doc/man7/EVP_KEM-ML-KEM.pod" + ], "doc/man/man7/EVP_KEM-RSA.7" => [ "doc/man7/EVP_KEM-RSA.pod" ], + "doc/man/man7/EVP_KEM-X25519.7" => [ + "doc/man7/EVP_KEM-X25519.pod" + ], "doc/man/man7/EVP_KEYEXCH-DH.7" => [ "doc/man7/EVP_KEYEXCH-DH.pod" ], @@ -6470,6 +7338,9 @@ our %unified_info = ( "doc/man/man7/EVP_MD-BLAKE2.7" => [ "doc/man7/EVP_MD-BLAKE2.pod" ], + "doc/man/man7/EVP_MD-KECCAK.7" => [ + "doc/man7/EVP_MD-KECCAK.pod" + ], "doc/man/man7/EVP_MD-MD2.7" => [ "doc/man7/EVP_MD-MD2.pod" ], @@ -6527,15 +7398,27 @@ our %unified_info = ( "doc/man/man7/EVP_PKEY-HMAC.7" => [ "doc/man7/EVP_PKEY-HMAC.pod" ], + "doc/man/man7/EVP_PKEY-ML-DSA.7" => [ + "doc/man7/EVP_PKEY-ML-DSA.pod" + ], + "doc/man/man7/EVP_PKEY-ML-KEM.7" => [ + "doc/man7/EVP_PKEY-ML-KEM.pod" + ], "doc/man/man7/EVP_PKEY-RSA.7" => [ "doc/man7/EVP_PKEY-RSA.pod" ], + "doc/man/man7/EVP_PKEY-SLH-DSA.7" => [ + "doc/man7/EVP_PKEY-SLH-DSA.pod" + ], "doc/man/man7/EVP_PKEY-SM2.7" => [ "doc/man7/EVP_PKEY-SM2.pod" ], "doc/man/man7/EVP_PKEY-X25519.7" => [ "doc/man7/EVP_PKEY-X25519.pod" ], + "doc/man/man7/EVP_RAND-CRNG-TEST.7" => [ + "doc/man7/EVP_RAND-CRNG-TEST.pod" + ], "doc/man/man7/EVP_RAND-CTR-DRBG.7" => [ "doc/man7/EVP_RAND-CTR-DRBG.pod" ], @@ -6545,6 +7428,9 @@ our %unified_info = ( "doc/man/man7/EVP_RAND-HMAC-DRBG.7" => [ "doc/man7/EVP_RAND-HMAC-DRBG.pod" ], + "doc/man/man7/EVP_RAND-JITTER.7" => [ + "doc/man7/EVP_RAND-JITTER.pod" + ], "doc/man/man7/EVP_RAND-SEED-SRC.7" => [ "doc/man7/EVP_RAND-SEED-SRC.pod" ], @@ -6566,9 +7452,15 @@ our %unified_info = ( "doc/man/man7/EVP_SIGNATURE-HMAC.7" => [ "doc/man7/EVP_SIGNATURE-HMAC.pod" ], + "doc/man/man7/EVP_SIGNATURE-ML-DSA.7" => [ + "doc/man7/EVP_SIGNATURE-ML-DSA.pod" + ], "doc/man/man7/EVP_SIGNATURE-RSA.7" => [ "doc/man7/EVP_SIGNATURE-RSA.pod" ], + "doc/man/man7/EVP_SIGNATURE-SLH-DSA.7" => [ + "doc/man7/EVP_SIGNATURE-SLH-DSA.pod" + ], "doc/man/man7/OSSL_PROVIDER-FIPS.7" => [ "doc/man7/OSSL_PROVIDER-FIPS.pod" ], @@ -6584,6 +7476,9 @@ our %unified_info = ( "doc/man/man7/OSSL_PROVIDER-null.7" => [ "doc/man7/OSSL_PROVIDER-null.pod" ], + "doc/man/man7/OSSL_STORE-winstore.7" => [ + "doc/man7/OSSL_STORE-winstore.pod" + ], "doc/man/man7/RAND.7" => [ "doc/man7/RAND.pod" ], @@ -6596,9 +7491,6 @@ our %unified_info = ( "doc/man/man7/bio.7" => [ "doc/man7/bio.pod" ], - "doc/man/man7/crypto.7" => [ - "doc/man7/crypto.pod" - ], "doc/man/man7/ct.7" => [ "doc/man7/ct.pod" ], @@ -6629,9 +7521,6 @@ our %unified_info = ( "doc/man/man7/life_cycle-rand.7" => [ "doc/man7/life_cycle-rand.pod" ], - "doc/man/man7/migration_guide.7" => [ - "doc/man7/migration_guide.pod" - ], "doc/man/man7/openssl-core.h.7" => [ "doc/man7/openssl-core.h.pod" ], @@ -6647,12 +7536,66 @@ our %unified_info = ( "doc/man/man7/openssl-glossary.7" => [ "doc/man7/openssl-glossary.pod" ], + "doc/man/man7/openssl-qlog.7" => [ + "doc/man7/openssl-qlog.pod" + ], + "doc/man/man7/openssl-quic-concurrency.7" => [ + "doc/man7/openssl-quic-concurrency.pod" + ], + "doc/man/man7/openssl-quic.7" => [ + "doc/man7/openssl-quic.pod" + ], "doc/man/man7/openssl-threads.7" => [ "doc/man7/openssl-threads.pod" ], "doc/man/man7/openssl_user_macros.7" => [ "doc/man7/openssl_user_macros.pod" ], + "doc/man/man7/ossl-guide-introduction.7" => [ + "doc/man7/ossl-guide-introduction.pod" + ], + "doc/man/man7/ossl-guide-libcrypto-introduction.7" => [ + "doc/man7/ossl-guide-libcrypto-introduction.pod" + ], + "doc/man/man7/ossl-guide-libraries-introduction.7" => [ + "doc/man7/ossl-guide-libraries-introduction.pod" + ], + "doc/man/man7/ossl-guide-libssl-introduction.7" => [ + "doc/man7/ossl-guide-libssl-introduction.pod" + ], + "doc/man/man7/ossl-guide-migration.7" => [ + "doc/man7/ossl-guide-migration.pod" + ], + "doc/man/man7/ossl-guide-quic-client-block.7" => [ + "doc/man7/ossl-guide-quic-client-block.pod" + ], + "doc/man/man7/ossl-guide-quic-client-non-block.7" => [ + "doc/man7/ossl-guide-quic-client-non-block.pod" + ], + "doc/man/man7/ossl-guide-quic-introduction.7" => [ + "doc/man7/ossl-guide-quic-introduction.pod" + ], + "doc/man/man7/ossl-guide-quic-multi-stream.7" => [ + "doc/man7/ossl-guide-quic-multi-stream.pod" + ], + "doc/man/man7/ossl-guide-quic-server-block.7" => [ + "doc/man7/ossl-guide-quic-server-block.pod" + ], + "doc/man/man7/ossl-guide-quic-server-non-block.7" => [ + "doc/man7/ossl-guide-quic-server-non-block.pod" + ], + "doc/man/man7/ossl-guide-tls-client-block.7" => [ + "doc/man7/ossl-guide-tls-client-block.pod" + ], + "doc/man/man7/ossl-guide-tls-client-non-block.7" => [ + "doc/man7/ossl-guide-tls-client-non-block.pod" + ], + "doc/man/man7/ossl-guide-tls-introduction.7" => [ + "doc/man7/ossl-guide-tls-introduction.pod" + ], + "doc/man/man7/ossl-guide-tls-server-block.7" => [ + "doc/man7/ossl-guide-tls-server-block.pod" + ], "doc/man/man7/ossl_store-file.7" => [ "doc/man7/ossl_store-file.pod" ], @@ -6707,6 +7650,9 @@ our %unified_info = ( "doc/man/man7/provider-signature.7" => [ "doc/man7/provider-signature.pod" ], + "doc/man/man7/provider-skeymgmt.7" => [ + "doc/man7/provider-skeymgmt.pod" + ], "doc/man/man7/provider-storemgmt.7" => [ "doc/man7/provider-storemgmt.pod" ], @@ -6716,9 +7662,6 @@ our %unified_info = ( "doc/man/man7/proxy-certificates.7" => [ "doc/man7/proxy-certificates.pod" ], - "doc/man/man7/ssl.7" => [ - "doc/man7/ssl.pod" - ], "doc/man/man7/x509.7" => [ "doc/man7/x509.pod" ], @@ -6898,6 +7841,10 @@ our %unified_info = ( "doc/man1/openssl-sess_id.pod.in", "doc/perlvars.pm" ], + "doc/man1/openssl-skeyutl.pod" => [ + "doc/man1/openssl-skeyutl.pod.in", + "doc/perlvars.pm" + ], "doc/man1/openssl-smime.pod" => [ "doc/man1/openssl-smime.pod.in", "doc/perlvars.pm" @@ -6937,6 +7884,27 @@ our %unified_info = ( "doc/man7/openssl_user_macros.pod" => [ "doc/man7/openssl_user_macros.pod.in" ], + "exporters/OpenSSLConfig.cmake" => [ + "installdata.pm" + ], + "exporters/OpenSSLConfigVersion.cmake" => [ + "exporters/OpenSSLConfig.cmake", + "installdata.pm" + ], + "exporters/libcrypto.pc" => [ + "installdata.pm" + ], + "exporters/libssl.pc" => [ + "installdata.pm" + ], + "exporters/openssl.pc" => [ + "exporters/libcrypto.pc", + "exporters/libssl.pc", + "installdata.pm" + ], + "fuzz/acert-test" => [ + "libcrypto" + ], "fuzz/asn1-test" => [ "libcrypto", "libssl" @@ -6969,17 +7937,85 @@ our %unified_info = ( "fuzz/ct-test" => [ "libcrypto" ], + "fuzz/decoder-test" => [ + "libcrypto" + ], + "fuzz/dtlsclient-test" => [ + "libcrypto", + "libssl" + ], + "fuzz/dtlsserver-test" => [ + "libcrypto", + "libssl" + ], + "fuzz/hashtable-test" => [ + "libcrypto.a" + ], + "fuzz/ml-dsa-test" => [ + "libcrypto.a" + ], + "fuzz/ml-kem-test" => [ + "libcrypto.a" + ], + "fuzz/pem-test" => [ + "libcrypto.a" + ], + "fuzz/provider-test" => [ + "libcrypto" + ], + "fuzz/punycode-test" => [ + "libcrypto.a" + ], + "fuzz/quic-client-test" => [ + "libcrypto.a", + "libssl.a" + ], + "fuzz/quic-lcidm-test" => [ + "libcrypto.a", + "libssl.a" + ], + "fuzz/quic-rcidm-test" => [ + "libcrypto.a", + "libssl.a" + ], + "fuzz/quic-server-test" => [ + "libcrypto.a", + "libssl.a" + ], + "fuzz/quic-srtm-test" => [ + "libcrypto.a", + "libssl.a" + ], "fuzz/server-test" => [ "libcrypto", "libssl" ], + "fuzz/slh-dsa-test" => [ + "libcrypto.a" + ], + "fuzz/smime-test" => [ + "libcrypto", + "libssl" + ], + "fuzz/v3name-test" => [ + "libcrypto.a" + ], "fuzz/x509-test" => [ "libcrypto" ], + "include/internal/param_names.h" => [ + "util/perl|OpenSSL/paramnames.pm" + ], + "include/openssl/core_names.h" => [ + "util/perl|OpenSSL/paramnames.pm" + ], "libcrypto.ld" => [ "configdata.pm", "util/perl/OpenSSL/Ordinals.pm" ], + "libcrypto.pc" => [ + "builddata.pm" + ], "libcrypto.rc" => [ "configdata.pm" ], @@ -6990,9 +8026,17 @@ our %unified_info = ( "configdata.pm", "util/perl/OpenSSL/Ordinals.pm" ], + "libssl.pc" => [ + "builddata.pm" + ], "libssl.rc" => [ "configdata.pm" ], + "openssl.pc" => [ + "builddata.pm", + "libcrypto.pc", + "libssl.pc" + ], "providers/common/der/der_digests_gen.c" => [ "providers/common/der/DIGESTS.asn1", "providers/common/der/NIST.asn1", @@ -7010,11 +8054,19 @@ our %unified_info = ( "providers/common/der/ECX.asn1", "providers/common/der/oids_to_c.pm" ], + "providers/common/der/der_ml_dsa_gen.c" => [ + "providers/common/der/ML_DSA.asn1", + "providers/common/der/oids_to_c.pm" + ], "providers/common/der/der_rsa_gen.c" => [ "providers/common/der/NIST.asn1", "providers/common/der/RSA.asn1", "providers/common/der/oids_to_c.pm" ], + "providers/common/der/der_slh_dsa_gen.c" => [ + "providers/common/der/SLH_DSA.asn1", + "providers/common/der/oids_to_c.pm" + ], "providers/common/der/der_sm2_gen.c" => [ "providers/common/der/SM2.asn1", "providers/common/der/oids_to_c.pm" @@ -7054,6 +8106,12 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ecx_key.o" => [ "providers/common/include/prov/der_ecx.h" ], + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o" => [ + "providers/common/include/prov/der_ml_dsa.h" + ], + "providers/common/der/libcommon-lib-der_ml_dsa_key.o" => [ + "providers/common/include/prov/der_ml_dsa.h" + ], "providers/common/der/libcommon-lib-der_rsa_gen.o" => [ "providers/common/include/prov/der_rsa.h" ], @@ -7061,6 +8119,12 @@ our %unified_info = ( "providers/common/include/prov/der_digests.h", "providers/common/include/prov/der_rsa.h" ], + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o" => [ + "providers/common/include/prov/der_slh_dsa.h" + ], + "providers/common/der/libcommon-lib-der_slh_dsa_key.o" => [ + "providers/common/include/prov/der_slh_dsa.h" + ], "providers/common/der/libcommon-lib-der_wrap_gen.o" => [ "providers/common/include/prov/der_wrap.h" ], @@ -7100,11 +8164,19 @@ our %unified_info = ( "providers/common/der/ECX.asn1", "providers/common/der/oids_to_c.pm" ], + "providers/common/include/prov/der_ml_dsa.h" => [ + "providers/common/der/ML_DSA.asn1", + "providers/common/der/oids_to_c.pm" + ], "providers/common/include/prov/der_rsa.h" => [ "providers/common/der/NIST.asn1", "providers/common/der/RSA.asn1", "providers/common/der/oids_to_c.pm" ], + "providers/common/include/prov/der_slh_dsa.h" => [ + "providers/common/der/SLH_DSA.asn1", + "providers/common/der/oids_to_c.pm" + ], "providers/common/include/prov/der_sm2.h" => [ "providers/common/der/SM2.asn1", "providers/common/der/oids_to_c.pm" @@ -7137,9 +8209,15 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-eddsa_sig.o" => [ "providers/common/include/prov/der_ecx.h" ], + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o" => [ + "providers/common/include/prov/der_ml_dsa.h" + ], "providers/implementations/signature/libdefault-lib-rsa_sig.o" => [ "providers/common/include/prov/der_rsa.h" ], + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o" => [ + "providers/common/include/prov/der_slh_dsa.h" + ], "providers/implementations/signature/libdefault-lib-sm2_sig.o" => [ "providers/common/include/prov/der_sm2.h" ], @@ -7152,9 +8230,15 @@ our %unified_info = ( "providers/implementations/signature/libfips-lib-eddsa_sig.o" => [ "providers/common/include/prov/der_ecx.h" ], + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o" => [ + "providers/common/include/prov/der_ml_dsa.h" + ], "providers/implementations/signature/libfips-lib-rsa_sig.o" => [ "providers/common/include/prov/der_rsa.h" ], + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o" => [ + "providers/common/include/prov/der_slh_dsa.h" + ], "providers/legacy" => [ "libcrypto", "providers/liblegacy.a" @@ -7232,6 +8316,14 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/bio_addr_test" => [ + "libcrypto", + "test/libtestutil.a" + ], + "test/bio_base64_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/bio_callback_test" => [ "libcrypto", "test/libtestutil.a" @@ -7240,6 +8332,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/bio_dgram_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/bio_enc_test" => [ "libcrypto", "test/libtestutil.a" @@ -7248,6 +8344,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/bio_meth_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/bio_prefix_text" => [ "libcrypto", "test/libtestutil.a" @@ -7260,6 +8360,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/bio_tfo_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/bioprinttest" => [ "libcrypto", "test/libtestutil.a" @@ -7272,6 +8376,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/build_wincrypt_test" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_aes" => [ "libcrypto", "libssl" @@ -7292,6 +8400,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_byteorder" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_camellia" => [ "libcrypto", "libssl" @@ -7324,10 +8436,6 @@ our %unified_info = ( "libcrypto", "libssl" ], - "test/buildtest_c_core_names" => [ - "libcrypto", - "libssl" - ], "test/buildtest_c_core_object" => [ "libcrypto", "libssl" @@ -7360,6 +8468,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_e_ostime" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_ebcdic" => [ "libcrypto", "libssl" @@ -7396,6 +8508,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_hpke" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_http" => [ "libcrypto", "libssl" @@ -7404,6 +8520,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_indicator" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_kdf" => [ "libcrypto", "libssl" @@ -7424,6 +8544,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_ml_kem" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_modes" => [ "libcrypto", "libssl" @@ -7464,6 +8588,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_quic" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_rand" => [ "libcrypto", "libssl" @@ -7520,6 +8648,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_thread" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_tls1" => [ "libcrypto", "libssl" @@ -7540,10 +8672,23 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/byteorder_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], + "test/ca_internals_test" => [ + "libssl", + "test/libtestutil.a" + ], "test/casttest" => [ "libcrypto", "test/libtestutil.a" ], + "test/cert_comp_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], "test/chacha_internal_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -7657,7 +8802,11 @@ our %unified_info = ( "libssl", "test/libtestutil.a" ], - "test/defltfips_test" => [ + "test/decoder_propq_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], + "test/defltfips_test" => [ "libcrypto", "test/libtestutil.a" ], @@ -7713,6 +8862,8 @@ our %unified_info = ( ], "test/endecode_test" => [ "libcrypto.a", + "providers/libcommon.a", + "providers/liblegacy.a", "test/libtestutil.a" ], "test/endecoder_legacy_test" => [ @@ -7756,6 +8907,10 @@ our %unified_info = ( "test/evp_pkey_ctx_new_from_name" => [ "libcrypto" ], + "test/evp_pkey_dhkem_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/evp_pkey_dparams_test" => [ "libcrypto", "test/libtestutil.a" @@ -7764,10 +8919,18 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/evp_skey_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/evp_test" => [ "libcrypto", "test/libtestutil.a" ], + "test/evp_xof_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/exdatatest" => [ "libcrypto", "test/libtestutil.a" @@ -7806,6 +8969,10 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/hpke_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/http_test" => [ "libcrypto", "test/libtestutil.a" @@ -7818,17 +8985,25 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/json_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], "test/keymgmt_internal_test" => [ "libcrypto.a", "test/libtestutil.a" ], "test/lhash_test" => [ - "libcrypto", + "libcrypto.a", "test/libtestutil.a" ], "test/libtestutil.a" => [ "libcrypto" ], + "test/list_test" => [ + "test/libtestutil.a" + ], "test/localetest" => [ "libcrypto", "test/libtestutil.a" @@ -7841,10 +9016,26 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/membio_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/memleaktest" => [ "libcrypto", "test/libtestutil.a" ], + "test/ml_dsa_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], + "test/ml_kem_evp_extra_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], + "test/ml_kem_internal_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/modes_internal_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -7869,6 +9060,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/pairwise_fail_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/param_build_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -7901,6 +9096,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/pkcs12_api_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/pkcs12_format_test" => [ "libcrypto", "test/libtestutil.a" @@ -7921,6 +9120,11 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/priority_queue_test" => [ + "libcrypto", + "libssl.a", + "test/libtestutil.a" + ], "test/property_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -7933,6 +9137,10 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/provider_default_search_path_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/provider_fallback_test" => [ "libcrypto", "test/libtestutil.a" @@ -7957,12 +9165,122 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/quic_ackm_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_cc_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_cfq_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_client_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_fc_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_fifd_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_lcidm_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_multistream_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_newcid_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_qlog_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_radix_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_rcidm_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_record_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_srt_gen_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_srtm_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_stream_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_tserver_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_txp_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_txpim_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_wire_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quicapitest" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quicfaultstest" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], "test/rand_status_test" => [ "libcrypto", "test/libtestutil.a" ], "test/rand_test" => [ - "libcrypto", + "libcrypto.a", "test/libtestutil.a" ], "test/rc2test" => [ @@ -7977,7 +9295,7 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], - "test/rdrand_sanitytest" => [ + "test/rdcpu_sanitytest" => [ "libcrypto.a", "test/libtestutil.a" ], @@ -7986,6 +9304,11 @@ our %unified_info = ( "libssl", "test/libtestutil.a" ], + "test/rpktest" => [ + "libcrypto", + "libssl", + "test/libtestutil.a" + ], "test/rsa_mp_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -7998,10 +9321,18 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], - "test/sanitytest" => [ + "test/rsa_x931_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], + "test/safe_math_test" => [ "libcrypto", "test/libtestutil.a" ], + "test/sanitytest" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/secmemtest" => [ "libcrypto", "test/libtestutil.a" @@ -8019,6 +9350,10 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/slh_dsa_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/sm2_internal_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -8048,6 +9383,11 @@ our %unified_info = ( "libssl", "test/libtestutil.a" ], + "test/ssl_handshake_rtt_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], "test/ssl_old_test" => [ "libcrypto.a", "libssl.a", @@ -8064,8 +9404,8 @@ our %unified_info = ( "test/libtestutil.a" ], "test/sslapitest" => [ - "libcrypto", - "libssl", + "libcrypto.a", + "libssl.a", "test/libtestutil.a" ], "test/sslbuffertest" => [ @@ -8082,6 +9422,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/strtoultest" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/sysdefaulttest" => [ "libcrypto", "libssl", @@ -8091,8 +9435,12 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/threadpool_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/threadstest" => [ - "libcrypto", + "libcrypto.a", "test/libtestutil.a" ], "test/threadstest_fips" => [ @@ -8103,6 +9451,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/time_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/tls13ccstest" => [ "libcrypto", "libssl", @@ -8113,6 +9465,11 @@ our %unified_info = ( "libssl.a", "test/libtestutil.a" ], + "test/tls13groupselection_test" => [ + "libcrypto", + "libssl", + "test/libtestutil.a" + ], "test/trace_api_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -8150,6 +9507,10 @@ our %unified_info = ( "libssl.a", "test/libtestutil.a" ], + "test/x509_acert_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/x509_check_cert_pkey_test" => [ "libcrypto", "test/libtestutil.a" @@ -8162,6 +9523,18 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/x509_load_cert_file_test" => [ + "libcrypto", + "test/libtestutil.a" + ], + "test/x509_req_test" => [ + "libcrypto", + "test/libtestutil.a" + ], + "test/x509_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/x509_time_test" => [ "libcrypto", "test/libtestutil.a" @@ -8176,9 +9549,13 @@ our %unified_info = ( }, "dirinfo" => { "apps" => { + "deps" => [ + "apps/ca_internals_test-bin-ca.o" + ], "products" => { "bin" => [ - "apps/openssl" + "apps/openssl", + "test/ca_internals_test" ], "script" => [ "apps/CA.pl", @@ -8189,6 +9566,14 @@ our %unified_info = ( "apps/lib" => { "deps" => [ "apps/lib/openssl-bin-cmp_mock_srv.o", + "apps/lib/ca_internals_test-bin-app_libctx.o", + "apps/lib/ca_internals_test-bin-app_provider.o", + "apps/lib/ca_internals_test-bin-app_rand.o", + "apps/lib/ca_internals_test-bin-app_x509.o", + "apps/lib/ca_internals_test-bin-apps.o", + "apps/lib/ca_internals_test-bin-apps_ui.o", + "apps/lib/ca_internals_test-bin-engine.o", + "apps/lib/ca_internals_test-bin-fmt.o", "apps/lib/cmp_client_test-bin-cmp_mock_srv.o", "apps/lib/uitest-bin-apps_ui.o", "apps/lib/libapps-lib-app_libctx.o", @@ -8197,12 +9582,14 @@ our %unified_info = ( "apps/lib/libapps-lib-app_rand.o", "apps/lib/libapps-lib-app_x509.o", "apps/lib/libapps-lib-apps.o", + "apps/lib/libapps-lib-apps_opt_printf.o", "apps/lib/libapps-lib-apps_ui.o", "apps/lib/libapps-lib-columns.o", "apps/lib/libapps-lib-engine.o", "apps/lib/libapps-lib-engine_loader.o", "apps/lib/libapps-lib-fmt.o", "apps/lib/libapps-lib-http_server.o", + "apps/lib/libapps-lib-log.o", "apps/lib/libapps-lib-names.o", "apps/lib/libapps-lib-opt.o", "apps/lib/libapps-lib-s_cb.o", @@ -8215,6 +9602,7 @@ our %unified_info = ( "products" => { "bin" => [ "apps/openssl", + "test/ca_internals_test", "test/cmp_client_test", "test/uitest" ], @@ -8226,8 +9614,12 @@ our %unified_info = ( }, "crypto" => { "deps" => [ + "crypto/asn1_time_test-bin-ctype.o", + "crypto/ca_internals_test-bin-ctype.o", + "crypto/packettest-bin-quic_vlint.o", "crypto/libcrypto-lib-asn1_dsa.o", "crypto/libcrypto-lib-bsearch.o", + "crypto/libcrypto-lib-comp_methods.o", "crypto/libcrypto-lib-context.o", "crypto/libcrypto-lib-core_algorithm.o", "crypto/libcrypto-lib-core_fetch.o", @@ -8237,10 +9629,13 @@ our %unified_info = ( "crypto/libcrypto-lib-cryptlib.o", "crypto/libcrypto-lib-ctype.o", "crypto/libcrypto-lib-cversion.o", + "crypto/libcrypto-lib-defaults.o", "crypto/libcrypto-lib-der_writer.o", + "crypto/libcrypto-lib-deterministic_nonce.o", "crypto/libcrypto-lib-ebcdic.o", "crypto/libcrypto-lib-ex_data.o", "crypto/libcrypto-lib-getenv.o", + "crypto/libcrypto-lib-indicator_core.o", "crypto/libcrypto-lib-info.o", "crypto/libcrypto-lib-init.o", "crypto/libcrypto-lib-initthread.o", @@ -8258,6 +9653,7 @@ our %unified_info = ( "crypto/libcrypto-lib-params.o", "crypto/libcrypto-lib-params_dup.o", "crypto/libcrypto-lib-params_from_text.o", + "crypto/libcrypto-lib-params_idx.o", "crypto/libcrypto-lib-passphrase.o", "crypto/libcrypto-lib-provider.o", "crypto/libcrypto-lib-provider_child.o", @@ -8265,12 +9661,16 @@ our %unified_info = ( "crypto/libcrypto-lib-provider_core.o", "crypto/libcrypto-lib-provider_predefined.o", "crypto/libcrypto-lib-punycode.o", + "crypto/libcrypto-lib-quic_vlint.o", "crypto/libcrypto-lib-self_test_core.o", + "crypto/libcrypto-lib-sleep.o", "crypto/libcrypto-lib-sparse_array.o", + "crypto/libcrypto-lib-ssl_err.o", "crypto/libcrypto-lib-threads_lib.o", "crypto/libcrypto-lib-threads_none.o", "crypto/libcrypto-lib-threads_pthread.o", "crypto/libcrypto-lib-threads_win.o", + "crypto/libcrypto-lib-time.o", "crypto/libcrypto-lib-trace.o", "crypto/libcrypto-lib-uid.o", "crypto/libfips-lib-asn1_dsa.o", @@ -8293,6 +9693,7 @@ our %unified_info = ( "crypto/libfips-lib-params.o", "crypto/libfips-lib-params_dup.o", "crypto/libfips-lib-params_from_text.o", + "crypto/libfips-lib-params_idx.o", "crypto/libfips-lib-provider_core.o", "crypto/libfips-lib-provider_predefined.o", "crypto/libfips-lib-self_test_core.o", @@ -8300,9 +9701,15 @@ our %unified_info = ( "crypto/libfips-lib-threads_lib.o", "crypto/libfips-lib-threads_none.o", "crypto/libfips-lib-threads_pthread.o", - "crypto/libfips-lib-threads_win.o" + "crypto/libfips-lib-threads_win.o", + "crypto/libfips-lib-time.o" ], "products" => { + "bin" => [ + "test/asn1_time_test", + "test/ca_internals_test", + "test/packettest" + ], "lib" => [ "libcrypto", "providers/libfips.a" @@ -8343,6 +9750,8 @@ our %unified_info = ( }, "crypto/asn1" => { "deps" => [ + "crypto/asn1/asn1_time_test-bin-a_time.o", + "crypto/asn1/ca_internals_test-bin-a_time.o", "crypto/asn1/libcrypto-lib-a_bitstr.o", "crypto/asn1/libcrypto-lib-a_d2i_fp.o", "crypto/asn1/libcrypto-lib-a_digest.o", @@ -8409,6 +9818,10 @@ our %unified_info = ( "crypto/asn1/libcrypto-lib-x_val.o" ], "products" => { + "bin" => [ + "test/asn1_time_test", + "test/ca_internals_test" + ], "lib" => [ "libcrypto" ] @@ -8474,6 +9887,7 @@ our %unified_info = ( "crypto/bio/libcrypto-lib-bss_conn.o", "crypto/bio/libcrypto-lib-bss_core.o", "crypto/bio/libcrypto-lib-bss_dgram.o", + "crypto/bio/libcrypto-lib-bss_dgram_pair.o", "crypto/bio/libcrypto-lib-bss_fd.o", "crypto/bio/libcrypto-lib-bss_file.o", "crypto/bio/libcrypto-lib-bss_log.o", @@ -8630,6 +10044,7 @@ our %unified_info = ( "crypto/cmp/libcrypto-lib-cmp_client.o", "crypto/cmp/libcrypto-lib-cmp_ctx.o", "crypto/cmp/libcrypto-lib-cmp_err.o", + "crypto/cmp/libcrypto-lib-cmp_genm.o", "crypto/cmp/libcrypto-lib-cmp_hdr.o", "crypto/cmp/libcrypto-lib-cmp_http.o", "crypto/cmp/libcrypto-lib-cmp_msg.o", @@ -8997,7 +10412,9 @@ our %unified_info = ( "crypto/err/libcrypto-lib-err_all.o", "crypto/err/libcrypto-lib-err_all_legacy.o", "crypto/err/libcrypto-lib-err_blocks.o", - "crypto/err/libcrypto-lib-err_prn.o" + "crypto/err/libcrypto-lib-err_mark.o", + "crypto/err/libcrypto-lib-err_prn.o", + "crypto/err/libcrypto-lib-err_save.o" ], "products" => { "lib" => [ @@ -9098,7 +10515,9 @@ our %unified_info = ( "crypto/evp/libcrypto-lib-pmeth_check.o", "crypto/evp/libcrypto-lib-pmeth_gn.o", "crypto/evp/libcrypto-lib-pmeth_lib.o", + "crypto/evp/libcrypto-lib-s_lib.o", "crypto/evp/libcrypto-lib-signature.o", + "crypto/evp/libcrypto-lib-skeymgmt_meth.o", "crypto/evp/libfips-lib-asymcipher.o", "crypto/evp/libfips-lib-dh_support.o", "crypto/evp/libfips-lib-digest.o", @@ -9114,14 +10533,15 @@ our %unified_info = ( "crypto/evp/libfips-lib-kem.o", "crypto/evp/libfips-lib-keymgmt_lib.o", "crypto/evp/libfips-lib-keymgmt_meth.o", - "crypto/evp/libfips-lib-m_sigver.o", "crypto/evp/libfips-lib-mac_lib.o", "crypto/evp/libfips-lib-mac_meth.o", "crypto/evp/libfips-lib-p_lib.o", "crypto/evp/libfips-lib-pmeth_check.o", "crypto/evp/libfips-lib-pmeth_gn.o", "crypto/evp/libfips-lib-pmeth_lib.o", - "crypto/evp/libfips-lib-signature.o" + "crypto/evp/libfips-lib-s_lib.o", + "crypto/evp/libfips-lib-signature.o", + "crypto/evp/libfips-lib-skeymgmt_meth.o" ], "products" => { "lib" => [ @@ -9154,6 +10574,20 @@ our %unified_info = ( ] } }, + "crypto/hashtable" => { + "deps" => [ + "crypto/hashtable/libcrypto-lib-hashfunc.o", + "crypto/hashtable/libcrypto-lib-hashtable.o", + "crypto/hashtable/libfips-lib-hashfunc.o", + "crypto/hashtable/libfips-lib-hashtable.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, "crypto/hmac" => { "deps" => [ "crypto/hmac/libcrypto-lib-hmac.o", @@ -9166,6 +10600,17 @@ our %unified_info = ( ] } }, + "crypto/hpke" => { + "deps" => [ + "crypto/hpke/libcrypto-lib-hpke.o", + "crypto/hpke/libcrypto-lib-hpke_util.o" + ], + "products" => { + "lib" => [ + "libcrypto" + ] + } + }, "crypto/http" => { "deps" => [ "crypto/http/libcrypto-lib-http_client.o", @@ -9249,6 +10694,44 @@ our %unified_info = ( ] } }, + "crypto/ml_dsa" => { + "deps" => [ + "crypto/ml_dsa/libcrypto-lib-ml_dsa_encoders.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key_compress.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_matrix.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_ntt.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_params.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sample.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sign.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_encoders.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_key.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_key_compress.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_matrix.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_ntt.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_params.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_sample.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_sign.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, + "crypto/ml_kem" => { + "deps" => [ + "crypto/ml_kem/libcrypto-lib-ml_kem.o", + "crypto/ml_kem/libfips-lib-ml_kem.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, "crypto/modes" => { "deps" => [ "crypto/modes/libcrypto-lib-cbc128.o", @@ -9262,6 +10745,7 @@ our %unified_info = ( "crypto/modes/libcrypto-lib-siv128.o", "crypto/modes/libcrypto-lib-wrap128.o", "crypto/modes/libcrypto-lib-xts128.o", + "crypto/modes/libcrypto-lib-xts128gb.o", "crypto/modes/libfips-lib-cbc128.o", "crypto/modes/libfips-lib-ccm128.o", "crypto/modes/libfips-lib-cfb128.o", @@ -9269,7 +10753,8 @@ our %unified_info = ( "crypto/modes/libfips-lib-gcm128.o", "crypto/modes/libfips-lib-ofb128.o", "crypto/modes/libfips-lib-wrap128.o", - "crypto/modes/libfips-lib-xts128.o" + "crypto/modes/libfips-lib-xts128.o", + "crypto/modes/libfips-lib-xts128gb.o" ], "products" => { "lib" => [ @@ -9412,6 +10897,7 @@ our %unified_info = ( "crypto/rand/libcrypto-lib-rand_lib.o", "crypto/rand/libcrypto-lib-rand_meth.o", "crypto/rand/libcrypto-lib-rand_pool.o", + "crypto/rand/libcrypto-lib-rand_uniform.o", "crypto/rand/libcrypto-lib-randfile.o", "crypto/rand/libfips-lib-rand_lib.o" ], @@ -9556,6 +11042,36 @@ our %unified_info = ( ] } }, + "crypto/slh_dsa" => { + "deps" => [ + "crypto/slh_dsa/libcrypto-lib-slh_adrs.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa_hash_ctx.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa_key.o", + "crypto/slh_dsa/libcrypto-lib-slh_fors.o", + "crypto/slh_dsa/libcrypto-lib-slh_hash.o", + "crypto/slh_dsa/libcrypto-lib-slh_hypertree.o", + "crypto/slh_dsa/libcrypto-lib-slh_params.o", + "crypto/slh_dsa/libcrypto-lib-slh_wots.o", + "crypto/slh_dsa/libcrypto-lib-slh_xmss.o", + "crypto/slh_dsa/libfips-lib-slh_adrs.o", + "crypto/slh_dsa/libfips-lib-slh_dsa.o", + "crypto/slh_dsa/libfips-lib-slh_dsa_hash_ctx.o", + "crypto/slh_dsa/libfips-lib-slh_dsa_key.o", + "crypto/slh_dsa/libfips-lib-slh_fors.o", + "crypto/slh_dsa/libfips-lib-slh_hash.o", + "crypto/slh_dsa/libfips-lib-slh_hypertree.o", + "crypto/slh_dsa/libfips-lib-slh_params.o", + "crypto/slh_dsa/libfips-lib-slh_wots.o", + "crypto/slh_dsa/libfips-lib-slh_xmss.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, "crypto/sm2" => { "deps" => [ "crypto/sm2/libcrypto-lib-sm2_crypt.o", @@ -9629,6 +11145,38 @@ our %unified_info = ( ] } }, + "crypto/thread" => { + "deps" => [ + "crypto/thread/libcrypto-lib-api.o", + "crypto/thread/libcrypto-lib-arch.o", + "crypto/thread/libcrypto-lib-internal.o", + "crypto/thread/libfips-lib-api.o", + "crypto/thread/libfips-lib-arch.o", + "crypto/thread/libfips-lib-internal.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, + "crypto/thread/arch" => { + "deps" => [ + "crypto/thread/arch/libcrypto-lib-thread_none.o", + "crypto/thread/arch/libcrypto-lib-thread_posix.o", + "crypto/thread/arch/libcrypto-lib-thread_win.o", + "crypto/thread/arch/libfips-lib-thread_none.o", + "crypto/thread/arch/libfips-lib-thread_posix.o", + "crypto/thread/arch/libfips-lib-thread_win.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, "crypto/ts" => { "deps" => [ "crypto/ts/libcrypto-lib-ts_asn1.o", @@ -9695,14 +11243,22 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-pcy_map.o", "crypto/x509/libcrypto-lib-pcy_node.o", "crypto/x509/libcrypto-lib-pcy_tree.o", + "crypto/x509/libcrypto-lib-t_acert.o", "crypto/x509/libcrypto-lib-t_crl.o", "crypto/x509/libcrypto-lib-t_req.o", "crypto/x509/libcrypto-lib-t_x509.o", + "crypto/x509/libcrypto-lib-v3_aaa.o", + "crypto/x509/libcrypto-lib-v3_ac_tgt.o", "crypto/x509/libcrypto-lib-v3_addr.o", "crypto/x509/libcrypto-lib-v3_admis.o", "crypto/x509/libcrypto-lib-v3_akeya.o", "crypto/x509/libcrypto-lib-v3_akid.o", "crypto/x509/libcrypto-lib-v3_asid.o", + "crypto/x509/libcrypto-lib-v3_attrdesc.o", + "crypto/x509/libcrypto-lib-v3_attrmap.o", + "crypto/x509/libcrypto-lib-v3_audit_id.o", + "crypto/x509/libcrypto-lib-v3_authattid.o", + "crypto/x509/libcrypto-lib-v3_battcons.o", "crypto/x509/libcrypto-lib-v3_bcons.o", "crypto/x509/libcrypto-lib-v3_bitst.o", "crypto/x509/libcrypto-lib-v3_conf.o", @@ -9711,12 +11267,17 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_enum.o", "crypto/x509/libcrypto-lib-v3_extku.o", "crypto/x509/libcrypto-lib-v3_genn.o", + "crypto/x509/libcrypto-lib-v3_group_ac.o", "crypto/x509/libcrypto-lib-v3_ia5.o", + "crypto/x509/libcrypto-lib-v3_ind_iss.o", "crypto/x509/libcrypto-lib-v3_info.o", "crypto/x509/libcrypto-lib-v3_int.o", + "crypto/x509/libcrypto-lib-v3_iobo.o", "crypto/x509/libcrypto-lib-v3_ist.o", "crypto/x509/libcrypto-lib-v3_lib.o", "crypto/x509/libcrypto-lib-v3_ncons.o", + "crypto/x509/libcrypto-lib-v3_no_ass.o", + "crypto/x509/libcrypto-lib-v3_no_rev_avail.o", "crypto/x509/libcrypto-lib-v3_pci.o", "crypto/x509/libcrypto-lib-v3_pcia.o", "crypto/x509/libcrypto-lib-v3_pcons.o", @@ -9724,13 +11285,20 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_pmaps.o", "crypto/x509/libcrypto-lib-v3_prn.o", "crypto/x509/libcrypto-lib-v3_purp.o", + "crypto/x509/libcrypto-lib-v3_rolespec.o", "crypto/x509/libcrypto-lib-v3_san.o", + "crypto/x509/libcrypto-lib-v3_sda.o", + "crypto/x509/libcrypto-lib-v3_single_use.o", "crypto/x509/libcrypto-lib-v3_skid.o", + "crypto/x509/libcrypto-lib-v3_soa_id.o", "crypto/x509/libcrypto-lib-v3_sxnet.o", + "crypto/x509/libcrypto-lib-v3_timespec.o", "crypto/x509/libcrypto-lib-v3_tlsf.o", + "crypto/x509/libcrypto-lib-v3_usernotice.o", "crypto/x509/libcrypto-lib-v3_utf8.o", "crypto/x509/libcrypto-lib-v3_utl.o", "crypto/x509/libcrypto-lib-v3err.o", + "crypto/x509/libcrypto-lib-x509_acert.o", "crypto/x509/libcrypto-lib-x509_att.o", "crypto/x509/libcrypto-lib-x509_cmp.o", "crypto/x509/libcrypto-lib-x509_d2.o", @@ -9748,6 +11316,7 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x509_v3.o", "crypto/x509/libcrypto-lib-x509_vfy.o", "crypto/x509/libcrypto-lib-x509_vpm.o", + "crypto/x509/libcrypto-lib-x509aset.o", "crypto/x509/libcrypto-lib-x509cset.o", "crypto/x509/libcrypto-lib-x509name.o", "crypto/x509/libcrypto-lib-x509rset.o", @@ -9757,6 +11326,7 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x_attrib.o", "crypto/x509/libcrypto-lib-x_crl.o", "crypto/x509/libcrypto-lib-x_exten.o", + "crypto/x509/libcrypto-lib-x_ietfatt.o", "crypto/x509/libcrypto-lib-x_name.o", "crypto/x509/libcrypto-lib-x_pubkey.o", "crypto/x509/libcrypto-lib-x_req.o", @@ -9783,6 +11353,7 @@ our %unified_info = ( "fuzz" => { "products" => { "bin" => [ + "fuzz/acert-test", "fuzz/asn1-test", "fuzz/asn1parse-test", "fuzz/bignum-test", @@ -9793,13 +11364,31 @@ our %unified_info = ( "fuzz/conf-test", "fuzz/crl-test", "fuzz/ct-test", + "fuzz/decoder-test", + "fuzz/dtlsclient-test", + "fuzz/dtlsserver-test", + "fuzz/hashtable-test", + "fuzz/ml-dsa-test", + "fuzz/ml-kem-test", + "fuzz/pem-test", + "fuzz/provider-test", + "fuzz/punycode-test", + "fuzz/quic-client-test", + "fuzz/quic-lcidm-test", + "fuzz/quic-rcidm-test", + "fuzz/quic-server-test", + "fuzz/quic-srtm-test", "fuzz/server-test", + "fuzz/slh-dsa-test", + "fuzz/smime-test", + "fuzz/v3name-test", "fuzz/x509-test" ] } }, "providers" => { "deps" => [ + "providers/endecode_test-bin-legacyprov.o", "providers/evp_extra_test-bin-legacyprov.o", "providers/libcrypto-lib-baseprov.o", "providers/libcrypto-lib-defltprov.o", @@ -9809,6 +11398,7 @@ our %unified_info = ( ], "products" => { "bin" => [ + "test/endecode_test", "test/evp_extra_test" ], "dso" => [ @@ -9860,8 +11450,12 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ec_sig.o", "providers/common/der/libcommon-lib-der_ecx_gen.o", "providers/common/der/libcommon-lib-der_ecx_key.o", + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o", + "providers/common/der/libcommon-lib-der_ml_dsa_key.o", "providers/common/der/libcommon-lib-der_rsa_gen.o", "providers/common/der/libcommon-lib-der_rsa_key.o", + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o", + "providers/common/der/libcommon-lib-der_slh_dsa_key.o", "providers/common/der/libcommon-lib-der_wrap_gen.o", "providers/common/der/libdefault-lib-der_rsa_sig.o", "providers/common/der/libdefault-lib-der_sm2_gen.o", @@ -9880,6 +11474,7 @@ our %unified_info = ( "providers/fips" => { "deps" => [ "providers/fips/fips-dso-fips_entry.o", + "providers/fips/libfips-lib-fipsindicator.o", "providers/fips/libfips-lib-fipsprov.o", "providers/fips/libfips-lib-self_test.o", "providers/fips/libfips-lib-self_test_kats.o" @@ -9923,6 +11518,9 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_aes_ccm_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_polyval.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_ocb.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_ocb_hw.o", @@ -9947,7 +11545,13 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_cts.o", "providers/implementations/ciphers/libdefault-lib-cipher_null.o", "providers/implementations/ciphers/libdefault-lib-cipher_sm4.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_sm4_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes_common.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes_default.o", @@ -10044,7 +11648,10 @@ our %unified_info = ( "providers/implementations/encode_decode/libdefault-lib-encode_key2blob.o", "providers/implementations/encode_decode/libdefault-lib-encode_key2ms.o", "providers/implementations/encode_decode/libdefault-lib-encode_key2text.o", - "providers/implementations/encode_decode/libdefault-lib-endecoder_common.o" + "providers/implementations/encode_decode/libdefault-lib-endecoder_common.o", + "providers/implementations/encode_decode/libdefault-lib-ml_common_codecs.o", + "providers/implementations/encode_decode/libdefault-lib-ml_dsa_codecs.o", + "providers/implementations/encode_decode/libdefault-lib-ml_kem_codecs.o" ], "products" => { "lib" => [ @@ -10072,7 +11679,9 @@ our %unified_info = ( }, "providers/implementations/kdfs" => { "deps" => [ + "providers/implementations/kdfs/libdefault-lib-argon2.o", "providers/implementations/kdfs/libdefault-lib-hkdf.o", + "providers/implementations/kdfs/libdefault-lib-hmacdrbg_kdf.o", "providers/implementations/kdfs/libdefault-lib-kbkdf.o", "providers/implementations/kdfs/libdefault-lib-krb5kdf.o", "providers/implementations/kdfs/libdefault-lib-pbkdf2.o", @@ -10091,7 +11700,8 @@ our %unified_info = ( "providers/implementations/kdfs/libfips-lib-sskdf.o", "providers/implementations/kdfs/libfips-lib-tls1_prf.o", "providers/implementations/kdfs/libfips-lib-x942kdf.o", - "providers/implementations/kdfs/liblegacy-lib-pbkdf1.o" + "providers/implementations/kdfs/liblegacy-lib-pbkdf1.o", + "providers/implementations/kdfs/liblegacy-lib-pvkkdf.o" ], "products" => { "lib" => [ @@ -10103,13 +11713,22 @@ our %unified_info = ( }, "providers/implementations/kem" => { "deps" => [ + "providers/implementations/kem/libdefault-lib-ec_kem.o", + "providers/implementations/kem/libdefault-lib-ecx_kem.o", + "providers/implementations/kem/libdefault-lib-kem_util.o", + "providers/implementations/kem/libdefault-lib-ml_kem_kem.o", + "providers/implementations/kem/libdefault-lib-mlx_kem.o", "providers/implementations/kem/libdefault-lib-rsa_kem.o", - "providers/implementations/kem/libfips-lib-rsa_kem.o" + "providers/implementations/kem/libfips-lib-ml_kem_kem.o", + "providers/implementations/kem/libfips-lib-mlx_kem.o", + "providers/implementations/kem/libfips-lib-rsa_kem.o", + "providers/implementations/kem/libtemplate-lib-template_kem.o" ], "products" => { "lib" => [ "providers/libdefault.a", - "providers/libfips.a" + "providers/libfips.a", + "providers/libtemplate.a" ] } }, @@ -10121,19 +11740,29 @@ our %unified_info = ( "providers/implementations/keymgmt/libdefault-lib-ecx_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-kdf_legacy_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-mac_legacy_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-ml_dsa_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-ml_kem_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-mlx_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-rsa_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-slh_dsa_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-dh_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-dsa_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-ec_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-ecx_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-kdf_legacy_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-mac_legacy_kmgmt.o", - "providers/implementations/keymgmt/libfips-lib-rsa_kmgmt.o" + "providers/implementations/keymgmt/libfips-lib-ml_dsa_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-ml_kem_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-mlx_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-rsa_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-slh_dsa_kmgmt.o", + "providers/implementations/keymgmt/libtemplate-lib-template_kmgmt.o" ], "products" => { "lib" => [ "providers/libdefault.a", - "providers/libfips.a" + "providers/libfips.a", + "providers/libtemplate.a" ] } }, @@ -10161,18 +11790,18 @@ our %unified_info = ( }, "providers/implementations/rands" => { "deps" => [ - "providers/implementations/rands/libdefault-lib-crngt.o", "providers/implementations/rands/libdefault-lib-drbg.o", "providers/implementations/rands/libdefault-lib-drbg_ctr.o", "providers/implementations/rands/libdefault-lib-drbg_hash.o", "providers/implementations/rands/libdefault-lib-drbg_hmac.o", "providers/implementations/rands/libdefault-lib-seed_src.o", + "providers/implementations/rands/libdefault-lib-seed_src_jitter.o", "providers/implementations/rands/libdefault-lib-test_rng.o", - "providers/implementations/rands/libfips-lib-crngt.o", "providers/implementations/rands/libfips-lib-drbg.o", "providers/implementations/rands/libfips-lib-drbg_ctr.o", "providers/implementations/rands/libfips-lib-drbg_hash.o", "providers/implementations/rands/libfips-lib-drbg_hmac.o", + "providers/implementations/rands/libfips-lib-fips_crng_test.o", "providers/implementations/rands/libfips-lib-test_rng.o" ], "products" => { @@ -10201,13 +11830,31 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-ecdsa_sig.o", "providers/implementations/signature/libdefault-lib-eddsa_sig.o", "providers/implementations/signature/libdefault-lib-mac_legacy_sig.o", + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o", "providers/implementations/signature/libdefault-lib-rsa_sig.o", + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o", "providers/implementations/signature/libdefault-lib-sm2_sig.o", "providers/implementations/signature/libfips-lib-dsa_sig.o", "providers/implementations/signature/libfips-lib-ecdsa_sig.o", "providers/implementations/signature/libfips-lib-eddsa_sig.o", "providers/implementations/signature/libfips-lib-mac_legacy_sig.o", - "providers/implementations/signature/libfips-lib-rsa_sig.o" + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o", + "providers/implementations/signature/libfips-lib-rsa_sig.o", + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o" + ], + "products" => { + "lib" => [ + "providers/libdefault.a", + "providers/libfips.a" + ] + } + }, + "providers/implementations/skeymgmt" => { + "deps" => [ + "providers/implementations/skeymgmt/libdefault-lib-aes_skmgmt.o", + "providers/implementations/skeymgmt/libdefault-lib-generic.o", + "providers/implementations/skeymgmt/libfips-lib-aes_skmgmt.o", + "providers/implementations/skeymgmt/libfips-lib-generic.o" ], "products" => { "lib" => [ @@ -10219,7 +11866,8 @@ our %unified_info = ( "providers/implementations/storemgmt" => { "deps" => [ "providers/implementations/storemgmt/libdefault-lib-file_store.o", - "providers/implementations/storemgmt/libdefault-lib-file_store_any2obj.o" + "providers/implementations/storemgmt/libdefault-lib-file_store_any2obj.o", + "providers/implementations/storemgmt/libdefault-lib-winstore_store.o" ], "products" => { "lib" => [ @@ -10235,14 +11883,15 @@ our %unified_info = ( "ssl/libssl-lib-d1_srtp.o", "ssl/libssl-lib-methods.o", "ssl/libssl-lib-pqueue.o", + "ssl/libssl-lib-priority_queue.o", "ssl/libssl-lib-s3_enc.o", "ssl/libssl-lib-s3_lib.o", "ssl/libssl-lib-s3_msg.o", "ssl/libssl-lib-ssl_asn1.o", "ssl/libssl-lib-ssl_cert.o", + "ssl/libssl-lib-ssl_cert_comp.o", "ssl/libssl-lib-ssl_ciph.o", "ssl/libssl-lib-ssl_conf.o", - "ssl/libssl-lib-ssl_err.o", "ssl/libssl-lib-ssl_err_legacy.o", "ssl/libssl-lib-ssl_init.o", "ssl/libssl-lib-ssl_lib.o", @@ -10258,32 +11907,107 @@ our %unified_info = ( "ssl/libssl-lib-t1_trce.o", "ssl/libssl-lib-tls13_enc.o", "ssl/libssl-lib-tls_depr.o", - "ssl/libssl-lib-tls_srp.o", - "ssl/libdefault-lib-s3_cbc.o", - "ssl/libfips-lib-s3_cbc.o" + "ssl/libssl-lib-tls_srp.o" ], "products" => { "lib" => [ - "libssl", - "providers/libdefault.a", - "providers/libfips.a" + "libssl" + ] + } + }, + "ssl/quic" => { + "deps" => [ + "ssl/quic/libssl-lib-cc_newreno.o", + "ssl/quic/libssl-lib-json_enc.o", + "ssl/quic/libssl-lib-qlog.o", + "ssl/quic/libssl-lib-qlog_event_helpers.o", + "ssl/quic/libssl-lib-quic_ackm.o", + "ssl/quic/libssl-lib-quic_cfq.o", + "ssl/quic/libssl-lib-quic_channel.o", + "ssl/quic/libssl-lib-quic_demux.o", + "ssl/quic/libssl-lib-quic_engine.o", + "ssl/quic/libssl-lib-quic_fc.o", + "ssl/quic/libssl-lib-quic_fifd.o", + "ssl/quic/libssl-lib-quic_impl.o", + "ssl/quic/libssl-lib-quic_lcidm.o", + "ssl/quic/libssl-lib-quic_method.o", + "ssl/quic/libssl-lib-quic_obj.o", + "ssl/quic/libssl-lib-quic_port.o", + "ssl/quic/libssl-lib-quic_rcidm.o", + "ssl/quic/libssl-lib-quic_reactor.o", + "ssl/quic/libssl-lib-quic_reactor_wait_ctx.o", + "ssl/quic/libssl-lib-quic_record_rx.o", + "ssl/quic/libssl-lib-quic_record_shared.o", + "ssl/quic/libssl-lib-quic_record_tx.o", + "ssl/quic/libssl-lib-quic_record_util.o", + "ssl/quic/libssl-lib-quic_rstream.o", + "ssl/quic/libssl-lib-quic_rx_depack.o", + "ssl/quic/libssl-lib-quic_sf_list.o", + "ssl/quic/libssl-lib-quic_srt_gen.o", + "ssl/quic/libssl-lib-quic_srtm.o", + "ssl/quic/libssl-lib-quic_sstream.o", + "ssl/quic/libssl-lib-quic_statm.o", + "ssl/quic/libssl-lib-quic_stream_map.o", + "ssl/quic/libssl-lib-quic_thread_assist.o", + "ssl/quic/libssl-lib-quic_tls.o", + "ssl/quic/libssl-lib-quic_tls_api.o", + "ssl/quic/libssl-lib-quic_trace.o", + "ssl/quic/libssl-lib-quic_tserver.o", + "ssl/quic/libssl-lib-quic_txp.o", + "ssl/quic/libssl-lib-quic_txpim.o", + "ssl/quic/libssl-lib-quic_types.o", + "ssl/quic/libssl-lib-quic_wire.o", + "ssl/quic/libssl-lib-quic_wire_pkt.o", + "ssl/quic/libssl-lib-uint_set.o" + ], + "products" => { + "lib" => [ + "libssl" ] } }, "ssl/record" => { "deps" => [ - "ssl/record/libssl-lib-dtls1_bitmap.o", "ssl/record/libssl-lib-rec_layer_d1.o", - "ssl/record/libssl-lib-rec_layer_s3.o", - "ssl/record/libssl-lib-ssl3_buffer.o", - "ssl/record/libssl-lib-ssl3_record.o", - "ssl/record/libssl-lib-ssl3_record_tls13.o", - "ssl/record/libcommon-lib-tls_pad.o" + "ssl/record/libssl-lib-rec_layer_s3.o" + ], + "products" => { + "lib" => [ + "libssl" + ] + } + }, + "ssl/record/methods" => { + "deps" => [ + "ssl/record/methods/libssl-lib-dtls_meth.o", + "ssl/record/methods/libssl-lib-ssl3_meth.o", + "ssl/record/methods/libssl-lib-tls13_meth.o", + "ssl/record/methods/libssl-lib-tls1_meth.o", + "ssl/record/methods/libssl-lib-tls_common.o", + "ssl/record/methods/libssl-lib-tls_multib.o", + "ssl/record/methods/libssl-lib-tlsany_meth.o", + "ssl/record/methods/libcommon-lib-tls_pad.o", + "ssl/record/methods/libdefault-lib-ssl3_cbc.o", + "ssl/record/methods/libfips-lib-ssl3_cbc.o" ], "products" => { "lib" => [ "libssl", - "providers/libcommon.a" + "providers/libcommon.a", + "providers/libdefault.a", + "providers/libfips.a" + ] + } + }, + "ssl/rio" => { + "deps" => [ + "ssl/rio/libssl-lib-poll_builder.o", + "ssl/rio/libssl-lib-poll_immediate.o", + "ssl/rio/libssl-lib-rio_notifier.o" + ], + "products" => { + "lib" => [ + "libssl" ] } }, @@ -10321,9 +12045,40 @@ our %unified_info = ( "test/helpers/dtlstest-bin-ssltestlib.o", "test/helpers/endecode_test-bin-predefined_dhparams.o", "test/helpers/fatalerrtest-bin-ssltestlib.o", + "test/helpers/json_test-bin-noisydgrambio.o", + "test/helpers/json_test-bin-pktsplitbio.o", + "test/helpers/json_test-bin-quictestlib.o", + "test/helpers/json_test-bin-ssltestlib.o", + "test/helpers/pkcs12_api_test-bin-pkcs12.o", "test/helpers/pkcs12_format_test-bin-pkcs12.o", + "test/helpers/quic_multistream_test-bin-noisydgrambio.o", + "test/helpers/quic_multistream_test-bin-pktsplitbio.o", + "test/helpers/quic_multistream_test-bin-quictestlib.o", + "test/helpers/quic_multistream_test-bin-ssltestlib.o", + "test/helpers/quic_newcid_test-bin-noisydgrambio.o", + "test/helpers/quic_newcid_test-bin-pktsplitbio.o", + "test/helpers/quic_newcid_test-bin-quictestlib.o", + "test/helpers/quic_newcid_test-bin-ssltestlib.o", + "test/helpers/quic_radix_test-bin-noisydgrambio.o", + "test/helpers/quic_radix_test-bin-pktsplitbio.o", + "test/helpers/quic_radix_test-bin-quictestlib.o", + "test/helpers/quic_radix_test-bin-ssltestlib.o", + "test/helpers/quic_srt_gen_test-bin-noisydgrambio.o", + "test/helpers/quic_srt_gen_test-bin-pktsplitbio.o", + "test/helpers/quic_srt_gen_test-bin-quictestlib.o", + "test/helpers/quic_srt_gen_test-bin-ssltestlib.o", + "test/helpers/quicapitest-bin-noisydgrambio.o", + "test/helpers/quicapitest-bin-pktsplitbio.o", + "test/helpers/quicapitest-bin-quictestlib.o", + "test/helpers/quicapitest-bin-ssltestlib.o", + "test/helpers/quicfaultstest-bin-noisydgrambio.o", + "test/helpers/quicfaultstest-bin-pktsplitbio.o", + "test/helpers/quicfaultstest-bin-quictestlib.o", + "test/helpers/quicfaultstest-bin-ssltestlib.o", "test/helpers/recordlentest-bin-ssltestlib.o", + "test/helpers/rpktest-bin-ssltestlib.o", "test/helpers/servername_test-bin-ssltestlib.o", + "test/helpers/ssl_handshake_rtt_test-bin-ssltestlib.o", "test/helpers/ssl_old_test-bin-predefined_dhparams.o", "test/helpers/ssl_test-bin-handshake.o", "test/helpers/ssl_test-bin-handshake_srp.o", @@ -10332,7 +12087,8 @@ our %unified_info = ( "test/helpers/sslapitest-bin-ssltestlib.o", "test/helpers/sslbuffertest-bin-ssltestlib.o", "test/helpers/sslcorrupttest-bin-ssltestlib.o", - "test/helpers/tls13ccstest-bin-ssltestlib.o" + "test/helpers/tls13ccstest-bin-ssltestlib.o", + "test/helpers/tls13groupselection_test-bin-ssltestlib.o" ], "products" => { "bin" => [ @@ -10350,16 +12106,37 @@ our %unified_info = ( "test/dtlstest", "test/endecode_test", "test/fatalerrtest", + "test/json_test", + "test/pkcs12_api_test", "test/pkcs12_format_test", + "test/quic_multistream_test", + "test/quic_newcid_test", + "test/quic_radix_test", + "test/quic_srt_gen_test", + "test/quicapitest", + "test/quicfaultstest", "test/recordlentest", + "test/rpktest", "test/servername_test", + "test/ssl_handshake_rtt_test", "test/ssl_old_test", "test/ssl_test", "test/ssl_test_ctx_test", "test/sslapitest", "test/sslbuffertest", "test/sslcorrupttest", - "test/tls13ccstest" + "test/tls13ccstest", + "test/tls13groupselection_test" + ] + } + }, + "test/radix" => { + "deps" => [ + "test/radix/quic_radix_test-bin-quic_radix.o" + ], + "products" => { + "bin" => [ + "test/quic_radix_test" ] } }, @@ -10371,6 +12148,7 @@ our %unified_info = ( "test/testutil/libtestutil-lib-driver.o", "test/testutil/libtestutil-lib-fake_random.o", "test/testutil/libtestutil-lib-format_output.o", + "test/testutil/libtestutil-lib-helper.o", "test/testutil/libtestutil-lib-load.o", "test/testutil/libtestutil-lib-main.o", "test/testutil/libtestutil-lib-options.o", @@ -10405,6 +12183,12 @@ our %unified_info = ( } }, "generate" => { + "OpenSSLConfig.cmake" => [ + "exporters/cmake/OpenSSLConfig.cmake.in" + ], + "OpenSSLConfigVersion.cmake" => [ + "exporters/cmake/OpenSSLConfigVersion.cmake.in" + ], "apps/openssl.rc" => [ "util/mkrc.pl", "openssl" @@ -10419,6 +12203,19 @@ our %unified_info = ( "\"-H\"", "\$(APPS_OPENSSL)" ], + "builddata.pm" => [ + "util/mkinstallvars.pl", + "PREFIX=.", + "BINDIR=apps", + "APPLINKDIR=ms", + "LIBDIR=", + "INCLUDEDIR=include", + "\"INCLUDEDIR=\$(SRCDIR)/include\"", + "ENGINESDIR=engines", + "MODULESDIR=providers", + "\"VERSION=\$(VERSION)\"", + "\"LDLIBS=\$(LIB_EX_LIBS)\"" + ], "crypto/aes/aes-586.S" => [ "crypto/aes/asm/aes-586.pl" ], @@ -10440,6 +12237,24 @@ our %unified_info = ( "crypto/aes/aes-ppc.s" => [ "crypto/aes/asm/aes-ppc.pl" ], + "crypto/aes/aes-riscv32-zkn.s" => [ + "crypto/aes/asm/aes-riscv32-zkn.pl" + ], + "crypto/aes/aes-riscv64-zkn.s" => [ + "crypto/aes/asm/aes-riscv64-zkn.pl" + ], + "crypto/aes/aes-riscv64-zvbb-zvkg-zvkned.s" => [ + "crypto/aes/asm/aes-riscv64-zvbb-zvkg-zvkned.pl" + ], + "crypto/aes/aes-riscv64-zvkb-zvkned.s" => [ + "crypto/aes/asm/aes-riscv64-zvkb-zvkned.pl" + ], + "crypto/aes/aes-riscv64-zvkned.s" => [ + "crypto/aes/asm/aes-riscv64-zvkned.pl" + ], + "crypto/aes/aes-riscv64.s" => [ + "crypto/aes/asm/aes-riscv64.pl" + ], "crypto/aes/aes-s390x.S" => [ "crypto/aes/asm/aes-s390x.pl" ], @@ -10467,6 +12282,9 @@ our %unified_info = ( "crypto/aes/aesni-x86_64.s" => [ "crypto/aes/asm/aesni-x86_64.pl" ], + "crypto/aes/aesni-xts-avx512.s" => [ + "crypto/aes/asm/aesni-xts-avx512.pl" + ], "crypto/aes/aesp8-ppc.s" => [ "crypto/aes/asm/aesp8-ppc.pl" ], @@ -10479,12 +12297,18 @@ our %unified_info = ( "crypto/aes/bsaes-armv7.S" => [ "crypto/aes/asm/bsaes-armv7.pl" ], + "crypto/aes/bsaes-armv8.S" => [ + "crypto/aes/asm/bsaes-armv8.pl" + ], "crypto/aes/bsaes-x86_64.s" => [ "crypto/aes/asm/bsaes-x86_64.pl" ], "crypto/aes/vpaes-armv8.S" => [ "crypto/aes/asm/vpaes-armv8.pl" ], + "crypto/aes/vpaes-loongarch64.S" => [ + "crypto/aes/asm/vpaes-loongarch64.pl" + ], "crypto/aes/vpaes-ppc.s" => [ "crypto/aes/asm/vpaes-ppc.pl" ], @@ -10545,15 +12369,33 @@ our %unified_info = ( "crypto/bn/ppc-mont.s" => [ "crypto/bn/asm/ppc-mont.pl" ], + "crypto/bn/ppc64-mont-fixed.s" => [ + "crypto/bn/asm/ppc64-mont-fixed.pl" + ], "crypto/bn/ppc64-mont.s" => [ "crypto/bn/asm/ppc64-mont.pl" ], + "crypto/bn/rsaz-2k-avx512.s" => [ + "crypto/bn/asm/rsaz-2k-avx512.pl" + ], + "crypto/bn/rsaz-2k-avxifma.s" => [ + "crypto/bn/asm/rsaz-2k-avxifma.pl" + ], + "crypto/bn/rsaz-3k-avx512.s" => [ + "crypto/bn/asm/rsaz-3k-avx512.pl" + ], + "crypto/bn/rsaz-3k-avxifma.s" => [ + "crypto/bn/asm/rsaz-3k-avxifma.pl" + ], + "crypto/bn/rsaz-4k-avx512.s" => [ + "crypto/bn/asm/rsaz-4k-avx512.pl" + ], + "crypto/bn/rsaz-4k-avxifma.s" => [ + "crypto/bn/asm/rsaz-4k-avxifma.pl" + ], "crypto/bn/rsaz-avx2.s" => [ "crypto/bn/asm/rsaz-avx2.pl" ], - "crypto/bn/rsaz-avx512.s" => [ - "crypto/bn/asm/rsaz-avx512.pl" - ], "crypto/bn/rsaz-x86_64.s" => [ "crypto/bn/asm/rsaz-x86_64.pl" ], @@ -10615,6 +12457,9 @@ our %unified_info = ( "crypto/chacha/chacha-armv4.S" => [ "crypto/chacha/asm/chacha-armv4.pl" ], + "crypto/chacha/chacha-armv8-sve.S" => [ + "crypto/chacha/asm/chacha-armv8-sve.pl" + ], "crypto/chacha/chacha-armv8.S" => [ "crypto/chacha/asm/chacha-armv8.pl" ], @@ -10627,9 +12472,19 @@ our %unified_info = ( "crypto/chacha/chacha-ia64.s" => [ "crypto/chacha/chacha-ia64.S" ], + "crypto/chacha/chacha-loongarch64.S" => [ + "crypto/chacha/asm/chacha-loongarch64.pl" + ], "crypto/chacha/chacha-ppc.s" => [ "crypto/chacha/asm/chacha-ppc.pl" ], + "crypto/chacha/chacha-riscv64-v-zbb-zvkb.s" => [ + "crypto/chacha/asm/chacha-riscv64-v-zbb.pl", + "zvkb" + ], + "crypto/chacha/chacha-riscv64-v-zbb.s" => [ + "crypto/chacha/asm/chacha-riscv64-v-zbb.pl" + ], "crypto/chacha/chacha-s390x.S" => [ "crypto/chacha/asm/chacha-s390x.pl" ], @@ -10639,6 +12494,9 @@ our %unified_info = ( "crypto/chacha/chacha-x86_64.s" => [ "crypto/chacha/asm/chacha-x86_64.pl" ], + "crypto/chacha/chachap10-ppc.s" => [ + "crypto/chacha/asm/chachap10-ppc.pl" + ], "crypto/des/crypt586.S" => [ "crypto/des/asm/crypt586.pl" ], @@ -10651,6 +12509,9 @@ our %unified_info = ( "crypto/des/dest4-sparcv9.S" => [ "crypto/des/asm/dest4-sparcv9.pl" ], + "crypto/ec/ecp_nistp384-ppc64.s" => [ + "crypto/ec/asm/ecp_nistp384-ppc64.pl" + ], "crypto/ec/ecp_nistp521-ppc64.s" => [ "crypto/ec/asm/ecp_nistp521-ppc64.pl" ], @@ -10675,6 +12536,9 @@ our %unified_info = ( "crypto/ec/ecp_nistz256-x86_64.s" => [ "crypto/ec/asm/ecp_nistz256-x86_64.pl" ], + "crypto/ec/ecp_sm2p256-armv8.S" => [ + "crypto/ec/asm/ecp_sm2p256-armv8.pl" + ], "crypto/ec/x25519-ppc64.s" => [ "crypto/ec/asm/x25519-ppc64.pl" ], @@ -10684,18 +12548,39 @@ our %unified_info = ( "crypto/ia64cpuid.s" => [ "crypto/ia64cpuid.S" ], + "crypto/loongarch64cpuid.s" => [ + "crypto/loongarch64cpuid.pl" + ], "crypto/md5/md5-586.S" => [ "crypto/md5/asm/md5-586.pl" ], + "crypto/md5/md5-aarch64.S" => [ + "crypto/md5/asm/md5-aarch64.pl" + ], + "crypto/md5/md5-loongarch64.S" => [ + "crypto/md5/asm/md5-loongarch64.pl" + ], "crypto/md5/md5-sparcv9.S" => [ "crypto/md5/asm/md5-sparcv9.pl" ], "crypto/md5/md5-x86_64.s" => [ "crypto/md5/asm/md5-x86_64.pl" ], + "crypto/modes/aes-gcm-armv8-unroll8_64.S" => [ + "crypto/modes/asm/aes-gcm-armv8-unroll8_64.pl" + ], "crypto/modes/aes-gcm-armv8_64.S" => [ "crypto/modes/asm/aes-gcm-armv8_64.pl" ], + "crypto/modes/aes-gcm-avx512.s" => [ + "crypto/modes/asm/aes-gcm-avx512.pl" + ], + "crypto/modes/aes-gcm-ppc.s" => [ + "crypto/modes/asm/aes-gcm-ppc.pl" + ], + "crypto/modes/aes-gcm-riscv64-zvkb-zvkg-zvkned.s" => [ + "crypto/modes/asm/aes-gcm-riscv64-zvkb-zvkg-zvkned.pl" + ], "crypto/modes/aesni-gcm-x86_64.s" => [ "crypto/modes/asm/aesni-gcm-x86_64.pl" ], @@ -10714,6 +12599,15 @@ our %unified_info = ( "crypto/modes/ghash-parisc.s" => [ "crypto/modes/asm/ghash-parisc.pl" ], + "crypto/modes/ghash-riscv64-zvkb-zvbc.s" => [ + "crypto/modes/asm/ghash-riscv64-zvkb-zvbc.pl" + ], + "crypto/modes/ghash-riscv64-zvkg.s" => [ + "crypto/modes/asm/ghash-riscv64-zvkg.pl" + ], + "crypto/modes/ghash-riscv64.s" => [ + "crypto/modes/asm/ghash-riscv64.pl" + ], "crypto/modes/ghash-s390x.S" => [ "crypto/modes/asm/ghash-s390x.pl" ], @@ -10732,6 +12626,9 @@ our %unified_info = ( "crypto/modes/ghashv8-armx.S" => [ "crypto/modes/asm/ghashv8-armx.pl" ], + "crypto/params_idx.c" => [ + "crypto/params_idx.c.in" + ], "crypto/pariscid.s" => [ "crypto/pariscid.pl" ], @@ -10792,6 +12689,12 @@ our %unified_info = ( "crypto/ripemd/rmd-586.S" => [ "crypto/ripemd/asm/rmd-586.pl" ], + "crypto/riscv32cpuid.s" => [ + "crypto/riscv32cpuid.pl" + ], + "crypto/riscv64cpuid.s" => [ + "crypto/riscv64cpuid.pl" + ], "crypto/s390xcpuid.S" => [ "crypto/s390xcpuid.pl" ], @@ -10900,6 +12803,9 @@ our %unified_info = ( "crypto/sha/sha256-ppc.s" => [ "crypto/sha/asm/sha512-ppc.pl" ], + "crypto/sha/sha256-riscv64-zvkb-zvknha_or_zvknhb.S" => [ + "crypto/sha/asm/sha256-riscv64-zvkb-zvknha_or_zvknhb.pl" + ], "crypto/sha/sha256-s390x.S" => [ "crypto/sha/asm/sha512-s390x.pl" ], @@ -10936,6 +12842,9 @@ our %unified_info = ( "crypto/sha/sha512-ppc.s" => [ "crypto/sha/asm/sha512-ppc.pl" ], + "crypto/sha/sha512-riscv64-zvkb-zvknhb.S" => [ + "crypto/sha/asm/sha512-riscv64-zvkb-zvknhb.pl" + ], "crypto/sha/sha512-s390x.S" => [ "crypto/sha/asm/sha512-s390x.pl" ], @@ -10948,6 +12857,24 @@ our %unified_info = ( "crypto/sha/sha512p8-ppc.s" => [ "crypto/sha/asm/sha512p8-ppc.pl" ], + "crypto/sm3/sm3-armv8.S" => [ + "crypto/sm3/asm/sm3-armv8.pl" + ], + "crypto/sm3/sm3-riscv64-zvksh.S" => [ + "crypto/sm3/asm/sm3-riscv64-zvksh.pl" + ], + "crypto/sm4/sm4-armv8.S" => [ + "crypto/sm4/asm/sm4-armv8.pl" + ], + "crypto/sm4/sm4-riscv64-zvksed.s" => [ + "crypto/sm4/asm/sm4-riscv64-zvksed.pl" + ], + "crypto/sm4/vpsm4-armv8.S" => [ + "crypto/sm4/asm/vpsm4-armv8.pl" + ], + "crypto/sm4/vpsm4_ex-armv8.S" => [ + "crypto/sm4/asm/vpsm4_ex-armv8.pl" + ], "crypto/uplink-ia64.s" => [ "ms/uplink-ia64.pl" ], @@ -11113,6 +13040,9 @@ our %unified_info = ( "doc/html/man1/openssl-sess_id.html" => [ "doc/man1/openssl-sess_id.pod" ], + "doc/html/man1/openssl-skeyutl.html" => [ + "doc/man1/openssl-skeyutl.pod" + ], "doc/html/man1/openssl-smime.html" => [ "doc/man1/openssl-smime.pod" ], @@ -11254,6 +13184,9 @@ our %unified_info = ( "doc/html/man3/BIO_get_ex_new_index.html" => [ "doc/man3/BIO_get_ex_new_index.pod" ], + "doc/html/man3/BIO_get_rpoll_descriptor.html" => [ + "doc/man3/BIO_get_rpoll_descriptor.pod" + ], "doc/html/man3/BIO_meth_new.html" => [ "doc/man3/BIO_meth_new.pod" ], @@ -11290,6 +13223,9 @@ our %unified_info = ( "doc/html/man3/BIO_s_datagram.html" => [ "doc/man3/BIO_s_datagram.pod" ], + "doc/html/man3/BIO_s_dgram_pair.html" => [ + "doc/man3/BIO_s_dgram_pair.pod" + ], "doc/html/man3/BIO_s_fd.html" => [ "doc/man3/BIO_s_fd.pod" ], @@ -11305,6 +13241,9 @@ our %unified_info = ( "doc/html/man3/BIO_s_socket.html" => [ "doc/man3/BIO_s_socket.pod" ], + "doc/html/man3/BIO_sendmmsg.html" => [ + "doc/man3/BIO_sendmmsg.pod" + ], "doc/html/man3/BIO_set_callback.html" => [ "doc/man3/BIO_set_callback.pod" ], @@ -11377,6 +13316,9 @@ our %unified_info = ( "doc/html/man3/BUF_MEM_new.html" => [ "doc/man3/BUF_MEM_new.pod" ], + "doc/html/man3/CMAC_CTX.html" => [ + "doc/man3/CMAC_CTX.pod" + ], "doc/html/man3/CMS_EncryptedData_decrypt.html" => [ "doc/man3/CMS_EncryptedData_decrypt.pod" ], @@ -11443,6 +13385,9 @@ our %unified_info = ( "doc/html/man3/CMS_verify_receipt.html" => [ "doc/man3/CMS_verify_receipt.pod" ], + "doc/html/man3/COMP_CTX_new.html" => [ + "doc/man3/COMP_CTX_new.pod" + ], "doc/html/man3/CONF_modules_free.html" => [ "doc/man3/CONF_modules_free.pod" ], @@ -11542,6 +13487,12 @@ our %unified_info = ( "doc/html/man3/DTLS_set_timer_cb.html" => [ "doc/man3/DTLS_set_timer_cb.pod" ], + "doc/html/man3/DTLSv1_get_timeout.html" => [ + "doc/man3/DTLSv1_get_timeout.pod" + ], + "doc/html/man3/DTLSv1_handle_timeout.html" => [ + "doc/man3/DTLSv1_handle_timeout.pod" + ], "doc/html/man3/DTLSv1_listen.html" => [ "doc/man3/DTLSv1_listen.pod" ], @@ -11680,6 +13631,9 @@ our %unified_info = ( "doc/html/man3/EVP_PKEY_CTX_get0_pkey.html" => [ "doc/man3/EVP_PKEY_CTX_get0_pkey.pod" ], + "doc/html/man3/EVP_PKEY_CTX_get_algor.html" => [ + "doc/man3/EVP_PKEY_CTX_get_algor.pod" + ], "doc/html/man3/EVP_PKEY_CTX_new.html" => [ "doc/man3/EVP_PKEY_CTX_new.pod" ], @@ -11797,6 +13751,12 @@ our %unified_info = ( "doc/html/man3/EVP_SIGNATURE.html" => [ "doc/man3/EVP_SIGNATURE.pod" ], + "doc/html/man3/EVP_SKEY.html" => [ + "doc/man3/EVP_SKEY.pod" + ], + "doc/html/man3/EVP_SKEYMGMT.html" => [ + "doc/man3/EVP_SKEYMGMT.pod" + ], "doc/html/man3/EVP_SealInit.html" => [ "doc/man3/EVP_SealInit.pod" ], @@ -11884,6 +13844,9 @@ our %unified_info = ( "doc/html/man3/EVP_whirlpool.html" => [ "doc/man3/EVP_whirlpool.pod" ], + "doc/html/man3/GENERAL_NAME.html" => [ + "doc/man3/GENERAL_NAME.pod" + ], "doc/html/man3/HMAC.html" => [ "doc/man3/HMAC.pod" ], @@ -11956,9 +13919,15 @@ our %unified_info = ( "doc/html/man3/OPENSSL_load_builtin_modules.html" => [ "doc/man3/OPENSSL_load_builtin_modules.pod" ], + "doc/html/man3/OPENSSL_load_u16_le.html" => [ + "doc/man3/OPENSSL_load_u16_le.pod" + ], "doc/html/man3/OPENSSL_malloc.html" => [ "doc/man3/OPENSSL_malloc.pod" ], + "doc/html/man3/OPENSSL_riscvcap.html" => [ + "doc/man3/OPENSSL_riscvcap.pod" + ], "doc/html/man3/OPENSSL_s390xcap.html" => [ "doc/man3/OPENSSL_s390xcap.pod" ], @@ -11974,12 +13943,18 @@ our %unified_info = ( "doc/html/man3/OSSL_CALLBACK.html" => [ "doc/man3/OSSL_CALLBACK.pod" ], + "doc/html/man3/OSSL_CMP_ATAV_set0.html" => [ + "doc/man3/OSSL_CMP_ATAV_set0.pod" + ], "doc/html/man3/OSSL_CMP_CTX_new.html" => [ "doc/man3/OSSL_CMP_CTX_new.pod" ], "doc/html/man3/OSSL_CMP_HDR_get0_transactionID.html" => [ "doc/man3/OSSL_CMP_HDR_get0_transactionID.pod" ], + "doc/html/man3/OSSL_CMP_ITAV_new_caCerts.html" => [ + "doc/man3/OSSL_CMP_ITAV_new_caCerts.pod" + ], "doc/html/man3/OSSL_CMP_ITAV_set0.html" => [ "doc/man3/OSSL_CMP_ITAV_set0.pod" ], @@ -12049,9 +14024,18 @@ our %unified_info = ( "doc/html/man3/OSSL_ENCODER_to_bio.html" => [ "doc/man3/OSSL_ENCODER_to_bio.pod" ], + "doc/html/man3/OSSL_ERR_STATE_save.html" => [ + "doc/man3/OSSL_ERR_STATE_save.pod" + ], "doc/html/man3/OSSL_ESS_check_signing_certs.html" => [ "doc/man3/OSSL_ESS_check_signing_certs.pod" ], + "doc/html/man3/OSSL_GENERAL_NAMES_print.html" => [ + "doc/man3/OSSL_GENERAL_NAMES_print.pod" + ], + "doc/html/man3/OSSL_HPKE_CTX_new.html" => [ + "doc/man3/OSSL_HPKE_CTX_new.pod" + ], "doc/html/man3/OSSL_HTTP_REQ_CTX.html" => [ "doc/man3/OSSL_HTTP_REQ_CTX.pod" ], @@ -12061,12 +14045,24 @@ our %unified_info = ( "doc/html/man3/OSSL_HTTP_transfer.html" => [ "doc/man3/OSSL_HTTP_transfer.pod" ], + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX.html" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX.pod" + ], + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX_print.html" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX_print.pod" + ], + "doc/html/man3/OSSL_INDICATOR_set_callback.html" => [ + "doc/man3/OSSL_INDICATOR_set_callback.pod" + ], "doc/html/man3/OSSL_ITEM.html" => [ "doc/man3/OSSL_ITEM.pod" ], "doc/html/man3/OSSL_LIB_CTX.html" => [ "doc/man3/OSSL_LIB_CTX.pod" ], + "doc/html/man3/OSSL_LIB_CTX_set_conf_diagnostics.html" => [ + "doc/man3/OSSL_LIB_CTX_set_conf_diagnostics.pod" + ], "doc/html/man3/OSSL_PARAM.html" => [ "doc/man3/OSSL_PARAM.pod" ], @@ -12082,9 +14078,15 @@ our %unified_info = ( "doc/html/man3/OSSL_PARAM_int.html" => [ "doc/man3/OSSL_PARAM_int.pod" ], + "doc/html/man3/OSSL_PARAM_print_to_bio.html" => [ + "doc/man3/OSSL_PARAM_print_to_bio.pod" + ], "doc/html/man3/OSSL_PROVIDER.html" => [ "doc/man3/OSSL_PROVIDER.pod" ], + "doc/html/man3/OSSL_QUIC_client_method.html" => [ + "doc/man3/OSSL_QUIC_client_method.pod" + ], "doc/html/man3/OSSL_SELF_TEST_new.html" => [ "doc/man3/OSSL_SELF_TEST_new.pod" ], @@ -12109,6 +14111,9 @@ our %unified_info = ( "doc/html/man3/OSSL_STORE_open.html" => [ "doc/man3/OSSL_STORE_open.pod" ], + "doc/html/man3/OSSL_sleep.html" => [ + "doc/man3/OSSL_sleep.pod" + ], "doc/html/man3/OSSL_trace_enabled.html" => [ "doc/man3/OSSL_trace_enabled.pod" ], @@ -12124,6 +14129,9 @@ our %unified_info = ( "doc/html/man3/OpenSSL_version.html" => [ "doc/man3/OpenSSL_version.pod" ], + "doc/html/man3/PBMAC1_get1_pbkdf2_param.html" => [ + "doc/man3/PBMAC1_get1_pbkdf2_param.pod" + ], "doc/html/man3/PEM_X509_INFO_read_bio_ex.html" => [ "doc/man3/PEM_X509_INFO_read_bio_ex.pod" ], @@ -12160,6 +14168,9 @@ our %unified_info = ( "doc/html/man3/PKCS12_SAFEBAG_get1_cert.html" => [ "doc/man3/PKCS12_SAFEBAG_get1_cert.pod" ], + "doc/html/man3/PKCS12_SAFEBAG_set0_attrs.html" => [ + "doc/man3/PKCS12_SAFEBAG_set0_attrs.pod" + ], "doc/html/man3/PKCS12_add1_attr_by_NID.html" => [ "doc/man3/PKCS12_add1_attr_by_NID.pod" ], @@ -12433,6 +14444,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set0_CA_list.html" => [ "doc/man3/SSL_CTX_set0_CA_list.pod" ], + "doc/html/man3/SSL_CTX_set1_cert_comp_preference.html" => [ + "doc/man3/SSL_CTX_set1_cert_comp_preference.pod" + ], "doc/html/man3/SSL_CTX_set1_curves.html" => [ "doc/man3/SSL_CTX_set1_curves.pod" ], @@ -12472,6 +14486,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_default_passwd_cb.html" => [ "doc/man3/SSL_CTX_set_default_passwd_cb.pod" ], + "doc/html/man3/SSL_CTX_set_domain_flags.html" => [ + "doc/man3/SSL_CTX_set_domain_flags.pod" + ], "doc/html/man3/SSL_CTX_set_generate_session_id.html" => [ "doc/man3/SSL_CTX_set_generate_session_id.pod" ], @@ -12493,6 +14510,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_msg_callback.html" => [ "doc/man3/SSL_CTX_set_msg_callback.pod" ], + "doc/html/man3/SSL_CTX_set_new_pending_conn_cb.html" => [ + "doc/man3/SSL_CTX_set_new_pending_conn_cb.pod" + ], "doc/html/man3/SSL_CTX_set_num_tickets.html" => [ "doc/man3/SSL_CTX_set_num_tickets.pod" ], @@ -12607,6 +14627,9 @@ our %unified_info = ( "doc/html/man3/SSL_accept.html" => [ "doc/man3/SSL_accept.pod" ], + "doc/html/man3/SSL_accept_stream.html" => [ + "doc/man3/SSL_accept_stream.pod" + ], "doc/html/man3/SSL_alert_type_string.html" => [ "doc/man3/SSL_alert_type_string.pod" ], @@ -12634,9 +14657,21 @@ our %unified_info = ( "doc/html/man3/SSL_free.html" => [ "doc/man3/SSL_free.pod" ], + "doc/html/man3/SSL_get0_connection.html" => [ + "doc/man3/SSL_get0_connection.pod" + ], + "doc/html/man3/SSL_get0_group_name.html" => [ + "doc/man3/SSL_get0_group_name.pod" + ], + "doc/html/man3/SSL_get0_peer_rpk.html" => [ + "doc/man3/SSL_get0_peer_rpk.pod" + ], "doc/html/man3/SSL_get0_peer_scts.html" => [ "doc/man3/SSL_get0_peer_scts.pod" ], + "doc/html/man3/SSL_get1_builtin_sigalgs.html" => [ + "doc/man3/SSL_get1_builtin_sigalgs.pod" + ], "doc/html/man3/SSL_get_SSL_CTX.html" => [ "doc/man3/SSL_get_SSL_CTX.pod" ], @@ -12652,6 +14687,9 @@ our %unified_info = ( "doc/html/man3/SSL_get_client_random.html" => [ "doc/man3/SSL_get_client_random.pod" ], + "doc/html/man3/SSL_get_conn_close_info.html" => [ + "doc/man3/SSL_get_conn_close_info.pod" + ], "doc/html/man3/SSL_get_current_cipher.html" => [ "doc/man3/SSL_get_current_cipher.pod" ], @@ -12661,12 +14699,18 @@ our %unified_info = ( "doc/html/man3/SSL_get_error.html" => [ "doc/man3/SSL_get_error.pod" ], + "doc/html/man3/SSL_get_event_timeout.html" => [ + "doc/man3/SSL_get_event_timeout.pod" + ], "doc/html/man3/SSL_get_extms_support.html" => [ "doc/man3/SSL_get_extms_support.pod" ], "doc/html/man3/SSL_get_fd.html" => [ "doc/man3/SSL_get_fd.pod" ], + "doc/html/man3/SSL_get_handshake_rtt.html" => [ + "doc/man3/SSL_get_handshake_rtt.pod" + ], "doc/html/man3/SSL_get_peer_cert_chain.html" => [ "doc/man3/SSL_get_peer_cert_chain.pod" ], @@ -12685,12 +14729,24 @@ our %unified_info = ( "doc/html/man3/SSL_get_rbio.html" => [ "doc/man3/SSL_get_rbio.pod" ], + "doc/html/man3/SSL_get_rpoll_descriptor.html" => [ + "doc/man3/SSL_get_rpoll_descriptor.pod" + ], "doc/html/man3/SSL_get_session.html" => [ "doc/man3/SSL_get_session.pod" ], "doc/html/man3/SSL_get_shared_sigalgs.html" => [ "doc/man3/SSL_get_shared_sigalgs.pod" ], + "doc/html/man3/SSL_get_stream_id.html" => [ + "doc/man3/SSL_get_stream_id.pod" + ], + "doc/html/man3/SSL_get_stream_read_state.html" => [ + "doc/man3/SSL_get_stream_read_state.pod" + ], + "doc/html/man3/SSL_get_value_uint.html" => [ + "doc/man3/SSL_get_value_uint.pod" + ], "doc/html/man3/SSL_get_verify_result.html" => [ "doc/man3/SSL_get_verify_result.pod" ], @@ -12700,9 +14756,15 @@ our %unified_info = ( "doc/html/man3/SSL_group_to_name.html" => [ "doc/man3/SSL_group_to_name.pod" ], + "doc/html/man3/SSL_handle_events.html" => [ + "doc/man3/SSL_handle_events.pod" + ], "doc/html/man3/SSL_in_init.html" => [ "doc/man3/SSL_in_init.pod" ], + "doc/html/man3/SSL_inject_net_dgram.html" => [ + "doc/man3/SSL_inject_net_dgram.pod" + ], "doc/html/man3/SSL_key_update.html" => [ "doc/man3/SSL_key_update.pod" ], @@ -12715,9 +14777,21 @@ our %unified_info = ( "doc/html/man3/SSL_new.html" => [ "doc/man3/SSL_new.pod" ], + "doc/html/man3/SSL_new_domain.html" => [ + "doc/man3/SSL_new_domain.pod" + ], + "doc/html/man3/SSL_new_listener.html" => [ + "doc/man3/SSL_new_listener.pod" + ], + "doc/html/man3/SSL_new_stream.html" => [ + "doc/man3/SSL_new_stream.pod" + ], "doc/html/man3/SSL_pending.html" => [ "doc/man3/SSL_pending.pod" ], + "doc/html/man3/SSL_poll.html" => [ + "doc/man3/SSL_poll.pod" + ], "doc/html/man3/SSL_read.html" => [ "doc/man3/SSL_read.pod" ], @@ -12733,24 +14807,45 @@ our %unified_info = ( "doc/html/man3/SSL_set1_host.html" => [ "doc/man3/SSL_set1_host.pod" ], + "doc/html/man3/SSL_set1_initial_peer_addr.html" => [ + "doc/man3/SSL_set1_initial_peer_addr.pod" + ], + "doc/html/man3/SSL_set1_server_cert_type.html" => [ + "doc/man3/SSL_set1_server_cert_type.pod" + ], "doc/html/man3/SSL_set_async_callback.html" => [ "doc/man3/SSL_set_async_callback.pod" ], "doc/html/man3/SSL_set_bio.html" => [ "doc/man3/SSL_set_bio.pod" ], + "doc/html/man3/SSL_set_blocking_mode.html" => [ + "doc/man3/SSL_set_blocking_mode.pod" + ], "doc/html/man3/SSL_set_connect_state.html" => [ "doc/man3/SSL_set_connect_state.pod" ], + "doc/html/man3/SSL_set_default_stream_mode.html" => [ + "doc/man3/SSL_set_default_stream_mode.pod" + ], "doc/html/man3/SSL_set_fd.html" => [ "doc/man3/SSL_set_fd.pod" ], + "doc/html/man3/SSL_set_incoming_stream_policy.html" => [ + "doc/man3/SSL_set_incoming_stream_policy.pod" + ], + "doc/html/man3/SSL_set_quic_tls_cbs.html" => [ + "doc/man3/SSL_set_quic_tls_cbs.pod" + ], "doc/html/man3/SSL_set_retry_verify.html" => [ "doc/man3/SSL_set_retry_verify.pod" ], "doc/html/man3/SSL_set_session.html" => [ "doc/man3/SSL_set_session.pod" ], + "doc/html/man3/SSL_set_session_secret_cb.html" => [ + "doc/man3/SSL_set_session_secret_cb.pod" + ], "doc/html/man3/SSL_set_shutdown.html" => [ "doc/man3/SSL_set_shutdown.pod" ], @@ -12763,6 +14858,12 @@ our %unified_info = ( "doc/html/man3/SSL_state_string.html" => [ "doc/man3/SSL_state_string.pod" ], + "doc/html/man3/SSL_stream_conclude.html" => [ + "doc/man3/SSL_stream_conclude.pod" + ], + "doc/html/man3/SSL_stream_reset.html" => [ + "doc/man3/SSL_stream_reset.pod" + ], "doc/html/man3/SSL_want.html" => [ "doc/man3/SSL_want.pod" ], @@ -12772,8 +14873,8 @@ our %unified_info = ( "doc/html/man3/TS_RESP_CTX_new.html" => [ "doc/man3/TS_RESP_CTX_new.pod" ], - "doc/html/man3/TS_VERIFY_CTX_set_certs.html" => [ - "doc/man3/TS_VERIFY_CTX_set_certs.pod" + "doc/html/man3/TS_VERIFY_CTX.html" => [ + "doc/man3/TS_VERIFY_CTX.pod" ], "doc/html/man3/UI_STRING.html" => [ "doc/man3/UI_STRING.pod" @@ -12793,6 +14894,21 @@ our %unified_info = ( "doc/html/man3/X509V3_set_ctx.html" => [ "doc/man3/X509V3_set_ctx.pod" ], + "doc/html/man3/X509_ACERT_add1_attr.html" => [ + "doc/man3/X509_ACERT_add1_attr.pod" + ], + "doc/html/man3/X509_ACERT_add_attr_nconf.html" => [ + "doc/man3/X509_ACERT_add_attr_nconf.pod" + ], + "doc/html/man3/X509_ACERT_get0_holder_baseCertId.html" => [ + "doc/man3/X509_ACERT_get0_holder_baseCertId.pod" + ], + "doc/html/man3/X509_ACERT_get_attr.html" => [ + "doc/man3/X509_ACERT_get_attr.pod" + ], + "doc/html/man3/X509_ACERT_print_ex.html" => [ + "doc/man3/X509_ACERT_print_ex.pod" + ], "doc/html/man3/X509_ALGOR_dup.html" => [ "doc/man3/X509_ALGOR_dup.pod" ], @@ -12841,6 +14957,9 @@ our %unified_info = ( "doc/html/man3/X509_SIG_get0.html" => [ "doc/man3/X509_SIG_get0.pod" ], + "doc/html/man3/X509_STORE_CTX_get_by_subject.html" => [ + "doc/man3/X509_STORE_CTX_get_by_subject.pod" + ], "doc/html/man3/X509_STORE_CTX_get_error.html" => [ "doc/man3/X509_STORE_CTX_get_error.pod" ], @@ -12907,6 +15026,9 @@ our %unified_info = ( "doc/html/man3/X509_get0_uids.html" => [ "doc/man3/X509_get0_uids.pod" ], + "doc/html/man3/X509_get_default_cert_file.html" => [ + "doc/man3/X509_get_default_cert_file.pod" + ], "doc/html/man3/X509_get_extension_flags.html" => [ "doc/man3/X509_get_extension_flags.pod" ], @@ -13030,9 +15152,15 @@ our %unified_info = ( "doc/html/man7/EVP_CIPHER-SM4.html" => [ "doc/man7/EVP_CIPHER-SM4.pod" ], + "doc/html/man7/EVP_KDF-ARGON2.html" => [ + "doc/man7/EVP_KDF-ARGON2.pod" + ], "doc/html/man7/EVP_KDF-HKDF.html" => [ "doc/man7/EVP_KDF-HKDF.pod" ], + "doc/html/man7/EVP_KDF-HMAC-DRBG.html" => [ + "doc/man7/EVP_KDF-HMAC-DRBG.pod" + ], "doc/html/man7/EVP_KDF-KB.html" => [ "doc/man7/EVP_KDF-KB.pod" ], @@ -13048,6 +15176,9 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-PKCS12KDF.html" => [ "doc/man7/EVP_KDF-PKCS12KDF.pod" ], + "doc/html/man7/EVP_KDF-PVKKDF.html" => [ + "doc/man7/EVP_KDF-PVKKDF.pod" + ], "doc/html/man7/EVP_KDF-SCRYPT.html" => [ "doc/man7/EVP_KDF-SCRYPT.pod" ], @@ -13072,9 +15203,18 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-X963.html" => [ "doc/man7/EVP_KDF-X963.pod" ], + "doc/html/man7/EVP_KEM-EC.html" => [ + "doc/man7/EVP_KEM-EC.pod" + ], + "doc/html/man7/EVP_KEM-ML-KEM.html" => [ + "doc/man7/EVP_KEM-ML-KEM.pod" + ], "doc/html/man7/EVP_KEM-RSA.html" => [ "doc/man7/EVP_KEM-RSA.pod" ], + "doc/html/man7/EVP_KEM-X25519.html" => [ + "doc/man7/EVP_KEM-X25519.pod" + ], "doc/html/man7/EVP_KEYEXCH-DH.html" => [ "doc/man7/EVP_KEYEXCH-DH.pod" ], @@ -13108,6 +15248,9 @@ our %unified_info = ( "doc/html/man7/EVP_MD-BLAKE2.html" => [ "doc/man7/EVP_MD-BLAKE2.pod" ], + "doc/html/man7/EVP_MD-KECCAK.html" => [ + "doc/man7/EVP_MD-KECCAK.pod" + ], "doc/html/man7/EVP_MD-MD2.html" => [ "doc/man7/EVP_MD-MD2.pod" ], @@ -13165,15 +15308,27 @@ our %unified_info = ( "doc/html/man7/EVP_PKEY-HMAC.html" => [ "doc/man7/EVP_PKEY-HMAC.pod" ], + "doc/html/man7/EVP_PKEY-ML-DSA.html" => [ + "doc/man7/EVP_PKEY-ML-DSA.pod" + ], + "doc/html/man7/EVP_PKEY-ML-KEM.html" => [ + "doc/man7/EVP_PKEY-ML-KEM.pod" + ], "doc/html/man7/EVP_PKEY-RSA.html" => [ "doc/man7/EVP_PKEY-RSA.pod" ], + "doc/html/man7/EVP_PKEY-SLH-DSA.html" => [ + "doc/man7/EVP_PKEY-SLH-DSA.pod" + ], "doc/html/man7/EVP_PKEY-SM2.html" => [ "doc/man7/EVP_PKEY-SM2.pod" ], "doc/html/man7/EVP_PKEY-X25519.html" => [ "doc/man7/EVP_PKEY-X25519.pod" ], + "doc/html/man7/EVP_RAND-CRNG-TEST.html" => [ + "doc/man7/EVP_RAND-CRNG-TEST.pod" + ], "doc/html/man7/EVP_RAND-CTR-DRBG.html" => [ "doc/man7/EVP_RAND-CTR-DRBG.pod" ], @@ -13183,6 +15338,9 @@ our %unified_info = ( "doc/html/man7/EVP_RAND-HMAC-DRBG.html" => [ "doc/man7/EVP_RAND-HMAC-DRBG.pod" ], + "doc/html/man7/EVP_RAND-JITTER.html" => [ + "doc/man7/EVP_RAND-JITTER.pod" + ], "doc/html/man7/EVP_RAND-SEED-SRC.html" => [ "doc/man7/EVP_RAND-SEED-SRC.pod" ], @@ -13204,9 +15362,15 @@ our %unified_info = ( "doc/html/man7/EVP_SIGNATURE-HMAC.html" => [ "doc/man7/EVP_SIGNATURE-HMAC.pod" ], + "doc/html/man7/EVP_SIGNATURE-ML-DSA.html" => [ + "doc/man7/EVP_SIGNATURE-ML-DSA.pod" + ], "doc/html/man7/EVP_SIGNATURE-RSA.html" => [ "doc/man7/EVP_SIGNATURE-RSA.pod" ], + "doc/html/man7/EVP_SIGNATURE-SLH-DSA.html" => [ + "doc/man7/EVP_SIGNATURE-SLH-DSA.pod" + ], "doc/html/man7/OSSL_PROVIDER-FIPS.html" => [ "doc/man7/OSSL_PROVIDER-FIPS.pod" ], @@ -13222,6 +15386,9 @@ our %unified_info = ( "doc/html/man7/OSSL_PROVIDER-null.html" => [ "doc/man7/OSSL_PROVIDER-null.pod" ], + "doc/html/man7/OSSL_STORE-winstore.html" => [ + "doc/man7/OSSL_STORE-winstore.pod" + ], "doc/html/man7/RAND.html" => [ "doc/man7/RAND.pod" ], @@ -13234,9 +15401,6 @@ our %unified_info = ( "doc/html/man7/bio.html" => [ "doc/man7/bio.pod" ], - "doc/html/man7/crypto.html" => [ - "doc/man7/crypto.pod" - ], "doc/html/man7/ct.html" => [ "doc/man7/ct.pod" ], @@ -13267,9 +15431,6 @@ our %unified_info = ( "doc/html/man7/life_cycle-rand.html" => [ "doc/man7/life_cycle-rand.pod" ], - "doc/html/man7/migration_guide.html" => [ - "doc/man7/migration_guide.pod" - ], "doc/html/man7/openssl-core.h.html" => [ "doc/man7/openssl-core.h.pod" ], @@ -13285,12 +15446,66 @@ our %unified_info = ( "doc/html/man7/openssl-glossary.html" => [ "doc/man7/openssl-glossary.pod" ], + "doc/html/man7/openssl-qlog.html" => [ + "doc/man7/openssl-qlog.pod" + ], + "doc/html/man7/openssl-quic-concurrency.html" => [ + "doc/man7/openssl-quic-concurrency.pod" + ], + "doc/html/man7/openssl-quic.html" => [ + "doc/man7/openssl-quic.pod" + ], "doc/html/man7/openssl-threads.html" => [ "doc/man7/openssl-threads.pod" ], "doc/html/man7/openssl_user_macros.html" => [ "doc/man7/openssl_user_macros.pod" ], + "doc/html/man7/ossl-guide-introduction.html" => [ + "doc/man7/ossl-guide-introduction.pod" + ], + "doc/html/man7/ossl-guide-libcrypto-introduction.html" => [ + "doc/man7/ossl-guide-libcrypto-introduction.pod" + ], + "doc/html/man7/ossl-guide-libraries-introduction.html" => [ + "doc/man7/ossl-guide-libraries-introduction.pod" + ], + "doc/html/man7/ossl-guide-libssl-introduction.html" => [ + "doc/man7/ossl-guide-libssl-introduction.pod" + ], + "doc/html/man7/ossl-guide-migration.html" => [ + "doc/man7/ossl-guide-migration.pod" + ], + "doc/html/man7/ossl-guide-quic-client-block.html" => [ + "doc/man7/ossl-guide-quic-client-block.pod" + ], + "doc/html/man7/ossl-guide-quic-client-non-block.html" => [ + "doc/man7/ossl-guide-quic-client-non-block.pod" + ], + "doc/html/man7/ossl-guide-quic-introduction.html" => [ + "doc/man7/ossl-guide-quic-introduction.pod" + ], + "doc/html/man7/ossl-guide-quic-multi-stream.html" => [ + "doc/man7/ossl-guide-quic-multi-stream.pod" + ], + "doc/html/man7/ossl-guide-quic-server-block.html" => [ + "doc/man7/ossl-guide-quic-server-block.pod" + ], + "doc/html/man7/ossl-guide-quic-server-non-block.html" => [ + "doc/man7/ossl-guide-quic-server-non-block.pod" + ], + "doc/html/man7/ossl-guide-tls-client-block.html" => [ + "doc/man7/ossl-guide-tls-client-block.pod" + ], + "doc/html/man7/ossl-guide-tls-client-non-block.html" => [ + "doc/man7/ossl-guide-tls-client-non-block.pod" + ], + "doc/html/man7/ossl-guide-tls-introduction.html" => [ + "doc/man7/ossl-guide-tls-introduction.pod" + ], + "doc/html/man7/ossl-guide-tls-server-block.html" => [ + "doc/man7/ossl-guide-tls-server-block.pod" + ], "doc/html/man7/ossl_store-file.html" => [ "doc/man7/ossl_store-file.pod" ], @@ -13345,6 +15560,9 @@ our %unified_info = ( "doc/html/man7/provider-signature.html" => [ "doc/man7/provider-signature.pod" ], + "doc/html/man7/provider-skeymgmt.html" => [ + "doc/man7/provider-skeymgmt.pod" + ], "doc/html/man7/provider-storemgmt.html" => [ "doc/man7/provider-storemgmt.pod" ], @@ -13354,9 +15572,6 @@ our %unified_info = ( "doc/html/man7/proxy-certificates.html" => [ "doc/man7/proxy-certificates.pod" ], - "doc/html/man7/ssl.html" => [ - "doc/man7/ssl.pod" - ], "doc/html/man7/x509.html" => [ "doc/man7/x509.pod" ], @@ -13504,6 +15719,9 @@ our %unified_info = ( "doc/man/man1/openssl-sess_id.1" => [ "doc/man1/openssl-sess_id.pod" ], + "doc/man/man1/openssl-skeyutl.1" => [ + "doc/man1/openssl-skeyutl.pod" + ], "doc/man/man1/openssl-smime.1" => [ "doc/man1/openssl-smime.pod" ], @@ -13645,6 +15863,9 @@ our %unified_info = ( "doc/man/man3/BIO_get_ex_new_index.3" => [ "doc/man3/BIO_get_ex_new_index.pod" ], + "doc/man/man3/BIO_get_rpoll_descriptor.3" => [ + "doc/man3/BIO_get_rpoll_descriptor.pod" + ], "doc/man/man3/BIO_meth_new.3" => [ "doc/man3/BIO_meth_new.pod" ], @@ -13681,6 +15902,9 @@ our %unified_info = ( "doc/man/man3/BIO_s_datagram.3" => [ "doc/man3/BIO_s_datagram.pod" ], + "doc/man/man3/BIO_s_dgram_pair.3" => [ + "doc/man3/BIO_s_dgram_pair.pod" + ], "doc/man/man3/BIO_s_fd.3" => [ "doc/man3/BIO_s_fd.pod" ], @@ -13696,6 +15920,9 @@ our %unified_info = ( "doc/man/man3/BIO_s_socket.3" => [ "doc/man3/BIO_s_socket.pod" ], + "doc/man/man3/BIO_sendmmsg.3" => [ + "doc/man3/BIO_sendmmsg.pod" + ], "doc/man/man3/BIO_set_callback.3" => [ "doc/man3/BIO_set_callback.pod" ], @@ -13768,6 +15995,9 @@ our %unified_info = ( "doc/man/man3/BUF_MEM_new.3" => [ "doc/man3/BUF_MEM_new.pod" ], + "doc/man/man3/CMAC_CTX.3" => [ + "doc/man3/CMAC_CTX.pod" + ], "doc/man/man3/CMS_EncryptedData_decrypt.3" => [ "doc/man3/CMS_EncryptedData_decrypt.pod" ], @@ -13834,6 +16064,9 @@ our %unified_info = ( "doc/man/man3/CMS_verify_receipt.3" => [ "doc/man3/CMS_verify_receipt.pod" ], + "doc/man/man3/COMP_CTX_new.3" => [ + "doc/man3/COMP_CTX_new.pod" + ], "doc/man/man3/CONF_modules_free.3" => [ "doc/man3/CONF_modules_free.pod" ], @@ -13933,6 +16166,12 @@ our %unified_info = ( "doc/man/man3/DTLS_set_timer_cb.3" => [ "doc/man3/DTLS_set_timer_cb.pod" ], + "doc/man/man3/DTLSv1_get_timeout.3" => [ + "doc/man3/DTLSv1_get_timeout.pod" + ], + "doc/man/man3/DTLSv1_handle_timeout.3" => [ + "doc/man3/DTLSv1_handle_timeout.pod" + ], "doc/man/man3/DTLSv1_listen.3" => [ "doc/man3/DTLSv1_listen.pod" ], @@ -14071,6 +16310,9 @@ our %unified_info = ( "doc/man/man3/EVP_PKEY_CTX_get0_pkey.3" => [ "doc/man3/EVP_PKEY_CTX_get0_pkey.pod" ], + "doc/man/man3/EVP_PKEY_CTX_get_algor.3" => [ + "doc/man3/EVP_PKEY_CTX_get_algor.pod" + ], "doc/man/man3/EVP_PKEY_CTX_new.3" => [ "doc/man3/EVP_PKEY_CTX_new.pod" ], @@ -14188,6 +16430,12 @@ our %unified_info = ( "doc/man/man3/EVP_SIGNATURE.3" => [ "doc/man3/EVP_SIGNATURE.pod" ], + "doc/man/man3/EVP_SKEY.3" => [ + "doc/man3/EVP_SKEY.pod" + ], + "doc/man/man3/EVP_SKEYMGMT.3" => [ + "doc/man3/EVP_SKEYMGMT.pod" + ], "doc/man/man3/EVP_SealInit.3" => [ "doc/man3/EVP_SealInit.pod" ], @@ -14275,6 +16523,9 @@ our %unified_info = ( "doc/man/man3/EVP_whirlpool.3" => [ "doc/man3/EVP_whirlpool.pod" ], + "doc/man/man3/GENERAL_NAME.3" => [ + "doc/man3/GENERAL_NAME.pod" + ], "doc/man/man3/HMAC.3" => [ "doc/man3/HMAC.pod" ], @@ -14347,9 +16598,15 @@ our %unified_info = ( "doc/man/man3/OPENSSL_load_builtin_modules.3" => [ "doc/man3/OPENSSL_load_builtin_modules.pod" ], + "doc/man/man3/OPENSSL_load_u16_le.3" => [ + "doc/man3/OPENSSL_load_u16_le.pod" + ], "doc/man/man3/OPENSSL_malloc.3" => [ "doc/man3/OPENSSL_malloc.pod" ], + "doc/man/man3/OPENSSL_riscvcap.3" => [ + "doc/man3/OPENSSL_riscvcap.pod" + ], "doc/man/man3/OPENSSL_s390xcap.3" => [ "doc/man3/OPENSSL_s390xcap.pod" ], @@ -14365,12 +16622,18 @@ our %unified_info = ( "doc/man/man3/OSSL_CALLBACK.3" => [ "doc/man3/OSSL_CALLBACK.pod" ], + "doc/man/man3/OSSL_CMP_ATAV_set0.3" => [ + "doc/man3/OSSL_CMP_ATAV_set0.pod" + ], "doc/man/man3/OSSL_CMP_CTX_new.3" => [ "doc/man3/OSSL_CMP_CTX_new.pod" ], "doc/man/man3/OSSL_CMP_HDR_get0_transactionID.3" => [ "doc/man3/OSSL_CMP_HDR_get0_transactionID.pod" ], + "doc/man/man3/OSSL_CMP_ITAV_new_caCerts.3" => [ + "doc/man3/OSSL_CMP_ITAV_new_caCerts.pod" + ], "doc/man/man3/OSSL_CMP_ITAV_set0.3" => [ "doc/man3/OSSL_CMP_ITAV_set0.pod" ], @@ -14440,9 +16703,18 @@ our %unified_info = ( "doc/man/man3/OSSL_ENCODER_to_bio.3" => [ "doc/man3/OSSL_ENCODER_to_bio.pod" ], + "doc/man/man3/OSSL_ERR_STATE_save.3" => [ + "doc/man3/OSSL_ERR_STATE_save.pod" + ], "doc/man/man3/OSSL_ESS_check_signing_certs.3" => [ "doc/man3/OSSL_ESS_check_signing_certs.pod" ], + "doc/man/man3/OSSL_GENERAL_NAMES_print.3" => [ + "doc/man3/OSSL_GENERAL_NAMES_print.pod" + ], + "doc/man/man3/OSSL_HPKE_CTX_new.3" => [ + "doc/man3/OSSL_HPKE_CTX_new.pod" + ], "doc/man/man3/OSSL_HTTP_REQ_CTX.3" => [ "doc/man3/OSSL_HTTP_REQ_CTX.pod" ], @@ -14452,12 +16724,24 @@ our %unified_info = ( "doc/man/man3/OSSL_HTTP_transfer.3" => [ "doc/man3/OSSL_HTTP_transfer.pod" ], + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX.3" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX.pod" + ], + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX_print.3" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX_print.pod" + ], + "doc/man/man3/OSSL_INDICATOR_set_callback.3" => [ + "doc/man3/OSSL_INDICATOR_set_callback.pod" + ], "doc/man/man3/OSSL_ITEM.3" => [ "doc/man3/OSSL_ITEM.pod" ], "doc/man/man3/OSSL_LIB_CTX.3" => [ "doc/man3/OSSL_LIB_CTX.pod" ], + "doc/man/man3/OSSL_LIB_CTX_set_conf_diagnostics.3" => [ + "doc/man3/OSSL_LIB_CTX_set_conf_diagnostics.pod" + ], "doc/man/man3/OSSL_PARAM.3" => [ "doc/man3/OSSL_PARAM.pod" ], @@ -14473,9 +16757,15 @@ our %unified_info = ( "doc/man/man3/OSSL_PARAM_int.3" => [ "doc/man3/OSSL_PARAM_int.pod" ], + "doc/man/man3/OSSL_PARAM_print_to_bio.3" => [ + "doc/man3/OSSL_PARAM_print_to_bio.pod" + ], "doc/man/man3/OSSL_PROVIDER.3" => [ "doc/man3/OSSL_PROVIDER.pod" ], + "doc/man/man3/OSSL_QUIC_client_method.3" => [ + "doc/man3/OSSL_QUIC_client_method.pod" + ], "doc/man/man3/OSSL_SELF_TEST_new.3" => [ "doc/man3/OSSL_SELF_TEST_new.pod" ], @@ -14500,6 +16790,9 @@ our %unified_info = ( "doc/man/man3/OSSL_STORE_open.3" => [ "doc/man3/OSSL_STORE_open.pod" ], + "doc/man/man3/OSSL_sleep.3" => [ + "doc/man3/OSSL_sleep.pod" + ], "doc/man/man3/OSSL_trace_enabled.3" => [ "doc/man3/OSSL_trace_enabled.pod" ], @@ -14515,6 +16808,9 @@ our %unified_info = ( "doc/man/man3/OpenSSL_version.3" => [ "doc/man3/OpenSSL_version.pod" ], + "doc/man/man3/PBMAC1_get1_pbkdf2_param.3" => [ + "doc/man3/PBMAC1_get1_pbkdf2_param.pod" + ], "doc/man/man3/PEM_X509_INFO_read_bio_ex.3" => [ "doc/man3/PEM_X509_INFO_read_bio_ex.pod" ], @@ -14551,6 +16847,9 @@ our %unified_info = ( "doc/man/man3/PKCS12_SAFEBAG_get1_cert.3" => [ "doc/man3/PKCS12_SAFEBAG_get1_cert.pod" ], + "doc/man/man3/PKCS12_SAFEBAG_set0_attrs.3" => [ + "doc/man3/PKCS12_SAFEBAG_set0_attrs.pod" + ], "doc/man/man3/PKCS12_add1_attr_by_NID.3" => [ "doc/man3/PKCS12_add1_attr_by_NID.pod" ], @@ -14824,6 +17123,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set0_CA_list.3" => [ "doc/man3/SSL_CTX_set0_CA_list.pod" ], + "doc/man/man3/SSL_CTX_set1_cert_comp_preference.3" => [ + "doc/man3/SSL_CTX_set1_cert_comp_preference.pod" + ], "doc/man/man3/SSL_CTX_set1_curves.3" => [ "doc/man3/SSL_CTX_set1_curves.pod" ], @@ -14863,6 +17165,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_default_passwd_cb.3" => [ "doc/man3/SSL_CTX_set_default_passwd_cb.pod" ], + "doc/man/man3/SSL_CTX_set_domain_flags.3" => [ + "doc/man3/SSL_CTX_set_domain_flags.pod" + ], "doc/man/man3/SSL_CTX_set_generate_session_id.3" => [ "doc/man3/SSL_CTX_set_generate_session_id.pod" ], @@ -14884,6 +17189,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_msg_callback.3" => [ "doc/man3/SSL_CTX_set_msg_callback.pod" ], + "doc/man/man3/SSL_CTX_set_new_pending_conn_cb.3" => [ + "doc/man3/SSL_CTX_set_new_pending_conn_cb.pod" + ], "doc/man/man3/SSL_CTX_set_num_tickets.3" => [ "doc/man3/SSL_CTX_set_num_tickets.pod" ], @@ -14998,6 +17306,9 @@ our %unified_info = ( "doc/man/man3/SSL_accept.3" => [ "doc/man3/SSL_accept.pod" ], + "doc/man/man3/SSL_accept_stream.3" => [ + "doc/man3/SSL_accept_stream.pod" + ], "doc/man/man3/SSL_alert_type_string.3" => [ "doc/man3/SSL_alert_type_string.pod" ], @@ -15025,9 +17336,21 @@ our %unified_info = ( "doc/man/man3/SSL_free.3" => [ "doc/man3/SSL_free.pod" ], + "doc/man/man3/SSL_get0_connection.3" => [ + "doc/man3/SSL_get0_connection.pod" + ], + "doc/man/man3/SSL_get0_group_name.3" => [ + "doc/man3/SSL_get0_group_name.pod" + ], + "doc/man/man3/SSL_get0_peer_rpk.3" => [ + "doc/man3/SSL_get0_peer_rpk.pod" + ], "doc/man/man3/SSL_get0_peer_scts.3" => [ "doc/man3/SSL_get0_peer_scts.pod" ], + "doc/man/man3/SSL_get1_builtin_sigalgs.3" => [ + "doc/man3/SSL_get1_builtin_sigalgs.pod" + ], "doc/man/man3/SSL_get_SSL_CTX.3" => [ "doc/man3/SSL_get_SSL_CTX.pod" ], @@ -15043,6 +17366,9 @@ our %unified_info = ( "doc/man/man3/SSL_get_client_random.3" => [ "doc/man3/SSL_get_client_random.pod" ], + "doc/man/man3/SSL_get_conn_close_info.3" => [ + "doc/man3/SSL_get_conn_close_info.pod" + ], "doc/man/man3/SSL_get_current_cipher.3" => [ "doc/man3/SSL_get_current_cipher.pod" ], @@ -15052,12 +17378,18 @@ our %unified_info = ( "doc/man/man3/SSL_get_error.3" => [ "doc/man3/SSL_get_error.pod" ], + "doc/man/man3/SSL_get_event_timeout.3" => [ + "doc/man3/SSL_get_event_timeout.pod" + ], "doc/man/man3/SSL_get_extms_support.3" => [ "doc/man3/SSL_get_extms_support.pod" ], "doc/man/man3/SSL_get_fd.3" => [ "doc/man3/SSL_get_fd.pod" ], + "doc/man/man3/SSL_get_handshake_rtt.3" => [ + "doc/man3/SSL_get_handshake_rtt.pod" + ], "doc/man/man3/SSL_get_peer_cert_chain.3" => [ "doc/man3/SSL_get_peer_cert_chain.pod" ], @@ -15076,11 +17408,23 @@ our %unified_info = ( "doc/man/man3/SSL_get_rbio.3" => [ "doc/man3/SSL_get_rbio.pod" ], + "doc/man/man3/SSL_get_rpoll_descriptor.3" => [ + "doc/man3/SSL_get_rpoll_descriptor.pod" + ], "doc/man/man3/SSL_get_session.3" => [ "doc/man3/SSL_get_session.pod" ], - "doc/man/man3/SSL_get_shared_sigalgs.3" => [ - "doc/man3/SSL_get_shared_sigalgs.pod" + "doc/man/man3/SSL_get_shared_sigalgs.3" => [ + "doc/man3/SSL_get_shared_sigalgs.pod" + ], + "doc/man/man3/SSL_get_stream_id.3" => [ + "doc/man3/SSL_get_stream_id.pod" + ], + "doc/man/man3/SSL_get_stream_read_state.3" => [ + "doc/man3/SSL_get_stream_read_state.pod" + ], + "doc/man/man3/SSL_get_value_uint.3" => [ + "doc/man3/SSL_get_value_uint.pod" ], "doc/man/man3/SSL_get_verify_result.3" => [ "doc/man3/SSL_get_verify_result.pod" @@ -15091,9 +17435,15 @@ our %unified_info = ( "doc/man/man3/SSL_group_to_name.3" => [ "doc/man3/SSL_group_to_name.pod" ], + "doc/man/man3/SSL_handle_events.3" => [ + "doc/man3/SSL_handle_events.pod" + ], "doc/man/man3/SSL_in_init.3" => [ "doc/man3/SSL_in_init.pod" ], + "doc/man/man3/SSL_inject_net_dgram.3" => [ + "doc/man3/SSL_inject_net_dgram.pod" + ], "doc/man/man3/SSL_key_update.3" => [ "doc/man3/SSL_key_update.pod" ], @@ -15106,9 +17456,21 @@ our %unified_info = ( "doc/man/man3/SSL_new.3" => [ "doc/man3/SSL_new.pod" ], + "doc/man/man3/SSL_new_domain.3" => [ + "doc/man3/SSL_new_domain.pod" + ], + "doc/man/man3/SSL_new_listener.3" => [ + "doc/man3/SSL_new_listener.pod" + ], + "doc/man/man3/SSL_new_stream.3" => [ + "doc/man3/SSL_new_stream.pod" + ], "doc/man/man3/SSL_pending.3" => [ "doc/man3/SSL_pending.pod" ], + "doc/man/man3/SSL_poll.3" => [ + "doc/man3/SSL_poll.pod" + ], "doc/man/man3/SSL_read.3" => [ "doc/man3/SSL_read.pod" ], @@ -15124,24 +17486,45 @@ our %unified_info = ( "doc/man/man3/SSL_set1_host.3" => [ "doc/man3/SSL_set1_host.pod" ], + "doc/man/man3/SSL_set1_initial_peer_addr.3" => [ + "doc/man3/SSL_set1_initial_peer_addr.pod" + ], + "doc/man/man3/SSL_set1_server_cert_type.3" => [ + "doc/man3/SSL_set1_server_cert_type.pod" + ], "doc/man/man3/SSL_set_async_callback.3" => [ "doc/man3/SSL_set_async_callback.pod" ], "doc/man/man3/SSL_set_bio.3" => [ "doc/man3/SSL_set_bio.pod" ], + "doc/man/man3/SSL_set_blocking_mode.3" => [ + "doc/man3/SSL_set_blocking_mode.pod" + ], "doc/man/man3/SSL_set_connect_state.3" => [ "doc/man3/SSL_set_connect_state.pod" ], + "doc/man/man3/SSL_set_default_stream_mode.3" => [ + "doc/man3/SSL_set_default_stream_mode.pod" + ], "doc/man/man3/SSL_set_fd.3" => [ "doc/man3/SSL_set_fd.pod" ], + "doc/man/man3/SSL_set_incoming_stream_policy.3" => [ + "doc/man3/SSL_set_incoming_stream_policy.pod" + ], + "doc/man/man3/SSL_set_quic_tls_cbs.3" => [ + "doc/man3/SSL_set_quic_tls_cbs.pod" + ], "doc/man/man3/SSL_set_retry_verify.3" => [ "doc/man3/SSL_set_retry_verify.pod" ], "doc/man/man3/SSL_set_session.3" => [ "doc/man3/SSL_set_session.pod" ], + "doc/man/man3/SSL_set_session_secret_cb.3" => [ + "doc/man3/SSL_set_session_secret_cb.pod" + ], "doc/man/man3/SSL_set_shutdown.3" => [ "doc/man3/SSL_set_shutdown.pod" ], @@ -15154,6 +17537,12 @@ our %unified_info = ( "doc/man/man3/SSL_state_string.3" => [ "doc/man3/SSL_state_string.pod" ], + "doc/man/man3/SSL_stream_conclude.3" => [ + "doc/man3/SSL_stream_conclude.pod" + ], + "doc/man/man3/SSL_stream_reset.3" => [ + "doc/man3/SSL_stream_reset.pod" + ], "doc/man/man3/SSL_want.3" => [ "doc/man3/SSL_want.pod" ], @@ -15163,8 +17552,8 @@ our %unified_info = ( "doc/man/man3/TS_RESP_CTX_new.3" => [ "doc/man3/TS_RESP_CTX_new.pod" ], - "doc/man/man3/TS_VERIFY_CTX_set_certs.3" => [ - "doc/man3/TS_VERIFY_CTX_set_certs.pod" + "doc/man/man3/TS_VERIFY_CTX.3" => [ + "doc/man3/TS_VERIFY_CTX.pod" ], "doc/man/man3/UI_STRING.3" => [ "doc/man3/UI_STRING.pod" @@ -15184,6 +17573,21 @@ our %unified_info = ( "doc/man/man3/X509V3_set_ctx.3" => [ "doc/man3/X509V3_set_ctx.pod" ], + "doc/man/man3/X509_ACERT_add1_attr.3" => [ + "doc/man3/X509_ACERT_add1_attr.pod" + ], + "doc/man/man3/X509_ACERT_add_attr_nconf.3" => [ + "doc/man3/X509_ACERT_add_attr_nconf.pod" + ], + "doc/man/man3/X509_ACERT_get0_holder_baseCertId.3" => [ + "doc/man3/X509_ACERT_get0_holder_baseCertId.pod" + ], + "doc/man/man3/X509_ACERT_get_attr.3" => [ + "doc/man3/X509_ACERT_get_attr.pod" + ], + "doc/man/man3/X509_ACERT_print_ex.3" => [ + "doc/man3/X509_ACERT_print_ex.pod" + ], "doc/man/man3/X509_ALGOR_dup.3" => [ "doc/man3/X509_ALGOR_dup.pod" ], @@ -15232,6 +17636,9 @@ our %unified_info = ( "doc/man/man3/X509_SIG_get0.3" => [ "doc/man3/X509_SIG_get0.pod" ], + "doc/man/man3/X509_STORE_CTX_get_by_subject.3" => [ + "doc/man3/X509_STORE_CTX_get_by_subject.pod" + ], "doc/man/man3/X509_STORE_CTX_get_error.3" => [ "doc/man3/X509_STORE_CTX_get_error.pod" ], @@ -15298,6 +17705,9 @@ our %unified_info = ( "doc/man/man3/X509_get0_uids.3" => [ "doc/man3/X509_get0_uids.pod" ], + "doc/man/man3/X509_get_default_cert_file.3" => [ + "doc/man3/X509_get_default_cert_file.pod" + ], "doc/man/man3/X509_get_extension_flags.3" => [ "doc/man3/X509_get_extension_flags.pod" ], @@ -15421,9 +17831,15 @@ our %unified_info = ( "doc/man/man7/EVP_CIPHER-SM4.7" => [ "doc/man7/EVP_CIPHER-SM4.pod" ], + "doc/man/man7/EVP_KDF-ARGON2.7" => [ + "doc/man7/EVP_KDF-ARGON2.pod" + ], "doc/man/man7/EVP_KDF-HKDF.7" => [ "doc/man7/EVP_KDF-HKDF.pod" ], + "doc/man/man7/EVP_KDF-HMAC-DRBG.7" => [ + "doc/man7/EVP_KDF-HMAC-DRBG.pod" + ], "doc/man/man7/EVP_KDF-KB.7" => [ "doc/man7/EVP_KDF-KB.pod" ], @@ -15439,6 +17855,9 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-PKCS12KDF.7" => [ "doc/man7/EVP_KDF-PKCS12KDF.pod" ], + "doc/man/man7/EVP_KDF-PVKKDF.7" => [ + "doc/man7/EVP_KDF-PVKKDF.pod" + ], "doc/man/man7/EVP_KDF-SCRYPT.7" => [ "doc/man7/EVP_KDF-SCRYPT.pod" ], @@ -15463,9 +17882,18 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-X963.7" => [ "doc/man7/EVP_KDF-X963.pod" ], + "doc/man/man7/EVP_KEM-EC.7" => [ + "doc/man7/EVP_KEM-EC.pod" + ], + "doc/man/man7/EVP_KEM-ML-KEM.7" => [ + "doc/man7/EVP_KEM-ML-KEM.pod" + ], "doc/man/man7/EVP_KEM-RSA.7" => [ "doc/man7/EVP_KEM-RSA.pod" ], + "doc/man/man7/EVP_KEM-X25519.7" => [ + "doc/man7/EVP_KEM-X25519.pod" + ], "doc/man/man7/EVP_KEYEXCH-DH.7" => [ "doc/man7/EVP_KEYEXCH-DH.pod" ], @@ -15499,6 +17927,9 @@ our %unified_info = ( "doc/man/man7/EVP_MD-BLAKE2.7" => [ "doc/man7/EVP_MD-BLAKE2.pod" ], + "doc/man/man7/EVP_MD-KECCAK.7" => [ + "doc/man7/EVP_MD-KECCAK.pod" + ], "doc/man/man7/EVP_MD-MD2.7" => [ "doc/man7/EVP_MD-MD2.pod" ], @@ -15556,15 +17987,27 @@ our %unified_info = ( "doc/man/man7/EVP_PKEY-HMAC.7" => [ "doc/man7/EVP_PKEY-HMAC.pod" ], + "doc/man/man7/EVP_PKEY-ML-DSA.7" => [ + "doc/man7/EVP_PKEY-ML-DSA.pod" + ], + "doc/man/man7/EVP_PKEY-ML-KEM.7" => [ + "doc/man7/EVP_PKEY-ML-KEM.pod" + ], "doc/man/man7/EVP_PKEY-RSA.7" => [ "doc/man7/EVP_PKEY-RSA.pod" ], + "doc/man/man7/EVP_PKEY-SLH-DSA.7" => [ + "doc/man7/EVP_PKEY-SLH-DSA.pod" + ], "doc/man/man7/EVP_PKEY-SM2.7" => [ "doc/man7/EVP_PKEY-SM2.pod" ], "doc/man/man7/EVP_PKEY-X25519.7" => [ "doc/man7/EVP_PKEY-X25519.pod" ], + "doc/man/man7/EVP_RAND-CRNG-TEST.7" => [ + "doc/man7/EVP_RAND-CRNG-TEST.pod" + ], "doc/man/man7/EVP_RAND-CTR-DRBG.7" => [ "doc/man7/EVP_RAND-CTR-DRBG.pod" ], @@ -15574,6 +18017,9 @@ our %unified_info = ( "doc/man/man7/EVP_RAND-HMAC-DRBG.7" => [ "doc/man7/EVP_RAND-HMAC-DRBG.pod" ], + "doc/man/man7/EVP_RAND-JITTER.7" => [ + "doc/man7/EVP_RAND-JITTER.pod" + ], "doc/man/man7/EVP_RAND-SEED-SRC.7" => [ "doc/man7/EVP_RAND-SEED-SRC.pod" ], @@ -15595,9 +18041,15 @@ our %unified_info = ( "doc/man/man7/EVP_SIGNATURE-HMAC.7" => [ "doc/man7/EVP_SIGNATURE-HMAC.pod" ], + "doc/man/man7/EVP_SIGNATURE-ML-DSA.7" => [ + "doc/man7/EVP_SIGNATURE-ML-DSA.pod" + ], "doc/man/man7/EVP_SIGNATURE-RSA.7" => [ "doc/man7/EVP_SIGNATURE-RSA.pod" ], + "doc/man/man7/EVP_SIGNATURE-SLH-DSA.7" => [ + "doc/man7/EVP_SIGNATURE-SLH-DSA.pod" + ], "doc/man/man7/OSSL_PROVIDER-FIPS.7" => [ "doc/man7/OSSL_PROVIDER-FIPS.pod" ], @@ -15613,6 +18065,9 @@ our %unified_info = ( "doc/man/man7/OSSL_PROVIDER-null.7" => [ "doc/man7/OSSL_PROVIDER-null.pod" ], + "doc/man/man7/OSSL_STORE-winstore.7" => [ + "doc/man7/OSSL_STORE-winstore.pod" + ], "doc/man/man7/RAND.7" => [ "doc/man7/RAND.pod" ], @@ -15625,9 +18080,6 @@ our %unified_info = ( "doc/man/man7/bio.7" => [ "doc/man7/bio.pod" ], - "doc/man/man7/crypto.7" => [ - "doc/man7/crypto.pod" - ], "doc/man/man7/ct.7" => [ "doc/man7/ct.pod" ], @@ -15658,9 +18110,6 @@ our %unified_info = ( "doc/man/man7/life_cycle-rand.7" => [ "doc/man7/life_cycle-rand.pod" ], - "doc/man/man7/migration_guide.7" => [ - "doc/man7/migration_guide.pod" - ], "doc/man/man7/openssl-core.h.7" => [ "doc/man7/openssl-core.h.pod" ], @@ -15676,12 +18125,66 @@ our %unified_info = ( "doc/man/man7/openssl-glossary.7" => [ "doc/man7/openssl-glossary.pod" ], + "doc/man/man7/openssl-qlog.7" => [ + "doc/man7/openssl-qlog.pod" + ], + "doc/man/man7/openssl-quic-concurrency.7" => [ + "doc/man7/openssl-quic-concurrency.pod" + ], + "doc/man/man7/openssl-quic.7" => [ + "doc/man7/openssl-quic.pod" + ], "doc/man/man7/openssl-threads.7" => [ "doc/man7/openssl-threads.pod" ], "doc/man/man7/openssl_user_macros.7" => [ "doc/man7/openssl_user_macros.pod" ], + "doc/man/man7/ossl-guide-introduction.7" => [ + "doc/man7/ossl-guide-introduction.pod" + ], + "doc/man/man7/ossl-guide-libcrypto-introduction.7" => [ + "doc/man7/ossl-guide-libcrypto-introduction.pod" + ], + "doc/man/man7/ossl-guide-libraries-introduction.7" => [ + "doc/man7/ossl-guide-libraries-introduction.pod" + ], + "doc/man/man7/ossl-guide-libssl-introduction.7" => [ + "doc/man7/ossl-guide-libssl-introduction.pod" + ], + "doc/man/man7/ossl-guide-migration.7" => [ + "doc/man7/ossl-guide-migration.pod" + ], + "doc/man/man7/ossl-guide-quic-client-block.7" => [ + "doc/man7/ossl-guide-quic-client-block.pod" + ], + "doc/man/man7/ossl-guide-quic-client-non-block.7" => [ + "doc/man7/ossl-guide-quic-client-non-block.pod" + ], + "doc/man/man7/ossl-guide-quic-introduction.7" => [ + "doc/man7/ossl-guide-quic-introduction.pod" + ], + "doc/man/man7/ossl-guide-quic-multi-stream.7" => [ + "doc/man7/ossl-guide-quic-multi-stream.pod" + ], + "doc/man/man7/ossl-guide-quic-server-block.7" => [ + "doc/man7/ossl-guide-quic-server-block.pod" + ], + "doc/man/man7/ossl-guide-quic-server-non-block.7" => [ + "doc/man7/ossl-guide-quic-server-non-block.pod" + ], + "doc/man/man7/ossl-guide-tls-client-block.7" => [ + "doc/man7/ossl-guide-tls-client-block.pod" + ], + "doc/man/man7/ossl-guide-tls-client-non-block.7" => [ + "doc/man7/ossl-guide-tls-client-non-block.pod" + ], + "doc/man/man7/ossl-guide-tls-introduction.7" => [ + "doc/man7/ossl-guide-tls-introduction.pod" + ], + "doc/man/man7/ossl-guide-tls-server-block.7" => [ + "doc/man7/ossl-guide-tls-server-block.pod" + ], "doc/man/man7/ossl_store-file.7" => [ "doc/man7/ossl_store-file.pod" ], @@ -15736,6 +18239,9 @@ our %unified_info = ( "doc/man/man7/provider-signature.7" => [ "doc/man7/provider-signature.pod" ], + "doc/man/man7/provider-skeymgmt.7" => [ + "doc/man7/provider-skeymgmt.pod" + ], "doc/man/man7/provider-storemgmt.7" => [ "doc/man7/provider-storemgmt.pod" ], @@ -15745,9 +18251,6 @@ our %unified_info = ( "doc/man/man7/proxy-certificates.7" => [ "doc/man7/proxy-certificates.pod" ], - "doc/man/man7/ssl.7" => [ - "doc/man7/ssl.pod" - ], "doc/man/man7/x509.7" => [ "doc/man7/x509.pod" ], @@ -15883,6 +18386,9 @@ our %unified_info = ( "doc/man1/openssl-sess_id.pod" => [ "doc/man1/openssl-sess_id.pod.in" ], + "doc/man1/openssl-skeyutl.pod" => [ + "doc/man1/openssl-skeyutl.pod.in" + ], "doc/man1/openssl-smime.pod" => [ "doc/man1/openssl-smime.pod.in" ], @@ -15919,12 +18425,30 @@ our %unified_info = ( "engines/e_padlock-x86_64.s" => [ "engines/asm/e_padlock-x86_64.pl" ], + "exporters/OpenSSLConfig.cmake" => [ + "exporters/cmake/OpenSSLConfig.cmake.in" + ], + "exporters/OpenSSLConfigVersion.cmake" => [ + "exporters/cmake/OpenSSLConfigVersion.cmake.in" + ], + "exporters/libcrypto.pc" => [ + "exporters/pkg-config/libcrypto.pc.in" + ], + "exporters/libssl.pc" => [ + "exporters/pkg-config/libssl.pc.in" + ], + "exporters/openssl.pc" => [ + "exporters/pkg-config/openssl.pc.in" + ], "include/crypto/bn_conf.h" => [ "include/crypto/bn_conf.h.in" ], "include/crypto/dso_conf.h" => [ "include/crypto/dso_conf.h.in" ], + "include/internal/param_names.h" => [ + "include/internal/param_names.h.in" + ], "include/openssl/asn1.h" => [ "include/openssl/asn1.h.in" ], @@ -15940,12 +18464,18 @@ our %unified_info = ( "include/openssl/cms.h" => [ "include/openssl/cms.h.in" ], + "include/openssl/comp.h" => [ + "include/openssl/comp.h.in" + ], "include/openssl/conf.h" => [ "include/openssl/conf.h.in" ], "include/openssl/configuration.h" => [ "include/openssl/configuration.h.in" ], + "include/openssl/core_names.h" => [ + "include/openssl/core_names.h.in" + ], "include/openssl/crmf.h" => [ "include/openssl/crmf.h.in" ], @@ -15994,16 +18524,37 @@ our %unified_info = ( "include/openssl/x509.h" => [ "include/openssl/x509.h.in" ], + "include/openssl/x509_acert.h" => [ + "include/openssl/x509_acert.h.in" + ], "include/openssl/x509_vfy.h" => [ "include/openssl/x509_vfy.h.in" ], "include/openssl/x509v3.h" => [ "include/openssl/x509v3.h.in" ], + "installdata.pm" => [ + "util/mkinstallvars.pl", + "\"PREFIX=\$(INSTALLTOP)\"", + "BINDIR=bin", + "\"LIBDIR=\$(LIBDIR)\"", + "\"libdir=\$(libdir)\"", + "INCLUDEDIR=include", + "APPLINKDIR=include/openssl", + "\"ENGINESDIR=\$(ENGINESDIR)\"", + "\"MODULESDIR=\$(MODULESDIR)\"", + "\"PKGCONFIGDIR=\$(PKGCONFIGDIR)\"", + "\"CMAKECONFIGDIR=\$(CMAKECONFIGDIR)\"", + "\"LDLIBS=\$(LIB_EX_LIBS)\"", + "\"VERSION=\$(VERSION)\"" + ], "libcrypto.ld" => [ "util/libcrypto.num", "libcrypto" ], + "libcrypto.pc" => [ + "exporters/pkg-config/libcrypto.pc.in" + ], "libcrypto.rc" => [ "util/mkrc.pl", "libcrypto" @@ -16012,10 +18563,16 @@ our %unified_info = ( "util/libssl.num", "libssl" ], + "libssl.pc" => [ + "exporters/pkg-config/libssl.pc.in" + ], "libssl.rc" => [ "util/mkrc.pl", "libssl" ], + "openssl.pc" => [ + "exporters/pkg-config/openssl.pc.in" + ], "providers/common/der/der_digests_gen.c" => [ "providers/common/der/der_digests_gen.c.in" ], @@ -16028,9 +18585,15 @@ our %unified_info = ( "providers/common/der/der_ecx_gen.c" => [ "providers/common/der/der_ecx_gen.c.in" ], + "providers/common/der/der_ml_dsa_gen.c" => [ + "providers/common/der/der_ml_dsa_gen.c.in" + ], "providers/common/der/der_rsa_gen.c" => [ "providers/common/der/der_rsa_gen.c.in" ], + "providers/common/der/der_slh_dsa_gen.c" => [ + "providers/common/der/der_slh_dsa_gen.c.in" + ], "providers/common/der/der_sm2_gen.c" => [ "providers/common/der/der_sm2_gen.c.in" ], @@ -16049,9 +18612,15 @@ our %unified_info = ( "providers/common/include/prov/der_ecx.h" => [ "providers/common/include/prov/der_ecx.h.in" ], + "providers/common/include/prov/der_ml_dsa.h" => [ + "providers/common/include/prov/der_ml_dsa.h.in" + ], "providers/common/include/prov/der_rsa.h" => [ "providers/common/include/prov/der_rsa.h.in" ], + "providers/common/include/prov/der_slh_dsa.h" => [ + "providers/common/include/prov/der_slh_dsa.h.in" + ], "providers/common/include/prov/der_sm2.h" => [ "providers/common/include/prov/der_sm2.h.in" ], @@ -16101,6 +18670,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "buffer" ], + "test/buildtest_byteorder.c" => [ + "test/generate_buildtest.pl", + "byteorder" + ], "test/buildtest_camellia.c" => [ "test/generate_buildtest.pl", "camellia" @@ -16133,10 +18706,6 @@ our %unified_info = ( "test/generate_buildtest.pl", "core_dispatch" ], - "test/buildtest_core_names.c" => [ - "test/generate_buildtest.pl", - "core_names" - ], "test/buildtest_core_object.c" => [ "test/generate_buildtest.pl", "core_object" @@ -16169,6 +18738,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "e_os2" ], + "test/buildtest_e_ostime.c" => [ + "test/generate_buildtest.pl", + "e_ostime" + ], "test/buildtest_ebcdic.c" => [ "test/generate_buildtest.pl", "ebcdic" @@ -16205,6 +18778,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "hmac" ], + "test/buildtest_hpke.c" => [ + "test/generate_buildtest.pl", + "hpke" + ], "test/buildtest_http.c" => [ "test/generate_buildtest.pl", "http" @@ -16213,6 +18790,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "idea" ], + "test/buildtest_indicator.c" => [ + "test/generate_buildtest.pl", + "indicator" + ], "test/buildtest_kdf.c" => [ "test/generate_buildtest.pl", "kdf" @@ -16233,6 +18814,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "mdc2" ], + "test/buildtest_ml_kem.c" => [ + "test/generate_buildtest.pl", + "ml_kem" + ], "test/buildtest_modes.c" => [ "test/generate_buildtest.pl", "modes" @@ -16273,6 +18858,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "provider" ], + "test/buildtest_quic.c" => [ + "test/generate_buildtest.pl", + "quic" + ], "test/buildtest_rand.c" => [ "test/generate_buildtest.pl", "rand" @@ -16329,6 +18918,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "symhacks" ], + "test/buildtest_thread.c" => [ + "test/generate_buildtest.pl", + "thread" + ], "test/buildtest_tls1.c" => [ "test/generate_buildtest.pl", "tls1" @@ -16409,6 +19002,7 @@ our %unified_info = ( "doc/html/man1/openssl-s_server.html", "doc/html/man1/openssl-s_time.html", "doc/html/man1/openssl-sess_id.html", + "doc/html/man1/openssl-skeyutl.html", "doc/html/man1/openssl-smime.html", "doc/html/man1/openssl-speed.html", "doc/html/man1/openssl-spkac.html", @@ -16458,6 +19052,7 @@ our %unified_info = ( "doc/html/man3/BIO_find_type.html", "doc/html/man3/BIO_get_data.html", "doc/html/man3/BIO_get_ex_new_index.html", + "doc/html/man3/BIO_get_rpoll_descriptor.html", "doc/html/man3/BIO_meth_new.html", "doc/html/man3/BIO_new.html", "doc/html/man3/BIO_new_CMS.html", @@ -16470,11 +19065,13 @@ our %unified_info = ( "doc/html/man3/BIO_s_connect.html", "doc/html/man3/BIO_s_core.html", "doc/html/man3/BIO_s_datagram.html", + "doc/html/man3/BIO_s_dgram_pair.html", "doc/html/man3/BIO_s_fd.html", "doc/html/man3/BIO_s_file.html", "doc/html/man3/BIO_s_mem.html", "doc/html/man3/BIO_s_null.html", "doc/html/man3/BIO_s_socket.html", + "doc/html/man3/BIO_sendmmsg.html", "doc/html/man3/BIO_set_callback.html", "doc/html/man3/BIO_should_retry.html", "doc/html/man3/BIO_socket_wait.html", @@ -16499,6 +19096,7 @@ our %unified_info = ( "doc/html/man3/BN_swap.html", "doc/html/man3/BN_zero.html", "doc/html/man3/BUF_MEM_new.html", + "doc/html/man3/CMAC_CTX.html", "doc/html/man3/CMS_EncryptedData_decrypt.html", "doc/html/man3/CMS_EncryptedData_encrypt.html", "doc/html/man3/CMS_EnvelopedData_create.html", @@ -16521,6 +19119,7 @@ our %unified_info = ( "doc/html/man3/CMS_uncompress.html", "doc/html/man3/CMS_verify.html", "doc/html/man3/CMS_verify_receipt.html", + "doc/html/man3/COMP_CTX_new.html", "doc/html/man3/CONF_modules_free.html", "doc/html/man3/CONF_modules_load_file.html", "doc/html/man3/CRYPTO_THREAD_run_once.html", @@ -16554,6 +19153,8 @@ our %unified_info = ( "doc/html/man3/DSA_size.html", "doc/html/man3/DTLS_get_data_mtu.html", "doc/html/man3/DTLS_set_timer_cb.html", + "doc/html/man3/DTLSv1_get_timeout.html", + "doc/html/man3/DTLSv1_handle_timeout.html", "doc/html/man3/DTLSv1_listen.html", "doc/html/man3/ECDSA_SIG_new.html", "doc/html/man3/ECDSA_sign.html", @@ -16600,6 +19201,7 @@ our %unified_info = ( "doc/html/man3/EVP_PKEY_CTX_ctrl.html", "doc/html/man3/EVP_PKEY_CTX_get0_libctx.html", "doc/html/man3/EVP_PKEY_CTX_get0_pkey.html", + "doc/html/man3/EVP_PKEY_CTX_get_algor.html", "doc/html/man3/EVP_PKEY_CTX_new.html", "doc/html/man3/EVP_PKEY_CTX_set1_pbe_pass.html", "doc/html/man3/EVP_PKEY_CTX_set_hkdf_md.html", @@ -16639,6 +19241,8 @@ our %unified_info = ( "doc/html/man3/EVP_PKEY_verify_recover.html", "doc/html/man3/EVP_RAND.html", "doc/html/man3/EVP_SIGNATURE.html", + "doc/html/man3/EVP_SKEY.html", + "doc/html/man3/EVP_SKEYMGMT.html", "doc/html/man3/EVP_SealInit.html", "doc/html/man3/EVP_SignInit.html", "doc/html/man3/EVP_VerifyInit.html", @@ -16668,6 +19272,7 @@ our %unified_info = ( "doc/html/man3/EVP_sm3.html", "doc/html/man3/EVP_sm4_cbc.html", "doc/html/man3/EVP_whirlpool.html", + "doc/html/man3/GENERAL_NAME.html", "doc/html/man3/HMAC.html", "doc/html/man3/MD5.html", "doc/html/man3/MDC2_Init.html", @@ -16692,14 +19297,18 @@ our %unified_info = ( "doc/html/man3/OPENSSL_init_ssl.html", "doc/html/man3/OPENSSL_instrument_bus.html", "doc/html/man3/OPENSSL_load_builtin_modules.html", + "doc/html/man3/OPENSSL_load_u16_le.html", "doc/html/man3/OPENSSL_malloc.html", + "doc/html/man3/OPENSSL_riscvcap.html", "doc/html/man3/OPENSSL_s390xcap.html", "doc/html/man3/OPENSSL_secure_malloc.html", "doc/html/man3/OPENSSL_strcasecmp.html", "doc/html/man3/OSSL_ALGORITHM.html", "doc/html/man3/OSSL_CALLBACK.html", + "doc/html/man3/OSSL_CMP_ATAV_set0.html", "doc/html/man3/OSSL_CMP_CTX_new.html", "doc/html/man3/OSSL_CMP_HDR_get0_transactionID.html", + "doc/html/man3/OSSL_CMP_ITAV_new_caCerts.html", "doc/html/man3/OSSL_CMP_ITAV_set0.html", "doc/html/man3/OSSL_CMP_MSG_get0_header.html", "doc/html/man3/OSSL_CMP_MSG_http_perform.html", @@ -16723,18 +19332,27 @@ our %unified_info = ( "doc/html/man3/OSSL_ENCODER_CTX.html", "doc/html/man3/OSSL_ENCODER_CTX_new_for_pkey.html", "doc/html/man3/OSSL_ENCODER_to_bio.html", + "doc/html/man3/OSSL_ERR_STATE_save.html", "doc/html/man3/OSSL_ESS_check_signing_certs.html", + "doc/html/man3/OSSL_GENERAL_NAMES_print.html", + "doc/html/man3/OSSL_HPKE_CTX_new.html", "doc/html/man3/OSSL_HTTP_REQ_CTX.html", "doc/html/man3/OSSL_HTTP_parse_url.html", "doc/html/man3/OSSL_HTTP_transfer.html", + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX.html", + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX_print.html", + "doc/html/man3/OSSL_INDICATOR_set_callback.html", "doc/html/man3/OSSL_ITEM.html", "doc/html/man3/OSSL_LIB_CTX.html", + "doc/html/man3/OSSL_LIB_CTX_set_conf_diagnostics.html", "doc/html/man3/OSSL_PARAM.html", "doc/html/man3/OSSL_PARAM_BLD.html", "doc/html/man3/OSSL_PARAM_allocate_from_text.html", "doc/html/man3/OSSL_PARAM_dup.html", "doc/html/man3/OSSL_PARAM_int.html", + "doc/html/man3/OSSL_PARAM_print_to_bio.html", "doc/html/man3/OSSL_PROVIDER.html", + "doc/html/man3/OSSL_QUIC_client_method.html", "doc/html/man3/OSSL_SELF_TEST_new.html", "doc/html/man3/OSSL_SELF_TEST_set_callback.html", "doc/html/man3/OSSL_STORE_INFO.html", @@ -16743,11 +19361,13 @@ our %unified_info = ( "doc/html/man3/OSSL_STORE_attach.html", "doc/html/man3/OSSL_STORE_expect.html", "doc/html/man3/OSSL_STORE_open.html", + "doc/html/man3/OSSL_sleep.html", "doc/html/man3/OSSL_trace_enabled.html", "doc/html/man3/OSSL_trace_get_category_num.html", "doc/html/man3/OSSL_trace_set_channel.html", "doc/html/man3/OpenSSL_add_all_algorithms.html", "doc/html/man3/OpenSSL_version.html", + "doc/html/man3/PBMAC1_get1_pbkdf2_param.html", "doc/html/man3/PEM_X509_INFO_read_bio_ex.html", "doc/html/man3/PEM_bytes_read_bio.html", "doc/html/man3/PEM_read.html", @@ -16760,6 +19380,7 @@ our %unified_info = ( "doc/html/man3/PKCS12_SAFEBAG_create_cert.html", "doc/html/man3/PKCS12_SAFEBAG_get0_attrs.html", "doc/html/man3/PKCS12_SAFEBAG_get1_cert.html", + "doc/html/man3/PKCS12_SAFEBAG_set0_attrs.html", "doc/html/man3/PKCS12_add1_attr_by_NID.html", "doc/html/man3/PKCS12_add_CSPName_asc.html", "doc/html/man3/PKCS12_add_cert.html", @@ -16851,6 +19472,7 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_sess_set_get_cb.html", "doc/html/man3/SSL_CTX_sessions.html", "doc/html/man3/SSL_CTX_set0_CA_list.html", + "doc/html/man3/SSL_CTX_set1_cert_comp_preference.html", "doc/html/man3/SSL_CTX_set1_curves.html", "doc/html/man3/SSL_CTX_set1_sigalgs.html", "doc/html/man3/SSL_CTX_set1_verify_cert_store.html", @@ -16864,6 +19486,7 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_ct_validation_callback.html", "doc/html/man3/SSL_CTX_set_ctlog_list_file.html", "doc/html/man3/SSL_CTX_set_default_passwd_cb.html", + "doc/html/man3/SSL_CTX_set_domain_flags.html", "doc/html/man3/SSL_CTX_set_generate_session_id.html", "doc/html/man3/SSL_CTX_set_info_callback.html", "doc/html/man3/SSL_CTX_set_keylog_callback.html", @@ -16871,6 +19494,7 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_min_proto_version.html", "doc/html/man3/SSL_CTX_set_mode.html", "doc/html/man3/SSL_CTX_set_msg_callback.html", + "doc/html/man3/SSL_CTX_set_new_pending_conn_cb.html", "doc/html/man3/SSL_CTX_set_num_tickets.html", "doc/html/man3/SSL_CTX_set_options.html", "doc/html/man3/SSL_CTX_set_psk_client_callback.html", @@ -16909,6 +19533,7 @@ our %unified_info = ( "doc/html/man3/SSL_SESSION_print.html", "doc/html/man3/SSL_SESSION_set1_id.html", "doc/html/man3/SSL_accept.html", + "doc/html/man3/SSL_accept_stream.html", "doc/html/man3/SSL_alert_type_string.html", "doc/html/man3/SSL_alloc_buffers.html", "doc/html/man3/SSL_check_chain.html", @@ -16918,59 +19543,90 @@ our %unified_info = ( "doc/html/man3/SSL_export_keying_material.html", "doc/html/man3/SSL_extension_supported.html", "doc/html/man3/SSL_free.html", + "doc/html/man3/SSL_get0_connection.html", + "doc/html/man3/SSL_get0_group_name.html", + "doc/html/man3/SSL_get0_peer_rpk.html", "doc/html/man3/SSL_get0_peer_scts.html", + "doc/html/man3/SSL_get1_builtin_sigalgs.html", "doc/html/man3/SSL_get_SSL_CTX.html", "doc/html/man3/SSL_get_all_async_fds.html", "doc/html/man3/SSL_get_certificate.html", "doc/html/man3/SSL_get_ciphers.html", "doc/html/man3/SSL_get_client_random.html", + "doc/html/man3/SSL_get_conn_close_info.html", "doc/html/man3/SSL_get_current_cipher.html", "doc/html/man3/SSL_get_default_timeout.html", "doc/html/man3/SSL_get_error.html", + "doc/html/man3/SSL_get_event_timeout.html", "doc/html/man3/SSL_get_extms_support.html", "doc/html/man3/SSL_get_fd.html", + "doc/html/man3/SSL_get_handshake_rtt.html", "doc/html/man3/SSL_get_peer_cert_chain.html", "doc/html/man3/SSL_get_peer_certificate.html", "doc/html/man3/SSL_get_peer_signature_nid.html", "doc/html/man3/SSL_get_peer_tmp_key.html", "doc/html/man3/SSL_get_psk_identity.html", "doc/html/man3/SSL_get_rbio.html", + "doc/html/man3/SSL_get_rpoll_descriptor.html", "doc/html/man3/SSL_get_session.html", "doc/html/man3/SSL_get_shared_sigalgs.html", + "doc/html/man3/SSL_get_stream_id.html", + "doc/html/man3/SSL_get_stream_read_state.html", + "doc/html/man3/SSL_get_value_uint.html", "doc/html/man3/SSL_get_verify_result.html", "doc/html/man3/SSL_get_version.html", "doc/html/man3/SSL_group_to_name.html", + "doc/html/man3/SSL_handle_events.html", "doc/html/man3/SSL_in_init.html", + "doc/html/man3/SSL_inject_net_dgram.html", "doc/html/man3/SSL_key_update.html", "doc/html/man3/SSL_library_init.html", "doc/html/man3/SSL_load_client_CA_file.html", "doc/html/man3/SSL_new.html", + "doc/html/man3/SSL_new_domain.html", + "doc/html/man3/SSL_new_listener.html", + "doc/html/man3/SSL_new_stream.html", "doc/html/man3/SSL_pending.html", + "doc/html/man3/SSL_poll.html", "doc/html/man3/SSL_read.html", "doc/html/man3/SSL_read_early_data.html", "doc/html/man3/SSL_rstate_string.html", "doc/html/man3/SSL_session_reused.html", "doc/html/man3/SSL_set1_host.html", + "doc/html/man3/SSL_set1_initial_peer_addr.html", + "doc/html/man3/SSL_set1_server_cert_type.html", "doc/html/man3/SSL_set_async_callback.html", "doc/html/man3/SSL_set_bio.html", + "doc/html/man3/SSL_set_blocking_mode.html", "doc/html/man3/SSL_set_connect_state.html", + "doc/html/man3/SSL_set_default_stream_mode.html", "doc/html/man3/SSL_set_fd.html", + "doc/html/man3/SSL_set_incoming_stream_policy.html", + "doc/html/man3/SSL_set_quic_tls_cbs.html", "doc/html/man3/SSL_set_retry_verify.html", "doc/html/man3/SSL_set_session.html", + "doc/html/man3/SSL_set_session_secret_cb.html", "doc/html/man3/SSL_set_shutdown.html", "doc/html/man3/SSL_set_verify_result.html", "doc/html/man3/SSL_shutdown.html", "doc/html/man3/SSL_state_string.html", + "doc/html/man3/SSL_stream_conclude.html", + "doc/html/man3/SSL_stream_reset.html", "doc/html/man3/SSL_want.html", "doc/html/man3/SSL_write.html", "doc/html/man3/TS_RESP_CTX_new.html", - "doc/html/man3/TS_VERIFY_CTX_set_certs.html", + "doc/html/man3/TS_VERIFY_CTX.html", "doc/html/man3/UI_STRING.html", "doc/html/man3/UI_UTIL_read_pw.html", "doc/html/man3/UI_create_method.html", "doc/html/man3/UI_new.html", "doc/html/man3/X509V3_get_d2i.html", "doc/html/man3/X509V3_set_ctx.html", + "doc/html/man3/X509_ACERT_add1_attr.html", + "doc/html/man3/X509_ACERT_add_attr_nconf.html", + "doc/html/man3/X509_ACERT_get0_holder_baseCertId.html", + "doc/html/man3/X509_ACERT_get_attr.html", + "doc/html/man3/X509_ACERT_print_ex.html", "doc/html/man3/X509_ALGOR_dup.html", "doc/html/man3/X509_ATTRIBUTE.html", "doc/html/man3/X509_CRL_get0_by_serial.html", @@ -16987,6 +19643,7 @@ our %unified_info = ( "doc/html/man3/X509_REQ_get_attr.html", "doc/html/man3/X509_REQ_get_extensions.html", "doc/html/man3/X509_SIG_get0.html", + "doc/html/man3/X509_STORE_CTX_get_by_subject.html", "doc/html/man3/X509_STORE_CTX_get_error.html", "doc/html/man3/X509_STORE_CTX_new.html", "doc/html/man3/X509_STORE_CTX_set_verify_cb.html", @@ -17009,6 +19666,7 @@ our %unified_info = ( "doc/html/man3/X509_get0_notBefore.html", "doc/html/man3/X509_get0_signature.html", "doc/html/man3/X509_get0_uids.html", + "doc/html/man3/X509_get_default_cert_file.html", "doc/html/man3/X509_get_extension_flags.html", "doc/html/man3/X509_get_pubkey.html", "doc/html/man3/X509_get_serialNumber.html", @@ -17054,12 +19712,15 @@ our %unified_info = ( "doc/html/man7/EVP_CIPHER-RC5.html", "doc/html/man7/EVP_CIPHER-SEED.html", "doc/html/man7/EVP_CIPHER-SM4.html", + "doc/html/man7/EVP_KDF-ARGON2.html", "doc/html/man7/EVP_KDF-HKDF.html", + "doc/html/man7/EVP_KDF-HMAC-DRBG.html", "doc/html/man7/EVP_KDF-KB.html", "doc/html/man7/EVP_KDF-KRB5KDF.html", "doc/html/man7/EVP_KDF-PBKDF1.html", "doc/html/man7/EVP_KDF-PBKDF2.html", "doc/html/man7/EVP_KDF-PKCS12KDF.html", + "doc/html/man7/EVP_KDF-PVKKDF.html", "doc/html/man7/EVP_KDF-SCRYPT.html", "doc/html/man7/EVP_KDF-SS.html", "doc/html/man7/EVP_KDF-SSHKDF.html", @@ -17068,7 +19729,10 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-X942-ASN1.html", "doc/html/man7/EVP_KDF-X942-CONCAT.html", "doc/html/man7/EVP_KDF-X963.html", + "doc/html/man7/EVP_KEM-EC.html", + "doc/html/man7/EVP_KEM-ML-KEM.html", "doc/html/man7/EVP_KEM-RSA.html", + "doc/html/man7/EVP_KEM-X25519.html", "doc/html/man7/EVP_KEYEXCH-DH.html", "doc/html/man7/EVP_KEYEXCH-ECDH.html", "doc/html/man7/EVP_KEYEXCH-X25519.html", @@ -17080,6 +19744,7 @@ our %unified_info = ( "doc/html/man7/EVP_MAC-Poly1305.html", "doc/html/man7/EVP_MAC-Siphash.html", "doc/html/man7/EVP_MD-BLAKE2.html", + "doc/html/man7/EVP_MD-KECCAK.html", "doc/html/man7/EVP_MD-MD2.html", "doc/html/man7/EVP_MD-MD4.html", "doc/html/man7/EVP_MD-MD5-SHA1.html", @@ -17099,12 +19764,17 @@ our %unified_info = ( "doc/html/man7/EVP_PKEY-EC.html", "doc/html/man7/EVP_PKEY-FFC.html", "doc/html/man7/EVP_PKEY-HMAC.html", + "doc/html/man7/EVP_PKEY-ML-DSA.html", + "doc/html/man7/EVP_PKEY-ML-KEM.html", "doc/html/man7/EVP_PKEY-RSA.html", + "doc/html/man7/EVP_PKEY-SLH-DSA.html", "doc/html/man7/EVP_PKEY-SM2.html", "doc/html/man7/EVP_PKEY-X25519.html", + "doc/html/man7/EVP_RAND-CRNG-TEST.html", "doc/html/man7/EVP_RAND-CTR-DRBG.html", "doc/html/man7/EVP_RAND-HASH-DRBG.html", "doc/html/man7/EVP_RAND-HMAC-DRBG.html", + "doc/html/man7/EVP_RAND-JITTER.html", "doc/html/man7/EVP_RAND-SEED-SRC.html", "doc/html/man7/EVP_RAND-TEST-RAND.html", "doc/html/man7/EVP_RAND.html", @@ -17112,17 +19782,19 @@ our %unified_info = ( "doc/html/man7/EVP_SIGNATURE-ECDSA.html", "doc/html/man7/EVP_SIGNATURE-ED25519.html", "doc/html/man7/EVP_SIGNATURE-HMAC.html", + "doc/html/man7/EVP_SIGNATURE-ML-DSA.html", "doc/html/man7/EVP_SIGNATURE-RSA.html", + "doc/html/man7/EVP_SIGNATURE-SLH-DSA.html", "doc/html/man7/OSSL_PROVIDER-FIPS.html", "doc/html/man7/OSSL_PROVIDER-base.html", "doc/html/man7/OSSL_PROVIDER-default.html", "doc/html/man7/OSSL_PROVIDER-legacy.html", "doc/html/man7/OSSL_PROVIDER-null.html", + "doc/html/man7/OSSL_STORE-winstore.html", "doc/html/man7/RAND.html", "doc/html/man7/RSA-PSS.html", "doc/html/man7/X25519.html", "doc/html/man7/bio.html", - "doc/html/man7/crypto.html", "doc/html/man7/ct.html", "doc/html/man7/des_modes.html", "doc/html/man7/evp.html", @@ -17133,14 +19805,31 @@ our %unified_info = ( "doc/html/man7/life_cycle-mac.html", "doc/html/man7/life_cycle-pkey.html", "doc/html/man7/life_cycle-rand.html", - "doc/html/man7/migration_guide.html", "doc/html/man7/openssl-core.h.html", "doc/html/man7/openssl-core_dispatch.h.html", "doc/html/man7/openssl-core_names.h.html", "doc/html/man7/openssl-env.html", "doc/html/man7/openssl-glossary.html", + "doc/html/man7/openssl-qlog.html", + "doc/html/man7/openssl-quic-concurrency.html", + "doc/html/man7/openssl-quic.html", "doc/html/man7/openssl-threads.html", "doc/html/man7/openssl_user_macros.html", + "doc/html/man7/ossl-guide-introduction.html", + "doc/html/man7/ossl-guide-libcrypto-introduction.html", + "doc/html/man7/ossl-guide-libraries-introduction.html", + "doc/html/man7/ossl-guide-libssl-introduction.html", + "doc/html/man7/ossl-guide-migration.html", + "doc/html/man7/ossl-guide-quic-client-block.html", + "doc/html/man7/ossl-guide-quic-client-non-block.html", + "doc/html/man7/ossl-guide-quic-introduction.html", + "doc/html/man7/ossl-guide-quic-multi-stream.html", + "doc/html/man7/ossl-guide-quic-server-block.html", + "doc/html/man7/ossl-guide-quic-server-non-block.html", + "doc/html/man7/ossl-guide-tls-client-block.html", + "doc/html/man7/ossl-guide-tls-client-non-block.html", + "doc/html/man7/ossl-guide-tls-introduction.html", + "doc/html/man7/ossl-guide-tls-server-block.html", "doc/html/man7/ossl_store-file.html", "doc/html/man7/ossl_store.html", "doc/html/man7/passphrase-encoding.html", @@ -17159,10 +19848,10 @@ our %unified_info = ( "doc/html/man7/provider-object.html", "doc/html/man7/provider-rand.html", "doc/html/man7/provider-signature.html", + "doc/html/man7/provider-skeymgmt.html", "doc/html/man7/provider-storemgmt.html", "doc/html/man7/provider.html", "doc/html/man7/proxy-certificates.html", - "doc/html/man7/ssl.html", "doc/html/man7/x509.html" ] }, @@ -17177,12 +19866,21 @@ our %unified_info = ( ] }, "includes" => { + "OpenSSLConfig.cmake" => [ + "." + ], + "OpenSSLConfigVersion.cmake" => [ + "." + ], "apps/asn1parse.o" => [ "apps" ], "apps/ca.o" => [ "apps" ], + "apps/ca_internals_test-bin-ca.o" => [ + "apps" + ], "apps/ciphers.o" => [ "apps" ], @@ -17409,6 +20107,9 @@ our %unified_info = ( "apps/openssl-bin-sess_id.o" => [ "apps" ], + "apps/openssl-bin-skeyutl.o" => [ + "apps" + ], "apps/openssl-bin-smime.o" => [ "apps" ], @@ -17496,6 +20197,9 @@ our %unified_info = ( "apps/sess_id.o" => [ "apps" ], + "apps/skeyutl.o" => [ + "apps" + ], "apps/smime.o" => [ "apps" ], @@ -17547,6 +20251,12 @@ our %unified_info = ( "crypto/aes/bsaes-armv7.o" => [ "crypto" ], + "crypto/aes/vpaes-armv8.o" => [ + "crypto" + ], + "crypto/aes/vpaes-loongarch64.o" => [ + "crypto" + ], "crypto/arm64cpuid.o" => [ "crypto" ], @@ -17598,9 +20308,15 @@ our %unified_info = ( "crypto/chacha/chacha-armv4.o" => [ "crypto" ], + "crypto/chacha/chacha-armv8-sve.o" => [ + "crypto" + ], "crypto/chacha/chacha-armv8.o" => [ "crypto" ], + "crypto/chacha/chacha-loongarch64.o" => [ + "crypto" + ], "crypto/chacha/chacha-s390x.o" => [ "crypto" ], @@ -17625,15 +20341,24 @@ our %unified_info = ( "crypto/ec/ecp_s390x_nistp.o" => [ "crypto" ], + "crypto/ec/ecp_sm2p256-armv8.o" => [ + "crypto" + ], + "crypto/ec/ecx_key.o" => [ + "crypto" + ], "crypto/ec/ecx_meth.o" => [ "crypto" ], - "crypto/ec/ecx_s390x.o" => [ + "crypto/ec/libcrypto-lib-ecx_key.o" => [ "crypto" ], "crypto/ec/libcrypto-lib-ecx_meth.o" => [ "crypto" ], + "crypto/ec/libfips-lib-ecx_key.o" => [ + "crypto" + ], "crypto/evp/e_aes.o" => [ "crypto", "crypto/modes" @@ -17705,9 +20430,18 @@ our %unified_info = ( "crypto/libfips-lib-cpuid.o" => [ "." ], + "crypto/md5/md5-aarch64.o" => [ + "crypto" + ], + "crypto/md5/md5-loongarch64.o" => [ + "crypto" + ], "crypto/md5/md5-sparcv9.o" => [ "crypto" ], + "crypto/modes/aes-gcm-armv8-unroll8_64.o" => [ + "crypto" + ], "crypto/modes/aes-gcm-armv8_64.o" => [ "crypto" ], @@ -17732,6 +20466,9 @@ our %unified_info = ( "crypto/modes/libfips-lib-gcm128.o" => [ "crypto" ], + "crypto/params_idx.c" => [ + "util/perl" + ], "crypto/poly1305/poly1305-armv4.o" => [ "crypto" ], @@ -17753,6 +20490,9 @@ our %unified_info = ( "crypto/sha/keccak1600-armv4.o" => [ "crypto" ], + "crypto/sha/keccak1600-armv8.o" => [ + "crypto" + ], "crypto/sha/sha1-armv4-large.o" => [ "crypto" ], @@ -17798,6 +20538,18 @@ our %unified_info = ( "crypto/sha/sha512-sparcv9.o" => [ "crypto" ], + "crypto/sm3/sm3-armv8.o" => [ + "crypto" + ], + "crypto/sm4/sm4-armv8.o" => [ + "crypto" + ], + "crypto/sm4/vpsm4-armv8.o" => [ + "crypto" + ], + "crypto/sm4/vpsm4_ex-armv8.o" => [ + "crypto" + ], "doc/man1/openssl-asn1parse.pod" => [ "doc" ], @@ -17930,6 +20682,9 @@ our %unified_info = ( "doc/man1/openssl-sess_id.pod" => [ "doc" ], + "doc/man1/openssl-skeyutl.pod" => [ + "doc" + ], "doc/man1/openssl-smime.pod" => [ "doc" ], @@ -17957,6 +20712,24 @@ our %unified_info = ( "doc/man1/openssl-x509.pod" => [ "doc" ], + "exporters/OpenSSLConfig.cmake" => [ + "." + ], + "exporters/OpenSSLConfigVersion.cmake" => [ + "." + ], + "exporters/libcrypto.pc" => [ + "." + ], + "exporters/libssl.pc" => [ + "." + ], + "exporters/openssl.pc" => [ + "." + ], + "fuzz/acert-test" => [ + "include" + ], "fuzz/asn1-test" => [ "include" ], @@ -17987,12 +20760,69 @@ our %unified_info = ( "fuzz/ct-test" => [ "include" ], + "fuzz/decoder-test" => [ + "include" + ], + "fuzz/dtlsclient-test" => [ + "include" + ], + "fuzz/dtlsserver-test" => [ + "include" + ], + "fuzz/hashtable-test" => [ + "include" + ], + "fuzz/ml-dsa-test" => [ + "include" + ], + "fuzz/ml-kem-test" => [ + "include" + ], + "fuzz/pem-test" => [ + "include" + ], + "fuzz/provider-test" => [ + "include" + ], + "fuzz/punycode-test" => [ + "include" + ], + "fuzz/quic-client-test" => [ + "include" + ], + "fuzz/quic-lcidm-test" => [ + "include" + ], + "fuzz/quic-rcidm-test" => [ + "include" + ], + "fuzz/quic-server-test" => [ + "include" + ], + "fuzz/quic-srtm-test" => [ + "include" + ], "fuzz/server-test" => [ "include" ], + "fuzz/slh-dsa-test" => [ + "include" + ], + "fuzz/smime-test" => [ + "include" + ], + "fuzz/v3name-test" => [ + "include" + ], "fuzz/x509-test" => [ "include" ], + "include/internal/param_names.h" => [ + "util/perl" + ], + "include/openssl/core_names.h" => [ + "util/perl" + ], "libcrypto" => [ ".", "include", @@ -18003,6 +20833,9 @@ our %unified_info = ( ".", "util/perl/OpenSSL" ], + "libcrypto.pc" => [ + "." + ], "libcrypto.rc" => [ "." ], @@ -18014,9 +20847,15 @@ our %unified_info = ( ".", "util/perl/OpenSSL" ], + "libssl.pc" => [ + "." + ], "libssl.rc" => [ "." ], + "openssl.pc" => [ + "." + ], "providers/common/der/der_digests_gen.c" => [ "providers/common/der" ], @@ -18056,6 +20895,15 @@ our %unified_info = ( "providers/common/der/der_ecx_key.o" => [ "providers/common/include/prov" ], + "providers/common/der/der_ml_dsa_gen.c" => [ + "providers/common/der" + ], + "providers/common/der/der_ml_dsa_gen.o" => [ + "providers/common/include/prov" + ], + "providers/common/der/der_ml_dsa_key.o" => [ + "providers/common/include/prov" + ], "providers/common/der/der_rsa_gen.c" => [ "providers/common/der" ], @@ -18068,6 +20916,15 @@ our %unified_info = ( "providers/common/der/der_rsa_sig.o" => [ "providers/common/include/prov" ], + "providers/common/der/der_slh_dsa_gen.c" => [ + "providers/common/der" + ], + "providers/common/der/der_slh_dsa_gen.o" => [ + "providers/common/include/prov" + ], + "providers/common/der/der_slh_dsa_key.o" => [ + "providers/common/include/prov" + ], "providers/common/der/der_sm2_gen.c" => [ "providers/common/der" ], @@ -18113,12 +20970,24 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ecx_key.o" => [ "providers/common/include/prov" ], + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o" => [ + "providers/common/include/prov" + ], + "providers/common/der/libcommon-lib-der_ml_dsa_key.o" => [ + "providers/common/include/prov" + ], "providers/common/der/libcommon-lib-der_rsa_gen.o" => [ "providers/common/include/prov" ], "providers/common/der/libcommon-lib-der_rsa_key.o" => [ "providers/common/include/prov" ], + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o" => [ + "providers/common/include/prov" + ], + "providers/common/der/libcommon-lib-der_slh_dsa_key.o" => [ + "providers/common/include/prov" + ], "providers/common/der/libcommon-lib-der_wrap_gen.o" => [ "providers/common/include/prov" ], @@ -18149,9 +21018,15 @@ our %unified_info = ( "providers/common/include/prov/der_ecx.h" => [ "providers/common/der" ], + "providers/common/include/prov/der_ml_dsa.h" => [ + "providers/common/der" + ], "providers/common/include/prov/der_rsa.h" => [ "providers/common/der" ], + "providers/common/include/prov/der_slh_dsa.h" => [ + "providers/common/der" + ], "providers/common/include/prov/der_sm2.h" => [ "providers/common/der" ], @@ -18194,9 +21069,15 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-eddsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/libdefault-lib-rsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/libdefault-lib-sm2_sig.o" => [ "providers/common/include/prov" ], @@ -18209,12 +21090,24 @@ our %unified_info = ( "providers/implementations/signature/libfips-lib-eddsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/libfips-lib-rsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o" => [ + "providers/common/include/prov" + ], + "providers/implementations/signature/ml_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/rsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/slh_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/sm2_sig.o" => [ "providers/common/include/prov" ], @@ -18227,28 +21120,39 @@ our %unified_info = ( "crypto", "include", "providers/implementations/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" ], "providers/libdefault.a" => [ ".", "crypto", "include", "providers/implementations/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" ], "providers/libfips.a" => [ ".", "crypto", "include", "providers/implementations/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" ], "providers/liblegacy.a" => [ ".", "crypto", "include", "providers/implementations/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" + ], + "providers/libtemplate.a" => [ + "crypto", + "include", + "providers/implementations/include", + "providers/common/include", + "providers/fips/include" ], "test/aborttest" => [ "include", @@ -18317,6 +21221,14 @@ our %unified_info = ( "include", "apps/include" ], + "test/bio_addr_test" => [ + "include", + "apps/include" + ], + "test/bio_base64_test" => [ + "include", + "apps/include" + ], "test/bio_callback_test" => [ "include", "apps/include" @@ -18325,11 +21237,20 @@ our %unified_info = ( "include", "apps/include" ], + "test/bio_dgram_test" => [ + "include", + "apps/include", + "." + ], "test/bio_enc_test" => [ "include", "apps/include" ], - "test/bio_memleak_test" => [ + "test/bio_memleak_test" => [ + "include", + "apps/include" + ], + "test/bio_meth_test" => [ "include", "apps/include" ], @@ -18346,6 +21267,11 @@ our %unified_info = ( "include", "apps/include" ], + "test/bio_tfo_test" => [ + "include", + "apps/include", + "." + ], "test/bioprinttest" => [ "include", "apps/include" @@ -18360,6 +21286,9 @@ our %unified_info = ( "include", "apps/include" ], + "test/build_wincrypt_test" => [ + "include" + ], "test/buildtest_c_aes" => [ "include" ], @@ -18375,6 +21304,9 @@ our %unified_info = ( "test/buildtest_c_buffer" => [ "include" ], + "test/buildtest_c_byteorder" => [ + "include" + ], "test/buildtest_c_camellia" => [ "include" ], @@ -18399,9 +21331,6 @@ our %unified_info = ( "test/buildtest_c_core_dispatch" => [ "include" ], - "test/buildtest_c_core_names" => [ - "include" - ], "test/buildtest_c_core_object" => [ "include" ], @@ -18426,6 +21355,9 @@ our %unified_info = ( "test/buildtest_c_e_os2" => [ "include" ], + "test/buildtest_c_e_ostime" => [ + "include" + ], "test/buildtest_c_ebcdic" => [ "include" ], @@ -18453,12 +21385,18 @@ our %unified_info = ( "test/buildtest_c_hmac" => [ "include" ], + "test/buildtest_c_hpke" => [ + "include" + ], "test/buildtest_c_http" => [ "include" ], "test/buildtest_c_idea" => [ "include" ], + "test/buildtest_c_indicator" => [ + "include" + ], "test/buildtest_c_kdf" => [ "include" ], @@ -18474,6 +21412,9 @@ our %unified_info = ( "test/buildtest_c_mdc2" => [ "include" ], + "test/buildtest_c_ml_kem" => [ + "include" + ], "test/buildtest_c_modes" => [ "include" ], @@ -18504,6 +21445,9 @@ our %unified_info = ( "test/buildtest_c_provider" => [ "include" ], + "test/buildtest_c_quic" => [ + "include" + ], "test/buildtest_c_rand" => [ "include" ], @@ -18546,6 +21490,9 @@ our %unified_info = ( "test/buildtest_c_symhacks" => [ "include" ], + "test/buildtest_c_thread" => [ + "include" + ], "test/buildtest_c_tls1" => [ "include" ], @@ -18561,10 +21508,24 @@ our %unified_info = ( "test/buildtest_c_whrlpool" => [ "include" ], + "test/byteorder_test" => [ + "include", + "apps/include" + ], + "test/ca_internals_test" => [ + ".", + "include", + "apps/include" + ], "test/casttest" => [ "include", "apps/include" ], + "test/cert_comp_test" => [ + "include", + "apps/include", + "." + ], "test/chacha_internal_test" => [ ".", "include", @@ -18688,6 +21649,11 @@ our %unified_info = ( "include", "apps/include" ], + "test/decoder_propq_test" => [ + ".", + "include", + "apps/include" + ], "test/defltfips_test" => [ "include", "apps/include" @@ -18703,7 +21669,8 @@ our %unified_info = ( "test/drbgtest" => [ "include", "apps/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" ], "test/dsa_no_digest_size_test" => [ "include", @@ -18746,7 +21713,9 @@ our %unified_info = ( "test/endecode_test" => [ ".", "include", - "apps/include" + "apps/include", + "providers/common/include", + "providers/implementations/include" ], "test/endecoder_legacy_test" => [ ".", @@ -18791,6 +21760,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/evp_pkey_dhkem_test" => [ + "include", + "apps/include" + ], "test/evp_pkey_dparams_test" => [ "include", "apps/include" @@ -18799,10 +21772,18 @@ our %unified_info = ( "include", "apps/include" ], + "test/evp_skey_test" => [ + "include", + "apps/include" + ], "test/evp_test" => [ "include", "apps/include" ], + "test/evp_xof_test" => [ + "include", + "apps/include" + ], "test/exdatatest" => [ "include", "apps/include" @@ -18903,22 +21884,62 @@ our %unified_info = ( ".", "include" ], + "test/helpers/json_test-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/helpers/pkcs12.o" => [ ".", "include" ], + "test/helpers/pkcs12_api_test-bin-pkcs12.o" => [ + ".", + "include" + ], "test/helpers/pkcs12_format_test-bin-pkcs12.o" => [ ".", "include" ], + "test/helpers/quic_multistream_test-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quic_newcid_test-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quic_radix_test-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quic_srt_gen_test-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quicapitest-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quicfaultstest-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/helpers/recordlentest-bin-ssltestlib.o" => [ ".", "include" ], + "test/helpers/rpktest-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/helpers/servername_test-bin-ssltestlib.o" => [ ".", "include" ], + "test/helpers/ssl_handshake_rtt_test-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/helpers/ssl_test-bin-handshake.o" => [ ".", "include" @@ -18952,6 +21973,10 @@ our %unified_info = ( ".", "include" ], + "test/helpers/tls13groupselection_test-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/hexstr_test" => [ ".", "include", @@ -18961,6 +21986,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/hpke_test" => [ + "include", + "apps/include" + ], "test/http_test" => [ "include", "apps/include" @@ -18973,6 +22002,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/json_test" => [ + "include", + "apps/include" + ], "test/keymgmt_internal_test" => [ ".", "include", @@ -18987,6 +22020,10 @@ our %unified_info = ( "apps/include", "." ], + "test/list_test" => [ + "include", + "apps/include" + ], "test/localetest" => [ "include", "apps/include" @@ -19000,10 +22037,27 @@ our %unified_info = ( "include", "apps/include" ], + "test/membio_test" => [ + "include", + "apps/include", + "." + ], "test/memleaktest" => [ "include", "apps/include" ], + "test/ml_dsa_test" => [ + "include", + "apps/include" + ], + "test/ml_kem_evp_extra_test" => [ + "include", + "apps/include" + ], + "test/ml_kem_internal_test" => [ + "include", + "apps/include" + ], "test/modes_internal_test" => [ ".", "include", @@ -19038,6 +22092,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/pairwise_fail_test" => [ + "include", + "apps/include" + ], "test/param_build_test" => [ "include", "apps/include" @@ -19071,6 +22129,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/pkcs12_api_test" => [ + "include", + "apps/include" + ], "test/pkcs12_format_test" => [ "include", "apps/include" @@ -19092,6 +22154,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/priority_queue_test" => [ + "include", + "apps/include" + ], "test/property_test" => [ ".", "include", @@ -19105,6 +22171,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/provider_default_search_path_test" => [ + "include", + "apps/include" + ], "test/provider_fallback_test" => [ "include", "apps/include" @@ -19131,6 +22201,97 @@ our %unified_info = ( "include", "apps/include" ], + "test/quic_ackm_test" => [ + "include", + "apps/include" + ], + "test/quic_cc_test" => [ + "include", + "apps/include" + ], + "test/quic_cfq_test" => [ + "include", + "apps/include" + ], + "test/quic_client_test" => [ + "include", + "apps/include" + ], + "test/quic_fc_test" => [ + "include", + "apps/include" + ], + "test/quic_fifd_test" => [ + "include", + "apps/include" + ], + "test/quic_lcidm_test" => [ + "include", + "apps/include" + ], + "test/quic_multistream_test" => [ + "include", + "apps/include" + ], + "test/quic_newcid_test" => [ + "include", + "apps/include", + "." + ], + "test/quic_qlog_test" => [ + "include", + "apps/include" + ], + "test/quic_radix_test" => [ + "include", + "apps/include" + ], + "test/quic_rcidm_test" => [ + "include", + "apps/include" + ], + "test/quic_record_test" => [ + "include", + "apps/include" + ], + "test/quic_srt_gen_test" => [ + "include", + "apps/include", + "." + ], + "test/quic_srtm_test" => [ + "include", + "apps/include" + ], + "test/quic_stream_test" => [ + "include", + "apps/include" + ], + "test/quic_tserver_test" => [ + "include", + "apps/include" + ], + "test/quic_txp_test" => [ + "include", + "apps/include" + ], + "test/quic_txpim_test" => [ + "include", + "apps/include" + ], + "test/quic_wire_test" => [ + "include", + "apps/include" + ], + "test/quicapitest" => [ + "include", + "apps/include" + ], + "test/quicfaultstest" => [ + "include", + "apps/include", + "." + ], "test/rand_status_test" => [ "include", "apps/include" @@ -19151,14 +22312,20 @@ our %unified_info = ( "include", "apps/include" ], - "test/rdrand_sanitytest" => [ + "test/rdcpu_sanitytest" => [ "include", - "apps/include" + "apps/include", + "crypto" ], "test/recordlentest" => [ "include", "apps/include" ], + "test/rpktest" => [ + "include", + "apps/include", + "." + ], "test/rsa_complex" => [ "include", "apps/include" @@ -19177,6 +22344,15 @@ our %unified_info = ( "include", "apps/include" ], + "test/rsa_x931_test" => [ + ".", + "include", + "apps/include" + ], + "test/safe_math_test" => [ + "include", + "apps/include" + ], "test/sanitytest" => [ "include", "apps/include" @@ -19198,6 +22374,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/slh_dsa_test" => [ + "include", + "apps/include" + ], "test/sm2_internal_test" => [ "include", "apps/include" @@ -19228,6 +22408,11 @@ our %unified_info = ( "include", "apps/include" ], + "test/ssl_handshake_rtt_test" => [ + "include", + "apps/include", + "." + ], "test/ssl_old_test" => [ ".", "include", @@ -19244,6 +22429,7 @@ our %unified_info = ( "test/sslapitest" => [ "include", "apps/include", + "providers/common/include", "." ], "test/sslbuffertest" => [ @@ -19258,6 +22444,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/strtoultest" => [ + "include", + "apps/include" + ], "test/sysdefaulttest" => [ "include", "apps/include" @@ -19266,7 +22456,13 @@ our %unified_info = ( "include", "apps/include" ], + "test/threadpool_test" => [ + ".", + "include", + "apps/include" + ], "test/threadstest" => [ + ".", "include", "apps/include" ], @@ -19278,6 +22474,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/time_test" => [ + "include", + "apps/include" + ], "test/tls13ccstest" => [ "include", "apps/include" @@ -19287,6 +22487,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/tls13groupselection_test" => [ + "include", + "apps/include" + ], "test/trace_api_test" => [ ".", "include", @@ -19325,6 +22529,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/x509_acert_test" => [ + "include", + "apps/include" + ], "test/x509_check_cert_pkey_test" => [ "include", "apps/include" @@ -19338,6 +22546,18 @@ our %unified_info = ( "include", "apps/include" ], + "test/x509_load_cert_file_test" => [ + "include", + "apps/include" + ], + "test/x509_req_test" => [ + "include", + "apps/include" + ], + "test/x509_test" => [ + "include", + "apps/include" + ], "test/x509_time_test" => [ "include", "apps/include" @@ -19359,6 +22579,7 @@ our %unified_info = ( "providers/libdefault.a", "providers/libfips.a", "providers/liblegacy.a", + "providers/libtemplate.a", "test/libtestutil.a" ], "mandocs" => { @@ -19411,6 +22632,7 @@ our %unified_info = ( "doc/man/man1/openssl-s_server.1", "doc/man/man1/openssl-s_time.1", "doc/man/man1/openssl-sess_id.1", + "doc/man/man1/openssl-skeyutl.1", "doc/man/man1/openssl-smime.1", "doc/man/man1/openssl-speed.1", "doc/man/man1/openssl-spkac.1", @@ -19460,6 +22682,7 @@ our %unified_info = ( "doc/man/man3/BIO_find_type.3", "doc/man/man3/BIO_get_data.3", "doc/man/man3/BIO_get_ex_new_index.3", + "doc/man/man3/BIO_get_rpoll_descriptor.3", "doc/man/man3/BIO_meth_new.3", "doc/man/man3/BIO_new.3", "doc/man/man3/BIO_new_CMS.3", @@ -19472,11 +22695,13 @@ our %unified_info = ( "doc/man/man3/BIO_s_connect.3", "doc/man/man3/BIO_s_core.3", "doc/man/man3/BIO_s_datagram.3", + "doc/man/man3/BIO_s_dgram_pair.3", "doc/man/man3/BIO_s_fd.3", "doc/man/man3/BIO_s_file.3", "doc/man/man3/BIO_s_mem.3", "doc/man/man3/BIO_s_null.3", "doc/man/man3/BIO_s_socket.3", + "doc/man/man3/BIO_sendmmsg.3", "doc/man/man3/BIO_set_callback.3", "doc/man/man3/BIO_should_retry.3", "doc/man/man3/BIO_socket_wait.3", @@ -19501,6 +22726,7 @@ our %unified_info = ( "doc/man/man3/BN_swap.3", "doc/man/man3/BN_zero.3", "doc/man/man3/BUF_MEM_new.3", + "doc/man/man3/CMAC_CTX.3", "doc/man/man3/CMS_EncryptedData_decrypt.3", "doc/man/man3/CMS_EncryptedData_encrypt.3", "doc/man/man3/CMS_EnvelopedData_create.3", @@ -19523,6 +22749,7 @@ our %unified_info = ( "doc/man/man3/CMS_uncompress.3", "doc/man/man3/CMS_verify.3", "doc/man/man3/CMS_verify_receipt.3", + "doc/man/man3/COMP_CTX_new.3", "doc/man/man3/CONF_modules_free.3", "doc/man/man3/CONF_modules_load_file.3", "doc/man/man3/CRYPTO_THREAD_run_once.3", @@ -19556,6 +22783,8 @@ our %unified_info = ( "doc/man/man3/DSA_size.3", "doc/man/man3/DTLS_get_data_mtu.3", "doc/man/man3/DTLS_set_timer_cb.3", + "doc/man/man3/DTLSv1_get_timeout.3", + "doc/man/man3/DTLSv1_handle_timeout.3", "doc/man/man3/DTLSv1_listen.3", "doc/man/man3/ECDSA_SIG_new.3", "doc/man/man3/ECDSA_sign.3", @@ -19602,6 +22831,7 @@ our %unified_info = ( "doc/man/man3/EVP_PKEY_CTX_ctrl.3", "doc/man/man3/EVP_PKEY_CTX_get0_libctx.3", "doc/man/man3/EVP_PKEY_CTX_get0_pkey.3", + "doc/man/man3/EVP_PKEY_CTX_get_algor.3", "doc/man/man3/EVP_PKEY_CTX_new.3", "doc/man/man3/EVP_PKEY_CTX_set1_pbe_pass.3", "doc/man/man3/EVP_PKEY_CTX_set_hkdf_md.3", @@ -19641,6 +22871,8 @@ our %unified_info = ( "doc/man/man3/EVP_PKEY_verify_recover.3", "doc/man/man3/EVP_RAND.3", "doc/man/man3/EVP_SIGNATURE.3", + "doc/man/man3/EVP_SKEY.3", + "doc/man/man3/EVP_SKEYMGMT.3", "doc/man/man3/EVP_SealInit.3", "doc/man/man3/EVP_SignInit.3", "doc/man/man3/EVP_VerifyInit.3", @@ -19670,6 +22902,7 @@ our %unified_info = ( "doc/man/man3/EVP_sm3.3", "doc/man/man3/EVP_sm4_cbc.3", "doc/man/man3/EVP_whirlpool.3", + "doc/man/man3/GENERAL_NAME.3", "doc/man/man3/HMAC.3", "doc/man/man3/MD5.3", "doc/man/man3/MDC2_Init.3", @@ -19694,14 +22927,18 @@ our %unified_info = ( "doc/man/man3/OPENSSL_init_ssl.3", "doc/man/man3/OPENSSL_instrument_bus.3", "doc/man/man3/OPENSSL_load_builtin_modules.3", + "doc/man/man3/OPENSSL_load_u16_le.3", "doc/man/man3/OPENSSL_malloc.3", + "doc/man/man3/OPENSSL_riscvcap.3", "doc/man/man3/OPENSSL_s390xcap.3", "doc/man/man3/OPENSSL_secure_malloc.3", "doc/man/man3/OPENSSL_strcasecmp.3", "doc/man/man3/OSSL_ALGORITHM.3", "doc/man/man3/OSSL_CALLBACK.3", + "doc/man/man3/OSSL_CMP_ATAV_set0.3", "doc/man/man3/OSSL_CMP_CTX_new.3", "doc/man/man3/OSSL_CMP_HDR_get0_transactionID.3", + "doc/man/man3/OSSL_CMP_ITAV_new_caCerts.3", "doc/man/man3/OSSL_CMP_ITAV_set0.3", "doc/man/man3/OSSL_CMP_MSG_get0_header.3", "doc/man/man3/OSSL_CMP_MSG_http_perform.3", @@ -19725,18 +22962,27 @@ our %unified_info = ( "doc/man/man3/OSSL_ENCODER_CTX.3", "doc/man/man3/OSSL_ENCODER_CTX_new_for_pkey.3", "doc/man/man3/OSSL_ENCODER_to_bio.3", + "doc/man/man3/OSSL_ERR_STATE_save.3", "doc/man/man3/OSSL_ESS_check_signing_certs.3", + "doc/man/man3/OSSL_GENERAL_NAMES_print.3", + "doc/man/man3/OSSL_HPKE_CTX_new.3", "doc/man/man3/OSSL_HTTP_REQ_CTX.3", "doc/man/man3/OSSL_HTTP_parse_url.3", "doc/man/man3/OSSL_HTTP_transfer.3", + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX.3", + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX_print.3", + "doc/man/man3/OSSL_INDICATOR_set_callback.3", "doc/man/man3/OSSL_ITEM.3", "doc/man/man3/OSSL_LIB_CTX.3", + "doc/man/man3/OSSL_LIB_CTX_set_conf_diagnostics.3", "doc/man/man3/OSSL_PARAM.3", "doc/man/man3/OSSL_PARAM_BLD.3", "doc/man/man3/OSSL_PARAM_allocate_from_text.3", "doc/man/man3/OSSL_PARAM_dup.3", "doc/man/man3/OSSL_PARAM_int.3", + "doc/man/man3/OSSL_PARAM_print_to_bio.3", "doc/man/man3/OSSL_PROVIDER.3", + "doc/man/man3/OSSL_QUIC_client_method.3", "doc/man/man3/OSSL_SELF_TEST_new.3", "doc/man/man3/OSSL_SELF_TEST_set_callback.3", "doc/man/man3/OSSL_STORE_INFO.3", @@ -19745,11 +22991,13 @@ our %unified_info = ( "doc/man/man3/OSSL_STORE_attach.3", "doc/man/man3/OSSL_STORE_expect.3", "doc/man/man3/OSSL_STORE_open.3", + "doc/man/man3/OSSL_sleep.3", "doc/man/man3/OSSL_trace_enabled.3", "doc/man/man3/OSSL_trace_get_category_num.3", "doc/man/man3/OSSL_trace_set_channel.3", "doc/man/man3/OpenSSL_add_all_algorithms.3", "doc/man/man3/OpenSSL_version.3", + "doc/man/man3/PBMAC1_get1_pbkdf2_param.3", "doc/man/man3/PEM_X509_INFO_read_bio_ex.3", "doc/man/man3/PEM_bytes_read_bio.3", "doc/man/man3/PEM_read.3", @@ -19762,6 +23010,7 @@ our %unified_info = ( "doc/man/man3/PKCS12_SAFEBAG_create_cert.3", "doc/man/man3/PKCS12_SAFEBAG_get0_attrs.3", "doc/man/man3/PKCS12_SAFEBAG_get1_cert.3", + "doc/man/man3/PKCS12_SAFEBAG_set0_attrs.3", "doc/man/man3/PKCS12_add1_attr_by_NID.3", "doc/man/man3/PKCS12_add_CSPName_asc.3", "doc/man/man3/PKCS12_add_cert.3", @@ -19853,6 +23102,7 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_sess_set_get_cb.3", "doc/man/man3/SSL_CTX_sessions.3", "doc/man/man3/SSL_CTX_set0_CA_list.3", + "doc/man/man3/SSL_CTX_set1_cert_comp_preference.3", "doc/man/man3/SSL_CTX_set1_curves.3", "doc/man/man3/SSL_CTX_set1_sigalgs.3", "doc/man/man3/SSL_CTX_set1_verify_cert_store.3", @@ -19866,6 +23116,7 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_ct_validation_callback.3", "doc/man/man3/SSL_CTX_set_ctlog_list_file.3", "doc/man/man3/SSL_CTX_set_default_passwd_cb.3", + "doc/man/man3/SSL_CTX_set_domain_flags.3", "doc/man/man3/SSL_CTX_set_generate_session_id.3", "doc/man/man3/SSL_CTX_set_info_callback.3", "doc/man/man3/SSL_CTX_set_keylog_callback.3", @@ -19873,6 +23124,7 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_min_proto_version.3", "doc/man/man3/SSL_CTX_set_mode.3", "doc/man/man3/SSL_CTX_set_msg_callback.3", + "doc/man/man3/SSL_CTX_set_new_pending_conn_cb.3", "doc/man/man3/SSL_CTX_set_num_tickets.3", "doc/man/man3/SSL_CTX_set_options.3", "doc/man/man3/SSL_CTX_set_psk_client_callback.3", @@ -19911,6 +23163,7 @@ our %unified_info = ( "doc/man/man3/SSL_SESSION_print.3", "doc/man/man3/SSL_SESSION_set1_id.3", "doc/man/man3/SSL_accept.3", + "doc/man/man3/SSL_accept_stream.3", "doc/man/man3/SSL_alert_type_string.3", "doc/man/man3/SSL_alloc_buffers.3", "doc/man/man3/SSL_check_chain.3", @@ -19920,59 +23173,90 @@ our %unified_info = ( "doc/man/man3/SSL_export_keying_material.3", "doc/man/man3/SSL_extension_supported.3", "doc/man/man3/SSL_free.3", + "doc/man/man3/SSL_get0_connection.3", + "doc/man/man3/SSL_get0_group_name.3", + "doc/man/man3/SSL_get0_peer_rpk.3", "doc/man/man3/SSL_get0_peer_scts.3", + "doc/man/man3/SSL_get1_builtin_sigalgs.3", "doc/man/man3/SSL_get_SSL_CTX.3", "doc/man/man3/SSL_get_all_async_fds.3", "doc/man/man3/SSL_get_certificate.3", "doc/man/man3/SSL_get_ciphers.3", "doc/man/man3/SSL_get_client_random.3", + "doc/man/man3/SSL_get_conn_close_info.3", "doc/man/man3/SSL_get_current_cipher.3", "doc/man/man3/SSL_get_default_timeout.3", "doc/man/man3/SSL_get_error.3", + "doc/man/man3/SSL_get_event_timeout.3", "doc/man/man3/SSL_get_extms_support.3", "doc/man/man3/SSL_get_fd.3", + "doc/man/man3/SSL_get_handshake_rtt.3", "doc/man/man3/SSL_get_peer_cert_chain.3", "doc/man/man3/SSL_get_peer_certificate.3", "doc/man/man3/SSL_get_peer_signature_nid.3", "doc/man/man3/SSL_get_peer_tmp_key.3", "doc/man/man3/SSL_get_psk_identity.3", "doc/man/man3/SSL_get_rbio.3", + "doc/man/man3/SSL_get_rpoll_descriptor.3", "doc/man/man3/SSL_get_session.3", "doc/man/man3/SSL_get_shared_sigalgs.3", + "doc/man/man3/SSL_get_stream_id.3", + "doc/man/man3/SSL_get_stream_read_state.3", + "doc/man/man3/SSL_get_value_uint.3", "doc/man/man3/SSL_get_verify_result.3", "doc/man/man3/SSL_get_version.3", "doc/man/man3/SSL_group_to_name.3", + "doc/man/man3/SSL_handle_events.3", "doc/man/man3/SSL_in_init.3", + "doc/man/man3/SSL_inject_net_dgram.3", "doc/man/man3/SSL_key_update.3", "doc/man/man3/SSL_library_init.3", "doc/man/man3/SSL_load_client_CA_file.3", "doc/man/man3/SSL_new.3", + "doc/man/man3/SSL_new_domain.3", + "doc/man/man3/SSL_new_listener.3", + "doc/man/man3/SSL_new_stream.3", "doc/man/man3/SSL_pending.3", + "doc/man/man3/SSL_poll.3", "doc/man/man3/SSL_read.3", "doc/man/man3/SSL_read_early_data.3", "doc/man/man3/SSL_rstate_string.3", "doc/man/man3/SSL_session_reused.3", "doc/man/man3/SSL_set1_host.3", + "doc/man/man3/SSL_set1_initial_peer_addr.3", + "doc/man/man3/SSL_set1_server_cert_type.3", "doc/man/man3/SSL_set_async_callback.3", "doc/man/man3/SSL_set_bio.3", + "doc/man/man3/SSL_set_blocking_mode.3", "doc/man/man3/SSL_set_connect_state.3", + "doc/man/man3/SSL_set_default_stream_mode.3", "doc/man/man3/SSL_set_fd.3", + "doc/man/man3/SSL_set_incoming_stream_policy.3", + "doc/man/man3/SSL_set_quic_tls_cbs.3", "doc/man/man3/SSL_set_retry_verify.3", "doc/man/man3/SSL_set_session.3", + "doc/man/man3/SSL_set_session_secret_cb.3", "doc/man/man3/SSL_set_shutdown.3", "doc/man/man3/SSL_set_verify_result.3", "doc/man/man3/SSL_shutdown.3", "doc/man/man3/SSL_state_string.3", + "doc/man/man3/SSL_stream_conclude.3", + "doc/man/man3/SSL_stream_reset.3", "doc/man/man3/SSL_want.3", "doc/man/man3/SSL_write.3", "doc/man/man3/TS_RESP_CTX_new.3", - "doc/man/man3/TS_VERIFY_CTX_set_certs.3", + "doc/man/man3/TS_VERIFY_CTX.3", "doc/man/man3/UI_STRING.3", "doc/man/man3/UI_UTIL_read_pw.3", "doc/man/man3/UI_create_method.3", "doc/man/man3/UI_new.3", "doc/man/man3/X509V3_get_d2i.3", "doc/man/man3/X509V3_set_ctx.3", + "doc/man/man3/X509_ACERT_add1_attr.3", + "doc/man/man3/X509_ACERT_add_attr_nconf.3", + "doc/man/man3/X509_ACERT_get0_holder_baseCertId.3", + "doc/man/man3/X509_ACERT_get_attr.3", + "doc/man/man3/X509_ACERT_print_ex.3", "doc/man/man3/X509_ALGOR_dup.3", "doc/man/man3/X509_ATTRIBUTE.3", "doc/man/man3/X509_CRL_get0_by_serial.3", @@ -19989,6 +23273,7 @@ our %unified_info = ( "doc/man/man3/X509_REQ_get_attr.3", "doc/man/man3/X509_REQ_get_extensions.3", "doc/man/man3/X509_SIG_get0.3", + "doc/man/man3/X509_STORE_CTX_get_by_subject.3", "doc/man/man3/X509_STORE_CTX_get_error.3", "doc/man/man3/X509_STORE_CTX_new.3", "doc/man/man3/X509_STORE_CTX_set_verify_cb.3", @@ -20011,6 +23296,7 @@ our %unified_info = ( "doc/man/man3/X509_get0_notBefore.3", "doc/man/man3/X509_get0_signature.3", "doc/man/man3/X509_get0_uids.3", + "doc/man/man3/X509_get_default_cert_file.3", "doc/man/man3/X509_get_extension_flags.3", "doc/man/man3/X509_get_pubkey.3", "doc/man/man3/X509_get_serialNumber.3", @@ -20056,12 +23342,15 @@ our %unified_info = ( "doc/man/man7/EVP_CIPHER-RC5.7", "doc/man/man7/EVP_CIPHER-SEED.7", "doc/man/man7/EVP_CIPHER-SM4.7", + "doc/man/man7/EVP_KDF-ARGON2.7", "doc/man/man7/EVP_KDF-HKDF.7", + "doc/man/man7/EVP_KDF-HMAC-DRBG.7", "doc/man/man7/EVP_KDF-KB.7", "doc/man/man7/EVP_KDF-KRB5KDF.7", "doc/man/man7/EVP_KDF-PBKDF1.7", "doc/man/man7/EVP_KDF-PBKDF2.7", "doc/man/man7/EVP_KDF-PKCS12KDF.7", + "doc/man/man7/EVP_KDF-PVKKDF.7", "doc/man/man7/EVP_KDF-SCRYPT.7", "doc/man/man7/EVP_KDF-SS.7", "doc/man/man7/EVP_KDF-SSHKDF.7", @@ -20070,7 +23359,10 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-X942-ASN1.7", "doc/man/man7/EVP_KDF-X942-CONCAT.7", "doc/man/man7/EVP_KDF-X963.7", + "doc/man/man7/EVP_KEM-EC.7", + "doc/man/man7/EVP_KEM-ML-KEM.7", "doc/man/man7/EVP_KEM-RSA.7", + "doc/man/man7/EVP_KEM-X25519.7", "doc/man/man7/EVP_KEYEXCH-DH.7", "doc/man/man7/EVP_KEYEXCH-ECDH.7", "doc/man/man7/EVP_KEYEXCH-X25519.7", @@ -20082,6 +23374,7 @@ our %unified_info = ( "doc/man/man7/EVP_MAC-Poly1305.7", "doc/man/man7/EVP_MAC-Siphash.7", "doc/man/man7/EVP_MD-BLAKE2.7", + "doc/man/man7/EVP_MD-KECCAK.7", "doc/man/man7/EVP_MD-MD2.7", "doc/man/man7/EVP_MD-MD4.7", "doc/man/man7/EVP_MD-MD5-SHA1.7", @@ -20101,12 +23394,17 @@ our %unified_info = ( "doc/man/man7/EVP_PKEY-EC.7", "doc/man/man7/EVP_PKEY-FFC.7", "doc/man/man7/EVP_PKEY-HMAC.7", + "doc/man/man7/EVP_PKEY-ML-DSA.7", + "doc/man/man7/EVP_PKEY-ML-KEM.7", "doc/man/man7/EVP_PKEY-RSA.7", + "doc/man/man7/EVP_PKEY-SLH-DSA.7", "doc/man/man7/EVP_PKEY-SM2.7", "doc/man/man7/EVP_PKEY-X25519.7", + "doc/man/man7/EVP_RAND-CRNG-TEST.7", "doc/man/man7/EVP_RAND-CTR-DRBG.7", "doc/man/man7/EVP_RAND-HASH-DRBG.7", "doc/man/man7/EVP_RAND-HMAC-DRBG.7", + "doc/man/man7/EVP_RAND-JITTER.7", "doc/man/man7/EVP_RAND-SEED-SRC.7", "doc/man/man7/EVP_RAND-TEST-RAND.7", "doc/man/man7/EVP_RAND.7", @@ -20114,17 +23412,19 @@ our %unified_info = ( "doc/man/man7/EVP_SIGNATURE-ECDSA.7", "doc/man/man7/EVP_SIGNATURE-ED25519.7", "doc/man/man7/EVP_SIGNATURE-HMAC.7", + "doc/man/man7/EVP_SIGNATURE-ML-DSA.7", "doc/man/man7/EVP_SIGNATURE-RSA.7", + "doc/man/man7/EVP_SIGNATURE-SLH-DSA.7", "doc/man/man7/OSSL_PROVIDER-FIPS.7", "doc/man/man7/OSSL_PROVIDER-base.7", "doc/man/man7/OSSL_PROVIDER-default.7", "doc/man/man7/OSSL_PROVIDER-legacy.7", "doc/man/man7/OSSL_PROVIDER-null.7", + "doc/man/man7/OSSL_STORE-winstore.7", "doc/man/man7/RAND.7", "doc/man/man7/RSA-PSS.7", "doc/man/man7/X25519.7", "doc/man/man7/bio.7", - "doc/man/man7/crypto.7", "doc/man/man7/ct.7", "doc/man/man7/des_modes.7", "doc/man/man7/evp.7", @@ -20135,14 +23435,31 @@ our %unified_info = ( "doc/man/man7/life_cycle-mac.7", "doc/man/man7/life_cycle-pkey.7", "doc/man/man7/life_cycle-rand.7", - "doc/man/man7/migration_guide.7", "doc/man/man7/openssl-core.h.7", "doc/man/man7/openssl-core_dispatch.h.7", "doc/man/man7/openssl-core_names.h.7", "doc/man/man7/openssl-env.7", "doc/man/man7/openssl-glossary.7", + "doc/man/man7/openssl-qlog.7", + "doc/man/man7/openssl-quic-concurrency.7", + "doc/man/man7/openssl-quic.7", "doc/man/man7/openssl-threads.7", "doc/man/man7/openssl_user_macros.7", + "doc/man/man7/ossl-guide-introduction.7", + "doc/man/man7/ossl-guide-libcrypto-introduction.7", + "doc/man/man7/ossl-guide-libraries-introduction.7", + "doc/man/man7/ossl-guide-libssl-introduction.7", + "doc/man/man7/ossl-guide-migration.7", + "doc/man/man7/ossl-guide-quic-client-block.7", + "doc/man/man7/ossl-guide-quic-client-non-block.7", + "doc/man/man7/ossl-guide-quic-introduction.7", + "doc/man/man7/ossl-guide-quic-multi-stream.7", + "doc/man/man7/ossl-guide-quic-server-block.7", + "doc/man/man7/ossl-guide-quic-server-non-block.7", + "doc/man/man7/ossl-guide-tls-client-block.7", + "doc/man/man7/ossl-guide-tls-client-non-block.7", + "doc/man/man7/ossl-guide-tls-introduction.7", + "doc/man/man7/ossl-guide-tls-server-block.7", "doc/man/man7/ossl_store-file.7", "doc/man/man7/ossl_store.7", "doc/man/man7/passphrase-encoding.7", @@ -20161,10 +23478,10 @@ our %unified_info = ( "doc/man/man7/provider-object.7", "doc/man/man7/provider-rand.7", "doc/man/man7/provider-signature.7", + "doc/man/man7/provider-skeymgmt.7", "doc/man/man7/provider-storemgmt.7", "doc/man/man7/provider.7", "doc/man/man7/proxy-certificates.7", - "doc/man/man7/ssl.7", "doc/man/man7/x509.7" ] }, @@ -20176,6 +23493,7 @@ our %unified_info = ( ], "programs" => [ "apps/openssl", + "fuzz/acert-test", "fuzz/asn1-test", "fuzz/asn1parse-test", "fuzz/bignum-test", @@ -20186,7 +23504,24 @@ our %unified_info = ( "fuzz/conf-test", "fuzz/crl-test", "fuzz/ct-test", + "fuzz/decoder-test", + "fuzz/dtlsclient-test", + "fuzz/dtlsserver-test", + "fuzz/hashtable-test", + "fuzz/ml-dsa-test", + "fuzz/ml-kem-test", + "fuzz/pem-test", + "fuzz/provider-test", + "fuzz/punycode-test", + "fuzz/quic-client-test", + "fuzz/quic-lcidm-test", + "fuzz/quic-rcidm-test", + "fuzz/quic-server-test", + "fuzz/quic-srtm-test", "fuzz/server-test", + "fuzz/slh-dsa-test", + "fuzz/smime-test", + "fuzz/v3name-test", "fuzz/x509-test", "test/aborttest", "test/acvp_test", @@ -20204,21 +23539,28 @@ our %unified_info = ( "test/asynctest", "test/bad_dtls_test", "test/bftest", + "test/bio_addr_test", + "test/bio_base64_test", "test/bio_callback_test", "test/bio_core_test", + "test/bio_dgram_test", "test/bio_enc_test", "test/bio_memleak_test", + "test/bio_meth_test", "test/bio_prefix_text", "test/bio_pw_callback_test", "test/bio_readbuffer_test", + "test/bio_tfo_test", "test/bioprinttest", "test/bn_internal_test", "test/bntest", + "test/build_wincrypt_test", "test/buildtest_c_aes", "test/buildtest_c_async", "test/buildtest_c_blowfish", "test/buildtest_c_bn", "test/buildtest_c_buffer", + "test/buildtest_c_byteorder", "test/buildtest_c_camellia", "test/buildtest_c_cast", "test/buildtest_c_cmac", @@ -20227,7 +23569,6 @@ our %unified_info = ( "test/buildtest_c_conftypes", "test/buildtest_c_core", "test/buildtest_c_core_dispatch", - "test/buildtest_c_core_names", "test/buildtest_c_core_object", "test/buildtest_c_cryptoerr_legacy", "test/buildtest_c_decoder", @@ -20236,6 +23577,7 @@ our %unified_info = ( "test/buildtest_c_dsa", "test/buildtest_c_dtls1", "test/buildtest_c_e_os2", + "test/buildtest_c_e_ostime", "test/buildtest_c_ebcdic", "test/buildtest_c_ec", "test/buildtest_c_ecdh", @@ -20245,13 +23587,16 @@ our %unified_info = ( "test/buildtest_c_evp", "test/buildtest_c_fips_names", "test/buildtest_c_hmac", + "test/buildtest_c_hpke", "test/buildtest_c_http", "test/buildtest_c_idea", + "test/buildtest_c_indicator", "test/buildtest_c_kdf", "test/buildtest_c_macros", "test/buildtest_c_md4", "test/buildtest_c_md5", "test/buildtest_c_mdc2", + "test/buildtest_c_ml_kem", "test/buildtest_c_modes", "test/buildtest_c_obj_mac", "test/buildtest_c_objects", @@ -20262,6 +23607,7 @@ our %unified_info = ( "test/buildtest_c_pem2", "test/buildtest_c_prov_ssl", "test/buildtest_c_provider", + "test/buildtest_c_quic", "test/buildtest_c_rand", "test/buildtest_c_rc2", "test/buildtest_c_rc4", @@ -20276,11 +23622,14 @@ our %unified_info = ( "test/buildtest_c_stack", "test/buildtest_c_store", "test/buildtest_c_symhacks", + "test/buildtest_c_thread", "test/buildtest_c_tls1", "test/buildtest_c_ts", "test/buildtest_c_txt_db", "test/buildtest_c_types", "test/buildtest_c_whrlpool", + "test/byteorder_test", + "test/ca_internals_test", "test/casttest", "test/chacha_internal_test", "test/cipher_overhead_test", @@ -20309,6 +23658,7 @@ our %unified_info = ( "test/curve448_internal_test", "test/d2i_test", "test/danetest", + "test/decoder_propq_test", "test/defltfips_test", "test/destest", "test/dhtest", @@ -20333,9 +23683,12 @@ our %unified_info = ( "test/evp_kdf_test", "test/evp_libctx_test", "test/evp_pkey_ctx_new_from_name", + "test/evp_pkey_dhkem_test", "test/evp_pkey_dparams_test", "test/evp_pkey_provided_test", + "test/evp_skey_test", "test/evp_test", + "test/evp_xof_test", "test/exdatatest", "test/exptest", "test/ext_internal_test", @@ -20345,21 +23698,29 @@ our %unified_info = ( "test/gmdifftest", "test/hexstr_test", "test/hmactest", + "test/hpke_test", "test/http_test", "test/ideatest", "test/igetest", + "test/json_test", "test/keymgmt_internal_test", "test/lhash_test", + "test/list_test", "test/localetest", "test/mdc2_internal_test", "test/mdc2test", + "test/membio_test", "test/memleaktest", + "test/ml_dsa_test", + "test/ml_kem_evp_extra_test", + "test/ml_kem_internal_test", "test/modes_internal_test", "test/namemap_internal_test", "test/nodefltctxtest", "test/ocspapitest", "test/ossl_store_test", "test/packettest", + "test/pairwise_fail_test", "test/param_build_test", "test/params_api_test", "test/params_conversion_test", @@ -20368,36 +23729,65 @@ our %unified_info = ( "test/pbetest", "test/pem_read_depr_test", "test/pemtest", + "test/pkcs12_api_test", "test/pkcs12_format_test", "test/pkcs7_test", "test/pkey_meth_kdf_test", "test/pkey_meth_test", "test/poly1305_internal_test", + "test/priority_queue_test", "test/property_test", "test/prov_config_test", "test/provfetchtest", + "test/provider_default_search_path_test", "test/provider_fallback_test", "test/provider_internal_test", "test/provider_pkey_test", "test/provider_status_test", "test/provider_test", "test/punycode_test", + "test/quic_ackm_test", + "test/quic_cc_test", + "test/quic_cfq_test", + "test/quic_client_test", + "test/quic_fc_test", + "test/quic_fifd_test", + "test/quic_lcidm_test", + "test/quic_multistream_test", + "test/quic_newcid_test", + "test/quic_qlog_test", + "test/quic_radix_test", + "test/quic_rcidm_test", + "test/quic_record_test", + "test/quic_srt_gen_test", + "test/quic_srtm_test", + "test/quic_stream_test", + "test/quic_tserver_test", + "test/quic_txp_test", + "test/quic_txpim_test", + "test/quic_wire_test", + "test/quicapitest", + "test/quicfaultstest", "test/rand_status_test", "test/rand_test", "test/rc2test", "test/rc4test", "test/rc5test", - "test/rdrand_sanitytest", + "test/rdcpu_sanitytest", "test/recordlentest", + "test/rpktest", "test/rsa_complex", "test/rsa_mp_test", "test/rsa_sp800_56b_test", "test/rsa_test", + "test/rsa_x931_test", + "test/safe_math_test", "test/sanitytest", "test/secmemtest", "test/servername_test", "test/sha_test", "test/siphash_internal_test", + "test/slh_dsa_test", "test/sm2_internal_test", "test/sm3_internal_test", "test/sm4_internal_test", @@ -20405,6 +23795,7 @@ our %unified_info = ( "test/srptest", "test/ssl_cert_table_internal_test", "test/ssl_ctx_test", + "test/ssl_handshake_rtt_test", "test/ssl_old_test", "test/ssl_test", "test/ssl_test_ctx_test", @@ -20412,13 +23803,17 @@ our %unified_info = ( "test/sslbuffertest", "test/sslcorrupttest", "test/stack_test", + "test/strtoultest", "test/sysdefaulttest", "test/test_test", + "test/threadpool_test", "test/threadstest", "test/threadstest_fips", "test/time_offset_test", + "test/time_test", "test/tls13ccstest", "test/tls13encryptiontest", + "test/tls13groupselection_test", "test/trace_api_test", "test/uitest", "test/upcallstest", @@ -20428,9 +23823,13 @@ our %unified_info = ( "test/verify_extra_test", "test/versions", "test/wpackettest", + "test/x509_acert_test", "test/x509_check_cert_pkey_test", "test/x509_dup_cert_test", "test/x509_internal_test", + "test/x509_load_cert_file_test", + "test/x509_req_test", + "test/x509_test", "test/x509_time_test", "test/x509aux" ], @@ -20445,6 +23844,33 @@ our %unified_info = ( "apps/CA.pl" => [ "apps/CA.pl.in" ], + "apps/ca_internals_test-bin-ca.o" => [ + "apps/ca.c" + ], + "apps/lib/ca_internals_test-bin-app_libctx.o" => [ + "apps/lib/app_libctx.c" + ], + "apps/lib/ca_internals_test-bin-app_provider.o" => [ + "apps/lib/app_provider.c" + ], + "apps/lib/ca_internals_test-bin-app_rand.o" => [ + "apps/lib/app_rand.c" + ], + "apps/lib/ca_internals_test-bin-app_x509.o" => [ + "apps/lib/app_x509.c" + ], + "apps/lib/ca_internals_test-bin-apps.o" => [ + "apps/lib/apps.c" + ], + "apps/lib/ca_internals_test-bin-apps_ui.o" => [ + "apps/lib/apps_ui.c" + ], + "apps/lib/ca_internals_test-bin-engine.o" => [ + "apps/lib/engine.c" + ], + "apps/lib/ca_internals_test-bin-fmt.o" => [ + "apps/lib/fmt.c" + ], "apps/lib/cmp_client_test-bin-cmp_mock_srv.o" => [ "apps/lib/cmp_mock_srv.c" ], @@ -20466,6 +23892,9 @@ our %unified_info = ( "apps/lib/libapps-lib-apps.o" => [ "apps/lib/apps.c" ], + "apps/lib/libapps-lib-apps_opt_printf.o" => [ + "apps/lib/apps_opt_printf.c" + ], "apps/lib/libapps-lib-apps_ui.o" => [ "apps/lib/apps_ui.c" ], @@ -20484,6 +23913,9 @@ our %unified_info = ( "apps/lib/libapps-lib-http_server.o" => [ "apps/lib/http_server.c" ], + "apps/lib/libapps-lib-log.o" => [ + "apps/lib/log.c" + ], "apps/lib/libapps-lib-names.o" => [ "apps/lib/names.c" ], @@ -20521,12 +23953,14 @@ our %unified_info = ( "apps/lib/libapps-lib-app_rand.o", "apps/lib/libapps-lib-app_x509.o", "apps/lib/libapps-lib-apps.o", + "apps/lib/libapps-lib-apps_opt_printf.o", "apps/lib/libapps-lib-apps_ui.o", "apps/lib/libapps-lib-columns.o", "apps/lib/libapps-lib-engine.o", "apps/lib/libapps-lib-engine_loader.o", "apps/lib/libapps-lib-fmt.o", "apps/lib/libapps-lib-http_server.o", + "apps/lib/libapps-lib-log.o", "apps/lib/libapps-lib-names.o", "apps/lib/libapps-lib-opt.o", "apps/lib/libapps-lib-s_cb.o", @@ -20582,6 +24016,7 @@ our %unified_info = ( "apps/openssl-bin-s_server.o", "apps/openssl-bin-s_time.o", "apps/openssl-bin-sess_id.o", + "apps/openssl-bin-skeyutl.o", "apps/openssl-bin-smime.o", "apps/openssl-bin-speed.o", "apps/openssl-bin-spkac.o", @@ -20730,6 +24165,9 @@ our %unified_info = ( "apps/openssl-bin-sess_id.o" => [ "apps/sess_id.c" ], + "apps/openssl-bin-skeyutl.o" => [ + "apps/skeyutl.c" + ], "apps/openssl-bin-smime.o" => [ "apps/smime.c" ], @@ -20799,6 +24237,12 @@ our %unified_info = ( "crypto/aria/libcrypto-lib-aria.o" => [ "crypto/aria/aria.c" ], + "crypto/asn1/asn1_time_test-bin-a_time.o" => [ + "crypto/asn1/a_time.c" + ], + "crypto/asn1/ca_internals_test-bin-a_time.o" => [ + "crypto/asn1/a_time.c" + ], "crypto/asn1/libcrypto-lib-a_bitstr.o" => [ "crypto/asn1/a_bitstr.c" ], @@ -20991,6 +24435,9 @@ our %unified_info = ( "crypto/asn1/libcrypto-lib-x_val.o" => [ "crypto/asn1/x_val.c" ], + "crypto/asn1_time_test-bin-ctype.o" => [ + "crypto/ctype.c" + ], "crypto/async/arch/libcrypto-lib-async_null.o" => [ "crypto/async/arch/async_null.c" ], @@ -21084,6 +24531,9 @@ our %unified_info = ( "crypto/bio/libcrypto-lib-bss_dgram.o" => [ "crypto/bio/bss_dgram.c" ], + "crypto/bio/libcrypto-lib-bss_dgram_pair.o" => [ + "crypto/bio/bss_dgram_pair.c" + ], "crypto/bio/libcrypto-lib-bss_fd.o" => [ "crypto/bio/bss_fd.c" ], @@ -21297,6 +24747,9 @@ our %unified_info = ( "crypto/buffer/libfips-lib-buffer.o" => [ "crypto/buffer/buffer.c" ], + "crypto/ca_internals_test-bin-ctype.o" => [ + "crypto/ctype.c" + ], "crypto/camellia/libcrypto-lib-camellia.o" => [ "crypto/camellia/camellia.c" ], @@ -21354,6 +24807,9 @@ our %unified_info = ( "crypto/cmp/libcrypto-lib-cmp_err.o" => [ "crypto/cmp/cmp_err.c" ], + "crypto/cmp/libcrypto-lib-cmp_genm.o" => [ + "crypto/cmp/cmp_genm.c" + ], "crypto/cmp/libcrypto-lib-cmp_hdr.o" => [ "crypto/cmp/cmp_hdr.c" ], @@ -22029,9 +25485,15 @@ our %unified_info = ( "crypto/err/libcrypto-lib-err_blocks.o" => [ "crypto/err/err_blocks.c" ], + "crypto/err/libcrypto-lib-err_mark.o" => [ + "crypto/err/err_mark.c" + ], "crypto/err/libcrypto-lib-err_prn.o" => [ "crypto/err/err_prn.c" ], + "crypto/err/libcrypto-lib-err_save.o" => [ + "crypto/err/err_save.c" + ], "crypto/ess/libcrypto-lib-ess_asn1.o" => [ "crypto/ess/ess_asn1.c" ], @@ -22278,9 +25740,15 @@ our %unified_info = ( "crypto/evp/libcrypto-lib-pmeth_lib.o" => [ "crypto/evp/pmeth_lib.c" ], + "crypto/evp/libcrypto-lib-s_lib.o" => [ + "crypto/evp/s_lib.c" + ], "crypto/evp/libcrypto-lib-signature.o" => [ "crypto/evp/signature.c" ], + "crypto/evp/libcrypto-lib-skeymgmt_meth.o" => [ + "crypto/evp/skeymgmt_meth.c" + ], "crypto/evp/libfips-lib-asymcipher.o" => [ "crypto/evp/asymcipher.c" ], @@ -22326,9 +25794,6 @@ our %unified_info = ( "crypto/evp/libfips-lib-keymgmt_meth.o" => [ "crypto/evp/keymgmt_meth.c" ], - "crypto/evp/libfips-lib-m_sigver.o" => [ - "crypto/evp/m_sigver.c" - ], "crypto/evp/libfips-lib-mac_lib.o" => [ "crypto/evp/mac_lib.c" ], @@ -22347,9 +25812,15 @@ our %unified_info = ( "crypto/evp/libfips-lib-pmeth_lib.o" => [ "crypto/evp/pmeth_lib.c" ], + "crypto/evp/libfips-lib-s_lib.o" => [ + "crypto/evp/s_lib.c" + ], "crypto/evp/libfips-lib-signature.o" => [ "crypto/evp/signature.c" ], + "crypto/evp/libfips-lib-skeymgmt_meth.o" => [ + "crypto/evp/skeymgmt_meth.c" + ], "crypto/ffc/libcrypto-lib-ffc_backend.o" => [ "crypto/ffc/ffc_backend.c" ], @@ -22392,12 +25863,30 @@ our %unified_info = ( "crypto/ffc/libfips-lib-ffc_params_validate.o" => [ "crypto/ffc/ffc_params_validate.c" ], + "crypto/hashtable/libcrypto-lib-hashfunc.o" => [ + "crypto/hashtable/hashfunc.c" + ], + "crypto/hashtable/libcrypto-lib-hashtable.o" => [ + "crypto/hashtable/hashtable.c" + ], + "crypto/hashtable/libfips-lib-hashfunc.o" => [ + "crypto/hashtable/hashfunc.c" + ], + "crypto/hashtable/libfips-lib-hashtable.o" => [ + "crypto/hashtable/hashtable.c" + ], "crypto/hmac/libcrypto-lib-hmac.o" => [ "crypto/hmac/hmac.c" ], "crypto/hmac/libfips-lib-hmac.o" => [ "crypto/hmac/hmac.c" ], + "crypto/hpke/libcrypto-lib-hpke.o" => [ + "crypto/hpke/hpke.c" + ], + "crypto/hpke/libcrypto-lib-hpke_util.o" => [ + "crypto/hpke/hpke_util.c" + ], "crypto/http/libcrypto-lib-http_client.o" => [ "crypto/http/http_client.c" ], @@ -22440,6 +25929,9 @@ our %unified_info = ( "crypto/libcrypto-lib-bsearch.o" => [ "crypto/bsearch.c" ], + "crypto/libcrypto-lib-comp_methods.o" => [ + "crypto/comp_methods.c" + ], "crypto/libcrypto-lib-context.o" => [ "crypto/context.c" ], @@ -22467,9 +25959,15 @@ our %unified_info = ( "crypto/libcrypto-lib-cversion.o" => [ "crypto/cversion.c" ], + "crypto/libcrypto-lib-defaults.o" => [ + "crypto/defaults.c" + ], "crypto/libcrypto-lib-der_writer.o" => [ "crypto/der_writer.c" ], + "crypto/libcrypto-lib-deterministic_nonce.o" => [ + "crypto/deterministic_nonce.c" + ], "crypto/libcrypto-lib-ebcdic.o" => [ "crypto/ebcdic.c" ], @@ -22479,6 +25977,9 @@ our %unified_info = ( "crypto/libcrypto-lib-getenv.o" => [ "crypto/getenv.c" ], + "crypto/libcrypto-lib-indicator_core.o" => [ + "crypto/indicator_core.c" + ], "crypto/libcrypto-lib-info.o" => [ "crypto/info.c" ], @@ -22530,6 +26031,9 @@ our %unified_info = ( "crypto/libcrypto-lib-params_from_text.o" => [ "crypto/params_from_text.c" ], + "crypto/libcrypto-lib-params_idx.o" => [ + "crypto/params_idx.c" + ], "crypto/libcrypto-lib-passphrase.o" => [ "crypto/passphrase.c" ], @@ -22551,12 +26055,21 @@ our %unified_info = ( "crypto/libcrypto-lib-punycode.o" => [ "crypto/punycode.c" ], + "crypto/libcrypto-lib-quic_vlint.o" => [ + "crypto/quic_vlint.c" + ], "crypto/libcrypto-lib-self_test_core.o" => [ "crypto/self_test_core.c" ], + "crypto/libcrypto-lib-sleep.o" => [ + "crypto/sleep.c" + ], "crypto/libcrypto-lib-sparse_array.o" => [ "crypto/sparse_array.c" ], + "crypto/libcrypto-lib-ssl_err.o" => [ + "crypto/ssl_err.c" + ], "crypto/libcrypto-lib-threads_lib.o" => [ "crypto/threads_lib.c" ], @@ -22569,6 +26082,9 @@ our %unified_info = ( "crypto/libcrypto-lib-threads_win.o" => [ "crypto/threads_win.c" ], + "crypto/libcrypto-lib-time.o" => [ + "crypto/time.c" + ], "crypto/libcrypto-lib-trace.o" => [ "crypto/trace.c" ], @@ -22635,6 +26151,9 @@ our %unified_info = ( "crypto/libfips-lib-params_from_text.o" => [ "crypto/params_from_text.c" ], + "crypto/libfips-lib-params_idx.o" => [ + "crypto/params_idx.c" + ], "crypto/libfips-lib-provider_core.o" => [ "crypto/provider_core.c" ], @@ -22659,6 +26178,9 @@ our %unified_info = ( "crypto/libfips-lib-threads_win.o" => [ "crypto/threads_win.c" ], + "crypto/libfips-lib-time.o" => [ + "crypto/time.c" + ], "crypto/md4/libcrypto-lib-md4_dgst.o" => [ "crypto/md4/md4_dgst.c" ], @@ -22680,6 +26202,60 @@ our %unified_info = ( "crypto/mdc2/libcrypto-lib-mdc2dgst.o" => [ "crypto/mdc2/mdc2dgst.c" ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_encoders.o" => [ + "crypto/ml_dsa/ml_dsa_encoders.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key.o" => [ + "crypto/ml_dsa/ml_dsa_key.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key_compress.o" => [ + "crypto/ml_dsa/ml_dsa_key_compress.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_matrix.o" => [ + "crypto/ml_dsa/ml_dsa_matrix.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_ntt.o" => [ + "crypto/ml_dsa/ml_dsa_ntt.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_params.o" => [ + "crypto/ml_dsa/ml_dsa_params.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sample.o" => [ + "crypto/ml_dsa/ml_dsa_sample.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sign.o" => [ + "crypto/ml_dsa/ml_dsa_sign.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_encoders.o" => [ + "crypto/ml_dsa/ml_dsa_encoders.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_key.o" => [ + "crypto/ml_dsa/ml_dsa_key.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_key_compress.o" => [ + "crypto/ml_dsa/ml_dsa_key_compress.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_matrix.o" => [ + "crypto/ml_dsa/ml_dsa_matrix.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_ntt.o" => [ + "crypto/ml_dsa/ml_dsa_ntt.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_params.o" => [ + "crypto/ml_dsa/ml_dsa_params.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_sample.o" => [ + "crypto/ml_dsa/ml_dsa_sample.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_sign.o" => [ + "crypto/ml_dsa/ml_dsa_sign.c" + ], + "crypto/ml_kem/libcrypto-lib-ml_kem.o" => [ + "crypto/ml_kem/ml_kem.c" + ], + "crypto/ml_kem/libfips-lib-ml_kem.o" => [ + "crypto/ml_kem/ml_kem.c" + ], "crypto/modes/libcrypto-lib-cbc128.o" => [ "crypto/modes/cbc128.c" ], @@ -22713,6 +26289,9 @@ our %unified_info = ( "crypto/modes/libcrypto-lib-xts128.o" => [ "crypto/modes/xts128.c" ], + "crypto/modes/libcrypto-lib-xts128gb.o" => [ + "crypto/modes/xts128gb.c" + ], "crypto/modes/libfips-lib-cbc128.o" => [ "crypto/modes/cbc128.c" ], @@ -22737,6 +26316,9 @@ our %unified_info = ( "crypto/modes/libfips-lib-xts128.o" => [ "crypto/modes/xts128.c" ], + "crypto/modes/libfips-lib-xts128gb.o" => [ + "crypto/modes/xts128gb.c" + ], "crypto/objects/libcrypto-lib-o_names.o" => [ "crypto/objects/o_names.c" ], @@ -22782,6 +26364,9 @@ our %unified_info = ( "crypto/ocsp/libcrypto-lib-v3_ocsp.o" => [ "crypto/ocsp/v3_ocsp.c" ], + "crypto/packettest-bin-quic_vlint.o" => [ + "crypto/quic_vlint.c" + ], "crypto/pem/libcrypto-lib-pem_all.o" => [ "crypto/pem/pem_all.c" ], @@ -22941,6 +26526,9 @@ our %unified_info = ( "crypto/rand/libcrypto-lib-rand_pool.o" => [ "crypto/rand/rand_pool.c" ], + "crypto/rand/libcrypto-lib-rand_uniform.o" => [ + "crypto/rand/rand_uniform.c" + ], "crypto/rand/libcrypto-lib-randfile.o" => [ "crypto/rand/randfile.c" ], @@ -23154,6 +26742,66 @@ our %unified_info = ( "crypto/siphash/libcrypto-lib-siphash.o" => [ "crypto/siphash/siphash.c" ], + "crypto/slh_dsa/libcrypto-lib-slh_adrs.o" => [ + "crypto/slh_dsa/slh_adrs.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_dsa.o" => [ + "crypto/slh_dsa/slh_dsa.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_dsa_hash_ctx.o" => [ + "crypto/slh_dsa/slh_dsa_hash_ctx.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_dsa_key.o" => [ + "crypto/slh_dsa/slh_dsa_key.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_fors.o" => [ + "crypto/slh_dsa/slh_fors.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_hash.o" => [ + "crypto/slh_dsa/slh_hash.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_hypertree.o" => [ + "crypto/slh_dsa/slh_hypertree.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_params.o" => [ + "crypto/slh_dsa/slh_params.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_wots.o" => [ + "crypto/slh_dsa/slh_wots.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_xmss.o" => [ + "crypto/slh_dsa/slh_xmss.c" + ], + "crypto/slh_dsa/libfips-lib-slh_adrs.o" => [ + "crypto/slh_dsa/slh_adrs.c" + ], + "crypto/slh_dsa/libfips-lib-slh_dsa.o" => [ + "crypto/slh_dsa/slh_dsa.c" + ], + "crypto/slh_dsa/libfips-lib-slh_dsa_hash_ctx.o" => [ + "crypto/slh_dsa/slh_dsa_hash_ctx.c" + ], + "crypto/slh_dsa/libfips-lib-slh_dsa_key.o" => [ + "crypto/slh_dsa/slh_dsa_key.c" + ], + "crypto/slh_dsa/libfips-lib-slh_fors.o" => [ + "crypto/slh_dsa/slh_fors.c" + ], + "crypto/slh_dsa/libfips-lib-slh_hash.o" => [ + "crypto/slh_dsa/slh_hash.c" + ], + "crypto/slh_dsa/libfips-lib-slh_hypertree.o" => [ + "crypto/slh_dsa/slh_hypertree.c" + ], + "crypto/slh_dsa/libfips-lib-slh_params.o" => [ + "crypto/slh_dsa/slh_params.c" + ], + "crypto/slh_dsa/libfips-lib-slh_wots.o" => [ + "crypto/slh_dsa/slh_wots.c" + ], + "crypto/slh_dsa/libfips-lib-slh_xmss.o" => [ + "crypto/slh_dsa/slh_xmss.c" + ], "crypto/sm2/libcrypto-lib-sm2_crypt.o" => [ "crypto/sm2/sm2_crypt.c" ], @@ -23208,6 +26856,42 @@ our %unified_info = ( "crypto/store/libcrypto-lib-store_strings.o" => [ "crypto/store/store_strings.c" ], + "crypto/thread/arch/libcrypto-lib-thread_none.o" => [ + "crypto/thread/arch/thread_none.c" + ], + "crypto/thread/arch/libcrypto-lib-thread_posix.o" => [ + "crypto/thread/arch/thread_posix.c" + ], + "crypto/thread/arch/libcrypto-lib-thread_win.o" => [ + "crypto/thread/arch/thread_win.c" + ], + "crypto/thread/arch/libfips-lib-thread_none.o" => [ + "crypto/thread/arch/thread_none.c" + ], + "crypto/thread/arch/libfips-lib-thread_posix.o" => [ + "crypto/thread/arch/thread_posix.c" + ], + "crypto/thread/arch/libfips-lib-thread_win.o" => [ + "crypto/thread/arch/thread_win.c" + ], + "crypto/thread/libcrypto-lib-api.o" => [ + "crypto/thread/api.c" + ], + "crypto/thread/libcrypto-lib-arch.o" => [ + "crypto/thread/arch.c" + ], + "crypto/thread/libcrypto-lib-internal.o" => [ + "crypto/thread/internal.c" + ], + "crypto/thread/libfips-lib-api.o" => [ + "crypto/thread/api.c" + ], + "crypto/thread/libfips-lib-arch.o" => [ + "crypto/thread/arch.c" + ], + "crypto/thread/libfips-lib-internal.o" => [ + "crypto/thread/internal.c" + ], "crypto/ts/libcrypto-lib-ts_asn1.o" => [ "crypto/ts/ts_asn1.c" ], @@ -23292,6 +26976,9 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-pcy_tree.o" => [ "crypto/x509/pcy_tree.c" ], + "crypto/x509/libcrypto-lib-t_acert.o" => [ + "crypto/x509/t_acert.c" + ], "crypto/x509/libcrypto-lib-t_crl.o" => [ "crypto/x509/t_crl.c" ], @@ -23301,6 +26988,12 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-t_x509.o" => [ "crypto/x509/t_x509.c" ], + "crypto/x509/libcrypto-lib-v3_aaa.o" => [ + "crypto/x509/v3_aaa.c" + ], + "crypto/x509/libcrypto-lib-v3_ac_tgt.o" => [ + "crypto/x509/v3_ac_tgt.c" + ], "crypto/x509/libcrypto-lib-v3_addr.o" => [ "crypto/x509/v3_addr.c" ], @@ -23316,6 +27009,21 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_asid.o" => [ "crypto/x509/v3_asid.c" ], + "crypto/x509/libcrypto-lib-v3_attrdesc.o" => [ + "crypto/x509/v3_attrdesc.c" + ], + "crypto/x509/libcrypto-lib-v3_attrmap.o" => [ + "crypto/x509/v3_attrmap.c" + ], + "crypto/x509/libcrypto-lib-v3_audit_id.o" => [ + "crypto/x509/v3_audit_id.c" + ], + "crypto/x509/libcrypto-lib-v3_authattid.o" => [ + "crypto/x509/v3_authattid.c" + ], + "crypto/x509/libcrypto-lib-v3_battcons.o" => [ + "crypto/x509/v3_battcons.c" + ], "crypto/x509/libcrypto-lib-v3_bcons.o" => [ "crypto/x509/v3_bcons.c" ], @@ -23340,15 +27048,24 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_genn.o" => [ "crypto/x509/v3_genn.c" ], + "crypto/x509/libcrypto-lib-v3_group_ac.o" => [ + "crypto/x509/v3_group_ac.c" + ], "crypto/x509/libcrypto-lib-v3_ia5.o" => [ "crypto/x509/v3_ia5.c" ], + "crypto/x509/libcrypto-lib-v3_ind_iss.o" => [ + "crypto/x509/v3_ind_iss.c" + ], "crypto/x509/libcrypto-lib-v3_info.o" => [ "crypto/x509/v3_info.c" ], "crypto/x509/libcrypto-lib-v3_int.o" => [ "crypto/x509/v3_int.c" ], + "crypto/x509/libcrypto-lib-v3_iobo.o" => [ + "crypto/x509/v3_iobo.c" + ], "crypto/x509/libcrypto-lib-v3_ist.o" => [ "crypto/x509/v3_ist.c" ], @@ -23358,6 +27075,12 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_ncons.o" => [ "crypto/x509/v3_ncons.c" ], + "crypto/x509/libcrypto-lib-v3_no_ass.o" => [ + "crypto/x509/v3_no_ass.c" + ], + "crypto/x509/libcrypto-lib-v3_no_rev_avail.o" => [ + "crypto/x509/v3_no_rev_avail.c" + ], "crypto/x509/libcrypto-lib-v3_pci.o" => [ "crypto/x509/v3_pci.c" ], @@ -23379,18 +27102,36 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_purp.o" => [ "crypto/x509/v3_purp.c" ], + "crypto/x509/libcrypto-lib-v3_rolespec.o" => [ + "crypto/x509/v3_rolespec.c" + ], "crypto/x509/libcrypto-lib-v3_san.o" => [ "crypto/x509/v3_san.c" ], + "crypto/x509/libcrypto-lib-v3_sda.o" => [ + "crypto/x509/v3_sda.c" + ], + "crypto/x509/libcrypto-lib-v3_single_use.o" => [ + "crypto/x509/v3_single_use.c" + ], "crypto/x509/libcrypto-lib-v3_skid.o" => [ "crypto/x509/v3_skid.c" ], + "crypto/x509/libcrypto-lib-v3_soa_id.o" => [ + "crypto/x509/v3_soa_id.c" + ], "crypto/x509/libcrypto-lib-v3_sxnet.o" => [ "crypto/x509/v3_sxnet.c" ], + "crypto/x509/libcrypto-lib-v3_timespec.o" => [ + "crypto/x509/v3_timespec.c" + ], "crypto/x509/libcrypto-lib-v3_tlsf.o" => [ "crypto/x509/v3_tlsf.c" ], + "crypto/x509/libcrypto-lib-v3_usernotice.o" => [ + "crypto/x509/v3_usernotice.c" + ], "crypto/x509/libcrypto-lib-v3_utf8.o" => [ "crypto/x509/v3_utf8.c" ], @@ -23400,6 +27141,9 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3err.o" => [ "crypto/x509/v3err.c" ], + "crypto/x509/libcrypto-lib-x509_acert.o" => [ + "crypto/x509/x509_acert.c" + ], "crypto/x509/libcrypto-lib-x509_att.o" => [ "crypto/x509/x509_att.c" ], @@ -23451,6 +27195,9 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x509_vpm.o" => [ "crypto/x509/x509_vpm.c" ], + "crypto/x509/libcrypto-lib-x509aset.o" => [ + "crypto/x509/x509aset.c" + ], "crypto/x509/libcrypto-lib-x509cset.o" => [ "crypto/x509/x509cset.c" ], @@ -23478,6 +27225,9 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x_exten.o" => [ "crypto/x509/x_exten.c" ], + "crypto/x509/libcrypto-lib-x_ietfatt.o" => [ + "crypto/x509/x_ietfatt.c" + ], "crypto/x509/libcrypto-lib-x_name.o" => [ "crypto/x509/x_name.c" ], @@ -23499,6 +27249,16 @@ our %unified_info = ( "engines/libcrypto-lib-e_padlock.o" => [ "engines/e_padlock.c" ], + "fuzz/acert-test" => [ + "fuzz/acert-test-bin-acert.o", + "fuzz/acert-test-bin-test-corpus.o" + ], + "fuzz/acert-test-bin-acert.o" => [ + "fuzz/acert.c" + ], + "fuzz/acert-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], "fuzz/asn1-test" => [ "fuzz/asn1-test-bin-asn1.o", "fuzz/asn1-test-bin-fuzz_rand.o", @@ -23611,6 +27371,190 @@ our %unified_info = ( "fuzz/ct-test-bin-test-corpus.o" => [ "fuzz/test-corpus.c" ], + "fuzz/decoder-test" => [ + "fuzz/decoder-test-bin-decoder.o", + "fuzz/decoder-test-bin-fuzz_rand.o", + "fuzz/decoder-test-bin-test-corpus.o" + ], + "fuzz/decoder-test-bin-decoder.o" => [ + "fuzz/decoder.c" + ], + "fuzz/decoder-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/decoder-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/dtlsclient-test" => [ + "fuzz/dtlsclient-test-bin-dtlsclient.o", + "fuzz/dtlsclient-test-bin-fuzz_rand.o", + "fuzz/dtlsclient-test-bin-test-corpus.o" + ], + "fuzz/dtlsclient-test-bin-dtlsclient.o" => [ + "fuzz/dtlsclient.c" + ], + "fuzz/dtlsclient-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/dtlsclient-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/dtlsserver-test" => [ + "fuzz/dtlsserver-test-bin-dtlsserver.o", + "fuzz/dtlsserver-test-bin-fuzz_rand.o", + "fuzz/dtlsserver-test-bin-test-corpus.o" + ], + "fuzz/dtlsserver-test-bin-dtlsserver.o" => [ + "fuzz/dtlsserver.c" + ], + "fuzz/dtlsserver-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/dtlsserver-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/hashtable-test" => [ + "fuzz/hashtable-test-bin-fuzz_rand.o", + "fuzz/hashtable-test-bin-hashtable.o", + "fuzz/hashtable-test-bin-test-corpus.o" + ], + "fuzz/hashtable-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/hashtable-test-bin-hashtable.o" => [ + "fuzz/hashtable.c" + ], + "fuzz/hashtable-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/ml-dsa-test" => [ + "fuzz/ml-dsa-test-bin-fuzz_rand.o", + "fuzz/ml-dsa-test-bin-ml-dsa.o", + "fuzz/ml-dsa-test-bin-test-corpus.o" + ], + "fuzz/ml-dsa-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/ml-dsa-test-bin-ml-dsa.o" => [ + "fuzz/ml-dsa.c" + ], + "fuzz/ml-dsa-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/ml-kem-test" => [ + "fuzz/ml-kem-test-bin-fuzz_rand.o", + "fuzz/ml-kem-test-bin-ml-kem.o", + "fuzz/ml-kem-test-bin-test-corpus.o" + ], + "fuzz/ml-kem-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/ml-kem-test-bin-ml-kem.o" => [ + "fuzz/ml-kem.c" + ], + "fuzz/ml-kem-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/pem-test" => [ + "fuzz/pem-test-bin-pem.o", + "fuzz/pem-test-bin-test-corpus.o" + ], + "fuzz/pem-test-bin-pem.o" => [ + "fuzz/pem.c" + ], + "fuzz/pem-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/provider-test" => [ + "fuzz/provider-test-bin-provider.o", + "fuzz/provider-test-bin-test-corpus.o" + ], + "fuzz/provider-test-bin-provider.o" => [ + "fuzz/provider.c" + ], + "fuzz/provider-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/punycode-test" => [ + "fuzz/punycode-test-bin-punycode.o", + "fuzz/punycode-test-bin-test-corpus.o" + ], + "fuzz/punycode-test-bin-punycode.o" => [ + "fuzz/punycode.c" + ], + "fuzz/punycode-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-client-test" => [ + "fuzz/quic-client-test-bin-fuzz_rand.o", + "fuzz/quic-client-test-bin-quic-client.o", + "fuzz/quic-client-test-bin-test-corpus.o" + ], + "fuzz/quic-client-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-client-test-bin-quic-client.o" => [ + "fuzz/quic-client.c" + ], + "fuzz/quic-client-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-lcidm-test" => [ + "fuzz/quic-lcidm-test-bin-fuzz_rand.o", + "fuzz/quic-lcidm-test-bin-quic-lcidm.o", + "fuzz/quic-lcidm-test-bin-test-corpus.o" + ], + "fuzz/quic-lcidm-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-lcidm-test-bin-quic-lcidm.o" => [ + "fuzz/quic-lcidm.c" + ], + "fuzz/quic-lcidm-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-rcidm-test" => [ + "fuzz/quic-rcidm-test-bin-fuzz_rand.o", + "fuzz/quic-rcidm-test-bin-quic-rcidm.o", + "fuzz/quic-rcidm-test-bin-test-corpus.o" + ], + "fuzz/quic-rcidm-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-rcidm-test-bin-quic-rcidm.o" => [ + "fuzz/quic-rcidm.c" + ], + "fuzz/quic-rcidm-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-server-test" => [ + "fuzz/quic-server-test-bin-fuzz_rand.o", + "fuzz/quic-server-test-bin-quic-server.o", + "fuzz/quic-server-test-bin-test-corpus.o" + ], + "fuzz/quic-server-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-server-test-bin-quic-server.o" => [ + "fuzz/quic-server.c" + ], + "fuzz/quic-server-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-srtm-test" => [ + "fuzz/quic-srtm-test-bin-fuzz_rand.o", + "fuzz/quic-srtm-test-bin-quic-srtm.o", + "fuzz/quic-srtm-test-bin-test-corpus.o" + ], + "fuzz/quic-srtm-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-srtm-test-bin-quic-srtm.o" => [ + "fuzz/quic-srtm.c" + ], + "fuzz/quic-srtm-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], "fuzz/server-test" => [ "fuzz/server-test-bin-fuzz_rand.o", "fuzz/server-test-bin-server.o", @@ -23625,6 +27569,40 @@ our %unified_info = ( "fuzz/server-test-bin-test-corpus.o" => [ "fuzz/test-corpus.c" ], + "fuzz/slh-dsa-test" => [ + "fuzz/slh-dsa-test-bin-fuzz_rand.o", + "fuzz/slh-dsa-test-bin-slh-dsa.o", + "fuzz/slh-dsa-test-bin-test-corpus.o" + ], + "fuzz/slh-dsa-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/slh-dsa-test-bin-slh-dsa.o" => [ + "fuzz/slh-dsa.c" + ], + "fuzz/slh-dsa-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/smime-test" => [ + "fuzz/smime-test-bin-smime.o", + "fuzz/smime-test-bin-test-corpus.o" + ], + "fuzz/smime-test-bin-smime.o" => [ + "fuzz/smime.c" + ], + "fuzz/smime-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/v3name-test" => [ + "fuzz/v3name-test-bin-test-corpus.o", + "fuzz/v3name-test-bin-v3name.o" + ], + "fuzz/v3name-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/v3name-test-bin-v3name.o" => [ + "fuzz/v3name.c" + ], "fuzz/x509-test" => [ "fuzz/x509-test-bin-fuzz_rand.o", "fuzz/x509-test-bin-test-corpus.o", @@ -23744,6 +27722,7 @@ our %unified_info = ( "crypto/bio/libcrypto-lib-bss_conn.o", "crypto/bio/libcrypto-lib-bss_core.o", "crypto/bio/libcrypto-lib-bss_dgram.o", + "crypto/bio/libcrypto-lib-bss_dgram_pair.o", "crypto/bio/libcrypto-lib-bss_fd.o", "crypto/bio/libcrypto-lib-bss_file.o", "crypto/bio/libcrypto-lib-bss_log.o", @@ -23804,6 +27783,7 @@ our %unified_info = ( "crypto/cmp/libcrypto-lib-cmp_client.o", "crypto/cmp/libcrypto-lib-cmp_ctx.o", "crypto/cmp/libcrypto-lib-cmp_err.o", + "crypto/cmp/libcrypto-lib-cmp_genm.o", "crypto/cmp/libcrypto-lib-cmp_hdr.o", "crypto/cmp/libcrypto-lib-cmp_http.o", "crypto/cmp/libcrypto-lib-cmp_msg.o", @@ -23979,7 +27959,9 @@ our %unified_info = ( "crypto/err/libcrypto-lib-err_all.o", "crypto/err/libcrypto-lib-err_all_legacy.o", "crypto/err/libcrypto-lib-err_blocks.o", + "crypto/err/libcrypto-lib-err_mark.o", "crypto/err/libcrypto-lib-err_prn.o", + "crypto/err/libcrypto-lib-err_save.o", "crypto/ess/libcrypto-lib-ess_asn1.o", "crypto/ess/libcrypto-lib-ess_err.o", "crypto/ess/libcrypto-lib-ess_lib.o", @@ -24062,7 +28044,9 @@ our %unified_info = ( "crypto/evp/libcrypto-lib-pmeth_check.o", "crypto/evp/libcrypto-lib-pmeth_gn.o", "crypto/evp/libcrypto-lib-pmeth_lib.o", + "crypto/evp/libcrypto-lib-s_lib.o", "crypto/evp/libcrypto-lib-signature.o", + "crypto/evp/libcrypto-lib-skeymgmt_meth.o", "crypto/ffc/libcrypto-lib-ffc_backend.o", "crypto/ffc/libcrypto-lib-ffc_dh.o", "crypto/ffc/libcrypto-lib-ffc_key_generate.o", @@ -24070,7 +28054,11 @@ our %unified_info = ( "crypto/ffc/libcrypto-lib-ffc_params.o", "crypto/ffc/libcrypto-lib-ffc_params_generate.o", "crypto/ffc/libcrypto-lib-ffc_params_validate.o", + "crypto/hashtable/libcrypto-lib-hashfunc.o", + "crypto/hashtable/libcrypto-lib-hashtable.o", "crypto/hmac/libcrypto-lib-hmac.o", + "crypto/hpke/libcrypto-lib-hpke.o", + "crypto/hpke/libcrypto-lib-hpke_util.o", "crypto/http/libcrypto-lib-http_client.o", "crypto/http/libcrypto-lib-http_err.o", "crypto/http/libcrypto-lib-http_lib.o", @@ -24084,6 +28072,7 @@ our %unified_info = ( "crypto/lhash/libcrypto-lib-lhash.o", "crypto/libcrypto-lib-asn1_dsa.o", "crypto/libcrypto-lib-bsearch.o", + "crypto/libcrypto-lib-comp_methods.o", "crypto/libcrypto-lib-context.o", "crypto/libcrypto-lib-core_algorithm.o", "crypto/libcrypto-lib-core_fetch.o", @@ -24093,10 +28082,13 @@ our %unified_info = ( "crypto/libcrypto-lib-cryptlib.o", "crypto/libcrypto-lib-ctype.o", "crypto/libcrypto-lib-cversion.o", + "crypto/libcrypto-lib-defaults.o", "crypto/libcrypto-lib-der_writer.o", + "crypto/libcrypto-lib-deterministic_nonce.o", "crypto/libcrypto-lib-ebcdic.o", "crypto/libcrypto-lib-ex_data.o", "crypto/libcrypto-lib-getenv.o", + "crypto/libcrypto-lib-indicator_core.o", "crypto/libcrypto-lib-info.o", "crypto/libcrypto-lib-init.o", "crypto/libcrypto-lib-initthread.o", @@ -24114,6 +28106,7 @@ our %unified_info = ( "crypto/libcrypto-lib-params.o", "crypto/libcrypto-lib-params_dup.o", "crypto/libcrypto-lib-params_from_text.o", + "crypto/libcrypto-lib-params_idx.o", "crypto/libcrypto-lib-passphrase.o", "crypto/libcrypto-lib-provider.o", "crypto/libcrypto-lib-provider_child.o", @@ -24121,12 +28114,16 @@ our %unified_info = ( "crypto/libcrypto-lib-provider_core.o", "crypto/libcrypto-lib-provider_predefined.o", "crypto/libcrypto-lib-punycode.o", + "crypto/libcrypto-lib-quic_vlint.o", "crypto/libcrypto-lib-self_test_core.o", + "crypto/libcrypto-lib-sleep.o", "crypto/libcrypto-lib-sparse_array.o", + "crypto/libcrypto-lib-ssl_err.o", "crypto/libcrypto-lib-threads_lib.o", "crypto/libcrypto-lib-threads_none.o", "crypto/libcrypto-lib-threads_pthread.o", "crypto/libcrypto-lib-threads_win.o", + "crypto/libcrypto-lib-time.o", "crypto/libcrypto-lib-trace.o", "crypto/libcrypto-lib-uid.o", "crypto/md4/libcrypto-lib-md4_dgst.o", @@ -24136,6 +28133,15 @@ our %unified_info = ( "crypto/md5/libcrypto-lib-md5_sha1.o", "crypto/mdc2/libcrypto-lib-mdc2_one.o", "crypto/mdc2/libcrypto-lib-mdc2dgst.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_encoders.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key_compress.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_matrix.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_ntt.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_params.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sample.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sign.o", + "crypto/ml_kem/libcrypto-lib-ml_kem.o", "crypto/modes/libcrypto-lib-cbc128.o", "crypto/modes/libcrypto-lib-ccm128.o", "crypto/modes/libcrypto-lib-cfb128.o", @@ -24147,6 +28153,7 @@ our %unified_info = ( "crypto/modes/libcrypto-lib-siv128.o", "crypto/modes/libcrypto-lib-wrap128.o", "crypto/modes/libcrypto-lib-xts128.o", + "crypto/modes/libcrypto-lib-xts128gb.o", "crypto/objects/libcrypto-lib-o_names.o", "crypto/objects/libcrypto-lib-obj_dat.o", "crypto/objects/libcrypto-lib-obj_err.o", @@ -24210,6 +28217,7 @@ our %unified_info = ( "crypto/rand/libcrypto-lib-rand_lib.o", "crypto/rand/libcrypto-lib-rand_meth.o", "crypto/rand/libcrypto-lib-rand_pool.o", + "crypto/rand/libcrypto-lib-rand_uniform.o", "crypto/rand/libcrypto-lib-randfile.o", "crypto/rc2/libcrypto-lib-rc2_cbc.o", "crypto/rc2/libcrypto-lib-rc2_ecb.o", @@ -24258,6 +28266,16 @@ our %unified_info = ( "crypto/sha/libcrypto-lib-sha3.o", "crypto/sha/libcrypto-lib-sha512.o", "crypto/siphash/libcrypto-lib-siphash.o", + "crypto/slh_dsa/libcrypto-lib-slh_adrs.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa_hash_ctx.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa_key.o", + "crypto/slh_dsa/libcrypto-lib-slh_fors.o", + "crypto/slh_dsa/libcrypto-lib-slh_hash.o", + "crypto/slh_dsa/libcrypto-lib-slh_hypertree.o", + "crypto/slh_dsa/libcrypto-lib-slh_params.o", + "crypto/slh_dsa/libcrypto-lib-slh_wots.o", + "crypto/slh_dsa/libcrypto-lib-slh_xmss.o", "crypto/sm2/libcrypto-lib-sm2_crypt.o", "crypto/sm2/libcrypto-lib-sm2_err.o", "crypto/sm2/libcrypto-lib-sm2_key.o", @@ -24275,6 +28293,12 @@ our %unified_info = ( "crypto/store/libcrypto-lib-store_register.o", "crypto/store/libcrypto-lib-store_result.o", "crypto/store/libcrypto-lib-store_strings.o", + "crypto/thread/arch/libcrypto-lib-thread_none.o", + "crypto/thread/arch/libcrypto-lib-thread_posix.o", + "crypto/thread/arch/libcrypto-lib-thread_win.o", + "crypto/thread/libcrypto-lib-api.o", + "crypto/thread/libcrypto-lib-arch.o", + "crypto/thread/libcrypto-lib-internal.o", "crypto/ts/libcrypto-lib-ts_asn1.o", "crypto/ts/libcrypto-lib-ts_conf.o", "crypto/ts/libcrypto-lib-ts_err.o", @@ -24303,14 +28327,22 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-pcy_map.o", "crypto/x509/libcrypto-lib-pcy_node.o", "crypto/x509/libcrypto-lib-pcy_tree.o", + "crypto/x509/libcrypto-lib-t_acert.o", "crypto/x509/libcrypto-lib-t_crl.o", "crypto/x509/libcrypto-lib-t_req.o", "crypto/x509/libcrypto-lib-t_x509.o", + "crypto/x509/libcrypto-lib-v3_aaa.o", + "crypto/x509/libcrypto-lib-v3_ac_tgt.o", "crypto/x509/libcrypto-lib-v3_addr.o", "crypto/x509/libcrypto-lib-v3_admis.o", "crypto/x509/libcrypto-lib-v3_akeya.o", "crypto/x509/libcrypto-lib-v3_akid.o", "crypto/x509/libcrypto-lib-v3_asid.o", + "crypto/x509/libcrypto-lib-v3_attrdesc.o", + "crypto/x509/libcrypto-lib-v3_attrmap.o", + "crypto/x509/libcrypto-lib-v3_audit_id.o", + "crypto/x509/libcrypto-lib-v3_authattid.o", + "crypto/x509/libcrypto-lib-v3_battcons.o", "crypto/x509/libcrypto-lib-v3_bcons.o", "crypto/x509/libcrypto-lib-v3_bitst.o", "crypto/x509/libcrypto-lib-v3_conf.o", @@ -24319,12 +28351,17 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_enum.o", "crypto/x509/libcrypto-lib-v3_extku.o", "crypto/x509/libcrypto-lib-v3_genn.o", + "crypto/x509/libcrypto-lib-v3_group_ac.o", "crypto/x509/libcrypto-lib-v3_ia5.o", + "crypto/x509/libcrypto-lib-v3_ind_iss.o", "crypto/x509/libcrypto-lib-v3_info.o", "crypto/x509/libcrypto-lib-v3_int.o", + "crypto/x509/libcrypto-lib-v3_iobo.o", "crypto/x509/libcrypto-lib-v3_ist.o", "crypto/x509/libcrypto-lib-v3_lib.o", "crypto/x509/libcrypto-lib-v3_ncons.o", + "crypto/x509/libcrypto-lib-v3_no_ass.o", + "crypto/x509/libcrypto-lib-v3_no_rev_avail.o", "crypto/x509/libcrypto-lib-v3_pci.o", "crypto/x509/libcrypto-lib-v3_pcia.o", "crypto/x509/libcrypto-lib-v3_pcons.o", @@ -24332,13 +28369,20 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_pmaps.o", "crypto/x509/libcrypto-lib-v3_prn.o", "crypto/x509/libcrypto-lib-v3_purp.o", + "crypto/x509/libcrypto-lib-v3_rolespec.o", "crypto/x509/libcrypto-lib-v3_san.o", + "crypto/x509/libcrypto-lib-v3_sda.o", + "crypto/x509/libcrypto-lib-v3_single_use.o", "crypto/x509/libcrypto-lib-v3_skid.o", + "crypto/x509/libcrypto-lib-v3_soa_id.o", "crypto/x509/libcrypto-lib-v3_sxnet.o", + "crypto/x509/libcrypto-lib-v3_timespec.o", "crypto/x509/libcrypto-lib-v3_tlsf.o", + "crypto/x509/libcrypto-lib-v3_usernotice.o", "crypto/x509/libcrypto-lib-v3_utf8.o", "crypto/x509/libcrypto-lib-v3_utl.o", "crypto/x509/libcrypto-lib-v3err.o", + "crypto/x509/libcrypto-lib-x509_acert.o", "crypto/x509/libcrypto-lib-x509_att.o", "crypto/x509/libcrypto-lib-x509_cmp.o", "crypto/x509/libcrypto-lib-x509_d2.o", @@ -24356,6 +28400,7 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x509_v3.o", "crypto/x509/libcrypto-lib-x509_vfy.o", "crypto/x509/libcrypto-lib-x509_vpm.o", + "crypto/x509/libcrypto-lib-x509aset.o", "crypto/x509/libcrypto-lib-x509cset.o", "crypto/x509/libcrypto-lib-x509name.o", "crypto/x509/libcrypto-lib-x509rset.o", @@ -24365,6 +28410,7 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x_attrib.o", "crypto/x509/libcrypto-lib-x_crl.o", "crypto/x509/libcrypto-lib-x_exten.o", + "crypto/x509/libcrypto-lib-x_ietfatt.o", "crypto/x509/libcrypto-lib-x_name.o", "crypto/x509/libcrypto-lib-x_pubkey.o", "crypto/x509/libcrypto-lib-x_req.o", @@ -24385,14 +28431,15 @@ our %unified_info = ( "ssl/libssl-lib-d1_srtp.o", "ssl/libssl-lib-methods.o", "ssl/libssl-lib-pqueue.o", + "ssl/libssl-lib-priority_queue.o", "ssl/libssl-lib-s3_enc.o", "ssl/libssl-lib-s3_lib.o", "ssl/libssl-lib-s3_msg.o", "ssl/libssl-lib-ssl_asn1.o", "ssl/libssl-lib-ssl_cert.o", + "ssl/libssl-lib-ssl_cert_comp.o", "ssl/libssl-lib-ssl_ciph.o", "ssl/libssl-lib-ssl_conf.o", - "ssl/libssl-lib-ssl_err.o", "ssl/libssl-lib-ssl_err_legacy.o", "ssl/libssl-lib-ssl_init.o", "ssl/libssl-lib-ssl_lib.o", @@ -24409,12 +28456,60 @@ our %unified_info = ( "ssl/libssl-lib-tls13_enc.o", "ssl/libssl-lib-tls_depr.o", "ssl/libssl-lib-tls_srp.o", - "ssl/record/libssl-lib-dtls1_bitmap.o", + "ssl/quic/libssl-lib-cc_newreno.o", + "ssl/quic/libssl-lib-json_enc.o", + "ssl/quic/libssl-lib-qlog.o", + "ssl/quic/libssl-lib-qlog_event_helpers.o", + "ssl/quic/libssl-lib-quic_ackm.o", + "ssl/quic/libssl-lib-quic_cfq.o", + "ssl/quic/libssl-lib-quic_channel.o", + "ssl/quic/libssl-lib-quic_demux.o", + "ssl/quic/libssl-lib-quic_engine.o", + "ssl/quic/libssl-lib-quic_fc.o", + "ssl/quic/libssl-lib-quic_fifd.o", + "ssl/quic/libssl-lib-quic_impl.o", + "ssl/quic/libssl-lib-quic_lcidm.o", + "ssl/quic/libssl-lib-quic_method.o", + "ssl/quic/libssl-lib-quic_obj.o", + "ssl/quic/libssl-lib-quic_port.o", + "ssl/quic/libssl-lib-quic_rcidm.o", + "ssl/quic/libssl-lib-quic_reactor.o", + "ssl/quic/libssl-lib-quic_reactor_wait_ctx.o", + "ssl/quic/libssl-lib-quic_record_rx.o", + "ssl/quic/libssl-lib-quic_record_shared.o", + "ssl/quic/libssl-lib-quic_record_tx.o", + "ssl/quic/libssl-lib-quic_record_util.o", + "ssl/quic/libssl-lib-quic_rstream.o", + "ssl/quic/libssl-lib-quic_rx_depack.o", + "ssl/quic/libssl-lib-quic_sf_list.o", + "ssl/quic/libssl-lib-quic_srt_gen.o", + "ssl/quic/libssl-lib-quic_srtm.o", + "ssl/quic/libssl-lib-quic_sstream.o", + "ssl/quic/libssl-lib-quic_statm.o", + "ssl/quic/libssl-lib-quic_stream_map.o", + "ssl/quic/libssl-lib-quic_thread_assist.o", + "ssl/quic/libssl-lib-quic_tls.o", + "ssl/quic/libssl-lib-quic_tls_api.o", + "ssl/quic/libssl-lib-quic_trace.o", + "ssl/quic/libssl-lib-quic_tserver.o", + "ssl/quic/libssl-lib-quic_txp.o", + "ssl/quic/libssl-lib-quic_txpim.o", + "ssl/quic/libssl-lib-quic_types.o", + "ssl/quic/libssl-lib-quic_wire.o", + "ssl/quic/libssl-lib-quic_wire_pkt.o", + "ssl/quic/libssl-lib-uint_set.o", "ssl/record/libssl-lib-rec_layer_d1.o", "ssl/record/libssl-lib-rec_layer_s3.o", - "ssl/record/libssl-lib-ssl3_buffer.o", - "ssl/record/libssl-lib-ssl3_record.o", - "ssl/record/libssl-lib-ssl3_record_tls13.o", + "ssl/record/methods/libssl-lib-dtls_meth.o", + "ssl/record/methods/libssl-lib-ssl3_meth.o", + "ssl/record/methods/libssl-lib-tls13_meth.o", + "ssl/record/methods/libssl-lib-tls1_meth.o", + "ssl/record/methods/libssl-lib-tls_common.o", + "ssl/record/methods/libssl-lib-tls_multib.o", + "ssl/record/methods/libssl-lib-tlsany_meth.o", + "ssl/rio/libssl-lib-poll_builder.o", + "ssl/rio/libssl-lib-poll_immediate.o", + "ssl/rio/libssl-lib-rio_notifier.o", "ssl/statem/libssl-lib-extensions.o", "ssl/statem/libssl-lib-extensions_clnt.o", "ssl/statem/libssl-lib-extensions_cust.o", @@ -24452,12 +28547,24 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ecx_key.o" => [ "providers/common/der/der_ecx_key.c" ], + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o" => [ + "providers/common/der/der_ml_dsa_gen.c" + ], + "providers/common/der/libcommon-lib-der_ml_dsa_key.o" => [ + "providers/common/der/der_ml_dsa_key.c" + ], "providers/common/der/libcommon-lib-der_rsa_gen.o" => [ "providers/common/der/der_rsa_gen.c" ], "providers/common/der/libcommon-lib-der_rsa_key.o" => [ "providers/common/der/der_rsa_key.c" ], + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o" => [ + "providers/common/der/der_slh_dsa_gen.c" + ], + "providers/common/der/libcommon-lib-der_slh_dsa_key.o" => [ + "providers/common/der/der_slh_dsa_key.c" + ], "providers/common/der/libcommon-lib-der_wrap_gen.o" => [ "providers/common/der/der_wrap_gen.c" ], @@ -24524,6 +28631,9 @@ our %unified_info = ( "providers/common/libfips-lib-securitycheck_fips.o" => [ "providers/common/securitycheck_fips.c" ], + "providers/endecode_test-bin-legacyprov.o" => [ + "providers/legacyprov.c" + ], "providers/evp_extra_test-bin-legacyprov.o" => [ "providers/legacyprov.c" ], @@ -24538,6 +28648,9 @@ our %unified_info = ( "providers/fips/fips-dso-fips_entry.o" => [ "providers/fips/fips_entry.c" ], + "providers/fips/libfips-lib-fipsindicator.o" => [ + "providers/fips/fipsindicator.c" + ], "providers/fips/libfips-lib-fipsprov.o" => [ "providers/fips/fipsprov.c" ], @@ -24601,6 +28714,15 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_hw.o" => [ "providers/implementations/ciphers/cipher_aes_gcm_hw.c" ], + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv.o" => [ + "providers/implementations/ciphers/cipher_aes_gcm_siv.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_hw.o" => [ + "providers/implementations/ciphers/cipher_aes_gcm_siv_hw.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_polyval.o" => [ + "providers/implementations/ciphers/cipher_aes_gcm_siv_polyval.c" + ], "providers/implementations/ciphers/libdefault-lib-cipher_aes_hw.o" => [ "providers/implementations/ciphers/cipher_aes_hw.c" ], @@ -24673,9 +28795,27 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_sm4.o" => [ "providers/implementations/ciphers/cipher_sm4.c" ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm.o" => [ + "providers/implementations/ciphers/cipher_sm4_ccm.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm_hw.o" => [ + "providers/implementations/ciphers/cipher_sm4_ccm_hw.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm.o" => [ + "providers/implementations/ciphers/cipher_sm4_gcm.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm_hw.o" => [ + "providers/implementations/ciphers/cipher_sm4_gcm_hw.c" + ], "providers/implementations/ciphers/libdefault-lib-cipher_sm4_hw.o" => [ "providers/implementations/ciphers/cipher_sm4_hw.c" ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts.o" => [ + "providers/implementations/ciphers/cipher_sm4_xts.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts_hw.o" => [ + "providers/implementations/ciphers/cipher_sm4_xts_hw.c" + ], "providers/implementations/ciphers/libdefault-lib-cipher_tdes.o" => [ "providers/implementations/ciphers/cipher_tdes.c" ], @@ -24895,6 +29035,15 @@ our %unified_info = ( "providers/implementations/encode_decode/libdefault-lib-endecoder_common.o" => [ "providers/implementations/encode_decode/endecoder_common.c" ], + "providers/implementations/encode_decode/libdefault-lib-ml_common_codecs.o" => [ + "providers/implementations/encode_decode/ml_common_codecs.c" + ], + "providers/implementations/encode_decode/libdefault-lib-ml_dsa_codecs.o" => [ + "providers/implementations/encode_decode/ml_dsa_codecs.c" + ], + "providers/implementations/encode_decode/libdefault-lib-ml_kem_codecs.o" => [ + "providers/implementations/encode_decode/ml_kem_codecs.c" + ], "providers/implementations/exchange/libdefault-lib-dh_exch.o" => [ "providers/implementations/exchange/dh_exch.c" ], @@ -24919,9 +29068,15 @@ our %unified_info = ( "providers/implementations/exchange/libfips-lib-kdf_exch.o" => [ "providers/implementations/exchange/kdf_exch.c" ], + "providers/implementations/kdfs/libdefault-lib-argon2.o" => [ + "providers/implementations/kdfs/argon2.c" + ], "providers/implementations/kdfs/libdefault-lib-hkdf.o" => [ "providers/implementations/kdfs/hkdf.c" ], + "providers/implementations/kdfs/libdefault-lib-hmacdrbg_kdf.o" => [ + "providers/implementations/kdfs/hmacdrbg_kdf.c" + ], "providers/implementations/kdfs/libdefault-lib-kbkdf.o" => [ "providers/implementations/kdfs/kbkdf.c" ], @@ -24979,12 +29134,39 @@ our %unified_info = ( "providers/implementations/kdfs/liblegacy-lib-pbkdf1.o" => [ "providers/implementations/kdfs/pbkdf1.c" ], + "providers/implementations/kdfs/liblegacy-lib-pvkkdf.o" => [ + "providers/implementations/kdfs/pvkkdf.c" + ], + "providers/implementations/kem/libdefault-lib-ec_kem.o" => [ + "providers/implementations/kem/ec_kem.c" + ], + "providers/implementations/kem/libdefault-lib-ecx_kem.o" => [ + "providers/implementations/kem/ecx_kem.c" + ], + "providers/implementations/kem/libdefault-lib-kem_util.o" => [ + "providers/implementations/kem/kem_util.c" + ], + "providers/implementations/kem/libdefault-lib-ml_kem_kem.o" => [ + "providers/implementations/kem/ml_kem_kem.c" + ], + "providers/implementations/kem/libdefault-lib-mlx_kem.o" => [ + "providers/implementations/kem/mlx_kem.c" + ], "providers/implementations/kem/libdefault-lib-rsa_kem.o" => [ "providers/implementations/kem/rsa_kem.c" ], + "providers/implementations/kem/libfips-lib-ml_kem_kem.o" => [ + "providers/implementations/kem/ml_kem_kem.c" + ], + "providers/implementations/kem/libfips-lib-mlx_kem.o" => [ + "providers/implementations/kem/mlx_kem.c" + ], "providers/implementations/kem/libfips-lib-rsa_kem.o" => [ "providers/implementations/kem/rsa_kem.c" ], + "providers/implementations/kem/libtemplate-lib-template_kem.o" => [ + "providers/implementations/kem/template_kem.c" + ], "providers/implementations/keymgmt/libdefault-lib-dh_kmgmt.o" => [ "providers/implementations/keymgmt/dh_kmgmt.c" ], @@ -25003,9 +29185,21 @@ our %unified_info = ( "providers/implementations/keymgmt/libdefault-lib-mac_legacy_kmgmt.o" => [ "providers/implementations/keymgmt/mac_legacy_kmgmt.c" ], + "providers/implementations/keymgmt/libdefault-lib-ml_dsa_kmgmt.o" => [ + "providers/implementations/keymgmt/ml_dsa_kmgmt.c" + ], + "providers/implementations/keymgmt/libdefault-lib-ml_kem_kmgmt.o" => [ + "providers/implementations/keymgmt/ml_kem_kmgmt.c" + ], + "providers/implementations/keymgmt/libdefault-lib-mlx_kmgmt.o" => [ + "providers/implementations/keymgmt/mlx_kmgmt.c" + ], "providers/implementations/keymgmt/libdefault-lib-rsa_kmgmt.o" => [ "providers/implementations/keymgmt/rsa_kmgmt.c" ], + "providers/implementations/keymgmt/libdefault-lib-slh_dsa_kmgmt.o" => [ + "providers/implementations/keymgmt/slh_dsa_kmgmt.c" + ], "providers/implementations/keymgmt/libfips-lib-dh_kmgmt.o" => [ "providers/implementations/keymgmt/dh_kmgmt.c" ], @@ -25024,9 +29218,24 @@ our %unified_info = ( "providers/implementations/keymgmt/libfips-lib-mac_legacy_kmgmt.o" => [ "providers/implementations/keymgmt/mac_legacy_kmgmt.c" ], + "providers/implementations/keymgmt/libfips-lib-ml_dsa_kmgmt.o" => [ + "providers/implementations/keymgmt/ml_dsa_kmgmt.c" + ], + "providers/implementations/keymgmt/libfips-lib-ml_kem_kmgmt.o" => [ + "providers/implementations/keymgmt/ml_kem_kmgmt.c" + ], + "providers/implementations/keymgmt/libfips-lib-mlx_kmgmt.o" => [ + "providers/implementations/keymgmt/mlx_kmgmt.c" + ], "providers/implementations/keymgmt/libfips-lib-rsa_kmgmt.o" => [ "providers/implementations/keymgmt/rsa_kmgmt.c" ], + "providers/implementations/keymgmt/libfips-lib-slh_dsa_kmgmt.o" => [ + "providers/implementations/keymgmt/slh_dsa_kmgmt.c" + ], + "providers/implementations/keymgmt/libtemplate-lib-template_kmgmt.o" => [ + "providers/implementations/keymgmt/template_kmgmt.c" + ], "providers/implementations/macs/libdefault-lib-blake2b_mac.o" => [ "providers/implementations/macs/blake2b_mac.c" ], @@ -25063,9 +29272,6 @@ our %unified_info = ( "providers/implementations/macs/libfips-lib-kmac_prov.o" => [ "providers/implementations/macs/kmac_prov.c" ], - "providers/implementations/rands/libdefault-lib-crngt.o" => [ - "providers/implementations/rands/crngt.c" - ], "providers/implementations/rands/libdefault-lib-drbg.o" => [ "providers/implementations/rands/drbg.c" ], @@ -25081,12 +29287,12 @@ our %unified_info = ( "providers/implementations/rands/libdefault-lib-seed_src.o" => [ "providers/implementations/rands/seed_src.c" ], + "providers/implementations/rands/libdefault-lib-seed_src_jitter.o" => [ + "providers/implementations/rands/seed_src_jitter.c" + ], "providers/implementations/rands/libdefault-lib-test_rng.o" => [ "providers/implementations/rands/test_rng.c" ], - "providers/implementations/rands/libfips-lib-crngt.o" => [ - "providers/implementations/rands/crngt.c" - ], "providers/implementations/rands/libfips-lib-drbg.o" => [ "providers/implementations/rands/drbg.c" ], @@ -25099,6 +29305,9 @@ our %unified_info = ( "providers/implementations/rands/libfips-lib-drbg_hmac.o" => [ "providers/implementations/rands/drbg_hmac.c" ], + "providers/implementations/rands/libfips-lib-fips_crng_test.o" => [ + "providers/implementations/rands/fips_crng_test.c" + ], "providers/implementations/rands/libfips-lib-test_rng.o" => [ "providers/implementations/rands/test_rng.c" ], @@ -25126,9 +29335,15 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-mac_legacy_sig.o" => [ "providers/implementations/signature/mac_legacy_sig.c" ], + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o" => [ + "providers/implementations/signature/ml_dsa_sig.c" + ], "providers/implementations/signature/libdefault-lib-rsa_sig.o" => [ "providers/implementations/signature/rsa_sig.c" ], + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o" => [ + "providers/implementations/signature/slh_dsa_sig.c" + ], "providers/implementations/signature/libdefault-lib-sm2_sig.o" => [ "providers/implementations/signature/sm2_sig.c" ], @@ -25144,15 +29359,36 @@ our %unified_info = ( "providers/implementations/signature/libfips-lib-mac_legacy_sig.o" => [ "providers/implementations/signature/mac_legacy_sig.c" ], + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o" => [ + "providers/implementations/signature/ml_dsa_sig.c" + ], "providers/implementations/signature/libfips-lib-rsa_sig.o" => [ "providers/implementations/signature/rsa_sig.c" ], + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o" => [ + "providers/implementations/signature/slh_dsa_sig.c" + ], + "providers/implementations/skeymgmt/libdefault-lib-aes_skmgmt.o" => [ + "providers/implementations/skeymgmt/aes_skmgmt.c" + ], + "providers/implementations/skeymgmt/libdefault-lib-generic.o" => [ + "providers/implementations/skeymgmt/generic.c" + ], + "providers/implementations/skeymgmt/libfips-lib-aes_skmgmt.o" => [ + "providers/implementations/skeymgmt/aes_skmgmt.c" + ], + "providers/implementations/skeymgmt/libfips-lib-generic.o" => [ + "providers/implementations/skeymgmt/generic.c" + ], "providers/implementations/storemgmt/libdefault-lib-file_store.o" => [ "providers/implementations/storemgmt/file_store.c" ], "providers/implementations/storemgmt/libdefault-lib-file_store_any2obj.o" => [ "providers/implementations/storemgmt/file_store_any2obj.c" ], + "providers/implementations/storemgmt/libdefault-lib-winstore_store.o" => [ + "providers/implementations/storemgmt/winstore_store.c" + ], "providers/legacy" => [ "providers/legacy-dso-legacy.res", "providers/legacy-dso-legacyprov.o", @@ -25174,8 +29410,12 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ec_sig.o", "providers/common/der/libcommon-lib-der_ecx_gen.o", "providers/common/der/libcommon-lib-der_ecx_key.o", + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o", + "providers/common/der/libcommon-lib-der_ml_dsa_key.o", "providers/common/der/libcommon-lib-der_rsa_gen.o", "providers/common/der/libcommon-lib-der_rsa_key.o", + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o", + "providers/common/der/libcommon-lib-der_slh_dsa_key.o", "providers/common/der/libcommon-lib-der_wrap_gen.o", "providers/common/libcommon-lib-provider_ctx.o", "providers/common/libcommon-lib-provider_err.o", @@ -25187,7 +29427,7 @@ our %unified_info = ( "providers/implementations/ciphers/libcommon-lib-ciphercommon_gcm_hw.o", "providers/implementations/ciphers/libcommon-lib-ciphercommon_hw.o", "providers/implementations/digests/libcommon-lib-digestcommon.o", - "ssl/record/libcommon-lib-tls_pad.o" + "ssl/record/methods/libcommon-lib-tls_pad.o" ], "providers/libcrypto-lib-baseprov.o" => [ "providers/baseprov.c" @@ -25223,6 +29463,9 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_aes_ccm_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_polyval.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_ocb.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_ocb_hw.o", @@ -25247,7 +29490,13 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_cts.o", "providers/implementations/ciphers/libdefault-lib-cipher_null.o", "providers/implementations/ciphers/libdefault-lib-cipher_sm4.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_sm4_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes_common.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes_default.o", @@ -25276,11 +29525,16 @@ our %unified_info = ( "providers/implementations/encode_decode/libdefault-lib-encode_key2ms.o", "providers/implementations/encode_decode/libdefault-lib-encode_key2text.o", "providers/implementations/encode_decode/libdefault-lib-endecoder_common.o", + "providers/implementations/encode_decode/libdefault-lib-ml_common_codecs.o", + "providers/implementations/encode_decode/libdefault-lib-ml_dsa_codecs.o", + "providers/implementations/encode_decode/libdefault-lib-ml_kem_codecs.o", "providers/implementations/exchange/libdefault-lib-dh_exch.o", "providers/implementations/exchange/libdefault-lib-ecdh_exch.o", "providers/implementations/exchange/libdefault-lib-ecx_exch.o", "providers/implementations/exchange/libdefault-lib-kdf_exch.o", + "providers/implementations/kdfs/libdefault-lib-argon2.o", "providers/implementations/kdfs/libdefault-lib-hkdf.o", + "providers/implementations/kdfs/libdefault-lib-hmacdrbg_kdf.o", "providers/implementations/kdfs/libdefault-lib-kbkdf.o", "providers/implementations/kdfs/libdefault-lib-krb5kdf.o", "providers/implementations/kdfs/libdefault-lib-pbkdf2.o", @@ -25291,6 +29545,11 @@ our %unified_info = ( "providers/implementations/kdfs/libdefault-lib-sskdf.o", "providers/implementations/kdfs/libdefault-lib-tls1_prf.o", "providers/implementations/kdfs/libdefault-lib-x942kdf.o", + "providers/implementations/kem/libdefault-lib-ec_kem.o", + "providers/implementations/kem/libdefault-lib-ecx_kem.o", + "providers/implementations/kem/libdefault-lib-kem_util.o", + "providers/implementations/kem/libdefault-lib-ml_kem_kem.o", + "providers/implementations/kem/libdefault-lib-mlx_kem.o", "providers/implementations/kem/libdefault-lib-rsa_kem.o", "providers/implementations/keymgmt/libdefault-lib-dh_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-dsa_kmgmt.o", @@ -25298,7 +29557,11 @@ our %unified_info = ( "providers/implementations/keymgmt/libdefault-lib-ecx_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-kdf_legacy_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-mac_legacy_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-ml_dsa_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-ml_kem_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-mlx_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-rsa_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-slh_dsa_kmgmt.o", "providers/implementations/macs/libdefault-lib-blake2b_mac.o", "providers/implementations/macs/libdefault-lib-blake2s_mac.o", "providers/implementations/macs/libdefault-lib-cmac_prov.o", @@ -25307,12 +29570,12 @@ our %unified_info = ( "providers/implementations/macs/libdefault-lib-kmac_prov.o", "providers/implementations/macs/libdefault-lib-poly1305_prov.o", "providers/implementations/macs/libdefault-lib-siphash_prov.o", - "providers/implementations/rands/libdefault-lib-crngt.o", "providers/implementations/rands/libdefault-lib-drbg.o", "providers/implementations/rands/libdefault-lib-drbg_ctr.o", "providers/implementations/rands/libdefault-lib-drbg_hash.o", "providers/implementations/rands/libdefault-lib-drbg_hmac.o", "providers/implementations/rands/libdefault-lib-seed_src.o", + "providers/implementations/rands/libdefault-lib-seed_src_jitter.o", "providers/implementations/rands/libdefault-lib-test_rng.o", "providers/implementations/rands/seeding/libdefault-lib-rand_cpu_x86.o", "providers/implementations/rands/seeding/libdefault-lib-rand_tsc.o", @@ -25322,11 +29585,16 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-ecdsa_sig.o", "providers/implementations/signature/libdefault-lib-eddsa_sig.o", "providers/implementations/signature/libdefault-lib-mac_legacy_sig.o", + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o", "providers/implementations/signature/libdefault-lib-rsa_sig.o", + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o", "providers/implementations/signature/libdefault-lib-sm2_sig.o", + "providers/implementations/skeymgmt/libdefault-lib-aes_skmgmt.o", + "providers/implementations/skeymgmt/libdefault-lib-generic.o", "providers/implementations/storemgmt/libdefault-lib-file_store.o", "providers/implementations/storemgmt/libdefault-lib-file_store_any2obj.o", - "ssl/libdefault-lib-s3_cbc.o" + "providers/implementations/storemgmt/libdefault-lib-winstore_store.o", + "ssl/record/methods/libdefault-lib-ssl3_cbc.o" ], "providers/libfips.a" => [ "crypto/aes/libfips-lib-aes_cbc.o", @@ -25428,14 +29696,15 @@ our %unified_info = ( "crypto/evp/libfips-lib-kem.o", "crypto/evp/libfips-lib-keymgmt_lib.o", "crypto/evp/libfips-lib-keymgmt_meth.o", - "crypto/evp/libfips-lib-m_sigver.o", "crypto/evp/libfips-lib-mac_lib.o", "crypto/evp/libfips-lib-mac_meth.o", "crypto/evp/libfips-lib-p_lib.o", "crypto/evp/libfips-lib-pmeth_check.o", "crypto/evp/libfips-lib-pmeth_gn.o", "crypto/evp/libfips-lib-pmeth_lib.o", + "crypto/evp/libfips-lib-s_lib.o", "crypto/evp/libfips-lib-signature.o", + "crypto/evp/libfips-lib-skeymgmt_meth.o", "crypto/ffc/libfips-lib-ffc_backend.o", "crypto/ffc/libfips-lib-ffc_dh.o", "crypto/ffc/libfips-lib-ffc_key_generate.o", @@ -25443,6 +29712,8 @@ our %unified_info = ( "crypto/ffc/libfips-lib-ffc_params.o", "crypto/ffc/libfips-lib-ffc_params_generate.o", "crypto/ffc/libfips-lib-ffc_params_validate.o", + "crypto/hashtable/libfips-lib-hashfunc.o", + "crypto/hashtable/libfips-lib-hashtable.o", "crypto/hmac/libfips-lib-hmac.o", "crypto/lhash/libfips-lib-lhash.o", "crypto/libfips-lib-asn1_dsa.o", @@ -25465,6 +29736,7 @@ our %unified_info = ( "crypto/libfips-lib-params.o", "crypto/libfips-lib-params_dup.o", "crypto/libfips-lib-params_from_text.o", + "crypto/libfips-lib-params_idx.o", "crypto/libfips-lib-provider_core.o", "crypto/libfips-lib-provider_predefined.o", "crypto/libfips-lib-self_test_core.o", @@ -25473,6 +29745,16 @@ our %unified_info = ( "crypto/libfips-lib-threads_none.o", "crypto/libfips-lib-threads_pthread.o", "crypto/libfips-lib-threads_win.o", + "crypto/libfips-lib-time.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_encoders.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_key.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_key_compress.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_matrix.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_ntt.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_params.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_sample.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_sign.o", + "crypto/ml_kem/libfips-lib-ml_kem.o", "crypto/modes/libfips-lib-cbc128.o", "crypto/modes/libfips-lib-ccm128.o", "crypto/modes/libfips-lib-cfb128.o", @@ -25481,6 +29763,7 @@ our %unified_info = ( "crypto/modes/libfips-lib-ofb128.o", "crypto/modes/libfips-lib-wrap128.o", "crypto/modes/libfips-lib-xts128.o", + "crypto/modes/libfips-lib-xts128gb.o", "crypto/property/libfips-lib-defn_cache.o", "crypto/property/libfips-lib-property.o", "crypto/property/libfips-lib-property_parse.o", @@ -25509,7 +29792,23 @@ our %unified_info = ( "crypto/sha/libfips-lib-sha256.o", "crypto/sha/libfips-lib-sha3.o", "crypto/sha/libfips-lib-sha512.o", + "crypto/slh_dsa/libfips-lib-slh_adrs.o", + "crypto/slh_dsa/libfips-lib-slh_dsa.o", + "crypto/slh_dsa/libfips-lib-slh_dsa_hash_ctx.o", + "crypto/slh_dsa/libfips-lib-slh_dsa_key.o", + "crypto/slh_dsa/libfips-lib-slh_fors.o", + "crypto/slh_dsa/libfips-lib-slh_hash.o", + "crypto/slh_dsa/libfips-lib-slh_hypertree.o", + "crypto/slh_dsa/libfips-lib-slh_params.o", + "crypto/slh_dsa/libfips-lib-slh_wots.o", + "crypto/slh_dsa/libfips-lib-slh_xmss.o", "crypto/stack/libfips-lib-stack.o", + "crypto/thread/arch/libfips-lib-thread_none.o", + "crypto/thread/arch/libfips-lib-thread_posix.o", + "crypto/thread/arch/libfips-lib-thread_win.o", + "crypto/thread/libfips-lib-api.o", + "crypto/thread/libfips-lib-arch.o", + "crypto/thread/libfips-lib-internal.o", "providers/common/der/libfips-lib-der_rsa_sig.o", "providers/common/libfips-lib-bio_prov.o", "providers/common/libfips-lib-capabilities.o", @@ -25518,6 +29817,7 @@ our %unified_info = ( "providers/common/libfips-lib-provider_util.o", "providers/common/libfips-lib-securitycheck.o", "providers/common/libfips-lib-securitycheck_fips.o", + "providers/fips/libfips-lib-fipsindicator.o", "providers/fips/libfips-lib-fipsprov.o", "providers/fips/libfips-lib-self_test.o", "providers/fips/libfips-lib-self_test_kats.o", @@ -25555,6 +29855,8 @@ our %unified_info = ( "providers/implementations/kdfs/libfips-lib-sskdf.o", "providers/implementations/kdfs/libfips-lib-tls1_prf.o", "providers/implementations/kdfs/libfips-lib-x942kdf.o", + "providers/implementations/kem/libfips-lib-ml_kem_kem.o", + "providers/implementations/kem/libfips-lib-mlx_kem.o", "providers/implementations/kem/libfips-lib-rsa_kem.o", "providers/implementations/keymgmt/libfips-lib-dh_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-dsa_kmgmt.o", @@ -25562,24 +29864,32 @@ our %unified_info = ( "providers/implementations/keymgmt/libfips-lib-ecx_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-kdf_legacy_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-mac_legacy_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-ml_dsa_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-ml_kem_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-mlx_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-rsa_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-slh_dsa_kmgmt.o", "providers/implementations/macs/libfips-lib-cmac_prov.o", "providers/implementations/macs/libfips-lib-gmac_prov.o", "providers/implementations/macs/libfips-lib-hmac_prov.o", "providers/implementations/macs/libfips-lib-kmac_prov.o", - "providers/implementations/rands/libfips-lib-crngt.o", "providers/implementations/rands/libfips-lib-drbg.o", "providers/implementations/rands/libfips-lib-drbg_ctr.o", "providers/implementations/rands/libfips-lib-drbg_hash.o", "providers/implementations/rands/libfips-lib-drbg_hmac.o", + "providers/implementations/rands/libfips-lib-fips_crng_test.o", "providers/implementations/rands/libfips-lib-test_rng.o", "providers/implementations/signature/libfips-lib-dsa_sig.o", "providers/implementations/signature/libfips-lib-ecdsa_sig.o", "providers/implementations/signature/libfips-lib-eddsa_sig.o", "providers/implementations/signature/libfips-lib-mac_legacy_sig.o", + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o", "providers/implementations/signature/libfips-lib-rsa_sig.o", + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o", + "providers/implementations/skeymgmt/libfips-lib-aes_skmgmt.o", + "providers/implementations/skeymgmt/libfips-lib-generic.o", "providers/libcommon.a", - "ssl/libfips-lib-s3_cbc.o" + "ssl/record/methods/libfips-lib-ssl3_cbc.o" ], "providers/liblegacy-lib-prov_running.o" => [ "providers/prov_running.c" @@ -25609,13 +29919,12 @@ our %unified_info = ( "providers/implementations/digests/liblegacy-lib-ripemd_prov.o", "providers/implementations/digests/liblegacy-lib-wp_prov.o", "providers/implementations/kdfs/liblegacy-lib-pbkdf1.o", + "providers/implementations/kdfs/liblegacy-lib-pvkkdf.o", "providers/liblegacy-lib-prov_running.o" ], - "ssl/libdefault-lib-s3_cbc.o" => [ - "ssl/s3_cbc.c" - ], - "ssl/libfips-lib-s3_cbc.o" => [ - "ssl/s3_cbc.c" + "providers/libtemplate.a" => [ + "providers/implementations/kem/libtemplate-lib-template_kem.o", + "providers/implementations/keymgmt/libtemplate-lib-template_kmgmt.o" ], "ssl/libssl-lib-bio_ssl.o" => [ "ssl/bio_ssl.c" @@ -25635,6 +29944,9 @@ our %unified_info = ( "ssl/libssl-lib-pqueue.o" => [ "ssl/pqueue.c" ], + "ssl/libssl-lib-priority_queue.o" => [ + "ssl/priority_queue.c" + ], "ssl/libssl-lib-s3_enc.o" => [ "ssl/s3_enc.c" ], @@ -25650,15 +29962,15 @@ our %unified_info = ( "ssl/libssl-lib-ssl_cert.o" => [ "ssl/ssl_cert.c" ], + "ssl/libssl-lib-ssl_cert_comp.o" => [ + "ssl/ssl_cert_comp.c" + ], "ssl/libssl-lib-ssl_ciph.o" => [ "ssl/ssl_ciph.c" ], "ssl/libssl-lib-ssl_conf.o" => [ "ssl/ssl_conf.c" ], - "ssl/libssl-lib-ssl_err.o" => [ - "ssl/ssl_err.c" - ], "ssl/libssl-lib-ssl_err_legacy.o" => [ "ssl/ssl_err_legacy.c" ], @@ -25707,11 +30019,131 @@ our %unified_info = ( "ssl/libssl-lib-tls_srp.o" => [ "ssl/tls_srp.c" ], - "ssl/record/libcommon-lib-tls_pad.o" => [ - "ssl/record/tls_pad.c" + "ssl/quic/libssl-lib-cc_newreno.o" => [ + "ssl/quic/cc_newreno.c" + ], + "ssl/quic/libssl-lib-json_enc.o" => [ + "ssl/quic/json_enc.c" + ], + "ssl/quic/libssl-lib-qlog.o" => [ + "ssl/quic/qlog.c" + ], + "ssl/quic/libssl-lib-qlog_event_helpers.o" => [ + "ssl/quic/qlog_event_helpers.c" + ], + "ssl/quic/libssl-lib-quic_ackm.o" => [ + "ssl/quic/quic_ackm.c" + ], + "ssl/quic/libssl-lib-quic_cfq.o" => [ + "ssl/quic/quic_cfq.c" + ], + "ssl/quic/libssl-lib-quic_channel.o" => [ + "ssl/quic/quic_channel.c" + ], + "ssl/quic/libssl-lib-quic_demux.o" => [ + "ssl/quic/quic_demux.c" + ], + "ssl/quic/libssl-lib-quic_engine.o" => [ + "ssl/quic/quic_engine.c" + ], + "ssl/quic/libssl-lib-quic_fc.o" => [ + "ssl/quic/quic_fc.c" + ], + "ssl/quic/libssl-lib-quic_fifd.o" => [ + "ssl/quic/quic_fifd.c" + ], + "ssl/quic/libssl-lib-quic_impl.o" => [ + "ssl/quic/quic_impl.c" + ], + "ssl/quic/libssl-lib-quic_lcidm.o" => [ + "ssl/quic/quic_lcidm.c" + ], + "ssl/quic/libssl-lib-quic_method.o" => [ + "ssl/quic/quic_method.c" + ], + "ssl/quic/libssl-lib-quic_obj.o" => [ + "ssl/quic/quic_obj.c" + ], + "ssl/quic/libssl-lib-quic_port.o" => [ + "ssl/quic/quic_port.c" + ], + "ssl/quic/libssl-lib-quic_rcidm.o" => [ + "ssl/quic/quic_rcidm.c" + ], + "ssl/quic/libssl-lib-quic_reactor.o" => [ + "ssl/quic/quic_reactor.c" + ], + "ssl/quic/libssl-lib-quic_reactor_wait_ctx.o" => [ + "ssl/quic/quic_reactor_wait_ctx.c" + ], + "ssl/quic/libssl-lib-quic_record_rx.o" => [ + "ssl/quic/quic_record_rx.c" + ], + "ssl/quic/libssl-lib-quic_record_shared.o" => [ + "ssl/quic/quic_record_shared.c" + ], + "ssl/quic/libssl-lib-quic_record_tx.o" => [ + "ssl/quic/quic_record_tx.c" + ], + "ssl/quic/libssl-lib-quic_record_util.o" => [ + "ssl/quic/quic_record_util.c" ], - "ssl/record/libssl-lib-dtls1_bitmap.o" => [ - "ssl/record/dtls1_bitmap.c" + "ssl/quic/libssl-lib-quic_rstream.o" => [ + "ssl/quic/quic_rstream.c" + ], + "ssl/quic/libssl-lib-quic_rx_depack.o" => [ + "ssl/quic/quic_rx_depack.c" + ], + "ssl/quic/libssl-lib-quic_sf_list.o" => [ + "ssl/quic/quic_sf_list.c" + ], + "ssl/quic/libssl-lib-quic_srt_gen.o" => [ + "ssl/quic/quic_srt_gen.c" + ], + "ssl/quic/libssl-lib-quic_srtm.o" => [ + "ssl/quic/quic_srtm.c" + ], + "ssl/quic/libssl-lib-quic_sstream.o" => [ + "ssl/quic/quic_sstream.c" + ], + "ssl/quic/libssl-lib-quic_statm.o" => [ + "ssl/quic/quic_statm.c" + ], + "ssl/quic/libssl-lib-quic_stream_map.o" => [ + "ssl/quic/quic_stream_map.c" + ], + "ssl/quic/libssl-lib-quic_thread_assist.o" => [ + "ssl/quic/quic_thread_assist.c" + ], + "ssl/quic/libssl-lib-quic_tls.o" => [ + "ssl/quic/quic_tls.c" + ], + "ssl/quic/libssl-lib-quic_tls_api.o" => [ + "ssl/quic/quic_tls_api.c" + ], + "ssl/quic/libssl-lib-quic_trace.o" => [ + "ssl/quic/quic_trace.c" + ], + "ssl/quic/libssl-lib-quic_tserver.o" => [ + "ssl/quic/quic_tserver.c" + ], + "ssl/quic/libssl-lib-quic_txp.o" => [ + "ssl/quic/quic_txp.c" + ], + "ssl/quic/libssl-lib-quic_txpim.o" => [ + "ssl/quic/quic_txpim.c" + ], + "ssl/quic/libssl-lib-quic_types.o" => [ + "ssl/quic/quic_types.c" + ], + "ssl/quic/libssl-lib-quic_wire.o" => [ + "ssl/quic/quic_wire.c" + ], + "ssl/quic/libssl-lib-quic_wire_pkt.o" => [ + "ssl/quic/quic_wire_pkt.c" + ], + "ssl/quic/libssl-lib-uint_set.o" => [ + "ssl/quic/uint_set.c" ], "ssl/record/libssl-lib-rec_layer_d1.o" => [ "ssl/record/rec_layer_d1.c" @@ -25719,14 +30151,44 @@ our %unified_info = ( "ssl/record/libssl-lib-rec_layer_s3.o" => [ "ssl/record/rec_layer_s3.c" ], - "ssl/record/libssl-lib-ssl3_buffer.o" => [ - "ssl/record/ssl3_buffer.c" + "ssl/record/methods/libcommon-lib-tls_pad.o" => [ + "ssl/record/methods/tls_pad.c" + ], + "ssl/record/methods/libdefault-lib-ssl3_cbc.o" => [ + "ssl/record/methods/ssl3_cbc.c" + ], + "ssl/record/methods/libfips-lib-ssl3_cbc.o" => [ + "ssl/record/methods/ssl3_cbc.c" + ], + "ssl/record/methods/libssl-lib-dtls_meth.o" => [ + "ssl/record/methods/dtls_meth.c" + ], + "ssl/record/methods/libssl-lib-ssl3_meth.o" => [ + "ssl/record/methods/ssl3_meth.c" + ], + "ssl/record/methods/libssl-lib-tls13_meth.o" => [ + "ssl/record/methods/tls13_meth.c" + ], + "ssl/record/methods/libssl-lib-tls1_meth.o" => [ + "ssl/record/methods/tls1_meth.c" ], - "ssl/record/libssl-lib-ssl3_record.o" => [ - "ssl/record/ssl3_record.c" + "ssl/record/methods/libssl-lib-tls_common.o" => [ + "ssl/record/methods/tls_common.c" ], - "ssl/record/libssl-lib-ssl3_record_tls13.o" => [ - "ssl/record/ssl3_record_tls13.c" + "ssl/record/methods/libssl-lib-tls_multib.o" => [ + "ssl/record/methods/tls_multib.c" + ], + "ssl/record/methods/libssl-lib-tlsany_meth.o" => [ + "ssl/record/methods/tlsany_meth.c" + ], + "ssl/rio/libssl-lib-poll_builder.o" => [ + "ssl/rio/poll_builder.c" + ], + "ssl/rio/libssl-lib-poll_immediate.o" => [ + "ssl/rio/poll_immediate.c" + ], + "ssl/rio/libssl-lib-rio_notifier.o" => [ + "ssl/rio/rio_notifier.c" ], "ssl/statem/libssl-lib-extensions.o" => [ "ssl/statem/extensions.c" @@ -25822,6 +30284,8 @@ our %unified_info = ( "test/asn1_string_table_test.c" ], "test/asn1_time_test" => [ + "crypto/asn1/asn1_time_test-bin-a_time.o", + "crypto/asn1_time_test-bin-ctype.o", "test/asn1_time_test-bin-asn1_time_test.o" ], "test/asn1_time_test-bin-asn1_time_test.o" => [ @@ -25852,6 +30316,18 @@ our %unified_info = ( "test/bftest-bin-bftest.o" => [ "test/bftest.c" ], + "test/bio_addr_test" => [ + "test/bio_addr_test-bin-bio_addr_test.o" + ], + "test/bio_addr_test-bin-bio_addr_test.o" => [ + "test/bio_addr_test.c" + ], + "test/bio_base64_test" => [ + "test/bio_base64_test-bin-bio_base64_test.o" + ], + "test/bio_base64_test-bin-bio_base64_test.o" => [ + "test/bio_base64_test.c" + ], "test/bio_callback_test" => [ "test/bio_callback_test-bin-bio_callback_test.o" ], @@ -25864,6 +30340,12 @@ our %unified_info = ( "test/bio_core_test-bin-bio_core_test.o" => [ "test/bio_core_test.c" ], + "test/bio_dgram_test" => [ + "test/bio_dgram_test-bin-bio_dgram_test.o" + ], + "test/bio_dgram_test-bin-bio_dgram_test.o" => [ + "test/bio_dgram_test.c" + ], "test/bio_enc_test" => [ "test/bio_enc_test-bin-bio_enc_test.o" ], @@ -25876,6 +30358,12 @@ our %unified_info = ( "test/bio_memleak_test-bin-bio_memleak_test.o" => [ "test/bio_memleak_test.c" ], + "test/bio_meth_test" => [ + "test/bio_meth_test-bin-bio_meth_test.o" + ], + "test/bio_meth_test-bin-bio_meth_test.o" => [ + "test/bio_meth_test.c" + ], "test/bio_prefix_text" => [ "test/bio_prefix_text-bin-bio_prefix_text.o" ], @@ -25894,6 +30382,12 @@ our %unified_info = ( "test/bio_readbuffer_test-bin-bio_readbuffer_test.o" => [ "test/bio_readbuffer_test.c" ], + "test/bio_tfo_test" => [ + "test/bio_tfo_test-bin-bio_tfo_test.o" + ], + "test/bio_tfo_test-bin-bio_tfo_test.o" => [ + "test/bio_tfo_test.c" + ], "test/bioprinttest" => [ "test/bioprinttest-bin-bioprinttest.o" ], @@ -25912,6 +30406,12 @@ our %unified_info = ( "test/bntest-bin-bntest.o" => [ "test/bntest.c" ], + "test/build_wincrypt_test" => [ + "test/build_wincrypt_test-bin-build_wincrypt_test.o" + ], + "test/build_wincrypt_test-bin-build_wincrypt_test.o" => [ + "test/build_wincrypt_test.c" + ], "test/buildtest_c_aes" => [ "test/buildtest_c_aes-bin-buildtest_aes.o" ], @@ -25942,6 +30442,12 @@ our %unified_info = ( "test/buildtest_c_buffer-bin-buildtest_buffer.o" => [ "test/buildtest_buffer.c" ], + "test/buildtest_c_byteorder" => [ + "test/buildtest_c_byteorder-bin-buildtest_byteorder.o" + ], + "test/buildtest_c_byteorder-bin-buildtest_byteorder.o" => [ + "test/buildtest_byteorder.c" + ], "test/buildtest_c_camellia" => [ "test/buildtest_c_camellia-bin-buildtest_camellia.o" ], @@ -25990,12 +30496,6 @@ our %unified_info = ( "test/buildtest_c_core_dispatch-bin-buildtest_core_dispatch.o" => [ "test/buildtest_core_dispatch.c" ], - "test/buildtest_c_core_names" => [ - "test/buildtest_c_core_names-bin-buildtest_core_names.o" - ], - "test/buildtest_c_core_names-bin-buildtest_core_names.o" => [ - "test/buildtest_core_names.c" - ], "test/buildtest_c_core_object" => [ "test/buildtest_c_core_object-bin-buildtest_core_object.o" ], @@ -26044,6 +30544,12 @@ our %unified_info = ( "test/buildtest_c_e_os2-bin-buildtest_e_os2.o" => [ "test/buildtest_e_os2.c" ], + "test/buildtest_c_e_ostime" => [ + "test/buildtest_c_e_ostime-bin-buildtest_e_ostime.o" + ], + "test/buildtest_c_e_ostime-bin-buildtest_e_ostime.o" => [ + "test/buildtest_e_ostime.c" + ], "test/buildtest_c_ebcdic" => [ "test/buildtest_c_ebcdic-bin-buildtest_ebcdic.o" ], @@ -26098,6 +30604,12 @@ our %unified_info = ( "test/buildtest_c_hmac-bin-buildtest_hmac.o" => [ "test/buildtest_hmac.c" ], + "test/buildtest_c_hpke" => [ + "test/buildtest_c_hpke-bin-buildtest_hpke.o" + ], + "test/buildtest_c_hpke-bin-buildtest_hpke.o" => [ + "test/buildtest_hpke.c" + ], "test/buildtest_c_http" => [ "test/buildtest_c_http-bin-buildtest_http.o" ], @@ -26110,6 +30622,12 @@ our %unified_info = ( "test/buildtest_c_idea-bin-buildtest_idea.o" => [ "test/buildtest_idea.c" ], + "test/buildtest_c_indicator" => [ + "test/buildtest_c_indicator-bin-buildtest_indicator.o" + ], + "test/buildtest_c_indicator-bin-buildtest_indicator.o" => [ + "test/buildtest_indicator.c" + ], "test/buildtest_c_kdf" => [ "test/buildtest_c_kdf-bin-buildtest_kdf.o" ], @@ -26140,6 +30658,12 @@ our %unified_info = ( "test/buildtest_c_mdc2-bin-buildtest_mdc2.o" => [ "test/buildtest_mdc2.c" ], + "test/buildtest_c_ml_kem" => [ + "test/buildtest_c_ml_kem-bin-buildtest_ml_kem.o" + ], + "test/buildtest_c_ml_kem-bin-buildtest_ml_kem.o" => [ + "test/buildtest_ml_kem.c" + ], "test/buildtest_c_modes" => [ "test/buildtest_c_modes-bin-buildtest_modes.o" ], @@ -26200,6 +30724,12 @@ our %unified_info = ( "test/buildtest_c_provider-bin-buildtest_provider.o" => [ "test/buildtest_provider.c" ], + "test/buildtest_c_quic" => [ + "test/buildtest_c_quic-bin-buildtest_quic.o" + ], + "test/buildtest_c_quic-bin-buildtest_quic.o" => [ + "test/buildtest_quic.c" + ], "test/buildtest_c_rand" => [ "test/buildtest_c_rand-bin-buildtest_rand.o" ], @@ -26284,6 +30814,12 @@ our %unified_info = ( "test/buildtest_c_symhacks-bin-buildtest_symhacks.o" => [ "test/buildtest_symhacks.c" ], + "test/buildtest_c_thread" => [ + "test/buildtest_c_thread-bin-buildtest_thread.o" + ], + "test/buildtest_c_thread-bin-buildtest_thread.o" => [ + "test/buildtest_thread.c" + ], "test/buildtest_c_tls1" => [ "test/buildtest_c_tls1-bin-buildtest_tls1.o" ], @@ -26314,6 +30850,29 @@ our %unified_info = ( "test/buildtest_c_whrlpool-bin-buildtest_whrlpool.o" => [ "test/buildtest_whrlpool.c" ], + "test/byteorder_test" => [ + "test/byteorder_test-bin-byteorder_test.o" + ], + "test/byteorder_test-bin-byteorder_test.o" => [ + "test/byteorder_test.c" + ], + "test/ca_internals_test" => [ + "apps/ca_internals_test-bin-ca.o", + "apps/lib/ca_internals_test-bin-app_libctx.o", + "apps/lib/ca_internals_test-bin-app_provider.o", + "apps/lib/ca_internals_test-bin-app_rand.o", + "apps/lib/ca_internals_test-bin-app_x509.o", + "apps/lib/ca_internals_test-bin-apps.o", + "apps/lib/ca_internals_test-bin-apps_ui.o", + "apps/lib/ca_internals_test-bin-engine.o", + "apps/lib/ca_internals_test-bin-fmt.o", + "crypto/asn1/ca_internals_test-bin-a_time.o", + "crypto/ca_internals_test-bin-ctype.o", + "test/ca_internals_test-bin-ca_internals_test.o" + ], + "test/ca_internals_test-bin-ca_internals_test.o" => [ + "test/ca_internals_test.c" + ], "test/casttest" => [ "test/casttest-bin-casttest.o" ], @@ -26492,6 +31051,12 @@ our %unified_info = ( "test/danetest-bin-danetest.o" => [ "test/danetest.c" ], + "test/decoder_propq_test" => [ + "test/decoder_propq_test-bin-decoder_propq_test.o" + ], + "test/decoder_propq_test-bin-decoder_propq_test.o" => [ + "test/decoder_propq_test.c" + ], "test/defltfips_test" => [ "test/defltfips_test-bin-defltfips_test.o" ], @@ -26573,6 +31138,7 @@ our %unified_info = ( "test/ectest.c" ], "test/endecode_test" => [ + "providers/endecode_test-bin-legacyprov.o", "test/endecode_test-bin-endecode_test.o", "test/helpers/endecode_test-bin-predefined_dhparams.o" ], @@ -26605,17 +31171,29 @@ our %unified_info = ( ], "test/evp_extra_test" => [ "providers/evp_extra_test-bin-legacyprov.o", - "test/evp_extra_test-bin-evp_extra_test.o" + "test/evp_extra_test-bin-evp_extra_test.o", + "test/evp_extra_test-bin-fake_pipelineprov.o", + "test/evp_extra_test-bin-fake_rsaprov.o" ], "test/evp_extra_test-bin-evp_extra_test.o" => [ "test/evp_extra_test.c" ], + "test/evp_extra_test-bin-fake_pipelineprov.o" => [ + "test/fake_pipelineprov.c" + ], + "test/evp_extra_test-bin-fake_rsaprov.o" => [ + "test/fake_rsaprov.c" + ], "test/evp_extra_test2" => [ - "test/evp_extra_test2-bin-evp_extra_test2.o" + "test/evp_extra_test2-bin-evp_extra_test2.o", + "test/evp_extra_test2-bin-tls-provider.o" ], "test/evp_extra_test2-bin-evp_extra_test2.o" => [ "test/evp_extra_test2.c" ], + "test/evp_extra_test2-bin-tls-provider.o" => [ + "test/tls-provider.c" + ], "test/evp_fetch_prov_test" => [ "test/evp_fetch_prov_test-bin-evp_fetch_prov_test.o" ], @@ -26640,6 +31218,12 @@ our %unified_info = ( "test/evp_pkey_ctx_new_from_name-bin-evp_pkey_ctx_new_from_name.o" => [ "test/evp_pkey_ctx_new_from_name.c" ], + "test/evp_pkey_dhkem_test" => [ + "test/evp_pkey_dhkem_test-bin-evp_pkey_dhkem_test.o" + ], + "test/evp_pkey_dhkem_test-bin-evp_pkey_dhkem_test.o" => [ + "test/evp_pkey_dhkem_test.c" + ], "test/evp_pkey_dparams_test" => [ "test/evp_pkey_dparams_test-bin-evp_pkey_dparams_test.o" ], @@ -26652,12 +31236,28 @@ our %unified_info = ( "test/evp_pkey_provided_test-bin-evp_pkey_provided_test.o" => [ "test/evp_pkey_provided_test.c" ], + "test/evp_skey_test" => [ + "test/evp_skey_test-bin-evp_skey_test.o", + "test/evp_skey_test-bin-fake_cipherprov.o" + ], + "test/evp_skey_test-bin-evp_skey_test.o" => [ + "test/evp_skey_test.c" + ], + "test/evp_skey_test-bin-fake_cipherprov.o" => [ + "test/fake_cipherprov.c" + ], "test/evp_test" => [ "test/evp_test-bin-evp_test.o" ], "test/evp_test-bin-evp_test.o" => [ "test/evp_test.c" ], + "test/evp_xof_test" => [ + "test/evp_xof_test-bin-evp_xof_test.o" + ], + "test/evp_xof_test-bin-evp_xof_test.o" => [ + "test/evp_xof_test.c" + ], "test/exdatatest" => [ "test/exdatatest-bin-exdatatest.o" ], @@ -26743,15 +31343,108 @@ our %unified_info = ( "test/helpers/fatalerrtest-bin-ssltestlib.o" => [ "test/helpers/ssltestlib.c" ], + "test/helpers/json_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/json_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/json_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/json_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/pkcs12_api_test-bin-pkcs12.o" => [ + "test/helpers/pkcs12.c" + ], "test/helpers/pkcs12_format_test-bin-pkcs12.o" => [ "test/helpers/pkcs12.c" ], + "test/helpers/quic_multistream_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quic_multistream_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quic_multistream_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quic_multistream_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quic_newcid_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quic_newcid_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quic_newcid_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quic_newcid_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quic_radix_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quic_radix_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quic_radix_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quic_radix_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quic_srt_gen_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quic_srt_gen_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quic_srt_gen_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quic_srt_gen_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quicapitest-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quicapitest-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quicapitest-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quicapitest-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quicfaultstest-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quicfaultstest-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quicfaultstest-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quicfaultstest-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], "test/helpers/recordlentest-bin-ssltestlib.o" => [ "test/helpers/ssltestlib.c" ], + "test/helpers/rpktest-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], "test/helpers/servername_test-bin-ssltestlib.o" => [ "test/helpers/ssltestlib.c" ], + "test/helpers/ssl_handshake_rtt_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], "test/helpers/ssl_old_test-bin-predefined_dhparams.o" => [ "test/helpers/predefined_dhparams.c" ], @@ -26779,6 +31472,9 @@ our %unified_info = ( "test/helpers/tls13ccstest-bin-ssltestlib.o" => [ "test/helpers/ssltestlib.c" ], + "test/helpers/tls13groupselection_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], "test/hexstr_test" => [ "test/hexstr_test-bin-hexstr_test.o" ], @@ -26791,6 +31487,12 @@ our %unified_info = ( "test/hmactest-bin-hmactest.o" => [ "test/hmactest.c" ], + "test/hpke_test" => [ + "test/hpke_test-bin-hpke_test.o" + ], + "test/hpke_test-bin-hpke_test.o" => [ + "test/hpke_test.c" + ], "test/http_test" => [ "test/http_test-bin-http_test.o" ], @@ -26809,6 +31511,16 @@ our %unified_info = ( "test/igetest-bin-igetest.o" => [ "test/igetest.c" ], + "test/json_test" => [ + "test/helpers/json_test-bin-noisydgrambio.o", + "test/helpers/json_test-bin-pktsplitbio.o", + "test/helpers/json_test-bin-quictestlib.o", + "test/helpers/json_test-bin-ssltestlib.o", + "test/json_test-bin-json_test.o" + ], + "test/json_test-bin-json_test.o" => [ + "test/json_test.c" + ], "test/keymgmt_internal_test" => [ "test/keymgmt_internal_test-bin-keymgmt_internal_test.o" ], @@ -26830,6 +31542,7 @@ our %unified_info = ( "test/testutil/libtestutil-lib-driver.o", "test/testutil/libtestutil-lib-fake_random.o", "test/testutil/libtestutil-lib-format_output.o", + "test/testutil/libtestutil-lib-helper.o", "test/testutil/libtestutil-lib-load.o", "test/testutil/libtestutil-lib-main.o", "test/testutil/libtestutil-lib-options.o", @@ -26842,6 +31555,12 @@ our %unified_info = ( "test/testutil/libtestutil-lib-tests.o", "test/testutil/libtestutil-lib-testutil_init.o" ], + "test/list_test" => [ + "test/list_test-bin-list_test.o" + ], + "test/list_test-bin-list_test.o" => [ + "test/list_test.c" + ], "test/localetest" => [ "test/localetest-bin-localetest.o" ], @@ -26860,12 +31579,36 @@ our %unified_info = ( "test/mdc2test-bin-mdc2test.o" => [ "test/mdc2test.c" ], + "test/membio_test" => [ + "test/membio_test-bin-membio_test.o" + ], + "test/membio_test-bin-membio_test.o" => [ + "test/membio_test.c" + ], "test/memleaktest" => [ "test/memleaktest-bin-memleaktest.o" ], "test/memleaktest-bin-memleaktest.o" => [ "test/memleaktest.c" ], + "test/ml_dsa_test" => [ + "test/ml_dsa_test-bin-ml_dsa_test.o" + ], + "test/ml_dsa_test-bin-ml_dsa_test.o" => [ + "test/ml_dsa_test.c" + ], + "test/ml_kem_evp_extra_test" => [ + "test/ml_kem_evp_extra_test-bin-ml_kem_evp_extra_test.o" + ], + "test/ml_kem_evp_extra_test-bin-ml_kem_evp_extra_test.o" => [ + "test/ml_kem_evp_extra_test.c" + ], + "test/ml_kem_internal_test" => [ + "test/ml_kem_internal_test-bin-ml_kem_internal_test.o" + ], + "test/ml_kem_internal_test-bin-ml_kem_internal_test.o" => [ + "test/ml_kem_internal_test.c" + ], "test/modes_internal_test" => [ "test/modes_internal_test-bin-modes_internal_test.o" ], @@ -26911,11 +31654,18 @@ our %unified_info = ( "test/p_test.c" ], "test/packettest" => [ + "crypto/packettest-bin-quic_vlint.o", "test/packettest-bin-packettest.o" ], "test/packettest-bin-packettest.o" => [ "test/packettest.c" ], + "test/pairwise_fail_test" => [ + "test/pairwise_fail_test-bin-pairwise_fail_test.o" + ], + "test/pairwise_fail_test-bin-pairwise_fail_test.o" => [ + "test/pairwise_fail_test.c" + ], "test/param_build_test" => [ "test/param_build_test-bin-param_build_test.o" ], @@ -26964,6 +31714,13 @@ our %unified_info = ( "test/pemtest-bin-pemtest.o" => [ "test/pemtest.c" ], + "test/pkcs12_api_test" => [ + "test/helpers/pkcs12_api_test-bin-pkcs12.o", + "test/pkcs12_api_test-bin-pkcs12_api_test.o" + ], + "test/pkcs12_api_test-bin-pkcs12_api_test.o" => [ + "test/pkcs12_api_test.c" + ], "test/pkcs12_format_test" => [ "test/helpers/pkcs12_format_test-bin-pkcs12.o", "test/pkcs12_format_test-bin-pkcs12_format_test.o" @@ -26995,6 +31752,12 @@ our %unified_info = ( "test/poly1305_internal_test-bin-poly1305_internal_test.o" => [ "test/poly1305_internal_test.c" ], + "test/priority_queue_test" => [ + "test/priority_queue_test-bin-priority_queue_test.o" + ], + "test/priority_queue_test-bin-priority_queue_test.o" => [ + "test/priority_queue_test.c" + ], "test/property_test" => [ "test/property_test-bin-property_test.o" ], @@ -27013,6 +31776,12 @@ our %unified_info = ( "test/provfetchtest-bin-provfetchtest.o" => [ "test/provfetchtest.c" ], + "test/provider_default_search_path_test" => [ + "test/provider_default_search_path_test-bin-provider_default_search_path_test.o" + ], + "test/provider_default_search_path_test-bin-provider_default_search_path_test.o" => [ + "test/provider_default_search_path_test.c" + ], "test/provider_fallback_test" => [ "test/provider_fallback_test-bin-provider_fallback_test.o" ], @@ -27061,6 +31830,174 @@ our %unified_info = ( "test/punycode_test-bin-punycode_test.o" => [ "test/punycode_test.c" ], + "test/quic_ackm_test" => [ + "test/quic_ackm_test-bin-cc_dummy.o", + "test/quic_ackm_test-bin-quic_ackm_test.o" + ], + "test/quic_ackm_test-bin-cc_dummy.o" => [ + "test/cc_dummy.c" + ], + "test/quic_ackm_test-bin-quic_ackm_test.o" => [ + "test/quic_ackm_test.c" + ], + "test/quic_cc_test" => [ + "test/quic_cc_test-bin-quic_cc_test.o" + ], + "test/quic_cc_test-bin-quic_cc_test.o" => [ + "test/quic_cc_test.c" + ], + "test/quic_cfq_test" => [ + "test/quic_cfq_test-bin-quic_cfq_test.o" + ], + "test/quic_cfq_test-bin-quic_cfq_test.o" => [ + "test/quic_cfq_test.c" + ], + "test/quic_client_test" => [ + "test/quic_client_test-bin-quic_client_test.o" + ], + "test/quic_client_test-bin-quic_client_test.o" => [ + "test/quic_client_test.c" + ], + "test/quic_fc_test" => [ + "test/quic_fc_test-bin-quic_fc_test.o" + ], + "test/quic_fc_test-bin-quic_fc_test.o" => [ + "test/quic_fc_test.c" + ], + "test/quic_fifd_test" => [ + "test/quic_fifd_test-bin-cc_dummy.o", + "test/quic_fifd_test-bin-quic_fifd_test.o" + ], + "test/quic_fifd_test-bin-cc_dummy.o" => [ + "test/cc_dummy.c" + ], + "test/quic_fifd_test-bin-quic_fifd_test.o" => [ + "test/quic_fifd_test.c" + ], + "test/quic_lcidm_test" => [ + "test/quic_lcidm_test-bin-quic_lcidm_test.o" + ], + "test/quic_lcidm_test-bin-quic_lcidm_test.o" => [ + "test/quic_lcidm_test.c" + ], + "test/quic_multistream_test" => [ + "test/helpers/quic_multistream_test-bin-noisydgrambio.o", + "test/helpers/quic_multistream_test-bin-pktsplitbio.o", + "test/helpers/quic_multistream_test-bin-quictestlib.o", + "test/helpers/quic_multistream_test-bin-ssltestlib.o", + "test/quic_multistream_test-bin-quic_multistream_test.o" + ], + "test/quic_multistream_test-bin-quic_multistream_test.o" => [ + "test/quic_multistream_test.c" + ], + "test/quic_newcid_test" => [ + "test/helpers/quic_newcid_test-bin-noisydgrambio.o", + "test/helpers/quic_newcid_test-bin-pktsplitbio.o", + "test/helpers/quic_newcid_test-bin-quictestlib.o", + "test/helpers/quic_newcid_test-bin-ssltestlib.o", + "test/quic_newcid_test-bin-quic_newcid_test.o" + ], + "test/quic_newcid_test-bin-quic_newcid_test.o" => [ + "test/quic_newcid_test.c" + ], + "test/quic_qlog_test" => [ + "test/quic_qlog_test-bin-quic_qlog_test.o" + ], + "test/quic_qlog_test-bin-quic_qlog_test.o" => [ + "test/quic_qlog_test.c" + ], + "test/quic_radix_test" => [ + "test/helpers/quic_radix_test-bin-noisydgrambio.o", + "test/helpers/quic_radix_test-bin-pktsplitbio.o", + "test/helpers/quic_radix_test-bin-quictestlib.o", + "test/helpers/quic_radix_test-bin-ssltestlib.o", + "test/radix/quic_radix_test-bin-quic_radix.o" + ], + "test/quic_rcidm_test" => [ + "test/quic_rcidm_test-bin-quic_rcidm_test.o" + ], + "test/quic_rcidm_test-bin-quic_rcidm_test.o" => [ + "test/quic_rcidm_test.c" + ], + "test/quic_record_test" => [ + "test/quic_record_test-bin-quic_record_test.o" + ], + "test/quic_record_test-bin-quic_record_test.o" => [ + "test/quic_record_test.c" + ], + "test/quic_srt_gen_test" => [ + "test/helpers/quic_srt_gen_test-bin-noisydgrambio.o", + "test/helpers/quic_srt_gen_test-bin-pktsplitbio.o", + "test/helpers/quic_srt_gen_test-bin-quictestlib.o", + "test/helpers/quic_srt_gen_test-bin-ssltestlib.o", + "test/quic_srt_gen_test-bin-quic_srt_gen_test.o" + ], + "test/quic_srt_gen_test-bin-quic_srt_gen_test.o" => [ + "test/quic_srt_gen_test.c" + ], + "test/quic_srtm_test" => [ + "test/quic_srtm_test-bin-quic_srtm_test.o" + ], + "test/quic_srtm_test-bin-quic_srtm_test.o" => [ + "test/quic_srtm_test.c" + ], + "test/quic_stream_test" => [ + "test/quic_stream_test-bin-quic_stream_test.o" + ], + "test/quic_stream_test-bin-quic_stream_test.o" => [ + "test/quic_stream_test.c" + ], + "test/quic_tserver_test" => [ + "test/quic_tserver_test-bin-quic_tserver_test.o" + ], + "test/quic_tserver_test-bin-quic_tserver_test.o" => [ + "test/quic_tserver_test.c" + ], + "test/quic_txp_test" => [ + "test/quic_txp_test-bin-cc_dummy.o", + "test/quic_txp_test-bin-quic_txp_test.o" + ], + "test/quic_txp_test-bin-cc_dummy.o" => [ + "test/cc_dummy.c" + ], + "test/quic_txp_test-bin-quic_txp_test.o" => [ + "test/quic_txp_test.c" + ], + "test/quic_txpim_test" => [ + "test/quic_txpim_test-bin-quic_txpim_test.o" + ], + "test/quic_txpim_test-bin-quic_txpim_test.o" => [ + "test/quic_txpim_test.c" + ], + "test/quic_wire_test" => [ + "test/quic_wire_test-bin-quic_wire_test.o" + ], + "test/quic_wire_test-bin-quic_wire_test.o" => [ + "test/quic_wire_test.c" + ], + "test/quicapitest" => [ + "test/helpers/quicapitest-bin-noisydgrambio.o", + "test/helpers/quicapitest-bin-pktsplitbio.o", + "test/helpers/quicapitest-bin-quictestlib.o", + "test/helpers/quicapitest-bin-ssltestlib.o", + "test/quicapitest-bin-quicapitest.o" + ], + "test/quicapitest-bin-quicapitest.o" => [ + "test/quicapitest.c" + ], + "test/quicfaultstest" => [ + "test/helpers/quicfaultstest-bin-noisydgrambio.o", + "test/helpers/quicfaultstest-bin-pktsplitbio.o", + "test/helpers/quicfaultstest-bin-quictestlib.o", + "test/helpers/quicfaultstest-bin-ssltestlib.o", + "test/quicfaultstest-bin-quicfaultstest.o" + ], + "test/quicfaultstest-bin-quicfaultstest.o" => [ + "test/quicfaultstest.c" + ], + "test/radix/quic_radix_test-bin-quic_radix.o" => [ + "test/radix/quic_radix.c" + ], "test/rand_status_test" => [ "test/rand_status_test-bin-rand_status_test.o" ], @@ -27091,11 +32028,11 @@ our %unified_info = ( "test/rc5test-bin-rc5test.o" => [ "test/rc5test.c" ], - "test/rdrand_sanitytest" => [ - "test/rdrand_sanitytest-bin-rdrand_sanitytest.o" + "test/rdcpu_sanitytest" => [ + "test/rdcpu_sanitytest-bin-rdcpu_sanitytest.o" ], - "test/rdrand_sanitytest-bin-rdrand_sanitytest.o" => [ - "test/rdrand_sanitytest.c" + "test/rdcpu_sanitytest-bin-rdcpu_sanitytest.o" => [ + "test/rdcpu_sanitytest.c" ], "test/recordlentest" => [ "test/helpers/recordlentest-bin-ssltestlib.o", @@ -27104,6 +32041,13 @@ our %unified_info = ( "test/recordlentest-bin-recordlentest.o" => [ "test/recordlentest.c" ], + "test/rpktest" => [ + "test/helpers/rpktest-bin-ssltestlib.o", + "test/rpktest-bin-rpktest.o" + ], + "test/rpktest-bin-rpktest.o" => [ + "test/rpktest.c" + ], "test/rsa_complex" => [ "test/rsa_complex-bin-rsa_complex.o" ], @@ -27128,6 +32072,18 @@ our %unified_info = ( "test/rsa_test-bin-rsa_test.o" => [ "test/rsa_test.c" ], + "test/rsa_x931_test" => [ + "test/rsa_x931_test-bin-rsa_x931_test.o" + ], + "test/rsa_x931_test-bin-rsa_x931_test.o" => [ + "test/rsa_x931_test.c" + ], + "test/safe_math_test" => [ + "test/safe_math_test-bin-safe_math_test.o" + ], + "test/safe_math_test-bin-safe_math_test.o" => [ + "test/safe_math_test.c" + ], "test/sanitytest" => [ "test/sanitytest-bin-sanitytest.o" ], @@ -27159,6 +32115,12 @@ our %unified_info = ( "test/siphash_internal_test-bin-siphash_internal_test.o" => [ "test/siphash_internal_test.c" ], + "test/slh_dsa_test" => [ + "test/slh_dsa_test-bin-slh_dsa_test.o" + ], + "test/slh_dsa_test-bin-slh_dsa_test.o" => [ + "test/slh_dsa_test.c" + ], "test/sm2_internal_test" => [ "test/sm2_internal_test-bin-sm2_internal_test.o" ], @@ -27201,6 +32163,13 @@ our %unified_info = ( "test/ssl_ctx_test-bin-ssl_ctx_test.o" => [ "test/ssl_ctx_test.c" ], + "test/ssl_handshake_rtt_test" => [ + "test/helpers/ssl_handshake_rtt_test-bin-ssltestlib.o", + "test/ssl_handshake_rtt_test-bin-ssl_handshake_rtt_test.o" + ], + "test/ssl_handshake_rtt_test-bin-ssl_handshake_rtt_test.o" => [ + "test/ssl_handshake_rtt_test.c" + ], "test/ssl_old_test" => [ "test/helpers/ssl_old_test-bin-predefined_dhparams.o", "test/ssl_old_test-bin-ssl_old_test.o" @@ -27259,6 +32228,12 @@ our %unified_info = ( "test/stack_test-bin-stack_test.o" => [ "test/stack_test.c" ], + "test/strtoultest" => [ + "test/strtoultest-bin-strtoultest.o" + ], + "test/strtoultest-bin-strtoultest.o" => [ + "test/strtoultest.c" + ], "test/sysdefaulttest" => [ "test/sysdefaulttest-bin-sysdefaulttest.o" ], @@ -27289,6 +32264,9 @@ our %unified_info = ( "test/testutil/libtestutil-lib-format_output.o" => [ "test/testutil/format_output.c" ], + "test/testutil/libtestutil-lib-helper.o" => [ + "test/testutil/helper.c" + ], "test/testutil/libtestutil-lib-load.o" => [ "test/testutil/load.c" ], @@ -27322,6 +32300,12 @@ our %unified_info = ( "test/testutil/libtestutil-lib-testutil_init.o" => [ "test/testutil/testutil_init.c" ], + "test/threadpool_test" => [ + "test/threadpool_test-bin-threadpool_test.o" + ], + "test/threadpool_test-bin-threadpool_test.o" => [ + "test/threadpool_test.c" + ], "test/threadstest" => [ "test/threadstest-bin-threadstest.o" ], @@ -27340,6 +32324,12 @@ our %unified_info = ( "test/time_offset_test-bin-time_offset_test.o" => [ "test/time_offset_test.c" ], + "test/time_test" => [ + "test/time_test-bin-time_test.o" + ], + "test/time_test-bin-time_test.o" => [ + "test/time_test.c" + ], "test/tls13ccstest" => [ "test/helpers/tls13ccstest-bin-ssltestlib.o", "test/tls13ccstest-bin-tls13ccstest.o" @@ -27353,6 +32343,13 @@ our %unified_info = ( "test/tls13encryptiontest-bin-tls13encryptiontest.o" => [ "test/tls13encryptiontest.c" ], + "test/tls13groupselection_test" => [ + "test/helpers/tls13groupselection_test-bin-ssltestlib.o", + "test/tls13groupselection_test-bin-tls13groupselection_test.o" + ], + "test/tls13groupselection_test-bin-tls13groupselection_test.o" => [ + "test/tls13groupselection_test.c" + ], "test/trace_api_test" => [ "test/trace_api_test-bin-trace_api_test.o" ], @@ -27408,6 +32405,12 @@ our %unified_info = ( "test/wpackettest-bin-wpackettest.o" => [ "test/wpackettest.c" ], + "test/x509_acert_test" => [ + "test/x509_acert_test-bin-x509_acert_test.o" + ], + "test/x509_acert_test-bin-x509_acert_test.o" => [ + "test/x509_acert_test.c" + ], "test/x509_check_cert_pkey_test" => [ "test/x509_check_cert_pkey_test-bin-x509_check_cert_pkey_test.o" ], @@ -27426,6 +32429,24 @@ our %unified_info = ( "test/x509_internal_test-bin-x509_internal_test.o" => [ "test/x509_internal_test.c" ], + "test/x509_load_cert_file_test" => [ + "test/x509_load_cert_file_test-bin-x509_load_cert_file_test.o" + ], + "test/x509_load_cert_file_test-bin-x509_load_cert_file_test.o" => [ + "test/x509_load_cert_file_test.c" + ], + "test/x509_req_test" => [ + "test/x509_req_test-bin-x509_req_test.o" + ], + "test/x509_req_test-bin-x509_req_test.o" => [ + "test/x509_req_test.c" + ], + "test/x509_test" => [ + "test/x509_test-bin-x509_test.o" + ], + "test/x509_test-bin-x509_test.o" => [ + "test/x509_test.c" + ], "test/x509_time_test" => [ "test/x509_time_test-bin-x509_time_test.o" ], @@ -27486,6 +32507,7 @@ my @makevars = ( "LDLIBS", "MT", "MTFLAGS", + "OBJCOPY", "PERL", "RANLIB", "RC", @@ -27502,6 +32524,12 @@ my %disabled_info = ( "asm" => { "macro" => "OPENSSL_NO_ASM" }, + "brotli" => { + "macro" => "OPENSSL_NO_BROTLI" + }, + "brotli-dynamic" => { + "macro" => "OPENSSL_NO_BROTLI_DYNAMIC" + }, "comp" => { "macro" => "OPENSSL_NO_COMP", "skipped" => [ @@ -27514,6 +32542,9 @@ my %disabled_info = ( "crypto-mdebug-backtrace" => { "macro" => "OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE" }, + "demos" => { + "macro" => "OPENSSL_NO_DEMOS" + }, "devcryptoeng" => { "macro" => "OPENSSL_NO_DEVCRYPTOENG" }, @@ -27526,12 +32557,24 @@ my %disabled_info = ( "external-tests" => { "macro" => "OPENSSL_NO_EXTERNAL_TESTS" }, + "fips-jitter" => { + "macro" => "OPENSSL_NO_FIPS_JITTER" + }, "fuzz-afl" => { "macro" => "OPENSSL_NO_FUZZ_AFL" }, "fuzz-libfuzzer" => { "macro" => "OPENSSL_NO_FUZZ_LIBFUZZER" }, + "h3demo" => { + "macro" => "OPENSSL_NO_H3DEMO" + }, + "hqinterop" => { + "macro" => "OPENSSL_NO_HQINTEROP" + }, + "jitter" => { + "macro" => "OPENSSL_NO_JITTER" + }, "ktls" => { "macro" => "OPENSSL_NO_KTLS" }, @@ -27547,6 +32590,9 @@ my %disabled_info = ( "msan" => { "macro" => "OPENSSL_NO_MSAN" }, + "pie" => { + "macro" => "OPENSSL_NO_PIE" + }, "rc5" => { "macro" => "OPENSSL_NO_RC5", "skipped" => [ @@ -27562,6 +32608,12 @@ my %disabled_info = ( "ssl3-method" => { "macro" => "OPENSSL_NO_SSL3_METHOD" }, + "sslkeylog" => { + "macro" => "OPENSSL_NO_SSLKEYLOG" + }, + "tfo" => { + "macro" => "OPENSSL_NO_TFO" + }, "trace" => { "macro" => "OPENSSL_NO_TRACE" }, @@ -27576,6 +32628,18 @@ my %disabled_info = ( }, "weak-ssl-ciphers" => { "macro" => "OPENSSL_NO_WEAK_SSL_CIPHERS" + }, + "zlib" => { + "macro" => "OPENSSL_NO_ZLIB" + }, + "zlib-dynamic" => { + "macro" => "OPENSSL_NO_ZLIB_DYNAMIC" + }, + "zstd" => { + "macro" => "OPENSSL_NO_ZSTD" + }, + "zstd-dynamic" => { + "macro" => "OPENSSL_NO_ZSTD_DYNAMIC" } ); my @user_crossable = qw( AR AS CC CXX CPP LD MT RANLIB RC ); @@ -27589,15 +32653,15 @@ unless (caller) { use File::Copy; use Pod::Usage; - use lib '/home/runner/work/node/node/deps/openssl/openssl/util/perl'; - use OpenSSL::fallback '/home/runner/work/node/node/deps/openssl/openssl/external/perl/MODULES.txt'; + use lib '/node/deps/openssl/openssl/util/perl'; + use OpenSSL::fallback '/node/deps/openssl/openssl/external/perl/MODULES.txt'; my $here = dirname($0); if (scalar @ARGV == 0) { # With no arguments, re-create the build file # We do that in two steps, where the first step emits perl - # snipets. + # snippets. my $buildfile = $config{build_file}; my $buildfile_template = "$buildfile.in"; @@ -27617,7 +32681,7 @@ unless (caller) { ); use lib '.'; - use lib '/home/runner/work/node/node/deps/openssl/openssl/Configurations'; + use lib '/node/deps/openssl/openssl/Configurations'; use gentemplate; open my $buildfile_template_fh, ">$buildfile_template" @@ -27634,8 +32698,8 @@ unless (caller) { my $prepend = <<'_____'; use File::Spec::Functions; -use lib '/home/runner/work/node/node/deps/openssl/openssl/util/perl'; -use lib '/home/runner/work/node/node/deps/openssl/openssl/Configurations'; +use lib '/node/deps/openssl/openssl/util/perl'; +use lib '/node/deps/openssl/openssl/Configurations'; use lib '.'; use platform; _____ diff --git a/deps/openssl/config/archs/VC-WIN32/no-asm/crypto/buildinf.h b/deps/openssl/config/archs/VC-WIN32/no-asm/crypto/buildinf.h index 8be833a43a513d..83e554abae5a07 100644 --- a/deps/openssl/config/archs/VC-WIN32/no-asm/crypto/buildinf.h +++ b/deps/openssl/config/archs/VC-WIN32/no-asm/crypto/buildinf.h @@ -11,7 +11,7 @@ */ #define PLATFORM "platform: " -#define DATE "built on: Sun Jul 20 00:56:16 2025 UTC" +#define DATE "built on: Sun Jul 27 01:00:07 2025 UTC" /* * Generate compiler_flags as an array of individual characters. This is a diff --git a/deps/openssl/config/archs/VC-WIN32/no-asm/crypto/params_idx.c b/deps/openssl/config/archs/VC-WIN32/no-asm/crypto/params_idx.c new file mode 100644 index 00000000000000..874125eb57a17c --- /dev/null +++ b/deps/openssl/config/archs/VC-WIN32/no-asm/crypto/params_idx.c @@ -0,0 +1,3366 @@ +/* + * WARNING: do not edit! + * Generated by makefile from crypto/params_idx.c.in + * + * Copyright 2023 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + +#include "internal/e_os.h" +#include "internal/param_names.h" +#include + +/* Machine generated TRIE -- generated by util/perl/OpenSSL/paramnames.pm */ +int ossl_param_find_pidx(const char *s) +{ + switch(s[0]) { + default: + break; + case 'a': + switch(s[1]) { + default: + break; + case 'c': + if (strcmp("vp-info", s + 2) == 0) + return PIDX_KDF_PARAM_X942_ACVPINFO; + break; + case 'd': + switch(s[2]) { + default: + break; + case 'd': + if (strcmp("itional-random", s + 3) == 0) + return PIDX_SIGNATURE_PARAM_ADD_RANDOM; + break; + case '\0': + return PIDX_KDF_PARAM_ARGON2_AD; + } + break; + case 'e': + if (strcmp("ad", s + 2) == 0) + return PIDX_CIPHER_PARAM_AEAD; + break; + case 'l': + switch(s[2]) { + default: + break; + case 'g': + switch(s[3]) { + default: + break; + case '_': + if (strcmp("id_param", s + 4) == 0) + return PIDX_CIPHER_PARAM_ALGORITHM_ID_PARAMS_OLD; + break; + case 'i': + if (strcmp("d-absent", s + 4) == 0) + return PIDX_DIGEST_PARAM_ALGID_ABSENT; + break; + case 'o': + switch(s[4]) { + default: + break; + case 'r': + switch(s[5]) { + default: + break; + case 'i': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case 'h': + switch(s[8]) { + default: + break; + case 'm': + switch(s[9]) { + default: + break; + case '-': + switch(s[10]) { + default: + break; + case 'i': + switch(s[11]) { + default: + break; + case 'd': + switch(s[12]) { + default: + break; + case '-': + if (strcmp("params", s + 13) == 0) + return PIDX_ALG_PARAM_ALGORITHM_ID_PARAMS; + break; + case '\0': + return PIDX_ALG_PARAM_ALGORITHM_ID; + } + } + } + } + } + } + } + } + } + } + break; + case 'i': + if (strcmp("as", s + 3) == 0) + return PIDX_STORE_PARAM_ALIAS; + } + break; + case '\0': + return PIDX_PKEY_PARAM_EC_A; + } + break; + case 'b': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("sis-type", s + 2) == 0) + return PIDX_PKEY_PARAM_EC_CHAR2_TYPE; + break; + case 'i': + if (strcmp("ts", s + 2) == 0) + return PIDX_PKEY_PARAM_BITS; + break; + case 'l': + switch(s[2]) { + default: + break; + case 'o': + switch(s[3]) { + default: + break; + case 'c': + switch(s[4]) { + default: + break; + case 'k': + switch(s[5]) { + default: + break; + case '-': + if (strcmp("size", s + 6) == 0) + return PIDX_MAC_PARAM_BLOCK_SIZE; + break; + case '_': + if (strcmp("padding", s + 6) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_BLOCK_PADDING; + break; + case 's': + if (strcmp("ize", s + 6) == 0) + return PIDX_DIGEST_PARAM_BLOCK_SIZE; + } + } + } + } + break; + case 'u': + if (strcmp("ildinfo", s + 2) == 0) + return PIDX_PROV_PARAM_BUILDINFO; + break; + case '\0': + return PIDX_PKEY_PARAM_EC_B; + } + break; + case 'c': + switch(s[1]) { + default: + break; + case '-': + if (strcmp("rounds", s + 2) == 0) + return PIDX_MAC_PARAM_C_ROUNDS; + break; + case 'e': + if (strcmp("kalg", s + 2) == 0) + return PIDX_KDF_PARAM_CEK_ALG; + break; + case 'i': + if (strcmp("pher", s + 2) == 0) + return PIDX_ALG_PARAM_CIPHER; + break; + case 'o': + switch(s[2]) { + default: + break; + case 'f': + if (strcmp("actor", s + 3) == 0) + return PIDX_PKEY_PARAM_EC_COFACTOR; + break; + case 'n': + switch(s[3]) { + default: + break; + case 's': + if (strcmp("tant", s + 4) == 0) + return PIDX_KDF_PARAM_CONSTANT; + break; + case 't': + if (strcmp("ext-string", s + 4) == 0) + return PIDX_SIGNATURE_PARAM_CONTEXT_STRING; + } + } + break; + case 't': + switch(s[2]) { + default: + break; + case 's': + switch(s[3]) { + default: + break; + case '_': + if (strcmp("mode", s + 4) == 0) + return PIDX_CIPHER_PARAM_CTS_MODE; + break; + case '\0': + return PIDX_CIPHER_PARAM_CTS; + } + } + break; + case 'u': + switch(s[2]) { + default: + break; + case 's': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case 'o': + switch(s[5]) { + default: + break; + case 'm': + switch(s[6]) { + default: + break; + case '-': + if (strcmp("iv", s + 7) == 0) + return PIDX_CIPHER_PARAM_CUSTOM_IV; + break; + case '\0': + return PIDX_MAC_PARAM_CUSTOM; + } + } + } + } + } + } + break; + case 'd': + switch(s[1]) { + default: + break; + case '-': + if (strcmp("rounds", s + 2) == 0) + return PIDX_MAC_PARAM_D_ROUNDS; + break; + case 'a': + switch(s[2]) { + default: + break; + case 't': + switch(s[3]) { + default: + break; + case 'a': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 's': + if (strcmp("tructure", s + 6) == 0) + return PIDX_OBJECT_PARAM_DATA_STRUCTURE; + break; + case 't': + if (strcmp("ype", s + 6) == 0) + return PIDX_OBJECT_PARAM_DATA_TYPE; + } + break; + case '\0': + return PIDX_OBJECT_PARAM_DATA; + } + } + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'c': + switch(s[3]) { + default: + break; + case 'o': + if (strcmp("ded-from-explicit", s + 4) == 0) + return PIDX_PKEY_PARAM_EC_DECODED_FROM_EXPLICIT_PARAMS; + break; + case 'r': + if (strcmp("ypt-only", s + 4) == 0) + return PIDX_CIPHER_PARAM_DECRYPT_ONLY; + } + break; + case 'f': + if (strcmp("ault-digest", s + 3) == 0) + return PIDX_PKEY_PARAM_DEFAULT_DIGEST; + break; + case 's': + if (strcmp("c", s + 3) == 0) + return PIDX_OBJECT_PARAM_DESC; + break; + case 't': + if (strcmp("erministic", s + 3) == 0) + return PIDX_SIGNATURE_PARAM_DETERMINISTIC; + } + break; + case 'h': + if (strcmp("kem-ikm", s + 2) == 0) + return PIDX_PKEY_PARAM_DHKEM_IKM; + break; + case 'i': + switch(s[2]) { + default: + break; + case 'g': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case 's': + switch(s[5]) { + default: + break; + case 't': + switch(s[6]) { + default: + break; + case '-': + switch(s[7]) { + default: + break; + case 'c': + if (strcmp("heck", s + 8) == 0) + return PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK; + break; + case 'n': + if (strcmp("oinit", s + 8) == 0) + return PIDX_MAC_PARAM_DIGEST_NOINIT; + break; + case 'o': + if (strcmp("neshot", s + 8) == 0) + return PIDX_MAC_PARAM_DIGEST_ONESHOT; + break; + case 'p': + if (strcmp("rops", s + 8) == 0) + return PIDX_ASYM_CIPHER_PARAM_OAEP_DIGEST_PROPS; + break; + case 's': + if (strcmp("ize", s + 8) == 0) + return PIDX_PKEY_PARAM_DIGEST_SIZE; + } + break; + case '\0': + return PIDX_STORE_PARAM_DIGEST; + } + } + } + } + break; + case 's': + if (strcmp("tid", s + 3) == 0) + return PIDX_PKEY_PARAM_DIST_ID; + } + break; + case 'r': + if (strcmp("bg-no-trunc-md", s + 2) == 0) + return PIDX_PROV_PARAM_DRBG_TRUNC_DIGEST; + break; + case 's': + if (strcmp("a-sign-disabled", s + 2) == 0) + return PIDX_PROV_PARAM_DSA_SIGN_DISABLED; + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_D; + } + break; + case 'e': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("rly_clean", s + 2) == 0) + return PIDX_KDF_PARAM_EARLY_CLEAN; + break; + case 'c': + switch(s[2]) { + default: + break; + case 'd': + switch(s[3]) { + default: + break; + case 'h': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'c': + switch(s[6]) { + default: + break; + case 'o': + switch(s[7]) { + default: + break; + case 'f': + switch(s[8]) { + default: + break; + case 'a': + switch(s[9]) { + default: + break; + case 'c': + switch(s[10]) { + default: + break; + case 't': + switch(s[11]) { + default: + break; + case 'o': + switch(s[12]) { + default: + break; + case 'r': + switch(s[13]) { + default: + break; + case '-': + switch(s[14]) { + default: + break; + case 'c': + if (strcmp("heck", s + 15) == 0) + return PIDX_PROV_PARAM_ECDH_COFACTOR_CHECK; + break; + case 'm': + if (strcmp("ode", s + 15) == 0) + return PIDX_EXCHANGE_PARAM_EC_ECDH_COFACTOR_MODE; + } + } + } + } + } + } + } + } + } + } + } + } + } + break; + case 'm': + if (strcmp("s_check", s + 2) == 0) + return PIDX_KDF_PARAM_FIPS_EMS_CHECK; + break; + case 'n': + switch(s[2]) { + default: + break; + case 'c': + switch(s[3]) { + default: + break; + case 'o': + switch(s[4]) { + default: + break; + case 'd': + switch(s[5]) { + default: + break; + case 'e': + if (strcmp("d-pub-key", s + 6) == 0) + return PIDX_PKEY_PARAM_ENCODED_PUBLIC_KEY; + break; + case 'i': + if (strcmp("ng", s + 6) == 0) + return PIDX_PKEY_PARAM_EC_ENCODING; + } + } + break; + case 'r': + switch(s[4]) { + default: + break; + case 'y': + switch(s[5]) { + default: + break; + case 'p': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case '-': + switch(s[8]) { + default: + break; + case 'c': + if (strcmp("heck", s + 9) == 0) + return PIDX_CIPHER_PARAM_FIPS_ENCRYPT_CHECK; + break; + case 'l': + if (strcmp("evel", s + 9) == 0) + return PIDX_ENCODER_PARAM_ENCRYPT_LEVEL; + } + } + } + } + } + } + break; + case 'g': + if (strcmp("ine", s + 3) == 0) + return PIDX_ALG_PARAM_ENGINE; + break; + case 't': + switch(s[3]) { + default: + break; + case 'r': + switch(s[4]) { + default: + break; + case 'o': + switch(s[5]) { + default: + break; + case 'p': + switch(s[6]) { + default: + break; + case 'y': + switch(s[7]) { + default: + break; + case '_': + if (strcmp("required", s + 8) == 0) + return PIDX_DRBG_PARAM_ENTROPY_REQUIRED; + break; + case '\0': + return PIDX_KDF_PARAM_HMACDRBG_ENTROPY; + } + } + } + } + } + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_E; + break; + case 'x': + if (strcmp("pect", s + 2) == 0) + return PIDX_STORE_PARAM_EXPECT; + } + break; + case 'f': + switch(s[1]) { + default: + break; + case 'i': + switch(s[2]) { + default: + break; + case 'e': + if (strcmp("ld-type", s + 3) == 0) + return PIDX_PKEY_PARAM_EC_FIELD_TYPE; + break; + case 'n': + if (strcmp("gerprint", s + 3) == 0) + return PIDX_STORE_PARAM_FINGERPRINT; + break; + case 'p': + if (strcmp("s-indicator", s + 3) == 0) + return PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR; + } + } + break; + case 'g': + switch(s[1]) { + default: + break; + case 'e': + switch(s[2]) { + default: + break; + case 'n': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case 'r': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case 'e': + switch(s[8]) { + default: + break; + case '\0': + return PIDX_RAND_PARAM_GENERATE; + } + break; + case 'o': + if (strcmp("r", s + 8) == 0) + return PIDX_PKEY_PARAM_EC_GENERATOR; + } + } + } + } + } + } + break; + case 'i': + if (strcmp("ndex", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_GINDEX; + break; + case 'r': + switch(s[2]) { + default: + break; + case 'o': + switch(s[3]) { + default: + break; + case 'u': + switch(s[4]) { + default: + break; + case 'p': + switch(s[5]) { + default: + break; + case '-': + if (strcmp("check", s + 6) == 0) + return PIDX_PKEY_PARAM_EC_GROUP_CHECK_TYPE; + break; + case '\0': + return PIDX_PKEY_PARAM_GROUP_NAME; + } + } + } + } + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_G; + } + break; + case 'h': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("s-randkey", s + 2) == 0) + return PIDX_CIPHER_PARAM_HAS_RAND_KEY; + break; + case 'i': + if (strcmp("ndex", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_H; + break; + case 'k': + switch(s[2]) { + default: + break; + case 'd': + switch(s[3]) { + default: + break; + case 'f': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 6) == 0) + return PIDX_PROV_PARAM_HKDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 6) == 0) + return PIDX_PROV_PARAM_HKDF_KEY_CHECK; + } + } + } + } + break; + case 'm': + if (strcmp("ac-key-check", s + 2) == 0) + return PIDX_PROV_PARAM_HMAC_KEY_CHECK; + break; + case 's': + if (strcmp("_padding", s + 2) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_HS_PADDING; + } + break; + case 'i': + switch(s[1]) { + default: + break; + case 'd': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_KDF_PARAM_PKCS12_ID; + } + break; + case 'k': + if (strcmp("me", s + 2) == 0) + return PIDX_KEM_PARAM_IKME; + break; + case 'm': + if (strcmp("plicit-rejection", s + 2) == 0) + return PIDX_PKEY_PARAM_IMPLICIT_REJECTION; + break; + case 'n': + switch(s[2]) { + default: + break; + case 'c': + if (strcmp("lude-public", s + 3) == 0) + return PIDX_PKEY_PARAM_EC_INCLUDE_PUBLIC; + break; + case 'f': + if (strcmp("o", s + 3) == 0) + return PIDX_PASSPHRASE_PARAM_INFO; + break; + case 'p': + if (strcmp("ut-type", s + 3) == 0) + return PIDX_STORE_PARAM_INPUT_TYPE; + break; + case 's': + if (strcmp("tance", s + 3) == 0) + return PIDX_SIGNATURE_PARAM_INSTANCE; + } + break; + case 't': + switch(s[2]) { + default: + break; + case 'e': + switch(s[3]) { + default: + break; + case 'r': + switch(s[4]) { + default: + break; + case 'a': + if (strcmp("tion", s + 5) == 0) + return PIDX_GEN_PARAM_ITERATION; + break; + case '\0': + return PIDX_KDF_PARAM_ITER; + } + } + } + break; + case 'v': + switch(s[2]) { + default: + break; + case '-': + if (strcmp("generated", s + 3) == 0) + return PIDX_CIPHER_PARAM_AEAD_IV_GENERATED; + break; + case 'l': + if (strcmp("en", s + 3) == 0) + return PIDX_CIPHER_PARAM_IVLEN; + break; + case '\0': + return PIDX_MAC_PARAM_IV; + } + } + break; + case 'j': + switch(s[1]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_COFACTOR; + } + break; + case 'k': + switch(s[1]) { + default: + break; + case '1': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_PP_K1; + } + break; + case '2': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_PP_K2; + } + break; + case '3': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_PP_K3; + } + break; + case 'a': + if (strcmp("t", s + 2) == 0) + return PIDX_SIGNATURE_PARAM_KAT; + break; + case 'b': + if (strcmp("kdf-key-check", s + 2) == 0) + return PIDX_PROV_PARAM_KBKDF_KEY_CHECK; + break; + case 'd': + switch(s[2]) { + default: + break; + case 'f': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'd': + switch(s[5]) { + default: + break; + case 'i': + switch(s[6]) { + default: + break; + case 'g': + switch(s[7]) { + default: + break; + case 'e': + switch(s[8]) { + default: + break; + case 's': + switch(s[9]) { + default: + break; + case 't': + switch(s[10]) { + default: + break; + case '-': + if (strcmp("props", s + 11) == 0) + return PIDX_EXCHANGE_PARAM_KDF_DIGEST_PROPS; + break; + case '\0': + return PIDX_EXCHANGE_PARAM_KDF_DIGEST; + } + } + } + } + } + } + break; + case 'o': + if (strcmp("utlen", s + 5) == 0) + return PIDX_EXCHANGE_PARAM_KDF_OUTLEN; + break; + case 't': + if (strcmp("ype", s + 5) == 0) + return PIDX_EXCHANGE_PARAM_KDF_TYPE; + break; + case 'u': + if (strcmp("km", s + 5) == 0) + return PIDX_EXCHANGE_PARAM_KDF_UKM; + } + } + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'y': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'c': + if (strcmp("heck", s + 5) == 0) + return PIDX_PKEY_PARAM_FIPS_KEY_CHECK; + break; + case 'l': + if (strcmp("ength", s + 5) == 0) + return PIDX_SKEY_PARAM_KEY_LENGTH; + } + break; + case 'b': + if (strcmp("its", s + 4) == 0) + return PIDX_CIPHER_PARAM_RC2_KEYBITS; + break; + case 'l': + if (strcmp("en", s + 4) == 0) + return PIDX_CIPHER_PARAM_KEYLEN; + break; + case '\0': + return PIDX_MAC_PARAM_KEY; + } + } + break; + case 'm': + if (strcmp("ac-key-check", s + 2) == 0) + return PIDX_PROV_PARAM_KMAC_KEY_CHECK; + } + break; + case 'l': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'b': + if (strcmp("el", s + 3) == 0) + return PIDX_KDF_PARAM_LABEL; + break; + case 'n': + if (strcmp("es", s + 3) == 0) + return PIDX_KDF_PARAM_ARGON2_LANES; + } + } + break; + case 'm': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'c': + switch(s[3]) { + default: + break; + case 'k': + if (strcmp("ey", s + 4) == 0) + return PIDX_CIPHER_PARAM_AEAD_MAC_KEY; + break; + case 'l': + if (strcmp("en", s + 4) == 0) + return PIDX_KDF_PARAM_MAC_SIZE; + break; + case '\0': + return PIDX_ALG_PARAM_MAC; + } + break; + case 'n': + if (strcmp("datory-digest", s + 3) == 0) + return PIDX_PKEY_PARAM_MANDATORY_DIGEST; + break; + case 'x': + switch(s[3]) { + default: + break; + case '-': + if (strcmp("size", s + 4) == 0) + return PIDX_PKEY_PARAM_MAX_SIZE; + break; + case '_': + switch(s[4]) { + default: + break; + case 'a': + if (strcmp("dinlen", s + 5) == 0) + return PIDX_DRBG_PARAM_MAX_ADINLEN; + break; + case 'e': + switch(s[5]) { + default: + break; + case 'a': + if (strcmp("rly_data", s + 6) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_MAX_EARLY_DATA; + break; + case 'n': + if (strcmp("tropylen", s + 6) == 0) + return PIDX_DRBG_PARAM_MAX_ENTROPYLEN; + } + break; + case 'f': + if (strcmp("rag_len", s + 5) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_MAX_FRAG_LEN; + break; + case 'n': + if (strcmp("oncelen", s + 5) == 0) + return PIDX_DRBG_PARAM_MAX_NONCELEN; + break; + case 'p': + if (strcmp("erslen", s + 5) == 0) + return PIDX_DRBG_PARAM_MAX_PERSLEN; + break; + case 'r': + if (strcmp("equest", s + 5) == 0) + return PIDX_RAND_PARAM_MAX_REQUEST; + } + break; + case 'i': + if (strcmp("um_length", s + 4) == 0) + return PIDX_DRBG_PARAM_MAX_LENGTH; + break; + case 'm': + if (strcmp("em_bytes", s + 4) == 0) + return PIDX_KDF_PARAM_SCRYPT_MAXMEM; + } + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'm': + if (strcmp("cost", s + 3) == 0) + return PIDX_KDF_PARAM_ARGON2_MEMCOST; + break; + case 's': + if (strcmp("sage-encoding", s + 3) == 0) + return PIDX_SIGNATURE_PARAM_MESSAGE_ENCODING; + } + break; + case 'g': + switch(s[2]) { + default: + break; + case 'f': + switch(s[3]) { + default: + break; + case '1': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'd': + if (strcmp("igest", s + 6) == 0) + return PIDX_PKEY_PARAM_MGF1_DIGEST; + break; + case 'p': + if (strcmp("roperties", s + 6) == 0) + return PIDX_PKEY_PARAM_MGF1_PROPERTIES; + } + } + break; + case '\0': + return PIDX_PKEY_PARAM_MASKGENFUNC; + } + } + break; + case 'i': + switch(s[2]) { + default: + break; + case 'c': + if (strcmp("alg", s + 3) == 0) + return PIDX_DIGEST_PARAM_MICALG; + break; + case 'n': + switch(s[3]) { + default: + break; + case '_': + switch(s[4]) { + default: + break; + case 'e': + if (strcmp("ntropylen", s + 5) == 0) + return PIDX_DRBG_PARAM_MIN_ENTROPYLEN; + break; + case 'n': + if (strcmp("oncelen", s + 5) == 0) + return PIDX_DRBG_PARAM_MIN_NONCELEN; + } + break; + case 'i': + if (strcmp("um_length", s + 4) == 0) + return PIDX_DRBG_PARAM_MIN_LENGTH; + } + } + break; + case 'l': + switch(s[2]) { + default: + break; + case '-': + switch(s[3]) { + default: + break; + case 'd': + switch(s[4]) { + default: + break; + case 's': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case '.': + switch(s[7]) { + default: + break; + case 'i': + if (strcmp("nput_formats", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_DSA_INPUT_FORMATS; + break; + case 'o': + if (strcmp("utput_formats", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_DSA_OUTPUT_FORMATS; + break; + case 'p': + if (strcmp("refer_seed", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_DSA_PREFER_SEED; + break; + case 'r': + if (strcmp("etain_seed", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_DSA_RETAIN_SEED; + } + } + } + } + break; + case 'k': + switch(s[4]) { + default: + break; + case 'e': + switch(s[5]) { + default: + break; + case 'm': + switch(s[6]) { + default: + break; + case '.': + switch(s[7]) { + default: + break; + case 'i': + switch(s[8]) { + default: + break; + case 'm': + if (strcmp("port_pct_type", s + 9) == 0) + return PIDX_PKEY_PARAM_ML_KEM_IMPORT_PCT_TYPE; + break; + case 'n': + if (strcmp("put_formats", s + 9) == 0) + return PIDX_PKEY_PARAM_ML_KEM_INPUT_FORMATS; + } + break; + case 'o': + if (strcmp("utput_formats", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_KEM_OUTPUT_FORMATS; + break; + case 'p': + if (strcmp("refer_seed", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_KEM_PREFER_SEED; + break; + case 'r': + if (strcmp("etain_seed", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_KEM_RETAIN_SEED; + } + } + } + } + } + } + break; + case 'o': + switch(s[2]) { + default: + break; + case 'd': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case '\0': + return PIDX_LIBSSL_RECORD_LAYER_PARAM_MODE; + } + break; + case 'u': + if (strcmp("le-filename", s + 4) == 0) + return PIDX_PROV_PARAM_CORE_MODULE_FILENAME; + } + } + break; + case 'u': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_SIGNATURE_PARAM_MU; + } + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_M; + } + break; + case 'n': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("me", s + 2) == 0) + return PIDX_STORE_PARAM_ISSUER; + break; + case 'o': + switch(s[2]) { + default: + break; + case '-': + if (strcmp("short-mac", s + 3) == 0) + return PIDX_PROV_PARAM_NO_SHORT_MAC; + break; + case 'n': + switch(s[3]) { + default: + break; + case 'c': + switch(s[4]) { + default: + break; + case 'e': + switch(s[5]) { + default: + break; + case '-': + if (strcmp("type", s + 6) == 0) + return PIDX_SIGNATURE_PARAM_NONCE_TYPE; + break; + case '\0': + return PIDX_KDF_PARAM_HMACDRBG_NONCE; + } + } + } + } + break; + case 'u': + if (strcmp("m", s + 2) == 0) + return PIDX_CIPHER_PARAM_NUM; + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_N; + } + break; + case 'o': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("ep-label", s + 2) == 0) + return PIDX_ASYM_CIPHER_PARAM_OAEP_LABEL; + break; + case 'p': + switch(s[2]) { + default: + break; + case 'e': + switch(s[3]) { + default: + break; + case 'n': + if (strcmp("ssl-version", s + 4) == 0) + return PIDX_PROV_PARAM_CORE_VERSION; + break; + case 'r': + if (strcmp("ation", s + 4) == 0) + return PIDX_KEM_PARAM_OPERATION; + } + break; + case 't': + if (strcmp("ions", s + 3) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_OPTIONS; + } + break; + case 'r': + if (strcmp("der", s + 2) == 0) + return PIDX_PKEY_PARAM_EC_ORDER; + } + break; + case 'p': + switch(s[1]) { + default: + break; + case '1': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_P1; + } + break; + case '2': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_P2; + } + break; + case 'a': + switch(s[2]) { + default: + break; + case 'd': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'm': + if (strcmp("ode", s + 5) == 0) + return PIDX_PKEY_PARAM_PAD_MODE; + break; + case 't': + if (strcmp("ype", s + 5) == 0) + return PIDX_DIGEST_PARAM_PAD_TYPE; + } + break; + case 'd': + if (strcmp("ing", s + 4) == 0) + return PIDX_CIPHER_PARAM_PADDING; + break; + case '\0': + return PIDX_EXCHANGE_PARAM_PAD; + } + break; + case 'r': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case 'y': + switch(s[5]) { + default: + break; + case 'u': + if (strcmp("-info", s + 6) == 0) + return PIDX_KDF_PARAM_X942_PARTYUINFO; + break; + case 'v': + if (strcmp("-info", s + 6) == 0) + return PIDX_KDF_PARAM_X942_PARTYVINFO; + } + } + } + break; + case 's': + if (strcmp("s", s + 3) == 0) + return PIDX_KDF_PARAM_PASSWORD; + } + break; + case 'b': + switch(s[2]) { + default: + break; + case 'i': + if (strcmp("ts", s + 3) == 0) + return PIDX_PKEY_PARAM_FFC_PBITS; + break; + case 'k': + if (strcmp("df2-lower-bound-check", s + 3) == 0) + return PIDX_PROV_PARAM_PBKDF2_LOWER_BOUND_CHECK; + } + break; + case 'c': + if (strcmp("ounter", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_PCOUNTER; + break; + case 'i': + if (strcmp("peline-tag", s + 2) == 0) + return PIDX_CIPHER_PARAM_PIPELINE_AEAD_TAG; + break; + case 'k': + if (strcmp("cs5", s + 2) == 0) + return PIDX_KDF_PARAM_PKCS5; + break; + case 'o': + switch(s[2]) { + default: + break; + case 'i': + if (strcmp("nt-format", s + 3) == 0) + return PIDX_PKEY_PARAM_EC_POINT_CONVERSION_FORMAT; + break; + case 't': + if (strcmp("ential", s + 3) == 0) + return PIDX_GEN_PARAM_POTENTIAL; + } + break; + case 'r': + switch(s[2]) { + default: + break; + case 'e': + switch(s[3]) { + default: + break; + case 'd': + if (strcmp("iction_resistance", s + 4) == 0) + return PIDX_DRBG_PARAM_PREDICTION_RESISTANCE; + break; + case 'f': + if (strcmp("ix", s + 4) == 0) + return PIDX_KDF_PARAM_PREFIX; + } + break; + case 'i': + switch(s[3]) { + default: + break; + case 'm': + if (strcmp("es", s + 4) == 0) + return PIDX_PKEY_PARAM_RSA_PRIMES; + break; + case 'v': + switch(s[4]) { + default: + break; + case '_': + if (strcmp("len", s + 5) == 0) + return PIDX_PKEY_PARAM_DH_PRIV_LEN; + break; + case '\0': + return PIDX_PKEY_PARAM_PRIV_KEY; + } + } + break; + case 'o': + switch(s[3]) { + default: + break; + case 'p': + if (strcmp("erties", s + 4) == 0) + return PIDX_STORE_PARAM_PROPERTIES; + break; + case 'v': + if (strcmp("ider-name", s + 4) == 0) + return PIDX_PROV_PARAM_CORE_PROV_NAME; + } + } + break; + case 'u': + if (strcmp("b", s + 2) == 0) + return PIDX_PKEY_PARAM_PUB_KEY; + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_P; + } + break; + case 'q': + switch(s[1]) { + default: + break; + case '1': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_Q1; + } + break; + case '2': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_Q2; + } + break; + case 'b': + if (strcmp("its", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_QBITS; + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_Q; + break; + case 'x': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_PUB_X; + } + break; + case 'y': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_PUB_Y; + } + } + break; + case 'r': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'n': + switch(s[3]) { + default: + break; + case 'd': + switch(s[4]) { + default: + break; + case 'k': + if (strcmp("ey", s + 5) == 0) + return PIDX_CIPHER_PARAM_RANDOM_KEY; + break; + case 'o': + if (strcmp("m_data", s + 5) == 0) + return PIDX_DRBG_PARAM_RANDOM_DATA; + } + } + break; + case 'w': + if (strcmp("-bytes", s + 3) == 0) + return PIDX_SKEY_PARAM_RAW_BYTES; + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'a': + switch(s[3]) { + default: + break; + case 'd': + switch(s[4]) { + default: + break; + case '_': + switch(s[5]) { + default: + break; + case 'a': + if (strcmp("head", s + 6) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_READ_AHEAD; + break; + case 'b': + if (strcmp("uffer_len", s + 6) == 0) + return PIDX_LIBSSL_RECORD_LAYER_READ_BUFFER_LEN; + } + } + } + break; + case 'f': + if (strcmp("erence", s + 3) == 0) + return PIDX_OBJECT_PARAM_REFERENCE; + break; + case 's': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case 'e': + switch(s[5]) { + default: + break; + case 'd': + switch(s[6]) { + default: + break; + case '_': + switch(s[7]) { + default: + break; + case 'c': + if (strcmp("ounter", s + 8) == 0) + return PIDX_DRBG_PARAM_RESEED_COUNTER; + break; + case 'r': + if (strcmp("equests", s + 8) == 0) + return PIDX_DRBG_PARAM_RESEED_REQUESTS; + break; + case 't': + switch(s[8]) { + default: + break; + case 'i': + switch(s[9]) { + default: + break; + case 'm': + switch(s[10]) { + default: + break; + case 'e': + switch(s[11]) { + default: + break; + case '_': + if (strcmp("interval", s + 12) == 0) + return PIDX_DRBG_PARAM_RESEED_TIME_INTERVAL; + break; + case '\0': + return PIDX_DRBG_PARAM_RESEED_TIME; + } + } + } + } + } + } + } + } + } + } + break; + case 'o': + if (strcmp("unds", s + 2) == 0) + return PIDX_CIPHER_PARAM_ROUNDS; + break; + case 's': + switch(s[2]) { + default: + break; + case 'a': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'c': + switch(s[5]) { + default: + break; + case 'o': + switch(s[6]) { + default: + break; + case 'e': + switch(s[7]) { + default: + break; + case 'f': + switch(s[8]) { + default: + break; + case 'f': + switch(s[9]) { + default: + break; + case 'i': + switch(s[10]) { + default: + break; + case 'c': + switch(s[11]) { + default: + break; + case 'i': + switch(s[12]) { + default: + break; + case 'e': + switch(s[13]) { + default: + break; + case 'n': + switch(s[14]) { + default: + break; + case 't': + switch(s[15]) { + default: + break; + case '1': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT1; + } + break; + case '2': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT2; + } + break; + case '3': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT3; + } + break; + case '4': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT4; + } + break; + case '5': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT5; + } + break; + case '6': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT6; + } + break; + case '7': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT7; + } + break; + case '8': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT8; + } + break; + case '9': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT9; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT; + } + } + } + } + } + } + } + } + } + } + } + break; + case 'd': + if (strcmp("erive-from-pq", s + 5) == 0) + return PIDX_PKEY_PARAM_RSA_DERIVE_FROM_PQ; + break; + case 'e': + switch(s[5]) { + default: + break; + case 'x': + switch(s[6]) { + default: + break; + case 'p': + switch(s[7]) { + default: + break; + case 'o': + switch(s[8]) { + default: + break; + case 'n': + switch(s[9]) { + default: + break; + case 'e': + switch(s[10]) { + default: + break; + case 'n': + switch(s[11]) { + default: + break; + case 't': + switch(s[12]) { + default: + break; + case '1': + switch(s[13]) { + default: + break; + case '0': + switch(s[14]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT10; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT1; + } + break; + case '2': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT2; + } + break; + case '3': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT3; + } + break; + case '4': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT4; + } + break; + case '5': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT5; + } + break; + case '6': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT6; + } + break; + case '7': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT7; + } + break; + case '8': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT8; + } + break; + case '9': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT9; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT; + } + } + } + } + } + } + } + } + break; + case 'f': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case 'c': + switch(s[7]) { + default: + break; + case 't': + switch(s[8]) { + default: + break; + case 'o': + switch(s[9]) { + default: + break; + case 'r': + switch(s[10]) { + default: + break; + case '1': + switch(s[11]) { + default: + break; + case '0': + switch(s[12]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR10; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR1; + } + break; + case '2': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR2; + } + break; + case '3': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR3; + } + break; + case '4': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR4; + } + break; + case '5': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR5; + } + break; + case '6': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR6; + } + break; + case '7': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR7; + } + break; + case '8': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR8; + } + break; + case '9': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR9; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR; + } + } + } + } + } + } + break; + case 'p': + switch(s[5]) { + default: + break; + case 'k': + if (strcmp("cs15-pad-disabled", s + 6) == 0) + return PIDX_PROV_PARAM_RSA_PKCS15_PAD_DISABLED; + break; + case 's': + if (strcmp("s-saltlen-check", s + 6) == 0) + return PIDX_SIGNATURE_PARAM_FIPS_RSA_PSS_SALTLEN_CHECK; + } + break; + case 's': + if (strcmp("ign-x931-pad-disabled", s + 5) == 0) + return PIDX_PROV_PARAM_RSA_SIGN_X931_PAD_DISABLED; + } + } + } + break; + case '\0': + return PIDX_KDF_PARAM_SCRYPT_R; + } + break; + case 's': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'f': + if (strcmp("eprime-generator", s + 3) == 0) + return PIDX_PKEY_PARAM_DH_GENERATOR; + break; + case 'l': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case 'l': + if (strcmp("en", s + 5) == 0) + return PIDX_SIGNATURE_PARAM_PSS_SALTLEN; + break; + case '\0': + return PIDX_MAC_PARAM_SALT; + } + } + break; + case 'v': + if (strcmp("e-parameters", s + 3) == 0) + return PIDX_ENCODER_PARAM_SAVE_PARAMETERS; + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'c': + switch(s[3]) { + default: + break; + case 'r': + if (strcmp("et", s + 4) == 0) + return PIDX_KDF_PARAM_SECRET; + break; + case 'u': + switch(s[4]) { + default: + break; + case 'r': + switch(s[5]) { + default: + break; + case 'i': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case 'y': + switch(s[8]) { + default: + break; + case '-': + switch(s[9]) { + default: + break; + case 'b': + if (strcmp("its", s + 10) == 0) + return PIDX_PKEY_PARAM_SECURITY_BITS; + break; + case 'c': + if (strcmp("hecks", s + 10) == 0) + return PIDX_PROV_PARAM_SECURITY_CHECKS; + } + } + } + } + } + } + } + break; + case 'e': + if (strcmp("d", s + 3) == 0) + return PIDX_PKEY_PARAM_SLH_DSA_SEED; + break; + case 'r': + if (strcmp("ial", s + 3) == 0) + return PIDX_STORE_PARAM_SERIAL; + break; + case 's': + if (strcmp("sion_id", s + 3) == 0) + return PIDX_KDF_PARAM_SSHKDF_SESSION_ID; + } + break; + case 'i': + switch(s[2]) { + default: + break; + case 'g': + switch(s[3]) { + default: + break; + case 'n': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'c': + if (strcmp("heck", s + 6) == 0) + return PIDX_PKEY_PARAM_FIPS_SIGN_CHECK; + break; + case 'x': + if (strcmp("931-pad-check", s + 6) == 0) + return PIDX_SIGNATURE_PARAM_FIPS_SIGN_X931_PAD_CHECK; + } + break; + case 'a': + switch(s[5]) { + default: + break; + case 't': + switch(s[6]) { + default: + break; + case 'u': + switch(s[7]) { + default: + break; + case 'r': + switch(s[8]) { + default: + break; + case 'e': + switch(s[9]) { + default: + break; + case '-': + if (strcmp("digest-check", s + 10) == 0) + return PIDX_PROV_PARAM_SIGNATURE_DIGEST_CHECK; + break; + case '\0': + return PIDX_SIGNATURE_PARAM_SIGNATURE; + } + } + } + } + } + } + } + break; + case 'z': + if (strcmp("e", s + 3) == 0) + return PIDX_MAC_PARAM_SIZE; + } + break; + case 'p': + if (strcmp("eed", s + 2) == 0) + return PIDX_CIPHER_PARAM_SPEED; + break; + case 's': + switch(s[2]) { + default: + break; + case 'h': + switch(s[3]) { + default: + break; + case 'k': + switch(s[4]) { + default: + break; + case 'd': + switch(s[5]) { + default: + break; + case 'f': + switch(s[6]) { + default: + break; + case '-': + switch(s[7]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 8) == 0) + return PIDX_PROV_PARAM_SSHKDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 8) == 0) + return PIDX_PROV_PARAM_SSHKDF_KEY_CHECK; + } + } + } + } + } + break; + case 'k': + switch(s[3]) { + default: + break; + case 'd': + switch(s[4]) { + default: + break; + case 'f': + switch(s[5]) { + default: + break; + case '-': + switch(s[6]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 7) == 0) + return PIDX_PROV_PARAM_SSKDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 7) == 0) + return PIDX_PROV_PARAM_SSKDF_KEY_CHECK; + } + } + } + } + break; + case 'l': + if (strcmp("3-ms", s + 3) == 0) + return PIDX_DIGEST_PARAM_SSL3_MS; + } + break; + case 't': + switch(s[2]) { + default: + break; + case '-': + switch(s[3]) { + default: + break; + case 'd': + if (strcmp("esc", s + 4) == 0) + return PIDX_PROV_PARAM_SELF_TEST_DESC; + break; + case 'p': + if (strcmp("hase", s + 4) == 0) + return PIDX_PROV_PARAM_SELF_TEST_PHASE; + break; + case 't': + if (strcmp("ype", s + 4) == 0) + return PIDX_PROV_PARAM_SELF_TEST_TYPE; + } + break; + case 'a': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case 'e': + switch(s[5]) { + default: + break; + case '\0': + return PIDX_RAND_PARAM_STATE; + } + break; + case 'u': + if (strcmp("s", s + 5) == 0) + return PIDX_PROV_PARAM_STATUS; + } + } + break; + case 'r': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case 'a': + if (strcmp("m_mac", s + 5) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_STREAM_MAC; + break; + case 'n': + if (strcmp("gth", s + 5) == 0) + return PIDX_RAND_PARAM_STRENGTH; + } + } + } + break; + case 'u': + switch(s[2]) { + default: + break; + case 'b': + if (strcmp("ject", s + 3) == 0) + return PIDX_STORE_PARAM_SUBJECT; + break; + case 'p': + switch(s[3]) { + default: + break; + case 'p': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'p': + switch(s[6]) { + default: + break; + case 'r': + if (strcmp("ivinfo", s + 7) == 0) + return PIDX_KDF_PARAM_X942_SUPP_PRIVINFO; + break; + case 'u': + if (strcmp("binfo", s + 7) == 0) + return PIDX_KDF_PARAM_X942_SUPP_PUBINFO; + } + } + } + } + } + } + break; + case 't': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'g': + switch(s[3]) { + default: + break; + case 'l': + if (strcmp("en", s + 4) == 0) + return PIDX_CIPHER_PARAM_AEAD_TAGLEN; + break; + case '\0': + return PIDX_CIPHER_PARAM_AEAD_TAG; + } + } + break; + case 'd': + if (strcmp("es-encrypt-disabled", s + 2) == 0) + return PIDX_PROV_PARAM_TDES_ENCRYPT_DISABLED; + break; + case 'e': + switch(s[2]) { + default: + break; + case 's': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case '-': + if (strcmp("entropy", s + 5) == 0) + return PIDX_SIGNATURE_PARAM_TEST_ENTROPY; + break; + case '_': + switch(s[5]) { + default: + break; + case 'e': + if (strcmp("ntropy", s + 6) == 0) + return PIDX_RAND_PARAM_TEST_ENTROPY; + break; + case 'n': + if (strcmp("once", s + 6) == 0) + return PIDX_RAND_PARAM_TEST_NONCE; + } + } + } + } + break; + case 'h': + if (strcmp("reads", s + 2) == 0) + return PIDX_KDF_PARAM_THREADS; + break; + case 'l': + switch(s[2]) { + default: + break; + case 's': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'c': + if (strcmp("lient-version", s + 5) == 0) + return PIDX_ASYM_CIPHER_PARAM_TLS_CLIENT_VERSION; + break; + case 'd': + if (strcmp("ata-size", s + 5) == 0) + return PIDX_MAC_PARAM_TLS_DATA_SIZE; + break; + case 'g': + switch(s[5]) { + default: + break; + case 'r': + switch(s[6]) { + default: + break; + case 'o': + switch(s[7]) { + default: + break; + case 'u': + switch(s[8]) { + default: + break; + case 'p': + switch(s[9]) { + default: + break; + case '-': + switch(s[10]) { + default: + break; + case 'a': + if (strcmp("lg", s + 11) == 0) + return PIDX_CAPABILITY_TLS_GROUP_ALG; + break; + case 'i': + switch(s[11]) { + default: + break; + case 'd': + switch(s[12]) { + default: + break; + case '\0': + return PIDX_CAPABILITY_TLS_GROUP_ID; + } + break; + case 's': + if (strcmp("-kem", s + 12) == 0) + return PIDX_CAPABILITY_TLS_GROUP_IS_KEM; + } + break; + case 'n': + switch(s[11]) { + default: + break; + case 'a': + switch(s[12]) { + default: + break; + case 'm': + switch(s[13]) { + default: + break; + case 'e': + switch(s[14]) { + default: + break; + case '-': + if (strcmp("internal", s + 15) == 0) + return PIDX_CAPABILITY_TLS_GROUP_NAME_INTERNAL; + break; + case '\0': + return PIDX_CAPABILITY_TLS_GROUP_NAME; + } + } + } + } + break; + case 's': + if (strcmp("ec-bits", s + 11) == 0) + return PIDX_CAPABILITY_TLS_GROUP_SECURITY_BITS; + } + } + } + } + } + } + break; + case 'm': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case 'c': + switch(s[7]) { + default: + break; + case '-': + if (strcmp("size", s + 8) == 0) + return PIDX_CIPHER_PARAM_TLS_MAC_SIZE; + break; + case '\0': + return PIDX_CIPHER_PARAM_TLS_MAC; + } + break; + case 'x': + switch(s[7]) { + default: + break; + case '-': + switch(s[8]) { + default: + break; + case 'd': + if (strcmp("tls", s + 9) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_MAX_DTLS; + break; + case 't': + if (strcmp("ls", s + 9) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_MAX_TLS; + } + } + } + break; + case 'i': + switch(s[6]) { + default: + break; + case 'n': + switch(s[7]) { + default: + break; + case '-': + switch(s[8]) { + default: + break; + case 'd': + if (strcmp("tls", s + 9) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_MIN_DTLS; + break; + case 't': + if (strcmp("ls", s + 9) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_MIN_TLS; + } + } + } + break; + case 'u': + if (strcmp("lti", s + 6) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK; + } + break; + case 'n': + if (strcmp("egotiated-version", s + 5) == 0) + return PIDX_ASYM_CIPHER_PARAM_TLS_NEGOTIATED_VERSION; + break; + case 's': + switch(s[5]) { + default: + break; + case 'i': + switch(s[6]) { + default: + break; + case 'g': + switch(s[7]) { + default: + break; + case 'a': + switch(s[8]) { + default: + break; + case 'l': + switch(s[9]) { + default: + break; + case 'g': + switch(s[10]) { + default: + break; + case '-': + switch(s[11]) { + default: + break; + case 'c': + if (strcmp("ode-point", s + 12) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_CODE_POINT; + break; + case 'h': + switch(s[12]) { + default: + break; + case 'a': + switch(s[13]) { + default: + break; + case 's': + switch(s[14]) { + default: + break; + case 'h': + switch(s[15]) { + default: + break; + case '-': + switch(s[16]) { + default: + break; + case 'n': + if (strcmp("ame", s + 17) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_HASH_NAME; + break; + case 'o': + if (strcmp("id", s + 17) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_HASH_OID; + } + } + } + } + } + break; + case 'i': + if (strcmp("ana-name", s + 12) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_IANA_NAME; + break; + case 'k': + switch(s[12]) { + default: + break; + case 'e': + switch(s[13]) { + default: + break; + case 'y': + switch(s[14]) { + default: + break; + case 't': + switch(s[15]) { + default: + break; + case 'y': + switch(s[16]) { + default: + break; + case 'p': + switch(s[17]) { + default: + break; + case 'e': + switch(s[18]) { + default: + break; + case '-': + if (strcmp("oid", s + 19) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_KEYTYPE_OID; + break; + case '\0': + return PIDX_CAPABILITY_TLS_SIGALG_KEYTYPE; + } + } + } + } + } + } + } + break; + case 'n': + if (strcmp("ame", s + 12) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_NAME; + break; + case 'o': + if (strcmp("id", s + 12) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_OID; + break; + case 's': + switch(s[12]) { + default: + break; + case 'e': + if (strcmp("c-bits", s + 13) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_SECURITY_BITS; + break; + case 'i': + switch(s[13]) { + default: + break; + case 'g': + switch(s[14]) { + default: + break; + case '-': + switch(s[15]) { + default: + break; + case 'n': + if (strcmp("ame", s + 16) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_SIG_NAME; + break; + case 'o': + if (strcmp("id", s + 16) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_SIG_OID; + } + } + } + } + } + } + } + } + } + } + } + break; + case 'v': + if (strcmp("ersion", s + 5) == 0) + return PIDX_CIPHER_PARAM_TLS_VERSION; + } + break; + case '1': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'p': + switch(s[6]) { + default: + break; + case 'r': + switch(s[7]) { + default: + break; + case 'f': + switch(s[8]) { + default: + break; + case '-': + switch(s[9]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 10) == 0) + return PIDX_PROV_PARAM_TLS1_PRF_DIGEST_CHECK; + break; + case 'e': + if (strcmp("ms-check", s + 10) == 0) + return PIDX_PROV_PARAM_TLS1_PRF_EMS_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 10) == 0) + return PIDX_PROV_PARAM_TLS1_PRF_KEY_CHECK; + } + } + } + } + } + break; + case '3': + switch(s[5]) { + default: + break; + case '-': + switch(s[6]) { + default: + break; + case 'k': + switch(s[7]) { + default: + break; + case 'd': + switch(s[8]) { + default: + break; + case 'f': + switch(s[9]) { + default: + break; + case '-': + switch(s[10]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 11) == 0) + return PIDX_PROV_PARAM_TLS13_KDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 11) == 0) + return PIDX_PROV_PARAM_TLS13_KDF_KEY_CHECK; + } + } + } + } + } + } + break; + case 'm': + switch(s[5]) { + default: + break; + case 'u': + switch(s[6]) { + default: + break; + case 'l': + switch(s[7]) { + default: + break; + case 't': + switch(s[8]) { + default: + break; + case 'i': + switch(s[9]) { + default: + break; + case '_': + switch(s[10]) { + default: + break; + case 'a': + switch(s[11]) { + default: + break; + case 'a': + switch(s[12]) { + default: + break; + case 'd': + switch(s[13]) { + default: + break; + case 'p': + if (strcmp("acklen", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD_PACKLEN; + break; + case '\0': + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD; + } + } + } + break; + case 'e': + switch(s[11]) { + default: + break; + case 'n': + switch(s[12]) { + default: + break; + case 'c': + switch(s[13]) { + default: + break; + case 'i': + if (strcmp("n", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_IN; + break; + case 'l': + if (strcmp("en", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_LEN; + break; + case '\0': + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC; + } + } + } + break; + case 'i': + if (strcmp("nterleave", s + 11) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_INTERLEAVE; + break; + case 'm': + switch(s[11]) { + default: + break; + case 'a': + switch(s[12]) { + default: + break; + case 'x': + switch(s[13]) { + default: + break; + case 'b': + if (strcmp("ufsz", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_BUFSIZE; + break; + case 's': + if (strcmp("ndfrag", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_SEND_FRAGMENT; + } + } + } + } + } + } + } + } + } + } + break; + case 'a': + switch(s[4]) { + default: + break; + case 'a': + switch(s[5]) { + default: + break; + case 'd': + switch(s[6]) { + default: + break; + case 'p': + if (strcmp("ad", s + 7) == 0) + return PIDX_CIPHER_PARAM_AEAD_TLS1_AAD_PAD; + break; + case '\0': + return PIDX_CIPHER_PARAM_AEAD_TLS1_AAD; + } + } + } + break; + case 'i': + switch(s[4]) { + default: + break; + case 'v': + switch(s[5]) { + default: + break; + case 'f': + if (strcmp("ixed", s + 6) == 0) + return PIDX_CIPHER_PARAM_AEAD_TLS1_IV_FIXED; + break; + case 'g': + if (strcmp("en", s + 6) == 0) + return PIDX_CIPHER_PARAM_AEAD_TLS1_GET_IV_GEN; + break; + case 'i': + if (strcmp("nv", s + 6) == 0) + return PIDX_CIPHER_PARAM_AEAD_TLS1_SET_IV_INV; + } + } + break; + case 't': + if (strcmp("ree", s + 4) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_TLSTREE; + } + } + break; + case 'p': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_TP_BASIS; + } + break; + case 'y': + if (strcmp("pe", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_TYPE; + } + break; + case 'u': + switch(s[1]) { + default: + break; + case 'k': + if (strcmp("m", s + 2) == 0) + return PIDX_KDF_PARAM_UKM; + break; + case 'p': + if (strcmp("dated-iv", s + 2) == 0) + return PIDX_CIPHER_PARAM_UPDATED_IV; + break; + case 's': + switch(s[2]) { + default: + break; + case 'e': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'b': + if (strcmp("its", s + 5) == 0) + return PIDX_CIPHER_PARAM_USE_BITS; + break; + case 'c': + if (strcmp("ofactor-flag", s + 5) == 0) + return PIDX_PKEY_PARAM_USE_COFACTOR_FLAG; + break; + case 'k': + if (strcmp("eybits", s + 5) == 0) + return PIDX_KDF_PARAM_X942_USE_KEYBITS; + break; + case 'l': + switch(s[5]) { + default: + break; + case '\0': + return PIDX_KDF_PARAM_KBKDF_USE_L; + } + break; + case 's': + if (strcmp("eparator", s + 5) == 0) + return PIDX_KDF_PARAM_KBKDF_USE_SEPARATOR; + } + break; + case '_': + switch(s[4]) { + default: + break; + case 'd': + if (strcmp("erivation_function", s + 5) == 0) + return PIDX_DRBG_PARAM_USE_DF; + break; + case 'e': + if (strcmp("tm", s + 5) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_USE_ETM; + } + } + } + } + break; + case 'v': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'l': + switch(s[3]) { + default: + break; + case 'i': + switch(s[4]) { + default: + break; + case 'd': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case 'e': + switch(s[8]) { + default: + break; + case '-': + switch(s[9]) { + default: + break; + case 'g': + switch(s[10]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_VALIDATE_G; + } + break; + case 'l': + if (strcmp("egacy", s + 10) == 0) + return PIDX_PKEY_PARAM_FFC_VALIDATE_LEGACY; + break; + case 'p': + if (strcmp("q", s + 10) == 0) + return PIDX_PKEY_PARAM_FFC_VALIDATE_PQ; + } + } + } + } + } + } + } + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'r': + switch(s[3]) { + default: + break; + case 'i': + if (strcmp("fy-message", s + 4) == 0) + return PIDX_SIGNATURE_PARAM_FIPS_VERIFY_MESSAGE; + break; + case 's': + if (strcmp("ion", s + 4) == 0) + return PIDX_PROV_PARAM_VERSION; + } + } + } + break; + case 'x': + switch(s[1]) { + default: + break; + case '9': + switch(s[2]) { + default: + break; + case '4': + if (strcmp("2kdf-key-check", s + 3) == 0) + return PIDX_PROV_PARAM_X942KDF_KEY_CHECK; + break; + case '6': + switch(s[3]) { + default: + break; + case '3': + switch(s[4]) { + default: + break; + case 'k': + switch(s[5]) { + default: + break; + case 'd': + switch(s[6]) { + default: + break; + case 'f': + switch(s[7]) { + default: + break; + case '-': + switch(s[8]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 9) == 0) + return PIDX_PROV_PARAM_X963KDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 9) == 0) + return PIDX_PROV_PARAM_X963KDF_KEY_CHECK; + } + } + } + } + } + } + } + break; + case 'c': + if (strcmp("ghash", s + 2) == 0) + return PIDX_KDF_PARAM_SSHKDF_XCGHASH; + break; + case 'o': + switch(s[2]) { + default: + break; + case 'f': + switch(s[3]) { + default: + break; + case 'l': + if (strcmp("en", s + 4) == 0) + return PIDX_DIGEST_PARAM_XOFLEN; + break; + case '\0': + return PIDX_MAC_PARAM_XOF; + } + } + break; + case 'p': + switch(s[2]) { + default: + break; + case '1': + switch(s[3]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XP1; + } + break; + case '2': + switch(s[3]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XP2; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XP; + } + break; + case 'q': + switch(s[2]) { + default: + break; + case '1': + switch(s[3]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XQ1; + } + break; + case '2': + switch(s[3]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XQ2; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XQ; + } + break; + case 't': + if (strcmp("s_standard", s + 2) == 0) + return PIDX_CIPHER_PARAM_XTS_STANDARD; + } + } + return -1; +} + +/* End of TRIE */ diff --git a/deps/openssl/config/archs/VC-WIN32/no-asm/include/internal/param_names.h b/deps/openssl/config/archs/VC-WIN32/no-asm/include/internal/param_names.h new file mode 100644 index 00000000000000..ec5bff6e31c126 --- /dev/null +++ b/deps/openssl/config/archs/VC-WIN32/no-asm/include/internal/param_names.h @@ -0,0 +1,469 @@ +/* + * WARNING: do not edit! + * Generated by makefile from include/internal/param_names.h.in + * + * Copyright 2023 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + +int ossl_param_find_pidx(const char *s); + +/* Parameter name definitions - generated by util/perl/OpenSSL/paramnames.pm */ +#define NUM_PIDX 346 + +#define PIDX_ALG_PARAM_ALGORITHM_ID 0 +#define PIDX_ALG_PARAM_ALGORITHM_ID_PARAMS 1 +#define PIDX_ALG_PARAM_CIPHER 2 +#define PIDX_ALG_PARAM_DIGEST 3 +#define PIDX_ALG_PARAM_ENGINE 4 +#define PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR 5 +#define PIDX_ALG_PARAM_MAC 6 +#define PIDX_ALG_PARAM_PROPERTIES 7 +#define PIDX_ASYM_CIPHER_PARAM_DIGEST PIDX_PKEY_PARAM_DIGEST +#define PIDX_ASYM_CIPHER_PARAM_ENGINE PIDX_PKEY_PARAM_ENGINE +#define PIDX_ASYM_CIPHER_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_ASYM_CIPHER_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_ASYM_CIPHER_PARAM_FIPS_RSA_PKCS15_PAD_DISABLED PIDX_PROV_PARAM_RSA_PKCS15_PAD_DISABLED +#define PIDX_ASYM_CIPHER_PARAM_IMPLICIT_REJECTION 8 +#define PIDX_ASYM_CIPHER_PARAM_MGF1_DIGEST PIDX_PKEY_PARAM_MGF1_DIGEST +#define PIDX_ASYM_CIPHER_PARAM_MGF1_DIGEST_PROPS PIDX_PKEY_PARAM_MGF1_PROPERTIES +#define PIDX_ASYM_CIPHER_PARAM_OAEP_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_ASYM_CIPHER_PARAM_OAEP_DIGEST_PROPS 9 +#define PIDX_ASYM_CIPHER_PARAM_OAEP_LABEL 10 +#define PIDX_ASYM_CIPHER_PARAM_PAD_MODE PIDX_PKEY_PARAM_PAD_MODE +#define PIDX_ASYM_CIPHER_PARAM_PROPERTIES PIDX_PKEY_PARAM_PROPERTIES +#define PIDX_ASYM_CIPHER_PARAM_TLS_CLIENT_VERSION 11 +#define PIDX_ASYM_CIPHER_PARAM_TLS_NEGOTIATED_VERSION 12 +#define PIDX_CAPABILITY_TLS_GROUP_ALG 13 +#define PIDX_CAPABILITY_TLS_GROUP_ID 14 +#define PIDX_CAPABILITY_TLS_GROUP_IS_KEM 15 +#define PIDX_CAPABILITY_TLS_GROUP_MAX_DTLS 16 +#define PIDX_CAPABILITY_TLS_GROUP_MAX_TLS 17 +#define PIDX_CAPABILITY_TLS_GROUP_MIN_DTLS 18 +#define PIDX_CAPABILITY_TLS_GROUP_MIN_TLS 19 +#define PIDX_CAPABILITY_TLS_GROUP_NAME 20 +#define PIDX_CAPABILITY_TLS_GROUP_NAME_INTERNAL 21 +#define PIDX_CAPABILITY_TLS_GROUP_SECURITY_BITS 22 +#define PIDX_CAPABILITY_TLS_SIGALG_CODE_POINT 23 +#define PIDX_CAPABILITY_TLS_SIGALG_HASH_NAME 24 +#define PIDX_CAPABILITY_TLS_SIGALG_HASH_OID 25 +#define PIDX_CAPABILITY_TLS_SIGALG_IANA_NAME 26 +#define PIDX_CAPABILITY_TLS_SIGALG_KEYTYPE 27 +#define PIDX_CAPABILITY_TLS_SIGALG_KEYTYPE_OID 28 +#define PIDX_CAPABILITY_TLS_SIGALG_MAX_DTLS 16 +#define PIDX_CAPABILITY_TLS_SIGALG_MAX_TLS 17 +#define PIDX_CAPABILITY_TLS_SIGALG_MIN_DTLS 18 +#define PIDX_CAPABILITY_TLS_SIGALG_MIN_TLS 19 +#define PIDX_CAPABILITY_TLS_SIGALG_NAME 29 +#define PIDX_CAPABILITY_TLS_SIGALG_OID 30 +#define PIDX_CAPABILITY_TLS_SIGALG_SECURITY_BITS 31 +#define PIDX_CAPABILITY_TLS_SIGALG_SIG_NAME 32 +#define PIDX_CAPABILITY_TLS_SIGALG_SIG_OID 33 +#define PIDX_CIPHER_PARAM_AEAD 34 +#define PIDX_CIPHER_PARAM_AEAD_IVLEN PIDX_CIPHER_PARAM_IVLEN +#define PIDX_CIPHER_PARAM_AEAD_IV_GENERATED 35 +#define PIDX_CIPHER_PARAM_AEAD_MAC_KEY 36 +#define PIDX_CIPHER_PARAM_AEAD_TAG 37 +#define PIDX_CIPHER_PARAM_AEAD_TAGLEN 38 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_AAD 39 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_AAD_PAD 40 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_GET_IV_GEN 41 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_IV_FIXED 42 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_SET_IV_INV 43 +#define PIDX_CIPHER_PARAM_ALGORITHM_ID PIDX_ALG_PARAM_ALGORITHM_ID +#define PIDX_CIPHER_PARAM_ALGORITHM_ID_PARAMS PIDX_ALG_PARAM_ALGORITHM_ID_PARAMS +#define PIDX_CIPHER_PARAM_ALGORITHM_ID_PARAMS_OLD 44 +#define PIDX_CIPHER_PARAM_BLOCK_SIZE 45 +#define PIDX_CIPHER_PARAM_CTS 46 +#define PIDX_CIPHER_PARAM_CTS_MODE 47 +#define PIDX_CIPHER_PARAM_CUSTOM_IV 48 +#define PIDX_CIPHER_PARAM_DECRYPT_ONLY 49 +#define PIDX_CIPHER_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_CIPHER_PARAM_FIPS_ENCRYPT_CHECK 50 +#define PIDX_CIPHER_PARAM_HAS_RAND_KEY 51 +#define PIDX_CIPHER_PARAM_IV 52 +#define PIDX_CIPHER_PARAM_IVLEN 53 +#define PIDX_CIPHER_PARAM_KEYLEN 54 +#define PIDX_CIPHER_PARAM_MODE 55 +#define PIDX_CIPHER_PARAM_NUM 56 +#define PIDX_CIPHER_PARAM_PADDING 57 +#define PIDX_CIPHER_PARAM_PIPELINE_AEAD_TAG 58 +#define PIDX_CIPHER_PARAM_RANDOM_KEY 59 +#define PIDX_CIPHER_PARAM_RC2_KEYBITS 60 +#define PIDX_CIPHER_PARAM_ROUNDS 61 +#define PIDX_CIPHER_PARAM_SPEED 62 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK 63 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD 64 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD_PACKLEN 65 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC 66 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_IN 67 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_LEN 68 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_INTERLEAVE 69 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_BUFSIZE 70 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_SEND_FRAGMENT 71 +#define PIDX_CIPHER_PARAM_TLS_MAC 72 +#define PIDX_CIPHER_PARAM_TLS_MAC_SIZE 73 +#define PIDX_CIPHER_PARAM_TLS_VERSION 74 +#define PIDX_CIPHER_PARAM_UPDATED_IV 75 +#define PIDX_CIPHER_PARAM_USE_BITS 76 +#define PIDX_CIPHER_PARAM_XTS_STANDARD 77 +#define PIDX_DECODER_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_DIGEST_PARAM_ALGID_ABSENT 78 +#define PIDX_DIGEST_PARAM_BLOCK_SIZE 45 +#define PIDX_DIGEST_PARAM_MICALG 79 +#define PIDX_DIGEST_PARAM_PAD_TYPE 80 +#define PIDX_DIGEST_PARAM_SIZE 81 +#define PIDX_DIGEST_PARAM_SSL3_MS 82 +#define PIDX_DIGEST_PARAM_XOF 83 +#define PIDX_DIGEST_PARAM_XOFLEN 84 +#define PIDX_DRBG_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_DRBG_PARAM_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_DRBG_PARAM_ENTROPY_REQUIRED 85 +#define PIDX_DRBG_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_DRBG_PARAM_FIPS_DIGEST_CHECK PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK +#define PIDX_DRBG_PARAM_MAC PIDX_ALG_PARAM_MAC +#define PIDX_DRBG_PARAM_MAX_ADINLEN 86 +#define PIDX_DRBG_PARAM_MAX_ENTROPYLEN 87 +#define PIDX_DRBG_PARAM_MAX_LENGTH 88 +#define PIDX_DRBG_PARAM_MAX_NONCELEN 89 +#define PIDX_DRBG_PARAM_MAX_PERSLEN 90 +#define PIDX_DRBG_PARAM_MIN_ENTROPYLEN 91 +#define PIDX_DRBG_PARAM_MIN_LENGTH 92 +#define PIDX_DRBG_PARAM_MIN_NONCELEN 93 +#define PIDX_DRBG_PARAM_PREDICTION_RESISTANCE 94 +#define PIDX_DRBG_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_DRBG_PARAM_RANDOM_DATA 95 +#define PIDX_DRBG_PARAM_RESEED_COUNTER 96 +#define PIDX_DRBG_PARAM_RESEED_REQUESTS 97 +#define PIDX_DRBG_PARAM_RESEED_TIME 98 +#define PIDX_DRBG_PARAM_RESEED_TIME_INTERVAL 99 +#define PIDX_DRBG_PARAM_SIZE 81 +#define PIDX_DRBG_PARAM_USE_DF 100 +#define PIDX_ENCODER_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_ENCODER_PARAM_ENCRYPT_LEVEL 101 +#define PIDX_ENCODER_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_ENCODER_PARAM_SAVE_PARAMETERS 102 +#define PIDX_EXCHANGE_PARAM_EC_ECDH_COFACTOR_MODE 103 +#define PIDX_EXCHANGE_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_EXCHANGE_PARAM_FIPS_DIGEST_CHECK PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK +#define PIDX_EXCHANGE_PARAM_FIPS_ECDH_COFACTOR_CHECK PIDX_PROV_PARAM_ECDH_COFACTOR_CHECK +#define PIDX_EXCHANGE_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_EXCHANGE_PARAM_KDF_DIGEST 104 +#define PIDX_EXCHANGE_PARAM_KDF_DIGEST_PROPS 105 +#define PIDX_EXCHANGE_PARAM_KDF_OUTLEN 106 +#define PIDX_EXCHANGE_PARAM_KDF_TYPE 107 +#define PIDX_EXCHANGE_PARAM_KDF_UKM 108 +#define PIDX_EXCHANGE_PARAM_PAD 109 +#define PIDX_GEN_PARAM_ITERATION 110 +#define PIDX_GEN_PARAM_POTENTIAL 111 +#define PIDX_KDF_PARAM_ARGON2_AD 112 +#define PIDX_KDF_PARAM_ARGON2_LANES 113 +#define PIDX_KDF_PARAM_ARGON2_MEMCOST 114 +#define PIDX_KDF_PARAM_ARGON2_VERSION 115 +#define PIDX_KDF_PARAM_CEK_ALG 116 +#define PIDX_KDF_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_KDF_PARAM_CONSTANT 117 +#define PIDX_KDF_PARAM_DATA 118 +#define PIDX_KDF_PARAM_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_KDF_PARAM_EARLY_CLEAN 119 +#define PIDX_KDF_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_KDF_PARAM_FIPS_DIGEST_CHECK PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK +#define PIDX_KDF_PARAM_FIPS_EMS_CHECK 120 +#define PIDX_KDF_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_KDF_PARAM_HMACDRBG_ENTROPY 121 +#define PIDX_KDF_PARAM_HMACDRBG_NONCE 122 +#define PIDX_KDF_PARAM_INFO 123 +#define PIDX_KDF_PARAM_ITER 124 +#define PIDX_KDF_PARAM_KBKDF_R 125 +#define PIDX_KDF_PARAM_KBKDF_USE_L 126 +#define PIDX_KDF_PARAM_KBKDF_USE_SEPARATOR 127 +#define PIDX_KDF_PARAM_KEY 128 +#define PIDX_KDF_PARAM_LABEL 129 +#define PIDX_KDF_PARAM_MAC PIDX_ALG_PARAM_MAC +#define PIDX_KDF_PARAM_MAC_SIZE 130 +#define PIDX_KDF_PARAM_MODE 55 +#define PIDX_KDF_PARAM_PASSWORD 131 +#define PIDX_KDF_PARAM_PKCS12_ID 132 +#define PIDX_KDF_PARAM_PKCS5 133 +#define PIDX_KDF_PARAM_PREFIX 134 +#define PIDX_KDF_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_KDF_PARAM_SALT 135 +#define PIDX_KDF_PARAM_SCRYPT_MAXMEM 136 +#define PIDX_KDF_PARAM_SCRYPT_N 137 +#define PIDX_KDF_PARAM_SCRYPT_P 138 +#define PIDX_KDF_PARAM_SCRYPT_R 125 +#define PIDX_KDF_PARAM_SECRET 139 +#define PIDX_KDF_PARAM_SEED 140 +#define PIDX_KDF_PARAM_SIZE 81 +#define PIDX_KDF_PARAM_SSHKDF_SESSION_ID 141 +#define PIDX_KDF_PARAM_SSHKDF_TYPE 142 +#define PIDX_KDF_PARAM_SSHKDF_XCGHASH 143 +#define PIDX_KDF_PARAM_THREADS 144 +#define PIDX_KDF_PARAM_UKM 145 +#define PIDX_KDF_PARAM_X942_ACVPINFO 146 +#define PIDX_KDF_PARAM_X942_PARTYUINFO 147 +#define PIDX_KDF_PARAM_X942_PARTYVINFO 148 +#define PIDX_KDF_PARAM_X942_SUPP_PRIVINFO 149 +#define PIDX_KDF_PARAM_X942_SUPP_PUBINFO 150 +#define PIDX_KDF_PARAM_X942_USE_KEYBITS 151 +#define PIDX_KEM_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_KEM_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_KEM_PARAM_IKME 152 +#define PIDX_KEM_PARAM_OPERATION 153 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_BLOCK_PADDING 154 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_HS_PADDING 155 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_MAX_EARLY_DATA 156 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_MAX_FRAG_LEN 157 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_MODE 55 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_OPTIONS 158 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_READ_AHEAD 159 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_STREAM_MAC 160 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_TLSTREE 161 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_USE_ETM 162 +#define PIDX_LIBSSL_RECORD_LAYER_READ_BUFFER_LEN 163 +#define PIDX_MAC_PARAM_BLOCK_SIZE 164 +#define PIDX_MAC_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_MAC_PARAM_CUSTOM 165 +#define PIDX_MAC_PARAM_C_ROUNDS 166 +#define PIDX_MAC_PARAM_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_MAC_PARAM_DIGEST_NOINIT 167 +#define PIDX_MAC_PARAM_DIGEST_ONESHOT 168 +#define PIDX_MAC_PARAM_D_ROUNDS 169 +#define PIDX_MAC_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_MAC_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_MAC_PARAM_FIPS_NO_SHORT_MAC PIDX_PROV_PARAM_NO_SHORT_MAC +#define PIDX_MAC_PARAM_IV 52 +#define PIDX_MAC_PARAM_KEY 128 +#define PIDX_MAC_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_MAC_PARAM_SALT 135 +#define PIDX_MAC_PARAM_SIZE 81 +#define PIDX_MAC_PARAM_TLS_DATA_SIZE 170 +#define PIDX_MAC_PARAM_XOF 83 +#define PIDX_OBJECT_PARAM_DATA 118 +#define PIDX_OBJECT_PARAM_DATA_STRUCTURE 171 +#define PIDX_OBJECT_PARAM_DATA_TYPE 172 +#define PIDX_OBJECT_PARAM_DESC 173 +#define PIDX_OBJECT_PARAM_INPUT_TYPE 174 +#define PIDX_OBJECT_PARAM_REFERENCE 175 +#define PIDX_OBJECT_PARAM_TYPE 142 +#define PIDX_PASSPHRASE_PARAM_INFO 123 +#define PIDX_PKEY_PARAM_ALGORITHM_ID PIDX_ALG_PARAM_ALGORITHM_ID +#define PIDX_PKEY_PARAM_ALGORITHM_ID_PARAMS PIDX_ALG_PARAM_ALGORITHM_ID_PARAMS +#define PIDX_PKEY_PARAM_BITS 176 +#define PIDX_PKEY_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_PKEY_PARAM_DEFAULT_DIGEST 177 +#define PIDX_PKEY_PARAM_DHKEM_IKM 178 +#define PIDX_PKEY_PARAM_DH_GENERATOR 179 +#define PIDX_PKEY_PARAM_DH_PRIV_LEN 180 +#define PIDX_PKEY_PARAM_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_PKEY_PARAM_DIGEST_SIZE 181 +#define PIDX_PKEY_PARAM_DIST_ID 182 +#define PIDX_PKEY_PARAM_EC_A 183 +#define PIDX_PKEY_PARAM_EC_B 184 +#define PIDX_PKEY_PARAM_EC_CHAR2_M 185 +#define PIDX_PKEY_PARAM_EC_CHAR2_PP_K1 186 +#define PIDX_PKEY_PARAM_EC_CHAR2_PP_K2 187 +#define PIDX_PKEY_PARAM_EC_CHAR2_PP_K3 188 +#define PIDX_PKEY_PARAM_EC_CHAR2_TP_BASIS 189 +#define PIDX_PKEY_PARAM_EC_CHAR2_TYPE 190 +#define PIDX_PKEY_PARAM_EC_COFACTOR 191 +#define PIDX_PKEY_PARAM_EC_DECODED_FROM_EXPLICIT_PARAMS 192 +#define PIDX_PKEY_PARAM_EC_ENCODING 193 +#define PIDX_PKEY_PARAM_EC_FIELD_TYPE 194 +#define PIDX_PKEY_PARAM_EC_GENERATOR 195 +#define PIDX_PKEY_PARAM_EC_GROUP_CHECK_TYPE 196 +#define PIDX_PKEY_PARAM_EC_INCLUDE_PUBLIC 197 +#define PIDX_PKEY_PARAM_EC_ORDER 198 +#define PIDX_PKEY_PARAM_EC_P 138 +#define PIDX_PKEY_PARAM_EC_POINT_CONVERSION_FORMAT 199 +#define PIDX_PKEY_PARAM_EC_PUB_X 200 +#define PIDX_PKEY_PARAM_EC_PUB_Y 201 +#define PIDX_PKEY_PARAM_EC_SEED 140 +#define PIDX_PKEY_PARAM_ENCODED_PUBLIC_KEY 202 +#define PIDX_PKEY_PARAM_ENGINE PIDX_ALG_PARAM_ENGINE +#define PIDX_PKEY_PARAM_FFC_COFACTOR 203 +#define PIDX_PKEY_PARAM_FFC_DIGEST PIDX_PKEY_PARAM_DIGEST +#define PIDX_PKEY_PARAM_FFC_DIGEST_PROPS PIDX_PKEY_PARAM_PROPERTIES +#define PIDX_PKEY_PARAM_FFC_G 204 +#define PIDX_PKEY_PARAM_FFC_GINDEX 205 +#define PIDX_PKEY_PARAM_FFC_H 206 +#define PIDX_PKEY_PARAM_FFC_P 138 +#define PIDX_PKEY_PARAM_FFC_PBITS 207 +#define PIDX_PKEY_PARAM_FFC_PCOUNTER 208 +#define PIDX_PKEY_PARAM_FFC_Q 209 +#define PIDX_PKEY_PARAM_FFC_QBITS 210 +#define PIDX_PKEY_PARAM_FFC_SEED 140 +#define PIDX_PKEY_PARAM_FFC_TYPE 142 +#define PIDX_PKEY_PARAM_FFC_VALIDATE_G 211 +#define PIDX_PKEY_PARAM_FFC_VALIDATE_LEGACY 212 +#define PIDX_PKEY_PARAM_FFC_VALIDATE_PQ 213 +#define PIDX_PKEY_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK 214 +#define PIDX_PKEY_PARAM_FIPS_KEY_CHECK 215 +#define PIDX_PKEY_PARAM_FIPS_SIGN_CHECK 216 +#define PIDX_PKEY_PARAM_GROUP_NAME 217 +#define PIDX_PKEY_PARAM_IMPLICIT_REJECTION 8 +#define PIDX_PKEY_PARAM_MANDATORY_DIGEST 218 +#define PIDX_PKEY_PARAM_MASKGENFUNC 219 +#define PIDX_PKEY_PARAM_MAX_SIZE 220 +#define PIDX_PKEY_PARAM_MGF1_DIGEST 221 +#define PIDX_PKEY_PARAM_MGF1_PROPERTIES 222 +#define PIDX_PKEY_PARAM_ML_DSA_INPUT_FORMATS 223 +#define PIDX_PKEY_PARAM_ML_DSA_OUTPUT_FORMATS 224 +#define PIDX_PKEY_PARAM_ML_DSA_PREFER_SEED 225 +#define PIDX_PKEY_PARAM_ML_DSA_RETAIN_SEED 226 +#define PIDX_PKEY_PARAM_ML_DSA_SEED 140 +#define PIDX_PKEY_PARAM_ML_KEM_IMPORT_PCT_TYPE 227 +#define PIDX_PKEY_PARAM_ML_KEM_INPUT_FORMATS 228 +#define PIDX_PKEY_PARAM_ML_KEM_OUTPUT_FORMATS 229 +#define PIDX_PKEY_PARAM_ML_KEM_PREFER_SEED 230 +#define PIDX_PKEY_PARAM_ML_KEM_RETAIN_SEED 231 +#define PIDX_PKEY_PARAM_ML_KEM_SEED 140 +#define PIDX_PKEY_PARAM_PAD_MODE 232 +#define PIDX_PKEY_PARAM_PRIV_KEY 233 +#define PIDX_PKEY_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_PKEY_PARAM_PUB_KEY 234 +#define PIDX_PKEY_PARAM_RSA_BITS PIDX_PKEY_PARAM_BITS +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT 235 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT1 236 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT2 237 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT3 238 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT4 239 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT5 240 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT6 241 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT7 242 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT8 243 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT9 244 +#define PIDX_PKEY_PARAM_RSA_D 245 +#define PIDX_PKEY_PARAM_RSA_DERIVE_FROM_PQ 246 +#define PIDX_PKEY_PARAM_RSA_DIGEST PIDX_PKEY_PARAM_DIGEST +#define PIDX_PKEY_PARAM_RSA_DIGEST_PROPS PIDX_PKEY_PARAM_PROPERTIES +#define PIDX_PKEY_PARAM_RSA_E 247 +#define PIDX_PKEY_PARAM_RSA_EXPONENT 248 +#define PIDX_PKEY_PARAM_RSA_EXPONENT1 249 +#define PIDX_PKEY_PARAM_RSA_EXPONENT10 250 +#define PIDX_PKEY_PARAM_RSA_EXPONENT2 251 +#define PIDX_PKEY_PARAM_RSA_EXPONENT3 252 +#define PIDX_PKEY_PARAM_RSA_EXPONENT4 253 +#define PIDX_PKEY_PARAM_RSA_EXPONENT5 254 +#define PIDX_PKEY_PARAM_RSA_EXPONENT6 255 +#define PIDX_PKEY_PARAM_RSA_EXPONENT7 256 +#define PIDX_PKEY_PARAM_RSA_EXPONENT8 257 +#define PIDX_PKEY_PARAM_RSA_EXPONENT9 258 +#define PIDX_PKEY_PARAM_RSA_FACTOR 259 +#define PIDX_PKEY_PARAM_RSA_FACTOR1 260 +#define PIDX_PKEY_PARAM_RSA_FACTOR10 261 +#define PIDX_PKEY_PARAM_RSA_FACTOR2 262 +#define PIDX_PKEY_PARAM_RSA_FACTOR3 263 +#define PIDX_PKEY_PARAM_RSA_FACTOR4 264 +#define PIDX_PKEY_PARAM_RSA_FACTOR5 265 +#define PIDX_PKEY_PARAM_RSA_FACTOR6 266 +#define PIDX_PKEY_PARAM_RSA_FACTOR7 267 +#define PIDX_PKEY_PARAM_RSA_FACTOR8 268 +#define PIDX_PKEY_PARAM_RSA_FACTOR9 269 +#define PIDX_PKEY_PARAM_RSA_MASKGENFUNC PIDX_PKEY_PARAM_MASKGENFUNC +#define PIDX_PKEY_PARAM_RSA_MGF1_DIGEST PIDX_PKEY_PARAM_MGF1_DIGEST +#define PIDX_PKEY_PARAM_RSA_N 137 +#define PIDX_PKEY_PARAM_RSA_PRIMES 270 +#define PIDX_PKEY_PARAM_RSA_PSS_SALTLEN 271 +#define PIDX_PKEY_PARAM_RSA_TEST_P1 272 +#define PIDX_PKEY_PARAM_RSA_TEST_P2 273 +#define PIDX_PKEY_PARAM_RSA_TEST_Q1 274 +#define PIDX_PKEY_PARAM_RSA_TEST_Q2 275 +#define PIDX_PKEY_PARAM_RSA_TEST_XP 276 +#define PIDX_PKEY_PARAM_RSA_TEST_XP1 277 +#define PIDX_PKEY_PARAM_RSA_TEST_XP2 278 +#define PIDX_PKEY_PARAM_RSA_TEST_XQ 279 +#define PIDX_PKEY_PARAM_RSA_TEST_XQ1 280 +#define PIDX_PKEY_PARAM_RSA_TEST_XQ2 281 +#define PIDX_PKEY_PARAM_SECURITY_BITS 282 +#define PIDX_PKEY_PARAM_SLH_DSA_SEED 140 +#define PIDX_PKEY_PARAM_USE_COFACTOR_ECDH PIDX_PKEY_PARAM_USE_COFACTOR_FLAG +#define PIDX_PKEY_PARAM_USE_COFACTOR_FLAG 283 +#define PIDX_PROV_PARAM_BUILDINFO 284 +#define PIDX_PROV_PARAM_CORE_MODULE_FILENAME 285 +#define PIDX_PROV_PARAM_CORE_PROV_NAME 286 +#define PIDX_PROV_PARAM_CORE_VERSION 287 +#define PIDX_PROV_PARAM_DRBG_TRUNC_DIGEST 288 +#define PIDX_PROV_PARAM_DSA_SIGN_DISABLED 289 +#define PIDX_PROV_PARAM_ECDH_COFACTOR_CHECK 290 +#define PIDX_PROV_PARAM_HKDF_DIGEST_CHECK 291 +#define PIDX_PROV_PARAM_HKDF_KEY_CHECK 292 +#define PIDX_PROV_PARAM_HMAC_KEY_CHECK 293 +#define PIDX_PROV_PARAM_KBKDF_KEY_CHECK 294 +#define PIDX_PROV_PARAM_KMAC_KEY_CHECK 295 +#define PIDX_PROV_PARAM_NAME 296 +#define PIDX_PROV_PARAM_NO_SHORT_MAC 297 +#define PIDX_PROV_PARAM_PBKDF2_LOWER_BOUND_CHECK 298 +#define PIDX_PROV_PARAM_RSA_PKCS15_PAD_DISABLED 299 +#define PIDX_PROV_PARAM_RSA_PSS_SALTLEN_CHECK 300 +#define PIDX_PROV_PARAM_RSA_SIGN_X931_PAD_DISABLED 301 +#define PIDX_PROV_PARAM_SECURITY_CHECKS 302 +#define PIDX_PROV_PARAM_SELF_TEST_DESC 303 +#define PIDX_PROV_PARAM_SELF_TEST_PHASE 304 +#define PIDX_PROV_PARAM_SELF_TEST_TYPE 305 +#define PIDX_PROV_PARAM_SIGNATURE_DIGEST_CHECK 306 +#define PIDX_PROV_PARAM_SSHKDF_DIGEST_CHECK 307 +#define PIDX_PROV_PARAM_SSHKDF_KEY_CHECK 308 +#define PIDX_PROV_PARAM_SSKDF_DIGEST_CHECK 309 +#define PIDX_PROV_PARAM_SSKDF_KEY_CHECK 310 +#define PIDX_PROV_PARAM_STATUS 311 +#define PIDX_PROV_PARAM_TDES_ENCRYPT_DISABLED 312 +#define PIDX_PROV_PARAM_TLS13_KDF_DIGEST_CHECK 313 +#define PIDX_PROV_PARAM_TLS13_KDF_KEY_CHECK 314 +#define PIDX_PROV_PARAM_TLS1_PRF_DIGEST_CHECK 315 +#define PIDX_PROV_PARAM_TLS1_PRF_EMS_CHECK 316 +#define PIDX_PROV_PARAM_TLS1_PRF_KEY_CHECK 317 +#define PIDX_PROV_PARAM_VERSION 115 +#define PIDX_PROV_PARAM_X942KDF_KEY_CHECK 318 +#define PIDX_PROV_PARAM_X963KDF_DIGEST_CHECK 319 +#define PIDX_PROV_PARAM_X963KDF_KEY_CHECK 320 +#define PIDX_RAND_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_RAND_PARAM_GENERATE 321 +#define PIDX_RAND_PARAM_MAX_REQUEST 322 +#define PIDX_RAND_PARAM_STATE 323 +#define PIDX_RAND_PARAM_STRENGTH 324 +#define PIDX_RAND_PARAM_TEST_ENTROPY 325 +#define PIDX_RAND_PARAM_TEST_NONCE 326 +#define PIDX_SIGNATURE_PARAM_ADD_RANDOM 327 +#define PIDX_SIGNATURE_PARAM_ALGORITHM_ID PIDX_PKEY_PARAM_ALGORITHM_ID +#define PIDX_SIGNATURE_PARAM_ALGORITHM_ID_PARAMS PIDX_PKEY_PARAM_ALGORITHM_ID_PARAMS +#define PIDX_SIGNATURE_PARAM_CONTEXT_STRING 328 +#define PIDX_SIGNATURE_PARAM_DETERMINISTIC 329 +#define PIDX_SIGNATURE_PARAM_DIGEST PIDX_PKEY_PARAM_DIGEST +#define PIDX_SIGNATURE_PARAM_DIGEST_SIZE PIDX_PKEY_PARAM_DIGEST_SIZE +#define PIDX_SIGNATURE_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_SIGNATURE_PARAM_FIPS_DIGEST_CHECK PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK +#define PIDX_SIGNATURE_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_SIGNATURE_PARAM_FIPS_RSA_PSS_SALTLEN_CHECK 300 +#define PIDX_SIGNATURE_PARAM_FIPS_SIGN_CHECK PIDX_PKEY_PARAM_FIPS_SIGN_CHECK +#define PIDX_SIGNATURE_PARAM_FIPS_SIGN_X931_PAD_CHECK 330 +#define PIDX_SIGNATURE_PARAM_FIPS_VERIFY_MESSAGE 331 +#define PIDX_SIGNATURE_PARAM_INSTANCE 332 +#define PIDX_SIGNATURE_PARAM_KAT 333 +#define PIDX_SIGNATURE_PARAM_MESSAGE_ENCODING 334 +#define PIDX_SIGNATURE_PARAM_MGF1_DIGEST PIDX_PKEY_PARAM_MGF1_DIGEST +#define PIDX_SIGNATURE_PARAM_MGF1_PROPERTIES PIDX_PKEY_PARAM_MGF1_PROPERTIES +#define PIDX_SIGNATURE_PARAM_MU 335 +#define PIDX_SIGNATURE_PARAM_NONCE_TYPE 336 +#define PIDX_SIGNATURE_PARAM_PAD_MODE PIDX_PKEY_PARAM_PAD_MODE +#define PIDX_SIGNATURE_PARAM_PROPERTIES PIDX_PKEY_PARAM_PROPERTIES +#define PIDX_SIGNATURE_PARAM_PSS_SALTLEN 271 +#define PIDX_SIGNATURE_PARAM_SIGNATURE 337 +#define PIDX_SIGNATURE_PARAM_TEST_ENTROPY 338 +#define PIDX_SKEY_PARAM_KEY_LENGTH 339 +#define PIDX_SKEY_PARAM_RAW_BYTES 340 +#define PIDX_STORE_PARAM_ALIAS 341 +#define PIDX_STORE_PARAM_DIGEST 3 +#define PIDX_STORE_PARAM_EXPECT 342 +#define PIDX_STORE_PARAM_FINGERPRINT 343 +#define PIDX_STORE_PARAM_INPUT_TYPE 174 +#define PIDX_STORE_PARAM_ISSUER 296 +#define PIDX_STORE_PARAM_PROPERTIES 7 +#define PIDX_STORE_PARAM_SERIAL 344 +#define PIDX_STORE_PARAM_SUBJECT 345 diff --git a/deps/openssl/config/archs/VC-WIN32/no-asm/include/openssl/asn1.h b/deps/openssl/config/archs/VC-WIN32/no-asm/include/openssl/asn1.h index e28efbbb718e2b..5129217b2e0977 100644 --- a/deps/openssl/config/archs/VC-WIN32/no-asm/include/openssl/asn1.h +++ b/deps/openssl/config/archs/VC-WIN32/no-asm/include/openssl/asn1.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by makefile from include/openssl/asn1.h.in * - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -21,6 +21,9 @@ # define HEADER_ASN1_H # endif +# ifndef OPENSSL_NO_STDIO +# include +# endif # include # include # include @@ -50,14 +53,14 @@ extern "C" { # define V_ASN1_PRIMITIVE_TAG 0x1f # define V_ASN1_PRIMATIVE_TAG /*compat*/ V_ASN1_PRIMITIVE_TAG -# define V_ASN1_APP_CHOOSE -2/* let the recipient choose */ -# define V_ASN1_OTHER -3/* used in ASN1_TYPE */ -# define V_ASN1_ANY -4/* used in ASN1 template code */ +# define V_ASN1_APP_CHOOSE -2 /* let the recipient choose */ +# define V_ASN1_OTHER -3 /* used in ASN1_TYPE */ +# define V_ASN1_ANY -4 /* used in ASN1 template code */ # define V_ASN1_UNDEF -1 /* ASN.1 tag values */ # define V_ASN1_EOC 0 -# define V_ASN1_BOOLEAN 1 /**/ +# define V_ASN1_BOOLEAN 1 # define V_ASN1_INTEGER 2 # define V_ASN1_BIT_STRING 3 # define V_ASN1_OCTET_STRING 4 @@ -70,19 +73,19 @@ extern "C" { # define V_ASN1_UTF8STRING 12 # define V_ASN1_SEQUENCE 16 # define V_ASN1_SET 17 -# define V_ASN1_NUMERICSTRING 18 /**/ +# define V_ASN1_NUMERICSTRING 18 # define V_ASN1_PRINTABLESTRING 19 # define V_ASN1_T61STRING 20 -# define V_ASN1_TELETEXSTRING 20/* alias */ -# define V_ASN1_VIDEOTEXSTRING 21 /**/ +# define V_ASN1_TELETEXSTRING 20 /* alias */ +# define V_ASN1_VIDEOTEXSTRING 21 # define V_ASN1_IA5STRING 22 # define V_ASN1_UTCTIME 23 -# define V_ASN1_GENERALIZEDTIME 24 /**/ -# define V_ASN1_GRAPHICSTRING 25 /**/ -# define V_ASN1_ISO64STRING 26 /**/ -# define V_ASN1_VISIBLESTRING 26/* alias */ -# define V_ASN1_GENERALSTRING 27 /**/ -# define V_ASN1_UNIVERSALSTRING 28 /**/ +# define V_ASN1_GENERALIZEDTIME 24 +# define V_ASN1_GRAPHICSTRING 25 +# define V_ASN1_ISO64STRING 26 +# define V_ASN1_VISIBLESTRING 26 /* alias */ +# define V_ASN1_GENERALSTRING 27 +# define V_ASN1_UNIVERSALSTRING 28 # define V_ASN1_BMPSTRING 30 /* @@ -155,7 +158,7 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_ALGOR, X509_ALGOR, X509_ALGOR) -# define ASN1_STRING_FLAG_BITS_LEFT 0x08/* Set if 0x07 has bits left value */ +# define ASN1_STRING_FLAG_BITS_LEFT 0x08 /* Set if 0x07 has bits left value */ /* * This indicates that the ASN1_STRING is not a real value but just a place * holder for the location where indefinite length constructed data should be @@ -275,7 +278,7 @@ typedef struct ASN1_TLC_st ASN1_TLC; /* This is just an opaque pointer */ typedef struct ASN1_VALUE_st ASN1_VALUE; -/* Declare ASN1 functions: the implement macro in in asn1t.h */ +/* Declare ASN1 functions: the implement macro is in asn1t.h */ /* * The mysterious 'extern' that's passed to some macros is innocuous, @@ -368,6 +371,7 @@ typedef struct ASN1_VALUE_st ASN1_VALUE; typedef void *d2i_of_void(void **, const unsigned char **, long); typedef int i2d_of_void(const void *, unsigned char **); +typedef int OSSL_i2d_of_void_ctx(const void *, unsigned char **, void *vctx); /*- * The following macros and typedefs allow an ASN1_ITEM @@ -996,6 +1000,8 @@ int ASN1_TYPE_get_int_octetstring(const ASN1_TYPE *a, long *num, unsigned char *data, int max_len); void *ASN1_item_unpack(const ASN1_STRING *oct, const ASN1_ITEM *it); +void *ASN1_item_unpack_ex(const ASN1_STRING *oct, const ASN1_ITEM *it, + OSSL_LIB_CTX *libctx, const char *propq); ASN1_STRING *ASN1_item_pack(void *obj, const ASN1_ITEM *it, ASN1_OCTET_STRING **oct); diff --git a/deps/openssl/config/archs/VC-WIN32/no-asm/include/openssl/bio.h b/deps/openssl/config/archs/VC-WIN32/no-asm/include/openssl/bio.h index d094af47b73f1c..be24d086a54013 100644 --- a/deps/openssl/config/archs/VC-WIN32/no-asm/include/openssl/bio.h +++ b/deps/openssl/config/archs/VC-WIN32/no-asm/include/openssl/bio.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by makefile from include/openssl/bio.h.in * - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -67,8 +67,13 @@ extern "C" { # define BIO_TYPE_DGRAM_SCTP (24|BIO_TYPE_SOURCE_SINK|BIO_TYPE_DESCRIPTOR) # endif # define BIO_TYPE_CORE_TO_PROV (25|BIO_TYPE_SOURCE_SINK) +# define BIO_TYPE_DGRAM_PAIR (26|BIO_TYPE_SOURCE_SINK) +# define BIO_TYPE_DGRAM_MEM (27|BIO_TYPE_SOURCE_SINK) +/* Custom type starting index returned by BIO_get_new_index() */ #define BIO_TYPE_START 128 +/* Custom type maximum index that can be returned by BIO_get_new_index() */ +#define BIO_TYPE_MASK 0xFF /* * BIO_FILENAME_READ|BIO_CLOSE to open or close on free. @@ -171,6 +176,31 @@ extern "C" { # define BIO_CTRL_SET_INDENT 80 # define BIO_CTRL_GET_INDENT 81 +# define BIO_CTRL_DGRAM_GET_LOCAL_ADDR_CAP 82 +# define BIO_CTRL_DGRAM_GET_LOCAL_ADDR_ENABLE 83 +# define BIO_CTRL_DGRAM_SET_LOCAL_ADDR_ENABLE 84 +# define BIO_CTRL_DGRAM_GET_EFFECTIVE_CAPS 85 +# define BIO_CTRL_DGRAM_GET_CAPS 86 +# define BIO_CTRL_DGRAM_SET_CAPS 87 +# define BIO_CTRL_DGRAM_GET_NO_TRUNC 88 +# define BIO_CTRL_DGRAM_SET_NO_TRUNC 89 + +/* + * internal BIO: + * # define BIO_CTRL_SET_KTLS_TX_ZEROCOPY_SENDFILE 90 + */ + +# define BIO_CTRL_GET_RPOLL_DESCRIPTOR 91 +# define BIO_CTRL_GET_WPOLL_DESCRIPTOR 92 +# define BIO_CTRL_DGRAM_DETECT_PEER_ADDR 93 +# define BIO_CTRL_DGRAM_SET0_LOCAL_ADDR 94 + +# define BIO_DGRAM_CAP_NONE 0U +# define BIO_DGRAM_CAP_HANDLES_SRC_ADDR (1U << 0) +# define BIO_DGRAM_CAP_HANDLES_DST_ADDR (1U << 1) +# define BIO_DGRAM_CAP_PROVIDES_SRC_ADDR (1U << 2) +# define BIO_DGRAM_CAP_PROVIDES_DST_ADDR (1U << 3) + # ifndef OPENSSL_NO_KTLS # define BIO_get_ktls_send(b) \ (BIO_ctrl(b, BIO_CTRL_GET_KTLS_SEND, 0, NULL) > 0) @@ -208,7 +238,7 @@ extern "C" { # define BIO_FLAGS_NONCLEAR_RST 0x400 # define BIO_FLAGS_IN_EOF 0x800 -/* the BIO FLAGS values 0x1000 to 0x4000 are reserved for internal KTLS flags */ +/* the BIO FLAGS values 0x1000 to 0x8000 are reserved for internal KTLS flags */ typedef union bio_addr_st BIO_ADDR; typedef struct bio_addrinfo_st BIO_ADDRINFO; @@ -256,12 +286,14 @@ void BIO_clear_flags(BIO *b, int flags); # define BIO_RR_ACCEPT 0x03 /* These are passed by the BIO callback */ -# define BIO_CB_FREE 0x01 -# define BIO_CB_READ 0x02 -# define BIO_CB_WRITE 0x03 -# define BIO_CB_PUTS 0x04 -# define BIO_CB_GETS 0x05 -# define BIO_CB_CTRL 0x06 +# define BIO_CB_FREE 0x01 +# define BIO_CB_READ 0x02 +# define BIO_CB_WRITE 0x03 +# define BIO_CB_PUTS 0x04 +# define BIO_CB_GETS 0x05 +# define BIO_CB_CTRL 0x06 +# define BIO_CB_RECVMMSG 0x07 +# define BIO_CB_SENDMMSG 0x08 /* * The callback is called before and after the underling operation, The @@ -362,6 +394,36 @@ struct bio_dgram_sctp_prinfo { }; # endif +/* BIO_sendmmsg/BIO_recvmmsg-related definitions */ +typedef struct bio_msg_st { + void *data; + size_t data_len; + BIO_ADDR *peer, *local; + uint64_t flags; +} BIO_MSG; + +typedef struct bio_mmsg_cb_args_st { + BIO_MSG *msg; + size_t stride, num_msg; + uint64_t flags; + size_t *msgs_processed; +} BIO_MMSG_CB_ARGS; + +#define BIO_POLL_DESCRIPTOR_TYPE_NONE 0 +#define BIO_POLL_DESCRIPTOR_TYPE_SOCK_FD 1 +#define BIO_POLL_DESCRIPTOR_TYPE_SSL 2 +#define BIO_POLL_DESCRIPTOR_CUSTOM_START 8192 + +typedef struct bio_poll_descriptor_st { + uint32_t type; + union { + int fd; + void *custom; + uintptr_t custom_ui; + SSL *ssl; + } value; +} BIO_POLL_DESCRIPTOR; + /* * #define BIO_CONN_get_param_hostname BIO_ctrl */ @@ -428,10 +490,17 @@ struct bio_dgram_sctp_prinfo { # define BIO_C_SET_CONNECT_MODE 155 +# define BIO_C_SET_TFO 156 /* like BIO_C_SET_NBIO */ + +# define BIO_C_SET_SOCK_TYPE 157 +# define BIO_C_GET_SOCK_TYPE 158 +# define BIO_C_GET_DGRAM_BIO 159 + # define BIO_set_app_data(s,arg) BIO_set_ex_data(s,0,arg) # define BIO_get_app_data(s) BIO_get_ex_data(s,0) -# define BIO_set_nbio(b,n) BIO_ctrl(b,BIO_C_SET_NBIO,(n),NULL) +# define BIO_set_nbio(b,n) BIO_ctrl(b,BIO_C_SET_NBIO,(n),NULL) +# define BIO_set_tfo(b,n) BIO_ctrl(b,BIO_C_SET_TFO,(n),NULL) # ifndef OPENSSL_NO_SOCK /* IP families we support, for BIO_s_connect() and BIO_s_accept() */ @@ -452,7 +521,11 @@ struct bio_dgram_sctp_prinfo { # define BIO_get_conn_port(b) ((const char *)BIO_ptr_ctrl(b,BIO_C_GET_CONNECT,1)) # define BIO_get_conn_address(b) ((const BIO_ADDR *)BIO_ptr_ctrl(b,BIO_C_GET_CONNECT,2)) # define BIO_get_conn_ip_family(b) BIO_ctrl(b,BIO_C_GET_CONNECT,3,NULL) +# define BIO_get_conn_mode(b) BIO_ctrl(b,BIO_C_GET_CONNECT,4,NULL) # define BIO_set_conn_mode(b,n) BIO_ctrl(b,BIO_C_SET_CONNECT_MODE,(n),NULL) +# define BIO_set_sock_type(b,t) BIO_ctrl(b,BIO_C_SET_SOCK_TYPE,(t),NULL) +# define BIO_get_sock_type(b) BIO_ctrl(b,BIO_C_GET_SOCK_TYPE,0,NULL) +# define BIO_get0_dgram_bio(b, p) BIO_ctrl(b,BIO_C_GET_DGRAM_BIO,0,(void *)(BIO **)(p)) /* BIO_s_accept() */ # define BIO_set_accept_name(b,name) BIO_ctrl(b,BIO_C_SET_ACCEPT,0, \ @@ -469,6 +542,7 @@ struct bio_dgram_sctp_prinfo { (char *)(bio)) # define BIO_set_accept_ip_family(b,f) BIO_int_ctrl(b,BIO_C_SET_ACCEPT,4,f) # define BIO_get_accept_ip_family(b) BIO_ctrl(b,BIO_C_GET_ACCEPT,4,NULL) +# define BIO_set_tfo_accept(b,n) BIO_ctrl(b,BIO_C_SET_ACCEPT,5,(n)?(void *)"a":NULL) /* Aliases kept for backward compatibility */ # define BIO_BIND_NORMAL 0 @@ -596,8 +670,32 @@ int BIO_ctrl_reset_read_request(BIO *b); (int)BIO_ctrl(b, BIO_CTRL_DGRAM_GET_PEER, 0, (char *)(peer)) # define BIO_dgram_set_peer(b,peer) \ (int)BIO_ctrl(b, BIO_CTRL_DGRAM_SET_PEER, 0, (char *)(peer)) +# define BIO_dgram_detect_peer_addr(b,peer) \ + (int)BIO_ctrl(b, BIO_CTRL_DGRAM_DETECT_PEER_ADDR, 0, (char *)(peer)) # define BIO_dgram_get_mtu_overhead(b) \ (unsigned int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_MTU_OVERHEAD, 0, NULL) +# define BIO_dgram_get_local_addr_cap(b) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_LOCAL_ADDR_CAP, 0, NULL) +# define BIO_dgram_get_local_addr_enable(b, penable) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_LOCAL_ADDR_ENABLE, 0, (char *)(penable)) +# define BIO_dgram_set_local_addr_enable(b, enable) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET_LOCAL_ADDR_ENABLE, (enable), NULL) +# define BIO_dgram_get_effective_caps(b) \ + (uint32_t)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_EFFECTIVE_CAPS, 0, NULL) +# define BIO_dgram_get_caps(b) \ + (uint32_t)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_CAPS, 0, NULL) +# define BIO_dgram_set_caps(b, caps) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET_CAPS, (long)(caps), NULL) +# define BIO_dgram_get_no_trunc(b) \ + (unsigned int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_NO_TRUNC, 0, NULL) +# define BIO_dgram_set_no_trunc(b, enable) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET_NO_TRUNC, (enable), NULL) +# define BIO_dgram_get_mtu(b) \ + (unsigned int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_MTU, 0, NULL) +# define BIO_dgram_set_mtu(b, mtu) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET_MTU, (mtu), NULL) +# define BIO_dgram_set0_local_addr(b, addr) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET0_LOCAL_ADDR, 0, (addr)) /* ctrl macros for BIO_f_prefix */ # define BIO_set_prefix(b,p) BIO_ctrl((b), BIO_CTRL_SET_PREFIX, 0, (void *)(p)) @@ -640,10 +738,18 @@ void BIO_vfree(BIO *a); int BIO_up_ref(BIO *a); int BIO_read(BIO *b, void *data, int dlen); int BIO_read_ex(BIO *b, void *data, size_t dlen, size_t *readbytes); +__owur int BIO_recvmmsg(BIO *b, BIO_MSG *msg, + size_t stride, size_t num_msg, uint64_t flags, + size_t *msgs_processed); int BIO_gets(BIO *bp, char *buf, int size); int BIO_get_line(BIO *bio, char *buf, int size); int BIO_write(BIO *b, const void *data, int dlen); int BIO_write_ex(BIO *b, const void *data, size_t dlen, size_t *written); +__owur int BIO_sendmmsg(BIO *b, BIO_MSG *msg, + size_t stride, size_t num_msg, uint64_t flags, + size_t *msgs_processed); +__owur int BIO_get_rpoll_descriptor(BIO *b, BIO_POLL_DESCRIPTOR *desc); +__owur int BIO_get_wpoll_descriptor(BIO *b, BIO_POLL_DESCRIPTOR *desc); int BIO_puts(BIO *bp, const char *buf); int BIO_indent(BIO *b, int indent, int max); long BIO_ctrl(BIO *bp, int cmd, long larg, void *parg); @@ -667,6 +773,9 @@ int BIO_nwrite0(BIO *bio, char **buf); int BIO_nwrite(BIO *bio, char **buf, int num); const BIO_METHOD *BIO_s_mem(void); +# ifndef OPENSSL_NO_DGRAM +const BIO_METHOD *BIO_s_dgram_mem(void); +# endif const BIO_METHOD *BIO_s_secmem(void); BIO *BIO_new_mem_buf(const void *buf, int len); # ifndef OPENSSL_NO_SOCK @@ -686,6 +795,7 @@ const BIO_METHOD *BIO_f_nbio_test(void); const BIO_METHOD *BIO_f_prefix(void); const BIO_METHOD *BIO_s_core(void); # ifndef OPENSSL_NO_DGRAM +const BIO_METHOD *BIO_s_dgram_pair(void); const BIO_METHOD *BIO_s_datagram(void); int BIO_dgram_non_fatal_error(int error); BIO *BIO_new_dgram(int fd, int close_flag); @@ -704,6 +814,7 @@ int BIO_dgram_sctp_msg_waiting(BIO *b); # ifndef OPENSSL_NO_SOCK int BIO_sock_should_retry(int i); int BIO_sock_non_fatal_error(int error); +int BIO_err_is_non_fatal(unsigned int errcode); int BIO_socket_wait(int fd, int for_read, time_t max_time); # endif int BIO_wait(BIO *bio, time_t max_time, unsigned int nap_milliseconds); @@ -726,6 +837,8 @@ int BIO_hex_string(BIO *out, int indent, int width, const void *data, # ifndef OPENSSL_NO_SOCK BIO_ADDR *BIO_ADDR_new(void); +int BIO_ADDR_copy(BIO_ADDR *dst, const BIO_ADDR *src); +BIO_ADDR *BIO_ADDR_dup(const BIO_ADDR *ap); int BIO_ADDR_rawmake(BIO_ADDR *ap, int family, const void *where, size_t wherelen, unsigned short port); void BIO_ADDR_free(BIO_ADDR *); @@ -788,6 +901,7 @@ int BIO_sock_info(int sock, # define BIO_SOCK_KEEPALIVE 0x04 # define BIO_SOCK_NONBLOCK 0x08 # define BIO_SOCK_NODELAY 0x10 +# define BIO_SOCK_TFO 0x20 int BIO_socket(int domain, int socktype, int protocol, int options); int BIO_connect(int sock, const BIO_ADDR *addr, int options); @@ -805,6 +919,11 @@ BIO *BIO_new_fd(int fd, int close_flag); int BIO_new_bio_pair(BIO **bio1, size_t writebuf1, BIO **bio2, size_t writebuf2); +# ifndef OPENSSL_NO_DGRAM +int BIO_new_bio_dgram_pair(BIO **bio1, size_t writebuf1, + BIO **bio2, size_t writebuf2); +# endif + /* * If successful, returns 1 and in *bio1, *bio2 two BIO pair endpoints. * Otherwise returns 0 and sets *bio1 and *bio2 to NULL. Size 0 uses default @@ -849,38 +968,54 @@ ossl_bio__attr__((__format__(ossl_bio__printf__, 3, 0))); BIO_METHOD *BIO_meth_new(int type, const char *name); void BIO_meth_free(BIO_METHOD *biom); -int (*BIO_meth_get_write(const BIO_METHOD *biom)) (BIO *, const char *, int); -int (*BIO_meth_get_write_ex(const BIO_METHOD *biom)) (BIO *, const char *, size_t, - size_t *); int BIO_meth_set_write(BIO_METHOD *biom, int (*write) (BIO *, const char *, int)); int BIO_meth_set_write_ex(BIO_METHOD *biom, int (*bwrite) (BIO *, const char *, size_t, size_t *)); -int (*BIO_meth_get_read(const BIO_METHOD *biom)) (BIO *, char *, int); -int (*BIO_meth_get_read_ex(const BIO_METHOD *biom)) (BIO *, char *, size_t, size_t *); +int BIO_meth_set_sendmmsg(BIO_METHOD *biom, + int (*f) (BIO *, BIO_MSG *, size_t, size_t, + uint64_t, size_t *)); int BIO_meth_set_read(BIO_METHOD *biom, int (*read) (BIO *, char *, int)); int BIO_meth_set_read_ex(BIO_METHOD *biom, int (*bread) (BIO *, char *, size_t, size_t *)); -int (*BIO_meth_get_puts(const BIO_METHOD *biom)) (BIO *, const char *); +int BIO_meth_set_recvmmsg(BIO_METHOD *biom, + int (*f) (BIO *, BIO_MSG *, size_t, size_t, + uint64_t, size_t *)); int BIO_meth_set_puts(BIO_METHOD *biom, int (*puts) (BIO *, const char *)); -int (*BIO_meth_get_gets(const BIO_METHOD *biom)) (BIO *, char *, int); int BIO_meth_set_gets(BIO_METHOD *biom, int (*ossl_gets) (BIO *, char *, int)); -long (*BIO_meth_get_ctrl(const BIO_METHOD *biom)) (BIO *, int, long, void *); int BIO_meth_set_ctrl(BIO_METHOD *biom, long (*ctrl) (BIO *, int, long, void *)); -int (*BIO_meth_get_create(const BIO_METHOD *bion)) (BIO *); int BIO_meth_set_create(BIO_METHOD *biom, int (*create) (BIO *)); -int (*BIO_meth_get_destroy(const BIO_METHOD *biom)) (BIO *); int BIO_meth_set_destroy(BIO_METHOD *biom, int (*destroy) (BIO *)); -long (*BIO_meth_get_callback_ctrl(const BIO_METHOD *biom)) - (BIO *, int, BIO_info_cb *); int BIO_meth_set_callback_ctrl(BIO_METHOD *biom, long (*callback_ctrl) (BIO *, int, BIO_info_cb *)); - +# ifndef OPENSSL_NO_DEPRECATED_3_5 +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_write(const BIO_METHOD *biom)) (BIO *, const char *, + int); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_write_ex(const BIO_METHOD *biom)) (BIO *, const char *, + size_t, size_t *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_sendmmsg(const BIO_METHOD *biom))(BIO *, BIO_MSG *, + size_t, size_t, + uint64_t, size_t *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_read(const BIO_METHOD *biom)) (BIO *, char *, int); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_read_ex(const BIO_METHOD *biom)) (BIO *, char *, + size_t, size_t *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_recvmmsg(const BIO_METHOD *biom))(BIO *, BIO_MSG *, + size_t, size_t, + uint64_t, size_t *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_puts(const BIO_METHOD *biom)) (BIO *, const char *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_gets(const BIO_METHOD *biom)) (BIO *, char *, int); +OSSL_DEPRECATEDIN_3_5 long (*BIO_meth_get_ctrl(const BIO_METHOD *biom)) (BIO *, int, + long, void *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_create(const BIO_METHOD *bion)) (BIO *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_destroy(const BIO_METHOD *biom)) (BIO *); +OSSL_DEPRECATEDIN_3_5 long (*BIO_meth_get_callback_ctrl(const BIO_METHOD *biom)) (BIO *, int, + BIO_info_cb *); +# endif # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/VC-WIN32/no-asm/include/openssl/cmp.h b/deps/openssl/config/archs/VC-WIN32/no-asm/include/openssl/cmp.h index f0e768e01baacd..ded2dd2905f756 100644 --- a/deps/openssl/config/archs/VC-WIN32/no-asm/include/openssl/cmp.h +++ b/deps/openssl/config/archs/VC-WIN32/no-asm/include/openssl/cmp.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by makefile from include/openssl/cmp.h.in * - * Copyright 2007-2023 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2007-2024 The OpenSSL Project Authors. All Rights Reserved. * Copyright Nokia 2007-2019 * Copyright Siemens AG 2015-2019 * @@ -35,7 +35,9 @@ extern "C" { # endif -# define OSSL_CMP_PVNO 2 +# define OSSL_CMP_PVNO_2 2 +# define OSSL_CMP_PVNO_3 3 +# define OSSL_CMP_PVNO OSSL_CMP_PVNO_2 /* v2 is the default */ /*- * PKIFailureInfo ::= BIT STRING { @@ -137,7 +139,6 @@ extern "C" { # if OSSL_CMP_PKIFAILUREINFO_MAX_BIT_PATTERN > INT_MAX # error CMP_PKIFAILUREINFO_MAX bit pattern does not fit in type int # endif - typedef ASN1_BIT_STRING OSSL_CMP_PKIFAILUREINFO; # define OSSL_CMP_CTX_FAILINFO_badAlg (1 << 0) @@ -203,8 +204,8 @@ typedef ASN1_BIT_STRING OSSL_CMP_PKIFAILUREINFO; # define OSSL_CMP_PKISTATUS_revocationWarning 4 # define OSSL_CMP_PKISTATUS_revocationNotification 5 # define OSSL_CMP_PKISTATUS_keyUpdateWarning 6 - typedef ASN1_INTEGER OSSL_CMP_PKISTATUS; + DECLARE_ASN1_ITEM(OSSL_CMP_PKISTATUS) # define OSSL_CMP_CERTORENCCERT_CERTIFICATE 0 @@ -274,6 +275,46 @@ SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CMP_ITAV, OSSL_CMP_ITAV, OSSL_CMP_ITAV) #define sk_OSSL_CMP_ITAV_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_CMP_ITAV) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_CMP_ITAV_sk_type(sk), ossl_check_OSSL_CMP_ITAV_copyfunc_type(copyfunc), ossl_check_OSSL_CMP_ITAV_freefunc_type(freefunc))) #define sk_OSSL_CMP_ITAV_set_cmp_func(sk, cmp) ((sk_OSSL_CMP_ITAV_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CMP_ITAV_sk_type(sk), ossl_check_OSSL_CMP_ITAV_compfunc_type(cmp))) + +typedef struct ossl_cmp_crlstatus_st OSSL_CMP_CRLSTATUS; +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CMP_CRLSTATUS, OSSL_CMP_CRLSTATUS, OSSL_CMP_CRLSTATUS) +#define sk_OSSL_CMP_CRLSTATUS_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_value(sk, idx) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_value(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk), (idx))) +#define sk_OSSL_CMP_CRLSTATUS_new(cmp) ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_new(ossl_check_OSSL_CMP_CRLSTATUS_compfunc_type(cmp))) +#define sk_OSSL_CMP_CRLSTATUS_new_null() ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_new_null()) +#define sk_OSSL_CMP_CRLSTATUS_new_reserve(cmp, n) ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_CMP_CRLSTATUS_compfunc_type(cmp), (n))) +#define sk_OSSL_CMP_CRLSTATUS_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), (n)) +#define sk_OSSL_CMP_CRLSTATUS_free(sk) OPENSSL_sk_free(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_delete(sk, i) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_delete(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), (i))) +#define sk_OSSL_CMP_CRLSTATUS_delete_ptr(sk, ptr) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr))) +#define sk_OSSL_CMP_CRLSTATUS_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr)) +#define sk_OSSL_CMP_CRLSTATUS_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr)) +#define sk_OSSL_CMP_CRLSTATUS_pop(sk) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_pop(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk))) +#define sk_OSSL_CMP_CRLSTATUS_shift(sk) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_shift(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk))) +#define sk_OSSL_CMP_CRLSTATUS_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk),ossl_check_OSSL_CMP_CRLSTATUS_freefunc_type(freefunc)) +#define sk_OSSL_CMP_CRLSTATUS_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr), (idx)) +#define sk_OSSL_CMP_CRLSTATUS_set(sk, idx, ptr) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_set(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), (idx), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr))) +#define sk_OSSL_CMP_CRLSTATUS_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr)) +#define sk_OSSL_CMP_CRLSTATUS_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr)) +#define sk_OSSL_CMP_CRLSTATUS_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr), pnum) +#define sk_OSSL_CMP_CRLSTATUS_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_dup(sk) ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_dup(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk))) +#define sk_OSSL_CMP_CRLSTATUS_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_copyfunc_type(copyfunc), ossl_check_OSSL_CMP_CRLSTATUS_freefunc_type(freefunc))) +#define sk_OSSL_CMP_CRLSTATUS_set_cmp_func(sk, cmp) ((sk_OSSL_CMP_CRLSTATUS_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_compfunc_type(cmp))) + + +typedef OSSL_CRMF_ATTRIBUTETYPEANDVALUE OSSL_CMP_ATAV; +# define OSSL_CMP_ATAV_free OSSL_CRMF_ATTRIBUTETYPEANDVALUE_free +typedef STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) OSSL_CMP_ATAVS; +DECLARE_ASN1_FUNCTIONS(OSSL_CMP_ATAVS) +# define stack_st_OSSL_CMP_ATAV stack_st_OSSL_CRMF_ATTRIBUTETYPEANDVALUE +# define sk_OSSL_CMP_ATAV_num sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_num +# define sk_OSSL_CMP_ATAV_value sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_value +# define sk_OSSL_CMP_ATAV_push sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_push +# define sk_OSSL_CMP_ATAV_pop_free sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_pop_free + typedef struct ossl_cmp_revrepcontent_st OSSL_CMP_REVREPCONTENT; typedef struct ossl_cmp_pkisi_st OSSL_CMP_PKISI; DECLARE_ASN1_FUNCTIONS(OSSL_CMP_PKISI) @@ -375,21 +416,75 @@ void OSSL_CMP_ITAV_set0(OSSL_CMP_ITAV *itav, ASN1_OBJECT *type, ASN1_TYPE *value); ASN1_OBJECT *OSSL_CMP_ITAV_get0_type(const OSSL_CMP_ITAV *itav); ASN1_TYPE *OSSL_CMP_ITAV_get0_value(const OSSL_CMP_ITAV *itav); -int OSSL_CMP_ITAV_push0_stack_item(STACK_OF(OSSL_CMP_ITAV) **itav_sk_p, +int OSSL_CMP_ITAV_push0_stack_item(STACK_OF(OSSL_CMP_ITAV) **sk_p, OSSL_CMP_ITAV *itav); void OSSL_CMP_ITAV_free(OSSL_CMP_ITAV *itav); + +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new0_certProfile(STACK_OF(ASN1_UTF8STRING) + *certProfile); +int OSSL_CMP_ITAV_get0_certProfile(const OSSL_CMP_ITAV *itav, + STACK_OF(ASN1_UTF8STRING) **out); +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new_caCerts(const STACK_OF(X509) *caCerts); +int OSSL_CMP_ITAV_get0_caCerts(const OSSL_CMP_ITAV *itav, STACK_OF(X509) **out); + +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new_rootCaCert(const X509 *rootCaCert); +int OSSL_CMP_ITAV_get0_rootCaCert(const OSSL_CMP_ITAV *itav, X509 **out); +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new_rootCaKeyUpdate(const X509 *newWithNew, + const X509 *newWithOld, + const X509 *oldWithNew); +int OSSL_CMP_ITAV_get0_rootCaKeyUpdate(const OSSL_CMP_ITAV *itav, + X509 **newWithNew, + X509 **newWithOld, + X509 **oldWithNew); + +OSSL_CMP_CRLSTATUS *OSSL_CMP_CRLSTATUS_create(const X509_CRL *crl, + const X509 *cert, int only_DN); +OSSL_CMP_CRLSTATUS *OSSL_CMP_CRLSTATUS_new1(const DIST_POINT_NAME *dpn, + const GENERAL_NAMES *issuer, + const ASN1_TIME *thisUpdate); +int OSSL_CMP_CRLSTATUS_get0(const OSSL_CMP_CRLSTATUS *crlstatus, + DIST_POINT_NAME **dpn, GENERAL_NAMES **issuer, + ASN1_TIME **thisUpdate); +void OSSL_CMP_CRLSTATUS_free(OSSL_CMP_CRLSTATUS *crlstatus); +OSSL_CMP_ITAV +*OSSL_CMP_ITAV_new0_crlStatusList(STACK_OF(OSSL_CMP_CRLSTATUS) *crlStatusList); +int OSSL_CMP_ITAV_get0_crlStatusList(const OSSL_CMP_ITAV *itav, + STACK_OF(OSSL_CMP_CRLSTATUS) **out); +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new_crls(const X509_CRL *crls); +int OSSL_CMP_ITAV_get0_crls(const OSSL_CMP_ITAV *it, STACK_OF(X509_CRL) **out); +OSSL_CMP_ITAV +*OSSL_CMP_ITAV_new0_certReqTemplate(OSSL_CRMF_CERTTEMPLATE *certTemplate, + OSSL_CMP_ATAVS *keySpec); +int OSSL_CMP_ITAV_get1_certReqTemplate(const OSSL_CMP_ITAV *itav, + OSSL_CRMF_CERTTEMPLATE **certTemplate, + OSSL_CMP_ATAVS **keySpec); + +OSSL_CMP_ATAV *OSSL_CMP_ATAV_create(ASN1_OBJECT *type, ASN1_TYPE *value); +void OSSL_CMP_ATAV_set0(OSSL_CMP_ATAV *itav, ASN1_OBJECT *type, + ASN1_TYPE *value); +ASN1_OBJECT *OSSL_CMP_ATAV_get0_type(const OSSL_CMP_ATAV *itav); +ASN1_TYPE *OSSL_CMP_ATAV_get0_value(const OSSL_CMP_ATAV *itav); +OSSL_CMP_ATAV *OSSL_CMP_ATAV_new_algId(const X509_ALGOR *alg); +X509_ALGOR *OSSL_CMP_ATAV_get0_algId(const OSSL_CMP_ATAV *atav); +OSSL_CMP_ATAV *OSSL_CMP_ATAV_new_rsaKeyLen(int len); +int OSSL_CMP_ATAV_get_rsaKeyLen(const OSSL_CMP_ATAV *atav); +int OSSL_CMP_ATAV_push1(OSSL_CMP_ATAVS **sk_p, const OSSL_CMP_ATAV *atav); + void OSSL_CMP_MSG_free(OSSL_CMP_MSG *msg); /* from cmp_ctx.c */ OSSL_CMP_CTX *OSSL_CMP_CTX_new(OSSL_LIB_CTX *libctx, const char *propq); void OSSL_CMP_CTX_free(OSSL_CMP_CTX *ctx); int OSSL_CMP_CTX_reinit(OSSL_CMP_CTX *ctx); +OSSL_LIB_CTX *OSSL_CMP_CTX_get0_libctx(const OSSL_CMP_CTX *ctx); +const char *OSSL_CMP_CTX_get0_propq(const OSSL_CMP_CTX *ctx); /* CMP general options: */ # define OSSL_CMP_OPT_LOG_VERBOSITY 0 /* CMP transfer options: */ -# define OSSL_CMP_OPT_KEEP_ALIVE 10 -# define OSSL_CMP_OPT_MSG_TIMEOUT 11 +# define OSSL_CMP_OPT_KEEP_ALIVE 10 +# define OSSL_CMP_OPT_MSG_TIMEOUT 11 # define OSSL_CMP_OPT_TOTAL_TIMEOUT 12 +# define OSSL_CMP_OPT_USE_TLS 13 /* CMP request options: */ # define OSSL_CMP_OPT_VALIDITY_DAYS 20 # define OSSL_CMP_OPT_SUBJECTALTNAME_NODEFAULT 21 @@ -407,6 +502,7 @@ int OSSL_CMP_CTX_reinit(OSSL_CMP_CTX *ctx); # define OSSL_CMP_OPT_DIGEST_ALGNID 34 # define OSSL_CMP_OPT_IGNORE_KEYUSAGE 35 # define OSSL_CMP_OPT_PERMIT_TA_IN_EXTRACERTS_FOR_IR 36 +# define OSSL_CMP_OPT_NO_CACHE_EXTRACERTS 37 int OSSL_CMP_CTX_set_option(OSSL_CMP_CTX *ctx, int opt, int val); int OSSL_CMP_CTX_get_option(const OSSL_CMP_CTX *ctx, int opt); /* CMP-specific callback for logging and outputting the error queue: */ @@ -420,9 +516,11 @@ int OSSL_CMP_CTX_set1_server(OSSL_CMP_CTX *ctx, const char *address); int OSSL_CMP_CTX_set_serverPort(OSSL_CMP_CTX *ctx, int port); int OSSL_CMP_CTX_set1_proxy(OSSL_CMP_CTX *ctx, const char *name); int OSSL_CMP_CTX_set1_no_proxy(OSSL_CMP_CTX *ctx, const char *names); +# ifndef OPENSSL_NO_HTTP int OSSL_CMP_CTX_set_http_cb(OSSL_CMP_CTX *ctx, OSSL_HTTP_bio_cb_t cb); int OSSL_CMP_CTX_set_http_cb_arg(OSSL_CMP_CTX *ctx, void *arg); void *OSSL_CMP_CTX_get_http_cb_arg(const OSSL_CMP_CTX *ctx); +# endif typedef OSSL_CMP_MSG *(*OSSL_CMP_transfer_cb_t) (OSSL_CMP_CTX *ctx, const OSSL_CMP_MSG *req); int OSSL_CMP_CTX_set_transfer_cb(OSSL_CMP_CTX *ctx, OSSL_CMP_transfer_cb_t cb); @@ -432,7 +530,9 @@ void *OSSL_CMP_CTX_get_transfer_cb_arg(const OSSL_CMP_CTX *ctx); int OSSL_CMP_CTX_set1_srvCert(OSSL_CMP_CTX *ctx, X509 *cert); int OSSL_CMP_CTX_set1_expected_sender(OSSL_CMP_CTX *ctx, const X509_NAME *name); int OSSL_CMP_CTX_set0_trustedStore(OSSL_CMP_CTX *ctx, X509_STORE *store); +# define OSSL_CMP_CTX_set0_trusted OSSL_CMP_CTX_set0_trustedStore X509_STORE *OSSL_CMP_CTX_get0_trustedStore(const OSSL_CMP_CTX *ctx); +# define OSSL_CMP_CTX_get0_trusted OSSL_CMP_CTX_get0_trustedStore int OSSL_CMP_CTX_set1_untrusted(OSSL_CMP_CTX *ctx, STACK_OF(X509) *certs); STACK_OF(X509) *OSSL_CMP_CTX_get0_untrusted(const OSSL_CMP_CTX *ctx); /* client authentication: */ @@ -448,12 +548,15 @@ int OSSL_CMP_CTX_set1_secretValue(OSSL_CMP_CTX *ctx, int OSSL_CMP_CTX_set1_recipient(OSSL_CMP_CTX *ctx, const X509_NAME *name); int OSSL_CMP_CTX_push0_geninfo_ITAV(OSSL_CMP_CTX *ctx, OSSL_CMP_ITAV *itav); int OSSL_CMP_CTX_reset_geninfo_ITAVs(OSSL_CMP_CTX *ctx); +STACK_OF(OSSL_CMP_ITAV) + *OSSL_CMP_CTX_get0_geninfo_ITAVs(const OSSL_CMP_CTX *ctx); int OSSL_CMP_CTX_set1_extraCertsOut(OSSL_CMP_CTX *ctx, STACK_OF(X509) *extraCertsOut); /* certificate template: */ int OSSL_CMP_CTX_set0_newPkey(OSSL_CMP_CTX *ctx, int priv, EVP_PKEY *pkey); EVP_PKEY *OSSL_CMP_CTX_get0_newPkey(const OSSL_CMP_CTX *ctx, int priv); int OSSL_CMP_CTX_set1_issuer(OSSL_CMP_CTX *ctx, const X509_NAME *name); +int OSSL_CMP_CTX_set1_serialNumber(OSSL_CMP_CTX *ctx, const ASN1_INTEGER *sn); int OSSL_CMP_CTX_set1_subjectName(OSSL_CMP_CTX *ctx, const X509_NAME *name); int OSSL_CMP_CTX_push1_subjectAltName(OSSL_CMP_CTX *ctx, const GENERAL_NAME *name); @@ -477,6 +580,7 @@ int OSSL_CMP_CTX_get_status(const OSSL_CMP_CTX *ctx); OSSL_CMP_PKIFREETEXT *OSSL_CMP_CTX_get0_statusString(const OSSL_CMP_CTX *ctx); int OSSL_CMP_CTX_get_failInfoCode(const OSSL_CMP_CTX *ctx); # define OSSL_CMP_PKISI_BUFLEN 1024 +X509 *OSSL_CMP_CTX_get0_validatedSrvCert(const OSSL_CMP_CTX *ctx); X509 *OSSL_CMP_CTX_get0_newCert(const OSSL_CMP_CTX *ctx); STACK_OF(X509) *OSSL_CMP_CTX_get1_newChain(const OSSL_CMP_CTX *ctx); STACK_OF(X509) *OSSL_CMP_CTX_get1_caPubs(const OSSL_CMP_CTX *ctx); @@ -498,10 +602,13 @@ OSSL_CMP_STATUSINFO_new(int status, int fail_info, const char *text); ASN1_OCTET_STRING *OSSL_CMP_HDR_get0_transactionID(const OSSL_CMP_PKIHEADER *hdr); ASN1_OCTET_STRING *OSSL_CMP_HDR_get0_recipNonce(const OSSL_CMP_PKIHEADER *hdr); +STACK_OF(OSSL_CMP_ITAV) + *OSSL_CMP_HDR_get0_geninfo_ITAVs(const OSSL_CMP_PKIHEADER *hdr); /* from cmp_msg.c */ OSSL_CMP_PKIHEADER *OSSL_CMP_MSG_get0_header(const OSSL_CMP_MSG *msg); int OSSL_CMP_MSG_get_bodytype(const OSSL_CMP_MSG *msg); +X509_PUBKEY *OSSL_CMP_MSG_get0_certreq_publickey(const OSSL_CMP_MSG *msg); int OSSL_CMP_MSG_update_transactionID(OSSL_CMP_CTX *ctx, OSSL_CMP_MSG *msg); int OSSL_CMP_MSG_update_recipNonce(OSSL_CMP_CTX *ctx, OSSL_CMP_MSG *msg); OSSL_CRMF_MSG *OSSL_CMP_CTX_setup_CRM(OSSL_CMP_CTX *ctx, int for_KUR, int rid); @@ -517,8 +624,10 @@ int OSSL_CMP_validate_cert_path(const OSSL_CMP_CTX *ctx, X509_STORE *trusted_store, X509 *cert); /* from cmp_http.c */ +# ifndef OPENSSL_NO_HTTP OSSL_CMP_MSG *OSSL_CMP_MSG_http_perform(OSSL_CMP_CTX *ctx, const OSSL_CMP_MSG *req); +# endif /* from cmp_server.c */ typedef struct ossl_cmp_srv_ctx_st OSSL_CMP_SRV_CTX; @@ -561,6 +670,13 @@ int OSSL_CMP_SRV_CTX_init(OSSL_CMP_SRV_CTX *srv_ctx, void *custom_ctx, OSSL_CMP_SRV_error_cb_t process_error, OSSL_CMP_SRV_certConf_cb_t process_certConf, OSSL_CMP_SRV_pollReq_cb_t process_pollReq); +typedef int (*OSSL_CMP_SRV_delayed_delivery_cb_t)(OSSL_CMP_SRV_CTX *srv_ctx, + const OSSL_CMP_MSG *req); +typedef int (*OSSL_CMP_SRV_clean_transaction_cb_t)(OSSL_CMP_SRV_CTX *srv_ctx, + const ASN1_OCTET_STRING *id); +int OSSL_CMP_SRV_CTX_init_trans(OSSL_CMP_SRV_CTX *srv_ctx, + OSSL_CMP_SRV_delayed_delivery_cb_t delay, + OSSL_CMP_SRV_clean_transaction_cb_t clean); OSSL_CMP_CTX *OSSL_CMP_SRV_CTX_get0_cmp_ctx(const OSSL_CMP_SRV_CTX *srv_ctx); void *OSSL_CMP_SRV_CTX_get0_custom_ctx(const OSSL_CMP_SRV_CTX *srv_ctx); int OSSL_CMP_SRV_CTX_set_send_unprotected_errors(OSSL_CMP_SRV_CTX *srv_ctx, @@ -577,6 +693,8 @@ X509 *OSSL_CMP_exec_certreq(OSSL_CMP_CTX *ctx, int req_type, # define OSSL_CMP_CR 2 # define OSSL_CMP_P10CR 4 # define OSSL_CMP_KUR 7 +# define OSSL_CMP_GENM 21 +# define OSSL_CMP_ERROR 23 # define OSSL_CMP_exec_IR_ses(ctx) \ OSSL_CMP_exec_certreq(ctx, OSSL_CMP_IR, NULL) # define OSSL_CMP_exec_CR_ses(ctx) \ @@ -590,6 +708,18 @@ int OSSL_CMP_try_certreq(OSSL_CMP_CTX *ctx, int req_type, int OSSL_CMP_exec_RR_ses(OSSL_CMP_CTX *ctx); STACK_OF(OSSL_CMP_ITAV) *OSSL_CMP_exec_GENM_ses(OSSL_CMP_CTX *ctx); +/* from cmp_genm.c */ +int OSSL_CMP_get1_caCerts(OSSL_CMP_CTX *ctx, STACK_OF(X509) **out); +int OSSL_CMP_get1_rootCaKeyUpdate(OSSL_CMP_CTX *ctx, + const X509 *oldWithOld, X509 **newWithNew, + X509 **newWithOld, X509 **oldWithNew); +int OSSL_CMP_get1_crlUpdate(OSSL_CMP_CTX *ctx, const X509 *crlcert, + const X509_CRL *last_crl, + X509_CRL **crl); +int OSSL_CMP_get1_certReqTemplate(OSSL_CMP_CTX *ctx, + OSSL_CRMF_CERTTEMPLATE **certTemplate, + OSSL_CMP_ATAVS **keySpec); + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/VC-WIN32/no-asm/include/openssl/cms.h b/deps/openssl/config/archs/VC-WIN32/no-asm/include/openssl/cms.h index 03ce6ab07aac44..1a51921256fea4 100644 --- a/deps/openssl/config/archs/VC-WIN32/no-asm/include/openssl/cms.h +++ b/deps/openssl/config/archs/VC-WIN32/no-asm/include/openssl/cms.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by makefile from include/openssl/cms.h.in * - * Copyright 2008-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2008-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -31,8 +31,10 @@ extern "C" { # endif +typedef struct CMS_EnvelopedData_st CMS_EnvelopedData; typedef struct CMS_ContentInfo_st CMS_ContentInfo; typedef struct CMS_SignerInfo_st CMS_SignerInfo; +typedef struct CMS_SignedData_st CMS_SignedData; typedef struct CMS_CertificateChoices CMS_CertificateChoices; typedef struct CMS_RevocationInfoChoice_st CMS_RevocationInfoChoice; typedef struct CMS_RecipientInfo_st CMS_RecipientInfo; @@ -147,10 +149,14 @@ SKM_DEFINE_STACK_OF_INTERNAL(CMS_RevocationInfoChoice, CMS_RevocationInfoChoice, #define sk_CMS_RevocationInfoChoice_set_cmp_func(sk, cmp) ((sk_CMS_RevocationInfoChoice_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_CMS_RevocationInfoChoice_sk_type(sk), ossl_check_CMS_RevocationInfoChoice_compfunc_type(cmp))) +DECLARE_ASN1_ITEM(CMS_EnvelopedData) +DECLARE_ASN1_ALLOC_FUNCTIONS(CMS_SignedData) DECLARE_ASN1_FUNCTIONS(CMS_ContentInfo) DECLARE_ASN1_FUNCTIONS(CMS_ReceiptRequest) DECLARE_ASN1_PRINT_FUNCTION(CMS_ContentInfo) +DECLARE_ASN1_DUP_FUNCTION(CMS_EnvelopedData) + CMS_ContentInfo *CMS_ContentInfo_new_ex(OSSL_LIB_CTX *libctx, const char *propq); # define CMS_SIGNERINFO_ISSUER_SERIAL 0 @@ -190,6 +196,7 @@ CMS_ContentInfo *CMS_ContentInfo_new_ex(OSSL_LIB_CTX *libctx, const char *propq) # define CMS_ASCIICRLF 0x80000 # define CMS_CADES 0x100000 # define CMS_USE_ORIGINATOR_KEYID 0x200000 +# define CMS_NO_SIGNING_TIME 0x400000 const ASN1_OBJECT *CMS_get0_type(const CMS_ContentInfo *cms); @@ -217,13 +224,16 @@ int SMIME_write_CMS(BIO *bio, CMS_ContentInfo *cms, BIO *data, int flags); int CMS_final(CMS_ContentInfo *cms, BIO *data, BIO *dcont, unsigned int flags); +int CMS_final_digest(CMS_ContentInfo *cms, + const unsigned char *md, unsigned int mdlen, BIO *dcont, + unsigned int flags); CMS_ContentInfo *CMS_sign(X509 *signcert, EVP_PKEY *pkey, STACK_OF(X509) *certs, BIO *data, unsigned int flags); CMS_ContentInfo *CMS_sign_ex(X509 *signcert, EVP_PKEY *pkey, STACK_OF(X509) *certs, BIO *data, - unsigned int flags, OSSL_LIB_CTX *ctx, + unsigned int flags, OSSL_LIB_CTX *libctx, const char *propq); CMS_ContentInfo *CMS_sign_receipt(CMS_SignerInfo *si, @@ -233,27 +243,26 @@ CMS_ContentInfo *CMS_sign_receipt(CMS_SignerInfo *si, int CMS_data(CMS_ContentInfo *cms, BIO *out, unsigned int flags); CMS_ContentInfo *CMS_data_create(BIO *in, unsigned int flags); CMS_ContentInfo *CMS_data_create_ex(BIO *in, unsigned int flags, - OSSL_LIB_CTX *ctx, const char *propq); + OSSL_LIB_CTX *libctx, const char *propq); int CMS_digest_verify(CMS_ContentInfo *cms, BIO *dcont, BIO *out, unsigned int flags); CMS_ContentInfo *CMS_digest_create(BIO *in, const EVP_MD *md, unsigned int flags); CMS_ContentInfo *CMS_digest_create_ex(BIO *in, const EVP_MD *md, - unsigned int flags, OSSL_LIB_CTX *ctx, + unsigned int flags, OSSL_LIB_CTX *libctx, const char *propq); int CMS_EncryptedData_decrypt(CMS_ContentInfo *cms, const unsigned char *key, size_t keylen, BIO *dcont, BIO *out, unsigned int flags); - CMS_ContentInfo *CMS_EncryptedData_encrypt(BIO *in, const EVP_CIPHER *cipher, const unsigned char *key, size_t keylen, unsigned int flags); CMS_ContentInfo *CMS_EncryptedData_encrypt_ex(BIO *in, const EVP_CIPHER *cipher, const unsigned char *key, size_t keylen, unsigned int flags, - OSSL_LIB_CTX *ctx, + OSSL_LIB_CTX *libctx, const char *propq); int CMS_EncryptedData_set1_key(CMS_ContentInfo *cms, const EVP_CIPHER *ciph, @@ -272,7 +281,7 @@ CMS_ContentInfo *CMS_encrypt(STACK_OF(X509) *certs, BIO *in, const EVP_CIPHER *cipher, unsigned int flags); CMS_ContentInfo *CMS_encrypt_ex(STACK_OF(X509) *certs, BIO *in, const EVP_CIPHER *cipher, unsigned int flags, - OSSL_LIB_CTX *ctx, const char *propq); + OSSL_LIB_CTX *libctx, const char *propq); int CMS_decrypt(CMS_ContentInfo *cms, EVP_PKEY *pkey, X509 *cert, BIO *dcont, BIO *out, unsigned int flags); @@ -291,12 +300,16 @@ int CMS_RecipientInfo_type(CMS_RecipientInfo *ri); EVP_PKEY_CTX *CMS_RecipientInfo_get0_pkey_ctx(CMS_RecipientInfo *ri); CMS_ContentInfo *CMS_AuthEnvelopedData_create(const EVP_CIPHER *cipher); CMS_ContentInfo * -CMS_AuthEnvelopedData_create_ex(const EVP_CIPHER *cipher, OSSL_LIB_CTX *ctx, +CMS_AuthEnvelopedData_create_ex(const EVP_CIPHER *cipher, OSSL_LIB_CTX *libctx, const char *propq); CMS_ContentInfo *CMS_EnvelopedData_create(const EVP_CIPHER *cipher); CMS_ContentInfo *CMS_EnvelopedData_create_ex(const EVP_CIPHER *cipher, - OSSL_LIB_CTX *ctx, + OSSL_LIB_CTX *libctx, const char *propq); +BIO *CMS_EnvelopedData_decrypt(CMS_EnvelopedData *env, BIO *detached_data, + EVP_PKEY *pkey, X509 *cert, + ASN1_OCTET_STRING *secret, unsigned int flags, + OSSL_LIB_CTX *libctx, const char *propq); CMS_RecipientInfo *CMS_add1_recipient_cert(CMS_ContentInfo *cms, X509 *recip, unsigned int flags); @@ -385,6 +398,11 @@ ASN1_OCTET_STRING *CMS_SignerInfo_get0_signature(CMS_SignerInfo *si); int CMS_SignerInfo_sign(CMS_SignerInfo *si); int CMS_SignerInfo_verify(CMS_SignerInfo *si); int CMS_SignerInfo_verify_content(CMS_SignerInfo *si, BIO *chain); +BIO *CMS_SignedData_verify(CMS_SignedData *sd, BIO *detached_data, + STACK_OF(X509) *scerts, X509_STORE *store, + STACK_OF(X509) *extra, STACK_OF(X509_CRL) *crls, + unsigned int flags, + OSSL_LIB_CTX *libctx, const char *propq); int CMS_add_smimecap(CMS_SignerInfo *si, STACK_OF(X509_ALGOR) *algs); int CMS_add_simple_smimecap(STACK_OF(X509_ALGOR) **algs, @@ -441,7 +459,7 @@ CMS_ReceiptRequest *CMS_ReceiptRequest_create0_ex( unsigned char *id, int idlen, int allorfirst, STACK_OF(GENERAL_NAMES) *receiptList, STACK_OF(GENERAL_NAMES) *receiptsTo, - OSSL_LIB_CTX *ctx); + OSSL_LIB_CTX *libctx); int CMS_add1_ReceiptRequest(CMS_SignerInfo *si, CMS_ReceiptRequest *rr); void CMS_ReceiptRequest_get0_values(CMS_ReceiptRequest *rr, diff --git a/deps/openssl/config/archs/VC-WIN32/no-asm/include/openssl/comp.h b/deps/openssl/config/archs/VC-WIN32/no-asm/include/openssl/comp.h new file mode 100644 index 00000000000000..90e39511fe8d28 --- /dev/null +++ b/deps/openssl/config/archs/VC-WIN32/no-asm/include/openssl/comp.h @@ -0,0 +1,98 @@ +/* + * Copyright 2015-2024 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + + +#ifndef OPENSSL_COMP_H +# define OPENSSL_COMP_H +# pragma once + +# include +# ifndef OPENSSL_NO_DEPRECATED_3_0 +# define HEADER_COMP_H +# endif + +# include + +# include +# include +# ifdef __cplusplus +extern "C" { +# endif + + + +# ifndef OPENSSL_NO_COMP + +COMP_CTX *COMP_CTX_new(COMP_METHOD *meth); +const COMP_METHOD *COMP_CTX_get_method(const COMP_CTX *ctx); +int COMP_CTX_get_type(const COMP_CTX* comp); +int COMP_get_type(const COMP_METHOD *meth); +const char *COMP_get_name(const COMP_METHOD *meth); +void COMP_CTX_free(COMP_CTX *ctx); + +int COMP_compress_block(COMP_CTX *ctx, unsigned char *out, int olen, + unsigned char *in, int ilen); +int COMP_expand_block(COMP_CTX *ctx, unsigned char *out, int olen, + unsigned char *in, int ilen); + +COMP_METHOD *COMP_zlib(void); +COMP_METHOD *COMP_zlib_oneshot(void); +COMP_METHOD *COMP_brotli(void); +COMP_METHOD *COMP_brotli_oneshot(void); +COMP_METHOD *COMP_zstd(void); +COMP_METHOD *COMP_zstd_oneshot(void); + +# ifndef OPENSSL_NO_DEPRECATED_1_1_0 +# define COMP_zlib_cleanup() while(0) continue +# endif + +# ifdef OPENSSL_BIO_H +const BIO_METHOD *BIO_f_zlib(void); +const BIO_METHOD *BIO_f_brotli(void); +const BIO_METHOD *BIO_f_zstd(void); +# endif + +# endif + +typedef struct ssl_comp_st SSL_COMP; + +SKM_DEFINE_STACK_OF_INTERNAL(SSL_COMP, SSL_COMP, SSL_COMP) +#define sk_SSL_COMP_num(sk) OPENSSL_sk_num(ossl_check_const_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_value(sk, idx) ((SSL_COMP *)OPENSSL_sk_value(ossl_check_const_SSL_COMP_sk_type(sk), (idx))) +#define sk_SSL_COMP_new(cmp) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new(ossl_check_SSL_COMP_compfunc_type(cmp))) +#define sk_SSL_COMP_new_null() ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new_null()) +#define sk_SSL_COMP_new_reserve(cmp, n) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new_reserve(ossl_check_SSL_COMP_compfunc_type(cmp), (n))) +#define sk_SSL_COMP_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_SSL_COMP_sk_type(sk), (n)) +#define sk_SSL_COMP_free(sk) OPENSSL_sk_free(ossl_check_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_zero(sk) OPENSSL_sk_zero(ossl_check_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_delete(sk, i) ((SSL_COMP *)OPENSSL_sk_delete(ossl_check_SSL_COMP_sk_type(sk), (i))) +#define sk_SSL_COMP_delete_ptr(sk, ptr) ((SSL_COMP *)OPENSSL_sk_delete_ptr(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr))) +#define sk_SSL_COMP_push(sk, ptr) OPENSSL_sk_push(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) +#define sk_SSL_COMP_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) +#define sk_SSL_COMP_pop(sk) ((SSL_COMP *)OPENSSL_sk_pop(ossl_check_SSL_COMP_sk_type(sk))) +#define sk_SSL_COMP_shift(sk) ((SSL_COMP *)OPENSSL_sk_shift(ossl_check_SSL_COMP_sk_type(sk))) +#define sk_SSL_COMP_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_SSL_COMP_sk_type(sk),ossl_check_SSL_COMP_freefunc_type(freefunc)) +#define sk_SSL_COMP_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr), (idx)) +#define sk_SSL_COMP_set(sk, idx, ptr) ((SSL_COMP *)OPENSSL_sk_set(ossl_check_SSL_COMP_sk_type(sk), (idx), ossl_check_SSL_COMP_type(ptr))) +#define sk_SSL_COMP_find(sk, ptr) OPENSSL_sk_find(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) +#define sk_SSL_COMP_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) +#define sk_SSL_COMP_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr), pnum) +#define sk_SSL_COMP_sort(sk) OPENSSL_sk_sort(ossl_check_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_dup(sk) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_dup(ossl_check_const_SSL_COMP_sk_type(sk))) +#define sk_SSL_COMP_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_deep_copy(ossl_check_const_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_copyfunc_type(copyfunc), ossl_check_SSL_COMP_freefunc_type(freefunc))) +#define sk_SSL_COMP_set_cmp_func(sk, cmp) ((sk_SSL_COMP_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_compfunc_type(cmp))) + + + +# ifdef __cplusplus +} +# endif +#endif diff --git a/deps/openssl/config/archs/VC-WIN32/no-asm/include/openssl/conf.h b/deps/openssl/config/archs/VC-WIN32/no-asm/include/openssl/conf.h index 994e573a957435..ffa9ced71e8b26 100644 --- a/deps/openssl/config/archs/VC-WIN32/no-asm/include/openssl/conf.h +++ b/deps/openssl/config/archs/VC-WIN32/no-asm/include/openssl/conf.h @@ -27,6 +27,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -65,7 +68,7 @@ SKM_DEFINE_STACK_OF_INTERNAL(CONF_VALUE, CONF_VALUE, CONF_VALUE) #define sk_CONF_VALUE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(CONF_VALUE) *)OPENSSL_sk_deep_copy(ossl_check_const_CONF_VALUE_sk_type(sk), ossl_check_CONF_VALUE_copyfunc_type(copyfunc), ossl_check_CONF_VALUE_freefunc_type(freefunc))) #define sk_CONF_VALUE_set_cmp_func(sk, cmp) ((sk_CONF_VALUE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_CONF_VALUE_sk_type(sk), ossl_check_CONF_VALUE_compfunc_type(cmp))) DEFINE_LHASH_OF_INTERNAL(CONF_VALUE); -#define lh_CONF_VALUE_new(hfn, cmp) ((LHASH_OF(CONF_VALUE) *)OPENSSL_LH_new(ossl_check_CONF_VALUE_lh_hashfunc_type(hfn), ossl_check_CONF_VALUE_lh_compfunc_type(cmp))) +#define lh_CONF_VALUE_new(hfn, cmp) ((LHASH_OF(CONF_VALUE) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new(ossl_check_CONF_VALUE_lh_hashfunc_type(hfn), ossl_check_CONF_VALUE_lh_compfunc_type(cmp)), lh_CONF_VALUE_hash_thunk, lh_CONF_VALUE_comp_thunk, lh_CONF_VALUE_doall_thunk, lh_CONF_VALUE_doall_arg_thunk)) #define lh_CONF_VALUE_free(lh) OPENSSL_LH_free(ossl_check_CONF_VALUE_lh_type(lh)) #define lh_CONF_VALUE_flush(lh) OPENSSL_LH_flush(ossl_check_CONF_VALUE_lh_type(lh)) #define lh_CONF_VALUE_insert(lh, ptr) ((CONF_VALUE *)OPENSSL_LH_insert(ossl_check_CONF_VALUE_lh_type(lh), ossl_check_CONF_VALUE_lh_plain_type(ptr))) diff --git a/deps/openssl/config/archs/VC-WIN32/no-asm/include/openssl/configuration.h b/deps/openssl/config/archs/VC-WIN32/no-asm/include/openssl/configuration.h index 5eb038fdc064b7..3bf0eaa3f02688 100644 --- a/deps/openssl/config/archs/VC-WIN32/no-asm/include/openssl/configuration.h +++ b/deps/openssl/config/archs/VC-WIN32/no-asm/include/openssl/configuration.h @@ -29,7 +29,7 @@ extern "C" { # ifndef OPENSSL_SYS_WIN32 # define OPENSSL_SYS_WIN32 1 # endif -# define OPENSSL_CONFIGURED_API 30000 +# define OPENSSL_CONFIGURED_API 30500 # ifndef OPENSSL_RAND_SEED_OS # define OPENSSL_RAND_SEED_OS # endif @@ -45,6 +45,12 @@ extern "C" { # ifndef OPENSSL_NO_ASM # define OPENSSL_NO_ASM # endif +# ifndef OPENSSL_NO_BROTLI +# define OPENSSL_NO_BROTLI +# endif +# ifndef OPENSSL_NO_BROTLI_DYNAMIC +# define OPENSSL_NO_BROTLI_DYNAMIC +# endif # ifndef OPENSSL_NO_COMP # define OPENSSL_NO_COMP # endif @@ -54,6 +60,9 @@ extern "C" { # ifndef OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE # define OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE # endif +# ifndef OPENSSL_NO_DEMOS +# define OPENSSL_NO_DEMOS +# endif # ifndef OPENSSL_NO_DEVCRYPTOENG # define OPENSSL_NO_DEVCRYPTOENG # endif @@ -66,12 +75,24 @@ extern "C" { # ifndef OPENSSL_NO_EXTERNAL_TESTS # define OPENSSL_NO_EXTERNAL_TESTS # endif +# ifndef OPENSSL_NO_FIPS_JITTER +# define OPENSSL_NO_FIPS_JITTER +# endif # ifndef OPENSSL_NO_FUZZ_AFL # define OPENSSL_NO_FUZZ_AFL # endif # ifndef OPENSSL_NO_FUZZ_LIBFUZZER # define OPENSSL_NO_FUZZ_LIBFUZZER # endif +# ifndef OPENSSL_NO_H3DEMO +# define OPENSSL_NO_H3DEMO +# endif +# ifndef OPENSSL_NO_HQINTEROP +# define OPENSSL_NO_HQINTEROP +# endif +# ifndef OPENSSL_NO_JITTER +# define OPENSSL_NO_JITTER +# endif # ifndef OPENSSL_NO_KTLS # define OPENSSL_NO_KTLS # endif @@ -84,6 +105,9 @@ extern "C" { # ifndef OPENSSL_NO_MSAN # define OPENSSL_NO_MSAN # endif +# ifndef OPENSSL_NO_PIE +# define OPENSSL_NO_PIE +# endif # ifndef OPENSSL_NO_RC5 # define OPENSSL_NO_RC5 # endif @@ -96,6 +120,12 @@ extern "C" { # ifndef OPENSSL_NO_SSL3_METHOD # define OPENSSL_NO_SSL3_METHOD # endif +# ifndef OPENSSL_NO_SSLKEYLOG +# define OPENSSL_NO_SSLKEYLOG +# endif +# ifndef OPENSSL_NO_TFO +# define OPENSSL_NO_TFO +# endif # ifndef OPENSSL_NO_TRACE # define OPENSSL_NO_TRACE # endif @@ -111,6 +141,18 @@ extern "C" { # ifndef OPENSSL_NO_WEAK_SSL_CIPHERS # define OPENSSL_NO_WEAK_SSL_CIPHERS # endif +# ifndef OPENSSL_NO_ZLIB +# define OPENSSL_NO_ZLIB +# endif +# ifndef OPENSSL_NO_ZLIB_DYNAMIC +# define OPENSSL_NO_ZLIB_DYNAMIC +# endif +# ifndef OPENSSL_NO_ZSTD +# define OPENSSL_NO_ZSTD +# endif +# ifndef OPENSSL_NO_ZSTD_DYNAMIC +# define OPENSSL_NO_ZSTD_DYNAMIC +# endif # ifndef OPENSSL_NO_DYNAMIC_ENGINE # define OPENSSL_NO_DYNAMIC_ENGINE # endif @@ -132,6 +174,12 @@ extern "C" { # define RC4_INT unsigned int +# if defined(OPENSSL_NO_COMP) || (defined(OPENSSL_NO_BROTLI) && defined(OPENSSL_NO_ZSTD) && defined(OPENSSL_NO_ZLIB)) +# define OPENSSL_NO_COMP_ALG +# else +# undef OPENSSL_NO_COMP_ALG +# endif + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/VC-WIN32/no-asm/include/openssl/core_names.h b/deps/openssl/config/archs/VC-WIN32/no-asm/include/openssl/core_names.h new file mode 100644 index 00000000000000..aaca6051c81b53 --- /dev/null +++ b/deps/openssl/config/archs/VC-WIN32/no-asm/include/openssl/core_names.h @@ -0,0 +1,575 @@ +/* + * WARNING: do not edit! + * Generated by makefile from include/openssl/core_names.h.in + * + * Copyright 2019-2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + +#ifndef OPENSSL_CORE_NAMES_H +# define OPENSSL_CORE_NAMES_H +# pragma once + +# ifdef __cplusplus +extern "C" { +# endif + +/* OSSL_CIPHER_PARAM_CTS_MODE Values */ +# define OSSL_CIPHER_CTS_MODE_CS1 "CS1" +# define OSSL_CIPHER_CTS_MODE_CS2 "CS2" +# define OSSL_CIPHER_CTS_MODE_CS3 "CS3" + +/* Known CIPHER names (not a complete list) */ +# define OSSL_CIPHER_NAME_AES_128_GCM_SIV "AES-128-GCM-SIV" +# define OSSL_CIPHER_NAME_AES_192_GCM_SIV "AES-192-GCM-SIV" +# define OSSL_CIPHER_NAME_AES_256_GCM_SIV "AES-256-GCM-SIV" + +/* Known DIGEST names (not a complete list) */ +# define OSSL_DIGEST_NAME_MD5 "MD5" +# define OSSL_DIGEST_NAME_MD5_SHA1 "MD5-SHA1" +# define OSSL_DIGEST_NAME_SHA1 "SHA1" +# define OSSL_DIGEST_NAME_SHA2_224 "SHA2-224" +# define OSSL_DIGEST_NAME_SHA2_256 "SHA2-256" +# define OSSL_DIGEST_NAME_SHA2_256_192 "SHA2-256/192" +# define OSSL_DIGEST_NAME_SHA2_384 "SHA2-384" +# define OSSL_DIGEST_NAME_SHA2_512 "SHA2-512" +# define OSSL_DIGEST_NAME_SHA2_512_224 "SHA2-512/224" +# define OSSL_DIGEST_NAME_SHA2_512_256 "SHA2-512/256" +# define OSSL_DIGEST_NAME_MD2 "MD2" +# define OSSL_DIGEST_NAME_MD4 "MD4" +# define OSSL_DIGEST_NAME_MDC2 "MDC2" +# define OSSL_DIGEST_NAME_RIPEMD160 "RIPEMD160" +# define OSSL_DIGEST_NAME_SHA3_224 "SHA3-224" +# define OSSL_DIGEST_NAME_SHA3_256 "SHA3-256" +# define OSSL_DIGEST_NAME_SHA3_384 "SHA3-384" +# define OSSL_DIGEST_NAME_SHA3_512 "SHA3-512" +# define OSSL_DIGEST_NAME_KECCAK_KMAC128 "KECCAK-KMAC-128" +# define OSSL_DIGEST_NAME_KECCAK_KMAC256 "KECCAK-KMAC-256" +# define OSSL_DIGEST_NAME_SM3 "SM3" + +/* Known MAC names */ +# define OSSL_MAC_NAME_BLAKE2BMAC "BLAKE2BMAC" +# define OSSL_MAC_NAME_BLAKE2SMAC "BLAKE2SMAC" +# define OSSL_MAC_NAME_CMAC "CMAC" +# define OSSL_MAC_NAME_GMAC "GMAC" +# define OSSL_MAC_NAME_HMAC "HMAC" +# define OSSL_MAC_NAME_KMAC128 "KMAC128" +# define OSSL_MAC_NAME_KMAC256 "KMAC256" +# define OSSL_MAC_NAME_POLY1305 "POLY1305" +# define OSSL_MAC_NAME_SIPHASH "SIPHASH" + +/* Known KDF names */ +# define OSSL_KDF_NAME_HKDF "HKDF" +# define OSSL_KDF_NAME_TLS1_3_KDF "TLS13-KDF" +# define OSSL_KDF_NAME_PBKDF1 "PBKDF1" +# define OSSL_KDF_NAME_PBKDF2 "PBKDF2" +# define OSSL_KDF_NAME_SCRYPT "SCRYPT" +# define OSSL_KDF_NAME_SSHKDF "SSHKDF" +# define OSSL_KDF_NAME_SSKDF "SSKDF" +# define OSSL_KDF_NAME_TLS1_PRF "TLS1-PRF" +# define OSSL_KDF_NAME_X942KDF_ASN1 "X942KDF-ASN1" +# define OSSL_KDF_NAME_X942KDF_CONCAT "X942KDF-CONCAT" +# define OSSL_KDF_NAME_X963KDF "X963KDF" +# define OSSL_KDF_NAME_KBKDF "KBKDF" +# define OSSL_KDF_NAME_KRB5KDF "KRB5KDF" +# define OSSL_KDF_NAME_HMACDRBGKDF "HMAC-DRBG-KDF" + +/* RSA padding modes */ +# define OSSL_PKEY_RSA_PAD_MODE_NONE "none" +# define OSSL_PKEY_RSA_PAD_MODE_PKCSV15 "pkcs1" +# define OSSL_PKEY_RSA_PAD_MODE_OAEP "oaep" +# define OSSL_PKEY_RSA_PAD_MODE_X931 "x931" +# define OSSL_PKEY_RSA_PAD_MODE_PSS "pss" + +/* RSA pss padding salt length */ +# define OSSL_PKEY_RSA_PSS_SALT_LEN_DIGEST "digest" +# define OSSL_PKEY_RSA_PSS_SALT_LEN_MAX "max" +# define OSSL_PKEY_RSA_PSS_SALT_LEN_AUTO "auto" +# define OSSL_PKEY_RSA_PSS_SALT_LEN_AUTO_DIGEST_MAX "auto-digestmax" + +/* OSSL_PKEY_PARAM_EC_ENCODING values */ +# define OSSL_PKEY_EC_ENCODING_EXPLICIT "explicit" +# define OSSL_PKEY_EC_ENCODING_GROUP "named_curve" + +# define OSSL_PKEY_EC_POINT_CONVERSION_FORMAT_UNCOMPRESSED "uncompressed" +# define OSSL_PKEY_EC_POINT_CONVERSION_FORMAT_COMPRESSED "compressed" +# define OSSL_PKEY_EC_POINT_CONVERSION_FORMAT_HYBRID "hybrid" + +# define OSSL_PKEY_EC_GROUP_CHECK_DEFAULT "default" +# define OSSL_PKEY_EC_GROUP_CHECK_NAMED "named" +# define OSSL_PKEY_EC_GROUP_CHECK_NAMED_NIST "named-nist" + +/* PROV_SKEY well known key types */ +# define OSSL_SKEY_TYPE_GENERIC "GENERIC-SECRET" +# define OSSL_SKEY_TYPE_AES "AES" + +/* OSSL_KEM_PARAM_OPERATION values */ +#define OSSL_KEM_PARAM_OPERATION_RSASVE "RSASVE" +#define OSSL_KEM_PARAM_OPERATION_DHKEM "DHKEM" + +/* Provider configuration variables */ +#define OSSL_PKEY_RETAIN_SEED "pkey_retain_seed" + +/* Parameter name definitions - generated by util/perl/OpenSSL/paramnames.pm */ +# define OSSL_ALG_PARAM_ALGORITHM_ID "algorithm-id" +# define OSSL_ALG_PARAM_ALGORITHM_ID_PARAMS "algorithm-id-params" +# define OSSL_ALG_PARAM_CIPHER "cipher" +# define OSSL_ALG_PARAM_DIGEST "digest" +# define OSSL_ALG_PARAM_ENGINE "engine" +# define OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR "fips-indicator" +# define OSSL_ALG_PARAM_MAC "mac" +# define OSSL_ALG_PARAM_PROPERTIES "properties" +# define OSSL_ASYM_CIPHER_PARAM_DIGEST OSSL_PKEY_PARAM_DIGEST +# define OSSL_ASYM_CIPHER_PARAM_ENGINE OSSL_PKEY_PARAM_ENGINE +# define OSSL_ASYM_CIPHER_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_ASYM_CIPHER_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_ASYM_CIPHER_PARAM_FIPS_RSA_PKCS15_PAD_DISABLED OSSL_PROV_PARAM_RSA_PKCS15_PAD_DISABLED +# define OSSL_ASYM_CIPHER_PARAM_IMPLICIT_REJECTION "implicit-rejection" +# define OSSL_ASYM_CIPHER_PARAM_MGF1_DIGEST OSSL_PKEY_PARAM_MGF1_DIGEST +# define OSSL_ASYM_CIPHER_PARAM_MGF1_DIGEST_PROPS OSSL_PKEY_PARAM_MGF1_PROPERTIES +# define OSSL_ASYM_CIPHER_PARAM_OAEP_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_ASYM_CIPHER_PARAM_OAEP_DIGEST_PROPS "digest-props" +# define OSSL_ASYM_CIPHER_PARAM_OAEP_LABEL "oaep-label" +# define OSSL_ASYM_CIPHER_PARAM_PAD_MODE OSSL_PKEY_PARAM_PAD_MODE +# define OSSL_ASYM_CIPHER_PARAM_PROPERTIES OSSL_PKEY_PARAM_PROPERTIES +# define OSSL_ASYM_CIPHER_PARAM_TLS_CLIENT_VERSION "tls-client-version" +# define OSSL_ASYM_CIPHER_PARAM_TLS_NEGOTIATED_VERSION "tls-negotiated-version" +# define OSSL_CAPABILITY_TLS_GROUP_ALG "tls-group-alg" +# define OSSL_CAPABILITY_TLS_GROUP_ID "tls-group-id" +# define OSSL_CAPABILITY_TLS_GROUP_IS_KEM "tls-group-is-kem" +# define OSSL_CAPABILITY_TLS_GROUP_MAX_DTLS "tls-max-dtls" +# define OSSL_CAPABILITY_TLS_GROUP_MAX_TLS "tls-max-tls" +# define OSSL_CAPABILITY_TLS_GROUP_MIN_DTLS "tls-min-dtls" +# define OSSL_CAPABILITY_TLS_GROUP_MIN_TLS "tls-min-tls" +# define OSSL_CAPABILITY_TLS_GROUP_NAME "tls-group-name" +# define OSSL_CAPABILITY_TLS_GROUP_NAME_INTERNAL "tls-group-name-internal" +# define OSSL_CAPABILITY_TLS_GROUP_SECURITY_BITS "tls-group-sec-bits" +# define OSSL_CAPABILITY_TLS_SIGALG_CODE_POINT "tls-sigalg-code-point" +# define OSSL_CAPABILITY_TLS_SIGALG_HASH_NAME "tls-sigalg-hash-name" +# define OSSL_CAPABILITY_TLS_SIGALG_HASH_OID "tls-sigalg-hash-oid" +# define OSSL_CAPABILITY_TLS_SIGALG_IANA_NAME "tls-sigalg-iana-name" +# define OSSL_CAPABILITY_TLS_SIGALG_KEYTYPE "tls-sigalg-keytype" +# define OSSL_CAPABILITY_TLS_SIGALG_KEYTYPE_OID "tls-sigalg-keytype-oid" +# define OSSL_CAPABILITY_TLS_SIGALG_MAX_DTLS "tls-max-dtls" +# define OSSL_CAPABILITY_TLS_SIGALG_MAX_TLS "tls-max-tls" +# define OSSL_CAPABILITY_TLS_SIGALG_MIN_DTLS "tls-min-dtls" +# define OSSL_CAPABILITY_TLS_SIGALG_MIN_TLS "tls-min-tls" +# define OSSL_CAPABILITY_TLS_SIGALG_NAME "tls-sigalg-name" +# define OSSL_CAPABILITY_TLS_SIGALG_OID "tls-sigalg-oid" +# define OSSL_CAPABILITY_TLS_SIGALG_SECURITY_BITS "tls-sigalg-sec-bits" +# define OSSL_CAPABILITY_TLS_SIGALG_SIG_NAME "tls-sigalg-sig-name" +# define OSSL_CAPABILITY_TLS_SIGALG_SIG_OID "tls-sigalg-sig-oid" +# define OSSL_CIPHER_PARAM_AEAD "aead" +# define OSSL_CIPHER_PARAM_AEAD_IVLEN OSSL_CIPHER_PARAM_IVLEN +# define OSSL_CIPHER_PARAM_AEAD_IV_GENERATED "iv-generated" +# define OSSL_CIPHER_PARAM_AEAD_MAC_KEY "mackey" +# define OSSL_CIPHER_PARAM_AEAD_TAG "tag" +# define OSSL_CIPHER_PARAM_AEAD_TAGLEN "taglen" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_AAD "tlsaad" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_AAD_PAD "tlsaadpad" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_GET_IV_GEN "tlsivgen" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_IV_FIXED "tlsivfixed" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_SET_IV_INV "tlsivinv" +# define OSSL_CIPHER_PARAM_ALGORITHM_ID OSSL_ALG_PARAM_ALGORITHM_ID +# define OSSL_CIPHER_PARAM_ALGORITHM_ID_PARAMS OSSL_ALG_PARAM_ALGORITHM_ID_PARAMS +# define OSSL_CIPHER_PARAM_ALGORITHM_ID_PARAMS_OLD "alg_id_param" +# define OSSL_CIPHER_PARAM_BLOCK_SIZE "blocksize" +# define OSSL_CIPHER_PARAM_CTS "cts" +# define OSSL_CIPHER_PARAM_CTS_MODE "cts_mode" +# define OSSL_CIPHER_PARAM_CUSTOM_IV "custom-iv" +# define OSSL_CIPHER_PARAM_DECRYPT_ONLY "decrypt-only" +# define OSSL_CIPHER_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_CIPHER_PARAM_FIPS_ENCRYPT_CHECK "encrypt-check" +# define OSSL_CIPHER_PARAM_HAS_RAND_KEY "has-randkey" +# define OSSL_CIPHER_PARAM_IV "iv" +# define OSSL_CIPHER_PARAM_IVLEN "ivlen" +# define OSSL_CIPHER_PARAM_KEYLEN "keylen" +# define OSSL_CIPHER_PARAM_MODE "mode" +# define OSSL_CIPHER_PARAM_NUM "num" +# define OSSL_CIPHER_PARAM_PADDING "padding" +# define OSSL_CIPHER_PARAM_PIPELINE_AEAD_TAG "pipeline-tag" +# define OSSL_CIPHER_PARAM_RANDOM_KEY "randkey" +# define OSSL_CIPHER_PARAM_RC2_KEYBITS "keybits" +# define OSSL_CIPHER_PARAM_ROUNDS "rounds" +# define OSSL_CIPHER_PARAM_SPEED "speed" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK "tls-multi" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD "tls1multi_aad" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD_PACKLEN "tls1multi_aadpacklen" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC "tls1multi_enc" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_IN "tls1multi_encin" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_LEN "tls1multi_enclen" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_INTERLEAVE "tls1multi_interleave" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_BUFSIZE "tls1multi_maxbufsz" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_SEND_FRAGMENT "tls1multi_maxsndfrag" +# define OSSL_CIPHER_PARAM_TLS_MAC "tls-mac" +# define OSSL_CIPHER_PARAM_TLS_MAC_SIZE "tls-mac-size" +# define OSSL_CIPHER_PARAM_TLS_VERSION "tls-version" +# define OSSL_CIPHER_PARAM_UPDATED_IV "updated-iv" +# define OSSL_CIPHER_PARAM_USE_BITS "use-bits" +# define OSSL_CIPHER_PARAM_XTS_STANDARD "xts_standard" +# define OSSL_DECODER_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_DIGEST_PARAM_ALGID_ABSENT "algid-absent" +# define OSSL_DIGEST_PARAM_BLOCK_SIZE "blocksize" +# define OSSL_DIGEST_PARAM_MICALG "micalg" +# define OSSL_DIGEST_PARAM_PAD_TYPE "pad-type" +# define OSSL_DIGEST_PARAM_SIZE "size" +# define OSSL_DIGEST_PARAM_SSL3_MS "ssl3-ms" +# define OSSL_DIGEST_PARAM_XOF "xof" +# define OSSL_DIGEST_PARAM_XOFLEN "xoflen" +# define OSSL_DRBG_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_DRBG_PARAM_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_DRBG_PARAM_ENTROPY_REQUIRED "entropy_required" +# define OSSL_DRBG_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_DRBG_PARAM_FIPS_DIGEST_CHECK OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK +# define OSSL_DRBG_PARAM_MAC OSSL_ALG_PARAM_MAC +# define OSSL_DRBG_PARAM_MAX_ADINLEN "max_adinlen" +# define OSSL_DRBG_PARAM_MAX_ENTROPYLEN "max_entropylen" +# define OSSL_DRBG_PARAM_MAX_LENGTH "maxium_length" +# define OSSL_DRBG_PARAM_MAX_NONCELEN "max_noncelen" +# define OSSL_DRBG_PARAM_MAX_PERSLEN "max_perslen" +# define OSSL_DRBG_PARAM_MIN_ENTROPYLEN "min_entropylen" +# define OSSL_DRBG_PARAM_MIN_LENGTH "minium_length" +# define OSSL_DRBG_PARAM_MIN_NONCELEN "min_noncelen" +# define OSSL_DRBG_PARAM_PREDICTION_RESISTANCE "prediction_resistance" +# define OSSL_DRBG_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_DRBG_PARAM_RANDOM_DATA "random_data" +# define OSSL_DRBG_PARAM_RESEED_COUNTER "reseed_counter" +# define OSSL_DRBG_PARAM_RESEED_REQUESTS "reseed_requests" +# define OSSL_DRBG_PARAM_RESEED_TIME "reseed_time" +# define OSSL_DRBG_PARAM_RESEED_TIME_INTERVAL "reseed_time_interval" +# define OSSL_DRBG_PARAM_SIZE "size" +# define OSSL_DRBG_PARAM_USE_DF "use_derivation_function" +# define OSSL_ENCODER_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_ENCODER_PARAM_ENCRYPT_LEVEL "encrypt-level" +# define OSSL_ENCODER_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_ENCODER_PARAM_SAVE_PARAMETERS "save-parameters" +# define OSSL_EXCHANGE_PARAM_EC_ECDH_COFACTOR_MODE "ecdh-cofactor-mode" +# define OSSL_EXCHANGE_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_EXCHANGE_PARAM_FIPS_DIGEST_CHECK OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK +# define OSSL_EXCHANGE_PARAM_FIPS_ECDH_COFACTOR_CHECK OSSL_PROV_PARAM_ECDH_COFACTOR_CHECK +# define OSSL_EXCHANGE_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_EXCHANGE_PARAM_KDF_DIGEST "kdf-digest" +# define OSSL_EXCHANGE_PARAM_KDF_DIGEST_PROPS "kdf-digest-props" +# define OSSL_EXCHANGE_PARAM_KDF_OUTLEN "kdf-outlen" +# define OSSL_EXCHANGE_PARAM_KDF_TYPE "kdf-type" +# define OSSL_EXCHANGE_PARAM_KDF_UKM "kdf-ukm" +# define OSSL_EXCHANGE_PARAM_PAD "pad" +# define OSSL_GEN_PARAM_ITERATION "iteration" +# define OSSL_GEN_PARAM_POTENTIAL "potential" +# define OSSL_KDF_PARAM_ARGON2_AD "ad" +# define OSSL_KDF_PARAM_ARGON2_LANES "lanes" +# define OSSL_KDF_PARAM_ARGON2_MEMCOST "memcost" +# define OSSL_KDF_PARAM_ARGON2_VERSION "version" +# define OSSL_KDF_PARAM_CEK_ALG "cekalg" +# define OSSL_KDF_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_KDF_PARAM_CONSTANT "constant" +# define OSSL_KDF_PARAM_DATA "data" +# define OSSL_KDF_PARAM_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_KDF_PARAM_EARLY_CLEAN "early_clean" +# define OSSL_KDF_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_KDF_PARAM_FIPS_DIGEST_CHECK OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK +# define OSSL_KDF_PARAM_FIPS_EMS_CHECK "ems_check" +# define OSSL_KDF_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_KDF_PARAM_HMACDRBG_ENTROPY "entropy" +# define OSSL_KDF_PARAM_HMACDRBG_NONCE "nonce" +# define OSSL_KDF_PARAM_INFO "info" +# define OSSL_KDF_PARAM_ITER "iter" +# define OSSL_KDF_PARAM_KBKDF_R "r" +# define OSSL_KDF_PARAM_KBKDF_USE_L "use-l" +# define OSSL_KDF_PARAM_KBKDF_USE_SEPARATOR "use-separator" +# define OSSL_KDF_PARAM_KEY "key" +# define OSSL_KDF_PARAM_LABEL "label" +# define OSSL_KDF_PARAM_MAC OSSL_ALG_PARAM_MAC +# define OSSL_KDF_PARAM_MAC_SIZE "maclen" +# define OSSL_KDF_PARAM_MODE "mode" +# define OSSL_KDF_PARAM_PASSWORD "pass" +# define OSSL_KDF_PARAM_PKCS12_ID "id" +# define OSSL_KDF_PARAM_PKCS5 "pkcs5" +# define OSSL_KDF_PARAM_PREFIX "prefix" +# define OSSL_KDF_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_KDF_PARAM_SALT "salt" +# define OSSL_KDF_PARAM_SCRYPT_MAXMEM "maxmem_bytes" +# define OSSL_KDF_PARAM_SCRYPT_N "n" +# define OSSL_KDF_PARAM_SCRYPT_P "p" +# define OSSL_KDF_PARAM_SCRYPT_R "r" +# define OSSL_KDF_PARAM_SECRET "secret" +# define OSSL_KDF_PARAM_SEED "seed" +# define OSSL_KDF_PARAM_SIZE "size" +# define OSSL_KDF_PARAM_SSHKDF_SESSION_ID "session_id" +# define OSSL_KDF_PARAM_SSHKDF_TYPE "type" +# define OSSL_KDF_PARAM_SSHKDF_XCGHASH "xcghash" +# define OSSL_KDF_PARAM_THREADS "threads" +# define OSSL_KDF_PARAM_UKM "ukm" +# define OSSL_KDF_PARAM_X942_ACVPINFO "acvp-info" +# define OSSL_KDF_PARAM_X942_PARTYUINFO "partyu-info" +# define OSSL_KDF_PARAM_X942_PARTYVINFO "partyv-info" +# define OSSL_KDF_PARAM_X942_SUPP_PRIVINFO "supp-privinfo" +# define OSSL_KDF_PARAM_X942_SUPP_PUBINFO "supp-pubinfo" +# define OSSL_KDF_PARAM_X942_USE_KEYBITS "use-keybits" +# define OSSL_KEM_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_KEM_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_KEM_PARAM_IKME "ikme" +# define OSSL_KEM_PARAM_OPERATION "operation" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_BLOCK_PADDING "block_padding" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_HS_PADDING "hs_padding" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_MAX_EARLY_DATA "max_early_data" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_MAX_FRAG_LEN "max_frag_len" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_MODE "mode" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_OPTIONS "options" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_READ_AHEAD "read_ahead" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_STREAM_MAC "stream_mac" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_TLSTREE "tlstree" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_USE_ETM "use_etm" +# define OSSL_LIBSSL_RECORD_LAYER_READ_BUFFER_LEN "read_buffer_len" +# define OSSL_MAC_PARAM_BLOCK_SIZE "block-size" +# define OSSL_MAC_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_MAC_PARAM_CUSTOM "custom" +# define OSSL_MAC_PARAM_C_ROUNDS "c-rounds" +# define OSSL_MAC_PARAM_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_MAC_PARAM_DIGEST_NOINIT "digest-noinit" +# define OSSL_MAC_PARAM_DIGEST_ONESHOT "digest-oneshot" +# define OSSL_MAC_PARAM_D_ROUNDS "d-rounds" +# define OSSL_MAC_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_MAC_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_MAC_PARAM_FIPS_NO_SHORT_MAC OSSL_PROV_PARAM_NO_SHORT_MAC +# define OSSL_MAC_PARAM_IV "iv" +# define OSSL_MAC_PARAM_KEY "key" +# define OSSL_MAC_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_MAC_PARAM_SALT "salt" +# define OSSL_MAC_PARAM_SIZE "size" +# define OSSL_MAC_PARAM_TLS_DATA_SIZE "tls-data-size" +# define OSSL_MAC_PARAM_XOF "xof" +# define OSSL_OBJECT_PARAM_DATA "data" +# define OSSL_OBJECT_PARAM_DATA_STRUCTURE "data-structure" +# define OSSL_OBJECT_PARAM_DATA_TYPE "data-type" +# define OSSL_OBJECT_PARAM_DESC "desc" +# define OSSL_OBJECT_PARAM_INPUT_TYPE "input-type" +# define OSSL_OBJECT_PARAM_REFERENCE "reference" +# define OSSL_OBJECT_PARAM_TYPE "type" +# define OSSL_PASSPHRASE_PARAM_INFO "info" +# define OSSL_PKEY_PARAM_ALGORITHM_ID OSSL_ALG_PARAM_ALGORITHM_ID +# define OSSL_PKEY_PARAM_ALGORITHM_ID_PARAMS OSSL_ALG_PARAM_ALGORITHM_ID_PARAMS +# define OSSL_PKEY_PARAM_BITS "bits" +# define OSSL_PKEY_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_PKEY_PARAM_DEFAULT_DIGEST "default-digest" +# define OSSL_PKEY_PARAM_DHKEM_IKM "dhkem-ikm" +# define OSSL_PKEY_PARAM_DH_GENERATOR "safeprime-generator" +# define OSSL_PKEY_PARAM_DH_PRIV_LEN "priv_len" +# define OSSL_PKEY_PARAM_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_PKEY_PARAM_DIGEST_SIZE "digest-size" +# define OSSL_PKEY_PARAM_DIST_ID "distid" +# define OSSL_PKEY_PARAM_EC_A "a" +# define OSSL_PKEY_PARAM_EC_B "b" +# define OSSL_PKEY_PARAM_EC_CHAR2_M "m" +# define OSSL_PKEY_PARAM_EC_CHAR2_PP_K1 "k1" +# define OSSL_PKEY_PARAM_EC_CHAR2_PP_K2 "k2" +# define OSSL_PKEY_PARAM_EC_CHAR2_PP_K3 "k3" +# define OSSL_PKEY_PARAM_EC_CHAR2_TP_BASIS "tp" +# define OSSL_PKEY_PARAM_EC_CHAR2_TYPE "basis-type" +# define OSSL_PKEY_PARAM_EC_COFACTOR "cofactor" +# define OSSL_PKEY_PARAM_EC_DECODED_FROM_EXPLICIT_PARAMS "decoded-from-explicit" +# define OSSL_PKEY_PARAM_EC_ENCODING "encoding" +# define OSSL_PKEY_PARAM_EC_FIELD_TYPE "field-type" +# define OSSL_PKEY_PARAM_EC_GENERATOR "generator" +# define OSSL_PKEY_PARAM_EC_GROUP_CHECK_TYPE "group-check" +# define OSSL_PKEY_PARAM_EC_INCLUDE_PUBLIC "include-public" +# define OSSL_PKEY_PARAM_EC_ORDER "order" +# define OSSL_PKEY_PARAM_EC_P "p" +# define OSSL_PKEY_PARAM_EC_POINT_CONVERSION_FORMAT "point-format" +# define OSSL_PKEY_PARAM_EC_PUB_X "qx" +# define OSSL_PKEY_PARAM_EC_PUB_Y "qy" +# define OSSL_PKEY_PARAM_EC_SEED "seed" +# define OSSL_PKEY_PARAM_ENCODED_PUBLIC_KEY "encoded-pub-key" +# define OSSL_PKEY_PARAM_ENGINE OSSL_ALG_PARAM_ENGINE +# define OSSL_PKEY_PARAM_FFC_COFACTOR "j" +# define OSSL_PKEY_PARAM_FFC_DIGEST OSSL_PKEY_PARAM_DIGEST +# define OSSL_PKEY_PARAM_FFC_DIGEST_PROPS OSSL_PKEY_PARAM_PROPERTIES +# define OSSL_PKEY_PARAM_FFC_G "g" +# define OSSL_PKEY_PARAM_FFC_GINDEX "gindex" +# define OSSL_PKEY_PARAM_FFC_H "hindex" +# define OSSL_PKEY_PARAM_FFC_P "p" +# define OSSL_PKEY_PARAM_FFC_PBITS "pbits" +# define OSSL_PKEY_PARAM_FFC_PCOUNTER "pcounter" +# define OSSL_PKEY_PARAM_FFC_Q "q" +# define OSSL_PKEY_PARAM_FFC_QBITS "qbits" +# define OSSL_PKEY_PARAM_FFC_SEED "seed" +# define OSSL_PKEY_PARAM_FFC_TYPE "type" +# define OSSL_PKEY_PARAM_FFC_VALIDATE_G "validate-g" +# define OSSL_PKEY_PARAM_FFC_VALIDATE_LEGACY "validate-legacy" +# define OSSL_PKEY_PARAM_FFC_VALIDATE_PQ "validate-pq" +# define OSSL_PKEY_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK "digest-check" +# define OSSL_PKEY_PARAM_FIPS_KEY_CHECK "key-check" +# define OSSL_PKEY_PARAM_FIPS_SIGN_CHECK "sign-check" +# define OSSL_PKEY_PARAM_GROUP_NAME "group" +# define OSSL_PKEY_PARAM_IMPLICIT_REJECTION "implicit-rejection" +# define OSSL_PKEY_PARAM_MANDATORY_DIGEST "mandatory-digest" +# define OSSL_PKEY_PARAM_MASKGENFUNC "mgf" +# define OSSL_PKEY_PARAM_MAX_SIZE "max-size" +# define OSSL_PKEY_PARAM_MGF1_DIGEST "mgf1-digest" +# define OSSL_PKEY_PARAM_MGF1_PROPERTIES "mgf1-properties" +# define OSSL_PKEY_PARAM_ML_DSA_INPUT_FORMATS "ml-dsa.input_formats" +# define OSSL_PKEY_PARAM_ML_DSA_OUTPUT_FORMATS "ml-dsa.output_formats" +# define OSSL_PKEY_PARAM_ML_DSA_PREFER_SEED "ml-dsa.prefer_seed" +# define OSSL_PKEY_PARAM_ML_DSA_RETAIN_SEED "ml-dsa.retain_seed" +# define OSSL_PKEY_PARAM_ML_DSA_SEED "seed" +# define OSSL_PKEY_PARAM_ML_KEM_IMPORT_PCT_TYPE "ml-kem.import_pct_type" +# define OSSL_PKEY_PARAM_ML_KEM_INPUT_FORMATS "ml-kem.input_formats" +# define OSSL_PKEY_PARAM_ML_KEM_OUTPUT_FORMATS "ml-kem.output_formats" +# define OSSL_PKEY_PARAM_ML_KEM_PREFER_SEED "ml-kem.prefer_seed" +# define OSSL_PKEY_PARAM_ML_KEM_RETAIN_SEED "ml-kem.retain_seed" +# define OSSL_PKEY_PARAM_ML_KEM_SEED "seed" +# define OSSL_PKEY_PARAM_PAD_MODE "pad-mode" +# define OSSL_PKEY_PARAM_PRIV_KEY "priv" +# define OSSL_PKEY_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_PKEY_PARAM_PUB_KEY "pub" +# define OSSL_PKEY_PARAM_RSA_BITS OSSL_PKEY_PARAM_BITS +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT "rsa-coefficient" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT1 "rsa-coefficient1" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT2 "rsa-coefficient2" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT3 "rsa-coefficient3" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT4 "rsa-coefficient4" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT5 "rsa-coefficient5" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT6 "rsa-coefficient6" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT7 "rsa-coefficient7" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT8 "rsa-coefficient8" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT9 "rsa-coefficient9" +# define OSSL_PKEY_PARAM_RSA_D "d" +# define OSSL_PKEY_PARAM_RSA_DERIVE_FROM_PQ "rsa-derive-from-pq" +# define OSSL_PKEY_PARAM_RSA_DIGEST OSSL_PKEY_PARAM_DIGEST +# define OSSL_PKEY_PARAM_RSA_DIGEST_PROPS OSSL_PKEY_PARAM_PROPERTIES +# define OSSL_PKEY_PARAM_RSA_E "e" +# define OSSL_PKEY_PARAM_RSA_EXPONENT "rsa-exponent" +# define OSSL_PKEY_PARAM_RSA_EXPONENT1 "rsa-exponent1" +# define OSSL_PKEY_PARAM_RSA_EXPONENT10 "rsa-exponent10" +# define OSSL_PKEY_PARAM_RSA_EXPONENT2 "rsa-exponent2" +# define OSSL_PKEY_PARAM_RSA_EXPONENT3 "rsa-exponent3" +# define OSSL_PKEY_PARAM_RSA_EXPONENT4 "rsa-exponent4" +# define OSSL_PKEY_PARAM_RSA_EXPONENT5 "rsa-exponent5" +# define OSSL_PKEY_PARAM_RSA_EXPONENT6 "rsa-exponent6" +# define OSSL_PKEY_PARAM_RSA_EXPONENT7 "rsa-exponent7" +# define OSSL_PKEY_PARAM_RSA_EXPONENT8 "rsa-exponent8" +# define OSSL_PKEY_PARAM_RSA_EXPONENT9 "rsa-exponent9" +# define OSSL_PKEY_PARAM_RSA_FACTOR "rsa-factor" +# define OSSL_PKEY_PARAM_RSA_FACTOR1 "rsa-factor1" +# define OSSL_PKEY_PARAM_RSA_FACTOR10 "rsa-factor10" +# define OSSL_PKEY_PARAM_RSA_FACTOR2 "rsa-factor2" +# define OSSL_PKEY_PARAM_RSA_FACTOR3 "rsa-factor3" +# define OSSL_PKEY_PARAM_RSA_FACTOR4 "rsa-factor4" +# define OSSL_PKEY_PARAM_RSA_FACTOR5 "rsa-factor5" +# define OSSL_PKEY_PARAM_RSA_FACTOR6 "rsa-factor6" +# define OSSL_PKEY_PARAM_RSA_FACTOR7 "rsa-factor7" +# define OSSL_PKEY_PARAM_RSA_FACTOR8 "rsa-factor8" +# define OSSL_PKEY_PARAM_RSA_FACTOR9 "rsa-factor9" +# define OSSL_PKEY_PARAM_RSA_MASKGENFUNC OSSL_PKEY_PARAM_MASKGENFUNC +# define OSSL_PKEY_PARAM_RSA_MGF1_DIGEST OSSL_PKEY_PARAM_MGF1_DIGEST +# define OSSL_PKEY_PARAM_RSA_N "n" +# define OSSL_PKEY_PARAM_RSA_PRIMES "primes" +# define OSSL_PKEY_PARAM_RSA_PSS_SALTLEN "saltlen" +# define OSSL_PKEY_PARAM_RSA_TEST_P1 "p1" +# define OSSL_PKEY_PARAM_RSA_TEST_P2 "p2" +# define OSSL_PKEY_PARAM_RSA_TEST_Q1 "q1" +# define OSSL_PKEY_PARAM_RSA_TEST_Q2 "q2" +# define OSSL_PKEY_PARAM_RSA_TEST_XP "xp" +# define OSSL_PKEY_PARAM_RSA_TEST_XP1 "xp1" +# define OSSL_PKEY_PARAM_RSA_TEST_XP2 "xp2" +# define OSSL_PKEY_PARAM_RSA_TEST_XQ "xq" +# define OSSL_PKEY_PARAM_RSA_TEST_XQ1 "xq1" +# define OSSL_PKEY_PARAM_RSA_TEST_XQ2 "xq2" +# define OSSL_PKEY_PARAM_SECURITY_BITS "security-bits" +# define OSSL_PKEY_PARAM_SLH_DSA_SEED "seed" +# define OSSL_PKEY_PARAM_USE_COFACTOR_ECDH OSSL_PKEY_PARAM_USE_COFACTOR_FLAG +# define OSSL_PKEY_PARAM_USE_COFACTOR_FLAG "use-cofactor-flag" +# define OSSL_PROV_PARAM_BUILDINFO "buildinfo" +# define OSSL_PROV_PARAM_CORE_MODULE_FILENAME "module-filename" +# define OSSL_PROV_PARAM_CORE_PROV_NAME "provider-name" +# define OSSL_PROV_PARAM_CORE_VERSION "openssl-version" +# define OSSL_PROV_PARAM_DRBG_TRUNC_DIGEST "drbg-no-trunc-md" +# define OSSL_PROV_PARAM_DSA_SIGN_DISABLED "dsa-sign-disabled" +# define OSSL_PROV_PARAM_ECDH_COFACTOR_CHECK "ecdh-cofactor-check" +# define OSSL_PROV_PARAM_HKDF_DIGEST_CHECK "hkdf-digest-check" +# define OSSL_PROV_PARAM_HKDF_KEY_CHECK "hkdf-key-check" +# define OSSL_PROV_PARAM_HMAC_KEY_CHECK "hmac-key-check" +# define OSSL_PROV_PARAM_KBKDF_KEY_CHECK "kbkdf-key-check" +# define OSSL_PROV_PARAM_KMAC_KEY_CHECK "kmac-key-check" +# define OSSL_PROV_PARAM_NAME "name" +# define OSSL_PROV_PARAM_NO_SHORT_MAC "no-short-mac" +# define OSSL_PROV_PARAM_PBKDF2_LOWER_BOUND_CHECK "pbkdf2-lower-bound-check" +# define OSSL_PROV_PARAM_RSA_PKCS15_PAD_DISABLED "rsa-pkcs15-pad-disabled" +# define OSSL_PROV_PARAM_RSA_PSS_SALTLEN_CHECK "rsa-pss-saltlen-check" +# define OSSL_PROV_PARAM_RSA_SIGN_X931_PAD_DISABLED "rsa-sign-x931-pad-disabled" +# define OSSL_PROV_PARAM_SECURITY_CHECKS "security-checks" +# define OSSL_PROV_PARAM_SELF_TEST_DESC "st-desc" +# define OSSL_PROV_PARAM_SELF_TEST_PHASE "st-phase" +# define OSSL_PROV_PARAM_SELF_TEST_TYPE "st-type" +# define OSSL_PROV_PARAM_SIGNATURE_DIGEST_CHECK "signature-digest-check" +# define OSSL_PROV_PARAM_SSHKDF_DIGEST_CHECK "sshkdf-digest-check" +# define OSSL_PROV_PARAM_SSHKDF_KEY_CHECK "sshkdf-key-check" +# define OSSL_PROV_PARAM_SSKDF_DIGEST_CHECK "sskdf-digest-check" +# define OSSL_PROV_PARAM_SSKDF_KEY_CHECK "sskdf-key-check" +# define OSSL_PROV_PARAM_STATUS "status" +# define OSSL_PROV_PARAM_TDES_ENCRYPT_DISABLED "tdes-encrypt-disabled" +# define OSSL_PROV_PARAM_TLS13_KDF_DIGEST_CHECK "tls13-kdf-digest-check" +# define OSSL_PROV_PARAM_TLS13_KDF_KEY_CHECK "tls13-kdf-key-check" +# define OSSL_PROV_PARAM_TLS1_PRF_DIGEST_CHECK "tls1-prf-digest-check" +# define OSSL_PROV_PARAM_TLS1_PRF_EMS_CHECK "tls1-prf-ems-check" +# define OSSL_PROV_PARAM_TLS1_PRF_KEY_CHECK "tls1-prf-key-check" +# define OSSL_PROV_PARAM_VERSION "version" +# define OSSL_PROV_PARAM_X942KDF_KEY_CHECK "x942kdf-key-check" +# define OSSL_PROV_PARAM_X963KDF_DIGEST_CHECK "x963kdf-digest-check" +# define OSSL_PROV_PARAM_X963KDF_KEY_CHECK "x963kdf-key-check" +# define OSSL_RAND_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_RAND_PARAM_GENERATE "generate" +# define OSSL_RAND_PARAM_MAX_REQUEST "max_request" +# define OSSL_RAND_PARAM_STATE "state" +# define OSSL_RAND_PARAM_STRENGTH "strength" +# define OSSL_RAND_PARAM_TEST_ENTROPY "test_entropy" +# define OSSL_RAND_PARAM_TEST_NONCE "test_nonce" +# define OSSL_SIGNATURE_PARAM_ADD_RANDOM "additional-random" +# define OSSL_SIGNATURE_PARAM_ALGORITHM_ID OSSL_PKEY_PARAM_ALGORITHM_ID +# define OSSL_SIGNATURE_PARAM_ALGORITHM_ID_PARAMS OSSL_PKEY_PARAM_ALGORITHM_ID_PARAMS +# define OSSL_SIGNATURE_PARAM_CONTEXT_STRING "context-string" +# define OSSL_SIGNATURE_PARAM_DETERMINISTIC "deterministic" +# define OSSL_SIGNATURE_PARAM_DIGEST OSSL_PKEY_PARAM_DIGEST +# define OSSL_SIGNATURE_PARAM_DIGEST_SIZE OSSL_PKEY_PARAM_DIGEST_SIZE +# define OSSL_SIGNATURE_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_SIGNATURE_PARAM_FIPS_DIGEST_CHECK OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK +# define OSSL_SIGNATURE_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_SIGNATURE_PARAM_FIPS_RSA_PSS_SALTLEN_CHECK "rsa-pss-saltlen-check" +# define OSSL_SIGNATURE_PARAM_FIPS_SIGN_CHECK OSSL_PKEY_PARAM_FIPS_SIGN_CHECK +# define OSSL_SIGNATURE_PARAM_FIPS_SIGN_X931_PAD_CHECK "sign-x931-pad-check" +# define OSSL_SIGNATURE_PARAM_FIPS_VERIFY_MESSAGE "verify-message" +# define OSSL_SIGNATURE_PARAM_INSTANCE "instance" +# define OSSL_SIGNATURE_PARAM_KAT "kat" +# define OSSL_SIGNATURE_PARAM_MESSAGE_ENCODING "message-encoding" +# define OSSL_SIGNATURE_PARAM_MGF1_DIGEST OSSL_PKEY_PARAM_MGF1_DIGEST +# define OSSL_SIGNATURE_PARAM_MGF1_PROPERTIES OSSL_PKEY_PARAM_MGF1_PROPERTIES +# define OSSL_SIGNATURE_PARAM_MU "mu" +# define OSSL_SIGNATURE_PARAM_NONCE_TYPE "nonce-type" +# define OSSL_SIGNATURE_PARAM_PAD_MODE OSSL_PKEY_PARAM_PAD_MODE +# define OSSL_SIGNATURE_PARAM_PROPERTIES OSSL_PKEY_PARAM_PROPERTIES +# define OSSL_SIGNATURE_PARAM_PSS_SALTLEN "saltlen" +# define OSSL_SIGNATURE_PARAM_SIGNATURE "signature" +# define OSSL_SIGNATURE_PARAM_TEST_ENTROPY "test-entropy" +# define OSSL_SKEY_PARAM_KEY_LENGTH "key-length" +# define OSSL_SKEY_PARAM_RAW_BYTES "raw-bytes" +# define OSSL_STORE_PARAM_ALIAS "alias" +# define OSSL_STORE_PARAM_DIGEST "digest" +# define OSSL_STORE_PARAM_EXPECT "expect" +# define OSSL_STORE_PARAM_FINGERPRINT "fingerprint" +# define OSSL_STORE_PARAM_INPUT_TYPE "input-type" +# define OSSL_STORE_PARAM_ISSUER "name" +# define OSSL_STORE_PARAM_PROPERTIES "properties" +# define OSSL_STORE_PARAM_SERIAL "serial" +# define OSSL_STORE_PARAM_SUBJECT "subject" + +# ifdef __cplusplus +} +# endif + +#endif diff --git a/deps/openssl/config/archs/VC-WIN32/no-asm/include/openssl/crmf.h b/deps/openssl/config/archs/VC-WIN32/no-asm/include/openssl/crmf.h index 0419170bb99974..9b6f13fac240b2 100644 --- a/deps/openssl/config/archs/VC-WIN32/no-asm/include/openssl/crmf.h +++ b/deps/openssl/config/archs/VC-WIN32/no-asm/include/openssl/crmf.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by makefile from include/openssl/crmf.h.in * - * Copyright 2007-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2007-2025 The OpenSSL Project Authors. All Rights Reserved. * Copyright Nokia 2007-2019 * Copyright Siemens AG 2015-2019 * @@ -26,6 +26,7 @@ # include # include # include /* for GENERAL_NAME etc. */ +# include /* explicit #includes not strictly needed since implied by the above: */ # include @@ -43,9 +44,12 @@ extern "C" { # define OSSL_CRMF_SUBSEQUENTMESSAGE_ENCRCERT 0 # define OSSL_CRMF_SUBSEQUENTMESSAGE_CHALLENGERESP 1 - typedef struct ossl_crmf_encryptedvalue_st OSSL_CRMF_ENCRYPTEDVALUE; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_ENCRYPTEDVALUE) + +typedef struct ossl_crmf_encryptedkey_st OSSL_CRMF_ENCRYPTEDKEY; +DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_ENCRYPTEDKEY) + typedef struct ossl_crmf_msg_st OSSL_CRMF_MSG; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_MSG) DECLARE_ASN1_DUP_FUNCTION(OSSL_CRMF_MSG) @@ -77,6 +81,36 @@ SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CRMF_MSG, OSSL_CRMF_MSG, OSSL_CRMF_MSG) #define sk_OSSL_CRMF_MSG_set_cmp_func(sk, cmp) ((sk_OSSL_CRMF_MSG_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CRMF_MSG_sk_type(sk), ossl_check_OSSL_CRMF_MSG_compfunc_type(cmp))) typedef struct ossl_crmf_attributetypeandvalue_st OSSL_CRMF_ATTRIBUTETYPEANDVALUE; +void OSSL_CRMF_ATTRIBUTETYPEANDVALUE_free(OSSL_CRMF_ATTRIBUTETYPEANDVALUE *v); +DECLARE_ASN1_DUP_FUNCTION(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CRMF_ATTRIBUTETYPEANDVALUE, OSSL_CRMF_ATTRIBUTETYPEANDVALUE, OSSL_CRMF_ATTRIBUTETYPEANDVALUE) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_value(sk, idx) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_value(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), (idx))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_new(cmp) ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_new(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_compfunc_type(cmp))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_new_null() ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_new_null()) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_new_reserve(cmp, n) ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_compfunc_type(cmp), (n))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), (n)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_free(sk) OPENSSL_sk_free(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_delete(sk, i) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_delete(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), (i))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_delete_ptr(sk, ptr) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_pop(sk) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_pop(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_shift(sk) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_shift(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk),ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_freefunc_type(freefunc)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr), (idx)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_set(sk, idx, ptr) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_set(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), (idx), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr), pnum) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_dup(sk) ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_dup(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_copyfunc_type(copyfunc), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_freefunc_type(freefunc))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_set_cmp_func(sk, cmp) ((sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_compfunc_type(cmp))) + + typedef struct ossl_crmf_pbmparameter_st OSSL_CRMF_PBMPARAMETER; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_PBMPARAMETER) typedef struct ossl_crmf_poposigningkey_st OSSL_CRMF_POPOSIGNINGKEY; @@ -118,6 +152,7 @@ typedef struct ossl_crmf_singlepubinfo_st OSSL_CRMF_SINGLEPUBINFO; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_SINGLEPUBINFO) typedef struct ossl_crmf_certtemplate_st OSSL_CRMF_CERTTEMPLATE; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_CERTTEMPLATE) +DECLARE_ASN1_DUP_FUNCTION(OSSL_CRMF_CERTTEMPLATE) typedef STACK_OF(OSSL_CRMF_MSG) OSSL_CRMF_MSGS; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_MSGS) @@ -198,12 +233,14 @@ int OSSL_CRMF_MSGS_verify_popo(const OSSL_CRMF_MSGS *reqs, int rid, int acceptRAVerified, OSSL_LIB_CTX *libctx, const char *propq); OSSL_CRMF_CERTTEMPLATE *OSSL_CRMF_MSG_get0_tmpl(const OSSL_CRMF_MSG *crm); -const ASN1_INTEGER -*OSSL_CRMF_CERTTEMPLATE_get0_serialNumber(const OSSL_CRMF_CERTTEMPLATE *tmpl); +X509_PUBKEY +*OSSL_CRMF_CERTTEMPLATE_get0_publicKey(const OSSL_CRMF_CERTTEMPLATE *tmpl); const X509_NAME *OSSL_CRMF_CERTTEMPLATE_get0_subject(const OSSL_CRMF_CERTTEMPLATE *tmpl); const X509_NAME *OSSL_CRMF_CERTTEMPLATE_get0_issuer(const OSSL_CRMF_CERTTEMPLATE *tmpl); +const ASN1_INTEGER +*OSSL_CRMF_CERTTEMPLATE_get0_serialNumber(const OSSL_CRMF_CERTTEMPLATE *tmpl); X509_EXTENSIONS *OSSL_CRMF_CERTTEMPLATE_get0_extensions(const OSSL_CRMF_CERTTEMPLATE *tmpl); const X509_NAME @@ -215,10 +252,24 @@ int OSSL_CRMF_CERTTEMPLATE_fill(OSSL_CRMF_CERTTEMPLATE *tmpl, const X509_NAME *subject, const X509_NAME *issuer, const ASN1_INTEGER *serial); -X509 -*OSSL_CRMF_ENCRYPTEDVALUE_get1_encCert(const OSSL_CRMF_ENCRYPTEDVALUE *ecert, - OSSL_LIB_CTX *libctx, const char *propq, - EVP_PKEY *pkey); +X509 *OSSL_CRMF_ENCRYPTEDVALUE_get1_encCert(const OSSL_CRMF_ENCRYPTEDVALUE *ecert, + OSSL_LIB_CTX *libctx, const char *propq, + EVP_PKEY *pkey); +X509 *OSSL_CRMF_ENCRYPTEDKEY_get1_encCert(const OSSL_CRMF_ENCRYPTEDKEY *ecert, + OSSL_LIB_CTX *libctx, const char *propq, + EVP_PKEY *pkey, unsigned int flags); +unsigned char +*OSSL_CRMF_ENCRYPTEDVALUE_decrypt(const OSSL_CRMF_ENCRYPTEDVALUE *enc, + OSSL_LIB_CTX *libctx, const char *propq, + EVP_PKEY *pkey, int *outlen); +EVP_PKEY *OSSL_CRMF_ENCRYPTEDKEY_get1_pkey(const OSSL_CRMF_ENCRYPTEDKEY *encryptedKey, + X509_STORE *ts, STACK_OF(X509) *extra, EVP_PKEY *pkey, + X509 *cert, ASN1_OCTET_STRING *secret, + OSSL_LIB_CTX *libctx, const char *propq); +int OSSL_CRMF_MSG_centralkeygen_requested(const OSSL_CRMF_MSG *crm, const X509_REQ *p10cr); +# ifndef OPENSSL_NO_CMS +OSSL_CRMF_ENCRYPTEDKEY *OSSL_CRMF_ENCRYPTEDKEY_init_envdata(CMS_EnvelopedData *envdata); +# endif # ifdef __cplusplus } diff --git a/deps/openssl/config/archs/VC-WIN32/no-asm/include/openssl/crypto.h b/deps/openssl/config/archs/VC-WIN32/no-asm/include/openssl/crypto.h index 668c52cfee1f15..2a825986bf3a55 100644 --- a/deps/openssl/config/archs/VC-WIN32/no-asm/include/openssl/crypto.h +++ b/deps/openssl/config/archs/VC-WIN32/no-asm/include/openssl/crypto.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by makefile from include/openssl/crypto.h.in * - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2024 The OpenSSL Project Authors. All Rights Reserved. * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved * * Licensed under the Apache License 2.0 (the "License"). You may not use @@ -85,9 +85,15 @@ int CRYPTO_THREAD_unlock(CRYPTO_RWLOCK *lock); void CRYPTO_THREAD_lock_free(CRYPTO_RWLOCK *lock); int CRYPTO_atomic_add(int *val, int amount, int *ret, CRYPTO_RWLOCK *lock); +int CRYPTO_atomic_add64(uint64_t *val, uint64_t op, uint64_t *ret, + CRYPTO_RWLOCK *lock); +int CRYPTO_atomic_and(uint64_t *val, uint64_t op, uint64_t *ret, + CRYPTO_RWLOCK *lock); int CRYPTO_atomic_or(uint64_t *val, uint64_t op, uint64_t *ret, CRYPTO_RWLOCK *lock); int CRYPTO_atomic_load(uint64_t *val, uint64_t *ret, CRYPTO_RWLOCK *lock); +int CRYPTO_atomic_load_int(int *val, int *ret, CRYPTO_RWLOCK *lock); +int CRYPTO_atomic_store(uint64_t *dst, uint64_t val, CRYPTO_RWLOCK *lock); /* No longer needed, so this is a no-op */ #define OPENSSL_malloc_init() while(0) continue @@ -96,6 +102,9 @@ int CRYPTO_atomic_load(uint64_t *val, uint64_t *ret, CRYPTO_RWLOCK *lock); CRYPTO_malloc(num, OPENSSL_FILE, OPENSSL_LINE) # define OPENSSL_zalloc(num) \ CRYPTO_zalloc(num, OPENSSL_FILE, OPENSSL_LINE) +# define OPENSSL_aligned_alloc(num, alignment, freeptr) \ + CRYPTO_aligned_alloc(num, alignment, freeptr, \ + OPENSSL_FILE, OPENSSL_LINE) # define OPENSSL_realloc(addr, num) \ CRYPTO_realloc(addr, num, OPENSSL_FILE, OPENSSL_LINE) # define OPENSSL_clear_realloc(addr, old_num, num) \ @@ -124,6 +133,7 @@ int CRYPTO_atomic_load(uint64_t *val, uint64_t *ret, CRYPTO_RWLOCK *lock); size_t OPENSSL_strlcpy(char *dst, const char *src, size_t siz); size_t OPENSSL_strlcat(char *dst, const char *src, size_t siz); size_t OPENSSL_strnlen(const char *str, size_t maxlen); +int OPENSSL_strtoul(const char *str, char **endptr, int base, unsigned long *num); int OPENSSL_buf2hexstr_ex(char *str, size_t str_n, size_t *strlength, const unsigned char *buf, size_t buflen, const char sep); @@ -160,6 +170,7 @@ const char *OpenSSL_version(int type); # define OPENSSL_FULL_VERSION_STRING 7 # define OPENSSL_MODULES_DIR 8 # define OPENSSL_CPU_INFO 9 +# define OPENSSL_WINCTX 10 const char *OPENSSL_info(int type); /* @@ -174,6 +185,7 @@ const char *OPENSSL_info(int type); # define OPENSSL_INFO_LIST_SEPARATOR 1006 # define OPENSSL_INFO_SEED_SOURCE 1007 # define OPENSSL_INFO_CPU_SETTINGS 1008 +# define OPENSSL_INFO_WINDOWS_CONTEXT 1009 int OPENSSL_issetugid(void); @@ -341,11 +353,14 @@ void CRYPTO_get_mem_functions(CRYPTO_malloc_fn *malloc_fn, CRYPTO_realloc_fn *realloc_fn, CRYPTO_free_fn *free_fn); -void *CRYPTO_malloc(size_t num, const char *file, int line); -void *CRYPTO_zalloc(size_t num, const char *file, int line); -void *CRYPTO_memdup(const void *str, size_t siz, const char *file, int line); -char *CRYPTO_strdup(const char *str, const char *file, int line); -char *CRYPTO_strndup(const char *str, size_t s, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_malloc(size_t num, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_zalloc(size_t num, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_aligned_alloc(size_t num, size_t align, + void **freeptr, const char *file, + int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_memdup(const void *str, size_t siz, const char *file, int line); +OSSL_CRYPTO_ALLOC char *CRYPTO_strdup(const char *str, const char *file, int line); +OSSL_CRYPTO_ALLOC char *CRYPTO_strndup(const char *str, size_t s, const char *file, int line); void CRYPTO_free(void *ptr, const char *file, int line); void CRYPTO_clear_free(void *ptr, size_t num, const char *file, int line); void *CRYPTO_realloc(void *addr, size_t num, const char *file, int line); @@ -354,8 +369,8 @@ void *CRYPTO_clear_realloc(void *addr, size_t old_num, size_t num, int CRYPTO_secure_malloc_init(size_t sz, size_t minsize); int CRYPTO_secure_malloc_done(void); -void *CRYPTO_secure_malloc(size_t num, const char *file, int line); -void *CRYPTO_secure_zalloc(size_t num, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_secure_malloc(size_t num, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_secure_zalloc(size_t num, const char *file, int line); void CRYPTO_secure_free(void *ptr, const char *file, int line); void CRYPTO_secure_clear_free(void *ptr, size_t num, const char *file, int line); @@ -376,6 +391,9 @@ void OPENSSL_cleanse(void *ptr, size_t len); # define CRYPTO_MEM_CHECK_ENABLE 0x2 /* Control and mode bit */ # define CRYPTO_MEM_CHECK_DISABLE 0x3 /* Control only */ +/* max allowed length for value of OPENSSL_MALLOC_FAILURES env var. */ +# define CRYPTO_MEM_CHECK_MAX_FS 256 + void CRYPTO_get_alloc_counts(int *mcount, int *rcount, int *fcount); # ifndef OPENSSL_NO_DEPRECATED_3_0 # define OPENSSL_mem_debug_push(info) \ @@ -551,6 +569,13 @@ int OSSL_LIB_CTX_load_config(OSSL_LIB_CTX *ctx, const char *config_file); void OSSL_LIB_CTX_free(OSSL_LIB_CTX *); OSSL_LIB_CTX *OSSL_LIB_CTX_get0_global_default(void); OSSL_LIB_CTX *OSSL_LIB_CTX_set0_default(OSSL_LIB_CTX *libctx); +int OSSL_LIB_CTX_get_conf_diagnostics(OSSL_LIB_CTX *ctx); +void OSSL_LIB_CTX_set_conf_diagnostics(OSSL_LIB_CTX *ctx, int value); + +void OSSL_sleep(uint64_t millis); + + +void *OSSL_LIB_CTX_get_data(OSSL_LIB_CTX *ctx, int index); # ifdef __cplusplus } diff --git a/deps/openssl/config/archs/VC-WIN32/no-asm/include/openssl/ct.h b/deps/openssl/config/archs/VC-WIN32/no-asm/include/openssl/ct.h index 15a276e33ff7ca..d29dbc78997c0b 100644 --- a/deps/openssl/config/archs/VC-WIN32/no-asm/include/openssl/ct.h +++ b/deps/openssl/config/archs/VC-WIN32/no-asm/include/openssl/ct.h @@ -133,7 +133,7 @@ typedef enum { */ CT_POLICY_EVAL_CTX *CT_POLICY_EVAL_CTX_new_ex(OSSL_LIB_CTX *libctx, const char *propq); - + /* * The same as CT_POLICY_EVAL_CTX_new_ex() but the default library * context and property query string is used. diff --git a/deps/openssl/config/archs/VC-WIN32/no-asm/include/openssl/err.h b/deps/openssl/config/archs/VC-WIN32/no-asm/include/openssl/err.h index 2abf2483488181..daca18e7b757b0 100644 --- a/deps/openssl/config/archs/VC-WIN32/no-asm/include/openssl/err.h +++ b/deps/openssl/config/archs/VC-WIN32/no-asm/include/openssl/err.h @@ -1,5 +1,5 @@ /* - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -372,7 +372,7 @@ typedef struct ERR_string_data_st { } ERR_STRING_DATA; DEFINE_LHASH_OF_INTERNAL(ERR_STRING_DATA); -#define lh_ERR_STRING_DATA_new(hfn, cmp) ((LHASH_OF(ERR_STRING_DATA) *)OPENSSL_LH_new(ossl_check_ERR_STRING_DATA_lh_hashfunc_type(hfn), ossl_check_ERR_STRING_DATA_lh_compfunc_type(cmp))) +#define lh_ERR_STRING_DATA_new(hfn, cmp) ((LHASH_OF(ERR_STRING_DATA) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new(ossl_check_ERR_STRING_DATA_lh_hashfunc_type(hfn), ossl_check_ERR_STRING_DATA_lh_compfunc_type(cmp)), lh_ERR_STRING_DATA_hash_thunk, lh_ERR_STRING_DATA_comp_thunk, lh_ERR_STRING_DATA_doall_thunk, lh_ERR_STRING_DATA_doall_arg_thunk)) #define lh_ERR_STRING_DATA_free(lh) OPENSSL_LH_free(ossl_check_ERR_STRING_DATA_lh_type(lh)) #define lh_ERR_STRING_DATA_flush(lh) OPENSSL_LH_flush(ossl_check_ERR_STRING_DATA_lh_type(lh)) #define lh_ERR_STRING_DATA_insert(lh, ptr) ((ERR_STRING_DATA *)OPENSSL_LH_insert(ossl_check_ERR_STRING_DATA_lh_type(lh), ossl_check_ERR_STRING_DATA_lh_plain_type(ptr))) @@ -496,6 +496,14 @@ int ERR_get_next_error_library(void); int ERR_set_mark(void); int ERR_pop_to_mark(void); int ERR_clear_last_mark(void); +int ERR_count_to_mark(void); +int ERR_pop(void); + +ERR_STATE *OSSL_ERR_STATE_new(void); +void OSSL_ERR_STATE_save(ERR_STATE *es); +void OSSL_ERR_STATE_save_to_mark(ERR_STATE *es); +void OSSL_ERR_STATE_restore(const ERR_STATE *es); +void OSSL_ERR_STATE_free(ERR_STATE *es); #ifdef __cplusplus } diff --git a/deps/openssl/config/archs/VC-WIN32/no-asm/include/openssl/fipskey.h b/deps/openssl/config/archs/VC-WIN32/no-asm/include/openssl/fipskey.h index bf03682482fdd5..6939fd3c55ba6e 100644 --- a/deps/openssl/config/archs/VC-WIN32/no-asm/include/openssl/fipskey.h +++ b/deps/openssl/config/archs/VC-WIN32/no-asm/include/openssl/fipskey.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by makefile from include/openssl/fipskey.h.in * - * Copyright 2020-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2020-2024 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -29,6 +29,11 @@ extern "C" { */ #define FIPS_KEY_STRING "f4556650ac31d35461610bac4ed81b1a181b2d8a43ea2854cbae22ca74560813" +/* + * The FIPS provider vendor name, as a string. + */ +#define FIPS_VENDOR "OpenSSL FIPS Provider" + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/VC-WIN32/no-asm/include/openssl/lhash.h b/deps/openssl/config/archs/VC-WIN32/no-asm/include/openssl/lhash.h index 39dd6254acdeb6..62c55b20fd9716 100644 --- a/deps/openssl/config/archs/VC-WIN32/no-asm/include/openssl/lhash.h +++ b/deps/openssl/config/archs/VC-WIN32/no-asm/include/openssl/lhash.h @@ -1,5 +1,5 @@ /* - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2024 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -24,6 +24,9 @@ # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -31,9 +34,13 @@ extern "C" { typedef struct lhash_node_st OPENSSL_LH_NODE; typedef int (*OPENSSL_LH_COMPFUNC) (const void *, const void *); +typedef int (*OPENSSL_LH_COMPFUNCTHUNK) (const void *, const void *, OPENSSL_LH_COMPFUNC cfn); typedef unsigned long (*OPENSSL_LH_HASHFUNC) (const void *); +typedef unsigned long (*OPENSSL_LH_HASHFUNCTHUNK) (const void *, OPENSSL_LH_HASHFUNC hfn); typedef void (*OPENSSL_LH_DOALL_FUNC) (void *); +typedef void (*OPENSSL_LH_DOALL_FUNC_THUNK) (void *, OPENSSL_LH_DOALL_FUNC doall); typedef void (*OPENSSL_LH_DOALL_FUNCARG) (void *, void *); +typedef void (*OPENSSL_LH_DOALL_FUNCARG_THUNK) (void *, void *, OPENSSL_LH_DOALL_FUNCARG doall); typedef struct lhash_st OPENSSL_LHASH; /* @@ -79,26 +86,40 @@ typedef struct lhash_st OPENSSL_LHASH; int OPENSSL_LH_error(OPENSSL_LHASH *lh); OPENSSL_LHASH *OPENSSL_LH_new(OPENSSL_LH_HASHFUNC h, OPENSSL_LH_COMPFUNC c); +OPENSSL_LHASH *OPENSSL_LH_set_thunks(OPENSSL_LHASH *lh, + OPENSSL_LH_HASHFUNCTHUNK hw, + OPENSSL_LH_COMPFUNCTHUNK cw, + OPENSSL_LH_DOALL_FUNC_THUNK daw, + OPENSSL_LH_DOALL_FUNCARG_THUNK daaw); void OPENSSL_LH_free(OPENSSL_LHASH *lh); void OPENSSL_LH_flush(OPENSSL_LHASH *lh); void *OPENSSL_LH_insert(OPENSSL_LHASH *lh, void *data); void *OPENSSL_LH_delete(OPENSSL_LHASH *lh, const void *data); void *OPENSSL_LH_retrieve(OPENSSL_LHASH *lh, const void *data); void OPENSSL_LH_doall(OPENSSL_LHASH *lh, OPENSSL_LH_DOALL_FUNC func); -void OPENSSL_LH_doall_arg(OPENSSL_LHASH *lh, OPENSSL_LH_DOALL_FUNCARG func, void *arg); +void OPENSSL_LH_doall_arg(OPENSSL_LHASH *lh, + OPENSSL_LH_DOALL_FUNCARG func, void *arg); +void OPENSSL_LH_doall_arg_thunk(OPENSSL_LHASH *lh, + OPENSSL_LH_DOALL_FUNCARG_THUNK daaw, + OPENSSL_LH_DOALL_FUNCARG fn, void *arg); + unsigned long OPENSSL_LH_strhash(const char *c); unsigned long OPENSSL_LH_num_items(const OPENSSL_LHASH *lh); unsigned long OPENSSL_LH_get_down_load(const OPENSSL_LHASH *lh); void OPENSSL_LH_set_down_load(OPENSSL_LHASH *lh, unsigned long down_load); # ifndef OPENSSL_NO_STDIO -void OPENSSL_LH_stats(const OPENSSL_LHASH *lh, FILE *fp); -void OPENSSL_LH_node_stats(const OPENSSL_LHASH *lh, FILE *fp); -void OPENSSL_LH_node_usage_stats(const OPENSSL_LHASH *lh, FILE *fp); +# ifndef OPENSSL_NO_DEPRECATED_3_1 +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_stats(const OPENSSL_LHASH *lh, FILE *fp); +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_node_stats(const OPENSSL_LHASH *lh, FILE *fp); +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_node_usage_stats(const OPENSSL_LHASH *lh, FILE *fp); +# endif +# endif +# ifndef OPENSSL_NO_DEPRECATED_3_1 +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_stats_bio(const OPENSSL_LHASH *lh, BIO *out); +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_node_stats_bio(const OPENSSL_LHASH *lh, BIO *out); +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_node_usage_stats_bio(const OPENSSL_LHASH *lh, BIO *out); # endif -void OPENSSL_LH_stats_bio(const OPENSSL_LHASH *lh, BIO *out); -void OPENSSL_LH_node_stats_bio(const OPENSSL_LHASH *lh, BIO *out); -void OPENSSL_LH_node_usage_stats_bio(const OPENSSL_LHASH *lh, BIO *out); # ifndef OPENSSL_NO_DEPRECATED_1_1_0 # define _LHASH OPENSSL_LHASH @@ -129,110 +150,190 @@ void OPENSSL_LH_node_usage_stats_bio(const OPENSSL_LHASH *lh, BIO *out); /* Helper macro for internal use */ # define DEFINE_LHASH_OF_INTERNAL(type) \ - LHASH_OF(type) { union lh_##type##_dummy { void* d1; unsigned long d2; int d3; } dummy; }; \ + LHASH_OF(type) { \ + union lh_##type##_dummy { void* d1; unsigned long d2; int d3; } dummy; \ + }; \ typedef int (*lh_##type##_compfunc)(const type *a, const type *b); \ typedef unsigned long (*lh_##type##_hashfunc)(const type *a); \ typedef void (*lh_##type##_doallfunc)(type *a); \ - static ossl_unused ossl_inline type *ossl_check_##type##_lh_plain_type(type *ptr) \ + static ossl_inline unsigned long lh_##type##_hash_thunk(const void *data, OPENSSL_LH_HASHFUNC hfn) \ + { \ + unsigned long (*hfn_conv)(const type *) = (unsigned long (*)(const type *))hfn; \ + return hfn_conv((const type *)data); \ + } \ + static ossl_inline int lh_##type##_comp_thunk(const void *da, const void *db, OPENSSL_LH_COMPFUNC cfn) \ + { \ + int (*cfn_conv)(const type *, const type *) = (int (*)(const type *, const type *))cfn; \ + return cfn_conv((const type *)da, (const type *)db); \ + } \ + static ossl_inline void lh_##type##_doall_thunk(void *node, OPENSSL_LH_DOALL_FUNC doall) \ + { \ + void (*doall_conv)(type *) = (void (*)(type *))doall; \ + doall_conv((type *)node); \ + } \ + static ossl_inline void lh_##type##_doall_arg_thunk(void *node, void *arg, OPENSSL_LH_DOALL_FUNCARG doall) \ + { \ + void (*doall_conv)(type *, void *) = (void (*)(type *, void *))doall; \ + doall_conv((type *)node, arg); \ + } \ + static ossl_unused ossl_inline type *\ + ossl_check_##type##_lh_plain_type(type *ptr) \ { \ return ptr; \ } \ - static ossl_unused ossl_inline const type *ossl_check_const_##type##_lh_plain_type(const type *ptr) \ + static ossl_unused ossl_inline const type * \ + ossl_check_const_##type##_lh_plain_type(const type *ptr) \ { \ return ptr; \ } \ - static ossl_unused ossl_inline const OPENSSL_LHASH *ossl_check_const_##type##_lh_type(const LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline const OPENSSL_LHASH * \ + ossl_check_const_##type##_lh_type(const LHASH_OF(type) *lh) \ { \ return (const OPENSSL_LHASH *)lh; \ } \ - static ossl_unused ossl_inline OPENSSL_LHASH *ossl_check_##type##_lh_type(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline OPENSSL_LHASH * \ + ossl_check_##type##_lh_type(LHASH_OF(type) *lh) \ { \ return (OPENSSL_LHASH *)lh; \ } \ - static ossl_unused ossl_inline OPENSSL_LH_COMPFUNC ossl_check_##type##_lh_compfunc_type(lh_##type##_compfunc cmp) \ + static ossl_unused ossl_inline OPENSSL_LH_COMPFUNC \ + ossl_check_##type##_lh_compfunc_type(lh_##type##_compfunc cmp) \ { \ return (OPENSSL_LH_COMPFUNC)cmp; \ } \ - static ossl_unused ossl_inline OPENSSL_LH_HASHFUNC ossl_check_##type##_lh_hashfunc_type(lh_##type##_hashfunc hfn) \ + static ossl_unused ossl_inline OPENSSL_LH_HASHFUNC \ + ossl_check_##type##_lh_hashfunc_type(lh_##type##_hashfunc hfn) \ { \ return (OPENSSL_LH_HASHFUNC)hfn; \ } \ - static ossl_unused ossl_inline OPENSSL_LH_DOALL_FUNC ossl_check_##type##_lh_doallfunc_type(lh_##type##_doallfunc dfn) \ + static ossl_unused ossl_inline OPENSSL_LH_DOALL_FUNC \ + ossl_check_##type##_lh_doallfunc_type(lh_##type##_doallfunc dfn) \ { \ return (OPENSSL_LH_DOALL_FUNC)dfn; \ } \ LHASH_OF(type) -# define DEFINE_LHASH_OF(type) \ - LHASH_OF(type) { union lh_##type##_dummy { void* d1; unsigned long d2; int d3; } dummy; }; \ - static ossl_unused ossl_inline LHASH_OF(type) *lh_##type##_new(unsigned long (*hfn)(const type *), \ - int (*cfn)(const type *, const type *)) \ +# ifndef OPENSSL_NO_DEPRECATED_3_1 +# define DEFINE_LHASH_OF_DEPRECATED(type) \ + static ossl_unused ossl_inline void \ + lh_##type##_node_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ { \ - return (LHASH_OF(type) *) \ - OPENSSL_LH_new((OPENSSL_LH_HASHFUNC)hfn, (OPENSSL_LH_COMPFUNC)cfn); \ + OPENSSL_LH_node_stats_bio((const OPENSSL_LHASH *)lh, out); \ } \ - static ossl_unused ossl_inline void lh_##type##_free(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline void \ + lh_##type##_node_usage_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + { \ + OPENSSL_LH_node_usage_stats_bio((const OPENSSL_LHASH *)lh, out); \ + } \ + static ossl_unused ossl_inline void \ + lh_##type##_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + { \ + OPENSSL_LH_stats_bio((const OPENSSL_LHASH *)lh, out); \ + } +# else +# define DEFINE_LHASH_OF_DEPRECATED(type) +# endif + +# define DEFINE_LHASH_OF_EX(type) \ + LHASH_OF(type) { \ + union lh_##type##_dummy { void* d1; unsigned long d2; int d3; } dummy; \ + }; \ + static unsigned long \ + lh_##type##_hfn_thunk(const void *data, OPENSSL_LH_HASHFUNC hfn) \ + { \ + unsigned long (*hfn_conv)(const type *) = (unsigned long (*)(const type *))hfn; \ + return hfn_conv((const type *)data); \ + } \ + static int lh_##type##_cfn_thunk(const void *da, const void *db, OPENSSL_LH_COMPFUNC cfn) \ + { \ + int (*cfn_conv)(const type *, const type *) = (int (*)(const type *, const type *))cfn; \ + return cfn_conv((const type *)da, (const type *)db); \ + } \ + static ossl_unused ossl_inline void \ + lh_##type##_free(LHASH_OF(type) *lh) \ { \ OPENSSL_LH_free((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline void lh_##type##_flush(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline void \ + lh_##type##_flush(LHASH_OF(type) *lh) \ { \ OPENSSL_LH_flush((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline type *lh_##type##_insert(LHASH_OF(type) *lh, type *d) \ + static ossl_unused ossl_inline type * \ + lh_##type##_insert(LHASH_OF(type) *lh, type *d) \ { \ return (type *)OPENSSL_LH_insert((OPENSSL_LHASH *)lh, d); \ } \ - static ossl_unused ossl_inline type *lh_##type##_delete(LHASH_OF(type) *lh, const type *d) \ + static ossl_unused ossl_inline type * \ + lh_##type##_delete(LHASH_OF(type) *lh, const type *d) \ { \ return (type *)OPENSSL_LH_delete((OPENSSL_LHASH *)lh, d); \ } \ - static ossl_unused ossl_inline type *lh_##type##_retrieve(LHASH_OF(type) *lh, const type *d) \ + static ossl_unused ossl_inline type * \ + lh_##type##_retrieve(LHASH_OF(type) *lh, const type *d) \ { \ return (type *)OPENSSL_LH_retrieve((OPENSSL_LHASH *)lh, d); \ } \ - static ossl_unused ossl_inline int lh_##type##_error(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline int \ + lh_##type##_error(LHASH_OF(type) *lh) \ { \ return OPENSSL_LH_error((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline unsigned long lh_##type##_num_items(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline unsigned long \ + lh_##type##_num_items(LHASH_OF(type) *lh) \ { \ return OPENSSL_LH_num_items((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline void lh_##type##_node_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + static ossl_unused ossl_inline unsigned long \ + lh_##type##_get_down_load(LHASH_OF(type) *lh) \ { \ - OPENSSL_LH_node_stats_bio((const OPENSSL_LHASH *)lh, out); \ + return OPENSSL_LH_get_down_load((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline void lh_##type##_node_usage_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + static ossl_unused ossl_inline void \ + lh_##type##_set_down_load(LHASH_OF(type) *lh, unsigned long dl) \ { \ - OPENSSL_LH_node_usage_stats_bio((const OPENSSL_LHASH *)lh, out); \ + OPENSSL_LH_set_down_load((OPENSSL_LHASH *)lh, dl); \ } \ - static ossl_unused ossl_inline void lh_##type##_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall_thunk(void *node, OPENSSL_LH_DOALL_FUNC doall) \ { \ - OPENSSL_LH_stats_bio((const OPENSSL_LHASH *)lh, out); \ + void (*doall_conv)(type *) = (void (*)(type *))doall; \ + doall_conv((type *)node); \ } \ - static ossl_unused ossl_inline unsigned long lh_##type##_get_down_load(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall_arg_thunk(void *node, void *arg, OPENSSL_LH_DOALL_FUNCARG doall) \ { \ - return OPENSSL_LH_get_down_load((OPENSSL_LHASH *)lh); \ + void (*doall_conv)(type *, void *) = (void (*)(type *, void *))doall; \ + doall_conv((type *)node, arg); \ } \ - static ossl_unused ossl_inline void lh_##type##_set_down_load(LHASH_OF(type) *lh, unsigned long dl) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall(LHASH_OF(type) *lh, void (*doall)(type *)) \ { \ - OPENSSL_LH_set_down_load((OPENSSL_LHASH *)lh, dl); \ + OPENSSL_LH_doall((OPENSSL_LHASH *)lh, (OPENSSL_LH_DOALL_FUNC)doall); \ } \ - static ossl_unused ossl_inline void lh_##type##_doall(LHASH_OF(type) *lh, \ - void (*doall)(type *)) \ + static ossl_unused ossl_inline LHASH_OF(type) * \ + lh_##type##_new(unsigned long (*hfn)(const type *), \ + int (*cfn)(const type *, const type *)) \ { \ - OPENSSL_LH_doall((OPENSSL_LHASH *)lh, (OPENSSL_LH_DOALL_FUNC)doall); \ + return (LHASH_OF(type) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new((OPENSSL_LH_HASHFUNC)hfn, (OPENSSL_LH_COMPFUNC)cfn), \ + lh_##type##_hfn_thunk, lh_##type##_cfn_thunk, \ + lh_##type##_doall_thunk, \ + lh_##type##_doall_arg_thunk); \ } \ - static ossl_unused ossl_inline void lh_##type##_doall_arg(LHASH_OF(type) *lh, \ - void (*doallarg)(type *, void *), \ - void *arg) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall_arg(LHASH_OF(type) *lh, \ + void (*doallarg)(type *, void *), void *arg) \ { \ OPENSSL_LH_doall_arg((OPENSSL_LHASH *)lh, \ (OPENSSL_LH_DOALL_FUNCARG)doallarg, arg); \ } \ LHASH_OF(type) +# define DEFINE_LHASH_OF(type) \ + DEFINE_LHASH_OF_EX(type); \ + DEFINE_LHASH_OF_DEPRECATED(type) \ + LHASH_OF(type) + #define IMPLEMENT_LHASH_DOALL_ARG_CONST(type, argtype) \ int_implement_lhash_doall(type, argtype, const type) @@ -240,17 +341,26 @@ void OPENSSL_LH_node_usage_stats_bio(const OPENSSL_LHASH *lh, BIO *out); int_implement_lhash_doall(type, argtype, type) #define int_implement_lhash_doall(type, argtype, cbargtype) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall_##argtype##_thunk(void *node, void *arg, OPENSSL_LH_DOALL_FUNCARG fn) \ + { \ + void (*fn_conv)(cbargtype *, argtype *) = (void (*)(cbargtype *, argtype *))fn; \ + fn_conv((cbargtype *)node, (argtype *)arg); \ + } \ static ossl_unused ossl_inline void \ lh_##type##_doall_##argtype(LHASH_OF(type) *lh, \ void (*fn)(cbargtype *, argtype *), \ argtype *arg) \ { \ - OPENSSL_LH_doall_arg((OPENSSL_LHASH *)lh, (OPENSSL_LH_DOALL_FUNCARG)fn, (void *)arg); \ + OPENSSL_LH_doall_arg_thunk((OPENSSL_LHASH *)lh, \ + lh_##type##_doall_##argtype##_thunk, \ + (OPENSSL_LH_DOALL_FUNCARG)fn, \ + (void *)arg); \ } \ LHASH_OF(type) DEFINE_LHASH_OF_INTERNAL(OPENSSL_STRING); -#define lh_OPENSSL_STRING_new(hfn, cmp) ((LHASH_OF(OPENSSL_STRING) *)OPENSSL_LH_new(ossl_check_OPENSSL_STRING_lh_hashfunc_type(hfn), ossl_check_OPENSSL_STRING_lh_compfunc_type(cmp))) +#define lh_OPENSSL_STRING_new(hfn, cmp) ((LHASH_OF(OPENSSL_STRING) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new(ossl_check_OPENSSL_STRING_lh_hashfunc_type(hfn), ossl_check_OPENSSL_STRING_lh_compfunc_type(cmp)), lh_OPENSSL_STRING_hash_thunk, lh_OPENSSL_STRING_comp_thunk, lh_OPENSSL_STRING_doall_thunk, lh_OPENSSL_STRING_doall_arg_thunk)) #define lh_OPENSSL_STRING_free(lh) OPENSSL_LH_free(ossl_check_OPENSSL_STRING_lh_type(lh)) #define lh_OPENSSL_STRING_flush(lh) OPENSSL_LH_flush(ossl_check_OPENSSL_STRING_lh_type(lh)) #define lh_OPENSSL_STRING_insert(lh, ptr) ((OPENSSL_STRING *)OPENSSL_LH_insert(ossl_check_OPENSSL_STRING_lh_type(lh), ossl_check_OPENSSL_STRING_lh_plain_type(ptr))) @@ -265,7 +375,7 @@ DEFINE_LHASH_OF_INTERNAL(OPENSSL_STRING); #define lh_OPENSSL_STRING_set_down_load(lh, dl) OPENSSL_LH_set_down_load(ossl_check_OPENSSL_STRING_lh_type(lh), dl) #define lh_OPENSSL_STRING_doall(lh, dfn) OPENSSL_LH_doall(ossl_check_OPENSSL_STRING_lh_type(lh), ossl_check_OPENSSL_STRING_lh_doallfunc_type(dfn)) DEFINE_LHASH_OF_INTERNAL(OPENSSL_CSTRING); -#define lh_OPENSSL_CSTRING_new(hfn, cmp) ((LHASH_OF(OPENSSL_CSTRING) *)OPENSSL_LH_new(ossl_check_OPENSSL_CSTRING_lh_hashfunc_type(hfn), ossl_check_OPENSSL_CSTRING_lh_compfunc_type(cmp))) +#define lh_OPENSSL_CSTRING_new(hfn, cmp) ((LHASH_OF(OPENSSL_CSTRING) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new(ossl_check_OPENSSL_CSTRING_lh_hashfunc_type(hfn), ossl_check_OPENSSL_CSTRING_lh_compfunc_type(cmp)), lh_OPENSSL_CSTRING_hash_thunk, lh_OPENSSL_CSTRING_comp_thunk, lh_OPENSSL_CSTRING_doall_thunk, lh_OPENSSL_CSTRING_doall_arg_thunk)) #define lh_OPENSSL_CSTRING_free(lh) OPENSSL_LH_free(ossl_check_OPENSSL_CSTRING_lh_type(lh)) #define lh_OPENSSL_CSTRING_flush(lh) OPENSSL_LH_flush(ossl_check_OPENSSL_CSTRING_lh_type(lh)) #define lh_OPENSSL_CSTRING_insert(lh, ptr) ((OPENSSL_CSTRING *)OPENSSL_LH_insert(ossl_check_OPENSSL_CSTRING_lh_type(lh), ossl_check_OPENSSL_CSTRING_lh_plain_type(ptr))) diff --git a/deps/openssl/config/archs/VC-WIN32/no-asm/include/openssl/opensslv.h b/deps/openssl/config/archs/VC-WIN32/no-asm/include/openssl/opensslv.h index 94f44daf376f8e..a26d4e609af1b7 100644 --- a/deps/openssl/config/archs/VC-WIN32/no-asm/include/openssl/opensslv.h +++ b/deps/openssl/config/archs/VC-WIN32/no-asm/include/openssl/opensslv.h @@ -28,8 +28,8 @@ extern "C" { * These macros express version number MAJOR.MINOR.PATCH exactly */ # define OPENSSL_VERSION_MAJOR 3 -# define OPENSSL_VERSION_MINOR 0 -# define OPENSSL_VERSION_PATCH 17 +# define OPENSSL_VERSION_MINOR 5 +# define OPENSSL_VERSION_PATCH 1 /* * Additional version information @@ -74,8 +74,8 @@ extern "C" { * longer variant with OPENSSL_VERSION_PRE_RELEASE_STR and * OPENSSL_VERSION_BUILD_METADATA_STR appended. */ -# define OPENSSL_VERSION_STR "3.0.17" -# define OPENSSL_FULL_VERSION_STR "3.0.17" +# define OPENSSL_VERSION_STR "3.5.1" +# define OPENSSL_FULL_VERSION_STR "3.5.1" /* * SECTION 3: ADDITIONAL METADATA @@ -88,7 +88,7 @@ extern "C" { * SECTION 4: BACKWARD COMPATIBILITY */ -# define OPENSSL_VERSION_TEXT "OpenSSL 3.0.17 1 Jul 2025" +# define OPENSSL_VERSION_TEXT "OpenSSL 3.5.1 1 Jul 2025" /* Synthesize OPENSSL_VERSION_NUMBER with the layout 0xMNN00PPSL */ # ifdef OPENSSL_VERSION_PRE_RELEASE diff --git a/deps/openssl/config/archs/VC-WIN32/no-asm/include/openssl/pkcs12.h b/deps/openssl/config/archs/VC-WIN32/no-asm/include/openssl/pkcs12.h index 80369818c8ecdc..35d04f039366ce 100644 --- a/deps/openssl/config/archs/VC-WIN32/no-asm/include/openssl/pkcs12.h +++ b/deps/openssl/config/archs/VC-WIN32/no-asm/include/openssl/pkcs12.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by makefile from include/openssl/pkcs12.h.in * - * Copyright 1999-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1999-2024 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -25,6 +25,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -41,6 +44,7 @@ extern "C" { # define PKCS12_MAC_KEY_LENGTH 20 +/* The macro is expected to be used only internally. Kept for backwards compatibility. */ # define PKCS12_SALT_LEN 8 /* It's not clear if these are actually needed... */ @@ -130,7 +134,9 @@ int PKCS12_SAFEBAG_get_bag_nid(const PKCS12_SAFEBAG *bag); const ASN1_TYPE *PKCS12_SAFEBAG_get0_bag_obj(const PKCS12_SAFEBAG *bag); const ASN1_OBJECT *PKCS12_SAFEBAG_get0_bag_type(const PKCS12_SAFEBAG *bag); +X509 *PKCS12_SAFEBAG_get1_cert_ex(const PKCS12_SAFEBAG *bag, OSSL_LIB_CTX *libctx, const char *propq); X509 *PKCS12_SAFEBAG_get1_cert(const PKCS12_SAFEBAG *bag); +X509_CRL *PKCS12_SAFEBAG_get1_crl_ex(const PKCS12_SAFEBAG *bag, OSSL_LIB_CTX *libctx, const char *propq); X509_CRL *PKCS12_SAFEBAG_get1_crl(const PKCS12_SAFEBAG *bag); const STACK_OF(PKCS12_SAFEBAG) * PKCS12_SAFEBAG_get0_safes(const PKCS12_SAFEBAG *bag); @@ -218,6 +224,7 @@ ASN1_TYPE *PKCS12_get_attr_gen(const STACK_OF(X509_ATTRIBUTE) *attrs, char *PKCS12_get_friendlyname(PKCS12_SAFEBAG *bag); const STACK_OF(X509_ATTRIBUTE) * PKCS12_SAFEBAG_get0_attrs(const PKCS12_SAFEBAG *bag); +void PKCS12_SAFEBAG_set0_attrs(PKCS12_SAFEBAG *bag, STACK_OF(X509_ATTRIBUTE) *attrs); unsigned char *PKCS12_pbe_crypt(const X509_ALGOR *algor, const char *pass, int passlen, const unsigned char *in, int inlen, @@ -285,6 +292,9 @@ int PKCS12_verify_mac(PKCS12 *p12, const char *pass, int passlen); int PKCS12_set_mac(PKCS12 *p12, const char *pass, int passlen, unsigned char *salt, int saltlen, int iter, const EVP_MD *md_type); +int PKCS12_set_pbmac1_pbkdf2(PKCS12 *p12, const char *pass, int passlen, + unsigned char *salt, int saltlen, int iter, + const EVP_MD *md_type, const char *prf_md_name); int PKCS12_setup_mac(PKCS12 *p12, int iter, unsigned char *salt, int saltlen, const EVP_MD *md_type); unsigned char *OPENSSL_asc2uni(const char *asc, int asclen, @@ -305,6 +315,7 @@ DECLARE_ASN1_ITEM(PKCS12_AUTHSAFES) void PKCS12_PBE_add(void); int PKCS12_parse(PKCS12 *p12, const char *pass, EVP_PKEY **pkey, X509 **cert, STACK_OF(X509) **ca); +typedef int PKCS12_create_cb(PKCS12_SAFEBAG *bag, void *cbarg); PKCS12 *PKCS12_create(const char *pass, const char *name, EVP_PKEY *pkey, X509 *cert, STACK_OF(X509) *ca, int nid_key, int nid_cert, int iter, int mac_iter, int keytype); @@ -312,6 +323,11 @@ PKCS12 *PKCS12_create_ex(const char *pass, const char *name, EVP_PKEY *pkey, X509 *cert, STACK_OF(X509) *ca, int nid_key, int nid_cert, int iter, int mac_iter, int keytype, OSSL_LIB_CTX *ctx, const char *propq); +PKCS12 *PKCS12_create_ex2(const char *pass, const char *name, EVP_PKEY *pkey, + X509 *cert, STACK_OF(X509) *ca, int nid_key, int nid_cert, + int iter, int mac_iter, int keytype, + OSSL_LIB_CTX *ctx, const char *propq, + PKCS12_create_cb *cb, void *cbarg); PKCS12_SAFEBAG *PKCS12_add_cert(STACK_OF(PKCS12_SAFEBAG) **pbags, X509 *cert); PKCS12_SAFEBAG *PKCS12_add_key(STACK_OF(PKCS12_SAFEBAG) **pbags, diff --git a/deps/openssl/config/archs/VC-WIN32/no-asm/include/openssl/pkcs7.h b/deps/openssl/config/archs/VC-WIN32/no-asm/include/openssl/pkcs7.h index 0a95a93e59e262..641d9411a47354 100644 --- a/deps/openssl/config/archs/VC-WIN32/no-asm/include/openssl/pkcs7.h +++ b/deps/openssl/config/archs/VC-WIN32/no-asm/include/openssl/pkcs7.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by makefile from include/openssl/pkcs7.h.in * - * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -28,6 +28,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -131,8 +134,8 @@ SKM_DEFINE_STACK_OF_INTERNAL(PKCS7_RECIP_INFO, PKCS7_RECIP_INFO, PKCS7_RECIP_INF typedef struct pkcs7_signed_st { ASN1_INTEGER *version; /* version 1 */ STACK_OF(X509_ALGOR) *md_algs; /* md used */ - STACK_OF(X509) *cert; /* [ 0 ] */ - STACK_OF(X509_CRL) *crl; /* [ 1 ] */ + STACK_OF(X509) *cert; /* [ 0 ] */ /* name should be 'certificates' */ + STACK_OF(X509_CRL) *crl; /* [ 1 ] */ /* name should be 'crls' */ STACK_OF(PKCS7_SIGNER_INFO) *signer_info; struct pkcs7_st *contents; } PKCS7_SIGNED; @@ -158,8 +161,8 @@ typedef struct pkcs7_enveloped_st { typedef struct pkcs7_signedandenveloped_st { ASN1_INTEGER *version; /* version 1 */ STACK_OF(X509_ALGOR) *md_algs; /* md used */ - STACK_OF(X509) *cert; /* [ 0 ] */ - STACK_OF(X509_CRL) *crl; /* [ 1 ] */ + STACK_OF(X509) *cert; /* [ 0 ] */ /* name should be 'certificates' */ + STACK_OF(X509_CRL) *crl; /* [ 1 ] */ /* name should be 'crls' */ STACK_OF(PKCS7_SIGNER_INFO) *signer_info; PKCS7_ENC_CONTENT *enc_data; STACK_OF(PKCS7_RECIP_INFO) *recipientinfo; @@ -200,7 +203,7 @@ typedef struct pkcs7_st { /* NID_pkcs7_data */ ASN1_OCTET_STRING *data; /* NID_pkcs7_signed */ - PKCS7_SIGNED *sign; + PKCS7_SIGNED *sign; /* field name 'signed' would clash with C keyword */ /* NID_pkcs7_enveloped */ PKCS7_ENVELOPE *enveloped; /* NID_pkcs7_signedAndEnveloped */ @@ -341,13 +344,13 @@ int PKCS7_SIGNER_INFO_set(PKCS7_SIGNER_INFO *p7i, X509 *x509, EVP_PKEY *pkey, const EVP_MD *dgst); int PKCS7_SIGNER_INFO_sign(PKCS7_SIGNER_INFO *si); int PKCS7_add_signer(PKCS7 *p7, PKCS7_SIGNER_INFO *p7i); -int PKCS7_add_certificate(PKCS7 *p7, X509 *x509); -int PKCS7_add_crl(PKCS7 *p7, X509_CRL *x509); +int PKCS7_add_certificate(PKCS7 *p7, X509 *cert); +int PKCS7_add_crl(PKCS7 *p7, X509_CRL *crl); int PKCS7_content_new(PKCS7 *p7, int nid); int PKCS7_dataVerify(X509_STORE *cert_store, X509_STORE_CTX *ctx, BIO *bio, PKCS7 *p7, PKCS7_SIGNER_INFO *si); int PKCS7_signatureVerify(BIO *bio, PKCS7 *p7, PKCS7_SIGNER_INFO *si, - X509 *x509); + X509 *signer); BIO *PKCS7_dataInit(PKCS7 *p7, BIO *bio); int PKCS7_dataFinal(PKCS7 *p7, BIO *bio); diff --git a/deps/openssl/config/archs/VC-WIN32/no-asm/include/openssl/ssl.h b/deps/openssl/config/archs/VC-WIN32/no-asm/include/openssl/ssl.h index 7e9ca09bbf39f0..6396681867d76c 100644 --- a/deps/openssl/config/archs/VC-WIN32/no-asm/include/openssl/ssl.h +++ b/deps/openssl/config/archs/VC-WIN32/no-asm/include/openssl/ssl.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by makefile from include/openssl/ssl.h.in * - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved * Copyright 2005 Nokia. All rights reserved. * @@ -24,6 +24,7 @@ # endif # include +# include # include # include # include @@ -42,6 +43,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -231,10 +235,8 @@ typedef struct ssl_cipher_st SSL_CIPHER; typedef struct ssl_session_st SSL_SESSION; typedef struct tls_sigalgs_st TLS_SIGALGS; typedef struct ssl_conf_ctx_st SSL_CONF_CTX; -typedef struct ssl_comp_st SSL_COMP; STACK_OF(SSL_CIPHER); -STACK_OF(SSL_COMP); /* SRTP protection profiles for use with the use_srtp extension (RFC 5764)*/ typedef struct srtp_protection_profile_st { @@ -278,28 +280,31 @@ typedef int (*tls_session_secret_cb_fn)(SSL *s, void *secret, int *secret_len, /* Extension context codes */ /* This extension is only allowed in TLS */ -#define SSL_EXT_TLS_ONLY 0x0001 +#define SSL_EXT_TLS_ONLY 0x00001 /* This extension is only allowed in DTLS */ -#define SSL_EXT_DTLS_ONLY 0x0002 +#define SSL_EXT_DTLS_ONLY 0x00002 /* Some extensions may be allowed in DTLS but we don't implement them for it */ -#define SSL_EXT_TLS_IMPLEMENTATION_ONLY 0x0004 +#define SSL_EXT_TLS_IMPLEMENTATION_ONLY 0x00004 /* Most extensions are not defined for SSLv3 but EXT_TYPE_renegotiate is */ -#define SSL_EXT_SSL3_ALLOWED 0x0008 +#define SSL_EXT_SSL3_ALLOWED 0x00008 /* Extension is only defined for TLS1.2 and below */ -#define SSL_EXT_TLS1_2_AND_BELOW_ONLY 0x0010 +#define SSL_EXT_TLS1_2_AND_BELOW_ONLY 0x00010 /* Extension is only defined for TLS1.3 and above */ -#define SSL_EXT_TLS1_3_ONLY 0x0020 +#define SSL_EXT_TLS1_3_ONLY 0x00020 /* Ignore this extension during parsing if we are resuming */ -#define SSL_EXT_IGNORE_ON_RESUMPTION 0x0040 -#define SSL_EXT_CLIENT_HELLO 0x0080 +#define SSL_EXT_IGNORE_ON_RESUMPTION 0x00040 +#define SSL_EXT_CLIENT_HELLO 0x00080 /* Really means TLS1.2 or below */ -#define SSL_EXT_TLS1_2_SERVER_HELLO 0x0100 -#define SSL_EXT_TLS1_3_SERVER_HELLO 0x0200 -#define SSL_EXT_TLS1_3_ENCRYPTED_EXTENSIONS 0x0400 -#define SSL_EXT_TLS1_3_HELLO_RETRY_REQUEST 0x0800 -#define SSL_EXT_TLS1_3_CERTIFICATE 0x1000 -#define SSL_EXT_TLS1_3_NEW_SESSION_TICKET 0x2000 -#define SSL_EXT_TLS1_3_CERTIFICATE_REQUEST 0x4000 +#define SSL_EXT_TLS1_2_SERVER_HELLO 0x00100 +#define SSL_EXT_TLS1_3_SERVER_HELLO 0x00200 +#define SSL_EXT_TLS1_3_ENCRYPTED_EXTENSIONS 0x00400 +#define SSL_EXT_TLS1_3_HELLO_RETRY_REQUEST 0x00800 +#define SSL_EXT_TLS1_3_CERTIFICATE 0x01000 +#define SSL_EXT_TLS1_3_NEW_SESSION_TICKET 0x02000 +#define SSL_EXT_TLS1_3_CERTIFICATE_REQUEST 0x04000 +#define SSL_EXT_TLS1_3_CERTIFICATE_COMPRESSION 0x08000 +/* When sending a raw public key in a certificate message */ +#define SSL_EXT_TLS1_3_RAW_PUBLIC_KEY 0x10000 /* Typedefs for handling custom extensions */ @@ -404,7 +409,7 @@ typedef int (*SSL_async_callback_fn)(SSL *s, void *arg); */ # define SSL_OP_CIPHER_SERVER_PREFERENCE SSL_OP_BIT(22) /* - * If set, a server will allow a client to issue a SSLv3.0 version + * If set, a server will allow a client to issue an SSLv3.0 version * number as latest version supported in the premaster secret, even when * TLSv1.0 (version 3.1) was announced in the client hello. Normally * this is forbidden to prevent version rollback attacks. @@ -430,6 +435,19 @@ typedef int (*SSL_async_callback_fn)(SSL *s, void *arg); * interoperability with CryptoPro CSP 3.x */ # define SSL_OP_CRYPTOPRO_TLSEXT_BUG SSL_OP_BIT(31) +/* + * Disable RFC8879 certificate compression + * SSL_OP_NO_TX_CERTIFICATE_COMPRESSION: don't send compressed certificates, + * and ignore the extension when received. + * SSL_OP_NO_RX_CERTIFICATE_COMPRESSION: don't send the extension, and + * subsequently indicating that receiving is not supported + */ +# define SSL_OP_NO_TX_CERTIFICATE_COMPRESSION SSL_OP_BIT(32) +# define SSL_OP_NO_RX_CERTIFICATE_COMPRESSION SSL_OP_BIT(33) + /* Enable KTLS TX zerocopy on Linux */ +# define SSL_OP_ENABLE_KTLS_TX_ZEROCOPY_SENDFILE SSL_OP_BIT(34) + +#define SSL_OP_PREFER_NO_DHE_KEX SSL_OP_BIT(35) /* * Option "collections." @@ -574,6 +592,8 @@ typedef int (*SSL_async_callback_fn)(SSL *s, void *arg); # define CERT_PKEY_CERT_TYPE 0x400 /* Cert chain suitable to Suite B */ # define CERT_PKEY_SUITEB 0x800 +/* Cert pkey valid for raw public key use */ +# define CERT_PKEY_RPK 0x1000 # define SSL_CONF_FLAG_CMDLINE 0x1 # define SSL_CONF_FLAG_FILE 0x2 @@ -965,6 +985,7 @@ uint32_t SSL_get_recv_max_early_data(const SSL *s); # include /* This is mostly sslv3 with a few tweaks */ # include /* Datagram TLS */ # include /* Support for the use_srtp extension */ +# include #ifdef __cplusplus extern "C" { @@ -1000,32 +1021,6 @@ SKM_DEFINE_STACK_OF_INTERNAL(SSL_CIPHER, const SSL_CIPHER, SSL_CIPHER) #define sk_SSL_CIPHER_dup(sk) ((STACK_OF(SSL_CIPHER) *)OPENSSL_sk_dup(ossl_check_const_SSL_CIPHER_sk_type(sk))) #define sk_SSL_CIPHER_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(SSL_CIPHER) *)OPENSSL_sk_deep_copy(ossl_check_const_SSL_CIPHER_sk_type(sk), ossl_check_SSL_CIPHER_copyfunc_type(copyfunc), ossl_check_SSL_CIPHER_freefunc_type(freefunc))) #define sk_SSL_CIPHER_set_cmp_func(sk, cmp) ((sk_SSL_CIPHER_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_SSL_CIPHER_sk_type(sk), ossl_check_SSL_CIPHER_compfunc_type(cmp))) -SKM_DEFINE_STACK_OF_INTERNAL(SSL_COMP, SSL_COMP, SSL_COMP) -#define sk_SSL_COMP_num(sk) OPENSSL_sk_num(ossl_check_const_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_value(sk, idx) ((SSL_COMP *)OPENSSL_sk_value(ossl_check_const_SSL_COMP_sk_type(sk), (idx))) -#define sk_SSL_COMP_new(cmp) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new(ossl_check_SSL_COMP_compfunc_type(cmp))) -#define sk_SSL_COMP_new_null() ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new_null()) -#define sk_SSL_COMP_new_reserve(cmp, n) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new_reserve(ossl_check_SSL_COMP_compfunc_type(cmp), (n))) -#define sk_SSL_COMP_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_SSL_COMP_sk_type(sk), (n)) -#define sk_SSL_COMP_free(sk) OPENSSL_sk_free(ossl_check_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_zero(sk) OPENSSL_sk_zero(ossl_check_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_delete(sk, i) ((SSL_COMP *)OPENSSL_sk_delete(ossl_check_SSL_COMP_sk_type(sk), (i))) -#define sk_SSL_COMP_delete_ptr(sk, ptr) ((SSL_COMP *)OPENSSL_sk_delete_ptr(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr))) -#define sk_SSL_COMP_push(sk, ptr) OPENSSL_sk_push(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) -#define sk_SSL_COMP_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) -#define sk_SSL_COMP_pop(sk) ((SSL_COMP *)OPENSSL_sk_pop(ossl_check_SSL_COMP_sk_type(sk))) -#define sk_SSL_COMP_shift(sk) ((SSL_COMP *)OPENSSL_sk_shift(ossl_check_SSL_COMP_sk_type(sk))) -#define sk_SSL_COMP_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_SSL_COMP_sk_type(sk),ossl_check_SSL_COMP_freefunc_type(freefunc)) -#define sk_SSL_COMP_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr), (idx)) -#define sk_SSL_COMP_set(sk, idx, ptr) ((SSL_COMP *)OPENSSL_sk_set(ossl_check_SSL_COMP_sk_type(sk), (idx), ossl_check_SSL_COMP_type(ptr))) -#define sk_SSL_COMP_find(sk, ptr) OPENSSL_sk_find(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) -#define sk_SSL_COMP_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) -#define sk_SSL_COMP_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr), pnum) -#define sk_SSL_COMP_sort(sk) OPENSSL_sk_sort(ossl_check_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_dup(sk) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_dup(ossl_check_const_SSL_COMP_sk_type(sk))) -#define sk_SSL_COMP_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_deep_copy(ossl_check_const_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_copyfunc_type(copyfunc), ossl_check_SSL_COMP_freefunc_type(freefunc))) -#define sk_SSL_COMP_set_cmp_func(sk, cmp) ((sk_SSL_COMP_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_compfunc_type(cmp))) /* compatibility */ @@ -1066,6 +1061,7 @@ typedef enum { DTLS_ST_CR_HELLO_VERIFY_REQUEST, TLS_ST_CR_SRVR_HELLO, TLS_ST_CR_CERT, + TLS_ST_CR_COMP_CERT, TLS_ST_CR_CERT_STATUS, TLS_ST_CR_KEY_EXCH, TLS_ST_CR_CERT_REQ, @@ -1075,6 +1071,7 @@ typedef enum { TLS_ST_CR_FINISHED, TLS_ST_CW_CLNT_HELLO, TLS_ST_CW_CERT, + TLS_ST_CW_COMP_CERT, TLS_ST_CW_KEY_EXCH, TLS_ST_CW_CERT_VRFY, TLS_ST_CW_CHANGE, @@ -1085,10 +1082,12 @@ typedef enum { DTLS_ST_SW_HELLO_VERIFY_REQUEST, TLS_ST_SW_SRVR_HELLO, TLS_ST_SW_CERT, + TLS_ST_SW_COMP_CERT, TLS_ST_SW_KEY_EXCH, TLS_ST_SW_CERT_REQ, TLS_ST_SW_SRVR_DONE, TLS_ST_SR_CERT, + TLS_ST_SR_COMP_CERT, TLS_ST_SR_KEY_EXCH, TLS_ST_SR_CERT_VRFY, TLS_ST_SR_NEXT_PROTO, @@ -1380,9 +1379,13 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) # define SSL_CTRL_GET_SIGNATURE_NID 132 # define SSL_CTRL_GET_TMP_KEY 133 # define SSL_CTRL_GET_NEGOTIATED_GROUP 134 +# define SSL_CTRL_GET_IANA_GROUPS 135 # define SSL_CTRL_SET_RETRY_VERIFY 136 # define SSL_CTRL_GET_VERIFY_CERT_STORE 137 # define SSL_CTRL_GET_CHAIN_CERT_STORE 138 +# define SSL_CTRL_GET0_IMPLEMENTED_GROUPS 139 +# define SSL_CTRL_GET_SIGNATURE_NAME 140 +# define SSL_CTRL_GET_PEER_SIGNATURE_NAME 141 # define SSL_CERT_SET_FIRST 1 # define SSL_CERT_SET_NEXT 2 # define SSL_CERT_SET_SERVER 3 @@ -1485,10 +1488,15 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) # define SSL_get1_groups(s, glist) \ SSL_ctrl(s,SSL_CTRL_GET_GROUPS,0,(int*)(glist)) +# define SSL_get0_iana_groups(s, plst) \ + SSL_ctrl(s,SSL_CTRL_GET_IANA_GROUPS,0,(uint16_t **)(plst)) # define SSL_CTX_set1_groups(ctx, glist, glistlen) \ SSL_CTX_ctrl(ctx,SSL_CTRL_SET_GROUPS,glistlen,(int *)(glist)) # define SSL_CTX_set1_groups_list(ctx, s) \ SSL_CTX_ctrl(ctx,SSL_CTRL_SET_GROUPS_LIST,0,(char *)(s)) +# define SSL_CTX_get0_implemented_groups(ctx, all, out) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_GET0_IMPLEMENTED_GROUPS, all, \ + (STACK_OF(OPENSSL_CSTRING) *)(out)) # define SSL_set1_groups(s, glist, glistlen) \ SSL_ctrl(s,SSL_CTRL_SET_GROUPS,glistlen,(char *)(glist)) # define SSL_set1_groups_list(s, str) \ @@ -1520,8 +1528,12 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) (char *)(clist)) # define SSL_set1_client_certificate_types(s, clist, clistlen) \ SSL_ctrl(s,SSL_CTRL_SET_CLIENT_CERT_TYPES,clistlen,(char *)(clist)) +# define SSL_get0_signature_name(s, str) \ + SSL_ctrl(s,SSL_CTRL_GET_SIGNATURE_NAME,0,(1?(str):(const char **)NULL)) # define SSL_get_signature_nid(s, pn) \ SSL_ctrl(s,SSL_CTRL_GET_SIGNATURE_NID,0,pn) +# define SSL_get0_peer_signature_name(s, str) \ + SSL_ctrl(s,SSL_CTRL_GET_PEER_SIGNATURE_NAME,0,(1?(str):(const char **)NULL)) # define SSL_get_peer_signature_nid(s, pn) \ SSL_ctrl(s,SSL_CTRL_GET_PEER_SIGNATURE_NID,0,pn) # define SSL_get_peer_tmp_key(s, pk) \ @@ -1549,6 +1561,7 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) # define SSL_get_max_proto_version(s) \ SSL_ctrl(s, SSL_CTRL_GET_MAX_PROTO_VERSION, 0, NULL) +const char *SSL_get0_group_name(SSL *s); const char *SSL_group_to_name(SSL *s, int id); /* Backwards compatibility, original 1.1.0 names */ @@ -1613,7 +1626,11 @@ void SSL_CTX_set1_cert_store(SSL_CTX *, X509_STORE *); __owur int SSL_want(const SSL *s); __owur int SSL_clear(SSL *s); +#ifndef OPENSSL_NO_DEPRECATED_3_4 +OSSL_DEPRECATEDIN_3_4_FOR("not Y2038-safe, replace with SSL_CTX_flush_sessions_ex()") void SSL_CTX_flush_sessions(SSL_CTX *ctx, long tm); +#endif +void SSL_CTX_flush_sessions_ex(SSL_CTX *ctx, time_t tm); __owur const SSL_CIPHER *SSL_get_current_cipher(const SSL *s); __owur const SSL_CIPHER *SSL_get_pending_cipher(const SSL *s); @@ -1725,13 +1742,21 @@ __owur const char *SSL_state_string(const SSL *s); __owur const char *SSL_rstate_string(const SSL *s); __owur const char *SSL_state_string_long(const SSL *s); __owur const char *SSL_rstate_string_long(const SSL *s); + +#ifndef OPENSSL_NO_DEPRECATED_3_4 +OSSL_DEPRECATEDIN_3_4_FOR("not Y2038-safe, replace with SSL_SESSION_get_time_ex()") __owur long SSL_SESSION_get_time(const SSL_SESSION *s); +OSSL_DEPRECATEDIN_3_4_FOR("not Y2038-safe, replace with SSL_SESSION_set_time_ex()") __owur long SSL_SESSION_set_time(SSL_SESSION *s, long t); +#endif __owur long SSL_SESSION_get_timeout(const SSL_SESSION *s); __owur long SSL_SESSION_set_timeout(SSL_SESSION *s, long t); __owur int SSL_SESSION_get_protocol_version(const SSL_SESSION *s); __owur int SSL_SESSION_set_protocol_version(SSL_SESSION *s, int version); +__owur time_t SSL_SESSION_get_time_ex(const SSL_SESSION *s); +__owur time_t SSL_SESSION_set_time_ex(SSL_SESSION *s, time_t t); + __owur const char *SSL_SESSION_get0_hostname(const SSL_SESSION *s); __owur int SSL_SESSION_set1_hostname(SSL_SESSION *s, const char *hostname); void SSL_SESSION_get0_alpn_selected(const SSL_SESSION *s, @@ -1783,6 +1808,9 @@ __owur int SSL_has_matching_session_id(const SSL *s, unsigned int id_len); SSL_SESSION *d2i_SSL_SESSION(SSL_SESSION **a, const unsigned char **pp, long length); +SSL_SESSION *d2i_SSL_SESSION_ex(SSL_SESSION **a, const unsigned char **pp, + long length, OSSL_LIB_CTX *libctx, + const char *propq); # ifdef OPENSSL_X509_H __owur X509 *SSL_get0_peer_certificate(const SSL *s); @@ -1840,6 +1868,8 @@ __owur int SSL_CTX_set_session_id_context(SSL_CTX *ctx, SSL *SSL_new(SSL_CTX *ctx); int SSL_up_ref(SSL *s); int SSL_is_dtls(const SSL *s); +int SSL_is_tls(const SSL *s); +int SSL_is_quic(const SSL *s); __owur int SSL_set_session_id_context(SSL *ssl, const unsigned char *sid_ctx, unsigned int sid_ctx_len); @@ -1848,8 +1878,8 @@ __owur int SSL_set_purpose(SSL *ssl, int purpose); __owur int SSL_CTX_set_trust(SSL_CTX *ctx, int trust); __owur int SSL_set_trust(SSL *ssl, int trust); -__owur int SSL_set1_host(SSL *s, const char *hostname); -__owur int SSL_add1_host(SSL *s, const char *hostname); +__owur int SSL_set1_host(SSL *s, const char *host); +__owur int SSL_add1_host(SSL *s, const char *host); __owur const char *SSL_get0_peername(SSL *s); void SSL_set_hostflags(SSL *s, unsigned int flags); @@ -1924,6 +1954,11 @@ OSSL_DEPRECATEDIN_3_0 __owur char *SSL_get_srp_userinfo(SSL *s); typedef int (*SSL_client_hello_cb_fn) (SSL *s, int *al, void *arg); void SSL_CTX_set_client_hello_cb(SSL_CTX *c, SSL_client_hello_cb_fn cb, void *arg); +typedef int (*SSL_new_pending_conn_cb_fn) (SSL_CTX *ctx, SSL *new_ssl, + void *arg); +void SSL_CTX_set_new_pending_conn_cb(SSL_CTX *c, SSL_new_pending_conn_cb_fn cb, + void *arg); + int SSL_client_hello_isv2(SSL *s); unsigned int SSL_client_hello_get0_legacy_version(SSL *s); size_t SSL_client_hello_get0_random(SSL *s, const unsigned char **out); @@ -1932,6 +1967,8 @@ size_t SSL_client_hello_get0_ciphers(SSL *s, const unsigned char **out); size_t SSL_client_hello_get0_compression_methods(SSL *s, const unsigned char **out); int SSL_client_hello_get1_extensions_present(SSL *s, int **out, size_t *outlen); +int SSL_client_hello_get_extension_order(SSL *s, uint16_t *exts, + size_t *num_exts); int SSL_client_hello_get0_ext(SSL *s, unsigned int type, const unsigned char **out, size_t *outlen); @@ -1978,6 +2015,12 @@ long SSL_callback_ctrl(SSL *, int, void (*)(void)); long SSL_CTX_ctrl(SSL_CTX *ctx, int cmd, long larg, void *parg); long SSL_CTX_callback_ctrl(SSL_CTX *, int, void (*)(void)); +# define SSL_WRITE_FLAG_CONCLUDE (1U << 0) + +__owur int SSL_write_ex2(SSL *s, const void *buf, size_t num, + uint64_t flags, + size_t *written); + # define SSL_EARLY_DATA_NOT_SENT 0 # define SSL_EARLY_DATA_REJECTED 1 # define SSL_EARLY_DATA_ACCEPTED 2 @@ -1986,6 +2029,7 @@ __owur int SSL_get_early_data_status(const SSL *s); __owur int SSL_get_error(const SSL *s, int ret_code); __owur const char *SSL_get_version(const SSL *s); +__owur int SSL_get_handshake_rtt(const SSL *s, uint64_t *rtt); /* This sets the 'default' SSL version that SSL_new() will create */ # ifndef OPENSSL_NO_DEPRECATED_3_0 @@ -2281,6 +2325,8 @@ void SSL_CTX_set_record_padding_callback(SSL_CTX *ctx, void SSL_CTX_set_record_padding_callback_arg(SSL_CTX *ctx, void *arg); void *SSL_CTX_get_record_padding_callback_arg(const SSL_CTX *ctx); int SSL_CTX_set_block_padding(SSL_CTX *ctx, size_t block_size); +int SSL_CTX_set_block_padding_ex(SSL_CTX *ctx, size_t app_block_size, + size_t hs_block_size); int SSL_set_record_padding_callback(SSL *ssl, size_t (*cb) (SSL *ssl, int type, @@ -2288,12 +2334,255 @@ int SSL_set_record_padding_callback(SSL *ssl, void SSL_set_record_padding_callback_arg(SSL *ssl, void *arg); void *SSL_get_record_padding_callback_arg(const SSL *ssl); int SSL_set_block_padding(SSL *ssl, size_t block_size); - +int SSL_set_block_padding_ex(SSL *ssl, size_t app_block_size, + size_t hs_block_size); int SSL_set_num_tickets(SSL *s, size_t num_tickets); size_t SSL_get_num_tickets(const SSL *s); int SSL_CTX_set_num_tickets(SSL_CTX *ctx, size_t num_tickets); size_t SSL_CTX_get_num_tickets(const SSL_CTX *ctx); +/* QUIC support */ +int SSL_handle_events(SSL *s); +__owur int SSL_get_event_timeout(SSL *s, struct timeval *tv, int *is_infinite); +__owur int SSL_get_rpoll_descriptor(SSL *s, BIO_POLL_DESCRIPTOR *desc); +__owur int SSL_get_wpoll_descriptor(SSL *s, BIO_POLL_DESCRIPTOR *desc); +__owur int SSL_net_read_desired(SSL *s); +__owur int SSL_net_write_desired(SSL *s); +__owur int SSL_set_blocking_mode(SSL *s, int blocking); +__owur int SSL_get_blocking_mode(SSL *s); +__owur int SSL_set1_initial_peer_addr(SSL *s, const BIO_ADDR *peer_addr); +__owur SSL *SSL_get0_connection(SSL *s); +__owur int SSL_is_connection(SSL *s); + +__owur int SSL_is_listener(SSL *ssl); +__owur SSL *SSL_get0_listener(SSL *s); +#define SSL_LISTENER_FLAG_NO_VALIDATE (1UL << 1) +__owur SSL *SSL_new_listener(SSL_CTX *ctx, uint64_t flags); +__owur SSL *SSL_new_listener_from(SSL *ssl, uint64_t flags); +__owur SSL *SSL_new_from_listener(SSL *ssl, uint64_t flags); +#define SSL_ACCEPT_CONNECTION_NO_BLOCK (1UL << 0) +__owur SSL *SSL_accept_connection(SSL *ssl, uint64_t flags); +__owur size_t SSL_get_accept_connection_queue_len(SSL *ssl); +__owur int SSL_listen(SSL *ssl); + +__owur int SSL_is_domain(SSL *s); +__owur SSL *SSL_get0_domain(SSL *s); +__owur SSL *SSL_new_domain(SSL_CTX *ctx, uint64_t flags); + +#define SSL_DOMAIN_FLAG_SINGLE_THREAD (1U << 0) +#define SSL_DOMAIN_FLAG_MULTI_THREAD (1U << 1) +#define SSL_DOMAIN_FLAG_THREAD_ASSISTED (1U << 2) +#define SSL_DOMAIN_FLAG_BLOCKING (1U << 3) +#define SSL_DOMAIN_FLAG_LEGACY_BLOCKING (1U << 4) + +__owur int SSL_CTX_set_domain_flags(SSL_CTX *ctx, uint64_t domain_flags); +__owur int SSL_CTX_get_domain_flags(const SSL_CTX *ctx, uint64_t *domain_flags); +__owur int SSL_get_domain_flags(const SSL *ssl, uint64_t *domain_flags); + +#define SSL_STREAM_TYPE_NONE 0 +#define SSL_STREAM_TYPE_READ (1U << 0) +#define SSL_STREAM_TYPE_WRITE (1U << 1) +#define SSL_STREAM_TYPE_BIDI (SSL_STREAM_TYPE_READ | SSL_STREAM_TYPE_WRITE) +__owur int SSL_get_stream_type(SSL *s); + +__owur uint64_t SSL_get_stream_id(SSL *s); +__owur int SSL_is_stream_local(SSL *s); + +#define SSL_DEFAULT_STREAM_MODE_NONE 0 +#define SSL_DEFAULT_STREAM_MODE_AUTO_BIDI 1 +#define SSL_DEFAULT_STREAM_MODE_AUTO_UNI 2 +__owur int SSL_set_default_stream_mode(SSL *s, uint32_t mode); + +#define SSL_STREAM_FLAG_UNI (1U << 0) +#define SSL_STREAM_FLAG_NO_BLOCK (1U << 1) +#define SSL_STREAM_FLAG_ADVANCE (1U << 2) +__owur SSL *SSL_new_stream(SSL *s, uint64_t flags); + +#define SSL_INCOMING_STREAM_POLICY_AUTO 0 +#define SSL_INCOMING_STREAM_POLICY_ACCEPT 1 +#define SSL_INCOMING_STREAM_POLICY_REJECT 2 +__owur int SSL_set_incoming_stream_policy(SSL *s, int policy, uint64_t aec); + +#define SSL_ACCEPT_STREAM_NO_BLOCK (1U << 0) +__owur SSL *SSL_accept_stream(SSL *s, uint64_t flags); +__owur size_t SSL_get_accept_stream_queue_len(SSL *s); + +# ifndef OPENSSL_NO_QUIC +__owur int SSL_inject_net_dgram(SSL *s, const unsigned char *buf, + size_t buf_len, + const BIO_ADDR *peer, + const BIO_ADDR *local); +# endif + +typedef struct ssl_shutdown_ex_args_st { + uint64_t quic_error_code; + const char *quic_reason; +} SSL_SHUTDOWN_EX_ARGS; + +#define SSL_SHUTDOWN_FLAG_RAPID (1U << 0) +#define SSL_SHUTDOWN_FLAG_NO_STREAM_FLUSH (1U << 1) +#define SSL_SHUTDOWN_FLAG_NO_BLOCK (1U << 2) +#define SSL_SHUTDOWN_FLAG_WAIT_PEER (1U << 3) + +__owur int SSL_shutdown_ex(SSL *ssl, uint64_t flags, + const SSL_SHUTDOWN_EX_ARGS *args, + size_t args_len); + +__owur int SSL_stream_conclude(SSL *ssl, uint64_t flags); + +typedef struct ssl_stream_reset_args_st { + uint64_t quic_error_code; +} SSL_STREAM_RESET_ARGS; + +__owur int SSL_stream_reset(SSL *ssl, + const SSL_STREAM_RESET_ARGS *args, + size_t args_len); + +#define SSL_STREAM_STATE_NONE 0 +#define SSL_STREAM_STATE_OK 1 +#define SSL_STREAM_STATE_WRONG_DIR 2 +#define SSL_STREAM_STATE_FINISHED 3 +#define SSL_STREAM_STATE_RESET_LOCAL 4 +#define SSL_STREAM_STATE_RESET_REMOTE 5 +#define SSL_STREAM_STATE_CONN_CLOSED 6 +__owur int SSL_get_stream_read_state(SSL *ssl); +__owur int SSL_get_stream_write_state(SSL *ssl); + +__owur int SSL_get_stream_read_error_code(SSL *ssl, uint64_t *app_error_code); +__owur int SSL_get_stream_write_error_code(SSL *ssl, uint64_t *app_error_code); + +#define SSL_CONN_CLOSE_FLAG_LOCAL (1U << 0) +#define SSL_CONN_CLOSE_FLAG_TRANSPORT (1U << 1) + +typedef struct ssl_conn_close_info_st { + uint64_t error_code, frame_type; + const char *reason; + size_t reason_len; + uint32_t flags; +} SSL_CONN_CLOSE_INFO; + +__owur int SSL_get_conn_close_info(SSL *ssl, + SSL_CONN_CLOSE_INFO *info, + size_t info_len); + +# define SSL_VALUE_CLASS_GENERIC 0 +# define SSL_VALUE_CLASS_FEATURE_REQUEST 1 +# define SSL_VALUE_CLASS_FEATURE_PEER_REQUEST 2 +# define SSL_VALUE_CLASS_FEATURE_NEGOTIATED 3 + +# define SSL_VALUE_NONE 0 +# define SSL_VALUE_QUIC_STREAM_BIDI_LOCAL_AVAIL 1 +# define SSL_VALUE_QUIC_STREAM_BIDI_REMOTE_AVAIL 2 +# define SSL_VALUE_QUIC_STREAM_UNI_LOCAL_AVAIL 3 +# define SSL_VALUE_QUIC_STREAM_UNI_REMOTE_AVAIL 4 +# define SSL_VALUE_QUIC_IDLE_TIMEOUT 5 +# define SSL_VALUE_EVENT_HANDLING_MODE 6 +# define SSL_VALUE_STREAM_WRITE_BUF_SIZE 7 +# define SSL_VALUE_STREAM_WRITE_BUF_USED 8 +# define SSL_VALUE_STREAM_WRITE_BUF_AVAIL 9 + +# define SSL_VALUE_EVENT_HANDLING_MODE_INHERIT 0 +# define SSL_VALUE_EVENT_HANDLING_MODE_IMPLICIT 1 +# define SSL_VALUE_EVENT_HANDLING_MODE_EXPLICIT 2 + +int SSL_get_value_uint(SSL *s, uint32_t class_, uint32_t id, uint64_t *v); +int SSL_set_value_uint(SSL *s, uint32_t class_, uint32_t id, uint64_t v); + +# define SSL_get_generic_value_uint(ssl, id, v) \ + SSL_get_value_uint((ssl), SSL_VALUE_CLASS_GENERIC, (id), (v)) +# define SSL_set_generic_value_uint(ssl, id, v) \ + SSL_set_value_uint((ssl), SSL_VALUE_CLASS_GENERIC, (id), (v)) +# define SSL_get_feature_request_uint(ssl, id, v) \ + SSL_get_value_uint((ssl), SSL_VALUE_CLASS_FEATURE_REQUEST, (id), (v)) +# define SSL_set_feature_request_uint(ssl, id, v) \ + SSL_set_value_uint((ssl), SSL_VALUE_CLASS_FEATURE_REQUEST, (id), (v)) +# define SSL_get_feature_peer_request_uint(ssl, id, v) \ + SSL_get_value_uint((ssl), SSL_VALUE_CLASS_FEATURE_PEER_REQUEST, (id), (v)) +# define SSL_get_feature_negotiated_uint(ssl, id, v) \ + SSL_get_value_uint((ssl), SSL_VALUE_CLASS_FEATURE_NEGOTIATED, (id), (v)) + +# define SSL_get_quic_stream_bidi_local_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_QUIC_STREAM_BIDI_LOCAL_AVAIL, \ + (value)) +# define SSL_get_quic_stream_bidi_remote_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_QUIC_STREAM_BIDI_REMOTE_AVAIL, \ + (value)) +# define SSL_get_quic_stream_uni_local_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_QUIC_STREAM_UNI_LOCAL_AVAIL, \ + (value)) +# define SSL_get_quic_stream_uni_remote_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_QUIC_STREAM_UNI_REMOTE_AVAIL, \ + (value)) + +# define SSL_get_event_handling_mode(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_EVENT_HANDLING_MODE, \ + (value)) +# define SSL_set_event_handling_mode(ssl, value) \ + SSL_set_generic_value_uint((ssl), SSL_VALUE_EVENT_HANDLING_MODE, \ + (value)) + +# define SSL_get_stream_write_buf_size(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_STREAM_WRITE_BUF_SIZE, \ + (value)) +# define SSL_get_stream_write_buf_used(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_STREAM_WRITE_BUF_USED, \ + (value)) +# define SSL_get_stream_write_buf_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_STREAM_WRITE_BUF_AVAIL, \ + (value)) + +# define SSL_POLL_EVENT_NONE 0 + +# define SSL_POLL_EVENT_F (1U << 0) /* F (Failure) */ +# define SSL_POLL_EVENT_EL (1U << 1) /* EL (Exception on Listener) */ +# define SSL_POLL_EVENT_EC (1U << 2) /* EC (Exception on Conn) */ +# define SSL_POLL_EVENT_ECD (1U << 3) /* ECD (Exception on Conn Drained) */ +# define SSL_POLL_EVENT_ER (1U << 4) /* ER (Exception on Read) */ +# define SSL_POLL_EVENT_EW (1U << 5) /* EW (Exception on Write) */ +# define SSL_POLL_EVENT_R (1U << 6) /* R (Readable) */ +# define SSL_POLL_EVENT_W (1U << 7) /* W (Writable) */ +# define SSL_POLL_EVENT_IC (1U << 8) /* IC (Incoming Connection) */ +# define SSL_POLL_EVENT_ISB (1U << 9) /* ISB (Incoming Stream: Bidi) */ +# define SSL_POLL_EVENT_ISU (1U << 10) /* ISU (Incoming Stream: Uni) */ +# define SSL_POLL_EVENT_OSB (1U << 11) /* OSB (Outgoing Stream: Bidi) */ +# define SSL_POLL_EVENT_OSU (1U << 12) /* OSU (Outgoing Stream: Uni) */ + +# define SSL_POLL_EVENT_RW (SSL_POLL_EVENT_R | SSL_POLL_EVENT_W) +# define SSL_POLL_EVENT_RE (SSL_POLL_EVENT_R | SSL_POLL_EVENT_ER) +# define SSL_POLL_EVENT_WE (SSL_POLL_EVENT_W | SSL_POLL_EVENT_EW) +# define SSL_POLL_EVENT_RWE (SSL_POLL_EVENT_RE | SSL_POLL_EVENT_WE) +# define SSL_POLL_EVENT_E (SSL_POLL_EVENT_EL | SSL_POLL_EVENT_EC \ + | SSL_POLL_EVENT_ER | SSL_POLL_EVENT_EW) +# define SSL_POLL_EVENT_IS (SSL_POLL_EVENT_ISB | SSL_POLL_EVENT_ISU) +# define SSL_POLL_EVENT_ISE (SSL_POLL_EVENT_IS | SSL_POLL_EVENT_EC) +# define SSL_POLL_EVENT_I (SSL_POLL_EVENT_IS | SSL_POLL_EVENT_IC) +# define SSL_POLL_EVENT_OS (SSL_POLL_EVENT_OSB | SSL_POLL_EVENT_OSU) +# define SSL_POLL_EVENT_OSE (SSL_POLL_EVENT_OS | SSL_POLL_EVENT_EC) + +typedef struct ssl_poll_item_st { + BIO_POLL_DESCRIPTOR desc; + uint64_t events, revents; +} SSL_POLL_ITEM; + +# define SSL_POLL_FLAG_NO_HANDLE_EVENTS (1U << 0) + +__owur int SSL_poll(SSL_POLL_ITEM *items, + size_t num_items, + size_t stride, + const struct timeval *timeout, + uint64_t flags, + size_t *result_count); + +static ossl_inline ossl_unused BIO_POLL_DESCRIPTOR +SSL_as_poll_descriptor(SSL *s) +{ + BIO_POLL_DESCRIPTOR d; + + d.type = BIO_POLL_DESCRIPTOR_TYPE_SSL; + d.value.ssl = s; + return d; +} + # ifndef OPENSSL_NO_DEPRECATED_1_1_0 # define SSL_cache_hit(s) SSL_session_reused(s) # endif @@ -2593,6 +2882,51 @@ void SSL_set_allow_early_data_cb(SSL *s, const char *OSSL_default_cipher_list(void); const char *OSSL_default_ciphersuites(void); +/* RFC8879 Certificate compression APIs */ + +int SSL_CTX_compress_certs(SSL_CTX *ctx, int alg); +int SSL_compress_certs(SSL *ssl, int alg); + +int SSL_CTX_set1_cert_comp_preference(SSL_CTX *ctx, int *algs, size_t len); +int SSL_set1_cert_comp_preference(SSL *ssl, int *algs, size_t len); + +int SSL_CTX_set1_compressed_cert(SSL_CTX *ctx, int algorithm, unsigned char *comp_data, + size_t comp_length, size_t orig_length); +int SSL_set1_compressed_cert(SSL *ssl, int algorithm, unsigned char *comp_data, + size_t comp_length, size_t orig_length); +size_t SSL_CTX_get1_compressed_cert(SSL_CTX *ctx, int alg, unsigned char **data, size_t *orig_len); +size_t SSL_get1_compressed_cert(SSL *ssl, int alg, unsigned char **data, size_t *orig_len); + +__owur int SSL_add_expected_rpk(SSL *s, EVP_PKEY *rpk); +__owur EVP_PKEY *SSL_get0_peer_rpk(const SSL *s); +__owur EVP_PKEY *SSL_SESSION_get0_peer_rpk(SSL_SESSION *s); +__owur int SSL_get_negotiated_client_cert_type(const SSL *s); +__owur int SSL_get_negotiated_server_cert_type(const SSL *s); + +__owur int SSL_set1_client_cert_type(SSL *s, const unsigned char *val, size_t len); +__owur int SSL_set1_server_cert_type(SSL *s, const unsigned char *val, size_t len); +__owur int SSL_CTX_set1_client_cert_type(SSL_CTX *ctx, const unsigned char *val, size_t len); +__owur int SSL_CTX_set1_server_cert_type(SSL_CTX *ctx, const unsigned char *val, size_t len); +__owur int SSL_get0_client_cert_type(const SSL *s, unsigned char **t, size_t *len); +__owur int SSL_get0_server_cert_type(const SSL *s, unsigned char **t, size_t *len); +__owur int SSL_CTX_get0_client_cert_type(const SSL_CTX *ctx, unsigned char **t, size_t *len); +__owur int SSL_CTX_get0_server_cert_type(const SSL_CTX *s, unsigned char **t, size_t *len); + +/* + * Protection level. For <= TLSv1.2 only "NONE" and "APPLICATION" are used. + */ +# define OSSL_RECORD_PROTECTION_LEVEL_NONE 0 +# define OSSL_RECORD_PROTECTION_LEVEL_EARLY 1 +# define OSSL_RECORD_PROTECTION_LEVEL_HANDSHAKE 2 +# define OSSL_RECORD_PROTECTION_LEVEL_APPLICATION 3 + +int SSL_set_quic_tls_cbs(SSL *s, const OSSL_DISPATCH *qtdis, void *arg); +int SSL_set_quic_tls_transport_params(SSL *s, + const unsigned char *params, + size_t params_len); + +int SSL_set_quic_tls_early_data_enabled(SSL *s, int enabled); + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/VC-WIN32/no-asm/include/openssl/x509.h b/deps/openssl/config/archs/VC-WIN32/no-asm/include/openssl/x509.h index 0f2353c821aa9b..5e9c548c48d65b 100644 --- a/deps/openssl/config/archs/VC-WIN32/no-asm/include/openssl/x509.h +++ b/deps/openssl/config/archs/VC-WIN32/no-asm/include/openssl/x509.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by makefile from include/openssl/x509.h.in * - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2024 The OpenSSL Project Authors. All Rights Reserved. * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved * * Licensed under the Apache License 2.0 (the "License"). You may not use @@ -40,6 +40,9 @@ # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -162,16 +165,24 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_CRL, X509_CRL, X509_CRL) # define X509_FILETYPE_ASN1 2 # define X509_FILETYPE_DEFAULT 3 -# define X509v3_KU_DIGITAL_SIGNATURE 0x0080 -# define X509v3_KU_NON_REPUDIATION 0x0040 -# define X509v3_KU_KEY_ENCIPHERMENT 0x0020 -# define X509v3_KU_DATA_ENCIPHERMENT 0x0010 -# define X509v3_KU_KEY_AGREEMENT 0x0008 -# define X509v3_KU_KEY_CERT_SIGN 0x0004 -# define X509v3_KU_CRL_SIGN 0x0002 -# define X509v3_KU_ENCIPHER_ONLY 0x0001 -# define X509v3_KU_DECIPHER_ONLY 0x8000 -# define X509v3_KU_UNDEF 0xffff +/*- + * : + * The KeyUsage BITSTRING is treated as a little-endian integer, hence bit `0` + * is 0x80, while bit `7` is 0x01 (the LSB of the integer value), bit `8` is + * then the MSB of the second octet, or 0x8000. + */ +# define X509v3_KU_DIGITAL_SIGNATURE 0x0080 /* (0) */ +# define X509v3_KU_NON_REPUDIATION 0x0040 /* (1) */ +# define X509v3_KU_KEY_ENCIPHERMENT 0x0020 /* (2) */ +# define X509v3_KU_DATA_ENCIPHERMENT 0x0010 /* (3) */ +# define X509v3_KU_KEY_AGREEMENT 0x0008 /* (4) */ +# define X509v3_KU_KEY_CERT_SIGN 0x0004 /* (5) */ +# define X509v3_KU_CRL_SIGN 0x0002 /* (6) */ +# define X509v3_KU_ENCIPHER_ONLY 0x0001 /* (7) */ +# define X509v3_KU_DECIPHER_ONLY 0x8000 /* (8) */ +# ifndef OPENSSL_NO_DEPRECATED_3_4 +# define X509v3_KU_UNDEF 0xffff /* vestigial, not used */ +# endif struct X509_algor_st { ASN1_OBJECT *algorithm; @@ -462,7 +473,12 @@ typedef struct PBKDF2PARAM_st { X509_ALGOR *prf; } PBKDF2PARAM; -#ifndef OPENSSL_NO_SCRYPT +typedef struct { + X509_ALGOR *keyDerivationFunc; + X509_ALGOR *messageAuthScheme; +} PBMAC1PARAM; + +# ifndef OPENSSL_NO_SCRYPT typedef struct SCRYPT_PARAMS_st { ASN1_OCTET_STRING *salt; ASN1_INTEGER *costParameter; @@ -470,7 +486,7 @@ typedef struct SCRYPT_PARAMS_st { ASN1_INTEGER *parallelizationParameter; ASN1_INTEGER *keyLength; } SCRYPT_PARAMS; -#endif +# endif #ifdef __cplusplus } @@ -603,6 +619,8 @@ EVP_PKEY *d2i_PrivateKey_ex_fp(FILE *fp, EVP_PKEY **a, OSSL_LIB_CTX *libctx, const char *propq); EVP_PKEY *d2i_PrivateKey_fp(FILE *fp, EVP_PKEY **a); int i2d_PUBKEY_fp(FILE *fp, const EVP_PKEY *pkey); +EVP_PKEY *d2i_PUBKEY_ex_fp(FILE *fp, EVP_PKEY **a, OSSL_LIB_CTX *libctx, + const char *propq); EVP_PKEY *d2i_PUBKEY_fp(FILE *fp, EVP_PKEY **a); # endif @@ -651,6 +669,8 @@ EVP_PKEY *d2i_PrivateKey_ex_bio(BIO *bp, EVP_PKEY **a, OSSL_LIB_CTX *libctx, const char *propq); EVP_PKEY *d2i_PrivateKey_bio(BIO *bp, EVP_PKEY **a); int i2d_PUBKEY_bio(BIO *bp, const EVP_PKEY *pkey); +EVP_PKEY *d2i_PUBKEY_ex_bio(BIO *bp, EVP_PKEY **a, OSSL_LIB_CTX *libctx, + const char *propq); EVP_PKEY *d2i_PUBKEY_bio(BIO *bp, EVP_PKEY **a); DECLARE_ASN1_DUP_FUNCTION(X509) @@ -884,12 +904,12 @@ int X509_REQ_get_signature_nid(const X509_REQ *req); int i2d_re_X509_REQ_tbs(X509_REQ *req, unsigned char **pp); int X509_REQ_set_pubkey(X509_REQ *x, EVP_PKEY *pkey); EVP_PKEY *X509_REQ_get_pubkey(X509_REQ *req); -EVP_PKEY *X509_REQ_get0_pubkey(X509_REQ *req); +EVP_PKEY *X509_REQ_get0_pubkey(const X509_REQ *req); X509_PUBKEY *X509_REQ_get_X509_PUBKEY(X509_REQ *req); int X509_REQ_extension_nid(int nid); int *X509_REQ_get_extension_nids(void); void X509_REQ_set_extension_nids(int *nids); -STACK_OF(X509_EXTENSION) *X509_REQ_get_extensions(X509_REQ *req); +STACK_OF(X509_EXTENSION) *X509_REQ_get_extensions(OSSL_FUTURE_CONST X509_REQ *req); int X509_REQ_add_extensions_nid(X509_REQ *req, const STACK_OF(X509_EXTENSION) *exts, int nid); int X509_REQ_add_extensions(X509_REQ *req, const STACK_OF(X509_EXTENSION) *ext); @@ -950,13 +970,14 @@ X509_REVOKED_get0_extensions(const X509_REVOKED *r); X509_CRL *X509_CRL_diff(X509_CRL *base, X509_CRL *newer, EVP_PKEY *skey, const EVP_MD *md, unsigned int flags); -int X509_REQ_check_private_key(X509_REQ *x509, EVP_PKEY *pkey); +int X509_REQ_check_private_key(const X509_REQ *req, EVP_PKEY *pkey); -int X509_check_private_key(const X509 *x509, const EVP_PKEY *pkey); +int X509_check_private_key(const X509 *cert, const EVP_PKEY *pkey); int X509_chain_check_suiteb(int *perror_depth, X509 *x, STACK_OF(X509) *chain, unsigned long flags); int X509_CRL_check_suiteb(X509_CRL *crl, EVP_PKEY *pk, unsigned long flags); +void OSSL_STACK_OF_X509_free(STACK_OF(X509) *certs); STACK_OF(X509) *X509_chain_up_ref(STACK_OF(X509) *chain); int X509_issuer_and_serial_cmp(const X509 *a, const X509 *b); @@ -1077,6 +1098,8 @@ X509_EXTENSION *X509v3_get_ext(const STACK_OF(X509_EXTENSION) *x, int loc); X509_EXTENSION *X509v3_delete_ext(STACK_OF(X509_EXTENSION) *x, int loc); STACK_OF(X509_EXTENSION) *X509v3_add_ext(STACK_OF(X509_EXTENSION) **x, X509_EXTENSION *ex, int loc); +STACK_OF(X509_EXTENSION) *X509v3_add_extensions(STACK_OF(X509_EXTENSION) **target, + const STACK_OF(X509_EXTENSION) *exts); int X509_get_ext_count(const X509 *x); int X509_get_ext_by_NID(const X509 *x, int nid, int lastpos); @@ -1198,9 +1221,10 @@ X509 *X509_find_by_subject(STACK_OF(X509) *sk, const X509_NAME *name); DECLARE_ASN1_FUNCTIONS(PBEPARAM) DECLARE_ASN1_FUNCTIONS(PBE2PARAM) DECLARE_ASN1_FUNCTIONS(PBKDF2PARAM) -#ifndef OPENSSL_NO_SCRYPT +DECLARE_ASN1_FUNCTIONS(PBMAC1PARAM) +# ifndef OPENSSL_NO_SCRYPT DECLARE_ASN1_FUNCTIONS(SCRYPT_PARAMS) -#endif +# endif int PKCS5_pbe_set0_algor(X509_ALGOR *algor, int alg, int iter, const unsigned char *salt, int saltlen); @@ -1237,6 +1261,7 @@ X509_ALGOR *PKCS5_pbkdf2_set_ex(int iter, unsigned char *salt, int saltlen, int prf_nid, int keylen, OSSL_LIB_CTX *libctx); +PBKDF2PARAM *PBMAC1_get1_pbkdf2_param(const X509_ALGOR *macalg); /* PKCS#8 utilities */ DECLARE_ASN1_FUNCTIONS(PKCS8_PRIV_KEY_INFO) @@ -1262,6 +1287,8 @@ int PKCS8_pkey_add1_attr_by_OBJ(PKCS8_PRIV_KEY_INFO *p8, const ASN1_OBJECT *obj, int type, const unsigned char *bytes, int len); +void X509_PUBKEY_set0_public_key(X509_PUBKEY *pub, + unsigned char *penc, int penclen); int X509_PUBKEY_set0_param(X509_PUBKEY *pub, ASN1_OBJECT *aobj, int ptype, void *pval, unsigned char *penc, int penclen); diff --git a/deps/openssl/config/archs/VC-WIN32/no-asm/include/openssl/x509_acert.h b/deps/openssl/config/archs/VC-WIN32/no-asm/include/openssl/x509_acert.h new file mode 100644 index 00000000000000..efae82c8f6b635 --- /dev/null +++ b/deps/openssl/config/archs/VC-WIN32/no-asm/include/openssl/x509_acert.h @@ -0,0 +1,294 @@ +/* + * WARNING: do not edit! + * Generated by makefile from include/openssl/x509_acert.h.in + * + * Copyright 2022-2024 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + + +#ifndef OPENSSL_X509_ACERT_H +# define OPENSSL_X509_ACERT_H +# pragma once + +# include +# include +# include + +typedef struct X509_acert_st X509_ACERT; +typedef struct X509_acert_info_st X509_ACERT_INFO; +typedef struct ossl_object_digest_info_st OSSL_OBJECT_DIGEST_INFO; +typedef struct ossl_issuer_serial_st OSSL_ISSUER_SERIAL; +typedef struct X509_acert_issuer_v2form_st X509_ACERT_ISSUER_V2FORM; + +DECLARE_ASN1_FUNCTIONS(X509_ACERT) +DECLARE_ASN1_DUP_FUNCTION(X509_ACERT) +DECLARE_ASN1_ITEM(X509_ACERT_INFO) +DECLARE_ASN1_ALLOC_FUNCTIONS(X509_ACERT_INFO) +DECLARE_ASN1_ALLOC_FUNCTIONS(OSSL_OBJECT_DIGEST_INFO) +DECLARE_ASN1_ALLOC_FUNCTIONS(OSSL_ISSUER_SERIAL) +DECLARE_ASN1_ALLOC_FUNCTIONS(X509_ACERT_ISSUER_V2FORM) + +# ifndef OPENSSL_NO_STDIO +X509_ACERT *d2i_X509_ACERT_fp(FILE *fp, X509_ACERT **acert); +int i2d_X509_ACERT_fp(FILE *fp, const X509_ACERT *acert); +# endif + +DECLARE_PEM_rw(X509_ACERT, X509_ACERT) + +X509_ACERT *d2i_X509_ACERT_bio(BIO *bp, X509_ACERT **acert); +int i2d_X509_ACERT_bio(BIO *bp, const X509_ACERT *acert); + +int X509_ACERT_sign(X509_ACERT *x, EVP_PKEY *pkey, const EVP_MD *md); +int X509_ACERT_sign_ctx(X509_ACERT *x, EVP_MD_CTX *ctx); +int X509_ACERT_verify(X509_ACERT *a, EVP_PKEY *r); + +# define X509_ACERT_VERSION_2 1 + +const GENERAL_NAMES *X509_ACERT_get0_holder_entityName(const X509_ACERT *x); +const OSSL_ISSUER_SERIAL *X509_ACERT_get0_holder_baseCertId(const X509_ACERT *x); +const OSSL_OBJECT_DIGEST_INFO * X509_ACERT_get0_holder_digest(const X509_ACERT *x); +const X509_NAME *X509_ACERT_get0_issuerName(const X509_ACERT *x); +long X509_ACERT_get_version(const X509_ACERT *x); +void X509_ACERT_get0_signature(const X509_ACERT *x, + const ASN1_BIT_STRING **psig, + const X509_ALGOR **palg); +int X509_ACERT_get_signature_nid(const X509_ACERT *x); +const X509_ALGOR *X509_ACERT_get0_info_sigalg(const X509_ACERT *x); +const ASN1_INTEGER *X509_ACERT_get0_serialNumber(const X509_ACERT *x); +const ASN1_TIME *X509_ACERT_get0_notBefore(const X509_ACERT *x); +const ASN1_TIME *X509_ACERT_get0_notAfter(const X509_ACERT *x); +const ASN1_BIT_STRING *X509_ACERT_get0_issuerUID(const X509_ACERT *x); + +int X509_ACERT_print(BIO *bp, X509_ACERT *x); +int X509_ACERT_print_ex(BIO *bp, X509_ACERT *x, unsigned long nmflags, + unsigned long cflag); + +int X509_ACERT_get_attr_count(const X509_ACERT *x); +int X509_ACERT_get_attr_by_NID(const X509_ACERT *x, int nid, int lastpos); +int X509_ACERT_get_attr_by_OBJ(const X509_ACERT *x, const ASN1_OBJECT *obj, + int lastpos); +X509_ATTRIBUTE *X509_ACERT_get_attr(const X509_ACERT *x, int loc); +X509_ATTRIBUTE *X509_ACERT_delete_attr(X509_ACERT *x, int loc); + +void *X509_ACERT_get_ext_d2i(const X509_ACERT *x, int nid, int *crit, int *idx); +int X509_ACERT_add1_ext_i2d(X509_ACERT *x, int nid, void *value, int crit, + unsigned long flags); +const STACK_OF(X509_EXTENSION) *X509_ACERT_get0_extensions(const X509_ACERT *x); + +# define OSSL_OBJECT_DIGEST_INFO_PUBLIC_KEY 0 +# define OSSL_OBJECT_DIGEST_INFO_PUBLIC_KEY_CERT 1 +# define OSSL_OBJECT_DIGEST_INFO_OTHER 2 /* must not be used in RFC 5755 profile */ +int X509_ACERT_set_version(X509_ACERT *x, long version); +void X509_ACERT_set0_holder_entityName(X509_ACERT *x, GENERAL_NAMES *name); +void X509_ACERT_set0_holder_baseCertId(X509_ACERT *x, OSSL_ISSUER_SERIAL *isss); +void X509_ACERT_set0_holder_digest(X509_ACERT *x, + OSSL_OBJECT_DIGEST_INFO *dinfo); + +int X509_ACERT_add1_attr(X509_ACERT *x, X509_ATTRIBUTE *attr); +int X509_ACERT_add1_attr_by_OBJ(X509_ACERT *x, const ASN1_OBJECT *obj, + int type, const void *bytes, int len); +int X509_ACERT_add1_attr_by_NID(X509_ACERT *x, int nid, int type, + const void *bytes, int len); +int X509_ACERT_add1_attr_by_txt(X509_ACERT *x, const char *attrname, int type, + const unsigned char *bytes, int len); +int X509_ACERT_add_attr_nconf(CONF *conf, const char *section, + X509_ACERT *acert); + +int X509_ACERT_set1_issuerName(X509_ACERT *x, const X509_NAME *name); +int X509_ACERT_set1_serialNumber(X509_ACERT *x, const ASN1_INTEGER *serial); +int X509_ACERT_set1_notBefore(X509_ACERT *x, const ASN1_GENERALIZEDTIME *time); +int X509_ACERT_set1_notAfter(X509_ACERT *x, const ASN1_GENERALIZEDTIME *time); + +void OSSL_OBJECT_DIGEST_INFO_get0_digest(const OSSL_OBJECT_DIGEST_INFO *o, + int *digestedObjectType, + const X509_ALGOR **digestAlgorithm, + const ASN1_BIT_STRING **digest); + +int OSSL_OBJECT_DIGEST_INFO_set1_digest(OSSL_OBJECT_DIGEST_INFO *o, + int digestedObjectType, + X509_ALGOR *digestAlgorithm, + ASN1_BIT_STRING *digest); + +const X509_NAME *OSSL_ISSUER_SERIAL_get0_issuer(const OSSL_ISSUER_SERIAL *isss); +const ASN1_INTEGER *OSSL_ISSUER_SERIAL_get0_serial(const OSSL_ISSUER_SERIAL *isss); +const ASN1_BIT_STRING *OSSL_ISSUER_SERIAL_get0_issuerUID(const OSSL_ISSUER_SERIAL *isss); + +int OSSL_ISSUER_SERIAL_set1_issuer(OSSL_ISSUER_SERIAL *isss, + const X509_NAME *issuer); +int OSSL_ISSUER_SERIAL_set1_serial(OSSL_ISSUER_SERIAL *isss, + const ASN1_INTEGER *serial); +int OSSL_ISSUER_SERIAL_set1_issuerUID(OSSL_ISSUER_SERIAL *isss, + const ASN1_BIT_STRING *uid); + +# define OSSL_IETFAS_OCTETS 0 +# define OSSL_IETFAS_OID 1 +# define OSSL_IETFAS_STRING 2 + +typedef struct OSSL_IETF_ATTR_SYNTAX_VALUE_st OSSL_IETF_ATTR_SYNTAX_VALUE; +typedef struct OSSL_IETF_ATTR_SYNTAX_st OSSL_IETF_ATTR_SYNTAX; +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_IETF_ATTR_SYNTAX_VALUE, OSSL_IETF_ATTR_SYNTAX_VALUE, OSSL_IETF_ATTR_SYNTAX_VALUE) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_value(sk, idx) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_value(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), (idx))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_new(cmp) ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_new(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_compfunc_type(cmp))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_new_null() ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_new_null()) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_new_reserve(cmp, n) ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_compfunc_type(cmp), (n))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), (n)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_free(sk) OPENSSL_sk_free(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_delete(sk, i) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_delete(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), (i))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_delete_ptr(sk, ptr) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_pop(sk) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_pop(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_shift(sk) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_shift(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk),ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_freefunc_type(freefunc)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr), (idx)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_set(sk, idx, ptr) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_set(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), (idx), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr), pnum) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_dup(sk) ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_dup(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_copyfunc_type(copyfunc), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_freefunc_type(freefunc))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_set_cmp_func(sk, cmp) ((sk_OSSL_IETF_ATTR_SYNTAX_VALUE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_compfunc_type(cmp))) + + +DECLARE_ASN1_ITEM(OSSL_IETF_ATTR_SYNTAX_VALUE) +DECLARE_ASN1_ALLOC_FUNCTIONS(OSSL_IETF_ATTR_SYNTAX_VALUE) +DECLARE_ASN1_FUNCTIONS(OSSL_IETF_ATTR_SYNTAX) + +const GENERAL_NAMES * +OSSL_IETF_ATTR_SYNTAX_get0_policyAuthority(const OSSL_IETF_ATTR_SYNTAX *a); +void OSSL_IETF_ATTR_SYNTAX_set0_policyAuthority(OSSL_IETF_ATTR_SYNTAX *a, + GENERAL_NAMES *names); + +int OSSL_IETF_ATTR_SYNTAX_get_value_num(const OSSL_IETF_ATTR_SYNTAX *a); +void *OSSL_IETF_ATTR_SYNTAX_get0_value(const OSSL_IETF_ATTR_SYNTAX *a, + int ind, int *type); +int OSSL_IETF_ATTR_SYNTAX_add1_value(OSSL_IETF_ATTR_SYNTAX *a, int type, + void *data); +int OSSL_IETF_ATTR_SYNTAX_print(BIO *bp, OSSL_IETF_ATTR_SYNTAX *a, int indent); + +struct TARGET_CERT_st { + OSSL_ISSUER_SERIAL *targetCertificate; + GENERAL_NAME *targetName; + OSSL_OBJECT_DIGEST_INFO *certDigestInfo; +}; + +typedef struct TARGET_CERT_st OSSL_TARGET_CERT; + +# define OSSL_TGT_TARGET_NAME 0 +# define OSSL_TGT_TARGET_GROUP 1 +# define OSSL_TGT_TARGET_CERT 2 + +typedef struct TARGET_st { + int type; + union { + GENERAL_NAME *targetName; + GENERAL_NAME *targetGroup; + OSSL_TARGET_CERT *targetCert; + } choice; +} OSSL_TARGET; + +typedef STACK_OF(OSSL_TARGET) OSSL_TARGETS; +typedef STACK_OF(OSSL_TARGETS) OSSL_TARGETING_INFORMATION; + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_TARGET, OSSL_TARGET, OSSL_TARGET) +#define sk_OSSL_TARGET_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_value(sk, idx) ((OSSL_TARGET *)OPENSSL_sk_value(ossl_check_const_OSSL_TARGET_sk_type(sk), (idx))) +#define sk_OSSL_TARGET_new(cmp) ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_new(ossl_check_OSSL_TARGET_compfunc_type(cmp))) +#define sk_OSSL_TARGET_new_null() ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_new_null()) +#define sk_OSSL_TARGET_new_reserve(cmp, n) ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_TARGET_compfunc_type(cmp), (n))) +#define sk_OSSL_TARGET_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_TARGET_sk_type(sk), (n)) +#define sk_OSSL_TARGET_free(sk) OPENSSL_sk_free(ossl_check_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_delete(sk, i) ((OSSL_TARGET *)OPENSSL_sk_delete(ossl_check_OSSL_TARGET_sk_type(sk), (i))) +#define sk_OSSL_TARGET_delete_ptr(sk, ptr) ((OSSL_TARGET *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr))) +#define sk_OSSL_TARGET_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr)) +#define sk_OSSL_TARGET_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr)) +#define sk_OSSL_TARGET_pop(sk) ((OSSL_TARGET *)OPENSSL_sk_pop(ossl_check_OSSL_TARGET_sk_type(sk))) +#define sk_OSSL_TARGET_shift(sk) ((OSSL_TARGET *)OPENSSL_sk_shift(ossl_check_OSSL_TARGET_sk_type(sk))) +#define sk_OSSL_TARGET_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_TARGET_sk_type(sk),ossl_check_OSSL_TARGET_freefunc_type(freefunc)) +#define sk_OSSL_TARGET_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr), (idx)) +#define sk_OSSL_TARGET_set(sk, idx, ptr) ((OSSL_TARGET *)OPENSSL_sk_set(ossl_check_OSSL_TARGET_sk_type(sk), (idx), ossl_check_OSSL_TARGET_type(ptr))) +#define sk_OSSL_TARGET_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr)) +#define sk_OSSL_TARGET_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr)) +#define sk_OSSL_TARGET_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr), pnum) +#define sk_OSSL_TARGET_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_dup(sk) ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_dup(ossl_check_const_OSSL_TARGET_sk_type(sk))) +#define sk_OSSL_TARGET_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_copyfunc_type(copyfunc), ossl_check_OSSL_TARGET_freefunc_type(freefunc))) +#define sk_OSSL_TARGET_set_cmp_func(sk, cmp) ((sk_OSSL_TARGET_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_compfunc_type(cmp))) + + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_TARGETS, OSSL_TARGETS, OSSL_TARGETS) +#define sk_OSSL_TARGETS_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_value(sk, idx) ((OSSL_TARGETS *)OPENSSL_sk_value(ossl_check_const_OSSL_TARGETS_sk_type(sk), (idx))) +#define sk_OSSL_TARGETS_new(cmp) ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_new(ossl_check_OSSL_TARGETS_compfunc_type(cmp))) +#define sk_OSSL_TARGETS_new_null() ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_new_null()) +#define sk_OSSL_TARGETS_new_reserve(cmp, n) ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_TARGETS_compfunc_type(cmp), (n))) +#define sk_OSSL_TARGETS_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_TARGETS_sk_type(sk), (n)) +#define sk_OSSL_TARGETS_free(sk) OPENSSL_sk_free(ossl_check_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_delete(sk, i) ((OSSL_TARGETS *)OPENSSL_sk_delete(ossl_check_OSSL_TARGETS_sk_type(sk), (i))) +#define sk_OSSL_TARGETS_delete_ptr(sk, ptr) ((OSSL_TARGETS *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr))) +#define sk_OSSL_TARGETS_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr)) +#define sk_OSSL_TARGETS_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr)) +#define sk_OSSL_TARGETS_pop(sk) ((OSSL_TARGETS *)OPENSSL_sk_pop(ossl_check_OSSL_TARGETS_sk_type(sk))) +#define sk_OSSL_TARGETS_shift(sk) ((OSSL_TARGETS *)OPENSSL_sk_shift(ossl_check_OSSL_TARGETS_sk_type(sk))) +#define sk_OSSL_TARGETS_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_TARGETS_sk_type(sk),ossl_check_OSSL_TARGETS_freefunc_type(freefunc)) +#define sk_OSSL_TARGETS_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr), (idx)) +#define sk_OSSL_TARGETS_set(sk, idx, ptr) ((OSSL_TARGETS *)OPENSSL_sk_set(ossl_check_OSSL_TARGETS_sk_type(sk), (idx), ossl_check_OSSL_TARGETS_type(ptr))) +#define sk_OSSL_TARGETS_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr)) +#define sk_OSSL_TARGETS_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr)) +#define sk_OSSL_TARGETS_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr), pnum) +#define sk_OSSL_TARGETS_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_dup(sk) ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_dup(ossl_check_const_OSSL_TARGETS_sk_type(sk))) +#define sk_OSSL_TARGETS_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_copyfunc_type(copyfunc), ossl_check_OSSL_TARGETS_freefunc_type(freefunc))) +#define sk_OSSL_TARGETS_set_cmp_func(sk, cmp) ((sk_OSSL_TARGETS_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_compfunc_type(cmp))) + + +DECLARE_ASN1_FUNCTIONS(OSSL_TARGET) +DECLARE_ASN1_FUNCTIONS(OSSL_TARGETS) +DECLARE_ASN1_FUNCTIONS(OSSL_TARGETING_INFORMATION) + +typedef STACK_OF(OSSL_ISSUER_SERIAL) OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX; +DECLARE_ASN1_FUNCTIONS(OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ISSUER_SERIAL, OSSL_ISSUER_SERIAL, OSSL_ISSUER_SERIAL) +#define sk_OSSL_ISSUER_SERIAL_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_value(sk, idx) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_value(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk), (idx))) +#define sk_OSSL_ISSUER_SERIAL_new(cmp) ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_new(ossl_check_OSSL_ISSUER_SERIAL_compfunc_type(cmp))) +#define sk_OSSL_ISSUER_SERIAL_new_null() ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ISSUER_SERIAL_new_reserve(cmp, n) ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ISSUER_SERIAL_compfunc_type(cmp), (n))) +#define sk_OSSL_ISSUER_SERIAL_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), (n)) +#define sk_OSSL_ISSUER_SERIAL_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_delete(sk, i) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_delete(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), (i))) +#define sk_OSSL_ISSUER_SERIAL_delete_ptr(sk, ptr) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr))) +#define sk_OSSL_ISSUER_SERIAL_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr)) +#define sk_OSSL_ISSUER_SERIAL_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr)) +#define sk_OSSL_ISSUER_SERIAL_pop(sk) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_pop(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk))) +#define sk_OSSL_ISSUER_SERIAL_shift(sk) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_shift(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk))) +#define sk_OSSL_ISSUER_SERIAL_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk),ossl_check_OSSL_ISSUER_SERIAL_freefunc_type(freefunc)) +#define sk_OSSL_ISSUER_SERIAL_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr), (idx)) +#define sk_OSSL_ISSUER_SERIAL_set(sk, idx, ptr) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_set(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), (idx), ossl_check_OSSL_ISSUER_SERIAL_type(ptr))) +#define sk_OSSL_ISSUER_SERIAL_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr)) +#define sk_OSSL_ISSUER_SERIAL_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr)) +#define sk_OSSL_ISSUER_SERIAL_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr), pnum) +#define sk_OSSL_ISSUER_SERIAL_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_dup(sk) ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk))) +#define sk_OSSL_ISSUER_SERIAL_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_copyfunc_type(copyfunc), ossl_check_OSSL_ISSUER_SERIAL_freefunc_type(freefunc))) +#define sk_OSSL_ISSUER_SERIAL_set_cmp_func(sk, cmp) ((sk_OSSL_ISSUER_SERIAL_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_compfunc_type(cmp))) + + +#endif diff --git a/deps/openssl/config/archs/VC-WIN32/no-asm/include/openssl/x509_vfy.h b/deps/openssl/config/archs/VC-WIN32/no-asm/include/openssl/x509_vfy.h index f571187265cfc9..f08a134b17b7db 100644 --- a/deps/openssl/config/archs/VC-WIN32/no-asm/include/openssl/x509_vfy.h +++ b/deps/openssl/config/archs/VC-WIN32/no-asm/include/openssl/x509_vfy.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by makefile from include/openssl/x509_vfy.h.in * - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -411,6 +411,7 @@ X509_LOOKUP_ctrl_ex((x), X509_L_ADD_STORE, (name), 0, NULL, \ # define X509_V_ERR_CA_CERT_MISSING_KEY_USAGE 92 # define X509_V_ERR_EXTENSIONS_REQUIRE_VERSION_3 93 # define X509_V_ERR_EC_KEY_EXPLICIT_PARAMS 94 +# define X509_V_ERR_RPK_UNTRUSTED 95 /* Certificate verify flags */ # ifndef OPENSSL_NO_DEPRECATED_1_1_0 @@ -491,71 +492,72 @@ int X509_OBJECT_set1_X509(X509_OBJECT *a, X509 *obj); X509_CRL *X509_OBJECT_get0_X509_CRL(const X509_OBJECT *a); int X509_OBJECT_set1_X509_CRL(X509_OBJECT *a, X509_CRL *obj); X509_STORE *X509_STORE_new(void); -void X509_STORE_free(X509_STORE *v); -int X509_STORE_lock(X509_STORE *ctx); -int X509_STORE_unlock(X509_STORE *ctx); -int X509_STORE_up_ref(X509_STORE *v); -STACK_OF(X509_OBJECT) *X509_STORE_get0_objects(const X509_STORE *v); -STACK_OF(X509) *X509_STORE_get1_all_certs(X509_STORE *st); -STACK_OF(X509) *X509_STORE_CTX_get1_certs(X509_STORE_CTX *st, +void X509_STORE_free(X509_STORE *xs); +int X509_STORE_lock(X509_STORE *xs); +int X509_STORE_unlock(X509_STORE *xs); +int X509_STORE_up_ref(X509_STORE *xs); +STACK_OF(X509_OBJECT) *X509_STORE_get0_objects(const X509_STORE *xs); +STACK_OF(X509_OBJECT) *X509_STORE_get1_objects(X509_STORE *xs); +STACK_OF(X509) *X509_STORE_get1_all_certs(X509_STORE *xs); +STACK_OF(X509) *X509_STORE_CTX_get1_certs(X509_STORE_CTX *xs, const X509_NAME *nm); STACK_OF(X509_CRL) *X509_STORE_CTX_get1_crls(const X509_STORE_CTX *st, const X509_NAME *nm); -int X509_STORE_set_flags(X509_STORE *ctx, unsigned long flags); -int X509_STORE_set_purpose(X509_STORE *ctx, int purpose); -int X509_STORE_set_trust(X509_STORE *ctx, int trust); -int X509_STORE_set1_param(X509_STORE *ctx, const X509_VERIFY_PARAM *pm); -X509_VERIFY_PARAM *X509_STORE_get0_param(const X509_STORE *ctx); +int X509_STORE_set_flags(X509_STORE *xs, unsigned long flags); +int X509_STORE_set_purpose(X509_STORE *xs, int purpose); +int X509_STORE_set_trust(X509_STORE *xs, int trust); +int X509_STORE_set1_param(X509_STORE *xs, const X509_VERIFY_PARAM *pm); +X509_VERIFY_PARAM *X509_STORE_get0_param(const X509_STORE *xs); -void X509_STORE_set_verify(X509_STORE *ctx, X509_STORE_CTX_verify_fn verify); +void X509_STORE_set_verify(X509_STORE *xs, X509_STORE_CTX_verify_fn verify); #define X509_STORE_set_verify_func(ctx, func) \ X509_STORE_set_verify((ctx),(func)) void X509_STORE_CTX_set_verify(X509_STORE_CTX *ctx, X509_STORE_CTX_verify_fn verify); -X509_STORE_CTX_verify_fn X509_STORE_get_verify(const X509_STORE *ctx); -void X509_STORE_set_verify_cb(X509_STORE *ctx, +X509_STORE_CTX_verify_fn X509_STORE_get_verify(const X509_STORE *xs); +void X509_STORE_set_verify_cb(X509_STORE *xs, X509_STORE_CTX_verify_cb verify_cb); # define X509_STORE_set_verify_cb_func(ctx,func) \ X509_STORE_set_verify_cb((ctx),(func)) -X509_STORE_CTX_verify_cb X509_STORE_get_verify_cb(const X509_STORE *ctx); -void X509_STORE_set_get_issuer(X509_STORE *ctx, +X509_STORE_CTX_verify_cb X509_STORE_get_verify_cb(const X509_STORE *xs); +void X509_STORE_set_get_issuer(X509_STORE *xs, X509_STORE_CTX_get_issuer_fn get_issuer); -X509_STORE_CTX_get_issuer_fn X509_STORE_get_get_issuer(const X509_STORE *ctx); -void X509_STORE_set_check_issued(X509_STORE *ctx, +X509_STORE_CTX_get_issuer_fn X509_STORE_get_get_issuer(const X509_STORE *xs); +void X509_STORE_set_check_issued(X509_STORE *xs, X509_STORE_CTX_check_issued_fn check_issued); -X509_STORE_CTX_check_issued_fn X509_STORE_get_check_issued(const X509_STORE *ctx); -void X509_STORE_set_check_revocation(X509_STORE *ctx, +X509_STORE_CTX_check_issued_fn X509_STORE_get_check_issued(const X509_STORE *s); +void X509_STORE_set_check_revocation(X509_STORE *xs, X509_STORE_CTX_check_revocation_fn check_revocation); X509_STORE_CTX_check_revocation_fn - X509_STORE_get_check_revocation(const X509_STORE *ctx); -void X509_STORE_set_get_crl(X509_STORE *ctx, + X509_STORE_get_check_revocation(const X509_STORE *xs); +void X509_STORE_set_get_crl(X509_STORE *xs, X509_STORE_CTX_get_crl_fn get_crl); -X509_STORE_CTX_get_crl_fn X509_STORE_get_get_crl(const X509_STORE *ctx); -void X509_STORE_set_check_crl(X509_STORE *ctx, +X509_STORE_CTX_get_crl_fn X509_STORE_get_get_crl(const X509_STORE *xs); +void X509_STORE_set_check_crl(X509_STORE *xs, X509_STORE_CTX_check_crl_fn check_crl); -X509_STORE_CTX_check_crl_fn X509_STORE_get_check_crl(const X509_STORE *ctx); -void X509_STORE_set_cert_crl(X509_STORE *ctx, +X509_STORE_CTX_check_crl_fn X509_STORE_get_check_crl(const X509_STORE *xs); +void X509_STORE_set_cert_crl(X509_STORE *xs, X509_STORE_CTX_cert_crl_fn cert_crl); -X509_STORE_CTX_cert_crl_fn X509_STORE_get_cert_crl(const X509_STORE *ctx); -void X509_STORE_set_check_policy(X509_STORE *ctx, +X509_STORE_CTX_cert_crl_fn X509_STORE_get_cert_crl(const X509_STORE *xs); +void X509_STORE_set_check_policy(X509_STORE *xs, X509_STORE_CTX_check_policy_fn check_policy); -X509_STORE_CTX_check_policy_fn X509_STORE_get_check_policy(const X509_STORE *ctx); -void X509_STORE_set_lookup_certs(X509_STORE *ctx, +X509_STORE_CTX_check_policy_fn X509_STORE_get_check_policy(const X509_STORE *s); +void X509_STORE_set_lookup_certs(X509_STORE *xs, X509_STORE_CTX_lookup_certs_fn lookup_certs); -X509_STORE_CTX_lookup_certs_fn X509_STORE_get_lookup_certs(const X509_STORE *ctx); -void X509_STORE_set_lookup_crls(X509_STORE *ctx, +X509_STORE_CTX_lookup_certs_fn X509_STORE_get_lookup_certs(const X509_STORE *s); +void X509_STORE_set_lookup_crls(X509_STORE *xs, X509_STORE_CTX_lookup_crls_fn lookup_crls); #define X509_STORE_set_lookup_crls_cb(ctx, func) \ X509_STORE_set_lookup_crls((ctx), (func)) -X509_STORE_CTX_lookup_crls_fn X509_STORE_get_lookup_crls(const X509_STORE *ctx); -void X509_STORE_set_cleanup(X509_STORE *ctx, +X509_STORE_CTX_lookup_crls_fn X509_STORE_get_lookup_crls(const X509_STORE *xs); +void X509_STORE_set_cleanup(X509_STORE *xs, X509_STORE_CTX_cleanup_fn cleanup); -X509_STORE_CTX_cleanup_fn X509_STORE_get_cleanup(const X509_STORE *ctx); +X509_STORE_CTX_cleanup_fn X509_STORE_get_cleanup(const X509_STORE *xs); #define X509_STORE_get_ex_new_index(l, p, newf, dupf, freef) \ CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_X509_STORE, l, p, newf, dupf, freef) -int X509_STORE_set_ex_data(X509_STORE *ctx, int idx, void *data); -void *X509_STORE_get_ex_data(const X509_STORE *ctx, int idx); +int X509_STORE_set_ex_data(X509_STORE *xs, int idx, void *data); +void *X509_STORE_get_ex_data(const X509_STORE *xs, int idx); X509_STORE_CTX *X509_STORE_CTX_new_ex(OSSL_LIB_CTX *libctx, const char *propq); X509_STORE_CTX *X509_STORE_CTX_new(void); @@ -565,11 +567,14 @@ int X509_STORE_CTX_get1_issuer(X509 **issuer, X509_STORE_CTX *ctx, X509 *x); void X509_STORE_CTX_free(X509_STORE_CTX *ctx); int X509_STORE_CTX_init(X509_STORE_CTX *ctx, X509_STORE *trust_store, X509 *target, STACK_OF(X509) *untrusted); +int X509_STORE_CTX_init_rpk(X509_STORE_CTX *ctx, X509_STORE *trust_store, + EVP_PKEY* rpk); void X509_STORE_CTX_set0_trusted_stack(X509_STORE_CTX *ctx, STACK_OF(X509) *sk); void X509_STORE_CTX_cleanup(X509_STORE_CTX *ctx); X509_STORE *X509_STORE_CTX_get0_store(const X509_STORE_CTX *ctx); X509 *X509_STORE_CTX_get0_cert(const X509_STORE_CTX *ctx); +EVP_PKEY *X509_STORE_CTX_get0_rpk(const X509_STORE_CTX *ctx); STACK_OF(X509)* X509_STORE_CTX_get0_untrusted(const X509_STORE_CTX *ctx); void X509_STORE_CTX_set0_untrusted(X509_STORE_CTX *ctx, STACK_OF(X509) *sk); void X509_STORE_CTX_set_verify_cb(X509_STORE_CTX *ctx, @@ -579,6 +584,8 @@ X509_STORE_CTX_verify_fn X509_STORE_CTX_get_verify(const X509_STORE_CTX *ctx); X509_STORE_CTX_get_issuer_fn X509_STORE_CTX_get_get_issuer(const X509_STORE_CTX *ctx); X509_STORE_CTX_check_issued_fn X509_STORE_CTX_get_check_issued(const X509_STORE_CTX *ctx); X509_STORE_CTX_check_revocation_fn X509_STORE_CTX_get_check_revocation(const X509_STORE_CTX *ctx); +void X509_STORE_CTX_set_get_crl(X509_STORE_CTX *ctx, + X509_STORE_CTX_get_crl_fn get_crl); X509_STORE_CTX_get_crl_fn X509_STORE_CTX_get_get_crl(const X509_STORE_CTX *ctx); X509_STORE_CTX_check_crl_fn X509_STORE_CTX_get_check_crl(const X509_STORE_CTX *ctx); X509_STORE_CTX_cert_crl_fn X509_STORE_CTX_get_cert_crl(const X509_STORE_CTX *ctx); @@ -600,7 +607,7 @@ X509_STORE_CTX_cleanup_fn X509_STORE_CTX_get_cleanup(const X509_STORE_CTX *ctx); # define X509_STORE_get1_crl X509_STORE_CTX_get1_crls #endif -X509_LOOKUP *X509_STORE_add_lookup(X509_STORE *v, X509_LOOKUP_METHOD *m); +X509_LOOKUP *X509_STORE_add_lookup(X509_STORE *xs, X509_LOOKUP_METHOD *m); X509_LOOKUP_METHOD *X509_LOOKUP_hash_dir(void); X509_LOOKUP_METHOD *X509_LOOKUP_file(void); X509_LOOKUP_METHOD *X509_LOOKUP_store(void); @@ -685,8 +692,8 @@ X509_LOOKUP_get_by_alias_fn X509_LOOKUP_meth_get_get_by_alias( const X509_LOOKUP_METHOD *method); -int X509_STORE_add_cert(X509_STORE *ctx, X509 *x); -int X509_STORE_add_crl(X509_STORE *ctx, X509_CRL *x); +int X509_STORE_add_cert(X509_STORE *xs, X509 *x); +int X509_STORE_add_crl(X509_STORE *xs, X509_CRL *x); int X509_STORE_CTX_get_by_subject(const X509_STORE_CTX *vs, X509_LOOKUP_TYPE type, @@ -730,23 +737,21 @@ void *X509_LOOKUP_get_method_data(const X509_LOOKUP *ctx); X509_STORE *X509_LOOKUP_get_store(const X509_LOOKUP *ctx); int X509_LOOKUP_shutdown(X509_LOOKUP *ctx); -int X509_STORE_load_file(X509_STORE *ctx, const char *file); -int X509_STORE_load_path(X509_STORE *ctx, const char *path); -int X509_STORE_load_store(X509_STORE *ctx, const char *store); -int X509_STORE_load_locations(X509_STORE *ctx, - const char *file, - const char *dir); -int X509_STORE_set_default_paths(X509_STORE *ctx); +int X509_STORE_load_file(X509_STORE *xs, const char *file); +int X509_STORE_load_path(X509_STORE *xs, const char *path); +int X509_STORE_load_store(X509_STORE *xs, const char *store); +int X509_STORE_load_locations(X509_STORE *s, const char *file, const char *dir); +int X509_STORE_set_default_paths(X509_STORE *xs); -int X509_STORE_load_file_ex(X509_STORE *ctx, const char *file, +int X509_STORE_load_file_ex(X509_STORE *xs, const char *file, OSSL_LIB_CTX *libctx, const char *propq); -int X509_STORE_load_store_ex(X509_STORE *ctx, const char *store, +int X509_STORE_load_store_ex(X509_STORE *xs, const char *store, OSSL_LIB_CTX *libctx, const char *propq); -int X509_STORE_load_locations_ex(X509_STORE *ctx, const char *file, - const char *dir, OSSL_LIB_CTX *libctx, - const char *propq); -int X509_STORE_set_default_paths_ex(X509_STORE *ctx, OSSL_LIB_CTX *libctx, - const char *propq); +int X509_STORE_load_locations_ex(X509_STORE *xs, + const char *file, const char *dir, + OSSL_LIB_CTX *libctx, const char *propq); +int X509_STORE_set_default_paths_ex(X509_STORE *xs, + OSSL_LIB_CTX *libctx, const char *propq); #define X509_STORE_CTX_get_ex_new_index(l, p, newf, dupf, freef) \ CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_X509_STORE_CTX, l, p, newf, dupf, freef) @@ -764,6 +769,7 @@ X509_STORE_CTX *X509_STORE_CTX_get0_parent_ctx(const X509_STORE_CTX *ctx); STACK_OF(X509) *X509_STORE_CTX_get0_chain(const X509_STORE_CTX *ctx); STACK_OF(X509) *X509_STORE_CTX_get1_chain(const X509_STORE_CTX *ctx); void X509_STORE_CTX_set_cert(X509_STORE_CTX *ctx, X509 *target); +void X509_STORE_CTX_set0_rpk(X509_STORE_CTX *ctx, EVP_PKEY *target); void X509_STORE_CTX_set0_verified_chain(X509_STORE_CTX *c, STACK_OF(X509) *sk); void X509_STORE_CTX_set0_crls(X509_STORE_CTX *ctx, STACK_OF(X509_CRL) *sk); int X509_STORE_CTX_set_purpose(X509_STORE_CTX *ctx, int purpose); @@ -773,6 +779,8 @@ int X509_STORE_CTX_purpose_inherit(X509_STORE_CTX *ctx, int def_purpose, void X509_STORE_CTX_set_flags(X509_STORE_CTX *ctx, unsigned long flags); void X509_STORE_CTX_set_time(X509_STORE_CTX *ctx, unsigned long flags, time_t t); +void X509_STORE_CTX_set_current_reasons(X509_STORE_CTX *ctx, + unsigned int current_reasons); X509_POLICY_TREE *X509_STORE_CTX_get0_policy_tree(const X509_STORE_CTX *ctx); int X509_STORE_CTX_get_explicit_policy(const X509_STORE_CTX *ctx); @@ -804,6 +812,7 @@ int X509_VERIFY_PARAM_clear_flags(X509_VERIFY_PARAM *param, unsigned long flags); unsigned long X509_VERIFY_PARAM_get_flags(const X509_VERIFY_PARAM *param); int X509_VERIFY_PARAM_set_purpose(X509_VERIFY_PARAM *param, int purpose); +int X509_VERIFY_PARAM_get_purpose(const X509_VERIFY_PARAM *param); int X509_VERIFY_PARAM_set_trust(X509_VERIFY_PARAM *param, int trust); void X509_VERIFY_PARAM_set_depth(X509_VERIFY_PARAM *param, int depth); void X509_VERIFY_PARAM_set_auth_level(X509_VERIFY_PARAM *param, int auth_level); diff --git a/deps/openssl/config/archs/VC-WIN32/no-asm/include/openssl/x509v3.h b/deps/openssl/config/archs/VC-WIN32/no-asm/include/openssl/x509v3.h index ed08a546f9813d..362ce3fb4387f7 100644 --- a/deps/openssl/config/archs/VC-WIN32/no-asm/include/openssl/x509v3.h +++ b/deps/openssl/config/archs/VC-WIN32/no-asm/include/openssl/x509v3.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by makefile from include/openssl/x509v3.h.in * - * Copyright 1999-2023 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1999-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -25,6 +25,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -146,6 +149,11 @@ typedef struct BASIC_CONSTRAINTS_st { ASN1_INTEGER *pathlen; } BASIC_CONSTRAINTS; +typedef struct OSSL_BASIC_ATTR_CONSTRAINTS_st { + int authority; + ASN1_INTEGER *pathlen; +} OSSL_BASIC_ATTR_CONSTRAINTS; + typedef struct PKEY_USAGE_PERIOD_st { ASN1_GENERALIZEDTIME *notBefore; ASN1_GENERALIZEDTIME *notAfter; @@ -198,6 +206,8 @@ typedef struct ACCESS_DESCRIPTION_st { GENERAL_NAME *location; } ACCESS_DESCRIPTION; +int GENERAL_NAME_set1_X509_NAME(GENERAL_NAME **tgt, const X509_NAME *src); + SKM_DEFINE_STACK_OF_INTERNAL(ACCESS_DESCRIPTION, ACCESS_DESCRIPTION, ACCESS_DESCRIPTION) #define sk_ACCESS_DESCRIPTION_num(sk) OPENSSL_sk_num(ossl_check_const_ACCESS_DESCRIPTION_sk_type(sk)) #define sk_ACCESS_DESCRIPTION_value(sk, idx) ((ACCESS_DESCRIPTION *)OPENSSL_sk_value(ossl_check_const_ACCESS_DESCRIPTION_sk_type(sk), (idx))) @@ -294,6 +304,7 @@ typedef struct DIST_POINT_NAME_st { /* If relativename then this contains the full distribution point name */ X509_NAME *dpname; } DIST_POINT_NAME; +DECLARE_ASN1_DUP_FUNCTION(DIST_POINT_NAME) /* All existing reasons */ # define CRLDP_ALL_REASONS 0x807f @@ -659,15 +670,16 @@ struct ISSUING_DIST_POINT_st { # define EXFLAG_SAN_CRITICAL 0x80000 # define EXFLAG_NO_FINGERPRINT 0x100000 -# define KU_DIGITAL_SIGNATURE 0x0080 -# define KU_NON_REPUDIATION 0x0040 -# define KU_KEY_ENCIPHERMENT 0x0020 -# define KU_DATA_ENCIPHERMENT 0x0010 -# define KU_KEY_AGREEMENT 0x0008 -# define KU_KEY_CERT_SIGN 0x0004 -# define KU_CRL_SIGN 0x0002 -# define KU_ENCIPHER_ONLY 0x0001 -# define KU_DECIPHER_ONLY 0x8000 +/* https://datatracker.ietf.org/doc/html/rfc5280#section-4.2.1.3 */ +# define KU_DIGITAL_SIGNATURE X509v3_KU_DIGITAL_SIGNATURE +# define KU_NON_REPUDIATION X509v3_KU_NON_REPUDIATION +# define KU_KEY_ENCIPHERMENT X509v3_KU_KEY_ENCIPHERMENT +# define KU_DATA_ENCIPHERMENT X509v3_KU_DATA_ENCIPHERMENT +# define KU_KEY_AGREEMENT X509v3_KU_KEY_AGREEMENT +# define KU_KEY_CERT_SIGN X509v3_KU_KEY_CERT_SIGN +# define KU_CRL_SIGN X509v3_KU_CRL_SIGN +# define KU_ENCIPHER_ONLY X509v3_KU_ENCIPHER_ONLY +# define KU_DECIPHER_ONLY X509v3_KU_DECIPHER_ONLY # define NS_SSL_CLIENT 0x80 # define NS_SSL_SERVER 0x40 @@ -729,7 +741,7 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_PURPOSE, X509_PURPOSE, X509_PURPOSE) #define sk_X509_PURPOSE_set_cmp_func(sk, cmp) ((sk_X509_PURPOSE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_X509_PURPOSE_sk_type(sk), ossl_check_X509_PURPOSE_compfunc_type(cmp))) - +# define X509_PURPOSE_DEFAULT_ANY 0 # define X509_PURPOSE_SSL_CLIENT 1 # define X509_PURPOSE_SSL_SERVER 2 # define X509_PURPOSE_NS_SSL_SERVER 3 @@ -739,9 +751,10 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_PURPOSE, X509_PURPOSE, X509_PURPOSE) # define X509_PURPOSE_ANY 7 # define X509_PURPOSE_OCSP_HELPER 8 # define X509_PURPOSE_TIMESTAMP_SIGN 9 +# define X509_PURPOSE_CODE_SIGN 10 # define X509_PURPOSE_MIN 1 -# define X509_PURPOSE_MAX 9 +# define X509_PURPOSE_MAX 10 /* Flags for X509V3_EXT_print() */ @@ -767,6 +780,7 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_PURPOSE, X509_PURPOSE, X509_PURPOSE) # define X509V3_ADD_SILENT 0x10 DECLARE_ASN1_FUNCTIONS(BASIC_CONSTRAINTS) +DECLARE_ASN1_FUNCTIONS(OSSL_BASIC_ATTR_CONSTRAINTS) DECLARE_ASN1_FUNCTIONS(SXNET) DECLARE_ASN1_FUNCTIONS(SXNETID) @@ -976,7 +990,6 @@ int X509V3_extensions_print(BIO *out, const char *title, int X509_check_ca(X509 *x); int X509_check_purpose(X509 *x, int id, int ca); int X509_supported_extension(X509_EXTENSION *ex); -int X509_PURPOSE_set(int *p, int purpose); int X509_check_issued(X509 *issuer, X509 *subject); int X509_check_akid(const X509 *issuer, const AUTHORITY_KEYID *akid); void X509_set_proxy_flag(X509 *x); @@ -992,22 +1005,26 @@ const GENERAL_NAMES *X509_get0_authority_issuer(X509 *x); const ASN1_INTEGER *X509_get0_authority_serial(X509 *x); int X509_PURPOSE_get_count(void); -X509_PURPOSE *X509_PURPOSE_get0(int idx); +int X509_PURPOSE_get_unused_id(OSSL_LIB_CTX *libctx); int X509_PURPOSE_get_by_sname(const char *sname); int X509_PURPOSE_get_by_id(int id); int X509_PURPOSE_add(int id, int trust, int flags, int (*ck) (const X509_PURPOSE *, const X509 *, int), const char *name, const char *sname, void *arg); +void X509_PURPOSE_cleanup(void); + +X509_PURPOSE *X509_PURPOSE_get0(int idx); +int X509_PURPOSE_get_id(const X509_PURPOSE *); char *X509_PURPOSE_get0_name(const X509_PURPOSE *xp); char *X509_PURPOSE_get0_sname(const X509_PURPOSE *xp); int X509_PURPOSE_get_trust(const X509_PURPOSE *xp); -void X509_PURPOSE_cleanup(void); -int X509_PURPOSE_get_id(const X509_PURPOSE *); +int X509_PURPOSE_set(int *p, int purpose); STACK_OF(OPENSSL_STRING) *X509_get1_email(X509 *x); STACK_OF(OPENSSL_STRING) *X509_REQ_get1_email(X509_REQ *x); void X509_email_free(STACK_OF(OPENSSL_STRING) *sk); STACK_OF(OPENSSL_STRING) *X509_get1_ocsp(X509 *x); + /* Flags for X509_check_* functions */ /* @@ -1444,6 +1461,507 @@ const ASN1_PRINTABLESTRING *PROFESSION_INFO_get0_registrationNumber( void PROFESSION_INFO_set0_registrationNumber( PROFESSION_INFO *pi, ASN1_PRINTABLESTRING *rn); +int OSSL_GENERAL_NAMES_print(BIO *out, GENERAL_NAMES *gens, int indent); + +typedef STACK_OF(X509_ATTRIBUTE) OSSL_ATTRIBUTES_SYNTAX; +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTES_SYNTAX) + +typedef STACK_OF(USERNOTICE) OSSL_USER_NOTICE_SYNTAX; +DECLARE_ASN1_FUNCTIONS(OSSL_USER_NOTICE_SYNTAX) + +SKM_DEFINE_STACK_OF_INTERNAL(USERNOTICE, USERNOTICE, USERNOTICE) +#define sk_USERNOTICE_num(sk) OPENSSL_sk_num(ossl_check_const_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_value(sk, idx) ((USERNOTICE *)OPENSSL_sk_value(ossl_check_const_USERNOTICE_sk_type(sk), (idx))) +#define sk_USERNOTICE_new(cmp) ((STACK_OF(USERNOTICE) *)OPENSSL_sk_new(ossl_check_USERNOTICE_compfunc_type(cmp))) +#define sk_USERNOTICE_new_null() ((STACK_OF(USERNOTICE) *)OPENSSL_sk_new_null()) +#define sk_USERNOTICE_new_reserve(cmp, n) ((STACK_OF(USERNOTICE) *)OPENSSL_sk_new_reserve(ossl_check_USERNOTICE_compfunc_type(cmp), (n))) +#define sk_USERNOTICE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_USERNOTICE_sk_type(sk), (n)) +#define sk_USERNOTICE_free(sk) OPENSSL_sk_free(ossl_check_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_zero(sk) OPENSSL_sk_zero(ossl_check_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_delete(sk, i) ((USERNOTICE *)OPENSSL_sk_delete(ossl_check_USERNOTICE_sk_type(sk), (i))) +#define sk_USERNOTICE_delete_ptr(sk, ptr) ((USERNOTICE *)OPENSSL_sk_delete_ptr(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr))) +#define sk_USERNOTICE_push(sk, ptr) OPENSSL_sk_push(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr)) +#define sk_USERNOTICE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr)) +#define sk_USERNOTICE_pop(sk) ((USERNOTICE *)OPENSSL_sk_pop(ossl_check_USERNOTICE_sk_type(sk))) +#define sk_USERNOTICE_shift(sk) ((USERNOTICE *)OPENSSL_sk_shift(ossl_check_USERNOTICE_sk_type(sk))) +#define sk_USERNOTICE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_USERNOTICE_sk_type(sk),ossl_check_USERNOTICE_freefunc_type(freefunc)) +#define sk_USERNOTICE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr), (idx)) +#define sk_USERNOTICE_set(sk, idx, ptr) ((USERNOTICE *)OPENSSL_sk_set(ossl_check_USERNOTICE_sk_type(sk), (idx), ossl_check_USERNOTICE_type(ptr))) +#define sk_USERNOTICE_find(sk, ptr) OPENSSL_sk_find(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr)) +#define sk_USERNOTICE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr)) +#define sk_USERNOTICE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr), pnum) +#define sk_USERNOTICE_sort(sk) OPENSSL_sk_sort(ossl_check_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_dup(sk) ((STACK_OF(USERNOTICE) *)OPENSSL_sk_dup(ossl_check_const_USERNOTICE_sk_type(sk))) +#define sk_USERNOTICE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(USERNOTICE) *)OPENSSL_sk_deep_copy(ossl_check_const_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_copyfunc_type(copyfunc), ossl_check_USERNOTICE_freefunc_type(freefunc))) +#define sk_USERNOTICE_set_cmp_func(sk, cmp) ((sk_USERNOTICE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_compfunc_type(cmp))) + + +typedef struct OSSL_ROLE_SPEC_CERT_ID_st { + GENERAL_NAME *roleName; + GENERAL_NAME *roleCertIssuer; + ASN1_INTEGER *roleCertSerialNumber; + GENERAL_NAMES *roleCertLocator; +} OSSL_ROLE_SPEC_CERT_ID; + +DECLARE_ASN1_FUNCTIONS(OSSL_ROLE_SPEC_CERT_ID) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ROLE_SPEC_CERT_ID, OSSL_ROLE_SPEC_CERT_ID, OSSL_ROLE_SPEC_CERT_ID) +#define sk_OSSL_ROLE_SPEC_CERT_ID_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_value(sk, idx) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_value(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), (idx))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_new(cmp) ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_new(ossl_check_OSSL_ROLE_SPEC_CERT_ID_compfunc_type(cmp))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_new_null() ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ROLE_SPEC_CERT_ID_new_reserve(cmp, n) ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ROLE_SPEC_CERT_ID_compfunc_type(cmp), (n))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), (n)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_delete(sk, i) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_delete(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), (i))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_delete_ptr(sk, ptr) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_pop(sk) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_pop(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_shift(sk) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_shift(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk),ossl_check_OSSL_ROLE_SPEC_CERT_ID_freefunc_type(freefunc)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr), (idx)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_set(sk, idx, ptr) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_set(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), (idx), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr), pnum) +#define sk_OSSL_ROLE_SPEC_CERT_ID_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_dup(sk) ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_copyfunc_type(copyfunc), ossl_check_OSSL_ROLE_SPEC_CERT_ID_freefunc_type(freefunc))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_set_cmp_func(sk, cmp) ((sk_OSSL_ROLE_SPEC_CERT_ID_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_compfunc_type(cmp))) + + +typedef STACK_OF(OSSL_ROLE_SPEC_CERT_ID) OSSL_ROLE_SPEC_CERT_ID_SYNTAX; + +DECLARE_ASN1_FUNCTIONS(OSSL_ROLE_SPEC_CERT_ID_SYNTAX) +typedef struct OSSL_HASH_st { + X509_ALGOR *algorithmIdentifier; + ASN1_BIT_STRING *hashValue; +} OSSL_HASH; + +typedef struct OSSL_INFO_SYNTAX_POINTER_st { + GENERAL_NAMES *name; + OSSL_HASH *hash; +} OSSL_INFO_SYNTAX_POINTER; + +# define OSSL_INFO_SYNTAX_TYPE_CONTENT 0 +# define OSSL_INFO_SYNTAX_TYPE_POINTER 1 + +typedef struct OSSL_INFO_SYNTAX_st { + int type; + union { + ASN1_STRING *content; + OSSL_INFO_SYNTAX_POINTER *pointer; + } choice; +} OSSL_INFO_SYNTAX; + +typedef struct OSSL_PRIVILEGE_POLICY_ID_st { + ASN1_OBJECT *privilegePolicy; + OSSL_INFO_SYNTAX *privPolSyntax; +} OSSL_PRIVILEGE_POLICY_ID; + +typedef struct OSSL_ATTRIBUTE_DESCRIPTOR_st { + ASN1_OBJECT *identifier; + ASN1_STRING *attributeSyntax; + ASN1_UTF8STRING *name; + ASN1_UTF8STRING *description; + OSSL_PRIVILEGE_POLICY_ID *dominationRule; +} OSSL_ATTRIBUTE_DESCRIPTOR; + +DECLARE_ASN1_FUNCTIONS(OSSL_HASH) +DECLARE_ASN1_FUNCTIONS(OSSL_INFO_SYNTAX) +DECLARE_ASN1_FUNCTIONS(OSSL_INFO_SYNTAX_POINTER) +DECLARE_ASN1_FUNCTIONS(OSSL_PRIVILEGE_POLICY_ID) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_DESCRIPTOR) + +typedef struct OSSL_TIME_SPEC_ABSOLUTE_st { + ASN1_GENERALIZEDTIME *startTime; + ASN1_GENERALIZEDTIME *endTime; +} OSSL_TIME_SPEC_ABSOLUTE; + +typedef struct OSSL_DAY_TIME_st { + ASN1_INTEGER *hour; + ASN1_INTEGER *minute; + ASN1_INTEGER *second; +} OSSL_DAY_TIME; + +typedef struct OSSL_DAY_TIME_BAND_st { + OSSL_DAY_TIME *startDayTime; + OSSL_DAY_TIME *endDayTime; +} OSSL_DAY_TIME_BAND; + +# define OSSL_NAMED_DAY_TYPE_INT 0 +# define OSSL_NAMED_DAY_TYPE_BIT 1 +# define OSSL_NAMED_DAY_INT_SUN 1 +# define OSSL_NAMED_DAY_INT_MON 2 +# define OSSL_NAMED_DAY_INT_TUE 3 +# define OSSL_NAMED_DAY_INT_WED 4 +# define OSSL_NAMED_DAY_INT_THU 5 +# define OSSL_NAMED_DAY_INT_FRI 6 +# define OSSL_NAMED_DAY_INT_SAT 7 +# define OSSL_NAMED_DAY_BIT_SUN 0 +# define OSSL_NAMED_DAY_BIT_MON 1 +# define OSSL_NAMED_DAY_BIT_TUE 2 +# define OSSL_NAMED_DAY_BIT_WED 3 +# define OSSL_NAMED_DAY_BIT_THU 4 +# define OSSL_NAMED_DAY_BIT_FRI 5 +# define OSSL_NAMED_DAY_BIT_SAT 6 + +typedef struct OSSL_NAMED_DAY_st { + int type; + union { + ASN1_INTEGER *intNamedDays; + ASN1_BIT_STRING *bitNamedDays; + } choice; +} OSSL_NAMED_DAY; + +# define OSSL_TIME_SPEC_X_DAY_OF_FIRST 0 +# define OSSL_TIME_SPEC_X_DAY_OF_SECOND 1 +# define OSSL_TIME_SPEC_X_DAY_OF_THIRD 2 +# define OSSL_TIME_SPEC_X_DAY_OF_FOURTH 3 +# define OSSL_TIME_SPEC_X_DAY_OF_FIFTH 4 + +typedef struct OSSL_TIME_SPEC_X_DAY_OF_st { + int type; + union { + OSSL_NAMED_DAY *first; + OSSL_NAMED_DAY *second; + OSSL_NAMED_DAY *third; + OSSL_NAMED_DAY *fourth; + OSSL_NAMED_DAY *fifth; + } choice; +} OSSL_TIME_SPEC_X_DAY_OF; + +# define OSSL_TIME_SPEC_DAY_TYPE_INT 0 +# define OSSL_TIME_SPEC_DAY_TYPE_BIT 1 +# define OSSL_TIME_SPEC_DAY_TYPE_DAY_OF 2 +# define OSSL_TIME_SPEC_DAY_BIT_SUN 0 +# define OSSL_TIME_SPEC_DAY_BIT_MON 1 +# define OSSL_TIME_SPEC_DAY_BIT_TUE 2 +# define OSSL_TIME_SPEC_DAY_BIT_WED 3 +# define OSSL_TIME_SPEC_DAY_BIT_THU 4 +# define OSSL_TIME_SPEC_DAY_BIT_FRI 5 +# define OSSL_TIME_SPEC_DAY_BIT_SAT 6 +# define OSSL_TIME_SPEC_DAY_INT_SUN 1 +# define OSSL_TIME_SPEC_DAY_INT_MON 2 +# define OSSL_TIME_SPEC_DAY_INT_TUE 3 +# define OSSL_TIME_SPEC_DAY_INT_WED 4 +# define OSSL_TIME_SPEC_DAY_INT_THU 5 +# define OSSL_TIME_SPEC_DAY_INT_FRI 6 +# define OSSL_TIME_SPEC_DAY_INT_SAT 7 + +typedef struct OSSL_TIME_SPEC_DAY_st { + int type; + union { + STACK_OF(ASN1_INTEGER) *intDay; + ASN1_BIT_STRING *bitDay; + OSSL_TIME_SPEC_X_DAY_OF *dayOf; + } choice; +} OSSL_TIME_SPEC_DAY; + +# define OSSL_TIME_SPEC_WEEKS_TYPE_ALL 0 +# define OSSL_TIME_SPEC_WEEKS_TYPE_INT 1 +# define OSSL_TIME_SPEC_WEEKS_TYPE_BIT 2 +# define OSSL_TIME_SPEC_BIT_WEEKS_1 0 +# define OSSL_TIME_SPEC_BIT_WEEKS_2 1 +# define OSSL_TIME_SPEC_BIT_WEEKS_3 2 +# define OSSL_TIME_SPEC_BIT_WEEKS_4 3 +# define OSSL_TIME_SPEC_BIT_WEEKS_5 4 + +typedef struct OSSL_TIME_SPEC_WEEKS_st { + int type; + union { + ASN1_NULL *allWeeks; + STACK_OF(ASN1_INTEGER) *intWeek; + ASN1_BIT_STRING *bitWeek; + } choice; +} OSSL_TIME_SPEC_WEEKS; + +# define OSSL_TIME_SPEC_MONTH_TYPE_ALL 0 +# define OSSL_TIME_SPEC_MONTH_TYPE_INT 1 +# define OSSL_TIME_SPEC_MONTH_TYPE_BIT 2 +# define OSSL_TIME_SPEC_INT_MONTH_JAN 1 +# define OSSL_TIME_SPEC_INT_MONTH_FEB 2 +# define OSSL_TIME_SPEC_INT_MONTH_MAR 3 +# define OSSL_TIME_SPEC_INT_MONTH_APR 4 +# define OSSL_TIME_SPEC_INT_MONTH_MAY 5 +# define OSSL_TIME_SPEC_INT_MONTH_JUN 6 +# define OSSL_TIME_SPEC_INT_MONTH_JUL 7 +# define OSSL_TIME_SPEC_INT_MONTH_AUG 8 +# define OSSL_TIME_SPEC_INT_MONTH_SEP 9 +# define OSSL_TIME_SPEC_INT_MONTH_OCT 10 +# define OSSL_TIME_SPEC_INT_MONTH_NOV 11 +# define OSSL_TIME_SPEC_INT_MONTH_DEC 12 +# define OSSL_TIME_SPEC_BIT_MONTH_JAN 0 +# define OSSL_TIME_SPEC_BIT_MONTH_FEB 1 +# define OSSL_TIME_SPEC_BIT_MONTH_MAR 2 +# define OSSL_TIME_SPEC_BIT_MONTH_APR 3 +# define OSSL_TIME_SPEC_BIT_MONTH_MAY 4 +# define OSSL_TIME_SPEC_BIT_MONTH_JUN 5 +# define OSSL_TIME_SPEC_BIT_MONTH_JUL 6 +# define OSSL_TIME_SPEC_BIT_MONTH_AUG 7 +# define OSSL_TIME_SPEC_BIT_MONTH_SEP 8 +# define OSSL_TIME_SPEC_BIT_MONTH_OCT 9 +# define OSSL_TIME_SPEC_BIT_MONTH_NOV 10 +# define OSSL_TIME_SPEC_BIT_MONTH_DEC 11 + +typedef struct OSSL_TIME_SPEC_MONTH_st { + int type; + union { + ASN1_NULL *allMonths; + STACK_OF(ASN1_INTEGER) *intMonth; + ASN1_BIT_STRING *bitMonth; + } choice; +} OSSL_TIME_SPEC_MONTH; + +typedef struct OSSL_TIME_PERIOD_st { + STACK_OF(OSSL_DAY_TIME_BAND) *timesOfDay; + OSSL_TIME_SPEC_DAY *days; + OSSL_TIME_SPEC_WEEKS *weeks; + OSSL_TIME_SPEC_MONTH *months; + STACK_OF(ASN1_INTEGER) *years; +} OSSL_TIME_PERIOD; + +# define OSSL_TIME_SPEC_TIME_TYPE_ABSOLUTE 0 +# define OSSL_TIME_SPEC_TIME_TYPE_PERIODIC 1 + +typedef struct OSSL_TIME_SPEC_TIME_st { + int type; + union { + OSSL_TIME_SPEC_ABSOLUTE *absolute; + STACK_OF(OSSL_TIME_PERIOD) *periodic; + } choice; +} OSSL_TIME_SPEC_TIME; + +typedef struct OSSL_TIME_SPEC_st { + OSSL_TIME_SPEC_TIME *time; + ASN1_BOOLEAN notThisTime; + ASN1_INTEGER *timeZone; +} OSSL_TIME_SPEC; + +DECLARE_ASN1_FUNCTIONS(OSSL_DAY_TIME) +DECLARE_ASN1_FUNCTIONS(OSSL_DAY_TIME_BAND) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_DAY) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_WEEKS) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_MONTH) +DECLARE_ASN1_FUNCTIONS(OSSL_NAMED_DAY) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_X_DAY_OF) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_ABSOLUTE) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_TIME) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_PERIOD) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_TIME_PERIOD, OSSL_TIME_PERIOD, OSSL_TIME_PERIOD) +#define sk_OSSL_TIME_PERIOD_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_value(sk, idx) ((OSSL_TIME_PERIOD *)OPENSSL_sk_value(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk), (idx))) +#define sk_OSSL_TIME_PERIOD_new(cmp) ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_new(ossl_check_OSSL_TIME_PERIOD_compfunc_type(cmp))) +#define sk_OSSL_TIME_PERIOD_new_null() ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_new_null()) +#define sk_OSSL_TIME_PERIOD_new_reserve(cmp, n) ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_TIME_PERIOD_compfunc_type(cmp), (n))) +#define sk_OSSL_TIME_PERIOD_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), (n)) +#define sk_OSSL_TIME_PERIOD_free(sk) OPENSSL_sk_free(ossl_check_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_delete(sk, i) ((OSSL_TIME_PERIOD *)OPENSSL_sk_delete(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), (i))) +#define sk_OSSL_TIME_PERIOD_delete_ptr(sk, ptr) ((OSSL_TIME_PERIOD *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr))) +#define sk_OSSL_TIME_PERIOD_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr)) +#define sk_OSSL_TIME_PERIOD_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr)) +#define sk_OSSL_TIME_PERIOD_pop(sk) ((OSSL_TIME_PERIOD *)OPENSSL_sk_pop(ossl_check_OSSL_TIME_PERIOD_sk_type(sk))) +#define sk_OSSL_TIME_PERIOD_shift(sk) ((OSSL_TIME_PERIOD *)OPENSSL_sk_shift(ossl_check_OSSL_TIME_PERIOD_sk_type(sk))) +#define sk_OSSL_TIME_PERIOD_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_TIME_PERIOD_sk_type(sk),ossl_check_OSSL_TIME_PERIOD_freefunc_type(freefunc)) +#define sk_OSSL_TIME_PERIOD_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr), (idx)) +#define sk_OSSL_TIME_PERIOD_set(sk, idx, ptr) ((OSSL_TIME_PERIOD *)OPENSSL_sk_set(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), (idx), ossl_check_OSSL_TIME_PERIOD_type(ptr))) +#define sk_OSSL_TIME_PERIOD_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr)) +#define sk_OSSL_TIME_PERIOD_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr)) +#define sk_OSSL_TIME_PERIOD_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr), pnum) +#define sk_OSSL_TIME_PERIOD_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_dup(sk) ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_dup(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk))) +#define sk_OSSL_TIME_PERIOD_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_copyfunc_type(copyfunc), ossl_check_OSSL_TIME_PERIOD_freefunc_type(freefunc))) +#define sk_OSSL_TIME_PERIOD_set_cmp_func(sk, cmp) ((sk_OSSL_TIME_PERIOD_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_compfunc_type(cmp))) + + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_DAY_TIME_BAND, OSSL_DAY_TIME_BAND, OSSL_DAY_TIME_BAND) +#define sk_OSSL_DAY_TIME_BAND_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_value(sk, idx) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_value(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk), (idx))) +#define sk_OSSL_DAY_TIME_BAND_new(cmp) ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_new(ossl_check_OSSL_DAY_TIME_BAND_compfunc_type(cmp))) +#define sk_OSSL_DAY_TIME_BAND_new_null() ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_new_null()) +#define sk_OSSL_DAY_TIME_BAND_new_reserve(cmp, n) ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_DAY_TIME_BAND_compfunc_type(cmp), (n))) +#define sk_OSSL_DAY_TIME_BAND_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), (n)) +#define sk_OSSL_DAY_TIME_BAND_free(sk) OPENSSL_sk_free(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_delete(sk, i) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_delete(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), (i))) +#define sk_OSSL_DAY_TIME_BAND_delete_ptr(sk, ptr) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr))) +#define sk_OSSL_DAY_TIME_BAND_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr)) +#define sk_OSSL_DAY_TIME_BAND_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr)) +#define sk_OSSL_DAY_TIME_BAND_pop(sk) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_pop(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk))) +#define sk_OSSL_DAY_TIME_BAND_shift(sk) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_shift(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk))) +#define sk_OSSL_DAY_TIME_BAND_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk),ossl_check_OSSL_DAY_TIME_BAND_freefunc_type(freefunc)) +#define sk_OSSL_DAY_TIME_BAND_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr), (idx)) +#define sk_OSSL_DAY_TIME_BAND_set(sk, idx, ptr) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_set(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), (idx), ossl_check_OSSL_DAY_TIME_BAND_type(ptr))) +#define sk_OSSL_DAY_TIME_BAND_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr)) +#define sk_OSSL_DAY_TIME_BAND_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr)) +#define sk_OSSL_DAY_TIME_BAND_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr), pnum) +#define sk_OSSL_DAY_TIME_BAND_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_dup(sk) ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_dup(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk))) +#define sk_OSSL_DAY_TIME_BAND_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_copyfunc_type(copyfunc), ossl_check_OSSL_DAY_TIME_BAND_freefunc_type(freefunc))) +#define sk_OSSL_DAY_TIME_BAND_set_cmp_func(sk, cmp) ((sk_OSSL_DAY_TIME_BAND_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_compfunc_type(cmp))) + + +/* Attribute Type and Value */ +typedef struct atav_st { + ASN1_OBJECT *type; + ASN1_TYPE *value; +} OSSL_ATAV; + +typedef struct ATTRIBUTE_TYPE_MAPPING_st { + ASN1_OBJECT *local; + ASN1_OBJECT *remote; +} OSSL_ATTRIBUTE_TYPE_MAPPING; + +typedef struct ATTRIBUTE_VALUE_MAPPING_st { + OSSL_ATAV *local; + OSSL_ATAV *remote; +} OSSL_ATTRIBUTE_VALUE_MAPPING; + +# define OSSL_ATTR_MAP_TYPE 0 +# define OSSL_ATTR_MAP_VALUE 1 + +typedef struct ATTRIBUTE_MAPPING_st { + int type; + union { + OSSL_ATTRIBUTE_TYPE_MAPPING *typeMappings; + OSSL_ATTRIBUTE_VALUE_MAPPING *typeValueMappings; + } choice; +} OSSL_ATTRIBUTE_MAPPING; + +typedef STACK_OF(OSSL_ATTRIBUTE_MAPPING) OSSL_ATTRIBUTE_MAPPINGS; +DECLARE_ASN1_FUNCTIONS(OSSL_ATAV) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_TYPE_MAPPING) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_VALUE_MAPPING) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_MAPPING) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_MAPPINGS) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ATTRIBUTE_MAPPING, OSSL_ATTRIBUTE_MAPPING, OSSL_ATTRIBUTE_MAPPING) +#define sk_OSSL_ATTRIBUTE_MAPPING_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_value(sk, idx) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_value(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), (idx))) +#define sk_OSSL_ATTRIBUTE_MAPPING_new(cmp) ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_new(ossl_check_OSSL_ATTRIBUTE_MAPPING_compfunc_type(cmp))) +#define sk_OSSL_ATTRIBUTE_MAPPING_new_null() ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ATTRIBUTE_MAPPING_new_reserve(cmp, n) ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ATTRIBUTE_MAPPING_compfunc_type(cmp), (n))) +#define sk_OSSL_ATTRIBUTE_MAPPING_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), (n)) +#define sk_OSSL_ATTRIBUTE_MAPPING_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_delete(sk, i) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_delete(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), (i))) +#define sk_OSSL_ATTRIBUTE_MAPPING_delete_ptr(sk, ptr) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr))) +#define sk_OSSL_ATTRIBUTE_MAPPING_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr)) +#define sk_OSSL_ATTRIBUTE_MAPPING_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr)) +#define sk_OSSL_ATTRIBUTE_MAPPING_pop(sk) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_pop(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk))) +#define sk_OSSL_ATTRIBUTE_MAPPING_shift(sk) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_shift(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk))) +#define sk_OSSL_ATTRIBUTE_MAPPING_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk),ossl_check_OSSL_ATTRIBUTE_MAPPING_freefunc_type(freefunc)) +#define sk_OSSL_ATTRIBUTE_MAPPING_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr), (idx)) +#define sk_OSSL_ATTRIBUTE_MAPPING_set(sk, idx, ptr) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_set(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), (idx), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr))) +#define sk_OSSL_ATTRIBUTE_MAPPING_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr)) +#define sk_OSSL_ATTRIBUTE_MAPPING_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr)) +#define sk_OSSL_ATTRIBUTE_MAPPING_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr), pnum) +#define sk_OSSL_ATTRIBUTE_MAPPING_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_dup(sk) ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk))) +#define sk_OSSL_ATTRIBUTE_MAPPING_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_copyfunc_type(copyfunc), ossl_check_OSSL_ATTRIBUTE_MAPPING_freefunc_type(freefunc))) +#define sk_OSSL_ATTRIBUTE_MAPPING_set_cmp_func(sk, cmp) ((sk_OSSL_ATTRIBUTE_MAPPING_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_compfunc_type(cmp))) + + +# define OSSL_AAA_ATTRIBUTE_TYPE 0 +# define OSSL_AAA_ATTRIBUTE_VALUES 1 + +typedef struct ALLOWED_ATTRIBUTES_CHOICE_st { + int type; + union { + ASN1_OBJECT *attributeType; + X509_ATTRIBUTE *attributeTypeandValues; + } choice; +} OSSL_ALLOWED_ATTRIBUTES_CHOICE; + +typedef struct ALLOWED_ATTRIBUTES_ITEM_st { + STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *attributes; + GENERAL_NAME *holderDomain; +} OSSL_ALLOWED_ATTRIBUTES_ITEM; + +typedef STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) OSSL_ALLOWED_ATTRIBUTES_SYNTAX; + +DECLARE_ASN1_FUNCTIONS(OSSL_ALLOWED_ATTRIBUTES_CHOICE) +DECLARE_ASN1_FUNCTIONS(OSSL_ALLOWED_ATTRIBUTES_ITEM) +DECLARE_ASN1_FUNCTIONS(OSSL_ALLOWED_ATTRIBUTES_SYNTAX) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ALLOWED_ATTRIBUTES_CHOICE, OSSL_ALLOWED_ATTRIBUTES_CHOICE, OSSL_ALLOWED_ATTRIBUTES_CHOICE) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_value(sk, idx) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_value(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), (idx))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_new(cmp) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_new(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_compfunc_type(cmp))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_new_null() ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_new_reserve(cmp, n) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_compfunc_type(cmp), (n))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), (n)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_delete(sk, i) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_delete(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), (i))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_delete_ptr(sk, ptr) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_pop(sk) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_pop(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_shift(sk) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_shift(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk),ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_freefunc_type(freefunc)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr), (idx)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_set(sk, idx, ptr) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_set(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), (idx), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr), pnum) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_dup(sk) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_copyfunc_type(copyfunc), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_freefunc_type(freefunc))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_set_cmp_func(sk, cmp) ((sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_compfunc_type(cmp))) + + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ALLOWED_ATTRIBUTES_ITEM, OSSL_ALLOWED_ATTRIBUTES_ITEM, OSSL_ALLOWED_ATTRIBUTES_ITEM) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_value(sk, idx) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_value(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), (idx))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_new(cmp) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_new(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_compfunc_type(cmp))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_new_null() ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_new_reserve(cmp, n) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_compfunc_type(cmp), (n))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), (n)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_delete(sk, i) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_delete(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), (i))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_delete_ptr(sk, ptr) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_pop(sk) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_pop(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_shift(sk) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_shift(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk),ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_freefunc_type(freefunc)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr), (idx)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_set(sk, idx, ptr) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_set(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), (idx), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr), pnum) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_dup(sk) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_copyfunc_type(copyfunc), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_freefunc_type(freefunc))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_set_cmp_func(sk, cmp) ((sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_compfunc_type(cmp))) + + +typedef struct AA_DIST_POINT_st { + DIST_POINT_NAME *distpoint; + ASN1_BIT_STRING *reasons; + int dp_reasons; + ASN1_BOOLEAN indirectCRL; + ASN1_BOOLEAN containsUserAttributeCerts; + ASN1_BOOLEAN containsAACerts; + ASN1_BOOLEAN containsSOAPublicKeyCerts; +} OSSL_AA_DIST_POINT; + +DECLARE_ASN1_FUNCTIONS(OSSL_AA_DIST_POINT) + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/VC-WIN32/no-asm/include/progs.h b/deps/openssl/config/archs/VC-WIN32/no-asm/include/progs.h index be55f61503d405..1b62ec37dec130 100644 --- a/deps/openssl/config/archs/VC-WIN32/no-asm/include/progs.h +++ b/deps/openssl/config/archs/VC-WIN32/no-asm/include/progs.h @@ -56,6 +56,7 @@ extern int s_client_main(int argc, char *argv[]); extern int s_server_main(int argc, char *argv[]); extern int s_time_main(int argc, char *argv[]); extern int sess_id_main(int argc, char *argv[]); +extern int skeyutl_main(int argc, char *argv[]); extern int smime_main(int argc, char *argv[]); extern int speed_main(int argc, char *argv[]); extern int spkac_main(int argc, char *argv[]); @@ -110,6 +111,7 @@ extern const OPTIONS s_client_options[]; extern const OPTIONS s_server_options[]; extern const OPTIONS s_time_options[]; extern const OPTIONS sess_id_options[]; +extern const OPTIONS skeyutl_options[]; extern const OPTIONS smime_options[]; extern const OPTIONS speed_options[]; extern const OPTIONS spkac_options[]; diff --git a/deps/openssl/config/archs/VC-WIN32/no-asm/openssl-cl.gypi b/deps/openssl/config/archs/VC-WIN32/no-asm/openssl-cl.gypi index fc1d31c43e9f5a..530319ee1e2e35 100644 --- a/deps/openssl/config/archs/VC-WIN32/no-asm/openssl-cl.gypi +++ b/deps/openssl/config/archs/VC-WIN32/no-asm/openssl-cl.gypi @@ -66,6 +66,7 @@ 'openssl/apps/s_server.c', 'openssl/apps/s_time.c', 'openssl/apps/sess_id.c', + 'openssl/apps/skeyutl.c', 'openssl/apps/smime.c', 'openssl/apps/speed.c', 'openssl/apps/spkac.c', @@ -81,12 +82,14 @@ 'openssl/apps/lib/app_rand.c', 'openssl/apps/lib/app_x509.c', 'openssl/apps/lib/apps.c', + 'openssl/apps/lib/apps_opt_printf.c', 'openssl/apps/lib/apps_ui.c', 'openssl/apps/lib/columns.c', 'openssl/apps/lib/engine.c', 'openssl/apps/lib/engine_loader.c', 'openssl/apps/lib/fmt.c', 'openssl/apps/lib/http_server.c', + 'openssl/apps/lib/log.c', 'openssl/apps/lib/names.c', 'openssl/apps/lib/opt.c', 'openssl/apps/lib/s_cb.c', diff --git a/deps/openssl/config/archs/VC-WIN32/no-asm/openssl-fips.gypi b/deps/openssl/config/archs/VC-WIN32/no-asm/openssl-fips.gypi index 603ad27f9be83d..1bfd7c4a4e246d 100644 --- a/deps/openssl/config/archs/VC-WIN32/no-asm/openssl-fips.gypi +++ b/deps/openssl/config/archs/VC-WIN32/no-asm/openssl-fips.gypi @@ -100,14 +100,15 @@ 'openssl/crypto/evp/kem.c', 'openssl/crypto/evp/keymgmt_lib.c', 'openssl/crypto/evp/keymgmt_meth.c', - 'openssl/crypto/evp/m_sigver.c', 'openssl/crypto/evp/mac_lib.c', 'openssl/crypto/evp/mac_meth.c', 'openssl/crypto/evp/p_lib.c', 'openssl/crypto/evp/pmeth_check.c', 'openssl/crypto/evp/pmeth_gn.c', 'openssl/crypto/evp/pmeth_lib.c', + 'openssl/crypto/evp/s_lib.c', 'openssl/crypto/evp/signature.c', + 'openssl/crypto/evp/skeymgmt_meth.c', 'openssl/crypto/ffc/ffc_backend.c', 'openssl/crypto/ffc/ffc_dh.c', 'openssl/crypto/ffc/ffc_key_generate.c', @@ -115,6 +116,8 @@ 'openssl/crypto/ffc/ffc_params.c', 'openssl/crypto/ffc/ffc_params_generate.c', 'openssl/crypto/ffc/ffc_params_validate.c', + 'openssl/crypto/hashtable/hashfunc.c', + 'openssl/crypto/hashtable/hashtable.c', 'openssl/crypto/hmac/hmac.c', 'openssl/crypto/lhash/lhash.c', 'openssl/crypto/asn1_dsa.c', @@ -145,6 +148,16 @@ 'openssl/crypto/threads_none.c', 'openssl/crypto/threads_pthread.c', 'openssl/crypto/threads_win.c', + 'openssl/crypto/time.c', + 'openssl/crypto/ml_dsa/ml_dsa_encoders.c', + 'openssl/crypto/ml_dsa/ml_dsa_key.c', + 'openssl/crypto/ml_dsa/ml_dsa_key_compress.c', + 'openssl/crypto/ml_dsa/ml_dsa_matrix.c', + 'openssl/crypto/ml_dsa/ml_dsa_ntt.c', + 'openssl/crypto/ml_dsa/ml_dsa_params.c', + 'openssl/crypto/ml_dsa/ml_dsa_sample.c', + 'openssl/crypto/ml_dsa/ml_dsa_sign.c', + 'openssl/crypto/ml_kem/ml_kem.c', 'openssl/crypto/modes/cbc128.c', 'openssl/crypto/modes/ccm128.c', 'openssl/crypto/modes/cfb128.c', @@ -153,6 +166,7 @@ 'openssl/crypto/modes/ofb128.c', 'openssl/crypto/modes/wrap128.c', 'openssl/crypto/modes/xts128.c', + 'openssl/crypto/modes/xts128gb.c', 'openssl/crypto/property/defn_cache.c', 'openssl/crypto/property/property.c', 'openssl/crypto/property/property_parse.c', @@ -181,7 +195,23 @@ 'openssl/crypto/sha/sha256.c', 'openssl/crypto/sha/sha3.c', 'openssl/crypto/sha/sha512.c', + 'openssl/crypto/slh_dsa/slh_adrs.c', + 'openssl/crypto/slh_dsa/slh_dsa.c', + 'openssl/crypto/slh_dsa/slh_dsa_hash_ctx.c', + 'openssl/crypto/slh_dsa/slh_dsa_key.c', + 'openssl/crypto/slh_dsa/slh_fors.c', + 'openssl/crypto/slh_dsa/slh_hash.c', + 'openssl/crypto/slh_dsa/slh_hypertree.c', + 'openssl/crypto/slh_dsa/slh_params.c', + 'openssl/crypto/slh_dsa/slh_wots.c', + 'openssl/crypto/slh_dsa/slh_xmss.c', 'openssl/crypto/stack/stack.c', + 'openssl/crypto/thread/arch/thread_none.c', + 'openssl/crypto/thread/arch/thread_posix.c', + 'openssl/crypto/thread/arch/thread_win.c', + 'openssl/crypto/thread/api.c', + 'openssl/crypto/thread/arch.c', + 'openssl/crypto/thread/internal.c', 'openssl/providers/common/der/der_rsa_sig.c', 'openssl/providers/common/bio_prov.c', 'openssl/providers/common/capabilities.c', @@ -190,6 +220,7 @@ 'openssl/providers/common/provider_util.c', 'openssl/providers/common/securitycheck.c', 'openssl/providers/common/securitycheck_fips.c', + 'openssl/providers/fips/fipsindicator.c', 'openssl/providers/fips/fipsprov.c', 'openssl/providers/fips/self_test.c', 'openssl/providers/fips/self_test_kats.c', @@ -227,6 +258,8 @@ 'openssl/providers/implementations/kdfs/sskdf.c', 'openssl/providers/implementations/kdfs/tls1_prf.c', 'openssl/providers/implementations/kdfs/x942kdf.c', + 'openssl/providers/implementations/kem/ml_kem_kem.c', + 'openssl/providers/implementations/kem/mlx_kem.c', 'openssl/providers/implementations/kem/rsa_kem.c', 'openssl/providers/implementations/keymgmt/dh_kmgmt.c', 'openssl/providers/implementations/keymgmt/dsa_kmgmt.c', @@ -234,29 +267,39 @@ 'openssl/providers/implementations/keymgmt/ecx_kmgmt.c', 'openssl/providers/implementations/keymgmt/kdf_legacy_kmgmt.c', 'openssl/providers/implementations/keymgmt/mac_legacy_kmgmt.c', + 'openssl/providers/implementations/keymgmt/ml_dsa_kmgmt.c', + 'openssl/providers/implementations/keymgmt/ml_kem_kmgmt.c', + 'openssl/providers/implementations/keymgmt/mlx_kmgmt.c', 'openssl/providers/implementations/keymgmt/rsa_kmgmt.c', + 'openssl/providers/implementations/keymgmt/slh_dsa_kmgmt.c', 'openssl/providers/implementations/macs/cmac_prov.c', 'openssl/providers/implementations/macs/gmac_prov.c', 'openssl/providers/implementations/macs/hmac_prov.c', 'openssl/providers/implementations/macs/kmac_prov.c', - 'openssl/providers/implementations/rands/crngt.c', 'openssl/providers/implementations/rands/drbg.c', 'openssl/providers/implementations/rands/drbg_ctr.c', 'openssl/providers/implementations/rands/drbg_hash.c', 'openssl/providers/implementations/rands/drbg_hmac.c', + 'openssl/providers/implementations/rands/fips_crng_test.c', 'openssl/providers/implementations/rands/test_rng.c', 'openssl/providers/implementations/signature/dsa_sig.c', 'openssl/providers/implementations/signature/ecdsa_sig.c', 'openssl/providers/implementations/signature/eddsa_sig.c', 'openssl/providers/implementations/signature/mac_legacy_sig.c', + 'openssl/providers/implementations/signature/ml_dsa_sig.c', 'openssl/providers/implementations/signature/rsa_sig.c', - 'openssl/ssl/s3_cbc.c', + 'openssl/providers/implementations/signature/slh_dsa_sig.c', + 'openssl/providers/implementations/skeymgmt/aes_skmgmt.c', + 'openssl/providers/implementations/skeymgmt/generic.c', + 'openssl/ssl/record/methods/ssl3_cbc.c', 'openssl/providers/common/der/der_dsa_key.c', 'openssl/providers/common/der/der_dsa_sig.c', 'openssl/providers/common/der/der_ec_key.c', 'openssl/providers/common/der/der_ec_sig.c', 'openssl/providers/common/der/der_ecx_key.c', + 'openssl/providers/common/der/der_ml_dsa_key.c', 'openssl/providers/common/der/der_rsa_key.c', + 'openssl/providers/common/der/der_slh_dsa_key.c', 'openssl/providers/common/provider_ctx.c', 'openssl/providers/common/provider_err.c', 'openssl/providers/implementations/ciphers/ciphercommon.c', @@ -267,17 +310,20 @@ 'openssl/providers/implementations/ciphers/ciphercommon_gcm_hw.c', 'openssl/providers/implementations/ciphers/ciphercommon_hw.c', 'openssl/providers/implementations/digests/digestcommon.c', - 'openssl/ssl/record/tls_pad.c', + 'openssl/ssl/record/methods/tls_pad.c', 'openssl/providers/fips/fips_entry.c', ], 'openssl_sources_VC-WIN32': [ + './config/archs/VC-WIN32/no-asm/crypto/params_idx.c', './config/archs/VC-WIN32/no-asm/providers/common/der/der_sm2_gen.c', './config/archs/VC-WIN32/no-asm/providers/common/der/der_digests_gen.c', './config/archs/VC-WIN32/no-asm/providers/common/der/der_dsa_gen.c', './config/archs/VC-WIN32/no-asm/providers/common/der/der_ec_gen.c', './config/archs/VC-WIN32/no-asm/providers/common/der/der_ecx_gen.c', + './config/archs/VC-WIN32/no-asm/providers/common/der/der_ml_dsa_gen.c', './config/archs/VC-WIN32/no-asm/providers/common/der/der_rsa_gen.c', + './config/archs/VC-WIN32/no-asm/providers/common/der/der_slh_dsa_gen.c', './config/archs/VC-WIN32/no-asm/providers/common/der/der_wrap_gen.c', ], diff --git a/deps/openssl/config/archs/VC-WIN32/no-asm/openssl.gypi b/deps/openssl/config/archs/VC-WIN32/no-asm/openssl.gypi index 72b9b35f5e11f5..2cd177674514a8 100644 --- a/deps/openssl/config/archs/VC-WIN32/no-asm/openssl.gypi +++ b/deps/openssl/config/archs/VC-WIN32/no-asm/openssl.gypi @@ -7,14 +7,15 @@ 'openssl/ssl/d1_srtp.c', 'openssl/ssl/methods.c', 'openssl/ssl/pqueue.c', + 'openssl/ssl/priority_queue.c', 'openssl/ssl/s3_enc.c', 'openssl/ssl/s3_lib.c', 'openssl/ssl/s3_msg.c', 'openssl/ssl/ssl_asn1.c', 'openssl/ssl/ssl_cert.c', + 'openssl/ssl/ssl_cert_comp.c', 'openssl/ssl/ssl_ciph.c', 'openssl/ssl/ssl_conf.c', - 'openssl/ssl/ssl_err.c', 'openssl/ssl/ssl_err_legacy.c', 'openssl/ssl/ssl_init.c', 'openssl/ssl/ssl_lib.c', @@ -31,12 +32,60 @@ 'openssl/ssl/tls13_enc.c', 'openssl/ssl/tls_depr.c', 'openssl/ssl/tls_srp.c', - 'openssl/ssl/record/dtls1_bitmap.c', + 'openssl/ssl/quic/cc_newreno.c', + 'openssl/ssl/quic/json_enc.c', + 'openssl/ssl/quic/qlog.c', + 'openssl/ssl/quic/qlog_event_helpers.c', + 'openssl/ssl/quic/quic_ackm.c', + 'openssl/ssl/quic/quic_cfq.c', + 'openssl/ssl/quic/quic_channel.c', + 'openssl/ssl/quic/quic_demux.c', + 'openssl/ssl/quic/quic_engine.c', + 'openssl/ssl/quic/quic_fc.c', + 'openssl/ssl/quic/quic_fifd.c', + 'openssl/ssl/quic/quic_impl.c', + 'openssl/ssl/quic/quic_lcidm.c', + 'openssl/ssl/quic/quic_method.c', + 'openssl/ssl/quic/quic_obj.c', + 'openssl/ssl/quic/quic_port.c', + 'openssl/ssl/quic/quic_rcidm.c', + 'openssl/ssl/quic/quic_reactor.c', + 'openssl/ssl/quic/quic_reactor_wait_ctx.c', + 'openssl/ssl/quic/quic_record_rx.c', + 'openssl/ssl/quic/quic_record_shared.c', + 'openssl/ssl/quic/quic_record_tx.c', + 'openssl/ssl/quic/quic_record_util.c', + 'openssl/ssl/quic/quic_rstream.c', + 'openssl/ssl/quic/quic_rx_depack.c', + 'openssl/ssl/quic/quic_sf_list.c', + 'openssl/ssl/quic/quic_srt_gen.c', + 'openssl/ssl/quic/quic_srtm.c', + 'openssl/ssl/quic/quic_sstream.c', + 'openssl/ssl/quic/quic_statm.c', + 'openssl/ssl/quic/quic_stream_map.c', + 'openssl/ssl/quic/quic_thread_assist.c', + 'openssl/ssl/quic/quic_tls.c', + 'openssl/ssl/quic/quic_tls_api.c', + 'openssl/ssl/quic/quic_trace.c', + 'openssl/ssl/quic/quic_tserver.c', + 'openssl/ssl/quic/quic_txp.c', + 'openssl/ssl/quic/quic_txpim.c', + 'openssl/ssl/quic/quic_types.c', + 'openssl/ssl/quic/quic_wire.c', + 'openssl/ssl/quic/quic_wire_pkt.c', + 'openssl/ssl/quic/uint_set.c', 'openssl/ssl/record/rec_layer_d1.c', 'openssl/ssl/record/rec_layer_s3.c', - 'openssl/ssl/record/ssl3_buffer.c', - 'openssl/ssl/record/ssl3_record.c', - 'openssl/ssl/record/ssl3_record_tls13.c', + 'openssl/ssl/record/methods/dtls_meth.c', + 'openssl/ssl/record/methods/ssl3_meth.c', + 'openssl/ssl/record/methods/tls13_meth.c', + 'openssl/ssl/record/methods/tls1_meth.c', + 'openssl/ssl/record/methods/tls_common.c', + 'openssl/ssl/record/methods/tls_multib.c', + 'openssl/ssl/record/methods/tlsany_meth.c', + 'openssl/ssl/rio/poll_builder.c', + 'openssl/ssl/rio/poll_immediate.c', + 'openssl/ssl/rio/rio_notifier.c', 'openssl/ssl/statem/extensions.c', 'openssl/ssl/statem/extensions_clnt.c', 'openssl/ssl/statem/extensions_cust.c', @@ -150,6 +199,7 @@ 'openssl/crypto/bio/bss_conn.c', 'openssl/crypto/bio/bss_core.c', 'openssl/crypto/bio/bss_dgram.c', + 'openssl/crypto/bio/bss_dgram_pair.c', 'openssl/crypto/bio/bss_fd.c', 'openssl/crypto/bio/bss_file.c', 'openssl/crypto/bio/bss_log.c', @@ -210,6 +260,7 @@ 'openssl/crypto/cmp/cmp_client.c', 'openssl/crypto/cmp/cmp_ctx.c', 'openssl/crypto/cmp/cmp_err.c', + 'openssl/crypto/cmp/cmp_genm.c', 'openssl/crypto/cmp/cmp_hdr.c', 'openssl/crypto/cmp/cmp_http.c', 'openssl/crypto/cmp/cmp_msg.c', @@ -385,7 +436,9 @@ 'openssl/crypto/err/err_all.c', 'openssl/crypto/err/err_all_legacy.c', 'openssl/crypto/err/err_blocks.c', + 'openssl/crypto/err/err_mark.c', 'openssl/crypto/err/err_prn.c', + 'openssl/crypto/err/err_save.c', 'openssl/crypto/ess/ess_asn1.c', 'openssl/crypto/ess/ess_err.c', 'openssl/crypto/ess/ess_lib.c', @@ -468,7 +521,9 @@ 'openssl/crypto/evp/pmeth_check.c', 'openssl/crypto/evp/pmeth_gn.c', 'openssl/crypto/evp/pmeth_lib.c', + 'openssl/crypto/evp/s_lib.c', 'openssl/crypto/evp/signature.c', + 'openssl/crypto/evp/skeymgmt_meth.c', 'openssl/crypto/ffc/ffc_backend.c', 'openssl/crypto/ffc/ffc_dh.c', 'openssl/crypto/ffc/ffc_key_generate.c', @@ -476,7 +531,11 @@ 'openssl/crypto/ffc/ffc_params.c', 'openssl/crypto/ffc/ffc_params_generate.c', 'openssl/crypto/ffc/ffc_params_validate.c', + 'openssl/crypto/hashtable/hashfunc.c', + 'openssl/crypto/hashtable/hashtable.c', 'openssl/crypto/hmac/hmac.c', + 'openssl/crypto/hpke/hpke.c', + 'openssl/crypto/hpke/hpke_util.c', 'openssl/crypto/http/http_client.c', 'openssl/crypto/http/http_err.c', 'openssl/crypto/http/http_lib.c', @@ -490,6 +549,7 @@ 'openssl/crypto/lhash/lhash.c', 'openssl/crypto/asn1_dsa.c', 'openssl/crypto/bsearch.c', + 'openssl/crypto/comp_methods.c', 'openssl/crypto/context.c', 'openssl/crypto/core_algorithm.c', 'openssl/crypto/core_fetch.c', @@ -499,10 +559,13 @@ 'openssl/crypto/cryptlib.c', 'openssl/crypto/ctype.c', 'openssl/crypto/cversion.c', + 'openssl/crypto/defaults.c', 'openssl/crypto/der_writer.c', + 'openssl/crypto/deterministic_nonce.c', 'openssl/crypto/ebcdic.c', 'openssl/crypto/ex_data.c', 'openssl/crypto/getenv.c', + 'openssl/crypto/indicator_core.c', 'openssl/crypto/info.c', 'openssl/crypto/init.c', 'openssl/crypto/initthread.c', @@ -527,12 +590,16 @@ 'openssl/crypto/provider_core.c', 'openssl/crypto/provider_predefined.c', 'openssl/crypto/punycode.c', + 'openssl/crypto/quic_vlint.c', 'openssl/crypto/self_test_core.c', + 'openssl/crypto/sleep.c', 'openssl/crypto/sparse_array.c', + 'openssl/crypto/ssl_err.c', 'openssl/crypto/threads_lib.c', 'openssl/crypto/threads_none.c', 'openssl/crypto/threads_pthread.c', 'openssl/crypto/threads_win.c', + 'openssl/crypto/time.c', 'openssl/crypto/trace.c', 'openssl/crypto/uid.c', 'openssl/crypto/md4/md4_dgst.c', @@ -542,6 +609,15 @@ 'openssl/crypto/md5/md5_sha1.c', 'openssl/crypto/mdc2/mdc2_one.c', 'openssl/crypto/mdc2/mdc2dgst.c', + 'openssl/crypto/ml_dsa/ml_dsa_encoders.c', + 'openssl/crypto/ml_dsa/ml_dsa_key.c', + 'openssl/crypto/ml_dsa/ml_dsa_key_compress.c', + 'openssl/crypto/ml_dsa/ml_dsa_matrix.c', + 'openssl/crypto/ml_dsa/ml_dsa_ntt.c', + 'openssl/crypto/ml_dsa/ml_dsa_params.c', + 'openssl/crypto/ml_dsa/ml_dsa_sample.c', + 'openssl/crypto/ml_dsa/ml_dsa_sign.c', + 'openssl/crypto/ml_kem/ml_kem.c', 'openssl/crypto/modes/cbc128.c', 'openssl/crypto/modes/ccm128.c', 'openssl/crypto/modes/cfb128.c', @@ -553,6 +629,7 @@ 'openssl/crypto/modes/siv128.c', 'openssl/crypto/modes/wrap128.c', 'openssl/crypto/modes/xts128.c', + 'openssl/crypto/modes/xts128gb.c', 'openssl/crypto/objects/o_names.c', 'openssl/crypto/objects/obj_dat.c', 'openssl/crypto/objects/obj_err.c', @@ -616,6 +693,7 @@ 'openssl/crypto/rand/rand_lib.c', 'openssl/crypto/rand/rand_meth.c', 'openssl/crypto/rand/rand_pool.c', + 'openssl/crypto/rand/rand_uniform.c', 'openssl/crypto/rand/randfile.c', 'openssl/crypto/rc2/rc2_cbc.c', 'openssl/crypto/rc2/rc2_ecb.c', @@ -664,6 +742,16 @@ 'openssl/crypto/sha/sha3.c', 'openssl/crypto/sha/sha512.c', 'openssl/crypto/siphash/siphash.c', + 'openssl/crypto/slh_dsa/slh_adrs.c', + 'openssl/crypto/slh_dsa/slh_dsa.c', + 'openssl/crypto/slh_dsa/slh_dsa_hash_ctx.c', + 'openssl/crypto/slh_dsa/slh_dsa_key.c', + 'openssl/crypto/slh_dsa/slh_fors.c', + 'openssl/crypto/slh_dsa/slh_hash.c', + 'openssl/crypto/slh_dsa/slh_hypertree.c', + 'openssl/crypto/slh_dsa/slh_params.c', + 'openssl/crypto/slh_dsa/slh_wots.c', + 'openssl/crypto/slh_dsa/slh_xmss.c', 'openssl/crypto/sm2/sm2_crypt.c', 'openssl/crypto/sm2/sm2_err.c', 'openssl/crypto/sm2/sm2_key.c', @@ -681,6 +769,12 @@ 'openssl/crypto/store/store_register.c', 'openssl/crypto/store/store_result.c', 'openssl/crypto/store/store_strings.c', + 'openssl/crypto/thread/arch/thread_none.c', + 'openssl/crypto/thread/arch/thread_posix.c', + 'openssl/crypto/thread/arch/thread_win.c', + 'openssl/crypto/thread/api.c', + 'openssl/crypto/thread/arch.c', + 'openssl/crypto/thread/internal.c', 'openssl/crypto/ts/ts_asn1.c', 'openssl/crypto/ts/ts_conf.c', 'openssl/crypto/ts/ts_err.c', @@ -709,14 +803,22 @@ 'openssl/crypto/x509/pcy_map.c', 'openssl/crypto/x509/pcy_node.c', 'openssl/crypto/x509/pcy_tree.c', + 'openssl/crypto/x509/t_acert.c', 'openssl/crypto/x509/t_crl.c', 'openssl/crypto/x509/t_req.c', 'openssl/crypto/x509/t_x509.c', + 'openssl/crypto/x509/v3_aaa.c', + 'openssl/crypto/x509/v3_ac_tgt.c', 'openssl/crypto/x509/v3_addr.c', 'openssl/crypto/x509/v3_admis.c', 'openssl/crypto/x509/v3_akeya.c', 'openssl/crypto/x509/v3_akid.c', 'openssl/crypto/x509/v3_asid.c', + 'openssl/crypto/x509/v3_attrdesc.c', + 'openssl/crypto/x509/v3_attrmap.c', + 'openssl/crypto/x509/v3_audit_id.c', + 'openssl/crypto/x509/v3_authattid.c', + 'openssl/crypto/x509/v3_battcons.c', 'openssl/crypto/x509/v3_bcons.c', 'openssl/crypto/x509/v3_bitst.c', 'openssl/crypto/x509/v3_conf.c', @@ -725,12 +827,17 @@ 'openssl/crypto/x509/v3_enum.c', 'openssl/crypto/x509/v3_extku.c', 'openssl/crypto/x509/v3_genn.c', + 'openssl/crypto/x509/v3_group_ac.c', 'openssl/crypto/x509/v3_ia5.c', + 'openssl/crypto/x509/v3_ind_iss.c', 'openssl/crypto/x509/v3_info.c', 'openssl/crypto/x509/v3_int.c', + 'openssl/crypto/x509/v3_iobo.c', 'openssl/crypto/x509/v3_ist.c', 'openssl/crypto/x509/v3_lib.c', 'openssl/crypto/x509/v3_ncons.c', + 'openssl/crypto/x509/v3_no_ass.c', + 'openssl/crypto/x509/v3_no_rev_avail.c', 'openssl/crypto/x509/v3_pci.c', 'openssl/crypto/x509/v3_pcia.c', 'openssl/crypto/x509/v3_pcons.c', @@ -738,13 +845,20 @@ 'openssl/crypto/x509/v3_pmaps.c', 'openssl/crypto/x509/v3_prn.c', 'openssl/crypto/x509/v3_purp.c', + 'openssl/crypto/x509/v3_rolespec.c', 'openssl/crypto/x509/v3_san.c', + 'openssl/crypto/x509/v3_sda.c', + 'openssl/crypto/x509/v3_single_use.c', 'openssl/crypto/x509/v3_skid.c', + 'openssl/crypto/x509/v3_soa_id.c', 'openssl/crypto/x509/v3_sxnet.c', + 'openssl/crypto/x509/v3_timespec.c', 'openssl/crypto/x509/v3_tlsf.c', + 'openssl/crypto/x509/v3_usernotice.c', 'openssl/crypto/x509/v3_utf8.c', 'openssl/crypto/x509/v3_utl.c', 'openssl/crypto/x509/v3err.c', + 'openssl/crypto/x509/x509_acert.c', 'openssl/crypto/x509/x509_att.c', 'openssl/crypto/x509/x509_cmp.c', 'openssl/crypto/x509/x509_d2.c', @@ -762,6 +876,7 @@ 'openssl/crypto/x509/x509_v3.c', 'openssl/crypto/x509/x509_vfy.c', 'openssl/crypto/x509/x509_vpm.c', + 'openssl/crypto/x509/x509aset.c', 'openssl/crypto/x509/x509cset.c', 'openssl/crypto/x509/x509name.c', 'openssl/crypto/x509/x509rset.c', @@ -771,6 +886,7 @@ 'openssl/crypto/x509/x_attrib.c', 'openssl/crypto/x509/x_crl.c', 'openssl/crypto/x509/x_exten.c', + 'openssl/crypto/x509/x_ietfatt.c', 'openssl/crypto/x509/x_name.c', 'openssl/crypto/x509/x_pubkey.c', 'openssl/crypto/x509/x_req.c', @@ -802,6 +918,9 @@ 'openssl/providers/implementations/ciphers/cipher_aes_ccm_hw.c', 'openssl/providers/implementations/ciphers/cipher_aes_gcm.c', 'openssl/providers/implementations/ciphers/cipher_aes_gcm_hw.c', + 'openssl/providers/implementations/ciphers/cipher_aes_gcm_siv.c', + 'openssl/providers/implementations/ciphers/cipher_aes_gcm_siv_hw.c', + 'openssl/providers/implementations/ciphers/cipher_aes_gcm_siv_polyval.c', 'openssl/providers/implementations/ciphers/cipher_aes_hw.c', 'openssl/providers/implementations/ciphers/cipher_aes_ocb.c', 'openssl/providers/implementations/ciphers/cipher_aes_ocb_hw.c', @@ -826,7 +945,13 @@ 'openssl/providers/implementations/ciphers/cipher_cts.c', 'openssl/providers/implementations/ciphers/cipher_null.c', 'openssl/providers/implementations/ciphers/cipher_sm4.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_ccm.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_ccm_hw.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_gcm.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_gcm_hw.c', 'openssl/providers/implementations/ciphers/cipher_sm4_hw.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_xts.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_xts_hw.c', 'openssl/providers/implementations/ciphers/cipher_tdes.c', 'openssl/providers/implementations/ciphers/cipher_tdes_common.c', 'openssl/providers/implementations/ciphers/cipher_tdes_default.c', @@ -855,11 +980,16 @@ 'openssl/providers/implementations/encode_decode/encode_key2ms.c', 'openssl/providers/implementations/encode_decode/encode_key2text.c', 'openssl/providers/implementations/encode_decode/endecoder_common.c', + 'openssl/providers/implementations/encode_decode/ml_common_codecs.c', + 'openssl/providers/implementations/encode_decode/ml_dsa_codecs.c', + 'openssl/providers/implementations/encode_decode/ml_kem_codecs.c', 'openssl/providers/implementations/exchange/dh_exch.c', 'openssl/providers/implementations/exchange/ecdh_exch.c', 'openssl/providers/implementations/exchange/ecx_exch.c', 'openssl/providers/implementations/exchange/kdf_exch.c', + 'openssl/providers/implementations/kdfs/argon2.c', 'openssl/providers/implementations/kdfs/hkdf.c', + 'openssl/providers/implementations/kdfs/hmacdrbg_kdf.c', 'openssl/providers/implementations/kdfs/kbkdf.c', 'openssl/providers/implementations/kdfs/krb5kdf.c', 'openssl/providers/implementations/kdfs/pbkdf2.c', @@ -870,6 +1000,11 @@ 'openssl/providers/implementations/kdfs/sskdf.c', 'openssl/providers/implementations/kdfs/tls1_prf.c', 'openssl/providers/implementations/kdfs/x942kdf.c', + 'openssl/providers/implementations/kem/ec_kem.c', + 'openssl/providers/implementations/kem/ecx_kem.c', + 'openssl/providers/implementations/kem/kem_util.c', + 'openssl/providers/implementations/kem/ml_kem_kem.c', + 'openssl/providers/implementations/kem/mlx_kem.c', 'openssl/providers/implementations/kem/rsa_kem.c', 'openssl/providers/implementations/keymgmt/dh_kmgmt.c', 'openssl/providers/implementations/keymgmt/dsa_kmgmt.c', @@ -877,7 +1012,11 @@ 'openssl/providers/implementations/keymgmt/ecx_kmgmt.c', 'openssl/providers/implementations/keymgmt/kdf_legacy_kmgmt.c', 'openssl/providers/implementations/keymgmt/mac_legacy_kmgmt.c', + 'openssl/providers/implementations/keymgmt/ml_dsa_kmgmt.c', + 'openssl/providers/implementations/keymgmt/ml_kem_kmgmt.c', + 'openssl/providers/implementations/keymgmt/mlx_kmgmt.c', 'openssl/providers/implementations/keymgmt/rsa_kmgmt.c', + 'openssl/providers/implementations/keymgmt/slh_dsa_kmgmt.c', 'openssl/providers/implementations/macs/blake2b_mac.c', 'openssl/providers/implementations/macs/blake2s_mac.c', 'openssl/providers/implementations/macs/cmac_prov.c', @@ -886,12 +1025,12 @@ 'openssl/providers/implementations/macs/kmac_prov.c', 'openssl/providers/implementations/macs/poly1305_prov.c', 'openssl/providers/implementations/macs/siphash_prov.c', - 'openssl/providers/implementations/rands/crngt.c', 'openssl/providers/implementations/rands/drbg.c', 'openssl/providers/implementations/rands/drbg_ctr.c', 'openssl/providers/implementations/rands/drbg_hash.c', 'openssl/providers/implementations/rands/drbg_hmac.c', 'openssl/providers/implementations/rands/seed_src.c', + 'openssl/providers/implementations/rands/seed_src_jitter.c', 'openssl/providers/implementations/rands/test_rng.c', 'openssl/providers/implementations/rands/seeding/rand_cpu_x86.c', 'openssl/providers/implementations/rands/seeding/rand_tsc.c', @@ -901,17 +1040,24 @@ 'openssl/providers/implementations/signature/ecdsa_sig.c', 'openssl/providers/implementations/signature/eddsa_sig.c', 'openssl/providers/implementations/signature/mac_legacy_sig.c', + 'openssl/providers/implementations/signature/ml_dsa_sig.c', 'openssl/providers/implementations/signature/rsa_sig.c', + 'openssl/providers/implementations/signature/slh_dsa_sig.c', 'openssl/providers/implementations/signature/sm2_sig.c', + 'openssl/providers/implementations/skeymgmt/aes_skmgmt.c', + 'openssl/providers/implementations/skeymgmt/generic.c', 'openssl/providers/implementations/storemgmt/file_store.c', 'openssl/providers/implementations/storemgmt/file_store_any2obj.c', - 'openssl/ssl/s3_cbc.c', + 'openssl/providers/implementations/storemgmt/winstore_store.c', + 'openssl/ssl/record/methods/ssl3_cbc.c', 'openssl/providers/common/der/der_dsa_key.c', 'openssl/providers/common/der/der_dsa_sig.c', 'openssl/providers/common/der/der_ec_key.c', 'openssl/providers/common/der/der_ec_sig.c', 'openssl/providers/common/der/der_ecx_key.c', + 'openssl/providers/common/der/der_ml_dsa_key.c', 'openssl/providers/common/der/der_rsa_key.c', + 'openssl/providers/common/der/der_slh_dsa_key.c', 'openssl/providers/common/provider_ctx.c', 'openssl/providers/common/provider_err.c', 'openssl/providers/implementations/ciphers/ciphercommon.c', @@ -922,7 +1068,7 @@ 'openssl/providers/implementations/ciphers/ciphercommon_gcm_hw.c', 'openssl/providers/implementations/ciphers/ciphercommon_hw.c', 'openssl/providers/implementations/digests/digestcommon.c', - 'openssl/ssl/record/tls_pad.c', + 'openssl/ssl/record/methods/tls_pad.c', 'openssl/providers/implementations/ciphers/cipher_blowfish.c', 'openssl/providers/implementations/ciphers/cipher_blowfish_hw.c', 'openssl/providers/implementations/ciphers/cipher_cast5.c', @@ -947,16 +1093,20 @@ 'openssl/providers/implementations/digests/ripemd_prov.c', 'openssl/providers/implementations/digests/wp_prov.c', 'openssl/providers/implementations/kdfs/pbkdf1.c', + 'openssl/providers/implementations/kdfs/pvkkdf.c', 'openssl/providers/prov_running.c', 'openssl/providers/legacyprov.c', ], 'openssl_sources_VC-WIN32': [ + './config/archs/VC-WIN32/no-asm/crypto/params_idx.c', './config/archs/VC-WIN32/no-asm/providers/common/der/der_sm2_gen.c', './config/archs/VC-WIN32/no-asm/providers/common/der/der_digests_gen.c', './config/archs/VC-WIN32/no-asm/providers/common/der/der_dsa_gen.c', './config/archs/VC-WIN32/no-asm/providers/common/der/der_ec_gen.c', './config/archs/VC-WIN32/no-asm/providers/common/der/der_ecx_gen.c', + './config/archs/VC-WIN32/no-asm/providers/common/der/der_ml_dsa_gen.c', './config/archs/VC-WIN32/no-asm/providers/common/der/der_rsa_gen.c', + './config/archs/VC-WIN32/no-asm/providers/common/der/der_slh_dsa_gen.c', './config/archs/VC-WIN32/no-asm/providers/common/der/der_wrap_gen.c', ], 'openssl_defines_VC-WIN32': [ diff --git a/deps/openssl/config/archs/VC-WIN32/no-asm/providers/common/der/der_ml_dsa_gen.c b/deps/openssl/config/archs/VC-WIN32/no-asm/providers/common/der/der_ml_dsa_gen.c new file mode 100644 index 00000000000000..4a8a113a268578 --- /dev/null +++ b/deps/openssl/config/archs/VC-WIN32/no-asm/providers/common/der/der_ml_dsa_gen.c @@ -0,0 +1,37 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from providers/common/der/der_ml_dsa_gen.c.in + * + * Copyright 2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include "prov/der_ml_dsa.h" + +/* Well known OIDs precompiled */ + +/* + * id-ml-dsa-44 OBJECT IDENTIFIER ::= { sigAlgs 17 } + */ +const unsigned char ossl_der_oid_id_ml_dsa_44[DER_OID_SZ_id_ml_dsa_44] = { + DER_OID_V_id_ml_dsa_44 +}; + +/* + * id-ml-dsa-65 OBJECT IDENTIFIER ::= { sigAlgs 18 } + */ +const unsigned char ossl_der_oid_id_ml_dsa_65[DER_OID_SZ_id_ml_dsa_65] = { + DER_OID_V_id_ml_dsa_65 +}; + +/* + * id-ml-dsa-87 OBJECT IDENTIFIER ::= { sigAlgs 19 } + */ +const unsigned char ossl_der_oid_id_ml_dsa_87[DER_OID_SZ_id_ml_dsa_87] = { + DER_OID_V_id_ml_dsa_87 +}; + diff --git a/deps/openssl/config/archs/VC-WIN32/no-asm/providers/common/der/der_slh_dsa_gen.c b/deps/openssl/config/archs/VC-WIN32/no-asm/providers/common/der/der_slh_dsa_gen.c new file mode 100644 index 00000000000000..1419a9515097dd --- /dev/null +++ b/deps/openssl/config/archs/VC-WIN32/no-asm/providers/common/der/der_slh_dsa_gen.c @@ -0,0 +1,100 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from providers/common/der/der_slh_dsa_gen.c.in + * + * Copyright 2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include "prov/der_slh_dsa.h" + +/* Well known OIDs precompiled */ + +/* + * id-slh-dsa-sha2-128s OBJECT IDENTIFIER ::= { sigAlgs 20 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_128s[DER_OID_SZ_id_slh_dsa_sha2_128s] = { + DER_OID_V_id_slh_dsa_sha2_128s +}; + +/* + * id-slh-dsa-sha2-128f OBJECT IDENTIFIER ::= { sigAlgs 21 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_128f[DER_OID_SZ_id_slh_dsa_sha2_128f] = { + DER_OID_V_id_slh_dsa_sha2_128f +}; + +/* + * id-slh-dsa-sha2-192s OBJECT IDENTIFIER ::= { sigAlgs 22 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_192s[DER_OID_SZ_id_slh_dsa_sha2_192s] = { + DER_OID_V_id_slh_dsa_sha2_192s +}; + +/* + * id-slh-dsa-sha2-192f OBJECT IDENTIFIER ::= { sigAlgs 23 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_192f[DER_OID_SZ_id_slh_dsa_sha2_192f] = { + DER_OID_V_id_slh_dsa_sha2_192f +}; + +/* + * id-slh-dsa-sha2-256s OBJECT IDENTIFIER ::= { sigAlgs 24 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_256s[DER_OID_SZ_id_slh_dsa_sha2_256s] = { + DER_OID_V_id_slh_dsa_sha2_256s +}; + +/* + * id-slh-dsa-sha2-256f OBJECT IDENTIFIER ::= { sigAlgs 25 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_256f[DER_OID_SZ_id_slh_dsa_sha2_256f] = { + DER_OID_V_id_slh_dsa_sha2_256f +}; + +/* + * id-slh-dsa-shake-128s OBJECT IDENTIFIER ::= { sigAlgs 26 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_128s[DER_OID_SZ_id_slh_dsa_shake_128s] = { + DER_OID_V_id_slh_dsa_shake_128s +}; + +/* + * id-slh-dsa-shake-128f OBJECT IDENTIFIER ::= { sigAlgs 27 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_128f[DER_OID_SZ_id_slh_dsa_shake_128f] = { + DER_OID_V_id_slh_dsa_shake_128f +}; + +/* + * id-slh-dsa-shake-192s OBJECT IDENTIFIER ::= { sigAlgs 28 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_192s[DER_OID_SZ_id_slh_dsa_shake_192s] = { + DER_OID_V_id_slh_dsa_shake_192s +}; + +/* + * id-slh-dsa-shake-192f OBJECT IDENTIFIER ::= { sigAlgs 29 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_192f[DER_OID_SZ_id_slh_dsa_shake_192f] = { + DER_OID_V_id_slh_dsa_shake_192f +}; + +/* + * id-slh-dsa-shake-256s OBJECT IDENTIFIER ::= { sigAlgs 30 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_256s[DER_OID_SZ_id_slh_dsa_shake_256s] = { + DER_OID_V_id_slh_dsa_shake_256s +}; + +/* + * id-slh-dsa-shake-256f OBJECT IDENTIFIER ::= { sigAlgs 31 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_256f[DER_OID_SZ_id_slh_dsa_shake_256f] = { + DER_OID_V_id_slh_dsa_shake_256f +}; + diff --git a/deps/openssl/config/archs/VC-WIN32/no-asm/providers/common/include/prov/der_ml_dsa.h b/deps/openssl/config/archs/VC-WIN32/no-asm/providers/common/include/prov/der_ml_dsa.h new file mode 100644 index 00000000000000..c55f780ab4527c --- /dev/null +++ b/deps/openssl/config/archs/VC-WIN32/no-asm/providers/common/include/prov/der_ml_dsa.h @@ -0,0 +1,40 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from providers/common/include/prov/der_ml_dsa.h.in + * + * Copyright 2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include "internal/der.h" +#include "crypto/ml_dsa.h" + +/* Well known OIDs precompiled */ + +/* + * id-ml-dsa-44 OBJECT IDENTIFIER ::= { sigAlgs 17 } + */ +#define DER_OID_V_id_ml_dsa_44 DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x11 +#define DER_OID_SZ_id_ml_dsa_44 11 +extern const unsigned char ossl_der_oid_id_ml_dsa_44[DER_OID_SZ_id_ml_dsa_44]; + +/* + * id-ml-dsa-65 OBJECT IDENTIFIER ::= { sigAlgs 18 } + */ +#define DER_OID_V_id_ml_dsa_65 DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x12 +#define DER_OID_SZ_id_ml_dsa_65 11 +extern const unsigned char ossl_der_oid_id_ml_dsa_65[DER_OID_SZ_id_ml_dsa_65]; + +/* + * id-ml-dsa-87 OBJECT IDENTIFIER ::= { sigAlgs 19 } + */ +#define DER_OID_V_id_ml_dsa_87 DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x13 +#define DER_OID_SZ_id_ml_dsa_87 11 +extern const unsigned char ossl_der_oid_id_ml_dsa_87[DER_OID_SZ_id_ml_dsa_87]; + + +int ossl_DER_w_algorithmIdentifier_ML_DSA(WPACKET *pkt, int tag, ML_DSA_KEY *key); diff --git a/deps/openssl/config/archs/VC-WIN32/no-asm/providers/common/include/prov/der_slh_dsa.h b/deps/openssl/config/archs/VC-WIN32/no-asm/providers/common/include/prov/der_slh_dsa.h new file mode 100644 index 00000000000000..760f8e7699be72 --- /dev/null +++ b/deps/openssl/config/archs/VC-WIN32/no-asm/providers/common/include/prov/der_slh_dsa.h @@ -0,0 +1,103 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from providers/common/include/prov/der_slh_dsa.h.in + * + * Copyright 2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include "internal/der.h" +#include "crypto/slh_dsa.h" + +/* Well known OIDs precompiled */ + +/* + * id-slh-dsa-sha2-128s OBJECT IDENTIFIER ::= { sigAlgs 20 } + */ +#define DER_OID_V_id_slh_dsa_sha2_128s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x14 +#define DER_OID_SZ_id_slh_dsa_sha2_128s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_128s[DER_OID_SZ_id_slh_dsa_sha2_128s]; + +/* + * id-slh-dsa-sha2-128f OBJECT IDENTIFIER ::= { sigAlgs 21 } + */ +#define DER_OID_V_id_slh_dsa_sha2_128f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x15 +#define DER_OID_SZ_id_slh_dsa_sha2_128f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_128f[DER_OID_SZ_id_slh_dsa_sha2_128f]; + +/* + * id-slh-dsa-sha2-192s OBJECT IDENTIFIER ::= { sigAlgs 22 } + */ +#define DER_OID_V_id_slh_dsa_sha2_192s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x16 +#define DER_OID_SZ_id_slh_dsa_sha2_192s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_192s[DER_OID_SZ_id_slh_dsa_sha2_192s]; + +/* + * id-slh-dsa-sha2-192f OBJECT IDENTIFIER ::= { sigAlgs 23 } + */ +#define DER_OID_V_id_slh_dsa_sha2_192f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x17 +#define DER_OID_SZ_id_slh_dsa_sha2_192f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_192f[DER_OID_SZ_id_slh_dsa_sha2_192f]; + +/* + * id-slh-dsa-sha2-256s OBJECT IDENTIFIER ::= { sigAlgs 24 } + */ +#define DER_OID_V_id_slh_dsa_sha2_256s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x18 +#define DER_OID_SZ_id_slh_dsa_sha2_256s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_256s[DER_OID_SZ_id_slh_dsa_sha2_256s]; + +/* + * id-slh-dsa-sha2-256f OBJECT IDENTIFIER ::= { sigAlgs 25 } + */ +#define DER_OID_V_id_slh_dsa_sha2_256f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x19 +#define DER_OID_SZ_id_slh_dsa_sha2_256f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_256f[DER_OID_SZ_id_slh_dsa_sha2_256f]; + +/* + * id-slh-dsa-shake-128s OBJECT IDENTIFIER ::= { sigAlgs 26 } + */ +#define DER_OID_V_id_slh_dsa_shake_128s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1A +#define DER_OID_SZ_id_slh_dsa_shake_128s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_128s[DER_OID_SZ_id_slh_dsa_shake_128s]; + +/* + * id-slh-dsa-shake-128f OBJECT IDENTIFIER ::= { sigAlgs 27 } + */ +#define DER_OID_V_id_slh_dsa_shake_128f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1B +#define DER_OID_SZ_id_slh_dsa_shake_128f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_128f[DER_OID_SZ_id_slh_dsa_shake_128f]; + +/* + * id-slh-dsa-shake-192s OBJECT IDENTIFIER ::= { sigAlgs 28 } + */ +#define DER_OID_V_id_slh_dsa_shake_192s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1C +#define DER_OID_SZ_id_slh_dsa_shake_192s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_192s[DER_OID_SZ_id_slh_dsa_shake_192s]; + +/* + * id-slh-dsa-shake-192f OBJECT IDENTIFIER ::= { sigAlgs 29 } + */ +#define DER_OID_V_id_slh_dsa_shake_192f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1D +#define DER_OID_SZ_id_slh_dsa_shake_192f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_192f[DER_OID_SZ_id_slh_dsa_shake_192f]; + +/* + * id-slh-dsa-shake-256s OBJECT IDENTIFIER ::= { sigAlgs 30 } + */ +#define DER_OID_V_id_slh_dsa_shake_256s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1E +#define DER_OID_SZ_id_slh_dsa_shake_256s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_256s[DER_OID_SZ_id_slh_dsa_shake_256s]; + +/* + * id-slh-dsa-shake-256f OBJECT IDENTIFIER ::= { sigAlgs 31 } + */ +#define DER_OID_V_id_slh_dsa_shake_256f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1F +#define DER_OID_SZ_id_slh_dsa_shake_256f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_256f[DER_OID_SZ_id_slh_dsa_shake_256f]; + + +int ossl_DER_w_algorithmIdentifier_SLH_DSA(WPACKET *pkt, int tag, SLH_DSA_KEY *key); diff --git a/deps/openssl/config/archs/VC-WIN64-ARM/no-asm/apps/progs.c b/deps/openssl/config/archs/VC-WIN64-ARM/no-asm/apps/progs.c index 43cef00799b86e..acc204a3e6e781 100644 --- a/deps/openssl/config/archs/VC-WIN64-ARM/no-asm/apps/progs.c +++ b/deps/openssl/config/archs/VC-WIN64-ARM/no-asm/apps/progs.c @@ -89,6 +89,7 @@ FUNCTION functions[] = { {FT_general, "s_time", s_time_main, s_time_options, NULL, NULL}, #endif {FT_general, "sess_id", sess_id_main, sess_id_options, NULL, NULL}, + {FT_general, "skeyutl", skeyutl_main, skeyutl_options, NULL, NULL}, {FT_general, "smime", smime_main, smime_options, NULL, NULL}, {FT_general, "speed", speed_main, speed_options, NULL, NULL}, {FT_general, "spkac", spkac_main, spkac_options, NULL, NULL}, @@ -225,9 +226,15 @@ FUNCTION functions[] = { {FT_cipher, "camellia-256-ecb", enc_main, enc_options, NULL}, #endif {FT_cipher, "base64", enc_main, enc_options, NULL}, -#ifdef ZLIB +#ifndef OPENSSL_NO_ZLIB {FT_cipher, "zlib", enc_main, enc_options, NULL}, #endif +#ifndef OPENSSL_NO_BROTLI + {FT_cipher, "brotli", enc_main, enc_options, NULL}, +#endif +#ifndef OPENSSL_NO_ZSTD + {FT_cipher, "zstd", enc_main, enc_options, NULL}, +#endif #ifndef OPENSSL_NO_DES {FT_cipher, "des", enc_main, enc_options, NULL}, #endif diff --git a/deps/openssl/config/archs/VC-WIN64-ARM/no-asm/configdata.pm b/deps/openssl/config/archs/VC-WIN64-ARM/no-asm/configdata.pm index 8947bd53f11632..57067d499d9a6f 100644 --- a/deps/openssl/config/archs/VC-WIN64-ARM/no-asm/configdata.pm +++ b/deps/openssl/config/archs/VC-WIN64-ARM/no-asm/configdata.pm @@ -18,6 +18,7 @@ our %config = ( "ARFLAGS" => [ "/nologo" ], + "ASFLAGS" => [], "CC" => "cl", "CFLAGS" => [ "/W3 /wd4090 /nologo /O2" @@ -28,6 +29,7 @@ our %config = ( "CPPINCLUDES" => [], "CXXFLAGS" => [], "FIPSKEY" => "f4556650ac31d35461610bac4ed81b1a181b2d8a43ea2854cbae22ca74560813", + "FIPS_VENDOR" => "OpenSSL FIPS Provider", "HASHBANGPERL" => "/usr/bin/env perl", "LD" => "link", "LDFLAGS" => [ @@ -42,7 +44,7 @@ our %config = ( "RANLIB" => "ranlib", "RC" => "rc", "RCFLAGS" => [], - "api" => "30000", + "api" => "30500", "b32" => "0", "b64" => "1", "b64l" => "0", @@ -64,11 +66,13 @@ our %config = ( "doc/build.info", "test/build.info", "engines/build.info", + "exporters/build.info", "crypto/objects/build.info", "crypto/buffer/build.info", "crypto/bio/build.info", "crypto/stack/build.info", "crypto/lhash/build.info", + "crypto/hashtable/build.info", "crypto/rand/build.info", "crypto/evp/build.info", "crypto/asn1/build.info", @@ -86,6 +90,7 @@ our %config = ( "crypto/md5/build.info", "crypto/sha/build.info", "crypto/mdc2/build.info", + "crypto/ml_kem/build.info", "crypto/hmac/build.info", "crypto/ripemd/build.info", "crypto/whrlpool/build.info", @@ -127,11 +132,19 @@ our %config = ( "crypto/cmp/build.info", "crypto/encode_decode/build.info", "crypto/ffc/build.info", + "crypto/hpke/build.info", + "crypto/thread/build.info", + "crypto/ml_dsa/build.info", + "crypto/slh_dsa/build.info", + "ssl/record/build.info", + "ssl/rio/build.info", + "ssl/quic/build.info", "apps/lib/build.info", "providers/common/build.info", "providers/implementations/build.info", "providers/fips/build.info", "doc/man1/build.info", + "ssl/record/methods/build.info", "providers/common/der/build.info", "providers/implementations/digests/build.info", "providers/implementations/ciphers/build.info", @@ -145,6 +158,7 @@ our %config = ( "providers/implementations/encode_decode/build.info", "providers/implementations/storemgmt/build.info", "providers/implementations/kem/build.info", + "providers/implementations/skeymgmt/build.info", "providers/implementations/rands/seeding/build.info" ], "build_metadata" => "", @@ -163,7 +177,7 @@ our %config = ( ], "dynamic_engines" => "0", "ex_libs" => [], - "full_version" => "3.0.17", + "full_version" => "3.5.1", "includes" => [], "lflags" => [], "lib_defines" => [ @@ -173,9 +187,9 @@ our %config = ( "major" => "3", "makedep_scheme" => "VC", "makedepcmd" => "\$(CC) /Zs /showIncludes", - "minor" => "0", + "minor" => "5", "openssl_api_defines" => [ - "OPENSSL_CONFIGURED_API=30000" + "OPENSSL_CONFIGURED_API=30500" ], "openssl_feature_defines" => [ "OPENSSL_RAND_SEED_OS", @@ -183,28 +197,42 @@ our %config = ( "OPENSSL_NO_AFALGENG", "OPENSSL_NO_ASAN", "OPENSSL_NO_ASM", + "OPENSSL_NO_BROTLI", + "OPENSSL_NO_BROTLI_DYNAMIC", "OPENSSL_NO_COMP", "OPENSSL_NO_CRYPTO_MDEBUG", "OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE", + "OPENSSL_NO_DEMOS", "OPENSSL_NO_DEVCRYPTOENG", "OPENSSL_NO_EC_NISTP_64_GCC_128", "OPENSSL_NO_EGD", "OPENSSL_NO_EXTERNAL_TESTS", + "OPENSSL_NO_FIPS_JITTER", "OPENSSL_NO_FUZZ_AFL", "OPENSSL_NO_FUZZ_LIBFUZZER", + "OPENSSL_NO_H3DEMO", + "OPENSSL_NO_HQINTEROP", + "OPENSSL_NO_JITTER", "OPENSSL_NO_KTLS", "OPENSSL_NO_LOADERENG", "OPENSSL_NO_MD2", "OPENSSL_NO_MSAN", + "OPENSSL_NO_PIE", "OPENSSL_NO_RC5", "OPENSSL_NO_SCTP", "OPENSSL_NO_SSL3", "OPENSSL_NO_SSL3_METHOD", + "OPENSSL_NO_SSLKEYLOG", + "OPENSSL_NO_TFO", "OPENSSL_NO_TRACE", "OPENSSL_NO_UBSAN", "OPENSSL_NO_UNIT_TEST", "OPENSSL_NO_UPLINK", "OPENSSL_NO_WEAK_SSL_CIPHERS", + "OPENSSL_NO_ZLIB", + "OPENSSL_NO_ZLIB_DYNAMIC", + "OPENSSL_NO_ZSTD", + "OPENSSL_NO_ZSTD_DYNAMIC", "OPENSSL_NO_DYNAMIC_ENGINE" ], "openssl_other_defines" => [ @@ -212,11 +240,11 @@ our %config = ( ], "openssl_sys_defines" => [], "openssldir" => "", - "options" => "enable-ssl-trace enable-fips no-afalgeng no-asan no-asm no-buildtest-c++ no-comp no-crypto-mdebug no-crypto-mdebug-backtrace no-devcryptoeng no-dynamic-engine no-ec_nistp_64_gcc_128 no-egd no-external-tests no-fuzz-afl no-fuzz-libfuzzer no-ktls no-loadereng no-md2 no-msan no-rc5 no-sctp no-shared no-ssl3 no-ssl3-method no-trace no-ubsan no-unit-test no-uplink no-weak-ssl-ciphers no-zlib no-zlib-dynamic", - "patch" => "17", + "options" => "enable-ssl-trace enable-fips no-afalgeng no-asan no-asm no-brotli no-brotli-dynamic no-buildtest-c++ no-comp no-crypto-mdebug no-crypto-mdebug-backtrace no-demos no-devcryptoeng no-dynamic-engine no-ec_nistp_64_gcc_128 no-egd no-external-tests no-fips-jitter no-fuzz-afl no-fuzz-libfuzzer no-h3demo no-hqinterop no-jitter no-ktls no-loadereng no-md2 no-msan no-pie no-rc5 no-sctp no-shared no-ssl3 no-ssl3-method no-sslkeylog no-tfo no-trace no-ubsan no-unit-test no-uplink no-weak-ssl-ciphers no-zlib no-zlib-dynamic no-zstd no-zstd-dynamic", + "patch" => "1", "perl_archname" => "x86_64-linux-gnu-thread-multi", "perl_cmd" => "/usr/bin/perl", - "perl_version" => "5.38.2", + "perl_version" => "5.34.0", "perlargv" => [ "no-comp", "no-shared", @@ -247,6 +275,7 @@ our %config = ( "LDLIBS" => undef, "MT" => undef, "MTFLAGS" => undef, + "OBJCOPY" => undef, "OPENSSL_LOCAL_CONFIG_DIR" => undef, "PERL" => undef, "RANLIB" => undef, @@ -270,7 +299,7 @@ our %config = ( "shlib_version" => "3", "sourcedir" => ".", "target" => "VC-WIN64-ARM", - "version" => "3.0.17" + "version" => "3.5.1" ); our %target = ( "AR" => "lib", @@ -283,7 +312,7 @@ our %target = ( "LDFLAGS" => "/nologo /debug", "MT" => "mt", "MTFLAGS" => "-nologo", - "RANLIB" => "CODE(0x55be6aa845d8)", + "RANLIB" => "CODE(0x55e53022af60)", "RC" => "rc", "_conf_fname_int" => [ "Configurations/00-base-templates.conf", @@ -332,7 +361,7 @@ our %target = ( "ldoutflag" => "/out:", "ldpostoutflag" => "", "ldresflag" => " ", - "lflags" => "/NODEFAULTLIB:kernel32.lib /APPCONTAINER", + "lflags" => "/NODEFAULTLIB:kernel32.lib", "lib_cflags" => "/Zi /Fdossl_static.pdb /MT /Zl", "lib_cppflags" => "", "lib_defines" => [ @@ -362,6 +391,8 @@ our %target = ( our @disablables = ( "acvp-tests", "afalgeng", + "apps", + "argon2", "aria", "asan", "asm", @@ -372,11 +403,14 @@ our @disablables = ( "autoload-config", "bf", "blake2", + "brotli", + "brotli-dynamic", "buildtest-c++", "bulk", "cached-fetch", "camellia", "capieng", + "winstore", "cast", "chacha", "cmac", @@ -385,11 +419,16 @@ our @disablables = ( "comp", "crypto-mdebug", "ct", + "default-thread-pool", + "demos", + "h3demo", + "hqinterop", "deprecated", "des", "devcryptoeng", "dgram", "dh", + "docs", "dsa", "dso", "dtls", @@ -399,6 +438,7 @@ our @disablables = ( "ec_nistp_64_gcc_128", "ecdh", "ecdsa", + "ecx", "egd", "engine", "err", @@ -406,10 +446,15 @@ our @disablables = ( "filenames", "fips", "fips-securitychecks", + "fips-post", + "fips-jitter", "fuzz-afl", "fuzz-libfuzzer", "gost", + "http", "idea", + "integrity-only-ciphers", + "jitter", "ktls", "legacy", "loadereng", @@ -417,6 +462,8 @@ our @disablables = ( "md2", "md4", "mdc2", + "ml-dsa", + "ml-kem", "module", "msan", "multiblock", @@ -425,10 +472,13 @@ our @disablables = ( "ocsp", "padlockeng", "pic", + "pie", "pinshared", "poly1305", "posix-io", "psk", + "quic", + "unstable-qlog", "rc2", "rc4", "rc5", @@ -442,7 +492,9 @@ our @disablables = ( "shared", "siphash", "siv", + "slh-dsa", "sm2", + "sm2-precomp", "sm3", "sm4", "sock", @@ -453,9 +505,13 @@ our @disablables = ( "ssl-trace", "static-engine", "stdio", + "sslkeylog", "tests", + "tfo", + "thread-pool", "threads", "tls", + "tls-deprecated-ec", "trace", "ts", "ubsan", @@ -466,6 +522,8 @@ our @disablables = ( "whirlpool", "zlib", "zlib-dynamic", + "zstd", + "zstd-dynamic", "ssl3", "ssl3-method", "tls1", @@ -487,33 +545,45 @@ our %disabled = ( "afalgeng" => "option", "asan" => "default", "asm" => "no asm_arch", + "brotli" => "default", + "brotli-dynamic" => "default", "buildtest-c++" => "default", "comp" => "option", "crypto-mdebug" => "default", "crypto-mdebug-backtrace" => "default", + "demos" => "default", "devcryptoeng" => "default", "dynamic-engine" => "cascade", "ec_nistp_64_gcc_128" => "default", "egd" => "default", "external-tests" => "default", + "fips-jitter" => "default", "fuzz-afl" => "default", "fuzz-libfuzzer" => "default", + "h3demo" => "default", + "hqinterop" => "default", + "jitter" => "default", "ktls" => "default", "loadereng" => "cascade", "md2" => "default", "msan" => "default", + "pie" => "default", "rc5" => "default", "sctp" => "default", "shared" => "option", "ssl3" => "default", "ssl3-method" => "default", + "sslkeylog" => "default", + "tfo" => "default", "trace" => "default", "ubsan" => "default", "unit-test" => "default", "uplink" => "no uplink_arch", "weak-ssl-ciphers" => "default", "zlib" => "default", - "zlib-dynamic" => "default" + "zlib-dynamic" => "default", + "zstd" => "default", + "zstd-dynamic" => "default" ); our %withargs = (); our %unified_info = ( @@ -739,6 +809,11 @@ our %unified_info = ( "pod" => "1" } }, + "doc/man1/openssl-skeyutl.pod" => { + "doc/man1/openssl-skeyutl.pod.in" => { + "pod" => "1" + } + }, "doc/man1/openssl-smime.pod" => { "doc/man1/openssl-smime.pod.in" => { "pod" => "1" @@ -796,6 +871,21 @@ our %unified_info = ( } }, "generate" => { + "exporters/OpenSSLConfig.cmake" => { + "exporter" => "cmake" + }, + "exporters/OpenSSLConfigVersion.cmake" => { + "exporter" => "cmake" + }, + "exporters/libcrypto.pc" => { + "exporter" => "pkg-config" + }, + "exporters/libssl.pc" => { + "exporter" => "pkg-config" + }, + "exporters/openssl.pc" => { + "exporter" => "pkg-config" + }, "include/openssl/configuration.h" => { "skip" => "1" } @@ -816,6 +906,9 @@ our %unified_info = ( "providers/liblegacy.a" => { "noinst" => "1" }, + "providers/libtemplate.a" => { + "noinst" => "1" + }, "test/libtestutil.a" => { "has_main" => "1", "noinst" => "1" @@ -833,6 +926,9 @@ our %unified_info = ( } }, "programs" => { + "fuzz/acert-test" => { + "noinst" => "1" + }, "fuzz/asn1-test" => { "noinst" => "1" }, @@ -863,9 +959,60 @@ our %unified_info = ( "fuzz/ct-test" => { "noinst" => "1" }, + "fuzz/decoder-test" => { + "noinst" => "1" + }, + "fuzz/dtlsclient-test" => { + "noinst" => "1" + }, + "fuzz/dtlsserver-test" => { + "noinst" => "1" + }, + "fuzz/hashtable-test" => { + "noinst" => "1" + }, + "fuzz/ml-dsa-test" => { + "noinst" => "1" + }, + "fuzz/ml-kem-test" => { + "noinst" => "1" + }, + "fuzz/pem-test" => { + "noinst" => "1" + }, + "fuzz/provider-test" => { + "noinst" => "1" + }, + "fuzz/punycode-test" => { + "noinst" => "1" + }, + "fuzz/quic-client-test" => { + "noinst" => "1" + }, + "fuzz/quic-lcidm-test" => { + "noinst" => "1" + }, + "fuzz/quic-rcidm-test" => { + "noinst" => "1" + }, + "fuzz/quic-server-test" => { + "noinst" => "1" + }, + "fuzz/quic-srtm-test" => { + "noinst" => "1" + }, "fuzz/server-test" => { "noinst" => "1" }, + "fuzz/slh-dsa-test" => { + "noinst" => "1" + }, + "fuzz/smime-test" => { + "noinst" => "1" + }, + "fuzz/v3name-test" => { + "noinst" => "1" + }, "fuzz/x509-test" => { "noinst" => "1" }, @@ -917,18 +1064,30 @@ our %unified_info = ( "test/bftest" => { "noinst" => "1" }, + "test/bio_addr_test" => { + "noinst" => "1" + }, + "test/bio_base64_test" => { + "noinst" => "1" + }, "test/bio_callback_test" => { "noinst" => "1" }, "test/bio_core_test" => { "noinst" => "1" }, + "test/bio_dgram_test" => { + "noinst" => "1" + }, "test/bio_enc_test" => { "noinst" => "1" }, "test/bio_memleak_test" => { "noinst" => "1" }, + "test/bio_meth_test" => { + "noinst" => "1" + }, "test/bio_prefix_text" => { "noinst" => "1" }, @@ -938,6 +1097,9 @@ our %unified_info = ( "test/bio_readbuffer_test" => { "noinst" => "1" }, + "test/bio_tfo_test" => { + "noinst" => "1" + }, "test/bioprinttest" => { "noinst" => "1" }, @@ -947,6 +1109,9 @@ our %unified_info = ( "test/bntest" => { "noinst" => "1" }, + "test/build_wincrypt_test" => { + "noinst" => "1" + }, "test/buildtest_c_aes" => { "noinst" => "1" }, @@ -962,6 +1127,9 @@ our %unified_info = ( "test/buildtest_c_buffer" => { "noinst" => "1" }, + "test/buildtest_c_byteorder" => { + "noinst" => "1" + }, "test/buildtest_c_camellia" => { "noinst" => "1" }, @@ -986,9 +1154,6 @@ our %unified_info = ( "test/buildtest_c_core_dispatch" => { "noinst" => "1" }, - "test/buildtest_c_core_names" => { - "noinst" => "1" - }, "test/buildtest_c_core_object" => { "noinst" => "1" }, @@ -1013,6 +1178,9 @@ our %unified_info = ( "test/buildtest_c_e_os2" => { "noinst" => "1" }, + "test/buildtest_c_e_ostime" => { + "noinst" => "1" + }, "test/buildtest_c_ebcdic" => { "noinst" => "1" }, @@ -1040,12 +1208,18 @@ our %unified_info = ( "test/buildtest_c_hmac" => { "noinst" => "1" }, + "test/buildtest_c_hpke" => { + "noinst" => "1" + }, "test/buildtest_c_http" => { "noinst" => "1" }, "test/buildtest_c_idea" => { "noinst" => "1" }, + "test/buildtest_c_indicator" => { + "noinst" => "1" + }, "test/buildtest_c_kdf" => { "noinst" => "1" }, @@ -1061,6 +1235,9 @@ our %unified_info = ( "test/buildtest_c_mdc2" => { "noinst" => "1" }, + "test/buildtest_c_ml_kem" => { + "noinst" => "1" + }, "test/buildtest_c_modes" => { "noinst" => "1" }, @@ -1091,6 +1268,9 @@ our %unified_info = ( "test/buildtest_c_provider" => { "noinst" => "1" }, + "test/buildtest_c_quic" => { + "noinst" => "1" + }, "test/buildtest_c_rand" => { "noinst" => "1" }, @@ -1133,6 +1313,9 @@ our %unified_info = ( "test/buildtest_c_symhacks" => { "noinst" => "1" }, + "test/buildtest_c_thread" => { + "noinst" => "1" + }, "test/buildtest_c_tls1" => { "noinst" => "1" }, @@ -1148,6 +1331,12 @@ our %unified_info = ( "test/buildtest_c_whrlpool" => { "noinst" => "1" }, + "test/byteorder_test" => { + "noinst" => "1" + }, + "test/ca_internals_test" => { + "noinst" => "1" + }, "test/casttest" => { "noinst" => "1" }, @@ -1232,6 +1421,9 @@ our %unified_info = ( "test/danetest" => { "noinst" => "1" }, + "test/decoder_propq_test" => { + "noinst" => "1" + }, "test/defltfips_test" => { "noinst" => "1" }, @@ -1304,15 +1496,24 @@ our %unified_info = ( "test/evp_pkey_ctx_new_from_name" => { "noinst" => "1" }, + "test/evp_pkey_dhkem_test" => { + "noinst" => "1" + }, "test/evp_pkey_dparams_test" => { "noinst" => "1" }, "test/evp_pkey_provided_test" => { "noinst" => "1" }, + "test/evp_skey_test" => { + "noinst" => "1" + }, "test/evp_test" => { "noinst" => "1" }, + "test/evp_xof_test" => { + "noinst" => "1" + }, "test/exdatatest" => { "noinst" => "1" }, @@ -1340,6 +1541,9 @@ our %unified_info = ( "test/hmactest" => { "noinst" => "1" }, + "test/hpke_test" => { + "noinst" => "1" + }, "test/http_test" => { "noinst" => "1" }, @@ -1349,12 +1553,18 @@ our %unified_info = ( "test/igetest" => { "noinst" => "1" }, + "test/json_test" => { + "noinst" => "1" + }, "test/keymgmt_internal_test" => { "noinst" => "1" }, "test/lhash_test" => { "noinst" => "1" }, + "test/list_test" => { + "noinst" => "1" + }, "test/localetest" => { "noinst" => "1" }, @@ -1364,9 +1574,21 @@ our %unified_info = ( "test/mdc2test" => { "noinst" => "1" }, + "test/membio_test" => { + "noinst" => "1" + }, "test/memleaktest" => { "noinst" => "1" }, + "test/ml_dsa_test" => { + "noinst" => "1" + }, + "test/ml_kem_evp_extra_test" => { + "noinst" => "1" + }, + "test/ml_kem_internal_test" => { + "noinst" => "1" + }, "test/modes_internal_test" => { "noinst" => "1" }, @@ -1385,6 +1607,9 @@ our %unified_info = ( "test/packettest" => { "noinst" => "1" }, + "test/pairwise_fail_test" => { + "noinst" => "1" + }, "test/param_build_test" => { "noinst" => "1" }, @@ -1409,6 +1634,9 @@ our %unified_info = ( "test/pemtest" => { "noinst" => "1" }, + "test/pkcs12_api_test" => { + "noinst" => "1" + }, "test/pkcs12_format_test" => { "noinst" => "1" }, @@ -1424,6 +1652,9 @@ our %unified_info = ( "test/poly1305_internal_test" => { "noinst" => "1" }, + "test/priority_queue_test" => { + "noinst" => "1" + }, "test/property_test" => { "noinst" => "1" }, @@ -1433,6 +1664,9 @@ our %unified_info = ( "test/provfetchtest" => { "noinst" => "1" }, + "test/provider_default_search_path_test" => { + "noinst" => "1" + }, "test/provider_fallback_test" => { "noinst" => "1" }, @@ -1451,6 +1685,72 @@ our %unified_info = ( "test/punycode_test" => { "noinst" => "1" }, + "test/quic_ackm_test" => { + "noinst" => "1" + }, + "test/quic_cc_test" => { + "noinst" => "1" + }, + "test/quic_cfq_test" => { + "noinst" => "1" + }, + "test/quic_client_test" => { + "noinst" => "1" + }, + "test/quic_fc_test" => { + "noinst" => "1" + }, + "test/quic_fifd_test" => { + "noinst" => "1" + }, + "test/quic_lcidm_test" => { + "noinst" => "1" + }, + "test/quic_multistream_test" => { + "noinst" => "1" + }, + "test/quic_newcid_test" => { + "noinst" => "1" + }, + "test/quic_qlog_test" => { + "noinst" => "1" + }, + "test/quic_radix_test" => { + "noinst" => "1" + }, + "test/quic_rcidm_test" => { + "noinst" => "1" + }, + "test/quic_record_test" => { + "noinst" => "1" + }, + "test/quic_srt_gen_test" => { + "noinst" => "1" + }, + "test/quic_srtm_test" => { + "noinst" => "1" + }, + "test/quic_stream_test" => { + "noinst" => "1" + }, + "test/quic_tserver_test" => { + "noinst" => "1" + }, + "test/quic_txp_test" => { + "noinst" => "1" + }, + "test/quic_txpim_test" => { + "noinst" => "1" + }, + "test/quic_wire_test" => { + "noinst" => "1" + }, + "test/quicapitest" => { + "noinst" => "1" + }, + "test/quicfaultstest" => { + "noinst" => "1" + }, "test/rand_status_test" => { "noinst" => "1" }, @@ -1466,12 +1766,15 @@ our %unified_info = ( "test/rc5test" => { "noinst" => "1" }, - "test/rdrand_sanitytest" => { + "test/rdcpu_sanitytest" => { "noinst" => "1" }, "test/recordlentest" => { "noinst" => "1" }, + "test/rpktest" => { + "noinst" => "1" + }, "test/rsa_complex" => { "noinst" => "1" }, @@ -1484,6 +1787,12 @@ our %unified_info = ( "test/rsa_test" => { "noinst" => "1" }, + "test/rsa_x931_test" => { + "noinst" => "1" + }, + "test/safe_math_test" => { + "noinst" => "1" + }, "test/sanitytest" => { "noinst" => "1" }, @@ -1499,6 +1808,9 @@ our %unified_info = ( "test/siphash_internal_test" => { "noinst" => "1" }, + "test/slh_dsa_test" => { + "noinst" => "1" + }, "test/sm2_internal_test" => { "noinst" => "1" }, @@ -1520,6 +1832,9 @@ our %unified_info = ( "test/ssl_ctx_test" => { "noinst" => "1" }, + "test/ssl_handshake_rtt_test" => { + "noinst" => "1" + }, "test/ssl_old_test" => { "noinst" => "1" }, @@ -1541,12 +1856,18 @@ our %unified_info = ( "test/stack_test" => { "noinst" => "1" }, + "test/strtoultest" => { + "noinst" => "1" + }, "test/sysdefaulttest" => { "noinst" => "1" }, "test/test_test" => { "noinst" => "1" }, + "test/threadpool_test" => { + "noinst" => "1" + }, "test/threadstest" => { "noinst" => "1" }, @@ -1556,12 +1877,18 @@ our %unified_info = ( "test/time_offset_test" => { "noinst" => "1" }, + "test/time_test" => { + "noinst" => "1" + }, "test/tls13ccstest" => { "noinst" => "1" }, "test/tls13encryptiontest" => { "noinst" => "1" }, + "test/tls13groupselection_test" => { + "noinst" => "1" + }, "test/trace_api_test" => { "noinst" => "1" }, @@ -1589,6 +1916,9 @@ our %unified_info = ( "test/wpackettest" => { "noinst" => "1" }, + "test/x509_acert_test" => { + "noinst" => "1" + }, "test/x509_check_cert_pkey_test" => { "noinst" => "1" }, @@ -1598,6 +1928,15 @@ our %unified_info = ( "test/x509_internal_test" => { "noinst" => "1" }, + "test/x509_load_cert_file_test" => { + "noinst" => "1" + }, + "test/x509_req_test" => { + "noinst" => "1" + }, + "test/x509_test" => { + "noinst" => "1" + }, "test/x509_time_test" => { "noinst" => "1" }, @@ -1638,6 +1977,9 @@ our %unified_info = ( "providers/libfips.a" => [ "FIPS_MODULE" ], + "test/endecode_test" => [ + "STATIC_LEGACY" + ], "test/evp_extra_test" => [ "STATIC_LEGACY" ], @@ -1650,14 +1992,21 @@ our %unified_info = ( }, "depends" => { "" => [ + "OpenSSLConfigVersion.cmake", + "crypto/params_idx.c", + "exporters/OpenSSLConfigVersion.cmake", + "exporters/openssl.pc", "include/crypto/bn_conf.h", "include/crypto/dso_conf.h", + "include/internal/param_names.h", "include/openssl/asn1.h", "include/openssl/asn1t.h", "include/openssl/bio.h", "include/openssl/cmp.h", "include/openssl/cms.h", + "include/openssl/comp.h", "include/openssl/conf.h", + "include/openssl/core_names.h", "include/openssl/crmf.h", "include/openssl/crypto.h", "include/openssl/ct.h", @@ -1674,10 +2023,22 @@ our %unified_info = ( "include/openssl/ssl.h", "include/openssl/ui.h", "include/openssl/x509.h", + "include/openssl/x509_acert.h", "include/openssl/x509_vfy.h", "include/openssl/x509v3.h", + "openssl.pc", "test/provider_internal_test.cnf" ], + "OpenSSLConfig.cmake" => [ + "builddata.pm" + ], + "OpenSSLConfigVersion.cmake" => [ + "OpenSSLConfig.cmake", + "builddata.pm" + ], + "apps/ca_internals_test-bin-ca.o" => [ + "apps/progs.h" + ], "apps/lib/cmp_client_test-bin-cmp_mock_srv.o" => [ "apps/progs.h" ], @@ -1823,6 +2184,9 @@ our %unified_info = ( "apps/openssl-bin-sess_id.o" => [ "apps/progs.h" ], + "apps/openssl-bin-skeyutl.o" => [ + "apps/progs.h" + ], "apps/openssl-bin-smime.o" => [ "apps/progs.h" ], @@ -1911,6 +2275,9 @@ our %unified_info = ( "crypto/libcrypto-lib-info.o" => [ "crypto/buildinf.h" ], + "crypto/params_idx.c" => [ + "util/perl|OpenSSL/paramnames.pm" + ], "crypto/rc4/rc4-586.S" => [ "crypto/perlasm/x86asm.pl" ], @@ -2076,6 +2443,9 @@ our %unified_info = ( "doc/html/man1/openssl-sess_id.html" => [ "doc/man1/openssl-sess_id.pod" ], + "doc/html/man1/openssl-skeyutl.html" => [ + "doc/man1/openssl-skeyutl.pod" + ], "doc/html/man1/openssl-smime.html" => [ "doc/man1/openssl-smime.pod" ], @@ -2217,6 +2587,9 @@ our %unified_info = ( "doc/html/man3/BIO_get_ex_new_index.html" => [ "doc/man3/BIO_get_ex_new_index.pod" ], + "doc/html/man3/BIO_get_rpoll_descriptor.html" => [ + "doc/man3/BIO_get_rpoll_descriptor.pod" + ], "doc/html/man3/BIO_meth_new.html" => [ "doc/man3/BIO_meth_new.pod" ], @@ -2253,6 +2626,9 @@ our %unified_info = ( "doc/html/man3/BIO_s_datagram.html" => [ "doc/man3/BIO_s_datagram.pod" ], + "doc/html/man3/BIO_s_dgram_pair.html" => [ + "doc/man3/BIO_s_dgram_pair.pod" + ], "doc/html/man3/BIO_s_fd.html" => [ "doc/man3/BIO_s_fd.pod" ], @@ -2268,6 +2644,9 @@ our %unified_info = ( "doc/html/man3/BIO_s_socket.html" => [ "doc/man3/BIO_s_socket.pod" ], + "doc/html/man3/BIO_sendmmsg.html" => [ + "doc/man3/BIO_sendmmsg.pod" + ], "doc/html/man3/BIO_set_callback.html" => [ "doc/man3/BIO_set_callback.pod" ], @@ -2340,6 +2719,9 @@ our %unified_info = ( "doc/html/man3/BUF_MEM_new.html" => [ "doc/man3/BUF_MEM_new.pod" ], + "doc/html/man3/CMAC_CTX.html" => [ + "doc/man3/CMAC_CTX.pod" + ], "doc/html/man3/CMS_EncryptedData_decrypt.html" => [ "doc/man3/CMS_EncryptedData_decrypt.pod" ], @@ -2406,6 +2788,9 @@ our %unified_info = ( "doc/html/man3/CMS_verify_receipt.html" => [ "doc/man3/CMS_verify_receipt.pod" ], + "doc/html/man3/COMP_CTX_new.html" => [ + "doc/man3/COMP_CTX_new.pod" + ], "doc/html/man3/CONF_modules_free.html" => [ "doc/man3/CONF_modules_free.pod" ], @@ -2505,6 +2890,12 @@ our %unified_info = ( "doc/html/man3/DTLS_set_timer_cb.html" => [ "doc/man3/DTLS_set_timer_cb.pod" ], + "doc/html/man3/DTLSv1_get_timeout.html" => [ + "doc/man3/DTLSv1_get_timeout.pod" + ], + "doc/html/man3/DTLSv1_handle_timeout.html" => [ + "doc/man3/DTLSv1_handle_timeout.pod" + ], "doc/html/man3/DTLSv1_listen.html" => [ "doc/man3/DTLSv1_listen.pod" ], @@ -2643,6 +3034,9 @@ our %unified_info = ( "doc/html/man3/EVP_PKEY_CTX_get0_pkey.html" => [ "doc/man3/EVP_PKEY_CTX_get0_pkey.pod" ], + "doc/html/man3/EVP_PKEY_CTX_get_algor.html" => [ + "doc/man3/EVP_PKEY_CTX_get_algor.pod" + ], "doc/html/man3/EVP_PKEY_CTX_new.html" => [ "doc/man3/EVP_PKEY_CTX_new.pod" ], @@ -2760,6 +3154,12 @@ our %unified_info = ( "doc/html/man3/EVP_SIGNATURE.html" => [ "doc/man3/EVP_SIGNATURE.pod" ], + "doc/html/man3/EVP_SKEY.html" => [ + "doc/man3/EVP_SKEY.pod" + ], + "doc/html/man3/EVP_SKEYMGMT.html" => [ + "doc/man3/EVP_SKEYMGMT.pod" + ], "doc/html/man3/EVP_SealInit.html" => [ "doc/man3/EVP_SealInit.pod" ], @@ -2847,6 +3247,9 @@ our %unified_info = ( "doc/html/man3/EVP_whirlpool.html" => [ "doc/man3/EVP_whirlpool.pod" ], + "doc/html/man3/GENERAL_NAME.html" => [ + "doc/man3/GENERAL_NAME.pod" + ], "doc/html/man3/HMAC.html" => [ "doc/man3/HMAC.pod" ], @@ -2919,9 +3322,15 @@ our %unified_info = ( "doc/html/man3/OPENSSL_load_builtin_modules.html" => [ "doc/man3/OPENSSL_load_builtin_modules.pod" ], + "doc/html/man3/OPENSSL_load_u16_le.html" => [ + "doc/man3/OPENSSL_load_u16_le.pod" + ], "doc/html/man3/OPENSSL_malloc.html" => [ "doc/man3/OPENSSL_malloc.pod" ], + "doc/html/man3/OPENSSL_riscvcap.html" => [ + "doc/man3/OPENSSL_riscvcap.pod" + ], "doc/html/man3/OPENSSL_s390xcap.html" => [ "doc/man3/OPENSSL_s390xcap.pod" ], @@ -2937,12 +3346,18 @@ our %unified_info = ( "doc/html/man3/OSSL_CALLBACK.html" => [ "doc/man3/OSSL_CALLBACK.pod" ], + "doc/html/man3/OSSL_CMP_ATAV_set0.html" => [ + "doc/man3/OSSL_CMP_ATAV_set0.pod" + ], "doc/html/man3/OSSL_CMP_CTX_new.html" => [ "doc/man3/OSSL_CMP_CTX_new.pod" ], "doc/html/man3/OSSL_CMP_HDR_get0_transactionID.html" => [ "doc/man3/OSSL_CMP_HDR_get0_transactionID.pod" ], + "doc/html/man3/OSSL_CMP_ITAV_new_caCerts.html" => [ + "doc/man3/OSSL_CMP_ITAV_new_caCerts.pod" + ], "doc/html/man3/OSSL_CMP_ITAV_set0.html" => [ "doc/man3/OSSL_CMP_ITAV_set0.pod" ], @@ -3012,9 +3427,18 @@ our %unified_info = ( "doc/html/man3/OSSL_ENCODER_to_bio.html" => [ "doc/man3/OSSL_ENCODER_to_bio.pod" ], + "doc/html/man3/OSSL_ERR_STATE_save.html" => [ + "doc/man3/OSSL_ERR_STATE_save.pod" + ], "doc/html/man3/OSSL_ESS_check_signing_certs.html" => [ "doc/man3/OSSL_ESS_check_signing_certs.pod" ], + "doc/html/man3/OSSL_GENERAL_NAMES_print.html" => [ + "doc/man3/OSSL_GENERAL_NAMES_print.pod" + ], + "doc/html/man3/OSSL_HPKE_CTX_new.html" => [ + "doc/man3/OSSL_HPKE_CTX_new.pod" + ], "doc/html/man3/OSSL_HTTP_REQ_CTX.html" => [ "doc/man3/OSSL_HTTP_REQ_CTX.pod" ], @@ -3024,12 +3448,24 @@ our %unified_info = ( "doc/html/man3/OSSL_HTTP_transfer.html" => [ "doc/man3/OSSL_HTTP_transfer.pod" ], + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX.html" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX.pod" + ], + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX_print.html" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX_print.pod" + ], + "doc/html/man3/OSSL_INDICATOR_set_callback.html" => [ + "doc/man3/OSSL_INDICATOR_set_callback.pod" + ], "doc/html/man3/OSSL_ITEM.html" => [ "doc/man3/OSSL_ITEM.pod" ], "doc/html/man3/OSSL_LIB_CTX.html" => [ "doc/man3/OSSL_LIB_CTX.pod" ], + "doc/html/man3/OSSL_LIB_CTX_set_conf_diagnostics.html" => [ + "doc/man3/OSSL_LIB_CTX_set_conf_diagnostics.pod" + ], "doc/html/man3/OSSL_PARAM.html" => [ "doc/man3/OSSL_PARAM.pod" ], @@ -3045,9 +3481,15 @@ our %unified_info = ( "doc/html/man3/OSSL_PARAM_int.html" => [ "doc/man3/OSSL_PARAM_int.pod" ], + "doc/html/man3/OSSL_PARAM_print_to_bio.html" => [ + "doc/man3/OSSL_PARAM_print_to_bio.pod" + ], "doc/html/man3/OSSL_PROVIDER.html" => [ "doc/man3/OSSL_PROVIDER.pod" ], + "doc/html/man3/OSSL_QUIC_client_method.html" => [ + "doc/man3/OSSL_QUIC_client_method.pod" + ], "doc/html/man3/OSSL_SELF_TEST_new.html" => [ "doc/man3/OSSL_SELF_TEST_new.pod" ], @@ -3072,6 +3514,9 @@ our %unified_info = ( "doc/html/man3/OSSL_STORE_open.html" => [ "doc/man3/OSSL_STORE_open.pod" ], + "doc/html/man3/OSSL_sleep.html" => [ + "doc/man3/OSSL_sleep.pod" + ], "doc/html/man3/OSSL_trace_enabled.html" => [ "doc/man3/OSSL_trace_enabled.pod" ], @@ -3087,6 +3532,9 @@ our %unified_info = ( "doc/html/man3/OpenSSL_version.html" => [ "doc/man3/OpenSSL_version.pod" ], + "doc/html/man3/PBMAC1_get1_pbkdf2_param.html" => [ + "doc/man3/PBMAC1_get1_pbkdf2_param.pod" + ], "doc/html/man3/PEM_X509_INFO_read_bio_ex.html" => [ "doc/man3/PEM_X509_INFO_read_bio_ex.pod" ], @@ -3123,6 +3571,9 @@ our %unified_info = ( "doc/html/man3/PKCS12_SAFEBAG_get1_cert.html" => [ "doc/man3/PKCS12_SAFEBAG_get1_cert.pod" ], + "doc/html/man3/PKCS12_SAFEBAG_set0_attrs.html" => [ + "doc/man3/PKCS12_SAFEBAG_set0_attrs.pod" + ], "doc/html/man3/PKCS12_add1_attr_by_NID.html" => [ "doc/man3/PKCS12_add1_attr_by_NID.pod" ], @@ -3396,6 +3847,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set0_CA_list.html" => [ "doc/man3/SSL_CTX_set0_CA_list.pod" ], + "doc/html/man3/SSL_CTX_set1_cert_comp_preference.html" => [ + "doc/man3/SSL_CTX_set1_cert_comp_preference.pod" + ], "doc/html/man3/SSL_CTX_set1_curves.html" => [ "doc/man3/SSL_CTX_set1_curves.pod" ], @@ -3435,6 +3889,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_default_passwd_cb.html" => [ "doc/man3/SSL_CTX_set_default_passwd_cb.pod" ], + "doc/html/man3/SSL_CTX_set_domain_flags.html" => [ + "doc/man3/SSL_CTX_set_domain_flags.pod" + ], "doc/html/man3/SSL_CTX_set_generate_session_id.html" => [ "doc/man3/SSL_CTX_set_generate_session_id.pod" ], @@ -3456,6 +3913,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_msg_callback.html" => [ "doc/man3/SSL_CTX_set_msg_callback.pod" ], + "doc/html/man3/SSL_CTX_set_new_pending_conn_cb.html" => [ + "doc/man3/SSL_CTX_set_new_pending_conn_cb.pod" + ], "doc/html/man3/SSL_CTX_set_num_tickets.html" => [ "doc/man3/SSL_CTX_set_num_tickets.pod" ], @@ -3570,6 +4030,9 @@ our %unified_info = ( "doc/html/man3/SSL_accept.html" => [ "doc/man3/SSL_accept.pod" ], + "doc/html/man3/SSL_accept_stream.html" => [ + "doc/man3/SSL_accept_stream.pod" + ], "doc/html/man3/SSL_alert_type_string.html" => [ "doc/man3/SSL_alert_type_string.pod" ], @@ -3597,9 +4060,21 @@ our %unified_info = ( "doc/html/man3/SSL_free.html" => [ "doc/man3/SSL_free.pod" ], + "doc/html/man3/SSL_get0_connection.html" => [ + "doc/man3/SSL_get0_connection.pod" + ], + "doc/html/man3/SSL_get0_group_name.html" => [ + "doc/man3/SSL_get0_group_name.pod" + ], + "doc/html/man3/SSL_get0_peer_rpk.html" => [ + "doc/man3/SSL_get0_peer_rpk.pod" + ], "doc/html/man3/SSL_get0_peer_scts.html" => [ "doc/man3/SSL_get0_peer_scts.pod" ], + "doc/html/man3/SSL_get1_builtin_sigalgs.html" => [ + "doc/man3/SSL_get1_builtin_sigalgs.pod" + ], "doc/html/man3/SSL_get_SSL_CTX.html" => [ "doc/man3/SSL_get_SSL_CTX.pod" ], @@ -3615,6 +4090,9 @@ our %unified_info = ( "doc/html/man3/SSL_get_client_random.html" => [ "doc/man3/SSL_get_client_random.pod" ], + "doc/html/man3/SSL_get_conn_close_info.html" => [ + "doc/man3/SSL_get_conn_close_info.pod" + ], "doc/html/man3/SSL_get_current_cipher.html" => [ "doc/man3/SSL_get_current_cipher.pod" ], @@ -3624,12 +4102,18 @@ our %unified_info = ( "doc/html/man3/SSL_get_error.html" => [ "doc/man3/SSL_get_error.pod" ], + "doc/html/man3/SSL_get_event_timeout.html" => [ + "doc/man3/SSL_get_event_timeout.pod" + ], "doc/html/man3/SSL_get_extms_support.html" => [ "doc/man3/SSL_get_extms_support.pod" ], "doc/html/man3/SSL_get_fd.html" => [ "doc/man3/SSL_get_fd.pod" ], + "doc/html/man3/SSL_get_handshake_rtt.html" => [ + "doc/man3/SSL_get_handshake_rtt.pod" + ], "doc/html/man3/SSL_get_peer_cert_chain.html" => [ "doc/man3/SSL_get_peer_cert_chain.pod" ], @@ -3648,12 +4132,24 @@ our %unified_info = ( "doc/html/man3/SSL_get_rbio.html" => [ "doc/man3/SSL_get_rbio.pod" ], + "doc/html/man3/SSL_get_rpoll_descriptor.html" => [ + "doc/man3/SSL_get_rpoll_descriptor.pod" + ], "doc/html/man3/SSL_get_session.html" => [ "doc/man3/SSL_get_session.pod" ], "doc/html/man3/SSL_get_shared_sigalgs.html" => [ "doc/man3/SSL_get_shared_sigalgs.pod" ], + "doc/html/man3/SSL_get_stream_id.html" => [ + "doc/man3/SSL_get_stream_id.pod" + ], + "doc/html/man3/SSL_get_stream_read_state.html" => [ + "doc/man3/SSL_get_stream_read_state.pod" + ], + "doc/html/man3/SSL_get_value_uint.html" => [ + "doc/man3/SSL_get_value_uint.pod" + ], "doc/html/man3/SSL_get_verify_result.html" => [ "doc/man3/SSL_get_verify_result.pod" ], @@ -3663,9 +4159,15 @@ our %unified_info = ( "doc/html/man3/SSL_group_to_name.html" => [ "doc/man3/SSL_group_to_name.pod" ], + "doc/html/man3/SSL_handle_events.html" => [ + "doc/man3/SSL_handle_events.pod" + ], "doc/html/man3/SSL_in_init.html" => [ "doc/man3/SSL_in_init.pod" ], + "doc/html/man3/SSL_inject_net_dgram.html" => [ + "doc/man3/SSL_inject_net_dgram.pod" + ], "doc/html/man3/SSL_key_update.html" => [ "doc/man3/SSL_key_update.pod" ], @@ -3678,9 +4180,21 @@ our %unified_info = ( "doc/html/man3/SSL_new.html" => [ "doc/man3/SSL_new.pod" ], + "doc/html/man3/SSL_new_domain.html" => [ + "doc/man3/SSL_new_domain.pod" + ], + "doc/html/man3/SSL_new_listener.html" => [ + "doc/man3/SSL_new_listener.pod" + ], + "doc/html/man3/SSL_new_stream.html" => [ + "doc/man3/SSL_new_stream.pod" + ], "doc/html/man3/SSL_pending.html" => [ "doc/man3/SSL_pending.pod" ], + "doc/html/man3/SSL_poll.html" => [ + "doc/man3/SSL_poll.pod" + ], "doc/html/man3/SSL_read.html" => [ "doc/man3/SSL_read.pod" ], @@ -3696,24 +4210,45 @@ our %unified_info = ( "doc/html/man3/SSL_set1_host.html" => [ "doc/man3/SSL_set1_host.pod" ], + "doc/html/man3/SSL_set1_initial_peer_addr.html" => [ + "doc/man3/SSL_set1_initial_peer_addr.pod" + ], + "doc/html/man3/SSL_set1_server_cert_type.html" => [ + "doc/man3/SSL_set1_server_cert_type.pod" + ], "doc/html/man3/SSL_set_async_callback.html" => [ "doc/man3/SSL_set_async_callback.pod" ], "doc/html/man3/SSL_set_bio.html" => [ "doc/man3/SSL_set_bio.pod" ], + "doc/html/man3/SSL_set_blocking_mode.html" => [ + "doc/man3/SSL_set_blocking_mode.pod" + ], "doc/html/man3/SSL_set_connect_state.html" => [ "doc/man3/SSL_set_connect_state.pod" ], + "doc/html/man3/SSL_set_default_stream_mode.html" => [ + "doc/man3/SSL_set_default_stream_mode.pod" + ], "doc/html/man3/SSL_set_fd.html" => [ "doc/man3/SSL_set_fd.pod" ], + "doc/html/man3/SSL_set_incoming_stream_policy.html" => [ + "doc/man3/SSL_set_incoming_stream_policy.pod" + ], + "doc/html/man3/SSL_set_quic_tls_cbs.html" => [ + "doc/man3/SSL_set_quic_tls_cbs.pod" + ], "doc/html/man3/SSL_set_retry_verify.html" => [ "doc/man3/SSL_set_retry_verify.pod" ], "doc/html/man3/SSL_set_session.html" => [ "doc/man3/SSL_set_session.pod" ], + "doc/html/man3/SSL_set_session_secret_cb.html" => [ + "doc/man3/SSL_set_session_secret_cb.pod" + ], "doc/html/man3/SSL_set_shutdown.html" => [ "doc/man3/SSL_set_shutdown.pod" ], @@ -3726,6 +4261,12 @@ our %unified_info = ( "doc/html/man3/SSL_state_string.html" => [ "doc/man3/SSL_state_string.pod" ], + "doc/html/man3/SSL_stream_conclude.html" => [ + "doc/man3/SSL_stream_conclude.pod" + ], + "doc/html/man3/SSL_stream_reset.html" => [ + "doc/man3/SSL_stream_reset.pod" + ], "doc/html/man3/SSL_want.html" => [ "doc/man3/SSL_want.pod" ], @@ -3735,8 +4276,8 @@ our %unified_info = ( "doc/html/man3/TS_RESP_CTX_new.html" => [ "doc/man3/TS_RESP_CTX_new.pod" ], - "doc/html/man3/TS_VERIFY_CTX_set_certs.html" => [ - "doc/man3/TS_VERIFY_CTX_set_certs.pod" + "doc/html/man3/TS_VERIFY_CTX.html" => [ + "doc/man3/TS_VERIFY_CTX.pod" ], "doc/html/man3/UI_STRING.html" => [ "doc/man3/UI_STRING.pod" @@ -3756,6 +4297,21 @@ our %unified_info = ( "doc/html/man3/X509V3_set_ctx.html" => [ "doc/man3/X509V3_set_ctx.pod" ], + "doc/html/man3/X509_ACERT_add1_attr.html" => [ + "doc/man3/X509_ACERT_add1_attr.pod" + ], + "doc/html/man3/X509_ACERT_add_attr_nconf.html" => [ + "doc/man3/X509_ACERT_add_attr_nconf.pod" + ], + "doc/html/man3/X509_ACERT_get0_holder_baseCertId.html" => [ + "doc/man3/X509_ACERT_get0_holder_baseCertId.pod" + ], + "doc/html/man3/X509_ACERT_get_attr.html" => [ + "doc/man3/X509_ACERT_get_attr.pod" + ], + "doc/html/man3/X509_ACERT_print_ex.html" => [ + "doc/man3/X509_ACERT_print_ex.pod" + ], "doc/html/man3/X509_ALGOR_dup.html" => [ "doc/man3/X509_ALGOR_dup.pod" ], @@ -3804,6 +4360,9 @@ our %unified_info = ( "doc/html/man3/X509_SIG_get0.html" => [ "doc/man3/X509_SIG_get0.pod" ], + "doc/html/man3/X509_STORE_CTX_get_by_subject.html" => [ + "doc/man3/X509_STORE_CTX_get_by_subject.pod" + ], "doc/html/man3/X509_STORE_CTX_get_error.html" => [ "doc/man3/X509_STORE_CTX_get_error.pod" ], @@ -3870,6 +4429,9 @@ our %unified_info = ( "doc/html/man3/X509_get0_uids.html" => [ "doc/man3/X509_get0_uids.pod" ], + "doc/html/man3/X509_get_default_cert_file.html" => [ + "doc/man3/X509_get_default_cert_file.pod" + ], "doc/html/man3/X509_get_extension_flags.html" => [ "doc/man3/X509_get_extension_flags.pod" ], @@ -3993,9 +4555,15 @@ our %unified_info = ( "doc/html/man7/EVP_CIPHER-SM4.html" => [ "doc/man7/EVP_CIPHER-SM4.pod" ], + "doc/html/man7/EVP_KDF-ARGON2.html" => [ + "doc/man7/EVP_KDF-ARGON2.pod" + ], "doc/html/man7/EVP_KDF-HKDF.html" => [ "doc/man7/EVP_KDF-HKDF.pod" ], + "doc/html/man7/EVP_KDF-HMAC-DRBG.html" => [ + "doc/man7/EVP_KDF-HMAC-DRBG.pod" + ], "doc/html/man7/EVP_KDF-KB.html" => [ "doc/man7/EVP_KDF-KB.pod" ], @@ -4011,6 +4579,9 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-PKCS12KDF.html" => [ "doc/man7/EVP_KDF-PKCS12KDF.pod" ], + "doc/html/man7/EVP_KDF-PVKKDF.html" => [ + "doc/man7/EVP_KDF-PVKKDF.pod" + ], "doc/html/man7/EVP_KDF-SCRYPT.html" => [ "doc/man7/EVP_KDF-SCRYPT.pod" ], @@ -4035,9 +4606,18 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-X963.html" => [ "doc/man7/EVP_KDF-X963.pod" ], + "doc/html/man7/EVP_KEM-EC.html" => [ + "doc/man7/EVP_KEM-EC.pod" + ], + "doc/html/man7/EVP_KEM-ML-KEM.html" => [ + "doc/man7/EVP_KEM-ML-KEM.pod" + ], "doc/html/man7/EVP_KEM-RSA.html" => [ "doc/man7/EVP_KEM-RSA.pod" ], + "doc/html/man7/EVP_KEM-X25519.html" => [ + "doc/man7/EVP_KEM-X25519.pod" + ], "doc/html/man7/EVP_KEYEXCH-DH.html" => [ "doc/man7/EVP_KEYEXCH-DH.pod" ], @@ -4071,6 +4651,9 @@ our %unified_info = ( "doc/html/man7/EVP_MD-BLAKE2.html" => [ "doc/man7/EVP_MD-BLAKE2.pod" ], + "doc/html/man7/EVP_MD-KECCAK.html" => [ + "doc/man7/EVP_MD-KECCAK.pod" + ], "doc/html/man7/EVP_MD-MD2.html" => [ "doc/man7/EVP_MD-MD2.pod" ], @@ -4128,15 +4711,27 @@ our %unified_info = ( "doc/html/man7/EVP_PKEY-HMAC.html" => [ "doc/man7/EVP_PKEY-HMAC.pod" ], + "doc/html/man7/EVP_PKEY-ML-DSA.html" => [ + "doc/man7/EVP_PKEY-ML-DSA.pod" + ], + "doc/html/man7/EVP_PKEY-ML-KEM.html" => [ + "doc/man7/EVP_PKEY-ML-KEM.pod" + ], "doc/html/man7/EVP_PKEY-RSA.html" => [ "doc/man7/EVP_PKEY-RSA.pod" ], + "doc/html/man7/EVP_PKEY-SLH-DSA.html" => [ + "doc/man7/EVP_PKEY-SLH-DSA.pod" + ], "doc/html/man7/EVP_PKEY-SM2.html" => [ "doc/man7/EVP_PKEY-SM2.pod" ], "doc/html/man7/EVP_PKEY-X25519.html" => [ "doc/man7/EVP_PKEY-X25519.pod" ], + "doc/html/man7/EVP_RAND-CRNG-TEST.html" => [ + "doc/man7/EVP_RAND-CRNG-TEST.pod" + ], "doc/html/man7/EVP_RAND-CTR-DRBG.html" => [ "doc/man7/EVP_RAND-CTR-DRBG.pod" ], @@ -4146,6 +4741,9 @@ our %unified_info = ( "doc/html/man7/EVP_RAND-HMAC-DRBG.html" => [ "doc/man7/EVP_RAND-HMAC-DRBG.pod" ], + "doc/html/man7/EVP_RAND-JITTER.html" => [ + "doc/man7/EVP_RAND-JITTER.pod" + ], "doc/html/man7/EVP_RAND-SEED-SRC.html" => [ "doc/man7/EVP_RAND-SEED-SRC.pod" ], @@ -4167,9 +4765,15 @@ our %unified_info = ( "doc/html/man7/EVP_SIGNATURE-HMAC.html" => [ "doc/man7/EVP_SIGNATURE-HMAC.pod" ], + "doc/html/man7/EVP_SIGNATURE-ML-DSA.html" => [ + "doc/man7/EVP_SIGNATURE-ML-DSA.pod" + ], "doc/html/man7/EVP_SIGNATURE-RSA.html" => [ "doc/man7/EVP_SIGNATURE-RSA.pod" ], + "doc/html/man7/EVP_SIGNATURE-SLH-DSA.html" => [ + "doc/man7/EVP_SIGNATURE-SLH-DSA.pod" + ], "doc/html/man7/OSSL_PROVIDER-FIPS.html" => [ "doc/man7/OSSL_PROVIDER-FIPS.pod" ], @@ -4185,6 +4789,9 @@ our %unified_info = ( "doc/html/man7/OSSL_PROVIDER-null.html" => [ "doc/man7/OSSL_PROVIDER-null.pod" ], + "doc/html/man7/OSSL_STORE-winstore.html" => [ + "doc/man7/OSSL_STORE-winstore.pod" + ], "doc/html/man7/RAND.html" => [ "doc/man7/RAND.pod" ], @@ -4197,9 +4804,6 @@ our %unified_info = ( "doc/html/man7/bio.html" => [ "doc/man7/bio.pod" ], - "doc/html/man7/crypto.html" => [ - "doc/man7/crypto.pod" - ], "doc/html/man7/ct.html" => [ "doc/man7/ct.pod" ], @@ -4230,9 +4834,6 @@ our %unified_info = ( "doc/html/man7/life_cycle-rand.html" => [ "doc/man7/life_cycle-rand.pod" ], - "doc/html/man7/migration_guide.html" => [ - "doc/man7/migration_guide.pod" - ], "doc/html/man7/openssl-core.h.html" => [ "doc/man7/openssl-core.h.pod" ], @@ -4248,12 +4849,66 @@ our %unified_info = ( "doc/html/man7/openssl-glossary.html" => [ "doc/man7/openssl-glossary.pod" ], + "doc/html/man7/openssl-qlog.html" => [ + "doc/man7/openssl-qlog.pod" + ], + "doc/html/man7/openssl-quic-concurrency.html" => [ + "doc/man7/openssl-quic-concurrency.pod" + ], + "doc/html/man7/openssl-quic.html" => [ + "doc/man7/openssl-quic.pod" + ], "doc/html/man7/openssl-threads.html" => [ "doc/man7/openssl-threads.pod" ], "doc/html/man7/openssl_user_macros.html" => [ "doc/man7/openssl_user_macros.pod" ], + "doc/html/man7/ossl-guide-introduction.html" => [ + "doc/man7/ossl-guide-introduction.pod" + ], + "doc/html/man7/ossl-guide-libcrypto-introduction.html" => [ + "doc/man7/ossl-guide-libcrypto-introduction.pod" + ], + "doc/html/man7/ossl-guide-libraries-introduction.html" => [ + "doc/man7/ossl-guide-libraries-introduction.pod" + ], + "doc/html/man7/ossl-guide-libssl-introduction.html" => [ + "doc/man7/ossl-guide-libssl-introduction.pod" + ], + "doc/html/man7/ossl-guide-migration.html" => [ + "doc/man7/ossl-guide-migration.pod" + ], + "doc/html/man7/ossl-guide-quic-client-block.html" => [ + "doc/man7/ossl-guide-quic-client-block.pod" + ], + "doc/html/man7/ossl-guide-quic-client-non-block.html" => [ + "doc/man7/ossl-guide-quic-client-non-block.pod" + ], + "doc/html/man7/ossl-guide-quic-introduction.html" => [ + "doc/man7/ossl-guide-quic-introduction.pod" + ], + "doc/html/man7/ossl-guide-quic-multi-stream.html" => [ + "doc/man7/ossl-guide-quic-multi-stream.pod" + ], + "doc/html/man7/ossl-guide-quic-server-block.html" => [ + "doc/man7/ossl-guide-quic-server-block.pod" + ], + "doc/html/man7/ossl-guide-quic-server-non-block.html" => [ + "doc/man7/ossl-guide-quic-server-non-block.pod" + ], + "doc/html/man7/ossl-guide-tls-client-block.html" => [ + "doc/man7/ossl-guide-tls-client-block.pod" + ], + "doc/html/man7/ossl-guide-tls-client-non-block.html" => [ + "doc/man7/ossl-guide-tls-client-non-block.pod" + ], + "doc/html/man7/ossl-guide-tls-introduction.html" => [ + "doc/man7/ossl-guide-tls-introduction.pod" + ], + "doc/html/man7/ossl-guide-tls-server-block.html" => [ + "doc/man7/ossl-guide-tls-server-block.pod" + ], "doc/html/man7/ossl_store-file.html" => [ "doc/man7/ossl_store-file.pod" ], @@ -4308,6 +4963,9 @@ our %unified_info = ( "doc/html/man7/provider-signature.html" => [ "doc/man7/provider-signature.pod" ], + "doc/html/man7/provider-skeymgmt.html" => [ + "doc/man7/provider-skeymgmt.pod" + ], "doc/html/man7/provider-storemgmt.html" => [ "doc/man7/provider-storemgmt.pod" ], @@ -4317,9 +4975,6 @@ our %unified_info = ( "doc/html/man7/proxy-certificates.html" => [ "doc/man7/proxy-certificates.pod" ], - "doc/html/man7/ssl.html" => [ - "doc/man7/ssl.pod" - ], "doc/html/man7/x509.html" => [ "doc/man7/x509.pod" ], @@ -4467,6 +5122,9 @@ our %unified_info = ( "doc/man/man1/openssl-sess_id.1" => [ "doc/man1/openssl-sess_id.pod" ], + "doc/man/man1/openssl-skeyutl.1" => [ + "doc/man1/openssl-skeyutl.pod" + ], "doc/man/man1/openssl-smime.1" => [ "doc/man1/openssl-smime.pod" ], @@ -4608,6 +5266,9 @@ our %unified_info = ( "doc/man/man3/BIO_get_ex_new_index.3" => [ "doc/man3/BIO_get_ex_new_index.pod" ], + "doc/man/man3/BIO_get_rpoll_descriptor.3" => [ + "doc/man3/BIO_get_rpoll_descriptor.pod" + ], "doc/man/man3/BIO_meth_new.3" => [ "doc/man3/BIO_meth_new.pod" ], @@ -4644,6 +5305,9 @@ our %unified_info = ( "doc/man/man3/BIO_s_datagram.3" => [ "doc/man3/BIO_s_datagram.pod" ], + "doc/man/man3/BIO_s_dgram_pair.3" => [ + "doc/man3/BIO_s_dgram_pair.pod" + ], "doc/man/man3/BIO_s_fd.3" => [ "doc/man3/BIO_s_fd.pod" ], @@ -4659,6 +5323,9 @@ our %unified_info = ( "doc/man/man3/BIO_s_socket.3" => [ "doc/man3/BIO_s_socket.pod" ], + "doc/man/man3/BIO_sendmmsg.3" => [ + "doc/man3/BIO_sendmmsg.pod" + ], "doc/man/man3/BIO_set_callback.3" => [ "doc/man3/BIO_set_callback.pod" ], @@ -4731,6 +5398,9 @@ our %unified_info = ( "doc/man/man3/BUF_MEM_new.3" => [ "doc/man3/BUF_MEM_new.pod" ], + "doc/man/man3/CMAC_CTX.3" => [ + "doc/man3/CMAC_CTX.pod" + ], "doc/man/man3/CMS_EncryptedData_decrypt.3" => [ "doc/man3/CMS_EncryptedData_decrypt.pod" ], @@ -4797,6 +5467,9 @@ our %unified_info = ( "doc/man/man3/CMS_verify_receipt.3" => [ "doc/man3/CMS_verify_receipt.pod" ], + "doc/man/man3/COMP_CTX_new.3" => [ + "doc/man3/COMP_CTX_new.pod" + ], "doc/man/man3/CONF_modules_free.3" => [ "doc/man3/CONF_modules_free.pod" ], @@ -4896,6 +5569,12 @@ our %unified_info = ( "doc/man/man3/DTLS_set_timer_cb.3" => [ "doc/man3/DTLS_set_timer_cb.pod" ], + "doc/man/man3/DTLSv1_get_timeout.3" => [ + "doc/man3/DTLSv1_get_timeout.pod" + ], + "doc/man/man3/DTLSv1_handle_timeout.3" => [ + "doc/man3/DTLSv1_handle_timeout.pod" + ], "doc/man/man3/DTLSv1_listen.3" => [ "doc/man3/DTLSv1_listen.pod" ], @@ -5034,6 +5713,9 @@ our %unified_info = ( "doc/man/man3/EVP_PKEY_CTX_get0_pkey.3" => [ "doc/man3/EVP_PKEY_CTX_get0_pkey.pod" ], + "doc/man/man3/EVP_PKEY_CTX_get_algor.3" => [ + "doc/man3/EVP_PKEY_CTX_get_algor.pod" + ], "doc/man/man3/EVP_PKEY_CTX_new.3" => [ "doc/man3/EVP_PKEY_CTX_new.pod" ], @@ -5151,6 +5833,12 @@ our %unified_info = ( "doc/man/man3/EVP_SIGNATURE.3" => [ "doc/man3/EVP_SIGNATURE.pod" ], + "doc/man/man3/EVP_SKEY.3" => [ + "doc/man3/EVP_SKEY.pod" + ], + "doc/man/man3/EVP_SKEYMGMT.3" => [ + "doc/man3/EVP_SKEYMGMT.pod" + ], "doc/man/man3/EVP_SealInit.3" => [ "doc/man3/EVP_SealInit.pod" ], @@ -5238,6 +5926,9 @@ our %unified_info = ( "doc/man/man3/EVP_whirlpool.3" => [ "doc/man3/EVP_whirlpool.pod" ], + "doc/man/man3/GENERAL_NAME.3" => [ + "doc/man3/GENERAL_NAME.pod" + ], "doc/man/man3/HMAC.3" => [ "doc/man3/HMAC.pod" ], @@ -5310,9 +6001,15 @@ our %unified_info = ( "doc/man/man3/OPENSSL_load_builtin_modules.3" => [ "doc/man3/OPENSSL_load_builtin_modules.pod" ], + "doc/man/man3/OPENSSL_load_u16_le.3" => [ + "doc/man3/OPENSSL_load_u16_le.pod" + ], "doc/man/man3/OPENSSL_malloc.3" => [ "doc/man3/OPENSSL_malloc.pod" ], + "doc/man/man3/OPENSSL_riscvcap.3" => [ + "doc/man3/OPENSSL_riscvcap.pod" + ], "doc/man/man3/OPENSSL_s390xcap.3" => [ "doc/man3/OPENSSL_s390xcap.pod" ], @@ -5328,12 +6025,18 @@ our %unified_info = ( "doc/man/man3/OSSL_CALLBACK.3" => [ "doc/man3/OSSL_CALLBACK.pod" ], + "doc/man/man3/OSSL_CMP_ATAV_set0.3" => [ + "doc/man3/OSSL_CMP_ATAV_set0.pod" + ], "doc/man/man3/OSSL_CMP_CTX_new.3" => [ "doc/man3/OSSL_CMP_CTX_new.pod" ], "doc/man/man3/OSSL_CMP_HDR_get0_transactionID.3" => [ "doc/man3/OSSL_CMP_HDR_get0_transactionID.pod" ], + "doc/man/man3/OSSL_CMP_ITAV_new_caCerts.3" => [ + "doc/man3/OSSL_CMP_ITAV_new_caCerts.pod" + ], "doc/man/man3/OSSL_CMP_ITAV_set0.3" => [ "doc/man3/OSSL_CMP_ITAV_set0.pod" ], @@ -5403,9 +6106,18 @@ our %unified_info = ( "doc/man/man3/OSSL_ENCODER_to_bio.3" => [ "doc/man3/OSSL_ENCODER_to_bio.pod" ], + "doc/man/man3/OSSL_ERR_STATE_save.3" => [ + "doc/man3/OSSL_ERR_STATE_save.pod" + ], "doc/man/man3/OSSL_ESS_check_signing_certs.3" => [ "doc/man3/OSSL_ESS_check_signing_certs.pod" ], + "doc/man/man3/OSSL_GENERAL_NAMES_print.3" => [ + "doc/man3/OSSL_GENERAL_NAMES_print.pod" + ], + "doc/man/man3/OSSL_HPKE_CTX_new.3" => [ + "doc/man3/OSSL_HPKE_CTX_new.pod" + ], "doc/man/man3/OSSL_HTTP_REQ_CTX.3" => [ "doc/man3/OSSL_HTTP_REQ_CTX.pod" ], @@ -5415,12 +6127,24 @@ our %unified_info = ( "doc/man/man3/OSSL_HTTP_transfer.3" => [ "doc/man3/OSSL_HTTP_transfer.pod" ], + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX.3" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX.pod" + ], + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX_print.3" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX_print.pod" + ], + "doc/man/man3/OSSL_INDICATOR_set_callback.3" => [ + "doc/man3/OSSL_INDICATOR_set_callback.pod" + ], "doc/man/man3/OSSL_ITEM.3" => [ "doc/man3/OSSL_ITEM.pod" ], "doc/man/man3/OSSL_LIB_CTX.3" => [ "doc/man3/OSSL_LIB_CTX.pod" ], + "doc/man/man3/OSSL_LIB_CTX_set_conf_diagnostics.3" => [ + "doc/man3/OSSL_LIB_CTX_set_conf_diagnostics.pod" + ], "doc/man/man3/OSSL_PARAM.3" => [ "doc/man3/OSSL_PARAM.pod" ], @@ -5436,9 +6160,15 @@ our %unified_info = ( "doc/man/man3/OSSL_PARAM_int.3" => [ "doc/man3/OSSL_PARAM_int.pod" ], + "doc/man/man3/OSSL_PARAM_print_to_bio.3" => [ + "doc/man3/OSSL_PARAM_print_to_bio.pod" + ], "doc/man/man3/OSSL_PROVIDER.3" => [ "doc/man3/OSSL_PROVIDER.pod" ], + "doc/man/man3/OSSL_QUIC_client_method.3" => [ + "doc/man3/OSSL_QUIC_client_method.pod" + ], "doc/man/man3/OSSL_SELF_TEST_new.3" => [ "doc/man3/OSSL_SELF_TEST_new.pod" ], @@ -5463,6 +6193,9 @@ our %unified_info = ( "doc/man/man3/OSSL_STORE_open.3" => [ "doc/man3/OSSL_STORE_open.pod" ], + "doc/man/man3/OSSL_sleep.3" => [ + "doc/man3/OSSL_sleep.pod" + ], "doc/man/man3/OSSL_trace_enabled.3" => [ "doc/man3/OSSL_trace_enabled.pod" ], @@ -5478,6 +6211,9 @@ our %unified_info = ( "doc/man/man3/OpenSSL_version.3" => [ "doc/man3/OpenSSL_version.pod" ], + "doc/man/man3/PBMAC1_get1_pbkdf2_param.3" => [ + "doc/man3/PBMAC1_get1_pbkdf2_param.pod" + ], "doc/man/man3/PEM_X509_INFO_read_bio_ex.3" => [ "doc/man3/PEM_X509_INFO_read_bio_ex.pod" ], @@ -5514,6 +6250,9 @@ our %unified_info = ( "doc/man/man3/PKCS12_SAFEBAG_get1_cert.3" => [ "doc/man3/PKCS12_SAFEBAG_get1_cert.pod" ], + "doc/man/man3/PKCS12_SAFEBAG_set0_attrs.3" => [ + "doc/man3/PKCS12_SAFEBAG_set0_attrs.pod" + ], "doc/man/man3/PKCS12_add1_attr_by_NID.3" => [ "doc/man3/PKCS12_add1_attr_by_NID.pod" ], @@ -5787,6 +6526,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set0_CA_list.3" => [ "doc/man3/SSL_CTX_set0_CA_list.pod" ], + "doc/man/man3/SSL_CTX_set1_cert_comp_preference.3" => [ + "doc/man3/SSL_CTX_set1_cert_comp_preference.pod" + ], "doc/man/man3/SSL_CTX_set1_curves.3" => [ "doc/man3/SSL_CTX_set1_curves.pod" ], @@ -5826,6 +6568,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_default_passwd_cb.3" => [ "doc/man3/SSL_CTX_set_default_passwd_cb.pod" ], + "doc/man/man3/SSL_CTX_set_domain_flags.3" => [ + "doc/man3/SSL_CTX_set_domain_flags.pod" + ], "doc/man/man3/SSL_CTX_set_generate_session_id.3" => [ "doc/man3/SSL_CTX_set_generate_session_id.pod" ], @@ -5847,6 +6592,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_msg_callback.3" => [ "doc/man3/SSL_CTX_set_msg_callback.pod" ], + "doc/man/man3/SSL_CTX_set_new_pending_conn_cb.3" => [ + "doc/man3/SSL_CTX_set_new_pending_conn_cb.pod" + ], "doc/man/man3/SSL_CTX_set_num_tickets.3" => [ "doc/man3/SSL_CTX_set_num_tickets.pod" ], @@ -5961,6 +6709,9 @@ our %unified_info = ( "doc/man/man3/SSL_accept.3" => [ "doc/man3/SSL_accept.pod" ], + "doc/man/man3/SSL_accept_stream.3" => [ + "doc/man3/SSL_accept_stream.pod" + ], "doc/man/man3/SSL_alert_type_string.3" => [ "doc/man3/SSL_alert_type_string.pod" ], @@ -5988,9 +6739,21 @@ our %unified_info = ( "doc/man/man3/SSL_free.3" => [ "doc/man3/SSL_free.pod" ], + "doc/man/man3/SSL_get0_connection.3" => [ + "doc/man3/SSL_get0_connection.pod" + ], + "doc/man/man3/SSL_get0_group_name.3" => [ + "doc/man3/SSL_get0_group_name.pod" + ], + "doc/man/man3/SSL_get0_peer_rpk.3" => [ + "doc/man3/SSL_get0_peer_rpk.pod" + ], "doc/man/man3/SSL_get0_peer_scts.3" => [ "doc/man3/SSL_get0_peer_scts.pod" ], + "doc/man/man3/SSL_get1_builtin_sigalgs.3" => [ + "doc/man3/SSL_get1_builtin_sigalgs.pod" + ], "doc/man/man3/SSL_get_SSL_CTX.3" => [ "doc/man3/SSL_get_SSL_CTX.pod" ], @@ -6006,6 +6769,9 @@ our %unified_info = ( "doc/man/man3/SSL_get_client_random.3" => [ "doc/man3/SSL_get_client_random.pod" ], + "doc/man/man3/SSL_get_conn_close_info.3" => [ + "doc/man3/SSL_get_conn_close_info.pod" + ], "doc/man/man3/SSL_get_current_cipher.3" => [ "doc/man3/SSL_get_current_cipher.pod" ], @@ -6015,12 +6781,18 @@ our %unified_info = ( "doc/man/man3/SSL_get_error.3" => [ "doc/man3/SSL_get_error.pod" ], + "doc/man/man3/SSL_get_event_timeout.3" => [ + "doc/man3/SSL_get_event_timeout.pod" + ], "doc/man/man3/SSL_get_extms_support.3" => [ "doc/man3/SSL_get_extms_support.pod" ], "doc/man/man3/SSL_get_fd.3" => [ "doc/man3/SSL_get_fd.pod" ], + "doc/man/man3/SSL_get_handshake_rtt.3" => [ + "doc/man3/SSL_get_handshake_rtt.pod" + ], "doc/man/man3/SSL_get_peer_cert_chain.3" => [ "doc/man3/SSL_get_peer_cert_chain.pod" ], @@ -6039,12 +6811,24 @@ our %unified_info = ( "doc/man/man3/SSL_get_rbio.3" => [ "doc/man3/SSL_get_rbio.pod" ], + "doc/man/man3/SSL_get_rpoll_descriptor.3" => [ + "doc/man3/SSL_get_rpoll_descriptor.pod" + ], "doc/man/man3/SSL_get_session.3" => [ "doc/man3/SSL_get_session.pod" ], "doc/man/man3/SSL_get_shared_sigalgs.3" => [ "doc/man3/SSL_get_shared_sigalgs.pod" ], + "doc/man/man3/SSL_get_stream_id.3" => [ + "doc/man3/SSL_get_stream_id.pod" + ], + "doc/man/man3/SSL_get_stream_read_state.3" => [ + "doc/man3/SSL_get_stream_read_state.pod" + ], + "doc/man/man3/SSL_get_value_uint.3" => [ + "doc/man3/SSL_get_value_uint.pod" + ], "doc/man/man3/SSL_get_verify_result.3" => [ "doc/man3/SSL_get_verify_result.pod" ], @@ -6054,9 +6838,15 @@ our %unified_info = ( "doc/man/man3/SSL_group_to_name.3" => [ "doc/man3/SSL_group_to_name.pod" ], + "doc/man/man3/SSL_handle_events.3" => [ + "doc/man3/SSL_handle_events.pod" + ], "doc/man/man3/SSL_in_init.3" => [ "doc/man3/SSL_in_init.pod" ], + "doc/man/man3/SSL_inject_net_dgram.3" => [ + "doc/man3/SSL_inject_net_dgram.pod" + ], "doc/man/man3/SSL_key_update.3" => [ "doc/man3/SSL_key_update.pod" ], @@ -6069,9 +6859,21 @@ our %unified_info = ( "doc/man/man3/SSL_new.3" => [ "doc/man3/SSL_new.pod" ], + "doc/man/man3/SSL_new_domain.3" => [ + "doc/man3/SSL_new_domain.pod" + ], + "doc/man/man3/SSL_new_listener.3" => [ + "doc/man3/SSL_new_listener.pod" + ], + "doc/man/man3/SSL_new_stream.3" => [ + "doc/man3/SSL_new_stream.pod" + ], "doc/man/man3/SSL_pending.3" => [ "doc/man3/SSL_pending.pod" ], + "doc/man/man3/SSL_poll.3" => [ + "doc/man3/SSL_poll.pod" + ], "doc/man/man3/SSL_read.3" => [ "doc/man3/SSL_read.pod" ], @@ -6087,24 +6889,45 @@ our %unified_info = ( "doc/man/man3/SSL_set1_host.3" => [ "doc/man3/SSL_set1_host.pod" ], + "doc/man/man3/SSL_set1_initial_peer_addr.3" => [ + "doc/man3/SSL_set1_initial_peer_addr.pod" + ], + "doc/man/man3/SSL_set1_server_cert_type.3" => [ + "doc/man3/SSL_set1_server_cert_type.pod" + ], "doc/man/man3/SSL_set_async_callback.3" => [ "doc/man3/SSL_set_async_callback.pod" ], "doc/man/man3/SSL_set_bio.3" => [ "doc/man3/SSL_set_bio.pod" ], + "doc/man/man3/SSL_set_blocking_mode.3" => [ + "doc/man3/SSL_set_blocking_mode.pod" + ], "doc/man/man3/SSL_set_connect_state.3" => [ "doc/man3/SSL_set_connect_state.pod" ], + "doc/man/man3/SSL_set_default_stream_mode.3" => [ + "doc/man3/SSL_set_default_stream_mode.pod" + ], "doc/man/man3/SSL_set_fd.3" => [ "doc/man3/SSL_set_fd.pod" ], + "doc/man/man3/SSL_set_incoming_stream_policy.3" => [ + "doc/man3/SSL_set_incoming_stream_policy.pod" + ], + "doc/man/man3/SSL_set_quic_tls_cbs.3" => [ + "doc/man3/SSL_set_quic_tls_cbs.pod" + ], "doc/man/man3/SSL_set_retry_verify.3" => [ "doc/man3/SSL_set_retry_verify.pod" ], "doc/man/man3/SSL_set_session.3" => [ "doc/man3/SSL_set_session.pod" ], + "doc/man/man3/SSL_set_session_secret_cb.3" => [ + "doc/man3/SSL_set_session_secret_cb.pod" + ], "doc/man/man3/SSL_set_shutdown.3" => [ "doc/man3/SSL_set_shutdown.pod" ], @@ -6117,6 +6940,12 @@ our %unified_info = ( "doc/man/man3/SSL_state_string.3" => [ "doc/man3/SSL_state_string.pod" ], + "doc/man/man3/SSL_stream_conclude.3" => [ + "doc/man3/SSL_stream_conclude.pod" + ], + "doc/man/man3/SSL_stream_reset.3" => [ + "doc/man3/SSL_stream_reset.pod" + ], "doc/man/man3/SSL_want.3" => [ "doc/man3/SSL_want.pod" ], @@ -6126,8 +6955,8 @@ our %unified_info = ( "doc/man/man3/TS_RESP_CTX_new.3" => [ "doc/man3/TS_RESP_CTX_new.pod" ], - "doc/man/man3/TS_VERIFY_CTX_set_certs.3" => [ - "doc/man3/TS_VERIFY_CTX_set_certs.pod" + "doc/man/man3/TS_VERIFY_CTX.3" => [ + "doc/man3/TS_VERIFY_CTX.pod" ], "doc/man/man3/UI_STRING.3" => [ "doc/man3/UI_STRING.pod" @@ -6147,6 +6976,21 @@ our %unified_info = ( "doc/man/man3/X509V3_set_ctx.3" => [ "doc/man3/X509V3_set_ctx.pod" ], + "doc/man/man3/X509_ACERT_add1_attr.3" => [ + "doc/man3/X509_ACERT_add1_attr.pod" + ], + "doc/man/man3/X509_ACERT_add_attr_nconf.3" => [ + "doc/man3/X509_ACERT_add_attr_nconf.pod" + ], + "doc/man/man3/X509_ACERT_get0_holder_baseCertId.3" => [ + "doc/man3/X509_ACERT_get0_holder_baseCertId.pod" + ], + "doc/man/man3/X509_ACERT_get_attr.3" => [ + "doc/man3/X509_ACERT_get_attr.pod" + ], + "doc/man/man3/X509_ACERT_print_ex.3" => [ + "doc/man3/X509_ACERT_print_ex.pod" + ], "doc/man/man3/X509_ALGOR_dup.3" => [ "doc/man3/X509_ALGOR_dup.pod" ], @@ -6195,6 +7039,9 @@ our %unified_info = ( "doc/man/man3/X509_SIG_get0.3" => [ "doc/man3/X509_SIG_get0.pod" ], + "doc/man/man3/X509_STORE_CTX_get_by_subject.3" => [ + "doc/man3/X509_STORE_CTX_get_by_subject.pod" + ], "doc/man/man3/X509_STORE_CTX_get_error.3" => [ "doc/man3/X509_STORE_CTX_get_error.pod" ], @@ -6261,6 +7108,9 @@ our %unified_info = ( "doc/man/man3/X509_get0_uids.3" => [ "doc/man3/X509_get0_uids.pod" ], + "doc/man/man3/X509_get_default_cert_file.3" => [ + "doc/man3/X509_get_default_cert_file.pod" + ], "doc/man/man3/X509_get_extension_flags.3" => [ "doc/man3/X509_get_extension_flags.pod" ], @@ -6384,9 +7234,15 @@ our %unified_info = ( "doc/man/man7/EVP_CIPHER-SM4.7" => [ "doc/man7/EVP_CIPHER-SM4.pod" ], + "doc/man/man7/EVP_KDF-ARGON2.7" => [ + "doc/man7/EVP_KDF-ARGON2.pod" + ], "doc/man/man7/EVP_KDF-HKDF.7" => [ "doc/man7/EVP_KDF-HKDF.pod" ], + "doc/man/man7/EVP_KDF-HMAC-DRBG.7" => [ + "doc/man7/EVP_KDF-HMAC-DRBG.pod" + ], "doc/man/man7/EVP_KDF-KB.7" => [ "doc/man7/EVP_KDF-KB.pod" ], @@ -6402,6 +7258,9 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-PKCS12KDF.7" => [ "doc/man7/EVP_KDF-PKCS12KDF.pod" ], + "doc/man/man7/EVP_KDF-PVKKDF.7" => [ + "doc/man7/EVP_KDF-PVKKDF.pod" + ], "doc/man/man7/EVP_KDF-SCRYPT.7" => [ "doc/man7/EVP_KDF-SCRYPT.pod" ], @@ -6426,9 +7285,18 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-X963.7" => [ "doc/man7/EVP_KDF-X963.pod" ], + "doc/man/man7/EVP_KEM-EC.7" => [ + "doc/man7/EVP_KEM-EC.pod" + ], + "doc/man/man7/EVP_KEM-ML-KEM.7" => [ + "doc/man7/EVP_KEM-ML-KEM.pod" + ], "doc/man/man7/EVP_KEM-RSA.7" => [ "doc/man7/EVP_KEM-RSA.pod" ], + "doc/man/man7/EVP_KEM-X25519.7" => [ + "doc/man7/EVP_KEM-X25519.pod" + ], "doc/man/man7/EVP_KEYEXCH-DH.7" => [ "doc/man7/EVP_KEYEXCH-DH.pod" ], @@ -6462,6 +7330,9 @@ our %unified_info = ( "doc/man/man7/EVP_MD-BLAKE2.7" => [ "doc/man7/EVP_MD-BLAKE2.pod" ], + "doc/man/man7/EVP_MD-KECCAK.7" => [ + "doc/man7/EVP_MD-KECCAK.pod" + ], "doc/man/man7/EVP_MD-MD2.7" => [ "doc/man7/EVP_MD-MD2.pod" ], @@ -6519,15 +7390,27 @@ our %unified_info = ( "doc/man/man7/EVP_PKEY-HMAC.7" => [ "doc/man7/EVP_PKEY-HMAC.pod" ], + "doc/man/man7/EVP_PKEY-ML-DSA.7" => [ + "doc/man7/EVP_PKEY-ML-DSA.pod" + ], + "doc/man/man7/EVP_PKEY-ML-KEM.7" => [ + "doc/man7/EVP_PKEY-ML-KEM.pod" + ], "doc/man/man7/EVP_PKEY-RSA.7" => [ "doc/man7/EVP_PKEY-RSA.pod" ], + "doc/man/man7/EVP_PKEY-SLH-DSA.7" => [ + "doc/man7/EVP_PKEY-SLH-DSA.pod" + ], "doc/man/man7/EVP_PKEY-SM2.7" => [ "doc/man7/EVP_PKEY-SM2.pod" ], "doc/man/man7/EVP_PKEY-X25519.7" => [ "doc/man7/EVP_PKEY-X25519.pod" ], + "doc/man/man7/EVP_RAND-CRNG-TEST.7" => [ + "doc/man7/EVP_RAND-CRNG-TEST.pod" + ], "doc/man/man7/EVP_RAND-CTR-DRBG.7" => [ "doc/man7/EVP_RAND-CTR-DRBG.pod" ], @@ -6537,6 +7420,9 @@ our %unified_info = ( "doc/man/man7/EVP_RAND-HMAC-DRBG.7" => [ "doc/man7/EVP_RAND-HMAC-DRBG.pod" ], + "doc/man/man7/EVP_RAND-JITTER.7" => [ + "doc/man7/EVP_RAND-JITTER.pod" + ], "doc/man/man7/EVP_RAND-SEED-SRC.7" => [ "doc/man7/EVP_RAND-SEED-SRC.pod" ], @@ -6558,9 +7444,15 @@ our %unified_info = ( "doc/man/man7/EVP_SIGNATURE-HMAC.7" => [ "doc/man7/EVP_SIGNATURE-HMAC.pod" ], + "doc/man/man7/EVP_SIGNATURE-ML-DSA.7" => [ + "doc/man7/EVP_SIGNATURE-ML-DSA.pod" + ], "doc/man/man7/EVP_SIGNATURE-RSA.7" => [ "doc/man7/EVP_SIGNATURE-RSA.pod" ], + "doc/man/man7/EVP_SIGNATURE-SLH-DSA.7" => [ + "doc/man7/EVP_SIGNATURE-SLH-DSA.pod" + ], "doc/man/man7/OSSL_PROVIDER-FIPS.7" => [ "doc/man7/OSSL_PROVIDER-FIPS.pod" ], @@ -6576,6 +7468,9 @@ our %unified_info = ( "doc/man/man7/OSSL_PROVIDER-null.7" => [ "doc/man7/OSSL_PROVIDER-null.pod" ], + "doc/man/man7/OSSL_STORE-winstore.7" => [ + "doc/man7/OSSL_STORE-winstore.pod" + ], "doc/man/man7/RAND.7" => [ "doc/man7/RAND.pod" ], @@ -6588,9 +7483,6 @@ our %unified_info = ( "doc/man/man7/bio.7" => [ "doc/man7/bio.pod" ], - "doc/man/man7/crypto.7" => [ - "doc/man7/crypto.pod" - ], "doc/man/man7/ct.7" => [ "doc/man7/ct.pod" ], @@ -6621,9 +7513,6 @@ our %unified_info = ( "doc/man/man7/life_cycle-rand.7" => [ "doc/man7/life_cycle-rand.pod" ], - "doc/man/man7/migration_guide.7" => [ - "doc/man7/migration_guide.pod" - ], "doc/man/man7/openssl-core.h.7" => [ "doc/man7/openssl-core.h.pod" ], @@ -6639,12 +7528,66 @@ our %unified_info = ( "doc/man/man7/openssl-glossary.7" => [ "doc/man7/openssl-glossary.pod" ], + "doc/man/man7/openssl-qlog.7" => [ + "doc/man7/openssl-qlog.pod" + ], + "doc/man/man7/openssl-quic-concurrency.7" => [ + "doc/man7/openssl-quic-concurrency.pod" + ], + "doc/man/man7/openssl-quic.7" => [ + "doc/man7/openssl-quic.pod" + ], "doc/man/man7/openssl-threads.7" => [ "doc/man7/openssl-threads.pod" ], "doc/man/man7/openssl_user_macros.7" => [ "doc/man7/openssl_user_macros.pod" ], + "doc/man/man7/ossl-guide-introduction.7" => [ + "doc/man7/ossl-guide-introduction.pod" + ], + "doc/man/man7/ossl-guide-libcrypto-introduction.7" => [ + "doc/man7/ossl-guide-libcrypto-introduction.pod" + ], + "doc/man/man7/ossl-guide-libraries-introduction.7" => [ + "doc/man7/ossl-guide-libraries-introduction.pod" + ], + "doc/man/man7/ossl-guide-libssl-introduction.7" => [ + "doc/man7/ossl-guide-libssl-introduction.pod" + ], + "doc/man/man7/ossl-guide-migration.7" => [ + "doc/man7/ossl-guide-migration.pod" + ], + "doc/man/man7/ossl-guide-quic-client-block.7" => [ + "doc/man7/ossl-guide-quic-client-block.pod" + ], + "doc/man/man7/ossl-guide-quic-client-non-block.7" => [ + "doc/man7/ossl-guide-quic-client-non-block.pod" + ], + "doc/man/man7/ossl-guide-quic-introduction.7" => [ + "doc/man7/ossl-guide-quic-introduction.pod" + ], + "doc/man/man7/ossl-guide-quic-multi-stream.7" => [ + "doc/man7/ossl-guide-quic-multi-stream.pod" + ], + "doc/man/man7/ossl-guide-quic-server-block.7" => [ + "doc/man7/ossl-guide-quic-server-block.pod" + ], + "doc/man/man7/ossl-guide-quic-server-non-block.7" => [ + "doc/man7/ossl-guide-quic-server-non-block.pod" + ], + "doc/man/man7/ossl-guide-tls-client-block.7" => [ + "doc/man7/ossl-guide-tls-client-block.pod" + ], + "doc/man/man7/ossl-guide-tls-client-non-block.7" => [ + "doc/man7/ossl-guide-tls-client-non-block.pod" + ], + "doc/man/man7/ossl-guide-tls-introduction.7" => [ + "doc/man7/ossl-guide-tls-introduction.pod" + ], + "doc/man/man7/ossl-guide-tls-server-block.7" => [ + "doc/man7/ossl-guide-tls-server-block.pod" + ], "doc/man/man7/ossl_store-file.7" => [ "doc/man7/ossl_store-file.pod" ], @@ -6699,6 +7642,9 @@ our %unified_info = ( "doc/man/man7/provider-signature.7" => [ "doc/man7/provider-signature.pod" ], + "doc/man/man7/provider-skeymgmt.7" => [ + "doc/man7/provider-skeymgmt.pod" + ], "doc/man/man7/provider-storemgmt.7" => [ "doc/man7/provider-storemgmt.pod" ], @@ -6708,9 +7654,6 @@ our %unified_info = ( "doc/man/man7/proxy-certificates.7" => [ "doc/man7/proxy-certificates.pod" ], - "doc/man/man7/ssl.7" => [ - "doc/man7/ssl.pod" - ], "doc/man/man7/x509.7" => [ "doc/man7/x509.pod" ], @@ -6890,6 +7833,10 @@ our %unified_info = ( "doc/man1/openssl-sess_id.pod.in", "doc/perlvars.pm" ], + "doc/man1/openssl-skeyutl.pod" => [ + "doc/man1/openssl-skeyutl.pod.in", + "doc/perlvars.pm" + ], "doc/man1/openssl-smime.pod" => [ "doc/man1/openssl-smime.pod.in", "doc/perlvars.pm" @@ -6929,6 +7876,27 @@ our %unified_info = ( "doc/man7/openssl_user_macros.pod" => [ "doc/man7/openssl_user_macros.pod.in" ], + "exporters/OpenSSLConfig.cmake" => [ + "installdata.pm" + ], + "exporters/OpenSSLConfigVersion.cmake" => [ + "exporters/OpenSSLConfig.cmake", + "installdata.pm" + ], + "exporters/libcrypto.pc" => [ + "installdata.pm" + ], + "exporters/libssl.pc" => [ + "installdata.pm" + ], + "exporters/openssl.pc" => [ + "exporters/libcrypto.pc", + "exporters/libssl.pc", + "installdata.pm" + ], + "fuzz/acert-test" => [ + "libcrypto" + ], "fuzz/asn1-test" => [ "libcrypto", "libssl" @@ -6961,17 +7929,85 @@ our %unified_info = ( "fuzz/ct-test" => [ "libcrypto" ], + "fuzz/decoder-test" => [ + "libcrypto" + ], + "fuzz/dtlsclient-test" => [ + "libcrypto", + "libssl" + ], + "fuzz/dtlsserver-test" => [ + "libcrypto", + "libssl" + ], + "fuzz/hashtable-test" => [ + "libcrypto.a" + ], + "fuzz/ml-dsa-test" => [ + "libcrypto.a" + ], + "fuzz/ml-kem-test" => [ + "libcrypto.a" + ], + "fuzz/pem-test" => [ + "libcrypto.a" + ], + "fuzz/provider-test" => [ + "libcrypto" + ], + "fuzz/punycode-test" => [ + "libcrypto.a" + ], + "fuzz/quic-client-test" => [ + "libcrypto.a", + "libssl.a" + ], + "fuzz/quic-lcidm-test" => [ + "libcrypto.a", + "libssl.a" + ], + "fuzz/quic-rcidm-test" => [ + "libcrypto.a", + "libssl.a" + ], + "fuzz/quic-server-test" => [ + "libcrypto.a", + "libssl.a" + ], + "fuzz/quic-srtm-test" => [ + "libcrypto.a", + "libssl.a" + ], "fuzz/server-test" => [ "libcrypto", "libssl" ], + "fuzz/slh-dsa-test" => [ + "libcrypto.a" + ], + "fuzz/smime-test" => [ + "libcrypto", + "libssl" + ], + "fuzz/v3name-test" => [ + "libcrypto.a" + ], "fuzz/x509-test" => [ "libcrypto" ], + "include/internal/param_names.h" => [ + "util/perl|OpenSSL/paramnames.pm" + ], + "include/openssl/core_names.h" => [ + "util/perl|OpenSSL/paramnames.pm" + ], "libcrypto.ld" => [ "configdata.pm", "util/perl/OpenSSL/Ordinals.pm" ], + "libcrypto.pc" => [ + "builddata.pm" + ], "libcrypto.rc" => [ "configdata.pm" ], @@ -6982,9 +8018,17 @@ our %unified_info = ( "configdata.pm", "util/perl/OpenSSL/Ordinals.pm" ], + "libssl.pc" => [ + "builddata.pm" + ], "libssl.rc" => [ "configdata.pm" ], + "openssl.pc" => [ + "builddata.pm", + "libcrypto.pc", + "libssl.pc" + ], "providers/common/der/der_digests_gen.c" => [ "providers/common/der/DIGESTS.asn1", "providers/common/der/NIST.asn1", @@ -7002,11 +8046,19 @@ our %unified_info = ( "providers/common/der/ECX.asn1", "providers/common/der/oids_to_c.pm" ], + "providers/common/der/der_ml_dsa_gen.c" => [ + "providers/common/der/ML_DSA.asn1", + "providers/common/der/oids_to_c.pm" + ], "providers/common/der/der_rsa_gen.c" => [ "providers/common/der/NIST.asn1", "providers/common/der/RSA.asn1", "providers/common/der/oids_to_c.pm" ], + "providers/common/der/der_slh_dsa_gen.c" => [ + "providers/common/der/SLH_DSA.asn1", + "providers/common/der/oids_to_c.pm" + ], "providers/common/der/der_sm2_gen.c" => [ "providers/common/der/SM2.asn1", "providers/common/der/oids_to_c.pm" @@ -7046,6 +8098,12 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ecx_key.o" => [ "providers/common/include/prov/der_ecx.h" ], + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o" => [ + "providers/common/include/prov/der_ml_dsa.h" + ], + "providers/common/der/libcommon-lib-der_ml_dsa_key.o" => [ + "providers/common/include/prov/der_ml_dsa.h" + ], "providers/common/der/libcommon-lib-der_rsa_gen.o" => [ "providers/common/include/prov/der_rsa.h" ], @@ -7053,6 +8111,12 @@ our %unified_info = ( "providers/common/include/prov/der_digests.h", "providers/common/include/prov/der_rsa.h" ], + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o" => [ + "providers/common/include/prov/der_slh_dsa.h" + ], + "providers/common/der/libcommon-lib-der_slh_dsa_key.o" => [ + "providers/common/include/prov/der_slh_dsa.h" + ], "providers/common/der/libcommon-lib-der_wrap_gen.o" => [ "providers/common/include/prov/der_wrap.h" ], @@ -7092,11 +8156,19 @@ our %unified_info = ( "providers/common/der/ECX.asn1", "providers/common/der/oids_to_c.pm" ], + "providers/common/include/prov/der_ml_dsa.h" => [ + "providers/common/der/ML_DSA.asn1", + "providers/common/der/oids_to_c.pm" + ], "providers/common/include/prov/der_rsa.h" => [ "providers/common/der/NIST.asn1", "providers/common/der/RSA.asn1", "providers/common/der/oids_to_c.pm" ], + "providers/common/include/prov/der_slh_dsa.h" => [ + "providers/common/der/SLH_DSA.asn1", + "providers/common/der/oids_to_c.pm" + ], "providers/common/include/prov/der_sm2.h" => [ "providers/common/der/SM2.asn1", "providers/common/der/oids_to_c.pm" @@ -7129,9 +8201,15 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-eddsa_sig.o" => [ "providers/common/include/prov/der_ecx.h" ], + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o" => [ + "providers/common/include/prov/der_ml_dsa.h" + ], "providers/implementations/signature/libdefault-lib-rsa_sig.o" => [ "providers/common/include/prov/der_rsa.h" ], + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o" => [ + "providers/common/include/prov/der_slh_dsa.h" + ], "providers/implementations/signature/libdefault-lib-sm2_sig.o" => [ "providers/common/include/prov/der_sm2.h" ], @@ -7144,9 +8222,15 @@ our %unified_info = ( "providers/implementations/signature/libfips-lib-eddsa_sig.o" => [ "providers/common/include/prov/der_ecx.h" ], + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o" => [ + "providers/common/include/prov/der_ml_dsa.h" + ], "providers/implementations/signature/libfips-lib-rsa_sig.o" => [ "providers/common/include/prov/der_rsa.h" ], + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o" => [ + "providers/common/include/prov/der_slh_dsa.h" + ], "providers/legacy" => [ "libcrypto", "providers/liblegacy.a" @@ -7224,6 +8308,14 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/bio_addr_test" => [ + "libcrypto", + "test/libtestutil.a" + ], + "test/bio_base64_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/bio_callback_test" => [ "libcrypto", "test/libtestutil.a" @@ -7232,6 +8324,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/bio_dgram_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/bio_enc_test" => [ "libcrypto", "test/libtestutil.a" @@ -7240,6 +8336,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/bio_meth_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/bio_prefix_text" => [ "libcrypto", "test/libtestutil.a" @@ -7252,6 +8352,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/bio_tfo_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/bioprinttest" => [ "libcrypto", "test/libtestutil.a" @@ -7264,6 +8368,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/build_wincrypt_test" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_aes" => [ "libcrypto", "libssl" @@ -7284,6 +8392,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_byteorder" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_camellia" => [ "libcrypto", "libssl" @@ -7316,10 +8428,6 @@ our %unified_info = ( "libcrypto", "libssl" ], - "test/buildtest_c_core_names" => [ - "libcrypto", - "libssl" - ], "test/buildtest_c_core_object" => [ "libcrypto", "libssl" @@ -7352,6 +8460,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_e_ostime" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_ebcdic" => [ "libcrypto", "libssl" @@ -7388,6 +8500,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_hpke" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_http" => [ "libcrypto", "libssl" @@ -7396,6 +8512,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_indicator" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_kdf" => [ "libcrypto", "libssl" @@ -7416,6 +8536,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_ml_kem" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_modes" => [ "libcrypto", "libssl" @@ -7456,6 +8580,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_quic" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_rand" => [ "libcrypto", "libssl" @@ -7512,6 +8640,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_thread" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_tls1" => [ "libcrypto", "libssl" @@ -7532,10 +8664,23 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/byteorder_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], + "test/ca_internals_test" => [ + "libssl", + "test/libtestutil.a" + ], "test/casttest" => [ "libcrypto", "test/libtestutil.a" ], + "test/cert_comp_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], "test/chacha_internal_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -7649,7 +8794,11 @@ our %unified_info = ( "libssl", "test/libtestutil.a" ], - "test/defltfips_test" => [ + "test/decoder_propq_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], + "test/defltfips_test" => [ "libcrypto", "test/libtestutil.a" ], @@ -7705,6 +8854,8 @@ our %unified_info = ( ], "test/endecode_test" => [ "libcrypto.a", + "providers/libcommon.a", + "providers/liblegacy.a", "test/libtestutil.a" ], "test/endecoder_legacy_test" => [ @@ -7748,6 +8899,10 @@ our %unified_info = ( "test/evp_pkey_ctx_new_from_name" => [ "libcrypto" ], + "test/evp_pkey_dhkem_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/evp_pkey_dparams_test" => [ "libcrypto", "test/libtestutil.a" @@ -7756,10 +8911,18 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/evp_skey_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/evp_test" => [ "libcrypto", "test/libtestutil.a" ], + "test/evp_xof_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/exdatatest" => [ "libcrypto", "test/libtestutil.a" @@ -7798,6 +8961,10 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/hpke_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/http_test" => [ "libcrypto", "test/libtestutil.a" @@ -7810,17 +8977,25 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/json_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], "test/keymgmt_internal_test" => [ "libcrypto.a", "test/libtestutil.a" ], "test/lhash_test" => [ - "libcrypto", + "libcrypto.a", "test/libtestutil.a" ], "test/libtestutil.a" => [ "libcrypto" ], + "test/list_test" => [ + "test/libtestutil.a" + ], "test/localetest" => [ "libcrypto", "test/libtestutil.a" @@ -7833,10 +9008,26 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/membio_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/memleaktest" => [ "libcrypto", "test/libtestutil.a" ], + "test/ml_dsa_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], + "test/ml_kem_evp_extra_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], + "test/ml_kem_internal_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/modes_internal_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -7861,6 +9052,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/pairwise_fail_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/param_build_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -7893,6 +9088,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/pkcs12_api_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/pkcs12_format_test" => [ "libcrypto", "test/libtestutil.a" @@ -7913,6 +9112,11 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/priority_queue_test" => [ + "libcrypto", + "libssl.a", + "test/libtestutil.a" + ], "test/property_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -7925,6 +9129,10 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/provider_default_search_path_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/provider_fallback_test" => [ "libcrypto", "test/libtestutil.a" @@ -7949,12 +9157,122 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/quic_ackm_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_cc_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_cfq_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_client_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_fc_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_fifd_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_lcidm_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_multistream_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_newcid_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_qlog_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_radix_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_rcidm_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_record_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_srt_gen_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_srtm_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_stream_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_tserver_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_txp_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_txpim_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_wire_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quicapitest" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quicfaultstest" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], "test/rand_status_test" => [ "libcrypto", "test/libtestutil.a" ], "test/rand_test" => [ - "libcrypto", + "libcrypto.a", "test/libtestutil.a" ], "test/rc2test" => [ @@ -7969,7 +9287,7 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], - "test/rdrand_sanitytest" => [ + "test/rdcpu_sanitytest" => [ "libcrypto.a", "test/libtestutil.a" ], @@ -7978,6 +9296,11 @@ our %unified_info = ( "libssl", "test/libtestutil.a" ], + "test/rpktest" => [ + "libcrypto", + "libssl", + "test/libtestutil.a" + ], "test/rsa_mp_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -7990,10 +9313,18 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], - "test/sanitytest" => [ + "test/rsa_x931_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], + "test/safe_math_test" => [ "libcrypto", "test/libtestutil.a" ], + "test/sanitytest" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/secmemtest" => [ "libcrypto", "test/libtestutil.a" @@ -8011,6 +9342,10 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/slh_dsa_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/sm2_internal_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -8040,6 +9375,11 @@ our %unified_info = ( "libssl", "test/libtestutil.a" ], + "test/ssl_handshake_rtt_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], "test/ssl_old_test" => [ "libcrypto.a", "libssl.a", @@ -8056,8 +9396,8 @@ our %unified_info = ( "test/libtestutil.a" ], "test/sslapitest" => [ - "libcrypto", - "libssl", + "libcrypto.a", + "libssl.a", "test/libtestutil.a" ], "test/sslbuffertest" => [ @@ -8074,6 +9414,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/strtoultest" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/sysdefaulttest" => [ "libcrypto", "libssl", @@ -8083,8 +9427,12 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/threadpool_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/threadstest" => [ - "libcrypto", + "libcrypto.a", "test/libtestutil.a" ], "test/threadstest_fips" => [ @@ -8095,6 +9443,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/time_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/tls13ccstest" => [ "libcrypto", "libssl", @@ -8105,6 +9457,11 @@ our %unified_info = ( "libssl.a", "test/libtestutil.a" ], + "test/tls13groupselection_test" => [ + "libcrypto", + "libssl", + "test/libtestutil.a" + ], "test/trace_api_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -8142,6 +9499,10 @@ our %unified_info = ( "libssl.a", "test/libtestutil.a" ], + "test/x509_acert_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/x509_check_cert_pkey_test" => [ "libcrypto", "test/libtestutil.a" @@ -8154,6 +9515,18 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/x509_load_cert_file_test" => [ + "libcrypto", + "test/libtestutil.a" + ], + "test/x509_req_test" => [ + "libcrypto", + "test/libtestutil.a" + ], + "test/x509_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/x509_time_test" => [ "libcrypto", "test/libtestutil.a" @@ -8168,9 +9541,13 @@ our %unified_info = ( }, "dirinfo" => { "apps" => { + "deps" => [ + "apps/ca_internals_test-bin-ca.o" + ], "products" => { "bin" => [ - "apps/openssl" + "apps/openssl", + "test/ca_internals_test" ], "script" => [ "apps/CA.pl", @@ -8181,6 +9558,14 @@ our %unified_info = ( "apps/lib" => { "deps" => [ "apps/lib/openssl-bin-cmp_mock_srv.o", + "apps/lib/ca_internals_test-bin-app_libctx.o", + "apps/lib/ca_internals_test-bin-app_provider.o", + "apps/lib/ca_internals_test-bin-app_rand.o", + "apps/lib/ca_internals_test-bin-app_x509.o", + "apps/lib/ca_internals_test-bin-apps.o", + "apps/lib/ca_internals_test-bin-apps_ui.o", + "apps/lib/ca_internals_test-bin-engine.o", + "apps/lib/ca_internals_test-bin-fmt.o", "apps/lib/cmp_client_test-bin-cmp_mock_srv.o", "apps/lib/uitest-bin-apps_ui.o", "apps/lib/libapps-lib-app_libctx.o", @@ -8189,12 +9574,14 @@ our %unified_info = ( "apps/lib/libapps-lib-app_rand.o", "apps/lib/libapps-lib-app_x509.o", "apps/lib/libapps-lib-apps.o", + "apps/lib/libapps-lib-apps_opt_printf.o", "apps/lib/libapps-lib-apps_ui.o", "apps/lib/libapps-lib-columns.o", "apps/lib/libapps-lib-engine.o", "apps/lib/libapps-lib-engine_loader.o", "apps/lib/libapps-lib-fmt.o", "apps/lib/libapps-lib-http_server.o", + "apps/lib/libapps-lib-log.o", "apps/lib/libapps-lib-names.o", "apps/lib/libapps-lib-opt.o", "apps/lib/libapps-lib-s_cb.o", @@ -8207,6 +9594,7 @@ our %unified_info = ( "products" => { "bin" => [ "apps/openssl", + "test/ca_internals_test", "test/cmp_client_test", "test/uitest" ], @@ -8218,8 +9606,12 @@ our %unified_info = ( }, "crypto" => { "deps" => [ + "crypto/asn1_time_test-bin-ctype.o", + "crypto/ca_internals_test-bin-ctype.o", + "crypto/packettest-bin-quic_vlint.o", "crypto/libcrypto-lib-asn1_dsa.o", "crypto/libcrypto-lib-bsearch.o", + "crypto/libcrypto-lib-comp_methods.o", "crypto/libcrypto-lib-context.o", "crypto/libcrypto-lib-core_algorithm.o", "crypto/libcrypto-lib-core_fetch.o", @@ -8229,10 +9621,13 @@ our %unified_info = ( "crypto/libcrypto-lib-cryptlib.o", "crypto/libcrypto-lib-ctype.o", "crypto/libcrypto-lib-cversion.o", + "crypto/libcrypto-lib-defaults.o", "crypto/libcrypto-lib-der_writer.o", + "crypto/libcrypto-lib-deterministic_nonce.o", "crypto/libcrypto-lib-ebcdic.o", "crypto/libcrypto-lib-ex_data.o", "crypto/libcrypto-lib-getenv.o", + "crypto/libcrypto-lib-indicator_core.o", "crypto/libcrypto-lib-info.o", "crypto/libcrypto-lib-init.o", "crypto/libcrypto-lib-initthread.o", @@ -8250,6 +9645,7 @@ our %unified_info = ( "crypto/libcrypto-lib-params.o", "crypto/libcrypto-lib-params_dup.o", "crypto/libcrypto-lib-params_from_text.o", + "crypto/libcrypto-lib-params_idx.o", "crypto/libcrypto-lib-passphrase.o", "crypto/libcrypto-lib-provider.o", "crypto/libcrypto-lib-provider_child.o", @@ -8257,12 +9653,16 @@ our %unified_info = ( "crypto/libcrypto-lib-provider_core.o", "crypto/libcrypto-lib-provider_predefined.o", "crypto/libcrypto-lib-punycode.o", + "crypto/libcrypto-lib-quic_vlint.o", "crypto/libcrypto-lib-self_test_core.o", + "crypto/libcrypto-lib-sleep.o", "crypto/libcrypto-lib-sparse_array.o", + "crypto/libcrypto-lib-ssl_err.o", "crypto/libcrypto-lib-threads_lib.o", "crypto/libcrypto-lib-threads_none.o", "crypto/libcrypto-lib-threads_pthread.o", "crypto/libcrypto-lib-threads_win.o", + "crypto/libcrypto-lib-time.o", "crypto/libcrypto-lib-trace.o", "crypto/libcrypto-lib-uid.o", "crypto/libfips-lib-asn1_dsa.o", @@ -8285,6 +9685,7 @@ our %unified_info = ( "crypto/libfips-lib-params.o", "crypto/libfips-lib-params_dup.o", "crypto/libfips-lib-params_from_text.o", + "crypto/libfips-lib-params_idx.o", "crypto/libfips-lib-provider_core.o", "crypto/libfips-lib-provider_predefined.o", "crypto/libfips-lib-self_test_core.o", @@ -8292,9 +9693,15 @@ our %unified_info = ( "crypto/libfips-lib-threads_lib.o", "crypto/libfips-lib-threads_none.o", "crypto/libfips-lib-threads_pthread.o", - "crypto/libfips-lib-threads_win.o" + "crypto/libfips-lib-threads_win.o", + "crypto/libfips-lib-time.o" ], "products" => { + "bin" => [ + "test/asn1_time_test", + "test/ca_internals_test", + "test/packettest" + ], "lib" => [ "libcrypto", "providers/libfips.a" @@ -8335,6 +9742,8 @@ our %unified_info = ( }, "crypto/asn1" => { "deps" => [ + "crypto/asn1/asn1_time_test-bin-a_time.o", + "crypto/asn1/ca_internals_test-bin-a_time.o", "crypto/asn1/libcrypto-lib-a_bitstr.o", "crypto/asn1/libcrypto-lib-a_d2i_fp.o", "crypto/asn1/libcrypto-lib-a_digest.o", @@ -8401,6 +9810,10 @@ our %unified_info = ( "crypto/asn1/libcrypto-lib-x_val.o" ], "products" => { + "bin" => [ + "test/asn1_time_test", + "test/ca_internals_test" + ], "lib" => [ "libcrypto" ] @@ -8466,6 +9879,7 @@ our %unified_info = ( "crypto/bio/libcrypto-lib-bss_conn.o", "crypto/bio/libcrypto-lib-bss_core.o", "crypto/bio/libcrypto-lib-bss_dgram.o", + "crypto/bio/libcrypto-lib-bss_dgram_pair.o", "crypto/bio/libcrypto-lib-bss_fd.o", "crypto/bio/libcrypto-lib-bss_file.o", "crypto/bio/libcrypto-lib-bss_log.o", @@ -8622,6 +10036,7 @@ our %unified_info = ( "crypto/cmp/libcrypto-lib-cmp_client.o", "crypto/cmp/libcrypto-lib-cmp_ctx.o", "crypto/cmp/libcrypto-lib-cmp_err.o", + "crypto/cmp/libcrypto-lib-cmp_genm.o", "crypto/cmp/libcrypto-lib-cmp_hdr.o", "crypto/cmp/libcrypto-lib-cmp_http.o", "crypto/cmp/libcrypto-lib-cmp_msg.o", @@ -8989,7 +10404,9 @@ our %unified_info = ( "crypto/err/libcrypto-lib-err_all.o", "crypto/err/libcrypto-lib-err_all_legacy.o", "crypto/err/libcrypto-lib-err_blocks.o", - "crypto/err/libcrypto-lib-err_prn.o" + "crypto/err/libcrypto-lib-err_mark.o", + "crypto/err/libcrypto-lib-err_prn.o", + "crypto/err/libcrypto-lib-err_save.o" ], "products" => { "lib" => [ @@ -9090,7 +10507,9 @@ our %unified_info = ( "crypto/evp/libcrypto-lib-pmeth_check.o", "crypto/evp/libcrypto-lib-pmeth_gn.o", "crypto/evp/libcrypto-lib-pmeth_lib.o", + "crypto/evp/libcrypto-lib-s_lib.o", "crypto/evp/libcrypto-lib-signature.o", + "crypto/evp/libcrypto-lib-skeymgmt_meth.o", "crypto/evp/libfips-lib-asymcipher.o", "crypto/evp/libfips-lib-dh_support.o", "crypto/evp/libfips-lib-digest.o", @@ -9106,14 +10525,15 @@ our %unified_info = ( "crypto/evp/libfips-lib-kem.o", "crypto/evp/libfips-lib-keymgmt_lib.o", "crypto/evp/libfips-lib-keymgmt_meth.o", - "crypto/evp/libfips-lib-m_sigver.o", "crypto/evp/libfips-lib-mac_lib.o", "crypto/evp/libfips-lib-mac_meth.o", "crypto/evp/libfips-lib-p_lib.o", "crypto/evp/libfips-lib-pmeth_check.o", "crypto/evp/libfips-lib-pmeth_gn.o", "crypto/evp/libfips-lib-pmeth_lib.o", - "crypto/evp/libfips-lib-signature.o" + "crypto/evp/libfips-lib-s_lib.o", + "crypto/evp/libfips-lib-signature.o", + "crypto/evp/libfips-lib-skeymgmt_meth.o" ], "products" => { "lib" => [ @@ -9146,6 +10566,20 @@ our %unified_info = ( ] } }, + "crypto/hashtable" => { + "deps" => [ + "crypto/hashtable/libcrypto-lib-hashfunc.o", + "crypto/hashtable/libcrypto-lib-hashtable.o", + "crypto/hashtable/libfips-lib-hashfunc.o", + "crypto/hashtable/libfips-lib-hashtable.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, "crypto/hmac" => { "deps" => [ "crypto/hmac/libcrypto-lib-hmac.o", @@ -9158,6 +10592,17 @@ our %unified_info = ( ] } }, + "crypto/hpke" => { + "deps" => [ + "crypto/hpke/libcrypto-lib-hpke.o", + "crypto/hpke/libcrypto-lib-hpke_util.o" + ], + "products" => { + "lib" => [ + "libcrypto" + ] + } + }, "crypto/http" => { "deps" => [ "crypto/http/libcrypto-lib-http_client.o", @@ -9241,6 +10686,44 @@ our %unified_info = ( ] } }, + "crypto/ml_dsa" => { + "deps" => [ + "crypto/ml_dsa/libcrypto-lib-ml_dsa_encoders.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key_compress.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_matrix.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_ntt.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_params.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sample.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sign.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_encoders.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_key.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_key_compress.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_matrix.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_ntt.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_params.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_sample.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_sign.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, + "crypto/ml_kem" => { + "deps" => [ + "crypto/ml_kem/libcrypto-lib-ml_kem.o", + "crypto/ml_kem/libfips-lib-ml_kem.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, "crypto/modes" => { "deps" => [ "crypto/modes/libcrypto-lib-cbc128.o", @@ -9254,6 +10737,7 @@ our %unified_info = ( "crypto/modes/libcrypto-lib-siv128.o", "crypto/modes/libcrypto-lib-wrap128.o", "crypto/modes/libcrypto-lib-xts128.o", + "crypto/modes/libcrypto-lib-xts128gb.o", "crypto/modes/libfips-lib-cbc128.o", "crypto/modes/libfips-lib-ccm128.o", "crypto/modes/libfips-lib-cfb128.o", @@ -9261,7 +10745,8 @@ our %unified_info = ( "crypto/modes/libfips-lib-gcm128.o", "crypto/modes/libfips-lib-ofb128.o", "crypto/modes/libfips-lib-wrap128.o", - "crypto/modes/libfips-lib-xts128.o" + "crypto/modes/libfips-lib-xts128.o", + "crypto/modes/libfips-lib-xts128gb.o" ], "products" => { "lib" => [ @@ -9404,6 +10889,7 @@ our %unified_info = ( "crypto/rand/libcrypto-lib-rand_lib.o", "crypto/rand/libcrypto-lib-rand_meth.o", "crypto/rand/libcrypto-lib-rand_pool.o", + "crypto/rand/libcrypto-lib-rand_uniform.o", "crypto/rand/libcrypto-lib-randfile.o", "crypto/rand/libfips-lib-rand_lib.o" ], @@ -9548,6 +11034,36 @@ our %unified_info = ( ] } }, + "crypto/slh_dsa" => { + "deps" => [ + "crypto/slh_dsa/libcrypto-lib-slh_adrs.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa_hash_ctx.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa_key.o", + "crypto/slh_dsa/libcrypto-lib-slh_fors.o", + "crypto/slh_dsa/libcrypto-lib-slh_hash.o", + "crypto/slh_dsa/libcrypto-lib-slh_hypertree.o", + "crypto/slh_dsa/libcrypto-lib-slh_params.o", + "crypto/slh_dsa/libcrypto-lib-slh_wots.o", + "crypto/slh_dsa/libcrypto-lib-slh_xmss.o", + "crypto/slh_dsa/libfips-lib-slh_adrs.o", + "crypto/slh_dsa/libfips-lib-slh_dsa.o", + "crypto/slh_dsa/libfips-lib-slh_dsa_hash_ctx.o", + "crypto/slh_dsa/libfips-lib-slh_dsa_key.o", + "crypto/slh_dsa/libfips-lib-slh_fors.o", + "crypto/slh_dsa/libfips-lib-slh_hash.o", + "crypto/slh_dsa/libfips-lib-slh_hypertree.o", + "crypto/slh_dsa/libfips-lib-slh_params.o", + "crypto/slh_dsa/libfips-lib-slh_wots.o", + "crypto/slh_dsa/libfips-lib-slh_xmss.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, "crypto/sm2" => { "deps" => [ "crypto/sm2/libcrypto-lib-sm2_crypt.o", @@ -9621,6 +11137,38 @@ our %unified_info = ( ] } }, + "crypto/thread" => { + "deps" => [ + "crypto/thread/libcrypto-lib-api.o", + "crypto/thread/libcrypto-lib-arch.o", + "crypto/thread/libcrypto-lib-internal.o", + "crypto/thread/libfips-lib-api.o", + "crypto/thread/libfips-lib-arch.o", + "crypto/thread/libfips-lib-internal.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, + "crypto/thread/arch" => { + "deps" => [ + "crypto/thread/arch/libcrypto-lib-thread_none.o", + "crypto/thread/arch/libcrypto-lib-thread_posix.o", + "crypto/thread/arch/libcrypto-lib-thread_win.o", + "crypto/thread/arch/libfips-lib-thread_none.o", + "crypto/thread/arch/libfips-lib-thread_posix.o", + "crypto/thread/arch/libfips-lib-thread_win.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, "crypto/ts" => { "deps" => [ "crypto/ts/libcrypto-lib-ts_asn1.o", @@ -9687,14 +11235,22 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-pcy_map.o", "crypto/x509/libcrypto-lib-pcy_node.o", "crypto/x509/libcrypto-lib-pcy_tree.o", + "crypto/x509/libcrypto-lib-t_acert.o", "crypto/x509/libcrypto-lib-t_crl.o", "crypto/x509/libcrypto-lib-t_req.o", "crypto/x509/libcrypto-lib-t_x509.o", + "crypto/x509/libcrypto-lib-v3_aaa.o", + "crypto/x509/libcrypto-lib-v3_ac_tgt.o", "crypto/x509/libcrypto-lib-v3_addr.o", "crypto/x509/libcrypto-lib-v3_admis.o", "crypto/x509/libcrypto-lib-v3_akeya.o", "crypto/x509/libcrypto-lib-v3_akid.o", "crypto/x509/libcrypto-lib-v3_asid.o", + "crypto/x509/libcrypto-lib-v3_attrdesc.o", + "crypto/x509/libcrypto-lib-v3_attrmap.o", + "crypto/x509/libcrypto-lib-v3_audit_id.o", + "crypto/x509/libcrypto-lib-v3_authattid.o", + "crypto/x509/libcrypto-lib-v3_battcons.o", "crypto/x509/libcrypto-lib-v3_bcons.o", "crypto/x509/libcrypto-lib-v3_bitst.o", "crypto/x509/libcrypto-lib-v3_conf.o", @@ -9703,12 +11259,17 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_enum.o", "crypto/x509/libcrypto-lib-v3_extku.o", "crypto/x509/libcrypto-lib-v3_genn.o", + "crypto/x509/libcrypto-lib-v3_group_ac.o", "crypto/x509/libcrypto-lib-v3_ia5.o", + "crypto/x509/libcrypto-lib-v3_ind_iss.o", "crypto/x509/libcrypto-lib-v3_info.o", "crypto/x509/libcrypto-lib-v3_int.o", + "crypto/x509/libcrypto-lib-v3_iobo.o", "crypto/x509/libcrypto-lib-v3_ist.o", "crypto/x509/libcrypto-lib-v3_lib.o", "crypto/x509/libcrypto-lib-v3_ncons.o", + "crypto/x509/libcrypto-lib-v3_no_ass.o", + "crypto/x509/libcrypto-lib-v3_no_rev_avail.o", "crypto/x509/libcrypto-lib-v3_pci.o", "crypto/x509/libcrypto-lib-v3_pcia.o", "crypto/x509/libcrypto-lib-v3_pcons.o", @@ -9716,13 +11277,20 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_pmaps.o", "crypto/x509/libcrypto-lib-v3_prn.o", "crypto/x509/libcrypto-lib-v3_purp.o", + "crypto/x509/libcrypto-lib-v3_rolespec.o", "crypto/x509/libcrypto-lib-v3_san.o", + "crypto/x509/libcrypto-lib-v3_sda.o", + "crypto/x509/libcrypto-lib-v3_single_use.o", "crypto/x509/libcrypto-lib-v3_skid.o", + "crypto/x509/libcrypto-lib-v3_soa_id.o", "crypto/x509/libcrypto-lib-v3_sxnet.o", + "crypto/x509/libcrypto-lib-v3_timespec.o", "crypto/x509/libcrypto-lib-v3_tlsf.o", + "crypto/x509/libcrypto-lib-v3_usernotice.o", "crypto/x509/libcrypto-lib-v3_utf8.o", "crypto/x509/libcrypto-lib-v3_utl.o", "crypto/x509/libcrypto-lib-v3err.o", + "crypto/x509/libcrypto-lib-x509_acert.o", "crypto/x509/libcrypto-lib-x509_att.o", "crypto/x509/libcrypto-lib-x509_cmp.o", "crypto/x509/libcrypto-lib-x509_d2.o", @@ -9740,6 +11308,7 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x509_v3.o", "crypto/x509/libcrypto-lib-x509_vfy.o", "crypto/x509/libcrypto-lib-x509_vpm.o", + "crypto/x509/libcrypto-lib-x509aset.o", "crypto/x509/libcrypto-lib-x509cset.o", "crypto/x509/libcrypto-lib-x509name.o", "crypto/x509/libcrypto-lib-x509rset.o", @@ -9749,6 +11318,7 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x_attrib.o", "crypto/x509/libcrypto-lib-x_crl.o", "crypto/x509/libcrypto-lib-x_exten.o", + "crypto/x509/libcrypto-lib-x_ietfatt.o", "crypto/x509/libcrypto-lib-x_name.o", "crypto/x509/libcrypto-lib-x_pubkey.o", "crypto/x509/libcrypto-lib-x_req.o", @@ -9775,6 +11345,7 @@ our %unified_info = ( "fuzz" => { "products" => { "bin" => [ + "fuzz/acert-test", "fuzz/asn1-test", "fuzz/asn1parse-test", "fuzz/bignum-test", @@ -9785,13 +11356,31 @@ our %unified_info = ( "fuzz/conf-test", "fuzz/crl-test", "fuzz/ct-test", + "fuzz/decoder-test", + "fuzz/dtlsclient-test", + "fuzz/dtlsserver-test", + "fuzz/hashtable-test", + "fuzz/ml-dsa-test", + "fuzz/ml-kem-test", + "fuzz/pem-test", + "fuzz/provider-test", + "fuzz/punycode-test", + "fuzz/quic-client-test", + "fuzz/quic-lcidm-test", + "fuzz/quic-rcidm-test", + "fuzz/quic-server-test", + "fuzz/quic-srtm-test", "fuzz/server-test", + "fuzz/slh-dsa-test", + "fuzz/smime-test", + "fuzz/v3name-test", "fuzz/x509-test" ] } }, "providers" => { "deps" => [ + "providers/endecode_test-bin-legacyprov.o", "providers/evp_extra_test-bin-legacyprov.o", "providers/libcrypto-lib-baseprov.o", "providers/libcrypto-lib-defltprov.o", @@ -9801,6 +11390,7 @@ our %unified_info = ( ], "products" => { "bin" => [ + "test/endecode_test", "test/evp_extra_test" ], "dso" => [ @@ -9852,8 +11442,12 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ec_sig.o", "providers/common/der/libcommon-lib-der_ecx_gen.o", "providers/common/der/libcommon-lib-der_ecx_key.o", + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o", + "providers/common/der/libcommon-lib-der_ml_dsa_key.o", "providers/common/der/libcommon-lib-der_rsa_gen.o", "providers/common/der/libcommon-lib-der_rsa_key.o", + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o", + "providers/common/der/libcommon-lib-der_slh_dsa_key.o", "providers/common/der/libcommon-lib-der_wrap_gen.o", "providers/common/der/libdefault-lib-der_rsa_sig.o", "providers/common/der/libdefault-lib-der_sm2_gen.o", @@ -9872,6 +11466,7 @@ our %unified_info = ( "providers/fips" => { "deps" => [ "providers/fips/fips-dso-fips_entry.o", + "providers/fips/libfips-lib-fipsindicator.o", "providers/fips/libfips-lib-fipsprov.o", "providers/fips/libfips-lib-self_test.o", "providers/fips/libfips-lib-self_test_kats.o" @@ -9915,6 +11510,9 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_aes_ccm_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_polyval.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_ocb.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_ocb_hw.o", @@ -9939,7 +11537,13 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_cts.o", "providers/implementations/ciphers/libdefault-lib-cipher_null.o", "providers/implementations/ciphers/libdefault-lib-cipher_sm4.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_sm4_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes_common.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes_default.o", @@ -10036,7 +11640,10 @@ our %unified_info = ( "providers/implementations/encode_decode/libdefault-lib-encode_key2blob.o", "providers/implementations/encode_decode/libdefault-lib-encode_key2ms.o", "providers/implementations/encode_decode/libdefault-lib-encode_key2text.o", - "providers/implementations/encode_decode/libdefault-lib-endecoder_common.o" + "providers/implementations/encode_decode/libdefault-lib-endecoder_common.o", + "providers/implementations/encode_decode/libdefault-lib-ml_common_codecs.o", + "providers/implementations/encode_decode/libdefault-lib-ml_dsa_codecs.o", + "providers/implementations/encode_decode/libdefault-lib-ml_kem_codecs.o" ], "products" => { "lib" => [ @@ -10064,7 +11671,9 @@ our %unified_info = ( }, "providers/implementations/kdfs" => { "deps" => [ + "providers/implementations/kdfs/libdefault-lib-argon2.o", "providers/implementations/kdfs/libdefault-lib-hkdf.o", + "providers/implementations/kdfs/libdefault-lib-hmacdrbg_kdf.o", "providers/implementations/kdfs/libdefault-lib-kbkdf.o", "providers/implementations/kdfs/libdefault-lib-krb5kdf.o", "providers/implementations/kdfs/libdefault-lib-pbkdf2.o", @@ -10083,7 +11692,8 @@ our %unified_info = ( "providers/implementations/kdfs/libfips-lib-sskdf.o", "providers/implementations/kdfs/libfips-lib-tls1_prf.o", "providers/implementations/kdfs/libfips-lib-x942kdf.o", - "providers/implementations/kdfs/liblegacy-lib-pbkdf1.o" + "providers/implementations/kdfs/liblegacy-lib-pbkdf1.o", + "providers/implementations/kdfs/liblegacy-lib-pvkkdf.o" ], "products" => { "lib" => [ @@ -10095,13 +11705,22 @@ our %unified_info = ( }, "providers/implementations/kem" => { "deps" => [ + "providers/implementations/kem/libdefault-lib-ec_kem.o", + "providers/implementations/kem/libdefault-lib-ecx_kem.o", + "providers/implementations/kem/libdefault-lib-kem_util.o", + "providers/implementations/kem/libdefault-lib-ml_kem_kem.o", + "providers/implementations/kem/libdefault-lib-mlx_kem.o", "providers/implementations/kem/libdefault-lib-rsa_kem.o", - "providers/implementations/kem/libfips-lib-rsa_kem.o" + "providers/implementations/kem/libfips-lib-ml_kem_kem.o", + "providers/implementations/kem/libfips-lib-mlx_kem.o", + "providers/implementations/kem/libfips-lib-rsa_kem.o", + "providers/implementations/kem/libtemplate-lib-template_kem.o" ], "products" => { "lib" => [ "providers/libdefault.a", - "providers/libfips.a" + "providers/libfips.a", + "providers/libtemplate.a" ] } }, @@ -10113,19 +11732,29 @@ our %unified_info = ( "providers/implementations/keymgmt/libdefault-lib-ecx_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-kdf_legacy_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-mac_legacy_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-ml_dsa_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-ml_kem_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-mlx_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-rsa_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-slh_dsa_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-dh_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-dsa_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-ec_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-ecx_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-kdf_legacy_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-mac_legacy_kmgmt.o", - "providers/implementations/keymgmt/libfips-lib-rsa_kmgmt.o" + "providers/implementations/keymgmt/libfips-lib-ml_dsa_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-ml_kem_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-mlx_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-rsa_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-slh_dsa_kmgmt.o", + "providers/implementations/keymgmt/libtemplate-lib-template_kmgmt.o" ], "products" => { "lib" => [ "providers/libdefault.a", - "providers/libfips.a" + "providers/libfips.a", + "providers/libtemplate.a" ] } }, @@ -10153,18 +11782,18 @@ our %unified_info = ( }, "providers/implementations/rands" => { "deps" => [ - "providers/implementations/rands/libdefault-lib-crngt.o", "providers/implementations/rands/libdefault-lib-drbg.o", "providers/implementations/rands/libdefault-lib-drbg_ctr.o", "providers/implementations/rands/libdefault-lib-drbg_hash.o", "providers/implementations/rands/libdefault-lib-drbg_hmac.o", "providers/implementations/rands/libdefault-lib-seed_src.o", + "providers/implementations/rands/libdefault-lib-seed_src_jitter.o", "providers/implementations/rands/libdefault-lib-test_rng.o", - "providers/implementations/rands/libfips-lib-crngt.o", "providers/implementations/rands/libfips-lib-drbg.o", "providers/implementations/rands/libfips-lib-drbg_ctr.o", "providers/implementations/rands/libfips-lib-drbg_hash.o", "providers/implementations/rands/libfips-lib-drbg_hmac.o", + "providers/implementations/rands/libfips-lib-fips_crng_test.o", "providers/implementations/rands/libfips-lib-test_rng.o" ], "products" => { @@ -10193,13 +11822,31 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-ecdsa_sig.o", "providers/implementations/signature/libdefault-lib-eddsa_sig.o", "providers/implementations/signature/libdefault-lib-mac_legacy_sig.o", + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o", "providers/implementations/signature/libdefault-lib-rsa_sig.o", + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o", "providers/implementations/signature/libdefault-lib-sm2_sig.o", "providers/implementations/signature/libfips-lib-dsa_sig.o", "providers/implementations/signature/libfips-lib-ecdsa_sig.o", "providers/implementations/signature/libfips-lib-eddsa_sig.o", "providers/implementations/signature/libfips-lib-mac_legacy_sig.o", - "providers/implementations/signature/libfips-lib-rsa_sig.o" + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o", + "providers/implementations/signature/libfips-lib-rsa_sig.o", + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o" + ], + "products" => { + "lib" => [ + "providers/libdefault.a", + "providers/libfips.a" + ] + } + }, + "providers/implementations/skeymgmt" => { + "deps" => [ + "providers/implementations/skeymgmt/libdefault-lib-aes_skmgmt.o", + "providers/implementations/skeymgmt/libdefault-lib-generic.o", + "providers/implementations/skeymgmt/libfips-lib-aes_skmgmt.o", + "providers/implementations/skeymgmt/libfips-lib-generic.o" ], "products" => { "lib" => [ @@ -10211,7 +11858,8 @@ our %unified_info = ( "providers/implementations/storemgmt" => { "deps" => [ "providers/implementations/storemgmt/libdefault-lib-file_store.o", - "providers/implementations/storemgmt/libdefault-lib-file_store_any2obj.o" + "providers/implementations/storemgmt/libdefault-lib-file_store_any2obj.o", + "providers/implementations/storemgmt/libdefault-lib-winstore_store.o" ], "products" => { "lib" => [ @@ -10227,14 +11875,15 @@ our %unified_info = ( "ssl/libssl-lib-d1_srtp.o", "ssl/libssl-lib-methods.o", "ssl/libssl-lib-pqueue.o", + "ssl/libssl-lib-priority_queue.o", "ssl/libssl-lib-s3_enc.o", "ssl/libssl-lib-s3_lib.o", "ssl/libssl-lib-s3_msg.o", "ssl/libssl-lib-ssl_asn1.o", "ssl/libssl-lib-ssl_cert.o", + "ssl/libssl-lib-ssl_cert_comp.o", "ssl/libssl-lib-ssl_ciph.o", "ssl/libssl-lib-ssl_conf.o", - "ssl/libssl-lib-ssl_err.o", "ssl/libssl-lib-ssl_err_legacy.o", "ssl/libssl-lib-ssl_init.o", "ssl/libssl-lib-ssl_lib.o", @@ -10250,32 +11899,107 @@ our %unified_info = ( "ssl/libssl-lib-t1_trce.o", "ssl/libssl-lib-tls13_enc.o", "ssl/libssl-lib-tls_depr.o", - "ssl/libssl-lib-tls_srp.o", - "ssl/libdefault-lib-s3_cbc.o", - "ssl/libfips-lib-s3_cbc.o" + "ssl/libssl-lib-tls_srp.o" ], "products" => { "lib" => [ - "libssl", - "providers/libdefault.a", - "providers/libfips.a" + "libssl" + ] + } + }, + "ssl/quic" => { + "deps" => [ + "ssl/quic/libssl-lib-cc_newreno.o", + "ssl/quic/libssl-lib-json_enc.o", + "ssl/quic/libssl-lib-qlog.o", + "ssl/quic/libssl-lib-qlog_event_helpers.o", + "ssl/quic/libssl-lib-quic_ackm.o", + "ssl/quic/libssl-lib-quic_cfq.o", + "ssl/quic/libssl-lib-quic_channel.o", + "ssl/quic/libssl-lib-quic_demux.o", + "ssl/quic/libssl-lib-quic_engine.o", + "ssl/quic/libssl-lib-quic_fc.o", + "ssl/quic/libssl-lib-quic_fifd.o", + "ssl/quic/libssl-lib-quic_impl.o", + "ssl/quic/libssl-lib-quic_lcidm.o", + "ssl/quic/libssl-lib-quic_method.o", + "ssl/quic/libssl-lib-quic_obj.o", + "ssl/quic/libssl-lib-quic_port.o", + "ssl/quic/libssl-lib-quic_rcidm.o", + "ssl/quic/libssl-lib-quic_reactor.o", + "ssl/quic/libssl-lib-quic_reactor_wait_ctx.o", + "ssl/quic/libssl-lib-quic_record_rx.o", + "ssl/quic/libssl-lib-quic_record_shared.o", + "ssl/quic/libssl-lib-quic_record_tx.o", + "ssl/quic/libssl-lib-quic_record_util.o", + "ssl/quic/libssl-lib-quic_rstream.o", + "ssl/quic/libssl-lib-quic_rx_depack.o", + "ssl/quic/libssl-lib-quic_sf_list.o", + "ssl/quic/libssl-lib-quic_srt_gen.o", + "ssl/quic/libssl-lib-quic_srtm.o", + "ssl/quic/libssl-lib-quic_sstream.o", + "ssl/quic/libssl-lib-quic_statm.o", + "ssl/quic/libssl-lib-quic_stream_map.o", + "ssl/quic/libssl-lib-quic_thread_assist.o", + "ssl/quic/libssl-lib-quic_tls.o", + "ssl/quic/libssl-lib-quic_tls_api.o", + "ssl/quic/libssl-lib-quic_trace.o", + "ssl/quic/libssl-lib-quic_tserver.o", + "ssl/quic/libssl-lib-quic_txp.o", + "ssl/quic/libssl-lib-quic_txpim.o", + "ssl/quic/libssl-lib-quic_types.o", + "ssl/quic/libssl-lib-quic_wire.o", + "ssl/quic/libssl-lib-quic_wire_pkt.o", + "ssl/quic/libssl-lib-uint_set.o" + ], + "products" => { + "lib" => [ + "libssl" ] } }, "ssl/record" => { "deps" => [ - "ssl/record/libssl-lib-dtls1_bitmap.o", "ssl/record/libssl-lib-rec_layer_d1.o", - "ssl/record/libssl-lib-rec_layer_s3.o", - "ssl/record/libssl-lib-ssl3_buffer.o", - "ssl/record/libssl-lib-ssl3_record.o", - "ssl/record/libssl-lib-ssl3_record_tls13.o", - "ssl/record/libcommon-lib-tls_pad.o" + "ssl/record/libssl-lib-rec_layer_s3.o" + ], + "products" => { + "lib" => [ + "libssl" + ] + } + }, + "ssl/record/methods" => { + "deps" => [ + "ssl/record/methods/libssl-lib-dtls_meth.o", + "ssl/record/methods/libssl-lib-ssl3_meth.o", + "ssl/record/methods/libssl-lib-tls13_meth.o", + "ssl/record/methods/libssl-lib-tls1_meth.o", + "ssl/record/methods/libssl-lib-tls_common.o", + "ssl/record/methods/libssl-lib-tls_multib.o", + "ssl/record/methods/libssl-lib-tlsany_meth.o", + "ssl/record/methods/libcommon-lib-tls_pad.o", + "ssl/record/methods/libdefault-lib-ssl3_cbc.o", + "ssl/record/methods/libfips-lib-ssl3_cbc.o" ], "products" => { "lib" => [ "libssl", - "providers/libcommon.a" + "providers/libcommon.a", + "providers/libdefault.a", + "providers/libfips.a" + ] + } + }, + "ssl/rio" => { + "deps" => [ + "ssl/rio/libssl-lib-poll_builder.o", + "ssl/rio/libssl-lib-poll_immediate.o", + "ssl/rio/libssl-lib-rio_notifier.o" + ], + "products" => { + "lib" => [ + "libssl" ] } }, @@ -10313,9 +12037,40 @@ our %unified_info = ( "test/helpers/dtlstest-bin-ssltestlib.o", "test/helpers/endecode_test-bin-predefined_dhparams.o", "test/helpers/fatalerrtest-bin-ssltestlib.o", + "test/helpers/json_test-bin-noisydgrambio.o", + "test/helpers/json_test-bin-pktsplitbio.o", + "test/helpers/json_test-bin-quictestlib.o", + "test/helpers/json_test-bin-ssltestlib.o", + "test/helpers/pkcs12_api_test-bin-pkcs12.o", "test/helpers/pkcs12_format_test-bin-pkcs12.o", + "test/helpers/quic_multistream_test-bin-noisydgrambio.o", + "test/helpers/quic_multistream_test-bin-pktsplitbio.o", + "test/helpers/quic_multistream_test-bin-quictestlib.o", + "test/helpers/quic_multistream_test-bin-ssltestlib.o", + "test/helpers/quic_newcid_test-bin-noisydgrambio.o", + "test/helpers/quic_newcid_test-bin-pktsplitbio.o", + "test/helpers/quic_newcid_test-bin-quictestlib.o", + "test/helpers/quic_newcid_test-bin-ssltestlib.o", + "test/helpers/quic_radix_test-bin-noisydgrambio.o", + "test/helpers/quic_radix_test-bin-pktsplitbio.o", + "test/helpers/quic_radix_test-bin-quictestlib.o", + "test/helpers/quic_radix_test-bin-ssltestlib.o", + "test/helpers/quic_srt_gen_test-bin-noisydgrambio.o", + "test/helpers/quic_srt_gen_test-bin-pktsplitbio.o", + "test/helpers/quic_srt_gen_test-bin-quictestlib.o", + "test/helpers/quic_srt_gen_test-bin-ssltestlib.o", + "test/helpers/quicapitest-bin-noisydgrambio.o", + "test/helpers/quicapitest-bin-pktsplitbio.o", + "test/helpers/quicapitest-bin-quictestlib.o", + "test/helpers/quicapitest-bin-ssltestlib.o", + "test/helpers/quicfaultstest-bin-noisydgrambio.o", + "test/helpers/quicfaultstest-bin-pktsplitbio.o", + "test/helpers/quicfaultstest-bin-quictestlib.o", + "test/helpers/quicfaultstest-bin-ssltestlib.o", "test/helpers/recordlentest-bin-ssltestlib.o", + "test/helpers/rpktest-bin-ssltestlib.o", "test/helpers/servername_test-bin-ssltestlib.o", + "test/helpers/ssl_handshake_rtt_test-bin-ssltestlib.o", "test/helpers/ssl_old_test-bin-predefined_dhparams.o", "test/helpers/ssl_test-bin-handshake.o", "test/helpers/ssl_test-bin-handshake_srp.o", @@ -10324,7 +12079,8 @@ our %unified_info = ( "test/helpers/sslapitest-bin-ssltestlib.o", "test/helpers/sslbuffertest-bin-ssltestlib.o", "test/helpers/sslcorrupttest-bin-ssltestlib.o", - "test/helpers/tls13ccstest-bin-ssltestlib.o" + "test/helpers/tls13ccstest-bin-ssltestlib.o", + "test/helpers/tls13groupselection_test-bin-ssltestlib.o" ], "products" => { "bin" => [ @@ -10342,16 +12098,37 @@ our %unified_info = ( "test/dtlstest", "test/endecode_test", "test/fatalerrtest", + "test/json_test", + "test/pkcs12_api_test", "test/pkcs12_format_test", + "test/quic_multistream_test", + "test/quic_newcid_test", + "test/quic_radix_test", + "test/quic_srt_gen_test", + "test/quicapitest", + "test/quicfaultstest", "test/recordlentest", + "test/rpktest", "test/servername_test", + "test/ssl_handshake_rtt_test", "test/ssl_old_test", "test/ssl_test", "test/ssl_test_ctx_test", "test/sslapitest", "test/sslbuffertest", "test/sslcorrupttest", - "test/tls13ccstest" + "test/tls13ccstest", + "test/tls13groupselection_test" + ] + } + }, + "test/radix" => { + "deps" => [ + "test/radix/quic_radix_test-bin-quic_radix.o" + ], + "products" => { + "bin" => [ + "test/quic_radix_test" ] } }, @@ -10363,6 +12140,7 @@ our %unified_info = ( "test/testutil/libtestutil-lib-driver.o", "test/testutil/libtestutil-lib-fake_random.o", "test/testutil/libtestutil-lib-format_output.o", + "test/testutil/libtestutil-lib-helper.o", "test/testutil/libtestutil-lib-load.o", "test/testutil/libtestutil-lib-main.o", "test/testutil/libtestutil-lib-options.o", @@ -10397,6 +12175,12 @@ our %unified_info = ( } }, "generate" => { + "OpenSSLConfig.cmake" => [ + "exporters/cmake/OpenSSLConfig.cmake.in" + ], + "OpenSSLConfigVersion.cmake" => [ + "exporters/cmake/OpenSSLConfigVersion.cmake.in" + ], "apps/openssl.rc" => [ "util/mkrc.pl", "openssl" @@ -10411,6 +12195,19 @@ our %unified_info = ( "\"-H\"", "\$(APPS_OPENSSL)" ], + "builddata.pm" => [ + "util/mkinstallvars.pl", + "PREFIX=.", + "BINDIR=apps", + "APPLINKDIR=ms", + "LIBDIR=", + "INCLUDEDIR=include", + "\"INCLUDEDIR=\$(SRCDIR)/include\"", + "ENGINESDIR=engines", + "MODULESDIR=providers", + "\"VERSION=\$(VERSION)\"", + "\"LDLIBS=\$(LIB_EX_LIBS)\"" + ], "crypto/aes/aes-586.S" => [ "crypto/aes/asm/aes-586.pl" ], @@ -10432,6 +12229,24 @@ our %unified_info = ( "crypto/aes/aes-ppc.s" => [ "crypto/aes/asm/aes-ppc.pl" ], + "crypto/aes/aes-riscv32-zkn.s" => [ + "crypto/aes/asm/aes-riscv32-zkn.pl" + ], + "crypto/aes/aes-riscv64-zkn.s" => [ + "crypto/aes/asm/aes-riscv64-zkn.pl" + ], + "crypto/aes/aes-riscv64-zvbb-zvkg-zvkned.s" => [ + "crypto/aes/asm/aes-riscv64-zvbb-zvkg-zvkned.pl" + ], + "crypto/aes/aes-riscv64-zvkb-zvkned.s" => [ + "crypto/aes/asm/aes-riscv64-zvkb-zvkned.pl" + ], + "crypto/aes/aes-riscv64-zvkned.s" => [ + "crypto/aes/asm/aes-riscv64-zvkned.pl" + ], + "crypto/aes/aes-riscv64.s" => [ + "crypto/aes/asm/aes-riscv64.pl" + ], "crypto/aes/aes-s390x.S" => [ "crypto/aes/asm/aes-s390x.pl" ], @@ -10459,6 +12274,9 @@ our %unified_info = ( "crypto/aes/aesni-x86_64.s" => [ "crypto/aes/asm/aesni-x86_64.pl" ], + "crypto/aes/aesni-xts-avx512.s" => [ + "crypto/aes/asm/aesni-xts-avx512.pl" + ], "crypto/aes/aesp8-ppc.s" => [ "crypto/aes/asm/aesp8-ppc.pl" ], @@ -10471,12 +12289,18 @@ our %unified_info = ( "crypto/aes/bsaes-armv7.S" => [ "crypto/aes/asm/bsaes-armv7.pl" ], + "crypto/aes/bsaes-armv8.S" => [ + "crypto/aes/asm/bsaes-armv8.pl" + ], "crypto/aes/bsaes-x86_64.s" => [ "crypto/aes/asm/bsaes-x86_64.pl" ], "crypto/aes/vpaes-armv8.S" => [ "crypto/aes/asm/vpaes-armv8.pl" ], + "crypto/aes/vpaes-loongarch64.S" => [ + "crypto/aes/asm/vpaes-loongarch64.pl" + ], "crypto/aes/vpaes-ppc.s" => [ "crypto/aes/asm/vpaes-ppc.pl" ], @@ -10537,15 +12361,33 @@ our %unified_info = ( "crypto/bn/ppc-mont.s" => [ "crypto/bn/asm/ppc-mont.pl" ], + "crypto/bn/ppc64-mont-fixed.s" => [ + "crypto/bn/asm/ppc64-mont-fixed.pl" + ], "crypto/bn/ppc64-mont.s" => [ "crypto/bn/asm/ppc64-mont.pl" ], + "crypto/bn/rsaz-2k-avx512.s" => [ + "crypto/bn/asm/rsaz-2k-avx512.pl" + ], + "crypto/bn/rsaz-2k-avxifma.s" => [ + "crypto/bn/asm/rsaz-2k-avxifma.pl" + ], + "crypto/bn/rsaz-3k-avx512.s" => [ + "crypto/bn/asm/rsaz-3k-avx512.pl" + ], + "crypto/bn/rsaz-3k-avxifma.s" => [ + "crypto/bn/asm/rsaz-3k-avxifma.pl" + ], + "crypto/bn/rsaz-4k-avx512.s" => [ + "crypto/bn/asm/rsaz-4k-avx512.pl" + ], + "crypto/bn/rsaz-4k-avxifma.s" => [ + "crypto/bn/asm/rsaz-4k-avxifma.pl" + ], "crypto/bn/rsaz-avx2.s" => [ "crypto/bn/asm/rsaz-avx2.pl" ], - "crypto/bn/rsaz-avx512.s" => [ - "crypto/bn/asm/rsaz-avx512.pl" - ], "crypto/bn/rsaz-x86_64.s" => [ "crypto/bn/asm/rsaz-x86_64.pl" ], @@ -10607,6 +12449,9 @@ our %unified_info = ( "crypto/chacha/chacha-armv4.S" => [ "crypto/chacha/asm/chacha-armv4.pl" ], + "crypto/chacha/chacha-armv8-sve.S" => [ + "crypto/chacha/asm/chacha-armv8-sve.pl" + ], "crypto/chacha/chacha-armv8.S" => [ "crypto/chacha/asm/chacha-armv8.pl" ], @@ -10619,9 +12464,19 @@ our %unified_info = ( "crypto/chacha/chacha-ia64.s" => [ "crypto/chacha/chacha-ia64.S" ], + "crypto/chacha/chacha-loongarch64.S" => [ + "crypto/chacha/asm/chacha-loongarch64.pl" + ], "crypto/chacha/chacha-ppc.s" => [ "crypto/chacha/asm/chacha-ppc.pl" ], + "crypto/chacha/chacha-riscv64-v-zbb-zvkb.s" => [ + "crypto/chacha/asm/chacha-riscv64-v-zbb.pl", + "zvkb" + ], + "crypto/chacha/chacha-riscv64-v-zbb.s" => [ + "crypto/chacha/asm/chacha-riscv64-v-zbb.pl" + ], "crypto/chacha/chacha-s390x.S" => [ "crypto/chacha/asm/chacha-s390x.pl" ], @@ -10631,6 +12486,9 @@ our %unified_info = ( "crypto/chacha/chacha-x86_64.s" => [ "crypto/chacha/asm/chacha-x86_64.pl" ], + "crypto/chacha/chachap10-ppc.s" => [ + "crypto/chacha/asm/chachap10-ppc.pl" + ], "crypto/des/crypt586.S" => [ "crypto/des/asm/crypt586.pl" ], @@ -10643,6 +12501,9 @@ our %unified_info = ( "crypto/des/dest4-sparcv9.S" => [ "crypto/des/asm/dest4-sparcv9.pl" ], + "crypto/ec/ecp_nistp384-ppc64.s" => [ + "crypto/ec/asm/ecp_nistp384-ppc64.pl" + ], "crypto/ec/ecp_nistp521-ppc64.s" => [ "crypto/ec/asm/ecp_nistp521-ppc64.pl" ], @@ -10667,6 +12528,9 @@ our %unified_info = ( "crypto/ec/ecp_nistz256-x86_64.s" => [ "crypto/ec/asm/ecp_nistz256-x86_64.pl" ], + "crypto/ec/ecp_sm2p256-armv8.S" => [ + "crypto/ec/asm/ecp_sm2p256-armv8.pl" + ], "crypto/ec/x25519-ppc64.s" => [ "crypto/ec/asm/x25519-ppc64.pl" ], @@ -10676,18 +12540,39 @@ our %unified_info = ( "crypto/ia64cpuid.s" => [ "crypto/ia64cpuid.S" ], + "crypto/loongarch64cpuid.s" => [ + "crypto/loongarch64cpuid.pl" + ], "crypto/md5/md5-586.S" => [ "crypto/md5/asm/md5-586.pl" ], + "crypto/md5/md5-aarch64.S" => [ + "crypto/md5/asm/md5-aarch64.pl" + ], + "crypto/md5/md5-loongarch64.S" => [ + "crypto/md5/asm/md5-loongarch64.pl" + ], "crypto/md5/md5-sparcv9.S" => [ "crypto/md5/asm/md5-sparcv9.pl" ], "crypto/md5/md5-x86_64.s" => [ "crypto/md5/asm/md5-x86_64.pl" ], + "crypto/modes/aes-gcm-armv8-unroll8_64.S" => [ + "crypto/modes/asm/aes-gcm-armv8-unroll8_64.pl" + ], "crypto/modes/aes-gcm-armv8_64.S" => [ "crypto/modes/asm/aes-gcm-armv8_64.pl" ], + "crypto/modes/aes-gcm-avx512.s" => [ + "crypto/modes/asm/aes-gcm-avx512.pl" + ], + "crypto/modes/aes-gcm-ppc.s" => [ + "crypto/modes/asm/aes-gcm-ppc.pl" + ], + "crypto/modes/aes-gcm-riscv64-zvkb-zvkg-zvkned.s" => [ + "crypto/modes/asm/aes-gcm-riscv64-zvkb-zvkg-zvkned.pl" + ], "crypto/modes/aesni-gcm-x86_64.s" => [ "crypto/modes/asm/aesni-gcm-x86_64.pl" ], @@ -10706,6 +12591,15 @@ our %unified_info = ( "crypto/modes/ghash-parisc.s" => [ "crypto/modes/asm/ghash-parisc.pl" ], + "crypto/modes/ghash-riscv64-zvkb-zvbc.s" => [ + "crypto/modes/asm/ghash-riscv64-zvkb-zvbc.pl" + ], + "crypto/modes/ghash-riscv64-zvkg.s" => [ + "crypto/modes/asm/ghash-riscv64-zvkg.pl" + ], + "crypto/modes/ghash-riscv64.s" => [ + "crypto/modes/asm/ghash-riscv64.pl" + ], "crypto/modes/ghash-s390x.S" => [ "crypto/modes/asm/ghash-s390x.pl" ], @@ -10724,6 +12618,9 @@ our %unified_info = ( "crypto/modes/ghashv8-armx.S" => [ "crypto/modes/asm/ghashv8-armx.pl" ], + "crypto/params_idx.c" => [ + "crypto/params_idx.c.in" + ], "crypto/pariscid.s" => [ "crypto/pariscid.pl" ], @@ -10784,6 +12681,12 @@ our %unified_info = ( "crypto/ripemd/rmd-586.S" => [ "crypto/ripemd/asm/rmd-586.pl" ], + "crypto/riscv32cpuid.s" => [ + "crypto/riscv32cpuid.pl" + ], + "crypto/riscv64cpuid.s" => [ + "crypto/riscv64cpuid.pl" + ], "crypto/s390xcpuid.S" => [ "crypto/s390xcpuid.pl" ], @@ -10892,6 +12795,9 @@ our %unified_info = ( "crypto/sha/sha256-ppc.s" => [ "crypto/sha/asm/sha512-ppc.pl" ], + "crypto/sha/sha256-riscv64-zvkb-zvknha_or_zvknhb.S" => [ + "crypto/sha/asm/sha256-riscv64-zvkb-zvknha_or_zvknhb.pl" + ], "crypto/sha/sha256-s390x.S" => [ "crypto/sha/asm/sha512-s390x.pl" ], @@ -10928,6 +12834,9 @@ our %unified_info = ( "crypto/sha/sha512-ppc.s" => [ "crypto/sha/asm/sha512-ppc.pl" ], + "crypto/sha/sha512-riscv64-zvkb-zvknhb.S" => [ + "crypto/sha/asm/sha512-riscv64-zvkb-zvknhb.pl" + ], "crypto/sha/sha512-s390x.S" => [ "crypto/sha/asm/sha512-s390x.pl" ], @@ -10940,6 +12849,24 @@ our %unified_info = ( "crypto/sha/sha512p8-ppc.s" => [ "crypto/sha/asm/sha512p8-ppc.pl" ], + "crypto/sm3/sm3-armv8.S" => [ + "crypto/sm3/asm/sm3-armv8.pl" + ], + "crypto/sm3/sm3-riscv64-zvksh.S" => [ + "crypto/sm3/asm/sm3-riscv64-zvksh.pl" + ], + "crypto/sm4/sm4-armv8.S" => [ + "crypto/sm4/asm/sm4-armv8.pl" + ], + "crypto/sm4/sm4-riscv64-zvksed.s" => [ + "crypto/sm4/asm/sm4-riscv64-zvksed.pl" + ], + "crypto/sm4/vpsm4-armv8.S" => [ + "crypto/sm4/asm/vpsm4-armv8.pl" + ], + "crypto/sm4/vpsm4_ex-armv8.S" => [ + "crypto/sm4/asm/vpsm4_ex-armv8.pl" + ], "crypto/uplink-ia64.s" => [ "ms/uplink-ia64.pl" ], @@ -11105,6 +13032,9 @@ our %unified_info = ( "doc/html/man1/openssl-sess_id.html" => [ "doc/man1/openssl-sess_id.pod" ], + "doc/html/man1/openssl-skeyutl.html" => [ + "doc/man1/openssl-skeyutl.pod" + ], "doc/html/man1/openssl-smime.html" => [ "doc/man1/openssl-smime.pod" ], @@ -11246,6 +13176,9 @@ our %unified_info = ( "doc/html/man3/BIO_get_ex_new_index.html" => [ "doc/man3/BIO_get_ex_new_index.pod" ], + "doc/html/man3/BIO_get_rpoll_descriptor.html" => [ + "doc/man3/BIO_get_rpoll_descriptor.pod" + ], "doc/html/man3/BIO_meth_new.html" => [ "doc/man3/BIO_meth_new.pod" ], @@ -11282,6 +13215,9 @@ our %unified_info = ( "doc/html/man3/BIO_s_datagram.html" => [ "doc/man3/BIO_s_datagram.pod" ], + "doc/html/man3/BIO_s_dgram_pair.html" => [ + "doc/man3/BIO_s_dgram_pair.pod" + ], "doc/html/man3/BIO_s_fd.html" => [ "doc/man3/BIO_s_fd.pod" ], @@ -11297,6 +13233,9 @@ our %unified_info = ( "doc/html/man3/BIO_s_socket.html" => [ "doc/man3/BIO_s_socket.pod" ], + "doc/html/man3/BIO_sendmmsg.html" => [ + "doc/man3/BIO_sendmmsg.pod" + ], "doc/html/man3/BIO_set_callback.html" => [ "doc/man3/BIO_set_callback.pod" ], @@ -11369,6 +13308,9 @@ our %unified_info = ( "doc/html/man3/BUF_MEM_new.html" => [ "doc/man3/BUF_MEM_new.pod" ], + "doc/html/man3/CMAC_CTX.html" => [ + "doc/man3/CMAC_CTX.pod" + ], "doc/html/man3/CMS_EncryptedData_decrypt.html" => [ "doc/man3/CMS_EncryptedData_decrypt.pod" ], @@ -11435,6 +13377,9 @@ our %unified_info = ( "doc/html/man3/CMS_verify_receipt.html" => [ "doc/man3/CMS_verify_receipt.pod" ], + "doc/html/man3/COMP_CTX_new.html" => [ + "doc/man3/COMP_CTX_new.pod" + ], "doc/html/man3/CONF_modules_free.html" => [ "doc/man3/CONF_modules_free.pod" ], @@ -11534,6 +13479,12 @@ our %unified_info = ( "doc/html/man3/DTLS_set_timer_cb.html" => [ "doc/man3/DTLS_set_timer_cb.pod" ], + "doc/html/man3/DTLSv1_get_timeout.html" => [ + "doc/man3/DTLSv1_get_timeout.pod" + ], + "doc/html/man3/DTLSv1_handle_timeout.html" => [ + "doc/man3/DTLSv1_handle_timeout.pod" + ], "doc/html/man3/DTLSv1_listen.html" => [ "doc/man3/DTLSv1_listen.pod" ], @@ -11672,6 +13623,9 @@ our %unified_info = ( "doc/html/man3/EVP_PKEY_CTX_get0_pkey.html" => [ "doc/man3/EVP_PKEY_CTX_get0_pkey.pod" ], + "doc/html/man3/EVP_PKEY_CTX_get_algor.html" => [ + "doc/man3/EVP_PKEY_CTX_get_algor.pod" + ], "doc/html/man3/EVP_PKEY_CTX_new.html" => [ "doc/man3/EVP_PKEY_CTX_new.pod" ], @@ -11789,6 +13743,12 @@ our %unified_info = ( "doc/html/man3/EVP_SIGNATURE.html" => [ "doc/man3/EVP_SIGNATURE.pod" ], + "doc/html/man3/EVP_SKEY.html" => [ + "doc/man3/EVP_SKEY.pod" + ], + "doc/html/man3/EVP_SKEYMGMT.html" => [ + "doc/man3/EVP_SKEYMGMT.pod" + ], "doc/html/man3/EVP_SealInit.html" => [ "doc/man3/EVP_SealInit.pod" ], @@ -11876,6 +13836,9 @@ our %unified_info = ( "doc/html/man3/EVP_whirlpool.html" => [ "doc/man3/EVP_whirlpool.pod" ], + "doc/html/man3/GENERAL_NAME.html" => [ + "doc/man3/GENERAL_NAME.pod" + ], "doc/html/man3/HMAC.html" => [ "doc/man3/HMAC.pod" ], @@ -11948,9 +13911,15 @@ our %unified_info = ( "doc/html/man3/OPENSSL_load_builtin_modules.html" => [ "doc/man3/OPENSSL_load_builtin_modules.pod" ], + "doc/html/man3/OPENSSL_load_u16_le.html" => [ + "doc/man3/OPENSSL_load_u16_le.pod" + ], "doc/html/man3/OPENSSL_malloc.html" => [ "doc/man3/OPENSSL_malloc.pod" ], + "doc/html/man3/OPENSSL_riscvcap.html" => [ + "doc/man3/OPENSSL_riscvcap.pod" + ], "doc/html/man3/OPENSSL_s390xcap.html" => [ "doc/man3/OPENSSL_s390xcap.pod" ], @@ -11966,12 +13935,18 @@ our %unified_info = ( "doc/html/man3/OSSL_CALLBACK.html" => [ "doc/man3/OSSL_CALLBACK.pod" ], + "doc/html/man3/OSSL_CMP_ATAV_set0.html" => [ + "doc/man3/OSSL_CMP_ATAV_set0.pod" + ], "doc/html/man3/OSSL_CMP_CTX_new.html" => [ "doc/man3/OSSL_CMP_CTX_new.pod" ], "doc/html/man3/OSSL_CMP_HDR_get0_transactionID.html" => [ "doc/man3/OSSL_CMP_HDR_get0_transactionID.pod" ], + "doc/html/man3/OSSL_CMP_ITAV_new_caCerts.html" => [ + "doc/man3/OSSL_CMP_ITAV_new_caCerts.pod" + ], "doc/html/man3/OSSL_CMP_ITAV_set0.html" => [ "doc/man3/OSSL_CMP_ITAV_set0.pod" ], @@ -12041,9 +14016,18 @@ our %unified_info = ( "doc/html/man3/OSSL_ENCODER_to_bio.html" => [ "doc/man3/OSSL_ENCODER_to_bio.pod" ], + "doc/html/man3/OSSL_ERR_STATE_save.html" => [ + "doc/man3/OSSL_ERR_STATE_save.pod" + ], "doc/html/man3/OSSL_ESS_check_signing_certs.html" => [ "doc/man3/OSSL_ESS_check_signing_certs.pod" ], + "doc/html/man3/OSSL_GENERAL_NAMES_print.html" => [ + "doc/man3/OSSL_GENERAL_NAMES_print.pod" + ], + "doc/html/man3/OSSL_HPKE_CTX_new.html" => [ + "doc/man3/OSSL_HPKE_CTX_new.pod" + ], "doc/html/man3/OSSL_HTTP_REQ_CTX.html" => [ "doc/man3/OSSL_HTTP_REQ_CTX.pod" ], @@ -12053,12 +14037,24 @@ our %unified_info = ( "doc/html/man3/OSSL_HTTP_transfer.html" => [ "doc/man3/OSSL_HTTP_transfer.pod" ], + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX.html" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX.pod" + ], + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX_print.html" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX_print.pod" + ], + "doc/html/man3/OSSL_INDICATOR_set_callback.html" => [ + "doc/man3/OSSL_INDICATOR_set_callback.pod" + ], "doc/html/man3/OSSL_ITEM.html" => [ "doc/man3/OSSL_ITEM.pod" ], "doc/html/man3/OSSL_LIB_CTX.html" => [ "doc/man3/OSSL_LIB_CTX.pod" ], + "doc/html/man3/OSSL_LIB_CTX_set_conf_diagnostics.html" => [ + "doc/man3/OSSL_LIB_CTX_set_conf_diagnostics.pod" + ], "doc/html/man3/OSSL_PARAM.html" => [ "doc/man3/OSSL_PARAM.pod" ], @@ -12074,9 +14070,15 @@ our %unified_info = ( "doc/html/man3/OSSL_PARAM_int.html" => [ "doc/man3/OSSL_PARAM_int.pod" ], + "doc/html/man3/OSSL_PARAM_print_to_bio.html" => [ + "doc/man3/OSSL_PARAM_print_to_bio.pod" + ], "doc/html/man3/OSSL_PROVIDER.html" => [ "doc/man3/OSSL_PROVIDER.pod" ], + "doc/html/man3/OSSL_QUIC_client_method.html" => [ + "doc/man3/OSSL_QUIC_client_method.pod" + ], "doc/html/man3/OSSL_SELF_TEST_new.html" => [ "doc/man3/OSSL_SELF_TEST_new.pod" ], @@ -12101,6 +14103,9 @@ our %unified_info = ( "doc/html/man3/OSSL_STORE_open.html" => [ "doc/man3/OSSL_STORE_open.pod" ], + "doc/html/man3/OSSL_sleep.html" => [ + "doc/man3/OSSL_sleep.pod" + ], "doc/html/man3/OSSL_trace_enabled.html" => [ "doc/man3/OSSL_trace_enabled.pod" ], @@ -12116,6 +14121,9 @@ our %unified_info = ( "doc/html/man3/OpenSSL_version.html" => [ "doc/man3/OpenSSL_version.pod" ], + "doc/html/man3/PBMAC1_get1_pbkdf2_param.html" => [ + "doc/man3/PBMAC1_get1_pbkdf2_param.pod" + ], "doc/html/man3/PEM_X509_INFO_read_bio_ex.html" => [ "doc/man3/PEM_X509_INFO_read_bio_ex.pod" ], @@ -12152,6 +14160,9 @@ our %unified_info = ( "doc/html/man3/PKCS12_SAFEBAG_get1_cert.html" => [ "doc/man3/PKCS12_SAFEBAG_get1_cert.pod" ], + "doc/html/man3/PKCS12_SAFEBAG_set0_attrs.html" => [ + "doc/man3/PKCS12_SAFEBAG_set0_attrs.pod" + ], "doc/html/man3/PKCS12_add1_attr_by_NID.html" => [ "doc/man3/PKCS12_add1_attr_by_NID.pod" ], @@ -12425,6 +14436,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set0_CA_list.html" => [ "doc/man3/SSL_CTX_set0_CA_list.pod" ], + "doc/html/man3/SSL_CTX_set1_cert_comp_preference.html" => [ + "doc/man3/SSL_CTX_set1_cert_comp_preference.pod" + ], "doc/html/man3/SSL_CTX_set1_curves.html" => [ "doc/man3/SSL_CTX_set1_curves.pod" ], @@ -12464,6 +14478,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_default_passwd_cb.html" => [ "doc/man3/SSL_CTX_set_default_passwd_cb.pod" ], + "doc/html/man3/SSL_CTX_set_domain_flags.html" => [ + "doc/man3/SSL_CTX_set_domain_flags.pod" + ], "doc/html/man3/SSL_CTX_set_generate_session_id.html" => [ "doc/man3/SSL_CTX_set_generate_session_id.pod" ], @@ -12485,6 +14502,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_msg_callback.html" => [ "doc/man3/SSL_CTX_set_msg_callback.pod" ], + "doc/html/man3/SSL_CTX_set_new_pending_conn_cb.html" => [ + "doc/man3/SSL_CTX_set_new_pending_conn_cb.pod" + ], "doc/html/man3/SSL_CTX_set_num_tickets.html" => [ "doc/man3/SSL_CTX_set_num_tickets.pod" ], @@ -12599,6 +14619,9 @@ our %unified_info = ( "doc/html/man3/SSL_accept.html" => [ "doc/man3/SSL_accept.pod" ], + "doc/html/man3/SSL_accept_stream.html" => [ + "doc/man3/SSL_accept_stream.pod" + ], "doc/html/man3/SSL_alert_type_string.html" => [ "doc/man3/SSL_alert_type_string.pod" ], @@ -12626,9 +14649,21 @@ our %unified_info = ( "doc/html/man3/SSL_free.html" => [ "doc/man3/SSL_free.pod" ], + "doc/html/man3/SSL_get0_connection.html" => [ + "doc/man3/SSL_get0_connection.pod" + ], + "doc/html/man3/SSL_get0_group_name.html" => [ + "doc/man3/SSL_get0_group_name.pod" + ], + "doc/html/man3/SSL_get0_peer_rpk.html" => [ + "doc/man3/SSL_get0_peer_rpk.pod" + ], "doc/html/man3/SSL_get0_peer_scts.html" => [ "doc/man3/SSL_get0_peer_scts.pod" ], + "doc/html/man3/SSL_get1_builtin_sigalgs.html" => [ + "doc/man3/SSL_get1_builtin_sigalgs.pod" + ], "doc/html/man3/SSL_get_SSL_CTX.html" => [ "doc/man3/SSL_get_SSL_CTX.pod" ], @@ -12644,6 +14679,9 @@ our %unified_info = ( "doc/html/man3/SSL_get_client_random.html" => [ "doc/man3/SSL_get_client_random.pod" ], + "doc/html/man3/SSL_get_conn_close_info.html" => [ + "doc/man3/SSL_get_conn_close_info.pod" + ], "doc/html/man3/SSL_get_current_cipher.html" => [ "doc/man3/SSL_get_current_cipher.pod" ], @@ -12653,12 +14691,18 @@ our %unified_info = ( "doc/html/man3/SSL_get_error.html" => [ "doc/man3/SSL_get_error.pod" ], + "doc/html/man3/SSL_get_event_timeout.html" => [ + "doc/man3/SSL_get_event_timeout.pod" + ], "doc/html/man3/SSL_get_extms_support.html" => [ "doc/man3/SSL_get_extms_support.pod" ], "doc/html/man3/SSL_get_fd.html" => [ "doc/man3/SSL_get_fd.pod" ], + "doc/html/man3/SSL_get_handshake_rtt.html" => [ + "doc/man3/SSL_get_handshake_rtt.pod" + ], "doc/html/man3/SSL_get_peer_cert_chain.html" => [ "doc/man3/SSL_get_peer_cert_chain.pod" ], @@ -12677,12 +14721,24 @@ our %unified_info = ( "doc/html/man3/SSL_get_rbio.html" => [ "doc/man3/SSL_get_rbio.pod" ], + "doc/html/man3/SSL_get_rpoll_descriptor.html" => [ + "doc/man3/SSL_get_rpoll_descriptor.pod" + ], "doc/html/man3/SSL_get_session.html" => [ "doc/man3/SSL_get_session.pod" ], "doc/html/man3/SSL_get_shared_sigalgs.html" => [ "doc/man3/SSL_get_shared_sigalgs.pod" ], + "doc/html/man3/SSL_get_stream_id.html" => [ + "doc/man3/SSL_get_stream_id.pod" + ], + "doc/html/man3/SSL_get_stream_read_state.html" => [ + "doc/man3/SSL_get_stream_read_state.pod" + ], + "doc/html/man3/SSL_get_value_uint.html" => [ + "doc/man3/SSL_get_value_uint.pod" + ], "doc/html/man3/SSL_get_verify_result.html" => [ "doc/man3/SSL_get_verify_result.pod" ], @@ -12692,9 +14748,15 @@ our %unified_info = ( "doc/html/man3/SSL_group_to_name.html" => [ "doc/man3/SSL_group_to_name.pod" ], + "doc/html/man3/SSL_handle_events.html" => [ + "doc/man3/SSL_handle_events.pod" + ], "doc/html/man3/SSL_in_init.html" => [ "doc/man3/SSL_in_init.pod" ], + "doc/html/man3/SSL_inject_net_dgram.html" => [ + "doc/man3/SSL_inject_net_dgram.pod" + ], "doc/html/man3/SSL_key_update.html" => [ "doc/man3/SSL_key_update.pod" ], @@ -12707,9 +14769,21 @@ our %unified_info = ( "doc/html/man3/SSL_new.html" => [ "doc/man3/SSL_new.pod" ], + "doc/html/man3/SSL_new_domain.html" => [ + "doc/man3/SSL_new_domain.pod" + ], + "doc/html/man3/SSL_new_listener.html" => [ + "doc/man3/SSL_new_listener.pod" + ], + "doc/html/man3/SSL_new_stream.html" => [ + "doc/man3/SSL_new_stream.pod" + ], "doc/html/man3/SSL_pending.html" => [ "doc/man3/SSL_pending.pod" ], + "doc/html/man3/SSL_poll.html" => [ + "doc/man3/SSL_poll.pod" + ], "doc/html/man3/SSL_read.html" => [ "doc/man3/SSL_read.pod" ], @@ -12725,24 +14799,45 @@ our %unified_info = ( "doc/html/man3/SSL_set1_host.html" => [ "doc/man3/SSL_set1_host.pod" ], + "doc/html/man3/SSL_set1_initial_peer_addr.html" => [ + "doc/man3/SSL_set1_initial_peer_addr.pod" + ], + "doc/html/man3/SSL_set1_server_cert_type.html" => [ + "doc/man3/SSL_set1_server_cert_type.pod" + ], "doc/html/man3/SSL_set_async_callback.html" => [ "doc/man3/SSL_set_async_callback.pod" ], "doc/html/man3/SSL_set_bio.html" => [ "doc/man3/SSL_set_bio.pod" ], + "doc/html/man3/SSL_set_blocking_mode.html" => [ + "doc/man3/SSL_set_blocking_mode.pod" + ], "doc/html/man3/SSL_set_connect_state.html" => [ "doc/man3/SSL_set_connect_state.pod" ], + "doc/html/man3/SSL_set_default_stream_mode.html" => [ + "doc/man3/SSL_set_default_stream_mode.pod" + ], "doc/html/man3/SSL_set_fd.html" => [ "doc/man3/SSL_set_fd.pod" ], + "doc/html/man3/SSL_set_incoming_stream_policy.html" => [ + "doc/man3/SSL_set_incoming_stream_policy.pod" + ], + "doc/html/man3/SSL_set_quic_tls_cbs.html" => [ + "doc/man3/SSL_set_quic_tls_cbs.pod" + ], "doc/html/man3/SSL_set_retry_verify.html" => [ "doc/man3/SSL_set_retry_verify.pod" ], "doc/html/man3/SSL_set_session.html" => [ "doc/man3/SSL_set_session.pod" ], + "doc/html/man3/SSL_set_session_secret_cb.html" => [ + "doc/man3/SSL_set_session_secret_cb.pod" + ], "doc/html/man3/SSL_set_shutdown.html" => [ "doc/man3/SSL_set_shutdown.pod" ], @@ -12755,6 +14850,12 @@ our %unified_info = ( "doc/html/man3/SSL_state_string.html" => [ "doc/man3/SSL_state_string.pod" ], + "doc/html/man3/SSL_stream_conclude.html" => [ + "doc/man3/SSL_stream_conclude.pod" + ], + "doc/html/man3/SSL_stream_reset.html" => [ + "doc/man3/SSL_stream_reset.pod" + ], "doc/html/man3/SSL_want.html" => [ "doc/man3/SSL_want.pod" ], @@ -12764,8 +14865,8 @@ our %unified_info = ( "doc/html/man3/TS_RESP_CTX_new.html" => [ "doc/man3/TS_RESP_CTX_new.pod" ], - "doc/html/man3/TS_VERIFY_CTX_set_certs.html" => [ - "doc/man3/TS_VERIFY_CTX_set_certs.pod" + "doc/html/man3/TS_VERIFY_CTX.html" => [ + "doc/man3/TS_VERIFY_CTX.pod" ], "doc/html/man3/UI_STRING.html" => [ "doc/man3/UI_STRING.pod" @@ -12785,6 +14886,21 @@ our %unified_info = ( "doc/html/man3/X509V3_set_ctx.html" => [ "doc/man3/X509V3_set_ctx.pod" ], + "doc/html/man3/X509_ACERT_add1_attr.html" => [ + "doc/man3/X509_ACERT_add1_attr.pod" + ], + "doc/html/man3/X509_ACERT_add_attr_nconf.html" => [ + "doc/man3/X509_ACERT_add_attr_nconf.pod" + ], + "doc/html/man3/X509_ACERT_get0_holder_baseCertId.html" => [ + "doc/man3/X509_ACERT_get0_holder_baseCertId.pod" + ], + "doc/html/man3/X509_ACERT_get_attr.html" => [ + "doc/man3/X509_ACERT_get_attr.pod" + ], + "doc/html/man3/X509_ACERT_print_ex.html" => [ + "doc/man3/X509_ACERT_print_ex.pod" + ], "doc/html/man3/X509_ALGOR_dup.html" => [ "doc/man3/X509_ALGOR_dup.pod" ], @@ -12833,6 +14949,9 @@ our %unified_info = ( "doc/html/man3/X509_SIG_get0.html" => [ "doc/man3/X509_SIG_get0.pod" ], + "doc/html/man3/X509_STORE_CTX_get_by_subject.html" => [ + "doc/man3/X509_STORE_CTX_get_by_subject.pod" + ], "doc/html/man3/X509_STORE_CTX_get_error.html" => [ "doc/man3/X509_STORE_CTX_get_error.pod" ], @@ -12899,6 +15018,9 @@ our %unified_info = ( "doc/html/man3/X509_get0_uids.html" => [ "doc/man3/X509_get0_uids.pod" ], + "doc/html/man3/X509_get_default_cert_file.html" => [ + "doc/man3/X509_get_default_cert_file.pod" + ], "doc/html/man3/X509_get_extension_flags.html" => [ "doc/man3/X509_get_extension_flags.pod" ], @@ -13022,9 +15144,15 @@ our %unified_info = ( "doc/html/man7/EVP_CIPHER-SM4.html" => [ "doc/man7/EVP_CIPHER-SM4.pod" ], + "doc/html/man7/EVP_KDF-ARGON2.html" => [ + "doc/man7/EVP_KDF-ARGON2.pod" + ], "doc/html/man7/EVP_KDF-HKDF.html" => [ "doc/man7/EVP_KDF-HKDF.pod" ], + "doc/html/man7/EVP_KDF-HMAC-DRBG.html" => [ + "doc/man7/EVP_KDF-HMAC-DRBG.pod" + ], "doc/html/man7/EVP_KDF-KB.html" => [ "doc/man7/EVP_KDF-KB.pod" ], @@ -13040,6 +15168,9 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-PKCS12KDF.html" => [ "doc/man7/EVP_KDF-PKCS12KDF.pod" ], + "doc/html/man7/EVP_KDF-PVKKDF.html" => [ + "doc/man7/EVP_KDF-PVKKDF.pod" + ], "doc/html/man7/EVP_KDF-SCRYPT.html" => [ "doc/man7/EVP_KDF-SCRYPT.pod" ], @@ -13064,9 +15195,18 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-X963.html" => [ "doc/man7/EVP_KDF-X963.pod" ], + "doc/html/man7/EVP_KEM-EC.html" => [ + "doc/man7/EVP_KEM-EC.pod" + ], + "doc/html/man7/EVP_KEM-ML-KEM.html" => [ + "doc/man7/EVP_KEM-ML-KEM.pod" + ], "doc/html/man7/EVP_KEM-RSA.html" => [ "doc/man7/EVP_KEM-RSA.pod" ], + "doc/html/man7/EVP_KEM-X25519.html" => [ + "doc/man7/EVP_KEM-X25519.pod" + ], "doc/html/man7/EVP_KEYEXCH-DH.html" => [ "doc/man7/EVP_KEYEXCH-DH.pod" ], @@ -13100,6 +15240,9 @@ our %unified_info = ( "doc/html/man7/EVP_MD-BLAKE2.html" => [ "doc/man7/EVP_MD-BLAKE2.pod" ], + "doc/html/man7/EVP_MD-KECCAK.html" => [ + "doc/man7/EVP_MD-KECCAK.pod" + ], "doc/html/man7/EVP_MD-MD2.html" => [ "doc/man7/EVP_MD-MD2.pod" ], @@ -13157,15 +15300,27 @@ our %unified_info = ( "doc/html/man7/EVP_PKEY-HMAC.html" => [ "doc/man7/EVP_PKEY-HMAC.pod" ], + "doc/html/man7/EVP_PKEY-ML-DSA.html" => [ + "doc/man7/EVP_PKEY-ML-DSA.pod" + ], + "doc/html/man7/EVP_PKEY-ML-KEM.html" => [ + "doc/man7/EVP_PKEY-ML-KEM.pod" + ], "doc/html/man7/EVP_PKEY-RSA.html" => [ "doc/man7/EVP_PKEY-RSA.pod" ], + "doc/html/man7/EVP_PKEY-SLH-DSA.html" => [ + "doc/man7/EVP_PKEY-SLH-DSA.pod" + ], "doc/html/man7/EVP_PKEY-SM2.html" => [ "doc/man7/EVP_PKEY-SM2.pod" ], "doc/html/man7/EVP_PKEY-X25519.html" => [ "doc/man7/EVP_PKEY-X25519.pod" ], + "doc/html/man7/EVP_RAND-CRNG-TEST.html" => [ + "doc/man7/EVP_RAND-CRNG-TEST.pod" + ], "doc/html/man7/EVP_RAND-CTR-DRBG.html" => [ "doc/man7/EVP_RAND-CTR-DRBG.pod" ], @@ -13175,6 +15330,9 @@ our %unified_info = ( "doc/html/man7/EVP_RAND-HMAC-DRBG.html" => [ "doc/man7/EVP_RAND-HMAC-DRBG.pod" ], + "doc/html/man7/EVP_RAND-JITTER.html" => [ + "doc/man7/EVP_RAND-JITTER.pod" + ], "doc/html/man7/EVP_RAND-SEED-SRC.html" => [ "doc/man7/EVP_RAND-SEED-SRC.pod" ], @@ -13196,9 +15354,15 @@ our %unified_info = ( "doc/html/man7/EVP_SIGNATURE-HMAC.html" => [ "doc/man7/EVP_SIGNATURE-HMAC.pod" ], + "doc/html/man7/EVP_SIGNATURE-ML-DSA.html" => [ + "doc/man7/EVP_SIGNATURE-ML-DSA.pod" + ], "doc/html/man7/EVP_SIGNATURE-RSA.html" => [ "doc/man7/EVP_SIGNATURE-RSA.pod" ], + "doc/html/man7/EVP_SIGNATURE-SLH-DSA.html" => [ + "doc/man7/EVP_SIGNATURE-SLH-DSA.pod" + ], "doc/html/man7/OSSL_PROVIDER-FIPS.html" => [ "doc/man7/OSSL_PROVIDER-FIPS.pod" ], @@ -13214,6 +15378,9 @@ our %unified_info = ( "doc/html/man7/OSSL_PROVIDER-null.html" => [ "doc/man7/OSSL_PROVIDER-null.pod" ], + "doc/html/man7/OSSL_STORE-winstore.html" => [ + "doc/man7/OSSL_STORE-winstore.pod" + ], "doc/html/man7/RAND.html" => [ "doc/man7/RAND.pod" ], @@ -13226,9 +15393,6 @@ our %unified_info = ( "doc/html/man7/bio.html" => [ "doc/man7/bio.pod" ], - "doc/html/man7/crypto.html" => [ - "doc/man7/crypto.pod" - ], "doc/html/man7/ct.html" => [ "doc/man7/ct.pod" ], @@ -13259,9 +15423,6 @@ our %unified_info = ( "doc/html/man7/life_cycle-rand.html" => [ "doc/man7/life_cycle-rand.pod" ], - "doc/html/man7/migration_guide.html" => [ - "doc/man7/migration_guide.pod" - ], "doc/html/man7/openssl-core.h.html" => [ "doc/man7/openssl-core.h.pod" ], @@ -13277,12 +15438,66 @@ our %unified_info = ( "doc/html/man7/openssl-glossary.html" => [ "doc/man7/openssl-glossary.pod" ], + "doc/html/man7/openssl-qlog.html" => [ + "doc/man7/openssl-qlog.pod" + ], + "doc/html/man7/openssl-quic-concurrency.html" => [ + "doc/man7/openssl-quic-concurrency.pod" + ], + "doc/html/man7/openssl-quic.html" => [ + "doc/man7/openssl-quic.pod" + ], "doc/html/man7/openssl-threads.html" => [ "doc/man7/openssl-threads.pod" ], "doc/html/man7/openssl_user_macros.html" => [ "doc/man7/openssl_user_macros.pod" ], + "doc/html/man7/ossl-guide-introduction.html" => [ + "doc/man7/ossl-guide-introduction.pod" + ], + "doc/html/man7/ossl-guide-libcrypto-introduction.html" => [ + "doc/man7/ossl-guide-libcrypto-introduction.pod" + ], + "doc/html/man7/ossl-guide-libraries-introduction.html" => [ + "doc/man7/ossl-guide-libraries-introduction.pod" + ], + "doc/html/man7/ossl-guide-libssl-introduction.html" => [ + "doc/man7/ossl-guide-libssl-introduction.pod" + ], + "doc/html/man7/ossl-guide-migration.html" => [ + "doc/man7/ossl-guide-migration.pod" + ], + "doc/html/man7/ossl-guide-quic-client-block.html" => [ + "doc/man7/ossl-guide-quic-client-block.pod" + ], + "doc/html/man7/ossl-guide-quic-client-non-block.html" => [ + "doc/man7/ossl-guide-quic-client-non-block.pod" + ], + "doc/html/man7/ossl-guide-quic-introduction.html" => [ + "doc/man7/ossl-guide-quic-introduction.pod" + ], + "doc/html/man7/ossl-guide-quic-multi-stream.html" => [ + "doc/man7/ossl-guide-quic-multi-stream.pod" + ], + "doc/html/man7/ossl-guide-quic-server-block.html" => [ + "doc/man7/ossl-guide-quic-server-block.pod" + ], + "doc/html/man7/ossl-guide-quic-server-non-block.html" => [ + "doc/man7/ossl-guide-quic-server-non-block.pod" + ], + "doc/html/man7/ossl-guide-tls-client-block.html" => [ + "doc/man7/ossl-guide-tls-client-block.pod" + ], + "doc/html/man7/ossl-guide-tls-client-non-block.html" => [ + "doc/man7/ossl-guide-tls-client-non-block.pod" + ], + "doc/html/man7/ossl-guide-tls-introduction.html" => [ + "doc/man7/ossl-guide-tls-introduction.pod" + ], + "doc/html/man7/ossl-guide-tls-server-block.html" => [ + "doc/man7/ossl-guide-tls-server-block.pod" + ], "doc/html/man7/ossl_store-file.html" => [ "doc/man7/ossl_store-file.pod" ], @@ -13337,6 +15552,9 @@ our %unified_info = ( "doc/html/man7/provider-signature.html" => [ "doc/man7/provider-signature.pod" ], + "doc/html/man7/provider-skeymgmt.html" => [ + "doc/man7/provider-skeymgmt.pod" + ], "doc/html/man7/provider-storemgmt.html" => [ "doc/man7/provider-storemgmt.pod" ], @@ -13346,9 +15564,6 @@ our %unified_info = ( "doc/html/man7/proxy-certificates.html" => [ "doc/man7/proxy-certificates.pod" ], - "doc/html/man7/ssl.html" => [ - "doc/man7/ssl.pod" - ], "doc/html/man7/x509.html" => [ "doc/man7/x509.pod" ], @@ -13496,6 +15711,9 @@ our %unified_info = ( "doc/man/man1/openssl-sess_id.1" => [ "doc/man1/openssl-sess_id.pod" ], + "doc/man/man1/openssl-skeyutl.1" => [ + "doc/man1/openssl-skeyutl.pod" + ], "doc/man/man1/openssl-smime.1" => [ "doc/man1/openssl-smime.pod" ], @@ -13637,6 +15855,9 @@ our %unified_info = ( "doc/man/man3/BIO_get_ex_new_index.3" => [ "doc/man3/BIO_get_ex_new_index.pod" ], + "doc/man/man3/BIO_get_rpoll_descriptor.3" => [ + "doc/man3/BIO_get_rpoll_descriptor.pod" + ], "doc/man/man3/BIO_meth_new.3" => [ "doc/man3/BIO_meth_new.pod" ], @@ -13673,6 +15894,9 @@ our %unified_info = ( "doc/man/man3/BIO_s_datagram.3" => [ "doc/man3/BIO_s_datagram.pod" ], + "doc/man/man3/BIO_s_dgram_pair.3" => [ + "doc/man3/BIO_s_dgram_pair.pod" + ], "doc/man/man3/BIO_s_fd.3" => [ "doc/man3/BIO_s_fd.pod" ], @@ -13688,6 +15912,9 @@ our %unified_info = ( "doc/man/man3/BIO_s_socket.3" => [ "doc/man3/BIO_s_socket.pod" ], + "doc/man/man3/BIO_sendmmsg.3" => [ + "doc/man3/BIO_sendmmsg.pod" + ], "doc/man/man3/BIO_set_callback.3" => [ "doc/man3/BIO_set_callback.pod" ], @@ -13760,6 +15987,9 @@ our %unified_info = ( "doc/man/man3/BUF_MEM_new.3" => [ "doc/man3/BUF_MEM_new.pod" ], + "doc/man/man3/CMAC_CTX.3" => [ + "doc/man3/CMAC_CTX.pod" + ], "doc/man/man3/CMS_EncryptedData_decrypt.3" => [ "doc/man3/CMS_EncryptedData_decrypt.pod" ], @@ -13826,6 +16056,9 @@ our %unified_info = ( "doc/man/man3/CMS_verify_receipt.3" => [ "doc/man3/CMS_verify_receipt.pod" ], + "doc/man/man3/COMP_CTX_new.3" => [ + "doc/man3/COMP_CTX_new.pod" + ], "doc/man/man3/CONF_modules_free.3" => [ "doc/man3/CONF_modules_free.pod" ], @@ -13925,6 +16158,12 @@ our %unified_info = ( "doc/man/man3/DTLS_set_timer_cb.3" => [ "doc/man3/DTLS_set_timer_cb.pod" ], + "doc/man/man3/DTLSv1_get_timeout.3" => [ + "doc/man3/DTLSv1_get_timeout.pod" + ], + "doc/man/man3/DTLSv1_handle_timeout.3" => [ + "doc/man3/DTLSv1_handle_timeout.pod" + ], "doc/man/man3/DTLSv1_listen.3" => [ "doc/man3/DTLSv1_listen.pod" ], @@ -14063,6 +16302,9 @@ our %unified_info = ( "doc/man/man3/EVP_PKEY_CTX_get0_pkey.3" => [ "doc/man3/EVP_PKEY_CTX_get0_pkey.pod" ], + "doc/man/man3/EVP_PKEY_CTX_get_algor.3" => [ + "doc/man3/EVP_PKEY_CTX_get_algor.pod" + ], "doc/man/man3/EVP_PKEY_CTX_new.3" => [ "doc/man3/EVP_PKEY_CTX_new.pod" ], @@ -14180,6 +16422,12 @@ our %unified_info = ( "doc/man/man3/EVP_SIGNATURE.3" => [ "doc/man3/EVP_SIGNATURE.pod" ], + "doc/man/man3/EVP_SKEY.3" => [ + "doc/man3/EVP_SKEY.pod" + ], + "doc/man/man3/EVP_SKEYMGMT.3" => [ + "doc/man3/EVP_SKEYMGMT.pod" + ], "doc/man/man3/EVP_SealInit.3" => [ "doc/man3/EVP_SealInit.pod" ], @@ -14267,6 +16515,9 @@ our %unified_info = ( "doc/man/man3/EVP_whirlpool.3" => [ "doc/man3/EVP_whirlpool.pod" ], + "doc/man/man3/GENERAL_NAME.3" => [ + "doc/man3/GENERAL_NAME.pod" + ], "doc/man/man3/HMAC.3" => [ "doc/man3/HMAC.pod" ], @@ -14339,9 +16590,15 @@ our %unified_info = ( "doc/man/man3/OPENSSL_load_builtin_modules.3" => [ "doc/man3/OPENSSL_load_builtin_modules.pod" ], + "doc/man/man3/OPENSSL_load_u16_le.3" => [ + "doc/man3/OPENSSL_load_u16_le.pod" + ], "doc/man/man3/OPENSSL_malloc.3" => [ "doc/man3/OPENSSL_malloc.pod" ], + "doc/man/man3/OPENSSL_riscvcap.3" => [ + "doc/man3/OPENSSL_riscvcap.pod" + ], "doc/man/man3/OPENSSL_s390xcap.3" => [ "doc/man3/OPENSSL_s390xcap.pod" ], @@ -14357,12 +16614,18 @@ our %unified_info = ( "doc/man/man3/OSSL_CALLBACK.3" => [ "doc/man3/OSSL_CALLBACK.pod" ], + "doc/man/man3/OSSL_CMP_ATAV_set0.3" => [ + "doc/man3/OSSL_CMP_ATAV_set0.pod" + ], "doc/man/man3/OSSL_CMP_CTX_new.3" => [ "doc/man3/OSSL_CMP_CTX_new.pod" ], "doc/man/man3/OSSL_CMP_HDR_get0_transactionID.3" => [ "doc/man3/OSSL_CMP_HDR_get0_transactionID.pod" ], + "doc/man/man3/OSSL_CMP_ITAV_new_caCerts.3" => [ + "doc/man3/OSSL_CMP_ITAV_new_caCerts.pod" + ], "doc/man/man3/OSSL_CMP_ITAV_set0.3" => [ "doc/man3/OSSL_CMP_ITAV_set0.pod" ], @@ -14432,9 +16695,18 @@ our %unified_info = ( "doc/man/man3/OSSL_ENCODER_to_bio.3" => [ "doc/man3/OSSL_ENCODER_to_bio.pod" ], + "doc/man/man3/OSSL_ERR_STATE_save.3" => [ + "doc/man3/OSSL_ERR_STATE_save.pod" + ], "doc/man/man3/OSSL_ESS_check_signing_certs.3" => [ "doc/man3/OSSL_ESS_check_signing_certs.pod" ], + "doc/man/man3/OSSL_GENERAL_NAMES_print.3" => [ + "doc/man3/OSSL_GENERAL_NAMES_print.pod" + ], + "doc/man/man3/OSSL_HPKE_CTX_new.3" => [ + "doc/man3/OSSL_HPKE_CTX_new.pod" + ], "doc/man/man3/OSSL_HTTP_REQ_CTX.3" => [ "doc/man3/OSSL_HTTP_REQ_CTX.pod" ], @@ -14444,12 +16716,24 @@ our %unified_info = ( "doc/man/man3/OSSL_HTTP_transfer.3" => [ "doc/man3/OSSL_HTTP_transfer.pod" ], + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX.3" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX.pod" + ], + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX_print.3" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX_print.pod" + ], + "doc/man/man3/OSSL_INDICATOR_set_callback.3" => [ + "doc/man3/OSSL_INDICATOR_set_callback.pod" + ], "doc/man/man3/OSSL_ITEM.3" => [ "doc/man3/OSSL_ITEM.pod" ], "doc/man/man3/OSSL_LIB_CTX.3" => [ "doc/man3/OSSL_LIB_CTX.pod" ], + "doc/man/man3/OSSL_LIB_CTX_set_conf_diagnostics.3" => [ + "doc/man3/OSSL_LIB_CTX_set_conf_diagnostics.pod" + ], "doc/man/man3/OSSL_PARAM.3" => [ "doc/man3/OSSL_PARAM.pod" ], @@ -14465,9 +16749,15 @@ our %unified_info = ( "doc/man/man3/OSSL_PARAM_int.3" => [ "doc/man3/OSSL_PARAM_int.pod" ], + "doc/man/man3/OSSL_PARAM_print_to_bio.3" => [ + "doc/man3/OSSL_PARAM_print_to_bio.pod" + ], "doc/man/man3/OSSL_PROVIDER.3" => [ "doc/man3/OSSL_PROVIDER.pod" ], + "doc/man/man3/OSSL_QUIC_client_method.3" => [ + "doc/man3/OSSL_QUIC_client_method.pod" + ], "doc/man/man3/OSSL_SELF_TEST_new.3" => [ "doc/man3/OSSL_SELF_TEST_new.pod" ], @@ -14492,6 +16782,9 @@ our %unified_info = ( "doc/man/man3/OSSL_STORE_open.3" => [ "doc/man3/OSSL_STORE_open.pod" ], + "doc/man/man3/OSSL_sleep.3" => [ + "doc/man3/OSSL_sleep.pod" + ], "doc/man/man3/OSSL_trace_enabled.3" => [ "doc/man3/OSSL_trace_enabled.pod" ], @@ -14507,6 +16800,9 @@ our %unified_info = ( "doc/man/man3/OpenSSL_version.3" => [ "doc/man3/OpenSSL_version.pod" ], + "doc/man/man3/PBMAC1_get1_pbkdf2_param.3" => [ + "doc/man3/PBMAC1_get1_pbkdf2_param.pod" + ], "doc/man/man3/PEM_X509_INFO_read_bio_ex.3" => [ "doc/man3/PEM_X509_INFO_read_bio_ex.pod" ], @@ -14543,6 +16839,9 @@ our %unified_info = ( "doc/man/man3/PKCS12_SAFEBAG_get1_cert.3" => [ "doc/man3/PKCS12_SAFEBAG_get1_cert.pod" ], + "doc/man/man3/PKCS12_SAFEBAG_set0_attrs.3" => [ + "doc/man3/PKCS12_SAFEBAG_set0_attrs.pod" + ], "doc/man/man3/PKCS12_add1_attr_by_NID.3" => [ "doc/man3/PKCS12_add1_attr_by_NID.pod" ], @@ -14816,6 +17115,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set0_CA_list.3" => [ "doc/man3/SSL_CTX_set0_CA_list.pod" ], + "doc/man/man3/SSL_CTX_set1_cert_comp_preference.3" => [ + "doc/man3/SSL_CTX_set1_cert_comp_preference.pod" + ], "doc/man/man3/SSL_CTX_set1_curves.3" => [ "doc/man3/SSL_CTX_set1_curves.pod" ], @@ -14855,6 +17157,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_default_passwd_cb.3" => [ "doc/man3/SSL_CTX_set_default_passwd_cb.pod" ], + "doc/man/man3/SSL_CTX_set_domain_flags.3" => [ + "doc/man3/SSL_CTX_set_domain_flags.pod" + ], "doc/man/man3/SSL_CTX_set_generate_session_id.3" => [ "doc/man3/SSL_CTX_set_generate_session_id.pod" ], @@ -14876,6 +17181,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_msg_callback.3" => [ "doc/man3/SSL_CTX_set_msg_callback.pod" ], + "doc/man/man3/SSL_CTX_set_new_pending_conn_cb.3" => [ + "doc/man3/SSL_CTX_set_new_pending_conn_cb.pod" + ], "doc/man/man3/SSL_CTX_set_num_tickets.3" => [ "doc/man3/SSL_CTX_set_num_tickets.pod" ], @@ -14990,6 +17298,9 @@ our %unified_info = ( "doc/man/man3/SSL_accept.3" => [ "doc/man3/SSL_accept.pod" ], + "doc/man/man3/SSL_accept_stream.3" => [ + "doc/man3/SSL_accept_stream.pod" + ], "doc/man/man3/SSL_alert_type_string.3" => [ "doc/man3/SSL_alert_type_string.pod" ], @@ -15017,9 +17328,21 @@ our %unified_info = ( "doc/man/man3/SSL_free.3" => [ "doc/man3/SSL_free.pod" ], + "doc/man/man3/SSL_get0_connection.3" => [ + "doc/man3/SSL_get0_connection.pod" + ], + "doc/man/man3/SSL_get0_group_name.3" => [ + "doc/man3/SSL_get0_group_name.pod" + ], + "doc/man/man3/SSL_get0_peer_rpk.3" => [ + "doc/man3/SSL_get0_peer_rpk.pod" + ], "doc/man/man3/SSL_get0_peer_scts.3" => [ "doc/man3/SSL_get0_peer_scts.pod" ], + "doc/man/man3/SSL_get1_builtin_sigalgs.3" => [ + "doc/man3/SSL_get1_builtin_sigalgs.pod" + ], "doc/man/man3/SSL_get_SSL_CTX.3" => [ "doc/man3/SSL_get_SSL_CTX.pod" ], @@ -15035,6 +17358,9 @@ our %unified_info = ( "doc/man/man3/SSL_get_client_random.3" => [ "doc/man3/SSL_get_client_random.pod" ], + "doc/man/man3/SSL_get_conn_close_info.3" => [ + "doc/man3/SSL_get_conn_close_info.pod" + ], "doc/man/man3/SSL_get_current_cipher.3" => [ "doc/man3/SSL_get_current_cipher.pod" ], @@ -15044,12 +17370,18 @@ our %unified_info = ( "doc/man/man3/SSL_get_error.3" => [ "doc/man3/SSL_get_error.pod" ], + "doc/man/man3/SSL_get_event_timeout.3" => [ + "doc/man3/SSL_get_event_timeout.pod" + ], "doc/man/man3/SSL_get_extms_support.3" => [ "doc/man3/SSL_get_extms_support.pod" ], "doc/man/man3/SSL_get_fd.3" => [ "doc/man3/SSL_get_fd.pod" ], + "doc/man/man3/SSL_get_handshake_rtt.3" => [ + "doc/man3/SSL_get_handshake_rtt.pod" + ], "doc/man/man3/SSL_get_peer_cert_chain.3" => [ "doc/man3/SSL_get_peer_cert_chain.pod" ], @@ -15068,11 +17400,23 @@ our %unified_info = ( "doc/man/man3/SSL_get_rbio.3" => [ "doc/man3/SSL_get_rbio.pod" ], + "doc/man/man3/SSL_get_rpoll_descriptor.3" => [ + "doc/man3/SSL_get_rpoll_descriptor.pod" + ], "doc/man/man3/SSL_get_session.3" => [ "doc/man3/SSL_get_session.pod" ], - "doc/man/man3/SSL_get_shared_sigalgs.3" => [ - "doc/man3/SSL_get_shared_sigalgs.pod" + "doc/man/man3/SSL_get_shared_sigalgs.3" => [ + "doc/man3/SSL_get_shared_sigalgs.pod" + ], + "doc/man/man3/SSL_get_stream_id.3" => [ + "doc/man3/SSL_get_stream_id.pod" + ], + "doc/man/man3/SSL_get_stream_read_state.3" => [ + "doc/man3/SSL_get_stream_read_state.pod" + ], + "doc/man/man3/SSL_get_value_uint.3" => [ + "doc/man3/SSL_get_value_uint.pod" ], "doc/man/man3/SSL_get_verify_result.3" => [ "doc/man3/SSL_get_verify_result.pod" @@ -15083,9 +17427,15 @@ our %unified_info = ( "doc/man/man3/SSL_group_to_name.3" => [ "doc/man3/SSL_group_to_name.pod" ], + "doc/man/man3/SSL_handle_events.3" => [ + "doc/man3/SSL_handle_events.pod" + ], "doc/man/man3/SSL_in_init.3" => [ "doc/man3/SSL_in_init.pod" ], + "doc/man/man3/SSL_inject_net_dgram.3" => [ + "doc/man3/SSL_inject_net_dgram.pod" + ], "doc/man/man3/SSL_key_update.3" => [ "doc/man3/SSL_key_update.pod" ], @@ -15098,9 +17448,21 @@ our %unified_info = ( "doc/man/man3/SSL_new.3" => [ "doc/man3/SSL_new.pod" ], + "doc/man/man3/SSL_new_domain.3" => [ + "doc/man3/SSL_new_domain.pod" + ], + "doc/man/man3/SSL_new_listener.3" => [ + "doc/man3/SSL_new_listener.pod" + ], + "doc/man/man3/SSL_new_stream.3" => [ + "doc/man3/SSL_new_stream.pod" + ], "doc/man/man3/SSL_pending.3" => [ "doc/man3/SSL_pending.pod" ], + "doc/man/man3/SSL_poll.3" => [ + "doc/man3/SSL_poll.pod" + ], "doc/man/man3/SSL_read.3" => [ "doc/man3/SSL_read.pod" ], @@ -15116,24 +17478,45 @@ our %unified_info = ( "doc/man/man3/SSL_set1_host.3" => [ "doc/man3/SSL_set1_host.pod" ], + "doc/man/man3/SSL_set1_initial_peer_addr.3" => [ + "doc/man3/SSL_set1_initial_peer_addr.pod" + ], + "doc/man/man3/SSL_set1_server_cert_type.3" => [ + "doc/man3/SSL_set1_server_cert_type.pod" + ], "doc/man/man3/SSL_set_async_callback.3" => [ "doc/man3/SSL_set_async_callback.pod" ], "doc/man/man3/SSL_set_bio.3" => [ "doc/man3/SSL_set_bio.pod" ], + "doc/man/man3/SSL_set_blocking_mode.3" => [ + "doc/man3/SSL_set_blocking_mode.pod" + ], "doc/man/man3/SSL_set_connect_state.3" => [ "doc/man3/SSL_set_connect_state.pod" ], + "doc/man/man3/SSL_set_default_stream_mode.3" => [ + "doc/man3/SSL_set_default_stream_mode.pod" + ], "doc/man/man3/SSL_set_fd.3" => [ "doc/man3/SSL_set_fd.pod" ], + "doc/man/man3/SSL_set_incoming_stream_policy.3" => [ + "doc/man3/SSL_set_incoming_stream_policy.pod" + ], + "doc/man/man3/SSL_set_quic_tls_cbs.3" => [ + "doc/man3/SSL_set_quic_tls_cbs.pod" + ], "doc/man/man3/SSL_set_retry_verify.3" => [ "doc/man3/SSL_set_retry_verify.pod" ], "doc/man/man3/SSL_set_session.3" => [ "doc/man3/SSL_set_session.pod" ], + "doc/man/man3/SSL_set_session_secret_cb.3" => [ + "doc/man3/SSL_set_session_secret_cb.pod" + ], "doc/man/man3/SSL_set_shutdown.3" => [ "doc/man3/SSL_set_shutdown.pod" ], @@ -15146,6 +17529,12 @@ our %unified_info = ( "doc/man/man3/SSL_state_string.3" => [ "doc/man3/SSL_state_string.pod" ], + "doc/man/man3/SSL_stream_conclude.3" => [ + "doc/man3/SSL_stream_conclude.pod" + ], + "doc/man/man3/SSL_stream_reset.3" => [ + "doc/man3/SSL_stream_reset.pod" + ], "doc/man/man3/SSL_want.3" => [ "doc/man3/SSL_want.pod" ], @@ -15155,8 +17544,8 @@ our %unified_info = ( "doc/man/man3/TS_RESP_CTX_new.3" => [ "doc/man3/TS_RESP_CTX_new.pod" ], - "doc/man/man3/TS_VERIFY_CTX_set_certs.3" => [ - "doc/man3/TS_VERIFY_CTX_set_certs.pod" + "doc/man/man3/TS_VERIFY_CTX.3" => [ + "doc/man3/TS_VERIFY_CTX.pod" ], "doc/man/man3/UI_STRING.3" => [ "doc/man3/UI_STRING.pod" @@ -15176,6 +17565,21 @@ our %unified_info = ( "doc/man/man3/X509V3_set_ctx.3" => [ "doc/man3/X509V3_set_ctx.pod" ], + "doc/man/man3/X509_ACERT_add1_attr.3" => [ + "doc/man3/X509_ACERT_add1_attr.pod" + ], + "doc/man/man3/X509_ACERT_add_attr_nconf.3" => [ + "doc/man3/X509_ACERT_add_attr_nconf.pod" + ], + "doc/man/man3/X509_ACERT_get0_holder_baseCertId.3" => [ + "doc/man3/X509_ACERT_get0_holder_baseCertId.pod" + ], + "doc/man/man3/X509_ACERT_get_attr.3" => [ + "doc/man3/X509_ACERT_get_attr.pod" + ], + "doc/man/man3/X509_ACERT_print_ex.3" => [ + "doc/man3/X509_ACERT_print_ex.pod" + ], "doc/man/man3/X509_ALGOR_dup.3" => [ "doc/man3/X509_ALGOR_dup.pod" ], @@ -15224,6 +17628,9 @@ our %unified_info = ( "doc/man/man3/X509_SIG_get0.3" => [ "doc/man3/X509_SIG_get0.pod" ], + "doc/man/man3/X509_STORE_CTX_get_by_subject.3" => [ + "doc/man3/X509_STORE_CTX_get_by_subject.pod" + ], "doc/man/man3/X509_STORE_CTX_get_error.3" => [ "doc/man3/X509_STORE_CTX_get_error.pod" ], @@ -15290,6 +17697,9 @@ our %unified_info = ( "doc/man/man3/X509_get0_uids.3" => [ "doc/man3/X509_get0_uids.pod" ], + "doc/man/man3/X509_get_default_cert_file.3" => [ + "doc/man3/X509_get_default_cert_file.pod" + ], "doc/man/man3/X509_get_extension_flags.3" => [ "doc/man3/X509_get_extension_flags.pod" ], @@ -15413,9 +17823,15 @@ our %unified_info = ( "doc/man/man7/EVP_CIPHER-SM4.7" => [ "doc/man7/EVP_CIPHER-SM4.pod" ], + "doc/man/man7/EVP_KDF-ARGON2.7" => [ + "doc/man7/EVP_KDF-ARGON2.pod" + ], "doc/man/man7/EVP_KDF-HKDF.7" => [ "doc/man7/EVP_KDF-HKDF.pod" ], + "doc/man/man7/EVP_KDF-HMAC-DRBG.7" => [ + "doc/man7/EVP_KDF-HMAC-DRBG.pod" + ], "doc/man/man7/EVP_KDF-KB.7" => [ "doc/man7/EVP_KDF-KB.pod" ], @@ -15431,6 +17847,9 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-PKCS12KDF.7" => [ "doc/man7/EVP_KDF-PKCS12KDF.pod" ], + "doc/man/man7/EVP_KDF-PVKKDF.7" => [ + "doc/man7/EVP_KDF-PVKKDF.pod" + ], "doc/man/man7/EVP_KDF-SCRYPT.7" => [ "doc/man7/EVP_KDF-SCRYPT.pod" ], @@ -15455,9 +17874,18 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-X963.7" => [ "doc/man7/EVP_KDF-X963.pod" ], + "doc/man/man7/EVP_KEM-EC.7" => [ + "doc/man7/EVP_KEM-EC.pod" + ], + "doc/man/man7/EVP_KEM-ML-KEM.7" => [ + "doc/man7/EVP_KEM-ML-KEM.pod" + ], "doc/man/man7/EVP_KEM-RSA.7" => [ "doc/man7/EVP_KEM-RSA.pod" ], + "doc/man/man7/EVP_KEM-X25519.7" => [ + "doc/man7/EVP_KEM-X25519.pod" + ], "doc/man/man7/EVP_KEYEXCH-DH.7" => [ "doc/man7/EVP_KEYEXCH-DH.pod" ], @@ -15491,6 +17919,9 @@ our %unified_info = ( "doc/man/man7/EVP_MD-BLAKE2.7" => [ "doc/man7/EVP_MD-BLAKE2.pod" ], + "doc/man/man7/EVP_MD-KECCAK.7" => [ + "doc/man7/EVP_MD-KECCAK.pod" + ], "doc/man/man7/EVP_MD-MD2.7" => [ "doc/man7/EVP_MD-MD2.pod" ], @@ -15548,15 +17979,27 @@ our %unified_info = ( "doc/man/man7/EVP_PKEY-HMAC.7" => [ "doc/man7/EVP_PKEY-HMAC.pod" ], + "doc/man/man7/EVP_PKEY-ML-DSA.7" => [ + "doc/man7/EVP_PKEY-ML-DSA.pod" + ], + "doc/man/man7/EVP_PKEY-ML-KEM.7" => [ + "doc/man7/EVP_PKEY-ML-KEM.pod" + ], "doc/man/man7/EVP_PKEY-RSA.7" => [ "doc/man7/EVP_PKEY-RSA.pod" ], + "doc/man/man7/EVP_PKEY-SLH-DSA.7" => [ + "doc/man7/EVP_PKEY-SLH-DSA.pod" + ], "doc/man/man7/EVP_PKEY-SM2.7" => [ "doc/man7/EVP_PKEY-SM2.pod" ], "doc/man/man7/EVP_PKEY-X25519.7" => [ "doc/man7/EVP_PKEY-X25519.pod" ], + "doc/man/man7/EVP_RAND-CRNG-TEST.7" => [ + "doc/man7/EVP_RAND-CRNG-TEST.pod" + ], "doc/man/man7/EVP_RAND-CTR-DRBG.7" => [ "doc/man7/EVP_RAND-CTR-DRBG.pod" ], @@ -15566,6 +18009,9 @@ our %unified_info = ( "doc/man/man7/EVP_RAND-HMAC-DRBG.7" => [ "doc/man7/EVP_RAND-HMAC-DRBG.pod" ], + "doc/man/man7/EVP_RAND-JITTER.7" => [ + "doc/man7/EVP_RAND-JITTER.pod" + ], "doc/man/man7/EVP_RAND-SEED-SRC.7" => [ "doc/man7/EVP_RAND-SEED-SRC.pod" ], @@ -15587,9 +18033,15 @@ our %unified_info = ( "doc/man/man7/EVP_SIGNATURE-HMAC.7" => [ "doc/man7/EVP_SIGNATURE-HMAC.pod" ], + "doc/man/man7/EVP_SIGNATURE-ML-DSA.7" => [ + "doc/man7/EVP_SIGNATURE-ML-DSA.pod" + ], "doc/man/man7/EVP_SIGNATURE-RSA.7" => [ "doc/man7/EVP_SIGNATURE-RSA.pod" ], + "doc/man/man7/EVP_SIGNATURE-SLH-DSA.7" => [ + "doc/man7/EVP_SIGNATURE-SLH-DSA.pod" + ], "doc/man/man7/OSSL_PROVIDER-FIPS.7" => [ "doc/man7/OSSL_PROVIDER-FIPS.pod" ], @@ -15605,6 +18057,9 @@ our %unified_info = ( "doc/man/man7/OSSL_PROVIDER-null.7" => [ "doc/man7/OSSL_PROVIDER-null.pod" ], + "doc/man/man7/OSSL_STORE-winstore.7" => [ + "doc/man7/OSSL_STORE-winstore.pod" + ], "doc/man/man7/RAND.7" => [ "doc/man7/RAND.pod" ], @@ -15617,9 +18072,6 @@ our %unified_info = ( "doc/man/man7/bio.7" => [ "doc/man7/bio.pod" ], - "doc/man/man7/crypto.7" => [ - "doc/man7/crypto.pod" - ], "doc/man/man7/ct.7" => [ "doc/man7/ct.pod" ], @@ -15650,9 +18102,6 @@ our %unified_info = ( "doc/man/man7/life_cycle-rand.7" => [ "doc/man7/life_cycle-rand.pod" ], - "doc/man/man7/migration_guide.7" => [ - "doc/man7/migration_guide.pod" - ], "doc/man/man7/openssl-core.h.7" => [ "doc/man7/openssl-core.h.pod" ], @@ -15668,12 +18117,66 @@ our %unified_info = ( "doc/man/man7/openssl-glossary.7" => [ "doc/man7/openssl-glossary.pod" ], + "doc/man/man7/openssl-qlog.7" => [ + "doc/man7/openssl-qlog.pod" + ], + "doc/man/man7/openssl-quic-concurrency.7" => [ + "doc/man7/openssl-quic-concurrency.pod" + ], + "doc/man/man7/openssl-quic.7" => [ + "doc/man7/openssl-quic.pod" + ], "doc/man/man7/openssl-threads.7" => [ "doc/man7/openssl-threads.pod" ], "doc/man/man7/openssl_user_macros.7" => [ "doc/man7/openssl_user_macros.pod" ], + "doc/man/man7/ossl-guide-introduction.7" => [ + "doc/man7/ossl-guide-introduction.pod" + ], + "doc/man/man7/ossl-guide-libcrypto-introduction.7" => [ + "doc/man7/ossl-guide-libcrypto-introduction.pod" + ], + "doc/man/man7/ossl-guide-libraries-introduction.7" => [ + "doc/man7/ossl-guide-libraries-introduction.pod" + ], + "doc/man/man7/ossl-guide-libssl-introduction.7" => [ + "doc/man7/ossl-guide-libssl-introduction.pod" + ], + "doc/man/man7/ossl-guide-migration.7" => [ + "doc/man7/ossl-guide-migration.pod" + ], + "doc/man/man7/ossl-guide-quic-client-block.7" => [ + "doc/man7/ossl-guide-quic-client-block.pod" + ], + "doc/man/man7/ossl-guide-quic-client-non-block.7" => [ + "doc/man7/ossl-guide-quic-client-non-block.pod" + ], + "doc/man/man7/ossl-guide-quic-introduction.7" => [ + "doc/man7/ossl-guide-quic-introduction.pod" + ], + "doc/man/man7/ossl-guide-quic-multi-stream.7" => [ + "doc/man7/ossl-guide-quic-multi-stream.pod" + ], + "doc/man/man7/ossl-guide-quic-server-block.7" => [ + "doc/man7/ossl-guide-quic-server-block.pod" + ], + "doc/man/man7/ossl-guide-quic-server-non-block.7" => [ + "doc/man7/ossl-guide-quic-server-non-block.pod" + ], + "doc/man/man7/ossl-guide-tls-client-block.7" => [ + "doc/man7/ossl-guide-tls-client-block.pod" + ], + "doc/man/man7/ossl-guide-tls-client-non-block.7" => [ + "doc/man7/ossl-guide-tls-client-non-block.pod" + ], + "doc/man/man7/ossl-guide-tls-introduction.7" => [ + "doc/man7/ossl-guide-tls-introduction.pod" + ], + "doc/man/man7/ossl-guide-tls-server-block.7" => [ + "doc/man7/ossl-guide-tls-server-block.pod" + ], "doc/man/man7/ossl_store-file.7" => [ "doc/man7/ossl_store-file.pod" ], @@ -15728,6 +18231,9 @@ our %unified_info = ( "doc/man/man7/provider-signature.7" => [ "doc/man7/provider-signature.pod" ], + "doc/man/man7/provider-skeymgmt.7" => [ + "doc/man7/provider-skeymgmt.pod" + ], "doc/man/man7/provider-storemgmt.7" => [ "doc/man7/provider-storemgmt.pod" ], @@ -15737,9 +18243,6 @@ our %unified_info = ( "doc/man/man7/proxy-certificates.7" => [ "doc/man7/proxy-certificates.pod" ], - "doc/man/man7/ssl.7" => [ - "doc/man7/ssl.pod" - ], "doc/man/man7/x509.7" => [ "doc/man7/x509.pod" ], @@ -15875,6 +18378,9 @@ our %unified_info = ( "doc/man1/openssl-sess_id.pod" => [ "doc/man1/openssl-sess_id.pod.in" ], + "doc/man1/openssl-skeyutl.pod" => [ + "doc/man1/openssl-skeyutl.pod.in" + ], "doc/man1/openssl-smime.pod" => [ "doc/man1/openssl-smime.pod.in" ], @@ -15911,12 +18417,30 @@ our %unified_info = ( "engines/e_padlock-x86_64.s" => [ "engines/asm/e_padlock-x86_64.pl" ], + "exporters/OpenSSLConfig.cmake" => [ + "exporters/cmake/OpenSSLConfig.cmake.in" + ], + "exporters/OpenSSLConfigVersion.cmake" => [ + "exporters/cmake/OpenSSLConfigVersion.cmake.in" + ], + "exporters/libcrypto.pc" => [ + "exporters/pkg-config/libcrypto.pc.in" + ], + "exporters/libssl.pc" => [ + "exporters/pkg-config/libssl.pc.in" + ], + "exporters/openssl.pc" => [ + "exporters/pkg-config/openssl.pc.in" + ], "include/crypto/bn_conf.h" => [ "include/crypto/bn_conf.h.in" ], "include/crypto/dso_conf.h" => [ "include/crypto/dso_conf.h.in" ], + "include/internal/param_names.h" => [ + "include/internal/param_names.h.in" + ], "include/openssl/asn1.h" => [ "include/openssl/asn1.h.in" ], @@ -15932,12 +18456,18 @@ our %unified_info = ( "include/openssl/cms.h" => [ "include/openssl/cms.h.in" ], + "include/openssl/comp.h" => [ + "include/openssl/comp.h.in" + ], "include/openssl/conf.h" => [ "include/openssl/conf.h.in" ], "include/openssl/configuration.h" => [ "include/openssl/configuration.h.in" ], + "include/openssl/core_names.h" => [ + "include/openssl/core_names.h.in" + ], "include/openssl/crmf.h" => [ "include/openssl/crmf.h.in" ], @@ -15986,16 +18516,37 @@ our %unified_info = ( "include/openssl/x509.h" => [ "include/openssl/x509.h.in" ], + "include/openssl/x509_acert.h" => [ + "include/openssl/x509_acert.h.in" + ], "include/openssl/x509_vfy.h" => [ "include/openssl/x509_vfy.h.in" ], "include/openssl/x509v3.h" => [ "include/openssl/x509v3.h.in" ], + "installdata.pm" => [ + "util/mkinstallvars.pl", + "\"PREFIX=\$(INSTALLTOP)\"", + "BINDIR=bin", + "\"LIBDIR=\$(LIBDIR)\"", + "\"libdir=\$(libdir)\"", + "INCLUDEDIR=include", + "APPLINKDIR=include/openssl", + "\"ENGINESDIR=\$(ENGINESDIR)\"", + "\"MODULESDIR=\$(MODULESDIR)\"", + "\"PKGCONFIGDIR=\$(PKGCONFIGDIR)\"", + "\"CMAKECONFIGDIR=\$(CMAKECONFIGDIR)\"", + "\"LDLIBS=\$(LIB_EX_LIBS)\"", + "\"VERSION=\$(VERSION)\"" + ], "libcrypto.ld" => [ "util/libcrypto.num", "libcrypto" ], + "libcrypto.pc" => [ + "exporters/pkg-config/libcrypto.pc.in" + ], "libcrypto.rc" => [ "util/mkrc.pl", "libcrypto" @@ -16004,10 +18555,16 @@ our %unified_info = ( "util/libssl.num", "libssl" ], + "libssl.pc" => [ + "exporters/pkg-config/libssl.pc.in" + ], "libssl.rc" => [ "util/mkrc.pl", "libssl" ], + "openssl.pc" => [ + "exporters/pkg-config/openssl.pc.in" + ], "providers/common/der/der_digests_gen.c" => [ "providers/common/der/der_digests_gen.c.in" ], @@ -16020,9 +18577,15 @@ our %unified_info = ( "providers/common/der/der_ecx_gen.c" => [ "providers/common/der/der_ecx_gen.c.in" ], + "providers/common/der/der_ml_dsa_gen.c" => [ + "providers/common/der/der_ml_dsa_gen.c.in" + ], "providers/common/der/der_rsa_gen.c" => [ "providers/common/der/der_rsa_gen.c.in" ], + "providers/common/der/der_slh_dsa_gen.c" => [ + "providers/common/der/der_slh_dsa_gen.c.in" + ], "providers/common/der/der_sm2_gen.c" => [ "providers/common/der/der_sm2_gen.c.in" ], @@ -16041,9 +18604,15 @@ our %unified_info = ( "providers/common/include/prov/der_ecx.h" => [ "providers/common/include/prov/der_ecx.h.in" ], + "providers/common/include/prov/der_ml_dsa.h" => [ + "providers/common/include/prov/der_ml_dsa.h.in" + ], "providers/common/include/prov/der_rsa.h" => [ "providers/common/include/prov/der_rsa.h.in" ], + "providers/common/include/prov/der_slh_dsa.h" => [ + "providers/common/include/prov/der_slh_dsa.h.in" + ], "providers/common/include/prov/der_sm2.h" => [ "providers/common/include/prov/der_sm2.h.in" ], @@ -16093,6 +18662,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "buffer" ], + "test/buildtest_byteorder.c" => [ + "test/generate_buildtest.pl", + "byteorder" + ], "test/buildtest_camellia.c" => [ "test/generate_buildtest.pl", "camellia" @@ -16125,10 +18698,6 @@ our %unified_info = ( "test/generate_buildtest.pl", "core_dispatch" ], - "test/buildtest_core_names.c" => [ - "test/generate_buildtest.pl", - "core_names" - ], "test/buildtest_core_object.c" => [ "test/generate_buildtest.pl", "core_object" @@ -16161,6 +18730,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "e_os2" ], + "test/buildtest_e_ostime.c" => [ + "test/generate_buildtest.pl", + "e_ostime" + ], "test/buildtest_ebcdic.c" => [ "test/generate_buildtest.pl", "ebcdic" @@ -16197,6 +18770,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "hmac" ], + "test/buildtest_hpke.c" => [ + "test/generate_buildtest.pl", + "hpke" + ], "test/buildtest_http.c" => [ "test/generate_buildtest.pl", "http" @@ -16205,6 +18782,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "idea" ], + "test/buildtest_indicator.c" => [ + "test/generate_buildtest.pl", + "indicator" + ], "test/buildtest_kdf.c" => [ "test/generate_buildtest.pl", "kdf" @@ -16225,6 +18806,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "mdc2" ], + "test/buildtest_ml_kem.c" => [ + "test/generate_buildtest.pl", + "ml_kem" + ], "test/buildtest_modes.c" => [ "test/generate_buildtest.pl", "modes" @@ -16265,6 +18850,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "provider" ], + "test/buildtest_quic.c" => [ + "test/generate_buildtest.pl", + "quic" + ], "test/buildtest_rand.c" => [ "test/generate_buildtest.pl", "rand" @@ -16321,6 +18910,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "symhacks" ], + "test/buildtest_thread.c" => [ + "test/generate_buildtest.pl", + "thread" + ], "test/buildtest_tls1.c" => [ "test/generate_buildtest.pl", "tls1" @@ -16401,6 +18994,7 @@ our %unified_info = ( "doc/html/man1/openssl-s_server.html", "doc/html/man1/openssl-s_time.html", "doc/html/man1/openssl-sess_id.html", + "doc/html/man1/openssl-skeyutl.html", "doc/html/man1/openssl-smime.html", "doc/html/man1/openssl-speed.html", "doc/html/man1/openssl-spkac.html", @@ -16450,6 +19044,7 @@ our %unified_info = ( "doc/html/man3/BIO_find_type.html", "doc/html/man3/BIO_get_data.html", "doc/html/man3/BIO_get_ex_new_index.html", + "doc/html/man3/BIO_get_rpoll_descriptor.html", "doc/html/man3/BIO_meth_new.html", "doc/html/man3/BIO_new.html", "doc/html/man3/BIO_new_CMS.html", @@ -16462,11 +19057,13 @@ our %unified_info = ( "doc/html/man3/BIO_s_connect.html", "doc/html/man3/BIO_s_core.html", "doc/html/man3/BIO_s_datagram.html", + "doc/html/man3/BIO_s_dgram_pair.html", "doc/html/man3/BIO_s_fd.html", "doc/html/man3/BIO_s_file.html", "doc/html/man3/BIO_s_mem.html", "doc/html/man3/BIO_s_null.html", "doc/html/man3/BIO_s_socket.html", + "doc/html/man3/BIO_sendmmsg.html", "doc/html/man3/BIO_set_callback.html", "doc/html/man3/BIO_should_retry.html", "doc/html/man3/BIO_socket_wait.html", @@ -16491,6 +19088,7 @@ our %unified_info = ( "doc/html/man3/BN_swap.html", "doc/html/man3/BN_zero.html", "doc/html/man3/BUF_MEM_new.html", + "doc/html/man3/CMAC_CTX.html", "doc/html/man3/CMS_EncryptedData_decrypt.html", "doc/html/man3/CMS_EncryptedData_encrypt.html", "doc/html/man3/CMS_EnvelopedData_create.html", @@ -16513,6 +19111,7 @@ our %unified_info = ( "doc/html/man3/CMS_uncompress.html", "doc/html/man3/CMS_verify.html", "doc/html/man3/CMS_verify_receipt.html", + "doc/html/man3/COMP_CTX_new.html", "doc/html/man3/CONF_modules_free.html", "doc/html/man3/CONF_modules_load_file.html", "doc/html/man3/CRYPTO_THREAD_run_once.html", @@ -16546,6 +19145,8 @@ our %unified_info = ( "doc/html/man3/DSA_size.html", "doc/html/man3/DTLS_get_data_mtu.html", "doc/html/man3/DTLS_set_timer_cb.html", + "doc/html/man3/DTLSv1_get_timeout.html", + "doc/html/man3/DTLSv1_handle_timeout.html", "doc/html/man3/DTLSv1_listen.html", "doc/html/man3/ECDSA_SIG_new.html", "doc/html/man3/ECDSA_sign.html", @@ -16592,6 +19193,7 @@ our %unified_info = ( "doc/html/man3/EVP_PKEY_CTX_ctrl.html", "doc/html/man3/EVP_PKEY_CTX_get0_libctx.html", "doc/html/man3/EVP_PKEY_CTX_get0_pkey.html", + "doc/html/man3/EVP_PKEY_CTX_get_algor.html", "doc/html/man3/EVP_PKEY_CTX_new.html", "doc/html/man3/EVP_PKEY_CTX_set1_pbe_pass.html", "doc/html/man3/EVP_PKEY_CTX_set_hkdf_md.html", @@ -16631,6 +19233,8 @@ our %unified_info = ( "doc/html/man3/EVP_PKEY_verify_recover.html", "doc/html/man3/EVP_RAND.html", "doc/html/man3/EVP_SIGNATURE.html", + "doc/html/man3/EVP_SKEY.html", + "doc/html/man3/EVP_SKEYMGMT.html", "doc/html/man3/EVP_SealInit.html", "doc/html/man3/EVP_SignInit.html", "doc/html/man3/EVP_VerifyInit.html", @@ -16660,6 +19264,7 @@ our %unified_info = ( "doc/html/man3/EVP_sm3.html", "doc/html/man3/EVP_sm4_cbc.html", "doc/html/man3/EVP_whirlpool.html", + "doc/html/man3/GENERAL_NAME.html", "doc/html/man3/HMAC.html", "doc/html/man3/MD5.html", "doc/html/man3/MDC2_Init.html", @@ -16684,14 +19289,18 @@ our %unified_info = ( "doc/html/man3/OPENSSL_init_ssl.html", "doc/html/man3/OPENSSL_instrument_bus.html", "doc/html/man3/OPENSSL_load_builtin_modules.html", + "doc/html/man3/OPENSSL_load_u16_le.html", "doc/html/man3/OPENSSL_malloc.html", + "doc/html/man3/OPENSSL_riscvcap.html", "doc/html/man3/OPENSSL_s390xcap.html", "doc/html/man3/OPENSSL_secure_malloc.html", "doc/html/man3/OPENSSL_strcasecmp.html", "doc/html/man3/OSSL_ALGORITHM.html", "doc/html/man3/OSSL_CALLBACK.html", + "doc/html/man3/OSSL_CMP_ATAV_set0.html", "doc/html/man3/OSSL_CMP_CTX_new.html", "doc/html/man3/OSSL_CMP_HDR_get0_transactionID.html", + "doc/html/man3/OSSL_CMP_ITAV_new_caCerts.html", "doc/html/man3/OSSL_CMP_ITAV_set0.html", "doc/html/man3/OSSL_CMP_MSG_get0_header.html", "doc/html/man3/OSSL_CMP_MSG_http_perform.html", @@ -16715,18 +19324,27 @@ our %unified_info = ( "doc/html/man3/OSSL_ENCODER_CTX.html", "doc/html/man3/OSSL_ENCODER_CTX_new_for_pkey.html", "doc/html/man3/OSSL_ENCODER_to_bio.html", + "doc/html/man3/OSSL_ERR_STATE_save.html", "doc/html/man3/OSSL_ESS_check_signing_certs.html", + "doc/html/man3/OSSL_GENERAL_NAMES_print.html", + "doc/html/man3/OSSL_HPKE_CTX_new.html", "doc/html/man3/OSSL_HTTP_REQ_CTX.html", "doc/html/man3/OSSL_HTTP_parse_url.html", "doc/html/man3/OSSL_HTTP_transfer.html", + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX.html", + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX_print.html", + "doc/html/man3/OSSL_INDICATOR_set_callback.html", "doc/html/man3/OSSL_ITEM.html", "doc/html/man3/OSSL_LIB_CTX.html", + "doc/html/man3/OSSL_LIB_CTX_set_conf_diagnostics.html", "doc/html/man3/OSSL_PARAM.html", "doc/html/man3/OSSL_PARAM_BLD.html", "doc/html/man3/OSSL_PARAM_allocate_from_text.html", "doc/html/man3/OSSL_PARAM_dup.html", "doc/html/man3/OSSL_PARAM_int.html", + "doc/html/man3/OSSL_PARAM_print_to_bio.html", "doc/html/man3/OSSL_PROVIDER.html", + "doc/html/man3/OSSL_QUIC_client_method.html", "doc/html/man3/OSSL_SELF_TEST_new.html", "doc/html/man3/OSSL_SELF_TEST_set_callback.html", "doc/html/man3/OSSL_STORE_INFO.html", @@ -16735,11 +19353,13 @@ our %unified_info = ( "doc/html/man3/OSSL_STORE_attach.html", "doc/html/man3/OSSL_STORE_expect.html", "doc/html/man3/OSSL_STORE_open.html", + "doc/html/man3/OSSL_sleep.html", "doc/html/man3/OSSL_trace_enabled.html", "doc/html/man3/OSSL_trace_get_category_num.html", "doc/html/man3/OSSL_trace_set_channel.html", "doc/html/man3/OpenSSL_add_all_algorithms.html", "doc/html/man3/OpenSSL_version.html", + "doc/html/man3/PBMAC1_get1_pbkdf2_param.html", "doc/html/man3/PEM_X509_INFO_read_bio_ex.html", "doc/html/man3/PEM_bytes_read_bio.html", "doc/html/man3/PEM_read.html", @@ -16752,6 +19372,7 @@ our %unified_info = ( "doc/html/man3/PKCS12_SAFEBAG_create_cert.html", "doc/html/man3/PKCS12_SAFEBAG_get0_attrs.html", "doc/html/man3/PKCS12_SAFEBAG_get1_cert.html", + "doc/html/man3/PKCS12_SAFEBAG_set0_attrs.html", "doc/html/man3/PKCS12_add1_attr_by_NID.html", "doc/html/man3/PKCS12_add_CSPName_asc.html", "doc/html/man3/PKCS12_add_cert.html", @@ -16843,6 +19464,7 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_sess_set_get_cb.html", "doc/html/man3/SSL_CTX_sessions.html", "doc/html/man3/SSL_CTX_set0_CA_list.html", + "doc/html/man3/SSL_CTX_set1_cert_comp_preference.html", "doc/html/man3/SSL_CTX_set1_curves.html", "doc/html/man3/SSL_CTX_set1_sigalgs.html", "doc/html/man3/SSL_CTX_set1_verify_cert_store.html", @@ -16856,6 +19478,7 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_ct_validation_callback.html", "doc/html/man3/SSL_CTX_set_ctlog_list_file.html", "doc/html/man3/SSL_CTX_set_default_passwd_cb.html", + "doc/html/man3/SSL_CTX_set_domain_flags.html", "doc/html/man3/SSL_CTX_set_generate_session_id.html", "doc/html/man3/SSL_CTX_set_info_callback.html", "doc/html/man3/SSL_CTX_set_keylog_callback.html", @@ -16863,6 +19486,7 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_min_proto_version.html", "doc/html/man3/SSL_CTX_set_mode.html", "doc/html/man3/SSL_CTX_set_msg_callback.html", + "doc/html/man3/SSL_CTX_set_new_pending_conn_cb.html", "doc/html/man3/SSL_CTX_set_num_tickets.html", "doc/html/man3/SSL_CTX_set_options.html", "doc/html/man3/SSL_CTX_set_psk_client_callback.html", @@ -16901,6 +19525,7 @@ our %unified_info = ( "doc/html/man3/SSL_SESSION_print.html", "doc/html/man3/SSL_SESSION_set1_id.html", "doc/html/man3/SSL_accept.html", + "doc/html/man3/SSL_accept_stream.html", "doc/html/man3/SSL_alert_type_string.html", "doc/html/man3/SSL_alloc_buffers.html", "doc/html/man3/SSL_check_chain.html", @@ -16910,59 +19535,90 @@ our %unified_info = ( "doc/html/man3/SSL_export_keying_material.html", "doc/html/man3/SSL_extension_supported.html", "doc/html/man3/SSL_free.html", + "doc/html/man3/SSL_get0_connection.html", + "doc/html/man3/SSL_get0_group_name.html", + "doc/html/man3/SSL_get0_peer_rpk.html", "doc/html/man3/SSL_get0_peer_scts.html", + "doc/html/man3/SSL_get1_builtin_sigalgs.html", "doc/html/man3/SSL_get_SSL_CTX.html", "doc/html/man3/SSL_get_all_async_fds.html", "doc/html/man3/SSL_get_certificate.html", "doc/html/man3/SSL_get_ciphers.html", "doc/html/man3/SSL_get_client_random.html", + "doc/html/man3/SSL_get_conn_close_info.html", "doc/html/man3/SSL_get_current_cipher.html", "doc/html/man3/SSL_get_default_timeout.html", "doc/html/man3/SSL_get_error.html", + "doc/html/man3/SSL_get_event_timeout.html", "doc/html/man3/SSL_get_extms_support.html", "doc/html/man3/SSL_get_fd.html", + "doc/html/man3/SSL_get_handshake_rtt.html", "doc/html/man3/SSL_get_peer_cert_chain.html", "doc/html/man3/SSL_get_peer_certificate.html", "doc/html/man3/SSL_get_peer_signature_nid.html", "doc/html/man3/SSL_get_peer_tmp_key.html", "doc/html/man3/SSL_get_psk_identity.html", "doc/html/man3/SSL_get_rbio.html", + "doc/html/man3/SSL_get_rpoll_descriptor.html", "doc/html/man3/SSL_get_session.html", "doc/html/man3/SSL_get_shared_sigalgs.html", + "doc/html/man3/SSL_get_stream_id.html", + "doc/html/man3/SSL_get_stream_read_state.html", + "doc/html/man3/SSL_get_value_uint.html", "doc/html/man3/SSL_get_verify_result.html", "doc/html/man3/SSL_get_version.html", "doc/html/man3/SSL_group_to_name.html", + "doc/html/man3/SSL_handle_events.html", "doc/html/man3/SSL_in_init.html", + "doc/html/man3/SSL_inject_net_dgram.html", "doc/html/man3/SSL_key_update.html", "doc/html/man3/SSL_library_init.html", "doc/html/man3/SSL_load_client_CA_file.html", "doc/html/man3/SSL_new.html", + "doc/html/man3/SSL_new_domain.html", + "doc/html/man3/SSL_new_listener.html", + "doc/html/man3/SSL_new_stream.html", "doc/html/man3/SSL_pending.html", + "doc/html/man3/SSL_poll.html", "doc/html/man3/SSL_read.html", "doc/html/man3/SSL_read_early_data.html", "doc/html/man3/SSL_rstate_string.html", "doc/html/man3/SSL_session_reused.html", "doc/html/man3/SSL_set1_host.html", + "doc/html/man3/SSL_set1_initial_peer_addr.html", + "doc/html/man3/SSL_set1_server_cert_type.html", "doc/html/man3/SSL_set_async_callback.html", "doc/html/man3/SSL_set_bio.html", + "doc/html/man3/SSL_set_blocking_mode.html", "doc/html/man3/SSL_set_connect_state.html", + "doc/html/man3/SSL_set_default_stream_mode.html", "doc/html/man3/SSL_set_fd.html", + "doc/html/man3/SSL_set_incoming_stream_policy.html", + "doc/html/man3/SSL_set_quic_tls_cbs.html", "doc/html/man3/SSL_set_retry_verify.html", "doc/html/man3/SSL_set_session.html", + "doc/html/man3/SSL_set_session_secret_cb.html", "doc/html/man3/SSL_set_shutdown.html", "doc/html/man3/SSL_set_verify_result.html", "doc/html/man3/SSL_shutdown.html", "doc/html/man3/SSL_state_string.html", + "doc/html/man3/SSL_stream_conclude.html", + "doc/html/man3/SSL_stream_reset.html", "doc/html/man3/SSL_want.html", "doc/html/man3/SSL_write.html", "doc/html/man3/TS_RESP_CTX_new.html", - "doc/html/man3/TS_VERIFY_CTX_set_certs.html", + "doc/html/man3/TS_VERIFY_CTX.html", "doc/html/man3/UI_STRING.html", "doc/html/man3/UI_UTIL_read_pw.html", "doc/html/man3/UI_create_method.html", "doc/html/man3/UI_new.html", "doc/html/man3/X509V3_get_d2i.html", "doc/html/man3/X509V3_set_ctx.html", + "doc/html/man3/X509_ACERT_add1_attr.html", + "doc/html/man3/X509_ACERT_add_attr_nconf.html", + "doc/html/man3/X509_ACERT_get0_holder_baseCertId.html", + "doc/html/man3/X509_ACERT_get_attr.html", + "doc/html/man3/X509_ACERT_print_ex.html", "doc/html/man3/X509_ALGOR_dup.html", "doc/html/man3/X509_ATTRIBUTE.html", "doc/html/man3/X509_CRL_get0_by_serial.html", @@ -16979,6 +19635,7 @@ our %unified_info = ( "doc/html/man3/X509_REQ_get_attr.html", "doc/html/man3/X509_REQ_get_extensions.html", "doc/html/man3/X509_SIG_get0.html", + "doc/html/man3/X509_STORE_CTX_get_by_subject.html", "doc/html/man3/X509_STORE_CTX_get_error.html", "doc/html/man3/X509_STORE_CTX_new.html", "doc/html/man3/X509_STORE_CTX_set_verify_cb.html", @@ -17001,6 +19658,7 @@ our %unified_info = ( "doc/html/man3/X509_get0_notBefore.html", "doc/html/man3/X509_get0_signature.html", "doc/html/man3/X509_get0_uids.html", + "doc/html/man3/X509_get_default_cert_file.html", "doc/html/man3/X509_get_extension_flags.html", "doc/html/man3/X509_get_pubkey.html", "doc/html/man3/X509_get_serialNumber.html", @@ -17046,12 +19704,15 @@ our %unified_info = ( "doc/html/man7/EVP_CIPHER-RC5.html", "doc/html/man7/EVP_CIPHER-SEED.html", "doc/html/man7/EVP_CIPHER-SM4.html", + "doc/html/man7/EVP_KDF-ARGON2.html", "doc/html/man7/EVP_KDF-HKDF.html", + "doc/html/man7/EVP_KDF-HMAC-DRBG.html", "doc/html/man7/EVP_KDF-KB.html", "doc/html/man7/EVP_KDF-KRB5KDF.html", "doc/html/man7/EVP_KDF-PBKDF1.html", "doc/html/man7/EVP_KDF-PBKDF2.html", "doc/html/man7/EVP_KDF-PKCS12KDF.html", + "doc/html/man7/EVP_KDF-PVKKDF.html", "doc/html/man7/EVP_KDF-SCRYPT.html", "doc/html/man7/EVP_KDF-SS.html", "doc/html/man7/EVP_KDF-SSHKDF.html", @@ -17060,7 +19721,10 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-X942-ASN1.html", "doc/html/man7/EVP_KDF-X942-CONCAT.html", "doc/html/man7/EVP_KDF-X963.html", + "doc/html/man7/EVP_KEM-EC.html", + "doc/html/man7/EVP_KEM-ML-KEM.html", "doc/html/man7/EVP_KEM-RSA.html", + "doc/html/man7/EVP_KEM-X25519.html", "doc/html/man7/EVP_KEYEXCH-DH.html", "doc/html/man7/EVP_KEYEXCH-ECDH.html", "doc/html/man7/EVP_KEYEXCH-X25519.html", @@ -17072,6 +19736,7 @@ our %unified_info = ( "doc/html/man7/EVP_MAC-Poly1305.html", "doc/html/man7/EVP_MAC-Siphash.html", "doc/html/man7/EVP_MD-BLAKE2.html", + "doc/html/man7/EVP_MD-KECCAK.html", "doc/html/man7/EVP_MD-MD2.html", "doc/html/man7/EVP_MD-MD4.html", "doc/html/man7/EVP_MD-MD5-SHA1.html", @@ -17091,12 +19756,17 @@ our %unified_info = ( "doc/html/man7/EVP_PKEY-EC.html", "doc/html/man7/EVP_PKEY-FFC.html", "doc/html/man7/EVP_PKEY-HMAC.html", + "doc/html/man7/EVP_PKEY-ML-DSA.html", + "doc/html/man7/EVP_PKEY-ML-KEM.html", "doc/html/man7/EVP_PKEY-RSA.html", + "doc/html/man7/EVP_PKEY-SLH-DSA.html", "doc/html/man7/EVP_PKEY-SM2.html", "doc/html/man7/EVP_PKEY-X25519.html", + "doc/html/man7/EVP_RAND-CRNG-TEST.html", "doc/html/man7/EVP_RAND-CTR-DRBG.html", "doc/html/man7/EVP_RAND-HASH-DRBG.html", "doc/html/man7/EVP_RAND-HMAC-DRBG.html", + "doc/html/man7/EVP_RAND-JITTER.html", "doc/html/man7/EVP_RAND-SEED-SRC.html", "doc/html/man7/EVP_RAND-TEST-RAND.html", "doc/html/man7/EVP_RAND.html", @@ -17104,17 +19774,19 @@ our %unified_info = ( "doc/html/man7/EVP_SIGNATURE-ECDSA.html", "doc/html/man7/EVP_SIGNATURE-ED25519.html", "doc/html/man7/EVP_SIGNATURE-HMAC.html", + "doc/html/man7/EVP_SIGNATURE-ML-DSA.html", "doc/html/man7/EVP_SIGNATURE-RSA.html", + "doc/html/man7/EVP_SIGNATURE-SLH-DSA.html", "doc/html/man7/OSSL_PROVIDER-FIPS.html", "doc/html/man7/OSSL_PROVIDER-base.html", "doc/html/man7/OSSL_PROVIDER-default.html", "doc/html/man7/OSSL_PROVIDER-legacy.html", "doc/html/man7/OSSL_PROVIDER-null.html", + "doc/html/man7/OSSL_STORE-winstore.html", "doc/html/man7/RAND.html", "doc/html/man7/RSA-PSS.html", "doc/html/man7/X25519.html", "doc/html/man7/bio.html", - "doc/html/man7/crypto.html", "doc/html/man7/ct.html", "doc/html/man7/des_modes.html", "doc/html/man7/evp.html", @@ -17125,14 +19797,31 @@ our %unified_info = ( "doc/html/man7/life_cycle-mac.html", "doc/html/man7/life_cycle-pkey.html", "doc/html/man7/life_cycle-rand.html", - "doc/html/man7/migration_guide.html", "doc/html/man7/openssl-core.h.html", "doc/html/man7/openssl-core_dispatch.h.html", "doc/html/man7/openssl-core_names.h.html", "doc/html/man7/openssl-env.html", "doc/html/man7/openssl-glossary.html", + "doc/html/man7/openssl-qlog.html", + "doc/html/man7/openssl-quic-concurrency.html", + "doc/html/man7/openssl-quic.html", "doc/html/man7/openssl-threads.html", "doc/html/man7/openssl_user_macros.html", + "doc/html/man7/ossl-guide-introduction.html", + "doc/html/man7/ossl-guide-libcrypto-introduction.html", + "doc/html/man7/ossl-guide-libraries-introduction.html", + "doc/html/man7/ossl-guide-libssl-introduction.html", + "doc/html/man7/ossl-guide-migration.html", + "doc/html/man7/ossl-guide-quic-client-block.html", + "doc/html/man7/ossl-guide-quic-client-non-block.html", + "doc/html/man7/ossl-guide-quic-introduction.html", + "doc/html/man7/ossl-guide-quic-multi-stream.html", + "doc/html/man7/ossl-guide-quic-server-block.html", + "doc/html/man7/ossl-guide-quic-server-non-block.html", + "doc/html/man7/ossl-guide-tls-client-block.html", + "doc/html/man7/ossl-guide-tls-client-non-block.html", + "doc/html/man7/ossl-guide-tls-introduction.html", + "doc/html/man7/ossl-guide-tls-server-block.html", "doc/html/man7/ossl_store-file.html", "doc/html/man7/ossl_store.html", "doc/html/man7/passphrase-encoding.html", @@ -17151,10 +19840,10 @@ our %unified_info = ( "doc/html/man7/provider-object.html", "doc/html/man7/provider-rand.html", "doc/html/man7/provider-signature.html", + "doc/html/man7/provider-skeymgmt.html", "doc/html/man7/provider-storemgmt.html", "doc/html/man7/provider.html", "doc/html/man7/proxy-certificates.html", - "doc/html/man7/ssl.html", "doc/html/man7/x509.html" ] }, @@ -17169,12 +19858,21 @@ our %unified_info = ( ] }, "includes" => { + "OpenSSLConfig.cmake" => [ + "." + ], + "OpenSSLConfigVersion.cmake" => [ + "." + ], "apps/asn1parse.o" => [ "apps" ], "apps/ca.o" => [ "apps" ], + "apps/ca_internals_test-bin-ca.o" => [ + "apps" + ], "apps/ciphers.o" => [ "apps" ], @@ -17401,6 +20099,9 @@ our %unified_info = ( "apps/openssl-bin-sess_id.o" => [ "apps" ], + "apps/openssl-bin-skeyutl.o" => [ + "apps" + ], "apps/openssl-bin-smime.o" => [ "apps" ], @@ -17488,6 +20189,9 @@ our %unified_info = ( "apps/sess_id.o" => [ "apps" ], + "apps/skeyutl.o" => [ + "apps" + ], "apps/smime.o" => [ "apps" ], @@ -17539,6 +20243,12 @@ our %unified_info = ( "crypto/aes/bsaes-armv7.o" => [ "crypto" ], + "crypto/aes/vpaes-armv8.o" => [ + "crypto" + ], + "crypto/aes/vpaes-loongarch64.o" => [ + "crypto" + ], "crypto/arm64cpuid.o" => [ "crypto" ], @@ -17590,9 +20300,15 @@ our %unified_info = ( "crypto/chacha/chacha-armv4.o" => [ "crypto" ], + "crypto/chacha/chacha-armv8-sve.o" => [ + "crypto" + ], "crypto/chacha/chacha-armv8.o" => [ "crypto" ], + "crypto/chacha/chacha-loongarch64.o" => [ + "crypto" + ], "crypto/chacha/chacha-s390x.o" => [ "crypto" ], @@ -17617,15 +20333,24 @@ our %unified_info = ( "crypto/ec/ecp_s390x_nistp.o" => [ "crypto" ], + "crypto/ec/ecp_sm2p256-armv8.o" => [ + "crypto" + ], + "crypto/ec/ecx_key.o" => [ + "crypto" + ], "crypto/ec/ecx_meth.o" => [ "crypto" ], - "crypto/ec/ecx_s390x.o" => [ + "crypto/ec/libcrypto-lib-ecx_key.o" => [ "crypto" ], "crypto/ec/libcrypto-lib-ecx_meth.o" => [ "crypto" ], + "crypto/ec/libfips-lib-ecx_key.o" => [ + "crypto" + ], "crypto/evp/e_aes.o" => [ "crypto", "crypto/modes" @@ -17697,9 +20422,18 @@ our %unified_info = ( "crypto/libfips-lib-cpuid.o" => [ "." ], + "crypto/md5/md5-aarch64.o" => [ + "crypto" + ], + "crypto/md5/md5-loongarch64.o" => [ + "crypto" + ], "crypto/md5/md5-sparcv9.o" => [ "crypto" ], + "crypto/modes/aes-gcm-armv8-unroll8_64.o" => [ + "crypto" + ], "crypto/modes/aes-gcm-armv8_64.o" => [ "crypto" ], @@ -17724,6 +20458,9 @@ our %unified_info = ( "crypto/modes/libfips-lib-gcm128.o" => [ "crypto" ], + "crypto/params_idx.c" => [ + "util/perl" + ], "crypto/poly1305/poly1305-armv4.o" => [ "crypto" ], @@ -17745,6 +20482,9 @@ our %unified_info = ( "crypto/sha/keccak1600-armv4.o" => [ "crypto" ], + "crypto/sha/keccak1600-armv8.o" => [ + "crypto" + ], "crypto/sha/sha1-armv4-large.o" => [ "crypto" ], @@ -17790,6 +20530,18 @@ our %unified_info = ( "crypto/sha/sha512-sparcv9.o" => [ "crypto" ], + "crypto/sm3/sm3-armv8.o" => [ + "crypto" + ], + "crypto/sm4/sm4-armv8.o" => [ + "crypto" + ], + "crypto/sm4/vpsm4-armv8.o" => [ + "crypto" + ], + "crypto/sm4/vpsm4_ex-armv8.o" => [ + "crypto" + ], "doc/man1/openssl-asn1parse.pod" => [ "doc" ], @@ -17922,6 +20674,9 @@ our %unified_info = ( "doc/man1/openssl-sess_id.pod" => [ "doc" ], + "doc/man1/openssl-skeyutl.pod" => [ + "doc" + ], "doc/man1/openssl-smime.pod" => [ "doc" ], @@ -17949,6 +20704,24 @@ our %unified_info = ( "doc/man1/openssl-x509.pod" => [ "doc" ], + "exporters/OpenSSLConfig.cmake" => [ + "." + ], + "exporters/OpenSSLConfigVersion.cmake" => [ + "." + ], + "exporters/libcrypto.pc" => [ + "." + ], + "exporters/libssl.pc" => [ + "." + ], + "exporters/openssl.pc" => [ + "." + ], + "fuzz/acert-test" => [ + "include" + ], "fuzz/asn1-test" => [ "include" ], @@ -17979,12 +20752,69 @@ our %unified_info = ( "fuzz/ct-test" => [ "include" ], + "fuzz/decoder-test" => [ + "include" + ], + "fuzz/dtlsclient-test" => [ + "include" + ], + "fuzz/dtlsserver-test" => [ + "include" + ], + "fuzz/hashtable-test" => [ + "include" + ], + "fuzz/ml-dsa-test" => [ + "include" + ], + "fuzz/ml-kem-test" => [ + "include" + ], + "fuzz/pem-test" => [ + "include" + ], + "fuzz/provider-test" => [ + "include" + ], + "fuzz/punycode-test" => [ + "include" + ], + "fuzz/quic-client-test" => [ + "include" + ], + "fuzz/quic-lcidm-test" => [ + "include" + ], + "fuzz/quic-rcidm-test" => [ + "include" + ], + "fuzz/quic-server-test" => [ + "include" + ], + "fuzz/quic-srtm-test" => [ + "include" + ], "fuzz/server-test" => [ "include" ], + "fuzz/slh-dsa-test" => [ + "include" + ], + "fuzz/smime-test" => [ + "include" + ], + "fuzz/v3name-test" => [ + "include" + ], "fuzz/x509-test" => [ "include" ], + "include/internal/param_names.h" => [ + "util/perl" + ], + "include/openssl/core_names.h" => [ + "util/perl" + ], "libcrypto" => [ ".", "include", @@ -17995,6 +20825,9 @@ our %unified_info = ( ".", "util/perl/OpenSSL" ], + "libcrypto.pc" => [ + "." + ], "libcrypto.rc" => [ "." ], @@ -18006,9 +20839,15 @@ our %unified_info = ( ".", "util/perl/OpenSSL" ], + "libssl.pc" => [ + "." + ], "libssl.rc" => [ "." ], + "openssl.pc" => [ + "." + ], "providers/common/der/der_digests_gen.c" => [ "providers/common/der" ], @@ -18048,6 +20887,15 @@ our %unified_info = ( "providers/common/der/der_ecx_key.o" => [ "providers/common/include/prov" ], + "providers/common/der/der_ml_dsa_gen.c" => [ + "providers/common/der" + ], + "providers/common/der/der_ml_dsa_gen.o" => [ + "providers/common/include/prov" + ], + "providers/common/der/der_ml_dsa_key.o" => [ + "providers/common/include/prov" + ], "providers/common/der/der_rsa_gen.c" => [ "providers/common/der" ], @@ -18060,6 +20908,15 @@ our %unified_info = ( "providers/common/der/der_rsa_sig.o" => [ "providers/common/include/prov" ], + "providers/common/der/der_slh_dsa_gen.c" => [ + "providers/common/der" + ], + "providers/common/der/der_slh_dsa_gen.o" => [ + "providers/common/include/prov" + ], + "providers/common/der/der_slh_dsa_key.o" => [ + "providers/common/include/prov" + ], "providers/common/der/der_sm2_gen.c" => [ "providers/common/der" ], @@ -18105,12 +20962,24 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ecx_key.o" => [ "providers/common/include/prov" ], + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o" => [ + "providers/common/include/prov" + ], + "providers/common/der/libcommon-lib-der_ml_dsa_key.o" => [ + "providers/common/include/prov" + ], "providers/common/der/libcommon-lib-der_rsa_gen.o" => [ "providers/common/include/prov" ], "providers/common/der/libcommon-lib-der_rsa_key.o" => [ "providers/common/include/prov" ], + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o" => [ + "providers/common/include/prov" + ], + "providers/common/der/libcommon-lib-der_slh_dsa_key.o" => [ + "providers/common/include/prov" + ], "providers/common/der/libcommon-lib-der_wrap_gen.o" => [ "providers/common/include/prov" ], @@ -18141,9 +21010,15 @@ our %unified_info = ( "providers/common/include/prov/der_ecx.h" => [ "providers/common/der" ], + "providers/common/include/prov/der_ml_dsa.h" => [ + "providers/common/der" + ], "providers/common/include/prov/der_rsa.h" => [ "providers/common/der" ], + "providers/common/include/prov/der_slh_dsa.h" => [ + "providers/common/der" + ], "providers/common/include/prov/der_sm2.h" => [ "providers/common/der" ], @@ -18186,9 +21061,15 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-eddsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/libdefault-lib-rsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/libdefault-lib-sm2_sig.o" => [ "providers/common/include/prov" ], @@ -18201,12 +21082,24 @@ our %unified_info = ( "providers/implementations/signature/libfips-lib-eddsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/libfips-lib-rsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o" => [ + "providers/common/include/prov" + ], + "providers/implementations/signature/ml_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/rsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/slh_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/sm2_sig.o" => [ "providers/common/include/prov" ], @@ -18219,28 +21112,39 @@ our %unified_info = ( "crypto", "include", "providers/implementations/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" ], "providers/libdefault.a" => [ ".", "crypto", "include", "providers/implementations/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" ], "providers/libfips.a" => [ ".", "crypto", "include", "providers/implementations/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" ], "providers/liblegacy.a" => [ ".", "crypto", "include", "providers/implementations/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" + ], + "providers/libtemplate.a" => [ + "crypto", + "include", + "providers/implementations/include", + "providers/common/include", + "providers/fips/include" ], "test/aborttest" => [ "include", @@ -18309,6 +21213,14 @@ our %unified_info = ( "include", "apps/include" ], + "test/bio_addr_test" => [ + "include", + "apps/include" + ], + "test/bio_base64_test" => [ + "include", + "apps/include" + ], "test/bio_callback_test" => [ "include", "apps/include" @@ -18317,11 +21229,20 @@ our %unified_info = ( "include", "apps/include" ], + "test/bio_dgram_test" => [ + "include", + "apps/include", + "." + ], "test/bio_enc_test" => [ "include", "apps/include" ], - "test/bio_memleak_test" => [ + "test/bio_memleak_test" => [ + "include", + "apps/include" + ], + "test/bio_meth_test" => [ "include", "apps/include" ], @@ -18338,6 +21259,11 @@ our %unified_info = ( "include", "apps/include" ], + "test/bio_tfo_test" => [ + "include", + "apps/include", + "." + ], "test/bioprinttest" => [ "include", "apps/include" @@ -18352,6 +21278,9 @@ our %unified_info = ( "include", "apps/include" ], + "test/build_wincrypt_test" => [ + "include" + ], "test/buildtest_c_aes" => [ "include" ], @@ -18367,6 +21296,9 @@ our %unified_info = ( "test/buildtest_c_buffer" => [ "include" ], + "test/buildtest_c_byteorder" => [ + "include" + ], "test/buildtest_c_camellia" => [ "include" ], @@ -18391,9 +21323,6 @@ our %unified_info = ( "test/buildtest_c_core_dispatch" => [ "include" ], - "test/buildtest_c_core_names" => [ - "include" - ], "test/buildtest_c_core_object" => [ "include" ], @@ -18418,6 +21347,9 @@ our %unified_info = ( "test/buildtest_c_e_os2" => [ "include" ], + "test/buildtest_c_e_ostime" => [ + "include" + ], "test/buildtest_c_ebcdic" => [ "include" ], @@ -18445,12 +21377,18 @@ our %unified_info = ( "test/buildtest_c_hmac" => [ "include" ], + "test/buildtest_c_hpke" => [ + "include" + ], "test/buildtest_c_http" => [ "include" ], "test/buildtest_c_idea" => [ "include" ], + "test/buildtest_c_indicator" => [ + "include" + ], "test/buildtest_c_kdf" => [ "include" ], @@ -18466,6 +21404,9 @@ our %unified_info = ( "test/buildtest_c_mdc2" => [ "include" ], + "test/buildtest_c_ml_kem" => [ + "include" + ], "test/buildtest_c_modes" => [ "include" ], @@ -18496,6 +21437,9 @@ our %unified_info = ( "test/buildtest_c_provider" => [ "include" ], + "test/buildtest_c_quic" => [ + "include" + ], "test/buildtest_c_rand" => [ "include" ], @@ -18538,6 +21482,9 @@ our %unified_info = ( "test/buildtest_c_symhacks" => [ "include" ], + "test/buildtest_c_thread" => [ + "include" + ], "test/buildtest_c_tls1" => [ "include" ], @@ -18553,10 +21500,24 @@ our %unified_info = ( "test/buildtest_c_whrlpool" => [ "include" ], + "test/byteorder_test" => [ + "include", + "apps/include" + ], + "test/ca_internals_test" => [ + ".", + "include", + "apps/include" + ], "test/casttest" => [ "include", "apps/include" ], + "test/cert_comp_test" => [ + "include", + "apps/include", + "." + ], "test/chacha_internal_test" => [ ".", "include", @@ -18680,6 +21641,11 @@ our %unified_info = ( "include", "apps/include" ], + "test/decoder_propq_test" => [ + ".", + "include", + "apps/include" + ], "test/defltfips_test" => [ "include", "apps/include" @@ -18695,7 +21661,8 @@ our %unified_info = ( "test/drbgtest" => [ "include", "apps/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" ], "test/dsa_no_digest_size_test" => [ "include", @@ -18738,7 +21705,9 @@ our %unified_info = ( "test/endecode_test" => [ ".", "include", - "apps/include" + "apps/include", + "providers/common/include", + "providers/implementations/include" ], "test/endecoder_legacy_test" => [ ".", @@ -18783,6 +21752,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/evp_pkey_dhkem_test" => [ + "include", + "apps/include" + ], "test/evp_pkey_dparams_test" => [ "include", "apps/include" @@ -18791,10 +21764,18 @@ our %unified_info = ( "include", "apps/include" ], + "test/evp_skey_test" => [ + "include", + "apps/include" + ], "test/evp_test" => [ "include", "apps/include" ], + "test/evp_xof_test" => [ + "include", + "apps/include" + ], "test/exdatatest" => [ "include", "apps/include" @@ -18895,22 +21876,62 @@ our %unified_info = ( ".", "include" ], + "test/helpers/json_test-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/helpers/pkcs12.o" => [ ".", "include" ], + "test/helpers/pkcs12_api_test-bin-pkcs12.o" => [ + ".", + "include" + ], "test/helpers/pkcs12_format_test-bin-pkcs12.o" => [ ".", "include" ], + "test/helpers/quic_multistream_test-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quic_newcid_test-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quic_radix_test-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quic_srt_gen_test-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quicapitest-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quicfaultstest-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/helpers/recordlentest-bin-ssltestlib.o" => [ ".", "include" ], + "test/helpers/rpktest-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/helpers/servername_test-bin-ssltestlib.o" => [ ".", "include" ], + "test/helpers/ssl_handshake_rtt_test-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/helpers/ssl_test-bin-handshake.o" => [ ".", "include" @@ -18944,6 +21965,10 @@ our %unified_info = ( ".", "include" ], + "test/helpers/tls13groupselection_test-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/hexstr_test" => [ ".", "include", @@ -18953,6 +21978,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/hpke_test" => [ + "include", + "apps/include" + ], "test/http_test" => [ "include", "apps/include" @@ -18965,6 +21994,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/json_test" => [ + "include", + "apps/include" + ], "test/keymgmt_internal_test" => [ ".", "include", @@ -18979,6 +22012,10 @@ our %unified_info = ( "apps/include", "." ], + "test/list_test" => [ + "include", + "apps/include" + ], "test/localetest" => [ "include", "apps/include" @@ -18992,10 +22029,27 @@ our %unified_info = ( "include", "apps/include" ], + "test/membio_test" => [ + "include", + "apps/include", + "." + ], "test/memleaktest" => [ "include", "apps/include" ], + "test/ml_dsa_test" => [ + "include", + "apps/include" + ], + "test/ml_kem_evp_extra_test" => [ + "include", + "apps/include" + ], + "test/ml_kem_internal_test" => [ + "include", + "apps/include" + ], "test/modes_internal_test" => [ ".", "include", @@ -19030,6 +22084,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/pairwise_fail_test" => [ + "include", + "apps/include" + ], "test/param_build_test" => [ "include", "apps/include" @@ -19063,6 +22121,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/pkcs12_api_test" => [ + "include", + "apps/include" + ], "test/pkcs12_format_test" => [ "include", "apps/include" @@ -19084,6 +22146,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/priority_queue_test" => [ + "include", + "apps/include" + ], "test/property_test" => [ ".", "include", @@ -19097,6 +22163,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/provider_default_search_path_test" => [ + "include", + "apps/include" + ], "test/provider_fallback_test" => [ "include", "apps/include" @@ -19123,6 +22193,97 @@ our %unified_info = ( "include", "apps/include" ], + "test/quic_ackm_test" => [ + "include", + "apps/include" + ], + "test/quic_cc_test" => [ + "include", + "apps/include" + ], + "test/quic_cfq_test" => [ + "include", + "apps/include" + ], + "test/quic_client_test" => [ + "include", + "apps/include" + ], + "test/quic_fc_test" => [ + "include", + "apps/include" + ], + "test/quic_fifd_test" => [ + "include", + "apps/include" + ], + "test/quic_lcidm_test" => [ + "include", + "apps/include" + ], + "test/quic_multistream_test" => [ + "include", + "apps/include" + ], + "test/quic_newcid_test" => [ + "include", + "apps/include", + "." + ], + "test/quic_qlog_test" => [ + "include", + "apps/include" + ], + "test/quic_radix_test" => [ + "include", + "apps/include" + ], + "test/quic_rcidm_test" => [ + "include", + "apps/include" + ], + "test/quic_record_test" => [ + "include", + "apps/include" + ], + "test/quic_srt_gen_test" => [ + "include", + "apps/include", + "." + ], + "test/quic_srtm_test" => [ + "include", + "apps/include" + ], + "test/quic_stream_test" => [ + "include", + "apps/include" + ], + "test/quic_tserver_test" => [ + "include", + "apps/include" + ], + "test/quic_txp_test" => [ + "include", + "apps/include" + ], + "test/quic_txpim_test" => [ + "include", + "apps/include" + ], + "test/quic_wire_test" => [ + "include", + "apps/include" + ], + "test/quicapitest" => [ + "include", + "apps/include" + ], + "test/quicfaultstest" => [ + "include", + "apps/include", + "." + ], "test/rand_status_test" => [ "include", "apps/include" @@ -19143,14 +22304,20 @@ our %unified_info = ( "include", "apps/include" ], - "test/rdrand_sanitytest" => [ + "test/rdcpu_sanitytest" => [ "include", - "apps/include" + "apps/include", + "crypto" ], "test/recordlentest" => [ "include", "apps/include" ], + "test/rpktest" => [ + "include", + "apps/include", + "." + ], "test/rsa_complex" => [ "include", "apps/include" @@ -19169,6 +22336,15 @@ our %unified_info = ( "include", "apps/include" ], + "test/rsa_x931_test" => [ + ".", + "include", + "apps/include" + ], + "test/safe_math_test" => [ + "include", + "apps/include" + ], "test/sanitytest" => [ "include", "apps/include" @@ -19190,6 +22366,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/slh_dsa_test" => [ + "include", + "apps/include" + ], "test/sm2_internal_test" => [ "include", "apps/include" @@ -19220,6 +22400,11 @@ our %unified_info = ( "include", "apps/include" ], + "test/ssl_handshake_rtt_test" => [ + "include", + "apps/include", + "." + ], "test/ssl_old_test" => [ ".", "include", @@ -19236,6 +22421,7 @@ our %unified_info = ( "test/sslapitest" => [ "include", "apps/include", + "providers/common/include", "." ], "test/sslbuffertest" => [ @@ -19250,6 +22436,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/strtoultest" => [ + "include", + "apps/include" + ], "test/sysdefaulttest" => [ "include", "apps/include" @@ -19258,7 +22448,13 @@ our %unified_info = ( "include", "apps/include" ], + "test/threadpool_test" => [ + ".", + "include", + "apps/include" + ], "test/threadstest" => [ + ".", "include", "apps/include" ], @@ -19270,6 +22466,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/time_test" => [ + "include", + "apps/include" + ], "test/tls13ccstest" => [ "include", "apps/include" @@ -19279,6 +22479,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/tls13groupselection_test" => [ + "include", + "apps/include" + ], "test/trace_api_test" => [ ".", "include", @@ -19317,6 +22521,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/x509_acert_test" => [ + "include", + "apps/include" + ], "test/x509_check_cert_pkey_test" => [ "include", "apps/include" @@ -19330,6 +22538,18 @@ our %unified_info = ( "include", "apps/include" ], + "test/x509_load_cert_file_test" => [ + "include", + "apps/include" + ], + "test/x509_req_test" => [ + "include", + "apps/include" + ], + "test/x509_test" => [ + "include", + "apps/include" + ], "test/x509_time_test" => [ "include", "apps/include" @@ -19351,6 +22571,7 @@ our %unified_info = ( "providers/libdefault.a", "providers/libfips.a", "providers/liblegacy.a", + "providers/libtemplate.a", "test/libtestutil.a" ], "mandocs" => { @@ -19403,6 +22624,7 @@ our %unified_info = ( "doc/man/man1/openssl-s_server.1", "doc/man/man1/openssl-s_time.1", "doc/man/man1/openssl-sess_id.1", + "doc/man/man1/openssl-skeyutl.1", "doc/man/man1/openssl-smime.1", "doc/man/man1/openssl-speed.1", "doc/man/man1/openssl-spkac.1", @@ -19452,6 +22674,7 @@ our %unified_info = ( "doc/man/man3/BIO_find_type.3", "doc/man/man3/BIO_get_data.3", "doc/man/man3/BIO_get_ex_new_index.3", + "doc/man/man3/BIO_get_rpoll_descriptor.3", "doc/man/man3/BIO_meth_new.3", "doc/man/man3/BIO_new.3", "doc/man/man3/BIO_new_CMS.3", @@ -19464,11 +22687,13 @@ our %unified_info = ( "doc/man/man3/BIO_s_connect.3", "doc/man/man3/BIO_s_core.3", "doc/man/man3/BIO_s_datagram.3", + "doc/man/man3/BIO_s_dgram_pair.3", "doc/man/man3/BIO_s_fd.3", "doc/man/man3/BIO_s_file.3", "doc/man/man3/BIO_s_mem.3", "doc/man/man3/BIO_s_null.3", "doc/man/man3/BIO_s_socket.3", + "doc/man/man3/BIO_sendmmsg.3", "doc/man/man3/BIO_set_callback.3", "doc/man/man3/BIO_should_retry.3", "doc/man/man3/BIO_socket_wait.3", @@ -19493,6 +22718,7 @@ our %unified_info = ( "doc/man/man3/BN_swap.3", "doc/man/man3/BN_zero.3", "doc/man/man3/BUF_MEM_new.3", + "doc/man/man3/CMAC_CTX.3", "doc/man/man3/CMS_EncryptedData_decrypt.3", "doc/man/man3/CMS_EncryptedData_encrypt.3", "doc/man/man3/CMS_EnvelopedData_create.3", @@ -19515,6 +22741,7 @@ our %unified_info = ( "doc/man/man3/CMS_uncompress.3", "doc/man/man3/CMS_verify.3", "doc/man/man3/CMS_verify_receipt.3", + "doc/man/man3/COMP_CTX_new.3", "doc/man/man3/CONF_modules_free.3", "doc/man/man3/CONF_modules_load_file.3", "doc/man/man3/CRYPTO_THREAD_run_once.3", @@ -19548,6 +22775,8 @@ our %unified_info = ( "doc/man/man3/DSA_size.3", "doc/man/man3/DTLS_get_data_mtu.3", "doc/man/man3/DTLS_set_timer_cb.3", + "doc/man/man3/DTLSv1_get_timeout.3", + "doc/man/man3/DTLSv1_handle_timeout.3", "doc/man/man3/DTLSv1_listen.3", "doc/man/man3/ECDSA_SIG_new.3", "doc/man/man3/ECDSA_sign.3", @@ -19594,6 +22823,7 @@ our %unified_info = ( "doc/man/man3/EVP_PKEY_CTX_ctrl.3", "doc/man/man3/EVP_PKEY_CTX_get0_libctx.3", "doc/man/man3/EVP_PKEY_CTX_get0_pkey.3", + "doc/man/man3/EVP_PKEY_CTX_get_algor.3", "doc/man/man3/EVP_PKEY_CTX_new.3", "doc/man/man3/EVP_PKEY_CTX_set1_pbe_pass.3", "doc/man/man3/EVP_PKEY_CTX_set_hkdf_md.3", @@ -19633,6 +22863,8 @@ our %unified_info = ( "doc/man/man3/EVP_PKEY_verify_recover.3", "doc/man/man3/EVP_RAND.3", "doc/man/man3/EVP_SIGNATURE.3", + "doc/man/man3/EVP_SKEY.3", + "doc/man/man3/EVP_SKEYMGMT.3", "doc/man/man3/EVP_SealInit.3", "doc/man/man3/EVP_SignInit.3", "doc/man/man3/EVP_VerifyInit.3", @@ -19662,6 +22894,7 @@ our %unified_info = ( "doc/man/man3/EVP_sm3.3", "doc/man/man3/EVP_sm4_cbc.3", "doc/man/man3/EVP_whirlpool.3", + "doc/man/man3/GENERAL_NAME.3", "doc/man/man3/HMAC.3", "doc/man/man3/MD5.3", "doc/man/man3/MDC2_Init.3", @@ -19686,14 +22919,18 @@ our %unified_info = ( "doc/man/man3/OPENSSL_init_ssl.3", "doc/man/man3/OPENSSL_instrument_bus.3", "doc/man/man3/OPENSSL_load_builtin_modules.3", + "doc/man/man3/OPENSSL_load_u16_le.3", "doc/man/man3/OPENSSL_malloc.3", + "doc/man/man3/OPENSSL_riscvcap.3", "doc/man/man3/OPENSSL_s390xcap.3", "doc/man/man3/OPENSSL_secure_malloc.3", "doc/man/man3/OPENSSL_strcasecmp.3", "doc/man/man3/OSSL_ALGORITHM.3", "doc/man/man3/OSSL_CALLBACK.3", + "doc/man/man3/OSSL_CMP_ATAV_set0.3", "doc/man/man3/OSSL_CMP_CTX_new.3", "doc/man/man3/OSSL_CMP_HDR_get0_transactionID.3", + "doc/man/man3/OSSL_CMP_ITAV_new_caCerts.3", "doc/man/man3/OSSL_CMP_ITAV_set0.3", "doc/man/man3/OSSL_CMP_MSG_get0_header.3", "doc/man/man3/OSSL_CMP_MSG_http_perform.3", @@ -19717,18 +22954,27 @@ our %unified_info = ( "doc/man/man3/OSSL_ENCODER_CTX.3", "doc/man/man3/OSSL_ENCODER_CTX_new_for_pkey.3", "doc/man/man3/OSSL_ENCODER_to_bio.3", + "doc/man/man3/OSSL_ERR_STATE_save.3", "doc/man/man3/OSSL_ESS_check_signing_certs.3", + "doc/man/man3/OSSL_GENERAL_NAMES_print.3", + "doc/man/man3/OSSL_HPKE_CTX_new.3", "doc/man/man3/OSSL_HTTP_REQ_CTX.3", "doc/man/man3/OSSL_HTTP_parse_url.3", "doc/man/man3/OSSL_HTTP_transfer.3", + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX.3", + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX_print.3", + "doc/man/man3/OSSL_INDICATOR_set_callback.3", "doc/man/man3/OSSL_ITEM.3", "doc/man/man3/OSSL_LIB_CTX.3", + "doc/man/man3/OSSL_LIB_CTX_set_conf_diagnostics.3", "doc/man/man3/OSSL_PARAM.3", "doc/man/man3/OSSL_PARAM_BLD.3", "doc/man/man3/OSSL_PARAM_allocate_from_text.3", "doc/man/man3/OSSL_PARAM_dup.3", "doc/man/man3/OSSL_PARAM_int.3", + "doc/man/man3/OSSL_PARAM_print_to_bio.3", "doc/man/man3/OSSL_PROVIDER.3", + "doc/man/man3/OSSL_QUIC_client_method.3", "doc/man/man3/OSSL_SELF_TEST_new.3", "doc/man/man3/OSSL_SELF_TEST_set_callback.3", "doc/man/man3/OSSL_STORE_INFO.3", @@ -19737,11 +22983,13 @@ our %unified_info = ( "doc/man/man3/OSSL_STORE_attach.3", "doc/man/man3/OSSL_STORE_expect.3", "doc/man/man3/OSSL_STORE_open.3", + "doc/man/man3/OSSL_sleep.3", "doc/man/man3/OSSL_trace_enabled.3", "doc/man/man3/OSSL_trace_get_category_num.3", "doc/man/man3/OSSL_trace_set_channel.3", "doc/man/man3/OpenSSL_add_all_algorithms.3", "doc/man/man3/OpenSSL_version.3", + "doc/man/man3/PBMAC1_get1_pbkdf2_param.3", "doc/man/man3/PEM_X509_INFO_read_bio_ex.3", "doc/man/man3/PEM_bytes_read_bio.3", "doc/man/man3/PEM_read.3", @@ -19754,6 +23002,7 @@ our %unified_info = ( "doc/man/man3/PKCS12_SAFEBAG_create_cert.3", "doc/man/man3/PKCS12_SAFEBAG_get0_attrs.3", "doc/man/man3/PKCS12_SAFEBAG_get1_cert.3", + "doc/man/man3/PKCS12_SAFEBAG_set0_attrs.3", "doc/man/man3/PKCS12_add1_attr_by_NID.3", "doc/man/man3/PKCS12_add_CSPName_asc.3", "doc/man/man3/PKCS12_add_cert.3", @@ -19845,6 +23094,7 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_sess_set_get_cb.3", "doc/man/man3/SSL_CTX_sessions.3", "doc/man/man3/SSL_CTX_set0_CA_list.3", + "doc/man/man3/SSL_CTX_set1_cert_comp_preference.3", "doc/man/man3/SSL_CTX_set1_curves.3", "doc/man/man3/SSL_CTX_set1_sigalgs.3", "doc/man/man3/SSL_CTX_set1_verify_cert_store.3", @@ -19858,6 +23108,7 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_ct_validation_callback.3", "doc/man/man3/SSL_CTX_set_ctlog_list_file.3", "doc/man/man3/SSL_CTX_set_default_passwd_cb.3", + "doc/man/man3/SSL_CTX_set_domain_flags.3", "doc/man/man3/SSL_CTX_set_generate_session_id.3", "doc/man/man3/SSL_CTX_set_info_callback.3", "doc/man/man3/SSL_CTX_set_keylog_callback.3", @@ -19865,6 +23116,7 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_min_proto_version.3", "doc/man/man3/SSL_CTX_set_mode.3", "doc/man/man3/SSL_CTX_set_msg_callback.3", + "doc/man/man3/SSL_CTX_set_new_pending_conn_cb.3", "doc/man/man3/SSL_CTX_set_num_tickets.3", "doc/man/man3/SSL_CTX_set_options.3", "doc/man/man3/SSL_CTX_set_psk_client_callback.3", @@ -19903,6 +23155,7 @@ our %unified_info = ( "doc/man/man3/SSL_SESSION_print.3", "doc/man/man3/SSL_SESSION_set1_id.3", "doc/man/man3/SSL_accept.3", + "doc/man/man3/SSL_accept_stream.3", "doc/man/man3/SSL_alert_type_string.3", "doc/man/man3/SSL_alloc_buffers.3", "doc/man/man3/SSL_check_chain.3", @@ -19912,59 +23165,90 @@ our %unified_info = ( "doc/man/man3/SSL_export_keying_material.3", "doc/man/man3/SSL_extension_supported.3", "doc/man/man3/SSL_free.3", + "doc/man/man3/SSL_get0_connection.3", + "doc/man/man3/SSL_get0_group_name.3", + "doc/man/man3/SSL_get0_peer_rpk.3", "doc/man/man3/SSL_get0_peer_scts.3", + "doc/man/man3/SSL_get1_builtin_sigalgs.3", "doc/man/man3/SSL_get_SSL_CTX.3", "doc/man/man3/SSL_get_all_async_fds.3", "doc/man/man3/SSL_get_certificate.3", "doc/man/man3/SSL_get_ciphers.3", "doc/man/man3/SSL_get_client_random.3", + "doc/man/man3/SSL_get_conn_close_info.3", "doc/man/man3/SSL_get_current_cipher.3", "doc/man/man3/SSL_get_default_timeout.3", "doc/man/man3/SSL_get_error.3", + "doc/man/man3/SSL_get_event_timeout.3", "doc/man/man3/SSL_get_extms_support.3", "doc/man/man3/SSL_get_fd.3", + "doc/man/man3/SSL_get_handshake_rtt.3", "doc/man/man3/SSL_get_peer_cert_chain.3", "doc/man/man3/SSL_get_peer_certificate.3", "doc/man/man3/SSL_get_peer_signature_nid.3", "doc/man/man3/SSL_get_peer_tmp_key.3", "doc/man/man3/SSL_get_psk_identity.3", "doc/man/man3/SSL_get_rbio.3", + "doc/man/man3/SSL_get_rpoll_descriptor.3", "doc/man/man3/SSL_get_session.3", "doc/man/man3/SSL_get_shared_sigalgs.3", + "doc/man/man3/SSL_get_stream_id.3", + "doc/man/man3/SSL_get_stream_read_state.3", + "doc/man/man3/SSL_get_value_uint.3", "doc/man/man3/SSL_get_verify_result.3", "doc/man/man3/SSL_get_version.3", "doc/man/man3/SSL_group_to_name.3", + "doc/man/man3/SSL_handle_events.3", "doc/man/man3/SSL_in_init.3", + "doc/man/man3/SSL_inject_net_dgram.3", "doc/man/man3/SSL_key_update.3", "doc/man/man3/SSL_library_init.3", "doc/man/man3/SSL_load_client_CA_file.3", "doc/man/man3/SSL_new.3", + "doc/man/man3/SSL_new_domain.3", + "doc/man/man3/SSL_new_listener.3", + "doc/man/man3/SSL_new_stream.3", "doc/man/man3/SSL_pending.3", + "doc/man/man3/SSL_poll.3", "doc/man/man3/SSL_read.3", "doc/man/man3/SSL_read_early_data.3", "doc/man/man3/SSL_rstate_string.3", "doc/man/man3/SSL_session_reused.3", "doc/man/man3/SSL_set1_host.3", + "doc/man/man3/SSL_set1_initial_peer_addr.3", + "doc/man/man3/SSL_set1_server_cert_type.3", "doc/man/man3/SSL_set_async_callback.3", "doc/man/man3/SSL_set_bio.3", + "doc/man/man3/SSL_set_blocking_mode.3", "doc/man/man3/SSL_set_connect_state.3", + "doc/man/man3/SSL_set_default_stream_mode.3", "doc/man/man3/SSL_set_fd.3", + "doc/man/man3/SSL_set_incoming_stream_policy.3", + "doc/man/man3/SSL_set_quic_tls_cbs.3", "doc/man/man3/SSL_set_retry_verify.3", "doc/man/man3/SSL_set_session.3", + "doc/man/man3/SSL_set_session_secret_cb.3", "doc/man/man3/SSL_set_shutdown.3", "doc/man/man3/SSL_set_verify_result.3", "doc/man/man3/SSL_shutdown.3", "doc/man/man3/SSL_state_string.3", + "doc/man/man3/SSL_stream_conclude.3", + "doc/man/man3/SSL_stream_reset.3", "doc/man/man3/SSL_want.3", "doc/man/man3/SSL_write.3", "doc/man/man3/TS_RESP_CTX_new.3", - "doc/man/man3/TS_VERIFY_CTX_set_certs.3", + "doc/man/man3/TS_VERIFY_CTX.3", "doc/man/man3/UI_STRING.3", "doc/man/man3/UI_UTIL_read_pw.3", "doc/man/man3/UI_create_method.3", "doc/man/man3/UI_new.3", "doc/man/man3/X509V3_get_d2i.3", "doc/man/man3/X509V3_set_ctx.3", + "doc/man/man3/X509_ACERT_add1_attr.3", + "doc/man/man3/X509_ACERT_add_attr_nconf.3", + "doc/man/man3/X509_ACERT_get0_holder_baseCertId.3", + "doc/man/man3/X509_ACERT_get_attr.3", + "doc/man/man3/X509_ACERT_print_ex.3", "doc/man/man3/X509_ALGOR_dup.3", "doc/man/man3/X509_ATTRIBUTE.3", "doc/man/man3/X509_CRL_get0_by_serial.3", @@ -19981,6 +23265,7 @@ our %unified_info = ( "doc/man/man3/X509_REQ_get_attr.3", "doc/man/man3/X509_REQ_get_extensions.3", "doc/man/man3/X509_SIG_get0.3", + "doc/man/man3/X509_STORE_CTX_get_by_subject.3", "doc/man/man3/X509_STORE_CTX_get_error.3", "doc/man/man3/X509_STORE_CTX_new.3", "doc/man/man3/X509_STORE_CTX_set_verify_cb.3", @@ -20003,6 +23288,7 @@ our %unified_info = ( "doc/man/man3/X509_get0_notBefore.3", "doc/man/man3/X509_get0_signature.3", "doc/man/man3/X509_get0_uids.3", + "doc/man/man3/X509_get_default_cert_file.3", "doc/man/man3/X509_get_extension_flags.3", "doc/man/man3/X509_get_pubkey.3", "doc/man/man3/X509_get_serialNumber.3", @@ -20048,12 +23334,15 @@ our %unified_info = ( "doc/man/man7/EVP_CIPHER-RC5.7", "doc/man/man7/EVP_CIPHER-SEED.7", "doc/man/man7/EVP_CIPHER-SM4.7", + "doc/man/man7/EVP_KDF-ARGON2.7", "doc/man/man7/EVP_KDF-HKDF.7", + "doc/man/man7/EVP_KDF-HMAC-DRBG.7", "doc/man/man7/EVP_KDF-KB.7", "doc/man/man7/EVP_KDF-KRB5KDF.7", "doc/man/man7/EVP_KDF-PBKDF1.7", "doc/man/man7/EVP_KDF-PBKDF2.7", "doc/man/man7/EVP_KDF-PKCS12KDF.7", + "doc/man/man7/EVP_KDF-PVKKDF.7", "doc/man/man7/EVP_KDF-SCRYPT.7", "doc/man/man7/EVP_KDF-SS.7", "doc/man/man7/EVP_KDF-SSHKDF.7", @@ -20062,7 +23351,10 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-X942-ASN1.7", "doc/man/man7/EVP_KDF-X942-CONCAT.7", "doc/man/man7/EVP_KDF-X963.7", + "doc/man/man7/EVP_KEM-EC.7", + "doc/man/man7/EVP_KEM-ML-KEM.7", "doc/man/man7/EVP_KEM-RSA.7", + "doc/man/man7/EVP_KEM-X25519.7", "doc/man/man7/EVP_KEYEXCH-DH.7", "doc/man/man7/EVP_KEYEXCH-ECDH.7", "doc/man/man7/EVP_KEYEXCH-X25519.7", @@ -20074,6 +23366,7 @@ our %unified_info = ( "doc/man/man7/EVP_MAC-Poly1305.7", "doc/man/man7/EVP_MAC-Siphash.7", "doc/man/man7/EVP_MD-BLAKE2.7", + "doc/man/man7/EVP_MD-KECCAK.7", "doc/man/man7/EVP_MD-MD2.7", "doc/man/man7/EVP_MD-MD4.7", "doc/man/man7/EVP_MD-MD5-SHA1.7", @@ -20093,12 +23386,17 @@ our %unified_info = ( "doc/man/man7/EVP_PKEY-EC.7", "doc/man/man7/EVP_PKEY-FFC.7", "doc/man/man7/EVP_PKEY-HMAC.7", + "doc/man/man7/EVP_PKEY-ML-DSA.7", + "doc/man/man7/EVP_PKEY-ML-KEM.7", "doc/man/man7/EVP_PKEY-RSA.7", + "doc/man/man7/EVP_PKEY-SLH-DSA.7", "doc/man/man7/EVP_PKEY-SM2.7", "doc/man/man7/EVP_PKEY-X25519.7", + "doc/man/man7/EVP_RAND-CRNG-TEST.7", "doc/man/man7/EVP_RAND-CTR-DRBG.7", "doc/man/man7/EVP_RAND-HASH-DRBG.7", "doc/man/man7/EVP_RAND-HMAC-DRBG.7", + "doc/man/man7/EVP_RAND-JITTER.7", "doc/man/man7/EVP_RAND-SEED-SRC.7", "doc/man/man7/EVP_RAND-TEST-RAND.7", "doc/man/man7/EVP_RAND.7", @@ -20106,17 +23404,19 @@ our %unified_info = ( "doc/man/man7/EVP_SIGNATURE-ECDSA.7", "doc/man/man7/EVP_SIGNATURE-ED25519.7", "doc/man/man7/EVP_SIGNATURE-HMAC.7", + "doc/man/man7/EVP_SIGNATURE-ML-DSA.7", "doc/man/man7/EVP_SIGNATURE-RSA.7", + "doc/man/man7/EVP_SIGNATURE-SLH-DSA.7", "doc/man/man7/OSSL_PROVIDER-FIPS.7", "doc/man/man7/OSSL_PROVIDER-base.7", "doc/man/man7/OSSL_PROVIDER-default.7", "doc/man/man7/OSSL_PROVIDER-legacy.7", "doc/man/man7/OSSL_PROVIDER-null.7", + "doc/man/man7/OSSL_STORE-winstore.7", "doc/man/man7/RAND.7", "doc/man/man7/RSA-PSS.7", "doc/man/man7/X25519.7", "doc/man/man7/bio.7", - "doc/man/man7/crypto.7", "doc/man/man7/ct.7", "doc/man/man7/des_modes.7", "doc/man/man7/evp.7", @@ -20127,14 +23427,31 @@ our %unified_info = ( "doc/man/man7/life_cycle-mac.7", "doc/man/man7/life_cycle-pkey.7", "doc/man/man7/life_cycle-rand.7", - "doc/man/man7/migration_guide.7", "doc/man/man7/openssl-core.h.7", "doc/man/man7/openssl-core_dispatch.h.7", "doc/man/man7/openssl-core_names.h.7", "doc/man/man7/openssl-env.7", "doc/man/man7/openssl-glossary.7", + "doc/man/man7/openssl-qlog.7", + "doc/man/man7/openssl-quic-concurrency.7", + "doc/man/man7/openssl-quic.7", "doc/man/man7/openssl-threads.7", "doc/man/man7/openssl_user_macros.7", + "doc/man/man7/ossl-guide-introduction.7", + "doc/man/man7/ossl-guide-libcrypto-introduction.7", + "doc/man/man7/ossl-guide-libraries-introduction.7", + "doc/man/man7/ossl-guide-libssl-introduction.7", + "doc/man/man7/ossl-guide-migration.7", + "doc/man/man7/ossl-guide-quic-client-block.7", + "doc/man/man7/ossl-guide-quic-client-non-block.7", + "doc/man/man7/ossl-guide-quic-introduction.7", + "doc/man/man7/ossl-guide-quic-multi-stream.7", + "doc/man/man7/ossl-guide-quic-server-block.7", + "doc/man/man7/ossl-guide-quic-server-non-block.7", + "doc/man/man7/ossl-guide-tls-client-block.7", + "doc/man/man7/ossl-guide-tls-client-non-block.7", + "doc/man/man7/ossl-guide-tls-introduction.7", + "doc/man/man7/ossl-guide-tls-server-block.7", "doc/man/man7/ossl_store-file.7", "doc/man/man7/ossl_store.7", "doc/man/man7/passphrase-encoding.7", @@ -20153,10 +23470,10 @@ our %unified_info = ( "doc/man/man7/provider-object.7", "doc/man/man7/provider-rand.7", "doc/man/man7/provider-signature.7", + "doc/man/man7/provider-skeymgmt.7", "doc/man/man7/provider-storemgmt.7", "doc/man/man7/provider.7", "doc/man/man7/proxy-certificates.7", - "doc/man/man7/ssl.7", "doc/man/man7/x509.7" ] }, @@ -20168,6 +23485,7 @@ our %unified_info = ( ], "programs" => [ "apps/openssl", + "fuzz/acert-test", "fuzz/asn1-test", "fuzz/asn1parse-test", "fuzz/bignum-test", @@ -20178,7 +23496,24 @@ our %unified_info = ( "fuzz/conf-test", "fuzz/crl-test", "fuzz/ct-test", + "fuzz/decoder-test", + "fuzz/dtlsclient-test", + "fuzz/dtlsserver-test", + "fuzz/hashtable-test", + "fuzz/ml-dsa-test", + "fuzz/ml-kem-test", + "fuzz/pem-test", + "fuzz/provider-test", + "fuzz/punycode-test", + "fuzz/quic-client-test", + "fuzz/quic-lcidm-test", + "fuzz/quic-rcidm-test", + "fuzz/quic-server-test", + "fuzz/quic-srtm-test", "fuzz/server-test", + "fuzz/slh-dsa-test", + "fuzz/smime-test", + "fuzz/v3name-test", "fuzz/x509-test", "test/aborttest", "test/acvp_test", @@ -20196,21 +23531,28 @@ our %unified_info = ( "test/asynctest", "test/bad_dtls_test", "test/bftest", + "test/bio_addr_test", + "test/bio_base64_test", "test/bio_callback_test", "test/bio_core_test", + "test/bio_dgram_test", "test/bio_enc_test", "test/bio_memleak_test", + "test/bio_meth_test", "test/bio_prefix_text", "test/bio_pw_callback_test", "test/bio_readbuffer_test", + "test/bio_tfo_test", "test/bioprinttest", "test/bn_internal_test", "test/bntest", + "test/build_wincrypt_test", "test/buildtest_c_aes", "test/buildtest_c_async", "test/buildtest_c_blowfish", "test/buildtest_c_bn", "test/buildtest_c_buffer", + "test/buildtest_c_byteorder", "test/buildtest_c_camellia", "test/buildtest_c_cast", "test/buildtest_c_cmac", @@ -20219,7 +23561,6 @@ our %unified_info = ( "test/buildtest_c_conftypes", "test/buildtest_c_core", "test/buildtest_c_core_dispatch", - "test/buildtest_c_core_names", "test/buildtest_c_core_object", "test/buildtest_c_cryptoerr_legacy", "test/buildtest_c_decoder", @@ -20228,6 +23569,7 @@ our %unified_info = ( "test/buildtest_c_dsa", "test/buildtest_c_dtls1", "test/buildtest_c_e_os2", + "test/buildtest_c_e_ostime", "test/buildtest_c_ebcdic", "test/buildtest_c_ec", "test/buildtest_c_ecdh", @@ -20237,13 +23579,16 @@ our %unified_info = ( "test/buildtest_c_evp", "test/buildtest_c_fips_names", "test/buildtest_c_hmac", + "test/buildtest_c_hpke", "test/buildtest_c_http", "test/buildtest_c_idea", + "test/buildtest_c_indicator", "test/buildtest_c_kdf", "test/buildtest_c_macros", "test/buildtest_c_md4", "test/buildtest_c_md5", "test/buildtest_c_mdc2", + "test/buildtest_c_ml_kem", "test/buildtest_c_modes", "test/buildtest_c_obj_mac", "test/buildtest_c_objects", @@ -20254,6 +23599,7 @@ our %unified_info = ( "test/buildtest_c_pem2", "test/buildtest_c_prov_ssl", "test/buildtest_c_provider", + "test/buildtest_c_quic", "test/buildtest_c_rand", "test/buildtest_c_rc2", "test/buildtest_c_rc4", @@ -20268,11 +23614,14 @@ our %unified_info = ( "test/buildtest_c_stack", "test/buildtest_c_store", "test/buildtest_c_symhacks", + "test/buildtest_c_thread", "test/buildtest_c_tls1", "test/buildtest_c_ts", "test/buildtest_c_txt_db", "test/buildtest_c_types", "test/buildtest_c_whrlpool", + "test/byteorder_test", + "test/ca_internals_test", "test/casttest", "test/chacha_internal_test", "test/cipher_overhead_test", @@ -20301,6 +23650,7 @@ our %unified_info = ( "test/curve448_internal_test", "test/d2i_test", "test/danetest", + "test/decoder_propq_test", "test/defltfips_test", "test/destest", "test/dhtest", @@ -20325,9 +23675,12 @@ our %unified_info = ( "test/evp_kdf_test", "test/evp_libctx_test", "test/evp_pkey_ctx_new_from_name", + "test/evp_pkey_dhkem_test", "test/evp_pkey_dparams_test", "test/evp_pkey_provided_test", + "test/evp_skey_test", "test/evp_test", + "test/evp_xof_test", "test/exdatatest", "test/exptest", "test/ext_internal_test", @@ -20337,21 +23690,29 @@ our %unified_info = ( "test/gmdifftest", "test/hexstr_test", "test/hmactest", + "test/hpke_test", "test/http_test", "test/ideatest", "test/igetest", + "test/json_test", "test/keymgmt_internal_test", "test/lhash_test", + "test/list_test", "test/localetest", "test/mdc2_internal_test", "test/mdc2test", + "test/membio_test", "test/memleaktest", + "test/ml_dsa_test", + "test/ml_kem_evp_extra_test", + "test/ml_kem_internal_test", "test/modes_internal_test", "test/namemap_internal_test", "test/nodefltctxtest", "test/ocspapitest", "test/ossl_store_test", "test/packettest", + "test/pairwise_fail_test", "test/param_build_test", "test/params_api_test", "test/params_conversion_test", @@ -20360,36 +23721,65 @@ our %unified_info = ( "test/pbetest", "test/pem_read_depr_test", "test/pemtest", + "test/pkcs12_api_test", "test/pkcs12_format_test", "test/pkcs7_test", "test/pkey_meth_kdf_test", "test/pkey_meth_test", "test/poly1305_internal_test", + "test/priority_queue_test", "test/property_test", "test/prov_config_test", "test/provfetchtest", + "test/provider_default_search_path_test", "test/provider_fallback_test", "test/provider_internal_test", "test/provider_pkey_test", "test/provider_status_test", "test/provider_test", "test/punycode_test", + "test/quic_ackm_test", + "test/quic_cc_test", + "test/quic_cfq_test", + "test/quic_client_test", + "test/quic_fc_test", + "test/quic_fifd_test", + "test/quic_lcidm_test", + "test/quic_multistream_test", + "test/quic_newcid_test", + "test/quic_qlog_test", + "test/quic_radix_test", + "test/quic_rcidm_test", + "test/quic_record_test", + "test/quic_srt_gen_test", + "test/quic_srtm_test", + "test/quic_stream_test", + "test/quic_tserver_test", + "test/quic_txp_test", + "test/quic_txpim_test", + "test/quic_wire_test", + "test/quicapitest", + "test/quicfaultstest", "test/rand_status_test", "test/rand_test", "test/rc2test", "test/rc4test", "test/rc5test", - "test/rdrand_sanitytest", + "test/rdcpu_sanitytest", "test/recordlentest", + "test/rpktest", "test/rsa_complex", "test/rsa_mp_test", "test/rsa_sp800_56b_test", "test/rsa_test", + "test/rsa_x931_test", + "test/safe_math_test", "test/sanitytest", "test/secmemtest", "test/servername_test", "test/sha_test", "test/siphash_internal_test", + "test/slh_dsa_test", "test/sm2_internal_test", "test/sm3_internal_test", "test/sm4_internal_test", @@ -20397,6 +23787,7 @@ our %unified_info = ( "test/srptest", "test/ssl_cert_table_internal_test", "test/ssl_ctx_test", + "test/ssl_handshake_rtt_test", "test/ssl_old_test", "test/ssl_test", "test/ssl_test_ctx_test", @@ -20404,13 +23795,17 @@ our %unified_info = ( "test/sslbuffertest", "test/sslcorrupttest", "test/stack_test", + "test/strtoultest", "test/sysdefaulttest", "test/test_test", + "test/threadpool_test", "test/threadstest", "test/threadstest_fips", "test/time_offset_test", + "test/time_test", "test/tls13ccstest", "test/tls13encryptiontest", + "test/tls13groupselection_test", "test/trace_api_test", "test/uitest", "test/upcallstest", @@ -20420,9 +23815,13 @@ our %unified_info = ( "test/verify_extra_test", "test/versions", "test/wpackettest", + "test/x509_acert_test", "test/x509_check_cert_pkey_test", "test/x509_dup_cert_test", "test/x509_internal_test", + "test/x509_load_cert_file_test", + "test/x509_req_test", + "test/x509_test", "test/x509_time_test", "test/x509aux" ], @@ -20437,6 +23836,33 @@ our %unified_info = ( "apps/CA.pl" => [ "apps/CA.pl.in" ], + "apps/ca_internals_test-bin-ca.o" => [ + "apps/ca.c" + ], + "apps/lib/ca_internals_test-bin-app_libctx.o" => [ + "apps/lib/app_libctx.c" + ], + "apps/lib/ca_internals_test-bin-app_provider.o" => [ + "apps/lib/app_provider.c" + ], + "apps/lib/ca_internals_test-bin-app_rand.o" => [ + "apps/lib/app_rand.c" + ], + "apps/lib/ca_internals_test-bin-app_x509.o" => [ + "apps/lib/app_x509.c" + ], + "apps/lib/ca_internals_test-bin-apps.o" => [ + "apps/lib/apps.c" + ], + "apps/lib/ca_internals_test-bin-apps_ui.o" => [ + "apps/lib/apps_ui.c" + ], + "apps/lib/ca_internals_test-bin-engine.o" => [ + "apps/lib/engine.c" + ], + "apps/lib/ca_internals_test-bin-fmt.o" => [ + "apps/lib/fmt.c" + ], "apps/lib/cmp_client_test-bin-cmp_mock_srv.o" => [ "apps/lib/cmp_mock_srv.c" ], @@ -20458,6 +23884,9 @@ our %unified_info = ( "apps/lib/libapps-lib-apps.o" => [ "apps/lib/apps.c" ], + "apps/lib/libapps-lib-apps_opt_printf.o" => [ + "apps/lib/apps_opt_printf.c" + ], "apps/lib/libapps-lib-apps_ui.o" => [ "apps/lib/apps_ui.c" ], @@ -20476,6 +23905,9 @@ our %unified_info = ( "apps/lib/libapps-lib-http_server.o" => [ "apps/lib/http_server.c" ], + "apps/lib/libapps-lib-log.o" => [ + "apps/lib/log.c" + ], "apps/lib/libapps-lib-names.o" => [ "apps/lib/names.c" ], @@ -20513,12 +23945,14 @@ our %unified_info = ( "apps/lib/libapps-lib-app_rand.o", "apps/lib/libapps-lib-app_x509.o", "apps/lib/libapps-lib-apps.o", + "apps/lib/libapps-lib-apps_opt_printf.o", "apps/lib/libapps-lib-apps_ui.o", "apps/lib/libapps-lib-columns.o", "apps/lib/libapps-lib-engine.o", "apps/lib/libapps-lib-engine_loader.o", "apps/lib/libapps-lib-fmt.o", "apps/lib/libapps-lib-http_server.o", + "apps/lib/libapps-lib-log.o", "apps/lib/libapps-lib-names.o", "apps/lib/libapps-lib-opt.o", "apps/lib/libapps-lib-s_cb.o", @@ -20574,6 +24008,7 @@ our %unified_info = ( "apps/openssl-bin-s_server.o", "apps/openssl-bin-s_time.o", "apps/openssl-bin-sess_id.o", + "apps/openssl-bin-skeyutl.o", "apps/openssl-bin-smime.o", "apps/openssl-bin-speed.o", "apps/openssl-bin-spkac.o", @@ -20722,6 +24157,9 @@ our %unified_info = ( "apps/openssl-bin-sess_id.o" => [ "apps/sess_id.c" ], + "apps/openssl-bin-skeyutl.o" => [ + "apps/skeyutl.c" + ], "apps/openssl-bin-smime.o" => [ "apps/smime.c" ], @@ -20791,6 +24229,12 @@ our %unified_info = ( "crypto/aria/libcrypto-lib-aria.o" => [ "crypto/aria/aria.c" ], + "crypto/asn1/asn1_time_test-bin-a_time.o" => [ + "crypto/asn1/a_time.c" + ], + "crypto/asn1/ca_internals_test-bin-a_time.o" => [ + "crypto/asn1/a_time.c" + ], "crypto/asn1/libcrypto-lib-a_bitstr.o" => [ "crypto/asn1/a_bitstr.c" ], @@ -20983,6 +24427,9 @@ our %unified_info = ( "crypto/asn1/libcrypto-lib-x_val.o" => [ "crypto/asn1/x_val.c" ], + "crypto/asn1_time_test-bin-ctype.o" => [ + "crypto/ctype.c" + ], "crypto/async/arch/libcrypto-lib-async_null.o" => [ "crypto/async/arch/async_null.c" ], @@ -21076,6 +24523,9 @@ our %unified_info = ( "crypto/bio/libcrypto-lib-bss_dgram.o" => [ "crypto/bio/bss_dgram.c" ], + "crypto/bio/libcrypto-lib-bss_dgram_pair.o" => [ + "crypto/bio/bss_dgram_pair.c" + ], "crypto/bio/libcrypto-lib-bss_fd.o" => [ "crypto/bio/bss_fd.c" ], @@ -21289,6 +24739,9 @@ our %unified_info = ( "crypto/buffer/libfips-lib-buffer.o" => [ "crypto/buffer/buffer.c" ], + "crypto/ca_internals_test-bin-ctype.o" => [ + "crypto/ctype.c" + ], "crypto/camellia/libcrypto-lib-camellia.o" => [ "crypto/camellia/camellia.c" ], @@ -21346,6 +24799,9 @@ our %unified_info = ( "crypto/cmp/libcrypto-lib-cmp_err.o" => [ "crypto/cmp/cmp_err.c" ], + "crypto/cmp/libcrypto-lib-cmp_genm.o" => [ + "crypto/cmp/cmp_genm.c" + ], "crypto/cmp/libcrypto-lib-cmp_hdr.o" => [ "crypto/cmp/cmp_hdr.c" ], @@ -22021,9 +25477,15 @@ our %unified_info = ( "crypto/err/libcrypto-lib-err_blocks.o" => [ "crypto/err/err_blocks.c" ], + "crypto/err/libcrypto-lib-err_mark.o" => [ + "crypto/err/err_mark.c" + ], "crypto/err/libcrypto-lib-err_prn.o" => [ "crypto/err/err_prn.c" ], + "crypto/err/libcrypto-lib-err_save.o" => [ + "crypto/err/err_save.c" + ], "crypto/ess/libcrypto-lib-ess_asn1.o" => [ "crypto/ess/ess_asn1.c" ], @@ -22270,9 +25732,15 @@ our %unified_info = ( "crypto/evp/libcrypto-lib-pmeth_lib.o" => [ "crypto/evp/pmeth_lib.c" ], + "crypto/evp/libcrypto-lib-s_lib.o" => [ + "crypto/evp/s_lib.c" + ], "crypto/evp/libcrypto-lib-signature.o" => [ "crypto/evp/signature.c" ], + "crypto/evp/libcrypto-lib-skeymgmt_meth.o" => [ + "crypto/evp/skeymgmt_meth.c" + ], "crypto/evp/libfips-lib-asymcipher.o" => [ "crypto/evp/asymcipher.c" ], @@ -22318,9 +25786,6 @@ our %unified_info = ( "crypto/evp/libfips-lib-keymgmt_meth.o" => [ "crypto/evp/keymgmt_meth.c" ], - "crypto/evp/libfips-lib-m_sigver.o" => [ - "crypto/evp/m_sigver.c" - ], "crypto/evp/libfips-lib-mac_lib.o" => [ "crypto/evp/mac_lib.c" ], @@ -22339,9 +25804,15 @@ our %unified_info = ( "crypto/evp/libfips-lib-pmeth_lib.o" => [ "crypto/evp/pmeth_lib.c" ], + "crypto/evp/libfips-lib-s_lib.o" => [ + "crypto/evp/s_lib.c" + ], "crypto/evp/libfips-lib-signature.o" => [ "crypto/evp/signature.c" ], + "crypto/evp/libfips-lib-skeymgmt_meth.o" => [ + "crypto/evp/skeymgmt_meth.c" + ], "crypto/ffc/libcrypto-lib-ffc_backend.o" => [ "crypto/ffc/ffc_backend.c" ], @@ -22384,12 +25855,30 @@ our %unified_info = ( "crypto/ffc/libfips-lib-ffc_params_validate.o" => [ "crypto/ffc/ffc_params_validate.c" ], + "crypto/hashtable/libcrypto-lib-hashfunc.o" => [ + "crypto/hashtable/hashfunc.c" + ], + "crypto/hashtable/libcrypto-lib-hashtable.o" => [ + "crypto/hashtable/hashtable.c" + ], + "crypto/hashtable/libfips-lib-hashfunc.o" => [ + "crypto/hashtable/hashfunc.c" + ], + "crypto/hashtable/libfips-lib-hashtable.o" => [ + "crypto/hashtable/hashtable.c" + ], "crypto/hmac/libcrypto-lib-hmac.o" => [ "crypto/hmac/hmac.c" ], "crypto/hmac/libfips-lib-hmac.o" => [ "crypto/hmac/hmac.c" ], + "crypto/hpke/libcrypto-lib-hpke.o" => [ + "crypto/hpke/hpke.c" + ], + "crypto/hpke/libcrypto-lib-hpke_util.o" => [ + "crypto/hpke/hpke_util.c" + ], "crypto/http/libcrypto-lib-http_client.o" => [ "crypto/http/http_client.c" ], @@ -22432,6 +25921,9 @@ our %unified_info = ( "crypto/libcrypto-lib-bsearch.o" => [ "crypto/bsearch.c" ], + "crypto/libcrypto-lib-comp_methods.o" => [ + "crypto/comp_methods.c" + ], "crypto/libcrypto-lib-context.o" => [ "crypto/context.c" ], @@ -22459,9 +25951,15 @@ our %unified_info = ( "crypto/libcrypto-lib-cversion.o" => [ "crypto/cversion.c" ], + "crypto/libcrypto-lib-defaults.o" => [ + "crypto/defaults.c" + ], "crypto/libcrypto-lib-der_writer.o" => [ "crypto/der_writer.c" ], + "crypto/libcrypto-lib-deterministic_nonce.o" => [ + "crypto/deterministic_nonce.c" + ], "crypto/libcrypto-lib-ebcdic.o" => [ "crypto/ebcdic.c" ], @@ -22471,6 +25969,9 @@ our %unified_info = ( "crypto/libcrypto-lib-getenv.o" => [ "crypto/getenv.c" ], + "crypto/libcrypto-lib-indicator_core.o" => [ + "crypto/indicator_core.c" + ], "crypto/libcrypto-lib-info.o" => [ "crypto/info.c" ], @@ -22522,6 +26023,9 @@ our %unified_info = ( "crypto/libcrypto-lib-params_from_text.o" => [ "crypto/params_from_text.c" ], + "crypto/libcrypto-lib-params_idx.o" => [ + "crypto/params_idx.c" + ], "crypto/libcrypto-lib-passphrase.o" => [ "crypto/passphrase.c" ], @@ -22543,12 +26047,21 @@ our %unified_info = ( "crypto/libcrypto-lib-punycode.o" => [ "crypto/punycode.c" ], + "crypto/libcrypto-lib-quic_vlint.o" => [ + "crypto/quic_vlint.c" + ], "crypto/libcrypto-lib-self_test_core.o" => [ "crypto/self_test_core.c" ], + "crypto/libcrypto-lib-sleep.o" => [ + "crypto/sleep.c" + ], "crypto/libcrypto-lib-sparse_array.o" => [ "crypto/sparse_array.c" ], + "crypto/libcrypto-lib-ssl_err.o" => [ + "crypto/ssl_err.c" + ], "crypto/libcrypto-lib-threads_lib.o" => [ "crypto/threads_lib.c" ], @@ -22561,6 +26074,9 @@ our %unified_info = ( "crypto/libcrypto-lib-threads_win.o" => [ "crypto/threads_win.c" ], + "crypto/libcrypto-lib-time.o" => [ + "crypto/time.c" + ], "crypto/libcrypto-lib-trace.o" => [ "crypto/trace.c" ], @@ -22627,6 +26143,9 @@ our %unified_info = ( "crypto/libfips-lib-params_from_text.o" => [ "crypto/params_from_text.c" ], + "crypto/libfips-lib-params_idx.o" => [ + "crypto/params_idx.c" + ], "crypto/libfips-lib-provider_core.o" => [ "crypto/provider_core.c" ], @@ -22651,6 +26170,9 @@ our %unified_info = ( "crypto/libfips-lib-threads_win.o" => [ "crypto/threads_win.c" ], + "crypto/libfips-lib-time.o" => [ + "crypto/time.c" + ], "crypto/md4/libcrypto-lib-md4_dgst.o" => [ "crypto/md4/md4_dgst.c" ], @@ -22672,6 +26194,60 @@ our %unified_info = ( "crypto/mdc2/libcrypto-lib-mdc2dgst.o" => [ "crypto/mdc2/mdc2dgst.c" ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_encoders.o" => [ + "crypto/ml_dsa/ml_dsa_encoders.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key.o" => [ + "crypto/ml_dsa/ml_dsa_key.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key_compress.o" => [ + "crypto/ml_dsa/ml_dsa_key_compress.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_matrix.o" => [ + "crypto/ml_dsa/ml_dsa_matrix.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_ntt.o" => [ + "crypto/ml_dsa/ml_dsa_ntt.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_params.o" => [ + "crypto/ml_dsa/ml_dsa_params.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sample.o" => [ + "crypto/ml_dsa/ml_dsa_sample.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sign.o" => [ + "crypto/ml_dsa/ml_dsa_sign.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_encoders.o" => [ + "crypto/ml_dsa/ml_dsa_encoders.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_key.o" => [ + "crypto/ml_dsa/ml_dsa_key.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_key_compress.o" => [ + "crypto/ml_dsa/ml_dsa_key_compress.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_matrix.o" => [ + "crypto/ml_dsa/ml_dsa_matrix.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_ntt.o" => [ + "crypto/ml_dsa/ml_dsa_ntt.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_params.o" => [ + "crypto/ml_dsa/ml_dsa_params.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_sample.o" => [ + "crypto/ml_dsa/ml_dsa_sample.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_sign.o" => [ + "crypto/ml_dsa/ml_dsa_sign.c" + ], + "crypto/ml_kem/libcrypto-lib-ml_kem.o" => [ + "crypto/ml_kem/ml_kem.c" + ], + "crypto/ml_kem/libfips-lib-ml_kem.o" => [ + "crypto/ml_kem/ml_kem.c" + ], "crypto/modes/libcrypto-lib-cbc128.o" => [ "crypto/modes/cbc128.c" ], @@ -22705,6 +26281,9 @@ our %unified_info = ( "crypto/modes/libcrypto-lib-xts128.o" => [ "crypto/modes/xts128.c" ], + "crypto/modes/libcrypto-lib-xts128gb.o" => [ + "crypto/modes/xts128gb.c" + ], "crypto/modes/libfips-lib-cbc128.o" => [ "crypto/modes/cbc128.c" ], @@ -22729,6 +26308,9 @@ our %unified_info = ( "crypto/modes/libfips-lib-xts128.o" => [ "crypto/modes/xts128.c" ], + "crypto/modes/libfips-lib-xts128gb.o" => [ + "crypto/modes/xts128gb.c" + ], "crypto/objects/libcrypto-lib-o_names.o" => [ "crypto/objects/o_names.c" ], @@ -22774,6 +26356,9 @@ our %unified_info = ( "crypto/ocsp/libcrypto-lib-v3_ocsp.o" => [ "crypto/ocsp/v3_ocsp.c" ], + "crypto/packettest-bin-quic_vlint.o" => [ + "crypto/quic_vlint.c" + ], "crypto/pem/libcrypto-lib-pem_all.o" => [ "crypto/pem/pem_all.c" ], @@ -22933,6 +26518,9 @@ our %unified_info = ( "crypto/rand/libcrypto-lib-rand_pool.o" => [ "crypto/rand/rand_pool.c" ], + "crypto/rand/libcrypto-lib-rand_uniform.o" => [ + "crypto/rand/rand_uniform.c" + ], "crypto/rand/libcrypto-lib-randfile.o" => [ "crypto/rand/randfile.c" ], @@ -23146,6 +26734,66 @@ our %unified_info = ( "crypto/siphash/libcrypto-lib-siphash.o" => [ "crypto/siphash/siphash.c" ], + "crypto/slh_dsa/libcrypto-lib-slh_adrs.o" => [ + "crypto/slh_dsa/slh_adrs.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_dsa.o" => [ + "crypto/slh_dsa/slh_dsa.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_dsa_hash_ctx.o" => [ + "crypto/slh_dsa/slh_dsa_hash_ctx.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_dsa_key.o" => [ + "crypto/slh_dsa/slh_dsa_key.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_fors.o" => [ + "crypto/slh_dsa/slh_fors.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_hash.o" => [ + "crypto/slh_dsa/slh_hash.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_hypertree.o" => [ + "crypto/slh_dsa/slh_hypertree.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_params.o" => [ + "crypto/slh_dsa/slh_params.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_wots.o" => [ + "crypto/slh_dsa/slh_wots.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_xmss.o" => [ + "crypto/slh_dsa/slh_xmss.c" + ], + "crypto/slh_dsa/libfips-lib-slh_adrs.o" => [ + "crypto/slh_dsa/slh_adrs.c" + ], + "crypto/slh_dsa/libfips-lib-slh_dsa.o" => [ + "crypto/slh_dsa/slh_dsa.c" + ], + "crypto/slh_dsa/libfips-lib-slh_dsa_hash_ctx.o" => [ + "crypto/slh_dsa/slh_dsa_hash_ctx.c" + ], + "crypto/slh_dsa/libfips-lib-slh_dsa_key.o" => [ + "crypto/slh_dsa/slh_dsa_key.c" + ], + "crypto/slh_dsa/libfips-lib-slh_fors.o" => [ + "crypto/slh_dsa/slh_fors.c" + ], + "crypto/slh_dsa/libfips-lib-slh_hash.o" => [ + "crypto/slh_dsa/slh_hash.c" + ], + "crypto/slh_dsa/libfips-lib-slh_hypertree.o" => [ + "crypto/slh_dsa/slh_hypertree.c" + ], + "crypto/slh_dsa/libfips-lib-slh_params.o" => [ + "crypto/slh_dsa/slh_params.c" + ], + "crypto/slh_dsa/libfips-lib-slh_wots.o" => [ + "crypto/slh_dsa/slh_wots.c" + ], + "crypto/slh_dsa/libfips-lib-slh_xmss.o" => [ + "crypto/slh_dsa/slh_xmss.c" + ], "crypto/sm2/libcrypto-lib-sm2_crypt.o" => [ "crypto/sm2/sm2_crypt.c" ], @@ -23200,6 +26848,42 @@ our %unified_info = ( "crypto/store/libcrypto-lib-store_strings.o" => [ "crypto/store/store_strings.c" ], + "crypto/thread/arch/libcrypto-lib-thread_none.o" => [ + "crypto/thread/arch/thread_none.c" + ], + "crypto/thread/arch/libcrypto-lib-thread_posix.o" => [ + "crypto/thread/arch/thread_posix.c" + ], + "crypto/thread/arch/libcrypto-lib-thread_win.o" => [ + "crypto/thread/arch/thread_win.c" + ], + "crypto/thread/arch/libfips-lib-thread_none.o" => [ + "crypto/thread/arch/thread_none.c" + ], + "crypto/thread/arch/libfips-lib-thread_posix.o" => [ + "crypto/thread/arch/thread_posix.c" + ], + "crypto/thread/arch/libfips-lib-thread_win.o" => [ + "crypto/thread/arch/thread_win.c" + ], + "crypto/thread/libcrypto-lib-api.o" => [ + "crypto/thread/api.c" + ], + "crypto/thread/libcrypto-lib-arch.o" => [ + "crypto/thread/arch.c" + ], + "crypto/thread/libcrypto-lib-internal.o" => [ + "crypto/thread/internal.c" + ], + "crypto/thread/libfips-lib-api.o" => [ + "crypto/thread/api.c" + ], + "crypto/thread/libfips-lib-arch.o" => [ + "crypto/thread/arch.c" + ], + "crypto/thread/libfips-lib-internal.o" => [ + "crypto/thread/internal.c" + ], "crypto/ts/libcrypto-lib-ts_asn1.o" => [ "crypto/ts/ts_asn1.c" ], @@ -23284,6 +26968,9 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-pcy_tree.o" => [ "crypto/x509/pcy_tree.c" ], + "crypto/x509/libcrypto-lib-t_acert.o" => [ + "crypto/x509/t_acert.c" + ], "crypto/x509/libcrypto-lib-t_crl.o" => [ "crypto/x509/t_crl.c" ], @@ -23293,6 +26980,12 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-t_x509.o" => [ "crypto/x509/t_x509.c" ], + "crypto/x509/libcrypto-lib-v3_aaa.o" => [ + "crypto/x509/v3_aaa.c" + ], + "crypto/x509/libcrypto-lib-v3_ac_tgt.o" => [ + "crypto/x509/v3_ac_tgt.c" + ], "crypto/x509/libcrypto-lib-v3_addr.o" => [ "crypto/x509/v3_addr.c" ], @@ -23308,6 +27001,21 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_asid.o" => [ "crypto/x509/v3_asid.c" ], + "crypto/x509/libcrypto-lib-v3_attrdesc.o" => [ + "crypto/x509/v3_attrdesc.c" + ], + "crypto/x509/libcrypto-lib-v3_attrmap.o" => [ + "crypto/x509/v3_attrmap.c" + ], + "crypto/x509/libcrypto-lib-v3_audit_id.o" => [ + "crypto/x509/v3_audit_id.c" + ], + "crypto/x509/libcrypto-lib-v3_authattid.o" => [ + "crypto/x509/v3_authattid.c" + ], + "crypto/x509/libcrypto-lib-v3_battcons.o" => [ + "crypto/x509/v3_battcons.c" + ], "crypto/x509/libcrypto-lib-v3_bcons.o" => [ "crypto/x509/v3_bcons.c" ], @@ -23332,15 +27040,24 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_genn.o" => [ "crypto/x509/v3_genn.c" ], + "crypto/x509/libcrypto-lib-v3_group_ac.o" => [ + "crypto/x509/v3_group_ac.c" + ], "crypto/x509/libcrypto-lib-v3_ia5.o" => [ "crypto/x509/v3_ia5.c" ], + "crypto/x509/libcrypto-lib-v3_ind_iss.o" => [ + "crypto/x509/v3_ind_iss.c" + ], "crypto/x509/libcrypto-lib-v3_info.o" => [ "crypto/x509/v3_info.c" ], "crypto/x509/libcrypto-lib-v3_int.o" => [ "crypto/x509/v3_int.c" ], + "crypto/x509/libcrypto-lib-v3_iobo.o" => [ + "crypto/x509/v3_iobo.c" + ], "crypto/x509/libcrypto-lib-v3_ist.o" => [ "crypto/x509/v3_ist.c" ], @@ -23350,6 +27067,12 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_ncons.o" => [ "crypto/x509/v3_ncons.c" ], + "crypto/x509/libcrypto-lib-v3_no_ass.o" => [ + "crypto/x509/v3_no_ass.c" + ], + "crypto/x509/libcrypto-lib-v3_no_rev_avail.o" => [ + "crypto/x509/v3_no_rev_avail.c" + ], "crypto/x509/libcrypto-lib-v3_pci.o" => [ "crypto/x509/v3_pci.c" ], @@ -23371,18 +27094,36 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_purp.o" => [ "crypto/x509/v3_purp.c" ], + "crypto/x509/libcrypto-lib-v3_rolespec.o" => [ + "crypto/x509/v3_rolespec.c" + ], "crypto/x509/libcrypto-lib-v3_san.o" => [ "crypto/x509/v3_san.c" ], + "crypto/x509/libcrypto-lib-v3_sda.o" => [ + "crypto/x509/v3_sda.c" + ], + "crypto/x509/libcrypto-lib-v3_single_use.o" => [ + "crypto/x509/v3_single_use.c" + ], "crypto/x509/libcrypto-lib-v3_skid.o" => [ "crypto/x509/v3_skid.c" ], + "crypto/x509/libcrypto-lib-v3_soa_id.o" => [ + "crypto/x509/v3_soa_id.c" + ], "crypto/x509/libcrypto-lib-v3_sxnet.o" => [ "crypto/x509/v3_sxnet.c" ], + "crypto/x509/libcrypto-lib-v3_timespec.o" => [ + "crypto/x509/v3_timespec.c" + ], "crypto/x509/libcrypto-lib-v3_tlsf.o" => [ "crypto/x509/v3_tlsf.c" ], + "crypto/x509/libcrypto-lib-v3_usernotice.o" => [ + "crypto/x509/v3_usernotice.c" + ], "crypto/x509/libcrypto-lib-v3_utf8.o" => [ "crypto/x509/v3_utf8.c" ], @@ -23392,6 +27133,9 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3err.o" => [ "crypto/x509/v3err.c" ], + "crypto/x509/libcrypto-lib-x509_acert.o" => [ + "crypto/x509/x509_acert.c" + ], "crypto/x509/libcrypto-lib-x509_att.o" => [ "crypto/x509/x509_att.c" ], @@ -23443,6 +27187,9 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x509_vpm.o" => [ "crypto/x509/x509_vpm.c" ], + "crypto/x509/libcrypto-lib-x509aset.o" => [ + "crypto/x509/x509aset.c" + ], "crypto/x509/libcrypto-lib-x509cset.o" => [ "crypto/x509/x509cset.c" ], @@ -23470,6 +27217,9 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x_exten.o" => [ "crypto/x509/x_exten.c" ], + "crypto/x509/libcrypto-lib-x_ietfatt.o" => [ + "crypto/x509/x_ietfatt.c" + ], "crypto/x509/libcrypto-lib-x_name.o" => [ "crypto/x509/x_name.c" ], @@ -23491,6 +27241,16 @@ our %unified_info = ( "engines/libcrypto-lib-e_padlock.o" => [ "engines/e_padlock.c" ], + "fuzz/acert-test" => [ + "fuzz/acert-test-bin-acert.o", + "fuzz/acert-test-bin-test-corpus.o" + ], + "fuzz/acert-test-bin-acert.o" => [ + "fuzz/acert.c" + ], + "fuzz/acert-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], "fuzz/asn1-test" => [ "fuzz/asn1-test-bin-asn1.o", "fuzz/asn1-test-bin-fuzz_rand.o", @@ -23603,6 +27363,190 @@ our %unified_info = ( "fuzz/ct-test-bin-test-corpus.o" => [ "fuzz/test-corpus.c" ], + "fuzz/decoder-test" => [ + "fuzz/decoder-test-bin-decoder.o", + "fuzz/decoder-test-bin-fuzz_rand.o", + "fuzz/decoder-test-bin-test-corpus.o" + ], + "fuzz/decoder-test-bin-decoder.o" => [ + "fuzz/decoder.c" + ], + "fuzz/decoder-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/decoder-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/dtlsclient-test" => [ + "fuzz/dtlsclient-test-bin-dtlsclient.o", + "fuzz/dtlsclient-test-bin-fuzz_rand.o", + "fuzz/dtlsclient-test-bin-test-corpus.o" + ], + "fuzz/dtlsclient-test-bin-dtlsclient.o" => [ + "fuzz/dtlsclient.c" + ], + "fuzz/dtlsclient-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/dtlsclient-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/dtlsserver-test" => [ + "fuzz/dtlsserver-test-bin-dtlsserver.o", + "fuzz/dtlsserver-test-bin-fuzz_rand.o", + "fuzz/dtlsserver-test-bin-test-corpus.o" + ], + "fuzz/dtlsserver-test-bin-dtlsserver.o" => [ + "fuzz/dtlsserver.c" + ], + "fuzz/dtlsserver-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/dtlsserver-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/hashtable-test" => [ + "fuzz/hashtable-test-bin-fuzz_rand.o", + "fuzz/hashtable-test-bin-hashtable.o", + "fuzz/hashtable-test-bin-test-corpus.o" + ], + "fuzz/hashtable-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/hashtable-test-bin-hashtable.o" => [ + "fuzz/hashtable.c" + ], + "fuzz/hashtable-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/ml-dsa-test" => [ + "fuzz/ml-dsa-test-bin-fuzz_rand.o", + "fuzz/ml-dsa-test-bin-ml-dsa.o", + "fuzz/ml-dsa-test-bin-test-corpus.o" + ], + "fuzz/ml-dsa-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/ml-dsa-test-bin-ml-dsa.o" => [ + "fuzz/ml-dsa.c" + ], + "fuzz/ml-dsa-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/ml-kem-test" => [ + "fuzz/ml-kem-test-bin-fuzz_rand.o", + "fuzz/ml-kem-test-bin-ml-kem.o", + "fuzz/ml-kem-test-bin-test-corpus.o" + ], + "fuzz/ml-kem-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/ml-kem-test-bin-ml-kem.o" => [ + "fuzz/ml-kem.c" + ], + "fuzz/ml-kem-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/pem-test" => [ + "fuzz/pem-test-bin-pem.o", + "fuzz/pem-test-bin-test-corpus.o" + ], + "fuzz/pem-test-bin-pem.o" => [ + "fuzz/pem.c" + ], + "fuzz/pem-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/provider-test" => [ + "fuzz/provider-test-bin-provider.o", + "fuzz/provider-test-bin-test-corpus.o" + ], + "fuzz/provider-test-bin-provider.o" => [ + "fuzz/provider.c" + ], + "fuzz/provider-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/punycode-test" => [ + "fuzz/punycode-test-bin-punycode.o", + "fuzz/punycode-test-bin-test-corpus.o" + ], + "fuzz/punycode-test-bin-punycode.o" => [ + "fuzz/punycode.c" + ], + "fuzz/punycode-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-client-test" => [ + "fuzz/quic-client-test-bin-fuzz_rand.o", + "fuzz/quic-client-test-bin-quic-client.o", + "fuzz/quic-client-test-bin-test-corpus.o" + ], + "fuzz/quic-client-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-client-test-bin-quic-client.o" => [ + "fuzz/quic-client.c" + ], + "fuzz/quic-client-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-lcidm-test" => [ + "fuzz/quic-lcidm-test-bin-fuzz_rand.o", + "fuzz/quic-lcidm-test-bin-quic-lcidm.o", + "fuzz/quic-lcidm-test-bin-test-corpus.o" + ], + "fuzz/quic-lcidm-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-lcidm-test-bin-quic-lcidm.o" => [ + "fuzz/quic-lcidm.c" + ], + "fuzz/quic-lcidm-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-rcidm-test" => [ + "fuzz/quic-rcidm-test-bin-fuzz_rand.o", + "fuzz/quic-rcidm-test-bin-quic-rcidm.o", + "fuzz/quic-rcidm-test-bin-test-corpus.o" + ], + "fuzz/quic-rcidm-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-rcidm-test-bin-quic-rcidm.o" => [ + "fuzz/quic-rcidm.c" + ], + "fuzz/quic-rcidm-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-server-test" => [ + "fuzz/quic-server-test-bin-fuzz_rand.o", + "fuzz/quic-server-test-bin-quic-server.o", + "fuzz/quic-server-test-bin-test-corpus.o" + ], + "fuzz/quic-server-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-server-test-bin-quic-server.o" => [ + "fuzz/quic-server.c" + ], + "fuzz/quic-server-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-srtm-test" => [ + "fuzz/quic-srtm-test-bin-fuzz_rand.o", + "fuzz/quic-srtm-test-bin-quic-srtm.o", + "fuzz/quic-srtm-test-bin-test-corpus.o" + ], + "fuzz/quic-srtm-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-srtm-test-bin-quic-srtm.o" => [ + "fuzz/quic-srtm.c" + ], + "fuzz/quic-srtm-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], "fuzz/server-test" => [ "fuzz/server-test-bin-fuzz_rand.o", "fuzz/server-test-bin-server.o", @@ -23617,6 +27561,40 @@ our %unified_info = ( "fuzz/server-test-bin-test-corpus.o" => [ "fuzz/test-corpus.c" ], + "fuzz/slh-dsa-test" => [ + "fuzz/slh-dsa-test-bin-fuzz_rand.o", + "fuzz/slh-dsa-test-bin-slh-dsa.o", + "fuzz/slh-dsa-test-bin-test-corpus.o" + ], + "fuzz/slh-dsa-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/slh-dsa-test-bin-slh-dsa.o" => [ + "fuzz/slh-dsa.c" + ], + "fuzz/slh-dsa-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/smime-test" => [ + "fuzz/smime-test-bin-smime.o", + "fuzz/smime-test-bin-test-corpus.o" + ], + "fuzz/smime-test-bin-smime.o" => [ + "fuzz/smime.c" + ], + "fuzz/smime-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/v3name-test" => [ + "fuzz/v3name-test-bin-test-corpus.o", + "fuzz/v3name-test-bin-v3name.o" + ], + "fuzz/v3name-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/v3name-test-bin-v3name.o" => [ + "fuzz/v3name.c" + ], "fuzz/x509-test" => [ "fuzz/x509-test-bin-fuzz_rand.o", "fuzz/x509-test-bin-test-corpus.o", @@ -23736,6 +27714,7 @@ our %unified_info = ( "crypto/bio/libcrypto-lib-bss_conn.o", "crypto/bio/libcrypto-lib-bss_core.o", "crypto/bio/libcrypto-lib-bss_dgram.o", + "crypto/bio/libcrypto-lib-bss_dgram_pair.o", "crypto/bio/libcrypto-lib-bss_fd.o", "crypto/bio/libcrypto-lib-bss_file.o", "crypto/bio/libcrypto-lib-bss_log.o", @@ -23796,6 +27775,7 @@ our %unified_info = ( "crypto/cmp/libcrypto-lib-cmp_client.o", "crypto/cmp/libcrypto-lib-cmp_ctx.o", "crypto/cmp/libcrypto-lib-cmp_err.o", + "crypto/cmp/libcrypto-lib-cmp_genm.o", "crypto/cmp/libcrypto-lib-cmp_hdr.o", "crypto/cmp/libcrypto-lib-cmp_http.o", "crypto/cmp/libcrypto-lib-cmp_msg.o", @@ -23971,7 +27951,9 @@ our %unified_info = ( "crypto/err/libcrypto-lib-err_all.o", "crypto/err/libcrypto-lib-err_all_legacy.o", "crypto/err/libcrypto-lib-err_blocks.o", + "crypto/err/libcrypto-lib-err_mark.o", "crypto/err/libcrypto-lib-err_prn.o", + "crypto/err/libcrypto-lib-err_save.o", "crypto/ess/libcrypto-lib-ess_asn1.o", "crypto/ess/libcrypto-lib-ess_err.o", "crypto/ess/libcrypto-lib-ess_lib.o", @@ -24054,7 +28036,9 @@ our %unified_info = ( "crypto/evp/libcrypto-lib-pmeth_check.o", "crypto/evp/libcrypto-lib-pmeth_gn.o", "crypto/evp/libcrypto-lib-pmeth_lib.o", + "crypto/evp/libcrypto-lib-s_lib.o", "crypto/evp/libcrypto-lib-signature.o", + "crypto/evp/libcrypto-lib-skeymgmt_meth.o", "crypto/ffc/libcrypto-lib-ffc_backend.o", "crypto/ffc/libcrypto-lib-ffc_dh.o", "crypto/ffc/libcrypto-lib-ffc_key_generate.o", @@ -24062,7 +28046,11 @@ our %unified_info = ( "crypto/ffc/libcrypto-lib-ffc_params.o", "crypto/ffc/libcrypto-lib-ffc_params_generate.o", "crypto/ffc/libcrypto-lib-ffc_params_validate.o", + "crypto/hashtable/libcrypto-lib-hashfunc.o", + "crypto/hashtable/libcrypto-lib-hashtable.o", "crypto/hmac/libcrypto-lib-hmac.o", + "crypto/hpke/libcrypto-lib-hpke.o", + "crypto/hpke/libcrypto-lib-hpke_util.o", "crypto/http/libcrypto-lib-http_client.o", "crypto/http/libcrypto-lib-http_err.o", "crypto/http/libcrypto-lib-http_lib.o", @@ -24076,6 +28064,7 @@ our %unified_info = ( "crypto/lhash/libcrypto-lib-lhash.o", "crypto/libcrypto-lib-asn1_dsa.o", "crypto/libcrypto-lib-bsearch.o", + "crypto/libcrypto-lib-comp_methods.o", "crypto/libcrypto-lib-context.o", "crypto/libcrypto-lib-core_algorithm.o", "crypto/libcrypto-lib-core_fetch.o", @@ -24085,10 +28074,13 @@ our %unified_info = ( "crypto/libcrypto-lib-cryptlib.o", "crypto/libcrypto-lib-ctype.o", "crypto/libcrypto-lib-cversion.o", + "crypto/libcrypto-lib-defaults.o", "crypto/libcrypto-lib-der_writer.o", + "crypto/libcrypto-lib-deterministic_nonce.o", "crypto/libcrypto-lib-ebcdic.o", "crypto/libcrypto-lib-ex_data.o", "crypto/libcrypto-lib-getenv.o", + "crypto/libcrypto-lib-indicator_core.o", "crypto/libcrypto-lib-info.o", "crypto/libcrypto-lib-init.o", "crypto/libcrypto-lib-initthread.o", @@ -24106,6 +28098,7 @@ our %unified_info = ( "crypto/libcrypto-lib-params.o", "crypto/libcrypto-lib-params_dup.o", "crypto/libcrypto-lib-params_from_text.o", + "crypto/libcrypto-lib-params_idx.o", "crypto/libcrypto-lib-passphrase.o", "crypto/libcrypto-lib-provider.o", "crypto/libcrypto-lib-provider_child.o", @@ -24113,12 +28106,16 @@ our %unified_info = ( "crypto/libcrypto-lib-provider_core.o", "crypto/libcrypto-lib-provider_predefined.o", "crypto/libcrypto-lib-punycode.o", + "crypto/libcrypto-lib-quic_vlint.o", "crypto/libcrypto-lib-self_test_core.o", + "crypto/libcrypto-lib-sleep.o", "crypto/libcrypto-lib-sparse_array.o", + "crypto/libcrypto-lib-ssl_err.o", "crypto/libcrypto-lib-threads_lib.o", "crypto/libcrypto-lib-threads_none.o", "crypto/libcrypto-lib-threads_pthread.o", "crypto/libcrypto-lib-threads_win.o", + "crypto/libcrypto-lib-time.o", "crypto/libcrypto-lib-trace.o", "crypto/libcrypto-lib-uid.o", "crypto/md4/libcrypto-lib-md4_dgst.o", @@ -24128,6 +28125,15 @@ our %unified_info = ( "crypto/md5/libcrypto-lib-md5_sha1.o", "crypto/mdc2/libcrypto-lib-mdc2_one.o", "crypto/mdc2/libcrypto-lib-mdc2dgst.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_encoders.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key_compress.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_matrix.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_ntt.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_params.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sample.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sign.o", + "crypto/ml_kem/libcrypto-lib-ml_kem.o", "crypto/modes/libcrypto-lib-cbc128.o", "crypto/modes/libcrypto-lib-ccm128.o", "crypto/modes/libcrypto-lib-cfb128.o", @@ -24139,6 +28145,7 @@ our %unified_info = ( "crypto/modes/libcrypto-lib-siv128.o", "crypto/modes/libcrypto-lib-wrap128.o", "crypto/modes/libcrypto-lib-xts128.o", + "crypto/modes/libcrypto-lib-xts128gb.o", "crypto/objects/libcrypto-lib-o_names.o", "crypto/objects/libcrypto-lib-obj_dat.o", "crypto/objects/libcrypto-lib-obj_err.o", @@ -24202,6 +28209,7 @@ our %unified_info = ( "crypto/rand/libcrypto-lib-rand_lib.o", "crypto/rand/libcrypto-lib-rand_meth.o", "crypto/rand/libcrypto-lib-rand_pool.o", + "crypto/rand/libcrypto-lib-rand_uniform.o", "crypto/rand/libcrypto-lib-randfile.o", "crypto/rc2/libcrypto-lib-rc2_cbc.o", "crypto/rc2/libcrypto-lib-rc2_ecb.o", @@ -24250,6 +28258,16 @@ our %unified_info = ( "crypto/sha/libcrypto-lib-sha3.o", "crypto/sha/libcrypto-lib-sha512.o", "crypto/siphash/libcrypto-lib-siphash.o", + "crypto/slh_dsa/libcrypto-lib-slh_adrs.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa_hash_ctx.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa_key.o", + "crypto/slh_dsa/libcrypto-lib-slh_fors.o", + "crypto/slh_dsa/libcrypto-lib-slh_hash.o", + "crypto/slh_dsa/libcrypto-lib-slh_hypertree.o", + "crypto/slh_dsa/libcrypto-lib-slh_params.o", + "crypto/slh_dsa/libcrypto-lib-slh_wots.o", + "crypto/slh_dsa/libcrypto-lib-slh_xmss.o", "crypto/sm2/libcrypto-lib-sm2_crypt.o", "crypto/sm2/libcrypto-lib-sm2_err.o", "crypto/sm2/libcrypto-lib-sm2_key.o", @@ -24267,6 +28285,12 @@ our %unified_info = ( "crypto/store/libcrypto-lib-store_register.o", "crypto/store/libcrypto-lib-store_result.o", "crypto/store/libcrypto-lib-store_strings.o", + "crypto/thread/arch/libcrypto-lib-thread_none.o", + "crypto/thread/arch/libcrypto-lib-thread_posix.o", + "crypto/thread/arch/libcrypto-lib-thread_win.o", + "crypto/thread/libcrypto-lib-api.o", + "crypto/thread/libcrypto-lib-arch.o", + "crypto/thread/libcrypto-lib-internal.o", "crypto/ts/libcrypto-lib-ts_asn1.o", "crypto/ts/libcrypto-lib-ts_conf.o", "crypto/ts/libcrypto-lib-ts_err.o", @@ -24295,14 +28319,22 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-pcy_map.o", "crypto/x509/libcrypto-lib-pcy_node.o", "crypto/x509/libcrypto-lib-pcy_tree.o", + "crypto/x509/libcrypto-lib-t_acert.o", "crypto/x509/libcrypto-lib-t_crl.o", "crypto/x509/libcrypto-lib-t_req.o", "crypto/x509/libcrypto-lib-t_x509.o", + "crypto/x509/libcrypto-lib-v3_aaa.o", + "crypto/x509/libcrypto-lib-v3_ac_tgt.o", "crypto/x509/libcrypto-lib-v3_addr.o", "crypto/x509/libcrypto-lib-v3_admis.o", "crypto/x509/libcrypto-lib-v3_akeya.o", "crypto/x509/libcrypto-lib-v3_akid.o", "crypto/x509/libcrypto-lib-v3_asid.o", + "crypto/x509/libcrypto-lib-v3_attrdesc.o", + "crypto/x509/libcrypto-lib-v3_attrmap.o", + "crypto/x509/libcrypto-lib-v3_audit_id.o", + "crypto/x509/libcrypto-lib-v3_authattid.o", + "crypto/x509/libcrypto-lib-v3_battcons.o", "crypto/x509/libcrypto-lib-v3_bcons.o", "crypto/x509/libcrypto-lib-v3_bitst.o", "crypto/x509/libcrypto-lib-v3_conf.o", @@ -24311,12 +28343,17 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_enum.o", "crypto/x509/libcrypto-lib-v3_extku.o", "crypto/x509/libcrypto-lib-v3_genn.o", + "crypto/x509/libcrypto-lib-v3_group_ac.o", "crypto/x509/libcrypto-lib-v3_ia5.o", + "crypto/x509/libcrypto-lib-v3_ind_iss.o", "crypto/x509/libcrypto-lib-v3_info.o", "crypto/x509/libcrypto-lib-v3_int.o", + "crypto/x509/libcrypto-lib-v3_iobo.o", "crypto/x509/libcrypto-lib-v3_ist.o", "crypto/x509/libcrypto-lib-v3_lib.o", "crypto/x509/libcrypto-lib-v3_ncons.o", + "crypto/x509/libcrypto-lib-v3_no_ass.o", + "crypto/x509/libcrypto-lib-v3_no_rev_avail.o", "crypto/x509/libcrypto-lib-v3_pci.o", "crypto/x509/libcrypto-lib-v3_pcia.o", "crypto/x509/libcrypto-lib-v3_pcons.o", @@ -24324,13 +28361,20 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_pmaps.o", "crypto/x509/libcrypto-lib-v3_prn.o", "crypto/x509/libcrypto-lib-v3_purp.o", + "crypto/x509/libcrypto-lib-v3_rolespec.o", "crypto/x509/libcrypto-lib-v3_san.o", + "crypto/x509/libcrypto-lib-v3_sda.o", + "crypto/x509/libcrypto-lib-v3_single_use.o", "crypto/x509/libcrypto-lib-v3_skid.o", + "crypto/x509/libcrypto-lib-v3_soa_id.o", "crypto/x509/libcrypto-lib-v3_sxnet.o", + "crypto/x509/libcrypto-lib-v3_timespec.o", "crypto/x509/libcrypto-lib-v3_tlsf.o", + "crypto/x509/libcrypto-lib-v3_usernotice.o", "crypto/x509/libcrypto-lib-v3_utf8.o", "crypto/x509/libcrypto-lib-v3_utl.o", "crypto/x509/libcrypto-lib-v3err.o", + "crypto/x509/libcrypto-lib-x509_acert.o", "crypto/x509/libcrypto-lib-x509_att.o", "crypto/x509/libcrypto-lib-x509_cmp.o", "crypto/x509/libcrypto-lib-x509_d2.o", @@ -24348,6 +28392,7 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x509_v3.o", "crypto/x509/libcrypto-lib-x509_vfy.o", "crypto/x509/libcrypto-lib-x509_vpm.o", + "crypto/x509/libcrypto-lib-x509aset.o", "crypto/x509/libcrypto-lib-x509cset.o", "crypto/x509/libcrypto-lib-x509name.o", "crypto/x509/libcrypto-lib-x509rset.o", @@ -24357,6 +28402,7 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x_attrib.o", "crypto/x509/libcrypto-lib-x_crl.o", "crypto/x509/libcrypto-lib-x_exten.o", + "crypto/x509/libcrypto-lib-x_ietfatt.o", "crypto/x509/libcrypto-lib-x_name.o", "crypto/x509/libcrypto-lib-x_pubkey.o", "crypto/x509/libcrypto-lib-x_req.o", @@ -24377,14 +28423,15 @@ our %unified_info = ( "ssl/libssl-lib-d1_srtp.o", "ssl/libssl-lib-methods.o", "ssl/libssl-lib-pqueue.o", + "ssl/libssl-lib-priority_queue.o", "ssl/libssl-lib-s3_enc.o", "ssl/libssl-lib-s3_lib.o", "ssl/libssl-lib-s3_msg.o", "ssl/libssl-lib-ssl_asn1.o", "ssl/libssl-lib-ssl_cert.o", + "ssl/libssl-lib-ssl_cert_comp.o", "ssl/libssl-lib-ssl_ciph.o", "ssl/libssl-lib-ssl_conf.o", - "ssl/libssl-lib-ssl_err.o", "ssl/libssl-lib-ssl_err_legacy.o", "ssl/libssl-lib-ssl_init.o", "ssl/libssl-lib-ssl_lib.o", @@ -24401,12 +28448,60 @@ our %unified_info = ( "ssl/libssl-lib-tls13_enc.o", "ssl/libssl-lib-tls_depr.o", "ssl/libssl-lib-tls_srp.o", - "ssl/record/libssl-lib-dtls1_bitmap.o", + "ssl/quic/libssl-lib-cc_newreno.o", + "ssl/quic/libssl-lib-json_enc.o", + "ssl/quic/libssl-lib-qlog.o", + "ssl/quic/libssl-lib-qlog_event_helpers.o", + "ssl/quic/libssl-lib-quic_ackm.o", + "ssl/quic/libssl-lib-quic_cfq.o", + "ssl/quic/libssl-lib-quic_channel.o", + "ssl/quic/libssl-lib-quic_demux.o", + "ssl/quic/libssl-lib-quic_engine.o", + "ssl/quic/libssl-lib-quic_fc.o", + "ssl/quic/libssl-lib-quic_fifd.o", + "ssl/quic/libssl-lib-quic_impl.o", + "ssl/quic/libssl-lib-quic_lcidm.o", + "ssl/quic/libssl-lib-quic_method.o", + "ssl/quic/libssl-lib-quic_obj.o", + "ssl/quic/libssl-lib-quic_port.o", + "ssl/quic/libssl-lib-quic_rcidm.o", + "ssl/quic/libssl-lib-quic_reactor.o", + "ssl/quic/libssl-lib-quic_reactor_wait_ctx.o", + "ssl/quic/libssl-lib-quic_record_rx.o", + "ssl/quic/libssl-lib-quic_record_shared.o", + "ssl/quic/libssl-lib-quic_record_tx.o", + "ssl/quic/libssl-lib-quic_record_util.o", + "ssl/quic/libssl-lib-quic_rstream.o", + "ssl/quic/libssl-lib-quic_rx_depack.o", + "ssl/quic/libssl-lib-quic_sf_list.o", + "ssl/quic/libssl-lib-quic_srt_gen.o", + "ssl/quic/libssl-lib-quic_srtm.o", + "ssl/quic/libssl-lib-quic_sstream.o", + "ssl/quic/libssl-lib-quic_statm.o", + "ssl/quic/libssl-lib-quic_stream_map.o", + "ssl/quic/libssl-lib-quic_thread_assist.o", + "ssl/quic/libssl-lib-quic_tls.o", + "ssl/quic/libssl-lib-quic_tls_api.o", + "ssl/quic/libssl-lib-quic_trace.o", + "ssl/quic/libssl-lib-quic_tserver.o", + "ssl/quic/libssl-lib-quic_txp.o", + "ssl/quic/libssl-lib-quic_txpim.o", + "ssl/quic/libssl-lib-quic_types.o", + "ssl/quic/libssl-lib-quic_wire.o", + "ssl/quic/libssl-lib-quic_wire_pkt.o", + "ssl/quic/libssl-lib-uint_set.o", "ssl/record/libssl-lib-rec_layer_d1.o", "ssl/record/libssl-lib-rec_layer_s3.o", - "ssl/record/libssl-lib-ssl3_buffer.o", - "ssl/record/libssl-lib-ssl3_record.o", - "ssl/record/libssl-lib-ssl3_record_tls13.o", + "ssl/record/methods/libssl-lib-dtls_meth.o", + "ssl/record/methods/libssl-lib-ssl3_meth.o", + "ssl/record/methods/libssl-lib-tls13_meth.o", + "ssl/record/methods/libssl-lib-tls1_meth.o", + "ssl/record/methods/libssl-lib-tls_common.o", + "ssl/record/methods/libssl-lib-tls_multib.o", + "ssl/record/methods/libssl-lib-tlsany_meth.o", + "ssl/rio/libssl-lib-poll_builder.o", + "ssl/rio/libssl-lib-poll_immediate.o", + "ssl/rio/libssl-lib-rio_notifier.o", "ssl/statem/libssl-lib-extensions.o", "ssl/statem/libssl-lib-extensions_clnt.o", "ssl/statem/libssl-lib-extensions_cust.o", @@ -24444,12 +28539,24 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ecx_key.o" => [ "providers/common/der/der_ecx_key.c" ], + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o" => [ + "providers/common/der/der_ml_dsa_gen.c" + ], + "providers/common/der/libcommon-lib-der_ml_dsa_key.o" => [ + "providers/common/der/der_ml_dsa_key.c" + ], "providers/common/der/libcommon-lib-der_rsa_gen.o" => [ "providers/common/der/der_rsa_gen.c" ], "providers/common/der/libcommon-lib-der_rsa_key.o" => [ "providers/common/der/der_rsa_key.c" ], + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o" => [ + "providers/common/der/der_slh_dsa_gen.c" + ], + "providers/common/der/libcommon-lib-der_slh_dsa_key.o" => [ + "providers/common/der/der_slh_dsa_key.c" + ], "providers/common/der/libcommon-lib-der_wrap_gen.o" => [ "providers/common/der/der_wrap_gen.c" ], @@ -24516,6 +28623,9 @@ our %unified_info = ( "providers/common/libfips-lib-securitycheck_fips.o" => [ "providers/common/securitycheck_fips.c" ], + "providers/endecode_test-bin-legacyprov.o" => [ + "providers/legacyprov.c" + ], "providers/evp_extra_test-bin-legacyprov.o" => [ "providers/legacyprov.c" ], @@ -24530,6 +28640,9 @@ our %unified_info = ( "providers/fips/fips-dso-fips_entry.o" => [ "providers/fips/fips_entry.c" ], + "providers/fips/libfips-lib-fipsindicator.o" => [ + "providers/fips/fipsindicator.c" + ], "providers/fips/libfips-lib-fipsprov.o" => [ "providers/fips/fipsprov.c" ], @@ -24593,6 +28706,15 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_hw.o" => [ "providers/implementations/ciphers/cipher_aes_gcm_hw.c" ], + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv.o" => [ + "providers/implementations/ciphers/cipher_aes_gcm_siv.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_hw.o" => [ + "providers/implementations/ciphers/cipher_aes_gcm_siv_hw.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_polyval.o" => [ + "providers/implementations/ciphers/cipher_aes_gcm_siv_polyval.c" + ], "providers/implementations/ciphers/libdefault-lib-cipher_aes_hw.o" => [ "providers/implementations/ciphers/cipher_aes_hw.c" ], @@ -24665,9 +28787,27 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_sm4.o" => [ "providers/implementations/ciphers/cipher_sm4.c" ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm.o" => [ + "providers/implementations/ciphers/cipher_sm4_ccm.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm_hw.o" => [ + "providers/implementations/ciphers/cipher_sm4_ccm_hw.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm.o" => [ + "providers/implementations/ciphers/cipher_sm4_gcm.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm_hw.o" => [ + "providers/implementations/ciphers/cipher_sm4_gcm_hw.c" + ], "providers/implementations/ciphers/libdefault-lib-cipher_sm4_hw.o" => [ "providers/implementations/ciphers/cipher_sm4_hw.c" ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts.o" => [ + "providers/implementations/ciphers/cipher_sm4_xts.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts_hw.o" => [ + "providers/implementations/ciphers/cipher_sm4_xts_hw.c" + ], "providers/implementations/ciphers/libdefault-lib-cipher_tdes.o" => [ "providers/implementations/ciphers/cipher_tdes.c" ], @@ -24887,6 +29027,15 @@ our %unified_info = ( "providers/implementations/encode_decode/libdefault-lib-endecoder_common.o" => [ "providers/implementations/encode_decode/endecoder_common.c" ], + "providers/implementations/encode_decode/libdefault-lib-ml_common_codecs.o" => [ + "providers/implementations/encode_decode/ml_common_codecs.c" + ], + "providers/implementations/encode_decode/libdefault-lib-ml_dsa_codecs.o" => [ + "providers/implementations/encode_decode/ml_dsa_codecs.c" + ], + "providers/implementations/encode_decode/libdefault-lib-ml_kem_codecs.o" => [ + "providers/implementations/encode_decode/ml_kem_codecs.c" + ], "providers/implementations/exchange/libdefault-lib-dh_exch.o" => [ "providers/implementations/exchange/dh_exch.c" ], @@ -24911,9 +29060,15 @@ our %unified_info = ( "providers/implementations/exchange/libfips-lib-kdf_exch.o" => [ "providers/implementations/exchange/kdf_exch.c" ], + "providers/implementations/kdfs/libdefault-lib-argon2.o" => [ + "providers/implementations/kdfs/argon2.c" + ], "providers/implementations/kdfs/libdefault-lib-hkdf.o" => [ "providers/implementations/kdfs/hkdf.c" ], + "providers/implementations/kdfs/libdefault-lib-hmacdrbg_kdf.o" => [ + "providers/implementations/kdfs/hmacdrbg_kdf.c" + ], "providers/implementations/kdfs/libdefault-lib-kbkdf.o" => [ "providers/implementations/kdfs/kbkdf.c" ], @@ -24971,12 +29126,39 @@ our %unified_info = ( "providers/implementations/kdfs/liblegacy-lib-pbkdf1.o" => [ "providers/implementations/kdfs/pbkdf1.c" ], + "providers/implementations/kdfs/liblegacy-lib-pvkkdf.o" => [ + "providers/implementations/kdfs/pvkkdf.c" + ], + "providers/implementations/kem/libdefault-lib-ec_kem.o" => [ + "providers/implementations/kem/ec_kem.c" + ], + "providers/implementations/kem/libdefault-lib-ecx_kem.o" => [ + "providers/implementations/kem/ecx_kem.c" + ], + "providers/implementations/kem/libdefault-lib-kem_util.o" => [ + "providers/implementations/kem/kem_util.c" + ], + "providers/implementations/kem/libdefault-lib-ml_kem_kem.o" => [ + "providers/implementations/kem/ml_kem_kem.c" + ], + "providers/implementations/kem/libdefault-lib-mlx_kem.o" => [ + "providers/implementations/kem/mlx_kem.c" + ], "providers/implementations/kem/libdefault-lib-rsa_kem.o" => [ "providers/implementations/kem/rsa_kem.c" ], + "providers/implementations/kem/libfips-lib-ml_kem_kem.o" => [ + "providers/implementations/kem/ml_kem_kem.c" + ], + "providers/implementations/kem/libfips-lib-mlx_kem.o" => [ + "providers/implementations/kem/mlx_kem.c" + ], "providers/implementations/kem/libfips-lib-rsa_kem.o" => [ "providers/implementations/kem/rsa_kem.c" ], + "providers/implementations/kem/libtemplate-lib-template_kem.o" => [ + "providers/implementations/kem/template_kem.c" + ], "providers/implementations/keymgmt/libdefault-lib-dh_kmgmt.o" => [ "providers/implementations/keymgmt/dh_kmgmt.c" ], @@ -24995,9 +29177,21 @@ our %unified_info = ( "providers/implementations/keymgmt/libdefault-lib-mac_legacy_kmgmt.o" => [ "providers/implementations/keymgmt/mac_legacy_kmgmt.c" ], + "providers/implementations/keymgmt/libdefault-lib-ml_dsa_kmgmt.o" => [ + "providers/implementations/keymgmt/ml_dsa_kmgmt.c" + ], + "providers/implementations/keymgmt/libdefault-lib-ml_kem_kmgmt.o" => [ + "providers/implementations/keymgmt/ml_kem_kmgmt.c" + ], + "providers/implementations/keymgmt/libdefault-lib-mlx_kmgmt.o" => [ + "providers/implementations/keymgmt/mlx_kmgmt.c" + ], "providers/implementations/keymgmt/libdefault-lib-rsa_kmgmt.o" => [ "providers/implementations/keymgmt/rsa_kmgmt.c" ], + "providers/implementations/keymgmt/libdefault-lib-slh_dsa_kmgmt.o" => [ + "providers/implementations/keymgmt/slh_dsa_kmgmt.c" + ], "providers/implementations/keymgmt/libfips-lib-dh_kmgmt.o" => [ "providers/implementations/keymgmt/dh_kmgmt.c" ], @@ -25016,9 +29210,24 @@ our %unified_info = ( "providers/implementations/keymgmt/libfips-lib-mac_legacy_kmgmt.o" => [ "providers/implementations/keymgmt/mac_legacy_kmgmt.c" ], + "providers/implementations/keymgmt/libfips-lib-ml_dsa_kmgmt.o" => [ + "providers/implementations/keymgmt/ml_dsa_kmgmt.c" + ], + "providers/implementations/keymgmt/libfips-lib-ml_kem_kmgmt.o" => [ + "providers/implementations/keymgmt/ml_kem_kmgmt.c" + ], + "providers/implementations/keymgmt/libfips-lib-mlx_kmgmt.o" => [ + "providers/implementations/keymgmt/mlx_kmgmt.c" + ], "providers/implementations/keymgmt/libfips-lib-rsa_kmgmt.o" => [ "providers/implementations/keymgmt/rsa_kmgmt.c" ], + "providers/implementations/keymgmt/libfips-lib-slh_dsa_kmgmt.o" => [ + "providers/implementations/keymgmt/slh_dsa_kmgmt.c" + ], + "providers/implementations/keymgmt/libtemplate-lib-template_kmgmt.o" => [ + "providers/implementations/keymgmt/template_kmgmt.c" + ], "providers/implementations/macs/libdefault-lib-blake2b_mac.o" => [ "providers/implementations/macs/blake2b_mac.c" ], @@ -25055,9 +29264,6 @@ our %unified_info = ( "providers/implementations/macs/libfips-lib-kmac_prov.o" => [ "providers/implementations/macs/kmac_prov.c" ], - "providers/implementations/rands/libdefault-lib-crngt.o" => [ - "providers/implementations/rands/crngt.c" - ], "providers/implementations/rands/libdefault-lib-drbg.o" => [ "providers/implementations/rands/drbg.c" ], @@ -25073,12 +29279,12 @@ our %unified_info = ( "providers/implementations/rands/libdefault-lib-seed_src.o" => [ "providers/implementations/rands/seed_src.c" ], + "providers/implementations/rands/libdefault-lib-seed_src_jitter.o" => [ + "providers/implementations/rands/seed_src_jitter.c" + ], "providers/implementations/rands/libdefault-lib-test_rng.o" => [ "providers/implementations/rands/test_rng.c" ], - "providers/implementations/rands/libfips-lib-crngt.o" => [ - "providers/implementations/rands/crngt.c" - ], "providers/implementations/rands/libfips-lib-drbg.o" => [ "providers/implementations/rands/drbg.c" ], @@ -25091,6 +29297,9 @@ our %unified_info = ( "providers/implementations/rands/libfips-lib-drbg_hmac.o" => [ "providers/implementations/rands/drbg_hmac.c" ], + "providers/implementations/rands/libfips-lib-fips_crng_test.o" => [ + "providers/implementations/rands/fips_crng_test.c" + ], "providers/implementations/rands/libfips-lib-test_rng.o" => [ "providers/implementations/rands/test_rng.c" ], @@ -25118,9 +29327,15 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-mac_legacy_sig.o" => [ "providers/implementations/signature/mac_legacy_sig.c" ], + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o" => [ + "providers/implementations/signature/ml_dsa_sig.c" + ], "providers/implementations/signature/libdefault-lib-rsa_sig.o" => [ "providers/implementations/signature/rsa_sig.c" ], + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o" => [ + "providers/implementations/signature/slh_dsa_sig.c" + ], "providers/implementations/signature/libdefault-lib-sm2_sig.o" => [ "providers/implementations/signature/sm2_sig.c" ], @@ -25136,15 +29351,36 @@ our %unified_info = ( "providers/implementations/signature/libfips-lib-mac_legacy_sig.o" => [ "providers/implementations/signature/mac_legacy_sig.c" ], + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o" => [ + "providers/implementations/signature/ml_dsa_sig.c" + ], "providers/implementations/signature/libfips-lib-rsa_sig.o" => [ "providers/implementations/signature/rsa_sig.c" ], + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o" => [ + "providers/implementations/signature/slh_dsa_sig.c" + ], + "providers/implementations/skeymgmt/libdefault-lib-aes_skmgmt.o" => [ + "providers/implementations/skeymgmt/aes_skmgmt.c" + ], + "providers/implementations/skeymgmt/libdefault-lib-generic.o" => [ + "providers/implementations/skeymgmt/generic.c" + ], + "providers/implementations/skeymgmt/libfips-lib-aes_skmgmt.o" => [ + "providers/implementations/skeymgmt/aes_skmgmt.c" + ], + "providers/implementations/skeymgmt/libfips-lib-generic.o" => [ + "providers/implementations/skeymgmt/generic.c" + ], "providers/implementations/storemgmt/libdefault-lib-file_store.o" => [ "providers/implementations/storemgmt/file_store.c" ], "providers/implementations/storemgmt/libdefault-lib-file_store_any2obj.o" => [ "providers/implementations/storemgmt/file_store_any2obj.c" ], + "providers/implementations/storemgmt/libdefault-lib-winstore_store.o" => [ + "providers/implementations/storemgmt/winstore_store.c" + ], "providers/legacy" => [ "providers/legacy-dso-legacy.res", "providers/legacy-dso-legacyprov.o", @@ -25166,8 +29402,12 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ec_sig.o", "providers/common/der/libcommon-lib-der_ecx_gen.o", "providers/common/der/libcommon-lib-der_ecx_key.o", + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o", + "providers/common/der/libcommon-lib-der_ml_dsa_key.o", "providers/common/der/libcommon-lib-der_rsa_gen.o", "providers/common/der/libcommon-lib-der_rsa_key.o", + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o", + "providers/common/der/libcommon-lib-der_slh_dsa_key.o", "providers/common/der/libcommon-lib-der_wrap_gen.o", "providers/common/libcommon-lib-provider_ctx.o", "providers/common/libcommon-lib-provider_err.o", @@ -25179,7 +29419,7 @@ our %unified_info = ( "providers/implementations/ciphers/libcommon-lib-ciphercommon_gcm_hw.o", "providers/implementations/ciphers/libcommon-lib-ciphercommon_hw.o", "providers/implementations/digests/libcommon-lib-digestcommon.o", - "ssl/record/libcommon-lib-tls_pad.o" + "ssl/record/methods/libcommon-lib-tls_pad.o" ], "providers/libcrypto-lib-baseprov.o" => [ "providers/baseprov.c" @@ -25215,6 +29455,9 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_aes_ccm_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_polyval.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_ocb.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_ocb_hw.o", @@ -25239,7 +29482,13 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_cts.o", "providers/implementations/ciphers/libdefault-lib-cipher_null.o", "providers/implementations/ciphers/libdefault-lib-cipher_sm4.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_sm4_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes_common.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes_default.o", @@ -25268,11 +29517,16 @@ our %unified_info = ( "providers/implementations/encode_decode/libdefault-lib-encode_key2ms.o", "providers/implementations/encode_decode/libdefault-lib-encode_key2text.o", "providers/implementations/encode_decode/libdefault-lib-endecoder_common.o", + "providers/implementations/encode_decode/libdefault-lib-ml_common_codecs.o", + "providers/implementations/encode_decode/libdefault-lib-ml_dsa_codecs.o", + "providers/implementations/encode_decode/libdefault-lib-ml_kem_codecs.o", "providers/implementations/exchange/libdefault-lib-dh_exch.o", "providers/implementations/exchange/libdefault-lib-ecdh_exch.o", "providers/implementations/exchange/libdefault-lib-ecx_exch.o", "providers/implementations/exchange/libdefault-lib-kdf_exch.o", + "providers/implementations/kdfs/libdefault-lib-argon2.o", "providers/implementations/kdfs/libdefault-lib-hkdf.o", + "providers/implementations/kdfs/libdefault-lib-hmacdrbg_kdf.o", "providers/implementations/kdfs/libdefault-lib-kbkdf.o", "providers/implementations/kdfs/libdefault-lib-krb5kdf.o", "providers/implementations/kdfs/libdefault-lib-pbkdf2.o", @@ -25283,6 +29537,11 @@ our %unified_info = ( "providers/implementations/kdfs/libdefault-lib-sskdf.o", "providers/implementations/kdfs/libdefault-lib-tls1_prf.o", "providers/implementations/kdfs/libdefault-lib-x942kdf.o", + "providers/implementations/kem/libdefault-lib-ec_kem.o", + "providers/implementations/kem/libdefault-lib-ecx_kem.o", + "providers/implementations/kem/libdefault-lib-kem_util.o", + "providers/implementations/kem/libdefault-lib-ml_kem_kem.o", + "providers/implementations/kem/libdefault-lib-mlx_kem.o", "providers/implementations/kem/libdefault-lib-rsa_kem.o", "providers/implementations/keymgmt/libdefault-lib-dh_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-dsa_kmgmt.o", @@ -25290,7 +29549,11 @@ our %unified_info = ( "providers/implementations/keymgmt/libdefault-lib-ecx_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-kdf_legacy_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-mac_legacy_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-ml_dsa_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-ml_kem_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-mlx_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-rsa_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-slh_dsa_kmgmt.o", "providers/implementations/macs/libdefault-lib-blake2b_mac.o", "providers/implementations/macs/libdefault-lib-blake2s_mac.o", "providers/implementations/macs/libdefault-lib-cmac_prov.o", @@ -25299,12 +29562,12 @@ our %unified_info = ( "providers/implementations/macs/libdefault-lib-kmac_prov.o", "providers/implementations/macs/libdefault-lib-poly1305_prov.o", "providers/implementations/macs/libdefault-lib-siphash_prov.o", - "providers/implementations/rands/libdefault-lib-crngt.o", "providers/implementations/rands/libdefault-lib-drbg.o", "providers/implementations/rands/libdefault-lib-drbg_ctr.o", "providers/implementations/rands/libdefault-lib-drbg_hash.o", "providers/implementations/rands/libdefault-lib-drbg_hmac.o", "providers/implementations/rands/libdefault-lib-seed_src.o", + "providers/implementations/rands/libdefault-lib-seed_src_jitter.o", "providers/implementations/rands/libdefault-lib-test_rng.o", "providers/implementations/rands/seeding/libdefault-lib-rand_cpu_x86.o", "providers/implementations/rands/seeding/libdefault-lib-rand_tsc.o", @@ -25314,11 +29577,16 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-ecdsa_sig.o", "providers/implementations/signature/libdefault-lib-eddsa_sig.o", "providers/implementations/signature/libdefault-lib-mac_legacy_sig.o", + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o", "providers/implementations/signature/libdefault-lib-rsa_sig.o", + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o", "providers/implementations/signature/libdefault-lib-sm2_sig.o", + "providers/implementations/skeymgmt/libdefault-lib-aes_skmgmt.o", + "providers/implementations/skeymgmt/libdefault-lib-generic.o", "providers/implementations/storemgmt/libdefault-lib-file_store.o", "providers/implementations/storemgmt/libdefault-lib-file_store_any2obj.o", - "ssl/libdefault-lib-s3_cbc.o" + "providers/implementations/storemgmt/libdefault-lib-winstore_store.o", + "ssl/record/methods/libdefault-lib-ssl3_cbc.o" ], "providers/libfips.a" => [ "crypto/aes/libfips-lib-aes_cbc.o", @@ -25420,14 +29688,15 @@ our %unified_info = ( "crypto/evp/libfips-lib-kem.o", "crypto/evp/libfips-lib-keymgmt_lib.o", "crypto/evp/libfips-lib-keymgmt_meth.o", - "crypto/evp/libfips-lib-m_sigver.o", "crypto/evp/libfips-lib-mac_lib.o", "crypto/evp/libfips-lib-mac_meth.o", "crypto/evp/libfips-lib-p_lib.o", "crypto/evp/libfips-lib-pmeth_check.o", "crypto/evp/libfips-lib-pmeth_gn.o", "crypto/evp/libfips-lib-pmeth_lib.o", + "crypto/evp/libfips-lib-s_lib.o", "crypto/evp/libfips-lib-signature.o", + "crypto/evp/libfips-lib-skeymgmt_meth.o", "crypto/ffc/libfips-lib-ffc_backend.o", "crypto/ffc/libfips-lib-ffc_dh.o", "crypto/ffc/libfips-lib-ffc_key_generate.o", @@ -25435,6 +29704,8 @@ our %unified_info = ( "crypto/ffc/libfips-lib-ffc_params.o", "crypto/ffc/libfips-lib-ffc_params_generate.o", "crypto/ffc/libfips-lib-ffc_params_validate.o", + "crypto/hashtable/libfips-lib-hashfunc.o", + "crypto/hashtable/libfips-lib-hashtable.o", "crypto/hmac/libfips-lib-hmac.o", "crypto/lhash/libfips-lib-lhash.o", "crypto/libfips-lib-asn1_dsa.o", @@ -25457,6 +29728,7 @@ our %unified_info = ( "crypto/libfips-lib-params.o", "crypto/libfips-lib-params_dup.o", "crypto/libfips-lib-params_from_text.o", + "crypto/libfips-lib-params_idx.o", "crypto/libfips-lib-provider_core.o", "crypto/libfips-lib-provider_predefined.o", "crypto/libfips-lib-self_test_core.o", @@ -25465,6 +29737,16 @@ our %unified_info = ( "crypto/libfips-lib-threads_none.o", "crypto/libfips-lib-threads_pthread.o", "crypto/libfips-lib-threads_win.o", + "crypto/libfips-lib-time.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_encoders.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_key.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_key_compress.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_matrix.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_ntt.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_params.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_sample.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_sign.o", + "crypto/ml_kem/libfips-lib-ml_kem.o", "crypto/modes/libfips-lib-cbc128.o", "crypto/modes/libfips-lib-ccm128.o", "crypto/modes/libfips-lib-cfb128.o", @@ -25473,6 +29755,7 @@ our %unified_info = ( "crypto/modes/libfips-lib-ofb128.o", "crypto/modes/libfips-lib-wrap128.o", "crypto/modes/libfips-lib-xts128.o", + "crypto/modes/libfips-lib-xts128gb.o", "crypto/property/libfips-lib-defn_cache.o", "crypto/property/libfips-lib-property.o", "crypto/property/libfips-lib-property_parse.o", @@ -25501,7 +29784,23 @@ our %unified_info = ( "crypto/sha/libfips-lib-sha256.o", "crypto/sha/libfips-lib-sha3.o", "crypto/sha/libfips-lib-sha512.o", + "crypto/slh_dsa/libfips-lib-slh_adrs.o", + "crypto/slh_dsa/libfips-lib-slh_dsa.o", + "crypto/slh_dsa/libfips-lib-slh_dsa_hash_ctx.o", + "crypto/slh_dsa/libfips-lib-slh_dsa_key.o", + "crypto/slh_dsa/libfips-lib-slh_fors.o", + "crypto/slh_dsa/libfips-lib-slh_hash.o", + "crypto/slh_dsa/libfips-lib-slh_hypertree.o", + "crypto/slh_dsa/libfips-lib-slh_params.o", + "crypto/slh_dsa/libfips-lib-slh_wots.o", + "crypto/slh_dsa/libfips-lib-slh_xmss.o", "crypto/stack/libfips-lib-stack.o", + "crypto/thread/arch/libfips-lib-thread_none.o", + "crypto/thread/arch/libfips-lib-thread_posix.o", + "crypto/thread/arch/libfips-lib-thread_win.o", + "crypto/thread/libfips-lib-api.o", + "crypto/thread/libfips-lib-arch.o", + "crypto/thread/libfips-lib-internal.o", "providers/common/der/libfips-lib-der_rsa_sig.o", "providers/common/libfips-lib-bio_prov.o", "providers/common/libfips-lib-capabilities.o", @@ -25510,6 +29809,7 @@ our %unified_info = ( "providers/common/libfips-lib-provider_util.o", "providers/common/libfips-lib-securitycheck.o", "providers/common/libfips-lib-securitycheck_fips.o", + "providers/fips/libfips-lib-fipsindicator.o", "providers/fips/libfips-lib-fipsprov.o", "providers/fips/libfips-lib-self_test.o", "providers/fips/libfips-lib-self_test_kats.o", @@ -25547,6 +29847,8 @@ our %unified_info = ( "providers/implementations/kdfs/libfips-lib-sskdf.o", "providers/implementations/kdfs/libfips-lib-tls1_prf.o", "providers/implementations/kdfs/libfips-lib-x942kdf.o", + "providers/implementations/kem/libfips-lib-ml_kem_kem.o", + "providers/implementations/kem/libfips-lib-mlx_kem.o", "providers/implementations/kem/libfips-lib-rsa_kem.o", "providers/implementations/keymgmt/libfips-lib-dh_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-dsa_kmgmt.o", @@ -25554,24 +29856,32 @@ our %unified_info = ( "providers/implementations/keymgmt/libfips-lib-ecx_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-kdf_legacy_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-mac_legacy_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-ml_dsa_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-ml_kem_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-mlx_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-rsa_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-slh_dsa_kmgmt.o", "providers/implementations/macs/libfips-lib-cmac_prov.o", "providers/implementations/macs/libfips-lib-gmac_prov.o", "providers/implementations/macs/libfips-lib-hmac_prov.o", "providers/implementations/macs/libfips-lib-kmac_prov.o", - "providers/implementations/rands/libfips-lib-crngt.o", "providers/implementations/rands/libfips-lib-drbg.o", "providers/implementations/rands/libfips-lib-drbg_ctr.o", "providers/implementations/rands/libfips-lib-drbg_hash.o", "providers/implementations/rands/libfips-lib-drbg_hmac.o", + "providers/implementations/rands/libfips-lib-fips_crng_test.o", "providers/implementations/rands/libfips-lib-test_rng.o", "providers/implementations/signature/libfips-lib-dsa_sig.o", "providers/implementations/signature/libfips-lib-ecdsa_sig.o", "providers/implementations/signature/libfips-lib-eddsa_sig.o", "providers/implementations/signature/libfips-lib-mac_legacy_sig.o", + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o", "providers/implementations/signature/libfips-lib-rsa_sig.o", + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o", + "providers/implementations/skeymgmt/libfips-lib-aes_skmgmt.o", + "providers/implementations/skeymgmt/libfips-lib-generic.o", "providers/libcommon.a", - "ssl/libfips-lib-s3_cbc.o" + "ssl/record/methods/libfips-lib-ssl3_cbc.o" ], "providers/liblegacy-lib-prov_running.o" => [ "providers/prov_running.c" @@ -25601,13 +29911,12 @@ our %unified_info = ( "providers/implementations/digests/liblegacy-lib-ripemd_prov.o", "providers/implementations/digests/liblegacy-lib-wp_prov.o", "providers/implementations/kdfs/liblegacy-lib-pbkdf1.o", + "providers/implementations/kdfs/liblegacy-lib-pvkkdf.o", "providers/liblegacy-lib-prov_running.o" ], - "ssl/libdefault-lib-s3_cbc.o" => [ - "ssl/s3_cbc.c" - ], - "ssl/libfips-lib-s3_cbc.o" => [ - "ssl/s3_cbc.c" + "providers/libtemplate.a" => [ + "providers/implementations/kem/libtemplate-lib-template_kem.o", + "providers/implementations/keymgmt/libtemplate-lib-template_kmgmt.o" ], "ssl/libssl-lib-bio_ssl.o" => [ "ssl/bio_ssl.c" @@ -25627,6 +29936,9 @@ our %unified_info = ( "ssl/libssl-lib-pqueue.o" => [ "ssl/pqueue.c" ], + "ssl/libssl-lib-priority_queue.o" => [ + "ssl/priority_queue.c" + ], "ssl/libssl-lib-s3_enc.o" => [ "ssl/s3_enc.c" ], @@ -25642,15 +29954,15 @@ our %unified_info = ( "ssl/libssl-lib-ssl_cert.o" => [ "ssl/ssl_cert.c" ], + "ssl/libssl-lib-ssl_cert_comp.o" => [ + "ssl/ssl_cert_comp.c" + ], "ssl/libssl-lib-ssl_ciph.o" => [ "ssl/ssl_ciph.c" ], "ssl/libssl-lib-ssl_conf.o" => [ "ssl/ssl_conf.c" ], - "ssl/libssl-lib-ssl_err.o" => [ - "ssl/ssl_err.c" - ], "ssl/libssl-lib-ssl_err_legacy.o" => [ "ssl/ssl_err_legacy.c" ], @@ -25699,11 +30011,131 @@ our %unified_info = ( "ssl/libssl-lib-tls_srp.o" => [ "ssl/tls_srp.c" ], - "ssl/record/libcommon-lib-tls_pad.o" => [ - "ssl/record/tls_pad.c" + "ssl/quic/libssl-lib-cc_newreno.o" => [ + "ssl/quic/cc_newreno.c" + ], + "ssl/quic/libssl-lib-json_enc.o" => [ + "ssl/quic/json_enc.c" + ], + "ssl/quic/libssl-lib-qlog.o" => [ + "ssl/quic/qlog.c" + ], + "ssl/quic/libssl-lib-qlog_event_helpers.o" => [ + "ssl/quic/qlog_event_helpers.c" + ], + "ssl/quic/libssl-lib-quic_ackm.o" => [ + "ssl/quic/quic_ackm.c" + ], + "ssl/quic/libssl-lib-quic_cfq.o" => [ + "ssl/quic/quic_cfq.c" + ], + "ssl/quic/libssl-lib-quic_channel.o" => [ + "ssl/quic/quic_channel.c" + ], + "ssl/quic/libssl-lib-quic_demux.o" => [ + "ssl/quic/quic_demux.c" + ], + "ssl/quic/libssl-lib-quic_engine.o" => [ + "ssl/quic/quic_engine.c" + ], + "ssl/quic/libssl-lib-quic_fc.o" => [ + "ssl/quic/quic_fc.c" + ], + "ssl/quic/libssl-lib-quic_fifd.o" => [ + "ssl/quic/quic_fifd.c" + ], + "ssl/quic/libssl-lib-quic_impl.o" => [ + "ssl/quic/quic_impl.c" + ], + "ssl/quic/libssl-lib-quic_lcidm.o" => [ + "ssl/quic/quic_lcidm.c" + ], + "ssl/quic/libssl-lib-quic_method.o" => [ + "ssl/quic/quic_method.c" + ], + "ssl/quic/libssl-lib-quic_obj.o" => [ + "ssl/quic/quic_obj.c" + ], + "ssl/quic/libssl-lib-quic_port.o" => [ + "ssl/quic/quic_port.c" + ], + "ssl/quic/libssl-lib-quic_rcidm.o" => [ + "ssl/quic/quic_rcidm.c" + ], + "ssl/quic/libssl-lib-quic_reactor.o" => [ + "ssl/quic/quic_reactor.c" + ], + "ssl/quic/libssl-lib-quic_reactor_wait_ctx.o" => [ + "ssl/quic/quic_reactor_wait_ctx.c" + ], + "ssl/quic/libssl-lib-quic_record_rx.o" => [ + "ssl/quic/quic_record_rx.c" + ], + "ssl/quic/libssl-lib-quic_record_shared.o" => [ + "ssl/quic/quic_record_shared.c" + ], + "ssl/quic/libssl-lib-quic_record_tx.o" => [ + "ssl/quic/quic_record_tx.c" + ], + "ssl/quic/libssl-lib-quic_record_util.o" => [ + "ssl/quic/quic_record_util.c" ], - "ssl/record/libssl-lib-dtls1_bitmap.o" => [ - "ssl/record/dtls1_bitmap.c" + "ssl/quic/libssl-lib-quic_rstream.o" => [ + "ssl/quic/quic_rstream.c" + ], + "ssl/quic/libssl-lib-quic_rx_depack.o" => [ + "ssl/quic/quic_rx_depack.c" + ], + "ssl/quic/libssl-lib-quic_sf_list.o" => [ + "ssl/quic/quic_sf_list.c" + ], + "ssl/quic/libssl-lib-quic_srt_gen.o" => [ + "ssl/quic/quic_srt_gen.c" + ], + "ssl/quic/libssl-lib-quic_srtm.o" => [ + "ssl/quic/quic_srtm.c" + ], + "ssl/quic/libssl-lib-quic_sstream.o" => [ + "ssl/quic/quic_sstream.c" + ], + "ssl/quic/libssl-lib-quic_statm.o" => [ + "ssl/quic/quic_statm.c" + ], + "ssl/quic/libssl-lib-quic_stream_map.o" => [ + "ssl/quic/quic_stream_map.c" + ], + "ssl/quic/libssl-lib-quic_thread_assist.o" => [ + "ssl/quic/quic_thread_assist.c" + ], + "ssl/quic/libssl-lib-quic_tls.o" => [ + "ssl/quic/quic_tls.c" + ], + "ssl/quic/libssl-lib-quic_tls_api.o" => [ + "ssl/quic/quic_tls_api.c" + ], + "ssl/quic/libssl-lib-quic_trace.o" => [ + "ssl/quic/quic_trace.c" + ], + "ssl/quic/libssl-lib-quic_tserver.o" => [ + "ssl/quic/quic_tserver.c" + ], + "ssl/quic/libssl-lib-quic_txp.o" => [ + "ssl/quic/quic_txp.c" + ], + "ssl/quic/libssl-lib-quic_txpim.o" => [ + "ssl/quic/quic_txpim.c" + ], + "ssl/quic/libssl-lib-quic_types.o" => [ + "ssl/quic/quic_types.c" + ], + "ssl/quic/libssl-lib-quic_wire.o" => [ + "ssl/quic/quic_wire.c" + ], + "ssl/quic/libssl-lib-quic_wire_pkt.o" => [ + "ssl/quic/quic_wire_pkt.c" + ], + "ssl/quic/libssl-lib-uint_set.o" => [ + "ssl/quic/uint_set.c" ], "ssl/record/libssl-lib-rec_layer_d1.o" => [ "ssl/record/rec_layer_d1.c" @@ -25711,14 +30143,44 @@ our %unified_info = ( "ssl/record/libssl-lib-rec_layer_s3.o" => [ "ssl/record/rec_layer_s3.c" ], - "ssl/record/libssl-lib-ssl3_buffer.o" => [ - "ssl/record/ssl3_buffer.c" + "ssl/record/methods/libcommon-lib-tls_pad.o" => [ + "ssl/record/methods/tls_pad.c" + ], + "ssl/record/methods/libdefault-lib-ssl3_cbc.o" => [ + "ssl/record/methods/ssl3_cbc.c" + ], + "ssl/record/methods/libfips-lib-ssl3_cbc.o" => [ + "ssl/record/methods/ssl3_cbc.c" + ], + "ssl/record/methods/libssl-lib-dtls_meth.o" => [ + "ssl/record/methods/dtls_meth.c" + ], + "ssl/record/methods/libssl-lib-ssl3_meth.o" => [ + "ssl/record/methods/ssl3_meth.c" + ], + "ssl/record/methods/libssl-lib-tls13_meth.o" => [ + "ssl/record/methods/tls13_meth.c" + ], + "ssl/record/methods/libssl-lib-tls1_meth.o" => [ + "ssl/record/methods/tls1_meth.c" ], - "ssl/record/libssl-lib-ssl3_record.o" => [ - "ssl/record/ssl3_record.c" + "ssl/record/methods/libssl-lib-tls_common.o" => [ + "ssl/record/methods/tls_common.c" ], - "ssl/record/libssl-lib-ssl3_record_tls13.o" => [ - "ssl/record/ssl3_record_tls13.c" + "ssl/record/methods/libssl-lib-tls_multib.o" => [ + "ssl/record/methods/tls_multib.c" + ], + "ssl/record/methods/libssl-lib-tlsany_meth.o" => [ + "ssl/record/methods/tlsany_meth.c" + ], + "ssl/rio/libssl-lib-poll_builder.o" => [ + "ssl/rio/poll_builder.c" + ], + "ssl/rio/libssl-lib-poll_immediate.o" => [ + "ssl/rio/poll_immediate.c" + ], + "ssl/rio/libssl-lib-rio_notifier.o" => [ + "ssl/rio/rio_notifier.c" ], "ssl/statem/libssl-lib-extensions.o" => [ "ssl/statem/extensions.c" @@ -25814,6 +30276,8 @@ our %unified_info = ( "test/asn1_string_table_test.c" ], "test/asn1_time_test" => [ + "crypto/asn1/asn1_time_test-bin-a_time.o", + "crypto/asn1_time_test-bin-ctype.o", "test/asn1_time_test-bin-asn1_time_test.o" ], "test/asn1_time_test-bin-asn1_time_test.o" => [ @@ -25844,6 +30308,18 @@ our %unified_info = ( "test/bftest-bin-bftest.o" => [ "test/bftest.c" ], + "test/bio_addr_test" => [ + "test/bio_addr_test-bin-bio_addr_test.o" + ], + "test/bio_addr_test-bin-bio_addr_test.o" => [ + "test/bio_addr_test.c" + ], + "test/bio_base64_test" => [ + "test/bio_base64_test-bin-bio_base64_test.o" + ], + "test/bio_base64_test-bin-bio_base64_test.o" => [ + "test/bio_base64_test.c" + ], "test/bio_callback_test" => [ "test/bio_callback_test-bin-bio_callback_test.o" ], @@ -25856,6 +30332,12 @@ our %unified_info = ( "test/bio_core_test-bin-bio_core_test.o" => [ "test/bio_core_test.c" ], + "test/bio_dgram_test" => [ + "test/bio_dgram_test-bin-bio_dgram_test.o" + ], + "test/bio_dgram_test-bin-bio_dgram_test.o" => [ + "test/bio_dgram_test.c" + ], "test/bio_enc_test" => [ "test/bio_enc_test-bin-bio_enc_test.o" ], @@ -25868,6 +30350,12 @@ our %unified_info = ( "test/bio_memleak_test-bin-bio_memleak_test.o" => [ "test/bio_memleak_test.c" ], + "test/bio_meth_test" => [ + "test/bio_meth_test-bin-bio_meth_test.o" + ], + "test/bio_meth_test-bin-bio_meth_test.o" => [ + "test/bio_meth_test.c" + ], "test/bio_prefix_text" => [ "test/bio_prefix_text-bin-bio_prefix_text.o" ], @@ -25886,6 +30374,12 @@ our %unified_info = ( "test/bio_readbuffer_test-bin-bio_readbuffer_test.o" => [ "test/bio_readbuffer_test.c" ], + "test/bio_tfo_test" => [ + "test/bio_tfo_test-bin-bio_tfo_test.o" + ], + "test/bio_tfo_test-bin-bio_tfo_test.o" => [ + "test/bio_tfo_test.c" + ], "test/bioprinttest" => [ "test/bioprinttest-bin-bioprinttest.o" ], @@ -25904,6 +30398,12 @@ our %unified_info = ( "test/bntest-bin-bntest.o" => [ "test/bntest.c" ], + "test/build_wincrypt_test" => [ + "test/build_wincrypt_test-bin-build_wincrypt_test.o" + ], + "test/build_wincrypt_test-bin-build_wincrypt_test.o" => [ + "test/build_wincrypt_test.c" + ], "test/buildtest_c_aes" => [ "test/buildtest_c_aes-bin-buildtest_aes.o" ], @@ -25934,6 +30434,12 @@ our %unified_info = ( "test/buildtest_c_buffer-bin-buildtest_buffer.o" => [ "test/buildtest_buffer.c" ], + "test/buildtest_c_byteorder" => [ + "test/buildtest_c_byteorder-bin-buildtest_byteorder.o" + ], + "test/buildtest_c_byteorder-bin-buildtest_byteorder.o" => [ + "test/buildtest_byteorder.c" + ], "test/buildtest_c_camellia" => [ "test/buildtest_c_camellia-bin-buildtest_camellia.o" ], @@ -25982,12 +30488,6 @@ our %unified_info = ( "test/buildtest_c_core_dispatch-bin-buildtest_core_dispatch.o" => [ "test/buildtest_core_dispatch.c" ], - "test/buildtest_c_core_names" => [ - "test/buildtest_c_core_names-bin-buildtest_core_names.o" - ], - "test/buildtest_c_core_names-bin-buildtest_core_names.o" => [ - "test/buildtest_core_names.c" - ], "test/buildtest_c_core_object" => [ "test/buildtest_c_core_object-bin-buildtest_core_object.o" ], @@ -26036,6 +30536,12 @@ our %unified_info = ( "test/buildtest_c_e_os2-bin-buildtest_e_os2.o" => [ "test/buildtest_e_os2.c" ], + "test/buildtest_c_e_ostime" => [ + "test/buildtest_c_e_ostime-bin-buildtest_e_ostime.o" + ], + "test/buildtest_c_e_ostime-bin-buildtest_e_ostime.o" => [ + "test/buildtest_e_ostime.c" + ], "test/buildtest_c_ebcdic" => [ "test/buildtest_c_ebcdic-bin-buildtest_ebcdic.o" ], @@ -26090,6 +30596,12 @@ our %unified_info = ( "test/buildtest_c_hmac-bin-buildtest_hmac.o" => [ "test/buildtest_hmac.c" ], + "test/buildtest_c_hpke" => [ + "test/buildtest_c_hpke-bin-buildtest_hpke.o" + ], + "test/buildtest_c_hpke-bin-buildtest_hpke.o" => [ + "test/buildtest_hpke.c" + ], "test/buildtest_c_http" => [ "test/buildtest_c_http-bin-buildtest_http.o" ], @@ -26102,6 +30614,12 @@ our %unified_info = ( "test/buildtest_c_idea-bin-buildtest_idea.o" => [ "test/buildtest_idea.c" ], + "test/buildtest_c_indicator" => [ + "test/buildtest_c_indicator-bin-buildtest_indicator.o" + ], + "test/buildtest_c_indicator-bin-buildtest_indicator.o" => [ + "test/buildtest_indicator.c" + ], "test/buildtest_c_kdf" => [ "test/buildtest_c_kdf-bin-buildtest_kdf.o" ], @@ -26132,6 +30650,12 @@ our %unified_info = ( "test/buildtest_c_mdc2-bin-buildtest_mdc2.o" => [ "test/buildtest_mdc2.c" ], + "test/buildtest_c_ml_kem" => [ + "test/buildtest_c_ml_kem-bin-buildtest_ml_kem.o" + ], + "test/buildtest_c_ml_kem-bin-buildtest_ml_kem.o" => [ + "test/buildtest_ml_kem.c" + ], "test/buildtest_c_modes" => [ "test/buildtest_c_modes-bin-buildtest_modes.o" ], @@ -26192,6 +30716,12 @@ our %unified_info = ( "test/buildtest_c_provider-bin-buildtest_provider.o" => [ "test/buildtest_provider.c" ], + "test/buildtest_c_quic" => [ + "test/buildtest_c_quic-bin-buildtest_quic.o" + ], + "test/buildtest_c_quic-bin-buildtest_quic.o" => [ + "test/buildtest_quic.c" + ], "test/buildtest_c_rand" => [ "test/buildtest_c_rand-bin-buildtest_rand.o" ], @@ -26276,6 +30806,12 @@ our %unified_info = ( "test/buildtest_c_symhacks-bin-buildtest_symhacks.o" => [ "test/buildtest_symhacks.c" ], + "test/buildtest_c_thread" => [ + "test/buildtest_c_thread-bin-buildtest_thread.o" + ], + "test/buildtest_c_thread-bin-buildtest_thread.o" => [ + "test/buildtest_thread.c" + ], "test/buildtest_c_tls1" => [ "test/buildtest_c_tls1-bin-buildtest_tls1.o" ], @@ -26306,6 +30842,29 @@ our %unified_info = ( "test/buildtest_c_whrlpool-bin-buildtest_whrlpool.o" => [ "test/buildtest_whrlpool.c" ], + "test/byteorder_test" => [ + "test/byteorder_test-bin-byteorder_test.o" + ], + "test/byteorder_test-bin-byteorder_test.o" => [ + "test/byteorder_test.c" + ], + "test/ca_internals_test" => [ + "apps/ca_internals_test-bin-ca.o", + "apps/lib/ca_internals_test-bin-app_libctx.o", + "apps/lib/ca_internals_test-bin-app_provider.o", + "apps/lib/ca_internals_test-bin-app_rand.o", + "apps/lib/ca_internals_test-bin-app_x509.o", + "apps/lib/ca_internals_test-bin-apps.o", + "apps/lib/ca_internals_test-bin-apps_ui.o", + "apps/lib/ca_internals_test-bin-engine.o", + "apps/lib/ca_internals_test-bin-fmt.o", + "crypto/asn1/ca_internals_test-bin-a_time.o", + "crypto/ca_internals_test-bin-ctype.o", + "test/ca_internals_test-bin-ca_internals_test.o" + ], + "test/ca_internals_test-bin-ca_internals_test.o" => [ + "test/ca_internals_test.c" + ], "test/casttest" => [ "test/casttest-bin-casttest.o" ], @@ -26484,6 +31043,12 @@ our %unified_info = ( "test/danetest-bin-danetest.o" => [ "test/danetest.c" ], + "test/decoder_propq_test" => [ + "test/decoder_propq_test-bin-decoder_propq_test.o" + ], + "test/decoder_propq_test-bin-decoder_propq_test.o" => [ + "test/decoder_propq_test.c" + ], "test/defltfips_test" => [ "test/defltfips_test-bin-defltfips_test.o" ], @@ -26565,6 +31130,7 @@ our %unified_info = ( "test/ectest.c" ], "test/endecode_test" => [ + "providers/endecode_test-bin-legacyprov.o", "test/endecode_test-bin-endecode_test.o", "test/helpers/endecode_test-bin-predefined_dhparams.o" ], @@ -26597,17 +31163,29 @@ our %unified_info = ( ], "test/evp_extra_test" => [ "providers/evp_extra_test-bin-legacyprov.o", - "test/evp_extra_test-bin-evp_extra_test.o" + "test/evp_extra_test-bin-evp_extra_test.o", + "test/evp_extra_test-bin-fake_pipelineprov.o", + "test/evp_extra_test-bin-fake_rsaprov.o" ], "test/evp_extra_test-bin-evp_extra_test.o" => [ "test/evp_extra_test.c" ], + "test/evp_extra_test-bin-fake_pipelineprov.o" => [ + "test/fake_pipelineprov.c" + ], + "test/evp_extra_test-bin-fake_rsaprov.o" => [ + "test/fake_rsaprov.c" + ], "test/evp_extra_test2" => [ - "test/evp_extra_test2-bin-evp_extra_test2.o" + "test/evp_extra_test2-bin-evp_extra_test2.o", + "test/evp_extra_test2-bin-tls-provider.o" ], "test/evp_extra_test2-bin-evp_extra_test2.o" => [ "test/evp_extra_test2.c" ], + "test/evp_extra_test2-bin-tls-provider.o" => [ + "test/tls-provider.c" + ], "test/evp_fetch_prov_test" => [ "test/evp_fetch_prov_test-bin-evp_fetch_prov_test.o" ], @@ -26632,6 +31210,12 @@ our %unified_info = ( "test/evp_pkey_ctx_new_from_name-bin-evp_pkey_ctx_new_from_name.o" => [ "test/evp_pkey_ctx_new_from_name.c" ], + "test/evp_pkey_dhkem_test" => [ + "test/evp_pkey_dhkem_test-bin-evp_pkey_dhkem_test.o" + ], + "test/evp_pkey_dhkem_test-bin-evp_pkey_dhkem_test.o" => [ + "test/evp_pkey_dhkem_test.c" + ], "test/evp_pkey_dparams_test" => [ "test/evp_pkey_dparams_test-bin-evp_pkey_dparams_test.o" ], @@ -26644,12 +31228,28 @@ our %unified_info = ( "test/evp_pkey_provided_test-bin-evp_pkey_provided_test.o" => [ "test/evp_pkey_provided_test.c" ], + "test/evp_skey_test" => [ + "test/evp_skey_test-bin-evp_skey_test.o", + "test/evp_skey_test-bin-fake_cipherprov.o" + ], + "test/evp_skey_test-bin-evp_skey_test.o" => [ + "test/evp_skey_test.c" + ], + "test/evp_skey_test-bin-fake_cipherprov.o" => [ + "test/fake_cipherprov.c" + ], "test/evp_test" => [ "test/evp_test-bin-evp_test.o" ], "test/evp_test-bin-evp_test.o" => [ "test/evp_test.c" ], + "test/evp_xof_test" => [ + "test/evp_xof_test-bin-evp_xof_test.o" + ], + "test/evp_xof_test-bin-evp_xof_test.o" => [ + "test/evp_xof_test.c" + ], "test/exdatatest" => [ "test/exdatatest-bin-exdatatest.o" ], @@ -26735,15 +31335,108 @@ our %unified_info = ( "test/helpers/fatalerrtest-bin-ssltestlib.o" => [ "test/helpers/ssltestlib.c" ], + "test/helpers/json_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/json_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/json_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/json_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/pkcs12_api_test-bin-pkcs12.o" => [ + "test/helpers/pkcs12.c" + ], "test/helpers/pkcs12_format_test-bin-pkcs12.o" => [ "test/helpers/pkcs12.c" ], + "test/helpers/quic_multistream_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quic_multistream_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quic_multistream_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quic_multistream_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quic_newcid_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quic_newcid_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quic_newcid_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quic_newcid_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quic_radix_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quic_radix_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quic_radix_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quic_radix_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quic_srt_gen_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quic_srt_gen_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quic_srt_gen_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quic_srt_gen_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quicapitest-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quicapitest-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quicapitest-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quicapitest-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quicfaultstest-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quicfaultstest-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quicfaultstest-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quicfaultstest-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], "test/helpers/recordlentest-bin-ssltestlib.o" => [ "test/helpers/ssltestlib.c" ], + "test/helpers/rpktest-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], "test/helpers/servername_test-bin-ssltestlib.o" => [ "test/helpers/ssltestlib.c" ], + "test/helpers/ssl_handshake_rtt_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], "test/helpers/ssl_old_test-bin-predefined_dhparams.o" => [ "test/helpers/predefined_dhparams.c" ], @@ -26771,6 +31464,9 @@ our %unified_info = ( "test/helpers/tls13ccstest-bin-ssltestlib.o" => [ "test/helpers/ssltestlib.c" ], + "test/helpers/tls13groupselection_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], "test/hexstr_test" => [ "test/hexstr_test-bin-hexstr_test.o" ], @@ -26783,6 +31479,12 @@ our %unified_info = ( "test/hmactest-bin-hmactest.o" => [ "test/hmactest.c" ], + "test/hpke_test" => [ + "test/hpke_test-bin-hpke_test.o" + ], + "test/hpke_test-bin-hpke_test.o" => [ + "test/hpke_test.c" + ], "test/http_test" => [ "test/http_test-bin-http_test.o" ], @@ -26801,6 +31503,16 @@ our %unified_info = ( "test/igetest-bin-igetest.o" => [ "test/igetest.c" ], + "test/json_test" => [ + "test/helpers/json_test-bin-noisydgrambio.o", + "test/helpers/json_test-bin-pktsplitbio.o", + "test/helpers/json_test-bin-quictestlib.o", + "test/helpers/json_test-bin-ssltestlib.o", + "test/json_test-bin-json_test.o" + ], + "test/json_test-bin-json_test.o" => [ + "test/json_test.c" + ], "test/keymgmt_internal_test" => [ "test/keymgmt_internal_test-bin-keymgmt_internal_test.o" ], @@ -26822,6 +31534,7 @@ our %unified_info = ( "test/testutil/libtestutil-lib-driver.o", "test/testutil/libtestutil-lib-fake_random.o", "test/testutil/libtestutil-lib-format_output.o", + "test/testutil/libtestutil-lib-helper.o", "test/testutil/libtestutil-lib-load.o", "test/testutil/libtestutil-lib-main.o", "test/testutil/libtestutil-lib-options.o", @@ -26834,6 +31547,12 @@ our %unified_info = ( "test/testutil/libtestutil-lib-tests.o", "test/testutil/libtestutil-lib-testutil_init.o" ], + "test/list_test" => [ + "test/list_test-bin-list_test.o" + ], + "test/list_test-bin-list_test.o" => [ + "test/list_test.c" + ], "test/localetest" => [ "test/localetest-bin-localetest.o" ], @@ -26852,12 +31571,36 @@ our %unified_info = ( "test/mdc2test-bin-mdc2test.o" => [ "test/mdc2test.c" ], + "test/membio_test" => [ + "test/membio_test-bin-membio_test.o" + ], + "test/membio_test-bin-membio_test.o" => [ + "test/membio_test.c" + ], "test/memleaktest" => [ "test/memleaktest-bin-memleaktest.o" ], "test/memleaktest-bin-memleaktest.o" => [ "test/memleaktest.c" ], + "test/ml_dsa_test" => [ + "test/ml_dsa_test-bin-ml_dsa_test.o" + ], + "test/ml_dsa_test-bin-ml_dsa_test.o" => [ + "test/ml_dsa_test.c" + ], + "test/ml_kem_evp_extra_test" => [ + "test/ml_kem_evp_extra_test-bin-ml_kem_evp_extra_test.o" + ], + "test/ml_kem_evp_extra_test-bin-ml_kem_evp_extra_test.o" => [ + "test/ml_kem_evp_extra_test.c" + ], + "test/ml_kem_internal_test" => [ + "test/ml_kem_internal_test-bin-ml_kem_internal_test.o" + ], + "test/ml_kem_internal_test-bin-ml_kem_internal_test.o" => [ + "test/ml_kem_internal_test.c" + ], "test/modes_internal_test" => [ "test/modes_internal_test-bin-modes_internal_test.o" ], @@ -26903,11 +31646,18 @@ our %unified_info = ( "test/p_test.c" ], "test/packettest" => [ + "crypto/packettest-bin-quic_vlint.o", "test/packettest-bin-packettest.o" ], "test/packettest-bin-packettest.o" => [ "test/packettest.c" ], + "test/pairwise_fail_test" => [ + "test/pairwise_fail_test-bin-pairwise_fail_test.o" + ], + "test/pairwise_fail_test-bin-pairwise_fail_test.o" => [ + "test/pairwise_fail_test.c" + ], "test/param_build_test" => [ "test/param_build_test-bin-param_build_test.o" ], @@ -26956,6 +31706,13 @@ our %unified_info = ( "test/pemtest-bin-pemtest.o" => [ "test/pemtest.c" ], + "test/pkcs12_api_test" => [ + "test/helpers/pkcs12_api_test-bin-pkcs12.o", + "test/pkcs12_api_test-bin-pkcs12_api_test.o" + ], + "test/pkcs12_api_test-bin-pkcs12_api_test.o" => [ + "test/pkcs12_api_test.c" + ], "test/pkcs12_format_test" => [ "test/helpers/pkcs12_format_test-bin-pkcs12.o", "test/pkcs12_format_test-bin-pkcs12_format_test.o" @@ -26987,6 +31744,12 @@ our %unified_info = ( "test/poly1305_internal_test-bin-poly1305_internal_test.o" => [ "test/poly1305_internal_test.c" ], + "test/priority_queue_test" => [ + "test/priority_queue_test-bin-priority_queue_test.o" + ], + "test/priority_queue_test-bin-priority_queue_test.o" => [ + "test/priority_queue_test.c" + ], "test/property_test" => [ "test/property_test-bin-property_test.o" ], @@ -27005,6 +31768,12 @@ our %unified_info = ( "test/provfetchtest-bin-provfetchtest.o" => [ "test/provfetchtest.c" ], + "test/provider_default_search_path_test" => [ + "test/provider_default_search_path_test-bin-provider_default_search_path_test.o" + ], + "test/provider_default_search_path_test-bin-provider_default_search_path_test.o" => [ + "test/provider_default_search_path_test.c" + ], "test/provider_fallback_test" => [ "test/provider_fallback_test-bin-provider_fallback_test.o" ], @@ -27053,6 +31822,174 @@ our %unified_info = ( "test/punycode_test-bin-punycode_test.o" => [ "test/punycode_test.c" ], + "test/quic_ackm_test" => [ + "test/quic_ackm_test-bin-cc_dummy.o", + "test/quic_ackm_test-bin-quic_ackm_test.o" + ], + "test/quic_ackm_test-bin-cc_dummy.o" => [ + "test/cc_dummy.c" + ], + "test/quic_ackm_test-bin-quic_ackm_test.o" => [ + "test/quic_ackm_test.c" + ], + "test/quic_cc_test" => [ + "test/quic_cc_test-bin-quic_cc_test.o" + ], + "test/quic_cc_test-bin-quic_cc_test.o" => [ + "test/quic_cc_test.c" + ], + "test/quic_cfq_test" => [ + "test/quic_cfq_test-bin-quic_cfq_test.o" + ], + "test/quic_cfq_test-bin-quic_cfq_test.o" => [ + "test/quic_cfq_test.c" + ], + "test/quic_client_test" => [ + "test/quic_client_test-bin-quic_client_test.o" + ], + "test/quic_client_test-bin-quic_client_test.o" => [ + "test/quic_client_test.c" + ], + "test/quic_fc_test" => [ + "test/quic_fc_test-bin-quic_fc_test.o" + ], + "test/quic_fc_test-bin-quic_fc_test.o" => [ + "test/quic_fc_test.c" + ], + "test/quic_fifd_test" => [ + "test/quic_fifd_test-bin-cc_dummy.o", + "test/quic_fifd_test-bin-quic_fifd_test.o" + ], + "test/quic_fifd_test-bin-cc_dummy.o" => [ + "test/cc_dummy.c" + ], + "test/quic_fifd_test-bin-quic_fifd_test.o" => [ + "test/quic_fifd_test.c" + ], + "test/quic_lcidm_test" => [ + "test/quic_lcidm_test-bin-quic_lcidm_test.o" + ], + "test/quic_lcidm_test-bin-quic_lcidm_test.o" => [ + "test/quic_lcidm_test.c" + ], + "test/quic_multistream_test" => [ + "test/helpers/quic_multistream_test-bin-noisydgrambio.o", + "test/helpers/quic_multistream_test-bin-pktsplitbio.o", + "test/helpers/quic_multistream_test-bin-quictestlib.o", + "test/helpers/quic_multistream_test-bin-ssltestlib.o", + "test/quic_multistream_test-bin-quic_multistream_test.o" + ], + "test/quic_multistream_test-bin-quic_multistream_test.o" => [ + "test/quic_multistream_test.c" + ], + "test/quic_newcid_test" => [ + "test/helpers/quic_newcid_test-bin-noisydgrambio.o", + "test/helpers/quic_newcid_test-bin-pktsplitbio.o", + "test/helpers/quic_newcid_test-bin-quictestlib.o", + "test/helpers/quic_newcid_test-bin-ssltestlib.o", + "test/quic_newcid_test-bin-quic_newcid_test.o" + ], + "test/quic_newcid_test-bin-quic_newcid_test.o" => [ + "test/quic_newcid_test.c" + ], + "test/quic_qlog_test" => [ + "test/quic_qlog_test-bin-quic_qlog_test.o" + ], + "test/quic_qlog_test-bin-quic_qlog_test.o" => [ + "test/quic_qlog_test.c" + ], + "test/quic_radix_test" => [ + "test/helpers/quic_radix_test-bin-noisydgrambio.o", + "test/helpers/quic_radix_test-bin-pktsplitbio.o", + "test/helpers/quic_radix_test-bin-quictestlib.o", + "test/helpers/quic_radix_test-bin-ssltestlib.o", + "test/radix/quic_radix_test-bin-quic_radix.o" + ], + "test/quic_rcidm_test" => [ + "test/quic_rcidm_test-bin-quic_rcidm_test.o" + ], + "test/quic_rcidm_test-bin-quic_rcidm_test.o" => [ + "test/quic_rcidm_test.c" + ], + "test/quic_record_test" => [ + "test/quic_record_test-bin-quic_record_test.o" + ], + "test/quic_record_test-bin-quic_record_test.o" => [ + "test/quic_record_test.c" + ], + "test/quic_srt_gen_test" => [ + "test/helpers/quic_srt_gen_test-bin-noisydgrambio.o", + "test/helpers/quic_srt_gen_test-bin-pktsplitbio.o", + "test/helpers/quic_srt_gen_test-bin-quictestlib.o", + "test/helpers/quic_srt_gen_test-bin-ssltestlib.o", + "test/quic_srt_gen_test-bin-quic_srt_gen_test.o" + ], + "test/quic_srt_gen_test-bin-quic_srt_gen_test.o" => [ + "test/quic_srt_gen_test.c" + ], + "test/quic_srtm_test" => [ + "test/quic_srtm_test-bin-quic_srtm_test.o" + ], + "test/quic_srtm_test-bin-quic_srtm_test.o" => [ + "test/quic_srtm_test.c" + ], + "test/quic_stream_test" => [ + "test/quic_stream_test-bin-quic_stream_test.o" + ], + "test/quic_stream_test-bin-quic_stream_test.o" => [ + "test/quic_stream_test.c" + ], + "test/quic_tserver_test" => [ + "test/quic_tserver_test-bin-quic_tserver_test.o" + ], + "test/quic_tserver_test-bin-quic_tserver_test.o" => [ + "test/quic_tserver_test.c" + ], + "test/quic_txp_test" => [ + "test/quic_txp_test-bin-cc_dummy.o", + "test/quic_txp_test-bin-quic_txp_test.o" + ], + "test/quic_txp_test-bin-cc_dummy.o" => [ + "test/cc_dummy.c" + ], + "test/quic_txp_test-bin-quic_txp_test.o" => [ + "test/quic_txp_test.c" + ], + "test/quic_txpim_test" => [ + "test/quic_txpim_test-bin-quic_txpim_test.o" + ], + "test/quic_txpim_test-bin-quic_txpim_test.o" => [ + "test/quic_txpim_test.c" + ], + "test/quic_wire_test" => [ + "test/quic_wire_test-bin-quic_wire_test.o" + ], + "test/quic_wire_test-bin-quic_wire_test.o" => [ + "test/quic_wire_test.c" + ], + "test/quicapitest" => [ + "test/helpers/quicapitest-bin-noisydgrambio.o", + "test/helpers/quicapitest-bin-pktsplitbio.o", + "test/helpers/quicapitest-bin-quictestlib.o", + "test/helpers/quicapitest-bin-ssltestlib.o", + "test/quicapitest-bin-quicapitest.o" + ], + "test/quicapitest-bin-quicapitest.o" => [ + "test/quicapitest.c" + ], + "test/quicfaultstest" => [ + "test/helpers/quicfaultstest-bin-noisydgrambio.o", + "test/helpers/quicfaultstest-bin-pktsplitbio.o", + "test/helpers/quicfaultstest-bin-quictestlib.o", + "test/helpers/quicfaultstest-bin-ssltestlib.o", + "test/quicfaultstest-bin-quicfaultstest.o" + ], + "test/quicfaultstest-bin-quicfaultstest.o" => [ + "test/quicfaultstest.c" + ], + "test/radix/quic_radix_test-bin-quic_radix.o" => [ + "test/radix/quic_radix.c" + ], "test/rand_status_test" => [ "test/rand_status_test-bin-rand_status_test.o" ], @@ -27083,11 +32020,11 @@ our %unified_info = ( "test/rc5test-bin-rc5test.o" => [ "test/rc5test.c" ], - "test/rdrand_sanitytest" => [ - "test/rdrand_sanitytest-bin-rdrand_sanitytest.o" + "test/rdcpu_sanitytest" => [ + "test/rdcpu_sanitytest-bin-rdcpu_sanitytest.o" ], - "test/rdrand_sanitytest-bin-rdrand_sanitytest.o" => [ - "test/rdrand_sanitytest.c" + "test/rdcpu_sanitytest-bin-rdcpu_sanitytest.o" => [ + "test/rdcpu_sanitytest.c" ], "test/recordlentest" => [ "test/helpers/recordlentest-bin-ssltestlib.o", @@ -27096,6 +32033,13 @@ our %unified_info = ( "test/recordlentest-bin-recordlentest.o" => [ "test/recordlentest.c" ], + "test/rpktest" => [ + "test/helpers/rpktest-bin-ssltestlib.o", + "test/rpktest-bin-rpktest.o" + ], + "test/rpktest-bin-rpktest.o" => [ + "test/rpktest.c" + ], "test/rsa_complex" => [ "test/rsa_complex-bin-rsa_complex.o" ], @@ -27120,6 +32064,18 @@ our %unified_info = ( "test/rsa_test-bin-rsa_test.o" => [ "test/rsa_test.c" ], + "test/rsa_x931_test" => [ + "test/rsa_x931_test-bin-rsa_x931_test.o" + ], + "test/rsa_x931_test-bin-rsa_x931_test.o" => [ + "test/rsa_x931_test.c" + ], + "test/safe_math_test" => [ + "test/safe_math_test-bin-safe_math_test.o" + ], + "test/safe_math_test-bin-safe_math_test.o" => [ + "test/safe_math_test.c" + ], "test/sanitytest" => [ "test/sanitytest-bin-sanitytest.o" ], @@ -27151,6 +32107,12 @@ our %unified_info = ( "test/siphash_internal_test-bin-siphash_internal_test.o" => [ "test/siphash_internal_test.c" ], + "test/slh_dsa_test" => [ + "test/slh_dsa_test-bin-slh_dsa_test.o" + ], + "test/slh_dsa_test-bin-slh_dsa_test.o" => [ + "test/slh_dsa_test.c" + ], "test/sm2_internal_test" => [ "test/sm2_internal_test-bin-sm2_internal_test.o" ], @@ -27193,6 +32155,13 @@ our %unified_info = ( "test/ssl_ctx_test-bin-ssl_ctx_test.o" => [ "test/ssl_ctx_test.c" ], + "test/ssl_handshake_rtt_test" => [ + "test/helpers/ssl_handshake_rtt_test-bin-ssltestlib.o", + "test/ssl_handshake_rtt_test-bin-ssl_handshake_rtt_test.o" + ], + "test/ssl_handshake_rtt_test-bin-ssl_handshake_rtt_test.o" => [ + "test/ssl_handshake_rtt_test.c" + ], "test/ssl_old_test" => [ "test/helpers/ssl_old_test-bin-predefined_dhparams.o", "test/ssl_old_test-bin-ssl_old_test.o" @@ -27251,6 +32220,12 @@ our %unified_info = ( "test/stack_test-bin-stack_test.o" => [ "test/stack_test.c" ], + "test/strtoultest" => [ + "test/strtoultest-bin-strtoultest.o" + ], + "test/strtoultest-bin-strtoultest.o" => [ + "test/strtoultest.c" + ], "test/sysdefaulttest" => [ "test/sysdefaulttest-bin-sysdefaulttest.o" ], @@ -27281,6 +32256,9 @@ our %unified_info = ( "test/testutil/libtestutil-lib-format_output.o" => [ "test/testutil/format_output.c" ], + "test/testutil/libtestutil-lib-helper.o" => [ + "test/testutil/helper.c" + ], "test/testutil/libtestutil-lib-load.o" => [ "test/testutil/load.c" ], @@ -27314,6 +32292,12 @@ our %unified_info = ( "test/testutil/libtestutil-lib-testutil_init.o" => [ "test/testutil/testutil_init.c" ], + "test/threadpool_test" => [ + "test/threadpool_test-bin-threadpool_test.o" + ], + "test/threadpool_test-bin-threadpool_test.o" => [ + "test/threadpool_test.c" + ], "test/threadstest" => [ "test/threadstest-bin-threadstest.o" ], @@ -27332,6 +32316,12 @@ our %unified_info = ( "test/time_offset_test-bin-time_offset_test.o" => [ "test/time_offset_test.c" ], + "test/time_test" => [ + "test/time_test-bin-time_test.o" + ], + "test/time_test-bin-time_test.o" => [ + "test/time_test.c" + ], "test/tls13ccstest" => [ "test/helpers/tls13ccstest-bin-ssltestlib.o", "test/tls13ccstest-bin-tls13ccstest.o" @@ -27345,6 +32335,13 @@ our %unified_info = ( "test/tls13encryptiontest-bin-tls13encryptiontest.o" => [ "test/tls13encryptiontest.c" ], + "test/tls13groupselection_test" => [ + "test/helpers/tls13groupselection_test-bin-ssltestlib.o", + "test/tls13groupselection_test-bin-tls13groupselection_test.o" + ], + "test/tls13groupselection_test-bin-tls13groupselection_test.o" => [ + "test/tls13groupselection_test.c" + ], "test/trace_api_test" => [ "test/trace_api_test-bin-trace_api_test.o" ], @@ -27400,6 +32397,12 @@ our %unified_info = ( "test/wpackettest-bin-wpackettest.o" => [ "test/wpackettest.c" ], + "test/x509_acert_test" => [ + "test/x509_acert_test-bin-x509_acert_test.o" + ], + "test/x509_acert_test-bin-x509_acert_test.o" => [ + "test/x509_acert_test.c" + ], "test/x509_check_cert_pkey_test" => [ "test/x509_check_cert_pkey_test-bin-x509_check_cert_pkey_test.o" ], @@ -27418,6 +32421,24 @@ our %unified_info = ( "test/x509_internal_test-bin-x509_internal_test.o" => [ "test/x509_internal_test.c" ], + "test/x509_load_cert_file_test" => [ + "test/x509_load_cert_file_test-bin-x509_load_cert_file_test.o" + ], + "test/x509_load_cert_file_test-bin-x509_load_cert_file_test.o" => [ + "test/x509_load_cert_file_test.c" + ], + "test/x509_req_test" => [ + "test/x509_req_test-bin-x509_req_test.o" + ], + "test/x509_req_test-bin-x509_req_test.o" => [ + "test/x509_req_test.c" + ], + "test/x509_test" => [ + "test/x509_test-bin-x509_test.o" + ], + "test/x509_test-bin-x509_test.o" => [ + "test/x509_test.c" + ], "test/x509_time_test" => [ "test/x509_time_test-bin-x509_time_test.o" ], @@ -27478,6 +32499,7 @@ my @makevars = ( "LDLIBS", "MT", "MTFLAGS", + "OBJCOPY", "PERL", "RANLIB", "RC", @@ -27494,6 +32516,12 @@ my %disabled_info = ( "asm" => { "macro" => "OPENSSL_NO_ASM" }, + "brotli" => { + "macro" => "OPENSSL_NO_BROTLI" + }, + "brotli-dynamic" => { + "macro" => "OPENSSL_NO_BROTLI_DYNAMIC" + }, "comp" => { "macro" => "OPENSSL_NO_COMP", "skipped" => [ @@ -27506,6 +32534,9 @@ my %disabled_info = ( "crypto-mdebug-backtrace" => { "macro" => "OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE" }, + "demos" => { + "macro" => "OPENSSL_NO_DEMOS" + }, "devcryptoeng" => { "macro" => "OPENSSL_NO_DEVCRYPTOENG" }, @@ -27518,12 +32549,24 @@ my %disabled_info = ( "external-tests" => { "macro" => "OPENSSL_NO_EXTERNAL_TESTS" }, + "fips-jitter" => { + "macro" => "OPENSSL_NO_FIPS_JITTER" + }, "fuzz-afl" => { "macro" => "OPENSSL_NO_FUZZ_AFL" }, "fuzz-libfuzzer" => { "macro" => "OPENSSL_NO_FUZZ_LIBFUZZER" }, + "h3demo" => { + "macro" => "OPENSSL_NO_H3DEMO" + }, + "hqinterop" => { + "macro" => "OPENSSL_NO_HQINTEROP" + }, + "jitter" => { + "macro" => "OPENSSL_NO_JITTER" + }, "ktls" => { "macro" => "OPENSSL_NO_KTLS" }, @@ -27539,6 +32582,9 @@ my %disabled_info = ( "msan" => { "macro" => "OPENSSL_NO_MSAN" }, + "pie" => { + "macro" => "OPENSSL_NO_PIE" + }, "rc5" => { "macro" => "OPENSSL_NO_RC5", "skipped" => [ @@ -27554,6 +32600,12 @@ my %disabled_info = ( "ssl3-method" => { "macro" => "OPENSSL_NO_SSL3_METHOD" }, + "sslkeylog" => { + "macro" => "OPENSSL_NO_SSLKEYLOG" + }, + "tfo" => { + "macro" => "OPENSSL_NO_TFO" + }, "trace" => { "macro" => "OPENSSL_NO_TRACE" }, @@ -27568,6 +32620,18 @@ my %disabled_info = ( }, "weak-ssl-ciphers" => { "macro" => "OPENSSL_NO_WEAK_SSL_CIPHERS" + }, + "zlib" => { + "macro" => "OPENSSL_NO_ZLIB" + }, + "zlib-dynamic" => { + "macro" => "OPENSSL_NO_ZLIB_DYNAMIC" + }, + "zstd" => { + "macro" => "OPENSSL_NO_ZSTD" + }, + "zstd-dynamic" => { + "macro" => "OPENSSL_NO_ZSTD_DYNAMIC" } ); my @user_crossable = qw( AR AS CC CXX CPP LD MT RANLIB RC ); @@ -27581,15 +32645,15 @@ unless (caller) { use File::Copy; use Pod::Usage; - use lib '/home/runner/work/node/node/deps/openssl/openssl/util/perl'; - use OpenSSL::fallback '/home/runner/work/node/node/deps/openssl/openssl/external/perl/MODULES.txt'; + use lib '/node/deps/openssl/openssl/util/perl'; + use OpenSSL::fallback '/node/deps/openssl/openssl/external/perl/MODULES.txt'; my $here = dirname($0); if (scalar @ARGV == 0) { # With no arguments, re-create the build file # We do that in two steps, where the first step emits perl - # snipets. + # snippets. my $buildfile = $config{build_file}; my $buildfile_template = "$buildfile.in"; @@ -27609,7 +32673,7 @@ unless (caller) { ); use lib '.'; - use lib '/home/runner/work/node/node/deps/openssl/openssl/Configurations'; + use lib '/node/deps/openssl/openssl/Configurations'; use gentemplate; open my $buildfile_template_fh, ">$buildfile_template" @@ -27626,8 +32690,8 @@ unless (caller) { my $prepend = <<'_____'; use File::Spec::Functions; -use lib '/home/runner/work/node/node/deps/openssl/openssl/util/perl'; -use lib '/home/runner/work/node/node/deps/openssl/openssl/Configurations'; +use lib '/node/deps/openssl/openssl/util/perl'; +use lib '/node/deps/openssl/openssl/Configurations'; use lib '.'; use platform; _____ diff --git a/deps/openssl/config/archs/VC-WIN64-ARM/no-asm/crypto/buildinf.h b/deps/openssl/config/archs/VC-WIN64-ARM/no-asm/crypto/buildinf.h index 4ee1f68c013b77..b7803dee833f15 100644 --- a/deps/openssl/config/archs/VC-WIN64-ARM/no-asm/crypto/buildinf.h +++ b/deps/openssl/config/archs/VC-WIN64-ARM/no-asm/crypto/buildinf.h @@ -11,7 +11,7 @@ */ #define PLATFORM "platform: VC-WIN64-ARM" -#define DATE "built on: Sun Jul 20 00:56:26 2025 UTC" +#define DATE "built on: Sun Jul 27 01:00:21 2025 UTC" /* * Generate compiler_flags as an array of individual characters. This is a diff --git a/deps/openssl/config/archs/VC-WIN64-ARM/no-asm/crypto/params_idx.c b/deps/openssl/config/archs/VC-WIN64-ARM/no-asm/crypto/params_idx.c new file mode 100644 index 00000000000000..874125eb57a17c --- /dev/null +++ b/deps/openssl/config/archs/VC-WIN64-ARM/no-asm/crypto/params_idx.c @@ -0,0 +1,3366 @@ +/* + * WARNING: do not edit! + * Generated by makefile from crypto/params_idx.c.in + * + * Copyright 2023 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + +#include "internal/e_os.h" +#include "internal/param_names.h" +#include + +/* Machine generated TRIE -- generated by util/perl/OpenSSL/paramnames.pm */ +int ossl_param_find_pidx(const char *s) +{ + switch(s[0]) { + default: + break; + case 'a': + switch(s[1]) { + default: + break; + case 'c': + if (strcmp("vp-info", s + 2) == 0) + return PIDX_KDF_PARAM_X942_ACVPINFO; + break; + case 'd': + switch(s[2]) { + default: + break; + case 'd': + if (strcmp("itional-random", s + 3) == 0) + return PIDX_SIGNATURE_PARAM_ADD_RANDOM; + break; + case '\0': + return PIDX_KDF_PARAM_ARGON2_AD; + } + break; + case 'e': + if (strcmp("ad", s + 2) == 0) + return PIDX_CIPHER_PARAM_AEAD; + break; + case 'l': + switch(s[2]) { + default: + break; + case 'g': + switch(s[3]) { + default: + break; + case '_': + if (strcmp("id_param", s + 4) == 0) + return PIDX_CIPHER_PARAM_ALGORITHM_ID_PARAMS_OLD; + break; + case 'i': + if (strcmp("d-absent", s + 4) == 0) + return PIDX_DIGEST_PARAM_ALGID_ABSENT; + break; + case 'o': + switch(s[4]) { + default: + break; + case 'r': + switch(s[5]) { + default: + break; + case 'i': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case 'h': + switch(s[8]) { + default: + break; + case 'm': + switch(s[9]) { + default: + break; + case '-': + switch(s[10]) { + default: + break; + case 'i': + switch(s[11]) { + default: + break; + case 'd': + switch(s[12]) { + default: + break; + case '-': + if (strcmp("params", s + 13) == 0) + return PIDX_ALG_PARAM_ALGORITHM_ID_PARAMS; + break; + case '\0': + return PIDX_ALG_PARAM_ALGORITHM_ID; + } + } + } + } + } + } + } + } + } + } + break; + case 'i': + if (strcmp("as", s + 3) == 0) + return PIDX_STORE_PARAM_ALIAS; + } + break; + case '\0': + return PIDX_PKEY_PARAM_EC_A; + } + break; + case 'b': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("sis-type", s + 2) == 0) + return PIDX_PKEY_PARAM_EC_CHAR2_TYPE; + break; + case 'i': + if (strcmp("ts", s + 2) == 0) + return PIDX_PKEY_PARAM_BITS; + break; + case 'l': + switch(s[2]) { + default: + break; + case 'o': + switch(s[3]) { + default: + break; + case 'c': + switch(s[4]) { + default: + break; + case 'k': + switch(s[5]) { + default: + break; + case '-': + if (strcmp("size", s + 6) == 0) + return PIDX_MAC_PARAM_BLOCK_SIZE; + break; + case '_': + if (strcmp("padding", s + 6) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_BLOCK_PADDING; + break; + case 's': + if (strcmp("ize", s + 6) == 0) + return PIDX_DIGEST_PARAM_BLOCK_SIZE; + } + } + } + } + break; + case 'u': + if (strcmp("ildinfo", s + 2) == 0) + return PIDX_PROV_PARAM_BUILDINFO; + break; + case '\0': + return PIDX_PKEY_PARAM_EC_B; + } + break; + case 'c': + switch(s[1]) { + default: + break; + case '-': + if (strcmp("rounds", s + 2) == 0) + return PIDX_MAC_PARAM_C_ROUNDS; + break; + case 'e': + if (strcmp("kalg", s + 2) == 0) + return PIDX_KDF_PARAM_CEK_ALG; + break; + case 'i': + if (strcmp("pher", s + 2) == 0) + return PIDX_ALG_PARAM_CIPHER; + break; + case 'o': + switch(s[2]) { + default: + break; + case 'f': + if (strcmp("actor", s + 3) == 0) + return PIDX_PKEY_PARAM_EC_COFACTOR; + break; + case 'n': + switch(s[3]) { + default: + break; + case 's': + if (strcmp("tant", s + 4) == 0) + return PIDX_KDF_PARAM_CONSTANT; + break; + case 't': + if (strcmp("ext-string", s + 4) == 0) + return PIDX_SIGNATURE_PARAM_CONTEXT_STRING; + } + } + break; + case 't': + switch(s[2]) { + default: + break; + case 's': + switch(s[3]) { + default: + break; + case '_': + if (strcmp("mode", s + 4) == 0) + return PIDX_CIPHER_PARAM_CTS_MODE; + break; + case '\0': + return PIDX_CIPHER_PARAM_CTS; + } + } + break; + case 'u': + switch(s[2]) { + default: + break; + case 's': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case 'o': + switch(s[5]) { + default: + break; + case 'm': + switch(s[6]) { + default: + break; + case '-': + if (strcmp("iv", s + 7) == 0) + return PIDX_CIPHER_PARAM_CUSTOM_IV; + break; + case '\0': + return PIDX_MAC_PARAM_CUSTOM; + } + } + } + } + } + } + break; + case 'd': + switch(s[1]) { + default: + break; + case '-': + if (strcmp("rounds", s + 2) == 0) + return PIDX_MAC_PARAM_D_ROUNDS; + break; + case 'a': + switch(s[2]) { + default: + break; + case 't': + switch(s[3]) { + default: + break; + case 'a': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 's': + if (strcmp("tructure", s + 6) == 0) + return PIDX_OBJECT_PARAM_DATA_STRUCTURE; + break; + case 't': + if (strcmp("ype", s + 6) == 0) + return PIDX_OBJECT_PARAM_DATA_TYPE; + } + break; + case '\0': + return PIDX_OBJECT_PARAM_DATA; + } + } + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'c': + switch(s[3]) { + default: + break; + case 'o': + if (strcmp("ded-from-explicit", s + 4) == 0) + return PIDX_PKEY_PARAM_EC_DECODED_FROM_EXPLICIT_PARAMS; + break; + case 'r': + if (strcmp("ypt-only", s + 4) == 0) + return PIDX_CIPHER_PARAM_DECRYPT_ONLY; + } + break; + case 'f': + if (strcmp("ault-digest", s + 3) == 0) + return PIDX_PKEY_PARAM_DEFAULT_DIGEST; + break; + case 's': + if (strcmp("c", s + 3) == 0) + return PIDX_OBJECT_PARAM_DESC; + break; + case 't': + if (strcmp("erministic", s + 3) == 0) + return PIDX_SIGNATURE_PARAM_DETERMINISTIC; + } + break; + case 'h': + if (strcmp("kem-ikm", s + 2) == 0) + return PIDX_PKEY_PARAM_DHKEM_IKM; + break; + case 'i': + switch(s[2]) { + default: + break; + case 'g': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case 's': + switch(s[5]) { + default: + break; + case 't': + switch(s[6]) { + default: + break; + case '-': + switch(s[7]) { + default: + break; + case 'c': + if (strcmp("heck", s + 8) == 0) + return PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK; + break; + case 'n': + if (strcmp("oinit", s + 8) == 0) + return PIDX_MAC_PARAM_DIGEST_NOINIT; + break; + case 'o': + if (strcmp("neshot", s + 8) == 0) + return PIDX_MAC_PARAM_DIGEST_ONESHOT; + break; + case 'p': + if (strcmp("rops", s + 8) == 0) + return PIDX_ASYM_CIPHER_PARAM_OAEP_DIGEST_PROPS; + break; + case 's': + if (strcmp("ize", s + 8) == 0) + return PIDX_PKEY_PARAM_DIGEST_SIZE; + } + break; + case '\0': + return PIDX_STORE_PARAM_DIGEST; + } + } + } + } + break; + case 's': + if (strcmp("tid", s + 3) == 0) + return PIDX_PKEY_PARAM_DIST_ID; + } + break; + case 'r': + if (strcmp("bg-no-trunc-md", s + 2) == 0) + return PIDX_PROV_PARAM_DRBG_TRUNC_DIGEST; + break; + case 's': + if (strcmp("a-sign-disabled", s + 2) == 0) + return PIDX_PROV_PARAM_DSA_SIGN_DISABLED; + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_D; + } + break; + case 'e': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("rly_clean", s + 2) == 0) + return PIDX_KDF_PARAM_EARLY_CLEAN; + break; + case 'c': + switch(s[2]) { + default: + break; + case 'd': + switch(s[3]) { + default: + break; + case 'h': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'c': + switch(s[6]) { + default: + break; + case 'o': + switch(s[7]) { + default: + break; + case 'f': + switch(s[8]) { + default: + break; + case 'a': + switch(s[9]) { + default: + break; + case 'c': + switch(s[10]) { + default: + break; + case 't': + switch(s[11]) { + default: + break; + case 'o': + switch(s[12]) { + default: + break; + case 'r': + switch(s[13]) { + default: + break; + case '-': + switch(s[14]) { + default: + break; + case 'c': + if (strcmp("heck", s + 15) == 0) + return PIDX_PROV_PARAM_ECDH_COFACTOR_CHECK; + break; + case 'm': + if (strcmp("ode", s + 15) == 0) + return PIDX_EXCHANGE_PARAM_EC_ECDH_COFACTOR_MODE; + } + } + } + } + } + } + } + } + } + } + } + } + } + break; + case 'm': + if (strcmp("s_check", s + 2) == 0) + return PIDX_KDF_PARAM_FIPS_EMS_CHECK; + break; + case 'n': + switch(s[2]) { + default: + break; + case 'c': + switch(s[3]) { + default: + break; + case 'o': + switch(s[4]) { + default: + break; + case 'd': + switch(s[5]) { + default: + break; + case 'e': + if (strcmp("d-pub-key", s + 6) == 0) + return PIDX_PKEY_PARAM_ENCODED_PUBLIC_KEY; + break; + case 'i': + if (strcmp("ng", s + 6) == 0) + return PIDX_PKEY_PARAM_EC_ENCODING; + } + } + break; + case 'r': + switch(s[4]) { + default: + break; + case 'y': + switch(s[5]) { + default: + break; + case 'p': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case '-': + switch(s[8]) { + default: + break; + case 'c': + if (strcmp("heck", s + 9) == 0) + return PIDX_CIPHER_PARAM_FIPS_ENCRYPT_CHECK; + break; + case 'l': + if (strcmp("evel", s + 9) == 0) + return PIDX_ENCODER_PARAM_ENCRYPT_LEVEL; + } + } + } + } + } + } + break; + case 'g': + if (strcmp("ine", s + 3) == 0) + return PIDX_ALG_PARAM_ENGINE; + break; + case 't': + switch(s[3]) { + default: + break; + case 'r': + switch(s[4]) { + default: + break; + case 'o': + switch(s[5]) { + default: + break; + case 'p': + switch(s[6]) { + default: + break; + case 'y': + switch(s[7]) { + default: + break; + case '_': + if (strcmp("required", s + 8) == 0) + return PIDX_DRBG_PARAM_ENTROPY_REQUIRED; + break; + case '\0': + return PIDX_KDF_PARAM_HMACDRBG_ENTROPY; + } + } + } + } + } + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_E; + break; + case 'x': + if (strcmp("pect", s + 2) == 0) + return PIDX_STORE_PARAM_EXPECT; + } + break; + case 'f': + switch(s[1]) { + default: + break; + case 'i': + switch(s[2]) { + default: + break; + case 'e': + if (strcmp("ld-type", s + 3) == 0) + return PIDX_PKEY_PARAM_EC_FIELD_TYPE; + break; + case 'n': + if (strcmp("gerprint", s + 3) == 0) + return PIDX_STORE_PARAM_FINGERPRINT; + break; + case 'p': + if (strcmp("s-indicator", s + 3) == 0) + return PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR; + } + } + break; + case 'g': + switch(s[1]) { + default: + break; + case 'e': + switch(s[2]) { + default: + break; + case 'n': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case 'r': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case 'e': + switch(s[8]) { + default: + break; + case '\0': + return PIDX_RAND_PARAM_GENERATE; + } + break; + case 'o': + if (strcmp("r", s + 8) == 0) + return PIDX_PKEY_PARAM_EC_GENERATOR; + } + } + } + } + } + } + break; + case 'i': + if (strcmp("ndex", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_GINDEX; + break; + case 'r': + switch(s[2]) { + default: + break; + case 'o': + switch(s[3]) { + default: + break; + case 'u': + switch(s[4]) { + default: + break; + case 'p': + switch(s[5]) { + default: + break; + case '-': + if (strcmp("check", s + 6) == 0) + return PIDX_PKEY_PARAM_EC_GROUP_CHECK_TYPE; + break; + case '\0': + return PIDX_PKEY_PARAM_GROUP_NAME; + } + } + } + } + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_G; + } + break; + case 'h': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("s-randkey", s + 2) == 0) + return PIDX_CIPHER_PARAM_HAS_RAND_KEY; + break; + case 'i': + if (strcmp("ndex", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_H; + break; + case 'k': + switch(s[2]) { + default: + break; + case 'd': + switch(s[3]) { + default: + break; + case 'f': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 6) == 0) + return PIDX_PROV_PARAM_HKDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 6) == 0) + return PIDX_PROV_PARAM_HKDF_KEY_CHECK; + } + } + } + } + break; + case 'm': + if (strcmp("ac-key-check", s + 2) == 0) + return PIDX_PROV_PARAM_HMAC_KEY_CHECK; + break; + case 's': + if (strcmp("_padding", s + 2) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_HS_PADDING; + } + break; + case 'i': + switch(s[1]) { + default: + break; + case 'd': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_KDF_PARAM_PKCS12_ID; + } + break; + case 'k': + if (strcmp("me", s + 2) == 0) + return PIDX_KEM_PARAM_IKME; + break; + case 'm': + if (strcmp("plicit-rejection", s + 2) == 0) + return PIDX_PKEY_PARAM_IMPLICIT_REJECTION; + break; + case 'n': + switch(s[2]) { + default: + break; + case 'c': + if (strcmp("lude-public", s + 3) == 0) + return PIDX_PKEY_PARAM_EC_INCLUDE_PUBLIC; + break; + case 'f': + if (strcmp("o", s + 3) == 0) + return PIDX_PASSPHRASE_PARAM_INFO; + break; + case 'p': + if (strcmp("ut-type", s + 3) == 0) + return PIDX_STORE_PARAM_INPUT_TYPE; + break; + case 's': + if (strcmp("tance", s + 3) == 0) + return PIDX_SIGNATURE_PARAM_INSTANCE; + } + break; + case 't': + switch(s[2]) { + default: + break; + case 'e': + switch(s[3]) { + default: + break; + case 'r': + switch(s[4]) { + default: + break; + case 'a': + if (strcmp("tion", s + 5) == 0) + return PIDX_GEN_PARAM_ITERATION; + break; + case '\0': + return PIDX_KDF_PARAM_ITER; + } + } + } + break; + case 'v': + switch(s[2]) { + default: + break; + case '-': + if (strcmp("generated", s + 3) == 0) + return PIDX_CIPHER_PARAM_AEAD_IV_GENERATED; + break; + case 'l': + if (strcmp("en", s + 3) == 0) + return PIDX_CIPHER_PARAM_IVLEN; + break; + case '\0': + return PIDX_MAC_PARAM_IV; + } + } + break; + case 'j': + switch(s[1]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_COFACTOR; + } + break; + case 'k': + switch(s[1]) { + default: + break; + case '1': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_PP_K1; + } + break; + case '2': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_PP_K2; + } + break; + case '3': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_PP_K3; + } + break; + case 'a': + if (strcmp("t", s + 2) == 0) + return PIDX_SIGNATURE_PARAM_KAT; + break; + case 'b': + if (strcmp("kdf-key-check", s + 2) == 0) + return PIDX_PROV_PARAM_KBKDF_KEY_CHECK; + break; + case 'd': + switch(s[2]) { + default: + break; + case 'f': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'd': + switch(s[5]) { + default: + break; + case 'i': + switch(s[6]) { + default: + break; + case 'g': + switch(s[7]) { + default: + break; + case 'e': + switch(s[8]) { + default: + break; + case 's': + switch(s[9]) { + default: + break; + case 't': + switch(s[10]) { + default: + break; + case '-': + if (strcmp("props", s + 11) == 0) + return PIDX_EXCHANGE_PARAM_KDF_DIGEST_PROPS; + break; + case '\0': + return PIDX_EXCHANGE_PARAM_KDF_DIGEST; + } + } + } + } + } + } + break; + case 'o': + if (strcmp("utlen", s + 5) == 0) + return PIDX_EXCHANGE_PARAM_KDF_OUTLEN; + break; + case 't': + if (strcmp("ype", s + 5) == 0) + return PIDX_EXCHANGE_PARAM_KDF_TYPE; + break; + case 'u': + if (strcmp("km", s + 5) == 0) + return PIDX_EXCHANGE_PARAM_KDF_UKM; + } + } + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'y': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'c': + if (strcmp("heck", s + 5) == 0) + return PIDX_PKEY_PARAM_FIPS_KEY_CHECK; + break; + case 'l': + if (strcmp("ength", s + 5) == 0) + return PIDX_SKEY_PARAM_KEY_LENGTH; + } + break; + case 'b': + if (strcmp("its", s + 4) == 0) + return PIDX_CIPHER_PARAM_RC2_KEYBITS; + break; + case 'l': + if (strcmp("en", s + 4) == 0) + return PIDX_CIPHER_PARAM_KEYLEN; + break; + case '\0': + return PIDX_MAC_PARAM_KEY; + } + } + break; + case 'm': + if (strcmp("ac-key-check", s + 2) == 0) + return PIDX_PROV_PARAM_KMAC_KEY_CHECK; + } + break; + case 'l': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'b': + if (strcmp("el", s + 3) == 0) + return PIDX_KDF_PARAM_LABEL; + break; + case 'n': + if (strcmp("es", s + 3) == 0) + return PIDX_KDF_PARAM_ARGON2_LANES; + } + } + break; + case 'm': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'c': + switch(s[3]) { + default: + break; + case 'k': + if (strcmp("ey", s + 4) == 0) + return PIDX_CIPHER_PARAM_AEAD_MAC_KEY; + break; + case 'l': + if (strcmp("en", s + 4) == 0) + return PIDX_KDF_PARAM_MAC_SIZE; + break; + case '\0': + return PIDX_ALG_PARAM_MAC; + } + break; + case 'n': + if (strcmp("datory-digest", s + 3) == 0) + return PIDX_PKEY_PARAM_MANDATORY_DIGEST; + break; + case 'x': + switch(s[3]) { + default: + break; + case '-': + if (strcmp("size", s + 4) == 0) + return PIDX_PKEY_PARAM_MAX_SIZE; + break; + case '_': + switch(s[4]) { + default: + break; + case 'a': + if (strcmp("dinlen", s + 5) == 0) + return PIDX_DRBG_PARAM_MAX_ADINLEN; + break; + case 'e': + switch(s[5]) { + default: + break; + case 'a': + if (strcmp("rly_data", s + 6) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_MAX_EARLY_DATA; + break; + case 'n': + if (strcmp("tropylen", s + 6) == 0) + return PIDX_DRBG_PARAM_MAX_ENTROPYLEN; + } + break; + case 'f': + if (strcmp("rag_len", s + 5) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_MAX_FRAG_LEN; + break; + case 'n': + if (strcmp("oncelen", s + 5) == 0) + return PIDX_DRBG_PARAM_MAX_NONCELEN; + break; + case 'p': + if (strcmp("erslen", s + 5) == 0) + return PIDX_DRBG_PARAM_MAX_PERSLEN; + break; + case 'r': + if (strcmp("equest", s + 5) == 0) + return PIDX_RAND_PARAM_MAX_REQUEST; + } + break; + case 'i': + if (strcmp("um_length", s + 4) == 0) + return PIDX_DRBG_PARAM_MAX_LENGTH; + break; + case 'm': + if (strcmp("em_bytes", s + 4) == 0) + return PIDX_KDF_PARAM_SCRYPT_MAXMEM; + } + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'm': + if (strcmp("cost", s + 3) == 0) + return PIDX_KDF_PARAM_ARGON2_MEMCOST; + break; + case 's': + if (strcmp("sage-encoding", s + 3) == 0) + return PIDX_SIGNATURE_PARAM_MESSAGE_ENCODING; + } + break; + case 'g': + switch(s[2]) { + default: + break; + case 'f': + switch(s[3]) { + default: + break; + case '1': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'd': + if (strcmp("igest", s + 6) == 0) + return PIDX_PKEY_PARAM_MGF1_DIGEST; + break; + case 'p': + if (strcmp("roperties", s + 6) == 0) + return PIDX_PKEY_PARAM_MGF1_PROPERTIES; + } + } + break; + case '\0': + return PIDX_PKEY_PARAM_MASKGENFUNC; + } + } + break; + case 'i': + switch(s[2]) { + default: + break; + case 'c': + if (strcmp("alg", s + 3) == 0) + return PIDX_DIGEST_PARAM_MICALG; + break; + case 'n': + switch(s[3]) { + default: + break; + case '_': + switch(s[4]) { + default: + break; + case 'e': + if (strcmp("ntropylen", s + 5) == 0) + return PIDX_DRBG_PARAM_MIN_ENTROPYLEN; + break; + case 'n': + if (strcmp("oncelen", s + 5) == 0) + return PIDX_DRBG_PARAM_MIN_NONCELEN; + } + break; + case 'i': + if (strcmp("um_length", s + 4) == 0) + return PIDX_DRBG_PARAM_MIN_LENGTH; + } + } + break; + case 'l': + switch(s[2]) { + default: + break; + case '-': + switch(s[3]) { + default: + break; + case 'd': + switch(s[4]) { + default: + break; + case 's': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case '.': + switch(s[7]) { + default: + break; + case 'i': + if (strcmp("nput_formats", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_DSA_INPUT_FORMATS; + break; + case 'o': + if (strcmp("utput_formats", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_DSA_OUTPUT_FORMATS; + break; + case 'p': + if (strcmp("refer_seed", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_DSA_PREFER_SEED; + break; + case 'r': + if (strcmp("etain_seed", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_DSA_RETAIN_SEED; + } + } + } + } + break; + case 'k': + switch(s[4]) { + default: + break; + case 'e': + switch(s[5]) { + default: + break; + case 'm': + switch(s[6]) { + default: + break; + case '.': + switch(s[7]) { + default: + break; + case 'i': + switch(s[8]) { + default: + break; + case 'm': + if (strcmp("port_pct_type", s + 9) == 0) + return PIDX_PKEY_PARAM_ML_KEM_IMPORT_PCT_TYPE; + break; + case 'n': + if (strcmp("put_formats", s + 9) == 0) + return PIDX_PKEY_PARAM_ML_KEM_INPUT_FORMATS; + } + break; + case 'o': + if (strcmp("utput_formats", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_KEM_OUTPUT_FORMATS; + break; + case 'p': + if (strcmp("refer_seed", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_KEM_PREFER_SEED; + break; + case 'r': + if (strcmp("etain_seed", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_KEM_RETAIN_SEED; + } + } + } + } + } + } + break; + case 'o': + switch(s[2]) { + default: + break; + case 'd': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case '\0': + return PIDX_LIBSSL_RECORD_LAYER_PARAM_MODE; + } + break; + case 'u': + if (strcmp("le-filename", s + 4) == 0) + return PIDX_PROV_PARAM_CORE_MODULE_FILENAME; + } + } + break; + case 'u': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_SIGNATURE_PARAM_MU; + } + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_M; + } + break; + case 'n': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("me", s + 2) == 0) + return PIDX_STORE_PARAM_ISSUER; + break; + case 'o': + switch(s[2]) { + default: + break; + case '-': + if (strcmp("short-mac", s + 3) == 0) + return PIDX_PROV_PARAM_NO_SHORT_MAC; + break; + case 'n': + switch(s[3]) { + default: + break; + case 'c': + switch(s[4]) { + default: + break; + case 'e': + switch(s[5]) { + default: + break; + case '-': + if (strcmp("type", s + 6) == 0) + return PIDX_SIGNATURE_PARAM_NONCE_TYPE; + break; + case '\0': + return PIDX_KDF_PARAM_HMACDRBG_NONCE; + } + } + } + } + break; + case 'u': + if (strcmp("m", s + 2) == 0) + return PIDX_CIPHER_PARAM_NUM; + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_N; + } + break; + case 'o': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("ep-label", s + 2) == 0) + return PIDX_ASYM_CIPHER_PARAM_OAEP_LABEL; + break; + case 'p': + switch(s[2]) { + default: + break; + case 'e': + switch(s[3]) { + default: + break; + case 'n': + if (strcmp("ssl-version", s + 4) == 0) + return PIDX_PROV_PARAM_CORE_VERSION; + break; + case 'r': + if (strcmp("ation", s + 4) == 0) + return PIDX_KEM_PARAM_OPERATION; + } + break; + case 't': + if (strcmp("ions", s + 3) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_OPTIONS; + } + break; + case 'r': + if (strcmp("der", s + 2) == 0) + return PIDX_PKEY_PARAM_EC_ORDER; + } + break; + case 'p': + switch(s[1]) { + default: + break; + case '1': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_P1; + } + break; + case '2': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_P2; + } + break; + case 'a': + switch(s[2]) { + default: + break; + case 'd': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'm': + if (strcmp("ode", s + 5) == 0) + return PIDX_PKEY_PARAM_PAD_MODE; + break; + case 't': + if (strcmp("ype", s + 5) == 0) + return PIDX_DIGEST_PARAM_PAD_TYPE; + } + break; + case 'd': + if (strcmp("ing", s + 4) == 0) + return PIDX_CIPHER_PARAM_PADDING; + break; + case '\0': + return PIDX_EXCHANGE_PARAM_PAD; + } + break; + case 'r': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case 'y': + switch(s[5]) { + default: + break; + case 'u': + if (strcmp("-info", s + 6) == 0) + return PIDX_KDF_PARAM_X942_PARTYUINFO; + break; + case 'v': + if (strcmp("-info", s + 6) == 0) + return PIDX_KDF_PARAM_X942_PARTYVINFO; + } + } + } + break; + case 's': + if (strcmp("s", s + 3) == 0) + return PIDX_KDF_PARAM_PASSWORD; + } + break; + case 'b': + switch(s[2]) { + default: + break; + case 'i': + if (strcmp("ts", s + 3) == 0) + return PIDX_PKEY_PARAM_FFC_PBITS; + break; + case 'k': + if (strcmp("df2-lower-bound-check", s + 3) == 0) + return PIDX_PROV_PARAM_PBKDF2_LOWER_BOUND_CHECK; + } + break; + case 'c': + if (strcmp("ounter", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_PCOUNTER; + break; + case 'i': + if (strcmp("peline-tag", s + 2) == 0) + return PIDX_CIPHER_PARAM_PIPELINE_AEAD_TAG; + break; + case 'k': + if (strcmp("cs5", s + 2) == 0) + return PIDX_KDF_PARAM_PKCS5; + break; + case 'o': + switch(s[2]) { + default: + break; + case 'i': + if (strcmp("nt-format", s + 3) == 0) + return PIDX_PKEY_PARAM_EC_POINT_CONVERSION_FORMAT; + break; + case 't': + if (strcmp("ential", s + 3) == 0) + return PIDX_GEN_PARAM_POTENTIAL; + } + break; + case 'r': + switch(s[2]) { + default: + break; + case 'e': + switch(s[3]) { + default: + break; + case 'd': + if (strcmp("iction_resistance", s + 4) == 0) + return PIDX_DRBG_PARAM_PREDICTION_RESISTANCE; + break; + case 'f': + if (strcmp("ix", s + 4) == 0) + return PIDX_KDF_PARAM_PREFIX; + } + break; + case 'i': + switch(s[3]) { + default: + break; + case 'm': + if (strcmp("es", s + 4) == 0) + return PIDX_PKEY_PARAM_RSA_PRIMES; + break; + case 'v': + switch(s[4]) { + default: + break; + case '_': + if (strcmp("len", s + 5) == 0) + return PIDX_PKEY_PARAM_DH_PRIV_LEN; + break; + case '\0': + return PIDX_PKEY_PARAM_PRIV_KEY; + } + } + break; + case 'o': + switch(s[3]) { + default: + break; + case 'p': + if (strcmp("erties", s + 4) == 0) + return PIDX_STORE_PARAM_PROPERTIES; + break; + case 'v': + if (strcmp("ider-name", s + 4) == 0) + return PIDX_PROV_PARAM_CORE_PROV_NAME; + } + } + break; + case 'u': + if (strcmp("b", s + 2) == 0) + return PIDX_PKEY_PARAM_PUB_KEY; + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_P; + } + break; + case 'q': + switch(s[1]) { + default: + break; + case '1': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_Q1; + } + break; + case '2': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_Q2; + } + break; + case 'b': + if (strcmp("its", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_QBITS; + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_Q; + break; + case 'x': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_PUB_X; + } + break; + case 'y': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_PUB_Y; + } + } + break; + case 'r': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'n': + switch(s[3]) { + default: + break; + case 'd': + switch(s[4]) { + default: + break; + case 'k': + if (strcmp("ey", s + 5) == 0) + return PIDX_CIPHER_PARAM_RANDOM_KEY; + break; + case 'o': + if (strcmp("m_data", s + 5) == 0) + return PIDX_DRBG_PARAM_RANDOM_DATA; + } + } + break; + case 'w': + if (strcmp("-bytes", s + 3) == 0) + return PIDX_SKEY_PARAM_RAW_BYTES; + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'a': + switch(s[3]) { + default: + break; + case 'd': + switch(s[4]) { + default: + break; + case '_': + switch(s[5]) { + default: + break; + case 'a': + if (strcmp("head", s + 6) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_READ_AHEAD; + break; + case 'b': + if (strcmp("uffer_len", s + 6) == 0) + return PIDX_LIBSSL_RECORD_LAYER_READ_BUFFER_LEN; + } + } + } + break; + case 'f': + if (strcmp("erence", s + 3) == 0) + return PIDX_OBJECT_PARAM_REFERENCE; + break; + case 's': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case 'e': + switch(s[5]) { + default: + break; + case 'd': + switch(s[6]) { + default: + break; + case '_': + switch(s[7]) { + default: + break; + case 'c': + if (strcmp("ounter", s + 8) == 0) + return PIDX_DRBG_PARAM_RESEED_COUNTER; + break; + case 'r': + if (strcmp("equests", s + 8) == 0) + return PIDX_DRBG_PARAM_RESEED_REQUESTS; + break; + case 't': + switch(s[8]) { + default: + break; + case 'i': + switch(s[9]) { + default: + break; + case 'm': + switch(s[10]) { + default: + break; + case 'e': + switch(s[11]) { + default: + break; + case '_': + if (strcmp("interval", s + 12) == 0) + return PIDX_DRBG_PARAM_RESEED_TIME_INTERVAL; + break; + case '\0': + return PIDX_DRBG_PARAM_RESEED_TIME; + } + } + } + } + } + } + } + } + } + } + break; + case 'o': + if (strcmp("unds", s + 2) == 0) + return PIDX_CIPHER_PARAM_ROUNDS; + break; + case 's': + switch(s[2]) { + default: + break; + case 'a': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'c': + switch(s[5]) { + default: + break; + case 'o': + switch(s[6]) { + default: + break; + case 'e': + switch(s[7]) { + default: + break; + case 'f': + switch(s[8]) { + default: + break; + case 'f': + switch(s[9]) { + default: + break; + case 'i': + switch(s[10]) { + default: + break; + case 'c': + switch(s[11]) { + default: + break; + case 'i': + switch(s[12]) { + default: + break; + case 'e': + switch(s[13]) { + default: + break; + case 'n': + switch(s[14]) { + default: + break; + case 't': + switch(s[15]) { + default: + break; + case '1': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT1; + } + break; + case '2': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT2; + } + break; + case '3': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT3; + } + break; + case '4': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT4; + } + break; + case '5': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT5; + } + break; + case '6': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT6; + } + break; + case '7': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT7; + } + break; + case '8': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT8; + } + break; + case '9': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT9; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT; + } + } + } + } + } + } + } + } + } + } + } + break; + case 'd': + if (strcmp("erive-from-pq", s + 5) == 0) + return PIDX_PKEY_PARAM_RSA_DERIVE_FROM_PQ; + break; + case 'e': + switch(s[5]) { + default: + break; + case 'x': + switch(s[6]) { + default: + break; + case 'p': + switch(s[7]) { + default: + break; + case 'o': + switch(s[8]) { + default: + break; + case 'n': + switch(s[9]) { + default: + break; + case 'e': + switch(s[10]) { + default: + break; + case 'n': + switch(s[11]) { + default: + break; + case 't': + switch(s[12]) { + default: + break; + case '1': + switch(s[13]) { + default: + break; + case '0': + switch(s[14]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT10; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT1; + } + break; + case '2': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT2; + } + break; + case '3': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT3; + } + break; + case '4': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT4; + } + break; + case '5': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT5; + } + break; + case '6': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT6; + } + break; + case '7': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT7; + } + break; + case '8': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT8; + } + break; + case '9': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT9; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT; + } + } + } + } + } + } + } + } + break; + case 'f': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case 'c': + switch(s[7]) { + default: + break; + case 't': + switch(s[8]) { + default: + break; + case 'o': + switch(s[9]) { + default: + break; + case 'r': + switch(s[10]) { + default: + break; + case '1': + switch(s[11]) { + default: + break; + case '0': + switch(s[12]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR10; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR1; + } + break; + case '2': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR2; + } + break; + case '3': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR3; + } + break; + case '4': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR4; + } + break; + case '5': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR5; + } + break; + case '6': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR6; + } + break; + case '7': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR7; + } + break; + case '8': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR8; + } + break; + case '9': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR9; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR; + } + } + } + } + } + } + break; + case 'p': + switch(s[5]) { + default: + break; + case 'k': + if (strcmp("cs15-pad-disabled", s + 6) == 0) + return PIDX_PROV_PARAM_RSA_PKCS15_PAD_DISABLED; + break; + case 's': + if (strcmp("s-saltlen-check", s + 6) == 0) + return PIDX_SIGNATURE_PARAM_FIPS_RSA_PSS_SALTLEN_CHECK; + } + break; + case 's': + if (strcmp("ign-x931-pad-disabled", s + 5) == 0) + return PIDX_PROV_PARAM_RSA_SIGN_X931_PAD_DISABLED; + } + } + } + break; + case '\0': + return PIDX_KDF_PARAM_SCRYPT_R; + } + break; + case 's': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'f': + if (strcmp("eprime-generator", s + 3) == 0) + return PIDX_PKEY_PARAM_DH_GENERATOR; + break; + case 'l': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case 'l': + if (strcmp("en", s + 5) == 0) + return PIDX_SIGNATURE_PARAM_PSS_SALTLEN; + break; + case '\0': + return PIDX_MAC_PARAM_SALT; + } + } + break; + case 'v': + if (strcmp("e-parameters", s + 3) == 0) + return PIDX_ENCODER_PARAM_SAVE_PARAMETERS; + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'c': + switch(s[3]) { + default: + break; + case 'r': + if (strcmp("et", s + 4) == 0) + return PIDX_KDF_PARAM_SECRET; + break; + case 'u': + switch(s[4]) { + default: + break; + case 'r': + switch(s[5]) { + default: + break; + case 'i': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case 'y': + switch(s[8]) { + default: + break; + case '-': + switch(s[9]) { + default: + break; + case 'b': + if (strcmp("its", s + 10) == 0) + return PIDX_PKEY_PARAM_SECURITY_BITS; + break; + case 'c': + if (strcmp("hecks", s + 10) == 0) + return PIDX_PROV_PARAM_SECURITY_CHECKS; + } + } + } + } + } + } + } + break; + case 'e': + if (strcmp("d", s + 3) == 0) + return PIDX_PKEY_PARAM_SLH_DSA_SEED; + break; + case 'r': + if (strcmp("ial", s + 3) == 0) + return PIDX_STORE_PARAM_SERIAL; + break; + case 's': + if (strcmp("sion_id", s + 3) == 0) + return PIDX_KDF_PARAM_SSHKDF_SESSION_ID; + } + break; + case 'i': + switch(s[2]) { + default: + break; + case 'g': + switch(s[3]) { + default: + break; + case 'n': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'c': + if (strcmp("heck", s + 6) == 0) + return PIDX_PKEY_PARAM_FIPS_SIGN_CHECK; + break; + case 'x': + if (strcmp("931-pad-check", s + 6) == 0) + return PIDX_SIGNATURE_PARAM_FIPS_SIGN_X931_PAD_CHECK; + } + break; + case 'a': + switch(s[5]) { + default: + break; + case 't': + switch(s[6]) { + default: + break; + case 'u': + switch(s[7]) { + default: + break; + case 'r': + switch(s[8]) { + default: + break; + case 'e': + switch(s[9]) { + default: + break; + case '-': + if (strcmp("digest-check", s + 10) == 0) + return PIDX_PROV_PARAM_SIGNATURE_DIGEST_CHECK; + break; + case '\0': + return PIDX_SIGNATURE_PARAM_SIGNATURE; + } + } + } + } + } + } + } + break; + case 'z': + if (strcmp("e", s + 3) == 0) + return PIDX_MAC_PARAM_SIZE; + } + break; + case 'p': + if (strcmp("eed", s + 2) == 0) + return PIDX_CIPHER_PARAM_SPEED; + break; + case 's': + switch(s[2]) { + default: + break; + case 'h': + switch(s[3]) { + default: + break; + case 'k': + switch(s[4]) { + default: + break; + case 'd': + switch(s[5]) { + default: + break; + case 'f': + switch(s[6]) { + default: + break; + case '-': + switch(s[7]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 8) == 0) + return PIDX_PROV_PARAM_SSHKDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 8) == 0) + return PIDX_PROV_PARAM_SSHKDF_KEY_CHECK; + } + } + } + } + } + break; + case 'k': + switch(s[3]) { + default: + break; + case 'd': + switch(s[4]) { + default: + break; + case 'f': + switch(s[5]) { + default: + break; + case '-': + switch(s[6]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 7) == 0) + return PIDX_PROV_PARAM_SSKDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 7) == 0) + return PIDX_PROV_PARAM_SSKDF_KEY_CHECK; + } + } + } + } + break; + case 'l': + if (strcmp("3-ms", s + 3) == 0) + return PIDX_DIGEST_PARAM_SSL3_MS; + } + break; + case 't': + switch(s[2]) { + default: + break; + case '-': + switch(s[3]) { + default: + break; + case 'd': + if (strcmp("esc", s + 4) == 0) + return PIDX_PROV_PARAM_SELF_TEST_DESC; + break; + case 'p': + if (strcmp("hase", s + 4) == 0) + return PIDX_PROV_PARAM_SELF_TEST_PHASE; + break; + case 't': + if (strcmp("ype", s + 4) == 0) + return PIDX_PROV_PARAM_SELF_TEST_TYPE; + } + break; + case 'a': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case 'e': + switch(s[5]) { + default: + break; + case '\0': + return PIDX_RAND_PARAM_STATE; + } + break; + case 'u': + if (strcmp("s", s + 5) == 0) + return PIDX_PROV_PARAM_STATUS; + } + } + break; + case 'r': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case 'a': + if (strcmp("m_mac", s + 5) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_STREAM_MAC; + break; + case 'n': + if (strcmp("gth", s + 5) == 0) + return PIDX_RAND_PARAM_STRENGTH; + } + } + } + break; + case 'u': + switch(s[2]) { + default: + break; + case 'b': + if (strcmp("ject", s + 3) == 0) + return PIDX_STORE_PARAM_SUBJECT; + break; + case 'p': + switch(s[3]) { + default: + break; + case 'p': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'p': + switch(s[6]) { + default: + break; + case 'r': + if (strcmp("ivinfo", s + 7) == 0) + return PIDX_KDF_PARAM_X942_SUPP_PRIVINFO; + break; + case 'u': + if (strcmp("binfo", s + 7) == 0) + return PIDX_KDF_PARAM_X942_SUPP_PUBINFO; + } + } + } + } + } + } + break; + case 't': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'g': + switch(s[3]) { + default: + break; + case 'l': + if (strcmp("en", s + 4) == 0) + return PIDX_CIPHER_PARAM_AEAD_TAGLEN; + break; + case '\0': + return PIDX_CIPHER_PARAM_AEAD_TAG; + } + } + break; + case 'd': + if (strcmp("es-encrypt-disabled", s + 2) == 0) + return PIDX_PROV_PARAM_TDES_ENCRYPT_DISABLED; + break; + case 'e': + switch(s[2]) { + default: + break; + case 's': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case '-': + if (strcmp("entropy", s + 5) == 0) + return PIDX_SIGNATURE_PARAM_TEST_ENTROPY; + break; + case '_': + switch(s[5]) { + default: + break; + case 'e': + if (strcmp("ntropy", s + 6) == 0) + return PIDX_RAND_PARAM_TEST_ENTROPY; + break; + case 'n': + if (strcmp("once", s + 6) == 0) + return PIDX_RAND_PARAM_TEST_NONCE; + } + } + } + } + break; + case 'h': + if (strcmp("reads", s + 2) == 0) + return PIDX_KDF_PARAM_THREADS; + break; + case 'l': + switch(s[2]) { + default: + break; + case 's': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'c': + if (strcmp("lient-version", s + 5) == 0) + return PIDX_ASYM_CIPHER_PARAM_TLS_CLIENT_VERSION; + break; + case 'd': + if (strcmp("ata-size", s + 5) == 0) + return PIDX_MAC_PARAM_TLS_DATA_SIZE; + break; + case 'g': + switch(s[5]) { + default: + break; + case 'r': + switch(s[6]) { + default: + break; + case 'o': + switch(s[7]) { + default: + break; + case 'u': + switch(s[8]) { + default: + break; + case 'p': + switch(s[9]) { + default: + break; + case '-': + switch(s[10]) { + default: + break; + case 'a': + if (strcmp("lg", s + 11) == 0) + return PIDX_CAPABILITY_TLS_GROUP_ALG; + break; + case 'i': + switch(s[11]) { + default: + break; + case 'd': + switch(s[12]) { + default: + break; + case '\0': + return PIDX_CAPABILITY_TLS_GROUP_ID; + } + break; + case 's': + if (strcmp("-kem", s + 12) == 0) + return PIDX_CAPABILITY_TLS_GROUP_IS_KEM; + } + break; + case 'n': + switch(s[11]) { + default: + break; + case 'a': + switch(s[12]) { + default: + break; + case 'm': + switch(s[13]) { + default: + break; + case 'e': + switch(s[14]) { + default: + break; + case '-': + if (strcmp("internal", s + 15) == 0) + return PIDX_CAPABILITY_TLS_GROUP_NAME_INTERNAL; + break; + case '\0': + return PIDX_CAPABILITY_TLS_GROUP_NAME; + } + } + } + } + break; + case 's': + if (strcmp("ec-bits", s + 11) == 0) + return PIDX_CAPABILITY_TLS_GROUP_SECURITY_BITS; + } + } + } + } + } + } + break; + case 'm': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case 'c': + switch(s[7]) { + default: + break; + case '-': + if (strcmp("size", s + 8) == 0) + return PIDX_CIPHER_PARAM_TLS_MAC_SIZE; + break; + case '\0': + return PIDX_CIPHER_PARAM_TLS_MAC; + } + break; + case 'x': + switch(s[7]) { + default: + break; + case '-': + switch(s[8]) { + default: + break; + case 'd': + if (strcmp("tls", s + 9) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_MAX_DTLS; + break; + case 't': + if (strcmp("ls", s + 9) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_MAX_TLS; + } + } + } + break; + case 'i': + switch(s[6]) { + default: + break; + case 'n': + switch(s[7]) { + default: + break; + case '-': + switch(s[8]) { + default: + break; + case 'd': + if (strcmp("tls", s + 9) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_MIN_DTLS; + break; + case 't': + if (strcmp("ls", s + 9) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_MIN_TLS; + } + } + } + break; + case 'u': + if (strcmp("lti", s + 6) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK; + } + break; + case 'n': + if (strcmp("egotiated-version", s + 5) == 0) + return PIDX_ASYM_CIPHER_PARAM_TLS_NEGOTIATED_VERSION; + break; + case 's': + switch(s[5]) { + default: + break; + case 'i': + switch(s[6]) { + default: + break; + case 'g': + switch(s[7]) { + default: + break; + case 'a': + switch(s[8]) { + default: + break; + case 'l': + switch(s[9]) { + default: + break; + case 'g': + switch(s[10]) { + default: + break; + case '-': + switch(s[11]) { + default: + break; + case 'c': + if (strcmp("ode-point", s + 12) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_CODE_POINT; + break; + case 'h': + switch(s[12]) { + default: + break; + case 'a': + switch(s[13]) { + default: + break; + case 's': + switch(s[14]) { + default: + break; + case 'h': + switch(s[15]) { + default: + break; + case '-': + switch(s[16]) { + default: + break; + case 'n': + if (strcmp("ame", s + 17) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_HASH_NAME; + break; + case 'o': + if (strcmp("id", s + 17) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_HASH_OID; + } + } + } + } + } + break; + case 'i': + if (strcmp("ana-name", s + 12) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_IANA_NAME; + break; + case 'k': + switch(s[12]) { + default: + break; + case 'e': + switch(s[13]) { + default: + break; + case 'y': + switch(s[14]) { + default: + break; + case 't': + switch(s[15]) { + default: + break; + case 'y': + switch(s[16]) { + default: + break; + case 'p': + switch(s[17]) { + default: + break; + case 'e': + switch(s[18]) { + default: + break; + case '-': + if (strcmp("oid", s + 19) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_KEYTYPE_OID; + break; + case '\0': + return PIDX_CAPABILITY_TLS_SIGALG_KEYTYPE; + } + } + } + } + } + } + } + break; + case 'n': + if (strcmp("ame", s + 12) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_NAME; + break; + case 'o': + if (strcmp("id", s + 12) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_OID; + break; + case 's': + switch(s[12]) { + default: + break; + case 'e': + if (strcmp("c-bits", s + 13) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_SECURITY_BITS; + break; + case 'i': + switch(s[13]) { + default: + break; + case 'g': + switch(s[14]) { + default: + break; + case '-': + switch(s[15]) { + default: + break; + case 'n': + if (strcmp("ame", s + 16) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_SIG_NAME; + break; + case 'o': + if (strcmp("id", s + 16) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_SIG_OID; + } + } + } + } + } + } + } + } + } + } + } + break; + case 'v': + if (strcmp("ersion", s + 5) == 0) + return PIDX_CIPHER_PARAM_TLS_VERSION; + } + break; + case '1': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'p': + switch(s[6]) { + default: + break; + case 'r': + switch(s[7]) { + default: + break; + case 'f': + switch(s[8]) { + default: + break; + case '-': + switch(s[9]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 10) == 0) + return PIDX_PROV_PARAM_TLS1_PRF_DIGEST_CHECK; + break; + case 'e': + if (strcmp("ms-check", s + 10) == 0) + return PIDX_PROV_PARAM_TLS1_PRF_EMS_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 10) == 0) + return PIDX_PROV_PARAM_TLS1_PRF_KEY_CHECK; + } + } + } + } + } + break; + case '3': + switch(s[5]) { + default: + break; + case '-': + switch(s[6]) { + default: + break; + case 'k': + switch(s[7]) { + default: + break; + case 'd': + switch(s[8]) { + default: + break; + case 'f': + switch(s[9]) { + default: + break; + case '-': + switch(s[10]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 11) == 0) + return PIDX_PROV_PARAM_TLS13_KDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 11) == 0) + return PIDX_PROV_PARAM_TLS13_KDF_KEY_CHECK; + } + } + } + } + } + } + break; + case 'm': + switch(s[5]) { + default: + break; + case 'u': + switch(s[6]) { + default: + break; + case 'l': + switch(s[7]) { + default: + break; + case 't': + switch(s[8]) { + default: + break; + case 'i': + switch(s[9]) { + default: + break; + case '_': + switch(s[10]) { + default: + break; + case 'a': + switch(s[11]) { + default: + break; + case 'a': + switch(s[12]) { + default: + break; + case 'd': + switch(s[13]) { + default: + break; + case 'p': + if (strcmp("acklen", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD_PACKLEN; + break; + case '\0': + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD; + } + } + } + break; + case 'e': + switch(s[11]) { + default: + break; + case 'n': + switch(s[12]) { + default: + break; + case 'c': + switch(s[13]) { + default: + break; + case 'i': + if (strcmp("n", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_IN; + break; + case 'l': + if (strcmp("en", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_LEN; + break; + case '\0': + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC; + } + } + } + break; + case 'i': + if (strcmp("nterleave", s + 11) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_INTERLEAVE; + break; + case 'm': + switch(s[11]) { + default: + break; + case 'a': + switch(s[12]) { + default: + break; + case 'x': + switch(s[13]) { + default: + break; + case 'b': + if (strcmp("ufsz", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_BUFSIZE; + break; + case 's': + if (strcmp("ndfrag", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_SEND_FRAGMENT; + } + } + } + } + } + } + } + } + } + } + break; + case 'a': + switch(s[4]) { + default: + break; + case 'a': + switch(s[5]) { + default: + break; + case 'd': + switch(s[6]) { + default: + break; + case 'p': + if (strcmp("ad", s + 7) == 0) + return PIDX_CIPHER_PARAM_AEAD_TLS1_AAD_PAD; + break; + case '\0': + return PIDX_CIPHER_PARAM_AEAD_TLS1_AAD; + } + } + } + break; + case 'i': + switch(s[4]) { + default: + break; + case 'v': + switch(s[5]) { + default: + break; + case 'f': + if (strcmp("ixed", s + 6) == 0) + return PIDX_CIPHER_PARAM_AEAD_TLS1_IV_FIXED; + break; + case 'g': + if (strcmp("en", s + 6) == 0) + return PIDX_CIPHER_PARAM_AEAD_TLS1_GET_IV_GEN; + break; + case 'i': + if (strcmp("nv", s + 6) == 0) + return PIDX_CIPHER_PARAM_AEAD_TLS1_SET_IV_INV; + } + } + break; + case 't': + if (strcmp("ree", s + 4) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_TLSTREE; + } + } + break; + case 'p': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_TP_BASIS; + } + break; + case 'y': + if (strcmp("pe", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_TYPE; + } + break; + case 'u': + switch(s[1]) { + default: + break; + case 'k': + if (strcmp("m", s + 2) == 0) + return PIDX_KDF_PARAM_UKM; + break; + case 'p': + if (strcmp("dated-iv", s + 2) == 0) + return PIDX_CIPHER_PARAM_UPDATED_IV; + break; + case 's': + switch(s[2]) { + default: + break; + case 'e': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'b': + if (strcmp("its", s + 5) == 0) + return PIDX_CIPHER_PARAM_USE_BITS; + break; + case 'c': + if (strcmp("ofactor-flag", s + 5) == 0) + return PIDX_PKEY_PARAM_USE_COFACTOR_FLAG; + break; + case 'k': + if (strcmp("eybits", s + 5) == 0) + return PIDX_KDF_PARAM_X942_USE_KEYBITS; + break; + case 'l': + switch(s[5]) { + default: + break; + case '\0': + return PIDX_KDF_PARAM_KBKDF_USE_L; + } + break; + case 's': + if (strcmp("eparator", s + 5) == 0) + return PIDX_KDF_PARAM_KBKDF_USE_SEPARATOR; + } + break; + case '_': + switch(s[4]) { + default: + break; + case 'd': + if (strcmp("erivation_function", s + 5) == 0) + return PIDX_DRBG_PARAM_USE_DF; + break; + case 'e': + if (strcmp("tm", s + 5) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_USE_ETM; + } + } + } + } + break; + case 'v': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'l': + switch(s[3]) { + default: + break; + case 'i': + switch(s[4]) { + default: + break; + case 'd': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case 'e': + switch(s[8]) { + default: + break; + case '-': + switch(s[9]) { + default: + break; + case 'g': + switch(s[10]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_VALIDATE_G; + } + break; + case 'l': + if (strcmp("egacy", s + 10) == 0) + return PIDX_PKEY_PARAM_FFC_VALIDATE_LEGACY; + break; + case 'p': + if (strcmp("q", s + 10) == 0) + return PIDX_PKEY_PARAM_FFC_VALIDATE_PQ; + } + } + } + } + } + } + } + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'r': + switch(s[3]) { + default: + break; + case 'i': + if (strcmp("fy-message", s + 4) == 0) + return PIDX_SIGNATURE_PARAM_FIPS_VERIFY_MESSAGE; + break; + case 's': + if (strcmp("ion", s + 4) == 0) + return PIDX_PROV_PARAM_VERSION; + } + } + } + break; + case 'x': + switch(s[1]) { + default: + break; + case '9': + switch(s[2]) { + default: + break; + case '4': + if (strcmp("2kdf-key-check", s + 3) == 0) + return PIDX_PROV_PARAM_X942KDF_KEY_CHECK; + break; + case '6': + switch(s[3]) { + default: + break; + case '3': + switch(s[4]) { + default: + break; + case 'k': + switch(s[5]) { + default: + break; + case 'd': + switch(s[6]) { + default: + break; + case 'f': + switch(s[7]) { + default: + break; + case '-': + switch(s[8]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 9) == 0) + return PIDX_PROV_PARAM_X963KDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 9) == 0) + return PIDX_PROV_PARAM_X963KDF_KEY_CHECK; + } + } + } + } + } + } + } + break; + case 'c': + if (strcmp("ghash", s + 2) == 0) + return PIDX_KDF_PARAM_SSHKDF_XCGHASH; + break; + case 'o': + switch(s[2]) { + default: + break; + case 'f': + switch(s[3]) { + default: + break; + case 'l': + if (strcmp("en", s + 4) == 0) + return PIDX_DIGEST_PARAM_XOFLEN; + break; + case '\0': + return PIDX_MAC_PARAM_XOF; + } + } + break; + case 'p': + switch(s[2]) { + default: + break; + case '1': + switch(s[3]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XP1; + } + break; + case '2': + switch(s[3]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XP2; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XP; + } + break; + case 'q': + switch(s[2]) { + default: + break; + case '1': + switch(s[3]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XQ1; + } + break; + case '2': + switch(s[3]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XQ2; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XQ; + } + break; + case 't': + if (strcmp("s_standard", s + 2) == 0) + return PIDX_CIPHER_PARAM_XTS_STANDARD; + } + } + return -1; +} + +/* End of TRIE */ diff --git a/deps/openssl/config/archs/VC-WIN64-ARM/no-asm/include/internal/param_names.h b/deps/openssl/config/archs/VC-WIN64-ARM/no-asm/include/internal/param_names.h new file mode 100644 index 00000000000000..ec5bff6e31c126 --- /dev/null +++ b/deps/openssl/config/archs/VC-WIN64-ARM/no-asm/include/internal/param_names.h @@ -0,0 +1,469 @@ +/* + * WARNING: do not edit! + * Generated by makefile from include/internal/param_names.h.in + * + * Copyright 2023 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + +int ossl_param_find_pidx(const char *s); + +/* Parameter name definitions - generated by util/perl/OpenSSL/paramnames.pm */ +#define NUM_PIDX 346 + +#define PIDX_ALG_PARAM_ALGORITHM_ID 0 +#define PIDX_ALG_PARAM_ALGORITHM_ID_PARAMS 1 +#define PIDX_ALG_PARAM_CIPHER 2 +#define PIDX_ALG_PARAM_DIGEST 3 +#define PIDX_ALG_PARAM_ENGINE 4 +#define PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR 5 +#define PIDX_ALG_PARAM_MAC 6 +#define PIDX_ALG_PARAM_PROPERTIES 7 +#define PIDX_ASYM_CIPHER_PARAM_DIGEST PIDX_PKEY_PARAM_DIGEST +#define PIDX_ASYM_CIPHER_PARAM_ENGINE PIDX_PKEY_PARAM_ENGINE +#define PIDX_ASYM_CIPHER_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_ASYM_CIPHER_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_ASYM_CIPHER_PARAM_FIPS_RSA_PKCS15_PAD_DISABLED PIDX_PROV_PARAM_RSA_PKCS15_PAD_DISABLED +#define PIDX_ASYM_CIPHER_PARAM_IMPLICIT_REJECTION 8 +#define PIDX_ASYM_CIPHER_PARAM_MGF1_DIGEST PIDX_PKEY_PARAM_MGF1_DIGEST +#define PIDX_ASYM_CIPHER_PARAM_MGF1_DIGEST_PROPS PIDX_PKEY_PARAM_MGF1_PROPERTIES +#define PIDX_ASYM_CIPHER_PARAM_OAEP_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_ASYM_CIPHER_PARAM_OAEP_DIGEST_PROPS 9 +#define PIDX_ASYM_CIPHER_PARAM_OAEP_LABEL 10 +#define PIDX_ASYM_CIPHER_PARAM_PAD_MODE PIDX_PKEY_PARAM_PAD_MODE +#define PIDX_ASYM_CIPHER_PARAM_PROPERTIES PIDX_PKEY_PARAM_PROPERTIES +#define PIDX_ASYM_CIPHER_PARAM_TLS_CLIENT_VERSION 11 +#define PIDX_ASYM_CIPHER_PARAM_TLS_NEGOTIATED_VERSION 12 +#define PIDX_CAPABILITY_TLS_GROUP_ALG 13 +#define PIDX_CAPABILITY_TLS_GROUP_ID 14 +#define PIDX_CAPABILITY_TLS_GROUP_IS_KEM 15 +#define PIDX_CAPABILITY_TLS_GROUP_MAX_DTLS 16 +#define PIDX_CAPABILITY_TLS_GROUP_MAX_TLS 17 +#define PIDX_CAPABILITY_TLS_GROUP_MIN_DTLS 18 +#define PIDX_CAPABILITY_TLS_GROUP_MIN_TLS 19 +#define PIDX_CAPABILITY_TLS_GROUP_NAME 20 +#define PIDX_CAPABILITY_TLS_GROUP_NAME_INTERNAL 21 +#define PIDX_CAPABILITY_TLS_GROUP_SECURITY_BITS 22 +#define PIDX_CAPABILITY_TLS_SIGALG_CODE_POINT 23 +#define PIDX_CAPABILITY_TLS_SIGALG_HASH_NAME 24 +#define PIDX_CAPABILITY_TLS_SIGALG_HASH_OID 25 +#define PIDX_CAPABILITY_TLS_SIGALG_IANA_NAME 26 +#define PIDX_CAPABILITY_TLS_SIGALG_KEYTYPE 27 +#define PIDX_CAPABILITY_TLS_SIGALG_KEYTYPE_OID 28 +#define PIDX_CAPABILITY_TLS_SIGALG_MAX_DTLS 16 +#define PIDX_CAPABILITY_TLS_SIGALG_MAX_TLS 17 +#define PIDX_CAPABILITY_TLS_SIGALG_MIN_DTLS 18 +#define PIDX_CAPABILITY_TLS_SIGALG_MIN_TLS 19 +#define PIDX_CAPABILITY_TLS_SIGALG_NAME 29 +#define PIDX_CAPABILITY_TLS_SIGALG_OID 30 +#define PIDX_CAPABILITY_TLS_SIGALG_SECURITY_BITS 31 +#define PIDX_CAPABILITY_TLS_SIGALG_SIG_NAME 32 +#define PIDX_CAPABILITY_TLS_SIGALG_SIG_OID 33 +#define PIDX_CIPHER_PARAM_AEAD 34 +#define PIDX_CIPHER_PARAM_AEAD_IVLEN PIDX_CIPHER_PARAM_IVLEN +#define PIDX_CIPHER_PARAM_AEAD_IV_GENERATED 35 +#define PIDX_CIPHER_PARAM_AEAD_MAC_KEY 36 +#define PIDX_CIPHER_PARAM_AEAD_TAG 37 +#define PIDX_CIPHER_PARAM_AEAD_TAGLEN 38 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_AAD 39 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_AAD_PAD 40 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_GET_IV_GEN 41 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_IV_FIXED 42 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_SET_IV_INV 43 +#define PIDX_CIPHER_PARAM_ALGORITHM_ID PIDX_ALG_PARAM_ALGORITHM_ID +#define PIDX_CIPHER_PARAM_ALGORITHM_ID_PARAMS PIDX_ALG_PARAM_ALGORITHM_ID_PARAMS +#define PIDX_CIPHER_PARAM_ALGORITHM_ID_PARAMS_OLD 44 +#define PIDX_CIPHER_PARAM_BLOCK_SIZE 45 +#define PIDX_CIPHER_PARAM_CTS 46 +#define PIDX_CIPHER_PARAM_CTS_MODE 47 +#define PIDX_CIPHER_PARAM_CUSTOM_IV 48 +#define PIDX_CIPHER_PARAM_DECRYPT_ONLY 49 +#define PIDX_CIPHER_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_CIPHER_PARAM_FIPS_ENCRYPT_CHECK 50 +#define PIDX_CIPHER_PARAM_HAS_RAND_KEY 51 +#define PIDX_CIPHER_PARAM_IV 52 +#define PIDX_CIPHER_PARAM_IVLEN 53 +#define PIDX_CIPHER_PARAM_KEYLEN 54 +#define PIDX_CIPHER_PARAM_MODE 55 +#define PIDX_CIPHER_PARAM_NUM 56 +#define PIDX_CIPHER_PARAM_PADDING 57 +#define PIDX_CIPHER_PARAM_PIPELINE_AEAD_TAG 58 +#define PIDX_CIPHER_PARAM_RANDOM_KEY 59 +#define PIDX_CIPHER_PARAM_RC2_KEYBITS 60 +#define PIDX_CIPHER_PARAM_ROUNDS 61 +#define PIDX_CIPHER_PARAM_SPEED 62 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK 63 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD 64 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD_PACKLEN 65 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC 66 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_IN 67 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_LEN 68 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_INTERLEAVE 69 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_BUFSIZE 70 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_SEND_FRAGMENT 71 +#define PIDX_CIPHER_PARAM_TLS_MAC 72 +#define PIDX_CIPHER_PARAM_TLS_MAC_SIZE 73 +#define PIDX_CIPHER_PARAM_TLS_VERSION 74 +#define PIDX_CIPHER_PARAM_UPDATED_IV 75 +#define PIDX_CIPHER_PARAM_USE_BITS 76 +#define PIDX_CIPHER_PARAM_XTS_STANDARD 77 +#define PIDX_DECODER_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_DIGEST_PARAM_ALGID_ABSENT 78 +#define PIDX_DIGEST_PARAM_BLOCK_SIZE 45 +#define PIDX_DIGEST_PARAM_MICALG 79 +#define PIDX_DIGEST_PARAM_PAD_TYPE 80 +#define PIDX_DIGEST_PARAM_SIZE 81 +#define PIDX_DIGEST_PARAM_SSL3_MS 82 +#define PIDX_DIGEST_PARAM_XOF 83 +#define PIDX_DIGEST_PARAM_XOFLEN 84 +#define PIDX_DRBG_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_DRBG_PARAM_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_DRBG_PARAM_ENTROPY_REQUIRED 85 +#define PIDX_DRBG_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_DRBG_PARAM_FIPS_DIGEST_CHECK PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK +#define PIDX_DRBG_PARAM_MAC PIDX_ALG_PARAM_MAC +#define PIDX_DRBG_PARAM_MAX_ADINLEN 86 +#define PIDX_DRBG_PARAM_MAX_ENTROPYLEN 87 +#define PIDX_DRBG_PARAM_MAX_LENGTH 88 +#define PIDX_DRBG_PARAM_MAX_NONCELEN 89 +#define PIDX_DRBG_PARAM_MAX_PERSLEN 90 +#define PIDX_DRBG_PARAM_MIN_ENTROPYLEN 91 +#define PIDX_DRBG_PARAM_MIN_LENGTH 92 +#define PIDX_DRBG_PARAM_MIN_NONCELEN 93 +#define PIDX_DRBG_PARAM_PREDICTION_RESISTANCE 94 +#define PIDX_DRBG_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_DRBG_PARAM_RANDOM_DATA 95 +#define PIDX_DRBG_PARAM_RESEED_COUNTER 96 +#define PIDX_DRBG_PARAM_RESEED_REQUESTS 97 +#define PIDX_DRBG_PARAM_RESEED_TIME 98 +#define PIDX_DRBG_PARAM_RESEED_TIME_INTERVAL 99 +#define PIDX_DRBG_PARAM_SIZE 81 +#define PIDX_DRBG_PARAM_USE_DF 100 +#define PIDX_ENCODER_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_ENCODER_PARAM_ENCRYPT_LEVEL 101 +#define PIDX_ENCODER_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_ENCODER_PARAM_SAVE_PARAMETERS 102 +#define PIDX_EXCHANGE_PARAM_EC_ECDH_COFACTOR_MODE 103 +#define PIDX_EXCHANGE_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_EXCHANGE_PARAM_FIPS_DIGEST_CHECK PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK +#define PIDX_EXCHANGE_PARAM_FIPS_ECDH_COFACTOR_CHECK PIDX_PROV_PARAM_ECDH_COFACTOR_CHECK +#define PIDX_EXCHANGE_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_EXCHANGE_PARAM_KDF_DIGEST 104 +#define PIDX_EXCHANGE_PARAM_KDF_DIGEST_PROPS 105 +#define PIDX_EXCHANGE_PARAM_KDF_OUTLEN 106 +#define PIDX_EXCHANGE_PARAM_KDF_TYPE 107 +#define PIDX_EXCHANGE_PARAM_KDF_UKM 108 +#define PIDX_EXCHANGE_PARAM_PAD 109 +#define PIDX_GEN_PARAM_ITERATION 110 +#define PIDX_GEN_PARAM_POTENTIAL 111 +#define PIDX_KDF_PARAM_ARGON2_AD 112 +#define PIDX_KDF_PARAM_ARGON2_LANES 113 +#define PIDX_KDF_PARAM_ARGON2_MEMCOST 114 +#define PIDX_KDF_PARAM_ARGON2_VERSION 115 +#define PIDX_KDF_PARAM_CEK_ALG 116 +#define PIDX_KDF_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_KDF_PARAM_CONSTANT 117 +#define PIDX_KDF_PARAM_DATA 118 +#define PIDX_KDF_PARAM_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_KDF_PARAM_EARLY_CLEAN 119 +#define PIDX_KDF_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_KDF_PARAM_FIPS_DIGEST_CHECK PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK +#define PIDX_KDF_PARAM_FIPS_EMS_CHECK 120 +#define PIDX_KDF_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_KDF_PARAM_HMACDRBG_ENTROPY 121 +#define PIDX_KDF_PARAM_HMACDRBG_NONCE 122 +#define PIDX_KDF_PARAM_INFO 123 +#define PIDX_KDF_PARAM_ITER 124 +#define PIDX_KDF_PARAM_KBKDF_R 125 +#define PIDX_KDF_PARAM_KBKDF_USE_L 126 +#define PIDX_KDF_PARAM_KBKDF_USE_SEPARATOR 127 +#define PIDX_KDF_PARAM_KEY 128 +#define PIDX_KDF_PARAM_LABEL 129 +#define PIDX_KDF_PARAM_MAC PIDX_ALG_PARAM_MAC +#define PIDX_KDF_PARAM_MAC_SIZE 130 +#define PIDX_KDF_PARAM_MODE 55 +#define PIDX_KDF_PARAM_PASSWORD 131 +#define PIDX_KDF_PARAM_PKCS12_ID 132 +#define PIDX_KDF_PARAM_PKCS5 133 +#define PIDX_KDF_PARAM_PREFIX 134 +#define PIDX_KDF_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_KDF_PARAM_SALT 135 +#define PIDX_KDF_PARAM_SCRYPT_MAXMEM 136 +#define PIDX_KDF_PARAM_SCRYPT_N 137 +#define PIDX_KDF_PARAM_SCRYPT_P 138 +#define PIDX_KDF_PARAM_SCRYPT_R 125 +#define PIDX_KDF_PARAM_SECRET 139 +#define PIDX_KDF_PARAM_SEED 140 +#define PIDX_KDF_PARAM_SIZE 81 +#define PIDX_KDF_PARAM_SSHKDF_SESSION_ID 141 +#define PIDX_KDF_PARAM_SSHKDF_TYPE 142 +#define PIDX_KDF_PARAM_SSHKDF_XCGHASH 143 +#define PIDX_KDF_PARAM_THREADS 144 +#define PIDX_KDF_PARAM_UKM 145 +#define PIDX_KDF_PARAM_X942_ACVPINFO 146 +#define PIDX_KDF_PARAM_X942_PARTYUINFO 147 +#define PIDX_KDF_PARAM_X942_PARTYVINFO 148 +#define PIDX_KDF_PARAM_X942_SUPP_PRIVINFO 149 +#define PIDX_KDF_PARAM_X942_SUPP_PUBINFO 150 +#define PIDX_KDF_PARAM_X942_USE_KEYBITS 151 +#define PIDX_KEM_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_KEM_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_KEM_PARAM_IKME 152 +#define PIDX_KEM_PARAM_OPERATION 153 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_BLOCK_PADDING 154 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_HS_PADDING 155 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_MAX_EARLY_DATA 156 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_MAX_FRAG_LEN 157 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_MODE 55 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_OPTIONS 158 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_READ_AHEAD 159 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_STREAM_MAC 160 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_TLSTREE 161 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_USE_ETM 162 +#define PIDX_LIBSSL_RECORD_LAYER_READ_BUFFER_LEN 163 +#define PIDX_MAC_PARAM_BLOCK_SIZE 164 +#define PIDX_MAC_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_MAC_PARAM_CUSTOM 165 +#define PIDX_MAC_PARAM_C_ROUNDS 166 +#define PIDX_MAC_PARAM_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_MAC_PARAM_DIGEST_NOINIT 167 +#define PIDX_MAC_PARAM_DIGEST_ONESHOT 168 +#define PIDX_MAC_PARAM_D_ROUNDS 169 +#define PIDX_MAC_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_MAC_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_MAC_PARAM_FIPS_NO_SHORT_MAC PIDX_PROV_PARAM_NO_SHORT_MAC +#define PIDX_MAC_PARAM_IV 52 +#define PIDX_MAC_PARAM_KEY 128 +#define PIDX_MAC_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_MAC_PARAM_SALT 135 +#define PIDX_MAC_PARAM_SIZE 81 +#define PIDX_MAC_PARAM_TLS_DATA_SIZE 170 +#define PIDX_MAC_PARAM_XOF 83 +#define PIDX_OBJECT_PARAM_DATA 118 +#define PIDX_OBJECT_PARAM_DATA_STRUCTURE 171 +#define PIDX_OBJECT_PARAM_DATA_TYPE 172 +#define PIDX_OBJECT_PARAM_DESC 173 +#define PIDX_OBJECT_PARAM_INPUT_TYPE 174 +#define PIDX_OBJECT_PARAM_REFERENCE 175 +#define PIDX_OBJECT_PARAM_TYPE 142 +#define PIDX_PASSPHRASE_PARAM_INFO 123 +#define PIDX_PKEY_PARAM_ALGORITHM_ID PIDX_ALG_PARAM_ALGORITHM_ID +#define PIDX_PKEY_PARAM_ALGORITHM_ID_PARAMS PIDX_ALG_PARAM_ALGORITHM_ID_PARAMS +#define PIDX_PKEY_PARAM_BITS 176 +#define PIDX_PKEY_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_PKEY_PARAM_DEFAULT_DIGEST 177 +#define PIDX_PKEY_PARAM_DHKEM_IKM 178 +#define PIDX_PKEY_PARAM_DH_GENERATOR 179 +#define PIDX_PKEY_PARAM_DH_PRIV_LEN 180 +#define PIDX_PKEY_PARAM_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_PKEY_PARAM_DIGEST_SIZE 181 +#define PIDX_PKEY_PARAM_DIST_ID 182 +#define PIDX_PKEY_PARAM_EC_A 183 +#define PIDX_PKEY_PARAM_EC_B 184 +#define PIDX_PKEY_PARAM_EC_CHAR2_M 185 +#define PIDX_PKEY_PARAM_EC_CHAR2_PP_K1 186 +#define PIDX_PKEY_PARAM_EC_CHAR2_PP_K2 187 +#define PIDX_PKEY_PARAM_EC_CHAR2_PP_K3 188 +#define PIDX_PKEY_PARAM_EC_CHAR2_TP_BASIS 189 +#define PIDX_PKEY_PARAM_EC_CHAR2_TYPE 190 +#define PIDX_PKEY_PARAM_EC_COFACTOR 191 +#define PIDX_PKEY_PARAM_EC_DECODED_FROM_EXPLICIT_PARAMS 192 +#define PIDX_PKEY_PARAM_EC_ENCODING 193 +#define PIDX_PKEY_PARAM_EC_FIELD_TYPE 194 +#define PIDX_PKEY_PARAM_EC_GENERATOR 195 +#define PIDX_PKEY_PARAM_EC_GROUP_CHECK_TYPE 196 +#define PIDX_PKEY_PARAM_EC_INCLUDE_PUBLIC 197 +#define PIDX_PKEY_PARAM_EC_ORDER 198 +#define PIDX_PKEY_PARAM_EC_P 138 +#define PIDX_PKEY_PARAM_EC_POINT_CONVERSION_FORMAT 199 +#define PIDX_PKEY_PARAM_EC_PUB_X 200 +#define PIDX_PKEY_PARAM_EC_PUB_Y 201 +#define PIDX_PKEY_PARAM_EC_SEED 140 +#define PIDX_PKEY_PARAM_ENCODED_PUBLIC_KEY 202 +#define PIDX_PKEY_PARAM_ENGINE PIDX_ALG_PARAM_ENGINE +#define PIDX_PKEY_PARAM_FFC_COFACTOR 203 +#define PIDX_PKEY_PARAM_FFC_DIGEST PIDX_PKEY_PARAM_DIGEST +#define PIDX_PKEY_PARAM_FFC_DIGEST_PROPS PIDX_PKEY_PARAM_PROPERTIES +#define PIDX_PKEY_PARAM_FFC_G 204 +#define PIDX_PKEY_PARAM_FFC_GINDEX 205 +#define PIDX_PKEY_PARAM_FFC_H 206 +#define PIDX_PKEY_PARAM_FFC_P 138 +#define PIDX_PKEY_PARAM_FFC_PBITS 207 +#define PIDX_PKEY_PARAM_FFC_PCOUNTER 208 +#define PIDX_PKEY_PARAM_FFC_Q 209 +#define PIDX_PKEY_PARAM_FFC_QBITS 210 +#define PIDX_PKEY_PARAM_FFC_SEED 140 +#define PIDX_PKEY_PARAM_FFC_TYPE 142 +#define PIDX_PKEY_PARAM_FFC_VALIDATE_G 211 +#define PIDX_PKEY_PARAM_FFC_VALIDATE_LEGACY 212 +#define PIDX_PKEY_PARAM_FFC_VALIDATE_PQ 213 +#define PIDX_PKEY_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK 214 +#define PIDX_PKEY_PARAM_FIPS_KEY_CHECK 215 +#define PIDX_PKEY_PARAM_FIPS_SIGN_CHECK 216 +#define PIDX_PKEY_PARAM_GROUP_NAME 217 +#define PIDX_PKEY_PARAM_IMPLICIT_REJECTION 8 +#define PIDX_PKEY_PARAM_MANDATORY_DIGEST 218 +#define PIDX_PKEY_PARAM_MASKGENFUNC 219 +#define PIDX_PKEY_PARAM_MAX_SIZE 220 +#define PIDX_PKEY_PARAM_MGF1_DIGEST 221 +#define PIDX_PKEY_PARAM_MGF1_PROPERTIES 222 +#define PIDX_PKEY_PARAM_ML_DSA_INPUT_FORMATS 223 +#define PIDX_PKEY_PARAM_ML_DSA_OUTPUT_FORMATS 224 +#define PIDX_PKEY_PARAM_ML_DSA_PREFER_SEED 225 +#define PIDX_PKEY_PARAM_ML_DSA_RETAIN_SEED 226 +#define PIDX_PKEY_PARAM_ML_DSA_SEED 140 +#define PIDX_PKEY_PARAM_ML_KEM_IMPORT_PCT_TYPE 227 +#define PIDX_PKEY_PARAM_ML_KEM_INPUT_FORMATS 228 +#define PIDX_PKEY_PARAM_ML_KEM_OUTPUT_FORMATS 229 +#define PIDX_PKEY_PARAM_ML_KEM_PREFER_SEED 230 +#define PIDX_PKEY_PARAM_ML_KEM_RETAIN_SEED 231 +#define PIDX_PKEY_PARAM_ML_KEM_SEED 140 +#define PIDX_PKEY_PARAM_PAD_MODE 232 +#define PIDX_PKEY_PARAM_PRIV_KEY 233 +#define PIDX_PKEY_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_PKEY_PARAM_PUB_KEY 234 +#define PIDX_PKEY_PARAM_RSA_BITS PIDX_PKEY_PARAM_BITS +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT 235 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT1 236 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT2 237 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT3 238 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT4 239 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT5 240 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT6 241 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT7 242 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT8 243 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT9 244 +#define PIDX_PKEY_PARAM_RSA_D 245 +#define PIDX_PKEY_PARAM_RSA_DERIVE_FROM_PQ 246 +#define PIDX_PKEY_PARAM_RSA_DIGEST PIDX_PKEY_PARAM_DIGEST +#define PIDX_PKEY_PARAM_RSA_DIGEST_PROPS PIDX_PKEY_PARAM_PROPERTIES +#define PIDX_PKEY_PARAM_RSA_E 247 +#define PIDX_PKEY_PARAM_RSA_EXPONENT 248 +#define PIDX_PKEY_PARAM_RSA_EXPONENT1 249 +#define PIDX_PKEY_PARAM_RSA_EXPONENT10 250 +#define PIDX_PKEY_PARAM_RSA_EXPONENT2 251 +#define PIDX_PKEY_PARAM_RSA_EXPONENT3 252 +#define PIDX_PKEY_PARAM_RSA_EXPONENT4 253 +#define PIDX_PKEY_PARAM_RSA_EXPONENT5 254 +#define PIDX_PKEY_PARAM_RSA_EXPONENT6 255 +#define PIDX_PKEY_PARAM_RSA_EXPONENT7 256 +#define PIDX_PKEY_PARAM_RSA_EXPONENT8 257 +#define PIDX_PKEY_PARAM_RSA_EXPONENT9 258 +#define PIDX_PKEY_PARAM_RSA_FACTOR 259 +#define PIDX_PKEY_PARAM_RSA_FACTOR1 260 +#define PIDX_PKEY_PARAM_RSA_FACTOR10 261 +#define PIDX_PKEY_PARAM_RSA_FACTOR2 262 +#define PIDX_PKEY_PARAM_RSA_FACTOR3 263 +#define PIDX_PKEY_PARAM_RSA_FACTOR4 264 +#define PIDX_PKEY_PARAM_RSA_FACTOR5 265 +#define PIDX_PKEY_PARAM_RSA_FACTOR6 266 +#define PIDX_PKEY_PARAM_RSA_FACTOR7 267 +#define PIDX_PKEY_PARAM_RSA_FACTOR8 268 +#define PIDX_PKEY_PARAM_RSA_FACTOR9 269 +#define PIDX_PKEY_PARAM_RSA_MASKGENFUNC PIDX_PKEY_PARAM_MASKGENFUNC +#define PIDX_PKEY_PARAM_RSA_MGF1_DIGEST PIDX_PKEY_PARAM_MGF1_DIGEST +#define PIDX_PKEY_PARAM_RSA_N 137 +#define PIDX_PKEY_PARAM_RSA_PRIMES 270 +#define PIDX_PKEY_PARAM_RSA_PSS_SALTLEN 271 +#define PIDX_PKEY_PARAM_RSA_TEST_P1 272 +#define PIDX_PKEY_PARAM_RSA_TEST_P2 273 +#define PIDX_PKEY_PARAM_RSA_TEST_Q1 274 +#define PIDX_PKEY_PARAM_RSA_TEST_Q2 275 +#define PIDX_PKEY_PARAM_RSA_TEST_XP 276 +#define PIDX_PKEY_PARAM_RSA_TEST_XP1 277 +#define PIDX_PKEY_PARAM_RSA_TEST_XP2 278 +#define PIDX_PKEY_PARAM_RSA_TEST_XQ 279 +#define PIDX_PKEY_PARAM_RSA_TEST_XQ1 280 +#define PIDX_PKEY_PARAM_RSA_TEST_XQ2 281 +#define PIDX_PKEY_PARAM_SECURITY_BITS 282 +#define PIDX_PKEY_PARAM_SLH_DSA_SEED 140 +#define PIDX_PKEY_PARAM_USE_COFACTOR_ECDH PIDX_PKEY_PARAM_USE_COFACTOR_FLAG +#define PIDX_PKEY_PARAM_USE_COFACTOR_FLAG 283 +#define PIDX_PROV_PARAM_BUILDINFO 284 +#define PIDX_PROV_PARAM_CORE_MODULE_FILENAME 285 +#define PIDX_PROV_PARAM_CORE_PROV_NAME 286 +#define PIDX_PROV_PARAM_CORE_VERSION 287 +#define PIDX_PROV_PARAM_DRBG_TRUNC_DIGEST 288 +#define PIDX_PROV_PARAM_DSA_SIGN_DISABLED 289 +#define PIDX_PROV_PARAM_ECDH_COFACTOR_CHECK 290 +#define PIDX_PROV_PARAM_HKDF_DIGEST_CHECK 291 +#define PIDX_PROV_PARAM_HKDF_KEY_CHECK 292 +#define PIDX_PROV_PARAM_HMAC_KEY_CHECK 293 +#define PIDX_PROV_PARAM_KBKDF_KEY_CHECK 294 +#define PIDX_PROV_PARAM_KMAC_KEY_CHECK 295 +#define PIDX_PROV_PARAM_NAME 296 +#define PIDX_PROV_PARAM_NO_SHORT_MAC 297 +#define PIDX_PROV_PARAM_PBKDF2_LOWER_BOUND_CHECK 298 +#define PIDX_PROV_PARAM_RSA_PKCS15_PAD_DISABLED 299 +#define PIDX_PROV_PARAM_RSA_PSS_SALTLEN_CHECK 300 +#define PIDX_PROV_PARAM_RSA_SIGN_X931_PAD_DISABLED 301 +#define PIDX_PROV_PARAM_SECURITY_CHECKS 302 +#define PIDX_PROV_PARAM_SELF_TEST_DESC 303 +#define PIDX_PROV_PARAM_SELF_TEST_PHASE 304 +#define PIDX_PROV_PARAM_SELF_TEST_TYPE 305 +#define PIDX_PROV_PARAM_SIGNATURE_DIGEST_CHECK 306 +#define PIDX_PROV_PARAM_SSHKDF_DIGEST_CHECK 307 +#define PIDX_PROV_PARAM_SSHKDF_KEY_CHECK 308 +#define PIDX_PROV_PARAM_SSKDF_DIGEST_CHECK 309 +#define PIDX_PROV_PARAM_SSKDF_KEY_CHECK 310 +#define PIDX_PROV_PARAM_STATUS 311 +#define PIDX_PROV_PARAM_TDES_ENCRYPT_DISABLED 312 +#define PIDX_PROV_PARAM_TLS13_KDF_DIGEST_CHECK 313 +#define PIDX_PROV_PARAM_TLS13_KDF_KEY_CHECK 314 +#define PIDX_PROV_PARAM_TLS1_PRF_DIGEST_CHECK 315 +#define PIDX_PROV_PARAM_TLS1_PRF_EMS_CHECK 316 +#define PIDX_PROV_PARAM_TLS1_PRF_KEY_CHECK 317 +#define PIDX_PROV_PARAM_VERSION 115 +#define PIDX_PROV_PARAM_X942KDF_KEY_CHECK 318 +#define PIDX_PROV_PARAM_X963KDF_DIGEST_CHECK 319 +#define PIDX_PROV_PARAM_X963KDF_KEY_CHECK 320 +#define PIDX_RAND_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_RAND_PARAM_GENERATE 321 +#define PIDX_RAND_PARAM_MAX_REQUEST 322 +#define PIDX_RAND_PARAM_STATE 323 +#define PIDX_RAND_PARAM_STRENGTH 324 +#define PIDX_RAND_PARAM_TEST_ENTROPY 325 +#define PIDX_RAND_PARAM_TEST_NONCE 326 +#define PIDX_SIGNATURE_PARAM_ADD_RANDOM 327 +#define PIDX_SIGNATURE_PARAM_ALGORITHM_ID PIDX_PKEY_PARAM_ALGORITHM_ID +#define PIDX_SIGNATURE_PARAM_ALGORITHM_ID_PARAMS PIDX_PKEY_PARAM_ALGORITHM_ID_PARAMS +#define PIDX_SIGNATURE_PARAM_CONTEXT_STRING 328 +#define PIDX_SIGNATURE_PARAM_DETERMINISTIC 329 +#define PIDX_SIGNATURE_PARAM_DIGEST PIDX_PKEY_PARAM_DIGEST +#define PIDX_SIGNATURE_PARAM_DIGEST_SIZE PIDX_PKEY_PARAM_DIGEST_SIZE +#define PIDX_SIGNATURE_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_SIGNATURE_PARAM_FIPS_DIGEST_CHECK PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK +#define PIDX_SIGNATURE_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_SIGNATURE_PARAM_FIPS_RSA_PSS_SALTLEN_CHECK 300 +#define PIDX_SIGNATURE_PARAM_FIPS_SIGN_CHECK PIDX_PKEY_PARAM_FIPS_SIGN_CHECK +#define PIDX_SIGNATURE_PARAM_FIPS_SIGN_X931_PAD_CHECK 330 +#define PIDX_SIGNATURE_PARAM_FIPS_VERIFY_MESSAGE 331 +#define PIDX_SIGNATURE_PARAM_INSTANCE 332 +#define PIDX_SIGNATURE_PARAM_KAT 333 +#define PIDX_SIGNATURE_PARAM_MESSAGE_ENCODING 334 +#define PIDX_SIGNATURE_PARAM_MGF1_DIGEST PIDX_PKEY_PARAM_MGF1_DIGEST +#define PIDX_SIGNATURE_PARAM_MGF1_PROPERTIES PIDX_PKEY_PARAM_MGF1_PROPERTIES +#define PIDX_SIGNATURE_PARAM_MU 335 +#define PIDX_SIGNATURE_PARAM_NONCE_TYPE 336 +#define PIDX_SIGNATURE_PARAM_PAD_MODE PIDX_PKEY_PARAM_PAD_MODE +#define PIDX_SIGNATURE_PARAM_PROPERTIES PIDX_PKEY_PARAM_PROPERTIES +#define PIDX_SIGNATURE_PARAM_PSS_SALTLEN 271 +#define PIDX_SIGNATURE_PARAM_SIGNATURE 337 +#define PIDX_SIGNATURE_PARAM_TEST_ENTROPY 338 +#define PIDX_SKEY_PARAM_KEY_LENGTH 339 +#define PIDX_SKEY_PARAM_RAW_BYTES 340 +#define PIDX_STORE_PARAM_ALIAS 341 +#define PIDX_STORE_PARAM_DIGEST 3 +#define PIDX_STORE_PARAM_EXPECT 342 +#define PIDX_STORE_PARAM_FINGERPRINT 343 +#define PIDX_STORE_PARAM_INPUT_TYPE 174 +#define PIDX_STORE_PARAM_ISSUER 296 +#define PIDX_STORE_PARAM_PROPERTIES 7 +#define PIDX_STORE_PARAM_SERIAL 344 +#define PIDX_STORE_PARAM_SUBJECT 345 diff --git a/deps/openssl/config/archs/VC-WIN64-ARM/no-asm/include/openssl/asn1.h b/deps/openssl/config/archs/VC-WIN64-ARM/no-asm/include/openssl/asn1.h index e28efbbb718e2b..5129217b2e0977 100644 --- a/deps/openssl/config/archs/VC-WIN64-ARM/no-asm/include/openssl/asn1.h +++ b/deps/openssl/config/archs/VC-WIN64-ARM/no-asm/include/openssl/asn1.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by makefile from include/openssl/asn1.h.in * - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -21,6 +21,9 @@ # define HEADER_ASN1_H # endif +# ifndef OPENSSL_NO_STDIO +# include +# endif # include # include # include @@ -50,14 +53,14 @@ extern "C" { # define V_ASN1_PRIMITIVE_TAG 0x1f # define V_ASN1_PRIMATIVE_TAG /*compat*/ V_ASN1_PRIMITIVE_TAG -# define V_ASN1_APP_CHOOSE -2/* let the recipient choose */ -# define V_ASN1_OTHER -3/* used in ASN1_TYPE */ -# define V_ASN1_ANY -4/* used in ASN1 template code */ +# define V_ASN1_APP_CHOOSE -2 /* let the recipient choose */ +# define V_ASN1_OTHER -3 /* used in ASN1_TYPE */ +# define V_ASN1_ANY -4 /* used in ASN1 template code */ # define V_ASN1_UNDEF -1 /* ASN.1 tag values */ # define V_ASN1_EOC 0 -# define V_ASN1_BOOLEAN 1 /**/ +# define V_ASN1_BOOLEAN 1 # define V_ASN1_INTEGER 2 # define V_ASN1_BIT_STRING 3 # define V_ASN1_OCTET_STRING 4 @@ -70,19 +73,19 @@ extern "C" { # define V_ASN1_UTF8STRING 12 # define V_ASN1_SEQUENCE 16 # define V_ASN1_SET 17 -# define V_ASN1_NUMERICSTRING 18 /**/ +# define V_ASN1_NUMERICSTRING 18 # define V_ASN1_PRINTABLESTRING 19 # define V_ASN1_T61STRING 20 -# define V_ASN1_TELETEXSTRING 20/* alias */ -# define V_ASN1_VIDEOTEXSTRING 21 /**/ +# define V_ASN1_TELETEXSTRING 20 /* alias */ +# define V_ASN1_VIDEOTEXSTRING 21 # define V_ASN1_IA5STRING 22 # define V_ASN1_UTCTIME 23 -# define V_ASN1_GENERALIZEDTIME 24 /**/ -# define V_ASN1_GRAPHICSTRING 25 /**/ -# define V_ASN1_ISO64STRING 26 /**/ -# define V_ASN1_VISIBLESTRING 26/* alias */ -# define V_ASN1_GENERALSTRING 27 /**/ -# define V_ASN1_UNIVERSALSTRING 28 /**/ +# define V_ASN1_GENERALIZEDTIME 24 +# define V_ASN1_GRAPHICSTRING 25 +# define V_ASN1_ISO64STRING 26 +# define V_ASN1_VISIBLESTRING 26 /* alias */ +# define V_ASN1_GENERALSTRING 27 +# define V_ASN1_UNIVERSALSTRING 28 # define V_ASN1_BMPSTRING 30 /* @@ -155,7 +158,7 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_ALGOR, X509_ALGOR, X509_ALGOR) -# define ASN1_STRING_FLAG_BITS_LEFT 0x08/* Set if 0x07 has bits left value */ +# define ASN1_STRING_FLAG_BITS_LEFT 0x08 /* Set if 0x07 has bits left value */ /* * This indicates that the ASN1_STRING is not a real value but just a place * holder for the location where indefinite length constructed data should be @@ -275,7 +278,7 @@ typedef struct ASN1_TLC_st ASN1_TLC; /* This is just an opaque pointer */ typedef struct ASN1_VALUE_st ASN1_VALUE; -/* Declare ASN1 functions: the implement macro in in asn1t.h */ +/* Declare ASN1 functions: the implement macro is in asn1t.h */ /* * The mysterious 'extern' that's passed to some macros is innocuous, @@ -368,6 +371,7 @@ typedef struct ASN1_VALUE_st ASN1_VALUE; typedef void *d2i_of_void(void **, const unsigned char **, long); typedef int i2d_of_void(const void *, unsigned char **); +typedef int OSSL_i2d_of_void_ctx(const void *, unsigned char **, void *vctx); /*- * The following macros and typedefs allow an ASN1_ITEM @@ -996,6 +1000,8 @@ int ASN1_TYPE_get_int_octetstring(const ASN1_TYPE *a, long *num, unsigned char *data, int max_len); void *ASN1_item_unpack(const ASN1_STRING *oct, const ASN1_ITEM *it); +void *ASN1_item_unpack_ex(const ASN1_STRING *oct, const ASN1_ITEM *it, + OSSL_LIB_CTX *libctx, const char *propq); ASN1_STRING *ASN1_item_pack(void *obj, const ASN1_ITEM *it, ASN1_OCTET_STRING **oct); diff --git a/deps/openssl/config/archs/VC-WIN64-ARM/no-asm/include/openssl/bio.h b/deps/openssl/config/archs/VC-WIN64-ARM/no-asm/include/openssl/bio.h index d094af47b73f1c..be24d086a54013 100644 --- a/deps/openssl/config/archs/VC-WIN64-ARM/no-asm/include/openssl/bio.h +++ b/deps/openssl/config/archs/VC-WIN64-ARM/no-asm/include/openssl/bio.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by makefile from include/openssl/bio.h.in * - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -67,8 +67,13 @@ extern "C" { # define BIO_TYPE_DGRAM_SCTP (24|BIO_TYPE_SOURCE_SINK|BIO_TYPE_DESCRIPTOR) # endif # define BIO_TYPE_CORE_TO_PROV (25|BIO_TYPE_SOURCE_SINK) +# define BIO_TYPE_DGRAM_PAIR (26|BIO_TYPE_SOURCE_SINK) +# define BIO_TYPE_DGRAM_MEM (27|BIO_TYPE_SOURCE_SINK) +/* Custom type starting index returned by BIO_get_new_index() */ #define BIO_TYPE_START 128 +/* Custom type maximum index that can be returned by BIO_get_new_index() */ +#define BIO_TYPE_MASK 0xFF /* * BIO_FILENAME_READ|BIO_CLOSE to open or close on free. @@ -171,6 +176,31 @@ extern "C" { # define BIO_CTRL_SET_INDENT 80 # define BIO_CTRL_GET_INDENT 81 +# define BIO_CTRL_DGRAM_GET_LOCAL_ADDR_CAP 82 +# define BIO_CTRL_DGRAM_GET_LOCAL_ADDR_ENABLE 83 +# define BIO_CTRL_DGRAM_SET_LOCAL_ADDR_ENABLE 84 +# define BIO_CTRL_DGRAM_GET_EFFECTIVE_CAPS 85 +# define BIO_CTRL_DGRAM_GET_CAPS 86 +# define BIO_CTRL_DGRAM_SET_CAPS 87 +# define BIO_CTRL_DGRAM_GET_NO_TRUNC 88 +# define BIO_CTRL_DGRAM_SET_NO_TRUNC 89 + +/* + * internal BIO: + * # define BIO_CTRL_SET_KTLS_TX_ZEROCOPY_SENDFILE 90 + */ + +# define BIO_CTRL_GET_RPOLL_DESCRIPTOR 91 +# define BIO_CTRL_GET_WPOLL_DESCRIPTOR 92 +# define BIO_CTRL_DGRAM_DETECT_PEER_ADDR 93 +# define BIO_CTRL_DGRAM_SET0_LOCAL_ADDR 94 + +# define BIO_DGRAM_CAP_NONE 0U +# define BIO_DGRAM_CAP_HANDLES_SRC_ADDR (1U << 0) +# define BIO_DGRAM_CAP_HANDLES_DST_ADDR (1U << 1) +# define BIO_DGRAM_CAP_PROVIDES_SRC_ADDR (1U << 2) +# define BIO_DGRAM_CAP_PROVIDES_DST_ADDR (1U << 3) + # ifndef OPENSSL_NO_KTLS # define BIO_get_ktls_send(b) \ (BIO_ctrl(b, BIO_CTRL_GET_KTLS_SEND, 0, NULL) > 0) @@ -208,7 +238,7 @@ extern "C" { # define BIO_FLAGS_NONCLEAR_RST 0x400 # define BIO_FLAGS_IN_EOF 0x800 -/* the BIO FLAGS values 0x1000 to 0x4000 are reserved for internal KTLS flags */ +/* the BIO FLAGS values 0x1000 to 0x8000 are reserved for internal KTLS flags */ typedef union bio_addr_st BIO_ADDR; typedef struct bio_addrinfo_st BIO_ADDRINFO; @@ -256,12 +286,14 @@ void BIO_clear_flags(BIO *b, int flags); # define BIO_RR_ACCEPT 0x03 /* These are passed by the BIO callback */ -# define BIO_CB_FREE 0x01 -# define BIO_CB_READ 0x02 -# define BIO_CB_WRITE 0x03 -# define BIO_CB_PUTS 0x04 -# define BIO_CB_GETS 0x05 -# define BIO_CB_CTRL 0x06 +# define BIO_CB_FREE 0x01 +# define BIO_CB_READ 0x02 +# define BIO_CB_WRITE 0x03 +# define BIO_CB_PUTS 0x04 +# define BIO_CB_GETS 0x05 +# define BIO_CB_CTRL 0x06 +# define BIO_CB_RECVMMSG 0x07 +# define BIO_CB_SENDMMSG 0x08 /* * The callback is called before and after the underling operation, The @@ -362,6 +394,36 @@ struct bio_dgram_sctp_prinfo { }; # endif +/* BIO_sendmmsg/BIO_recvmmsg-related definitions */ +typedef struct bio_msg_st { + void *data; + size_t data_len; + BIO_ADDR *peer, *local; + uint64_t flags; +} BIO_MSG; + +typedef struct bio_mmsg_cb_args_st { + BIO_MSG *msg; + size_t stride, num_msg; + uint64_t flags; + size_t *msgs_processed; +} BIO_MMSG_CB_ARGS; + +#define BIO_POLL_DESCRIPTOR_TYPE_NONE 0 +#define BIO_POLL_DESCRIPTOR_TYPE_SOCK_FD 1 +#define BIO_POLL_DESCRIPTOR_TYPE_SSL 2 +#define BIO_POLL_DESCRIPTOR_CUSTOM_START 8192 + +typedef struct bio_poll_descriptor_st { + uint32_t type; + union { + int fd; + void *custom; + uintptr_t custom_ui; + SSL *ssl; + } value; +} BIO_POLL_DESCRIPTOR; + /* * #define BIO_CONN_get_param_hostname BIO_ctrl */ @@ -428,10 +490,17 @@ struct bio_dgram_sctp_prinfo { # define BIO_C_SET_CONNECT_MODE 155 +# define BIO_C_SET_TFO 156 /* like BIO_C_SET_NBIO */ + +# define BIO_C_SET_SOCK_TYPE 157 +# define BIO_C_GET_SOCK_TYPE 158 +# define BIO_C_GET_DGRAM_BIO 159 + # define BIO_set_app_data(s,arg) BIO_set_ex_data(s,0,arg) # define BIO_get_app_data(s) BIO_get_ex_data(s,0) -# define BIO_set_nbio(b,n) BIO_ctrl(b,BIO_C_SET_NBIO,(n),NULL) +# define BIO_set_nbio(b,n) BIO_ctrl(b,BIO_C_SET_NBIO,(n),NULL) +# define BIO_set_tfo(b,n) BIO_ctrl(b,BIO_C_SET_TFO,(n),NULL) # ifndef OPENSSL_NO_SOCK /* IP families we support, for BIO_s_connect() and BIO_s_accept() */ @@ -452,7 +521,11 @@ struct bio_dgram_sctp_prinfo { # define BIO_get_conn_port(b) ((const char *)BIO_ptr_ctrl(b,BIO_C_GET_CONNECT,1)) # define BIO_get_conn_address(b) ((const BIO_ADDR *)BIO_ptr_ctrl(b,BIO_C_GET_CONNECT,2)) # define BIO_get_conn_ip_family(b) BIO_ctrl(b,BIO_C_GET_CONNECT,3,NULL) +# define BIO_get_conn_mode(b) BIO_ctrl(b,BIO_C_GET_CONNECT,4,NULL) # define BIO_set_conn_mode(b,n) BIO_ctrl(b,BIO_C_SET_CONNECT_MODE,(n),NULL) +# define BIO_set_sock_type(b,t) BIO_ctrl(b,BIO_C_SET_SOCK_TYPE,(t),NULL) +# define BIO_get_sock_type(b) BIO_ctrl(b,BIO_C_GET_SOCK_TYPE,0,NULL) +# define BIO_get0_dgram_bio(b, p) BIO_ctrl(b,BIO_C_GET_DGRAM_BIO,0,(void *)(BIO **)(p)) /* BIO_s_accept() */ # define BIO_set_accept_name(b,name) BIO_ctrl(b,BIO_C_SET_ACCEPT,0, \ @@ -469,6 +542,7 @@ struct bio_dgram_sctp_prinfo { (char *)(bio)) # define BIO_set_accept_ip_family(b,f) BIO_int_ctrl(b,BIO_C_SET_ACCEPT,4,f) # define BIO_get_accept_ip_family(b) BIO_ctrl(b,BIO_C_GET_ACCEPT,4,NULL) +# define BIO_set_tfo_accept(b,n) BIO_ctrl(b,BIO_C_SET_ACCEPT,5,(n)?(void *)"a":NULL) /* Aliases kept for backward compatibility */ # define BIO_BIND_NORMAL 0 @@ -596,8 +670,32 @@ int BIO_ctrl_reset_read_request(BIO *b); (int)BIO_ctrl(b, BIO_CTRL_DGRAM_GET_PEER, 0, (char *)(peer)) # define BIO_dgram_set_peer(b,peer) \ (int)BIO_ctrl(b, BIO_CTRL_DGRAM_SET_PEER, 0, (char *)(peer)) +# define BIO_dgram_detect_peer_addr(b,peer) \ + (int)BIO_ctrl(b, BIO_CTRL_DGRAM_DETECT_PEER_ADDR, 0, (char *)(peer)) # define BIO_dgram_get_mtu_overhead(b) \ (unsigned int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_MTU_OVERHEAD, 0, NULL) +# define BIO_dgram_get_local_addr_cap(b) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_LOCAL_ADDR_CAP, 0, NULL) +# define BIO_dgram_get_local_addr_enable(b, penable) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_LOCAL_ADDR_ENABLE, 0, (char *)(penable)) +# define BIO_dgram_set_local_addr_enable(b, enable) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET_LOCAL_ADDR_ENABLE, (enable), NULL) +# define BIO_dgram_get_effective_caps(b) \ + (uint32_t)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_EFFECTIVE_CAPS, 0, NULL) +# define BIO_dgram_get_caps(b) \ + (uint32_t)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_CAPS, 0, NULL) +# define BIO_dgram_set_caps(b, caps) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET_CAPS, (long)(caps), NULL) +# define BIO_dgram_get_no_trunc(b) \ + (unsigned int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_NO_TRUNC, 0, NULL) +# define BIO_dgram_set_no_trunc(b, enable) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET_NO_TRUNC, (enable), NULL) +# define BIO_dgram_get_mtu(b) \ + (unsigned int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_MTU, 0, NULL) +# define BIO_dgram_set_mtu(b, mtu) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET_MTU, (mtu), NULL) +# define BIO_dgram_set0_local_addr(b, addr) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET0_LOCAL_ADDR, 0, (addr)) /* ctrl macros for BIO_f_prefix */ # define BIO_set_prefix(b,p) BIO_ctrl((b), BIO_CTRL_SET_PREFIX, 0, (void *)(p)) @@ -640,10 +738,18 @@ void BIO_vfree(BIO *a); int BIO_up_ref(BIO *a); int BIO_read(BIO *b, void *data, int dlen); int BIO_read_ex(BIO *b, void *data, size_t dlen, size_t *readbytes); +__owur int BIO_recvmmsg(BIO *b, BIO_MSG *msg, + size_t stride, size_t num_msg, uint64_t flags, + size_t *msgs_processed); int BIO_gets(BIO *bp, char *buf, int size); int BIO_get_line(BIO *bio, char *buf, int size); int BIO_write(BIO *b, const void *data, int dlen); int BIO_write_ex(BIO *b, const void *data, size_t dlen, size_t *written); +__owur int BIO_sendmmsg(BIO *b, BIO_MSG *msg, + size_t stride, size_t num_msg, uint64_t flags, + size_t *msgs_processed); +__owur int BIO_get_rpoll_descriptor(BIO *b, BIO_POLL_DESCRIPTOR *desc); +__owur int BIO_get_wpoll_descriptor(BIO *b, BIO_POLL_DESCRIPTOR *desc); int BIO_puts(BIO *bp, const char *buf); int BIO_indent(BIO *b, int indent, int max); long BIO_ctrl(BIO *bp, int cmd, long larg, void *parg); @@ -667,6 +773,9 @@ int BIO_nwrite0(BIO *bio, char **buf); int BIO_nwrite(BIO *bio, char **buf, int num); const BIO_METHOD *BIO_s_mem(void); +# ifndef OPENSSL_NO_DGRAM +const BIO_METHOD *BIO_s_dgram_mem(void); +# endif const BIO_METHOD *BIO_s_secmem(void); BIO *BIO_new_mem_buf(const void *buf, int len); # ifndef OPENSSL_NO_SOCK @@ -686,6 +795,7 @@ const BIO_METHOD *BIO_f_nbio_test(void); const BIO_METHOD *BIO_f_prefix(void); const BIO_METHOD *BIO_s_core(void); # ifndef OPENSSL_NO_DGRAM +const BIO_METHOD *BIO_s_dgram_pair(void); const BIO_METHOD *BIO_s_datagram(void); int BIO_dgram_non_fatal_error(int error); BIO *BIO_new_dgram(int fd, int close_flag); @@ -704,6 +814,7 @@ int BIO_dgram_sctp_msg_waiting(BIO *b); # ifndef OPENSSL_NO_SOCK int BIO_sock_should_retry(int i); int BIO_sock_non_fatal_error(int error); +int BIO_err_is_non_fatal(unsigned int errcode); int BIO_socket_wait(int fd, int for_read, time_t max_time); # endif int BIO_wait(BIO *bio, time_t max_time, unsigned int nap_milliseconds); @@ -726,6 +837,8 @@ int BIO_hex_string(BIO *out, int indent, int width, const void *data, # ifndef OPENSSL_NO_SOCK BIO_ADDR *BIO_ADDR_new(void); +int BIO_ADDR_copy(BIO_ADDR *dst, const BIO_ADDR *src); +BIO_ADDR *BIO_ADDR_dup(const BIO_ADDR *ap); int BIO_ADDR_rawmake(BIO_ADDR *ap, int family, const void *where, size_t wherelen, unsigned short port); void BIO_ADDR_free(BIO_ADDR *); @@ -788,6 +901,7 @@ int BIO_sock_info(int sock, # define BIO_SOCK_KEEPALIVE 0x04 # define BIO_SOCK_NONBLOCK 0x08 # define BIO_SOCK_NODELAY 0x10 +# define BIO_SOCK_TFO 0x20 int BIO_socket(int domain, int socktype, int protocol, int options); int BIO_connect(int sock, const BIO_ADDR *addr, int options); @@ -805,6 +919,11 @@ BIO *BIO_new_fd(int fd, int close_flag); int BIO_new_bio_pair(BIO **bio1, size_t writebuf1, BIO **bio2, size_t writebuf2); +# ifndef OPENSSL_NO_DGRAM +int BIO_new_bio_dgram_pair(BIO **bio1, size_t writebuf1, + BIO **bio2, size_t writebuf2); +# endif + /* * If successful, returns 1 and in *bio1, *bio2 two BIO pair endpoints. * Otherwise returns 0 and sets *bio1 and *bio2 to NULL. Size 0 uses default @@ -849,38 +968,54 @@ ossl_bio__attr__((__format__(ossl_bio__printf__, 3, 0))); BIO_METHOD *BIO_meth_new(int type, const char *name); void BIO_meth_free(BIO_METHOD *biom); -int (*BIO_meth_get_write(const BIO_METHOD *biom)) (BIO *, const char *, int); -int (*BIO_meth_get_write_ex(const BIO_METHOD *biom)) (BIO *, const char *, size_t, - size_t *); int BIO_meth_set_write(BIO_METHOD *biom, int (*write) (BIO *, const char *, int)); int BIO_meth_set_write_ex(BIO_METHOD *biom, int (*bwrite) (BIO *, const char *, size_t, size_t *)); -int (*BIO_meth_get_read(const BIO_METHOD *biom)) (BIO *, char *, int); -int (*BIO_meth_get_read_ex(const BIO_METHOD *biom)) (BIO *, char *, size_t, size_t *); +int BIO_meth_set_sendmmsg(BIO_METHOD *biom, + int (*f) (BIO *, BIO_MSG *, size_t, size_t, + uint64_t, size_t *)); int BIO_meth_set_read(BIO_METHOD *biom, int (*read) (BIO *, char *, int)); int BIO_meth_set_read_ex(BIO_METHOD *biom, int (*bread) (BIO *, char *, size_t, size_t *)); -int (*BIO_meth_get_puts(const BIO_METHOD *biom)) (BIO *, const char *); +int BIO_meth_set_recvmmsg(BIO_METHOD *biom, + int (*f) (BIO *, BIO_MSG *, size_t, size_t, + uint64_t, size_t *)); int BIO_meth_set_puts(BIO_METHOD *biom, int (*puts) (BIO *, const char *)); -int (*BIO_meth_get_gets(const BIO_METHOD *biom)) (BIO *, char *, int); int BIO_meth_set_gets(BIO_METHOD *biom, int (*ossl_gets) (BIO *, char *, int)); -long (*BIO_meth_get_ctrl(const BIO_METHOD *biom)) (BIO *, int, long, void *); int BIO_meth_set_ctrl(BIO_METHOD *biom, long (*ctrl) (BIO *, int, long, void *)); -int (*BIO_meth_get_create(const BIO_METHOD *bion)) (BIO *); int BIO_meth_set_create(BIO_METHOD *biom, int (*create) (BIO *)); -int (*BIO_meth_get_destroy(const BIO_METHOD *biom)) (BIO *); int BIO_meth_set_destroy(BIO_METHOD *biom, int (*destroy) (BIO *)); -long (*BIO_meth_get_callback_ctrl(const BIO_METHOD *biom)) - (BIO *, int, BIO_info_cb *); int BIO_meth_set_callback_ctrl(BIO_METHOD *biom, long (*callback_ctrl) (BIO *, int, BIO_info_cb *)); - +# ifndef OPENSSL_NO_DEPRECATED_3_5 +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_write(const BIO_METHOD *biom)) (BIO *, const char *, + int); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_write_ex(const BIO_METHOD *biom)) (BIO *, const char *, + size_t, size_t *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_sendmmsg(const BIO_METHOD *biom))(BIO *, BIO_MSG *, + size_t, size_t, + uint64_t, size_t *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_read(const BIO_METHOD *biom)) (BIO *, char *, int); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_read_ex(const BIO_METHOD *biom)) (BIO *, char *, + size_t, size_t *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_recvmmsg(const BIO_METHOD *biom))(BIO *, BIO_MSG *, + size_t, size_t, + uint64_t, size_t *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_puts(const BIO_METHOD *biom)) (BIO *, const char *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_gets(const BIO_METHOD *biom)) (BIO *, char *, int); +OSSL_DEPRECATEDIN_3_5 long (*BIO_meth_get_ctrl(const BIO_METHOD *biom)) (BIO *, int, + long, void *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_create(const BIO_METHOD *bion)) (BIO *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_destroy(const BIO_METHOD *biom)) (BIO *); +OSSL_DEPRECATEDIN_3_5 long (*BIO_meth_get_callback_ctrl(const BIO_METHOD *biom)) (BIO *, int, + BIO_info_cb *); +# endif # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/VC-WIN64-ARM/no-asm/include/openssl/cmp.h b/deps/openssl/config/archs/VC-WIN64-ARM/no-asm/include/openssl/cmp.h index f0e768e01baacd..ded2dd2905f756 100644 --- a/deps/openssl/config/archs/VC-WIN64-ARM/no-asm/include/openssl/cmp.h +++ b/deps/openssl/config/archs/VC-WIN64-ARM/no-asm/include/openssl/cmp.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by makefile from include/openssl/cmp.h.in * - * Copyright 2007-2023 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2007-2024 The OpenSSL Project Authors. All Rights Reserved. * Copyright Nokia 2007-2019 * Copyright Siemens AG 2015-2019 * @@ -35,7 +35,9 @@ extern "C" { # endif -# define OSSL_CMP_PVNO 2 +# define OSSL_CMP_PVNO_2 2 +# define OSSL_CMP_PVNO_3 3 +# define OSSL_CMP_PVNO OSSL_CMP_PVNO_2 /* v2 is the default */ /*- * PKIFailureInfo ::= BIT STRING { @@ -137,7 +139,6 @@ extern "C" { # if OSSL_CMP_PKIFAILUREINFO_MAX_BIT_PATTERN > INT_MAX # error CMP_PKIFAILUREINFO_MAX bit pattern does not fit in type int # endif - typedef ASN1_BIT_STRING OSSL_CMP_PKIFAILUREINFO; # define OSSL_CMP_CTX_FAILINFO_badAlg (1 << 0) @@ -203,8 +204,8 @@ typedef ASN1_BIT_STRING OSSL_CMP_PKIFAILUREINFO; # define OSSL_CMP_PKISTATUS_revocationWarning 4 # define OSSL_CMP_PKISTATUS_revocationNotification 5 # define OSSL_CMP_PKISTATUS_keyUpdateWarning 6 - typedef ASN1_INTEGER OSSL_CMP_PKISTATUS; + DECLARE_ASN1_ITEM(OSSL_CMP_PKISTATUS) # define OSSL_CMP_CERTORENCCERT_CERTIFICATE 0 @@ -274,6 +275,46 @@ SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CMP_ITAV, OSSL_CMP_ITAV, OSSL_CMP_ITAV) #define sk_OSSL_CMP_ITAV_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_CMP_ITAV) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_CMP_ITAV_sk_type(sk), ossl_check_OSSL_CMP_ITAV_copyfunc_type(copyfunc), ossl_check_OSSL_CMP_ITAV_freefunc_type(freefunc))) #define sk_OSSL_CMP_ITAV_set_cmp_func(sk, cmp) ((sk_OSSL_CMP_ITAV_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CMP_ITAV_sk_type(sk), ossl_check_OSSL_CMP_ITAV_compfunc_type(cmp))) + +typedef struct ossl_cmp_crlstatus_st OSSL_CMP_CRLSTATUS; +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CMP_CRLSTATUS, OSSL_CMP_CRLSTATUS, OSSL_CMP_CRLSTATUS) +#define sk_OSSL_CMP_CRLSTATUS_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_value(sk, idx) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_value(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk), (idx))) +#define sk_OSSL_CMP_CRLSTATUS_new(cmp) ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_new(ossl_check_OSSL_CMP_CRLSTATUS_compfunc_type(cmp))) +#define sk_OSSL_CMP_CRLSTATUS_new_null() ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_new_null()) +#define sk_OSSL_CMP_CRLSTATUS_new_reserve(cmp, n) ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_CMP_CRLSTATUS_compfunc_type(cmp), (n))) +#define sk_OSSL_CMP_CRLSTATUS_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), (n)) +#define sk_OSSL_CMP_CRLSTATUS_free(sk) OPENSSL_sk_free(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_delete(sk, i) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_delete(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), (i))) +#define sk_OSSL_CMP_CRLSTATUS_delete_ptr(sk, ptr) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr))) +#define sk_OSSL_CMP_CRLSTATUS_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr)) +#define sk_OSSL_CMP_CRLSTATUS_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr)) +#define sk_OSSL_CMP_CRLSTATUS_pop(sk) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_pop(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk))) +#define sk_OSSL_CMP_CRLSTATUS_shift(sk) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_shift(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk))) +#define sk_OSSL_CMP_CRLSTATUS_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk),ossl_check_OSSL_CMP_CRLSTATUS_freefunc_type(freefunc)) +#define sk_OSSL_CMP_CRLSTATUS_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr), (idx)) +#define sk_OSSL_CMP_CRLSTATUS_set(sk, idx, ptr) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_set(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), (idx), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr))) +#define sk_OSSL_CMP_CRLSTATUS_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr)) +#define sk_OSSL_CMP_CRLSTATUS_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr)) +#define sk_OSSL_CMP_CRLSTATUS_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr), pnum) +#define sk_OSSL_CMP_CRLSTATUS_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_dup(sk) ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_dup(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk))) +#define sk_OSSL_CMP_CRLSTATUS_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_copyfunc_type(copyfunc), ossl_check_OSSL_CMP_CRLSTATUS_freefunc_type(freefunc))) +#define sk_OSSL_CMP_CRLSTATUS_set_cmp_func(sk, cmp) ((sk_OSSL_CMP_CRLSTATUS_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_compfunc_type(cmp))) + + +typedef OSSL_CRMF_ATTRIBUTETYPEANDVALUE OSSL_CMP_ATAV; +# define OSSL_CMP_ATAV_free OSSL_CRMF_ATTRIBUTETYPEANDVALUE_free +typedef STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) OSSL_CMP_ATAVS; +DECLARE_ASN1_FUNCTIONS(OSSL_CMP_ATAVS) +# define stack_st_OSSL_CMP_ATAV stack_st_OSSL_CRMF_ATTRIBUTETYPEANDVALUE +# define sk_OSSL_CMP_ATAV_num sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_num +# define sk_OSSL_CMP_ATAV_value sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_value +# define sk_OSSL_CMP_ATAV_push sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_push +# define sk_OSSL_CMP_ATAV_pop_free sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_pop_free + typedef struct ossl_cmp_revrepcontent_st OSSL_CMP_REVREPCONTENT; typedef struct ossl_cmp_pkisi_st OSSL_CMP_PKISI; DECLARE_ASN1_FUNCTIONS(OSSL_CMP_PKISI) @@ -375,21 +416,75 @@ void OSSL_CMP_ITAV_set0(OSSL_CMP_ITAV *itav, ASN1_OBJECT *type, ASN1_TYPE *value); ASN1_OBJECT *OSSL_CMP_ITAV_get0_type(const OSSL_CMP_ITAV *itav); ASN1_TYPE *OSSL_CMP_ITAV_get0_value(const OSSL_CMP_ITAV *itav); -int OSSL_CMP_ITAV_push0_stack_item(STACK_OF(OSSL_CMP_ITAV) **itav_sk_p, +int OSSL_CMP_ITAV_push0_stack_item(STACK_OF(OSSL_CMP_ITAV) **sk_p, OSSL_CMP_ITAV *itav); void OSSL_CMP_ITAV_free(OSSL_CMP_ITAV *itav); + +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new0_certProfile(STACK_OF(ASN1_UTF8STRING) + *certProfile); +int OSSL_CMP_ITAV_get0_certProfile(const OSSL_CMP_ITAV *itav, + STACK_OF(ASN1_UTF8STRING) **out); +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new_caCerts(const STACK_OF(X509) *caCerts); +int OSSL_CMP_ITAV_get0_caCerts(const OSSL_CMP_ITAV *itav, STACK_OF(X509) **out); + +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new_rootCaCert(const X509 *rootCaCert); +int OSSL_CMP_ITAV_get0_rootCaCert(const OSSL_CMP_ITAV *itav, X509 **out); +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new_rootCaKeyUpdate(const X509 *newWithNew, + const X509 *newWithOld, + const X509 *oldWithNew); +int OSSL_CMP_ITAV_get0_rootCaKeyUpdate(const OSSL_CMP_ITAV *itav, + X509 **newWithNew, + X509 **newWithOld, + X509 **oldWithNew); + +OSSL_CMP_CRLSTATUS *OSSL_CMP_CRLSTATUS_create(const X509_CRL *crl, + const X509 *cert, int only_DN); +OSSL_CMP_CRLSTATUS *OSSL_CMP_CRLSTATUS_new1(const DIST_POINT_NAME *dpn, + const GENERAL_NAMES *issuer, + const ASN1_TIME *thisUpdate); +int OSSL_CMP_CRLSTATUS_get0(const OSSL_CMP_CRLSTATUS *crlstatus, + DIST_POINT_NAME **dpn, GENERAL_NAMES **issuer, + ASN1_TIME **thisUpdate); +void OSSL_CMP_CRLSTATUS_free(OSSL_CMP_CRLSTATUS *crlstatus); +OSSL_CMP_ITAV +*OSSL_CMP_ITAV_new0_crlStatusList(STACK_OF(OSSL_CMP_CRLSTATUS) *crlStatusList); +int OSSL_CMP_ITAV_get0_crlStatusList(const OSSL_CMP_ITAV *itav, + STACK_OF(OSSL_CMP_CRLSTATUS) **out); +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new_crls(const X509_CRL *crls); +int OSSL_CMP_ITAV_get0_crls(const OSSL_CMP_ITAV *it, STACK_OF(X509_CRL) **out); +OSSL_CMP_ITAV +*OSSL_CMP_ITAV_new0_certReqTemplate(OSSL_CRMF_CERTTEMPLATE *certTemplate, + OSSL_CMP_ATAVS *keySpec); +int OSSL_CMP_ITAV_get1_certReqTemplate(const OSSL_CMP_ITAV *itav, + OSSL_CRMF_CERTTEMPLATE **certTemplate, + OSSL_CMP_ATAVS **keySpec); + +OSSL_CMP_ATAV *OSSL_CMP_ATAV_create(ASN1_OBJECT *type, ASN1_TYPE *value); +void OSSL_CMP_ATAV_set0(OSSL_CMP_ATAV *itav, ASN1_OBJECT *type, + ASN1_TYPE *value); +ASN1_OBJECT *OSSL_CMP_ATAV_get0_type(const OSSL_CMP_ATAV *itav); +ASN1_TYPE *OSSL_CMP_ATAV_get0_value(const OSSL_CMP_ATAV *itav); +OSSL_CMP_ATAV *OSSL_CMP_ATAV_new_algId(const X509_ALGOR *alg); +X509_ALGOR *OSSL_CMP_ATAV_get0_algId(const OSSL_CMP_ATAV *atav); +OSSL_CMP_ATAV *OSSL_CMP_ATAV_new_rsaKeyLen(int len); +int OSSL_CMP_ATAV_get_rsaKeyLen(const OSSL_CMP_ATAV *atav); +int OSSL_CMP_ATAV_push1(OSSL_CMP_ATAVS **sk_p, const OSSL_CMP_ATAV *atav); + void OSSL_CMP_MSG_free(OSSL_CMP_MSG *msg); /* from cmp_ctx.c */ OSSL_CMP_CTX *OSSL_CMP_CTX_new(OSSL_LIB_CTX *libctx, const char *propq); void OSSL_CMP_CTX_free(OSSL_CMP_CTX *ctx); int OSSL_CMP_CTX_reinit(OSSL_CMP_CTX *ctx); +OSSL_LIB_CTX *OSSL_CMP_CTX_get0_libctx(const OSSL_CMP_CTX *ctx); +const char *OSSL_CMP_CTX_get0_propq(const OSSL_CMP_CTX *ctx); /* CMP general options: */ # define OSSL_CMP_OPT_LOG_VERBOSITY 0 /* CMP transfer options: */ -# define OSSL_CMP_OPT_KEEP_ALIVE 10 -# define OSSL_CMP_OPT_MSG_TIMEOUT 11 +# define OSSL_CMP_OPT_KEEP_ALIVE 10 +# define OSSL_CMP_OPT_MSG_TIMEOUT 11 # define OSSL_CMP_OPT_TOTAL_TIMEOUT 12 +# define OSSL_CMP_OPT_USE_TLS 13 /* CMP request options: */ # define OSSL_CMP_OPT_VALIDITY_DAYS 20 # define OSSL_CMP_OPT_SUBJECTALTNAME_NODEFAULT 21 @@ -407,6 +502,7 @@ int OSSL_CMP_CTX_reinit(OSSL_CMP_CTX *ctx); # define OSSL_CMP_OPT_DIGEST_ALGNID 34 # define OSSL_CMP_OPT_IGNORE_KEYUSAGE 35 # define OSSL_CMP_OPT_PERMIT_TA_IN_EXTRACERTS_FOR_IR 36 +# define OSSL_CMP_OPT_NO_CACHE_EXTRACERTS 37 int OSSL_CMP_CTX_set_option(OSSL_CMP_CTX *ctx, int opt, int val); int OSSL_CMP_CTX_get_option(const OSSL_CMP_CTX *ctx, int opt); /* CMP-specific callback for logging and outputting the error queue: */ @@ -420,9 +516,11 @@ int OSSL_CMP_CTX_set1_server(OSSL_CMP_CTX *ctx, const char *address); int OSSL_CMP_CTX_set_serverPort(OSSL_CMP_CTX *ctx, int port); int OSSL_CMP_CTX_set1_proxy(OSSL_CMP_CTX *ctx, const char *name); int OSSL_CMP_CTX_set1_no_proxy(OSSL_CMP_CTX *ctx, const char *names); +# ifndef OPENSSL_NO_HTTP int OSSL_CMP_CTX_set_http_cb(OSSL_CMP_CTX *ctx, OSSL_HTTP_bio_cb_t cb); int OSSL_CMP_CTX_set_http_cb_arg(OSSL_CMP_CTX *ctx, void *arg); void *OSSL_CMP_CTX_get_http_cb_arg(const OSSL_CMP_CTX *ctx); +# endif typedef OSSL_CMP_MSG *(*OSSL_CMP_transfer_cb_t) (OSSL_CMP_CTX *ctx, const OSSL_CMP_MSG *req); int OSSL_CMP_CTX_set_transfer_cb(OSSL_CMP_CTX *ctx, OSSL_CMP_transfer_cb_t cb); @@ -432,7 +530,9 @@ void *OSSL_CMP_CTX_get_transfer_cb_arg(const OSSL_CMP_CTX *ctx); int OSSL_CMP_CTX_set1_srvCert(OSSL_CMP_CTX *ctx, X509 *cert); int OSSL_CMP_CTX_set1_expected_sender(OSSL_CMP_CTX *ctx, const X509_NAME *name); int OSSL_CMP_CTX_set0_trustedStore(OSSL_CMP_CTX *ctx, X509_STORE *store); +# define OSSL_CMP_CTX_set0_trusted OSSL_CMP_CTX_set0_trustedStore X509_STORE *OSSL_CMP_CTX_get0_trustedStore(const OSSL_CMP_CTX *ctx); +# define OSSL_CMP_CTX_get0_trusted OSSL_CMP_CTX_get0_trustedStore int OSSL_CMP_CTX_set1_untrusted(OSSL_CMP_CTX *ctx, STACK_OF(X509) *certs); STACK_OF(X509) *OSSL_CMP_CTX_get0_untrusted(const OSSL_CMP_CTX *ctx); /* client authentication: */ @@ -448,12 +548,15 @@ int OSSL_CMP_CTX_set1_secretValue(OSSL_CMP_CTX *ctx, int OSSL_CMP_CTX_set1_recipient(OSSL_CMP_CTX *ctx, const X509_NAME *name); int OSSL_CMP_CTX_push0_geninfo_ITAV(OSSL_CMP_CTX *ctx, OSSL_CMP_ITAV *itav); int OSSL_CMP_CTX_reset_geninfo_ITAVs(OSSL_CMP_CTX *ctx); +STACK_OF(OSSL_CMP_ITAV) + *OSSL_CMP_CTX_get0_geninfo_ITAVs(const OSSL_CMP_CTX *ctx); int OSSL_CMP_CTX_set1_extraCertsOut(OSSL_CMP_CTX *ctx, STACK_OF(X509) *extraCertsOut); /* certificate template: */ int OSSL_CMP_CTX_set0_newPkey(OSSL_CMP_CTX *ctx, int priv, EVP_PKEY *pkey); EVP_PKEY *OSSL_CMP_CTX_get0_newPkey(const OSSL_CMP_CTX *ctx, int priv); int OSSL_CMP_CTX_set1_issuer(OSSL_CMP_CTX *ctx, const X509_NAME *name); +int OSSL_CMP_CTX_set1_serialNumber(OSSL_CMP_CTX *ctx, const ASN1_INTEGER *sn); int OSSL_CMP_CTX_set1_subjectName(OSSL_CMP_CTX *ctx, const X509_NAME *name); int OSSL_CMP_CTX_push1_subjectAltName(OSSL_CMP_CTX *ctx, const GENERAL_NAME *name); @@ -477,6 +580,7 @@ int OSSL_CMP_CTX_get_status(const OSSL_CMP_CTX *ctx); OSSL_CMP_PKIFREETEXT *OSSL_CMP_CTX_get0_statusString(const OSSL_CMP_CTX *ctx); int OSSL_CMP_CTX_get_failInfoCode(const OSSL_CMP_CTX *ctx); # define OSSL_CMP_PKISI_BUFLEN 1024 +X509 *OSSL_CMP_CTX_get0_validatedSrvCert(const OSSL_CMP_CTX *ctx); X509 *OSSL_CMP_CTX_get0_newCert(const OSSL_CMP_CTX *ctx); STACK_OF(X509) *OSSL_CMP_CTX_get1_newChain(const OSSL_CMP_CTX *ctx); STACK_OF(X509) *OSSL_CMP_CTX_get1_caPubs(const OSSL_CMP_CTX *ctx); @@ -498,10 +602,13 @@ OSSL_CMP_STATUSINFO_new(int status, int fail_info, const char *text); ASN1_OCTET_STRING *OSSL_CMP_HDR_get0_transactionID(const OSSL_CMP_PKIHEADER *hdr); ASN1_OCTET_STRING *OSSL_CMP_HDR_get0_recipNonce(const OSSL_CMP_PKIHEADER *hdr); +STACK_OF(OSSL_CMP_ITAV) + *OSSL_CMP_HDR_get0_geninfo_ITAVs(const OSSL_CMP_PKIHEADER *hdr); /* from cmp_msg.c */ OSSL_CMP_PKIHEADER *OSSL_CMP_MSG_get0_header(const OSSL_CMP_MSG *msg); int OSSL_CMP_MSG_get_bodytype(const OSSL_CMP_MSG *msg); +X509_PUBKEY *OSSL_CMP_MSG_get0_certreq_publickey(const OSSL_CMP_MSG *msg); int OSSL_CMP_MSG_update_transactionID(OSSL_CMP_CTX *ctx, OSSL_CMP_MSG *msg); int OSSL_CMP_MSG_update_recipNonce(OSSL_CMP_CTX *ctx, OSSL_CMP_MSG *msg); OSSL_CRMF_MSG *OSSL_CMP_CTX_setup_CRM(OSSL_CMP_CTX *ctx, int for_KUR, int rid); @@ -517,8 +624,10 @@ int OSSL_CMP_validate_cert_path(const OSSL_CMP_CTX *ctx, X509_STORE *trusted_store, X509 *cert); /* from cmp_http.c */ +# ifndef OPENSSL_NO_HTTP OSSL_CMP_MSG *OSSL_CMP_MSG_http_perform(OSSL_CMP_CTX *ctx, const OSSL_CMP_MSG *req); +# endif /* from cmp_server.c */ typedef struct ossl_cmp_srv_ctx_st OSSL_CMP_SRV_CTX; @@ -561,6 +670,13 @@ int OSSL_CMP_SRV_CTX_init(OSSL_CMP_SRV_CTX *srv_ctx, void *custom_ctx, OSSL_CMP_SRV_error_cb_t process_error, OSSL_CMP_SRV_certConf_cb_t process_certConf, OSSL_CMP_SRV_pollReq_cb_t process_pollReq); +typedef int (*OSSL_CMP_SRV_delayed_delivery_cb_t)(OSSL_CMP_SRV_CTX *srv_ctx, + const OSSL_CMP_MSG *req); +typedef int (*OSSL_CMP_SRV_clean_transaction_cb_t)(OSSL_CMP_SRV_CTX *srv_ctx, + const ASN1_OCTET_STRING *id); +int OSSL_CMP_SRV_CTX_init_trans(OSSL_CMP_SRV_CTX *srv_ctx, + OSSL_CMP_SRV_delayed_delivery_cb_t delay, + OSSL_CMP_SRV_clean_transaction_cb_t clean); OSSL_CMP_CTX *OSSL_CMP_SRV_CTX_get0_cmp_ctx(const OSSL_CMP_SRV_CTX *srv_ctx); void *OSSL_CMP_SRV_CTX_get0_custom_ctx(const OSSL_CMP_SRV_CTX *srv_ctx); int OSSL_CMP_SRV_CTX_set_send_unprotected_errors(OSSL_CMP_SRV_CTX *srv_ctx, @@ -577,6 +693,8 @@ X509 *OSSL_CMP_exec_certreq(OSSL_CMP_CTX *ctx, int req_type, # define OSSL_CMP_CR 2 # define OSSL_CMP_P10CR 4 # define OSSL_CMP_KUR 7 +# define OSSL_CMP_GENM 21 +# define OSSL_CMP_ERROR 23 # define OSSL_CMP_exec_IR_ses(ctx) \ OSSL_CMP_exec_certreq(ctx, OSSL_CMP_IR, NULL) # define OSSL_CMP_exec_CR_ses(ctx) \ @@ -590,6 +708,18 @@ int OSSL_CMP_try_certreq(OSSL_CMP_CTX *ctx, int req_type, int OSSL_CMP_exec_RR_ses(OSSL_CMP_CTX *ctx); STACK_OF(OSSL_CMP_ITAV) *OSSL_CMP_exec_GENM_ses(OSSL_CMP_CTX *ctx); +/* from cmp_genm.c */ +int OSSL_CMP_get1_caCerts(OSSL_CMP_CTX *ctx, STACK_OF(X509) **out); +int OSSL_CMP_get1_rootCaKeyUpdate(OSSL_CMP_CTX *ctx, + const X509 *oldWithOld, X509 **newWithNew, + X509 **newWithOld, X509 **oldWithNew); +int OSSL_CMP_get1_crlUpdate(OSSL_CMP_CTX *ctx, const X509 *crlcert, + const X509_CRL *last_crl, + X509_CRL **crl); +int OSSL_CMP_get1_certReqTemplate(OSSL_CMP_CTX *ctx, + OSSL_CRMF_CERTTEMPLATE **certTemplate, + OSSL_CMP_ATAVS **keySpec); + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/VC-WIN64-ARM/no-asm/include/openssl/cms.h b/deps/openssl/config/archs/VC-WIN64-ARM/no-asm/include/openssl/cms.h index 03ce6ab07aac44..1a51921256fea4 100644 --- a/deps/openssl/config/archs/VC-WIN64-ARM/no-asm/include/openssl/cms.h +++ b/deps/openssl/config/archs/VC-WIN64-ARM/no-asm/include/openssl/cms.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by makefile from include/openssl/cms.h.in * - * Copyright 2008-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2008-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -31,8 +31,10 @@ extern "C" { # endif +typedef struct CMS_EnvelopedData_st CMS_EnvelopedData; typedef struct CMS_ContentInfo_st CMS_ContentInfo; typedef struct CMS_SignerInfo_st CMS_SignerInfo; +typedef struct CMS_SignedData_st CMS_SignedData; typedef struct CMS_CertificateChoices CMS_CertificateChoices; typedef struct CMS_RevocationInfoChoice_st CMS_RevocationInfoChoice; typedef struct CMS_RecipientInfo_st CMS_RecipientInfo; @@ -147,10 +149,14 @@ SKM_DEFINE_STACK_OF_INTERNAL(CMS_RevocationInfoChoice, CMS_RevocationInfoChoice, #define sk_CMS_RevocationInfoChoice_set_cmp_func(sk, cmp) ((sk_CMS_RevocationInfoChoice_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_CMS_RevocationInfoChoice_sk_type(sk), ossl_check_CMS_RevocationInfoChoice_compfunc_type(cmp))) +DECLARE_ASN1_ITEM(CMS_EnvelopedData) +DECLARE_ASN1_ALLOC_FUNCTIONS(CMS_SignedData) DECLARE_ASN1_FUNCTIONS(CMS_ContentInfo) DECLARE_ASN1_FUNCTIONS(CMS_ReceiptRequest) DECLARE_ASN1_PRINT_FUNCTION(CMS_ContentInfo) +DECLARE_ASN1_DUP_FUNCTION(CMS_EnvelopedData) + CMS_ContentInfo *CMS_ContentInfo_new_ex(OSSL_LIB_CTX *libctx, const char *propq); # define CMS_SIGNERINFO_ISSUER_SERIAL 0 @@ -190,6 +196,7 @@ CMS_ContentInfo *CMS_ContentInfo_new_ex(OSSL_LIB_CTX *libctx, const char *propq) # define CMS_ASCIICRLF 0x80000 # define CMS_CADES 0x100000 # define CMS_USE_ORIGINATOR_KEYID 0x200000 +# define CMS_NO_SIGNING_TIME 0x400000 const ASN1_OBJECT *CMS_get0_type(const CMS_ContentInfo *cms); @@ -217,13 +224,16 @@ int SMIME_write_CMS(BIO *bio, CMS_ContentInfo *cms, BIO *data, int flags); int CMS_final(CMS_ContentInfo *cms, BIO *data, BIO *dcont, unsigned int flags); +int CMS_final_digest(CMS_ContentInfo *cms, + const unsigned char *md, unsigned int mdlen, BIO *dcont, + unsigned int flags); CMS_ContentInfo *CMS_sign(X509 *signcert, EVP_PKEY *pkey, STACK_OF(X509) *certs, BIO *data, unsigned int flags); CMS_ContentInfo *CMS_sign_ex(X509 *signcert, EVP_PKEY *pkey, STACK_OF(X509) *certs, BIO *data, - unsigned int flags, OSSL_LIB_CTX *ctx, + unsigned int flags, OSSL_LIB_CTX *libctx, const char *propq); CMS_ContentInfo *CMS_sign_receipt(CMS_SignerInfo *si, @@ -233,27 +243,26 @@ CMS_ContentInfo *CMS_sign_receipt(CMS_SignerInfo *si, int CMS_data(CMS_ContentInfo *cms, BIO *out, unsigned int flags); CMS_ContentInfo *CMS_data_create(BIO *in, unsigned int flags); CMS_ContentInfo *CMS_data_create_ex(BIO *in, unsigned int flags, - OSSL_LIB_CTX *ctx, const char *propq); + OSSL_LIB_CTX *libctx, const char *propq); int CMS_digest_verify(CMS_ContentInfo *cms, BIO *dcont, BIO *out, unsigned int flags); CMS_ContentInfo *CMS_digest_create(BIO *in, const EVP_MD *md, unsigned int flags); CMS_ContentInfo *CMS_digest_create_ex(BIO *in, const EVP_MD *md, - unsigned int flags, OSSL_LIB_CTX *ctx, + unsigned int flags, OSSL_LIB_CTX *libctx, const char *propq); int CMS_EncryptedData_decrypt(CMS_ContentInfo *cms, const unsigned char *key, size_t keylen, BIO *dcont, BIO *out, unsigned int flags); - CMS_ContentInfo *CMS_EncryptedData_encrypt(BIO *in, const EVP_CIPHER *cipher, const unsigned char *key, size_t keylen, unsigned int flags); CMS_ContentInfo *CMS_EncryptedData_encrypt_ex(BIO *in, const EVP_CIPHER *cipher, const unsigned char *key, size_t keylen, unsigned int flags, - OSSL_LIB_CTX *ctx, + OSSL_LIB_CTX *libctx, const char *propq); int CMS_EncryptedData_set1_key(CMS_ContentInfo *cms, const EVP_CIPHER *ciph, @@ -272,7 +281,7 @@ CMS_ContentInfo *CMS_encrypt(STACK_OF(X509) *certs, BIO *in, const EVP_CIPHER *cipher, unsigned int flags); CMS_ContentInfo *CMS_encrypt_ex(STACK_OF(X509) *certs, BIO *in, const EVP_CIPHER *cipher, unsigned int flags, - OSSL_LIB_CTX *ctx, const char *propq); + OSSL_LIB_CTX *libctx, const char *propq); int CMS_decrypt(CMS_ContentInfo *cms, EVP_PKEY *pkey, X509 *cert, BIO *dcont, BIO *out, unsigned int flags); @@ -291,12 +300,16 @@ int CMS_RecipientInfo_type(CMS_RecipientInfo *ri); EVP_PKEY_CTX *CMS_RecipientInfo_get0_pkey_ctx(CMS_RecipientInfo *ri); CMS_ContentInfo *CMS_AuthEnvelopedData_create(const EVP_CIPHER *cipher); CMS_ContentInfo * -CMS_AuthEnvelopedData_create_ex(const EVP_CIPHER *cipher, OSSL_LIB_CTX *ctx, +CMS_AuthEnvelopedData_create_ex(const EVP_CIPHER *cipher, OSSL_LIB_CTX *libctx, const char *propq); CMS_ContentInfo *CMS_EnvelopedData_create(const EVP_CIPHER *cipher); CMS_ContentInfo *CMS_EnvelopedData_create_ex(const EVP_CIPHER *cipher, - OSSL_LIB_CTX *ctx, + OSSL_LIB_CTX *libctx, const char *propq); +BIO *CMS_EnvelopedData_decrypt(CMS_EnvelopedData *env, BIO *detached_data, + EVP_PKEY *pkey, X509 *cert, + ASN1_OCTET_STRING *secret, unsigned int flags, + OSSL_LIB_CTX *libctx, const char *propq); CMS_RecipientInfo *CMS_add1_recipient_cert(CMS_ContentInfo *cms, X509 *recip, unsigned int flags); @@ -385,6 +398,11 @@ ASN1_OCTET_STRING *CMS_SignerInfo_get0_signature(CMS_SignerInfo *si); int CMS_SignerInfo_sign(CMS_SignerInfo *si); int CMS_SignerInfo_verify(CMS_SignerInfo *si); int CMS_SignerInfo_verify_content(CMS_SignerInfo *si, BIO *chain); +BIO *CMS_SignedData_verify(CMS_SignedData *sd, BIO *detached_data, + STACK_OF(X509) *scerts, X509_STORE *store, + STACK_OF(X509) *extra, STACK_OF(X509_CRL) *crls, + unsigned int flags, + OSSL_LIB_CTX *libctx, const char *propq); int CMS_add_smimecap(CMS_SignerInfo *si, STACK_OF(X509_ALGOR) *algs); int CMS_add_simple_smimecap(STACK_OF(X509_ALGOR) **algs, @@ -441,7 +459,7 @@ CMS_ReceiptRequest *CMS_ReceiptRequest_create0_ex( unsigned char *id, int idlen, int allorfirst, STACK_OF(GENERAL_NAMES) *receiptList, STACK_OF(GENERAL_NAMES) *receiptsTo, - OSSL_LIB_CTX *ctx); + OSSL_LIB_CTX *libctx); int CMS_add1_ReceiptRequest(CMS_SignerInfo *si, CMS_ReceiptRequest *rr); void CMS_ReceiptRequest_get0_values(CMS_ReceiptRequest *rr, diff --git a/deps/openssl/config/archs/VC-WIN64-ARM/no-asm/include/openssl/comp.h b/deps/openssl/config/archs/VC-WIN64-ARM/no-asm/include/openssl/comp.h new file mode 100644 index 00000000000000..90e39511fe8d28 --- /dev/null +++ b/deps/openssl/config/archs/VC-WIN64-ARM/no-asm/include/openssl/comp.h @@ -0,0 +1,98 @@ +/* + * Copyright 2015-2024 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + + +#ifndef OPENSSL_COMP_H +# define OPENSSL_COMP_H +# pragma once + +# include +# ifndef OPENSSL_NO_DEPRECATED_3_0 +# define HEADER_COMP_H +# endif + +# include + +# include +# include +# ifdef __cplusplus +extern "C" { +# endif + + + +# ifndef OPENSSL_NO_COMP + +COMP_CTX *COMP_CTX_new(COMP_METHOD *meth); +const COMP_METHOD *COMP_CTX_get_method(const COMP_CTX *ctx); +int COMP_CTX_get_type(const COMP_CTX* comp); +int COMP_get_type(const COMP_METHOD *meth); +const char *COMP_get_name(const COMP_METHOD *meth); +void COMP_CTX_free(COMP_CTX *ctx); + +int COMP_compress_block(COMP_CTX *ctx, unsigned char *out, int olen, + unsigned char *in, int ilen); +int COMP_expand_block(COMP_CTX *ctx, unsigned char *out, int olen, + unsigned char *in, int ilen); + +COMP_METHOD *COMP_zlib(void); +COMP_METHOD *COMP_zlib_oneshot(void); +COMP_METHOD *COMP_brotli(void); +COMP_METHOD *COMP_brotli_oneshot(void); +COMP_METHOD *COMP_zstd(void); +COMP_METHOD *COMP_zstd_oneshot(void); + +# ifndef OPENSSL_NO_DEPRECATED_1_1_0 +# define COMP_zlib_cleanup() while(0) continue +# endif + +# ifdef OPENSSL_BIO_H +const BIO_METHOD *BIO_f_zlib(void); +const BIO_METHOD *BIO_f_brotli(void); +const BIO_METHOD *BIO_f_zstd(void); +# endif + +# endif + +typedef struct ssl_comp_st SSL_COMP; + +SKM_DEFINE_STACK_OF_INTERNAL(SSL_COMP, SSL_COMP, SSL_COMP) +#define sk_SSL_COMP_num(sk) OPENSSL_sk_num(ossl_check_const_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_value(sk, idx) ((SSL_COMP *)OPENSSL_sk_value(ossl_check_const_SSL_COMP_sk_type(sk), (idx))) +#define sk_SSL_COMP_new(cmp) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new(ossl_check_SSL_COMP_compfunc_type(cmp))) +#define sk_SSL_COMP_new_null() ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new_null()) +#define sk_SSL_COMP_new_reserve(cmp, n) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new_reserve(ossl_check_SSL_COMP_compfunc_type(cmp), (n))) +#define sk_SSL_COMP_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_SSL_COMP_sk_type(sk), (n)) +#define sk_SSL_COMP_free(sk) OPENSSL_sk_free(ossl_check_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_zero(sk) OPENSSL_sk_zero(ossl_check_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_delete(sk, i) ((SSL_COMP *)OPENSSL_sk_delete(ossl_check_SSL_COMP_sk_type(sk), (i))) +#define sk_SSL_COMP_delete_ptr(sk, ptr) ((SSL_COMP *)OPENSSL_sk_delete_ptr(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr))) +#define sk_SSL_COMP_push(sk, ptr) OPENSSL_sk_push(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) +#define sk_SSL_COMP_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) +#define sk_SSL_COMP_pop(sk) ((SSL_COMP *)OPENSSL_sk_pop(ossl_check_SSL_COMP_sk_type(sk))) +#define sk_SSL_COMP_shift(sk) ((SSL_COMP *)OPENSSL_sk_shift(ossl_check_SSL_COMP_sk_type(sk))) +#define sk_SSL_COMP_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_SSL_COMP_sk_type(sk),ossl_check_SSL_COMP_freefunc_type(freefunc)) +#define sk_SSL_COMP_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr), (idx)) +#define sk_SSL_COMP_set(sk, idx, ptr) ((SSL_COMP *)OPENSSL_sk_set(ossl_check_SSL_COMP_sk_type(sk), (idx), ossl_check_SSL_COMP_type(ptr))) +#define sk_SSL_COMP_find(sk, ptr) OPENSSL_sk_find(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) +#define sk_SSL_COMP_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) +#define sk_SSL_COMP_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr), pnum) +#define sk_SSL_COMP_sort(sk) OPENSSL_sk_sort(ossl_check_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_dup(sk) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_dup(ossl_check_const_SSL_COMP_sk_type(sk))) +#define sk_SSL_COMP_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_deep_copy(ossl_check_const_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_copyfunc_type(copyfunc), ossl_check_SSL_COMP_freefunc_type(freefunc))) +#define sk_SSL_COMP_set_cmp_func(sk, cmp) ((sk_SSL_COMP_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_compfunc_type(cmp))) + + + +# ifdef __cplusplus +} +# endif +#endif diff --git a/deps/openssl/config/archs/VC-WIN64-ARM/no-asm/include/openssl/conf.h b/deps/openssl/config/archs/VC-WIN64-ARM/no-asm/include/openssl/conf.h index 994e573a957435..ffa9ced71e8b26 100644 --- a/deps/openssl/config/archs/VC-WIN64-ARM/no-asm/include/openssl/conf.h +++ b/deps/openssl/config/archs/VC-WIN64-ARM/no-asm/include/openssl/conf.h @@ -27,6 +27,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -65,7 +68,7 @@ SKM_DEFINE_STACK_OF_INTERNAL(CONF_VALUE, CONF_VALUE, CONF_VALUE) #define sk_CONF_VALUE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(CONF_VALUE) *)OPENSSL_sk_deep_copy(ossl_check_const_CONF_VALUE_sk_type(sk), ossl_check_CONF_VALUE_copyfunc_type(copyfunc), ossl_check_CONF_VALUE_freefunc_type(freefunc))) #define sk_CONF_VALUE_set_cmp_func(sk, cmp) ((sk_CONF_VALUE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_CONF_VALUE_sk_type(sk), ossl_check_CONF_VALUE_compfunc_type(cmp))) DEFINE_LHASH_OF_INTERNAL(CONF_VALUE); -#define lh_CONF_VALUE_new(hfn, cmp) ((LHASH_OF(CONF_VALUE) *)OPENSSL_LH_new(ossl_check_CONF_VALUE_lh_hashfunc_type(hfn), ossl_check_CONF_VALUE_lh_compfunc_type(cmp))) +#define lh_CONF_VALUE_new(hfn, cmp) ((LHASH_OF(CONF_VALUE) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new(ossl_check_CONF_VALUE_lh_hashfunc_type(hfn), ossl_check_CONF_VALUE_lh_compfunc_type(cmp)), lh_CONF_VALUE_hash_thunk, lh_CONF_VALUE_comp_thunk, lh_CONF_VALUE_doall_thunk, lh_CONF_VALUE_doall_arg_thunk)) #define lh_CONF_VALUE_free(lh) OPENSSL_LH_free(ossl_check_CONF_VALUE_lh_type(lh)) #define lh_CONF_VALUE_flush(lh) OPENSSL_LH_flush(ossl_check_CONF_VALUE_lh_type(lh)) #define lh_CONF_VALUE_insert(lh, ptr) ((CONF_VALUE *)OPENSSL_LH_insert(ossl_check_CONF_VALUE_lh_type(lh), ossl_check_CONF_VALUE_lh_plain_type(ptr))) diff --git a/deps/openssl/config/archs/VC-WIN64-ARM/no-asm/include/openssl/configuration.h b/deps/openssl/config/archs/VC-WIN64-ARM/no-asm/include/openssl/configuration.h index 27e6fddbacb1e8..1fbb9d88bd85a0 100644 --- a/deps/openssl/config/archs/VC-WIN64-ARM/no-asm/include/openssl/configuration.h +++ b/deps/openssl/config/archs/VC-WIN64-ARM/no-asm/include/openssl/configuration.h @@ -26,7 +26,7 @@ extern "C" { * OpenSSL was configured with the following options: */ -# define OPENSSL_CONFIGURED_API 30000 +# define OPENSSL_CONFIGURED_API 30500 # ifndef OPENSSL_RAND_SEED_OS # define OPENSSL_RAND_SEED_OS # endif @@ -42,6 +42,12 @@ extern "C" { # ifndef OPENSSL_NO_ASM # define OPENSSL_NO_ASM # endif +# ifndef OPENSSL_NO_BROTLI +# define OPENSSL_NO_BROTLI +# endif +# ifndef OPENSSL_NO_BROTLI_DYNAMIC +# define OPENSSL_NO_BROTLI_DYNAMIC +# endif # ifndef OPENSSL_NO_COMP # define OPENSSL_NO_COMP # endif @@ -51,6 +57,9 @@ extern "C" { # ifndef OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE # define OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE # endif +# ifndef OPENSSL_NO_DEMOS +# define OPENSSL_NO_DEMOS +# endif # ifndef OPENSSL_NO_DEVCRYPTOENG # define OPENSSL_NO_DEVCRYPTOENG # endif @@ -63,12 +72,24 @@ extern "C" { # ifndef OPENSSL_NO_EXTERNAL_TESTS # define OPENSSL_NO_EXTERNAL_TESTS # endif +# ifndef OPENSSL_NO_FIPS_JITTER +# define OPENSSL_NO_FIPS_JITTER +# endif # ifndef OPENSSL_NO_FUZZ_AFL # define OPENSSL_NO_FUZZ_AFL # endif # ifndef OPENSSL_NO_FUZZ_LIBFUZZER # define OPENSSL_NO_FUZZ_LIBFUZZER # endif +# ifndef OPENSSL_NO_H3DEMO +# define OPENSSL_NO_H3DEMO +# endif +# ifndef OPENSSL_NO_HQINTEROP +# define OPENSSL_NO_HQINTEROP +# endif +# ifndef OPENSSL_NO_JITTER +# define OPENSSL_NO_JITTER +# endif # ifndef OPENSSL_NO_KTLS # define OPENSSL_NO_KTLS # endif @@ -81,6 +102,9 @@ extern "C" { # ifndef OPENSSL_NO_MSAN # define OPENSSL_NO_MSAN # endif +# ifndef OPENSSL_NO_PIE +# define OPENSSL_NO_PIE +# endif # ifndef OPENSSL_NO_RC5 # define OPENSSL_NO_RC5 # endif @@ -93,6 +117,12 @@ extern "C" { # ifndef OPENSSL_NO_SSL3_METHOD # define OPENSSL_NO_SSL3_METHOD # endif +# ifndef OPENSSL_NO_SSLKEYLOG +# define OPENSSL_NO_SSLKEYLOG +# endif +# ifndef OPENSSL_NO_TFO +# define OPENSSL_NO_TFO +# endif # ifndef OPENSSL_NO_TRACE # define OPENSSL_NO_TRACE # endif @@ -108,6 +138,18 @@ extern "C" { # ifndef OPENSSL_NO_WEAK_SSL_CIPHERS # define OPENSSL_NO_WEAK_SSL_CIPHERS # endif +# ifndef OPENSSL_NO_ZLIB +# define OPENSSL_NO_ZLIB +# endif +# ifndef OPENSSL_NO_ZLIB_DYNAMIC +# define OPENSSL_NO_ZLIB_DYNAMIC +# endif +# ifndef OPENSSL_NO_ZSTD +# define OPENSSL_NO_ZSTD +# endif +# ifndef OPENSSL_NO_ZSTD_DYNAMIC +# define OPENSSL_NO_ZSTD_DYNAMIC +# endif # ifndef OPENSSL_NO_DYNAMIC_ENGINE # define OPENSSL_NO_DYNAMIC_ENGINE # endif @@ -129,6 +171,12 @@ extern "C" { # define RC4_INT unsigned char +# if defined(OPENSSL_NO_COMP) || (defined(OPENSSL_NO_BROTLI) && defined(OPENSSL_NO_ZSTD) && defined(OPENSSL_NO_ZLIB)) +# define OPENSSL_NO_COMP_ALG +# else +# undef OPENSSL_NO_COMP_ALG +# endif + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/VC-WIN64-ARM/no-asm/include/openssl/core_names.h b/deps/openssl/config/archs/VC-WIN64-ARM/no-asm/include/openssl/core_names.h new file mode 100644 index 00000000000000..aaca6051c81b53 --- /dev/null +++ b/deps/openssl/config/archs/VC-WIN64-ARM/no-asm/include/openssl/core_names.h @@ -0,0 +1,575 @@ +/* + * WARNING: do not edit! + * Generated by makefile from include/openssl/core_names.h.in + * + * Copyright 2019-2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + +#ifndef OPENSSL_CORE_NAMES_H +# define OPENSSL_CORE_NAMES_H +# pragma once + +# ifdef __cplusplus +extern "C" { +# endif + +/* OSSL_CIPHER_PARAM_CTS_MODE Values */ +# define OSSL_CIPHER_CTS_MODE_CS1 "CS1" +# define OSSL_CIPHER_CTS_MODE_CS2 "CS2" +# define OSSL_CIPHER_CTS_MODE_CS3 "CS3" + +/* Known CIPHER names (not a complete list) */ +# define OSSL_CIPHER_NAME_AES_128_GCM_SIV "AES-128-GCM-SIV" +# define OSSL_CIPHER_NAME_AES_192_GCM_SIV "AES-192-GCM-SIV" +# define OSSL_CIPHER_NAME_AES_256_GCM_SIV "AES-256-GCM-SIV" + +/* Known DIGEST names (not a complete list) */ +# define OSSL_DIGEST_NAME_MD5 "MD5" +# define OSSL_DIGEST_NAME_MD5_SHA1 "MD5-SHA1" +# define OSSL_DIGEST_NAME_SHA1 "SHA1" +# define OSSL_DIGEST_NAME_SHA2_224 "SHA2-224" +# define OSSL_DIGEST_NAME_SHA2_256 "SHA2-256" +# define OSSL_DIGEST_NAME_SHA2_256_192 "SHA2-256/192" +# define OSSL_DIGEST_NAME_SHA2_384 "SHA2-384" +# define OSSL_DIGEST_NAME_SHA2_512 "SHA2-512" +# define OSSL_DIGEST_NAME_SHA2_512_224 "SHA2-512/224" +# define OSSL_DIGEST_NAME_SHA2_512_256 "SHA2-512/256" +# define OSSL_DIGEST_NAME_MD2 "MD2" +# define OSSL_DIGEST_NAME_MD4 "MD4" +# define OSSL_DIGEST_NAME_MDC2 "MDC2" +# define OSSL_DIGEST_NAME_RIPEMD160 "RIPEMD160" +# define OSSL_DIGEST_NAME_SHA3_224 "SHA3-224" +# define OSSL_DIGEST_NAME_SHA3_256 "SHA3-256" +# define OSSL_DIGEST_NAME_SHA3_384 "SHA3-384" +# define OSSL_DIGEST_NAME_SHA3_512 "SHA3-512" +# define OSSL_DIGEST_NAME_KECCAK_KMAC128 "KECCAK-KMAC-128" +# define OSSL_DIGEST_NAME_KECCAK_KMAC256 "KECCAK-KMAC-256" +# define OSSL_DIGEST_NAME_SM3 "SM3" + +/* Known MAC names */ +# define OSSL_MAC_NAME_BLAKE2BMAC "BLAKE2BMAC" +# define OSSL_MAC_NAME_BLAKE2SMAC "BLAKE2SMAC" +# define OSSL_MAC_NAME_CMAC "CMAC" +# define OSSL_MAC_NAME_GMAC "GMAC" +# define OSSL_MAC_NAME_HMAC "HMAC" +# define OSSL_MAC_NAME_KMAC128 "KMAC128" +# define OSSL_MAC_NAME_KMAC256 "KMAC256" +# define OSSL_MAC_NAME_POLY1305 "POLY1305" +# define OSSL_MAC_NAME_SIPHASH "SIPHASH" + +/* Known KDF names */ +# define OSSL_KDF_NAME_HKDF "HKDF" +# define OSSL_KDF_NAME_TLS1_3_KDF "TLS13-KDF" +# define OSSL_KDF_NAME_PBKDF1 "PBKDF1" +# define OSSL_KDF_NAME_PBKDF2 "PBKDF2" +# define OSSL_KDF_NAME_SCRYPT "SCRYPT" +# define OSSL_KDF_NAME_SSHKDF "SSHKDF" +# define OSSL_KDF_NAME_SSKDF "SSKDF" +# define OSSL_KDF_NAME_TLS1_PRF "TLS1-PRF" +# define OSSL_KDF_NAME_X942KDF_ASN1 "X942KDF-ASN1" +# define OSSL_KDF_NAME_X942KDF_CONCAT "X942KDF-CONCAT" +# define OSSL_KDF_NAME_X963KDF "X963KDF" +# define OSSL_KDF_NAME_KBKDF "KBKDF" +# define OSSL_KDF_NAME_KRB5KDF "KRB5KDF" +# define OSSL_KDF_NAME_HMACDRBGKDF "HMAC-DRBG-KDF" + +/* RSA padding modes */ +# define OSSL_PKEY_RSA_PAD_MODE_NONE "none" +# define OSSL_PKEY_RSA_PAD_MODE_PKCSV15 "pkcs1" +# define OSSL_PKEY_RSA_PAD_MODE_OAEP "oaep" +# define OSSL_PKEY_RSA_PAD_MODE_X931 "x931" +# define OSSL_PKEY_RSA_PAD_MODE_PSS "pss" + +/* RSA pss padding salt length */ +# define OSSL_PKEY_RSA_PSS_SALT_LEN_DIGEST "digest" +# define OSSL_PKEY_RSA_PSS_SALT_LEN_MAX "max" +# define OSSL_PKEY_RSA_PSS_SALT_LEN_AUTO "auto" +# define OSSL_PKEY_RSA_PSS_SALT_LEN_AUTO_DIGEST_MAX "auto-digestmax" + +/* OSSL_PKEY_PARAM_EC_ENCODING values */ +# define OSSL_PKEY_EC_ENCODING_EXPLICIT "explicit" +# define OSSL_PKEY_EC_ENCODING_GROUP "named_curve" + +# define OSSL_PKEY_EC_POINT_CONVERSION_FORMAT_UNCOMPRESSED "uncompressed" +# define OSSL_PKEY_EC_POINT_CONVERSION_FORMAT_COMPRESSED "compressed" +# define OSSL_PKEY_EC_POINT_CONVERSION_FORMAT_HYBRID "hybrid" + +# define OSSL_PKEY_EC_GROUP_CHECK_DEFAULT "default" +# define OSSL_PKEY_EC_GROUP_CHECK_NAMED "named" +# define OSSL_PKEY_EC_GROUP_CHECK_NAMED_NIST "named-nist" + +/* PROV_SKEY well known key types */ +# define OSSL_SKEY_TYPE_GENERIC "GENERIC-SECRET" +# define OSSL_SKEY_TYPE_AES "AES" + +/* OSSL_KEM_PARAM_OPERATION values */ +#define OSSL_KEM_PARAM_OPERATION_RSASVE "RSASVE" +#define OSSL_KEM_PARAM_OPERATION_DHKEM "DHKEM" + +/* Provider configuration variables */ +#define OSSL_PKEY_RETAIN_SEED "pkey_retain_seed" + +/* Parameter name definitions - generated by util/perl/OpenSSL/paramnames.pm */ +# define OSSL_ALG_PARAM_ALGORITHM_ID "algorithm-id" +# define OSSL_ALG_PARAM_ALGORITHM_ID_PARAMS "algorithm-id-params" +# define OSSL_ALG_PARAM_CIPHER "cipher" +# define OSSL_ALG_PARAM_DIGEST "digest" +# define OSSL_ALG_PARAM_ENGINE "engine" +# define OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR "fips-indicator" +# define OSSL_ALG_PARAM_MAC "mac" +# define OSSL_ALG_PARAM_PROPERTIES "properties" +# define OSSL_ASYM_CIPHER_PARAM_DIGEST OSSL_PKEY_PARAM_DIGEST +# define OSSL_ASYM_CIPHER_PARAM_ENGINE OSSL_PKEY_PARAM_ENGINE +# define OSSL_ASYM_CIPHER_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_ASYM_CIPHER_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_ASYM_CIPHER_PARAM_FIPS_RSA_PKCS15_PAD_DISABLED OSSL_PROV_PARAM_RSA_PKCS15_PAD_DISABLED +# define OSSL_ASYM_CIPHER_PARAM_IMPLICIT_REJECTION "implicit-rejection" +# define OSSL_ASYM_CIPHER_PARAM_MGF1_DIGEST OSSL_PKEY_PARAM_MGF1_DIGEST +# define OSSL_ASYM_CIPHER_PARAM_MGF1_DIGEST_PROPS OSSL_PKEY_PARAM_MGF1_PROPERTIES +# define OSSL_ASYM_CIPHER_PARAM_OAEP_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_ASYM_CIPHER_PARAM_OAEP_DIGEST_PROPS "digest-props" +# define OSSL_ASYM_CIPHER_PARAM_OAEP_LABEL "oaep-label" +# define OSSL_ASYM_CIPHER_PARAM_PAD_MODE OSSL_PKEY_PARAM_PAD_MODE +# define OSSL_ASYM_CIPHER_PARAM_PROPERTIES OSSL_PKEY_PARAM_PROPERTIES +# define OSSL_ASYM_CIPHER_PARAM_TLS_CLIENT_VERSION "tls-client-version" +# define OSSL_ASYM_CIPHER_PARAM_TLS_NEGOTIATED_VERSION "tls-negotiated-version" +# define OSSL_CAPABILITY_TLS_GROUP_ALG "tls-group-alg" +# define OSSL_CAPABILITY_TLS_GROUP_ID "tls-group-id" +# define OSSL_CAPABILITY_TLS_GROUP_IS_KEM "tls-group-is-kem" +# define OSSL_CAPABILITY_TLS_GROUP_MAX_DTLS "tls-max-dtls" +# define OSSL_CAPABILITY_TLS_GROUP_MAX_TLS "tls-max-tls" +# define OSSL_CAPABILITY_TLS_GROUP_MIN_DTLS "tls-min-dtls" +# define OSSL_CAPABILITY_TLS_GROUP_MIN_TLS "tls-min-tls" +# define OSSL_CAPABILITY_TLS_GROUP_NAME "tls-group-name" +# define OSSL_CAPABILITY_TLS_GROUP_NAME_INTERNAL "tls-group-name-internal" +# define OSSL_CAPABILITY_TLS_GROUP_SECURITY_BITS "tls-group-sec-bits" +# define OSSL_CAPABILITY_TLS_SIGALG_CODE_POINT "tls-sigalg-code-point" +# define OSSL_CAPABILITY_TLS_SIGALG_HASH_NAME "tls-sigalg-hash-name" +# define OSSL_CAPABILITY_TLS_SIGALG_HASH_OID "tls-sigalg-hash-oid" +# define OSSL_CAPABILITY_TLS_SIGALG_IANA_NAME "tls-sigalg-iana-name" +# define OSSL_CAPABILITY_TLS_SIGALG_KEYTYPE "tls-sigalg-keytype" +# define OSSL_CAPABILITY_TLS_SIGALG_KEYTYPE_OID "tls-sigalg-keytype-oid" +# define OSSL_CAPABILITY_TLS_SIGALG_MAX_DTLS "tls-max-dtls" +# define OSSL_CAPABILITY_TLS_SIGALG_MAX_TLS "tls-max-tls" +# define OSSL_CAPABILITY_TLS_SIGALG_MIN_DTLS "tls-min-dtls" +# define OSSL_CAPABILITY_TLS_SIGALG_MIN_TLS "tls-min-tls" +# define OSSL_CAPABILITY_TLS_SIGALG_NAME "tls-sigalg-name" +# define OSSL_CAPABILITY_TLS_SIGALG_OID "tls-sigalg-oid" +# define OSSL_CAPABILITY_TLS_SIGALG_SECURITY_BITS "tls-sigalg-sec-bits" +# define OSSL_CAPABILITY_TLS_SIGALG_SIG_NAME "tls-sigalg-sig-name" +# define OSSL_CAPABILITY_TLS_SIGALG_SIG_OID "tls-sigalg-sig-oid" +# define OSSL_CIPHER_PARAM_AEAD "aead" +# define OSSL_CIPHER_PARAM_AEAD_IVLEN OSSL_CIPHER_PARAM_IVLEN +# define OSSL_CIPHER_PARAM_AEAD_IV_GENERATED "iv-generated" +# define OSSL_CIPHER_PARAM_AEAD_MAC_KEY "mackey" +# define OSSL_CIPHER_PARAM_AEAD_TAG "tag" +# define OSSL_CIPHER_PARAM_AEAD_TAGLEN "taglen" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_AAD "tlsaad" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_AAD_PAD "tlsaadpad" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_GET_IV_GEN "tlsivgen" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_IV_FIXED "tlsivfixed" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_SET_IV_INV "tlsivinv" +# define OSSL_CIPHER_PARAM_ALGORITHM_ID OSSL_ALG_PARAM_ALGORITHM_ID +# define OSSL_CIPHER_PARAM_ALGORITHM_ID_PARAMS OSSL_ALG_PARAM_ALGORITHM_ID_PARAMS +# define OSSL_CIPHER_PARAM_ALGORITHM_ID_PARAMS_OLD "alg_id_param" +# define OSSL_CIPHER_PARAM_BLOCK_SIZE "blocksize" +# define OSSL_CIPHER_PARAM_CTS "cts" +# define OSSL_CIPHER_PARAM_CTS_MODE "cts_mode" +# define OSSL_CIPHER_PARAM_CUSTOM_IV "custom-iv" +# define OSSL_CIPHER_PARAM_DECRYPT_ONLY "decrypt-only" +# define OSSL_CIPHER_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_CIPHER_PARAM_FIPS_ENCRYPT_CHECK "encrypt-check" +# define OSSL_CIPHER_PARAM_HAS_RAND_KEY "has-randkey" +# define OSSL_CIPHER_PARAM_IV "iv" +# define OSSL_CIPHER_PARAM_IVLEN "ivlen" +# define OSSL_CIPHER_PARAM_KEYLEN "keylen" +# define OSSL_CIPHER_PARAM_MODE "mode" +# define OSSL_CIPHER_PARAM_NUM "num" +# define OSSL_CIPHER_PARAM_PADDING "padding" +# define OSSL_CIPHER_PARAM_PIPELINE_AEAD_TAG "pipeline-tag" +# define OSSL_CIPHER_PARAM_RANDOM_KEY "randkey" +# define OSSL_CIPHER_PARAM_RC2_KEYBITS "keybits" +# define OSSL_CIPHER_PARAM_ROUNDS "rounds" +# define OSSL_CIPHER_PARAM_SPEED "speed" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK "tls-multi" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD "tls1multi_aad" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD_PACKLEN "tls1multi_aadpacklen" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC "tls1multi_enc" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_IN "tls1multi_encin" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_LEN "tls1multi_enclen" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_INTERLEAVE "tls1multi_interleave" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_BUFSIZE "tls1multi_maxbufsz" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_SEND_FRAGMENT "tls1multi_maxsndfrag" +# define OSSL_CIPHER_PARAM_TLS_MAC "tls-mac" +# define OSSL_CIPHER_PARAM_TLS_MAC_SIZE "tls-mac-size" +# define OSSL_CIPHER_PARAM_TLS_VERSION "tls-version" +# define OSSL_CIPHER_PARAM_UPDATED_IV "updated-iv" +# define OSSL_CIPHER_PARAM_USE_BITS "use-bits" +# define OSSL_CIPHER_PARAM_XTS_STANDARD "xts_standard" +# define OSSL_DECODER_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_DIGEST_PARAM_ALGID_ABSENT "algid-absent" +# define OSSL_DIGEST_PARAM_BLOCK_SIZE "blocksize" +# define OSSL_DIGEST_PARAM_MICALG "micalg" +# define OSSL_DIGEST_PARAM_PAD_TYPE "pad-type" +# define OSSL_DIGEST_PARAM_SIZE "size" +# define OSSL_DIGEST_PARAM_SSL3_MS "ssl3-ms" +# define OSSL_DIGEST_PARAM_XOF "xof" +# define OSSL_DIGEST_PARAM_XOFLEN "xoflen" +# define OSSL_DRBG_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_DRBG_PARAM_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_DRBG_PARAM_ENTROPY_REQUIRED "entropy_required" +# define OSSL_DRBG_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_DRBG_PARAM_FIPS_DIGEST_CHECK OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK +# define OSSL_DRBG_PARAM_MAC OSSL_ALG_PARAM_MAC +# define OSSL_DRBG_PARAM_MAX_ADINLEN "max_adinlen" +# define OSSL_DRBG_PARAM_MAX_ENTROPYLEN "max_entropylen" +# define OSSL_DRBG_PARAM_MAX_LENGTH "maxium_length" +# define OSSL_DRBG_PARAM_MAX_NONCELEN "max_noncelen" +# define OSSL_DRBG_PARAM_MAX_PERSLEN "max_perslen" +# define OSSL_DRBG_PARAM_MIN_ENTROPYLEN "min_entropylen" +# define OSSL_DRBG_PARAM_MIN_LENGTH "minium_length" +# define OSSL_DRBG_PARAM_MIN_NONCELEN "min_noncelen" +# define OSSL_DRBG_PARAM_PREDICTION_RESISTANCE "prediction_resistance" +# define OSSL_DRBG_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_DRBG_PARAM_RANDOM_DATA "random_data" +# define OSSL_DRBG_PARAM_RESEED_COUNTER "reseed_counter" +# define OSSL_DRBG_PARAM_RESEED_REQUESTS "reseed_requests" +# define OSSL_DRBG_PARAM_RESEED_TIME "reseed_time" +# define OSSL_DRBG_PARAM_RESEED_TIME_INTERVAL "reseed_time_interval" +# define OSSL_DRBG_PARAM_SIZE "size" +# define OSSL_DRBG_PARAM_USE_DF "use_derivation_function" +# define OSSL_ENCODER_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_ENCODER_PARAM_ENCRYPT_LEVEL "encrypt-level" +# define OSSL_ENCODER_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_ENCODER_PARAM_SAVE_PARAMETERS "save-parameters" +# define OSSL_EXCHANGE_PARAM_EC_ECDH_COFACTOR_MODE "ecdh-cofactor-mode" +# define OSSL_EXCHANGE_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_EXCHANGE_PARAM_FIPS_DIGEST_CHECK OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK +# define OSSL_EXCHANGE_PARAM_FIPS_ECDH_COFACTOR_CHECK OSSL_PROV_PARAM_ECDH_COFACTOR_CHECK +# define OSSL_EXCHANGE_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_EXCHANGE_PARAM_KDF_DIGEST "kdf-digest" +# define OSSL_EXCHANGE_PARAM_KDF_DIGEST_PROPS "kdf-digest-props" +# define OSSL_EXCHANGE_PARAM_KDF_OUTLEN "kdf-outlen" +# define OSSL_EXCHANGE_PARAM_KDF_TYPE "kdf-type" +# define OSSL_EXCHANGE_PARAM_KDF_UKM "kdf-ukm" +# define OSSL_EXCHANGE_PARAM_PAD "pad" +# define OSSL_GEN_PARAM_ITERATION "iteration" +# define OSSL_GEN_PARAM_POTENTIAL "potential" +# define OSSL_KDF_PARAM_ARGON2_AD "ad" +# define OSSL_KDF_PARAM_ARGON2_LANES "lanes" +# define OSSL_KDF_PARAM_ARGON2_MEMCOST "memcost" +# define OSSL_KDF_PARAM_ARGON2_VERSION "version" +# define OSSL_KDF_PARAM_CEK_ALG "cekalg" +# define OSSL_KDF_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_KDF_PARAM_CONSTANT "constant" +# define OSSL_KDF_PARAM_DATA "data" +# define OSSL_KDF_PARAM_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_KDF_PARAM_EARLY_CLEAN "early_clean" +# define OSSL_KDF_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_KDF_PARAM_FIPS_DIGEST_CHECK OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK +# define OSSL_KDF_PARAM_FIPS_EMS_CHECK "ems_check" +# define OSSL_KDF_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_KDF_PARAM_HMACDRBG_ENTROPY "entropy" +# define OSSL_KDF_PARAM_HMACDRBG_NONCE "nonce" +# define OSSL_KDF_PARAM_INFO "info" +# define OSSL_KDF_PARAM_ITER "iter" +# define OSSL_KDF_PARAM_KBKDF_R "r" +# define OSSL_KDF_PARAM_KBKDF_USE_L "use-l" +# define OSSL_KDF_PARAM_KBKDF_USE_SEPARATOR "use-separator" +# define OSSL_KDF_PARAM_KEY "key" +# define OSSL_KDF_PARAM_LABEL "label" +# define OSSL_KDF_PARAM_MAC OSSL_ALG_PARAM_MAC +# define OSSL_KDF_PARAM_MAC_SIZE "maclen" +# define OSSL_KDF_PARAM_MODE "mode" +# define OSSL_KDF_PARAM_PASSWORD "pass" +# define OSSL_KDF_PARAM_PKCS12_ID "id" +# define OSSL_KDF_PARAM_PKCS5 "pkcs5" +# define OSSL_KDF_PARAM_PREFIX "prefix" +# define OSSL_KDF_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_KDF_PARAM_SALT "salt" +# define OSSL_KDF_PARAM_SCRYPT_MAXMEM "maxmem_bytes" +# define OSSL_KDF_PARAM_SCRYPT_N "n" +# define OSSL_KDF_PARAM_SCRYPT_P "p" +# define OSSL_KDF_PARAM_SCRYPT_R "r" +# define OSSL_KDF_PARAM_SECRET "secret" +# define OSSL_KDF_PARAM_SEED "seed" +# define OSSL_KDF_PARAM_SIZE "size" +# define OSSL_KDF_PARAM_SSHKDF_SESSION_ID "session_id" +# define OSSL_KDF_PARAM_SSHKDF_TYPE "type" +# define OSSL_KDF_PARAM_SSHKDF_XCGHASH "xcghash" +# define OSSL_KDF_PARAM_THREADS "threads" +# define OSSL_KDF_PARAM_UKM "ukm" +# define OSSL_KDF_PARAM_X942_ACVPINFO "acvp-info" +# define OSSL_KDF_PARAM_X942_PARTYUINFO "partyu-info" +# define OSSL_KDF_PARAM_X942_PARTYVINFO "partyv-info" +# define OSSL_KDF_PARAM_X942_SUPP_PRIVINFO "supp-privinfo" +# define OSSL_KDF_PARAM_X942_SUPP_PUBINFO "supp-pubinfo" +# define OSSL_KDF_PARAM_X942_USE_KEYBITS "use-keybits" +# define OSSL_KEM_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_KEM_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_KEM_PARAM_IKME "ikme" +# define OSSL_KEM_PARAM_OPERATION "operation" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_BLOCK_PADDING "block_padding" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_HS_PADDING "hs_padding" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_MAX_EARLY_DATA "max_early_data" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_MAX_FRAG_LEN "max_frag_len" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_MODE "mode" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_OPTIONS "options" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_READ_AHEAD "read_ahead" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_STREAM_MAC "stream_mac" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_TLSTREE "tlstree" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_USE_ETM "use_etm" +# define OSSL_LIBSSL_RECORD_LAYER_READ_BUFFER_LEN "read_buffer_len" +# define OSSL_MAC_PARAM_BLOCK_SIZE "block-size" +# define OSSL_MAC_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_MAC_PARAM_CUSTOM "custom" +# define OSSL_MAC_PARAM_C_ROUNDS "c-rounds" +# define OSSL_MAC_PARAM_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_MAC_PARAM_DIGEST_NOINIT "digest-noinit" +# define OSSL_MAC_PARAM_DIGEST_ONESHOT "digest-oneshot" +# define OSSL_MAC_PARAM_D_ROUNDS "d-rounds" +# define OSSL_MAC_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_MAC_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_MAC_PARAM_FIPS_NO_SHORT_MAC OSSL_PROV_PARAM_NO_SHORT_MAC +# define OSSL_MAC_PARAM_IV "iv" +# define OSSL_MAC_PARAM_KEY "key" +# define OSSL_MAC_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_MAC_PARAM_SALT "salt" +# define OSSL_MAC_PARAM_SIZE "size" +# define OSSL_MAC_PARAM_TLS_DATA_SIZE "tls-data-size" +# define OSSL_MAC_PARAM_XOF "xof" +# define OSSL_OBJECT_PARAM_DATA "data" +# define OSSL_OBJECT_PARAM_DATA_STRUCTURE "data-structure" +# define OSSL_OBJECT_PARAM_DATA_TYPE "data-type" +# define OSSL_OBJECT_PARAM_DESC "desc" +# define OSSL_OBJECT_PARAM_INPUT_TYPE "input-type" +# define OSSL_OBJECT_PARAM_REFERENCE "reference" +# define OSSL_OBJECT_PARAM_TYPE "type" +# define OSSL_PASSPHRASE_PARAM_INFO "info" +# define OSSL_PKEY_PARAM_ALGORITHM_ID OSSL_ALG_PARAM_ALGORITHM_ID +# define OSSL_PKEY_PARAM_ALGORITHM_ID_PARAMS OSSL_ALG_PARAM_ALGORITHM_ID_PARAMS +# define OSSL_PKEY_PARAM_BITS "bits" +# define OSSL_PKEY_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_PKEY_PARAM_DEFAULT_DIGEST "default-digest" +# define OSSL_PKEY_PARAM_DHKEM_IKM "dhkem-ikm" +# define OSSL_PKEY_PARAM_DH_GENERATOR "safeprime-generator" +# define OSSL_PKEY_PARAM_DH_PRIV_LEN "priv_len" +# define OSSL_PKEY_PARAM_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_PKEY_PARAM_DIGEST_SIZE "digest-size" +# define OSSL_PKEY_PARAM_DIST_ID "distid" +# define OSSL_PKEY_PARAM_EC_A "a" +# define OSSL_PKEY_PARAM_EC_B "b" +# define OSSL_PKEY_PARAM_EC_CHAR2_M "m" +# define OSSL_PKEY_PARAM_EC_CHAR2_PP_K1 "k1" +# define OSSL_PKEY_PARAM_EC_CHAR2_PP_K2 "k2" +# define OSSL_PKEY_PARAM_EC_CHAR2_PP_K3 "k3" +# define OSSL_PKEY_PARAM_EC_CHAR2_TP_BASIS "tp" +# define OSSL_PKEY_PARAM_EC_CHAR2_TYPE "basis-type" +# define OSSL_PKEY_PARAM_EC_COFACTOR "cofactor" +# define OSSL_PKEY_PARAM_EC_DECODED_FROM_EXPLICIT_PARAMS "decoded-from-explicit" +# define OSSL_PKEY_PARAM_EC_ENCODING "encoding" +# define OSSL_PKEY_PARAM_EC_FIELD_TYPE "field-type" +# define OSSL_PKEY_PARAM_EC_GENERATOR "generator" +# define OSSL_PKEY_PARAM_EC_GROUP_CHECK_TYPE "group-check" +# define OSSL_PKEY_PARAM_EC_INCLUDE_PUBLIC "include-public" +# define OSSL_PKEY_PARAM_EC_ORDER "order" +# define OSSL_PKEY_PARAM_EC_P "p" +# define OSSL_PKEY_PARAM_EC_POINT_CONVERSION_FORMAT "point-format" +# define OSSL_PKEY_PARAM_EC_PUB_X "qx" +# define OSSL_PKEY_PARAM_EC_PUB_Y "qy" +# define OSSL_PKEY_PARAM_EC_SEED "seed" +# define OSSL_PKEY_PARAM_ENCODED_PUBLIC_KEY "encoded-pub-key" +# define OSSL_PKEY_PARAM_ENGINE OSSL_ALG_PARAM_ENGINE +# define OSSL_PKEY_PARAM_FFC_COFACTOR "j" +# define OSSL_PKEY_PARAM_FFC_DIGEST OSSL_PKEY_PARAM_DIGEST +# define OSSL_PKEY_PARAM_FFC_DIGEST_PROPS OSSL_PKEY_PARAM_PROPERTIES +# define OSSL_PKEY_PARAM_FFC_G "g" +# define OSSL_PKEY_PARAM_FFC_GINDEX "gindex" +# define OSSL_PKEY_PARAM_FFC_H "hindex" +# define OSSL_PKEY_PARAM_FFC_P "p" +# define OSSL_PKEY_PARAM_FFC_PBITS "pbits" +# define OSSL_PKEY_PARAM_FFC_PCOUNTER "pcounter" +# define OSSL_PKEY_PARAM_FFC_Q "q" +# define OSSL_PKEY_PARAM_FFC_QBITS "qbits" +# define OSSL_PKEY_PARAM_FFC_SEED "seed" +# define OSSL_PKEY_PARAM_FFC_TYPE "type" +# define OSSL_PKEY_PARAM_FFC_VALIDATE_G "validate-g" +# define OSSL_PKEY_PARAM_FFC_VALIDATE_LEGACY "validate-legacy" +# define OSSL_PKEY_PARAM_FFC_VALIDATE_PQ "validate-pq" +# define OSSL_PKEY_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK "digest-check" +# define OSSL_PKEY_PARAM_FIPS_KEY_CHECK "key-check" +# define OSSL_PKEY_PARAM_FIPS_SIGN_CHECK "sign-check" +# define OSSL_PKEY_PARAM_GROUP_NAME "group" +# define OSSL_PKEY_PARAM_IMPLICIT_REJECTION "implicit-rejection" +# define OSSL_PKEY_PARAM_MANDATORY_DIGEST "mandatory-digest" +# define OSSL_PKEY_PARAM_MASKGENFUNC "mgf" +# define OSSL_PKEY_PARAM_MAX_SIZE "max-size" +# define OSSL_PKEY_PARAM_MGF1_DIGEST "mgf1-digest" +# define OSSL_PKEY_PARAM_MGF1_PROPERTIES "mgf1-properties" +# define OSSL_PKEY_PARAM_ML_DSA_INPUT_FORMATS "ml-dsa.input_formats" +# define OSSL_PKEY_PARAM_ML_DSA_OUTPUT_FORMATS "ml-dsa.output_formats" +# define OSSL_PKEY_PARAM_ML_DSA_PREFER_SEED "ml-dsa.prefer_seed" +# define OSSL_PKEY_PARAM_ML_DSA_RETAIN_SEED "ml-dsa.retain_seed" +# define OSSL_PKEY_PARAM_ML_DSA_SEED "seed" +# define OSSL_PKEY_PARAM_ML_KEM_IMPORT_PCT_TYPE "ml-kem.import_pct_type" +# define OSSL_PKEY_PARAM_ML_KEM_INPUT_FORMATS "ml-kem.input_formats" +# define OSSL_PKEY_PARAM_ML_KEM_OUTPUT_FORMATS "ml-kem.output_formats" +# define OSSL_PKEY_PARAM_ML_KEM_PREFER_SEED "ml-kem.prefer_seed" +# define OSSL_PKEY_PARAM_ML_KEM_RETAIN_SEED "ml-kem.retain_seed" +# define OSSL_PKEY_PARAM_ML_KEM_SEED "seed" +# define OSSL_PKEY_PARAM_PAD_MODE "pad-mode" +# define OSSL_PKEY_PARAM_PRIV_KEY "priv" +# define OSSL_PKEY_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_PKEY_PARAM_PUB_KEY "pub" +# define OSSL_PKEY_PARAM_RSA_BITS OSSL_PKEY_PARAM_BITS +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT "rsa-coefficient" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT1 "rsa-coefficient1" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT2 "rsa-coefficient2" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT3 "rsa-coefficient3" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT4 "rsa-coefficient4" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT5 "rsa-coefficient5" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT6 "rsa-coefficient6" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT7 "rsa-coefficient7" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT8 "rsa-coefficient8" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT9 "rsa-coefficient9" +# define OSSL_PKEY_PARAM_RSA_D "d" +# define OSSL_PKEY_PARAM_RSA_DERIVE_FROM_PQ "rsa-derive-from-pq" +# define OSSL_PKEY_PARAM_RSA_DIGEST OSSL_PKEY_PARAM_DIGEST +# define OSSL_PKEY_PARAM_RSA_DIGEST_PROPS OSSL_PKEY_PARAM_PROPERTIES +# define OSSL_PKEY_PARAM_RSA_E "e" +# define OSSL_PKEY_PARAM_RSA_EXPONENT "rsa-exponent" +# define OSSL_PKEY_PARAM_RSA_EXPONENT1 "rsa-exponent1" +# define OSSL_PKEY_PARAM_RSA_EXPONENT10 "rsa-exponent10" +# define OSSL_PKEY_PARAM_RSA_EXPONENT2 "rsa-exponent2" +# define OSSL_PKEY_PARAM_RSA_EXPONENT3 "rsa-exponent3" +# define OSSL_PKEY_PARAM_RSA_EXPONENT4 "rsa-exponent4" +# define OSSL_PKEY_PARAM_RSA_EXPONENT5 "rsa-exponent5" +# define OSSL_PKEY_PARAM_RSA_EXPONENT6 "rsa-exponent6" +# define OSSL_PKEY_PARAM_RSA_EXPONENT7 "rsa-exponent7" +# define OSSL_PKEY_PARAM_RSA_EXPONENT8 "rsa-exponent8" +# define OSSL_PKEY_PARAM_RSA_EXPONENT9 "rsa-exponent9" +# define OSSL_PKEY_PARAM_RSA_FACTOR "rsa-factor" +# define OSSL_PKEY_PARAM_RSA_FACTOR1 "rsa-factor1" +# define OSSL_PKEY_PARAM_RSA_FACTOR10 "rsa-factor10" +# define OSSL_PKEY_PARAM_RSA_FACTOR2 "rsa-factor2" +# define OSSL_PKEY_PARAM_RSA_FACTOR3 "rsa-factor3" +# define OSSL_PKEY_PARAM_RSA_FACTOR4 "rsa-factor4" +# define OSSL_PKEY_PARAM_RSA_FACTOR5 "rsa-factor5" +# define OSSL_PKEY_PARAM_RSA_FACTOR6 "rsa-factor6" +# define OSSL_PKEY_PARAM_RSA_FACTOR7 "rsa-factor7" +# define OSSL_PKEY_PARAM_RSA_FACTOR8 "rsa-factor8" +# define OSSL_PKEY_PARAM_RSA_FACTOR9 "rsa-factor9" +# define OSSL_PKEY_PARAM_RSA_MASKGENFUNC OSSL_PKEY_PARAM_MASKGENFUNC +# define OSSL_PKEY_PARAM_RSA_MGF1_DIGEST OSSL_PKEY_PARAM_MGF1_DIGEST +# define OSSL_PKEY_PARAM_RSA_N "n" +# define OSSL_PKEY_PARAM_RSA_PRIMES "primes" +# define OSSL_PKEY_PARAM_RSA_PSS_SALTLEN "saltlen" +# define OSSL_PKEY_PARAM_RSA_TEST_P1 "p1" +# define OSSL_PKEY_PARAM_RSA_TEST_P2 "p2" +# define OSSL_PKEY_PARAM_RSA_TEST_Q1 "q1" +# define OSSL_PKEY_PARAM_RSA_TEST_Q2 "q2" +# define OSSL_PKEY_PARAM_RSA_TEST_XP "xp" +# define OSSL_PKEY_PARAM_RSA_TEST_XP1 "xp1" +# define OSSL_PKEY_PARAM_RSA_TEST_XP2 "xp2" +# define OSSL_PKEY_PARAM_RSA_TEST_XQ "xq" +# define OSSL_PKEY_PARAM_RSA_TEST_XQ1 "xq1" +# define OSSL_PKEY_PARAM_RSA_TEST_XQ2 "xq2" +# define OSSL_PKEY_PARAM_SECURITY_BITS "security-bits" +# define OSSL_PKEY_PARAM_SLH_DSA_SEED "seed" +# define OSSL_PKEY_PARAM_USE_COFACTOR_ECDH OSSL_PKEY_PARAM_USE_COFACTOR_FLAG +# define OSSL_PKEY_PARAM_USE_COFACTOR_FLAG "use-cofactor-flag" +# define OSSL_PROV_PARAM_BUILDINFO "buildinfo" +# define OSSL_PROV_PARAM_CORE_MODULE_FILENAME "module-filename" +# define OSSL_PROV_PARAM_CORE_PROV_NAME "provider-name" +# define OSSL_PROV_PARAM_CORE_VERSION "openssl-version" +# define OSSL_PROV_PARAM_DRBG_TRUNC_DIGEST "drbg-no-trunc-md" +# define OSSL_PROV_PARAM_DSA_SIGN_DISABLED "dsa-sign-disabled" +# define OSSL_PROV_PARAM_ECDH_COFACTOR_CHECK "ecdh-cofactor-check" +# define OSSL_PROV_PARAM_HKDF_DIGEST_CHECK "hkdf-digest-check" +# define OSSL_PROV_PARAM_HKDF_KEY_CHECK "hkdf-key-check" +# define OSSL_PROV_PARAM_HMAC_KEY_CHECK "hmac-key-check" +# define OSSL_PROV_PARAM_KBKDF_KEY_CHECK "kbkdf-key-check" +# define OSSL_PROV_PARAM_KMAC_KEY_CHECK "kmac-key-check" +# define OSSL_PROV_PARAM_NAME "name" +# define OSSL_PROV_PARAM_NO_SHORT_MAC "no-short-mac" +# define OSSL_PROV_PARAM_PBKDF2_LOWER_BOUND_CHECK "pbkdf2-lower-bound-check" +# define OSSL_PROV_PARAM_RSA_PKCS15_PAD_DISABLED "rsa-pkcs15-pad-disabled" +# define OSSL_PROV_PARAM_RSA_PSS_SALTLEN_CHECK "rsa-pss-saltlen-check" +# define OSSL_PROV_PARAM_RSA_SIGN_X931_PAD_DISABLED "rsa-sign-x931-pad-disabled" +# define OSSL_PROV_PARAM_SECURITY_CHECKS "security-checks" +# define OSSL_PROV_PARAM_SELF_TEST_DESC "st-desc" +# define OSSL_PROV_PARAM_SELF_TEST_PHASE "st-phase" +# define OSSL_PROV_PARAM_SELF_TEST_TYPE "st-type" +# define OSSL_PROV_PARAM_SIGNATURE_DIGEST_CHECK "signature-digest-check" +# define OSSL_PROV_PARAM_SSHKDF_DIGEST_CHECK "sshkdf-digest-check" +# define OSSL_PROV_PARAM_SSHKDF_KEY_CHECK "sshkdf-key-check" +# define OSSL_PROV_PARAM_SSKDF_DIGEST_CHECK "sskdf-digest-check" +# define OSSL_PROV_PARAM_SSKDF_KEY_CHECK "sskdf-key-check" +# define OSSL_PROV_PARAM_STATUS "status" +# define OSSL_PROV_PARAM_TDES_ENCRYPT_DISABLED "tdes-encrypt-disabled" +# define OSSL_PROV_PARAM_TLS13_KDF_DIGEST_CHECK "tls13-kdf-digest-check" +# define OSSL_PROV_PARAM_TLS13_KDF_KEY_CHECK "tls13-kdf-key-check" +# define OSSL_PROV_PARAM_TLS1_PRF_DIGEST_CHECK "tls1-prf-digest-check" +# define OSSL_PROV_PARAM_TLS1_PRF_EMS_CHECK "tls1-prf-ems-check" +# define OSSL_PROV_PARAM_TLS1_PRF_KEY_CHECK "tls1-prf-key-check" +# define OSSL_PROV_PARAM_VERSION "version" +# define OSSL_PROV_PARAM_X942KDF_KEY_CHECK "x942kdf-key-check" +# define OSSL_PROV_PARAM_X963KDF_DIGEST_CHECK "x963kdf-digest-check" +# define OSSL_PROV_PARAM_X963KDF_KEY_CHECK "x963kdf-key-check" +# define OSSL_RAND_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_RAND_PARAM_GENERATE "generate" +# define OSSL_RAND_PARAM_MAX_REQUEST "max_request" +# define OSSL_RAND_PARAM_STATE "state" +# define OSSL_RAND_PARAM_STRENGTH "strength" +# define OSSL_RAND_PARAM_TEST_ENTROPY "test_entropy" +# define OSSL_RAND_PARAM_TEST_NONCE "test_nonce" +# define OSSL_SIGNATURE_PARAM_ADD_RANDOM "additional-random" +# define OSSL_SIGNATURE_PARAM_ALGORITHM_ID OSSL_PKEY_PARAM_ALGORITHM_ID +# define OSSL_SIGNATURE_PARAM_ALGORITHM_ID_PARAMS OSSL_PKEY_PARAM_ALGORITHM_ID_PARAMS +# define OSSL_SIGNATURE_PARAM_CONTEXT_STRING "context-string" +# define OSSL_SIGNATURE_PARAM_DETERMINISTIC "deterministic" +# define OSSL_SIGNATURE_PARAM_DIGEST OSSL_PKEY_PARAM_DIGEST +# define OSSL_SIGNATURE_PARAM_DIGEST_SIZE OSSL_PKEY_PARAM_DIGEST_SIZE +# define OSSL_SIGNATURE_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_SIGNATURE_PARAM_FIPS_DIGEST_CHECK OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK +# define OSSL_SIGNATURE_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_SIGNATURE_PARAM_FIPS_RSA_PSS_SALTLEN_CHECK "rsa-pss-saltlen-check" +# define OSSL_SIGNATURE_PARAM_FIPS_SIGN_CHECK OSSL_PKEY_PARAM_FIPS_SIGN_CHECK +# define OSSL_SIGNATURE_PARAM_FIPS_SIGN_X931_PAD_CHECK "sign-x931-pad-check" +# define OSSL_SIGNATURE_PARAM_FIPS_VERIFY_MESSAGE "verify-message" +# define OSSL_SIGNATURE_PARAM_INSTANCE "instance" +# define OSSL_SIGNATURE_PARAM_KAT "kat" +# define OSSL_SIGNATURE_PARAM_MESSAGE_ENCODING "message-encoding" +# define OSSL_SIGNATURE_PARAM_MGF1_DIGEST OSSL_PKEY_PARAM_MGF1_DIGEST +# define OSSL_SIGNATURE_PARAM_MGF1_PROPERTIES OSSL_PKEY_PARAM_MGF1_PROPERTIES +# define OSSL_SIGNATURE_PARAM_MU "mu" +# define OSSL_SIGNATURE_PARAM_NONCE_TYPE "nonce-type" +# define OSSL_SIGNATURE_PARAM_PAD_MODE OSSL_PKEY_PARAM_PAD_MODE +# define OSSL_SIGNATURE_PARAM_PROPERTIES OSSL_PKEY_PARAM_PROPERTIES +# define OSSL_SIGNATURE_PARAM_PSS_SALTLEN "saltlen" +# define OSSL_SIGNATURE_PARAM_SIGNATURE "signature" +# define OSSL_SIGNATURE_PARAM_TEST_ENTROPY "test-entropy" +# define OSSL_SKEY_PARAM_KEY_LENGTH "key-length" +# define OSSL_SKEY_PARAM_RAW_BYTES "raw-bytes" +# define OSSL_STORE_PARAM_ALIAS "alias" +# define OSSL_STORE_PARAM_DIGEST "digest" +# define OSSL_STORE_PARAM_EXPECT "expect" +# define OSSL_STORE_PARAM_FINGERPRINT "fingerprint" +# define OSSL_STORE_PARAM_INPUT_TYPE "input-type" +# define OSSL_STORE_PARAM_ISSUER "name" +# define OSSL_STORE_PARAM_PROPERTIES "properties" +# define OSSL_STORE_PARAM_SERIAL "serial" +# define OSSL_STORE_PARAM_SUBJECT "subject" + +# ifdef __cplusplus +} +# endif + +#endif diff --git a/deps/openssl/config/archs/VC-WIN64-ARM/no-asm/include/openssl/crmf.h b/deps/openssl/config/archs/VC-WIN64-ARM/no-asm/include/openssl/crmf.h index 0419170bb99974..9b6f13fac240b2 100644 --- a/deps/openssl/config/archs/VC-WIN64-ARM/no-asm/include/openssl/crmf.h +++ b/deps/openssl/config/archs/VC-WIN64-ARM/no-asm/include/openssl/crmf.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by makefile from include/openssl/crmf.h.in * - * Copyright 2007-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2007-2025 The OpenSSL Project Authors. All Rights Reserved. * Copyright Nokia 2007-2019 * Copyright Siemens AG 2015-2019 * @@ -26,6 +26,7 @@ # include # include # include /* for GENERAL_NAME etc. */ +# include /* explicit #includes not strictly needed since implied by the above: */ # include @@ -43,9 +44,12 @@ extern "C" { # define OSSL_CRMF_SUBSEQUENTMESSAGE_ENCRCERT 0 # define OSSL_CRMF_SUBSEQUENTMESSAGE_CHALLENGERESP 1 - typedef struct ossl_crmf_encryptedvalue_st OSSL_CRMF_ENCRYPTEDVALUE; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_ENCRYPTEDVALUE) + +typedef struct ossl_crmf_encryptedkey_st OSSL_CRMF_ENCRYPTEDKEY; +DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_ENCRYPTEDKEY) + typedef struct ossl_crmf_msg_st OSSL_CRMF_MSG; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_MSG) DECLARE_ASN1_DUP_FUNCTION(OSSL_CRMF_MSG) @@ -77,6 +81,36 @@ SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CRMF_MSG, OSSL_CRMF_MSG, OSSL_CRMF_MSG) #define sk_OSSL_CRMF_MSG_set_cmp_func(sk, cmp) ((sk_OSSL_CRMF_MSG_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CRMF_MSG_sk_type(sk), ossl_check_OSSL_CRMF_MSG_compfunc_type(cmp))) typedef struct ossl_crmf_attributetypeandvalue_st OSSL_CRMF_ATTRIBUTETYPEANDVALUE; +void OSSL_CRMF_ATTRIBUTETYPEANDVALUE_free(OSSL_CRMF_ATTRIBUTETYPEANDVALUE *v); +DECLARE_ASN1_DUP_FUNCTION(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CRMF_ATTRIBUTETYPEANDVALUE, OSSL_CRMF_ATTRIBUTETYPEANDVALUE, OSSL_CRMF_ATTRIBUTETYPEANDVALUE) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_value(sk, idx) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_value(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), (idx))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_new(cmp) ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_new(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_compfunc_type(cmp))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_new_null() ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_new_null()) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_new_reserve(cmp, n) ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_compfunc_type(cmp), (n))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), (n)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_free(sk) OPENSSL_sk_free(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_delete(sk, i) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_delete(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), (i))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_delete_ptr(sk, ptr) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_pop(sk) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_pop(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_shift(sk) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_shift(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk),ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_freefunc_type(freefunc)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr), (idx)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_set(sk, idx, ptr) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_set(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), (idx), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr), pnum) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_dup(sk) ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_dup(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_copyfunc_type(copyfunc), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_freefunc_type(freefunc))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_set_cmp_func(sk, cmp) ((sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_compfunc_type(cmp))) + + typedef struct ossl_crmf_pbmparameter_st OSSL_CRMF_PBMPARAMETER; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_PBMPARAMETER) typedef struct ossl_crmf_poposigningkey_st OSSL_CRMF_POPOSIGNINGKEY; @@ -118,6 +152,7 @@ typedef struct ossl_crmf_singlepubinfo_st OSSL_CRMF_SINGLEPUBINFO; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_SINGLEPUBINFO) typedef struct ossl_crmf_certtemplate_st OSSL_CRMF_CERTTEMPLATE; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_CERTTEMPLATE) +DECLARE_ASN1_DUP_FUNCTION(OSSL_CRMF_CERTTEMPLATE) typedef STACK_OF(OSSL_CRMF_MSG) OSSL_CRMF_MSGS; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_MSGS) @@ -198,12 +233,14 @@ int OSSL_CRMF_MSGS_verify_popo(const OSSL_CRMF_MSGS *reqs, int rid, int acceptRAVerified, OSSL_LIB_CTX *libctx, const char *propq); OSSL_CRMF_CERTTEMPLATE *OSSL_CRMF_MSG_get0_tmpl(const OSSL_CRMF_MSG *crm); -const ASN1_INTEGER -*OSSL_CRMF_CERTTEMPLATE_get0_serialNumber(const OSSL_CRMF_CERTTEMPLATE *tmpl); +X509_PUBKEY +*OSSL_CRMF_CERTTEMPLATE_get0_publicKey(const OSSL_CRMF_CERTTEMPLATE *tmpl); const X509_NAME *OSSL_CRMF_CERTTEMPLATE_get0_subject(const OSSL_CRMF_CERTTEMPLATE *tmpl); const X509_NAME *OSSL_CRMF_CERTTEMPLATE_get0_issuer(const OSSL_CRMF_CERTTEMPLATE *tmpl); +const ASN1_INTEGER +*OSSL_CRMF_CERTTEMPLATE_get0_serialNumber(const OSSL_CRMF_CERTTEMPLATE *tmpl); X509_EXTENSIONS *OSSL_CRMF_CERTTEMPLATE_get0_extensions(const OSSL_CRMF_CERTTEMPLATE *tmpl); const X509_NAME @@ -215,10 +252,24 @@ int OSSL_CRMF_CERTTEMPLATE_fill(OSSL_CRMF_CERTTEMPLATE *tmpl, const X509_NAME *subject, const X509_NAME *issuer, const ASN1_INTEGER *serial); -X509 -*OSSL_CRMF_ENCRYPTEDVALUE_get1_encCert(const OSSL_CRMF_ENCRYPTEDVALUE *ecert, - OSSL_LIB_CTX *libctx, const char *propq, - EVP_PKEY *pkey); +X509 *OSSL_CRMF_ENCRYPTEDVALUE_get1_encCert(const OSSL_CRMF_ENCRYPTEDVALUE *ecert, + OSSL_LIB_CTX *libctx, const char *propq, + EVP_PKEY *pkey); +X509 *OSSL_CRMF_ENCRYPTEDKEY_get1_encCert(const OSSL_CRMF_ENCRYPTEDKEY *ecert, + OSSL_LIB_CTX *libctx, const char *propq, + EVP_PKEY *pkey, unsigned int flags); +unsigned char +*OSSL_CRMF_ENCRYPTEDVALUE_decrypt(const OSSL_CRMF_ENCRYPTEDVALUE *enc, + OSSL_LIB_CTX *libctx, const char *propq, + EVP_PKEY *pkey, int *outlen); +EVP_PKEY *OSSL_CRMF_ENCRYPTEDKEY_get1_pkey(const OSSL_CRMF_ENCRYPTEDKEY *encryptedKey, + X509_STORE *ts, STACK_OF(X509) *extra, EVP_PKEY *pkey, + X509 *cert, ASN1_OCTET_STRING *secret, + OSSL_LIB_CTX *libctx, const char *propq); +int OSSL_CRMF_MSG_centralkeygen_requested(const OSSL_CRMF_MSG *crm, const X509_REQ *p10cr); +# ifndef OPENSSL_NO_CMS +OSSL_CRMF_ENCRYPTEDKEY *OSSL_CRMF_ENCRYPTEDKEY_init_envdata(CMS_EnvelopedData *envdata); +# endif # ifdef __cplusplus } diff --git a/deps/openssl/config/archs/VC-WIN64-ARM/no-asm/include/openssl/crypto.h b/deps/openssl/config/archs/VC-WIN64-ARM/no-asm/include/openssl/crypto.h index 668c52cfee1f15..2a825986bf3a55 100644 --- a/deps/openssl/config/archs/VC-WIN64-ARM/no-asm/include/openssl/crypto.h +++ b/deps/openssl/config/archs/VC-WIN64-ARM/no-asm/include/openssl/crypto.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by makefile from include/openssl/crypto.h.in * - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2024 The OpenSSL Project Authors. All Rights Reserved. * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved * * Licensed under the Apache License 2.0 (the "License"). You may not use @@ -85,9 +85,15 @@ int CRYPTO_THREAD_unlock(CRYPTO_RWLOCK *lock); void CRYPTO_THREAD_lock_free(CRYPTO_RWLOCK *lock); int CRYPTO_atomic_add(int *val, int amount, int *ret, CRYPTO_RWLOCK *lock); +int CRYPTO_atomic_add64(uint64_t *val, uint64_t op, uint64_t *ret, + CRYPTO_RWLOCK *lock); +int CRYPTO_atomic_and(uint64_t *val, uint64_t op, uint64_t *ret, + CRYPTO_RWLOCK *lock); int CRYPTO_atomic_or(uint64_t *val, uint64_t op, uint64_t *ret, CRYPTO_RWLOCK *lock); int CRYPTO_atomic_load(uint64_t *val, uint64_t *ret, CRYPTO_RWLOCK *lock); +int CRYPTO_atomic_load_int(int *val, int *ret, CRYPTO_RWLOCK *lock); +int CRYPTO_atomic_store(uint64_t *dst, uint64_t val, CRYPTO_RWLOCK *lock); /* No longer needed, so this is a no-op */ #define OPENSSL_malloc_init() while(0) continue @@ -96,6 +102,9 @@ int CRYPTO_atomic_load(uint64_t *val, uint64_t *ret, CRYPTO_RWLOCK *lock); CRYPTO_malloc(num, OPENSSL_FILE, OPENSSL_LINE) # define OPENSSL_zalloc(num) \ CRYPTO_zalloc(num, OPENSSL_FILE, OPENSSL_LINE) +# define OPENSSL_aligned_alloc(num, alignment, freeptr) \ + CRYPTO_aligned_alloc(num, alignment, freeptr, \ + OPENSSL_FILE, OPENSSL_LINE) # define OPENSSL_realloc(addr, num) \ CRYPTO_realloc(addr, num, OPENSSL_FILE, OPENSSL_LINE) # define OPENSSL_clear_realloc(addr, old_num, num) \ @@ -124,6 +133,7 @@ int CRYPTO_atomic_load(uint64_t *val, uint64_t *ret, CRYPTO_RWLOCK *lock); size_t OPENSSL_strlcpy(char *dst, const char *src, size_t siz); size_t OPENSSL_strlcat(char *dst, const char *src, size_t siz); size_t OPENSSL_strnlen(const char *str, size_t maxlen); +int OPENSSL_strtoul(const char *str, char **endptr, int base, unsigned long *num); int OPENSSL_buf2hexstr_ex(char *str, size_t str_n, size_t *strlength, const unsigned char *buf, size_t buflen, const char sep); @@ -160,6 +170,7 @@ const char *OpenSSL_version(int type); # define OPENSSL_FULL_VERSION_STRING 7 # define OPENSSL_MODULES_DIR 8 # define OPENSSL_CPU_INFO 9 +# define OPENSSL_WINCTX 10 const char *OPENSSL_info(int type); /* @@ -174,6 +185,7 @@ const char *OPENSSL_info(int type); # define OPENSSL_INFO_LIST_SEPARATOR 1006 # define OPENSSL_INFO_SEED_SOURCE 1007 # define OPENSSL_INFO_CPU_SETTINGS 1008 +# define OPENSSL_INFO_WINDOWS_CONTEXT 1009 int OPENSSL_issetugid(void); @@ -341,11 +353,14 @@ void CRYPTO_get_mem_functions(CRYPTO_malloc_fn *malloc_fn, CRYPTO_realloc_fn *realloc_fn, CRYPTO_free_fn *free_fn); -void *CRYPTO_malloc(size_t num, const char *file, int line); -void *CRYPTO_zalloc(size_t num, const char *file, int line); -void *CRYPTO_memdup(const void *str, size_t siz, const char *file, int line); -char *CRYPTO_strdup(const char *str, const char *file, int line); -char *CRYPTO_strndup(const char *str, size_t s, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_malloc(size_t num, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_zalloc(size_t num, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_aligned_alloc(size_t num, size_t align, + void **freeptr, const char *file, + int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_memdup(const void *str, size_t siz, const char *file, int line); +OSSL_CRYPTO_ALLOC char *CRYPTO_strdup(const char *str, const char *file, int line); +OSSL_CRYPTO_ALLOC char *CRYPTO_strndup(const char *str, size_t s, const char *file, int line); void CRYPTO_free(void *ptr, const char *file, int line); void CRYPTO_clear_free(void *ptr, size_t num, const char *file, int line); void *CRYPTO_realloc(void *addr, size_t num, const char *file, int line); @@ -354,8 +369,8 @@ void *CRYPTO_clear_realloc(void *addr, size_t old_num, size_t num, int CRYPTO_secure_malloc_init(size_t sz, size_t minsize); int CRYPTO_secure_malloc_done(void); -void *CRYPTO_secure_malloc(size_t num, const char *file, int line); -void *CRYPTO_secure_zalloc(size_t num, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_secure_malloc(size_t num, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_secure_zalloc(size_t num, const char *file, int line); void CRYPTO_secure_free(void *ptr, const char *file, int line); void CRYPTO_secure_clear_free(void *ptr, size_t num, const char *file, int line); @@ -376,6 +391,9 @@ void OPENSSL_cleanse(void *ptr, size_t len); # define CRYPTO_MEM_CHECK_ENABLE 0x2 /* Control and mode bit */ # define CRYPTO_MEM_CHECK_DISABLE 0x3 /* Control only */ +/* max allowed length for value of OPENSSL_MALLOC_FAILURES env var. */ +# define CRYPTO_MEM_CHECK_MAX_FS 256 + void CRYPTO_get_alloc_counts(int *mcount, int *rcount, int *fcount); # ifndef OPENSSL_NO_DEPRECATED_3_0 # define OPENSSL_mem_debug_push(info) \ @@ -551,6 +569,13 @@ int OSSL_LIB_CTX_load_config(OSSL_LIB_CTX *ctx, const char *config_file); void OSSL_LIB_CTX_free(OSSL_LIB_CTX *); OSSL_LIB_CTX *OSSL_LIB_CTX_get0_global_default(void); OSSL_LIB_CTX *OSSL_LIB_CTX_set0_default(OSSL_LIB_CTX *libctx); +int OSSL_LIB_CTX_get_conf_diagnostics(OSSL_LIB_CTX *ctx); +void OSSL_LIB_CTX_set_conf_diagnostics(OSSL_LIB_CTX *ctx, int value); + +void OSSL_sleep(uint64_t millis); + + +void *OSSL_LIB_CTX_get_data(OSSL_LIB_CTX *ctx, int index); # ifdef __cplusplus } diff --git a/deps/openssl/config/archs/VC-WIN64-ARM/no-asm/include/openssl/ct.h b/deps/openssl/config/archs/VC-WIN64-ARM/no-asm/include/openssl/ct.h index 15a276e33ff7ca..d29dbc78997c0b 100644 --- a/deps/openssl/config/archs/VC-WIN64-ARM/no-asm/include/openssl/ct.h +++ b/deps/openssl/config/archs/VC-WIN64-ARM/no-asm/include/openssl/ct.h @@ -133,7 +133,7 @@ typedef enum { */ CT_POLICY_EVAL_CTX *CT_POLICY_EVAL_CTX_new_ex(OSSL_LIB_CTX *libctx, const char *propq); - + /* * The same as CT_POLICY_EVAL_CTX_new_ex() but the default library * context and property query string is used. diff --git a/deps/openssl/config/archs/VC-WIN64-ARM/no-asm/include/openssl/err.h b/deps/openssl/config/archs/VC-WIN64-ARM/no-asm/include/openssl/err.h index 2abf2483488181..daca18e7b757b0 100644 --- a/deps/openssl/config/archs/VC-WIN64-ARM/no-asm/include/openssl/err.h +++ b/deps/openssl/config/archs/VC-WIN64-ARM/no-asm/include/openssl/err.h @@ -1,5 +1,5 @@ /* - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -372,7 +372,7 @@ typedef struct ERR_string_data_st { } ERR_STRING_DATA; DEFINE_LHASH_OF_INTERNAL(ERR_STRING_DATA); -#define lh_ERR_STRING_DATA_new(hfn, cmp) ((LHASH_OF(ERR_STRING_DATA) *)OPENSSL_LH_new(ossl_check_ERR_STRING_DATA_lh_hashfunc_type(hfn), ossl_check_ERR_STRING_DATA_lh_compfunc_type(cmp))) +#define lh_ERR_STRING_DATA_new(hfn, cmp) ((LHASH_OF(ERR_STRING_DATA) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new(ossl_check_ERR_STRING_DATA_lh_hashfunc_type(hfn), ossl_check_ERR_STRING_DATA_lh_compfunc_type(cmp)), lh_ERR_STRING_DATA_hash_thunk, lh_ERR_STRING_DATA_comp_thunk, lh_ERR_STRING_DATA_doall_thunk, lh_ERR_STRING_DATA_doall_arg_thunk)) #define lh_ERR_STRING_DATA_free(lh) OPENSSL_LH_free(ossl_check_ERR_STRING_DATA_lh_type(lh)) #define lh_ERR_STRING_DATA_flush(lh) OPENSSL_LH_flush(ossl_check_ERR_STRING_DATA_lh_type(lh)) #define lh_ERR_STRING_DATA_insert(lh, ptr) ((ERR_STRING_DATA *)OPENSSL_LH_insert(ossl_check_ERR_STRING_DATA_lh_type(lh), ossl_check_ERR_STRING_DATA_lh_plain_type(ptr))) @@ -496,6 +496,14 @@ int ERR_get_next_error_library(void); int ERR_set_mark(void); int ERR_pop_to_mark(void); int ERR_clear_last_mark(void); +int ERR_count_to_mark(void); +int ERR_pop(void); + +ERR_STATE *OSSL_ERR_STATE_new(void); +void OSSL_ERR_STATE_save(ERR_STATE *es); +void OSSL_ERR_STATE_save_to_mark(ERR_STATE *es); +void OSSL_ERR_STATE_restore(const ERR_STATE *es); +void OSSL_ERR_STATE_free(ERR_STATE *es); #ifdef __cplusplus } diff --git a/deps/openssl/config/archs/VC-WIN64-ARM/no-asm/include/openssl/fipskey.h b/deps/openssl/config/archs/VC-WIN64-ARM/no-asm/include/openssl/fipskey.h index bf03682482fdd5..6939fd3c55ba6e 100644 --- a/deps/openssl/config/archs/VC-WIN64-ARM/no-asm/include/openssl/fipskey.h +++ b/deps/openssl/config/archs/VC-WIN64-ARM/no-asm/include/openssl/fipskey.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by makefile from include/openssl/fipskey.h.in * - * Copyright 2020-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2020-2024 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -29,6 +29,11 @@ extern "C" { */ #define FIPS_KEY_STRING "f4556650ac31d35461610bac4ed81b1a181b2d8a43ea2854cbae22ca74560813" +/* + * The FIPS provider vendor name, as a string. + */ +#define FIPS_VENDOR "OpenSSL FIPS Provider" + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/VC-WIN64-ARM/no-asm/include/openssl/lhash.h b/deps/openssl/config/archs/VC-WIN64-ARM/no-asm/include/openssl/lhash.h index 39dd6254acdeb6..62c55b20fd9716 100644 --- a/deps/openssl/config/archs/VC-WIN64-ARM/no-asm/include/openssl/lhash.h +++ b/deps/openssl/config/archs/VC-WIN64-ARM/no-asm/include/openssl/lhash.h @@ -1,5 +1,5 @@ /* - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2024 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -24,6 +24,9 @@ # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -31,9 +34,13 @@ extern "C" { typedef struct lhash_node_st OPENSSL_LH_NODE; typedef int (*OPENSSL_LH_COMPFUNC) (const void *, const void *); +typedef int (*OPENSSL_LH_COMPFUNCTHUNK) (const void *, const void *, OPENSSL_LH_COMPFUNC cfn); typedef unsigned long (*OPENSSL_LH_HASHFUNC) (const void *); +typedef unsigned long (*OPENSSL_LH_HASHFUNCTHUNK) (const void *, OPENSSL_LH_HASHFUNC hfn); typedef void (*OPENSSL_LH_DOALL_FUNC) (void *); +typedef void (*OPENSSL_LH_DOALL_FUNC_THUNK) (void *, OPENSSL_LH_DOALL_FUNC doall); typedef void (*OPENSSL_LH_DOALL_FUNCARG) (void *, void *); +typedef void (*OPENSSL_LH_DOALL_FUNCARG_THUNK) (void *, void *, OPENSSL_LH_DOALL_FUNCARG doall); typedef struct lhash_st OPENSSL_LHASH; /* @@ -79,26 +86,40 @@ typedef struct lhash_st OPENSSL_LHASH; int OPENSSL_LH_error(OPENSSL_LHASH *lh); OPENSSL_LHASH *OPENSSL_LH_new(OPENSSL_LH_HASHFUNC h, OPENSSL_LH_COMPFUNC c); +OPENSSL_LHASH *OPENSSL_LH_set_thunks(OPENSSL_LHASH *lh, + OPENSSL_LH_HASHFUNCTHUNK hw, + OPENSSL_LH_COMPFUNCTHUNK cw, + OPENSSL_LH_DOALL_FUNC_THUNK daw, + OPENSSL_LH_DOALL_FUNCARG_THUNK daaw); void OPENSSL_LH_free(OPENSSL_LHASH *lh); void OPENSSL_LH_flush(OPENSSL_LHASH *lh); void *OPENSSL_LH_insert(OPENSSL_LHASH *lh, void *data); void *OPENSSL_LH_delete(OPENSSL_LHASH *lh, const void *data); void *OPENSSL_LH_retrieve(OPENSSL_LHASH *lh, const void *data); void OPENSSL_LH_doall(OPENSSL_LHASH *lh, OPENSSL_LH_DOALL_FUNC func); -void OPENSSL_LH_doall_arg(OPENSSL_LHASH *lh, OPENSSL_LH_DOALL_FUNCARG func, void *arg); +void OPENSSL_LH_doall_arg(OPENSSL_LHASH *lh, + OPENSSL_LH_DOALL_FUNCARG func, void *arg); +void OPENSSL_LH_doall_arg_thunk(OPENSSL_LHASH *lh, + OPENSSL_LH_DOALL_FUNCARG_THUNK daaw, + OPENSSL_LH_DOALL_FUNCARG fn, void *arg); + unsigned long OPENSSL_LH_strhash(const char *c); unsigned long OPENSSL_LH_num_items(const OPENSSL_LHASH *lh); unsigned long OPENSSL_LH_get_down_load(const OPENSSL_LHASH *lh); void OPENSSL_LH_set_down_load(OPENSSL_LHASH *lh, unsigned long down_load); # ifndef OPENSSL_NO_STDIO -void OPENSSL_LH_stats(const OPENSSL_LHASH *lh, FILE *fp); -void OPENSSL_LH_node_stats(const OPENSSL_LHASH *lh, FILE *fp); -void OPENSSL_LH_node_usage_stats(const OPENSSL_LHASH *lh, FILE *fp); +# ifndef OPENSSL_NO_DEPRECATED_3_1 +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_stats(const OPENSSL_LHASH *lh, FILE *fp); +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_node_stats(const OPENSSL_LHASH *lh, FILE *fp); +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_node_usage_stats(const OPENSSL_LHASH *lh, FILE *fp); +# endif +# endif +# ifndef OPENSSL_NO_DEPRECATED_3_1 +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_stats_bio(const OPENSSL_LHASH *lh, BIO *out); +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_node_stats_bio(const OPENSSL_LHASH *lh, BIO *out); +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_node_usage_stats_bio(const OPENSSL_LHASH *lh, BIO *out); # endif -void OPENSSL_LH_stats_bio(const OPENSSL_LHASH *lh, BIO *out); -void OPENSSL_LH_node_stats_bio(const OPENSSL_LHASH *lh, BIO *out); -void OPENSSL_LH_node_usage_stats_bio(const OPENSSL_LHASH *lh, BIO *out); # ifndef OPENSSL_NO_DEPRECATED_1_1_0 # define _LHASH OPENSSL_LHASH @@ -129,110 +150,190 @@ void OPENSSL_LH_node_usage_stats_bio(const OPENSSL_LHASH *lh, BIO *out); /* Helper macro for internal use */ # define DEFINE_LHASH_OF_INTERNAL(type) \ - LHASH_OF(type) { union lh_##type##_dummy { void* d1; unsigned long d2; int d3; } dummy; }; \ + LHASH_OF(type) { \ + union lh_##type##_dummy { void* d1; unsigned long d2; int d3; } dummy; \ + }; \ typedef int (*lh_##type##_compfunc)(const type *a, const type *b); \ typedef unsigned long (*lh_##type##_hashfunc)(const type *a); \ typedef void (*lh_##type##_doallfunc)(type *a); \ - static ossl_unused ossl_inline type *ossl_check_##type##_lh_plain_type(type *ptr) \ + static ossl_inline unsigned long lh_##type##_hash_thunk(const void *data, OPENSSL_LH_HASHFUNC hfn) \ + { \ + unsigned long (*hfn_conv)(const type *) = (unsigned long (*)(const type *))hfn; \ + return hfn_conv((const type *)data); \ + } \ + static ossl_inline int lh_##type##_comp_thunk(const void *da, const void *db, OPENSSL_LH_COMPFUNC cfn) \ + { \ + int (*cfn_conv)(const type *, const type *) = (int (*)(const type *, const type *))cfn; \ + return cfn_conv((const type *)da, (const type *)db); \ + } \ + static ossl_inline void lh_##type##_doall_thunk(void *node, OPENSSL_LH_DOALL_FUNC doall) \ + { \ + void (*doall_conv)(type *) = (void (*)(type *))doall; \ + doall_conv((type *)node); \ + } \ + static ossl_inline void lh_##type##_doall_arg_thunk(void *node, void *arg, OPENSSL_LH_DOALL_FUNCARG doall) \ + { \ + void (*doall_conv)(type *, void *) = (void (*)(type *, void *))doall; \ + doall_conv((type *)node, arg); \ + } \ + static ossl_unused ossl_inline type *\ + ossl_check_##type##_lh_plain_type(type *ptr) \ { \ return ptr; \ } \ - static ossl_unused ossl_inline const type *ossl_check_const_##type##_lh_plain_type(const type *ptr) \ + static ossl_unused ossl_inline const type * \ + ossl_check_const_##type##_lh_plain_type(const type *ptr) \ { \ return ptr; \ } \ - static ossl_unused ossl_inline const OPENSSL_LHASH *ossl_check_const_##type##_lh_type(const LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline const OPENSSL_LHASH * \ + ossl_check_const_##type##_lh_type(const LHASH_OF(type) *lh) \ { \ return (const OPENSSL_LHASH *)lh; \ } \ - static ossl_unused ossl_inline OPENSSL_LHASH *ossl_check_##type##_lh_type(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline OPENSSL_LHASH * \ + ossl_check_##type##_lh_type(LHASH_OF(type) *lh) \ { \ return (OPENSSL_LHASH *)lh; \ } \ - static ossl_unused ossl_inline OPENSSL_LH_COMPFUNC ossl_check_##type##_lh_compfunc_type(lh_##type##_compfunc cmp) \ + static ossl_unused ossl_inline OPENSSL_LH_COMPFUNC \ + ossl_check_##type##_lh_compfunc_type(lh_##type##_compfunc cmp) \ { \ return (OPENSSL_LH_COMPFUNC)cmp; \ } \ - static ossl_unused ossl_inline OPENSSL_LH_HASHFUNC ossl_check_##type##_lh_hashfunc_type(lh_##type##_hashfunc hfn) \ + static ossl_unused ossl_inline OPENSSL_LH_HASHFUNC \ + ossl_check_##type##_lh_hashfunc_type(lh_##type##_hashfunc hfn) \ { \ return (OPENSSL_LH_HASHFUNC)hfn; \ } \ - static ossl_unused ossl_inline OPENSSL_LH_DOALL_FUNC ossl_check_##type##_lh_doallfunc_type(lh_##type##_doallfunc dfn) \ + static ossl_unused ossl_inline OPENSSL_LH_DOALL_FUNC \ + ossl_check_##type##_lh_doallfunc_type(lh_##type##_doallfunc dfn) \ { \ return (OPENSSL_LH_DOALL_FUNC)dfn; \ } \ LHASH_OF(type) -# define DEFINE_LHASH_OF(type) \ - LHASH_OF(type) { union lh_##type##_dummy { void* d1; unsigned long d2; int d3; } dummy; }; \ - static ossl_unused ossl_inline LHASH_OF(type) *lh_##type##_new(unsigned long (*hfn)(const type *), \ - int (*cfn)(const type *, const type *)) \ +# ifndef OPENSSL_NO_DEPRECATED_3_1 +# define DEFINE_LHASH_OF_DEPRECATED(type) \ + static ossl_unused ossl_inline void \ + lh_##type##_node_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ { \ - return (LHASH_OF(type) *) \ - OPENSSL_LH_new((OPENSSL_LH_HASHFUNC)hfn, (OPENSSL_LH_COMPFUNC)cfn); \ + OPENSSL_LH_node_stats_bio((const OPENSSL_LHASH *)lh, out); \ } \ - static ossl_unused ossl_inline void lh_##type##_free(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline void \ + lh_##type##_node_usage_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + { \ + OPENSSL_LH_node_usage_stats_bio((const OPENSSL_LHASH *)lh, out); \ + } \ + static ossl_unused ossl_inline void \ + lh_##type##_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + { \ + OPENSSL_LH_stats_bio((const OPENSSL_LHASH *)lh, out); \ + } +# else +# define DEFINE_LHASH_OF_DEPRECATED(type) +# endif + +# define DEFINE_LHASH_OF_EX(type) \ + LHASH_OF(type) { \ + union lh_##type##_dummy { void* d1; unsigned long d2; int d3; } dummy; \ + }; \ + static unsigned long \ + lh_##type##_hfn_thunk(const void *data, OPENSSL_LH_HASHFUNC hfn) \ + { \ + unsigned long (*hfn_conv)(const type *) = (unsigned long (*)(const type *))hfn; \ + return hfn_conv((const type *)data); \ + } \ + static int lh_##type##_cfn_thunk(const void *da, const void *db, OPENSSL_LH_COMPFUNC cfn) \ + { \ + int (*cfn_conv)(const type *, const type *) = (int (*)(const type *, const type *))cfn; \ + return cfn_conv((const type *)da, (const type *)db); \ + } \ + static ossl_unused ossl_inline void \ + lh_##type##_free(LHASH_OF(type) *lh) \ { \ OPENSSL_LH_free((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline void lh_##type##_flush(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline void \ + lh_##type##_flush(LHASH_OF(type) *lh) \ { \ OPENSSL_LH_flush((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline type *lh_##type##_insert(LHASH_OF(type) *lh, type *d) \ + static ossl_unused ossl_inline type * \ + lh_##type##_insert(LHASH_OF(type) *lh, type *d) \ { \ return (type *)OPENSSL_LH_insert((OPENSSL_LHASH *)lh, d); \ } \ - static ossl_unused ossl_inline type *lh_##type##_delete(LHASH_OF(type) *lh, const type *d) \ + static ossl_unused ossl_inline type * \ + lh_##type##_delete(LHASH_OF(type) *lh, const type *d) \ { \ return (type *)OPENSSL_LH_delete((OPENSSL_LHASH *)lh, d); \ } \ - static ossl_unused ossl_inline type *lh_##type##_retrieve(LHASH_OF(type) *lh, const type *d) \ + static ossl_unused ossl_inline type * \ + lh_##type##_retrieve(LHASH_OF(type) *lh, const type *d) \ { \ return (type *)OPENSSL_LH_retrieve((OPENSSL_LHASH *)lh, d); \ } \ - static ossl_unused ossl_inline int lh_##type##_error(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline int \ + lh_##type##_error(LHASH_OF(type) *lh) \ { \ return OPENSSL_LH_error((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline unsigned long lh_##type##_num_items(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline unsigned long \ + lh_##type##_num_items(LHASH_OF(type) *lh) \ { \ return OPENSSL_LH_num_items((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline void lh_##type##_node_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + static ossl_unused ossl_inline unsigned long \ + lh_##type##_get_down_load(LHASH_OF(type) *lh) \ { \ - OPENSSL_LH_node_stats_bio((const OPENSSL_LHASH *)lh, out); \ + return OPENSSL_LH_get_down_load((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline void lh_##type##_node_usage_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + static ossl_unused ossl_inline void \ + lh_##type##_set_down_load(LHASH_OF(type) *lh, unsigned long dl) \ { \ - OPENSSL_LH_node_usage_stats_bio((const OPENSSL_LHASH *)lh, out); \ + OPENSSL_LH_set_down_load((OPENSSL_LHASH *)lh, dl); \ } \ - static ossl_unused ossl_inline void lh_##type##_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall_thunk(void *node, OPENSSL_LH_DOALL_FUNC doall) \ { \ - OPENSSL_LH_stats_bio((const OPENSSL_LHASH *)lh, out); \ + void (*doall_conv)(type *) = (void (*)(type *))doall; \ + doall_conv((type *)node); \ } \ - static ossl_unused ossl_inline unsigned long lh_##type##_get_down_load(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall_arg_thunk(void *node, void *arg, OPENSSL_LH_DOALL_FUNCARG doall) \ { \ - return OPENSSL_LH_get_down_load((OPENSSL_LHASH *)lh); \ + void (*doall_conv)(type *, void *) = (void (*)(type *, void *))doall; \ + doall_conv((type *)node, arg); \ } \ - static ossl_unused ossl_inline void lh_##type##_set_down_load(LHASH_OF(type) *lh, unsigned long dl) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall(LHASH_OF(type) *lh, void (*doall)(type *)) \ { \ - OPENSSL_LH_set_down_load((OPENSSL_LHASH *)lh, dl); \ + OPENSSL_LH_doall((OPENSSL_LHASH *)lh, (OPENSSL_LH_DOALL_FUNC)doall); \ } \ - static ossl_unused ossl_inline void lh_##type##_doall(LHASH_OF(type) *lh, \ - void (*doall)(type *)) \ + static ossl_unused ossl_inline LHASH_OF(type) * \ + lh_##type##_new(unsigned long (*hfn)(const type *), \ + int (*cfn)(const type *, const type *)) \ { \ - OPENSSL_LH_doall((OPENSSL_LHASH *)lh, (OPENSSL_LH_DOALL_FUNC)doall); \ + return (LHASH_OF(type) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new((OPENSSL_LH_HASHFUNC)hfn, (OPENSSL_LH_COMPFUNC)cfn), \ + lh_##type##_hfn_thunk, lh_##type##_cfn_thunk, \ + lh_##type##_doall_thunk, \ + lh_##type##_doall_arg_thunk); \ } \ - static ossl_unused ossl_inline void lh_##type##_doall_arg(LHASH_OF(type) *lh, \ - void (*doallarg)(type *, void *), \ - void *arg) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall_arg(LHASH_OF(type) *lh, \ + void (*doallarg)(type *, void *), void *arg) \ { \ OPENSSL_LH_doall_arg((OPENSSL_LHASH *)lh, \ (OPENSSL_LH_DOALL_FUNCARG)doallarg, arg); \ } \ LHASH_OF(type) +# define DEFINE_LHASH_OF(type) \ + DEFINE_LHASH_OF_EX(type); \ + DEFINE_LHASH_OF_DEPRECATED(type) \ + LHASH_OF(type) + #define IMPLEMENT_LHASH_DOALL_ARG_CONST(type, argtype) \ int_implement_lhash_doall(type, argtype, const type) @@ -240,17 +341,26 @@ void OPENSSL_LH_node_usage_stats_bio(const OPENSSL_LHASH *lh, BIO *out); int_implement_lhash_doall(type, argtype, type) #define int_implement_lhash_doall(type, argtype, cbargtype) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall_##argtype##_thunk(void *node, void *arg, OPENSSL_LH_DOALL_FUNCARG fn) \ + { \ + void (*fn_conv)(cbargtype *, argtype *) = (void (*)(cbargtype *, argtype *))fn; \ + fn_conv((cbargtype *)node, (argtype *)arg); \ + } \ static ossl_unused ossl_inline void \ lh_##type##_doall_##argtype(LHASH_OF(type) *lh, \ void (*fn)(cbargtype *, argtype *), \ argtype *arg) \ { \ - OPENSSL_LH_doall_arg((OPENSSL_LHASH *)lh, (OPENSSL_LH_DOALL_FUNCARG)fn, (void *)arg); \ + OPENSSL_LH_doall_arg_thunk((OPENSSL_LHASH *)lh, \ + lh_##type##_doall_##argtype##_thunk, \ + (OPENSSL_LH_DOALL_FUNCARG)fn, \ + (void *)arg); \ } \ LHASH_OF(type) DEFINE_LHASH_OF_INTERNAL(OPENSSL_STRING); -#define lh_OPENSSL_STRING_new(hfn, cmp) ((LHASH_OF(OPENSSL_STRING) *)OPENSSL_LH_new(ossl_check_OPENSSL_STRING_lh_hashfunc_type(hfn), ossl_check_OPENSSL_STRING_lh_compfunc_type(cmp))) +#define lh_OPENSSL_STRING_new(hfn, cmp) ((LHASH_OF(OPENSSL_STRING) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new(ossl_check_OPENSSL_STRING_lh_hashfunc_type(hfn), ossl_check_OPENSSL_STRING_lh_compfunc_type(cmp)), lh_OPENSSL_STRING_hash_thunk, lh_OPENSSL_STRING_comp_thunk, lh_OPENSSL_STRING_doall_thunk, lh_OPENSSL_STRING_doall_arg_thunk)) #define lh_OPENSSL_STRING_free(lh) OPENSSL_LH_free(ossl_check_OPENSSL_STRING_lh_type(lh)) #define lh_OPENSSL_STRING_flush(lh) OPENSSL_LH_flush(ossl_check_OPENSSL_STRING_lh_type(lh)) #define lh_OPENSSL_STRING_insert(lh, ptr) ((OPENSSL_STRING *)OPENSSL_LH_insert(ossl_check_OPENSSL_STRING_lh_type(lh), ossl_check_OPENSSL_STRING_lh_plain_type(ptr))) @@ -265,7 +375,7 @@ DEFINE_LHASH_OF_INTERNAL(OPENSSL_STRING); #define lh_OPENSSL_STRING_set_down_load(lh, dl) OPENSSL_LH_set_down_load(ossl_check_OPENSSL_STRING_lh_type(lh), dl) #define lh_OPENSSL_STRING_doall(lh, dfn) OPENSSL_LH_doall(ossl_check_OPENSSL_STRING_lh_type(lh), ossl_check_OPENSSL_STRING_lh_doallfunc_type(dfn)) DEFINE_LHASH_OF_INTERNAL(OPENSSL_CSTRING); -#define lh_OPENSSL_CSTRING_new(hfn, cmp) ((LHASH_OF(OPENSSL_CSTRING) *)OPENSSL_LH_new(ossl_check_OPENSSL_CSTRING_lh_hashfunc_type(hfn), ossl_check_OPENSSL_CSTRING_lh_compfunc_type(cmp))) +#define lh_OPENSSL_CSTRING_new(hfn, cmp) ((LHASH_OF(OPENSSL_CSTRING) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new(ossl_check_OPENSSL_CSTRING_lh_hashfunc_type(hfn), ossl_check_OPENSSL_CSTRING_lh_compfunc_type(cmp)), lh_OPENSSL_CSTRING_hash_thunk, lh_OPENSSL_CSTRING_comp_thunk, lh_OPENSSL_CSTRING_doall_thunk, lh_OPENSSL_CSTRING_doall_arg_thunk)) #define lh_OPENSSL_CSTRING_free(lh) OPENSSL_LH_free(ossl_check_OPENSSL_CSTRING_lh_type(lh)) #define lh_OPENSSL_CSTRING_flush(lh) OPENSSL_LH_flush(ossl_check_OPENSSL_CSTRING_lh_type(lh)) #define lh_OPENSSL_CSTRING_insert(lh, ptr) ((OPENSSL_CSTRING *)OPENSSL_LH_insert(ossl_check_OPENSSL_CSTRING_lh_type(lh), ossl_check_OPENSSL_CSTRING_lh_plain_type(ptr))) diff --git a/deps/openssl/config/archs/VC-WIN64-ARM/no-asm/include/openssl/opensslv.h b/deps/openssl/config/archs/VC-WIN64-ARM/no-asm/include/openssl/opensslv.h index 94f44daf376f8e..a26d4e609af1b7 100644 --- a/deps/openssl/config/archs/VC-WIN64-ARM/no-asm/include/openssl/opensslv.h +++ b/deps/openssl/config/archs/VC-WIN64-ARM/no-asm/include/openssl/opensslv.h @@ -28,8 +28,8 @@ extern "C" { * These macros express version number MAJOR.MINOR.PATCH exactly */ # define OPENSSL_VERSION_MAJOR 3 -# define OPENSSL_VERSION_MINOR 0 -# define OPENSSL_VERSION_PATCH 17 +# define OPENSSL_VERSION_MINOR 5 +# define OPENSSL_VERSION_PATCH 1 /* * Additional version information @@ -74,8 +74,8 @@ extern "C" { * longer variant with OPENSSL_VERSION_PRE_RELEASE_STR and * OPENSSL_VERSION_BUILD_METADATA_STR appended. */ -# define OPENSSL_VERSION_STR "3.0.17" -# define OPENSSL_FULL_VERSION_STR "3.0.17" +# define OPENSSL_VERSION_STR "3.5.1" +# define OPENSSL_FULL_VERSION_STR "3.5.1" /* * SECTION 3: ADDITIONAL METADATA @@ -88,7 +88,7 @@ extern "C" { * SECTION 4: BACKWARD COMPATIBILITY */ -# define OPENSSL_VERSION_TEXT "OpenSSL 3.0.17 1 Jul 2025" +# define OPENSSL_VERSION_TEXT "OpenSSL 3.5.1 1 Jul 2025" /* Synthesize OPENSSL_VERSION_NUMBER with the layout 0xMNN00PPSL */ # ifdef OPENSSL_VERSION_PRE_RELEASE diff --git a/deps/openssl/config/archs/VC-WIN64-ARM/no-asm/include/openssl/pkcs12.h b/deps/openssl/config/archs/VC-WIN64-ARM/no-asm/include/openssl/pkcs12.h index 80369818c8ecdc..35d04f039366ce 100644 --- a/deps/openssl/config/archs/VC-WIN64-ARM/no-asm/include/openssl/pkcs12.h +++ b/deps/openssl/config/archs/VC-WIN64-ARM/no-asm/include/openssl/pkcs12.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by makefile from include/openssl/pkcs12.h.in * - * Copyright 1999-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1999-2024 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -25,6 +25,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -41,6 +44,7 @@ extern "C" { # define PKCS12_MAC_KEY_LENGTH 20 +/* The macro is expected to be used only internally. Kept for backwards compatibility. */ # define PKCS12_SALT_LEN 8 /* It's not clear if these are actually needed... */ @@ -130,7 +134,9 @@ int PKCS12_SAFEBAG_get_bag_nid(const PKCS12_SAFEBAG *bag); const ASN1_TYPE *PKCS12_SAFEBAG_get0_bag_obj(const PKCS12_SAFEBAG *bag); const ASN1_OBJECT *PKCS12_SAFEBAG_get0_bag_type(const PKCS12_SAFEBAG *bag); +X509 *PKCS12_SAFEBAG_get1_cert_ex(const PKCS12_SAFEBAG *bag, OSSL_LIB_CTX *libctx, const char *propq); X509 *PKCS12_SAFEBAG_get1_cert(const PKCS12_SAFEBAG *bag); +X509_CRL *PKCS12_SAFEBAG_get1_crl_ex(const PKCS12_SAFEBAG *bag, OSSL_LIB_CTX *libctx, const char *propq); X509_CRL *PKCS12_SAFEBAG_get1_crl(const PKCS12_SAFEBAG *bag); const STACK_OF(PKCS12_SAFEBAG) * PKCS12_SAFEBAG_get0_safes(const PKCS12_SAFEBAG *bag); @@ -218,6 +224,7 @@ ASN1_TYPE *PKCS12_get_attr_gen(const STACK_OF(X509_ATTRIBUTE) *attrs, char *PKCS12_get_friendlyname(PKCS12_SAFEBAG *bag); const STACK_OF(X509_ATTRIBUTE) * PKCS12_SAFEBAG_get0_attrs(const PKCS12_SAFEBAG *bag); +void PKCS12_SAFEBAG_set0_attrs(PKCS12_SAFEBAG *bag, STACK_OF(X509_ATTRIBUTE) *attrs); unsigned char *PKCS12_pbe_crypt(const X509_ALGOR *algor, const char *pass, int passlen, const unsigned char *in, int inlen, @@ -285,6 +292,9 @@ int PKCS12_verify_mac(PKCS12 *p12, const char *pass, int passlen); int PKCS12_set_mac(PKCS12 *p12, const char *pass, int passlen, unsigned char *salt, int saltlen, int iter, const EVP_MD *md_type); +int PKCS12_set_pbmac1_pbkdf2(PKCS12 *p12, const char *pass, int passlen, + unsigned char *salt, int saltlen, int iter, + const EVP_MD *md_type, const char *prf_md_name); int PKCS12_setup_mac(PKCS12 *p12, int iter, unsigned char *salt, int saltlen, const EVP_MD *md_type); unsigned char *OPENSSL_asc2uni(const char *asc, int asclen, @@ -305,6 +315,7 @@ DECLARE_ASN1_ITEM(PKCS12_AUTHSAFES) void PKCS12_PBE_add(void); int PKCS12_parse(PKCS12 *p12, const char *pass, EVP_PKEY **pkey, X509 **cert, STACK_OF(X509) **ca); +typedef int PKCS12_create_cb(PKCS12_SAFEBAG *bag, void *cbarg); PKCS12 *PKCS12_create(const char *pass, const char *name, EVP_PKEY *pkey, X509 *cert, STACK_OF(X509) *ca, int nid_key, int nid_cert, int iter, int mac_iter, int keytype); @@ -312,6 +323,11 @@ PKCS12 *PKCS12_create_ex(const char *pass, const char *name, EVP_PKEY *pkey, X509 *cert, STACK_OF(X509) *ca, int nid_key, int nid_cert, int iter, int mac_iter, int keytype, OSSL_LIB_CTX *ctx, const char *propq); +PKCS12 *PKCS12_create_ex2(const char *pass, const char *name, EVP_PKEY *pkey, + X509 *cert, STACK_OF(X509) *ca, int nid_key, int nid_cert, + int iter, int mac_iter, int keytype, + OSSL_LIB_CTX *ctx, const char *propq, + PKCS12_create_cb *cb, void *cbarg); PKCS12_SAFEBAG *PKCS12_add_cert(STACK_OF(PKCS12_SAFEBAG) **pbags, X509 *cert); PKCS12_SAFEBAG *PKCS12_add_key(STACK_OF(PKCS12_SAFEBAG) **pbags, diff --git a/deps/openssl/config/archs/VC-WIN64-ARM/no-asm/include/openssl/pkcs7.h b/deps/openssl/config/archs/VC-WIN64-ARM/no-asm/include/openssl/pkcs7.h index 0a95a93e59e262..641d9411a47354 100644 --- a/deps/openssl/config/archs/VC-WIN64-ARM/no-asm/include/openssl/pkcs7.h +++ b/deps/openssl/config/archs/VC-WIN64-ARM/no-asm/include/openssl/pkcs7.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by makefile from include/openssl/pkcs7.h.in * - * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -28,6 +28,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -131,8 +134,8 @@ SKM_DEFINE_STACK_OF_INTERNAL(PKCS7_RECIP_INFO, PKCS7_RECIP_INFO, PKCS7_RECIP_INF typedef struct pkcs7_signed_st { ASN1_INTEGER *version; /* version 1 */ STACK_OF(X509_ALGOR) *md_algs; /* md used */ - STACK_OF(X509) *cert; /* [ 0 ] */ - STACK_OF(X509_CRL) *crl; /* [ 1 ] */ + STACK_OF(X509) *cert; /* [ 0 ] */ /* name should be 'certificates' */ + STACK_OF(X509_CRL) *crl; /* [ 1 ] */ /* name should be 'crls' */ STACK_OF(PKCS7_SIGNER_INFO) *signer_info; struct pkcs7_st *contents; } PKCS7_SIGNED; @@ -158,8 +161,8 @@ typedef struct pkcs7_enveloped_st { typedef struct pkcs7_signedandenveloped_st { ASN1_INTEGER *version; /* version 1 */ STACK_OF(X509_ALGOR) *md_algs; /* md used */ - STACK_OF(X509) *cert; /* [ 0 ] */ - STACK_OF(X509_CRL) *crl; /* [ 1 ] */ + STACK_OF(X509) *cert; /* [ 0 ] */ /* name should be 'certificates' */ + STACK_OF(X509_CRL) *crl; /* [ 1 ] */ /* name should be 'crls' */ STACK_OF(PKCS7_SIGNER_INFO) *signer_info; PKCS7_ENC_CONTENT *enc_data; STACK_OF(PKCS7_RECIP_INFO) *recipientinfo; @@ -200,7 +203,7 @@ typedef struct pkcs7_st { /* NID_pkcs7_data */ ASN1_OCTET_STRING *data; /* NID_pkcs7_signed */ - PKCS7_SIGNED *sign; + PKCS7_SIGNED *sign; /* field name 'signed' would clash with C keyword */ /* NID_pkcs7_enveloped */ PKCS7_ENVELOPE *enveloped; /* NID_pkcs7_signedAndEnveloped */ @@ -341,13 +344,13 @@ int PKCS7_SIGNER_INFO_set(PKCS7_SIGNER_INFO *p7i, X509 *x509, EVP_PKEY *pkey, const EVP_MD *dgst); int PKCS7_SIGNER_INFO_sign(PKCS7_SIGNER_INFO *si); int PKCS7_add_signer(PKCS7 *p7, PKCS7_SIGNER_INFO *p7i); -int PKCS7_add_certificate(PKCS7 *p7, X509 *x509); -int PKCS7_add_crl(PKCS7 *p7, X509_CRL *x509); +int PKCS7_add_certificate(PKCS7 *p7, X509 *cert); +int PKCS7_add_crl(PKCS7 *p7, X509_CRL *crl); int PKCS7_content_new(PKCS7 *p7, int nid); int PKCS7_dataVerify(X509_STORE *cert_store, X509_STORE_CTX *ctx, BIO *bio, PKCS7 *p7, PKCS7_SIGNER_INFO *si); int PKCS7_signatureVerify(BIO *bio, PKCS7 *p7, PKCS7_SIGNER_INFO *si, - X509 *x509); + X509 *signer); BIO *PKCS7_dataInit(PKCS7 *p7, BIO *bio); int PKCS7_dataFinal(PKCS7 *p7, BIO *bio); diff --git a/deps/openssl/config/archs/VC-WIN64-ARM/no-asm/include/openssl/ssl.h b/deps/openssl/config/archs/VC-WIN64-ARM/no-asm/include/openssl/ssl.h index 7e9ca09bbf39f0..6396681867d76c 100644 --- a/deps/openssl/config/archs/VC-WIN64-ARM/no-asm/include/openssl/ssl.h +++ b/deps/openssl/config/archs/VC-WIN64-ARM/no-asm/include/openssl/ssl.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by makefile from include/openssl/ssl.h.in * - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved * Copyright 2005 Nokia. All rights reserved. * @@ -24,6 +24,7 @@ # endif # include +# include # include # include # include @@ -42,6 +43,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -231,10 +235,8 @@ typedef struct ssl_cipher_st SSL_CIPHER; typedef struct ssl_session_st SSL_SESSION; typedef struct tls_sigalgs_st TLS_SIGALGS; typedef struct ssl_conf_ctx_st SSL_CONF_CTX; -typedef struct ssl_comp_st SSL_COMP; STACK_OF(SSL_CIPHER); -STACK_OF(SSL_COMP); /* SRTP protection profiles for use with the use_srtp extension (RFC 5764)*/ typedef struct srtp_protection_profile_st { @@ -278,28 +280,31 @@ typedef int (*tls_session_secret_cb_fn)(SSL *s, void *secret, int *secret_len, /* Extension context codes */ /* This extension is only allowed in TLS */ -#define SSL_EXT_TLS_ONLY 0x0001 +#define SSL_EXT_TLS_ONLY 0x00001 /* This extension is only allowed in DTLS */ -#define SSL_EXT_DTLS_ONLY 0x0002 +#define SSL_EXT_DTLS_ONLY 0x00002 /* Some extensions may be allowed in DTLS but we don't implement them for it */ -#define SSL_EXT_TLS_IMPLEMENTATION_ONLY 0x0004 +#define SSL_EXT_TLS_IMPLEMENTATION_ONLY 0x00004 /* Most extensions are not defined for SSLv3 but EXT_TYPE_renegotiate is */ -#define SSL_EXT_SSL3_ALLOWED 0x0008 +#define SSL_EXT_SSL3_ALLOWED 0x00008 /* Extension is only defined for TLS1.2 and below */ -#define SSL_EXT_TLS1_2_AND_BELOW_ONLY 0x0010 +#define SSL_EXT_TLS1_2_AND_BELOW_ONLY 0x00010 /* Extension is only defined for TLS1.3 and above */ -#define SSL_EXT_TLS1_3_ONLY 0x0020 +#define SSL_EXT_TLS1_3_ONLY 0x00020 /* Ignore this extension during parsing if we are resuming */ -#define SSL_EXT_IGNORE_ON_RESUMPTION 0x0040 -#define SSL_EXT_CLIENT_HELLO 0x0080 +#define SSL_EXT_IGNORE_ON_RESUMPTION 0x00040 +#define SSL_EXT_CLIENT_HELLO 0x00080 /* Really means TLS1.2 or below */ -#define SSL_EXT_TLS1_2_SERVER_HELLO 0x0100 -#define SSL_EXT_TLS1_3_SERVER_HELLO 0x0200 -#define SSL_EXT_TLS1_3_ENCRYPTED_EXTENSIONS 0x0400 -#define SSL_EXT_TLS1_3_HELLO_RETRY_REQUEST 0x0800 -#define SSL_EXT_TLS1_3_CERTIFICATE 0x1000 -#define SSL_EXT_TLS1_3_NEW_SESSION_TICKET 0x2000 -#define SSL_EXT_TLS1_3_CERTIFICATE_REQUEST 0x4000 +#define SSL_EXT_TLS1_2_SERVER_HELLO 0x00100 +#define SSL_EXT_TLS1_3_SERVER_HELLO 0x00200 +#define SSL_EXT_TLS1_3_ENCRYPTED_EXTENSIONS 0x00400 +#define SSL_EXT_TLS1_3_HELLO_RETRY_REQUEST 0x00800 +#define SSL_EXT_TLS1_3_CERTIFICATE 0x01000 +#define SSL_EXT_TLS1_3_NEW_SESSION_TICKET 0x02000 +#define SSL_EXT_TLS1_3_CERTIFICATE_REQUEST 0x04000 +#define SSL_EXT_TLS1_3_CERTIFICATE_COMPRESSION 0x08000 +/* When sending a raw public key in a certificate message */ +#define SSL_EXT_TLS1_3_RAW_PUBLIC_KEY 0x10000 /* Typedefs for handling custom extensions */ @@ -404,7 +409,7 @@ typedef int (*SSL_async_callback_fn)(SSL *s, void *arg); */ # define SSL_OP_CIPHER_SERVER_PREFERENCE SSL_OP_BIT(22) /* - * If set, a server will allow a client to issue a SSLv3.0 version + * If set, a server will allow a client to issue an SSLv3.0 version * number as latest version supported in the premaster secret, even when * TLSv1.0 (version 3.1) was announced in the client hello. Normally * this is forbidden to prevent version rollback attacks. @@ -430,6 +435,19 @@ typedef int (*SSL_async_callback_fn)(SSL *s, void *arg); * interoperability with CryptoPro CSP 3.x */ # define SSL_OP_CRYPTOPRO_TLSEXT_BUG SSL_OP_BIT(31) +/* + * Disable RFC8879 certificate compression + * SSL_OP_NO_TX_CERTIFICATE_COMPRESSION: don't send compressed certificates, + * and ignore the extension when received. + * SSL_OP_NO_RX_CERTIFICATE_COMPRESSION: don't send the extension, and + * subsequently indicating that receiving is not supported + */ +# define SSL_OP_NO_TX_CERTIFICATE_COMPRESSION SSL_OP_BIT(32) +# define SSL_OP_NO_RX_CERTIFICATE_COMPRESSION SSL_OP_BIT(33) + /* Enable KTLS TX zerocopy on Linux */ +# define SSL_OP_ENABLE_KTLS_TX_ZEROCOPY_SENDFILE SSL_OP_BIT(34) + +#define SSL_OP_PREFER_NO_DHE_KEX SSL_OP_BIT(35) /* * Option "collections." @@ -574,6 +592,8 @@ typedef int (*SSL_async_callback_fn)(SSL *s, void *arg); # define CERT_PKEY_CERT_TYPE 0x400 /* Cert chain suitable to Suite B */ # define CERT_PKEY_SUITEB 0x800 +/* Cert pkey valid for raw public key use */ +# define CERT_PKEY_RPK 0x1000 # define SSL_CONF_FLAG_CMDLINE 0x1 # define SSL_CONF_FLAG_FILE 0x2 @@ -965,6 +985,7 @@ uint32_t SSL_get_recv_max_early_data(const SSL *s); # include /* This is mostly sslv3 with a few tweaks */ # include /* Datagram TLS */ # include /* Support for the use_srtp extension */ +# include #ifdef __cplusplus extern "C" { @@ -1000,32 +1021,6 @@ SKM_DEFINE_STACK_OF_INTERNAL(SSL_CIPHER, const SSL_CIPHER, SSL_CIPHER) #define sk_SSL_CIPHER_dup(sk) ((STACK_OF(SSL_CIPHER) *)OPENSSL_sk_dup(ossl_check_const_SSL_CIPHER_sk_type(sk))) #define sk_SSL_CIPHER_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(SSL_CIPHER) *)OPENSSL_sk_deep_copy(ossl_check_const_SSL_CIPHER_sk_type(sk), ossl_check_SSL_CIPHER_copyfunc_type(copyfunc), ossl_check_SSL_CIPHER_freefunc_type(freefunc))) #define sk_SSL_CIPHER_set_cmp_func(sk, cmp) ((sk_SSL_CIPHER_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_SSL_CIPHER_sk_type(sk), ossl_check_SSL_CIPHER_compfunc_type(cmp))) -SKM_DEFINE_STACK_OF_INTERNAL(SSL_COMP, SSL_COMP, SSL_COMP) -#define sk_SSL_COMP_num(sk) OPENSSL_sk_num(ossl_check_const_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_value(sk, idx) ((SSL_COMP *)OPENSSL_sk_value(ossl_check_const_SSL_COMP_sk_type(sk), (idx))) -#define sk_SSL_COMP_new(cmp) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new(ossl_check_SSL_COMP_compfunc_type(cmp))) -#define sk_SSL_COMP_new_null() ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new_null()) -#define sk_SSL_COMP_new_reserve(cmp, n) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new_reserve(ossl_check_SSL_COMP_compfunc_type(cmp), (n))) -#define sk_SSL_COMP_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_SSL_COMP_sk_type(sk), (n)) -#define sk_SSL_COMP_free(sk) OPENSSL_sk_free(ossl_check_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_zero(sk) OPENSSL_sk_zero(ossl_check_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_delete(sk, i) ((SSL_COMP *)OPENSSL_sk_delete(ossl_check_SSL_COMP_sk_type(sk), (i))) -#define sk_SSL_COMP_delete_ptr(sk, ptr) ((SSL_COMP *)OPENSSL_sk_delete_ptr(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr))) -#define sk_SSL_COMP_push(sk, ptr) OPENSSL_sk_push(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) -#define sk_SSL_COMP_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) -#define sk_SSL_COMP_pop(sk) ((SSL_COMP *)OPENSSL_sk_pop(ossl_check_SSL_COMP_sk_type(sk))) -#define sk_SSL_COMP_shift(sk) ((SSL_COMP *)OPENSSL_sk_shift(ossl_check_SSL_COMP_sk_type(sk))) -#define sk_SSL_COMP_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_SSL_COMP_sk_type(sk),ossl_check_SSL_COMP_freefunc_type(freefunc)) -#define sk_SSL_COMP_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr), (idx)) -#define sk_SSL_COMP_set(sk, idx, ptr) ((SSL_COMP *)OPENSSL_sk_set(ossl_check_SSL_COMP_sk_type(sk), (idx), ossl_check_SSL_COMP_type(ptr))) -#define sk_SSL_COMP_find(sk, ptr) OPENSSL_sk_find(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) -#define sk_SSL_COMP_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) -#define sk_SSL_COMP_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr), pnum) -#define sk_SSL_COMP_sort(sk) OPENSSL_sk_sort(ossl_check_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_dup(sk) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_dup(ossl_check_const_SSL_COMP_sk_type(sk))) -#define sk_SSL_COMP_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_deep_copy(ossl_check_const_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_copyfunc_type(copyfunc), ossl_check_SSL_COMP_freefunc_type(freefunc))) -#define sk_SSL_COMP_set_cmp_func(sk, cmp) ((sk_SSL_COMP_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_compfunc_type(cmp))) /* compatibility */ @@ -1066,6 +1061,7 @@ typedef enum { DTLS_ST_CR_HELLO_VERIFY_REQUEST, TLS_ST_CR_SRVR_HELLO, TLS_ST_CR_CERT, + TLS_ST_CR_COMP_CERT, TLS_ST_CR_CERT_STATUS, TLS_ST_CR_KEY_EXCH, TLS_ST_CR_CERT_REQ, @@ -1075,6 +1071,7 @@ typedef enum { TLS_ST_CR_FINISHED, TLS_ST_CW_CLNT_HELLO, TLS_ST_CW_CERT, + TLS_ST_CW_COMP_CERT, TLS_ST_CW_KEY_EXCH, TLS_ST_CW_CERT_VRFY, TLS_ST_CW_CHANGE, @@ -1085,10 +1082,12 @@ typedef enum { DTLS_ST_SW_HELLO_VERIFY_REQUEST, TLS_ST_SW_SRVR_HELLO, TLS_ST_SW_CERT, + TLS_ST_SW_COMP_CERT, TLS_ST_SW_KEY_EXCH, TLS_ST_SW_CERT_REQ, TLS_ST_SW_SRVR_DONE, TLS_ST_SR_CERT, + TLS_ST_SR_COMP_CERT, TLS_ST_SR_KEY_EXCH, TLS_ST_SR_CERT_VRFY, TLS_ST_SR_NEXT_PROTO, @@ -1380,9 +1379,13 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) # define SSL_CTRL_GET_SIGNATURE_NID 132 # define SSL_CTRL_GET_TMP_KEY 133 # define SSL_CTRL_GET_NEGOTIATED_GROUP 134 +# define SSL_CTRL_GET_IANA_GROUPS 135 # define SSL_CTRL_SET_RETRY_VERIFY 136 # define SSL_CTRL_GET_VERIFY_CERT_STORE 137 # define SSL_CTRL_GET_CHAIN_CERT_STORE 138 +# define SSL_CTRL_GET0_IMPLEMENTED_GROUPS 139 +# define SSL_CTRL_GET_SIGNATURE_NAME 140 +# define SSL_CTRL_GET_PEER_SIGNATURE_NAME 141 # define SSL_CERT_SET_FIRST 1 # define SSL_CERT_SET_NEXT 2 # define SSL_CERT_SET_SERVER 3 @@ -1485,10 +1488,15 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) # define SSL_get1_groups(s, glist) \ SSL_ctrl(s,SSL_CTRL_GET_GROUPS,0,(int*)(glist)) +# define SSL_get0_iana_groups(s, plst) \ + SSL_ctrl(s,SSL_CTRL_GET_IANA_GROUPS,0,(uint16_t **)(plst)) # define SSL_CTX_set1_groups(ctx, glist, glistlen) \ SSL_CTX_ctrl(ctx,SSL_CTRL_SET_GROUPS,glistlen,(int *)(glist)) # define SSL_CTX_set1_groups_list(ctx, s) \ SSL_CTX_ctrl(ctx,SSL_CTRL_SET_GROUPS_LIST,0,(char *)(s)) +# define SSL_CTX_get0_implemented_groups(ctx, all, out) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_GET0_IMPLEMENTED_GROUPS, all, \ + (STACK_OF(OPENSSL_CSTRING) *)(out)) # define SSL_set1_groups(s, glist, glistlen) \ SSL_ctrl(s,SSL_CTRL_SET_GROUPS,glistlen,(char *)(glist)) # define SSL_set1_groups_list(s, str) \ @@ -1520,8 +1528,12 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) (char *)(clist)) # define SSL_set1_client_certificate_types(s, clist, clistlen) \ SSL_ctrl(s,SSL_CTRL_SET_CLIENT_CERT_TYPES,clistlen,(char *)(clist)) +# define SSL_get0_signature_name(s, str) \ + SSL_ctrl(s,SSL_CTRL_GET_SIGNATURE_NAME,0,(1?(str):(const char **)NULL)) # define SSL_get_signature_nid(s, pn) \ SSL_ctrl(s,SSL_CTRL_GET_SIGNATURE_NID,0,pn) +# define SSL_get0_peer_signature_name(s, str) \ + SSL_ctrl(s,SSL_CTRL_GET_PEER_SIGNATURE_NAME,0,(1?(str):(const char **)NULL)) # define SSL_get_peer_signature_nid(s, pn) \ SSL_ctrl(s,SSL_CTRL_GET_PEER_SIGNATURE_NID,0,pn) # define SSL_get_peer_tmp_key(s, pk) \ @@ -1549,6 +1561,7 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) # define SSL_get_max_proto_version(s) \ SSL_ctrl(s, SSL_CTRL_GET_MAX_PROTO_VERSION, 0, NULL) +const char *SSL_get0_group_name(SSL *s); const char *SSL_group_to_name(SSL *s, int id); /* Backwards compatibility, original 1.1.0 names */ @@ -1613,7 +1626,11 @@ void SSL_CTX_set1_cert_store(SSL_CTX *, X509_STORE *); __owur int SSL_want(const SSL *s); __owur int SSL_clear(SSL *s); +#ifndef OPENSSL_NO_DEPRECATED_3_4 +OSSL_DEPRECATEDIN_3_4_FOR("not Y2038-safe, replace with SSL_CTX_flush_sessions_ex()") void SSL_CTX_flush_sessions(SSL_CTX *ctx, long tm); +#endif +void SSL_CTX_flush_sessions_ex(SSL_CTX *ctx, time_t tm); __owur const SSL_CIPHER *SSL_get_current_cipher(const SSL *s); __owur const SSL_CIPHER *SSL_get_pending_cipher(const SSL *s); @@ -1725,13 +1742,21 @@ __owur const char *SSL_state_string(const SSL *s); __owur const char *SSL_rstate_string(const SSL *s); __owur const char *SSL_state_string_long(const SSL *s); __owur const char *SSL_rstate_string_long(const SSL *s); + +#ifndef OPENSSL_NO_DEPRECATED_3_4 +OSSL_DEPRECATEDIN_3_4_FOR("not Y2038-safe, replace with SSL_SESSION_get_time_ex()") __owur long SSL_SESSION_get_time(const SSL_SESSION *s); +OSSL_DEPRECATEDIN_3_4_FOR("not Y2038-safe, replace with SSL_SESSION_set_time_ex()") __owur long SSL_SESSION_set_time(SSL_SESSION *s, long t); +#endif __owur long SSL_SESSION_get_timeout(const SSL_SESSION *s); __owur long SSL_SESSION_set_timeout(SSL_SESSION *s, long t); __owur int SSL_SESSION_get_protocol_version(const SSL_SESSION *s); __owur int SSL_SESSION_set_protocol_version(SSL_SESSION *s, int version); +__owur time_t SSL_SESSION_get_time_ex(const SSL_SESSION *s); +__owur time_t SSL_SESSION_set_time_ex(SSL_SESSION *s, time_t t); + __owur const char *SSL_SESSION_get0_hostname(const SSL_SESSION *s); __owur int SSL_SESSION_set1_hostname(SSL_SESSION *s, const char *hostname); void SSL_SESSION_get0_alpn_selected(const SSL_SESSION *s, @@ -1783,6 +1808,9 @@ __owur int SSL_has_matching_session_id(const SSL *s, unsigned int id_len); SSL_SESSION *d2i_SSL_SESSION(SSL_SESSION **a, const unsigned char **pp, long length); +SSL_SESSION *d2i_SSL_SESSION_ex(SSL_SESSION **a, const unsigned char **pp, + long length, OSSL_LIB_CTX *libctx, + const char *propq); # ifdef OPENSSL_X509_H __owur X509 *SSL_get0_peer_certificate(const SSL *s); @@ -1840,6 +1868,8 @@ __owur int SSL_CTX_set_session_id_context(SSL_CTX *ctx, SSL *SSL_new(SSL_CTX *ctx); int SSL_up_ref(SSL *s); int SSL_is_dtls(const SSL *s); +int SSL_is_tls(const SSL *s); +int SSL_is_quic(const SSL *s); __owur int SSL_set_session_id_context(SSL *ssl, const unsigned char *sid_ctx, unsigned int sid_ctx_len); @@ -1848,8 +1878,8 @@ __owur int SSL_set_purpose(SSL *ssl, int purpose); __owur int SSL_CTX_set_trust(SSL_CTX *ctx, int trust); __owur int SSL_set_trust(SSL *ssl, int trust); -__owur int SSL_set1_host(SSL *s, const char *hostname); -__owur int SSL_add1_host(SSL *s, const char *hostname); +__owur int SSL_set1_host(SSL *s, const char *host); +__owur int SSL_add1_host(SSL *s, const char *host); __owur const char *SSL_get0_peername(SSL *s); void SSL_set_hostflags(SSL *s, unsigned int flags); @@ -1924,6 +1954,11 @@ OSSL_DEPRECATEDIN_3_0 __owur char *SSL_get_srp_userinfo(SSL *s); typedef int (*SSL_client_hello_cb_fn) (SSL *s, int *al, void *arg); void SSL_CTX_set_client_hello_cb(SSL_CTX *c, SSL_client_hello_cb_fn cb, void *arg); +typedef int (*SSL_new_pending_conn_cb_fn) (SSL_CTX *ctx, SSL *new_ssl, + void *arg); +void SSL_CTX_set_new_pending_conn_cb(SSL_CTX *c, SSL_new_pending_conn_cb_fn cb, + void *arg); + int SSL_client_hello_isv2(SSL *s); unsigned int SSL_client_hello_get0_legacy_version(SSL *s); size_t SSL_client_hello_get0_random(SSL *s, const unsigned char **out); @@ -1932,6 +1967,8 @@ size_t SSL_client_hello_get0_ciphers(SSL *s, const unsigned char **out); size_t SSL_client_hello_get0_compression_methods(SSL *s, const unsigned char **out); int SSL_client_hello_get1_extensions_present(SSL *s, int **out, size_t *outlen); +int SSL_client_hello_get_extension_order(SSL *s, uint16_t *exts, + size_t *num_exts); int SSL_client_hello_get0_ext(SSL *s, unsigned int type, const unsigned char **out, size_t *outlen); @@ -1978,6 +2015,12 @@ long SSL_callback_ctrl(SSL *, int, void (*)(void)); long SSL_CTX_ctrl(SSL_CTX *ctx, int cmd, long larg, void *parg); long SSL_CTX_callback_ctrl(SSL_CTX *, int, void (*)(void)); +# define SSL_WRITE_FLAG_CONCLUDE (1U << 0) + +__owur int SSL_write_ex2(SSL *s, const void *buf, size_t num, + uint64_t flags, + size_t *written); + # define SSL_EARLY_DATA_NOT_SENT 0 # define SSL_EARLY_DATA_REJECTED 1 # define SSL_EARLY_DATA_ACCEPTED 2 @@ -1986,6 +2029,7 @@ __owur int SSL_get_early_data_status(const SSL *s); __owur int SSL_get_error(const SSL *s, int ret_code); __owur const char *SSL_get_version(const SSL *s); +__owur int SSL_get_handshake_rtt(const SSL *s, uint64_t *rtt); /* This sets the 'default' SSL version that SSL_new() will create */ # ifndef OPENSSL_NO_DEPRECATED_3_0 @@ -2281,6 +2325,8 @@ void SSL_CTX_set_record_padding_callback(SSL_CTX *ctx, void SSL_CTX_set_record_padding_callback_arg(SSL_CTX *ctx, void *arg); void *SSL_CTX_get_record_padding_callback_arg(const SSL_CTX *ctx); int SSL_CTX_set_block_padding(SSL_CTX *ctx, size_t block_size); +int SSL_CTX_set_block_padding_ex(SSL_CTX *ctx, size_t app_block_size, + size_t hs_block_size); int SSL_set_record_padding_callback(SSL *ssl, size_t (*cb) (SSL *ssl, int type, @@ -2288,12 +2334,255 @@ int SSL_set_record_padding_callback(SSL *ssl, void SSL_set_record_padding_callback_arg(SSL *ssl, void *arg); void *SSL_get_record_padding_callback_arg(const SSL *ssl); int SSL_set_block_padding(SSL *ssl, size_t block_size); - +int SSL_set_block_padding_ex(SSL *ssl, size_t app_block_size, + size_t hs_block_size); int SSL_set_num_tickets(SSL *s, size_t num_tickets); size_t SSL_get_num_tickets(const SSL *s); int SSL_CTX_set_num_tickets(SSL_CTX *ctx, size_t num_tickets); size_t SSL_CTX_get_num_tickets(const SSL_CTX *ctx); +/* QUIC support */ +int SSL_handle_events(SSL *s); +__owur int SSL_get_event_timeout(SSL *s, struct timeval *tv, int *is_infinite); +__owur int SSL_get_rpoll_descriptor(SSL *s, BIO_POLL_DESCRIPTOR *desc); +__owur int SSL_get_wpoll_descriptor(SSL *s, BIO_POLL_DESCRIPTOR *desc); +__owur int SSL_net_read_desired(SSL *s); +__owur int SSL_net_write_desired(SSL *s); +__owur int SSL_set_blocking_mode(SSL *s, int blocking); +__owur int SSL_get_blocking_mode(SSL *s); +__owur int SSL_set1_initial_peer_addr(SSL *s, const BIO_ADDR *peer_addr); +__owur SSL *SSL_get0_connection(SSL *s); +__owur int SSL_is_connection(SSL *s); + +__owur int SSL_is_listener(SSL *ssl); +__owur SSL *SSL_get0_listener(SSL *s); +#define SSL_LISTENER_FLAG_NO_VALIDATE (1UL << 1) +__owur SSL *SSL_new_listener(SSL_CTX *ctx, uint64_t flags); +__owur SSL *SSL_new_listener_from(SSL *ssl, uint64_t flags); +__owur SSL *SSL_new_from_listener(SSL *ssl, uint64_t flags); +#define SSL_ACCEPT_CONNECTION_NO_BLOCK (1UL << 0) +__owur SSL *SSL_accept_connection(SSL *ssl, uint64_t flags); +__owur size_t SSL_get_accept_connection_queue_len(SSL *ssl); +__owur int SSL_listen(SSL *ssl); + +__owur int SSL_is_domain(SSL *s); +__owur SSL *SSL_get0_domain(SSL *s); +__owur SSL *SSL_new_domain(SSL_CTX *ctx, uint64_t flags); + +#define SSL_DOMAIN_FLAG_SINGLE_THREAD (1U << 0) +#define SSL_DOMAIN_FLAG_MULTI_THREAD (1U << 1) +#define SSL_DOMAIN_FLAG_THREAD_ASSISTED (1U << 2) +#define SSL_DOMAIN_FLAG_BLOCKING (1U << 3) +#define SSL_DOMAIN_FLAG_LEGACY_BLOCKING (1U << 4) + +__owur int SSL_CTX_set_domain_flags(SSL_CTX *ctx, uint64_t domain_flags); +__owur int SSL_CTX_get_domain_flags(const SSL_CTX *ctx, uint64_t *domain_flags); +__owur int SSL_get_domain_flags(const SSL *ssl, uint64_t *domain_flags); + +#define SSL_STREAM_TYPE_NONE 0 +#define SSL_STREAM_TYPE_READ (1U << 0) +#define SSL_STREAM_TYPE_WRITE (1U << 1) +#define SSL_STREAM_TYPE_BIDI (SSL_STREAM_TYPE_READ | SSL_STREAM_TYPE_WRITE) +__owur int SSL_get_stream_type(SSL *s); + +__owur uint64_t SSL_get_stream_id(SSL *s); +__owur int SSL_is_stream_local(SSL *s); + +#define SSL_DEFAULT_STREAM_MODE_NONE 0 +#define SSL_DEFAULT_STREAM_MODE_AUTO_BIDI 1 +#define SSL_DEFAULT_STREAM_MODE_AUTO_UNI 2 +__owur int SSL_set_default_stream_mode(SSL *s, uint32_t mode); + +#define SSL_STREAM_FLAG_UNI (1U << 0) +#define SSL_STREAM_FLAG_NO_BLOCK (1U << 1) +#define SSL_STREAM_FLAG_ADVANCE (1U << 2) +__owur SSL *SSL_new_stream(SSL *s, uint64_t flags); + +#define SSL_INCOMING_STREAM_POLICY_AUTO 0 +#define SSL_INCOMING_STREAM_POLICY_ACCEPT 1 +#define SSL_INCOMING_STREAM_POLICY_REJECT 2 +__owur int SSL_set_incoming_stream_policy(SSL *s, int policy, uint64_t aec); + +#define SSL_ACCEPT_STREAM_NO_BLOCK (1U << 0) +__owur SSL *SSL_accept_stream(SSL *s, uint64_t flags); +__owur size_t SSL_get_accept_stream_queue_len(SSL *s); + +# ifndef OPENSSL_NO_QUIC +__owur int SSL_inject_net_dgram(SSL *s, const unsigned char *buf, + size_t buf_len, + const BIO_ADDR *peer, + const BIO_ADDR *local); +# endif + +typedef struct ssl_shutdown_ex_args_st { + uint64_t quic_error_code; + const char *quic_reason; +} SSL_SHUTDOWN_EX_ARGS; + +#define SSL_SHUTDOWN_FLAG_RAPID (1U << 0) +#define SSL_SHUTDOWN_FLAG_NO_STREAM_FLUSH (1U << 1) +#define SSL_SHUTDOWN_FLAG_NO_BLOCK (1U << 2) +#define SSL_SHUTDOWN_FLAG_WAIT_PEER (1U << 3) + +__owur int SSL_shutdown_ex(SSL *ssl, uint64_t flags, + const SSL_SHUTDOWN_EX_ARGS *args, + size_t args_len); + +__owur int SSL_stream_conclude(SSL *ssl, uint64_t flags); + +typedef struct ssl_stream_reset_args_st { + uint64_t quic_error_code; +} SSL_STREAM_RESET_ARGS; + +__owur int SSL_stream_reset(SSL *ssl, + const SSL_STREAM_RESET_ARGS *args, + size_t args_len); + +#define SSL_STREAM_STATE_NONE 0 +#define SSL_STREAM_STATE_OK 1 +#define SSL_STREAM_STATE_WRONG_DIR 2 +#define SSL_STREAM_STATE_FINISHED 3 +#define SSL_STREAM_STATE_RESET_LOCAL 4 +#define SSL_STREAM_STATE_RESET_REMOTE 5 +#define SSL_STREAM_STATE_CONN_CLOSED 6 +__owur int SSL_get_stream_read_state(SSL *ssl); +__owur int SSL_get_stream_write_state(SSL *ssl); + +__owur int SSL_get_stream_read_error_code(SSL *ssl, uint64_t *app_error_code); +__owur int SSL_get_stream_write_error_code(SSL *ssl, uint64_t *app_error_code); + +#define SSL_CONN_CLOSE_FLAG_LOCAL (1U << 0) +#define SSL_CONN_CLOSE_FLAG_TRANSPORT (1U << 1) + +typedef struct ssl_conn_close_info_st { + uint64_t error_code, frame_type; + const char *reason; + size_t reason_len; + uint32_t flags; +} SSL_CONN_CLOSE_INFO; + +__owur int SSL_get_conn_close_info(SSL *ssl, + SSL_CONN_CLOSE_INFO *info, + size_t info_len); + +# define SSL_VALUE_CLASS_GENERIC 0 +# define SSL_VALUE_CLASS_FEATURE_REQUEST 1 +# define SSL_VALUE_CLASS_FEATURE_PEER_REQUEST 2 +# define SSL_VALUE_CLASS_FEATURE_NEGOTIATED 3 + +# define SSL_VALUE_NONE 0 +# define SSL_VALUE_QUIC_STREAM_BIDI_LOCAL_AVAIL 1 +# define SSL_VALUE_QUIC_STREAM_BIDI_REMOTE_AVAIL 2 +# define SSL_VALUE_QUIC_STREAM_UNI_LOCAL_AVAIL 3 +# define SSL_VALUE_QUIC_STREAM_UNI_REMOTE_AVAIL 4 +# define SSL_VALUE_QUIC_IDLE_TIMEOUT 5 +# define SSL_VALUE_EVENT_HANDLING_MODE 6 +# define SSL_VALUE_STREAM_WRITE_BUF_SIZE 7 +# define SSL_VALUE_STREAM_WRITE_BUF_USED 8 +# define SSL_VALUE_STREAM_WRITE_BUF_AVAIL 9 + +# define SSL_VALUE_EVENT_HANDLING_MODE_INHERIT 0 +# define SSL_VALUE_EVENT_HANDLING_MODE_IMPLICIT 1 +# define SSL_VALUE_EVENT_HANDLING_MODE_EXPLICIT 2 + +int SSL_get_value_uint(SSL *s, uint32_t class_, uint32_t id, uint64_t *v); +int SSL_set_value_uint(SSL *s, uint32_t class_, uint32_t id, uint64_t v); + +# define SSL_get_generic_value_uint(ssl, id, v) \ + SSL_get_value_uint((ssl), SSL_VALUE_CLASS_GENERIC, (id), (v)) +# define SSL_set_generic_value_uint(ssl, id, v) \ + SSL_set_value_uint((ssl), SSL_VALUE_CLASS_GENERIC, (id), (v)) +# define SSL_get_feature_request_uint(ssl, id, v) \ + SSL_get_value_uint((ssl), SSL_VALUE_CLASS_FEATURE_REQUEST, (id), (v)) +# define SSL_set_feature_request_uint(ssl, id, v) \ + SSL_set_value_uint((ssl), SSL_VALUE_CLASS_FEATURE_REQUEST, (id), (v)) +# define SSL_get_feature_peer_request_uint(ssl, id, v) \ + SSL_get_value_uint((ssl), SSL_VALUE_CLASS_FEATURE_PEER_REQUEST, (id), (v)) +# define SSL_get_feature_negotiated_uint(ssl, id, v) \ + SSL_get_value_uint((ssl), SSL_VALUE_CLASS_FEATURE_NEGOTIATED, (id), (v)) + +# define SSL_get_quic_stream_bidi_local_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_QUIC_STREAM_BIDI_LOCAL_AVAIL, \ + (value)) +# define SSL_get_quic_stream_bidi_remote_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_QUIC_STREAM_BIDI_REMOTE_AVAIL, \ + (value)) +# define SSL_get_quic_stream_uni_local_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_QUIC_STREAM_UNI_LOCAL_AVAIL, \ + (value)) +# define SSL_get_quic_stream_uni_remote_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_QUIC_STREAM_UNI_REMOTE_AVAIL, \ + (value)) + +# define SSL_get_event_handling_mode(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_EVENT_HANDLING_MODE, \ + (value)) +# define SSL_set_event_handling_mode(ssl, value) \ + SSL_set_generic_value_uint((ssl), SSL_VALUE_EVENT_HANDLING_MODE, \ + (value)) + +# define SSL_get_stream_write_buf_size(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_STREAM_WRITE_BUF_SIZE, \ + (value)) +# define SSL_get_stream_write_buf_used(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_STREAM_WRITE_BUF_USED, \ + (value)) +# define SSL_get_stream_write_buf_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_STREAM_WRITE_BUF_AVAIL, \ + (value)) + +# define SSL_POLL_EVENT_NONE 0 + +# define SSL_POLL_EVENT_F (1U << 0) /* F (Failure) */ +# define SSL_POLL_EVENT_EL (1U << 1) /* EL (Exception on Listener) */ +# define SSL_POLL_EVENT_EC (1U << 2) /* EC (Exception on Conn) */ +# define SSL_POLL_EVENT_ECD (1U << 3) /* ECD (Exception on Conn Drained) */ +# define SSL_POLL_EVENT_ER (1U << 4) /* ER (Exception on Read) */ +# define SSL_POLL_EVENT_EW (1U << 5) /* EW (Exception on Write) */ +# define SSL_POLL_EVENT_R (1U << 6) /* R (Readable) */ +# define SSL_POLL_EVENT_W (1U << 7) /* W (Writable) */ +# define SSL_POLL_EVENT_IC (1U << 8) /* IC (Incoming Connection) */ +# define SSL_POLL_EVENT_ISB (1U << 9) /* ISB (Incoming Stream: Bidi) */ +# define SSL_POLL_EVENT_ISU (1U << 10) /* ISU (Incoming Stream: Uni) */ +# define SSL_POLL_EVENT_OSB (1U << 11) /* OSB (Outgoing Stream: Bidi) */ +# define SSL_POLL_EVENT_OSU (1U << 12) /* OSU (Outgoing Stream: Uni) */ + +# define SSL_POLL_EVENT_RW (SSL_POLL_EVENT_R | SSL_POLL_EVENT_W) +# define SSL_POLL_EVENT_RE (SSL_POLL_EVENT_R | SSL_POLL_EVENT_ER) +# define SSL_POLL_EVENT_WE (SSL_POLL_EVENT_W | SSL_POLL_EVENT_EW) +# define SSL_POLL_EVENT_RWE (SSL_POLL_EVENT_RE | SSL_POLL_EVENT_WE) +# define SSL_POLL_EVENT_E (SSL_POLL_EVENT_EL | SSL_POLL_EVENT_EC \ + | SSL_POLL_EVENT_ER | SSL_POLL_EVENT_EW) +# define SSL_POLL_EVENT_IS (SSL_POLL_EVENT_ISB | SSL_POLL_EVENT_ISU) +# define SSL_POLL_EVENT_ISE (SSL_POLL_EVENT_IS | SSL_POLL_EVENT_EC) +# define SSL_POLL_EVENT_I (SSL_POLL_EVENT_IS | SSL_POLL_EVENT_IC) +# define SSL_POLL_EVENT_OS (SSL_POLL_EVENT_OSB | SSL_POLL_EVENT_OSU) +# define SSL_POLL_EVENT_OSE (SSL_POLL_EVENT_OS | SSL_POLL_EVENT_EC) + +typedef struct ssl_poll_item_st { + BIO_POLL_DESCRIPTOR desc; + uint64_t events, revents; +} SSL_POLL_ITEM; + +# define SSL_POLL_FLAG_NO_HANDLE_EVENTS (1U << 0) + +__owur int SSL_poll(SSL_POLL_ITEM *items, + size_t num_items, + size_t stride, + const struct timeval *timeout, + uint64_t flags, + size_t *result_count); + +static ossl_inline ossl_unused BIO_POLL_DESCRIPTOR +SSL_as_poll_descriptor(SSL *s) +{ + BIO_POLL_DESCRIPTOR d; + + d.type = BIO_POLL_DESCRIPTOR_TYPE_SSL; + d.value.ssl = s; + return d; +} + # ifndef OPENSSL_NO_DEPRECATED_1_1_0 # define SSL_cache_hit(s) SSL_session_reused(s) # endif @@ -2593,6 +2882,51 @@ void SSL_set_allow_early_data_cb(SSL *s, const char *OSSL_default_cipher_list(void); const char *OSSL_default_ciphersuites(void); +/* RFC8879 Certificate compression APIs */ + +int SSL_CTX_compress_certs(SSL_CTX *ctx, int alg); +int SSL_compress_certs(SSL *ssl, int alg); + +int SSL_CTX_set1_cert_comp_preference(SSL_CTX *ctx, int *algs, size_t len); +int SSL_set1_cert_comp_preference(SSL *ssl, int *algs, size_t len); + +int SSL_CTX_set1_compressed_cert(SSL_CTX *ctx, int algorithm, unsigned char *comp_data, + size_t comp_length, size_t orig_length); +int SSL_set1_compressed_cert(SSL *ssl, int algorithm, unsigned char *comp_data, + size_t comp_length, size_t orig_length); +size_t SSL_CTX_get1_compressed_cert(SSL_CTX *ctx, int alg, unsigned char **data, size_t *orig_len); +size_t SSL_get1_compressed_cert(SSL *ssl, int alg, unsigned char **data, size_t *orig_len); + +__owur int SSL_add_expected_rpk(SSL *s, EVP_PKEY *rpk); +__owur EVP_PKEY *SSL_get0_peer_rpk(const SSL *s); +__owur EVP_PKEY *SSL_SESSION_get0_peer_rpk(SSL_SESSION *s); +__owur int SSL_get_negotiated_client_cert_type(const SSL *s); +__owur int SSL_get_negotiated_server_cert_type(const SSL *s); + +__owur int SSL_set1_client_cert_type(SSL *s, const unsigned char *val, size_t len); +__owur int SSL_set1_server_cert_type(SSL *s, const unsigned char *val, size_t len); +__owur int SSL_CTX_set1_client_cert_type(SSL_CTX *ctx, const unsigned char *val, size_t len); +__owur int SSL_CTX_set1_server_cert_type(SSL_CTX *ctx, const unsigned char *val, size_t len); +__owur int SSL_get0_client_cert_type(const SSL *s, unsigned char **t, size_t *len); +__owur int SSL_get0_server_cert_type(const SSL *s, unsigned char **t, size_t *len); +__owur int SSL_CTX_get0_client_cert_type(const SSL_CTX *ctx, unsigned char **t, size_t *len); +__owur int SSL_CTX_get0_server_cert_type(const SSL_CTX *s, unsigned char **t, size_t *len); + +/* + * Protection level. For <= TLSv1.2 only "NONE" and "APPLICATION" are used. + */ +# define OSSL_RECORD_PROTECTION_LEVEL_NONE 0 +# define OSSL_RECORD_PROTECTION_LEVEL_EARLY 1 +# define OSSL_RECORD_PROTECTION_LEVEL_HANDSHAKE 2 +# define OSSL_RECORD_PROTECTION_LEVEL_APPLICATION 3 + +int SSL_set_quic_tls_cbs(SSL *s, const OSSL_DISPATCH *qtdis, void *arg); +int SSL_set_quic_tls_transport_params(SSL *s, + const unsigned char *params, + size_t params_len); + +int SSL_set_quic_tls_early_data_enabled(SSL *s, int enabled); + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/VC-WIN64-ARM/no-asm/include/openssl/x509.h b/deps/openssl/config/archs/VC-WIN64-ARM/no-asm/include/openssl/x509.h index 0f2353c821aa9b..5e9c548c48d65b 100644 --- a/deps/openssl/config/archs/VC-WIN64-ARM/no-asm/include/openssl/x509.h +++ b/deps/openssl/config/archs/VC-WIN64-ARM/no-asm/include/openssl/x509.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by makefile from include/openssl/x509.h.in * - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2024 The OpenSSL Project Authors. All Rights Reserved. * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved * * Licensed under the Apache License 2.0 (the "License"). You may not use @@ -40,6 +40,9 @@ # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -162,16 +165,24 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_CRL, X509_CRL, X509_CRL) # define X509_FILETYPE_ASN1 2 # define X509_FILETYPE_DEFAULT 3 -# define X509v3_KU_DIGITAL_SIGNATURE 0x0080 -# define X509v3_KU_NON_REPUDIATION 0x0040 -# define X509v3_KU_KEY_ENCIPHERMENT 0x0020 -# define X509v3_KU_DATA_ENCIPHERMENT 0x0010 -# define X509v3_KU_KEY_AGREEMENT 0x0008 -# define X509v3_KU_KEY_CERT_SIGN 0x0004 -# define X509v3_KU_CRL_SIGN 0x0002 -# define X509v3_KU_ENCIPHER_ONLY 0x0001 -# define X509v3_KU_DECIPHER_ONLY 0x8000 -# define X509v3_KU_UNDEF 0xffff +/*- + * : + * The KeyUsage BITSTRING is treated as a little-endian integer, hence bit `0` + * is 0x80, while bit `7` is 0x01 (the LSB of the integer value), bit `8` is + * then the MSB of the second octet, or 0x8000. + */ +# define X509v3_KU_DIGITAL_SIGNATURE 0x0080 /* (0) */ +# define X509v3_KU_NON_REPUDIATION 0x0040 /* (1) */ +# define X509v3_KU_KEY_ENCIPHERMENT 0x0020 /* (2) */ +# define X509v3_KU_DATA_ENCIPHERMENT 0x0010 /* (3) */ +# define X509v3_KU_KEY_AGREEMENT 0x0008 /* (4) */ +# define X509v3_KU_KEY_CERT_SIGN 0x0004 /* (5) */ +# define X509v3_KU_CRL_SIGN 0x0002 /* (6) */ +# define X509v3_KU_ENCIPHER_ONLY 0x0001 /* (7) */ +# define X509v3_KU_DECIPHER_ONLY 0x8000 /* (8) */ +# ifndef OPENSSL_NO_DEPRECATED_3_4 +# define X509v3_KU_UNDEF 0xffff /* vestigial, not used */ +# endif struct X509_algor_st { ASN1_OBJECT *algorithm; @@ -462,7 +473,12 @@ typedef struct PBKDF2PARAM_st { X509_ALGOR *prf; } PBKDF2PARAM; -#ifndef OPENSSL_NO_SCRYPT +typedef struct { + X509_ALGOR *keyDerivationFunc; + X509_ALGOR *messageAuthScheme; +} PBMAC1PARAM; + +# ifndef OPENSSL_NO_SCRYPT typedef struct SCRYPT_PARAMS_st { ASN1_OCTET_STRING *salt; ASN1_INTEGER *costParameter; @@ -470,7 +486,7 @@ typedef struct SCRYPT_PARAMS_st { ASN1_INTEGER *parallelizationParameter; ASN1_INTEGER *keyLength; } SCRYPT_PARAMS; -#endif +# endif #ifdef __cplusplus } @@ -603,6 +619,8 @@ EVP_PKEY *d2i_PrivateKey_ex_fp(FILE *fp, EVP_PKEY **a, OSSL_LIB_CTX *libctx, const char *propq); EVP_PKEY *d2i_PrivateKey_fp(FILE *fp, EVP_PKEY **a); int i2d_PUBKEY_fp(FILE *fp, const EVP_PKEY *pkey); +EVP_PKEY *d2i_PUBKEY_ex_fp(FILE *fp, EVP_PKEY **a, OSSL_LIB_CTX *libctx, + const char *propq); EVP_PKEY *d2i_PUBKEY_fp(FILE *fp, EVP_PKEY **a); # endif @@ -651,6 +669,8 @@ EVP_PKEY *d2i_PrivateKey_ex_bio(BIO *bp, EVP_PKEY **a, OSSL_LIB_CTX *libctx, const char *propq); EVP_PKEY *d2i_PrivateKey_bio(BIO *bp, EVP_PKEY **a); int i2d_PUBKEY_bio(BIO *bp, const EVP_PKEY *pkey); +EVP_PKEY *d2i_PUBKEY_ex_bio(BIO *bp, EVP_PKEY **a, OSSL_LIB_CTX *libctx, + const char *propq); EVP_PKEY *d2i_PUBKEY_bio(BIO *bp, EVP_PKEY **a); DECLARE_ASN1_DUP_FUNCTION(X509) @@ -884,12 +904,12 @@ int X509_REQ_get_signature_nid(const X509_REQ *req); int i2d_re_X509_REQ_tbs(X509_REQ *req, unsigned char **pp); int X509_REQ_set_pubkey(X509_REQ *x, EVP_PKEY *pkey); EVP_PKEY *X509_REQ_get_pubkey(X509_REQ *req); -EVP_PKEY *X509_REQ_get0_pubkey(X509_REQ *req); +EVP_PKEY *X509_REQ_get0_pubkey(const X509_REQ *req); X509_PUBKEY *X509_REQ_get_X509_PUBKEY(X509_REQ *req); int X509_REQ_extension_nid(int nid); int *X509_REQ_get_extension_nids(void); void X509_REQ_set_extension_nids(int *nids); -STACK_OF(X509_EXTENSION) *X509_REQ_get_extensions(X509_REQ *req); +STACK_OF(X509_EXTENSION) *X509_REQ_get_extensions(OSSL_FUTURE_CONST X509_REQ *req); int X509_REQ_add_extensions_nid(X509_REQ *req, const STACK_OF(X509_EXTENSION) *exts, int nid); int X509_REQ_add_extensions(X509_REQ *req, const STACK_OF(X509_EXTENSION) *ext); @@ -950,13 +970,14 @@ X509_REVOKED_get0_extensions(const X509_REVOKED *r); X509_CRL *X509_CRL_diff(X509_CRL *base, X509_CRL *newer, EVP_PKEY *skey, const EVP_MD *md, unsigned int flags); -int X509_REQ_check_private_key(X509_REQ *x509, EVP_PKEY *pkey); +int X509_REQ_check_private_key(const X509_REQ *req, EVP_PKEY *pkey); -int X509_check_private_key(const X509 *x509, const EVP_PKEY *pkey); +int X509_check_private_key(const X509 *cert, const EVP_PKEY *pkey); int X509_chain_check_suiteb(int *perror_depth, X509 *x, STACK_OF(X509) *chain, unsigned long flags); int X509_CRL_check_suiteb(X509_CRL *crl, EVP_PKEY *pk, unsigned long flags); +void OSSL_STACK_OF_X509_free(STACK_OF(X509) *certs); STACK_OF(X509) *X509_chain_up_ref(STACK_OF(X509) *chain); int X509_issuer_and_serial_cmp(const X509 *a, const X509 *b); @@ -1077,6 +1098,8 @@ X509_EXTENSION *X509v3_get_ext(const STACK_OF(X509_EXTENSION) *x, int loc); X509_EXTENSION *X509v3_delete_ext(STACK_OF(X509_EXTENSION) *x, int loc); STACK_OF(X509_EXTENSION) *X509v3_add_ext(STACK_OF(X509_EXTENSION) **x, X509_EXTENSION *ex, int loc); +STACK_OF(X509_EXTENSION) *X509v3_add_extensions(STACK_OF(X509_EXTENSION) **target, + const STACK_OF(X509_EXTENSION) *exts); int X509_get_ext_count(const X509 *x); int X509_get_ext_by_NID(const X509 *x, int nid, int lastpos); @@ -1198,9 +1221,10 @@ X509 *X509_find_by_subject(STACK_OF(X509) *sk, const X509_NAME *name); DECLARE_ASN1_FUNCTIONS(PBEPARAM) DECLARE_ASN1_FUNCTIONS(PBE2PARAM) DECLARE_ASN1_FUNCTIONS(PBKDF2PARAM) -#ifndef OPENSSL_NO_SCRYPT +DECLARE_ASN1_FUNCTIONS(PBMAC1PARAM) +# ifndef OPENSSL_NO_SCRYPT DECLARE_ASN1_FUNCTIONS(SCRYPT_PARAMS) -#endif +# endif int PKCS5_pbe_set0_algor(X509_ALGOR *algor, int alg, int iter, const unsigned char *salt, int saltlen); @@ -1237,6 +1261,7 @@ X509_ALGOR *PKCS5_pbkdf2_set_ex(int iter, unsigned char *salt, int saltlen, int prf_nid, int keylen, OSSL_LIB_CTX *libctx); +PBKDF2PARAM *PBMAC1_get1_pbkdf2_param(const X509_ALGOR *macalg); /* PKCS#8 utilities */ DECLARE_ASN1_FUNCTIONS(PKCS8_PRIV_KEY_INFO) @@ -1262,6 +1287,8 @@ int PKCS8_pkey_add1_attr_by_OBJ(PKCS8_PRIV_KEY_INFO *p8, const ASN1_OBJECT *obj, int type, const unsigned char *bytes, int len); +void X509_PUBKEY_set0_public_key(X509_PUBKEY *pub, + unsigned char *penc, int penclen); int X509_PUBKEY_set0_param(X509_PUBKEY *pub, ASN1_OBJECT *aobj, int ptype, void *pval, unsigned char *penc, int penclen); diff --git a/deps/openssl/config/archs/VC-WIN64-ARM/no-asm/include/openssl/x509_acert.h b/deps/openssl/config/archs/VC-WIN64-ARM/no-asm/include/openssl/x509_acert.h new file mode 100644 index 00000000000000..efae82c8f6b635 --- /dev/null +++ b/deps/openssl/config/archs/VC-WIN64-ARM/no-asm/include/openssl/x509_acert.h @@ -0,0 +1,294 @@ +/* + * WARNING: do not edit! + * Generated by makefile from include/openssl/x509_acert.h.in + * + * Copyright 2022-2024 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + + +#ifndef OPENSSL_X509_ACERT_H +# define OPENSSL_X509_ACERT_H +# pragma once + +# include +# include +# include + +typedef struct X509_acert_st X509_ACERT; +typedef struct X509_acert_info_st X509_ACERT_INFO; +typedef struct ossl_object_digest_info_st OSSL_OBJECT_DIGEST_INFO; +typedef struct ossl_issuer_serial_st OSSL_ISSUER_SERIAL; +typedef struct X509_acert_issuer_v2form_st X509_ACERT_ISSUER_V2FORM; + +DECLARE_ASN1_FUNCTIONS(X509_ACERT) +DECLARE_ASN1_DUP_FUNCTION(X509_ACERT) +DECLARE_ASN1_ITEM(X509_ACERT_INFO) +DECLARE_ASN1_ALLOC_FUNCTIONS(X509_ACERT_INFO) +DECLARE_ASN1_ALLOC_FUNCTIONS(OSSL_OBJECT_DIGEST_INFO) +DECLARE_ASN1_ALLOC_FUNCTIONS(OSSL_ISSUER_SERIAL) +DECLARE_ASN1_ALLOC_FUNCTIONS(X509_ACERT_ISSUER_V2FORM) + +# ifndef OPENSSL_NO_STDIO +X509_ACERT *d2i_X509_ACERT_fp(FILE *fp, X509_ACERT **acert); +int i2d_X509_ACERT_fp(FILE *fp, const X509_ACERT *acert); +# endif + +DECLARE_PEM_rw(X509_ACERT, X509_ACERT) + +X509_ACERT *d2i_X509_ACERT_bio(BIO *bp, X509_ACERT **acert); +int i2d_X509_ACERT_bio(BIO *bp, const X509_ACERT *acert); + +int X509_ACERT_sign(X509_ACERT *x, EVP_PKEY *pkey, const EVP_MD *md); +int X509_ACERT_sign_ctx(X509_ACERT *x, EVP_MD_CTX *ctx); +int X509_ACERT_verify(X509_ACERT *a, EVP_PKEY *r); + +# define X509_ACERT_VERSION_2 1 + +const GENERAL_NAMES *X509_ACERT_get0_holder_entityName(const X509_ACERT *x); +const OSSL_ISSUER_SERIAL *X509_ACERT_get0_holder_baseCertId(const X509_ACERT *x); +const OSSL_OBJECT_DIGEST_INFO * X509_ACERT_get0_holder_digest(const X509_ACERT *x); +const X509_NAME *X509_ACERT_get0_issuerName(const X509_ACERT *x); +long X509_ACERT_get_version(const X509_ACERT *x); +void X509_ACERT_get0_signature(const X509_ACERT *x, + const ASN1_BIT_STRING **psig, + const X509_ALGOR **palg); +int X509_ACERT_get_signature_nid(const X509_ACERT *x); +const X509_ALGOR *X509_ACERT_get0_info_sigalg(const X509_ACERT *x); +const ASN1_INTEGER *X509_ACERT_get0_serialNumber(const X509_ACERT *x); +const ASN1_TIME *X509_ACERT_get0_notBefore(const X509_ACERT *x); +const ASN1_TIME *X509_ACERT_get0_notAfter(const X509_ACERT *x); +const ASN1_BIT_STRING *X509_ACERT_get0_issuerUID(const X509_ACERT *x); + +int X509_ACERT_print(BIO *bp, X509_ACERT *x); +int X509_ACERT_print_ex(BIO *bp, X509_ACERT *x, unsigned long nmflags, + unsigned long cflag); + +int X509_ACERT_get_attr_count(const X509_ACERT *x); +int X509_ACERT_get_attr_by_NID(const X509_ACERT *x, int nid, int lastpos); +int X509_ACERT_get_attr_by_OBJ(const X509_ACERT *x, const ASN1_OBJECT *obj, + int lastpos); +X509_ATTRIBUTE *X509_ACERT_get_attr(const X509_ACERT *x, int loc); +X509_ATTRIBUTE *X509_ACERT_delete_attr(X509_ACERT *x, int loc); + +void *X509_ACERT_get_ext_d2i(const X509_ACERT *x, int nid, int *crit, int *idx); +int X509_ACERT_add1_ext_i2d(X509_ACERT *x, int nid, void *value, int crit, + unsigned long flags); +const STACK_OF(X509_EXTENSION) *X509_ACERT_get0_extensions(const X509_ACERT *x); + +# define OSSL_OBJECT_DIGEST_INFO_PUBLIC_KEY 0 +# define OSSL_OBJECT_DIGEST_INFO_PUBLIC_KEY_CERT 1 +# define OSSL_OBJECT_DIGEST_INFO_OTHER 2 /* must not be used in RFC 5755 profile */ +int X509_ACERT_set_version(X509_ACERT *x, long version); +void X509_ACERT_set0_holder_entityName(X509_ACERT *x, GENERAL_NAMES *name); +void X509_ACERT_set0_holder_baseCertId(X509_ACERT *x, OSSL_ISSUER_SERIAL *isss); +void X509_ACERT_set0_holder_digest(X509_ACERT *x, + OSSL_OBJECT_DIGEST_INFO *dinfo); + +int X509_ACERT_add1_attr(X509_ACERT *x, X509_ATTRIBUTE *attr); +int X509_ACERT_add1_attr_by_OBJ(X509_ACERT *x, const ASN1_OBJECT *obj, + int type, const void *bytes, int len); +int X509_ACERT_add1_attr_by_NID(X509_ACERT *x, int nid, int type, + const void *bytes, int len); +int X509_ACERT_add1_attr_by_txt(X509_ACERT *x, const char *attrname, int type, + const unsigned char *bytes, int len); +int X509_ACERT_add_attr_nconf(CONF *conf, const char *section, + X509_ACERT *acert); + +int X509_ACERT_set1_issuerName(X509_ACERT *x, const X509_NAME *name); +int X509_ACERT_set1_serialNumber(X509_ACERT *x, const ASN1_INTEGER *serial); +int X509_ACERT_set1_notBefore(X509_ACERT *x, const ASN1_GENERALIZEDTIME *time); +int X509_ACERT_set1_notAfter(X509_ACERT *x, const ASN1_GENERALIZEDTIME *time); + +void OSSL_OBJECT_DIGEST_INFO_get0_digest(const OSSL_OBJECT_DIGEST_INFO *o, + int *digestedObjectType, + const X509_ALGOR **digestAlgorithm, + const ASN1_BIT_STRING **digest); + +int OSSL_OBJECT_DIGEST_INFO_set1_digest(OSSL_OBJECT_DIGEST_INFO *o, + int digestedObjectType, + X509_ALGOR *digestAlgorithm, + ASN1_BIT_STRING *digest); + +const X509_NAME *OSSL_ISSUER_SERIAL_get0_issuer(const OSSL_ISSUER_SERIAL *isss); +const ASN1_INTEGER *OSSL_ISSUER_SERIAL_get0_serial(const OSSL_ISSUER_SERIAL *isss); +const ASN1_BIT_STRING *OSSL_ISSUER_SERIAL_get0_issuerUID(const OSSL_ISSUER_SERIAL *isss); + +int OSSL_ISSUER_SERIAL_set1_issuer(OSSL_ISSUER_SERIAL *isss, + const X509_NAME *issuer); +int OSSL_ISSUER_SERIAL_set1_serial(OSSL_ISSUER_SERIAL *isss, + const ASN1_INTEGER *serial); +int OSSL_ISSUER_SERIAL_set1_issuerUID(OSSL_ISSUER_SERIAL *isss, + const ASN1_BIT_STRING *uid); + +# define OSSL_IETFAS_OCTETS 0 +# define OSSL_IETFAS_OID 1 +# define OSSL_IETFAS_STRING 2 + +typedef struct OSSL_IETF_ATTR_SYNTAX_VALUE_st OSSL_IETF_ATTR_SYNTAX_VALUE; +typedef struct OSSL_IETF_ATTR_SYNTAX_st OSSL_IETF_ATTR_SYNTAX; +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_IETF_ATTR_SYNTAX_VALUE, OSSL_IETF_ATTR_SYNTAX_VALUE, OSSL_IETF_ATTR_SYNTAX_VALUE) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_value(sk, idx) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_value(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), (idx))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_new(cmp) ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_new(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_compfunc_type(cmp))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_new_null() ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_new_null()) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_new_reserve(cmp, n) ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_compfunc_type(cmp), (n))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), (n)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_free(sk) OPENSSL_sk_free(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_delete(sk, i) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_delete(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), (i))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_delete_ptr(sk, ptr) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_pop(sk) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_pop(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_shift(sk) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_shift(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk),ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_freefunc_type(freefunc)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr), (idx)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_set(sk, idx, ptr) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_set(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), (idx), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr), pnum) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_dup(sk) ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_dup(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_copyfunc_type(copyfunc), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_freefunc_type(freefunc))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_set_cmp_func(sk, cmp) ((sk_OSSL_IETF_ATTR_SYNTAX_VALUE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_compfunc_type(cmp))) + + +DECLARE_ASN1_ITEM(OSSL_IETF_ATTR_SYNTAX_VALUE) +DECLARE_ASN1_ALLOC_FUNCTIONS(OSSL_IETF_ATTR_SYNTAX_VALUE) +DECLARE_ASN1_FUNCTIONS(OSSL_IETF_ATTR_SYNTAX) + +const GENERAL_NAMES * +OSSL_IETF_ATTR_SYNTAX_get0_policyAuthority(const OSSL_IETF_ATTR_SYNTAX *a); +void OSSL_IETF_ATTR_SYNTAX_set0_policyAuthority(OSSL_IETF_ATTR_SYNTAX *a, + GENERAL_NAMES *names); + +int OSSL_IETF_ATTR_SYNTAX_get_value_num(const OSSL_IETF_ATTR_SYNTAX *a); +void *OSSL_IETF_ATTR_SYNTAX_get0_value(const OSSL_IETF_ATTR_SYNTAX *a, + int ind, int *type); +int OSSL_IETF_ATTR_SYNTAX_add1_value(OSSL_IETF_ATTR_SYNTAX *a, int type, + void *data); +int OSSL_IETF_ATTR_SYNTAX_print(BIO *bp, OSSL_IETF_ATTR_SYNTAX *a, int indent); + +struct TARGET_CERT_st { + OSSL_ISSUER_SERIAL *targetCertificate; + GENERAL_NAME *targetName; + OSSL_OBJECT_DIGEST_INFO *certDigestInfo; +}; + +typedef struct TARGET_CERT_st OSSL_TARGET_CERT; + +# define OSSL_TGT_TARGET_NAME 0 +# define OSSL_TGT_TARGET_GROUP 1 +# define OSSL_TGT_TARGET_CERT 2 + +typedef struct TARGET_st { + int type; + union { + GENERAL_NAME *targetName; + GENERAL_NAME *targetGroup; + OSSL_TARGET_CERT *targetCert; + } choice; +} OSSL_TARGET; + +typedef STACK_OF(OSSL_TARGET) OSSL_TARGETS; +typedef STACK_OF(OSSL_TARGETS) OSSL_TARGETING_INFORMATION; + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_TARGET, OSSL_TARGET, OSSL_TARGET) +#define sk_OSSL_TARGET_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_value(sk, idx) ((OSSL_TARGET *)OPENSSL_sk_value(ossl_check_const_OSSL_TARGET_sk_type(sk), (idx))) +#define sk_OSSL_TARGET_new(cmp) ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_new(ossl_check_OSSL_TARGET_compfunc_type(cmp))) +#define sk_OSSL_TARGET_new_null() ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_new_null()) +#define sk_OSSL_TARGET_new_reserve(cmp, n) ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_TARGET_compfunc_type(cmp), (n))) +#define sk_OSSL_TARGET_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_TARGET_sk_type(sk), (n)) +#define sk_OSSL_TARGET_free(sk) OPENSSL_sk_free(ossl_check_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_delete(sk, i) ((OSSL_TARGET *)OPENSSL_sk_delete(ossl_check_OSSL_TARGET_sk_type(sk), (i))) +#define sk_OSSL_TARGET_delete_ptr(sk, ptr) ((OSSL_TARGET *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr))) +#define sk_OSSL_TARGET_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr)) +#define sk_OSSL_TARGET_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr)) +#define sk_OSSL_TARGET_pop(sk) ((OSSL_TARGET *)OPENSSL_sk_pop(ossl_check_OSSL_TARGET_sk_type(sk))) +#define sk_OSSL_TARGET_shift(sk) ((OSSL_TARGET *)OPENSSL_sk_shift(ossl_check_OSSL_TARGET_sk_type(sk))) +#define sk_OSSL_TARGET_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_TARGET_sk_type(sk),ossl_check_OSSL_TARGET_freefunc_type(freefunc)) +#define sk_OSSL_TARGET_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr), (idx)) +#define sk_OSSL_TARGET_set(sk, idx, ptr) ((OSSL_TARGET *)OPENSSL_sk_set(ossl_check_OSSL_TARGET_sk_type(sk), (idx), ossl_check_OSSL_TARGET_type(ptr))) +#define sk_OSSL_TARGET_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr)) +#define sk_OSSL_TARGET_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr)) +#define sk_OSSL_TARGET_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr), pnum) +#define sk_OSSL_TARGET_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_dup(sk) ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_dup(ossl_check_const_OSSL_TARGET_sk_type(sk))) +#define sk_OSSL_TARGET_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_copyfunc_type(copyfunc), ossl_check_OSSL_TARGET_freefunc_type(freefunc))) +#define sk_OSSL_TARGET_set_cmp_func(sk, cmp) ((sk_OSSL_TARGET_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_compfunc_type(cmp))) + + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_TARGETS, OSSL_TARGETS, OSSL_TARGETS) +#define sk_OSSL_TARGETS_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_value(sk, idx) ((OSSL_TARGETS *)OPENSSL_sk_value(ossl_check_const_OSSL_TARGETS_sk_type(sk), (idx))) +#define sk_OSSL_TARGETS_new(cmp) ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_new(ossl_check_OSSL_TARGETS_compfunc_type(cmp))) +#define sk_OSSL_TARGETS_new_null() ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_new_null()) +#define sk_OSSL_TARGETS_new_reserve(cmp, n) ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_TARGETS_compfunc_type(cmp), (n))) +#define sk_OSSL_TARGETS_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_TARGETS_sk_type(sk), (n)) +#define sk_OSSL_TARGETS_free(sk) OPENSSL_sk_free(ossl_check_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_delete(sk, i) ((OSSL_TARGETS *)OPENSSL_sk_delete(ossl_check_OSSL_TARGETS_sk_type(sk), (i))) +#define sk_OSSL_TARGETS_delete_ptr(sk, ptr) ((OSSL_TARGETS *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr))) +#define sk_OSSL_TARGETS_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr)) +#define sk_OSSL_TARGETS_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr)) +#define sk_OSSL_TARGETS_pop(sk) ((OSSL_TARGETS *)OPENSSL_sk_pop(ossl_check_OSSL_TARGETS_sk_type(sk))) +#define sk_OSSL_TARGETS_shift(sk) ((OSSL_TARGETS *)OPENSSL_sk_shift(ossl_check_OSSL_TARGETS_sk_type(sk))) +#define sk_OSSL_TARGETS_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_TARGETS_sk_type(sk),ossl_check_OSSL_TARGETS_freefunc_type(freefunc)) +#define sk_OSSL_TARGETS_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr), (idx)) +#define sk_OSSL_TARGETS_set(sk, idx, ptr) ((OSSL_TARGETS *)OPENSSL_sk_set(ossl_check_OSSL_TARGETS_sk_type(sk), (idx), ossl_check_OSSL_TARGETS_type(ptr))) +#define sk_OSSL_TARGETS_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr)) +#define sk_OSSL_TARGETS_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr)) +#define sk_OSSL_TARGETS_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr), pnum) +#define sk_OSSL_TARGETS_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_dup(sk) ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_dup(ossl_check_const_OSSL_TARGETS_sk_type(sk))) +#define sk_OSSL_TARGETS_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_copyfunc_type(copyfunc), ossl_check_OSSL_TARGETS_freefunc_type(freefunc))) +#define sk_OSSL_TARGETS_set_cmp_func(sk, cmp) ((sk_OSSL_TARGETS_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_compfunc_type(cmp))) + + +DECLARE_ASN1_FUNCTIONS(OSSL_TARGET) +DECLARE_ASN1_FUNCTIONS(OSSL_TARGETS) +DECLARE_ASN1_FUNCTIONS(OSSL_TARGETING_INFORMATION) + +typedef STACK_OF(OSSL_ISSUER_SERIAL) OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX; +DECLARE_ASN1_FUNCTIONS(OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ISSUER_SERIAL, OSSL_ISSUER_SERIAL, OSSL_ISSUER_SERIAL) +#define sk_OSSL_ISSUER_SERIAL_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_value(sk, idx) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_value(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk), (idx))) +#define sk_OSSL_ISSUER_SERIAL_new(cmp) ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_new(ossl_check_OSSL_ISSUER_SERIAL_compfunc_type(cmp))) +#define sk_OSSL_ISSUER_SERIAL_new_null() ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ISSUER_SERIAL_new_reserve(cmp, n) ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ISSUER_SERIAL_compfunc_type(cmp), (n))) +#define sk_OSSL_ISSUER_SERIAL_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), (n)) +#define sk_OSSL_ISSUER_SERIAL_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_delete(sk, i) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_delete(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), (i))) +#define sk_OSSL_ISSUER_SERIAL_delete_ptr(sk, ptr) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr))) +#define sk_OSSL_ISSUER_SERIAL_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr)) +#define sk_OSSL_ISSUER_SERIAL_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr)) +#define sk_OSSL_ISSUER_SERIAL_pop(sk) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_pop(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk))) +#define sk_OSSL_ISSUER_SERIAL_shift(sk) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_shift(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk))) +#define sk_OSSL_ISSUER_SERIAL_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk),ossl_check_OSSL_ISSUER_SERIAL_freefunc_type(freefunc)) +#define sk_OSSL_ISSUER_SERIAL_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr), (idx)) +#define sk_OSSL_ISSUER_SERIAL_set(sk, idx, ptr) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_set(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), (idx), ossl_check_OSSL_ISSUER_SERIAL_type(ptr))) +#define sk_OSSL_ISSUER_SERIAL_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr)) +#define sk_OSSL_ISSUER_SERIAL_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr)) +#define sk_OSSL_ISSUER_SERIAL_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr), pnum) +#define sk_OSSL_ISSUER_SERIAL_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_dup(sk) ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk))) +#define sk_OSSL_ISSUER_SERIAL_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_copyfunc_type(copyfunc), ossl_check_OSSL_ISSUER_SERIAL_freefunc_type(freefunc))) +#define sk_OSSL_ISSUER_SERIAL_set_cmp_func(sk, cmp) ((sk_OSSL_ISSUER_SERIAL_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_compfunc_type(cmp))) + + +#endif diff --git a/deps/openssl/config/archs/VC-WIN64-ARM/no-asm/include/openssl/x509_vfy.h b/deps/openssl/config/archs/VC-WIN64-ARM/no-asm/include/openssl/x509_vfy.h index f571187265cfc9..f08a134b17b7db 100644 --- a/deps/openssl/config/archs/VC-WIN64-ARM/no-asm/include/openssl/x509_vfy.h +++ b/deps/openssl/config/archs/VC-WIN64-ARM/no-asm/include/openssl/x509_vfy.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by makefile from include/openssl/x509_vfy.h.in * - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -411,6 +411,7 @@ X509_LOOKUP_ctrl_ex((x), X509_L_ADD_STORE, (name), 0, NULL, \ # define X509_V_ERR_CA_CERT_MISSING_KEY_USAGE 92 # define X509_V_ERR_EXTENSIONS_REQUIRE_VERSION_3 93 # define X509_V_ERR_EC_KEY_EXPLICIT_PARAMS 94 +# define X509_V_ERR_RPK_UNTRUSTED 95 /* Certificate verify flags */ # ifndef OPENSSL_NO_DEPRECATED_1_1_0 @@ -491,71 +492,72 @@ int X509_OBJECT_set1_X509(X509_OBJECT *a, X509 *obj); X509_CRL *X509_OBJECT_get0_X509_CRL(const X509_OBJECT *a); int X509_OBJECT_set1_X509_CRL(X509_OBJECT *a, X509_CRL *obj); X509_STORE *X509_STORE_new(void); -void X509_STORE_free(X509_STORE *v); -int X509_STORE_lock(X509_STORE *ctx); -int X509_STORE_unlock(X509_STORE *ctx); -int X509_STORE_up_ref(X509_STORE *v); -STACK_OF(X509_OBJECT) *X509_STORE_get0_objects(const X509_STORE *v); -STACK_OF(X509) *X509_STORE_get1_all_certs(X509_STORE *st); -STACK_OF(X509) *X509_STORE_CTX_get1_certs(X509_STORE_CTX *st, +void X509_STORE_free(X509_STORE *xs); +int X509_STORE_lock(X509_STORE *xs); +int X509_STORE_unlock(X509_STORE *xs); +int X509_STORE_up_ref(X509_STORE *xs); +STACK_OF(X509_OBJECT) *X509_STORE_get0_objects(const X509_STORE *xs); +STACK_OF(X509_OBJECT) *X509_STORE_get1_objects(X509_STORE *xs); +STACK_OF(X509) *X509_STORE_get1_all_certs(X509_STORE *xs); +STACK_OF(X509) *X509_STORE_CTX_get1_certs(X509_STORE_CTX *xs, const X509_NAME *nm); STACK_OF(X509_CRL) *X509_STORE_CTX_get1_crls(const X509_STORE_CTX *st, const X509_NAME *nm); -int X509_STORE_set_flags(X509_STORE *ctx, unsigned long flags); -int X509_STORE_set_purpose(X509_STORE *ctx, int purpose); -int X509_STORE_set_trust(X509_STORE *ctx, int trust); -int X509_STORE_set1_param(X509_STORE *ctx, const X509_VERIFY_PARAM *pm); -X509_VERIFY_PARAM *X509_STORE_get0_param(const X509_STORE *ctx); +int X509_STORE_set_flags(X509_STORE *xs, unsigned long flags); +int X509_STORE_set_purpose(X509_STORE *xs, int purpose); +int X509_STORE_set_trust(X509_STORE *xs, int trust); +int X509_STORE_set1_param(X509_STORE *xs, const X509_VERIFY_PARAM *pm); +X509_VERIFY_PARAM *X509_STORE_get0_param(const X509_STORE *xs); -void X509_STORE_set_verify(X509_STORE *ctx, X509_STORE_CTX_verify_fn verify); +void X509_STORE_set_verify(X509_STORE *xs, X509_STORE_CTX_verify_fn verify); #define X509_STORE_set_verify_func(ctx, func) \ X509_STORE_set_verify((ctx),(func)) void X509_STORE_CTX_set_verify(X509_STORE_CTX *ctx, X509_STORE_CTX_verify_fn verify); -X509_STORE_CTX_verify_fn X509_STORE_get_verify(const X509_STORE *ctx); -void X509_STORE_set_verify_cb(X509_STORE *ctx, +X509_STORE_CTX_verify_fn X509_STORE_get_verify(const X509_STORE *xs); +void X509_STORE_set_verify_cb(X509_STORE *xs, X509_STORE_CTX_verify_cb verify_cb); # define X509_STORE_set_verify_cb_func(ctx,func) \ X509_STORE_set_verify_cb((ctx),(func)) -X509_STORE_CTX_verify_cb X509_STORE_get_verify_cb(const X509_STORE *ctx); -void X509_STORE_set_get_issuer(X509_STORE *ctx, +X509_STORE_CTX_verify_cb X509_STORE_get_verify_cb(const X509_STORE *xs); +void X509_STORE_set_get_issuer(X509_STORE *xs, X509_STORE_CTX_get_issuer_fn get_issuer); -X509_STORE_CTX_get_issuer_fn X509_STORE_get_get_issuer(const X509_STORE *ctx); -void X509_STORE_set_check_issued(X509_STORE *ctx, +X509_STORE_CTX_get_issuer_fn X509_STORE_get_get_issuer(const X509_STORE *xs); +void X509_STORE_set_check_issued(X509_STORE *xs, X509_STORE_CTX_check_issued_fn check_issued); -X509_STORE_CTX_check_issued_fn X509_STORE_get_check_issued(const X509_STORE *ctx); -void X509_STORE_set_check_revocation(X509_STORE *ctx, +X509_STORE_CTX_check_issued_fn X509_STORE_get_check_issued(const X509_STORE *s); +void X509_STORE_set_check_revocation(X509_STORE *xs, X509_STORE_CTX_check_revocation_fn check_revocation); X509_STORE_CTX_check_revocation_fn - X509_STORE_get_check_revocation(const X509_STORE *ctx); -void X509_STORE_set_get_crl(X509_STORE *ctx, + X509_STORE_get_check_revocation(const X509_STORE *xs); +void X509_STORE_set_get_crl(X509_STORE *xs, X509_STORE_CTX_get_crl_fn get_crl); -X509_STORE_CTX_get_crl_fn X509_STORE_get_get_crl(const X509_STORE *ctx); -void X509_STORE_set_check_crl(X509_STORE *ctx, +X509_STORE_CTX_get_crl_fn X509_STORE_get_get_crl(const X509_STORE *xs); +void X509_STORE_set_check_crl(X509_STORE *xs, X509_STORE_CTX_check_crl_fn check_crl); -X509_STORE_CTX_check_crl_fn X509_STORE_get_check_crl(const X509_STORE *ctx); -void X509_STORE_set_cert_crl(X509_STORE *ctx, +X509_STORE_CTX_check_crl_fn X509_STORE_get_check_crl(const X509_STORE *xs); +void X509_STORE_set_cert_crl(X509_STORE *xs, X509_STORE_CTX_cert_crl_fn cert_crl); -X509_STORE_CTX_cert_crl_fn X509_STORE_get_cert_crl(const X509_STORE *ctx); -void X509_STORE_set_check_policy(X509_STORE *ctx, +X509_STORE_CTX_cert_crl_fn X509_STORE_get_cert_crl(const X509_STORE *xs); +void X509_STORE_set_check_policy(X509_STORE *xs, X509_STORE_CTX_check_policy_fn check_policy); -X509_STORE_CTX_check_policy_fn X509_STORE_get_check_policy(const X509_STORE *ctx); -void X509_STORE_set_lookup_certs(X509_STORE *ctx, +X509_STORE_CTX_check_policy_fn X509_STORE_get_check_policy(const X509_STORE *s); +void X509_STORE_set_lookup_certs(X509_STORE *xs, X509_STORE_CTX_lookup_certs_fn lookup_certs); -X509_STORE_CTX_lookup_certs_fn X509_STORE_get_lookup_certs(const X509_STORE *ctx); -void X509_STORE_set_lookup_crls(X509_STORE *ctx, +X509_STORE_CTX_lookup_certs_fn X509_STORE_get_lookup_certs(const X509_STORE *s); +void X509_STORE_set_lookup_crls(X509_STORE *xs, X509_STORE_CTX_lookup_crls_fn lookup_crls); #define X509_STORE_set_lookup_crls_cb(ctx, func) \ X509_STORE_set_lookup_crls((ctx), (func)) -X509_STORE_CTX_lookup_crls_fn X509_STORE_get_lookup_crls(const X509_STORE *ctx); -void X509_STORE_set_cleanup(X509_STORE *ctx, +X509_STORE_CTX_lookup_crls_fn X509_STORE_get_lookup_crls(const X509_STORE *xs); +void X509_STORE_set_cleanup(X509_STORE *xs, X509_STORE_CTX_cleanup_fn cleanup); -X509_STORE_CTX_cleanup_fn X509_STORE_get_cleanup(const X509_STORE *ctx); +X509_STORE_CTX_cleanup_fn X509_STORE_get_cleanup(const X509_STORE *xs); #define X509_STORE_get_ex_new_index(l, p, newf, dupf, freef) \ CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_X509_STORE, l, p, newf, dupf, freef) -int X509_STORE_set_ex_data(X509_STORE *ctx, int idx, void *data); -void *X509_STORE_get_ex_data(const X509_STORE *ctx, int idx); +int X509_STORE_set_ex_data(X509_STORE *xs, int idx, void *data); +void *X509_STORE_get_ex_data(const X509_STORE *xs, int idx); X509_STORE_CTX *X509_STORE_CTX_new_ex(OSSL_LIB_CTX *libctx, const char *propq); X509_STORE_CTX *X509_STORE_CTX_new(void); @@ -565,11 +567,14 @@ int X509_STORE_CTX_get1_issuer(X509 **issuer, X509_STORE_CTX *ctx, X509 *x); void X509_STORE_CTX_free(X509_STORE_CTX *ctx); int X509_STORE_CTX_init(X509_STORE_CTX *ctx, X509_STORE *trust_store, X509 *target, STACK_OF(X509) *untrusted); +int X509_STORE_CTX_init_rpk(X509_STORE_CTX *ctx, X509_STORE *trust_store, + EVP_PKEY* rpk); void X509_STORE_CTX_set0_trusted_stack(X509_STORE_CTX *ctx, STACK_OF(X509) *sk); void X509_STORE_CTX_cleanup(X509_STORE_CTX *ctx); X509_STORE *X509_STORE_CTX_get0_store(const X509_STORE_CTX *ctx); X509 *X509_STORE_CTX_get0_cert(const X509_STORE_CTX *ctx); +EVP_PKEY *X509_STORE_CTX_get0_rpk(const X509_STORE_CTX *ctx); STACK_OF(X509)* X509_STORE_CTX_get0_untrusted(const X509_STORE_CTX *ctx); void X509_STORE_CTX_set0_untrusted(X509_STORE_CTX *ctx, STACK_OF(X509) *sk); void X509_STORE_CTX_set_verify_cb(X509_STORE_CTX *ctx, @@ -579,6 +584,8 @@ X509_STORE_CTX_verify_fn X509_STORE_CTX_get_verify(const X509_STORE_CTX *ctx); X509_STORE_CTX_get_issuer_fn X509_STORE_CTX_get_get_issuer(const X509_STORE_CTX *ctx); X509_STORE_CTX_check_issued_fn X509_STORE_CTX_get_check_issued(const X509_STORE_CTX *ctx); X509_STORE_CTX_check_revocation_fn X509_STORE_CTX_get_check_revocation(const X509_STORE_CTX *ctx); +void X509_STORE_CTX_set_get_crl(X509_STORE_CTX *ctx, + X509_STORE_CTX_get_crl_fn get_crl); X509_STORE_CTX_get_crl_fn X509_STORE_CTX_get_get_crl(const X509_STORE_CTX *ctx); X509_STORE_CTX_check_crl_fn X509_STORE_CTX_get_check_crl(const X509_STORE_CTX *ctx); X509_STORE_CTX_cert_crl_fn X509_STORE_CTX_get_cert_crl(const X509_STORE_CTX *ctx); @@ -600,7 +607,7 @@ X509_STORE_CTX_cleanup_fn X509_STORE_CTX_get_cleanup(const X509_STORE_CTX *ctx); # define X509_STORE_get1_crl X509_STORE_CTX_get1_crls #endif -X509_LOOKUP *X509_STORE_add_lookup(X509_STORE *v, X509_LOOKUP_METHOD *m); +X509_LOOKUP *X509_STORE_add_lookup(X509_STORE *xs, X509_LOOKUP_METHOD *m); X509_LOOKUP_METHOD *X509_LOOKUP_hash_dir(void); X509_LOOKUP_METHOD *X509_LOOKUP_file(void); X509_LOOKUP_METHOD *X509_LOOKUP_store(void); @@ -685,8 +692,8 @@ X509_LOOKUP_get_by_alias_fn X509_LOOKUP_meth_get_get_by_alias( const X509_LOOKUP_METHOD *method); -int X509_STORE_add_cert(X509_STORE *ctx, X509 *x); -int X509_STORE_add_crl(X509_STORE *ctx, X509_CRL *x); +int X509_STORE_add_cert(X509_STORE *xs, X509 *x); +int X509_STORE_add_crl(X509_STORE *xs, X509_CRL *x); int X509_STORE_CTX_get_by_subject(const X509_STORE_CTX *vs, X509_LOOKUP_TYPE type, @@ -730,23 +737,21 @@ void *X509_LOOKUP_get_method_data(const X509_LOOKUP *ctx); X509_STORE *X509_LOOKUP_get_store(const X509_LOOKUP *ctx); int X509_LOOKUP_shutdown(X509_LOOKUP *ctx); -int X509_STORE_load_file(X509_STORE *ctx, const char *file); -int X509_STORE_load_path(X509_STORE *ctx, const char *path); -int X509_STORE_load_store(X509_STORE *ctx, const char *store); -int X509_STORE_load_locations(X509_STORE *ctx, - const char *file, - const char *dir); -int X509_STORE_set_default_paths(X509_STORE *ctx); +int X509_STORE_load_file(X509_STORE *xs, const char *file); +int X509_STORE_load_path(X509_STORE *xs, const char *path); +int X509_STORE_load_store(X509_STORE *xs, const char *store); +int X509_STORE_load_locations(X509_STORE *s, const char *file, const char *dir); +int X509_STORE_set_default_paths(X509_STORE *xs); -int X509_STORE_load_file_ex(X509_STORE *ctx, const char *file, +int X509_STORE_load_file_ex(X509_STORE *xs, const char *file, OSSL_LIB_CTX *libctx, const char *propq); -int X509_STORE_load_store_ex(X509_STORE *ctx, const char *store, +int X509_STORE_load_store_ex(X509_STORE *xs, const char *store, OSSL_LIB_CTX *libctx, const char *propq); -int X509_STORE_load_locations_ex(X509_STORE *ctx, const char *file, - const char *dir, OSSL_LIB_CTX *libctx, - const char *propq); -int X509_STORE_set_default_paths_ex(X509_STORE *ctx, OSSL_LIB_CTX *libctx, - const char *propq); +int X509_STORE_load_locations_ex(X509_STORE *xs, + const char *file, const char *dir, + OSSL_LIB_CTX *libctx, const char *propq); +int X509_STORE_set_default_paths_ex(X509_STORE *xs, + OSSL_LIB_CTX *libctx, const char *propq); #define X509_STORE_CTX_get_ex_new_index(l, p, newf, dupf, freef) \ CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_X509_STORE_CTX, l, p, newf, dupf, freef) @@ -764,6 +769,7 @@ X509_STORE_CTX *X509_STORE_CTX_get0_parent_ctx(const X509_STORE_CTX *ctx); STACK_OF(X509) *X509_STORE_CTX_get0_chain(const X509_STORE_CTX *ctx); STACK_OF(X509) *X509_STORE_CTX_get1_chain(const X509_STORE_CTX *ctx); void X509_STORE_CTX_set_cert(X509_STORE_CTX *ctx, X509 *target); +void X509_STORE_CTX_set0_rpk(X509_STORE_CTX *ctx, EVP_PKEY *target); void X509_STORE_CTX_set0_verified_chain(X509_STORE_CTX *c, STACK_OF(X509) *sk); void X509_STORE_CTX_set0_crls(X509_STORE_CTX *ctx, STACK_OF(X509_CRL) *sk); int X509_STORE_CTX_set_purpose(X509_STORE_CTX *ctx, int purpose); @@ -773,6 +779,8 @@ int X509_STORE_CTX_purpose_inherit(X509_STORE_CTX *ctx, int def_purpose, void X509_STORE_CTX_set_flags(X509_STORE_CTX *ctx, unsigned long flags); void X509_STORE_CTX_set_time(X509_STORE_CTX *ctx, unsigned long flags, time_t t); +void X509_STORE_CTX_set_current_reasons(X509_STORE_CTX *ctx, + unsigned int current_reasons); X509_POLICY_TREE *X509_STORE_CTX_get0_policy_tree(const X509_STORE_CTX *ctx); int X509_STORE_CTX_get_explicit_policy(const X509_STORE_CTX *ctx); @@ -804,6 +812,7 @@ int X509_VERIFY_PARAM_clear_flags(X509_VERIFY_PARAM *param, unsigned long flags); unsigned long X509_VERIFY_PARAM_get_flags(const X509_VERIFY_PARAM *param); int X509_VERIFY_PARAM_set_purpose(X509_VERIFY_PARAM *param, int purpose); +int X509_VERIFY_PARAM_get_purpose(const X509_VERIFY_PARAM *param); int X509_VERIFY_PARAM_set_trust(X509_VERIFY_PARAM *param, int trust); void X509_VERIFY_PARAM_set_depth(X509_VERIFY_PARAM *param, int depth); void X509_VERIFY_PARAM_set_auth_level(X509_VERIFY_PARAM *param, int auth_level); diff --git a/deps/openssl/config/archs/VC-WIN64-ARM/no-asm/include/openssl/x509v3.h b/deps/openssl/config/archs/VC-WIN64-ARM/no-asm/include/openssl/x509v3.h index ed08a546f9813d..362ce3fb4387f7 100644 --- a/deps/openssl/config/archs/VC-WIN64-ARM/no-asm/include/openssl/x509v3.h +++ b/deps/openssl/config/archs/VC-WIN64-ARM/no-asm/include/openssl/x509v3.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by makefile from include/openssl/x509v3.h.in * - * Copyright 1999-2023 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1999-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -25,6 +25,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -146,6 +149,11 @@ typedef struct BASIC_CONSTRAINTS_st { ASN1_INTEGER *pathlen; } BASIC_CONSTRAINTS; +typedef struct OSSL_BASIC_ATTR_CONSTRAINTS_st { + int authority; + ASN1_INTEGER *pathlen; +} OSSL_BASIC_ATTR_CONSTRAINTS; + typedef struct PKEY_USAGE_PERIOD_st { ASN1_GENERALIZEDTIME *notBefore; ASN1_GENERALIZEDTIME *notAfter; @@ -198,6 +206,8 @@ typedef struct ACCESS_DESCRIPTION_st { GENERAL_NAME *location; } ACCESS_DESCRIPTION; +int GENERAL_NAME_set1_X509_NAME(GENERAL_NAME **tgt, const X509_NAME *src); + SKM_DEFINE_STACK_OF_INTERNAL(ACCESS_DESCRIPTION, ACCESS_DESCRIPTION, ACCESS_DESCRIPTION) #define sk_ACCESS_DESCRIPTION_num(sk) OPENSSL_sk_num(ossl_check_const_ACCESS_DESCRIPTION_sk_type(sk)) #define sk_ACCESS_DESCRIPTION_value(sk, idx) ((ACCESS_DESCRIPTION *)OPENSSL_sk_value(ossl_check_const_ACCESS_DESCRIPTION_sk_type(sk), (idx))) @@ -294,6 +304,7 @@ typedef struct DIST_POINT_NAME_st { /* If relativename then this contains the full distribution point name */ X509_NAME *dpname; } DIST_POINT_NAME; +DECLARE_ASN1_DUP_FUNCTION(DIST_POINT_NAME) /* All existing reasons */ # define CRLDP_ALL_REASONS 0x807f @@ -659,15 +670,16 @@ struct ISSUING_DIST_POINT_st { # define EXFLAG_SAN_CRITICAL 0x80000 # define EXFLAG_NO_FINGERPRINT 0x100000 -# define KU_DIGITAL_SIGNATURE 0x0080 -# define KU_NON_REPUDIATION 0x0040 -# define KU_KEY_ENCIPHERMENT 0x0020 -# define KU_DATA_ENCIPHERMENT 0x0010 -# define KU_KEY_AGREEMENT 0x0008 -# define KU_KEY_CERT_SIGN 0x0004 -# define KU_CRL_SIGN 0x0002 -# define KU_ENCIPHER_ONLY 0x0001 -# define KU_DECIPHER_ONLY 0x8000 +/* https://datatracker.ietf.org/doc/html/rfc5280#section-4.2.1.3 */ +# define KU_DIGITAL_SIGNATURE X509v3_KU_DIGITAL_SIGNATURE +# define KU_NON_REPUDIATION X509v3_KU_NON_REPUDIATION +# define KU_KEY_ENCIPHERMENT X509v3_KU_KEY_ENCIPHERMENT +# define KU_DATA_ENCIPHERMENT X509v3_KU_DATA_ENCIPHERMENT +# define KU_KEY_AGREEMENT X509v3_KU_KEY_AGREEMENT +# define KU_KEY_CERT_SIGN X509v3_KU_KEY_CERT_SIGN +# define KU_CRL_SIGN X509v3_KU_CRL_SIGN +# define KU_ENCIPHER_ONLY X509v3_KU_ENCIPHER_ONLY +# define KU_DECIPHER_ONLY X509v3_KU_DECIPHER_ONLY # define NS_SSL_CLIENT 0x80 # define NS_SSL_SERVER 0x40 @@ -729,7 +741,7 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_PURPOSE, X509_PURPOSE, X509_PURPOSE) #define sk_X509_PURPOSE_set_cmp_func(sk, cmp) ((sk_X509_PURPOSE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_X509_PURPOSE_sk_type(sk), ossl_check_X509_PURPOSE_compfunc_type(cmp))) - +# define X509_PURPOSE_DEFAULT_ANY 0 # define X509_PURPOSE_SSL_CLIENT 1 # define X509_PURPOSE_SSL_SERVER 2 # define X509_PURPOSE_NS_SSL_SERVER 3 @@ -739,9 +751,10 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_PURPOSE, X509_PURPOSE, X509_PURPOSE) # define X509_PURPOSE_ANY 7 # define X509_PURPOSE_OCSP_HELPER 8 # define X509_PURPOSE_TIMESTAMP_SIGN 9 +# define X509_PURPOSE_CODE_SIGN 10 # define X509_PURPOSE_MIN 1 -# define X509_PURPOSE_MAX 9 +# define X509_PURPOSE_MAX 10 /* Flags for X509V3_EXT_print() */ @@ -767,6 +780,7 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_PURPOSE, X509_PURPOSE, X509_PURPOSE) # define X509V3_ADD_SILENT 0x10 DECLARE_ASN1_FUNCTIONS(BASIC_CONSTRAINTS) +DECLARE_ASN1_FUNCTIONS(OSSL_BASIC_ATTR_CONSTRAINTS) DECLARE_ASN1_FUNCTIONS(SXNET) DECLARE_ASN1_FUNCTIONS(SXNETID) @@ -976,7 +990,6 @@ int X509V3_extensions_print(BIO *out, const char *title, int X509_check_ca(X509 *x); int X509_check_purpose(X509 *x, int id, int ca); int X509_supported_extension(X509_EXTENSION *ex); -int X509_PURPOSE_set(int *p, int purpose); int X509_check_issued(X509 *issuer, X509 *subject); int X509_check_akid(const X509 *issuer, const AUTHORITY_KEYID *akid); void X509_set_proxy_flag(X509 *x); @@ -992,22 +1005,26 @@ const GENERAL_NAMES *X509_get0_authority_issuer(X509 *x); const ASN1_INTEGER *X509_get0_authority_serial(X509 *x); int X509_PURPOSE_get_count(void); -X509_PURPOSE *X509_PURPOSE_get0(int idx); +int X509_PURPOSE_get_unused_id(OSSL_LIB_CTX *libctx); int X509_PURPOSE_get_by_sname(const char *sname); int X509_PURPOSE_get_by_id(int id); int X509_PURPOSE_add(int id, int trust, int flags, int (*ck) (const X509_PURPOSE *, const X509 *, int), const char *name, const char *sname, void *arg); +void X509_PURPOSE_cleanup(void); + +X509_PURPOSE *X509_PURPOSE_get0(int idx); +int X509_PURPOSE_get_id(const X509_PURPOSE *); char *X509_PURPOSE_get0_name(const X509_PURPOSE *xp); char *X509_PURPOSE_get0_sname(const X509_PURPOSE *xp); int X509_PURPOSE_get_trust(const X509_PURPOSE *xp); -void X509_PURPOSE_cleanup(void); -int X509_PURPOSE_get_id(const X509_PURPOSE *); +int X509_PURPOSE_set(int *p, int purpose); STACK_OF(OPENSSL_STRING) *X509_get1_email(X509 *x); STACK_OF(OPENSSL_STRING) *X509_REQ_get1_email(X509_REQ *x); void X509_email_free(STACK_OF(OPENSSL_STRING) *sk); STACK_OF(OPENSSL_STRING) *X509_get1_ocsp(X509 *x); + /* Flags for X509_check_* functions */ /* @@ -1444,6 +1461,507 @@ const ASN1_PRINTABLESTRING *PROFESSION_INFO_get0_registrationNumber( void PROFESSION_INFO_set0_registrationNumber( PROFESSION_INFO *pi, ASN1_PRINTABLESTRING *rn); +int OSSL_GENERAL_NAMES_print(BIO *out, GENERAL_NAMES *gens, int indent); + +typedef STACK_OF(X509_ATTRIBUTE) OSSL_ATTRIBUTES_SYNTAX; +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTES_SYNTAX) + +typedef STACK_OF(USERNOTICE) OSSL_USER_NOTICE_SYNTAX; +DECLARE_ASN1_FUNCTIONS(OSSL_USER_NOTICE_SYNTAX) + +SKM_DEFINE_STACK_OF_INTERNAL(USERNOTICE, USERNOTICE, USERNOTICE) +#define sk_USERNOTICE_num(sk) OPENSSL_sk_num(ossl_check_const_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_value(sk, idx) ((USERNOTICE *)OPENSSL_sk_value(ossl_check_const_USERNOTICE_sk_type(sk), (idx))) +#define sk_USERNOTICE_new(cmp) ((STACK_OF(USERNOTICE) *)OPENSSL_sk_new(ossl_check_USERNOTICE_compfunc_type(cmp))) +#define sk_USERNOTICE_new_null() ((STACK_OF(USERNOTICE) *)OPENSSL_sk_new_null()) +#define sk_USERNOTICE_new_reserve(cmp, n) ((STACK_OF(USERNOTICE) *)OPENSSL_sk_new_reserve(ossl_check_USERNOTICE_compfunc_type(cmp), (n))) +#define sk_USERNOTICE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_USERNOTICE_sk_type(sk), (n)) +#define sk_USERNOTICE_free(sk) OPENSSL_sk_free(ossl_check_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_zero(sk) OPENSSL_sk_zero(ossl_check_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_delete(sk, i) ((USERNOTICE *)OPENSSL_sk_delete(ossl_check_USERNOTICE_sk_type(sk), (i))) +#define sk_USERNOTICE_delete_ptr(sk, ptr) ((USERNOTICE *)OPENSSL_sk_delete_ptr(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr))) +#define sk_USERNOTICE_push(sk, ptr) OPENSSL_sk_push(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr)) +#define sk_USERNOTICE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr)) +#define sk_USERNOTICE_pop(sk) ((USERNOTICE *)OPENSSL_sk_pop(ossl_check_USERNOTICE_sk_type(sk))) +#define sk_USERNOTICE_shift(sk) ((USERNOTICE *)OPENSSL_sk_shift(ossl_check_USERNOTICE_sk_type(sk))) +#define sk_USERNOTICE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_USERNOTICE_sk_type(sk),ossl_check_USERNOTICE_freefunc_type(freefunc)) +#define sk_USERNOTICE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr), (idx)) +#define sk_USERNOTICE_set(sk, idx, ptr) ((USERNOTICE *)OPENSSL_sk_set(ossl_check_USERNOTICE_sk_type(sk), (idx), ossl_check_USERNOTICE_type(ptr))) +#define sk_USERNOTICE_find(sk, ptr) OPENSSL_sk_find(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr)) +#define sk_USERNOTICE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr)) +#define sk_USERNOTICE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr), pnum) +#define sk_USERNOTICE_sort(sk) OPENSSL_sk_sort(ossl_check_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_dup(sk) ((STACK_OF(USERNOTICE) *)OPENSSL_sk_dup(ossl_check_const_USERNOTICE_sk_type(sk))) +#define sk_USERNOTICE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(USERNOTICE) *)OPENSSL_sk_deep_copy(ossl_check_const_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_copyfunc_type(copyfunc), ossl_check_USERNOTICE_freefunc_type(freefunc))) +#define sk_USERNOTICE_set_cmp_func(sk, cmp) ((sk_USERNOTICE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_compfunc_type(cmp))) + + +typedef struct OSSL_ROLE_SPEC_CERT_ID_st { + GENERAL_NAME *roleName; + GENERAL_NAME *roleCertIssuer; + ASN1_INTEGER *roleCertSerialNumber; + GENERAL_NAMES *roleCertLocator; +} OSSL_ROLE_SPEC_CERT_ID; + +DECLARE_ASN1_FUNCTIONS(OSSL_ROLE_SPEC_CERT_ID) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ROLE_SPEC_CERT_ID, OSSL_ROLE_SPEC_CERT_ID, OSSL_ROLE_SPEC_CERT_ID) +#define sk_OSSL_ROLE_SPEC_CERT_ID_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_value(sk, idx) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_value(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), (idx))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_new(cmp) ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_new(ossl_check_OSSL_ROLE_SPEC_CERT_ID_compfunc_type(cmp))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_new_null() ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ROLE_SPEC_CERT_ID_new_reserve(cmp, n) ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ROLE_SPEC_CERT_ID_compfunc_type(cmp), (n))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), (n)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_delete(sk, i) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_delete(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), (i))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_delete_ptr(sk, ptr) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_pop(sk) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_pop(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_shift(sk) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_shift(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk),ossl_check_OSSL_ROLE_SPEC_CERT_ID_freefunc_type(freefunc)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr), (idx)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_set(sk, idx, ptr) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_set(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), (idx), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr), pnum) +#define sk_OSSL_ROLE_SPEC_CERT_ID_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_dup(sk) ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_copyfunc_type(copyfunc), ossl_check_OSSL_ROLE_SPEC_CERT_ID_freefunc_type(freefunc))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_set_cmp_func(sk, cmp) ((sk_OSSL_ROLE_SPEC_CERT_ID_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_compfunc_type(cmp))) + + +typedef STACK_OF(OSSL_ROLE_SPEC_CERT_ID) OSSL_ROLE_SPEC_CERT_ID_SYNTAX; + +DECLARE_ASN1_FUNCTIONS(OSSL_ROLE_SPEC_CERT_ID_SYNTAX) +typedef struct OSSL_HASH_st { + X509_ALGOR *algorithmIdentifier; + ASN1_BIT_STRING *hashValue; +} OSSL_HASH; + +typedef struct OSSL_INFO_SYNTAX_POINTER_st { + GENERAL_NAMES *name; + OSSL_HASH *hash; +} OSSL_INFO_SYNTAX_POINTER; + +# define OSSL_INFO_SYNTAX_TYPE_CONTENT 0 +# define OSSL_INFO_SYNTAX_TYPE_POINTER 1 + +typedef struct OSSL_INFO_SYNTAX_st { + int type; + union { + ASN1_STRING *content; + OSSL_INFO_SYNTAX_POINTER *pointer; + } choice; +} OSSL_INFO_SYNTAX; + +typedef struct OSSL_PRIVILEGE_POLICY_ID_st { + ASN1_OBJECT *privilegePolicy; + OSSL_INFO_SYNTAX *privPolSyntax; +} OSSL_PRIVILEGE_POLICY_ID; + +typedef struct OSSL_ATTRIBUTE_DESCRIPTOR_st { + ASN1_OBJECT *identifier; + ASN1_STRING *attributeSyntax; + ASN1_UTF8STRING *name; + ASN1_UTF8STRING *description; + OSSL_PRIVILEGE_POLICY_ID *dominationRule; +} OSSL_ATTRIBUTE_DESCRIPTOR; + +DECLARE_ASN1_FUNCTIONS(OSSL_HASH) +DECLARE_ASN1_FUNCTIONS(OSSL_INFO_SYNTAX) +DECLARE_ASN1_FUNCTIONS(OSSL_INFO_SYNTAX_POINTER) +DECLARE_ASN1_FUNCTIONS(OSSL_PRIVILEGE_POLICY_ID) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_DESCRIPTOR) + +typedef struct OSSL_TIME_SPEC_ABSOLUTE_st { + ASN1_GENERALIZEDTIME *startTime; + ASN1_GENERALIZEDTIME *endTime; +} OSSL_TIME_SPEC_ABSOLUTE; + +typedef struct OSSL_DAY_TIME_st { + ASN1_INTEGER *hour; + ASN1_INTEGER *minute; + ASN1_INTEGER *second; +} OSSL_DAY_TIME; + +typedef struct OSSL_DAY_TIME_BAND_st { + OSSL_DAY_TIME *startDayTime; + OSSL_DAY_TIME *endDayTime; +} OSSL_DAY_TIME_BAND; + +# define OSSL_NAMED_DAY_TYPE_INT 0 +# define OSSL_NAMED_DAY_TYPE_BIT 1 +# define OSSL_NAMED_DAY_INT_SUN 1 +# define OSSL_NAMED_DAY_INT_MON 2 +# define OSSL_NAMED_DAY_INT_TUE 3 +# define OSSL_NAMED_DAY_INT_WED 4 +# define OSSL_NAMED_DAY_INT_THU 5 +# define OSSL_NAMED_DAY_INT_FRI 6 +# define OSSL_NAMED_DAY_INT_SAT 7 +# define OSSL_NAMED_DAY_BIT_SUN 0 +# define OSSL_NAMED_DAY_BIT_MON 1 +# define OSSL_NAMED_DAY_BIT_TUE 2 +# define OSSL_NAMED_DAY_BIT_WED 3 +# define OSSL_NAMED_DAY_BIT_THU 4 +# define OSSL_NAMED_DAY_BIT_FRI 5 +# define OSSL_NAMED_DAY_BIT_SAT 6 + +typedef struct OSSL_NAMED_DAY_st { + int type; + union { + ASN1_INTEGER *intNamedDays; + ASN1_BIT_STRING *bitNamedDays; + } choice; +} OSSL_NAMED_DAY; + +# define OSSL_TIME_SPEC_X_DAY_OF_FIRST 0 +# define OSSL_TIME_SPEC_X_DAY_OF_SECOND 1 +# define OSSL_TIME_SPEC_X_DAY_OF_THIRD 2 +# define OSSL_TIME_SPEC_X_DAY_OF_FOURTH 3 +# define OSSL_TIME_SPEC_X_DAY_OF_FIFTH 4 + +typedef struct OSSL_TIME_SPEC_X_DAY_OF_st { + int type; + union { + OSSL_NAMED_DAY *first; + OSSL_NAMED_DAY *second; + OSSL_NAMED_DAY *third; + OSSL_NAMED_DAY *fourth; + OSSL_NAMED_DAY *fifth; + } choice; +} OSSL_TIME_SPEC_X_DAY_OF; + +# define OSSL_TIME_SPEC_DAY_TYPE_INT 0 +# define OSSL_TIME_SPEC_DAY_TYPE_BIT 1 +# define OSSL_TIME_SPEC_DAY_TYPE_DAY_OF 2 +# define OSSL_TIME_SPEC_DAY_BIT_SUN 0 +# define OSSL_TIME_SPEC_DAY_BIT_MON 1 +# define OSSL_TIME_SPEC_DAY_BIT_TUE 2 +# define OSSL_TIME_SPEC_DAY_BIT_WED 3 +# define OSSL_TIME_SPEC_DAY_BIT_THU 4 +# define OSSL_TIME_SPEC_DAY_BIT_FRI 5 +# define OSSL_TIME_SPEC_DAY_BIT_SAT 6 +# define OSSL_TIME_SPEC_DAY_INT_SUN 1 +# define OSSL_TIME_SPEC_DAY_INT_MON 2 +# define OSSL_TIME_SPEC_DAY_INT_TUE 3 +# define OSSL_TIME_SPEC_DAY_INT_WED 4 +# define OSSL_TIME_SPEC_DAY_INT_THU 5 +# define OSSL_TIME_SPEC_DAY_INT_FRI 6 +# define OSSL_TIME_SPEC_DAY_INT_SAT 7 + +typedef struct OSSL_TIME_SPEC_DAY_st { + int type; + union { + STACK_OF(ASN1_INTEGER) *intDay; + ASN1_BIT_STRING *bitDay; + OSSL_TIME_SPEC_X_DAY_OF *dayOf; + } choice; +} OSSL_TIME_SPEC_DAY; + +# define OSSL_TIME_SPEC_WEEKS_TYPE_ALL 0 +# define OSSL_TIME_SPEC_WEEKS_TYPE_INT 1 +# define OSSL_TIME_SPEC_WEEKS_TYPE_BIT 2 +# define OSSL_TIME_SPEC_BIT_WEEKS_1 0 +# define OSSL_TIME_SPEC_BIT_WEEKS_2 1 +# define OSSL_TIME_SPEC_BIT_WEEKS_3 2 +# define OSSL_TIME_SPEC_BIT_WEEKS_4 3 +# define OSSL_TIME_SPEC_BIT_WEEKS_5 4 + +typedef struct OSSL_TIME_SPEC_WEEKS_st { + int type; + union { + ASN1_NULL *allWeeks; + STACK_OF(ASN1_INTEGER) *intWeek; + ASN1_BIT_STRING *bitWeek; + } choice; +} OSSL_TIME_SPEC_WEEKS; + +# define OSSL_TIME_SPEC_MONTH_TYPE_ALL 0 +# define OSSL_TIME_SPEC_MONTH_TYPE_INT 1 +# define OSSL_TIME_SPEC_MONTH_TYPE_BIT 2 +# define OSSL_TIME_SPEC_INT_MONTH_JAN 1 +# define OSSL_TIME_SPEC_INT_MONTH_FEB 2 +# define OSSL_TIME_SPEC_INT_MONTH_MAR 3 +# define OSSL_TIME_SPEC_INT_MONTH_APR 4 +# define OSSL_TIME_SPEC_INT_MONTH_MAY 5 +# define OSSL_TIME_SPEC_INT_MONTH_JUN 6 +# define OSSL_TIME_SPEC_INT_MONTH_JUL 7 +# define OSSL_TIME_SPEC_INT_MONTH_AUG 8 +# define OSSL_TIME_SPEC_INT_MONTH_SEP 9 +# define OSSL_TIME_SPEC_INT_MONTH_OCT 10 +# define OSSL_TIME_SPEC_INT_MONTH_NOV 11 +# define OSSL_TIME_SPEC_INT_MONTH_DEC 12 +# define OSSL_TIME_SPEC_BIT_MONTH_JAN 0 +# define OSSL_TIME_SPEC_BIT_MONTH_FEB 1 +# define OSSL_TIME_SPEC_BIT_MONTH_MAR 2 +# define OSSL_TIME_SPEC_BIT_MONTH_APR 3 +# define OSSL_TIME_SPEC_BIT_MONTH_MAY 4 +# define OSSL_TIME_SPEC_BIT_MONTH_JUN 5 +# define OSSL_TIME_SPEC_BIT_MONTH_JUL 6 +# define OSSL_TIME_SPEC_BIT_MONTH_AUG 7 +# define OSSL_TIME_SPEC_BIT_MONTH_SEP 8 +# define OSSL_TIME_SPEC_BIT_MONTH_OCT 9 +# define OSSL_TIME_SPEC_BIT_MONTH_NOV 10 +# define OSSL_TIME_SPEC_BIT_MONTH_DEC 11 + +typedef struct OSSL_TIME_SPEC_MONTH_st { + int type; + union { + ASN1_NULL *allMonths; + STACK_OF(ASN1_INTEGER) *intMonth; + ASN1_BIT_STRING *bitMonth; + } choice; +} OSSL_TIME_SPEC_MONTH; + +typedef struct OSSL_TIME_PERIOD_st { + STACK_OF(OSSL_DAY_TIME_BAND) *timesOfDay; + OSSL_TIME_SPEC_DAY *days; + OSSL_TIME_SPEC_WEEKS *weeks; + OSSL_TIME_SPEC_MONTH *months; + STACK_OF(ASN1_INTEGER) *years; +} OSSL_TIME_PERIOD; + +# define OSSL_TIME_SPEC_TIME_TYPE_ABSOLUTE 0 +# define OSSL_TIME_SPEC_TIME_TYPE_PERIODIC 1 + +typedef struct OSSL_TIME_SPEC_TIME_st { + int type; + union { + OSSL_TIME_SPEC_ABSOLUTE *absolute; + STACK_OF(OSSL_TIME_PERIOD) *periodic; + } choice; +} OSSL_TIME_SPEC_TIME; + +typedef struct OSSL_TIME_SPEC_st { + OSSL_TIME_SPEC_TIME *time; + ASN1_BOOLEAN notThisTime; + ASN1_INTEGER *timeZone; +} OSSL_TIME_SPEC; + +DECLARE_ASN1_FUNCTIONS(OSSL_DAY_TIME) +DECLARE_ASN1_FUNCTIONS(OSSL_DAY_TIME_BAND) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_DAY) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_WEEKS) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_MONTH) +DECLARE_ASN1_FUNCTIONS(OSSL_NAMED_DAY) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_X_DAY_OF) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_ABSOLUTE) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_TIME) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_PERIOD) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_TIME_PERIOD, OSSL_TIME_PERIOD, OSSL_TIME_PERIOD) +#define sk_OSSL_TIME_PERIOD_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_value(sk, idx) ((OSSL_TIME_PERIOD *)OPENSSL_sk_value(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk), (idx))) +#define sk_OSSL_TIME_PERIOD_new(cmp) ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_new(ossl_check_OSSL_TIME_PERIOD_compfunc_type(cmp))) +#define sk_OSSL_TIME_PERIOD_new_null() ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_new_null()) +#define sk_OSSL_TIME_PERIOD_new_reserve(cmp, n) ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_TIME_PERIOD_compfunc_type(cmp), (n))) +#define sk_OSSL_TIME_PERIOD_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), (n)) +#define sk_OSSL_TIME_PERIOD_free(sk) OPENSSL_sk_free(ossl_check_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_delete(sk, i) ((OSSL_TIME_PERIOD *)OPENSSL_sk_delete(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), (i))) +#define sk_OSSL_TIME_PERIOD_delete_ptr(sk, ptr) ((OSSL_TIME_PERIOD *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr))) +#define sk_OSSL_TIME_PERIOD_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr)) +#define sk_OSSL_TIME_PERIOD_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr)) +#define sk_OSSL_TIME_PERIOD_pop(sk) ((OSSL_TIME_PERIOD *)OPENSSL_sk_pop(ossl_check_OSSL_TIME_PERIOD_sk_type(sk))) +#define sk_OSSL_TIME_PERIOD_shift(sk) ((OSSL_TIME_PERIOD *)OPENSSL_sk_shift(ossl_check_OSSL_TIME_PERIOD_sk_type(sk))) +#define sk_OSSL_TIME_PERIOD_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_TIME_PERIOD_sk_type(sk),ossl_check_OSSL_TIME_PERIOD_freefunc_type(freefunc)) +#define sk_OSSL_TIME_PERIOD_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr), (idx)) +#define sk_OSSL_TIME_PERIOD_set(sk, idx, ptr) ((OSSL_TIME_PERIOD *)OPENSSL_sk_set(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), (idx), ossl_check_OSSL_TIME_PERIOD_type(ptr))) +#define sk_OSSL_TIME_PERIOD_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr)) +#define sk_OSSL_TIME_PERIOD_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr)) +#define sk_OSSL_TIME_PERIOD_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr), pnum) +#define sk_OSSL_TIME_PERIOD_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_dup(sk) ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_dup(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk))) +#define sk_OSSL_TIME_PERIOD_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_copyfunc_type(copyfunc), ossl_check_OSSL_TIME_PERIOD_freefunc_type(freefunc))) +#define sk_OSSL_TIME_PERIOD_set_cmp_func(sk, cmp) ((sk_OSSL_TIME_PERIOD_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_compfunc_type(cmp))) + + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_DAY_TIME_BAND, OSSL_DAY_TIME_BAND, OSSL_DAY_TIME_BAND) +#define sk_OSSL_DAY_TIME_BAND_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_value(sk, idx) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_value(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk), (idx))) +#define sk_OSSL_DAY_TIME_BAND_new(cmp) ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_new(ossl_check_OSSL_DAY_TIME_BAND_compfunc_type(cmp))) +#define sk_OSSL_DAY_TIME_BAND_new_null() ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_new_null()) +#define sk_OSSL_DAY_TIME_BAND_new_reserve(cmp, n) ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_DAY_TIME_BAND_compfunc_type(cmp), (n))) +#define sk_OSSL_DAY_TIME_BAND_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), (n)) +#define sk_OSSL_DAY_TIME_BAND_free(sk) OPENSSL_sk_free(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_delete(sk, i) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_delete(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), (i))) +#define sk_OSSL_DAY_TIME_BAND_delete_ptr(sk, ptr) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr))) +#define sk_OSSL_DAY_TIME_BAND_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr)) +#define sk_OSSL_DAY_TIME_BAND_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr)) +#define sk_OSSL_DAY_TIME_BAND_pop(sk) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_pop(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk))) +#define sk_OSSL_DAY_TIME_BAND_shift(sk) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_shift(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk))) +#define sk_OSSL_DAY_TIME_BAND_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk),ossl_check_OSSL_DAY_TIME_BAND_freefunc_type(freefunc)) +#define sk_OSSL_DAY_TIME_BAND_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr), (idx)) +#define sk_OSSL_DAY_TIME_BAND_set(sk, idx, ptr) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_set(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), (idx), ossl_check_OSSL_DAY_TIME_BAND_type(ptr))) +#define sk_OSSL_DAY_TIME_BAND_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr)) +#define sk_OSSL_DAY_TIME_BAND_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr)) +#define sk_OSSL_DAY_TIME_BAND_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr), pnum) +#define sk_OSSL_DAY_TIME_BAND_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_dup(sk) ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_dup(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk))) +#define sk_OSSL_DAY_TIME_BAND_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_copyfunc_type(copyfunc), ossl_check_OSSL_DAY_TIME_BAND_freefunc_type(freefunc))) +#define sk_OSSL_DAY_TIME_BAND_set_cmp_func(sk, cmp) ((sk_OSSL_DAY_TIME_BAND_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_compfunc_type(cmp))) + + +/* Attribute Type and Value */ +typedef struct atav_st { + ASN1_OBJECT *type; + ASN1_TYPE *value; +} OSSL_ATAV; + +typedef struct ATTRIBUTE_TYPE_MAPPING_st { + ASN1_OBJECT *local; + ASN1_OBJECT *remote; +} OSSL_ATTRIBUTE_TYPE_MAPPING; + +typedef struct ATTRIBUTE_VALUE_MAPPING_st { + OSSL_ATAV *local; + OSSL_ATAV *remote; +} OSSL_ATTRIBUTE_VALUE_MAPPING; + +# define OSSL_ATTR_MAP_TYPE 0 +# define OSSL_ATTR_MAP_VALUE 1 + +typedef struct ATTRIBUTE_MAPPING_st { + int type; + union { + OSSL_ATTRIBUTE_TYPE_MAPPING *typeMappings; + OSSL_ATTRIBUTE_VALUE_MAPPING *typeValueMappings; + } choice; +} OSSL_ATTRIBUTE_MAPPING; + +typedef STACK_OF(OSSL_ATTRIBUTE_MAPPING) OSSL_ATTRIBUTE_MAPPINGS; +DECLARE_ASN1_FUNCTIONS(OSSL_ATAV) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_TYPE_MAPPING) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_VALUE_MAPPING) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_MAPPING) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_MAPPINGS) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ATTRIBUTE_MAPPING, OSSL_ATTRIBUTE_MAPPING, OSSL_ATTRIBUTE_MAPPING) +#define sk_OSSL_ATTRIBUTE_MAPPING_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_value(sk, idx) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_value(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), (idx))) +#define sk_OSSL_ATTRIBUTE_MAPPING_new(cmp) ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_new(ossl_check_OSSL_ATTRIBUTE_MAPPING_compfunc_type(cmp))) +#define sk_OSSL_ATTRIBUTE_MAPPING_new_null() ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ATTRIBUTE_MAPPING_new_reserve(cmp, n) ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ATTRIBUTE_MAPPING_compfunc_type(cmp), (n))) +#define sk_OSSL_ATTRIBUTE_MAPPING_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), (n)) +#define sk_OSSL_ATTRIBUTE_MAPPING_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_delete(sk, i) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_delete(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), (i))) +#define sk_OSSL_ATTRIBUTE_MAPPING_delete_ptr(sk, ptr) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr))) +#define sk_OSSL_ATTRIBUTE_MAPPING_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr)) +#define sk_OSSL_ATTRIBUTE_MAPPING_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr)) +#define sk_OSSL_ATTRIBUTE_MAPPING_pop(sk) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_pop(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk))) +#define sk_OSSL_ATTRIBUTE_MAPPING_shift(sk) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_shift(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk))) +#define sk_OSSL_ATTRIBUTE_MAPPING_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk),ossl_check_OSSL_ATTRIBUTE_MAPPING_freefunc_type(freefunc)) +#define sk_OSSL_ATTRIBUTE_MAPPING_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr), (idx)) +#define sk_OSSL_ATTRIBUTE_MAPPING_set(sk, idx, ptr) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_set(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), (idx), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr))) +#define sk_OSSL_ATTRIBUTE_MAPPING_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr)) +#define sk_OSSL_ATTRIBUTE_MAPPING_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr)) +#define sk_OSSL_ATTRIBUTE_MAPPING_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr), pnum) +#define sk_OSSL_ATTRIBUTE_MAPPING_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_dup(sk) ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk))) +#define sk_OSSL_ATTRIBUTE_MAPPING_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_copyfunc_type(copyfunc), ossl_check_OSSL_ATTRIBUTE_MAPPING_freefunc_type(freefunc))) +#define sk_OSSL_ATTRIBUTE_MAPPING_set_cmp_func(sk, cmp) ((sk_OSSL_ATTRIBUTE_MAPPING_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_compfunc_type(cmp))) + + +# define OSSL_AAA_ATTRIBUTE_TYPE 0 +# define OSSL_AAA_ATTRIBUTE_VALUES 1 + +typedef struct ALLOWED_ATTRIBUTES_CHOICE_st { + int type; + union { + ASN1_OBJECT *attributeType; + X509_ATTRIBUTE *attributeTypeandValues; + } choice; +} OSSL_ALLOWED_ATTRIBUTES_CHOICE; + +typedef struct ALLOWED_ATTRIBUTES_ITEM_st { + STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *attributes; + GENERAL_NAME *holderDomain; +} OSSL_ALLOWED_ATTRIBUTES_ITEM; + +typedef STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) OSSL_ALLOWED_ATTRIBUTES_SYNTAX; + +DECLARE_ASN1_FUNCTIONS(OSSL_ALLOWED_ATTRIBUTES_CHOICE) +DECLARE_ASN1_FUNCTIONS(OSSL_ALLOWED_ATTRIBUTES_ITEM) +DECLARE_ASN1_FUNCTIONS(OSSL_ALLOWED_ATTRIBUTES_SYNTAX) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ALLOWED_ATTRIBUTES_CHOICE, OSSL_ALLOWED_ATTRIBUTES_CHOICE, OSSL_ALLOWED_ATTRIBUTES_CHOICE) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_value(sk, idx) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_value(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), (idx))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_new(cmp) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_new(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_compfunc_type(cmp))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_new_null() ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_new_reserve(cmp, n) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_compfunc_type(cmp), (n))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), (n)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_delete(sk, i) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_delete(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), (i))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_delete_ptr(sk, ptr) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_pop(sk) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_pop(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_shift(sk) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_shift(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk),ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_freefunc_type(freefunc)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr), (idx)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_set(sk, idx, ptr) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_set(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), (idx), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr), pnum) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_dup(sk) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_copyfunc_type(copyfunc), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_freefunc_type(freefunc))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_set_cmp_func(sk, cmp) ((sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_compfunc_type(cmp))) + + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ALLOWED_ATTRIBUTES_ITEM, OSSL_ALLOWED_ATTRIBUTES_ITEM, OSSL_ALLOWED_ATTRIBUTES_ITEM) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_value(sk, idx) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_value(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), (idx))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_new(cmp) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_new(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_compfunc_type(cmp))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_new_null() ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_new_reserve(cmp, n) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_compfunc_type(cmp), (n))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), (n)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_delete(sk, i) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_delete(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), (i))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_delete_ptr(sk, ptr) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_pop(sk) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_pop(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_shift(sk) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_shift(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk),ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_freefunc_type(freefunc)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr), (idx)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_set(sk, idx, ptr) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_set(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), (idx), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr), pnum) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_dup(sk) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_copyfunc_type(copyfunc), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_freefunc_type(freefunc))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_set_cmp_func(sk, cmp) ((sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_compfunc_type(cmp))) + + +typedef struct AA_DIST_POINT_st { + DIST_POINT_NAME *distpoint; + ASN1_BIT_STRING *reasons; + int dp_reasons; + ASN1_BOOLEAN indirectCRL; + ASN1_BOOLEAN containsUserAttributeCerts; + ASN1_BOOLEAN containsAACerts; + ASN1_BOOLEAN containsSOAPublicKeyCerts; +} OSSL_AA_DIST_POINT; + +DECLARE_ASN1_FUNCTIONS(OSSL_AA_DIST_POINT) + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/VC-WIN64-ARM/no-asm/include/progs.h b/deps/openssl/config/archs/VC-WIN64-ARM/no-asm/include/progs.h index be55f61503d405..1b62ec37dec130 100644 --- a/deps/openssl/config/archs/VC-WIN64-ARM/no-asm/include/progs.h +++ b/deps/openssl/config/archs/VC-WIN64-ARM/no-asm/include/progs.h @@ -56,6 +56,7 @@ extern int s_client_main(int argc, char *argv[]); extern int s_server_main(int argc, char *argv[]); extern int s_time_main(int argc, char *argv[]); extern int sess_id_main(int argc, char *argv[]); +extern int skeyutl_main(int argc, char *argv[]); extern int smime_main(int argc, char *argv[]); extern int speed_main(int argc, char *argv[]); extern int spkac_main(int argc, char *argv[]); @@ -110,6 +111,7 @@ extern const OPTIONS s_client_options[]; extern const OPTIONS s_server_options[]; extern const OPTIONS s_time_options[]; extern const OPTIONS sess_id_options[]; +extern const OPTIONS skeyutl_options[]; extern const OPTIONS smime_options[]; extern const OPTIONS speed_options[]; extern const OPTIONS spkac_options[]; diff --git a/deps/openssl/config/archs/VC-WIN64-ARM/no-asm/openssl-cl.gypi b/deps/openssl/config/archs/VC-WIN64-ARM/no-asm/openssl-cl.gypi index f75ff8bda86ff6..cd453fb703b754 100644 --- a/deps/openssl/config/archs/VC-WIN64-ARM/no-asm/openssl-cl.gypi +++ b/deps/openssl/config/archs/VC-WIN64-ARM/no-asm/openssl-cl.gypi @@ -68,6 +68,7 @@ 'openssl/apps/s_server.c', 'openssl/apps/s_time.c', 'openssl/apps/sess_id.c', + 'openssl/apps/skeyutl.c', 'openssl/apps/smime.c', 'openssl/apps/speed.c', 'openssl/apps/spkac.c', @@ -83,12 +84,14 @@ 'openssl/apps/lib/app_rand.c', 'openssl/apps/lib/app_x509.c', 'openssl/apps/lib/apps.c', + 'openssl/apps/lib/apps_opt_printf.c', 'openssl/apps/lib/apps_ui.c', 'openssl/apps/lib/columns.c', 'openssl/apps/lib/engine.c', 'openssl/apps/lib/engine_loader.c', 'openssl/apps/lib/fmt.c', 'openssl/apps/lib/http_server.c', + 'openssl/apps/lib/log.c', 'openssl/apps/lib/names.c', 'openssl/apps/lib/opt.c', 'openssl/apps/lib/s_cb.c', diff --git a/deps/openssl/config/archs/VC-WIN64-ARM/no-asm/openssl-fips.gypi b/deps/openssl/config/archs/VC-WIN64-ARM/no-asm/openssl-fips.gypi index 58f627a062a2cd..f85a51438a7158 100644 --- a/deps/openssl/config/archs/VC-WIN64-ARM/no-asm/openssl-fips.gypi +++ b/deps/openssl/config/archs/VC-WIN64-ARM/no-asm/openssl-fips.gypi @@ -100,14 +100,15 @@ 'openssl/crypto/evp/kem.c', 'openssl/crypto/evp/keymgmt_lib.c', 'openssl/crypto/evp/keymgmt_meth.c', - 'openssl/crypto/evp/m_sigver.c', 'openssl/crypto/evp/mac_lib.c', 'openssl/crypto/evp/mac_meth.c', 'openssl/crypto/evp/p_lib.c', 'openssl/crypto/evp/pmeth_check.c', 'openssl/crypto/evp/pmeth_gn.c', 'openssl/crypto/evp/pmeth_lib.c', + 'openssl/crypto/evp/s_lib.c', 'openssl/crypto/evp/signature.c', + 'openssl/crypto/evp/skeymgmt_meth.c', 'openssl/crypto/ffc/ffc_backend.c', 'openssl/crypto/ffc/ffc_dh.c', 'openssl/crypto/ffc/ffc_key_generate.c', @@ -115,6 +116,8 @@ 'openssl/crypto/ffc/ffc_params.c', 'openssl/crypto/ffc/ffc_params_generate.c', 'openssl/crypto/ffc/ffc_params_validate.c', + 'openssl/crypto/hashtable/hashfunc.c', + 'openssl/crypto/hashtable/hashtable.c', 'openssl/crypto/hmac/hmac.c', 'openssl/crypto/lhash/lhash.c', 'openssl/crypto/asn1_dsa.c', @@ -145,6 +148,16 @@ 'openssl/crypto/threads_none.c', 'openssl/crypto/threads_pthread.c', 'openssl/crypto/threads_win.c', + 'openssl/crypto/time.c', + 'openssl/crypto/ml_dsa/ml_dsa_encoders.c', + 'openssl/crypto/ml_dsa/ml_dsa_key.c', + 'openssl/crypto/ml_dsa/ml_dsa_key_compress.c', + 'openssl/crypto/ml_dsa/ml_dsa_matrix.c', + 'openssl/crypto/ml_dsa/ml_dsa_ntt.c', + 'openssl/crypto/ml_dsa/ml_dsa_params.c', + 'openssl/crypto/ml_dsa/ml_dsa_sample.c', + 'openssl/crypto/ml_dsa/ml_dsa_sign.c', + 'openssl/crypto/ml_kem/ml_kem.c', 'openssl/crypto/modes/cbc128.c', 'openssl/crypto/modes/ccm128.c', 'openssl/crypto/modes/cfb128.c', @@ -153,6 +166,7 @@ 'openssl/crypto/modes/ofb128.c', 'openssl/crypto/modes/wrap128.c', 'openssl/crypto/modes/xts128.c', + 'openssl/crypto/modes/xts128gb.c', 'openssl/crypto/property/defn_cache.c', 'openssl/crypto/property/property.c', 'openssl/crypto/property/property_parse.c', @@ -181,7 +195,23 @@ 'openssl/crypto/sha/sha256.c', 'openssl/crypto/sha/sha3.c', 'openssl/crypto/sha/sha512.c', + 'openssl/crypto/slh_dsa/slh_adrs.c', + 'openssl/crypto/slh_dsa/slh_dsa.c', + 'openssl/crypto/slh_dsa/slh_dsa_hash_ctx.c', + 'openssl/crypto/slh_dsa/slh_dsa_key.c', + 'openssl/crypto/slh_dsa/slh_fors.c', + 'openssl/crypto/slh_dsa/slh_hash.c', + 'openssl/crypto/slh_dsa/slh_hypertree.c', + 'openssl/crypto/slh_dsa/slh_params.c', + 'openssl/crypto/slh_dsa/slh_wots.c', + 'openssl/crypto/slh_dsa/slh_xmss.c', 'openssl/crypto/stack/stack.c', + 'openssl/crypto/thread/arch/thread_none.c', + 'openssl/crypto/thread/arch/thread_posix.c', + 'openssl/crypto/thread/arch/thread_win.c', + 'openssl/crypto/thread/api.c', + 'openssl/crypto/thread/arch.c', + 'openssl/crypto/thread/internal.c', 'openssl/providers/common/der/der_rsa_sig.c', 'openssl/providers/common/bio_prov.c', 'openssl/providers/common/capabilities.c', @@ -190,6 +220,7 @@ 'openssl/providers/common/provider_util.c', 'openssl/providers/common/securitycheck.c', 'openssl/providers/common/securitycheck_fips.c', + 'openssl/providers/fips/fipsindicator.c', 'openssl/providers/fips/fipsprov.c', 'openssl/providers/fips/self_test.c', 'openssl/providers/fips/self_test_kats.c', @@ -227,6 +258,8 @@ 'openssl/providers/implementations/kdfs/sskdf.c', 'openssl/providers/implementations/kdfs/tls1_prf.c', 'openssl/providers/implementations/kdfs/x942kdf.c', + 'openssl/providers/implementations/kem/ml_kem_kem.c', + 'openssl/providers/implementations/kem/mlx_kem.c', 'openssl/providers/implementations/kem/rsa_kem.c', 'openssl/providers/implementations/keymgmt/dh_kmgmt.c', 'openssl/providers/implementations/keymgmt/dsa_kmgmt.c', @@ -234,29 +267,39 @@ 'openssl/providers/implementations/keymgmt/ecx_kmgmt.c', 'openssl/providers/implementations/keymgmt/kdf_legacy_kmgmt.c', 'openssl/providers/implementations/keymgmt/mac_legacy_kmgmt.c', + 'openssl/providers/implementations/keymgmt/ml_dsa_kmgmt.c', + 'openssl/providers/implementations/keymgmt/ml_kem_kmgmt.c', + 'openssl/providers/implementations/keymgmt/mlx_kmgmt.c', 'openssl/providers/implementations/keymgmt/rsa_kmgmt.c', + 'openssl/providers/implementations/keymgmt/slh_dsa_kmgmt.c', 'openssl/providers/implementations/macs/cmac_prov.c', 'openssl/providers/implementations/macs/gmac_prov.c', 'openssl/providers/implementations/macs/hmac_prov.c', 'openssl/providers/implementations/macs/kmac_prov.c', - 'openssl/providers/implementations/rands/crngt.c', 'openssl/providers/implementations/rands/drbg.c', 'openssl/providers/implementations/rands/drbg_ctr.c', 'openssl/providers/implementations/rands/drbg_hash.c', 'openssl/providers/implementations/rands/drbg_hmac.c', + 'openssl/providers/implementations/rands/fips_crng_test.c', 'openssl/providers/implementations/rands/test_rng.c', 'openssl/providers/implementations/signature/dsa_sig.c', 'openssl/providers/implementations/signature/ecdsa_sig.c', 'openssl/providers/implementations/signature/eddsa_sig.c', 'openssl/providers/implementations/signature/mac_legacy_sig.c', + 'openssl/providers/implementations/signature/ml_dsa_sig.c', 'openssl/providers/implementations/signature/rsa_sig.c', - 'openssl/ssl/s3_cbc.c', + 'openssl/providers/implementations/signature/slh_dsa_sig.c', + 'openssl/providers/implementations/skeymgmt/aes_skmgmt.c', + 'openssl/providers/implementations/skeymgmt/generic.c', + 'openssl/ssl/record/methods/ssl3_cbc.c', 'openssl/providers/common/der/der_dsa_key.c', 'openssl/providers/common/der/der_dsa_sig.c', 'openssl/providers/common/der/der_ec_key.c', 'openssl/providers/common/der/der_ec_sig.c', 'openssl/providers/common/der/der_ecx_key.c', + 'openssl/providers/common/der/der_ml_dsa_key.c', 'openssl/providers/common/der/der_rsa_key.c', + 'openssl/providers/common/der/der_slh_dsa_key.c', 'openssl/providers/common/provider_ctx.c', 'openssl/providers/common/provider_err.c', 'openssl/providers/implementations/ciphers/ciphercommon.c', @@ -267,17 +310,20 @@ 'openssl/providers/implementations/ciphers/ciphercommon_gcm_hw.c', 'openssl/providers/implementations/ciphers/ciphercommon_hw.c', 'openssl/providers/implementations/digests/digestcommon.c', - 'openssl/ssl/record/tls_pad.c', + 'openssl/ssl/record/methods/tls_pad.c', 'openssl/providers/fips/fips_entry.c', ], 'openssl_sources_VC-WIN64-ARM': [ + './config/archs/VC-WIN64-ARM/no-asm/crypto/params_idx.c', './config/archs/VC-WIN64-ARM/no-asm/providers/common/der/der_sm2_gen.c', './config/archs/VC-WIN64-ARM/no-asm/providers/common/der/der_digests_gen.c', './config/archs/VC-WIN64-ARM/no-asm/providers/common/der/der_dsa_gen.c', './config/archs/VC-WIN64-ARM/no-asm/providers/common/der/der_ec_gen.c', './config/archs/VC-WIN64-ARM/no-asm/providers/common/der/der_ecx_gen.c', + './config/archs/VC-WIN64-ARM/no-asm/providers/common/der/der_ml_dsa_gen.c', './config/archs/VC-WIN64-ARM/no-asm/providers/common/der/der_rsa_gen.c', + './config/archs/VC-WIN64-ARM/no-asm/providers/common/der/der_slh_dsa_gen.c', './config/archs/VC-WIN64-ARM/no-asm/providers/common/der/der_wrap_gen.c', ], diff --git a/deps/openssl/config/archs/VC-WIN64-ARM/no-asm/openssl.gypi b/deps/openssl/config/archs/VC-WIN64-ARM/no-asm/openssl.gypi index f144e4b579302b..d48d1a61c89a22 100644 --- a/deps/openssl/config/archs/VC-WIN64-ARM/no-asm/openssl.gypi +++ b/deps/openssl/config/archs/VC-WIN64-ARM/no-asm/openssl.gypi @@ -7,14 +7,15 @@ 'openssl/ssl/d1_srtp.c', 'openssl/ssl/methods.c', 'openssl/ssl/pqueue.c', + 'openssl/ssl/priority_queue.c', 'openssl/ssl/s3_enc.c', 'openssl/ssl/s3_lib.c', 'openssl/ssl/s3_msg.c', 'openssl/ssl/ssl_asn1.c', 'openssl/ssl/ssl_cert.c', + 'openssl/ssl/ssl_cert_comp.c', 'openssl/ssl/ssl_ciph.c', 'openssl/ssl/ssl_conf.c', - 'openssl/ssl/ssl_err.c', 'openssl/ssl/ssl_err_legacy.c', 'openssl/ssl/ssl_init.c', 'openssl/ssl/ssl_lib.c', @@ -31,12 +32,60 @@ 'openssl/ssl/tls13_enc.c', 'openssl/ssl/tls_depr.c', 'openssl/ssl/tls_srp.c', - 'openssl/ssl/record/dtls1_bitmap.c', + 'openssl/ssl/quic/cc_newreno.c', + 'openssl/ssl/quic/json_enc.c', + 'openssl/ssl/quic/qlog.c', + 'openssl/ssl/quic/qlog_event_helpers.c', + 'openssl/ssl/quic/quic_ackm.c', + 'openssl/ssl/quic/quic_cfq.c', + 'openssl/ssl/quic/quic_channel.c', + 'openssl/ssl/quic/quic_demux.c', + 'openssl/ssl/quic/quic_engine.c', + 'openssl/ssl/quic/quic_fc.c', + 'openssl/ssl/quic/quic_fifd.c', + 'openssl/ssl/quic/quic_impl.c', + 'openssl/ssl/quic/quic_lcidm.c', + 'openssl/ssl/quic/quic_method.c', + 'openssl/ssl/quic/quic_obj.c', + 'openssl/ssl/quic/quic_port.c', + 'openssl/ssl/quic/quic_rcidm.c', + 'openssl/ssl/quic/quic_reactor.c', + 'openssl/ssl/quic/quic_reactor_wait_ctx.c', + 'openssl/ssl/quic/quic_record_rx.c', + 'openssl/ssl/quic/quic_record_shared.c', + 'openssl/ssl/quic/quic_record_tx.c', + 'openssl/ssl/quic/quic_record_util.c', + 'openssl/ssl/quic/quic_rstream.c', + 'openssl/ssl/quic/quic_rx_depack.c', + 'openssl/ssl/quic/quic_sf_list.c', + 'openssl/ssl/quic/quic_srt_gen.c', + 'openssl/ssl/quic/quic_srtm.c', + 'openssl/ssl/quic/quic_sstream.c', + 'openssl/ssl/quic/quic_statm.c', + 'openssl/ssl/quic/quic_stream_map.c', + 'openssl/ssl/quic/quic_thread_assist.c', + 'openssl/ssl/quic/quic_tls.c', + 'openssl/ssl/quic/quic_tls_api.c', + 'openssl/ssl/quic/quic_trace.c', + 'openssl/ssl/quic/quic_tserver.c', + 'openssl/ssl/quic/quic_txp.c', + 'openssl/ssl/quic/quic_txpim.c', + 'openssl/ssl/quic/quic_types.c', + 'openssl/ssl/quic/quic_wire.c', + 'openssl/ssl/quic/quic_wire_pkt.c', + 'openssl/ssl/quic/uint_set.c', 'openssl/ssl/record/rec_layer_d1.c', 'openssl/ssl/record/rec_layer_s3.c', - 'openssl/ssl/record/ssl3_buffer.c', - 'openssl/ssl/record/ssl3_record.c', - 'openssl/ssl/record/ssl3_record_tls13.c', + 'openssl/ssl/record/methods/dtls_meth.c', + 'openssl/ssl/record/methods/ssl3_meth.c', + 'openssl/ssl/record/methods/tls13_meth.c', + 'openssl/ssl/record/methods/tls1_meth.c', + 'openssl/ssl/record/methods/tls_common.c', + 'openssl/ssl/record/methods/tls_multib.c', + 'openssl/ssl/record/methods/tlsany_meth.c', + 'openssl/ssl/rio/poll_builder.c', + 'openssl/ssl/rio/poll_immediate.c', + 'openssl/ssl/rio/rio_notifier.c', 'openssl/ssl/statem/extensions.c', 'openssl/ssl/statem/extensions_clnt.c', 'openssl/ssl/statem/extensions_cust.c', @@ -150,6 +199,7 @@ 'openssl/crypto/bio/bss_conn.c', 'openssl/crypto/bio/bss_core.c', 'openssl/crypto/bio/bss_dgram.c', + 'openssl/crypto/bio/bss_dgram_pair.c', 'openssl/crypto/bio/bss_fd.c', 'openssl/crypto/bio/bss_file.c', 'openssl/crypto/bio/bss_log.c', @@ -210,6 +260,7 @@ 'openssl/crypto/cmp/cmp_client.c', 'openssl/crypto/cmp/cmp_ctx.c', 'openssl/crypto/cmp/cmp_err.c', + 'openssl/crypto/cmp/cmp_genm.c', 'openssl/crypto/cmp/cmp_hdr.c', 'openssl/crypto/cmp/cmp_http.c', 'openssl/crypto/cmp/cmp_msg.c', @@ -385,7 +436,9 @@ 'openssl/crypto/err/err_all.c', 'openssl/crypto/err/err_all_legacy.c', 'openssl/crypto/err/err_blocks.c', + 'openssl/crypto/err/err_mark.c', 'openssl/crypto/err/err_prn.c', + 'openssl/crypto/err/err_save.c', 'openssl/crypto/ess/ess_asn1.c', 'openssl/crypto/ess/ess_err.c', 'openssl/crypto/ess/ess_lib.c', @@ -468,7 +521,9 @@ 'openssl/crypto/evp/pmeth_check.c', 'openssl/crypto/evp/pmeth_gn.c', 'openssl/crypto/evp/pmeth_lib.c', + 'openssl/crypto/evp/s_lib.c', 'openssl/crypto/evp/signature.c', + 'openssl/crypto/evp/skeymgmt_meth.c', 'openssl/crypto/ffc/ffc_backend.c', 'openssl/crypto/ffc/ffc_dh.c', 'openssl/crypto/ffc/ffc_key_generate.c', @@ -476,7 +531,11 @@ 'openssl/crypto/ffc/ffc_params.c', 'openssl/crypto/ffc/ffc_params_generate.c', 'openssl/crypto/ffc/ffc_params_validate.c', + 'openssl/crypto/hashtable/hashfunc.c', + 'openssl/crypto/hashtable/hashtable.c', 'openssl/crypto/hmac/hmac.c', + 'openssl/crypto/hpke/hpke.c', + 'openssl/crypto/hpke/hpke_util.c', 'openssl/crypto/http/http_client.c', 'openssl/crypto/http/http_err.c', 'openssl/crypto/http/http_lib.c', @@ -490,6 +549,7 @@ 'openssl/crypto/lhash/lhash.c', 'openssl/crypto/asn1_dsa.c', 'openssl/crypto/bsearch.c', + 'openssl/crypto/comp_methods.c', 'openssl/crypto/context.c', 'openssl/crypto/core_algorithm.c', 'openssl/crypto/core_fetch.c', @@ -499,10 +559,13 @@ 'openssl/crypto/cryptlib.c', 'openssl/crypto/ctype.c', 'openssl/crypto/cversion.c', + 'openssl/crypto/defaults.c', 'openssl/crypto/der_writer.c', + 'openssl/crypto/deterministic_nonce.c', 'openssl/crypto/ebcdic.c', 'openssl/crypto/ex_data.c', 'openssl/crypto/getenv.c', + 'openssl/crypto/indicator_core.c', 'openssl/crypto/info.c', 'openssl/crypto/init.c', 'openssl/crypto/initthread.c', @@ -527,12 +590,16 @@ 'openssl/crypto/provider_core.c', 'openssl/crypto/provider_predefined.c', 'openssl/crypto/punycode.c', + 'openssl/crypto/quic_vlint.c', 'openssl/crypto/self_test_core.c', + 'openssl/crypto/sleep.c', 'openssl/crypto/sparse_array.c', + 'openssl/crypto/ssl_err.c', 'openssl/crypto/threads_lib.c', 'openssl/crypto/threads_none.c', 'openssl/crypto/threads_pthread.c', 'openssl/crypto/threads_win.c', + 'openssl/crypto/time.c', 'openssl/crypto/trace.c', 'openssl/crypto/uid.c', 'openssl/crypto/md4/md4_dgst.c', @@ -542,6 +609,15 @@ 'openssl/crypto/md5/md5_sha1.c', 'openssl/crypto/mdc2/mdc2_one.c', 'openssl/crypto/mdc2/mdc2dgst.c', + 'openssl/crypto/ml_dsa/ml_dsa_encoders.c', + 'openssl/crypto/ml_dsa/ml_dsa_key.c', + 'openssl/crypto/ml_dsa/ml_dsa_key_compress.c', + 'openssl/crypto/ml_dsa/ml_dsa_matrix.c', + 'openssl/crypto/ml_dsa/ml_dsa_ntt.c', + 'openssl/crypto/ml_dsa/ml_dsa_params.c', + 'openssl/crypto/ml_dsa/ml_dsa_sample.c', + 'openssl/crypto/ml_dsa/ml_dsa_sign.c', + 'openssl/crypto/ml_kem/ml_kem.c', 'openssl/crypto/modes/cbc128.c', 'openssl/crypto/modes/ccm128.c', 'openssl/crypto/modes/cfb128.c', @@ -553,6 +629,7 @@ 'openssl/crypto/modes/siv128.c', 'openssl/crypto/modes/wrap128.c', 'openssl/crypto/modes/xts128.c', + 'openssl/crypto/modes/xts128gb.c', 'openssl/crypto/objects/o_names.c', 'openssl/crypto/objects/obj_dat.c', 'openssl/crypto/objects/obj_err.c', @@ -616,6 +693,7 @@ 'openssl/crypto/rand/rand_lib.c', 'openssl/crypto/rand/rand_meth.c', 'openssl/crypto/rand/rand_pool.c', + 'openssl/crypto/rand/rand_uniform.c', 'openssl/crypto/rand/randfile.c', 'openssl/crypto/rc2/rc2_cbc.c', 'openssl/crypto/rc2/rc2_ecb.c', @@ -664,6 +742,16 @@ 'openssl/crypto/sha/sha3.c', 'openssl/crypto/sha/sha512.c', 'openssl/crypto/siphash/siphash.c', + 'openssl/crypto/slh_dsa/slh_adrs.c', + 'openssl/crypto/slh_dsa/slh_dsa.c', + 'openssl/crypto/slh_dsa/slh_dsa_hash_ctx.c', + 'openssl/crypto/slh_dsa/slh_dsa_key.c', + 'openssl/crypto/slh_dsa/slh_fors.c', + 'openssl/crypto/slh_dsa/slh_hash.c', + 'openssl/crypto/slh_dsa/slh_hypertree.c', + 'openssl/crypto/slh_dsa/slh_params.c', + 'openssl/crypto/slh_dsa/slh_wots.c', + 'openssl/crypto/slh_dsa/slh_xmss.c', 'openssl/crypto/sm2/sm2_crypt.c', 'openssl/crypto/sm2/sm2_err.c', 'openssl/crypto/sm2/sm2_key.c', @@ -681,6 +769,12 @@ 'openssl/crypto/store/store_register.c', 'openssl/crypto/store/store_result.c', 'openssl/crypto/store/store_strings.c', + 'openssl/crypto/thread/arch/thread_none.c', + 'openssl/crypto/thread/arch/thread_posix.c', + 'openssl/crypto/thread/arch/thread_win.c', + 'openssl/crypto/thread/api.c', + 'openssl/crypto/thread/arch.c', + 'openssl/crypto/thread/internal.c', 'openssl/crypto/ts/ts_asn1.c', 'openssl/crypto/ts/ts_conf.c', 'openssl/crypto/ts/ts_err.c', @@ -709,14 +803,22 @@ 'openssl/crypto/x509/pcy_map.c', 'openssl/crypto/x509/pcy_node.c', 'openssl/crypto/x509/pcy_tree.c', + 'openssl/crypto/x509/t_acert.c', 'openssl/crypto/x509/t_crl.c', 'openssl/crypto/x509/t_req.c', 'openssl/crypto/x509/t_x509.c', + 'openssl/crypto/x509/v3_aaa.c', + 'openssl/crypto/x509/v3_ac_tgt.c', 'openssl/crypto/x509/v3_addr.c', 'openssl/crypto/x509/v3_admis.c', 'openssl/crypto/x509/v3_akeya.c', 'openssl/crypto/x509/v3_akid.c', 'openssl/crypto/x509/v3_asid.c', + 'openssl/crypto/x509/v3_attrdesc.c', + 'openssl/crypto/x509/v3_attrmap.c', + 'openssl/crypto/x509/v3_audit_id.c', + 'openssl/crypto/x509/v3_authattid.c', + 'openssl/crypto/x509/v3_battcons.c', 'openssl/crypto/x509/v3_bcons.c', 'openssl/crypto/x509/v3_bitst.c', 'openssl/crypto/x509/v3_conf.c', @@ -725,12 +827,17 @@ 'openssl/crypto/x509/v3_enum.c', 'openssl/crypto/x509/v3_extku.c', 'openssl/crypto/x509/v3_genn.c', + 'openssl/crypto/x509/v3_group_ac.c', 'openssl/crypto/x509/v3_ia5.c', + 'openssl/crypto/x509/v3_ind_iss.c', 'openssl/crypto/x509/v3_info.c', 'openssl/crypto/x509/v3_int.c', + 'openssl/crypto/x509/v3_iobo.c', 'openssl/crypto/x509/v3_ist.c', 'openssl/crypto/x509/v3_lib.c', 'openssl/crypto/x509/v3_ncons.c', + 'openssl/crypto/x509/v3_no_ass.c', + 'openssl/crypto/x509/v3_no_rev_avail.c', 'openssl/crypto/x509/v3_pci.c', 'openssl/crypto/x509/v3_pcia.c', 'openssl/crypto/x509/v3_pcons.c', @@ -738,13 +845,20 @@ 'openssl/crypto/x509/v3_pmaps.c', 'openssl/crypto/x509/v3_prn.c', 'openssl/crypto/x509/v3_purp.c', + 'openssl/crypto/x509/v3_rolespec.c', 'openssl/crypto/x509/v3_san.c', + 'openssl/crypto/x509/v3_sda.c', + 'openssl/crypto/x509/v3_single_use.c', 'openssl/crypto/x509/v3_skid.c', + 'openssl/crypto/x509/v3_soa_id.c', 'openssl/crypto/x509/v3_sxnet.c', + 'openssl/crypto/x509/v3_timespec.c', 'openssl/crypto/x509/v3_tlsf.c', + 'openssl/crypto/x509/v3_usernotice.c', 'openssl/crypto/x509/v3_utf8.c', 'openssl/crypto/x509/v3_utl.c', 'openssl/crypto/x509/v3err.c', + 'openssl/crypto/x509/x509_acert.c', 'openssl/crypto/x509/x509_att.c', 'openssl/crypto/x509/x509_cmp.c', 'openssl/crypto/x509/x509_d2.c', @@ -762,6 +876,7 @@ 'openssl/crypto/x509/x509_v3.c', 'openssl/crypto/x509/x509_vfy.c', 'openssl/crypto/x509/x509_vpm.c', + 'openssl/crypto/x509/x509aset.c', 'openssl/crypto/x509/x509cset.c', 'openssl/crypto/x509/x509name.c', 'openssl/crypto/x509/x509rset.c', @@ -771,6 +886,7 @@ 'openssl/crypto/x509/x_attrib.c', 'openssl/crypto/x509/x_crl.c', 'openssl/crypto/x509/x_exten.c', + 'openssl/crypto/x509/x_ietfatt.c', 'openssl/crypto/x509/x_name.c', 'openssl/crypto/x509/x_pubkey.c', 'openssl/crypto/x509/x_req.c', @@ -802,6 +918,9 @@ 'openssl/providers/implementations/ciphers/cipher_aes_ccm_hw.c', 'openssl/providers/implementations/ciphers/cipher_aes_gcm.c', 'openssl/providers/implementations/ciphers/cipher_aes_gcm_hw.c', + 'openssl/providers/implementations/ciphers/cipher_aes_gcm_siv.c', + 'openssl/providers/implementations/ciphers/cipher_aes_gcm_siv_hw.c', + 'openssl/providers/implementations/ciphers/cipher_aes_gcm_siv_polyval.c', 'openssl/providers/implementations/ciphers/cipher_aes_hw.c', 'openssl/providers/implementations/ciphers/cipher_aes_ocb.c', 'openssl/providers/implementations/ciphers/cipher_aes_ocb_hw.c', @@ -826,7 +945,13 @@ 'openssl/providers/implementations/ciphers/cipher_cts.c', 'openssl/providers/implementations/ciphers/cipher_null.c', 'openssl/providers/implementations/ciphers/cipher_sm4.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_ccm.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_ccm_hw.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_gcm.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_gcm_hw.c', 'openssl/providers/implementations/ciphers/cipher_sm4_hw.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_xts.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_xts_hw.c', 'openssl/providers/implementations/ciphers/cipher_tdes.c', 'openssl/providers/implementations/ciphers/cipher_tdes_common.c', 'openssl/providers/implementations/ciphers/cipher_tdes_default.c', @@ -855,11 +980,16 @@ 'openssl/providers/implementations/encode_decode/encode_key2ms.c', 'openssl/providers/implementations/encode_decode/encode_key2text.c', 'openssl/providers/implementations/encode_decode/endecoder_common.c', + 'openssl/providers/implementations/encode_decode/ml_common_codecs.c', + 'openssl/providers/implementations/encode_decode/ml_dsa_codecs.c', + 'openssl/providers/implementations/encode_decode/ml_kem_codecs.c', 'openssl/providers/implementations/exchange/dh_exch.c', 'openssl/providers/implementations/exchange/ecdh_exch.c', 'openssl/providers/implementations/exchange/ecx_exch.c', 'openssl/providers/implementations/exchange/kdf_exch.c', + 'openssl/providers/implementations/kdfs/argon2.c', 'openssl/providers/implementations/kdfs/hkdf.c', + 'openssl/providers/implementations/kdfs/hmacdrbg_kdf.c', 'openssl/providers/implementations/kdfs/kbkdf.c', 'openssl/providers/implementations/kdfs/krb5kdf.c', 'openssl/providers/implementations/kdfs/pbkdf2.c', @@ -870,6 +1000,11 @@ 'openssl/providers/implementations/kdfs/sskdf.c', 'openssl/providers/implementations/kdfs/tls1_prf.c', 'openssl/providers/implementations/kdfs/x942kdf.c', + 'openssl/providers/implementations/kem/ec_kem.c', + 'openssl/providers/implementations/kem/ecx_kem.c', + 'openssl/providers/implementations/kem/kem_util.c', + 'openssl/providers/implementations/kem/ml_kem_kem.c', + 'openssl/providers/implementations/kem/mlx_kem.c', 'openssl/providers/implementations/kem/rsa_kem.c', 'openssl/providers/implementations/keymgmt/dh_kmgmt.c', 'openssl/providers/implementations/keymgmt/dsa_kmgmt.c', @@ -877,7 +1012,11 @@ 'openssl/providers/implementations/keymgmt/ecx_kmgmt.c', 'openssl/providers/implementations/keymgmt/kdf_legacy_kmgmt.c', 'openssl/providers/implementations/keymgmt/mac_legacy_kmgmt.c', + 'openssl/providers/implementations/keymgmt/ml_dsa_kmgmt.c', + 'openssl/providers/implementations/keymgmt/ml_kem_kmgmt.c', + 'openssl/providers/implementations/keymgmt/mlx_kmgmt.c', 'openssl/providers/implementations/keymgmt/rsa_kmgmt.c', + 'openssl/providers/implementations/keymgmt/slh_dsa_kmgmt.c', 'openssl/providers/implementations/macs/blake2b_mac.c', 'openssl/providers/implementations/macs/blake2s_mac.c', 'openssl/providers/implementations/macs/cmac_prov.c', @@ -886,12 +1025,12 @@ 'openssl/providers/implementations/macs/kmac_prov.c', 'openssl/providers/implementations/macs/poly1305_prov.c', 'openssl/providers/implementations/macs/siphash_prov.c', - 'openssl/providers/implementations/rands/crngt.c', 'openssl/providers/implementations/rands/drbg.c', 'openssl/providers/implementations/rands/drbg_ctr.c', 'openssl/providers/implementations/rands/drbg_hash.c', 'openssl/providers/implementations/rands/drbg_hmac.c', 'openssl/providers/implementations/rands/seed_src.c', + 'openssl/providers/implementations/rands/seed_src_jitter.c', 'openssl/providers/implementations/rands/test_rng.c', 'openssl/providers/implementations/rands/seeding/rand_cpu_x86.c', 'openssl/providers/implementations/rands/seeding/rand_tsc.c', @@ -901,17 +1040,24 @@ 'openssl/providers/implementations/signature/ecdsa_sig.c', 'openssl/providers/implementations/signature/eddsa_sig.c', 'openssl/providers/implementations/signature/mac_legacy_sig.c', + 'openssl/providers/implementations/signature/ml_dsa_sig.c', 'openssl/providers/implementations/signature/rsa_sig.c', + 'openssl/providers/implementations/signature/slh_dsa_sig.c', 'openssl/providers/implementations/signature/sm2_sig.c', + 'openssl/providers/implementations/skeymgmt/aes_skmgmt.c', + 'openssl/providers/implementations/skeymgmt/generic.c', 'openssl/providers/implementations/storemgmt/file_store.c', 'openssl/providers/implementations/storemgmt/file_store_any2obj.c', - 'openssl/ssl/s3_cbc.c', + 'openssl/providers/implementations/storemgmt/winstore_store.c', + 'openssl/ssl/record/methods/ssl3_cbc.c', 'openssl/providers/common/der/der_dsa_key.c', 'openssl/providers/common/der/der_dsa_sig.c', 'openssl/providers/common/der/der_ec_key.c', 'openssl/providers/common/der/der_ec_sig.c', 'openssl/providers/common/der/der_ecx_key.c', + 'openssl/providers/common/der/der_ml_dsa_key.c', 'openssl/providers/common/der/der_rsa_key.c', + 'openssl/providers/common/der/der_slh_dsa_key.c', 'openssl/providers/common/provider_ctx.c', 'openssl/providers/common/provider_err.c', 'openssl/providers/implementations/ciphers/ciphercommon.c', @@ -922,7 +1068,7 @@ 'openssl/providers/implementations/ciphers/ciphercommon_gcm_hw.c', 'openssl/providers/implementations/ciphers/ciphercommon_hw.c', 'openssl/providers/implementations/digests/digestcommon.c', - 'openssl/ssl/record/tls_pad.c', + 'openssl/ssl/record/methods/tls_pad.c', 'openssl/providers/implementations/ciphers/cipher_blowfish.c', 'openssl/providers/implementations/ciphers/cipher_blowfish_hw.c', 'openssl/providers/implementations/ciphers/cipher_cast5.c', @@ -947,16 +1093,20 @@ 'openssl/providers/implementations/digests/ripemd_prov.c', 'openssl/providers/implementations/digests/wp_prov.c', 'openssl/providers/implementations/kdfs/pbkdf1.c', + 'openssl/providers/implementations/kdfs/pvkkdf.c', 'openssl/providers/prov_running.c', 'openssl/providers/legacyprov.c', ], 'openssl_sources_VC-WIN64-ARM': [ + './config/archs/VC-WIN64-ARM/no-asm/crypto/params_idx.c', './config/archs/VC-WIN64-ARM/no-asm/providers/common/der/der_sm2_gen.c', './config/archs/VC-WIN64-ARM/no-asm/providers/common/der/der_digests_gen.c', './config/archs/VC-WIN64-ARM/no-asm/providers/common/der/der_dsa_gen.c', './config/archs/VC-WIN64-ARM/no-asm/providers/common/der/der_ec_gen.c', './config/archs/VC-WIN64-ARM/no-asm/providers/common/der/der_ecx_gen.c', + './config/archs/VC-WIN64-ARM/no-asm/providers/common/der/der_ml_dsa_gen.c', './config/archs/VC-WIN64-ARM/no-asm/providers/common/der/der_rsa_gen.c', + './config/archs/VC-WIN64-ARM/no-asm/providers/common/der/der_slh_dsa_gen.c', './config/archs/VC-WIN64-ARM/no-asm/providers/common/der/der_wrap_gen.c', ], 'openssl_defines_VC-WIN64-ARM': [ diff --git a/deps/openssl/config/archs/VC-WIN64-ARM/no-asm/providers/common/der/der_ml_dsa_gen.c b/deps/openssl/config/archs/VC-WIN64-ARM/no-asm/providers/common/der/der_ml_dsa_gen.c new file mode 100644 index 00000000000000..4a8a113a268578 --- /dev/null +++ b/deps/openssl/config/archs/VC-WIN64-ARM/no-asm/providers/common/der/der_ml_dsa_gen.c @@ -0,0 +1,37 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from providers/common/der/der_ml_dsa_gen.c.in + * + * Copyright 2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include "prov/der_ml_dsa.h" + +/* Well known OIDs precompiled */ + +/* + * id-ml-dsa-44 OBJECT IDENTIFIER ::= { sigAlgs 17 } + */ +const unsigned char ossl_der_oid_id_ml_dsa_44[DER_OID_SZ_id_ml_dsa_44] = { + DER_OID_V_id_ml_dsa_44 +}; + +/* + * id-ml-dsa-65 OBJECT IDENTIFIER ::= { sigAlgs 18 } + */ +const unsigned char ossl_der_oid_id_ml_dsa_65[DER_OID_SZ_id_ml_dsa_65] = { + DER_OID_V_id_ml_dsa_65 +}; + +/* + * id-ml-dsa-87 OBJECT IDENTIFIER ::= { sigAlgs 19 } + */ +const unsigned char ossl_der_oid_id_ml_dsa_87[DER_OID_SZ_id_ml_dsa_87] = { + DER_OID_V_id_ml_dsa_87 +}; + diff --git a/deps/openssl/config/archs/VC-WIN64-ARM/no-asm/providers/common/der/der_slh_dsa_gen.c b/deps/openssl/config/archs/VC-WIN64-ARM/no-asm/providers/common/der/der_slh_dsa_gen.c new file mode 100644 index 00000000000000..1419a9515097dd --- /dev/null +++ b/deps/openssl/config/archs/VC-WIN64-ARM/no-asm/providers/common/der/der_slh_dsa_gen.c @@ -0,0 +1,100 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from providers/common/der/der_slh_dsa_gen.c.in + * + * Copyright 2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include "prov/der_slh_dsa.h" + +/* Well known OIDs precompiled */ + +/* + * id-slh-dsa-sha2-128s OBJECT IDENTIFIER ::= { sigAlgs 20 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_128s[DER_OID_SZ_id_slh_dsa_sha2_128s] = { + DER_OID_V_id_slh_dsa_sha2_128s +}; + +/* + * id-slh-dsa-sha2-128f OBJECT IDENTIFIER ::= { sigAlgs 21 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_128f[DER_OID_SZ_id_slh_dsa_sha2_128f] = { + DER_OID_V_id_slh_dsa_sha2_128f +}; + +/* + * id-slh-dsa-sha2-192s OBJECT IDENTIFIER ::= { sigAlgs 22 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_192s[DER_OID_SZ_id_slh_dsa_sha2_192s] = { + DER_OID_V_id_slh_dsa_sha2_192s +}; + +/* + * id-slh-dsa-sha2-192f OBJECT IDENTIFIER ::= { sigAlgs 23 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_192f[DER_OID_SZ_id_slh_dsa_sha2_192f] = { + DER_OID_V_id_slh_dsa_sha2_192f +}; + +/* + * id-slh-dsa-sha2-256s OBJECT IDENTIFIER ::= { sigAlgs 24 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_256s[DER_OID_SZ_id_slh_dsa_sha2_256s] = { + DER_OID_V_id_slh_dsa_sha2_256s +}; + +/* + * id-slh-dsa-sha2-256f OBJECT IDENTIFIER ::= { sigAlgs 25 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_256f[DER_OID_SZ_id_slh_dsa_sha2_256f] = { + DER_OID_V_id_slh_dsa_sha2_256f +}; + +/* + * id-slh-dsa-shake-128s OBJECT IDENTIFIER ::= { sigAlgs 26 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_128s[DER_OID_SZ_id_slh_dsa_shake_128s] = { + DER_OID_V_id_slh_dsa_shake_128s +}; + +/* + * id-slh-dsa-shake-128f OBJECT IDENTIFIER ::= { sigAlgs 27 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_128f[DER_OID_SZ_id_slh_dsa_shake_128f] = { + DER_OID_V_id_slh_dsa_shake_128f +}; + +/* + * id-slh-dsa-shake-192s OBJECT IDENTIFIER ::= { sigAlgs 28 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_192s[DER_OID_SZ_id_slh_dsa_shake_192s] = { + DER_OID_V_id_slh_dsa_shake_192s +}; + +/* + * id-slh-dsa-shake-192f OBJECT IDENTIFIER ::= { sigAlgs 29 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_192f[DER_OID_SZ_id_slh_dsa_shake_192f] = { + DER_OID_V_id_slh_dsa_shake_192f +}; + +/* + * id-slh-dsa-shake-256s OBJECT IDENTIFIER ::= { sigAlgs 30 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_256s[DER_OID_SZ_id_slh_dsa_shake_256s] = { + DER_OID_V_id_slh_dsa_shake_256s +}; + +/* + * id-slh-dsa-shake-256f OBJECT IDENTIFIER ::= { sigAlgs 31 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_256f[DER_OID_SZ_id_slh_dsa_shake_256f] = { + DER_OID_V_id_slh_dsa_shake_256f +}; + diff --git a/deps/openssl/config/archs/VC-WIN64-ARM/no-asm/providers/common/include/prov/der_ml_dsa.h b/deps/openssl/config/archs/VC-WIN64-ARM/no-asm/providers/common/include/prov/der_ml_dsa.h new file mode 100644 index 00000000000000..c55f780ab4527c --- /dev/null +++ b/deps/openssl/config/archs/VC-WIN64-ARM/no-asm/providers/common/include/prov/der_ml_dsa.h @@ -0,0 +1,40 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from providers/common/include/prov/der_ml_dsa.h.in + * + * Copyright 2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include "internal/der.h" +#include "crypto/ml_dsa.h" + +/* Well known OIDs precompiled */ + +/* + * id-ml-dsa-44 OBJECT IDENTIFIER ::= { sigAlgs 17 } + */ +#define DER_OID_V_id_ml_dsa_44 DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x11 +#define DER_OID_SZ_id_ml_dsa_44 11 +extern const unsigned char ossl_der_oid_id_ml_dsa_44[DER_OID_SZ_id_ml_dsa_44]; + +/* + * id-ml-dsa-65 OBJECT IDENTIFIER ::= { sigAlgs 18 } + */ +#define DER_OID_V_id_ml_dsa_65 DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x12 +#define DER_OID_SZ_id_ml_dsa_65 11 +extern const unsigned char ossl_der_oid_id_ml_dsa_65[DER_OID_SZ_id_ml_dsa_65]; + +/* + * id-ml-dsa-87 OBJECT IDENTIFIER ::= { sigAlgs 19 } + */ +#define DER_OID_V_id_ml_dsa_87 DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x13 +#define DER_OID_SZ_id_ml_dsa_87 11 +extern const unsigned char ossl_der_oid_id_ml_dsa_87[DER_OID_SZ_id_ml_dsa_87]; + + +int ossl_DER_w_algorithmIdentifier_ML_DSA(WPACKET *pkt, int tag, ML_DSA_KEY *key); diff --git a/deps/openssl/config/archs/VC-WIN64-ARM/no-asm/providers/common/include/prov/der_slh_dsa.h b/deps/openssl/config/archs/VC-WIN64-ARM/no-asm/providers/common/include/prov/der_slh_dsa.h new file mode 100644 index 00000000000000..760f8e7699be72 --- /dev/null +++ b/deps/openssl/config/archs/VC-WIN64-ARM/no-asm/providers/common/include/prov/der_slh_dsa.h @@ -0,0 +1,103 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from providers/common/include/prov/der_slh_dsa.h.in + * + * Copyright 2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include "internal/der.h" +#include "crypto/slh_dsa.h" + +/* Well known OIDs precompiled */ + +/* + * id-slh-dsa-sha2-128s OBJECT IDENTIFIER ::= { sigAlgs 20 } + */ +#define DER_OID_V_id_slh_dsa_sha2_128s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x14 +#define DER_OID_SZ_id_slh_dsa_sha2_128s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_128s[DER_OID_SZ_id_slh_dsa_sha2_128s]; + +/* + * id-slh-dsa-sha2-128f OBJECT IDENTIFIER ::= { sigAlgs 21 } + */ +#define DER_OID_V_id_slh_dsa_sha2_128f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x15 +#define DER_OID_SZ_id_slh_dsa_sha2_128f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_128f[DER_OID_SZ_id_slh_dsa_sha2_128f]; + +/* + * id-slh-dsa-sha2-192s OBJECT IDENTIFIER ::= { sigAlgs 22 } + */ +#define DER_OID_V_id_slh_dsa_sha2_192s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x16 +#define DER_OID_SZ_id_slh_dsa_sha2_192s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_192s[DER_OID_SZ_id_slh_dsa_sha2_192s]; + +/* + * id-slh-dsa-sha2-192f OBJECT IDENTIFIER ::= { sigAlgs 23 } + */ +#define DER_OID_V_id_slh_dsa_sha2_192f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x17 +#define DER_OID_SZ_id_slh_dsa_sha2_192f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_192f[DER_OID_SZ_id_slh_dsa_sha2_192f]; + +/* + * id-slh-dsa-sha2-256s OBJECT IDENTIFIER ::= { sigAlgs 24 } + */ +#define DER_OID_V_id_slh_dsa_sha2_256s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x18 +#define DER_OID_SZ_id_slh_dsa_sha2_256s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_256s[DER_OID_SZ_id_slh_dsa_sha2_256s]; + +/* + * id-slh-dsa-sha2-256f OBJECT IDENTIFIER ::= { sigAlgs 25 } + */ +#define DER_OID_V_id_slh_dsa_sha2_256f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x19 +#define DER_OID_SZ_id_slh_dsa_sha2_256f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_256f[DER_OID_SZ_id_slh_dsa_sha2_256f]; + +/* + * id-slh-dsa-shake-128s OBJECT IDENTIFIER ::= { sigAlgs 26 } + */ +#define DER_OID_V_id_slh_dsa_shake_128s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1A +#define DER_OID_SZ_id_slh_dsa_shake_128s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_128s[DER_OID_SZ_id_slh_dsa_shake_128s]; + +/* + * id-slh-dsa-shake-128f OBJECT IDENTIFIER ::= { sigAlgs 27 } + */ +#define DER_OID_V_id_slh_dsa_shake_128f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1B +#define DER_OID_SZ_id_slh_dsa_shake_128f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_128f[DER_OID_SZ_id_slh_dsa_shake_128f]; + +/* + * id-slh-dsa-shake-192s OBJECT IDENTIFIER ::= { sigAlgs 28 } + */ +#define DER_OID_V_id_slh_dsa_shake_192s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1C +#define DER_OID_SZ_id_slh_dsa_shake_192s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_192s[DER_OID_SZ_id_slh_dsa_shake_192s]; + +/* + * id-slh-dsa-shake-192f OBJECT IDENTIFIER ::= { sigAlgs 29 } + */ +#define DER_OID_V_id_slh_dsa_shake_192f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1D +#define DER_OID_SZ_id_slh_dsa_shake_192f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_192f[DER_OID_SZ_id_slh_dsa_shake_192f]; + +/* + * id-slh-dsa-shake-256s OBJECT IDENTIFIER ::= { sigAlgs 30 } + */ +#define DER_OID_V_id_slh_dsa_shake_256s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1E +#define DER_OID_SZ_id_slh_dsa_shake_256s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_256s[DER_OID_SZ_id_slh_dsa_shake_256s]; + +/* + * id-slh-dsa-shake-256f OBJECT IDENTIFIER ::= { sigAlgs 31 } + */ +#define DER_OID_V_id_slh_dsa_shake_256f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1F +#define DER_OID_SZ_id_slh_dsa_shake_256f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_256f[DER_OID_SZ_id_slh_dsa_shake_256f]; + + +int ossl_DER_w_algorithmIdentifier_SLH_DSA(WPACKET *pkt, int tag, SLH_DSA_KEY *key); diff --git a/deps/openssl/config/archs/VC-WIN64A/asm/apps/progs.c b/deps/openssl/config/archs/VC-WIN64A/asm/apps/progs.c index 43cef00799b86e..acc204a3e6e781 100644 --- a/deps/openssl/config/archs/VC-WIN64A/asm/apps/progs.c +++ b/deps/openssl/config/archs/VC-WIN64A/asm/apps/progs.c @@ -89,6 +89,7 @@ FUNCTION functions[] = { {FT_general, "s_time", s_time_main, s_time_options, NULL, NULL}, #endif {FT_general, "sess_id", sess_id_main, sess_id_options, NULL, NULL}, + {FT_general, "skeyutl", skeyutl_main, skeyutl_options, NULL, NULL}, {FT_general, "smime", smime_main, smime_options, NULL, NULL}, {FT_general, "speed", speed_main, speed_options, NULL, NULL}, {FT_general, "spkac", spkac_main, spkac_options, NULL, NULL}, @@ -225,9 +226,15 @@ FUNCTION functions[] = { {FT_cipher, "camellia-256-ecb", enc_main, enc_options, NULL}, #endif {FT_cipher, "base64", enc_main, enc_options, NULL}, -#ifdef ZLIB +#ifndef OPENSSL_NO_ZLIB {FT_cipher, "zlib", enc_main, enc_options, NULL}, #endif +#ifndef OPENSSL_NO_BROTLI + {FT_cipher, "brotli", enc_main, enc_options, NULL}, +#endif +#ifndef OPENSSL_NO_ZSTD + {FT_cipher, "zstd", enc_main, enc_options, NULL}, +#endif #ifndef OPENSSL_NO_DES {FT_cipher, "des", enc_main, enc_options, NULL}, #endif diff --git a/deps/openssl/config/archs/VC-WIN64A/asm/configdata.pm b/deps/openssl/config/archs/VC-WIN64A/asm/configdata.pm index 026579ed1d6bad..47a66eaa695118 100644 --- a/deps/openssl/config/archs/VC-WIN64A/asm/configdata.pm +++ b/deps/openssl/config/archs/VC-WIN64A/asm/configdata.pm @@ -32,6 +32,7 @@ our %config = ( "CPPINCLUDES" => [], "CXXFLAGS" => [], "FIPSKEY" => "f4556650ac31d35461610bac4ed81b1a181b2d8a43ea2854cbae22ca74560813", + "FIPS_VENDOR" => "OpenSSL FIPS Provider", "HASHBANGPERL" => "/usr/bin/env perl", "LD" => "link", "LDFLAGS" => [ @@ -46,7 +47,7 @@ our %config = ( "RANLIB" => "ranlib", "RC" => "rc", "RCFLAGS" => [], - "api" => "30000", + "api" => "30500", "b32" => "0", "b64" => "1", "b64l" => "0", @@ -68,11 +69,13 @@ our %config = ( "doc/build.info", "test/build.info", "engines/build.info", + "exporters/build.info", "crypto/objects/build.info", "crypto/buffer/build.info", "crypto/bio/build.info", "crypto/stack/build.info", "crypto/lhash/build.info", + "crypto/hashtable/build.info", "crypto/rand/build.info", "crypto/evp/build.info", "crypto/asn1/build.info", @@ -90,6 +93,7 @@ our %config = ( "crypto/md5/build.info", "crypto/sha/build.info", "crypto/mdc2/build.info", + "crypto/ml_kem/build.info", "crypto/hmac/build.info", "crypto/ripemd/build.info", "crypto/whrlpool/build.info", @@ -131,11 +135,19 @@ our %config = ( "crypto/cmp/build.info", "crypto/encode_decode/build.info", "crypto/ffc/build.info", + "crypto/hpke/build.info", + "crypto/thread/build.info", + "crypto/ml_dsa/build.info", + "crypto/slh_dsa/build.info", + "ssl/record/build.info", + "ssl/rio/build.info", + "ssl/quic/build.info", "apps/lib/build.info", "providers/common/build.info", "providers/implementations/build.info", "providers/fips/build.info", "doc/man1/build.info", + "ssl/record/methods/build.info", "providers/common/der/build.info", "providers/implementations/digests/build.info", "providers/implementations/ciphers/build.info", @@ -149,6 +161,7 @@ our %config = ( "providers/implementations/encode_decode/build.info", "providers/implementations/storemgmt/build.info", "providers/implementations/kem/build.info", + "providers/implementations/skeymgmt/build.info", "providers/implementations/rands/seeding/build.info" ], "build_metadata" => "", @@ -168,7 +181,7 @@ our %config = ( ], "dynamic_engines" => "0", "ex_libs" => [], - "full_version" => "3.0.17", + "full_version" => "3.5.1", "includes" => [], "lflags" => [], "lib_defines" => [ @@ -178,37 +191,51 @@ our %config = ( "major" => "3", "makedep_scheme" => "VC", "makedepcmd" => "\$(CC) /Zs /showIncludes", - "minor" => "0", + "minor" => "5", "openssl_api_defines" => [ - "OPENSSL_CONFIGURED_API=30000" + "OPENSSL_CONFIGURED_API=30500" ], "openssl_feature_defines" => [ "OPENSSL_RAND_SEED_OS", "OPENSSL_THREADS", "OPENSSL_NO_AFALGENG", "OPENSSL_NO_ASAN", + "OPENSSL_NO_BROTLI", + "OPENSSL_NO_BROTLI_DYNAMIC", "OPENSSL_NO_COMP", "OPENSSL_NO_CRYPTO_MDEBUG", "OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE", + "OPENSSL_NO_DEMOS", "OPENSSL_NO_DEVCRYPTOENG", "OPENSSL_NO_EC_NISTP_64_GCC_128", "OPENSSL_NO_EGD", "OPENSSL_NO_EXTERNAL_TESTS", + "OPENSSL_NO_FIPS_JITTER", "OPENSSL_NO_FUZZ_AFL", "OPENSSL_NO_FUZZ_LIBFUZZER", + "OPENSSL_NO_H3DEMO", + "OPENSSL_NO_HQINTEROP", + "OPENSSL_NO_JITTER", "OPENSSL_NO_KTLS", "OPENSSL_NO_LOADERENG", "OPENSSL_NO_MD2", "OPENSSL_NO_MSAN", + "OPENSSL_NO_PIE", "OPENSSL_NO_RC5", "OPENSSL_NO_SCTP", "OPENSSL_NO_SSL3", "OPENSSL_NO_SSL3_METHOD", + "OPENSSL_NO_SSLKEYLOG", + "OPENSSL_NO_TFO", "OPENSSL_NO_TRACE", "OPENSSL_NO_UBSAN", "OPENSSL_NO_UNIT_TEST", "OPENSSL_NO_UPLINK", "OPENSSL_NO_WEAK_SSL_CIPHERS", + "OPENSSL_NO_ZLIB", + "OPENSSL_NO_ZLIB_DYNAMIC", + "OPENSSL_NO_ZSTD", + "OPENSSL_NO_ZSTD_DYNAMIC", "OPENSSL_NO_DYNAMIC_ENGINE" ], "openssl_other_defines" => [ @@ -218,11 +245,11 @@ our %config = ( "OPENSSL_SYS_WIN64A" ], "openssldir" => "", - "options" => "enable-ssl-trace enable-fips no-afalgeng no-asan no-buildtest-c++ no-comp no-crypto-mdebug no-crypto-mdebug-backtrace no-devcryptoeng no-dynamic-engine no-ec_nistp_64_gcc_128 no-egd no-external-tests no-fuzz-afl no-fuzz-libfuzzer no-ktls no-loadereng no-md2 no-msan no-rc5 no-sctp no-shared no-ssl3 no-ssl3-method no-trace no-ubsan no-unit-test no-uplink no-weak-ssl-ciphers no-zlib no-zlib-dynamic", - "patch" => "17", + "options" => "enable-ssl-trace enable-fips no-afalgeng no-asan no-brotli no-brotli-dynamic no-buildtest-c++ no-comp no-crypto-mdebug no-crypto-mdebug-backtrace no-demos no-devcryptoeng no-dynamic-engine no-ec_nistp_64_gcc_128 no-egd no-external-tests no-fips-jitter no-fuzz-afl no-fuzz-libfuzzer no-h3demo no-hqinterop no-jitter no-ktls no-loadereng no-md2 no-msan no-pie no-rc5 no-sctp no-shared no-ssl3 no-ssl3-method no-sslkeylog no-tfo no-trace no-ubsan no-unit-test no-uplink no-weak-ssl-ciphers no-zlib no-zlib-dynamic no-zstd no-zstd-dynamic", + "patch" => "1", "perl_archname" => "x86_64-linux-gnu-thread-multi", "perl_cmd" => "/usr/bin/perl", - "perl_version" => "5.38.2", + "perl_version" => "5.34.0", "perlargv" => [ "no-comp", "no-shared", @@ -252,6 +279,7 @@ our %config = ( "LDLIBS" => undef, "MT" => undef, "MTFLAGS" => undef, + "OBJCOPY" => undef, "OPENSSL_LOCAL_CONFIG_DIR" => undef, "PERL" => undef, "RANLIB" => undef, @@ -275,7 +303,7 @@ our %config = ( "shlib_version" => "3", "sourcedir" => ".", "target" => "VC-WIN64A", - "version" => "3.0.17" + "version" => "3.5.1" ); our %target = ( "AR" => "lib", @@ -290,7 +318,7 @@ our %target = ( "LDFLAGS" => "/nologo /debug", "MT" => "mt", "MTFLAGS" => "-nologo", - "RANLIB" => "CODE(0x55a1fa929968)", + "RANLIB" => "CODE(0x55b8eb9ae8f0)", "RC" => "rc", "_conf_fname_int" => [ "Configurations/00-base-templates.conf", @@ -374,6 +402,8 @@ our %target = ( our @disablables = ( "acvp-tests", "afalgeng", + "apps", + "argon2", "aria", "asan", "asm", @@ -384,11 +414,14 @@ our @disablables = ( "autoload-config", "bf", "blake2", + "brotli", + "brotli-dynamic", "buildtest-c++", "bulk", "cached-fetch", "camellia", "capieng", + "winstore", "cast", "chacha", "cmac", @@ -397,11 +430,16 @@ our @disablables = ( "comp", "crypto-mdebug", "ct", + "default-thread-pool", + "demos", + "h3demo", + "hqinterop", "deprecated", "des", "devcryptoeng", "dgram", "dh", + "docs", "dsa", "dso", "dtls", @@ -411,6 +449,7 @@ our @disablables = ( "ec_nistp_64_gcc_128", "ecdh", "ecdsa", + "ecx", "egd", "engine", "err", @@ -418,10 +457,15 @@ our @disablables = ( "filenames", "fips", "fips-securitychecks", + "fips-post", + "fips-jitter", "fuzz-afl", "fuzz-libfuzzer", "gost", + "http", "idea", + "integrity-only-ciphers", + "jitter", "ktls", "legacy", "loadereng", @@ -429,6 +473,8 @@ our @disablables = ( "md2", "md4", "mdc2", + "ml-dsa", + "ml-kem", "module", "msan", "multiblock", @@ -437,10 +483,13 @@ our @disablables = ( "ocsp", "padlockeng", "pic", + "pie", "pinshared", "poly1305", "posix-io", "psk", + "quic", + "unstable-qlog", "rc2", "rc4", "rc5", @@ -454,7 +503,9 @@ our @disablables = ( "shared", "siphash", "siv", + "slh-dsa", "sm2", + "sm2-precomp", "sm3", "sm4", "sock", @@ -465,9 +516,13 @@ our @disablables = ( "ssl-trace", "static-engine", "stdio", + "sslkeylog", "tests", + "tfo", + "thread-pool", "threads", "tls", + "tls-deprecated-ec", "trace", "ts", "ubsan", @@ -478,6 +533,8 @@ our @disablables = ( "whirlpool", "zlib", "zlib-dynamic", + "zstd", + "zstd-dynamic", "ssl3", "ssl3-method", "tls1", @@ -498,33 +555,45 @@ our @disablables_int = ( our %disabled = ( "afalgeng" => "option", "asan" => "default", + "brotli" => "default", + "brotli-dynamic" => "default", "buildtest-c++" => "default", "comp" => "option", "crypto-mdebug" => "default", "crypto-mdebug-backtrace" => "default", + "demos" => "default", "devcryptoeng" => "default", "dynamic-engine" => "cascade", "ec_nistp_64_gcc_128" => "default", "egd" => "default", "external-tests" => "default", + "fips-jitter" => "default", "fuzz-afl" => "default", "fuzz-libfuzzer" => "default", + "h3demo" => "default", + "hqinterop" => "default", + "jitter" => "default", "ktls" => "default", "loadereng" => "cascade", "md2" => "default", "msan" => "default", + "pie" => "default", "rc5" => "default", "sctp" => "default", "shared" => "option", "ssl3" => "default", "ssl3-method" => "default", + "sslkeylog" => "default", + "tfo" => "default", "trace" => "default", "ubsan" => "default", "unit-test" => "default", "uplink" => "cascade", "weak-ssl-ciphers" => "default", "zlib" => "default", - "zlib-dynamic" => "default" + "zlib-dynamic" => "default", + "zstd" => "default", + "zstd-dynamic" => "default" ); our %withargs = (); our %unified_info = ( @@ -750,6 +819,11 @@ our %unified_info = ( "pod" => "1" } }, + "doc/man1/openssl-skeyutl.pod" => { + "doc/man1/openssl-skeyutl.pod.in" => { + "pod" => "1" + } + }, "doc/man1/openssl-smime.pod" => { "doc/man1/openssl-smime.pod.in" => { "pod" => "1" @@ -807,6 +881,21 @@ our %unified_info = ( } }, "generate" => { + "exporters/OpenSSLConfig.cmake" => { + "exporter" => "cmake" + }, + "exporters/OpenSSLConfigVersion.cmake" => { + "exporter" => "cmake" + }, + "exporters/libcrypto.pc" => { + "exporter" => "pkg-config" + }, + "exporters/libssl.pc" => { + "exporter" => "pkg-config" + }, + "exporters/openssl.pc" => { + "exporter" => "pkg-config" + }, "include/openssl/configuration.h" => { "skip" => "1" } @@ -827,6 +916,9 @@ our %unified_info = ( "providers/liblegacy.a" => { "noinst" => "1" }, + "providers/libtemplate.a" => { + "noinst" => "1" + }, "test/libtestutil.a" => { "has_main" => "1", "noinst" => "1" @@ -844,6 +936,9 @@ our %unified_info = ( } }, "programs" => { + "fuzz/acert-test" => { + "noinst" => "1" + }, "fuzz/asn1-test" => { "noinst" => "1" }, @@ -874,9 +969,60 @@ our %unified_info = ( "fuzz/ct-test" => { "noinst" => "1" }, + "fuzz/decoder-test" => { + "noinst" => "1" + }, + "fuzz/dtlsclient-test" => { + "noinst" => "1" + }, + "fuzz/dtlsserver-test" => { + "noinst" => "1" + }, + "fuzz/hashtable-test" => { + "noinst" => "1" + }, + "fuzz/ml-dsa-test" => { + "noinst" => "1" + }, + "fuzz/ml-kem-test" => { + "noinst" => "1" + }, + "fuzz/pem-test" => { + "noinst" => "1" + }, + "fuzz/provider-test" => { + "noinst" => "1" + }, + "fuzz/punycode-test" => { + "noinst" => "1" + }, + "fuzz/quic-client-test" => { + "noinst" => "1" + }, + "fuzz/quic-lcidm-test" => { + "noinst" => "1" + }, + "fuzz/quic-rcidm-test" => { + "noinst" => "1" + }, + "fuzz/quic-server-test" => { + "noinst" => "1" + }, + "fuzz/quic-srtm-test" => { + "noinst" => "1" + }, "fuzz/server-test" => { "noinst" => "1" }, + "fuzz/slh-dsa-test" => { + "noinst" => "1" + }, + "fuzz/smime-test" => { + "noinst" => "1" + }, + "fuzz/v3name-test" => { + "noinst" => "1" + }, "fuzz/x509-test" => { "noinst" => "1" }, @@ -928,18 +1074,30 @@ our %unified_info = ( "test/bftest" => { "noinst" => "1" }, + "test/bio_addr_test" => { + "noinst" => "1" + }, + "test/bio_base64_test" => { + "noinst" => "1" + }, "test/bio_callback_test" => { "noinst" => "1" }, "test/bio_core_test" => { "noinst" => "1" }, + "test/bio_dgram_test" => { + "noinst" => "1" + }, "test/bio_enc_test" => { "noinst" => "1" }, "test/bio_memleak_test" => { "noinst" => "1" }, + "test/bio_meth_test" => { + "noinst" => "1" + }, "test/bio_prefix_text" => { "noinst" => "1" }, @@ -949,6 +1107,9 @@ our %unified_info = ( "test/bio_readbuffer_test" => { "noinst" => "1" }, + "test/bio_tfo_test" => { + "noinst" => "1" + }, "test/bioprinttest" => { "noinst" => "1" }, @@ -958,6 +1119,9 @@ our %unified_info = ( "test/bntest" => { "noinst" => "1" }, + "test/build_wincrypt_test" => { + "noinst" => "1" + }, "test/buildtest_c_aes" => { "noinst" => "1" }, @@ -973,6 +1137,9 @@ our %unified_info = ( "test/buildtest_c_buffer" => { "noinst" => "1" }, + "test/buildtest_c_byteorder" => { + "noinst" => "1" + }, "test/buildtest_c_camellia" => { "noinst" => "1" }, @@ -997,9 +1164,6 @@ our %unified_info = ( "test/buildtest_c_core_dispatch" => { "noinst" => "1" }, - "test/buildtest_c_core_names" => { - "noinst" => "1" - }, "test/buildtest_c_core_object" => { "noinst" => "1" }, @@ -1024,6 +1188,9 @@ our %unified_info = ( "test/buildtest_c_e_os2" => { "noinst" => "1" }, + "test/buildtest_c_e_ostime" => { + "noinst" => "1" + }, "test/buildtest_c_ebcdic" => { "noinst" => "1" }, @@ -1051,12 +1218,18 @@ our %unified_info = ( "test/buildtest_c_hmac" => { "noinst" => "1" }, + "test/buildtest_c_hpke" => { + "noinst" => "1" + }, "test/buildtest_c_http" => { "noinst" => "1" }, "test/buildtest_c_idea" => { "noinst" => "1" }, + "test/buildtest_c_indicator" => { + "noinst" => "1" + }, "test/buildtest_c_kdf" => { "noinst" => "1" }, @@ -1072,6 +1245,9 @@ our %unified_info = ( "test/buildtest_c_mdc2" => { "noinst" => "1" }, + "test/buildtest_c_ml_kem" => { + "noinst" => "1" + }, "test/buildtest_c_modes" => { "noinst" => "1" }, @@ -1102,6 +1278,9 @@ our %unified_info = ( "test/buildtest_c_provider" => { "noinst" => "1" }, + "test/buildtest_c_quic" => { + "noinst" => "1" + }, "test/buildtest_c_rand" => { "noinst" => "1" }, @@ -1144,6 +1323,9 @@ our %unified_info = ( "test/buildtest_c_symhacks" => { "noinst" => "1" }, + "test/buildtest_c_thread" => { + "noinst" => "1" + }, "test/buildtest_c_tls1" => { "noinst" => "1" }, @@ -1159,6 +1341,12 @@ our %unified_info = ( "test/buildtest_c_whrlpool" => { "noinst" => "1" }, + "test/byteorder_test" => { + "noinst" => "1" + }, + "test/ca_internals_test" => { + "noinst" => "1" + }, "test/casttest" => { "noinst" => "1" }, @@ -1243,6 +1431,9 @@ our %unified_info = ( "test/danetest" => { "noinst" => "1" }, + "test/decoder_propq_test" => { + "noinst" => "1" + }, "test/defltfips_test" => { "noinst" => "1" }, @@ -1315,15 +1506,24 @@ our %unified_info = ( "test/evp_pkey_ctx_new_from_name" => { "noinst" => "1" }, + "test/evp_pkey_dhkem_test" => { + "noinst" => "1" + }, "test/evp_pkey_dparams_test" => { "noinst" => "1" }, "test/evp_pkey_provided_test" => { "noinst" => "1" }, + "test/evp_skey_test" => { + "noinst" => "1" + }, "test/evp_test" => { "noinst" => "1" }, + "test/evp_xof_test" => { + "noinst" => "1" + }, "test/exdatatest" => { "noinst" => "1" }, @@ -1351,6 +1551,9 @@ our %unified_info = ( "test/hmactest" => { "noinst" => "1" }, + "test/hpke_test" => { + "noinst" => "1" + }, "test/http_test" => { "noinst" => "1" }, @@ -1360,12 +1563,18 @@ our %unified_info = ( "test/igetest" => { "noinst" => "1" }, + "test/json_test" => { + "noinst" => "1" + }, "test/keymgmt_internal_test" => { "noinst" => "1" }, "test/lhash_test" => { "noinst" => "1" }, + "test/list_test" => { + "noinst" => "1" + }, "test/localetest" => { "noinst" => "1" }, @@ -1375,9 +1584,21 @@ our %unified_info = ( "test/mdc2test" => { "noinst" => "1" }, + "test/membio_test" => { + "noinst" => "1" + }, "test/memleaktest" => { "noinst" => "1" }, + "test/ml_dsa_test" => { + "noinst" => "1" + }, + "test/ml_kem_evp_extra_test" => { + "noinst" => "1" + }, + "test/ml_kem_internal_test" => { + "noinst" => "1" + }, "test/modes_internal_test" => { "noinst" => "1" }, @@ -1396,6 +1617,9 @@ our %unified_info = ( "test/packettest" => { "noinst" => "1" }, + "test/pairwise_fail_test" => { + "noinst" => "1" + }, "test/param_build_test" => { "noinst" => "1" }, @@ -1420,6 +1644,9 @@ our %unified_info = ( "test/pemtest" => { "noinst" => "1" }, + "test/pkcs12_api_test" => { + "noinst" => "1" + }, "test/pkcs12_format_test" => { "noinst" => "1" }, @@ -1435,6 +1662,9 @@ our %unified_info = ( "test/poly1305_internal_test" => { "noinst" => "1" }, + "test/priority_queue_test" => { + "noinst" => "1" + }, "test/property_test" => { "noinst" => "1" }, @@ -1444,6 +1674,9 @@ our %unified_info = ( "test/provfetchtest" => { "noinst" => "1" }, + "test/provider_default_search_path_test" => { + "noinst" => "1" + }, "test/provider_fallback_test" => { "noinst" => "1" }, @@ -1462,6 +1695,72 @@ our %unified_info = ( "test/punycode_test" => { "noinst" => "1" }, + "test/quic_ackm_test" => { + "noinst" => "1" + }, + "test/quic_cc_test" => { + "noinst" => "1" + }, + "test/quic_cfq_test" => { + "noinst" => "1" + }, + "test/quic_client_test" => { + "noinst" => "1" + }, + "test/quic_fc_test" => { + "noinst" => "1" + }, + "test/quic_fifd_test" => { + "noinst" => "1" + }, + "test/quic_lcidm_test" => { + "noinst" => "1" + }, + "test/quic_multistream_test" => { + "noinst" => "1" + }, + "test/quic_newcid_test" => { + "noinst" => "1" + }, + "test/quic_qlog_test" => { + "noinst" => "1" + }, + "test/quic_radix_test" => { + "noinst" => "1" + }, + "test/quic_rcidm_test" => { + "noinst" => "1" + }, + "test/quic_record_test" => { + "noinst" => "1" + }, + "test/quic_srt_gen_test" => { + "noinst" => "1" + }, + "test/quic_srtm_test" => { + "noinst" => "1" + }, + "test/quic_stream_test" => { + "noinst" => "1" + }, + "test/quic_tserver_test" => { + "noinst" => "1" + }, + "test/quic_txp_test" => { + "noinst" => "1" + }, + "test/quic_txpim_test" => { + "noinst" => "1" + }, + "test/quic_wire_test" => { + "noinst" => "1" + }, + "test/quicapitest" => { + "noinst" => "1" + }, + "test/quicfaultstest" => { + "noinst" => "1" + }, "test/rand_status_test" => { "noinst" => "1" }, @@ -1477,12 +1776,15 @@ our %unified_info = ( "test/rc5test" => { "noinst" => "1" }, - "test/rdrand_sanitytest" => { + "test/rdcpu_sanitytest" => { "noinst" => "1" }, "test/recordlentest" => { "noinst" => "1" }, + "test/rpktest" => { + "noinst" => "1" + }, "test/rsa_complex" => { "noinst" => "1" }, @@ -1495,6 +1797,12 @@ our %unified_info = ( "test/rsa_test" => { "noinst" => "1" }, + "test/rsa_x931_test" => { + "noinst" => "1" + }, + "test/safe_math_test" => { + "noinst" => "1" + }, "test/sanitytest" => { "noinst" => "1" }, @@ -1510,6 +1818,9 @@ our %unified_info = ( "test/siphash_internal_test" => { "noinst" => "1" }, + "test/slh_dsa_test" => { + "noinst" => "1" + }, "test/sm2_internal_test" => { "noinst" => "1" }, @@ -1531,6 +1842,9 @@ our %unified_info = ( "test/ssl_ctx_test" => { "noinst" => "1" }, + "test/ssl_handshake_rtt_test" => { + "noinst" => "1" + }, "test/ssl_old_test" => { "noinst" => "1" }, @@ -1552,12 +1866,18 @@ our %unified_info = ( "test/stack_test" => { "noinst" => "1" }, + "test/strtoultest" => { + "noinst" => "1" + }, "test/sysdefaulttest" => { "noinst" => "1" }, "test/test_test" => { "noinst" => "1" }, + "test/threadpool_test" => { + "noinst" => "1" + }, "test/threadstest" => { "noinst" => "1" }, @@ -1567,12 +1887,18 @@ our %unified_info = ( "test/time_offset_test" => { "noinst" => "1" }, + "test/time_test" => { + "noinst" => "1" + }, "test/tls13ccstest" => { "noinst" => "1" }, "test/tls13encryptiontest" => { "noinst" => "1" }, + "test/tls13groupselection_test" => { + "noinst" => "1" + }, "test/trace_api_test" => { "noinst" => "1" }, @@ -1600,6 +1926,9 @@ our %unified_info = ( "test/wpackettest" => { "noinst" => "1" }, + "test/x509_acert_test" => { + "noinst" => "1" + }, "test/x509_check_cert_pkey_test" => { "noinst" => "1" }, @@ -1609,6 +1938,15 @@ our %unified_info = ( "test/x509_internal_test" => { "noinst" => "1" }, + "test/x509_load_cert_file_test" => { + "noinst" => "1" + }, + "test/x509_req_test" => { + "noinst" => "1" + }, + "test/x509_test" => { + "noinst" => "1" + }, "test/x509_time_test" => { "noinst" => "1" }, @@ -1685,6 +2023,7 @@ our %unified_info = ( "ECP_NISTZ256_ASM", "KECCAK1600_ASM", "OPENSSL_CPUID_OBJ", + "OPENSSL_IA32_SSE2", "SHA1_ASM", "SHA256_ASM", "SHA512_ASM", @@ -1713,6 +2052,9 @@ our %unified_info = ( "MD5_ASM", "RC4_ASM" ], + "test/endecode_test" => [ + "STATIC_LEGACY" + ], "test/evp_extra_test" => [ "STATIC_LEGACY" ], @@ -1725,14 +2067,21 @@ our %unified_info = ( }, "depends" => { "" => [ + "OpenSSLConfigVersion.cmake", + "crypto/params_idx.c", + "exporters/OpenSSLConfigVersion.cmake", + "exporters/openssl.pc", "include/crypto/bn_conf.h", "include/crypto/dso_conf.h", + "include/internal/param_names.h", "include/openssl/asn1.h", "include/openssl/asn1t.h", "include/openssl/bio.h", "include/openssl/cmp.h", "include/openssl/cms.h", + "include/openssl/comp.h", "include/openssl/conf.h", + "include/openssl/core_names.h", "include/openssl/crmf.h", "include/openssl/crypto.h", "include/openssl/ct.h", @@ -1749,10 +2098,22 @@ our %unified_info = ( "include/openssl/ssl.h", "include/openssl/ui.h", "include/openssl/x509.h", + "include/openssl/x509_acert.h", "include/openssl/x509_vfy.h", "include/openssl/x509v3.h", + "openssl.pc", "test/provider_internal_test.cnf" ], + "OpenSSLConfig.cmake" => [ + "builddata.pm" + ], + "OpenSSLConfigVersion.cmake" => [ + "OpenSSLConfig.cmake", + "builddata.pm" + ], + "apps/ca_internals_test-bin-ca.o" => [ + "apps/progs.h" + ], "apps/lib/cmp_client_test-bin-cmp_mock_srv.o" => [ "apps/progs.h" ], @@ -1898,6 +2259,9 @@ our %unified_info = ( "apps/openssl-bin-sess_id.o" => [ "apps/progs.h" ], + "apps/openssl-bin-skeyutl.o" => [ + "apps/progs.h" + ], "apps/openssl-bin-smime.o" => [ "apps/progs.h" ], @@ -1986,6 +2350,9 @@ our %unified_info = ( "crypto/libcrypto-lib-info.o" => [ "crypto/buildinf.h" ], + "crypto/params_idx.c" => [ + "util/perl|OpenSSL/paramnames.pm" + ], "crypto/rc4/rc4-586.S" => [ "crypto/perlasm/x86asm.pl" ], @@ -2151,6 +2518,9 @@ our %unified_info = ( "doc/html/man1/openssl-sess_id.html" => [ "doc/man1/openssl-sess_id.pod" ], + "doc/html/man1/openssl-skeyutl.html" => [ + "doc/man1/openssl-skeyutl.pod" + ], "doc/html/man1/openssl-smime.html" => [ "doc/man1/openssl-smime.pod" ], @@ -2292,6 +2662,9 @@ our %unified_info = ( "doc/html/man3/BIO_get_ex_new_index.html" => [ "doc/man3/BIO_get_ex_new_index.pod" ], + "doc/html/man3/BIO_get_rpoll_descriptor.html" => [ + "doc/man3/BIO_get_rpoll_descriptor.pod" + ], "doc/html/man3/BIO_meth_new.html" => [ "doc/man3/BIO_meth_new.pod" ], @@ -2328,6 +2701,9 @@ our %unified_info = ( "doc/html/man3/BIO_s_datagram.html" => [ "doc/man3/BIO_s_datagram.pod" ], + "doc/html/man3/BIO_s_dgram_pair.html" => [ + "doc/man3/BIO_s_dgram_pair.pod" + ], "doc/html/man3/BIO_s_fd.html" => [ "doc/man3/BIO_s_fd.pod" ], @@ -2343,6 +2719,9 @@ our %unified_info = ( "doc/html/man3/BIO_s_socket.html" => [ "doc/man3/BIO_s_socket.pod" ], + "doc/html/man3/BIO_sendmmsg.html" => [ + "doc/man3/BIO_sendmmsg.pod" + ], "doc/html/man3/BIO_set_callback.html" => [ "doc/man3/BIO_set_callback.pod" ], @@ -2415,6 +2794,9 @@ our %unified_info = ( "doc/html/man3/BUF_MEM_new.html" => [ "doc/man3/BUF_MEM_new.pod" ], + "doc/html/man3/CMAC_CTX.html" => [ + "doc/man3/CMAC_CTX.pod" + ], "doc/html/man3/CMS_EncryptedData_decrypt.html" => [ "doc/man3/CMS_EncryptedData_decrypt.pod" ], @@ -2481,6 +2863,9 @@ our %unified_info = ( "doc/html/man3/CMS_verify_receipt.html" => [ "doc/man3/CMS_verify_receipt.pod" ], + "doc/html/man3/COMP_CTX_new.html" => [ + "doc/man3/COMP_CTX_new.pod" + ], "doc/html/man3/CONF_modules_free.html" => [ "doc/man3/CONF_modules_free.pod" ], @@ -2580,6 +2965,12 @@ our %unified_info = ( "doc/html/man3/DTLS_set_timer_cb.html" => [ "doc/man3/DTLS_set_timer_cb.pod" ], + "doc/html/man3/DTLSv1_get_timeout.html" => [ + "doc/man3/DTLSv1_get_timeout.pod" + ], + "doc/html/man3/DTLSv1_handle_timeout.html" => [ + "doc/man3/DTLSv1_handle_timeout.pod" + ], "doc/html/man3/DTLSv1_listen.html" => [ "doc/man3/DTLSv1_listen.pod" ], @@ -2718,6 +3109,9 @@ our %unified_info = ( "doc/html/man3/EVP_PKEY_CTX_get0_pkey.html" => [ "doc/man3/EVP_PKEY_CTX_get0_pkey.pod" ], + "doc/html/man3/EVP_PKEY_CTX_get_algor.html" => [ + "doc/man3/EVP_PKEY_CTX_get_algor.pod" + ], "doc/html/man3/EVP_PKEY_CTX_new.html" => [ "doc/man3/EVP_PKEY_CTX_new.pod" ], @@ -2835,6 +3229,12 @@ our %unified_info = ( "doc/html/man3/EVP_SIGNATURE.html" => [ "doc/man3/EVP_SIGNATURE.pod" ], + "doc/html/man3/EVP_SKEY.html" => [ + "doc/man3/EVP_SKEY.pod" + ], + "doc/html/man3/EVP_SKEYMGMT.html" => [ + "doc/man3/EVP_SKEYMGMT.pod" + ], "doc/html/man3/EVP_SealInit.html" => [ "doc/man3/EVP_SealInit.pod" ], @@ -2922,6 +3322,9 @@ our %unified_info = ( "doc/html/man3/EVP_whirlpool.html" => [ "doc/man3/EVP_whirlpool.pod" ], + "doc/html/man3/GENERAL_NAME.html" => [ + "doc/man3/GENERAL_NAME.pod" + ], "doc/html/man3/HMAC.html" => [ "doc/man3/HMAC.pod" ], @@ -2994,9 +3397,15 @@ our %unified_info = ( "doc/html/man3/OPENSSL_load_builtin_modules.html" => [ "doc/man3/OPENSSL_load_builtin_modules.pod" ], + "doc/html/man3/OPENSSL_load_u16_le.html" => [ + "doc/man3/OPENSSL_load_u16_le.pod" + ], "doc/html/man3/OPENSSL_malloc.html" => [ "doc/man3/OPENSSL_malloc.pod" ], + "doc/html/man3/OPENSSL_riscvcap.html" => [ + "doc/man3/OPENSSL_riscvcap.pod" + ], "doc/html/man3/OPENSSL_s390xcap.html" => [ "doc/man3/OPENSSL_s390xcap.pod" ], @@ -3012,12 +3421,18 @@ our %unified_info = ( "doc/html/man3/OSSL_CALLBACK.html" => [ "doc/man3/OSSL_CALLBACK.pod" ], + "doc/html/man3/OSSL_CMP_ATAV_set0.html" => [ + "doc/man3/OSSL_CMP_ATAV_set0.pod" + ], "doc/html/man3/OSSL_CMP_CTX_new.html" => [ "doc/man3/OSSL_CMP_CTX_new.pod" ], "doc/html/man3/OSSL_CMP_HDR_get0_transactionID.html" => [ "doc/man3/OSSL_CMP_HDR_get0_transactionID.pod" ], + "doc/html/man3/OSSL_CMP_ITAV_new_caCerts.html" => [ + "doc/man3/OSSL_CMP_ITAV_new_caCerts.pod" + ], "doc/html/man3/OSSL_CMP_ITAV_set0.html" => [ "doc/man3/OSSL_CMP_ITAV_set0.pod" ], @@ -3087,9 +3502,18 @@ our %unified_info = ( "doc/html/man3/OSSL_ENCODER_to_bio.html" => [ "doc/man3/OSSL_ENCODER_to_bio.pod" ], + "doc/html/man3/OSSL_ERR_STATE_save.html" => [ + "doc/man3/OSSL_ERR_STATE_save.pod" + ], "doc/html/man3/OSSL_ESS_check_signing_certs.html" => [ "doc/man3/OSSL_ESS_check_signing_certs.pod" ], + "doc/html/man3/OSSL_GENERAL_NAMES_print.html" => [ + "doc/man3/OSSL_GENERAL_NAMES_print.pod" + ], + "doc/html/man3/OSSL_HPKE_CTX_new.html" => [ + "doc/man3/OSSL_HPKE_CTX_new.pod" + ], "doc/html/man3/OSSL_HTTP_REQ_CTX.html" => [ "doc/man3/OSSL_HTTP_REQ_CTX.pod" ], @@ -3099,12 +3523,24 @@ our %unified_info = ( "doc/html/man3/OSSL_HTTP_transfer.html" => [ "doc/man3/OSSL_HTTP_transfer.pod" ], + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX.html" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX.pod" + ], + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX_print.html" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX_print.pod" + ], + "doc/html/man3/OSSL_INDICATOR_set_callback.html" => [ + "doc/man3/OSSL_INDICATOR_set_callback.pod" + ], "doc/html/man3/OSSL_ITEM.html" => [ "doc/man3/OSSL_ITEM.pod" ], "doc/html/man3/OSSL_LIB_CTX.html" => [ "doc/man3/OSSL_LIB_CTX.pod" ], + "doc/html/man3/OSSL_LIB_CTX_set_conf_diagnostics.html" => [ + "doc/man3/OSSL_LIB_CTX_set_conf_diagnostics.pod" + ], "doc/html/man3/OSSL_PARAM.html" => [ "doc/man3/OSSL_PARAM.pod" ], @@ -3120,9 +3556,15 @@ our %unified_info = ( "doc/html/man3/OSSL_PARAM_int.html" => [ "doc/man3/OSSL_PARAM_int.pod" ], + "doc/html/man3/OSSL_PARAM_print_to_bio.html" => [ + "doc/man3/OSSL_PARAM_print_to_bio.pod" + ], "doc/html/man3/OSSL_PROVIDER.html" => [ "doc/man3/OSSL_PROVIDER.pod" ], + "doc/html/man3/OSSL_QUIC_client_method.html" => [ + "doc/man3/OSSL_QUIC_client_method.pod" + ], "doc/html/man3/OSSL_SELF_TEST_new.html" => [ "doc/man3/OSSL_SELF_TEST_new.pod" ], @@ -3147,6 +3589,9 @@ our %unified_info = ( "doc/html/man3/OSSL_STORE_open.html" => [ "doc/man3/OSSL_STORE_open.pod" ], + "doc/html/man3/OSSL_sleep.html" => [ + "doc/man3/OSSL_sleep.pod" + ], "doc/html/man3/OSSL_trace_enabled.html" => [ "doc/man3/OSSL_trace_enabled.pod" ], @@ -3162,6 +3607,9 @@ our %unified_info = ( "doc/html/man3/OpenSSL_version.html" => [ "doc/man3/OpenSSL_version.pod" ], + "doc/html/man3/PBMAC1_get1_pbkdf2_param.html" => [ + "doc/man3/PBMAC1_get1_pbkdf2_param.pod" + ], "doc/html/man3/PEM_X509_INFO_read_bio_ex.html" => [ "doc/man3/PEM_X509_INFO_read_bio_ex.pod" ], @@ -3198,6 +3646,9 @@ our %unified_info = ( "doc/html/man3/PKCS12_SAFEBAG_get1_cert.html" => [ "doc/man3/PKCS12_SAFEBAG_get1_cert.pod" ], + "doc/html/man3/PKCS12_SAFEBAG_set0_attrs.html" => [ + "doc/man3/PKCS12_SAFEBAG_set0_attrs.pod" + ], "doc/html/man3/PKCS12_add1_attr_by_NID.html" => [ "doc/man3/PKCS12_add1_attr_by_NID.pod" ], @@ -3471,6 +3922,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set0_CA_list.html" => [ "doc/man3/SSL_CTX_set0_CA_list.pod" ], + "doc/html/man3/SSL_CTX_set1_cert_comp_preference.html" => [ + "doc/man3/SSL_CTX_set1_cert_comp_preference.pod" + ], "doc/html/man3/SSL_CTX_set1_curves.html" => [ "doc/man3/SSL_CTX_set1_curves.pod" ], @@ -3510,6 +3964,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_default_passwd_cb.html" => [ "doc/man3/SSL_CTX_set_default_passwd_cb.pod" ], + "doc/html/man3/SSL_CTX_set_domain_flags.html" => [ + "doc/man3/SSL_CTX_set_domain_flags.pod" + ], "doc/html/man3/SSL_CTX_set_generate_session_id.html" => [ "doc/man3/SSL_CTX_set_generate_session_id.pod" ], @@ -3531,6 +3988,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_msg_callback.html" => [ "doc/man3/SSL_CTX_set_msg_callback.pod" ], + "doc/html/man3/SSL_CTX_set_new_pending_conn_cb.html" => [ + "doc/man3/SSL_CTX_set_new_pending_conn_cb.pod" + ], "doc/html/man3/SSL_CTX_set_num_tickets.html" => [ "doc/man3/SSL_CTX_set_num_tickets.pod" ], @@ -3645,6 +4105,9 @@ our %unified_info = ( "doc/html/man3/SSL_accept.html" => [ "doc/man3/SSL_accept.pod" ], + "doc/html/man3/SSL_accept_stream.html" => [ + "doc/man3/SSL_accept_stream.pod" + ], "doc/html/man3/SSL_alert_type_string.html" => [ "doc/man3/SSL_alert_type_string.pod" ], @@ -3672,9 +4135,21 @@ our %unified_info = ( "doc/html/man3/SSL_free.html" => [ "doc/man3/SSL_free.pod" ], + "doc/html/man3/SSL_get0_connection.html" => [ + "doc/man3/SSL_get0_connection.pod" + ], + "doc/html/man3/SSL_get0_group_name.html" => [ + "doc/man3/SSL_get0_group_name.pod" + ], + "doc/html/man3/SSL_get0_peer_rpk.html" => [ + "doc/man3/SSL_get0_peer_rpk.pod" + ], "doc/html/man3/SSL_get0_peer_scts.html" => [ "doc/man3/SSL_get0_peer_scts.pod" ], + "doc/html/man3/SSL_get1_builtin_sigalgs.html" => [ + "doc/man3/SSL_get1_builtin_sigalgs.pod" + ], "doc/html/man3/SSL_get_SSL_CTX.html" => [ "doc/man3/SSL_get_SSL_CTX.pod" ], @@ -3690,6 +4165,9 @@ our %unified_info = ( "doc/html/man3/SSL_get_client_random.html" => [ "doc/man3/SSL_get_client_random.pod" ], + "doc/html/man3/SSL_get_conn_close_info.html" => [ + "doc/man3/SSL_get_conn_close_info.pod" + ], "doc/html/man3/SSL_get_current_cipher.html" => [ "doc/man3/SSL_get_current_cipher.pod" ], @@ -3699,12 +4177,18 @@ our %unified_info = ( "doc/html/man3/SSL_get_error.html" => [ "doc/man3/SSL_get_error.pod" ], + "doc/html/man3/SSL_get_event_timeout.html" => [ + "doc/man3/SSL_get_event_timeout.pod" + ], "doc/html/man3/SSL_get_extms_support.html" => [ "doc/man3/SSL_get_extms_support.pod" ], "doc/html/man3/SSL_get_fd.html" => [ "doc/man3/SSL_get_fd.pod" ], + "doc/html/man3/SSL_get_handshake_rtt.html" => [ + "doc/man3/SSL_get_handshake_rtt.pod" + ], "doc/html/man3/SSL_get_peer_cert_chain.html" => [ "doc/man3/SSL_get_peer_cert_chain.pod" ], @@ -3723,12 +4207,24 @@ our %unified_info = ( "doc/html/man3/SSL_get_rbio.html" => [ "doc/man3/SSL_get_rbio.pod" ], + "doc/html/man3/SSL_get_rpoll_descriptor.html" => [ + "doc/man3/SSL_get_rpoll_descriptor.pod" + ], "doc/html/man3/SSL_get_session.html" => [ "doc/man3/SSL_get_session.pod" ], "doc/html/man3/SSL_get_shared_sigalgs.html" => [ "doc/man3/SSL_get_shared_sigalgs.pod" ], + "doc/html/man3/SSL_get_stream_id.html" => [ + "doc/man3/SSL_get_stream_id.pod" + ], + "doc/html/man3/SSL_get_stream_read_state.html" => [ + "doc/man3/SSL_get_stream_read_state.pod" + ], + "doc/html/man3/SSL_get_value_uint.html" => [ + "doc/man3/SSL_get_value_uint.pod" + ], "doc/html/man3/SSL_get_verify_result.html" => [ "doc/man3/SSL_get_verify_result.pod" ], @@ -3738,9 +4234,15 @@ our %unified_info = ( "doc/html/man3/SSL_group_to_name.html" => [ "doc/man3/SSL_group_to_name.pod" ], + "doc/html/man3/SSL_handle_events.html" => [ + "doc/man3/SSL_handle_events.pod" + ], "doc/html/man3/SSL_in_init.html" => [ "doc/man3/SSL_in_init.pod" ], + "doc/html/man3/SSL_inject_net_dgram.html" => [ + "doc/man3/SSL_inject_net_dgram.pod" + ], "doc/html/man3/SSL_key_update.html" => [ "doc/man3/SSL_key_update.pod" ], @@ -3753,9 +4255,21 @@ our %unified_info = ( "doc/html/man3/SSL_new.html" => [ "doc/man3/SSL_new.pod" ], + "doc/html/man3/SSL_new_domain.html" => [ + "doc/man3/SSL_new_domain.pod" + ], + "doc/html/man3/SSL_new_listener.html" => [ + "doc/man3/SSL_new_listener.pod" + ], + "doc/html/man3/SSL_new_stream.html" => [ + "doc/man3/SSL_new_stream.pod" + ], "doc/html/man3/SSL_pending.html" => [ "doc/man3/SSL_pending.pod" ], + "doc/html/man3/SSL_poll.html" => [ + "doc/man3/SSL_poll.pod" + ], "doc/html/man3/SSL_read.html" => [ "doc/man3/SSL_read.pod" ], @@ -3771,24 +4285,45 @@ our %unified_info = ( "doc/html/man3/SSL_set1_host.html" => [ "doc/man3/SSL_set1_host.pod" ], + "doc/html/man3/SSL_set1_initial_peer_addr.html" => [ + "doc/man3/SSL_set1_initial_peer_addr.pod" + ], + "doc/html/man3/SSL_set1_server_cert_type.html" => [ + "doc/man3/SSL_set1_server_cert_type.pod" + ], "doc/html/man3/SSL_set_async_callback.html" => [ "doc/man3/SSL_set_async_callback.pod" ], "doc/html/man3/SSL_set_bio.html" => [ "doc/man3/SSL_set_bio.pod" ], + "doc/html/man3/SSL_set_blocking_mode.html" => [ + "doc/man3/SSL_set_blocking_mode.pod" + ], "doc/html/man3/SSL_set_connect_state.html" => [ "doc/man3/SSL_set_connect_state.pod" ], + "doc/html/man3/SSL_set_default_stream_mode.html" => [ + "doc/man3/SSL_set_default_stream_mode.pod" + ], "doc/html/man3/SSL_set_fd.html" => [ "doc/man3/SSL_set_fd.pod" ], + "doc/html/man3/SSL_set_incoming_stream_policy.html" => [ + "doc/man3/SSL_set_incoming_stream_policy.pod" + ], + "doc/html/man3/SSL_set_quic_tls_cbs.html" => [ + "doc/man3/SSL_set_quic_tls_cbs.pod" + ], "doc/html/man3/SSL_set_retry_verify.html" => [ "doc/man3/SSL_set_retry_verify.pod" ], "doc/html/man3/SSL_set_session.html" => [ "doc/man3/SSL_set_session.pod" ], + "doc/html/man3/SSL_set_session_secret_cb.html" => [ + "doc/man3/SSL_set_session_secret_cb.pod" + ], "doc/html/man3/SSL_set_shutdown.html" => [ "doc/man3/SSL_set_shutdown.pod" ], @@ -3801,6 +4336,12 @@ our %unified_info = ( "doc/html/man3/SSL_state_string.html" => [ "doc/man3/SSL_state_string.pod" ], + "doc/html/man3/SSL_stream_conclude.html" => [ + "doc/man3/SSL_stream_conclude.pod" + ], + "doc/html/man3/SSL_stream_reset.html" => [ + "doc/man3/SSL_stream_reset.pod" + ], "doc/html/man3/SSL_want.html" => [ "doc/man3/SSL_want.pod" ], @@ -3810,8 +4351,8 @@ our %unified_info = ( "doc/html/man3/TS_RESP_CTX_new.html" => [ "doc/man3/TS_RESP_CTX_new.pod" ], - "doc/html/man3/TS_VERIFY_CTX_set_certs.html" => [ - "doc/man3/TS_VERIFY_CTX_set_certs.pod" + "doc/html/man3/TS_VERIFY_CTX.html" => [ + "doc/man3/TS_VERIFY_CTX.pod" ], "doc/html/man3/UI_STRING.html" => [ "doc/man3/UI_STRING.pod" @@ -3831,6 +4372,21 @@ our %unified_info = ( "doc/html/man3/X509V3_set_ctx.html" => [ "doc/man3/X509V3_set_ctx.pod" ], + "doc/html/man3/X509_ACERT_add1_attr.html" => [ + "doc/man3/X509_ACERT_add1_attr.pod" + ], + "doc/html/man3/X509_ACERT_add_attr_nconf.html" => [ + "doc/man3/X509_ACERT_add_attr_nconf.pod" + ], + "doc/html/man3/X509_ACERT_get0_holder_baseCertId.html" => [ + "doc/man3/X509_ACERT_get0_holder_baseCertId.pod" + ], + "doc/html/man3/X509_ACERT_get_attr.html" => [ + "doc/man3/X509_ACERT_get_attr.pod" + ], + "doc/html/man3/X509_ACERT_print_ex.html" => [ + "doc/man3/X509_ACERT_print_ex.pod" + ], "doc/html/man3/X509_ALGOR_dup.html" => [ "doc/man3/X509_ALGOR_dup.pod" ], @@ -3879,6 +4435,9 @@ our %unified_info = ( "doc/html/man3/X509_SIG_get0.html" => [ "doc/man3/X509_SIG_get0.pod" ], + "doc/html/man3/X509_STORE_CTX_get_by_subject.html" => [ + "doc/man3/X509_STORE_CTX_get_by_subject.pod" + ], "doc/html/man3/X509_STORE_CTX_get_error.html" => [ "doc/man3/X509_STORE_CTX_get_error.pod" ], @@ -3945,6 +4504,9 @@ our %unified_info = ( "doc/html/man3/X509_get0_uids.html" => [ "doc/man3/X509_get0_uids.pod" ], + "doc/html/man3/X509_get_default_cert_file.html" => [ + "doc/man3/X509_get_default_cert_file.pod" + ], "doc/html/man3/X509_get_extension_flags.html" => [ "doc/man3/X509_get_extension_flags.pod" ], @@ -4068,9 +4630,15 @@ our %unified_info = ( "doc/html/man7/EVP_CIPHER-SM4.html" => [ "doc/man7/EVP_CIPHER-SM4.pod" ], + "doc/html/man7/EVP_KDF-ARGON2.html" => [ + "doc/man7/EVP_KDF-ARGON2.pod" + ], "doc/html/man7/EVP_KDF-HKDF.html" => [ "doc/man7/EVP_KDF-HKDF.pod" ], + "doc/html/man7/EVP_KDF-HMAC-DRBG.html" => [ + "doc/man7/EVP_KDF-HMAC-DRBG.pod" + ], "doc/html/man7/EVP_KDF-KB.html" => [ "doc/man7/EVP_KDF-KB.pod" ], @@ -4086,6 +4654,9 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-PKCS12KDF.html" => [ "doc/man7/EVP_KDF-PKCS12KDF.pod" ], + "doc/html/man7/EVP_KDF-PVKKDF.html" => [ + "doc/man7/EVP_KDF-PVKKDF.pod" + ], "doc/html/man7/EVP_KDF-SCRYPT.html" => [ "doc/man7/EVP_KDF-SCRYPT.pod" ], @@ -4110,9 +4681,18 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-X963.html" => [ "doc/man7/EVP_KDF-X963.pod" ], + "doc/html/man7/EVP_KEM-EC.html" => [ + "doc/man7/EVP_KEM-EC.pod" + ], + "doc/html/man7/EVP_KEM-ML-KEM.html" => [ + "doc/man7/EVP_KEM-ML-KEM.pod" + ], "doc/html/man7/EVP_KEM-RSA.html" => [ "doc/man7/EVP_KEM-RSA.pod" ], + "doc/html/man7/EVP_KEM-X25519.html" => [ + "doc/man7/EVP_KEM-X25519.pod" + ], "doc/html/man7/EVP_KEYEXCH-DH.html" => [ "doc/man7/EVP_KEYEXCH-DH.pod" ], @@ -4146,6 +4726,9 @@ our %unified_info = ( "doc/html/man7/EVP_MD-BLAKE2.html" => [ "doc/man7/EVP_MD-BLAKE2.pod" ], + "doc/html/man7/EVP_MD-KECCAK.html" => [ + "doc/man7/EVP_MD-KECCAK.pod" + ], "doc/html/man7/EVP_MD-MD2.html" => [ "doc/man7/EVP_MD-MD2.pod" ], @@ -4203,15 +4786,27 @@ our %unified_info = ( "doc/html/man7/EVP_PKEY-HMAC.html" => [ "doc/man7/EVP_PKEY-HMAC.pod" ], + "doc/html/man7/EVP_PKEY-ML-DSA.html" => [ + "doc/man7/EVP_PKEY-ML-DSA.pod" + ], + "doc/html/man7/EVP_PKEY-ML-KEM.html" => [ + "doc/man7/EVP_PKEY-ML-KEM.pod" + ], "doc/html/man7/EVP_PKEY-RSA.html" => [ "doc/man7/EVP_PKEY-RSA.pod" ], + "doc/html/man7/EVP_PKEY-SLH-DSA.html" => [ + "doc/man7/EVP_PKEY-SLH-DSA.pod" + ], "doc/html/man7/EVP_PKEY-SM2.html" => [ "doc/man7/EVP_PKEY-SM2.pod" ], "doc/html/man7/EVP_PKEY-X25519.html" => [ "doc/man7/EVP_PKEY-X25519.pod" ], + "doc/html/man7/EVP_RAND-CRNG-TEST.html" => [ + "doc/man7/EVP_RAND-CRNG-TEST.pod" + ], "doc/html/man7/EVP_RAND-CTR-DRBG.html" => [ "doc/man7/EVP_RAND-CTR-DRBG.pod" ], @@ -4221,6 +4816,9 @@ our %unified_info = ( "doc/html/man7/EVP_RAND-HMAC-DRBG.html" => [ "doc/man7/EVP_RAND-HMAC-DRBG.pod" ], + "doc/html/man7/EVP_RAND-JITTER.html" => [ + "doc/man7/EVP_RAND-JITTER.pod" + ], "doc/html/man7/EVP_RAND-SEED-SRC.html" => [ "doc/man7/EVP_RAND-SEED-SRC.pod" ], @@ -4242,9 +4840,15 @@ our %unified_info = ( "doc/html/man7/EVP_SIGNATURE-HMAC.html" => [ "doc/man7/EVP_SIGNATURE-HMAC.pod" ], + "doc/html/man7/EVP_SIGNATURE-ML-DSA.html" => [ + "doc/man7/EVP_SIGNATURE-ML-DSA.pod" + ], "doc/html/man7/EVP_SIGNATURE-RSA.html" => [ "doc/man7/EVP_SIGNATURE-RSA.pod" ], + "doc/html/man7/EVP_SIGNATURE-SLH-DSA.html" => [ + "doc/man7/EVP_SIGNATURE-SLH-DSA.pod" + ], "doc/html/man7/OSSL_PROVIDER-FIPS.html" => [ "doc/man7/OSSL_PROVIDER-FIPS.pod" ], @@ -4260,6 +4864,9 @@ our %unified_info = ( "doc/html/man7/OSSL_PROVIDER-null.html" => [ "doc/man7/OSSL_PROVIDER-null.pod" ], + "doc/html/man7/OSSL_STORE-winstore.html" => [ + "doc/man7/OSSL_STORE-winstore.pod" + ], "doc/html/man7/RAND.html" => [ "doc/man7/RAND.pod" ], @@ -4272,9 +4879,6 @@ our %unified_info = ( "doc/html/man7/bio.html" => [ "doc/man7/bio.pod" ], - "doc/html/man7/crypto.html" => [ - "doc/man7/crypto.pod" - ], "doc/html/man7/ct.html" => [ "doc/man7/ct.pod" ], @@ -4305,9 +4909,6 @@ our %unified_info = ( "doc/html/man7/life_cycle-rand.html" => [ "doc/man7/life_cycle-rand.pod" ], - "doc/html/man7/migration_guide.html" => [ - "doc/man7/migration_guide.pod" - ], "doc/html/man7/openssl-core.h.html" => [ "doc/man7/openssl-core.h.pod" ], @@ -4323,12 +4924,66 @@ our %unified_info = ( "doc/html/man7/openssl-glossary.html" => [ "doc/man7/openssl-glossary.pod" ], + "doc/html/man7/openssl-qlog.html" => [ + "doc/man7/openssl-qlog.pod" + ], + "doc/html/man7/openssl-quic-concurrency.html" => [ + "doc/man7/openssl-quic-concurrency.pod" + ], + "doc/html/man7/openssl-quic.html" => [ + "doc/man7/openssl-quic.pod" + ], "doc/html/man7/openssl-threads.html" => [ "doc/man7/openssl-threads.pod" ], "doc/html/man7/openssl_user_macros.html" => [ "doc/man7/openssl_user_macros.pod" ], + "doc/html/man7/ossl-guide-introduction.html" => [ + "doc/man7/ossl-guide-introduction.pod" + ], + "doc/html/man7/ossl-guide-libcrypto-introduction.html" => [ + "doc/man7/ossl-guide-libcrypto-introduction.pod" + ], + "doc/html/man7/ossl-guide-libraries-introduction.html" => [ + "doc/man7/ossl-guide-libraries-introduction.pod" + ], + "doc/html/man7/ossl-guide-libssl-introduction.html" => [ + "doc/man7/ossl-guide-libssl-introduction.pod" + ], + "doc/html/man7/ossl-guide-migration.html" => [ + "doc/man7/ossl-guide-migration.pod" + ], + "doc/html/man7/ossl-guide-quic-client-block.html" => [ + "doc/man7/ossl-guide-quic-client-block.pod" + ], + "doc/html/man7/ossl-guide-quic-client-non-block.html" => [ + "doc/man7/ossl-guide-quic-client-non-block.pod" + ], + "doc/html/man7/ossl-guide-quic-introduction.html" => [ + "doc/man7/ossl-guide-quic-introduction.pod" + ], + "doc/html/man7/ossl-guide-quic-multi-stream.html" => [ + "doc/man7/ossl-guide-quic-multi-stream.pod" + ], + "doc/html/man7/ossl-guide-quic-server-block.html" => [ + "doc/man7/ossl-guide-quic-server-block.pod" + ], + "doc/html/man7/ossl-guide-quic-server-non-block.html" => [ + "doc/man7/ossl-guide-quic-server-non-block.pod" + ], + "doc/html/man7/ossl-guide-tls-client-block.html" => [ + "doc/man7/ossl-guide-tls-client-block.pod" + ], + "doc/html/man7/ossl-guide-tls-client-non-block.html" => [ + "doc/man7/ossl-guide-tls-client-non-block.pod" + ], + "doc/html/man7/ossl-guide-tls-introduction.html" => [ + "doc/man7/ossl-guide-tls-introduction.pod" + ], + "doc/html/man7/ossl-guide-tls-server-block.html" => [ + "doc/man7/ossl-guide-tls-server-block.pod" + ], "doc/html/man7/ossl_store-file.html" => [ "doc/man7/ossl_store-file.pod" ], @@ -4383,6 +5038,9 @@ our %unified_info = ( "doc/html/man7/provider-signature.html" => [ "doc/man7/provider-signature.pod" ], + "doc/html/man7/provider-skeymgmt.html" => [ + "doc/man7/provider-skeymgmt.pod" + ], "doc/html/man7/provider-storemgmt.html" => [ "doc/man7/provider-storemgmt.pod" ], @@ -4392,9 +5050,6 @@ our %unified_info = ( "doc/html/man7/proxy-certificates.html" => [ "doc/man7/proxy-certificates.pod" ], - "doc/html/man7/ssl.html" => [ - "doc/man7/ssl.pod" - ], "doc/html/man7/x509.html" => [ "doc/man7/x509.pod" ], @@ -4542,6 +5197,9 @@ our %unified_info = ( "doc/man/man1/openssl-sess_id.1" => [ "doc/man1/openssl-sess_id.pod" ], + "doc/man/man1/openssl-skeyutl.1" => [ + "doc/man1/openssl-skeyutl.pod" + ], "doc/man/man1/openssl-smime.1" => [ "doc/man1/openssl-smime.pod" ], @@ -4683,6 +5341,9 @@ our %unified_info = ( "doc/man/man3/BIO_get_ex_new_index.3" => [ "doc/man3/BIO_get_ex_new_index.pod" ], + "doc/man/man3/BIO_get_rpoll_descriptor.3" => [ + "doc/man3/BIO_get_rpoll_descriptor.pod" + ], "doc/man/man3/BIO_meth_new.3" => [ "doc/man3/BIO_meth_new.pod" ], @@ -4719,6 +5380,9 @@ our %unified_info = ( "doc/man/man3/BIO_s_datagram.3" => [ "doc/man3/BIO_s_datagram.pod" ], + "doc/man/man3/BIO_s_dgram_pair.3" => [ + "doc/man3/BIO_s_dgram_pair.pod" + ], "doc/man/man3/BIO_s_fd.3" => [ "doc/man3/BIO_s_fd.pod" ], @@ -4734,6 +5398,9 @@ our %unified_info = ( "doc/man/man3/BIO_s_socket.3" => [ "doc/man3/BIO_s_socket.pod" ], + "doc/man/man3/BIO_sendmmsg.3" => [ + "doc/man3/BIO_sendmmsg.pod" + ], "doc/man/man3/BIO_set_callback.3" => [ "doc/man3/BIO_set_callback.pod" ], @@ -4806,6 +5473,9 @@ our %unified_info = ( "doc/man/man3/BUF_MEM_new.3" => [ "doc/man3/BUF_MEM_new.pod" ], + "doc/man/man3/CMAC_CTX.3" => [ + "doc/man3/CMAC_CTX.pod" + ], "doc/man/man3/CMS_EncryptedData_decrypt.3" => [ "doc/man3/CMS_EncryptedData_decrypt.pod" ], @@ -4872,6 +5542,9 @@ our %unified_info = ( "doc/man/man3/CMS_verify_receipt.3" => [ "doc/man3/CMS_verify_receipt.pod" ], + "doc/man/man3/COMP_CTX_new.3" => [ + "doc/man3/COMP_CTX_new.pod" + ], "doc/man/man3/CONF_modules_free.3" => [ "doc/man3/CONF_modules_free.pod" ], @@ -4971,6 +5644,12 @@ our %unified_info = ( "doc/man/man3/DTLS_set_timer_cb.3" => [ "doc/man3/DTLS_set_timer_cb.pod" ], + "doc/man/man3/DTLSv1_get_timeout.3" => [ + "doc/man3/DTLSv1_get_timeout.pod" + ], + "doc/man/man3/DTLSv1_handle_timeout.3" => [ + "doc/man3/DTLSv1_handle_timeout.pod" + ], "doc/man/man3/DTLSv1_listen.3" => [ "doc/man3/DTLSv1_listen.pod" ], @@ -5109,6 +5788,9 @@ our %unified_info = ( "doc/man/man3/EVP_PKEY_CTX_get0_pkey.3" => [ "doc/man3/EVP_PKEY_CTX_get0_pkey.pod" ], + "doc/man/man3/EVP_PKEY_CTX_get_algor.3" => [ + "doc/man3/EVP_PKEY_CTX_get_algor.pod" + ], "doc/man/man3/EVP_PKEY_CTX_new.3" => [ "doc/man3/EVP_PKEY_CTX_new.pod" ], @@ -5226,6 +5908,12 @@ our %unified_info = ( "doc/man/man3/EVP_SIGNATURE.3" => [ "doc/man3/EVP_SIGNATURE.pod" ], + "doc/man/man3/EVP_SKEY.3" => [ + "doc/man3/EVP_SKEY.pod" + ], + "doc/man/man3/EVP_SKEYMGMT.3" => [ + "doc/man3/EVP_SKEYMGMT.pod" + ], "doc/man/man3/EVP_SealInit.3" => [ "doc/man3/EVP_SealInit.pod" ], @@ -5313,6 +6001,9 @@ our %unified_info = ( "doc/man/man3/EVP_whirlpool.3" => [ "doc/man3/EVP_whirlpool.pod" ], + "doc/man/man3/GENERAL_NAME.3" => [ + "doc/man3/GENERAL_NAME.pod" + ], "doc/man/man3/HMAC.3" => [ "doc/man3/HMAC.pod" ], @@ -5385,9 +6076,15 @@ our %unified_info = ( "doc/man/man3/OPENSSL_load_builtin_modules.3" => [ "doc/man3/OPENSSL_load_builtin_modules.pod" ], + "doc/man/man3/OPENSSL_load_u16_le.3" => [ + "doc/man3/OPENSSL_load_u16_le.pod" + ], "doc/man/man3/OPENSSL_malloc.3" => [ "doc/man3/OPENSSL_malloc.pod" ], + "doc/man/man3/OPENSSL_riscvcap.3" => [ + "doc/man3/OPENSSL_riscvcap.pod" + ], "doc/man/man3/OPENSSL_s390xcap.3" => [ "doc/man3/OPENSSL_s390xcap.pod" ], @@ -5403,12 +6100,18 @@ our %unified_info = ( "doc/man/man3/OSSL_CALLBACK.3" => [ "doc/man3/OSSL_CALLBACK.pod" ], + "doc/man/man3/OSSL_CMP_ATAV_set0.3" => [ + "doc/man3/OSSL_CMP_ATAV_set0.pod" + ], "doc/man/man3/OSSL_CMP_CTX_new.3" => [ "doc/man3/OSSL_CMP_CTX_new.pod" ], "doc/man/man3/OSSL_CMP_HDR_get0_transactionID.3" => [ "doc/man3/OSSL_CMP_HDR_get0_transactionID.pod" ], + "doc/man/man3/OSSL_CMP_ITAV_new_caCerts.3" => [ + "doc/man3/OSSL_CMP_ITAV_new_caCerts.pod" + ], "doc/man/man3/OSSL_CMP_ITAV_set0.3" => [ "doc/man3/OSSL_CMP_ITAV_set0.pod" ], @@ -5478,9 +6181,18 @@ our %unified_info = ( "doc/man/man3/OSSL_ENCODER_to_bio.3" => [ "doc/man3/OSSL_ENCODER_to_bio.pod" ], + "doc/man/man3/OSSL_ERR_STATE_save.3" => [ + "doc/man3/OSSL_ERR_STATE_save.pod" + ], "doc/man/man3/OSSL_ESS_check_signing_certs.3" => [ "doc/man3/OSSL_ESS_check_signing_certs.pod" ], + "doc/man/man3/OSSL_GENERAL_NAMES_print.3" => [ + "doc/man3/OSSL_GENERAL_NAMES_print.pod" + ], + "doc/man/man3/OSSL_HPKE_CTX_new.3" => [ + "doc/man3/OSSL_HPKE_CTX_new.pod" + ], "doc/man/man3/OSSL_HTTP_REQ_CTX.3" => [ "doc/man3/OSSL_HTTP_REQ_CTX.pod" ], @@ -5490,12 +6202,24 @@ our %unified_info = ( "doc/man/man3/OSSL_HTTP_transfer.3" => [ "doc/man3/OSSL_HTTP_transfer.pod" ], + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX.3" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX.pod" + ], + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX_print.3" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX_print.pod" + ], + "doc/man/man3/OSSL_INDICATOR_set_callback.3" => [ + "doc/man3/OSSL_INDICATOR_set_callback.pod" + ], "doc/man/man3/OSSL_ITEM.3" => [ "doc/man3/OSSL_ITEM.pod" ], "doc/man/man3/OSSL_LIB_CTX.3" => [ "doc/man3/OSSL_LIB_CTX.pod" ], + "doc/man/man3/OSSL_LIB_CTX_set_conf_diagnostics.3" => [ + "doc/man3/OSSL_LIB_CTX_set_conf_diagnostics.pod" + ], "doc/man/man3/OSSL_PARAM.3" => [ "doc/man3/OSSL_PARAM.pod" ], @@ -5511,9 +6235,15 @@ our %unified_info = ( "doc/man/man3/OSSL_PARAM_int.3" => [ "doc/man3/OSSL_PARAM_int.pod" ], + "doc/man/man3/OSSL_PARAM_print_to_bio.3" => [ + "doc/man3/OSSL_PARAM_print_to_bio.pod" + ], "doc/man/man3/OSSL_PROVIDER.3" => [ "doc/man3/OSSL_PROVIDER.pod" ], + "doc/man/man3/OSSL_QUIC_client_method.3" => [ + "doc/man3/OSSL_QUIC_client_method.pod" + ], "doc/man/man3/OSSL_SELF_TEST_new.3" => [ "doc/man3/OSSL_SELF_TEST_new.pod" ], @@ -5538,6 +6268,9 @@ our %unified_info = ( "doc/man/man3/OSSL_STORE_open.3" => [ "doc/man3/OSSL_STORE_open.pod" ], + "doc/man/man3/OSSL_sleep.3" => [ + "doc/man3/OSSL_sleep.pod" + ], "doc/man/man3/OSSL_trace_enabled.3" => [ "doc/man3/OSSL_trace_enabled.pod" ], @@ -5553,6 +6286,9 @@ our %unified_info = ( "doc/man/man3/OpenSSL_version.3" => [ "doc/man3/OpenSSL_version.pod" ], + "doc/man/man3/PBMAC1_get1_pbkdf2_param.3" => [ + "doc/man3/PBMAC1_get1_pbkdf2_param.pod" + ], "doc/man/man3/PEM_X509_INFO_read_bio_ex.3" => [ "doc/man3/PEM_X509_INFO_read_bio_ex.pod" ], @@ -5589,6 +6325,9 @@ our %unified_info = ( "doc/man/man3/PKCS12_SAFEBAG_get1_cert.3" => [ "doc/man3/PKCS12_SAFEBAG_get1_cert.pod" ], + "doc/man/man3/PKCS12_SAFEBAG_set0_attrs.3" => [ + "doc/man3/PKCS12_SAFEBAG_set0_attrs.pod" + ], "doc/man/man3/PKCS12_add1_attr_by_NID.3" => [ "doc/man3/PKCS12_add1_attr_by_NID.pod" ], @@ -5862,6 +6601,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set0_CA_list.3" => [ "doc/man3/SSL_CTX_set0_CA_list.pod" ], + "doc/man/man3/SSL_CTX_set1_cert_comp_preference.3" => [ + "doc/man3/SSL_CTX_set1_cert_comp_preference.pod" + ], "doc/man/man3/SSL_CTX_set1_curves.3" => [ "doc/man3/SSL_CTX_set1_curves.pod" ], @@ -5901,6 +6643,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_default_passwd_cb.3" => [ "doc/man3/SSL_CTX_set_default_passwd_cb.pod" ], + "doc/man/man3/SSL_CTX_set_domain_flags.3" => [ + "doc/man3/SSL_CTX_set_domain_flags.pod" + ], "doc/man/man3/SSL_CTX_set_generate_session_id.3" => [ "doc/man3/SSL_CTX_set_generate_session_id.pod" ], @@ -5922,6 +6667,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_msg_callback.3" => [ "doc/man3/SSL_CTX_set_msg_callback.pod" ], + "doc/man/man3/SSL_CTX_set_new_pending_conn_cb.3" => [ + "doc/man3/SSL_CTX_set_new_pending_conn_cb.pod" + ], "doc/man/man3/SSL_CTX_set_num_tickets.3" => [ "doc/man3/SSL_CTX_set_num_tickets.pod" ], @@ -6036,6 +6784,9 @@ our %unified_info = ( "doc/man/man3/SSL_accept.3" => [ "doc/man3/SSL_accept.pod" ], + "doc/man/man3/SSL_accept_stream.3" => [ + "doc/man3/SSL_accept_stream.pod" + ], "doc/man/man3/SSL_alert_type_string.3" => [ "doc/man3/SSL_alert_type_string.pod" ], @@ -6063,9 +6814,21 @@ our %unified_info = ( "doc/man/man3/SSL_free.3" => [ "doc/man3/SSL_free.pod" ], + "doc/man/man3/SSL_get0_connection.3" => [ + "doc/man3/SSL_get0_connection.pod" + ], + "doc/man/man3/SSL_get0_group_name.3" => [ + "doc/man3/SSL_get0_group_name.pod" + ], + "doc/man/man3/SSL_get0_peer_rpk.3" => [ + "doc/man3/SSL_get0_peer_rpk.pod" + ], "doc/man/man3/SSL_get0_peer_scts.3" => [ "doc/man3/SSL_get0_peer_scts.pod" ], + "doc/man/man3/SSL_get1_builtin_sigalgs.3" => [ + "doc/man3/SSL_get1_builtin_sigalgs.pod" + ], "doc/man/man3/SSL_get_SSL_CTX.3" => [ "doc/man3/SSL_get_SSL_CTX.pod" ], @@ -6081,6 +6844,9 @@ our %unified_info = ( "doc/man/man3/SSL_get_client_random.3" => [ "doc/man3/SSL_get_client_random.pod" ], + "doc/man/man3/SSL_get_conn_close_info.3" => [ + "doc/man3/SSL_get_conn_close_info.pod" + ], "doc/man/man3/SSL_get_current_cipher.3" => [ "doc/man3/SSL_get_current_cipher.pod" ], @@ -6090,12 +6856,18 @@ our %unified_info = ( "doc/man/man3/SSL_get_error.3" => [ "doc/man3/SSL_get_error.pod" ], + "doc/man/man3/SSL_get_event_timeout.3" => [ + "doc/man3/SSL_get_event_timeout.pod" + ], "doc/man/man3/SSL_get_extms_support.3" => [ "doc/man3/SSL_get_extms_support.pod" ], "doc/man/man3/SSL_get_fd.3" => [ "doc/man3/SSL_get_fd.pod" ], + "doc/man/man3/SSL_get_handshake_rtt.3" => [ + "doc/man3/SSL_get_handshake_rtt.pod" + ], "doc/man/man3/SSL_get_peer_cert_chain.3" => [ "doc/man3/SSL_get_peer_cert_chain.pod" ], @@ -6114,12 +6886,24 @@ our %unified_info = ( "doc/man/man3/SSL_get_rbio.3" => [ "doc/man3/SSL_get_rbio.pod" ], + "doc/man/man3/SSL_get_rpoll_descriptor.3" => [ + "doc/man3/SSL_get_rpoll_descriptor.pod" + ], "doc/man/man3/SSL_get_session.3" => [ "doc/man3/SSL_get_session.pod" ], "doc/man/man3/SSL_get_shared_sigalgs.3" => [ "doc/man3/SSL_get_shared_sigalgs.pod" ], + "doc/man/man3/SSL_get_stream_id.3" => [ + "doc/man3/SSL_get_stream_id.pod" + ], + "doc/man/man3/SSL_get_stream_read_state.3" => [ + "doc/man3/SSL_get_stream_read_state.pod" + ], + "doc/man/man3/SSL_get_value_uint.3" => [ + "doc/man3/SSL_get_value_uint.pod" + ], "doc/man/man3/SSL_get_verify_result.3" => [ "doc/man3/SSL_get_verify_result.pod" ], @@ -6129,9 +6913,15 @@ our %unified_info = ( "doc/man/man3/SSL_group_to_name.3" => [ "doc/man3/SSL_group_to_name.pod" ], + "doc/man/man3/SSL_handle_events.3" => [ + "doc/man3/SSL_handle_events.pod" + ], "doc/man/man3/SSL_in_init.3" => [ "doc/man3/SSL_in_init.pod" ], + "doc/man/man3/SSL_inject_net_dgram.3" => [ + "doc/man3/SSL_inject_net_dgram.pod" + ], "doc/man/man3/SSL_key_update.3" => [ "doc/man3/SSL_key_update.pod" ], @@ -6144,9 +6934,21 @@ our %unified_info = ( "doc/man/man3/SSL_new.3" => [ "doc/man3/SSL_new.pod" ], + "doc/man/man3/SSL_new_domain.3" => [ + "doc/man3/SSL_new_domain.pod" + ], + "doc/man/man3/SSL_new_listener.3" => [ + "doc/man3/SSL_new_listener.pod" + ], + "doc/man/man3/SSL_new_stream.3" => [ + "doc/man3/SSL_new_stream.pod" + ], "doc/man/man3/SSL_pending.3" => [ "doc/man3/SSL_pending.pod" ], + "doc/man/man3/SSL_poll.3" => [ + "doc/man3/SSL_poll.pod" + ], "doc/man/man3/SSL_read.3" => [ "doc/man3/SSL_read.pod" ], @@ -6162,24 +6964,45 @@ our %unified_info = ( "doc/man/man3/SSL_set1_host.3" => [ "doc/man3/SSL_set1_host.pod" ], + "doc/man/man3/SSL_set1_initial_peer_addr.3" => [ + "doc/man3/SSL_set1_initial_peer_addr.pod" + ], + "doc/man/man3/SSL_set1_server_cert_type.3" => [ + "doc/man3/SSL_set1_server_cert_type.pod" + ], "doc/man/man3/SSL_set_async_callback.3" => [ "doc/man3/SSL_set_async_callback.pod" ], "doc/man/man3/SSL_set_bio.3" => [ "doc/man3/SSL_set_bio.pod" ], + "doc/man/man3/SSL_set_blocking_mode.3" => [ + "doc/man3/SSL_set_blocking_mode.pod" + ], "doc/man/man3/SSL_set_connect_state.3" => [ "doc/man3/SSL_set_connect_state.pod" ], + "doc/man/man3/SSL_set_default_stream_mode.3" => [ + "doc/man3/SSL_set_default_stream_mode.pod" + ], "doc/man/man3/SSL_set_fd.3" => [ "doc/man3/SSL_set_fd.pod" ], + "doc/man/man3/SSL_set_incoming_stream_policy.3" => [ + "doc/man3/SSL_set_incoming_stream_policy.pod" + ], + "doc/man/man3/SSL_set_quic_tls_cbs.3" => [ + "doc/man3/SSL_set_quic_tls_cbs.pod" + ], "doc/man/man3/SSL_set_retry_verify.3" => [ "doc/man3/SSL_set_retry_verify.pod" ], "doc/man/man3/SSL_set_session.3" => [ "doc/man3/SSL_set_session.pod" ], + "doc/man/man3/SSL_set_session_secret_cb.3" => [ + "doc/man3/SSL_set_session_secret_cb.pod" + ], "doc/man/man3/SSL_set_shutdown.3" => [ "doc/man3/SSL_set_shutdown.pod" ], @@ -6192,6 +7015,12 @@ our %unified_info = ( "doc/man/man3/SSL_state_string.3" => [ "doc/man3/SSL_state_string.pod" ], + "doc/man/man3/SSL_stream_conclude.3" => [ + "doc/man3/SSL_stream_conclude.pod" + ], + "doc/man/man3/SSL_stream_reset.3" => [ + "doc/man3/SSL_stream_reset.pod" + ], "doc/man/man3/SSL_want.3" => [ "doc/man3/SSL_want.pod" ], @@ -6201,8 +7030,8 @@ our %unified_info = ( "doc/man/man3/TS_RESP_CTX_new.3" => [ "doc/man3/TS_RESP_CTX_new.pod" ], - "doc/man/man3/TS_VERIFY_CTX_set_certs.3" => [ - "doc/man3/TS_VERIFY_CTX_set_certs.pod" + "doc/man/man3/TS_VERIFY_CTX.3" => [ + "doc/man3/TS_VERIFY_CTX.pod" ], "doc/man/man3/UI_STRING.3" => [ "doc/man3/UI_STRING.pod" @@ -6222,6 +7051,21 @@ our %unified_info = ( "doc/man/man3/X509V3_set_ctx.3" => [ "doc/man3/X509V3_set_ctx.pod" ], + "doc/man/man3/X509_ACERT_add1_attr.3" => [ + "doc/man3/X509_ACERT_add1_attr.pod" + ], + "doc/man/man3/X509_ACERT_add_attr_nconf.3" => [ + "doc/man3/X509_ACERT_add_attr_nconf.pod" + ], + "doc/man/man3/X509_ACERT_get0_holder_baseCertId.3" => [ + "doc/man3/X509_ACERT_get0_holder_baseCertId.pod" + ], + "doc/man/man3/X509_ACERT_get_attr.3" => [ + "doc/man3/X509_ACERT_get_attr.pod" + ], + "doc/man/man3/X509_ACERT_print_ex.3" => [ + "doc/man3/X509_ACERT_print_ex.pod" + ], "doc/man/man3/X509_ALGOR_dup.3" => [ "doc/man3/X509_ALGOR_dup.pod" ], @@ -6270,6 +7114,9 @@ our %unified_info = ( "doc/man/man3/X509_SIG_get0.3" => [ "doc/man3/X509_SIG_get0.pod" ], + "doc/man/man3/X509_STORE_CTX_get_by_subject.3" => [ + "doc/man3/X509_STORE_CTX_get_by_subject.pod" + ], "doc/man/man3/X509_STORE_CTX_get_error.3" => [ "doc/man3/X509_STORE_CTX_get_error.pod" ], @@ -6336,6 +7183,9 @@ our %unified_info = ( "doc/man/man3/X509_get0_uids.3" => [ "doc/man3/X509_get0_uids.pod" ], + "doc/man/man3/X509_get_default_cert_file.3" => [ + "doc/man3/X509_get_default_cert_file.pod" + ], "doc/man/man3/X509_get_extension_flags.3" => [ "doc/man3/X509_get_extension_flags.pod" ], @@ -6459,9 +7309,15 @@ our %unified_info = ( "doc/man/man7/EVP_CIPHER-SM4.7" => [ "doc/man7/EVP_CIPHER-SM4.pod" ], + "doc/man/man7/EVP_KDF-ARGON2.7" => [ + "doc/man7/EVP_KDF-ARGON2.pod" + ], "doc/man/man7/EVP_KDF-HKDF.7" => [ "doc/man7/EVP_KDF-HKDF.pod" ], + "doc/man/man7/EVP_KDF-HMAC-DRBG.7" => [ + "doc/man7/EVP_KDF-HMAC-DRBG.pod" + ], "doc/man/man7/EVP_KDF-KB.7" => [ "doc/man7/EVP_KDF-KB.pod" ], @@ -6477,6 +7333,9 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-PKCS12KDF.7" => [ "doc/man7/EVP_KDF-PKCS12KDF.pod" ], + "doc/man/man7/EVP_KDF-PVKKDF.7" => [ + "doc/man7/EVP_KDF-PVKKDF.pod" + ], "doc/man/man7/EVP_KDF-SCRYPT.7" => [ "doc/man7/EVP_KDF-SCRYPT.pod" ], @@ -6501,9 +7360,18 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-X963.7" => [ "doc/man7/EVP_KDF-X963.pod" ], + "doc/man/man7/EVP_KEM-EC.7" => [ + "doc/man7/EVP_KEM-EC.pod" + ], + "doc/man/man7/EVP_KEM-ML-KEM.7" => [ + "doc/man7/EVP_KEM-ML-KEM.pod" + ], "doc/man/man7/EVP_KEM-RSA.7" => [ "doc/man7/EVP_KEM-RSA.pod" ], + "doc/man/man7/EVP_KEM-X25519.7" => [ + "doc/man7/EVP_KEM-X25519.pod" + ], "doc/man/man7/EVP_KEYEXCH-DH.7" => [ "doc/man7/EVP_KEYEXCH-DH.pod" ], @@ -6537,6 +7405,9 @@ our %unified_info = ( "doc/man/man7/EVP_MD-BLAKE2.7" => [ "doc/man7/EVP_MD-BLAKE2.pod" ], + "doc/man/man7/EVP_MD-KECCAK.7" => [ + "doc/man7/EVP_MD-KECCAK.pod" + ], "doc/man/man7/EVP_MD-MD2.7" => [ "doc/man7/EVP_MD-MD2.pod" ], @@ -6594,15 +7465,27 @@ our %unified_info = ( "doc/man/man7/EVP_PKEY-HMAC.7" => [ "doc/man7/EVP_PKEY-HMAC.pod" ], + "doc/man/man7/EVP_PKEY-ML-DSA.7" => [ + "doc/man7/EVP_PKEY-ML-DSA.pod" + ], + "doc/man/man7/EVP_PKEY-ML-KEM.7" => [ + "doc/man7/EVP_PKEY-ML-KEM.pod" + ], "doc/man/man7/EVP_PKEY-RSA.7" => [ "doc/man7/EVP_PKEY-RSA.pod" ], + "doc/man/man7/EVP_PKEY-SLH-DSA.7" => [ + "doc/man7/EVP_PKEY-SLH-DSA.pod" + ], "doc/man/man7/EVP_PKEY-SM2.7" => [ "doc/man7/EVP_PKEY-SM2.pod" ], "doc/man/man7/EVP_PKEY-X25519.7" => [ "doc/man7/EVP_PKEY-X25519.pod" ], + "doc/man/man7/EVP_RAND-CRNG-TEST.7" => [ + "doc/man7/EVP_RAND-CRNG-TEST.pod" + ], "doc/man/man7/EVP_RAND-CTR-DRBG.7" => [ "doc/man7/EVP_RAND-CTR-DRBG.pod" ], @@ -6612,6 +7495,9 @@ our %unified_info = ( "doc/man/man7/EVP_RAND-HMAC-DRBG.7" => [ "doc/man7/EVP_RAND-HMAC-DRBG.pod" ], + "doc/man/man7/EVP_RAND-JITTER.7" => [ + "doc/man7/EVP_RAND-JITTER.pod" + ], "doc/man/man7/EVP_RAND-SEED-SRC.7" => [ "doc/man7/EVP_RAND-SEED-SRC.pod" ], @@ -6633,9 +7519,15 @@ our %unified_info = ( "doc/man/man7/EVP_SIGNATURE-HMAC.7" => [ "doc/man7/EVP_SIGNATURE-HMAC.pod" ], + "doc/man/man7/EVP_SIGNATURE-ML-DSA.7" => [ + "doc/man7/EVP_SIGNATURE-ML-DSA.pod" + ], "doc/man/man7/EVP_SIGNATURE-RSA.7" => [ "doc/man7/EVP_SIGNATURE-RSA.pod" ], + "doc/man/man7/EVP_SIGNATURE-SLH-DSA.7" => [ + "doc/man7/EVP_SIGNATURE-SLH-DSA.pod" + ], "doc/man/man7/OSSL_PROVIDER-FIPS.7" => [ "doc/man7/OSSL_PROVIDER-FIPS.pod" ], @@ -6651,6 +7543,9 @@ our %unified_info = ( "doc/man/man7/OSSL_PROVIDER-null.7" => [ "doc/man7/OSSL_PROVIDER-null.pod" ], + "doc/man/man7/OSSL_STORE-winstore.7" => [ + "doc/man7/OSSL_STORE-winstore.pod" + ], "doc/man/man7/RAND.7" => [ "doc/man7/RAND.pod" ], @@ -6663,9 +7558,6 @@ our %unified_info = ( "doc/man/man7/bio.7" => [ "doc/man7/bio.pod" ], - "doc/man/man7/crypto.7" => [ - "doc/man7/crypto.pod" - ], "doc/man/man7/ct.7" => [ "doc/man7/ct.pod" ], @@ -6696,9 +7588,6 @@ our %unified_info = ( "doc/man/man7/life_cycle-rand.7" => [ "doc/man7/life_cycle-rand.pod" ], - "doc/man/man7/migration_guide.7" => [ - "doc/man7/migration_guide.pod" - ], "doc/man/man7/openssl-core.h.7" => [ "doc/man7/openssl-core.h.pod" ], @@ -6714,12 +7603,66 @@ our %unified_info = ( "doc/man/man7/openssl-glossary.7" => [ "doc/man7/openssl-glossary.pod" ], + "doc/man/man7/openssl-qlog.7" => [ + "doc/man7/openssl-qlog.pod" + ], + "doc/man/man7/openssl-quic-concurrency.7" => [ + "doc/man7/openssl-quic-concurrency.pod" + ], + "doc/man/man7/openssl-quic.7" => [ + "doc/man7/openssl-quic.pod" + ], "doc/man/man7/openssl-threads.7" => [ "doc/man7/openssl-threads.pod" ], "doc/man/man7/openssl_user_macros.7" => [ "doc/man7/openssl_user_macros.pod" ], + "doc/man/man7/ossl-guide-introduction.7" => [ + "doc/man7/ossl-guide-introduction.pod" + ], + "doc/man/man7/ossl-guide-libcrypto-introduction.7" => [ + "doc/man7/ossl-guide-libcrypto-introduction.pod" + ], + "doc/man/man7/ossl-guide-libraries-introduction.7" => [ + "doc/man7/ossl-guide-libraries-introduction.pod" + ], + "doc/man/man7/ossl-guide-libssl-introduction.7" => [ + "doc/man7/ossl-guide-libssl-introduction.pod" + ], + "doc/man/man7/ossl-guide-migration.7" => [ + "doc/man7/ossl-guide-migration.pod" + ], + "doc/man/man7/ossl-guide-quic-client-block.7" => [ + "doc/man7/ossl-guide-quic-client-block.pod" + ], + "doc/man/man7/ossl-guide-quic-client-non-block.7" => [ + "doc/man7/ossl-guide-quic-client-non-block.pod" + ], + "doc/man/man7/ossl-guide-quic-introduction.7" => [ + "doc/man7/ossl-guide-quic-introduction.pod" + ], + "doc/man/man7/ossl-guide-quic-multi-stream.7" => [ + "doc/man7/ossl-guide-quic-multi-stream.pod" + ], + "doc/man/man7/ossl-guide-quic-server-block.7" => [ + "doc/man7/ossl-guide-quic-server-block.pod" + ], + "doc/man/man7/ossl-guide-quic-server-non-block.7" => [ + "doc/man7/ossl-guide-quic-server-non-block.pod" + ], + "doc/man/man7/ossl-guide-tls-client-block.7" => [ + "doc/man7/ossl-guide-tls-client-block.pod" + ], + "doc/man/man7/ossl-guide-tls-client-non-block.7" => [ + "doc/man7/ossl-guide-tls-client-non-block.pod" + ], + "doc/man/man7/ossl-guide-tls-introduction.7" => [ + "doc/man7/ossl-guide-tls-introduction.pod" + ], + "doc/man/man7/ossl-guide-tls-server-block.7" => [ + "doc/man7/ossl-guide-tls-server-block.pod" + ], "doc/man/man7/ossl_store-file.7" => [ "doc/man7/ossl_store-file.pod" ], @@ -6774,6 +7717,9 @@ our %unified_info = ( "doc/man/man7/provider-signature.7" => [ "doc/man7/provider-signature.pod" ], + "doc/man/man7/provider-skeymgmt.7" => [ + "doc/man7/provider-skeymgmt.pod" + ], "doc/man/man7/provider-storemgmt.7" => [ "doc/man7/provider-storemgmt.pod" ], @@ -6783,9 +7729,6 @@ our %unified_info = ( "doc/man/man7/proxy-certificates.7" => [ "doc/man7/proxy-certificates.pod" ], - "doc/man/man7/ssl.7" => [ - "doc/man7/ssl.pod" - ], "doc/man/man7/x509.7" => [ "doc/man7/x509.pod" ], @@ -6965,6 +7908,10 @@ our %unified_info = ( "doc/man1/openssl-sess_id.pod.in", "doc/perlvars.pm" ], + "doc/man1/openssl-skeyutl.pod" => [ + "doc/man1/openssl-skeyutl.pod.in", + "doc/perlvars.pm" + ], "doc/man1/openssl-smime.pod" => [ "doc/man1/openssl-smime.pod.in", "doc/perlvars.pm" @@ -7004,6 +7951,27 @@ our %unified_info = ( "doc/man7/openssl_user_macros.pod" => [ "doc/man7/openssl_user_macros.pod.in" ], + "exporters/OpenSSLConfig.cmake" => [ + "installdata.pm" + ], + "exporters/OpenSSLConfigVersion.cmake" => [ + "exporters/OpenSSLConfig.cmake", + "installdata.pm" + ], + "exporters/libcrypto.pc" => [ + "installdata.pm" + ], + "exporters/libssl.pc" => [ + "installdata.pm" + ], + "exporters/openssl.pc" => [ + "exporters/libcrypto.pc", + "exporters/libssl.pc", + "installdata.pm" + ], + "fuzz/acert-test" => [ + "libcrypto" + ], "fuzz/asn1-test" => [ "libcrypto", "libssl" @@ -7036,17 +8004,85 @@ our %unified_info = ( "fuzz/ct-test" => [ "libcrypto" ], + "fuzz/decoder-test" => [ + "libcrypto" + ], + "fuzz/dtlsclient-test" => [ + "libcrypto", + "libssl" + ], + "fuzz/dtlsserver-test" => [ + "libcrypto", + "libssl" + ], + "fuzz/hashtable-test" => [ + "libcrypto.a" + ], + "fuzz/ml-dsa-test" => [ + "libcrypto.a" + ], + "fuzz/ml-kem-test" => [ + "libcrypto.a" + ], + "fuzz/pem-test" => [ + "libcrypto.a" + ], + "fuzz/provider-test" => [ + "libcrypto" + ], + "fuzz/punycode-test" => [ + "libcrypto.a" + ], + "fuzz/quic-client-test" => [ + "libcrypto.a", + "libssl.a" + ], + "fuzz/quic-lcidm-test" => [ + "libcrypto.a", + "libssl.a" + ], + "fuzz/quic-rcidm-test" => [ + "libcrypto.a", + "libssl.a" + ], + "fuzz/quic-server-test" => [ + "libcrypto.a", + "libssl.a" + ], + "fuzz/quic-srtm-test" => [ + "libcrypto.a", + "libssl.a" + ], "fuzz/server-test" => [ "libcrypto", "libssl" ], + "fuzz/slh-dsa-test" => [ + "libcrypto.a" + ], + "fuzz/smime-test" => [ + "libcrypto", + "libssl" + ], + "fuzz/v3name-test" => [ + "libcrypto.a" + ], "fuzz/x509-test" => [ "libcrypto" ], + "include/internal/param_names.h" => [ + "util/perl|OpenSSL/paramnames.pm" + ], + "include/openssl/core_names.h" => [ + "util/perl|OpenSSL/paramnames.pm" + ], "libcrypto.ld" => [ "configdata.pm", "util/perl/OpenSSL/Ordinals.pm" ], + "libcrypto.pc" => [ + "builddata.pm" + ], "libcrypto.rc" => [ "configdata.pm" ], @@ -7057,9 +8093,17 @@ our %unified_info = ( "configdata.pm", "util/perl/OpenSSL/Ordinals.pm" ], + "libssl.pc" => [ + "builddata.pm" + ], "libssl.rc" => [ "configdata.pm" ], + "openssl.pc" => [ + "builddata.pm", + "libcrypto.pc", + "libssl.pc" + ], "providers/common/der/der_digests_gen.c" => [ "providers/common/der/DIGESTS.asn1", "providers/common/der/NIST.asn1", @@ -7077,11 +8121,19 @@ our %unified_info = ( "providers/common/der/ECX.asn1", "providers/common/der/oids_to_c.pm" ], + "providers/common/der/der_ml_dsa_gen.c" => [ + "providers/common/der/ML_DSA.asn1", + "providers/common/der/oids_to_c.pm" + ], "providers/common/der/der_rsa_gen.c" => [ "providers/common/der/NIST.asn1", "providers/common/der/RSA.asn1", "providers/common/der/oids_to_c.pm" ], + "providers/common/der/der_slh_dsa_gen.c" => [ + "providers/common/der/SLH_DSA.asn1", + "providers/common/der/oids_to_c.pm" + ], "providers/common/der/der_sm2_gen.c" => [ "providers/common/der/SM2.asn1", "providers/common/der/oids_to_c.pm" @@ -7121,6 +8173,12 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ecx_key.o" => [ "providers/common/include/prov/der_ecx.h" ], + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o" => [ + "providers/common/include/prov/der_ml_dsa.h" + ], + "providers/common/der/libcommon-lib-der_ml_dsa_key.o" => [ + "providers/common/include/prov/der_ml_dsa.h" + ], "providers/common/der/libcommon-lib-der_rsa_gen.o" => [ "providers/common/include/prov/der_rsa.h" ], @@ -7128,6 +8186,12 @@ our %unified_info = ( "providers/common/include/prov/der_digests.h", "providers/common/include/prov/der_rsa.h" ], + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o" => [ + "providers/common/include/prov/der_slh_dsa.h" + ], + "providers/common/der/libcommon-lib-der_slh_dsa_key.o" => [ + "providers/common/include/prov/der_slh_dsa.h" + ], "providers/common/der/libcommon-lib-der_wrap_gen.o" => [ "providers/common/include/prov/der_wrap.h" ], @@ -7167,11 +8231,19 @@ our %unified_info = ( "providers/common/der/ECX.asn1", "providers/common/der/oids_to_c.pm" ], + "providers/common/include/prov/der_ml_dsa.h" => [ + "providers/common/der/ML_DSA.asn1", + "providers/common/der/oids_to_c.pm" + ], "providers/common/include/prov/der_rsa.h" => [ "providers/common/der/NIST.asn1", "providers/common/der/RSA.asn1", "providers/common/der/oids_to_c.pm" ], + "providers/common/include/prov/der_slh_dsa.h" => [ + "providers/common/der/SLH_DSA.asn1", + "providers/common/der/oids_to_c.pm" + ], "providers/common/include/prov/der_sm2.h" => [ "providers/common/der/SM2.asn1", "providers/common/der/oids_to_c.pm" @@ -7204,9 +8276,15 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-eddsa_sig.o" => [ "providers/common/include/prov/der_ecx.h" ], + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o" => [ + "providers/common/include/prov/der_ml_dsa.h" + ], "providers/implementations/signature/libdefault-lib-rsa_sig.o" => [ "providers/common/include/prov/der_rsa.h" ], + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o" => [ + "providers/common/include/prov/der_slh_dsa.h" + ], "providers/implementations/signature/libdefault-lib-sm2_sig.o" => [ "providers/common/include/prov/der_sm2.h" ], @@ -7219,9 +8297,15 @@ our %unified_info = ( "providers/implementations/signature/libfips-lib-eddsa_sig.o" => [ "providers/common/include/prov/der_ecx.h" ], + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o" => [ + "providers/common/include/prov/der_ml_dsa.h" + ], "providers/implementations/signature/libfips-lib-rsa_sig.o" => [ "providers/common/include/prov/der_rsa.h" ], + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o" => [ + "providers/common/include/prov/der_slh_dsa.h" + ], "providers/legacy" => [ "libcrypto", "providers/liblegacy.a" @@ -7299,6 +8383,14 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/bio_addr_test" => [ + "libcrypto", + "test/libtestutil.a" + ], + "test/bio_base64_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/bio_callback_test" => [ "libcrypto", "test/libtestutil.a" @@ -7307,6 +8399,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/bio_dgram_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/bio_enc_test" => [ "libcrypto", "test/libtestutil.a" @@ -7315,6 +8411,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/bio_meth_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/bio_prefix_text" => [ "libcrypto", "test/libtestutil.a" @@ -7327,6 +8427,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/bio_tfo_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/bioprinttest" => [ "libcrypto", "test/libtestutil.a" @@ -7339,6 +8443,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/build_wincrypt_test" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_aes" => [ "libcrypto", "libssl" @@ -7359,6 +8467,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_byteorder" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_camellia" => [ "libcrypto", "libssl" @@ -7391,10 +8503,6 @@ our %unified_info = ( "libcrypto", "libssl" ], - "test/buildtest_c_core_names" => [ - "libcrypto", - "libssl" - ], "test/buildtest_c_core_object" => [ "libcrypto", "libssl" @@ -7427,6 +8535,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_e_ostime" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_ebcdic" => [ "libcrypto", "libssl" @@ -7463,6 +8575,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_hpke" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_http" => [ "libcrypto", "libssl" @@ -7471,6 +8587,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_indicator" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_kdf" => [ "libcrypto", "libssl" @@ -7491,6 +8611,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_ml_kem" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_modes" => [ "libcrypto", "libssl" @@ -7531,6 +8655,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_quic" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_rand" => [ "libcrypto", "libssl" @@ -7587,6 +8715,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_thread" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_tls1" => [ "libcrypto", "libssl" @@ -7607,10 +8739,23 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/byteorder_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], + "test/ca_internals_test" => [ + "libssl", + "test/libtestutil.a" + ], "test/casttest" => [ "libcrypto", "test/libtestutil.a" ], + "test/cert_comp_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], "test/chacha_internal_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -7724,6 +8869,10 @@ our %unified_info = ( "libssl", "test/libtestutil.a" ], + "test/decoder_propq_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/defltfips_test" => [ "libcrypto", "test/libtestutil.a" @@ -7780,6 +8929,8 @@ our %unified_info = ( ], "test/endecode_test" => [ "libcrypto.a", + "providers/libcommon.a", + "providers/liblegacy.a", "test/libtestutil.a" ], "test/endecoder_legacy_test" => [ @@ -7823,6 +8974,10 @@ our %unified_info = ( "test/evp_pkey_ctx_new_from_name" => [ "libcrypto" ], + "test/evp_pkey_dhkem_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/evp_pkey_dparams_test" => [ "libcrypto", "test/libtestutil.a" @@ -7831,10 +8986,18 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/evp_skey_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/evp_test" => [ "libcrypto", "test/libtestutil.a" ], + "test/evp_xof_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/exdatatest" => [ "libcrypto", "test/libtestutil.a" @@ -7873,6 +9036,10 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/hpke_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/http_test" => [ "libcrypto", "test/libtestutil.a" @@ -7885,17 +9052,25 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/json_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], "test/keymgmt_internal_test" => [ "libcrypto.a", "test/libtestutil.a" ], "test/lhash_test" => [ - "libcrypto", + "libcrypto.a", "test/libtestutil.a" ], "test/libtestutil.a" => [ "libcrypto" ], + "test/list_test" => [ + "test/libtestutil.a" + ], "test/localetest" => [ "libcrypto", "test/libtestutil.a" @@ -7908,10 +9083,26 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/membio_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/memleaktest" => [ "libcrypto", "test/libtestutil.a" ], + "test/ml_dsa_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], + "test/ml_kem_evp_extra_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], + "test/ml_kem_internal_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/modes_internal_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -7936,6 +9127,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/pairwise_fail_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/param_build_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -7968,6 +9163,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/pkcs12_api_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/pkcs12_format_test" => [ "libcrypto", "test/libtestutil.a" @@ -7988,6 +9187,11 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/priority_queue_test" => [ + "libcrypto", + "libssl.a", + "test/libtestutil.a" + ], "test/property_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -8000,6 +9204,10 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/provider_default_search_path_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/provider_fallback_test" => [ "libcrypto", "test/libtestutil.a" @@ -8024,12 +9232,122 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/quic_ackm_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_cc_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_cfq_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_client_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_fc_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_fifd_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_lcidm_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_multistream_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_newcid_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_qlog_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_radix_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_rcidm_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_record_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_srt_gen_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_srtm_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_stream_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_tserver_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_txp_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_txpim_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_wire_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quicapitest" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quicfaultstest" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], "test/rand_status_test" => [ "libcrypto", "test/libtestutil.a" ], "test/rand_test" => [ - "libcrypto", + "libcrypto.a", "test/libtestutil.a" ], "test/rc2test" => [ @@ -8044,7 +9362,7 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], - "test/rdrand_sanitytest" => [ + "test/rdcpu_sanitytest" => [ "libcrypto.a", "test/libtestutil.a" ], @@ -8053,6 +9371,11 @@ our %unified_info = ( "libssl", "test/libtestutil.a" ], + "test/rpktest" => [ + "libcrypto", + "libssl", + "test/libtestutil.a" + ], "test/rsa_mp_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -8065,10 +9388,18 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], - "test/sanitytest" => [ + "test/rsa_x931_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], + "test/safe_math_test" => [ "libcrypto", "test/libtestutil.a" ], + "test/sanitytest" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/secmemtest" => [ "libcrypto", "test/libtestutil.a" @@ -8086,6 +9417,10 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/slh_dsa_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/sm2_internal_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -8115,6 +9450,11 @@ our %unified_info = ( "libssl", "test/libtestutil.a" ], + "test/ssl_handshake_rtt_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], "test/ssl_old_test" => [ "libcrypto.a", "libssl.a", @@ -8131,8 +9471,8 @@ our %unified_info = ( "test/libtestutil.a" ], "test/sslapitest" => [ - "libcrypto", - "libssl", + "libcrypto.a", + "libssl.a", "test/libtestutil.a" ], "test/sslbuffertest" => [ @@ -8149,6 +9489,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/strtoultest" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/sysdefaulttest" => [ "libcrypto", "libssl", @@ -8158,8 +9502,12 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/threadpool_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/threadstest" => [ - "libcrypto", + "libcrypto.a", "test/libtestutil.a" ], "test/threadstest_fips" => [ @@ -8170,6 +9518,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/time_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/tls13ccstest" => [ "libcrypto", "libssl", @@ -8180,6 +9532,11 @@ our %unified_info = ( "libssl.a", "test/libtestutil.a" ], + "test/tls13groupselection_test" => [ + "libcrypto", + "libssl", + "test/libtestutil.a" + ], "test/trace_api_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -8217,6 +9574,10 @@ our %unified_info = ( "libssl.a", "test/libtestutil.a" ], + "test/x509_acert_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/x509_check_cert_pkey_test" => [ "libcrypto", "test/libtestutil.a" @@ -8229,6 +9590,18 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/x509_load_cert_file_test" => [ + "libcrypto", + "test/libtestutil.a" + ], + "test/x509_req_test" => [ + "libcrypto", + "test/libtestutil.a" + ], + "test/x509_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/x509_time_test" => [ "libcrypto", "test/libtestutil.a" @@ -8243,9 +9616,13 @@ our %unified_info = ( }, "dirinfo" => { "apps" => { + "deps" => [ + "apps/ca_internals_test-bin-ca.o" + ], "products" => { "bin" => [ - "apps/openssl" + "apps/openssl", + "test/ca_internals_test" ], "script" => [ "apps/CA.pl", @@ -8256,6 +9633,14 @@ our %unified_info = ( "apps/lib" => { "deps" => [ "apps/lib/openssl-bin-cmp_mock_srv.o", + "apps/lib/ca_internals_test-bin-app_libctx.o", + "apps/lib/ca_internals_test-bin-app_provider.o", + "apps/lib/ca_internals_test-bin-app_rand.o", + "apps/lib/ca_internals_test-bin-app_x509.o", + "apps/lib/ca_internals_test-bin-apps.o", + "apps/lib/ca_internals_test-bin-apps_ui.o", + "apps/lib/ca_internals_test-bin-engine.o", + "apps/lib/ca_internals_test-bin-fmt.o", "apps/lib/cmp_client_test-bin-cmp_mock_srv.o", "apps/lib/uitest-bin-apps_ui.o", "apps/lib/libapps-lib-app_libctx.o", @@ -8264,12 +9649,14 @@ our %unified_info = ( "apps/lib/libapps-lib-app_rand.o", "apps/lib/libapps-lib-app_x509.o", "apps/lib/libapps-lib-apps.o", + "apps/lib/libapps-lib-apps_opt_printf.o", "apps/lib/libapps-lib-apps_ui.o", "apps/lib/libapps-lib-columns.o", "apps/lib/libapps-lib-engine.o", "apps/lib/libapps-lib-engine_loader.o", "apps/lib/libapps-lib-fmt.o", "apps/lib/libapps-lib-http_server.o", + "apps/lib/libapps-lib-log.o", "apps/lib/libapps-lib-names.o", "apps/lib/libapps-lib-opt.o", "apps/lib/libapps-lib-s_cb.o", @@ -8282,6 +9669,7 @@ our %unified_info = ( "products" => { "bin" => [ "apps/openssl", + "test/ca_internals_test", "test/cmp_client_test", "test/uitest" ], @@ -8293,8 +9681,12 @@ our %unified_info = ( }, "crypto" => { "deps" => [ + "crypto/asn1_time_test-bin-ctype.o", + "crypto/ca_internals_test-bin-ctype.o", + "crypto/packettest-bin-quic_vlint.o", "crypto/libcrypto-lib-asn1_dsa.o", "crypto/libcrypto-lib-bsearch.o", + "crypto/libcrypto-lib-comp_methods.o", "crypto/libcrypto-lib-context.o", "crypto/libcrypto-lib-core_algorithm.o", "crypto/libcrypto-lib-core_fetch.o", @@ -8304,10 +9696,13 @@ our %unified_info = ( "crypto/libcrypto-lib-cryptlib.o", "crypto/libcrypto-lib-ctype.o", "crypto/libcrypto-lib-cversion.o", + "crypto/libcrypto-lib-defaults.o", "crypto/libcrypto-lib-der_writer.o", + "crypto/libcrypto-lib-deterministic_nonce.o", "crypto/libcrypto-lib-ebcdic.o", "crypto/libcrypto-lib-ex_data.o", "crypto/libcrypto-lib-getenv.o", + "crypto/libcrypto-lib-indicator_core.o", "crypto/libcrypto-lib-info.o", "crypto/libcrypto-lib-init.o", "crypto/libcrypto-lib-initthread.o", @@ -8324,6 +9719,7 @@ our %unified_info = ( "crypto/libcrypto-lib-params.o", "crypto/libcrypto-lib-params_dup.o", "crypto/libcrypto-lib-params_from_text.o", + "crypto/libcrypto-lib-params_idx.o", "crypto/libcrypto-lib-passphrase.o", "crypto/libcrypto-lib-provider.o", "crypto/libcrypto-lib-provider_child.o", @@ -8331,12 +9727,16 @@ our %unified_info = ( "crypto/libcrypto-lib-provider_core.o", "crypto/libcrypto-lib-provider_predefined.o", "crypto/libcrypto-lib-punycode.o", + "crypto/libcrypto-lib-quic_vlint.o", "crypto/libcrypto-lib-self_test_core.o", + "crypto/libcrypto-lib-sleep.o", "crypto/libcrypto-lib-sparse_array.o", + "crypto/libcrypto-lib-ssl_err.o", "crypto/libcrypto-lib-threads_lib.o", "crypto/libcrypto-lib-threads_none.o", "crypto/libcrypto-lib-threads_pthread.o", "crypto/libcrypto-lib-threads_win.o", + "crypto/libcrypto-lib-time.o", "crypto/libcrypto-lib-trace.o", "crypto/libcrypto-lib-uid.o", "crypto/libcrypto-lib-x86_64cpuid.o", @@ -8359,6 +9759,7 @@ our %unified_info = ( "crypto/libfips-lib-params.o", "crypto/libfips-lib-params_dup.o", "crypto/libfips-lib-params_from_text.o", + "crypto/libfips-lib-params_idx.o", "crypto/libfips-lib-provider_core.o", "crypto/libfips-lib-provider_predefined.o", "crypto/libfips-lib-self_test_core.o", @@ -8367,9 +9768,15 @@ our %unified_info = ( "crypto/libfips-lib-threads_none.o", "crypto/libfips-lib-threads_pthread.o", "crypto/libfips-lib-threads_win.o", + "crypto/libfips-lib-time.o", "crypto/libfips-lib-x86_64cpuid.o" ], "products" => { + "bin" => [ + "test/asn1_time_test", + "test/ca_internals_test", + "test/packettest" + ], "lib" => [ "libcrypto", "providers/libfips.a" @@ -8389,6 +9796,7 @@ our %unified_info = ( "crypto/aes/libcrypto-lib-aesni-sha1-x86_64.o", "crypto/aes/libcrypto-lib-aesni-sha256-x86_64.o", "crypto/aes/libcrypto-lib-aesni-x86_64.o", + "crypto/aes/libcrypto-lib-aesni-xts-avx512.o", "crypto/aes/libcrypto-lib-bsaes-x86_64.o", "crypto/aes/libcrypto-lib-vpaes-x86_64.o", "crypto/aes/libfips-lib-aes-x86_64.o", @@ -8398,6 +9806,7 @@ our %unified_info = ( "crypto/aes/libfips-lib-aesni-sha1-x86_64.o", "crypto/aes/libfips-lib-aesni-sha256-x86_64.o", "crypto/aes/libfips-lib-aesni-x86_64.o", + "crypto/aes/libfips-lib-aesni-xts-avx512.o", "crypto/aes/libfips-lib-bsaes-x86_64.o", "crypto/aes/libfips-lib-vpaes-x86_64.o" ], @@ -8420,6 +9829,8 @@ our %unified_info = ( }, "crypto/asn1" => { "deps" => [ + "crypto/asn1/asn1_time_test-bin-a_time.o", + "crypto/asn1/ca_internals_test-bin-a_time.o", "crypto/asn1/libcrypto-lib-a_bitstr.o", "crypto/asn1/libcrypto-lib-a_d2i_fp.o", "crypto/asn1/libcrypto-lib-a_digest.o", @@ -8486,6 +9897,10 @@ our %unified_info = ( "crypto/asn1/libcrypto-lib-x_val.o" ], "products" => { + "bin" => [ + "test/asn1_time_test", + "test/ca_internals_test" + ], "lib" => [ "libcrypto" ] @@ -8551,6 +9966,7 @@ our %unified_info = ( "crypto/bio/libcrypto-lib-bss_conn.o", "crypto/bio/libcrypto-lib-bss_core.o", "crypto/bio/libcrypto-lib-bss_dgram.o", + "crypto/bio/libcrypto-lib-bss_dgram_pair.o", "crypto/bio/libcrypto-lib-bss_fd.o", "crypto/bio/libcrypto-lib-bss_file.o", "crypto/bio/libcrypto-lib-bss_log.o", @@ -8600,8 +10016,13 @@ our %unified_info = ( "crypto/bn/libcrypto-lib-bn_srp.o", "crypto/bn/libcrypto-lib-bn_word.o", "crypto/bn/libcrypto-lib-bn_x931p.o", + "crypto/bn/libcrypto-lib-rsaz-2k-avx512.o", + "crypto/bn/libcrypto-lib-rsaz-2k-avxifma.o", + "crypto/bn/libcrypto-lib-rsaz-3k-avx512.o", + "crypto/bn/libcrypto-lib-rsaz-3k-avxifma.o", + "crypto/bn/libcrypto-lib-rsaz-4k-avx512.o", + "crypto/bn/libcrypto-lib-rsaz-4k-avxifma.o", "crypto/bn/libcrypto-lib-rsaz-avx2.o", - "crypto/bn/libcrypto-lib-rsaz-avx512.o", "crypto/bn/libcrypto-lib-rsaz-x86_64.o", "crypto/bn/libcrypto-lib-rsaz_exp.o", "crypto/bn/libcrypto-lib-rsaz_exp_x2.o", @@ -8636,8 +10057,13 @@ our %unified_info = ( "crypto/bn/libfips-lib-bn_sqr.o", "crypto/bn/libfips-lib-bn_sqrt.o", "crypto/bn/libfips-lib-bn_word.o", + "crypto/bn/libfips-lib-rsaz-2k-avx512.o", + "crypto/bn/libfips-lib-rsaz-2k-avxifma.o", + "crypto/bn/libfips-lib-rsaz-3k-avx512.o", + "crypto/bn/libfips-lib-rsaz-3k-avxifma.o", + "crypto/bn/libfips-lib-rsaz-4k-avx512.o", + "crypto/bn/libfips-lib-rsaz-4k-avxifma.o", "crypto/bn/libfips-lib-rsaz-avx2.o", - "crypto/bn/libfips-lib-rsaz-avx512.o", "crypto/bn/libfips-lib-rsaz-x86_64.o", "crypto/bn/libfips-lib-rsaz_exp.o", "crypto/bn/libfips-lib-rsaz_exp_x2.o", @@ -8722,6 +10148,7 @@ our %unified_info = ( "crypto/cmp/libcrypto-lib-cmp_client.o", "crypto/cmp/libcrypto-lib-cmp_ctx.o", "crypto/cmp/libcrypto-lib-cmp_err.o", + "crypto/cmp/libcrypto-lib-cmp_genm.o", "crypto/cmp/libcrypto-lib-cmp_hdr.o", "crypto/cmp/libcrypto-lib-cmp_http.o", "crypto/cmp/libcrypto-lib-cmp_msg.o", @@ -9095,7 +10522,9 @@ our %unified_info = ( "crypto/err/libcrypto-lib-err_all.o", "crypto/err/libcrypto-lib-err_all_legacy.o", "crypto/err/libcrypto-lib-err_blocks.o", - "crypto/err/libcrypto-lib-err_prn.o" + "crypto/err/libcrypto-lib-err_mark.o", + "crypto/err/libcrypto-lib-err_prn.o", + "crypto/err/libcrypto-lib-err_save.o" ], "products" => { "lib" => [ @@ -9196,7 +10625,9 @@ our %unified_info = ( "crypto/evp/libcrypto-lib-pmeth_check.o", "crypto/evp/libcrypto-lib-pmeth_gn.o", "crypto/evp/libcrypto-lib-pmeth_lib.o", + "crypto/evp/libcrypto-lib-s_lib.o", "crypto/evp/libcrypto-lib-signature.o", + "crypto/evp/libcrypto-lib-skeymgmt_meth.o", "crypto/evp/libfips-lib-asymcipher.o", "crypto/evp/libfips-lib-dh_support.o", "crypto/evp/libfips-lib-digest.o", @@ -9212,14 +10643,15 @@ our %unified_info = ( "crypto/evp/libfips-lib-kem.o", "crypto/evp/libfips-lib-keymgmt_lib.o", "crypto/evp/libfips-lib-keymgmt_meth.o", - "crypto/evp/libfips-lib-m_sigver.o", "crypto/evp/libfips-lib-mac_lib.o", "crypto/evp/libfips-lib-mac_meth.o", "crypto/evp/libfips-lib-p_lib.o", "crypto/evp/libfips-lib-pmeth_check.o", "crypto/evp/libfips-lib-pmeth_gn.o", "crypto/evp/libfips-lib-pmeth_lib.o", - "crypto/evp/libfips-lib-signature.o" + "crypto/evp/libfips-lib-s_lib.o", + "crypto/evp/libfips-lib-signature.o", + "crypto/evp/libfips-lib-skeymgmt_meth.o" ], "products" => { "lib" => [ @@ -9252,6 +10684,20 @@ our %unified_info = ( ] } }, + "crypto/hashtable" => { + "deps" => [ + "crypto/hashtable/libcrypto-lib-hashfunc.o", + "crypto/hashtable/libcrypto-lib-hashtable.o", + "crypto/hashtable/libfips-lib-hashfunc.o", + "crypto/hashtable/libfips-lib-hashtable.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, "crypto/hmac" => { "deps" => [ "crypto/hmac/libcrypto-lib-hmac.o", @@ -9264,6 +10710,17 @@ our %unified_info = ( ] } }, + "crypto/hpke" => { + "deps" => [ + "crypto/hpke/libcrypto-lib-hpke.o", + "crypto/hpke/libcrypto-lib-hpke_util.o" + ], + "products" => { + "lib" => [ + "libcrypto" + ] + } + }, "crypto/http" => { "deps" => [ "crypto/http/libcrypto-lib-http_client.o", @@ -9348,8 +10805,47 @@ our %unified_info = ( ] } }, + "crypto/ml_dsa" => { + "deps" => [ + "crypto/ml_dsa/libcrypto-lib-ml_dsa_encoders.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key_compress.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_matrix.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_ntt.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_params.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sample.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sign.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_encoders.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_key.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_key_compress.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_matrix.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_ntt.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_params.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_sample.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_sign.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, + "crypto/ml_kem" => { + "deps" => [ + "crypto/ml_kem/libcrypto-lib-ml_kem.o", + "crypto/ml_kem/libfips-lib-ml_kem.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, "crypto/modes" => { "deps" => [ + "crypto/modes/libcrypto-lib-aes-gcm-avx512.o", "crypto/modes/libcrypto-lib-aesni-gcm-x86_64.o", "crypto/modes/libcrypto-lib-cbc128.o", "crypto/modes/libcrypto-lib-ccm128.o", @@ -9363,6 +10859,8 @@ our %unified_info = ( "crypto/modes/libcrypto-lib-siv128.o", "crypto/modes/libcrypto-lib-wrap128.o", "crypto/modes/libcrypto-lib-xts128.o", + "crypto/modes/libcrypto-lib-xts128gb.o", + "crypto/modes/libfips-lib-aes-gcm-avx512.o", "crypto/modes/libfips-lib-aesni-gcm-x86_64.o", "crypto/modes/libfips-lib-cbc128.o", "crypto/modes/libfips-lib-ccm128.o", @@ -9372,7 +10870,8 @@ our %unified_info = ( "crypto/modes/libfips-lib-ghash-x86_64.o", "crypto/modes/libfips-lib-ofb128.o", "crypto/modes/libfips-lib-wrap128.o", - "crypto/modes/libfips-lib-xts128.o" + "crypto/modes/libfips-lib-xts128.o", + "crypto/modes/libfips-lib-xts128gb.o" ], "products" => { "lib" => [ @@ -9516,6 +11015,7 @@ our %unified_info = ( "crypto/rand/libcrypto-lib-rand_lib.o", "crypto/rand/libcrypto-lib-rand_meth.o", "crypto/rand/libcrypto-lib-rand_pool.o", + "crypto/rand/libcrypto-lib-rand_uniform.o", "crypto/rand/libcrypto-lib-randfile.o", "crypto/rand/libfips-lib-rand_lib.o" ], @@ -9670,6 +11170,36 @@ our %unified_info = ( ] } }, + "crypto/slh_dsa" => { + "deps" => [ + "crypto/slh_dsa/libcrypto-lib-slh_adrs.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa_hash_ctx.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa_key.o", + "crypto/slh_dsa/libcrypto-lib-slh_fors.o", + "crypto/slh_dsa/libcrypto-lib-slh_hash.o", + "crypto/slh_dsa/libcrypto-lib-slh_hypertree.o", + "crypto/slh_dsa/libcrypto-lib-slh_params.o", + "crypto/slh_dsa/libcrypto-lib-slh_wots.o", + "crypto/slh_dsa/libcrypto-lib-slh_xmss.o", + "crypto/slh_dsa/libfips-lib-slh_adrs.o", + "crypto/slh_dsa/libfips-lib-slh_dsa.o", + "crypto/slh_dsa/libfips-lib-slh_dsa_hash_ctx.o", + "crypto/slh_dsa/libfips-lib-slh_dsa_key.o", + "crypto/slh_dsa/libfips-lib-slh_fors.o", + "crypto/slh_dsa/libfips-lib-slh_hash.o", + "crypto/slh_dsa/libfips-lib-slh_hypertree.o", + "crypto/slh_dsa/libfips-lib-slh_params.o", + "crypto/slh_dsa/libfips-lib-slh_wots.o", + "crypto/slh_dsa/libfips-lib-slh_xmss.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, "crypto/sm2" => { "deps" => [ "crypto/sm2/libcrypto-lib-sm2_crypt.o", @@ -9743,6 +11273,38 @@ our %unified_info = ( ] } }, + "crypto/thread" => { + "deps" => [ + "crypto/thread/libcrypto-lib-api.o", + "crypto/thread/libcrypto-lib-arch.o", + "crypto/thread/libcrypto-lib-internal.o", + "crypto/thread/libfips-lib-api.o", + "crypto/thread/libfips-lib-arch.o", + "crypto/thread/libfips-lib-internal.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, + "crypto/thread/arch" => { + "deps" => [ + "crypto/thread/arch/libcrypto-lib-thread_none.o", + "crypto/thread/arch/libcrypto-lib-thread_posix.o", + "crypto/thread/arch/libcrypto-lib-thread_win.o", + "crypto/thread/arch/libfips-lib-thread_none.o", + "crypto/thread/arch/libfips-lib-thread_posix.o", + "crypto/thread/arch/libfips-lib-thread_win.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, "crypto/ts" => { "deps" => [ "crypto/ts/libcrypto-lib-ts_asn1.o", @@ -9809,14 +11371,22 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-pcy_map.o", "crypto/x509/libcrypto-lib-pcy_node.o", "crypto/x509/libcrypto-lib-pcy_tree.o", + "crypto/x509/libcrypto-lib-t_acert.o", "crypto/x509/libcrypto-lib-t_crl.o", "crypto/x509/libcrypto-lib-t_req.o", "crypto/x509/libcrypto-lib-t_x509.o", + "crypto/x509/libcrypto-lib-v3_aaa.o", + "crypto/x509/libcrypto-lib-v3_ac_tgt.o", "crypto/x509/libcrypto-lib-v3_addr.o", "crypto/x509/libcrypto-lib-v3_admis.o", "crypto/x509/libcrypto-lib-v3_akeya.o", "crypto/x509/libcrypto-lib-v3_akid.o", "crypto/x509/libcrypto-lib-v3_asid.o", + "crypto/x509/libcrypto-lib-v3_attrdesc.o", + "crypto/x509/libcrypto-lib-v3_attrmap.o", + "crypto/x509/libcrypto-lib-v3_audit_id.o", + "crypto/x509/libcrypto-lib-v3_authattid.o", + "crypto/x509/libcrypto-lib-v3_battcons.o", "crypto/x509/libcrypto-lib-v3_bcons.o", "crypto/x509/libcrypto-lib-v3_bitst.o", "crypto/x509/libcrypto-lib-v3_conf.o", @@ -9825,12 +11395,17 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_enum.o", "crypto/x509/libcrypto-lib-v3_extku.o", "crypto/x509/libcrypto-lib-v3_genn.o", + "crypto/x509/libcrypto-lib-v3_group_ac.o", "crypto/x509/libcrypto-lib-v3_ia5.o", + "crypto/x509/libcrypto-lib-v3_ind_iss.o", "crypto/x509/libcrypto-lib-v3_info.o", "crypto/x509/libcrypto-lib-v3_int.o", + "crypto/x509/libcrypto-lib-v3_iobo.o", "crypto/x509/libcrypto-lib-v3_ist.o", "crypto/x509/libcrypto-lib-v3_lib.o", "crypto/x509/libcrypto-lib-v3_ncons.o", + "crypto/x509/libcrypto-lib-v3_no_ass.o", + "crypto/x509/libcrypto-lib-v3_no_rev_avail.o", "crypto/x509/libcrypto-lib-v3_pci.o", "crypto/x509/libcrypto-lib-v3_pcia.o", "crypto/x509/libcrypto-lib-v3_pcons.o", @@ -9838,13 +11413,20 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_pmaps.o", "crypto/x509/libcrypto-lib-v3_prn.o", "crypto/x509/libcrypto-lib-v3_purp.o", + "crypto/x509/libcrypto-lib-v3_rolespec.o", "crypto/x509/libcrypto-lib-v3_san.o", + "crypto/x509/libcrypto-lib-v3_sda.o", + "crypto/x509/libcrypto-lib-v3_single_use.o", "crypto/x509/libcrypto-lib-v3_skid.o", + "crypto/x509/libcrypto-lib-v3_soa_id.o", "crypto/x509/libcrypto-lib-v3_sxnet.o", + "crypto/x509/libcrypto-lib-v3_timespec.o", "crypto/x509/libcrypto-lib-v3_tlsf.o", + "crypto/x509/libcrypto-lib-v3_usernotice.o", "crypto/x509/libcrypto-lib-v3_utf8.o", "crypto/x509/libcrypto-lib-v3_utl.o", "crypto/x509/libcrypto-lib-v3err.o", + "crypto/x509/libcrypto-lib-x509_acert.o", "crypto/x509/libcrypto-lib-x509_att.o", "crypto/x509/libcrypto-lib-x509_cmp.o", "crypto/x509/libcrypto-lib-x509_d2.o", @@ -9862,6 +11444,7 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x509_v3.o", "crypto/x509/libcrypto-lib-x509_vfy.o", "crypto/x509/libcrypto-lib-x509_vpm.o", + "crypto/x509/libcrypto-lib-x509aset.o", "crypto/x509/libcrypto-lib-x509cset.o", "crypto/x509/libcrypto-lib-x509name.o", "crypto/x509/libcrypto-lib-x509rset.o", @@ -9871,6 +11454,7 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x_attrib.o", "crypto/x509/libcrypto-lib-x_crl.o", "crypto/x509/libcrypto-lib-x_exten.o", + "crypto/x509/libcrypto-lib-x_ietfatt.o", "crypto/x509/libcrypto-lib-x_name.o", "crypto/x509/libcrypto-lib-x_pubkey.o", "crypto/x509/libcrypto-lib-x_req.o", @@ -9898,6 +11482,7 @@ our %unified_info = ( "fuzz" => { "products" => { "bin" => [ + "fuzz/acert-test", "fuzz/asn1-test", "fuzz/asn1parse-test", "fuzz/bignum-test", @@ -9908,13 +11493,31 @@ our %unified_info = ( "fuzz/conf-test", "fuzz/crl-test", "fuzz/ct-test", + "fuzz/decoder-test", + "fuzz/dtlsclient-test", + "fuzz/dtlsserver-test", + "fuzz/hashtable-test", + "fuzz/ml-dsa-test", + "fuzz/ml-kem-test", + "fuzz/pem-test", + "fuzz/provider-test", + "fuzz/punycode-test", + "fuzz/quic-client-test", + "fuzz/quic-lcidm-test", + "fuzz/quic-rcidm-test", + "fuzz/quic-server-test", + "fuzz/quic-srtm-test", "fuzz/server-test", + "fuzz/slh-dsa-test", + "fuzz/smime-test", + "fuzz/v3name-test", "fuzz/x509-test" ] } }, "providers" => { "deps" => [ + "providers/endecode_test-bin-legacyprov.o", "providers/evp_extra_test-bin-legacyprov.o", "providers/libcrypto-lib-baseprov.o", "providers/libcrypto-lib-defltprov.o", @@ -9924,6 +11527,7 @@ our %unified_info = ( ], "products" => { "bin" => [ + "test/endecode_test", "test/evp_extra_test" ], "dso" => [ @@ -9975,8 +11579,12 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ec_sig.o", "providers/common/der/libcommon-lib-der_ecx_gen.o", "providers/common/der/libcommon-lib-der_ecx_key.o", + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o", + "providers/common/der/libcommon-lib-der_ml_dsa_key.o", "providers/common/der/libcommon-lib-der_rsa_gen.o", "providers/common/der/libcommon-lib-der_rsa_key.o", + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o", + "providers/common/der/libcommon-lib-der_slh_dsa_key.o", "providers/common/der/libcommon-lib-der_wrap_gen.o", "providers/common/der/libdefault-lib-der_rsa_sig.o", "providers/common/der/libdefault-lib-der_sm2_gen.o", @@ -9995,6 +11603,7 @@ our %unified_info = ( "providers/fips" => { "deps" => [ "providers/fips/fips-dso-fips_entry.o", + "providers/fips/libfips-lib-fipsindicator.o", "providers/fips/libfips-lib-fipsprov.o", "providers/fips/libfips-lib-self_test.o", "providers/fips/libfips-lib-self_test_kats.o" @@ -10038,6 +11647,9 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_aes_ccm_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_polyval.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_ocb.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_ocb_hw.o", @@ -10062,7 +11674,13 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_cts.o", "providers/implementations/ciphers/libdefault-lib-cipher_null.o", "providers/implementations/ciphers/libdefault-lib-cipher_sm4.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_sm4_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes_common.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes_default.o", @@ -10159,7 +11777,10 @@ our %unified_info = ( "providers/implementations/encode_decode/libdefault-lib-encode_key2blob.o", "providers/implementations/encode_decode/libdefault-lib-encode_key2ms.o", "providers/implementations/encode_decode/libdefault-lib-encode_key2text.o", - "providers/implementations/encode_decode/libdefault-lib-endecoder_common.o" + "providers/implementations/encode_decode/libdefault-lib-endecoder_common.o", + "providers/implementations/encode_decode/libdefault-lib-ml_common_codecs.o", + "providers/implementations/encode_decode/libdefault-lib-ml_dsa_codecs.o", + "providers/implementations/encode_decode/libdefault-lib-ml_kem_codecs.o" ], "products" => { "lib" => [ @@ -10187,7 +11808,9 @@ our %unified_info = ( }, "providers/implementations/kdfs" => { "deps" => [ + "providers/implementations/kdfs/libdefault-lib-argon2.o", "providers/implementations/kdfs/libdefault-lib-hkdf.o", + "providers/implementations/kdfs/libdefault-lib-hmacdrbg_kdf.o", "providers/implementations/kdfs/libdefault-lib-kbkdf.o", "providers/implementations/kdfs/libdefault-lib-krb5kdf.o", "providers/implementations/kdfs/libdefault-lib-pbkdf2.o", @@ -10206,7 +11829,8 @@ our %unified_info = ( "providers/implementations/kdfs/libfips-lib-sskdf.o", "providers/implementations/kdfs/libfips-lib-tls1_prf.o", "providers/implementations/kdfs/libfips-lib-x942kdf.o", - "providers/implementations/kdfs/liblegacy-lib-pbkdf1.o" + "providers/implementations/kdfs/liblegacy-lib-pbkdf1.o", + "providers/implementations/kdfs/liblegacy-lib-pvkkdf.o" ], "products" => { "lib" => [ @@ -10218,13 +11842,22 @@ our %unified_info = ( }, "providers/implementations/kem" => { "deps" => [ + "providers/implementations/kem/libdefault-lib-ec_kem.o", + "providers/implementations/kem/libdefault-lib-ecx_kem.o", + "providers/implementations/kem/libdefault-lib-kem_util.o", + "providers/implementations/kem/libdefault-lib-ml_kem_kem.o", + "providers/implementations/kem/libdefault-lib-mlx_kem.o", "providers/implementations/kem/libdefault-lib-rsa_kem.o", - "providers/implementations/kem/libfips-lib-rsa_kem.o" + "providers/implementations/kem/libfips-lib-ml_kem_kem.o", + "providers/implementations/kem/libfips-lib-mlx_kem.o", + "providers/implementations/kem/libfips-lib-rsa_kem.o", + "providers/implementations/kem/libtemplate-lib-template_kem.o" ], "products" => { "lib" => [ "providers/libdefault.a", - "providers/libfips.a" + "providers/libfips.a", + "providers/libtemplate.a" ] } }, @@ -10236,19 +11869,29 @@ our %unified_info = ( "providers/implementations/keymgmt/libdefault-lib-ecx_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-kdf_legacy_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-mac_legacy_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-ml_dsa_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-ml_kem_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-mlx_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-rsa_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-slh_dsa_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-dh_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-dsa_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-ec_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-ecx_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-kdf_legacy_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-mac_legacy_kmgmt.o", - "providers/implementations/keymgmt/libfips-lib-rsa_kmgmt.o" + "providers/implementations/keymgmt/libfips-lib-ml_dsa_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-ml_kem_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-mlx_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-rsa_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-slh_dsa_kmgmt.o", + "providers/implementations/keymgmt/libtemplate-lib-template_kmgmt.o" ], "products" => { "lib" => [ "providers/libdefault.a", - "providers/libfips.a" + "providers/libfips.a", + "providers/libtemplate.a" ] } }, @@ -10276,18 +11919,18 @@ our %unified_info = ( }, "providers/implementations/rands" => { "deps" => [ - "providers/implementations/rands/libdefault-lib-crngt.o", "providers/implementations/rands/libdefault-lib-drbg.o", "providers/implementations/rands/libdefault-lib-drbg_ctr.o", "providers/implementations/rands/libdefault-lib-drbg_hash.o", "providers/implementations/rands/libdefault-lib-drbg_hmac.o", "providers/implementations/rands/libdefault-lib-seed_src.o", + "providers/implementations/rands/libdefault-lib-seed_src_jitter.o", "providers/implementations/rands/libdefault-lib-test_rng.o", - "providers/implementations/rands/libfips-lib-crngt.o", "providers/implementations/rands/libfips-lib-drbg.o", "providers/implementations/rands/libfips-lib-drbg_ctr.o", "providers/implementations/rands/libfips-lib-drbg_hash.o", "providers/implementations/rands/libfips-lib-drbg_hmac.o", + "providers/implementations/rands/libfips-lib-fips_crng_test.o", "providers/implementations/rands/libfips-lib-test_rng.o" ], "products" => { @@ -10316,13 +11959,31 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-ecdsa_sig.o", "providers/implementations/signature/libdefault-lib-eddsa_sig.o", "providers/implementations/signature/libdefault-lib-mac_legacy_sig.o", + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o", "providers/implementations/signature/libdefault-lib-rsa_sig.o", + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o", "providers/implementations/signature/libdefault-lib-sm2_sig.o", "providers/implementations/signature/libfips-lib-dsa_sig.o", "providers/implementations/signature/libfips-lib-ecdsa_sig.o", "providers/implementations/signature/libfips-lib-eddsa_sig.o", "providers/implementations/signature/libfips-lib-mac_legacy_sig.o", - "providers/implementations/signature/libfips-lib-rsa_sig.o" + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o", + "providers/implementations/signature/libfips-lib-rsa_sig.o", + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o" + ], + "products" => { + "lib" => [ + "providers/libdefault.a", + "providers/libfips.a" + ] + } + }, + "providers/implementations/skeymgmt" => { + "deps" => [ + "providers/implementations/skeymgmt/libdefault-lib-aes_skmgmt.o", + "providers/implementations/skeymgmt/libdefault-lib-generic.o", + "providers/implementations/skeymgmt/libfips-lib-aes_skmgmt.o", + "providers/implementations/skeymgmt/libfips-lib-generic.o" ], "products" => { "lib" => [ @@ -10334,7 +11995,8 @@ our %unified_info = ( "providers/implementations/storemgmt" => { "deps" => [ "providers/implementations/storemgmt/libdefault-lib-file_store.o", - "providers/implementations/storemgmt/libdefault-lib-file_store_any2obj.o" + "providers/implementations/storemgmt/libdefault-lib-file_store_any2obj.o", + "providers/implementations/storemgmt/libdefault-lib-winstore_store.o" ], "products" => { "lib" => [ @@ -10350,14 +12012,15 @@ our %unified_info = ( "ssl/libssl-lib-d1_srtp.o", "ssl/libssl-lib-methods.o", "ssl/libssl-lib-pqueue.o", + "ssl/libssl-lib-priority_queue.o", "ssl/libssl-lib-s3_enc.o", "ssl/libssl-lib-s3_lib.o", "ssl/libssl-lib-s3_msg.o", "ssl/libssl-lib-ssl_asn1.o", "ssl/libssl-lib-ssl_cert.o", + "ssl/libssl-lib-ssl_cert_comp.o", "ssl/libssl-lib-ssl_ciph.o", "ssl/libssl-lib-ssl_conf.o", - "ssl/libssl-lib-ssl_err.o", "ssl/libssl-lib-ssl_err_legacy.o", "ssl/libssl-lib-ssl_init.o", "ssl/libssl-lib-ssl_lib.o", @@ -10373,32 +12036,107 @@ our %unified_info = ( "ssl/libssl-lib-t1_trce.o", "ssl/libssl-lib-tls13_enc.o", "ssl/libssl-lib-tls_depr.o", - "ssl/libssl-lib-tls_srp.o", - "ssl/libdefault-lib-s3_cbc.o", - "ssl/libfips-lib-s3_cbc.o" + "ssl/libssl-lib-tls_srp.o" ], "products" => { "lib" => [ - "libssl", - "providers/libdefault.a", - "providers/libfips.a" + "libssl" + ] + } + }, + "ssl/quic" => { + "deps" => [ + "ssl/quic/libssl-lib-cc_newreno.o", + "ssl/quic/libssl-lib-json_enc.o", + "ssl/quic/libssl-lib-qlog.o", + "ssl/quic/libssl-lib-qlog_event_helpers.o", + "ssl/quic/libssl-lib-quic_ackm.o", + "ssl/quic/libssl-lib-quic_cfq.o", + "ssl/quic/libssl-lib-quic_channel.o", + "ssl/quic/libssl-lib-quic_demux.o", + "ssl/quic/libssl-lib-quic_engine.o", + "ssl/quic/libssl-lib-quic_fc.o", + "ssl/quic/libssl-lib-quic_fifd.o", + "ssl/quic/libssl-lib-quic_impl.o", + "ssl/quic/libssl-lib-quic_lcidm.o", + "ssl/quic/libssl-lib-quic_method.o", + "ssl/quic/libssl-lib-quic_obj.o", + "ssl/quic/libssl-lib-quic_port.o", + "ssl/quic/libssl-lib-quic_rcidm.o", + "ssl/quic/libssl-lib-quic_reactor.o", + "ssl/quic/libssl-lib-quic_reactor_wait_ctx.o", + "ssl/quic/libssl-lib-quic_record_rx.o", + "ssl/quic/libssl-lib-quic_record_shared.o", + "ssl/quic/libssl-lib-quic_record_tx.o", + "ssl/quic/libssl-lib-quic_record_util.o", + "ssl/quic/libssl-lib-quic_rstream.o", + "ssl/quic/libssl-lib-quic_rx_depack.o", + "ssl/quic/libssl-lib-quic_sf_list.o", + "ssl/quic/libssl-lib-quic_srt_gen.o", + "ssl/quic/libssl-lib-quic_srtm.o", + "ssl/quic/libssl-lib-quic_sstream.o", + "ssl/quic/libssl-lib-quic_statm.o", + "ssl/quic/libssl-lib-quic_stream_map.o", + "ssl/quic/libssl-lib-quic_thread_assist.o", + "ssl/quic/libssl-lib-quic_tls.o", + "ssl/quic/libssl-lib-quic_tls_api.o", + "ssl/quic/libssl-lib-quic_trace.o", + "ssl/quic/libssl-lib-quic_tserver.o", + "ssl/quic/libssl-lib-quic_txp.o", + "ssl/quic/libssl-lib-quic_txpim.o", + "ssl/quic/libssl-lib-quic_types.o", + "ssl/quic/libssl-lib-quic_wire.o", + "ssl/quic/libssl-lib-quic_wire_pkt.o", + "ssl/quic/libssl-lib-uint_set.o" + ], + "products" => { + "lib" => [ + "libssl" ] } }, "ssl/record" => { "deps" => [ - "ssl/record/libssl-lib-dtls1_bitmap.o", "ssl/record/libssl-lib-rec_layer_d1.o", - "ssl/record/libssl-lib-rec_layer_s3.o", - "ssl/record/libssl-lib-ssl3_buffer.o", - "ssl/record/libssl-lib-ssl3_record.o", - "ssl/record/libssl-lib-ssl3_record_tls13.o", - "ssl/record/libcommon-lib-tls_pad.o" + "ssl/record/libssl-lib-rec_layer_s3.o" + ], + "products" => { + "lib" => [ + "libssl" + ] + } + }, + "ssl/record/methods" => { + "deps" => [ + "ssl/record/methods/libssl-lib-dtls_meth.o", + "ssl/record/methods/libssl-lib-ssl3_meth.o", + "ssl/record/methods/libssl-lib-tls13_meth.o", + "ssl/record/methods/libssl-lib-tls1_meth.o", + "ssl/record/methods/libssl-lib-tls_common.o", + "ssl/record/methods/libssl-lib-tls_multib.o", + "ssl/record/methods/libssl-lib-tlsany_meth.o", + "ssl/record/methods/libcommon-lib-tls_pad.o", + "ssl/record/methods/libdefault-lib-ssl3_cbc.o", + "ssl/record/methods/libfips-lib-ssl3_cbc.o" ], "products" => { "lib" => [ "libssl", - "providers/libcommon.a" + "providers/libcommon.a", + "providers/libdefault.a", + "providers/libfips.a" + ] + } + }, + "ssl/rio" => { + "deps" => [ + "ssl/rio/libssl-lib-poll_builder.o", + "ssl/rio/libssl-lib-poll_immediate.o", + "ssl/rio/libssl-lib-rio_notifier.o" + ], + "products" => { + "lib" => [ + "libssl" ] } }, @@ -10436,9 +12174,40 @@ our %unified_info = ( "test/helpers/dtlstest-bin-ssltestlib.o", "test/helpers/endecode_test-bin-predefined_dhparams.o", "test/helpers/fatalerrtest-bin-ssltestlib.o", + "test/helpers/json_test-bin-noisydgrambio.o", + "test/helpers/json_test-bin-pktsplitbio.o", + "test/helpers/json_test-bin-quictestlib.o", + "test/helpers/json_test-bin-ssltestlib.o", + "test/helpers/pkcs12_api_test-bin-pkcs12.o", "test/helpers/pkcs12_format_test-bin-pkcs12.o", + "test/helpers/quic_multistream_test-bin-noisydgrambio.o", + "test/helpers/quic_multistream_test-bin-pktsplitbio.o", + "test/helpers/quic_multistream_test-bin-quictestlib.o", + "test/helpers/quic_multistream_test-bin-ssltestlib.o", + "test/helpers/quic_newcid_test-bin-noisydgrambio.o", + "test/helpers/quic_newcid_test-bin-pktsplitbio.o", + "test/helpers/quic_newcid_test-bin-quictestlib.o", + "test/helpers/quic_newcid_test-bin-ssltestlib.o", + "test/helpers/quic_radix_test-bin-noisydgrambio.o", + "test/helpers/quic_radix_test-bin-pktsplitbio.o", + "test/helpers/quic_radix_test-bin-quictestlib.o", + "test/helpers/quic_radix_test-bin-ssltestlib.o", + "test/helpers/quic_srt_gen_test-bin-noisydgrambio.o", + "test/helpers/quic_srt_gen_test-bin-pktsplitbio.o", + "test/helpers/quic_srt_gen_test-bin-quictestlib.o", + "test/helpers/quic_srt_gen_test-bin-ssltestlib.o", + "test/helpers/quicapitest-bin-noisydgrambio.o", + "test/helpers/quicapitest-bin-pktsplitbio.o", + "test/helpers/quicapitest-bin-quictestlib.o", + "test/helpers/quicapitest-bin-ssltestlib.o", + "test/helpers/quicfaultstest-bin-noisydgrambio.o", + "test/helpers/quicfaultstest-bin-pktsplitbio.o", + "test/helpers/quicfaultstest-bin-quictestlib.o", + "test/helpers/quicfaultstest-bin-ssltestlib.o", "test/helpers/recordlentest-bin-ssltestlib.o", + "test/helpers/rpktest-bin-ssltestlib.o", "test/helpers/servername_test-bin-ssltestlib.o", + "test/helpers/ssl_handshake_rtt_test-bin-ssltestlib.o", "test/helpers/ssl_old_test-bin-predefined_dhparams.o", "test/helpers/ssl_test-bin-handshake.o", "test/helpers/ssl_test-bin-handshake_srp.o", @@ -10447,7 +12216,8 @@ our %unified_info = ( "test/helpers/sslapitest-bin-ssltestlib.o", "test/helpers/sslbuffertest-bin-ssltestlib.o", "test/helpers/sslcorrupttest-bin-ssltestlib.o", - "test/helpers/tls13ccstest-bin-ssltestlib.o" + "test/helpers/tls13ccstest-bin-ssltestlib.o", + "test/helpers/tls13groupselection_test-bin-ssltestlib.o" ], "products" => { "bin" => [ @@ -10465,16 +12235,37 @@ our %unified_info = ( "test/dtlstest", "test/endecode_test", "test/fatalerrtest", + "test/json_test", + "test/pkcs12_api_test", "test/pkcs12_format_test", + "test/quic_multistream_test", + "test/quic_newcid_test", + "test/quic_radix_test", + "test/quic_srt_gen_test", + "test/quicapitest", + "test/quicfaultstest", "test/recordlentest", + "test/rpktest", "test/servername_test", + "test/ssl_handshake_rtt_test", "test/ssl_old_test", "test/ssl_test", "test/ssl_test_ctx_test", "test/sslapitest", "test/sslbuffertest", "test/sslcorrupttest", - "test/tls13ccstest" + "test/tls13ccstest", + "test/tls13groupselection_test" + ] + } + }, + "test/radix" => { + "deps" => [ + "test/radix/quic_radix_test-bin-quic_radix.o" + ], + "products" => { + "bin" => [ + "test/quic_radix_test" ] } }, @@ -10486,6 +12277,7 @@ our %unified_info = ( "test/testutil/libtestutil-lib-driver.o", "test/testutil/libtestutil-lib-fake_random.o", "test/testutil/libtestutil-lib-format_output.o", + "test/testutil/libtestutil-lib-helper.o", "test/testutil/libtestutil-lib-load.o", "test/testutil/libtestutil-lib-main.o", "test/testutil/libtestutil-lib-options.o", @@ -10520,6 +12312,12 @@ our %unified_info = ( } }, "generate" => { + "OpenSSLConfig.cmake" => [ + "exporters/cmake/OpenSSLConfig.cmake.in" + ], + "OpenSSLConfigVersion.cmake" => [ + "exporters/cmake/OpenSSLConfigVersion.cmake.in" + ], "apps/openssl.rc" => [ "util/mkrc.pl", "openssl" @@ -10534,6 +12332,19 @@ our %unified_info = ( "\"-H\"", "\$(APPS_OPENSSL)" ], + "builddata.pm" => [ + "util/mkinstallvars.pl", + "PREFIX=.", + "BINDIR=apps", + "APPLINKDIR=ms", + "LIBDIR=", + "INCLUDEDIR=include", + "\"INCLUDEDIR=\$(SRCDIR)/include\"", + "ENGINESDIR=engines", + "MODULESDIR=providers", + "\"VERSION=\$(VERSION)\"", + "\"LDLIBS=\$(LIB_EX_LIBS)\"" + ], "crypto/aes/aes-586.S" => [ "crypto/aes/asm/aes-586.pl" ], @@ -10555,6 +12366,24 @@ our %unified_info = ( "crypto/aes/aes-ppc.s" => [ "crypto/aes/asm/aes-ppc.pl" ], + "crypto/aes/aes-riscv32-zkn.s" => [ + "crypto/aes/asm/aes-riscv32-zkn.pl" + ], + "crypto/aes/aes-riscv64-zkn.s" => [ + "crypto/aes/asm/aes-riscv64-zkn.pl" + ], + "crypto/aes/aes-riscv64-zvbb-zvkg-zvkned.s" => [ + "crypto/aes/asm/aes-riscv64-zvbb-zvkg-zvkned.pl" + ], + "crypto/aes/aes-riscv64-zvkb-zvkned.s" => [ + "crypto/aes/asm/aes-riscv64-zvkb-zvkned.pl" + ], + "crypto/aes/aes-riscv64-zvkned.s" => [ + "crypto/aes/asm/aes-riscv64-zvkned.pl" + ], + "crypto/aes/aes-riscv64.s" => [ + "crypto/aes/asm/aes-riscv64.pl" + ], "crypto/aes/aes-s390x.S" => [ "crypto/aes/asm/aes-s390x.pl" ], @@ -10582,6 +12411,9 @@ our %unified_info = ( "crypto/aes/aesni-x86_64.s" => [ "crypto/aes/asm/aesni-x86_64.pl" ], + "crypto/aes/aesni-xts-avx512.s" => [ + "crypto/aes/asm/aesni-xts-avx512.pl" + ], "crypto/aes/aesp8-ppc.s" => [ "crypto/aes/asm/aesp8-ppc.pl" ], @@ -10594,12 +12426,18 @@ our %unified_info = ( "crypto/aes/bsaes-armv7.S" => [ "crypto/aes/asm/bsaes-armv7.pl" ], + "crypto/aes/bsaes-armv8.S" => [ + "crypto/aes/asm/bsaes-armv8.pl" + ], "crypto/aes/bsaes-x86_64.s" => [ "crypto/aes/asm/bsaes-x86_64.pl" ], "crypto/aes/vpaes-armv8.S" => [ "crypto/aes/asm/vpaes-armv8.pl" ], + "crypto/aes/vpaes-loongarch64.S" => [ + "crypto/aes/asm/vpaes-loongarch64.pl" + ], "crypto/aes/vpaes-ppc.s" => [ "crypto/aes/asm/vpaes-ppc.pl" ], @@ -10660,15 +12498,33 @@ our %unified_info = ( "crypto/bn/ppc-mont.s" => [ "crypto/bn/asm/ppc-mont.pl" ], + "crypto/bn/ppc64-mont-fixed.s" => [ + "crypto/bn/asm/ppc64-mont-fixed.pl" + ], "crypto/bn/ppc64-mont.s" => [ "crypto/bn/asm/ppc64-mont.pl" ], + "crypto/bn/rsaz-2k-avx512.s" => [ + "crypto/bn/asm/rsaz-2k-avx512.pl" + ], + "crypto/bn/rsaz-2k-avxifma.s" => [ + "crypto/bn/asm/rsaz-2k-avxifma.pl" + ], + "crypto/bn/rsaz-3k-avx512.s" => [ + "crypto/bn/asm/rsaz-3k-avx512.pl" + ], + "crypto/bn/rsaz-3k-avxifma.s" => [ + "crypto/bn/asm/rsaz-3k-avxifma.pl" + ], + "crypto/bn/rsaz-4k-avx512.s" => [ + "crypto/bn/asm/rsaz-4k-avx512.pl" + ], + "crypto/bn/rsaz-4k-avxifma.s" => [ + "crypto/bn/asm/rsaz-4k-avxifma.pl" + ], "crypto/bn/rsaz-avx2.s" => [ "crypto/bn/asm/rsaz-avx2.pl" ], - "crypto/bn/rsaz-avx512.s" => [ - "crypto/bn/asm/rsaz-avx512.pl" - ], "crypto/bn/rsaz-x86_64.s" => [ "crypto/bn/asm/rsaz-x86_64.pl" ], @@ -10730,6 +12586,9 @@ our %unified_info = ( "crypto/chacha/chacha-armv4.S" => [ "crypto/chacha/asm/chacha-armv4.pl" ], + "crypto/chacha/chacha-armv8-sve.S" => [ + "crypto/chacha/asm/chacha-armv8-sve.pl" + ], "crypto/chacha/chacha-armv8.S" => [ "crypto/chacha/asm/chacha-armv8.pl" ], @@ -10742,9 +12601,19 @@ our %unified_info = ( "crypto/chacha/chacha-ia64.s" => [ "crypto/chacha/chacha-ia64.S" ], + "crypto/chacha/chacha-loongarch64.S" => [ + "crypto/chacha/asm/chacha-loongarch64.pl" + ], "crypto/chacha/chacha-ppc.s" => [ "crypto/chacha/asm/chacha-ppc.pl" ], + "crypto/chacha/chacha-riscv64-v-zbb-zvkb.s" => [ + "crypto/chacha/asm/chacha-riscv64-v-zbb.pl", + "zvkb" + ], + "crypto/chacha/chacha-riscv64-v-zbb.s" => [ + "crypto/chacha/asm/chacha-riscv64-v-zbb.pl" + ], "crypto/chacha/chacha-s390x.S" => [ "crypto/chacha/asm/chacha-s390x.pl" ], @@ -10754,6 +12623,9 @@ our %unified_info = ( "crypto/chacha/chacha-x86_64.s" => [ "crypto/chacha/asm/chacha-x86_64.pl" ], + "crypto/chacha/chachap10-ppc.s" => [ + "crypto/chacha/asm/chachap10-ppc.pl" + ], "crypto/des/crypt586.S" => [ "crypto/des/asm/crypt586.pl" ], @@ -10766,6 +12638,9 @@ our %unified_info = ( "crypto/des/dest4-sparcv9.S" => [ "crypto/des/asm/dest4-sparcv9.pl" ], + "crypto/ec/ecp_nistp384-ppc64.s" => [ + "crypto/ec/asm/ecp_nistp384-ppc64.pl" + ], "crypto/ec/ecp_nistp521-ppc64.s" => [ "crypto/ec/asm/ecp_nistp521-ppc64.pl" ], @@ -10790,6 +12665,9 @@ our %unified_info = ( "crypto/ec/ecp_nistz256-x86_64.s" => [ "crypto/ec/asm/ecp_nistz256-x86_64.pl" ], + "crypto/ec/ecp_sm2p256-armv8.S" => [ + "crypto/ec/asm/ecp_sm2p256-armv8.pl" + ], "crypto/ec/x25519-ppc64.s" => [ "crypto/ec/asm/x25519-ppc64.pl" ], @@ -10799,18 +12677,39 @@ our %unified_info = ( "crypto/ia64cpuid.s" => [ "crypto/ia64cpuid.S" ], + "crypto/loongarch64cpuid.s" => [ + "crypto/loongarch64cpuid.pl" + ], "crypto/md5/md5-586.S" => [ "crypto/md5/asm/md5-586.pl" ], + "crypto/md5/md5-aarch64.S" => [ + "crypto/md5/asm/md5-aarch64.pl" + ], + "crypto/md5/md5-loongarch64.S" => [ + "crypto/md5/asm/md5-loongarch64.pl" + ], "crypto/md5/md5-sparcv9.S" => [ "crypto/md5/asm/md5-sparcv9.pl" ], "crypto/md5/md5-x86_64.s" => [ "crypto/md5/asm/md5-x86_64.pl" ], + "crypto/modes/aes-gcm-armv8-unroll8_64.S" => [ + "crypto/modes/asm/aes-gcm-armv8-unroll8_64.pl" + ], "crypto/modes/aes-gcm-armv8_64.S" => [ "crypto/modes/asm/aes-gcm-armv8_64.pl" ], + "crypto/modes/aes-gcm-avx512.s" => [ + "crypto/modes/asm/aes-gcm-avx512.pl" + ], + "crypto/modes/aes-gcm-ppc.s" => [ + "crypto/modes/asm/aes-gcm-ppc.pl" + ], + "crypto/modes/aes-gcm-riscv64-zvkb-zvkg-zvkned.s" => [ + "crypto/modes/asm/aes-gcm-riscv64-zvkb-zvkg-zvkned.pl" + ], "crypto/modes/aesni-gcm-x86_64.s" => [ "crypto/modes/asm/aesni-gcm-x86_64.pl" ], @@ -10829,6 +12728,15 @@ our %unified_info = ( "crypto/modes/ghash-parisc.s" => [ "crypto/modes/asm/ghash-parisc.pl" ], + "crypto/modes/ghash-riscv64-zvkb-zvbc.s" => [ + "crypto/modes/asm/ghash-riscv64-zvkb-zvbc.pl" + ], + "crypto/modes/ghash-riscv64-zvkg.s" => [ + "crypto/modes/asm/ghash-riscv64-zvkg.pl" + ], + "crypto/modes/ghash-riscv64.s" => [ + "crypto/modes/asm/ghash-riscv64.pl" + ], "crypto/modes/ghash-s390x.S" => [ "crypto/modes/asm/ghash-s390x.pl" ], @@ -10847,6 +12755,9 @@ our %unified_info = ( "crypto/modes/ghashv8-armx.S" => [ "crypto/modes/asm/ghashv8-armx.pl" ], + "crypto/params_idx.c" => [ + "crypto/params_idx.c.in" + ], "crypto/pariscid.s" => [ "crypto/pariscid.pl" ], @@ -10907,6 +12818,12 @@ our %unified_info = ( "crypto/ripemd/rmd-586.S" => [ "crypto/ripemd/asm/rmd-586.pl" ], + "crypto/riscv32cpuid.s" => [ + "crypto/riscv32cpuid.pl" + ], + "crypto/riscv64cpuid.s" => [ + "crypto/riscv64cpuid.pl" + ], "crypto/s390xcpuid.S" => [ "crypto/s390xcpuid.pl" ], @@ -11015,6 +12932,9 @@ our %unified_info = ( "crypto/sha/sha256-ppc.s" => [ "crypto/sha/asm/sha512-ppc.pl" ], + "crypto/sha/sha256-riscv64-zvkb-zvknha_or_zvknhb.S" => [ + "crypto/sha/asm/sha256-riscv64-zvkb-zvknha_or_zvknhb.pl" + ], "crypto/sha/sha256-s390x.S" => [ "crypto/sha/asm/sha512-s390x.pl" ], @@ -11051,6 +12971,9 @@ our %unified_info = ( "crypto/sha/sha512-ppc.s" => [ "crypto/sha/asm/sha512-ppc.pl" ], + "crypto/sha/sha512-riscv64-zvkb-zvknhb.S" => [ + "crypto/sha/asm/sha512-riscv64-zvkb-zvknhb.pl" + ], "crypto/sha/sha512-s390x.S" => [ "crypto/sha/asm/sha512-s390x.pl" ], @@ -11063,6 +12986,24 @@ our %unified_info = ( "crypto/sha/sha512p8-ppc.s" => [ "crypto/sha/asm/sha512p8-ppc.pl" ], + "crypto/sm3/sm3-armv8.S" => [ + "crypto/sm3/asm/sm3-armv8.pl" + ], + "crypto/sm3/sm3-riscv64-zvksh.S" => [ + "crypto/sm3/asm/sm3-riscv64-zvksh.pl" + ], + "crypto/sm4/sm4-armv8.S" => [ + "crypto/sm4/asm/sm4-armv8.pl" + ], + "crypto/sm4/sm4-riscv64-zvksed.s" => [ + "crypto/sm4/asm/sm4-riscv64-zvksed.pl" + ], + "crypto/sm4/vpsm4-armv8.S" => [ + "crypto/sm4/asm/vpsm4-armv8.pl" + ], + "crypto/sm4/vpsm4_ex-armv8.S" => [ + "crypto/sm4/asm/vpsm4_ex-armv8.pl" + ], "crypto/uplink-ia64.s" => [ "ms/uplink-ia64.pl" ], @@ -11228,6 +13169,9 @@ our %unified_info = ( "doc/html/man1/openssl-sess_id.html" => [ "doc/man1/openssl-sess_id.pod" ], + "doc/html/man1/openssl-skeyutl.html" => [ + "doc/man1/openssl-skeyutl.pod" + ], "doc/html/man1/openssl-smime.html" => [ "doc/man1/openssl-smime.pod" ], @@ -11369,6 +13313,9 @@ our %unified_info = ( "doc/html/man3/BIO_get_ex_new_index.html" => [ "doc/man3/BIO_get_ex_new_index.pod" ], + "doc/html/man3/BIO_get_rpoll_descriptor.html" => [ + "doc/man3/BIO_get_rpoll_descriptor.pod" + ], "doc/html/man3/BIO_meth_new.html" => [ "doc/man3/BIO_meth_new.pod" ], @@ -11405,6 +13352,9 @@ our %unified_info = ( "doc/html/man3/BIO_s_datagram.html" => [ "doc/man3/BIO_s_datagram.pod" ], + "doc/html/man3/BIO_s_dgram_pair.html" => [ + "doc/man3/BIO_s_dgram_pair.pod" + ], "doc/html/man3/BIO_s_fd.html" => [ "doc/man3/BIO_s_fd.pod" ], @@ -11420,6 +13370,9 @@ our %unified_info = ( "doc/html/man3/BIO_s_socket.html" => [ "doc/man3/BIO_s_socket.pod" ], + "doc/html/man3/BIO_sendmmsg.html" => [ + "doc/man3/BIO_sendmmsg.pod" + ], "doc/html/man3/BIO_set_callback.html" => [ "doc/man3/BIO_set_callback.pod" ], @@ -11492,6 +13445,9 @@ our %unified_info = ( "doc/html/man3/BUF_MEM_new.html" => [ "doc/man3/BUF_MEM_new.pod" ], + "doc/html/man3/CMAC_CTX.html" => [ + "doc/man3/CMAC_CTX.pod" + ], "doc/html/man3/CMS_EncryptedData_decrypt.html" => [ "doc/man3/CMS_EncryptedData_decrypt.pod" ], @@ -11558,6 +13514,9 @@ our %unified_info = ( "doc/html/man3/CMS_verify_receipt.html" => [ "doc/man3/CMS_verify_receipt.pod" ], + "doc/html/man3/COMP_CTX_new.html" => [ + "doc/man3/COMP_CTX_new.pod" + ], "doc/html/man3/CONF_modules_free.html" => [ "doc/man3/CONF_modules_free.pod" ], @@ -11657,6 +13616,12 @@ our %unified_info = ( "doc/html/man3/DTLS_set_timer_cb.html" => [ "doc/man3/DTLS_set_timer_cb.pod" ], + "doc/html/man3/DTLSv1_get_timeout.html" => [ + "doc/man3/DTLSv1_get_timeout.pod" + ], + "doc/html/man3/DTLSv1_handle_timeout.html" => [ + "doc/man3/DTLSv1_handle_timeout.pod" + ], "doc/html/man3/DTLSv1_listen.html" => [ "doc/man3/DTLSv1_listen.pod" ], @@ -11795,6 +13760,9 @@ our %unified_info = ( "doc/html/man3/EVP_PKEY_CTX_get0_pkey.html" => [ "doc/man3/EVP_PKEY_CTX_get0_pkey.pod" ], + "doc/html/man3/EVP_PKEY_CTX_get_algor.html" => [ + "doc/man3/EVP_PKEY_CTX_get_algor.pod" + ], "doc/html/man3/EVP_PKEY_CTX_new.html" => [ "doc/man3/EVP_PKEY_CTX_new.pod" ], @@ -11912,6 +13880,12 @@ our %unified_info = ( "doc/html/man3/EVP_SIGNATURE.html" => [ "doc/man3/EVP_SIGNATURE.pod" ], + "doc/html/man3/EVP_SKEY.html" => [ + "doc/man3/EVP_SKEY.pod" + ], + "doc/html/man3/EVP_SKEYMGMT.html" => [ + "doc/man3/EVP_SKEYMGMT.pod" + ], "doc/html/man3/EVP_SealInit.html" => [ "doc/man3/EVP_SealInit.pod" ], @@ -11999,6 +13973,9 @@ our %unified_info = ( "doc/html/man3/EVP_whirlpool.html" => [ "doc/man3/EVP_whirlpool.pod" ], + "doc/html/man3/GENERAL_NAME.html" => [ + "doc/man3/GENERAL_NAME.pod" + ], "doc/html/man3/HMAC.html" => [ "doc/man3/HMAC.pod" ], @@ -12071,9 +14048,15 @@ our %unified_info = ( "doc/html/man3/OPENSSL_load_builtin_modules.html" => [ "doc/man3/OPENSSL_load_builtin_modules.pod" ], + "doc/html/man3/OPENSSL_load_u16_le.html" => [ + "doc/man3/OPENSSL_load_u16_le.pod" + ], "doc/html/man3/OPENSSL_malloc.html" => [ "doc/man3/OPENSSL_malloc.pod" ], + "doc/html/man3/OPENSSL_riscvcap.html" => [ + "doc/man3/OPENSSL_riscvcap.pod" + ], "doc/html/man3/OPENSSL_s390xcap.html" => [ "doc/man3/OPENSSL_s390xcap.pod" ], @@ -12089,12 +14072,18 @@ our %unified_info = ( "doc/html/man3/OSSL_CALLBACK.html" => [ "doc/man3/OSSL_CALLBACK.pod" ], + "doc/html/man3/OSSL_CMP_ATAV_set0.html" => [ + "doc/man3/OSSL_CMP_ATAV_set0.pod" + ], "doc/html/man3/OSSL_CMP_CTX_new.html" => [ "doc/man3/OSSL_CMP_CTX_new.pod" ], "doc/html/man3/OSSL_CMP_HDR_get0_transactionID.html" => [ "doc/man3/OSSL_CMP_HDR_get0_transactionID.pod" ], + "doc/html/man3/OSSL_CMP_ITAV_new_caCerts.html" => [ + "doc/man3/OSSL_CMP_ITAV_new_caCerts.pod" + ], "doc/html/man3/OSSL_CMP_ITAV_set0.html" => [ "doc/man3/OSSL_CMP_ITAV_set0.pod" ], @@ -12164,9 +14153,18 @@ our %unified_info = ( "doc/html/man3/OSSL_ENCODER_to_bio.html" => [ "doc/man3/OSSL_ENCODER_to_bio.pod" ], + "doc/html/man3/OSSL_ERR_STATE_save.html" => [ + "doc/man3/OSSL_ERR_STATE_save.pod" + ], "doc/html/man3/OSSL_ESS_check_signing_certs.html" => [ "doc/man3/OSSL_ESS_check_signing_certs.pod" ], + "doc/html/man3/OSSL_GENERAL_NAMES_print.html" => [ + "doc/man3/OSSL_GENERAL_NAMES_print.pod" + ], + "doc/html/man3/OSSL_HPKE_CTX_new.html" => [ + "doc/man3/OSSL_HPKE_CTX_new.pod" + ], "doc/html/man3/OSSL_HTTP_REQ_CTX.html" => [ "doc/man3/OSSL_HTTP_REQ_CTX.pod" ], @@ -12176,12 +14174,24 @@ our %unified_info = ( "doc/html/man3/OSSL_HTTP_transfer.html" => [ "doc/man3/OSSL_HTTP_transfer.pod" ], + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX.html" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX.pod" + ], + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX_print.html" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX_print.pod" + ], + "doc/html/man3/OSSL_INDICATOR_set_callback.html" => [ + "doc/man3/OSSL_INDICATOR_set_callback.pod" + ], "doc/html/man3/OSSL_ITEM.html" => [ "doc/man3/OSSL_ITEM.pod" ], "doc/html/man3/OSSL_LIB_CTX.html" => [ "doc/man3/OSSL_LIB_CTX.pod" ], + "doc/html/man3/OSSL_LIB_CTX_set_conf_diagnostics.html" => [ + "doc/man3/OSSL_LIB_CTX_set_conf_diagnostics.pod" + ], "doc/html/man3/OSSL_PARAM.html" => [ "doc/man3/OSSL_PARAM.pod" ], @@ -12197,9 +14207,15 @@ our %unified_info = ( "doc/html/man3/OSSL_PARAM_int.html" => [ "doc/man3/OSSL_PARAM_int.pod" ], + "doc/html/man3/OSSL_PARAM_print_to_bio.html" => [ + "doc/man3/OSSL_PARAM_print_to_bio.pod" + ], "doc/html/man3/OSSL_PROVIDER.html" => [ "doc/man3/OSSL_PROVIDER.pod" ], + "doc/html/man3/OSSL_QUIC_client_method.html" => [ + "doc/man3/OSSL_QUIC_client_method.pod" + ], "doc/html/man3/OSSL_SELF_TEST_new.html" => [ "doc/man3/OSSL_SELF_TEST_new.pod" ], @@ -12224,6 +14240,9 @@ our %unified_info = ( "doc/html/man3/OSSL_STORE_open.html" => [ "doc/man3/OSSL_STORE_open.pod" ], + "doc/html/man3/OSSL_sleep.html" => [ + "doc/man3/OSSL_sleep.pod" + ], "doc/html/man3/OSSL_trace_enabled.html" => [ "doc/man3/OSSL_trace_enabled.pod" ], @@ -12239,6 +14258,9 @@ our %unified_info = ( "doc/html/man3/OpenSSL_version.html" => [ "doc/man3/OpenSSL_version.pod" ], + "doc/html/man3/PBMAC1_get1_pbkdf2_param.html" => [ + "doc/man3/PBMAC1_get1_pbkdf2_param.pod" + ], "doc/html/man3/PEM_X509_INFO_read_bio_ex.html" => [ "doc/man3/PEM_X509_INFO_read_bio_ex.pod" ], @@ -12275,6 +14297,9 @@ our %unified_info = ( "doc/html/man3/PKCS12_SAFEBAG_get1_cert.html" => [ "doc/man3/PKCS12_SAFEBAG_get1_cert.pod" ], + "doc/html/man3/PKCS12_SAFEBAG_set0_attrs.html" => [ + "doc/man3/PKCS12_SAFEBAG_set0_attrs.pod" + ], "doc/html/man3/PKCS12_add1_attr_by_NID.html" => [ "doc/man3/PKCS12_add1_attr_by_NID.pod" ], @@ -12548,6 +14573,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set0_CA_list.html" => [ "doc/man3/SSL_CTX_set0_CA_list.pod" ], + "doc/html/man3/SSL_CTX_set1_cert_comp_preference.html" => [ + "doc/man3/SSL_CTX_set1_cert_comp_preference.pod" + ], "doc/html/man3/SSL_CTX_set1_curves.html" => [ "doc/man3/SSL_CTX_set1_curves.pod" ], @@ -12587,6 +14615,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_default_passwd_cb.html" => [ "doc/man3/SSL_CTX_set_default_passwd_cb.pod" ], + "doc/html/man3/SSL_CTX_set_domain_flags.html" => [ + "doc/man3/SSL_CTX_set_domain_flags.pod" + ], "doc/html/man3/SSL_CTX_set_generate_session_id.html" => [ "doc/man3/SSL_CTX_set_generate_session_id.pod" ], @@ -12608,6 +14639,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_msg_callback.html" => [ "doc/man3/SSL_CTX_set_msg_callback.pod" ], + "doc/html/man3/SSL_CTX_set_new_pending_conn_cb.html" => [ + "doc/man3/SSL_CTX_set_new_pending_conn_cb.pod" + ], "doc/html/man3/SSL_CTX_set_num_tickets.html" => [ "doc/man3/SSL_CTX_set_num_tickets.pod" ], @@ -12722,6 +14756,9 @@ our %unified_info = ( "doc/html/man3/SSL_accept.html" => [ "doc/man3/SSL_accept.pod" ], + "doc/html/man3/SSL_accept_stream.html" => [ + "doc/man3/SSL_accept_stream.pod" + ], "doc/html/man3/SSL_alert_type_string.html" => [ "doc/man3/SSL_alert_type_string.pod" ], @@ -12749,9 +14786,21 @@ our %unified_info = ( "doc/html/man3/SSL_free.html" => [ "doc/man3/SSL_free.pod" ], + "doc/html/man3/SSL_get0_connection.html" => [ + "doc/man3/SSL_get0_connection.pod" + ], + "doc/html/man3/SSL_get0_group_name.html" => [ + "doc/man3/SSL_get0_group_name.pod" + ], + "doc/html/man3/SSL_get0_peer_rpk.html" => [ + "doc/man3/SSL_get0_peer_rpk.pod" + ], "doc/html/man3/SSL_get0_peer_scts.html" => [ "doc/man3/SSL_get0_peer_scts.pod" ], + "doc/html/man3/SSL_get1_builtin_sigalgs.html" => [ + "doc/man3/SSL_get1_builtin_sigalgs.pod" + ], "doc/html/man3/SSL_get_SSL_CTX.html" => [ "doc/man3/SSL_get_SSL_CTX.pod" ], @@ -12767,6 +14816,9 @@ our %unified_info = ( "doc/html/man3/SSL_get_client_random.html" => [ "doc/man3/SSL_get_client_random.pod" ], + "doc/html/man3/SSL_get_conn_close_info.html" => [ + "doc/man3/SSL_get_conn_close_info.pod" + ], "doc/html/man3/SSL_get_current_cipher.html" => [ "doc/man3/SSL_get_current_cipher.pod" ], @@ -12776,12 +14828,18 @@ our %unified_info = ( "doc/html/man3/SSL_get_error.html" => [ "doc/man3/SSL_get_error.pod" ], + "doc/html/man3/SSL_get_event_timeout.html" => [ + "doc/man3/SSL_get_event_timeout.pod" + ], "doc/html/man3/SSL_get_extms_support.html" => [ "doc/man3/SSL_get_extms_support.pod" ], "doc/html/man3/SSL_get_fd.html" => [ "doc/man3/SSL_get_fd.pod" ], + "doc/html/man3/SSL_get_handshake_rtt.html" => [ + "doc/man3/SSL_get_handshake_rtt.pod" + ], "doc/html/man3/SSL_get_peer_cert_chain.html" => [ "doc/man3/SSL_get_peer_cert_chain.pod" ], @@ -12800,12 +14858,24 @@ our %unified_info = ( "doc/html/man3/SSL_get_rbio.html" => [ "doc/man3/SSL_get_rbio.pod" ], + "doc/html/man3/SSL_get_rpoll_descriptor.html" => [ + "doc/man3/SSL_get_rpoll_descriptor.pod" + ], "doc/html/man3/SSL_get_session.html" => [ "doc/man3/SSL_get_session.pod" ], "doc/html/man3/SSL_get_shared_sigalgs.html" => [ "doc/man3/SSL_get_shared_sigalgs.pod" ], + "doc/html/man3/SSL_get_stream_id.html" => [ + "doc/man3/SSL_get_stream_id.pod" + ], + "doc/html/man3/SSL_get_stream_read_state.html" => [ + "doc/man3/SSL_get_stream_read_state.pod" + ], + "doc/html/man3/SSL_get_value_uint.html" => [ + "doc/man3/SSL_get_value_uint.pod" + ], "doc/html/man3/SSL_get_verify_result.html" => [ "doc/man3/SSL_get_verify_result.pod" ], @@ -12815,9 +14885,15 @@ our %unified_info = ( "doc/html/man3/SSL_group_to_name.html" => [ "doc/man3/SSL_group_to_name.pod" ], + "doc/html/man3/SSL_handle_events.html" => [ + "doc/man3/SSL_handle_events.pod" + ], "doc/html/man3/SSL_in_init.html" => [ "doc/man3/SSL_in_init.pod" ], + "doc/html/man3/SSL_inject_net_dgram.html" => [ + "doc/man3/SSL_inject_net_dgram.pod" + ], "doc/html/man3/SSL_key_update.html" => [ "doc/man3/SSL_key_update.pod" ], @@ -12830,9 +14906,21 @@ our %unified_info = ( "doc/html/man3/SSL_new.html" => [ "doc/man3/SSL_new.pod" ], + "doc/html/man3/SSL_new_domain.html" => [ + "doc/man3/SSL_new_domain.pod" + ], + "doc/html/man3/SSL_new_listener.html" => [ + "doc/man3/SSL_new_listener.pod" + ], + "doc/html/man3/SSL_new_stream.html" => [ + "doc/man3/SSL_new_stream.pod" + ], "doc/html/man3/SSL_pending.html" => [ "doc/man3/SSL_pending.pod" ], + "doc/html/man3/SSL_poll.html" => [ + "doc/man3/SSL_poll.pod" + ], "doc/html/man3/SSL_read.html" => [ "doc/man3/SSL_read.pod" ], @@ -12848,24 +14936,45 @@ our %unified_info = ( "doc/html/man3/SSL_set1_host.html" => [ "doc/man3/SSL_set1_host.pod" ], + "doc/html/man3/SSL_set1_initial_peer_addr.html" => [ + "doc/man3/SSL_set1_initial_peer_addr.pod" + ], + "doc/html/man3/SSL_set1_server_cert_type.html" => [ + "doc/man3/SSL_set1_server_cert_type.pod" + ], "doc/html/man3/SSL_set_async_callback.html" => [ "doc/man3/SSL_set_async_callback.pod" ], "doc/html/man3/SSL_set_bio.html" => [ "doc/man3/SSL_set_bio.pod" ], + "doc/html/man3/SSL_set_blocking_mode.html" => [ + "doc/man3/SSL_set_blocking_mode.pod" + ], "doc/html/man3/SSL_set_connect_state.html" => [ "doc/man3/SSL_set_connect_state.pod" ], + "doc/html/man3/SSL_set_default_stream_mode.html" => [ + "doc/man3/SSL_set_default_stream_mode.pod" + ], "doc/html/man3/SSL_set_fd.html" => [ "doc/man3/SSL_set_fd.pod" ], + "doc/html/man3/SSL_set_incoming_stream_policy.html" => [ + "doc/man3/SSL_set_incoming_stream_policy.pod" + ], + "doc/html/man3/SSL_set_quic_tls_cbs.html" => [ + "doc/man3/SSL_set_quic_tls_cbs.pod" + ], "doc/html/man3/SSL_set_retry_verify.html" => [ "doc/man3/SSL_set_retry_verify.pod" ], "doc/html/man3/SSL_set_session.html" => [ "doc/man3/SSL_set_session.pod" ], + "doc/html/man3/SSL_set_session_secret_cb.html" => [ + "doc/man3/SSL_set_session_secret_cb.pod" + ], "doc/html/man3/SSL_set_shutdown.html" => [ "doc/man3/SSL_set_shutdown.pod" ], @@ -12878,6 +14987,12 @@ our %unified_info = ( "doc/html/man3/SSL_state_string.html" => [ "doc/man3/SSL_state_string.pod" ], + "doc/html/man3/SSL_stream_conclude.html" => [ + "doc/man3/SSL_stream_conclude.pod" + ], + "doc/html/man3/SSL_stream_reset.html" => [ + "doc/man3/SSL_stream_reset.pod" + ], "doc/html/man3/SSL_want.html" => [ "doc/man3/SSL_want.pod" ], @@ -12887,8 +15002,8 @@ our %unified_info = ( "doc/html/man3/TS_RESP_CTX_new.html" => [ "doc/man3/TS_RESP_CTX_new.pod" ], - "doc/html/man3/TS_VERIFY_CTX_set_certs.html" => [ - "doc/man3/TS_VERIFY_CTX_set_certs.pod" + "doc/html/man3/TS_VERIFY_CTX.html" => [ + "doc/man3/TS_VERIFY_CTX.pod" ], "doc/html/man3/UI_STRING.html" => [ "doc/man3/UI_STRING.pod" @@ -12908,6 +15023,21 @@ our %unified_info = ( "doc/html/man3/X509V3_set_ctx.html" => [ "doc/man3/X509V3_set_ctx.pod" ], + "doc/html/man3/X509_ACERT_add1_attr.html" => [ + "doc/man3/X509_ACERT_add1_attr.pod" + ], + "doc/html/man3/X509_ACERT_add_attr_nconf.html" => [ + "doc/man3/X509_ACERT_add_attr_nconf.pod" + ], + "doc/html/man3/X509_ACERT_get0_holder_baseCertId.html" => [ + "doc/man3/X509_ACERT_get0_holder_baseCertId.pod" + ], + "doc/html/man3/X509_ACERT_get_attr.html" => [ + "doc/man3/X509_ACERT_get_attr.pod" + ], + "doc/html/man3/X509_ACERT_print_ex.html" => [ + "doc/man3/X509_ACERT_print_ex.pod" + ], "doc/html/man3/X509_ALGOR_dup.html" => [ "doc/man3/X509_ALGOR_dup.pod" ], @@ -12956,6 +15086,9 @@ our %unified_info = ( "doc/html/man3/X509_SIG_get0.html" => [ "doc/man3/X509_SIG_get0.pod" ], + "doc/html/man3/X509_STORE_CTX_get_by_subject.html" => [ + "doc/man3/X509_STORE_CTX_get_by_subject.pod" + ], "doc/html/man3/X509_STORE_CTX_get_error.html" => [ "doc/man3/X509_STORE_CTX_get_error.pod" ], @@ -13022,6 +15155,9 @@ our %unified_info = ( "doc/html/man3/X509_get0_uids.html" => [ "doc/man3/X509_get0_uids.pod" ], + "doc/html/man3/X509_get_default_cert_file.html" => [ + "doc/man3/X509_get_default_cert_file.pod" + ], "doc/html/man3/X509_get_extension_flags.html" => [ "doc/man3/X509_get_extension_flags.pod" ], @@ -13145,9 +15281,15 @@ our %unified_info = ( "doc/html/man7/EVP_CIPHER-SM4.html" => [ "doc/man7/EVP_CIPHER-SM4.pod" ], + "doc/html/man7/EVP_KDF-ARGON2.html" => [ + "doc/man7/EVP_KDF-ARGON2.pod" + ], "doc/html/man7/EVP_KDF-HKDF.html" => [ "doc/man7/EVP_KDF-HKDF.pod" ], + "doc/html/man7/EVP_KDF-HMAC-DRBG.html" => [ + "doc/man7/EVP_KDF-HMAC-DRBG.pod" + ], "doc/html/man7/EVP_KDF-KB.html" => [ "doc/man7/EVP_KDF-KB.pod" ], @@ -13163,6 +15305,9 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-PKCS12KDF.html" => [ "doc/man7/EVP_KDF-PKCS12KDF.pod" ], + "doc/html/man7/EVP_KDF-PVKKDF.html" => [ + "doc/man7/EVP_KDF-PVKKDF.pod" + ], "doc/html/man7/EVP_KDF-SCRYPT.html" => [ "doc/man7/EVP_KDF-SCRYPT.pod" ], @@ -13187,9 +15332,18 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-X963.html" => [ "doc/man7/EVP_KDF-X963.pod" ], + "doc/html/man7/EVP_KEM-EC.html" => [ + "doc/man7/EVP_KEM-EC.pod" + ], + "doc/html/man7/EVP_KEM-ML-KEM.html" => [ + "doc/man7/EVP_KEM-ML-KEM.pod" + ], "doc/html/man7/EVP_KEM-RSA.html" => [ "doc/man7/EVP_KEM-RSA.pod" ], + "doc/html/man7/EVP_KEM-X25519.html" => [ + "doc/man7/EVP_KEM-X25519.pod" + ], "doc/html/man7/EVP_KEYEXCH-DH.html" => [ "doc/man7/EVP_KEYEXCH-DH.pod" ], @@ -13223,6 +15377,9 @@ our %unified_info = ( "doc/html/man7/EVP_MD-BLAKE2.html" => [ "doc/man7/EVP_MD-BLAKE2.pod" ], + "doc/html/man7/EVP_MD-KECCAK.html" => [ + "doc/man7/EVP_MD-KECCAK.pod" + ], "doc/html/man7/EVP_MD-MD2.html" => [ "doc/man7/EVP_MD-MD2.pod" ], @@ -13280,15 +15437,27 @@ our %unified_info = ( "doc/html/man7/EVP_PKEY-HMAC.html" => [ "doc/man7/EVP_PKEY-HMAC.pod" ], + "doc/html/man7/EVP_PKEY-ML-DSA.html" => [ + "doc/man7/EVP_PKEY-ML-DSA.pod" + ], + "doc/html/man7/EVP_PKEY-ML-KEM.html" => [ + "doc/man7/EVP_PKEY-ML-KEM.pod" + ], "doc/html/man7/EVP_PKEY-RSA.html" => [ "doc/man7/EVP_PKEY-RSA.pod" ], + "doc/html/man7/EVP_PKEY-SLH-DSA.html" => [ + "doc/man7/EVP_PKEY-SLH-DSA.pod" + ], "doc/html/man7/EVP_PKEY-SM2.html" => [ "doc/man7/EVP_PKEY-SM2.pod" ], "doc/html/man7/EVP_PKEY-X25519.html" => [ "doc/man7/EVP_PKEY-X25519.pod" ], + "doc/html/man7/EVP_RAND-CRNG-TEST.html" => [ + "doc/man7/EVP_RAND-CRNG-TEST.pod" + ], "doc/html/man7/EVP_RAND-CTR-DRBG.html" => [ "doc/man7/EVP_RAND-CTR-DRBG.pod" ], @@ -13298,6 +15467,9 @@ our %unified_info = ( "doc/html/man7/EVP_RAND-HMAC-DRBG.html" => [ "doc/man7/EVP_RAND-HMAC-DRBG.pod" ], + "doc/html/man7/EVP_RAND-JITTER.html" => [ + "doc/man7/EVP_RAND-JITTER.pod" + ], "doc/html/man7/EVP_RAND-SEED-SRC.html" => [ "doc/man7/EVP_RAND-SEED-SRC.pod" ], @@ -13319,9 +15491,15 @@ our %unified_info = ( "doc/html/man7/EVP_SIGNATURE-HMAC.html" => [ "doc/man7/EVP_SIGNATURE-HMAC.pod" ], + "doc/html/man7/EVP_SIGNATURE-ML-DSA.html" => [ + "doc/man7/EVP_SIGNATURE-ML-DSA.pod" + ], "doc/html/man7/EVP_SIGNATURE-RSA.html" => [ "doc/man7/EVP_SIGNATURE-RSA.pod" ], + "doc/html/man7/EVP_SIGNATURE-SLH-DSA.html" => [ + "doc/man7/EVP_SIGNATURE-SLH-DSA.pod" + ], "doc/html/man7/OSSL_PROVIDER-FIPS.html" => [ "doc/man7/OSSL_PROVIDER-FIPS.pod" ], @@ -13337,6 +15515,9 @@ our %unified_info = ( "doc/html/man7/OSSL_PROVIDER-null.html" => [ "doc/man7/OSSL_PROVIDER-null.pod" ], + "doc/html/man7/OSSL_STORE-winstore.html" => [ + "doc/man7/OSSL_STORE-winstore.pod" + ], "doc/html/man7/RAND.html" => [ "doc/man7/RAND.pod" ], @@ -13349,9 +15530,6 @@ our %unified_info = ( "doc/html/man7/bio.html" => [ "doc/man7/bio.pod" ], - "doc/html/man7/crypto.html" => [ - "doc/man7/crypto.pod" - ], "doc/html/man7/ct.html" => [ "doc/man7/ct.pod" ], @@ -13382,9 +15560,6 @@ our %unified_info = ( "doc/html/man7/life_cycle-rand.html" => [ "doc/man7/life_cycle-rand.pod" ], - "doc/html/man7/migration_guide.html" => [ - "doc/man7/migration_guide.pod" - ], "doc/html/man7/openssl-core.h.html" => [ "doc/man7/openssl-core.h.pod" ], @@ -13400,12 +15575,66 @@ our %unified_info = ( "doc/html/man7/openssl-glossary.html" => [ "doc/man7/openssl-glossary.pod" ], + "doc/html/man7/openssl-qlog.html" => [ + "doc/man7/openssl-qlog.pod" + ], + "doc/html/man7/openssl-quic-concurrency.html" => [ + "doc/man7/openssl-quic-concurrency.pod" + ], + "doc/html/man7/openssl-quic.html" => [ + "doc/man7/openssl-quic.pod" + ], "doc/html/man7/openssl-threads.html" => [ "doc/man7/openssl-threads.pod" ], "doc/html/man7/openssl_user_macros.html" => [ "doc/man7/openssl_user_macros.pod" ], + "doc/html/man7/ossl-guide-introduction.html" => [ + "doc/man7/ossl-guide-introduction.pod" + ], + "doc/html/man7/ossl-guide-libcrypto-introduction.html" => [ + "doc/man7/ossl-guide-libcrypto-introduction.pod" + ], + "doc/html/man7/ossl-guide-libraries-introduction.html" => [ + "doc/man7/ossl-guide-libraries-introduction.pod" + ], + "doc/html/man7/ossl-guide-libssl-introduction.html" => [ + "doc/man7/ossl-guide-libssl-introduction.pod" + ], + "doc/html/man7/ossl-guide-migration.html" => [ + "doc/man7/ossl-guide-migration.pod" + ], + "doc/html/man7/ossl-guide-quic-client-block.html" => [ + "doc/man7/ossl-guide-quic-client-block.pod" + ], + "doc/html/man7/ossl-guide-quic-client-non-block.html" => [ + "doc/man7/ossl-guide-quic-client-non-block.pod" + ], + "doc/html/man7/ossl-guide-quic-introduction.html" => [ + "doc/man7/ossl-guide-quic-introduction.pod" + ], + "doc/html/man7/ossl-guide-quic-multi-stream.html" => [ + "doc/man7/ossl-guide-quic-multi-stream.pod" + ], + "doc/html/man7/ossl-guide-quic-server-block.html" => [ + "doc/man7/ossl-guide-quic-server-block.pod" + ], + "doc/html/man7/ossl-guide-quic-server-non-block.html" => [ + "doc/man7/ossl-guide-quic-server-non-block.pod" + ], + "doc/html/man7/ossl-guide-tls-client-block.html" => [ + "doc/man7/ossl-guide-tls-client-block.pod" + ], + "doc/html/man7/ossl-guide-tls-client-non-block.html" => [ + "doc/man7/ossl-guide-tls-client-non-block.pod" + ], + "doc/html/man7/ossl-guide-tls-introduction.html" => [ + "doc/man7/ossl-guide-tls-introduction.pod" + ], + "doc/html/man7/ossl-guide-tls-server-block.html" => [ + "doc/man7/ossl-guide-tls-server-block.pod" + ], "doc/html/man7/ossl_store-file.html" => [ "doc/man7/ossl_store-file.pod" ], @@ -13460,6 +15689,9 @@ our %unified_info = ( "doc/html/man7/provider-signature.html" => [ "doc/man7/provider-signature.pod" ], + "doc/html/man7/provider-skeymgmt.html" => [ + "doc/man7/provider-skeymgmt.pod" + ], "doc/html/man7/provider-storemgmt.html" => [ "doc/man7/provider-storemgmt.pod" ], @@ -13469,9 +15701,6 @@ our %unified_info = ( "doc/html/man7/proxy-certificates.html" => [ "doc/man7/proxy-certificates.pod" ], - "doc/html/man7/ssl.html" => [ - "doc/man7/ssl.pod" - ], "doc/html/man7/x509.html" => [ "doc/man7/x509.pod" ], @@ -13619,6 +15848,9 @@ our %unified_info = ( "doc/man/man1/openssl-sess_id.1" => [ "doc/man1/openssl-sess_id.pod" ], + "doc/man/man1/openssl-skeyutl.1" => [ + "doc/man1/openssl-skeyutl.pod" + ], "doc/man/man1/openssl-smime.1" => [ "doc/man1/openssl-smime.pod" ], @@ -13760,6 +15992,9 @@ our %unified_info = ( "doc/man/man3/BIO_get_ex_new_index.3" => [ "doc/man3/BIO_get_ex_new_index.pod" ], + "doc/man/man3/BIO_get_rpoll_descriptor.3" => [ + "doc/man3/BIO_get_rpoll_descriptor.pod" + ], "doc/man/man3/BIO_meth_new.3" => [ "doc/man3/BIO_meth_new.pod" ], @@ -13796,6 +16031,9 @@ our %unified_info = ( "doc/man/man3/BIO_s_datagram.3" => [ "doc/man3/BIO_s_datagram.pod" ], + "doc/man/man3/BIO_s_dgram_pair.3" => [ + "doc/man3/BIO_s_dgram_pair.pod" + ], "doc/man/man3/BIO_s_fd.3" => [ "doc/man3/BIO_s_fd.pod" ], @@ -13811,6 +16049,9 @@ our %unified_info = ( "doc/man/man3/BIO_s_socket.3" => [ "doc/man3/BIO_s_socket.pod" ], + "doc/man/man3/BIO_sendmmsg.3" => [ + "doc/man3/BIO_sendmmsg.pod" + ], "doc/man/man3/BIO_set_callback.3" => [ "doc/man3/BIO_set_callback.pod" ], @@ -13883,6 +16124,9 @@ our %unified_info = ( "doc/man/man3/BUF_MEM_new.3" => [ "doc/man3/BUF_MEM_new.pod" ], + "doc/man/man3/CMAC_CTX.3" => [ + "doc/man3/CMAC_CTX.pod" + ], "doc/man/man3/CMS_EncryptedData_decrypt.3" => [ "doc/man3/CMS_EncryptedData_decrypt.pod" ], @@ -13949,6 +16193,9 @@ our %unified_info = ( "doc/man/man3/CMS_verify_receipt.3" => [ "doc/man3/CMS_verify_receipt.pod" ], + "doc/man/man3/COMP_CTX_new.3" => [ + "doc/man3/COMP_CTX_new.pod" + ], "doc/man/man3/CONF_modules_free.3" => [ "doc/man3/CONF_modules_free.pod" ], @@ -14048,6 +16295,12 @@ our %unified_info = ( "doc/man/man3/DTLS_set_timer_cb.3" => [ "doc/man3/DTLS_set_timer_cb.pod" ], + "doc/man/man3/DTLSv1_get_timeout.3" => [ + "doc/man3/DTLSv1_get_timeout.pod" + ], + "doc/man/man3/DTLSv1_handle_timeout.3" => [ + "doc/man3/DTLSv1_handle_timeout.pod" + ], "doc/man/man3/DTLSv1_listen.3" => [ "doc/man3/DTLSv1_listen.pod" ], @@ -14186,6 +16439,9 @@ our %unified_info = ( "doc/man/man3/EVP_PKEY_CTX_get0_pkey.3" => [ "doc/man3/EVP_PKEY_CTX_get0_pkey.pod" ], + "doc/man/man3/EVP_PKEY_CTX_get_algor.3" => [ + "doc/man3/EVP_PKEY_CTX_get_algor.pod" + ], "doc/man/man3/EVP_PKEY_CTX_new.3" => [ "doc/man3/EVP_PKEY_CTX_new.pod" ], @@ -14303,6 +16559,12 @@ our %unified_info = ( "doc/man/man3/EVP_SIGNATURE.3" => [ "doc/man3/EVP_SIGNATURE.pod" ], + "doc/man/man3/EVP_SKEY.3" => [ + "doc/man3/EVP_SKEY.pod" + ], + "doc/man/man3/EVP_SKEYMGMT.3" => [ + "doc/man3/EVP_SKEYMGMT.pod" + ], "doc/man/man3/EVP_SealInit.3" => [ "doc/man3/EVP_SealInit.pod" ], @@ -14390,6 +16652,9 @@ our %unified_info = ( "doc/man/man3/EVP_whirlpool.3" => [ "doc/man3/EVP_whirlpool.pod" ], + "doc/man/man3/GENERAL_NAME.3" => [ + "doc/man3/GENERAL_NAME.pod" + ], "doc/man/man3/HMAC.3" => [ "doc/man3/HMAC.pod" ], @@ -14462,9 +16727,15 @@ our %unified_info = ( "doc/man/man3/OPENSSL_load_builtin_modules.3" => [ "doc/man3/OPENSSL_load_builtin_modules.pod" ], + "doc/man/man3/OPENSSL_load_u16_le.3" => [ + "doc/man3/OPENSSL_load_u16_le.pod" + ], "doc/man/man3/OPENSSL_malloc.3" => [ "doc/man3/OPENSSL_malloc.pod" ], + "doc/man/man3/OPENSSL_riscvcap.3" => [ + "doc/man3/OPENSSL_riscvcap.pod" + ], "doc/man/man3/OPENSSL_s390xcap.3" => [ "doc/man3/OPENSSL_s390xcap.pod" ], @@ -14480,12 +16751,18 @@ our %unified_info = ( "doc/man/man3/OSSL_CALLBACK.3" => [ "doc/man3/OSSL_CALLBACK.pod" ], + "doc/man/man3/OSSL_CMP_ATAV_set0.3" => [ + "doc/man3/OSSL_CMP_ATAV_set0.pod" + ], "doc/man/man3/OSSL_CMP_CTX_new.3" => [ "doc/man3/OSSL_CMP_CTX_new.pod" ], "doc/man/man3/OSSL_CMP_HDR_get0_transactionID.3" => [ "doc/man3/OSSL_CMP_HDR_get0_transactionID.pod" ], + "doc/man/man3/OSSL_CMP_ITAV_new_caCerts.3" => [ + "doc/man3/OSSL_CMP_ITAV_new_caCerts.pod" + ], "doc/man/man3/OSSL_CMP_ITAV_set0.3" => [ "doc/man3/OSSL_CMP_ITAV_set0.pod" ], @@ -14555,9 +16832,18 @@ our %unified_info = ( "doc/man/man3/OSSL_ENCODER_to_bio.3" => [ "doc/man3/OSSL_ENCODER_to_bio.pod" ], + "doc/man/man3/OSSL_ERR_STATE_save.3" => [ + "doc/man3/OSSL_ERR_STATE_save.pod" + ], "doc/man/man3/OSSL_ESS_check_signing_certs.3" => [ "doc/man3/OSSL_ESS_check_signing_certs.pod" ], + "doc/man/man3/OSSL_GENERAL_NAMES_print.3" => [ + "doc/man3/OSSL_GENERAL_NAMES_print.pod" + ], + "doc/man/man3/OSSL_HPKE_CTX_new.3" => [ + "doc/man3/OSSL_HPKE_CTX_new.pod" + ], "doc/man/man3/OSSL_HTTP_REQ_CTX.3" => [ "doc/man3/OSSL_HTTP_REQ_CTX.pod" ], @@ -14567,12 +16853,24 @@ our %unified_info = ( "doc/man/man3/OSSL_HTTP_transfer.3" => [ "doc/man3/OSSL_HTTP_transfer.pod" ], + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX.3" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX.pod" + ], + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX_print.3" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX_print.pod" + ], + "doc/man/man3/OSSL_INDICATOR_set_callback.3" => [ + "doc/man3/OSSL_INDICATOR_set_callback.pod" + ], "doc/man/man3/OSSL_ITEM.3" => [ "doc/man3/OSSL_ITEM.pod" ], "doc/man/man3/OSSL_LIB_CTX.3" => [ "doc/man3/OSSL_LIB_CTX.pod" ], + "doc/man/man3/OSSL_LIB_CTX_set_conf_diagnostics.3" => [ + "doc/man3/OSSL_LIB_CTX_set_conf_diagnostics.pod" + ], "doc/man/man3/OSSL_PARAM.3" => [ "doc/man3/OSSL_PARAM.pod" ], @@ -14588,9 +16886,15 @@ our %unified_info = ( "doc/man/man3/OSSL_PARAM_int.3" => [ "doc/man3/OSSL_PARAM_int.pod" ], + "doc/man/man3/OSSL_PARAM_print_to_bio.3" => [ + "doc/man3/OSSL_PARAM_print_to_bio.pod" + ], "doc/man/man3/OSSL_PROVIDER.3" => [ "doc/man3/OSSL_PROVIDER.pod" ], + "doc/man/man3/OSSL_QUIC_client_method.3" => [ + "doc/man3/OSSL_QUIC_client_method.pod" + ], "doc/man/man3/OSSL_SELF_TEST_new.3" => [ "doc/man3/OSSL_SELF_TEST_new.pod" ], @@ -14615,6 +16919,9 @@ our %unified_info = ( "doc/man/man3/OSSL_STORE_open.3" => [ "doc/man3/OSSL_STORE_open.pod" ], + "doc/man/man3/OSSL_sleep.3" => [ + "doc/man3/OSSL_sleep.pod" + ], "doc/man/man3/OSSL_trace_enabled.3" => [ "doc/man3/OSSL_trace_enabled.pod" ], @@ -14630,6 +16937,9 @@ our %unified_info = ( "doc/man/man3/OpenSSL_version.3" => [ "doc/man3/OpenSSL_version.pod" ], + "doc/man/man3/PBMAC1_get1_pbkdf2_param.3" => [ + "doc/man3/PBMAC1_get1_pbkdf2_param.pod" + ], "doc/man/man3/PEM_X509_INFO_read_bio_ex.3" => [ "doc/man3/PEM_X509_INFO_read_bio_ex.pod" ], @@ -14666,6 +16976,9 @@ our %unified_info = ( "doc/man/man3/PKCS12_SAFEBAG_get1_cert.3" => [ "doc/man3/PKCS12_SAFEBAG_get1_cert.pod" ], + "doc/man/man3/PKCS12_SAFEBAG_set0_attrs.3" => [ + "doc/man3/PKCS12_SAFEBAG_set0_attrs.pod" + ], "doc/man/man3/PKCS12_add1_attr_by_NID.3" => [ "doc/man3/PKCS12_add1_attr_by_NID.pod" ], @@ -14939,6 +17252,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set0_CA_list.3" => [ "doc/man3/SSL_CTX_set0_CA_list.pod" ], + "doc/man/man3/SSL_CTX_set1_cert_comp_preference.3" => [ + "doc/man3/SSL_CTX_set1_cert_comp_preference.pod" + ], "doc/man/man3/SSL_CTX_set1_curves.3" => [ "doc/man3/SSL_CTX_set1_curves.pod" ], @@ -14978,6 +17294,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_default_passwd_cb.3" => [ "doc/man3/SSL_CTX_set_default_passwd_cb.pod" ], + "doc/man/man3/SSL_CTX_set_domain_flags.3" => [ + "doc/man3/SSL_CTX_set_domain_flags.pod" + ], "doc/man/man3/SSL_CTX_set_generate_session_id.3" => [ "doc/man3/SSL_CTX_set_generate_session_id.pod" ], @@ -14999,6 +17318,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_msg_callback.3" => [ "doc/man3/SSL_CTX_set_msg_callback.pod" ], + "doc/man/man3/SSL_CTX_set_new_pending_conn_cb.3" => [ + "doc/man3/SSL_CTX_set_new_pending_conn_cb.pod" + ], "doc/man/man3/SSL_CTX_set_num_tickets.3" => [ "doc/man3/SSL_CTX_set_num_tickets.pod" ], @@ -15113,6 +17435,9 @@ our %unified_info = ( "doc/man/man3/SSL_accept.3" => [ "doc/man3/SSL_accept.pod" ], + "doc/man/man3/SSL_accept_stream.3" => [ + "doc/man3/SSL_accept_stream.pod" + ], "doc/man/man3/SSL_alert_type_string.3" => [ "doc/man3/SSL_alert_type_string.pod" ], @@ -15140,9 +17465,21 @@ our %unified_info = ( "doc/man/man3/SSL_free.3" => [ "doc/man3/SSL_free.pod" ], + "doc/man/man3/SSL_get0_connection.3" => [ + "doc/man3/SSL_get0_connection.pod" + ], + "doc/man/man3/SSL_get0_group_name.3" => [ + "doc/man3/SSL_get0_group_name.pod" + ], + "doc/man/man3/SSL_get0_peer_rpk.3" => [ + "doc/man3/SSL_get0_peer_rpk.pod" + ], "doc/man/man3/SSL_get0_peer_scts.3" => [ "doc/man3/SSL_get0_peer_scts.pod" ], + "doc/man/man3/SSL_get1_builtin_sigalgs.3" => [ + "doc/man3/SSL_get1_builtin_sigalgs.pod" + ], "doc/man/man3/SSL_get_SSL_CTX.3" => [ "doc/man3/SSL_get_SSL_CTX.pod" ], @@ -15158,6 +17495,9 @@ our %unified_info = ( "doc/man/man3/SSL_get_client_random.3" => [ "doc/man3/SSL_get_client_random.pod" ], + "doc/man/man3/SSL_get_conn_close_info.3" => [ + "doc/man3/SSL_get_conn_close_info.pod" + ], "doc/man/man3/SSL_get_current_cipher.3" => [ "doc/man3/SSL_get_current_cipher.pod" ], @@ -15167,12 +17507,18 @@ our %unified_info = ( "doc/man/man3/SSL_get_error.3" => [ "doc/man3/SSL_get_error.pod" ], + "doc/man/man3/SSL_get_event_timeout.3" => [ + "doc/man3/SSL_get_event_timeout.pod" + ], "doc/man/man3/SSL_get_extms_support.3" => [ "doc/man3/SSL_get_extms_support.pod" ], "doc/man/man3/SSL_get_fd.3" => [ "doc/man3/SSL_get_fd.pod" ], + "doc/man/man3/SSL_get_handshake_rtt.3" => [ + "doc/man3/SSL_get_handshake_rtt.pod" + ], "doc/man/man3/SSL_get_peer_cert_chain.3" => [ "doc/man3/SSL_get_peer_cert_chain.pod" ], @@ -15191,12 +17537,24 @@ our %unified_info = ( "doc/man/man3/SSL_get_rbio.3" => [ "doc/man3/SSL_get_rbio.pod" ], + "doc/man/man3/SSL_get_rpoll_descriptor.3" => [ + "doc/man3/SSL_get_rpoll_descriptor.pod" + ], "doc/man/man3/SSL_get_session.3" => [ "doc/man3/SSL_get_session.pod" ], "doc/man/man3/SSL_get_shared_sigalgs.3" => [ "doc/man3/SSL_get_shared_sigalgs.pod" ], + "doc/man/man3/SSL_get_stream_id.3" => [ + "doc/man3/SSL_get_stream_id.pod" + ], + "doc/man/man3/SSL_get_stream_read_state.3" => [ + "doc/man3/SSL_get_stream_read_state.pod" + ], + "doc/man/man3/SSL_get_value_uint.3" => [ + "doc/man3/SSL_get_value_uint.pod" + ], "doc/man/man3/SSL_get_verify_result.3" => [ "doc/man3/SSL_get_verify_result.pod" ], @@ -15206,9 +17564,15 @@ our %unified_info = ( "doc/man/man3/SSL_group_to_name.3" => [ "doc/man3/SSL_group_to_name.pod" ], + "doc/man/man3/SSL_handle_events.3" => [ + "doc/man3/SSL_handle_events.pod" + ], "doc/man/man3/SSL_in_init.3" => [ "doc/man3/SSL_in_init.pod" ], + "doc/man/man3/SSL_inject_net_dgram.3" => [ + "doc/man3/SSL_inject_net_dgram.pod" + ], "doc/man/man3/SSL_key_update.3" => [ "doc/man3/SSL_key_update.pod" ], @@ -15221,9 +17585,21 @@ our %unified_info = ( "doc/man/man3/SSL_new.3" => [ "doc/man3/SSL_new.pod" ], + "doc/man/man3/SSL_new_domain.3" => [ + "doc/man3/SSL_new_domain.pod" + ], + "doc/man/man3/SSL_new_listener.3" => [ + "doc/man3/SSL_new_listener.pod" + ], + "doc/man/man3/SSL_new_stream.3" => [ + "doc/man3/SSL_new_stream.pod" + ], "doc/man/man3/SSL_pending.3" => [ "doc/man3/SSL_pending.pod" ], + "doc/man/man3/SSL_poll.3" => [ + "doc/man3/SSL_poll.pod" + ], "doc/man/man3/SSL_read.3" => [ "doc/man3/SSL_read.pod" ], @@ -15239,24 +17615,45 @@ our %unified_info = ( "doc/man/man3/SSL_set1_host.3" => [ "doc/man3/SSL_set1_host.pod" ], + "doc/man/man3/SSL_set1_initial_peer_addr.3" => [ + "doc/man3/SSL_set1_initial_peer_addr.pod" + ], + "doc/man/man3/SSL_set1_server_cert_type.3" => [ + "doc/man3/SSL_set1_server_cert_type.pod" + ], "doc/man/man3/SSL_set_async_callback.3" => [ "doc/man3/SSL_set_async_callback.pod" ], "doc/man/man3/SSL_set_bio.3" => [ "doc/man3/SSL_set_bio.pod" ], + "doc/man/man3/SSL_set_blocking_mode.3" => [ + "doc/man3/SSL_set_blocking_mode.pod" + ], "doc/man/man3/SSL_set_connect_state.3" => [ "doc/man3/SSL_set_connect_state.pod" ], + "doc/man/man3/SSL_set_default_stream_mode.3" => [ + "doc/man3/SSL_set_default_stream_mode.pod" + ], "doc/man/man3/SSL_set_fd.3" => [ "doc/man3/SSL_set_fd.pod" ], + "doc/man/man3/SSL_set_incoming_stream_policy.3" => [ + "doc/man3/SSL_set_incoming_stream_policy.pod" + ], + "doc/man/man3/SSL_set_quic_tls_cbs.3" => [ + "doc/man3/SSL_set_quic_tls_cbs.pod" + ], "doc/man/man3/SSL_set_retry_verify.3" => [ "doc/man3/SSL_set_retry_verify.pod" ], "doc/man/man3/SSL_set_session.3" => [ "doc/man3/SSL_set_session.pod" ], + "doc/man/man3/SSL_set_session_secret_cb.3" => [ + "doc/man3/SSL_set_session_secret_cb.pod" + ], "doc/man/man3/SSL_set_shutdown.3" => [ "doc/man3/SSL_set_shutdown.pod" ], @@ -15269,6 +17666,12 @@ our %unified_info = ( "doc/man/man3/SSL_state_string.3" => [ "doc/man3/SSL_state_string.pod" ], + "doc/man/man3/SSL_stream_conclude.3" => [ + "doc/man3/SSL_stream_conclude.pod" + ], + "doc/man/man3/SSL_stream_reset.3" => [ + "doc/man3/SSL_stream_reset.pod" + ], "doc/man/man3/SSL_want.3" => [ "doc/man3/SSL_want.pod" ], @@ -15278,8 +17681,8 @@ our %unified_info = ( "doc/man/man3/TS_RESP_CTX_new.3" => [ "doc/man3/TS_RESP_CTX_new.pod" ], - "doc/man/man3/TS_VERIFY_CTX_set_certs.3" => [ - "doc/man3/TS_VERIFY_CTX_set_certs.pod" + "doc/man/man3/TS_VERIFY_CTX.3" => [ + "doc/man3/TS_VERIFY_CTX.pod" ], "doc/man/man3/UI_STRING.3" => [ "doc/man3/UI_STRING.pod" @@ -15293,11 +17696,26 @@ our %unified_info = ( "doc/man/man3/UI_new.3" => [ "doc/man3/UI_new.pod" ], - "doc/man/man3/X509V3_get_d2i.3" => [ - "doc/man3/X509V3_get_d2i.pod" + "doc/man/man3/X509V3_get_d2i.3" => [ + "doc/man3/X509V3_get_d2i.pod" + ], + "doc/man/man3/X509V3_set_ctx.3" => [ + "doc/man3/X509V3_set_ctx.pod" + ], + "doc/man/man3/X509_ACERT_add1_attr.3" => [ + "doc/man3/X509_ACERT_add1_attr.pod" + ], + "doc/man/man3/X509_ACERT_add_attr_nconf.3" => [ + "doc/man3/X509_ACERT_add_attr_nconf.pod" + ], + "doc/man/man3/X509_ACERT_get0_holder_baseCertId.3" => [ + "doc/man3/X509_ACERT_get0_holder_baseCertId.pod" + ], + "doc/man/man3/X509_ACERT_get_attr.3" => [ + "doc/man3/X509_ACERT_get_attr.pod" ], - "doc/man/man3/X509V3_set_ctx.3" => [ - "doc/man3/X509V3_set_ctx.pod" + "doc/man/man3/X509_ACERT_print_ex.3" => [ + "doc/man3/X509_ACERT_print_ex.pod" ], "doc/man/man3/X509_ALGOR_dup.3" => [ "doc/man3/X509_ALGOR_dup.pod" @@ -15347,6 +17765,9 @@ our %unified_info = ( "doc/man/man3/X509_SIG_get0.3" => [ "doc/man3/X509_SIG_get0.pod" ], + "doc/man/man3/X509_STORE_CTX_get_by_subject.3" => [ + "doc/man3/X509_STORE_CTX_get_by_subject.pod" + ], "doc/man/man3/X509_STORE_CTX_get_error.3" => [ "doc/man3/X509_STORE_CTX_get_error.pod" ], @@ -15413,6 +17834,9 @@ our %unified_info = ( "doc/man/man3/X509_get0_uids.3" => [ "doc/man3/X509_get0_uids.pod" ], + "doc/man/man3/X509_get_default_cert_file.3" => [ + "doc/man3/X509_get_default_cert_file.pod" + ], "doc/man/man3/X509_get_extension_flags.3" => [ "doc/man3/X509_get_extension_flags.pod" ], @@ -15536,9 +17960,15 @@ our %unified_info = ( "doc/man/man7/EVP_CIPHER-SM4.7" => [ "doc/man7/EVP_CIPHER-SM4.pod" ], + "doc/man/man7/EVP_KDF-ARGON2.7" => [ + "doc/man7/EVP_KDF-ARGON2.pod" + ], "doc/man/man7/EVP_KDF-HKDF.7" => [ "doc/man7/EVP_KDF-HKDF.pod" ], + "doc/man/man7/EVP_KDF-HMAC-DRBG.7" => [ + "doc/man7/EVP_KDF-HMAC-DRBG.pod" + ], "doc/man/man7/EVP_KDF-KB.7" => [ "doc/man7/EVP_KDF-KB.pod" ], @@ -15554,6 +17984,9 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-PKCS12KDF.7" => [ "doc/man7/EVP_KDF-PKCS12KDF.pod" ], + "doc/man/man7/EVP_KDF-PVKKDF.7" => [ + "doc/man7/EVP_KDF-PVKKDF.pod" + ], "doc/man/man7/EVP_KDF-SCRYPT.7" => [ "doc/man7/EVP_KDF-SCRYPT.pod" ], @@ -15578,9 +18011,18 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-X963.7" => [ "doc/man7/EVP_KDF-X963.pod" ], + "doc/man/man7/EVP_KEM-EC.7" => [ + "doc/man7/EVP_KEM-EC.pod" + ], + "doc/man/man7/EVP_KEM-ML-KEM.7" => [ + "doc/man7/EVP_KEM-ML-KEM.pod" + ], "doc/man/man7/EVP_KEM-RSA.7" => [ "doc/man7/EVP_KEM-RSA.pod" ], + "doc/man/man7/EVP_KEM-X25519.7" => [ + "doc/man7/EVP_KEM-X25519.pod" + ], "doc/man/man7/EVP_KEYEXCH-DH.7" => [ "doc/man7/EVP_KEYEXCH-DH.pod" ], @@ -15614,6 +18056,9 @@ our %unified_info = ( "doc/man/man7/EVP_MD-BLAKE2.7" => [ "doc/man7/EVP_MD-BLAKE2.pod" ], + "doc/man/man7/EVP_MD-KECCAK.7" => [ + "doc/man7/EVP_MD-KECCAK.pod" + ], "doc/man/man7/EVP_MD-MD2.7" => [ "doc/man7/EVP_MD-MD2.pod" ], @@ -15671,15 +18116,27 @@ our %unified_info = ( "doc/man/man7/EVP_PKEY-HMAC.7" => [ "doc/man7/EVP_PKEY-HMAC.pod" ], + "doc/man/man7/EVP_PKEY-ML-DSA.7" => [ + "doc/man7/EVP_PKEY-ML-DSA.pod" + ], + "doc/man/man7/EVP_PKEY-ML-KEM.7" => [ + "doc/man7/EVP_PKEY-ML-KEM.pod" + ], "doc/man/man7/EVP_PKEY-RSA.7" => [ "doc/man7/EVP_PKEY-RSA.pod" ], + "doc/man/man7/EVP_PKEY-SLH-DSA.7" => [ + "doc/man7/EVP_PKEY-SLH-DSA.pod" + ], "doc/man/man7/EVP_PKEY-SM2.7" => [ "doc/man7/EVP_PKEY-SM2.pod" ], "doc/man/man7/EVP_PKEY-X25519.7" => [ "doc/man7/EVP_PKEY-X25519.pod" ], + "doc/man/man7/EVP_RAND-CRNG-TEST.7" => [ + "doc/man7/EVP_RAND-CRNG-TEST.pod" + ], "doc/man/man7/EVP_RAND-CTR-DRBG.7" => [ "doc/man7/EVP_RAND-CTR-DRBG.pod" ], @@ -15689,6 +18146,9 @@ our %unified_info = ( "doc/man/man7/EVP_RAND-HMAC-DRBG.7" => [ "doc/man7/EVP_RAND-HMAC-DRBG.pod" ], + "doc/man/man7/EVP_RAND-JITTER.7" => [ + "doc/man7/EVP_RAND-JITTER.pod" + ], "doc/man/man7/EVP_RAND-SEED-SRC.7" => [ "doc/man7/EVP_RAND-SEED-SRC.pod" ], @@ -15710,9 +18170,15 @@ our %unified_info = ( "doc/man/man7/EVP_SIGNATURE-HMAC.7" => [ "doc/man7/EVP_SIGNATURE-HMAC.pod" ], + "doc/man/man7/EVP_SIGNATURE-ML-DSA.7" => [ + "doc/man7/EVP_SIGNATURE-ML-DSA.pod" + ], "doc/man/man7/EVP_SIGNATURE-RSA.7" => [ "doc/man7/EVP_SIGNATURE-RSA.pod" ], + "doc/man/man7/EVP_SIGNATURE-SLH-DSA.7" => [ + "doc/man7/EVP_SIGNATURE-SLH-DSA.pod" + ], "doc/man/man7/OSSL_PROVIDER-FIPS.7" => [ "doc/man7/OSSL_PROVIDER-FIPS.pod" ], @@ -15728,6 +18194,9 @@ our %unified_info = ( "doc/man/man7/OSSL_PROVIDER-null.7" => [ "doc/man7/OSSL_PROVIDER-null.pod" ], + "doc/man/man7/OSSL_STORE-winstore.7" => [ + "doc/man7/OSSL_STORE-winstore.pod" + ], "doc/man/man7/RAND.7" => [ "doc/man7/RAND.pod" ], @@ -15740,9 +18209,6 @@ our %unified_info = ( "doc/man/man7/bio.7" => [ "doc/man7/bio.pod" ], - "doc/man/man7/crypto.7" => [ - "doc/man7/crypto.pod" - ], "doc/man/man7/ct.7" => [ "doc/man7/ct.pod" ], @@ -15773,9 +18239,6 @@ our %unified_info = ( "doc/man/man7/life_cycle-rand.7" => [ "doc/man7/life_cycle-rand.pod" ], - "doc/man/man7/migration_guide.7" => [ - "doc/man7/migration_guide.pod" - ], "doc/man/man7/openssl-core.h.7" => [ "doc/man7/openssl-core.h.pod" ], @@ -15791,12 +18254,66 @@ our %unified_info = ( "doc/man/man7/openssl-glossary.7" => [ "doc/man7/openssl-glossary.pod" ], + "doc/man/man7/openssl-qlog.7" => [ + "doc/man7/openssl-qlog.pod" + ], + "doc/man/man7/openssl-quic-concurrency.7" => [ + "doc/man7/openssl-quic-concurrency.pod" + ], + "doc/man/man7/openssl-quic.7" => [ + "doc/man7/openssl-quic.pod" + ], "doc/man/man7/openssl-threads.7" => [ "doc/man7/openssl-threads.pod" ], "doc/man/man7/openssl_user_macros.7" => [ "doc/man7/openssl_user_macros.pod" ], + "doc/man/man7/ossl-guide-introduction.7" => [ + "doc/man7/ossl-guide-introduction.pod" + ], + "doc/man/man7/ossl-guide-libcrypto-introduction.7" => [ + "doc/man7/ossl-guide-libcrypto-introduction.pod" + ], + "doc/man/man7/ossl-guide-libraries-introduction.7" => [ + "doc/man7/ossl-guide-libraries-introduction.pod" + ], + "doc/man/man7/ossl-guide-libssl-introduction.7" => [ + "doc/man7/ossl-guide-libssl-introduction.pod" + ], + "doc/man/man7/ossl-guide-migration.7" => [ + "doc/man7/ossl-guide-migration.pod" + ], + "doc/man/man7/ossl-guide-quic-client-block.7" => [ + "doc/man7/ossl-guide-quic-client-block.pod" + ], + "doc/man/man7/ossl-guide-quic-client-non-block.7" => [ + "doc/man7/ossl-guide-quic-client-non-block.pod" + ], + "doc/man/man7/ossl-guide-quic-introduction.7" => [ + "doc/man7/ossl-guide-quic-introduction.pod" + ], + "doc/man/man7/ossl-guide-quic-multi-stream.7" => [ + "doc/man7/ossl-guide-quic-multi-stream.pod" + ], + "doc/man/man7/ossl-guide-quic-server-block.7" => [ + "doc/man7/ossl-guide-quic-server-block.pod" + ], + "doc/man/man7/ossl-guide-quic-server-non-block.7" => [ + "doc/man7/ossl-guide-quic-server-non-block.pod" + ], + "doc/man/man7/ossl-guide-tls-client-block.7" => [ + "doc/man7/ossl-guide-tls-client-block.pod" + ], + "doc/man/man7/ossl-guide-tls-client-non-block.7" => [ + "doc/man7/ossl-guide-tls-client-non-block.pod" + ], + "doc/man/man7/ossl-guide-tls-introduction.7" => [ + "doc/man7/ossl-guide-tls-introduction.pod" + ], + "doc/man/man7/ossl-guide-tls-server-block.7" => [ + "doc/man7/ossl-guide-tls-server-block.pod" + ], "doc/man/man7/ossl_store-file.7" => [ "doc/man7/ossl_store-file.pod" ], @@ -15851,6 +18368,9 @@ our %unified_info = ( "doc/man/man7/provider-signature.7" => [ "doc/man7/provider-signature.pod" ], + "doc/man/man7/provider-skeymgmt.7" => [ + "doc/man7/provider-skeymgmt.pod" + ], "doc/man/man7/provider-storemgmt.7" => [ "doc/man7/provider-storemgmt.pod" ], @@ -15860,9 +18380,6 @@ our %unified_info = ( "doc/man/man7/proxy-certificates.7" => [ "doc/man7/proxy-certificates.pod" ], - "doc/man/man7/ssl.7" => [ - "doc/man7/ssl.pod" - ], "doc/man/man7/x509.7" => [ "doc/man7/x509.pod" ], @@ -15998,6 +18515,9 @@ our %unified_info = ( "doc/man1/openssl-sess_id.pod" => [ "doc/man1/openssl-sess_id.pod.in" ], + "doc/man1/openssl-skeyutl.pod" => [ + "doc/man1/openssl-skeyutl.pod.in" + ], "doc/man1/openssl-smime.pod" => [ "doc/man1/openssl-smime.pod.in" ], @@ -16034,12 +18554,30 @@ our %unified_info = ( "engines/e_padlock-x86_64.s" => [ "engines/asm/e_padlock-x86_64.pl" ], + "exporters/OpenSSLConfig.cmake" => [ + "exporters/cmake/OpenSSLConfig.cmake.in" + ], + "exporters/OpenSSLConfigVersion.cmake" => [ + "exporters/cmake/OpenSSLConfigVersion.cmake.in" + ], + "exporters/libcrypto.pc" => [ + "exporters/pkg-config/libcrypto.pc.in" + ], + "exporters/libssl.pc" => [ + "exporters/pkg-config/libssl.pc.in" + ], + "exporters/openssl.pc" => [ + "exporters/pkg-config/openssl.pc.in" + ], "include/crypto/bn_conf.h" => [ "include/crypto/bn_conf.h.in" ], "include/crypto/dso_conf.h" => [ "include/crypto/dso_conf.h.in" ], + "include/internal/param_names.h" => [ + "include/internal/param_names.h.in" + ], "include/openssl/asn1.h" => [ "include/openssl/asn1.h.in" ], @@ -16055,12 +18593,18 @@ our %unified_info = ( "include/openssl/cms.h" => [ "include/openssl/cms.h.in" ], + "include/openssl/comp.h" => [ + "include/openssl/comp.h.in" + ], "include/openssl/conf.h" => [ "include/openssl/conf.h.in" ], "include/openssl/configuration.h" => [ "include/openssl/configuration.h.in" ], + "include/openssl/core_names.h" => [ + "include/openssl/core_names.h.in" + ], "include/openssl/crmf.h" => [ "include/openssl/crmf.h.in" ], @@ -16109,16 +18653,37 @@ our %unified_info = ( "include/openssl/x509.h" => [ "include/openssl/x509.h.in" ], + "include/openssl/x509_acert.h" => [ + "include/openssl/x509_acert.h.in" + ], "include/openssl/x509_vfy.h" => [ "include/openssl/x509_vfy.h.in" ], "include/openssl/x509v3.h" => [ "include/openssl/x509v3.h.in" ], + "installdata.pm" => [ + "util/mkinstallvars.pl", + "\"PREFIX=\$(INSTALLTOP)\"", + "BINDIR=bin", + "\"LIBDIR=\$(LIBDIR)\"", + "\"libdir=\$(libdir)\"", + "INCLUDEDIR=include", + "APPLINKDIR=include/openssl", + "\"ENGINESDIR=\$(ENGINESDIR)\"", + "\"MODULESDIR=\$(MODULESDIR)\"", + "\"PKGCONFIGDIR=\$(PKGCONFIGDIR)\"", + "\"CMAKECONFIGDIR=\$(CMAKECONFIGDIR)\"", + "\"LDLIBS=\$(LIB_EX_LIBS)\"", + "\"VERSION=\$(VERSION)\"" + ], "libcrypto.ld" => [ "util/libcrypto.num", "libcrypto" ], + "libcrypto.pc" => [ + "exporters/pkg-config/libcrypto.pc.in" + ], "libcrypto.rc" => [ "util/mkrc.pl", "libcrypto" @@ -16127,10 +18692,16 @@ our %unified_info = ( "util/libssl.num", "libssl" ], + "libssl.pc" => [ + "exporters/pkg-config/libssl.pc.in" + ], "libssl.rc" => [ "util/mkrc.pl", "libssl" ], + "openssl.pc" => [ + "exporters/pkg-config/openssl.pc.in" + ], "providers/common/der/der_digests_gen.c" => [ "providers/common/der/der_digests_gen.c.in" ], @@ -16143,9 +18714,15 @@ our %unified_info = ( "providers/common/der/der_ecx_gen.c" => [ "providers/common/der/der_ecx_gen.c.in" ], + "providers/common/der/der_ml_dsa_gen.c" => [ + "providers/common/der/der_ml_dsa_gen.c.in" + ], "providers/common/der/der_rsa_gen.c" => [ "providers/common/der/der_rsa_gen.c.in" ], + "providers/common/der/der_slh_dsa_gen.c" => [ + "providers/common/der/der_slh_dsa_gen.c.in" + ], "providers/common/der/der_sm2_gen.c" => [ "providers/common/der/der_sm2_gen.c.in" ], @@ -16164,9 +18741,15 @@ our %unified_info = ( "providers/common/include/prov/der_ecx.h" => [ "providers/common/include/prov/der_ecx.h.in" ], + "providers/common/include/prov/der_ml_dsa.h" => [ + "providers/common/include/prov/der_ml_dsa.h.in" + ], "providers/common/include/prov/der_rsa.h" => [ "providers/common/include/prov/der_rsa.h.in" ], + "providers/common/include/prov/der_slh_dsa.h" => [ + "providers/common/include/prov/der_slh_dsa.h.in" + ], "providers/common/include/prov/der_sm2.h" => [ "providers/common/include/prov/der_sm2.h.in" ], @@ -16216,6 +18799,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "buffer" ], + "test/buildtest_byteorder.c" => [ + "test/generate_buildtest.pl", + "byteorder" + ], "test/buildtest_camellia.c" => [ "test/generate_buildtest.pl", "camellia" @@ -16248,10 +18835,6 @@ our %unified_info = ( "test/generate_buildtest.pl", "core_dispatch" ], - "test/buildtest_core_names.c" => [ - "test/generate_buildtest.pl", - "core_names" - ], "test/buildtest_core_object.c" => [ "test/generate_buildtest.pl", "core_object" @@ -16284,6 +18867,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "e_os2" ], + "test/buildtest_e_ostime.c" => [ + "test/generate_buildtest.pl", + "e_ostime" + ], "test/buildtest_ebcdic.c" => [ "test/generate_buildtest.pl", "ebcdic" @@ -16320,6 +18907,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "hmac" ], + "test/buildtest_hpke.c" => [ + "test/generate_buildtest.pl", + "hpke" + ], "test/buildtest_http.c" => [ "test/generate_buildtest.pl", "http" @@ -16328,6 +18919,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "idea" ], + "test/buildtest_indicator.c" => [ + "test/generate_buildtest.pl", + "indicator" + ], "test/buildtest_kdf.c" => [ "test/generate_buildtest.pl", "kdf" @@ -16348,6 +18943,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "mdc2" ], + "test/buildtest_ml_kem.c" => [ + "test/generate_buildtest.pl", + "ml_kem" + ], "test/buildtest_modes.c" => [ "test/generate_buildtest.pl", "modes" @@ -16388,6 +18987,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "provider" ], + "test/buildtest_quic.c" => [ + "test/generate_buildtest.pl", + "quic" + ], "test/buildtest_rand.c" => [ "test/generate_buildtest.pl", "rand" @@ -16444,6 +19047,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "symhacks" ], + "test/buildtest_thread.c" => [ + "test/generate_buildtest.pl", + "thread" + ], "test/buildtest_tls1.c" => [ "test/generate_buildtest.pl", "tls1" @@ -16524,6 +19131,7 @@ our %unified_info = ( "doc/html/man1/openssl-s_server.html", "doc/html/man1/openssl-s_time.html", "doc/html/man1/openssl-sess_id.html", + "doc/html/man1/openssl-skeyutl.html", "doc/html/man1/openssl-smime.html", "doc/html/man1/openssl-speed.html", "doc/html/man1/openssl-spkac.html", @@ -16573,6 +19181,7 @@ our %unified_info = ( "doc/html/man3/BIO_find_type.html", "doc/html/man3/BIO_get_data.html", "doc/html/man3/BIO_get_ex_new_index.html", + "doc/html/man3/BIO_get_rpoll_descriptor.html", "doc/html/man3/BIO_meth_new.html", "doc/html/man3/BIO_new.html", "doc/html/man3/BIO_new_CMS.html", @@ -16585,11 +19194,13 @@ our %unified_info = ( "doc/html/man3/BIO_s_connect.html", "doc/html/man3/BIO_s_core.html", "doc/html/man3/BIO_s_datagram.html", + "doc/html/man3/BIO_s_dgram_pair.html", "doc/html/man3/BIO_s_fd.html", "doc/html/man3/BIO_s_file.html", "doc/html/man3/BIO_s_mem.html", "doc/html/man3/BIO_s_null.html", "doc/html/man3/BIO_s_socket.html", + "doc/html/man3/BIO_sendmmsg.html", "doc/html/man3/BIO_set_callback.html", "doc/html/man3/BIO_should_retry.html", "doc/html/man3/BIO_socket_wait.html", @@ -16614,6 +19225,7 @@ our %unified_info = ( "doc/html/man3/BN_swap.html", "doc/html/man3/BN_zero.html", "doc/html/man3/BUF_MEM_new.html", + "doc/html/man3/CMAC_CTX.html", "doc/html/man3/CMS_EncryptedData_decrypt.html", "doc/html/man3/CMS_EncryptedData_encrypt.html", "doc/html/man3/CMS_EnvelopedData_create.html", @@ -16636,6 +19248,7 @@ our %unified_info = ( "doc/html/man3/CMS_uncompress.html", "doc/html/man3/CMS_verify.html", "doc/html/man3/CMS_verify_receipt.html", + "doc/html/man3/COMP_CTX_new.html", "doc/html/man3/CONF_modules_free.html", "doc/html/man3/CONF_modules_load_file.html", "doc/html/man3/CRYPTO_THREAD_run_once.html", @@ -16669,6 +19282,8 @@ our %unified_info = ( "doc/html/man3/DSA_size.html", "doc/html/man3/DTLS_get_data_mtu.html", "doc/html/man3/DTLS_set_timer_cb.html", + "doc/html/man3/DTLSv1_get_timeout.html", + "doc/html/man3/DTLSv1_handle_timeout.html", "doc/html/man3/DTLSv1_listen.html", "doc/html/man3/ECDSA_SIG_new.html", "doc/html/man3/ECDSA_sign.html", @@ -16715,6 +19330,7 @@ our %unified_info = ( "doc/html/man3/EVP_PKEY_CTX_ctrl.html", "doc/html/man3/EVP_PKEY_CTX_get0_libctx.html", "doc/html/man3/EVP_PKEY_CTX_get0_pkey.html", + "doc/html/man3/EVP_PKEY_CTX_get_algor.html", "doc/html/man3/EVP_PKEY_CTX_new.html", "doc/html/man3/EVP_PKEY_CTX_set1_pbe_pass.html", "doc/html/man3/EVP_PKEY_CTX_set_hkdf_md.html", @@ -16754,6 +19370,8 @@ our %unified_info = ( "doc/html/man3/EVP_PKEY_verify_recover.html", "doc/html/man3/EVP_RAND.html", "doc/html/man3/EVP_SIGNATURE.html", + "doc/html/man3/EVP_SKEY.html", + "doc/html/man3/EVP_SKEYMGMT.html", "doc/html/man3/EVP_SealInit.html", "doc/html/man3/EVP_SignInit.html", "doc/html/man3/EVP_VerifyInit.html", @@ -16783,6 +19401,7 @@ our %unified_info = ( "doc/html/man3/EVP_sm3.html", "doc/html/man3/EVP_sm4_cbc.html", "doc/html/man3/EVP_whirlpool.html", + "doc/html/man3/GENERAL_NAME.html", "doc/html/man3/HMAC.html", "doc/html/man3/MD5.html", "doc/html/man3/MDC2_Init.html", @@ -16807,14 +19426,18 @@ our %unified_info = ( "doc/html/man3/OPENSSL_init_ssl.html", "doc/html/man3/OPENSSL_instrument_bus.html", "doc/html/man3/OPENSSL_load_builtin_modules.html", + "doc/html/man3/OPENSSL_load_u16_le.html", "doc/html/man3/OPENSSL_malloc.html", + "doc/html/man3/OPENSSL_riscvcap.html", "doc/html/man3/OPENSSL_s390xcap.html", "doc/html/man3/OPENSSL_secure_malloc.html", "doc/html/man3/OPENSSL_strcasecmp.html", "doc/html/man3/OSSL_ALGORITHM.html", "doc/html/man3/OSSL_CALLBACK.html", + "doc/html/man3/OSSL_CMP_ATAV_set0.html", "doc/html/man3/OSSL_CMP_CTX_new.html", "doc/html/man3/OSSL_CMP_HDR_get0_transactionID.html", + "doc/html/man3/OSSL_CMP_ITAV_new_caCerts.html", "doc/html/man3/OSSL_CMP_ITAV_set0.html", "doc/html/man3/OSSL_CMP_MSG_get0_header.html", "doc/html/man3/OSSL_CMP_MSG_http_perform.html", @@ -16838,18 +19461,27 @@ our %unified_info = ( "doc/html/man3/OSSL_ENCODER_CTX.html", "doc/html/man3/OSSL_ENCODER_CTX_new_for_pkey.html", "doc/html/man3/OSSL_ENCODER_to_bio.html", + "doc/html/man3/OSSL_ERR_STATE_save.html", "doc/html/man3/OSSL_ESS_check_signing_certs.html", + "doc/html/man3/OSSL_GENERAL_NAMES_print.html", + "doc/html/man3/OSSL_HPKE_CTX_new.html", "doc/html/man3/OSSL_HTTP_REQ_CTX.html", "doc/html/man3/OSSL_HTTP_parse_url.html", "doc/html/man3/OSSL_HTTP_transfer.html", + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX.html", + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX_print.html", + "doc/html/man3/OSSL_INDICATOR_set_callback.html", "doc/html/man3/OSSL_ITEM.html", "doc/html/man3/OSSL_LIB_CTX.html", + "doc/html/man3/OSSL_LIB_CTX_set_conf_diagnostics.html", "doc/html/man3/OSSL_PARAM.html", "doc/html/man3/OSSL_PARAM_BLD.html", "doc/html/man3/OSSL_PARAM_allocate_from_text.html", "doc/html/man3/OSSL_PARAM_dup.html", "doc/html/man3/OSSL_PARAM_int.html", + "doc/html/man3/OSSL_PARAM_print_to_bio.html", "doc/html/man3/OSSL_PROVIDER.html", + "doc/html/man3/OSSL_QUIC_client_method.html", "doc/html/man3/OSSL_SELF_TEST_new.html", "doc/html/man3/OSSL_SELF_TEST_set_callback.html", "doc/html/man3/OSSL_STORE_INFO.html", @@ -16858,11 +19490,13 @@ our %unified_info = ( "doc/html/man3/OSSL_STORE_attach.html", "doc/html/man3/OSSL_STORE_expect.html", "doc/html/man3/OSSL_STORE_open.html", + "doc/html/man3/OSSL_sleep.html", "doc/html/man3/OSSL_trace_enabled.html", "doc/html/man3/OSSL_trace_get_category_num.html", "doc/html/man3/OSSL_trace_set_channel.html", "doc/html/man3/OpenSSL_add_all_algorithms.html", "doc/html/man3/OpenSSL_version.html", + "doc/html/man3/PBMAC1_get1_pbkdf2_param.html", "doc/html/man3/PEM_X509_INFO_read_bio_ex.html", "doc/html/man3/PEM_bytes_read_bio.html", "doc/html/man3/PEM_read.html", @@ -16875,6 +19509,7 @@ our %unified_info = ( "doc/html/man3/PKCS12_SAFEBAG_create_cert.html", "doc/html/man3/PKCS12_SAFEBAG_get0_attrs.html", "doc/html/man3/PKCS12_SAFEBAG_get1_cert.html", + "doc/html/man3/PKCS12_SAFEBAG_set0_attrs.html", "doc/html/man3/PKCS12_add1_attr_by_NID.html", "doc/html/man3/PKCS12_add_CSPName_asc.html", "doc/html/man3/PKCS12_add_cert.html", @@ -16966,6 +19601,7 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_sess_set_get_cb.html", "doc/html/man3/SSL_CTX_sessions.html", "doc/html/man3/SSL_CTX_set0_CA_list.html", + "doc/html/man3/SSL_CTX_set1_cert_comp_preference.html", "doc/html/man3/SSL_CTX_set1_curves.html", "doc/html/man3/SSL_CTX_set1_sigalgs.html", "doc/html/man3/SSL_CTX_set1_verify_cert_store.html", @@ -16979,6 +19615,7 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_ct_validation_callback.html", "doc/html/man3/SSL_CTX_set_ctlog_list_file.html", "doc/html/man3/SSL_CTX_set_default_passwd_cb.html", + "doc/html/man3/SSL_CTX_set_domain_flags.html", "doc/html/man3/SSL_CTX_set_generate_session_id.html", "doc/html/man3/SSL_CTX_set_info_callback.html", "doc/html/man3/SSL_CTX_set_keylog_callback.html", @@ -16986,6 +19623,7 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_min_proto_version.html", "doc/html/man3/SSL_CTX_set_mode.html", "doc/html/man3/SSL_CTX_set_msg_callback.html", + "doc/html/man3/SSL_CTX_set_new_pending_conn_cb.html", "doc/html/man3/SSL_CTX_set_num_tickets.html", "doc/html/man3/SSL_CTX_set_options.html", "doc/html/man3/SSL_CTX_set_psk_client_callback.html", @@ -17024,6 +19662,7 @@ our %unified_info = ( "doc/html/man3/SSL_SESSION_print.html", "doc/html/man3/SSL_SESSION_set1_id.html", "doc/html/man3/SSL_accept.html", + "doc/html/man3/SSL_accept_stream.html", "doc/html/man3/SSL_alert_type_string.html", "doc/html/man3/SSL_alloc_buffers.html", "doc/html/man3/SSL_check_chain.html", @@ -17033,59 +19672,90 @@ our %unified_info = ( "doc/html/man3/SSL_export_keying_material.html", "doc/html/man3/SSL_extension_supported.html", "doc/html/man3/SSL_free.html", + "doc/html/man3/SSL_get0_connection.html", + "doc/html/man3/SSL_get0_group_name.html", + "doc/html/man3/SSL_get0_peer_rpk.html", "doc/html/man3/SSL_get0_peer_scts.html", + "doc/html/man3/SSL_get1_builtin_sigalgs.html", "doc/html/man3/SSL_get_SSL_CTX.html", "doc/html/man3/SSL_get_all_async_fds.html", "doc/html/man3/SSL_get_certificate.html", "doc/html/man3/SSL_get_ciphers.html", "doc/html/man3/SSL_get_client_random.html", + "doc/html/man3/SSL_get_conn_close_info.html", "doc/html/man3/SSL_get_current_cipher.html", "doc/html/man3/SSL_get_default_timeout.html", "doc/html/man3/SSL_get_error.html", + "doc/html/man3/SSL_get_event_timeout.html", "doc/html/man3/SSL_get_extms_support.html", "doc/html/man3/SSL_get_fd.html", + "doc/html/man3/SSL_get_handshake_rtt.html", "doc/html/man3/SSL_get_peer_cert_chain.html", "doc/html/man3/SSL_get_peer_certificate.html", "doc/html/man3/SSL_get_peer_signature_nid.html", "doc/html/man3/SSL_get_peer_tmp_key.html", "doc/html/man3/SSL_get_psk_identity.html", "doc/html/man3/SSL_get_rbio.html", + "doc/html/man3/SSL_get_rpoll_descriptor.html", "doc/html/man3/SSL_get_session.html", "doc/html/man3/SSL_get_shared_sigalgs.html", + "doc/html/man3/SSL_get_stream_id.html", + "doc/html/man3/SSL_get_stream_read_state.html", + "doc/html/man3/SSL_get_value_uint.html", "doc/html/man3/SSL_get_verify_result.html", "doc/html/man3/SSL_get_version.html", "doc/html/man3/SSL_group_to_name.html", + "doc/html/man3/SSL_handle_events.html", "doc/html/man3/SSL_in_init.html", + "doc/html/man3/SSL_inject_net_dgram.html", "doc/html/man3/SSL_key_update.html", "doc/html/man3/SSL_library_init.html", "doc/html/man3/SSL_load_client_CA_file.html", "doc/html/man3/SSL_new.html", + "doc/html/man3/SSL_new_domain.html", + "doc/html/man3/SSL_new_listener.html", + "doc/html/man3/SSL_new_stream.html", "doc/html/man3/SSL_pending.html", + "doc/html/man3/SSL_poll.html", "doc/html/man3/SSL_read.html", "doc/html/man3/SSL_read_early_data.html", "doc/html/man3/SSL_rstate_string.html", "doc/html/man3/SSL_session_reused.html", "doc/html/man3/SSL_set1_host.html", + "doc/html/man3/SSL_set1_initial_peer_addr.html", + "doc/html/man3/SSL_set1_server_cert_type.html", "doc/html/man3/SSL_set_async_callback.html", "doc/html/man3/SSL_set_bio.html", + "doc/html/man3/SSL_set_blocking_mode.html", "doc/html/man3/SSL_set_connect_state.html", + "doc/html/man3/SSL_set_default_stream_mode.html", "doc/html/man3/SSL_set_fd.html", + "doc/html/man3/SSL_set_incoming_stream_policy.html", + "doc/html/man3/SSL_set_quic_tls_cbs.html", "doc/html/man3/SSL_set_retry_verify.html", "doc/html/man3/SSL_set_session.html", + "doc/html/man3/SSL_set_session_secret_cb.html", "doc/html/man3/SSL_set_shutdown.html", "doc/html/man3/SSL_set_verify_result.html", "doc/html/man3/SSL_shutdown.html", "doc/html/man3/SSL_state_string.html", + "doc/html/man3/SSL_stream_conclude.html", + "doc/html/man3/SSL_stream_reset.html", "doc/html/man3/SSL_want.html", "doc/html/man3/SSL_write.html", "doc/html/man3/TS_RESP_CTX_new.html", - "doc/html/man3/TS_VERIFY_CTX_set_certs.html", + "doc/html/man3/TS_VERIFY_CTX.html", "doc/html/man3/UI_STRING.html", "doc/html/man3/UI_UTIL_read_pw.html", "doc/html/man3/UI_create_method.html", "doc/html/man3/UI_new.html", "doc/html/man3/X509V3_get_d2i.html", "doc/html/man3/X509V3_set_ctx.html", + "doc/html/man3/X509_ACERT_add1_attr.html", + "doc/html/man3/X509_ACERT_add_attr_nconf.html", + "doc/html/man3/X509_ACERT_get0_holder_baseCertId.html", + "doc/html/man3/X509_ACERT_get_attr.html", + "doc/html/man3/X509_ACERT_print_ex.html", "doc/html/man3/X509_ALGOR_dup.html", "doc/html/man3/X509_ATTRIBUTE.html", "doc/html/man3/X509_CRL_get0_by_serial.html", @@ -17102,6 +19772,7 @@ our %unified_info = ( "doc/html/man3/X509_REQ_get_attr.html", "doc/html/man3/X509_REQ_get_extensions.html", "doc/html/man3/X509_SIG_get0.html", + "doc/html/man3/X509_STORE_CTX_get_by_subject.html", "doc/html/man3/X509_STORE_CTX_get_error.html", "doc/html/man3/X509_STORE_CTX_new.html", "doc/html/man3/X509_STORE_CTX_set_verify_cb.html", @@ -17124,6 +19795,7 @@ our %unified_info = ( "doc/html/man3/X509_get0_notBefore.html", "doc/html/man3/X509_get0_signature.html", "doc/html/man3/X509_get0_uids.html", + "doc/html/man3/X509_get_default_cert_file.html", "doc/html/man3/X509_get_extension_flags.html", "doc/html/man3/X509_get_pubkey.html", "doc/html/man3/X509_get_serialNumber.html", @@ -17169,12 +19841,15 @@ our %unified_info = ( "doc/html/man7/EVP_CIPHER-RC5.html", "doc/html/man7/EVP_CIPHER-SEED.html", "doc/html/man7/EVP_CIPHER-SM4.html", + "doc/html/man7/EVP_KDF-ARGON2.html", "doc/html/man7/EVP_KDF-HKDF.html", + "doc/html/man7/EVP_KDF-HMAC-DRBG.html", "doc/html/man7/EVP_KDF-KB.html", "doc/html/man7/EVP_KDF-KRB5KDF.html", "doc/html/man7/EVP_KDF-PBKDF1.html", "doc/html/man7/EVP_KDF-PBKDF2.html", "doc/html/man7/EVP_KDF-PKCS12KDF.html", + "doc/html/man7/EVP_KDF-PVKKDF.html", "doc/html/man7/EVP_KDF-SCRYPT.html", "doc/html/man7/EVP_KDF-SS.html", "doc/html/man7/EVP_KDF-SSHKDF.html", @@ -17183,7 +19858,10 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-X942-ASN1.html", "doc/html/man7/EVP_KDF-X942-CONCAT.html", "doc/html/man7/EVP_KDF-X963.html", + "doc/html/man7/EVP_KEM-EC.html", + "doc/html/man7/EVP_KEM-ML-KEM.html", "doc/html/man7/EVP_KEM-RSA.html", + "doc/html/man7/EVP_KEM-X25519.html", "doc/html/man7/EVP_KEYEXCH-DH.html", "doc/html/man7/EVP_KEYEXCH-ECDH.html", "doc/html/man7/EVP_KEYEXCH-X25519.html", @@ -17195,6 +19873,7 @@ our %unified_info = ( "doc/html/man7/EVP_MAC-Poly1305.html", "doc/html/man7/EVP_MAC-Siphash.html", "doc/html/man7/EVP_MD-BLAKE2.html", + "doc/html/man7/EVP_MD-KECCAK.html", "doc/html/man7/EVP_MD-MD2.html", "doc/html/man7/EVP_MD-MD4.html", "doc/html/man7/EVP_MD-MD5-SHA1.html", @@ -17214,12 +19893,17 @@ our %unified_info = ( "doc/html/man7/EVP_PKEY-EC.html", "doc/html/man7/EVP_PKEY-FFC.html", "doc/html/man7/EVP_PKEY-HMAC.html", + "doc/html/man7/EVP_PKEY-ML-DSA.html", + "doc/html/man7/EVP_PKEY-ML-KEM.html", "doc/html/man7/EVP_PKEY-RSA.html", + "doc/html/man7/EVP_PKEY-SLH-DSA.html", "doc/html/man7/EVP_PKEY-SM2.html", "doc/html/man7/EVP_PKEY-X25519.html", + "doc/html/man7/EVP_RAND-CRNG-TEST.html", "doc/html/man7/EVP_RAND-CTR-DRBG.html", "doc/html/man7/EVP_RAND-HASH-DRBG.html", "doc/html/man7/EVP_RAND-HMAC-DRBG.html", + "doc/html/man7/EVP_RAND-JITTER.html", "doc/html/man7/EVP_RAND-SEED-SRC.html", "doc/html/man7/EVP_RAND-TEST-RAND.html", "doc/html/man7/EVP_RAND.html", @@ -17227,17 +19911,19 @@ our %unified_info = ( "doc/html/man7/EVP_SIGNATURE-ECDSA.html", "doc/html/man7/EVP_SIGNATURE-ED25519.html", "doc/html/man7/EVP_SIGNATURE-HMAC.html", + "doc/html/man7/EVP_SIGNATURE-ML-DSA.html", "doc/html/man7/EVP_SIGNATURE-RSA.html", + "doc/html/man7/EVP_SIGNATURE-SLH-DSA.html", "doc/html/man7/OSSL_PROVIDER-FIPS.html", "doc/html/man7/OSSL_PROVIDER-base.html", "doc/html/man7/OSSL_PROVIDER-default.html", "doc/html/man7/OSSL_PROVIDER-legacy.html", "doc/html/man7/OSSL_PROVIDER-null.html", + "doc/html/man7/OSSL_STORE-winstore.html", "doc/html/man7/RAND.html", "doc/html/man7/RSA-PSS.html", "doc/html/man7/X25519.html", "doc/html/man7/bio.html", - "doc/html/man7/crypto.html", "doc/html/man7/ct.html", "doc/html/man7/des_modes.html", "doc/html/man7/evp.html", @@ -17248,14 +19934,31 @@ our %unified_info = ( "doc/html/man7/life_cycle-mac.html", "doc/html/man7/life_cycle-pkey.html", "doc/html/man7/life_cycle-rand.html", - "doc/html/man7/migration_guide.html", "doc/html/man7/openssl-core.h.html", "doc/html/man7/openssl-core_dispatch.h.html", "doc/html/man7/openssl-core_names.h.html", "doc/html/man7/openssl-env.html", "doc/html/man7/openssl-glossary.html", + "doc/html/man7/openssl-qlog.html", + "doc/html/man7/openssl-quic-concurrency.html", + "doc/html/man7/openssl-quic.html", "doc/html/man7/openssl-threads.html", "doc/html/man7/openssl_user_macros.html", + "doc/html/man7/ossl-guide-introduction.html", + "doc/html/man7/ossl-guide-libcrypto-introduction.html", + "doc/html/man7/ossl-guide-libraries-introduction.html", + "doc/html/man7/ossl-guide-libssl-introduction.html", + "doc/html/man7/ossl-guide-migration.html", + "doc/html/man7/ossl-guide-quic-client-block.html", + "doc/html/man7/ossl-guide-quic-client-non-block.html", + "doc/html/man7/ossl-guide-quic-introduction.html", + "doc/html/man7/ossl-guide-quic-multi-stream.html", + "doc/html/man7/ossl-guide-quic-server-block.html", + "doc/html/man7/ossl-guide-quic-server-non-block.html", + "doc/html/man7/ossl-guide-tls-client-block.html", + "doc/html/man7/ossl-guide-tls-client-non-block.html", + "doc/html/man7/ossl-guide-tls-introduction.html", + "doc/html/man7/ossl-guide-tls-server-block.html", "doc/html/man7/ossl_store-file.html", "doc/html/man7/ossl_store.html", "doc/html/man7/passphrase-encoding.html", @@ -17274,10 +19977,10 @@ our %unified_info = ( "doc/html/man7/provider-object.html", "doc/html/man7/provider-rand.html", "doc/html/man7/provider-signature.html", + "doc/html/man7/provider-skeymgmt.html", "doc/html/man7/provider-storemgmt.html", "doc/html/man7/provider.html", "doc/html/man7/proxy-certificates.html", - "doc/html/man7/ssl.html", "doc/html/man7/x509.html" ] }, @@ -17292,12 +19995,21 @@ our %unified_info = ( ] }, "includes" => { + "OpenSSLConfig.cmake" => [ + "." + ], + "OpenSSLConfigVersion.cmake" => [ + "." + ], "apps/asn1parse.o" => [ "apps" ], "apps/ca.o" => [ "apps" ], + "apps/ca_internals_test-bin-ca.o" => [ + "apps" + ], "apps/ciphers.o" => [ "apps" ], @@ -17524,6 +20236,9 @@ our %unified_info = ( "apps/openssl-bin-sess_id.o" => [ "apps" ], + "apps/openssl-bin-skeyutl.o" => [ + "apps" + ], "apps/openssl-bin-smime.o" => [ "apps" ], @@ -17611,6 +20326,9 @@ our %unified_info = ( "apps/sess_id.o" => [ "apps" ], + "apps/skeyutl.o" => [ + "apps" + ], "apps/smime.o" => [ "apps" ], @@ -17662,6 +20380,12 @@ our %unified_info = ( "crypto/aes/bsaes-armv7.o" => [ "crypto" ], + "crypto/aes/vpaes-armv8.o" => [ + "crypto" + ], + "crypto/aes/vpaes-loongarch64.o" => [ + "crypto" + ], "crypto/arm64cpuid.o" => [ "crypto" ], @@ -17713,9 +20437,15 @@ our %unified_info = ( "crypto/chacha/chacha-armv4.o" => [ "crypto" ], + "crypto/chacha/chacha-armv8-sve.o" => [ + "crypto" + ], "crypto/chacha/chacha-armv8.o" => [ "crypto" ], + "crypto/chacha/chacha-loongarch64.o" => [ + "crypto" + ], "crypto/chacha/chacha-s390x.o" => [ "crypto" ], @@ -17740,15 +20470,27 @@ our %unified_info = ( "crypto/ec/ecp_s390x_nistp.o" => [ "crypto" ], + "crypto/ec/ecp_sm2p256-armv8.o" => [ + "crypto" + ], + "crypto/ec/ecx_key.o" => [ + "crypto" + ], "crypto/ec/ecx_meth.o" => [ "crypto" ], "crypto/ec/ecx_s390x.o" => [ "crypto" ], + "crypto/ec/libcrypto-lib-ecx_key.o" => [ + "crypto" + ], "crypto/ec/libcrypto-lib-ecx_meth.o" => [ "crypto" ], + "crypto/ec/libfips-lib-ecx_key.o" => [ + "crypto" + ], "crypto/evp/e_aes.o" => [ "crypto", "crypto/modes" @@ -17820,9 +20562,18 @@ our %unified_info = ( "crypto/libfips-lib-cpuid.o" => [ "." ], + "crypto/md5/md5-aarch64.o" => [ + "crypto" + ], + "crypto/md5/md5-loongarch64.o" => [ + "crypto" + ], "crypto/md5/md5-sparcv9.o" => [ "crypto" ], + "crypto/modes/aes-gcm-armv8-unroll8_64.o" => [ + "crypto" + ], "crypto/modes/aes-gcm-armv8_64.o" => [ "crypto" ], @@ -17847,6 +20598,9 @@ our %unified_info = ( "crypto/modes/libfips-lib-gcm128.o" => [ "crypto" ], + "crypto/params_idx.c" => [ + "util/perl" + ], "crypto/poly1305/poly1305-armv4.o" => [ "crypto" ], @@ -17868,6 +20622,9 @@ our %unified_info = ( "crypto/sha/keccak1600-armv4.o" => [ "crypto" ], + "crypto/sha/keccak1600-armv8.o" => [ + "crypto" + ], "crypto/sha/sha1-armv4-large.o" => [ "crypto" ], @@ -17913,6 +20670,18 @@ our %unified_info = ( "crypto/sha/sha512-sparcv9.o" => [ "crypto" ], + "crypto/sm3/sm3-armv8.o" => [ + "crypto" + ], + "crypto/sm4/sm4-armv8.o" => [ + "crypto" + ], + "crypto/sm4/vpsm4-armv8.o" => [ + "crypto" + ], + "crypto/sm4/vpsm4_ex-armv8.o" => [ + "crypto" + ], "doc/man1/openssl-asn1parse.pod" => [ "doc" ], @@ -18045,6 +20814,9 @@ our %unified_info = ( "doc/man1/openssl-sess_id.pod" => [ "doc" ], + "doc/man1/openssl-skeyutl.pod" => [ + "doc" + ], "doc/man1/openssl-smime.pod" => [ "doc" ], @@ -18072,6 +20844,24 @@ our %unified_info = ( "doc/man1/openssl-x509.pod" => [ "doc" ], + "exporters/OpenSSLConfig.cmake" => [ + "." + ], + "exporters/OpenSSLConfigVersion.cmake" => [ + "." + ], + "exporters/libcrypto.pc" => [ + "." + ], + "exporters/libssl.pc" => [ + "." + ], + "exporters/openssl.pc" => [ + "." + ], + "fuzz/acert-test" => [ + "include" + ], "fuzz/asn1-test" => [ "include" ], @@ -18102,12 +20892,69 @@ our %unified_info = ( "fuzz/ct-test" => [ "include" ], + "fuzz/decoder-test" => [ + "include" + ], + "fuzz/dtlsclient-test" => [ + "include" + ], + "fuzz/dtlsserver-test" => [ + "include" + ], + "fuzz/hashtable-test" => [ + "include" + ], + "fuzz/ml-dsa-test" => [ + "include" + ], + "fuzz/ml-kem-test" => [ + "include" + ], + "fuzz/pem-test" => [ + "include" + ], + "fuzz/provider-test" => [ + "include" + ], + "fuzz/punycode-test" => [ + "include" + ], + "fuzz/quic-client-test" => [ + "include" + ], + "fuzz/quic-lcidm-test" => [ + "include" + ], + "fuzz/quic-rcidm-test" => [ + "include" + ], + "fuzz/quic-server-test" => [ + "include" + ], + "fuzz/quic-srtm-test" => [ + "include" + ], "fuzz/server-test" => [ "include" ], + "fuzz/slh-dsa-test" => [ + "include" + ], + "fuzz/smime-test" => [ + "include" + ], + "fuzz/v3name-test" => [ + "include" + ], "fuzz/x509-test" => [ "include" ], + "include/internal/param_names.h" => [ + "util/perl" + ], + "include/openssl/core_names.h" => [ + "util/perl" + ], "libcrypto" => [ ".", "include", @@ -18118,6 +20965,9 @@ our %unified_info = ( ".", "util/perl/OpenSSL" ], + "libcrypto.pc" => [ + "." + ], "libcrypto.rc" => [ "." ], @@ -18129,9 +20979,15 @@ our %unified_info = ( ".", "util/perl/OpenSSL" ], + "libssl.pc" => [ + "." + ], "libssl.rc" => [ "." ], + "openssl.pc" => [ + "." + ], "providers/common/der/der_digests_gen.c" => [ "providers/common/der" ], @@ -18171,6 +21027,15 @@ our %unified_info = ( "providers/common/der/der_ecx_key.o" => [ "providers/common/include/prov" ], + "providers/common/der/der_ml_dsa_gen.c" => [ + "providers/common/der" + ], + "providers/common/der/der_ml_dsa_gen.o" => [ + "providers/common/include/prov" + ], + "providers/common/der/der_ml_dsa_key.o" => [ + "providers/common/include/prov" + ], "providers/common/der/der_rsa_gen.c" => [ "providers/common/der" ], @@ -18183,6 +21048,15 @@ our %unified_info = ( "providers/common/der/der_rsa_sig.o" => [ "providers/common/include/prov" ], + "providers/common/der/der_slh_dsa_gen.c" => [ + "providers/common/der" + ], + "providers/common/der/der_slh_dsa_gen.o" => [ + "providers/common/include/prov" + ], + "providers/common/der/der_slh_dsa_key.o" => [ + "providers/common/include/prov" + ], "providers/common/der/der_sm2_gen.c" => [ "providers/common/der" ], @@ -18228,12 +21102,24 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ecx_key.o" => [ "providers/common/include/prov" ], + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o" => [ + "providers/common/include/prov" + ], + "providers/common/der/libcommon-lib-der_ml_dsa_key.o" => [ + "providers/common/include/prov" + ], "providers/common/der/libcommon-lib-der_rsa_gen.o" => [ "providers/common/include/prov" ], "providers/common/der/libcommon-lib-der_rsa_key.o" => [ "providers/common/include/prov" ], + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o" => [ + "providers/common/include/prov" + ], + "providers/common/der/libcommon-lib-der_slh_dsa_key.o" => [ + "providers/common/include/prov" + ], "providers/common/der/libcommon-lib-der_wrap_gen.o" => [ "providers/common/include/prov" ], @@ -18264,9 +21150,15 @@ our %unified_info = ( "providers/common/include/prov/der_ecx.h" => [ "providers/common/der" ], + "providers/common/include/prov/der_ml_dsa.h" => [ + "providers/common/der" + ], "providers/common/include/prov/der_rsa.h" => [ "providers/common/der" ], + "providers/common/include/prov/der_slh_dsa.h" => [ + "providers/common/der" + ], "providers/common/include/prov/der_sm2.h" => [ "providers/common/der" ], @@ -18309,9 +21201,15 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-eddsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/libdefault-lib-rsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/libdefault-lib-sm2_sig.o" => [ "providers/common/include/prov" ], @@ -18324,12 +21222,24 @@ our %unified_info = ( "providers/implementations/signature/libfips-lib-eddsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/libfips-lib-rsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o" => [ + "providers/common/include/prov" + ], + "providers/implementations/signature/ml_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/rsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/slh_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/sm2_sig.o" => [ "providers/common/include/prov" ], @@ -18342,28 +21252,39 @@ our %unified_info = ( "crypto", "include", "providers/implementations/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" ], "providers/libdefault.a" => [ ".", "crypto", "include", "providers/implementations/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" ], "providers/libfips.a" => [ ".", "crypto", "include", "providers/implementations/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" ], "providers/liblegacy.a" => [ ".", "crypto", "include", "providers/implementations/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" + ], + "providers/libtemplate.a" => [ + "crypto", + "include", + "providers/implementations/include", + "providers/common/include", + "providers/fips/include" ], "test/aborttest" => [ "include", @@ -18432,6 +21353,14 @@ our %unified_info = ( "include", "apps/include" ], + "test/bio_addr_test" => [ + "include", + "apps/include" + ], + "test/bio_base64_test" => [ + "include", + "apps/include" + ], "test/bio_callback_test" => [ "include", "apps/include" @@ -18440,6 +21369,11 @@ our %unified_info = ( "include", "apps/include" ], + "test/bio_dgram_test" => [ + "include", + "apps/include", + "." + ], "test/bio_enc_test" => [ "include", "apps/include" @@ -18448,6 +21382,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/bio_meth_test" => [ + "include", + "apps/include" + ], "test/bio_prefix_text" => [ ".", "include", @@ -18461,6 +21399,11 @@ our %unified_info = ( "include", "apps/include" ], + "test/bio_tfo_test" => [ + "include", + "apps/include", + "." + ], "test/bioprinttest" => [ "include", "apps/include" @@ -18475,6 +21418,9 @@ our %unified_info = ( "include", "apps/include" ], + "test/build_wincrypt_test" => [ + "include" + ], "test/buildtest_c_aes" => [ "include" ], @@ -18490,6 +21436,9 @@ our %unified_info = ( "test/buildtest_c_buffer" => [ "include" ], + "test/buildtest_c_byteorder" => [ + "include" + ], "test/buildtest_c_camellia" => [ "include" ], @@ -18514,9 +21463,6 @@ our %unified_info = ( "test/buildtest_c_core_dispatch" => [ "include" ], - "test/buildtest_c_core_names" => [ - "include" - ], "test/buildtest_c_core_object" => [ "include" ], @@ -18541,6 +21487,9 @@ our %unified_info = ( "test/buildtest_c_e_os2" => [ "include" ], + "test/buildtest_c_e_ostime" => [ + "include" + ], "test/buildtest_c_ebcdic" => [ "include" ], @@ -18568,12 +21517,18 @@ our %unified_info = ( "test/buildtest_c_hmac" => [ "include" ], + "test/buildtest_c_hpke" => [ + "include" + ], "test/buildtest_c_http" => [ "include" ], "test/buildtest_c_idea" => [ "include" ], + "test/buildtest_c_indicator" => [ + "include" + ], "test/buildtest_c_kdf" => [ "include" ], @@ -18589,6 +21544,9 @@ our %unified_info = ( "test/buildtest_c_mdc2" => [ "include" ], + "test/buildtest_c_ml_kem" => [ + "include" + ], "test/buildtest_c_modes" => [ "include" ], @@ -18619,6 +21577,9 @@ our %unified_info = ( "test/buildtest_c_provider" => [ "include" ], + "test/buildtest_c_quic" => [ + "include" + ], "test/buildtest_c_rand" => [ "include" ], @@ -18661,6 +21622,9 @@ our %unified_info = ( "test/buildtest_c_symhacks" => [ "include" ], + "test/buildtest_c_thread" => [ + "include" + ], "test/buildtest_c_tls1" => [ "include" ], @@ -18676,10 +21640,24 @@ our %unified_info = ( "test/buildtest_c_whrlpool" => [ "include" ], + "test/byteorder_test" => [ + "include", + "apps/include" + ], + "test/ca_internals_test" => [ + ".", + "include", + "apps/include" + ], "test/casttest" => [ "include", "apps/include" ], + "test/cert_comp_test" => [ + "include", + "apps/include", + "." + ], "test/chacha_internal_test" => [ ".", "include", @@ -18803,6 +21781,11 @@ our %unified_info = ( "include", "apps/include" ], + "test/decoder_propq_test" => [ + ".", + "include", + "apps/include" + ], "test/defltfips_test" => [ "include", "apps/include" @@ -18818,7 +21801,8 @@ our %unified_info = ( "test/drbgtest" => [ "include", "apps/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" ], "test/dsa_no_digest_size_test" => [ "include", @@ -18861,7 +21845,9 @@ our %unified_info = ( "test/endecode_test" => [ ".", "include", - "apps/include" + "apps/include", + "providers/common/include", + "providers/implementations/include" ], "test/endecoder_legacy_test" => [ ".", @@ -18906,6 +21892,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/evp_pkey_dhkem_test" => [ + "include", + "apps/include" + ], "test/evp_pkey_dparams_test" => [ "include", "apps/include" @@ -18914,10 +21904,18 @@ our %unified_info = ( "include", "apps/include" ], + "test/evp_skey_test" => [ + "include", + "apps/include" + ], "test/evp_test" => [ "include", "apps/include" ], + "test/evp_xof_test" => [ + "include", + "apps/include" + ], "test/exdatatest" => [ "include", "apps/include" @@ -19018,22 +22016,62 @@ our %unified_info = ( ".", "include" ], + "test/helpers/json_test-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/helpers/pkcs12.o" => [ ".", "include" ], + "test/helpers/pkcs12_api_test-bin-pkcs12.o" => [ + ".", + "include" + ], "test/helpers/pkcs12_format_test-bin-pkcs12.o" => [ ".", "include" ], + "test/helpers/quic_multistream_test-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quic_newcid_test-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quic_radix_test-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quic_srt_gen_test-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quicapitest-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quicfaultstest-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/helpers/recordlentest-bin-ssltestlib.o" => [ ".", "include" ], + "test/helpers/rpktest-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/helpers/servername_test-bin-ssltestlib.o" => [ ".", "include" ], + "test/helpers/ssl_handshake_rtt_test-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/helpers/ssl_test-bin-handshake.o" => [ ".", "include" @@ -19067,6 +22105,10 @@ our %unified_info = ( ".", "include" ], + "test/helpers/tls13groupselection_test-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/hexstr_test" => [ ".", "include", @@ -19076,6 +22118,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/hpke_test" => [ + "include", + "apps/include" + ], "test/http_test" => [ "include", "apps/include" @@ -19088,6 +22134,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/json_test" => [ + "include", + "apps/include" + ], "test/keymgmt_internal_test" => [ ".", "include", @@ -19102,6 +22152,10 @@ our %unified_info = ( "apps/include", "." ], + "test/list_test" => [ + "include", + "apps/include" + ], "test/localetest" => [ "include", "apps/include" @@ -19115,10 +22169,27 @@ our %unified_info = ( "include", "apps/include" ], + "test/membio_test" => [ + "include", + "apps/include", + "." + ], "test/memleaktest" => [ "include", "apps/include" ], + "test/ml_dsa_test" => [ + "include", + "apps/include" + ], + "test/ml_kem_evp_extra_test" => [ + "include", + "apps/include" + ], + "test/ml_kem_internal_test" => [ + "include", + "apps/include" + ], "test/modes_internal_test" => [ ".", "include", @@ -19153,6 +22224,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/pairwise_fail_test" => [ + "include", + "apps/include" + ], "test/param_build_test" => [ "include", "apps/include" @@ -19186,6 +22261,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/pkcs12_api_test" => [ + "include", + "apps/include" + ], "test/pkcs12_format_test" => [ "include", "apps/include" @@ -19207,6 +22286,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/priority_queue_test" => [ + "include", + "apps/include" + ], "test/property_test" => [ ".", "include", @@ -19220,6 +22303,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/provider_default_search_path_test" => [ + "include", + "apps/include" + ], "test/provider_fallback_test" => [ "include", "apps/include" @@ -19246,6 +22333,97 @@ our %unified_info = ( "include", "apps/include" ], + "test/quic_ackm_test" => [ + "include", + "apps/include" + ], + "test/quic_cc_test" => [ + "include", + "apps/include" + ], + "test/quic_cfq_test" => [ + "include", + "apps/include" + ], + "test/quic_client_test" => [ + "include", + "apps/include" + ], + "test/quic_fc_test" => [ + "include", + "apps/include" + ], + "test/quic_fifd_test" => [ + "include", + "apps/include" + ], + "test/quic_lcidm_test" => [ + "include", + "apps/include" + ], + "test/quic_multistream_test" => [ + "include", + "apps/include" + ], + "test/quic_newcid_test" => [ + "include", + "apps/include", + "." + ], + "test/quic_qlog_test" => [ + "include", + "apps/include" + ], + "test/quic_radix_test" => [ + "include", + "apps/include" + ], + "test/quic_rcidm_test" => [ + "include", + "apps/include" + ], + "test/quic_record_test" => [ + "include", + "apps/include" + ], + "test/quic_srt_gen_test" => [ + "include", + "apps/include", + "." + ], + "test/quic_srtm_test" => [ + "include", + "apps/include" + ], + "test/quic_stream_test" => [ + "include", + "apps/include" + ], + "test/quic_tserver_test" => [ + "include", + "apps/include" + ], + "test/quic_txp_test" => [ + "include", + "apps/include" + ], + "test/quic_txpim_test" => [ + "include", + "apps/include" + ], + "test/quic_wire_test" => [ + "include", + "apps/include" + ], + "test/quicapitest" => [ + "include", + "apps/include" + ], + "test/quicfaultstest" => [ + "include", + "apps/include", + "." + ], "test/rand_status_test" => [ "include", "apps/include" @@ -19266,14 +22444,20 @@ our %unified_info = ( "include", "apps/include" ], - "test/rdrand_sanitytest" => [ + "test/rdcpu_sanitytest" => [ "include", - "apps/include" + "apps/include", + "crypto" ], "test/recordlentest" => [ "include", "apps/include" ], + "test/rpktest" => [ + "include", + "apps/include", + "." + ], "test/rsa_complex" => [ "include", "apps/include" @@ -19292,6 +22476,15 @@ our %unified_info = ( "include", "apps/include" ], + "test/rsa_x931_test" => [ + ".", + "include", + "apps/include" + ], + "test/safe_math_test" => [ + "include", + "apps/include" + ], "test/sanitytest" => [ "include", "apps/include" @@ -19313,6 +22506,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/slh_dsa_test" => [ + "include", + "apps/include" + ], "test/sm2_internal_test" => [ "include", "apps/include" @@ -19343,6 +22540,11 @@ our %unified_info = ( "include", "apps/include" ], + "test/ssl_handshake_rtt_test" => [ + "include", + "apps/include", + "." + ], "test/ssl_old_test" => [ ".", "include", @@ -19359,6 +22561,7 @@ our %unified_info = ( "test/sslapitest" => [ "include", "apps/include", + "providers/common/include", "." ], "test/sslbuffertest" => [ @@ -19373,6 +22576,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/strtoultest" => [ + "include", + "apps/include" + ], "test/sysdefaulttest" => [ "include", "apps/include" @@ -19381,7 +22588,13 @@ our %unified_info = ( "include", "apps/include" ], + "test/threadpool_test" => [ + ".", + "include", + "apps/include" + ], "test/threadstest" => [ + ".", "include", "apps/include" ], @@ -19393,6 +22606,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/time_test" => [ + "include", + "apps/include" + ], "test/tls13ccstest" => [ "include", "apps/include" @@ -19402,6 +22619,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/tls13groupselection_test" => [ + "include", + "apps/include" + ], "test/trace_api_test" => [ ".", "include", @@ -19440,6 +22661,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/x509_acert_test" => [ + "include", + "apps/include" + ], "test/x509_check_cert_pkey_test" => [ "include", "apps/include" @@ -19453,6 +22678,18 @@ our %unified_info = ( "include", "apps/include" ], + "test/x509_load_cert_file_test" => [ + "include", + "apps/include" + ], + "test/x509_req_test" => [ + "include", + "apps/include" + ], + "test/x509_test" => [ + "include", + "apps/include" + ], "test/x509_time_test" => [ "include", "apps/include" @@ -19474,6 +22711,7 @@ our %unified_info = ( "providers/libdefault.a", "providers/libfips.a", "providers/liblegacy.a", + "providers/libtemplate.a", "test/libtestutil.a" ], "mandocs" => { @@ -19526,6 +22764,7 @@ our %unified_info = ( "doc/man/man1/openssl-s_server.1", "doc/man/man1/openssl-s_time.1", "doc/man/man1/openssl-sess_id.1", + "doc/man/man1/openssl-skeyutl.1", "doc/man/man1/openssl-smime.1", "doc/man/man1/openssl-speed.1", "doc/man/man1/openssl-spkac.1", @@ -19575,6 +22814,7 @@ our %unified_info = ( "doc/man/man3/BIO_find_type.3", "doc/man/man3/BIO_get_data.3", "doc/man/man3/BIO_get_ex_new_index.3", + "doc/man/man3/BIO_get_rpoll_descriptor.3", "doc/man/man3/BIO_meth_new.3", "doc/man/man3/BIO_new.3", "doc/man/man3/BIO_new_CMS.3", @@ -19587,11 +22827,13 @@ our %unified_info = ( "doc/man/man3/BIO_s_connect.3", "doc/man/man3/BIO_s_core.3", "doc/man/man3/BIO_s_datagram.3", + "doc/man/man3/BIO_s_dgram_pair.3", "doc/man/man3/BIO_s_fd.3", "doc/man/man3/BIO_s_file.3", "doc/man/man3/BIO_s_mem.3", "doc/man/man3/BIO_s_null.3", "doc/man/man3/BIO_s_socket.3", + "doc/man/man3/BIO_sendmmsg.3", "doc/man/man3/BIO_set_callback.3", "doc/man/man3/BIO_should_retry.3", "doc/man/man3/BIO_socket_wait.3", @@ -19616,6 +22858,7 @@ our %unified_info = ( "doc/man/man3/BN_swap.3", "doc/man/man3/BN_zero.3", "doc/man/man3/BUF_MEM_new.3", + "doc/man/man3/CMAC_CTX.3", "doc/man/man3/CMS_EncryptedData_decrypt.3", "doc/man/man3/CMS_EncryptedData_encrypt.3", "doc/man/man3/CMS_EnvelopedData_create.3", @@ -19638,6 +22881,7 @@ our %unified_info = ( "doc/man/man3/CMS_uncompress.3", "doc/man/man3/CMS_verify.3", "doc/man/man3/CMS_verify_receipt.3", + "doc/man/man3/COMP_CTX_new.3", "doc/man/man3/CONF_modules_free.3", "doc/man/man3/CONF_modules_load_file.3", "doc/man/man3/CRYPTO_THREAD_run_once.3", @@ -19671,6 +22915,8 @@ our %unified_info = ( "doc/man/man3/DSA_size.3", "doc/man/man3/DTLS_get_data_mtu.3", "doc/man/man3/DTLS_set_timer_cb.3", + "doc/man/man3/DTLSv1_get_timeout.3", + "doc/man/man3/DTLSv1_handle_timeout.3", "doc/man/man3/DTLSv1_listen.3", "doc/man/man3/ECDSA_SIG_new.3", "doc/man/man3/ECDSA_sign.3", @@ -19717,6 +22963,7 @@ our %unified_info = ( "doc/man/man3/EVP_PKEY_CTX_ctrl.3", "doc/man/man3/EVP_PKEY_CTX_get0_libctx.3", "doc/man/man3/EVP_PKEY_CTX_get0_pkey.3", + "doc/man/man3/EVP_PKEY_CTX_get_algor.3", "doc/man/man3/EVP_PKEY_CTX_new.3", "doc/man/man3/EVP_PKEY_CTX_set1_pbe_pass.3", "doc/man/man3/EVP_PKEY_CTX_set_hkdf_md.3", @@ -19756,6 +23003,8 @@ our %unified_info = ( "doc/man/man3/EVP_PKEY_verify_recover.3", "doc/man/man3/EVP_RAND.3", "doc/man/man3/EVP_SIGNATURE.3", + "doc/man/man3/EVP_SKEY.3", + "doc/man/man3/EVP_SKEYMGMT.3", "doc/man/man3/EVP_SealInit.3", "doc/man/man3/EVP_SignInit.3", "doc/man/man3/EVP_VerifyInit.3", @@ -19785,6 +23034,7 @@ our %unified_info = ( "doc/man/man3/EVP_sm3.3", "doc/man/man3/EVP_sm4_cbc.3", "doc/man/man3/EVP_whirlpool.3", + "doc/man/man3/GENERAL_NAME.3", "doc/man/man3/HMAC.3", "doc/man/man3/MD5.3", "doc/man/man3/MDC2_Init.3", @@ -19809,14 +23059,18 @@ our %unified_info = ( "doc/man/man3/OPENSSL_init_ssl.3", "doc/man/man3/OPENSSL_instrument_bus.3", "doc/man/man3/OPENSSL_load_builtin_modules.3", + "doc/man/man3/OPENSSL_load_u16_le.3", "doc/man/man3/OPENSSL_malloc.3", + "doc/man/man3/OPENSSL_riscvcap.3", "doc/man/man3/OPENSSL_s390xcap.3", "doc/man/man3/OPENSSL_secure_malloc.3", "doc/man/man3/OPENSSL_strcasecmp.3", "doc/man/man3/OSSL_ALGORITHM.3", "doc/man/man3/OSSL_CALLBACK.3", + "doc/man/man3/OSSL_CMP_ATAV_set0.3", "doc/man/man3/OSSL_CMP_CTX_new.3", "doc/man/man3/OSSL_CMP_HDR_get0_transactionID.3", + "doc/man/man3/OSSL_CMP_ITAV_new_caCerts.3", "doc/man/man3/OSSL_CMP_ITAV_set0.3", "doc/man/man3/OSSL_CMP_MSG_get0_header.3", "doc/man/man3/OSSL_CMP_MSG_http_perform.3", @@ -19840,18 +23094,27 @@ our %unified_info = ( "doc/man/man3/OSSL_ENCODER_CTX.3", "doc/man/man3/OSSL_ENCODER_CTX_new_for_pkey.3", "doc/man/man3/OSSL_ENCODER_to_bio.3", + "doc/man/man3/OSSL_ERR_STATE_save.3", "doc/man/man3/OSSL_ESS_check_signing_certs.3", + "doc/man/man3/OSSL_GENERAL_NAMES_print.3", + "doc/man/man3/OSSL_HPKE_CTX_new.3", "doc/man/man3/OSSL_HTTP_REQ_CTX.3", "doc/man/man3/OSSL_HTTP_parse_url.3", "doc/man/man3/OSSL_HTTP_transfer.3", + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX.3", + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX_print.3", + "doc/man/man3/OSSL_INDICATOR_set_callback.3", "doc/man/man3/OSSL_ITEM.3", "doc/man/man3/OSSL_LIB_CTX.3", + "doc/man/man3/OSSL_LIB_CTX_set_conf_diagnostics.3", "doc/man/man3/OSSL_PARAM.3", "doc/man/man3/OSSL_PARAM_BLD.3", "doc/man/man3/OSSL_PARAM_allocate_from_text.3", "doc/man/man3/OSSL_PARAM_dup.3", "doc/man/man3/OSSL_PARAM_int.3", + "doc/man/man3/OSSL_PARAM_print_to_bio.3", "doc/man/man3/OSSL_PROVIDER.3", + "doc/man/man3/OSSL_QUIC_client_method.3", "doc/man/man3/OSSL_SELF_TEST_new.3", "doc/man/man3/OSSL_SELF_TEST_set_callback.3", "doc/man/man3/OSSL_STORE_INFO.3", @@ -19860,11 +23123,13 @@ our %unified_info = ( "doc/man/man3/OSSL_STORE_attach.3", "doc/man/man3/OSSL_STORE_expect.3", "doc/man/man3/OSSL_STORE_open.3", + "doc/man/man3/OSSL_sleep.3", "doc/man/man3/OSSL_trace_enabled.3", "doc/man/man3/OSSL_trace_get_category_num.3", "doc/man/man3/OSSL_trace_set_channel.3", "doc/man/man3/OpenSSL_add_all_algorithms.3", "doc/man/man3/OpenSSL_version.3", + "doc/man/man3/PBMAC1_get1_pbkdf2_param.3", "doc/man/man3/PEM_X509_INFO_read_bio_ex.3", "doc/man/man3/PEM_bytes_read_bio.3", "doc/man/man3/PEM_read.3", @@ -19877,6 +23142,7 @@ our %unified_info = ( "doc/man/man3/PKCS12_SAFEBAG_create_cert.3", "doc/man/man3/PKCS12_SAFEBAG_get0_attrs.3", "doc/man/man3/PKCS12_SAFEBAG_get1_cert.3", + "doc/man/man3/PKCS12_SAFEBAG_set0_attrs.3", "doc/man/man3/PKCS12_add1_attr_by_NID.3", "doc/man/man3/PKCS12_add_CSPName_asc.3", "doc/man/man3/PKCS12_add_cert.3", @@ -19968,6 +23234,7 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_sess_set_get_cb.3", "doc/man/man3/SSL_CTX_sessions.3", "doc/man/man3/SSL_CTX_set0_CA_list.3", + "doc/man/man3/SSL_CTX_set1_cert_comp_preference.3", "doc/man/man3/SSL_CTX_set1_curves.3", "doc/man/man3/SSL_CTX_set1_sigalgs.3", "doc/man/man3/SSL_CTX_set1_verify_cert_store.3", @@ -19981,6 +23248,7 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_ct_validation_callback.3", "doc/man/man3/SSL_CTX_set_ctlog_list_file.3", "doc/man/man3/SSL_CTX_set_default_passwd_cb.3", + "doc/man/man3/SSL_CTX_set_domain_flags.3", "doc/man/man3/SSL_CTX_set_generate_session_id.3", "doc/man/man3/SSL_CTX_set_info_callback.3", "doc/man/man3/SSL_CTX_set_keylog_callback.3", @@ -19988,6 +23256,7 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_min_proto_version.3", "doc/man/man3/SSL_CTX_set_mode.3", "doc/man/man3/SSL_CTX_set_msg_callback.3", + "doc/man/man3/SSL_CTX_set_new_pending_conn_cb.3", "doc/man/man3/SSL_CTX_set_num_tickets.3", "doc/man/man3/SSL_CTX_set_options.3", "doc/man/man3/SSL_CTX_set_psk_client_callback.3", @@ -20026,6 +23295,7 @@ our %unified_info = ( "doc/man/man3/SSL_SESSION_print.3", "doc/man/man3/SSL_SESSION_set1_id.3", "doc/man/man3/SSL_accept.3", + "doc/man/man3/SSL_accept_stream.3", "doc/man/man3/SSL_alert_type_string.3", "doc/man/man3/SSL_alloc_buffers.3", "doc/man/man3/SSL_check_chain.3", @@ -20035,59 +23305,90 @@ our %unified_info = ( "doc/man/man3/SSL_export_keying_material.3", "doc/man/man3/SSL_extension_supported.3", "doc/man/man3/SSL_free.3", + "doc/man/man3/SSL_get0_connection.3", + "doc/man/man3/SSL_get0_group_name.3", + "doc/man/man3/SSL_get0_peer_rpk.3", "doc/man/man3/SSL_get0_peer_scts.3", + "doc/man/man3/SSL_get1_builtin_sigalgs.3", "doc/man/man3/SSL_get_SSL_CTX.3", "doc/man/man3/SSL_get_all_async_fds.3", "doc/man/man3/SSL_get_certificate.3", "doc/man/man3/SSL_get_ciphers.3", "doc/man/man3/SSL_get_client_random.3", + "doc/man/man3/SSL_get_conn_close_info.3", "doc/man/man3/SSL_get_current_cipher.3", "doc/man/man3/SSL_get_default_timeout.3", "doc/man/man3/SSL_get_error.3", + "doc/man/man3/SSL_get_event_timeout.3", "doc/man/man3/SSL_get_extms_support.3", "doc/man/man3/SSL_get_fd.3", + "doc/man/man3/SSL_get_handshake_rtt.3", "doc/man/man3/SSL_get_peer_cert_chain.3", "doc/man/man3/SSL_get_peer_certificate.3", "doc/man/man3/SSL_get_peer_signature_nid.3", "doc/man/man3/SSL_get_peer_tmp_key.3", "doc/man/man3/SSL_get_psk_identity.3", "doc/man/man3/SSL_get_rbio.3", + "doc/man/man3/SSL_get_rpoll_descriptor.3", "doc/man/man3/SSL_get_session.3", "doc/man/man3/SSL_get_shared_sigalgs.3", + "doc/man/man3/SSL_get_stream_id.3", + "doc/man/man3/SSL_get_stream_read_state.3", + "doc/man/man3/SSL_get_value_uint.3", "doc/man/man3/SSL_get_verify_result.3", "doc/man/man3/SSL_get_version.3", "doc/man/man3/SSL_group_to_name.3", + "doc/man/man3/SSL_handle_events.3", "doc/man/man3/SSL_in_init.3", + "doc/man/man3/SSL_inject_net_dgram.3", "doc/man/man3/SSL_key_update.3", "doc/man/man3/SSL_library_init.3", "doc/man/man3/SSL_load_client_CA_file.3", "doc/man/man3/SSL_new.3", + "doc/man/man3/SSL_new_domain.3", + "doc/man/man3/SSL_new_listener.3", + "doc/man/man3/SSL_new_stream.3", "doc/man/man3/SSL_pending.3", + "doc/man/man3/SSL_poll.3", "doc/man/man3/SSL_read.3", "doc/man/man3/SSL_read_early_data.3", "doc/man/man3/SSL_rstate_string.3", "doc/man/man3/SSL_session_reused.3", "doc/man/man3/SSL_set1_host.3", + "doc/man/man3/SSL_set1_initial_peer_addr.3", + "doc/man/man3/SSL_set1_server_cert_type.3", "doc/man/man3/SSL_set_async_callback.3", "doc/man/man3/SSL_set_bio.3", + "doc/man/man3/SSL_set_blocking_mode.3", "doc/man/man3/SSL_set_connect_state.3", + "doc/man/man3/SSL_set_default_stream_mode.3", "doc/man/man3/SSL_set_fd.3", + "doc/man/man3/SSL_set_incoming_stream_policy.3", + "doc/man/man3/SSL_set_quic_tls_cbs.3", "doc/man/man3/SSL_set_retry_verify.3", "doc/man/man3/SSL_set_session.3", + "doc/man/man3/SSL_set_session_secret_cb.3", "doc/man/man3/SSL_set_shutdown.3", "doc/man/man3/SSL_set_verify_result.3", "doc/man/man3/SSL_shutdown.3", "doc/man/man3/SSL_state_string.3", + "doc/man/man3/SSL_stream_conclude.3", + "doc/man/man3/SSL_stream_reset.3", "doc/man/man3/SSL_want.3", "doc/man/man3/SSL_write.3", "doc/man/man3/TS_RESP_CTX_new.3", - "doc/man/man3/TS_VERIFY_CTX_set_certs.3", + "doc/man/man3/TS_VERIFY_CTX.3", "doc/man/man3/UI_STRING.3", "doc/man/man3/UI_UTIL_read_pw.3", "doc/man/man3/UI_create_method.3", "doc/man/man3/UI_new.3", "doc/man/man3/X509V3_get_d2i.3", "doc/man/man3/X509V3_set_ctx.3", + "doc/man/man3/X509_ACERT_add1_attr.3", + "doc/man/man3/X509_ACERT_add_attr_nconf.3", + "doc/man/man3/X509_ACERT_get0_holder_baseCertId.3", + "doc/man/man3/X509_ACERT_get_attr.3", + "doc/man/man3/X509_ACERT_print_ex.3", "doc/man/man3/X509_ALGOR_dup.3", "doc/man/man3/X509_ATTRIBUTE.3", "doc/man/man3/X509_CRL_get0_by_serial.3", @@ -20104,6 +23405,7 @@ our %unified_info = ( "doc/man/man3/X509_REQ_get_attr.3", "doc/man/man3/X509_REQ_get_extensions.3", "doc/man/man3/X509_SIG_get0.3", + "doc/man/man3/X509_STORE_CTX_get_by_subject.3", "doc/man/man3/X509_STORE_CTX_get_error.3", "doc/man/man3/X509_STORE_CTX_new.3", "doc/man/man3/X509_STORE_CTX_set_verify_cb.3", @@ -20126,6 +23428,7 @@ our %unified_info = ( "doc/man/man3/X509_get0_notBefore.3", "doc/man/man3/X509_get0_signature.3", "doc/man/man3/X509_get0_uids.3", + "doc/man/man3/X509_get_default_cert_file.3", "doc/man/man3/X509_get_extension_flags.3", "doc/man/man3/X509_get_pubkey.3", "doc/man/man3/X509_get_serialNumber.3", @@ -20171,12 +23474,15 @@ our %unified_info = ( "doc/man/man7/EVP_CIPHER-RC5.7", "doc/man/man7/EVP_CIPHER-SEED.7", "doc/man/man7/EVP_CIPHER-SM4.7", + "doc/man/man7/EVP_KDF-ARGON2.7", "doc/man/man7/EVP_KDF-HKDF.7", + "doc/man/man7/EVP_KDF-HMAC-DRBG.7", "doc/man/man7/EVP_KDF-KB.7", "doc/man/man7/EVP_KDF-KRB5KDF.7", "doc/man/man7/EVP_KDF-PBKDF1.7", "doc/man/man7/EVP_KDF-PBKDF2.7", "doc/man/man7/EVP_KDF-PKCS12KDF.7", + "doc/man/man7/EVP_KDF-PVKKDF.7", "doc/man/man7/EVP_KDF-SCRYPT.7", "doc/man/man7/EVP_KDF-SS.7", "doc/man/man7/EVP_KDF-SSHKDF.7", @@ -20185,7 +23491,10 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-X942-ASN1.7", "doc/man/man7/EVP_KDF-X942-CONCAT.7", "doc/man/man7/EVP_KDF-X963.7", + "doc/man/man7/EVP_KEM-EC.7", + "doc/man/man7/EVP_KEM-ML-KEM.7", "doc/man/man7/EVP_KEM-RSA.7", + "doc/man/man7/EVP_KEM-X25519.7", "doc/man/man7/EVP_KEYEXCH-DH.7", "doc/man/man7/EVP_KEYEXCH-ECDH.7", "doc/man/man7/EVP_KEYEXCH-X25519.7", @@ -20197,6 +23506,7 @@ our %unified_info = ( "doc/man/man7/EVP_MAC-Poly1305.7", "doc/man/man7/EVP_MAC-Siphash.7", "doc/man/man7/EVP_MD-BLAKE2.7", + "doc/man/man7/EVP_MD-KECCAK.7", "doc/man/man7/EVP_MD-MD2.7", "doc/man/man7/EVP_MD-MD4.7", "doc/man/man7/EVP_MD-MD5-SHA1.7", @@ -20216,12 +23526,17 @@ our %unified_info = ( "doc/man/man7/EVP_PKEY-EC.7", "doc/man/man7/EVP_PKEY-FFC.7", "doc/man/man7/EVP_PKEY-HMAC.7", + "doc/man/man7/EVP_PKEY-ML-DSA.7", + "doc/man/man7/EVP_PKEY-ML-KEM.7", "doc/man/man7/EVP_PKEY-RSA.7", + "doc/man/man7/EVP_PKEY-SLH-DSA.7", "doc/man/man7/EVP_PKEY-SM2.7", "doc/man/man7/EVP_PKEY-X25519.7", + "doc/man/man7/EVP_RAND-CRNG-TEST.7", "doc/man/man7/EVP_RAND-CTR-DRBG.7", "doc/man/man7/EVP_RAND-HASH-DRBG.7", "doc/man/man7/EVP_RAND-HMAC-DRBG.7", + "doc/man/man7/EVP_RAND-JITTER.7", "doc/man/man7/EVP_RAND-SEED-SRC.7", "doc/man/man7/EVP_RAND-TEST-RAND.7", "doc/man/man7/EVP_RAND.7", @@ -20229,17 +23544,19 @@ our %unified_info = ( "doc/man/man7/EVP_SIGNATURE-ECDSA.7", "doc/man/man7/EVP_SIGNATURE-ED25519.7", "doc/man/man7/EVP_SIGNATURE-HMAC.7", + "doc/man/man7/EVP_SIGNATURE-ML-DSA.7", "doc/man/man7/EVP_SIGNATURE-RSA.7", + "doc/man/man7/EVP_SIGNATURE-SLH-DSA.7", "doc/man/man7/OSSL_PROVIDER-FIPS.7", "doc/man/man7/OSSL_PROVIDER-base.7", "doc/man/man7/OSSL_PROVIDER-default.7", "doc/man/man7/OSSL_PROVIDER-legacy.7", "doc/man/man7/OSSL_PROVIDER-null.7", + "doc/man/man7/OSSL_STORE-winstore.7", "doc/man/man7/RAND.7", "doc/man/man7/RSA-PSS.7", "doc/man/man7/X25519.7", "doc/man/man7/bio.7", - "doc/man/man7/crypto.7", "doc/man/man7/ct.7", "doc/man/man7/des_modes.7", "doc/man/man7/evp.7", @@ -20250,14 +23567,31 @@ our %unified_info = ( "doc/man/man7/life_cycle-mac.7", "doc/man/man7/life_cycle-pkey.7", "doc/man/man7/life_cycle-rand.7", - "doc/man/man7/migration_guide.7", "doc/man/man7/openssl-core.h.7", "doc/man/man7/openssl-core_dispatch.h.7", "doc/man/man7/openssl-core_names.h.7", "doc/man/man7/openssl-env.7", "doc/man/man7/openssl-glossary.7", + "doc/man/man7/openssl-qlog.7", + "doc/man/man7/openssl-quic-concurrency.7", + "doc/man/man7/openssl-quic.7", "doc/man/man7/openssl-threads.7", "doc/man/man7/openssl_user_macros.7", + "doc/man/man7/ossl-guide-introduction.7", + "doc/man/man7/ossl-guide-libcrypto-introduction.7", + "doc/man/man7/ossl-guide-libraries-introduction.7", + "doc/man/man7/ossl-guide-libssl-introduction.7", + "doc/man/man7/ossl-guide-migration.7", + "doc/man/man7/ossl-guide-quic-client-block.7", + "doc/man/man7/ossl-guide-quic-client-non-block.7", + "doc/man/man7/ossl-guide-quic-introduction.7", + "doc/man/man7/ossl-guide-quic-multi-stream.7", + "doc/man/man7/ossl-guide-quic-server-block.7", + "doc/man/man7/ossl-guide-quic-server-non-block.7", + "doc/man/man7/ossl-guide-tls-client-block.7", + "doc/man/man7/ossl-guide-tls-client-non-block.7", + "doc/man/man7/ossl-guide-tls-introduction.7", + "doc/man/man7/ossl-guide-tls-server-block.7", "doc/man/man7/ossl_store-file.7", "doc/man/man7/ossl_store.7", "doc/man/man7/passphrase-encoding.7", @@ -20276,10 +23610,10 @@ our %unified_info = ( "doc/man/man7/provider-object.7", "doc/man/man7/provider-rand.7", "doc/man/man7/provider-signature.7", + "doc/man/man7/provider-skeymgmt.7", "doc/man/man7/provider-storemgmt.7", "doc/man/man7/provider.7", "doc/man/man7/proxy-certificates.7", - "doc/man/man7/ssl.7", "doc/man/man7/x509.7" ] }, @@ -20291,6 +23625,7 @@ our %unified_info = ( ], "programs" => [ "apps/openssl", + "fuzz/acert-test", "fuzz/asn1-test", "fuzz/asn1parse-test", "fuzz/bignum-test", @@ -20301,7 +23636,24 @@ our %unified_info = ( "fuzz/conf-test", "fuzz/crl-test", "fuzz/ct-test", + "fuzz/decoder-test", + "fuzz/dtlsclient-test", + "fuzz/dtlsserver-test", + "fuzz/hashtable-test", + "fuzz/ml-dsa-test", + "fuzz/ml-kem-test", + "fuzz/pem-test", + "fuzz/provider-test", + "fuzz/punycode-test", + "fuzz/quic-client-test", + "fuzz/quic-lcidm-test", + "fuzz/quic-rcidm-test", + "fuzz/quic-server-test", + "fuzz/quic-srtm-test", "fuzz/server-test", + "fuzz/slh-dsa-test", + "fuzz/smime-test", + "fuzz/v3name-test", "fuzz/x509-test", "test/aborttest", "test/acvp_test", @@ -20319,21 +23671,28 @@ our %unified_info = ( "test/asynctest", "test/bad_dtls_test", "test/bftest", + "test/bio_addr_test", + "test/bio_base64_test", "test/bio_callback_test", "test/bio_core_test", + "test/bio_dgram_test", "test/bio_enc_test", "test/bio_memleak_test", + "test/bio_meth_test", "test/bio_prefix_text", "test/bio_pw_callback_test", "test/bio_readbuffer_test", + "test/bio_tfo_test", "test/bioprinttest", "test/bn_internal_test", "test/bntest", + "test/build_wincrypt_test", "test/buildtest_c_aes", "test/buildtest_c_async", "test/buildtest_c_blowfish", "test/buildtest_c_bn", "test/buildtest_c_buffer", + "test/buildtest_c_byteorder", "test/buildtest_c_camellia", "test/buildtest_c_cast", "test/buildtest_c_cmac", @@ -20342,7 +23701,6 @@ our %unified_info = ( "test/buildtest_c_conftypes", "test/buildtest_c_core", "test/buildtest_c_core_dispatch", - "test/buildtest_c_core_names", "test/buildtest_c_core_object", "test/buildtest_c_cryptoerr_legacy", "test/buildtest_c_decoder", @@ -20351,6 +23709,7 @@ our %unified_info = ( "test/buildtest_c_dsa", "test/buildtest_c_dtls1", "test/buildtest_c_e_os2", + "test/buildtest_c_e_ostime", "test/buildtest_c_ebcdic", "test/buildtest_c_ec", "test/buildtest_c_ecdh", @@ -20360,13 +23719,16 @@ our %unified_info = ( "test/buildtest_c_evp", "test/buildtest_c_fips_names", "test/buildtest_c_hmac", + "test/buildtest_c_hpke", "test/buildtest_c_http", "test/buildtest_c_idea", + "test/buildtest_c_indicator", "test/buildtest_c_kdf", "test/buildtest_c_macros", "test/buildtest_c_md4", "test/buildtest_c_md5", "test/buildtest_c_mdc2", + "test/buildtest_c_ml_kem", "test/buildtest_c_modes", "test/buildtest_c_obj_mac", "test/buildtest_c_objects", @@ -20377,6 +23739,7 @@ our %unified_info = ( "test/buildtest_c_pem2", "test/buildtest_c_prov_ssl", "test/buildtest_c_provider", + "test/buildtest_c_quic", "test/buildtest_c_rand", "test/buildtest_c_rc2", "test/buildtest_c_rc4", @@ -20391,11 +23754,14 @@ our %unified_info = ( "test/buildtest_c_stack", "test/buildtest_c_store", "test/buildtest_c_symhacks", + "test/buildtest_c_thread", "test/buildtest_c_tls1", "test/buildtest_c_ts", "test/buildtest_c_txt_db", "test/buildtest_c_types", "test/buildtest_c_whrlpool", + "test/byteorder_test", + "test/ca_internals_test", "test/casttest", "test/chacha_internal_test", "test/cipher_overhead_test", @@ -20424,6 +23790,7 @@ our %unified_info = ( "test/curve448_internal_test", "test/d2i_test", "test/danetest", + "test/decoder_propq_test", "test/defltfips_test", "test/destest", "test/dhtest", @@ -20448,9 +23815,12 @@ our %unified_info = ( "test/evp_kdf_test", "test/evp_libctx_test", "test/evp_pkey_ctx_new_from_name", + "test/evp_pkey_dhkem_test", "test/evp_pkey_dparams_test", "test/evp_pkey_provided_test", + "test/evp_skey_test", "test/evp_test", + "test/evp_xof_test", "test/exdatatest", "test/exptest", "test/ext_internal_test", @@ -20460,21 +23830,29 @@ our %unified_info = ( "test/gmdifftest", "test/hexstr_test", "test/hmactest", + "test/hpke_test", "test/http_test", "test/ideatest", "test/igetest", + "test/json_test", "test/keymgmt_internal_test", "test/lhash_test", + "test/list_test", "test/localetest", "test/mdc2_internal_test", "test/mdc2test", + "test/membio_test", "test/memleaktest", + "test/ml_dsa_test", + "test/ml_kem_evp_extra_test", + "test/ml_kem_internal_test", "test/modes_internal_test", "test/namemap_internal_test", "test/nodefltctxtest", "test/ocspapitest", "test/ossl_store_test", "test/packettest", + "test/pairwise_fail_test", "test/param_build_test", "test/params_api_test", "test/params_conversion_test", @@ -20483,36 +23861,65 @@ our %unified_info = ( "test/pbetest", "test/pem_read_depr_test", "test/pemtest", + "test/pkcs12_api_test", "test/pkcs12_format_test", "test/pkcs7_test", "test/pkey_meth_kdf_test", "test/pkey_meth_test", "test/poly1305_internal_test", + "test/priority_queue_test", "test/property_test", "test/prov_config_test", "test/provfetchtest", + "test/provider_default_search_path_test", "test/provider_fallback_test", "test/provider_internal_test", "test/provider_pkey_test", "test/provider_status_test", "test/provider_test", "test/punycode_test", + "test/quic_ackm_test", + "test/quic_cc_test", + "test/quic_cfq_test", + "test/quic_client_test", + "test/quic_fc_test", + "test/quic_fifd_test", + "test/quic_lcidm_test", + "test/quic_multistream_test", + "test/quic_newcid_test", + "test/quic_qlog_test", + "test/quic_radix_test", + "test/quic_rcidm_test", + "test/quic_record_test", + "test/quic_srt_gen_test", + "test/quic_srtm_test", + "test/quic_stream_test", + "test/quic_tserver_test", + "test/quic_txp_test", + "test/quic_txpim_test", + "test/quic_wire_test", + "test/quicapitest", + "test/quicfaultstest", "test/rand_status_test", "test/rand_test", "test/rc2test", "test/rc4test", "test/rc5test", - "test/rdrand_sanitytest", + "test/rdcpu_sanitytest", "test/recordlentest", + "test/rpktest", "test/rsa_complex", "test/rsa_mp_test", "test/rsa_sp800_56b_test", "test/rsa_test", + "test/rsa_x931_test", + "test/safe_math_test", "test/sanitytest", "test/secmemtest", "test/servername_test", "test/sha_test", "test/siphash_internal_test", + "test/slh_dsa_test", "test/sm2_internal_test", "test/sm3_internal_test", "test/sm4_internal_test", @@ -20520,6 +23927,7 @@ our %unified_info = ( "test/srptest", "test/ssl_cert_table_internal_test", "test/ssl_ctx_test", + "test/ssl_handshake_rtt_test", "test/ssl_old_test", "test/ssl_test", "test/ssl_test_ctx_test", @@ -20527,13 +23935,17 @@ our %unified_info = ( "test/sslbuffertest", "test/sslcorrupttest", "test/stack_test", + "test/strtoultest", "test/sysdefaulttest", "test/test_test", + "test/threadpool_test", "test/threadstest", "test/threadstest_fips", "test/time_offset_test", + "test/time_test", "test/tls13ccstest", "test/tls13encryptiontest", + "test/tls13groupselection_test", "test/trace_api_test", "test/uitest", "test/upcallstest", @@ -20543,9 +23955,13 @@ our %unified_info = ( "test/verify_extra_test", "test/versions", "test/wpackettest", + "test/x509_acert_test", "test/x509_check_cert_pkey_test", "test/x509_dup_cert_test", "test/x509_internal_test", + "test/x509_load_cert_file_test", + "test/x509_req_test", + "test/x509_test", "test/x509_time_test", "test/x509aux" ], @@ -20560,6 +23976,33 @@ our %unified_info = ( "apps/CA.pl" => [ "apps/CA.pl.in" ], + "apps/ca_internals_test-bin-ca.o" => [ + "apps/ca.c" + ], + "apps/lib/ca_internals_test-bin-app_libctx.o" => [ + "apps/lib/app_libctx.c" + ], + "apps/lib/ca_internals_test-bin-app_provider.o" => [ + "apps/lib/app_provider.c" + ], + "apps/lib/ca_internals_test-bin-app_rand.o" => [ + "apps/lib/app_rand.c" + ], + "apps/lib/ca_internals_test-bin-app_x509.o" => [ + "apps/lib/app_x509.c" + ], + "apps/lib/ca_internals_test-bin-apps.o" => [ + "apps/lib/apps.c" + ], + "apps/lib/ca_internals_test-bin-apps_ui.o" => [ + "apps/lib/apps_ui.c" + ], + "apps/lib/ca_internals_test-bin-engine.o" => [ + "apps/lib/engine.c" + ], + "apps/lib/ca_internals_test-bin-fmt.o" => [ + "apps/lib/fmt.c" + ], "apps/lib/cmp_client_test-bin-cmp_mock_srv.o" => [ "apps/lib/cmp_mock_srv.c" ], @@ -20581,6 +24024,9 @@ our %unified_info = ( "apps/lib/libapps-lib-apps.o" => [ "apps/lib/apps.c" ], + "apps/lib/libapps-lib-apps_opt_printf.o" => [ + "apps/lib/apps_opt_printf.c" + ], "apps/lib/libapps-lib-apps_ui.o" => [ "apps/lib/apps_ui.c" ], @@ -20599,6 +24045,9 @@ our %unified_info = ( "apps/lib/libapps-lib-http_server.o" => [ "apps/lib/http_server.c" ], + "apps/lib/libapps-lib-log.o" => [ + "apps/lib/log.c" + ], "apps/lib/libapps-lib-names.o" => [ "apps/lib/names.c" ], @@ -20636,12 +24085,14 @@ our %unified_info = ( "apps/lib/libapps-lib-app_rand.o", "apps/lib/libapps-lib-app_x509.o", "apps/lib/libapps-lib-apps.o", + "apps/lib/libapps-lib-apps_opt_printf.o", "apps/lib/libapps-lib-apps_ui.o", "apps/lib/libapps-lib-columns.o", "apps/lib/libapps-lib-engine.o", "apps/lib/libapps-lib-engine_loader.o", "apps/lib/libapps-lib-fmt.o", "apps/lib/libapps-lib-http_server.o", + "apps/lib/libapps-lib-log.o", "apps/lib/libapps-lib-names.o", "apps/lib/libapps-lib-opt.o", "apps/lib/libapps-lib-s_cb.o", @@ -20697,6 +24148,7 @@ our %unified_info = ( "apps/openssl-bin-s_server.o", "apps/openssl-bin-s_time.o", "apps/openssl-bin-sess_id.o", + "apps/openssl-bin-skeyutl.o", "apps/openssl-bin-smime.o", "apps/openssl-bin-speed.o", "apps/openssl-bin-spkac.o", @@ -20845,6 +24297,9 @@ our %unified_info = ( "apps/openssl-bin-sess_id.o" => [ "apps/sess_id.c" ], + "apps/openssl-bin-skeyutl.o" => [ + "apps/skeyutl.c" + ], "apps/openssl-bin-smime.o" => [ "apps/smime.c" ], @@ -20908,6 +24363,9 @@ our %unified_info = ( "crypto/aes/libcrypto-lib-aesni-x86_64.o" => [ "crypto/aes/aesni-x86_64.s" ], + "crypto/aes/libcrypto-lib-aesni-xts-avx512.o" => [ + "crypto/aes/aesni-xts-avx512.s" + ], "crypto/aes/libcrypto-lib-bsaes-x86_64.o" => [ "crypto/aes/bsaes-x86_64.s" ], @@ -20935,6 +24393,9 @@ our %unified_info = ( "crypto/aes/libfips-lib-aesni-x86_64.o" => [ "crypto/aes/aesni-x86_64.s" ], + "crypto/aes/libfips-lib-aesni-xts-avx512.o" => [ + "crypto/aes/aesni-xts-avx512.s" + ], "crypto/aes/libfips-lib-bsaes-x86_64.o" => [ "crypto/aes/bsaes-x86_64.s" ], @@ -20944,6 +24405,12 @@ our %unified_info = ( "crypto/aria/libcrypto-lib-aria.o" => [ "crypto/aria/aria.c" ], + "crypto/asn1/asn1_time_test-bin-a_time.o" => [ + "crypto/asn1/a_time.c" + ], + "crypto/asn1/ca_internals_test-bin-a_time.o" => [ + "crypto/asn1/a_time.c" + ], "crypto/asn1/libcrypto-lib-a_bitstr.o" => [ "crypto/asn1/a_bitstr.c" ], @@ -21136,6 +24603,9 @@ our %unified_info = ( "crypto/asn1/libcrypto-lib-x_val.o" => [ "crypto/asn1/x_val.c" ], + "crypto/asn1_time_test-bin-ctype.o" => [ + "crypto/ctype.c" + ], "crypto/async/arch/libcrypto-lib-async_null.o" => [ "crypto/async/arch/async_null.c" ], @@ -21229,6 +24699,9 @@ our %unified_info = ( "crypto/bio/libcrypto-lib-bss_dgram.o" => [ "crypto/bio/bss_dgram.c" ], + "crypto/bio/libcrypto-lib-bss_dgram_pair.o" => [ + "crypto/bio/bss_dgram_pair.c" + ], "crypto/bio/libcrypto-lib-bss_fd.o" => [ "crypto/bio/bss_fd.c" ], @@ -21349,12 +24822,27 @@ our %unified_info = ( "crypto/bn/libcrypto-lib-bn_x931p.o" => [ "crypto/bn/bn_x931p.c" ], + "crypto/bn/libcrypto-lib-rsaz-2k-avx512.o" => [ + "crypto/bn/rsaz-2k-avx512.s" + ], + "crypto/bn/libcrypto-lib-rsaz-2k-avxifma.o" => [ + "crypto/bn/rsaz-2k-avxifma.s" + ], + "crypto/bn/libcrypto-lib-rsaz-3k-avx512.o" => [ + "crypto/bn/rsaz-3k-avx512.s" + ], + "crypto/bn/libcrypto-lib-rsaz-3k-avxifma.o" => [ + "crypto/bn/rsaz-3k-avxifma.s" + ], + "crypto/bn/libcrypto-lib-rsaz-4k-avx512.o" => [ + "crypto/bn/rsaz-4k-avx512.s" + ], + "crypto/bn/libcrypto-lib-rsaz-4k-avxifma.o" => [ + "crypto/bn/rsaz-4k-avxifma.s" + ], "crypto/bn/libcrypto-lib-rsaz-avx2.o" => [ "crypto/bn/rsaz-avx2.s" ], - "crypto/bn/libcrypto-lib-rsaz-avx512.o" => [ - "crypto/bn/rsaz-avx512.s" - ], "crypto/bn/libcrypto-lib-rsaz-x86_64.o" => [ "crypto/bn/rsaz-x86_64.s" ], @@ -21457,12 +24945,27 @@ our %unified_info = ( "crypto/bn/libfips-lib-bn_word.o" => [ "crypto/bn/bn_word.c" ], + "crypto/bn/libfips-lib-rsaz-2k-avx512.o" => [ + "crypto/bn/rsaz-2k-avx512.s" + ], + "crypto/bn/libfips-lib-rsaz-2k-avxifma.o" => [ + "crypto/bn/rsaz-2k-avxifma.s" + ], + "crypto/bn/libfips-lib-rsaz-3k-avx512.o" => [ + "crypto/bn/rsaz-3k-avx512.s" + ], + "crypto/bn/libfips-lib-rsaz-3k-avxifma.o" => [ + "crypto/bn/rsaz-3k-avxifma.s" + ], + "crypto/bn/libfips-lib-rsaz-4k-avx512.o" => [ + "crypto/bn/rsaz-4k-avx512.s" + ], + "crypto/bn/libfips-lib-rsaz-4k-avxifma.o" => [ + "crypto/bn/rsaz-4k-avxifma.s" + ], "crypto/bn/libfips-lib-rsaz-avx2.o" => [ "crypto/bn/rsaz-avx2.s" ], - "crypto/bn/libfips-lib-rsaz-avx512.o" => [ - "crypto/bn/rsaz-avx512.s" - ], "crypto/bn/libfips-lib-rsaz-x86_64.o" => [ "crypto/bn/rsaz-x86_64.s" ], @@ -21490,6 +24993,9 @@ our %unified_info = ( "crypto/buffer/libfips-lib-buffer.o" => [ "crypto/buffer/buffer.c" ], + "crypto/ca_internals_test-bin-ctype.o" => [ + "crypto/ctype.c" + ], "crypto/camellia/libcrypto-lib-cmll-x86_64.o" => [ "crypto/camellia/cmll-x86_64.s" ], @@ -21544,6 +25050,9 @@ our %unified_info = ( "crypto/cmp/libcrypto-lib-cmp_err.o" => [ "crypto/cmp/cmp_err.c" ], + "crypto/cmp/libcrypto-lib-cmp_genm.o" => [ + "crypto/cmp/cmp_genm.c" + ], "crypto/cmp/libcrypto-lib-cmp_hdr.o" => [ "crypto/cmp/cmp_hdr.c" ], @@ -22237,9 +25746,15 @@ our %unified_info = ( "crypto/err/libcrypto-lib-err_blocks.o" => [ "crypto/err/err_blocks.c" ], + "crypto/err/libcrypto-lib-err_mark.o" => [ + "crypto/err/err_mark.c" + ], "crypto/err/libcrypto-lib-err_prn.o" => [ "crypto/err/err_prn.c" ], + "crypto/err/libcrypto-lib-err_save.o" => [ + "crypto/err/err_save.c" + ], "crypto/ess/libcrypto-lib-ess_asn1.o" => [ "crypto/ess/ess_asn1.c" ], @@ -22486,9 +26001,15 @@ our %unified_info = ( "crypto/evp/libcrypto-lib-pmeth_lib.o" => [ "crypto/evp/pmeth_lib.c" ], + "crypto/evp/libcrypto-lib-s_lib.o" => [ + "crypto/evp/s_lib.c" + ], "crypto/evp/libcrypto-lib-signature.o" => [ "crypto/evp/signature.c" ], + "crypto/evp/libcrypto-lib-skeymgmt_meth.o" => [ + "crypto/evp/skeymgmt_meth.c" + ], "crypto/evp/libfips-lib-asymcipher.o" => [ "crypto/evp/asymcipher.c" ], @@ -22534,9 +26055,6 @@ our %unified_info = ( "crypto/evp/libfips-lib-keymgmt_meth.o" => [ "crypto/evp/keymgmt_meth.c" ], - "crypto/evp/libfips-lib-m_sigver.o" => [ - "crypto/evp/m_sigver.c" - ], "crypto/evp/libfips-lib-mac_lib.o" => [ "crypto/evp/mac_lib.c" ], @@ -22555,9 +26073,15 @@ our %unified_info = ( "crypto/evp/libfips-lib-pmeth_lib.o" => [ "crypto/evp/pmeth_lib.c" ], + "crypto/evp/libfips-lib-s_lib.o" => [ + "crypto/evp/s_lib.c" + ], "crypto/evp/libfips-lib-signature.o" => [ "crypto/evp/signature.c" ], + "crypto/evp/libfips-lib-skeymgmt_meth.o" => [ + "crypto/evp/skeymgmt_meth.c" + ], "crypto/ffc/libcrypto-lib-ffc_backend.o" => [ "crypto/ffc/ffc_backend.c" ], @@ -22600,12 +26124,30 @@ our %unified_info = ( "crypto/ffc/libfips-lib-ffc_params_validate.o" => [ "crypto/ffc/ffc_params_validate.c" ], + "crypto/hashtable/libcrypto-lib-hashfunc.o" => [ + "crypto/hashtable/hashfunc.c" + ], + "crypto/hashtable/libcrypto-lib-hashtable.o" => [ + "crypto/hashtable/hashtable.c" + ], + "crypto/hashtable/libfips-lib-hashfunc.o" => [ + "crypto/hashtable/hashfunc.c" + ], + "crypto/hashtable/libfips-lib-hashtable.o" => [ + "crypto/hashtable/hashtable.c" + ], "crypto/hmac/libcrypto-lib-hmac.o" => [ "crypto/hmac/hmac.c" ], "crypto/hmac/libfips-lib-hmac.o" => [ "crypto/hmac/hmac.c" ], + "crypto/hpke/libcrypto-lib-hpke.o" => [ + "crypto/hpke/hpke.c" + ], + "crypto/hpke/libcrypto-lib-hpke_util.o" => [ + "crypto/hpke/hpke_util.c" + ], "crypto/http/libcrypto-lib-http_client.o" => [ "crypto/http/http_client.c" ], @@ -22648,6 +26190,9 @@ our %unified_info = ( "crypto/libcrypto-lib-bsearch.o" => [ "crypto/bsearch.c" ], + "crypto/libcrypto-lib-comp_methods.o" => [ + "crypto/comp_methods.c" + ], "crypto/libcrypto-lib-context.o" => [ "crypto/context.c" ], @@ -22675,9 +26220,15 @@ our %unified_info = ( "crypto/libcrypto-lib-cversion.o" => [ "crypto/cversion.c" ], + "crypto/libcrypto-lib-defaults.o" => [ + "crypto/defaults.c" + ], "crypto/libcrypto-lib-der_writer.o" => [ "crypto/der_writer.c" ], + "crypto/libcrypto-lib-deterministic_nonce.o" => [ + "crypto/deterministic_nonce.c" + ], "crypto/libcrypto-lib-ebcdic.o" => [ "crypto/ebcdic.c" ], @@ -22687,6 +26238,9 @@ our %unified_info = ( "crypto/libcrypto-lib-getenv.o" => [ "crypto/getenv.c" ], + "crypto/libcrypto-lib-indicator_core.o" => [ + "crypto/indicator_core.c" + ], "crypto/libcrypto-lib-info.o" => [ "crypto/info.c" ], @@ -22735,6 +26289,9 @@ our %unified_info = ( "crypto/libcrypto-lib-params_from_text.o" => [ "crypto/params_from_text.c" ], + "crypto/libcrypto-lib-params_idx.o" => [ + "crypto/params_idx.c" + ], "crypto/libcrypto-lib-passphrase.o" => [ "crypto/passphrase.c" ], @@ -22756,12 +26313,21 @@ our %unified_info = ( "crypto/libcrypto-lib-punycode.o" => [ "crypto/punycode.c" ], + "crypto/libcrypto-lib-quic_vlint.o" => [ + "crypto/quic_vlint.c" + ], "crypto/libcrypto-lib-self_test_core.o" => [ "crypto/self_test_core.c" ], + "crypto/libcrypto-lib-sleep.o" => [ + "crypto/sleep.c" + ], "crypto/libcrypto-lib-sparse_array.o" => [ "crypto/sparse_array.c" ], + "crypto/libcrypto-lib-ssl_err.o" => [ + "crypto/ssl_err.c" + ], "crypto/libcrypto-lib-threads_lib.o" => [ "crypto/threads_lib.c" ], @@ -22774,6 +26340,9 @@ our %unified_info = ( "crypto/libcrypto-lib-threads_win.o" => [ "crypto/threads_win.c" ], + "crypto/libcrypto-lib-time.o" => [ + "crypto/time.c" + ], "crypto/libcrypto-lib-trace.o" => [ "crypto/trace.c" ], @@ -22840,6 +26409,9 @@ our %unified_info = ( "crypto/libfips-lib-params_from_text.o" => [ "crypto/params_from_text.c" ], + "crypto/libfips-lib-params_idx.o" => [ + "crypto/params_idx.c" + ], "crypto/libfips-lib-provider_core.o" => [ "crypto/provider_core.c" ], @@ -22864,6 +26436,9 @@ our %unified_info = ( "crypto/libfips-lib-threads_win.o" => [ "crypto/threads_win.c" ], + "crypto/libfips-lib-time.o" => [ + "crypto/time.c" + ], "crypto/libfips-lib-x86_64cpuid.o" => [ "crypto/x86_64cpuid.s" ], @@ -22891,6 +26466,63 @@ our %unified_info = ( "crypto/mdc2/libcrypto-lib-mdc2dgst.o" => [ "crypto/mdc2/mdc2dgst.c" ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_encoders.o" => [ + "crypto/ml_dsa/ml_dsa_encoders.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key.o" => [ + "crypto/ml_dsa/ml_dsa_key.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key_compress.o" => [ + "crypto/ml_dsa/ml_dsa_key_compress.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_matrix.o" => [ + "crypto/ml_dsa/ml_dsa_matrix.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_ntt.o" => [ + "crypto/ml_dsa/ml_dsa_ntt.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_params.o" => [ + "crypto/ml_dsa/ml_dsa_params.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sample.o" => [ + "crypto/ml_dsa/ml_dsa_sample.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sign.o" => [ + "crypto/ml_dsa/ml_dsa_sign.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_encoders.o" => [ + "crypto/ml_dsa/ml_dsa_encoders.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_key.o" => [ + "crypto/ml_dsa/ml_dsa_key.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_key_compress.o" => [ + "crypto/ml_dsa/ml_dsa_key_compress.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_matrix.o" => [ + "crypto/ml_dsa/ml_dsa_matrix.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_ntt.o" => [ + "crypto/ml_dsa/ml_dsa_ntt.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_params.o" => [ + "crypto/ml_dsa/ml_dsa_params.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_sample.o" => [ + "crypto/ml_dsa/ml_dsa_sample.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_sign.o" => [ + "crypto/ml_dsa/ml_dsa_sign.c" + ], + "crypto/ml_kem/libcrypto-lib-ml_kem.o" => [ + "crypto/ml_kem/ml_kem.c" + ], + "crypto/ml_kem/libfips-lib-ml_kem.o" => [ + "crypto/ml_kem/ml_kem.c" + ], + "crypto/modes/libcrypto-lib-aes-gcm-avx512.o" => [ + "crypto/modes/aes-gcm-avx512.s" + ], "crypto/modes/libcrypto-lib-aesni-gcm-x86_64.o" => [ "crypto/modes/aesni-gcm-x86_64.s" ], @@ -22930,6 +26562,12 @@ our %unified_info = ( "crypto/modes/libcrypto-lib-xts128.o" => [ "crypto/modes/xts128.c" ], + "crypto/modes/libcrypto-lib-xts128gb.o" => [ + "crypto/modes/xts128gb.c" + ], + "crypto/modes/libfips-lib-aes-gcm-avx512.o" => [ + "crypto/modes/aes-gcm-avx512.s" + ], "crypto/modes/libfips-lib-aesni-gcm-x86_64.o" => [ "crypto/modes/aesni-gcm-x86_64.s" ], @@ -22960,6 +26598,9 @@ our %unified_info = ( "crypto/modes/libfips-lib-xts128.o" => [ "crypto/modes/xts128.c" ], + "crypto/modes/libfips-lib-xts128gb.o" => [ + "crypto/modes/xts128gb.c" + ], "crypto/objects/libcrypto-lib-o_names.o" => [ "crypto/objects/o_names.c" ], @@ -23005,6 +26646,9 @@ our %unified_info = ( "crypto/ocsp/libcrypto-lib-v3_ocsp.o" => [ "crypto/ocsp/v3_ocsp.c" ], + "crypto/packettest-bin-quic_vlint.o" => [ + "crypto/quic_vlint.c" + ], "crypto/pem/libcrypto-lib-pem_all.o" => [ "crypto/pem/pem_all.c" ], @@ -23167,6 +26811,9 @@ our %unified_info = ( "crypto/rand/libcrypto-lib-rand_pool.o" => [ "crypto/rand/rand_pool.c" ], + "crypto/rand/libcrypto-lib-rand_uniform.o" => [ + "crypto/rand/rand_uniform.c" + ], "crypto/rand/libcrypto-lib-randfile.o" => [ "crypto/rand/randfile.c" ], @@ -23410,6 +27057,66 @@ our %unified_info = ( "crypto/siphash/libcrypto-lib-siphash.o" => [ "crypto/siphash/siphash.c" ], + "crypto/slh_dsa/libcrypto-lib-slh_adrs.o" => [ + "crypto/slh_dsa/slh_adrs.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_dsa.o" => [ + "crypto/slh_dsa/slh_dsa.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_dsa_hash_ctx.o" => [ + "crypto/slh_dsa/slh_dsa_hash_ctx.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_dsa_key.o" => [ + "crypto/slh_dsa/slh_dsa_key.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_fors.o" => [ + "crypto/slh_dsa/slh_fors.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_hash.o" => [ + "crypto/slh_dsa/slh_hash.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_hypertree.o" => [ + "crypto/slh_dsa/slh_hypertree.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_params.o" => [ + "crypto/slh_dsa/slh_params.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_wots.o" => [ + "crypto/slh_dsa/slh_wots.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_xmss.o" => [ + "crypto/slh_dsa/slh_xmss.c" + ], + "crypto/slh_dsa/libfips-lib-slh_adrs.o" => [ + "crypto/slh_dsa/slh_adrs.c" + ], + "crypto/slh_dsa/libfips-lib-slh_dsa.o" => [ + "crypto/slh_dsa/slh_dsa.c" + ], + "crypto/slh_dsa/libfips-lib-slh_dsa_hash_ctx.o" => [ + "crypto/slh_dsa/slh_dsa_hash_ctx.c" + ], + "crypto/slh_dsa/libfips-lib-slh_dsa_key.o" => [ + "crypto/slh_dsa/slh_dsa_key.c" + ], + "crypto/slh_dsa/libfips-lib-slh_fors.o" => [ + "crypto/slh_dsa/slh_fors.c" + ], + "crypto/slh_dsa/libfips-lib-slh_hash.o" => [ + "crypto/slh_dsa/slh_hash.c" + ], + "crypto/slh_dsa/libfips-lib-slh_hypertree.o" => [ + "crypto/slh_dsa/slh_hypertree.c" + ], + "crypto/slh_dsa/libfips-lib-slh_params.o" => [ + "crypto/slh_dsa/slh_params.c" + ], + "crypto/slh_dsa/libfips-lib-slh_wots.o" => [ + "crypto/slh_dsa/slh_wots.c" + ], + "crypto/slh_dsa/libfips-lib-slh_xmss.o" => [ + "crypto/slh_dsa/slh_xmss.c" + ], "crypto/sm2/libcrypto-lib-sm2_crypt.o" => [ "crypto/sm2/sm2_crypt.c" ], @@ -23464,6 +27171,42 @@ our %unified_info = ( "crypto/store/libcrypto-lib-store_strings.o" => [ "crypto/store/store_strings.c" ], + "crypto/thread/arch/libcrypto-lib-thread_none.o" => [ + "crypto/thread/arch/thread_none.c" + ], + "crypto/thread/arch/libcrypto-lib-thread_posix.o" => [ + "crypto/thread/arch/thread_posix.c" + ], + "crypto/thread/arch/libcrypto-lib-thread_win.o" => [ + "crypto/thread/arch/thread_win.c" + ], + "crypto/thread/arch/libfips-lib-thread_none.o" => [ + "crypto/thread/arch/thread_none.c" + ], + "crypto/thread/arch/libfips-lib-thread_posix.o" => [ + "crypto/thread/arch/thread_posix.c" + ], + "crypto/thread/arch/libfips-lib-thread_win.o" => [ + "crypto/thread/arch/thread_win.c" + ], + "crypto/thread/libcrypto-lib-api.o" => [ + "crypto/thread/api.c" + ], + "crypto/thread/libcrypto-lib-arch.o" => [ + "crypto/thread/arch.c" + ], + "crypto/thread/libcrypto-lib-internal.o" => [ + "crypto/thread/internal.c" + ], + "crypto/thread/libfips-lib-api.o" => [ + "crypto/thread/api.c" + ], + "crypto/thread/libfips-lib-arch.o" => [ + "crypto/thread/arch.c" + ], + "crypto/thread/libfips-lib-internal.o" => [ + "crypto/thread/internal.c" + ], "crypto/ts/libcrypto-lib-ts_asn1.o" => [ "crypto/ts/ts_asn1.c" ], @@ -23548,6 +27291,9 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-pcy_tree.o" => [ "crypto/x509/pcy_tree.c" ], + "crypto/x509/libcrypto-lib-t_acert.o" => [ + "crypto/x509/t_acert.c" + ], "crypto/x509/libcrypto-lib-t_crl.o" => [ "crypto/x509/t_crl.c" ], @@ -23557,6 +27303,12 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-t_x509.o" => [ "crypto/x509/t_x509.c" ], + "crypto/x509/libcrypto-lib-v3_aaa.o" => [ + "crypto/x509/v3_aaa.c" + ], + "crypto/x509/libcrypto-lib-v3_ac_tgt.o" => [ + "crypto/x509/v3_ac_tgt.c" + ], "crypto/x509/libcrypto-lib-v3_addr.o" => [ "crypto/x509/v3_addr.c" ], @@ -23572,6 +27324,21 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_asid.o" => [ "crypto/x509/v3_asid.c" ], + "crypto/x509/libcrypto-lib-v3_attrdesc.o" => [ + "crypto/x509/v3_attrdesc.c" + ], + "crypto/x509/libcrypto-lib-v3_attrmap.o" => [ + "crypto/x509/v3_attrmap.c" + ], + "crypto/x509/libcrypto-lib-v3_audit_id.o" => [ + "crypto/x509/v3_audit_id.c" + ], + "crypto/x509/libcrypto-lib-v3_authattid.o" => [ + "crypto/x509/v3_authattid.c" + ], + "crypto/x509/libcrypto-lib-v3_battcons.o" => [ + "crypto/x509/v3_battcons.c" + ], "crypto/x509/libcrypto-lib-v3_bcons.o" => [ "crypto/x509/v3_bcons.c" ], @@ -23596,15 +27363,24 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_genn.o" => [ "crypto/x509/v3_genn.c" ], + "crypto/x509/libcrypto-lib-v3_group_ac.o" => [ + "crypto/x509/v3_group_ac.c" + ], "crypto/x509/libcrypto-lib-v3_ia5.o" => [ "crypto/x509/v3_ia5.c" ], + "crypto/x509/libcrypto-lib-v3_ind_iss.o" => [ + "crypto/x509/v3_ind_iss.c" + ], "crypto/x509/libcrypto-lib-v3_info.o" => [ "crypto/x509/v3_info.c" ], "crypto/x509/libcrypto-lib-v3_int.o" => [ "crypto/x509/v3_int.c" ], + "crypto/x509/libcrypto-lib-v3_iobo.o" => [ + "crypto/x509/v3_iobo.c" + ], "crypto/x509/libcrypto-lib-v3_ist.o" => [ "crypto/x509/v3_ist.c" ], @@ -23614,6 +27390,12 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_ncons.o" => [ "crypto/x509/v3_ncons.c" ], + "crypto/x509/libcrypto-lib-v3_no_ass.o" => [ + "crypto/x509/v3_no_ass.c" + ], + "crypto/x509/libcrypto-lib-v3_no_rev_avail.o" => [ + "crypto/x509/v3_no_rev_avail.c" + ], "crypto/x509/libcrypto-lib-v3_pci.o" => [ "crypto/x509/v3_pci.c" ], @@ -23635,18 +27417,36 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_purp.o" => [ "crypto/x509/v3_purp.c" ], + "crypto/x509/libcrypto-lib-v3_rolespec.o" => [ + "crypto/x509/v3_rolespec.c" + ], "crypto/x509/libcrypto-lib-v3_san.o" => [ "crypto/x509/v3_san.c" ], + "crypto/x509/libcrypto-lib-v3_sda.o" => [ + "crypto/x509/v3_sda.c" + ], + "crypto/x509/libcrypto-lib-v3_single_use.o" => [ + "crypto/x509/v3_single_use.c" + ], "crypto/x509/libcrypto-lib-v3_skid.o" => [ "crypto/x509/v3_skid.c" ], + "crypto/x509/libcrypto-lib-v3_soa_id.o" => [ + "crypto/x509/v3_soa_id.c" + ], "crypto/x509/libcrypto-lib-v3_sxnet.o" => [ "crypto/x509/v3_sxnet.c" ], + "crypto/x509/libcrypto-lib-v3_timespec.o" => [ + "crypto/x509/v3_timespec.c" + ], "crypto/x509/libcrypto-lib-v3_tlsf.o" => [ "crypto/x509/v3_tlsf.c" ], + "crypto/x509/libcrypto-lib-v3_usernotice.o" => [ + "crypto/x509/v3_usernotice.c" + ], "crypto/x509/libcrypto-lib-v3_utf8.o" => [ "crypto/x509/v3_utf8.c" ], @@ -23656,6 +27456,9 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3err.o" => [ "crypto/x509/v3err.c" ], + "crypto/x509/libcrypto-lib-x509_acert.o" => [ + "crypto/x509/x509_acert.c" + ], "crypto/x509/libcrypto-lib-x509_att.o" => [ "crypto/x509/x509_att.c" ], @@ -23707,6 +27510,9 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x509_vpm.o" => [ "crypto/x509/x509_vpm.c" ], + "crypto/x509/libcrypto-lib-x509aset.o" => [ + "crypto/x509/x509aset.c" + ], "crypto/x509/libcrypto-lib-x509cset.o" => [ "crypto/x509/x509cset.c" ], @@ -23734,6 +27540,9 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x_exten.o" => [ "crypto/x509/x_exten.c" ], + "crypto/x509/libcrypto-lib-x_ietfatt.o" => [ + "crypto/x509/x_ietfatt.c" + ], "crypto/x509/libcrypto-lib-x_name.o" => [ "crypto/x509/x_name.c" ], @@ -23758,6 +27567,16 @@ our %unified_info = ( "engines/libcrypto-lib-e_padlock.o" => [ "engines/e_padlock.c" ], + "fuzz/acert-test" => [ + "fuzz/acert-test-bin-acert.o", + "fuzz/acert-test-bin-test-corpus.o" + ], + "fuzz/acert-test-bin-acert.o" => [ + "fuzz/acert.c" + ], + "fuzz/acert-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], "fuzz/asn1-test" => [ "fuzz/asn1-test-bin-asn1.o", "fuzz/asn1-test-bin-fuzz_rand.o", @@ -23870,6 +27689,190 @@ our %unified_info = ( "fuzz/ct-test-bin-test-corpus.o" => [ "fuzz/test-corpus.c" ], + "fuzz/decoder-test" => [ + "fuzz/decoder-test-bin-decoder.o", + "fuzz/decoder-test-bin-fuzz_rand.o", + "fuzz/decoder-test-bin-test-corpus.o" + ], + "fuzz/decoder-test-bin-decoder.o" => [ + "fuzz/decoder.c" + ], + "fuzz/decoder-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/decoder-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/dtlsclient-test" => [ + "fuzz/dtlsclient-test-bin-dtlsclient.o", + "fuzz/dtlsclient-test-bin-fuzz_rand.o", + "fuzz/dtlsclient-test-bin-test-corpus.o" + ], + "fuzz/dtlsclient-test-bin-dtlsclient.o" => [ + "fuzz/dtlsclient.c" + ], + "fuzz/dtlsclient-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/dtlsclient-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/dtlsserver-test" => [ + "fuzz/dtlsserver-test-bin-dtlsserver.o", + "fuzz/dtlsserver-test-bin-fuzz_rand.o", + "fuzz/dtlsserver-test-bin-test-corpus.o" + ], + "fuzz/dtlsserver-test-bin-dtlsserver.o" => [ + "fuzz/dtlsserver.c" + ], + "fuzz/dtlsserver-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/dtlsserver-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/hashtable-test" => [ + "fuzz/hashtable-test-bin-fuzz_rand.o", + "fuzz/hashtable-test-bin-hashtable.o", + "fuzz/hashtable-test-bin-test-corpus.o" + ], + "fuzz/hashtable-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/hashtable-test-bin-hashtable.o" => [ + "fuzz/hashtable.c" + ], + "fuzz/hashtable-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/ml-dsa-test" => [ + "fuzz/ml-dsa-test-bin-fuzz_rand.o", + "fuzz/ml-dsa-test-bin-ml-dsa.o", + "fuzz/ml-dsa-test-bin-test-corpus.o" + ], + "fuzz/ml-dsa-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/ml-dsa-test-bin-ml-dsa.o" => [ + "fuzz/ml-dsa.c" + ], + "fuzz/ml-dsa-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/ml-kem-test" => [ + "fuzz/ml-kem-test-bin-fuzz_rand.o", + "fuzz/ml-kem-test-bin-ml-kem.o", + "fuzz/ml-kem-test-bin-test-corpus.o" + ], + "fuzz/ml-kem-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/ml-kem-test-bin-ml-kem.o" => [ + "fuzz/ml-kem.c" + ], + "fuzz/ml-kem-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/pem-test" => [ + "fuzz/pem-test-bin-pem.o", + "fuzz/pem-test-bin-test-corpus.o" + ], + "fuzz/pem-test-bin-pem.o" => [ + "fuzz/pem.c" + ], + "fuzz/pem-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/provider-test" => [ + "fuzz/provider-test-bin-provider.o", + "fuzz/provider-test-bin-test-corpus.o" + ], + "fuzz/provider-test-bin-provider.o" => [ + "fuzz/provider.c" + ], + "fuzz/provider-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/punycode-test" => [ + "fuzz/punycode-test-bin-punycode.o", + "fuzz/punycode-test-bin-test-corpus.o" + ], + "fuzz/punycode-test-bin-punycode.o" => [ + "fuzz/punycode.c" + ], + "fuzz/punycode-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-client-test" => [ + "fuzz/quic-client-test-bin-fuzz_rand.o", + "fuzz/quic-client-test-bin-quic-client.o", + "fuzz/quic-client-test-bin-test-corpus.o" + ], + "fuzz/quic-client-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-client-test-bin-quic-client.o" => [ + "fuzz/quic-client.c" + ], + "fuzz/quic-client-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-lcidm-test" => [ + "fuzz/quic-lcidm-test-bin-fuzz_rand.o", + "fuzz/quic-lcidm-test-bin-quic-lcidm.o", + "fuzz/quic-lcidm-test-bin-test-corpus.o" + ], + "fuzz/quic-lcidm-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-lcidm-test-bin-quic-lcidm.o" => [ + "fuzz/quic-lcidm.c" + ], + "fuzz/quic-lcidm-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-rcidm-test" => [ + "fuzz/quic-rcidm-test-bin-fuzz_rand.o", + "fuzz/quic-rcidm-test-bin-quic-rcidm.o", + "fuzz/quic-rcidm-test-bin-test-corpus.o" + ], + "fuzz/quic-rcidm-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-rcidm-test-bin-quic-rcidm.o" => [ + "fuzz/quic-rcidm.c" + ], + "fuzz/quic-rcidm-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-server-test" => [ + "fuzz/quic-server-test-bin-fuzz_rand.o", + "fuzz/quic-server-test-bin-quic-server.o", + "fuzz/quic-server-test-bin-test-corpus.o" + ], + "fuzz/quic-server-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-server-test-bin-quic-server.o" => [ + "fuzz/quic-server.c" + ], + "fuzz/quic-server-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-srtm-test" => [ + "fuzz/quic-srtm-test-bin-fuzz_rand.o", + "fuzz/quic-srtm-test-bin-quic-srtm.o", + "fuzz/quic-srtm-test-bin-test-corpus.o" + ], + "fuzz/quic-srtm-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-srtm-test-bin-quic-srtm.o" => [ + "fuzz/quic-srtm.c" + ], + "fuzz/quic-srtm-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], "fuzz/server-test" => [ "fuzz/server-test-bin-fuzz_rand.o", "fuzz/server-test-bin-server.o", @@ -23884,6 +27887,40 @@ our %unified_info = ( "fuzz/server-test-bin-test-corpus.o" => [ "fuzz/test-corpus.c" ], + "fuzz/slh-dsa-test" => [ + "fuzz/slh-dsa-test-bin-fuzz_rand.o", + "fuzz/slh-dsa-test-bin-slh-dsa.o", + "fuzz/slh-dsa-test-bin-test-corpus.o" + ], + "fuzz/slh-dsa-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/slh-dsa-test-bin-slh-dsa.o" => [ + "fuzz/slh-dsa.c" + ], + "fuzz/slh-dsa-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/smime-test" => [ + "fuzz/smime-test-bin-smime.o", + "fuzz/smime-test-bin-test-corpus.o" + ], + "fuzz/smime-test-bin-smime.o" => [ + "fuzz/smime.c" + ], + "fuzz/smime-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/v3name-test" => [ + "fuzz/v3name-test-bin-test-corpus.o", + "fuzz/v3name-test-bin-v3name.o" + ], + "fuzz/v3name-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/v3name-test-bin-v3name.o" => [ + "fuzz/v3name.c" + ], "fuzz/x509-test" => [ "fuzz/x509-test-bin-fuzz_rand.o", "fuzz/x509-test-bin-test-corpus.o", @@ -23910,6 +27947,7 @@ our %unified_info = ( "crypto/aes/libcrypto-lib-aesni-sha1-x86_64.o", "crypto/aes/libcrypto-lib-aesni-sha256-x86_64.o", "crypto/aes/libcrypto-lib-aesni-x86_64.o", + "crypto/aes/libcrypto-lib-aesni-xts-avx512.o", "crypto/aes/libcrypto-lib-bsaes-x86_64.o", "crypto/aes/libcrypto-lib-vpaes-x86_64.o", "crypto/aria/libcrypto-lib-aria.o", @@ -24008,6 +28046,7 @@ our %unified_info = ( "crypto/bio/libcrypto-lib-bss_conn.o", "crypto/bio/libcrypto-lib-bss_core.o", "crypto/bio/libcrypto-lib-bss_dgram.o", + "crypto/bio/libcrypto-lib-bss_dgram_pair.o", "crypto/bio/libcrypto-lib-bss_fd.o", "crypto/bio/libcrypto-lib-bss_file.o", "crypto/bio/libcrypto-lib-bss_log.o", @@ -24048,8 +28087,13 @@ our %unified_info = ( "crypto/bn/libcrypto-lib-bn_srp.o", "crypto/bn/libcrypto-lib-bn_word.o", "crypto/bn/libcrypto-lib-bn_x931p.o", + "crypto/bn/libcrypto-lib-rsaz-2k-avx512.o", + "crypto/bn/libcrypto-lib-rsaz-2k-avxifma.o", + "crypto/bn/libcrypto-lib-rsaz-3k-avx512.o", + "crypto/bn/libcrypto-lib-rsaz-3k-avxifma.o", + "crypto/bn/libcrypto-lib-rsaz-4k-avx512.o", + "crypto/bn/libcrypto-lib-rsaz-4k-avxifma.o", "crypto/bn/libcrypto-lib-rsaz-avx2.o", - "crypto/bn/libcrypto-lib-rsaz-avx512.o", "crypto/bn/libcrypto-lib-rsaz-x86_64.o", "crypto/bn/libcrypto-lib-rsaz_exp.o", "crypto/bn/libcrypto-lib-rsaz_exp_x2.o", @@ -24075,6 +28119,7 @@ our %unified_info = ( "crypto/cmp/libcrypto-lib-cmp_client.o", "crypto/cmp/libcrypto-lib-cmp_ctx.o", "crypto/cmp/libcrypto-lib-cmp_err.o", + "crypto/cmp/libcrypto-lib-cmp_genm.o", "crypto/cmp/libcrypto-lib-cmp_hdr.o", "crypto/cmp/libcrypto-lib-cmp_http.o", "crypto/cmp/libcrypto-lib-cmp_msg.o", @@ -24253,7 +28298,9 @@ our %unified_info = ( "crypto/err/libcrypto-lib-err_all.o", "crypto/err/libcrypto-lib-err_all_legacy.o", "crypto/err/libcrypto-lib-err_blocks.o", + "crypto/err/libcrypto-lib-err_mark.o", "crypto/err/libcrypto-lib-err_prn.o", + "crypto/err/libcrypto-lib-err_save.o", "crypto/ess/libcrypto-lib-ess_asn1.o", "crypto/ess/libcrypto-lib-ess_err.o", "crypto/ess/libcrypto-lib-ess_lib.o", @@ -24336,7 +28383,9 @@ our %unified_info = ( "crypto/evp/libcrypto-lib-pmeth_check.o", "crypto/evp/libcrypto-lib-pmeth_gn.o", "crypto/evp/libcrypto-lib-pmeth_lib.o", + "crypto/evp/libcrypto-lib-s_lib.o", "crypto/evp/libcrypto-lib-signature.o", + "crypto/evp/libcrypto-lib-skeymgmt_meth.o", "crypto/ffc/libcrypto-lib-ffc_backend.o", "crypto/ffc/libcrypto-lib-ffc_dh.o", "crypto/ffc/libcrypto-lib-ffc_key_generate.o", @@ -24344,7 +28393,11 @@ our %unified_info = ( "crypto/ffc/libcrypto-lib-ffc_params.o", "crypto/ffc/libcrypto-lib-ffc_params_generate.o", "crypto/ffc/libcrypto-lib-ffc_params_validate.o", + "crypto/hashtable/libcrypto-lib-hashfunc.o", + "crypto/hashtable/libcrypto-lib-hashtable.o", "crypto/hmac/libcrypto-lib-hmac.o", + "crypto/hpke/libcrypto-lib-hpke.o", + "crypto/hpke/libcrypto-lib-hpke_util.o", "crypto/http/libcrypto-lib-http_client.o", "crypto/http/libcrypto-lib-http_err.o", "crypto/http/libcrypto-lib-http_lib.o", @@ -24358,6 +28411,7 @@ our %unified_info = ( "crypto/lhash/libcrypto-lib-lhash.o", "crypto/libcrypto-lib-asn1_dsa.o", "crypto/libcrypto-lib-bsearch.o", + "crypto/libcrypto-lib-comp_methods.o", "crypto/libcrypto-lib-context.o", "crypto/libcrypto-lib-core_algorithm.o", "crypto/libcrypto-lib-core_fetch.o", @@ -24367,10 +28421,13 @@ our %unified_info = ( "crypto/libcrypto-lib-cryptlib.o", "crypto/libcrypto-lib-ctype.o", "crypto/libcrypto-lib-cversion.o", + "crypto/libcrypto-lib-defaults.o", "crypto/libcrypto-lib-der_writer.o", + "crypto/libcrypto-lib-deterministic_nonce.o", "crypto/libcrypto-lib-ebcdic.o", "crypto/libcrypto-lib-ex_data.o", "crypto/libcrypto-lib-getenv.o", + "crypto/libcrypto-lib-indicator_core.o", "crypto/libcrypto-lib-info.o", "crypto/libcrypto-lib-init.o", "crypto/libcrypto-lib-initthread.o", @@ -24387,6 +28444,7 @@ our %unified_info = ( "crypto/libcrypto-lib-params.o", "crypto/libcrypto-lib-params_dup.o", "crypto/libcrypto-lib-params_from_text.o", + "crypto/libcrypto-lib-params_idx.o", "crypto/libcrypto-lib-passphrase.o", "crypto/libcrypto-lib-provider.o", "crypto/libcrypto-lib-provider_child.o", @@ -24394,12 +28452,16 @@ our %unified_info = ( "crypto/libcrypto-lib-provider_core.o", "crypto/libcrypto-lib-provider_predefined.o", "crypto/libcrypto-lib-punycode.o", + "crypto/libcrypto-lib-quic_vlint.o", "crypto/libcrypto-lib-self_test_core.o", + "crypto/libcrypto-lib-sleep.o", "crypto/libcrypto-lib-sparse_array.o", + "crypto/libcrypto-lib-ssl_err.o", "crypto/libcrypto-lib-threads_lib.o", "crypto/libcrypto-lib-threads_none.o", "crypto/libcrypto-lib-threads_pthread.o", "crypto/libcrypto-lib-threads_win.o", + "crypto/libcrypto-lib-time.o", "crypto/libcrypto-lib-trace.o", "crypto/libcrypto-lib-uid.o", "crypto/libcrypto-lib-x86_64cpuid.o", @@ -24411,6 +28473,16 @@ our %unified_info = ( "crypto/md5/libcrypto-lib-md5_sha1.o", "crypto/mdc2/libcrypto-lib-mdc2_one.o", "crypto/mdc2/libcrypto-lib-mdc2dgst.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_encoders.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key_compress.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_matrix.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_ntt.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_params.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sample.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sign.o", + "crypto/ml_kem/libcrypto-lib-ml_kem.o", + "crypto/modes/libcrypto-lib-aes-gcm-avx512.o", "crypto/modes/libcrypto-lib-aesni-gcm-x86_64.o", "crypto/modes/libcrypto-lib-cbc128.o", "crypto/modes/libcrypto-lib-ccm128.o", @@ -24424,6 +28496,7 @@ our %unified_info = ( "crypto/modes/libcrypto-lib-siv128.o", "crypto/modes/libcrypto-lib-wrap128.o", "crypto/modes/libcrypto-lib-xts128.o", + "crypto/modes/libcrypto-lib-xts128gb.o", "crypto/objects/libcrypto-lib-o_names.o", "crypto/objects/libcrypto-lib-obj_dat.o", "crypto/objects/libcrypto-lib-obj_err.o", @@ -24488,6 +28561,7 @@ our %unified_info = ( "crypto/rand/libcrypto-lib-rand_lib.o", "crypto/rand/libcrypto-lib-rand_meth.o", "crypto/rand/libcrypto-lib-rand_pool.o", + "crypto/rand/libcrypto-lib-rand_uniform.o", "crypto/rand/libcrypto-lib-randfile.o", "crypto/rc2/libcrypto-lib-rc2_cbc.o", "crypto/rc2/libcrypto-lib-rc2_ecb.o", @@ -24541,6 +28615,16 @@ our %unified_info = ( "crypto/sha/libcrypto-lib-sha512-x86_64.o", "crypto/sha/libcrypto-lib-sha512.o", "crypto/siphash/libcrypto-lib-siphash.o", + "crypto/slh_dsa/libcrypto-lib-slh_adrs.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa_hash_ctx.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa_key.o", + "crypto/slh_dsa/libcrypto-lib-slh_fors.o", + "crypto/slh_dsa/libcrypto-lib-slh_hash.o", + "crypto/slh_dsa/libcrypto-lib-slh_hypertree.o", + "crypto/slh_dsa/libcrypto-lib-slh_params.o", + "crypto/slh_dsa/libcrypto-lib-slh_wots.o", + "crypto/slh_dsa/libcrypto-lib-slh_xmss.o", "crypto/sm2/libcrypto-lib-sm2_crypt.o", "crypto/sm2/libcrypto-lib-sm2_err.o", "crypto/sm2/libcrypto-lib-sm2_key.o", @@ -24558,6 +28642,12 @@ our %unified_info = ( "crypto/store/libcrypto-lib-store_register.o", "crypto/store/libcrypto-lib-store_result.o", "crypto/store/libcrypto-lib-store_strings.o", + "crypto/thread/arch/libcrypto-lib-thread_none.o", + "crypto/thread/arch/libcrypto-lib-thread_posix.o", + "crypto/thread/arch/libcrypto-lib-thread_win.o", + "crypto/thread/libcrypto-lib-api.o", + "crypto/thread/libcrypto-lib-arch.o", + "crypto/thread/libcrypto-lib-internal.o", "crypto/ts/libcrypto-lib-ts_asn1.o", "crypto/ts/libcrypto-lib-ts_conf.o", "crypto/ts/libcrypto-lib-ts_err.o", @@ -24586,14 +28676,22 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-pcy_map.o", "crypto/x509/libcrypto-lib-pcy_node.o", "crypto/x509/libcrypto-lib-pcy_tree.o", + "crypto/x509/libcrypto-lib-t_acert.o", "crypto/x509/libcrypto-lib-t_crl.o", "crypto/x509/libcrypto-lib-t_req.o", "crypto/x509/libcrypto-lib-t_x509.o", + "crypto/x509/libcrypto-lib-v3_aaa.o", + "crypto/x509/libcrypto-lib-v3_ac_tgt.o", "crypto/x509/libcrypto-lib-v3_addr.o", "crypto/x509/libcrypto-lib-v3_admis.o", "crypto/x509/libcrypto-lib-v3_akeya.o", "crypto/x509/libcrypto-lib-v3_akid.o", "crypto/x509/libcrypto-lib-v3_asid.o", + "crypto/x509/libcrypto-lib-v3_attrdesc.o", + "crypto/x509/libcrypto-lib-v3_attrmap.o", + "crypto/x509/libcrypto-lib-v3_audit_id.o", + "crypto/x509/libcrypto-lib-v3_authattid.o", + "crypto/x509/libcrypto-lib-v3_battcons.o", "crypto/x509/libcrypto-lib-v3_bcons.o", "crypto/x509/libcrypto-lib-v3_bitst.o", "crypto/x509/libcrypto-lib-v3_conf.o", @@ -24602,12 +28700,17 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_enum.o", "crypto/x509/libcrypto-lib-v3_extku.o", "crypto/x509/libcrypto-lib-v3_genn.o", + "crypto/x509/libcrypto-lib-v3_group_ac.o", "crypto/x509/libcrypto-lib-v3_ia5.o", + "crypto/x509/libcrypto-lib-v3_ind_iss.o", "crypto/x509/libcrypto-lib-v3_info.o", "crypto/x509/libcrypto-lib-v3_int.o", + "crypto/x509/libcrypto-lib-v3_iobo.o", "crypto/x509/libcrypto-lib-v3_ist.o", "crypto/x509/libcrypto-lib-v3_lib.o", "crypto/x509/libcrypto-lib-v3_ncons.o", + "crypto/x509/libcrypto-lib-v3_no_ass.o", + "crypto/x509/libcrypto-lib-v3_no_rev_avail.o", "crypto/x509/libcrypto-lib-v3_pci.o", "crypto/x509/libcrypto-lib-v3_pcia.o", "crypto/x509/libcrypto-lib-v3_pcons.o", @@ -24615,13 +28718,20 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_pmaps.o", "crypto/x509/libcrypto-lib-v3_prn.o", "crypto/x509/libcrypto-lib-v3_purp.o", + "crypto/x509/libcrypto-lib-v3_rolespec.o", "crypto/x509/libcrypto-lib-v3_san.o", + "crypto/x509/libcrypto-lib-v3_sda.o", + "crypto/x509/libcrypto-lib-v3_single_use.o", "crypto/x509/libcrypto-lib-v3_skid.o", + "crypto/x509/libcrypto-lib-v3_soa_id.o", "crypto/x509/libcrypto-lib-v3_sxnet.o", + "crypto/x509/libcrypto-lib-v3_timespec.o", "crypto/x509/libcrypto-lib-v3_tlsf.o", + "crypto/x509/libcrypto-lib-v3_usernotice.o", "crypto/x509/libcrypto-lib-v3_utf8.o", "crypto/x509/libcrypto-lib-v3_utl.o", "crypto/x509/libcrypto-lib-v3err.o", + "crypto/x509/libcrypto-lib-x509_acert.o", "crypto/x509/libcrypto-lib-x509_att.o", "crypto/x509/libcrypto-lib-x509_cmp.o", "crypto/x509/libcrypto-lib-x509_d2.o", @@ -24639,6 +28749,7 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x509_v3.o", "crypto/x509/libcrypto-lib-x509_vfy.o", "crypto/x509/libcrypto-lib-x509_vpm.o", + "crypto/x509/libcrypto-lib-x509aset.o", "crypto/x509/libcrypto-lib-x509cset.o", "crypto/x509/libcrypto-lib-x509name.o", "crypto/x509/libcrypto-lib-x509rset.o", @@ -24648,6 +28759,7 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x_attrib.o", "crypto/x509/libcrypto-lib-x_crl.o", "crypto/x509/libcrypto-lib-x_exten.o", + "crypto/x509/libcrypto-lib-x_ietfatt.o", "crypto/x509/libcrypto-lib-x_name.o", "crypto/x509/libcrypto-lib-x_pubkey.o", "crypto/x509/libcrypto-lib-x_req.o", @@ -24669,14 +28781,15 @@ our %unified_info = ( "ssl/libssl-lib-d1_srtp.o", "ssl/libssl-lib-methods.o", "ssl/libssl-lib-pqueue.o", + "ssl/libssl-lib-priority_queue.o", "ssl/libssl-lib-s3_enc.o", "ssl/libssl-lib-s3_lib.o", "ssl/libssl-lib-s3_msg.o", "ssl/libssl-lib-ssl_asn1.o", "ssl/libssl-lib-ssl_cert.o", + "ssl/libssl-lib-ssl_cert_comp.o", "ssl/libssl-lib-ssl_ciph.o", "ssl/libssl-lib-ssl_conf.o", - "ssl/libssl-lib-ssl_err.o", "ssl/libssl-lib-ssl_err_legacy.o", "ssl/libssl-lib-ssl_init.o", "ssl/libssl-lib-ssl_lib.o", @@ -24693,12 +28806,60 @@ our %unified_info = ( "ssl/libssl-lib-tls13_enc.o", "ssl/libssl-lib-tls_depr.o", "ssl/libssl-lib-tls_srp.o", - "ssl/record/libssl-lib-dtls1_bitmap.o", + "ssl/quic/libssl-lib-cc_newreno.o", + "ssl/quic/libssl-lib-json_enc.o", + "ssl/quic/libssl-lib-qlog.o", + "ssl/quic/libssl-lib-qlog_event_helpers.o", + "ssl/quic/libssl-lib-quic_ackm.o", + "ssl/quic/libssl-lib-quic_cfq.o", + "ssl/quic/libssl-lib-quic_channel.o", + "ssl/quic/libssl-lib-quic_demux.o", + "ssl/quic/libssl-lib-quic_engine.o", + "ssl/quic/libssl-lib-quic_fc.o", + "ssl/quic/libssl-lib-quic_fifd.o", + "ssl/quic/libssl-lib-quic_impl.o", + "ssl/quic/libssl-lib-quic_lcidm.o", + "ssl/quic/libssl-lib-quic_method.o", + "ssl/quic/libssl-lib-quic_obj.o", + "ssl/quic/libssl-lib-quic_port.o", + "ssl/quic/libssl-lib-quic_rcidm.o", + "ssl/quic/libssl-lib-quic_reactor.o", + "ssl/quic/libssl-lib-quic_reactor_wait_ctx.o", + "ssl/quic/libssl-lib-quic_record_rx.o", + "ssl/quic/libssl-lib-quic_record_shared.o", + "ssl/quic/libssl-lib-quic_record_tx.o", + "ssl/quic/libssl-lib-quic_record_util.o", + "ssl/quic/libssl-lib-quic_rstream.o", + "ssl/quic/libssl-lib-quic_rx_depack.o", + "ssl/quic/libssl-lib-quic_sf_list.o", + "ssl/quic/libssl-lib-quic_srt_gen.o", + "ssl/quic/libssl-lib-quic_srtm.o", + "ssl/quic/libssl-lib-quic_sstream.o", + "ssl/quic/libssl-lib-quic_statm.o", + "ssl/quic/libssl-lib-quic_stream_map.o", + "ssl/quic/libssl-lib-quic_thread_assist.o", + "ssl/quic/libssl-lib-quic_tls.o", + "ssl/quic/libssl-lib-quic_tls_api.o", + "ssl/quic/libssl-lib-quic_trace.o", + "ssl/quic/libssl-lib-quic_tserver.o", + "ssl/quic/libssl-lib-quic_txp.o", + "ssl/quic/libssl-lib-quic_txpim.o", + "ssl/quic/libssl-lib-quic_types.o", + "ssl/quic/libssl-lib-quic_wire.o", + "ssl/quic/libssl-lib-quic_wire_pkt.o", + "ssl/quic/libssl-lib-uint_set.o", "ssl/record/libssl-lib-rec_layer_d1.o", "ssl/record/libssl-lib-rec_layer_s3.o", - "ssl/record/libssl-lib-ssl3_buffer.o", - "ssl/record/libssl-lib-ssl3_record.o", - "ssl/record/libssl-lib-ssl3_record_tls13.o", + "ssl/record/methods/libssl-lib-dtls_meth.o", + "ssl/record/methods/libssl-lib-ssl3_meth.o", + "ssl/record/methods/libssl-lib-tls13_meth.o", + "ssl/record/methods/libssl-lib-tls1_meth.o", + "ssl/record/methods/libssl-lib-tls_common.o", + "ssl/record/methods/libssl-lib-tls_multib.o", + "ssl/record/methods/libssl-lib-tlsany_meth.o", + "ssl/rio/libssl-lib-poll_builder.o", + "ssl/rio/libssl-lib-poll_immediate.o", + "ssl/rio/libssl-lib-rio_notifier.o", "ssl/statem/libssl-lib-extensions.o", "ssl/statem/libssl-lib-extensions_clnt.o", "ssl/statem/libssl-lib-extensions_cust.o", @@ -24736,12 +28897,24 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ecx_key.o" => [ "providers/common/der/der_ecx_key.c" ], + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o" => [ + "providers/common/der/der_ml_dsa_gen.c" + ], + "providers/common/der/libcommon-lib-der_ml_dsa_key.o" => [ + "providers/common/der/der_ml_dsa_key.c" + ], "providers/common/der/libcommon-lib-der_rsa_gen.o" => [ "providers/common/der/der_rsa_gen.c" ], "providers/common/der/libcommon-lib-der_rsa_key.o" => [ "providers/common/der/der_rsa_key.c" ], + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o" => [ + "providers/common/der/der_slh_dsa_gen.c" + ], + "providers/common/der/libcommon-lib-der_slh_dsa_key.o" => [ + "providers/common/der/der_slh_dsa_key.c" + ], "providers/common/der/libcommon-lib-der_wrap_gen.o" => [ "providers/common/der/der_wrap_gen.c" ], @@ -24808,6 +28981,9 @@ our %unified_info = ( "providers/common/libfips-lib-securitycheck_fips.o" => [ "providers/common/securitycheck_fips.c" ], + "providers/endecode_test-bin-legacyprov.o" => [ + "providers/legacyprov.c" + ], "providers/evp_extra_test-bin-legacyprov.o" => [ "providers/legacyprov.c" ], @@ -24822,6 +28998,9 @@ our %unified_info = ( "providers/fips/fips-dso-fips_entry.o" => [ "providers/fips/fips_entry.c" ], + "providers/fips/libfips-lib-fipsindicator.o" => [ + "providers/fips/fipsindicator.c" + ], "providers/fips/libfips-lib-fipsprov.o" => [ "providers/fips/fipsprov.c" ], @@ -24885,6 +29064,15 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_hw.o" => [ "providers/implementations/ciphers/cipher_aes_gcm_hw.c" ], + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv.o" => [ + "providers/implementations/ciphers/cipher_aes_gcm_siv.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_hw.o" => [ + "providers/implementations/ciphers/cipher_aes_gcm_siv_hw.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_polyval.o" => [ + "providers/implementations/ciphers/cipher_aes_gcm_siv_polyval.c" + ], "providers/implementations/ciphers/libdefault-lib-cipher_aes_hw.o" => [ "providers/implementations/ciphers/cipher_aes_hw.c" ], @@ -24957,9 +29145,27 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_sm4.o" => [ "providers/implementations/ciphers/cipher_sm4.c" ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm.o" => [ + "providers/implementations/ciphers/cipher_sm4_ccm.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm_hw.o" => [ + "providers/implementations/ciphers/cipher_sm4_ccm_hw.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm.o" => [ + "providers/implementations/ciphers/cipher_sm4_gcm.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm_hw.o" => [ + "providers/implementations/ciphers/cipher_sm4_gcm_hw.c" + ], "providers/implementations/ciphers/libdefault-lib-cipher_sm4_hw.o" => [ "providers/implementations/ciphers/cipher_sm4_hw.c" ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts.o" => [ + "providers/implementations/ciphers/cipher_sm4_xts.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts_hw.o" => [ + "providers/implementations/ciphers/cipher_sm4_xts_hw.c" + ], "providers/implementations/ciphers/libdefault-lib-cipher_tdes.o" => [ "providers/implementations/ciphers/cipher_tdes.c" ], @@ -25179,6 +29385,15 @@ our %unified_info = ( "providers/implementations/encode_decode/libdefault-lib-endecoder_common.o" => [ "providers/implementations/encode_decode/endecoder_common.c" ], + "providers/implementations/encode_decode/libdefault-lib-ml_common_codecs.o" => [ + "providers/implementations/encode_decode/ml_common_codecs.c" + ], + "providers/implementations/encode_decode/libdefault-lib-ml_dsa_codecs.o" => [ + "providers/implementations/encode_decode/ml_dsa_codecs.c" + ], + "providers/implementations/encode_decode/libdefault-lib-ml_kem_codecs.o" => [ + "providers/implementations/encode_decode/ml_kem_codecs.c" + ], "providers/implementations/exchange/libdefault-lib-dh_exch.o" => [ "providers/implementations/exchange/dh_exch.c" ], @@ -25203,9 +29418,15 @@ our %unified_info = ( "providers/implementations/exchange/libfips-lib-kdf_exch.o" => [ "providers/implementations/exchange/kdf_exch.c" ], + "providers/implementations/kdfs/libdefault-lib-argon2.o" => [ + "providers/implementations/kdfs/argon2.c" + ], "providers/implementations/kdfs/libdefault-lib-hkdf.o" => [ "providers/implementations/kdfs/hkdf.c" ], + "providers/implementations/kdfs/libdefault-lib-hmacdrbg_kdf.o" => [ + "providers/implementations/kdfs/hmacdrbg_kdf.c" + ], "providers/implementations/kdfs/libdefault-lib-kbkdf.o" => [ "providers/implementations/kdfs/kbkdf.c" ], @@ -25263,12 +29484,39 @@ our %unified_info = ( "providers/implementations/kdfs/liblegacy-lib-pbkdf1.o" => [ "providers/implementations/kdfs/pbkdf1.c" ], + "providers/implementations/kdfs/liblegacy-lib-pvkkdf.o" => [ + "providers/implementations/kdfs/pvkkdf.c" + ], + "providers/implementations/kem/libdefault-lib-ec_kem.o" => [ + "providers/implementations/kem/ec_kem.c" + ], + "providers/implementations/kem/libdefault-lib-ecx_kem.o" => [ + "providers/implementations/kem/ecx_kem.c" + ], + "providers/implementations/kem/libdefault-lib-kem_util.o" => [ + "providers/implementations/kem/kem_util.c" + ], + "providers/implementations/kem/libdefault-lib-ml_kem_kem.o" => [ + "providers/implementations/kem/ml_kem_kem.c" + ], + "providers/implementations/kem/libdefault-lib-mlx_kem.o" => [ + "providers/implementations/kem/mlx_kem.c" + ], "providers/implementations/kem/libdefault-lib-rsa_kem.o" => [ "providers/implementations/kem/rsa_kem.c" ], + "providers/implementations/kem/libfips-lib-ml_kem_kem.o" => [ + "providers/implementations/kem/ml_kem_kem.c" + ], + "providers/implementations/kem/libfips-lib-mlx_kem.o" => [ + "providers/implementations/kem/mlx_kem.c" + ], "providers/implementations/kem/libfips-lib-rsa_kem.o" => [ "providers/implementations/kem/rsa_kem.c" ], + "providers/implementations/kem/libtemplate-lib-template_kem.o" => [ + "providers/implementations/kem/template_kem.c" + ], "providers/implementations/keymgmt/libdefault-lib-dh_kmgmt.o" => [ "providers/implementations/keymgmt/dh_kmgmt.c" ], @@ -25287,9 +29535,21 @@ our %unified_info = ( "providers/implementations/keymgmt/libdefault-lib-mac_legacy_kmgmt.o" => [ "providers/implementations/keymgmt/mac_legacy_kmgmt.c" ], + "providers/implementations/keymgmt/libdefault-lib-ml_dsa_kmgmt.o" => [ + "providers/implementations/keymgmt/ml_dsa_kmgmt.c" + ], + "providers/implementations/keymgmt/libdefault-lib-ml_kem_kmgmt.o" => [ + "providers/implementations/keymgmt/ml_kem_kmgmt.c" + ], + "providers/implementations/keymgmt/libdefault-lib-mlx_kmgmt.o" => [ + "providers/implementations/keymgmt/mlx_kmgmt.c" + ], "providers/implementations/keymgmt/libdefault-lib-rsa_kmgmt.o" => [ "providers/implementations/keymgmt/rsa_kmgmt.c" ], + "providers/implementations/keymgmt/libdefault-lib-slh_dsa_kmgmt.o" => [ + "providers/implementations/keymgmt/slh_dsa_kmgmt.c" + ], "providers/implementations/keymgmt/libfips-lib-dh_kmgmt.o" => [ "providers/implementations/keymgmt/dh_kmgmt.c" ], @@ -25308,9 +29568,24 @@ our %unified_info = ( "providers/implementations/keymgmt/libfips-lib-mac_legacy_kmgmt.o" => [ "providers/implementations/keymgmt/mac_legacy_kmgmt.c" ], + "providers/implementations/keymgmt/libfips-lib-ml_dsa_kmgmt.o" => [ + "providers/implementations/keymgmt/ml_dsa_kmgmt.c" + ], + "providers/implementations/keymgmt/libfips-lib-ml_kem_kmgmt.o" => [ + "providers/implementations/keymgmt/ml_kem_kmgmt.c" + ], + "providers/implementations/keymgmt/libfips-lib-mlx_kmgmt.o" => [ + "providers/implementations/keymgmt/mlx_kmgmt.c" + ], "providers/implementations/keymgmt/libfips-lib-rsa_kmgmt.o" => [ "providers/implementations/keymgmt/rsa_kmgmt.c" ], + "providers/implementations/keymgmt/libfips-lib-slh_dsa_kmgmt.o" => [ + "providers/implementations/keymgmt/slh_dsa_kmgmt.c" + ], + "providers/implementations/keymgmt/libtemplate-lib-template_kmgmt.o" => [ + "providers/implementations/keymgmt/template_kmgmt.c" + ], "providers/implementations/macs/libdefault-lib-blake2b_mac.o" => [ "providers/implementations/macs/blake2b_mac.c" ], @@ -25347,9 +29622,6 @@ our %unified_info = ( "providers/implementations/macs/libfips-lib-kmac_prov.o" => [ "providers/implementations/macs/kmac_prov.c" ], - "providers/implementations/rands/libdefault-lib-crngt.o" => [ - "providers/implementations/rands/crngt.c" - ], "providers/implementations/rands/libdefault-lib-drbg.o" => [ "providers/implementations/rands/drbg.c" ], @@ -25365,12 +29637,12 @@ our %unified_info = ( "providers/implementations/rands/libdefault-lib-seed_src.o" => [ "providers/implementations/rands/seed_src.c" ], + "providers/implementations/rands/libdefault-lib-seed_src_jitter.o" => [ + "providers/implementations/rands/seed_src_jitter.c" + ], "providers/implementations/rands/libdefault-lib-test_rng.o" => [ "providers/implementations/rands/test_rng.c" ], - "providers/implementations/rands/libfips-lib-crngt.o" => [ - "providers/implementations/rands/crngt.c" - ], "providers/implementations/rands/libfips-lib-drbg.o" => [ "providers/implementations/rands/drbg.c" ], @@ -25383,6 +29655,9 @@ our %unified_info = ( "providers/implementations/rands/libfips-lib-drbg_hmac.o" => [ "providers/implementations/rands/drbg_hmac.c" ], + "providers/implementations/rands/libfips-lib-fips_crng_test.o" => [ + "providers/implementations/rands/fips_crng_test.c" + ], "providers/implementations/rands/libfips-lib-test_rng.o" => [ "providers/implementations/rands/test_rng.c" ], @@ -25410,9 +29685,15 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-mac_legacy_sig.o" => [ "providers/implementations/signature/mac_legacy_sig.c" ], + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o" => [ + "providers/implementations/signature/ml_dsa_sig.c" + ], "providers/implementations/signature/libdefault-lib-rsa_sig.o" => [ "providers/implementations/signature/rsa_sig.c" ], + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o" => [ + "providers/implementations/signature/slh_dsa_sig.c" + ], "providers/implementations/signature/libdefault-lib-sm2_sig.o" => [ "providers/implementations/signature/sm2_sig.c" ], @@ -25428,15 +29709,36 @@ our %unified_info = ( "providers/implementations/signature/libfips-lib-mac_legacy_sig.o" => [ "providers/implementations/signature/mac_legacy_sig.c" ], + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o" => [ + "providers/implementations/signature/ml_dsa_sig.c" + ], "providers/implementations/signature/libfips-lib-rsa_sig.o" => [ "providers/implementations/signature/rsa_sig.c" ], + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o" => [ + "providers/implementations/signature/slh_dsa_sig.c" + ], + "providers/implementations/skeymgmt/libdefault-lib-aes_skmgmt.o" => [ + "providers/implementations/skeymgmt/aes_skmgmt.c" + ], + "providers/implementations/skeymgmt/libdefault-lib-generic.o" => [ + "providers/implementations/skeymgmt/generic.c" + ], + "providers/implementations/skeymgmt/libfips-lib-aes_skmgmt.o" => [ + "providers/implementations/skeymgmt/aes_skmgmt.c" + ], + "providers/implementations/skeymgmt/libfips-lib-generic.o" => [ + "providers/implementations/skeymgmt/generic.c" + ], "providers/implementations/storemgmt/libdefault-lib-file_store.o" => [ "providers/implementations/storemgmt/file_store.c" ], "providers/implementations/storemgmt/libdefault-lib-file_store_any2obj.o" => [ "providers/implementations/storemgmt/file_store_any2obj.c" ], + "providers/implementations/storemgmt/libdefault-lib-winstore_store.o" => [ + "providers/implementations/storemgmt/winstore_store.c" + ], "providers/legacy" => [ "providers/legacy-dso-legacy.res", "providers/legacy-dso-legacyprov.o", @@ -25458,8 +29760,12 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ec_sig.o", "providers/common/der/libcommon-lib-der_ecx_gen.o", "providers/common/der/libcommon-lib-der_ecx_key.o", + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o", + "providers/common/der/libcommon-lib-der_ml_dsa_key.o", "providers/common/der/libcommon-lib-der_rsa_gen.o", "providers/common/der/libcommon-lib-der_rsa_key.o", + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o", + "providers/common/der/libcommon-lib-der_slh_dsa_key.o", "providers/common/der/libcommon-lib-der_wrap_gen.o", "providers/common/libcommon-lib-provider_ctx.o", "providers/common/libcommon-lib-provider_err.o", @@ -25471,7 +29777,7 @@ our %unified_info = ( "providers/implementations/ciphers/libcommon-lib-ciphercommon_gcm_hw.o", "providers/implementations/ciphers/libcommon-lib-ciphercommon_hw.o", "providers/implementations/digests/libcommon-lib-digestcommon.o", - "ssl/record/libcommon-lib-tls_pad.o" + "ssl/record/methods/libcommon-lib-tls_pad.o" ], "providers/libcrypto-lib-baseprov.o" => [ "providers/baseprov.c" @@ -25507,6 +29813,9 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_aes_ccm_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_polyval.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_ocb.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_ocb_hw.o", @@ -25531,7 +29840,13 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_cts.o", "providers/implementations/ciphers/libdefault-lib-cipher_null.o", "providers/implementations/ciphers/libdefault-lib-cipher_sm4.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_sm4_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes_common.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes_default.o", @@ -25560,11 +29875,16 @@ our %unified_info = ( "providers/implementations/encode_decode/libdefault-lib-encode_key2ms.o", "providers/implementations/encode_decode/libdefault-lib-encode_key2text.o", "providers/implementations/encode_decode/libdefault-lib-endecoder_common.o", + "providers/implementations/encode_decode/libdefault-lib-ml_common_codecs.o", + "providers/implementations/encode_decode/libdefault-lib-ml_dsa_codecs.o", + "providers/implementations/encode_decode/libdefault-lib-ml_kem_codecs.o", "providers/implementations/exchange/libdefault-lib-dh_exch.o", "providers/implementations/exchange/libdefault-lib-ecdh_exch.o", "providers/implementations/exchange/libdefault-lib-ecx_exch.o", "providers/implementations/exchange/libdefault-lib-kdf_exch.o", + "providers/implementations/kdfs/libdefault-lib-argon2.o", "providers/implementations/kdfs/libdefault-lib-hkdf.o", + "providers/implementations/kdfs/libdefault-lib-hmacdrbg_kdf.o", "providers/implementations/kdfs/libdefault-lib-kbkdf.o", "providers/implementations/kdfs/libdefault-lib-krb5kdf.o", "providers/implementations/kdfs/libdefault-lib-pbkdf2.o", @@ -25575,6 +29895,11 @@ our %unified_info = ( "providers/implementations/kdfs/libdefault-lib-sskdf.o", "providers/implementations/kdfs/libdefault-lib-tls1_prf.o", "providers/implementations/kdfs/libdefault-lib-x942kdf.o", + "providers/implementations/kem/libdefault-lib-ec_kem.o", + "providers/implementations/kem/libdefault-lib-ecx_kem.o", + "providers/implementations/kem/libdefault-lib-kem_util.o", + "providers/implementations/kem/libdefault-lib-ml_kem_kem.o", + "providers/implementations/kem/libdefault-lib-mlx_kem.o", "providers/implementations/kem/libdefault-lib-rsa_kem.o", "providers/implementations/keymgmt/libdefault-lib-dh_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-dsa_kmgmt.o", @@ -25582,7 +29907,11 @@ our %unified_info = ( "providers/implementations/keymgmt/libdefault-lib-ecx_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-kdf_legacy_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-mac_legacy_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-ml_dsa_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-ml_kem_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-mlx_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-rsa_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-slh_dsa_kmgmt.o", "providers/implementations/macs/libdefault-lib-blake2b_mac.o", "providers/implementations/macs/libdefault-lib-blake2s_mac.o", "providers/implementations/macs/libdefault-lib-cmac_prov.o", @@ -25591,12 +29920,12 @@ our %unified_info = ( "providers/implementations/macs/libdefault-lib-kmac_prov.o", "providers/implementations/macs/libdefault-lib-poly1305_prov.o", "providers/implementations/macs/libdefault-lib-siphash_prov.o", - "providers/implementations/rands/libdefault-lib-crngt.o", "providers/implementations/rands/libdefault-lib-drbg.o", "providers/implementations/rands/libdefault-lib-drbg_ctr.o", "providers/implementations/rands/libdefault-lib-drbg_hash.o", "providers/implementations/rands/libdefault-lib-drbg_hmac.o", "providers/implementations/rands/libdefault-lib-seed_src.o", + "providers/implementations/rands/libdefault-lib-seed_src_jitter.o", "providers/implementations/rands/libdefault-lib-test_rng.o", "providers/implementations/rands/seeding/libdefault-lib-rand_cpu_x86.o", "providers/implementations/rands/seeding/libdefault-lib-rand_tsc.o", @@ -25606,11 +29935,16 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-ecdsa_sig.o", "providers/implementations/signature/libdefault-lib-eddsa_sig.o", "providers/implementations/signature/libdefault-lib-mac_legacy_sig.o", + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o", "providers/implementations/signature/libdefault-lib-rsa_sig.o", + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o", "providers/implementations/signature/libdefault-lib-sm2_sig.o", + "providers/implementations/skeymgmt/libdefault-lib-aes_skmgmt.o", + "providers/implementations/skeymgmt/libdefault-lib-generic.o", "providers/implementations/storemgmt/libdefault-lib-file_store.o", "providers/implementations/storemgmt/libdefault-lib-file_store_any2obj.o", - "ssl/libdefault-lib-s3_cbc.o" + "providers/implementations/storemgmt/libdefault-lib-winstore_store.o", + "ssl/record/methods/libdefault-lib-ssl3_cbc.o" ], "providers/libfips.a" => [ "crypto/aes/libfips-lib-aes-x86_64.o", @@ -25620,6 +29954,7 @@ our %unified_info = ( "crypto/aes/libfips-lib-aesni-sha1-x86_64.o", "crypto/aes/libfips-lib-aesni-sha256-x86_64.o", "crypto/aes/libfips-lib-aesni-x86_64.o", + "crypto/aes/libfips-lib-aesni-xts-avx512.o", "crypto/aes/libfips-lib-bsaes-x86_64.o", "crypto/aes/libfips-lib-vpaes-x86_64.o", "crypto/bn/libfips-lib-bn_add.o", @@ -25650,8 +29985,13 @@ our %unified_info = ( "crypto/bn/libfips-lib-bn_sqr.o", "crypto/bn/libfips-lib-bn_sqrt.o", "crypto/bn/libfips-lib-bn_word.o", + "crypto/bn/libfips-lib-rsaz-2k-avx512.o", + "crypto/bn/libfips-lib-rsaz-2k-avxifma.o", + "crypto/bn/libfips-lib-rsaz-3k-avx512.o", + "crypto/bn/libfips-lib-rsaz-3k-avxifma.o", + "crypto/bn/libfips-lib-rsaz-4k-avx512.o", + "crypto/bn/libfips-lib-rsaz-4k-avxifma.o", "crypto/bn/libfips-lib-rsaz-avx2.o", - "crypto/bn/libfips-lib-rsaz-avx512.o", "crypto/bn/libfips-lib-rsaz-x86_64.o", "crypto/bn/libfips-lib-rsaz_exp.o", "crypto/bn/libfips-lib-rsaz_exp_x2.o", @@ -25728,14 +30068,15 @@ our %unified_info = ( "crypto/evp/libfips-lib-kem.o", "crypto/evp/libfips-lib-keymgmt_lib.o", "crypto/evp/libfips-lib-keymgmt_meth.o", - "crypto/evp/libfips-lib-m_sigver.o", "crypto/evp/libfips-lib-mac_lib.o", "crypto/evp/libfips-lib-mac_meth.o", "crypto/evp/libfips-lib-p_lib.o", "crypto/evp/libfips-lib-pmeth_check.o", "crypto/evp/libfips-lib-pmeth_gn.o", "crypto/evp/libfips-lib-pmeth_lib.o", + "crypto/evp/libfips-lib-s_lib.o", "crypto/evp/libfips-lib-signature.o", + "crypto/evp/libfips-lib-skeymgmt_meth.o", "crypto/ffc/libfips-lib-ffc_backend.o", "crypto/ffc/libfips-lib-ffc_dh.o", "crypto/ffc/libfips-lib-ffc_key_generate.o", @@ -25743,6 +30084,8 @@ our %unified_info = ( "crypto/ffc/libfips-lib-ffc_params.o", "crypto/ffc/libfips-lib-ffc_params_generate.o", "crypto/ffc/libfips-lib-ffc_params_validate.o", + "crypto/hashtable/libfips-lib-hashfunc.o", + "crypto/hashtable/libfips-lib-hashtable.o", "crypto/hmac/libfips-lib-hmac.o", "crypto/lhash/libfips-lib-lhash.o", "crypto/libfips-lib-asn1_dsa.o", @@ -25764,6 +30107,7 @@ our %unified_info = ( "crypto/libfips-lib-params.o", "crypto/libfips-lib-params_dup.o", "crypto/libfips-lib-params_from_text.o", + "crypto/libfips-lib-params_idx.o", "crypto/libfips-lib-provider_core.o", "crypto/libfips-lib-provider_predefined.o", "crypto/libfips-lib-self_test_core.o", @@ -25772,7 +30116,18 @@ our %unified_info = ( "crypto/libfips-lib-threads_none.o", "crypto/libfips-lib-threads_pthread.o", "crypto/libfips-lib-threads_win.o", + "crypto/libfips-lib-time.o", "crypto/libfips-lib-x86_64cpuid.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_encoders.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_key.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_key_compress.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_matrix.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_ntt.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_params.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_sample.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_sign.o", + "crypto/ml_kem/libfips-lib-ml_kem.o", + "crypto/modes/libfips-lib-aes-gcm-avx512.o", "crypto/modes/libfips-lib-aesni-gcm-x86_64.o", "crypto/modes/libfips-lib-cbc128.o", "crypto/modes/libfips-lib-ccm128.o", @@ -25783,6 +30138,7 @@ our %unified_info = ( "crypto/modes/libfips-lib-ofb128.o", "crypto/modes/libfips-lib-wrap128.o", "crypto/modes/libfips-lib-xts128.o", + "crypto/modes/libfips-lib-xts128gb.o", "crypto/property/libfips-lib-defn_cache.o", "crypto/property/libfips-lib-property.o", "crypto/property/libfips-lib-property_parse.o", @@ -25816,7 +30172,23 @@ our %unified_info = ( "crypto/sha/libfips-lib-sha3.o", "crypto/sha/libfips-lib-sha512-x86_64.o", "crypto/sha/libfips-lib-sha512.o", + "crypto/slh_dsa/libfips-lib-slh_adrs.o", + "crypto/slh_dsa/libfips-lib-slh_dsa.o", + "crypto/slh_dsa/libfips-lib-slh_dsa_hash_ctx.o", + "crypto/slh_dsa/libfips-lib-slh_dsa_key.o", + "crypto/slh_dsa/libfips-lib-slh_fors.o", + "crypto/slh_dsa/libfips-lib-slh_hash.o", + "crypto/slh_dsa/libfips-lib-slh_hypertree.o", + "crypto/slh_dsa/libfips-lib-slh_params.o", + "crypto/slh_dsa/libfips-lib-slh_wots.o", + "crypto/slh_dsa/libfips-lib-slh_xmss.o", "crypto/stack/libfips-lib-stack.o", + "crypto/thread/arch/libfips-lib-thread_none.o", + "crypto/thread/arch/libfips-lib-thread_posix.o", + "crypto/thread/arch/libfips-lib-thread_win.o", + "crypto/thread/libfips-lib-api.o", + "crypto/thread/libfips-lib-arch.o", + "crypto/thread/libfips-lib-internal.o", "providers/common/der/libfips-lib-der_rsa_sig.o", "providers/common/libfips-lib-bio_prov.o", "providers/common/libfips-lib-capabilities.o", @@ -25825,6 +30197,7 @@ our %unified_info = ( "providers/common/libfips-lib-provider_util.o", "providers/common/libfips-lib-securitycheck.o", "providers/common/libfips-lib-securitycheck_fips.o", + "providers/fips/libfips-lib-fipsindicator.o", "providers/fips/libfips-lib-fipsprov.o", "providers/fips/libfips-lib-self_test.o", "providers/fips/libfips-lib-self_test_kats.o", @@ -25862,6 +30235,8 @@ our %unified_info = ( "providers/implementations/kdfs/libfips-lib-sskdf.o", "providers/implementations/kdfs/libfips-lib-tls1_prf.o", "providers/implementations/kdfs/libfips-lib-x942kdf.o", + "providers/implementations/kem/libfips-lib-ml_kem_kem.o", + "providers/implementations/kem/libfips-lib-mlx_kem.o", "providers/implementations/kem/libfips-lib-rsa_kem.o", "providers/implementations/keymgmt/libfips-lib-dh_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-dsa_kmgmt.o", @@ -25869,24 +30244,32 @@ our %unified_info = ( "providers/implementations/keymgmt/libfips-lib-ecx_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-kdf_legacy_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-mac_legacy_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-ml_dsa_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-ml_kem_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-mlx_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-rsa_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-slh_dsa_kmgmt.o", "providers/implementations/macs/libfips-lib-cmac_prov.o", "providers/implementations/macs/libfips-lib-gmac_prov.o", "providers/implementations/macs/libfips-lib-hmac_prov.o", "providers/implementations/macs/libfips-lib-kmac_prov.o", - "providers/implementations/rands/libfips-lib-crngt.o", "providers/implementations/rands/libfips-lib-drbg.o", "providers/implementations/rands/libfips-lib-drbg_ctr.o", "providers/implementations/rands/libfips-lib-drbg_hash.o", "providers/implementations/rands/libfips-lib-drbg_hmac.o", + "providers/implementations/rands/libfips-lib-fips_crng_test.o", "providers/implementations/rands/libfips-lib-test_rng.o", "providers/implementations/signature/libfips-lib-dsa_sig.o", "providers/implementations/signature/libfips-lib-ecdsa_sig.o", "providers/implementations/signature/libfips-lib-eddsa_sig.o", "providers/implementations/signature/libfips-lib-mac_legacy_sig.o", + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o", "providers/implementations/signature/libfips-lib-rsa_sig.o", + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o", + "providers/implementations/skeymgmt/libfips-lib-aes_skmgmt.o", + "providers/implementations/skeymgmt/libfips-lib-generic.o", "providers/libcommon.a", - "ssl/libfips-lib-s3_cbc.o" + "ssl/record/methods/libfips-lib-ssl3_cbc.o" ], "providers/liblegacy-lib-prov_running.o" => [ "providers/prov_running.c" @@ -25916,13 +30299,12 @@ our %unified_info = ( "providers/implementations/digests/liblegacy-lib-ripemd_prov.o", "providers/implementations/digests/liblegacy-lib-wp_prov.o", "providers/implementations/kdfs/liblegacy-lib-pbkdf1.o", + "providers/implementations/kdfs/liblegacy-lib-pvkkdf.o", "providers/liblegacy-lib-prov_running.o" ], - "ssl/libdefault-lib-s3_cbc.o" => [ - "ssl/s3_cbc.c" - ], - "ssl/libfips-lib-s3_cbc.o" => [ - "ssl/s3_cbc.c" + "providers/libtemplate.a" => [ + "providers/implementations/kem/libtemplate-lib-template_kem.o", + "providers/implementations/keymgmt/libtemplate-lib-template_kmgmt.o" ], "ssl/libssl-lib-bio_ssl.o" => [ "ssl/bio_ssl.c" @@ -25942,6 +30324,9 @@ our %unified_info = ( "ssl/libssl-lib-pqueue.o" => [ "ssl/pqueue.c" ], + "ssl/libssl-lib-priority_queue.o" => [ + "ssl/priority_queue.c" + ], "ssl/libssl-lib-s3_enc.o" => [ "ssl/s3_enc.c" ], @@ -25957,15 +30342,15 @@ our %unified_info = ( "ssl/libssl-lib-ssl_cert.o" => [ "ssl/ssl_cert.c" ], + "ssl/libssl-lib-ssl_cert_comp.o" => [ + "ssl/ssl_cert_comp.c" + ], "ssl/libssl-lib-ssl_ciph.o" => [ "ssl/ssl_ciph.c" ], "ssl/libssl-lib-ssl_conf.o" => [ "ssl/ssl_conf.c" ], - "ssl/libssl-lib-ssl_err.o" => [ - "ssl/ssl_err.c" - ], "ssl/libssl-lib-ssl_err_legacy.o" => [ "ssl/ssl_err_legacy.c" ], @@ -26014,11 +30399,131 @@ our %unified_info = ( "ssl/libssl-lib-tls_srp.o" => [ "ssl/tls_srp.c" ], - "ssl/record/libcommon-lib-tls_pad.o" => [ - "ssl/record/tls_pad.c" + "ssl/quic/libssl-lib-cc_newreno.o" => [ + "ssl/quic/cc_newreno.c" + ], + "ssl/quic/libssl-lib-json_enc.o" => [ + "ssl/quic/json_enc.c" + ], + "ssl/quic/libssl-lib-qlog.o" => [ + "ssl/quic/qlog.c" + ], + "ssl/quic/libssl-lib-qlog_event_helpers.o" => [ + "ssl/quic/qlog_event_helpers.c" + ], + "ssl/quic/libssl-lib-quic_ackm.o" => [ + "ssl/quic/quic_ackm.c" + ], + "ssl/quic/libssl-lib-quic_cfq.o" => [ + "ssl/quic/quic_cfq.c" + ], + "ssl/quic/libssl-lib-quic_channel.o" => [ + "ssl/quic/quic_channel.c" + ], + "ssl/quic/libssl-lib-quic_demux.o" => [ + "ssl/quic/quic_demux.c" + ], + "ssl/quic/libssl-lib-quic_engine.o" => [ + "ssl/quic/quic_engine.c" + ], + "ssl/quic/libssl-lib-quic_fc.o" => [ + "ssl/quic/quic_fc.c" + ], + "ssl/quic/libssl-lib-quic_fifd.o" => [ + "ssl/quic/quic_fifd.c" + ], + "ssl/quic/libssl-lib-quic_impl.o" => [ + "ssl/quic/quic_impl.c" + ], + "ssl/quic/libssl-lib-quic_lcidm.o" => [ + "ssl/quic/quic_lcidm.c" + ], + "ssl/quic/libssl-lib-quic_method.o" => [ + "ssl/quic/quic_method.c" + ], + "ssl/quic/libssl-lib-quic_obj.o" => [ + "ssl/quic/quic_obj.c" + ], + "ssl/quic/libssl-lib-quic_port.o" => [ + "ssl/quic/quic_port.c" + ], + "ssl/quic/libssl-lib-quic_rcidm.o" => [ + "ssl/quic/quic_rcidm.c" + ], + "ssl/quic/libssl-lib-quic_reactor.o" => [ + "ssl/quic/quic_reactor.c" + ], + "ssl/quic/libssl-lib-quic_reactor_wait_ctx.o" => [ + "ssl/quic/quic_reactor_wait_ctx.c" + ], + "ssl/quic/libssl-lib-quic_record_rx.o" => [ + "ssl/quic/quic_record_rx.c" + ], + "ssl/quic/libssl-lib-quic_record_shared.o" => [ + "ssl/quic/quic_record_shared.c" + ], + "ssl/quic/libssl-lib-quic_record_tx.o" => [ + "ssl/quic/quic_record_tx.c" + ], + "ssl/quic/libssl-lib-quic_record_util.o" => [ + "ssl/quic/quic_record_util.c" ], - "ssl/record/libssl-lib-dtls1_bitmap.o" => [ - "ssl/record/dtls1_bitmap.c" + "ssl/quic/libssl-lib-quic_rstream.o" => [ + "ssl/quic/quic_rstream.c" + ], + "ssl/quic/libssl-lib-quic_rx_depack.o" => [ + "ssl/quic/quic_rx_depack.c" + ], + "ssl/quic/libssl-lib-quic_sf_list.o" => [ + "ssl/quic/quic_sf_list.c" + ], + "ssl/quic/libssl-lib-quic_srt_gen.o" => [ + "ssl/quic/quic_srt_gen.c" + ], + "ssl/quic/libssl-lib-quic_srtm.o" => [ + "ssl/quic/quic_srtm.c" + ], + "ssl/quic/libssl-lib-quic_sstream.o" => [ + "ssl/quic/quic_sstream.c" + ], + "ssl/quic/libssl-lib-quic_statm.o" => [ + "ssl/quic/quic_statm.c" + ], + "ssl/quic/libssl-lib-quic_stream_map.o" => [ + "ssl/quic/quic_stream_map.c" + ], + "ssl/quic/libssl-lib-quic_thread_assist.o" => [ + "ssl/quic/quic_thread_assist.c" + ], + "ssl/quic/libssl-lib-quic_tls.o" => [ + "ssl/quic/quic_tls.c" + ], + "ssl/quic/libssl-lib-quic_tls_api.o" => [ + "ssl/quic/quic_tls_api.c" + ], + "ssl/quic/libssl-lib-quic_trace.o" => [ + "ssl/quic/quic_trace.c" + ], + "ssl/quic/libssl-lib-quic_tserver.o" => [ + "ssl/quic/quic_tserver.c" + ], + "ssl/quic/libssl-lib-quic_txp.o" => [ + "ssl/quic/quic_txp.c" + ], + "ssl/quic/libssl-lib-quic_txpim.o" => [ + "ssl/quic/quic_txpim.c" + ], + "ssl/quic/libssl-lib-quic_types.o" => [ + "ssl/quic/quic_types.c" + ], + "ssl/quic/libssl-lib-quic_wire.o" => [ + "ssl/quic/quic_wire.c" + ], + "ssl/quic/libssl-lib-quic_wire_pkt.o" => [ + "ssl/quic/quic_wire_pkt.c" + ], + "ssl/quic/libssl-lib-uint_set.o" => [ + "ssl/quic/uint_set.c" ], "ssl/record/libssl-lib-rec_layer_d1.o" => [ "ssl/record/rec_layer_d1.c" @@ -26026,14 +30531,44 @@ our %unified_info = ( "ssl/record/libssl-lib-rec_layer_s3.o" => [ "ssl/record/rec_layer_s3.c" ], - "ssl/record/libssl-lib-ssl3_buffer.o" => [ - "ssl/record/ssl3_buffer.c" + "ssl/record/methods/libcommon-lib-tls_pad.o" => [ + "ssl/record/methods/tls_pad.c" + ], + "ssl/record/methods/libdefault-lib-ssl3_cbc.o" => [ + "ssl/record/methods/ssl3_cbc.c" + ], + "ssl/record/methods/libfips-lib-ssl3_cbc.o" => [ + "ssl/record/methods/ssl3_cbc.c" + ], + "ssl/record/methods/libssl-lib-dtls_meth.o" => [ + "ssl/record/methods/dtls_meth.c" + ], + "ssl/record/methods/libssl-lib-ssl3_meth.o" => [ + "ssl/record/methods/ssl3_meth.c" + ], + "ssl/record/methods/libssl-lib-tls13_meth.o" => [ + "ssl/record/methods/tls13_meth.c" + ], + "ssl/record/methods/libssl-lib-tls1_meth.o" => [ + "ssl/record/methods/tls1_meth.c" ], - "ssl/record/libssl-lib-ssl3_record.o" => [ - "ssl/record/ssl3_record.c" + "ssl/record/methods/libssl-lib-tls_common.o" => [ + "ssl/record/methods/tls_common.c" ], - "ssl/record/libssl-lib-ssl3_record_tls13.o" => [ - "ssl/record/ssl3_record_tls13.c" + "ssl/record/methods/libssl-lib-tls_multib.o" => [ + "ssl/record/methods/tls_multib.c" + ], + "ssl/record/methods/libssl-lib-tlsany_meth.o" => [ + "ssl/record/methods/tlsany_meth.c" + ], + "ssl/rio/libssl-lib-poll_builder.o" => [ + "ssl/rio/poll_builder.c" + ], + "ssl/rio/libssl-lib-poll_immediate.o" => [ + "ssl/rio/poll_immediate.c" + ], + "ssl/rio/libssl-lib-rio_notifier.o" => [ + "ssl/rio/rio_notifier.c" ], "ssl/statem/libssl-lib-extensions.o" => [ "ssl/statem/extensions.c" @@ -26129,6 +30664,8 @@ our %unified_info = ( "test/asn1_string_table_test.c" ], "test/asn1_time_test" => [ + "crypto/asn1/asn1_time_test-bin-a_time.o", + "crypto/asn1_time_test-bin-ctype.o", "test/asn1_time_test-bin-asn1_time_test.o" ], "test/asn1_time_test-bin-asn1_time_test.o" => [ @@ -26159,6 +30696,18 @@ our %unified_info = ( "test/bftest-bin-bftest.o" => [ "test/bftest.c" ], + "test/bio_addr_test" => [ + "test/bio_addr_test-bin-bio_addr_test.o" + ], + "test/bio_addr_test-bin-bio_addr_test.o" => [ + "test/bio_addr_test.c" + ], + "test/bio_base64_test" => [ + "test/bio_base64_test-bin-bio_base64_test.o" + ], + "test/bio_base64_test-bin-bio_base64_test.o" => [ + "test/bio_base64_test.c" + ], "test/bio_callback_test" => [ "test/bio_callback_test-bin-bio_callback_test.o" ], @@ -26171,6 +30720,12 @@ our %unified_info = ( "test/bio_core_test-bin-bio_core_test.o" => [ "test/bio_core_test.c" ], + "test/bio_dgram_test" => [ + "test/bio_dgram_test-bin-bio_dgram_test.o" + ], + "test/bio_dgram_test-bin-bio_dgram_test.o" => [ + "test/bio_dgram_test.c" + ], "test/bio_enc_test" => [ "test/bio_enc_test-bin-bio_enc_test.o" ], @@ -26183,6 +30738,12 @@ our %unified_info = ( "test/bio_memleak_test-bin-bio_memleak_test.o" => [ "test/bio_memleak_test.c" ], + "test/bio_meth_test" => [ + "test/bio_meth_test-bin-bio_meth_test.o" + ], + "test/bio_meth_test-bin-bio_meth_test.o" => [ + "test/bio_meth_test.c" + ], "test/bio_prefix_text" => [ "test/bio_prefix_text-bin-bio_prefix_text.o" ], @@ -26201,6 +30762,12 @@ our %unified_info = ( "test/bio_readbuffer_test-bin-bio_readbuffer_test.o" => [ "test/bio_readbuffer_test.c" ], + "test/bio_tfo_test" => [ + "test/bio_tfo_test-bin-bio_tfo_test.o" + ], + "test/bio_tfo_test-bin-bio_tfo_test.o" => [ + "test/bio_tfo_test.c" + ], "test/bioprinttest" => [ "test/bioprinttest-bin-bioprinttest.o" ], @@ -26219,6 +30786,12 @@ our %unified_info = ( "test/bntest-bin-bntest.o" => [ "test/bntest.c" ], + "test/build_wincrypt_test" => [ + "test/build_wincrypt_test-bin-build_wincrypt_test.o" + ], + "test/build_wincrypt_test-bin-build_wincrypt_test.o" => [ + "test/build_wincrypt_test.c" + ], "test/buildtest_c_aes" => [ "test/buildtest_c_aes-bin-buildtest_aes.o" ], @@ -26249,6 +30822,12 @@ our %unified_info = ( "test/buildtest_c_buffer-bin-buildtest_buffer.o" => [ "test/buildtest_buffer.c" ], + "test/buildtest_c_byteorder" => [ + "test/buildtest_c_byteorder-bin-buildtest_byteorder.o" + ], + "test/buildtest_c_byteorder-bin-buildtest_byteorder.o" => [ + "test/buildtest_byteorder.c" + ], "test/buildtest_c_camellia" => [ "test/buildtest_c_camellia-bin-buildtest_camellia.o" ], @@ -26297,12 +30876,6 @@ our %unified_info = ( "test/buildtest_c_core_dispatch-bin-buildtest_core_dispatch.o" => [ "test/buildtest_core_dispatch.c" ], - "test/buildtest_c_core_names" => [ - "test/buildtest_c_core_names-bin-buildtest_core_names.o" - ], - "test/buildtest_c_core_names-bin-buildtest_core_names.o" => [ - "test/buildtest_core_names.c" - ], "test/buildtest_c_core_object" => [ "test/buildtest_c_core_object-bin-buildtest_core_object.o" ], @@ -26351,6 +30924,12 @@ our %unified_info = ( "test/buildtest_c_e_os2-bin-buildtest_e_os2.o" => [ "test/buildtest_e_os2.c" ], + "test/buildtest_c_e_ostime" => [ + "test/buildtest_c_e_ostime-bin-buildtest_e_ostime.o" + ], + "test/buildtest_c_e_ostime-bin-buildtest_e_ostime.o" => [ + "test/buildtest_e_ostime.c" + ], "test/buildtest_c_ebcdic" => [ "test/buildtest_c_ebcdic-bin-buildtest_ebcdic.o" ], @@ -26405,6 +30984,12 @@ our %unified_info = ( "test/buildtest_c_hmac-bin-buildtest_hmac.o" => [ "test/buildtest_hmac.c" ], + "test/buildtest_c_hpke" => [ + "test/buildtest_c_hpke-bin-buildtest_hpke.o" + ], + "test/buildtest_c_hpke-bin-buildtest_hpke.o" => [ + "test/buildtest_hpke.c" + ], "test/buildtest_c_http" => [ "test/buildtest_c_http-bin-buildtest_http.o" ], @@ -26417,6 +31002,12 @@ our %unified_info = ( "test/buildtest_c_idea-bin-buildtest_idea.o" => [ "test/buildtest_idea.c" ], + "test/buildtest_c_indicator" => [ + "test/buildtest_c_indicator-bin-buildtest_indicator.o" + ], + "test/buildtest_c_indicator-bin-buildtest_indicator.o" => [ + "test/buildtest_indicator.c" + ], "test/buildtest_c_kdf" => [ "test/buildtest_c_kdf-bin-buildtest_kdf.o" ], @@ -26447,6 +31038,12 @@ our %unified_info = ( "test/buildtest_c_mdc2-bin-buildtest_mdc2.o" => [ "test/buildtest_mdc2.c" ], + "test/buildtest_c_ml_kem" => [ + "test/buildtest_c_ml_kem-bin-buildtest_ml_kem.o" + ], + "test/buildtest_c_ml_kem-bin-buildtest_ml_kem.o" => [ + "test/buildtest_ml_kem.c" + ], "test/buildtest_c_modes" => [ "test/buildtest_c_modes-bin-buildtest_modes.o" ], @@ -26507,6 +31104,12 @@ our %unified_info = ( "test/buildtest_c_provider-bin-buildtest_provider.o" => [ "test/buildtest_provider.c" ], + "test/buildtest_c_quic" => [ + "test/buildtest_c_quic-bin-buildtest_quic.o" + ], + "test/buildtest_c_quic-bin-buildtest_quic.o" => [ + "test/buildtest_quic.c" + ], "test/buildtest_c_rand" => [ "test/buildtest_c_rand-bin-buildtest_rand.o" ], @@ -26591,6 +31194,12 @@ our %unified_info = ( "test/buildtest_c_symhacks-bin-buildtest_symhacks.o" => [ "test/buildtest_symhacks.c" ], + "test/buildtest_c_thread" => [ + "test/buildtest_c_thread-bin-buildtest_thread.o" + ], + "test/buildtest_c_thread-bin-buildtest_thread.o" => [ + "test/buildtest_thread.c" + ], "test/buildtest_c_tls1" => [ "test/buildtest_c_tls1-bin-buildtest_tls1.o" ], @@ -26621,6 +31230,29 @@ our %unified_info = ( "test/buildtest_c_whrlpool-bin-buildtest_whrlpool.o" => [ "test/buildtest_whrlpool.c" ], + "test/byteorder_test" => [ + "test/byteorder_test-bin-byteorder_test.o" + ], + "test/byteorder_test-bin-byteorder_test.o" => [ + "test/byteorder_test.c" + ], + "test/ca_internals_test" => [ + "apps/ca_internals_test-bin-ca.o", + "apps/lib/ca_internals_test-bin-app_libctx.o", + "apps/lib/ca_internals_test-bin-app_provider.o", + "apps/lib/ca_internals_test-bin-app_rand.o", + "apps/lib/ca_internals_test-bin-app_x509.o", + "apps/lib/ca_internals_test-bin-apps.o", + "apps/lib/ca_internals_test-bin-apps_ui.o", + "apps/lib/ca_internals_test-bin-engine.o", + "apps/lib/ca_internals_test-bin-fmt.o", + "crypto/asn1/ca_internals_test-bin-a_time.o", + "crypto/ca_internals_test-bin-ctype.o", + "test/ca_internals_test-bin-ca_internals_test.o" + ], + "test/ca_internals_test-bin-ca_internals_test.o" => [ + "test/ca_internals_test.c" + ], "test/casttest" => [ "test/casttest-bin-casttest.o" ], @@ -26799,6 +31431,12 @@ our %unified_info = ( "test/danetest-bin-danetest.o" => [ "test/danetest.c" ], + "test/decoder_propq_test" => [ + "test/decoder_propq_test-bin-decoder_propq_test.o" + ], + "test/decoder_propq_test-bin-decoder_propq_test.o" => [ + "test/decoder_propq_test.c" + ], "test/defltfips_test" => [ "test/defltfips_test-bin-defltfips_test.o" ], @@ -26880,6 +31518,7 @@ our %unified_info = ( "test/ectest.c" ], "test/endecode_test" => [ + "providers/endecode_test-bin-legacyprov.o", "test/endecode_test-bin-endecode_test.o", "test/helpers/endecode_test-bin-predefined_dhparams.o" ], @@ -26912,17 +31551,29 @@ our %unified_info = ( ], "test/evp_extra_test" => [ "providers/evp_extra_test-bin-legacyprov.o", - "test/evp_extra_test-bin-evp_extra_test.o" + "test/evp_extra_test-bin-evp_extra_test.o", + "test/evp_extra_test-bin-fake_pipelineprov.o", + "test/evp_extra_test-bin-fake_rsaprov.o" ], "test/evp_extra_test-bin-evp_extra_test.o" => [ "test/evp_extra_test.c" ], + "test/evp_extra_test-bin-fake_pipelineprov.o" => [ + "test/fake_pipelineprov.c" + ], + "test/evp_extra_test-bin-fake_rsaprov.o" => [ + "test/fake_rsaprov.c" + ], "test/evp_extra_test2" => [ - "test/evp_extra_test2-bin-evp_extra_test2.o" + "test/evp_extra_test2-bin-evp_extra_test2.o", + "test/evp_extra_test2-bin-tls-provider.o" ], "test/evp_extra_test2-bin-evp_extra_test2.o" => [ "test/evp_extra_test2.c" ], + "test/evp_extra_test2-bin-tls-provider.o" => [ + "test/tls-provider.c" + ], "test/evp_fetch_prov_test" => [ "test/evp_fetch_prov_test-bin-evp_fetch_prov_test.o" ], @@ -26947,6 +31598,12 @@ our %unified_info = ( "test/evp_pkey_ctx_new_from_name-bin-evp_pkey_ctx_new_from_name.o" => [ "test/evp_pkey_ctx_new_from_name.c" ], + "test/evp_pkey_dhkem_test" => [ + "test/evp_pkey_dhkem_test-bin-evp_pkey_dhkem_test.o" + ], + "test/evp_pkey_dhkem_test-bin-evp_pkey_dhkem_test.o" => [ + "test/evp_pkey_dhkem_test.c" + ], "test/evp_pkey_dparams_test" => [ "test/evp_pkey_dparams_test-bin-evp_pkey_dparams_test.o" ], @@ -26959,12 +31616,28 @@ our %unified_info = ( "test/evp_pkey_provided_test-bin-evp_pkey_provided_test.o" => [ "test/evp_pkey_provided_test.c" ], + "test/evp_skey_test" => [ + "test/evp_skey_test-bin-evp_skey_test.o", + "test/evp_skey_test-bin-fake_cipherprov.o" + ], + "test/evp_skey_test-bin-evp_skey_test.o" => [ + "test/evp_skey_test.c" + ], + "test/evp_skey_test-bin-fake_cipherprov.o" => [ + "test/fake_cipherprov.c" + ], "test/evp_test" => [ "test/evp_test-bin-evp_test.o" ], "test/evp_test-bin-evp_test.o" => [ "test/evp_test.c" ], + "test/evp_xof_test" => [ + "test/evp_xof_test-bin-evp_xof_test.o" + ], + "test/evp_xof_test-bin-evp_xof_test.o" => [ + "test/evp_xof_test.c" + ], "test/exdatatest" => [ "test/exdatatest-bin-exdatatest.o" ], @@ -27050,15 +31723,108 @@ our %unified_info = ( "test/helpers/fatalerrtest-bin-ssltestlib.o" => [ "test/helpers/ssltestlib.c" ], + "test/helpers/json_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/json_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/json_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/json_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/pkcs12_api_test-bin-pkcs12.o" => [ + "test/helpers/pkcs12.c" + ], "test/helpers/pkcs12_format_test-bin-pkcs12.o" => [ "test/helpers/pkcs12.c" ], + "test/helpers/quic_multistream_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quic_multistream_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quic_multistream_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quic_multistream_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quic_newcid_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quic_newcid_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quic_newcid_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quic_newcid_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quic_radix_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quic_radix_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quic_radix_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quic_radix_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quic_srt_gen_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quic_srt_gen_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quic_srt_gen_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quic_srt_gen_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quicapitest-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quicapitest-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quicapitest-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quicapitest-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quicfaultstest-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quicfaultstest-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quicfaultstest-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quicfaultstest-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], "test/helpers/recordlentest-bin-ssltestlib.o" => [ "test/helpers/ssltestlib.c" ], + "test/helpers/rpktest-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], "test/helpers/servername_test-bin-ssltestlib.o" => [ "test/helpers/ssltestlib.c" ], + "test/helpers/ssl_handshake_rtt_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], "test/helpers/ssl_old_test-bin-predefined_dhparams.o" => [ "test/helpers/predefined_dhparams.c" ], @@ -27086,6 +31852,9 @@ our %unified_info = ( "test/helpers/tls13ccstest-bin-ssltestlib.o" => [ "test/helpers/ssltestlib.c" ], + "test/helpers/tls13groupselection_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], "test/hexstr_test" => [ "test/hexstr_test-bin-hexstr_test.o" ], @@ -27098,6 +31867,12 @@ our %unified_info = ( "test/hmactest-bin-hmactest.o" => [ "test/hmactest.c" ], + "test/hpke_test" => [ + "test/hpke_test-bin-hpke_test.o" + ], + "test/hpke_test-bin-hpke_test.o" => [ + "test/hpke_test.c" + ], "test/http_test" => [ "test/http_test-bin-http_test.o" ], @@ -27116,6 +31891,16 @@ our %unified_info = ( "test/igetest-bin-igetest.o" => [ "test/igetest.c" ], + "test/json_test" => [ + "test/helpers/json_test-bin-noisydgrambio.o", + "test/helpers/json_test-bin-pktsplitbio.o", + "test/helpers/json_test-bin-quictestlib.o", + "test/helpers/json_test-bin-ssltestlib.o", + "test/json_test-bin-json_test.o" + ], + "test/json_test-bin-json_test.o" => [ + "test/json_test.c" + ], "test/keymgmt_internal_test" => [ "test/keymgmt_internal_test-bin-keymgmt_internal_test.o" ], @@ -27137,6 +31922,7 @@ our %unified_info = ( "test/testutil/libtestutil-lib-driver.o", "test/testutil/libtestutil-lib-fake_random.o", "test/testutil/libtestutil-lib-format_output.o", + "test/testutil/libtestutil-lib-helper.o", "test/testutil/libtestutil-lib-load.o", "test/testutil/libtestutil-lib-main.o", "test/testutil/libtestutil-lib-options.o", @@ -27149,6 +31935,12 @@ our %unified_info = ( "test/testutil/libtestutil-lib-tests.o", "test/testutil/libtestutil-lib-testutil_init.o" ], + "test/list_test" => [ + "test/list_test-bin-list_test.o" + ], + "test/list_test-bin-list_test.o" => [ + "test/list_test.c" + ], "test/localetest" => [ "test/localetest-bin-localetest.o" ], @@ -27167,12 +31959,36 @@ our %unified_info = ( "test/mdc2test-bin-mdc2test.o" => [ "test/mdc2test.c" ], + "test/membio_test" => [ + "test/membio_test-bin-membio_test.o" + ], + "test/membio_test-bin-membio_test.o" => [ + "test/membio_test.c" + ], "test/memleaktest" => [ "test/memleaktest-bin-memleaktest.o" ], "test/memleaktest-bin-memleaktest.o" => [ "test/memleaktest.c" ], + "test/ml_dsa_test" => [ + "test/ml_dsa_test-bin-ml_dsa_test.o" + ], + "test/ml_dsa_test-bin-ml_dsa_test.o" => [ + "test/ml_dsa_test.c" + ], + "test/ml_kem_evp_extra_test" => [ + "test/ml_kem_evp_extra_test-bin-ml_kem_evp_extra_test.o" + ], + "test/ml_kem_evp_extra_test-bin-ml_kem_evp_extra_test.o" => [ + "test/ml_kem_evp_extra_test.c" + ], + "test/ml_kem_internal_test" => [ + "test/ml_kem_internal_test-bin-ml_kem_internal_test.o" + ], + "test/ml_kem_internal_test-bin-ml_kem_internal_test.o" => [ + "test/ml_kem_internal_test.c" + ], "test/modes_internal_test" => [ "test/modes_internal_test-bin-modes_internal_test.o" ], @@ -27218,11 +32034,18 @@ our %unified_info = ( "test/p_test.c" ], "test/packettest" => [ + "crypto/packettest-bin-quic_vlint.o", "test/packettest-bin-packettest.o" ], "test/packettest-bin-packettest.o" => [ "test/packettest.c" ], + "test/pairwise_fail_test" => [ + "test/pairwise_fail_test-bin-pairwise_fail_test.o" + ], + "test/pairwise_fail_test-bin-pairwise_fail_test.o" => [ + "test/pairwise_fail_test.c" + ], "test/param_build_test" => [ "test/param_build_test-bin-param_build_test.o" ], @@ -27271,6 +32094,13 @@ our %unified_info = ( "test/pemtest-bin-pemtest.o" => [ "test/pemtest.c" ], + "test/pkcs12_api_test" => [ + "test/helpers/pkcs12_api_test-bin-pkcs12.o", + "test/pkcs12_api_test-bin-pkcs12_api_test.o" + ], + "test/pkcs12_api_test-bin-pkcs12_api_test.o" => [ + "test/pkcs12_api_test.c" + ], "test/pkcs12_format_test" => [ "test/helpers/pkcs12_format_test-bin-pkcs12.o", "test/pkcs12_format_test-bin-pkcs12_format_test.o" @@ -27302,6 +32132,12 @@ our %unified_info = ( "test/poly1305_internal_test-bin-poly1305_internal_test.o" => [ "test/poly1305_internal_test.c" ], + "test/priority_queue_test" => [ + "test/priority_queue_test-bin-priority_queue_test.o" + ], + "test/priority_queue_test-bin-priority_queue_test.o" => [ + "test/priority_queue_test.c" + ], "test/property_test" => [ "test/property_test-bin-property_test.o" ], @@ -27320,6 +32156,12 @@ our %unified_info = ( "test/provfetchtest-bin-provfetchtest.o" => [ "test/provfetchtest.c" ], + "test/provider_default_search_path_test" => [ + "test/provider_default_search_path_test-bin-provider_default_search_path_test.o" + ], + "test/provider_default_search_path_test-bin-provider_default_search_path_test.o" => [ + "test/provider_default_search_path_test.c" + ], "test/provider_fallback_test" => [ "test/provider_fallback_test-bin-provider_fallback_test.o" ], @@ -27368,6 +32210,174 @@ our %unified_info = ( "test/punycode_test-bin-punycode_test.o" => [ "test/punycode_test.c" ], + "test/quic_ackm_test" => [ + "test/quic_ackm_test-bin-cc_dummy.o", + "test/quic_ackm_test-bin-quic_ackm_test.o" + ], + "test/quic_ackm_test-bin-cc_dummy.o" => [ + "test/cc_dummy.c" + ], + "test/quic_ackm_test-bin-quic_ackm_test.o" => [ + "test/quic_ackm_test.c" + ], + "test/quic_cc_test" => [ + "test/quic_cc_test-bin-quic_cc_test.o" + ], + "test/quic_cc_test-bin-quic_cc_test.o" => [ + "test/quic_cc_test.c" + ], + "test/quic_cfq_test" => [ + "test/quic_cfq_test-bin-quic_cfq_test.o" + ], + "test/quic_cfq_test-bin-quic_cfq_test.o" => [ + "test/quic_cfq_test.c" + ], + "test/quic_client_test" => [ + "test/quic_client_test-bin-quic_client_test.o" + ], + "test/quic_client_test-bin-quic_client_test.o" => [ + "test/quic_client_test.c" + ], + "test/quic_fc_test" => [ + "test/quic_fc_test-bin-quic_fc_test.o" + ], + "test/quic_fc_test-bin-quic_fc_test.o" => [ + "test/quic_fc_test.c" + ], + "test/quic_fifd_test" => [ + "test/quic_fifd_test-bin-cc_dummy.o", + "test/quic_fifd_test-bin-quic_fifd_test.o" + ], + "test/quic_fifd_test-bin-cc_dummy.o" => [ + "test/cc_dummy.c" + ], + "test/quic_fifd_test-bin-quic_fifd_test.o" => [ + "test/quic_fifd_test.c" + ], + "test/quic_lcidm_test" => [ + "test/quic_lcidm_test-bin-quic_lcidm_test.o" + ], + "test/quic_lcidm_test-bin-quic_lcidm_test.o" => [ + "test/quic_lcidm_test.c" + ], + "test/quic_multistream_test" => [ + "test/helpers/quic_multistream_test-bin-noisydgrambio.o", + "test/helpers/quic_multistream_test-bin-pktsplitbio.o", + "test/helpers/quic_multistream_test-bin-quictestlib.o", + "test/helpers/quic_multistream_test-bin-ssltestlib.o", + "test/quic_multistream_test-bin-quic_multistream_test.o" + ], + "test/quic_multistream_test-bin-quic_multistream_test.o" => [ + "test/quic_multistream_test.c" + ], + "test/quic_newcid_test" => [ + "test/helpers/quic_newcid_test-bin-noisydgrambio.o", + "test/helpers/quic_newcid_test-bin-pktsplitbio.o", + "test/helpers/quic_newcid_test-bin-quictestlib.o", + "test/helpers/quic_newcid_test-bin-ssltestlib.o", + "test/quic_newcid_test-bin-quic_newcid_test.o" + ], + "test/quic_newcid_test-bin-quic_newcid_test.o" => [ + "test/quic_newcid_test.c" + ], + "test/quic_qlog_test" => [ + "test/quic_qlog_test-bin-quic_qlog_test.o" + ], + "test/quic_qlog_test-bin-quic_qlog_test.o" => [ + "test/quic_qlog_test.c" + ], + "test/quic_radix_test" => [ + "test/helpers/quic_radix_test-bin-noisydgrambio.o", + "test/helpers/quic_radix_test-bin-pktsplitbio.o", + "test/helpers/quic_radix_test-bin-quictestlib.o", + "test/helpers/quic_radix_test-bin-ssltestlib.o", + "test/radix/quic_radix_test-bin-quic_radix.o" + ], + "test/quic_rcidm_test" => [ + "test/quic_rcidm_test-bin-quic_rcidm_test.o" + ], + "test/quic_rcidm_test-bin-quic_rcidm_test.o" => [ + "test/quic_rcidm_test.c" + ], + "test/quic_record_test" => [ + "test/quic_record_test-bin-quic_record_test.o" + ], + "test/quic_record_test-bin-quic_record_test.o" => [ + "test/quic_record_test.c" + ], + "test/quic_srt_gen_test" => [ + "test/helpers/quic_srt_gen_test-bin-noisydgrambio.o", + "test/helpers/quic_srt_gen_test-bin-pktsplitbio.o", + "test/helpers/quic_srt_gen_test-bin-quictestlib.o", + "test/helpers/quic_srt_gen_test-bin-ssltestlib.o", + "test/quic_srt_gen_test-bin-quic_srt_gen_test.o" + ], + "test/quic_srt_gen_test-bin-quic_srt_gen_test.o" => [ + "test/quic_srt_gen_test.c" + ], + "test/quic_srtm_test" => [ + "test/quic_srtm_test-bin-quic_srtm_test.o" + ], + "test/quic_srtm_test-bin-quic_srtm_test.o" => [ + "test/quic_srtm_test.c" + ], + "test/quic_stream_test" => [ + "test/quic_stream_test-bin-quic_stream_test.o" + ], + "test/quic_stream_test-bin-quic_stream_test.o" => [ + "test/quic_stream_test.c" + ], + "test/quic_tserver_test" => [ + "test/quic_tserver_test-bin-quic_tserver_test.o" + ], + "test/quic_tserver_test-bin-quic_tserver_test.o" => [ + "test/quic_tserver_test.c" + ], + "test/quic_txp_test" => [ + "test/quic_txp_test-bin-cc_dummy.o", + "test/quic_txp_test-bin-quic_txp_test.o" + ], + "test/quic_txp_test-bin-cc_dummy.o" => [ + "test/cc_dummy.c" + ], + "test/quic_txp_test-bin-quic_txp_test.o" => [ + "test/quic_txp_test.c" + ], + "test/quic_txpim_test" => [ + "test/quic_txpim_test-bin-quic_txpim_test.o" + ], + "test/quic_txpim_test-bin-quic_txpim_test.o" => [ + "test/quic_txpim_test.c" + ], + "test/quic_wire_test" => [ + "test/quic_wire_test-bin-quic_wire_test.o" + ], + "test/quic_wire_test-bin-quic_wire_test.o" => [ + "test/quic_wire_test.c" + ], + "test/quicapitest" => [ + "test/helpers/quicapitest-bin-noisydgrambio.o", + "test/helpers/quicapitest-bin-pktsplitbio.o", + "test/helpers/quicapitest-bin-quictestlib.o", + "test/helpers/quicapitest-bin-ssltestlib.o", + "test/quicapitest-bin-quicapitest.o" + ], + "test/quicapitest-bin-quicapitest.o" => [ + "test/quicapitest.c" + ], + "test/quicfaultstest" => [ + "test/helpers/quicfaultstest-bin-noisydgrambio.o", + "test/helpers/quicfaultstest-bin-pktsplitbio.o", + "test/helpers/quicfaultstest-bin-quictestlib.o", + "test/helpers/quicfaultstest-bin-ssltestlib.o", + "test/quicfaultstest-bin-quicfaultstest.o" + ], + "test/quicfaultstest-bin-quicfaultstest.o" => [ + "test/quicfaultstest.c" + ], + "test/radix/quic_radix_test-bin-quic_radix.o" => [ + "test/radix/quic_radix.c" + ], "test/rand_status_test" => [ "test/rand_status_test-bin-rand_status_test.o" ], @@ -27398,11 +32408,11 @@ our %unified_info = ( "test/rc5test-bin-rc5test.o" => [ "test/rc5test.c" ], - "test/rdrand_sanitytest" => [ - "test/rdrand_sanitytest-bin-rdrand_sanitytest.o" + "test/rdcpu_sanitytest" => [ + "test/rdcpu_sanitytest-bin-rdcpu_sanitytest.o" ], - "test/rdrand_sanitytest-bin-rdrand_sanitytest.o" => [ - "test/rdrand_sanitytest.c" + "test/rdcpu_sanitytest-bin-rdcpu_sanitytest.o" => [ + "test/rdcpu_sanitytest.c" ], "test/recordlentest" => [ "test/helpers/recordlentest-bin-ssltestlib.o", @@ -27411,6 +32421,13 @@ our %unified_info = ( "test/recordlentest-bin-recordlentest.o" => [ "test/recordlentest.c" ], + "test/rpktest" => [ + "test/helpers/rpktest-bin-ssltestlib.o", + "test/rpktest-bin-rpktest.o" + ], + "test/rpktest-bin-rpktest.o" => [ + "test/rpktest.c" + ], "test/rsa_complex" => [ "test/rsa_complex-bin-rsa_complex.o" ], @@ -27435,6 +32452,18 @@ our %unified_info = ( "test/rsa_test-bin-rsa_test.o" => [ "test/rsa_test.c" ], + "test/rsa_x931_test" => [ + "test/rsa_x931_test-bin-rsa_x931_test.o" + ], + "test/rsa_x931_test-bin-rsa_x931_test.o" => [ + "test/rsa_x931_test.c" + ], + "test/safe_math_test" => [ + "test/safe_math_test-bin-safe_math_test.o" + ], + "test/safe_math_test-bin-safe_math_test.o" => [ + "test/safe_math_test.c" + ], "test/sanitytest" => [ "test/sanitytest-bin-sanitytest.o" ], @@ -27466,6 +32495,12 @@ our %unified_info = ( "test/siphash_internal_test-bin-siphash_internal_test.o" => [ "test/siphash_internal_test.c" ], + "test/slh_dsa_test" => [ + "test/slh_dsa_test-bin-slh_dsa_test.o" + ], + "test/slh_dsa_test-bin-slh_dsa_test.o" => [ + "test/slh_dsa_test.c" + ], "test/sm2_internal_test" => [ "test/sm2_internal_test-bin-sm2_internal_test.o" ], @@ -27508,6 +32543,13 @@ our %unified_info = ( "test/ssl_ctx_test-bin-ssl_ctx_test.o" => [ "test/ssl_ctx_test.c" ], + "test/ssl_handshake_rtt_test" => [ + "test/helpers/ssl_handshake_rtt_test-bin-ssltestlib.o", + "test/ssl_handshake_rtt_test-bin-ssl_handshake_rtt_test.o" + ], + "test/ssl_handshake_rtt_test-bin-ssl_handshake_rtt_test.o" => [ + "test/ssl_handshake_rtt_test.c" + ], "test/ssl_old_test" => [ "test/helpers/ssl_old_test-bin-predefined_dhparams.o", "test/ssl_old_test-bin-ssl_old_test.o" @@ -27566,6 +32608,12 @@ our %unified_info = ( "test/stack_test-bin-stack_test.o" => [ "test/stack_test.c" ], + "test/strtoultest" => [ + "test/strtoultest-bin-strtoultest.o" + ], + "test/strtoultest-bin-strtoultest.o" => [ + "test/strtoultest.c" + ], "test/sysdefaulttest" => [ "test/sysdefaulttest-bin-sysdefaulttest.o" ], @@ -27596,6 +32644,9 @@ our %unified_info = ( "test/testutil/libtestutil-lib-format_output.o" => [ "test/testutil/format_output.c" ], + "test/testutil/libtestutil-lib-helper.o" => [ + "test/testutil/helper.c" + ], "test/testutil/libtestutil-lib-load.o" => [ "test/testutil/load.c" ], @@ -27629,6 +32680,12 @@ our %unified_info = ( "test/testutil/libtestutil-lib-testutil_init.o" => [ "test/testutil/testutil_init.c" ], + "test/threadpool_test" => [ + "test/threadpool_test-bin-threadpool_test.o" + ], + "test/threadpool_test-bin-threadpool_test.o" => [ + "test/threadpool_test.c" + ], "test/threadstest" => [ "test/threadstest-bin-threadstest.o" ], @@ -27647,6 +32704,12 @@ our %unified_info = ( "test/time_offset_test-bin-time_offset_test.o" => [ "test/time_offset_test.c" ], + "test/time_test" => [ + "test/time_test-bin-time_test.o" + ], + "test/time_test-bin-time_test.o" => [ + "test/time_test.c" + ], "test/tls13ccstest" => [ "test/helpers/tls13ccstest-bin-ssltestlib.o", "test/tls13ccstest-bin-tls13ccstest.o" @@ -27660,6 +32723,13 @@ our %unified_info = ( "test/tls13encryptiontest-bin-tls13encryptiontest.o" => [ "test/tls13encryptiontest.c" ], + "test/tls13groupselection_test" => [ + "test/helpers/tls13groupselection_test-bin-ssltestlib.o", + "test/tls13groupselection_test-bin-tls13groupselection_test.o" + ], + "test/tls13groupselection_test-bin-tls13groupselection_test.o" => [ + "test/tls13groupselection_test.c" + ], "test/trace_api_test" => [ "test/trace_api_test-bin-trace_api_test.o" ], @@ -27715,6 +32785,12 @@ our %unified_info = ( "test/wpackettest-bin-wpackettest.o" => [ "test/wpackettest.c" ], + "test/x509_acert_test" => [ + "test/x509_acert_test-bin-x509_acert_test.o" + ], + "test/x509_acert_test-bin-x509_acert_test.o" => [ + "test/x509_acert_test.c" + ], "test/x509_check_cert_pkey_test" => [ "test/x509_check_cert_pkey_test-bin-x509_check_cert_pkey_test.o" ], @@ -27733,6 +32809,24 @@ our %unified_info = ( "test/x509_internal_test-bin-x509_internal_test.o" => [ "test/x509_internal_test.c" ], + "test/x509_load_cert_file_test" => [ + "test/x509_load_cert_file_test-bin-x509_load_cert_file_test.o" + ], + "test/x509_load_cert_file_test-bin-x509_load_cert_file_test.o" => [ + "test/x509_load_cert_file_test.c" + ], + "test/x509_req_test" => [ + "test/x509_req_test-bin-x509_req_test.o" + ], + "test/x509_req_test-bin-x509_req_test.o" => [ + "test/x509_req_test.c" + ], + "test/x509_test" => [ + "test/x509_test-bin-x509_test.o" + ], + "test/x509_test-bin-x509_test.o" => [ + "test/x509_test.c" + ], "test/x509_time_test" => [ "test/x509_time_test-bin-x509_time_test.o" ], @@ -27793,6 +32887,7 @@ my @makevars = ( "LDLIBS", "MT", "MTFLAGS", + "OBJCOPY", "PERL", "RANLIB", "RC", @@ -27806,6 +32901,12 @@ my %disabled_info = ( "asan" => { "macro" => "OPENSSL_NO_ASAN" }, + "brotli" => { + "macro" => "OPENSSL_NO_BROTLI" + }, + "brotli-dynamic" => { + "macro" => "OPENSSL_NO_BROTLI_DYNAMIC" + }, "comp" => { "macro" => "OPENSSL_NO_COMP", "skipped" => [ @@ -27818,6 +32919,9 @@ my %disabled_info = ( "crypto-mdebug-backtrace" => { "macro" => "OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE" }, + "demos" => { + "macro" => "OPENSSL_NO_DEMOS" + }, "devcryptoeng" => { "macro" => "OPENSSL_NO_DEVCRYPTOENG" }, @@ -27830,12 +32934,24 @@ my %disabled_info = ( "external-tests" => { "macro" => "OPENSSL_NO_EXTERNAL_TESTS" }, + "fips-jitter" => { + "macro" => "OPENSSL_NO_FIPS_JITTER" + }, "fuzz-afl" => { "macro" => "OPENSSL_NO_FUZZ_AFL" }, "fuzz-libfuzzer" => { "macro" => "OPENSSL_NO_FUZZ_LIBFUZZER" }, + "h3demo" => { + "macro" => "OPENSSL_NO_H3DEMO" + }, + "hqinterop" => { + "macro" => "OPENSSL_NO_HQINTEROP" + }, + "jitter" => { + "macro" => "OPENSSL_NO_JITTER" + }, "ktls" => { "macro" => "OPENSSL_NO_KTLS" }, @@ -27851,6 +32967,9 @@ my %disabled_info = ( "msan" => { "macro" => "OPENSSL_NO_MSAN" }, + "pie" => { + "macro" => "OPENSSL_NO_PIE" + }, "rc5" => { "macro" => "OPENSSL_NO_RC5", "skipped" => [ @@ -27866,6 +32985,12 @@ my %disabled_info = ( "ssl3-method" => { "macro" => "OPENSSL_NO_SSL3_METHOD" }, + "sslkeylog" => { + "macro" => "OPENSSL_NO_SSLKEYLOG" + }, + "tfo" => { + "macro" => "OPENSSL_NO_TFO" + }, "trace" => { "macro" => "OPENSSL_NO_TRACE" }, @@ -27880,6 +33005,18 @@ my %disabled_info = ( }, "weak-ssl-ciphers" => { "macro" => "OPENSSL_NO_WEAK_SSL_CIPHERS" + }, + "zlib" => { + "macro" => "OPENSSL_NO_ZLIB" + }, + "zlib-dynamic" => { + "macro" => "OPENSSL_NO_ZLIB_DYNAMIC" + }, + "zstd" => { + "macro" => "OPENSSL_NO_ZSTD" + }, + "zstd-dynamic" => { + "macro" => "OPENSSL_NO_ZSTD_DYNAMIC" } ); my @user_crossable = qw( AR AS CC CXX CPP LD MT RANLIB RC ); @@ -27893,15 +33030,15 @@ unless (caller) { use File::Copy; use Pod::Usage; - use lib '/home/runner/work/node/node/deps/openssl/openssl/util/perl'; - use OpenSSL::fallback '/home/runner/work/node/node/deps/openssl/openssl/external/perl/MODULES.txt'; + use lib '/node/deps/openssl/openssl/util/perl'; + use OpenSSL::fallback '/node/deps/openssl/openssl/external/perl/MODULES.txt'; my $here = dirname($0); if (scalar @ARGV == 0) { # With no arguments, re-create the build file # We do that in two steps, where the first step emits perl - # snipets. + # snippets. my $buildfile = $config{build_file}; my $buildfile_template = "$buildfile.in"; @@ -27921,7 +33058,7 @@ unless (caller) { ); use lib '.'; - use lib '/home/runner/work/node/node/deps/openssl/openssl/Configurations'; + use lib '/node/deps/openssl/openssl/Configurations'; use gentemplate; open my $buildfile_template_fh, ">$buildfile_template" @@ -27938,8 +33075,8 @@ unless (caller) { my $prepend = <<'_____'; use File::Spec::Functions; -use lib '/home/runner/work/node/node/deps/openssl/openssl/util/perl'; -use lib '/home/runner/work/node/node/deps/openssl/openssl/Configurations'; +use lib '/node/deps/openssl/openssl/util/perl'; +use lib '/node/deps/openssl/openssl/Configurations'; use lib '.'; use platform; _____ diff --git a/deps/openssl/config/archs/VC-WIN64A/asm/crypto/aes/aes-x86_64.asm b/deps/openssl/config/archs/VC-WIN64A/asm/crypto/aes/aes-x86_64.asm index 32e49db2b9cbc6..61e7c0a9fada60 100644 --- a/deps/openssl/config/archs/VC-WIN64A/asm/crypto/aes/aes-x86_64.asm +++ b/deps/openssl/config/archs/VC-WIN64A/asm/crypto/aes/aes-x86_64.asm @@ -1915,6 +1915,7 @@ $L$cbc_epilogue: DB 0F3h,0C3h ;repret $L$SEH_end_AES_cbc_encrypt: +section .rdata rdata align=64 ALIGN 64 $L$AES_Te: DD 0xa56363c6,0xa56363c6 @@ -2704,6 +2705,7 @@ DB 67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97 DB 112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103 DB 62,0 ALIGN 64 +section .text EXTERN __imp_RtlVirtualUnwind ALIGN 16 diff --git a/deps/openssl/config/archs/VC-WIN64A/asm/crypto/aes/aesni-sha1-x86_64.asm b/deps/openssl/config/archs/VC-WIN64A/asm/crypto/aes/aesni-sha1-x86_64.asm index ac71215c45e2dc..a842bfa5e5cbe2 100644 --- a/deps/openssl/config/archs/VC-WIN64A/asm/crypto/aes/aesni-sha1-x86_64.asm +++ b/deps/openssl/config/archs/VC-WIN64A/asm/crypto/aes/aesni-sha1-x86_64.asm @@ -2781,6 +2781,7 @@ $L$epilogue_avx: DB 0F3h,0C3h ;repret $L$SEH_end_aesni_cbc_sha1_enc_avx: +section .rdata rdata align=64 ALIGN 64 K_XX_XX: DD 0x5a827999,0x5a827999,0x5a827999,0x5a827999 @@ -2796,6 +2797,7 @@ DB 44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32 DB 60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111 DB 114,103,62,0 ALIGN 64 +section .text ALIGN 32 aesni_cbc_sha1_enc_shaext: diff --git a/deps/openssl/config/archs/VC-WIN64A/asm/crypto/aes/aesni-sha256-x86_64.asm b/deps/openssl/config/archs/VC-WIN64A/asm/crypto/aes/aesni-sha256-x86_64.asm index 17e571d38b1846..39a88bc72d1930 100644 --- a/deps/openssl/config/archs/VC-WIN64A/asm/crypto/aes/aesni-sha256-x86_64.asm +++ b/deps/openssl/config/archs/VC-WIN64A/asm/crypto/aes/aesni-sha256-x86_64.asm @@ -39,6 +39,7 @@ $L$probe: +section .rdata rdata align=64 ALIGN 64 K256: @@ -85,6 +86,7 @@ DB 54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98 DB 121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108 DB 46,111,114,103,62,0 ALIGN 64 +section .text ALIGN 64 aesni_cbc_sha256_enc_xop: diff --git a/deps/openssl/config/archs/VC-WIN64A/asm/crypto/aes/aesni-x86_64.asm b/deps/openssl/config/archs/VC-WIN64A/asm/crypto/aes/aesni-x86_64.asm index b590ecea7d5a49..8058ea319e20c6 100644 --- a/deps/openssl/config/archs/VC-WIN64A/asm/crypto/aes/aesni-x86_64.asm +++ b/deps/openssl/config/archs/VC-WIN64A/asm/crypto/aes/aesni-x86_64.asm @@ -4762,6 +4762,7 @@ $L$key_expansion_256b: +section .rdata rdata align=64 ALIGN 64 $L$bswap_mask: DB 15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0 @@ -4787,6 +4788,7 @@ DB 83,45,78,73,44,32,67,82,89,80,84,79,71,65,77,83 DB 32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115 DB 115,108,46,111,114,103,62,0 ALIGN 64 +section .text EXTERN __imp_RtlVirtualUnwind ALIGN 16 diff --git a/deps/openssl/config/archs/VC-WIN64A/asm/crypto/aes/aesni-xts-avx512.asm b/deps/openssl/config/archs/VC-WIN64A/asm/crypto/aes/aesni-xts-avx512.asm new file mode 100644 index 00000000000000..1e8bcc6b6f7543 --- /dev/null +++ b/deps/openssl/config/archs/VC-WIN64A/asm/crypto/aes/aesni-xts-avx512.asm @@ -0,0 +1,8350 @@ +default rel +%define XMMWORD +%define YMMWORD +%define ZMMWORD +section .text code align=64 + +EXTERN OPENSSL_ia32cap_P +global aesni_xts_avx512_eligible + +ALIGN 32 +aesni_xts_avx512_eligible: + mov ecx,DWORD[((OPENSSL_ia32cap_P+8))] + xor eax,eax + + and ecx,0xc0030000 + cmp ecx,0xc0030000 + jne NEAR $L$_done + mov ecx,DWORD[((OPENSSL_ia32cap_P+12))] + + and ecx,0x640 + cmp ecx,0x640 + cmove eax,ecx +$L$_done: + DB 0F3h,0C3h ;repret + +global aesni_xts_128_encrypt_avx512 + + +ALIGN 32 +aesni_xts_128_encrypt_avx512: + mov QWORD[8+rsp],rdi ;WIN64 prologue + mov QWORD[16+rsp],rsi + mov rax,rsp +$L$SEH_begin_aesni_xts_128_encrypt_avx512: + mov rdi,rcx + mov rsi,rdx + mov rdx,r8 + mov rcx,r9 + mov r8,QWORD[40+rsp] + mov r9,QWORD[48+rsp] + + + +DB 243,15,30,250 + push rbp + mov rbp,rsp + sub rsp,312 + and rsp,0xffffffffffffffc0 + mov QWORD[288+rsp],rbx + mov QWORD[((288 + 8))+rsp],rdi + mov QWORD[((288 + 16))+rsp],rsi + vmovdqa XMMWORD[(128 + 0)+rsp],xmm6 + vmovdqa XMMWORD[(128 + 16)+rsp],xmm7 + vmovdqa XMMWORD[(128 + 32)+rsp],xmm8 + vmovdqa XMMWORD[(128 + 48)+rsp],xmm9 + vmovdqa XMMWORD[(128 + 64)+rsp],xmm10 + vmovdqa XMMWORD[(128 + 80)+rsp],xmm11 + vmovdqa XMMWORD[(128 + 96)+rsp],xmm12 + vmovdqa XMMWORD[(128 + 112)+rsp],xmm13 + vmovdqa XMMWORD[(128 + 128)+rsp],xmm14 + vmovdqa XMMWORD[(128 + 144)+rsp],xmm15 + mov r10,0x87 + vmovdqu xmm1,XMMWORD[r9] + vpxor xmm1,xmm1,XMMWORD[r8] + vaesenc xmm1,xmm1,XMMWORD[16+r8] + vaesenc xmm1,xmm1,XMMWORD[32+r8] + vaesenc xmm1,xmm1,XMMWORD[48+r8] + vaesenc xmm1,xmm1,XMMWORD[64+r8] + vaesenc xmm1,xmm1,XMMWORD[80+r8] + vaesenc xmm1,xmm1,XMMWORD[96+r8] + vaesenc xmm1,xmm1,XMMWORD[112+r8] + vaesenc xmm1,xmm1,XMMWORD[128+r8] + vaesenc xmm1,xmm1,XMMWORD[144+r8] + vaesenclast xmm1,xmm1,XMMWORD[160+r8] + vmovdqa XMMWORD[rsp],xmm1 + mov QWORD[((8 + 40))+rbp],rdi + mov QWORD[((8 + 48))+rbp],rsi + + cmp rdx,0x80 + jl NEAR $L$_less_than_128_bytes_hEgxyDlCngwrfFe + vpbroadcastq zmm25,r10 + cmp rdx,0x100 + jge NEAR $L$_start_by16_hEgxyDlCngwrfFe + cmp rdx,0x80 + jge NEAR $L$_start_by8_hEgxyDlCngwrfFe + +$L$_do_n_blocks_hEgxyDlCngwrfFe: + cmp rdx,0x0 + je NEAR $L$_ret_hEgxyDlCngwrfFe + cmp rdx,0x70 + jge NEAR $L$_remaining_num_blocks_is_7_hEgxyDlCngwrfFe + cmp rdx,0x60 + jge NEAR $L$_remaining_num_blocks_is_6_hEgxyDlCngwrfFe + cmp rdx,0x50 + jge NEAR $L$_remaining_num_blocks_is_5_hEgxyDlCngwrfFe + cmp rdx,0x40 + jge NEAR $L$_remaining_num_blocks_is_4_hEgxyDlCngwrfFe + cmp rdx,0x30 + jge NEAR $L$_remaining_num_blocks_is_3_hEgxyDlCngwrfFe + cmp rdx,0x20 + jge NEAR $L$_remaining_num_blocks_is_2_hEgxyDlCngwrfFe + cmp rdx,0x10 + jge NEAR $L$_remaining_num_blocks_is_1_hEgxyDlCngwrfFe + vmovdqa xmm8,xmm0 + vmovdqa xmm0,xmm9 + jmp NEAR $L$_steal_cipher_hEgxyDlCngwrfFe + +$L$_remaining_num_blocks_is_7_hEgxyDlCngwrfFe: + mov r8,0x0000ffffffffffff + kmovq k1,r8 + vmovdqu8 zmm1,ZMMWORD[rdi] + vmovdqu8 zmm2{k1},[64+rdi] + add rdi,0x70 + vbroadcasti32x4 zmm0,ZMMWORD[rcx] + vpternlogq zmm1,zmm9,zmm0,0x96 + vpternlogq zmm2,zmm10,zmm0,0x96 + vbroadcasti32x4 zmm0,ZMMWORD[16+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[32+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[48+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + vbroadcasti32x4 zmm0,ZMMWORD[64+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[80+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[96+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[112+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[128+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[144+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + vbroadcasti32x4 zmm0,ZMMWORD[160+rcx] + vaesenclast zmm1,zmm1,zmm0 + vaesenclast zmm2,zmm2,zmm0 + vpxorq zmm1,zmm1,zmm9 + vpxorq zmm2,zmm2,zmm10 + vmovdqu8 ZMMWORD[rsi],zmm1 + vmovdqu8 ZMMWORD[64+rsi]{k1},zmm2 + add rsi,0x70 + vextracti32x4 xmm8,zmm2,0x2 + vextracti32x4 xmm0,zmm10,0x3 + and rdx,0xf + je NEAR $L$_ret_hEgxyDlCngwrfFe + jmp NEAR $L$_steal_cipher_hEgxyDlCngwrfFe + +$L$_remaining_num_blocks_is_6_hEgxyDlCngwrfFe: + vmovdqu8 zmm1,ZMMWORD[rdi] + vmovdqu8 ymm2,YMMWORD[64+rdi] + add rdi,0x60 + vbroadcasti32x4 zmm0,ZMMWORD[rcx] + vpternlogq zmm1,zmm9,zmm0,0x96 + vpternlogq zmm2,zmm10,zmm0,0x96 + vbroadcasti32x4 zmm0,ZMMWORD[16+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[32+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[48+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + vbroadcasti32x4 zmm0,ZMMWORD[64+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[80+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[96+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[112+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[128+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[144+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + vbroadcasti32x4 zmm0,ZMMWORD[160+rcx] + vaesenclast zmm1,zmm1,zmm0 + vaesenclast zmm2,zmm2,zmm0 + vpxorq zmm1,zmm1,zmm9 + vpxorq zmm2,zmm2,zmm10 + vmovdqu8 ZMMWORD[rsi],zmm1 + vmovdqu8 YMMWORD[64+rsi],ymm2 + add rsi,0x60 + vextracti32x4 xmm8,zmm2,0x1 + vextracti32x4 xmm0,zmm10,0x2 + and rdx,0xf + je NEAR $L$_ret_hEgxyDlCngwrfFe + jmp NEAR $L$_steal_cipher_hEgxyDlCngwrfFe + +$L$_remaining_num_blocks_is_5_hEgxyDlCngwrfFe: + vmovdqu8 zmm1,ZMMWORD[rdi] + vmovdqu xmm2,XMMWORD[64+rdi] + add rdi,0x50 + vbroadcasti32x4 zmm0,ZMMWORD[rcx] + vpternlogq zmm1,zmm9,zmm0,0x96 + vpternlogq zmm2,zmm10,zmm0,0x96 + vbroadcasti32x4 zmm0,ZMMWORD[16+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[32+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[48+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + vbroadcasti32x4 zmm0,ZMMWORD[64+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[80+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[96+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[112+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[128+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[144+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + vbroadcasti32x4 zmm0,ZMMWORD[160+rcx] + vaesenclast zmm1,zmm1,zmm0 + vaesenclast zmm2,zmm2,zmm0 + vpxorq zmm1,zmm1,zmm9 + vpxorq zmm2,zmm2,zmm10 + vmovdqu8 ZMMWORD[rsi],zmm1 + vmovdqu XMMWORD[64+rsi],xmm2 + add rsi,0x50 + vmovdqa xmm8,xmm2 + vextracti32x4 xmm0,zmm10,0x1 + and rdx,0xf + je NEAR $L$_ret_hEgxyDlCngwrfFe + jmp NEAR $L$_steal_cipher_hEgxyDlCngwrfFe + +$L$_remaining_num_blocks_is_4_hEgxyDlCngwrfFe: + vmovdqu8 zmm1,ZMMWORD[rdi] + add rdi,0x40 + vbroadcasti32x4 zmm0,ZMMWORD[rcx] + vpternlogq zmm1,zmm9,zmm0,0x96 + vbroadcasti32x4 zmm0,ZMMWORD[16+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[32+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[48+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[64+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[80+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[96+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[112+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[128+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[144+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[160+rcx] + vaesenclast zmm1,zmm1,zmm0 + vpxorq zmm1,zmm1,zmm9 + vmovdqu8 ZMMWORD[rsi],zmm1 + add rsi,0x40 + vextracti32x4 xmm8,zmm1,0x3 + vmovdqa64 xmm0,xmm10 + and rdx,0xf + je NEAR $L$_ret_hEgxyDlCngwrfFe + jmp NEAR $L$_steal_cipher_hEgxyDlCngwrfFe +$L$_remaining_num_blocks_is_3_hEgxyDlCngwrfFe: + mov r8,-1 + shr r8,0x10 + kmovq k1,r8 + vmovdqu8 zmm1{k1},[rdi] + add rdi,0x30 + vbroadcasti32x4 zmm0,ZMMWORD[rcx] + vpternlogq zmm1,zmm9,zmm0,0x96 + vbroadcasti32x4 zmm0,ZMMWORD[16+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[32+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[48+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[64+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[80+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[96+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[112+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[128+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[144+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[160+rcx] + vaesenclast zmm1,zmm1,zmm0 + vpxorq zmm1,zmm1,zmm9 + vmovdqu8 ZMMWORD[rsi]{k1},zmm1 + add rsi,0x30 + vextracti32x4 xmm8,zmm1,0x2 + vextracti32x4 xmm0,zmm9,0x3 + and rdx,0xf + je NEAR $L$_ret_hEgxyDlCngwrfFe + jmp NEAR $L$_steal_cipher_hEgxyDlCngwrfFe +$L$_remaining_num_blocks_is_2_hEgxyDlCngwrfFe: + vmovdqu8 ymm1,YMMWORD[rdi] + add rdi,0x20 + vbroadcasti32x4 ymm0,YMMWORD[rcx] + vpternlogq ymm1,ymm9,ymm0,0x96 + vbroadcasti32x4 ymm0,YMMWORD[16+rcx] + vaesenc ymm1,ymm1,ymm0 + vbroadcasti32x4 ymm0,YMMWORD[32+rcx] + vaesenc ymm1,ymm1,ymm0 + vbroadcasti32x4 ymm0,YMMWORD[48+rcx] + vaesenc ymm1,ymm1,ymm0 + vbroadcasti32x4 ymm0,YMMWORD[64+rcx] + vaesenc ymm1,ymm1,ymm0 + vbroadcasti32x4 ymm0,YMMWORD[80+rcx] + vaesenc ymm1,ymm1,ymm0 + vbroadcasti32x4 ymm0,YMMWORD[96+rcx] + vaesenc ymm1,ymm1,ymm0 + vbroadcasti32x4 ymm0,YMMWORD[112+rcx] + vaesenc ymm1,ymm1,ymm0 + vbroadcasti32x4 ymm0,YMMWORD[128+rcx] + vaesenc ymm1,ymm1,ymm0 + vbroadcasti32x4 ymm0,YMMWORD[144+rcx] + vaesenc ymm1,ymm1,ymm0 + vbroadcasti32x4 ymm0,YMMWORD[160+rcx] + vaesenclast ymm1,ymm1,ymm0 + vpxorq ymm1,ymm1,ymm9 + vmovdqu YMMWORD[rsi],ymm1 + add rsi,0x20 + vextracti32x4 xmm8,zmm1,0x1 + vextracti32x4 xmm0,zmm9,0x2 + and rdx,0xf + je NEAR $L$_ret_hEgxyDlCngwrfFe + jmp NEAR $L$_steal_cipher_hEgxyDlCngwrfFe +$L$_remaining_num_blocks_is_1_hEgxyDlCngwrfFe: + vmovdqu xmm1,XMMWORD[rdi] + add rdi,0x10 + vpxor xmm1,xmm1,xmm9 + vpxor xmm1,xmm1,XMMWORD[rcx] + vaesenc xmm1,xmm1,XMMWORD[16+rcx] + vaesenc xmm1,xmm1,XMMWORD[32+rcx] + vaesenc xmm1,xmm1,XMMWORD[48+rcx] + vaesenc xmm1,xmm1,XMMWORD[64+rcx] + vaesenc xmm1,xmm1,XMMWORD[80+rcx] + vaesenc xmm1,xmm1,XMMWORD[96+rcx] + vaesenc xmm1,xmm1,XMMWORD[112+rcx] + vaesenc xmm1,xmm1,XMMWORD[128+rcx] + vaesenc xmm1,xmm1,XMMWORD[144+rcx] + vaesenclast xmm1,xmm1,XMMWORD[160+rcx] + vpxor xmm1,xmm1,xmm9 + vmovdqu XMMWORD[rsi],xmm1 + add rsi,0x10 + vmovdqa xmm8,xmm1 + vextracti32x4 xmm0,zmm9,0x1 + and rdx,0xf + je NEAR $L$_ret_hEgxyDlCngwrfFe + jmp NEAR $L$_steal_cipher_hEgxyDlCngwrfFe + + +$L$_start_by16_hEgxyDlCngwrfFe: + vbroadcasti32x4 zmm0,ZMMWORD[rsp] + vbroadcasti32x4 zmm8,ZMMWORD[shufb_15_7] + mov r8,0xaa + kmovq k2,r8 + vpshufb zmm1,zmm0,zmm8 + vpsllvq zmm4,zmm0,ZMMWORD[const_dq3210] + vpsrlvq zmm2,zmm1,ZMMWORD[const_dq5678] + vpclmulqdq zmm3,zmm2,zmm25,0x0 + vpxorq zmm4{k2},zmm4,zmm2 + vpxord zmm9,zmm3,zmm4 + vpsllvq zmm5,zmm0,ZMMWORD[const_dq7654] + vpsrlvq zmm6,zmm1,ZMMWORD[const_dq1234] + vpclmulqdq zmm7,zmm6,zmm25,0x0 + vpxorq zmm5{k2},zmm5,zmm6 + vpxord zmm10,zmm7,zmm5 + vpsrldq zmm13,zmm9,0xf + vpclmulqdq zmm14,zmm13,zmm25,0x0 + vpslldq zmm11,zmm9,0x1 + vpxord zmm11,zmm11,zmm14 + vpsrldq zmm15,zmm10,0xf + vpclmulqdq zmm16,zmm15,zmm25,0x0 + vpslldq zmm12,zmm10,0x1 + vpxord zmm12,zmm12,zmm16 + +$L$_main_loop_run_16_hEgxyDlCngwrfFe: + vmovdqu8 zmm1,ZMMWORD[rdi] + vmovdqu8 zmm2,ZMMWORD[64+rdi] + vmovdqu8 zmm3,ZMMWORD[128+rdi] + vmovdqu8 zmm4,ZMMWORD[192+rdi] + add rdi,0x100 + vpxorq zmm1,zmm1,zmm9 + vpxorq zmm2,zmm2,zmm10 + vpxorq zmm3,zmm3,zmm11 + vpxorq zmm4,zmm4,zmm12 + vbroadcasti32x4 zmm0,ZMMWORD[rcx] + vpxorq zmm1,zmm1,zmm0 + vpxorq zmm2,zmm2,zmm0 + vpxorq zmm3,zmm3,zmm0 + vpxorq zmm4,zmm4,zmm0 + vpsrldq zmm13,zmm11,0xf + vpclmulqdq zmm14,zmm13,zmm25,0x0 + vpslldq zmm15,zmm11,0x1 + vpxord zmm15,zmm15,zmm14 + vbroadcasti32x4 zmm0,ZMMWORD[16+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + vaesenc zmm3,zmm3,zmm0 + vaesenc zmm4,zmm4,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[32+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + vaesenc zmm3,zmm3,zmm0 + vaesenc zmm4,zmm4,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[48+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + vaesenc zmm3,zmm3,zmm0 + vaesenc zmm4,zmm4,zmm0 + vpsrldq zmm13,zmm12,0xf + vpclmulqdq zmm14,zmm13,zmm25,0x0 + vpslldq zmm16,zmm12,0x1 + vpxord zmm16,zmm16,zmm14 + vbroadcasti32x4 zmm0,ZMMWORD[64+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + vaesenc zmm3,zmm3,zmm0 + vaesenc zmm4,zmm4,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[80+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + vaesenc zmm3,zmm3,zmm0 + vaesenc zmm4,zmm4,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[96+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + vaesenc zmm3,zmm3,zmm0 + vaesenc zmm4,zmm4,zmm0 + vpsrldq zmm13,zmm15,0xf + vpclmulqdq zmm14,zmm13,zmm25,0x0 + vpslldq zmm17,zmm15,0x1 + vpxord zmm17,zmm17,zmm14 + vbroadcasti32x4 zmm0,ZMMWORD[112+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + vaesenc zmm3,zmm3,zmm0 + vaesenc zmm4,zmm4,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[128+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + vaesenc zmm3,zmm3,zmm0 + vaesenc zmm4,zmm4,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[144+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + vaesenc zmm3,zmm3,zmm0 + vaesenc zmm4,zmm4,zmm0 + vpsrldq zmm13,zmm16,0xf + vpclmulqdq zmm14,zmm13,zmm25,0x0 + vpslldq zmm18,zmm16,0x1 + vpxord zmm18,zmm18,zmm14 + vbroadcasti32x4 zmm0,ZMMWORD[160+rcx] + vaesenclast zmm1,zmm1,zmm0 + vaesenclast zmm2,zmm2,zmm0 + vaesenclast zmm3,zmm3,zmm0 + vaesenclast zmm4,zmm4,zmm0 + vpxorq zmm1,zmm1,zmm9 + vpxorq zmm2,zmm2,zmm10 + vpxorq zmm3,zmm3,zmm11 + vpxorq zmm4,zmm4,zmm12 + + vmovdqa32 zmm9,zmm15 + vmovdqa32 zmm10,zmm16 + vmovdqa32 zmm11,zmm17 + vmovdqa32 zmm12,zmm18 + vmovdqu8 ZMMWORD[rsi],zmm1 + vmovdqu8 ZMMWORD[64+rsi],zmm2 + vmovdqu8 ZMMWORD[128+rsi],zmm3 + vmovdqu8 ZMMWORD[192+rsi],zmm4 + add rsi,0x100 + sub rdx,0x100 + cmp rdx,0x100 + jae NEAR $L$_main_loop_run_16_hEgxyDlCngwrfFe + cmp rdx,0x80 + jae NEAR $L$_main_loop_run_8_hEgxyDlCngwrfFe + vextracti32x4 xmm0,zmm4,0x3 + jmp NEAR $L$_do_n_blocks_hEgxyDlCngwrfFe + +$L$_start_by8_hEgxyDlCngwrfFe: + vbroadcasti32x4 zmm0,ZMMWORD[rsp] + vbroadcasti32x4 zmm8,ZMMWORD[shufb_15_7] + mov r8,0xaa + kmovq k2,r8 + vpshufb zmm1,zmm0,zmm8 + vpsllvq zmm4,zmm0,ZMMWORD[const_dq3210] + vpsrlvq zmm2,zmm1,ZMMWORD[const_dq5678] + vpclmulqdq zmm3,zmm2,zmm25,0x0 + vpxorq zmm4{k2},zmm4,zmm2 + vpxord zmm9,zmm3,zmm4 + vpsllvq zmm5,zmm0,ZMMWORD[const_dq7654] + vpsrlvq zmm6,zmm1,ZMMWORD[const_dq1234] + vpclmulqdq zmm7,zmm6,zmm25,0x0 + vpxorq zmm5{k2},zmm5,zmm6 + vpxord zmm10,zmm7,zmm5 + +$L$_main_loop_run_8_hEgxyDlCngwrfFe: + vmovdqu8 zmm1,ZMMWORD[rdi] + vmovdqu8 zmm2,ZMMWORD[64+rdi] + add rdi,0x80 + vbroadcasti32x4 zmm0,ZMMWORD[rcx] + vpternlogq zmm1,zmm9,zmm0,0x96 + vpternlogq zmm2,zmm10,zmm0,0x96 + vpsrldq zmm13,zmm9,0xf + vpclmulqdq zmm14,zmm13,zmm25,0x0 + vpslldq zmm15,zmm9,0x1 + vpxord zmm15,zmm15,zmm14 + vbroadcasti32x4 zmm0,ZMMWORD[16+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[32+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[48+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + vpsrldq zmm13,zmm10,0xf + vpclmulqdq zmm14,zmm13,zmm25,0x0 + vpslldq zmm16,zmm10,0x1 + vpxord zmm16,zmm16,zmm14 + + vbroadcasti32x4 zmm0,ZMMWORD[64+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[80+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[96+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[112+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[128+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[144+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + vbroadcasti32x4 zmm0,ZMMWORD[160+rcx] + vaesenclast zmm1,zmm1,zmm0 + vaesenclast zmm2,zmm2,zmm0 + vpxorq zmm1,zmm1,zmm9 + vpxorq zmm2,zmm2,zmm10 + vmovdqa32 zmm9,zmm15 + vmovdqa32 zmm10,zmm16 + vmovdqu8 ZMMWORD[rsi],zmm1 + vmovdqu8 ZMMWORD[64+rsi],zmm2 + add rsi,0x80 + sub rdx,0x80 + cmp rdx,0x80 + jae NEAR $L$_main_loop_run_8_hEgxyDlCngwrfFe + vextracti32x4 xmm0,zmm2,0x3 + jmp NEAR $L$_do_n_blocks_hEgxyDlCngwrfFe + +$L$_steal_cipher_hEgxyDlCngwrfFe: + vmovdqa xmm2,xmm8 + lea rax,[vpshufb_shf_table] + vmovdqu xmm10,XMMWORD[rdx*1+rax] + vpshufb xmm8,xmm8,xmm10 + vmovdqu xmm3,XMMWORD[((-16))+rdx*1+rdi] + vmovdqu XMMWORD[(-16)+rdx*1+rsi],xmm8 + lea rax,[vpshufb_shf_table] + add rax,16 + sub rax,rdx + vmovdqu xmm10,XMMWORD[rax] + vpxor xmm10,xmm10,XMMWORD[mask1] + vpshufb xmm3,xmm3,xmm10 + vpblendvb xmm3,xmm3,xmm2,xmm10 + vpxor xmm8,xmm3,xmm0 + vpxor xmm8,xmm8,XMMWORD[rcx] + vaesenc xmm8,xmm8,XMMWORD[16+rcx] + vaesenc xmm8,xmm8,XMMWORD[32+rcx] + vaesenc xmm8,xmm8,XMMWORD[48+rcx] + vaesenc xmm8,xmm8,XMMWORD[64+rcx] + vaesenc xmm8,xmm8,XMMWORD[80+rcx] + vaesenc xmm8,xmm8,XMMWORD[96+rcx] + vaesenc xmm8,xmm8,XMMWORD[112+rcx] + vaesenc xmm8,xmm8,XMMWORD[128+rcx] + vaesenc xmm8,xmm8,XMMWORD[144+rcx] + vaesenclast xmm8,xmm8,XMMWORD[160+rcx] + vpxor xmm8,xmm8,xmm0 + vmovdqu XMMWORD[(-16)+rsi],xmm8 +$L$_ret_hEgxyDlCngwrfFe: + mov rbx,QWORD[288+rsp] + xor r8,r8 + mov QWORD[288+rsp],r8 + + vpxorq zmm0,zmm0,zmm0 + mov rdi,QWORD[((288 + 8))+rsp] + mov QWORD[((288 + 8))+rsp],r8 + mov rsi,QWORD[((288 + 16))+rsp] + mov QWORD[((288 + 16))+rsp],r8 + + vmovdqa xmm6,XMMWORD[((128 + 0))+rsp] + vmovdqa xmm7,XMMWORD[((128 + 16))+rsp] + vmovdqa xmm8,XMMWORD[((128 + 32))+rsp] + vmovdqa xmm9,XMMWORD[((128 + 48))+rsp] + + + vmovdqa64 ZMMWORD[128+rsp],zmm0 + + vmovdqa xmm10,XMMWORD[((128 + 64))+rsp] + vmovdqa xmm11,XMMWORD[((128 + 80))+rsp] + vmovdqa xmm12,XMMWORD[((128 + 96))+rsp] + vmovdqa xmm13,XMMWORD[((128 + 112))+rsp] + + + vmovdqa64 ZMMWORD[(128 + 64)+rsp],zmm0 + + vmovdqa xmm14,XMMWORD[((128 + 128))+rsp] + vmovdqa xmm15,XMMWORD[((128 + 144))+rsp] + + + + vmovdqa YMMWORD[(128 + 128)+rsp],ymm0 + mov rsp,rbp + pop rbp + vzeroupper + mov rdi,QWORD[8+rsp] ;WIN64 epilogue + mov rsi,QWORD[16+rsp] + DB 0F3h,0C3h ;repret + +$L$_less_than_128_bytes_hEgxyDlCngwrfFe: + vpbroadcastq zmm25,r10 + cmp rdx,0x10 + jb NEAR $L$_ret_hEgxyDlCngwrfFe + vbroadcasti32x4 zmm0,ZMMWORD[rsp] + vbroadcasti32x4 zmm8,ZMMWORD[shufb_15_7] + mov r8d,0xaa + kmovq k2,r8 + mov r8,rdx + and r8,0x70 + cmp r8,0x60 + je NEAR $L$_num_blocks_is_6_hEgxyDlCngwrfFe + cmp r8,0x50 + je NEAR $L$_num_blocks_is_5_hEgxyDlCngwrfFe + cmp r8,0x40 + je NEAR $L$_num_blocks_is_4_hEgxyDlCngwrfFe + cmp r8,0x30 + je NEAR $L$_num_blocks_is_3_hEgxyDlCngwrfFe + cmp r8,0x20 + je NEAR $L$_num_blocks_is_2_hEgxyDlCngwrfFe + cmp r8,0x10 + je NEAR $L$_num_blocks_is_1_hEgxyDlCngwrfFe + +$L$_num_blocks_is_7_hEgxyDlCngwrfFe: + vpshufb zmm1,zmm0,zmm8 + vpsllvq zmm4,zmm0,ZMMWORD[const_dq3210] + vpsrlvq zmm2,zmm1,ZMMWORD[const_dq5678] + vpclmulqdq zmm3,zmm2,zmm25,0x00 + vpxorq zmm4{k2},zmm4,zmm2 + vpxord zmm9,zmm3,zmm4 + vpsllvq zmm5,zmm0,ZMMWORD[const_dq7654] + vpsrlvq zmm6,zmm1,ZMMWORD[const_dq1234] + vpclmulqdq zmm7,zmm6,zmm25,0x00 + vpxorq zmm5{k2},zmm5,zmm6 + vpxord zmm10,zmm7,zmm5 + mov r8,0x0000ffffffffffff + kmovq k1,r8 + vmovdqu8 zmm1,ZMMWORD[rdi] + vmovdqu8 zmm2{k1},[64+rdi] + + add rdi,0x70 + vbroadcasti32x4 zmm0,ZMMWORD[rcx] + vpternlogq zmm1,zmm9,zmm0,0x96 + vpternlogq zmm2,zmm10,zmm0,0x96 + vbroadcasti32x4 zmm0,ZMMWORD[16+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[32+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[48+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + vbroadcasti32x4 zmm0,ZMMWORD[64+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[80+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[96+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[112+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[128+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[144+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + vbroadcasti32x4 zmm0,ZMMWORD[160+rcx] + vaesenclast zmm1,zmm1,zmm0 + vaesenclast zmm2,zmm2,zmm0 + vpxorq zmm1,zmm1,zmm9 + vpxorq zmm2,zmm2,zmm10 + vmovdqu8 ZMMWORD[rsi],zmm1 + vmovdqu8 ZMMWORD[64+rsi]{k1},zmm2 + add rsi,0x70 + vextracti32x4 xmm8,zmm2,0x2 + vextracti32x4 xmm0,zmm10,0x3 + and rdx,0xf + je NEAR $L$_ret_hEgxyDlCngwrfFe + jmp NEAR $L$_steal_cipher_hEgxyDlCngwrfFe +$L$_num_blocks_is_6_hEgxyDlCngwrfFe: + vpshufb zmm1,zmm0,zmm8 + vpsllvq zmm4,zmm0,ZMMWORD[const_dq3210] + vpsrlvq zmm2,zmm1,ZMMWORD[const_dq5678] + vpclmulqdq zmm3,zmm2,zmm25,0x00 + vpxorq zmm4{k2},zmm4,zmm2 + vpxord zmm9,zmm3,zmm4 + vpsllvq zmm5,zmm0,ZMMWORD[const_dq7654] + vpsrlvq zmm6,zmm1,ZMMWORD[const_dq1234] + vpclmulqdq zmm7,zmm6,zmm25,0x00 + vpxorq zmm5{k2},zmm5,zmm6 + vpxord zmm10,zmm7,zmm5 + vmovdqu8 zmm1,ZMMWORD[rdi] + vmovdqu8 ymm2,YMMWORD[64+rdi] + add rdi,96 + vbroadcasti32x4 zmm0,ZMMWORD[rcx] + vpternlogq zmm1,zmm9,zmm0,0x96 + vpternlogq zmm2,zmm10,zmm0,0x96 + vbroadcasti32x4 zmm0,ZMMWORD[16+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[32+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[48+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + vbroadcasti32x4 zmm0,ZMMWORD[64+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[80+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[96+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[112+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[128+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[144+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + vbroadcasti32x4 zmm0,ZMMWORD[160+rcx] + vaesenclast zmm1,zmm1,zmm0 + vaesenclast zmm2,zmm2,zmm0 + vpxorq zmm1,zmm1,zmm9 + vpxorq zmm2,zmm2,zmm10 + vmovdqu8 ZMMWORD[rsi],zmm1 + vmovdqu8 YMMWORD[64+rsi],ymm2 + add rsi,96 + + vextracti32x4 xmm8,ymm2,0x1 + vextracti32x4 xmm0,zmm10,0x2 + and rdx,0xf + je NEAR $L$_ret_hEgxyDlCngwrfFe + jmp NEAR $L$_steal_cipher_hEgxyDlCngwrfFe +$L$_num_blocks_is_5_hEgxyDlCngwrfFe: + vpshufb zmm1,zmm0,zmm8 + vpsllvq zmm4,zmm0,ZMMWORD[const_dq3210] + vpsrlvq zmm2,zmm1,ZMMWORD[const_dq5678] + vpclmulqdq zmm3,zmm2,zmm25,0x00 + vpxorq zmm4{k2},zmm4,zmm2 + vpxord zmm9,zmm3,zmm4 + vpsllvq zmm5,zmm0,ZMMWORD[const_dq7654] + vpsrlvq zmm6,zmm1,ZMMWORD[const_dq1234] + vpclmulqdq zmm7,zmm6,zmm25,0x00 + vpxorq zmm5{k2},zmm5,zmm6 + vpxord zmm10,zmm7,zmm5 + vmovdqu8 zmm1,ZMMWORD[rdi] + vmovdqu8 xmm2,XMMWORD[64+rdi] + add rdi,80 + vbroadcasti32x4 zmm0,ZMMWORD[rcx] + vpternlogq zmm1,zmm9,zmm0,0x96 + vpternlogq zmm2,zmm10,zmm0,0x96 + vbroadcasti32x4 zmm0,ZMMWORD[16+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[32+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[48+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + vbroadcasti32x4 zmm0,ZMMWORD[64+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[80+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[96+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[112+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[128+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[144+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + vbroadcasti32x4 zmm0,ZMMWORD[160+rcx] + vaesenclast zmm1,zmm1,zmm0 + vaesenclast zmm2,zmm2,zmm0 + vpxorq zmm1,zmm1,zmm9 + vpxorq zmm2,zmm2,zmm10 + vmovdqu8 ZMMWORD[rsi],zmm1 + vmovdqu8 XMMWORD[64+rsi],xmm2 + add rsi,80 + + vmovdqa xmm8,xmm2 + vextracti32x4 xmm0,zmm10,0x1 + and rdx,0xf + je NEAR $L$_ret_hEgxyDlCngwrfFe + jmp NEAR $L$_steal_cipher_hEgxyDlCngwrfFe +$L$_num_blocks_is_4_hEgxyDlCngwrfFe: + vpshufb zmm1,zmm0,zmm8 + vpsllvq zmm4,zmm0,ZMMWORD[const_dq3210] + vpsrlvq zmm2,zmm1,ZMMWORD[const_dq5678] + vpclmulqdq zmm3,zmm2,zmm25,0x00 + vpxorq zmm4{k2},zmm4,zmm2 + vpxord zmm9,zmm3,zmm4 + vpsllvq zmm5,zmm0,ZMMWORD[const_dq7654] + vpsrlvq zmm6,zmm1,ZMMWORD[const_dq1234] + vpclmulqdq zmm7,zmm6,zmm25,0x00 + vpxorq zmm5{k2},zmm5,zmm6 + vpxord zmm10,zmm7,zmm5 + vmovdqu8 zmm1,ZMMWORD[rdi] + add rdi,64 + vbroadcasti32x4 zmm0,ZMMWORD[rcx] + vpternlogq zmm1,zmm9,zmm0,0x96 + vbroadcasti32x4 zmm0,ZMMWORD[16+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[32+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[48+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[64+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[80+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[96+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[112+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[128+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[144+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[160+rcx] + vaesenclast zmm1,zmm1,zmm0 + vpxorq zmm1,zmm1,zmm9 + vmovdqu8 ZMMWORD[rsi],zmm1 + add rsi,64 + vextracti32x4 xmm8,zmm1,0x3 + vmovdqa xmm0,xmm10 + and rdx,0xf + je NEAR $L$_ret_hEgxyDlCngwrfFe + jmp NEAR $L$_steal_cipher_hEgxyDlCngwrfFe +$L$_num_blocks_is_3_hEgxyDlCngwrfFe: + vpshufb zmm1,zmm0,zmm8 + vpsllvq zmm4,zmm0,ZMMWORD[const_dq3210] + vpsrlvq zmm2,zmm1,ZMMWORD[const_dq5678] + vpclmulqdq zmm3,zmm2,zmm25,0x00 + vpxorq zmm4{k2},zmm4,zmm2 + vpxord zmm9,zmm3,zmm4 + mov r8,0x0000ffffffffffff + kmovq k1,r8 + vmovdqu8 zmm1{k1},[rdi] + add rdi,48 + vbroadcasti32x4 zmm0,ZMMWORD[rcx] + vpternlogq zmm1,zmm9,zmm0,0x96 + vbroadcasti32x4 zmm0,ZMMWORD[16+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[32+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[48+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[64+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[80+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[96+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[112+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[128+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[144+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[160+rcx] + vaesenclast zmm1,zmm1,zmm0 + vpxorq zmm1,zmm1,zmm9 + vmovdqu8 ZMMWORD[rsi]{k1},zmm1 + add rsi,48 + vextracti32x4 xmm8,zmm1,2 + vextracti32x4 xmm0,zmm9,3 + and rdx,0xf + je NEAR $L$_ret_hEgxyDlCngwrfFe + jmp NEAR $L$_steal_cipher_hEgxyDlCngwrfFe +$L$_num_blocks_is_2_hEgxyDlCngwrfFe: + vpshufb zmm1,zmm0,zmm8 + vpsllvq zmm4,zmm0,ZMMWORD[const_dq3210] + vpsrlvq zmm2,zmm1,ZMMWORD[const_dq5678] + vpclmulqdq zmm3,zmm2,zmm25,0x00 + vpxorq zmm4{k2},zmm4,zmm2 + vpxord zmm9,zmm3,zmm4 + + vmovdqu8 ymm1,YMMWORD[rdi] + add rdi,32 + vbroadcasti32x4 ymm0,YMMWORD[rcx] + vpternlogq ymm1,ymm9,ymm0,0x96 + vbroadcasti32x4 ymm0,YMMWORD[16+rcx] + vaesenc ymm1,ymm1,ymm0 + vbroadcasti32x4 ymm0,YMMWORD[32+rcx] + vaesenc ymm1,ymm1,ymm0 + vbroadcasti32x4 ymm0,YMMWORD[48+rcx] + vaesenc ymm1,ymm1,ymm0 + vbroadcasti32x4 ymm0,YMMWORD[64+rcx] + vaesenc ymm1,ymm1,ymm0 + vbroadcasti32x4 ymm0,YMMWORD[80+rcx] + vaesenc ymm1,ymm1,ymm0 + vbroadcasti32x4 ymm0,YMMWORD[96+rcx] + vaesenc ymm1,ymm1,ymm0 + vbroadcasti32x4 ymm0,YMMWORD[112+rcx] + vaesenc ymm1,ymm1,ymm0 + vbroadcasti32x4 ymm0,YMMWORD[128+rcx] + vaesenc ymm1,ymm1,ymm0 + vbroadcasti32x4 ymm0,YMMWORD[144+rcx] + vaesenc ymm1,ymm1,ymm0 + vbroadcasti32x4 ymm0,YMMWORD[160+rcx] + vaesenclast ymm1,ymm1,ymm0 + vpxorq ymm1,ymm1,ymm9 + vmovdqu8 YMMWORD[rsi],ymm1 + add rsi,32 + + vextracti32x4 xmm8,ymm1,1 + vextracti32x4 xmm0,zmm9,2 + and rdx,0xf + je NEAR $L$_ret_hEgxyDlCngwrfFe + jmp NEAR $L$_steal_cipher_hEgxyDlCngwrfFe +$L$_num_blocks_is_1_hEgxyDlCngwrfFe: + vpshufb zmm1,zmm0,zmm8 + vpsllvq zmm4,zmm0,ZMMWORD[const_dq3210] + vpsrlvq zmm2,zmm1,ZMMWORD[const_dq5678] + vpclmulqdq zmm3,zmm2,zmm25,0x00 + vpxorq zmm4{k2},zmm4,zmm2 + vpxord zmm9,zmm3,zmm4 + + vmovdqu8 xmm1,XMMWORD[rdi] + add rdi,16 + vbroadcasti32x4 ymm0,YMMWORD[rcx] + vpternlogq ymm1,ymm9,ymm0,0x96 + vbroadcasti32x4 ymm0,YMMWORD[16+rcx] + vaesenc ymm1,ymm1,ymm0 + vbroadcasti32x4 ymm0,YMMWORD[32+rcx] + vaesenc ymm1,ymm1,ymm0 + vbroadcasti32x4 ymm0,YMMWORD[48+rcx] + vaesenc ymm1,ymm1,ymm0 + vbroadcasti32x4 ymm0,YMMWORD[64+rcx] + vaesenc ymm1,ymm1,ymm0 + vbroadcasti32x4 ymm0,YMMWORD[80+rcx] + vaesenc ymm1,ymm1,ymm0 + vbroadcasti32x4 ymm0,YMMWORD[96+rcx] + vaesenc ymm1,ymm1,ymm0 + vbroadcasti32x4 ymm0,YMMWORD[112+rcx] + vaesenc ymm1,ymm1,ymm0 + vbroadcasti32x4 ymm0,YMMWORD[128+rcx] + vaesenc ymm1,ymm1,ymm0 + vbroadcasti32x4 ymm0,YMMWORD[144+rcx] + vaesenc ymm1,ymm1,ymm0 + vbroadcasti32x4 ymm0,YMMWORD[160+rcx] + vaesenclast ymm1,ymm1,ymm0 + vpxorq ymm1,ymm1,ymm9 + vmovdqu8 XMMWORD[rsi],xmm1 + add rsi,16 + + vmovdqa xmm8,xmm1 + vextracti32x4 xmm0,zmm9,1 + and rdx,0xf + je NEAR $L$_ret_hEgxyDlCngwrfFe + jmp NEAR $L$_steal_cipher_hEgxyDlCngwrfFe + +global aesni_xts_128_decrypt_avx512 + + +ALIGN 32 +aesni_xts_128_decrypt_avx512: + mov QWORD[8+rsp],rdi ;WIN64 prologue + mov QWORD[16+rsp],rsi + mov rax,rsp +$L$SEH_begin_aesni_xts_128_decrypt_avx512: + mov rdi,rcx + mov rsi,rdx + mov rdx,r8 + mov rcx,r9 + mov r8,QWORD[40+rsp] + mov r9,QWORD[48+rsp] + + + +DB 243,15,30,250 + push rbp + mov rbp,rsp + sub rsp,312 + and rsp,0xffffffffffffffc0 + mov QWORD[288+rsp],rbx + mov QWORD[((288 + 8))+rsp],rdi + mov QWORD[((288 + 16))+rsp],rsi + vmovdqa XMMWORD[(128 + 0)+rsp],xmm6 + vmovdqa XMMWORD[(128 + 16)+rsp],xmm7 + vmovdqa XMMWORD[(128 + 32)+rsp],xmm8 + vmovdqa XMMWORD[(128 + 48)+rsp],xmm9 + vmovdqa XMMWORD[(128 + 64)+rsp],xmm10 + vmovdqa XMMWORD[(128 + 80)+rsp],xmm11 + vmovdqa XMMWORD[(128 + 96)+rsp],xmm12 + vmovdqa XMMWORD[(128 + 112)+rsp],xmm13 + vmovdqa XMMWORD[(128 + 128)+rsp],xmm14 + vmovdqa XMMWORD[(128 + 144)+rsp],xmm15 + mov r10,0x87 + vmovdqu xmm1,XMMWORD[r9] + vpxor xmm1,xmm1,XMMWORD[r8] + vaesenc xmm1,xmm1,XMMWORD[16+r8] + vaesenc xmm1,xmm1,XMMWORD[32+r8] + vaesenc xmm1,xmm1,XMMWORD[48+r8] + vaesenc xmm1,xmm1,XMMWORD[64+r8] + vaesenc xmm1,xmm1,XMMWORD[80+r8] + vaesenc xmm1,xmm1,XMMWORD[96+r8] + vaesenc xmm1,xmm1,XMMWORD[112+r8] + vaesenc xmm1,xmm1,XMMWORD[128+r8] + vaesenc xmm1,xmm1,XMMWORD[144+r8] + vaesenclast xmm1,xmm1,XMMWORD[160+r8] + vmovdqa XMMWORD[rsp],xmm1 + mov QWORD[((8 + 40))+rbp],rdi + mov QWORD[((8 + 48))+rbp],rsi + + cmp rdx,0x80 + jb NEAR $L$_less_than_128_bytes_amivrujEyduiFoi + vpbroadcastq zmm25,r10 + cmp rdx,0x100 + jge NEAR $L$_start_by16_amivrujEyduiFoi + jmp NEAR $L$_start_by8_amivrujEyduiFoi + +$L$_do_n_blocks_amivrujEyduiFoi: + cmp rdx,0x0 + je NEAR $L$_ret_amivrujEyduiFoi + cmp rdx,0x70 + jge NEAR $L$_remaining_num_blocks_is_7_amivrujEyduiFoi + cmp rdx,0x60 + jge NEAR $L$_remaining_num_blocks_is_6_amivrujEyduiFoi + cmp rdx,0x50 + jge NEAR $L$_remaining_num_blocks_is_5_amivrujEyduiFoi + cmp rdx,0x40 + jge NEAR $L$_remaining_num_blocks_is_4_amivrujEyduiFoi + cmp rdx,0x30 + jge NEAR $L$_remaining_num_blocks_is_3_amivrujEyduiFoi + cmp rdx,0x20 + jge NEAR $L$_remaining_num_blocks_is_2_amivrujEyduiFoi + cmp rdx,0x10 + jge NEAR $L$_remaining_num_blocks_is_1_amivrujEyduiFoi + + + vmovdqu xmm1,xmm5 + + vpxor xmm1,xmm1,xmm9 + vmovdqu xmm0,XMMWORD[rcx] + vpxor xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[16+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[32+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[48+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[64+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[80+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[96+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[112+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[128+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[144+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[160+rcx] + vaesdeclast xmm1,xmm1,xmm0 + vpxor xmm1,xmm1,xmm9 + vmovdqu XMMWORD[(-16)+rsi],xmm1 + vmovdqa xmm8,xmm1 + + + mov r8,0x1 + kmovq k1,r8 + vpsllq xmm13,xmm9,0x3f + vpsraq xmm14,xmm13,0x3f + vpandq xmm5,xmm14,xmm25 + vpxorq xmm9{k1},xmm9,xmm5 + vpsrldq xmm10,xmm9,0x8 +DB 98,211,181,8,115,194,1 + vpslldq xmm13,xmm13,0x8 + vpxorq xmm0,xmm0,xmm13 + jmp NEAR $L$_steal_cipher_amivrujEyduiFoi + +$L$_remaining_num_blocks_is_7_amivrujEyduiFoi: + mov r8,0xffffffffffffffff + shr r8,0x10 + kmovq k1,r8 + vmovdqu8 zmm1,ZMMWORD[rdi] + vmovdqu8 zmm2{k1},[64+rdi] + add rdi,0x70 + and rdx,0xf + je NEAR $L$_done_7_remain_amivrujEyduiFoi + vextracti32x4 xmm12,zmm10,0x2 + vextracti32x4 xmm13,zmm10,0x3 + vinserti32x4 zmm10,zmm10,xmm13,0x2 + + vpxorq zmm1,zmm1,zmm9 + vpxorq zmm2,zmm2,zmm10 + + + vbroadcasti32x4 zmm0,ZMMWORD[rcx] + vpxorq zmm1,zmm1,zmm0 + vpxorq zmm2,zmm2,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[16+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[32+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[48+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + vbroadcasti32x4 zmm0,ZMMWORD[64+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[80+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[96+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[112+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[128+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[144+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[160+rcx] + vaesdeclast zmm1,zmm1,zmm0 + vaesdeclast zmm2,zmm2,zmm0 + + vpxorq zmm1,zmm1,zmm9 + vpxorq zmm2,zmm2,zmm10 + + + vmovdqa32 zmm9,zmm15 + vmovdqa32 zmm10,zmm16 + vmovdqu8 ZMMWORD[rsi],zmm1 + vmovdqu8 ZMMWORD[64+rsi]{k1},zmm2 + add rsi,0x70 + vextracti32x4 xmm8,zmm2,0x2 + vmovdqa xmm0,xmm12 + jmp NEAR $L$_steal_cipher_amivrujEyduiFoi + +$L$_done_7_remain_amivrujEyduiFoi: + + vpxorq zmm1,zmm1,zmm9 + vpxorq zmm2,zmm2,zmm10 + + + vbroadcasti32x4 zmm0,ZMMWORD[rcx] + vpxorq zmm1,zmm1,zmm0 + vpxorq zmm2,zmm2,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[16+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[32+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[48+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + vbroadcasti32x4 zmm0,ZMMWORD[64+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[80+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[96+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[112+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[128+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[144+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[160+rcx] + vaesdeclast zmm1,zmm1,zmm0 + vaesdeclast zmm2,zmm2,zmm0 + + vpxorq zmm1,zmm1,zmm9 + vpxorq zmm2,zmm2,zmm10 + + + vmovdqa32 zmm9,zmm15 + vmovdqa32 zmm10,zmm16 + vmovdqu8 ZMMWORD[rsi],zmm1 + vmovdqu8 ZMMWORD[64+rsi]{k1},zmm2 + jmp NEAR $L$_ret_amivrujEyduiFoi + +$L$_remaining_num_blocks_is_6_amivrujEyduiFoi: + vmovdqu8 zmm1,ZMMWORD[rdi] + vmovdqu8 ymm2,YMMWORD[64+rdi] + add rdi,0x60 + and rdx,0xf + je NEAR $L$_done_6_remain_amivrujEyduiFoi + vextracti32x4 xmm12,zmm10,0x1 + vextracti32x4 xmm13,zmm10,0x2 + vinserti32x4 zmm10,zmm10,xmm13,0x1 + + vpxorq zmm1,zmm1,zmm9 + vpxorq zmm2,zmm2,zmm10 + + + vbroadcasti32x4 zmm0,ZMMWORD[rcx] + vpxorq zmm1,zmm1,zmm0 + vpxorq zmm2,zmm2,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[16+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[32+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[48+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + vbroadcasti32x4 zmm0,ZMMWORD[64+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[80+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[96+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[112+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[128+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[144+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[160+rcx] + vaesdeclast zmm1,zmm1,zmm0 + vaesdeclast zmm2,zmm2,zmm0 + + vpxorq zmm1,zmm1,zmm9 + vpxorq zmm2,zmm2,zmm10 + + + vmovdqa32 zmm9,zmm15 + vmovdqa32 zmm10,zmm16 + vmovdqu8 ZMMWORD[rsi],zmm1 + vmovdqu8 YMMWORD[64+rsi],ymm2 + add rsi,0x60 + vextracti32x4 xmm8,zmm2,0x1 + vmovdqa xmm0,xmm12 + jmp NEAR $L$_steal_cipher_amivrujEyduiFoi + +$L$_done_6_remain_amivrujEyduiFoi: + + vpxorq zmm1,zmm1,zmm9 + vpxorq zmm2,zmm2,zmm10 + + + vbroadcasti32x4 zmm0,ZMMWORD[rcx] + vpxorq zmm1,zmm1,zmm0 + vpxorq zmm2,zmm2,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[16+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[32+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[48+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + vbroadcasti32x4 zmm0,ZMMWORD[64+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[80+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[96+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[112+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[128+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[144+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[160+rcx] + vaesdeclast zmm1,zmm1,zmm0 + vaesdeclast zmm2,zmm2,zmm0 + + vpxorq zmm1,zmm1,zmm9 + vpxorq zmm2,zmm2,zmm10 + + + vmovdqa32 zmm9,zmm15 + vmovdqa32 zmm10,zmm16 + vmovdqu8 ZMMWORD[rsi],zmm1 + vmovdqu8 YMMWORD[64+rsi],ymm2 + jmp NEAR $L$_ret_amivrujEyduiFoi + +$L$_remaining_num_blocks_is_5_amivrujEyduiFoi: + vmovdqu8 zmm1,ZMMWORD[rdi] + vmovdqu xmm2,XMMWORD[64+rdi] + add rdi,0x50 + and rdx,0xf + je NEAR $L$_done_5_remain_amivrujEyduiFoi + vmovdqa xmm12,xmm10 + vextracti32x4 xmm10,zmm10,0x1 + + vpxorq zmm1,zmm1,zmm9 + vpxorq zmm2,zmm2,zmm10 + + + vbroadcasti32x4 zmm0,ZMMWORD[rcx] + vpxorq zmm1,zmm1,zmm0 + vpxorq zmm2,zmm2,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[16+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[32+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[48+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + vbroadcasti32x4 zmm0,ZMMWORD[64+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[80+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[96+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[112+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[128+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[144+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[160+rcx] + vaesdeclast zmm1,zmm1,zmm0 + vaesdeclast zmm2,zmm2,zmm0 + + vpxorq zmm1,zmm1,zmm9 + vpxorq zmm2,zmm2,zmm10 + + + vmovdqa32 zmm9,zmm15 + vmovdqa32 zmm10,zmm16 + vmovdqu8 ZMMWORD[rsi],zmm1 + vmovdqu XMMWORD[64+rsi],xmm2 + add rsi,0x50 + vmovdqa xmm8,xmm2 + vmovdqa xmm0,xmm12 + jmp NEAR $L$_steal_cipher_amivrujEyduiFoi + +$L$_done_5_remain_amivrujEyduiFoi: + + vpxorq zmm1,zmm1,zmm9 + vpxorq zmm2,zmm2,zmm10 + + + vbroadcasti32x4 zmm0,ZMMWORD[rcx] + vpxorq zmm1,zmm1,zmm0 + vpxorq zmm2,zmm2,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[16+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[32+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[48+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + vbroadcasti32x4 zmm0,ZMMWORD[64+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[80+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[96+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[112+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[128+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[144+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[160+rcx] + vaesdeclast zmm1,zmm1,zmm0 + vaesdeclast zmm2,zmm2,zmm0 + + vpxorq zmm1,zmm1,zmm9 + vpxorq zmm2,zmm2,zmm10 + + + vmovdqa32 zmm9,zmm15 + vmovdqa32 zmm10,zmm16 + vmovdqu8 ZMMWORD[rsi],zmm1 + vmovdqu8 XMMWORD[64+rsi],xmm2 + jmp NEAR $L$_ret_amivrujEyduiFoi + +$L$_remaining_num_blocks_is_4_amivrujEyduiFoi: + vmovdqu8 zmm1,ZMMWORD[rdi] + add rdi,0x40 + and rdx,0xf + je NEAR $L$_done_4_remain_amivrujEyduiFoi + vextracti32x4 xmm12,zmm9,0x3 + vinserti32x4 zmm9,zmm9,xmm10,0x3 + + vpxorq zmm1,zmm1,zmm9 + vpxorq zmm2,zmm2,zmm10 + + + vbroadcasti32x4 zmm0,ZMMWORD[rcx] + vpxorq zmm1,zmm1,zmm0 + vpxorq zmm2,zmm2,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[16+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[32+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[48+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + vbroadcasti32x4 zmm0,ZMMWORD[64+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[80+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[96+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[112+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[128+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[144+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[160+rcx] + vaesdeclast zmm1,zmm1,zmm0 + vaesdeclast zmm2,zmm2,zmm0 + + vpxorq zmm1,zmm1,zmm9 + vpxorq zmm2,zmm2,zmm10 + + + vmovdqa32 zmm9,zmm15 + vmovdqa32 zmm10,zmm16 + vmovdqu8 ZMMWORD[rsi],zmm1 + add rsi,0x40 + vextracti32x4 xmm8,zmm1,0x3 + vmovdqa xmm0,xmm12 + jmp NEAR $L$_steal_cipher_amivrujEyduiFoi + +$L$_done_4_remain_amivrujEyduiFoi: + + vpxorq zmm1,zmm1,zmm9 + vpxorq zmm2,zmm2,zmm10 + + + vbroadcasti32x4 zmm0,ZMMWORD[rcx] + vpxorq zmm1,zmm1,zmm0 + vpxorq zmm2,zmm2,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[16+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[32+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[48+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + vbroadcasti32x4 zmm0,ZMMWORD[64+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[80+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[96+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[112+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[128+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[144+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[160+rcx] + vaesdeclast zmm1,zmm1,zmm0 + vaesdeclast zmm2,zmm2,zmm0 + + vpxorq zmm1,zmm1,zmm9 + vpxorq zmm2,zmm2,zmm10 + + + vmovdqa32 zmm9,zmm15 + vmovdqa32 zmm10,zmm16 + vmovdqu8 ZMMWORD[rsi],zmm1 + jmp NEAR $L$_ret_amivrujEyduiFoi + +$L$_remaining_num_blocks_is_3_amivrujEyduiFoi: + vmovdqu xmm1,XMMWORD[rdi] + vmovdqu xmm2,XMMWORD[16+rdi] + vmovdqu xmm3,XMMWORD[32+rdi] + add rdi,0x30 + and rdx,0xf + je NEAR $L$_done_3_remain_amivrujEyduiFoi + vextracti32x4 xmm13,zmm9,0x2 + vextracti32x4 xmm10,zmm9,0x1 + vextracti32x4 xmm11,zmm9,0x3 + vpxor xmm1,xmm1,xmm9 + vpxor xmm2,xmm2,xmm10 + vpxor xmm3,xmm3,xmm11 + vmovdqu xmm0,XMMWORD[rcx] + vpxor xmm1,xmm1,xmm0 + vpxor xmm2,xmm2,xmm0 + vpxor xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[16+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[32+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[48+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[64+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[80+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[96+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[112+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[128+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[144+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[160+rcx] + vaesdeclast xmm1,xmm1,xmm0 + vaesdeclast xmm2,xmm2,xmm0 + vaesdeclast xmm3,xmm3,xmm0 + vpxor xmm1,xmm1,xmm9 + vpxor xmm2,xmm2,xmm10 + vpxor xmm3,xmm3,xmm11 + vmovdqu XMMWORD[rsi],xmm1 + vmovdqu XMMWORD[16+rsi],xmm2 + vmovdqu XMMWORD[32+rsi],xmm3 + add rsi,0x30 + vmovdqa xmm8,xmm3 + vmovdqa xmm0,xmm13 + jmp NEAR $L$_steal_cipher_amivrujEyduiFoi + +$L$_done_3_remain_amivrujEyduiFoi: + vextracti32x4 xmm10,zmm9,0x1 + vextracti32x4 xmm11,zmm9,0x2 + vpxor xmm1,xmm1,xmm9 + vpxor xmm2,xmm2,xmm10 + vpxor xmm3,xmm3,xmm11 + vmovdqu xmm0,XMMWORD[rcx] + vpxor xmm1,xmm1,xmm0 + vpxor xmm2,xmm2,xmm0 + vpxor xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[16+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[32+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[48+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[64+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[80+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[96+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[112+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[128+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[144+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[160+rcx] + vaesdeclast xmm1,xmm1,xmm0 + vaesdeclast xmm2,xmm2,xmm0 + vaesdeclast xmm3,xmm3,xmm0 + vpxor xmm1,xmm1,xmm9 + vpxor xmm2,xmm2,xmm10 + vpxor xmm3,xmm3,xmm11 + vmovdqu XMMWORD[rsi],xmm1 + vmovdqu XMMWORD[16+rsi],xmm2 + vmovdqu XMMWORD[32+rsi],xmm3 + jmp NEAR $L$_ret_amivrujEyduiFoi + +$L$_remaining_num_blocks_is_2_amivrujEyduiFoi: + vmovdqu xmm1,XMMWORD[rdi] + vmovdqu xmm2,XMMWORD[16+rdi] + add rdi,0x20 + and rdx,0xf + je NEAR $L$_done_2_remain_amivrujEyduiFoi + vextracti32x4 xmm10,zmm9,0x2 + vextracti32x4 xmm12,zmm9,0x1 + vpxor xmm1,xmm1,xmm9 + vpxor xmm2,xmm2,xmm10 + vmovdqu xmm0,XMMWORD[rcx] + vpxor xmm1,xmm1,xmm0 + vpxor xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[16+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[32+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[48+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[64+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[80+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[96+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[112+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[128+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[144+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[160+rcx] + vaesdeclast xmm1,xmm1,xmm0 + vaesdeclast xmm2,xmm2,xmm0 + vpxor xmm1,xmm1,xmm9 + vpxor xmm2,xmm2,xmm10 + vmovdqu XMMWORD[rsi],xmm1 + vmovdqu XMMWORD[16+rsi],xmm2 + add rsi,0x20 + vmovdqa xmm8,xmm2 + vmovdqa xmm0,xmm12 + jmp NEAR $L$_steal_cipher_amivrujEyduiFoi + +$L$_done_2_remain_amivrujEyduiFoi: + vextracti32x4 xmm10,zmm9,0x1 + vpxor xmm1,xmm1,xmm9 + vpxor xmm2,xmm2,xmm10 + vmovdqu xmm0,XMMWORD[rcx] + vpxor xmm1,xmm1,xmm0 + vpxor xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[16+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[32+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[48+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[64+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[80+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[96+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[112+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[128+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[144+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[160+rcx] + vaesdeclast xmm1,xmm1,xmm0 + vaesdeclast xmm2,xmm2,xmm0 + vpxor xmm1,xmm1,xmm9 + vpxor xmm2,xmm2,xmm10 + vmovdqu XMMWORD[rsi],xmm1 + vmovdqu XMMWORD[16+rsi],xmm2 + jmp NEAR $L$_ret_amivrujEyduiFoi + +$L$_remaining_num_blocks_is_1_amivrujEyduiFoi: + vmovdqu xmm1,XMMWORD[rdi] + add rdi,0x10 + and rdx,0xf + je NEAR $L$_done_1_remain_amivrujEyduiFoi + vextracti32x4 xmm11,zmm9,0x1 + vpxor xmm1,xmm1,xmm11 + vmovdqu xmm0,XMMWORD[rcx] + vpxor xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[16+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[32+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[48+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[64+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[80+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[96+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[112+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[128+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[144+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[160+rcx] + vaesdeclast xmm1,xmm1,xmm0 + vpxor xmm1,xmm1,xmm11 + vmovdqu XMMWORD[rsi],xmm1 + add rsi,0x10 + vmovdqa xmm8,xmm1 + vmovdqa xmm0,xmm9 + jmp NEAR $L$_steal_cipher_amivrujEyduiFoi + +$L$_done_1_remain_amivrujEyduiFoi: + vpxor xmm1,xmm1,xmm9 + vmovdqu xmm0,XMMWORD[rcx] + vpxor xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[16+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[32+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[48+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[64+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[80+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[96+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[112+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[128+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[144+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[160+rcx] + vaesdeclast xmm1,xmm1,xmm0 + vpxor xmm1,xmm1,xmm9 + vmovdqu XMMWORD[rsi],xmm1 + jmp NEAR $L$_ret_amivrujEyduiFoi + +$L$_start_by16_amivrujEyduiFoi: + vbroadcasti32x4 zmm0,ZMMWORD[rsp] + vbroadcasti32x4 zmm8,ZMMWORD[shufb_15_7] + mov r8,0xaa + kmovq k2,r8 + + + vpshufb zmm1,zmm0,zmm8 + vpsllvq zmm4,zmm0,ZMMWORD[const_dq3210] + vpsrlvq zmm2,zmm1,ZMMWORD[const_dq5678] + vpclmulqdq zmm3,zmm2,zmm25,0x0 + vpxorq zmm4{k2},zmm4,zmm2 + vpxord zmm9,zmm3,zmm4 + + + vpsllvq zmm5,zmm0,ZMMWORD[const_dq7654] + vpsrlvq zmm6,zmm1,ZMMWORD[const_dq1234] + vpclmulqdq zmm7,zmm6,zmm25,0x0 + vpxorq zmm5{k2},zmm5,zmm6 + vpxord zmm10,zmm7,zmm5 + + + vpsrldq zmm13,zmm9,0xf + vpclmulqdq zmm14,zmm13,zmm25,0x0 + vpslldq zmm11,zmm9,0x1 + vpxord zmm11,zmm11,zmm14 + + vpsrldq zmm15,zmm10,0xf + vpclmulqdq zmm16,zmm15,zmm25,0x0 + vpslldq zmm12,zmm10,0x1 + vpxord zmm12,zmm12,zmm16 + +$L$_main_loop_run_16_amivrujEyduiFoi: + vmovdqu8 zmm1,ZMMWORD[rdi] + vmovdqu8 zmm2,ZMMWORD[64+rdi] + vmovdqu8 zmm3,ZMMWORD[128+rdi] + vmovdqu8 zmm4,ZMMWORD[192+rdi] + vmovdqu8 xmm5,XMMWORD[240+rdi] + add rdi,0x100 + vpxorq zmm1,zmm1,zmm9 + vpxorq zmm2,zmm2,zmm10 + vpxorq zmm3,zmm3,zmm11 + vpxorq zmm4,zmm4,zmm12 + vbroadcasti32x4 zmm0,ZMMWORD[rcx] + vpxorq zmm1,zmm1,zmm0 + vpxorq zmm2,zmm2,zmm0 + vpxorq zmm3,zmm3,zmm0 + vpxorq zmm4,zmm4,zmm0 + vpsrldq zmm13,zmm11,0xf + vpclmulqdq zmm14,zmm13,zmm25,0x0 + vpslldq zmm15,zmm11,0x1 + vpxord zmm15,zmm15,zmm14 + vbroadcasti32x4 zmm0,ZMMWORD[16+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + vaesdec zmm3,zmm3,zmm0 + vaesdec zmm4,zmm4,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[32+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + vaesdec zmm3,zmm3,zmm0 + vaesdec zmm4,zmm4,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[48+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + vaesdec zmm3,zmm3,zmm0 + vaesdec zmm4,zmm4,zmm0 + vpsrldq zmm13,zmm12,0xf + vpclmulqdq zmm14,zmm13,zmm25,0x0 + vpslldq zmm16,zmm12,0x1 + vpxord zmm16,zmm16,zmm14 + vbroadcasti32x4 zmm0,ZMMWORD[64+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + vaesdec zmm3,zmm3,zmm0 + vaesdec zmm4,zmm4,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[80+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + vaesdec zmm3,zmm3,zmm0 + vaesdec zmm4,zmm4,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[96+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + vaesdec zmm3,zmm3,zmm0 + vaesdec zmm4,zmm4,zmm0 + vpsrldq zmm13,zmm15,0xf + vpclmulqdq zmm14,zmm13,zmm25,0x0 + vpslldq zmm17,zmm15,0x1 + vpxord zmm17,zmm17,zmm14 + vbroadcasti32x4 zmm0,ZMMWORD[112+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + vaesdec zmm3,zmm3,zmm0 + vaesdec zmm4,zmm4,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[128+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + vaesdec zmm3,zmm3,zmm0 + vaesdec zmm4,zmm4,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[144+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + vaesdec zmm3,zmm3,zmm0 + vaesdec zmm4,zmm4,zmm0 + vpsrldq zmm13,zmm16,0xf + vpclmulqdq zmm14,zmm13,zmm25,0x0 + vpslldq zmm18,zmm16,0x1 + vpxord zmm18,zmm18,zmm14 + vbroadcasti32x4 zmm0,ZMMWORD[160+rcx] + vaesdeclast zmm1,zmm1,zmm0 + vaesdeclast zmm2,zmm2,zmm0 + vaesdeclast zmm3,zmm3,zmm0 + vaesdeclast zmm4,zmm4,zmm0 + vpxorq zmm1,zmm1,zmm9 + vpxorq zmm2,zmm2,zmm10 + vpxorq zmm3,zmm3,zmm11 + vpxorq zmm4,zmm4,zmm12 + + vmovdqa32 zmm9,zmm15 + vmovdqa32 zmm10,zmm16 + vmovdqa32 zmm11,zmm17 + vmovdqa32 zmm12,zmm18 + vmovdqu8 ZMMWORD[rsi],zmm1 + vmovdqu8 ZMMWORD[64+rsi],zmm2 + vmovdqu8 ZMMWORD[128+rsi],zmm3 + vmovdqu8 ZMMWORD[192+rsi],zmm4 + add rsi,0x100 + sub rdx,0x100 + cmp rdx,0x100 + jge NEAR $L$_main_loop_run_16_amivrujEyduiFoi + + cmp rdx,0x80 + jge NEAR $L$_main_loop_run_8_amivrujEyduiFoi + jmp NEAR $L$_do_n_blocks_amivrujEyduiFoi + +$L$_start_by8_amivrujEyduiFoi: + + vbroadcasti32x4 zmm0,ZMMWORD[rsp] + vbroadcasti32x4 zmm8,ZMMWORD[shufb_15_7] + mov r8,0xaa + kmovq k2,r8 + + + vpshufb zmm1,zmm0,zmm8 + vpsllvq zmm4,zmm0,ZMMWORD[const_dq3210] + vpsrlvq zmm2,zmm1,ZMMWORD[const_dq5678] + vpclmulqdq zmm3,zmm2,zmm25,0x0 + vpxorq zmm4{k2},zmm4,zmm2 + vpxord zmm9,zmm3,zmm4 + + + vpsllvq zmm5,zmm0,ZMMWORD[const_dq7654] + vpsrlvq zmm6,zmm1,ZMMWORD[const_dq1234] + vpclmulqdq zmm7,zmm6,zmm25,0x0 + vpxorq zmm5{k2},zmm5,zmm6 + vpxord zmm10,zmm7,zmm5 + +$L$_main_loop_run_8_amivrujEyduiFoi: + vmovdqu8 zmm1,ZMMWORD[rdi] + vmovdqu8 zmm2,ZMMWORD[64+rdi] + vmovdqu8 xmm5,XMMWORD[112+rdi] + add rdi,0x80 + + vpxorq zmm1,zmm1,zmm9 + vpxorq zmm2,zmm2,zmm10 + + + vbroadcasti32x4 zmm0,ZMMWORD[rcx] + vpxorq zmm1,zmm1,zmm0 + vpxorq zmm2,zmm2,zmm0 + vpsrldq zmm13,zmm9,0xf + vpclmulqdq zmm14,zmm13,zmm25,0x0 + vpslldq zmm15,zmm9,0x1 + vpxord zmm15,zmm15,zmm14 + vbroadcasti32x4 zmm0,ZMMWORD[16+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[32+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[48+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + vpsrldq zmm13,zmm10,0xf + vpclmulqdq zmm14,zmm13,zmm25,0x0 + vpslldq zmm16,zmm10,0x1 + vpxord zmm16,zmm16,zmm14 + + vbroadcasti32x4 zmm0,ZMMWORD[64+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[80+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[96+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[112+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[128+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[144+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[160+rcx] + vaesdeclast zmm1,zmm1,zmm0 + vaesdeclast zmm2,zmm2,zmm0 + + vpxorq zmm1,zmm1,zmm9 + vpxorq zmm2,zmm2,zmm10 + + + vmovdqa32 zmm9,zmm15 + vmovdqa32 zmm10,zmm16 + vmovdqu8 ZMMWORD[rsi],zmm1 + vmovdqu8 ZMMWORD[64+rsi],zmm2 + add rsi,0x80 + sub rdx,0x80 + cmp rdx,0x80 + jge NEAR $L$_main_loop_run_8_amivrujEyduiFoi + jmp NEAR $L$_do_n_blocks_amivrujEyduiFoi + +$L$_steal_cipher_amivrujEyduiFoi: + + vmovdqa xmm2,xmm8 + + + lea rax,[vpshufb_shf_table] + vmovdqu xmm10,XMMWORD[rdx*1+rax] + vpshufb xmm8,xmm8,xmm10 + + + vmovdqu xmm3,XMMWORD[((-16))+rdx*1+rdi] + vmovdqu XMMWORD[(-16)+rdx*1+rsi],xmm8 + + + lea rax,[vpshufb_shf_table] + add rax,16 + sub rax,rdx + vmovdqu xmm10,XMMWORD[rax] + vpxor xmm10,xmm10,XMMWORD[mask1] + vpshufb xmm3,xmm3,xmm10 + + vpblendvb xmm3,xmm3,xmm2,xmm10 + + + vpxor xmm8,xmm3,xmm0 + + + vpxor xmm8,xmm8,XMMWORD[rcx] + vaesdec xmm8,xmm8,XMMWORD[16+rcx] + vaesdec xmm8,xmm8,XMMWORD[32+rcx] + vaesdec xmm8,xmm8,XMMWORD[48+rcx] + vaesdec xmm8,xmm8,XMMWORD[64+rcx] + vaesdec xmm8,xmm8,XMMWORD[80+rcx] + vaesdec xmm8,xmm8,XMMWORD[96+rcx] + vaesdec xmm8,xmm8,XMMWORD[112+rcx] + vaesdec xmm8,xmm8,XMMWORD[128+rcx] + vaesdec xmm8,xmm8,XMMWORD[144+rcx] + vaesdeclast xmm8,xmm8,XMMWORD[160+rcx] + + vpxor xmm8,xmm8,xmm0 + +$L$_done_amivrujEyduiFoi: + + vmovdqu XMMWORD[(-16)+rsi],xmm8 +$L$_ret_amivrujEyduiFoi: + mov rbx,QWORD[288+rsp] + xor r8,r8 + mov QWORD[288+rsp],r8 + + vpxorq zmm0,zmm0,zmm0 + mov rdi,QWORD[((288 + 8))+rsp] + mov QWORD[((288 + 8))+rsp],r8 + mov rsi,QWORD[((288 + 16))+rsp] + mov QWORD[((288 + 16))+rsp],r8 + + vmovdqa xmm6,XMMWORD[((128 + 0))+rsp] + vmovdqa xmm7,XMMWORD[((128 + 16))+rsp] + vmovdqa xmm8,XMMWORD[((128 + 32))+rsp] + vmovdqa xmm9,XMMWORD[((128 + 48))+rsp] + + + vmovdqa64 ZMMWORD[128+rsp],zmm0 + + vmovdqa xmm10,XMMWORD[((128 + 64))+rsp] + vmovdqa xmm11,XMMWORD[((128 + 80))+rsp] + vmovdqa xmm12,XMMWORD[((128 + 96))+rsp] + vmovdqa xmm13,XMMWORD[((128 + 112))+rsp] + + + vmovdqa64 ZMMWORD[(128 + 64)+rsp],zmm0 + + vmovdqa xmm14,XMMWORD[((128 + 128))+rsp] + vmovdqa xmm15,XMMWORD[((128 + 144))+rsp] + + + + vmovdqa YMMWORD[(128 + 128)+rsp],ymm0 + mov rsp,rbp + pop rbp + vzeroupper + mov rdi,QWORD[8+rsp] ;WIN64 epilogue + mov rsi,QWORD[16+rsp] + DB 0F3h,0C3h ;repret + +$L$_less_than_128_bytes_amivrujEyduiFoi: + cmp rdx,0x10 + jb NEAR $L$_ret_amivrujEyduiFoi + + mov r8,rdx + and r8,0x70 + cmp r8,0x60 + je NEAR $L$_num_blocks_is_6_amivrujEyduiFoi + cmp r8,0x50 + je NEAR $L$_num_blocks_is_5_amivrujEyduiFoi + cmp r8,0x40 + je NEAR $L$_num_blocks_is_4_amivrujEyduiFoi + cmp r8,0x30 + je NEAR $L$_num_blocks_is_3_amivrujEyduiFoi + cmp r8,0x20 + je NEAR $L$_num_blocks_is_2_amivrujEyduiFoi + cmp r8,0x10 + je NEAR $L$_num_blocks_is_1_amivrujEyduiFoi + +$L$_num_blocks_is_7_amivrujEyduiFoi: + vmovdqa xmm9,XMMWORD[rsp] + mov rax,QWORD[rsp] + mov rbx,QWORD[8+rsp] + vmovdqu xmm1,XMMWORD[rdi] + xor r11,r11 + shl rax,1 + adc rbx,rbx + cmovc r11,r10 + xor rax,r11 + mov QWORD[16+rsp],rax + mov QWORD[((16 + 8))+rsp],rbx + vmovdqa xmm10,XMMWORD[16+rsp] + vmovdqu xmm2,XMMWORD[16+rdi] + xor r11,r11 + shl rax,1 + adc rbx,rbx + cmovc r11,r10 + xor rax,r11 + mov QWORD[32+rsp],rax + mov QWORD[((32 + 8))+rsp],rbx + vmovdqa xmm11,XMMWORD[32+rsp] + vmovdqu xmm3,XMMWORD[32+rdi] + xor r11,r11 + shl rax,1 + adc rbx,rbx + cmovc r11,r10 + xor rax,r11 + mov QWORD[48+rsp],rax + mov QWORD[((48 + 8))+rsp],rbx + vmovdqa xmm12,XMMWORD[48+rsp] + vmovdqu xmm4,XMMWORD[48+rdi] + xor r11,r11 + shl rax,1 + adc rbx,rbx + cmovc r11,r10 + xor rax,r11 + mov QWORD[64+rsp],rax + mov QWORD[((64 + 8))+rsp],rbx + vmovdqa xmm13,XMMWORD[64+rsp] + vmovdqu xmm5,XMMWORD[64+rdi] + xor r11,r11 + shl rax,1 + adc rbx,rbx + cmovc r11,r10 + xor rax,r11 + mov QWORD[80+rsp],rax + mov QWORD[((80 + 8))+rsp],rbx + vmovdqa xmm14,XMMWORD[80+rsp] + vmovdqu xmm6,XMMWORD[80+rdi] + xor r11,r11 + shl rax,1 + adc rbx,rbx + cmovc r11,r10 + xor rax,r11 + mov QWORD[96+rsp],rax + mov QWORD[((96 + 8))+rsp],rbx + vmovdqa xmm15,XMMWORD[96+rsp] + vmovdqu xmm7,XMMWORD[96+rdi] + add rdi,0x70 + and rdx,0xf + je NEAR $L$_done_7_amivrujEyduiFoi + +$L$_steal_cipher_7_amivrujEyduiFoi: + xor r11,r11 + shl rax,1 + adc rbx,rbx + cmovc r11,r10 + xor rax,r11 + mov QWORD[16+rsp],rax + mov QWORD[24+rsp],rbx + vmovdqa64 xmm16,xmm15 + vmovdqa xmm15,XMMWORD[16+rsp] + vpxor xmm1,xmm1,xmm9 + vpxor xmm2,xmm2,xmm10 + vpxor xmm3,xmm3,xmm11 + vpxor xmm4,xmm4,xmm12 + vpxor xmm5,xmm5,xmm13 + vpxor xmm6,xmm6,xmm14 + vpxor xmm7,xmm7,xmm15 + vmovdqu xmm0,XMMWORD[rcx] + vpxor xmm1,xmm1,xmm0 + vpxor xmm2,xmm2,xmm0 + vpxor xmm3,xmm3,xmm0 + vpxor xmm4,xmm4,xmm0 + vpxor xmm5,xmm5,xmm0 + vpxor xmm6,xmm6,xmm0 + vpxor xmm7,xmm7,xmm0 + vmovdqu xmm0,XMMWORD[16+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vaesdec xmm7,xmm7,xmm0 + vmovdqu xmm0,XMMWORD[32+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vaesdec xmm7,xmm7,xmm0 + vmovdqu xmm0,XMMWORD[48+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vaesdec xmm7,xmm7,xmm0 + vmovdqu xmm0,XMMWORD[64+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vaesdec xmm7,xmm7,xmm0 + vmovdqu xmm0,XMMWORD[80+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vaesdec xmm7,xmm7,xmm0 + vmovdqu xmm0,XMMWORD[96+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vaesdec xmm7,xmm7,xmm0 + vmovdqu xmm0,XMMWORD[112+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vaesdec xmm7,xmm7,xmm0 + vmovdqu xmm0,XMMWORD[128+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vaesdec xmm7,xmm7,xmm0 + vmovdqu xmm0,XMMWORD[144+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vaesdec xmm7,xmm7,xmm0 + vmovdqu xmm0,XMMWORD[160+rcx] + vaesdeclast xmm1,xmm1,xmm0 + vaesdeclast xmm2,xmm2,xmm0 + vaesdeclast xmm3,xmm3,xmm0 + vaesdeclast xmm4,xmm4,xmm0 + vaesdeclast xmm5,xmm5,xmm0 + vaesdeclast xmm6,xmm6,xmm0 + vaesdeclast xmm7,xmm7,xmm0 + vpxor xmm1,xmm1,xmm9 + vpxor xmm2,xmm2,xmm10 + vpxor xmm3,xmm3,xmm11 + vpxor xmm4,xmm4,xmm12 + vpxor xmm5,xmm5,xmm13 + vpxor xmm6,xmm6,xmm14 + vpxor xmm7,xmm7,xmm15 + vmovdqu XMMWORD[rsi],xmm1 + vmovdqu XMMWORD[16+rsi],xmm2 + vmovdqu XMMWORD[32+rsi],xmm3 + vmovdqu XMMWORD[48+rsi],xmm4 + vmovdqu XMMWORD[64+rsi],xmm5 + vmovdqu XMMWORD[80+rsi],xmm6 + add rsi,0x70 + vmovdqa64 xmm0,xmm16 + vmovdqa xmm8,xmm7 + jmp NEAR $L$_steal_cipher_amivrujEyduiFoi + +$L$_done_7_amivrujEyduiFoi: + vpxor xmm1,xmm1,xmm9 + vpxor xmm2,xmm2,xmm10 + vpxor xmm3,xmm3,xmm11 + vpxor xmm4,xmm4,xmm12 + vpxor xmm5,xmm5,xmm13 + vpxor xmm6,xmm6,xmm14 + vpxor xmm7,xmm7,xmm15 + vmovdqu xmm0,XMMWORD[rcx] + vpxor xmm1,xmm1,xmm0 + vpxor xmm2,xmm2,xmm0 + vpxor xmm3,xmm3,xmm0 + vpxor xmm4,xmm4,xmm0 + vpxor xmm5,xmm5,xmm0 + vpxor xmm6,xmm6,xmm0 + vpxor xmm7,xmm7,xmm0 + vmovdqu xmm0,XMMWORD[16+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vaesdec xmm7,xmm7,xmm0 + vmovdqu xmm0,XMMWORD[32+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vaesdec xmm7,xmm7,xmm0 + vmovdqu xmm0,XMMWORD[48+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vaesdec xmm7,xmm7,xmm0 + vmovdqu xmm0,XMMWORD[64+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vaesdec xmm7,xmm7,xmm0 + vmovdqu xmm0,XMMWORD[80+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vaesdec xmm7,xmm7,xmm0 + vmovdqu xmm0,XMMWORD[96+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vaesdec xmm7,xmm7,xmm0 + vmovdqu xmm0,XMMWORD[112+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vaesdec xmm7,xmm7,xmm0 + vmovdqu xmm0,XMMWORD[128+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vaesdec xmm7,xmm7,xmm0 + vmovdqu xmm0,XMMWORD[144+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vaesdec xmm7,xmm7,xmm0 + vmovdqu xmm0,XMMWORD[160+rcx] + vaesdeclast xmm1,xmm1,xmm0 + vaesdeclast xmm2,xmm2,xmm0 + vaesdeclast xmm3,xmm3,xmm0 + vaesdeclast xmm4,xmm4,xmm0 + vaesdeclast xmm5,xmm5,xmm0 + vaesdeclast xmm6,xmm6,xmm0 + vaesdeclast xmm7,xmm7,xmm0 + vpxor xmm1,xmm1,xmm9 + vpxor xmm2,xmm2,xmm10 + vpxor xmm3,xmm3,xmm11 + vpxor xmm4,xmm4,xmm12 + vpxor xmm5,xmm5,xmm13 + vpxor xmm6,xmm6,xmm14 + vpxor xmm7,xmm7,xmm15 + vmovdqu XMMWORD[rsi],xmm1 + vmovdqu XMMWORD[16+rsi],xmm2 + vmovdqu XMMWORD[32+rsi],xmm3 + vmovdqu XMMWORD[48+rsi],xmm4 + vmovdqu XMMWORD[64+rsi],xmm5 + vmovdqu XMMWORD[80+rsi],xmm6 + add rsi,0x70 + vmovdqa xmm8,xmm7 + jmp NEAR $L$_done_amivrujEyduiFoi + +$L$_num_blocks_is_6_amivrujEyduiFoi: + vmovdqa xmm9,XMMWORD[rsp] + mov rax,QWORD[rsp] + mov rbx,QWORD[8+rsp] + vmovdqu xmm1,XMMWORD[rdi] + xor r11,r11 + shl rax,1 + adc rbx,rbx + cmovc r11,r10 + xor rax,r11 + mov QWORD[16+rsp],rax + mov QWORD[((16 + 8))+rsp],rbx + vmovdqa xmm10,XMMWORD[16+rsp] + vmovdqu xmm2,XMMWORD[16+rdi] + xor r11,r11 + shl rax,1 + adc rbx,rbx + cmovc r11,r10 + xor rax,r11 + mov QWORD[32+rsp],rax + mov QWORD[((32 + 8))+rsp],rbx + vmovdqa xmm11,XMMWORD[32+rsp] + vmovdqu xmm3,XMMWORD[32+rdi] + xor r11,r11 + shl rax,1 + adc rbx,rbx + cmovc r11,r10 + xor rax,r11 + mov QWORD[48+rsp],rax + mov QWORD[((48 + 8))+rsp],rbx + vmovdqa xmm12,XMMWORD[48+rsp] + vmovdqu xmm4,XMMWORD[48+rdi] + xor r11,r11 + shl rax,1 + adc rbx,rbx + cmovc r11,r10 + xor rax,r11 + mov QWORD[64+rsp],rax + mov QWORD[((64 + 8))+rsp],rbx + vmovdqa xmm13,XMMWORD[64+rsp] + vmovdqu xmm5,XMMWORD[64+rdi] + xor r11,r11 + shl rax,1 + adc rbx,rbx + cmovc r11,r10 + xor rax,r11 + mov QWORD[80+rsp],rax + mov QWORD[((80 + 8))+rsp],rbx + vmovdqa xmm14,XMMWORD[80+rsp] + vmovdqu xmm6,XMMWORD[80+rdi] + add rdi,0x60 + and rdx,0xf + je NEAR $L$_done_6_amivrujEyduiFoi + +$L$_steal_cipher_6_amivrujEyduiFoi: + xor r11,r11 + shl rax,1 + adc rbx,rbx + cmovc r11,r10 + xor rax,r11 + mov QWORD[16+rsp],rax + mov QWORD[24+rsp],rbx + vmovdqa64 xmm15,xmm14 + vmovdqa xmm14,XMMWORD[16+rsp] + vpxor xmm1,xmm1,xmm9 + vpxor xmm2,xmm2,xmm10 + vpxor xmm3,xmm3,xmm11 + vpxor xmm4,xmm4,xmm12 + vpxor xmm5,xmm5,xmm13 + vpxor xmm6,xmm6,xmm14 + vmovdqu xmm0,XMMWORD[rcx] + vpxor xmm1,xmm1,xmm0 + vpxor xmm2,xmm2,xmm0 + vpxor xmm3,xmm3,xmm0 + vpxor xmm4,xmm4,xmm0 + vpxor xmm5,xmm5,xmm0 + vpxor xmm6,xmm6,xmm0 + vmovdqu xmm0,XMMWORD[16+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vmovdqu xmm0,XMMWORD[32+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vmovdqu xmm0,XMMWORD[48+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vmovdqu xmm0,XMMWORD[64+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vmovdqu xmm0,XMMWORD[80+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vmovdqu xmm0,XMMWORD[96+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vmovdqu xmm0,XMMWORD[112+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vmovdqu xmm0,XMMWORD[128+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vmovdqu xmm0,XMMWORD[144+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vmovdqu xmm0,XMMWORD[160+rcx] + vaesdeclast xmm1,xmm1,xmm0 + vaesdeclast xmm2,xmm2,xmm0 + vaesdeclast xmm3,xmm3,xmm0 + vaesdeclast xmm4,xmm4,xmm0 + vaesdeclast xmm5,xmm5,xmm0 + vaesdeclast xmm6,xmm6,xmm0 + vpxor xmm1,xmm1,xmm9 + vpxor xmm2,xmm2,xmm10 + vpxor xmm3,xmm3,xmm11 + vpxor xmm4,xmm4,xmm12 + vpxor xmm5,xmm5,xmm13 + vpxor xmm6,xmm6,xmm14 + vmovdqu XMMWORD[rsi],xmm1 + vmovdqu XMMWORD[16+rsi],xmm2 + vmovdqu XMMWORD[32+rsi],xmm3 + vmovdqu XMMWORD[48+rsi],xmm4 + vmovdqu XMMWORD[64+rsi],xmm5 + add rsi,0x60 + vmovdqa xmm0,xmm15 + vmovdqa xmm8,xmm6 + jmp NEAR $L$_steal_cipher_amivrujEyduiFoi + +$L$_done_6_amivrujEyduiFoi: + vpxor xmm1,xmm1,xmm9 + vpxor xmm2,xmm2,xmm10 + vpxor xmm3,xmm3,xmm11 + vpxor xmm4,xmm4,xmm12 + vpxor xmm5,xmm5,xmm13 + vpxor xmm6,xmm6,xmm14 + vmovdqu xmm0,XMMWORD[rcx] + vpxor xmm1,xmm1,xmm0 + vpxor xmm2,xmm2,xmm0 + vpxor xmm3,xmm3,xmm0 + vpxor xmm4,xmm4,xmm0 + vpxor xmm5,xmm5,xmm0 + vpxor xmm6,xmm6,xmm0 + vmovdqu xmm0,XMMWORD[16+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vmovdqu xmm0,XMMWORD[32+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vmovdqu xmm0,XMMWORD[48+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vmovdqu xmm0,XMMWORD[64+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vmovdqu xmm0,XMMWORD[80+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vmovdqu xmm0,XMMWORD[96+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vmovdqu xmm0,XMMWORD[112+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vmovdqu xmm0,XMMWORD[128+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vmovdqu xmm0,XMMWORD[144+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vmovdqu xmm0,XMMWORD[160+rcx] + vaesdeclast xmm1,xmm1,xmm0 + vaesdeclast xmm2,xmm2,xmm0 + vaesdeclast xmm3,xmm3,xmm0 + vaesdeclast xmm4,xmm4,xmm0 + vaesdeclast xmm5,xmm5,xmm0 + vaesdeclast xmm6,xmm6,xmm0 + vpxor xmm1,xmm1,xmm9 + vpxor xmm2,xmm2,xmm10 + vpxor xmm3,xmm3,xmm11 + vpxor xmm4,xmm4,xmm12 + vpxor xmm5,xmm5,xmm13 + vpxor xmm6,xmm6,xmm14 + vmovdqu XMMWORD[rsi],xmm1 + vmovdqu XMMWORD[16+rsi],xmm2 + vmovdqu XMMWORD[32+rsi],xmm3 + vmovdqu XMMWORD[48+rsi],xmm4 + vmovdqu XMMWORD[64+rsi],xmm5 + add rsi,0x60 + vmovdqa xmm8,xmm6 + jmp NEAR $L$_done_amivrujEyduiFoi + +$L$_num_blocks_is_5_amivrujEyduiFoi: + vmovdqa xmm9,XMMWORD[rsp] + mov rax,QWORD[rsp] + mov rbx,QWORD[8+rsp] + vmovdqu xmm1,XMMWORD[rdi] + xor r11,r11 + shl rax,1 + adc rbx,rbx + cmovc r11,r10 + xor rax,r11 + mov QWORD[16+rsp],rax + mov QWORD[((16 + 8))+rsp],rbx + vmovdqa xmm10,XMMWORD[16+rsp] + vmovdqu xmm2,XMMWORD[16+rdi] + xor r11,r11 + shl rax,1 + adc rbx,rbx + cmovc r11,r10 + xor rax,r11 + mov QWORD[32+rsp],rax + mov QWORD[((32 + 8))+rsp],rbx + vmovdqa xmm11,XMMWORD[32+rsp] + vmovdqu xmm3,XMMWORD[32+rdi] + xor r11,r11 + shl rax,1 + adc rbx,rbx + cmovc r11,r10 + xor rax,r11 + mov QWORD[48+rsp],rax + mov QWORD[((48 + 8))+rsp],rbx + vmovdqa xmm12,XMMWORD[48+rsp] + vmovdqu xmm4,XMMWORD[48+rdi] + xor r11,r11 + shl rax,1 + adc rbx,rbx + cmovc r11,r10 + xor rax,r11 + mov QWORD[64+rsp],rax + mov QWORD[((64 + 8))+rsp],rbx + vmovdqa xmm13,XMMWORD[64+rsp] + vmovdqu xmm5,XMMWORD[64+rdi] + add rdi,0x50 + and rdx,0xf + je NEAR $L$_done_5_amivrujEyduiFoi + +$L$_steal_cipher_5_amivrujEyduiFoi: + xor r11,r11 + shl rax,1 + adc rbx,rbx + cmovc r11,r10 + xor rax,r11 + mov QWORD[16+rsp],rax + mov QWORD[24+rsp],rbx + vmovdqa64 xmm14,xmm13 + vmovdqa xmm13,XMMWORD[16+rsp] + vpxor xmm1,xmm1,xmm9 + vpxor xmm2,xmm2,xmm10 + vpxor xmm3,xmm3,xmm11 + vpxor xmm4,xmm4,xmm12 + vpxor xmm5,xmm5,xmm13 + vmovdqu xmm0,XMMWORD[rcx] + vpxor xmm1,xmm1,xmm0 + vpxor xmm2,xmm2,xmm0 + vpxor xmm3,xmm3,xmm0 + vpxor xmm4,xmm4,xmm0 + vpxor xmm5,xmm5,xmm0 + vmovdqu xmm0,XMMWORD[16+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vmovdqu xmm0,XMMWORD[32+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vmovdqu xmm0,XMMWORD[48+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vmovdqu xmm0,XMMWORD[64+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vmovdqu xmm0,XMMWORD[80+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vmovdqu xmm0,XMMWORD[96+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vmovdqu xmm0,XMMWORD[112+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vmovdqu xmm0,XMMWORD[128+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vmovdqu xmm0,XMMWORD[144+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vmovdqu xmm0,XMMWORD[160+rcx] + vaesdeclast xmm1,xmm1,xmm0 + vaesdeclast xmm2,xmm2,xmm0 + vaesdeclast xmm3,xmm3,xmm0 + vaesdeclast xmm4,xmm4,xmm0 + vaesdeclast xmm5,xmm5,xmm0 + vpxor xmm1,xmm1,xmm9 + vpxor xmm2,xmm2,xmm10 + vpxor xmm3,xmm3,xmm11 + vpxor xmm4,xmm4,xmm12 + vpxor xmm5,xmm5,xmm13 + vmovdqu XMMWORD[rsi],xmm1 + vmovdqu XMMWORD[16+rsi],xmm2 + vmovdqu XMMWORD[32+rsi],xmm3 + vmovdqu XMMWORD[48+rsi],xmm4 + add rsi,0x50 + vmovdqa xmm0,xmm14 + vmovdqa xmm8,xmm5 + jmp NEAR $L$_steal_cipher_amivrujEyduiFoi + +$L$_done_5_amivrujEyduiFoi: + vpxor xmm1,xmm1,xmm9 + vpxor xmm2,xmm2,xmm10 + vpxor xmm3,xmm3,xmm11 + vpxor xmm4,xmm4,xmm12 + vpxor xmm5,xmm5,xmm13 + vmovdqu xmm0,XMMWORD[rcx] + vpxor xmm1,xmm1,xmm0 + vpxor xmm2,xmm2,xmm0 + vpxor xmm3,xmm3,xmm0 + vpxor xmm4,xmm4,xmm0 + vpxor xmm5,xmm5,xmm0 + vmovdqu xmm0,XMMWORD[16+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vmovdqu xmm0,XMMWORD[32+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vmovdqu xmm0,XMMWORD[48+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vmovdqu xmm0,XMMWORD[64+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vmovdqu xmm0,XMMWORD[80+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vmovdqu xmm0,XMMWORD[96+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vmovdqu xmm0,XMMWORD[112+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vmovdqu xmm0,XMMWORD[128+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vmovdqu xmm0,XMMWORD[144+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vmovdqu xmm0,XMMWORD[160+rcx] + vaesdeclast xmm1,xmm1,xmm0 + vaesdeclast xmm2,xmm2,xmm0 + vaesdeclast xmm3,xmm3,xmm0 + vaesdeclast xmm4,xmm4,xmm0 + vaesdeclast xmm5,xmm5,xmm0 + vpxor xmm1,xmm1,xmm9 + vpxor xmm2,xmm2,xmm10 + vpxor xmm3,xmm3,xmm11 + vpxor xmm4,xmm4,xmm12 + vpxor xmm5,xmm5,xmm13 + vmovdqu XMMWORD[rsi],xmm1 + vmovdqu XMMWORD[16+rsi],xmm2 + vmovdqu XMMWORD[32+rsi],xmm3 + vmovdqu XMMWORD[48+rsi],xmm4 + add rsi,0x50 + vmovdqa xmm8,xmm5 + jmp NEAR $L$_done_amivrujEyduiFoi + +$L$_num_blocks_is_4_amivrujEyduiFoi: + vmovdqa xmm9,XMMWORD[rsp] + mov rax,QWORD[rsp] + mov rbx,QWORD[8+rsp] + vmovdqu xmm1,XMMWORD[rdi] + xor r11,r11 + shl rax,1 + adc rbx,rbx + cmovc r11,r10 + xor rax,r11 + mov QWORD[16+rsp],rax + mov QWORD[((16 + 8))+rsp],rbx + vmovdqa xmm10,XMMWORD[16+rsp] + vmovdqu xmm2,XMMWORD[16+rdi] + xor r11,r11 + shl rax,1 + adc rbx,rbx + cmovc r11,r10 + xor rax,r11 + mov QWORD[32+rsp],rax + mov QWORD[((32 + 8))+rsp],rbx + vmovdqa xmm11,XMMWORD[32+rsp] + vmovdqu xmm3,XMMWORD[32+rdi] + xor r11,r11 + shl rax,1 + adc rbx,rbx + cmovc r11,r10 + xor rax,r11 + mov QWORD[48+rsp],rax + mov QWORD[((48 + 8))+rsp],rbx + vmovdqa xmm12,XMMWORD[48+rsp] + vmovdqu xmm4,XMMWORD[48+rdi] + add rdi,0x40 + and rdx,0xf + je NEAR $L$_done_4_amivrujEyduiFoi + +$L$_steal_cipher_4_amivrujEyduiFoi: + xor r11,r11 + shl rax,1 + adc rbx,rbx + cmovc r11,r10 + xor rax,r11 + mov QWORD[16+rsp],rax + mov QWORD[24+rsp],rbx + vmovdqa64 xmm13,xmm12 + vmovdqa xmm12,XMMWORD[16+rsp] + vpxor xmm1,xmm1,xmm9 + vpxor xmm2,xmm2,xmm10 + vpxor xmm3,xmm3,xmm11 + vpxor xmm4,xmm4,xmm12 + vmovdqu xmm0,XMMWORD[rcx] + vpxor xmm1,xmm1,xmm0 + vpxor xmm2,xmm2,xmm0 + vpxor xmm3,xmm3,xmm0 + vpxor xmm4,xmm4,xmm0 + vmovdqu xmm0,XMMWORD[16+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vmovdqu xmm0,XMMWORD[32+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vmovdqu xmm0,XMMWORD[48+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vmovdqu xmm0,XMMWORD[64+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vmovdqu xmm0,XMMWORD[80+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vmovdqu xmm0,XMMWORD[96+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vmovdqu xmm0,XMMWORD[112+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vmovdqu xmm0,XMMWORD[128+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vmovdqu xmm0,XMMWORD[144+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vmovdqu xmm0,XMMWORD[160+rcx] + vaesdeclast xmm1,xmm1,xmm0 + vaesdeclast xmm2,xmm2,xmm0 + vaesdeclast xmm3,xmm3,xmm0 + vaesdeclast xmm4,xmm4,xmm0 + vpxor xmm1,xmm1,xmm9 + vpxor xmm2,xmm2,xmm10 + vpxor xmm3,xmm3,xmm11 + vpxor xmm4,xmm4,xmm12 + vmovdqu XMMWORD[rsi],xmm1 + vmovdqu XMMWORD[16+rsi],xmm2 + vmovdqu XMMWORD[32+rsi],xmm3 + add rsi,0x40 + vmovdqa xmm0,xmm13 + vmovdqa xmm8,xmm4 + jmp NEAR $L$_steal_cipher_amivrujEyduiFoi + +$L$_done_4_amivrujEyduiFoi: + vpxor xmm1,xmm1,xmm9 + vpxor xmm2,xmm2,xmm10 + vpxor xmm3,xmm3,xmm11 + vpxor xmm4,xmm4,xmm12 + vmovdqu xmm0,XMMWORD[rcx] + vpxor xmm1,xmm1,xmm0 + vpxor xmm2,xmm2,xmm0 + vpxor xmm3,xmm3,xmm0 + vpxor xmm4,xmm4,xmm0 + vmovdqu xmm0,XMMWORD[16+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vmovdqu xmm0,XMMWORD[32+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vmovdqu xmm0,XMMWORD[48+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vmovdqu xmm0,XMMWORD[64+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vmovdqu xmm0,XMMWORD[80+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vmovdqu xmm0,XMMWORD[96+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vmovdqu xmm0,XMMWORD[112+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vmovdqu xmm0,XMMWORD[128+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vmovdqu xmm0,XMMWORD[144+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vmovdqu xmm0,XMMWORD[160+rcx] + vaesdeclast xmm1,xmm1,xmm0 + vaesdeclast xmm2,xmm2,xmm0 + vaesdeclast xmm3,xmm3,xmm0 + vaesdeclast xmm4,xmm4,xmm0 + vpxor xmm1,xmm1,xmm9 + vpxor xmm2,xmm2,xmm10 + vpxor xmm3,xmm3,xmm11 + vpxor xmm4,xmm4,xmm12 + vmovdqu XMMWORD[rsi],xmm1 + vmovdqu XMMWORD[16+rsi],xmm2 + vmovdqu XMMWORD[32+rsi],xmm3 + add rsi,0x40 + vmovdqa xmm8,xmm4 + jmp NEAR $L$_done_amivrujEyduiFoi + +$L$_num_blocks_is_3_amivrujEyduiFoi: + vmovdqa xmm9,XMMWORD[rsp] + mov rax,QWORD[rsp] + mov rbx,QWORD[8+rsp] + vmovdqu xmm1,XMMWORD[rdi] + xor r11,r11 + shl rax,1 + adc rbx,rbx + cmovc r11,r10 + xor rax,r11 + mov QWORD[16+rsp],rax + mov QWORD[((16 + 8))+rsp],rbx + vmovdqa xmm10,XMMWORD[16+rsp] + vmovdqu xmm2,XMMWORD[16+rdi] + xor r11,r11 + shl rax,1 + adc rbx,rbx + cmovc r11,r10 + xor rax,r11 + mov QWORD[32+rsp],rax + mov QWORD[((32 + 8))+rsp],rbx + vmovdqa xmm11,XMMWORD[32+rsp] + vmovdqu xmm3,XMMWORD[32+rdi] + add rdi,0x30 + and rdx,0xf + je NEAR $L$_done_3_amivrujEyduiFoi + +$L$_steal_cipher_3_amivrujEyduiFoi: + xor r11,r11 + shl rax,1 + adc rbx,rbx + cmovc r11,r10 + xor rax,r11 + mov QWORD[16+rsp],rax + mov QWORD[24+rsp],rbx + vmovdqa64 xmm12,xmm11 + vmovdqa xmm11,XMMWORD[16+rsp] + vpxor xmm1,xmm1,xmm9 + vpxor xmm2,xmm2,xmm10 + vpxor xmm3,xmm3,xmm11 + vmovdqu xmm0,XMMWORD[rcx] + vpxor xmm1,xmm1,xmm0 + vpxor xmm2,xmm2,xmm0 + vpxor xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[16+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[32+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[48+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[64+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[80+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[96+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[112+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[128+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[144+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[160+rcx] + vaesdeclast xmm1,xmm1,xmm0 + vaesdeclast xmm2,xmm2,xmm0 + vaesdeclast xmm3,xmm3,xmm0 + vpxor xmm1,xmm1,xmm9 + vpxor xmm2,xmm2,xmm10 + vpxor xmm3,xmm3,xmm11 + vmovdqu XMMWORD[rsi],xmm1 + vmovdqu XMMWORD[16+rsi],xmm2 + add rsi,0x30 + vmovdqa xmm0,xmm12 + vmovdqa xmm8,xmm3 + jmp NEAR $L$_steal_cipher_amivrujEyduiFoi + +$L$_done_3_amivrujEyduiFoi: + vpxor xmm1,xmm1,xmm9 + vpxor xmm2,xmm2,xmm10 + vpxor xmm3,xmm3,xmm11 + vmovdqu xmm0,XMMWORD[rcx] + vpxor xmm1,xmm1,xmm0 + vpxor xmm2,xmm2,xmm0 + vpxor xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[16+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[32+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[48+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[64+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[80+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[96+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[112+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[128+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[144+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[160+rcx] + vaesdeclast xmm1,xmm1,xmm0 + vaesdeclast xmm2,xmm2,xmm0 + vaesdeclast xmm3,xmm3,xmm0 + vpxor xmm1,xmm1,xmm9 + vpxor xmm2,xmm2,xmm10 + vpxor xmm3,xmm3,xmm11 + vmovdqu XMMWORD[rsi],xmm1 + vmovdqu XMMWORD[16+rsi],xmm2 + add rsi,0x30 + vmovdqa xmm8,xmm3 + jmp NEAR $L$_done_amivrujEyduiFoi + +$L$_num_blocks_is_2_amivrujEyduiFoi: + vmovdqa xmm9,XMMWORD[rsp] + mov rax,QWORD[rsp] + mov rbx,QWORD[8+rsp] + vmovdqu xmm1,XMMWORD[rdi] + xor r11,r11 + shl rax,1 + adc rbx,rbx + cmovc r11,r10 + xor rax,r11 + mov QWORD[16+rsp],rax + mov QWORD[((16 + 8))+rsp],rbx + vmovdqa xmm10,XMMWORD[16+rsp] + vmovdqu xmm2,XMMWORD[16+rdi] + add rdi,0x20 + and rdx,0xf + je NEAR $L$_done_2_amivrujEyduiFoi + +$L$_steal_cipher_2_amivrujEyduiFoi: + xor r11,r11 + shl rax,1 + adc rbx,rbx + cmovc r11,r10 + xor rax,r11 + mov QWORD[16+rsp],rax + mov QWORD[24+rsp],rbx + vmovdqa64 xmm11,xmm10 + vmovdqa xmm10,XMMWORD[16+rsp] + vpxor xmm1,xmm1,xmm9 + vpxor xmm2,xmm2,xmm10 + vmovdqu xmm0,XMMWORD[rcx] + vpxor xmm1,xmm1,xmm0 + vpxor xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[16+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[32+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[48+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[64+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[80+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[96+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[112+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[128+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[144+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[160+rcx] + vaesdeclast xmm1,xmm1,xmm0 + vaesdeclast xmm2,xmm2,xmm0 + vpxor xmm1,xmm1,xmm9 + vpxor xmm2,xmm2,xmm10 + vmovdqu XMMWORD[rsi],xmm1 + add rsi,0x20 + vmovdqa xmm0,xmm11 + vmovdqa xmm8,xmm2 + jmp NEAR $L$_steal_cipher_amivrujEyduiFoi + +$L$_done_2_amivrujEyduiFoi: + vpxor xmm1,xmm1,xmm9 + vpxor xmm2,xmm2,xmm10 + vmovdqu xmm0,XMMWORD[rcx] + vpxor xmm1,xmm1,xmm0 + vpxor xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[16+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[32+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[48+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[64+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[80+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[96+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[112+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[128+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[144+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[160+rcx] + vaesdeclast xmm1,xmm1,xmm0 + vaesdeclast xmm2,xmm2,xmm0 + vpxor xmm1,xmm1,xmm9 + vpxor xmm2,xmm2,xmm10 + vmovdqu XMMWORD[rsi],xmm1 + add rsi,0x20 + vmovdqa xmm8,xmm2 + jmp NEAR $L$_done_amivrujEyduiFoi + +$L$_num_blocks_is_1_amivrujEyduiFoi: + vmovdqa xmm9,XMMWORD[rsp] + mov rax,QWORD[rsp] + mov rbx,QWORD[8+rsp] + vmovdqu xmm1,XMMWORD[rdi] + add rdi,0x10 + and rdx,0xf + je NEAR $L$_done_1_amivrujEyduiFoi + +$L$_steal_cipher_1_amivrujEyduiFoi: + xor r11,r11 + shl rax,1 + adc rbx,rbx + cmovc r11,r10 + xor rax,r11 + mov QWORD[16+rsp],rax + mov QWORD[24+rsp],rbx + vmovdqa64 xmm10,xmm9 + vmovdqa xmm9,XMMWORD[16+rsp] + vpxor xmm1,xmm1,xmm9 + vmovdqu xmm0,XMMWORD[rcx] + vpxor xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[16+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[32+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[48+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[64+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[80+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[96+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[112+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[128+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[144+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[160+rcx] + vaesdeclast xmm1,xmm1,xmm0 + vpxor xmm1,xmm1,xmm9 + add rsi,0x10 + vmovdqa xmm0,xmm10 + vmovdqa xmm8,xmm1 + jmp NEAR $L$_steal_cipher_amivrujEyduiFoi + +$L$_done_1_amivrujEyduiFoi: + vpxor xmm1,xmm1,xmm9 + vmovdqu xmm0,XMMWORD[rcx] + vpxor xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[16+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[32+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[48+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[64+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[80+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[96+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[112+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[128+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[144+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[160+rcx] + vaesdeclast xmm1,xmm1,xmm0 + vpxor xmm1,xmm1,xmm9 + add rsi,0x10 + vmovdqa xmm8,xmm1 + jmp NEAR $L$_done_amivrujEyduiFoi + +global aesni_xts_256_encrypt_avx512 + + +ALIGN 32 +aesni_xts_256_encrypt_avx512: + mov QWORD[8+rsp],rdi ;WIN64 prologue + mov QWORD[16+rsp],rsi + mov rax,rsp +$L$SEH_begin_aesni_xts_256_encrypt_avx512: + mov rdi,rcx + mov rsi,rdx + mov rdx,r8 + mov rcx,r9 + mov r8,QWORD[40+rsp] + mov r9,QWORD[48+rsp] + + + +DB 243,15,30,250 + push rbp + mov rbp,rsp + sub rsp,312 + and rsp,0xffffffffffffffc0 + mov QWORD[288+rsp],rbx + mov QWORD[((288 + 8))+rsp],rdi + mov QWORD[((288 + 16))+rsp],rsi + vmovdqa XMMWORD[(128 + 0)+rsp],xmm6 + vmovdqa XMMWORD[(128 + 16)+rsp],xmm7 + vmovdqa XMMWORD[(128 + 32)+rsp],xmm8 + vmovdqa XMMWORD[(128 + 48)+rsp],xmm9 + vmovdqa XMMWORD[(128 + 64)+rsp],xmm10 + vmovdqa XMMWORD[(128 + 80)+rsp],xmm11 + vmovdqa XMMWORD[(128 + 96)+rsp],xmm12 + vmovdqa XMMWORD[(128 + 112)+rsp],xmm13 + vmovdqa XMMWORD[(128 + 128)+rsp],xmm14 + vmovdqa XMMWORD[(128 + 144)+rsp],xmm15 + mov r10,0x87 + vmovdqu xmm1,XMMWORD[r9] + vpxor xmm1,xmm1,XMMWORD[r8] + vaesenc xmm1,xmm1,XMMWORD[16+r8] + vaesenc xmm1,xmm1,XMMWORD[32+r8] + vaesenc xmm1,xmm1,XMMWORD[48+r8] + vaesenc xmm1,xmm1,XMMWORD[64+r8] + vaesenc xmm1,xmm1,XMMWORD[80+r8] + vaesenc xmm1,xmm1,XMMWORD[96+r8] + vaesenc xmm1,xmm1,XMMWORD[112+r8] + vaesenc xmm1,xmm1,XMMWORD[128+r8] + vaesenc xmm1,xmm1,XMMWORD[144+r8] + vaesenc xmm1,xmm1,XMMWORD[160+r8] + vaesenc xmm1,xmm1,XMMWORD[176+r8] + vaesenc xmm1,xmm1,XMMWORD[192+r8] + vaesenc xmm1,xmm1,XMMWORD[208+r8] + vaesenclast xmm1,xmm1,XMMWORD[224+r8] + vmovdqa XMMWORD[rsp],xmm1 + mov QWORD[((8 + 40))+rbp],rdi + mov QWORD[((8 + 48))+rbp],rsi + + cmp rdx,0x80 + jl NEAR $L$_less_than_128_bytes_wcpqaDvsGlbjGoe + vpbroadcastq zmm25,r10 + cmp rdx,0x100 + jge NEAR $L$_start_by16_wcpqaDvsGlbjGoe + cmp rdx,0x80 + jge NEAR $L$_start_by8_wcpqaDvsGlbjGoe + +$L$_do_n_blocks_wcpqaDvsGlbjGoe: + cmp rdx,0x0 + je NEAR $L$_ret_wcpqaDvsGlbjGoe + cmp rdx,0x70 + jge NEAR $L$_remaining_num_blocks_is_7_wcpqaDvsGlbjGoe + cmp rdx,0x60 + jge NEAR $L$_remaining_num_blocks_is_6_wcpqaDvsGlbjGoe + cmp rdx,0x50 + jge NEAR $L$_remaining_num_blocks_is_5_wcpqaDvsGlbjGoe + cmp rdx,0x40 + jge NEAR $L$_remaining_num_blocks_is_4_wcpqaDvsGlbjGoe + cmp rdx,0x30 + jge NEAR $L$_remaining_num_blocks_is_3_wcpqaDvsGlbjGoe + cmp rdx,0x20 + jge NEAR $L$_remaining_num_blocks_is_2_wcpqaDvsGlbjGoe + cmp rdx,0x10 + jge NEAR $L$_remaining_num_blocks_is_1_wcpqaDvsGlbjGoe + vmovdqa xmm8,xmm0 + vmovdqa xmm0,xmm9 + jmp NEAR $L$_steal_cipher_wcpqaDvsGlbjGoe + +$L$_remaining_num_blocks_is_7_wcpqaDvsGlbjGoe: + mov r8,0x0000ffffffffffff + kmovq k1,r8 + vmovdqu8 zmm1,ZMMWORD[rdi] + vmovdqu8 zmm2{k1},[64+rdi] + add rdi,0x70 + vbroadcasti32x4 zmm0,ZMMWORD[rcx] + vpternlogq zmm1,zmm9,zmm0,0x96 + vpternlogq zmm2,zmm10,zmm0,0x96 + vbroadcasti32x4 zmm0,ZMMWORD[16+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[32+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[48+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + vbroadcasti32x4 zmm0,ZMMWORD[64+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[80+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[96+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[112+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[128+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[144+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + vbroadcasti32x4 zmm0,ZMMWORD[160+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[176+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[192+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[208+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[224+rcx] + vaesenclast zmm1,zmm1,zmm0 + vaesenclast zmm2,zmm2,zmm0 + vpxorq zmm1,zmm1,zmm9 + vpxorq zmm2,zmm2,zmm10 + vmovdqu8 ZMMWORD[rsi],zmm1 + vmovdqu8 ZMMWORD[64+rsi]{k1},zmm2 + add rsi,0x70 + vextracti32x4 xmm8,zmm2,0x2 + vextracti32x4 xmm0,zmm10,0x3 + and rdx,0xf + je NEAR $L$_ret_wcpqaDvsGlbjGoe + jmp NEAR $L$_steal_cipher_wcpqaDvsGlbjGoe + +$L$_remaining_num_blocks_is_6_wcpqaDvsGlbjGoe: + vmovdqu8 zmm1,ZMMWORD[rdi] + vmovdqu8 ymm2,YMMWORD[64+rdi] + add rdi,0x60 + vbroadcasti32x4 zmm0,ZMMWORD[rcx] + vpternlogq zmm1,zmm9,zmm0,0x96 + vpternlogq zmm2,zmm10,zmm0,0x96 + vbroadcasti32x4 zmm0,ZMMWORD[16+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[32+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[48+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + vbroadcasti32x4 zmm0,ZMMWORD[64+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[80+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[96+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[112+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[128+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[144+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + vbroadcasti32x4 zmm0,ZMMWORD[160+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[176+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[192+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[208+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[224+rcx] + vaesenclast zmm1,zmm1,zmm0 + vaesenclast zmm2,zmm2,zmm0 + vpxorq zmm1,zmm1,zmm9 + vpxorq zmm2,zmm2,zmm10 + vmovdqu8 ZMMWORD[rsi],zmm1 + vmovdqu8 YMMWORD[64+rsi],ymm2 + add rsi,0x60 + vextracti32x4 xmm8,zmm2,0x1 + vextracti32x4 xmm0,zmm10,0x2 + and rdx,0xf + je NEAR $L$_ret_wcpqaDvsGlbjGoe + jmp NEAR $L$_steal_cipher_wcpqaDvsGlbjGoe + +$L$_remaining_num_blocks_is_5_wcpqaDvsGlbjGoe: + vmovdqu8 zmm1,ZMMWORD[rdi] + vmovdqu xmm2,XMMWORD[64+rdi] + add rdi,0x50 + vbroadcasti32x4 zmm0,ZMMWORD[rcx] + vpternlogq zmm1,zmm9,zmm0,0x96 + vpternlogq zmm2,zmm10,zmm0,0x96 + vbroadcasti32x4 zmm0,ZMMWORD[16+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[32+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[48+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + vbroadcasti32x4 zmm0,ZMMWORD[64+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[80+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[96+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[112+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[128+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[144+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + vbroadcasti32x4 zmm0,ZMMWORD[160+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[176+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[192+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[208+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[224+rcx] + vaesenclast zmm1,zmm1,zmm0 + vaesenclast zmm2,zmm2,zmm0 + vpxorq zmm1,zmm1,zmm9 + vpxorq zmm2,zmm2,zmm10 + vmovdqu8 ZMMWORD[rsi],zmm1 + vmovdqu XMMWORD[64+rsi],xmm2 + add rsi,0x50 + vmovdqa xmm8,xmm2 + vextracti32x4 xmm0,zmm10,0x1 + and rdx,0xf + je NEAR $L$_ret_wcpqaDvsGlbjGoe + jmp NEAR $L$_steal_cipher_wcpqaDvsGlbjGoe + +$L$_remaining_num_blocks_is_4_wcpqaDvsGlbjGoe: + vmovdqu8 zmm1,ZMMWORD[rdi] + add rdi,0x40 + vbroadcasti32x4 zmm0,ZMMWORD[rcx] + vpternlogq zmm1,zmm9,zmm0,0x96 + vbroadcasti32x4 zmm0,ZMMWORD[16+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[32+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[48+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[64+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[80+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[96+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[112+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[128+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[144+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[160+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[176+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[192+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[208+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[224+rcx] + vaesenclast zmm1,zmm1,zmm0 + vpxorq zmm1,zmm1,zmm9 + vmovdqu8 ZMMWORD[rsi],zmm1 + add rsi,0x40 + vextracti32x4 xmm8,zmm1,0x3 + vmovdqa64 xmm0,xmm10 + and rdx,0xf + je NEAR $L$_ret_wcpqaDvsGlbjGoe + jmp NEAR $L$_steal_cipher_wcpqaDvsGlbjGoe +$L$_remaining_num_blocks_is_3_wcpqaDvsGlbjGoe: + mov r8,-1 + shr r8,0x10 + kmovq k1,r8 + vmovdqu8 zmm1{k1},[rdi] + add rdi,0x30 + vbroadcasti32x4 zmm0,ZMMWORD[rcx] + vpternlogq zmm1,zmm9,zmm0,0x96 + vbroadcasti32x4 zmm0,ZMMWORD[16+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[32+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[48+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[64+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[80+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[96+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[112+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[128+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[144+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[160+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[176+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[192+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[208+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[224+rcx] + vaesenclast zmm1,zmm1,zmm0 + vpxorq zmm1,zmm1,zmm9 + vmovdqu8 ZMMWORD[rsi]{k1},zmm1 + add rsi,0x30 + vextracti32x4 xmm8,zmm1,0x2 + vextracti32x4 xmm0,zmm9,0x3 + and rdx,0xf + je NEAR $L$_ret_wcpqaDvsGlbjGoe + jmp NEAR $L$_steal_cipher_wcpqaDvsGlbjGoe +$L$_remaining_num_blocks_is_2_wcpqaDvsGlbjGoe: + vmovdqu8 ymm1,YMMWORD[rdi] + add rdi,0x20 + vbroadcasti32x4 ymm0,YMMWORD[rcx] + vpternlogq ymm1,ymm9,ymm0,0x96 + vbroadcasti32x4 ymm0,YMMWORD[16+rcx] + vaesenc ymm1,ymm1,ymm0 + vbroadcasti32x4 ymm0,YMMWORD[32+rcx] + vaesenc ymm1,ymm1,ymm0 + vbroadcasti32x4 ymm0,YMMWORD[48+rcx] + vaesenc ymm1,ymm1,ymm0 + vbroadcasti32x4 ymm0,YMMWORD[64+rcx] + vaesenc ymm1,ymm1,ymm0 + vbroadcasti32x4 ymm0,YMMWORD[80+rcx] + vaesenc ymm1,ymm1,ymm0 + vbroadcasti32x4 ymm0,YMMWORD[96+rcx] + vaesenc ymm1,ymm1,ymm0 + vbroadcasti32x4 ymm0,YMMWORD[112+rcx] + vaesenc ymm1,ymm1,ymm0 + vbroadcasti32x4 ymm0,YMMWORD[128+rcx] + vaesenc ymm1,ymm1,ymm0 + vbroadcasti32x4 ymm0,YMMWORD[144+rcx] + vaesenc ymm1,ymm1,ymm0 + vbroadcasti32x4 ymm0,YMMWORD[160+rcx] + vaesenc ymm1,ymm1,ymm0 + vbroadcasti32x4 ymm0,YMMWORD[176+rcx] + vaesenc ymm1,ymm1,ymm0 + vbroadcasti32x4 ymm0,YMMWORD[192+rcx] + vaesenc ymm1,ymm1,ymm0 + vbroadcasti32x4 ymm0,YMMWORD[208+rcx] + vaesenc ymm1,ymm1,ymm0 + vbroadcasti32x4 ymm0,YMMWORD[224+rcx] + vaesenclast ymm1,ymm1,ymm0 + vpxorq ymm1,ymm1,ymm9 + vmovdqu YMMWORD[rsi],ymm1 + add rsi,0x20 + vextracti32x4 xmm8,zmm1,0x1 + vextracti32x4 xmm0,zmm9,0x2 + and rdx,0xf + je NEAR $L$_ret_wcpqaDvsGlbjGoe + jmp NEAR $L$_steal_cipher_wcpqaDvsGlbjGoe +$L$_remaining_num_blocks_is_1_wcpqaDvsGlbjGoe: + vmovdqu xmm1,XMMWORD[rdi] + add rdi,0x10 + vpxor xmm1,xmm1,xmm9 + vpxor xmm1,xmm1,XMMWORD[rcx] + vaesenc xmm1,xmm1,XMMWORD[16+rcx] + vaesenc xmm1,xmm1,XMMWORD[32+rcx] + vaesenc xmm1,xmm1,XMMWORD[48+rcx] + vaesenc xmm1,xmm1,XMMWORD[64+rcx] + vaesenc xmm1,xmm1,XMMWORD[80+rcx] + vaesenc xmm1,xmm1,XMMWORD[96+rcx] + vaesenc xmm1,xmm1,XMMWORD[112+rcx] + vaesenc xmm1,xmm1,XMMWORD[128+rcx] + vaesenc xmm1,xmm1,XMMWORD[144+rcx] + vaesenc xmm1,xmm1,XMMWORD[160+rcx] + vaesenc xmm1,xmm1,XMMWORD[176+rcx] + vaesenc xmm1,xmm1,XMMWORD[192+rcx] + vaesenc xmm1,xmm1,XMMWORD[208+rcx] + vaesenclast xmm1,xmm1,XMMWORD[224+rcx] + vpxor xmm1,xmm1,xmm9 + vmovdqu XMMWORD[rsi],xmm1 + add rsi,0x10 + vmovdqa xmm8,xmm1 + vextracti32x4 xmm0,zmm9,0x1 + and rdx,0xf + je NEAR $L$_ret_wcpqaDvsGlbjGoe + jmp NEAR $L$_steal_cipher_wcpqaDvsGlbjGoe + + +$L$_start_by16_wcpqaDvsGlbjGoe: + vbroadcasti32x4 zmm0,ZMMWORD[rsp] + vbroadcasti32x4 zmm8,ZMMWORD[shufb_15_7] + mov r8,0xaa + kmovq k2,r8 + vpshufb zmm1,zmm0,zmm8 + vpsllvq zmm4,zmm0,ZMMWORD[const_dq3210] + vpsrlvq zmm2,zmm1,ZMMWORD[const_dq5678] + vpclmulqdq zmm3,zmm2,zmm25,0x0 + vpxorq zmm4{k2},zmm4,zmm2 + vpxord zmm9,zmm3,zmm4 + vpsllvq zmm5,zmm0,ZMMWORD[const_dq7654] + vpsrlvq zmm6,zmm1,ZMMWORD[const_dq1234] + vpclmulqdq zmm7,zmm6,zmm25,0x0 + vpxorq zmm5{k2},zmm5,zmm6 + vpxord zmm10,zmm7,zmm5 + vpsrldq zmm13,zmm9,0xf + vpclmulqdq zmm14,zmm13,zmm25,0x0 + vpslldq zmm11,zmm9,0x1 + vpxord zmm11,zmm11,zmm14 + vpsrldq zmm15,zmm10,0xf + vpclmulqdq zmm16,zmm15,zmm25,0x0 + vpslldq zmm12,zmm10,0x1 + vpxord zmm12,zmm12,zmm16 + +$L$_main_loop_run_16_wcpqaDvsGlbjGoe: + vmovdqu8 zmm1,ZMMWORD[rdi] + vmovdqu8 zmm2,ZMMWORD[64+rdi] + vmovdqu8 zmm3,ZMMWORD[128+rdi] + vmovdqu8 zmm4,ZMMWORD[192+rdi] + add rdi,0x100 + vpxorq zmm1,zmm1,zmm9 + vpxorq zmm2,zmm2,zmm10 + vpxorq zmm3,zmm3,zmm11 + vpxorq zmm4,zmm4,zmm12 + vbroadcasti32x4 zmm0,ZMMWORD[rcx] + vpxorq zmm1,zmm1,zmm0 + vpxorq zmm2,zmm2,zmm0 + vpxorq zmm3,zmm3,zmm0 + vpxorq zmm4,zmm4,zmm0 + vpsrldq zmm13,zmm11,0xf + vpclmulqdq zmm14,zmm13,zmm25,0x0 + vpslldq zmm15,zmm11,0x1 + vpxord zmm15,zmm15,zmm14 + vbroadcasti32x4 zmm0,ZMMWORD[16+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + vaesenc zmm3,zmm3,zmm0 + vaesenc zmm4,zmm4,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[32+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + vaesenc zmm3,zmm3,zmm0 + vaesenc zmm4,zmm4,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[48+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + vaesenc zmm3,zmm3,zmm0 + vaesenc zmm4,zmm4,zmm0 + vpsrldq zmm13,zmm12,0xf + vpclmulqdq zmm14,zmm13,zmm25,0x0 + vpslldq zmm16,zmm12,0x1 + vpxord zmm16,zmm16,zmm14 + vbroadcasti32x4 zmm0,ZMMWORD[64+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + vaesenc zmm3,zmm3,zmm0 + vaesenc zmm4,zmm4,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[80+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + vaesenc zmm3,zmm3,zmm0 + vaesenc zmm4,zmm4,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[96+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + vaesenc zmm3,zmm3,zmm0 + vaesenc zmm4,zmm4,zmm0 + vpsrldq zmm13,zmm15,0xf + vpclmulqdq zmm14,zmm13,zmm25,0x0 + vpslldq zmm17,zmm15,0x1 + vpxord zmm17,zmm17,zmm14 + vbroadcasti32x4 zmm0,ZMMWORD[112+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + vaesenc zmm3,zmm3,zmm0 + vaesenc zmm4,zmm4,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[128+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + vaesenc zmm3,zmm3,zmm0 + vaesenc zmm4,zmm4,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[144+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + vaesenc zmm3,zmm3,zmm0 + vaesenc zmm4,zmm4,zmm0 + vpsrldq zmm13,zmm16,0xf + vpclmulqdq zmm14,zmm13,zmm25,0x0 + vpslldq zmm18,zmm16,0x1 + vpxord zmm18,zmm18,zmm14 + vbroadcasti32x4 zmm0,ZMMWORD[160+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + vaesenc zmm3,zmm3,zmm0 + vaesenc zmm4,zmm4,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[176+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + vaesenc zmm3,zmm3,zmm0 + vaesenc zmm4,zmm4,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[192+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + vaesenc zmm3,zmm3,zmm0 + vaesenc zmm4,zmm4,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[208+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + vaesenc zmm3,zmm3,zmm0 + vaesenc zmm4,zmm4,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[224+rcx] + vaesenclast zmm1,zmm1,zmm0 + vaesenclast zmm2,zmm2,zmm0 + vaesenclast zmm3,zmm3,zmm0 + vaesenclast zmm4,zmm4,zmm0 + vpxorq zmm1,zmm1,zmm9 + vpxorq zmm2,zmm2,zmm10 + vpxorq zmm3,zmm3,zmm11 + vpxorq zmm4,zmm4,zmm12 + + vmovdqa32 zmm9,zmm15 + vmovdqa32 zmm10,zmm16 + vmovdqa32 zmm11,zmm17 + vmovdqa32 zmm12,zmm18 + vmovdqu8 ZMMWORD[rsi],zmm1 + vmovdqu8 ZMMWORD[64+rsi],zmm2 + vmovdqu8 ZMMWORD[128+rsi],zmm3 + vmovdqu8 ZMMWORD[192+rsi],zmm4 + add rsi,0x100 + sub rdx,0x100 + cmp rdx,0x100 + jae NEAR $L$_main_loop_run_16_wcpqaDvsGlbjGoe + cmp rdx,0x80 + jae NEAR $L$_main_loop_run_8_wcpqaDvsGlbjGoe + vextracti32x4 xmm0,zmm4,0x3 + jmp NEAR $L$_do_n_blocks_wcpqaDvsGlbjGoe + +$L$_start_by8_wcpqaDvsGlbjGoe: + vbroadcasti32x4 zmm0,ZMMWORD[rsp] + vbroadcasti32x4 zmm8,ZMMWORD[shufb_15_7] + mov r8,0xaa + kmovq k2,r8 + vpshufb zmm1,zmm0,zmm8 + vpsllvq zmm4,zmm0,ZMMWORD[const_dq3210] + vpsrlvq zmm2,zmm1,ZMMWORD[const_dq5678] + vpclmulqdq zmm3,zmm2,zmm25,0x0 + vpxorq zmm4{k2},zmm4,zmm2 + vpxord zmm9,zmm3,zmm4 + vpsllvq zmm5,zmm0,ZMMWORD[const_dq7654] + vpsrlvq zmm6,zmm1,ZMMWORD[const_dq1234] + vpclmulqdq zmm7,zmm6,zmm25,0x0 + vpxorq zmm5{k2},zmm5,zmm6 + vpxord zmm10,zmm7,zmm5 + +$L$_main_loop_run_8_wcpqaDvsGlbjGoe: + vmovdqu8 zmm1,ZMMWORD[rdi] + vmovdqu8 zmm2,ZMMWORD[64+rdi] + add rdi,0x80 + vbroadcasti32x4 zmm0,ZMMWORD[rcx] + vpternlogq zmm1,zmm9,zmm0,0x96 + vpternlogq zmm2,zmm10,zmm0,0x96 + vpsrldq zmm13,zmm9,0xf + vpclmulqdq zmm14,zmm13,zmm25,0x0 + vpslldq zmm15,zmm9,0x1 + vpxord zmm15,zmm15,zmm14 + vbroadcasti32x4 zmm0,ZMMWORD[16+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[32+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[48+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + vpsrldq zmm13,zmm10,0xf + vpclmulqdq zmm14,zmm13,zmm25,0x0 + vpslldq zmm16,zmm10,0x1 + vpxord zmm16,zmm16,zmm14 + + vbroadcasti32x4 zmm0,ZMMWORD[64+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[80+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[96+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[112+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[128+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[144+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + vbroadcasti32x4 zmm0,ZMMWORD[160+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[176+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[192+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[208+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[224+rcx] + vaesenclast zmm1,zmm1,zmm0 + vaesenclast zmm2,zmm2,zmm0 + vpxorq zmm1,zmm1,zmm9 + vpxorq zmm2,zmm2,zmm10 + vmovdqa32 zmm9,zmm15 + vmovdqa32 zmm10,zmm16 + vmovdqu8 ZMMWORD[rsi],zmm1 + vmovdqu8 ZMMWORD[64+rsi],zmm2 + add rsi,0x80 + sub rdx,0x80 + cmp rdx,0x80 + jae NEAR $L$_main_loop_run_8_wcpqaDvsGlbjGoe + vextracti32x4 xmm0,zmm2,0x3 + jmp NEAR $L$_do_n_blocks_wcpqaDvsGlbjGoe + +$L$_steal_cipher_wcpqaDvsGlbjGoe: + vmovdqa xmm2,xmm8 + lea rax,[vpshufb_shf_table] + vmovdqu xmm10,XMMWORD[rdx*1+rax] + vpshufb xmm8,xmm8,xmm10 + vmovdqu xmm3,XMMWORD[((-16))+rdx*1+rdi] + vmovdqu XMMWORD[(-16)+rdx*1+rsi],xmm8 + lea rax,[vpshufb_shf_table] + add rax,16 + sub rax,rdx + vmovdqu xmm10,XMMWORD[rax] + vpxor xmm10,xmm10,XMMWORD[mask1] + vpshufb xmm3,xmm3,xmm10 + vpblendvb xmm3,xmm3,xmm2,xmm10 + vpxor xmm8,xmm3,xmm0 + vpxor xmm8,xmm8,XMMWORD[rcx] + vaesenc xmm8,xmm8,XMMWORD[16+rcx] + vaesenc xmm8,xmm8,XMMWORD[32+rcx] + vaesenc xmm8,xmm8,XMMWORD[48+rcx] + vaesenc xmm8,xmm8,XMMWORD[64+rcx] + vaesenc xmm8,xmm8,XMMWORD[80+rcx] + vaesenc xmm8,xmm8,XMMWORD[96+rcx] + vaesenc xmm8,xmm8,XMMWORD[112+rcx] + vaesenc xmm8,xmm8,XMMWORD[128+rcx] + vaesenc xmm8,xmm8,XMMWORD[144+rcx] + vaesenc xmm8,xmm8,XMMWORD[160+rcx] + vaesenc xmm8,xmm8,XMMWORD[176+rcx] + vaesenc xmm8,xmm8,XMMWORD[192+rcx] + vaesenc xmm8,xmm8,XMMWORD[208+rcx] + vaesenclast xmm8,xmm8,XMMWORD[224+rcx] + vpxor xmm8,xmm8,xmm0 + vmovdqu XMMWORD[(-16)+rsi],xmm8 +$L$_ret_wcpqaDvsGlbjGoe: + mov rbx,QWORD[288+rsp] + xor r8,r8 + mov QWORD[288+rsp],r8 + + vpxorq zmm0,zmm0,zmm0 + mov rdi,QWORD[((288 + 8))+rsp] + mov QWORD[((288 + 8))+rsp],r8 + mov rsi,QWORD[((288 + 16))+rsp] + mov QWORD[((288 + 16))+rsp],r8 + + vmovdqa xmm6,XMMWORD[((128 + 0))+rsp] + vmovdqa xmm7,XMMWORD[((128 + 16))+rsp] + vmovdqa xmm8,XMMWORD[((128 + 32))+rsp] + vmovdqa xmm9,XMMWORD[((128 + 48))+rsp] + + + vmovdqa64 ZMMWORD[128+rsp],zmm0 + + vmovdqa xmm10,XMMWORD[((128 + 64))+rsp] + vmovdqa xmm11,XMMWORD[((128 + 80))+rsp] + vmovdqa xmm12,XMMWORD[((128 + 96))+rsp] + vmovdqa xmm13,XMMWORD[((128 + 112))+rsp] + + + vmovdqa64 ZMMWORD[(128 + 64)+rsp],zmm0 + + vmovdqa xmm14,XMMWORD[((128 + 128))+rsp] + vmovdqa xmm15,XMMWORD[((128 + 144))+rsp] + + + + vmovdqa YMMWORD[(128 + 128)+rsp],ymm0 + mov rsp,rbp + pop rbp + vzeroupper + mov rdi,QWORD[8+rsp] ;WIN64 epilogue + mov rsi,QWORD[16+rsp] + DB 0F3h,0C3h ;repret + +$L$_less_than_128_bytes_wcpqaDvsGlbjGoe: + vpbroadcastq zmm25,r10 + cmp rdx,0x10 + jb NEAR $L$_ret_wcpqaDvsGlbjGoe + vbroadcasti32x4 zmm0,ZMMWORD[rsp] + vbroadcasti32x4 zmm8,ZMMWORD[shufb_15_7] + mov r8d,0xaa + kmovq k2,r8 + mov r8,rdx + and r8,0x70 + cmp r8,0x60 + je NEAR $L$_num_blocks_is_6_wcpqaDvsGlbjGoe + cmp r8,0x50 + je NEAR $L$_num_blocks_is_5_wcpqaDvsGlbjGoe + cmp r8,0x40 + je NEAR $L$_num_blocks_is_4_wcpqaDvsGlbjGoe + cmp r8,0x30 + je NEAR $L$_num_blocks_is_3_wcpqaDvsGlbjGoe + cmp r8,0x20 + je NEAR $L$_num_blocks_is_2_wcpqaDvsGlbjGoe + cmp r8,0x10 + je NEAR $L$_num_blocks_is_1_wcpqaDvsGlbjGoe + +$L$_num_blocks_is_7_wcpqaDvsGlbjGoe: + vpshufb zmm1,zmm0,zmm8 + vpsllvq zmm4,zmm0,ZMMWORD[const_dq3210] + vpsrlvq zmm2,zmm1,ZMMWORD[const_dq5678] + vpclmulqdq zmm3,zmm2,zmm25,0x00 + vpxorq zmm4{k2},zmm4,zmm2 + vpxord zmm9,zmm3,zmm4 + vpsllvq zmm5,zmm0,ZMMWORD[const_dq7654] + vpsrlvq zmm6,zmm1,ZMMWORD[const_dq1234] + vpclmulqdq zmm7,zmm6,zmm25,0x00 + vpxorq zmm5{k2},zmm5,zmm6 + vpxord zmm10,zmm7,zmm5 + mov r8,0x0000ffffffffffff + kmovq k1,r8 + vmovdqu8 zmm1,ZMMWORD[rdi] + vmovdqu8 zmm2{k1},[64+rdi] + + add rdi,0x70 + vbroadcasti32x4 zmm0,ZMMWORD[rcx] + vpternlogq zmm1,zmm9,zmm0,0x96 + vpternlogq zmm2,zmm10,zmm0,0x96 + vbroadcasti32x4 zmm0,ZMMWORD[16+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[32+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[48+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + vbroadcasti32x4 zmm0,ZMMWORD[64+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[80+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[96+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[112+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[128+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[144+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + vbroadcasti32x4 zmm0,ZMMWORD[160+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[176+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[192+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[208+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[224+rcx] + vaesenclast zmm1,zmm1,zmm0 + vaesenclast zmm2,zmm2,zmm0 + vpxorq zmm1,zmm1,zmm9 + vpxorq zmm2,zmm2,zmm10 + vmovdqu8 ZMMWORD[rsi],zmm1 + vmovdqu8 ZMMWORD[64+rsi]{k1},zmm2 + add rsi,0x70 + vextracti32x4 xmm8,zmm2,0x2 + vextracti32x4 xmm0,zmm10,0x3 + and rdx,0xf + je NEAR $L$_ret_wcpqaDvsGlbjGoe + jmp NEAR $L$_steal_cipher_wcpqaDvsGlbjGoe +$L$_num_blocks_is_6_wcpqaDvsGlbjGoe: + vpshufb zmm1,zmm0,zmm8 + vpsllvq zmm4,zmm0,ZMMWORD[const_dq3210] + vpsrlvq zmm2,zmm1,ZMMWORD[const_dq5678] + vpclmulqdq zmm3,zmm2,zmm25,0x00 + vpxorq zmm4{k2},zmm4,zmm2 + vpxord zmm9,zmm3,zmm4 + vpsllvq zmm5,zmm0,ZMMWORD[const_dq7654] + vpsrlvq zmm6,zmm1,ZMMWORD[const_dq1234] + vpclmulqdq zmm7,zmm6,zmm25,0x00 + vpxorq zmm5{k2},zmm5,zmm6 + vpxord zmm10,zmm7,zmm5 + vmovdqu8 zmm1,ZMMWORD[rdi] + vmovdqu8 ymm2,YMMWORD[64+rdi] + add rdi,96 + vbroadcasti32x4 zmm0,ZMMWORD[rcx] + vpternlogq zmm1,zmm9,zmm0,0x96 + vpternlogq zmm2,zmm10,zmm0,0x96 + vbroadcasti32x4 zmm0,ZMMWORD[16+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[32+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[48+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + vbroadcasti32x4 zmm0,ZMMWORD[64+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[80+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[96+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[112+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[128+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[144+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + vbroadcasti32x4 zmm0,ZMMWORD[160+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[176+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[192+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[208+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[224+rcx] + vaesenclast zmm1,zmm1,zmm0 + vaesenclast zmm2,zmm2,zmm0 + vpxorq zmm1,zmm1,zmm9 + vpxorq zmm2,zmm2,zmm10 + vmovdqu8 ZMMWORD[rsi],zmm1 + vmovdqu8 YMMWORD[64+rsi],ymm2 + add rsi,96 + + vextracti32x4 xmm8,ymm2,0x1 + vextracti32x4 xmm0,zmm10,0x2 + and rdx,0xf + je NEAR $L$_ret_wcpqaDvsGlbjGoe + jmp NEAR $L$_steal_cipher_wcpqaDvsGlbjGoe +$L$_num_blocks_is_5_wcpqaDvsGlbjGoe: + vpshufb zmm1,zmm0,zmm8 + vpsllvq zmm4,zmm0,ZMMWORD[const_dq3210] + vpsrlvq zmm2,zmm1,ZMMWORD[const_dq5678] + vpclmulqdq zmm3,zmm2,zmm25,0x00 + vpxorq zmm4{k2},zmm4,zmm2 + vpxord zmm9,zmm3,zmm4 + vpsllvq zmm5,zmm0,ZMMWORD[const_dq7654] + vpsrlvq zmm6,zmm1,ZMMWORD[const_dq1234] + vpclmulqdq zmm7,zmm6,zmm25,0x00 + vpxorq zmm5{k2},zmm5,zmm6 + vpxord zmm10,zmm7,zmm5 + vmovdqu8 zmm1,ZMMWORD[rdi] + vmovdqu8 xmm2,XMMWORD[64+rdi] + add rdi,80 + vbroadcasti32x4 zmm0,ZMMWORD[rcx] + vpternlogq zmm1,zmm9,zmm0,0x96 + vpternlogq zmm2,zmm10,zmm0,0x96 + vbroadcasti32x4 zmm0,ZMMWORD[16+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[32+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[48+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + vbroadcasti32x4 zmm0,ZMMWORD[64+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[80+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[96+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[112+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[128+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[144+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + vbroadcasti32x4 zmm0,ZMMWORD[160+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[176+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[192+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[208+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[224+rcx] + vaesenclast zmm1,zmm1,zmm0 + vaesenclast zmm2,zmm2,zmm0 + vpxorq zmm1,zmm1,zmm9 + vpxorq zmm2,zmm2,zmm10 + vmovdqu8 ZMMWORD[rsi],zmm1 + vmovdqu8 XMMWORD[64+rsi],xmm2 + add rsi,80 + + vmovdqa xmm8,xmm2 + vextracti32x4 xmm0,zmm10,0x1 + and rdx,0xf + je NEAR $L$_ret_wcpqaDvsGlbjGoe + jmp NEAR $L$_steal_cipher_wcpqaDvsGlbjGoe +$L$_num_blocks_is_4_wcpqaDvsGlbjGoe: + vpshufb zmm1,zmm0,zmm8 + vpsllvq zmm4,zmm0,ZMMWORD[const_dq3210] + vpsrlvq zmm2,zmm1,ZMMWORD[const_dq5678] + vpclmulqdq zmm3,zmm2,zmm25,0x00 + vpxorq zmm4{k2},zmm4,zmm2 + vpxord zmm9,zmm3,zmm4 + vpsllvq zmm5,zmm0,ZMMWORD[const_dq7654] + vpsrlvq zmm6,zmm1,ZMMWORD[const_dq1234] + vpclmulqdq zmm7,zmm6,zmm25,0x00 + vpxorq zmm5{k2},zmm5,zmm6 + vpxord zmm10,zmm7,zmm5 + vmovdqu8 zmm1,ZMMWORD[rdi] + add rdi,64 + vbroadcasti32x4 zmm0,ZMMWORD[rcx] + vpternlogq zmm1,zmm9,zmm0,0x96 + vbroadcasti32x4 zmm0,ZMMWORD[16+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[32+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[48+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[64+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[80+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[96+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[112+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[128+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[144+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[160+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[176+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[192+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[208+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[224+rcx] + vaesenclast zmm1,zmm1,zmm0 + vpxorq zmm1,zmm1,zmm9 + vmovdqu8 ZMMWORD[rsi],zmm1 + add rsi,64 + vextracti32x4 xmm8,zmm1,0x3 + vmovdqa xmm0,xmm10 + and rdx,0xf + je NEAR $L$_ret_wcpqaDvsGlbjGoe + jmp NEAR $L$_steal_cipher_wcpqaDvsGlbjGoe +$L$_num_blocks_is_3_wcpqaDvsGlbjGoe: + vpshufb zmm1,zmm0,zmm8 + vpsllvq zmm4,zmm0,ZMMWORD[const_dq3210] + vpsrlvq zmm2,zmm1,ZMMWORD[const_dq5678] + vpclmulqdq zmm3,zmm2,zmm25,0x00 + vpxorq zmm4{k2},zmm4,zmm2 + vpxord zmm9,zmm3,zmm4 + mov r8,0x0000ffffffffffff + kmovq k1,r8 + vmovdqu8 zmm1{k1},[rdi] + add rdi,48 + vbroadcasti32x4 zmm0,ZMMWORD[rcx] + vpternlogq zmm1,zmm9,zmm0,0x96 + vbroadcasti32x4 zmm0,ZMMWORD[16+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[32+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[48+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[64+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[80+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[96+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[112+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[128+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[144+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[160+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[176+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[192+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[208+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[224+rcx] + vaesenclast zmm1,zmm1,zmm0 + vpxorq zmm1,zmm1,zmm9 + vmovdqu8 ZMMWORD[rsi]{k1},zmm1 + add rsi,48 + vextracti32x4 xmm8,zmm1,2 + vextracti32x4 xmm0,zmm9,3 + and rdx,0xf + je NEAR $L$_ret_wcpqaDvsGlbjGoe + jmp NEAR $L$_steal_cipher_wcpqaDvsGlbjGoe +$L$_num_blocks_is_2_wcpqaDvsGlbjGoe: + vpshufb zmm1,zmm0,zmm8 + vpsllvq zmm4,zmm0,ZMMWORD[const_dq3210] + vpsrlvq zmm2,zmm1,ZMMWORD[const_dq5678] + vpclmulqdq zmm3,zmm2,zmm25,0x00 + vpxorq zmm4{k2},zmm4,zmm2 + vpxord zmm9,zmm3,zmm4 + + vmovdqu8 ymm1,YMMWORD[rdi] + add rdi,32 + vbroadcasti32x4 ymm0,YMMWORD[rcx] + vpternlogq ymm1,ymm9,ymm0,0x96 + vbroadcasti32x4 ymm0,YMMWORD[16+rcx] + vaesenc ymm1,ymm1,ymm0 + vbroadcasti32x4 ymm0,YMMWORD[32+rcx] + vaesenc ymm1,ymm1,ymm0 + vbroadcasti32x4 ymm0,YMMWORD[48+rcx] + vaesenc ymm1,ymm1,ymm0 + vbroadcasti32x4 ymm0,YMMWORD[64+rcx] + vaesenc ymm1,ymm1,ymm0 + vbroadcasti32x4 ymm0,YMMWORD[80+rcx] + vaesenc ymm1,ymm1,ymm0 + vbroadcasti32x4 ymm0,YMMWORD[96+rcx] + vaesenc ymm1,ymm1,ymm0 + vbroadcasti32x4 ymm0,YMMWORD[112+rcx] + vaesenc ymm1,ymm1,ymm0 + vbroadcasti32x4 ymm0,YMMWORD[128+rcx] + vaesenc ymm1,ymm1,ymm0 + vbroadcasti32x4 ymm0,YMMWORD[144+rcx] + vaesenc ymm1,ymm1,ymm0 + vbroadcasti32x4 ymm0,YMMWORD[160+rcx] + vaesenc ymm1,ymm1,ymm0 + vbroadcasti32x4 ymm0,YMMWORD[176+rcx] + vaesenc ymm1,ymm1,ymm0 + vbroadcasti32x4 ymm0,YMMWORD[192+rcx] + vaesenc ymm1,ymm1,ymm0 + vbroadcasti32x4 ymm0,YMMWORD[208+rcx] + vaesenc ymm1,ymm1,ymm0 + vbroadcasti32x4 ymm0,YMMWORD[224+rcx] + vaesenclast ymm1,ymm1,ymm0 + vpxorq ymm1,ymm1,ymm9 + vmovdqu8 YMMWORD[rsi],ymm1 + add rsi,32 + + vextracti32x4 xmm8,ymm1,1 + vextracti32x4 xmm0,zmm9,2 + and rdx,0xf + je NEAR $L$_ret_wcpqaDvsGlbjGoe + jmp NEAR $L$_steal_cipher_wcpqaDvsGlbjGoe +$L$_num_blocks_is_1_wcpqaDvsGlbjGoe: + vpshufb zmm1,zmm0,zmm8 + vpsllvq zmm4,zmm0,ZMMWORD[const_dq3210] + vpsrlvq zmm2,zmm1,ZMMWORD[const_dq5678] + vpclmulqdq zmm3,zmm2,zmm25,0x00 + vpxorq zmm4{k2},zmm4,zmm2 + vpxord zmm9,zmm3,zmm4 + + vmovdqu8 xmm1,XMMWORD[rdi] + add rdi,16 + vbroadcasti32x4 ymm0,YMMWORD[rcx] + vpternlogq ymm1,ymm9,ymm0,0x96 + vbroadcasti32x4 ymm0,YMMWORD[16+rcx] + vaesenc ymm1,ymm1,ymm0 + vbroadcasti32x4 ymm0,YMMWORD[32+rcx] + vaesenc ymm1,ymm1,ymm0 + vbroadcasti32x4 ymm0,YMMWORD[48+rcx] + vaesenc ymm1,ymm1,ymm0 + vbroadcasti32x4 ymm0,YMMWORD[64+rcx] + vaesenc ymm1,ymm1,ymm0 + vbroadcasti32x4 ymm0,YMMWORD[80+rcx] + vaesenc ymm1,ymm1,ymm0 + vbroadcasti32x4 ymm0,YMMWORD[96+rcx] + vaesenc ymm1,ymm1,ymm0 + vbroadcasti32x4 ymm0,YMMWORD[112+rcx] + vaesenc ymm1,ymm1,ymm0 + vbroadcasti32x4 ymm0,YMMWORD[128+rcx] + vaesenc ymm1,ymm1,ymm0 + vbroadcasti32x4 ymm0,YMMWORD[144+rcx] + vaesenc ymm1,ymm1,ymm0 + vbroadcasti32x4 ymm0,YMMWORD[160+rcx] + vaesenc ymm1,ymm1,ymm0 + vbroadcasti32x4 ymm0,YMMWORD[176+rcx] + vaesenc ymm1,ymm1,ymm0 + vbroadcasti32x4 ymm0,YMMWORD[192+rcx] + vaesenc ymm1,ymm1,ymm0 + vbroadcasti32x4 ymm0,YMMWORD[208+rcx] + vaesenc ymm1,ymm1,ymm0 + vbroadcasti32x4 ymm0,YMMWORD[224+rcx] + vaesenclast ymm1,ymm1,ymm0 + vpxorq ymm1,ymm1,ymm9 + vmovdqu8 XMMWORD[rsi],xmm1 + add rsi,16 + + vmovdqa xmm8,xmm1 + vextracti32x4 xmm0,zmm9,1 + and rdx,0xf + je NEAR $L$_ret_wcpqaDvsGlbjGoe + jmp NEAR $L$_steal_cipher_wcpqaDvsGlbjGoe + +global aesni_xts_256_decrypt_avx512 + + +ALIGN 32 +aesni_xts_256_decrypt_avx512: + mov QWORD[8+rsp],rdi ;WIN64 prologue + mov QWORD[16+rsp],rsi + mov rax,rsp +$L$SEH_begin_aesni_xts_256_decrypt_avx512: + mov rdi,rcx + mov rsi,rdx + mov rdx,r8 + mov rcx,r9 + mov r8,QWORD[40+rsp] + mov r9,QWORD[48+rsp] + + + +DB 243,15,30,250 + push rbp + mov rbp,rsp + sub rsp,312 + and rsp,0xffffffffffffffc0 + mov QWORD[288+rsp],rbx + mov QWORD[((288 + 8))+rsp],rdi + mov QWORD[((288 + 16))+rsp],rsi + vmovdqa XMMWORD[(128 + 0)+rsp],xmm6 + vmovdqa XMMWORD[(128 + 16)+rsp],xmm7 + vmovdqa XMMWORD[(128 + 32)+rsp],xmm8 + vmovdqa XMMWORD[(128 + 48)+rsp],xmm9 + vmovdqa XMMWORD[(128 + 64)+rsp],xmm10 + vmovdqa XMMWORD[(128 + 80)+rsp],xmm11 + vmovdqa XMMWORD[(128 + 96)+rsp],xmm12 + vmovdqa XMMWORD[(128 + 112)+rsp],xmm13 + vmovdqa XMMWORD[(128 + 128)+rsp],xmm14 + vmovdqa XMMWORD[(128 + 144)+rsp],xmm15 + mov r10,0x87 + vmovdqu xmm1,XMMWORD[r9] + vpxor xmm1,xmm1,XMMWORD[r8] + vaesenc xmm1,xmm1,XMMWORD[16+r8] + vaesenc xmm1,xmm1,XMMWORD[32+r8] + vaesenc xmm1,xmm1,XMMWORD[48+r8] + vaesenc xmm1,xmm1,XMMWORD[64+r8] + vaesenc xmm1,xmm1,XMMWORD[80+r8] + vaesenc xmm1,xmm1,XMMWORD[96+r8] + vaesenc xmm1,xmm1,XMMWORD[112+r8] + vaesenc xmm1,xmm1,XMMWORD[128+r8] + vaesenc xmm1,xmm1,XMMWORD[144+r8] + vaesenc xmm1,xmm1,XMMWORD[160+r8] + vaesenc xmm1,xmm1,XMMWORD[176+r8] + vaesenc xmm1,xmm1,XMMWORD[192+r8] + vaesenc xmm1,xmm1,XMMWORD[208+r8] + vaesenclast xmm1,xmm1,XMMWORD[224+r8] + vmovdqa XMMWORD[rsp],xmm1 + mov QWORD[((8 + 40))+rbp],rdi + mov QWORD[((8 + 48))+rbp],rsi + + cmp rdx,0x80 + jb NEAR $L$_less_than_128_bytes_EmbgEptodyewbFa + vpbroadcastq zmm25,r10 + cmp rdx,0x100 + jge NEAR $L$_start_by16_EmbgEptodyewbFa + jmp NEAR $L$_start_by8_EmbgEptodyewbFa + +$L$_do_n_blocks_EmbgEptodyewbFa: + cmp rdx,0x0 + je NEAR $L$_ret_EmbgEptodyewbFa + cmp rdx,0x70 + jge NEAR $L$_remaining_num_blocks_is_7_EmbgEptodyewbFa + cmp rdx,0x60 + jge NEAR $L$_remaining_num_blocks_is_6_EmbgEptodyewbFa + cmp rdx,0x50 + jge NEAR $L$_remaining_num_blocks_is_5_EmbgEptodyewbFa + cmp rdx,0x40 + jge NEAR $L$_remaining_num_blocks_is_4_EmbgEptodyewbFa + cmp rdx,0x30 + jge NEAR $L$_remaining_num_blocks_is_3_EmbgEptodyewbFa + cmp rdx,0x20 + jge NEAR $L$_remaining_num_blocks_is_2_EmbgEptodyewbFa + cmp rdx,0x10 + jge NEAR $L$_remaining_num_blocks_is_1_EmbgEptodyewbFa + + + vmovdqu xmm1,xmm5 + + vpxor xmm1,xmm1,xmm9 + vmovdqu xmm0,XMMWORD[rcx] + vpxor xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[16+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[32+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[48+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[64+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[80+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[96+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[112+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[128+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[144+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[160+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[176+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[192+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[208+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[224+rcx] + vaesdeclast xmm1,xmm1,xmm0 + vpxor xmm1,xmm1,xmm9 + vmovdqu XMMWORD[(-16)+rsi],xmm1 + vmovdqa xmm8,xmm1 + + + mov r8,0x1 + kmovq k1,r8 + vpsllq xmm13,xmm9,0x3f + vpsraq xmm14,xmm13,0x3f + vpandq xmm5,xmm14,xmm25 + vpxorq xmm9{k1},xmm9,xmm5 + vpsrldq xmm10,xmm9,0x8 +DB 98,211,181,8,115,194,1 + vpslldq xmm13,xmm13,0x8 + vpxorq xmm0,xmm0,xmm13 + jmp NEAR $L$_steal_cipher_EmbgEptodyewbFa + +$L$_remaining_num_blocks_is_7_EmbgEptodyewbFa: + mov r8,0xffffffffffffffff + shr r8,0x10 + kmovq k1,r8 + vmovdqu8 zmm1,ZMMWORD[rdi] + vmovdqu8 zmm2{k1},[64+rdi] + add rdi,0x70 + and rdx,0xf + je NEAR $L$_done_7_remain_EmbgEptodyewbFa + vextracti32x4 xmm12,zmm10,0x2 + vextracti32x4 xmm13,zmm10,0x3 + vinserti32x4 zmm10,zmm10,xmm13,0x2 + + vpxorq zmm1,zmm1,zmm9 + vpxorq zmm2,zmm2,zmm10 + + + vbroadcasti32x4 zmm0,ZMMWORD[rcx] + vpxorq zmm1,zmm1,zmm0 + vpxorq zmm2,zmm2,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[16+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[32+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[48+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + vbroadcasti32x4 zmm0,ZMMWORD[64+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[80+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[96+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[112+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[128+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[144+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[160+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[176+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[192+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[208+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[224+rcx] + vaesdeclast zmm1,zmm1,zmm0 + vaesdeclast zmm2,zmm2,zmm0 + + vpxorq zmm1,zmm1,zmm9 + vpxorq zmm2,zmm2,zmm10 + + + vmovdqa32 zmm9,zmm15 + vmovdqa32 zmm10,zmm16 + vmovdqu8 ZMMWORD[rsi],zmm1 + vmovdqu8 ZMMWORD[64+rsi]{k1},zmm2 + add rsi,0x70 + vextracti32x4 xmm8,zmm2,0x2 + vmovdqa xmm0,xmm12 + jmp NEAR $L$_steal_cipher_EmbgEptodyewbFa + +$L$_done_7_remain_EmbgEptodyewbFa: + + vpxorq zmm1,zmm1,zmm9 + vpxorq zmm2,zmm2,zmm10 + + + vbroadcasti32x4 zmm0,ZMMWORD[rcx] + vpxorq zmm1,zmm1,zmm0 + vpxorq zmm2,zmm2,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[16+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[32+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[48+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + vbroadcasti32x4 zmm0,ZMMWORD[64+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[80+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[96+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[112+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[128+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[144+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[160+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[176+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[192+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[208+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[224+rcx] + vaesdeclast zmm1,zmm1,zmm0 + vaesdeclast zmm2,zmm2,zmm0 + + vpxorq zmm1,zmm1,zmm9 + vpxorq zmm2,zmm2,zmm10 + + + vmovdqa32 zmm9,zmm15 + vmovdqa32 zmm10,zmm16 + vmovdqu8 ZMMWORD[rsi],zmm1 + vmovdqu8 ZMMWORD[64+rsi]{k1},zmm2 + jmp NEAR $L$_ret_EmbgEptodyewbFa + +$L$_remaining_num_blocks_is_6_EmbgEptodyewbFa: + vmovdqu8 zmm1,ZMMWORD[rdi] + vmovdqu8 ymm2,YMMWORD[64+rdi] + add rdi,0x60 + and rdx,0xf + je NEAR $L$_done_6_remain_EmbgEptodyewbFa + vextracti32x4 xmm12,zmm10,0x1 + vextracti32x4 xmm13,zmm10,0x2 + vinserti32x4 zmm10,zmm10,xmm13,0x1 + + vpxorq zmm1,zmm1,zmm9 + vpxorq zmm2,zmm2,zmm10 + + + vbroadcasti32x4 zmm0,ZMMWORD[rcx] + vpxorq zmm1,zmm1,zmm0 + vpxorq zmm2,zmm2,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[16+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[32+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[48+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + vbroadcasti32x4 zmm0,ZMMWORD[64+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[80+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[96+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[112+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[128+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[144+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[160+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[176+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[192+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[208+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[224+rcx] + vaesdeclast zmm1,zmm1,zmm0 + vaesdeclast zmm2,zmm2,zmm0 + + vpxorq zmm1,zmm1,zmm9 + vpxorq zmm2,zmm2,zmm10 + + + vmovdqa32 zmm9,zmm15 + vmovdqa32 zmm10,zmm16 + vmovdqu8 ZMMWORD[rsi],zmm1 + vmovdqu8 YMMWORD[64+rsi],ymm2 + add rsi,0x60 + vextracti32x4 xmm8,zmm2,0x1 + vmovdqa xmm0,xmm12 + jmp NEAR $L$_steal_cipher_EmbgEptodyewbFa + +$L$_done_6_remain_EmbgEptodyewbFa: + + vpxorq zmm1,zmm1,zmm9 + vpxorq zmm2,zmm2,zmm10 + + + vbroadcasti32x4 zmm0,ZMMWORD[rcx] + vpxorq zmm1,zmm1,zmm0 + vpxorq zmm2,zmm2,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[16+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[32+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[48+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + vbroadcasti32x4 zmm0,ZMMWORD[64+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[80+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[96+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[112+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[128+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[144+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[160+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[176+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[192+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[208+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[224+rcx] + vaesdeclast zmm1,zmm1,zmm0 + vaesdeclast zmm2,zmm2,zmm0 + + vpxorq zmm1,zmm1,zmm9 + vpxorq zmm2,zmm2,zmm10 + + + vmovdqa32 zmm9,zmm15 + vmovdqa32 zmm10,zmm16 + vmovdqu8 ZMMWORD[rsi],zmm1 + vmovdqu8 YMMWORD[64+rsi],ymm2 + jmp NEAR $L$_ret_EmbgEptodyewbFa + +$L$_remaining_num_blocks_is_5_EmbgEptodyewbFa: + vmovdqu8 zmm1,ZMMWORD[rdi] + vmovdqu xmm2,XMMWORD[64+rdi] + add rdi,0x50 + and rdx,0xf + je NEAR $L$_done_5_remain_EmbgEptodyewbFa + vmovdqa xmm12,xmm10 + vextracti32x4 xmm10,zmm10,0x1 + + vpxorq zmm1,zmm1,zmm9 + vpxorq zmm2,zmm2,zmm10 + + + vbroadcasti32x4 zmm0,ZMMWORD[rcx] + vpxorq zmm1,zmm1,zmm0 + vpxorq zmm2,zmm2,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[16+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[32+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[48+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + vbroadcasti32x4 zmm0,ZMMWORD[64+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[80+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[96+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[112+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[128+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[144+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[160+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[176+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[192+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[208+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[224+rcx] + vaesdeclast zmm1,zmm1,zmm0 + vaesdeclast zmm2,zmm2,zmm0 + + vpxorq zmm1,zmm1,zmm9 + vpxorq zmm2,zmm2,zmm10 + + + vmovdqa32 zmm9,zmm15 + vmovdqa32 zmm10,zmm16 + vmovdqu8 ZMMWORD[rsi],zmm1 + vmovdqu XMMWORD[64+rsi],xmm2 + add rsi,0x50 + vmovdqa xmm8,xmm2 + vmovdqa xmm0,xmm12 + jmp NEAR $L$_steal_cipher_EmbgEptodyewbFa + +$L$_done_5_remain_EmbgEptodyewbFa: + + vpxorq zmm1,zmm1,zmm9 + vpxorq zmm2,zmm2,zmm10 + + + vbroadcasti32x4 zmm0,ZMMWORD[rcx] + vpxorq zmm1,zmm1,zmm0 + vpxorq zmm2,zmm2,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[16+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[32+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[48+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + vbroadcasti32x4 zmm0,ZMMWORD[64+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[80+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[96+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[112+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[128+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[144+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[160+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[176+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[192+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[208+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[224+rcx] + vaesdeclast zmm1,zmm1,zmm0 + vaesdeclast zmm2,zmm2,zmm0 + + vpxorq zmm1,zmm1,zmm9 + vpxorq zmm2,zmm2,zmm10 + + + vmovdqa32 zmm9,zmm15 + vmovdqa32 zmm10,zmm16 + vmovdqu8 ZMMWORD[rsi],zmm1 + vmovdqu8 XMMWORD[64+rsi],xmm2 + jmp NEAR $L$_ret_EmbgEptodyewbFa + +$L$_remaining_num_blocks_is_4_EmbgEptodyewbFa: + vmovdqu8 zmm1,ZMMWORD[rdi] + add rdi,0x40 + and rdx,0xf + je NEAR $L$_done_4_remain_EmbgEptodyewbFa + vextracti32x4 xmm12,zmm9,0x3 + vinserti32x4 zmm9,zmm9,xmm10,0x3 + + vpxorq zmm1,zmm1,zmm9 + vpxorq zmm2,zmm2,zmm10 + + + vbroadcasti32x4 zmm0,ZMMWORD[rcx] + vpxorq zmm1,zmm1,zmm0 + vpxorq zmm2,zmm2,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[16+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[32+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[48+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + vbroadcasti32x4 zmm0,ZMMWORD[64+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[80+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[96+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[112+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[128+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[144+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[160+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[176+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[192+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[208+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[224+rcx] + vaesdeclast zmm1,zmm1,zmm0 + vaesdeclast zmm2,zmm2,zmm0 + + vpxorq zmm1,zmm1,zmm9 + vpxorq zmm2,zmm2,zmm10 + + + vmovdqa32 zmm9,zmm15 + vmovdqa32 zmm10,zmm16 + vmovdqu8 ZMMWORD[rsi],zmm1 + add rsi,0x40 + vextracti32x4 xmm8,zmm1,0x3 + vmovdqa xmm0,xmm12 + jmp NEAR $L$_steal_cipher_EmbgEptodyewbFa + +$L$_done_4_remain_EmbgEptodyewbFa: + + vpxorq zmm1,zmm1,zmm9 + vpxorq zmm2,zmm2,zmm10 + + + vbroadcasti32x4 zmm0,ZMMWORD[rcx] + vpxorq zmm1,zmm1,zmm0 + vpxorq zmm2,zmm2,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[16+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[32+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[48+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + vbroadcasti32x4 zmm0,ZMMWORD[64+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[80+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[96+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[112+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[128+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[144+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[160+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[176+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[192+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[208+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[224+rcx] + vaesdeclast zmm1,zmm1,zmm0 + vaesdeclast zmm2,zmm2,zmm0 + + vpxorq zmm1,zmm1,zmm9 + vpxorq zmm2,zmm2,zmm10 + + + vmovdqa32 zmm9,zmm15 + vmovdqa32 zmm10,zmm16 + vmovdqu8 ZMMWORD[rsi],zmm1 + jmp NEAR $L$_ret_EmbgEptodyewbFa + +$L$_remaining_num_blocks_is_3_EmbgEptodyewbFa: + vmovdqu xmm1,XMMWORD[rdi] + vmovdqu xmm2,XMMWORD[16+rdi] + vmovdqu xmm3,XMMWORD[32+rdi] + add rdi,0x30 + and rdx,0xf + je NEAR $L$_done_3_remain_EmbgEptodyewbFa + vextracti32x4 xmm13,zmm9,0x2 + vextracti32x4 xmm10,zmm9,0x1 + vextracti32x4 xmm11,zmm9,0x3 + vpxor xmm1,xmm1,xmm9 + vpxor xmm2,xmm2,xmm10 + vpxor xmm3,xmm3,xmm11 + vmovdqu xmm0,XMMWORD[rcx] + vpxor xmm1,xmm1,xmm0 + vpxor xmm2,xmm2,xmm0 + vpxor xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[16+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[32+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[48+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[64+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[80+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[96+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[112+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[128+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[144+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[160+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[176+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[192+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[208+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[224+rcx] + vaesdeclast xmm1,xmm1,xmm0 + vaesdeclast xmm2,xmm2,xmm0 + vaesdeclast xmm3,xmm3,xmm0 + vpxor xmm1,xmm1,xmm9 + vpxor xmm2,xmm2,xmm10 + vpxor xmm3,xmm3,xmm11 + vmovdqu XMMWORD[rsi],xmm1 + vmovdqu XMMWORD[16+rsi],xmm2 + vmovdqu XMMWORD[32+rsi],xmm3 + add rsi,0x30 + vmovdqa xmm8,xmm3 + vmovdqa xmm0,xmm13 + jmp NEAR $L$_steal_cipher_EmbgEptodyewbFa + +$L$_done_3_remain_EmbgEptodyewbFa: + vextracti32x4 xmm10,zmm9,0x1 + vextracti32x4 xmm11,zmm9,0x2 + vpxor xmm1,xmm1,xmm9 + vpxor xmm2,xmm2,xmm10 + vpxor xmm3,xmm3,xmm11 + vmovdqu xmm0,XMMWORD[rcx] + vpxor xmm1,xmm1,xmm0 + vpxor xmm2,xmm2,xmm0 + vpxor xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[16+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[32+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[48+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[64+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[80+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[96+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[112+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[128+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[144+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[160+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[176+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[192+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[208+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[224+rcx] + vaesdeclast xmm1,xmm1,xmm0 + vaesdeclast xmm2,xmm2,xmm0 + vaesdeclast xmm3,xmm3,xmm0 + vpxor xmm1,xmm1,xmm9 + vpxor xmm2,xmm2,xmm10 + vpxor xmm3,xmm3,xmm11 + vmovdqu XMMWORD[rsi],xmm1 + vmovdqu XMMWORD[16+rsi],xmm2 + vmovdqu XMMWORD[32+rsi],xmm3 + jmp NEAR $L$_ret_EmbgEptodyewbFa + +$L$_remaining_num_blocks_is_2_EmbgEptodyewbFa: + vmovdqu xmm1,XMMWORD[rdi] + vmovdqu xmm2,XMMWORD[16+rdi] + add rdi,0x20 + and rdx,0xf + je NEAR $L$_done_2_remain_EmbgEptodyewbFa + vextracti32x4 xmm10,zmm9,0x2 + vextracti32x4 xmm12,zmm9,0x1 + vpxor xmm1,xmm1,xmm9 + vpxor xmm2,xmm2,xmm10 + vmovdqu xmm0,XMMWORD[rcx] + vpxor xmm1,xmm1,xmm0 + vpxor xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[16+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[32+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[48+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[64+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[80+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[96+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[112+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[128+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[144+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[160+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[176+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[192+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[208+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[224+rcx] + vaesdeclast xmm1,xmm1,xmm0 + vaesdeclast xmm2,xmm2,xmm0 + vpxor xmm1,xmm1,xmm9 + vpxor xmm2,xmm2,xmm10 + vmovdqu XMMWORD[rsi],xmm1 + vmovdqu XMMWORD[16+rsi],xmm2 + add rsi,0x20 + vmovdqa xmm8,xmm2 + vmovdqa xmm0,xmm12 + jmp NEAR $L$_steal_cipher_EmbgEptodyewbFa + +$L$_done_2_remain_EmbgEptodyewbFa: + vextracti32x4 xmm10,zmm9,0x1 + vpxor xmm1,xmm1,xmm9 + vpxor xmm2,xmm2,xmm10 + vmovdqu xmm0,XMMWORD[rcx] + vpxor xmm1,xmm1,xmm0 + vpxor xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[16+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[32+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[48+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[64+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[80+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[96+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[112+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[128+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[144+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[160+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[176+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[192+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[208+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[224+rcx] + vaesdeclast xmm1,xmm1,xmm0 + vaesdeclast xmm2,xmm2,xmm0 + vpxor xmm1,xmm1,xmm9 + vpxor xmm2,xmm2,xmm10 + vmovdqu XMMWORD[rsi],xmm1 + vmovdqu XMMWORD[16+rsi],xmm2 + jmp NEAR $L$_ret_EmbgEptodyewbFa + +$L$_remaining_num_blocks_is_1_EmbgEptodyewbFa: + vmovdqu xmm1,XMMWORD[rdi] + add rdi,0x10 + and rdx,0xf + je NEAR $L$_done_1_remain_EmbgEptodyewbFa + vextracti32x4 xmm11,zmm9,0x1 + vpxor xmm1,xmm1,xmm11 + vmovdqu xmm0,XMMWORD[rcx] + vpxor xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[16+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[32+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[48+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[64+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[80+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[96+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[112+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[128+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[144+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[160+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[176+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[192+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[208+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[224+rcx] + vaesdeclast xmm1,xmm1,xmm0 + vpxor xmm1,xmm1,xmm11 + vmovdqu XMMWORD[rsi],xmm1 + add rsi,0x10 + vmovdqa xmm8,xmm1 + vmovdqa xmm0,xmm9 + jmp NEAR $L$_steal_cipher_EmbgEptodyewbFa + +$L$_done_1_remain_EmbgEptodyewbFa: + vpxor xmm1,xmm1,xmm9 + vmovdqu xmm0,XMMWORD[rcx] + vpxor xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[16+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[32+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[48+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[64+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[80+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[96+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[112+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[128+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[144+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[160+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[176+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[192+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[208+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[224+rcx] + vaesdeclast xmm1,xmm1,xmm0 + vpxor xmm1,xmm1,xmm9 + vmovdqu XMMWORD[rsi],xmm1 + jmp NEAR $L$_ret_EmbgEptodyewbFa + +$L$_start_by16_EmbgEptodyewbFa: + vbroadcasti32x4 zmm0,ZMMWORD[rsp] + vbroadcasti32x4 zmm8,ZMMWORD[shufb_15_7] + mov r8,0xaa + kmovq k2,r8 + + + vpshufb zmm1,zmm0,zmm8 + vpsllvq zmm4,zmm0,ZMMWORD[const_dq3210] + vpsrlvq zmm2,zmm1,ZMMWORD[const_dq5678] + vpclmulqdq zmm3,zmm2,zmm25,0x0 + vpxorq zmm4{k2},zmm4,zmm2 + vpxord zmm9,zmm3,zmm4 + + + vpsllvq zmm5,zmm0,ZMMWORD[const_dq7654] + vpsrlvq zmm6,zmm1,ZMMWORD[const_dq1234] + vpclmulqdq zmm7,zmm6,zmm25,0x0 + vpxorq zmm5{k2},zmm5,zmm6 + vpxord zmm10,zmm7,zmm5 + + + vpsrldq zmm13,zmm9,0xf + vpclmulqdq zmm14,zmm13,zmm25,0x0 + vpslldq zmm11,zmm9,0x1 + vpxord zmm11,zmm11,zmm14 + + vpsrldq zmm15,zmm10,0xf + vpclmulqdq zmm16,zmm15,zmm25,0x0 + vpslldq zmm12,zmm10,0x1 + vpxord zmm12,zmm12,zmm16 + +$L$_main_loop_run_16_EmbgEptodyewbFa: + vmovdqu8 zmm1,ZMMWORD[rdi] + vmovdqu8 zmm2,ZMMWORD[64+rdi] + vmovdqu8 zmm3,ZMMWORD[128+rdi] + vmovdqu8 zmm4,ZMMWORD[192+rdi] + vmovdqu8 xmm5,XMMWORD[240+rdi] + add rdi,0x100 + vpxorq zmm1,zmm1,zmm9 + vpxorq zmm2,zmm2,zmm10 + vpxorq zmm3,zmm3,zmm11 + vpxorq zmm4,zmm4,zmm12 + vbroadcasti32x4 zmm0,ZMMWORD[rcx] + vpxorq zmm1,zmm1,zmm0 + vpxorq zmm2,zmm2,zmm0 + vpxorq zmm3,zmm3,zmm0 + vpxorq zmm4,zmm4,zmm0 + vpsrldq zmm13,zmm11,0xf + vpclmulqdq zmm14,zmm13,zmm25,0x0 + vpslldq zmm15,zmm11,0x1 + vpxord zmm15,zmm15,zmm14 + vbroadcasti32x4 zmm0,ZMMWORD[16+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + vaesdec zmm3,zmm3,zmm0 + vaesdec zmm4,zmm4,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[32+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + vaesdec zmm3,zmm3,zmm0 + vaesdec zmm4,zmm4,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[48+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + vaesdec zmm3,zmm3,zmm0 + vaesdec zmm4,zmm4,zmm0 + vpsrldq zmm13,zmm12,0xf + vpclmulqdq zmm14,zmm13,zmm25,0x0 + vpslldq zmm16,zmm12,0x1 + vpxord zmm16,zmm16,zmm14 + vbroadcasti32x4 zmm0,ZMMWORD[64+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + vaesdec zmm3,zmm3,zmm0 + vaesdec zmm4,zmm4,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[80+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + vaesdec zmm3,zmm3,zmm0 + vaesdec zmm4,zmm4,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[96+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + vaesdec zmm3,zmm3,zmm0 + vaesdec zmm4,zmm4,zmm0 + vpsrldq zmm13,zmm15,0xf + vpclmulqdq zmm14,zmm13,zmm25,0x0 + vpslldq zmm17,zmm15,0x1 + vpxord zmm17,zmm17,zmm14 + vbroadcasti32x4 zmm0,ZMMWORD[112+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + vaesdec zmm3,zmm3,zmm0 + vaesdec zmm4,zmm4,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[128+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + vaesdec zmm3,zmm3,zmm0 + vaesdec zmm4,zmm4,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[144+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + vaesdec zmm3,zmm3,zmm0 + vaesdec zmm4,zmm4,zmm0 + vpsrldq zmm13,zmm16,0xf + vpclmulqdq zmm14,zmm13,zmm25,0x0 + vpslldq zmm18,zmm16,0x1 + vpxord zmm18,zmm18,zmm14 + vbroadcasti32x4 zmm0,ZMMWORD[160+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + vaesdec zmm3,zmm3,zmm0 + vaesdec zmm4,zmm4,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[176+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + vaesdec zmm3,zmm3,zmm0 + vaesdec zmm4,zmm4,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[192+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + vaesdec zmm3,zmm3,zmm0 + vaesdec zmm4,zmm4,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[208+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + vaesdec zmm3,zmm3,zmm0 + vaesdec zmm4,zmm4,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[224+rcx] + vaesdeclast zmm1,zmm1,zmm0 + vaesdeclast zmm2,zmm2,zmm0 + vaesdeclast zmm3,zmm3,zmm0 + vaesdeclast zmm4,zmm4,zmm0 + vpxorq zmm1,zmm1,zmm9 + vpxorq zmm2,zmm2,zmm10 + vpxorq zmm3,zmm3,zmm11 + vpxorq zmm4,zmm4,zmm12 + + vmovdqa32 zmm9,zmm15 + vmovdqa32 zmm10,zmm16 + vmovdqa32 zmm11,zmm17 + vmovdqa32 zmm12,zmm18 + vmovdqu8 ZMMWORD[rsi],zmm1 + vmovdqu8 ZMMWORD[64+rsi],zmm2 + vmovdqu8 ZMMWORD[128+rsi],zmm3 + vmovdqu8 ZMMWORD[192+rsi],zmm4 + add rsi,0x100 + sub rdx,0x100 + cmp rdx,0x100 + jge NEAR $L$_main_loop_run_16_EmbgEptodyewbFa + + cmp rdx,0x80 + jge NEAR $L$_main_loop_run_8_EmbgEptodyewbFa + jmp NEAR $L$_do_n_blocks_EmbgEptodyewbFa + +$L$_start_by8_EmbgEptodyewbFa: + + vbroadcasti32x4 zmm0,ZMMWORD[rsp] + vbroadcasti32x4 zmm8,ZMMWORD[shufb_15_7] + mov r8,0xaa + kmovq k2,r8 + + + vpshufb zmm1,zmm0,zmm8 + vpsllvq zmm4,zmm0,ZMMWORD[const_dq3210] + vpsrlvq zmm2,zmm1,ZMMWORD[const_dq5678] + vpclmulqdq zmm3,zmm2,zmm25,0x0 + vpxorq zmm4{k2},zmm4,zmm2 + vpxord zmm9,zmm3,zmm4 + + + vpsllvq zmm5,zmm0,ZMMWORD[const_dq7654] + vpsrlvq zmm6,zmm1,ZMMWORD[const_dq1234] + vpclmulqdq zmm7,zmm6,zmm25,0x0 + vpxorq zmm5{k2},zmm5,zmm6 + vpxord zmm10,zmm7,zmm5 + +$L$_main_loop_run_8_EmbgEptodyewbFa: + vmovdqu8 zmm1,ZMMWORD[rdi] + vmovdqu8 zmm2,ZMMWORD[64+rdi] + vmovdqu8 xmm5,XMMWORD[112+rdi] + add rdi,0x80 + + vpxorq zmm1,zmm1,zmm9 + vpxorq zmm2,zmm2,zmm10 + + + vbroadcasti32x4 zmm0,ZMMWORD[rcx] + vpxorq zmm1,zmm1,zmm0 + vpxorq zmm2,zmm2,zmm0 + vpsrldq zmm13,zmm9,0xf + vpclmulqdq zmm14,zmm13,zmm25,0x0 + vpslldq zmm15,zmm9,0x1 + vpxord zmm15,zmm15,zmm14 + vbroadcasti32x4 zmm0,ZMMWORD[16+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[32+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[48+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + vpsrldq zmm13,zmm10,0xf + vpclmulqdq zmm14,zmm13,zmm25,0x0 + vpslldq zmm16,zmm10,0x1 + vpxord zmm16,zmm16,zmm14 + + vbroadcasti32x4 zmm0,ZMMWORD[64+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[80+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[96+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[112+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[128+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[144+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[160+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[176+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[192+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[208+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[224+rcx] + vaesdeclast zmm1,zmm1,zmm0 + vaesdeclast zmm2,zmm2,zmm0 + + vpxorq zmm1,zmm1,zmm9 + vpxorq zmm2,zmm2,zmm10 + + + vmovdqa32 zmm9,zmm15 + vmovdqa32 zmm10,zmm16 + vmovdqu8 ZMMWORD[rsi],zmm1 + vmovdqu8 ZMMWORD[64+rsi],zmm2 + add rsi,0x80 + sub rdx,0x80 + cmp rdx,0x80 + jge NEAR $L$_main_loop_run_8_EmbgEptodyewbFa + jmp NEAR $L$_do_n_blocks_EmbgEptodyewbFa + +$L$_steal_cipher_EmbgEptodyewbFa: + + vmovdqa xmm2,xmm8 + + + lea rax,[vpshufb_shf_table] + vmovdqu xmm10,XMMWORD[rdx*1+rax] + vpshufb xmm8,xmm8,xmm10 + + + vmovdqu xmm3,XMMWORD[((-16))+rdx*1+rdi] + vmovdqu XMMWORD[(-16)+rdx*1+rsi],xmm8 + + + lea rax,[vpshufb_shf_table] + add rax,16 + sub rax,rdx + vmovdqu xmm10,XMMWORD[rax] + vpxor xmm10,xmm10,XMMWORD[mask1] + vpshufb xmm3,xmm3,xmm10 + + vpblendvb xmm3,xmm3,xmm2,xmm10 + + + vpxor xmm8,xmm3,xmm0 + + + vpxor xmm8,xmm8,XMMWORD[rcx] + vaesdec xmm8,xmm8,XMMWORD[16+rcx] + vaesdec xmm8,xmm8,XMMWORD[32+rcx] + vaesdec xmm8,xmm8,XMMWORD[48+rcx] + vaesdec xmm8,xmm8,XMMWORD[64+rcx] + vaesdec xmm8,xmm8,XMMWORD[80+rcx] + vaesdec xmm8,xmm8,XMMWORD[96+rcx] + vaesdec xmm8,xmm8,XMMWORD[112+rcx] + vaesdec xmm8,xmm8,XMMWORD[128+rcx] + vaesdec xmm8,xmm8,XMMWORD[144+rcx] + vaesdec xmm8,xmm8,XMMWORD[160+rcx] + vaesdec xmm8,xmm8,XMMWORD[176+rcx] + vaesdec xmm8,xmm8,XMMWORD[192+rcx] + vaesdec xmm8,xmm8,XMMWORD[208+rcx] + vaesdeclast xmm8,xmm8,XMMWORD[224+rcx] + + vpxor xmm8,xmm8,xmm0 + +$L$_done_EmbgEptodyewbFa: + + vmovdqu XMMWORD[(-16)+rsi],xmm8 +$L$_ret_EmbgEptodyewbFa: + mov rbx,QWORD[288+rsp] + xor r8,r8 + mov QWORD[288+rsp],r8 + + vpxorq zmm0,zmm0,zmm0 + mov rdi,QWORD[((288 + 8))+rsp] + mov QWORD[((288 + 8))+rsp],r8 + mov rsi,QWORD[((288 + 16))+rsp] + mov QWORD[((288 + 16))+rsp],r8 + + vmovdqa xmm6,XMMWORD[((128 + 0))+rsp] + vmovdqa xmm7,XMMWORD[((128 + 16))+rsp] + vmovdqa xmm8,XMMWORD[((128 + 32))+rsp] + vmovdqa xmm9,XMMWORD[((128 + 48))+rsp] + + + vmovdqa64 ZMMWORD[128+rsp],zmm0 + + vmovdqa xmm10,XMMWORD[((128 + 64))+rsp] + vmovdqa xmm11,XMMWORD[((128 + 80))+rsp] + vmovdqa xmm12,XMMWORD[((128 + 96))+rsp] + vmovdqa xmm13,XMMWORD[((128 + 112))+rsp] + + + vmovdqa64 ZMMWORD[(128 + 64)+rsp],zmm0 + + vmovdqa xmm14,XMMWORD[((128 + 128))+rsp] + vmovdqa xmm15,XMMWORD[((128 + 144))+rsp] + + + + vmovdqa YMMWORD[(128 + 128)+rsp],ymm0 + mov rsp,rbp + pop rbp + vzeroupper + mov rdi,QWORD[8+rsp] ;WIN64 epilogue + mov rsi,QWORD[16+rsp] + DB 0F3h,0C3h ;repret + +$L$_less_than_128_bytes_EmbgEptodyewbFa: + cmp rdx,0x10 + jb NEAR $L$_ret_EmbgEptodyewbFa + + mov r8,rdx + and r8,0x70 + cmp r8,0x60 + je NEAR $L$_num_blocks_is_6_EmbgEptodyewbFa + cmp r8,0x50 + je NEAR $L$_num_blocks_is_5_EmbgEptodyewbFa + cmp r8,0x40 + je NEAR $L$_num_blocks_is_4_EmbgEptodyewbFa + cmp r8,0x30 + je NEAR $L$_num_blocks_is_3_EmbgEptodyewbFa + cmp r8,0x20 + je NEAR $L$_num_blocks_is_2_EmbgEptodyewbFa + cmp r8,0x10 + je NEAR $L$_num_blocks_is_1_EmbgEptodyewbFa + +$L$_num_blocks_is_7_EmbgEptodyewbFa: + vmovdqa xmm9,XMMWORD[rsp] + mov rax,QWORD[rsp] + mov rbx,QWORD[8+rsp] + vmovdqu xmm1,XMMWORD[rdi] + xor r11,r11 + shl rax,1 + adc rbx,rbx + cmovc r11,r10 + xor rax,r11 + mov QWORD[16+rsp],rax + mov QWORD[((16 + 8))+rsp],rbx + vmovdqa xmm10,XMMWORD[16+rsp] + vmovdqu xmm2,XMMWORD[16+rdi] + xor r11,r11 + shl rax,1 + adc rbx,rbx + cmovc r11,r10 + xor rax,r11 + mov QWORD[32+rsp],rax + mov QWORD[((32 + 8))+rsp],rbx + vmovdqa xmm11,XMMWORD[32+rsp] + vmovdqu xmm3,XMMWORD[32+rdi] + xor r11,r11 + shl rax,1 + adc rbx,rbx + cmovc r11,r10 + xor rax,r11 + mov QWORD[48+rsp],rax + mov QWORD[((48 + 8))+rsp],rbx + vmovdqa xmm12,XMMWORD[48+rsp] + vmovdqu xmm4,XMMWORD[48+rdi] + xor r11,r11 + shl rax,1 + adc rbx,rbx + cmovc r11,r10 + xor rax,r11 + mov QWORD[64+rsp],rax + mov QWORD[((64 + 8))+rsp],rbx + vmovdqa xmm13,XMMWORD[64+rsp] + vmovdqu xmm5,XMMWORD[64+rdi] + xor r11,r11 + shl rax,1 + adc rbx,rbx + cmovc r11,r10 + xor rax,r11 + mov QWORD[80+rsp],rax + mov QWORD[((80 + 8))+rsp],rbx + vmovdqa xmm14,XMMWORD[80+rsp] + vmovdqu xmm6,XMMWORD[80+rdi] + xor r11,r11 + shl rax,1 + adc rbx,rbx + cmovc r11,r10 + xor rax,r11 + mov QWORD[96+rsp],rax + mov QWORD[((96 + 8))+rsp],rbx + vmovdqa xmm15,XMMWORD[96+rsp] + vmovdqu xmm7,XMMWORD[96+rdi] + add rdi,0x70 + and rdx,0xf + je NEAR $L$_done_7_EmbgEptodyewbFa + +$L$_steal_cipher_7_EmbgEptodyewbFa: + xor r11,r11 + shl rax,1 + adc rbx,rbx + cmovc r11,r10 + xor rax,r11 + mov QWORD[16+rsp],rax + mov QWORD[24+rsp],rbx + vmovdqa64 xmm16,xmm15 + vmovdqa xmm15,XMMWORD[16+rsp] + vpxor xmm1,xmm1,xmm9 + vpxor xmm2,xmm2,xmm10 + vpxor xmm3,xmm3,xmm11 + vpxor xmm4,xmm4,xmm12 + vpxor xmm5,xmm5,xmm13 + vpxor xmm6,xmm6,xmm14 + vpxor xmm7,xmm7,xmm15 + vmovdqu xmm0,XMMWORD[rcx] + vpxor xmm1,xmm1,xmm0 + vpxor xmm2,xmm2,xmm0 + vpxor xmm3,xmm3,xmm0 + vpxor xmm4,xmm4,xmm0 + vpxor xmm5,xmm5,xmm0 + vpxor xmm6,xmm6,xmm0 + vpxor xmm7,xmm7,xmm0 + vmovdqu xmm0,XMMWORD[16+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vaesdec xmm7,xmm7,xmm0 + vmovdqu xmm0,XMMWORD[32+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vaesdec xmm7,xmm7,xmm0 + vmovdqu xmm0,XMMWORD[48+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vaesdec xmm7,xmm7,xmm0 + vmovdqu xmm0,XMMWORD[64+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vaesdec xmm7,xmm7,xmm0 + vmovdqu xmm0,XMMWORD[80+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vaesdec xmm7,xmm7,xmm0 + vmovdqu xmm0,XMMWORD[96+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vaesdec xmm7,xmm7,xmm0 + vmovdqu xmm0,XMMWORD[112+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vaesdec xmm7,xmm7,xmm0 + vmovdqu xmm0,XMMWORD[128+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vaesdec xmm7,xmm7,xmm0 + vmovdqu xmm0,XMMWORD[144+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vaesdec xmm7,xmm7,xmm0 + vmovdqu xmm0,XMMWORD[160+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vaesdec xmm7,xmm7,xmm0 + vmovdqu xmm0,XMMWORD[176+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vaesdec xmm7,xmm7,xmm0 + vmovdqu xmm0,XMMWORD[192+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vaesdec xmm7,xmm7,xmm0 + vmovdqu xmm0,XMMWORD[208+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vaesdec xmm7,xmm7,xmm0 + vmovdqu xmm0,XMMWORD[224+rcx] + vaesdeclast xmm1,xmm1,xmm0 + vaesdeclast xmm2,xmm2,xmm0 + vaesdeclast xmm3,xmm3,xmm0 + vaesdeclast xmm4,xmm4,xmm0 + vaesdeclast xmm5,xmm5,xmm0 + vaesdeclast xmm6,xmm6,xmm0 + vaesdeclast xmm7,xmm7,xmm0 + vpxor xmm1,xmm1,xmm9 + vpxor xmm2,xmm2,xmm10 + vpxor xmm3,xmm3,xmm11 + vpxor xmm4,xmm4,xmm12 + vpxor xmm5,xmm5,xmm13 + vpxor xmm6,xmm6,xmm14 + vpxor xmm7,xmm7,xmm15 + vmovdqu XMMWORD[rsi],xmm1 + vmovdqu XMMWORD[16+rsi],xmm2 + vmovdqu XMMWORD[32+rsi],xmm3 + vmovdqu XMMWORD[48+rsi],xmm4 + vmovdqu XMMWORD[64+rsi],xmm5 + vmovdqu XMMWORD[80+rsi],xmm6 + add rsi,0x70 + vmovdqa64 xmm0,xmm16 + vmovdqa xmm8,xmm7 + jmp NEAR $L$_steal_cipher_EmbgEptodyewbFa + +$L$_done_7_EmbgEptodyewbFa: + vpxor xmm1,xmm1,xmm9 + vpxor xmm2,xmm2,xmm10 + vpxor xmm3,xmm3,xmm11 + vpxor xmm4,xmm4,xmm12 + vpxor xmm5,xmm5,xmm13 + vpxor xmm6,xmm6,xmm14 + vpxor xmm7,xmm7,xmm15 + vmovdqu xmm0,XMMWORD[rcx] + vpxor xmm1,xmm1,xmm0 + vpxor xmm2,xmm2,xmm0 + vpxor xmm3,xmm3,xmm0 + vpxor xmm4,xmm4,xmm0 + vpxor xmm5,xmm5,xmm0 + vpxor xmm6,xmm6,xmm0 + vpxor xmm7,xmm7,xmm0 + vmovdqu xmm0,XMMWORD[16+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vaesdec xmm7,xmm7,xmm0 + vmovdqu xmm0,XMMWORD[32+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vaesdec xmm7,xmm7,xmm0 + vmovdqu xmm0,XMMWORD[48+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vaesdec xmm7,xmm7,xmm0 + vmovdqu xmm0,XMMWORD[64+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vaesdec xmm7,xmm7,xmm0 + vmovdqu xmm0,XMMWORD[80+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vaesdec xmm7,xmm7,xmm0 + vmovdqu xmm0,XMMWORD[96+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vaesdec xmm7,xmm7,xmm0 + vmovdqu xmm0,XMMWORD[112+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vaesdec xmm7,xmm7,xmm0 + vmovdqu xmm0,XMMWORD[128+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vaesdec xmm7,xmm7,xmm0 + vmovdqu xmm0,XMMWORD[144+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vaesdec xmm7,xmm7,xmm0 + vmovdqu xmm0,XMMWORD[160+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vaesdec xmm7,xmm7,xmm0 + vmovdqu xmm0,XMMWORD[176+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vaesdec xmm7,xmm7,xmm0 + vmovdqu xmm0,XMMWORD[192+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vaesdec xmm7,xmm7,xmm0 + vmovdqu xmm0,XMMWORD[208+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vaesdec xmm7,xmm7,xmm0 + vmovdqu xmm0,XMMWORD[224+rcx] + vaesdeclast xmm1,xmm1,xmm0 + vaesdeclast xmm2,xmm2,xmm0 + vaesdeclast xmm3,xmm3,xmm0 + vaesdeclast xmm4,xmm4,xmm0 + vaesdeclast xmm5,xmm5,xmm0 + vaesdeclast xmm6,xmm6,xmm0 + vaesdeclast xmm7,xmm7,xmm0 + vpxor xmm1,xmm1,xmm9 + vpxor xmm2,xmm2,xmm10 + vpxor xmm3,xmm3,xmm11 + vpxor xmm4,xmm4,xmm12 + vpxor xmm5,xmm5,xmm13 + vpxor xmm6,xmm6,xmm14 + vpxor xmm7,xmm7,xmm15 + vmovdqu XMMWORD[rsi],xmm1 + vmovdqu XMMWORD[16+rsi],xmm2 + vmovdqu XMMWORD[32+rsi],xmm3 + vmovdqu XMMWORD[48+rsi],xmm4 + vmovdqu XMMWORD[64+rsi],xmm5 + vmovdqu XMMWORD[80+rsi],xmm6 + add rsi,0x70 + vmovdqa xmm8,xmm7 + jmp NEAR $L$_done_EmbgEptodyewbFa + +$L$_num_blocks_is_6_EmbgEptodyewbFa: + vmovdqa xmm9,XMMWORD[rsp] + mov rax,QWORD[rsp] + mov rbx,QWORD[8+rsp] + vmovdqu xmm1,XMMWORD[rdi] + xor r11,r11 + shl rax,1 + adc rbx,rbx + cmovc r11,r10 + xor rax,r11 + mov QWORD[16+rsp],rax + mov QWORD[((16 + 8))+rsp],rbx + vmovdqa xmm10,XMMWORD[16+rsp] + vmovdqu xmm2,XMMWORD[16+rdi] + xor r11,r11 + shl rax,1 + adc rbx,rbx + cmovc r11,r10 + xor rax,r11 + mov QWORD[32+rsp],rax + mov QWORD[((32 + 8))+rsp],rbx + vmovdqa xmm11,XMMWORD[32+rsp] + vmovdqu xmm3,XMMWORD[32+rdi] + xor r11,r11 + shl rax,1 + adc rbx,rbx + cmovc r11,r10 + xor rax,r11 + mov QWORD[48+rsp],rax + mov QWORD[((48 + 8))+rsp],rbx + vmovdqa xmm12,XMMWORD[48+rsp] + vmovdqu xmm4,XMMWORD[48+rdi] + xor r11,r11 + shl rax,1 + adc rbx,rbx + cmovc r11,r10 + xor rax,r11 + mov QWORD[64+rsp],rax + mov QWORD[((64 + 8))+rsp],rbx + vmovdqa xmm13,XMMWORD[64+rsp] + vmovdqu xmm5,XMMWORD[64+rdi] + xor r11,r11 + shl rax,1 + adc rbx,rbx + cmovc r11,r10 + xor rax,r11 + mov QWORD[80+rsp],rax + mov QWORD[((80 + 8))+rsp],rbx + vmovdqa xmm14,XMMWORD[80+rsp] + vmovdqu xmm6,XMMWORD[80+rdi] + add rdi,0x60 + and rdx,0xf + je NEAR $L$_done_6_EmbgEptodyewbFa + +$L$_steal_cipher_6_EmbgEptodyewbFa: + xor r11,r11 + shl rax,1 + adc rbx,rbx + cmovc r11,r10 + xor rax,r11 + mov QWORD[16+rsp],rax + mov QWORD[24+rsp],rbx + vmovdqa64 xmm15,xmm14 + vmovdqa xmm14,XMMWORD[16+rsp] + vpxor xmm1,xmm1,xmm9 + vpxor xmm2,xmm2,xmm10 + vpxor xmm3,xmm3,xmm11 + vpxor xmm4,xmm4,xmm12 + vpxor xmm5,xmm5,xmm13 + vpxor xmm6,xmm6,xmm14 + vmovdqu xmm0,XMMWORD[rcx] + vpxor xmm1,xmm1,xmm0 + vpxor xmm2,xmm2,xmm0 + vpxor xmm3,xmm3,xmm0 + vpxor xmm4,xmm4,xmm0 + vpxor xmm5,xmm5,xmm0 + vpxor xmm6,xmm6,xmm0 + vmovdqu xmm0,XMMWORD[16+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vmovdqu xmm0,XMMWORD[32+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vmovdqu xmm0,XMMWORD[48+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vmovdqu xmm0,XMMWORD[64+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vmovdqu xmm0,XMMWORD[80+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vmovdqu xmm0,XMMWORD[96+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vmovdqu xmm0,XMMWORD[112+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vmovdqu xmm0,XMMWORD[128+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vmovdqu xmm0,XMMWORD[144+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vmovdqu xmm0,XMMWORD[160+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vmovdqu xmm0,XMMWORD[176+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vmovdqu xmm0,XMMWORD[192+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vmovdqu xmm0,XMMWORD[208+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vmovdqu xmm0,XMMWORD[224+rcx] + vaesdeclast xmm1,xmm1,xmm0 + vaesdeclast xmm2,xmm2,xmm0 + vaesdeclast xmm3,xmm3,xmm0 + vaesdeclast xmm4,xmm4,xmm0 + vaesdeclast xmm5,xmm5,xmm0 + vaesdeclast xmm6,xmm6,xmm0 + vpxor xmm1,xmm1,xmm9 + vpxor xmm2,xmm2,xmm10 + vpxor xmm3,xmm3,xmm11 + vpxor xmm4,xmm4,xmm12 + vpxor xmm5,xmm5,xmm13 + vpxor xmm6,xmm6,xmm14 + vmovdqu XMMWORD[rsi],xmm1 + vmovdqu XMMWORD[16+rsi],xmm2 + vmovdqu XMMWORD[32+rsi],xmm3 + vmovdqu XMMWORD[48+rsi],xmm4 + vmovdqu XMMWORD[64+rsi],xmm5 + add rsi,0x60 + vmovdqa xmm0,xmm15 + vmovdqa xmm8,xmm6 + jmp NEAR $L$_steal_cipher_EmbgEptodyewbFa + +$L$_done_6_EmbgEptodyewbFa: + vpxor xmm1,xmm1,xmm9 + vpxor xmm2,xmm2,xmm10 + vpxor xmm3,xmm3,xmm11 + vpxor xmm4,xmm4,xmm12 + vpxor xmm5,xmm5,xmm13 + vpxor xmm6,xmm6,xmm14 + vmovdqu xmm0,XMMWORD[rcx] + vpxor xmm1,xmm1,xmm0 + vpxor xmm2,xmm2,xmm0 + vpxor xmm3,xmm3,xmm0 + vpxor xmm4,xmm4,xmm0 + vpxor xmm5,xmm5,xmm0 + vpxor xmm6,xmm6,xmm0 + vmovdqu xmm0,XMMWORD[16+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vmovdqu xmm0,XMMWORD[32+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vmovdqu xmm0,XMMWORD[48+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vmovdqu xmm0,XMMWORD[64+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vmovdqu xmm0,XMMWORD[80+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vmovdqu xmm0,XMMWORD[96+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vmovdqu xmm0,XMMWORD[112+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vmovdqu xmm0,XMMWORD[128+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vmovdqu xmm0,XMMWORD[144+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vmovdqu xmm0,XMMWORD[160+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vmovdqu xmm0,XMMWORD[176+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vmovdqu xmm0,XMMWORD[192+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vmovdqu xmm0,XMMWORD[208+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vmovdqu xmm0,XMMWORD[224+rcx] + vaesdeclast xmm1,xmm1,xmm0 + vaesdeclast xmm2,xmm2,xmm0 + vaesdeclast xmm3,xmm3,xmm0 + vaesdeclast xmm4,xmm4,xmm0 + vaesdeclast xmm5,xmm5,xmm0 + vaesdeclast xmm6,xmm6,xmm0 + vpxor xmm1,xmm1,xmm9 + vpxor xmm2,xmm2,xmm10 + vpxor xmm3,xmm3,xmm11 + vpxor xmm4,xmm4,xmm12 + vpxor xmm5,xmm5,xmm13 + vpxor xmm6,xmm6,xmm14 + vmovdqu XMMWORD[rsi],xmm1 + vmovdqu XMMWORD[16+rsi],xmm2 + vmovdqu XMMWORD[32+rsi],xmm3 + vmovdqu XMMWORD[48+rsi],xmm4 + vmovdqu XMMWORD[64+rsi],xmm5 + add rsi,0x60 + vmovdqa xmm8,xmm6 + jmp NEAR $L$_done_EmbgEptodyewbFa + +$L$_num_blocks_is_5_EmbgEptodyewbFa: + vmovdqa xmm9,XMMWORD[rsp] + mov rax,QWORD[rsp] + mov rbx,QWORD[8+rsp] + vmovdqu xmm1,XMMWORD[rdi] + xor r11,r11 + shl rax,1 + adc rbx,rbx + cmovc r11,r10 + xor rax,r11 + mov QWORD[16+rsp],rax + mov QWORD[((16 + 8))+rsp],rbx + vmovdqa xmm10,XMMWORD[16+rsp] + vmovdqu xmm2,XMMWORD[16+rdi] + xor r11,r11 + shl rax,1 + adc rbx,rbx + cmovc r11,r10 + xor rax,r11 + mov QWORD[32+rsp],rax + mov QWORD[((32 + 8))+rsp],rbx + vmovdqa xmm11,XMMWORD[32+rsp] + vmovdqu xmm3,XMMWORD[32+rdi] + xor r11,r11 + shl rax,1 + adc rbx,rbx + cmovc r11,r10 + xor rax,r11 + mov QWORD[48+rsp],rax + mov QWORD[((48 + 8))+rsp],rbx + vmovdqa xmm12,XMMWORD[48+rsp] + vmovdqu xmm4,XMMWORD[48+rdi] + xor r11,r11 + shl rax,1 + adc rbx,rbx + cmovc r11,r10 + xor rax,r11 + mov QWORD[64+rsp],rax + mov QWORD[((64 + 8))+rsp],rbx + vmovdqa xmm13,XMMWORD[64+rsp] + vmovdqu xmm5,XMMWORD[64+rdi] + add rdi,0x50 + and rdx,0xf + je NEAR $L$_done_5_EmbgEptodyewbFa + +$L$_steal_cipher_5_EmbgEptodyewbFa: + xor r11,r11 + shl rax,1 + adc rbx,rbx + cmovc r11,r10 + xor rax,r11 + mov QWORD[16+rsp],rax + mov QWORD[24+rsp],rbx + vmovdqa64 xmm14,xmm13 + vmovdqa xmm13,XMMWORD[16+rsp] + vpxor xmm1,xmm1,xmm9 + vpxor xmm2,xmm2,xmm10 + vpxor xmm3,xmm3,xmm11 + vpxor xmm4,xmm4,xmm12 + vpxor xmm5,xmm5,xmm13 + vmovdqu xmm0,XMMWORD[rcx] + vpxor xmm1,xmm1,xmm0 + vpxor xmm2,xmm2,xmm0 + vpxor xmm3,xmm3,xmm0 + vpxor xmm4,xmm4,xmm0 + vpxor xmm5,xmm5,xmm0 + vmovdqu xmm0,XMMWORD[16+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vmovdqu xmm0,XMMWORD[32+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vmovdqu xmm0,XMMWORD[48+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vmovdqu xmm0,XMMWORD[64+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vmovdqu xmm0,XMMWORD[80+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vmovdqu xmm0,XMMWORD[96+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vmovdqu xmm0,XMMWORD[112+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vmovdqu xmm0,XMMWORD[128+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vmovdqu xmm0,XMMWORD[144+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vmovdqu xmm0,XMMWORD[160+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vmovdqu xmm0,XMMWORD[176+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vmovdqu xmm0,XMMWORD[192+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vmovdqu xmm0,XMMWORD[208+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vmovdqu xmm0,XMMWORD[224+rcx] + vaesdeclast xmm1,xmm1,xmm0 + vaesdeclast xmm2,xmm2,xmm0 + vaesdeclast xmm3,xmm3,xmm0 + vaesdeclast xmm4,xmm4,xmm0 + vaesdeclast xmm5,xmm5,xmm0 + vpxor xmm1,xmm1,xmm9 + vpxor xmm2,xmm2,xmm10 + vpxor xmm3,xmm3,xmm11 + vpxor xmm4,xmm4,xmm12 + vpxor xmm5,xmm5,xmm13 + vmovdqu XMMWORD[rsi],xmm1 + vmovdqu XMMWORD[16+rsi],xmm2 + vmovdqu XMMWORD[32+rsi],xmm3 + vmovdqu XMMWORD[48+rsi],xmm4 + add rsi,0x50 + vmovdqa xmm0,xmm14 + vmovdqa xmm8,xmm5 + jmp NEAR $L$_steal_cipher_EmbgEptodyewbFa + +$L$_done_5_EmbgEptodyewbFa: + vpxor xmm1,xmm1,xmm9 + vpxor xmm2,xmm2,xmm10 + vpxor xmm3,xmm3,xmm11 + vpxor xmm4,xmm4,xmm12 + vpxor xmm5,xmm5,xmm13 + vmovdqu xmm0,XMMWORD[rcx] + vpxor xmm1,xmm1,xmm0 + vpxor xmm2,xmm2,xmm0 + vpxor xmm3,xmm3,xmm0 + vpxor xmm4,xmm4,xmm0 + vpxor xmm5,xmm5,xmm0 + vmovdqu xmm0,XMMWORD[16+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vmovdqu xmm0,XMMWORD[32+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vmovdqu xmm0,XMMWORD[48+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vmovdqu xmm0,XMMWORD[64+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vmovdqu xmm0,XMMWORD[80+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vmovdqu xmm0,XMMWORD[96+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vmovdqu xmm0,XMMWORD[112+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vmovdqu xmm0,XMMWORD[128+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vmovdqu xmm0,XMMWORD[144+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vmovdqu xmm0,XMMWORD[160+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vmovdqu xmm0,XMMWORD[176+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vmovdqu xmm0,XMMWORD[192+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vmovdqu xmm0,XMMWORD[208+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vmovdqu xmm0,XMMWORD[224+rcx] + vaesdeclast xmm1,xmm1,xmm0 + vaesdeclast xmm2,xmm2,xmm0 + vaesdeclast xmm3,xmm3,xmm0 + vaesdeclast xmm4,xmm4,xmm0 + vaesdeclast xmm5,xmm5,xmm0 + vpxor xmm1,xmm1,xmm9 + vpxor xmm2,xmm2,xmm10 + vpxor xmm3,xmm3,xmm11 + vpxor xmm4,xmm4,xmm12 + vpxor xmm5,xmm5,xmm13 + vmovdqu XMMWORD[rsi],xmm1 + vmovdqu XMMWORD[16+rsi],xmm2 + vmovdqu XMMWORD[32+rsi],xmm3 + vmovdqu XMMWORD[48+rsi],xmm4 + add rsi,0x50 + vmovdqa xmm8,xmm5 + jmp NEAR $L$_done_EmbgEptodyewbFa + +$L$_num_blocks_is_4_EmbgEptodyewbFa: + vmovdqa xmm9,XMMWORD[rsp] + mov rax,QWORD[rsp] + mov rbx,QWORD[8+rsp] + vmovdqu xmm1,XMMWORD[rdi] + xor r11,r11 + shl rax,1 + adc rbx,rbx + cmovc r11,r10 + xor rax,r11 + mov QWORD[16+rsp],rax + mov QWORD[((16 + 8))+rsp],rbx + vmovdqa xmm10,XMMWORD[16+rsp] + vmovdqu xmm2,XMMWORD[16+rdi] + xor r11,r11 + shl rax,1 + adc rbx,rbx + cmovc r11,r10 + xor rax,r11 + mov QWORD[32+rsp],rax + mov QWORD[((32 + 8))+rsp],rbx + vmovdqa xmm11,XMMWORD[32+rsp] + vmovdqu xmm3,XMMWORD[32+rdi] + xor r11,r11 + shl rax,1 + adc rbx,rbx + cmovc r11,r10 + xor rax,r11 + mov QWORD[48+rsp],rax + mov QWORD[((48 + 8))+rsp],rbx + vmovdqa xmm12,XMMWORD[48+rsp] + vmovdqu xmm4,XMMWORD[48+rdi] + add rdi,0x40 + and rdx,0xf + je NEAR $L$_done_4_EmbgEptodyewbFa + +$L$_steal_cipher_4_EmbgEptodyewbFa: + xor r11,r11 + shl rax,1 + adc rbx,rbx + cmovc r11,r10 + xor rax,r11 + mov QWORD[16+rsp],rax + mov QWORD[24+rsp],rbx + vmovdqa64 xmm13,xmm12 + vmovdqa xmm12,XMMWORD[16+rsp] + vpxor xmm1,xmm1,xmm9 + vpxor xmm2,xmm2,xmm10 + vpxor xmm3,xmm3,xmm11 + vpxor xmm4,xmm4,xmm12 + vmovdqu xmm0,XMMWORD[rcx] + vpxor xmm1,xmm1,xmm0 + vpxor xmm2,xmm2,xmm0 + vpxor xmm3,xmm3,xmm0 + vpxor xmm4,xmm4,xmm0 + vmovdqu xmm0,XMMWORD[16+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vmovdqu xmm0,XMMWORD[32+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vmovdqu xmm0,XMMWORD[48+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vmovdqu xmm0,XMMWORD[64+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vmovdqu xmm0,XMMWORD[80+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vmovdqu xmm0,XMMWORD[96+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vmovdqu xmm0,XMMWORD[112+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vmovdqu xmm0,XMMWORD[128+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vmovdqu xmm0,XMMWORD[144+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vmovdqu xmm0,XMMWORD[160+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vmovdqu xmm0,XMMWORD[176+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vmovdqu xmm0,XMMWORD[192+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vmovdqu xmm0,XMMWORD[208+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vmovdqu xmm0,XMMWORD[224+rcx] + vaesdeclast xmm1,xmm1,xmm0 + vaesdeclast xmm2,xmm2,xmm0 + vaesdeclast xmm3,xmm3,xmm0 + vaesdeclast xmm4,xmm4,xmm0 + vpxor xmm1,xmm1,xmm9 + vpxor xmm2,xmm2,xmm10 + vpxor xmm3,xmm3,xmm11 + vpxor xmm4,xmm4,xmm12 + vmovdqu XMMWORD[rsi],xmm1 + vmovdqu XMMWORD[16+rsi],xmm2 + vmovdqu XMMWORD[32+rsi],xmm3 + add rsi,0x40 + vmovdqa xmm0,xmm13 + vmovdqa xmm8,xmm4 + jmp NEAR $L$_steal_cipher_EmbgEptodyewbFa + +$L$_done_4_EmbgEptodyewbFa: + vpxor xmm1,xmm1,xmm9 + vpxor xmm2,xmm2,xmm10 + vpxor xmm3,xmm3,xmm11 + vpxor xmm4,xmm4,xmm12 + vmovdqu xmm0,XMMWORD[rcx] + vpxor xmm1,xmm1,xmm0 + vpxor xmm2,xmm2,xmm0 + vpxor xmm3,xmm3,xmm0 + vpxor xmm4,xmm4,xmm0 + vmovdqu xmm0,XMMWORD[16+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vmovdqu xmm0,XMMWORD[32+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vmovdqu xmm0,XMMWORD[48+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vmovdqu xmm0,XMMWORD[64+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vmovdqu xmm0,XMMWORD[80+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vmovdqu xmm0,XMMWORD[96+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vmovdqu xmm0,XMMWORD[112+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vmovdqu xmm0,XMMWORD[128+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vmovdqu xmm0,XMMWORD[144+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vmovdqu xmm0,XMMWORD[160+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vmovdqu xmm0,XMMWORD[176+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vmovdqu xmm0,XMMWORD[192+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vmovdqu xmm0,XMMWORD[208+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vmovdqu xmm0,XMMWORD[224+rcx] + vaesdeclast xmm1,xmm1,xmm0 + vaesdeclast xmm2,xmm2,xmm0 + vaesdeclast xmm3,xmm3,xmm0 + vaesdeclast xmm4,xmm4,xmm0 + vpxor xmm1,xmm1,xmm9 + vpxor xmm2,xmm2,xmm10 + vpxor xmm3,xmm3,xmm11 + vpxor xmm4,xmm4,xmm12 + vmovdqu XMMWORD[rsi],xmm1 + vmovdqu XMMWORD[16+rsi],xmm2 + vmovdqu XMMWORD[32+rsi],xmm3 + add rsi,0x40 + vmovdqa xmm8,xmm4 + jmp NEAR $L$_done_EmbgEptodyewbFa + +$L$_num_blocks_is_3_EmbgEptodyewbFa: + vmovdqa xmm9,XMMWORD[rsp] + mov rax,QWORD[rsp] + mov rbx,QWORD[8+rsp] + vmovdqu xmm1,XMMWORD[rdi] + xor r11,r11 + shl rax,1 + adc rbx,rbx + cmovc r11,r10 + xor rax,r11 + mov QWORD[16+rsp],rax + mov QWORD[((16 + 8))+rsp],rbx + vmovdqa xmm10,XMMWORD[16+rsp] + vmovdqu xmm2,XMMWORD[16+rdi] + xor r11,r11 + shl rax,1 + adc rbx,rbx + cmovc r11,r10 + xor rax,r11 + mov QWORD[32+rsp],rax + mov QWORD[((32 + 8))+rsp],rbx + vmovdqa xmm11,XMMWORD[32+rsp] + vmovdqu xmm3,XMMWORD[32+rdi] + add rdi,0x30 + and rdx,0xf + je NEAR $L$_done_3_EmbgEptodyewbFa + +$L$_steal_cipher_3_EmbgEptodyewbFa: + xor r11,r11 + shl rax,1 + adc rbx,rbx + cmovc r11,r10 + xor rax,r11 + mov QWORD[16+rsp],rax + mov QWORD[24+rsp],rbx + vmovdqa64 xmm12,xmm11 + vmovdqa xmm11,XMMWORD[16+rsp] + vpxor xmm1,xmm1,xmm9 + vpxor xmm2,xmm2,xmm10 + vpxor xmm3,xmm3,xmm11 + vmovdqu xmm0,XMMWORD[rcx] + vpxor xmm1,xmm1,xmm0 + vpxor xmm2,xmm2,xmm0 + vpxor xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[16+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[32+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[48+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[64+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[80+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[96+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[112+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[128+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[144+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[160+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[176+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[192+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[208+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[224+rcx] + vaesdeclast xmm1,xmm1,xmm0 + vaesdeclast xmm2,xmm2,xmm0 + vaesdeclast xmm3,xmm3,xmm0 + vpxor xmm1,xmm1,xmm9 + vpxor xmm2,xmm2,xmm10 + vpxor xmm3,xmm3,xmm11 + vmovdqu XMMWORD[rsi],xmm1 + vmovdqu XMMWORD[16+rsi],xmm2 + add rsi,0x30 + vmovdqa xmm0,xmm12 + vmovdqa xmm8,xmm3 + jmp NEAR $L$_steal_cipher_EmbgEptodyewbFa + +$L$_done_3_EmbgEptodyewbFa: + vpxor xmm1,xmm1,xmm9 + vpxor xmm2,xmm2,xmm10 + vpxor xmm3,xmm3,xmm11 + vmovdqu xmm0,XMMWORD[rcx] + vpxor xmm1,xmm1,xmm0 + vpxor xmm2,xmm2,xmm0 + vpxor xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[16+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[32+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[48+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[64+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[80+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[96+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[112+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[128+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[144+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[160+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[176+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[192+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[208+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[224+rcx] + vaesdeclast xmm1,xmm1,xmm0 + vaesdeclast xmm2,xmm2,xmm0 + vaesdeclast xmm3,xmm3,xmm0 + vpxor xmm1,xmm1,xmm9 + vpxor xmm2,xmm2,xmm10 + vpxor xmm3,xmm3,xmm11 + vmovdqu XMMWORD[rsi],xmm1 + vmovdqu XMMWORD[16+rsi],xmm2 + add rsi,0x30 + vmovdqa xmm8,xmm3 + jmp NEAR $L$_done_EmbgEptodyewbFa + +$L$_num_blocks_is_2_EmbgEptodyewbFa: + vmovdqa xmm9,XMMWORD[rsp] + mov rax,QWORD[rsp] + mov rbx,QWORD[8+rsp] + vmovdqu xmm1,XMMWORD[rdi] + xor r11,r11 + shl rax,1 + adc rbx,rbx + cmovc r11,r10 + xor rax,r11 + mov QWORD[16+rsp],rax + mov QWORD[((16 + 8))+rsp],rbx + vmovdqa xmm10,XMMWORD[16+rsp] + vmovdqu xmm2,XMMWORD[16+rdi] + add rdi,0x20 + and rdx,0xf + je NEAR $L$_done_2_EmbgEptodyewbFa + +$L$_steal_cipher_2_EmbgEptodyewbFa: + xor r11,r11 + shl rax,1 + adc rbx,rbx + cmovc r11,r10 + xor rax,r11 + mov QWORD[16+rsp],rax + mov QWORD[24+rsp],rbx + vmovdqa64 xmm11,xmm10 + vmovdqa xmm10,XMMWORD[16+rsp] + vpxor xmm1,xmm1,xmm9 + vpxor xmm2,xmm2,xmm10 + vmovdqu xmm0,XMMWORD[rcx] + vpxor xmm1,xmm1,xmm0 + vpxor xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[16+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[32+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[48+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[64+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[80+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[96+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[112+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[128+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[144+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[160+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[176+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[192+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[208+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[224+rcx] + vaesdeclast xmm1,xmm1,xmm0 + vaesdeclast xmm2,xmm2,xmm0 + vpxor xmm1,xmm1,xmm9 + vpxor xmm2,xmm2,xmm10 + vmovdqu XMMWORD[rsi],xmm1 + add rsi,0x20 + vmovdqa xmm0,xmm11 + vmovdqa xmm8,xmm2 + jmp NEAR $L$_steal_cipher_EmbgEptodyewbFa + +$L$_done_2_EmbgEptodyewbFa: + vpxor xmm1,xmm1,xmm9 + vpxor xmm2,xmm2,xmm10 + vmovdqu xmm0,XMMWORD[rcx] + vpxor xmm1,xmm1,xmm0 + vpxor xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[16+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[32+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[48+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[64+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[80+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[96+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[112+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[128+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[144+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[160+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[176+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[192+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[208+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[224+rcx] + vaesdeclast xmm1,xmm1,xmm0 + vaesdeclast xmm2,xmm2,xmm0 + vpxor xmm1,xmm1,xmm9 + vpxor xmm2,xmm2,xmm10 + vmovdqu XMMWORD[rsi],xmm1 + add rsi,0x20 + vmovdqa xmm8,xmm2 + jmp NEAR $L$_done_EmbgEptodyewbFa + +$L$_num_blocks_is_1_EmbgEptodyewbFa: + vmovdqa xmm9,XMMWORD[rsp] + mov rax,QWORD[rsp] + mov rbx,QWORD[8+rsp] + vmovdqu xmm1,XMMWORD[rdi] + add rdi,0x10 + and rdx,0xf + je NEAR $L$_done_1_EmbgEptodyewbFa + +$L$_steal_cipher_1_EmbgEptodyewbFa: + xor r11,r11 + shl rax,1 + adc rbx,rbx + cmovc r11,r10 + xor rax,r11 + mov QWORD[16+rsp],rax + mov QWORD[24+rsp],rbx + vmovdqa64 xmm10,xmm9 + vmovdqa xmm9,XMMWORD[16+rsp] + vpxor xmm1,xmm1,xmm9 + vmovdqu xmm0,XMMWORD[rcx] + vpxor xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[16+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[32+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[48+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[64+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[80+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[96+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[112+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[128+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[144+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[160+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[176+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[192+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[208+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[224+rcx] + vaesdeclast xmm1,xmm1,xmm0 + vpxor xmm1,xmm1,xmm9 + add rsi,0x10 + vmovdqa xmm0,xmm10 + vmovdqa xmm8,xmm1 + jmp NEAR $L$_steal_cipher_EmbgEptodyewbFa + +$L$_done_1_EmbgEptodyewbFa: + vpxor xmm1,xmm1,xmm9 + vmovdqu xmm0,XMMWORD[rcx] + vpxor xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[16+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[32+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[48+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[64+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[80+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[96+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[112+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[128+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[144+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[160+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[176+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[192+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[208+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[224+rcx] + vaesdeclast xmm1,xmm1,xmm0 + vpxor xmm1,xmm1,xmm9 + add rsi,0x10 + vmovdqa xmm8,xmm1 + jmp NEAR $L$_done_EmbgEptodyewbFa + +section .rdata rdata align=8 +ALIGN 16 + +vpshufb_shf_table: + DQ 0x8786858483828100,0x8f8e8d8c8b8a8988 + DQ 0x0706050403020100,0x000e0d0c0b0a0908 + +mask1: + DQ 0x8080808080808080,0x8080808080808080 + +const_dq3210: + DQ 0,0,1,1,2,2,3,3 +const_dq5678: + DQ 8,8,7,7,6,6,5,5 +const_dq7654: + DQ 4,4,5,5,6,6,7,7 +const_dq1234: + DQ 4,4,3,3,2,2,1,1 + +shufb_15_7: +DB 15,0xff,0xff,0xff,0xff,0xff,0xff,0xff,7,0xff,0xff +DB 0xff,0xff,0xff,0xff,0xff + +section .text code align=64 + diff --git a/deps/openssl/config/archs/VC-WIN64A/asm/crypto/aes/bsaes-x86_64.asm b/deps/openssl/config/archs/VC-WIN64A/asm/crypto/aes/bsaes-x86_64.asm index 0755ee4346daea..a10e7650b3ab3c 100644 --- a/deps/openssl/config/archs/VC-WIN64A/asm/crypto/aes/bsaes-x86_64.asm +++ b/deps/openssl/config/archs/VC-WIN64A/asm/crypto/aes/bsaes-x86_64.asm @@ -1615,6 +1615,7 @@ global ossl_bsaes_xts_encrypt ALIGN 16 ossl_bsaes_xts_encrypt: +DB 243,15,30,250 mov rax,rsp $L$xts_enc_prologue: push rbp @@ -2110,6 +2111,7 @@ global ossl_bsaes_xts_decrypt ALIGN 16 ossl_bsaes_xts_decrypt: +DB 243,15,30,250 mov rax,rsp $L$xts_dec_prologue: push rbp @@ -2625,6 +2627,7 @@ $L$xts_dec_epilogue: +section .rdata rdata align=64 ALIGN 64 _bsaes_const: $L$M0ISR: @@ -2676,13 +2679,13 @@ $L$M0: DQ 0x02060a0e03070b0f,0x0004080c0105090d $L$63: DQ 0x6363636363636363,0x6363636363636363 +ALIGN 64 + DB 66,105,116,45,115,108,105,99,101,100,32,65,69,83,32,102 DB 111,114,32,120,56,54,95,54,52,47,83,83,83,69,51,44 DB 32,69,109,105,108,105,97,32,75,195,164,115,112,101,114,44 DB 32,80,101,116,101,114,32,83,99,104,119,97,98,101,44,32 DB 65,110,100,121,32,80,111,108,121,97,107,111,118,0 -ALIGN 64 - EXTERN __imp_RtlVirtualUnwind ALIGN 16 diff --git a/deps/openssl/config/archs/VC-WIN64A/asm/crypto/aes/vpaes-x86_64.asm b/deps/openssl/config/archs/VC-WIN64A/asm/crypto/aes/vpaes-x86_64.asm index 8fb98f25d2d6f5..8321f694c79c4d 100644 --- a/deps/openssl/config/archs/VC-WIN64A/asm/crypto/aes/vpaes-x86_64.asm +++ b/deps/openssl/config/archs/VC-WIN64A/asm/crypto/aes/vpaes-x86_64.asm @@ -941,6 +941,7 @@ _vpaes_preheat: +section .rdata rdata align=64 ALIGN 64 _vpaes_consts: $L$k_inv: @@ -1036,13 +1037,13 @@ $L$k_dsbe: $L$k_dsbo: DQ 0x1387EA537EF94000,0xC7AA6DB9D4943E2D DQ 0x12D7560F93441D00,0xCA4B8159D8C58E9C +ALIGN 64 + DB 86,101,99,116,111,114,32,80,101,114,109,117,116,97,116,105 DB 111,110,32,65,69,83,32,102,111,114,32,120,56,54,95,54 DB 52,47,83,83,83,69,51,44,32,77,105,107,101,32,72,97 DB 109,98,117,114,103,32,40,83,116,97,110,102,111,114,100,32 DB 85,110,105,118,101,114,115,105,116,121,41,0 -ALIGN 64 - EXTERN __imp_RtlVirtualUnwind ALIGN 16 diff --git a/deps/openssl/config/archs/VC-WIN64A/asm/crypto/bn/rsaz-2k-avx512.asm b/deps/openssl/config/archs/VC-WIN64A/asm/crypto/bn/rsaz-2k-avx512.asm new file mode 100644 index 00000000000000..553761ef2f1cc3 --- /dev/null +++ b/deps/openssl/config/archs/VC-WIN64A/asm/crypto/bn/rsaz-2k-avx512.asm @@ -0,0 +1,1024 @@ +default rel +%define XMMWORD +%define YMMWORD +%define ZMMWORD +EXTERN OPENSSL_ia32cap_P +global ossl_rsaz_avx512ifma_eligible + +ALIGN 32 +ossl_rsaz_avx512ifma_eligible: + mov ecx,DWORD[((OPENSSL_ia32cap_P+8))] + xor eax,eax + and ecx,2149777408 + cmp ecx,2149777408 + cmove eax,ecx + DB 0F3h,0C3h ;repret + +section .text code align=64 + + +global ossl_rsaz_amm52x20_x1_ifma256 + +ALIGN 32 +ossl_rsaz_amm52x20_x1_ifma256: + mov QWORD[8+rsp],rdi ;WIN64 prologue + mov QWORD[16+rsp],rsi + mov rax,rsp +$L$SEH_begin_ossl_rsaz_amm52x20_x1_ifma256: + mov rdi,rcx + mov rsi,rdx + mov rdx,r8 + mov rcx,r9 + mov r8,QWORD[40+rsp] + + + +DB 243,15,30,250 + push rbx + + push rbp + + push r12 + + push r13 + + push r14 + + push r15 + +$L$ossl_rsaz_amm52x20_x1_ifma256_body: + + + vpxord ymm0,ymm0,ymm0 + vmovdqa64 ymm3,ymm0 + vmovdqa64 ymm16,ymm0 + vmovdqa64 ymm17,ymm0 + vmovdqa64 ymm18,ymm0 + vmovdqa64 ymm19,ymm0 + + xor r9d,r9d + + mov r11,rdx + mov rax,0xfffffffffffff + + + mov ebx,5 + +ALIGN 32 +$L$loop5: + mov r13,QWORD[r11] + + vpbroadcastq ymm1,r13 + mov rdx,QWORD[rsi] + mulx r12,r13,r13 + add r9,r13 + mov r10,r12 + adc r10,0 + + mov r13,r8 + imul r13,r9 + and r13,rax + + vpbroadcastq ymm2,r13 + mov rdx,QWORD[rcx] + mulx r12,r13,r13 + add r9,r13 + adc r10,r12 + + shr r9,52 + sal r10,12 + or r9,r10 + + vpmadd52luq ymm3,ymm1,YMMWORD[rsi] + vpmadd52luq ymm16,ymm1,YMMWORD[32+rsi] + vpmadd52luq ymm17,ymm1,YMMWORD[64+rsi] + vpmadd52luq ymm18,ymm1,YMMWORD[96+rsi] + vpmadd52luq ymm19,ymm1,YMMWORD[128+rsi] + + vpmadd52luq ymm3,ymm2,YMMWORD[rcx] + vpmadd52luq ymm16,ymm2,YMMWORD[32+rcx] + vpmadd52luq ymm17,ymm2,YMMWORD[64+rcx] + vpmadd52luq ymm18,ymm2,YMMWORD[96+rcx] + vpmadd52luq ymm19,ymm2,YMMWORD[128+rcx] + + + valignq ymm3,ymm16,ymm3,1 + valignq ymm16,ymm17,ymm16,1 + valignq ymm17,ymm18,ymm17,1 + valignq ymm18,ymm19,ymm18,1 + valignq ymm19,ymm0,ymm19,1 + + vmovq r13,xmm3 + add r9,r13 + + vpmadd52huq ymm3,ymm1,YMMWORD[rsi] + vpmadd52huq ymm16,ymm1,YMMWORD[32+rsi] + vpmadd52huq ymm17,ymm1,YMMWORD[64+rsi] + vpmadd52huq ymm18,ymm1,YMMWORD[96+rsi] + vpmadd52huq ymm19,ymm1,YMMWORD[128+rsi] + + vpmadd52huq ymm3,ymm2,YMMWORD[rcx] + vpmadd52huq ymm16,ymm2,YMMWORD[32+rcx] + vpmadd52huq ymm17,ymm2,YMMWORD[64+rcx] + vpmadd52huq ymm18,ymm2,YMMWORD[96+rcx] + vpmadd52huq ymm19,ymm2,YMMWORD[128+rcx] + mov r13,QWORD[8+r11] + + vpbroadcastq ymm1,r13 + mov rdx,QWORD[rsi] + mulx r12,r13,r13 + add r9,r13 + mov r10,r12 + adc r10,0 + + mov r13,r8 + imul r13,r9 + and r13,rax + + vpbroadcastq ymm2,r13 + mov rdx,QWORD[rcx] + mulx r12,r13,r13 + add r9,r13 + adc r10,r12 + + shr r9,52 + sal r10,12 + or r9,r10 + + vpmadd52luq ymm3,ymm1,YMMWORD[rsi] + vpmadd52luq ymm16,ymm1,YMMWORD[32+rsi] + vpmadd52luq ymm17,ymm1,YMMWORD[64+rsi] + vpmadd52luq ymm18,ymm1,YMMWORD[96+rsi] + vpmadd52luq ymm19,ymm1,YMMWORD[128+rsi] + + vpmadd52luq ymm3,ymm2,YMMWORD[rcx] + vpmadd52luq ymm16,ymm2,YMMWORD[32+rcx] + vpmadd52luq ymm17,ymm2,YMMWORD[64+rcx] + vpmadd52luq ymm18,ymm2,YMMWORD[96+rcx] + vpmadd52luq ymm19,ymm2,YMMWORD[128+rcx] + + + valignq ymm3,ymm16,ymm3,1 + valignq ymm16,ymm17,ymm16,1 + valignq ymm17,ymm18,ymm17,1 + valignq ymm18,ymm19,ymm18,1 + valignq ymm19,ymm0,ymm19,1 + + vmovq r13,xmm3 + add r9,r13 + + vpmadd52huq ymm3,ymm1,YMMWORD[rsi] + vpmadd52huq ymm16,ymm1,YMMWORD[32+rsi] + vpmadd52huq ymm17,ymm1,YMMWORD[64+rsi] + vpmadd52huq ymm18,ymm1,YMMWORD[96+rsi] + vpmadd52huq ymm19,ymm1,YMMWORD[128+rsi] + + vpmadd52huq ymm3,ymm2,YMMWORD[rcx] + vpmadd52huq ymm16,ymm2,YMMWORD[32+rcx] + vpmadd52huq ymm17,ymm2,YMMWORD[64+rcx] + vpmadd52huq ymm18,ymm2,YMMWORD[96+rcx] + vpmadd52huq ymm19,ymm2,YMMWORD[128+rcx] + mov r13,QWORD[16+r11] + + vpbroadcastq ymm1,r13 + mov rdx,QWORD[rsi] + mulx r12,r13,r13 + add r9,r13 + mov r10,r12 + adc r10,0 + + mov r13,r8 + imul r13,r9 + and r13,rax + + vpbroadcastq ymm2,r13 + mov rdx,QWORD[rcx] + mulx r12,r13,r13 + add r9,r13 + adc r10,r12 + + shr r9,52 + sal r10,12 + or r9,r10 + + vpmadd52luq ymm3,ymm1,YMMWORD[rsi] + vpmadd52luq ymm16,ymm1,YMMWORD[32+rsi] + vpmadd52luq ymm17,ymm1,YMMWORD[64+rsi] + vpmadd52luq ymm18,ymm1,YMMWORD[96+rsi] + vpmadd52luq ymm19,ymm1,YMMWORD[128+rsi] + + vpmadd52luq ymm3,ymm2,YMMWORD[rcx] + vpmadd52luq ymm16,ymm2,YMMWORD[32+rcx] + vpmadd52luq ymm17,ymm2,YMMWORD[64+rcx] + vpmadd52luq ymm18,ymm2,YMMWORD[96+rcx] + vpmadd52luq ymm19,ymm2,YMMWORD[128+rcx] + + + valignq ymm3,ymm16,ymm3,1 + valignq ymm16,ymm17,ymm16,1 + valignq ymm17,ymm18,ymm17,1 + valignq ymm18,ymm19,ymm18,1 + valignq ymm19,ymm0,ymm19,1 + + vmovq r13,xmm3 + add r9,r13 + + vpmadd52huq ymm3,ymm1,YMMWORD[rsi] + vpmadd52huq ymm16,ymm1,YMMWORD[32+rsi] + vpmadd52huq ymm17,ymm1,YMMWORD[64+rsi] + vpmadd52huq ymm18,ymm1,YMMWORD[96+rsi] + vpmadd52huq ymm19,ymm1,YMMWORD[128+rsi] + + vpmadd52huq ymm3,ymm2,YMMWORD[rcx] + vpmadd52huq ymm16,ymm2,YMMWORD[32+rcx] + vpmadd52huq ymm17,ymm2,YMMWORD[64+rcx] + vpmadd52huq ymm18,ymm2,YMMWORD[96+rcx] + vpmadd52huq ymm19,ymm2,YMMWORD[128+rcx] + mov r13,QWORD[24+r11] + + vpbroadcastq ymm1,r13 + mov rdx,QWORD[rsi] + mulx r12,r13,r13 + add r9,r13 + mov r10,r12 + adc r10,0 + + mov r13,r8 + imul r13,r9 + and r13,rax + + vpbroadcastq ymm2,r13 + mov rdx,QWORD[rcx] + mulx r12,r13,r13 + add r9,r13 + adc r10,r12 + + shr r9,52 + sal r10,12 + or r9,r10 + + vpmadd52luq ymm3,ymm1,YMMWORD[rsi] + vpmadd52luq ymm16,ymm1,YMMWORD[32+rsi] + vpmadd52luq ymm17,ymm1,YMMWORD[64+rsi] + vpmadd52luq ymm18,ymm1,YMMWORD[96+rsi] + vpmadd52luq ymm19,ymm1,YMMWORD[128+rsi] + + vpmadd52luq ymm3,ymm2,YMMWORD[rcx] + vpmadd52luq ymm16,ymm2,YMMWORD[32+rcx] + vpmadd52luq ymm17,ymm2,YMMWORD[64+rcx] + vpmadd52luq ymm18,ymm2,YMMWORD[96+rcx] + vpmadd52luq ymm19,ymm2,YMMWORD[128+rcx] + + + valignq ymm3,ymm16,ymm3,1 + valignq ymm16,ymm17,ymm16,1 + valignq ymm17,ymm18,ymm17,1 + valignq ymm18,ymm19,ymm18,1 + valignq ymm19,ymm0,ymm19,1 + + vmovq r13,xmm3 + add r9,r13 + + vpmadd52huq ymm3,ymm1,YMMWORD[rsi] + vpmadd52huq ymm16,ymm1,YMMWORD[32+rsi] + vpmadd52huq ymm17,ymm1,YMMWORD[64+rsi] + vpmadd52huq ymm18,ymm1,YMMWORD[96+rsi] + vpmadd52huq ymm19,ymm1,YMMWORD[128+rsi] + + vpmadd52huq ymm3,ymm2,YMMWORD[rcx] + vpmadd52huq ymm16,ymm2,YMMWORD[32+rcx] + vpmadd52huq ymm17,ymm2,YMMWORD[64+rcx] + vpmadd52huq ymm18,ymm2,YMMWORD[96+rcx] + vpmadd52huq ymm19,ymm2,YMMWORD[128+rcx] + lea r11,[32+r11] + dec ebx + jne NEAR $L$loop5 + + vpbroadcastq ymm0,r9 + vpblendd ymm3,ymm3,ymm0,3 + + + + vpsrlq ymm0,ymm3,52 + vpsrlq ymm1,ymm16,52 + vpsrlq ymm2,ymm17,52 + vpsrlq ymm25,ymm18,52 + vpsrlq ymm26,ymm19,52 + + + valignq ymm26,ymm26,ymm25,3 + valignq ymm25,ymm25,ymm2,3 + valignq ymm2,ymm2,ymm1,3 + valignq ymm1,ymm1,ymm0,3 + valignq ymm0,ymm0,YMMWORD[$L$zeros],3 + + + vpandq ymm3,ymm3,YMMWORD[$L$mask52x4] + vpandq ymm16,ymm16,YMMWORD[$L$mask52x4] + vpandq ymm17,ymm17,YMMWORD[$L$mask52x4] + vpandq ymm18,ymm18,YMMWORD[$L$mask52x4] + vpandq ymm19,ymm19,YMMWORD[$L$mask52x4] + + + vpaddq ymm3,ymm3,ymm0 + vpaddq ymm16,ymm16,ymm1 + vpaddq ymm17,ymm17,ymm2 + vpaddq ymm18,ymm18,ymm25 + vpaddq ymm19,ymm19,ymm26 + + + + vpcmpuq k1,ymm3,YMMWORD[$L$mask52x4],6 + vpcmpuq k2,ymm16,YMMWORD[$L$mask52x4],6 + vpcmpuq k3,ymm17,YMMWORD[$L$mask52x4],6 + vpcmpuq k4,ymm18,YMMWORD[$L$mask52x4],6 + vpcmpuq k5,ymm19,YMMWORD[$L$mask52x4],6 + kmovb r14d,k1 + kmovb r13d,k2 + kmovb r12d,k3 + kmovb r11d,k4 + kmovb r10d,k5 + + + vpcmpuq k1,ymm3,YMMWORD[$L$mask52x4],0 + vpcmpuq k2,ymm16,YMMWORD[$L$mask52x4],0 + vpcmpuq k3,ymm17,YMMWORD[$L$mask52x4],0 + vpcmpuq k4,ymm18,YMMWORD[$L$mask52x4],0 + vpcmpuq k5,ymm19,YMMWORD[$L$mask52x4],0 + kmovb r9d,k1 + kmovb r8d,k2 + kmovb ebx,k3 + kmovb ecx,k4 + kmovb edx,k5 + + + + shl r13b,4 + or r14b,r13b + shl r11b,4 + or r12b,r11b + + add r14b,r14b + adc r12b,r12b + adc r10b,r10b + + shl r8b,4 + or r9b,r8b + shl cl,4 + or bl,cl + + add r14b,r9b + adc r12b,bl + adc r10b,dl + + xor r14b,r9b + xor r12b,bl + xor r10b,dl + + kmovb k1,r14d + shr r14b,4 + kmovb k2,r14d + kmovb k3,r12d + shr r12b,4 + kmovb k4,r12d + kmovb k5,r10d + + + vpsubq ymm3{k1},ymm3,YMMWORD[$L$mask52x4] + vpsubq ymm16{k2},ymm16,YMMWORD[$L$mask52x4] + vpsubq ymm17{k3},ymm17,YMMWORD[$L$mask52x4] + vpsubq ymm18{k4},ymm18,YMMWORD[$L$mask52x4] + vpsubq ymm19{k5},ymm19,YMMWORD[$L$mask52x4] + + vpandq ymm3,ymm3,YMMWORD[$L$mask52x4] + vpandq ymm16,ymm16,YMMWORD[$L$mask52x4] + vpandq ymm17,ymm17,YMMWORD[$L$mask52x4] + vpandq ymm18,ymm18,YMMWORD[$L$mask52x4] + vpandq ymm19,ymm19,YMMWORD[$L$mask52x4] + + vmovdqu64 YMMWORD[rdi],ymm3 + vmovdqu64 YMMWORD[32+rdi],ymm16 + vmovdqu64 YMMWORD[64+rdi],ymm17 + vmovdqu64 YMMWORD[96+rdi],ymm18 + vmovdqu64 YMMWORD[128+rdi],ymm19 + + vzeroupper + mov r15,QWORD[rsp] + + mov r14,QWORD[8+rsp] + + mov r13,QWORD[16+rsp] + + mov r12,QWORD[24+rsp] + + mov rbp,QWORD[32+rsp] + + mov rbx,QWORD[40+rsp] + + lea rsp,[48+rsp] + +$L$ossl_rsaz_amm52x20_x1_ifma256_epilogue: + mov rdi,QWORD[8+rsp] ;WIN64 epilogue + mov rsi,QWORD[16+rsp] + DB 0F3h,0C3h ;repret + +$L$SEH_end_ossl_rsaz_amm52x20_x1_ifma256: +section .rdata rdata align=32 +ALIGN 32 +$L$mask52x4: + DQ 0xfffffffffffff + DQ 0xfffffffffffff + DQ 0xfffffffffffff + DQ 0xfffffffffffff +section .text code align=64 + + +global ossl_rsaz_amm52x20_x2_ifma256 + +ALIGN 32 +ossl_rsaz_amm52x20_x2_ifma256: + mov QWORD[8+rsp],rdi ;WIN64 prologue + mov QWORD[16+rsp],rsi + mov rax,rsp +$L$SEH_begin_ossl_rsaz_amm52x20_x2_ifma256: + mov rdi,rcx + mov rsi,rdx + mov rdx,r8 + mov rcx,r9 + mov r8,QWORD[40+rsp] + + + +DB 243,15,30,250 + push rbx + + push rbp + + push r12 + + push r13 + + push r14 + + push r15 + +$L$ossl_rsaz_amm52x20_x2_ifma256_body: + + + vpxord ymm0,ymm0,ymm0 + vmovdqa64 ymm3,ymm0 + vmovdqa64 ymm16,ymm0 + vmovdqa64 ymm17,ymm0 + vmovdqa64 ymm18,ymm0 + vmovdqa64 ymm19,ymm0 + vmovdqa64 ymm4,ymm0 + vmovdqa64 ymm20,ymm0 + vmovdqa64 ymm21,ymm0 + vmovdqa64 ymm22,ymm0 + vmovdqa64 ymm23,ymm0 + + xor r9d,r9d + xor r15d,r15d + + mov r11,rdx + mov rax,0xfffffffffffff + + mov ebx,20 + +ALIGN 32 +$L$loop20: + mov r13,QWORD[r11] + + vpbroadcastq ymm1,r13 + mov rdx,QWORD[rsi] + mulx r12,r13,r13 + add r9,r13 + mov r10,r12 + adc r10,0 + + mov r13,QWORD[r8] + imul r13,r9 + and r13,rax + + vpbroadcastq ymm2,r13 + mov rdx,QWORD[rcx] + mulx r12,r13,r13 + add r9,r13 + adc r10,r12 + + shr r9,52 + sal r10,12 + or r9,r10 + + vpmadd52luq ymm3,ymm1,YMMWORD[rsi] + vpmadd52luq ymm16,ymm1,YMMWORD[32+rsi] + vpmadd52luq ymm17,ymm1,YMMWORD[64+rsi] + vpmadd52luq ymm18,ymm1,YMMWORD[96+rsi] + vpmadd52luq ymm19,ymm1,YMMWORD[128+rsi] + + vpmadd52luq ymm3,ymm2,YMMWORD[rcx] + vpmadd52luq ymm16,ymm2,YMMWORD[32+rcx] + vpmadd52luq ymm17,ymm2,YMMWORD[64+rcx] + vpmadd52luq ymm18,ymm2,YMMWORD[96+rcx] + vpmadd52luq ymm19,ymm2,YMMWORD[128+rcx] + + + valignq ymm3,ymm16,ymm3,1 + valignq ymm16,ymm17,ymm16,1 + valignq ymm17,ymm18,ymm17,1 + valignq ymm18,ymm19,ymm18,1 + valignq ymm19,ymm0,ymm19,1 + + vmovq r13,xmm3 + add r9,r13 + + vpmadd52huq ymm3,ymm1,YMMWORD[rsi] + vpmadd52huq ymm16,ymm1,YMMWORD[32+rsi] + vpmadd52huq ymm17,ymm1,YMMWORD[64+rsi] + vpmadd52huq ymm18,ymm1,YMMWORD[96+rsi] + vpmadd52huq ymm19,ymm1,YMMWORD[128+rsi] + + vpmadd52huq ymm3,ymm2,YMMWORD[rcx] + vpmadd52huq ymm16,ymm2,YMMWORD[32+rcx] + vpmadd52huq ymm17,ymm2,YMMWORD[64+rcx] + vpmadd52huq ymm18,ymm2,YMMWORD[96+rcx] + vpmadd52huq ymm19,ymm2,YMMWORD[128+rcx] + mov r13,QWORD[160+r11] + + vpbroadcastq ymm1,r13 + mov rdx,QWORD[160+rsi] + mulx r12,r13,r13 + add r15,r13 + mov r10,r12 + adc r10,0 + + mov r13,QWORD[8+r8] + imul r13,r15 + and r13,rax + + vpbroadcastq ymm2,r13 + mov rdx,QWORD[160+rcx] + mulx r12,r13,r13 + add r15,r13 + adc r10,r12 + + shr r15,52 + sal r10,12 + or r15,r10 + + vpmadd52luq ymm4,ymm1,YMMWORD[160+rsi] + vpmadd52luq ymm20,ymm1,YMMWORD[192+rsi] + vpmadd52luq ymm21,ymm1,YMMWORD[224+rsi] + vpmadd52luq ymm22,ymm1,YMMWORD[256+rsi] + vpmadd52luq ymm23,ymm1,YMMWORD[288+rsi] + + vpmadd52luq ymm4,ymm2,YMMWORD[160+rcx] + vpmadd52luq ymm20,ymm2,YMMWORD[192+rcx] + vpmadd52luq ymm21,ymm2,YMMWORD[224+rcx] + vpmadd52luq ymm22,ymm2,YMMWORD[256+rcx] + vpmadd52luq ymm23,ymm2,YMMWORD[288+rcx] + + + valignq ymm4,ymm20,ymm4,1 + valignq ymm20,ymm21,ymm20,1 + valignq ymm21,ymm22,ymm21,1 + valignq ymm22,ymm23,ymm22,1 + valignq ymm23,ymm0,ymm23,1 + + vmovq r13,xmm4 + add r15,r13 + + vpmadd52huq ymm4,ymm1,YMMWORD[160+rsi] + vpmadd52huq ymm20,ymm1,YMMWORD[192+rsi] + vpmadd52huq ymm21,ymm1,YMMWORD[224+rsi] + vpmadd52huq ymm22,ymm1,YMMWORD[256+rsi] + vpmadd52huq ymm23,ymm1,YMMWORD[288+rsi] + + vpmadd52huq ymm4,ymm2,YMMWORD[160+rcx] + vpmadd52huq ymm20,ymm2,YMMWORD[192+rcx] + vpmadd52huq ymm21,ymm2,YMMWORD[224+rcx] + vpmadd52huq ymm22,ymm2,YMMWORD[256+rcx] + vpmadd52huq ymm23,ymm2,YMMWORD[288+rcx] + lea r11,[8+r11] + dec ebx + jne NEAR $L$loop20 + + vpbroadcastq ymm0,r9 + vpblendd ymm3,ymm3,ymm0,3 + + + + vpsrlq ymm0,ymm3,52 + vpsrlq ymm1,ymm16,52 + vpsrlq ymm2,ymm17,52 + vpsrlq ymm25,ymm18,52 + vpsrlq ymm26,ymm19,52 + + + valignq ymm26,ymm26,ymm25,3 + valignq ymm25,ymm25,ymm2,3 + valignq ymm2,ymm2,ymm1,3 + valignq ymm1,ymm1,ymm0,3 + valignq ymm0,ymm0,YMMWORD[$L$zeros],3 + + + vpandq ymm3,ymm3,YMMWORD[$L$mask52x4] + vpandq ymm16,ymm16,YMMWORD[$L$mask52x4] + vpandq ymm17,ymm17,YMMWORD[$L$mask52x4] + vpandq ymm18,ymm18,YMMWORD[$L$mask52x4] + vpandq ymm19,ymm19,YMMWORD[$L$mask52x4] + + + vpaddq ymm3,ymm3,ymm0 + vpaddq ymm16,ymm16,ymm1 + vpaddq ymm17,ymm17,ymm2 + vpaddq ymm18,ymm18,ymm25 + vpaddq ymm19,ymm19,ymm26 + + + + vpcmpuq k1,ymm3,YMMWORD[$L$mask52x4],6 + vpcmpuq k2,ymm16,YMMWORD[$L$mask52x4],6 + vpcmpuq k3,ymm17,YMMWORD[$L$mask52x4],6 + vpcmpuq k4,ymm18,YMMWORD[$L$mask52x4],6 + vpcmpuq k5,ymm19,YMMWORD[$L$mask52x4],6 + kmovb r14d,k1 + kmovb r13d,k2 + kmovb r12d,k3 + kmovb r11d,k4 + kmovb r10d,k5 + + + vpcmpuq k1,ymm3,YMMWORD[$L$mask52x4],0 + vpcmpuq k2,ymm16,YMMWORD[$L$mask52x4],0 + vpcmpuq k3,ymm17,YMMWORD[$L$mask52x4],0 + vpcmpuq k4,ymm18,YMMWORD[$L$mask52x4],0 + vpcmpuq k5,ymm19,YMMWORD[$L$mask52x4],0 + kmovb r9d,k1 + kmovb r8d,k2 + kmovb ebx,k3 + kmovb ecx,k4 + kmovb edx,k5 + + + + shl r13b,4 + or r14b,r13b + shl r11b,4 + or r12b,r11b + + add r14b,r14b + adc r12b,r12b + adc r10b,r10b + + shl r8b,4 + or r9b,r8b + shl cl,4 + or bl,cl + + add r14b,r9b + adc r12b,bl + adc r10b,dl + + xor r14b,r9b + xor r12b,bl + xor r10b,dl + + kmovb k1,r14d + shr r14b,4 + kmovb k2,r14d + kmovb k3,r12d + shr r12b,4 + kmovb k4,r12d + kmovb k5,r10d + + + vpsubq ymm3{k1},ymm3,YMMWORD[$L$mask52x4] + vpsubq ymm16{k2},ymm16,YMMWORD[$L$mask52x4] + vpsubq ymm17{k3},ymm17,YMMWORD[$L$mask52x4] + vpsubq ymm18{k4},ymm18,YMMWORD[$L$mask52x4] + vpsubq ymm19{k5},ymm19,YMMWORD[$L$mask52x4] + + vpandq ymm3,ymm3,YMMWORD[$L$mask52x4] + vpandq ymm16,ymm16,YMMWORD[$L$mask52x4] + vpandq ymm17,ymm17,YMMWORD[$L$mask52x4] + vpandq ymm18,ymm18,YMMWORD[$L$mask52x4] + vpandq ymm19,ymm19,YMMWORD[$L$mask52x4] + + vpbroadcastq ymm0,r15 + vpblendd ymm4,ymm4,ymm0,3 + + + + vpsrlq ymm0,ymm4,52 + vpsrlq ymm1,ymm20,52 + vpsrlq ymm2,ymm21,52 + vpsrlq ymm25,ymm22,52 + vpsrlq ymm26,ymm23,52 + + + valignq ymm26,ymm26,ymm25,3 + valignq ymm25,ymm25,ymm2,3 + valignq ymm2,ymm2,ymm1,3 + valignq ymm1,ymm1,ymm0,3 + valignq ymm0,ymm0,YMMWORD[$L$zeros],3 + + + vpandq ymm4,ymm4,YMMWORD[$L$mask52x4] + vpandq ymm20,ymm20,YMMWORD[$L$mask52x4] + vpandq ymm21,ymm21,YMMWORD[$L$mask52x4] + vpandq ymm22,ymm22,YMMWORD[$L$mask52x4] + vpandq ymm23,ymm23,YMMWORD[$L$mask52x4] + + + vpaddq ymm4,ymm4,ymm0 + vpaddq ymm20,ymm20,ymm1 + vpaddq ymm21,ymm21,ymm2 + vpaddq ymm22,ymm22,ymm25 + vpaddq ymm23,ymm23,ymm26 + + + + vpcmpuq k1,ymm4,YMMWORD[$L$mask52x4],6 + vpcmpuq k2,ymm20,YMMWORD[$L$mask52x4],6 + vpcmpuq k3,ymm21,YMMWORD[$L$mask52x4],6 + vpcmpuq k4,ymm22,YMMWORD[$L$mask52x4],6 + vpcmpuq k5,ymm23,YMMWORD[$L$mask52x4],6 + kmovb r14d,k1 + kmovb r13d,k2 + kmovb r12d,k3 + kmovb r11d,k4 + kmovb r10d,k5 + + + vpcmpuq k1,ymm4,YMMWORD[$L$mask52x4],0 + vpcmpuq k2,ymm20,YMMWORD[$L$mask52x4],0 + vpcmpuq k3,ymm21,YMMWORD[$L$mask52x4],0 + vpcmpuq k4,ymm22,YMMWORD[$L$mask52x4],0 + vpcmpuq k5,ymm23,YMMWORD[$L$mask52x4],0 + kmovb r9d,k1 + kmovb r8d,k2 + kmovb ebx,k3 + kmovb ecx,k4 + kmovb edx,k5 + + + + shl r13b,4 + or r14b,r13b + shl r11b,4 + or r12b,r11b + + add r14b,r14b + adc r12b,r12b + adc r10b,r10b + + shl r8b,4 + or r9b,r8b + shl cl,4 + or bl,cl + + add r14b,r9b + adc r12b,bl + adc r10b,dl + + xor r14b,r9b + xor r12b,bl + xor r10b,dl + + kmovb k1,r14d + shr r14b,4 + kmovb k2,r14d + kmovb k3,r12d + shr r12b,4 + kmovb k4,r12d + kmovb k5,r10d + + + vpsubq ymm4{k1},ymm4,YMMWORD[$L$mask52x4] + vpsubq ymm20{k2},ymm20,YMMWORD[$L$mask52x4] + vpsubq ymm21{k3},ymm21,YMMWORD[$L$mask52x4] + vpsubq ymm22{k4},ymm22,YMMWORD[$L$mask52x4] + vpsubq ymm23{k5},ymm23,YMMWORD[$L$mask52x4] + + vpandq ymm4,ymm4,YMMWORD[$L$mask52x4] + vpandq ymm20,ymm20,YMMWORD[$L$mask52x4] + vpandq ymm21,ymm21,YMMWORD[$L$mask52x4] + vpandq ymm22,ymm22,YMMWORD[$L$mask52x4] + vpandq ymm23,ymm23,YMMWORD[$L$mask52x4] + + vmovdqu64 YMMWORD[rdi],ymm3 + vmovdqu64 YMMWORD[32+rdi],ymm16 + vmovdqu64 YMMWORD[64+rdi],ymm17 + vmovdqu64 YMMWORD[96+rdi],ymm18 + vmovdqu64 YMMWORD[128+rdi],ymm19 + + vmovdqu64 YMMWORD[160+rdi],ymm4 + vmovdqu64 YMMWORD[192+rdi],ymm20 + vmovdqu64 YMMWORD[224+rdi],ymm21 + vmovdqu64 YMMWORD[256+rdi],ymm22 + vmovdqu64 YMMWORD[288+rdi],ymm23 + + vzeroupper + mov r15,QWORD[rsp] + + mov r14,QWORD[8+rsp] + + mov r13,QWORD[16+rsp] + + mov r12,QWORD[24+rsp] + + mov rbp,QWORD[32+rsp] + + mov rbx,QWORD[40+rsp] + + lea rsp,[48+rsp] + +$L$ossl_rsaz_amm52x20_x2_ifma256_epilogue: + mov rdi,QWORD[8+rsp] ;WIN64 epilogue + mov rsi,QWORD[16+rsp] + DB 0F3h,0C3h ;repret + +$L$SEH_end_ossl_rsaz_amm52x20_x2_ifma256: +section .text code align=64 + + +ALIGN 32 +global ossl_extract_multiplier_2x20_win5 + +ossl_extract_multiplier_2x20_win5: + +DB 243,15,30,250 + vmovdqa64 ymm24,YMMWORD[$L$ones] + vpbroadcastq ymm22,r8 + vpbroadcastq ymm23,r9 + lea rax,[10240+rdx] + + + vpxor xmm0,xmm0,xmm0 + vmovdqa64 ymm21,ymm0 + vmovdqa64 ymm1,ymm0 + vmovdqa64 ymm2,ymm0 + vmovdqa64 ymm3,ymm0 + vmovdqa64 ymm4,ymm0 + vmovdqa64 ymm5,ymm0 + vmovdqa64 ymm16,ymm0 + vmovdqa64 ymm17,ymm0 + vmovdqa64 ymm18,ymm0 + vmovdqa64 ymm19,ymm0 + +ALIGN 32 +$L$loop: + vpcmpq k1,ymm22,ymm21,0 + vpcmpq k2,ymm23,ymm21,0 + vmovdqu64 ymm20,YMMWORD[rdx] + vpblendmq ymm0{k1},ymm0,ymm20 + vmovdqu64 ymm20,YMMWORD[32+rdx] + vpblendmq ymm1{k1},ymm1,ymm20 + vmovdqu64 ymm20,YMMWORD[64+rdx] + vpblendmq ymm2{k1},ymm2,ymm20 + vmovdqu64 ymm20,YMMWORD[96+rdx] + vpblendmq ymm3{k1},ymm3,ymm20 + vmovdqu64 ymm20,YMMWORD[128+rdx] + vpblendmq ymm4{k1},ymm4,ymm20 + vmovdqu64 ymm20,YMMWORD[160+rdx] + vpblendmq ymm5{k2},ymm5,ymm20 + vmovdqu64 ymm20,YMMWORD[192+rdx] + vpblendmq ymm16{k2},ymm16,ymm20 + vmovdqu64 ymm20,YMMWORD[224+rdx] + vpblendmq ymm17{k2},ymm17,ymm20 + vmovdqu64 ymm20,YMMWORD[256+rdx] + vpblendmq ymm18{k2},ymm18,ymm20 + vmovdqu64 ymm20,YMMWORD[288+rdx] + vpblendmq ymm19{k2},ymm19,ymm20 + vpaddq ymm21,ymm21,ymm24 + add rdx,320 + cmp rax,rdx + jne NEAR $L$loop + vmovdqu64 YMMWORD[rcx],ymm0 + vmovdqu64 YMMWORD[32+rcx],ymm1 + vmovdqu64 YMMWORD[64+rcx],ymm2 + vmovdqu64 YMMWORD[96+rcx],ymm3 + vmovdqu64 YMMWORD[128+rcx],ymm4 + vmovdqu64 YMMWORD[160+rcx],ymm5 + vmovdqu64 YMMWORD[192+rcx],ymm16 + vmovdqu64 YMMWORD[224+rcx],ymm17 + vmovdqu64 YMMWORD[256+rcx],ymm18 + vmovdqu64 YMMWORD[288+rcx],ymm19 + DB 0F3h,0C3h ;repret + + +section .rdata rdata align=32 +ALIGN 32 +$L$ones: + DQ 1,1,1,1 +$L$zeros: + DQ 0,0,0,0 +EXTERN __imp_RtlVirtualUnwind + +ALIGN 16 +rsaz_def_handler: + push rsi + push rdi + push rbx + push rbp + push r12 + push r13 + push r14 + push r15 + pushfq + sub rsp,64 + + mov rax,QWORD[120+r8] + mov rbx,QWORD[248+r8] + + mov rsi,QWORD[8+r9] + mov r11,QWORD[56+r9] + + mov r10d,DWORD[r11] + lea r10,[r10*1+rsi] + cmp rbx,r10 + jb NEAR $L$common_seh_tail + + mov rax,QWORD[152+r8] + + mov r10d,DWORD[4+r11] + lea r10,[r10*1+rsi] + cmp rbx,r10 + jae NEAR $L$common_seh_tail + + lea rax,[48+rax] + + mov rbx,QWORD[((-8))+rax] + mov rbp,QWORD[((-16))+rax] + mov r12,QWORD[((-24))+rax] + mov r13,QWORD[((-32))+rax] + mov r14,QWORD[((-40))+rax] + mov r15,QWORD[((-48))+rax] + mov QWORD[144+r8],rbx + mov QWORD[160+r8],rbp + mov QWORD[216+r8],r12 + mov QWORD[224+r8],r13 + mov QWORD[232+r8],r14 + mov QWORD[240+r8],r15 + +$L$common_seh_tail: + mov rdi,QWORD[8+rax] + mov rsi,QWORD[16+rax] + mov QWORD[152+r8],rax + mov QWORD[168+r8],rsi + mov QWORD[176+r8],rdi + + mov rdi,QWORD[40+r9] + mov rsi,r8 + mov ecx,154 + DD 0xa548f3fc + + mov rsi,r9 + xor rcx,rcx + mov rdx,QWORD[8+rsi] + mov r8,QWORD[rsi] + mov r9,QWORD[16+rsi] + mov r10,QWORD[40+rsi] + lea r11,[56+rsi] + lea r12,[24+rsi] + mov QWORD[32+rsp],r10 + mov QWORD[40+rsp],r11 + mov QWORD[48+rsp],r12 + mov QWORD[56+rsp],rcx + call QWORD[__imp_RtlVirtualUnwind] + + mov eax,1 + add rsp,64 + popfq + pop r15 + pop r14 + pop r13 + pop r12 + pop rbp + pop rbx + pop rdi + pop rsi + DB 0F3h,0C3h ;repret + + +section .pdata rdata align=4 +ALIGN 4 + DD $L$SEH_begin_ossl_rsaz_amm52x20_x1_ifma256 wrt ..imagebase + DD $L$SEH_end_ossl_rsaz_amm52x20_x1_ifma256 wrt ..imagebase + DD $L$SEH_info_ossl_rsaz_amm52x20_x1_ifma256 wrt ..imagebase + + DD $L$SEH_begin_ossl_rsaz_amm52x20_x2_ifma256 wrt ..imagebase + DD $L$SEH_end_ossl_rsaz_amm52x20_x2_ifma256 wrt ..imagebase + DD $L$SEH_info_ossl_rsaz_amm52x20_x2_ifma256 wrt ..imagebase + +section .xdata rdata align=8 +ALIGN 8 +$L$SEH_info_ossl_rsaz_amm52x20_x1_ifma256: +DB 9,0,0,0 + DD rsaz_def_handler wrt ..imagebase + DD $L$ossl_rsaz_amm52x20_x1_ifma256_body wrt ..imagebase,$L$ossl_rsaz_amm52x20_x1_ifma256_epilogue wrt ..imagebase +$L$SEH_info_ossl_rsaz_amm52x20_x2_ifma256: +DB 9,0,0,0 + DD rsaz_def_handler wrt ..imagebase + DD $L$ossl_rsaz_amm52x20_x2_ifma256_body wrt ..imagebase,$L$ossl_rsaz_amm52x20_x2_ifma256_epilogue wrt ..imagebase diff --git a/deps/openssl/config/archs/VC-WIN64A/asm/crypto/bn/rsaz-2k-avxifma.asm b/deps/openssl/config/archs/VC-WIN64A/asm/crypto/bn/rsaz-2k-avxifma.asm new file mode 100644 index 00000000000000..0041c71f3d0b62 --- /dev/null +++ b/deps/openssl/config/archs/VC-WIN64A/asm/crypto/bn/rsaz-2k-avxifma.asm @@ -0,0 +1,24 @@ +default rel +%define XMMWORD +%define YMMWORD +%define ZMMWORD +section .text code align=64 + + +global ossl_rsaz_avxifma_eligible + +ossl_rsaz_avxifma_eligible: + xor eax,eax + DB 0F3h,0C3h ;repret + + +global ossl_rsaz_amm52x20_x1_avxifma256 +global ossl_rsaz_amm52x20_x2_avxifma256 +global ossl_extract_multiplier_2x20_win5_avx + +ossl_rsaz_amm52x20_x1_avxifma256: +ossl_rsaz_amm52x20_x2_avxifma256: +ossl_extract_multiplier_2x20_win5_avx: +DB 0x0f,0x0b + DB 0F3h,0C3h ;repret + diff --git a/deps/openssl/config/archs/VC-WIN64A/asm/crypto/bn/rsaz-3k-avx512.asm b/deps/openssl/config/archs/VC-WIN64A/asm/crypto/bn/rsaz-3k-avx512.asm new file mode 100644 index 00000000000000..0865c61efbc872 --- /dev/null +++ b/deps/openssl/config/archs/VC-WIN64A/asm/crypto/bn/rsaz-3k-avx512.asm @@ -0,0 +1,1490 @@ +default rel +%define XMMWORD +%define YMMWORD +%define ZMMWORD +section .text code align=64 + + +global ossl_rsaz_amm52x30_x1_ifma256 + +ALIGN 32 +ossl_rsaz_amm52x30_x1_ifma256: + mov QWORD[8+rsp],rdi ;WIN64 prologue + mov QWORD[16+rsp],rsi + mov rax,rsp +$L$SEH_begin_ossl_rsaz_amm52x30_x1_ifma256: + mov rdi,rcx + mov rsi,rdx + mov rdx,r8 + mov rcx,r9 + mov r8,QWORD[40+rsp] + + + +DB 243,15,30,250 + push rbx + + push rbp + + push r12 + + push r13 + + push r14 + + push r15 + + lea rsp,[((-168))+rsp] + vmovdqa64 XMMWORD[rsp],xmm6 + vmovdqa64 XMMWORD[16+rsp],xmm7 + vmovdqa64 XMMWORD[32+rsp],xmm8 + vmovdqa64 XMMWORD[48+rsp],xmm9 + vmovdqa64 XMMWORD[64+rsp],xmm10 + vmovdqa64 XMMWORD[80+rsp],xmm11 + vmovdqa64 XMMWORD[96+rsp],xmm12 + vmovdqa64 XMMWORD[112+rsp],xmm13 + vmovdqa64 XMMWORD[128+rsp],xmm14 + vmovdqa64 XMMWORD[144+rsp],xmm15 +$L$ossl_rsaz_amm52x30_x1_ifma256_body: + + vpxord ymm0,ymm0,ymm0 + vmovdqa64 ymm3,ymm0 + vmovdqa64 ymm4,ymm0 + vmovdqa64 ymm5,ymm0 + vmovdqa64 ymm6,ymm0 + vmovdqa64 ymm7,ymm0 + vmovdqa64 ymm8,ymm0 + vmovdqa64 ymm9,ymm0 + vmovdqa64 ymm10,ymm0 + + xor r9d,r9d + + mov r11,rdx + mov rax,0xfffffffffffff + + + mov ebx,7 + +ALIGN 32 +$L$loop7: + mov r13,QWORD[r11] + + vpbroadcastq ymm1,r13 + mov rdx,QWORD[rsi] + mulx r12,r13,r13 + add r9,r13 + mov r10,r12 + adc r10,0 + + mov r13,r8 + imul r13,r9 + and r13,rax + + vpbroadcastq ymm2,r13 + mov rdx,QWORD[rcx] + mulx r12,r13,r13 + add r9,r13 + adc r10,r12 + + shr r9,52 + sal r10,12 + or r9,r10 + + vpmadd52luq ymm3,ymm1,YMMWORD[rsi] + vpmadd52luq ymm4,ymm1,YMMWORD[32+rsi] + vpmadd52luq ymm5,ymm1,YMMWORD[64+rsi] + vpmadd52luq ymm6,ymm1,YMMWORD[96+rsi] + vpmadd52luq ymm7,ymm1,YMMWORD[128+rsi] + vpmadd52luq ymm8,ymm1,YMMWORD[160+rsi] + vpmadd52luq ymm9,ymm1,YMMWORD[192+rsi] + vpmadd52luq ymm10,ymm1,YMMWORD[224+rsi] + + vpmadd52luq ymm3,ymm2,YMMWORD[rcx] + vpmadd52luq ymm4,ymm2,YMMWORD[32+rcx] + vpmadd52luq ymm5,ymm2,YMMWORD[64+rcx] + vpmadd52luq ymm6,ymm2,YMMWORD[96+rcx] + vpmadd52luq ymm7,ymm2,YMMWORD[128+rcx] + vpmadd52luq ymm8,ymm2,YMMWORD[160+rcx] + vpmadd52luq ymm9,ymm2,YMMWORD[192+rcx] + vpmadd52luq ymm10,ymm2,YMMWORD[224+rcx] + + + valignq ymm3,ymm4,ymm3,1 + valignq ymm4,ymm5,ymm4,1 + valignq ymm5,ymm6,ymm5,1 + valignq ymm6,ymm7,ymm6,1 + valignq ymm7,ymm8,ymm7,1 + valignq ymm8,ymm9,ymm8,1 + valignq ymm9,ymm10,ymm9,1 + valignq ymm10,ymm0,ymm10,1 + + vmovq r13,xmm3 + add r9,r13 + + vpmadd52huq ymm3,ymm1,YMMWORD[rsi] + vpmadd52huq ymm4,ymm1,YMMWORD[32+rsi] + vpmadd52huq ymm5,ymm1,YMMWORD[64+rsi] + vpmadd52huq ymm6,ymm1,YMMWORD[96+rsi] + vpmadd52huq ymm7,ymm1,YMMWORD[128+rsi] + vpmadd52huq ymm8,ymm1,YMMWORD[160+rsi] + vpmadd52huq ymm9,ymm1,YMMWORD[192+rsi] + vpmadd52huq ymm10,ymm1,YMMWORD[224+rsi] + + vpmadd52huq ymm3,ymm2,YMMWORD[rcx] + vpmadd52huq ymm4,ymm2,YMMWORD[32+rcx] + vpmadd52huq ymm5,ymm2,YMMWORD[64+rcx] + vpmadd52huq ymm6,ymm2,YMMWORD[96+rcx] + vpmadd52huq ymm7,ymm2,YMMWORD[128+rcx] + vpmadd52huq ymm8,ymm2,YMMWORD[160+rcx] + vpmadd52huq ymm9,ymm2,YMMWORD[192+rcx] + vpmadd52huq ymm10,ymm2,YMMWORD[224+rcx] + mov r13,QWORD[8+r11] + + vpbroadcastq ymm1,r13 + mov rdx,QWORD[rsi] + mulx r12,r13,r13 + add r9,r13 + mov r10,r12 + adc r10,0 + + mov r13,r8 + imul r13,r9 + and r13,rax + + vpbroadcastq ymm2,r13 + mov rdx,QWORD[rcx] + mulx r12,r13,r13 + add r9,r13 + adc r10,r12 + + shr r9,52 + sal r10,12 + or r9,r10 + + vpmadd52luq ymm3,ymm1,YMMWORD[rsi] + vpmadd52luq ymm4,ymm1,YMMWORD[32+rsi] + vpmadd52luq ymm5,ymm1,YMMWORD[64+rsi] + vpmadd52luq ymm6,ymm1,YMMWORD[96+rsi] + vpmadd52luq ymm7,ymm1,YMMWORD[128+rsi] + vpmadd52luq ymm8,ymm1,YMMWORD[160+rsi] + vpmadd52luq ymm9,ymm1,YMMWORD[192+rsi] + vpmadd52luq ymm10,ymm1,YMMWORD[224+rsi] + + vpmadd52luq ymm3,ymm2,YMMWORD[rcx] + vpmadd52luq ymm4,ymm2,YMMWORD[32+rcx] + vpmadd52luq ymm5,ymm2,YMMWORD[64+rcx] + vpmadd52luq ymm6,ymm2,YMMWORD[96+rcx] + vpmadd52luq ymm7,ymm2,YMMWORD[128+rcx] + vpmadd52luq ymm8,ymm2,YMMWORD[160+rcx] + vpmadd52luq ymm9,ymm2,YMMWORD[192+rcx] + vpmadd52luq ymm10,ymm2,YMMWORD[224+rcx] + + + valignq ymm3,ymm4,ymm3,1 + valignq ymm4,ymm5,ymm4,1 + valignq ymm5,ymm6,ymm5,1 + valignq ymm6,ymm7,ymm6,1 + valignq ymm7,ymm8,ymm7,1 + valignq ymm8,ymm9,ymm8,1 + valignq ymm9,ymm10,ymm9,1 + valignq ymm10,ymm0,ymm10,1 + + vmovq r13,xmm3 + add r9,r13 + + vpmadd52huq ymm3,ymm1,YMMWORD[rsi] + vpmadd52huq ymm4,ymm1,YMMWORD[32+rsi] + vpmadd52huq ymm5,ymm1,YMMWORD[64+rsi] + vpmadd52huq ymm6,ymm1,YMMWORD[96+rsi] + vpmadd52huq ymm7,ymm1,YMMWORD[128+rsi] + vpmadd52huq ymm8,ymm1,YMMWORD[160+rsi] + vpmadd52huq ymm9,ymm1,YMMWORD[192+rsi] + vpmadd52huq ymm10,ymm1,YMMWORD[224+rsi] + + vpmadd52huq ymm3,ymm2,YMMWORD[rcx] + vpmadd52huq ymm4,ymm2,YMMWORD[32+rcx] + vpmadd52huq ymm5,ymm2,YMMWORD[64+rcx] + vpmadd52huq ymm6,ymm2,YMMWORD[96+rcx] + vpmadd52huq ymm7,ymm2,YMMWORD[128+rcx] + vpmadd52huq ymm8,ymm2,YMMWORD[160+rcx] + vpmadd52huq ymm9,ymm2,YMMWORD[192+rcx] + vpmadd52huq ymm10,ymm2,YMMWORD[224+rcx] + mov r13,QWORD[16+r11] + + vpbroadcastq ymm1,r13 + mov rdx,QWORD[rsi] + mulx r12,r13,r13 + add r9,r13 + mov r10,r12 + adc r10,0 + + mov r13,r8 + imul r13,r9 + and r13,rax + + vpbroadcastq ymm2,r13 + mov rdx,QWORD[rcx] + mulx r12,r13,r13 + add r9,r13 + adc r10,r12 + + shr r9,52 + sal r10,12 + or r9,r10 + + vpmadd52luq ymm3,ymm1,YMMWORD[rsi] + vpmadd52luq ymm4,ymm1,YMMWORD[32+rsi] + vpmadd52luq ymm5,ymm1,YMMWORD[64+rsi] + vpmadd52luq ymm6,ymm1,YMMWORD[96+rsi] + vpmadd52luq ymm7,ymm1,YMMWORD[128+rsi] + vpmadd52luq ymm8,ymm1,YMMWORD[160+rsi] + vpmadd52luq ymm9,ymm1,YMMWORD[192+rsi] + vpmadd52luq ymm10,ymm1,YMMWORD[224+rsi] + + vpmadd52luq ymm3,ymm2,YMMWORD[rcx] + vpmadd52luq ymm4,ymm2,YMMWORD[32+rcx] + vpmadd52luq ymm5,ymm2,YMMWORD[64+rcx] + vpmadd52luq ymm6,ymm2,YMMWORD[96+rcx] + vpmadd52luq ymm7,ymm2,YMMWORD[128+rcx] + vpmadd52luq ymm8,ymm2,YMMWORD[160+rcx] + vpmadd52luq ymm9,ymm2,YMMWORD[192+rcx] + vpmadd52luq ymm10,ymm2,YMMWORD[224+rcx] + + + valignq ymm3,ymm4,ymm3,1 + valignq ymm4,ymm5,ymm4,1 + valignq ymm5,ymm6,ymm5,1 + valignq ymm6,ymm7,ymm6,1 + valignq ymm7,ymm8,ymm7,1 + valignq ymm8,ymm9,ymm8,1 + valignq ymm9,ymm10,ymm9,1 + valignq ymm10,ymm0,ymm10,1 + + vmovq r13,xmm3 + add r9,r13 + + vpmadd52huq ymm3,ymm1,YMMWORD[rsi] + vpmadd52huq ymm4,ymm1,YMMWORD[32+rsi] + vpmadd52huq ymm5,ymm1,YMMWORD[64+rsi] + vpmadd52huq ymm6,ymm1,YMMWORD[96+rsi] + vpmadd52huq ymm7,ymm1,YMMWORD[128+rsi] + vpmadd52huq ymm8,ymm1,YMMWORD[160+rsi] + vpmadd52huq ymm9,ymm1,YMMWORD[192+rsi] + vpmadd52huq ymm10,ymm1,YMMWORD[224+rsi] + + vpmadd52huq ymm3,ymm2,YMMWORD[rcx] + vpmadd52huq ymm4,ymm2,YMMWORD[32+rcx] + vpmadd52huq ymm5,ymm2,YMMWORD[64+rcx] + vpmadd52huq ymm6,ymm2,YMMWORD[96+rcx] + vpmadd52huq ymm7,ymm2,YMMWORD[128+rcx] + vpmadd52huq ymm8,ymm2,YMMWORD[160+rcx] + vpmadd52huq ymm9,ymm2,YMMWORD[192+rcx] + vpmadd52huq ymm10,ymm2,YMMWORD[224+rcx] + mov r13,QWORD[24+r11] + + vpbroadcastq ymm1,r13 + mov rdx,QWORD[rsi] + mulx r12,r13,r13 + add r9,r13 + mov r10,r12 + adc r10,0 + + mov r13,r8 + imul r13,r9 + and r13,rax + + vpbroadcastq ymm2,r13 + mov rdx,QWORD[rcx] + mulx r12,r13,r13 + add r9,r13 + adc r10,r12 + + shr r9,52 + sal r10,12 + or r9,r10 + + vpmadd52luq ymm3,ymm1,YMMWORD[rsi] + vpmadd52luq ymm4,ymm1,YMMWORD[32+rsi] + vpmadd52luq ymm5,ymm1,YMMWORD[64+rsi] + vpmadd52luq ymm6,ymm1,YMMWORD[96+rsi] + vpmadd52luq ymm7,ymm1,YMMWORD[128+rsi] + vpmadd52luq ymm8,ymm1,YMMWORD[160+rsi] + vpmadd52luq ymm9,ymm1,YMMWORD[192+rsi] + vpmadd52luq ymm10,ymm1,YMMWORD[224+rsi] + + vpmadd52luq ymm3,ymm2,YMMWORD[rcx] + vpmadd52luq ymm4,ymm2,YMMWORD[32+rcx] + vpmadd52luq ymm5,ymm2,YMMWORD[64+rcx] + vpmadd52luq ymm6,ymm2,YMMWORD[96+rcx] + vpmadd52luq ymm7,ymm2,YMMWORD[128+rcx] + vpmadd52luq ymm8,ymm2,YMMWORD[160+rcx] + vpmadd52luq ymm9,ymm2,YMMWORD[192+rcx] + vpmadd52luq ymm10,ymm2,YMMWORD[224+rcx] + + + valignq ymm3,ymm4,ymm3,1 + valignq ymm4,ymm5,ymm4,1 + valignq ymm5,ymm6,ymm5,1 + valignq ymm6,ymm7,ymm6,1 + valignq ymm7,ymm8,ymm7,1 + valignq ymm8,ymm9,ymm8,1 + valignq ymm9,ymm10,ymm9,1 + valignq ymm10,ymm0,ymm10,1 + + vmovq r13,xmm3 + add r9,r13 + + vpmadd52huq ymm3,ymm1,YMMWORD[rsi] + vpmadd52huq ymm4,ymm1,YMMWORD[32+rsi] + vpmadd52huq ymm5,ymm1,YMMWORD[64+rsi] + vpmadd52huq ymm6,ymm1,YMMWORD[96+rsi] + vpmadd52huq ymm7,ymm1,YMMWORD[128+rsi] + vpmadd52huq ymm8,ymm1,YMMWORD[160+rsi] + vpmadd52huq ymm9,ymm1,YMMWORD[192+rsi] + vpmadd52huq ymm10,ymm1,YMMWORD[224+rsi] + + vpmadd52huq ymm3,ymm2,YMMWORD[rcx] + vpmadd52huq ymm4,ymm2,YMMWORD[32+rcx] + vpmadd52huq ymm5,ymm2,YMMWORD[64+rcx] + vpmadd52huq ymm6,ymm2,YMMWORD[96+rcx] + vpmadd52huq ymm7,ymm2,YMMWORD[128+rcx] + vpmadd52huq ymm8,ymm2,YMMWORD[160+rcx] + vpmadd52huq ymm9,ymm2,YMMWORD[192+rcx] + vpmadd52huq ymm10,ymm2,YMMWORD[224+rcx] + lea r11,[32+r11] + dec ebx + jne NEAR $L$loop7 + mov r13,QWORD[r11] + + vpbroadcastq ymm1,r13 + mov rdx,QWORD[rsi] + mulx r12,r13,r13 + add r9,r13 + mov r10,r12 + adc r10,0 + + mov r13,r8 + imul r13,r9 + and r13,rax + + vpbroadcastq ymm2,r13 + mov rdx,QWORD[rcx] + mulx r12,r13,r13 + add r9,r13 + adc r10,r12 + + shr r9,52 + sal r10,12 + or r9,r10 + + vpmadd52luq ymm3,ymm1,YMMWORD[rsi] + vpmadd52luq ymm4,ymm1,YMMWORD[32+rsi] + vpmadd52luq ymm5,ymm1,YMMWORD[64+rsi] + vpmadd52luq ymm6,ymm1,YMMWORD[96+rsi] + vpmadd52luq ymm7,ymm1,YMMWORD[128+rsi] + vpmadd52luq ymm8,ymm1,YMMWORD[160+rsi] + vpmadd52luq ymm9,ymm1,YMMWORD[192+rsi] + vpmadd52luq ymm10,ymm1,YMMWORD[224+rsi] + + vpmadd52luq ymm3,ymm2,YMMWORD[rcx] + vpmadd52luq ymm4,ymm2,YMMWORD[32+rcx] + vpmadd52luq ymm5,ymm2,YMMWORD[64+rcx] + vpmadd52luq ymm6,ymm2,YMMWORD[96+rcx] + vpmadd52luq ymm7,ymm2,YMMWORD[128+rcx] + vpmadd52luq ymm8,ymm2,YMMWORD[160+rcx] + vpmadd52luq ymm9,ymm2,YMMWORD[192+rcx] + vpmadd52luq ymm10,ymm2,YMMWORD[224+rcx] + + + valignq ymm3,ymm4,ymm3,1 + valignq ymm4,ymm5,ymm4,1 + valignq ymm5,ymm6,ymm5,1 + valignq ymm6,ymm7,ymm6,1 + valignq ymm7,ymm8,ymm7,1 + valignq ymm8,ymm9,ymm8,1 + valignq ymm9,ymm10,ymm9,1 + valignq ymm10,ymm0,ymm10,1 + + vmovq r13,xmm3 + add r9,r13 + + vpmadd52huq ymm3,ymm1,YMMWORD[rsi] + vpmadd52huq ymm4,ymm1,YMMWORD[32+rsi] + vpmadd52huq ymm5,ymm1,YMMWORD[64+rsi] + vpmadd52huq ymm6,ymm1,YMMWORD[96+rsi] + vpmadd52huq ymm7,ymm1,YMMWORD[128+rsi] + vpmadd52huq ymm8,ymm1,YMMWORD[160+rsi] + vpmadd52huq ymm9,ymm1,YMMWORD[192+rsi] + vpmadd52huq ymm10,ymm1,YMMWORD[224+rsi] + + vpmadd52huq ymm3,ymm2,YMMWORD[rcx] + vpmadd52huq ymm4,ymm2,YMMWORD[32+rcx] + vpmadd52huq ymm5,ymm2,YMMWORD[64+rcx] + vpmadd52huq ymm6,ymm2,YMMWORD[96+rcx] + vpmadd52huq ymm7,ymm2,YMMWORD[128+rcx] + vpmadd52huq ymm8,ymm2,YMMWORD[160+rcx] + vpmadd52huq ymm9,ymm2,YMMWORD[192+rcx] + vpmadd52huq ymm10,ymm2,YMMWORD[224+rcx] + mov r13,QWORD[8+r11] + + vpbroadcastq ymm1,r13 + mov rdx,QWORD[rsi] + mulx r12,r13,r13 + add r9,r13 + mov r10,r12 + adc r10,0 + + mov r13,r8 + imul r13,r9 + and r13,rax + + vpbroadcastq ymm2,r13 + mov rdx,QWORD[rcx] + mulx r12,r13,r13 + add r9,r13 + adc r10,r12 + + shr r9,52 + sal r10,12 + or r9,r10 + + vpmadd52luq ymm3,ymm1,YMMWORD[rsi] + vpmadd52luq ymm4,ymm1,YMMWORD[32+rsi] + vpmadd52luq ymm5,ymm1,YMMWORD[64+rsi] + vpmadd52luq ymm6,ymm1,YMMWORD[96+rsi] + vpmadd52luq ymm7,ymm1,YMMWORD[128+rsi] + vpmadd52luq ymm8,ymm1,YMMWORD[160+rsi] + vpmadd52luq ymm9,ymm1,YMMWORD[192+rsi] + vpmadd52luq ymm10,ymm1,YMMWORD[224+rsi] + + vpmadd52luq ymm3,ymm2,YMMWORD[rcx] + vpmadd52luq ymm4,ymm2,YMMWORD[32+rcx] + vpmadd52luq ymm5,ymm2,YMMWORD[64+rcx] + vpmadd52luq ymm6,ymm2,YMMWORD[96+rcx] + vpmadd52luq ymm7,ymm2,YMMWORD[128+rcx] + vpmadd52luq ymm8,ymm2,YMMWORD[160+rcx] + vpmadd52luq ymm9,ymm2,YMMWORD[192+rcx] + vpmadd52luq ymm10,ymm2,YMMWORD[224+rcx] + + + valignq ymm3,ymm4,ymm3,1 + valignq ymm4,ymm5,ymm4,1 + valignq ymm5,ymm6,ymm5,1 + valignq ymm6,ymm7,ymm6,1 + valignq ymm7,ymm8,ymm7,1 + valignq ymm8,ymm9,ymm8,1 + valignq ymm9,ymm10,ymm9,1 + valignq ymm10,ymm0,ymm10,1 + + vmovq r13,xmm3 + add r9,r13 + + vpmadd52huq ymm3,ymm1,YMMWORD[rsi] + vpmadd52huq ymm4,ymm1,YMMWORD[32+rsi] + vpmadd52huq ymm5,ymm1,YMMWORD[64+rsi] + vpmadd52huq ymm6,ymm1,YMMWORD[96+rsi] + vpmadd52huq ymm7,ymm1,YMMWORD[128+rsi] + vpmadd52huq ymm8,ymm1,YMMWORD[160+rsi] + vpmadd52huq ymm9,ymm1,YMMWORD[192+rsi] + vpmadd52huq ymm10,ymm1,YMMWORD[224+rsi] + + vpmadd52huq ymm3,ymm2,YMMWORD[rcx] + vpmadd52huq ymm4,ymm2,YMMWORD[32+rcx] + vpmadd52huq ymm5,ymm2,YMMWORD[64+rcx] + vpmadd52huq ymm6,ymm2,YMMWORD[96+rcx] + vpmadd52huq ymm7,ymm2,YMMWORD[128+rcx] + vpmadd52huq ymm8,ymm2,YMMWORD[160+rcx] + vpmadd52huq ymm9,ymm2,YMMWORD[192+rcx] + vpmadd52huq ymm10,ymm2,YMMWORD[224+rcx] + + vpbroadcastq ymm0,r9 + vpblendd ymm3,ymm3,ymm0,3 + + + + vpsrlq ymm0,ymm3,52 + vpsrlq ymm1,ymm4,52 + vpsrlq ymm2,ymm5,52 + vpsrlq ymm19,ymm6,52 + vpsrlq ymm20,ymm7,52 + vpsrlq ymm21,ymm8,52 + vpsrlq ymm22,ymm9,52 + vpsrlq ymm23,ymm10,52 + + + valignq ymm23,ymm23,ymm22,3 + valignq ymm22,ymm22,ymm21,3 + valignq ymm21,ymm21,ymm20,3 + valignq ymm20,ymm20,ymm19,3 + valignq ymm19,ymm19,ymm2,3 + valignq ymm2,ymm2,ymm1,3 + valignq ymm1,ymm1,ymm0,3 + valignq ymm0,ymm0,YMMWORD[$L$zeros],3 + + + vpandq ymm3,ymm3,YMMWORD[$L$mask52x4] + vpandq ymm4,ymm4,YMMWORD[$L$mask52x4] + vpandq ymm5,ymm5,YMMWORD[$L$mask52x4] + vpandq ymm6,ymm6,YMMWORD[$L$mask52x4] + vpandq ymm7,ymm7,YMMWORD[$L$mask52x4] + vpandq ymm8,ymm8,YMMWORD[$L$mask52x4] + vpandq ymm9,ymm9,YMMWORD[$L$mask52x4] + vpandq ymm10,ymm10,YMMWORD[$L$mask52x4] + + + vpaddq ymm3,ymm3,ymm0 + vpaddq ymm4,ymm4,ymm1 + vpaddq ymm5,ymm5,ymm2 + vpaddq ymm6,ymm6,ymm19 + vpaddq ymm7,ymm7,ymm20 + vpaddq ymm8,ymm8,ymm21 + vpaddq ymm9,ymm9,ymm22 + vpaddq ymm10,ymm10,ymm23 + + + + vpcmpuq k1,ymm3,YMMWORD[$L$mask52x4],6 + vpcmpuq k2,ymm4,YMMWORD[$L$mask52x4],6 + kmovb r14d,k1 + kmovb r13d,k2 + shl r13b,4 + or r14b,r13b + + vpcmpuq k1,ymm5,YMMWORD[$L$mask52x4],6 + vpcmpuq k2,ymm6,YMMWORD[$L$mask52x4],6 + kmovb r13d,k1 + kmovb r12d,k2 + shl r12b,4 + or r13b,r12b + + vpcmpuq k1,ymm7,YMMWORD[$L$mask52x4],6 + vpcmpuq k2,ymm8,YMMWORD[$L$mask52x4],6 + kmovb r12d,k1 + kmovb r11d,k2 + shl r11b,4 + or r12b,r11b + + vpcmpuq k1,ymm9,YMMWORD[$L$mask52x4],6 + vpcmpuq k2,ymm10,YMMWORD[$L$mask52x4],6 + kmovb r11d,k1 + kmovb r10d,k2 + shl r10b,4 + or r11b,r10b + + add r14b,r14b + adc r13b,r13b + adc r12b,r12b + adc r11b,r11b + + + vpcmpuq k1,ymm3,YMMWORD[$L$mask52x4],0 + vpcmpuq k2,ymm4,YMMWORD[$L$mask52x4],0 + kmovb r9d,k1 + kmovb r8d,k2 + shl r8b,4 + or r9b,r8b + + vpcmpuq k1,ymm5,YMMWORD[$L$mask52x4],0 + vpcmpuq k2,ymm6,YMMWORD[$L$mask52x4],0 + kmovb r8d,k1 + kmovb edx,k2 + shl dl,4 + or r8b,dl + + vpcmpuq k1,ymm7,YMMWORD[$L$mask52x4],0 + vpcmpuq k2,ymm8,YMMWORD[$L$mask52x4],0 + kmovb edx,k1 + kmovb ecx,k2 + shl cl,4 + or dl,cl + + vpcmpuq k1,ymm9,YMMWORD[$L$mask52x4],0 + vpcmpuq k2,ymm10,YMMWORD[$L$mask52x4],0 + kmovb ecx,k1 + kmovb ebx,k2 + shl bl,4 + or cl,bl + + add r14b,r9b + adc r13b,r8b + adc r12b,dl + adc r11b,cl + + xor r14b,r9b + xor r13b,r8b + xor r12b,dl + xor r11b,cl + + kmovb k1,r14d + shr r14b,4 + kmovb k2,r14d + kmovb k3,r13d + shr r13b,4 + kmovb k4,r13d + kmovb k5,r12d + shr r12b,4 + kmovb k6,r12d + kmovb k7,r11d + + vpsubq ymm3{k1},ymm3,YMMWORD[$L$mask52x4] + vpsubq ymm4{k2},ymm4,YMMWORD[$L$mask52x4] + vpsubq ymm5{k3},ymm5,YMMWORD[$L$mask52x4] + vpsubq ymm6{k4},ymm6,YMMWORD[$L$mask52x4] + vpsubq ymm7{k5},ymm7,YMMWORD[$L$mask52x4] + vpsubq ymm8{k6},ymm8,YMMWORD[$L$mask52x4] + vpsubq ymm9{k7},ymm9,YMMWORD[$L$mask52x4] + + vpandq ymm3,ymm3,YMMWORD[$L$mask52x4] + vpandq ymm4,ymm4,YMMWORD[$L$mask52x4] + vpandq ymm5,ymm5,YMMWORD[$L$mask52x4] + vpandq ymm6,ymm6,YMMWORD[$L$mask52x4] + vpandq ymm7,ymm7,YMMWORD[$L$mask52x4] + vpandq ymm8,ymm8,YMMWORD[$L$mask52x4] + vpandq ymm9,ymm9,YMMWORD[$L$mask52x4] + + shr r11b,4 + kmovb k1,r11d + + vpsubq ymm10{k1},ymm10,YMMWORD[$L$mask52x4] + + vpandq ymm10,ymm10,YMMWORD[$L$mask52x4] + + vmovdqu64 YMMWORD[rdi],ymm3 + vmovdqu64 YMMWORD[32+rdi],ymm4 + vmovdqu64 YMMWORD[64+rdi],ymm5 + vmovdqu64 YMMWORD[96+rdi],ymm6 + vmovdqu64 YMMWORD[128+rdi],ymm7 + vmovdqu64 YMMWORD[160+rdi],ymm8 + vmovdqu64 YMMWORD[192+rdi],ymm9 + vmovdqu64 YMMWORD[224+rdi],ymm10 + + vzeroupper + lea rax,[rsp] + + vmovdqa64 xmm6,XMMWORD[rax] + vmovdqa64 xmm7,XMMWORD[16+rax] + vmovdqa64 xmm8,XMMWORD[32+rax] + vmovdqa64 xmm9,XMMWORD[48+rax] + vmovdqa64 xmm10,XMMWORD[64+rax] + vmovdqa64 xmm11,XMMWORD[80+rax] + vmovdqa64 xmm12,XMMWORD[96+rax] + vmovdqa64 xmm13,XMMWORD[112+rax] + vmovdqa64 xmm14,XMMWORD[128+rax] + vmovdqa64 xmm15,XMMWORD[144+rax] + lea rax,[168+rsp] + mov r15,QWORD[rax] + + mov r14,QWORD[8+rax] + + mov r13,QWORD[16+rax] + + mov r12,QWORD[24+rax] + + mov rbp,QWORD[32+rax] + + mov rbx,QWORD[40+rax] + + lea rsp,[48+rax] + +$L$ossl_rsaz_amm52x30_x1_ifma256_epilogue: + mov rdi,QWORD[8+rsp] ;WIN64 epilogue + mov rsi,QWORD[16+rsp] + DB 0F3h,0C3h ;repret + +$L$SEH_end_ossl_rsaz_amm52x30_x1_ifma256: +section .rdata rdata align=32 +ALIGN 32 +$L$mask52x4: + DQ 0xfffffffffffff + DQ 0xfffffffffffff + DQ 0xfffffffffffff + DQ 0xfffffffffffff +section .text code align=64 + + +global ossl_rsaz_amm52x30_x2_ifma256 + +ALIGN 32 +ossl_rsaz_amm52x30_x2_ifma256: + mov QWORD[8+rsp],rdi ;WIN64 prologue + mov QWORD[16+rsp],rsi + mov rax,rsp +$L$SEH_begin_ossl_rsaz_amm52x30_x2_ifma256: + mov rdi,rcx + mov rsi,rdx + mov rdx,r8 + mov rcx,r9 + mov r8,QWORD[40+rsp] + + + +DB 243,15,30,250 + push rbx + + push rbp + + push r12 + + push r13 + + push r14 + + push r15 + + lea rsp,[((-168))+rsp] + vmovdqa64 XMMWORD[rsp],xmm6 + vmovdqa64 XMMWORD[16+rsp],xmm7 + vmovdqa64 XMMWORD[32+rsp],xmm8 + vmovdqa64 XMMWORD[48+rsp],xmm9 + vmovdqa64 XMMWORD[64+rsp],xmm10 + vmovdqa64 XMMWORD[80+rsp],xmm11 + vmovdqa64 XMMWORD[96+rsp],xmm12 + vmovdqa64 XMMWORD[112+rsp],xmm13 + vmovdqa64 XMMWORD[128+rsp],xmm14 + vmovdqa64 XMMWORD[144+rsp],xmm15 +$L$ossl_rsaz_amm52x30_x2_ifma256_body: + + vpxord ymm0,ymm0,ymm0 + vmovdqa64 ymm3,ymm0 + vmovdqa64 ymm4,ymm0 + vmovdqa64 ymm5,ymm0 + vmovdqa64 ymm6,ymm0 + vmovdqa64 ymm7,ymm0 + vmovdqa64 ymm8,ymm0 + vmovdqa64 ymm9,ymm0 + vmovdqa64 ymm10,ymm0 + + vmovdqa64 ymm11,ymm0 + vmovdqa64 ymm12,ymm0 + vmovdqa64 ymm13,ymm0 + vmovdqa64 ymm14,ymm0 + vmovdqa64 ymm15,ymm0 + vmovdqa64 ymm16,ymm0 + vmovdqa64 ymm17,ymm0 + vmovdqa64 ymm18,ymm0 + + + xor r9d,r9d + xor r15d,r15d + + mov r11,rdx + mov rax,0xfffffffffffff + + mov ebx,30 + +ALIGN 32 +$L$loop30: + mov r13,QWORD[r11] + + vpbroadcastq ymm1,r13 + mov rdx,QWORD[rsi] + mulx r12,r13,r13 + add r9,r13 + mov r10,r12 + adc r10,0 + + mov r13,QWORD[r8] + imul r13,r9 + and r13,rax + + vpbroadcastq ymm2,r13 + mov rdx,QWORD[rcx] + mulx r12,r13,r13 + add r9,r13 + adc r10,r12 + + shr r9,52 + sal r10,12 + or r9,r10 + + vpmadd52luq ymm3,ymm1,YMMWORD[rsi] + vpmadd52luq ymm4,ymm1,YMMWORD[32+rsi] + vpmadd52luq ymm5,ymm1,YMMWORD[64+rsi] + vpmadd52luq ymm6,ymm1,YMMWORD[96+rsi] + vpmadd52luq ymm7,ymm1,YMMWORD[128+rsi] + vpmadd52luq ymm8,ymm1,YMMWORD[160+rsi] + vpmadd52luq ymm9,ymm1,YMMWORD[192+rsi] + vpmadd52luq ymm10,ymm1,YMMWORD[224+rsi] + + vpmadd52luq ymm3,ymm2,YMMWORD[rcx] + vpmadd52luq ymm4,ymm2,YMMWORD[32+rcx] + vpmadd52luq ymm5,ymm2,YMMWORD[64+rcx] + vpmadd52luq ymm6,ymm2,YMMWORD[96+rcx] + vpmadd52luq ymm7,ymm2,YMMWORD[128+rcx] + vpmadd52luq ymm8,ymm2,YMMWORD[160+rcx] + vpmadd52luq ymm9,ymm2,YMMWORD[192+rcx] + vpmadd52luq ymm10,ymm2,YMMWORD[224+rcx] + + + valignq ymm3,ymm4,ymm3,1 + valignq ymm4,ymm5,ymm4,1 + valignq ymm5,ymm6,ymm5,1 + valignq ymm6,ymm7,ymm6,1 + valignq ymm7,ymm8,ymm7,1 + valignq ymm8,ymm9,ymm8,1 + valignq ymm9,ymm10,ymm9,1 + valignq ymm10,ymm0,ymm10,1 + + vmovq r13,xmm3 + add r9,r13 + + vpmadd52huq ymm3,ymm1,YMMWORD[rsi] + vpmadd52huq ymm4,ymm1,YMMWORD[32+rsi] + vpmadd52huq ymm5,ymm1,YMMWORD[64+rsi] + vpmadd52huq ymm6,ymm1,YMMWORD[96+rsi] + vpmadd52huq ymm7,ymm1,YMMWORD[128+rsi] + vpmadd52huq ymm8,ymm1,YMMWORD[160+rsi] + vpmadd52huq ymm9,ymm1,YMMWORD[192+rsi] + vpmadd52huq ymm10,ymm1,YMMWORD[224+rsi] + + vpmadd52huq ymm3,ymm2,YMMWORD[rcx] + vpmadd52huq ymm4,ymm2,YMMWORD[32+rcx] + vpmadd52huq ymm5,ymm2,YMMWORD[64+rcx] + vpmadd52huq ymm6,ymm2,YMMWORD[96+rcx] + vpmadd52huq ymm7,ymm2,YMMWORD[128+rcx] + vpmadd52huq ymm8,ymm2,YMMWORD[160+rcx] + vpmadd52huq ymm9,ymm2,YMMWORD[192+rcx] + vpmadd52huq ymm10,ymm2,YMMWORD[224+rcx] + mov r13,QWORD[256+r11] + + vpbroadcastq ymm1,r13 + mov rdx,QWORD[256+rsi] + mulx r12,r13,r13 + add r15,r13 + mov r10,r12 + adc r10,0 + + mov r13,QWORD[8+r8] + imul r13,r15 + and r13,rax + + vpbroadcastq ymm2,r13 + mov rdx,QWORD[256+rcx] + mulx r12,r13,r13 + add r15,r13 + adc r10,r12 + + shr r15,52 + sal r10,12 + or r15,r10 + + vpmadd52luq ymm11,ymm1,YMMWORD[256+rsi] + vpmadd52luq ymm12,ymm1,YMMWORD[288+rsi] + vpmadd52luq ymm13,ymm1,YMMWORD[320+rsi] + vpmadd52luq ymm14,ymm1,YMMWORD[352+rsi] + vpmadd52luq ymm15,ymm1,YMMWORD[384+rsi] + vpmadd52luq ymm16,ymm1,YMMWORD[416+rsi] + vpmadd52luq ymm17,ymm1,YMMWORD[448+rsi] + vpmadd52luq ymm18,ymm1,YMMWORD[480+rsi] + + vpmadd52luq ymm11,ymm2,YMMWORD[256+rcx] + vpmadd52luq ymm12,ymm2,YMMWORD[288+rcx] + vpmadd52luq ymm13,ymm2,YMMWORD[320+rcx] + vpmadd52luq ymm14,ymm2,YMMWORD[352+rcx] + vpmadd52luq ymm15,ymm2,YMMWORD[384+rcx] + vpmadd52luq ymm16,ymm2,YMMWORD[416+rcx] + vpmadd52luq ymm17,ymm2,YMMWORD[448+rcx] + vpmadd52luq ymm18,ymm2,YMMWORD[480+rcx] + + + valignq ymm11,ymm12,ymm11,1 + valignq ymm12,ymm13,ymm12,1 + valignq ymm13,ymm14,ymm13,1 + valignq ymm14,ymm15,ymm14,1 + valignq ymm15,ymm16,ymm15,1 + valignq ymm16,ymm17,ymm16,1 + valignq ymm17,ymm18,ymm17,1 + valignq ymm18,ymm0,ymm18,1 + + vmovq r13,xmm11 + add r15,r13 + + vpmadd52huq ymm11,ymm1,YMMWORD[256+rsi] + vpmadd52huq ymm12,ymm1,YMMWORD[288+rsi] + vpmadd52huq ymm13,ymm1,YMMWORD[320+rsi] + vpmadd52huq ymm14,ymm1,YMMWORD[352+rsi] + vpmadd52huq ymm15,ymm1,YMMWORD[384+rsi] + vpmadd52huq ymm16,ymm1,YMMWORD[416+rsi] + vpmadd52huq ymm17,ymm1,YMMWORD[448+rsi] + vpmadd52huq ymm18,ymm1,YMMWORD[480+rsi] + + vpmadd52huq ymm11,ymm2,YMMWORD[256+rcx] + vpmadd52huq ymm12,ymm2,YMMWORD[288+rcx] + vpmadd52huq ymm13,ymm2,YMMWORD[320+rcx] + vpmadd52huq ymm14,ymm2,YMMWORD[352+rcx] + vpmadd52huq ymm15,ymm2,YMMWORD[384+rcx] + vpmadd52huq ymm16,ymm2,YMMWORD[416+rcx] + vpmadd52huq ymm17,ymm2,YMMWORD[448+rcx] + vpmadd52huq ymm18,ymm2,YMMWORD[480+rcx] + lea r11,[8+r11] + dec ebx + jne NEAR $L$loop30 + + vpbroadcastq ymm0,r9 + vpblendd ymm3,ymm3,ymm0,3 + + + + vpsrlq ymm0,ymm3,52 + vpsrlq ymm1,ymm4,52 + vpsrlq ymm2,ymm5,52 + vpsrlq ymm19,ymm6,52 + vpsrlq ymm20,ymm7,52 + vpsrlq ymm21,ymm8,52 + vpsrlq ymm22,ymm9,52 + vpsrlq ymm23,ymm10,52 + + + valignq ymm23,ymm23,ymm22,3 + valignq ymm22,ymm22,ymm21,3 + valignq ymm21,ymm21,ymm20,3 + valignq ymm20,ymm20,ymm19,3 + valignq ymm19,ymm19,ymm2,3 + valignq ymm2,ymm2,ymm1,3 + valignq ymm1,ymm1,ymm0,3 + valignq ymm0,ymm0,YMMWORD[$L$zeros],3 + + + vpandq ymm3,ymm3,YMMWORD[$L$mask52x4] + vpandq ymm4,ymm4,YMMWORD[$L$mask52x4] + vpandq ymm5,ymm5,YMMWORD[$L$mask52x4] + vpandq ymm6,ymm6,YMMWORD[$L$mask52x4] + vpandq ymm7,ymm7,YMMWORD[$L$mask52x4] + vpandq ymm8,ymm8,YMMWORD[$L$mask52x4] + vpandq ymm9,ymm9,YMMWORD[$L$mask52x4] + vpandq ymm10,ymm10,YMMWORD[$L$mask52x4] + + + vpaddq ymm3,ymm3,ymm0 + vpaddq ymm4,ymm4,ymm1 + vpaddq ymm5,ymm5,ymm2 + vpaddq ymm6,ymm6,ymm19 + vpaddq ymm7,ymm7,ymm20 + vpaddq ymm8,ymm8,ymm21 + vpaddq ymm9,ymm9,ymm22 + vpaddq ymm10,ymm10,ymm23 + + + + vpcmpuq k1,ymm3,YMMWORD[$L$mask52x4],6 + vpcmpuq k2,ymm4,YMMWORD[$L$mask52x4],6 + kmovb r14d,k1 + kmovb r13d,k2 + shl r13b,4 + or r14b,r13b + + vpcmpuq k1,ymm5,YMMWORD[$L$mask52x4],6 + vpcmpuq k2,ymm6,YMMWORD[$L$mask52x4],6 + kmovb r13d,k1 + kmovb r12d,k2 + shl r12b,4 + or r13b,r12b + + vpcmpuq k1,ymm7,YMMWORD[$L$mask52x4],6 + vpcmpuq k2,ymm8,YMMWORD[$L$mask52x4],6 + kmovb r12d,k1 + kmovb r11d,k2 + shl r11b,4 + or r12b,r11b + + vpcmpuq k1,ymm9,YMMWORD[$L$mask52x4],6 + vpcmpuq k2,ymm10,YMMWORD[$L$mask52x4],6 + kmovb r11d,k1 + kmovb r10d,k2 + shl r10b,4 + or r11b,r10b + + add r14b,r14b + adc r13b,r13b + adc r12b,r12b + adc r11b,r11b + + + vpcmpuq k1,ymm3,YMMWORD[$L$mask52x4],0 + vpcmpuq k2,ymm4,YMMWORD[$L$mask52x4],0 + kmovb r9d,k1 + kmovb r8d,k2 + shl r8b,4 + or r9b,r8b + + vpcmpuq k1,ymm5,YMMWORD[$L$mask52x4],0 + vpcmpuq k2,ymm6,YMMWORD[$L$mask52x4],0 + kmovb r8d,k1 + kmovb edx,k2 + shl dl,4 + or r8b,dl + + vpcmpuq k1,ymm7,YMMWORD[$L$mask52x4],0 + vpcmpuq k2,ymm8,YMMWORD[$L$mask52x4],0 + kmovb edx,k1 + kmovb ecx,k2 + shl cl,4 + or dl,cl + + vpcmpuq k1,ymm9,YMMWORD[$L$mask52x4],0 + vpcmpuq k2,ymm10,YMMWORD[$L$mask52x4],0 + kmovb ecx,k1 + kmovb ebx,k2 + shl bl,4 + or cl,bl + + add r14b,r9b + adc r13b,r8b + adc r12b,dl + adc r11b,cl + + xor r14b,r9b + xor r13b,r8b + xor r12b,dl + xor r11b,cl + + kmovb k1,r14d + shr r14b,4 + kmovb k2,r14d + kmovb k3,r13d + shr r13b,4 + kmovb k4,r13d + kmovb k5,r12d + shr r12b,4 + kmovb k6,r12d + kmovb k7,r11d + + vpsubq ymm3{k1},ymm3,YMMWORD[$L$mask52x4] + vpsubq ymm4{k2},ymm4,YMMWORD[$L$mask52x4] + vpsubq ymm5{k3},ymm5,YMMWORD[$L$mask52x4] + vpsubq ymm6{k4},ymm6,YMMWORD[$L$mask52x4] + vpsubq ymm7{k5},ymm7,YMMWORD[$L$mask52x4] + vpsubq ymm8{k6},ymm8,YMMWORD[$L$mask52x4] + vpsubq ymm9{k7},ymm9,YMMWORD[$L$mask52x4] + + vpandq ymm3,ymm3,YMMWORD[$L$mask52x4] + vpandq ymm4,ymm4,YMMWORD[$L$mask52x4] + vpandq ymm5,ymm5,YMMWORD[$L$mask52x4] + vpandq ymm6,ymm6,YMMWORD[$L$mask52x4] + vpandq ymm7,ymm7,YMMWORD[$L$mask52x4] + vpandq ymm8,ymm8,YMMWORD[$L$mask52x4] + vpandq ymm9,ymm9,YMMWORD[$L$mask52x4] + + shr r11b,4 + kmovb k1,r11d + + vpsubq ymm10{k1},ymm10,YMMWORD[$L$mask52x4] + + vpandq ymm10,ymm10,YMMWORD[$L$mask52x4] + + vpbroadcastq ymm0,r15 + vpblendd ymm11,ymm11,ymm0,3 + + + + vpsrlq ymm0,ymm11,52 + vpsrlq ymm1,ymm12,52 + vpsrlq ymm2,ymm13,52 + vpsrlq ymm19,ymm14,52 + vpsrlq ymm20,ymm15,52 + vpsrlq ymm21,ymm16,52 + vpsrlq ymm22,ymm17,52 + vpsrlq ymm23,ymm18,52 + + + valignq ymm23,ymm23,ymm22,3 + valignq ymm22,ymm22,ymm21,3 + valignq ymm21,ymm21,ymm20,3 + valignq ymm20,ymm20,ymm19,3 + valignq ymm19,ymm19,ymm2,3 + valignq ymm2,ymm2,ymm1,3 + valignq ymm1,ymm1,ymm0,3 + valignq ymm0,ymm0,YMMWORD[$L$zeros],3 + + + vpandq ymm11,ymm11,YMMWORD[$L$mask52x4] + vpandq ymm12,ymm12,YMMWORD[$L$mask52x4] + vpandq ymm13,ymm13,YMMWORD[$L$mask52x4] + vpandq ymm14,ymm14,YMMWORD[$L$mask52x4] + vpandq ymm15,ymm15,YMMWORD[$L$mask52x4] + vpandq ymm16,ymm16,YMMWORD[$L$mask52x4] + vpandq ymm17,ymm17,YMMWORD[$L$mask52x4] + vpandq ymm18,ymm18,YMMWORD[$L$mask52x4] + + + vpaddq ymm11,ymm11,ymm0 + vpaddq ymm12,ymm12,ymm1 + vpaddq ymm13,ymm13,ymm2 + vpaddq ymm14,ymm14,ymm19 + vpaddq ymm15,ymm15,ymm20 + vpaddq ymm16,ymm16,ymm21 + vpaddq ymm17,ymm17,ymm22 + vpaddq ymm18,ymm18,ymm23 + + + + vpcmpuq k1,ymm11,YMMWORD[$L$mask52x4],6 + vpcmpuq k2,ymm12,YMMWORD[$L$mask52x4],6 + kmovb r14d,k1 + kmovb r13d,k2 + shl r13b,4 + or r14b,r13b + + vpcmpuq k1,ymm13,YMMWORD[$L$mask52x4],6 + vpcmpuq k2,ymm14,YMMWORD[$L$mask52x4],6 + kmovb r13d,k1 + kmovb r12d,k2 + shl r12b,4 + or r13b,r12b + + vpcmpuq k1,ymm15,YMMWORD[$L$mask52x4],6 + vpcmpuq k2,ymm16,YMMWORD[$L$mask52x4],6 + kmovb r12d,k1 + kmovb r11d,k2 + shl r11b,4 + or r12b,r11b + + vpcmpuq k1,ymm17,YMMWORD[$L$mask52x4],6 + vpcmpuq k2,ymm18,YMMWORD[$L$mask52x4],6 + kmovb r11d,k1 + kmovb r10d,k2 + shl r10b,4 + or r11b,r10b + + add r14b,r14b + adc r13b,r13b + adc r12b,r12b + adc r11b,r11b + + + vpcmpuq k1,ymm11,YMMWORD[$L$mask52x4],0 + vpcmpuq k2,ymm12,YMMWORD[$L$mask52x4],0 + kmovb r9d,k1 + kmovb r8d,k2 + shl r8b,4 + or r9b,r8b + + vpcmpuq k1,ymm13,YMMWORD[$L$mask52x4],0 + vpcmpuq k2,ymm14,YMMWORD[$L$mask52x4],0 + kmovb r8d,k1 + kmovb edx,k2 + shl dl,4 + or r8b,dl + + vpcmpuq k1,ymm15,YMMWORD[$L$mask52x4],0 + vpcmpuq k2,ymm16,YMMWORD[$L$mask52x4],0 + kmovb edx,k1 + kmovb ecx,k2 + shl cl,4 + or dl,cl + + vpcmpuq k1,ymm17,YMMWORD[$L$mask52x4],0 + vpcmpuq k2,ymm18,YMMWORD[$L$mask52x4],0 + kmovb ecx,k1 + kmovb ebx,k2 + shl bl,4 + or cl,bl + + add r14b,r9b + adc r13b,r8b + adc r12b,dl + adc r11b,cl + + xor r14b,r9b + xor r13b,r8b + xor r12b,dl + xor r11b,cl + + kmovb k1,r14d + shr r14b,4 + kmovb k2,r14d + kmovb k3,r13d + shr r13b,4 + kmovb k4,r13d + kmovb k5,r12d + shr r12b,4 + kmovb k6,r12d + kmovb k7,r11d + + vpsubq ymm11{k1},ymm11,YMMWORD[$L$mask52x4] + vpsubq ymm12{k2},ymm12,YMMWORD[$L$mask52x4] + vpsubq ymm13{k3},ymm13,YMMWORD[$L$mask52x4] + vpsubq ymm14{k4},ymm14,YMMWORD[$L$mask52x4] + vpsubq ymm15{k5},ymm15,YMMWORD[$L$mask52x4] + vpsubq ymm16{k6},ymm16,YMMWORD[$L$mask52x4] + vpsubq ymm17{k7},ymm17,YMMWORD[$L$mask52x4] + + vpandq ymm11,ymm11,YMMWORD[$L$mask52x4] + vpandq ymm12,ymm12,YMMWORD[$L$mask52x4] + vpandq ymm13,ymm13,YMMWORD[$L$mask52x4] + vpandq ymm14,ymm14,YMMWORD[$L$mask52x4] + vpandq ymm15,ymm15,YMMWORD[$L$mask52x4] + vpandq ymm16,ymm16,YMMWORD[$L$mask52x4] + vpandq ymm17,ymm17,YMMWORD[$L$mask52x4] + + shr r11b,4 + kmovb k1,r11d + + vpsubq ymm18{k1},ymm18,YMMWORD[$L$mask52x4] + + vpandq ymm18,ymm18,YMMWORD[$L$mask52x4] + + vmovdqu64 YMMWORD[rdi],ymm3 + vmovdqu64 YMMWORD[32+rdi],ymm4 + vmovdqu64 YMMWORD[64+rdi],ymm5 + vmovdqu64 YMMWORD[96+rdi],ymm6 + vmovdqu64 YMMWORD[128+rdi],ymm7 + vmovdqu64 YMMWORD[160+rdi],ymm8 + vmovdqu64 YMMWORD[192+rdi],ymm9 + vmovdqu64 YMMWORD[224+rdi],ymm10 + + vmovdqu64 YMMWORD[256+rdi],ymm11 + vmovdqu64 YMMWORD[288+rdi],ymm12 + vmovdqu64 YMMWORD[320+rdi],ymm13 + vmovdqu64 YMMWORD[352+rdi],ymm14 + vmovdqu64 YMMWORD[384+rdi],ymm15 + vmovdqu64 YMMWORD[416+rdi],ymm16 + vmovdqu64 YMMWORD[448+rdi],ymm17 + vmovdqu64 YMMWORD[480+rdi],ymm18 + + vzeroupper + lea rax,[rsp] + + vmovdqa64 xmm6,XMMWORD[rax] + vmovdqa64 xmm7,XMMWORD[16+rax] + vmovdqa64 xmm8,XMMWORD[32+rax] + vmovdqa64 xmm9,XMMWORD[48+rax] + vmovdqa64 xmm10,XMMWORD[64+rax] + vmovdqa64 xmm11,XMMWORD[80+rax] + vmovdqa64 xmm12,XMMWORD[96+rax] + vmovdqa64 xmm13,XMMWORD[112+rax] + vmovdqa64 xmm14,XMMWORD[128+rax] + vmovdqa64 xmm15,XMMWORD[144+rax] + lea rax,[168+rsp] + mov r15,QWORD[rax] + + mov r14,QWORD[8+rax] + + mov r13,QWORD[16+rax] + + mov r12,QWORD[24+rax] + + mov rbp,QWORD[32+rax] + + mov rbx,QWORD[40+rax] + + lea rsp,[48+rax] + +$L$ossl_rsaz_amm52x30_x2_ifma256_epilogue: + mov rdi,QWORD[8+rsp] ;WIN64 epilogue + mov rsi,QWORD[16+rsp] + DB 0F3h,0C3h ;repret + +$L$SEH_end_ossl_rsaz_amm52x30_x2_ifma256: +section .text code align=64 + + +ALIGN 32 +global ossl_extract_multiplier_2x30_win5 + +ossl_extract_multiplier_2x30_win5: + +DB 243,15,30,250 + vmovdqa64 ymm30,YMMWORD[$L$ones] + vpbroadcastq ymm28,r8 + vpbroadcastq ymm29,r9 + lea rax,[16384+rdx] + + + vpxor xmm0,xmm0,xmm0 + vmovdqa64 ymm27,ymm0 + vmovdqa64 ymm1,ymm0 + vmovdqa64 ymm2,ymm0 + vmovdqa64 ymm3,ymm0 + vmovdqa64 ymm4,ymm0 + vmovdqa64 ymm5,ymm0 + vmovdqa64 ymm16,ymm0 + vmovdqa64 ymm17,ymm0 + vmovdqa64 ymm18,ymm0 + vmovdqa64 ymm19,ymm0 + vmovdqa64 ymm20,ymm0 + vmovdqa64 ymm21,ymm0 + vmovdqa64 ymm22,ymm0 + vmovdqa64 ymm23,ymm0 + vmovdqa64 ymm24,ymm0 + vmovdqa64 ymm25,ymm0 + +ALIGN 32 +$L$loop: + vpcmpq k1,ymm28,ymm27,0 + vpcmpq k2,ymm29,ymm27,0 + vmovdqu64 ymm26,YMMWORD[rdx] + vpblendmq ymm0{k1},ymm0,ymm26 + vmovdqu64 ymm26,YMMWORD[32+rdx] + vpblendmq ymm1{k1},ymm1,ymm26 + vmovdqu64 ymm26,YMMWORD[64+rdx] + vpblendmq ymm2{k1},ymm2,ymm26 + vmovdqu64 ymm26,YMMWORD[96+rdx] + vpblendmq ymm3{k1},ymm3,ymm26 + vmovdqu64 ymm26,YMMWORD[128+rdx] + vpblendmq ymm4{k1},ymm4,ymm26 + vmovdqu64 ymm26,YMMWORD[160+rdx] + vpblendmq ymm5{k1},ymm5,ymm26 + vmovdqu64 ymm26,YMMWORD[192+rdx] + vpblendmq ymm16{k1},ymm16,ymm26 + vmovdqu64 ymm26,YMMWORD[224+rdx] + vpblendmq ymm17{k1},ymm17,ymm26 + vmovdqu64 ymm26,YMMWORD[256+rdx] + vpblendmq ymm18{k2},ymm18,ymm26 + vmovdqu64 ymm26,YMMWORD[288+rdx] + vpblendmq ymm19{k2},ymm19,ymm26 + vmovdqu64 ymm26,YMMWORD[320+rdx] + vpblendmq ymm20{k2},ymm20,ymm26 + vmovdqu64 ymm26,YMMWORD[352+rdx] + vpblendmq ymm21{k2},ymm21,ymm26 + vmovdqu64 ymm26,YMMWORD[384+rdx] + vpblendmq ymm22{k2},ymm22,ymm26 + vmovdqu64 ymm26,YMMWORD[416+rdx] + vpblendmq ymm23{k2},ymm23,ymm26 + vmovdqu64 ymm26,YMMWORD[448+rdx] + vpblendmq ymm24{k2},ymm24,ymm26 + vmovdqu64 ymm26,YMMWORD[480+rdx] + vpblendmq ymm25{k2},ymm25,ymm26 + vpaddq ymm27,ymm27,ymm30 + add rdx,512 + cmp rax,rdx + jne NEAR $L$loop + vmovdqu64 YMMWORD[rcx],ymm0 + vmovdqu64 YMMWORD[32+rcx],ymm1 + vmovdqu64 YMMWORD[64+rcx],ymm2 + vmovdqu64 YMMWORD[96+rcx],ymm3 + vmovdqu64 YMMWORD[128+rcx],ymm4 + vmovdqu64 YMMWORD[160+rcx],ymm5 + vmovdqu64 YMMWORD[192+rcx],ymm16 + vmovdqu64 YMMWORD[224+rcx],ymm17 + vmovdqu64 YMMWORD[256+rcx],ymm18 + vmovdqu64 YMMWORD[288+rcx],ymm19 + vmovdqu64 YMMWORD[320+rcx],ymm20 + vmovdqu64 YMMWORD[352+rcx],ymm21 + vmovdqu64 YMMWORD[384+rcx],ymm22 + vmovdqu64 YMMWORD[416+rcx],ymm23 + vmovdqu64 YMMWORD[448+rcx],ymm24 + vmovdqu64 YMMWORD[480+rcx],ymm25 + + DB 0F3h,0C3h ;repret + + +section .rdata rdata align=32 +ALIGN 32 +$L$ones: + DQ 1,1,1,1 +$L$zeros: + DQ 0,0,0,0 +EXTERN __imp_RtlVirtualUnwind + +ALIGN 16 +rsaz_avx_handler: + push rsi + push rdi + push rbx + push rbp + push r12 + push r13 + push r14 + push r15 + pushfq + sub rsp,64 + + mov rax,QWORD[120+r8] + mov rbx,QWORD[248+r8] + + mov rsi,QWORD[8+r9] + mov r11,QWORD[56+r9] + + mov r10d,DWORD[r11] + lea r10,[r10*1+rsi] + cmp rbx,r10 + jb NEAR $L$common_seh_tail + + mov r10d,DWORD[4+r11] + lea r10,[r10*1+rsi] + cmp rbx,r10 + jae NEAR $L$common_seh_tail + + mov rax,QWORD[152+r8] + + lea rsi,[rax] + lea rdi,[512+r8] + mov ecx,20 + DD 0xa548f3fc + + lea rax,[216+rax] + + mov rbx,QWORD[((-8))+rax] + mov rbp,QWORD[((-16))+rax] + mov r12,QWORD[((-24))+rax] + mov r13,QWORD[((-32))+rax] + mov r14,QWORD[((-40))+rax] + mov r15,QWORD[((-48))+rax] + mov QWORD[144+r8],rbx + mov QWORD[160+r8],rbp + mov QWORD[216+r8],r12 + mov QWORD[224+r8],r13 + mov QWORD[232+r8],r14 + mov QWORD[240+r8],r15 + +$L$common_seh_tail: + mov rdi,QWORD[8+rax] + mov rsi,QWORD[16+rax] + mov QWORD[152+r8],rax + mov QWORD[168+r8],rsi + mov QWORD[176+r8],rdi + + mov rdi,QWORD[40+r9] + mov rsi,r8 + mov ecx,154 + DD 0xa548f3fc + + mov rsi,r9 + xor rcx,rcx + mov rdx,QWORD[8+rsi] + mov r8,QWORD[rsi] + mov r9,QWORD[16+rsi] + mov r10,QWORD[40+rsi] + lea r11,[56+rsi] + lea r12,[24+rsi] + mov QWORD[32+rsp],r10 + mov QWORD[40+rsp],r11 + mov QWORD[48+rsp],r12 + mov QWORD[56+rsp],rcx + call QWORD[__imp_RtlVirtualUnwind] + + mov eax,1 + add rsp,64 + popfq + pop r15 + pop r14 + pop r13 + pop r12 + pop rbp + pop rbx + pop rdi + pop rsi + DB 0F3h,0C3h ;repret + + +section .pdata rdata align=4 +ALIGN 4 + DD $L$SEH_begin_ossl_rsaz_amm52x30_x1_ifma256 wrt ..imagebase + DD $L$SEH_end_ossl_rsaz_amm52x30_x1_ifma256 wrt ..imagebase + DD $L$SEH_info_ossl_rsaz_amm52x30_x1_ifma256 wrt ..imagebase + + DD $L$SEH_begin_ossl_rsaz_amm52x30_x2_ifma256 wrt ..imagebase + DD $L$SEH_end_ossl_rsaz_amm52x30_x2_ifma256 wrt ..imagebase + DD $L$SEH_info_ossl_rsaz_amm52x30_x2_ifma256 wrt ..imagebase + +section .xdata rdata align=8 +ALIGN 8 +$L$SEH_info_ossl_rsaz_amm52x30_x1_ifma256: +DB 9,0,0,0 + DD rsaz_avx_handler wrt ..imagebase + DD $L$ossl_rsaz_amm52x30_x1_ifma256_body wrt ..imagebase,$L$ossl_rsaz_amm52x30_x1_ifma256_epilogue wrt ..imagebase +$L$SEH_info_ossl_rsaz_amm52x30_x2_ifma256: +DB 9,0,0,0 + DD rsaz_avx_handler wrt ..imagebase + DD $L$ossl_rsaz_amm52x30_x2_ifma256_body wrt ..imagebase,$L$ossl_rsaz_amm52x30_x2_ifma256_epilogue wrt ..imagebase diff --git a/deps/openssl/config/archs/VC-WIN64A/asm/crypto/bn/rsaz-3k-avxifma.asm b/deps/openssl/config/archs/VC-WIN64A/asm/crypto/bn/rsaz-3k-avxifma.asm new file mode 100644 index 00000000000000..b7dc264139e7ad --- /dev/null +++ b/deps/openssl/config/archs/VC-WIN64A/asm/crypto/bn/rsaz-3k-avxifma.asm @@ -0,0 +1,17 @@ +default rel +%define XMMWORD +%define YMMWORD +%define ZMMWORD +section .text code align=64 + + +global ossl_rsaz_amm52x30_x1_avxifma256 +global ossl_rsaz_amm52x30_x2_avxifma256 +global ossl_extract_multiplier_2x30_win5_avx + +ossl_rsaz_amm52x30_x1_avxifma256: +ossl_rsaz_amm52x30_x2_avxifma256: +ossl_extract_multiplier_2x30_win5_avx: +DB 0x0f,0x0b + DB 0F3h,0C3h ;repret + diff --git a/deps/openssl/config/archs/VC-WIN64A/asm/crypto/bn/rsaz-4k-avx512.asm b/deps/openssl/config/archs/VC-WIN64A/asm/crypto/bn/rsaz-4k-avx512.asm new file mode 100644 index 00000000000000..4e11925db699e6 --- /dev/null +++ b/deps/openssl/config/archs/VC-WIN64A/asm/crypto/bn/rsaz-4k-avx512.asm @@ -0,0 +1,1533 @@ +default rel +%define XMMWORD +%define YMMWORD +%define ZMMWORD +section .text code align=64 + + +global ossl_rsaz_amm52x40_x1_ifma256 + +ALIGN 32 +ossl_rsaz_amm52x40_x1_ifma256: + mov QWORD[8+rsp],rdi ;WIN64 prologue + mov QWORD[16+rsp],rsi + mov rax,rsp +$L$SEH_begin_ossl_rsaz_amm52x40_x1_ifma256: + mov rdi,rcx + mov rsi,rdx + mov rdx,r8 + mov rcx,r9 + mov r8,QWORD[40+rsp] + + + +DB 243,15,30,250 + push rbx + + push rbp + + push r12 + + push r13 + + push r14 + + push r15 + + lea rsp,[((-168))+rsp] + vmovdqa64 XMMWORD[rsp],xmm6 + vmovdqa64 XMMWORD[16+rsp],xmm7 + vmovdqa64 XMMWORD[32+rsp],xmm8 + vmovdqa64 XMMWORD[48+rsp],xmm9 + vmovdqa64 XMMWORD[64+rsp],xmm10 + vmovdqa64 XMMWORD[80+rsp],xmm11 + vmovdqa64 XMMWORD[96+rsp],xmm12 + vmovdqa64 XMMWORD[112+rsp],xmm13 + vmovdqa64 XMMWORD[128+rsp],xmm14 + vmovdqa64 XMMWORD[144+rsp],xmm15 +$L$ossl_rsaz_amm52x40_x1_ifma256_body: + + vpxord ymm0,ymm0,ymm0 + vmovdqa64 ymm3,ymm0 + vmovdqa64 ymm4,ymm0 + vmovdqa64 ymm5,ymm0 + vmovdqa64 ymm6,ymm0 + vmovdqa64 ymm7,ymm0 + vmovdqa64 ymm8,ymm0 + vmovdqa64 ymm9,ymm0 + vmovdqa64 ymm10,ymm0 + vmovdqa64 ymm11,ymm0 + vmovdqa64 ymm12,ymm0 + + xor r9d,r9d + + mov r11,rdx + mov rax,0xfffffffffffff + + + mov ebx,10 + +ALIGN 32 +$L$loop10: + mov r13,QWORD[r11] + + vpbroadcastq ymm1,r13 + mov rdx,QWORD[rsi] + mulx r12,r13,r13 + add r9,r13 + mov r10,r12 + adc r10,0 + + mov r13,r8 + imul r13,r9 + and r13,rax + + vpbroadcastq ymm2,r13 + mov rdx,QWORD[rcx] + mulx r12,r13,r13 + add r9,r13 + adc r10,r12 + + shr r9,52 + sal r10,12 + or r9,r10 + + vpmadd52luq ymm3,ymm1,YMMWORD[rsi] + vpmadd52luq ymm4,ymm1,YMMWORD[32+rsi] + vpmadd52luq ymm5,ymm1,YMMWORD[64+rsi] + vpmadd52luq ymm6,ymm1,YMMWORD[96+rsi] + vpmadd52luq ymm7,ymm1,YMMWORD[128+rsi] + vpmadd52luq ymm8,ymm1,YMMWORD[160+rsi] + vpmadd52luq ymm9,ymm1,YMMWORD[192+rsi] + vpmadd52luq ymm10,ymm1,YMMWORD[224+rsi] + vpmadd52luq ymm11,ymm1,YMMWORD[256+rsi] + vpmadd52luq ymm12,ymm1,YMMWORD[288+rsi] + + vpmadd52luq ymm3,ymm2,YMMWORD[rcx] + vpmadd52luq ymm4,ymm2,YMMWORD[32+rcx] + vpmadd52luq ymm5,ymm2,YMMWORD[64+rcx] + vpmadd52luq ymm6,ymm2,YMMWORD[96+rcx] + vpmadd52luq ymm7,ymm2,YMMWORD[128+rcx] + vpmadd52luq ymm8,ymm2,YMMWORD[160+rcx] + vpmadd52luq ymm9,ymm2,YMMWORD[192+rcx] + vpmadd52luq ymm10,ymm2,YMMWORD[224+rcx] + vpmadd52luq ymm11,ymm2,YMMWORD[256+rcx] + vpmadd52luq ymm12,ymm2,YMMWORD[288+rcx] + + + valignq ymm3,ymm4,ymm3,1 + valignq ymm4,ymm5,ymm4,1 + valignq ymm5,ymm6,ymm5,1 + valignq ymm6,ymm7,ymm6,1 + valignq ymm7,ymm8,ymm7,1 + valignq ymm8,ymm9,ymm8,1 + valignq ymm9,ymm10,ymm9,1 + valignq ymm10,ymm11,ymm10,1 + valignq ymm11,ymm12,ymm11,1 + valignq ymm12,ymm0,ymm12,1 + + vmovq r13,xmm3 + add r9,r13 + + vpmadd52huq ymm3,ymm1,YMMWORD[rsi] + vpmadd52huq ymm4,ymm1,YMMWORD[32+rsi] + vpmadd52huq ymm5,ymm1,YMMWORD[64+rsi] + vpmadd52huq ymm6,ymm1,YMMWORD[96+rsi] + vpmadd52huq ymm7,ymm1,YMMWORD[128+rsi] + vpmadd52huq ymm8,ymm1,YMMWORD[160+rsi] + vpmadd52huq ymm9,ymm1,YMMWORD[192+rsi] + vpmadd52huq ymm10,ymm1,YMMWORD[224+rsi] + vpmadd52huq ymm11,ymm1,YMMWORD[256+rsi] + vpmadd52huq ymm12,ymm1,YMMWORD[288+rsi] + + vpmadd52huq ymm3,ymm2,YMMWORD[rcx] + vpmadd52huq ymm4,ymm2,YMMWORD[32+rcx] + vpmadd52huq ymm5,ymm2,YMMWORD[64+rcx] + vpmadd52huq ymm6,ymm2,YMMWORD[96+rcx] + vpmadd52huq ymm7,ymm2,YMMWORD[128+rcx] + vpmadd52huq ymm8,ymm2,YMMWORD[160+rcx] + vpmadd52huq ymm9,ymm2,YMMWORD[192+rcx] + vpmadd52huq ymm10,ymm2,YMMWORD[224+rcx] + vpmadd52huq ymm11,ymm2,YMMWORD[256+rcx] + vpmadd52huq ymm12,ymm2,YMMWORD[288+rcx] + mov r13,QWORD[8+r11] + + vpbroadcastq ymm1,r13 + mov rdx,QWORD[rsi] + mulx r12,r13,r13 + add r9,r13 + mov r10,r12 + adc r10,0 + + mov r13,r8 + imul r13,r9 + and r13,rax + + vpbroadcastq ymm2,r13 + mov rdx,QWORD[rcx] + mulx r12,r13,r13 + add r9,r13 + adc r10,r12 + + shr r9,52 + sal r10,12 + or r9,r10 + + vpmadd52luq ymm3,ymm1,YMMWORD[rsi] + vpmadd52luq ymm4,ymm1,YMMWORD[32+rsi] + vpmadd52luq ymm5,ymm1,YMMWORD[64+rsi] + vpmadd52luq ymm6,ymm1,YMMWORD[96+rsi] + vpmadd52luq ymm7,ymm1,YMMWORD[128+rsi] + vpmadd52luq ymm8,ymm1,YMMWORD[160+rsi] + vpmadd52luq ymm9,ymm1,YMMWORD[192+rsi] + vpmadd52luq ymm10,ymm1,YMMWORD[224+rsi] + vpmadd52luq ymm11,ymm1,YMMWORD[256+rsi] + vpmadd52luq ymm12,ymm1,YMMWORD[288+rsi] + + vpmadd52luq ymm3,ymm2,YMMWORD[rcx] + vpmadd52luq ymm4,ymm2,YMMWORD[32+rcx] + vpmadd52luq ymm5,ymm2,YMMWORD[64+rcx] + vpmadd52luq ymm6,ymm2,YMMWORD[96+rcx] + vpmadd52luq ymm7,ymm2,YMMWORD[128+rcx] + vpmadd52luq ymm8,ymm2,YMMWORD[160+rcx] + vpmadd52luq ymm9,ymm2,YMMWORD[192+rcx] + vpmadd52luq ymm10,ymm2,YMMWORD[224+rcx] + vpmadd52luq ymm11,ymm2,YMMWORD[256+rcx] + vpmadd52luq ymm12,ymm2,YMMWORD[288+rcx] + + + valignq ymm3,ymm4,ymm3,1 + valignq ymm4,ymm5,ymm4,1 + valignq ymm5,ymm6,ymm5,1 + valignq ymm6,ymm7,ymm6,1 + valignq ymm7,ymm8,ymm7,1 + valignq ymm8,ymm9,ymm8,1 + valignq ymm9,ymm10,ymm9,1 + valignq ymm10,ymm11,ymm10,1 + valignq ymm11,ymm12,ymm11,1 + valignq ymm12,ymm0,ymm12,1 + + vmovq r13,xmm3 + add r9,r13 + + vpmadd52huq ymm3,ymm1,YMMWORD[rsi] + vpmadd52huq ymm4,ymm1,YMMWORD[32+rsi] + vpmadd52huq ymm5,ymm1,YMMWORD[64+rsi] + vpmadd52huq ymm6,ymm1,YMMWORD[96+rsi] + vpmadd52huq ymm7,ymm1,YMMWORD[128+rsi] + vpmadd52huq ymm8,ymm1,YMMWORD[160+rsi] + vpmadd52huq ymm9,ymm1,YMMWORD[192+rsi] + vpmadd52huq ymm10,ymm1,YMMWORD[224+rsi] + vpmadd52huq ymm11,ymm1,YMMWORD[256+rsi] + vpmadd52huq ymm12,ymm1,YMMWORD[288+rsi] + + vpmadd52huq ymm3,ymm2,YMMWORD[rcx] + vpmadd52huq ymm4,ymm2,YMMWORD[32+rcx] + vpmadd52huq ymm5,ymm2,YMMWORD[64+rcx] + vpmadd52huq ymm6,ymm2,YMMWORD[96+rcx] + vpmadd52huq ymm7,ymm2,YMMWORD[128+rcx] + vpmadd52huq ymm8,ymm2,YMMWORD[160+rcx] + vpmadd52huq ymm9,ymm2,YMMWORD[192+rcx] + vpmadd52huq ymm10,ymm2,YMMWORD[224+rcx] + vpmadd52huq ymm11,ymm2,YMMWORD[256+rcx] + vpmadd52huq ymm12,ymm2,YMMWORD[288+rcx] + mov r13,QWORD[16+r11] + + vpbroadcastq ymm1,r13 + mov rdx,QWORD[rsi] + mulx r12,r13,r13 + add r9,r13 + mov r10,r12 + adc r10,0 + + mov r13,r8 + imul r13,r9 + and r13,rax + + vpbroadcastq ymm2,r13 + mov rdx,QWORD[rcx] + mulx r12,r13,r13 + add r9,r13 + adc r10,r12 + + shr r9,52 + sal r10,12 + or r9,r10 + + vpmadd52luq ymm3,ymm1,YMMWORD[rsi] + vpmadd52luq ymm4,ymm1,YMMWORD[32+rsi] + vpmadd52luq ymm5,ymm1,YMMWORD[64+rsi] + vpmadd52luq ymm6,ymm1,YMMWORD[96+rsi] + vpmadd52luq ymm7,ymm1,YMMWORD[128+rsi] + vpmadd52luq ymm8,ymm1,YMMWORD[160+rsi] + vpmadd52luq ymm9,ymm1,YMMWORD[192+rsi] + vpmadd52luq ymm10,ymm1,YMMWORD[224+rsi] + vpmadd52luq ymm11,ymm1,YMMWORD[256+rsi] + vpmadd52luq ymm12,ymm1,YMMWORD[288+rsi] + + vpmadd52luq ymm3,ymm2,YMMWORD[rcx] + vpmadd52luq ymm4,ymm2,YMMWORD[32+rcx] + vpmadd52luq ymm5,ymm2,YMMWORD[64+rcx] + vpmadd52luq ymm6,ymm2,YMMWORD[96+rcx] + vpmadd52luq ymm7,ymm2,YMMWORD[128+rcx] + vpmadd52luq ymm8,ymm2,YMMWORD[160+rcx] + vpmadd52luq ymm9,ymm2,YMMWORD[192+rcx] + vpmadd52luq ymm10,ymm2,YMMWORD[224+rcx] + vpmadd52luq ymm11,ymm2,YMMWORD[256+rcx] + vpmadd52luq ymm12,ymm2,YMMWORD[288+rcx] + + + valignq ymm3,ymm4,ymm3,1 + valignq ymm4,ymm5,ymm4,1 + valignq ymm5,ymm6,ymm5,1 + valignq ymm6,ymm7,ymm6,1 + valignq ymm7,ymm8,ymm7,1 + valignq ymm8,ymm9,ymm8,1 + valignq ymm9,ymm10,ymm9,1 + valignq ymm10,ymm11,ymm10,1 + valignq ymm11,ymm12,ymm11,1 + valignq ymm12,ymm0,ymm12,1 + + vmovq r13,xmm3 + add r9,r13 + + vpmadd52huq ymm3,ymm1,YMMWORD[rsi] + vpmadd52huq ymm4,ymm1,YMMWORD[32+rsi] + vpmadd52huq ymm5,ymm1,YMMWORD[64+rsi] + vpmadd52huq ymm6,ymm1,YMMWORD[96+rsi] + vpmadd52huq ymm7,ymm1,YMMWORD[128+rsi] + vpmadd52huq ymm8,ymm1,YMMWORD[160+rsi] + vpmadd52huq ymm9,ymm1,YMMWORD[192+rsi] + vpmadd52huq ymm10,ymm1,YMMWORD[224+rsi] + vpmadd52huq ymm11,ymm1,YMMWORD[256+rsi] + vpmadd52huq ymm12,ymm1,YMMWORD[288+rsi] + + vpmadd52huq ymm3,ymm2,YMMWORD[rcx] + vpmadd52huq ymm4,ymm2,YMMWORD[32+rcx] + vpmadd52huq ymm5,ymm2,YMMWORD[64+rcx] + vpmadd52huq ymm6,ymm2,YMMWORD[96+rcx] + vpmadd52huq ymm7,ymm2,YMMWORD[128+rcx] + vpmadd52huq ymm8,ymm2,YMMWORD[160+rcx] + vpmadd52huq ymm9,ymm2,YMMWORD[192+rcx] + vpmadd52huq ymm10,ymm2,YMMWORD[224+rcx] + vpmadd52huq ymm11,ymm2,YMMWORD[256+rcx] + vpmadd52huq ymm12,ymm2,YMMWORD[288+rcx] + mov r13,QWORD[24+r11] + + vpbroadcastq ymm1,r13 + mov rdx,QWORD[rsi] + mulx r12,r13,r13 + add r9,r13 + mov r10,r12 + adc r10,0 + + mov r13,r8 + imul r13,r9 + and r13,rax + + vpbroadcastq ymm2,r13 + mov rdx,QWORD[rcx] + mulx r12,r13,r13 + add r9,r13 + adc r10,r12 + + shr r9,52 + sal r10,12 + or r9,r10 + + vpmadd52luq ymm3,ymm1,YMMWORD[rsi] + vpmadd52luq ymm4,ymm1,YMMWORD[32+rsi] + vpmadd52luq ymm5,ymm1,YMMWORD[64+rsi] + vpmadd52luq ymm6,ymm1,YMMWORD[96+rsi] + vpmadd52luq ymm7,ymm1,YMMWORD[128+rsi] + vpmadd52luq ymm8,ymm1,YMMWORD[160+rsi] + vpmadd52luq ymm9,ymm1,YMMWORD[192+rsi] + vpmadd52luq ymm10,ymm1,YMMWORD[224+rsi] + vpmadd52luq ymm11,ymm1,YMMWORD[256+rsi] + vpmadd52luq ymm12,ymm1,YMMWORD[288+rsi] + + vpmadd52luq ymm3,ymm2,YMMWORD[rcx] + vpmadd52luq ymm4,ymm2,YMMWORD[32+rcx] + vpmadd52luq ymm5,ymm2,YMMWORD[64+rcx] + vpmadd52luq ymm6,ymm2,YMMWORD[96+rcx] + vpmadd52luq ymm7,ymm2,YMMWORD[128+rcx] + vpmadd52luq ymm8,ymm2,YMMWORD[160+rcx] + vpmadd52luq ymm9,ymm2,YMMWORD[192+rcx] + vpmadd52luq ymm10,ymm2,YMMWORD[224+rcx] + vpmadd52luq ymm11,ymm2,YMMWORD[256+rcx] + vpmadd52luq ymm12,ymm2,YMMWORD[288+rcx] + + + valignq ymm3,ymm4,ymm3,1 + valignq ymm4,ymm5,ymm4,1 + valignq ymm5,ymm6,ymm5,1 + valignq ymm6,ymm7,ymm6,1 + valignq ymm7,ymm8,ymm7,1 + valignq ymm8,ymm9,ymm8,1 + valignq ymm9,ymm10,ymm9,1 + valignq ymm10,ymm11,ymm10,1 + valignq ymm11,ymm12,ymm11,1 + valignq ymm12,ymm0,ymm12,1 + + vmovq r13,xmm3 + add r9,r13 + + vpmadd52huq ymm3,ymm1,YMMWORD[rsi] + vpmadd52huq ymm4,ymm1,YMMWORD[32+rsi] + vpmadd52huq ymm5,ymm1,YMMWORD[64+rsi] + vpmadd52huq ymm6,ymm1,YMMWORD[96+rsi] + vpmadd52huq ymm7,ymm1,YMMWORD[128+rsi] + vpmadd52huq ymm8,ymm1,YMMWORD[160+rsi] + vpmadd52huq ymm9,ymm1,YMMWORD[192+rsi] + vpmadd52huq ymm10,ymm1,YMMWORD[224+rsi] + vpmadd52huq ymm11,ymm1,YMMWORD[256+rsi] + vpmadd52huq ymm12,ymm1,YMMWORD[288+rsi] + + vpmadd52huq ymm3,ymm2,YMMWORD[rcx] + vpmadd52huq ymm4,ymm2,YMMWORD[32+rcx] + vpmadd52huq ymm5,ymm2,YMMWORD[64+rcx] + vpmadd52huq ymm6,ymm2,YMMWORD[96+rcx] + vpmadd52huq ymm7,ymm2,YMMWORD[128+rcx] + vpmadd52huq ymm8,ymm2,YMMWORD[160+rcx] + vpmadd52huq ymm9,ymm2,YMMWORD[192+rcx] + vpmadd52huq ymm10,ymm2,YMMWORD[224+rcx] + vpmadd52huq ymm11,ymm2,YMMWORD[256+rcx] + vpmadd52huq ymm12,ymm2,YMMWORD[288+rcx] + lea r11,[32+r11] + dec ebx + jne NEAR $L$loop10 + + vpbroadcastq ymm0,r9 + vpblendd ymm3,ymm3,ymm0,3 + + + + vpsrlq ymm0,ymm3,52 + vpsrlq ymm1,ymm4,52 + vpsrlq ymm2,ymm5,52 + vpsrlq ymm23,ymm6,52 + vpsrlq ymm24,ymm7,52 + vpsrlq ymm25,ymm8,52 + vpsrlq ymm26,ymm9,52 + vpsrlq ymm27,ymm10,52 + vpsrlq ymm28,ymm11,52 + vpsrlq ymm29,ymm12,52 + + + valignq ymm29,ymm29,ymm28,3 + valignq ymm28,ymm28,ymm27,3 + valignq ymm27,ymm27,ymm26,3 + valignq ymm26,ymm26,ymm25,3 + valignq ymm25,ymm25,ymm24,3 + valignq ymm24,ymm24,ymm23,3 + valignq ymm23,ymm23,ymm2,3 + valignq ymm2,ymm2,ymm1,3 + valignq ymm1,ymm1,ymm0,3 + valignq ymm0,ymm0,YMMWORD[$L$zeros],3 + + + vpandq ymm3,ymm3,YMMWORD[$L$mask52x4] + vpandq ymm4,ymm4,YMMWORD[$L$mask52x4] + vpandq ymm5,ymm5,YMMWORD[$L$mask52x4] + vpandq ymm6,ymm6,YMMWORD[$L$mask52x4] + vpandq ymm7,ymm7,YMMWORD[$L$mask52x4] + vpandq ymm8,ymm8,YMMWORD[$L$mask52x4] + vpandq ymm9,ymm9,YMMWORD[$L$mask52x4] + vpandq ymm10,ymm10,YMMWORD[$L$mask52x4] + vpandq ymm11,ymm11,YMMWORD[$L$mask52x4] + vpandq ymm12,ymm12,YMMWORD[$L$mask52x4] + + + vpaddq ymm3,ymm3,ymm0 + vpaddq ymm4,ymm4,ymm1 + vpaddq ymm5,ymm5,ymm2 + vpaddq ymm6,ymm6,ymm23 + vpaddq ymm7,ymm7,ymm24 + vpaddq ymm8,ymm8,ymm25 + vpaddq ymm9,ymm9,ymm26 + vpaddq ymm10,ymm10,ymm27 + vpaddq ymm11,ymm11,ymm28 + vpaddq ymm12,ymm12,ymm29 + + + + vpcmpuq k1,ymm3,YMMWORD[$L$mask52x4],6 + vpcmpuq k2,ymm4,YMMWORD[$L$mask52x4],6 + kmovb r14d,k1 + kmovb r13d,k2 + shl r13b,4 + or r14b,r13b + + vpcmpuq k1,ymm5,YMMWORD[$L$mask52x4],6 + vpcmpuq k2,ymm6,YMMWORD[$L$mask52x4],6 + kmovb r13d,k1 + kmovb r12d,k2 + shl r12b,4 + or r13b,r12b + + vpcmpuq k1,ymm7,YMMWORD[$L$mask52x4],6 + vpcmpuq k2,ymm8,YMMWORD[$L$mask52x4],6 + kmovb r12d,k1 + kmovb r11d,k2 + shl r11b,4 + or r12b,r11b + + vpcmpuq k1,ymm9,YMMWORD[$L$mask52x4],6 + vpcmpuq k2,ymm10,YMMWORD[$L$mask52x4],6 + kmovb r11d,k1 + kmovb r10d,k2 + shl r10b,4 + or r11b,r10b + + vpcmpuq k1,ymm11,YMMWORD[$L$mask52x4],6 + vpcmpuq k2,ymm12,YMMWORD[$L$mask52x4],6 + kmovb r10d,k1 + kmovb r9d,k2 + shl r9b,4 + or r10b,r9b + + add r14b,r14b + adc r13b,r13b + adc r12b,r12b + adc r11b,r11b + adc r10b,r10b + + + vpcmpuq k1,ymm3,YMMWORD[$L$mask52x4],0 + vpcmpuq k2,ymm4,YMMWORD[$L$mask52x4],0 + kmovb r9d,k1 + kmovb r8d,k2 + shl r8b,4 + or r9b,r8b + + vpcmpuq k1,ymm5,YMMWORD[$L$mask52x4],0 + vpcmpuq k2,ymm6,YMMWORD[$L$mask52x4],0 + kmovb r8d,k1 + kmovb edx,k2 + shl dl,4 + or r8b,dl + + vpcmpuq k1,ymm7,YMMWORD[$L$mask52x4],0 + vpcmpuq k2,ymm8,YMMWORD[$L$mask52x4],0 + kmovb edx,k1 + kmovb ecx,k2 + shl cl,4 + or dl,cl + + vpcmpuq k1,ymm9,YMMWORD[$L$mask52x4],0 + vpcmpuq k2,ymm10,YMMWORD[$L$mask52x4],0 + kmovb ecx,k1 + kmovb ebx,k2 + shl bl,4 + or cl,bl + + vpcmpuq k1,ymm11,YMMWORD[$L$mask52x4],0 + vpcmpuq k2,ymm12,YMMWORD[$L$mask52x4],0 + kmovb ebx,k1 + kmovb eax,k2 + shl al,4 + or bl,al + + add r14b,r9b + adc r13b,r8b + adc r12b,dl + adc r11b,cl + adc r10b,bl + + xor r14b,r9b + xor r13b,r8b + xor r12b,dl + xor r11b,cl + xor r10b,bl + + kmovb k1,r14d + shr r14b,4 + kmovb k2,r14d + kmovb k3,r13d + shr r13b,4 + kmovb k4,r13d + kmovb k5,r12d + shr r12b,4 + kmovb k6,r12d + kmovb k7,r11d + + vpsubq ymm3{k1},ymm3,YMMWORD[$L$mask52x4] + vpsubq ymm4{k2},ymm4,YMMWORD[$L$mask52x4] + vpsubq ymm5{k3},ymm5,YMMWORD[$L$mask52x4] + vpsubq ymm6{k4},ymm6,YMMWORD[$L$mask52x4] + vpsubq ymm7{k5},ymm7,YMMWORD[$L$mask52x4] + vpsubq ymm8{k6},ymm8,YMMWORD[$L$mask52x4] + vpsubq ymm9{k7},ymm9,YMMWORD[$L$mask52x4] + + vpandq ymm3,ymm3,YMMWORD[$L$mask52x4] + vpandq ymm4,ymm4,YMMWORD[$L$mask52x4] + vpandq ymm5,ymm5,YMMWORD[$L$mask52x4] + vpandq ymm6,ymm6,YMMWORD[$L$mask52x4] + vpandq ymm7,ymm7,YMMWORD[$L$mask52x4] + vpandq ymm8,ymm8,YMMWORD[$L$mask52x4] + vpandq ymm9,ymm9,YMMWORD[$L$mask52x4] + + shr r11b,4 + kmovb k1,r11d + kmovb k2,r10d + shr r10b,4 + kmovb k3,r10d + + vpsubq ymm10{k1},ymm10,YMMWORD[$L$mask52x4] + vpsubq ymm11{k2},ymm11,YMMWORD[$L$mask52x4] + vpsubq ymm12{k3},ymm12,YMMWORD[$L$mask52x4] + + vpandq ymm10,ymm10,YMMWORD[$L$mask52x4] + vpandq ymm11,ymm11,YMMWORD[$L$mask52x4] + vpandq ymm12,ymm12,YMMWORD[$L$mask52x4] + + vmovdqu64 YMMWORD[rdi],ymm3 + vmovdqu64 YMMWORD[32+rdi],ymm4 + vmovdqu64 YMMWORD[64+rdi],ymm5 + vmovdqu64 YMMWORD[96+rdi],ymm6 + vmovdqu64 YMMWORD[128+rdi],ymm7 + vmovdqu64 YMMWORD[160+rdi],ymm8 + vmovdqu64 YMMWORD[192+rdi],ymm9 + vmovdqu64 YMMWORD[224+rdi],ymm10 + vmovdqu64 YMMWORD[256+rdi],ymm11 + vmovdqu64 YMMWORD[288+rdi],ymm12 + + vzeroupper + lea rax,[rsp] + + vmovdqa64 xmm6,XMMWORD[rax] + vmovdqa64 xmm7,XMMWORD[16+rax] + vmovdqa64 xmm8,XMMWORD[32+rax] + vmovdqa64 xmm9,XMMWORD[48+rax] + vmovdqa64 xmm10,XMMWORD[64+rax] + vmovdqa64 xmm11,XMMWORD[80+rax] + vmovdqa64 xmm12,XMMWORD[96+rax] + vmovdqa64 xmm13,XMMWORD[112+rax] + vmovdqa64 xmm14,XMMWORD[128+rax] + vmovdqa64 xmm15,XMMWORD[144+rax] + lea rax,[168+rsp] + mov r15,QWORD[rax] + + mov r14,QWORD[8+rax] + + mov r13,QWORD[16+rax] + + mov r12,QWORD[24+rax] + + mov rbp,QWORD[32+rax] + + mov rbx,QWORD[40+rax] + + lea rsp,[48+rax] + +$L$ossl_rsaz_amm52x40_x1_ifma256_epilogue: + + mov rdi,QWORD[8+rsp] ;WIN64 epilogue + mov rsi,QWORD[16+rsp] + DB 0F3h,0C3h ;repret + +$L$SEH_end_ossl_rsaz_amm52x40_x1_ifma256: +section .rdata rdata align=32 +ALIGN 32 +$L$mask52x4: + DQ 0xfffffffffffff + DQ 0xfffffffffffff + DQ 0xfffffffffffff + DQ 0xfffffffffffff +section .text code align=64 + + +global ossl_rsaz_amm52x40_x2_ifma256 + +ALIGN 32 +ossl_rsaz_amm52x40_x2_ifma256: + mov QWORD[8+rsp],rdi ;WIN64 prologue + mov QWORD[16+rsp],rsi + mov rax,rsp +$L$SEH_begin_ossl_rsaz_amm52x40_x2_ifma256: + mov rdi,rcx + mov rsi,rdx + mov rdx,r8 + mov rcx,r9 + mov r8,QWORD[40+rsp] + + + +DB 243,15,30,250 + push rbx + + push rbp + + push r12 + + push r13 + + push r14 + + push r15 + + lea rsp,[((-168))+rsp] + vmovdqa64 XMMWORD[rsp],xmm6 + vmovdqa64 XMMWORD[16+rsp],xmm7 + vmovdqa64 XMMWORD[32+rsp],xmm8 + vmovdqa64 XMMWORD[48+rsp],xmm9 + vmovdqa64 XMMWORD[64+rsp],xmm10 + vmovdqa64 XMMWORD[80+rsp],xmm11 + vmovdqa64 XMMWORD[96+rsp],xmm12 + vmovdqa64 XMMWORD[112+rsp],xmm13 + vmovdqa64 XMMWORD[128+rsp],xmm14 + vmovdqa64 XMMWORD[144+rsp],xmm15 +$L$ossl_rsaz_amm52x40_x2_ifma256_body: + + vpxord ymm0,ymm0,ymm0 + vmovdqa64 ymm3,ymm0 + vmovdqa64 ymm4,ymm0 + vmovdqa64 ymm5,ymm0 + vmovdqa64 ymm6,ymm0 + vmovdqa64 ymm7,ymm0 + vmovdqa64 ymm8,ymm0 + vmovdqa64 ymm9,ymm0 + vmovdqa64 ymm10,ymm0 + vmovdqa64 ymm11,ymm0 + vmovdqa64 ymm12,ymm0 + + vmovdqa64 ymm13,ymm0 + vmovdqa64 ymm14,ymm0 + vmovdqa64 ymm15,ymm0 + vmovdqa64 ymm16,ymm0 + vmovdqa64 ymm17,ymm0 + vmovdqa64 ymm18,ymm0 + vmovdqa64 ymm19,ymm0 + vmovdqa64 ymm20,ymm0 + vmovdqa64 ymm21,ymm0 + vmovdqa64 ymm22,ymm0 + + + xor r9d,r9d + xor r15d,r15d + + mov r11,rdx + mov rax,0xfffffffffffff + + mov ebx,40 + +ALIGN 32 +$L$loop40: + mov r13,QWORD[r11] + + vpbroadcastq ymm1,r13 + mov rdx,QWORD[rsi] + mulx r12,r13,r13 + add r9,r13 + mov r10,r12 + adc r10,0 + + mov r13,QWORD[r8] + imul r13,r9 + and r13,rax + + vpbroadcastq ymm2,r13 + mov rdx,QWORD[rcx] + mulx r12,r13,r13 + add r9,r13 + adc r10,r12 + + shr r9,52 + sal r10,12 + or r9,r10 + + vpmadd52luq ymm3,ymm1,YMMWORD[rsi] + vpmadd52luq ymm4,ymm1,YMMWORD[32+rsi] + vpmadd52luq ymm5,ymm1,YMMWORD[64+rsi] + vpmadd52luq ymm6,ymm1,YMMWORD[96+rsi] + vpmadd52luq ymm7,ymm1,YMMWORD[128+rsi] + vpmadd52luq ymm8,ymm1,YMMWORD[160+rsi] + vpmadd52luq ymm9,ymm1,YMMWORD[192+rsi] + vpmadd52luq ymm10,ymm1,YMMWORD[224+rsi] + vpmadd52luq ymm11,ymm1,YMMWORD[256+rsi] + vpmadd52luq ymm12,ymm1,YMMWORD[288+rsi] + + vpmadd52luq ymm3,ymm2,YMMWORD[rcx] + vpmadd52luq ymm4,ymm2,YMMWORD[32+rcx] + vpmadd52luq ymm5,ymm2,YMMWORD[64+rcx] + vpmadd52luq ymm6,ymm2,YMMWORD[96+rcx] + vpmadd52luq ymm7,ymm2,YMMWORD[128+rcx] + vpmadd52luq ymm8,ymm2,YMMWORD[160+rcx] + vpmadd52luq ymm9,ymm2,YMMWORD[192+rcx] + vpmadd52luq ymm10,ymm2,YMMWORD[224+rcx] + vpmadd52luq ymm11,ymm2,YMMWORD[256+rcx] + vpmadd52luq ymm12,ymm2,YMMWORD[288+rcx] + + + valignq ymm3,ymm4,ymm3,1 + valignq ymm4,ymm5,ymm4,1 + valignq ymm5,ymm6,ymm5,1 + valignq ymm6,ymm7,ymm6,1 + valignq ymm7,ymm8,ymm7,1 + valignq ymm8,ymm9,ymm8,1 + valignq ymm9,ymm10,ymm9,1 + valignq ymm10,ymm11,ymm10,1 + valignq ymm11,ymm12,ymm11,1 + valignq ymm12,ymm0,ymm12,1 + + vmovq r13,xmm3 + add r9,r13 + + vpmadd52huq ymm3,ymm1,YMMWORD[rsi] + vpmadd52huq ymm4,ymm1,YMMWORD[32+rsi] + vpmadd52huq ymm5,ymm1,YMMWORD[64+rsi] + vpmadd52huq ymm6,ymm1,YMMWORD[96+rsi] + vpmadd52huq ymm7,ymm1,YMMWORD[128+rsi] + vpmadd52huq ymm8,ymm1,YMMWORD[160+rsi] + vpmadd52huq ymm9,ymm1,YMMWORD[192+rsi] + vpmadd52huq ymm10,ymm1,YMMWORD[224+rsi] + vpmadd52huq ymm11,ymm1,YMMWORD[256+rsi] + vpmadd52huq ymm12,ymm1,YMMWORD[288+rsi] + + vpmadd52huq ymm3,ymm2,YMMWORD[rcx] + vpmadd52huq ymm4,ymm2,YMMWORD[32+rcx] + vpmadd52huq ymm5,ymm2,YMMWORD[64+rcx] + vpmadd52huq ymm6,ymm2,YMMWORD[96+rcx] + vpmadd52huq ymm7,ymm2,YMMWORD[128+rcx] + vpmadd52huq ymm8,ymm2,YMMWORD[160+rcx] + vpmadd52huq ymm9,ymm2,YMMWORD[192+rcx] + vpmadd52huq ymm10,ymm2,YMMWORD[224+rcx] + vpmadd52huq ymm11,ymm2,YMMWORD[256+rcx] + vpmadd52huq ymm12,ymm2,YMMWORD[288+rcx] + mov r13,QWORD[320+r11] + + vpbroadcastq ymm1,r13 + mov rdx,QWORD[320+rsi] + mulx r12,r13,r13 + add r15,r13 + mov r10,r12 + adc r10,0 + + mov r13,QWORD[8+r8] + imul r13,r15 + and r13,rax + + vpbroadcastq ymm2,r13 + mov rdx,QWORD[320+rcx] + mulx r12,r13,r13 + add r15,r13 + adc r10,r12 + + shr r15,52 + sal r10,12 + or r15,r10 + + vpmadd52luq ymm13,ymm1,YMMWORD[320+rsi] + vpmadd52luq ymm14,ymm1,YMMWORD[352+rsi] + vpmadd52luq ymm15,ymm1,YMMWORD[384+rsi] + vpmadd52luq ymm16,ymm1,YMMWORD[416+rsi] + vpmadd52luq ymm17,ymm1,YMMWORD[448+rsi] + vpmadd52luq ymm18,ymm1,YMMWORD[480+rsi] + vpmadd52luq ymm19,ymm1,YMMWORD[512+rsi] + vpmadd52luq ymm20,ymm1,YMMWORD[544+rsi] + vpmadd52luq ymm21,ymm1,YMMWORD[576+rsi] + vpmadd52luq ymm22,ymm1,YMMWORD[608+rsi] + + vpmadd52luq ymm13,ymm2,YMMWORD[320+rcx] + vpmadd52luq ymm14,ymm2,YMMWORD[352+rcx] + vpmadd52luq ymm15,ymm2,YMMWORD[384+rcx] + vpmadd52luq ymm16,ymm2,YMMWORD[416+rcx] + vpmadd52luq ymm17,ymm2,YMMWORD[448+rcx] + vpmadd52luq ymm18,ymm2,YMMWORD[480+rcx] + vpmadd52luq ymm19,ymm2,YMMWORD[512+rcx] + vpmadd52luq ymm20,ymm2,YMMWORD[544+rcx] + vpmadd52luq ymm21,ymm2,YMMWORD[576+rcx] + vpmadd52luq ymm22,ymm2,YMMWORD[608+rcx] + + + valignq ymm13,ymm14,ymm13,1 + valignq ymm14,ymm15,ymm14,1 + valignq ymm15,ymm16,ymm15,1 + valignq ymm16,ymm17,ymm16,1 + valignq ymm17,ymm18,ymm17,1 + valignq ymm18,ymm19,ymm18,1 + valignq ymm19,ymm20,ymm19,1 + valignq ymm20,ymm21,ymm20,1 + valignq ymm21,ymm22,ymm21,1 + valignq ymm22,ymm0,ymm22,1 + + vmovq r13,xmm13 + add r15,r13 + + vpmadd52huq ymm13,ymm1,YMMWORD[320+rsi] + vpmadd52huq ymm14,ymm1,YMMWORD[352+rsi] + vpmadd52huq ymm15,ymm1,YMMWORD[384+rsi] + vpmadd52huq ymm16,ymm1,YMMWORD[416+rsi] + vpmadd52huq ymm17,ymm1,YMMWORD[448+rsi] + vpmadd52huq ymm18,ymm1,YMMWORD[480+rsi] + vpmadd52huq ymm19,ymm1,YMMWORD[512+rsi] + vpmadd52huq ymm20,ymm1,YMMWORD[544+rsi] + vpmadd52huq ymm21,ymm1,YMMWORD[576+rsi] + vpmadd52huq ymm22,ymm1,YMMWORD[608+rsi] + + vpmadd52huq ymm13,ymm2,YMMWORD[320+rcx] + vpmadd52huq ymm14,ymm2,YMMWORD[352+rcx] + vpmadd52huq ymm15,ymm2,YMMWORD[384+rcx] + vpmadd52huq ymm16,ymm2,YMMWORD[416+rcx] + vpmadd52huq ymm17,ymm2,YMMWORD[448+rcx] + vpmadd52huq ymm18,ymm2,YMMWORD[480+rcx] + vpmadd52huq ymm19,ymm2,YMMWORD[512+rcx] + vpmadd52huq ymm20,ymm2,YMMWORD[544+rcx] + vpmadd52huq ymm21,ymm2,YMMWORD[576+rcx] + vpmadd52huq ymm22,ymm2,YMMWORD[608+rcx] + lea r11,[8+r11] + dec ebx + jne NEAR $L$loop40 + + vpbroadcastq ymm0,r9 + vpblendd ymm3,ymm3,ymm0,3 + + + + vpsrlq ymm0,ymm3,52 + vpsrlq ymm1,ymm4,52 + vpsrlq ymm2,ymm5,52 + vpsrlq ymm23,ymm6,52 + vpsrlq ymm24,ymm7,52 + vpsrlq ymm25,ymm8,52 + vpsrlq ymm26,ymm9,52 + vpsrlq ymm27,ymm10,52 + vpsrlq ymm28,ymm11,52 + vpsrlq ymm29,ymm12,52 + + + valignq ymm29,ymm29,ymm28,3 + valignq ymm28,ymm28,ymm27,3 + valignq ymm27,ymm27,ymm26,3 + valignq ymm26,ymm26,ymm25,3 + valignq ymm25,ymm25,ymm24,3 + valignq ymm24,ymm24,ymm23,3 + valignq ymm23,ymm23,ymm2,3 + valignq ymm2,ymm2,ymm1,3 + valignq ymm1,ymm1,ymm0,3 + valignq ymm0,ymm0,YMMWORD[$L$zeros],3 + + + vpandq ymm3,ymm3,YMMWORD[$L$mask52x4] + vpandq ymm4,ymm4,YMMWORD[$L$mask52x4] + vpandq ymm5,ymm5,YMMWORD[$L$mask52x4] + vpandq ymm6,ymm6,YMMWORD[$L$mask52x4] + vpandq ymm7,ymm7,YMMWORD[$L$mask52x4] + vpandq ymm8,ymm8,YMMWORD[$L$mask52x4] + vpandq ymm9,ymm9,YMMWORD[$L$mask52x4] + vpandq ymm10,ymm10,YMMWORD[$L$mask52x4] + vpandq ymm11,ymm11,YMMWORD[$L$mask52x4] + vpandq ymm12,ymm12,YMMWORD[$L$mask52x4] + + + vpaddq ymm3,ymm3,ymm0 + vpaddq ymm4,ymm4,ymm1 + vpaddq ymm5,ymm5,ymm2 + vpaddq ymm6,ymm6,ymm23 + vpaddq ymm7,ymm7,ymm24 + vpaddq ymm8,ymm8,ymm25 + vpaddq ymm9,ymm9,ymm26 + vpaddq ymm10,ymm10,ymm27 + vpaddq ymm11,ymm11,ymm28 + vpaddq ymm12,ymm12,ymm29 + + + + vpcmpuq k1,ymm3,YMMWORD[$L$mask52x4],6 + vpcmpuq k2,ymm4,YMMWORD[$L$mask52x4],6 + kmovb r14d,k1 + kmovb r13d,k2 + shl r13b,4 + or r14b,r13b + + vpcmpuq k1,ymm5,YMMWORD[$L$mask52x4],6 + vpcmpuq k2,ymm6,YMMWORD[$L$mask52x4],6 + kmovb r13d,k1 + kmovb r12d,k2 + shl r12b,4 + or r13b,r12b + + vpcmpuq k1,ymm7,YMMWORD[$L$mask52x4],6 + vpcmpuq k2,ymm8,YMMWORD[$L$mask52x4],6 + kmovb r12d,k1 + kmovb r11d,k2 + shl r11b,4 + or r12b,r11b + + vpcmpuq k1,ymm9,YMMWORD[$L$mask52x4],6 + vpcmpuq k2,ymm10,YMMWORD[$L$mask52x4],6 + kmovb r11d,k1 + kmovb r10d,k2 + shl r10b,4 + or r11b,r10b + + vpcmpuq k1,ymm11,YMMWORD[$L$mask52x4],6 + vpcmpuq k2,ymm12,YMMWORD[$L$mask52x4],6 + kmovb r10d,k1 + kmovb r9d,k2 + shl r9b,4 + or r10b,r9b + + add r14b,r14b + adc r13b,r13b + adc r12b,r12b + adc r11b,r11b + adc r10b,r10b + + + vpcmpuq k1,ymm3,YMMWORD[$L$mask52x4],0 + vpcmpuq k2,ymm4,YMMWORD[$L$mask52x4],0 + kmovb r9d,k1 + kmovb r8d,k2 + shl r8b,4 + or r9b,r8b + + vpcmpuq k1,ymm5,YMMWORD[$L$mask52x4],0 + vpcmpuq k2,ymm6,YMMWORD[$L$mask52x4],0 + kmovb r8d,k1 + kmovb edx,k2 + shl dl,4 + or r8b,dl + + vpcmpuq k1,ymm7,YMMWORD[$L$mask52x4],0 + vpcmpuq k2,ymm8,YMMWORD[$L$mask52x4],0 + kmovb edx,k1 + kmovb ecx,k2 + shl cl,4 + or dl,cl + + vpcmpuq k1,ymm9,YMMWORD[$L$mask52x4],0 + vpcmpuq k2,ymm10,YMMWORD[$L$mask52x4],0 + kmovb ecx,k1 + kmovb ebx,k2 + shl bl,4 + or cl,bl + + vpcmpuq k1,ymm11,YMMWORD[$L$mask52x4],0 + vpcmpuq k2,ymm12,YMMWORD[$L$mask52x4],0 + kmovb ebx,k1 + kmovb eax,k2 + shl al,4 + or bl,al + + add r14b,r9b + adc r13b,r8b + adc r12b,dl + adc r11b,cl + adc r10b,bl + + xor r14b,r9b + xor r13b,r8b + xor r12b,dl + xor r11b,cl + xor r10b,bl + + kmovb k1,r14d + shr r14b,4 + kmovb k2,r14d + kmovb k3,r13d + shr r13b,4 + kmovb k4,r13d + kmovb k5,r12d + shr r12b,4 + kmovb k6,r12d + kmovb k7,r11d + + vpsubq ymm3{k1},ymm3,YMMWORD[$L$mask52x4] + vpsubq ymm4{k2},ymm4,YMMWORD[$L$mask52x4] + vpsubq ymm5{k3},ymm5,YMMWORD[$L$mask52x4] + vpsubq ymm6{k4},ymm6,YMMWORD[$L$mask52x4] + vpsubq ymm7{k5},ymm7,YMMWORD[$L$mask52x4] + vpsubq ymm8{k6},ymm8,YMMWORD[$L$mask52x4] + vpsubq ymm9{k7},ymm9,YMMWORD[$L$mask52x4] + + vpandq ymm3,ymm3,YMMWORD[$L$mask52x4] + vpandq ymm4,ymm4,YMMWORD[$L$mask52x4] + vpandq ymm5,ymm5,YMMWORD[$L$mask52x4] + vpandq ymm6,ymm6,YMMWORD[$L$mask52x4] + vpandq ymm7,ymm7,YMMWORD[$L$mask52x4] + vpandq ymm8,ymm8,YMMWORD[$L$mask52x4] + vpandq ymm9,ymm9,YMMWORD[$L$mask52x4] + + shr r11b,4 + kmovb k1,r11d + kmovb k2,r10d + shr r10b,4 + kmovb k3,r10d + + vpsubq ymm10{k1},ymm10,YMMWORD[$L$mask52x4] + vpsubq ymm11{k2},ymm11,YMMWORD[$L$mask52x4] + vpsubq ymm12{k3},ymm12,YMMWORD[$L$mask52x4] + + vpandq ymm10,ymm10,YMMWORD[$L$mask52x4] + vpandq ymm11,ymm11,YMMWORD[$L$mask52x4] + vpandq ymm12,ymm12,YMMWORD[$L$mask52x4] + + vpbroadcastq ymm0,r15 + vpblendd ymm13,ymm13,ymm0,3 + + + + vpsrlq ymm0,ymm13,52 + vpsrlq ymm1,ymm14,52 + vpsrlq ymm2,ymm15,52 + vpsrlq ymm23,ymm16,52 + vpsrlq ymm24,ymm17,52 + vpsrlq ymm25,ymm18,52 + vpsrlq ymm26,ymm19,52 + vpsrlq ymm27,ymm20,52 + vpsrlq ymm28,ymm21,52 + vpsrlq ymm29,ymm22,52 + + + valignq ymm29,ymm29,ymm28,3 + valignq ymm28,ymm28,ymm27,3 + valignq ymm27,ymm27,ymm26,3 + valignq ymm26,ymm26,ymm25,3 + valignq ymm25,ymm25,ymm24,3 + valignq ymm24,ymm24,ymm23,3 + valignq ymm23,ymm23,ymm2,3 + valignq ymm2,ymm2,ymm1,3 + valignq ymm1,ymm1,ymm0,3 + valignq ymm0,ymm0,YMMWORD[$L$zeros],3 + + + vpandq ymm13,ymm13,YMMWORD[$L$mask52x4] + vpandq ymm14,ymm14,YMMWORD[$L$mask52x4] + vpandq ymm15,ymm15,YMMWORD[$L$mask52x4] + vpandq ymm16,ymm16,YMMWORD[$L$mask52x4] + vpandq ymm17,ymm17,YMMWORD[$L$mask52x4] + vpandq ymm18,ymm18,YMMWORD[$L$mask52x4] + vpandq ymm19,ymm19,YMMWORD[$L$mask52x4] + vpandq ymm20,ymm20,YMMWORD[$L$mask52x4] + vpandq ymm21,ymm21,YMMWORD[$L$mask52x4] + vpandq ymm22,ymm22,YMMWORD[$L$mask52x4] + + + vpaddq ymm13,ymm13,ymm0 + vpaddq ymm14,ymm14,ymm1 + vpaddq ymm15,ymm15,ymm2 + vpaddq ymm16,ymm16,ymm23 + vpaddq ymm17,ymm17,ymm24 + vpaddq ymm18,ymm18,ymm25 + vpaddq ymm19,ymm19,ymm26 + vpaddq ymm20,ymm20,ymm27 + vpaddq ymm21,ymm21,ymm28 + vpaddq ymm22,ymm22,ymm29 + + + + vpcmpuq k1,ymm13,YMMWORD[$L$mask52x4],6 + vpcmpuq k2,ymm14,YMMWORD[$L$mask52x4],6 + kmovb r14d,k1 + kmovb r13d,k2 + shl r13b,4 + or r14b,r13b + + vpcmpuq k1,ymm15,YMMWORD[$L$mask52x4],6 + vpcmpuq k2,ymm16,YMMWORD[$L$mask52x4],6 + kmovb r13d,k1 + kmovb r12d,k2 + shl r12b,4 + or r13b,r12b + + vpcmpuq k1,ymm17,YMMWORD[$L$mask52x4],6 + vpcmpuq k2,ymm18,YMMWORD[$L$mask52x4],6 + kmovb r12d,k1 + kmovb r11d,k2 + shl r11b,4 + or r12b,r11b + + vpcmpuq k1,ymm19,YMMWORD[$L$mask52x4],6 + vpcmpuq k2,ymm20,YMMWORD[$L$mask52x4],6 + kmovb r11d,k1 + kmovb r10d,k2 + shl r10b,4 + or r11b,r10b + + vpcmpuq k1,ymm21,YMMWORD[$L$mask52x4],6 + vpcmpuq k2,ymm22,YMMWORD[$L$mask52x4],6 + kmovb r10d,k1 + kmovb r9d,k2 + shl r9b,4 + or r10b,r9b + + add r14b,r14b + adc r13b,r13b + adc r12b,r12b + adc r11b,r11b + adc r10b,r10b + + + vpcmpuq k1,ymm13,YMMWORD[$L$mask52x4],0 + vpcmpuq k2,ymm14,YMMWORD[$L$mask52x4],0 + kmovb r9d,k1 + kmovb r8d,k2 + shl r8b,4 + or r9b,r8b + + vpcmpuq k1,ymm15,YMMWORD[$L$mask52x4],0 + vpcmpuq k2,ymm16,YMMWORD[$L$mask52x4],0 + kmovb r8d,k1 + kmovb edx,k2 + shl dl,4 + or r8b,dl + + vpcmpuq k1,ymm17,YMMWORD[$L$mask52x4],0 + vpcmpuq k2,ymm18,YMMWORD[$L$mask52x4],0 + kmovb edx,k1 + kmovb ecx,k2 + shl cl,4 + or dl,cl + + vpcmpuq k1,ymm19,YMMWORD[$L$mask52x4],0 + vpcmpuq k2,ymm20,YMMWORD[$L$mask52x4],0 + kmovb ecx,k1 + kmovb ebx,k2 + shl bl,4 + or cl,bl + + vpcmpuq k1,ymm21,YMMWORD[$L$mask52x4],0 + vpcmpuq k2,ymm22,YMMWORD[$L$mask52x4],0 + kmovb ebx,k1 + kmovb eax,k2 + shl al,4 + or bl,al + + add r14b,r9b + adc r13b,r8b + adc r12b,dl + adc r11b,cl + adc r10b,bl + + xor r14b,r9b + xor r13b,r8b + xor r12b,dl + xor r11b,cl + xor r10b,bl + + kmovb k1,r14d + shr r14b,4 + kmovb k2,r14d + kmovb k3,r13d + shr r13b,4 + kmovb k4,r13d + kmovb k5,r12d + shr r12b,4 + kmovb k6,r12d + kmovb k7,r11d + + vpsubq ymm13{k1},ymm13,YMMWORD[$L$mask52x4] + vpsubq ymm14{k2},ymm14,YMMWORD[$L$mask52x4] + vpsubq ymm15{k3},ymm15,YMMWORD[$L$mask52x4] + vpsubq ymm16{k4},ymm16,YMMWORD[$L$mask52x4] + vpsubq ymm17{k5},ymm17,YMMWORD[$L$mask52x4] + vpsubq ymm18{k6},ymm18,YMMWORD[$L$mask52x4] + vpsubq ymm19{k7},ymm19,YMMWORD[$L$mask52x4] + + vpandq ymm13,ymm13,YMMWORD[$L$mask52x4] + vpandq ymm14,ymm14,YMMWORD[$L$mask52x4] + vpandq ymm15,ymm15,YMMWORD[$L$mask52x4] + vpandq ymm16,ymm16,YMMWORD[$L$mask52x4] + vpandq ymm17,ymm17,YMMWORD[$L$mask52x4] + vpandq ymm18,ymm18,YMMWORD[$L$mask52x4] + vpandq ymm19,ymm19,YMMWORD[$L$mask52x4] + + shr r11b,4 + kmovb k1,r11d + kmovb k2,r10d + shr r10b,4 + kmovb k3,r10d + + vpsubq ymm20{k1},ymm20,YMMWORD[$L$mask52x4] + vpsubq ymm21{k2},ymm21,YMMWORD[$L$mask52x4] + vpsubq ymm22{k3},ymm22,YMMWORD[$L$mask52x4] + + vpandq ymm20,ymm20,YMMWORD[$L$mask52x4] + vpandq ymm21,ymm21,YMMWORD[$L$mask52x4] + vpandq ymm22,ymm22,YMMWORD[$L$mask52x4] + + vmovdqu64 YMMWORD[rdi],ymm3 + vmovdqu64 YMMWORD[32+rdi],ymm4 + vmovdqu64 YMMWORD[64+rdi],ymm5 + vmovdqu64 YMMWORD[96+rdi],ymm6 + vmovdqu64 YMMWORD[128+rdi],ymm7 + vmovdqu64 YMMWORD[160+rdi],ymm8 + vmovdqu64 YMMWORD[192+rdi],ymm9 + vmovdqu64 YMMWORD[224+rdi],ymm10 + vmovdqu64 YMMWORD[256+rdi],ymm11 + vmovdqu64 YMMWORD[288+rdi],ymm12 + + vmovdqu64 YMMWORD[320+rdi],ymm13 + vmovdqu64 YMMWORD[352+rdi],ymm14 + vmovdqu64 YMMWORD[384+rdi],ymm15 + vmovdqu64 YMMWORD[416+rdi],ymm16 + vmovdqu64 YMMWORD[448+rdi],ymm17 + vmovdqu64 YMMWORD[480+rdi],ymm18 + vmovdqu64 YMMWORD[512+rdi],ymm19 + vmovdqu64 YMMWORD[544+rdi],ymm20 + vmovdqu64 YMMWORD[576+rdi],ymm21 + vmovdqu64 YMMWORD[608+rdi],ymm22 + + vzeroupper + lea rax,[rsp] + + vmovdqa64 xmm6,XMMWORD[rax] + vmovdqa64 xmm7,XMMWORD[16+rax] + vmovdqa64 xmm8,XMMWORD[32+rax] + vmovdqa64 xmm9,XMMWORD[48+rax] + vmovdqa64 xmm10,XMMWORD[64+rax] + vmovdqa64 xmm11,XMMWORD[80+rax] + vmovdqa64 xmm12,XMMWORD[96+rax] + vmovdqa64 xmm13,XMMWORD[112+rax] + vmovdqa64 xmm14,XMMWORD[128+rax] + vmovdqa64 xmm15,XMMWORD[144+rax] + lea rax,[168+rsp] + mov r15,QWORD[rax] + + mov r14,QWORD[8+rax] + + mov r13,QWORD[16+rax] + + mov r12,QWORD[24+rax] + + mov rbp,QWORD[32+rax] + + mov rbx,QWORD[40+rax] + + lea rsp,[48+rax] + +$L$ossl_rsaz_amm52x40_x2_ifma256_epilogue: + mov rdi,QWORD[8+rsp] ;WIN64 epilogue + mov rsi,QWORD[16+rsp] + DB 0F3h,0C3h ;repret + +$L$SEH_end_ossl_rsaz_amm52x40_x2_ifma256: +section .text code align=64 + + +ALIGN 32 +global ossl_extract_multiplier_2x40_win5 + +ossl_extract_multiplier_2x40_win5: + +DB 243,15,30,250 + vmovdqa64 ymm24,YMMWORD[$L$ones] + vpbroadcastq ymm22,r8 + vpbroadcastq ymm23,r9 + lea rax,[20480+rdx] + + + mov r10,rdx + + + vpxor xmm0,xmm0,xmm0 + vmovdqa64 ymm1,ymm0 + vmovdqa64 ymm2,ymm0 + vmovdqa64 ymm3,ymm0 + vmovdqa64 ymm4,ymm0 + vmovdqa64 ymm5,ymm0 + vmovdqa64 ymm16,ymm0 + vmovdqa64 ymm17,ymm0 + vmovdqa64 ymm18,ymm0 + vmovdqa64 ymm19,ymm0 + vpxorq ymm21,ymm21,ymm21 +ALIGN 32 +$L$loop_0: + vpcmpq k1,ymm22,ymm21,0 + vmovdqu64 ymm20,YMMWORD[rdx] + vpblendmq ymm0{k1},ymm0,ymm20 + vmovdqu64 ymm20,YMMWORD[32+rdx] + vpblendmq ymm1{k1},ymm1,ymm20 + vmovdqu64 ymm20,YMMWORD[64+rdx] + vpblendmq ymm2{k1},ymm2,ymm20 + vmovdqu64 ymm20,YMMWORD[96+rdx] + vpblendmq ymm3{k1},ymm3,ymm20 + vmovdqu64 ymm20,YMMWORD[128+rdx] + vpblendmq ymm4{k1},ymm4,ymm20 + vmovdqu64 ymm20,YMMWORD[160+rdx] + vpblendmq ymm5{k1},ymm5,ymm20 + vmovdqu64 ymm20,YMMWORD[192+rdx] + vpblendmq ymm16{k1},ymm16,ymm20 + vmovdqu64 ymm20,YMMWORD[224+rdx] + vpblendmq ymm17{k1},ymm17,ymm20 + vmovdqu64 ymm20,YMMWORD[256+rdx] + vpblendmq ymm18{k1},ymm18,ymm20 + vmovdqu64 ymm20,YMMWORD[288+rdx] + vpblendmq ymm19{k1},ymm19,ymm20 + vpaddq ymm21,ymm21,ymm24 + add rdx,640 + cmp rax,rdx + jne NEAR $L$loop_0 + vmovdqu64 YMMWORD[rcx],ymm0 + vmovdqu64 YMMWORD[32+rcx],ymm1 + vmovdqu64 YMMWORD[64+rcx],ymm2 + vmovdqu64 YMMWORD[96+rcx],ymm3 + vmovdqu64 YMMWORD[128+rcx],ymm4 + vmovdqu64 YMMWORD[160+rcx],ymm5 + vmovdqu64 YMMWORD[192+rcx],ymm16 + vmovdqu64 YMMWORD[224+rcx],ymm17 + vmovdqu64 YMMWORD[256+rcx],ymm18 + vmovdqu64 YMMWORD[288+rcx],ymm19 + mov rdx,r10 + vpxorq ymm21,ymm21,ymm21 +ALIGN 32 +$L$loop_320: + vpcmpq k1,ymm23,ymm21,0 + vmovdqu64 ymm20,YMMWORD[320+rdx] + vpblendmq ymm0{k1},ymm0,ymm20 + vmovdqu64 ymm20,YMMWORD[352+rdx] + vpblendmq ymm1{k1},ymm1,ymm20 + vmovdqu64 ymm20,YMMWORD[384+rdx] + vpblendmq ymm2{k1},ymm2,ymm20 + vmovdqu64 ymm20,YMMWORD[416+rdx] + vpblendmq ymm3{k1},ymm3,ymm20 + vmovdqu64 ymm20,YMMWORD[448+rdx] + vpblendmq ymm4{k1},ymm4,ymm20 + vmovdqu64 ymm20,YMMWORD[480+rdx] + vpblendmq ymm5{k1},ymm5,ymm20 + vmovdqu64 ymm20,YMMWORD[512+rdx] + vpblendmq ymm16{k1},ymm16,ymm20 + vmovdqu64 ymm20,YMMWORD[544+rdx] + vpblendmq ymm17{k1},ymm17,ymm20 + vmovdqu64 ymm20,YMMWORD[576+rdx] + vpblendmq ymm18{k1},ymm18,ymm20 + vmovdqu64 ymm20,YMMWORD[608+rdx] + vpblendmq ymm19{k1},ymm19,ymm20 + vpaddq ymm21,ymm21,ymm24 + add rdx,640 + cmp rax,rdx + jne NEAR $L$loop_320 + vmovdqu64 YMMWORD[320+rcx],ymm0 + vmovdqu64 YMMWORD[352+rcx],ymm1 + vmovdqu64 YMMWORD[384+rcx],ymm2 + vmovdqu64 YMMWORD[416+rcx],ymm3 + vmovdqu64 YMMWORD[448+rcx],ymm4 + vmovdqu64 YMMWORD[480+rcx],ymm5 + vmovdqu64 YMMWORD[512+rcx],ymm16 + vmovdqu64 YMMWORD[544+rcx],ymm17 + vmovdqu64 YMMWORD[576+rcx],ymm18 + vmovdqu64 YMMWORD[608+rcx],ymm19 + + DB 0F3h,0C3h ;repret + + +section .rdata rdata align=32 +ALIGN 32 +$L$ones: + DQ 1,1,1,1 +$L$zeros: + DQ 0,0,0,0 +EXTERN __imp_RtlVirtualUnwind + +ALIGN 16 +rsaz_avx_handler: + push rsi + push rdi + push rbx + push rbp + push r12 + push r13 + push r14 + push r15 + pushfq + sub rsp,64 + + mov rax,QWORD[120+r8] + mov rbx,QWORD[248+r8] + + mov rsi,QWORD[8+r9] + mov r11,QWORD[56+r9] + + mov r10d,DWORD[r11] + lea r10,[r10*1+rsi] + cmp rbx,r10 + jb NEAR $L$common_seh_tail + + mov r10d,DWORD[4+r11] + lea r10,[r10*1+rsi] + cmp rbx,r10 + jae NEAR $L$common_seh_tail + + mov rax,QWORD[152+r8] + + lea rsi,[rax] + lea rdi,[512+r8] + mov ecx,20 + DD 0xa548f3fc + + lea rax,[216+rax] + + mov rbx,QWORD[((-8))+rax] + mov rbp,QWORD[((-16))+rax] + mov r12,QWORD[((-24))+rax] + mov r13,QWORD[((-32))+rax] + mov r14,QWORD[((-40))+rax] + mov r15,QWORD[((-48))+rax] + mov QWORD[144+r8],rbx + mov QWORD[160+r8],rbp + mov QWORD[216+r8],r12 + mov QWORD[224+r8],r13 + mov QWORD[232+r8],r14 + mov QWORD[240+r8],r15 + +$L$common_seh_tail: + mov rdi,QWORD[8+rax] + mov rsi,QWORD[16+rax] + mov QWORD[152+r8],rax + mov QWORD[168+r8],rsi + mov QWORD[176+r8],rdi + + mov rdi,QWORD[40+r9] + mov rsi,r8 + mov ecx,154 + DD 0xa548f3fc + + mov rsi,r9 + xor rcx,rcx + mov rdx,QWORD[8+rsi] + mov r8,QWORD[rsi] + mov r9,QWORD[16+rsi] + mov r10,QWORD[40+rsi] + lea r11,[56+rsi] + lea r12,[24+rsi] + mov QWORD[32+rsp],r10 + mov QWORD[40+rsp],r11 + mov QWORD[48+rsp],r12 + mov QWORD[56+rsp],rcx + call QWORD[__imp_RtlVirtualUnwind] + + mov eax,1 + add rsp,64 + popfq + pop r15 + pop r14 + pop r13 + pop r12 + pop rbp + pop rbx + pop rdi + pop rsi + DB 0F3h,0C3h ;repret + + +section .pdata rdata align=4 +ALIGN 4 + DD $L$SEH_begin_ossl_rsaz_amm52x40_x1_ifma256 wrt ..imagebase + DD $L$SEH_end_ossl_rsaz_amm52x40_x1_ifma256 wrt ..imagebase + DD $L$SEH_info_ossl_rsaz_amm52x40_x1_ifma256 wrt ..imagebase + + DD $L$SEH_begin_ossl_rsaz_amm52x40_x2_ifma256 wrt ..imagebase + DD $L$SEH_end_ossl_rsaz_amm52x40_x2_ifma256 wrt ..imagebase + DD $L$SEH_info_ossl_rsaz_amm52x40_x2_ifma256 wrt ..imagebase + +section .xdata rdata align=8 +ALIGN 8 +$L$SEH_info_ossl_rsaz_amm52x40_x1_ifma256: +DB 9,0,0,0 + DD rsaz_avx_handler wrt ..imagebase + DD $L$ossl_rsaz_amm52x40_x1_ifma256_body wrt ..imagebase,$L$ossl_rsaz_amm52x40_x1_ifma256_epilogue wrt ..imagebase +$L$SEH_info_ossl_rsaz_amm52x40_x2_ifma256: +DB 9,0,0,0 + DD rsaz_avx_handler wrt ..imagebase + DD $L$ossl_rsaz_amm52x40_x2_ifma256_body wrt ..imagebase,$L$ossl_rsaz_amm52x40_x2_ifma256_epilogue wrt ..imagebase diff --git a/deps/openssl/config/archs/VC-WIN64A/asm/crypto/bn/rsaz-4k-avxifma.asm b/deps/openssl/config/archs/VC-WIN64A/asm/crypto/bn/rsaz-4k-avxifma.asm new file mode 100644 index 00000000000000..dd22db0064b9c6 --- /dev/null +++ b/deps/openssl/config/archs/VC-WIN64A/asm/crypto/bn/rsaz-4k-avxifma.asm @@ -0,0 +1,17 @@ +default rel +%define XMMWORD +%define YMMWORD +%define ZMMWORD +section .text code align=64 + + +global ossl_rsaz_amm52x40_x1_avxifma256 +global ossl_rsaz_amm52x40_x2_avxifma256 +global ossl_extract_multiplier_2x40_win5_avx + +ossl_rsaz_amm52x40_x1_avxifma256: +ossl_rsaz_amm52x40_x2_avxifma256: +ossl_extract_multiplier_2x40_win5_avx: +DB 0x0f,0x0b + DB 0F3h,0C3h ;repret + diff --git a/deps/openssl/config/archs/VC-WIN64A/asm/crypto/bn/rsaz-avx2.asm b/deps/openssl/config/archs/VC-WIN64A/asm/crypto/bn/rsaz-avx2.asm index f854d1783d1687..9d58c4fd0148e5 100644 --- a/deps/openssl/config/archs/VC-WIN64A/asm/crypto/bn/rsaz-avx2.asm +++ b/deps/openssl/config/archs/VC-WIN64A/asm/crypto/bn/rsaz-avx2.asm @@ -1832,6 +1832,7 @@ rsaz_avx2_eligible: DB 0F3h,0C3h ;repret +section .rdata rdata align=64 ALIGN 64 $L$and_mask: DQ 0x1fffffff,0x1fffffff,0x1fffffff,0x1fffffff @@ -1843,6 +1844,7 @@ $L$inc: DD 0,0,0,0,1,1,1,1 DD 2,2,2,2,3,3,3,3 DD 4,4,4,4,4,4,4,4 +section .text ALIGN 64 EXTERN __imp_RtlVirtualUnwind diff --git a/deps/openssl/config/archs/VC-WIN64A/asm/crypto/bn/rsaz-avx512.asm b/deps/openssl/config/archs/VC-WIN64A/asm/crypto/bn/rsaz-avx512.asm deleted file mode 100644 index 8bedb848d91107..00000000000000 --- a/deps/openssl/config/archs/VC-WIN64A/asm/crypto/bn/rsaz-avx512.asm +++ /dev/null @@ -1,1031 +0,0 @@ -default rel -%define XMMWORD -%define YMMWORD -%define ZMMWORD -EXTERN OPENSSL_ia32cap_P -global ossl_rsaz_avx512ifma_eligible - -ALIGN 32 -ossl_rsaz_avx512ifma_eligible: - mov ecx,DWORD[((OPENSSL_ia32cap_P+8))] - xor eax,eax - and ecx,2149777408 - cmp ecx,2149777408 - cmove eax,ecx - DB 0F3h,0C3h ;repret - -section .text code align=64 - - -global ossl_rsaz_amm52x20_x1_256 - -ALIGN 32 -ossl_rsaz_amm52x20_x1_256: - mov QWORD[8+rsp],rdi ;WIN64 prologue - mov QWORD[16+rsp],rsi - mov rax,rsp -$L$SEH_begin_ossl_rsaz_amm52x20_x1_256: - mov rdi,rcx - mov rsi,rdx - mov rdx,r8 - mov rcx,r9 - mov r8,QWORD[40+rsp] - - - -DB 243,15,30,250 - push rbx - - push rbp - - push r12 - - push r13 - - push r14 - - push r15 - -$L$rsaz_amm52x20_x1_256_body: - - - vpxord ymm0,ymm0,ymm0 - vmovdqa64 ymm1,ymm0 - vmovdqa64 ymm16,ymm0 - vmovdqa64 ymm17,ymm0 - vmovdqa64 ymm18,ymm0 - vmovdqa64 ymm19,ymm0 - - xor r9d,r9d - - mov r11,rdx - mov rax,0xfffffffffffff - - - mov ebx,5 - -ALIGN 32 -$L$loop5: - mov r13,QWORD[r11] - - vpbroadcastq ymm3,r13 - mov rdx,QWORD[rsi] - mulx r12,r13,r13 - add r9,r13 - mov r10,r12 - adc r10,0 - - mov r13,r8 - imul r13,r9 - and r13,rax - - vpbroadcastq ymm4,r13 - mov rdx,QWORD[rcx] - mulx r12,r13,r13 - add r9,r13 - adc r10,r12 - - shr r9,52 - sal r10,12 - or r9,r10 - - vpmadd52luq ymm1,ymm3,YMMWORD[rsi] - vpmadd52luq ymm16,ymm3,YMMWORD[32+rsi] - vpmadd52luq ymm17,ymm3,YMMWORD[64+rsi] - vpmadd52luq ymm18,ymm3,YMMWORD[96+rsi] - vpmadd52luq ymm19,ymm3,YMMWORD[128+rsi] - - vpmadd52luq ymm1,ymm4,YMMWORD[rcx] - vpmadd52luq ymm16,ymm4,YMMWORD[32+rcx] - vpmadd52luq ymm17,ymm4,YMMWORD[64+rcx] - vpmadd52luq ymm18,ymm4,YMMWORD[96+rcx] - vpmadd52luq ymm19,ymm4,YMMWORD[128+rcx] - - - valignq ymm1,ymm16,ymm1,1 - valignq ymm16,ymm17,ymm16,1 - valignq ymm17,ymm18,ymm17,1 - valignq ymm18,ymm19,ymm18,1 - valignq ymm19,ymm0,ymm19,1 - - vmovq r13,xmm1 - add r9,r13 - - vpmadd52huq ymm1,ymm3,YMMWORD[rsi] - vpmadd52huq ymm16,ymm3,YMMWORD[32+rsi] - vpmadd52huq ymm17,ymm3,YMMWORD[64+rsi] - vpmadd52huq ymm18,ymm3,YMMWORD[96+rsi] - vpmadd52huq ymm19,ymm3,YMMWORD[128+rsi] - - vpmadd52huq ymm1,ymm4,YMMWORD[rcx] - vpmadd52huq ymm16,ymm4,YMMWORD[32+rcx] - vpmadd52huq ymm17,ymm4,YMMWORD[64+rcx] - vpmadd52huq ymm18,ymm4,YMMWORD[96+rcx] - vpmadd52huq ymm19,ymm4,YMMWORD[128+rcx] - mov r13,QWORD[8+r11] - - vpbroadcastq ymm3,r13 - mov rdx,QWORD[rsi] - mulx r12,r13,r13 - add r9,r13 - mov r10,r12 - adc r10,0 - - mov r13,r8 - imul r13,r9 - and r13,rax - - vpbroadcastq ymm4,r13 - mov rdx,QWORD[rcx] - mulx r12,r13,r13 - add r9,r13 - adc r10,r12 - - shr r9,52 - sal r10,12 - or r9,r10 - - vpmadd52luq ymm1,ymm3,YMMWORD[rsi] - vpmadd52luq ymm16,ymm3,YMMWORD[32+rsi] - vpmadd52luq ymm17,ymm3,YMMWORD[64+rsi] - vpmadd52luq ymm18,ymm3,YMMWORD[96+rsi] - vpmadd52luq ymm19,ymm3,YMMWORD[128+rsi] - - vpmadd52luq ymm1,ymm4,YMMWORD[rcx] - vpmadd52luq ymm16,ymm4,YMMWORD[32+rcx] - vpmadd52luq ymm17,ymm4,YMMWORD[64+rcx] - vpmadd52luq ymm18,ymm4,YMMWORD[96+rcx] - vpmadd52luq ymm19,ymm4,YMMWORD[128+rcx] - - - valignq ymm1,ymm16,ymm1,1 - valignq ymm16,ymm17,ymm16,1 - valignq ymm17,ymm18,ymm17,1 - valignq ymm18,ymm19,ymm18,1 - valignq ymm19,ymm0,ymm19,1 - - vmovq r13,xmm1 - add r9,r13 - - vpmadd52huq ymm1,ymm3,YMMWORD[rsi] - vpmadd52huq ymm16,ymm3,YMMWORD[32+rsi] - vpmadd52huq ymm17,ymm3,YMMWORD[64+rsi] - vpmadd52huq ymm18,ymm3,YMMWORD[96+rsi] - vpmadd52huq ymm19,ymm3,YMMWORD[128+rsi] - - vpmadd52huq ymm1,ymm4,YMMWORD[rcx] - vpmadd52huq ymm16,ymm4,YMMWORD[32+rcx] - vpmadd52huq ymm17,ymm4,YMMWORD[64+rcx] - vpmadd52huq ymm18,ymm4,YMMWORD[96+rcx] - vpmadd52huq ymm19,ymm4,YMMWORD[128+rcx] - mov r13,QWORD[16+r11] - - vpbroadcastq ymm3,r13 - mov rdx,QWORD[rsi] - mulx r12,r13,r13 - add r9,r13 - mov r10,r12 - adc r10,0 - - mov r13,r8 - imul r13,r9 - and r13,rax - - vpbroadcastq ymm4,r13 - mov rdx,QWORD[rcx] - mulx r12,r13,r13 - add r9,r13 - adc r10,r12 - - shr r9,52 - sal r10,12 - or r9,r10 - - vpmadd52luq ymm1,ymm3,YMMWORD[rsi] - vpmadd52luq ymm16,ymm3,YMMWORD[32+rsi] - vpmadd52luq ymm17,ymm3,YMMWORD[64+rsi] - vpmadd52luq ymm18,ymm3,YMMWORD[96+rsi] - vpmadd52luq ymm19,ymm3,YMMWORD[128+rsi] - - vpmadd52luq ymm1,ymm4,YMMWORD[rcx] - vpmadd52luq ymm16,ymm4,YMMWORD[32+rcx] - vpmadd52luq ymm17,ymm4,YMMWORD[64+rcx] - vpmadd52luq ymm18,ymm4,YMMWORD[96+rcx] - vpmadd52luq ymm19,ymm4,YMMWORD[128+rcx] - - - valignq ymm1,ymm16,ymm1,1 - valignq ymm16,ymm17,ymm16,1 - valignq ymm17,ymm18,ymm17,1 - valignq ymm18,ymm19,ymm18,1 - valignq ymm19,ymm0,ymm19,1 - - vmovq r13,xmm1 - add r9,r13 - - vpmadd52huq ymm1,ymm3,YMMWORD[rsi] - vpmadd52huq ymm16,ymm3,YMMWORD[32+rsi] - vpmadd52huq ymm17,ymm3,YMMWORD[64+rsi] - vpmadd52huq ymm18,ymm3,YMMWORD[96+rsi] - vpmadd52huq ymm19,ymm3,YMMWORD[128+rsi] - - vpmadd52huq ymm1,ymm4,YMMWORD[rcx] - vpmadd52huq ymm16,ymm4,YMMWORD[32+rcx] - vpmadd52huq ymm17,ymm4,YMMWORD[64+rcx] - vpmadd52huq ymm18,ymm4,YMMWORD[96+rcx] - vpmadd52huq ymm19,ymm4,YMMWORD[128+rcx] - mov r13,QWORD[24+r11] - - vpbroadcastq ymm3,r13 - mov rdx,QWORD[rsi] - mulx r12,r13,r13 - add r9,r13 - mov r10,r12 - adc r10,0 - - mov r13,r8 - imul r13,r9 - and r13,rax - - vpbroadcastq ymm4,r13 - mov rdx,QWORD[rcx] - mulx r12,r13,r13 - add r9,r13 - adc r10,r12 - - shr r9,52 - sal r10,12 - or r9,r10 - - vpmadd52luq ymm1,ymm3,YMMWORD[rsi] - vpmadd52luq ymm16,ymm3,YMMWORD[32+rsi] - vpmadd52luq ymm17,ymm3,YMMWORD[64+rsi] - vpmadd52luq ymm18,ymm3,YMMWORD[96+rsi] - vpmadd52luq ymm19,ymm3,YMMWORD[128+rsi] - - vpmadd52luq ymm1,ymm4,YMMWORD[rcx] - vpmadd52luq ymm16,ymm4,YMMWORD[32+rcx] - vpmadd52luq ymm17,ymm4,YMMWORD[64+rcx] - vpmadd52luq ymm18,ymm4,YMMWORD[96+rcx] - vpmadd52luq ymm19,ymm4,YMMWORD[128+rcx] - - - valignq ymm1,ymm16,ymm1,1 - valignq ymm16,ymm17,ymm16,1 - valignq ymm17,ymm18,ymm17,1 - valignq ymm18,ymm19,ymm18,1 - valignq ymm19,ymm0,ymm19,1 - - vmovq r13,xmm1 - add r9,r13 - - vpmadd52huq ymm1,ymm3,YMMWORD[rsi] - vpmadd52huq ymm16,ymm3,YMMWORD[32+rsi] - vpmadd52huq ymm17,ymm3,YMMWORD[64+rsi] - vpmadd52huq ymm18,ymm3,YMMWORD[96+rsi] - vpmadd52huq ymm19,ymm3,YMMWORD[128+rsi] - - vpmadd52huq ymm1,ymm4,YMMWORD[rcx] - vpmadd52huq ymm16,ymm4,YMMWORD[32+rcx] - vpmadd52huq ymm17,ymm4,YMMWORD[64+rcx] - vpmadd52huq ymm18,ymm4,YMMWORD[96+rcx] - vpmadd52huq ymm19,ymm4,YMMWORD[128+rcx] - lea r11,[32+r11] - dec ebx - jne NEAR $L$loop5 - - vmovdqa64 ymm4,YMMWORD[$L$mask52x4] - - vpbroadcastq ymm3,r9 - vpblendd ymm1,ymm1,ymm3,3 - - - - vpsrlq ymm24,ymm1,52 - vpsrlq ymm25,ymm16,52 - vpsrlq ymm26,ymm17,52 - vpsrlq ymm27,ymm18,52 - vpsrlq ymm28,ymm19,52 - - - valignq ymm28,ymm28,ymm27,3 - valignq ymm27,ymm27,ymm26,3 - valignq ymm26,ymm26,ymm25,3 - valignq ymm25,ymm25,ymm24,3 - valignq ymm24,ymm24,ymm0,3 - - - vpandq ymm1,ymm1,ymm4 - vpandq ymm16,ymm16,ymm4 - vpandq ymm17,ymm17,ymm4 - vpandq ymm18,ymm18,ymm4 - vpandq ymm19,ymm19,ymm4 - - - vpaddq ymm1,ymm1,ymm24 - vpaddq ymm16,ymm16,ymm25 - vpaddq ymm17,ymm17,ymm26 - vpaddq ymm18,ymm18,ymm27 - vpaddq ymm19,ymm19,ymm28 - - - - vpcmpuq k1,ymm4,ymm1,1 - vpcmpuq k2,ymm4,ymm16,1 - vpcmpuq k3,ymm4,ymm17,1 - vpcmpuq k4,ymm4,ymm18,1 - vpcmpuq k5,ymm4,ymm19,1 - kmovb r14d,k1 - kmovb r13d,k2 - kmovb r12d,k3 - kmovb r11d,k4 - kmovb r10d,k5 - - - vpcmpuq k1,ymm4,ymm1,0 - vpcmpuq k2,ymm4,ymm16,0 - vpcmpuq k3,ymm4,ymm17,0 - vpcmpuq k4,ymm4,ymm18,0 - vpcmpuq k5,ymm4,ymm19,0 - kmovb r9d,k1 - kmovb r8d,k2 - kmovb ebx,k3 - kmovb ecx,k4 - kmovb edx,k5 - - - - shl r13b,4 - or r14b,r13b - shl r11b,4 - or r12b,r11b - - add r14b,r14b - adc r12b,r12b - adc r10b,r10b - - shl r8b,4 - or r9b,r8b - shl cl,4 - or bl,cl - - add r14b,r9b - adc r12b,bl - adc r10b,dl - - xor r14b,r9b - xor r12b,bl - xor r10b,dl - - kmovb k1,r14d - shr r14b,4 - kmovb k2,r14d - kmovb k3,r12d - shr r12b,4 - kmovb k4,r12d - kmovb k5,r10d - - - vpsubq ymm1{k1},ymm1,ymm4 - vpsubq ymm16{k2},ymm16,ymm4 - vpsubq ymm17{k3},ymm17,ymm4 - vpsubq ymm18{k4},ymm18,ymm4 - vpsubq ymm19{k5},ymm19,ymm4 - - vpandq ymm1,ymm1,ymm4 - vpandq ymm16,ymm16,ymm4 - vpandq ymm17,ymm17,ymm4 - vpandq ymm18,ymm18,ymm4 - vpandq ymm19,ymm19,ymm4 - - vmovdqu64 YMMWORD[rdi],ymm1 - vmovdqu64 YMMWORD[32+rdi],ymm16 - vmovdqu64 YMMWORD[64+rdi],ymm17 - vmovdqu64 YMMWORD[96+rdi],ymm18 - vmovdqu64 YMMWORD[128+rdi],ymm19 - - vzeroupper - mov r15,QWORD[rsp] - - mov r14,QWORD[8+rsp] - - mov r13,QWORD[16+rsp] - - mov r12,QWORD[24+rsp] - - mov rbp,QWORD[32+rsp] - - mov rbx,QWORD[40+rsp] - - lea rsp,[48+rsp] - -$L$rsaz_amm52x20_x1_256_epilogue: - mov rdi,QWORD[8+rsp] ;WIN64 epilogue - mov rsi,QWORD[16+rsp] - DB 0F3h,0C3h ;repret - -$L$SEH_end_ossl_rsaz_amm52x20_x1_256: -section .data data align=8 - -ALIGN 32 -$L$mask52x4: - DQ 0xfffffffffffff - DQ 0xfffffffffffff - DQ 0xfffffffffffff - DQ 0xfffffffffffff -section .text code align=64 - - -global ossl_rsaz_amm52x20_x2_256 - -ALIGN 32 -ossl_rsaz_amm52x20_x2_256: - mov QWORD[8+rsp],rdi ;WIN64 prologue - mov QWORD[16+rsp],rsi - mov rax,rsp -$L$SEH_begin_ossl_rsaz_amm52x20_x2_256: - mov rdi,rcx - mov rsi,rdx - mov rdx,r8 - mov rcx,r9 - mov r8,QWORD[40+rsp] - - - -DB 243,15,30,250 - push rbx - - push rbp - - push r12 - - push r13 - - push r14 - - push r15 - -$L$rsaz_amm52x20_x2_256_body: - - - vpxord ymm0,ymm0,ymm0 - vmovdqa64 ymm1,ymm0 - vmovdqa64 ymm16,ymm0 - vmovdqa64 ymm17,ymm0 - vmovdqa64 ymm18,ymm0 - vmovdqa64 ymm19,ymm0 - vmovdqa64 ymm2,ymm0 - vmovdqa64 ymm20,ymm0 - vmovdqa64 ymm21,ymm0 - vmovdqa64 ymm22,ymm0 - vmovdqa64 ymm23,ymm0 - - xor r9d,r9d - xor r15d,r15d - - mov r11,rdx - mov rax,0xfffffffffffff - - mov ebx,20 - -ALIGN 32 -$L$loop20: - mov r13,QWORD[r11] - - vpbroadcastq ymm3,r13 - mov rdx,QWORD[rsi] - mulx r12,r13,r13 - add r9,r13 - mov r10,r12 - adc r10,0 - - mov r13,QWORD[r8] - imul r13,r9 - and r13,rax - - vpbroadcastq ymm4,r13 - mov rdx,QWORD[rcx] - mulx r12,r13,r13 - add r9,r13 - adc r10,r12 - - shr r9,52 - sal r10,12 - or r9,r10 - - vpmadd52luq ymm1,ymm3,YMMWORD[rsi] - vpmadd52luq ymm16,ymm3,YMMWORD[32+rsi] - vpmadd52luq ymm17,ymm3,YMMWORD[64+rsi] - vpmadd52luq ymm18,ymm3,YMMWORD[96+rsi] - vpmadd52luq ymm19,ymm3,YMMWORD[128+rsi] - - vpmadd52luq ymm1,ymm4,YMMWORD[rcx] - vpmadd52luq ymm16,ymm4,YMMWORD[32+rcx] - vpmadd52luq ymm17,ymm4,YMMWORD[64+rcx] - vpmadd52luq ymm18,ymm4,YMMWORD[96+rcx] - vpmadd52luq ymm19,ymm4,YMMWORD[128+rcx] - - - valignq ymm1,ymm16,ymm1,1 - valignq ymm16,ymm17,ymm16,1 - valignq ymm17,ymm18,ymm17,1 - valignq ymm18,ymm19,ymm18,1 - valignq ymm19,ymm0,ymm19,1 - - vmovq r13,xmm1 - add r9,r13 - - vpmadd52huq ymm1,ymm3,YMMWORD[rsi] - vpmadd52huq ymm16,ymm3,YMMWORD[32+rsi] - vpmadd52huq ymm17,ymm3,YMMWORD[64+rsi] - vpmadd52huq ymm18,ymm3,YMMWORD[96+rsi] - vpmadd52huq ymm19,ymm3,YMMWORD[128+rsi] - - vpmadd52huq ymm1,ymm4,YMMWORD[rcx] - vpmadd52huq ymm16,ymm4,YMMWORD[32+rcx] - vpmadd52huq ymm17,ymm4,YMMWORD[64+rcx] - vpmadd52huq ymm18,ymm4,YMMWORD[96+rcx] - vpmadd52huq ymm19,ymm4,YMMWORD[128+rcx] - mov r13,QWORD[160+r11] - - vpbroadcastq ymm3,r13 - mov rdx,QWORD[160+rsi] - mulx r12,r13,r13 - add r15,r13 - mov r10,r12 - adc r10,0 - - mov r13,QWORD[8+r8] - imul r13,r15 - and r13,rax - - vpbroadcastq ymm4,r13 - mov rdx,QWORD[160+rcx] - mulx r12,r13,r13 - add r15,r13 - adc r10,r12 - - shr r15,52 - sal r10,12 - or r15,r10 - - vpmadd52luq ymm2,ymm3,YMMWORD[160+rsi] - vpmadd52luq ymm20,ymm3,YMMWORD[192+rsi] - vpmadd52luq ymm21,ymm3,YMMWORD[224+rsi] - vpmadd52luq ymm22,ymm3,YMMWORD[256+rsi] - vpmadd52luq ymm23,ymm3,YMMWORD[288+rsi] - - vpmadd52luq ymm2,ymm4,YMMWORD[160+rcx] - vpmadd52luq ymm20,ymm4,YMMWORD[192+rcx] - vpmadd52luq ymm21,ymm4,YMMWORD[224+rcx] - vpmadd52luq ymm22,ymm4,YMMWORD[256+rcx] - vpmadd52luq ymm23,ymm4,YMMWORD[288+rcx] - - - valignq ymm2,ymm20,ymm2,1 - valignq ymm20,ymm21,ymm20,1 - valignq ymm21,ymm22,ymm21,1 - valignq ymm22,ymm23,ymm22,1 - valignq ymm23,ymm0,ymm23,1 - - vmovq r13,xmm2 - add r15,r13 - - vpmadd52huq ymm2,ymm3,YMMWORD[160+rsi] - vpmadd52huq ymm20,ymm3,YMMWORD[192+rsi] - vpmadd52huq ymm21,ymm3,YMMWORD[224+rsi] - vpmadd52huq ymm22,ymm3,YMMWORD[256+rsi] - vpmadd52huq ymm23,ymm3,YMMWORD[288+rsi] - - vpmadd52huq ymm2,ymm4,YMMWORD[160+rcx] - vpmadd52huq ymm20,ymm4,YMMWORD[192+rcx] - vpmadd52huq ymm21,ymm4,YMMWORD[224+rcx] - vpmadd52huq ymm22,ymm4,YMMWORD[256+rcx] - vpmadd52huq ymm23,ymm4,YMMWORD[288+rcx] - lea r11,[8+r11] - dec ebx - jne NEAR $L$loop20 - - vmovdqa64 ymm4,YMMWORD[$L$mask52x4] - - vpbroadcastq ymm3,r9 - vpblendd ymm1,ymm1,ymm3,3 - - - - vpsrlq ymm24,ymm1,52 - vpsrlq ymm25,ymm16,52 - vpsrlq ymm26,ymm17,52 - vpsrlq ymm27,ymm18,52 - vpsrlq ymm28,ymm19,52 - - - valignq ymm28,ymm28,ymm27,3 - valignq ymm27,ymm27,ymm26,3 - valignq ymm26,ymm26,ymm25,3 - valignq ymm25,ymm25,ymm24,3 - valignq ymm24,ymm24,ymm0,3 - - - vpandq ymm1,ymm1,ymm4 - vpandq ymm16,ymm16,ymm4 - vpandq ymm17,ymm17,ymm4 - vpandq ymm18,ymm18,ymm4 - vpandq ymm19,ymm19,ymm4 - - - vpaddq ymm1,ymm1,ymm24 - vpaddq ymm16,ymm16,ymm25 - vpaddq ymm17,ymm17,ymm26 - vpaddq ymm18,ymm18,ymm27 - vpaddq ymm19,ymm19,ymm28 - - - - vpcmpuq k1,ymm4,ymm1,1 - vpcmpuq k2,ymm4,ymm16,1 - vpcmpuq k3,ymm4,ymm17,1 - vpcmpuq k4,ymm4,ymm18,1 - vpcmpuq k5,ymm4,ymm19,1 - kmovb r14d,k1 - kmovb r13d,k2 - kmovb r12d,k3 - kmovb r11d,k4 - kmovb r10d,k5 - - - vpcmpuq k1,ymm4,ymm1,0 - vpcmpuq k2,ymm4,ymm16,0 - vpcmpuq k3,ymm4,ymm17,0 - vpcmpuq k4,ymm4,ymm18,0 - vpcmpuq k5,ymm4,ymm19,0 - kmovb r9d,k1 - kmovb r8d,k2 - kmovb ebx,k3 - kmovb ecx,k4 - kmovb edx,k5 - - - - shl r13b,4 - or r14b,r13b - shl r11b,4 - or r12b,r11b - - add r14b,r14b - adc r12b,r12b - adc r10b,r10b - - shl r8b,4 - or r9b,r8b - shl cl,4 - or bl,cl - - add r14b,r9b - adc r12b,bl - adc r10b,dl - - xor r14b,r9b - xor r12b,bl - xor r10b,dl - - kmovb k1,r14d - shr r14b,4 - kmovb k2,r14d - kmovb k3,r12d - shr r12b,4 - kmovb k4,r12d - kmovb k5,r10d - - - vpsubq ymm1{k1},ymm1,ymm4 - vpsubq ymm16{k2},ymm16,ymm4 - vpsubq ymm17{k3},ymm17,ymm4 - vpsubq ymm18{k4},ymm18,ymm4 - vpsubq ymm19{k5},ymm19,ymm4 - - vpandq ymm1,ymm1,ymm4 - vpandq ymm16,ymm16,ymm4 - vpandq ymm17,ymm17,ymm4 - vpandq ymm18,ymm18,ymm4 - vpandq ymm19,ymm19,ymm4 - - vpbroadcastq ymm3,r15 - vpblendd ymm2,ymm2,ymm3,3 - - - - vpsrlq ymm24,ymm2,52 - vpsrlq ymm25,ymm20,52 - vpsrlq ymm26,ymm21,52 - vpsrlq ymm27,ymm22,52 - vpsrlq ymm28,ymm23,52 - - - valignq ymm28,ymm28,ymm27,3 - valignq ymm27,ymm27,ymm26,3 - valignq ymm26,ymm26,ymm25,3 - valignq ymm25,ymm25,ymm24,3 - valignq ymm24,ymm24,ymm0,3 - - - vpandq ymm2,ymm2,ymm4 - vpandq ymm20,ymm20,ymm4 - vpandq ymm21,ymm21,ymm4 - vpandq ymm22,ymm22,ymm4 - vpandq ymm23,ymm23,ymm4 - - - vpaddq ymm2,ymm2,ymm24 - vpaddq ymm20,ymm20,ymm25 - vpaddq ymm21,ymm21,ymm26 - vpaddq ymm22,ymm22,ymm27 - vpaddq ymm23,ymm23,ymm28 - - - - vpcmpuq k1,ymm4,ymm2,1 - vpcmpuq k2,ymm4,ymm20,1 - vpcmpuq k3,ymm4,ymm21,1 - vpcmpuq k4,ymm4,ymm22,1 - vpcmpuq k5,ymm4,ymm23,1 - kmovb r14d,k1 - kmovb r13d,k2 - kmovb r12d,k3 - kmovb r11d,k4 - kmovb r10d,k5 - - - vpcmpuq k1,ymm4,ymm2,0 - vpcmpuq k2,ymm4,ymm20,0 - vpcmpuq k3,ymm4,ymm21,0 - vpcmpuq k4,ymm4,ymm22,0 - vpcmpuq k5,ymm4,ymm23,0 - kmovb r9d,k1 - kmovb r8d,k2 - kmovb ebx,k3 - kmovb ecx,k4 - kmovb edx,k5 - - - - shl r13b,4 - or r14b,r13b - shl r11b,4 - or r12b,r11b - - add r14b,r14b - adc r12b,r12b - adc r10b,r10b - - shl r8b,4 - or r9b,r8b - shl cl,4 - or bl,cl - - add r14b,r9b - adc r12b,bl - adc r10b,dl - - xor r14b,r9b - xor r12b,bl - xor r10b,dl - - kmovb k1,r14d - shr r14b,4 - kmovb k2,r14d - kmovb k3,r12d - shr r12b,4 - kmovb k4,r12d - kmovb k5,r10d - - - vpsubq ymm2{k1},ymm2,ymm4 - vpsubq ymm20{k2},ymm20,ymm4 - vpsubq ymm21{k3},ymm21,ymm4 - vpsubq ymm22{k4},ymm22,ymm4 - vpsubq ymm23{k5},ymm23,ymm4 - - vpandq ymm2,ymm2,ymm4 - vpandq ymm20,ymm20,ymm4 - vpandq ymm21,ymm21,ymm4 - vpandq ymm22,ymm22,ymm4 - vpandq ymm23,ymm23,ymm4 - - vmovdqu64 YMMWORD[rdi],ymm1 - vmovdqu64 YMMWORD[32+rdi],ymm16 - vmovdqu64 YMMWORD[64+rdi],ymm17 - vmovdqu64 YMMWORD[96+rdi],ymm18 - vmovdqu64 YMMWORD[128+rdi],ymm19 - - vmovdqu64 YMMWORD[160+rdi],ymm2 - vmovdqu64 YMMWORD[192+rdi],ymm20 - vmovdqu64 YMMWORD[224+rdi],ymm21 - vmovdqu64 YMMWORD[256+rdi],ymm22 - vmovdqu64 YMMWORD[288+rdi],ymm23 - - vzeroupper - mov r15,QWORD[rsp] - - mov r14,QWORD[8+rsp] - - mov r13,QWORD[16+rsp] - - mov r12,QWORD[24+rsp] - - mov rbp,QWORD[32+rsp] - - mov rbx,QWORD[40+rsp] - - lea rsp,[48+rsp] - -$L$rsaz_amm52x20_x2_256_epilogue: - mov rdi,QWORD[8+rsp] ;WIN64 epilogue - mov rsi,QWORD[16+rsp] - DB 0F3h,0C3h ;repret - -$L$SEH_end_ossl_rsaz_amm52x20_x2_256: -section .text code align=64 - - -ALIGN 32 -global ossl_extract_multiplier_2x20_win5 - -ossl_extract_multiplier_2x20_win5: - mov QWORD[8+rsp],rdi ;WIN64 prologue - mov QWORD[16+rsp],rsi - mov rax,rsp -$L$SEH_begin_ossl_extract_multiplier_2x20_win5: - mov rdi,rcx - mov rsi,rdx - mov rdx,r8 - mov rcx,r9 - - - -DB 243,15,30,250 - lea rax,[rcx*4+rcx] - sal rax,5 - add rsi,rax - - vmovdqa64 ymm23,YMMWORD[$L$ones] - vpbroadcastq ymm22,rdx - lea rax,[10240+rsi] - - vpxor xmm4,xmm4,xmm4 - vmovdqa64 ymm3,ymm4 - vmovdqa64 ymm2,ymm4 - vmovdqa64 ymm1,ymm4 - vmovdqa64 ymm0,ymm4 - vmovdqa64 ymm21,ymm4 - -ALIGN 32 -$L$loop: - vpcmpq k1,ymm22,ymm21,0 - add rsi,320 - vpaddq ymm21,ymm21,ymm23 - vmovdqu64 ymm16,YMMWORD[((-320))+rsi] - vmovdqu64 ymm17,YMMWORD[((-288))+rsi] - vmovdqu64 ymm18,YMMWORD[((-256))+rsi] - vmovdqu64 ymm19,YMMWORD[((-224))+rsi] - vmovdqu64 ymm20,YMMWORD[((-192))+rsi] - vpblendmq ymm0{k1},ymm0,ymm16 - vpblendmq ymm1{k1},ymm1,ymm17 - vpblendmq ymm2{k1},ymm2,ymm18 - vpblendmq ymm3{k1},ymm3,ymm19 - vpblendmq ymm4{k1},ymm4,ymm20 - cmp rax,rsi - jne NEAR $L$loop - - vmovdqu64 YMMWORD[rdi],ymm0 - vmovdqu64 YMMWORD[32+rdi],ymm1 - vmovdqu64 YMMWORD[64+rdi],ymm2 - vmovdqu64 YMMWORD[96+rdi],ymm3 - vmovdqu64 YMMWORD[128+rdi],ymm4 - - mov rdi,QWORD[8+rsp] ;WIN64 epilogue - mov rsi,QWORD[16+rsp] - DB 0F3h,0C3h ;repret - -$L$SEH_end_ossl_extract_multiplier_2x20_win5: -section .data data align=8 - -ALIGN 32 -$L$ones: - DQ 1,1,1,1 -EXTERN __imp_RtlVirtualUnwind - -ALIGN 16 -rsaz_def_handler: - push rsi - push rdi - push rbx - push rbp - push r12 - push r13 - push r14 - push r15 - pushfq - sub rsp,64 - - mov rax,QWORD[120+r8] - mov rbx,QWORD[248+r8] - - mov rsi,QWORD[8+r9] - mov r11,QWORD[56+r9] - - mov r10d,DWORD[r11] - lea r10,[r10*1+rsi] - cmp rbx,r10 - jb NEAR $L$common_seh_tail - - mov rax,QWORD[152+r8] - - mov r10d,DWORD[4+r11] - lea r10,[r10*1+rsi] - cmp rbx,r10 - jae NEAR $L$common_seh_tail - - lea rax,[48+rax] - - mov rbx,QWORD[((-8))+rax] - mov rbp,QWORD[((-16))+rax] - mov r12,QWORD[((-24))+rax] - mov r13,QWORD[((-32))+rax] - mov r14,QWORD[((-40))+rax] - mov r15,QWORD[((-48))+rax] - mov QWORD[144+r8],rbx - mov QWORD[160+r8],rbp - mov QWORD[216+r8],r12 - mov QWORD[224+r8],r13 - mov QWORD[232+r8],r14 - mov QWORD[240+r8],r15 - -$L$common_seh_tail: - mov rdi,QWORD[8+rax] - mov rsi,QWORD[16+rax] - mov QWORD[152+r8],rax - mov QWORD[168+r8],rsi - mov QWORD[176+r8],rdi - - mov rdi,QWORD[40+r9] - mov rsi,r8 - mov ecx,154 - DD 0xa548f3fc - - mov rsi,r9 - xor rcx,rcx - mov rdx,QWORD[8+rsi] - mov r8,QWORD[rsi] - mov r9,QWORD[16+rsi] - mov r10,QWORD[40+rsi] - lea r11,[56+rsi] - lea r12,[24+rsi] - mov QWORD[32+rsp],r10 - mov QWORD[40+rsp],r11 - mov QWORD[48+rsp],r12 - mov QWORD[56+rsp],rcx - call QWORD[__imp_RtlVirtualUnwind] - - mov eax,1 - add rsp,64 - popfq - pop r15 - pop r14 - pop r13 - pop r12 - pop rbp - pop rbx - pop rdi - pop rsi - DB 0F3h,0C3h ;repret - - -section .pdata rdata align=4 -ALIGN 4 - DD $L$SEH_begin_ossl_rsaz_amm52x20_x1_256 wrt ..imagebase - DD $L$SEH_end_ossl_rsaz_amm52x20_x1_256 wrt ..imagebase - DD $L$SEH_info_ossl_rsaz_amm52x20_x1_256 wrt ..imagebase - - DD $L$SEH_begin_ossl_rsaz_amm52x20_x2_256 wrt ..imagebase - DD $L$SEH_end_ossl_rsaz_amm52x20_x2_256 wrt ..imagebase - DD $L$SEH_info_ossl_rsaz_amm52x20_x2_256 wrt ..imagebase - - DD $L$SEH_begin_ossl_extract_multiplier_2x20_win5 wrt ..imagebase - DD $L$SEH_end_ossl_extract_multiplier_2x20_win5 wrt ..imagebase - DD $L$SEH_info_ossl_extract_multiplier_2x20_win5 wrt ..imagebase - -section .xdata rdata align=8 -ALIGN 8 -$L$SEH_info_ossl_rsaz_amm52x20_x1_256: -DB 9,0,0,0 - DD rsaz_def_handler wrt ..imagebase - DD $L$rsaz_amm52x20_x1_256_body wrt ..imagebase,$L$rsaz_amm52x20_x1_256_epilogue wrt ..imagebase -$L$SEH_info_ossl_rsaz_amm52x20_x2_256: -DB 9,0,0,0 - DD rsaz_def_handler wrt ..imagebase - DD $L$rsaz_amm52x20_x2_256_body wrt ..imagebase,$L$rsaz_amm52x20_x2_256_epilogue wrt ..imagebase -$L$SEH_info_ossl_extract_multiplier_2x20_win5: -DB 9,0,0,0 - DD rsaz_def_handler wrt ..imagebase - DD $L$SEH_begin_ossl_extract_multiplier_2x20_win5 wrt ..imagebase,$L$SEH_begin_ossl_extract_multiplier_2x20_win5 wrt ..imagebase diff --git a/deps/openssl/config/archs/VC-WIN64A/asm/crypto/bn/rsaz-x86_64.asm b/deps/openssl/config/archs/VC-WIN64A/asm/crypto/bn/rsaz-x86_64.asm index a474c5d9a68c9f..46cc66d8cfcc52 100644 --- a/deps/openssl/config/archs/VC-WIN64A/asm/crypto/bn/rsaz-x86_64.asm +++ b/deps/openssl/config/archs/VC-WIN64A/asm/crypto/bn/rsaz-x86_64.asm @@ -2094,10 +2094,12 @@ $L$SEH_end_rsaz_512_gather4: +section .rdata rdata align=64 ALIGN 64 $L$inc: DD 0,0,1,1 DD 2,2,2,2 +section .text EXTERN __imp_RtlVirtualUnwind ALIGN 16 diff --git a/deps/openssl/config/archs/VC-WIN64A/asm/crypto/bn/x86_64-mont5.asm b/deps/openssl/config/archs/VC-WIN64A/asm/crypto/bn/x86_64-mont5.asm index 118676455aa6be..871263ef45cbdd 100644 --- a/deps/openssl/config/archs/VC-WIN64A/asm/crypto/bn/x86_64-mont5.asm +++ b/deps/openssl/config/archs/VC-WIN64A/asm/crypto/bn/x86_64-mont5.asm @@ -3671,6 +3671,7 @@ $L$gather: $L$SEH_end_bn_gather5: +section .rdata rdata align=64 ALIGN 64 $L$inc: DD 0,0,1,1 @@ -3681,6 +3682,7 @@ DB 99,97,116,116,101,114,47,103,97,116,104,101,114,32,102,111 DB 114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79 DB 71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111 DB 112,101,110,115,115,108,46,111,114,103,62,0 +section .text EXTERN __imp_RtlVirtualUnwind ALIGN 16 diff --git a/deps/openssl/config/archs/VC-WIN64A/asm/crypto/buildinf.h b/deps/openssl/config/archs/VC-WIN64A/asm/crypto/buildinf.h index 050b7f8f6a2db0..8fa53dbea7526d 100644 --- a/deps/openssl/config/archs/VC-WIN64A/asm/crypto/buildinf.h +++ b/deps/openssl/config/archs/VC-WIN64A/asm/crypto/buildinf.h @@ -11,7 +11,7 @@ */ #define PLATFORM "platform: " -#define DATE "built on: Sun Jul 20 00:55:12 2025 UTC" +#define DATE "built on: Sun Jul 27 00:58:39 2025 UTC" /* * Generate compiler_flags as an array of individual characters. This is a diff --git a/deps/openssl/config/archs/VC-WIN64A/asm/crypto/camellia/cmll-x86_64.asm b/deps/openssl/config/archs/VC-WIN64A/asm/crypto/camellia/cmll-x86_64.asm index ac057de920beb0..491d84f8812181 100644 --- a/deps/openssl/config/archs/VC-WIN64A/asm/crypto/camellia/cmll-x86_64.asm +++ b/deps/openssl/config/archs/VC-WIN64A/asm/crypto/camellia/cmll-x86_64.asm @@ -1169,6 +1169,7 @@ $L$key_epilogue: DB 0F3h,0C3h ;repret $L$SEH_end_Camellia_Ekeygen: +section .rdata rdata align=64 ALIGN 64 $L$Camellia_SIGMA: DD 0x3bcc908b,0xa09e667f,0x4caa73b2,0xb67ae858 @@ -1688,6 +1689,8 @@ $L$Camellia_SBOX: DD 0x008f8f8f,0xe300e3e3 DD 0x00010101,0x40004040 DD 0x003d3d3d,0x4f004f4f +section .text code align=64 + global Camellia_cbc_encrypt ALIGN 16 diff --git a/deps/openssl/config/archs/VC-WIN64A/asm/crypto/chacha/chacha-x86_64.asm b/deps/openssl/config/archs/VC-WIN64A/asm/crypto/chacha/chacha-x86_64.asm index 4ae3fe31a63414..47cb8a3db4cd35 100644 --- a/deps/openssl/config/archs/VC-WIN64A/asm/crypto/chacha/chacha-x86_64.asm +++ b/deps/openssl/config/archs/VC-WIN64A/asm/crypto/chacha/chacha-x86_64.asm @@ -7,6 +7,7 @@ section .text code align=64 EXTERN OPENSSL_ia32cap_P +section .rdata rdata align=64 ALIGN 64 $L$zero: DD 0,0,0,0 @@ -42,6 +43,7 @@ DB 67,104,97,67,104,97,50,48,32,102,111,114,32,120,56,54 DB 95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32 DB 98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115 DB 108,46,111,114,103,62,0 +section .text global ChaCha20_ctr32 ALIGN 64 diff --git a/deps/openssl/config/archs/VC-WIN64A/asm/crypto/ec/ecp_nistz256-x86_64.asm b/deps/openssl/config/archs/VC-WIN64A/asm/crypto/ec/ecp_nistz256-x86_64.asm index 9930dadce66880..746041b3c9e7f4 100644 --- a/deps/openssl/config/archs/VC-WIN64A/asm/crypto/ec/ecp_nistz256-x86_64.asm +++ b/deps/openssl/config/archs/VC-WIN64A/asm/crypto/ec/ecp_nistz256-x86_64.asm @@ -2,8 +2,7 @@ default rel %define XMMWORD %define YMMWORD %define ZMMWORD -section .text code align=64 - +section .rdata rdata align=4096 global ecp_nistz256_precomputed ALIGN 4096 @@ -2382,6 +2381,7 @@ section .text code align=64 EXTERN OPENSSL_ia32cap_P +section .rdata rdata align=4096 ALIGN 64 $L$poly: DQ 0xffffffffffffffff,0x00000000ffffffff,0x0000000000000000,0xffffffff00000001 @@ -2404,6 +2404,7 @@ $L$ord: DQ 0xf3b9cac2fc632551,0xbce6faada7179e84,0xffffffffffffffff,0xffffffff00000000 $L$ordK: DQ 0xccd1c8aaee00bc4f +section .text global ecp_nistz256_mul_by_2 diff --git a/deps/openssl/config/archs/VC-WIN64A/asm/crypto/md5/md5-x86_64.asm b/deps/openssl/config/archs/VC-WIN64A/asm/crypto/md5/md5-x86_64.asm index 666c54a4be937d..416ea1c0bf89ce 100644 --- a/deps/openssl/config/archs/VC-WIN64A/asm/crypto/md5/md5-x86_64.asm +++ b/deps/openssl/config/archs/VC-WIN64A/asm/crypto/md5/md5-x86_64.asm @@ -210,7 +210,7 @@ $L$loop: lea eax,[((-165796510))+r10*1+rax] and r11d,ecx mov r10d,DWORD[24+rsi] - or r12d,r11d + add eax,r11d mov r11d,ecx add eax,r12d mov r12d,ecx @@ -221,7 +221,7 @@ $L$loop: lea edx,[((-1069501632))+r10*1+rdx] and r11d,ebx mov r10d,DWORD[44+rsi] - or r12d,r11d + add edx,r11d mov r11d,ebx add edx,r12d mov r12d,ebx @@ -232,7 +232,7 @@ $L$loop: lea ecx,[643717713+r10*1+rcx] and r11d,eax mov r10d,DWORD[rsi] - or r12d,r11d + add ecx,r11d mov r11d,eax add ecx,r12d mov r12d,eax @@ -243,7 +243,7 @@ $L$loop: lea ebx,[((-373897302))+r10*1+rbx] and r11d,edx mov r10d,DWORD[20+rsi] - or r12d,r11d + add ebx,r11d mov r11d,edx add ebx,r12d mov r12d,edx @@ -254,7 +254,7 @@ $L$loop: lea eax,[((-701558691))+r10*1+rax] and r11d,ecx mov r10d,DWORD[40+rsi] - or r12d,r11d + add eax,r11d mov r11d,ecx add eax,r12d mov r12d,ecx @@ -265,7 +265,7 @@ $L$loop: lea edx,[38016083+r10*1+rdx] and r11d,ebx mov r10d,DWORD[60+rsi] - or r12d,r11d + add edx,r11d mov r11d,ebx add edx,r12d mov r12d,ebx @@ -276,7 +276,7 @@ $L$loop: lea ecx,[((-660478335))+r10*1+rcx] and r11d,eax mov r10d,DWORD[16+rsi] - or r12d,r11d + add ecx,r11d mov r11d,eax add ecx,r12d mov r12d,eax @@ -287,7 +287,7 @@ $L$loop: lea ebx,[((-405537848))+r10*1+rbx] and r11d,edx mov r10d,DWORD[36+rsi] - or r12d,r11d + add ebx,r11d mov r11d,edx add ebx,r12d mov r12d,edx @@ -298,7 +298,7 @@ $L$loop: lea eax,[568446438+r10*1+rax] and r11d,ecx mov r10d,DWORD[56+rsi] - or r12d,r11d + add eax,r11d mov r11d,ecx add eax,r12d mov r12d,ecx @@ -309,7 +309,7 @@ $L$loop: lea edx,[((-1019803690))+r10*1+rdx] and r11d,ebx mov r10d,DWORD[12+rsi] - or r12d,r11d + add edx,r11d mov r11d,ebx add edx,r12d mov r12d,ebx @@ -320,7 +320,7 @@ $L$loop: lea ecx,[((-187363961))+r10*1+rcx] and r11d,eax mov r10d,DWORD[32+rsi] - or r12d,r11d + add ecx,r11d mov r11d,eax add ecx,r12d mov r12d,eax @@ -331,7 +331,7 @@ $L$loop: lea ebx,[1163531501+r10*1+rbx] and r11d,edx mov r10d,DWORD[52+rsi] - or r12d,r11d + add ebx,r11d mov r11d,edx add ebx,r12d mov r12d,edx @@ -342,7 +342,7 @@ $L$loop: lea eax,[((-1444681467))+r10*1+rax] and r11d,ecx mov r10d,DWORD[8+rsi] - or r12d,r11d + add eax,r11d mov r11d,ecx add eax,r12d mov r12d,ecx @@ -353,7 +353,7 @@ $L$loop: lea edx,[((-51403784))+r10*1+rdx] and r11d,ebx mov r10d,DWORD[28+rsi] - or r12d,r11d + add edx,r11d mov r11d,ebx add edx,r12d mov r12d,ebx @@ -364,7 +364,7 @@ $L$loop: lea ecx,[1735328473+r10*1+rcx] and r11d,eax mov r10d,DWORD[48+rsi] - or r12d,r11d + add ecx,r11d mov r11d,eax add ecx,r12d mov r12d,eax @@ -375,7 +375,7 @@ $L$loop: lea ebx,[((-1926607734))+r10*1+rbx] and r11d,edx mov r10d,DWORD[20+rsi] - or r12d,r11d + add ebx,r11d mov r11d,edx add ebx,r12d mov r12d,edx diff --git a/deps/openssl/config/archs/VC-WIN64A/asm/crypto/modes/aes-gcm-avx512.asm b/deps/openssl/config/archs/VC-WIN64A/asm/crypto/modes/aes-gcm-avx512.asm new file mode 100644 index 00000000000000..563af63a5564e8 --- /dev/null +++ b/deps/openssl/config/archs/VC-WIN64A/asm/crypto/modes/aes-gcm-avx512.asm @@ -0,0 +1,136520 @@ +default rel +%define XMMWORD +%define YMMWORD +%define ZMMWORD +EXTERN OPENSSL_ia32cap_P +global ossl_vaes_vpclmulqdq_capable + +ALIGN 32 +ossl_vaes_vpclmulqdq_capable: + mov rcx,QWORD[((OPENSSL_ia32cap_P+8))] + + mov rdx,6600291188736 + xor eax,eax + and rcx,rdx + cmp rcx,rdx + cmove rax,rcx + DB 0F3h,0C3h ;repret + +section .text code align=64 + +global ossl_aes_gcm_init_avx512 + +ALIGN 32 +ossl_aes_gcm_init_avx512: + +DB 243,15,30,250 + vpxorq xmm16,xmm16,xmm16 + + + mov eax,DWORD[240+rcx] + cmp eax,9 + je NEAR $L$aes_128_0 + cmp eax,11 + je NEAR $L$aes_192_0 + cmp eax,13 + je NEAR $L$aes_256_0 + jmp NEAR $L$exit_aes_0 +ALIGN 32 +$L$aes_128_0: + vpxorq xmm16,xmm16,XMMWORD[rcx] + + vaesenc xmm16,xmm16,XMMWORD[16+rcx] + + vaesenc xmm16,xmm16,XMMWORD[32+rcx] + + vaesenc xmm16,xmm16,XMMWORD[48+rcx] + + vaesenc xmm16,xmm16,XMMWORD[64+rcx] + + vaesenc xmm16,xmm16,XMMWORD[80+rcx] + + vaesenc xmm16,xmm16,XMMWORD[96+rcx] + + vaesenc xmm16,xmm16,XMMWORD[112+rcx] + + vaesenc xmm16,xmm16,XMMWORD[128+rcx] + + vaesenc xmm16,xmm16,XMMWORD[144+rcx] + + vaesenclast xmm16,xmm16,XMMWORD[160+rcx] + jmp NEAR $L$exit_aes_0 +ALIGN 32 +$L$aes_192_0: + vpxorq xmm16,xmm16,XMMWORD[rcx] + + vaesenc xmm16,xmm16,XMMWORD[16+rcx] + + vaesenc xmm16,xmm16,XMMWORD[32+rcx] + + vaesenc xmm16,xmm16,XMMWORD[48+rcx] + + vaesenc xmm16,xmm16,XMMWORD[64+rcx] + + vaesenc xmm16,xmm16,XMMWORD[80+rcx] + + vaesenc xmm16,xmm16,XMMWORD[96+rcx] + + vaesenc xmm16,xmm16,XMMWORD[112+rcx] + + vaesenc xmm16,xmm16,XMMWORD[128+rcx] + + vaesenc xmm16,xmm16,XMMWORD[144+rcx] + + vaesenc xmm16,xmm16,XMMWORD[160+rcx] + + vaesenc xmm16,xmm16,XMMWORD[176+rcx] + + vaesenclast xmm16,xmm16,XMMWORD[192+rcx] + jmp NEAR $L$exit_aes_0 +ALIGN 32 +$L$aes_256_0: + vpxorq xmm16,xmm16,XMMWORD[rcx] + + vaesenc xmm16,xmm16,XMMWORD[16+rcx] + + vaesenc xmm16,xmm16,XMMWORD[32+rcx] + + vaesenc xmm16,xmm16,XMMWORD[48+rcx] + + vaesenc xmm16,xmm16,XMMWORD[64+rcx] + + vaesenc xmm16,xmm16,XMMWORD[80+rcx] + + vaesenc xmm16,xmm16,XMMWORD[96+rcx] + + vaesenc xmm16,xmm16,XMMWORD[112+rcx] + + vaesenc xmm16,xmm16,XMMWORD[128+rcx] + + vaesenc xmm16,xmm16,XMMWORD[144+rcx] + + vaesenc xmm16,xmm16,XMMWORD[160+rcx] + + vaesenc xmm16,xmm16,XMMWORD[176+rcx] + + vaesenc xmm16,xmm16,XMMWORD[192+rcx] + + vaesenc xmm16,xmm16,XMMWORD[208+rcx] + + vaesenclast xmm16,xmm16,XMMWORD[224+rcx] + jmp NEAR $L$exit_aes_0 +$L$exit_aes_0: + + vpshufb xmm16,xmm16,XMMWORD[SHUF_MASK] + + vmovdqa64 xmm2,xmm16 + vpsllq xmm16,xmm16,1 + vpsrlq xmm2,xmm2,63 + vmovdqa xmm1,xmm2 + vpslldq xmm2,xmm2,8 + vpsrldq xmm1,xmm1,8 + vporq xmm16,xmm16,xmm2 + + vpshufd xmm2,xmm1,36 + vpcmpeqd xmm2,xmm2,XMMWORD[TWOONE] + vpand xmm2,xmm2,XMMWORD[POLY] + vpxorq xmm16,xmm16,xmm2 + + vmovdqu64 XMMWORD[336+rdx],xmm16 + vshufi32x4 ymm4,ymm16,ymm16,0x00 + vmovdqa ymm3,ymm4 + + vpclmulqdq ymm0,ymm3,ymm4,0x11 + vpclmulqdq ymm1,ymm3,ymm4,0x00 + vpclmulqdq ymm2,ymm3,ymm4,0x01 + vpclmulqdq ymm3,ymm3,ymm4,0x10 + vpxorq ymm3,ymm3,ymm2 + + vpsrldq ymm2,ymm3,8 + vpslldq ymm3,ymm3,8 + vpxorq ymm0,ymm0,ymm2 + vpxorq ymm3,ymm3,ymm1 + + + + vmovdqu64 ymm2,YMMWORD[POLY2] + + vpclmulqdq ymm1,ymm2,ymm3,0x01 + vpslldq ymm1,ymm1,8 + vpxorq ymm3,ymm3,ymm1 + + + + vpclmulqdq ymm1,ymm2,ymm3,0x00 + vpsrldq ymm1,ymm1,4 + vpclmulqdq ymm3,ymm2,ymm3,0x10 + vpslldq ymm3,ymm3,4 + + vpternlogq ymm3,ymm0,ymm1,0x96 + + vmovdqu64 XMMWORD[320+rdx],xmm3 + vinserti64x2 ymm4,ymm3,xmm16,1 + vmovdqa64 ymm5,ymm4 + + vpclmulqdq ymm0,ymm4,ymm3,0x11 + vpclmulqdq ymm1,ymm4,ymm3,0x00 + vpclmulqdq ymm2,ymm4,ymm3,0x01 + vpclmulqdq ymm4,ymm4,ymm3,0x10 + vpxorq ymm4,ymm4,ymm2 + + vpsrldq ymm2,ymm4,8 + vpslldq ymm4,ymm4,8 + vpxorq ymm0,ymm0,ymm2 + vpxorq ymm4,ymm4,ymm1 + + + + vmovdqu64 ymm2,YMMWORD[POLY2] + + vpclmulqdq ymm1,ymm2,ymm4,0x01 + vpslldq ymm1,ymm1,8 + vpxorq ymm4,ymm4,ymm1 + + + + vpclmulqdq ymm1,ymm2,ymm4,0x00 + vpsrldq ymm1,ymm1,4 + vpclmulqdq ymm4,ymm2,ymm4,0x10 + vpslldq ymm4,ymm4,4 + + vpternlogq ymm4,ymm0,ymm1,0x96 + + vmovdqu64 YMMWORD[288+rdx],ymm4 + + vinserti64x4 zmm4,zmm4,ymm5,1 + + + vshufi64x2 zmm3,zmm4,zmm4,0x00 + vmovdqa64 zmm5,zmm4 + + vpclmulqdq zmm0,zmm4,zmm3,0x11 + vpclmulqdq zmm1,zmm4,zmm3,0x00 + vpclmulqdq zmm2,zmm4,zmm3,0x01 + vpclmulqdq zmm4,zmm4,zmm3,0x10 + vpxorq zmm4,zmm4,zmm2 + + vpsrldq zmm2,zmm4,8 + vpslldq zmm4,zmm4,8 + vpxorq zmm0,zmm0,zmm2 + vpxorq zmm4,zmm4,zmm1 + + + + vmovdqu64 zmm2,ZMMWORD[POLY2] + + vpclmulqdq zmm1,zmm2,zmm4,0x01 + vpslldq zmm1,zmm1,8 + vpxorq zmm4,zmm4,zmm1 + + + + vpclmulqdq zmm1,zmm2,zmm4,0x00 + vpsrldq zmm1,zmm1,4 + vpclmulqdq zmm4,zmm2,zmm4,0x10 + vpslldq zmm4,zmm4,4 + + vpternlogq zmm4,zmm0,zmm1,0x96 + + vmovdqu64 ZMMWORD[224+rdx],zmm4 + vshufi64x2 zmm3,zmm4,zmm4,0x00 + + vpclmulqdq zmm0,zmm5,zmm3,0x11 + vpclmulqdq zmm1,zmm5,zmm3,0x00 + vpclmulqdq zmm2,zmm5,zmm3,0x01 + vpclmulqdq zmm5,zmm5,zmm3,0x10 + vpxorq zmm5,zmm5,zmm2 + + vpsrldq zmm2,zmm5,8 + vpslldq zmm5,zmm5,8 + vpxorq zmm0,zmm0,zmm2 + vpxorq zmm5,zmm5,zmm1 + + + + vmovdqu64 zmm2,ZMMWORD[POLY2] + + vpclmulqdq zmm1,zmm2,zmm5,0x01 + vpslldq zmm1,zmm1,8 + vpxorq zmm5,zmm5,zmm1 + + + + vpclmulqdq zmm1,zmm2,zmm5,0x00 + vpsrldq zmm1,zmm1,4 + vpclmulqdq zmm5,zmm2,zmm5,0x10 + vpslldq zmm5,zmm5,4 + + vpternlogq zmm5,zmm0,zmm1,0x96 + + vmovdqu64 ZMMWORD[160+rdx],zmm5 + + vpclmulqdq zmm0,zmm4,zmm3,0x11 + vpclmulqdq zmm1,zmm4,zmm3,0x00 + vpclmulqdq zmm2,zmm4,zmm3,0x01 + vpclmulqdq zmm4,zmm4,zmm3,0x10 + vpxorq zmm4,zmm4,zmm2 + + vpsrldq zmm2,zmm4,8 + vpslldq zmm4,zmm4,8 + vpxorq zmm0,zmm0,zmm2 + vpxorq zmm4,zmm4,zmm1 + + + + vmovdqu64 zmm2,ZMMWORD[POLY2] + + vpclmulqdq zmm1,zmm2,zmm4,0x01 + vpslldq zmm1,zmm1,8 + vpxorq zmm4,zmm4,zmm1 + + + + vpclmulqdq zmm1,zmm2,zmm4,0x00 + vpsrldq zmm1,zmm1,4 + vpclmulqdq zmm4,zmm2,zmm4,0x10 + vpslldq zmm4,zmm4,4 + + vpternlogq zmm4,zmm0,zmm1,0x96 + + vmovdqu64 ZMMWORD[96+rdx],zmm4 + vzeroupper +$L$abort_init: + DB 0F3h,0C3h ;repret + + +global ossl_aes_gcm_setiv_avx512 + +ALIGN 32 +ossl_aes_gcm_setiv_avx512: + +$L$setiv_seh_begin: +DB 243,15,30,250 + push rbx + +$L$setiv_seh_push_rbx: + push rbp + +$L$setiv_seh_push_rbp: + push r12 + +$L$setiv_seh_push_r12: + push r13 + +$L$setiv_seh_push_r13: + push r14 + +$L$setiv_seh_push_r14: + push r15 + +$L$setiv_seh_push_r15: + push rdi +$L$setiv_seh_push_rdi: + push rsi +$L$setiv_seh_push_rsi: + + sub rsp,168 +$L$setiv_seh_allocstack_xmm: + + + + + + + + + + + lea rbp,[160+rsp] + +$L$setiv_seh_setfp: + vmovdqu XMMWORD[rsp],xmm6 +$L$setiv_seh_save_xmm6: + vmovdqu XMMWORD[16+rsp],xmm7 +$L$setiv_seh_save_xmm7: + vmovdqu XMMWORD[32+rsp],xmm8 +$L$setiv_seh_save_xmm8: + vmovdqu XMMWORD[48+rsp],xmm9 +$L$setiv_seh_save_xmm9: + vmovdqu XMMWORD[64+rsp],xmm10 +$L$setiv_seh_save_xmm10: + vmovdqu XMMWORD[80+rsp],xmm11 +$L$setiv_seh_save_xmm11: + vmovdqu XMMWORD[96+rsp],xmm12 +$L$setiv_seh_save_xmm12: + vmovdqu XMMWORD[112+rsp],xmm13 +$L$setiv_seh_save_xmm13: + vmovdqu XMMWORD[128+rsp],xmm14 +$L$setiv_seh_save_xmm14: + vmovdqu XMMWORD[144+rsp],xmm15 +$L$setiv_seh_save_xmm15: + +$L$setiv_seh_prolog_end: + sub rsp,816 + and rsp,(-64) + cmp r9,12 + je NEAR iv_len_12_init_IV + vpxor xmm2,xmm2,xmm2 + mov r10,r8 + mov r11,r9 + or r11,r11 + jz NEAR $L$_CALC_AAD_done_1 + + xor rbx,rbx + vmovdqa64 zmm16,ZMMWORD[SHUF_MASK] + +$L$_get_AAD_loop48x16_1: + cmp r11,768 + jl NEAR $L$_exit_AAD_loop48x16_1 + vmovdqu64 zmm11,ZMMWORD[r10] + vmovdqu64 zmm3,ZMMWORD[64+r10] + vmovdqu64 zmm4,ZMMWORD[128+r10] + vmovdqu64 zmm5,ZMMWORD[192+r10] + vpshufb zmm11,zmm11,zmm16 + vpshufb zmm3,zmm3,zmm16 + vpshufb zmm4,zmm4,zmm16 + vpshufb zmm5,zmm5,zmm16 + test rbx,rbx + jnz NEAR $L$_skip_hkeys_precomputation_2 + + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vmovdqu64 ZMMWORD[704+rsp],zmm1 + + vmovdqu64 zmm9,ZMMWORD[224+rdx] + vmovdqu64 ZMMWORD[640+rsp],zmm9 + + + vshufi64x2 zmm9,zmm9,zmm9,0x00 + + vmovdqu64 zmm10,ZMMWORD[160+rdx] + vmovdqu64 ZMMWORD[576+rsp],zmm10 + + vmovdqu64 zmm12,ZMMWORD[96+rdx] + vmovdqu64 ZMMWORD[512+rsp],zmm12 + + vpclmulqdq zmm13,zmm10,zmm9,0x11 + vpclmulqdq zmm15,zmm10,zmm9,0x00 + vpclmulqdq zmm17,zmm10,zmm9,0x01 + vpclmulqdq zmm10,zmm10,zmm9,0x10 + vpxorq zmm10,zmm10,zmm17 + + vpsrldq zmm17,zmm10,8 + vpslldq zmm10,zmm10,8 + vpxorq zmm13,zmm13,zmm17 + vpxorq zmm10,zmm10,zmm15 + + + + vmovdqu64 zmm17,ZMMWORD[POLY2] + + vpclmulqdq zmm15,zmm17,zmm10,0x01 + vpslldq zmm15,zmm15,8 + vpxorq zmm10,zmm10,zmm15 + + + + vpclmulqdq zmm15,zmm17,zmm10,0x00 + vpsrldq zmm15,zmm15,4 + vpclmulqdq zmm10,zmm17,zmm10,0x10 + vpslldq zmm10,zmm10,4 + + vpternlogq zmm10,zmm13,zmm15,0x96 + + vmovdqu64 ZMMWORD[448+rsp],zmm10 + + vpclmulqdq zmm13,zmm12,zmm9,0x11 + vpclmulqdq zmm15,zmm12,zmm9,0x00 + vpclmulqdq zmm17,zmm12,zmm9,0x01 + vpclmulqdq zmm12,zmm12,zmm9,0x10 + vpxorq zmm12,zmm12,zmm17 + + vpsrldq zmm17,zmm12,8 + vpslldq zmm12,zmm12,8 + vpxorq zmm13,zmm13,zmm17 + vpxorq zmm12,zmm12,zmm15 + + + + vmovdqu64 zmm17,ZMMWORD[POLY2] + + vpclmulqdq zmm15,zmm17,zmm12,0x01 + vpslldq zmm15,zmm15,8 + vpxorq zmm12,zmm12,zmm15 + + + + vpclmulqdq zmm15,zmm17,zmm12,0x00 + vpsrldq zmm15,zmm15,4 + vpclmulqdq zmm12,zmm17,zmm12,0x10 + vpslldq zmm12,zmm12,4 + + vpternlogq zmm12,zmm13,zmm15,0x96 + + vmovdqu64 ZMMWORD[384+rsp],zmm12 + + vpclmulqdq zmm13,zmm10,zmm9,0x11 + vpclmulqdq zmm15,zmm10,zmm9,0x00 + vpclmulqdq zmm17,zmm10,zmm9,0x01 + vpclmulqdq zmm10,zmm10,zmm9,0x10 + vpxorq zmm10,zmm10,zmm17 + + vpsrldq zmm17,zmm10,8 + vpslldq zmm10,zmm10,8 + vpxorq zmm13,zmm13,zmm17 + vpxorq zmm10,zmm10,zmm15 + + + + vmovdqu64 zmm17,ZMMWORD[POLY2] + + vpclmulqdq zmm15,zmm17,zmm10,0x01 + vpslldq zmm15,zmm15,8 + vpxorq zmm10,zmm10,zmm15 + + + + vpclmulqdq zmm15,zmm17,zmm10,0x00 + vpsrldq zmm15,zmm15,4 + vpclmulqdq zmm10,zmm17,zmm10,0x10 + vpslldq zmm10,zmm10,4 + + vpternlogq zmm10,zmm13,zmm15,0x96 + + vmovdqu64 ZMMWORD[320+rsp],zmm10 + + vpclmulqdq zmm13,zmm12,zmm9,0x11 + vpclmulqdq zmm15,zmm12,zmm9,0x00 + vpclmulqdq zmm17,zmm12,zmm9,0x01 + vpclmulqdq zmm12,zmm12,zmm9,0x10 + vpxorq zmm12,zmm12,zmm17 + + vpsrldq zmm17,zmm12,8 + vpslldq zmm12,zmm12,8 + vpxorq zmm13,zmm13,zmm17 + vpxorq zmm12,zmm12,zmm15 + + + + vmovdqu64 zmm17,ZMMWORD[POLY2] + + vpclmulqdq zmm15,zmm17,zmm12,0x01 + vpslldq zmm15,zmm15,8 + vpxorq zmm12,zmm12,zmm15 + + + + vpclmulqdq zmm15,zmm17,zmm12,0x00 + vpsrldq zmm15,zmm15,4 + vpclmulqdq zmm12,zmm17,zmm12,0x10 + vpslldq zmm12,zmm12,4 + + vpternlogq zmm12,zmm13,zmm15,0x96 + + vmovdqu64 ZMMWORD[256+rsp],zmm12 + + vpclmulqdq zmm13,zmm10,zmm9,0x11 + vpclmulqdq zmm15,zmm10,zmm9,0x00 + vpclmulqdq zmm17,zmm10,zmm9,0x01 + vpclmulqdq zmm10,zmm10,zmm9,0x10 + vpxorq zmm10,zmm10,zmm17 + + vpsrldq zmm17,zmm10,8 + vpslldq zmm10,zmm10,8 + vpxorq zmm13,zmm13,zmm17 + vpxorq zmm10,zmm10,zmm15 + + + + vmovdqu64 zmm17,ZMMWORD[POLY2] + + vpclmulqdq zmm15,zmm17,zmm10,0x01 + vpslldq zmm15,zmm15,8 + vpxorq zmm10,zmm10,zmm15 + + + + vpclmulqdq zmm15,zmm17,zmm10,0x00 + vpsrldq zmm15,zmm15,4 + vpclmulqdq zmm10,zmm17,zmm10,0x10 + vpslldq zmm10,zmm10,4 + + vpternlogq zmm10,zmm13,zmm15,0x96 + + vmovdqu64 ZMMWORD[192+rsp],zmm10 + + vpclmulqdq zmm13,zmm12,zmm9,0x11 + vpclmulqdq zmm15,zmm12,zmm9,0x00 + vpclmulqdq zmm17,zmm12,zmm9,0x01 + vpclmulqdq zmm12,zmm12,zmm9,0x10 + vpxorq zmm12,zmm12,zmm17 + + vpsrldq zmm17,zmm12,8 + vpslldq zmm12,zmm12,8 + vpxorq zmm13,zmm13,zmm17 + vpxorq zmm12,zmm12,zmm15 + + + + vmovdqu64 zmm17,ZMMWORD[POLY2] + + vpclmulqdq zmm15,zmm17,zmm12,0x01 + vpslldq zmm15,zmm15,8 + vpxorq zmm12,zmm12,zmm15 + + + + vpclmulqdq zmm15,zmm17,zmm12,0x00 + vpsrldq zmm15,zmm15,4 + vpclmulqdq zmm12,zmm17,zmm12,0x10 + vpslldq zmm12,zmm12,4 + + vpternlogq zmm12,zmm13,zmm15,0x96 + + vmovdqu64 ZMMWORD[128+rsp],zmm12 + + vpclmulqdq zmm13,zmm10,zmm9,0x11 + vpclmulqdq zmm15,zmm10,zmm9,0x00 + vpclmulqdq zmm17,zmm10,zmm9,0x01 + vpclmulqdq zmm10,zmm10,zmm9,0x10 + vpxorq zmm10,zmm10,zmm17 + + vpsrldq zmm17,zmm10,8 + vpslldq zmm10,zmm10,8 + vpxorq zmm13,zmm13,zmm17 + vpxorq zmm10,zmm10,zmm15 + + + + vmovdqu64 zmm17,ZMMWORD[POLY2] + + vpclmulqdq zmm15,zmm17,zmm10,0x01 + vpslldq zmm15,zmm15,8 + vpxorq zmm10,zmm10,zmm15 + + + + vpclmulqdq zmm15,zmm17,zmm10,0x00 + vpsrldq zmm15,zmm15,4 + vpclmulqdq zmm10,zmm17,zmm10,0x10 + vpslldq zmm10,zmm10,4 + + vpternlogq zmm10,zmm13,zmm15,0x96 + + vmovdqu64 ZMMWORD[64+rsp],zmm10 + + vpclmulqdq zmm13,zmm12,zmm9,0x11 + vpclmulqdq zmm15,zmm12,zmm9,0x00 + vpclmulqdq zmm17,zmm12,zmm9,0x01 + vpclmulqdq zmm12,zmm12,zmm9,0x10 + vpxorq zmm12,zmm12,zmm17 + + vpsrldq zmm17,zmm12,8 + vpslldq zmm12,zmm12,8 + vpxorq zmm13,zmm13,zmm17 + vpxorq zmm12,zmm12,zmm15 + + + + vmovdqu64 zmm17,ZMMWORD[POLY2] + + vpclmulqdq zmm15,zmm17,zmm12,0x01 + vpslldq zmm15,zmm15,8 + vpxorq zmm12,zmm12,zmm15 + + + + vpclmulqdq zmm15,zmm17,zmm12,0x00 + vpsrldq zmm15,zmm15,4 + vpclmulqdq zmm12,zmm17,zmm12,0x10 + vpslldq zmm12,zmm12,4 + + vpternlogq zmm12,zmm13,zmm15,0x96 + + vmovdqu64 ZMMWORD[rsp],zmm12 +$L$_skip_hkeys_precomputation_2: + mov rbx,1 + vpxorq zmm11,zmm11,zmm2 + vmovdqu64 zmm19,ZMMWORD[rsp] + vpclmulqdq zmm1,zmm11,zmm19,0x11 + vpclmulqdq zmm9,zmm11,zmm19,0x00 + vpclmulqdq zmm10,zmm11,zmm19,0x01 + vpclmulqdq zmm12,zmm11,zmm19,0x10 + vmovdqu64 zmm19,ZMMWORD[64+rsp] + vpclmulqdq zmm13,zmm3,zmm19,0x11 + vpclmulqdq zmm15,zmm3,zmm19,0x00 + vpclmulqdq zmm17,zmm3,zmm19,0x01 + vpclmulqdq zmm18,zmm3,zmm19,0x10 + vpxorq zmm7,zmm10,zmm17 + vpxorq zmm6,zmm1,zmm13 + vpxorq zmm8,zmm9,zmm15 + vpternlogq zmm7,zmm12,zmm18,0x96 + vmovdqu64 zmm19,ZMMWORD[128+rsp] + vpclmulqdq zmm1,zmm4,zmm19,0x11 + vpclmulqdq zmm9,zmm4,zmm19,0x00 + vpclmulqdq zmm10,zmm4,zmm19,0x01 + vpclmulqdq zmm12,zmm4,zmm19,0x10 + vmovdqu64 zmm19,ZMMWORD[192+rsp] + vpclmulqdq zmm13,zmm5,zmm19,0x11 + vpclmulqdq zmm15,zmm5,zmm19,0x00 + vpclmulqdq zmm17,zmm5,zmm19,0x01 + vpclmulqdq zmm18,zmm5,zmm19,0x10 + + vpternlogq zmm7,zmm10,zmm17,0x96 + vpternlogq zmm6,zmm1,zmm13,0x96 + vpternlogq zmm8,zmm9,zmm15,0x96 + vpternlogq zmm7,zmm12,zmm18,0x96 + vmovdqu64 zmm11,ZMMWORD[256+r10] + vmovdqu64 zmm3,ZMMWORD[320+r10] + vmovdqu64 zmm4,ZMMWORD[384+r10] + vmovdqu64 zmm5,ZMMWORD[448+r10] + vpshufb zmm11,zmm11,zmm16 + vpshufb zmm3,zmm3,zmm16 + vpshufb zmm4,zmm4,zmm16 + vpshufb zmm5,zmm5,zmm16 + vmovdqu64 zmm19,ZMMWORD[256+rsp] + vpclmulqdq zmm1,zmm11,zmm19,0x11 + vpclmulqdq zmm9,zmm11,zmm19,0x00 + vpclmulqdq zmm10,zmm11,zmm19,0x01 + vpclmulqdq zmm12,zmm11,zmm19,0x10 + vmovdqu64 zmm19,ZMMWORD[320+rsp] + vpclmulqdq zmm13,zmm3,zmm19,0x11 + vpclmulqdq zmm15,zmm3,zmm19,0x00 + vpclmulqdq zmm17,zmm3,zmm19,0x01 + vpclmulqdq zmm18,zmm3,zmm19,0x10 + vpternlogq zmm7,zmm10,zmm17,0x96 + vpternlogq zmm6,zmm1,zmm13,0x96 + vpternlogq zmm8,zmm9,zmm15,0x96 + vpternlogq zmm7,zmm12,zmm18,0x96 + vmovdqu64 zmm19,ZMMWORD[384+rsp] + vpclmulqdq zmm1,zmm4,zmm19,0x11 + vpclmulqdq zmm9,zmm4,zmm19,0x00 + vpclmulqdq zmm10,zmm4,zmm19,0x01 + vpclmulqdq zmm12,zmm4,zmm19,0x10 + vmovdqu64 zmm19,ZMMWORD[448+rsp] + vpclmulqdq zmm13,zmm5,zmm19,0x11 + vpclmulqdq zmm15,zmm5,zmm19,0x00 + vpclmulqdq zmm17,zmm5,zmm19,0x01 + vpclmulqdq zmm18,zmm5,zmm19,0x10 + + vpternlogq zmm7,zmm10,zmm17,0x96 + vpternlogq zmm6,zmm1,zmm13,0x96 + vpternlogq zmm8,zmm9,zmm15,0x96 + vpternlogq zmm7,zmm12,zmm18,0x96 + vmovdqu64 zmm11,ZMMWORD[512+r10] + vmovdqu64 zmm3,ZMMWORD[576+r10] + vmovdqu64 zmm4,ZMMWORD[640+r10] + vmovdqu64 zmm5,ZMMWORD[704+r10] + vpshufb zmm11,zmm11,zmm16 + vpshufb zmm3,zmm3,zmm16 + vpshufb zmm4,zmm4,zmm16 + vpshufb zmm5,zmm5,zmm16 + vmovdqu64 zmm19,ZMMWORD[512+rsp] + vpclmulqdq zmm1,zmm11,zmm19,0x11 + vpclmulqdq zmm9,zmm11,zmm19,0x00 + vpclmulqdq zmm10,zmm11,zmm19,0x01 + vpclmulqdq zmm12,zmm11,zmm19,0x10 + vmovdqu64 zmm19,ZMMWORD[576+rsp] + vpclmulqdq zmm13,zmm3,zmm19,0x11 + vpclmulqdq zmm15,zmm3,zmm19,0x00 + vpclmulqdq zmm17,zmm3,zmm19,0x01 + vpclmulqdq zmm18,zmm3,zmm19,0x10 + vpternlogq zmm7,zmm10,zmm17,0x96 + vpternlogq zmm6,zmm1,zmm13,0x96 + vpternlogq zmm8,zmm9,zmm15,0x96 + vpternlogq zmm7,zmm12,zmm18,0x96 + vmovdqu64 zmm19,ZMMWORD[640+rsp] + vpclmulqdq zmm1,zmm4,zmm19,0x11 + vpclmulqdq zmm9,zmm4,zmm19,0x00 + vpclmulqdq zmm10,zmm4,zmm19,0x01 + vpclmulqdq zmm12,zmm4,zmm19,0x10 + vmovdqu64 zmm19,ZMMWORD[704+rsp] + vpclmulqdq zmm13,zmm5,zmm19,0x11 + vpclmulqdq zmm15,zmm5,zmm19,0x00 + vpclmulqdq zmm17,zmm5,zmm19,0x01 + vpclmulqdq zmm18,zmm5,zmm19,0x10 + + vpternlogq zmm7,zmm10,zmm17,0x96 + vpternlogq zmm6,zmm1,zmm13,0x96 + vpternlogq zmm8,zmm9,zmm15,0x96 + vpternlogq zmm7,zmm12,zmm18,0x96 + + vpsrldq zmm1,zmm7,8 + vpslldq zmm9,zmm7,8 + vpxorq zmm6,zmm6,zmm1 + vpxorq zmm8,zmm8,zmm9 + vextracti64x4 ymm1,zmm6,1 + vpxorq ymm6,ymm6,ymm1 + vextracti32x4 xmm1,ymm6,1 + vpxorq xmm6,xmm6,xmm1 + vextracti64x4 ymm9,zmm8,1 + vpxorq ymm8,ymm8,ymm9 + vextracti32x4 xmm9,ymm8,1 + vpxorq xmm8,xmm8,xmm9 + vmovdqa64 xmm10,XMMWORD[POLY2] + + + vpclmulqdq xmm1,xmm10,xmm8,0x01 + vpslldq xmm1,xmm1,8 + vpxorq xmm1,xmm8,xmm1 + + + vpclmulqdq xmm9,xmm10,xmm1,0x00 + vpsrldq xmm9,xmm9,4 + vpclmulqdq xmm2,xmm10,xmm1,0x10 + vpslldq xmm2,xmm2,4 + vpternlogq xmm2,xmm9,xmm6,0x96 + + sub r11,768 + je NEAR $L$_CALC_AAD_done_1 + + add r10,768 + jmp NEAR $L$_get_AAD_loop48x16_1 + +$L$_exit_AAD_loop48x16_1: + + cmp r11,512 + jl NEAR $L$_less_than_32x16_1 + + vmovdqu64 zmm11,ZMMWORD[r10] + vmovdqu64 zmm3,ZMMWORD[64+r10] + vmovdqu64 zmm4,ZMMWORD[128+r10] + vmovdqu64 zmm5,ZMMWORD[192+r10] + vpshufb zmm11,zmm11,zmm16 + vpshufb zmm3,zmm3,zmm16 + vpshufb zmm4,zmm4,zmm16 + vpshufb zmm5,zmm5,zmm16 + test rbx,rbx + jnz NEAR $L$_skip_hkeys_precomputation_3 + + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vmovdqu64 ZMMWORD[704+rsp],zmm1 + + vmovdqu64 zmm9,ZMMWORD[224+rdx] + vmovdqu64 ZMMWORD[640+rsp],zmm9 + + + vshufi64x2 zmm9,zmm9,zmm9,0x00 + + vmovdqu64 zmm10,ZMMWORD[160+rdx] + vmovdqu64 ZMMWORD[576+rsp],zmm10 + + vmovdqu64 zmm12,ZMMWORD[96+rdx] + vmovdqu64 ZMMWORD[512+rsp],zmm12 + + vpclmulqdq zmm13,zmm10,zmm9,0x11 + vpclmulqdq zmm15,zmm10,zmm9,0x00 + vpclmulqdq zmm17,zmm10,zmm9,0x01 + vpclmulqdq zmm10,zmm10,zmm9,0x10 + vpxorq zmm10,zmm10,zmm17 + + vpsrldq zmm17,zmm10,8 + vpslldq zmm10,zmm10,8 + vpxorq zmm13,zmm13,zmm17 + vpxorq zmm10,zmm10,zmm15 + + + + vmovdqu64 zmm17,ZMMWORD[POLY2] + + vpclmulqdq zmm15,zmm17,zmm10,0x01 + vpslldq zmm15,zmm15,8 + vpxorq zmm10,zmm10,zmm15 + + + + vpclmulqdq zmm15,zmm17,zmm10,0x00 + vpsrldq zmm15,zmm15,4 + vpclmulqdq zmm10,zmm17,zmm10,0x10 + vpslldq zmm10,zmm10,4 + + vpternlogq zmm10,zmm13,zmm15,0x96 + + vmovdqu64 ZMMWORD[448+rsp],zmm10 + + vpclmulqdq zmm13,zmm12,zmm9,0x11 + vpclmulqdq zmm15,zmm12,zmm9,0x00 + vpclmulqdq zmm17,zmm12,zmm9,0x01 + vpclmulqdq zmm12,zmm12,zmm9,0x10 + vpxorq zmm12,zmm12,zmm17 + + vpsrldq zmm17,zmm12,8 + vpslldq zmm12,zmm12,8 + vpxorq zmm13,zmm13,zmm17 + vpxorq zmm12,zmm12,zmm15 + + + + vmovdqu64 zmm17,ZMMWORD[POLY2] + + vpclmulqdq zmm15,zmm17,zmm12,0x01 + vpslldq zmm15,zmm15,8 + vpxorq zmm12,zmm12,zmm15 + + + + vpclmulqdq zmm15,zmm17,zmm12,0x00 + vpsrldq zmm15,zmm15,4 + vpclmulqdq zmm12,zmm17,zmm12,0x10 + vpslldq zmm12,zmm12,4 + + vpternlogq zmm12,zmm13,zmm15,0x96 + + vmovdqu64 ZMMWORD[384+rsp],zmm12 + + vpclmulqdq zmm13,zmm10,zmm9,0x11 + vpclmulqdq zmm15,zmm10,zmm9,0x00 + vpclmulqdq zmm17,zmm10,zmm9,0x01 + vpclmulqdq zmm10,zmm10,zmm9,0x10 + vpxorq zmm10,zmm10,zmm17 + + vpsrldq zmm17,zmm10,8 + vpslldq zmm10,zmm10,8 + vpxorq zmm13,zmm13,zmm17 + vpxorq zmm10,zmm10,zmm15 + + + + vmovdqu64 zmm17,ZMMWORD[POLY2] + + vpclmulqdq zmm15,zmm17,zmm10,0x01 + vpslldq zmm15,zmm15,8 + vpxorq zmm10,zmm10,zmm15 + + + + vpclmulqdq zmm15,zmm17,zmm10,0x00 + vpsrldq zmm15,zmm15,4 + vpclmulqdq zmm10,zmm17,zmm10,0x10 + vpslldq zmm10,zmm10,4 + + vpternlogq zmm10,zmm13,zmm15,0x96 + + vmovdqu64 ZMMWORD[320+rsp],zmm10 + + vpclmulqdq zmm13,zmm12,zmm9,0x11 + vpclmulqdq zmm15,zmm12,zmm9,0x00 + vpclmulqdq zmm17,zmm12,zmm9,0x01 + vpclmulqdq zmm12,zmm12,zmm9,0x10 + vpxorq zmm12,zmm12,zmm17 + + vpsrldq zmm17,zmm12,8 + vpslldq zmm12,zmm12,8 + vpxorq zmm13,zmm13,zmm17 + vpxorq zmm12,zmm12,zmm15 + + + + vmovdqu64 zmm17,ZMMWORD[POLY2] + + vpclmulqdq zmm15,zmm17,zmm12,0x01 + vpslldq zmm15,zmm15,8 + vpxorq zmm12,zmm12,zmm15 + + + + vpclmulqdq zmm15,zmm17,zmm12,0x00 + vpsrldq zmm15,zmm15,4 + vpclmulqdq zmm12,zmm17,zmm12,0x10 + vpslldq zmm12,zmm12,4 + + vpternlogq zmm12,zmm13,zmm15,0x96 + + vmovdqu64 ZMMWORD[256+rsp],zmm12 +$L$_skip_hkeys_precomputation_3: + mov rbx,1 + vpxorq zmm11,zmm11,zmm2 + vmovdqu64 zmm19,ZMMWORD[256+rsp] + vpclmulqdq zmm1,zmm11,zmm19,0x11 + vpclmulqdq zmm9,zmm11,zmm19,0x00 + vpclmulqdq zmm10,zmm11,zmm19,0x01 + vpclmulqdq zmm12,zmm11,zmm19,0x10 + vmovdqu64 zmm19,ZMMWORD[320+rsp] + vpclmulqdq zmm13,zmm3,zmm19,0x11 + vpclmulqdq zmm15,zmm3,zmm19,0x00 + vpclmulqdq zmm17,zmm3,zmm19,0x01 + vpclmulqdq zmm18,zmm3,zmm19,0x10 + vpxorq zmm7,zmm10,zmm17 + vpxorq zmm6,zmm1,zmm13 + vpxorq zmm8,zmm9,zmm15 + vpternlogq zmm7,zmm12,zmm18,0x96 + vmovdqu64 zmm19,ZMMWORD[384+rsp] + vpclmulqdq zmm1,zmm4,zmm19,0x11 + vpclmulqdq zmm9,zmm4,zmm19,0x00 + vpclmulqdq zmm10,zmm4,zmm19,0x01 + vpclmulqdq zmm12,zmm4,zmm19,0x10 + vmovdqu64 zmm19,ZMMWORD[448+rsp] + vpclmulqdq zmm13,zmm5,zmm19,0x11 + vpclmulqdq zmm15,zmm5,zmm19,0x00 + vpclmulqdq zmm17,zmm5,zmm19,0x01 + vpclmulqdq zmm18,zmm5,zmm19,0x10 + + vpternlogq zmm7,zmm10,zmm17,0x96 + vpternlogq zmm6,zmm1,zmm13,0x96 + vpternlogq zmm8,zmm9,zmm15,0x96 + vpternlogq zmm7,zmm12,zmm18,0x96 + vmovdqu64 zmm11,ZMMWORD[256+r10] + vmovdqu64 zmm3,ZMMWORD[320+r10] + vmovdqu64 zmm4,ZMMWORD[384+r10] + vmovdqu64 zmm5,ZMMWORD[448+r10] + vpshufb zmm11,zmm11,zmm16 + vpshufb zmm3,zmm3,zmm16 + vpshufb zmm4,zmm4,zmm16 + vpshufb zmm5,zmm5,zmm16 + vmovdqu64 zmm19,ZMMWORD[512+rsp] + vpclmulqdq zmm1,zmm11,zmm19,0x11 + vpclmulqdq zmm9,zmm11,zmm19,0x00 + vpclmulqdq zmm10,zmm11,zmm19,0x01 + vpclmulqdq zmm12,zmm11,zmm19,0x10 + vmovdqu64 zmm19,ZMMWORD[576+rsp] + vpclmulqdq zmm13,zmm3,zmm19,0x11 + vpclmulqdq zmm15,zmm3,zmm19,0x00 + vpclmulqdq zmm17,zmm3,zmm19,0x01 + vpclmulqdq zmm18,zmm3,zmm19,0x10 + vpternlogq zmm7,zmm10,zmm17,0x96 + vpternlogq zmm6,zmm1,zmm13,0x96 + vpternlogq zmm8,zmm9,zmm15,0x96 + vpternlogq zmm7,zmm12,zmm18,0x96 + vmovdqu64 zmm19,ZMMWORD[640+rsp] + vpclmulqdq zmm1,zmm4,zmm19,0x11 + vpclmulqdq zmm9,zmm4,zmm19,0x00 + vpclmulqdq zmm10,zmm4,zmm19,0x01 + vpclmulqdq zmm12,zmm4,zmm19,0x10 + vmovdqu64 zmm19,ZMMWORD[704+rsp] + vpclmulqdq zmm13,zmm5,zmm19,0x11 + vpclmulqdq zmm15,zmm5,zmm19,0x00 + vpclmulqdq zmm17,zmm5,zmm19,0x01 + vpclmulqdq zmm18,zmm5,zmm19,0x10 + + vpternlogq zmm7,zmm10,zmm17,0x96 + vpternlogq zmm6,zmm1,zmm13,0x96 + vpternlogq zmm8,zmm9,zmm15,0x96 + vpternlogq zmm7,zmm12,zmm18,0x96 + + vpsrldq zmm1,zmm7,8 + vpslldq zmm9,zmm7,8 + vpxorq zmm6,zmm6,zmm1 + vpxorq zmm8,zmm8,zmm9 + vextracti64x4 ymm1,zmm6,1 + vpxorq ymm6,ymm6,ymm1 + vextracti32x4 xmm1,ymm6,1 + vpxorq xmm6,xmm6,xmm1 + vextracti64x4 ymm9,zmm8,1 + vpxorq ymm8,ymm8,ymm9 + vextracti32x4 xmm9,ymm8,1 + vpxorq xmm8,xmm8,xmm9 + vmovdqa64 xmm10,XMMWORD[POLY2] + + + vpclmulqdq xmm1,xmm10,xmm8,0x01 + vpslldq xmm1,xmm1,8 + vpxorq xmm1,xmm8,xmm1 + + + vpclmulqdq xmm9,xmm10,xmm1,0x00 + vpsrldq xmm9,xmm9,4 + vpclmulqdq xmm2,xmm10,xmm1,0x10 + vpslldq xmm2,xmm2,4 + vpternlogq xmm2,xmm9,xmm6,0x96 + + sub r11,512 + je NEAR $L$_CALC_AAD_done_1 + + add r10,512 + jmp NEAR $L$_less_than_16x16_1 + +$L$_less_than_32x16_1: + cmp r11,256 + jl NEAR $L$_less_than_16x16_1 + + vmovdqu64 zmm11,ZMMWORD[r10] + vmovdqu64 zmm3,ZMMWORD[64+r10] + vmovdqu64 zmm4,ZMMWORD[128+r10] + vmovdqu64 zmm5,ZMMWORD[192+r10] + vpshufb zmm11,zmm11,zmm16 + vpshufb zmm3,zmm3,zmm16 + vpshufb zmm4,zmm4,zmm16 + vpshufb zmm5,zmm5,zmm16 + vpxorq zmm11,zmm11,zmm2 + vmovdqu64 zmm19,ZMMWORD[96+rdx] + vpclmulqdq zmm1,zmm11,zmm19,0x11 + vpclmulqdq zmm9,zmm11,zmm19,0x00 + vpclmulqdq zmm10,zmm11,zmm19,0x01 + vpclmulqdq zmm12,zmm11,zmm19,0x10 + vmovdqu64 zmm19,ZMMWORD[160+rdx] + vpclmulqdq zmm13,zmm3,zmm19,0x11 + vpclmulqdq zmm15,zmm3,zmm19,0x00 + vpclmulqdq zmm17,zmm3,zmm19,0x01 + vpclmulqdq zmm18,zmm3,zmm19,0x10 + vpxorq zmm7,zmm10,zmm17 + vpxorq zmm6,zmm1,zmm13 + vpxorq zmm8,zmm9,zmm15 + vpternlogq zmm7,zmm12,zmm18,0x96 + vmovdqu64 zmm19,ZMMWORD[224+rdx] + vpclmulqdq zmm1,zmm4,zmm19,0x11 + vpclmulqdq zmm9,zmm4,zmm19,0x00 + vpclmulqdq zmm10,zmm4,zmm19,0x01 + vpclmulqdq zmm12,zmm4,zmm19,0x10 + vmovdqu64 zmm19,ZMMWORD[288+rdx] + vpclmulqdq zmm13,zmm5,zmm19,0x11 + vpclmulqdq zmm15,zmm5,zmm19,0x00 + vpclmulqdq zmm17,zmm5,zmm19,0x01 + vpclmulqdq zmm18,zmm5,zmm19,0x10 + + vpternlogq zmm7,zmm10,zmm17,0x96 + vpternlogq zmm6,zmm1,zmm13,0x96 + vpternlogq zmm8,zmm9,zmm15,0x96 + vpternlogq zmm7,zmm12,zmm18,0x96 + + vpsrldq zmm1,zmm7,8 + vpslldq zmm9,zmm7,8 + vpxorq zmm6,zmm6,zmm1 + vpxorq zmm8,zmm8,zmm9 + vextracti64x4 ymm1,zmm6,1 + vpxorq ymm6,ymm6,ymm1 + vextracti32x4 xmm1,ymm6,1 + vpxorq xmm6,xmm6,xmm1 + vextracti64x4 ymm9,zmm8,1 + vpxorq ymm8,ymm8,ymm9 + vextracti32x4 xmm9,ymm8,1 + vpxorq xmm8,xmm8,xmm9 + vmovdqa64 xmm10,XMMWORD[POLY2] + + + vpclmulqdq xmm1,xmm10,xmm8,0x01 + vpslldq xmm1,xmm1,8 + vpxorq xmm1,xmm8,xmm1 + + + vpclmulqdq xmm9,xmm10,xmm1,0x00 + vpsrldq xmm9,xmm9,4 + vpclmulqdq xmm2,xmm10,xmm1,0x10 + vpslldq xmm2,xmm2,4 + vpternlogq xmm2,xmm9,xmm6,0x96 + + sub r11,256 + je NEAR $L$_CALC_AAD_done_1 + + add r10,256 + +$L$_less_than_16x16_1: + + lea r12,[byte64_len_to_mask_table] + lea r12,[r11*8+r12] + + + add r11d,15 + shr r11d,4 + cmp r11d,2 + jb NEAR $L$_AAD_blocks_1_1 + je NEAR $L$_AAD_blocks_2_1 + cmp r11d,4 + jb NEAR $L$_AAD_blocks_3_1 + je NEAR $L$_AAD_blocks_4_1 + cmp r11d,6 + jb NEAR $L$_AAD_blocks_5_1 + je NEAR $L$_AAD_blocks_6_1 + cmp r11d,8 + jb NEAR $L$_AAD_blocks_7_1 + je NEAR $L$_AAD_blocks_8_1 + cmp r11d,10 + jb NEAR $L$_AAD_blocks_9_1 + je NEAR $L$_AAD_blocks_10_1 + cmp r11d,12 + jb NEAR $L$_AAD_blocks_11_1 + je NEAR $L$_AAD_blocks_12_1 + cmp r11d,14 + jb NEAR $L$_AAD_blocks_13_1 + je NEAR $L$_AAD_blocks_14_1 + cmp r11d,15 + je NEAR $L$_AAD_blocks_15_1 +$L$_AAD_blocks_16_1: + sub r12,1536 + kmovq k1,[r12] + vmovdqu8 zmm11,ZMMWORD[r10] + vmovdqu8 zmm3,ZMMWORD[64+r10] + vmovdqu8 zmm4,ZMMWORD[128+r10] + vmovdqu8 zmm5{k1}{z},[192+r10] + vpshufb zmm11,zmm11,zmm16 + vpshufb zmm3,zmm3,zmm16 + vpshufb zmm4,zmm4,zmm16 + vpshufb zmm5,zmm5,zmm16 + vpxorq zmm11,zmm11,zmm2 + vmovdqu64 zmm15,ZMMWORD[96+rdx] + vpclmulqdq zmm1,zmm11,zmm15,0x11 + vpclmulqdq zmm6,zmm11,zmm15,0x00 + vpclmulqdq zmm7,zmm11,zmm15,0x01 + vpclmulqdq zmm8,zmm11,zmm15,0x10 + vmovdqu64 zmm15,ZMMWORD[160+rdx] + vpclmulqdq zmm9,zmm3,zmm15,0x11 + vpclmulqdq zmm10,zmm3,zmm15,0x00 + vpclmulqdq zmm12,zmm3,zmm15,0x01 + vpclmulqdq zmm13,zmm3,zmm15,0x10 + vmovdqu64 zmm15,ZMMWORD[224+rdx] + vpclmulqdq zmm11,zmm4,zmm15,0x11 + vpclmulqdq zmm3,zmm4,zmm15,0x00 + vpternlogq zmm1,zmm11,zmm9,0x96 + vpternlogq zmm6,zmm3,zmm10,0x96 + vpclmulqdq zmm11,zmm4,zmm15,0x01 + vpclmulqdq zmm3,zmm4,zmm15,0x10 + vpternlogq zmm7,zmm11,zmm12,0x96 + vpternlogq zmm8,zmm3,zmm13,0x96 + vmovdqu64 zmm15,ZMMWORD[288+rdx] + vpclmulqdq zmm9,zmm5,zmm15,0x11 + vpclmulqdq zmm10,zmm5,zmm15,0x00 + vpclmulqdq zmm12,zmm5,zmm15,0x01 + vpclmulqdq zmm13,zmm5,zmm15,0x10 + vpxorq zmm9,zmm1,zmm9 + vpxorq zmm10,zmm6,zmm10 + vpxorq zmm12,zmm7,zmm12 + vpxorq zmm13,zmm8,zmm13 + + vpxorq zmm12,zmm12,zmm13 + vpsrldq zmm7,zmm12,8 + vpslldq zmm8,zmm12,8 + vpxorq zmm1,zmm9,zmm7 + vpxorq zmm6,zmm10,zmm8 + vextracti64x4 ymm12,zmm1,1 + vpxorq ymm1,ymm1,ymm12 + vextracti32x4 xmm12,ymm1,1 + vpxorq xmm1,xmm1,xmm12 + vextracti64x4 ymm13,zmm6,1 + vpxorq ymm6,ymm6,ymm13 + vextracti32x4 xmm13,ymm6,1 + vpxorq xmm6,xmm6,xmm13 + vmovdqa64 xmm15,XMMWORD[POLY2] + + + vpclmulqdq xmm7,xmm15,xmm6,0x01 + vpslldq xmm7,xmm7,8 + vpxorq xmm7,xmm6,xmm7 + + + vpclmulqdq xmm8,xmm15,xmm7,0x00 + vpsrldq xmm8,xmm8,4 + vpclmulqdq xmm2,xmm15,xmm7,0x10 + vpslldq xmm2,xmm2,4 + vpternlogq xmm2,xmm8,xmm1,0x96 + + jmp NEAR $L$_CALC_AAD_done_1 +$L$_AAD_blocks_15_1: + sub r12,1536 + kmovq k1,[r12] + vmovdqu8 zmm11,ZMMWORD[r10] + vmovdqu8 zmm3,ZMMWORD[64+r10] + vmovdqu8 zmm4,ZMMWORD[128+r10] + vmovdqu8 zmm5{k1}{z},[192+r10] + vpshufb zmm11,zmm11,zmm16 + vpshufb zmm3,zmm3,zmm16 + vpshufb zmm4,zmm4,zmm16 + vpshufb zmm5,zmm5,zmm16 + vpxorq zmm11,zmm11,zmm2 + vmovdqu64 zmm15,ZMMWORD[112+rdx] + vpclmulqdq zmm1,zmm11,zmm15,0x11 + vpclmulqdq zmm6,zmm11,zmm15,0x00 + vpclmulqdq zmm7,zmm11,zmm15,0x01 + vpclmulqdq zmm8,zmm11,zmm15,0x10 + vmovdqu64 zmm15,ZMMWORD[176+rdx] + vpclmulqdq zmm9,zmm3,zmm15,0x11 + vpclmulqdq zmm10,zmm3,zmm15,0x00 + vpclmulqdq zmm12,zmm3,zmm15,0x01 + vpclmulqdq zmm13,zmm3,zmm15,0x10 + vmovdqu64 zmm15,ZMMWORD[240+rdx] + vpclmulqdq zmm11,zmm4,zmm15,0x11 + vpclmulqdq zmm3,zmm4,zmm15,0x00 + vpternlogq zmm9,zmm11,zmm1,0x96 + vpternlogq zmm10,zmm3,zmm6,0x96 + vpclmulqdq zmm11,zmm4,zmm15,0x01 + vpclmulqdq zmm3,zmm4,zmm15,0x10 + vpternlogq zmm12,zmm11,zmm7,0x96 + vpternlogq zmm13,zmm3,zmm8,0x96 + vmovdqu64 ymm15,YMMWORD[304+rdx] + vinserti64x2 zmm15,zmm15,ZMMWORD[336+rdx],2 + vpclmulqdq zmm7,zmm5,zmm15,0x01 + vpclmulqdq zmm8,zmm5,zmm15,0x10 + vpclmulqdq zmm1,zmm5,zmm15,0x11 + vpclmulqdq zmm6,zmm5,zmm15,0x00 + + vpxorq zmm7,zmm7,zmm12 + vpxorq zmm8,zmm8,zmm13 + vpxorq zmm1,zmm1,zmm9 + vpxorq zmm6,zmm6,zmm10 + + vpxorq zmm7,zmm7,zmm8 + vpsrldq zmm12,zmm7,8 + vpslldq zmm13,zmm7,8 + vpxorq zmm1,zmm1,zmm12 + vpxorq zmm6,zmm6,zmm13 + vextracti64x4 ymm12,zmm1,1 + vpxorq ymm1,ymm1,ymm12 + vextracti32x4 xmm12,ymm1,1 + vpxorq xmm1,xmm1,xmm12 + vextracti64x4 ymm13,zmm6,1 + vpxorq ymm6,ymm6,ymm13 + vextracti32x4 xmm13,ymm6,1 + vpxorq xmm6,xmm6,xmm13 + vmovdqa64 xmm15,XMMWORD[POLY2] + + + vpclmulqdq xmm7,xmm15,xmm6,0x01 + vpslldq xmm7,xmm7,8 + vpxorq xmm7,xmm6,xmm7 + + + vpclmulqdq xmm8,xmm15,xmm7,0x00 + vpsrldq xmm8,xmm8,4 + vpclmulqdq xmm2,xmm15,xmm7,0x10 + vpslldq xmm2,xmm2,4 + vpternlogq xmm2,xmm8,xmm1,0x96 + + jmp NEAR $L$_CALC_AAD_done_1 +$L$_AAD_blocks_14_1: + sub r12,1536 + kmovq k1,[r12] + vmovdqu8 zmm11,ZMMWORD[r10] + vmovdqu8 zmm3,ZMMWORD[64+r10] + vmovdqu8 zmm4,ZMMWORD[128+r10] + vmovdqu8 ymm5{k1}{z},[192+r10] + vpshufb zmm11,zmm11,zmm16 + vpshufb zmm3,zmm3,zmm16 + vpshufb zmm4,zmm4,zmm16 + vpshufb ymm5,ymm5,ymm16 + vpxorq zmm11,zmm11,zmm2 + vmovdqu64 zmm15,ZMMWORD[128+rdx] + vpclmulqdq zmm1,zmm11,zmm15,0x11 + vpclmulqdq zmm6,zmm11,zmm15,0x00 + vpclmulqdq zmm7,zmm11,zmm15,0x01 + vpclmulqdq zmm8,zmm11,zmm15,0x10 + vmovdqu64 zmm15,ZMMWORD[192+rdx] + vpclmulqdq zmm9,zmm3,zmm15,0x11 + vpclmulqdq zmm10,zmm3,zmm15,0x00 + vpclmulqdq zmm12,zmm3,zmm15,0x01 + vpclmulqdq zmm13,zmm3,zmm15,0x10 + vmovdqu64 zmm15,ZMMWORD[256+rdx] + vpclmulqdq zmm11,zmm4,zmm15,0x11 + vpclmulqdq zmm3,zmm4,zmm15,0x00 + vpternlogq zmm9,zmm11,zmm1,0x96 + vpternlogq zmm10,zmm3,zmm6,0x96 + vpclmulqdq zmm11,zmm4,zmm15,0x01 + vpclmulqdq zmm3,zmm4,zmm15,0x10 + vpternlogq zmm12,zmm11,zmm7,0x96 + vpternlogq zmm13,zmm3,zmm8,0x96 + vmovdqu64 ymm15,YMMWORD[320+rdx] + vpclmulqdq ymm7,ymm5,ymm15,0x01 + vpclmulqdq ymm8,ymm5,ymm15,0x10 + vpclmulqdq ymm1,ymm5,ymm15,0x11 + vpclmulqdq ymm6,ymm5,ymm15,0x00 + + vpxorq zmm7,zmm7,zmm12 + vpxorq zmm8,zmm8,zmm13 + vpxorq zmm1,zmm1,zmm9 + vpxorq zmm6,zmm6,zmm10 + + vpxorq zmm7,zmm7,zmm8 + vpsrldq zmm12,zmm7,8 + vpslldq zmm13,zmm7,8 + vpxorq zmm1,zmm1,zmm12 + vpxorq zmm6,zmm6,zmm13 + vextracti64x4 ymm12,zmm1,1 + vpxorq ymm1,ymm1,ymm12 + vextracti32x4 xmm12,ymm1,1 + vpxorq xmm1,xmm1,xmm12 + vextracti64x4 ymm13,zmm6,1 + vpxorq ymm6,ymm6,ymm13 + vextracti32x4 xmm13,ymm6,1 + vpxorq xmm6,xmm6,xmm13 + vmovdqa64 xmm15,XMMWORD[POLY2] + + + vpclmulqdq xmm7,xmm15,xmm6,0x01 + vpslldq xmm7,xmm7,8 + vpxorq xmm7,xmm6,xmm7 + + + vpclmulqdq xmm8,xmm15,xmm7,0x00 + vpsrldq xmm8,xmm8,4 + vpclmulqdq xmm2,xmm15,xmm7,0x10 + vpslldq xmm2,xmm2,4 + vpternlogq xmm2,xmm8,xmm1,0x96 + + jmp NEAR $L$_CALC_AAD_done_1 +$L$_AAD_blocks_13_1: + sub r12,1536 + kmovq k1,[r12] + vmovdqu8 zmm11,ZMMWORD[r10] + vmovdqu8 zmm3,ZMMWORD[64+r10] + vmovdqu8 zmm4,ZMMWORD[128+r10] + vmovdqu8 xmm5{k1}{z},[192+r10] + vpshufb zmm11,zmm11,zmm16 + vpshufb zmm3,zmm3,zmm16 + vpshufb zmm4,zmm4,zmm16 + vpshufb xmm5,xmm5,xmm16 + vpxorq zmm11,zmm11,zmm2 + vmovdqu64 zmm15,ZMMWORD[144+rdx] + vpclmulqdq zmm1,zmm11,zmm15,0x11 + vpclmulqdq zmm6,zmm11,zmm15,0x00 + vpclmulqdq zmm7,zmm11,zmm15,0x01 + vpclmulqdq zmm8,zmm11,zmm15,0x10 + vmovdqu64 zmm15,ZMMWORD[208+rdx] + vpclmulqdq zmm9,zmm3,zmm15,0x11 + vpclmulqdq zmm10,zmm3,zmm15,0x00 + vpclmulqdq zmm12,zmm3,zmm15,0x01 + vpclmulqdq zmm13,zmm3,zmm15,0x10 + vmovdqu64 zmm15,ZMMWORD[272+rdx] + vpclmulqdq zmm11,zmm4,zmm15,0x11 + vpclmulqdq zmm3,zmm4,zmm15,0x00 + vpternlogq zmm9,zmm11,zmm1,0x96 + vpternlogq zmm10,zmm3,zmm6,0x96 + vpclmulqdq zmm11,zmm4,zmm15,0x01 + vpclmulqdq zmm3,zmm4,zmm15,0x10 + vpternlogq zmm12,zmm11,zmm7,0x96 + vpternlogq zmm13,zmm3,zmm8,0x96 + vmovdqu64 xmm15,XMMWORD[336+rdx] + vpclmulqdq xmm7,xmm5,xmm15,0x01 + vpclmulqdq xmm8,xmm5,xmm15,0x10 + vpclmulqdq xmm1,xmm5,xmm15,0x11 + vpclmulqdq xmm6,xmm5,xmm15,0x00 + + vpxorq zmm7,zmm7,zmm12 + vpxorq zmm8,zmm8,zmm13 + vpxorq zmm1,zmm1,zmm9 + vpxorq zmm6,zmm6,zmm10 + + vpxorq zmm7,zmm7,zmm8 + vpsrldq zmm12,zmm7,8 + vpslldq zmm13,zmm7,8 + vpxorq zmm1,zmm1,zmm12 + vpxorq zmm6,zmm6,zmm13 + vextracti64x4 ymm12,zmm1,1 + vpxorq ymm1,ymm1,ymm12 + vextracti32x4 xmm12,ymm1,1 + vpxorq xmm1,xmm1,xmm12 + vextracti64x4 ymm13,zmm6,1 + vpxorq ymm6,ymm6,ymm13 + vextracti32x4 xmm13,ymm6,1 + vpxorq xmm6,xmm6,xmm13 + vmovdqa64 xmm15,XMMWORD[POLY2] + + + vpclmulqdq xmm7,xmm15,xmm6,0x01 + vpslldq xmm7,xmm7,8 + vpxorq xmm7,xmm6,xmm7 + + + vpclmulqdq xmm8,xmm15,xmm7,0x00 + vpsrldq xmm8,xmm8,4 + vpclmulqdq xmm2,xmm15,xmm7,0x10 + vpslldq xmm2,xmm2,4 + vpternlogq xmm2,xmm8,xmm1,0x96 + + jmp NEAR $L$_CALC_AAD_done_1 +$L$_AAD_blocks_12_1: + sub r12,1024 + kmovq k1,[r12] + vmovdqu8 zmm11,ZMMWORD[r10] + vmovdqu8 zmm3,ZMMWORD[64+r10] + vmovdqu8 zmm4{k1}{z},[128+r10] + vpshufb zmm11,zmm11,zmm16 + vpshufb zmm3,zmm3,zmm16 + vpshufb zmm4,zmm4,zmm16 + vpxorq zmm11,zmm11,zmm2 + vmovdqu64 zmm15,ZMMWORD[160+rdx] + vpclmulqdq zmm1,zmm11,zmm15,0x11 + vpclmulqdq zmm6,zmm11,zmm15,0x00 + vpclmulqdq zmm7,zmm11,zmm15,0x01 + vpclmulqdq zmm8,zmm11,zmm15,0x10 + vmovdqu64 zmm15,ZMMWORD[224+rdx] + vpclmulqdq zmm9,zmm3,zmm15,0x11 + vpclmulqdq zmm10,zmm3,zmm15,0x00 + vpclmulqdq zmm12,zmm3,zmm15,0x01 + vpclmulqdq zmm13,zmm3,zmm15,0x10 + vmovdqu64 zmm15,ZMMWORD[288+rdx] + vpclmulqdq zmm11,zmm4,zmm15,0x11 + vpclmulqdq zmm3,zmm4,zmm15,0x00 + vpternlogq zmm9,zmm11,zmm1,0x96 + vpternlogq zmm10,zmm3,zmm6,0x96 + vpclmulqdq zmm11,zmm4,zmm15,0x01 + vpclmulqdq zmm3,zmm4,zmm15,0x10 + vpternlogq zmm12,zmm11,zmm7,0x96 + vpternlogq zmm13,zmm3,zmm8,0x96 + + vpxorq zmm12,zmm12,zmm13 + vpsrldq zmm7,zmm12,8 + vpslldq zmm8,zmm12,8 + vpxorq zmm1,zmm9,zmm7 + vpxorq zmm6,zmm10,zmm8 + vextracti64x4 ymm12,zmm1,1 + vpxorq ymm1,ymm1,ymm12 + vextracti32x4 xmm12,ymm1,1 + vpxorq xmm1,xmm1,xmm12 + vextracti64x4 ymm13,zmm6,1 + vpxorq ymm6,ymm6,ymm13 + vextracti32x4 xmm13,ymm6,1 + vpxorq xmm6,xmm6,xmm13 + vmovdqa64 xmm15,XMMWORD[POLY2] + + + vpclmulqdq xmm7,xmm15,xmm6,0x01 + vpslldq xmm7,xmm7,8 + vpxorq xmm7,xmm6,xmm7 + + + vpclmulqdq xmm8,xmm15,xmm7,0x00 + vpsrldq xmm8,xmm8,4 + vpclmulqdq xmm2,xmm15,xmm7,0x10 + vpslldq xmm2,xmm2,4 + vpternlogq xmm2,xmm8,xmm1,0x96 + + jmp NEAR $L$_CALC_AAD_done_1 +$L$_AAD_blocks_11_1: + sub r12,1024 + kmovq k1,[r12] + vmovdqu8 zmm11,ZMMWORD[r10] + vmovdqu8 zmm3,ZMMWORD[64+r10] + vmovdqu8 zmm4{k1}{z},[128+r10] + vpshufb zmm11,zmm11,zmm16 + vpshufb zmm3,zmm3,zmm16 + vpshufb zmm4,zmm4,zmm16 + vpxorq zmm11,zmm11,zmm2 + vmovdqu64 zmm15,ZMMWORD[176+rdx] + vpclmulqdq zmm1,zmm11,zmm15,0x11 + vpclmulqdq zmm6,zmm11,zmm15,0x00 + vpclmulqdq zmm7,zmm11,zmm15,0x01 + vpclmulqdq zmm8,zmm11,zmm15,0x10 + vmovdqu64 zmm15,ZMMWORD[240+rdx] + vpclmulqdq zmm9,zmm3,zmm15,0x11 + vpclmulqdq zmm10,zmm3,zmm15,0x00 + vpclmulqdq zmm12,zmm3,zmm15,0x01 + vpclmulqdq zmm13,zmm3,zmm15,0x10 + vpxorq zmm9,zmm1,zmm9 + vpxorq zmm10,zmm6,zmm10 + vpxorq zmm12,zmm7,zmm12 + vpxorq zmm13,zmm8,zmm13 + vmovdqu64 ymm15,YMMWORD[304+rdx] + vinserti64x2 zmm15,zmm15,ZMMWORD[336+rdx],2 + vpclmulqdq zmm7,zmm4,zmm15,0x01 + vpclmulqdq zmm8,zmm4,zmm15,0x10 + vpclmulqdq zmm1,zmm4,zmm15,0x11 + vpclmulqdq zmm6,zmm4,zmm15,0x00 + + vpxorq zmm7,zmm7,zmm12 + vpxorq zmm8,zmm8,zmm13 + vpxorq zmm1,zmm1,zmm9 + vpxorq zmm6,zmm6,zmm10 + + vpxorq zmm7,zmm7,zmm8 + vpsrldq zmm12,zmm7,8 + vpslldq zmm13,zmm7,8 + vpxorq zmm1,zmm1,zmm12 + vpxorq zmm6,zmm6,zmm13 + vextracti64x4 ymm12,zmm1,1 + vpxorq ymm1,ymm1,ymm12 + vextracti32x4 xmm12,ymm1,1 + vpxorq xmm1,xmm1,xmm12 + vextracti64x4 ymm13,zmm6,1 + vpxorq ymm6,ymm6,ymm13 + vextracti32x4 xmm13,ymm6,1 + vpxorq xmm6,xmm6,xmm13 + vmovdqa64 xmm15,XMMWORD[POLY2] + + + vpclmulqdq xmm7,xmm15,xmm6,0x01 + vpslldq xmm7,xmm7,8 + vpxorq xmm7,xmm6,xmm7 + + + vpclmulqdq xmm8,xmm15,xmm7,0x00 + vpsrldq xmm8,xmm8,4 + vpclmulqdq xmm2,xmm15,xmm7,0x10 + vpslldq xmm2,xmm2,4 + vpternlogq xmm2,xmm8,xmm1,0x96 + + jmp NEAR $L$_CALC_AAD_done_1 +$L$_AAD_blocks_10_1: + sub r12,1024 + kmovq k1,[r12] + vmovdqu8 zmm11,ZMMWORD[r10] + vmovdqu8 zmm3,ZMMWORD[64+r10] + vmovdqu8 ymm4{k1}{z},[128+r10] + vpshufb zmm11,zmm11,zmm16 + vpshufb zmm3,zmm3,zmm16 + vpshufb ymm4,ymm4,ymm16 + vpxorq zmm11,zmm11,zmm2 + vmovdqu64 zmm15,ZMMWORD[192+rdx] + vpclmulqdq zmm1,zmm11,zmm15,0x11 + vpclmulqdq zmm6,zmm11,zmm15,0x00 + vpclmulqdq zmm7,zmm11,zmm15,0x01 + vpclmulqdq zmm8,zmm11,zmm15,0x10 + vmovdqu64 zmm15,ZMMWORD[256+rdx] + vpclmulqdq zmm9,zmm3,zmm15,0x11 + vpclmulqdq zmm10,zmm3,zmm15,0x00 + vpclmulqdq zmm12,zmm3,zmm15,0x01 + vpclmulqdq zmm13,zmm3,zmm15,0x10 + vpxorq zmm9,zmm1,zmm9 + vpxorq zmm10,zmm6,zmm10 + vpxorq zmm12,zmm7,zmm12 + vpxorq zmm13,zmm8,zmm13 + vmovdqu64 ymm15,YMMWORD[320+rdx] + vpclmulqdq ymm7,ymm4,ymm15,0x01 + vpclmulqdq ymm8,ymm4,ymm15,0x10 + vpclmulqdq ymm1,ymm4,ymm15,0x11 + vpclmulqdq ymm6,ymm4,ymm15,0x00 + + vpxorq zmm7,zmm7,zmm12 + vpxorq zmm8,zmm8,zmm13 + vpxorq zmm1,zmm1,zmm9 + vpxorq zmm6,zmm6,zmm10 + + vpxorq zmm7,zmm7,zmm8 + vpsrldq zmm12,zmm7,8 + vpslldq zmm13,zmm7,8 + vpxorq zmm1,zmm1,zmm12 + vpxorq zmm6,zmm6,zmm13 + vextracti64x4 ymm12,zmm1,1 + vpxorq ymm1,ymm1,ymm12 + vextracti32x4 xmm12,ymm1,1 + vpxorq xmm1,xmm1,xmm12 + vextracti64x4 ymm13,zmm6,1 + vpxorq ymm6,ymm6,ymm13 + vextracti32x4 xmm13,ymm6,1 + vpxorq xmm6,xmm6,xmm13 + vmovdqa64 xmm15,XMMWORD[POLY2] + + + vpclmulqdq xmm7,xmm15,xmm6,0x01 + vpslldq xmm7,xmm7,8 + vpxorq xmm7,xmm6,xmm7 + + + vpclmulqdq xmm8,xmm15,xmm7,0x00 + vpsrldq xmm8,xmm8,4 + vpclmulqdq xmm2,xmm15,xmm7,0x10 + vpslldq xmm2,xmm2,4 + vpternlogq xmm2,xmm8,xmm1,0x96 + + jmp NEAR $L$_CALC_AAD_done_1 +$L$_AAD_blocks_9_1: + sub r12,1024 + kmovq k1,[r12] + vmovdqu8 zmm11,ZMMWORD[r10] + vmovdqu8 zmm3,ZMMWORD[64+r10] + vmovdqu8 xmm4{k1}{z},[128+r10] + vpshufb zmm11,zmm11,zmm16 + vpshufb zmm3,zmm3,zmm16 + vpshufb xmm4,xmm4,xmm16 + vpxorq zmm11,zmm11,zmm2 + vmovdqu64 zmm15,ZMMWORD[208+rdx] + vpclmulqdq zmm1,zmm11,zmm15,0x11 + vpclmulqdq zmm6,zmm11,zmm15,0x00 + vpclmulqdq zmm7,zmm11,zmm15,0x01 + vpclmulqdq zmm8,zmm11,zmm15,0x10 + vmovdqu64 zmm15,ZMMWORD[272+rdx] + vpclmulqdq zmm9,zmm3,zmm15,0x11 + vpclmulqdq zmm10,zmm3,zmm15,0x00 + vpclmulqdq zmm12,zmm3,zmm15,0x01 + vpclmulqdq zmm13,zmm3,zmm15,0x10 + vpxorq zmm9,zmm1,zmm9 + vpxorq zmm10,zmm6,zmm10 + vpxorq zmm12,zmm7,zmm12 + vpxorq zmm13,zmm8,zmm13 + vmovdqu64 xmm15,XMMWORD[336+rdx] + vpclmulqdq xmm7,xmm4,xmm15,0x01 + vpclmulqdq xmm8,xmm4,xmm15,0x10 + vpclmulqdq xmm1,xmm4,xmm15,0x11 + vpclmulqdq xmm6,xmm4,xmm15,0x00 + + vpxorq zmm7,zmm7,zmm12 + vpxorq zmm8,zmm8,zmm13 + vpxorq zmm1,zmm1,zmm9 + vpxorq zmm6,zmm6,zmm10 + + vpxorq zmm7,zmm7,zmm8 + vpsrldq zmm12,zmm7,8 + vpslldq zmm13,zmm7,8 + vpxorq zmm1,zmm1,zmm12 + vpxorq zmm6,zmm6,zmm13 + vextracti64x4 ymm12,zmm1,1 + vpxorq ymm1,ymm1,ymm12 + vextracti32x4 xmm12,ymm1,1 + vpxorq xmm1,xmm1,xmm12 + vextracti64x4 ymm13,zmm6,1 + vpxorq ymm6,ymm6,ymm13 + vextracti32x4 xmm13,ymm6,1 + vpxorq xmm6,xmm6,xmm13 + vmovdqa64 xmm15,XMMWORD[POLY2] + + + vpclmulqdq xmm7,xmm15,xmm6,0x01 + vpslldq xmm7,xmm7,8 + vpxorq xmm7,xmm6,xmm7 + + + vpclmulqdq xmm8,xmm15,xmm7,0x00 + vpsrldq xmm8,xmm8,4 + vpclmulqdq xmm2,xmm15,xmm7,0x10 + vpslldq xmm2,xmm2,4 + vpternlogq xmm2,xmm8,xmm1,0x96 + + jmp NEAR $L$_CALC_AAD_done_1 +$L$_AAD_blocks_8_1: + sub r12,512 + kmovq k1,[r12] + vmovdqu8 zmm11,ZMMWORD[r10] + vmovdqu8 zmm3{k1}{z},[64+r10] + vpshufb zmm11,zmm11,zmm16 + vpshufb zmm3,zmm3,zmm16 + vpxorq zmm11,zmm11,zmm2 + vmovdqu64 zmm15,ZMMWORD[224+rdx] + vpclmulqdq zmm1,zmm11,zmm15,0x11 + vpclmulqdq zmm6,zmm11,zmm15,0x00 + vpclmulqdq zmm7,zmm11,zmm15,0x01 + vpclmulqdq zmm8,zmm11,zmm15,0x10 + vmovdqu64 zmm15,ZMMWORD[288+rdx] + vpclmulqdq zmm9,zmm3,zmm15,0x11 + vpclmulqdq zmm10,zmm3,zmm15,0x00 + vpclmulqdq zmm12,zmm3,zmm15,0x01 + vpclmulqdq zmm13,zmm3,zmm15,0x10 + vpxorq zmm9,zmm1,zmm9 + vpxorq zmm10,zmm6,zmm10 + vpxorq zmm12,zmm7,zmm12 + vpxorq zmm13,zmm8,zmm13 + + vpxorq zmm12,zmm12,zmm13 + vpsrldq zmm7,zmm12,8 + vpslldq zmm8,zmm12,8 + vpxorq zmm1,zmm9,zmm7 + vpxorq zmm6,zmm10,zmm8 + vextracti64x4 ymm12,zmm1,1 + vpxorq ymm1,ymm1,ymm12 + vextracti32x4 xmm12,ymm1,1 + vpxorq xmm1,xmm1,xmm12 + vextracti64x4 ymm13,zmm6,1 + vpxorq ymm6,ymm6,ymm13 + vextracti32x4 xmm13,ymm6,1 + vpxorq xmm6,xmm6,xmm13 + vmovdqa64 xmm15,XMMWORD[POLY2] + + + vpclmulqdq xmm7,xmm15,xmm6,0x01 + vpslldq xmm7,xmm7,8 + vpxorq xmm7,xmm6,xmm7 + + + vpclmulqdq xmm8,xmm15,xmm7,0x00 + vpsrldq xmm8,xmm8,4 + vpclmulqdq xmm2,xmm15,xmm7,0x10 + vpslldq xmm2,xmm2,4 + vpternlogq xmm2,xmm8,xmm1,0x96 + + jmp NEAR $L$_CALC_AAD_done_1 +$L$_AAD_blocks_7_1: + sub r12,512 + kmovq k1,[r12] + vmovdqu8 zmm11,ZMMWORD[r10] + vmovdqu8 zmm3{k1}{z},[64+r10] + vpshufb zmm11,zmm11,zmm16 + vpshufb zmm3,zmm3,zmm16 + vpxorq zmm11,zmm11,zmm2 + vmovdqu64 zmm15,ZMMWORD[240+rdx] + vpclmulqdq zmm9,zmm11,zmm15,0x11 + vpclmulqdq zmm10,zmm11,zmm15,0x00 + vpclmulqdq zmm12,zmm11,zmm15,0x01 + vpclmulqdq zmm13,zmm11,zmm15,0x10 + vmovdqu64 ymm15,YMMWORD[304+rdx] + vinserti64x2 zmm15,zmm15,ZMMWORD[336+rdx],2 + vpclmulqdq zmm7,zmm3,zmm15,0x01 + vpclmulqdq zmm8,zmm3,zmm15,0x10 + vpclmulqdq zmm1,zmm3,zmm15,0x11 + vpclmulqdq zmm6,zmm3,zmm15,0x00 + + vpxorq zmm7,zmm7,zmm12 + vpxorq zmm8,zmm8,zmm13 + vpxorq zmm1,zmm1,zmm9 + vpxorq zmm6,zmm6,zmm10 + + vpxorq zmm7,zmm7,zmm8 + vpsrldq zmm12,zmm7,8 + vpslldq zmm13,zmm7,8 + vpxorq zmm1,zmm1,zmm12 + vpxorq zmm6,zmm6,zmm13 + vextracti64x4 ymm12,zmm1,1 + vpxorq ymm1,ymm1,ymm12 + vextracti32x4 xmm12,ymm1,1 + vpxorq xmm1,xmm1,xmm12 + vextracti64x4 ymm13,zmm6,1 + vpxorq ymm6,ymm6,ymm13 + vextracti32x4 xmm13,ymm6,1 + vpxorq xmm6,xmm6,xmm13 + vmovdqa64 xmm15,XMMWORD[POLY2] + + + vpclmulqdq xmm7,xmm15,xmm6,0x01 + vpslldq xmm7,xmm7,8 + vpxorq xmm7,xmm6,xmm7 + + + vpclmulqdq xmm8,xmm15,xmm7,0x00 + vpsrldq xmm8,xmm8,4 + vpclmulqdq xmm2,xmm15,xmm7,0x10 + vpslldq xmm2,xmm2,4 + vpternlogq xmm2,xmm8,xmm1,0x96 + + jmp NEAR $L$_CALC_AAD_done_1 +$L$_AAD_blocks_6_1: + sub r12,512 + kmovq k1,[r12] + vmovdqu8 zmm11,ZMMWORD[r10] + vmovdqu8 ymm3{k1}{z},[64+r10] + vpshufb zmm11,zmm11,zmm16 + vpshufb ymm3,ymm3,ymm16 + vpxorq zmm11,zmm11,zmm2 + vmovdqu64 zmm15,ZMMWORD[256+rdx] + vpclmulqdq zmm9,zmm11,zmm15,0x11 + vpclmulqdq zmm10,zmm11,zmm15,0x00 + vpclmulqdq zmm12,zmm11,zmm15,0x01 + vpclmulqdq zmm13,zmm11,zmm15,0x10 + vmovdqu64 ymm15,YMMWORD[320+rdx] + vpclmulqdq ymm7,ymm3,ymm15,0x01 + vpclmulqdq ymm8,ymm3,ymm15,0x10 + vpclmulqdq ymm1,ymm3,ymm15,0x11 + vpclmulqdq ymm6,ymm3,ymm15,0x00 + + vpxorq zmm7,zmm7,zmm12 + vpxorq zmm8,zmm8,zmm13 + vpxorq zmm1,zmm1,zmm9 + vpxorq zmm6,zmm6,zmm10 + + vpxorq zmm7,zmm7,zmm8 + vpsrldq zmm12,zmm7,8 + vpslldq zmm13,zmm7,8 + vpxorq zmm1,zmm1,zmm12 + vpxorq zmm6,zmm6,zmm13 + vextracti64x4 ymm12,zmm1,1 + vpxorq ymm1,ymm1,ymm12 + vextracti32x4 xmm12,ymm1,1 + vpxorq xmm1,xmm1,xmm12 + vextracti64x4 ymm13,zmm6,1 + vpxorq ymm6,ymm6,ymm13 + vextracti32x4 xmm13,ymm6,1 + vpxorq xmm6,xmm6,xmm13 + vmovdqa64 xmm15,XMMWORD[POLY2] + + + vpclmulqdq xmm7,xmm15,xmm6,0x01 + vpslldq xmm7,xmm7,8 + vpxorq xmm7,xmm6,xmm7 + + + vpclmulqdq xmm8,xmm15,xmm7,0x00 + vpsrldq xmm8,xmm8,4 + vpclmulqdq xmm2,xmm15,xmm7,0x10 + vpslldq xmm2,xmm2,4 + vpternlogq xmm2,xmm8,xmm1,0x96 + + jmp NEAR $L$_CALC_AAD_done_1 +$L$_AAD_blocks_5_1: + sub r12,512 + kmovq k1,[r12] + vmovdqu8 zmm11,ZMMWORD[r10] + vmovdqu8 xmm3{k1}{z},[64+r10] + vpshufb zmm11,zmm11,zmm16 + vpshufb xmm3,xmm3,xmm16 + vpxorq zmm11,zmm11,zmm2 + vmovdqu64 zmm15,ZMMWORD[272+rdx] + vpclmulqdq zmm9,zmm11,zmm15,0x11 + vpclmulqdq zmm10,zmm11,zmm15,0x00 + vpclmulqdq zmm12,zmm11,zmm15,0x01 + vpclmulqdq zmm13,zmm11,zmm15,0x10 + vmovdqu64 xmm15,XMMWORD[336+rdx] + vpclmulqdq xmm7,xmm3,xmm15,0x01 + vpclmulqdq xmm8,xmm3,xmm15,0x10 + vpclmulqdq xmm1,xmm3,xmm15,0x11 + vpclmulqdq xmm6,xmm3,xmm15,0x00 + + vpxorq zmm7,zmm7,zmm12 + vpxorq zmm8,zmm8,zmm13 + vpxorq zmm1,zmm1,zmm9 + vpxorq zmm6,zmm6,zmm10 + + vpxorq zmm7,zmm7,zmm8 + vpsrldq zmm12,zmm7,8 + vpslldq zmm13,zmm7,8 + vpxorq zmm1,zmm1,zmm12 + vpxorq zmm6,zmm6,zmm13 + vextracti64x4 ymm12,zmm1,1 + vpxorq ymm1,ymm1,ymm12 + vextracti32x4 xmm12,ymm1,1 + vpxorq xmm1,xmm1,xmm12 + vextracti64x4 ymm13,zmm6,1 + vpxorq ymm6,ymm6,ymm13 + vextracti32x4 xmm13,ymm6,1 + vpxorq xmm6,xmm6,xmm13 + vmovdqa64 xmm15,XMMWORD[POLY2] + + + vpclmulqdq xmm7,xmm15,xmm6,0x01 + vpslldq xmm7,xmm7,8 + vpxorq xmm7,xmm6,xmm7 + + + vpclmulqdq xmm8,xmm15,xmm7,0x00 + vpsrldq xmm8,xmm8,4 + vpclmulqdq xmm2,xmm15,xmm7,0x10 + vpslldq xmm2,xmm2,4 + vpternlogq xmm2,xmm8,xmm1,0x96 + + jmp NEAR $L$_CALC_AAD_done_1 +$L$_AAD_blocks_4_1: + kmovq k1,[r12] + vmovdqu8 zmm11{k1}{z},[r10] + vpshufb zmm11,zmm11,zmm16 + vpxorq zmm11,zmm11,zmm2 + vmovdqu64 zmm15,ZMMWORD[288+rdx] + vpclmulqdq zmm9,zmm11,zmm15,0x11 + vpclmulqdq zmm10,zmm11,zmm15,0x00 + vpclmulqdq zmm12,zmm11,zmm15,0x01 + vpclmulqdq zmm13,zmm11,zmm15,0x10 + + vpxorq zmm12,zmm12,zmm13 + vpsrldq zmm7,zmm12,8 + vpslldq zmm8,zmm12,8 + vpxorq zmm1,zmm9,zmm7 + vpxorq zmm6,zmm10,zmm8 + vextracti64x4 ymm12,zmm1,1 + vpxorq ymm1,ymm1,ymm12 + vextracti32x4 xmm12,ymm1,1 + vpxorq xmm1,xmm1,xmm12 + vextracti64x4 ymm13,zmm6,1 + vpxorq ymm6,ymm6,ymm13 + vextracti32x4 xmm13,ymm6,1 + vpxorq xmm6,xmm6,xmm13 + vmovdqa64 xmm15,XMMWORD[POLY2] + + + vpclmulqdq xmm7,xmm15,xmm6,0x01 + vpslldq xmm7,xmm7,8 + vpxorq xmm7,xmm6,xmm7 + + + vpclmulqdq xmm8,xmm15,xmm7,0x00 + vpsrldq xmm8,xmm8,4 + vpclmulqdq xmm2,xmm15,xmm7,0x10 + vpslldq xmm2,xmm2,4 + vpternlogq xmm2,xmm8,xmm1,0x96 + + jmp NEAR $L$_CALC_AAD_done_1 +$L$_AAD_blocks_3_1: + kmovq k1,[r12] + vmovdqu8 zmm11{k1}{z},[r10] + vpshufb zmm11,zmm11,zmm16 + vpxorq zmm11,zmm11,zmm2 + vmovdqu64 ymm15,YMMWORD[304+rdx] + vinserti64x2 zmm15,zmm15,ZMMWORD[336+rdx],2 + vpclmulqdq zmm7,zmm11,zmm15,0x01 + vpclmulqdq zmm8,zmm11,zmm15,0x10 + vpclmulqdq zmm1,zmm11,zmm15,0x11 + vpclmulqdq zmm6,zmm11,zmm15,0x00 + + vpxorq zmm7,zmm7,zmm8 + vpsrldq zmm12,zmm7,8 + vpslldq zmm13,zmm7,8 + vpxorq zmm1,zmm1,zmm12 + vpxorq zmm6,zmm6,zmm13 + vextracti64x4 ymm12,zmm1,1 + vpxorq ymm1,ymm1,ymm12 + vextracti32x4 xmm12,ymm1,1 + vpxorq xmm1,xmm1,xmm12 + vextracti64x4 ymm13,zmm6,1 + vpxorq ymm6,ymm6,ymm13 + vextracti32x4 xmm13,ymm6,1 + vpxorq xmm6,xmm6,xmm13 + vmovdqa64 xmm15,XMMWORD[POLY2] + + + vpclmulqdq xmm7,xmm15,xmm6,0x01 + vpslldq xmm7,xmm7,8 + vpxorq xmm7,xmm6,xmm7 + + + vpclmulqdq xmm8,xmm15,xmm7,0x00 + vpsrldq xmm8,xmm8,4 + vpclmulqdq xmm2,xmm15,xmm7,0x10 + vpslldq xmm2,xmm2,4 + vpternlogq xmm2,xmm8,xmm1,0x96 + + jmp NEAR $L$_CALC_AAD_done_1 +$L$_AAD_blocks_2_1: + kmovq k1,[r12] + vmovdqu8 ymm11{k1}{z},[r10] + vpshufb ymm11,ymm11,ymm16 + vpxorq zmm11,zmm11,zmm2 + vmovdqu64 ymm15,YMMWORD[320+rdx] + vpclmulqdq ymm7,ymm11,ymm15,0x01 + vpclmulqdq ymm8,ymm11,ymm15,0x10 + vpclmulqdq ymm1,ymm11,ymm15,0x11 + vpclmulqdq ymm6,ymm11,ymm15,0x00 + + vpxorq zmm7,zmm7,zmm8 + vpsrldq zmm12,zmm7,8 + vpslldq zmm13,zmm7,8 + vpxorq zmm1,zmm1,zmm12 + vpxorq zmm6,zmm6,zmm13 + vextracti64x4 ymm12,zmm1,1 + vpxorq ymm1,ymm1,ymm12 + vextracti32x4 xmm12,ymm1,1 + vpxorq xmm1,xmm1,xmm12 + vextracti64x4 ymm13,zmm6,1 + vpxorq ymm6,ymm6,ymm13 + vextracti32x4 xmm13,ymm6,1 + vpxorq xmm6,xmm6,xmm13 + vmovdqa64 xmm15,XMMWORD[POLY2] + + + vpclmulqdq xmm7,xmm15,xmm6,0x01 + vpslldq xmm7,xmm7,8 + vpxorq xmm7,xmm6,xmm7 + + + vpclmulqdq xmm8,xmm15,xmm7,0x00 + vpsrldq xmm8,xmm8,4 + vpclmulqdq xmm2,xmm15,xmm7,0x10 + vpslldq xmm2,xmm2,4 + vpternlogq xmm2,xmm8,xmm1,0x96 + + jmp NEAR $L$_CALC_AAD_done_1 +$L$_AAD_blocks_1_1: + kmovq k1,[r12] + vmovdqu8 xmm11{k1}{z},[r10] + vpshufb xmm11,xmm11,xmm16 + vpxorq zmm11,zmm11,zmm2 + vmovdqu64 xmm15,XMMWORD[336+rdx] + vpclmulqdq xmm7,xmm11,xmm15,0x01 + vpclmulqdq xmm8,xmm11,xmm15,0x10 + vpclmulqdq xmm1,xmm11,xmm15,0x11 + vpclmulqdq xmm6,xmm11,xmm15,0x00 + + vpxorq zmm7,zmm7,zmm8 + vpsrldq zmm12,zmm7,8 + vpslldq zmm13,zmm7,8 + vpxorq zmm1,zmm1,zmm12 + vpxorq zmm6,zmm6,zmm13 + vextracti64x4 ymm12,zmm1,1 + vpxorq ymm1,ymm1,ymm12 + vextracti32x4 xmm12,ymm1,1 + vpxorq xmm1,xmm1,xmm12 + vextracti64x4 ymm13,zmm6,1 + vpxorq ymm6,ymm6,ymm13 + vextracti32x4 xmm13,ymm6,1 + vpxorq xmm6,xmm6,xmm13 + vmovdqa64 xmm15,XMMWORD[POLY2] + + + vpclmulqdq xmm7,xmm15,xmm6,0x01 + vpslldq xmm7,xmm7,8 + vpxorq xmm7,xmm6,xmm7 + + + vpclmulqdq xmm8,xmm15,xmm7,0x00 + vpsrldq xmm8,xmm8,4 + vpclmulqdq xmm2,xmm15,xmm7,0x10 + vpslldq xmm2,xmm2,4 + vpternlogq xmm2,xmm8,xmm1,0x96 + +$L$_CALC_AAD_done_1: + mov r10,r9 + shl r10,3 + vmovq xmm3,r10 + + + vpxorq xmm2,xmm3,xmm2 + + vmovdqu64 xmm1,XMMWORD[336+rdx] + + vpclmulqdq xmm11,xmm2,xmm1,0x11 + vpclmulqdq xmm3,xmm2,xmm1,0x00 + vpclmulqdq xmm4,xmm2,xmm1,0x01 + vpclmulqdq xmm2,xmm2,xmm1,0x10 + vpxorq xmm2,xmm2,xmm4 + + vpsrldq xmm4,xmm2,8 + vpslldq xmm2,xmm2,8 + vpxorq xmm11,xmm11,xmm4 + vpxorq xmm2,xmm2,xmm3 + + + + vmovdqu64 xmm4,XMMWORD[POLY2] + + vpclmulqdq xmm3,xmm4,xmm2,0x01 + vpslldq xmm3,xmm3,8 + vpxorq xmm2,xmm2,xmm3 + + + + vpclmulqdq xmm3,xmm4,xmm2,0x00 + vpsrldq xmm3,xmm3,4 + vpclmulqdq xmm2,xmm4,xmm2,0x10 + vpslldq xmm2,xmm2,4 + + vpternlogq xmm2,xmm11,xmm3,0x96 + + vpshufb xmm2,xmm2,XMMWORD[SHUF_MASK] + jmp NEAR skip_iv_len_12_init_IV +iv_len_12_init_IV: + + vmovdqu8 xmm2,XMMWORD[ONEf] + mov r11,r8 + mov r10d,0x0000000000000fff + kmovq k1,r10 + vmovdqu8 xmm2{k1},[r11] +skip_iv_len_12_init_IV: + vmovdqu xmm1,xmm2 + + + mov r10d,DWORD[240+rcx] + cmp r10d,9 + je NEAR $L$aes_128_4 + cmp r10d,11 + je NEAR $L$aes_192_4 + cmp r10d,13 + je NEAR $L$aes_256_4 + jmp NEAR $L$exit_aes_4 +ALIGN 32 +$L$aes_128_4: + vpxorq xmm1,xmm1,XMMWORD[rcx] + + vaesenc xmm1,xmm1,XMMWORD[16+rcx] + + vaesenc xmm1,xmm1,XMMWORD[32+rcx] + + vaesenc xmm1,xmm1,XMMWORD[48+rcx] + + vaesenc xmm1,xmm1,XMMWORD[64+rcx] + + vaesenc xmm1,xmm1,XMMWORD[80+rcx] + + vaesenc xmm1,xmm1,XMMWORD[96+rcx] + + vaesenc xmm1,xmm1,XMMWORD[112+rcx] + + vaesenc xmm1,xmm1,XMMWORD[128+rcx] + + vaesenc xmm1,xmm1,XMMWORD[144+rcx] + + vaesenclast xmm1,xmm1,XMMWORD[160+rcx] + jmp NEAR $L$exit_aes_4 +ALIGN 32 +$L$aes_192_4: + vpxorq xmm1,xmm1,XMMWORD[rcx] + + vaesenc xmm1,xmm1,XMMWORD[16+rcx] + + vaesenc xmm1,xmm1,XMMWORD[32+rcx] + + vaesenc xmm1,xmm1,XMMWORD[48+rcx] + + vaesenc xmm1,xmm1,XMMWORD[64+rcx] + + vaesenc xmm1,xmm1,XMMWORD[80+rcx] + + vaesenc xmm1,xmm1,XMMWORD[96+rcx] + + vaesenc xmm1,xmm1,XMMWORD[112+rcx] + + vaesenc xmm1,xmm1,XMMWORD[128+rcx] + + vaesenc xmm1,xmm1,XMMWORD[144+rcx] + + vaesenc xmm1,xmm1,XMMWORD[160+rcx] + + vaesenc xmm1,xmm1,XMMWORD[176+rcx] + + vaesenclast xmm1,xmm1,XMMWORD[192+rcx] + jmp NEAR $L$exit_aes_4 +ALIGN 32 +$L$aes_256_4: + vpxorq xmm1,xmm1,XMMWORD[rcx] + + vaesenc xmm1,xmm1,XMMWORD[16+rcx] + + vaesenc xmm1,xmm1,XMMWORD[32+rcx] + + vaesenc xmm1,xmm1,XMMWORD[48+rcx] + + vaesenc xmm1,xmm1,XMMWORD[64+rcx] + + vaesenc xmm1,xmm1,XMMWORD[80+rcx] + + vaesenc xmm1,xmm1,XMMWORD[96+rcx] + + vaesenc xmm1,xmm1,XMMWORD[112+rcx] + + vaesenc xmm1,xmm1,XMMWORD[128+rcx] + + vaesenc xmm1,xmm1,XMMWORD[144+rcx] + + vaesenc xmm1,xmm1,XMMWORD[160+rcx] + + vaesenc xmm1,xmm1,XMMWORD[176+rcx] + + vaesenc xmm1,xmm1,XMMWORD[192+rcx] + + vaesenc xmm1,xmm1,XMMWORD[208+rcx] + + vaesenclast xmm1,xmm1,XMMWORD[224+rcx] + jmp NEAR $L$exit_aes_4 +$L$exit_aes_4: + + vmovdqu XMMWORD[32+rdx],xmm1 + + + vpshufb xmm2,xmm2,XMMWORD[SHUF_MASK] + vmovdqu XMMWORD[rdx],xmm2 + cmp r9,256 + jbe NEAR $L$skip_hkeys_cleanup_5 + vpxor xmm0,xmm0,xmm0 + vmovdqa64 ZMMWORD[rsp],zmm0 + vmovdqa64 ZMMWORD[64+rsp],zmm0 + vmovdqa64 ZMMWORD[128+rsp],zmm0 + vmovdqa64 ZMMWORD[192+rsp],zmm0 + vmovdqa64 ZMMWORD[256+rsp],zmm0 + vmovdqa64 ZMMWORD[320+rsp],zmm0 + vmovdqa64 ZMMWORD[384+rsp],zmm0 + vmovdqa64 ZMMWORD[448+rsp],zmm0 + vmovdqa64 ZMMWORD[512+rsp],zmm0 + vmovdqa64 ZMMWORD[576+rsp],zmm0 + vmovdqa64 ZMMWORD[640+rsp],zmm0 + vmovdqa64 ZMMWORD[704+rsp],zmm0 +$L$skip_hkeys_cleanup_5: + vzeroupper + vmovdqu xmm15,XMMWORD[((-16))+rbp] + vmovdqu xmm14,XMMWORD[((-32))+rbp] + vmovdqu xmm13,XMMWORD[((-48))+rbp] + vmovdqu xmm12,XMMWORD[((-64))+rbp] + vmovdqu xmm11,XMMWORD[((-80))+rbp] + vmovdqu xmm10,XMMWORD[((-96))+rbp] + vmovdqu xmm9,XMMWORD[((-112))+rbp] + vmovdqu xmm8,XMMWORD[((-128))+rbp] + vmovdqu xmm7,XMMWORD[((-144))+rbp] + vmovdqu xmm6,XMMWORD[((-160))+rbp] + lea rsp,[8+rbp] + pop rsi + + pop rdi + + pop r15 + + pop r14 + + pop r13 + + pop r12 + + pop rbp + + pop rbx + +$L$abort_setiv: + DB 0F3h,0C3h ;repret +$L$setiv_seh_end: + + +global ossl_aes_gcm_update_aad_avx512 + +ALIGN 32 +ossl_aes_gcm_update_aad_avx512: + +$L$ghash_seh_begin: +DB 243,15,30,250 + push rbx + +$L$ghash_seh_push_rbx: + push rbp + +$L$ghash_seh_push_rbp: + push r12 + +$L$ghash_seh_push_r12: + push r13 + +$L$ghash_seh_push_r13: + push r14 + +$L$ghash_seh_push_r14: + push r15 + +$L$ghash_seh_push_r15: + push rdi +$L$ghash_seh_push_rdi: + push rsi +$L$ghash_seh_push_rsi: + + sub rsp,168 +$L$ghash_seh_allocstack_xmm: + + + + + + + + + + + lea rbp,[160+rsp] + +$L$ghash_seh_setfp: + vmovdqu XMMWORD[rsp],xmm6 +$L$ghash_seh_save_xmm6: + vmovdqu XMMWORD[16+rsp],xmm7 +$L$ghash_seh_save_xmm7: + vmovdqu XMMWORD[32+rsp],xmm8 +$L$ghash_seh_save_xmm8: + vmovdqu XMMWORD[48+rsp],xmm9 +$L$ghash_seh_save_xmm9: + vmovdqu XMMWORD[64+rsp],xmm10 +$L$ghash_seh_save_xmm10: + vmovdqu XMMWORD[80+rsp],xmm11 +$L$ghash_seh_save_xmm11: + vmovdqu XMMWORD[96+rsp],xmm12 +$L$ghash_seh_save_xmm12: + vmovdqu XMMWORD[112+rsp],xmm13 +$L$ghash_seh_save_xmm13: + vmovdqu XMMWORD[128+rsp],xmm14 +$L$ghash_seh_save_xmm14: + vmovdqu XMMWORD[144+rsp],xmm15 +$L$ghash_seh_save_xmm15: + +$L$ghash_seh_prolog_end: + sub rsp,816 + and rsp,(-64) + vmovdqu64 xmm14,XMMWORD[64+rcx] + mov r10,rdx + mov r11,r8 + or r11,r11 + jz NEAR $L$_CALC_AAD_done_6 + + xor rbx,rbx + vmovdqa64 zmm16,ZMMWORD[SHUF_MASK] + +$L$_get_AAD_loop48x16_6: + cmp r11,768 + jl NEAR $L$_exit_AAD_loop48x16_6 + vmovdqu64 zmm11,ZMMWORD[r10] + vmovdqu64 zmm3,ZMMWORD[64+r10] + vmovdqu64 zmm4,ZMMWORD[128+r10] + vmovdqu64 zmm5,ZMMWORD[192+r10] + vpshufb zmm11,zmm11,zmm16 + vpshufb zmm3,zmm3,zmm16 + vpshufb zmm4,zmm4,zmm16 + vpshufb zmm5,zmm5,zmm16 + test rbx,rbx + jnz NEAR $L$_skip_hkeys_precomputation_7 + + vmovdqu64 zmm1,ZMMWORD[288+rcx] + vmovdqu64 ZMMWORD[704+rsp],zmm1 + + vmovdqu64 zmm9,ZMMWORD[224+rcx] + vmovdqu64 ZMMWORD[640+rsp],zmm9 + + + vshufi64x2 zmm9,zmm9,zmm9,0x00 + + vmovdqu64 zmm10,ZMMWORD[160+rcx] + vmovdqu64 ZMMWORD[576+rsp],zmm10 + + vmovdqu64 zmm12,ZMMWORD[96+rcx] + vmovdqu64 ZMMWORD[512+rsp],zmm12 + + vpclmulqdq zmm13,zmm10,zmm9,0x11 + vpclmulqdq zmm15,zmm10,zmm9,0x00 + vpclmulqdq zmm17,zmm10,zmm9,0x01 + vpclmulqdq zmm10,zmm10,zmm9,0x10 + vpxorq zmm10,zmm10,zmm17 + + vpsrldq zmm17,zmm10,8 + vpslldq zmm10,zmm10,8 + vpxorq zmm13,zmm13,zmm17 + vpxorq zmm10,zmm10,zmm15 + + + + vmovdqu64 zmm17,ZMMWORD[POLY2] + + vpclmulqdq zmm15,zmm17,zmm10,0x01 + vpslldq zmm15,zmm15,8 + vpxorq zmm10,zmm10,zmm15 + + + + vpclmulqdq zmm15,zmm17,zmm10,0x00 + vpsrldq zmm15,zmm15,4 + vpclmulqdq zmm10,zmm17,zmm10,0x10 + vpslldq zmm10,zmm10,4 + + vpternlogq zmm10,zmm13,zmm15,0x96 + + vmovdqu64 ZMMWORD[448+rsp],zmm10 + + vpclmulqdq zmm13,zmm12,zmm9,0x11 + vpclmulqdq zmm15,zmm12,zmm9,0x00 + vpclmulqdq zmm17,zmm12,zmm9,0x01 + vpclmulqdq zmm12,zmm12,zmm9,0x10 + vpxorq zmm12,zmm12,zmm17 + + vpsrldq zmm17,zmm12,8 + vpslldq zmm12,zmm12,8 + vpxorq zmm13,zmm13,zmm17 + vpxorq zmm12,zmm12,zmm15 + + + + vmovdqu64 zmm17,ZMMWORD[POLY2] + + vpclmulqdq zmm15,zmm17,zmm12,0x01 + vpslldq zmm15,zmm15,8 + vpxorq zmm12,zmm12,zmm15 + + + + vpclmulqdq zmm15,zmm17,zmm12,0x00 + vpsrldq zmm15,zmm15,4 + vpclmulqdq zmm12,zmm17,zmm12,0x10 + vpslldq zmm12,zmm12,4 + + vpternlogq zmm12,zmm13,zmm15,0x96 + + vmovdqu64 ZMMWORD[384+rsp],zmm12 + + vpclmulqdq zmm13,zmm10,zmm9,0x11 + vpclmulqdq zmm15,zmm10,zmm9,0x00 + vpclmulqdq zmm17,zmm10,zmm9,0x01 + vpclmulqdq zmm10,zmm10,zmm9,0x10 + vpxorq zmm10,zmm10,zmm17 + + vpsrldq zmm17,zmm10,8 + vpslldq zmm10,zmm10,8 + vpxorq zmm13,zmm13,zmm17 + vpxorq zmm10,zmm10,zmm15 + + + + vmovdqu64 zmm17,ZMMWORD[POLY2] + + vpclmulqdq zmm15,zmm17,zmm10,0x01 + vpslldq zmm15,zmm15,8 + vpxorq zmm10,zmm10,zmm15 + + + + vpclmulqdq zmm15,zmm17,zmm10,0x00 + vpsrldq zmm15,zmm15,4 + vpclmulqdq zmm10,zmm17,zmm10,0x10 + vpslldq zmm10,zmm10,4 + + vpternlogq zmm10,zmm13,zmm15,0x96 + + vmovdqu64 ZMMWORD[320+rsp],zmm10 + + vpclmulqdq zmm13,zmm12,zmm9,0x11 + vpclmulqdq zmm15,zmm12,zmm9,0x00 + vpclmulqdq zmm17,zmm12,zmm9,0x01 + vpclmulqdq zmm12,zmm12,zmm9,0x10 + vpxorq zmm12,zmm12,zmm17 + + vpsrldq zmm17,zmm12,8 + vpslldq zmm12,zmm12,8 + vpxorq zmm13,zmm13,zmm17 + vpxorq zmm12,zmm12,zmm15 + + + + vmovdqu64 zmm17,ZMMWORD[POLY2] + + vpclmulqdq zmm15,zmm17,zmm12,0x01 + vpslldq zmm15,zmm15,8 + vpxorq zmm12,zmm12,zmm15 + + + + vpclmulqdq zmm15,zmm17,zmm12,0x00 + vpsrldq zmm15,zmm15,4 + vpclmulqdq zmm12,zmm17,zmm12,0x10 + vpslldq zmm12,zmm12,4 + + vpternlogq zmm12,zmm13,zmm15,0x96 + + vmovdqu64 ZMMWORD[256+rsp],zmm12 + + vpclmulqdq zmm13,zmm10,zmm9,0x11 + vpclmulqdq zmm15,zmm10,zmm9,0x00 + vpclmulqdq zmm17,zmm10,zmm9,0x01 + vpclmulqdq zmm10,zmm10,zmm9,0x10 + vpxorq zmm10,zmm10,zmm17 + + vpsrldq zmm17,zmm10,8 + vpslldq zmm10,zmm10,8 + vpxorq zmm13,zmm13,zmm17 + vpxorq zmm10,zmm10,zmm15 + + + + vmovdqu64 zmm17,ZMMWORD[POLY2] + + vpclmulqdq zmm15,zmm17,zmm10,0x01 + vpslldq zmm15,zmm15,8 + vpxorq zmm10,zmm10,zmm15 + + + + vpclmulqdq zmm15,zmm17,zmm10,0x00 + vpsrldq zmm15,zmm15,4 + vpclmulqdq zmm10,zmm17,zmm10,0x10 + vpslldq zmm10,zmm10,4 + + vpternlogq zmm10,zmm13,zmm15,0x96 + + vmovdqu64 ZMMWORD[192+rsp],zmm10 + + vpclmulqdq zmm13,zmm12,zmm9,0x11 + vpclmulqdq zmm15,zmm12,zmm9,0x00 + vpclmulqdq zmm17,zmm12,zmm9,0x01 + vpclmulqdq zmm12,zmm12,zmm9,0x10 + vpxorq zmm12,zmm12,zmm17 + + vpsrldq zmm17,zmm12,8 + vpslldq zmm12,zmm12,8 + vpxorq zmm13,zmm13,zmm17 + vpxorq zmm12,zmm12,zmm15 + + + + vmovdqu64 zmm17,ZMMWORD[POLY2] + + vpclmulqdq zmm15,zmm17,zmm12,0x01 + vpslldq zmm15,zmm15,8 + vpxorq zmm12,zmm12,zmm15 + + + + vpclmulqdq zmm15,zmm17,zmm12,0x00 + vpsrldq zmm15,zmm15,4 + vpclmulqdq zmm12,zmm17,zmm12,0x10 + vpslldq zmm12,zmm12,4 + + vpternlogq zmm12,zmm13,zmm15,0x96 + + vmovdqu64 ZMMWORD[128+rsp],zmm12 + + vpclmulqdq zmm13,zmm10,zmm9,0x11 + vpclmulqdq zmm15,zmm10,zmm9,0x00 + vpclmulqdq zmm17,zmm10,zmm9,0x01 + vpclmulqdq zmm10,zmm10,zmm9,0x10 + vpxorq zmm10,zmm10,zmm17 + + vpsrldq zmm17,zmm10,8 + vpslldq zmm10,zmm10,8 + vpxorq zmm13,zmm13,zmm17 + vpxorq zmm10,zmm10,zmm15 + + + + vmovdqu64 zmm17,ZMMWORD[POLY2] + + vpclmulqdq zmm15,zmm17,zmm10,0x01 + vpslldq zmm15,zmm15,8 + vpxorq zmm10,zmm10,zmm15 + + + + vpclmulqdq zmm15,zmm17,zmm10,0x00 + vpsrldq zmm15,zmm15,4 + vpclmulqdq zmm10,zmm17,zmm10,0x10 + vpslldq zmm10,zmm10,4 + + vpternlogq zmm10,zmm13,zmm15,0x96 + + vmovdqu64 ZMMWORD[64+rsp],zmm10 + + vpclmulqdq zmm13,zmm12,zmm9,0x11 + vpclmulqdq zmm15,zmm12,zmm9,0x00 + vpclmulqdq zmm17,zmm12,zmm9,0x01 + vpclmulqdq zmm12,zmm12,zmm9,0x10 + vpxorq zmm12,zmm12,zmm17 + + vpsrldq zmm17,zmm12,8 + vpslldq zmm12,zmm12,8 + vpxorq zmm13,zmm13,zmm17 + vpxorq zmm12,zmm12,zmm15 + + + + vmovdqu64 zmm17,ZMMWORD[POLY2] + + vpclmulqdq zmm15,zmm17,zmm12,0x01 + vpslldq zmm15,zmm15,8 + vpxorq zmm12,zmm12,zmm15 + + + + vpclmulqdq zmm15,zmm17,zmm12,0x00 + vpsrldq zmm15,zmm15,4 + vpclmulqdq zmm12,zmm17,zmm12,0x10 + vpslldq zmm12,zmm12,4 + + vpternlogq zmm12,zmm13,zmm15,0x96 + + vmovdqu64 ZMMWORD[rsp],zmm12 +$L$_skip_hkeys_precomputation_7: + mov rbx,1 + vpxorq zmm11,zmm11,zmm14 + vmovdqu64 zmm19,ZMMWORD[rsp] + vpclmulqdq zmm1,zmm11,zmm19,0x11 + vpclmulqdq zmm9,zmm11,zmm19,0x00 + vpclmulqdq zmm10,zmm11,zmm19,0x01 + vpclmulqdq zmm12,zmm11,zmm19,0x10 + vmovdqu64 zmm19,ZMMWORD[64+rsp] + vpclmulqdq zmm13,zmm3,zmm19,0x11 + vpclmulqdq zmm15,zmm3,zmm19,0x00 + vpclmulqdq zmm17,zmm3,zmm19,0x01 + vpclmulqdq zmm18,zmm3,zmm19,0x10 + vpxorq zmm7,zmm10,zmm17 + vpxorq zmm6,zmm1,zmm13 + vpxorq zmm8,zmm9,zmm15 + vpternlogq zmm7,zmm12,zmm18,0x96 + vmovdqu64 zmm19,ZMMWORD[128+rsp] + vpclmulqdq zmm1,zmm4,zmm19,0x11 + vpclmulqdq zmm9,zmm4,zmm19,0x00 + vpclmulqdq zmm10,zmm4,zmm19,0x01 + vpclmulqdq zmm12,zmm4,zmm19,0x10 + vmovdqu64 zmm19,ZMMWORD[192+rsp] + vpclmulqdq zmm13,zmm5,zmm19,0x11 + vpclmulqdq zmm15,zmm5,zmm19,0x00 + vpclmulqdq zmm17,zmm5,zmm19,0x01 + vpclmulqdq zmm18,zmm5,zmm19,0x10 + + vpternlogq zmm7,zmm10,zmm17,0x96 + vpternlogq zmm6,zmm1,zmm13,0x96 + vpternlogq zmm8,zmm9,zmm15,0x96 + vpternlogq zmm7,zmm12,zmm18,0x96 + vmovdqu64 zmm11,ZMMWORD[256+r10] + vmovdqu64 zmm3,ZMMWORD[320+r10] + vmovdqu64 zmm4,ZMMWORD[384+r10] + vmovdqu64 zmm5,ZMMWORD[448+r10] + vpshufb zmm11,zmm11,zmm16 + vpshufb zmm3,zmm3,zmm16 + vpshufb zmm4,zmm4,zmm16 + vpshufb zmm5,zmm5,zmm16 + vmovdqu64 zmm19,ZMMWORD[256+rsp] + vpclmulqdq zmm1,zmm11,zmm19,0x11 + vpclmulqdq zmm9,zmm11,zmm19,0x00 + vpclmulqdq zmm10,zmm11,zmm19,0x01 + vpclmulqdq zmm12,zmm11,zmm19,0x10 + vmovdqu64 zmm19,ZMMWORD[320+rsp] + vpclmulqdq zmm13,zmm3,zmm19,0x11 + vpclmulqdq zmm15,zmm3,zmm19,0x00 + vpclmulqdq zmm17,zmm3,zmm19,0x01 + vpclmulqdq zmm18,zmm3,zmm19,0x10 + vpternlogq zmm7,zmm10,zmm17,0x96 + vpternlogq zmm6,zmm1,zmm13,0x96 + vpternlogq zmm8,zmm9,zmm15,0x96 + vpternlogq zmm7,zmm12,zmm18,0x96 + vmovdqu64 zmm19,ZMMWORD[384+rsp] + vpclmulqdq zmm1,zmm4,zmm19,0x11 + vpclmulqdq zmm9,zmm4,zmm19,0x00 + vpclmulqdq zmm10,zmm4,zmm19,0x01 + vpclmulqdq zmm12,zmm4,zmm19,0x10 + vmovdqu64 zmm19,ZMMWORD[448+rsp] + vpclmulqdq zmm13,zmm5,zmm19,0x11 + vpclmulqdq zmm15,zmm5,zmm19,0x00 + vpclmulqdq zmm17,zmm5,zmm19,0x01 + vpclmulqdq zmm18,zmm5,zmm19,0x10 + + vpternlogq zmm7,zmm10,zmm17,0x96 + vpternlogq zmm6,zmm1,zmm13,0x96 + vpternlogq zmm8,zmm9,zmm15,0x96 + vpternlogq zmm7,zmm12,zmm18,0x96 + vmovdqu64 zmm11,ZMMWORD[512+r10] + vmovdqu64 zmm3,ZMMWORD[576+r10] + vmovdqu64 zmm4,ZMMWORD[640+r10] + vmovdqu64 zmm5,ZMMWORD[704+r10] + vpshufb zmm11,zmm11,zmm16 + vpshufb zmm3,zmm3,zmm16 + vpshufb zmm4,zmm4,zmm16 + vpshufb zmm5,zmm5,zmm16 + vmovdqu64 zmm19,ZMMWORD[512+rsp] + vpclmulqdq zmm1,zmm11,zmm19,0x11 + vpclmulqdq zmm9,zmm11,zmm19,0x00 + vpclmulqdq zmm10,zmm11,zmm19,0x01 + vpclmulqdq zmm12,zmm11,zmm19,0x10 + vmovdqu64 zmm19,ZMMWORD[576+rsp] + vpclmulqdq zmm13,zmm3,zmm19,0x11 + vpclmulqdq zmm15,zmm3,zmm19,0x00 + vpclmulqdq zmm17,zmm3,zmm19,0x01 + vpclmulqdq zmm18,zmm3,zmm19,0x10 + vpternlogq zmm7,zmm10,zmm17,0x96 + vpternlogq zmm6,zmm1,zmm13,0x96 + vpternlogq zmm8,zmm9,zmm15,0x96 + vpternlogq zmm7,zmm12,zmm18,0x96 + vmovdqu64 zmm19,ZMMWORD[640+rsp] + vpclmulqdq zmm1,zmm4,zmm19,0x11 + vpclmulqdq zmm9,zmm4,zmm19,0x00 + vpclmulqdq zmm10,zmm4,zmm19,0x01 + vpclmulqdq zmm12,zmm4,zmm19,0x10 + vmovdqu64 zmm19,ZMMWORD[704+rsp] + vpclmulqdq zmm13,zmm5,zmm19,0x11 + vpclmulqdq zmm15,zmm5,zmm19,0x00 + vpclmulqdq zmm17,zmm5,zmm19,0x01 + vpclmulqdq zmm18,zmm5,zmm19,0x10 + + vpternlogq zmm7,zmm10,zmm17,0x96 + vpternlogq zmm6,zmm1,zmm13,0x96 + vpternlogq zmm8,zmm9,zmm15,0x96 + vpternlogq zmm7,zmm12,zmm18,0x96 + + vpsrldq zmm1,zmm7,8 + vpslldq zmm9,zmm7,8 + vpxorq zmm6,zmm6,zmm1 + vpxorq zmm8,zmm8,zmm9 + vextracti64x4 ymm1,zmm6,1 + vpxorq ymm6,ymm6,ymm1 + vextracti32x4 xmm1,ymm6,1 + vpxorq xmm6,xmm6,xmm1 + vextracti64x4 ymm9,zmm8,1 + vpxorq ymm8,ymm8,ymm9 + vextracti32x4 xmm9,ymm8,1 + vpxorq xmm8,xmm8,xmm9 + vmovdqa64 xmm10,XMMWORD[POLY2] + + + vpclmulqdq xmm1,xmm10,xmm8,0x01 + vpslldq xmm1,xmm1,8 + vpxorq xmm1,xmm8,xmm1 + + + vpclmulqdq xmm9,xmm10,xmm1,0x00 + vpsrldq xmm9,xmm9,4 + vpclmulqdq xmm14,xmm10,xmm1,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm9,xmm6,0x96 + + sub r11,768 + je NEAR $L$_CALC_AAD_done_6 + + add r10,768 + jmp NEAR $L$_get_AAD_loop48x16_6 + +$L$_exit_AAD_loop48x16_6: + + cmp r11,512 + jl NEAR $L$_less_than_32x16_6 + + vmovdqu64 zmm11,ZMMWORD[r10] + vmovdqu64 zmm3,ZMMWORD[64+r10] + vmovdqu64 zmm4,ZMMWORD[128+r10] + vmovdqu64 zmm5,ZMMWORD[192+r10] + vpshufb zmm11,zmm11,zmm16 + vpshufb zmm3,zmm3,zmm16 + vpshufb zmm4,zmm4,zmm16 + vpshufb zmm5,zmm5,zmm16 + test rbx,rbx + jnz NEAR $L$_skip_hkeys_precomputation_8 + + vmovdqu64 zmm1,ZMMWORD[288+rcx] + vmovdqu64 ZMMWORD[704+rsp],zmm1 + + vmovdqu64 zmm9,ZMMWORD[224+rcx] + vmovdqu64 ZMMWORD[640+rsp],zmm9 + + + vshufi64x2 zmm9,zmm9,zmm9,0x00 + + vmovdqu64 zmm10,ZMMWORD[160+rcx] + vmovdqu64 ZMMWORD[576+rsp],zmm10 + + vmovdqu64 zmm12,ZMMWORD[96+rcx] + vmovdqu64 ZMMWORD[512+rsp],zmm12 + + vpclmulqdq zmm13,zmm10,zmm9,0x11 + vpclmulqdq zmm15,zmm10,zmm9,0x00 + vpclmulqdq zmm17,zmm10,zmm9,0x01 + vpclmulqdq zmm10,zmm10,zmm9,0x10 + vpxorq zmm10,zmm10,zmm17 + + vpsrldq zmm17,zmm10,8 + vpslldq zmm10,zmm10,8 + vpxorq zmm13,zmm13,zmm17 + vpxorq zmm10,zmm10,zmm15 + + + + vmovdqu64 zmm17,ZMMWORD[POLY2] + + vpclmulqdq zmm15,zmm17,zmm10,0x01 + vpslldq zmm15,zmm15,8 + vpxorq zmm10,zmm10,zmm15 + + + + vpclmulqdq zmm15,zmm17,zmm10,0x00 + vpsrldq zmm15,zmm15,4 + vpclmulqdq zmm10,zmm17,zmm10,0x10 + vpslldq zmm10,zmm10,4 + + vpternlogq zmm10,zmm13,zmm15,0x96 + + vmovdqu64 ZMMWORD[448+rsp],zmm10 + + vpclmulqdq zmm13,zmm12,zmm9,0x11 + vpclmulqdq zmm15,zmm12,zmm9,0x00 + vpclmulqdq zmm17,zmm12,zmm9,0x01 + vpclmulqdq zmm12,zmm12,zmm9,0x10 + vpxorq zmm12,zmm12,zmm17 + + vpsrldq zmm17,zmm12,8 + vpslldq zmm12,zmm12,8 + vpxorq zmm13,zmm13,zmm17 + vpxorq zmm12,zmm12,zmm15 + + + + vmovdqu64 zmm17,ZMMWORD[POLY2] + + vpclmulqdq zmm15,zmm17,zmm12,0x01 + vpslldq zmm15,zmm15,8 + vpxorq zmm12,zmm12,zmm15 + + + + vpclmulqdq zmm15,zmm17,zmm12,0x00 + vpsrldq zmm15,zmm15,4 + vpclmulqdq zmm12,zmm17,zmm12,0x10 + vpslldq zmm12,zmm12,4 + + vpternlogq zmm12,zmm13,zmm15,0x96 + + vmovdqu64 ZMMWORD[384+rsp],zmm12 + + vpclmulqdq zmm13,zmm10,zmm9,0x11 + vpclmulqdq zmm15,zmm10,zmm9,0x00 + vpclmulqdq zmm17,zmm10,zmm9,0x01 + vpclmulqdq zmm10,zmm10,zmm9,0x10 + vpxorq zmm10,zmm10,zmm17 + + vpsrldq zmm17,zmm10,8 + vpslldq zmm10,zmm10,8 + vpxorq zmm13,zmm13,zmm17 + vpxorq zmm10,zmm10,zmm15 + + + + vmovdqu64 zmm17,ZMMWORD[POLY2] + + vpclmulqdq zmm15,zmm17,zmm10,0x01 + vpslldq zmm15,zmm15,8 + vpxorq zmm10,zmm10,zmm15 + + + + vpclmulqdq zmm15,zmm17,zmm10,0x00 + vpsrldq zmm15,zmm15,4 + vpclmulqdq zmm10,zmm17,zmm10,0x10 + vpslldq zmm10,zmm10,4 + + vpternlogq zmm10,zmm13,zmm15,0x96 + + vmovdqu64 ZMMWORD[320+rsp],zmm10 + + vpclmulqdq zmm13,zmm12,zmm9,0x11 + vpclmulqdq zmm15,zmm12,zmm9,0x00 + vpclmulqdq zmm17,zmm12,zmm9,0x01 + vpclmulqdq zmm12,zmm12,zmm9,0x10 + vpxorq zmm12,zmm12,zmm17 + + vpsrldq zmm17,zmm12,8 + vpslldq zmm12,zmm12,8 + vpxorq zmm13,zmm13,zmm17 + vpxorq zmm12,zmm12,zmm15 + + + + vmovdqu64 zmm17,ZMMWORD[POLY2] + + vpclmulqdq zmm15,zmm17,zmm12,0x01 + vpslldq zmm15,zmm15,8 + vpxorq zmm12,zmm12,zmm15 + + + + vpclmulqdq zmm15,zmm17,zmm12,0x00 + vpsrldq zmm15,zmm15,4 + vpclmulqdq zmm12,zmm17,zmm12,0x10 + vpslldq zmm12,zmm12,4 + + vpternlogq zmm12,zmm13,zmm15,0x96 + + vmovdqu64 ZMMWORD[256+rsp],zmm12 +$L$_skip_hkeys_precomputation_8: + mov rbx,1 + vpxorq zmm11,zmm11,zmm14 + vmovdqu64 zmm19,ZMMWORD[256+rsp] + vpclmulqdq zmm1,zmm11,zmm19,0x11 + vpclmulqdq zmm9,zmm11,zmm19,0x00 + vpclmulqdq zmm10,zmm11,zmm19,0x01 + vpclmulqdq zmm12,zmm11,zmm19,0x10 + vmovdqu64 zmm19,ZMMWORD[320+rsp] + vpclmulqdq zmm13,zmm3,zmm19,0x11 + vpclmulqdq zmm15,zmm3,zmm19,0x00 + vpclmulqdq zmm17,zmm3,zmm19,0x01 + vpclmulqdq zmm18,zmm3,zmm19,0x10 + vpxorq zmm7,zmm10,zmm17 + vpxorq zmm6,zmm1,zmm13 + vpxorq zmm8,zmm9,zmm15 + vpternlogq zmm7,zmm12,zmm18,0x96 + vmovdqu64 zmm19,ZMMWORD[384+rsp] + vpclmulqdq zmm1,zmm4,zmm19,0x11 + vpclmulqdq zmm9,zmm4,zmm19,0x00 + vpclmulqdq zmm10,zmm4,zmm19,0x01 + vpclmulqdq zmm12,zmm4,zmm19,0x10 + vmovdqu64 zmm19,ZMMWORD[448+rsp] + vpclmulqdq zmm13,zmm5,zmm19,0x11 + vpclmulqdq zmm15,zmm5,zmm19,0x00 + vpclmulqdq zmm17,zmm5,zmm19,0x01 + vpclmulqdq zmm18,zmm5,zmm19,0x10 + + vpternlogq zmm7,zmm10,zmm17,0x96 + vpternlogq zmm6,zmm1,zmm13,0x96 + vpternlogq zmm8,zmm9,zmm15,0x96 + vpternlogq zmm7,zmm12,zmm18,0x96 + vmovdqu64 zmm11,ZMMWORD[256+r10] + vmovdqu64 zmm3,ZMMWORD[320+r10] + vmovdqu64 zmm4,ZMMWORD[384+r10] + vmovdqu64 zmm5,ZMMWORD[448+r10] + vpshufb zmm11,zmm11,zmm16 + vpshufb zmm3,zmm3,zmm16 + vpshufb zmm4,zmm4,zmm16 + vpshufb zmm5,zmm5,zmm16 + vmovdqu64 zmm19,ZMMWORD[512+rsp] + vpclmulqdq zmm1,zmm11,zmm19,0x11 + vpclmulqdq zmm9,zmm11,zmm19,0x00 + vpclmulqdq zmm10,zmm11,zmm19,0x01 + vpclmulqdq zmm12,zmm11,zmm19,0x10 + vmovdqu64 zmm19,ZMMWORD[576+rsp] + vpclmulqdq zmm13,zmm3,zmm19,0x11 + vpclmulqdq zmm15,zmm3,zmm19,0x00 + vpclmulqdq zmm17,zmm3,zmm19,0x01 + vpclmulqdq zmm18,zmm3,zmm19,0x10 + vpternlogq zmm7,zmm10,zmm17,0x96 + vpternlogq zmm6,zmm1,zmm13,0x96 + vpternlogq zmm8,zmm9,zmm15,0x96 + vpternlogq zmm7,zmm12,zmm18,0x96 + vmovdqu64 zmm19,ZMMWORD[640+rsp] + vpclmulqdq zmm1,zmm4,zmm19,0x11 + vpclmulqdq zmm9,zmm4,zmm19,0x00 + vpclmulqdq zmm10,zmm4,zmm19,0x01 + vpclmulqdq zmm12,zmm4,zmm19,0x10 + vmovdqu64 zmm19,ZMMWORD[704+rsp] + vpclmulqdq zmm13,zmm5,zmm19,0x11 + vpclmulqdq zmm15,zmm5,zmm19,0x00 + vpclmulqdq zmm17,zmm5,zmm19,0x01 + vpclmulqdq zmm18,zmm5,zmm19,0x10 + + vpternlogq zmm7,zmm10,zmm17,0x96 + vpternlogq zmm6,zmm1,zmm13,0x96 + vpternlogq zmm8,zmm9,zmm15,0x96 + vpternlogq zmm7,zmm12,zmm18,0x96 + + vpsrldq zmm1,zmm7,8 + vpslldq zmm9,zmm7,8 + vpxorq zmm6,zmm6,zmm1 + vpxorq zmm8,zmm8,zmm9 + vextracti64x4 ymm1,zmm6,1 + vpxorq ymm6,ymm6,ymm1 + vextracti32x4 xmm1,ymm6,1 + vpxorq xmm6,xmm6,xmm1 + vextracti64x4 ymm9,zmm8,1 + vpxorq ymm8,ymm8,ymm9 + vextracti32x4 xmm9,ymm8,1 + vpxorq xmm8,xmm8,xmm9 + vmovdqa64 xmm10,XMMWORD[POLY2] + + + vpclmulqdq xmm1,xmm10,xmm8,0x01 + vpslldq xmm1,xmm1,8 + vpxorq xmm1,xmm8,xmm1 + + + vpclmulqdq xmm9,xmm10,xmm1,0x00 + vpsrldq xmm9,xmm9,4 + vpclmulqdq xmm14,xmm10,xmm1,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm9,xmm6,0x96 + + sub r11,512 + je NEAR $L$_CALC_AAD_done_6 + + add r10,512 + jmp NEAR $L$_less_than_16x16_6 + +$L$_less_than_32x16_6: + cmp r11,256 + jl NEAR $L$_less_than_16x16_6 + + vmovdqu64 zmm11,ZMMWORD[r10] + vmovdqu64 zmm3,ZMMWORD[64+r10] + vmovdqu64 zmm4,ZMMWORD[128+r10] + vmovdqu64 zmm5,ZMMWORD[192+r10] + vpshufb zmm11,zmm11,zmm16 + vpshufb zmm3,zmm3,zmm16 + vpshufb zmm4,zmm4,zmm16 + vpshufb zmm5,zmm5,zmm16 + vpxorq zmm11,zmm11,zmm14 + vmovdqu64 zmm19,ZMMWORD[96+rcx] + vpclmulqdq zmm1,zmm11,zmm19,0x11 + vpclmulqdq zmm9,zmm11,zmm19,0x00 + vpclmulqdq zmm10,zmm11,zmm19,0x01 + vpclmulqdq zmm12,zmm11,zmm19,0x10 + vmovdqu64 zmm19,ZMMWORD[160+rcx] + vpclmulqdq zmm13,zmm3,zmm19,0x11 + vpclmulqdq zmm15,zmm3,zmm19,0x00 + vpclmulqdq zmm17,zmm3,zmm19,0x01 + vpclmulqdq zmm18,zmm3,zmm19,0x10 + vpxorq zmm7,zmm10,zmm17 + vpxorq zmm6,zmm1,zmm13 + vpxorq zmm8,zmm9,zmm15 + vpternlogq zmm7,zmm12,zmm18,0x96 + vmovdqu64 zmm19,ZMMWORD[224+rcx] + vpclmulqdq zmm1,zmm4,zmm19,0x11 + vpclmulqdq zmm9,zmm4,zmm19,0x00 + vpclmulqdq zmm10,zmm4,zmm19,0x01 + vpclmulqdq zmm12,zmm4,zmm19,0x10 + vmovdqu64 zmm19,ZMMWORD[288+rcx] + vpclmulqdq zmm13,zmm5,zmm19,0x11 + vpclmulqdq zmm15,zmm5,zmm19,0x00 + vpclmulqdq zmm17,zmm5,zmm19,0x01 + vpclmulqdq zmm18,zmm5,zmm19,0x10 + + vpternlogq zmm7,zmm10,zmm17,0x96 + vpternlogq zmm6,zmm1,zmm13,0x96 + vpternlogq zmm8,zmm9,zmm15,0x96 + vpternlogq zmm7,zmm12,zmm18,0x96 + + vpsrldq zmm1,zmm7,8 + vpslldq zmm9,zmm7,8 + vpxorq zmm6,zmm6,zmm1 + vpxorq zmm8,zmm8,zmm9 + vextracti64x4 ymm1,zmm6,1 + vpxorq ymm6,ymm6,ymm1 + vextracti32x4 xmm1,ymm6,1 + vpxorq xmm6,xmm6,xmm1 + vextracti64x4 ymm9,zmm8,1 + vpxorq ymm8,ymm8,ymm9 + vextracti32x4 xmm9,ymm8,1 + vpxorq xmm8,xmm8,xmm9 + vmovdqa64 xmm10,XMMWORD[POLY2] + + + vpclmulqdq xmm1,xmm10,xmm8,0x01 + vpslldq xmm1,xmm1,8 + vpxorq xmm1,xmm8,xmm1 + + + vpclmulqdq xmm9,xmm10,xmm1,0x00 + vpsrldq xmm9,xmm9,4 + vpclmulqdq xmm14,xmm10,xmm1,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm9,xmm6,0x96 + + sub r11,256 + je NEAR $L$_CALC_AAD_done_6 + + add r10,256 + +$L$_less_than_16x16_6: + + lea r12,[byte64_len_to_mask_table] + lea r12,[r11*8+r12] + + + add r11d,15 + shr r11d,4 + cmp r11d,2 + jb NEAR $L$_AAD_blocks_1_6 + je NEAR $L$_AAD_blocks_2_6 + cmp r11d,4 + jb NEAR $L$_AAD_blocks_3_6 + je NEAR $L$_AAD_blocks_4_6 + cmp r11d,6 + jb NEAR $L$_AAD_blocks_5_6 + je NEAR $L$_AAD_blocks_6_6 + cmp r11d,8 + jb NEAR $L$_AAD_blocks_7_6 + je NEAR $L$_AAD_blocks_8_6 + cmp r11d,10 + jb NEAR $L$_AAD_blocks_9_6 + je NEAR $L$_AAD_blocks_10_6 + cmp r11d,12 + jb NEAR $L$_AAD_blocks_11_6 + je NEAR $L$_AAD_blocks_12_6 + cmp r11d,14 + jb NEAR $L$_AAD_blocks_13_6 + je NEAR $L$_AAD_blocks_14_6 + cmp r11d,15 + je NEAR $L$_AAD_blocks_15_6 +$L$_AAD_blocks_16_6: + sub r12,1536 + kmovq k1,[r12] + vmovdqu8 zmm11,ZMMWORD[r10] + vmovdqu8 zmm3,ZMMWORD[64+r10] + vmovdqu8 zmm4,ZMMWORD[128+r10] + vmovdqu8 zmm5{k1}{z},[192+r10] + vpshufb zmm11,zmm11,zmm16 + vpshufb zmm3,zmm3,zmm16 + vpshufb zmm4,zmm4,zmm16 + vpshufb zmm5,zmm5,zmm16 + vpxorq zmm11,zmm11,zmm14 + vmovdqu64 zmm15,ZMMWORD[96+rcx] + vpclmulqdq zmm1,zmm11,zmm15,0x11 + vpclmulqdq zmm6,zmm11,zmm15,0x00 + vpclmulqdq zmm7,zmm11,zmm15,0x01 + vpclmulqdq zmm8,zmm11,zmm15,0x10 + vmovdqu64 zmm15,ZMMWORD[160+rcx] + vpclmulqdq zmm9,zmm3,zmm15,0x11 + vpclmulqdq zmm10,zmm3,zmm15,0x00 + vpclmulqdq zmm12,zmm3,zmm15,0x01 + vpclmulqdq zmm13,zmm3,zmm15,0x10 + vmovdqu64 zmm15,ZMMWORD[224+rcx] + vpclmulqdq zmm11,zmm4,zmm15,0x11 + vpclmulqdq zmm3,zmm4,zmm15,0x00 + vpternlogq zmm1,zmm11,zmm9,0x96 + vpternlogq zmm6,zmm3,zmm10,0x96 + vpclmulqdq zmm11,zmm4,zmm15,0x01 + vpclmulqdq zmm3,zmm4,zmm15,0x10 + vpternlogq zmm7,zmm11,zmm12,0x96 + vpternlogq zmm8,zmm3,zmm13,0x96 + vmovdqu64 zmm15,ZMMWORD[288+rcx] + vpclmulqdq zmm9,zmm5,zmm15,0x11 + vpclmulqdq zmm10,zmm5,zmm15,0x00 + vpclmulqdq zmm12,zmm5,zmm15,0x01 + vpclmulqdq zmm13,zmm5,zmm15,0x10 + vpxorq zmm9,zmm1,zmm9 + vpxorq zmm10,zmm6,zmm10 + vpxorq zmm12,zmm7,zmm12 + vpxorq zmm13,zmm8,zmm13 + + vpxorq zmm12,zmm12,zmm13 + vpsrldq zmm7,zmm12,8 + vpslldq zmm8,zmm12,8 + vpxorq zmm1,zmm9,zmm7 + vpxorq zmm6,zmm10,zmm8 + vextracti64x4 ymm12,zmm1,1 + vpxorq ymm1,ymm1,ymm12 + vextracti32x4 xmm12,ymm1,1 + vpxorq xmm1,xmm1,xmm12 + vextracti64x4 ymm13,zmm6,1 + vpxorq ymm6,ymm6,ymm13 + vextracti32x4 xmm13,ymm6,1 + vpxorq xmm6,xmm6,xmm13 + vmovdqa64 xmm15,XMMWORD[POLY2] + + + vpclmulqdq xmm7,xmm15,xmm6,0x01 + vpslldq xmm7,xmm7,8 + vpxorq xmm7,xmm6,xmm7 + + + vpclmulqdq xmm8,xmm15,xmm7,0x00 + vpsrldq xmm8,xmm8,4 + vpclmulqdq xmm14,xmm15,xmm7,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm8,xmm1,0x96 + + jmp NEAR $L$_CALC_AAD_done_6 +$L$_AAD_blocks_15_6: + sub r12,1536 + kmovq k1,[r12] + vmovdqu8 zmm11,ZMMWORD[r10] + vmovdqu8 zmm3,ZMMWORD[64+r10] + vmovdqu8 zmm4,ZMMWORD[128+r10] + vmovdqu8 zmm5{k1}{z},[192+r10] + vpshufb zmm11,zmm11,zmm16 + vpshufb zmm3,zmm3,zmm16 + vpshufb zmm4,zmm4,zmm16 + vpshufb zmm5,zmm5,zmm16 + vpxorq zmm11,zmm11,zmm14 + vmovdqu64 zmm15,ZMMWORD[112+rcx] + vpclmulqdq zmm1,zmm11,zmm15,0x11 + vpclmulqdq zmm6,zmm11,zmm15,0x00 + vpclmulqdq zmm7,zmm11,zmm15,0x01 + vpclmulqdq zmm8,zmm11,zmm15,0x10 + vmovdqu64 zmm15,ZMMWORD[176+rcx] + vpclmulqdq zmm9,zmm3,zmm15,0x11 + vpclmulqdq zmm10,zmm3,zmm15,0x00 + vpclmulqdq zmm12,zmm3,zmm15,0x01 + vpclmulqdq zmm13,zmm3,zmm15,0x10 + vmovdqu64 zmm15,ZMMWORD[240+rcx] + vpclmulqdq zmm11,zmm4,zmm15,0x11 + vpclmulqdq zmm3,zmm4,zmm15,0x00 + vpternlogq zmm9,zmm11,zmm1,0x96 + vpternlogq zmm10,zmm3,zmm6,0x96 + vpclmulqdq zmm11,zmm4,zmm15,0x01 + vpclmulqdq zmm3,zmm4,zmm15,0x10 + vpternlogq zmm12,zmm11,zmm7,0x96 + vpternlogq zmm13,zmm3,zmm8,0x96 + vmovdqu64 ymm15,YMMWORD[304+rcx] + vinserti64x2 zmm15,zmm15,ZMMWORD[336+rcx],2 + vpclmulqdq zmm7,zmm5,zmm15,0x01 + vpclmulqdq zmm8,zmm5,zmm15,0x10 + vpclmulqdq zmm1,zmm5,zmm15,0x11 + vpclmulqdq zmm6,zmm5,zmm15,0x00 + + vpxorq zmm7,zmm7,zmm12 + vpxorq zmm8,zmm8,zmm13 + vpxorq zmm1,zmm1,zmm9 + vpxorq zmm6,zmm6,zmm10 + + vpxorq zmm7,zmm7,zmm8 + vpsrldq zmm12,zmm7,8 + vpslldq zmm13,zmm7,8 + vpxorq zmm1,zmm1,zmm12 + vpxorq zmm6,zmm6,zmm13 + vextracti64x4 ymm12,zmm1,1 + vpxorq ymm1,ymm1,ymm12 + vextracti32x4 xmm12,ymm1,1 + vpxorq xmm1,xmm1,xmm12 + vextracti64x4 ymm13,zmm6,1 + vpxorq ymm6,ymm6,ymm13 + vextracti32x4 xmm13,ymm6,1 + vpxorq xmm6,xmm6,xmm13 + vmovdqa64 xmm15,XMMWORD[POLY2] + + + vpclmulqdq xmm7,xmm15,xmm6,0x01 + vpslldq xmm7,xmm7,8 + vpxorq xmm7,xmm6,xmm7 + + + vpclmulqdq xmm8,xmm15,xmm7,0x00 + vpsrldq xmm8,xmm8,4 + vpclmulqdq xmm14,xmm15,xmm7,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm8,xmm1,0x96 + + jmp NEAR $L$_CALC_AAD_done_6 +$L$_AAD_blocks_14_6: + sub r12,1536 + kmovq k1,[r12] + vmovdqu8 zmm11,ZMMWORD[r10] + vmovdqu8 zmm3,ZMMWORD[64+r10] + vmovdqu8 zmm4,ZMMWORD[128+r10] + vmovdqu8 ymm5{k1}{z},[192+r10] + vpshufb zmm11,zmm11,zmm16 + vpshufb zmm3,zmm3,zmm16 + vpshufb zmm4,zmm4,zmm16 + vpshufb ymm5,ymm5,ymm16 + vpxorq zmm11,zmm11,zmm14 + vmovdqu64 zmm15,ZMMWORD[128+rcx] + vpclmulqdq zmm1,zmm11,zmm15,0x11 + vpclmulqdq zmm6,zmm11,zmm15,0x00 + vpclmulqdq zmm7,zmm11,zmm15,0x01 + vpclmulqdq zmm8,zmm11,zmm15,0x10 + vmovdqu64 zmm15,ZMMWORD[192+rcx] + vpclmulqdq zmm9,zmm3,zmm15,0x11 + vpclmulqdq zmm10,zmm3,zmm15,0x00 + vpclmulqdq zmm12,zmm3,zmm15,0x01 + vpclmulqdq zmm13,zmm3,zmm15,0x10 + vmovdqu64 zmm15,ZMMWORD[256+rcx] + vpclmulqdq zmm11,zmm4,zmm15,0x11 + vpclmulqdq zmm3,zmm4,zmm15,0x00 + vpternlogq zmm9,zmm11,zmm1,0x96 + vpternlogq zmm10,zmm3,zmm6,0x96 + vpclmulqdq zmm11,zmm4,zmm15,0x01 + vpclmulqdq zmm3,zmm4,zmm15,0x10 + vpternlogq zmm12,zmm11,zmm7,0x96 + vpternlogq zmm13,zmm3,zmm8,0x96 + vmovdqu64 ymm15,YMMWORD[320+rcx] + vpclmulqdq ymm7,ymm5,ymm15,0x01 + vpclmulqdq ymm8,ymm5,ymm15,0x10 + vpclmulqdq ymm1,ymm5,ymm15,0x11 + vpclmulqdq ymm6,ymm5,ymm15,0x00 + + vpxorq zmm7,zmm7,zmm12 + vpxorq zmm8,zmm8,zmm13 + vpxorq zmm1,zmm1,zmm9 + vpxorq zmm6,zmm6,zmm10 + + vpxorq zmm7,zmm7,zmm8 + vpsrldq zmm12,zmm7,8 + vpslldq zmm13,zmm7,8 + vpxorq zmm1,zmm1,zmm12 + vpxorq zmm6,zmm6,zmm13 + vextracti64x4 ymm12,zmm1,1 + vpxorq ymm1,ymm1,ymm12 + vextracti32x4 xmm12,ymm1,1 + vpxorq xmm1,xmm1,xmm12 + vextracti64x4 ymm13,zmm6,1 + vpxorq ymm6,ymm6,ymm13 + vextracti32x4 xmm13,ymm6,1 + vpxorq xmm6,xmm6,xmm13 + vmovdqa64 xmm15,XMMWORD[POLY2] + + + vpclmulqdq xmm7,xmm15,xmm6,0x01 + vpslldq xmm7,xmm7,8 + vpxorq xmm7,xmm6,xmm7 + + + vpclmulqdq xmm8,xmm15,xmm7,0x00 + vpsrldq xmm8,xmm8,4 + vpclmulqdq xmm14,xmm15,xmm7,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm8,xmm1,0x96 + + jmp NEAR $L$_CALC_AAD_done_6 +$L$_AAD_blocks_13_6: + sub r12,1536 + kmovq k1,[r12] + vmovdqu8 zmm11,ZMMWORD[r10] + vmovdqu8 zmm3,ZMMWORD[64+r10] + vmovdqu8 zmm4,ZMMWORD[128+r10] + vmovdqu8 xmm5{k1}{z},[192+r10] + vpshufb zmm11,zmm11,zmm16 + vpshufb zmm3,zmm3,zmm16 + vpshufb zmm4,zmm4,zmm16 + vpshufb xmm5,xmm5,xmm16 + vpxorq zmm11,zmm11,zmm14 + vmovdqu64 zmm15,ZMMWORD[144+rcx] + vpclmulqdq zmm1,zmm11,zmm15,0x11 + vpclmulqdq zmm6,zmm11,zmm15,0x00 + vpclmulqdq zmm7,zmm11,zmm15,0x01 + vpclmulqdq zmm8,zmm11,zmm15,0x10 + vmovdqu64 zmm15,ZMMWORD[208+rcx] + vpclmulqdq zmm9,zmm3,zmm15,0x11 + vpclmulqdq zmm10,zmm3,zmm15,0x00 + vpclmulqdq zmm12,zmm3,zmm15,0x01 + vpclmulqdq zmm13,zmm3,zmm15,0x10 + vmovdqu64 zmm15,ZMMWORD[272+rcx] + vpclmulqdq zmm11,zmm4,zmm15,0x11 + vpclmulqdq zmm3,zmm4,zmm15,0x00 + vpternlogq zmm9,zmm11,zmm1,0x96 + vpternlogq zmm10,zmm3,zmm6,0x96 + vpclmulqdq zmm11,zmm4,zmm15,0x01 + vpclmulqdq zmm3,zmm4,zmm15,0x10 + vpternlogq zmm12,zmm11,zmm7,0x96 + vpternlogq zmm13,zmm3,zmm8,0x96 + vmovdqu64 xmm15,XMMWORD[336+rcx] + vpclmulqdq xmm7,xmm5,xmm15,0x01 + vpclmulqdq xmm8,xmm5,xmm15,0x10 + vpclmulqdq xmm1,xmm5,xmm15,0x11 + vpclmulqdq xmm6,xmm5,xmm15,0x00 + + vpxorq zmm7,zmm7,zmm12 + vpxorq zmm8,zmm8,zmm13 + vpxorq zmm1,zmm1,zmm9 + vpxorq zmm6,zmm6,zmm10 + + vpxorq zmm7,zmm7,zmm8 + vpsrldq zmm12,zmm7,8 + vpslldq zmm13,zmm7,8 + vpxorq zmm1,zmm1,zmm12 + vpxorq zmm6,zmm6,zmm13 + vextracti64x4 ymm12,zmm1,1 + vpxorq ymm1,ymm1,ymm12 + vextracti32x4 xmm12,ymm1,1 + vpxorq xmm1,xmm1,xmm12 + vextracti64x4 ymm13,zmm6,1 + vpxorq ymm6,ymm6,ymm13 + vextracti32x4 xmm13,ymm6,1 + vpxorq xmm6,xmm6,xmm13 + vmovdqa64 xmm15,XMMWORD[POLY2] + + + vpclmulqdq xmm7,xmm15,xmm6,0x01 + vpslldq xmm7,xmm7,8 + vpxorq xmm7,xmm6,xmm7 + + + vpclmulqdq xmm8,xmm15,xmm7,0x00 + vpsrldq xmm8,xmm8,4 + vpclmulqdq xmm14,xmm15,xmm7,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm8,xmm1,0x96 + + jmp NEAR $L$_CALC_AAD_done_6 +$L$_AAD_blocks_12_6: + sub r12,1024 + kmovq k1,[r12] + vmovdqu8 zmm11,ZMMWORD[r10] + vmovdqu8 zmm3,ZMMWORD[64+r10] + vmovdqu8 zmm4{k1}{z},[128+r10] + vpshufb zmm11,zmm11,zmm16 + vpshufb zmm3,zmm3,zmm16 + vpshufb zmm4,zmm4,zmm16 + vpxorq zmm11,zmm11,zmm14 + vmovdqu64 zmm15,ZMMWORD[160+rcx] + vpclmulqdq zmm1,zmm11,zmm15,0x11 + vpclmulqdq zmm6,zmm11,zmm15,0x00 + vpclmulqdq zmm7,zmm11,zmm15,0x01 + vpclmulqdq zmm8,zmm11,zmm15,0x10 + vmovdqu64 zmm15,ZMMWORD[224+rcx] + vpclmulqdq zmm9,zmm3,zmm15,0x11 + vpclmulqdq zmm10,zmm3,zmm15,0x00 + vpclmulqdq zmm12,zmm3,zmm15,0x01 + vpclmulqdq zmm13,zmm3,zmm15,0x10 + vmovdqu64 zmm15,ZMMWORD[288+rcx] + vpclmulqdq zmm11,zmm4,zmm15,0x11 + vpclmulqdq zmm3,zmm4,zmm15,0x00 + vpternlogq zmm9,zmm11,zmm1,0x96 + vpternlogq zmm10,zmm3,zmm6,0x96 + vpclmulqdq zmm11,zmm4,zmm15,0x01 + vpclmulqdq zmm3,zmm4,zmm15,0x10 + vpternlogq zmm12,zmm11,zmm7,0x96 + vpternlogq zmm13,zmm3,zmm8,0x96 + + vpxorq zmm12,zmm12,zmm13 + vpsrldq zmm7,zmm12,8 + vpslldq zmm8,zmm12,8 + vpxorq zmm1,zmm9,zmm7 + vpxorq zmm6,zmm10,zmm8 + vextracti64x4 ymm12,zmm1,1 + vpxorq ymm1,ymm1,ymm12 + vextracti32x4 xmm12,ymm1,1 + vpxorq xmm1,xmm1,xmm12 + vextracti64x4 ymm13,zmm6,1 + vpxorq ymm6,ymm6,ymm13 + vextracti32x4 xmm13,ymm6,1 + vpxorq xmm6,xmm6,xmm13 + vmovdqa64 xmm15,XMMWORD[POLY2] + + + vpclmulqdq xmm7,xmm15,xmm6,0x01 + vpslldq xmm7,xmm7,8 + vpxorq xmm7,xmm6,xmm7 + + + vpclmulqdq xmm8,xmm15,xmm7,0x00 + vpsrldq xmm8,xmm8,4 + vpclmulqdq xmm14,xmm15,xmm7,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm8,xmm1,0x96 + + jmp NEAR $L$_CALC_AAD_done_6 +$L$_AAD_blocks_11_6: + sub r12,1024 + kmovq k1,[r12] + vmovdqu8 zmm11,ZMMWORD[r10] + vmovdqu8 zmm3,ZMMWORD[64+r10] + vmovdqu8 zmm4{k1}{z},[128+r10] + vpshufb zmm11,zmm11,zmm16 + vpshufb zmm3,zmm3,zmm16 + vpshufb zmm4,zmm4,zmm16 + vpxorq zmm11,zmm11,zmm14 + vmovdqu64 zmm15,ZMMWORD[176+rcx] + vpclmulqdq zmm1,zmm11,zmm15,0x11 + vpclmulqdq zmm6,zmm11,zmm15,0x00 + vpclmulqdq zmm7,zmm11,zmm15,0x01 + vpclmulqdq zmm8,zmm11,zmm15,0x10 + vmovdqu64 zmm15,ZMMWORD[240+rcx] + vpclmulqdq zmm9,zmm3,zmm15,0x11 + vpclmulqdq zmm10,zmm3,zmm15,0x00 + vpclmulqdq zmm12,zmm3,zmm15,0x01 + vpclmulqdq zmm13,zmm3,zmm15,0x10 + vpxorq zmm9,zmm1,zmm9 + vpxorq zmm10,zmm6,zmm10 + vpxorq zmm12,zmm7,zmm12 + vpxorq zmm13,zmm8,zmm13 + vmovdqu64 ymm15,YMMWORD[304+rcx] + vinserti64x2 zmm15,zmm15,ZMMWORD[336+rcx],2 + vpclmulqdq zmm7,zmm4,zmm15,0x01 + vpclmulqdq zmm8,zmm4,zmm15,0x10 + vpclmulqdq zmm1,zmm4,zmm15,0x11 + vpclmulqdq zmm6,zmm4,zmm15,0x00 + + vpxorq zmm7,zmm7,zmm12 + vpxorq zmm8,zmm8,zmm13 + vpxorq zmm1,zmm1,zmm9 + vpxorq zmm6,zmm6,zmm10 + + vpxorq zmm7,zmm7,zmm8 + vpsrldq zmm12,zmm7,8 + vpslldq zmm13,zmm7,8 + vpxorq zmm1,zmm1,zmm12 + vpxorq zmm6,zmm6,zmm13 + vextracti64x4 ymm12,zmm1,1 + vpxorq ymm1,ymm1,ymm12 + vextracti32x4 xmm12,ymm1,1 + vpxorq xmm1,xmm1,xmm12 + vextracti64x4 ymm13,zmm6,1 + vpxorq ymm6,ymm6,ymm13 + vextracti32x4 xmm13,ymm6,1 + vpxorq xmm6,xmm6,xmm13 + vmovdqa64 xmm15,XMMWORD[POLY2] + + + vpclmulqdq xmm7,xmm15,xmm6,0x01 + vpslldq xmm7,xmm7,8 + vpxorq xmm7,xmm6,xmm7 + + + vpclmulqdq xmm8,xmm15,xmm7,0x00 + vpsrldq xmm8,xmm8,4 + vpclmulqdq xmm14,xmm15,xmm7,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm8,xmm1,0x96 + + jmp NEAR $L$_CALC_AAD_done_6 +$L$_AAD_blocks_10_6: + sub r12,1024 + kmovq k1,[r12] + vmovdqu8 zmm11,ZMMWORD[r10] + vmovdqu8 zmm3,ZMMWORD[64+r10] + vmovdqu8 ymm4{k1}{z},[128+r10] + vpshufb zmm11,zmm11,zmm16 + vpshufb zmm3,zmm3,zmm16 + vpshufb ymm4,ymm4,ymm16 + vpxorq zmm11,zmm11,zmm14 + vmovdqu64 zmm15,ZMMWORD[192+rcx] + vpclmulqdq zmm1,zmm11,zmm15,0x11 + vpclmulqdq zmm6,zmm11,zmm15,0x00 + vpclmulqdq zmm7,zmm11,zmm15,0x01 + vpclmulqdq zmm8,zmm11,zmm15,0x10 + vmovdqu64 zmm15,ZMMWORD[256+rcx] + vpclmulqdq zmm9,zmm3,zmm15,0x11 + vpclmulqdq zmm10,zmm3,zmm15,0x00 + vpclmulqdq zmm12,zmm3,zmm15,0x01 + vpclmulqdq zmm13,zmm3,zmm15,0x10 + vpxorq zmm9,zmm1,zmm9 + vpxorq zmm10,zmm6,zmm10 + vpxorq zmm12,zmm7,zmm12 + vpxorq zmm13,zmm8,zmm13 + vmovdqu64 ymm15,YMMWORD[320+rcx] + vpclmulqdq ymm7,ymm4,ymm15,0x01 + vpclmulqdq ymm8,ymm4,ymm15,0x10 + vpclmulqdq ymm1,ymm4,ymm15,0x11 + vpclmulqdq ymm6,ymm4,ymm15,0x00 + + vpxorq zmm7,zmm7,zmm12 + vpxorq zmm8,zmm8,zmm13 + vpxorq zmm1,zmm1,zmm9 + vpxorq zmm6,zmm6,zmm10 + + vpxorq zmm7,zmm7,zmm8 + vpsrldq zmm12,zmm7,8 + vpslldq zmm13,zmm7,8 + vpxorq zmm1,zmm1,zmm12 + vpxorq zmm6,zmm6,zmm13 + vextracti64x4 ymm12,zmm1,1 + vpxorq ymm1,ymm1,ymm12 + vextracti32x4 xmm12,ymm1,1 + vpxorq xmm1,xmm1,xmm12 + vextracti64x4 ymm13,zmm6,1 + vpxorq ymm6,ymm6,ymm13 + vextracti32x4 xmm13,ymm6,1 + vpxorq xmm6,xmm6,xmm13 + vmovdqa64 xmm15,XMMWORD[POLY2] + + + vpclmulqdq xmm7,xmm15,xmm6,0x01 + vpslldq xmm7,xmm7,8 + vpxorq xmm7,xmm6,xmm7 + + + vpclmulqdq xmm8,xmm15,xmm7,0x00 + vpsrldq xmm8,xmm8,4 + vpclmulqdq xmm14,xmm15,xmm7,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm8,xmm1,0x96 + + jmp NEAR $L$_CALC_AAD_done_6 +$L$_AAD_blocks_9_6: + sub r12,1024 + kmovq k1,[r12] + vmovdqu8 zmm11,ZMMWORD[r10] + vmovdqu8 zmm3,ZMMWORD[64+r10] + vmovdqu8 xmm4{k1}{z},[128+r10] + vpshufb zmm11,zmm11,zmm16 + vpshufb zmm3,zmm3,zmm16 + vpshufb xmm4,xmm4,xmm16 + vpxorq zmm11,zmm11,zmm14 + vmovdqu64 zmm15,ZMMWORD[208+rcx] + vpclmulqdq zmm1,zmm11,zmm15,0x11 + vpclmulqdq zmm6,zmm11,zmm15,0x00 + vpclmulqdq zmm7,zmm11,zmm15,0x01 + vpclmulqdq zmm8,zmm11,zmm15,0x10 + vmovdqu64 zmm15,ZMMWORD[272+rcx] + vpclmulqdq zmm9,zmm3,zmm15,0x11 + vpclmulqdq zmm10,zmm3,zmm15,0x00 + vpclmulqdq zmm12,zmm3,zmm15,0x01 + vpclmulqdq zmm13,zmm3,zmm15,0x10 + vpxorq zmm9,zmm1,zmm9 + vpxorq zmm10,zmm6,zmm10 + vpxorq zmm12,zmm7,zmm12 + vpxorq zmm13,zmm8,zmm13 + vmovdqu64 xmm15,XMMWORD[336+rcx] + vpclmulqdq xmm7,xmm4,xmm15,0x01 + vpclmulqdq xmm8,xmm4,xmm15,0x10 + vpclmulqdq xmm1,xmm4,xmm15,0x11 + vpclmulqdq xmm6,xmm4,xmm15,0x00 + + vpxorq zmm7,zmm7,zmm12 + vpxorq zmm8,zmm8,zmm13 + vpxorq zmm1,zmm1,zmm9 + vpxorq zmm6,zmm6,zmm10 + + vpxorq zmm7,zmm7,zmm8 + vpsrldq zmm12,zmm7,8 + vpslldq zmm13,zmm7,8 + vpxorq zmm1,zmm1,zmm12 + vpxorq zmm6,zmm6,zmm13 + vextracti64x4 ymm12,zmm1,1 + vpxorq ymm1,ymm1,ymm12 + vextracti32x4 xmm12,ymm1,1 + vpxorq xmm1,xmm1,xmm12 + vextracti64x4 ymm13,zmm6,1 + vpxorq ymm6,ymm6,ymm13 + vextracti32x4 xmm13,ymm6,1 + vpxorq xmm6,xmm6,xmm13 + vmovdqa64 xmm15,XMMWORD[POLY2] + + + vpclmulqdq xmm7,xmm15,xmm6,0x01 + vpslldq xmm7,xmm7,8 + vpxorq xmm7,xmm6,xmm7 + + + vpclmulqdq xmm8,xmm15,xmm7,0x00 + vpsrldq xmm8,xmm8,4 + vpclmulqdq xmm14,xmm15,xmm7,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm8,xmm1,0x96 + + jmp NEAR $L$_CALC_AAD_done_6 +$L$_AAD_blocks_8_6: + sub r12,512 + kmovq k1,[r12] + vmovdqu8 zmm11,ZMMWORD[r10] + vmovdqu8 zmm3{k1}{z},[64+r10] + vpshufb zmm11,zmm11,zmm16 + vpshufb zmm3,zmm3,zmm16 + vpxorq zmm11,zmm11,zmm14 + vmovdqu64 zmm15,ZMMWORD[224+rcx] + vpclmulqdq zmm1,zmm11,zmm15,0x11 + vpclmulqdq zmm6,zmm11,zmm15,0x00 + vpclmulqdq zmm7,zmm11,zmm15,0x01 + vpclmulqdq zmm8,zmm11,zmm15,0x10 + vmovdqu64 zmm15,ZMMWORD[288+rcx] + vpclmulqdq zmm9,zmm3,zmm15,0x11 + vpclmulqdq zmm10,zmm3,zmm15,0x00 + vpclmulqdq zmm12,zmm3,zmm15,0x01 + vpclmulqdq zmm13,zmm3,zmm15,0x10 + vpxorq zmm9,zmm1,zmm9 + vpxorq zmm10,zmm6,zmm10 + vpxorq zmm12,zmm7,zmm12 + vpxorq zmm13,zmm8,zmm13 + + vpxorq zmm12,zmm12,zmm13 + vpsrldq zmm7,zmm12,8 + vpslldq zmm8,zmm12,8 + vpxorq zmm1,zmm9,zmm7 + vpxorq zmm6,zmm10,zmm8 + vextracti64x4 ymm12,zmm1,1 + vpxorq ymm1,ymm1,ymm12 + vextracti32x4 xmm12,ymm1,1 + vpxorq xmm1,xmm1,xmm12 + vextracti64x4 ymm13,zmm6,1 + vpxorq ymm6,ymm6,ymm13 + vextracti32x4 xmm13,ymm6,1 + vpxorq xmm6,xmm6,xmm13 + vmovdqa64 xmm15,XMMWORD[POLY2] + + + vpclmulqdq xmm7,xmm15,xmm6,0x01 + vpslldq xmm7,xmm7,8 + vpxorq xmm7,xmm6,xmm7 + + + vpclmulqdq xmm8,xmm15,xmm7,0x00 + vpsrldq xmm8,xmm8,4 + vpclmulqdq xmm14,xmm15,xmm7,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm8,xmm1,0x96 + + jmp NEAR $L$_CALC_AAD_done_6 +$L$_AAD_blocks_7_6: + sub r12,512 + kmovq k1,[r12] + vmovdqu8 zmm11,ZMMWORD[r10] + vmovdqu8 zmm3{k1}{z},[64+r10] + vpshufb zmm11,zmm11,zmm16 + vpshufb zmm3,zmm3,zmm16 + vpxorq zmm11,zmm11,zmm14 + vmovdqu64 zmm15,ZMMWORD[240+rcx] + vpclmulqdq zmm9,zmm11,zmm15,0x11 + vpclmulqdq zmm10,zmm11,zmm15,0x00 + vpclmulqdq zmm12,zmm11,zmm15,0x01 + vpclmulqdq zmm13,zmm11,zmm15,0x10 + vmovdqu64 ymm15,YMMWORD[304+rcx] + vinserti64x2 zmm15,zmm15,ZMMWORD[336+rcx],2 + vpclmulqdq zmm7,zmm3,zmm15,0x01 + vpclmulqdq zmm8,zmm3,zmm15,0x10 + vpclmulqdq zmm1,zmm3,zmm15,0x11 + vpclmulqdq zmm6,zmm3,zmm15,0x00 + + vpxorq zmm7,zmm7,zmm12 + vpxorq zmm8,zmm8,zmm13 + vpxorq zmm1,zmm1,zmm9 + vpxorq zmm6,zmm6,zmm10 + + vpxorq zmm7,zmm7,zmm8 + vpsrldq zmm12,zmm7,8 + vpslldq zmm13,zmm7,8 + vpxorq zmm1,zmm1,zmm12 + vpxorq zmm6,zmm6,zmm13 + vextracti64x4 ymm12,zmm1,1 + vpxorq ymm1,ymm1,ymm12 + vextracti32x4 xmm12,ymm1,1 + vpxorq xmm1,xmm1,xmm12 + vextracti64x4 ymm13,zmm6,1 + vpxorq ymm6,ymm6,ymm13 + vextracti32x4 xmm13,ymm6,1 + vpxorq xmm6,xmm6,xmm13 + vmovdqa64 xmm15,XMMWORD[POLY2] + + + vpclmulqdq xmm7,xmm15,xmm6,0x01 + vpslldq xmm7,xmm7,8 + vpxorq xmm7,xmm6,xmm7 + + + vpclmulqdq xmm8,xmm15,xmm7,0x00 + vpsrldq xmm8,xmm8,4 + vpclmulqdq xmm14,xmm15,xmm7,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm8,xmm1,0x96 + + jmp NEAR $L$_CALC_AAD_done_6 +$L$_AAD_blocks_6_6: + sub r12,512 + kmovq k1,[r12] + vmovdqu8 zmm11,ZMMWORD[r10] + vmovdqu8 ymm3{k1}{z},[64+r10] + vpshufb zmm11,zmm11,zmm16 + vpshufb ymm3,ymm3,ymm16 + vpxorq zmm11,zmm11,zmm14 + vmovdqu64 zmm15,ZMMWORD[256+rcx] + vpclmulqdq zmm9,zmm11,zmm15,0x11 + vpclmulqdq zmm10,zmm11,zmm15,0x00 + vpclmulqdq zmm12,zmm11,zmm15,0x01 + vpclmulqdq zmm13,zmm11,zmm15,0x10 + vmovdqu64 ymm15,YMMWORD[320+rcx] + vpclmulqdq ymm7,ymm3,ymm15,0x01 + vpclmulqdq ymm8,ymm3,ymm15,0x10 + vpclmulqdq ymm1,ymm3,ymm15,0x11 + vpclmulqdq ymm6,ymm3,ymm15,0x00 + + vpxorq zmm7,zmm7,zmm12 + vpxorq zmm8,zmm8,zmm13 + vpxorq zmm1,zmm1,zmm9 + vpxorq zmm6,zmm6,zmm10 + + vpxorq zmm7,zmm7,zmm8 + vpsrldq zmm12,zmm7,8 + vpslldq zmm13,zmm7,8 + vpxorq zmm1,zmm1,zmm12 + vpxorq zmm6,zmm6,zmm13 + vextracti64x4 ymm12,zmm1,1 + vpxorq ymm1,ymm1,ymm12 + vextracti32x4 xmm12,ymm1,1 + vpxorq xmm1,xmm1,xmm12 + vextracti64x4 ymm13,zmm6,1 + vpxorq ymm6,ymm6,ymm13 + vextracti32x4 xmm13,ymm6,1 + vpxorq xmm6,xmm6,xmm13 + vmovdqa64 xmm15,XMMWORD[POLY2] + + + vpclmulqdq xmm7,xmm15,xmm6,0x01 + vpslldq xmm7,xmm7,8 + vpxorq xmm7,xmm6,xmm7 + + + vpclmulqdq xmm8,xmm15,xmm7,0x00 + vpsrldq xmm8,xmm8,4 + vpclmulqdq xmm14,xmm15,xmm7,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm8,xmm1,0x96 + + jmp NEAR $L$_CALC_AAD_done_6 +$L$_AAD_blocks_5_6: + sub r12,512 + kmovq k1,[r12] + vmovdqu8 zmm11,ZMMWORD[r10] + vmovdqu8 xmm3{k1}{z},[64+r10] + vpshufb zmm11,zmm11,zmm16 + vpshufb xmm3,xmm3,xmm16 + vpxorq zmm11,zmm11,zmm14 + vmovdqu64 zmm15,ZMMWORD[272+rcx] + vpclmulqdq zmm9,zmm11,zmm15,0x11 + vpclmulqdq zmm10,zmm11,zmm15,0x00 + vpclmulqdq zmm12,zmm11,zmm15,0x01 + vpclmulqdq zmm13,zmm11,zmm15,0x10 + vmovdqu64 xmm15,XMMWORD[336+rcx] + vpclmulqdq xmm7,xmm3,xmm15,0x01 + vpclmulqdq xmm8,xmm3,xmm15,0x10 + vpclmulqdq xmm1,xmm3,xmm15,0x11 + vpclmulqdq xmm6,xmm3,xmm15,0x00 + + vpxorq zmm7,zmm7,zmm12 + vpxorq zmm8,zmm8,zmm13 + vpxorq zmm1,zmm1,zmm9 + vpxorq zmm6,zmm6,zmm10 + + vpxorq zmm7,zmm7,zmm8 + vpsrldq zmm12,zmm7,8 + vpslldq zmm13,zmm7,8 + vpxorq zmm1,zmm1,zmm12 + vpxorq zmm6,zmm6,zmm13 + vextracti64x4 ymm12,zmm1,1 + vpxorq ymm1,ymm1,ymm12 + vextracti32x4 xmm12,ymm1,1 + vpxorq xmm1,xmm1,xmm12 + vextracti64x4 ymm13,zmm6,1 + vpxorq ymm6,ymm6,ymm13 + vextracti32x4 xmm13,ymm6,1 + vpxorq xmm6,xmm6,xmm13 + vmovdqa64 xmm15,XMMWORD[POLY2] + + + vpclmulqdq xmm7,xmm15,xmm6,0x01 + vpslldq xmm7,xmm7,8 + vpxorq xmm7,xmm6,xmm7 + + + vpclmulqdq xmm8,xmm15,xmm7,0x00 + vpsrldq xmm8,xmm8,4 + vpclmulqdq xmm14,xmm15,xmm7,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm8,xmm1,0x96 + + jmp NEAR $L$_CALC_AAD_done_6 +$L$_AAD_blocks_4_6: + kmovq k1,[r12] + vmovdqu8 zmm11{k1}{z},[r10] + vpshufb zmm11,zmm11,zmm16 + vpxorq zmm11,zmm11,zmm14 + vmovdqu64 zmm15,ZMMWORD[288+rcx] + vpclmulqdq zmm9,zmm11,zmm15,0x11 + vpclmulqdq zmm10,zmm11,zmm15,0x00 + vpclmulqdq zmm12,zmm11,zmm15,0x01 + vpclmulqdq zmm13,zmm11,zmm15,0x10 + + vpxorq zmm12,zmm12,zmm13 + vpsrldq zmm7,zmm12,8 + vpslldq zmm8,zmm12,8 + vpxorq zmm1,zmm9,zmm7 + vpxorq zmm6,zmm10,zmm8 + vextracti64x4 ymm12,zmm1,1 + vpxorq ymm1,ymm1,ymm12 + vextracti32x4 xmm12,ymm1,1 + vpxorq xmm1,xmm1,xmm12 + vextracti64x4 ymm13,zmm6,1 + vpxorq ymm6,ymm6,ymm13 + vextracti32x4 xmm13,ymm6,1 + vpxorq xmm6,xmm6,xmm13 + vmovdqa64 xmm15,XMMWORD[POLY2] + + + vpclmulqdq xmm7,xmm15,xmm6,0x01 + vpslldq xmm7,xmm7,8 + vpxorq xmm7,xmm6,xmm7 + + + vpclmulqdq xmm8,xmm15,xmm7,0x00 + vpsrldq xmm8,xmm8,4 + vpclmulqdq xmm14,xmm15,xmm7,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm8,xmm1,0x96 + + jmp NEAR $L$_CALC_AAD_done_6 +$L$_AAD_blocks_3_6: + kmovq k1,[r12] + vmovdqu8 zmm11{k1}{z},[r10] + vpshufb zmm11,zmm11,zmm16 + vpxorq zmm11,zmm11,zmm14 + vmovdqu64 ymm15,YMMWORD[304+rcx] + vinserti64x2 zmm15,zmm15,ZMMWORD[336+rcx],2 + vpclmulqdq zmm7,zmm11,zmm15,0x01 + vpclmulqdq zmm8,zmm11,zmm15,0x10 + vpclmulqdq zmm1,zmm11,zmm15,0x11 + vpclmulqdq zmm6,zmm11,zmm15,0x00 + + vpxorq zmm7,zmm7,zmm8 + vpsrldq zmm12,zmm7,8 + vpslldq zmm13,zmm7,8 + vpxorq zmm1,zmm1,zmm12 + vpxorq zmm6,zmm6,zmm13 + vextracti64x4 ymm12,zmm1,1 + vpxorq ymm1,ymm1,ymm12 + vextracti32x4 xmm12,ymm1,1 + vpxorq xmm1,xmm1,xmm12 + vextracti64x4 ymm13,zmm6,1 + vpxorq ymm6,ymm6,ymm13 + vextracti32x4 xmm13,ymm6,1 + vpxorq xmm6,xmm6,xmm13 + vmovdqa64 xmm15,XMMWORD[POLY2] + + + vpclmulqdq xmm7,xmm15,xmm6,0x01 + vpslldq xmm7,xmm7,8 + vpxorq xmm7,xmm6,xmm7 + + + vpclmulqdq xmm8,xmm15,xmm7,0x00 + vpsrldq xmm8,xmm8,4 + vpclmulqdq xmm14,xmm15,xmm7,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm8,xmm1,0x96 + + jmp NEAR $L$_CALC_AAD_done_6 +$L$_AAD_blocks_2_6: + kmovq k1,[r12] + vmovdqu8 ymm11{k1}{z},[r10] + vpshufb ymm11,ymm11,ymm16 + vpxorq zmm11,zmm11,zmm14 + vmovdqu64 ymm15,YMMWORD[320+rcx] + vpclmulqdq ymm7,ymm11,ymm15,0x01 + vpclmulqdq ymm8,ymm11,ymm15,0x10 + vpclmulqdq ymm1,ymm11,ymm15,0x11 + vpclmulqdq ymm6,ymm11,ymm15,0x00 + + vpxorq zmm7,zmm7,zmm8 + vpsrldq zmm12,zmm7,8 + vpslldq zmm13,zmm7,8 + vpxorq zmm1,zmm1,zmm12 + vpxorq zmm6,zmm6,zmm13 + vextracti64x4 ymm12,zmm1,1 + vpxorq ymm1,ymm1,ymm12 + vextracti32x4 xmm12,ymm1,1 + vpxorq xmm1,xmm1,xmm12 + vextracti64x4 ymm13,zmm6,1 + vpxorq ymm6,ymm6,ymm13 + vextracti32x4 xmm13,ymm6,1 + vpxorq xmm6,xmm6,xmm13 + vmovdqa64 xmm15,XMMWORD[POLY2] + + + vpclmulqdq xmm7,xmm15,xmm6,0x01 + vpslldq xmm7,xmm7,8 + vpxorq xmm7,xmm6,xmm7 + + + vpclmulqdq xmm8,xmm15,xmm7,0x00 + vpsrldq xmm8,xmm8,4 + vpclmulqdq xmm14,xmm15,xmm7,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm8,xmm1,0x96 + + jmp NEAR $L$_CALC_AAD_done_6 +$L$_AAD_blocks_1_6: + kmovq k1,[r12] + vmovdqu8 xmm11{k1}{z},[r10] + vpshufb xmm11,xmm11,xmm16 + vpxorq zmm11,zmm11,zmm14 + vmovdqu64 xmm15,XMMWORD[336+rcx] + vpclmulqdq xmm7,xmm11,xmm15,0x01 + vpclmulqdq xmm8,xmm11,xmm15,0x10 + vpclmulqdq xmm1,xmm11,xmm15,0x11 + vpclmulqdq xmm6,xmm11,xmm15,0x00 + + vpxorq zmm7,zmm7,zmm8 + vpsrldq zmm12,zmm7,8 + vpslldq zmm13,zmm7,8 + vpxorq zmm1,zmm1,zmm12 + vpxorq zmm6,zmm6,zmm13 + vextracti64x4 ymm12,zmm1,1 + vpxorq ymm1,ymm1,ymm12 + vextracti32x4 xmm12,ymm1,1 + vpxorq xmm1,xmm1,xmm12 + vextracti64x4 ymm13,zmm6,1 + vpxorq ymm6,ymm6,ymm13 + vextracti32x4 xmm13,ymm6,1 + vpxorq xmm6,xmm6,xmm13 + vmovdqa64 xmm15,XMMWORD[POLY2] + + + vpclmulqdq xmm7,xmm15,xmm6,0x01 + vpslldq xmm7,xmm7,8 + vpxorq xmm7,xmm6,xmm7 + + + vpclmulqdq xmm8,xmm15,xmm7,0x00 + vpsrldq xmm8,xmm8,4 + vpclmulqdq xmm14,xmm15,xmm7,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm8,xmm1,0x96 + +$L$_CALC_AAD_done_6: + vmovdqu64 XMMWORD[64+rcx],xmm14 + cmp r8,256 + jbe NEAR $L$skip_hkeys_cleanup_9 + vpxor xmm0,xmm0,xmm0 + vmovdqa64 ZMMWORD[rsp],zmm0 + vmovdqa64 ZMMWORD[64+rsp],zmm0 + vmovdqa64 ZMMWORD[128+rsp],zmm0 + vmovdqa64 ZMMWORD[192+rsp],zmm0 + vmovdqa64 ZMMWORD[256+rsp],zmm0 + vmovdqa64 ZMMWORD[320+rsp],zmm0 + vmovdqa64 ZMMWORD[384+rsp],zmm0 + vmovdqa64 ZMMWORD[448+rsp],zmm0 + vmovdqa64 ZMMWORD[512+rsp],zmm0 + vmovdqa64 ZMMWORD[576+rsp],zmm0 + vmovdqa64 ZMMWORD[640+rsp],zmm0 + vmovdqa64 ZMMWORD[704+rsp],zmm0 +$L$skip_hkeys_cleanup_9: + vzeroupper + vmovdqu xmm15,XMMWORD[((-16))+rbp] + vmovdqu xmm14,XMMWORD[((-32))+rbp] + vmovdqu xmm13,XMMWORD[((-48))+rbp] + vmovdqu xmm12,XMMWORD[((-64))+rbp] + vmovdqu xmm11,XMMWORD[((-80))+rbp] + vmovdqu xmm10,XMMWORD[((-96))+rbp] + vmovdqu xmm9,XMMWORD[((-112))+rbp] + vmovdqu xmm8,XMMWORD[((-128))+rbp] + vmovdqu xmm7,XMMWORD[((-144))+rbp] + vmovdqu xmm6,XMMWORD[((-160))+rbp] + lea rsp,[8+rbp] + pop rsi + + pop rdi + + pop r15 + + pop r14 + + pop r13 + + pop r12 + + pop rbp + + pop rbx + +$L$exit_update_aad: + DB 0F3h,0C3h ;repret +$L$ghash_seh_end: + + +global ossl_aes_gcm_encrypt_avx512 + +ALIGN 32 +ossl_aes_gcm_encrypt_avx512: + +$L$encrypt_seh_begin: +DB 243,15,30,250 + push rbx + +$L$encrypt_seh_push_rbx: + push rbp + +$L$encrypt_seh_push_rbp: + push r12 + +$L$encrypt_seh_push_r12: + push r13 + +$L$encrypt_seh_push_r13: + push r14 + +$L$encrypt_seh_push_r14: + push r15 + +$L$encrypt_seh_push_r15: + push rdi +$L$encrypt_seh_push_rdi: + push rsi +$L$encrypt_seh_push_rsi: + + sub rsp,168 +$L$encrypt_seh_allocstack_xmm: + + + + + + + + + + + lea rbp,[160+rsp] + +$L$encrypt_seh_setfp: + vmovdqu XMMWORD[rsp],xmm6 +$L$encrypt_seh_save_xmm6: + vmovdqu XMMWORD[16+rsp],xmm7 +$L$encrypt_seh_save_xmm7: + vmovdqu XMMWORD[32+rsp],xmm8 +$L$encrypt_seh_save_xmm8: + vmovdqu XMMWORD[48+rsp],xmm9 +$L$encrypt_seh_save_xmm9: + vmovdqu XMMWORD[64+rsp],xmm10 +$L$encrypt_seh_save_xmm10: + vmovdqu XMMWORD[80+rsp],xmm11 +$L$encrypt_seh_save_xmm11: + vmovdqu XMMWORD[96+rsp],xmm12 +$L$encrypt_seh_save_xmm12: + vmovdqu XMMWORD[112+rsp],xmm13 +$L$encrypt_seh_save_xmm13: + vmovdqu XMMWORD[128+rsp],xmm14 +$L$encrypt_seh_save_xmm14: + vmovdqu XMMWORD[144+rsp],xmm15 +$L$encrypt_seh_save_xmm15: + +$L$encrypt_seh_prolog_end: + sub rsp,1584 + and rsp,(-64) + + + mov eax,DWORD[240+rcx] + cmp eax,9 + je NEAR $L$aes_gcm_encrypt_128_avx512 + cmp eax,11 + je NEAR $L$aes_gcm_encrypt_192_avx512 + cmp eax,13 + je NEAR $L$aes_gcm_encrypt_256_avx512 + xor eax,eax + jmp NEAR $L$exit_gcm_encrypt +ALIGN 32 +$L$aes_gcm_encrypt_128_avx512: + cmp QWORD[112+rbp],0 + je NEAR $L$_enc_dec_done_10 + xor r14,r14 + vmovdqu64 xmm14,XMMWORD[64+rdx] + + mov r11,QWORD[r8] + or r11,r11 + je NEAR $L$_partial_block_done_11 + mov r10d,16 + lea r12,[byte_len_to_mask_table] + cmp QWORD[112+rbp],r10 + cmovc r10,QWORD[112+rbp] + add r12,r10 + add r12,r10 + kmovw k1,[r12] + vmovdqu8 xmm0{k1}{z},[r9] + + vmovdqu64 xmm3,XMMWORD[16+rdx] + vmovdqu64 xmm4,XMMWORD[336+rdx] + + + + lea r12,[SHIFT_MASK] + add r12,r11 + vmovdqu64 xmm5,XMMWORD[r12] + vpshufb xmm3,xmm3,xmm5 + vpxorq xmm3,xmm3,xmm0 + + + mov r13,QWORD[112+rbp] + add r13,r11 + sub r13,16 + jge NEAR $L$_no_extra_mask_11 + sub r12,r13 +$L$_no_extra_mask_11: + + + + vmovdqu64 xmm0,XMMWORD[16+r12] + vpand xmm3,xmm3,xmm0 + vpshufb xmm3,xmm3,XMMWORD[SHUF_MASK] + vpshufb xmm3,xmm3,xmm5 + vpxorq xmm14,xmm14,xmm3 + cmp r13,0 + jl NEAR $L$_partial_incomplete_11 + + vpclmulqdq xmm7,xmm14,xmm4,0x11 + vpclmulqdq xmm10,xmm14,xmm4,0x00 + vpclmulqdq xmm11,xmm14,xmm4,0x01 + vpclmulqdq xmm14,xmm14,xmm4,0x10 + vpxorq xmm14,xmm14,xmm11 + + vpsrldq xmm11,xmm14,8 + vpslldq xmm14,xmm14,8 + vpxorq xmm7,xmm7,xmm11 + vpxorq xmm14,xmm14,xmm10 + + + + vmovdqu64 xmm11,XMMWORD[POLY2] + + vpclmulqdq xmm10,xmm11,xmm14,0x01 + vpslldq xmm10,xmm10,8 + vpxorq xmm14,xmm14,xmm10 + + + + vpclmulqdq xmm10,xmm11,xmm14,0x00 + vpsrldq xmm10,xmm10,4 + vpclmulqdq xmm14,xmm11,xmm14,0x10 + vpslldq xmm14,xmm14,4 + + vpternlogq xmm14,xmm7,xmm10,0x96 + + mov QWORD[r8],0 + + mov r12,r11 + mov r11,16 + sub r11,r12 + jmp NEAR $L$_enc_dec_done_11 + +$L$_partial_incomplete_11: + mov r12,QWORD[112+rbp] + add QWORD[r8],r12 + mov r11,QWORD[112+rbp] + +$L$_enc_dec_done_11: + + + lea r12,[byte_len_to_mask_table] + kmovw k1,[r11*2+r12] + vmovdqu64 XMMWORD[64+rdx],xmm14 + + vpshufb xmm3,xmm3,XMMWORD[SHUF_MASK] + vpshufb xmm3,xmm3,xmm5 + mov r12,QWORD[120+rbp] + vmovdqu8 XMMWORD[r12]{k1},xmm3 +$L$_partial_block_done_11: + vmovdqu64 xmm2,XMMWORD[rdx] + mov r13,QWORD[112+rbp] + sub r13,r11 + je NEAR $L$_enc_dec_done_10 + cmp r13,256 + jbe NEAR $L$_message_below_equal_16_blocks_10 + + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vmovdqa64 zmm27,ZMMWORD[ddq_addbe_4444] + vmovdqa64 zmm28,ZMMWORD[ddq_addbe_1234] + + + + + + + vmovd r15d,xmm2 + and r15d,255 + + vshufi64x2 zmm2,zmm2,zmm2,0 + vpshufb zmm2,zmm2,zmm29 + + + + cmp r15b,240 + jae NEAR $L$_next_16_overflow_12 + vpaddd zmm7,zmm2,zmm28 + vpaddd zmm10,zmm7,zmm27 + vpaddd zmm11,zmm10,zmm27 + vpaddd zmm12,zmm11,zmm27 + jmp NEAR $L$_next_16_ok_12 +$L$_next_16_overflow_12: + vpshufb zmm2,zmm2,zmm29 + vmovdqa64 zmm12,ZMMWORD[ddq_add_4444] + vpaddd zmm7,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm10,zmm7,zmm12 + vpaddd zmm11,zmm10,zmm12 + vpaddd zmm12,zmm11,zmm12 + vpshufb zmm7,zmm7,zmm29 + vpshufb zmm10,zmm10,zmm29 + vpshufb zmm11,zmm11,zmm29 + vpshufb zmm12,zmm12,zmm29 +$L$_next_16_ok_12: + vshufi64x2 zmm2,zmm12,zmm12,255 + add r15b,16 + + vmovdqu8 zmm0,ZMMWORD[r11*1+r9] + vmovdqu8 zmm3,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm4,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm5,ZMMWORD[192+r11*1+r9] + + + vbroadcastf64x2 zmm6,ZMMWORD[rcx] + vpxorq zmm7,zmm7,zmm6 + vpxorq zmm10,zmm10,zmm6 + vpxorq zmm11,zmm11,zmm6 + vpxorq zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[16+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[32+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[48+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[64+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[80+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[96+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[112+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[128+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[144+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[160+rcx] + vaesenclast zmm7,zmm7,zmm6 + vaesenclast zmm10,zmm10,zmm6 + vaesenclast zmm11,zmm11,zmm6 + vaesenclast zmm12,zmm12,zmm6 + + + vpxorq zmm7,zmm7,zmm0 + vpxorq zmm10,zmm10,zmm3 + vpxorq zmm11,zmm11,zmm4 + vpxorq zmm12,zmm12,zmm5 + + + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm7 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm10 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm11 + vmovdqu8 ZMMWORD[192+r11*1+r10],zmm12 + + vpshufb zmm7,zmm7,zmm29 + vpshufb zmm10,zmm10,zmm29 + vpshufb zmm11,zmm11,zmm29 + vpshufb zmm12,zmm12,zmm29 + vmovdqa64 ZMMWORD[768+rsp],zmm7 + vmovdqa64 ZMMWORD[832+rsp],zmm10 + vmovdqa64 ZMMWORD[896+rsp],zmm11 + vmovdqa64 ZMMWORD[960+rsp],zmm12 + test r14,r14 + jnz NEAR $L$_skip_hkeys_precomputation_13 + + vmovdqu64 zmm0,ZMMWORD[288+rdx] + vmovdqu64 ZMMWORD[704+rsp],zmm0 + + vmovdqu64 zmm3,ZMMWORD[224+rdx] + vmovdqu64 ZMMWORD[640+rsp],zmm3 + + + vshufi64x2 zmm3,zmm3,zmm3,0x00 + + vmovdqu64 zmm4,ZMMWORD[160+rdx] + vmovdqu64 ZMMWORD[576+rsp],zmm4 + + vmovdqu64 zmm5,ZMMWORD[96+rdx] + vmovdqu64 ZMMWORD[512+rsp],zmm5 +$L$_skip_hkeys_precomputation_13: + cmp r13,512 + jb NEAR $L$_message_below_32_blocks_10 + + + + cmp r15b,240 + jae NEAR $L$_next_16_overflow_14 + vpaddd zmm7,zmm2,zmm28 + vpaddd zmm10,zmm7,zmm27 + vpaddd zmm11,zmm10,zmm27 + vpaddd zmm12,zmm11,zmm27 + jmp NEAR $L$_next_16_ok_14 +$L$_next_16_overflow_14: + vpshufb zmm2,zmm2,zmm29 + vmovdqa64 zmm12,ZMMWORD[ddq_add_4444] + vpaddd zmm7,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm10,zmm7,zmm12 + vpaddd zmm11,zmm10,zmm12 + vpaddd zmm12,zmm11,zmm12 + vpshufb zmm7,zmm7,zmm29 + vpshufb zmm10,zmm10,zmm29 + vpshufb zmm11,zmm11,zmm29 + vpshufb zmm12,zmm12,zmm29 +$L$_next_16_ok_14: + vshufi64x2 zmm2,zmm12,zmm12,255 + add r15b,16 + + vmovdqu8 zmm0,ZMMWORD[256+r11*1+r9] + vmovdqu8 zmm3,ZMMWORD[320+r11*1+r9] + vmovdqu8 zmm4,ZMMWORD[384+r11*1+r9] + vmovdqu8 zmm5,ZMMWORD[448+r11*1+r9] + + + vbroadcastf64x2 zmm6,ZMMWORD[rcx] + vpxorq zmm7,zmm7,zmm6 + vpxorq zmm10,zmm10,zmm6 + vpxorq zmm11,zmm11,zmm6 + vpxorq zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[16+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[32+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[48+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[64+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[80+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[96+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[112+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[128+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[144+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[160+rcx] + vaesenclast zmm7,zmm7,zmm6 + vaesenclast zmm10,zmm10,zmm6 + vaesenclast zmm11,zmm11,zmm6 + vaesenclast zmm12,zmm12,zmm6 + + + vpxorq zmm7,zmm7,zmm0 + vpxorq zmm10,zmm10,zmm3 + vpxorq zmm11,zmm11,zmm4 + vpxorq zmm12,zmm12,zmm5 + + + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[256+r11*1+r10],zmm7 + vmovdqu8 ZMMWORD[320+r11*1+r10],zmm10 + vmovdqu8 ZMMWORD[384+r11*1+r10],zmm11 + vmovdqu8 ZMMWORD[448+r11*1+r10],zmm12 + + vpshufb zmm7,zmm7,zmm29 + vpshufb zmm10,zmm10,zmm29 + vpshufb zmm11,zmm11,zmm29 + vpshufb zmm12,zmm12,zmm29 + vmovdqa64 ZMMWORD[1024+rsp],zmm7 + vmovdqa64 ZMMWORD[1088+rsp],zmm10 + vmovdqa64 ZMMWORD[1152+rsp],zmm11 + vmovdqa64 ZMMWORD[1216+rsp],zmm12 + test r14,r14 + jnz NEAR $L$_skip_hkeys_precomputation_15 + vmovdqu64 zmm3,ZMMWORD[640+rsp] + + + vshufi64x2 zmm3,zmm3,zmm3,0x00 + + vmovdqu64 zmm4,ZMMWORD[576+rsp] + vmovdqu64 zmm5,ZMMWORD[512+rsp] + + vpclmulqdq zmm6,zmm4,zmm3,0x11 + vpclmulqdq zmm7,zmm4,zmm3,0x00 + vpclmulqdq zmm10,zmm4,zmm3,0x01 + vpclmulqdq zmm4,zmm4,zmm3,0x10 + vpxorq zmm4,zmm4,zmm10 + + vpsrldq zmm10,zmm4,8 + vpslldq zmm4,zmm4,8 + vpxorq zmm6,zmm6,zmm10 + vpxorq zmm4,zmm4,zmm7 + + + + vmovdqu64 zmm10,ZMMWORD[POLY2] + + vpclmulqdq zmm7,zmm10,zmm4,0x01 + vpslldq zmm7,zmm7,8 + vpxorq zmm4,zmm4,zmm7 + + + + vpclmulqdq zmm7,zmm10,zmm4,0x00 + vpsrldq zmm7,zmm7,4 + vpclmulqdq zmm4,zmm10,zmm4,0x10 + vpslldq zmm4,zmm4,4 + + vpternlogq zmm4,zmm6,zmm7,0x96 + + vmovdqu64 ZMMWORD[448+rsp],zmm4 + + vpclmulqdq zmm6,zmm5,zmm3,0x11 + vpclmulqdq zmm7,zmm5,zmm3,0x00 + vpclmulqdq zmm10,zmm5,zmm3,0x01 + vpclmulqdq zmm5,zmm5,zmm3,0x10 + vpxorq zmm5,zmm5,zmm10 + + vpsrldq zmm10,zmm5,8 + vpslldq zmm5,zmm5,8 + vpxorq zmm6,zmm6,zmm10 + vpxorq zmm5,zmm5,zmm7 + + + + vmovdqu64 zmm10,ZMMWORD[POLY2] + + vpclmulqdq zmm7,zmm10,zmm5,0x01 + vpslldq zmm7,zmm7,8 + vpxorq zmm5,zmm5,zmm7 + + + + vpclmulqdq zmm7,zmm10,zmm5,0x00 + vpsrldq zmm7,zmm7,4 + vpclmulqdq zmm5,zmm10,zmm5,0x10 + vpslldq zmm5,zmm5,4 + + vpternlogq zmm5,zmm6,zmm7,0x96 + + vmovdqu64 ZMMWORD[384+rsp],zmm5 + + vpclmulqdq zmm6,zmm4,zmm3,0x11 + vpclmulqdq zmm7,zmm4,zmm3,0x00 + vpclmulqdq zmm10,zmm4,zmm3,0x01 + vpclmulqdq zmm4,zmm4,zmm3,0x10 + vpxorq zmm4,zmm4,zmm10 + + vpsrldq zmm10,zmm4,8 + vpslldq zmm4,zmm4,8 + vpxorq zmm6,zmm6,zmm10 + vpxorq zmm4,zmm4,zmm7 + + + + vmovdqu64 zmm10,ZMMWORD[POLY2] + + vpclmulqdq zmm7,zmm10,zmm4,0x01 + vpslldq zmm7,zmm7,8 + vpxorq zmm4,zmm4,zmm7 + + + + vpclmulqdq zmm7,zmm10,zmm4,0x00 + vpsrldq zmm7,zmm7,4 + vpclmulqdq zmm4,zmm10,zmm4,0x10 + vpslldq zmm4,zmm4,4 + + vpternlogq zmm4,zmm6,zmm7,0x96 + + vmovdqu64 ZMMWORD[320+rsp],zmm4 + + vpclmulqdq zmm6,zmm5,zmm3,0x11 + vpclmulqdq zmm7,zmm5,zmm3,0x00 + vpclmulqdq zmm10,zmm5,zmm3,0x01 + vpclmulqdq zmm5,zmm5,zmm3,0x10 + vpxorq zmm5,zmm5,zmm10 + + vpsrldq zmm10,zmm5,8 + vpslldq zmm5,zmm5,8 + vpxorq zmm6,zmm6,zmm10 + vpxorq zmm5,zmm5,zmm7 + + + + vmovdqu64 zmm10,ZMMWORD[POLY2] + + vpclmulqdq zmm7,zmm10,zmm5,0x01 + vpslldq zmm7,zmm7,8 + vpxorq zmm5,zmm5,zmm7 + + + + vpclmulqdq zmm7,zmm10,zmm5,0x00 + vpsrldq zmm7,zmm7,4 + vpclmulqdq zmm5,zmm10,zmm5,0x10 + vpslldq zmm5,zmm5,4 + + vpternlogq zmm5,zmm6,zmm7,0x96 + + vmovdqu64 ZMMWORD[256+rsp],zmm5 + + vpclmulqdq zmm6,zmm4,zmm3,0x11 + vpclmulqdq zmm7,zmm4,zmm3,0x00 + vpclmulqdq zmm10,zmm4,zmm3,0x01 + vpclmulqdq zmm4,zmm4,zmm3,0x10 + vpxorq zmm4,zmm4,zmm10 + + vpsrldq zmm10,zmm4,8 + vpslldq zmm4,zmm4,8 + vpxorq zmm6,zmm6,zmm10 + vpxorq zmm4,zmm4,zmm7 + + + + vmovdqu64 zmm10,ZMMWORD[POLY2] + + vpclmulqdq zmm7,zmm10,zmm4,0x01 + vpslldq zmm7,zmm7,8 + vpxorq zmm4,zmm4,zmm7 + + + + vpclmulqdq zmm7,zmm10,zmm4,0x00 + vpsrldq zmm7,zmm7,4 + vpclmulqdq zmm4,zmm10,zmm4,0x10 + vpslldq zmm4,zmm4,4 + + vpternlogq zmm4,zmm6,zmm7,0x96 + + vmovdqu64 ZMMWORD[192+rsp],zmm4 + + vpclmulqdq zmm6,zmm5,zmm3,0x11 + vpclmulqdq zmm7,zmm5,zmm3,0x00 + vpclmulqdq zmm10,zmm5,zmm3,0x01 + vpclmulqdq zmm5,zmm5,zmm3,0x10 + vpxorq zmm5,zmm5,zmm10 + + vpsrldq zmm10,zmm5,8 + vpslldq zmm5,zmm5,8 + vpxorq zmm6,zmm6,zmm10 + vpxorq zmm5,zmm5,zmm7 + + + + vmovdqu64 zmm10,ZMMWORD[POLY2] + + vpclmulqdq zmm7,zmm10,zmm5,0x01 + vpslldq zmm7,zmm7,8 + vpxorq zmm5,zmm5,zmm7 + + + + vpclmulqdq zmm7,zmm10,zmm5,0x00 + vpsrldq zmm7,zmm7,4 + vpclmulqdq zmm5,zmm10,zmm5,0x10 + vpslldq zmm5,zmm5,4 + + vpternlogq zmm5,zmm6,zmm7,0x96 + + vmovdqu64 ZMMWORD[128+rsp],zmm5 + + vpclmulqdq zmm6,zmm4,zmm3,0x11 + vpclmulqdq zmm7,zmm4,zmm3,0x00 + vpclmulqdq zmm10,zmm4,zmm3,0x01 + vpclmulqdq zmm4,zmm4,zmm3,0x10 + vpxorq zmm4,zmm4,zmm10 + + vpsrldq zmm10,zmm4,8 + vpslldq zmm4,zmm4,8 + vpxorq zmm6,zmm6,zmm10 + vpxorq zmm4,zmm4,zmm7 + + + + vmovdqu64 zmm10,ZMMWORD[POLY2] + + vpclmulqdq zmm7,zmm10,zmm4,0x01 + vpslldq zmm7,zmm7,8 + vpxorq zmm4,zmm4,zmm7 + + + + vpclmulqdq zmm7,zmm10,zmm4,0x00 + vpsrldq zmm7,zmm7,4 + vpclmulqdq zmm4,zmm10,zmm4,0x10 + vpslldq zmm4,zmm4,4 + + vpternlogq zmm4,zmm6,zmm7,0x96 + + vmovdqu64 ZMMWORD[64+rsp],zmm4 + + vpclmulqdq zmm6,zmm5,zmm3,0x11 + vpclmulqdq zmm7,zmm5,zmm3,0x00 + vpclmulqdq zmm10,zmm5,zmm3,0x01 + vpclmulqdq zmm5,zmm5,zmm3,0x10 + vpxorq zmm5,zmm5,zmm10 + + vpsrldq zmm10,zmm5,8 + vpslldq zmm5,zmm5,8 + vpxorq zmm6,zmm6,zmm10 + vpxorq zmm5,zmm5,zmm7 + + + + vmovdqu64 zmm10,ZMMWORD[POLY2] + + vpclmulqdq zmm7,zmm10,zmm5,0x01 + vpslldq zmm7,zmm7,8 + vpxorq zmm5,zmm5,zmm7 + + + + vpclmulqdq zmm7,zmm10,zmm5,0x00 + vpsrldq zmm7,zmm7,4 + vpclmulqdq zmm5,zmm10,zmm5,0x10 + vpslldq zmm5,zmm5,4 + + vpternlogq zmm5,zmm6,zmm7,0x96 + + vmovdqu64 ZMMWORD[rsp],zmm5 +$L$_skip_hkeys_precomputation_15: + mov r14,1 + add r11,512 + sub r13,512 + + cmp r13,768 + jb NEAR $L$_no_more_big_nblocks_10 +$L$_encrypt_big_nblocks_10: + cmp r15b,240 + jae NEAR $L$_16_blocks_overflow_16 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_16 +$L$_16_blocks_overflow_16: + vpshufb zmm2,zmm2,zmm29 + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_16: + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rsp] + + + + + vshufi64x2 zmm2,zmm5,zmm5,255 + add r15b,16 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + + + + + + + + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + + vpclmulqdq zmm6,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + + vpternlogq zmm6,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + + + + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm21,ZMMWORD[192+r11*1+r9] + + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm26,zmm10,zmm15 + vpxorq zmm24,zmm6,zmm12 + vpxorq zmm25,zmm7,zmm13 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + + + + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + + + + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[192+r11*1+r10],zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 + vmovdqa64 ZMMWORD[1280+rsp],zmm0 + vmovdqa64 ZMMWORD[1344+rsp],zmm3 + vmovdqa64 ZMMWORD[1408+rsp],zmm4 + vmovdqa64 ZMMWORD[1472+rsp],zmm5 + cmp r15b,240 + jae NEAR $L$_16_blocks_overflow_17 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_17 +$L$_16_blocks_overflow_17: + vpshufb zmm2,zmm2,zmm29 + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_17: + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[256+rsp] + + + + + vshufi64x2 zmm2,zmm5,zmm5,255 + add r15b,16 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[320+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + + + + + + + + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + + vpclmulqdq zmm6,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[384+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[448+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + + vpternlogq zmm6,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + + + + vmovdqu8 zmm17,ZMMWORD[256+r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[320+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[384+r11*1+r9] + vmovdqu8 zmm21,ZMMWORD[448+r11*1+r9] + + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vpternlogq zmm24,zmm6,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + + + + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + + + + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[256+r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[320+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[384+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[448+r11*1+r10],zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 + vmovdqa64 ZMMWORD[768+rsp],zmm0 + vmovdqa64 ZMMWORD[832+rsp],zmm3 + vmovdqa64 ZMMWORD[896+rsp],zmm4 + vmovdqa64 ZMMWORD[960+rsp],zmm5 + cmp r15b,240 + jae NEAR $L$_16_blocks_overflow_18 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_18 +$L$_16_blocks_overflow_18: + vpshufb zmm2,zmm2,zmm29 + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_18: + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + + + + + vshufi64x2 zmm2,zmm5,zmm5,255 + add r15b,16 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + + + + + + + + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + + vpclmulqdq zmm6,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + + vpternlogq zmm6,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + + + + vmovdqu8 zmm17,ZMMWORD[512+r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[576+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[640+r11*1+r9] + vmovdqu8 zmm21,ZMMWORD[704+r11*1+r9] + + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + + + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpternlogq zmm6,zmm12,zmm15,0x96 + vpxorq zmm6,zmm6,zmm24 + vpternlogq zmm7,zmm13,zmm10,0x96 + vpxorq zmm7,zmm7,zmm25 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vextracti64x4 ymm12,zmm6,1 + vpxorq ymm6,ymm6,ymm12 + vextracti32x4 xmm12,ymm6,1 + vpxorq xmm6,xmm6,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm6,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + + + + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + + + + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[512+r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[576+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[640+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[704+r11*1+r10],zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 + vmovdqa64 ZMMWORD[1024+rsp],zmm0 + vmovdqa64 ZMMWORD[1088+rsp],zmm3 + vmovdqa64 ZMMWORD[1152+rsp],zmm4 + vmovdqa64 ZMMWORD[1216+rsp],zmm5 + vmovdqa64 zmm14,zmm6 + + add r11,768 + sub r13,768 + cmp r13,768 + jae NEAR $L$_encrypt_big_nblocks_10 + +$L$_no_more_big_nblocks_10: + + cmp r13,512 + jae NEAR $L$_encrypt_32_blocks_10 + + cmp r13,256 + jae NEAR $L$_encrypt_16_blocks_10 +$L$_encrypt_0_blocks_ghash_32_10: + mov r10d,r13d + and r10d,~15 + mov ebx,256 + sub ebx,r10d + vmovdqa64 zmm13,ZMMWORD[768+rsp] + vpxorq zmm13,zmm13,zmm14 + vmovdqu64 zmm12,ZMMWORD[rbx*1+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[832+rsp] + vmovdqu64 zmm12,ZMMWORD[64+rbx*1+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + vpxorq zmm26,zmm4,zmm10 + vpxorq zmm24,zmm0,zmm6 + vpxorq zmm25,zmm3,zmm7 + vpternlogq zmm26,zmm5,zmm11,0x96 + vmovdqa64 zmm13,ZMMWORD[896+rsp] + vmovdqu64 zmm12,ZMMWORD[128+rbx*1+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[960+rsp] + vmovdqu64 zmm12,ZMMWORD[192+rbx*1+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + + vpternlogq zmm26,zmm4,zmm10,0x96 + vpternlogq zmm24,zmm0,zmm6,0x96 + vpternlogq zmm25,zmm3,zmm7,0x96 + vpternlogq zmm26,zmm5,zmm11,0x96 + add ebx,256 + mov r10d,r13d + add r10d,15 + shr r10d,4 + je NEAR $L$_last_num_blocks_is_0_19 + + cmp r10d,8 + je NEAR $L$_last_num_blocks_is_8_19 + jb NEAR $L$_last_num_blocks_is_7_1_19 + + + cmp r10d,12 + je NEAR $L$_last_num_blocks_is_12_19 + jb NEAR $L$_last_num_blocks_is_11_9_19 + + + cmp r10d,15 + je NEAR $L$_last_num_blocks_is_15_19 + ja NEAR $L$_last_num_blocks_is_16_19 + cmp r10d,14 + je NEAR $L$_last_num_blocks_is_14_19 + jmp NEAR $L$_last_num_blocks_is_13_19 + +$L$_last_num_blocks_is_11_9_19: + + cmp r10d,10 + je NEAR $L$_last_num_blocks_is_10_19 + ja NEAR $L$_last_num_blocks_is_11_19 + jmp NEAR $L$_last_num_blocks_is_9_19 + +$L$_last_num_blocks_is_7_1_19: + cmp r10d,4 + je NEAR $L$_last_num_blocks_is_4_19 + jb NEAR $L$_last_num_blocks_is_3_1_19 + + cmp r10d,6 + ja NEAR $L$_last_num_blocks_is_7_19 + je NEAR $L$_last_num_blocks_is_6_19 + jmp NEAR $L$_last_num_blocks_is_5_19 + +$L$_last_num_blocks_is_3_1_19: + + cmp r10d,2 + ja NEAR $L$_last_num_blocks_is_3_19 + je NEAR $L$_last_num_blocks_is_2_19 +$L$_last_num_blocks_is_1_19: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,255 + jae NEAR $L$_16_blocks_overflow_20 + vpaddd xmm0,xmm2,xmm28 + jmp NEAR $L$_16_blocks_ok_20 + +$L$_16_blocks_overflow_20: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb xmm0,xmm0,xmm29 +$L$_16_blocks_ok_20: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm0,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 xmm17{k1}{z},[r11*1+r9] + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc xmm0,xmm0,xmm31 + vaesenclast xmm0,xmm0,xmm30 + vpxorq xmm0,xmm0,xmm17 + vextracti32x4 xmm11,zmm0,0 + mov r10,QWORD[120+rbp] + vmovdqu8 XMMWORD[r11*1+r10]{k1},xmm0 + vmovdqu8 zmm0{k1}{z},zmm0 + vpshufb xmm17,xmm0,xmm29 + vextracti32x4 xmm7,zmm17,0 + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_21 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm17,xmm1,0x01 + vpclmulqdq xmm5,xmm17,xmm1,0x10 + vpclmulqdq xmm0,xmm17,xmm1,0x11 + vpclmulqdq xmm3,xmm17,xmm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_21 +$L$_small_initial_partial_block_21: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + + + vpsrldq zmm0,zmm26,8 + vpslldq zmm3,zmm26,8 + vpxorq zmm24,zmm24,zmm0 + vpxorq zmm25,zmm25,zmm3 + vextracti64x4 ymm0,zmm24,1 + vpxorq ymm24,ymm24,ymm0 + vextracti32x4 xmm0,ymm24,1 + vpxorq xmm24,xmm24,xmm0 + vextracti64x4 ymm3,zmm25,1 + vpxorq ymm25,ymm25,ymm3 + vextracti32x4 xmm3,ymm25,1 + vpxorq xmm25,xmm25,xmm3 + vmovdqa64 xmm0,XMMWORD[POLY2] + + + vpclmulqdq xmm3,xmm0,xmm25,0x01 + vpslldq xmm3,xmm3,8 + vpxorq xmm3,xmm25,xmm3 + + + vpclmulqdq xmm4,xmm0,xmm3,0x00 + vpsrldq xmm4,xmm4,4 + vpclmulqdq xmm14,xmm0,xmm3,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm4,xmm24,0x96 + + + + + + + + + + + + + vpxorq xmm14,xmm14,xmm7 + + jmp NEAR $L$_after_reduction_21 +$L$_small_initial_compute_done_21: +$L$_after_reduction_21: + jmp NEAR $L$_last_blocks_done_19 +$L$_last_num_blocks_is_2_19: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,254 + jae NEAR $L$_16_blocks_overflow_22 + vpaddd ymm0,ymm2,ymm28 + jmp NEAR $L$_16_blocks_ok_22 + +$L$_16_blocks_overflow_22: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb ymm0,ymm0,ymm29 +$L$_16_blocks_ok_22: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm0,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 ymm17{k1}{z},[r11*1+r9] + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc ymm0,ymm0,ymm31 + vaesenclast ymm0,ymm0,ymm30 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm11,zmm0,1 + mov r10,QWORD[120+rbp] + vmovdqu8 YMMWORD[r11*1+r10]{k1},ymm0 + vmovdqu8 zmm0{k1}{z},zmm0 + vpshufb ymm17,ymm0,ymm29 + vextracti32x4 xmm7,zmm17,1 + sub r13,16 * (2 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_23 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm17,ymm1,0x01 + vpclmulqdq ymm5,ymm17,ymm1,0x10 + vpclmulqdq ymm0,ymm17,ymm1,0x11 + vpclmulqdq ymm3,ymm17,ymm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_23 +$L$_small_initial_partial_block_23: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm17,xmm1,0x01 + vpclmulqdq xmm5,xmm17,xmm1,0x10 + vpclmulqdq xmm0,xmm17,xmm1,0x11 + vpclmulqdq xmm3,xmm17,xmm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_23: + + or r13,r13 + je NEAR $L$_after_reduction_23 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_23: + jmp NEAR $L$_last_blocks_done_19 +$L$_last_num_blocks_is_3_19: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,253 + jae NEAR $L$_16_blocks_overflow_24 + vpaddd zmm0,zmm2,zmm28 + jmp NEAR $L$_16_blocks_ok_24 + +$L$_16_blocks_overflow_24: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb zmm0,zmm0,zmm29 +$L$_16_blocks_ok_24: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm0,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17{k1}{z},[r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vpxorq zmm0,zmm0,zmm17 + vextracti32x4 xmm11,zmm0,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10]{k1},zmm0 + vmovdqu8 zmm0{k1}{z},zmm0 + vpshufb zmm17,zmm0,zmm29 + vextracti32x4 xmm7,zmm17,2 + sub r13,16 * (3 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_25 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_25 +$L$_small_initial_partial_block_25: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm17,ymm1,0x01 + vpclmulqdq ymm5,ymm17,ymm1,0x10 + vpclmulqdq ymm0,ymm17,ymm1,0x11 + vpclmulqdq ymm3,ymm17,ymm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_25: + + or r13,r13 + je NEAR $L$_after_reduction_25 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_25: + jmp NEAR $L$_last_blocks_done_19 +$L$_last_num_blocks_is_4_19: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,252 + jae NEAR $L$_16_blocks_overflow_26 + vpaddd zmm0,zmm2,zmm28 + jmp NEAR $L$_16_blocks_ok_26 + +$L$_16_blocks_overflow_26: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb zmm0,zmm0,zmm29 +$L$_16_blocks_ok_26: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm0,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17{k1}{z},[r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vpxorq zmm0,zmm0,zmm17 + vextracti32x4 xmm11,zmm0,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10]{k1},zmm0 + vmovdqu8 zmm0{k1}{z},zmm0 + vpshufb zmm17,zmm0,zmm29 + vextracti32x4 xmm7,zmm17,3 + sub r13,16 * (4 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_27 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_27 +$L$_small_initial_partial_block_27: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_27: + + or r13,r13 + je NEAR $L$_after_reduction_27 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_27: + jmp NEAR $L$_last_blocks_done_19 +$L$_last_num_blocks_is_5_19: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,251 + jae NEAR $L$_16_blocks_overflow_28 + vpaddd zmm0,zmm2,zmm28 + vpaddd xmm3,xmm0,xmm27 + jmp NEAR $L$_16_blocks_ok_28 + +$L$_16_blocks_overflow_28: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb xmm3,xmm3,xmm29 +$L$_16_blocks_ok_28: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm3,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 xmm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast xmm3,xmm3,xmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq xmm3,xmm3,xmm19 + vextracti32x4 xmm11,zmm3,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 XMMWORD[64+r11*1+r10]{k1},xmm3 + vmovdqu8 zmm3{k1}{z},zmm3 + vpshufb zmm17,zmm0,zmm29 + vpshufb xmm19,xmm3,xmm29 + vextracti32x4 xmm7,zmm19,0 + sub r13,16 * (5 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_29 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm19,xmm1,0x01 + vpclmulqdq xmm5,xmm19,xmm1,0x10 + vpclmulqdq xmm0,xmm19,xmm1,0x11 + vpclmulqdq xmm3,xmm19,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_29 +$L$_small_initial_partial_block_29: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_29: + + or r13,r13 + je NEAR $L$_after_reduction_29 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_29: + jmp NEAR $L$_last_blocks_done_19 +$L$_last_num_blocks_is_6_19: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,250 + jae NEAR $L$_16_blocks_overflow_30 + vpaddd zmm0,zmm2,zmm28 + vpaddd ymm3,ymm0,ymm27 + jmp NEAR $L$_16_blocks_ok_30 + +$L$_16_blocks_overflow_30: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb ymm3,ymm3,ymm29 +$L$_16_blocks_ok_30: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm3,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 ymm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast ymm3,ymm3,ymm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm11,zmm3,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 YMMWORD[64+r11*1+r10]{k1},ymm3 + vmovdqu8 zmm3{k1}{z},zmm3 + vpshufb zmm17,zmm0,zmm29 + vpshufb ymm19,ymm3,ymm29 + vextracti32x4 xmm7,zmm19,1 + sub r13,16 * (6 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_31 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm19,ymm1,0x01 + vpclmulqdq ymm5,ymm19,ymm1,0x10 + vpclmulqdq ymm0,ymm19,ymm1,0x11 + vpclmulqdq ymm3,ymm19,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_31 +$L$_small_initial_partial_block_31: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm19,xmm1,0x01 + vpclmulqdq xmm5,xmm19,xmm1,0x10 + vpclmulqdq xmm0,xmm19,xmm1,0x11 + vpclmulqdq xmm3,xmm19,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_31: + + or r13,r13 + je NEAR $L$_after_reduction_31 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_31: + jmp NEAR $L$_last_blocks_done_19 +$L$_last_num_blocks_is_7_19: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,249 + jae NEAR $L$_16_blocks_overflow_32 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + jmp NEAR $L$_16_blocks_ok_32 + +$L$_16_blocks_overflow_32: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 +$L$_16_blocks_ok_32: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm3,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti32x4 xmm11,zmm3,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10]{k1},zmm3 + vmovdqu8 zmm3{k1}{z},zmm3 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vextracti32x4 xmm7,zmm19,2 + sub r13,16 * (7 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_33 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm19,zmm1,0x01 + vpclmulqdq zmm5,zmm19,zmm1,0x10 + vpclmulqdq zmm0,zmm19,zmm1,0x11 + vpclmulqdq zmm3,zmm19,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_33 +$L$_small_initial_partial_block_33: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm19,ymm1,0x01 + vpclmulqdq ymm5,ymm19,ymm1,0x10 + vpclmulqdq ymm0,ymm19,ymm1,0x11 + vpclmulqdq ymm3,ymm19,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_33: + + or r13,r13 + je NEAR $L$_after_reduction_33 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_33: + jmp NEAR $L$_last_blocks_done_19 +$L$_last_num_blocks_is_8_19: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,248 + jae NEAR $L$_16_blocks_overflow_34 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + jmp NEAR $L$_16_blocks_ok_34 + +$L$_16_blocks_overflow_34: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 +$L$_16_blocks_ok_34: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm3,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti32x4 xmm11,zmm3,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10]{k1},zmm3 + vmovdqu8 zmm3{k1}{z},zmm3 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vextracti32x4 xmm7,zmm19,3 + sub r13,16 * (8 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_35 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_35 +$L$_small_initial_partial_block_35: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm19,zmm1,0x01 + vpclmulqdq zmm5,zmm19,zmm1,0x10 + vpclmulqdq zmm0,zmm19,zmm1,0x11 + vpclmulqdq zmm3,zmm19,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_35: + + or r13,r13 + je NEAR $L$_after_reduction_35 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_35: + jmp NEAR $L$_last_blocks_done_19 +$L$_last_num_blocks_is_9_19: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,247 + jae NEAR $L$_16_blocks_overflow_36 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd xmm4,xmm3,xmm27 + jmp NEAR $L$_16_blocks_ok_36 + +$L$_16_blocks_overflow_36: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb xmm4,xmm4,xmm29 +$L$_16_blocks_ok_36: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm4,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 xmm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast xmm4,xmm4,xmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq xmm4,xmm4,xmm20 + vextracti32x4 xmm11,zmm4,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 XMMWORD[128+r11*1+r10]{k1},xmm4 + vmovdqu8 zmm4{k1}{z},zmm4 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb xmm20,xmm4,xmm29 + vextracti32x4 xmm7,zmm20,0 + sub r13,16 * (9 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_37 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm20,xmm1,0x01 + vpclmulqdq xmm5,xmm20,xmm1,0x10 + vpclmulqdq xmm0,xmm20,xmm1,0x11 + vpclmulqdq xmm3,xmm20,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_37 +$L$_small_initial_partial_block_37: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_37: + + or r13,r13 + je NEAR $L$_after_reduction_37 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_37: + jmp NEAR $L$_last_blocks_done_19 +$L$_last_num_blocks_is_10_19: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,246 + jae NEAR $L$_16_blocks_overflow_38 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd ymm4,ymm3,ymm27 + jmp NEAR $L$_16_blocks_ok_38 + +$L$_16_blocks_overflow_38: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb ymm4,ymm4,ymm29 +$L$_16_blocks_ok_38: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm4,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 ymm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast ymm4,ymm4,ymm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq ymm4,ymm4,ymm20 + vextracti32x4 xmm11,zmm4,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 YMMWORD[128+r11*1+r10]{k1},ymm4 + vmovdqu8 zmm4{k1}{z},zmm4 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb ymm20,ymm4,ymm29 + vextracti32x4 xmm7,zmm20,1 + sub r13,16 * (10 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_39 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm20,ymm1,0x01 + vpclmulqdq ymm5,ymm20,ymm1,0x10 + vpclmulqdq ymm0,ymm20,ymm1,0x11 + vpclmulqdq ymm3,ymm20,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_39 +$L$_small_initial_partial_block_39: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm20,xmm1,0x01 + vpclmulqdq xmm5,xmm20,xmm1,0x10 + vpclmulqdq xmm0,xmm20,xmm1,0x11 + vpclmulqdq xmm3,xmm20,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_39: + + or r13,r13 + je NEAR $L$_after_reduction_39 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_39: + jmp NEAR $L$_last_blocks_done_19 +$L$_last_num_blocks_is_11_19: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,245 + jae NEAR $L$_16_blocks_overflow_40 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + jmp NEAR $L$_16_blocks_ok_40 + +$L$_16_blocks_overflow_40: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 +$L$_16_blocks_ok_40: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm4,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vextracti32x4 xmm11,zmm4,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10]{k1},zmm4 + vmovdqu8 zmm4{k1}{z},zmm4 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb zmm20,zmm4,zmm29 + vextracti32x4 xmm7,zmm20,2 + sub r13,16 * (11 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_41 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm20,zmm1,0x01 + vpclmulqdq zmm5,zmm20,zmm1,0x10 + vpclmulqdq zmm0,zmm20,zmm1,0x11 + vpclmulqdq zmm3,zmm20,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_41 +$L$_small_initial_partial_block_41: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm20,ymm1,0x01 + vpclmulqdq ymm5,ymm20,ymm1,0x10 + vpclmulqdq ymm0,ymm20,ymm1,0x11 + vpclmulqdq ymm3,ymm20,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_41: + + or r13,r13 + je NEAR $L$_after_reduction_41 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_41: + jmp NEAR $L$_last_blocks_done_19 +$L$_last_num_blocks_is_12_19: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,244 + jae NEAR $L$_16_blocks_overflow_42 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + jmp NEAR $L$_16_blocks_ok_42 + +$L$_16_blocks_overflow_42: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 +$L$_16_blocks_ok_42: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm4,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vextracti32x4 xmm11,zmm4,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10]{k1},zmm4 + vmovdqu8 zmm4{k1}{z},zmm4 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb zmm20,zmm4,zmm29 + vextracti32x4 xmm7,zmm20,3 + sub r13,16 * (12 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_43 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[160+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_43 +$L$_small_initial_partial_block_43: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm20,zmm1,0x01 + vpclmulqdq zmm5,zmm20,zmm1,0x10 + vpclmulqdq zmm0,zmm20,zmm1,0x11 + vpclmulqdq zmm3,zmm20,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_43: + + or r13,r13 + je NEAR $L$_after_reduction_43 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_43: + jmp NEAR $L$_last_blocks_done_19 +$L$_last_num_blocks_is_13_19: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,243 + jae NEAR $L$_16_blocks_overflow_44 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd xmm5,xmm4,xmm27 + jmp NEAR $L$_16_blocks_ok_44 + +$L$_16_blocks_overflow_44: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb xmm5,xmm5,xmm29 +$L$_16_blocks_ok_44: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm5,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 xmm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast xmm5,xmm5,xmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq xmm5,xmm5,xmm21 + vextracti32x4 xmm11,zmm5,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 XMMWORD[192+r11*1+r10]{k1},xmm5 + vmovdqu8 zmm5{k1}{z},zmm5 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb zmm20,zmm4,zmm29 + vpshufb xmm21,xmm5,xmm29 + vextracti32x4 xmm7,zmm21,0 + sub r13,16 * (13 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_45 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[144+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm21,xmm1,0x01 + vpclmulqdq xmm5,xmm21,xmm1,0x10 + vpclmulqdq xmm0,xmm21,xmm1,0x11 + vpclmulqdq xmm3,xmm21,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_45 +$L$_small_initial_partial_block_45: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[160+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_45: + + or r13,r13 + je NEAR $L$_after_reduction_45 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_45: + jmp NEAR $L$_last_blocks_done_19 +$L$_last_num_blocks_is_14_19: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,242 + jae NEAR $L$_16_blocks_overflow_46 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd ymm5,ymm4,ymm27 + jmp NEAR $L$_16_blocks_ok_46 + +$L$_16_blocks_overflow_46: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb ymm5,ymm5,ymm29 +$L$_16_blocks_ok_46: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm5,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 ymm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast ymm5,ymm5,ymm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq ymm5,ymm5,ymm21 + vextracti32x4 xmm11,zmm5,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 YMMWORD[192+r11*1+r10]{k1},ymm5 + vmovdqu8 zmm5{k1}{z},zmm5 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb zmm20,zmm4,zmm29 + vpshufb ymm21,ymm5,ymm29 + vextracti32x4 xmm7,zmm21,1 + sub r13,16 * (14 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_47 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[128+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm21,ymm1,0x01 + vpclmulqdq ymm5,ymm21,ymm1,0x10 + vpclmulqdq ymm0,ymm21,ymm1,0x11 + vpclmulqdq ymm3,ymm21,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_47 +$L$_small_initial_partial_block_47: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[144+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm21,xmm1,0x01 + vpclmulqdq xmm5,xmm21,xmm1,0x10 + vpclmulqdq xmm0,xmm21,xmm1,0x11 + vpclmulqdq xmm3,xmm21,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_47: + + or r13,r13 + je NEAR $L$_after_reduction_47 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_47: + jmp NEAR $L$_last_blocks_done_19 +$L$_last_num_blocks_is_15_19: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,241 + jae NEAR $L$_16_blocks_overflow_48 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_48 + +$L$_16_blocks_overflow_48: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_48: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm5,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + vextracti32x4 xmm11,zmm5,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[192+r11*1+r10]{k1},zmm5 + vmovdqu8 zmm5{k1}{z},zmm5 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb zmm20,zmm4,zmm29 + vpshufb zmm21,zmm5,zmm29 + vextracti32x4 xmm7,zmm21,2 + sub r13,16 * (15 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_49 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[112+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm21,zmm1,0x01 + vpclmulqdq zmm5,zmm21,zmm1,0x10 + vpclmulqdq zmm0,zmm21,zmm1,0x11 + vpclmulqdq zmm3,zmm21,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_49 +$L$_small_initial_partial_block_49: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[128+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm21,ymm1,0x01 + vpclmulqdq ymm5,ymm21,ymm1,0x10 + vpclmulqdq ymm0,ymm21,ymm1,0x11 + vpclmulqdq ymm3,ymm21,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_49: + + or r13,r13 + je NEAR $L$_after_reduction_49 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_49: + jmp NEAR $L$_last_blocks_done_19 +$L$_last_num_blocks_is_16_19: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,240 + jae NEAR $L$_16_blocks_overflow_50 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_50 + +$L$_16_blocks_overflow_50: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_50: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm5,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + vextracti32x4 xmm11,zmm5,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[192+r11*1+r10]{k1},zmm5 + vmovdqu8 zmm5{k1}{z},zmm5 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb zmm20,zmm4,zmm29 + vpshufb zmm21,zmm5,zmm29 + vextracti32x4 xmm7,zmm21,3 + sub r13,16 * (16 - 1) +$L$_small_initial_partial_block_51: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[112+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm21,zmm1,0x01 + vpclmulqdq zmm5,zmm21,zmm1,0x10 + vpclmulqdq zmm0,zmm21,zmm1,0x11 + vpclmulqdq zmm3,zmm21,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_51: + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_51: + jmp NEAR $L$_last_blocks_done_19 +$L$_last_num_blocks_is_0_19: + vmovdqa64 zmm13,ZMMWORD[1024+rsp] + vmovdqu64 zmm12,ZMMWORD[rbx*1+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[1088+rsp] + vmovdqu64 zmm12,ZMMWORD[64+rbx*1+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + vpternlogq zmm26,zmm4,zmm10,0x96 + vpternlogq zmm24,zmm0,zmm6,0x96 + vpternlogq zmm25,zmm3,zmm7,0x96 + vpternlogq zmm26,zmm5,zmm11,0x96 + vmovdqa64 zmm13,ZMMWORD[1152+rsp] + vmovdqu64 zmm12,ZMMWORD[128+rbx*1+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[1216+rsp] + vmovdqu64 zmm12,ZMMWORD[192+rbx*1+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + + vpternlogq zmm26,zmm4,zmm10,0x96 + vpternlogq zmm24,zmm0,zmm6,0x96 + vpternlogq zmm25,zmm3,zmm7,0x96 + vpternlogq zmm26,zmm5,zmm11,0x96 + + vpsrldq zmm0,zmm26,8 + vpslldq zmm3,zmm26,8 + vpxorq zmm24,zmm24,zmm0 + vpxorq zmm25,zmm25,zmm3 + vextracti64x4 ymm0,zmm24,1 + vpxorq ymm24,ymm24,ymm0 + vextracti32x4 xmm0,ymm24,1 + vpxorq xmm24,xmm24,xmm0 + vextracti64x4 ymm3,zmm25,1 + vpxorq ymm25,ymm25,ymm3 + vextracti32x4 xmm3,ymm25,1 + vpxorq xmm25,xmm25,xmm3 + vmovdqa64 xmm4,XMMWORD[POLY2] + + + vpclmulqdq xmm0,xmm4,xmm25,0x01 + vpslldq xmm0,xmm0,8 + vpxorq xmm0,xmm25,xmm0 + + + vpclmulqdq xmm3,xmm4,xmm0,0x00 + vpsrldq xmm3,xmm3,4 + vpclmulqdq xmm14,xmm4,xmm0,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm3,xmm24,0x96 + +$L$_last_blocks_done_19: + vpshufb xmm2,xmm2,xmm29 + jmp NEAR $L$_ghash_done_10 +$L$_encrypt_32_blocks_10: + cmp r15b,240 + jae NEAR $L$_16_blocks_overflow_52 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_52 +$L$_16_blocks_overflow_52: + vpshufb zmm2,zmm2,zmm29 + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_52: + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rsp] + + + + + vshufi64x2 zmm2,zmm5,zmm5,255 + add r15b,16 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + + + + + + + + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + + vpclmulqdq zmm6,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + + vpternlogq zmm6,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + + + + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm21,ZMMWORD[192+r11*1+r9] + + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm26,zmm10,zmm15 + vpxorq zmm24,zmm6,zmm12 + vpxorq zmm25,zmm7,zmm13 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + + + + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + + + + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[192+r11*1+r10],zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 + vmovdqa64 ZMMWORD[1280+rsp],zmm0 + vmovdqa64 ZMMWORD[1344+rsp],zmm3 + vmovdqa64 ZMMWORD[1408+rsp],zmm4 + vmovdqa64 ZMMWORD[1472+rsp],zmm5 + cmp r15b,240 + jae NEAR $L$_16_blocks_overflow_53 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_53 +$L$_16_blocks_overflow_53: + vpshufb zmm2,zmm2,zmm29 + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_53: + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[256+rsp] + + + + + vshufi64x2 zmm2,zmm5,zmm5,255 + add r15b,16 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[320+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + + + + + + + + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + + vpclmulqdq zmm6,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[384+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[448+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + + vpternlogq zmm6,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + + + + vmovdqu8 zmm17,ZMMWORD[256+r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[320+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[384+r11*1+r9] + vmovdqu8 zmm21,ZMMWORD[448+r11*1+r9] + + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vpternlogq zmm24,zmm6,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + + + + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + + + + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[256+r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[320+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[384+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[448+r11*1+r10],zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 + vmovdqa64 ZMMWORD[768+rsp],zmm0 + vmovdqa64 ZMMWORD[832+rsp],zmm3 + vmovdqa64 ZMMWORD[896+rsp],zmm4 + vmovdqa64 ZMMWORD[960+rsp],zmm5 + vmovdqa64 zmm13,ZMMWORD[1280+rsp] + vmovdqu64 zmm12,ZMMWORD[512+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[1344+rsp] + vmovdqu64 zmm12,ZMMWORD[576+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + vpternlogq zmm26,zmm4,zmm10,0x96 + vpternlogq zmm24,zmm0,zmm6,0x96 + vpternlogq zmm25,zmm3,zmm7,0x96 + vpternlogq zmm26,zmm5,zmm11,0x96 + vmovdqa64 zmm13,ZMMWORD[1408+rsp] + vmovdqu64 zmm12,ZMMWORD[640+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[1472+rsp] + vmovdqu64 zmm12,ZMMWORD[704+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + + vpternlogq zmm26,zmm4,zmm10,0x96 + vpternlogq zmm24,zmm0,zmm6,0x96 + vpternlogq zmm25,zmm3,zmm7,0x96 + vpternlogq zmm26,zmm5,zmm11,0x96 + + vpsrldq zmm0,zmm26,8 + vpslldq zmm3,zmm26,8 + vpxorq zmm24,zmm24,zmm0 + vpxorq zmm25,zmm25,zmm3 + vextracti64x4 ymm0,zmm24,1 + vpxorq ymm24,ymm24,ymm0 + vextracti32x4 xmm0,ymm24,1 + vpxorq xmm24,xmm24,xmm0 + vextracti64x4 ymm3,zmm25,1 + vpxorq ymm25,ymm25,ymm3 + vextracti32x4 xmm3,ymm25,1 + vpxorq xmm25,xmm25,xmm3 + vmovdqa64 xmm4,XMMWORD[POLY2] + + + vpclmulqdq xmm0,xmm4,xmm25,0x01 + vpslldq xmm0,xmm0,8 + vpxorq xmm0,xmm25,xmm0 + + + vpclmulqdq xmm3,xmm4,xmm0,0x00 + vpsrldq xmm3,xmm3,4 + vpclmulqdq xmm14,xmm4,xmm0,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm3,xmm24,0x96 + + sub r13,512 + add r11,512 + mov r10d,r13d + and r10d,~15 + mov ebx,512 + sub ebx,r10d + mov r10d,r13d + add r10d,15 + shr r10d,4 + je NEAR $L$_last_num_blocks_is_0_54 + + cmp r10d,8 + je NEAR $L$_last_num_blocks_is_8_54 + jb NEAR $L$_last_num_blocks_is_7_1_54 + + + cmp r10d,12 + je NEAR $L$_last_num_blocks_is_12_54 + jb NEAR $L$_last_num_blocks_is_11_9_54 + + + cmp r10d,15 + je NEAR $L$_last_num_blocks_is_15_54 + ja NEAR $L$_last_num_blocks_is_16_54 + cmp r10d,14 + je NEAR $L$_last_num_blocks_is_14_54 + jmp NEAR $L$_last_num_blocks_is_13_54 + +$L$_last_num_blocks_is_11_9_54: + + cmp r10d,10 + je NEAR $L$_last_num_blocks_is_10_54 + ja NEAR $L$_last_num_blocks_is_11_54 + jmp NEAR $L$_last_num_blocks_is_9_54 + +$L$_last_num_blocks_is_7_1_54: + cmp r10d,4 + je NEAR $L$_last_num_blocks_is_4_54 + jb NEAR $L$_last_num_blocks_is_3_1_54 + + cmp r10d,6 + ja NEAR $L$_last_num_blocks_is_7_54 + je NEAR $L$_last_num_blocks_is_6_54 + jmp NEAR $L$_last_num_blocks_is_5_54 + +$L$_last_num_blocks_is_3_1_54: + + cmp r10d,2 + ja NEAR $L$_last_num_blocks_is_3_54 + je NEAR $L$_last_num_blocks_is_2_54 +$L$_last_num_blocks_is_1_54: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,255 + jae NEAR $L$_16_blocks_overflow_55 + vpaddd xmm0,xmm2,xmm28 + jmp NEAR $L$_16_blocks_ok_55 + +$L$_16_blocks_overflow_55: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb xmm0,xmm0,xmm29 +$L$_16_blocks_ok_55: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm0,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 xmm17{k1}{z},[r11*1+r9] + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc xmm0,xmm0,xmm31 + vaesenclast xmm0,xmm0,xmm30 + vpxorq xmm0,xmm0,xmm17 + vextracti32x4 xmm11,zmm0,0 + mov r10,QWORD[120+rbp] + vmovdqu8 XMMWORD[r11*1+r10]{k1},xmm0 + vmovdqu8 zmm0{k1}{z},zmm0 + vpshufb xmm17,xmm0,xmm29 + vextracti32x4 xmm7,zmm17,0 + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_56 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm17,xmm1,0x01 + vpclmulqdq xmm5,xmm17,xmm1,0x10 + vpclmulqdq xmm0,xmm17,xmm1,0x11 + vpclmulqdq xmm3,xmm17,xmm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_56 +$L$_small_initial_partial_block_56: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + + + vpsrldq zmm0,zmm26,8 + vpslldq zmm3,zmm26,8 + vpxorq zmm24,zmm24,zmm0 + vpxorq zmm25,zmm25,zmm3 + vextracti64x4 ymm0,zmm24,1 + vpxorq ymm24,ymm24,ymm0 + vextracti32x4 xmm0,ymm24,1 + vpxorq xmm24,xmm24,xmm0 + vextracti64x4 ymm3,zmm25,1 + vpxorq ymm25,ymm25,ymm3 + vextracti32x4 xmm3,ymm25,1 + vpxorq xmm25,xmm25,xmm3 + vmovdqa64 xmm0,XMMWORD[POLY2] + + + vpclmulqdq xmm3,xmm0,xmm25,0x01 + vpslldq xmm3,xmm3,8 + vpxorq xmm3,xmm25,xmm3 + + + vpclmulqdq xmm4,xmm0,xmm3,0x00 + vpsrldq xmm4,xmm4,4 + vpclmulqdq xmm14,xmm0,xmm3,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm4,xmm24,0x96 + + + + + + + + + + + + + vpxorq xmm14,xmm14,xmm7 + + jmp NEAR $L$_after_reduction_56 +$L$_small_initial_compute_done_56: +$L$_after_reduction_56: + jmp NEAR $L$_last_blocks_done_54 +$L$_last_num_blocks_is_2_54: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,254 + jae NEAR $L$_16_blocks_overflow_57 + vpaddd ymm0,ymm2,ymm28 + jmp NEAR $L$_16_blocks_ok_57 + +$L$_16_blocks_overflow_57: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb ymm0,ymm0,ymm29 +$L$_16_blocks_ok_57: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm0,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 ymm17{k1}{z},[r11*1+r9] + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc ymm0,ymm0,ymm31 + vaesenclast ymm0,ymm0,ymm30 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm11,zmm0,1 + mov r10,QWORD[120+rbp] + vmovdqu8 YMMWORD[r11*1+r10]{k1},ymm0 + vmovdqu8 zmm0{k1}{z},zmm0 + vpshufb ymm17,ymm0,ymm29 + vextracti32x4 xmm7,zmm17,1 + sub r13,16 * (2 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_58 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm17,ymm1,0x01 + vpclmulqdq ymm5,ymm17,ymm1,0x10 + vpclmulqdq ymm0,ymm17,ymm1,0x11 + vpclmulqdq ymm3,ymm17,ymm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_58 +$L$_small_initial_partial_block_58: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm17,xmm1,0x01 + vpclmulqdq xmm5,xmm17,xmm1,0x10 + vpclmulqdq xmm0,xmm17,xmm1,0x11 + vpclmulqdq xmm3,xmm17,xmm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_58: + + or r13,r13 + je NEAR $L$_after_reduction_58 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_58: + jmp NEAR $L$_last_blocks_done_54 +$L$_last_num_blocks_is_3_54: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,253 + jae NEAR $L$_16_blocks_overflow_59 + vpaddd zmm0,zmm2,zmm28 + jmp NEAR $L$_16_blocks_ok_59 + +$L$_16_blocks_overflow_59: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb zmm0,zmm0,zmm29 +$L$_16_blocks_ok_59: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm0,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17{k1}{z},[r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vpxorq zmm0,zmm0,zmm17 + vextracti32x4 xmm11,zmm0,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10]{k1},zmm0 + vmovdqu8 zmm0{k1}{z},zmm0 + vpshufb zmm17,zmm0,zmm29 + vextracti32x4 xmm7,zmm17,2 + sub r13,16 * (3 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_60 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_60 +$L$_small_initial_partial_block_60: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm17,ymm1,0x01 + vpclmulqdq ymm5,ymm17,ymm1,0x10 + vpclmulqdq ymm0,ymm17,ymm1,0x11 + vpclmulqdq ymm3,ymm17,ymm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_60: + + or r13,r13 + je NEAR $L$_after_reduction_60 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_60: + jmp NEAR $L$_last_blocks_done_54 +$L$_last_num_blocks_is_4_54: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,252 + jae NEAR $L$_16_blocks_overflow_61 + vpaddd zmm0,zmm2,zmm28 + jmp NEAR $L$_16_blocks_ok_61 + +$L$_16_blocks_overflow_61: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb zmm0,zmm0,zmm29 +$L$_16_blocks_ok_61: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm0,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17{k1}{z},[r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vpxorq zmm0,zmm0,zmm17 + vextracti32x4 xmm11,zmm0,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10]{k1},zmm0 + vmovdqu8 zmm0{k1}{z},zmm0 + vpshufb zmm17,zmm0,zmm29 + vextracti32x4 xmm7,zmm17,3 + sub r13,16 * (4 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_62 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_62 +$L$_small_initial_partial_block_62: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_62: + + or r13,r13 + je NEAR $L$_after_reduction_62 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_62: + jmp NEAR $L$_last_blocks_done_54 +$L$_last_num_blocks_is_5_54: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,251 + jae NEAR $L$_16_blocks_overflow_63 + vpaddd zmm0,zmm2,zmm28 + vpaddd xmm3,xmm0,xmm27 + jmp NEAR $L$_16_blocks_ok_63 + +$L$_16_blocks_overflow_63: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb xmm3,xmm3,xmm29 +$L$_16_blocks_ok_63: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm3,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 xmm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast xmm3,xmm3,xmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq xmm3,xmm3,xmm19 + vextracti32x4 xmm11,zmm3,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 XMMWORD[64+r11*1+r10]{k1},xmm3 + vmovdqu8 zmm3{k1}{z},zmm3 + vpshufb zmm17,zmm0,zmm29 + vpshufb xmm19,xmm3,xmm29 + vextracti32x4 xmm7,zmm19,0 + sub r13,16 * (5 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_64 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm19,xmm1,0x01 + vpclmulqdq xmm5,xmm19,xmm1,0x10 + vpclmulqdq xmm0,xmm19,xmm1,0x11 + vpclmulqdq xmm3,xmm19,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_64 +$L$_small_initial_partial_block_64: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_64: + + or r13,r13 + je NEAR $L$_after_reduction_64 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_64: + jmp NEAR $L$_last_blocks_done_54 +$L$_last_num_blocks_is_6_54: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,250 + jae NEAR $L$_16_blocks_overflow_65 + vpaddd zmm0,zmm2,zmm28 + vpaddd ymm3,ymm0,ymm27 + jmp NEAR $L$_16_blocks_ok_65 + +$L$_16_blocks_overflow_65: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb ymm3,ymm3,ymm29 +$L$_16_blocks_ok_65: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm3,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 ymm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast ymm3,ymm3,ymm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm11,zmm3,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 YMMWORD[64+r11*1+r10]{k1},ymm3 + vmovdqu8 zmm3{k1}{z},zmm3 + vpshufb zmm17,zmm0,zmm29 + vpshufb ymm19,ymm3,ymm29 + vextracti32x4 xmm7,zmm19,1 + sub r13,16 * (6 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_66 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm19,ymm1,0x01 + vpclmulqdq ymm5,ymm19,ymm1,0x10 + vpclmulqdq ymm0,ymm19,ymm1,0x11 + vpclmulqdq ymm3,ymm19,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_66 +$L$_small_initial_partial_block_66: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm19,xmm1,0x01 + vpclmulqdq xmm5,xmm19,xmm1,0x10 + vpclmulqdq xmm0,xmm19,xmm1,0x11 + vpclmulqdq xmm3,xmm19,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_66: + + or r13,r13 + je NEAR $L$_after_reduction_66 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_66: + jmp NEAR $L$_last_blocks_done_54 +$L$_last_num_blocks_is_7_54: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,249 + jae NEAR $L$_16_blocks_overflow_67 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + jmp NEAR $L$_16_blocks_ok_67 + +$L$_16_blocks_overflow_67: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 +$L$_16_blocks_ok_67: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm3,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti32x4 xmm11,zmm3,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10]{k1},zmm3 + vmovdqu8 zmm3{k1}{z},zmm3 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vextracti32x4 xmm7,zmm19,2 + sub r13,16 * (7 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_68 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm19,zmm1,0x01 + vpclmulqdq zmm5,zmm19,zmm1,0x10 + vpclmulqdq zmm0,zmm19,zmm1,0x11 + vpclmulqdq zmm3,zmm19,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_68 +$L$_small_initial_partial_block_68: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm19,ymm1,0x01 + vpclmulqdq ymm5,ymm19,ymm1,0x10 + vpclmulqdq ymm0,ymm19,ymm1,0x11 + vpclmulqdq ymm3,ymm19,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_68: + + or r13,r13 + je NEAR $L$_after_reduction_68 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_68: + jmp NEAR $L$_last_blocks_done_54 +$L$_last_num_blocks_is_8_54: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,248 + jae NEAR $L$_16_blocks_overflow_69 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + jmp NEAR $L$_16_blocks_ok_69 + +$L$_16_blocks_overflow_69: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 +$L$_16_blocks_ok_69: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm3,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti32x4 xmm11,zmm3,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10]{k1},zmm3 + vmovdqu8 zmm3{k1}{z},zmm3 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vextracti32x4 xmm7,zmm19,3 + sub r13,16 * (8 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_70 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_70 +$L$_small_initial_partial_block_70: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm19,zmm1,0x01 + vpclmulqdq zmm5,zmm19,zmm1,0x10 + vpclmulqdq zmm0,zmm19,zmm1,0x11 + vpclmulqdq zmm3,zmm19,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_70: + + or r13,r13 + je NEAR $L$_after_reduction_70 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_70: + jmp NEAR $L$_last_blocks_done_54 +$L$_last_num_blocks_is_9_54: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,247 + jae NEAR $L$_16_blocks_overflow_71 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd xmm4,xmm3,xmm27 + jmp NEAR $L$_16_blocks_ok_71 + +$L$_16_blocks_overflow_71: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb xmm4,xmm4,xmm29 +$L$_16_blocks_ok_71: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm4,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 xmm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast xmm4,xmm4,xmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq xmm4,xmm4,xmm20 + vextracti32x4 xmm11,zmm4,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 XMMWORD[128+r11*1+r10]{k1},xmm4 + vmovdqu8 zmm4{k1}{z},zmm4 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb xmm20,xmm4,xmm29 + vextracti32x4 xmm7,zmm20,0 + sub r13,16 * (9 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_72 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm20,xmm1,0x01 + vpclmulqdq xmm5,xmm20,xmm1,0x10 + vpclmulqdq xmm0,xmm20,xmm1,0x11 + vpclmulqdq xmm3,xmm20,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_72 +$L$_small_initial_partial_block_72: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_72: + + or r13,r13 + je NEAR $L$_after_reduction_72 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_72: + jmp NEAR $L$_last_blocks_done_54 +$L$_last_num_blocks_is_10_54: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,246 + jae NEAR $L$_16_blocks_overflow_73 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd ymm4,ymm3,ymm27 + jmp NEAR $L$_16_blocks_ok_73 + +$L$_16_blocks_overflow_73: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb ymm4,ymm4,ymm29 +$L$_16_blocks_ok_73: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm4,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 ymm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast ymm4,ymm4,ymm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq ymm4,ymm4,ymm20 + vextracti32x4 xmm11,zmm4,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 YMMWORD[128+r11*1+r10]{k1},ymm4 + vmovdqu8 zmm4{k1}{z},zmm4 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb ymm20,ymm4,ymm29 + vextracti32x4 xmm7,zmm20,1 + sub r13,16 * (10 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_74 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm20,ymm1,0x01 + vpclmulqdq ymm5,ymm20,ymm1,0x10 + vpclmulqdq ymm0,ymm20,ymm1,0x11 + vpclmulqdq ymm3,ymm20,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_74 +$L$_small_initial_partial_block_74: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm20,xmm1,0x01 + vpclmulqdq xmm5,xmm20,xmm1,0x10 + vpclmulqdq xmm0,xmm20,xmm1,0x11 + vpclmulqdq xmm3,xmm20,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_74: + + or r13,r13 + je NEAR $L$_after_reduction_74 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_74: + jmp NEAR $L$_last_blocks_done_54 +$L$_last_num_blocks_is_11_54: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,245 + jae NEAR $L$_16_blocks_overflow_75 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + jmp NEAR $L$_16_blocks_ok_75 + +$L$_16_blocks_overflow_75: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 +$L$_16_blocks_ok_75: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm4,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vextracti32x4 xmm11,zmm4,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10]{k1},zmm4 + vmovdqu8 zmm4{k1}{z},zmm4 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb zmm20,zmm4,zmm29 + vextracti32x4 xmm7,zmm20,2 + sub r13,16 * (11 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_76 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm20,zmm1,0x01 + vpclmulqdq zmm5,zmm20,zmm1,0x10 + vpclmulqdq zmm0,zmm20,zmm1,0x11 + vpclmulqdq zmm3,zmm20,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_76 +$L$_small_initial_partial_block_76: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm20,ymm1,0x01 + vpclmulqdq ymm5,ymm20,ymm1,0x10 + vpclmulqdq ymm0,ymm20,ymm1,0x11 + vpclmulqdq ymm3,ymm20,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_76: + + or r13,r13 + je NEAR $L$_after_reduction_76 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_76: + jmp NEAR $L$_last_blocks_done_54 +$L$_last_num_blocks_is_12_54: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,244 + jae NEAR $L$_16_blocks_overflow_77 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + jmp NEAR $L$_16_blocks_ok_77 + +$L$_16_blocks_overflow_77: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 +$L$_16_blocks_ok_77: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm4,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vextracti32x4 xmm11,zmm4,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10]{k1},zmm4 + vmovdqu8 zmm4{k1}{z},zmm4 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb zmm20,zmm4,zmm29 + vextracti32x4 xmm7,zmm20,3 + sub r13,16 * (12 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_78 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[160+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_78 +$L$_small_initial_partial_block_78: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm20,zmm1,0x01 + vpclmulqdq zmm5,zmm20,zmm1,0x10 + vpclmulqdq zmm0,zmm20,zmm1,0x11 + vpclmulqdq zmm3,zmm20,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_78: + + or r13,r13 + je NEAR $L$_after_reduction_78 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_78: + jmp NEAR $L$_last_blocks_done_54 +$L$_last_num_blocks_is_13_54: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,243 + jae NEAR $L$_16_blocks_overflow_79 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd xmm5,xmm4,xmm27 + jmp NEAR $L$_16_blocks_ok_79 + +$L$_16_blocks_overflow_79: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb xmm5,xmm5,xmm29 +$L$_16_blocks_ok_79: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm5,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 xmm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast xmm5,xmm5,xmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq xmm5,xmm5,xmm21 + vextracti32x4 xmm11,zmm5,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 XMMWORD[192+r11*1+r10]{k1},xmm5 + vmovdqu8 zmm5{k1}{z},zmm5 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb zmm20,zmm4,zmm29 + vpshufb xmm21,xmm5,xmm29 + vextracti32x4 xmm7,zmm21,0 + sub r13,16 * (13 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_80 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[144+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm21,xmm1,0x01 + vpclmulqdq xmm5,xmm21,xmm1,0x10 + vpclmulqdq xmm0,xmm21,xmm1,0x11 + vpclmulqdq xmm3,xmm21,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_80 +$L$_small_initial_partial_block_80: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[160+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_80: + + or r13,r13 + je NEAR $L$_after_reduction_80 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_80: + jmp NEAR $L$_last_blocks_done_54 +$L$_last_num_blocks_is_14_54: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,242 + jae NEAR $L$_16_blocks_overflow_81 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd ymm5,ymm4,ymm27 + jmp NEAR $L$_16_blocks_ok_81 + +$L$_16_blocks_overflow_81: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb ymm5,ymm5,ymm29 +$L$_16_blocks_ok_81: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm5,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 ymm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast ymm5,ymm5,ymm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq ymm5,ymm5,ymm21 + vextracti32x4 xmm11,zmm5,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 YMMWORD[192+r11*1+r10]{k1},ymm5 + vmovdqu8 zmm5{k1}{z},zmm5 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb zmm20,zmm4,zmm29 + vpshufb ymm21,ymm5,ymm29 + vextracti32x4 xmm7,zmm21,1 + sub r13,16 * (14 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_82 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[128+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm21,ymm1,0x01 + vpclmulqdq ymm5,ymm21,ymm1,0x10 + vpclmulqdq ymm0,ymm21,ymm1,0x11 + vpclmulqdq ymm3,ymm21,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_82 +$L$_small_initial_partial_block_82: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[144+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm21,xmm1,0x01 + vpclmulqdq xmm5,xmm21,xmm1,0x10 + vpclmulqdq xmm0,xmm21,xmm1,0x11 + vpclmulqdq xmm3,xmm21,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_82: + + or r13,r13 + je NEAR $L$_after_reduction_82 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_82: + jmp NEAR $L$_last_blocks_done_54 +$L$_last_num_blocks_is_15_54: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,241 + jae NEAR $L$_16_blocks_overflow_83 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_83 + +$L$_16_blocks_overflow_83: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_83: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm5,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + vextracti32x4 xmm11,zmm5,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[192+r11*1+r10]{k1},zmm5 + vmovdqu8 zmm5{k1}{z},zmm5 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb zmm20,zmm4,zmm29 + vpshufb zmm21,zmm5,zmm29 + vextracti32x4 xmm7,zmm21,2 + sub r13,16 * (15 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_84 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[112+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm21,zmm1,0x01 + vpclmulqdq zmm5,zmm21,zmm1,0x10 + vpclmulqdq zmm0,zmm21,zmm1,0x11 + vpclmulqdq zmm3,zmm21,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_84 +$L$_small_initial_partial_block_84: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[128+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm21,ymm1,0x01 + vpclmulqdq ymm5,ymm21,ymm1,0x10 + vpclmulqdq ymm0,ymm21,ymm1,0x11 + vpclmulqdq ymm3,ymm21,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_84: + + or r13,r13 + je NEAR $L$_after_reduction_84 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_84: + jmp NEAR $L$_last_blocks_done_54 +$L$_last_num_blocks_is_16_54: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,240 + jae NEAR $L$_16_blocks_overflow_85 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_85 + +$L$_16_blocks_overflow_85: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_85: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm5,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + vextracti32x4 xmm11,zmm5,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[192+r11*1+r10]{k1},zmm5 + vmovdqu8 zmm5{k1}{z},zmm5 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb zmm20,zmm4,zmm29 + vpshufb zmm21,zmm5,zmm29 + vextracti32x4 xmm7,zmm21,3 + sub r13,16 * (16 - 1) +$L$_small_initial_partial_block_86: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[112+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm21,zmm1,0x01 + vpclmulqdq zmm5,zmm21,zmm1,0x10 + vpclmulqdq zmm0,zmm21,zmm1,0x11 + vpclmulqdq zmm3,zmm21,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_86: + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_86: + jmp NEAR $L$_last_blocks_done_54 +$L$_last_num_blocks_is_0_54: + vmovdqa64 zmm13,ZMMWORD[768+rsp] + vpxorq zmm13,zmm13,zmm14 + vmovdqu64 zmm12,ZMMWORD[rbx*1+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[832+rsp] + vmovdqu64 zmm12,ZMMWORD[64+rbx*1+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + vpxorq zmm26,zmm4,zmm10 + vpxorq zmm24,zmm0,zmm6 + vpxorq zmm25,zmm3,zmm7 + vpternlogq zmm26,zmm5,zmm11,0x96 + vmovdqa64 zmm13,ZMMWORD[896+rsp] + vmovdqu64 zmm12,ZMMWORD[128+rbx*1+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[960+rsp] + vmovdqu64 zmm12,ZMMWORD[192+rbx*1+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + + vpternlogq zmm26,zmm4,zmm10,0x96 + vpternlogq zmm24,zmm0,zmm6,0x96 + vpternlogq zmm25,zmm3,zmm7,0x96 + vpternlogq zmm26,zmm5,zmm11,0x96 + + vpsrldq zmm0,zmm26,8 + vpslldq zmm3,zmm26,8 + vpxorq zmm24,zmm24,zmm0 + vpxorq zmm25,zmm25,zmm3 + vextracti64x4 ymm0,zmm24,1 + vpxorq ymm24,ymm24,ymm0 + vextracti32x4 xmm0,ymm24,1 + vpxorq xmm24,xmm24,xmm0 + vextracti64x4 ymm3,zmm25,1 + vpxorq ymm25,ymm25,ymm3 + vextracti32x4 xmm3,ymm25,1 + vpxorq xmm25,xmm25,xmm3 + vmovdqa64 xmm4,XMMWORD[POLY2] + + + vpclmulqdq xmm0,xmm4,xmm25,0x01 + vpslldq xmm0,xmm0,8 + vpxorq xmm0,xmm25,xmm0 + + + vpclmulqdq xmm3,xmm4,xmm0,0x00 + vpsrldq xmm3,xmm3,4 + vpclmulqdq xmm14,xmm4,xmm0,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm3,xmm24,0x96 + +$L$_last_blocks_done_54: + vpshufb xmm2,xmm2,xmm29 + jmp NEAR $L$_ghash_done_10 +$L$_encrypt_16_blocks_10: + cmp r15b,240 + jae NEAR $L$_16_blocks_overflow_87 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_87 +$L$_16_blocks_overflow_87: + vpshufb zmm2,zmm2,zmm29 + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_87: + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rsp] + + + + + vshufi64x2 zmm2,zmm5,zmm5,255 + add r15b,16 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + + + + + + + + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + + vpclmulqdq zmm6,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + + vpternlogq zmm6,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + + + + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm21,ZMMWORD[192+r11*1+r9] + + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm26,zmm10,zmm15 + vpxorq zmm24,zmm6,zmm12 + vpxorq zmm25,zmm7,zmm13 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + + + + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + + + + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[192+r11*1+r10],zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 + vmovdqa64 ZMMWORD[1280+rsp],zmm0 + vmovdqa64 ZMMWORD[1344+rsp],zmm3 + vmovdqa64 ZMMWORD[1408+rsp],zmm4 + vmovdqa64 ZMMWORD[1472+rsp],zmm5 + vmovdqa64 zmm13,ZMMWORD[1024+rsp] + vmovdqu64 zmm12,ZMMWORD[256+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[1088+rsp] + vmovdqu64 zmm12,ZMMWORD[320+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + vpternlogq zmm26,zmm4,zmm10,0x96 + vpternlogq zmm24,zmm0,zmm6,0x96 + vpternlogq zmm25,zmm3,zmm7,0x96 + vpternlogq zmm26,zmm5,zmm11,0x96 + vmovdqa64 zmm13,ZMMWORD[1152+rsp] + vmovdqu64 zmm12,ZMMWORD[384+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[1216+rsp] + vmovdqu64 zmm12,ZMMWORD[448+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + + vpternlogq zmm26,zmm4,zmm10,0x96 + vpternlogq zmm24,zmm0,zmm6,0x96 + vpternlogq zmm25,zmm3,zmm7,0x96 + vpternlogq zmm26,zmm5,zmm11,0x96 + sub r13,256 + add r11,256 + mov r10d,r13d + add r10d,15 + shr r10d,4 + je NEAR $L$_last_num_blocks_is_0_88 + + cmp r10d,8 + je NEAR $L$_last_num_blocks_is_8_88 + jb NEAR $L$_last_num_blocks_is_7_1_88 + + + cmp r10d,12 + je NEAR $L$_last_num_blocks_is_12_88 + jb NEAR $L$_last_num_blocks_is_11_9_88 + + + cmp r10d,15 + je NEAR $L$_last_num_blocks_is_15_88 + ja NEAR $L$_last_num_blocks_is_16_88 + cmp r10d,14 + je NEAR $L$_last_num_blocks_is_14_88 + jmp NEAR $L$_last_num_blocks_is_13_88 + +$L$_last_num_blocks_is_11_9_88: + + cmp r10d,10 + je NEAR $L$_last_num_blocks_is_10_88 + ja NEAR $L$_last_num_blocks_is_11_88 + jmp NEAR $L$_last_num_blocks_is_9_88 + +$L$_last_num_blocks_is_7_1_88: + cmp r10d,4 + je NEAR $L$_last_num_blocks_is_4_88 + jb NEAR $L$_last_num_blocks_is_3_1_88 + + cmp r10d,6 + ja NEAR $L$_last_num_blocks_is_7_88 + je NEAR $L$_last_num_blocks_is_6_88 + jmp NEAR $L$_last_num_blocks_is_5_88 + +$L$_last_num_blocks_is_3_1_88: + + cmp r10d,2 + ja NEAR $L$_last_num_blocks_is_3_88 + je NEAR $L$_last_num_blocks_is_2_88 +$L$_last_num_blocks_is_1_88: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,255 + jae NEAR $L$_16_blocks_overflow_89 + vpaddd xmm0,xmm2,xmm28 + jmp NEAR $L$_16_blocks_ok_89 + +$L$_16_blocks_overflow_89: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb xmm0,xmm0,xmm29 +$L$_16_blocks_ok_89: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm0,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 xmm17{k1}{z},[r11*1+r9] + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc xmm0,xmm0,xmm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast xmm0,xmm0,xmm30 + vpxorq xmm0,xmm0,xmm17 + vextracti32x4 xmm11,zmm0,0 + mov r10,QWORD[120+rbp] + vmovdqu8 XMMWORD[r11*1+r10]{k1},xmm0 + vmovdqu8 zmm0{k1}{z},zmm0 + vpshufb xmm17,xmm0,xmm29 + vextracti32x4 xmm7,zmm17,0 + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_90 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm17,xmm1,0x01 + vpclmulqdq xmm5,xmm17,xmm1,0x10 + vpclmulqdq xmm0,xmm17,xmm1,0x11 + vpclmulqdq xmm3,xmm17,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_90 +$L$_small_initial_partial_block_90: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + + + + + + + + + + + + vpxorq xmm14,xmm14,xmm7 + + jmp NEAR $L$_after_reduction_90 +$L$_small_initial_compute_done_90: +$L$_after_reduction_90: + jmp NEAR $L$_last_blocks_done_88 +$L$_last_num_blocks_is_2_88: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,254 + jae NEAR $L$_16_blocks_overflow_91 + vpaddd ymm0,ymm2,ymm28 + jmp NEAR $L$_16_blocks_ok_91 + +$L$_16_blocks_overflow_91: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb ymm0,ymm0,ymm29 +$L$_16_blocks_ok_91: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm0,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 ymm17{k1}{z},[r11*1+r9] + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc ymm0,ymm0,ymm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast ymm0,ymm0,ymm30 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm11,zmm0,1 + mov r10,QWORD[120+rbp] + vmovdqu8 YMMWORD[r11*1+r10]{k1},ymm0 + vmovdqu8 zmm0{k1}{z},zmm0 + vpshufb ymm17,ymm0,ymm29 + vextracti32x4 xmm7,zmm17,1 + sub r13,16 * (2 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_92 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm17,ymm1,0x01 + vpclmulqdq ymm5,ymm17,ymm1,0x10 + vpclmulqdq ymm0,ymm17,ymm1,0x11 + vpclmulqdq ymm3,ymm17,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_92 +$L$_small_initial_partial_block_92: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm17,xmm1,0x01 + vpclmulqdq xmm5,xmm17,xmm1,0x10 + vpclmulqdq xmm0,xmm17,xmm1,0x11 + vpclmulqdq xmm3,xmm17,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_92: + + or r13,r13 + je NEAR $L$_after_reduction_92 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_92: + jmp NEAR $L$_last_blocks_done_88 +$L$_last_num_blocks_is_3_88: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,253 + jae NEAR $L$_16_blocks_overflow_93 + vpaddd zmm0,zmm2,zmm28 + jmp NEAR $L$_16_blocks_ok_93 + +$L$_16_blocks_overflow_93: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb zmm0,zmm0,zmm29 +$L$_16_blocks_ok_93: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm0,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17{k1}{z},[r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vpxorq zmm0,zmm0,zmm17 + vextracti32x4 xmm11,zmm0,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10]{k1},zmm0 + vmovdqu8 zmm0{k1}{z},zmm0 + vpshufb zmm17,zmm0,zmm29 + vextracti32x4 xmm7,zmm17,2 + sub r13,16 * (3 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_94 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_94 +$L$_small_initial_partial_block_94: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm17,ymm1,0x01 + vpclmulqdq ymm5,ymm17,ymm1,0x10 + vpclmulqdq ymm0,ymm17,ymm1,0x11 + vpclmulqdq ymm3,ymm17,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_94: + + or r13,r13 + je NEAR $L$_after_reduction_94 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_94: + jmp NEAR $L$_last_blocks_done_88 +$L$_last_num_blocks_is_4_88: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,252 + jae NEAR $L$_16_blocks_overflow_95 + vpaddd zmm0,zmm2,zmm28 + jmp NEAR $L$_16_blocks_ok_95 + +$L$_16_blocks_overflow_95: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb zmm0,zmm0,zmm29 +$L$_16_blocks_ok_95: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm0,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17{k1}{z},[r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vpxorq zmm0,zmm0,zmm17 + vextracti32x4 xmm11,zmm0,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10]{k1},zmm0 + vmovdqu8 zmm0{k1}{z},zmm0 + vpshufb zmm17,zmm0,zmm29 + vextracti32x4 xmm7,zmm17,3 + sub r13,16 * (4 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_96 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_96 +$L$_small_initial_partial_block_96: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_96: + + or r13,r13 + je NEAR $L$_after_reduction_96 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_96: + jmp NEAR $L$_last_blocks_done_88 +$L$_last_num_blocks_is_5_88: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,251 + jae NEAR $L$_16_blocks_overflow_97 + vpaddd zmm0,zmm2,zmm28 + vpaddd xmm3,xmm0,xmm27 + jmp NEAR $L$_16_blocks_ok_97 + +$L$_16_blocks_overflow_97: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb xmm3,xmm3,xmm29 +$L$_16_blocks_ok_97: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm3,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 xmm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast xmm3,xmm3,xmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq xmm3,xmm3,xmm19 + vextracti32x4 xmm11,zmm3,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 XMMWORD[64+r11*1+r10]{k1},xmm3 + vmovdqu8 zmm3{k1}{z},zmm3 + vpshufb zmm17,zmm0,zmm29 + vpshufb xmm19,xmm3,xmm29 + vextracti32x4 xmm7,zmm19,0 + sub r13,16 * (5 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_98 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm19,xmm1,0x01 + vpclmulqdq xmm5,xmm19,xmm1,0x10 + vpclmulqdq xmm0,xmm19,xmm1,0x11 + vpclmulqdq xmm3,xmm19,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_98 +$L$_small_initial_partial_block_98: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_98: + + or r13,r13 + je NEAR $L$_after_reduction_98 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_98: + jmp NEAR $L$_last_blocks_done_88 +$L$_last_num_blocks_is_6_88: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,250 + jae NEAR $L$_16_blocks_overflow_99 + vpaddd zmm0,zmm2,zmm28 + vpaddd ymm3,ymm0,ymm27 + jmp NEAR $L$_16_blocks_ok_99 + +$L$_16_blocks_overflow_99: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb ymm3,ymm3,ymm29 +$L$_16_blocks_ok_99: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm3,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 ymm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast ymm3,ymm3,ymm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm11,zmm3,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 YMMWORD[64+r11*1+r10]{k1},ymm3 + vmovdqu8 zmm3{k1}{z},zmm3 + vpshufb zmm17,zmm0,zmm29 + vpshufb ymm19,ymm3,ymm29 + vextracti32x4 xmm7,zmm19,1 + sub r13,16 * (6 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_100 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm19,ymm1,0x01 + vpclmulqdq ymm5,ymm19,ymm1,0x10 + vpclmulqdq ymm0,ymm19,ymm1,0x11 + vpclmulqdq ymm3,ymm19,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_100 +$L$_small_initial_partial_block_100: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm19,xmm1,0x01 + vpclmulqdq xmm5,xmm19,xmm1,0x10 + vpclmulqdq xmm0,xmm19,xmm1,0x11 + vpclmulqdq xmm3,xmm19,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_100: + + or r13,r13 + je NEAR $L$_after_reduction_100 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_100: + jmp NEAR $L$_last_blocks_done_88 +$L$_last_num_blocks_is_7_88: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,249 + jae NEAR $L$_16_blocks_overflow_101 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + jmp NEAR $L$_16_blocks_ok_101 + +$L$_16_blocks_overflow_101: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 +$L$_16_blocks_ok_101: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm3,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti32x4 xmm11,zmm3,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10]{k1},zmm3 + vmovdqu8 zmm3{k1}{z},zmm3 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vextracti32x4 xmm7,zmm19,2 + sub r13,16 * (7 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_102 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm19,zmm1,0x01 + vpclmulqdq zmm5,zmm19,zmm1,0x10 + vpclmulqdq zmm0,zmm19,zmm1,0x11 + vpclmulqdq zmm3,zmm19,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_102 +$L$_small_initial_partial_block_102: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm19,ymm1,0x01 + vpclmulqdq ymm5,ymm19,ymm1,0x10 + vpclmulqdq ymm0,ymm19,ymm1,0x11 + vpclmulqdq ymm3,ymm19,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_102: + + or r13,r13 + je NEAR $L$_after_reduction_102 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_102: + jmp NEAR $L$_last_blocks_done_88 +$L$_last_num_blocks_is_8_88: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,248 + jae NEAR $L$_16_blocks_overflow_103 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + jmp NEAR $L$_16_blocks_ok_103 + +$L$_16_blocks_overflow_103: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 +$L$_16_blocks_ok_103: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm3,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti32x4 xmm11,zmm3,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10]{k1},zmm3 + vmovdqu8 zmm3{k1}{z},zmm3 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vextracti32x4 xmm7,zmm19,3 + sub r13,16 * (8 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_104 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_104 +$L$_small_initial_partial_block_104: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm19,zmm1,0x01 + vpclmulqdq zmm5,zmm19,zmm1,0x10 + vpclmulqdq zmm0,zmm19,zmm1,0x11 + vpclmulqdq zmm3,zmm19,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_104: + + or r13,r13 + je NEAR $L$_after_reduction_104 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_104: + jmp NEAR $L$_last_blocks_done_88 +$L$_last_num_blocks_is_9_88: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,247 + jae NEAR $L$_16_blocks_overflow_105 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd xmm4,xmm3,xmm27 + jmp NEAR $L$_16_blocks_ok_105 + +$L$_16_blocks_overflow_105: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb xmm4,xmm4,xmm29 +$L$_16_blocks_ok_105: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm4,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 xmm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast xmm4,xmm4,xmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq xmm4,xmm4,xmm20 + vextracti32x4 xmm11,zmm4,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 XMMWORD[128+r11*1+r10]{k1},xmm4 + vmovdqu8 zmm4{k1}{z},zmm4 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb xmm20,xmm4,xmm29 + vextracti32x4 xmm7,zmm20,0 + sub r13,16 * (9 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_106 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm20,xmm1,0x01 + vpclmulqdq xmm5,xmm20,xmm1,0x10 + vpclmulqdq xmm0,xmm20,xmm1,0x11 + vpclmulqdq xmm3,xmm20,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_106 +$L$_small_initial_partial_block_106: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_106: + + or r13,r13 + je NEAR $L$_after_reduction_106 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_106: + jmp NEAR $L$_last_blocks_done_88 +$L$_last_num_blocks_is_10_88: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,246 + jae NEAR $L$_16_blocks_overflow_107 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd ymm4,ymm3,ymm27 + jmp NEAR $L$_16_blocks_ok_107 + +$L$_16_blocks_overflow_107: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb ymm4,ymm4,ymm29 +$L$_16_blocks_ok_107: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm4,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 ymm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast ymm4,ymm4,ymm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq ymm4,ymm4,ymm20 + vextracti32x4 xmm11,zmm4,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 YMMWORD[128+r11*1+r10]{k1},ymm4 + vmovdqu8 zmm4{k1}{z},zmm4 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb ymm20,ymm4,ymm29 + vextracti32x4 xmm7,zmm20,1 + sub r13,16 * (10 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_108 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm20,ymm1,0x01 + vpclmulqdq ymm5,ymm20,ymm1,0x10 + vpclmulqdq ymm0,ymm20,ymm1,0x11 + vpclmulqdq ymm3,ymm20,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_108 +$L$_small_initial_partial_block_108: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm20,xmm1,0x01 + vpclmulqdq xmm5,xmm20,xmm1,0x10 + vpclmulqdq xmm0,xmm20,xmm1,0x11 + vpclmulqdq xmm3,xmm20,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_108: + + or r13,r13 + je NEAR $L$_after_reduction_108 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_108: + jmp NEAR $L$_last_blocks_done_88 +$L$_last_num_blocks_is_11_88: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,245 + jae NEAR $L$_16_blocks_overflow_109 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + jmp NEAR $L$_16_blocks_ok_109 + +$L$_16_blocks_overflow_109: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 +$L$_16_blocks_ok_109: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm4,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vextracti32x4 xmm11,zmm4,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10]{k1},zmm4 + vmovdqu8 zmm4{k1}{z},zmm4 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb zmm20,zmm4,zmm29 + vextracti32x4 xmm7,zmm20,2 + sub r13,16 * (11 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_110 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm20,zmm1,0x01 + vpclmulqdq zmm5,zmm20,zmm1,0x10 + vpclmulqdq zmm0,zmm20,zmm1,0x11 + vpclmulqdq zmm3,zmm20,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_110 +$L$_small_initial_partial_block_110: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm20,ymm1,0x01 + vpclmulqdq ymm5,ymm20,ymm1,0x10 + vpclmulqdq ymm0,ymm20,ymm1,0x11 + vpclmulqdq ymm3,ymm20,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_110: + + or r13,r13 + je NEAR $L$_after_reduction_110 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_110: + jmp NEAR $L$_last_blocks_done_88 +$L$_last_num_blocks_is_12_88: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,244 + jae NEAR $L$_16_blocks_overflow_111 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + jmp NEAR $L$_16_blocks_ok_111 + +$L$_16_blocks_overflow_111: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 +$L$_16_blocks_ok_111: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm4,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vextracti32x4 xmm11,zmm4,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10]{k1},zmm4 + vmovdqu8 zmm4{k1}{z},zmm4 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb zmm20,zmm4,zmm29 + vextracti32x4 xmm7,zmm20,3 + sub r13,16 * (12 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_112 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[160+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_112 +$L$_small_initial_partial_block_112: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm20,zmm1,0x01 + vpclmulqdq zmm5,zmm20,zmm1,0x10 + vpclmulqdq zmm0,zmm20,zmm1,0x11 + vpclmulqdq zmm3,zmm20,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_112: + + or r13,r13 + je NEAR $L$_after_reduction_112 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_112: + jmp NEAR $L$_last_blocks_done_88 +$L$_last_num_blocks_is_13_88: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,243 + jae NEAR $L$_16_blocks_overflow_113 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd xmm5,xmm4,xmm27 + jmp NEAR $L$_16_blocks_ok_113 + +$L$_16_blocks_overflow_113: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb xmm5,xmm5,xmm29 +$L$_16_blocks_ok_113: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm5,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 xmm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast xmm5,xmm5,xmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq xmm5,xmm5,xmm21 + vextracti32x4 xmm11,zmm5,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 XMMWORD[192+r11*1+r10]{k1},xmm5 + vmovdqu8 zmm5{k1}{z},zmm5 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb zmm20,zmm4,zmm29 + vpshufb xmm21,xmm5,xmm29 + vextracti32x4 xmm7,zmm21,0 + sub r13,16 * (13 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_114 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[144+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm21,xmm1,0x01 + vpclmulqdq xmm5,xmm21,xmm1,0x10 + vpclmulqdq xmm0,xmm21,xmm1,0x11 + vpclmulqdq xmm3,xmm21,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_114 +$L$_small_initial_partial_block_114: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[160+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_114: + + or r13,r13 + je NEAR $L$_after_reduction_114 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_114: + jmp NEAR $L$_last_blocks_done_88 +$L$_last_num_blocks_is_14_88: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,242 + jae NEAR $L$_16_blocks_overflow_115 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd ymm5,ymm4,ymm27 + jmp NEAR $L$_16_blocks_ok_115 + +$L$_16_blocks_overflow_115: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb ymm5,ymm5,ymm29 +$L$_16_blocks_ok_115: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm5,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 ymm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast ymm5,ymm5,ymm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq ymm5,ymm5,ymm21 + vextracti32x4 xmm11,zmm5,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 YMMWORD[192+r11*1+r10]{k1},ymm5 + vmovdqu8 zmm5{k1}{z},zmm5 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb zmm20,zmm4,zmm29 + vpshufb ymm21,ymm5,ymm29 + vextracti32x4 xmm7,zmm21,1 + sub r13,16 * (14 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_116 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[128+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm21,ymm1,0x01 + vpclmulqdq ymm5,ymm21,ymm1,0x10 + vpclmulqdq ymm0,ymm21,ymm1,0x11 + vpclmulqdq ymm3,ymm21,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_116 +$L$_small_initial_partial_block_116: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[144+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm21,xmm1,0x01 + vpclmulqdq xmm5,xmm21,xmm1,0x10 + vpclmulqdq xmm0,xmm21,xmm1,0x11 + vpclmulqdq xmm3,xmm21,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_116: + + or r13,r13 + je NEAR $L$_after_reduction_116 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_116: + jmp NEAR $L$_last_blocks_done_88 +$L$_last_num_blocks_is_15_88: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,241 + jae NEAR $L$_16_blocks_overflow_117 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_117 + +$L$_16_blocks_overflow_117: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_117: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm5,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + vextracti32x4 xmm11,zmm5,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[192+r11*1+r10]{k1},zmm5 + vmovdqu8 zmm5{k1}{z},zmm5 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb zmm20,zmm4,zmm29 + vpshufb zmm21,zmm5,zmm29 + vextracti32x4 xmm7,zmm21,2 + sub r13,16 * (15 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_118 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[112+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm21,zmm1,0x01 + vpclmulqdq zmm5,zmm21,zmm1,0x10 + vpclmulqdq zmm0,zmm21,zmm1,0x11 + vpclmulqdq zmm3,zmm21,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_118 +$L$_small_initial_partial_block_118: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[128+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm21,ymm1,0x01 + vpclmulqdq ymm5,ymm21,ymm1,0x10 + vpclmulqdq ymm0,ymm21,ymm1,0x11 + vpclmulqdq ymm3,ymm21,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_118: + + or r13,r13 + je NEAR $L$_after_reduction_118 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_118: + jmp NEAR $L$_last_blocks_done_88 +$L$_last_num_blocks_is_16_88: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,240 + jae NEAR $L$_16_blocks_overflow_119 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_119 + +$L$_16_blocks_overflow_119: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_119: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm5,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + vextracti32x4 xmm11,zmm5,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[192+r11*1+r10]{k1},zmm5 + vmovdqu8 zmm5{k1}{z},zmm5 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb zmm20,zmm4,zmm29 + vpshufb zmm21,zmm5,zmm29 + vextracti32x4 xmm7,zmm21,3 + sub r13,16 * (16 - 1) +$L$_small_initial_partial_block_120: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[112+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm21,zmm1,0x01 + vpclmulqdq zmm5,zmm21,zmm1,0x10 + vpclmulqdq zmm0,zmm21,zmm1,0x11 + vpclmulqdq zmm3,zmm21,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_120: + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_120: + jmp NEAR $L$_last_blocks_done_88 +$L$_last_num_blocks_is_0_88: + vmovdqa64 zmm13,ZMMWORD[1280+rsp] + vmovdqu64 zmm12,ZMMWORD[512+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[1344+rsp] + vmovdqu64 zmm12,ZMMWORD[576+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + vpternlogq zmm26,zmm4,zmm10,0x96 + vpternlogq zmm24,zmm0,zmm6,0x96 + vpternlogq zmm25,zmm3,zmm7,0x96 + vpternlogq zmm26,zmm5,zmm11,0x96 + vmovdqa64 zmm13,ZMMWORD[1408+rsp] + vmovdqu64 zmm12,ZMMWORD[640+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[1472+rsp] + vmovdqu64 zmm12,ZMMWORD[704+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + + vpternlogq zmm26,zmm4,zmm10,0x96 + vpternlogq zmm24,zmm0,zmm6,0x96 + vpternlogq zmm25,zmm3,zmm7,0x96 + vpternlogq zmm26,zmm5,zmm11,0x96 + + vpsrldq zmm0,zmm26,8 + vpslldq zmm3,zmm26,8 + vpxorq zmm24,zmm24,zmm0 + vpxorq zmm25,zmm25,zmm3 + vextracti64x4 ymm0,zmm24,1 + vpxorq ymm24,ymm24,ymm0 + vextracti32x4 xmm0,ymm24,1 + vpxorq xmm24,xmm24,xmm0 + vextracti64x4 ymm3,zmm25,1 + vpxorq ymm25,ymm25,ymm3 + vextracti32x4 xmm3,ymm25,1 + vpxorq xmm25,xmm25,xmm3 + vmovdqa64 xmm4,XMMWORD[POLY2] + + + vpclmulqdq xmm0,xmm4,xmm25,0x01 + vpslldq xmm0,xmm0,8 + vpxorq xmm0,xmm25,xmm0 + + + vpclmulqdq xmm3,xmm4,xmm0,0x00 + vpsrldq xmm3,xmm3,4 + vpclmulqdq xmm14,xmm4,xmm0,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm3,xmm24,0x96 + +$L$_last_blocks_done_88: + vpshufb xmm2,xmm2,xmm29 + jmp NEAR $L$_ghash_done_10 + +$L$_message_below_32_blocks_10: + + + sub r13,256 + add r11,256 + mov r10d,r13d + test r14,r14 + jnz NEAR $L$_skip_hkeys_precomputation_121 + vmovdqu64 zmm3,ZMMWORD[640+rsp] + + + vshufi64x2 zmm3,zmm3,zmm3,0x00 + + vmovdqu64 zmm4,ZMMWORD[576+rsp] + vmovdqu64 zmm5,ZMMWORD[512+rsp] + + vpclmulqdq zmm6,zmm4,zmm3,0x11 + vpclmulqdq zmm7,zmm4,zmm3,0x00 + vpclmulqdq zmm10,zmm4,zmm3,0x01 + vpclmulqdq zmm4,zmm4,zmm3,0x10 + vpxorq zmm4,zmm4,zmm10 + + vpsrldq zmm10,zmm4,8 + vpslldq zmm4,zmm4,8 + vpxorq zmm6,zmm6,zmm10 + vpxorq zmm4,zmm4,zmm7 + + + + vmovdqu64 zmm10,ZMMWORD[POLY2] + + vpclmulqdq zmm7,zmm10,zmm4,0x01 + vpslldq zmm7,zmm7,8 + vpxorq zmm4,zmm4,zmm7 + + + + vpclmulqdq zmm7,zmm10,zmm4,0x00 + vpsrldq zmm7,zmm7,4 + vpclmulqdq zmm4,zmm10,zmm4,0x10 + vpslldq zmm4,zmm4,4 + + vpternlogq zmm4,zmm6,zmm7,0x96 + + vmovdqu64 ZMMWORD[448+rsp],zmm4 + + vpclmulqdq zmm6,zmm5,zmm3,0x11 + vpclmulqdq zmm7,zmm5,zmm3,0x00 + vpclmulqdq zmm10,zmm5,zmm3,0x01 + vpclmulqdq zmm5,zmm5,zmm3,0x10 + vpxorq zmm5,zmm5,zmm10 + + vpsrldq zmm10,zmm5,8 + vpslldq zmm5,zmm5,8 + vpxorq zmm6,zmm6,zmm10 + vpxorq zmm5,zmm5,zmm7 + + + + vmovdqu64 zmm10,ZMMWORD[POLY2] + + vpclmulqdq zmm7,zmm10,zmm5,0x01 + vpslldq zmm7,zmm7,8 + vpxorq zmm5,zmm5,zmm7 + + + + vpclmulqdq zmm7,zmm10,zmm5,0x00 + vpsrldq zmm7,zmm7,4 + vpclmulqdq zmm5,zmm10,zmm5,0x10 + vpslldq zmm5,zmm5,4 + + vpternlogq zmm5,zmm6,zmm7,0x96 + + vmovdqu64 ZMMWORD[384+rsp],zmm5 + + vpclmulqdq zmm6,zmm4,zmm3,0x11 + vpclmulqdq zmm7,zmm4,zmm3,0x00 + vpclmulqdq zmm10,zmm4,zmm3,0x01 + vpclmulqdq zmm4,zmm4,zmm3,0x10 + vpxorq zmm4,zmm4,zmm10 + + vpsrldq zmm10,zmm4,8 + vpslldq zmm4,zmm4,8 + vpxorq zmm6,zmm6,zmm10 + vpxorq zmm4,zmm4,zmm7 + + + + vmovdqu64 zmm10,ZMMWORD[POLY2] + + vpclmulqdq zmm7,zmm10,zmm4,0x01 + vpslldq zmm7,zmm7,8 + vpxorq zmm4,zmm4,zmm7 + + + + vpclmulqdq zmm7,zmm10,zmm4,0x00 + vpsrldq zmm7,zmm7,4 + vpclmulqdq zmm4,zmm10,zmm4,0x10 + vpslldq zmm4,zmm4,4 + + vpternlogq zmm4,zmm6,zmm7,0x96 + + vmovdqu64 ZMMWORD[320+rsp],zmm4 + + vpclmulqdq zmm6,zmm5,zmm3,0x11 + vpclmulqdq zmm7,zmm5,zmm3,0x00 + vpclmulqdq zmm10,zmm5,zmm3,0x01 + vpclmulqdq zmm5,zmm5,zmm3,0x10 + vpxorq zmm5,zmm5,zmm10 + + vpsrldq zmm10,zmm5,8 + vpslldq zmm5,zmm5,8 + vpxorq zmm6,zmm6,zmm10 + vpxorq zmm5,zmm5,zmm7 + + + + vmovdqu64 zmm10,ZMMWORD[POLY2] + + vpclmulqdq zmm7,zmm10,zmm5,0x01 + vpslldq zmm7,zmm7,8 + vpxorq zmm5,zmm5,zmm7 + + + + vpclmulqdq zmm7,zmm10,zmm5,0x00 + vpsrldq zmm7,zmm7,4 + vpclmulqdq zmm5,zmm10,zmm5,0x10 + vpslldq zmm5,zmm5,4 + + vpternlogq zmm5,zmm6,zmm7,0x96 + + vmovdqu64 ZMMWORD[256+rsp],zmm5 +$L$_skip_hkeys_precomputation_121: + mov r14,1 + and r10d,~15 + mov ebx,512 + sub ebx,r10d + mov r10d,r13d + add r10d,15 + shr r10d,4 + je NEAR $L$_last_num_blocks_is_0_122 + + cmp r10d,8 + je NEAR $L$_last_num_blocks_is_8_122 + jb NEAR $L$_last_num_blocks_is_7_1_122 + + + cmp r10d,12 + je NEAR $L$_last_num_blocks_is_12_122 + jb NEAR $L$_last_num_blocks_is_11_9_122 + + + cmp r10d,15 + je NEAR $L$_last_num_blocks_is_15_122 + ja NEAR $L$_last_num_blocks_is_16_122 + cmp r10d,14 + je NEAR $L$_last_num_blocks_is_14_122 + jmp NEAR $L$_last_num_blocks_is_13_122 + +$L$_last_num_blocks_is_11_9_122: + + cmp r10d,10 + je NEAR $L$_last_num_blocks_is_10_122 + ja NEAR $L$_last_num_blocks_is_11_122 + jmp NEAR $L$_last_num_blocks_is_9_122 + +$L$_last_num_blocks_is_7_1_122: + cmp r10d,4 + je NEAR $L$_last_num_blocks_is_4_122 + jb NEAR $L$_last_num_blocks_is_3_1_122 + + cmp r10d,6 + ja NEAR $L$_last_num_blocks_is_7_122 + je NEAR $L$_last_num_blocks_is_6_122 + jmp NEAR $L$_last_num_blocks_is_5_122 + +$L$_last_num_blocks_is_3_1_122: + + cmp r10d,2 + ja NEAR $L$_last_num_blocks_is_3_122 + je NEAR $L$_last_num_blocks_is_2_122 +$L$_last_num_blocks_is_1_122: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,255 + jae NEAR $L$_16_blocks_overflow_123 + vpaddd xmm0,xmm2,xmm28 + jmp NEAR $L$_16_blocks_ok_123 + +$L$_16_blocks_overflow_123: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb xmm0,xmm0,xmm29 +$L$_16_blocks_ok_123: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm0,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 xmm17{k1}{z},[r11*1+r9] + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc xmm0,xmm0,xmm31 + vaesenclast xmm0,xmm0,xmm30 + vpxorq xmm0,xmm0,xmm17 + vextracti32x4 xmm11,zmm0,0 + mov r10,QWORD[120+rbp] + vmovdqu8 XMMWORD[r11*1+r10]{k1},xmm0 + vmovdqu8 zmm0{k1}{z},zmm0 + vpshufb xmm17,xmm0,xmm29 + vextracti32x4 xmm7,zmm17,0 + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_124 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm17,xmm1,0x01 + vpclmulqdq xmm5,xmm17,xmm1,0x10 + vpclmulqdq xmm0,xmm17,xmm1,0x11 + vpclmulqdq xmm3,xmm17,xmm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_124 +$L$_small_initial_partial_block_124: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + + + vpsrldq zmm0,zmm26,8 + vpslldq zmm3,zmm26,8 + vpxorq zmm24,zmm24,zmm0 + vpxorq zmm25,zmm25,zmm3 + vextracti64x4 ymm0,zmm24,1 + vpxorq ymm24,ymm24,ymm0 + vextracti32x4 xmm0,ymm24,1 + vpxorq xmm24,xmm24,xmm0 + vextracti64x4 ymm3,zmm25,1 + vpxorq ymm25,ymm25,ymm3 + vextracti32x4 xmm3,ymm25,1 + vpxorq xmm25,xmm25,xmm3 + vmovdqa64 xmm0,XMMWORD[POLY2] + + + vpclmulqdq xmm3,xmm0,xmm25,0x01 + vpslldq xmm3,xmm3,8 + vpxorq xmm3,xmm25,xmm3 + + + vpclmulqdq xmm4,xmm0,xmm3,0x00 + vpsrldq xmm4,xmm4,4 + vpclmulqdq xmm14,xmm0,xmm3,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm4,xmm24,0x96 + + + + + + + + + + + + + vpxorq xmm14,xmm14,xmm7 + + jmp NEAR $L$_after_reduction_124 +$L$_small_initial_compute_done_124: +$L$_after_reduction_124: + jmp NEAR $L$_last_blocks_done_122 +$L$_last_num_blocks_is_2_122: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,254 + jae NEAR $L$_16_blocks_overflow_125 + vpaddd ymm0,ymm2,ymm28 + jmp NEAR $L$_16_blocks_ok_125 + +$L$_16_blocks_overflow_125: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb ymm0,ymm0,ymm29 +$L$_16_blocks_ok_125: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm0,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 ymm17{k1}{z},[r11*1+r9] + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc ymm0,ymm0,ymm31 + vaesenclast ymm0,ymm0,ymm30 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm11,zmm0,1 + mov r10,QWORD[120+rbp] + vmovdqu8 YMMWORD[r11*1+r10]{k1},ymm0 + vmovdqu8 zmm0{k1}{z},zmm0 + vpshufb ymm17,ymm0,ymm29 + vextracti32x4 xmm7,zmm17,1 + sub r13,16 * (2 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_126 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm17,ymm1,0x01 + vpclmulqdq ymm5,ymm17,ymm1,0x10 + vpclmulqdq ymm0,ymm17,ymm1,0x11 + vpclmulqdq ymm3,ymm17,ymm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_126 +$L$_small_initial_partial_block_126: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm17,xmm1,0x01 + vpclmulqdq xmm5,xmm17,xmm1,0x10 + vpclmulqdq xmm0,xmm17,xmm1,0x11 + vpclmulqdq xmm3,xmm17,xmm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_126: + + or r13,r13 + je NEAR $L$_after_reduction_126 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_126: + jmp NEAR $L$_last_blocks_done_122 +$L$_last_num_blocks_is_3_122: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,253 + jae NEAR $L$_16_blocks_overflow_127 + vpaddd zmm0,zmm2,zmm28 + jmp NEAR $L$_16_blocks_ok_127 + +$L$_16_blocks_overflow_127: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb zmm0,zmm0,zmm29 +$L$_16_blocks_ok_127: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm0,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17{k1}{z},[r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vpxorq zmm0,zmm0,zmm17 + vextracti32x4 xmm11,zmm0,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10]{k1},zmm0 + vmovdqu8 zmm0{k1}{z},zmm0 + vpshufb zmm17,zmm0,zmm29 + vextracti32x4 xmm7,zmm17,2 + sub r13,16 * (3 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_128 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_128 +$L$_small_initial_partial_block_128: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm17,ymm1,0x01 + vpclmulqdq ymm5,ymm17,ymm1,0x10 + vpclmulqdq ymm0,ymm17,ymm1,0x11 + vpclmulqdq ymm3,ymm17,ymm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_128: + + or r13,r13 + je NEAR $L$_after_reduction_128 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_128: + jmp NEAR $L$_last_blocks_done_122 +$L$_last_num_blocks_is_4_122: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,252 + jae NEAR $L$_16_blocks_overflow_129 + vpaddd zmm0,zmm2,zmm28 + jmp NEAR $L$_16_blocks_ok_129 + +$L$_16_blocks_overflow_129: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb zmm0,zmm0,zmm29 +$L$_16_blocks_ok_129: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm0,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17{k1}{z},[r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vpxorq zmm0,zmm0,zmm17 + vextracti32x4 xmm11,zmm0,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10]{k1},zmm0 + vmovdqu8 zmm0{k1}{z},zmm0 + vpshufb zmm17,zmm0,zmm29 + vextracti32x4 xmm7,zmm17,3 + sub r13,16 * (4 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_130 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_130 +$L$_small_initial_partial_block_130: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_130: + + or r13,r13 + je NEAR $L$_after_reduction_130 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_130: + jmp NEAR $L$_last_blocks_done_122 +$L$_last_num_blocks_is_5_122: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,251 + jae NEAR $L$_16_blocks_overflow_131 + vpaddd zmm0,zmm2,zmm28 + vpaddd xmm3,xmm0,xmm27 + jmp NEAR $L$_16_blocks_ok_131 + +$L$_16_blocks_overflow_131: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb xmm3,xmm3,xmm29 +$L$_16_blocks_ok_131: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm3,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 xmm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast xmm3,xmm3,xmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq xmm3,xmm3,xmm19 + vextracti32x4 xmm11,zmm3,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 XMMWORD[64+r11*1+r10]{k1},xmm3 + vmovdqu8 zmm3{k1}{z},zmm3 + vpshufb zmm17,zmm0,zmm29 + vpshufb xmm19,xmm3,xmm29 + vextracti32x4 xmm7,zmm19,0 + sub r13,16 * (5 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_132 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm19,xmm1,0x01 + vpclmulqdq xmm5,xmm19,xmm1,0x10 + vpclmulqdq xmm0,xmm19,xmm1,0x11 + vpclmulqdq xmm3,xmm19,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_132 +$L$_small_initial_partial_block_132: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_132: + + or r13,r13 + je NEAR $L$_after_reduction_132 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_132: + jmp NEAR $L$_last_blocks_done_122 +$L$_last_num_blocks_is_6_122: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,250 + jae NEAR $L$_16_blocks_overflow_133 + vpaddd zmm0,zmm2,zmm28 + vpaddd ymm3,ymm0,ymm27 + jmp NEAR $L$_16_blocks_ok_133 + +$L$_16_blocks_overflow_133: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb ymm3,ymm3,ymm29 +$L$_16_blocks_ok_133: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm3,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 ymm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast ymm3,ymm3,ymm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm11,zmm3,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 YMMWORD[64+r11*1+r10]{k1},ymm3 + vmovdqu8 zmm3{k1}{z},zmm3 + vpshufb zmm17,zmm0,zmm29 + vpshufb ymm19,ymm3,ymm29 + vextracti32x4 xmm7,zmm19,1 + sub r13,16 * (6 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_134 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm19,ymm1,0x01 + vpclmulqdq ymm5,ymm19,ymm1,0x10 + vpclmulqdq ymm0,ymm19,ymm1,0x11 + vpclmulqdq ymm3,ymm19,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_134 +$L$_small_initial_partial_block_134: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm19,xmm1,0x01 + vpclmulqdq xmm5,xmm19,xmm1,0x10 + vpclmulqdq xmm0,xmm19,xmm1,0x11 + vpclmulqdq xmm3,xmm19,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_134: + + or r13,r13 + je NEAR $L$_after_reduction_134 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_134: + jmp NEAR $L$_last_blocks_done_122 +$L$_last_num_blocks_is_7_122: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,249 + jae NEAR $L$_16_blocks_overflow_135 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + jmp NEAR $L$_16_blocks_ok_135 + +$L$_16_blocks_overflow_135: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 +$L$_16_blocks_ok_135: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm3,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti32x4 xmm11,zmm3,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10]{k1},zmm3 + vmovdqu8 zmm3{k1}{z},zmm3 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vextracti32x4 xmm7,zmm19,2 + sub r13,16 * (7 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_136 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm19,zmm1,0x01 + vpclmulqdq zmm5,zmm19,zmm1,0x10 + vpclmulqdq zmm0,zmm19,zmm1,0x11 + vpclmulqdq zmm3,zmm19,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_136 +$L$_small_initial_partial_block_136: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm19,ymm1,0x01 + vpclmulqdq ymm5,ymm19,ymm1,0x10 + vpclmulqdq ymm0,ymm19,ymm1,0x11 + vpclmulqdq ymm3,ymm19,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_136: + + or r13,r13 + je NEAR $L$_after_reduction_136 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_136: + jmp NEAR $L$_last_blocks_done_122 +$L$_last_num_blocks_is_8_122: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,248 + jae NEAR $L$_16_blocks_overflow_137 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + jmp NEAR $L$_16_blocks_ok_137 + +$L$_16_blocks_overflow_137: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 +$L$_16_blocks_ok_137: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm3,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti32x4 xmm11,zmm3,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10]{k1},zmm3 + vmovdqu8 zmm3{k1}{z},zmm3 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vextracti32x4 xmm7,zmm19,3 + sub r13,16 * (8 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_138 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_138 +$L$_small_initial_partial_block_138: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm19,zmm1,0x01 + vpclmulqdq zmm5,zmm19,zmm1,0x10 + vpclmulqdq zmm0,zmm19,zmm1,0x11 + vpclmulqdq zmm3,zmm19,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_138: + + or r13,r13 + je NEAR $L$_after_reduction_138 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_138: + jmp NEAR $L$_last_blocks_done_122 +$L$_last_num_blocks_is_9_122: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,247 + jae NEAR $L$_16_blocks_overflow_139 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd xmm4,xmm3,xmm27 + jmp NEAR $L$_16_blocks_ok_139 + +$L$_16_blocks_overflow_139: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb xmm4,xmm4,xmm29 +$L$_16_blocks_ok_139: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm4,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 xmm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast xmm4,xmm4,xmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq xmm4,xmm4,xmm20 + vextracti32x4 xmm11,zmm4,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 XMMWORD[128+r11*1+r10]{k1},xmm4 + vmovdqu8 zmm4{k1}{z},zmm4 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb xmm20,xmm4,xmm29 + vextracti32x4 xmm7,zmm20,0 + sub r13,16 * (9 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_140 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm20,xmm1,0x01 + vpclmulqdq xmm5,xmm20,xmm1,0x10 + vpclmulqdq xmm0,xmm20,xmm1,0x11 + vpclmulqdq xmm3,xmm20,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_140 +$L$_small_initial_partial_block_140: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_140: + + or r13,r13 + je NEAR $L$_after_reduction_140 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_140: + jmp NEAR $L$_last_blocks_done_122 +$L$_last_num_blocks_is_10_122: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,246 + jae NEAR $L$_16_blocks_overflow_141 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd ymm4,ymm3,ymm27 + jmp NEAR $L$_16_blocks_ok_141 + +$L$_16_blocks_overflow_141: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb ymm4,ymm4,ymm29 +$L$_16_blocks_ok_141: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm4,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 ymm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast ymm4,ymm4,ymm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq ymm4,ymm4,ymm20 + vextracti32x4 xmm11,zmm4,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 YMMWORD[128+r11*1+r10]{k1},ymm4 + vmovdqu8 zmm4{k1}{z},zmm4 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb ymm20,ymm4,ymm29 + vextracti32x4 xmm7,zmm20,1 + sub r13,16 * (10 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_142 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm20,ymm1,0x01 + vpclmulqdq ymm5,ymm20,ymm1,0x10 + vpclmulqdq ymm0,ymm20,ymm1,0x11 + vpclmulqdq ymm3,ymm20,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_142 +$L$_small_initial_partial_block_142: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm20,xmm1,0x01 + vpclmulqdq xmm5,xmm20,xmm1,0x10 + vpclmulqdq xmm0,xmm20,xmm1,0x11 + vpclmulqdq xmm3,xmm20,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_142: + + or r13,r13 + je NEAR $L$_after_reduction_142 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_142: + jmp NEAR $L$_last_blocks_done_122 +$L$_last_num_blocks_is_11_122: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,245 + jae NEAR $L$_16_blocks_overflow_143 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + jmp NEAR $L$_16_blocks_ok_143 + +$L$_16_blocks_overflow_143: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 +$L$_16_blocks_ok_143: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm4,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vextracti32x4 xmm11,zmm4,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10]{k1},zmm4 + vmovdqu8 zmm4{k1}{z},zmm4 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb zmm20,zmm4,zmm29 + vextracti32x4 xmm7,zmm20,2 + sub r13,16 * (11 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_144 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm20,zmm1,0x01 + vpclmulqdq zmm5,zmm20,zmm1,0x10 + vpclmulqdq zmm0,zmm20,zmm1,0x11 + vpclmulqdq zmm3,zmm20,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_144 +$L$_small_initial_partial_block_144: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm20,ymm1,0x01 + vpclmulqdq ymm5,ymm20,ymm1,0x10 + vpclmulqdq ymm0,ymm20,ymm1,0x11 + vpclmulqdq ymm3,ymm20,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_144: + + or r13,r13 + je NEAR $L$_after_reduction_144 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_144: + jmp NEAR $L$_last_blocks_done_122 +$L$_last_num_blocks_is_12_122: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,244 + jae NEAR $L$_16_blocks_overflow_145 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + jmp NEAR $L$_16_blocks_ok_145 + +$L$_16_blocks_overflow_145: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 +$L$_16_blocks_ok_145: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm4,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vextracti32x4 xmm11,zmm4,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10]{k1},zmm4 + vmovdqu8 zmm4{k1}{z},zmm4 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb zmm20,zmm4,zmm29 + vextracti32x4 xmm7,zmm20,3 + sub r13,16 * (12 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_146 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[160+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_146 +$L$_small_initial_partial_block_146: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm20,zmm1,0x01 + vpclmulqdq zmm5,zmm20,zmm1,0x10 + vpclmulqdq zmm0,zmm20,zmm1,0x11 + vpclmulqdq zmm3,zmm20,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_146: + + or r13,r13 + je NEAR $L$_after_reduction_146 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_146: + jmp NEAR $L$_last_blocks_done_122 +$L$_last_num_blocks_is_13_122: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,243 + jae NEAR $L$_16_blocks_overflow_147 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd xmm5,xmm4,xmm27 + jmp NEAR $L$_16_blocks_ok_147 + +$L$_16_blocks_overflow_147: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb xmm5,xmm5,xmm29 +$L$_16_blocks_ok_147: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm5,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 xmm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast xmm5,xmm5,xmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq xmm5,xmm5,xmm21 + vextracti32x4 xmm11,zmm5,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 XMMWORD[192+r11*1+r10]{k1},xmm5 + vmovdqu8 zmm5{k1}{z},zmm5 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb zmm20,zmm4,zmm29 + vpshufb xmm21,xmm5,xmm29 + vextracti32x4 xmm7,zmm21,0 + sub r13,16 * (13 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_148 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[144+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm21,xmm1,0x01 + vpclmulqdq xmm5,xmm21,xmm1,0x10 + vpclmulqdq xmm0,xmm21,xmm1,0x11 + vpclmulqdq xmm3,xmm21,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_148 +$L$_small_initial_partial_block_148: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[160+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_148: + + or r13,r13 + je NEAR $L$_after_reduction_148 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_148: + jmp NEAR $L$_last_blocks_done_122 +$L$_last_num_blocks_is_14_122: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,242 + jae NEAR $L$_16_blocks_overflow_149 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd ymm5,ymm4,ymm27 + jmp NEAR $L$_16_blocks_ok_149 + +$L$_16_blocks_overflow_149: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb ymm5,ymm5,ymm29 +$L$_16_blocks_ok_149: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm5,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 ymm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast ymm5,ymm5,ymm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq ymm5,ymm5,ymm21 + vextracti32x4 xmm11,zmm5,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 YMMWORD[192+r11*1+r10]{k1},ymm5 + vmovdqu8 zmm5{k1}{z},zmm5 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb zmm20,zmm4,zmm29 + vpshufb ymm21,ymm5,ymm29 + vextracti32x4 xmm7,zmm21,1 + sub r13,16 * (14 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_150 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[128+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm21,ymm1,0x01 + vpclmulqdq ymm5,ymm21,ymm1,0x10 + vpclmulqdq ymm0,ymm21,ymm1,0x11 + vpclmulqdq ymm3,ymm21,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_150 +$L$_small_initial_partial_block_150: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[144+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm21,xmm1,0x01 + vpclmulqdq xmm5,xmm21,xmm1,0x10 + vpclmulqdq xmm0,xmm21,xmm1,0x11 + vpclmulqdq xmm3,xmm21,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_150: + + or r13,r13 + je NEAR $L$_after_reduction_150 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_150: + jmp NEAR $L$_last_blocks_done_122 +$L$_last_num_blocks_is_15_122: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,241 + jae NEAR $L$_16_blocks_overflow_151 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_151 + +$L$_16_blocks_overflow_151: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_151: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm5,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + vextracti32x4 xmm11,zmm5,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[192+r11*1+r10]{k1},zmm5 + vmovdqu8 zmm5{k1}{z},zmm5 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb zmm20,zmm4,zmm29 + vpshufb zmm21,zmm5,zmm29 + vextracti32x4 xmm7,zmm21,2 + sub r13,16 * (15 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_152 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[112+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm21,zmm1,0x01 + vpclmulqdq zmm5,zmm21,zmm1,0x10 + vpclmulqdq zmm0,zmm21,zmm1,0x11 + vpclmulqdq zmm3,zmm21,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_152 +$L$_small_initial_partial_block_152: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[128+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm21,ymm1,0x01 + vpclmulqdq ymm5,ymm21,ymm1,0x10 + vpclmulqdq ymm0,ymm21,ymm1,0x11 + vpclmulqdq ymm3,ymm21,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_152: + + or r13,r13 + je NEAR $L$_after_reduction_152 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_152: + jmp NEAR $L$_last_blocks_done_122 +$L$_last_num_blocks_is_16_122: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,240 + jae NEAR $L$_16_blocks_overflow_153 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_153 + +$L$_16_blocks_overflow_153: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_153: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm5,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + vextracti32x4 xmm11,zmm5,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[192+r11*1+r10]{k1},zmm5 + vmovdqu8 zmm5{k1}{z},zmm5 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb zmm20,zmm4,zmm29 + vpshufb zmm21,zmm5,zmm29 + vextracti32x4 xmm7,zmm21,3 + sub r13,16 * (16 - 1) +$L$_small_initial_partial_block_154: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[112+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm21,zmm1,0x01 + vpclmulqdq zmm5,zmm21,zmm1,0x10 + vpclmulqdq zmm0,zmm21,zmm1,0x11 + vpclmulqdq zmm3,zmm21,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_154: + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_154: + jmp NEAR $L$_last_blocks_done_122 +$L$_last_num_blocks_is_0_122: + vmovdqa64 zmm13,ZMMWORD[768+rsp] + vpxorq zmm13,zmm13,zmm14 + vmovdqu64 zmm12,ZMMWORD[rbx*1+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[832+rsp] + vmovdqu64 zmm12,ZMMWORD[64+rbx*1+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + vpxorq zmm26,zmm4,zmm10 + vpxorq zmm24,zmm0,zmm6 + vpxorq zmm25,zmm3,zmm7 + vpternlogq zmm26,zmm5,zmm11,0x96 + vmovdqa64 zmm13,ZMMWORD[896+rsp] + vmovdqu64 zmm12,ZMMWORD[128+rbx*1+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[960+rsp] + vmovdqu64 zmm12,ZMMWORD[192+rbx*1+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + + vpternlogq zmm26,zmm4,zmm10,0x96 + vpternlogq zmm24,zmm0,zmm6,0x96 + vpternlogq zmm25,zmm3,zmm7,0x96 + vpternlogq zmm26,zmm5,zmm11,0x96 + + vpsrldq zmm0,zmm26,8 + vpslldq zmm3,zmm26,8 + vpxorq zmm24,zmm24,zmm0 + vpxorq zmm25,zmm25,zmm3 + vextracti64x4 ymm0,zmm24,1 + vpxorq ymm24,ymm24,ymm0 + vextracti32x4 xmm0,ymm24,1 + vpxorq xmm24,xmm24,xmm0 + vextracti64x4 ymm3,zmm25,1 + vpxorq ymm25,ymm25,ymm3 + vextracti32x4 xmm3,ymm25,1 + vpxorq xmm25,xmm25,xmm3 + vmovdqa64 xmm4,XMMWORD[POLY2] + + + vpclmulqdq xmm0,xmm4,xmm25,0x01 + vpslldq xmm0,xmm0,8 + vpxorq xmm0,xmm25,xmm0 + + + vpclmulqdq xmm3,xmm4,xmm0,0x00 + vpsrldq xmm3,xmm3,4 + vpclmulqdq xmm14,xmm4,xmm0,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm3,xmm24,0x96 + +$L$_last_blocks_done_122: + vpshufb xmm2,xmm2,xmm29 + jmp NEAR $L$_ghash_done_10 + +$L$_message_below_equal_16_blocks_10: + + + mov r12d,r13d + add r12d,15 + shr r12d,4 + cmp r12,8 + je NEAR $L$_small_initial_num_blocks_is_8_155 + jl NEAR $L$_small_initial_num_blocks_is_7_1_155 + + + cmp r12,12 + je NEAR $L$_small_initial_num_blocks_is_12_155 + jl NEAR $L$_small_initial_num_blocks_is_11_9_155 + + + cmp r12,16 + je NEAR $L$_small_initial_num_blocks_is_16_155 + cmp r12,15 + je NEAR $L$_small_initial_num_blocks_is_15_155 + cmp r12,14 + je NEAR $L$_small_initial_num_blocks_is_14_155 + jmp NEAR $L$_small_initial_num_blocks_is_13_155 + +$L$_small_initial_num_blocks_is_11_9_155: + + cmp r12,11 + je NEAR $L$_small_initial_num_blocks_is_11_155 + cmp r12,10 + je NEAR $L$_small_initial_num_blocks_is_10_155 + jmp NEAR $L$_small_initial_num_blocks_is_9_155 + +$L$_small_initial_num_blocks_is_7_1_155: + cmp r12,4 + je NEAR $L$_small_initial_num_blocks_is_4_155 + jl NEAR $L$_small_initial_num_blocks_is_3_1_155 + + cmp r12,7 + je NEAR $L$_small_initial_num_blocks_is_7_155 + cmp r12,6 + je NEAR $L$_small_initial_num_blocks_is_6_155 + jmp NEAR $L$_small_initial_num_blocks_is_5_155 + +$L$_small_initial_num_blocks_is_3_1_155: + + cmp r12,3 + je NEAR $L$_small_initial_num_blocks_is_3_155 + cmp r12,2 + je NEAR $L$_small_initial_num_blocks_is_2_155 + + + + + +$L$_small_initial_num_blocks_is_1_155: + vmovdqa64 xmm29,XMMWORD[SHUF_MASK] + vpaddd xmm0,xmm2,XMMWORD[ONE] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm0,0 + vpshufb xmm0,xmm0,xmm29 + vmovdqu8 xmm6{k1}{z},[r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq xmm0,xmm0,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc xmm0,xmm0,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc xmm0,xmm0,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc xmm0,xmm0,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc xmm0,xmm0,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc xmm0,xmm0,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc xmm0,xmm0,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc xmm0,xmm0,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc xmm0,xmm0,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc xmm0,xmm0,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenclast xmm0,xmm0,xmm15 + vpxorq xmm0,xmm0,xmm6 + vextracti32x4 xmm12,zmm0,0 + mov r10,QWORD[120+rbp] + vmovdqu8 XMMWORD[r11*1+r10]{k1},xmm0 + vmovdqu8 zmm0{k1}{z},zmm0 + vpshufb xmm6,xmm0,xmm29 + vextracti32x4 xmm13,zmm6,0 + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_156 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 xmm20,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm6,xmm20,0x01 + vpclmulqdq xmm5,xmm6,xmm20,0x10 + vpclmulqdq xmm0,xmm6,xmm20,0x11 + vpclmulqdq xmm3,xmm6,xmm20,0x00 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_156 +$L$_small_initial_partial_block_156: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + + + + + + + + + + + + vpxorq xmm14,xmm14,xmm13 + + jmp NEAR $L$_after_reduction_156 +$L$_small_initial_compute_done_156: +$L$_after_reduction_156: + jmp NEAR $L$_small_initial_blocks_encrypted_155 +$L$_small_initial_num_blocks_is_2_155: + vmovdqa64 ymm29,YMMWORD[SHUF_MASK] + vshufi64x2 ymm0,ymm2,ymm2,0 + vpaddd ymm0,ymm0,YMMWORD[ddq_add_1234] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm0,1 + vpshufb ymm0,ymm0,ymm29 + vmovdqu8 ymm6{k1}{z},[r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq ymm0,ymm0,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc ymm0,ymm0,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc ymm0,ymm0,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc ymm0,ymm0,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc ymm0,ymm0,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc ymm0,ymm0,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc ymm0,ymm0,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc ymm0,ymm0,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc ymm0,ymm0,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc ymm0,ymm0,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenclast ymm0,ymm0,ymm15 + vpxorq ymm0,ymm0,ymm6 + vextracti32x4 xmm12,zmm0,1 + mov r10,QWORD[120+rbp] + vmovdqu8 YMMWORD[r11*1+r10]{k1},ymm0 + vmovdqu8 zmm0{k1}{z},zmm0 + vpshufb ymm6,ymm0,ymm29 + vextracti32x4 xmm13,zmm6,1 + sub r13,16 * (2 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_157 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 ymm20,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm6,ymm20,0x01 + vpclmulqdq ymm5,ymm6,ymm20,0x10 + vpclmulqdq ymm0,ymm6,ymm20,0x11 + vpclmulqdq ymm3,ymm6,ymm20,0x00 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_157 +$L$_small_initial_partial_block_157: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 xmm20,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm6,xmm20,0x01 + vpclmulqdq xmm5,xmm6,xmm20,0x10 + vpclmulqdq xmm0,xmm6,xmm20,0x11 + vpclmulqdq xmm3,xmm6,xmm20,0x00 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_157: + + or r13,r13 + je NEAR $L$_after_reduction_157 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_157: + jmp NEAR $L$_small_initial_blocks_encrypted_155 +$L$_small_initial_num_blocks_is_3_155: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm0,2 + vpshufb zmm0,zmm0,zmm29 + vmovdqu8 zmm6{k1}{z},[r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenclast zmm0,zmm0,zmm15 + vpxorq zmm0,zmm0,zmm6 + vextracti32x4 xmm12,zmm0,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10]{k1},zmm0 + vmovdqu8 zmm0{k1}{z},zmm0 + vpshufb zmm6,zmm0,zmm29 + vextracti32x4 xmm13,zmm6,2 + sub r13,16 * (3 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_158 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 ymm20,YMMWORD[304+rdx] + vinserti64x2 zmm20,zmm20,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_158 +$L$_small_initial_partial_block_158: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 ymm20,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm6,ymm20,0x01 + vpclmulqdq ymm5,ymm6,ymm20,0x10 + vpclmulqdq ymm0,ymm6,ymm20,0x11 + vpclmulqdq ymm3,ymm6,ymm20,0x00 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_158: + + or r13,r13 + je NEAR $L$_after_reduction_158 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_158: + jmp NEAR $L$_small_initial_blocks_encrypted_155 +$L$_small_initial_num_blocks_is_4_155: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm0,3 + vpshufb zmm0,zmm0,zmm29 + vmovdqu8 zmm6{k1}{z},[r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenclast zmm0,zmm0,zmm15 + vpxorq zmm0,zmm0,zmm6 + vextracti32x4 xmm12,zmm0,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10]{k1},zmm0 + vmovdqu8 zmm0{k1}{z},zmm0 + vpshufb zmm6,zmm0,zmm29 + vextracti32x4 xmm13,zmm6,3 + sub r13,16 * (4 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_159 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[288+rdx] + vpclmulqdq zmm15,zmm6,zmm20,0x11 + vpclmulqdq zmm16,zmm6,zmm20,0x00 + vpclmulqdq zmm17,zmm6,zmm20,0x01 + vpclmulqdq zmm19,zmm6,zmm20,0x10 + + vpxorq zmm17,zmm17,zmm19 + vpsrldq zmm4,zmm17,8 + vpslldq zmm5,zmm17,8 + vpxorq zmm0,zmm15,zmm4 + vpxorq zmm3,zmm16,zmm5 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_159 +$L$_small_initial_partial_block_159: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 ymm20,YMMWORD[304+rdx] + vinserti64x2 zmm20,zmm20,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_159: + + or r13,r13 + je NEAR $L$_after_reduction_159 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_159: + jmp NEAR $L$_small_initial_blocks_encrypted_155 +$L$_small_initial_num_blocks_is_5_155: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm2,ZMMWORD[ddq_add_5678] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + sub r15,64 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm3,0 + vpshufb zmm0,zmm0,zmm29 + vpshufb xmm3,xmm3,xmm29 + vmovdqu8 zmm6,ZMMWORD[r11*1+r9] + vmovdqu8 xmm7{k1}{z},[64+r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vpxorq xmm3,xmm3,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc xmm3,xmm3,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc xmm3,xmm3,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc xmm3,xmm3,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc xmm3,xmm3,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc xmm3,xmm3,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc xmm3,xmm3,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc xmm3,xmm3,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc xmm3,xmm3,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc xmm3,xmm3,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenclast zmm0,zmm0,zmm15 + vaesenclast xmm3,xmm3,xmm15 + vpxorq zmm0,zmm0,zmm6 + vpxorq xmm3,xmm3,xmm7 + vextracti32x4 xmm12,zmm3,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 XMMWORD[64+r11*1+r10]{k1},xmm3 + vmovdqu8 zmm3{k1}{z},zmm3 + vpshufb zmm6,zmm0,zmm29 + vpshufb xmm7,xmm3,xmm29 + vextracti32x4 xmm13,zmm7,0 + sub r13,16 * (5 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_160 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[272+rdx] + vpclmulqdq zmm15,zmm6,zmm20,0x11 + vpclmulqdq zmm16,zmm6,zmm20,0x00 + vpclmulqdq zmm17,zmm6,zmm20,0x01 + vpclmulqdq zmm19,zmm6,zmm20,0x10 + vmovdqu64 xmm20,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm7,xmm20,0x01 + vpclmulqdq xmm5,xmm7,xmm20,0x10 + vpclmulqdq xmm0,xmm7,xmm20,0x11 + vpclmulqdq xmm3,xmm7,xmm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_160 +$L$_small_initial_partial_block_160: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[288+rdx] + vpclmulqdq zmm15,zmm6,zmm20,0x11 + vpclmulqdq zmm16,zmm6,zmm20,0x00 + vpclmulqdq zmm17,zmm6,zmm20,0x01 + vpclmulqdq zmm19,zmm6,zmm20,0x10 + + vpxorq zmm17,zmm17,zmm19 + vpsrldq zmm4,zmm17,8 + vpslldq zmm5,zmm17,8 + vpxorq zmm0,zmm15,zmm4 + vpxorq zmm3,zmm16,zmm5 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_160: + + or r13,r13 + je NEAR $L$_after_reduction_160 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_160: + jmp NEAR $L$_small_initial_blocks_encrypted_155 +$L$_small_initial_num_blocks_is_6_155: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm2,ZMMWORD[ddq_add_5678] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + sub r15,64 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm3,1 + vpshufb zmm0,zmm0,zmm29 + vpshufb ymm3,ymm3,ymm29 + vmovdqu8 zmm6,ZMMWORD[r11*1+r9] + vmovdqu8 ymm7{k1}{z},[64+r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vpxorq ymm3,ymm3,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc ymm3,ymm3,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc ymm3,ymm3,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc ymm3,ymm3,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc ymm3,ymm3,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc ymm3,ymm3,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc ymm3,ymm3,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc ymm3,ymm3,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc ymm3,ymm3,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc ymm3,ymm3,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenclast zmm0,zmm0,zmm15 + vaesenclast ymm3,ymm3,ymm15 + vpxorq zmm0,zmm0,zmm6 + vpxorq ymm3,ymm3,ymm7 + vextracti32x4 xmm12,zmm3,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 YMMWORD[64+r11*1+r10]{k1},ymm3 + vmovdqu8 zmm3{k1}{z},zmm3 + vpshufb zmm6,zmm0,zmm29 + vpshufb ymm7,ymm3,ymm29 + vextracti32x4 xmm13,zmm7,1 + sub r13,16 * (6 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_161 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[256+rdx] + vpclmulqdq zmm15,zmm6,zmm20,0x11 + vpclmulqdq zmm16,zmm6,zmm20,0x00 + vpclmulqdq zmm17,zmm6,zmm20,0x01 + vpclmulqdq zmm19,zmm6,zmm20,0x10 + vmovdqu64 ymm20,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm7,ymm20,0x01 + vpclmulqdq ymm5,ymm7,ymm20,0x10 + vpclmulqdq ymm0,ymm7,ymm20,0x11 + vpclmulqdq ymm3,ymm7,ymm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_161 +$L$_small_initial_partial_block_161: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[272+rdx] + vpclmulqdq zmm15,zmm6,zmm20,0x11 + vpclmulqdq zmm16,zmm6,zmm20,0x00 + vpclmulqdq zmm17,zmm6,zmm20,0x01 + vpclmulqdq zmm19,zmm6,zmm20,0x10 + vmovdqu64 xmm20,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm7,xmm20,0x01 + vpclmulqdq xmm5,xmm7,xmm20,0x10 + vpclmulqdq xmm0,xmm7,xmm20,0x11 + vpclmulqdq xmm3,xmm7,xmm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_161: + + or r13,r13 + je NEAR $L$_after_reduction_161 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_161: + jmp NEAR $L$_small_initial_blocks_encrypted_155 +$L$_small_initial_num_blocks_is_7_155: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm2,ZMMWORD[ddq_add_5678] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + sub r15,64 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm3,2 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vmovdqu8 zmm6,ZMMWORD[r11*1+r9] + vmovdqu8 zmm7{k1}{z},[64+r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenclast zmm0,zmm0,zmm15 + vaesenclast zmm3,zmm3,zmm15 + vpxorq zmm0,zmm0,zmm6 + vpxorq zmm3,zmm3,zmm7 + vextracti32x4 xmm12,zmm3,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10]{k1},zmm3 + vmovdqu8 zmm3{k1}{z},zmm3 + vpshufb zmm6,zmm0,zmm29 + vpshufb zmm7,zmm3,zmm29 + vextracti32x4 xmm13,zmm7,2 + sub r13,16 * (7 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_162 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[240+rdx] + vpclmulqdq zmm15,zmm6,zmm20,0x11 + vpclmulqdq zmm16,zmm6,zmm20,0x00 + vpclmulqdq zmm17,zmm6,zmm20,0x01 + vpclmulqdq zmm19,zmm6,zmm20,0x10 + vmovdqu64 ymm20,YMMWORD[304+rdx] + vinserti64x2 zmm20,zmm20,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm7,zmm20,0x01 + vpclmulqdq zmm5,zmm7,zmm20,0x10 + vpclmulqdq zmm0,zmm7,zmm20,0x11 + vpclmulqdq zmm3,zmm7,zmm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_162 +$L$_small_initial_partial_block_162: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[256+rdx] + vpclmulqdq zmm15,zmm6,zmm20,0x11 + vpclmulqdq zmm16,zmm6,zmm20,0x00 + vpclmulqdq zmm17,zmm6,zmm20,0x01 + vpclmulqdq zmm19,zmm6,zmm20,0x10 + vmovdqu64 ymm20,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm7,ymm20,0x01 + vpclmulqdq ymm5,ymm7,ymm20,0x10 + vpclmulqdq ymm0,ymm7,ymm20,0x11 + vpclmulqdq ymm3,ymm7,ymm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_162: + + or r13,r13 + je NEAR $L$_after_reduction_162 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_162: + jmp NEAR $L$_small_initial_blocks_encrypted_155 +$L$_small_initial_num_blocks_is_8_155: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm2,ZMMWORD[ddq_add_5678] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + sub r15,64 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm3,3 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vmovdqu8 zmm6,ZMMWORD[r11*1+r9] + vmovdqu8 zmm7{k1}{z},[64+r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenclast zmm0,zmm0,zmm15 + vaesenclast zmm3,zmm3,zmm15 + vpxorq zmm0,zmm0,zmm6 + vpxorq zmm3,zmm3,zmm7 + vextracti32x4 xmm12,zmm3,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10]{k1},zmm3 + vmovdqu8 zmm3{k1}{z},zmm3 + vpshufb zmm6,zmm0,zmm29 + vpshufb zmm7,zmm3,zmm29 + vextracti32x4 xmm13,zmm7,3 + sub r13,16 * (8 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_163 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[224+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[288+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vpxorq zmm15,zmm0,zmm15 + vpxorq zmm16,zmm3,zmm16 + vpxorq zmm17,zmm4,zmm17 + vpxorq zmm19,zmm5,zmm19 + + vpxorq zmm17,zmm17,zmm19 + vpsrldq zmm4,zmm17,8 + vpslldq zmm5,zmm17,8 + vpxorq zmm0,zmm15,zmm4 + vpxorq zmm3,zmm16,zmm5 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_163 +$L$_small_initial_partial_block_163: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[240+rdx] + vpclmulqdq zmm15,zmm6,zmm20,0x11 + vpclmulqdq zmm16,zmm6,zmm20,0x00 + vpclmulqdq zmm17,zmm6,zmm20,0x01 + vpclmulqdq zmm19,zmm6,zmm20,0x10 + vmovdqu64 ymm20,YMMWORD[304+rdx] + vinserti64x2 zmm20,zmm20,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm7,zmm20,0x01 + vpclmulqdq zmm5,zmm7,zmm20,0x10 + vpclmulqdq zmm0,zmm7,zmm20,0x11 + vpclmulqdq zmm3,zmm7,zmm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_163: + + or r13,r13 + je NEAR $L$_after_reduction_163 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_163: + jmp NEAR $L$_small_initial_blocks_encrypted_155 +$L$_small_initial_num_blocks_is_9_155: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm2,ZMMWORD[ddq_add_5678] + vpaddd zmm4,zmm0,ZMMWORD[ddq_add_8888] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + sub r15,128 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm4,0 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb xmm4,xmm4,xmm29 + vmovdqu8 zmm6,ZMMWORD[r11*1+r9] + vmovdqu8 zmm7,ZMMWORD[64+r11*1+r9] + vmovdqu8 xmm10{k1}{z},[128+r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm15 + vpxorq xmm4,xmm4,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc xmm4,xmm4,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc xmm4,xmm4,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc xmm4,xmm4,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc xmm4,xmm4,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc xmm4,xmm4,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc xmm4,xmm4,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc xmm4,xmm4,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc xmm4,xmm4,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc xmm4,xmm4,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenclast zmm0,zmm0,zmm15 + vaesenclast zmm3,zmm3,zmm15 + vaesenclast xmm4,xmm4,xmm15 + vpxorq zmm0,zmm0,zmm6 + vpxorq zmm3,zmm3,zmm7 + vpxorq xmm4,xmm4,xmm10 + vextracti32x4 xmm12,zmm4,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 XMMWORD[128+r11*1+r10]{k1},xmm4 + vmovdqu8 zmm4{k1}{z},zmm4 + vpshufb zmm6,zmm0,zmm29 + vpshufb zmm7,zmm3,zmm29 + vpshufb xmm10,xmm4,xmm29 + vextracti32x4 xmm13,zmm10,0 + sub r13,16 * (9 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_164 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[208+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[272+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vpxorq zmm15,zmm0,zmm15 + vpxorq zmm16,zmm3,zmm16 + vpxorq zmm17,zmm4,zmm17 + vpxorq zmm19,zmm5,zmm19 + vmovdqu64 xmm20,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm10,xmm20,0x01 + vpclmulqdq xmm5,xmm10,xmm20,0x10 + vpclmulqdq xmm0,xmm10,xmm20,0x11 + vpclmulqdq xmm3,xmm10,xmm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_164 +$L$_small_initial_partial_block_164: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[224+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[288+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vpxorq zmm15,zmm0,zmm15 + vpxorq zmm16,zmm3,zmm16 + vpxorq zmm17,zmm4,zmm17 + vpxorq zmm19,zmm5,zmm19 + + vpxorq zmm17,zmm17,zmm19 + vpsrldq zmm4,zmm17,8 + vpslldq zmm5,zmm17,8 + vpxorq zmm0,zmm15,zmm4 + vpxorq zmm3,zmm16,zmm5 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_164: + + or r13,r13 + je NEAR $L$_after_reduction_164 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_164: + jmp NEAR $L$_small_initial_blocks_encrypted_155 +$L$_small_initial_num_blocks_is_10_155: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm2,ZMMWORD[ddq_add_5678] + vpaddd zmm4,zmm0,ZMMWORD[ddq_add_8888] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + sub r15,128 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm4,1 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb ymm4,ymm4,ymm29 + vmovdqu8 zmm6,ZMMWORD[r11*1+r9] + vmovdqu8 zmm7,ZMMWORD[64+r11*1+r9] + vmovdqu8 ymm10{k1}{z},[128+r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm15 + vpxorq ymm4,ymm4,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc ymm4,ymm4,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc ymm4,ymm4,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc ymm4,ymm4,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc ymm4,ymm4,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc ymm4,ymm4,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc ymm4,ymm4,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc ymm4,ymm4,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc ymm4,ymm4,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc ymm4,ymm4,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenclast zmm0,zmm0,zmm15 + vaesenclast zmm3,zmm3,zmm15 + vaesenclast ymm4,ymm4,ymm15 + vpxorq zmm0,zmm0,zmm6 + vpxorq zmm3,zmm3,zmm7 + vpxorq ymm4,ymm4,ymm10 + vextracti32x4 xmm12,zmm4,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 YMMWORD[128+r11*1+r10]{k1},ymm4 + vmovdqu8 zmm4{k1}{z},zmm4 + vpshufb zmm6,zmm0,zmm29 + vpshufb zmm7,zmm3,zmm29 + vpshufb ymm10,ymm4,ymm29 + vextracti32x4 xmm13,zmm10,1 + sub r13,16 * (10 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_165 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[192+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[256+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vpxorq zmm15,zmm0,zmm15 + vpxorq zmm16,zmm3,zmm16 + vpxorq zmm17,zmm4,zmm17 + vpxorq zmm19,zmm5,zmm19 + vmovdqu64 ymm20,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm10,ymm20,0x01 + vpclmulqdq ymm5,ymm10,ymm20,0x10 + vpclmulqdq ymm0,ymm10,ymm20,0x11 + vpclmulqdq ymm3,ymm10,ymm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_165 +$L$_small_initial_partial_block_165: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[208+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[272+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vpxorq zmm15,zmm0,zmm15 + vpxorq zmm16,zmm3,zmm16 + vpxorq zmm17,zmm4,zmm17 + vpxorq zmm19,zmm5,zmm19 + vmovdqu64 xmm20,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm10,xmm20,0x01 + vpclmulqdq xmm5,xmm10,xmm20,0x10 + vpclmulqdq xmm0,xmm10,xmm20,0x11 + vpclmulqdq xmm3,xmm10,xmm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_165: + + or r13,r13 + je NEAR $L$_after_reduction_165 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_165: + jmp NEAR $L$_small_initial_blocks_encrypted_155 +$L$_small_initial_num_blocks_is_11_155: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm2,ZMMWORD[ddq_add_5678] + vpaddd zmm4,zmm0,ZMMWORD[ddq_add_8888] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + sub r15,128 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm4,2 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vmovdqu8 zmm6,ZMMWORD[r11*1+r9] + vmovdqu8 zmm7,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm10{k1}{z},[128+r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm15 + vpxorq zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenclast zmm0,zmm0,zmm15 + vaesenclast zmm3,zmm3,zmm15 + vaesenclast zmm4,zmm4,zmm15 + vpxorq zmm0,zmm0,zmm6 + vpxorq zmm3,zmm3,zmm7 + vpxorq zmm4,zmm4,zmm10 + vextracti32x4 xmm12,zmm4,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10]{k1},zmm4 + vmovdqu8 zmm4{k1}{z},zmm4 + vpshufb zmm6,zmm0,zmm29 + vpshufb zmm7,zmm3,zmm29 + vpshufb zmm10,zmm4,zmm29 + vextracti32x4 xmm13,zmm10,2 + sub r13,16 * (11 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_166 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[176+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[240+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vpxorq zmm15,zmm0,zmm15 + vpxorq zmm16,zmm3,zmm16 + vpxorq zmm17,zmm4,zmm17 + vpxorq zmm19,zmm5,zmm19 + vmovdqu64 ymm20,YMMWORD[304+rdx] + vinserti64x2 zmm20,zmm20,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm10,zmm20,0x01 + vpclmulqdq zmm5,zmm10,zmm20,0x10 + vpclmulqdq zmm0,zmm10,zmm20,0x11 + vpclmulqdq zmm3,zmm10,zmm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_166 +$L$_small_initial_partial_block_166: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[192+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[256+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vpxorq zmm15,zmm0,zmm15 + vpxorq zmm16,zmm3,zmm16 + vpxorq zmm17,zmm4,zmm17 + vpxorq zmm19,zmm5,zmm19 + vmovdqu64 ymm20,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm10,ymm20,0x01 + vpclmulqdq ymm5,ymm10,ymm20,0x10 + vpclmulqdq ymm0,ymm10,ymm20,0x11 + vpclmulqdq ymm3,ymm10,ymm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_166: + + or r13,r13 + je NEAR $L$_after_reduction_166 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_166: + jmp NEAR $L$_small_initial_blocks_encrypted_155 +$L$_small_initial_num_blocks_is_12_155: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm2,ZMMWORD[ddq_add_5678] + vpaddd zmm4,zmm0,ZMMWORD[ddq_add_8888] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + sub r15,128 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm4,3 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vmovdqu8 zmm6,ZMMWORD[r11*1+r9] + vmovdqu8 zmm7,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm10{k1}{z},[128+r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm15 + vpxorq zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenclast zmm0,zmm0,zmm15 + vaesenclast zmm3,zmm3,zmm15 + vaesenclast zmm4,zmm4,zmm15 + vpxorq zmm0,zmm0,zmm6 + vpxorq zmm3,zmm3,zmm7 + vpxorq zmm4,zmm4,zmm10 + vextracti32x4 xmm12,zmm4,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10]{k1},zmm4 + vmovdqu8 zmm4{k1}{z},zmm4 + vpshufb zmm6,zmm0,zmm29 + vpshufb zmm7,zmm3,zmm29 + vpshufb zmm10,zmm4,zmm29 + vextracti32x4 xmm13,zmm10,3 + sub r13,16 * (12 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_167 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[160+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[224+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[288+rdx] + vpclmulqdq zmm6,zmm10,zmm20,0x11 + vpclmulqdq zmm7,zmm10,zmm20,0x00 + vpternlogq zmm15,zmm6,zmm0,0x96 + vpternlogq zmm16,zmm7,zmm3,0x96 + vpclmulqdq zmm6,zmm10,zmm20,0x01 + vpclmulqdq zmm7,zmm10,zmm20,0x10 + vpternlogq zmm17,zmm6,zmm4,0x96 + vpternlogq zmm19,zmm7,zmm5,0x96 + + vpxorq zmm17,zmm17,zmm19 + vpsrldq zmm4,zmm17,8 + vpslldq zmm5,zmm17,8 + vpxorq zmm0,zmm15,zmm4 + vpxorq zmm3,zmm16,zmm5 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_167 +$L$_small_initial_partial_block_167: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[176+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[240+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vpxorq zmm15,zmm0,zmm15 + vpxorq zmm16,zmm3,zmm16 + vpxorq zmm17,zmm4,zmm17 + vpxorq zmm19,zmm5,zmm19 + vmovdqu64 ymm20,YMMWORD[304+rdx] + vinserti64x2 zmm20,zmm20,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm10,zmm20,0x01 + vpclmulqdq zmm5,zmm10,zmm20,0x10 + vpclmulqdq zmm0,zmm10,zmm20,0x11 + vpclmulqdq zmm3,zmm10,zmm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_167: + + or r13,r13 + je NEAR $L$_after_reduction_167 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_167: + jmp NEAR $L$_small_initial_blocks_encrypted_155 +$L$_small_initial_num_blocks_is_13_155: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm2,ZMMWORD[ddq_add_5678] + vpaddd zmm4,zmm0,ZMMWORD[ddq_add_8888] + vpaddd zmm5,zmm3,ZMMWORD[ddq_add_8888] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + sub r15,192 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm5,0 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb xmm5,xmm5,xmm29 + vmovdqu8 zmm6,ZMMWORD[r11*1+r9] + vmovdqu8 zmm7,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm10,ZMMWORD[128+r11*1+r9] + vmovdqu8 xmm11{k1}{z},[192+r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm15 + vpxorq zmm4,zmm4,zmm15 + vpxorq xmm5,xmm5,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc xmm5,xmm5,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc xmm5,xmm5,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc xmm5,xmm5,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc xmm5,xmm5,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc xmm5,xmm5,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc xmm5,xmm5,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc xmm5,xmm5,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc xmm5,xmm5,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc xmm5,xmm5,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenclast zmm0,zmm0,zmm15 + vaesenclast zmm3,zmm3,zmm15 + vaesenclast zmm4,zmm4,zmm15 + vaesenclast xmm5,xmm5,xmm15 + vpxorq zmm0,zmm0,zmm6 + vpxorq zmm3,zmm3,zmm7 + vpxorq zmm4,zmm4,zmm10 + vpxorq xmm5,xmm5,xmm11 + vextracti32x4 xmm12,zmm5,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 XMMWORD[192+r11*1+r10]{k1},xmm5 + vmovdqu8 zmm5{k1}{z},zmm5 + vpshufb zmm6,zmm0,zmm29 + vpshufb zmm7,zmm3,zmm29 + vpshufb zmm10,zmm4,zmm29 + vpshufb xmm11,xmm5,xmm29 + vextracti32x4 xmm13,zmm11,0 + sub r13,16 * (13 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_168 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[144+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[208+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[272+rdx] + vpclmulqdq zmm6,zmm10,zmm20,0x11 + vpclmulqdq zmm7,zmm10,zmm20,0x00 + vpternlogq zmm15,zmm6,zmm0,0x96 + vpternlogq zmm16,zmm7,zmm3,0x96 + vpclmulqdq zmm6,zmm10,zmm20,0x01 + vpclmulqdq zmm7,zmm10,zmm20,0x10 + vpternlogq zmm17,zmm6,zmm4,0x96 + vpternlogq zmm19,zmm7,zmm5,0x96 + vmovdqu64 xmm20,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm11,xmm20,0x01 + vpclmulqdq xmm5,xmm11,xmm20,0x10 + vpclmulqdq xmm0,xmm11,xmm20,0x11 + vpclmulqdq xmm3,xmm11,xmm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_168 +$L$_small_initial_partial_block_168: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[160+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[224+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[288+rdx] + vpclmulqdq zmm6,zmm10,zmm20,0x11 + vpclmulqdq zmm7,zmm10,zmm20,0x00 + vpternlogq zmm15,zmm6,zmm0,0x96 + vpternlogq zmm16,zmm7,zmm3,0x96 + vpclmulqdq zmm6,zmm10,zmm20,0x01 + vpclmulqdq zmm7,zmm10,zmm20,0x10 + vpternlogq zmm17,zmm6,zmm4,0x96 + vpternlogq zmm19,zmm7,zmm5,0x96 + + vpxorq zmm17,zmm17,zmm19 + vpsrldq zmm4,zmm17,8 + vpslldq zmm5,zmm17,8 + vpxorq zmm0,zmm15,zmm4 + vpxorq zmm3,zmm16,zmm5 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_168: + + or r13,r13 + je NEAR $L$_after_reduction_168 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_168: + jmp NEAR $L$_small_initial_blocks_encrypted_155 +$L$_small_initial_num_blocks_is_14_155: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm2,ZMMWORD[ddq_add_5678] + vpaddd zmm4,zmm0,ZMMWORD[ddq_add_8888] + vpaddd zmm5,zmm3,ZMMWORD[ddq_add_8888] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + sub r15,192 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm5,1 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb ymm5,ymm5,ymm29 + vmovdqu8 zmm6,ZMMWORD[r11*1+r9] + vmovdqu8 zmm7,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm10,ZMMWORD[128+r11*1+r9] + vmovdqu8 ymm11{k1}{z},[192+r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm15 + vpxorq zmm4,zmm4,zmm15 + vpxorq ymm5,ymm5,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc ymm5,ymm5,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc ymm5,ymm5,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc ymm5,ymm5,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc ymm5,ymm5,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc ymm5,ymm5,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc ymm5,ymm5,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc ymm5,ymm5,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc ymm5,ymm5,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc ymm5,ymm5,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenclast zmm0,zmm0,zmm15 + vaesenclast zmm3,zmm3,zmm15 + vaesenclast zmm4,zmm4,zmm15 + vaesenclast ymm5,ymm5,ymm15 + vpxorq zmm0,zmm0,zmm6 + vpxorq zmm3,zmm3,zmm7 + vpxorq zmm4,zmm4,zmm10 + vpxorq ymm5,ymm5,ymm11 + vextracti32x4 xmm12,zmm5,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 YMMWORD[192+r11*1+r10]{k1},ymm5 + vmovdqu8 zmm5{k1}{z},zmm5 + vpshufb zmm6,zmm0,zmm29 + vpshufb zmm7,zmm3,zmm29 + vpshufb zmm10,zmm4,zmm29 + vpshufb ymm11,ymm5,ymm29 + vextracti32x4 xmm13,zmm11,1 + sub r13,16 * (14 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_169 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[128+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[192+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[256+rdx] + vpclmulqdq zmm6,zmm10,zmm20,0x11 + vpclmulqdq zmm7,zmm10,zmm20,0x00 + vpternlogq zmm15,zmm6,zmm0,0x96 + vpternlogq zmm16,zmm7,zmm3,0x96 + vpclmulqdq zmm6,zmm10,zmm20,0x01 + vpclmulqdq zmm7,zmm10,zmm20,0x10 + vpternlogq zmm17,zmm6,zmm4,0x96 + vpternlogq zmm19,zmm7,zmm5,0x96 + vmovdqu64 ymm20,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm11,ymm20,0x01 + vpclmulqdq ymm5,ymm11,ymm20,0x10 + vpclmulqdq ymm0,ymm11,ymm20,0x11 + vpclmulqdq ymm3,ymm11,ymm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_169 +$L$_small_initial_partial_block_169: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[144+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[208+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[272+rdx] + vpclmulqdq zmm6,zmm10,zmm20,0x11 + vpclmulqdq zmm7,zmm10,zmm20,0x00 + vpternlogq zmm15,zmm6,zmm0,0x96 + vpternlogq zmm16,zmm7,zmm3,0x96 + vpclmulqdq zmm6,zmm10,zmm20,0x01 + vpclmulqdq zmm7,zmm10,zmm20,0x10 + vpternlogq zmm17,zmm6,zmm4,0x96 + vpternlogq zmm19,zmm7,zmm5,0x96 + vmovdqu64 xmm20,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm11,xmm20,0x01 + vpclmulqdq xmm5,xmm11,xmm20,0x10 + vpclmulqdq xmm0,xmm11,xmm20,0x11 + vpclmulqdq xmm3,xmm11,xmm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_169: + + or r13,r13 + je NEAR $L$_after_reduction_169 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_169: + jmp NEAR $L$_small_initial_blocks_encrypted_155 +$L$_small_initial_num_blocks_is_15_155: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm2,ZMMWORD[ddq_add_5678] + vpaddd zmm4,zmm0,ZMMWORD[ddq_add_8888] + vpaddd zmm5,zmm3,ZMMWORD[ddq_add_8888] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + sub r15,192 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm5,2 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 + vmovdqu8 zmm6,ZMMWORD[r11*1+r9] + vmovdqu8 zmm7,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm10,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm11{k1}{z},[192+r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm15 + vpxorq zmm4,zmm4,zmm15 + vpxorq zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenclast zmm0,zmm0,zmm15 + vaesenclast zmm3,zmm3,zmm15 + vaesenclast zmm4,zmm4,zmm15 + vaesenclast zmm5,zmm5,zmm15 + vpxorq zmm0,zmm0,zmm6 + vpxorq zmm3,zmm3,zmm7 + vpxorq zmm4,zmm4,zmm10 + vpxorq zmm5,zmm5,zmm11 + vextracti32x4 xmm12,zmm5,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[192+r11*1+r10]{k1},zmm5 + vmovdqu8 zmm5{k1}{z},zmm5 + vpshufb zmm6,zmm0,zmm29 + vpshufb zmm7,zmm3,zmm29 + vpshufb zmm10,zmm4,zmm29 + vpshufb zmm11,zmm5,zmm29 + vextracti32x4 xmm13,zmm11,2 + sub r13,16 * (15 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_170 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[112+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[176+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[240+rdx] + vpclmulqdq zmm6,zmm10,zmm20,0x11 + vpclmulqdq zmm7,zmm10,zmm20,0x00 + vpternlogq zmm15,zmm6,zmm0,0x96 + vpternlogq zmm16,zmm7,zmm3,0x96 + vpclmulqdq zmm6,zmm10,zmm20,0x01 + vpclmulqdq zmm7,zmm10,zmm20,0x10 + vpternlogq zmm17,zmm6,zmm4,0x96 + vpternlogq zmm19,zmm7,zmm5,0x96 + vmovdqu64 ymm20,YMMWORD[304+rdx] + vinserti64x2 zmm20,zmm20,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm11,zmm20,0x01 + vpclmulqdq zmm5,zmm11,zmm20,0x10 + vpclmulqdq zmm0,zmm11,zmm20,0x11 + vpclmulqdq zmm3,zmm11,zmm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_170 +$L$_small_initial_partial_block_170: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[128+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[192+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[256+rdx] + vpclmulqdq zmm6,zmm10,zmm20,0x11 + vpclmulqdq zmm7,zmm10,zmm20,0x00 + vpternlogq zmm15,zmm6,zmm0,0x96 + vpternlogq zmm16,zmm7,zmm3,0x96 + vpclmulqdq zmm6,zmm10,zmm20,0x01 + vpclmulqdq zmm7,zmm10,zmm20,0x10 + vpternlogq zmm17,zmm6,zmm4,0x96 + vpternlogq zmm19,zmm7,zmm5,0x96 + vmovdqu64 ymm20,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm11,ymm20,0x01 + vpclmulqdq ymm5,ymm11,ymm20,0x10 + vpclmulqdq ymm0,ymm11,ymm20,0x11 + vpclmulqdq ymm3,ymm11,ymm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_170: + + or r13,r13 + je NEAR $L$_after_reduction_170 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_170: + jmp NEAR $L$_small_initial_blocks_encrypted_155 +$L$_small_initial_num_blocks_is_16_155: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm2,ZMMWORD[ddq_add_5678] + vpaddd zmm4,zmm0,ZMMWORD[ddq_add_8888] + vpaddd zmm5,zmm3,ZMMWORD[ddq_add_8888] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + sub r15,192 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm5,3 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 + vmovdqu8 zmm6,ZMMWORD[r11*1+r9] + vmovdqu8 zmm7,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm10,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm11{k1}{z},[192+r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm15 + vpxorq zmm4,zmm4,zmm15 + vpxorq zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenclast zmm0,zmm0,zmm15 + vaesenclast zmm3,zmm3,zmm15 + vaesenclast zmm4,zmm4,zmm15 + vaesenclast zmm5,zmm5,zmm15 + vpxorq zmm0,zmm0,zmm6 + vpxorq zmm3,zmm3,zmm7 + vpxorq zmm4,zmm4,zmm10 + vpxorq zmm5,zmm5,zmm11 + vextracti32x4 xmm12,zmm5,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[192+r11*1+r10]{k1},zmm5 + vmovdqu8 zmm5{k1}{z},zmm5 + vpshufb zmm6,zmm0,zmm29 + vpshufb zmm7,zmm3,zmm29 + vpshufb zmm10,zmm4,zmm29 + vpshufb zmm11,zmm5,zmm29 + vextracti32x4 xmm13,zmm11,3 + sub r13,16 * (16 - 1) +$L$_small_initial_partial_block_171: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[112+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[176+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[240+rdx] + vpclmulqdq zmm6,zmm10,zmm20,0x11 + vpclmulqdq zmm7,zmm10,zmm20,0x00 + vpternlogq zmm15,zmm6,zmm0,0x96 + vpternlogq zmm16,zmm7,zmm3,0x96 + vpclmulqdq zmm6,zmm10,zmm20,0x01 + vpclmulqdq zmm7,zmm10,zmm20,0x10 + vpternlogq zmm17,zmm6,zmm4,0x96 + vpternlogq zmm19,zmm7,zmm5,0x96 + vmovdqu64 ymm20,YMMWORD[304+rdx] + vinserti64x2 zmm20,zmm20,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm11,zmm20,0x01 + vpclmulqdq zmm5,zmm11,zmm20,0x10 + vpclmulqdq zmm0,zmm11,zmm20,0x11 + vpclmulqdq zmm3,zmm11,zmm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_171: + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_171: +$L$_small_initial_blocks_encrypted_155: +$L$_ghash_done_10: + vmovdqu64 XMMWORD[rdx],xmm2 + vmovdqu64 XMMWORD[64+rdx],xmm14 +$L$_enc_dec_done_10: + jmp NEAR $L$exit_gcm_encrypt +ALIGN 32 +$L$aes_gcm_encrypt_192_avx512: + cmp QWORD[112+rbp],0 + je NEAR $L$_enc_dec_done_172 + xor r14,r14 + vmovdqu64 xmm14,XMMWORD[64+rdx] + + mov r11,QWORD[r8] + or r11,r11 + je NEAR $L$_partial_block_done_173 + mov r10d,16 + lea r12,[byte_len_to_mask_table] + cmp QWORD[112+rbp],r10 + cmovc r10,QWORD[112+rbp] + add r12,r10 + add r12,r10 + kmovw k1,[r12] + vmovdqu8 xmm0{k1}{z},[r9] + + vmovdqu64 xmm3,XMMWORD[16+rdx] + vmovdqu64 xmm4,XMMWORD[336+rdx] + + + + lea r12,[SHIFT_MASK] + add r12,r11 + vmovdqu64 xmm5,XMMWORD[r12] + vpshufb xmm3,xmm3,xmm5 + vpxorq xmm3,xmm3,xmm0 + + + mov r13,QWORD[112+rbp] + add r13,r11 + sub r13,16 + jge NEAR $L$_no_extra_mask_173 + sub r12,r13 +$L$_no_extra_mask_173: + + + + vmovdqu64 xmm0,XMMWORD[16+r12] + vpand xmm3,xmm3,xmm0 + vpshufb xmm3,xmm3,XMMWORD[SHUF_MASK] + vpshufb xmm3,xmm3,xmm5 + vpxorq xmm14,xmm14,xmm3 + cmp r13,0 + jl NEAR $L$_partial_incomplete_173 + + vpclmulqdq xmm7,xmm14,xmm4,0x11 + vpclmulqdq xmm10,xmm14,xmm4,0x00 + vpclmulqdq xmm11,xmm14,xmm4,0x01 + vpclmulqdq xmm14,xmm14,xmm4,0x10 + vpxorq xmm14,xmm14,xmm11 + + vpsrldq xmm11,xmm14,8 + vpslldq xmm14,xmm14,8 + vpxorq xmm7,xmm7,xmm11 + vpxorq xmm14,xmm14,xmm10 + + + + vmovdqu64 xmm11,XMMWORD[POLY2] + + vpclmulqdq xmm10,xmm11,xmm14,0x01 + vpslldq xmm10,xmm10,8 + vpxorq xmm14,xmm14,xmm10 + + + + vpclmulqdq xmm10,xmm11,xmm14,0x00 + vpsrldq xmm10,xmm10,4 + vpclmulqdq xmm14,xmm11,xmm14,0x10 + vpslldq xmm14,xmm14,4 + + vpternlogq xmm14,xmm7,xmm10,0x96 + + mov QWORD[r8],0 + + mov r12,r11 + mov r11,16 + sub r11,r12 + jmp NEAR $L$_enc_dec_done_173 + +$L$_partial_incomplete_173: + mov r12,QWORD[112+rbp] + add QWORD[r8],r12 + mov r11,QWORD[112+rbp] + +$L$_enc_dec_done_173: + + + lea r12,[byte_len_to_mask_table] + kmovw k1,[r11*2+r12] + vmovdqu64 XMMWORD[64+rdx],xmm14 + + vpshufb xmm3,xmm3,XMMWORD[SHUF_MASK] + vpshufb xmm3,xmm3,xmm5 + mov r12,QWORD[120+rbp] + vmovdqu8 XMMWORD[r12]{k1},xmm3 +$L$_partial_block_done_173: + vmovdqu64 xmm2,XMMWORD[rdx] + mov r13,QWORD[112+rbp] + sub r13,r11 + je NEAR $L$_enc_dec_done_172 + cmp r13,256 + jbe NEAR $L$_message_below_equal_16_blocks_172 + + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vmovdqa64 zmm27,ZMMWORD[ddq_addbe_4444] + vmovdqa64 zmm28,ZMMWORD[ddq_addbe_1234] + + + + + + + vmovd r15d,xmm2 + and r15d,255 + + vshufi64x2 zmm2,zmm2,zmm2,0 + vpshufb zmm2,zmm2,zmm29 + + + + cmp r15b,240 + jae NEAR $L$_next_16_overflow_174 + vpaddd zmm7,zmm2,zmm28 + vpaddd zmm10,zmm7,zmm27 + vpaddd zmm11,zmm10,zmm27 + vpaddd zmm12,zmm11,zmm27 + jmp NEAR $L$_next_16_ok_174 +$L$_next_16_overflow_174: + vpshufb zmm2,zmm2,zmm29 + vmovdqa64 zmm12,ZMMWORD[ddq_add_4444] + vpaddd zmm7,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm10,zmm7,zmm12 + vpaddd zmm11,zmm10,zmm12 + vpaddd zmm12,zmm11,zmm12 + vpshufb zmm7,zmm7,zmm29 + vpshufb zmm10,zmm10,zmm29 + vpshufb zmm11,zmm11,zmm29 + vpshufb zmm12,zmm12,zmm29 +$L$_next_16_ok_174: + vshufi64x2 zmm2,zmm12,zmm12,255 + add r15b,16 + + vmovdqu8 zmm0,ZMMWORD[r11*1+r9] + vmovdqu8 zmm3,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm4,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm5,ZMMWORD[192+r11*1+r9] + + + vbroadcastf64x2 zmm6,ZMMWORD[rcx] + vpxorq zmm7,zmm7,zmm6 + vpxorq zmm10,zmm10,zmm6 + vpxorq zmm11,zmm11,zmm6 + vpxorq zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[16+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[32+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[48+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[64+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[80+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[96+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[112+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[128+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[144+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[160+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[176+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[192+rcx] + vaesenclast zmm7,zmm7,zmm6 + vaesenclast zmm10,zmm10,zmm6 + vaesenclast zmm11,zmm11,zmm6 + vaesenclast zmm12,zmm12,zmm6 + + + vpxorq zmm7,zmm7,zmm0 + vpxorq zmm10,zmm10,zmm3 + vpxorq zmm11,zmm11,zmm4 + vpxorq zmm12,zmm12,zmm5 + + + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm7 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm10 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm11 + vmovdqu8 ZMMWORD[192+r11*1+r10],zmm12 + + vpshufb zmm7,zmm7,zmm29 + vpshufb zmm10,zmm10,zmm29 + vpshufb zmm11,zmm11,zmm29 + vpshufb zmm12,zmm12,zmm29 + vmovdqa64 ZMMWORD[768+rsp],zmm7 + vmovdqa64 ZMMWORD[832+rsp],zmm10 + vmovdqa64 ZMMWORD[896+rsp],zmm11 + vmovdqa64 ZMMWORD[960+rsp],zmm12 + test r14,r14 + jnz NEAR $L$_skip_hkeys_precomputation_175 + + vmovdqu64 zmm0,ZMMWORD[288+rdx] + vmovdqu64 ZMMWORD[704+rsp],zmm0 + + vmovdqu64 zmm3,ZMMWORD[224+rdx] + vmovdqu64 ZMMWORD[640+rsp],zmm3 + + + vshufi64x2 zmm3,zmm3,zmm3,0x00 + + vmovdqu64 zmm4,ZMMWORD[160+rdx] + vmovdqu64 ZMMWORD[576+rsp],zmm4 + + vmovdqu64 zmm5,ZMMWORD[96+rdx] + vmovdqu64 ZMMWORD[512+rsp],zmm5 +$L$_skip_hkeys_precomputation_175: + cmp r13,512 + jb NEAR $L$_message_below_32_blocks_172 + + + + cmp r15b,240 + jae NEAR $L$_next_16_overflow_176 + vpaddd zmm7,zmm2,zmm28 + vpaddd zmm10,zmm7,zmm27 + vpaddd zmm11,zmm10,zmm27 + vpaddd zmm12,zmm11,zmm27 + jmp NEAR $L$_next_16_ok_176 +$L$_next_16_overflow_176: + vpshufb zmm2,zmm2,zmm29 + vmovdqa64 zmm12,ZMMWORD[ddq_add_4444] + vpaddd zmm7,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm10,zmm7,zmm12 + vpaddd zmm11,zmm10,zmm12 + vpaddd zmm12,zmm11,zmm12 + vpshufb zmm7,zmm7,zmm29 + vpshufb zmm10,zmm10,zmm29 + vpshufb zmm11,zmm11,zmm29 + vpshufb zmm12,zmm12,zmm29 +$L$_next_16_ok_176: + vshufi64x2 zmm2,zmm12,zmm12,255 + add r15b,16 + + vmovdqu8 zmm0,ZMMWORD[256+r11*1+r9] + vmovdqu8 zmm3,ZMMWORD[320+r11*1+r9] + vmovdqu8 zmm4,ZMMWORD[384+r11*1+r9] + vmovdqu8 zmm5,ZMMWORD[448+r11*1+r9] + + + vbroadcastf64x2 zmm6,ZMMWORD[rcx] + vpxorq zmm7,zmm7,zmm6 + vpxorq zmm10,zmm10,zmm6 + vpxorq zmm11,zmm11,zmm6 + vpxorq zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[16+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[32+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[48+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[64+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[80+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[96+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[112+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[128+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[144+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[160+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[176+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[192+rcx] + vaesenclast zmm7,zmm7,zmm6 + vaesenclast zmm10,zmm10,zmm6 + vaesenclast zmm11,zmm11,zmm6 + vaesenclast zmm12,zmm12,zmm6 + + + vpxorq zmm7,zmm7,zmm0 + vpxorq zmm10,zmm10,zmm3 + vpxorq zmm11,zmm11,zmm4 + vpxorq zmm12,zmm12,zmm5 + + + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[256+r11*1+r10],zmm7 + vmovdqu8 ZMMWORD[320+r11*1+r10],zmm10 + vmovdqu8 ZMMWORD[384+r11*1+r10],zmm11 + vmovdqu8 ZMMWORD[448+r11*1+r10],zmm12 + + vpshufb zmm7,zmm7,zmm29 + vpshufb zmm10,zmm10,zmm29 + vpshufb zmm11,zmm11,zmm29 + vpshufb zmm12,zmm12,zmm29 + vmovdqa64 ZMMWORD[1024+rsp],zmm7 + vmovdqa64 ZMMWORD[1088+rsp],zmm10 + vmovdqa64 ZMMWORD[1152+rsp],zmm11 + vmovdqa64 ZMMWORD[1216+rsp],zmm12 + test r14,r14 + jnz NEAR $L$_skip_hkeys_precomputation_177 + vmovdqu64 zmm3,ZMMWORD[640+rsp] + + + vshufi64x2 zmm3,zmm3,zmm3,0x00 + + vmovdqu64 zmm4,ZMMWORD[576+rsp] + vmovdqu64 zmm5,ZMMWORD[512+rsp] + + vpclmulqdq zmm6,zmm4,zmm3,0x11 + vpclmulqdq zmm7,zmm4,zmm3,0x00 + vpclmulqdq zmm10,zmm4,zmm3,0x01 + vpclmulqdq zmm4,zmm4,zmm3,0x10 + vpxorq zmm4,zmm4,zmm10 + + vpsrldq zmm10,zmm4,8 + vpslldq zmm4,zmm4,8 + vpxorq zmm6,zmm6,zmm10 + vpxorq zmm4,zmm4,zmm7 + + + + vmovdqu64 zmm10,ZMMWORD[POLY2] + + vpclmulqdq zmm7,zmm10,zmm4,0x01 + vpslldq zmm7,zmm7,8 + vpxorq zmm4,zmm4,zmm7 + + + + vpclmulqdq zmm7,zmm10,zmm4,0x00 + vpsrldq zmm7,zmm7,4 + vpclmulqdq zmm4,zmm10,zmm4,0x10 + vpslldq zmm4,zmm4,4 + + vpternlogq zmm4,zmm6,zmm7,0x96 + + vmovdqu64 ZMMWORD[448+rsp],zmm4 + + vpclmulqdq zmm6,zmm5,zmm3,0x11 + vpclmulqdq zmm7,zmm5,zmm3,0x00 + vpclmulqdq zmm10,zmm5,zmm3,0x01 + vpclmulqdq zmm5,zmm5,zmm3,0x10 + vpxorq zmm5,zmm5,zmm10 + + vpsrldq zmm10,zmm5,8 + vpslldq zmm5,zmm5,8 + vpxorq zmm6,zmm6,zmm10 + vpxorq zmm5,zmm5,zmm7 + + + + vmovdqu64 zmm10,ZMMWORD[POLY2] + + vpclmulqdq zmm7,zmm10,zmm5,0x01 + vpslldq zmm7,zmm7,8 + vpxorq zmm5,zmm5,zmm7 + + + + vpclmulqdq zmm7,zmm10,zmm5,0x00 + vpsrldq zmm7,zmm7,4 + vpclmulqdq zmm5,zmm10,zmm5,0x10 + vpslldq zmm5,zmm5,4 + + vpternlogq zmm5,zmm6,zmm7,0x96 + + vmovdqu64 ZMMWORD[384+rsp],zmm5 + + vpclmulqdq zmm6,zmm4,zmm3,0x11 + vpclmulqdq zmm7,zmm4,zmm3,0x00 + vpclmulqdq zmm10,zmm4,zmm3,0x01 + vpclmulqdq zmm4,zmm4,zmm3,0x10 + vpxorq zmm4,zmm4,zmm10 + + vpsrldq zmm10,zmm4,8 + vpslldq zmm4,zmm4,8 + vpxorq zmm6,zmm6,zmm10 + vpxorq zmm4,zmm4,zmm7 + + + + vmovdqu64 zmm10,ZMMWORD[POLY2] + + vpclmulqdq zmm7,zmm10,zmm4,0x01 + vpslldq zmm7,zmm7,8 + vpxorq zmm4,zmm4,zmm7 + + + + vpclmulqdq zmm7,zmm10,zmm4,0x00 + vpsrldq zmm7,zmm7,4 + vpclmulqdq zmm4,zmm10,zmm4,0x10 + vpslldq zmm4,zmm4,4 + + vpternlogq zmm4,zmm6,zmm7,0x96 + + vmovdqu64 ZMMWORD[320+rsp],zmm4 + + vpclmulqdq zmm6,zmm5,zmm3,0x11 + vpclmulqdq zmm7,zmm5,zmm3,0x00 + vpclmulqdq zmm10,zmm5,zmm3,0x01 + vpclmulqdq zmm5,zmm5,zmm3,0x10 + vpxorq zmm5,zmm5,zmm10 + + vpsrldq zmm10,zmm5,8 + vpslldq zmm5,zmm5,8 + vpxorq zmm6,zmm6,zmm10 + vpxorq zmm5,zmm5,zmm7 + + + + vmovdqu64 zmm10,ZMMWORD[POLY2] + + vpclmulqdq zmm7,zmm10,zmm5,0x01 + vpslldq zmm7,zmm7,8 + vpxorq zmm5,zmm5,zmm7 + + + + vpclmulqdq zmm7,zmm10,zmm5,0x00 + vpsrldq zmm7,zmm7,4 + vpclmulqdq zmm5,zmm10,zmm5,0x10 + vpslldq zmm5,zmm5,4 + + vpternlogq zmm5,zmm6,zmm7,0x96 + + vmovdqu64 ZMMWORD[256+rsp],zmm5 + + vpclmulqdq zmm6,zmm4,zmm3,0x11 + vpclmulqdq zmm7,zmm4,zmm3,0x00 + vpclmulqdq zmm10,zmm4,zmm3,0x01 + vpclmulqdq zmm4,zmm4,zmm3,0x10 + vpxorq zmm4,zmm4,zmm10 + + vpsrldq zmm10,zmm4,8 + vpslldq zmm4,zmm4,8 + vpxorq zmm6,zmm6,zmm10 + vpxorq zmm4,zmm4,zmm7 + + + + vmovdqu64 zmm10,ZMMWORD[POLY2] + + vpclmulqdq zmm7,zmm10,zmm4,0x01 + vpslldq zmm7,zmm7,8 + vpxorq zmm4,zmm4,zmm7 + + + + vpclmulqdq zmm7,zmm10,zmm4,0x00 + vpsrldq zmm7,zmm7,4 + vpclmulqdq zmm4,zmm10,zmm4,0x10 + vpslldq zmm4,zmm4,4 + + vpternlogq zmm4,zmm6,zmm7,0x96 + + vmovdqu64 ZMMWORD[192+rsp],zmm4 + + vpclmulqdq zmm6,zmm5,zmm3,0x11 + vpclmulqdq zmm7,zmm5,zmm3,0x00 + vpclmulqdq zmm10,zmm5,zmm3,0x01 + vpclmulqdq zmm5,zmm5,zmm3,0x10 + vpxorq zmm5,zmm5,zmm10 + + vpsrldq zmm10,zmm5,8 + vpslldq zmm5,zmm5,8 + vpxorq zmm6,zmm6,zmm10 + vpxorq zmm5,zmm5,zmm7 + + + + vmovdqu64 zmm10,ZMMWORD[POLY2] + + vpclmulqdq zmm7,zmm10,zmm5,0x01 + vpslldq zmm7,zmm7,8 + vpxorq zmm5,zmm5,zmm7 + + + + vpclmulqdq zmm7,zmm10,zmm5,0x00 + vpsrldq zmm7,zmm7,4 + vpclmulqdq zmm5,zmm10,zmm5,0x10 + vpslldq zmm5,zmm5,4 + + vpternlogq zmm5,zmm6,zmm7,0x96 + + vmovdqu64 ZMMWORD[128+rsp],zmm5 + + vpclmulqdq zmm6,zmm4,zmm3,0x11 + vpclmulqdq zmm7,zmm4,zmm3,0x00 + vpclmulqdq zmm10,zmm4,zmm3,0x01 + vpclmulqdq zmm4,zmm4,zmm3,0x10 + vpxorq zmm4,zmm4,zmm10 + + vpsrldq zmm10,zmm4,8 + vpslldq zmm4,zmm4,8 + vpxorq zmm6,zmm6,zmm10 + vpxorq zmm4,zmm4,zmm7 + + + + vmovdqu64 zmm10,ZMMWORD[POLY2] + + vpclmulqdq zmm7,zmm10,zmm4,0x01 + vpslldq zmm7,zmm7,8 + vpxorq zmm4,zmm4,zmm7 + + + + vpclmulqdq zmm7,zmm10,zmm4,0x00 + vpsrldq zmm7,zmm7,4 + vpclmulqdq zmm4,zmm10,zmm4,0x10 + vpslldq zmm4,zmm4,4 + + vpternlogq zmm4,zmm6,zmm7,0x96 + + vmovdqu64 ZMMWORD[64+rsp],zmm4 + + vpclmulqdq zmm6,zmm5,zmm3,0x11 + vpclmulqdq zmm7,zmm5,zmm3,0x00 + vpclmulqdq zmm10,zmm5,zmm3,0x01 + vpclmulqdq zmm5,zmm5,zmm3,0x10 + vpxorq zmm5,zmm5,zmm10 + + vpsrldq zmm10,zmm5,8 + vpslldq zmm5,zmm5,8 + vpxorq zmm6,zmm6,zmm10 + vpxorq zmm5,zmm5,zmm7 + + + + vmovdqu64 zmm10,ZMMWORD[POLY2] + + vpclmulqdq zmm7,zmm10,zmm5,0x01 + vpslldq zmm7,zmm7,8 + vpxorq zmm5,zmm5,zmm7 + + + + vpclmulqdq zmm7,zmm10,zmm5,0x00 + vpsrldq zmm7,zmm7,4 + vpclmulqdq zmm5,zmm10,zmm5,0x10 + vpslldq zmm5,zmm5,4 + + vpternlogq zmm5,zmm6,zmm7,0x96 + + vmovdqu64 ZMMWORD[rsp],zmm5 +$L$_skip_hkeys_precomputation_177: + mov r14,1 + add r11,512 + sub r13,512 + + cmp r13,768 + jb NEAR $L$_no_more_big_nblocks_172 +$L$_encrypt_big_nblocks_172: + cmp r15b,240 + jae NEAR $L$_16_blocks_overflow_178 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_178 +$L$_16_blocks_overflow_178: + vpshufb zmm2,zmm2,zmm29 + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_178: + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rsp] + + + + + vshufi64x2 zmm2,zmm5,zmm5,255 + add r15b,16 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + + + + + + + + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + + vpclmulqdq zmm6,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + + vpternlogq zmm6,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + + + + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm21,ZMMWORD[192+r11*1+r9] + + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm26,zmm10,zmm15 + vpxorq zmm24,zmm6,zmm12 + vpxorq zmm25,zmm7,zmm13 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + + + + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + + + + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[192+r11*1+r10],zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 + vmovdqa64 ZMMWORD[1280+rsp],zmm0 + vmovdqa64 ZMMWORD[1344+rsp],zmm3 + vmovdqa64 ZMMWORD[1408+rsp],zmm4 + vmovdqa64 ZMMWORD[1472+rsp],zmm5 + cmp r15b,240 + jae NEAR $L$_16_blocks_overflow_179 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_179 +$L$_16_blocks_overflow_179: + vpshufb zmm2,zmm2,zmm29 + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_179: + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[256+rsp] + + + + + vshufi64x2 zmm2,zmm5,zmm5,255 + add r15b,16 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[320+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + + + + + + + + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + + vpclmulqdq zmm6,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[384+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[448+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + + vpternlogq zmm6,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + + + + vmovdqu8 zmm17,ZMMWORD[256+r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[320+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[384+r11*1+r9] + vmovdqu8 zmm21,ZMMWORD[448+r11*1+r9] + + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vpternlogq zmm24,zmm6,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + + + + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + + + + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[256+r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[320+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[384+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[448+r11*1+r10],zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 + vmovdqa64 ZMMWORD[768+rsp],zmm0 + vmovdqa64 ZMMWORD[832+rsp],zmm3 + vmovdqa64 ZMMWORD[896+rsp],zmm4 + vmovdqa64 ZMMWORD[960+rsp],zmm5 + cmp r15b,240 + jae NEAR $L$_16_blocks_overflow_180 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_180 +$L$_16_blocks_overflow_180: + vpshufb zmm2,zmm2,zmm29 + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_180: + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + + + + + vshufi64x2 zmm2,zmm5,zmm5,255 + add r15b,16 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + + + + + + + + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + + vpclmulqdq zmm6,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + + vpternlogq zmm6,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + + + + vmovdqu8 zmm17,ZMMWORD[512+r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[576+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[640+r11*1+r9] + vmovdqu8 zmm21,ZMMWORD[704+r11*1+r9] + + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + + + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpternlogq zmm6,zmm12,zmm15,0x96 + vpxorq zmm6,zmm6,zmm24 + vpternlogq zmm7,zmm13,zmm10,0x96 + vpxorq zmm7,zmm7,zmm25 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vextracti64x4 ymm12,zmm6,1 + vpxorq ymm6,ymm6,ymm12 + vextracti32x4 xmm12,ymm6,1 + vpxorq xmm6,xmm6,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm6,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + + + + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + + + + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[512+r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[576+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[640+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[704+r11*1+r10],zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 + vmovdqa64 ZMMWORD[1024+rsp],zmm0 + vmovdqa64 ZMMWORD[1088+rsp],zmm3 + vmovdqa64 ZMMWORD[1152+rsp],zmm4 + vmovdqa64 ZMMWORD[1216+rsp],zmm5 + vmovdqa64 zmm14,zmm6 + + add r11,768 + sub r13,768 + cmp r13,768 + jae NEAR $L$_encrypt_big_nblocks_172 + +$L$_no_more_big_nblocks_172: + + cmp r13,512 + jae NEAR $L$_encrypt_32_blocks_172 + + cmp r13,256 + jae NEAR $L$_encrypt_16_blocks_172 +$L$_encrypt_0_blocks_ghash_32_172: + mov r10d,r13d + and r10d,~15 + mov ebx,256 + sub ebx,r10d + vmovdqa64 zmm13,ZMMWORD[768+rsp] + vpxorq zmm13,zmm13,zmm14 + vmovdqu64 zmm12,ZMMWORD[rbx*1+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[832+rsp] + vmovdqu64 zmm12,ZMMWORD[64+rbx*1+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + vpxorq zmm26,zmm4,zmm10 + vpxorq zmm24,zmm0,zmm6 + vpxorq zmm25,zmm3,zmm7 + vpternlogq zmm26,zmm5,zmm11,0x96 + vmovdqa64 zmm13,ZMMWORD[896+rsp] + vmovdqu64 zmm12,ZMMWORD[128+rbx*1+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[960+rsp] + vmovdqu64 zmm12,ZMMWORD[192+rbx*1+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + + vpternlogq zmm26,zmm4,zmm10,0x96 + vpternlogq zmm24,zmm0,zmm6,0x96 + vpternlogq zmm25,zmm3,zmm7,0x96 + vpternlogq zmm26,zmm5,zmm11,0x96 + add ebx,256 + mov r10d,r13d + add r10d,15 + shr r10d,4 + je NEAR $L$_last_num_blocks_is_0_181 + + cmp r10d,8 + je NEAR $L$_last_num_blocks_is_8_181 + jb NEAR $L$_last_num_blocks_is_7_1_181 + + + cmp r10d,12 + je NEAR $L$_last_num_blocks_is_12_181 + jb NEAR $L$_last_num_blocks_is_11_9_181 + + + cmp r10d,15 + je NEAR $L$_last_num_blocks_is_15_181 + ja NEAR $L$_last_num_blocks_is_16_181 + cmp r10d,14 + je NEAR $L$_last_num_blocks_is_14_181 + jmp NEAR $L$_last_num_blocks_is_13_181 + +$L$_last_num_blocks_is_11_9_181: + + cmp r10d,10 + je NEAR $L$_last_num_blocks_is_10_181 + ja NEAR $L$_last_num_blocks_is_11_181 + jmp NEAR $L$_last_num_blocks_is_9_181 + +$L$_last_num_blocks_is_7_1_181: + cmp r10d,4 + je NEAR $L$_last_num_blocks_is_4_181 + jb NEAR $L$_last_num_blocks_is_3_1_181 + + cmp r10d,6 + ja NEAR $L$_last_num_blocks_is_7_181 + je NEAR $L$_last_num_blocks_is_6_181 + jmp NEAR $L$_last_num_blocks_is_5_181 + +$L$_last_num_blocks_is_3_1_181: + + cmp r10d,2 + ja NEAR $L$_last_num_blocks_is_3_181 + je NEAR $L$_last_num_blocks_is_2_181 +$L$_last_num_blocks_is_1_181: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,255 + jae NEAR $L$_16_blocks_overflow_182 + vpaddd xmm0,xmm2,xmm28 + jmp NEAR $L$_16_blocks_ok_182 + +$L$_16_blocks_overflow_182: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb xmm0,xmm0,xmm29 +$L$_16_blocks_ok_182: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm0,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 xmm17{k1}{z},[r11*1+r9] + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc xmm0,xmm0,xmm31 + vaesenclast xmm0,xmm0,xmm30 + vpxorq xmm0,xmm0,xmm17 + vextracti32x4 xmm11,zmm0,0 + mov r10,QWORD[120+rbp] + vmovdqu8 XMMWORD[r11*1+r10]{k1},xmm0 + vmovdqu8 zmm0{k1}{z},zmm0 + vpshufb xmm17,xmm0,xmm29 + vextracti32x4 xmm7,zmm17,0 + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_183 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm17,xmm1,0x01 + vpclmulqdq xmm5,xmm17,xmm1,0x10 + vpclmulqdq xmm0,xmm17,xmm1,0x11 + vpclmulqdq xmm3,xmm17,xmm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_183 +$L$_small_initial_partial_block_183: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + + + vpsrldq zmm0,zmm26,8 + vpslldq zmm3,zmm26,8 + vpxorq zmm24,zmm24,zmm0 + vpxorq zmm25,zmm25,zmm3 + vextracti64x4 ymm0,zmm24,1 + vpxorq ymm24,ymm24,ymm0 + vextracti32x4 xmm0,ymm24,1 + vpxorq xmm24,xmm24,xmm0 + vextracti64x4 ymm3,zmm25,1 + vpxorq ymm25,ymm25,ymm3 + vextracti32x4 xmm3,ymm25,1 + vpxorq xmm25,xmm25,xmm3 + vmovdqa64 xmm0,XMMWORD[POLY2] + + + vpclmulqdq xmm3,xmm0,xmm25,0x01 + vpslldq xmm3,xmm3,8 + vpxorq xmm3,xmm25,xmm3 + + + vpclmulqdq xmm4,xmm0,xmm3,0x00 + vpsrldq xmm4,xmm4,4 + vpclmulqdq xmm14,xmm0,xmm3,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm4,xmm24,0x96 + + + + + + + + + + + + + vpxorq xmm14,xmm14,xmm7 + + jmp NEAR $L$_after_reduction_183 +$L$_small_initial_compute_done_183: +$L$_after_reduction_183: + jmp NEAR $L$_last_blocks_done_181 +$L$_last_num_blocks_is_2_181: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,254 + jae NEAR $L$_16_blocks_overflow_184 + vpaddd ymm0,ymm2,ymm28 + jmp NEAR $L$_16_blocks_ok_184 + +$L$_16_blocks_overflow_184: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb ymm0,ymm0,ymm29 +$L$_16_blocks_ok_184: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm0,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 ymm17{k1}{z},[r11*1+r9] + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc ymm0,ymm0,ymm31 + vaesenclast ymm0,ymm0,ymm30 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm11,zmm0,1 + mov r10,QWORD[120+rbp] + vmovdqu8 YMMWORD[r11*1+r10]{k1},ymm0 + vmovdqu8 zmm0{k1}{z},zmm0 + vpshufb ymm17,ymm0,ymm29 + vextracti32x4 xmm7,zmm17,1 + sub r13,16 * (2 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_185 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm17,ymm1,0x01 + vpclmulqdq ymm5,ymm17,ymm1,0x10 + vpclmulqdq ymm0,ymm17,ymm1,0x11 + vpclmulqdq ymm3,ymm17,ymm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_185 +$L$_small_initial_partial_block_185: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm17,xmm1,0x01 + vpclmulqdq xmm5,xmm17,xmm1,0x10 + vpclmulqdq xmm0,xmm17,xmm1,0x11 + vpclmulqdq xmm3,xmm17,xmm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_185: + + or r13,r13 + je NEAR $L$_after_reduction_185 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_185: + jmp NEAR $L$_last_blocks_done_181 +$L$_last_num_blocks_is_3_181: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,253 + jae NEAR $L$_16_blocks_overflow_186 + vpaddd zmm0,zmm2,zmm28 + jmp NEAR $L$_16_blocks_ok_186 + +$L$_16_blocks_overflow_186: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb zmm0,zmm0,zmm29 +$L$_16_blocks_ok_186: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm0,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17{k1}{z},[r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vpxorq zmm0,zmm0,zmm17 + vextracti32x4 xmm11,zmm0,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10]{k1},zmm0 + vmovdqu8 zmm0{k1}{z},zmm0 + vpshufb zmm17,zmm0,zmm29 + vextracti32x4 xmm7,zmm17,2 + sub r13,16 * (3 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_187 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_187 +$L$_small_initial_partial_block_187: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm17,ymm1,0x01 + vpclmulqdq ymm5,ymm17,ymm1,0x10 + vpclmulqdq ymm0,ymm17,ymm1,0x11 + vpclmulqdq ymm3,ymm17,ymm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_187: + + or r13,r13 + je NEAR $L$_after_reduction_187 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_187: + jmp NEAR $L$_last_blocks_done_181 +$L$_last_num_blocks_is_4_181: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,252 + jae NEAR $L$_16_blocks_overflow_188 + vpaddd zmm0,zmm2,zmm28 + jmp NEAR $L$_16_blocks_ok_188 + +$L$_16_blocks_overflow_188: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb zmm0,zmm0,zmm29 +$L$_16_blocks_ok_188: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm0,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17{k1}{z},[r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vpxorq zmm0,zmm0,zmm17 + vextracti32x4 xmm11,zmm0,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10]{k1},zmm0 + vmovdqu8 zmm0{k1}{z},zmm0 + vpshufb zmm17,zmm0,zmm29 + vextracti32x4 xmm7,zmm17,3 + sub r13,16 * (4 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_189 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_189 +$L$_small_initial_partial_block_189: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_189: + + or r13,r13 + je NEAR $L$_after_reduction_189 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_189: + jmp NEAR $L$_last_blocks_done_181 +$L$_last_num_blocks_is_5_181: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,251 + jae NEAR $L$_16_blocks_overflow_190 + vpaddd zmm0,zmm2,zmm28 + vpaddd xmm3,xmm0,xmm27 + jmp NEAR $L$_16_blocks_ok_190 + +$L$_16_blocks_overflow_190: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb xmm3,xmm3,xmm29 +$L$_16_blocks_ok_190: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm3,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 xmm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast xmm3,xmm3,xmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq xmm3,xmm3,xmm19 + vextracti32x4 xmm11,zmm3,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 XMMWORD[64+r11*1+r10]{k1},xmm3 + vmovdqu8 zmm3{k1}{z},zmm3 + vpshufb zmm17,zmm0,zmm29 + vpshufb xmm19,xmm3,xmm29 + vextracti32x4 xmm7,zmm19,0 + sub r13,16 * (5 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_191 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm19,xmm1,0x01 + vpclmulqdq xmm5,xmm19,xmm1,0x10 + vpclmulqdq xmm0,xmm19,xmm1,0x11 + vpclmulqdq xmm3,xmm19,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_191 +$L$_small_initial_partial_block_191: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_191: + + or r13,r13 + je NEAR $L$_after_reduction_191 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_191: + jmp NEAR $L$_last_blocks_done_181 +$L$_last_num_blocks_is_6_181: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,250 + jae NEAR $L$_16_blocks_overflow_192 + vpaddd zmm0,zmm2,zmm28 + vpaddd ymm3,ymm0,ymm27 + jmp NEAR $L$_16_blocks_ok_192 + +$L$_16_blocks_overflow_192: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb ymm3,ymm3,ymm29 +$L$_16_blocks_ok_192: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm3,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 ymm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast ymm3,ymm3,ymm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm11,zmm3,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 YMMWORD[64+r11*1+r10]{k1},ymm3 + vmovdqu8 zmm3{k1}{z},zmm3 + vpshufb zmm17,zmm0,zmm29 + vpshufb ymm19,ymm3,ymm29 + vextracti32x4 xmm7,zmm19,1 + sub r13,16 * (6 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_193 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm19,ymm1,0x01 + vpclmulqdq ymm5,ymm19,ymm1,0x10 + vpclmulqdq ymm0,ymm19,ymm1,0x11 + vpclmulqdq ymm3,ymm19,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_193 +$L$_small_initial_partial_block_193: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm19,xmm1,0x01 + vpclmulqdq xmm5,xmm19,xmm1,0x10 + vpclmulqdq xmm0,xmm19,xmm1,0x11 + vpclmulqdq xmm3,xmm19,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_193: + + or r13,r13 + je NEAR $L$_after_reduction_193 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_193: + jmp NEAR $L$_last_blocks_done_181 +$L$_last_num_blocks_is_7_181: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,249 + jae NEAR $L$_16_blocks_overflow_194 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + jmp NEAR $L$_16_blocks_ok_194 + +$L$_16_blocks_overflow_194: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 +$L$_16_blocks_ok_194: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm3,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti32x4 xmm11,zmm3,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10]{k1},zmm3 + vmovdqu8 zmm3{k1}{z},zmm3 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vextracti32x4 xmm7,zmm19,2 + sub r13,16 * (7 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_195 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm19,zmm1,0x01 + vpclmulqdq zmm5,zmm19,zmm1,0x10 + vpclmulqdq zmm0,zmm19,zmm1,0x11 + vpclmulqdq zmm3,zmm19,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_195 +$L$_small_initial_partial_block_195: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm19,ymm1,0x01 + vpclmulqdq ymm5,ymm19,ymm1,0x10 + vpclmulqdq ymm0,ymm19,ymm1,0x11 + vpclmulqdq ymm3,ymm19,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_195: + + or r13,r13 + je NEAR $L$_after_reduction_195 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_195: + jmp NEAR $L$_last_blocks_done_181 +$L$_last_num_blocks_is_8_181: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,248 + jae NEAR $L$_16_blocks_overflow_196 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + jmp NEAR $L$_16_blocks_ok_196 + +$L$_16_blocks_overflow_196: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 +$L$_16_blocks_ok_196: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm3,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti32x4 xmm11,zmm3,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10]{k1},zmm3 + vmovdqu8 zmm3{k1}{z},zmm3 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vextracti32x4 xmm7,zmm19,3 + sub r13,16 * (8 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_197 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_197 +$L$_small_initial_partial_block_197: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm19,zmm1,0x01 + vpclmulqdq zmm5,zmm19,zmm1,0x10 + vpclmulqdq zmm0,zmm19,zmm1,0x11 + vpclmulqdq zmm3,zmm19,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_197: + + or r13,r13 + je NEAR $L$_after_reduction_197 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_197: + jmp NEAR $L$_last_blocks_done_181 +$L$_last_num_blocks_is_9_181: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,247 + jae NEAR $L$_16_blocks_overflow_198 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd xmm4,xmm3,xmm27 + jmp NEAR $L$_16_blocks_ok_198 + +$L$_16_blocks_overflow_198: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb xmm4,xmm4,xmm29 +$L$_16_blocks_ok_198: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm4,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 xmm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast xmm4,xmm4,xmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq xmm4,xmm4,xmm20 + vextracti32x4 xmm11,zmm4,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 XMMWORD[128+r11*1+r10]{k1},xmm4 + vmovdqu8 zmm4{k1}{z},zmm4 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb xmm20,xmm4,xmm29 + vextracti32x4 xmm7,zmm20,0 + sub r13,16 * (9 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_199 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm20,xmm1,0x01 + vpclmulqdq xmm5,xmm20,xmm1,0x10 + vpclmulqdq xmm0,xmm20,xmm1,0x11 + vpclmulqdq xmm3,xmm20,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_199 +$L$_small_initial_partial_block_199: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_199: + + or r13,r13 + je NEAR $L$_after_reduction_199 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_199: + jmp NEAR $L$_last_blocks_done_181 +$L$_last_num_blocks_is_10_181: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,246 + jae NEAR $L$_16_blocks_overflow_200 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd ymm4,ymm3,ymm27 + jmp NEAR $L$_16_blocks_ok_200 + +$L$_16_blocks_overflow_200: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb ymm4,ymm4,ymm29 +$L$_16_blocks_ok_200: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm4,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 ymm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast ymm4,ymm4,ymm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq ymm4,ymm4,ymm20 + vextracti32x4 xmm11,zmm4,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 YMMWORD[128+r11*1+r10]{k1},ymm4 + vmovdqu8 zmm4{k1}{z},zmm4 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb ymm20,ymm4,ymm29 + vextracti32x4 xmm7,zmm20,1 + sub r13,16 * (10 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_201 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm20,ymm1,0x01 + vpclmulqdq ymm5,ymm20,ymm1,0x10 + vpclmulqdq ymm0,ymm20,ymm1,0x11 + vpclmulqdq ymm3,ymm20,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_201 +$L$_small_initial_partial_block_201: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm20,xmm1,0x01 + vpclmulqdq xmm5,xmm20,xmm1,0x10 + vpclmulqdq xmm0,xmm20,xmm1,0x11 + vpclmulqdq xmm3,xmm20,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_201: + + or r13,r13 + je NEAR $L$_after_reduction_201 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_201: + jmp NEAR $L$_last_blocks_done_181 +$L$_last_num_blocks_is_11_181: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,245 + jae NEAR $L$_16_blocks_overflow_202 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + jmp NEAR $L$_16_blocks_ok_202 + +$L$_16_blocks_overflow_202: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 +$L$_16_blocks_ok_202: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm4,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vextracti32x4 xmm11,zmm4,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10]{k1},zmm4 + vmovdqu8 zmm4{k1}{z},zmm4 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb zmm20,zmm4,zmm29 + vextracti32x4 xmm7,zmm20,2 + sub r13,16 * (11 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_203 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm20,zmm1,0x01 + vpclmulqdq zmm5,zmm20,zmm1,0x10 + vpclmulqdq zmm0,zmm20,zmm1,0x11 + vpclmulqdq zmm3,zmm20,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_203 +$L$_small_initial_partial_block_203: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm20,ymm1,0x01 + vpclmulqdq ymm5,ymm20,ymm1,0x10 + vpclmulqdq ymm0,ymm20,ymm1,0x11 + vpclmulqdq ymm3,ymm20,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_203: + + or r13,r13 + je NEAR $L$_after_reduction_203 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_203: + jmp NEAR $L$_last_blocks_done_181 +$L$_last_num_blocks_is_12_181: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,244 + jae NEAR $L$_16_blocks_overflow_204 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + jmp NEAR $L$_16_blocks_ok_204 + +$L$_16_blocks_overflow_204: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 +$L$_16_blocks_ok_204: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm4,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vextracti32x4 xmm11,zmm4,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10]{k1},zmm4 + vmovdqu8 zmm4{k1}{z},zmm4 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb zmm20,zmm4,zmm29 + vextracti32x4 xmm7,zmm20,3 + sub r13,16 * (12 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_205 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[160+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_205 +$L$_small_initial_partial_block_205: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm20,zmm1,0x01 + vpclmulqdq zmm5,zmm20,zmm1,0x10 + vpclmulqdq zmm0,zmm20,zmm1,0x11 + vpclmulqdq zmm3,zmm20,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_205: + + or r13,r13 + je NEAR $L$_after_reduction_205 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_205: + jmp NEAR $L$_last_blocks_done_181 +$L$_last_num_blocks_is_13_181: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,243 + jae NEAR $L$_16_blocks_overflow_206 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd xmm5,xmm4,xmm27 + jmp NEAR $L$_16_blocks_ok_206 + +$L$_16_blocks_overflow_206: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb xmm5,xmm5,xmm29 +$L$_16_blocks_ok_206: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm5,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 xmm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast xmm5,xmm5,xmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq xmm5,xmm5,xmm21 + vextracti32x4 xmm11,zmm5,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 XMMWORD[192+r11*1+r10]{k1},xmm5 + vmovdqu8 zmm5{k1}{z},zmm5 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb zmm20,zmm4,zmm29 + vpshufb xmm21,xmm5,xmm29 + vextracti32x4 xmm7,zmm21,0 + sub r13,16 * (13 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_207 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[144+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm21,xmm1,0x01 + vpclmulqdq xmm5,xmm21,xmm1,0x10 + vpclmulqdq xmm0,xmm21,xmm1,0x11 + vpclmulqdq xmm3,xmm21,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_207 +$L$_small_initial_partial_block_207: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[160+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_207: + + or r13,r13 + je NEAR $L$_after_reduction_207 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_207: + jmp NEAR $L$_last_blocks_done_181 +$L$_last_num_blocks_is_14_181: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,242 + jae NEAR $L$_16_blocks_overflow_208 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd ymm5,ymm4,ymm27 + jmp NEAR $L$_16_blocks_ok_208 + +$L$_16_blocks_overflow_208: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb ymm5,ymm5,ymm29 +$L$_16_blocks_ok_208: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm5,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 ymm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast ymm5,ymm5,ymm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq ymm5,ymm5,ymm21 + vextracti32x4 xmm11,zmm5,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 YMMWORD[192+r11*1+r10]{k1},ymm5 + vmovdqu8 zmm5{k1}{z},zmm5 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb zmm20,zmm4,zmm29 + vpshufb ymm21,ymm5,ymm29 + vextracti32x4 xmm7,zmm21,1 + sub r13,16 * (14 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_209 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[128+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm21,ymm1,0x01 + vpclmulqdq ymm5,ymm21,ymm1,0x10 + vpclmulqdq ymm0,ymm21,ymm1,0x11 + vpclmulqdq ymm3,ymm21,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_209 +$L$_small_initial_partial_block_209: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[144+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm21,xmm1,0x01 + vpclmulqdq xmm5,xmm21,xmm1,0x10 + vpclmulqdq xmm0,xmm21,xmm1,0x11 + vpclmulqdq xmm3,xmm21,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_209: + + or r13,r13 + je NEAR $L$_after_reduction_209 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_209: + jmp NEAR $L$_last_blocks_done_181 +$L$_last_num_blocks_is_15_181: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,241 + jae NEAR $L$_16_blocks_overflow_210 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_210 + +$L$_16_blocks_overflow_210: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_210: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm5,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + vextracti32x4 xmm11,zmm5,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[192+r11*1+r10]{k1},zmm5 + vmovdqu8 zmm5{k1}{z},zmm5 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb zmm20,zmm4,zmm29 + vpshufb zmm21,zmm5,zmm29 + vextracti32x4 xmm7,zmm21,2 + sub r13,16 * (15 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_211 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[112+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm21,zmm1,0x01 + vpclmulqdq zmm5,zmm21,zmm1,0x10 + vpclmulqdq zmm0,zmm21,zmm1,0x11 + vpclmulqdq zmm3,zmm21,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_211 +$L$_small_initial_partial_block_211: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[128+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm21,ymm1,0x01 + vpclmulqdq ymm5,ymm21,ymm1,0x10 + vpclmulqdq ymm0,ymm21,ymm1,0x11 + vpclmulqdq ymm3,ymm21,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_211: + + or r13,r13 + je NEAR $L$_after_reduction_211 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_211: + jmp NEAR $L$_last_blocks_done_181 +$L$_last_num_blocks_is_16_181: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,240 + jae NEAR $L$_16_blocks_overflow_212 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_212 + +$L$_16_blocks_overflow_212: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_212: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm5,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + vextracti32x4 xmm11,zmm5,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[192+r11*1+r10]{k1},zmm5 + vmovdqu8 zmm5{k1}{z},zmm5 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb zmm20,zmm4,zmm29 + vpshufb zmm21,zmm5,zmm29 + vextracti32x4 xmm7,zmm21,3 + sub r13,16 * (16 - 1) +$L$_small_initial_partial_block_213: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[112+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm21,zmm1,0x01 + vpclmulqdq zmm5,zmm21,zmm1,0x10 + vpclmulqdq zmm0,zmm21,zmm1,0x11 + vpclmulqdq zmm3,zmm21,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_213: + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_213: + jmp NEAR $L$_last_blocks_done_181 +$L$_last_num_blocks_is_0_181: + vmovdqa64 zmm13,ZMMWORD[1024+rsp] + vmovdqu64 zmm12,ZMMWORD[rbx*1+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[1088+rsp] + vmovdqu64 zmm12,ZMMWORD[64+rbx*1+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + vpternlogq zmm26,zmm4,zmm10,0x96 + vpternlogq zmm24,zmm0,zmm6,0x96 + vpternlogq zmm25,zmm3,zmm7,0x96 + vpternlogq zmm26,zmm5,zmm11,0x96 + vmovdqa64 zmm13,ZMMWORD[1152+rsp] + vmovdqu64 zmm12,ZMMWORD[128+rbx*1+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[1216+rsp] + vmovdqu64 zmm12,ZMMWORD[192+rbx*1+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + + vpternlogq zmm26,zmm4,zmm10,0x96 + vpternlogq zmm24,zmm0,zmm6,0x96 + vpternlogq zmm25,zmm3,zmm7,0x96 + vpternlogq zmm26,zmm5,zmm11,0x96 + + vpsrldq zmm0,zmm26,8 + vpslldq zmm3,zmm26,8 + vpxorq zmm24,zmm24,zmm0 + vpxorq zmm25,zmm25,zmm3 + vextracti64x4 ymm0,zmm24,1 + vpxorq ymm24,ymm24,ymm0 + vextracti32x4 xmm0,ymm24,1 + vpxorq xmm24,xmm24,xmm0 + vextracti64x4 ymm3,zmm25,1 + vpxorq ymm25,ymm25,ymm3 + vextracti32x4 xmm3,ymm25,1 + vpxorq xmm25,xmm25,xmm3 + vmovdqa64 xmm4,XMMWORD[POLY2] + + + vpclmulqdq xmm0,xmm4,xmm25,0x01 + vpslldq xmm0,xmm0,8 + vpxorq xmm0,xmm25,xmm0 + + + vpclmulqdq xmm3,xmm4,xmm0,0x00 + vpsrldq xmm3,xmm3,4 + vpclmulqdq xmm14,xmm4,xmm0,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm3,xmm24,0x96 + +$L$_last_blocks_done_181: + vpshufb xmm2,xmm2,xmm29 + jmp NEAR $L$_ghash_done_172 +$L$_encrypt_32_blocks_172: + cmp r15b,240 + jae NEAR $L$_16_blocks_overflow_214 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_214 +$L$_16_blocks_overflow_214: + vpshufb zmm2,zmm2,zmm29 + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_214: + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rsp] + + + + + vshufi64x2 zmm2,zmm5,zmm5,255 + add r15b,16 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + + + + + + + + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + + vpclmulqdq zmm6,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + + vpternlogq zmm6,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + + + + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm21,ZMMWORD[192+r11*1+r9] + + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm26,zmm10,zmm15 + vpxorq zmm24,zmm6,zmm12 + vpxorq zmm25,zmm7,zmm13 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + + + + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + + + + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[192+r11*1+r10],zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 + vmovdqa64 ZMMWORD[1280+rsp],zmm0 + vmovdqa64 ZMMWORD[1344+rsp],zmm3 + vmovdqa64 ZMMWORD[1408+rsp],zmm4 + vmovdqa64 ZMMWORD[1472+rsp],zmm5 + cmp r15b,240 + jae NEAR $L$_16_blocks_overflow_215 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_215 +$L$_16_blocks_overflow_215: + vpshufb zmm2,zmm2,zmm29 + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_215: + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[256+rsp] + + + + + vshufi64x2 zmm2,zmm5,zmm5,255 + add r15b,16 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[320+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + + + + + + + + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + + vpclmulqdq zmm6,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[384+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[448+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + + vpternlogq zmm6,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + + + + vmovdqu8 zmm17,ZMMWORD[256+r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[320+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[384+r11*1+r9] + vmovdqu8 zmm21,ZMMWORD[448+r11*1+r9] + + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vpternlogq zmm24,zmm6,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + + + + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + + + + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[256+r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[320+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[384+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[448+r11*1+r10],zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 + vmovdqa64 ZMMWORD[768+rsp],zmm0 + vmovdqa64 ZMMWORD[832+rsp],zmm3 + vmovdqa64 ZMMWORD[896+rsp],zmm4 + vmovdqa64 ZMMWORD[960+rsp],zmm5 + vmovdqa64 zmm13,ZMMWORD[1280+rsp] + vmovdqu64 zmm12,ZMMWORD[512+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[1344+rsp] + vmovdqu64 zmm12,ZMMWORD[576+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + vpternlogq zmm26,zmm4,zmm10,0x96 + vpternlogq zmm24,zmm0,zmm6,0x96 + vpternlogq zmm25,zmm3,zmm7,0x96 + vpternlogq zmm26,zmm5,zmm11,0x96 + vmovdqa64 zmm13,ZMMWORD[1408+rsp] + vmovdqu64 zmm12,ZMMWORD[640+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[1472+rsp] + vmovdqu64 zmm12,ZMMWORD[704+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + + vpternlogq zmm26,zmm4,zmm10,0x96 + vpternlogq zmm24,zmm0,zmm6,0x96 + vpternlogq zmm25,zmm3,zmm7,0x96 + vpternlogq zmm26,zmm5,zmm11,0x96 + + vpsrldq zmm0,zmm26,8 + vpslldq zmm3,zmm26,8 + vpxorq zmm24,zmm24,zmm0 + vpxorq zmm25,zmm25,zmm3 + vextracti64x4 ymm0,zmm24,1 + vpxorq ymm24,ymm24,ymm0 + vextracti32x4 xmm0,ymm24,1 + vpxorq xmm24,xmm24,xmm0 + vextracti64x4 ymm3,zmm25,1 + vpxorq ymm25,ymm25,ymm3 + vextracti32x4 xmm3,ymm25,1 + vpxorq xmm25,xmm25,xmm3 + vmovdqa64 xmm4,XMMWORD[POLY2] + + + vpclmulqdq xmm0,xmm4,xmm25,0x01 + vpslldq xmm0,xmm0,8 + vpxorq xmm0,xmm25,xmm0 + + + vpclmulqdq xmm3,xmm4,xmm0,0x00 + vpsrldq xmm3,xmm3,4 + vpclmulqdq xmm14,xmm4,xmm0,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm3,xmm24,0x96 + + sub r13,512 + add r11,512 + mov r10d,r13d + and r10d,~15 + mov ebx,512 + sub ebx,r10d + mov r10d,r13d + add r10d,15 + shr r10d,4 + je NEAR $L$_last_num_blocks_is_0_216 + + cmp r10d,8 + je NEAR $L$_last_num_blocks_is_8_216 + jb NEAR $L$_last_num_blocks_is_7_1_216 + + + cmp r10d,12 + je NEAR $L$_last_num_blocks_is_12_216 + jb NEAR $L$_last_num_blocks_is_11_9_216 + + + cmp r10d,15 + je NEAR $L$_last_num_blocks_is_15_216 + ja NEAR $L$_last_num_blocks_is_16_216 + cmp r10d,14 + je NEAR $L$_last_num_blocks_is_14_216 + jmp NEAR $L$_last_num_blocks_is_13_216 + +$L$_last_num_blocks_is_11_9_216: + + cmp r10d,10 + je NEAR $L$_last_num_blocks_is_10_216 + ja NEAR $L$_last_num_blocks_is_11_216 + jmp NEAR $L$_last_num_blocks_is_9_216 + +$L$_last_num_blocks_is_7_1_216: + cmp r10d,4 + je NEAR $L$_last_num_blocks_is_4_216 + jb NEAR $L$_last_num_blocks_is_3_1_216 + + cmp r10d,6 + ja NEAR $L$_last_num_blocks_is_7_216 + je NEAR $L$_last_num_blocks_is_6_216 + jmp NEAR $L$_last_num_blocks_is_5_216 + +$L$_last_num_blocks_is_3_1_216: + + cmp r10d,2 + ja NEAR $L$_last_num_blocks_is_3_216 + je NEAR $L$_last_num_blocks_is_2_216 +$L$_last_num_blocks_is_1_216: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,255 + jae NEAR $L$_16_blocks_overflow_217 + vpaddd xmm0,xmm2,xmm28 + jmp NEAR $L$_16_blocks_ok_217 + +$L$_16_blocks_overflow_217: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb xmm0,xmm0,xmm29 +$L$_16_blocks_ok_217: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm0,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 xmm17{k1}{z},[r11*1+r9] + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc xmm0,xmm0,xmm31 + vaesenclast xmm0,xmm0,xmm30 + vpxorq xmm0,xmm0,xmm17 + vextracti32x4 xmm11,zmm0,0 + mov r10,QWORD[120+rbp] + vmovdqu8 XMMWORD[r11*1+r10]{k1},xmm0 + vmovdqu8 zmm0{k1}{z},zmm0 + vpshufb xmm17,xmm0,xmm29 + vextracti32x4 xmm7,zmm17,0 + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_218 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm17,xmm1,0x01 + vpclmulqdq xmm5,xmm17,xmm1,0x10 + vpclmulqdq xmm0,xmm17,xmm1,0x11 + vpclmulqdq xmm3,xmm17,xmm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_218 +$L$_small_initial_partial_block_218: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + + + vpsrldq zmm0,zmm26,8 + vpslldq zmm3,zmm26,8 + vpxorq zmm24,zmm24,zmm0 + vpxorq zmm25,zmm25,zmm3 + vextracti64x4 ymm0,zmm24,1 + vpxorq ymm24,ymm24,ymm0 + vextracti32x4 xmm0,ymm24,1 + vpxorq xmm24,xmm24,xmm0 + vextracti64x4 ymm3,zmm25,1 + vpxorq ymm25,ymm25,ymm3 + vextracti32x4 xmm3,ymm25,1 + vpxorq xmm25,xmm25,xmm3 + vmovdqa64 xmm0,XMMWORD[POLY2] + + + vpclmulqdq xmm3,xmm0,xmm25,0x01 + vpslldq xmm3,xmm3,8 + vpxorq xmm3,xmm25,xmm3 + + + vpclmulqdq xmm4,xmm0,xmm3,0x00 + vpsrldq xmm4,xmm4,4 + vpclmulqdq xmm14,xmm0,xmm3,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm4,xmm24,0x96 + + + + + + + + + + + + + vpxorq xmm14,xmm14,xmm7 + + jmp NEAR $L$_after_reduction_218 +$L$_small_initial_compute_done_218: +$L$_after_reduction_218: + jmp NEAR $L$_last_blocks_done_216 +$L$_last_num_blocks_is_2_216: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,254 + jae NEAR $L$_16_blocks_overflow_219 + vpaddd ymm0,ymm2,ymm28 + jmp NEAR $L$_16_blocks_ok_219 + +$L$_16_blocks_overflow_219: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb ymm0,ymm0,ymm29 +$L$_16_blocks_ok_219: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm0,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 ymm17{k1}{z},[r11*1+r9] + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc ymm0,ymm0,ymm31 + vaesenclast ymm0,ymm0,ymm30 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm11,zmm0,1 + mov r10,QWORD[120+rbp] + vmovdqu8 YMMWORD[r11*1+r10]{k1},ymm0 + vmovdqu8 zmm0{k1}{z},zmm0 + vpshufb ymm17,ymm0,ymm29 + vextracti32x4 xmm7,zmm17,1 + sub r13,16 * (2 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_220 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm17,ymm1,0x01 + vpclmulqdq ymm5,ymm17,ymm1,0x10 + vpclmulqdq ymm0,ymm17,ymm1,0x11 + vpclmulqdq ymm3,ymm17,ymm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_220 +$L$_small_initial_partial_block_220: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm17,xmm1,0x01 + vpclmulqdq xmm5,xmm17,xmm1,0x10 + vpclmulqdq xmm0,xmm17,xmm1,0x11 + vpclmulqdq xmm3,xmm17,xmm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_220: + + or r13,r13 + je NEAR $L$_after_reduction_220 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_220: + jmp NEAR $L$_last_blocks_done_216 +$L$_last_num_blocks_is_3_216: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,253 + jae NEAR $L$_16_blocks_overflow_221 + vpaddd zmm0,zmm2,zmm28 + jmp NEAR $L$_16_blocks_ok_221 + +$L$_16_blocks_overflow_221: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb zmm0,zmm0,zmm29 +$L$_16_blocks_ok_221: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm0,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17{k1}{z},[r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vpxorq zmm0,zmm0,zmm17 + vextracti32x4 xmm11,zmm0,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10]{k1},zmm0 + vmovdqu8 zmm0{k1}{z},zmm0 + vpshufb zmm17,zmm0,zmm29 + vextracti32x4 xmm7,zmm17,2 + sub r13,16 * (3 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_222 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_222 +$L$_small_initial_partial_block_222: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm17,ymm1,0x01 + vpclmulqdq ymm5,ymm17,ymm1,0x10 + vpclmulqdq ymm0,ymm17,ymm1,0x11 + vpclmulqdq ymm3,ymm17,ymm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_222: + + or r13,r13 + je NEAR $L$_after_reduction_222 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_222: + jmp NEAR $L$_last_blocks_done_216 +$L$_last_num_blocks_is_4_216: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,252 + jae NEAR $L$_16_blocks_overflow_223 + vpaddd zmm0,zmm2,zmm28 + jmp NEAR $L$_16_blocks_ok_223 + +$L$_16_blocks_overflow_223: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb zmm0,zmm0,zmm29 +$L$_16_blocks_ok_223: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm0,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17{k1}{z},[r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vpxorq zmm0,zmm0,zmm17 + vextracti32x4 xmm11,zmm0,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10]{k1},zmm0 + vmovdqu8 zmm0{k1}{z},zmm0 + vpshufb zmm17,zmm0,zmm29 + vextracti32x4 xmm7,zmm17,3 + sub r13,16 * (4 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_224 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_224 +$L$_small_initial_partial_block_224: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_224: + + or r13,r13 + je NEAR $L$_after_reduction_224 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_224: + jmp NEAR $L$_last_blocks_done_216 +$L$_last_num_blocks_is_5_216: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,251 + jae NEAR $L$_16_blocks_overflow_225 + vpaddd zmm0,zmm2,zmm28 + vpaddd xmm3,xmm0,xmm27 + jmp NEAR $L$_16_blocks_ok_225 + +$L$_16_blocks_overflow_225: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb xmm3,xmm3,xmm29 +$L$_16_blocks_ok_225: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm3,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 xmm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast xmm3,xmm3,xmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq xmm3,xmm3,xmm19 + vextracti32x4 xmm11,zmm3,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 XMMWORD[64+r11*1+r10]{k1},xmm3 + vmovdqu8 zmm3{k1}{z},zmm3 + vpshufb zmm17,zmm0,zmm29 + vpshufb xmm19,xmm3,xmm29 + vextracti32x4 xmm7,zmm19,0 + sub r13,16 * (5 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_226 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm19,xmm1,0x01 + vpclmulqdq xmm5,xmm19,xmm1,0x10 + vpclmulqdq xmm0,xmm19,xmm1,0x11 + vpclmulqdq xmm3,xmm19,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_226 +$L$_small_initial_partial_block_226: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_226: + + or r13,r13 + je NEAR $L$_after_reduction_226 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_226: + jmp NEAR $L$_last_blocks_done_216 +$L$_last_num_blocks_is_6_216: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,250 + jae NEAR $L$_16_blocks_overflow_227 + vpaddd zmm0,zmm2,zmm28 + vpaddd ymm3,ymm0,ymm27 + jmp NEAR $L$_16_blocks_ok_227 + +$L$_16_blocks_overflow_227: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb ymm3,ymm3,ymm29 +$L$_16_blocks_ok_227: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm3,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 ymm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast ymm3,ymm3,ymm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm11,zmm3,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 YMMWORD[64+r11*1+r10]{k1},ymm3 + vmovdqu8 zmm3{k1}{z},zmm3 + vpshufb zmm17,zmm0,zmm29 + vpshufb ymm19,ymm3,ymm29 + vextracti32x4 xmm7,zmm19,1 + sub r13,16 * (6 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_228 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm19,ymm1,0x01 + vpclmulqdq ymm5,ymm19,ymm1,0x10 + vpclmulqdq ymm0,ymm19,ymm1,0x11 + vpclmulqdq ymm3,ymm19,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_228 +$L$_small_initial_partial_block_228: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm19,xmm1,0x01 + vpclmulqdq xmm5,xmm19,xmm1,0x10 + vpclmulqdq xmm0,xmm19,xmm1,0x11 + vpclmulqdq xmm3,xmm19,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_228: + + or r13,r13 + je NEAR $L$_after_reduction_228 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_228: + jmp NEAR $L$_last_blocks_done_216 +$L$_last_num_blocks_is_7_216: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,249 + jae NEAR $L$_16_blocks_overflow_229 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + jmp NEAR $L$_16_blocks_ok_229 + +$L$_16_blocks_overflow_229: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 +$L$_16_blocks_ok_229: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm3,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti32x4 xmm11,zmm3,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10]{k1},zmm3 + vmovdqu8 zmm3{k1}{z},zmm3 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vextracti32x4 xmm7,zmm19,2 + sub r13,16 * (7 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_230 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm19,zmm1,0x01 + vpclmulqdq zmm5,zmm19,zmm1,0x10 + vpclmulqdq zmm0,zmm19,zmm1,0x11 + vpclmulqdq zmm3,zmm19,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_230 +$L$_small_initial_partial_block_230: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm19,ymm1,0x01 + vpclmulqdq ymm5,ymm19,ymm1,0x10 + vpclmulqdq ymm0,ymm19,ymm1,0x11 + vpclmulqdq ymm3,ymm19,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_230: + + or r13,r13 + je NEAR $L$_after_reduction_230 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_230: + jmp NEAR $L$_last_blocks_done_216 +$L$_last_num_blocks_is_8_216: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,248 + jae NEAR $L$_16_blocks_overflow_231 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + jmp NEAR $L$_16_blocks_ok_231 + +$L$_16_blocks_overflow_231: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 +$L$_16_blocks_ok_231: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm3,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti32x4 xmm11,zmm3,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10]{k1},zmm3 + vmovdqu8 zmm3{k1}{z},zmm3 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vextracti32x4 xmm7,zmm19,3 + sub r13,16 * (8 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_232 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_232 +$L$_small_initial_partial_block_232: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm19,zmm1,0x01 + vpclmulqdq zmm5,zmm19,zmm1,0x10 + vpclmulqdq zmm0,zmm19,zmm1,0x11 + vpclmulqdq zmm3,zmm19,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_232: + + or r13,r13 + je NEAR $L$_after_reduction_232 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_232: + jmp NEAR $L$_last_blocks_done_216 +$L$_last_num_blocks_is_9_216: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,247 + jae NEAR $L$_16_blocks_overflow_233 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd xmm4,xmm3,xmm27 + jmp NEAR $L$_16_blocks_ok_233 + +$L$_16_blocks_overflow_233: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb xmm4,xmm4,xmm29 +$L$_16_blocks_ok_233: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm4,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 xmm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast xmm4,xmm4,xmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq xmm4,xmm4,xmm20 + vextracti32x4 xmm11,zmm4,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 XMMWORD[128+r11*1+r10]{k1},xmm4 + vmovdqu8 zmm4{k1}{z},zmm4 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb xmm20,xmm4,xmm29 + vextracti32x4 xmm7,zmm20,0 + sub r13,16 * (9 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_234 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm20,xmm1,0x01 + vpclmulqdq xmm5,xmm20,xmm1,0x10 + vpclmulqdq xmm0,xmm20,xmm1,0x11 + vpclmulqdq xmm3,xmm20,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_234 +$L$_small_initial_partial_block_234: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_234: + + or r13,r13 + je NEAR $L$_after_reduction_234 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_234: + jmp NEAR $L$_last_blocks_done_216 +$L$_last_num_blocks_is_10_216: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,246 + jae NEAR $L$_16_blocks_overflow_235 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd ymm4,ymm3,ymm27 + jmp NEAR $L$_16_blocks_ok_235 + +$L$_16_blocks_overflow_235: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb ymm4,ymm4,ymm29 +$L$_16_blocks_ok_235: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm4,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 ymm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast ymm4,ymm4,ymm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq ymm4,ymm4,ymm20 + vextracti32x4 xmm11,zmm4,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 YMMWORD[128+r11*1+r10]{k1},ymm4 + vmovdqu8 zmm4{k1}{z},zmm4 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb ymm20,ymm4,ymm29 + vextracti32x4 xmm7,zmm20,1 + sub r13,16 * (10 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_236 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm20,ymm1,0x01 + vpclmulqdq ymm5,ymm20,ymm1,0x10 + vpclmulqdq ymm0,ymm20,ymm1,0x11 + vpclmulqdq ymm3,ymm20,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_236 +$L$_small_initial_partial_block_236: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm20,xmm1,0x01 + vpclmulqdq xmm5,xmm20,xmm1,0x10 + vpclmulqdq xmm0,xmm20,xmm1,0x11 + vpclmulqdq xmm3,xmm20,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_236: + + or r13,r13 + je NEAR $L$_after_reduction_236 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_236: + jmp NEAR $L$_last_blocks_done_216 +$L$_last_num_blocks_is_11_216: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,245 + jae NEAR $L$_16_blocks_overflow_237 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + jmp NEAR $L$_16_blocks_ok_237 + +$L$_16_blocks_overflow_237: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 +$L$_16_blocks_ok_237: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm4,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vextracti32x4 xmm11,zmm4,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10]{k1},zmm4 + vmovdqu8 zmm4{k1}{z},zmm4 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb zmm20,zmm4,zmm29 + vextracti32x4 xmm7,zmm20,2 + sub r13,16 * (11 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_238 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm20,zmm1,0x01 + vpclmulqdq zmm5,zmm20,zmm1,0x10 + vpclmulqdq zmm0,zmm20,zmm1,0x11 + vpclmulqdq zmm3,zmm20,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_238 +$L$_small_initial_partial_block_238: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm20,ymm1,0x01 + vpclmulqdq ymm5,ymm20,ymm1,0x10 + vpclmulqdq ymm0,ymm20,ymm1,0x11 + vpclmulqdq ymm3,ymm20,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_238: + + or r13,r13 + je NEAR $L$_after_reduction_238 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_238: + jmp NEAR $L$_last_blocks_done_216 +$L$_last_num_blocks_is_12_216: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,244 + jae NEAR $L$_16_blocks_overflow_239 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + jmp NEAR $L$_16_blocks_ok_239 + +$L$_16_blocks_overflow_239: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 +$L$_16_blocks_ok_239: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm4,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vextracti32x4 xmm11,zmm4,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10]{k1},zmm4 + vmovdqu8 zmm4{k1}{z},zmm4 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb zmm20,zmm4,zmm29 + vextracti32x4 xmm7,zmm20,3 + sub r13,16 * (12 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_240 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[160+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_240 +$L$_small_initial_partial_block_240: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm20,zmm1,0x01 + vpclmulqdq zmm5,zmm20,zmm1,0x10 + vpclmulqdq zmm0,zmm20,zmm1,0x11 + vpclmulqdq zmm3,zmm20,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_240: + + or r13,r13 + je NEAR $L$_after_reduction_240 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_240: + jmp NEAR $L$_last_blocks_done_216 +$L$_last_num_blocks_is_13_216: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,243 + jae NEAR $L$_16_blocks_overflow_241 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd xmm5,xmm4,xmm27 + jmp NEAR $L$_16_blocks_ok_241 + +$L$_16_blocks_overflow_241: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb xmm5,xmm5,xmm29 +$L$_16_blocks_ok_241: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm5,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 xmm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast xmm5,xmm5,xmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq xmm5,xmm5,xmm21 + vextracti32x4 xmm11,zmm5,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 XMMWORD[192+r11*1+r10]{k1},xmm5 + vmovdqu8 zmm5{k1}{z},zmm5 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb zmm20,zmm4,zmm29 + vpshufb xmm21,xmm5,xmm29 + vextracti32x4 xmm7,zmm21,0 + sub r13,16 * (13 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_242 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[144+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm21,xmm1,0x01 + vpclmulqdq xmm5,xmm21,xmm1,0x10 + vpclmulqdq xmm0,xmm21,xmm1,0x11 + vpclmulqdq xmm3,xmm21,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_242 +$L$_small_initial_partial_block_242: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[160+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_242: + + or r13,r13 + je NEAR $L$_after_reduction_242 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_242: + jmp NEAR $L$_last_blocks_done_216 +$L$_last_num_blocks_is_14_216: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,242 + jae NEAR $L$_16_blocks_overflow_243 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd ymm5,ymm4,ymm27 + jmp NEAR $L$_16_blocks_ok_243 + +$L$_16_blocks_overflow_243: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb ymm5,ymm5,ymm29 +$L$_16_blocks_ok_243: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm5,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 ymm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast ymm5,ymm5,ymm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq ymm5,ymm5,ymm21 + vextracti32x4 xmm11,zmm5,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 YMMWORD[192+r11*1+r10]{k1},ymm5 + vmovdqu8 zmm5{k1}{z},zmm5 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb zmm20,zmm4,zmm29 + vpshufb ymm21,ymm5,ymm29 + vextracti32x4 xmm7,zmm21,1 + sub r13,16 * (14 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_244 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[128+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm21,ymm1,0x01 + vpclmulqdq ymm5,ymm21,ymm1,0x10 + vpclmulqdq ymm0,ymm21,ymm1,0x11 + vpclmulqdq ymm3,ymm21,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_244 +$L$_small_initial_partial_block_244: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[144+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm21,xmm1,0x01 + vpclmulqdq xmm5,xmm21,xmm1,0x10 + vpclmulqdq xmm0,xmm21,xmm1,0x11 + vpclmulqdq xmm3,xmm21,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_244: + + or r13,r13 + je NEAR $L$_after_reduction_244 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_244: + jmp NEAR $L$_last_blocks_done_216 +$L$_last_num_blocks_is_15_216: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,241 + jae NEAR $L$_16_blocks_overflow_245 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_245 + +$L$_16_blocks_overflow_245: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_245: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm5,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + vextracti32x4 xmm11,zmm5,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[192+r11*1+r10]{k1},zmm5 + vmovdqu8 zmm5{k1}{z},zmm5 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb zmm20,zmm4,zmm29 + vpshufb zmm21,zmm5,zmm29 + vextracti32x4 xmm7,zmm21,2 + sub r13,16 * (15 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_246 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[112+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm21,zmm1,0x01 + vpclmulqdq zmm5,zmm21,zmm1,0x10 + vpclmulqdq zmm0,zmm21,zmm1,0x11 + vpclmulqdq zmm3,zmm21,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_246 +$L$_small_initial_partial_block_246: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[128+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm21,ymm1,0x01 + vpclmulqdq ymm5,ymm21,ymm1,0x10 + vpclmulqdq ymm0,ymm21,ymm1,0x11 + vpclmulqdq ymm3,ymm21,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_246: + + or r13,r13 + je NEAR $L$_after_reduction_246 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_246: + jmp NEAR $L$_last_blocks_done_216 +$L$_last_num_blocks_is_16_216: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,240 + jae NEAR $L$_16_blocks_overflow_247 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_247 + +$L$_16_blocks_overflow_247: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_247: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm5,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + vextracti32x4 xmm11,zmm5,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[192+r11*1+r10]{k1},zmm5 + vmovdqu8 zmm5{k1}{z},zmm5 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb zmm20,zmm4,zmm29 + vpshufb zmm21,zmm5,zmm29 + vextracti32x4 xmm7,zmm21,3 + sub r13,16 * (16 - 1) +$L$_small_initial_partial_block_248: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[112+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm21,zmm1,0x01 + vpclmulqdq zmm5,zmm21,zmm1,0x10 + vpclmulqdq zmm0,zmm21,zmm1,0x11 + vpclmulqdq zmm3,zmm21,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_248: + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_248: + jmp NEAR $L$_last_blocks_done_216 +$L$_last_num_blocks_is_0_216: + vmovdqa64 zmm13,ZMMWORD[768+rsp] + vpxorq zmm13,zmm13,zmm14 + vmovdqu64 zmm12,ZMMWORD[rbx*1+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[832+rsp] + vmovdqu64 zmm12,ZMMWORD[64+rbx*1+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + vpxorq zmm26,zmm4,zmm10 + vpxorq zmm24,zmm0,zmm6 + vpxorq zmm25,zmm3,zmm7 + vpternlogq zmm26,zmm5,zmm11,0x96 + vmovdqa64 zmm13,ZMMWORD[896+rsp] + vmovdqu64 zmm12,ZMMWORD[128+rbx*1+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[960+rsp] + vmovdqu64 zmm12,ZMMWORD[192+rbx*1+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + + vpternlogq zmm26,zmm4,zmm10,0x96 + vpternlogq zmm24,zmm0,zmm6,0x96 + vpternlogq zmm25,zmm3,zmm7,0x96 + vpternlogq zmm26,zmm5,zmm11,0x96 + + vpsrldq zmm0,zmm26,8 + vpslldq zmm3,zmm26,8 + vpxorq zmm24,zmm24,zmm0 + vpxorq zmm25,zmm25,zmm3 + vextracti64x4 ymm0,zmm24,1 + vpxorq ymm24,ymm24,ymm0 + vextracti32x4 xmm0,ymm24,1 + vpxorq xmm24,xmm24,xmm0 + vextracti64x4 ymm3,zmm25,1 + vpxorq ymm25,ymm25,ymm3 + vextracti32x4 xmm3,ymm25,1 + vpxorq xmm25,xmm25,xmm3 + vmovdqa64 xmm4,XMMWORD[POLY2] + + + vpclmulqdq xmm0,xmm4,xmm25,0x01 + vpslldq xmm0,xmm0,8 + vpxorq xmm0,xmm25,xmm0 + + + vpclmulqdq xmm3,xmm4,xmm0,0x00 + vpsrldq xmm3,xmm3,4 + vpclmulqdq xmm14,xmm4,xmm0,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm3,xmm24,0x96 + +$L$_last_blocks_done_216: + vpshufb xmm2,xmm2,xmm29 + jmp NEAR $L$_ghash_done_172 +$L$_encrypt_16_blocks_172: + cmp r15b,240 + jae NEAR $L$_16_blocks_overflow_249 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_249 +$L$_16_blocks_overflow_249: + vpshufb zmm2,zmm2,zmm29 + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_249: + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rsp] + + + + + vshufi64x2 zmm2,zmm5,zmm5,255 + add r15b,16 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + + + + + + + + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + + vpclmulqdq zmm6,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + + vpternlogq zmm6,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + + + + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm21,ZMMWORD[192+r11*1+r9] + + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm26,zmm10,zmm15 + vpxorq zmm24,zmm6,zmm12 + vpxorq zmm25,zmm7,zmm13 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + + + + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + + + + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[192+r11*1+r10],zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 + vmovdqa64 ZMMWORD[1280+rsp],zmm0 + vmovdqa64 ZMMWORD[1344+rsp],zmm3 + vmovdqa64 ZMMWORD[1408+rsp],zmm4 + vmovdqa64 ZMMWORD[1472+rsp],zmm5 + vmovdqa64 zmm13,ZMMWORD[1024+rsp] + vmovdqu64 zmm12,ZMMWORD[256+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[1088+rsp] + vmovdqu64 zmm12,ZMMWORD[320+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + vpternlogq zmm26,zmm4,zmm10,0x96 + vpternlogq zmm24,zmm0,zmm6,0x96 + vpternlogq zmm25,zmm3,zmm7,0x96 + vpternlogq zmm26,zmm5,zmm11,0x96 + vmovdqa64 zmm13,ZMMWORD[1152+rsp] + vmovdqu64 zmm12,ZMMWORD[384+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[1216+rsp] + vmovdqu64 zmm12,ZMMWORD[448+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + + vpternlogq zmm26,zmm4,zmm10,0x96 + vpternlogq zmm24,zmm0,zmm6,0x96 + vpternlogq zmm25,zmm3,zmm7,0x96 + vpternlogq zmm26,zmm5,zmm11,0x96 + sub r13,256 + add r11,256 + mov r10d,r13d + add r10d,15 + shr r10d,4 + je NEAR $L$_last_num_blocks_is_0_250 + + cmp r10d,8 + je NEAR $L$_last_num_blocks_is_8_250 + jb NEAR $L$_last_num_blocks_is_7_1_250 + + + cmp r10d,12 + je NEAR $L$_last_num_blocks_is_12_250 + jb NEAR $L$_last_num_blocks_is_11_9_250 + + + cmp r10d,15 + je NEAR $L$_last_num_blocks_is_15_250 + ja NEAR $L$_last_num_blocks_is_16_250 + cmp r10d,14 + je NEAR $L$_last_num_blocks_is_14_250 + jmp NEAR $L$_last_num_blocks_is_13_250 + +$L$_last_num_blocks_is_11_9_250: + + cmp r10d,10 + je NEAR $L$_last_num_blocks_is_10_250 + ja NEAR $L$_last_num_blocks_is_11_250 + jmp NEAR $L$_last_num_blocks_is_9_250 + +$L$_last_num_blocks_is_7_1_250: + cmp r10d,4 + je NEAR $L$_last_num_blocks_is_4_250 + jb NEAR $L$_last_num_blocks_is_3_1_250 + + cmp r10d,6 + ja NEAR $L$_last_num_blocks_is_7_250 + je NEAR $L$_last_num_blocks_is_6_250 + jmp NEAR $L$_last_num_blocks_is_5_250 + +$L$_last_num_blocks_is_3_1_250: + + cmp r10d,2 + ja NEAR $L$_last_num_blocks_is_3_250 + je NEAR $L$_last_num_blocks_is_2_250 +$L$_last_num_blocks_is_1_250: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,255 + jae NEAR $L$_16_blocks_overflow_251 + vpaddd xmm0,xmm2,xmm28 + jmp NEAR $L$_16_blocks_ok_251 + +$L$_16_blocks_overflow_251: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb xmm0,xmm0,xmm29 +$L$_16_blocks_ok_251: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm0,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 xmm17{k1}{z},[r11*1+r9] + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc xmm0,xmm0,xmm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc xmm0,xmm0,xmm31 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast xmm0,xmm0,xmm30 + vpxorq xmm0,xmm0,xmm17 + vextracti32x4 xmm11,zmm0,0 + mov r10,QWORD[120+rbp] + vmovdqu8 XMMWORD[r11*1+r10]{k1},xmm0 + vmovdqu8 zmm0{k1}{z},zmm0 + vpshufb xmm17,xmm0,xmm29 + vextracti32x4 xmm7,zmm17,0 + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_252 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm17,xmm1,0x01 + vpclmulqdq xmm5,xmm17,xmm1,0x10 + vpclmulqdq xmm0,xmm17,xmm1,0x11 + vpclmulqdq xmm3,xmm17,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_252 +$L$_small_initial_partial_block_252: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + + + + + + + + + + + + vpxorq xmm14,xmm14,xmm7 + + jmp NEAR $L$_after_reduction_252 +$L$_small_initial_compute_done_252: +$L$_after_reduction_252: + jmp NEAR $L$_last_blocks_done_250 +$L$_last_num_blocks_is_2_250: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,254 + jae NEAR $L$_16_blocks_overflow_253 + vpaddd ymm0,ymm2,ymm28 + jmp NEAR $L$_16_blocks_ok_253 + +$L$_16_blocks_overflow_253: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb ymm0,ymm0,ymm29 +$L$_16_blocks_ok_253: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm0,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 ymm17{k1}{z},[r11*1+r9] + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc ymm0,ymm0,ymm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc ymm0,ymm0,ymm31 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast ymm0,ymm0,ymm30 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm11,zmm0,1 + mov r10,QWORD[120+rbp] + vmovdqu8 YMMWORD[r11*1+r10]{k1},ymm0 + vmovdqu8 zmm0{k1}{z},zmm0 + vpshufb ymm17,ymm0,ymm29 + vextracti32x4 xmm7,zmm17,1 + sub r13,16 * (2 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_254 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm17,ymm1,0x01 + vpclmulqdq ymm5,ymm17,ymm1,0x10 + vpclmulqdq ymm0,ymm17,ymm1,0x11 + vpclmulqdq ymm3,ymm17,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_254 +$L$_small_initial_partial_block_254: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm17,xmm1,0x01 + vpclmulqdq xmm5,xmm17,xmm1,0x10 + vpclmulqdq xmm0,xmm17,xmm1,0x11 + vpclmulqdq xmm3,xmm17,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_254: + + or r13,r13 + je NEAR $L$_after_reduction_254 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_254: + jmp NEAR $L$_last_blocks_done_250 +$L$_last_num_blocks_is_3_250: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,253 + jae NEAR $L$_16_blocks_overflow_255 + vpaddd zmm0,zmm2,zmm28 + jmp NEAR $L$_16_blocks_ok_255 + +$L$_16_blocks_overflow_255: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb zmm0,zmm0,zmm29 +$L$_16_blocks_ok_255: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm0,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17{k1}{z},[r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vpxorq zmm0,zmm0,zmm17 + vextracti32x4 xmm11,zmm0,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10]{k1},zmm0 + vmovdqu8 zmm0{k1}{z},zmm0 + vpshufb zmm17,zmm0,zmm29 + vextracti32x4 xmm7,zmm17,2 + sub r13,16 * (3 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_256 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_256 +$L$_small_initial_partial_block_256: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm17,ymm1,0x01 + vpclmulqdq ymm5,ymm17,ymm1,0x10 + vpclmulqdq ymm0,ymm17,ymm1,0x11 + vpclmulqdq ymm3,ymm17,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_256: + + or r13,r13 + je NEAR $L$_after_reduction_256 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_256: + jmp NEAR $L$_last_blocks_done_250 +$L$_last_num_blocks_is_4_250: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,252 + jae NEAR $L$_16_blocks_overflow_257 + vpaddd zmm0,zmm2,zmm28 + jmp NEAR $L$_16_blocks_ok_257 + +$L$_16_blocks_overflow_257: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb zmm0,zmm0,zmm29 +$L$_16_blocks_ok_257: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm0,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17{k1}{z},[r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vpxorq zmm0,zmm0,zmm17 + vextracti32x4 xmm11,zmm0,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10]{k1},zmm0 + vmovdqu8 zmm0{k1}{z},zmm0 + vpshufb zmm17,zmm0,zmm29 + vextracti32x4 xmm7,zmm17,3 + sub r13,16 * (4 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_258 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_258 +$L$_small_initial_partial_block_258: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_258: + + or r13,r13 + je NEAR $L$_after_reduction_258 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_258: + jmp NEAR $L$_last_blocks_done_250 +$L$_last_num_blocks_is_5_250: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,251 + jae NEAR $L$_16_blocks_overflow_259 + vpaddd zmm0,zmm2,zmm28 + vpaddd xmm3,xmm0,xmm27 + jmp NEAR $L$_16_blocks_ok_259 + +$L$_16_blocks_overflow_259: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb xmm3,xmm3,xmm29 +$L$_16_blocks_ok_259: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm3,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 xmm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast xmm3,xmm3,xmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq xmm3,xmm3,xmm19 + vextracti32x4 xmm11,zmm3,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 XMMWORD[64+r11*1+r10]{k1},xmm3 + vmovdqu8 zmm3{k1}{z},zmm3 + vpshufb zmm17,zmm0,zmm29 + vpshufb xmm19,xmm3,xmm29 + vextracti32x4 xmm7,zmm19,0 + sub r13,16 * (5 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_260 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm19,xmm1,0x01 + vpclmulqdq xmm5,xmm19,xmm1,0x10 + vpclmulqdq xmm0,xmm19,xmm1,0x11 + vpclmulqdq xmm3,xmm19,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_260 +$L$_small_initial_partial_block_260: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_260: + + or r13,r13 + je NEAR $L$_after_reduction_260 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_260: + jmp NEAR $L$_last_blocks_done_250 +$L$_last_num_blocks_is_6_250: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,250 + jae NEAR $L$_16_blocks_overflow_261 + vpaddd zmm0,zmm2,zmm28 + vpaddd ymm3,ymm0,ymm27 + jmp NEAR $L$_16_blocks_ok_261 + +$L$_16_blocks_overflow_261: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb ymm3,ymm3,ymm29 +$L$_16_blocks_ok_261: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm3,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 ymm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast ymm3,ymm3,ymm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm11,zmm3,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 YMMWORD[64+r11*1+r10]{k1},ymm3 + vmovdqu8 zmm3{k1}{z},zmm3 + vpshufb zmm17,zmm0,zmm29 + vpshufb ymm19,ymm3,ymm29 + vextracti32x4 xmm7,zmm19,1 + sub r13,16 * (6 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_262 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm19,ymm1,0x01 + vpclmulqdq ymm5,ymm19,ymm1,0x10 + vpclmulqdq ymm0,ymm19,ymm1,0x11 + vpclmulqdq ymm3,ymm19,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_262 +$L$_small_initial_partial_block_262: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm19,xmm1,0x01 + vpclmulqdq xmm5,xmm19,xmm1,0x10 + vpclmulqdq xmm0,xmm19,xmm1,0x11 + vpclmulqdq xmm3,xmm19,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_262: + + or r13,r13 + je NEAR $L$_after_reduction_262 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_262: + jmp NEAR $L$_last_blocks_done_250 +$L$_last_num_blocks_is_7_250: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,249 + jae NEAR $L$_16_blocks_overflow_263 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + jmp NEAR $L$_16_blocks_ok_263 + +$L$_16_blocks_overflow_263: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 +$L$_16_blocks_ok_263: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm3,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti32x4 xmm11,zmm3,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10]{k1},zmm3 + vmovdqu8 zmm3{k1}{z},zmm3 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vextracti32x4 xmm7,zmm19,2 + sub r13,16 * (7 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_264 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm19,zmm1,0x01 + vpclmulqdq zmm5,zmm19,zmm1,0x10 + vpclmulqdq zmm0,zmm19,zmm1,0x11 + vpclmulqdq zmm3,zmm19,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_264 +$L$_small_initial_partial_block_264: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm19,ymm1,0x01 + vpclmulqdq ymm5,ymm19,ymm1,0x10 + vpclmulqdq ymm0,ymm19,ymm1,0x11 + vpclmulqdq ymm3,ymm19,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_264: + + or r13,r13 + je NEAR $L$_after_reduction_264 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_264: + jmp NEAR $L$_last_blocks_done_250 +$L$_last_num_blocks_is_8_250: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,248 + jae NEAR $L$_16_blocks_overflow_265 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + jmp NEAR $L$_16_blocks_ok_265 + +$L$_16_blocks_overflow_265: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 +$L$_16_blocks_ok_265: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm3,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti32x4 xmm11,zmm3,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10]{k1},zmm3 + vmovdqu8 zmm3{k1}{z},zmm3 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vextracti32x4 xmm7,zmm19,3 + sub r13,16 * (8 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_266 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_266 +$L$_small_initial_partial_block_266: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm19,zmm1,0x01 + vpclmulqdq zmm5,zmm19,zmm1,0x10 + vpclmulqdq zmm0,zmm19,zmm1,0x11 + vpclmulqdq zmm3,zmm19,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_266: + + or r13,r13 + je NEAR $L$_after_reduction_266 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_266: + jmp NEAR $L$_last_blocks_done_250 +$L$_last_num_blocks_is_9_250: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,247 + jae NEAR $L$_16_blocks_overflow_267 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd xmm4,xmm3,xmm27 + jmp NEAR $L$_16_blocks_ok_267 + +$L$_16_blocks_overflow_267: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb xmm4,xmm4,xmm29 +$L$_16_blocks_ok_267: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm4,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 xmm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast xmm4,xmm4,xmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq xmm4,xmm4,xmm20 + vextracti32x4 xmm11,zmm4,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 XMMWORD[128+r11*1+r10]{k1},xmm4 + vmovdqu8 zmm4{k1}{z},zmm4 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb xmm20,xmm4,xmm29 + vextracti32x4 xmm7,zmm20,0 + sub r13,16 * (9 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_268 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm20,xmm1,0x01 + vpclmulqdq xmm5,xmm20,xmm1,0x10 + vpclmulqdq xmm0,xmm20,xmm1,0x11 + vpclmulqdq xmm3,xmm20,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_268 +$L$_small_initial_partial_block_268: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_268: + + or r13,r13 + je NEAR $L$_after_reduction_268 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_268: + jmp NEAR $L$_last_blocks_done_250 +$L$_last_num_blocks_is_10_250: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,246 + jae NEAR $L$_16_blocks_overflow_269 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd ymm4,ymm3,ymm27 + jmp NEAR $L$_16_blocks_ok_269 + +$L$_16_blocks_overflow_269: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb ymm4,ymm4,ymm29 +$L$_16_blocks_ok_269: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm4,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 ymm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast ymm4,ymm4,ymm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq ymm4,ymm4,ymm20 + vextracti32x4 xmm11,zmm4,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 YMMWORD[128+r11*1+r10]{k1},ymm4 + vmovdqu8 zmm4{k1}{z},zmm4 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb ymm20,ymm4,ymm29 + vextracti32x4 xmm7,zmm20,1 + sub r13,16 * (10 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_270 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm20,ymm1,0x01 + vpclmulqdq ymm5,ymm20,ymm1,0x10 + vpclmulqdq ymm0,ymm20,ymm1,0x11 + vpclmulqdq ymm3,ymm20,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_270 +$L$_small_initial_partial_block_270: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm20,xmm1,0x01 + vpclmulqdq xmm5,xmm20,xmm1,0x10 + vpclmulqdq xmm0,xmm20,xmm1,0x11 + vpclmulqdq xmm3,xmm20,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_270: + + or r13,r13 + je NEAR $L$_after_reduction_270 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_270: + jmp NEAR $L$_last_blocks_done_250 +$L$_last_num_blocks_is_11_250: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,245 + jae NEAR $L$_16_blocks_overflow_271 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + jmp NEAR $L$_16_blocks_ok_271 + +$L$_16_blocks_overflow_271: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 +$L$_16_blocks_ok_271: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm4,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vextracti32x4 xmm11,zmm4,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10]{k1},zmm4 + vmovdqu8 zmm4{k1}{z},zmm4 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb zmm20,zmm4,zmm29 + vextracti32x4 xmm7,zmm20,2 + sub r13,16 * (11 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_272 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm20,zmm1,0x01 + vpclmulqdq zmm5,zmm20,zmm1,0x10 + vpclmulqdq zmm0,zmm20,zmm1,0x11 + vpclmulqdq zmm3,zmm20,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_272 +$L$_small_initial_partial_block_272: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm20,ymm1,0x01 + vpclmulqdq ymm5,ymm20,ymm1,0x10 + vpclmulqdq ymm0,ymm20,ymm1,0x11 + vpclmulqdq ymm3,ymm20,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_272: + + or r13,r13 + je NEAR $L$_after_reduction_272 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_272: + jmp NEAR $L$_last_blocks_done_250 +$L$_last_num_blocks_is_12_250: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,244 + jae NEAR $L$_16_blocks_overflow_273 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + jmp NEAR $L$_16_blocks_ok_273 + +$L$_16_blocks_overflow_273: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 +$L$_16_blocks_ok_273: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm4,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vextracti32x4 xmm11,zmm4,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10]{k1},zmm4 + vmovdqu8 zmm4{k1}{z},zmm4 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb zmm20,zmm4,zmm29 + vextracti32x4 xmm7,zmm20,3 + sub r13,16 * (12 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_274 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[160+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_274 +$L$_small_initial_partial_block_274: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm20,zmm1,0x01 + vpclmulqdq zmm5,zmm20,zmm1,0x10 + vpclmulqdq zmm0,zmm20,zmm1,0x11 + vpclmulqdq zmm3,zmm20,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_274: + + or r13,r13 + je NEAR $L$_after_reduction_274 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_274: + jmp NEAR $L$_last_blocks_done_250 +$L$_last_num_blocks_is_13_250: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,243 + jae NEAR $L$_16_blocks_overflow_275 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd xmm5,xmm4,xmm27 + jmp NEAR $L$_16_blocks_ok_275 + +$L$_16_blocks_overflow_275: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb xmm5,xmm5,xmm29 +$L$_16_blocks_ok_275: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm5,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 xmm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast xmm5,xmm5,xmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq xmm5,xmm5,xmm21 + vextracti32x4 xmm11,zmm5,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 XMMWORD[192+r11*1+r10]{k1},xmm5 + vmovdqu8 zmm5{k1}{z},zmm5 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb zmm20,zmm4,zmm29 + vpshufb xmm21,xmm5,xmm29 + vextracti32x4 xmm7,zmm21,0 + sub r13,16 * (13 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_276 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[144+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm21,xmm1,0x01 + vpclmulqdq xmm5,xmm21,xmm1,0x10 + vpclmulqdq xmm0,xmm21,xmm1,0x11 + vpclmulqdq xmm3,xmm21,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_276 +$L$_small_initial_partial_block_276: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[160+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_276: + + or r13,r13 + je NEAR $L$_after_reduction_276 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_276: + jmp NEAR $L$_last_blocks_done_250 +$L$_last_num_blocks_is_14_250: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,242 + jae NEAR $L$_16_blocks_overflow_277 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd ymm5,ymm4,ymm27 + jmp NEAR $L$_16_blocks_ok_277 + +$L$_16_blocks_overflow_277: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb ymm5,ymm5,ymm29 +$L$_16_blocks_ok_277: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm5,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 ymm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast ymm5,ymm5,ymm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq ymm5,ymm5,ymm21 + vextracti32x4 xmm11,zmm5,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 YMMWORD[192+r11*1+r10]{k1},ymm5 + vmovdqu8 zmm5{k1}{z},zmm5 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb zmm20,zmm4,zmm29 + vpshufb ymm21,ymm5,ymm29 + vextracti32x4 xmm7,zmm21,1 + sub r13,16 * (14 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_278 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[128+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm21,ymm1,0x01 + vpclmulqdq ymm5,ymm21,ymm1,0x10 + vpclmulqdq ymm0,ymm21,ymm1,0x11 + vpclmulqdq ymm3,ymm21,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_278 +$L$_small_initial_partial_block_278: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[144+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm21,xmm1,0x01 + vpclmulqdq xmm5,xmm21,xmm1,0x10 + vpclmulqdq xmm0,xmm21,xmm1,0x11 + vpclmulqdq xmm3,xmm21,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_278: + + or r13,r13 + je NEAR $L$_after_reduction_278 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_278: + jmp NEAR $L$_last_blocks_done_250 +$L$_last_num_blocks_is_15_250: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,241 + jae NEAR $L$_16_blocks_overflow_279 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_279 + +$L$_16_blocks_overflow_279: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_279: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm5,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + vextracti32x4 xmm11,zmm5,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[192+r11*1+r10]{k1},zmm5 + vmovdqu8 zmm5{k1}{z},zmm5 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb zmm20,zmm4,zmm29 + vpshufb zmm21,zmm5,zmm29 + vextracti32x4 xmm7,zmm21,2 + sub r13,16 * (15 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_280 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[112+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm21,zmm1,0x01 + vpclmulqdq zmm5,zmm21,zmm1,0x10 + vpclmulqdq zmm0,zmm21,zmm1,0x11 + vpclmulqdq zmm3,zmm21,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_280 +$L$_small_initial_partial_block_280: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[128+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm21,ymm1,0x01 + vpclmulqdq ymm5,ymm21,ymm1,0x10 + vpclmulqdq ymm0,ymm21,ymm1,0x11 + vpclmulqdq ymm3,ymm21,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_280: + + or r13,r13 + je NEAR $L$_after_reduction_280 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_280: + jmp NEAR $L$_last_blocks_done_250 +$L$_last_num_blocks_is_16_250: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,240 + jae NEAR $L$_16_blocks_overflow_281 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_281 + +$L$_16_blocks_overflow_281: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_281: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm5,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + vextracti32x4 xmm11,zmm5,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[192+r11*1+r10]{k1},zmm5 + vmovdqu8 zmm5{k1}{z},zmm5 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb zmm20,zmm4,zmm29 + vpshufb zmm21,zmm5,zmm29 + vextracti32x4 xmm7,zmm21,3 + sub r13,16 * (16 - 1) +$L$_small_initial_partial_block_282: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[112+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm21,zmm1,0x01 + vpclmulqdq zmm5,zmm21,zmm1,0x10 + vpclmulqdq zmm0,zmm21,zmm1,0x11 + vpclmulqdq zmm3,zmm21,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_282: + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_282: + jmp NEAR $L$_last_blocks_done_250 +$L$_last_num_blocks_is_0_250: + vmovdqa64 zmm13,ZMMWORD[1280+rsp] + vmovdqu64 zmm12,ZMMWORD[512+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[1344+rsp] + vmovdqu64 zmm12,ZMMWORD[576+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + vpternlogq zmm26,zmm4,zmm10,0x96 + vpternlogq zmm24,zmm0,zmm6,0x96 + vpternlogq zmm25,zmm3,zmm7,0x96 + vpternlogq zmm26,zmm5,zmm11,0x96 + vmovdqa64 zmm13,ZMMWORD[1408+rsp] + vmovdqu64 zmm12,ZMMWORD[640+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[1472+rsp] + vmovdqu64 zmm12,ZMMWORD[704+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + + vpternlogq zmm26,zmm4,zmm10,0x96 + vpternlogq zmm24,zmm0,zmm6,0x96 + vpternlogq zmm25,zmm3,zmm7,0x96 + vpternlogq zmm26,zmm5,zmm11,0x96 + + vpsrldq zmm0,zmm26,8 + vpslldq zmm3,zmm26,8 + vpxorq zmm24,zmm24,zmm0 + vpxorq zmm25,zmm25,zmm3 + vextracti64x4 ymm0,zmm24,1 + vpxorq ymm24,ymm24,ymm0 + vextracti32x4 xmm0,ymm24,1 + vpxorq xmm24,xmm24,xmm0 + vextracti64x4 ymm3,zmm25,1 + vpxorq ymm25,ymm25,ymm3 + vextracti32x4 xmm3,ymm25,1 + vpxorq xmm25,xmm25,xmm3 + vmovdqa64 xmm4,XMMWORD[POLY2] + + + vpclmulqdq xmm0,xmm4,xmm25,0x01 + vpslldq xmm0,xmm0,8 + vpxorq xmm0,xmm25,xmm0 + + + vpclmulqdq xmm3,xmm4,xmm0,0x00 + vpsrldq xmm3,xmm3,4 + vpclmulqdq xmm14,xmm4,xmm0,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm3,xmm24,0x96 + +$L$_last_blocks_done_250: + vpshufb xmm2,xmm2,xmm29 + jmp NEAR $L$_ghash_done_172 + +$L$_message_below_32_blocks_172: + + + sub r13,256 + add r11,256 + mov r10d,r13d + test r14,r14 + jnz NEAR $L$_skip_hkeys_precomputation_283 + vmovdqu64 zmm3,ZMMWORD[640+rsp] + + + vshufi64x2 zmm3,zmm3,zmm3,0x00 + + vmovdqu64 zmm4,ZMMWORD[576+rsp] + vmovdqu64 zmm5,ZMMWORD[512+rsp] + + vpclmulqdq zmm6,zmm4,zmm3,0x11 + vpclmulqdq zmm7,zmm4,zmm3,0x00 + vpclmulqdq zmm10,zmm4,zmm3,0x01 + vpclmulqdq zmm4,zmm4,zmm3,0x10 + vpxorq zmm4,zmm4,zmm10 + + vpsrldq zmm10,zmm4,8 + vpslldq zmm4,zmm4,8 + vpxorq zmm6,zmm6,zmm10 + vpxorq zmm4,zmm4,zmm7 + + + + vmovdqu64 zmm10,ZMMWORD[POLY2] + + vpclmulqdq zmm7,zmm10,zmm4,0x01 + vpslldq zmm7,zmm7,8 + vpxorq zmm4,zmm4,zmm7 + + + + vpclmulqdq zmm7,zmm10,zmm4,0x00 + vpsrldq zmm7,zmm7,4 + vpclmulqdq zmm4,zmm10,zmm4,0x10 + vpslldq zmm4,zmm4,4 + + vpternlogq zmm4,zmm6,zmm7,0x96 + + vmovdqu64 ZMMWORD[448+rsp],zmm4 + + vpclmulqdq zmm6,zmm5,zmm3,0x11 + vpclmulqdq zmm7,zmm5,zmm3,0x00 + vpclmulqdq zmm10,zmm5,zmm3,0x01 + vpclmulqdq zmm5,zmm5,zmm3,0x10 + vpxorq zmm5,zmm5,zmm10 + + vpsrldq zmm10,zmm5,8 + vpslldq zmm5,zmm5,8 + vpxorq zmm6,zmm6,zmm10 + vpxorq zmm5,zmm5,zmm7 + + + + vmovdqu64 zmm10,ZMMWORD[POLY2] + + vpclmulqdq zmm7,zmm10,zmm5,0x01 + vpslldq zmm7,zmm7,8 + vpxorq zmm5,zmm5,zmm7 + + + + vpclmulqdq zmm7,zmm10,zmm5,0x00 + vpsrldq zmm7,zmm7,4 + vpclmulqdq zmm5,zmm10,zmm5,0x10 + vpslldq zmm5,zmm5,4 + + vpternlogq zmm5,zmm6,zmm7,0x96 + + vmovdqu64 ZMMWORD[384+rsp],zmm5 + + vpclmulqdq zmm6,zmm4,zmm3,0x11 + vpclmulqdq zmm7,zmm4,zmm3,0x00 + vpclmulqdq zmm10,zmm4,zmm3,0x01 + vpclmulqdq zmm4,zmm4,zmm3,0x10 + vpxorq zmm4,zmm4,zmm10 + + vpsrldq zmm10,zmm4,8 + vpslldq zmm4,zmm4,8 + vpxorq zmm6,zmm6,zmm10 + vpxorq zmm4,zmm4,zmm7 + + + + vmovdqu64 zmm10,ZMMWORD[POLY2] + + vpclmulqdq zmm7,zmm10,zmm4,0x01 + vpslldq zmm7,zmm7,8 + vpxorq zmm4,zmm4,zmm7 + + + + vpclmulqdq zmm7,zmm10,zmm4,0x00 + vpsrldq zmm7,zmm7,4 + vpclmulqdq zmm4,zmm10,zmm4,0x10 + vpslldq zmm4,zmm4,4 + + vpternlogq zmm4,zmm6,zmm7,0x96 + + vmovdqu64 ZMMWORD[320+rsp],zmm4 + + vpclmulqdq zmm6,zmm5,zmm3,0x11 + vpclmulqdq zmm7,zmm5,zmm3,0x00 + vpclmulqdq zmm10,zmm5,zmm3,0x01 + vpclmulqdq zmm5,zmm5,zmm3,0x10 + vpxorq zmm5,zmm5,zmm10 + + vpsrldq zmm10,zmm5,8 + vpslldq zmm5,zmm5,8 + vpxorq zmm6,zmm6,zmm10 + vpxorq zmm5,zmm5,zmm7 + + + + vmovdqu64 zmm10,ZMMWORD[POLY2] + + vpclmulqdq zmm7,zmm10,zmm5,0x01 + vpslldq zmm7,zmm7,8 + vpxorq zmm5,zmm5,zmm7 + + + + vpclmulqdq zmm7,zmm10,zmm5,0x00 + vpsrldq zmm7,zmm7,4 + vpclmulqdq zmm5,zmm10,zmm5,0x10 + vpslldq zmm5,zmm5,4 + + vpternlogq zmm5,zmm6,zmm7,0x96 + + vmovdqu64 ZMMWORD[256+rsp],zmm5 +$L$_skip_hkeys_precomputation_283: + mov r14,1 + and r10d,~15 + mov ebx,512 + sub ebx,r10d + mov r10d,r13d + add r10d,15 + shr r10d,4 + je NEAR $L$_last_num_blocks_is_0_284 + + cmp r10d,8 + je NEAR $L$_last_num_blocks_is_8_284 + jb NEAR $L$_last_num_blocks_is_7_1_284 + + + cmp r10d,12 + je NEAR $L$_last_num_blocks_is_12_284 + jb NEAR $L$_last_num_blocks_is_11_9_284 + + + cmp r10d,15 + je NEAR $L$_last_num_blocks_is_15_284 + ja NEAR $L$_last_num_blocks_is_16_284 + cmp r10d,14 + je NEAR $L$_last_num_blocks_is_14_284 + jmp NEAR $L$_last_num_blocks_is_13_284 + +$L$_last_num_blocks_is_11_9_284: + + cmp r10d,10 + je NEAR $L$_last_num_blocks_is_10_284 + ja NEAR $L$_last_num_blocks_is_11_284 + jmp NEAR $L$_last_num_blocks_is_9_284 + +$L$_last_num_blocks_is_7_1_284: + cmp r10d,4 + je NEAR $L$_last_num_blocks_is_4_284 + jb NEAR $L$_last_num_blocks_is_3_1_284 + + cmp r10d,6 + ja NEAR $L$_last_num_blocks_is_7_284 + je NEAR $L$_last_num_blocks_is_6_284 + jmp NEAR $L$_last_num_blocks_is_5_284 + +$L$_last_num_blocks_is_3_1_284: + + cmp r10d,2 + ja NEAR $L$_last_num_blocks_is_3_284 + je NEAR $L$_last_num_blocks_is_2_284 +$L$_last_num_blocks_is_1_284: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,255 + jae NEAR $L$_16_blocks_overflow_285 + vpaddd xmm0,xmm2,xmm28 + jmp NEAR $L$_16_blocks_ok_285 + +$L$_16_blocks_overflow_285: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb xmm0,xmm0,xmm29 +$L$_16_blocks_ok_285: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm0,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 xmm17{k1}{z},[r11*1+r9] + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc xmm0,xmm0,xmm31 + vaesenclast xmm0,xmm0,xmm30 + vpxorq xmm0,xmm0,xmm17 + vextracti32x4 xmm11,zmm0,0 + mov r10,QWORD[120+rbp] + vmovdqu8 XMMWORD[r11*1+r10]{k1},xmm0 + vmovdqu8 zmm0{k1}{z},zmm0 + vpshufb xmm17,xmm0,xmm29 + vextracti32x4 xmm7,zmm17,0 + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_286 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm17,xmm1,0x01 + vpclmulqdq xmm5,xmm17,xmm1,0x10 + vpclmulqdq xmm0,xmm17,xmm1,0x11 + vpclmulqdq xmm3,xmm17,xmm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_286 +$L$_small_initial_partial_block_286: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + + + vpsrldq zmm0,zmm26,8 + vpslldq zmm3,zmm26,8 + vpxorq zmm24,zmm24,zmm0 + vpxorq zmm25,zmm25,zmm3 + vextracti64x4 ymm0,zmm24,1 + vpxorq ymm24,ymm24,ymm0 + vextracti32x4 xmm0,ymm24,1 + vpxorq xmm24,xmm24,xmm0 + vextracti64x4 ymm3,zmm25,1 + vpxorq ymm25,ymm25,ymm3 + vextracti32x4 xmm3,ymm25,1 + vpxorq xmm25,xmm25,xmm3 + vmovdqa64 xmm0,XMMWORD[POLY2] + + + vpclmulqdq xmm3,xmm0,xmm25,0x01 + vpslldq xmm3,xmm3,8 + vpxorq xmm3,xmm25,xmm3 + + + vpclmulqdq xmm4,xmm0,xmm3,0x00 + vpsrldq xmm4,xmm4,4 + vpclmulqdq xmm14,xmm0,xmm3,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm4,xmm24,0x96 + + + + + + + + + + + + + vpxorq xmm14,xmm14,xmm7 + + jmp NEAR $L$_after_reduction_286 +$L$_small_initial_compute_done_286: +$L$_after_reduction_286: + jmp NEAR $L$_last_blocks_done_284 +$L$_last_num_blocks_is_2_284: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,254 + jae NEAR $L$_16_blocks_overflow_287 + vpaddd ymm0,ymm2,ymm28 + jmp NEAR $L$_16_blocks_ok_287 + +$L$_16_blocks_overflow_287: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb ymm0,ymm0,ymm29 +$L$_16_blocks_ok_287: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm0,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 ymm17{k1}{z},[r11*1+r9] + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc ymm0,ymm0,ymm31 + vaesenclast ymm0,ymm0,ymm30 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm11,zmm0,1 + mov r10,QWORD[120+rbp] + vmovdqu8 YMMWORD[r11*1+r10]{k1},ymm0 + vmovdqu8 zmm0{k1}{z},zmm0 + vpshufb ymm17,ymm0,ymm29 + vextracti32x4 xmm7,zmm17,1 + sub r13,16 * (2 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_288 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm17,ymm1,0x01 + vpclmulqdq ymm5,ymm17,ymm1,0x10 + vpclmulqdq ymm0,ymm17,ymm1,0x11 + vpclmulqdq ymm3,ymm17,ymm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_288 +$L$_small_initial_partial_block_288: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm17,xmm1,0x01 + vpclmulqdq xmm5,xmm17,xmm1,0x10 + vpclmulqdq xmm0,xmm17,xmm1,0x11 + vpclmulqdq xmm3,xmm17,xmm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_288: + + or r13,r13 + je NEAR $L$_after_reduction_288 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_288: + jmp NEAR $L$_last_blocks_done_284 +$L$_last_num_blocks_is_3_284: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,253 + jae NEAR $L$_16_blocks_overflow_289 + vpaddd zmm0,zmm2,zmm28 + jmp NEAR $L$_16_blocks_ok_289 + +$L$_16_blocks_overflow_289: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb zmm0,zmm0,zmm29 +$L$_16_blocks_ok_289: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm0,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17{k1}{z},[r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vpxorq zmm0,zmm0,zmm17 + vextracti32x4 xmm11,zmm0,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10]{k1},zmm0 + vmovdqu8 zmm0{k1}{z},zmm0 + vpshufb zmm17,zmm0,zmm29 + vextracti32x4 xmm7,zmm17,2 + sub r13,16 * (3 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_290 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_290 +$L$_small_initial_partial_block_290: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm17,ymm1,0x01 + vpclmulqdq ymm5,ymm17,ymm1,0x10 + vpclmulqdq ymm0,ymm17,ymm1,0x11 + vpclmulqdq ymm3,ymm17,ymm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_290: + + or r13,r13 + je NEAR $L$_after_reduction_290 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_290: + jmp NEAR $L$_last_blocks_done_284 +$L$_last_num_blocks_is_4_284: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,252 + jae NEAR $L$_16_blocks_overflow_291 + vpaddd zmm0,zmm2,zmm28 + jmp NEAR $L$_16_blocks_ok_291 + +$L$_16_blocks_overflow_291: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb zmm0,zmm0,zmm29 +$L$_16_blocks_ok_291: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm0,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17{k1}{z},[r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vpxorq zmm0,zmm0,zmm17 + vextracti32x4 xmm11,zmm0,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10]{k1},zmm0 + vmovdqu8 zmm0{k1}{z},zmm0 + vpshufb zmm17,zmm0,zmm29 + vextracti32x4 xmm7,zmm17,3 + sub r13,16 * (4 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_292 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_292 +$L$_small_initial_partial_block_292: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_292: + + or r13,r13 + je NEAR $L$_after_reduction_292 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_292: + jmp NEAR $L$_last_blocks_done_284 +$L$_last_num_blocks_is_5_284: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,251 + jae NEAR $L$_16_blocks_overflow_293 + vpaddd zmm0,zmm2,zmm28 + vpaddd xmm3,xmm0,xmm27 + jmp NEAR $L$_16_blocks_ok_293 + +$L$_16_blocks_overflow_293: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb xmm3,xmm3,xmm29 +$L$_16_blocks_ok_293: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm3,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 xmm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast xmm3,xmm3,xmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq xmm3,xmm3,xmm19 + vextracti32x4 xmm11,zmm3,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 XMMWORD[64+r11*1+r10]{k1},xmm3 + vmovdqu8 zmm3{k1}{z},zmm3 + vpshufb zmm17,zmm0,zmm29 + vpshufb xmm19,xmm3,xmm29 + vextracti32x4 xmm7,zmm19,0 + sub r13,16 * (5 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_294 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm19,xmm1,0x01 + vpclmulqdq xmm5,xmm19,xmm1,0x10 + vpclmulqdq xmm0,xmm19,xmm1,0x11 + vpclmulqdq xmm3,xmm19,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_294 +$L$_small_initial_partial_block_294: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_294: + + or r13,r13 + je NEAR $L$_after_reduction_294 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_294: + jmp NEAR $L$_last_blocks_done_284 +$L$_last_num_blocks_is_6_284: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,250 + jae NEAR $L$_16_blocks_overflow_295 + vpaddd zmm0,zmm2,zmm28 + vpaddd ymm3,ymm0,ymm27 + jmp NEAR $L$_16_blocks_ok_295 + +$L$_16_blocks_overflow_295: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb ymm3,ymm3,ymm29 +$L$_16_blocks_ok_295: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm3,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 ymm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast ymm3,ymm3,ymm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm11,zmm3,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 YMMWORD[64+r11*1+r10]{k1},ymm3 + vmovdqu8 zmm3{k1}{z},zmm3 + vpshufb zmm17,zmm0,zmm29 + vpshufb ymm19,ymm3,ymm29 + vextracti32x4 xmm7,zmm19,1 + sub r13,16 * (6 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_296 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm19,ymm1,0x01 + vpclmulqdq ymm5,ymm19,ymm1,0x10 + vpclmulqdq ymm0,ymm19,ymm1,0x11 + vpclmulqdq ymm3,ymm19,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_296 +$L$_small_initial_partial_block_296: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm19,xmm1,0x01 + vpclmulqdq xmm5,xmm19,xmm1,0x10 + vpclmulqdq xmm0,xmm19,xmm1,0x11 + vpclmulqdq xmm3,xmm19,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_296: + + or r13,r13 + je NEAR $L$_after_reduction_296 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_296: + jmp NEAR $L$_last_blocks_done_284 +$L$_last_num_blocks_is_7_284: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,249 + jae NEAR $L$_16_blocks_overflow_297 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + jmp NEAR $L$_16_blocks_ok_297 + +$L$_16_blocks_overflow_297: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 +$L$_16_blocks_ok_297: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm3,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti32x4 xmm11,zmm3,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10]{k1},zmm3 + vmovdqu8 zmm3{k1}{z},zmm3 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vextracti32x4 xmm7,zmm19,2 + sub r13,16 * (7 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_298 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm19,zmm1,0x01 + vpclmulqdq zmm5,zmm19,zmm1,0x10 + vpclmulqdq zmm0,zmm19,zmm1,0x11 + vpclmulqdq zmm3,zmm19,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_298 +$L$_small_initial_partial_block_298: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm19,ymm1,0x01 + vpclmulqdq ymm5,ymm19,ymm1,0x10 + vpclmulqdq ymm0,ymm19,ymm1,0x11 + vpclmulqdq ymm3,ymm19,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_298: + + or r13,r13 + je NEAR $L$_after_reduction_298 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_298: + jmp NEAR $L$_last_blocks_done_284 +$L$_last_num_blocks_is_8_284: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,248 + jae NEAR $L$_16_blocks_overflow_299 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + jmp NEAR $L$_16_blocks_ok_299 + +$L$_16_blocks_overflow_299: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 +$L$_16_blocks_ok_299: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm3,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti32x4 xmm11,zmm3,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10]{k1},zmm3 + vmovdqu8 zmm3{k1}{z},zmm3 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vextracti32x4 xmm7,zmm19,3 + sub r13,16 * (8 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_300 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_300 +$L$_small_initial_partial_block_300: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm19,zmm1,0x01 + vpclmulqdq zmm5,zmm19,zmm1,0x10 + vpclmulqdq zmm0,zmm19,zmm1,0x11 + vpclmulqdq zmm3,zmm19,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_300: + + or r13,r13 + je NEAR $L$_after_reduction_300 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_300: + jmp NEAR $L$_last_blocks_done_284 +$L$_last_num_blocks_is_9_284: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,247 + jae NEAR $L$_16_blocks_overflow_301 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd xmm4,xmm3,xmm27 + jmp NEAR $L$_16_blocks_ok_301 + +$L$_16_blocks_overflow_301: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb xmm4,xmm4,xmm29 +$L$_16_blocks_ok_301: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm4,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 xmm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast xmm4,xmm4,xmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq xmm4,xmm4,xmm20 + vextracti32x4 xmm11,zmm4,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 XMMWORD[128+r11*1+r10]{k1},xmm4 + vmovdqu8 zmm4{k1}{z},zmm4 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb xmm20,xmm4,xmm29 + vextracti32x4 xmm7,zmm20,0 + sub r13,16 * (9 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_302 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm20,xmm1,0x01 + vpclmulqdq xmm5,xmm20,xmm1,0x10 + vpclmulqdq xmm0,xmm20,xmm1,0x11 + vpclmulqdq xmm3,xmm20,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_302 +$L$_small_initial_partial_block_302: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_302: + + or r13,r13 + je NEAR $L$_after_reduction_302 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_302: + jmp NEAR $L$_last_blocks_done_284 +$L$_last_num_blocks_is_10_284: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,246 + jae NEAR $L$_16_blocks_overflow_303 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd ymm4,ymm3,ymm27 + jmp NEAR $L$_16_blocks_ok_303 + +$L$_16_blocks_overflow_303: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb ymm4,ymm4,ymm29 +$L$_16_blocks_ok_303: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm4,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 ymm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast ymm4,ymm4,ymm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq ymm4,ymm4,ymm20 + vextracti32x4 xmm11,zmm4,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 YMMWORD[128+r11*1+r10]{k1},ymm4 + vmovdqu8 zmm4{k1}{z},zmm4 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb ymm20,ymm4,ymm29 + vextracti32x4 xmm7,zmm20,1 + sub r13,16 * (10 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_304 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm20,ymm1,0x01 + vpclmulqdq ymm5,ymm20,ymm1,0x10 + vpclmulqdq ymm0,ymm20,ymm1,0x11 + vpclmulqdq ymm3,ymm20,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_304 +$L$_small_initial_partial_block_304: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm20,xmm1,0x01 + vpclmulqdq xmm5,xmm20,xmm1,0x10 + vpclmulqdq xmm0,xmm20,xmm1,0x11 + vpclmulqdq xmm3,xmm20,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_304: + + or r13,r13 + je NEAR $L$_after_reduction_304 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_304: + jmp NEAR $L$_last_blocks_done_284 +$L$_last_num_blocks_is_11_284: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,245 + jae NEAR $L$_16_blocks_overflow_305 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + jmp NEAR $L$_16_blocks_ok_305 + +$L$_16_blocks_overflow_305: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 +$L$_16_blocks_ok_305: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm4,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vextracti32x4 xmm11,zmm4,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10]{k1},zmm4 + vmovdqu8 zmm4{k1}{z},zmm4 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb zmm20,zmm4,zmm29 + vextracti32x4 xmm7,zmm20,2 + sub r13,16 * (11 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_306 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm20,zmm1,0x01 + vpclmulqdq zmm5,zmm20,zmm1,0x10 + vpclmulqdq zmm0,zmm20,zmm1,0x11 + vpclmulqdq zmm3,zmm20,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_306 +$L$_small_initial_partial_block_306: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm20,ymm1,0x01 + vpclmulqdq ymm5,ymm20,ymm1,0x10 + vpclmulqdq ymm0,ymm20,ymm1,0x11 + vpclmulqdq ymm3,ymm20,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_306: + + or r13,r13 + je NEAR $L$_after_reduction_306 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_306: + jmp NEAR $L$_last_blocks_done_284 +$L$_last_num_blocks_is_12_284: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,244 + jae NEAR $L$_16_blocks_overflow_307 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + jmp NEAR $L$_16_blocks_ok_307 + +$L$_16_blocks_overflow_307: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 +$L$_16_blocks_ok_307: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm4,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vextracti32x4 xmm11,zmm4,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10]{k1},zmm4 + vmovdqu8 zmm4{k1}{z},zmm4 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb zmm20,zmm4,zmm29 + vextracti32x4 xmm7,zmm20,3 + sub r13,16 * (12 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_308 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[160+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_308 +$L$_small_initial_partial_block_308: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm20,zmm1,0x01 + vpclmulqdq zmm5,zmm20,zmm1,0x10 + vpclmulqdq zmm0,zmm20,zmm1,0x11 + vpclmulqdq zmm3,zmm20,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_308: + + or r13,r13 + je NEAR $L$_after_reduction_308 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_308: + jmp NEAR $L$_last_blocks_done_284 +$L$_last_num_blocks_is_13_284: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,243 + jae NEAR $L$_16_blocks_overflow_309 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd xmm5,xmm4,xmm27 + jmp NEAR $L$_16_blocks_ok_309 + +$L$_16_blocks_overflow_309: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb xmm5,xmm5,xmm29 +$L$_16_blocks_ok_309: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm5,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 xmm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast xmm5,xmm5,xmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq xmm5,xmm5,xmm21 + vextracti32x4 xmm11,zmm5,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 XMMWORD[192+r11*1+r10]{k1},xmm5 + vmovdqu8 zmm5{k1}{z},zmm5 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb zmm20,zmm4,zmm29 + vpshufb xmm21,xmm5,xmm29 + vextracti32x4 xmm7,zmm21,0 + sub r13,16 * (13 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_310 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[144+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm21,xmm1,0x01 + vpclmulqdq xmm5,xmm21,xmm1,0x10 + vpclmulqdq xmm0,xmm21,xmm1,0x11 + vpclmulqdq xmm3,xmm21,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_310 +$L$_small_initial_partial_block_310: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[160+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_310: + + or r13,r13 + je NEAR $L$_after_reduction_310 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_310: + jmp NEAR $L$_last_blocks_done_284 +$L$_last_num_blocks_is_14_284: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,242 + jae NEAR $L$_16_blocks_overflow_311 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd ymm5,ymm4,ymm27 + jmp NEAR $L$_16_blocks_ok_311 + +$L$_16_blocks_overflow_311: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb ymm5,ymm5,ymm29 +$L$_16_blocks_ok_311: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm5,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 ymm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast ymm5,ymm5,ymm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq ymm5,ymm5,ymm21 + vextracti32x4 xmm11,zmm5,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 YMMWORD[192+r11*1+r10]{k1},ymm5 + vmovdqu8 zmm5{k1}{z},zmm5 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb zmm20,zmm4,zmm29 + vpshufb ymm21,ymm5,ymm29 + vextracti32x4 xmm7,zmm21,1 + sub r13,16 * (14 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_312 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[128+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm21,ymm1,0x01 + vpclmulqdq ymm5,ymm21,ymm1,0x10 + vpclmulqdq ymm0,ymm21,ymm1,0x11 + vpclmulqdq ymm3,ymm21,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_312 +$L$_small_initial_partial_block_312: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[144+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm21,xmm1,0x01 + vpclmulqdq xmm5,xmm21,xmm1,0x10 + vpclmulqdq xmm0,xmm21,xmm1,0x11 + vpclmulqdq xmm3,xmm21,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_312: + + or r13,r13 + je NEAR $L$_after_reduction_312 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_312: + jmp NEAR $L$_last_blocks_done_284 +$L$_last_num_blocks_is_15_284: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,241 + jae NEAR $L$_16_blocks_overflow_313 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_313 + +$L$_16_blocks_overflow_313: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_313: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm5,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + vextracti32x4 xmm11,zmm5,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[192+r11*1+r10]{k1},zmm5 + vmovdqu8 zmm5{k1}{z},zmm5 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb zmm20,zmm4,zmm29 + vpshufb zmm21,zmm5,zmm29 + vextracti32x4 xmm7,zmm21,2 + sub r13,16 * (15 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_314 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[112+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm21,zmm1,0x01 + vpclmulqdq zmm5,zmm21,zmm1,0x10 + vpclmulqdq zmm0,zmm21,zmm1,0x11 + vpclmulqdq zmm3,zmm21,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_314 +$L$_small_initial_partial_block_314: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[128+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm21,ymm1,0x01 + vpclmulqdq ymm5,ymm21,ymm1,0x10 + vpclmulqdq ymm0,ymm21,ymm1,0x11 + vpclmulqdq ymm3,ymm21,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_314: + + or r13,r13 + je NEAR $L$_after_reduction_314 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_314: + jmp NEAR $L$_last_blocks_done_284 +$L$_last_num_blocks_is_16_284: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,240 + jae NEAR $L$_16_blocks_overflow_315 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_315 + +$L$_16_blocks_overflow_315: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_315: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm5,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + vextracti32x4 xmm11,zmm5,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[192+r11*1+r10]{k1},zmm5 + vmovdqu8 zmm5{k1}{z},zmm5 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb zmm20,zmm4,zmm29 + vpshufb zmm21,zmm5,zmm29 + vextracti32x4 xmm7,zmm21,3 + sub r13,16 * (16 - 1) +$L$_small_initial_partial_block_316: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[112+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm21,zmm1,0x01 + vpclmulqdq zmm5,zmm21,zmm1,0x10 + vpclmulqdq zmm0,zmm21,zmm1,0x11 + vpclmulqdq zmm3,zmm21,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_316: + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_316: + jmp NEAR $L$_last_blocks_done_284 +$L$_last_num_blocks_is_0_284: + vmovdqa64 zmm13,ZMMWORD[768+rsp] + vpxorq zmm13,zmm13,zmm14 + vmovdqu64 zmm12,ZMMWORD[rbx*1+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[832+rsp] + vmovdqu64 zmm12,ZMMWORD[64+rbx*1+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + vpxorq zmm26,zmm4,zmm10 + vpxorq zmm24,zmm0,zmm6 + vpxorq zmm25,zmm3,zmm7 + vpternlogq zmm26,zmm5,zmm11,0x96 + vmovdqa64 zmm13,ZMMWORD[896+rsp] + vmovdqu64 zmm12,ZMMWORD[128+rbx*1+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[960+rsp] + vmovdqu64 zmm12,ZMMWORD[192+rbx*1+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + + vpternlogq zmm26,zmm4,zmm10,0x96 + vpternlogq zmm24,zmm0,zmm6,0x96 + vpternlogq zmm25,zmm3,zmm7,0x96 + vpternlogq zmm26,zmm5,zmm11,0x96 + + vpsrldq zmm0,zmm26,8 + vpslldq zmm3,zmm26,8 + vpxorq zmm24,zmm24,zmm0 + vpxorq zmm25,zmm25,zmm3 + vextracti64x4 ymm0,zmm24,1 + vpxorq ymm24,ymm24,ymm0 + vextracti32x4 xmm0,ymm24,1 + vpxorq xmm24,xmm24,xmm0 + vextracti64x4 ymm3,zmm25,1 + vpxorq ymm25,ymm25,ymm3 + vextracti32x4 xmm3,ymm25,1 + vpxorq xmm25,xmm25,xmm3 + vmovdqa64 xmm4,XMMWORD[POLY2] + + + vpclmulqdq xmm0,xmm4,xmm25,0x01 + vpslldq xmm0,xmm0,8 + vpxorq xmm0,xmm25,xmm0 + + + vpclmulqdq xmm3,xmm4,xmm0,0x00 + vpsrldq xmm3,xmm3,4 + vpclmulqdq xmm14,xmm4,xmm0,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm3,xmm24,0x96 + +$L$_last_blocks_done_284: + vpshufb xmm2,xmm2,xmm29 + jmp NEAR $L$_ghash_done_172 + +$L$_message_below_equal_16_blocks_172: + + + mov r12d,r13d + add r12d,15 + shr r12d,4 + cmp r12,8 + je NEAR $L$_small_initial_num_blocks_is_8_317 + jl NEAR $L$_small_initial_num_blocks_is_7_1_317 + + + cmp r12,12 + je NEAR $L$_small_initial_num_blocks_is_12_317 + jl NEAR $L$_small_initial_num_blocks_is_11_9_317 + + + cmp r12,16 + je NEAR $L$_small_initial_num_blocks_is_16_317 + cmp r12,15 + je NEAR $L$_small_initial_num_blocks_is_15_317 + cmp r12,14 + je NEAR $L$_small_initial_num_blocks_is_14_317 + jmp NEAR $L$_small_initial_num_blocks_is_13_317 + +$L$_small_initial_num_blocks_is_11_9_317: + + cmp r12,11 + je NEAR $L$_small_initial_num_blocks_is_11_317 + cmp r12,10 + je NEAR $L$_small_initial_num_blocks_is_10_317 + jmp NEAR $L$_small_initial_num_blocks_is_9_317 + +$L$_small_initial_num_blocks_is_7_1_317: + cmp r12,4 + je NEAR $L$_small_initial_num_blocks_is_4_317 + jl NEAR $L$_small_initial_num_blocks_is_3_1_317 + + cmp r12,7 + je NEAR $L$_small_initial_num_blocks_is_7_317 + cmp r12,6 + je NEAR $L$_small_initial_num_blocks_is_6_317 + jmp NEAR $L$_small_initial_num_blocks_is_5_317 + +$L$_small_initial_num_blocks_is_3_1_317: + + cmp r12,3 + je NEAR $L$_small_initial_num_blocks_is_3_317 + cmp r12,2 + je NEAR $L$_small_initial_num_blocks_is_2_317 + + + + + +$L$_small_initial_num_blocks_is_1_317: + vmovdqa64 xmm29,XMMWORD[SHUF_MASK] + vpaddd xmm0,xmm2,XMMWORD[ONE] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm0,0 + vpshufb xmm0,xmm0,xmm29 + vmovdqu8 xmm6{k1}{z},[r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq xmm0,xmm0,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc xmm0,xmm0,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc xmm0,xmm0,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc xmm0,xmm0,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc xmm0,xmm0,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc xmm0,xmm0,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc xmm0,xmm0,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc xmm0,xmm0,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc xmm0,xmm0,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc xmm0,xmm0,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenc xmm0,xmm0,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[176+rcx] + vaesenc xmm0,xmm0,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[192+rcx] + vaesenclast xmm0,xmm0,xmm15 + vpxorq xmm0,xmm0,xmm6 + vextracti32x4 xmm12,zmm0,0 + mov r10,QWORD[120+rbp] + vmovdqu8 XMMWORD[r11*1+r10]{k1},xmm0 + vmovdqu8 zmm0{k1}{z},zmm0 + vpshufb xmm6,xmm0,xmm29 + vextracti32x4 xmm13,zmm6,0 + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_318 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 xmm20,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm6,xmm20,0x01 + vpclmulqdq xmm5,xmm6,xmm20,0x10 + vpclmulqdq xmm0,xmm6,xmm20,0x11 + vpclmulqdq xmm3,xmm6,xmm20,0x00 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_318 +$L$_small_initial_partial_block_318: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + + + + + + + + + + + + vpxorq xmm14,xmm14,xmm13 + + jmp NEAR $L$_after_reduction_318 +$L$_small_initial_compute_done_318: +$L$_after_reduction_318: + jmp NEAR $L$_small_initial_blocks_encrypted_317 +$L$_small_initial_num_blocks_is_2_317: + vmovdqa64 ymm29,YMMWORD[SHUF_MASK] + vshufi64x2 ymm0,ymm2,ymm2,0 + vpaddd ymm0,ymm0,YMMWORD[ddq_add_1234] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm0,1 + vpshufb ymm0,ymm0,ymm29 + vmovdqu8 ymm6{k1}{z},[r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq ymm0,ymm0,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc ymm0,ymm0,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc ymm0,ymm0,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc ymm0,ymm0,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc ymm0,ymm0,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc ymm0,ymm0,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc ymm0,ymm0,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc ymm0,ymm0,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc ymm0,ymm0,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc ymm0,ymm0,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenc ymm0,ymm0,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[176+rcx] + vaesenc ymm0,ymm0,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[192+rcx] + vaesenclast ymm0,ymm0,ymm15 + vpxorq ymm0,ymm0,ymm6 + vextracti32x4 xmm12,zmm0,1 + mov r10,QWORD[120+rbp] + vmovdqu8 YMMWORD[r11*1+r10]{k1},ymm0 + vmovdqu8 zmm0{k1}{z},zmm0 + vpshufb ymm6,ymm0,ymm29 + vextracti32x4 xmm13,zmm6,1 + sub r13,16 * (2 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_319 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 ymm20,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm6,ymm20,0x01 + vpclmulqdq ymm5,ymm6,ymm20,0x10 + vpclmulqdq ymm0,ymm6,ymm20,0x11 + vpclmulqdq ymm3,ymm6,ymm20,0x00 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_319 +$L$_small_initial_partial_block_319: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 xmm20,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm6,xmm20,0x01 + vpclmulqdq xmm5,xmm6,xmm20,0x10 + vpclmulqdq xmm0,xmm6,xmm20,0x11 + vpclmulqdq xmm3,xmm6,xmm20,0x00 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_319: + + or r13,r13 + je NEAR $L$_after_reduction_319 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_319: + jmp NEAR $L$_small_initial_blocks_encrypted_317 +$L$_small_initial_num_blocks_is_3_317: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm0,2 + vpshufb zmm0,zmm0,zmm29 + vmovdqu8 zmm6{k1}{z},[r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[192+rcx] + vaesenclast zmm0,zmm0,zmm15 + vpxorq zmm0,zmm0,zmm6 + vextracti32x4 xmm12,zmm0,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10]{k1},zmm0 + vmovdqu8 zmm0{k1}{z},zmm0 + vpshufb zmm6,zmm0,zmm29 + vextracti32x4 xmm13,zmm6,2 + sub r13,16 * (3 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_320 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 ymm20,YMMWORD[304+rdx] + vinserti64x2 zmm20,zmm20,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_320 +$L$_small_initial_partial_block_320: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 ymm20,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm6,ymm20,0x01 + vpclmulqdq ymm5,ymm6,ymm20,0x10 + vpclmulqdq ymm0,ymm6,ymm20,0x11 + vpclmulqdq ymm3,ymm6,ymm20,0x00 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_320: + + or r13,r13 + je NEAR $L$_after_reduction_320 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_320: + jmp NEAR $L$_small_initial_blocks_encrypted_317 +$L$_small_initial_num_blocks_is_4_317: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm0,3 + vpshufb zmm0,zmm0,zmm29 + vmovdqu8 zmm6{k1}{z},[r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[192+rcx] + vaesenclast zmm0,zmm0,zmm15 + vpxorq zmm0,zmm0,zmm6 + vextracti32x4 xmm12,zmm0,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10]{k1},zmm0 + vmovdqu8 zmm0{k1}{z},zmm0 + vpshufb zmm6,zmm0,zmm29 + vextracti32x4 xmm13,zmm6,3 + sub r13,16 * (4 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_321 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[288+rdx] + vpclmulqdq zmm15,zmm6,zmm20,0x11 + vpclmulqdq zmm16,zmm6,zmm20,0x00 + vpclmulqdq zmm17,zmm6,zmm20,0x01 + vpclmulqdq zmm19,zmm6,zmm20,0x10 + + vpxorq zmm17,zmm17,zmm19 + vpsrldq zmm4,zmm17,8 + vpslldq zmm5,zmm17,8 + vpxorq zmm0,zmm15,zmm4 + vpxorq zmm3,zmm16,zmm5 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_321 +$L$_small_initial_partial_block_321: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 ymm20,YMMWORD[304+rdx] + vinserti64x2 zmm20,zmm20,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_321: + + or r13,r13 + je NEAR $L$_after_reduction_321 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_321: + jmp NEAR $L$_small_initial_blocks_encrypted_317 +$L$_small_initial_num_blocks_is_5_317: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm2,ZMMWORD[ddq_add_5678] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + sub r15,64 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm3,0 + vpshufb zmm0,zmm0,zmm29 + vpshufb xmm3,xmm3,xmm29 + vmovdqu8 zmm6,ZMMWORD[r11*1+r9] + vmovdqu8 xmm7{k1}{z},[64+r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vpxorq xmm3,xmm3,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc xmm3,xmm3,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc xmm3,xmm3,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc xmm3,xmm3,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc xmm3,xmm3,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc xmm3,xmm3,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc xmm3,xmm3,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc xmm3,xmm3,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc xmm3,xmm3,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc xmm3,xmm3,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc xmm3,xmm3,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc xmm3,xmm3,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[192+rcx] + vaesenclast zmm0,zmm0,zmm15 + vaesenclast xmm3,xmm3,xmm15 + vpxorq zmm0,zmm0,zmm6 + vpxorq xmm3,xmm3,xmm7 + vextracti32x4 xmm12,zmm3,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 XMMWORD[64+r11*1+r10]{k1},xmm3 + vmovdqu8 zmm3{k1}{z},zmm3 + vpshufb zmm6,zmm0,zmm29 + vpshufb xmm7,xmm3,xmm29 + vextracti32x4 xmm13,zmm7,0 + sub r13,16 * (5 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_322 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[272+rdx] + vpclmulqdq zmm15,zmm6,zmm20,0x11 + vpclmulqdq zmm16,zmm6,zmm20,0x00 + vpclmulqdq zmm17,zmm6,zmm20,0x01 + vpclmulqdq zmm19,zmm6,zmm20,0x10 + vmovdqu64 xmm20,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm7,xmm20,0x01 + vpclmulqdq xmm5,xmm7,xmm20,0x10 + vpclmulqdq xmm0,xmm7,xmm20,0x11 + vpclmulqdq xmm3,xmm7,xmm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_322 +$L$_small_initial_partial_block_322: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[288+rdx] + vpclmulqdq zmm15,zmm6,zmm20,0x11 + vpclmulqdq zmm16,zmm6,zmm20,0x00 + vpclmulqdq zmm17,zmm6,zmm20,0x01 + vpclmulqdq zmm19,zmm6,zmm20,0x10 + + vpxorq zmm17,zmm17,zmm19 + vpsrldq zmm4,zmm17,8 + vpslldq zmm5,zmm17,8 + vpxorq zmm0,zmm15,zmm4 + vpxorq zmm3,zmm16,zmm5 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_322: + + or r13,r13 + je NEAR $L$_after_reduction_322 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_322: + jmp NEAR $L$_small_initial_blocks_encrypted_317 +$L$_small_initial_num_blocks_is_6_317: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm2,ZMMWORD[ddq_add_5678] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + sub r15,64 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm3,1 + vpshufb zmm0,zmm0,zmm29 + vpshufb ymm3,ymm3,ymm29 + vmovdqu8 zmm6,ZMMWORD[r11*1+r9] + vmovdqu8 ymm7{k1}{z},[64+r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vpxorq ymm3,ymm3,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc ymm3,ymm3,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc ymm3,ymm3,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc ymm3,ymm3,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc ymm3,ymm3,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc ymm3,ymm3,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc ymm3,ymm3,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc ymm3,ymm3,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc ymm3,ymm3,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc ymm3,ymm3,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc ymm3,ymm3,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc ymm3,ymm3,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[192+rcx] + vaesenclast zmm0,zmm0,zmm15 + vaesenclast ymm3,ymm3,ymm15 + vpxorq zmm0,zmm0,zmm6 + vpxorq ymm3,ymm3,ymm7 + vextracti32x4 xmm12,zmm3,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 YMMWORD[64+r11*1+r10]{k1},ymm3 + vmovdqu8 zmm3{k1}{z},zmm3 + vpshufb zmm6,zmm0,zmm29 + vpshufb ymm7,ymm3,ymm29 + vextracti32x4 xmm13,zmm7,1 + sub r13,16 * (6 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_323 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[256+rdx] + vpclmulqdq zmm15,zmm6,zmm20,0x11 + vpclmulqdq zmm16,zmm6,zmm20,0x00 + vpclmulqdq zmm17,zmm6,zmm20,0x01 + vpclmulqdq zmm19,zmm6,zmm20,0x10 + vmovdqu64 ymm20,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm7,ymm20,0x01 + vpclmulqdq ymm5,ymm7,ymm20,0x10 + vpclmulqdq ymm0,ymm7,ymm20,0x11 + vpclmulqdq ymm3,ymm7,ymm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_323 +$L$_small_initial_partial_block_323: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[272+rdx] + vpclmulqdq zmm15,zmm6,zmm20,0x11 + vpclmulqdq zmm16,zmm6,zmm20,0x00 + vpclmulqdq zmm17,zmm6,zmm20,0x01 + vpclmulqdq zmm19,zmm6,zmm20,0x10 + vmovdqu64 xmm20,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm7,xmm20,0x01 + vpclmulqdq xmm5,xmm7,xmm20,0x10 + vpclmulqdq xmm0,xmm7,xmm20,0x11 + vpclmulqdq xmm3,xmm7,xmm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_323: + + or r13,r13 + je NEAR $L$_after_reduction_323 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_323: + jmp NEAR $L$_small_initial_blocks_encrypted_317 +$L$_small_initial_num_blocks_is_7_317: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm2,ZMMWORD[ddq_add_5678] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + sub r15,64 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm3,2 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vmovdqu8 zmm6,ZMMWORD[r11*1+r9] + vmovdqu8 zmm7{k1}{z},[64+r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[192+rcx] + vaesenclast zmm0,zmm0,zmm15 + vaesenclast zmm3,zmm3,zmm15 + vpxorq zmm0,zmm0,zmm6 + vpxorq zmm3,zmm3,zmm7 + vextracti32x4 xmm12,zmm3,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10]{k1},zmm3 + vmovdqu8 zmm3{k1}{z},zmm3 + vpshufb zmm6,zmm0,zmm29 + vpshufb zmm7,zmm3,zmm29 + vextracti32x4 xmm13,zmm7,2 + sub r13,16 * (7 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_324 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[240+rdx] + vpclmulqdq zmm15,zmm6,zmm20,0x11 + vpclmulqdq zmm16,zmm6,zmm20,0x00 + vpclmulqdq zmm17,zmm6,zmm20,0x01 + vpclmulqdq zmm19,zmm6,zmm20,0x10 + vmovdqu64 ymm20,YMMWORD[304+rdx] + vinserti64x2 zmm20,zmm20,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm7,zmm20,0x01 + vpclmulqdq zmm5,zmm7,zmm20,0x10 + vpclmulqdq zmm0,zmm7,zmm20,0x11 + vpclmulqdq zmm3,zmm7,zmm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_324 +$L$_small_initial_partial_block_324: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[256+rdx] + vpclmulqdq zmm15,zmm6,zmm20,0x11 + vpclmulqdq zmm16,zmm6,zmm20,0x00 + vpclmulqdq zmm17,zmm6,zmm20,0x01 + vpclmulqdq zmm19,zmm6,zmm20,0x10 + vmovdqu64 ymm20,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm7,ymm20,0x01 + vpclmulqdq ymm5,ymm7,ymm20,0x10 + vpclmulqdq ymm0,ymm7,ymm20,0x11 + vpclmulqdq ymm3,ymm7,ymm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_324: + + or r13,r13 + je NEAR $L$_after_reduction_324 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_324: + jmp NEAR $L$_small_initial_blocks_encrypted_317 +$L$_small_initial_num_blocks_is_8_317: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm2,ZMMWORD[ddq_add_5678] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + sub r15,64 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm3,3 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vmovdqu8 zmm6,ZMMWORD[r11*1+r9] + vmovdqu8 zmm7{k1}{z},[64+r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[192+rcx] + vaesenclast zmm0,zmm0,zmm15 + vaesenclast zmm3,zmm3,zmm15 + vpxorq zmm0,zmm0,zmm6 + vpxorq zmm3,zmm3,zmm7 + vextracti32x4 xmm12,zmm3,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10]{k1},zmm3 + vmovdqu8 zmm3{k1}{z},zmm3 + vpshufb zmm6,zmm0,zmm29 + vpshufb zmm7,zmm3,zmm29 + vextracti32x4 xmm13,zmm7,3 + sub r13,16 * (8 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_325 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[224+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[288+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vpxorq zmm15,zmm0,zmm15 + vpxorq zmm16,zmm3,zmm16 + vpxorq zmm17,zmm4,zmm17 + vpxorq zmm19,zmm5,zmm19 + + vpxorq zmm17,zmm17,zmm19 + vpsrldq zmm4,zmm17,8 + vpslldq zmm5,zmm17,8 + vpxorq zmm0,zmm15,zmm4 + vpxorq zmm3,zmm16,zmm5 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_325 +$L$_small_initial_partial_block_325: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[240+rdx] + vpclmulqdq zmm15,zmm6,zmm20,0x11 + vpclmulqdq zmm16,zmm6,zmm20,0x00 + vpclmulqdq zmm17,zmm6,zmm20,0x01 + vpclmulqdq zmm19,zmm6,zmm20,0x10 + vmovdqu64 ymm20,YMMWORD[304+rdx] + vinserti64x2 zmm20,zmm20,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm7,zmm20,0x01 + vpclmulqdq zmm5,zmm7,zmm20,0x10 + vpclmulqdq zmm0,zmm7,zmm20,0x11 + vpclmulqdq zmm3,zmm7,zmm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_325: + + or r13,r13 + je NEAR $L$_after_reduction_325 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_325: + jmp NEAR $L$_small_initial_blocks_encrypted_317 +$L$_small_initial_num_blocks_is_9_317: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm2,ZMMWORD[ddq_add_5678] + vpaddd zmm4,zmm0,ZMMWORD[ddq_add_8888] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + sub r15,128 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm4,0 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb xmm4,xmm4,xmm29 + vmovdqu8 zmm6,ZMMWORD[r11*1+r9] + vmovdqu8 zmm7,ZMMWORD[64+r11*1+r9] + vmovdqu8 xmm10{k1}{z},[128+r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm15 + vpxorq xmm4,xmm4,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc xmm4,xmm4,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc xmm4,xmm4,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc xmm4,xmm4,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc xmm4,xmm4,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc xmm4,xmm4,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc xmm4,xmm4,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc xmm4,xmm4,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc xmm4,xmm4,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc xmm4,xmm4,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc xmm4,xmm4,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc xmm4,xmm4,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[192+rcx] + vaesenclast zmm0,zmm0,zmm15 + vaesenclast zmm3,zmm3,zmm15 + vaesenclast xmm4,xmm4,xmm15 + vpxorq zmm0,zmm0,zmm6 + vpxorq zmm3,zmm3,zmm7 + vpxorq xmm4,xmm4,xmm10 + vextracti32x4 xmm12,zmm4,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 XMMWORD[128+r11*1+r10]{k1},xmm4 + vmovdqu8 zmm4{k1}{z},zmm4 + vpshufb zmm6,zmm0,zmm29 + vpshufb zmm7,zmm3,zmm29 + vpshufb xmm10,xmm4,xmm29 + vextracti32x4 xmm13,zmm10,0 + sub r13,16 * (9 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_326 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[208+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[272+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vpxorq zmm15,zmm0,zmm15 + vpxorq zmm16,zmm3,zmm16 + vpxorq zmm17,zmm4,zmm17 + vpxorq zmm19,zmm5,zmm19 + vmovdqu64 xmm20,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm10,xmm20,0x01 + vpclmulqdq xmm5,xmm10,xmm20,0x10 + vpclmulqdq xmm0,xmm10,xmm20,0x11 + vpclmulqdq xmm3,xmm10,xmm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_326 +$L$_small_initial_partial_block_326: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[224+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[288+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vpxorq zmm15,zmm0,zmm15 + vpxorq zmm16,zmm3,zmm16 + vpxorq zmm17,zmm4,zmm17 + vpxorq zmm19,zmm5,zmm19 + + vpxorq zmm17,zmm17,zmm19 + vpsrldq zmm4,zmm17,8 + vpslldq zmm5,zmm17,8 + vpxorq zmm0,zmm15,zmm4 + vpxorq zmm3,zmm16,zmm5 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_326: + + or r13,r13 + je NEAR $L$_after_reduction_326 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_326: + jmp NEAR $L$_small_initial_blocks_encrypted_317 +$L$_small_initial_num_blocks_is_10_317: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm2,ZMMWORD[ddq_add_5678] + vpaddd zmm4,zmm0,ZMMWORD[ddq_add_8888] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + sub r15,128 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm4,1 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb ymm4,ymm4,ymm29 + vmovdqu8 zmm6,ZMMWORD[r11*1+r9] + vmovdqu8 zmm7,ZMMWORD[64+r11*1+r9] + vmovdqu8 ymm10{k1}{z},[128+r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm15 + vpxorq ymm4,ymm4,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc ymm4,ymm4,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc ymm4,ymm4,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc ymm4,ymm4,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc ymm4,ymm4,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc ymm4,ymm4,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc ymm4,ymm4,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc ymm4,ymm4,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc ymm4,ymm4,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc ymm4,ymm4,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc ymm4,ymm4,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc ymm4,ymm4,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[192+rcx] + vaesenclast zmm0,zmm0,zmm15 + vaesenclast zmm3,zmm3,zmm15 + vaesenclast ymm4,ymm4,ymm15 + vpxorq zmm0,zmm0,zmm6 + vpxorq zmm3,zmm3,zmm7 + vpxorq ymm4,ymm4,ymm10 + vextracti32x4 xmm12,zmm4,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 YMMWORD[128+r11*1+r10]{k1},ymm4 + vmovdqu8 zmm4{k1}{z},zmm4 + vpshufb zmm6,zmm0,zmm29 + vpshufb zmm7,zmm3,zmm29 + vpshufb ymm10,ymm4,ymm29 + vextracti32x4 xmm13,zmm10,1 + sub r13,16 * (10 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_327 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[192+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[256+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vpxorq zmm15,zmm0,zmm15 + vpxorq zmm16,zmm3,zmm16 + vpxorq zmm17,zmm4,zmm17 + vpxorq zmm19,zmm5,zmm19 + vmovdqu64 ymm20,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm10,ymm20,0x01 + vpclmulqdq ymm5,ymm10,ymm20,0x10 + vpclmulqdq ymm0,ymm10,ymm20,0x11 + vpclmulqdq ymm3,ymm10,ymm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_327 +$L$_small_initial_partial_block_327: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[208+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[272+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vpxorq zmm15,zmm0,zmm15 + vpxorq zmm16,zmm3,zmm16 + vpxorq zmm17,zmm4,zmm17 + vpxorq zmm19,zmm5,zmm19 + vmovdqu64 xmm20,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm10,xmm20,0x01 + vpclmulqdq xmm5,xmm10,xmm20,0x10 + vpclmulqdq xmm0,xmm10,xmm20,0x11 + vpclmulqdq xmm3,xmm10,xmm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_327: + + or r13,r13 + je NEAR $L$_after_reduction_327 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_327: + jmp NEAR $L$_small_initial_blocks_encrypted_317 +$L$_small_initial_num_blocks_is_11_317: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm2,ZMMWORD[ddq_add_5678] + vpaddd zmm4,zmm0,ZMMWORD[ddq_add_8888] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + sub r15,128 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm4,2 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vmovdqu8 zmm6,ZMMWORD[r11*1+r9] + vmovdqu8 zmm7,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm10{k1}{z},[128+r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm15 + vpxorq zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[192+rcx] + vaesenclast zmm0,zmm0,zmm15 + vaesenclast zmm3,zmm3,zmm15 + vaesenclast zmm4,zmm4,zmm15 + vpxorq zmm0,zmm0,zmm6 + vpxorq zmm3,zmm3,zmm7 + vpxorq zmm4,zmm4,zmm10 + vextracti32x4 xmm12,zmm4,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10]{k1},zmm4 + vmovdqu8 zmm4{k1}{z},zmm4 + vpshufb zmm6,zmm0,zmm29 + vpshufb zmm7,zmm3,zmm29 + vpshufb zmm10,zmm4,zmm29 + vextracti32x4 xmm13,zmm10,2 + sub r13,16 * (11 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_328 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[176+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[240+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vpxorq zmm15,zmm0,zmm15 + vpxorq zmm16,zmm3,zmm16 + vpxorq zmm17,zmm4,zmm17 + vpxorq zmm19,zmm5,zmm19 + vmovdqu64 ymm20,YMMWORD[304+rdx] + vinserti64x2 zmm20,zmm20,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm10,zmm20,0x01 + vpclmulqdq zmm5,zmm10,zmm20,0x10 + vpclmulqdq zmm0,zmm10,zmm20,0x11 + vpclmulqdq zmm3,zmm10,zmm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_328 +$L$_small_initial_partial_block_328: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[192+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[256+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vpxorq zmm15,zmm0,zmm15 + vpxorq zmm16,zmm3,zmm16 + vpxorq zmm17,zmm4,zmm17 + vpxorq zmm19,zmm5,zmm19 + vmovdqu64 ymm20,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm10,ymm20,0x01 + vpclmulqdq ymm5,ymm10,ymm20,0x10 + vpclmulqdq ymm0,ymm10,ymm20,0x11 + vpclmulqdq ymm3,ymm10,ymm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_328: + + or r13,r13 + je NEAR $L$_after_reduction_328 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_328: + jmp NEAR $L$_small_initial_blocks_encrypted_317 +$L$_small_initial_num_blocks_is_12_317: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm2,ZMMWORD[ddq_add_5678] + vpaddd zmm4,zmm0,ZMMWORD[ddq_add_8888] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + sub r15,128 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm4,3 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vmovdqu8 zmm6,ZMMWORD[r11*1+r9] + vmovdqu8 zmm7,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm10{k1}{z},[128+r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm15 + vpxorq zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[192+rcx] + vaesenclast zmm0,zmm0,zmm15 + vaesenclast zmm3,zmm3,zmm15 + vaesenclast zmm4,zmm4,zmm15 + vpxorq zmm0,zmm0,zmm6 + vpxorq zmm3,zmm3,zmm7 + vpxorq zmm4,zmm4,zmm10 + vextracti32x4 xmm12,zmm4,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10]{k1},zmm4 + vmovdqu8 zmm4{k1}{z},zmm4 + vpshufb zmm6,zmm0,zmm29 + vpshufb zmm7,zmm3,zmm29 + vpshufb zmm10,zmm4,zmm29 + vextracti32x4 xmm13,zmm10,3 + sub r13,16 * (12 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_329 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[160+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[224+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[288+rdx] + vpclmulqdq zmm6,zmm10,zmm20,0x11 + vpclmulqdq zmm7,zmm10,zmm20,0x00 + vpternlogq zmm15,zmm6,zmm0,0x96 + vpternlogq zmm16,zmm7,zmm3,0x96 + vpclmulqdq zmm6,zmm10,zmm20,0x01 + vpclmulqdq zmm7,zmm10,zmm20,0x10 + vpternlogq zmm17,zmm6,zmm4,0x96 + vpternlogq zmm19,zmm7,zmm5,0x96 + + vpxorq zmm17,zmm17,zmm19 + vpsrldq zmm4,zmm17,8 + vpslldq zmm5,zmm17,8 + vpxorq zmm0,zmm15,zmm4 + vpxorq zmm3,zmm16,zmm5 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_329 +$L$_small_initial_partial_block_329: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[176+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[240+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vpxorq zmm15,zmm0,zmm15 + vpxorq zmm16,zmm3,zmm16 + vpxorq zmm17,zmm4,zmm17 + vpxorq zmm19,zmm5,zmm19 + vmovdqu64 ymm20,YMMWORD[304+rdx] + vinserti64x2 zmm20,zmm20,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm10,zmm20,0x01 + vpclmulqdq zmm5,zmm10,zmm20,0x10 + vpclmulqdq zmm0,zmm10,zmm20,0x11 + vpclmulqdq zmm3,zmm10,zmm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_329: + + or r13,r13 + je NEAR $L$_after_reduction_329 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_329: + jmp NEAR $L$_small_initial_blocks_encrypted_317 +$L$_small_initial_num_blocks_is_13_317: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm2,ZMMWORD[ddq_add_5678] + vpaddd zmm4,zmm0,ZMMWORD[ddq_add_8888] + vpaddd zmm5,zmm3,ZMMWORD[ddq_add_8888] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + sub r15,192 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm5,0 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb xmm5,xmm5,xmm29 + vmovdqu8 zmm6,ZMMWORD[r11*1+r9] + vmovdqu8 zmm7,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm10,ZMMWORD[128+r11*1+r9] + vmovdqu8 xmm11{k1}{z},[192+r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm15 + vpxorq zmm4,zmm4,zmm15 + vpxorq xmm5,xmm5,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc xmm5,xmm5,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc xmm5,xmm5,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc xmm5,xmm5,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc xmm5,xmm5,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc xmm5,xmm5,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc xmm5,xmm5,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc xmm5,xmm5,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc xmm5,xmm5,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc xmm5,xmm5,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc xmm5,xmm5,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc xmm5,xmm5,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[192+rcx] + vaesenclast zmm0,zmm0,zmm15 + vaesenclast zmm3,zmm3,zmm15 + vaesenclast zmm4,zmm4,zmm15 + vaesenclast xmm5,xmm5,xmm15 + vpxorq zmm0,zmm0,zmm6 + vpxorq zmm3,zmm3,zmm7 + vpxorq zmm4,zmm4,zmm10 + vpxorq xmm5,xmm5,xmm11 + vextracti32x4 xmm12,zmm5,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 XMMWORD[192+r11*1+r10]{k1},xmm5 + vmovdqu8 zmm5{k1}{z},zmm5 + vpshufb zmm6,zmm0,zmm29 + vpshufb zmm7,zmm3,zmm29 + vpshufb zmm10,zmm4,zmm29 + vpshufb xmm11,xmm5,xmm29 + vextracti32x4 xmm13,zmm11,0 + sub r13,16 * (13 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_330 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[144+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[208+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[272+rdx] + vpclmulqdq zmm6,zmm10,zmm20,0x11 + vpclmulqdq zmm7,zmm10,zmm20,0x00 + vpternlogq zmm15,zmm6,zmm0,0x96 + vpternlogq zmm16,zmm7,zmm3,0x96 + vpclmulqdq zmm6,zmm10,zmm20,0x01 + vpclmulqdq zmm7,zmm10,zmm20,0x10 + vpternlogq zmm17,zmm6,zmm4,0x96 + vpternlogq zmm19,zmm7,zmm5,0x96 + vmovdqu64 xmm20,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm11,xmm20,0x01 + vpclmulqdq xmm5,xmm11,xmm20,0x10 + vpclmulqdq xmm0,xmm11,xmm20,0x11 + vpclmulqdq xmm3,xmm11,xmm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_330 +$L$_small_initial_partial_block_330: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[160+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[224+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[288+rdx] + vpclmulqdq zmm6,zmm10,zmm20,0x11 + vpclmulqdq zmm7,zmm10,zmm20,0x00 + vpternlogq zmm15,zmm6,zmm0,0x96 + vpternlogq zmm16,zmm7,zmm3,0x96 + vpclmulqdq zmm6,zmm10,zmm20,0x01 + vpclmulqdq zmm7,zmm10,zmm20,0x10 + vpternlogq zmm17,zmm6,zmm4,0x96 + vpternlogq zmm19,zmm7,zmm5,0x96 + + vpxorq zmm17,zmm17,zmm19 + vpsrldq zmm4,zmm17,8 + vpslldq zmm5,zmm17,8 + vpxorq zmm0,zmm15,zmm4 + vpxorq zmm3,zmm16,zmm5 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_330: + + or r13,r13 + je NEAR $L$_after_reduction_330 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_330: + jmp NEAR $L$_small_initial_blocks_encrypted_317 +$L$_small_initial_num_blocks_is_14_317: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm2,ZMMWORD[ddq_add_5678] + vpaddd zmm4,zmm0,ZMMWORD[ddq_add_8888] + vpaddd zmm5,zmm3,ZMMWORD[ddq_add_8888] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + sub r15,192 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm5,1 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb ymm5,ymm5,ymm29 + vmovdqu8 zmm6,ZMMWORD[r11*1+r9] + vmovdqu8 zmm7,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm10,ZMMWORD[128+r11*1+r9] + vmovdqu8 ymm11{k1}{z},[192+r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm15 + vpxorq zmm4,zmm4,zmm15 + vpxorq ymm5,ymm5,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc ymm5,ymm5,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc ymm5,ymm5,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc ymm5,ymm5,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc ymm5,ymm5,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc ymm5,ymm5,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc ymm5,ymm5,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc ymm5,ymm5,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc ymm5,ymm5,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc ymm5,ymm5,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc ymm5,ymm5,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc ymm5,ymm5,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[192+rcx] + vaesenclast zmm0,zmm0,zmm15 + vaesenclast zmm3,zmm3,zmm15 + vaesenclast zmm4,zmm4,zmm15 + vaesenclast ymm5,ymm5,ymm15 + vpxorq zmm0,zmm0,zmm6 + vpxorq zmm3,zmm3,zmm7 + vpxorq zmm4,zmm4,zmm10 + vpxorq ymm5,ymm5,ymm11 + vextracti32x4 xmm12,zmm5,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 YMMWORD[192+r11*1+r10]{k1},ymm5 + vmovdqu8 zmm5{k1}{z},zmm5 + vpshufb zmm6,zmm0,zmm29 + vpshufb zmm7,zmm3,zmm29 + vpshufb zmm10,zmm4,zmm29 + vpshufb ymm11,ymm5,ymm29 + vextracti32x4 xmm13,zmm11,1 + sub r13,16 * (14 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_331 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[128+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[192+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[256+rdx] + vpclmulqdq zmm6,zmm10,zmm20,0x11 + vpclmulqdq zmm7,zmm10,zmm20,0x00 + vpternlogq zmm15,zmm6,zmm0,0x96 + vpternlogq zmm16,zmm7,zmm3,0x96 + vpclmulqdq zmm6,zmm10,zmm20,0x01 + vpclmulqdq zmm7,zmm10,zmm20,0x10 + vpternlogq zmm17,zmm6,zmm4,0x96 + vpternlogq zmm19,zmm7,zmm5,0x96 + vmovdqu64 ymm20,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm11,ymm20,0x01 + vpclmulqdq ymm5,ymm11,ymm20,0x10 + vpclmulqdq ymm0,ymm11,ymm20,0x11 + vpclmulqdq ymm3,ymm11,ymm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_331 +$L$_small_initial_partial_block_331: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[144+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[208+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[272+rdx] + vpclmulqdq zmm6,zmm10,zmm20,0x11 + vpclmulqdq zmm7,zmm10,zmm20,0x00 + vpternlogq zmm15,zmm6,zmm0,0x96 + vpternlogq zmm16,zmm7,zmm3,0x96 + vpclmulqdq zmm6,zmm10,zmm20,0x01 + vpclmulqdq zmm7,zmm10,zmm20,0x10 + vpternlogq zmm17,zmm6,zmm4,0x96 + vpternlogq zmm19,zmm7,zmm5,0x96 + vmovdqu64 xmm20,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm11,xmm20,0x01 + vpclmulqdq xmm5,xmm11,xmm20,0x10 + vpclmulqdq xmm0,xmm11,xmm20,0x11 + vpclmulqdq xmm3,xmm11,xmm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_331: + + or r13,r13 + je NEAR $L$_after_reduction_331 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_331: + jmp NEAR $L$_small_initial_blocks_encrypted_317 +$L$_small_initial_num_blocks_is_15_317: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm2,ZMMWORD[ddq_add_5678] + vpaddd zmm4,zmm0,ZMMWORD[ddq_add_8888] + vpaddd zmm5,zmm3,ZMMWORD[ddq_add_8888] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + sub r15,192 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm5,2 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 + vmovdqu8 zmm6,ZMMWORD[r11*1+r9] + vmovdqu8 zmm7,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm10,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm11{k1}{z},[192+r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm15 + vpxorq zmm4,zmm4,zmm15 + vpxorq zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[192+rcx] + vaesenclast zmm0,zmm0,zmm15 + vaesenclast zmm3,zmm3,zmm15 + vaesenclast zmm4,zmm4,zmm15 + vaesenclast zmm5,zmm5,zmm15 + vpxorq zmm0,zmm0,zmm6 + vpxorq zmm3,zmm3,zmm7 + vpxorq zmm4,zmm4,zmm10 + vpxorq zmm5,zmm5,zmm11 + vextracti32x4 xmm12,zmm5,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[192+r11*1+r10]{k1},zmm5 + vmovdqu8 zmm5{k1}{z},zmm5 + vpshufb zmm6,zmm0,zmm29 + vpshufb zmm7,zmm3,zmm29 + vpshufb zmm10,zmm4,zmm29 + vpshufb zmm11,zmm5,zmm29 + vextracti32x4 xmm13,zmm11,2 + sub r13,16 * (15 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_332 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[112+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[176+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[240+rdx] + vpclmulqdq zmm6,zmm10,zmm20,0x11 + vpclmulqdq zmm7,zmm10,zmm20,0x00 + vpternlogq zmm15,zmm6,zmm0,0x96 + vpternlogq zmm16,zmm7,zmm3,0x96 + vpclmulqdq zmm6,zmm10,zmm20,0x01 + vpclmulqdq zmm7,zmm10,zmm20,0x10 + vpternlogq zmm17,zmm6,zmm4,0x96 + vpternlogq zmm19,zmm7,zmm5,0x96 + vmovdqu64 ymm20,YMMWORD[304+rdx] + vinserti64x2 zmm20,zmm20,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm11,zmm20,0x01 + vpclmulqdq zmm5,zmm11,zmm20,0x10 + vpclmulqdq zmm0,zmm11,zmm20,0x11 + vpclmulqdq zmm3,zmm11,zmm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_332 +$L$_small_initial_partial_block_332: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[128+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[192+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[256+rdx] + vpclmulqdq zmm6,zmm10,zmm20,0x11 + vpclmulqdq zmm7,zmm10,zmm20,0x00 + vpternlogq zmm15,zmm6,zmm0,0x96 + vpternlogq zmm16,zmm7,zmm3,0x96 + vpclmulqdq zmm6,zmm10,zmm20,0x01 + vpclmulqdq zmm7,zmm10,zmm20,0x10 + vpternlogq zmm17,zmm6,zmm4,0x96 + vpternlogq zmm19,zmm7,zmm5,0x96 + vmovdqu64 ymm20,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm11,ymm20,0x01 + vpclmulqdq ymm5,ymm11,ymm20,0x10 + vpclmulqdq ymm0,ymm11,ymm20,0x11 + vpclmulqdq ymm3,ymm11,ymm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_332: + + or r13,r13 + je NEAR $L$_after_reduction_332 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_332: + jmp NEAR $L$_small_initial_blocks_encrypted_317 +$L$_small_initial_num_blocks_is_16_317: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm2,ZMMWORD[ddq_add_5678] + vpaddd zmm4,zmm0,ZMMWORD[ddq_add_8888] + vpaddd zmm5,zmm3,ZMMWORD[ddq_add_8888] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + sub r15,192 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm5,3 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 + vmovdqu8 zmm6,ZMMWORD[r11*1+r9] + vmovdqu8 zmm7,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm10,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm11{k1}{z},[192+r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm15 + vpxorq zmm4,zmm4,zmm15 + vpxorq zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[192+rcx] + vaesenclast zmm0,zmm0,zmm15 + vaesenclast zmm3,zmm3,zmm15 + vaesenclast zmm4,zmm4,zmm15 + vaesenclast zmm5,zmm5,zmm15 + vpxorq zmm0,zmm0,zmm6 + vpxorq zmm3,zmm3,zmm7 + vpxorq zmm4,zmm4,zmm10 + vpxorq zmm5,zmm5,zmm11 + vextracti32x4 xmm12,zmm5,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[192+r11*1+r10]{k1},zmm5 + vmovdqu8 zmm5{k1}{z},zmm5 + vpshufb zmm6,zmm0,zmm29 + vpshufb zmm7,zmm3,zmm29 + vpshufb zmm10,zmm4,zmm29 + vpshufb zmm11,zmm5,zmm29 + vextracti32x4 xmm13,zmm11,3 + sub r13,16 * (16 - 1) +$L$_small_initial_partial_block_333: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[112+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[176+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[240+rdx] + vpclmulqdq zmm6,zmm10,zmm20,0x11 + vpclmulqdq zmm7,zmm10,zmm20,0x00 + vpternlogq zmm15,zmm6,zmm0,0x96 + vpternlogq zmm16,zmm7,zmm3,0x96 + vpclmulqdq zmm6,zmm10,zmm20,0x01 + vpclmulqdq zmm7,zmm10,zmm20,0x10 + vpternlogq zmm17,zmm6,zmm4,0x96 + vpternlogq zmm19,zmm7,zmm5,0x96 + vmovdqu64 ymm20,YMMWORD[304+rdx] + vinserti64x2 zmm20,zmm20,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm11,zmm20,0x01 + vpclmulqdq zmm5,zmm11,zmm20,0x10 + vpclmulqdq zmm0,zmm11,zmm20,0x11 + vpclmulqdq zmm3,zmm11,zmm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_333: + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_333: +$L$_small_initial_blocks_encrypted_317: +$L$_ghash_done_172: + vmovdqu64 XMMWORD[rdx],xmm2 + vmovdqu64 XMMWORD[64+rdx],xmm14 +$L$_enc_dec_done_172: + jmp NEAR $L$exit_gcm_encrypt +ALIGN 32 +$L$aes_gcm_encrypt_256_avx512: + cmp QWORD[112+rbp],0 + je NEAR $L$_enc_dec_done_334 + xor r14,r14 + vmovdqu64 xmm14,XMMWORD[64+rdx] + + mov r11,QWORD[r8] + or r11,r11 + je NEAR $L$_partial_block_done_335 + mov r10d,16 + lea r12,[byte_len_to_mask_table] + cmp QWORD[112+rbp],r10 + cmovc r10,QWORD[112+rbp] + add r12,r10 + add r12,r10 + kmovw k1,[r12] + vmovdqu8 xmm0{k1}{z},[r9] + + vmovdqu64 xmm3,XMMWORD[16+rdx] + vmovdqu64 xmm4,XMMWORD[336+rdx] + + + + lea r12,[SHIFT_MASK] + add r12,r11 + vmovdqu64 xmm5,XMMWORD[r12] + vpshufb xmm3,xmm3,xmm5 + vpxorq xmm3,xmm3,xmm0 + + + mov r13,QWORD[112+rbp] + add r13,r11 + sub r13,16 + jge NEAR $L$_no_extra_mask_335 + sub r12,r13 +$L$_no_extra_mask_335: + + + + vmovdqu64 xmm0,XMMWORD[16+r12] + vpand xmm3,xmm3,xmm0 + vpshufb xmm3,xmm3,XMMWORD[SHUF_MASK] + vpshufb xmm3,xmm3,xmm5 + vpxorq xmm14,xmm14,xmm3 + cmp r13,0 + jl NEAR $L$_partial_incomplete_335 + + vpclmulqdq xmm7,xmm14,xmm4,0x11 + vpclmulqdq xmm10,xmm14,xmm4,0x00 + vpclmulqdq xmm11,xmm14,xmm4,0x01 + vpclmulqdq xmm14,xmm14,xmm4,0x10 + vpxorq xmm14,xmm14,xmm11 + + vpsrldq xmm11,xmm14,8 + vpslldq xmm14,xmm14,8 + vpxorq xmm7,xmm7,xmm11 + vpxorq xmm14,xmm14,xmm10 + + + + vmovdqu64 xmm11,XMMWORD[POLY2] + + vpclmulqdq xmm10,xmm11,xmm14,0x01 + vpslldq xmm10,xmm10,8 + vpxorq xmm14,xmm14,xmm10 + + + + vpclmulqdq xmm10,xmm11,xmm14,0x00 + vpsrldq xmm10,xmm10,4 + vpclmulqdq xmm14,xmm11,xmm14,0x10 + vpslldq xmm14,xmm14,4 + + vpternlogq xmm14,xmm7,xmm10,0x96 + + mov QWORD[r8],0 + + mov r12,r11 + mov r11,16 + sub r11,r12 + jmp NEAR $L$_enc_dec_done_335 + +$L$_partial_incomplete_335: + mov r12,QWORD[112+rbp] + add QWORD[r8],r12 + mov r11,QWORD[112+rbp] + +$L$_enc_dec_done_335: + + + lea r12,[byte_len_to_mask_table] + kmovw k1,[r11*2+r12] + vmovdqu64 XMMWORD[64+rdx],xmm14 + + vpshufb xmm3,xmm3,XMMWORD[SHUF_MASK] + vpshufb xmm3,xmm3,xmm5 + mov r12,QWORD[120+rbp] + vmovdqu8 XMMWORD[r12]{k1},xmm3 +$L$_partial_block_done_335: + vmovdqu64 xmm2,XMMWORD[rdx] + mov r13,QWORD[112+rbp] + sub r13,r11 + je NEAR $L$_enc_dec_done_334 + cmp r13,256 + jbe NEAR $L$_message_below_equal_16_blocks_334 + + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vmovdqa64 zmm27,ZMMWORD[ddq_addbe_4444] + vmovdqa64 zmm28,ZMMWORD[ddq_addbe_1234] + + + + + + + vmovd r15d,xmm2 + and r15d,255 + + vshufi64x2 zmm2,zmm2,zmm2,0 + vpshufb zmm2,zmm2,zmm29 + + + + cmp r15b,240 + jae NEAR $L$_next_16_overflow_336 + vpaddd zmm7,zmm2,zmm28 + vpaddd zmm10,zmm7,zmm27 + vpaddd zmm11,zmm10,zmm27 + vpaddd zmm12,zmm11,zmm27 + jmp NEAR $L$_next_16_ok_336 +$L$_next_16_overflow_336: + vpshufb zmm2,zmm2,zmm29 + vmovdqa64 zmm12,ZMMWORD[ddq_add_4444] + vpaddd zmm7,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm10,zmm7,zmm12 + vpaddd zmm11,zmm10,zmm12 + vpaddd zmm12,zmm11,zmm12 + vpshufb zmm7,zmm7,zmm29 + vpshufb zmm10,zmm10,zmm29 + vpshufb zmm11,zmm11,zmm29 + vpshufb zmm12,zmm12,zmm29 +$L$_next_16_ok_336: + vshufi64x2 zmm2,zmm12,zmm12,255 + add r15b,16 + + vmovdqu8 zmm0,ZMMWORD[r11*1+r9] + vmovdqu8 zmm3,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm4,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm5,ZMMWORD[192+r11*1+r9] + + + vbroadcastf64x2 zmm6,ZMMWORD[rcx] + vpxorq zmm7,zmm7,zmm6 + vpxorq zmm10,zmm10,zmm6 + vpxorq zmm11,zmm11,zmm6 + vpxorq zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[16+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[32+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[48+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[64+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[80+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[96+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[112+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[128+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[144+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[160+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[176+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[192+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[208+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[224+rcx] + vaesenclast zmm7,zmm7,zmm6 + vaesenclast zmm10,zmm10,zmm6 + vaesenclast zmm11,zmm11,zmm6 + vaesenclast zmm12,zmm12,zmm6 + + + vpxorq zmm7,zmm7,zmm0 + vpxorq zmm10,zmm10,zmm3 + vpxorq zmm11,zmm11,zmm4 + vpxorq zmm12,zmm12,zmm5 + + + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm7 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm10 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm11 + vmovdqu8 ZMMWORD[192+r11*1+r10],zmm12 + + vpshufb zmm7,zmm7,zmm29 + vpshufb zmm10,zmm10,zmm29 + vpshufb zmm11,zmm11,zmm29 + vpshufb zmm12,zmm12,zmm29 + vmovdqa64 ZMMWORD[768+rsp],zmm7 + vmovdqa64 ZMMWORD[832+rsp],zmm10 + vmovdqa64 ZMMWORD[896+rsp],zmm11 + vmovdqa64 ZMMWORD[960+rsp],zmm12 + test r14,r14 + jnz NEAR $L$_skip_hkeys_precomputation_337 + + vmovdqu64 zmm0,ZMMWORD[288+rdx] + vmovdqu64 ZMMWORD[704+rsp],zmm0 + + vmovdqu64 zmm3,ZMMWORD[224+rdx] + vmovdqu64 ZMMWORD[640+rsp],zmm3 + + + vshufi64x2 zmm3,zmm3,zmm3,0x00 + + vmovdqu64 zmm4,ZMMWORD[160+rdx] + vmovdqu64 ZMMWORD[576+rsp],zmm4 + + vmovdqu64 zmm5,ZMMWORD[96+rdx] + vmovdqu64 ZMMWORD[512+rsp],zmm5 +$L$_skip_hkeys_precomputation_337: + cmp r13,512 + jb NEAR $L$_message_below_32_blocks_334 + + + + cmp r15b,240 + jae NEAR $L$_next_16_overflow_338 + vpaddd zmm7,zmm2,zmm28 + vpaddd zmm10,zmm7,zmm27 + vpaddd zmm11,zmm10,zmm27 + vpaddd zmm12,zmm11,zmm27 + jmp NEAR $L$_next_16_ok_338 +$L$_next_16_overflow_338: + vpshufb zmm2,zmm2,zmm29 + vmovdqa64 zmm12,ZMMWORD[ddq_add_4444] + vpaddd zmm7,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm10,zmm7,zmm12 + vpaddd zmm11,zmm10,zmm12 + vpaddd zmm12,zmm11,zmm12 + vpshufb zmm7,zmm7,zmm29 + vpshufb zmm10,zmm10,zmm29 + vpshufb zmm11,zmm11,zmm29 + vpshufb zmm12,zmm12,zmm29 +$L$_next_16_ok_338: + vshufi64x2 zmm2,zmm12,zmm12,255 + add r15b,16 + + vmovdqu8 zmm0,ZMMWORD[256+r11*1+r9] + vmovdqu8 zmm3,ZMMWORD[320+r11*1+r9] + vmovdqu8 zmm4,ZMMWORD[384+r11*1+r9] + vmovdqu8 zmm5,ZMMWORD[448+r11*1+r9] + + + vbroadcastf64x2 zmm6,ZMMWORD[rcx] + vpxorq zmm7,zmm7,zmm6 + vpxorq zmm10,zmm10,zmm6 + vpxorq zmm11,zmm11,zmm6 + vpxorq zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[16+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[32+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[48+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[64+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[80+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[96+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[112+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[128+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[144+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[160+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[176+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[192+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[208+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[224+rcx] + vaesenclast zmm7,zmm7,zmm6 + vaesenclast zmm10,zmm10,zmm6 + vaesenclast zmm11,zmm11,zmm6 + vaesenclast zmm12,zmm12,zmm6 + + + vpxorq zmm7,zmm7,zmm0 + vpxorq zmm10,zmm10,zmm3 + vpxorq zmm11,zmm11,zmm4 + vpxorq zmm12,zmm12,zmm5 + + + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[256+r11*1+r10],zmm7 + vmovdqu8 ZMMWORD[320+r11*1+r10],zmm10 + vmovdqu8 ZMMWORD[384+r11*1+r10],zmm11 + vmovdqu8 ZMMWORD[448+r11*1+r10],zmm12 + + vpshufb zmm7,zmm7,zmm29 + vpshufb zmm10,zmm10,zmm29 + vpshufb zmm11,zmm11,zmm29 + vpshufb zmm12,zmm12,zmm29 + vmovdqa64 ZMMWORD[1024+rsp],zmm7 + vmovdqa64 ZMMWORD[1088+rsp],zmm10 + vmovdqa64 ZMMWORD[1152+rsp],zmm11 + vmovdqa64 ZMMWORD[1216+rsp],zmm12 + test r14,r14 + jnz NEAR $L$_skip_hkeys_precomputation_339 + vmovdqu64 zmm3,ZMMWORD[640+rsp] + + + vshufi64x2 zmm3,zmm3,zmm3,0x00 + + vmovdqu64 zmm4,ZMMWORD[576+rsp] + vmovdqu64 zmm5,ZMMWORD[512+rsp] + + vpclmulqdq zmm6,zmm4,zmm3,0x11 + vpclmulqdq zmm7,zmm4,zmm3,0x00 + vpclmulqdq zmm10,zmm4,zmm3,0x01 + vpclmulqdq zmm4,zmm4,zmm3,0x10 + vpxorq zmm4,zmm4,zmm10 + + vpsrldq zmm10,zmm4,8 + vpslldq zmm4,zmm4,8 + vpxorq zmm6,zmm6,zmm10 + vpxorq zmm4,zmm4,zmm7 + + + + vmovdqu64 zmm10,ZMMWORD[POLY2] + + vpclmulqdq zmm7,zmm10,zmm4,0x01 + vpslldq zmm7,zmm7,8 + vpxorq zmm4,zmm4,zmm7 + + + + vpclmulqdq zmm7,zmm10,zmm4,0x00 + vpsrldq zmm7,zmm7,4 + vpclmulqdq zmm4,zmm10,zmm4,0x10 + vpslldq zmm4,zmm4,4 + + vpternlogq zmm4,zmm6,zmm7,0x96 + + vmovdqu64 ZMMWORD[448+rsp],zmm4 + + vpclmulqdq zmm6,zmm5,zmm3,0x11 + vpclmulqdq zmm7,zmm5,zmm3,0x00 + vpclmulqdq zmm10,zmm5,zmm3,0x01 + vpclmulqdq zmm5,zmm5,zmm3,0x10 + vpxorq zmm5,zmm5,zmm10 + + vpsrldq zmm10,zmm5,8 + vpslldq zmm5,zmm5,8 + vpxorq zmm6,zmm6,zmm10 + vpxorq zmm5,zmm5,zmm7 + + + + vmovdqu64 zmm10,ZMMWORD[POLY2] + + vpclmulqdq zmm7,zmm10,zmm5,0x01 + vpslldq zmm7,zmm7,8 + vpxorq zmm5,zmm5,zmm7 + + + + vpclmulqdq zmm7,zmm10,zmm5,0x00 + vpsrldq zmm7,zmm7,4 + vpclmulqdq zmm5,zmm10,zmm5,0x10 + vpslldq zmm5,zmm5,4 + + vpternlogq zmm5,zmm6,zmm7,0x96 + + vmovdqu64 ZMMWORD[384+rsp],zmm5 + + vpclmulqdq zmm6,zmm4,zmm3,0x11 + vpclmulqdq zmm7,zmm4,zmm3,0x00 + vpclmulqdq zmm10,zmm4,zmm3,0x01 + vpclmulqdq zmm4,zmm4,zmm3,0x10 + vpxorq zmm4,zmm4,zmm10 + + vpsrldq zmm10,zmm4,8 + vpslldq zmm4,zmm4,8 + vpxorq zmm6,zmm6,zmm10 + vpxorq zmm4,zmm4,zmm7 + + + + vmovdqu64 zmm10,ZMMWORD[POLY2] + + vpclmulqdq zmm7,zmm10,zmm4,0x01 + vpslldq zmm7,zmm7,8 + vpxorq zmm4,zmm4,zmm7 + + + + vpclmulqdq zmm7,zmm10,zmm4,0x00 + vpsrldq zmm7,zmm7,4 + vpclmulqdq zmm4,zmm10,zmm4,0x10 + vpslldq zmm4,zmm4,4 + + vpternlogq zmm4,zmm6,zmm7,0x96 + + vmovdqu64 ZMMWORD[320+rsp],zmm4 + + vpclmulqdq zmm6,zmm5,zmm3,0x11 + vpclmulqdq zmm7,zmm5,zmm3,0x00 + vpclmulqdq zmm10,zmm5,zmm3,0x01 + vpclmulqdq zmm5,zmm5,zmm3,0x10 + vpxorq zmm5,zmm5,zmm10 + + vpsrldq zmm10,zmm5,8 + vpslldq zmm5,zmm5,8 + vpxorq zmm6,zmm6,zmm10 + vpxorq zmm5,zmm5,zmm7 + + + + vmovdqu64 zmm10,ZMMWORD[POLY2] + + vpclmulqdq zmm7,zmm10,zmm5,0x01 + vpslldq zmm7,zmm7,8 + vpxorq zmm5,zmm5,zmm7 + + + + vpclmulqdq zmm7,zmm10,zmm5,0x00 + vpsrldq zmm7,zmm7,4 + vpclmulqdq zmm5,zmm10,zmm5,0x10 + vpslldq zmm5,zmm5,4 + + vpternlogq zmm5,zmm6,zmm7,0x96 + + vmovdqu64 ZMMWORD[256+rsp],zmm5 + + vpclmulqdq zmm6,zmm4,zmm3,0x11 + vpclmulqdq zmm7,zmm4,zmm3,0x00 + vpclmulqdq zmm10,zmm4,zmm3,0x01 + vpclmulqdq zmm4,zmm4,zmm3,0x10 + vpxorq zmm4,zmm4,zmm10 + + vpsrldq zmm10,zmm4,8 + vpslldq zmm4,zmm4,8 + vpxorq zmm6,zmm6,zmm10 + vpxorq zmm4,zmm4,zmm7 + + + + vmovdqu64 zmm10,ZMMWORD[POLY2] + + vpclmulqdq zmm7,zmm10,zmm4,0x01 + vpslldq zmm7,zmm7,8 + vpxorq zmm4,zmm4,zmm7 + + + + vpclmulqdq zmm7,zmm10,zmm4,0x00 + vpsrldq zmm7,zmm7,4 + vpclmulqdq zmm4,zmm10,zmm4,0x10 + vpslldq zmm4,zmm4,4 + + vpternlogq zmm4,zmm6,zmm7,0x96 + + vmovdqu64 ZMMWORD[192+rsp],zmm4 + + vpclmulqdq zmm6,zmm5,zmm3,0x11 + vpclmulqdq zmm7,zmm5,zmm3,0x00 + vpclmulqdq zmm10,zmm5,zmm3,0x01 + vpclmulqdq zmm5,zmm5,zmm3,0x10 + vpxorq zmm5,zmm5,zmm10 + + vpsrldq zmm10,zmm5,8 + vpslldq zmm5,zmm5,8 + vpxorq zmm6,zmm6,zmm10 + vpxorq zmm5,zmm5,zmm7 + + + + vmovdqu64 zmm10,ZMMWORD[POLY2] + + vpclmulqdq zmm7,zmm10,zmm5,0x01 + vpslldq zmm7,zmm7,8 + vpxorq zmm5,zmm5,zmm7 + + + + vpclmulqdq zmm7,zmm10,zmm5,0x00 + vpsrldq zmm7,zmm7,4 + vpclmulqdq zmm5,zmm10,zmm5,0x10 + vpslldq zmm5,zmm5,4 + + vpternlogq zmm5,zmm6,zmm7,0x96 + + vmovdqu64 ZMMWORD[128+rsp],zmm5 + + vpclmulqdq zmm6,zmm4,zmm3,0x11 + vpclmulqdq zmm7,zmm4,zmm3,0x00 + vpclmulqdq zmm10,zmm4,zmm3,0x01 + vpclmulqdq zmm4,zmm4,zmm3,0x10 + vpxorq zmm4,zmm4,zmm10 + + vpsrldq zmm10,zmm4,8 + vpslldq zmm4,zmm4,8 + vpxorq zmm6,zmm6,zmm10 + vpxorq zmm4,zmm4,zmm7 + + + + vmovdqu64 zmm10,ZMMWORD[POLY2] + + vpclmulqdq zmm7,zmm10,zmm4,0x01 + vpslldq zmm7,zmm7,8 + vpxorq zmm4,zmm4,zmm7 + + + + vpclmulqdq zmm7,zmm10,zmm4,0x00 + vpsrldq zmm7,zmm7,4 + vpclmulqdq zmm4,zmm10,zmm4,0x10 + vpslldq zmm4,zmm4,4 + + vpternlogq zmm4,zmm6,zmm7,0x96 + + vmovdqu64 ZMMWORD[64+rsp],zmm4 + + vpclmulqdq zmm6,zmm5,zmm3,0x11 + vpclmulqdq zmm7,zmm5,zmm3,0x00 + vpclmulqdq zmm10,zmm5,zmm3,0x01 + vpclmulqdq zmm5,zmm5,zmm3,0x10 + vpxorq zmm5,zmm5,zmm10 + + vpsrldq zmm10,zmm5,8 + vpslldq zmm5,zmm5,8 + vpxorq zmm6,zmm6,zmm10 + vpxorq zmm5,zmm5,zmm7 + + + + vmovdqu64 zmm10,ZMMWORD[POLY2] + + vpclmulqdq zmm7,zmm10,zmm5,0x01 + vpslldq zmm7,zmm7,8 + vpxorq zmm5,zmm5,zmm7 + + + + vpclmulqdq zmm7,zmm10,zmm5,0x00 + vpsrldq zmm7,zmm7,4 + vpclmulqdq zmm5,zmm10,zmm5,0x10 + vpslldq zmm5,zmm5,4 + + vpternlogq zmm5,zmm6,zmm7,0x96 + + vmovdqu64 ZMMWORD[rsp],zmm5 +$L$_skip_hkeys_precomputation_339: + mov r14,1 + add r11,512 + sub r13,512 + + cmp r13,768 + jb NEAR $L$_no_more_big_nblocks_334 +$L$_encrypt_big_nblocks_334: + cmp r15b,240 + jae NEAR $L$_16_blocks_overflow_340 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_340 +$L$_16_blocks_overflow_340: + vpshufb zmm2,zmm2,zmm29 + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_340: + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rsp] + + + + + vshufi64x2 zmm2,zmm5,zmm5,255 + add r15b,16 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + + + + + + + + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + + vpclmulqdq zmm6,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + + vpternlogq zmm6,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + + + + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm21,ZMMWORD[192+r11*1+r9] + + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm26,zmm10,zmm15 + vpxorq zmm24,zmm6,zmm12 + vpxorq zmm25,zmm7,zmm13 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + + + + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + + + + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[192+r11*1+r10],zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 + vmovdqa64 ZMMWORD[1280+rsp],zmm0 + vmovdqa64 ZMMWORD[1344+rsp],zmm3 + vmovdqa64 ZMMWORD[1408+rsp],zmm4 + vmovdqa64 ZMMWORD[1472+rsp],zmm5 + cmp r15b,240 + jae NEAR $L$_16_blocks_overflow_341 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_341 +$L$_16_blocks_overflow_341: + vpshufb zmm2,zmm2,zmm29 + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_341: + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[256+rsp] + + + + + vshufi64x2 zmm2,zmm5,zmm5,255 + add r15b,16 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[320+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + + + + + + + + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + + vpclmulqdq zmm6,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[384+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[448+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + + vpternlogq zmm6,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + + + + vmovdqu8 zmm17,ZMMWORD[256+r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[320+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[384+r11*1+r9] + vmovdqu8 zmm21,ZMMWORD[448+r11*1+r9] + + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vpternlogq zmm24,zmm6,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + + + + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + + + + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[256+r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[320+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[384+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[448+r11*1+r10],zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 + vmovdqa64 ZMMWORD[768+rsp],zmm0 + vmovdqa64 ZMMWORD[832+rsp],zmm3 + vmovdqa64 ZMMWORD[896+rsp],zmm4 + vmovdqa64 ZMMWORD[960+rsp],zmm5 + cmp r15b,240 + jae NEAR $L$_16_blocks_overflow_342 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_342 +$L$_16_blocks_overflow_342: + vpshufb zmm2,zmm2,zmm29 + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_342: + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + + + + + vshufi64x2 zmm2,zmm5,zmm5,255 + add r15b,16 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + + + + + + + + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + + vpclmulqdq zmm6,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + + vpternlogq zmm6,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + + + + vmovdqu8 zmm17,ZMMWORD[512+r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[576+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[640+r11*1+r9] + vmovdqu8 zmm21,ZMMWORD[704+r11*1+r9] + + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + + + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpternlogq zmm6,zmm12,zmm15,0x96 + vpxorq zmm6,zmm6,zmm24 + vpternlogq zmm7,zmm13,zmm10,0x96 + vpxorq zmm7,zmm7,zmm25 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vextracti64x4 ymm12,zmm6,1 + vpxorq ymm6,ymm6,ymm12 + vextracti32x4 xmm12,ymm6,1 + vpxorq xmm6,xmm6,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm6,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + + + + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + + + + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[512+r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[576+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[640+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[704+r11*1+r10],zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 + vmovdqa64 ZMMWORD[1024+rsp],zmm0 + vmovdqa64 ZMMWORD[1088+rsp],zmm3 + vmovdqa64 ZMMWORD[1152+rsp],zmm4 + vmovdqa64 ZMMWORD[1216+rsp],zmm5 + vmovdqa64 zmm14,zmm6 + + add r11,768 + sub r13,768 + cmp r13,768 + jae NEAR $L$_encrypt_big_nblocks_334 + +$L$_no_more_big_nblocks_334: + + cmp r13,512 + jae NEAR $L$_encrypt_32_blocks_334 + + cmp r13,256 + jae NEAR $L$_encrypt_16_blocks_334 +$L$_encrypt_0_blocks_ghash_32_334: + mov r10d,r13d + and r10d,~15 + mov ebx,256 + sub ebx,r10d + vmovdqa64 zmm13,ZMMWORD[768+rsp] + vpxorq zmm13,zmm13,zmm14 + vmovdqu64 zmm12,ZMMWORD[rbx*1+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[832+rsp] + vmovdqu64 zmm12,ZMMWORD[64+rbx*1+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + vpxorq zmm26,zmm4,zmm10 + vpxorq zmm24,zmm0,zmm6 + vpxorq zmm25,zmm3,zmm7 + vpternlogq zmm26,zmm5,zmm11,0x96 + vmovdqa64 zmm13,ZMMWORD[896+rsp] + vmovdqu64 zmm12,ZMMWORD[128+rbx*1+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[960+rsp] + vmovdqu64 zmm12,ZMMWORD[192+rbx*1+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + + vpternlogq zmm26,zmm4,zmm10,0x96 + vpternlogq zmm24,zmm0,zmm6,0x96 + vpternlogq zmm25,zmm3,zmm7,0x96 + vpternlogq zmm26,zmm5,zmm11,0x96 + add ebx,256 + mov r10d,r13d + add r10d,15 + shr r10d,4 + je NEAR $L$_last_num_blocks_is_0_343 + + cmp r10d,8 + je NEAR $L$_last_num_blocks_is_8_343 + jb NEAR $L$_last_num_blocks_is_7_1_343 + + + cmp r10d,12 + je NEAR $L$_last_num_blocks_is_12_343 + jb NEAR $L$_last_num_blocks_is_11_9_343 + + + cmp r10d,15 + je NEAR $L$_last_num_blocks_is_15_343 + ja NEAR $L$_last_num_blocks_is_16_343 + cmp r10d,14 + je NEAR $L$_last_num_blocks_is_14_343 + jmp NEAR $L$_last_num_blocks_is_13_343 + +$L$_last_num_blocks_is_11_9_343: + + cmp r10d,10 + je NEAR $L$_last_num_blocks_is_10_343 + ja NEAR $L$_last_num_blocks_is_11_343 + jmp NEAR $L$_last_num_blocks_is_9_343 + +$L$_last_num_blocks_is_7_1_343: + cmp r10d,4 + je NEAR $L$_last_num_blocks_is_4_343 + jb NEAR $L$_last_num_blocks_is_3_1_343 + + cmp r10d,6 + ja NEAR $L$_last_num_blocks_is_7_343 + je NEAR $L$_last_num_blocks_is_6_343 + jmp NEAR $L$_last_num_blocks_is_5_343 + +$L$_last_num_blocks_is_3_1_343: + + cmp r10d,2 + ja NEAR $L$_last_num_blocks_is_3_343 + je NEAR $L$_last_num_blocks_is_2_343 +$L$_last_num_blocks_is_1_343: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,255 + jae NEAR $L$_16_blocks_overflow_344 + vpaddd xmm0,xmm2,xmm28 + jmp NEAR $L$_16_blocks_ok_344 + +$L$_16_blocks_overflow_344: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb xmm0,xmm0,xmm29 +$L$_16_blocks_ok_344: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm0,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 xmm17{k1}{z},[r11*1+r9] + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc xmm0,xmm0,xmm31 + vaesenclast xmm0,xmm0,xmm30 + vpxorq xmm0,xmm0,xmm17 + vextracti32x4 xmm11,zmm0,0 + mov r10,QWORD[120+rbp] + vmovdqu8 XMMWORD[r11*1+r10]{k1},xmm0 + vmovdqu8 zmm0{k1}{z},zmm0 + vpshufb xmm17,xmm0,xmm29 + vextracti32x4 xmm7,zmm17,0 + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_345 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm17,xmm1,0x01 + vpclmulqdq xmm5,xmm17,xmm1,0x10 + vpclmulqdq xmm0,xmm17,xmm1,0x11 + vpclmulqdq xmm3,xmm17,xmm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_345 +$L$_small_initial_partial_block_345: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + + + vpsrldq zmm0,zmm26,8 + vpslldq zmm3,zmm26,8 + vpxorq zmm24,zmm24,zmm0 + vpxorq zmm25,zmm25,zmm3 + vextracti64x4 ymm0,zmm24,1 + vpxorq ymm24,ymm24,ymm0 + vextracti32x4 xmm0,ymm24,1 + vpxorq xmm24,xmm24,xmm0 + vextracti64x4 ymm3,zmm25,1 + vpxorq ymm25,ymm25,ymm3 + vextracti32x4 xmm3,ymm25,1 + vpxorq xmm25,xmm25,xmm3 + vmovdqa64 xmm0,XMMWORD[POLY2] + + + vpclmulqdq xmm3,xmm0,xmm25,0x01 + vpslldq xmm3,xmm3,8 + vpxorq xmm3,xmm25,xmm3 + + + vpclmulqdq xmm4,xmm0,xmm3,0x00 + vpsrldq xmm4,xmm4,4 + vpclmulqdq xmm14,xmm0,xmm3,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm4,xmm24,0x96 + + + + + + + + + + + + + vpxorq xmm14,xmm14,xmm7 + + jmp NEAR $L$_after_reduction_345 +$L$_small_initial_compute_done_345: +$L$_after_reduction_345: + jmp NEAR $L$_last_blocks_done_343 +$L$_last_num_blocks_is_2_343: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,254 + jae NEAR $L$_16_blocks_overflow_346 + vpaddd ymm0,ymm2,ymm28 + jmp NEAR $L$_16_blocks_ok_346 + +$L$_16_blocks_overflow_346: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb ymm0,ymm0,ymm29 +$L$_16_blocks_ok_346: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm0,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 ymm17{k1}{z},[r11*1+r9] + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc ymm0,ymm0,ymm31 + vaesenclast ymm0,ymm0,ymm30 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm11,zmm0,1 + mov r10,QWORD[120+rbp] + vmovdqu8 YMMWORD[r11*1+r10]{k1},ymm0 + vmovdqu8 zmm0{k1}{z},zmm0 + vpshufb ymm17,ymm0,ymm29 + vextracti32x4 xmm7,zmm17,1 + sub r13,16 * (2 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_347 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm17,ymm1,0x01 + vpclmulqdq ymm5,ymm17,ymm1,0x10 + vpclmulqdq ymm0,ymm17,ymm1,0x11 + vpclmulqdq ymm3,ymm17,ymm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_347 +$L$_small_initial_partial_block_347: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm17,xmm1,0x01 + vpclmulqdq xmm5,xmm17,xmm1,0x10 + vpclmulqdq xmm0,xmm17,xmm1,0x11 + vpclmulqdq xmm3,xmm17,xmm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_347: + + or r13,r13 + je NEAR $L$_after_reduction_347 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_347: + jmp NEAR $L$_last_blocks_done_343 +$L$_last_num_blocks_is_3_343: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,253 + jae NEAR $L$_16_blocks_overflow_348 + vpaddd zmm0,zmm2,zmm28 + jmp NEAR $L$_16_blocks_ok_348 + +$L$_16_blocks_overflow_348: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb zmm0,zmm0,zmm29 +$L$_16_blocks_ok_348: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm0,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17{k1}{z},[r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vpxorq zmm0,zmm0,zmm17 + vextracti32x4 xmm11,zmm0,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10]{k1},zmm0 + vmovdqu8 zmm0{k1}{z},zmm0 + vpshufb zmm17,zmm0,zmm29 + vextracti32x4 xmm7,zmm17,2 + sub r13,16 * (3 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_349 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_349 +$L$_small_initial_partial_block_349: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm17,ymm1,0x01 + vpclmulqdq ymm5,ymm17,ymm1,0x10 + vpclmulqdq ymm0,ymm17,ymm1,0x11 + vpclmulqdq ymm3,ymm17,ymm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_349: + + or r13,r13 + je NEAR $L$_after_reduction_349 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_349: + jmp NEAR $L$_last_blocks_done_343 +$L$_last_num_blocks_is_4_343: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,252 + jae NEAR $L$_16_blocks_overflow_350 + vpaddd zmm0,zmm2,zmm28 + jmp NEAR $L$_16_blocks_ok_350 + +$L$_16_blocks_overflow_350: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb zmm0,zmm0,zmm29 +$L$_16_blocks_ok_350: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm0,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17{k1}{z},[r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vpxorq zmm0,zmm0,zmm17 + vextracti32x4 xmm11,zmm0,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10]{k1},zmm0 + vmovdqu8 zmm0{k1}{z},zmm0 + vpshufb zmm17,zmm0,zmm29 + vextracti32x4 xmm7,zmm17,3 + sub r13,16 * (4 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_351 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_351 +$L$_small_initial_partial_block_351: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_351: + + or r13,r13 + je NEAR $L$_after_reduction_351 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_351: + jmp NEAR $L$_last_blocks_done_343 +$L$_last_num_blocks_is_5_343: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,251 + jae NEAR $L$_16_blocks_overflow_352 + vpaddd zmm0,zmm2,zmm28 + vpaddd xmm3,xmm0,xmm27 + jmp NEAR $L$_16_blocks_ok_352 + +$L$_16_blocks_overflow_352: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb xmm3,xmm3,xmm29 +$L$_16_blocks_ok_352: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm3,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 xmm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast xmm3,xmm3,xmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq xmm3,xmm3,xmm19 + vextracti32x4 xmm11,zmm3,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 XMMWORD[64+r11*1+r10]{k1},xmm3 + vmovdqu8 zmm3{k1}{z},zmm3 + vpshufb zmm17,zmm0,zmm29 + vpshufb xmm19,xmm3,xmm29 + vextracti32x4 xmm7,zmm19,0 + sub r13,16 * (5 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_353 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm19,xmm1,0x01 + vpclmulqdq xmm5,xmm19,xmm1,0x10 + vpclmulqdq xmm0,xmm19,xmm1,0x11 + vpclmulqdq xmm3,xmm19,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_353 +$L$_small_initial_partial_block_353: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_353: + + or r13,r13 + je NEAR $L$_after_reduction_353 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_353: + jmp NEAR $L$_last_blocks_done_343 +$L$_last_num_blocks_is_6_343: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,250 + jae NEAR $L$_16_blocks_overflow_354 + vpaddd zmm0,zmm2,zmm28 + vpaddd ymm3,ymm0,ymm27 + jmp NEAR $L$_16_blocks_ok_354 + +$L$_16_blocks_overflow_354: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb ymm3,ymm3,ymm29 +$L$_16_blocks_ok_354: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm3,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 ymm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast ymm3,ymm3,ymm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm11,zmm3,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 YMMWORD[64+r11*1+r10]{k1},ymm3 + vmovdqu8 zmm3{k1}{z},zmm3 + vpshufb zmm17,zmm0,zmm29 + vpshufb ymm19,ymm3,ymm29 + vextracti32x4 xmm7,zmm19,1 + sub r13,16 * (6 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_355 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm19,ymm1,0x01 + vpclmulqdq ymm5,ymm19,ymm1,0x10 + vpclmulqdq ymm0,ymm19,ymm1,0x11 + vpclmulqdq ymm3,ymm19,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_355 +$L$_small_initial_partial_block_355: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm19,xmm1,0x01 + vpclmulqdq xmm5,xmm19,xmm1,0x10 + vpclmulqdq xmm0,xmm19,xmm1,0x11 + vpclmulqdq xmm3,xmm19,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_355: + + or r13,r13 + je NEAR $L$_after_reduction_355 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_355: + jmp NEAR $L$_last_blocks_done_343 +$L$_last_num_blocks_is_7_343: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,249 + jae NEAR $L$_16_blocks_overflow_356 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + jmp NEAR $L$_16_blocks_ok_356 + +$L$_16_blocks_overflow_356: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 +$L$_16_blocks_ok_356: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm3,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti32x4 xmm11,zmm3,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10]{k1},zmm3 + vmovdqu8 zmm3{k1}{z},zmm3 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vextracti32x4 xmm7,zmm19,2 + sub r13,16 * (7 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_357 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm19,zmm1,0x01 + vpclmulqdq zmm5,zmm19,zmm1,0x10 + vpclmulqdq zmm0,zmm19,zmm1,0x11 + vpclmulqdq zmm3,zmm19,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_357 +$L$_small_initial_partial_block_357: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm19,ymm1,0x01 + vpclmulqdq ymm5,ymm19,ymm1,0x10 + vpclmulqdq ymm0,ymm19,ymm1,0x11 + vpclmulqdq ymm3,ymm19,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_357: + + or r13,r13 + je NEAR $L$_after_reduction_357 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_357: + jmp NEAR $L$_last_blocks_done_343 +$L$_last_num_blocks_is_8_343: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,248 + jae NEAR $L$_16_blocks_overflow_358 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + jmp NEAR $L$_16_blocks_ok_358 + +$L$_16_blocks_overflow_358: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 +$L$_16_blocks_ok_358: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm3,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti32x4 xmm11,zmm3,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10]{k1},zmm3 + vmovdqu8 zmm3{k1}{z},zmm3 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vextracti32x4 xmm7,zmm19,3 + sub r13,16 * (8 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_359 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_359 +$L$_small_initial_partial_block_359: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm19,zmm1,0x01 + vpclmulqdq zmm5,zmm19,zmm1,0x10 + vpclmulqdq zmm0,zmm19,zmm1,0x11 + vpclmulqdq zmm3,zmm19,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_359: + + or r13,r13 + je NEAR $L$_after_reduction_359 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_359: + jmp NEAR $L$_last_blocks_done_343 +$L$_last_num_blocks_is_9_343: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,247 + jae NEAR $L$_16_blocks_overflow_360 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd xmm4,xmm3,xmm27 + jmp NEAR $L$_16_blocks_ok_360 + +$L$_16_blocks_overflow_360: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb xmm4,xmm4,xmm29 +$L$_16_blocks_ok_360: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm4,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 xmm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast xmm4,xmm4,xmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq xmm4,xmm4,xmm20 + vextracti32x4 xmm11,zmm4,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 XMMWORD[128+r11*1+r10]{k1},xmm4 + vmovdqu8 zmm4{k1}{z},zmm4 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb xmm20,xmm4,xmm29 + vextracti32x4 xmm7,zmm20,0 + sub r13,16 * (9 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_361 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm20,xmm1,0x01 + vpclmulqdq xmm5,xmm20,xmm1,0x10 + vpclmulqdq xmm0,xmm20,xmm1,0x11 + vpclmulqdq xmm3,xmm20,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_361 +$L$_small_initial_partial_block_361: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_361: + + or r13,r13 + je NEAR $L$_after_reduction_361 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_361: + jmp NEAR $L$_last_blocks_done_343 +$L$_last_num_blocks_is_10_343: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,246 + jae NEAR $L$_16_blocks_overflow_362 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd ymm4,ymm3,ymm27 + jmp NEAR $L$_16_blocks_ok_362 + +$L$_16_blocks_overflow_362: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb ymm4,ymm4,ymm29 +$L$_16_blocks_ok_362: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm4,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 ymm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast ymm4,ymm4,ymm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq ymm4,ymm4,ymm20 + vextracti32x4 xmm11,zmm4,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 YMMWORD[128+r11*1+r10]{k1},ymm4 + vmovdqu8 zmm4{k1}{z},zmm4 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb ymm20,ymm4,ymm29 + vextracti32x4 xmm7,zmm20,1 + sub r13,16 * (10 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_363 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm20,ymm1,0x01 + vpclmulqdq ymm5,ymm20,ymm1,0x10 + vpclmulqdq ymm0,ymm20,ymm1,0x11 + vpclmulqdq ymm3,ymm20,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_363 +$L$_small_initial_partial_block_363: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm20,xmm1,0x01 + vpclmulqdq xmm5,xmm20,xmm1,0x10 + vpclmulqdq xmm0,xmm20,xmm1,0x11 + vpclmulqdq xmm3,xmm20,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_363: + + or r13,r13 + je NEAR $L$_after_reduction_363 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_363: + jmp NEAR $L$_last_blocks_done_343 +$L$_last_num_blocks_is_11_343: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,245 + jae NEAR $L$_16_blocks_overflow_364 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + jmp NEAR $L$_16_blocks_ok_364 + +$L$_16_blocks_overflow_364: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 +$L$_16_blocks_ok_364: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm4,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vextracti32x4 xmm11,zmm4,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10]{k1},zmm4 + vmovdqu8 zmm4{k1}{z},zmm4 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb zmm20,zmm4,zmm29 + vextracti32x4 xmm7,zmm20,2 + sub r13,16 * (11 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_365 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm20,zmm1,0x01 + vpclmulqdq zmm5,zmm20,zmm1,0x10 + vpclmulqdq zmm0,zmm20,zmm1,0x11 + vpclmulqdq zmm3,zmm20,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_365 +$L$_small_initial_partial_block_365: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm20,ymm1,0x01 + vpclmulqdq ymm5,ymm20,ymm1,0x10 + vpclmulqdq ymm0,ymm20,ymm1,0x11 + vpclmulqdq ymm3,ymm20,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_365: + + or r13,r13 + je NEAR $L$_after_reduction_365 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_365: + jmp NEAR $L$_last_blocks_done_343 +$L$_last_num_blocks_is_12_343: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,244 + jae NEAR $L$_16_blocks_overflow_366 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + jmp NEAR $L$_16_blocks_ok_366 + +$L$_16_blocks_overflow_366: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 +$L$_16_blocks_ok_366: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm4,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vextracti32x4 xmm11,zmm4,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10]{k1},zmm4 + vmovdqu8 zmm4{k1}{z},zmm4 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb zmm20,zmm4,zmm29 + vextracti32x4 xmm7,zmm20,3 + sub r13,16 * (12 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_367 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[160+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_367 +$L$_small_initial_partial_block_367: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm20,zmm1,0x01 + vpclmulqdq zmm5,zmm20,zmm1,0x10 + vpclmulqdq zmm0,zmm20,zmm1,0x11 + vpclmulqdq zmm3,zmm20,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_367: + + or r13,r13 + je NEAR $L$_after_reduction_367 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_367: + jmp NEAR $L$_last_blocks_done_343 +$L$_last_num_blocks_is_13_343: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,243 + jae NEAR $L$_16_blocks_overflow_368 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd xmm5,xmm4,xmm27 + jmp NEAR $L$_16_blocks_ok_368 + +$L$_16_blocks_overflow_368: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb xmm5,xmm5,xmm29 +$L$_16_blocks_ok_368: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm5,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 xmm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast xmm5,xmm5,xmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq xmm5,xmm5,xmm21 + vextracti32x4 xmm11,zmm5,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 XMMWORD[192+r11*1+r10]{k1},xmm5 + vmovdqu8 zmm5{k1}{z},zmm5 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb zmm20,zmm4,zmm29 + vpshufb xmm21,xmm5,xmm29 + vextracti32x4 xmm7,zmm21,0 + sub r13,16 * (13 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_369 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[144+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm21,xmm1,0x01 + vpclmulqdq xmm5,xmm21,xmm1,0x10 + vpclmulqdq xmm0,xmm21,xmm1,0x11 + vpclmulqdq xmm3,xmm21,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_369 +$L$_small_initial_partial_block_369: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[160+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_369: + + or r13,r13 + je NEAR $L$_after_reduction_369 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_369: + jmp NEAR $L$_last_blocks_done_343 +$L$_last_num_blocks_is_14_343: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,242 + jae NEAR $L$_16_blocks_overflow_370 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd ymm5,ymm4,ymm27 + jmp NEAR $L$_16_blocks_ok_370 + +$L$_16_blocks_overflow_370: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb ymm5,ymm5,ymm29 +$L$_16_blocks_ok_370: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm5,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 ymm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast ymm5,ymm5,ymm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq ymm5,ymm5,ymm21 + vextracti32x4 xmm11,zmm5,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 YMMWORD[192+r11*1+r10]{k1},ymm5 + vmovdqu8 zmm5{k1}{z},zmm5 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb zmm20,zmm4,zmm29 + vpshufb ymm21,ymm5,ymm29 + vextracti32x4 xmm7,zmm21,1 + sub r13,16 * (14 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_371 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[128+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm21,ymm1,0x01 + vpclmulqdq ymm5,ymm21,ymm1,0x10 + vpclmulqdq ymm0,ymm21,ymm1,0x11 + vpclmulqdq ymm3,ymm21,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_371 +$L$_small_initial_partial_block_371: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[144+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm21,xmm1,0x01 + vpclmulqdq xmm5,xmm21,xmm1,0x10 + vpclmulqdq xmm0,xmm21,xmm1,0x11 + vpclmulqdq xmm3,xmm21,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_371: + + or r13,r13 + je NEAR $L$_after_reduction_371 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_371: + jmp NEAR $L$_last_blocks_done_343 +$L$_last_num_blocks_is_15_343: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,241 + jae NEAR $L$_16_blocks_overflow_372 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_372 + +$L$_16_blocks_overflow_372: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_372: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm5,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + vextracti32x4 xmm11,zmm5,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[192+r11*1+r10]{k1},zmm5 + vmovdqu8 zmm5{k1}{z},zmm5 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb zmm20,zmm4,zmm29 + vpshufb zmm21,zmm5,zmm29 + vextracti32x4 xmm7,zmm21,2 + sub r13,16 * (15 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_373 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[112+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm21,zmm1,0x01 + vpclmulqdq zmm5,zmm21,zmm1,0x10 + vpclmulqdq zmm0,zmm21,zmm1,0x11 + vpclmulqdq zmm3,zmm21,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_373 +$L$_small_initial_partial_block_373: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[128+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm21,ymm1,0x01 + vpclmulqdq ymm5,ymm21,ymm1,0x10 + vpclmulqdq ymm0,ymm21,ymm1,0x11 + vpclmulqdq ymm3,ymm21,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_373: + + or r13,r13 + je NEAR $L$_after_reduction_373 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_373: + jmp NEAR $L$_last_blocks_done_343 +$L$_last_num_blocks_is_16_343: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,240 + jae NEAR $L$_16_blocks_overflow_374 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_374 + +$L$_16_blocks_overflow_374: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_374: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm5,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + vextracti32x4 xmm11,zmm5,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[192+r11*1+r10]{k1},zmm5 + vmovdqu8 zmm5{k1}{z},zmm5 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb zmm20,zmm4,zmm29 + vpshufb zmm21,zmm5,zmm29 + vextracti32x4 xmm7,zmm21,3 + sub r13,16 * (16 - 1) +$L$_small_initial_partial_block_375: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[112+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm21,zmm1,0x01 + vpclmulqdq zmm5,zmm21,zmm1,0x10 + vpclmulqdq zmm0,zmm21,zmm1,0x11 + vpclmulqdq zmm3,zmm21,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_375: + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_375: + jmp NEAR $L$_last_blocks_done_343 +$L$_last_num_blocks_is_0_343: + vmovdqa64 zmm13,ZMMWORD[1024+rsp] + vmovdqu64 zmm12,ZMMWORD[rbx*1+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[1088+rsp] + vmovdqu64 zmm12,ZMMWORD[64+rbx*1+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + vpternlogq zmm26,zmm4,zmm10,0x96 + vpternlogq zmm24,zmm0,zmm6,0x96 + vpternlogq zmm25,zmm3,zmm7,0x96 + vpternlogq zmm26,zmm5,zmm11,0x96 + vmovdqa64 zmm13,ZMMWORD[1152+rsp] + vmovdqu64 zmm12,ZMMWORD[128+rbx*1+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[1216+rsp] + vmovdqu64 zmm12,ZMMWORD[192+rbx*1+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + + vpternlogq zmm26,zmm4,zmm10,0x96 + vpternlogq zmm24,zmm0,zmm6,0x96 + vpternlogq zmm25,zmm3,zmm7,0x96 + vpternlogq zmm26,zmm5,zmm11,0x96 + + vpsrldq zmm0,zmm26,8 + vpslldq zmm3,zmm26,8 + vpxorq zmm24,zmm24,zmm0 + vpxorq zmm25,zmm25,zmm3 + vextracti64x4 ymm0,zmm24,1 + vpxorq ymm24,ymm24,ymm0 + vextracti32x4 xmm0,ymm24,1 + vpxorq xmm24,xmm24,xmm0 + vextracti64x4 ymm3,zmm25,1 + vpxorq ymm25,ymm25,ymm3 + vextracti32x4 xmm3,ymm25,1 + vpxorq xmm25,xmm25,xmm3 + vmovdqa64 xmm4,XMMWORD[POLY2] + + + vpclmulqdq xmm0,xmm4,xmm25,0x01 + vpslldq xmm0,xmm0,8 + vpxorq xmm0,xmm25,xmm0 + + + vpclmulqdq xmm3,xmm4,xmm0,0x00 + vpsrldq xmm3,xmm3,4 + vpclmulqdq xmm14,xmm4,xmm0,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm3,xmm24,0x96 + +$L$_last_blocks_done_343: + vpshufb xmm2,xmm2,xmm29 + jmp NEAR $L$_ghash_done_334 +$L$_encrypt_32_blocks_334: + cmp r15b,240 + jae NEAR $L$_16_blocks_overflow_376 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_376 +$L$_16_blocks_overflow_376: + vpshufb zmm2,zmm2,zmm29 + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_376: + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rsp] + + + + + vshufi64x2 zmm2,zmm5,zmm5,255 + add r15b,16 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + + + + + + + + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + + vpclmulqdq zmm6,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + + vpternlogq zmm6,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + + + + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm21,ZMMWORD[192+r11*1+r9] + + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm26,zmm10,zmm15 + vpxorq zmm24,zmm6,zmm12 + vpxorq zmm25,zmm7,zmm13 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + + + + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + + + + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[192+r11*1+r10],zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 + vmovdqa64 ZMMWORD[1280+rsp],zmm0 + vmovdqa64 ZMMWORD[1344+rsp],zmm3 + vmovdqa64 ZMMWORD[1408+rsp],zmm4 + vmovdqa64 ZMMWORD[1472+rsp],zmm5 + cmp r15b,240 + jae NEAR $L$_16_blocks_overflow_377 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_377 +$L$_16_blocks_overflow_377: + vpshufb zmm2,zmm2,zmm29 + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_377: + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[256+rsp] + + + + + vshufi64x2 zmm2,zmm5,zmm5,255 + add r15b,16 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[320+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + + + + + + + + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + + vpclmulqdq zmm6,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[384+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[448+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + + vpternlogq zmm6,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + + + + vmovdqu8 zmm17,ZMMWORD[256+r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[320+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[384+r11*1+r9] + vmovdqu8 zmm21,ZMMWORD[448+r11*1+r9] + + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vpternlogq zmm24,zmm6,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + + + + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + + + + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[256+r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[320+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[384+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[448+r11*1+r10],zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 + vmovdqa64 ZMMWORD[768+rsp],zmm0 + vmovdqa64 ZMMWORD[832+rsp],zmm3 + vmovdqa64 ZMMWORD[896+rsp],zmm4 + vmovdqa64 ZMMWORD[960+rsp],zmm5 + vmovdqa64 zmm13,ZMMWORD[1280+rsp] + vmovdqu64 zmm12,ZMMWORD[512+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[1344+rsp] + vmovdqu64 zmm12,ZMMWORD[576+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + vpternlogq zmm26,zmm4,zmm10,0x96 + vpternlogq zmm24,zmm0,zmm6,0x96 + vpternlogq zmm25,zmm3,zmm7,0x96 + vpternlogq zmm26,zmm5,zmm11,0x96 + vmovdqa64 zmm13,ZMMWORD[1408+rsp] + vmovdqu64 zmm12,ZMMWORD[640+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[1472+rsp] + vmovdqu64 zmm12,ZMMWORD[704+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + + vpternlogq zmm26,zmm4,zmm10,0x96 + vpternlogq zmm24,zmm0,zmm6,0x96 + vpternlogq zmm25,zmm3,zmm7,0x96 + vpternlogq zmm26,zmm5,zmm11,0x96 + + vpsrldq zmm0,zmm26,8 + vpslldq zmm3,zmm26,8 + vpxorq zmm24,zmm24,zmm0 + vpxorq zmm25,zmm25,zmm3 + vextracti64x4 ymm0,zmm24,1 + vpxorq ymm24,ymm24,ymm0 + vextracti32x4 xmm0,ymm24,1 + vpxorq xmm24,xmm24,xmm0 + vextracti64x4 ymm3,zmm25,1 + vpxorq ymm25,ymm25,ymm3 + vextracti32x4 xmm3,ymm25,1 + vpxorq xmm25,xmm25,xmm3 + vmovdqa64 xmm4,XMMWORD[POLY2] + + + vpclmulqdq xmm0,xmm4,xmm25,0x01 + vpslldq xmm0,xmm0,8 + vpxorq xmm0,xmm25,xmm0 + + + vpclmulqdq xmm3,xmm4,xmm0,0x00 + vpsrldq xmm3,xmm3,4 + vpclmulqdq xmm14,xmm4,xmm0,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm3,xmm24,0x96 + + sub r13,512 + add r11,512 + mov r10d,r13d + and r10d,~15 + mov ebx,512 + sub ebx,r10d + mov r10d,r13d + add r10d,15 + shr r10d,4 + je NEAR $L$_last_num_blocks_is_0_378 + + cmp r10d,8 + je NEAR $L$_last_num_blocks_is_8_378 + jb NEAR $L$_last_num_blocks_is_7_1_378 + + + cmp r10d,12 + je NEAR $L$_last_num_blocks_is_12_378 + jb NEAR $L$_last_num_blocks_is_11_9_378 + + + cmp r10d,15 + je NEAR $L$_last_num_blocks_is_15_378 + ja NEAR $L$_last_num_blocks_is_16_378 + cmp r10d,14 + je NEAR $L$_last_num_blocks_is_14_378 + jmp NEAR $L$_last_num_blocks_is_13_378 + +$L$_last_num_blocks_is_11_9_378: + + cmp r10d,10 + je NEAR $L$_last_num_blocks_is_10_378 + ja NEAR $L$_last_num_blocks_is_11_378 + jmp NEAR $L$_last_num_blocks_is_9_378 + +$L$_last_num_blocks_is_7_1_378: + cmp r10d,4 + je NEAR $L$_last_num_blocks_is_4_378 + jb NEAR $L$_last_num_blocks_is_3_1_378 + + cmp r10d,6 + ja NEAR $L$_last_num_blocks_is_7_378 + je NEAR $L$_last_num_blocks_is_6_378 + jmp NEAR $L$_last_num_blocks_is_5_378 + +$L$_last_num_blocks_is_3_1_378: + + cmp r10d,2 + ja NEAR $L$_last_num_blocks_is_3_378 + je NEAR $L$_last_num_blocks_is_2_378 +$L$_last_num_blocks_is_1_378: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,255 + jae NEAR $L$_16_blocks_overflow_379 + vpaddd xmm0,xmm2,xmm28 + jmp NEAR $L$_16_blocks_ok_379 + +$L$_16_blocks_overflow_379: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb xmm0,xmm0,xmm29 +$L$_16_blocks_ok_379: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm0,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 xmm17{k1}{z},[r11*1+r9] + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc xmm0,xmm0,xmm31 + vaesenclast xmm0,xmm0,xmm30 + vpxorq xmm0,xmm0,xmm17 + vextracti32x4 xmm11,zmm0,0 + mov r10,QWORD[120+rbp] + vmovdqu8 XMMWORD[r11*1+r10]{k1},xmm0 + vmovdqu8 zmm0{k1}{z},zmm0 + vpshufb xmm17,xmm0,xmm29 + vextracti32x4 xmm7,zmm17,0 + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_380 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm17,xmm1,0x01 + vpclmulqdq xmm5,xmm17,xmm1,0x10 + vpclmulqdq xmm0,xmm17,xmm1,0x11 + vpclmulqdq xmm3,xmm17,xmm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_380 +$L$_small_initial_partial_block_380: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + + + vpsrldq zmm0,zmm26,8 + vpslldq zmm3,zmm26,8 + vpxorq zmm24,zmm24,zmm0 + vpxorq zmm25,zmm25,zmm3 + vextracti64x4 ymm0,zmm24,1 + vpxorq ymm24,ymm24,ymm0 + vextracti32x4 xmm0,ymm24,1 + vpxorq xmm24,xmm24,xmm0 + vextracti64x4 ymm3,zmm25,1 + vpxorq ymm25,ymm25,ymm3 + vextracti32x4 xmm3,ymm25,1 + vpxorq xmm25,xmm25,xmm3 + vmovdqa64 xmm0,XMMWORD[POLY2] + + + vpclmulqdq xmm3,xmm0,xmm25,0x01 + vpslldq xmm3,xmm3,8 + vpxorq xmm3,xmm25,xmm3 + + + vpclmulqdq xmm4,xmm0,xmm3,0x00 + vpsrldq xmm4,xmm4,4 + vpclmulqdq xmm14,xmm0,xmm3,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm4,xmm24,0x96 + + + + + + + + + + + + + vpxorq xmm14,xmm14,xmm7 + + jmp NEAR $L$_after_reduction_380 +$L$_small_initial_compute_done_380: +$L$_after_reduction_380: + jmp NEAR $L$_last_blocks_done_378 +$L$_last_num_blocks_is_2_378: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,254 + jae NEAR $L$_16_blocks_overflow_381 + vpaddd ymm0,ymm2,ymm28 + jmp NEAR $L$_16_blocks_ok_381 + +$L$_16_blocks_overflow_381: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb ymm0,ymm0,ymm29 +$L$_16_blocks_ok_381: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm0,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 ymm17{k1}{z},[r11*1+r9] + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc ymm0,ymm0,ymm31 + vaesenclast ymm0,ymm0,ymm30 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm11,zmm0,1 + mov r10,QWORD[120+rbp] + vmovdqu8 YMMWORD[r11*1+r10]{k1},ymm0 + vmovdqu8 zmm0{k1}{z},zmm0 + vpshufb ymm17,ymm0,ymm29 + vextracti32x4 xmm7,zmm17,1 + sub r13,16 * (2 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_382 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm17,ymm1,0x01 + vpclmulqdq ymm5,ymm17,ymm1,0x10 + vpclmulqdq ymm0,ymm17,ymm1,0x11 + vpclmulqdq ymm3,ymm17,ymm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_382 +$L$_small_initial_partial_block_382: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm17,xmm1,0x01 + vpclmulqdq xmm5,xmm17,xmm1,0x10 + vpclmulqdq xmm0,xmm17,xmm1,0x11 + vpclmulqdq xmm3,xmm17,xmm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_382: + + or r13,r13 + je NEAR $L$_after_reduction_382 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_382: + jmp NEAR $L$_last_blocks_done_378 +$L$_last_num_blocks_is_3_378: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,253 + jae NEAR $L$_16_blocks_overflow_383 + vpaddd zmm0,zmm2,zmm28 + jmp NEAR $L$_16_blocks_ok_383 + +$L$_16_blocks_overflow_383: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb zmm0,zmm0,zmm29 +$L$_16_blocks_ok_383: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm0,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17{k1}{z},[r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vpxorq zmm0,zmm0,zmm17 + vextracti32x4 xmm11,zmm0,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10]{k1},zmm0 + vmovdqu8 zmm0{k1}{z},zmm0 + vpshufb zmm17,zmm0,zmm29 + vextracti32x4 xmm7,zmm17,2 + sub r13,16 * (3 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_384 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_384 +$L$_small_initial_partial_block_384: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm17,ymm1,0x01 + vpclmulqdq ymm5,ymm17,ymm1,0x10 + vpclmulqdq ymm0,ymm17,ymm1,0x11 + vpclmulqdq ymm3,ymm17,ymm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_384: + + or r13,r13 + je NEAR $L$_after_reduction_384 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_384: + jmp NEAR $L$_last_blocks_done_378 +$L$_last_num_blocks_is_4_378: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,252 + jae NEAR $L$_16_blocks_overflow_385 + vpaddd zmm0,zmm2,zmm28 + jmp NEAR $L$_16_blocks_ok_385 + +$L$_16_blocks_overflow_385: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb zmm0,zmm0,zmm29 +$L$_16_blocks_ok_385: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm0,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17{k1}{z},[r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vpxorq zmm0,zmm0,zmm17 + vextracti32x4 xmm11,zmm0,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10]{k1},zmm0 + vmovdqu8 zmm0{k1}{z},zmm0 + vpshufb zmm17,zmm0,zmm29 + vextracti32x4 xmm7,zmm17,3 + sub r13,16 * (4 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_386 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_386 +$L$_small_initial_partial_block_386: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_386: + + or r13,r13 + je NEAR $L$_after_reduction_386 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_386: + jmp NEAR $L$_last_blocks_done_378 +$L$_last_num_blocks_is_5_378: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,251 + jae NEAR $L$_16_blocks_overflow_387 + vpaddd zmm0,zmm2,zmm28 + vpaddd xmm3,xmm0,xmm27 + jmp NEAR $L$_16_blocks_ok_387 + +$L$_16_blocks_overflow_387: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb xmm3,xmm3,xmm29 +$L$_16_blocks_ok_387: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm3,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 xmm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast xmm3,xmm3,xmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq xmm3,xmm3,xmm19 + vextracti32x4 xmm11,zmm3,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 XMMWORD[64+r11*1+r10]{k1},xmm3 + vmovdqu8 zmm3{k1}{z},zmm3 + vpshufb zmm17,zmm0,zmm29 + vpshufb xmm19,xmm3,xmm29 + vextracti32x4 xmm7,zmm19,0 + sub r13,16 * (5 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_388 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm19,xmm1,0x01 + vpclmulqdq xmm5,xmm19,xmm1,0x10 + vpclmulqdq xmm0,xmm19,xmm1,0x11 + vpclmulqdq xmm3,xmm19,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_388 +$L$_small_initial_partial_block_388: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_388: + + or r13,r13 + je NEAR $L$_after_reduction_388 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_388: + jmp NEAR $L$_last_blocks_done_378 +$L$_last_num_blocks_is_6_378: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,250 + jae NEAR $L$_16_blocks_overflow_389 + vpaddd zmm0,zmm2,zmm28 + vpaddd ymm3,ymm0,ymm27 + jmp NEAR $L$_16_blocks_ok_389 + +$L$_16_blocks_overflow_389: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb ymm3,ymm3,ymm29 +$L$_16_blocks_ok_389: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm3,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 ymm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast ymm3,ymm3,ymm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm11,zmm3,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 YMMWORD[64+r11*1+r10]{k1},ymm3 + vmovdqu8 zmm3{k1}{z},zmm3 + vpshufb zmm17,zmm0,zmm29 + vpshufb ymm19,ymm3,ymm29 + vextracti32x4 xmm7,zmm19,1 + sub r13,16 * (6 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_390 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm19,ymm1,0x01 + vpclmulqdq ymm5,ymm19,ymm1,0x10 + vpclmulqdq ymm0,ymm19,ymm1,0x11 + vpclmulqdq ymm3,ymm19,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_390 +$L$_small_initial_partial_block_390: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm19,xmm1,0x01 + vpclmulqdq xmm5,xmm19,xmm1,0x10 + vpclmulqdq xmm0,xmm19,xmm1,0x11 + vpclmulqdq xmm3,xmm19,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_390: + + or r13,r13 + je NEAR $L$_after_reduction_390 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_390: + jmp NEAR $L$_last_blocks_done_378 +$L$_last_num_blocks_is_7_378: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,249 + jae NEAR $L$_16_blocks_overflow_391 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + jmp NEAR $L$_16_blocks_ok_391 + +$L$_16_blocks_overflow_391: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 +$L$_16_blocks_ok_391: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm3,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti32x4 xmm11,zmm3,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10]{k1},zmm3 + vmovdqu8 zmm3{k1}{z},zmm3 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vextracti32x4 xmm7,zmm19,2 + sub r13,16 * (7 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_392 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm19,zmm1,0x01 + vpclmulqdq zmm5,zmm19,zmm1,0x10 + vpclmulqdq zmm0,zmm19,zmm1,0x11 + vpclmulqdq zmm3,zmm19,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_392 +$L$_small_initial_partial_block_392: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm19,ymm1,0x01 + vpclmulqdq ymm5,ymm19,ymm1,0x10 + vpclmulqdq ymm0,ymm19,ymm1,0x11 + vpclmulqdq ymm3,ymm19,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_392: + + or r13,r13 + je NEAR $L$_after_reduction_392 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_392: + jmp NEAR $L$_last_blocks_done_378 +$L$_last_num_blocks_is_8_378: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,248 + jae NEAR $L$_16_blocks_overflow_393 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + jmp NEAR $L$_16_blocks_ok_393 + +$L$_16_blocks_overflow_393: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 +$L$_16_blocks_ok_393: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm3,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti32x4 xmm11,zmm3,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10]{k1},zmm3 + vmovdqu8 zmm3{k1}{z},zmm3 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vextracti32x4 xmm7,zmm19,3 + sub r13,16 * (8 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_394 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_394 +$L$_small_initial_partial_block_394: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm19,zmm1,0x01 + vpclmulqdq zmm5,zmm19,zmm1,0x10 + vpclmulqdq zmm0,zmm19,zmm1,0x11 + vpclmulqdq zmm3,zmm19,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_394: + + or r13,r13 + je NEAR $L$_after_reduction_394 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_394: + jmp NEAR $L$_last_blocks_done_378 +$L$_last_num_blocks_is_9_378: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,247 + jae NEAR $L$_16_blocks_overflow_395 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd xmm4,xmm3,xmm27 + jmp NEAR $L$_16_blocks_ok_395 + +$L$_16_blocks_overflow_395: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb xmm4,xmm4,xmm29 +$L$_16_blocks_ok_395: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm4,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 xmm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast xmm4,xmm4,xmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq xmm4,xmm4,xmm20 + vextracti32x4 xmm11,zmm4,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 XMMWORD[128+r11*1+r10]{k1},xmm4 + vmovdqu8 zmm4{k1}{z},zmm4 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb xmm20,xmm4,xmm29 + vextracti32x4 xmm7,zmm20,0 + sub r13,16 * (9 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_396 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm20,xmm1,0x01 + vpclmulqdq xmm5,xmm20,xmm1,0x10 + vpclmulqdq xmm0,xmm20,xmm1,0x11 + vpclmulqdq xmm3,xmm20,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_396 +$L$_small_initial_partial_block_396: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_396: + + or r13,r13 + je NEAR $L$_after_reduction_396 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_396: + jmp NEAR $L$_last_blocks_done_378 +$L$_last_num_blocks_is_10_378: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,246 + jae NEAR $L$_16_blocks_overflow_397 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd ymm4,ymm3,ymm27 + jmp NEAR $L$_16_blocks_ok_397 + +$L$_16_blocks_overflow_397: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb ymm4,ymm4,ymm29 +$L$_16_blocks_ok_397: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm4,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 ymm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast ymm4,ymm4,ymm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq ymm4,ymm4,ymm20 + vextracti32x4 xmm11,zmm4,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 YMMWORD[128+r11*1+r10]{k1},ymm4 + vmovdqu8 zmm4{k1}{z},zmm4 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb ymm20,ymm4,ymm29 + vextracti32x4 xmm7,zmm20,1 + sub r13,16 * (10 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_398 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm20,ymm1,0x01 + vpclmulqdq ymm5,ymm20,ymm1,0x10 + vpclmulqdq ymm0,ymm20,ymm1,0x11 + vpclmulqdq ymm3,ymm20,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_398 +$L$_small_initial_partial_block_398: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm20,xmm1,0x01 + vpclmulqdq xmm5,xmm20,xmm1,0x10 + vpclmulqdq xmm0,xmm20,xmm1,0x11 + vpclmulqdq xmm3,xmm20,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_398: + + or r13,r13 + je NEAR $L$_after_reduction_398 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_398: + jmp NEAR $L$_last_blocks_done_378 +$L$_last_num_blocks_is_11_378: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,245 + jae NEAR $L$_16_blocks_overflow_399 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + jmp NEAR $L$_16_blocks_ok_399 + +$L$_16_blocks_overflow_399: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 +$L$_16_blocks_ok_399: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm4,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vextracti32x4 xmm11,zmm4,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10]{k1},zmm4 + vmovdqu8 zmm4{k1}{z},zmm4 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb zmm20,zmm4,zmm29 + vextracti32x4 xmm7,zmm20,2 + sub r13,16 * (11 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_400 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm20,zmm1,0x01 + vpclmulqdq zmm5,zmm20,zmm1,0x10 + vpclmulqdq zmm0,zmm20,zmm1,0x11 + vpclmulqdq zmm3,zmm20,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_400 +$L$_small_initial_partial_block_400: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm20,ymm1,0x01 + vpclmulqdq ymm5,ymm20,ymm1,0x10 + vpclmulqdq ymm0,ymm20,ymm1,0x11 + vpclmulqdq ymm3,ymm20,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_400: + + or r13,r13 + je NEAR $L$_after_reduction_400 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_400: + jmp NEAR $L$_last_blocks_done_378 +$L$_last_num_blocks_is_12_378: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,244 + jae NEAR $L$_16_blocks_overflow_401 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + jmp NEAR $L$_16_blocks_ok_401 + +$L$_16_blocks_overflow_401: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 +$L$_16_blocks_ok_401: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm4,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vextracti32x4 xmm11,zmm4,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10]{k1},zmm4 + vmovdqu8 zmm4{k1}{z},zmm4 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb zmm20,zmm4,zmm29 + vextracti32x4 xmm7,zmm20,3 + sub r13,16 * (12 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_402 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[160+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_402 +$L$_small_initial_partial_block_402: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm20,zmm1,0x01 + vpclmulqdq zmm5,zmm20,zmm1,0x10 + vpclmulqdq zmm0,zmm20,zmm1,0x11 + vpclmulqdq zmm3,zmm20,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_402: + + or r13,r13 + je NEAR $L$_after_reduction_402 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_402: + jmp NEAR $L$_last_blocks_done_378 +$L$_last_num_blocks_is_13_378: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,243 + jae NEAR $L$_16_blocks_overflow_403 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd xmm5,xmm4,xmm27 + jmp NEAR $L$_16_blocks_ok_403 + +$L$_16_blocks_overflow_403: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb xmm5,xmm5,xmm29 +$L$_16_blocks_ok_403: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm5,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 xmm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast xmm5,xmm5,xmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq xmm5,xmm5,xmm21 + vextracti32x4 xmm11,zmm5,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 XMMWORD[192+r11*1+r10]{k1},xmm5 + vmovdqu8 zmm5{k1}{z},zmm5 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb zmm20,zmm4,zmm29 + vpshufb xmm21,xmm5,xmm29 + vextracti32x4 xmm7,zmm21,0 + sub r13,16 * (13 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_404 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[144+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm21,xmm1,0x01 + vpclmulqdq xmm5,xmm21,xmm1,0x10 + vpclmulqdq xmm0,xmm21,xmm1,0x11 + vpclmulqdq xmm3,xmm21,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_404 +$L$_small_initial_partial_block_404: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[160+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_404: + + or r13,r13 + je NEAR $L$_after_reduction_404 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_404: + jmp NEAR $L$_last_blocks_done_378 +$L$_last_num_blocks_is_14_378: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,242 + jae NEAR $L$_16_blocks_overflow_405 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd ymm5,ymm4,ymm27 + jmp NEAR $L$_16_blocks_ok_405 + +$L$_16_blocks_overflow_405: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb ymm5,ymm5,ymm29 +$L$_16_blocks_ok_405: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm5,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 ymm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast ymm5,ymm5,ymm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq ymm5,ymm5,ymm21 + vextracti32x4 xmm11,zmm5,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 YMMWORD[192+r11*1+r10]{k1},ymm5 + vmovdqu8 zmm5{k1}{z},zmm5 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb zmm20,zmm4,zmm29 + vpshufb ymm21,ymm5,ymm29 + vextracti32x4 xmm7,zmm21,1 + sub r13,16 * (14 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_406 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[128+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm21,ymm1,0x01 + vpclmulqdq ymm5,ymm21,ymm1,0x10 + vpclmulqdq ymm0,ymm21,ymm1,0x11 + vpclmulqdq ymm3,ymm21,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_406 +$L$_small_initial_partial_block_406: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[144+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm21,xmm1,0x01 + vpclmulqdq xmm5,xmm21,xmm1,0x10 + vpclmulqdq xmm0,xmm21,xmm1,0x11 + vpclmulqdq xmm3,xmm21,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_406: + + or r13,r13 + je NEAR $L$_after_reduction_406 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_406: + jmp NEAR $L$_last_blocks_done_378 +$L$_last_num_blocks_is_15_378: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,241 + jae NEAR $L$_16_blocks_overflow_407 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_407 + +$L$_16_blocks_overflow_407: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_407: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm5,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + vextracti32x4 xmm11,zmm5,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[192+r11*1+r10]{k1},zmm5 + vmovdqu8 zmm5{k1}{z},zmm5 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb zmm20,zmm4,zmm29 + vpshufb zmm21,zmm5,zmm29 + vextracti32x4 xmm7,zmm21,2 + sub r13,16 * (15 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_408 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[112+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm21,zmm1,0x01 + vpclmulqdq zmm5,zmm21,zmm1,0x10 + vpclmulqdq zmm0,zmm21,zmm1,0x11 + vpclmulqdq zmm3,zmm21,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_408 +$L$_small_initial_partial_block_408: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[128+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm21,ymm1,0x01 + vpclmulqdq ymm5,ymm21,ymm1,0x10 + vpclmulqdq ymm0,ymm21,ymm1,0x11 + vpclmulqdq ymm3,ymm21,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_408: + + or r13,r13 + je NEAR $L$_after_reduction_408 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_408: + jmp NEAR $L$_last_blocks_done_378 +$L$_last_num_blocks_is_16_378: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,240 + jae NEAR $L$_16_blocks_overflow_409 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_409 + +$L$_16_blocks_overflow_409: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_409: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm5,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + vextracti32x4 xmm11,zmm5,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[192+r11*1+r10]{k1},zmm5 + vmovdqu8 zmm5{k1}{z},zmm5 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb zmm20,zmm4,zmm29 + vpshufb zmm21,zmm5,zmm29 + vextracti32x4 xmm7,zmm21,3 + sub r13,16 * (16 - 1) +$L$_small_initial_partial_block_410: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[112+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm21,zmm1,0x01 + vpclmulqdq zmm5,zmm21,zmm1,0x10 + vpclmulqdq zmm0,zmm21,zmm1,0x11 + vpclmulqdq zmm3,zmm21,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_410: + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_410: + jmp NEAR $L$_last_blocks_done_378 +$L$_last_num_blocks_is_0_378: + vmovdqa64 zmm13,ZMMWORD[768+rsp] + vpxorq zmm13,zmm13,zmm14 + vmovdqu64 zmm12,ZMMWORD[rbx*1+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[832+rsp] + vmovdqu64 zmm12,ZMMWORD[64+rbx*1+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + vpxorq zmm26,zmm4,zmm10 + vpxorq zmm24,zmm0,zmm6 + vpxorq zmm25,zmm3,zmm7 + vpternlogq zmm26,zmm5,zmm11,0x96 + vmovdqa64 zmm13,ZMMWORD[896+rsp] + vmovdqu64 zmm12,ZMMWORD[128+rbx*1+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[960+rsp] + vmovdqu64 zmm12,ZMMWORD[192+rbx*1+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + + vpternlogq zmm26,zmm4,zmm10,0x96 + vpternlogq zmm24,zmm0,zmm6,0x96 + vpternlogq zmm25,zmm3,zmm7,0x96 + vpternlogq zmm26,zmm5,zmm11,0x96 + + vpsrldq zmm0,zmm26,8 + vpslldq zmm3,zmm26,8 + vpxorq zmm24,zmm24,zmm0 + vpxorq zmm25,zmm25,zmm3 + vextracti64x4 ymm0,zmm24,1 + vpxorq ymm24,ymm24,ymm0 + vextracti32x4 xmm0,ymm24,1 + vpxorq xmm24,xmm24,xmm0 + vextracti64x4 ymm3,zmm25,1 + vpxorq ymm25,ymm25,ymm3 + vextracti32x4 xmm3,ymm25,1 + vpxorq xmm25,xmm25,xmm3 + vmovdqa64 xmm4,XMMWORD[POLY2] + + + vpclmulqdq xmm0,xmm4,xmm25,0x01 + vpslldq xmm0,xmm0,8 + vpxorq xmm0,xmm25,xmm0 + + + vpclmulqdq xmm3,xmm4,xmm0,0x00 + vpsrldq xmm3,xmm3,4 + vpclmulqdq xmm14,xmm4,xmm0,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm3,xmm24,0x96 + +$L$_last_blocks_done_378: + vpshufb xmm2,xmm2,xmm29 + jmp NEAR $L$_ghash_done_334 +$L$_encrypt_16_blocks_334: + cmp r15b,240 + jae NEAR $L$_16_blocks_overflow_411 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_411 +$L$_16_blocks_overflow_411: + vpshufb zmm2,zmm2,zmm29 + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_411: + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rsp] + + + + + vshufi64x2 zmm2,zmm5,zmm5,255 + add r15b,16 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + + + + + + + + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + + vpclmulqdq zmm6,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + + vpternlogq zmm6,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + + + + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm21,ZMMWORD[192+r11*1+r9] + + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm26,zmm10,zmm15 + vpxorq zmm24,zmm6,zmm12 + vpxorq zmm25,zmm7,zmm13 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + + + + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + + + + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[192+r11*1+r10],zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 + vmovdqa64 ZMMWORD[1280+rsp],zmm0 + vmovdqa64 ZMMWORD[1344+rsp],zmm3 + vmovdqa64 ZMMWORD[1408+rsp],zmm4 + vmovdqa64 ZMMWORD[1472+rsp],zmm5 + vmovdqa64 zmm13,ZMMWORD[1024+rsp] + vmovdqu64 zmm12,ZMMWORD[256+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[1088+rsp] + vmovdqu64 zmm12,ZMMWORD[320+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + vpternlogq zmm26,zmm4,zmm10,0x96 + vpternlogq zmm24,zmm0,zmm6,0x96 + vpternlogq zmm25,zmm3,zmm7,0x96 + vpternlogq zmm26,zmm5,zmm11,0x96 + vmovdqa64 zmm13,ZMMWORD[1152+rsp] + vmovdqu64 zmm12,ZMMWORD[384+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[1216+rsp] + vmovdqu64 zmm12,ZMMWORD[448+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + + vpternlogq zmm26,zmm4,zmm10,0x96 + vpternlogq zmm24,zmm0,zmm6,0x96 + vpternlogq zmm25,zmm3,zmm7,0x96 + vpternlogq zmm26,zmm5,zmm11,0x96 + sub r13,256 + add r11,256 + mov r10d,r13d + add r10d,15 + shr r10d,4 + je NEAR $L$_last_num_blocks_is_0_412 + + cmp r10d,8 + je NEAR $L$_last_num_blocks_is_8_412 + jb NEAR $L$_last_num_blocks_is_7_1_412 + + + cmp r10d,12 + je NEAR $L$_last_num_blocks_is_12_412 + jb NEAR $L$_last_num_blocks_is_11_9_412 + + + cmp r10d,15 + je NEAR $L$_last_num_blocks_is_15_412 + ja NEAR $L$_last_num_blocks_is_16_412 + cmp r10d,14 + je NEAR $L$_last_num_blocks_is_14_412 + jmp NEAR $L$_last_num_blocks_is_13_412 + +$L$_last_num_blocks_is_11_9_412: + + cmp r10d,10 + je NEAR $L$_last_num_blocks_is_10_412 + ja NEAR $L$_last_num_blocks_is_11_412 + jmp NEAR $L$_last_num_blocks_is_9_412 + +$L$_last_num_blocks_is_7_1_412: + cmp r10d,4 + je NEAR $L$_last_num_blocks_is_4_412 + jb NEAR $L$_last_num_blocks_is_3_1_412 + + cmp r10d,6 + ja NEAR $L$_last_num_blocks_is_7_412 + je NEAR $L$_last_num_blocks_is_6_412 + jmp NEAR $L$_last_num_blocks_is_5_412 + +$L$_last_num_blocks_is_3_1_412: + + cmp r10d,2 + ja NEAR $L$_last_num_blocks_is_3_412 + je NEAR $L$_last_num_blocks_is_2_412 +$L$_last_num_blocks_is_1_412: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,255 + jae NEAR $L$_16_blocks_overflow_413 + vpaddd xmm0,xmm2,xmm28 + jmp NEAR $L$_16_blocks_ok_413 + +$L$_16_blocks_overflow_413: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb xmm0,xmm0,xmm29 +$L$_16_blocks_ok_413: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm0,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 xmm17{k1}{z},[r11*1+r9] + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc xmm0,xmm0,xmm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc xmm0,xmm0,xmm31 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast xmm0,xmm0,xmm30 + vpxorq xmm0,xmm0,xmm17 + vextracti32x4 xmm11,zmm0,0 + mov r10,QWORD[120+rbp] + vmovdqu8 XMMWORD[r11*1+r10]{k1},xmm0 + vmovdqu8 zmm0{k1}{z},zmm0 + vpshufb xmm17,xmm0,xmm29 + vextracti32x4 xmm7,zmm17,0 + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_414 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm17,xmm1,0x01 + vpclmulqdq xmm5,xmm17,xmm1,0x10 + vpclmulqdq xmm0,xmm17,xmm1,0x11 + vpclmulqdq xmm3,xmm17,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_414 +$L$_small_initial_partial_block_414: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + + + + + + + + + + + + vpxorq xmm14,xmm14,xmm7 + + jmp NEAR $L$_after_reduction_414 +$L$_small_initial_compute_done_414: +$L$_after_reduction_414: + jmp NEAR $L$_last_blocks_done_412 +$L$_last_num_blocks_is_2_412: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,254 + jae NEAR $L$_16_blocks_overflow_415 + vpaddd ymm0,ymm2,ymm28 + jmp NEAR $L$_16_blocks_ok_415 + +$L$_16_blocks_overflow_415: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb ymm0,ymm0,ymm29 +$L$_16_blocks_ok_415: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm0,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 ymm17{k1}{z},[r11*1+r9] + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc ymm0,ymm0,ymm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc ymm0,ymm0,ymm31 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast ymm0,ymm0,ymm30 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm11,zmm0,1 + mov r10,QWORD[120+rbp] + vmovdqu8 YMMWORD[r11*1+r10]{k1},ymm0 + vmovdqu8 zmm0{k1}{z},zmm0 + vpshufb ymm17,ymm0,ymm29 + vextracti32x4 xmm7,zmm17,1 + sub r13,16 * (2 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_416 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm17,ymm1,0x01 + vpclmulqdq ymm5,ymm17,ymm1,0x10 + vpclmulqdq ymm0,ymm17,ymm1,0x11 + vpclmulqdq ymm3,ymm17,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_416 +$L$_small_initial_partial_block_416: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm17,xmm1,0x01 + vpclmulqdq xmm5,xmm17,xmm1,0x10 + vpclmulqdq xmm0,xmm17,xmm1,0x11 + vpclmulqdq xmm3,xmm17,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_416: + + or r13,r13 + je NEAR $L$_after_reduction_416 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_416: + jmp NEAR $L$_last_blocks_done_412 +$L$_last_num_blocks_is_3_412: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,253 + jae NEAR $L$_16_blocks_overflow_417 + vpaddd zmm0,zmm2,zmm28 + jmp NEAR $L$_16_blocks_ok_417 + +$L$_16_blocks_overflow_417: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb zmm0,zmm0,zmm29 +$L$_16_blocks_ok_417: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm0,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17{k1}{z},[r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vpxorq zmm0,zmm0,zmm17 + vextracti32x4 xmm11,zmm0,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10]{k1},zmm0 + vmovdqu8 zmm0{k1}{z},zmm0 + vpshufb zmm17,zmm0,zmm29 + vextracti32x4 xmm7,zmm17,2 + sub r13,16 * (3 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_418 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_418 +$L$_small_initial_partial_block_418: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm17,ymm1,0x01 + vpclmulqdq ymm5,ymm17,ymm1,0x10 + vpclmulqdq ymm0,ymm17,ymm1,0x11 + vpclmulqdq ymm3,ymm17,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_418: + + or r13,r13 + je NEAR $L$_after_reduction_418 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_418: + jmp NEAR $L$_last_blocks_done_412 +$L$_last_num_blocks_is_4_412: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,252 + jae NEAR $L$_16_blocks_overflow_419 + vpaddd zmm0,zmm2,zmm28 + jmp NEAR $L$_16_blocks_ok_419 + +$L$_16_blocks_overflow_419: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb zmm0,zmm0,zmm29 +$L$_16_blocks_ok_419: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm0,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17{k1}{z},[r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vpxorq zmm0,zmm0,zmm17 + vextracti32x4 xmm11,zmm0,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10]{k1},zmm0 + vmovdqu8 zmm0{k1}{z},zmm0 + vpshufb zmm17,zmm0,zmm29 + vextracti32x4 xmm7,zmm17,3 + sub r13,16 * (4 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_420 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_420 +$L$_small_initial_partial_block_420: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_420: + + or r13,r13 + je NEAR $L$_after_reduction_420 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_420: + jmp NEAR $L$_last_blocks_done_412 +$L$_last_num_blocks_is_5_412: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,251 + jae NEAR $L$_16_blocks_overflow_421 + vpaddd zmm0,zmm2,zmm28 + vpaddd xmm3,xmm0,xmm27 + jmp NEAR $L$_16_blocks_ok_421 + +$L$_16_blocks_overflow_421: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb xmm3,xmm3,xmm29 +$L$_16_blocks_ok_421: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm3,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 xmm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast xmm3,xmm3,xmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq xmm3,xmm3,xmm19 + vextracti32x4 xmm11,zmm3,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 XMMWORD[64+r11*1+r10]{k1},xmm3 + vmovdqu8 zmm3{k1}{z},zmm3 + vpshufb zmm17,zmm0,zmm29 + vpshufb xmm19,xmm3,xmm29 + vextracti32x4 xmm7,zmm19,0 + sub r13,16 * (5 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_422 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm19,xmm1,0x01 + vpclmulqdq xmm5,xmm19,xmm1,0x10 + vpclmulqdq xmm0,xmm19,xmm1,0x11 + vpclmulqdq xmm3,xmm19,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_422 +$L$_small_initial_partial_block_422: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_422: + + or r13,r13 + je NEAR $L$_after_reduction_422 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_422: + jmp NEAR $L$_last_blocks_done_412 +$L$_last_num_blocks_is_6_412: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,250 + jae NEAR $L$_16_blocks_overflow_423 + vpaddd zmm0,zmm2,zmm28 + vpaddd ymm3,ymm0,ymm27 + jmp NEAR $L$_16_blocks_ok_423 + +$L$_16_blocks_overflow_423: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb ymm3,ymm3,ymm29 +$L$_16_blocks_ok_423: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm3,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 ymm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast ymm3,ymm3,ymm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm11,zmm3,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 YMMWORD[64+r11*1+r10]{k1},ymm3 + vmovdqu8 zmm3{k1}{z},zmm3 + vpshufb zmm17,zmm0,zmm29 + vpshufb ymm19,ymm3,ymm29 + vextracti32x4 xmm7,zmm19,1 + sub r13,16 * (6 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_424 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm19,ymm1,0x01 + vpclmulqdq ymm5,ymm19,ymm1,0x10 + vpclmulqdq ymm0,ymm19,ymm1,0x11 + vpclmulqdq ymm3,ymm19,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_424 +$L$_small_initial_partial_block_424: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm19,xmm1,0x01 + vpclmulqdq xmm5,xmm19,xmm1,0x10 + vpclmulqdq xmm0,xmm19,xmm1,0x11 + vpclmulqdq xmm3,xmm19,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_424: + + or r13,r13 + je NEAR $L$_after_reduction_424 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_424: + jmp NEAR $L$_last_blocks_done_412 +$L$_last_num_blocks_is_7_412: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,249 + jae NEAR $L$_16_blocks_overflow_425 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + jmp NEAR $L$_16_blocks_ok_425 + +$L$_16_blocks_overflow_425: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 +$L$_16_blocks_ok_425: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm3,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti32x4 xmm11,zmm3,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10]{k1},zmm3 + vmovdqu8 zmm3{k1}{z},zmm3 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vextracti32x4 xmm7,zmm19,2 + sub r13,16 * (7 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_426 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm19,zmm1,0x01 + vpclmulqdq zmm5,zmm19,zmm1,0x10 + vpclmulqdq zmm0,zmm19,zmm1,0x11 + vpclmulqdq zmm3,zmm19,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_426 +$L$_small_initial_partial_block_426: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm19,ymm1,0x01 + vpclmulqdq ymm5,ymm19,ymm1,0x10 + vpclmulqdq ymm0,ymm19,ymm1,0x11 + vpclmulqdq ymm3,ymm19,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_426: + + or r13,r13 + je NEAR $L$_after_reduction_426 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_426: + jmp NEAR $L$_last_blocks_done_412 +$L$_last_num_blocks_is_8_412: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,248 + jae NEAR $L$_16_blocks_overflow_427 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + jmp NEAR $L$_16_blocks_ok_427 + +$L$_16_blocks_overflow_427: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 +$L$_16_blocks_ok_427: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm3,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti32x4 xmm11,zmm3,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10]{k1},zmm3 + vmovdqu8 zmm3{k1}{z},zmm3 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vextracti32x4 xmm7,zmm19,3 + sub r13,16 * (8 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_428 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_428 +$L$_small_initial_partial_block_428: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm19,zmm1,0x01 + vpclmulqdq zmm5,zmm19,zmm1,0x10 + vpclmulqdq zmm0,zmm19,zmm1,0x11 + vpclmulqdq zmm3,zmm19,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_428: + + or r13,r13 + je NEAR $L$_after_reduction_428 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_428: + jmp NEAR $L$_last_blocks_done_412 +$L$_last_num_blocks_is_9_412: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,247 + jae NEAR $L$_16_blocks_overflow_429 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd xmm4,xmm3,xmm27 + jmp NEAR $L$_16_blocks_ok_429 + +$L$_16_blocks_overflow_429: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb xmm4,xmm4,xmm29 +$L$_16_blocks_ok_429: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm4,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 xmm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast xmm4,xmm4,xmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq xmm4,xmm4,xmm20 + vextracti32x4 xmm11,zmm4,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 XMMWORD[128+r11*1+r10]{k1},xmm4 + vmovdqu8 zmm4{k1}{z},zmm4 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb xmm20,xmm4,xmm29 + vextracti32x4 xmm7,zmm20,0 + sub r13,16 * (9 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_430 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm20,xmm1,0x01 + vpclmulqdq xmm5,xmm20,xmm1,0x10 + vpclmulqdq xmm0,xmm20,xmm1,0x11 + vpclmulqdq xmm3,xmm20,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_430 +$L$_small_initial_partial_block_430: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_430: + + or r13,r13 + je NEAR $L$_after_reduction_430 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_430: + jmp NEAR $L$_last_blocks_done_412 +$L$_last_num_blocks_is_10_412: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,246 + jae NEAR $L$_16_blocks_overflow_431 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd ymm4,ymm3,ymm27 + jmp NEAR $L$_16_blocks_ok_431 + +$L$_16_blocks_overflow_431: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb ymm4,ymm4,ymm29 +$L$_16_blocks_ok_431: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm4,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 ymm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast ymm4,ymm4,ymm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq ymm4,ymm4,ymm20 + vextracti32x4 xmm11,zmm4,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 YMMWORD[128+r11*1+r10]{k1},ymm4 + vmovdqu8 zmm4{k1}{z},zmm4 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb ymm20,ymm4,ymm29 + vextracti32x4 xmm7,zmm20,1 + sub r13,16 * (10 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_432 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm20,ymm1,0x01 + vpclmulqdq ymm5,ymm20,ymm1,0x10 + vpclmulqdq ymm0,ymm20,ymm1,0x11 + vpclmulqdq ymm3,ymm20,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_432 +$L$_small_initial_partial_block_432: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm20,xmm1,0x01 + vpclmulqdq xmm5,xmm20,xmm1,0x10 + vpclmulqdq xmm0,xmm20,xmm1,0x11 + vpclmulqdq xmm3,xmm20,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_432: + + or r13,r13 + je NEAR $L$_after_reduction_432 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_432: + jmp NEAR $L$_last_blocks_done_412 +$L$_last_num_blocks_is_11_412: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,245 + jae NEAR $L$_16_blocks_overflow_433 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + jmp NEAR $L$_16_blocks_ok_433 + +$L$_16_blocks_overflow_433: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 +$L$_16_blocks_ok_433: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm4,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vextracti32x4 xmm11,zmm4,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10]{k1},zmm4 + vmovdqu8 zmm4{k1}{z},zmm4 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb zmm20,zmm4,zmm29 + vextracti32x4 xmm7,zmm20,2 + sub r13,16 * (11 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_434 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm20,zmm1,0x01 + vpclmulqdq zmm5,zmm20,zmm1,0x10 + vpclmulqdq zmm0,zmm20,zmm1,0x11 + vpclmulqdq zmm3,zmm20,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_434 +$L$_small_initial_partial_block_434: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm20,ymm1,0x01 + vpclmulqdq ymm5,ymm20,ymm1,0x10 + vpclmulqdq ymm0,ymm20,ymm1,0x11 + vpclmulqdq ymm3,ymm20,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_434: + + or r13,r13 + je NEAR $L$_after_reduction_434 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_434: + jmp NEAR $L$_last_blocks_done_412 +$L$_last_num_blocks_is_12_412: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,244 + jae NEAR $L$_16_blocks_overflow_435 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + jmp NEAR $L$_16_blocks_ok_435 + +$L$_16_blocks_overflow_435: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 +$L$_16_blocks_ok_435: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm4,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vextracti32x4 xmm11,zmm4,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10]{k1},zmm4 + vmovdqu8 zmm4{k1}{z},zmm4 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb zmm20,zmm4,zmm29 + vextracti32x4 xmm7,zmm20,3 + sub r13,16 * (12 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_436 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[160+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_436 +$L$_small_initial_partial_block_436: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm20,zmm1,0x01 + vpclmulqdq zmm5,zmm20,zmm1,0x10 + vpclmulqdq zmm0,zmm20,zmm1,0x11 + vpclmulqdq zmm3,zmm20,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_436: + + or r13,r13 + je NEAR $L$_after_reduction_436 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_436: + jmp NEAR $L$_last_blocks_done_412 +$L$_last_num_blocks_is_13_412: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,243 + jae NEAR $L$_16_blocks_overflow_437 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd xmm5,xmm4,xmm27 + jmp NEAR $L$_16_blocks_ok_437 + +$L$_16_blocks_overflow_437: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb xmm5,xmm5,xmm29 +$L$_16_blocks_ok_437: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm5,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 xmm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast xmm5,xmm5,xmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq xmm5,xmm5,xmm21 + vextracti32x4 xmm11,zmm5,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 XMMWORD[192+r11*1+r10]{k1},xmm5 + vmovdqu8 zmm5{k1}{z},zmm5 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb zmm20,zmm4,zmm29 + vpshufb xmm21,xmm5,xmm29 + vextracti32x4 xmm7,zmm21,0 + sub r13,16 * (13 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_438 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[144+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm21,xmm1,0x01 + vpclmulqdq xmm5,xmm21,xmm1,0x10 + vpclmulqdq xmm0,xmm21,xmm1,0x11 + vpclmulqdq xmm3,xmm21,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_438 +$L$_small_initial_partial_block_438: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[160+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_438: + + or r13,r13 + je NEAR $L$_after_reduction_438 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_438: + jmp NEAR $L$_last_blocks_done_412 +$L$_last_num_blocks_is_14_412: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,242 + jae NEAR $L$_16_blocks_overflow_439 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd ymm5,ymm4,ymm27 + jmp NEAR $L$_16_blocks_ok_439 + +$L$_16_blocks_overflow_439: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb ymm5,ymm5,ymm29 +$L$_16_blocks_ok_439: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm5,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 ymm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast ymm5,ymm5,ymm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq ymm5,ymm5,ymm21 + vextracti32x4 xmm11,zmm5,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 YMMWORD[192+r11*1+r10]{k1},ymm5 + vmovdqu8 zmm5{k1}{z},zmm5 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb zmm20,zmm4,zmm29 + vpshufb ymm21,ymm5,ymm29 + vextracti32x4 xmm7,zmm21,1 + sub r13,16 * (14 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_440 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[128+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm21,ymm1,0x01 + vpclmulqdq ymm5,ymm21,ymm1,0x10 + vpclmulqdq ymm0,ymm21,ymm1,0x11 + vpclmulqdq ymm3,ymm21,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_440 +$L$_small_initial_partial_block_440: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[144+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm21,xmm1,0x01 + vpclmulqdq xmm5,xmm21,xmm1,0x10 + vpclmulqdq xmm0,xmm21,xmm1,0x11 + vpclmulqdq xmm3,xmm21,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_440: + + or r13,r13 + je NEAR $L$_after_reduction_440 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_440: + jmp NEAR $L$_last_blocks_done_412 +$L$_last_num_blocks_is_15_412: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,241 + jae NEAR $L$_16_blocks_overflow_441 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_441 + +$L$_16_blocks_overflow_441: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_441: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm5,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + vextracti32x4 xmm11,zmm5,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[192+r11*1+r10]{k1},zmm5 + vmovdqu8 zmm5{k1}{z},zmm5 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb zmm20,zmm4,zmm29 + vpshufb zmm21,zmm5,zmm29 + vextracti32x4 xmm7,zmm21,2 + sub r13,16 * (15 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_442 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[112+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm21,zmm1,0x01 + vpclmulqdq zmm5,zmm21,zmm1,0x10 + vpclmulqdq zmm0,zmm21,zmm1,0x11 + vpclmulqdq zmm3,zmm21,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_442 +$L$_small_initial_partial_block_442: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[128+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm21,ymm1,0x01 + vpclmulqdq ymm5,ymm21,ymm1,0x10 + vpclmulqdq ymm0,ymm21,ymm1,0x11 + vpclmulqdq ymm3,ymm21,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_442: + + or r13,r13 + je NEAR $L$_after_reduction_442 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_442: + jmp NEAR $L$_last_blocks_done_412 +$L$_last_num_blocks_is_16_412: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,240 + jae NEAR $L$_16_blocks_overflow_443 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_443 + +$L$_16_blocks_overflow_443: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_443: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm5,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + vextracti32x4 xmm11,zmm5,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[192+r11*1+r10]{k1},zmm5 + vmovdqu8 zmm5{k1}{z},zmm5 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb zmm20,zmm4,zmm29 + vpshufb zmm21,zmm5,zmm29 + vextracti32x4 xmm7,zmm21,3 + sub r13,16 * (16 - 1) +$L$_small_initial_partial_block_444: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[112+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm21,zmm1,0x01 + vpclmulqdq zmm5,zmm21,zmm1,0x10 + vpclmulqdq zmm0,zmm21,zmm1,0x11 + vpclmulqdq zmm3,zmm21,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_444: + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_444: + jmp NEAR $L$_last_blocks_done_412 +$L$_last_num_blocks_is_0_412: + vmovdqa64 zmm13,ZMMWORD[1280+rsp] + vmovdqu64 zmm12,ZMMWORD[512+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[1344+rsp] + vmovdqu64 zmm12,ZMMWORD[576+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + vpternlogq zmm26,zmm4,zmm10,0x96 + vpternlogq zmm24,zmm0,zmm6,0x96 + vpternlogq zmm25,zmm3,zmm7,0x96 + vpternlogq zmm26,zmm5,zmm11,0x96 + vmovdqa64 zmm13,ZMMWORD[1408+rsp] + vmovdqu64 zmm12,ZMMWORD[640+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[1472+rsp] + vmovdqu64 zmm12,ZMMWORD[704+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + + vpternlogq zmm26,zmm4,zmm10,0x96 + vpternlogq zmm24,zmm0,zmm6,0x96 + vpternlogq zmm25,zmm3,zmm7,0x96 + vpternlogq zmm26,zmm5,zmm11,0x96 + + vpsrldq zmm0,zmm26,8 + vpslldq zmm3,zmm26,8 + vpxorq zmm24,zmm24,zmm0 + vpxorq zmm25,zmm25,zmm3 + vextracti64x4 ymm0,zmm24,1 + vpxorq ymm24,ymm24,ymm0 + vextracti32x4 xmm0,ymm24,1 + vpxorq xmm24,xmm24,xmm0 + vextracti64x4 ymm3,zmm25,1 + vpxorq ymm25,ymm25,ymm3 + vextracti32x4 xmm3,ymm25,1 + vpxorq xmm25,xmm25,xmm3 + vmovdqa64 xmm4,XMMWORD[POLY2] + + + vpclmulqdq xmm0,xmm4,xmm25,0x01 + vpslldq xmm0,xmm0,8 + vpxorq xmm0,xmm25,xmm0 + + + vpclmulqdq xmm3,xmm4,xmm0,0x00 + vpsrldq xmm3,xmm3,4 + vpclmulqdq xmm14,xmm4,xmm0,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm3,xmm24,0x96 + +$L$_last_blocks_done_412: + vpshufb xmm2,xmm2,xmm29 + jmp NEAR $L$_ghash_done_334 + +$L$_message_below_32_blocks_334: + + + sub r13,256 + add r11,256 + mov r10d,r13d + test r14,r14 + jnz NEAR $L$_skip_hkeys_precomputation_445 + vmovdqu64 zmm3,ZMMWORD[640+rsp] + + + vshufi64x2 zmm3,zmm3,zmm3,0x00 + + vmovdqu64 zmm4,ZMMWORD[576+rsp] + vmovdqu64 zmm5,ZMMWORD[512+rsp] + + vpclmulqdq zmm6,zmm4,zmm3,0x11 + vpclmulqdq zmm7,zmm4,zmm3,0x00 + vpclmulqdq zmm10,zmm4,zmm3,0x01 + vpclmulqdq zmm4,zmm4,zmm3,0x10 + vpxorq zmm4,zmm4,zmm10 + + vpsrldq zmm10,zmm4,8 + vpslldq zmm4,zmm4,8 + vpxorq zmm6,zmm6,zmm10 + vpxorq zmm4,zmm4,zmm7 + + + + vmovdqu64 zmm10,ZMMWORD[POLY2] + + vpclmulqdq zmm7,zmm10,zmm4,0x01 + vpslldq zmm7,zmm7,8 + vpxorq zmm4,zmm4,zmm7 + + + + vpclmulqdq zmm7,zmm10,zmm4,0x00 + vpsrldq zmm7,zmm7,4 + vpclmulqdq zmm4,zmm10,zmm4,0x10 + vpslldq zmm4,zmm4,4 + + vpternlogq zmm4,zmm6,zmm7,0x96 + + vmovdqu64 ZMMWORD[448+rsp],zmm4 + + vpclmulqdq zmm6,zmm5,zmm3,0x11 + vpclmulqdq zmm7,zmm5,zmm3,0x00 + vpclmulqdq zmm10,zmm5,zmm3,0x01 + vpclmulqdq zmm5,zmm5,zmm3,0x10 + vpxorq zmm5,zmm5,zmm10 + + vpsrldq zmm10,zmm5,8 + vpslldq zmm5,zmm5,8 + vpxorq zmm6,zmm6,zmm10 + vpxorq zmm5,zmm5,zmm7 + + + + vmovdqu64 zmm10,ZMMWORD[POLY2] + + vpclmulqdq zmm7,zmm10,zmm5,0x01 + vpslldq zmm7,zmm7,8 + vpxorq zmm5,zmm5,zmm7 + + + + vpclmulqdq zmm7,zmm10,zmm5,0x00 + vpsrldq zmm7,zmm7,4 + vpclmulqdq zmm5,zmm10,zmm5,0x10 + vpslldq zmm5,zmm5,4 + + vpternlogq zmm5,zmm6,zmm7,0x96 + + vmovdqu64 ZMMWORD[384+rsp],zmm5 + + vpclmulqdq zmm6,zmm4,zmm3,0x11 + vpclmulqdq zmm7,zmm4,zmm3,0x00 + vpclmulqdq zmm10,zmm4,zmm3,0x01 + vpclmulqdq zmm4,zmm4,zmm3,0x10 + vpxorq zmm4,zmm4,zmm10 + + vpsrldq zmm10,zmm4,8 + vpslldq zmm4,zmm4,8 + vpxorq zmm6,zmm6,zmm10 + vpxorq zmm4,zmm4,zmm7 + + + + vmovdqu64 zmm10,ZMMWORD[POLY2] + + vpclmulqdq zmm7,zmm10,zmm4,0x01 + vpslldq zmm7,zmm7,8 + vpxorq zmm4,zmm4,zmm7 + + + + vpclmulqdq zmm7,zmm10,zmm4,0x00 + vpsrldq zmm7,zmm7,4 + vpclmulqdq zmm4,zmm10,zmm4,0x10 + vpslldq zmm4,zmm4,4 + + vpternlogq zmm4,zmm6,zmm7,0x96 + + vmovdqu64 ZMMWORD[320+rsp],zmm4 + + vpclmulqdq zmm6,zmm5,zmm3,0x11 + vpclmulqdq zmm7,zmm5,zmm3,0x00 + vpclmulqdq zmm10,zmm5,zmm3,0x01 + vpclmulqdq zmm5,zmm5,zmm3,0x10 + vpxorq zmm5,zmm5,zmm10 + + vpsrldq zmm10,zmm5,8 + vpslldq zmm5,zmm5,8 + vpxorq zmm6,zmm6,zmm10 + vpxorq zmm5,zmm5,zmm7 + + + + vmovdqu64 zmm10,ZMMWORD[POLY2] + + vpclmulqdq zmm7,zmm10,zmm5,0x01 + vpslldq zmm7,zmm7,8 + vpxorq zmm5,zmm5,zmm7 + + + + vpclmulqdq zmm7,zmm10,zmm5,0x00 + vpsrldq zmm7,zmm7,4 + vpclmulqdq zmm5,zmm10,zmm5,0x10 + vpslldq zmm5,zmm5,4 + + vpternlogq zmm5,zmm6,zmm7,0x96 + + vmovdqu64 ZMMWORD[256+rsp],zmm5 +$L$_skip_hkeys_precomputation_445: + mov r14,1 + and r10d,~15 + mov ebx,512 + sub ebx,r10d + mov r10d,r13d + add r10d,15 + shr r10d,4 + je NEAR $L$_last_num_blocks_is_0_446 + + cmp r10d,8 + je NEAR $L$_last_num_blocks_is_8_446 + jb NEAR $L$_last_num_blocks_is_7_1_446 + + + cmp r10d,12 + je NEAR $L$_last_num_blocks_is_12_446 + jb NEAR $L$_last_num_blocks_is_11_9_446 + + + cmp r10d,15 + je NEAR $L$_last_num_blocks_is_15_446 + ja NEAR $L$_last_num_blocks_is_16_446 + cmp r10d,14 + je NEAR $L$_last_num_blocks_is_14_446 + jmp NEAR $L$_last_num_blocks_is_13_446 + +$L$_last_num_blocks_is_11_9_446: + + cmp r10d,10 + je NEAR $L$_last_num_blocks_is_10_446 + ja NEAR $L$_last_num_blocks_is_11_446 + jmp NEAR $L$_last_num_blocks_is_9_446 + +$L$_last_num_blocks_is_7_1_446: + cmp r10d,4 + je NEAR $L$_last_num_blocks_is_4_446 + jb NEAR $L$_last_num_blocks_is_3_1_446 + + cmp r10d,6 + ja NEAR $L$_last_num_blocks_is_7_446 + je NEAR $L$_last_num_blocks_is_6_446 + jmp NEAR $L$_last_num_blocks_is_5_446 + +$L$_last_num_blocks_is_3_1_446: + + cmp r10d,2 + ja NEAR $L$_last_num_blocks_is_3_446 + je NEAR $L$_last_num_blocks_is_2_446 +$L$_last_num_blocks_is_1_446: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,255 + jae NEAR $L$_16_blocks_overflow_447 + vpaddd xmm0,xmm2,xmm28 + jmp NEAR $L$_16_blocks_ok_447 + +$L$_16_blocks_overflow_447: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb xmm0,xmm0,xmm29 +$L$_16_blocks_ok_447: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm0,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 xmm17{k1}{z},[r11*1+r9] + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc xmm0,xmm0,xmm31 + vaesenclast xmm0,xmm0,xmm30 + vpxorq xmm0,xmm0,xmm17 + vextracti32x4 xmm11,zmm0,0 + mov r10,QWORD[120+rbp] + vmovdqu8 XMMWORD[r11*1+r10]{k1},xmm0 + vmovdqu8 zmm0{k1}{z},zmm0 + vpshufb xmm17,xmm0,xmm29 + vextracti32x4 xmm7,zmm17,0 + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_448 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm17,xmm1,0x01 + vpclmulqdq xmm5,xmm17,xmm1,0x10 + vpclmulqdq xmm0,xmm17,xmm1,0x11 + vpclmulqdq xmm3,xmm17,xmm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_448 +$L$_small_initial_partial_block_448: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + + + vpsrldq zmm0,zmm26,8 + vpslldq zmm3,zmm26,8 + vpxorq zmm24,zmm24,zmm0 + vpxorq zmm25,zmm25,zmm3 + vextracti64x4 ymm0,zmm24,1 + vpxorq ymm24,ymm24,ymm0 + vextracti32x4 xmm0,ymm24,1 + vpxorq xmm24,xmm24,xmm0 + vextracti64x4 ymm3,zmm25,1 + vpxorq ymm25,ymm25,ymm3 + vextracti32x4 xmm3,ymm25,1 + vpxorq xmm25,xmm25,xmm3 + vmovdqa64 xmm0,XMMWORD[POLY2] + + + vpclmulqdq xmm3,xmm0,xmm25,0x01 + vpslldq xmm3,xmm3,8 + vpxorq xmm3,xmm25,xmm3 + + + vpclmulqdq xmm4,xmm0,xmm3,0x00 + vpsrldq xmm4,xmm4,4 + vpclmulqdq xmm14,xmm0,xmm3,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm4,xmm24,0x96 + + + + + + + + + + + + + vpxorq xmm14,xmm14,xmm7 + + jmp NEAR $L$_after_reduction_448 +$L$_small_initial_compute_done_448: +$L$_after_reduction_448: + jmp NEAR $L$_last_blocks_done_446 +$L$_last_num_blocks_is_2_446: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,254 + jae NEAR $L$_16_blocks_overflow_449 + vpaddd ymm0,ymm2,ymm28 + jmp NEAR $L$_16_blocks_ok_449 + +$L$_16_blocks_overflow_449: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb ymm0,ymm0,ymm29 +$L$_16_blocks_ok_449: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm0,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 ymm17{k1}{z},[r11*1+r9] + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc ymm0,ymm0,ymm31 + vaesenclast ymm0,ymm0,ymm30 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm11,zmm0,1 + mov r10,QWORD[120+rbp] + vmovdqu8 YMMWORD[r11*1+r10]{k1},ymm0 + vmovdqu8 zmm0{k1}{z},zmm0 + vpshufb ymm17,ymm0,ymm29 + vextracti32x4 xmm7,zmm17,1 + sub r13,16 * (2 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_450 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm17,ymm1,0x01 + vpclmulqdq ymm5,ymm17,ymm1,0x10 + vpclmulqdq ymm0,ymm17,ymm1,0x11 + vpclmulqdq ymm3,ymm17,ymm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_450 +$L$_small_initial_partial_block_450: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm17,xmm1,0x01 + vpclmulqdq xmm5,xmm17,xmm1,0x10 + vpclmulqdq xmm0,xmm17,xmm1,0x11 + vpclmulqdq xmm3,xmm17,xmm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_450: + + or r13,r13 + je NEAR $L$_after_reduction_450 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_450: + jmp NEAR $L$_last_blocks_done_446 +$L$_last_num_blocks_is_3_446: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,253 + jae NEAR $L$_16_blocks_overflow_451 + vpaddd zmm0,zmm2,zmm28 + jmp NEAR $L$_16_blocks_ok_451 + +$L$_16_blocks_overflow_451: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb zmm0,zmm0,zmm29 +$L$_16_blocks_ok_451: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm0,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17{k1}{z},[r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vpxorq zmm0,zmm0,zmm17 + vextracti32x4 xmm11,zmm0,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10]{k1},zmm0 + vmovdqu8 zmm0{k1}{z},zmm0 + vpshufb zmm17,zmm0,zmm29 + vextracti32x4 xmm7,zmm17,2 + sub r13,16 * (3 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_452 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_452 +$L$_small_initial_partial_block_452: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm17,ymm1,0x01 + vpclmulqdq ymm5,ymm17,ymm1,0x10 + vpclmulqdq ymm0,ymm17,ymm1,0x11 + vpclmulqdq ymm3,ymm17,ymm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_452: + + or r13,r13 + je NEAR $L$_after_reduction_452 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_452: + jmp NEAR $L$_last_blocks_done_446 +$L$_last_num_blocks_is_4_446: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,252 + jae NEAR $L$_16_blocks_overflow_453 + vpaddd zmm0,zmm2,zmm28 + jmp NEAR $L$_16_blocks_ok_453 + +$L$_16_blocks_overflow_453: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb zmm0,zmm0,zmm29 +$L$_16_blocks_ok_453: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm0,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17{k1}{z},[r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vpxorq zmm0,zmm0,zmm17 + vextracti32x4 xmm11,zmm0,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10]{k1},zmm0 + vmovdqu8 zmm0{k1}{z},zmm0 + vpshufb zmm17,zmm0,zmm29 + vextracti32x4 xmm7,zmm17,3 + sub r13,16 * (4 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_454 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_454 +$L$_small_initial_partial_block_454: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_454: + + or r13,r13 + je NEAR $L$_after_reduction_454 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_454: + jmp NEAR $L$_last_blocks_done_446 +$L$_last_num_blocks_is_5_446: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,251 + jae NEAR $L$_16_blocks_overflow_455 + vpaddd zmm0,zmm2,zmm28 + vpaddd xmm3,xmm0,xmm27 + jmp NEAR $L$_16_blocks_ok_455 + +$L$_16_blocks_overflow_455: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb xmm3,xmm3,xmm29 +$L$_16_blocks_ok_455: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm3,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 xmm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast xmm3,xmm3,xmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq xmm3,xmm3,xmm19 + vextracti32x4 xmm11,zmm3,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 XMMWORD[64+r11*1+r10]{k1},xmm3 + vmovdqu8 zmm3{k1}{z},zmm3 + vpshufb zmm17,zmm0,zmm29 + vpshufb xmm19,xmm3,xmm29 + vextracti32x4 xmm7,zmm19,0 + sub r13,16 * (5 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_456 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm19,xmm1,0x01 + vpclmulqdq xmm5,xmm19,xmm1,0x10 + vpclmulqdq xmm0,xmm19,xmm1,0x11 + vpclmulqdq xmm3,xmm19,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_456 +$L$_small_initial_partial_block_456: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_456: + + or r13,r13 + je NEAR $L$_after_reduction_456 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_456: + jmp NEAR $L$_last_blocks_done_446 +$L$_last_num_blocks_is_6_446: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,250 + jae NEAR $L$_16_blocks_overflow_457 + vpaddd zmm0,zmm2,zmm28 + vpaddd ymm3,ymm0,ymm27 + jmp NEAR $L$_16_blocks_ok_457 + +$L$_16_blocks_overflow_457: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb ymm3,ymm3,ymm29 +$L$_16_blocks_ok_457: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm3,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 ymm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast ymm3,ymm3,ymm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm11,zmm3,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 YMMWORD[64+r11*1+r10]{k1},ymm3 + vmovdqu8 zmm3{k1}{z},zmm3 + vpshufb zmm17,zmm0,zmm29 + vpshufb ymm19,ymm3,ymm29 + vextracti32x4 xmm7,zmm19,1 + sub r13,16 * (6 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_458 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm19,ymm1,0x01 + vpclmulqdq ymm5,ymm19,ymm1,0x10 + vpclmulqdq ymm0,ymm19,ymm1,0x11 + vpclmulqdq ymm3,ymm19,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_458 +$L$_small_initial_partial_block_458: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm19,xmm1,0x01 + vpclmulqdq xmm5,xmm19,xmm1,0x10 + vpclmulqdq xmm0,xmm19,xmm1,0x11 + vpclmulqdq xmm3,xmm19,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_458: + + or r13,r13 + je NEAR $L$_after_reduction_458 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_458: + jmp NEAR $L$_last_blocks_done_446 +$L$_last_num_blocks_is_7_446: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,249 + jae NEAR $L$_16_blocks_overflow_459 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + jmp NEAR $L$_16_blocks_ok_459 + +$L$_16_blocks_overflow_459: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 +$L$_16_blocks_ok_459: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm3,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti32x4 xmm11,zmm3,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10]{k1},zmm3 + vmovdqu8 zmm3{k1}{z},zmm3 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vextracti32x4 xmm7,zmm19,2 + sub r13,16 * (7 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_460 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm19,zmm1,0x01 + vpclmulqdq zmm5,zmm19,zmm1,0x10 + vpclmulqdq zmm0,zmm19,zmm1,0x11 + vpclmulqdq zmm3,zmm19,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_460 +$L$_small_initial_partial_block_460: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm19,ymm1,0x01 + vpclmulqdq ymm5,ymm19,ymm1,0x10 + vpclmulqdq ymm0,ymm19,ymm1,0x11 + vpclmulqdq ymm3,ymm19,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_460: + + or r13,r13 + je NEAR $L$_after_reduction_460 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_460: + jmp NEAR $L$_last_blocks_done_446 +$L$_last_num_blocks_is_8_446: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,248 + jae NEAR $L$_16_blocks_overflow_461 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + jmp NEAR $L$_16_blocks_ok_461 + +$L$_16_blocks_overflow_461: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 +$L$_16_blocks_ok_461: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm3,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti32x4 xmm11,zmm3,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10]{k1},zmm3 + vmovdqu8 zmm3{k1}{z},zmm3 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vextracti32x4 xmm7,zmm19,3 + sub r13,16 * (8 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_462 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_462 +$L$_small_initial_partial_block_462: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm19,zmm1,0x01 + vpclmulqdq zmm5,zmm19,zmm1,0x10 + vpclmulqdq zmm0,zmm19,zmm1,0x11 + vpclmulqdq zmm3,zmm19,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_462: + + or r13,r13 + je NEAR $L$_after_reduction_462 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_462: + jmp NEAR $L$_last_blocks_done_446 +$L$_last_num_blocks_is_9_446: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,247 + jae NEAR $L$_16_blocks_overflow_463 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd xmm4,xmm3,xmm27 + jmp NEAR $L$_16_blocks_ok_463 + +$L$_16_blocks_overflow_463: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb xmm4,xmm4,xmm29 +$L$_16_blocks_ok_463: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm4,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 xmm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast xmm4,xmm4,xmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq xmm4,xmm4,xmm20 + vextracti32x4 xmm11,zmm4,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 XMMWORD[128+r11*1+r10]{k1},xmm4 + vmovdqu8 zmm4{k1}{z},zmm4 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb xmm20,xmm4,xmm29 + vextracti32x4 xmm7,zmm20,0 + sub r13,16 * (9 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_464 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm20,xmm1,0x01 + vpclmulqdq xmm5,xmm20,xmm1,0x10 + vpclmulqdq xmm0,xmm20,xmm1,0x11 + vpclmulqdq xmm3,xmm20,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_464 +$L$_small_initial_partial_block_464: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_464: + + or r13,r13 + je NEAR $L$_after_reduction_464 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_464: + jmp NEAR $L$_last_blocks_done_446 +$L$_last_num_blocks_is_10_446: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,246 + jae NEAR $L$_16_blocks_overflow_465 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd ymm4,ymm3,ymm27 + jmp NEAR $L$_16_blocks_ok_465 + +$L$_16_blocks_overflow_465: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb ymm4,ymm4,ymm29 +$L$_16_blocks_ok_465: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm4,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 ymm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast ymm4,ymm4,ymm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq ymm4,ymm4,ymm20 + vextracti32x4 xmm11,zmm4,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 YMMWORD[128+r11*1+r10]{k1},ymm4 + vmovdqu8 zmm4{k1}{z},zmm4 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb ymm20,ymm4,ymm29 + vextracti32x4 xmm7,zmm20,1 + sub r13,16 * (10 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_466 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm20,ymm1,0x01 + vpclmulqdq ymm5,ymm20,ymm1,0x10 + vpclmulqdq ymm0,ymm20,ymm1,0x11 + vpclmulqdq ymm3,ymm20,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_466 +$L$_small_initial_partial_block_466: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm20,xmm1,0x01 + vpclmulqdq xmm5,xmm20,xmm1,0x10 + vpclmulqdq xmm0,xmm20,xmm1,0x11 + vpclmulqdq xmm3,xmm20,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_466: + + or r13,r13 + je NEAR $L$_after_reduction_466 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_466: + jmp NEAR $L$_last_blocks_done_446 +$L$_last_num_blocks_is_11_446: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,245 + jae NEAR $L$_16_blocks_overflow_467 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + jmp NEAR $L$_16_blocks_ok_467 + +$L$_16_blocks_overflow_467: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 +$L$_16_blocks_ok_467: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm4,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vextracti32x4 xmm11,zmm4,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10]{k1},zmm4 + vmovdqu8 zmm4{k1}{z},zmm4 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb zmm20,zmm4,zmm29 + vextracti32x4 xmm7,zmm20,2 + sub r13,16 * (11 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_468 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm20,zmm1,0x01 + vpclmulqdq zmm5,zmm20,zmm1,0x10 + vpclmulqdq zmm0,zmm20,zmm1,0x11 + vpclmulqdq zmm3,zmm20,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_468 +$L$_small_initial_partial_block_468: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm20,ymm1,0x01 + vpclmulqdq ymm5,ymm20,ymm1,0x10 + vpclmulqdq ymm0,ymm20,ymm1,0x11 + vpclmulqdq ymm3,ymm20,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_468: + + or r13,r13 + je NEAR $L$_after_reduction_468 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_468: + jmp NEAR $L$_last_blocks_done_446 +$L$_last_num_blocks_is_12_446: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,244 + jae NEAR $L$_16_blocks_overflow_469 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + jmp NEAR $L$_16_blocks_ok_469 + +$L$_16_blocks_overflow_469: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 +$L$_16_blocks_ok_469: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm4,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vextracti32x4 xmm11,zmm4,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10]{k1},zmm4 + vmovdqu8 zmm4{k1}{z},zmm4 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb zmm20,zmm4,zmm29 + vextracti32x4 xmm7,zmm20,3 + sub r13,16 * (12 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_470 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[160+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_470 +$L$_small_initial_partial_block_470: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm20,zmm1,0x01 + vpclmulqdq zmm5,zmm20,zmm1,0x10 + vpclmulqdq zmm0,zmm20,zmm1,0x11 + vpclmulqdq zmm3,zmm20,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_470: + + or r13,r13 + je NEAR $L$_after_reduction_470 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_470: + jmp NEAR $L$_last_blocks_done_446 +$L$_last_num_blocks_is_13_446: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,243 + jae NEAR $L$_16_blocks_overflow_471 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd xmm5,xmm4,xmm27 + jmp NEAR $L$_16_blocks_ok_471 + +$L$_16_blocks_overflow_471: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb xmm5,xmm5,xmm29 +$L$_16_blocks_ok_471: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm5,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 xmm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast xmm5,xmm5,xmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq xmm5,xmm5,xmm21 + vextracti32x4 xmm11,zmm5,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 XMMWORD[192+r11*1+r10]{k1},xmm5 + vmovdqu8 zmm5{k1}{z},zmm5 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb zmm20,zmm4,zmm29 + vpshufb xmm21,xmm5,xmm29 + vextracti32x4 xmm7,zmm21,0 + sub r13,16 * (13 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_472 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[144+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm21,xmm1,0x01 + vpclmulqdq xmm5,xmm21,xmm1,0x10 + vpclmulqdq xmm0,xmm21,xmm1,0x11 + vpclmulqdq xmm3,xmm21,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_472 +$L$_small_initial_partial_block_472: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[160+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_472: + + or r13,r13 + je NEAR $L$_after_reduction_472 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_472: + jmp NEAR $L$_last_blocks_done_446 +$L$_last_num_blocks_is_14_446: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,242 + jae NEAR $L$_16_blocks_overflow_473 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd ymm5,ymm4,ymm27 + jmp NEAR $L$_16_blocks_ok_473 + +$L$_16_blocks_overflow_473: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb ymm5,ymm5,ymm29 +$L$_16_blocks_ok_473: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm5,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 ymm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast ymm5,ymm5,ymm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq ymm5,ymm5,ymm21 + vextracti32x4 xmm11,zmm5,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 YMMWORD[192+r11*1+r10]{k1},ymm5 + vmovdqu8 zmm5{k1}{z},zmm5 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb zmm20,zmm4,zmm29 + vpshufb ymm21,ymm5,ymm29 + vextracti32x4 xmm7,zmm21,1 + sub r13,16 * (14 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_474 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[128+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm21,ymm1,0x01 + vpclmulqdq ymm5,ymm21,ymm1,0x10 + vpclmulqdq ymm0,ymm21,ymm1,0x11 + vpclmulqdq ymm3,ymm21,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_474 +$L$_small_initial_partial_block_474: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[144+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm21,xmm1,0x01 + vpclmulqdq xmm5,xmm21,xmm1,0x10 + vpclmulqdq xmm0,xmm21,xmm1,0x11 + vpclmulqdq xmm3,xmm21,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_474: + + or r13,r13 + je NEAR $L$_after_reduction_474 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_474: + jmp NEAR $L$_last_blocks_done_446 +$L$_last_num_blocks_is_15_446: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,241 + jae NEAR $L$_16_blocks_overflow_475 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_475 + +$L$_16_blocks_overflow_475: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_475: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm5,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + vextracti32x4 xmm11,zmm5,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[192+r11*1+r10]{k1},zmm5 + vmovdqu8 zmm5{k1}{z},zmm5 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb zmm20,zmm4,zmm29 + vpshufb zmm21,zmm5,zmm29 + vextracti32x4 xmm7,zmm21,2 + sub r13,16 * (15 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_476 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[112+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm21,zmm1,0x01 + vpclmulqdq zmm5,zmm21,zmm1,0x10 + vpclmulqdq zmm0,zmm21,zmm1,0x11 + vpclmulqdq zmm3,zmm21,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_476 +$L$_small_initial_partial_block_476: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[128+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm21,ymm1,0x01 + vpclmulqdq ymm5,ymm21,ymm1,0x10 + vpclmulqdq ymm0,ymm21,ymm1,0x11 + vpclmulqdq ymm3,ymm21,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_476: + + or r13,r13 + je NEAR $L$_after_reduction_476 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_476: + jmp NEAR $L$_last_blocks_done_446 +$L$_last_num_blocks_is_16_446: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,240 + jae NEAR $L$_16_blocks_overflow_477 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_477 + +$L$_16_blocks_overflow_477: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_477: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm5,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + vextracti32x4 xmm11,zmm5,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[192+r11*1+r10]{k1},zmm5 + vmovdqu8 zmm5{k1}{z},zmm5 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb zmm20,zmm4,zmm29 + vpshufb zmm21,zmm5,zmm29 + vextracti32x4 xmm7,zmm21,3 + sub r13,16 * (16 - 1) +$L$_small_initial_partial_block_478: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[112+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm21,zmm1,0x01 + vpclmulqdq zmm5,zmm21,zmm1,0x10 + vpclmulqdq zmm0,zmm21,zmm1,0x11 + vpclmulqdq zmm3,zmm21,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_478: + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_478: + jmp NEAR $L$_last_blocks_done_446 +$L$_last_num_blocks_is_0_446: + vmovdqa64 zmm13,ZMMWORD[768+rsp] + vpxorq zmm13,zmm13,zmm14 + vmovdqu64 zmm12,ZMMWORD[rbx*1+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[832+rsp] + vmovdqu64 zmm12,ZMMWORD[64+rbx*1+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + vpxorq zmm26,zmm4,zmm10 + vpxorq zmm24,zmm0,zmm6 + vpxorq zmm25,zmm3,zmm7 + vpternlogq zmm26,zmm5,zmm11,0x96 + vmovdqa64 zmm13,ZMMWORD[896+rsp] + vmovdqu64 zmm12,ZMMWORD[128+rbx*1+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[960+rsp] + vmovdqu64 zmm12,ZMMWORD[192+rbx*1+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + + vpternlogq zmm26,zmm4,zmm10,0x96 + vpternlogq zmm24,zmm0,zmm6,0x96 + vpternlogq zmm25,zmm3,zmm7,0x96 + vpternlogq zmm26,zmm5,zmm11,0x96 + + vpsrldq zmm0,zmm26,8 + vpslldq zmm3,zmm26,8 + vpxorq zmm24,zmm24,zmm0 + vpxorq zmm25,zmm25,zmm3 + vextracti64x4 ymm0,zmm24,1 + vpxorq ymm24,ymm24,ymm0 + vextracti32x4 xmm0,ymm24,1 + vpxorq xmm24,xmm24,xmm0 + vextracti64x4 ymm3,zmm25,1 + vpxorq ymm25,ymm25,ymm3 + vextracti32x4 xmm3,ymm25,1 + vpxorq xmm25,xmm25,xmm3 + vmovdqa64 xmm4,XMMWORD[POLY2] + + + vpclmulqdq xmm0,xmm4,xmm25,0x01 + vpslldq xmm0,xmm0,8 + vpxorq xmm0,xmm25,xmm0 + + + vpclmulqdq xmm3,xmm4,xmm0,0x00 + vpsrldq xmm3,xmm3,4 + vpclmulqdq xmm14,xmm4,xmm0,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm3,xmm24,0x96 + +$L$_last_blocks_done_446: + vpshufb xmm2,xmm2,xmm29 + jmp NEAR $L$_ghash_done_334 + +$L$_message_below_equal_16_blocks_334: + + + mov r12d,r13d + add r12d,15 + shr r12d,4 + cmp r12,8 + je NEAR $L$_small_initial_num_blocks_is_8_479 + jl NEAR $L$_small_initial_num_blocks_is_7_1_479 + + + cmp r12,12 + je NEAR $L$_small_initial_num_blocks_is_12_479 + jl NEAR $L$_small_initial_num_blocks_is_11_9_479 + + + cmp r12,16 + je NEAR $L$_small_initial_num_blocks_is_16_479 + cmp r12,15 + je NEAR $L$_small_initial_num_blocks_is_15_479 + cmp r12,14 + je NEAR $L$_small_initial_num_blocks_is_14_479 + jmp NEAR $L$_small_initial_num_blocks_is_13_479 + +$L$_small_initial_num_blocks_is_11_9_479: + + cmp r12,11 + je NEAR $L$_small_initial_num_blocks_is_11_479 + cmp r12,10 + je NEAR $L$_small_initial_num_blocks_is_10_479 + jmp NEAR $L$_small_initial_num_blocks_is_9_479 + +$L$_small_initial_num_blocks_is_7_1_479: + cmp r12,4 + je NEAR $L$_small_initial_num_blocks_is_4_479 + jl NEAR $L$_small_initial_num_blocks_is_3_1_479 + + cmp r12,7 + je NEAR $L$_small_initial_num_blocks_is_7_479 + cmp r12,6 + je NEAR $L$_small_initial_num_blocks_is_6_479 + jmp NEAR $L$_small_initial_num_blocks_is_5_479 + +$L$_small_initial_num_blocks_is_3_1_479: + + cmp r12,3 + je NEAR $L$_small_initial_num_blocks_is_3_479 + cmp r12,2 + je NEAR $L$_small_initial_num_blocks_is_2_479 + + + + + +$L$_small_initial_num_blocks_is_1_479: + vmovdqa64 xmm29,XMMWORD[SHUF_MASK] + vpaddd xmm0,xmm2,XMMWORD[ONE] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm0,0 + vpshufb xmm0,xmm0,xmm29 + vmovdqu8 xmm6{k1}{z},[r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq xmm0,xmm0,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc xmm0,xmm0,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc xmm0,xmm0,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc xmm0,xmm0,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc xmm0,xmm0,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc xmm0,xmm0,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc xmm0,xmm0,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc xmm0,xmm0,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc xmm0,xmm0,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc xmm0,xmm0,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenc xmm0,xmm0,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[176+rcx] + vaesenc xmm0,xmm0,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[192+rcx] + vaesenc xmm0,xmm0,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[208+rcx] + vaesenc xmm0,xmm0,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[224+rcx] + vaesenclast xmm0,xmm0,xmm15 + vpxorq xmm0,xmm0,xmm6 + vextracti32x4 xmm12,zmm0,0 + mov r10,QWORD[120+rbp] + vmovdqu8 XMMWORD[r11*1+r10]{k1},xmm0 + vmovdqu8 zmm0{k1}{z},zmm0 + vpshufb xmm6,xmm0,xmm29 + vextracti32x4 xmm13,zmm6,0 + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_480 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 xmm20,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm6,xmm20,0x01 + vpclmulqdq xmm5,xmm6,xmm20,0x10 + vpclmulqdq xmm0,xmm6,xmm20,0x11 + vpclmulqdq xmm3,xmm6,xmm20,0x00 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_480 +$L$_small_initial_partial_block_480: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + + + + + + + + + + + + vpxorq xmm14,xmm14,xmm13 + + jmp NEAR $L$_after_reduction_480 +$L$_small_initial_compute_done_480: +$L$_after_reduction_480: + jmp NEAR $L$_small_initial_blocks_encrypted_479 +$L$_small_initial_num_blocks_is_2_479: + vmovdqa64 ymm29,YMMWORD[SHUF_MASK] + vshufi64x2 ymm0,ymm2,ymm2,0 + vpaddd ymm0,ymm0,YMMWORD[ddq_add_1234] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm0,1 + vpshufb ymm0,ymm0,ymm29 + vmovdqu8 ymm6{k1}{z},[r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq ymm0,ymm0,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc ymm0,ymm0,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc ymm0,ymm0,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc ymm0,ymm0,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc ymm0,ymm0,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc ymm0,ymm0,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc ymm0,ymm0,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc ymm0,ymm0,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc ymm0,ymm0,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc ymm0,ymm0,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenc ymm0,ymm0,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[176+rcx] + vaesenc ymm0,ymm0,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[192+rcx] + vaesenc ymm0,ymm0,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[208+rcx] + vaesenc ymm0,ymm0,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[224+rcx] + vaesenclast ymm0,ymm0,ymm15 + vpxorq ymm0,ymm0,ymm6 + vextracti32x4 xmm12,zmm0,1 + mov r10,QWORD[120+rbp] + vmovdqu8 YMMWORD[r11*1+r10]{k1},ymm0 + vmovdqu8 zmm0{k1}{z},zmm0 + vpshufb ymm6,ymm0,ymm29 + vextracti32x4 xmm13,zmm6,1 + sub r13,16 * (2 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_481 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 ymm20,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm6,ymm20,0x01 + vpclmulqdq ymm5,ymm6,ymm20,0x10 + vpclmulqdq ymm0,ymm6,ymm20,0x11 + vpclmulqdq ymm3,ymm6,ymm20,0x00 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_481 +$L$_small_initial_partial_block_481: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 xmm20,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm6,xmm20,0x01 + vpclmulqdq xmm5,xmm6,xmm20,0x10 + vpclmulqdq xmm0,xmm6,xmm20,0x11 + vpclmulqdq xmm3,xmm6,xmm20,0x00 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_481: + + or r13,r13 + je NEAR $L$_after_reduction_481 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_481: + jmp NEAR $L$_small_initial_blocks_encrypted_479 +$L$_small_initial_num_blocks_is_3_479: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm0,2 + vpshufb zmm0,zmm0,zmm29 + vmovdqu8 zmm6{k1}{z},[r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[224+rcx] + vaesenclast zmm0,zmm0,zmm15 + vpxorq zmm0,zmm0,zmm6 + vextracti32x4 xmm12,zmm0,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10]{k1},zmm0 + vmovdqu8 zmm0{k1}{z},zmm0 + vpshufb zmm6,zmm0,zmm29 + vextracti32x4 xmm13,zmm6,2 + sub r13,16 * (3 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_482 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 ymm20,YMMWORD[304+rdx] + vinserti64x2 zmm20,zmm20,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_482 +$L$_small_initial_partial_block_482: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 ymm20,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm6,ymm20,0x01 + vpclmulqdq ymm5,ymm6,ymm20,0x10 + vpclmulqdq ymm0,ymm6,ymm20,0x11 + vpclmulqdq ymm3,ymm6,ymm20,0x00 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_482: + + or r13,r13 + je NEAR $L$_after_reduction_482 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_482: + jmp NEAR $L$_small_initial_blocks_encrypted_479 +$L$_small_initial_num_blocks_is_4_479: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm0,3 + vpshufb zmm0,zmm0,zmm29 + vmovdqu8 zmm6{k1}{z},[r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[224+rcx] + vaesenclast zmm0,zmm0,zmm15 + vpxorq zmm0,zmm0,zmm6 + vextracti32x4 xmm12,zmm0,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10]{k1},zmm0 + vmovdqu8 zmm0{k1}{z},zmm0 + vpshufb zmm6,zmm0,zmm29 + vextracti32x4 xmm13,zmm6,3 + sub r13,16 * (4 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_483 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[288+rdx] + vpclmulqdq zmm15,zmm6,zmm20,0x11 + vpclmulqdq zmm16,zmm6,zmm20,0x00 + vpclmulqdq zmm17,zmm6,zmm20,0x01 + vpclmulqdq zmm19,zmm6,zmm20,0x10 + + vpxorq zmm17,zmm17,zmm19 + vpsrldq zmm4,zmm17,8 + vpslldq zmm5,zmm17,8 + vpxorq zmm0,zmm15,zmm4 + vpxorq zmm3,zmm16,zmm5 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_483 +$L$_small_initial_partial_block_483: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 ymm20,YMMWORD[304+rdx] + vinserti64x2 zmm20,zmm20,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_483: + + or r13,r13 + je NEAR $L$_after_reduction_483 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_483: + jmp NEAR $L$_small_initial_blocks_encrypted_479 +$L$_small_initial_num_blocks_is_5_479: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm2,ZMMWORD[ddq_add_5678] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + sub r15,64 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm3,0 + vpshufb zmm0,zmm0,zmm29 + vpshufb xmm3,xmm3,xmm29 + vmovdqu8 zmm6,ZMMWORD[r11*1+r9] + vmovdqu8 xmm7{k1}{z},[64+r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vpxorq xmm3,xmm3,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc xmm3,xmm3,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc xmm3,xmm3,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc xmm3,xmm3,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc xmm3,xmm3,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc xmm3,xmm3,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc xmm3,xmm3,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc xmm3,xmm3,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc xmm3,xmm3,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc xmm3,xmm3,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc xmm3,xmm3,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc xmm3,xmm3,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc xmm3,xmm3,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc xmm3,xmm3,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[224+rcx] + vaesenclast zmm0,zmm0,zmm15 + vaesenclast xmm3,xmm3,xmm15 + vpxorq zmm0,zmm0,zmm6 + vpxorq xmm3,xmm3,xmm7 + vextracti32x4 xmm12,zmm3,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 XMMWORD[64+r11*1+r10]{k1},xmm3 + vmovdqu8 zmm3{k1}{z},zmm3 + vpshufb zmm6,zmm0,zmm29 + vpshufb xmm7,xmm3,xmm29 + vextracti32x4 xmm13,zmm7,0 + sub r13,16 * (5 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_484 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[272+rdx] + vpclmulqdq zmm15,zmm6,zmm20,0x11 + vpclmulqdq zmm16,zmm6,zmm20,0x00 + vpclmulqdq zmm17,zmm6,zmm20,0x01 + vpclmulqdq zmm19,zmm6,zmm20,0x10 + vmovdqu64 xmm20,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm7,xmm20,0x01 + vpclmulqdq xmm5,xmm7,xmm20,0x10 + vpclmulqdq xmm0,xmm7,xmm20,0x11 + vpclmulqdq xmm3,xmm7,xmm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_484 +$L$_small_initial_partial_block_484: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[288+rdx] + vpclmulqdq zmm15,zmm6,zmm20,0x11 + vpclmulqdq zmm16,zmm6,zmm20,0x00 + vpclmulqdq zmm17,zmm6,zmm20,0x01 + vpclmulqdq zmm19,zmm6,zmm20,0x10 + + vpxorq zmm17,zmm17,zmm19 + vpsrldq zmm4,zmm17,8 + vpslldq zmm5,zmm17,8 + vpxorq zmm0,zmm15,zmm4 + vpxorq zmm3,zmm16,zmm5 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_484: + + or r13,r13 + je NEAR $L$_after_reduction_484 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_484: + jmp NEAR $L$_small_initial_blocks_encrypted_479 +$L$_small_initial_num_blocks_is_6_479: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm2,ZMMWORD[ddq_add_5678] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + sub r15,64 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm3,1 + vpshufb zmm0,zmm0,zmm29 + vpshufb ymm3,ymm3,ymm29 + vmovdqu8 zmm6,ZMMWORD[r11*1+r9] + vmovdqu8 ymm7{k1}{z},[64+r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vpxorq ymm3,ymm3,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc ymm3,ymm3,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc ymm3,ymm3,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc ymm3,ymm3,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc ymm3,ymm3,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc ymm3,ymm3,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc ymm3,ymm3,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc ymm3,ymm3,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc ymm3,ymm3,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc ymm3,ymm3,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc ymm3,ymm3,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc ymm3,ymm3,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc ymm3,ymm3,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc ymm3,ymm3,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[224+rcx] + vaesenclast zmm0,zmm0,zmm15 + vaesenclast ymm3,ymm3,ymm15 + vpxorq zmm0,zmm0,zmm6 + vpxorq ymm3,ymm3,ymm7 + vextracti32x4 xmm12,zmm3,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 YMMWORD[64+r11*1+r10]{k1},ymm3 + vmovdqu8 zmm3{k1}{z},zmm3 + vpshufb zmm6,zmm0,zmm29 + vpshufb ymm7,ymm3,ymm29 + vextracti32x4 xmm13,zmm7,1 + sub r13,16 * (6 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_485 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[256+rdx] + vpclmulqdq zmm15,zmm6,zmm20,0x11 + vpclmulqdq zmm16,zmm6,zmm20,0x00 + vpclmulqdq zmm17,zmm6,zmm20,0x01 + vpclmulqdq zmm19,zmm6,zmm20,0x10 + vmovdqu64 ymm20,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm7,ymm20,0x01 + vpclmulqdq ymm5,ymm7,ymm20,0x10 + vpclmulqdq ymm0,ymm7,ymm20,0x11 + vpclmulqdq ymm3,ymm7,ymm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_485 +$L$_small_initial_partial_block_485: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[272+rdx] + vpclmulqdq zmm15,zmm6,zmm20,0x11 + vpclmulqdq zmm16,zmm6,zmm20,0x00 + vpclmulqdq zmm17,zmm6,zmm20,0x01 + vpclmulqdq zmm19,zmm6,zmm20,0x10 + vmovdqu64 xmm20,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm7,xmm20,0x01 + vpclmulqdq xmm5,xmm7,xmm20,0x10 + vpclmulqdq xmm0,xmm7,xmm20,0x11 + vpclmulqdq xmm3,xmm7,xmm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_485: + + or r13,r13 + je NEAR $L$_after_reduction_485 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_485: + jmp NEAR $L$_small_initial_blocks_encrypted_479 +$L$_small_initial_num_blocks_is_7_479: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm2,ZMMWORD[ddq_add_5678] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + sub r15,64 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm3,2 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vmovdqu8 zmm6,ZMMWORD[r11*1+r9] + vmovdqu8 zmm7{k1}{z},[64+r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[224+rcx] + vaesenclast zmm0,zmm0,zmm15 + vaesenclast zmm3,zmm3,zmm15 + vpxorq zmm0,zmm0,zmm6 + vpxorq zmm3,zmm3,zmm7 + vextracti32x4 xmm12,zmm3,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10]{k1},zmm3 + vmovdqu8 zmm3{k1}{z},zmm3 + vpshufb zmm6,zmm0,zmm29 + vpshufb zmm7,zmm3,zmm29 + vextracti32x4 xmm13,zmm7,2 + sub r13,16 * (7 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_486 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[240+rdx] + vpclmulqdq zmm15,zmm6,zmm20,0x11 + vpclmulqdq zmm16,zmm6,zmm20,0x00 + vpclmulqdq zmm17,zmm6,zmm20,0x01 + vpclmulqdq zmm19,zmm6,zmm20,0x10 + vmovdqu64 ymm20,YMMWORD[304+rdx] + vinserti64x2 zmm20,zmm20,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm7,zmm20,0x01 + vpclmulqdq zmm5,zmm7,zmm20,0x10 + vpclmulqdq zmm0,zmm7,zmm20,0x11 + vpclmulqdq zmm3,zmm7,zmm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_486 +$L$_small_initial_partial_block_486: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[256+rdx] + vpclmulqdq zmm15,zmm6,zmm20,0x11 + vpclmulqdq zmm16,zmm6,zmm20,0x00 + vpclmulqdq zmm17,zmm6,zmm20,0x01 + vpclmulqdq zmm19,zmm6,zmm20,0x10 + vmovdqu64 ymm20,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm7,ymm20,0x01 + vpclmulqdq ymm5,ymm7,ymm20,0x10 + vpclmulqdq ymm0,ymm7,ymm20,0x11 + vpclmulqdq ymm3,ymm7,ymm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_486: + + or r13,r13 + je NEAR $L$_after_reduction_486 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_486: + jmp NEAR $L$_small_initial_blocks_encrypted_479 +$L$_small_initial_num_blocks_is_8_479: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm2,ZMMWORD[ddq_add_5678] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + sub r15,64 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm3,3 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vmovdqu8 zmm6,ZMMWORD[r11*1+r9] + vmovdqu8 zmm7{k1}{z},[64+r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[224+rcx] + vaesenclast zmm0,zmm0,zmm15 + vaesenclast zmm3,zmm3,zmm15 + vpxorq zmm0,zmm0,zmm6 + vpxorq zmm3,zmm3,zmm7 + vextracti32x4 xmm12,zmm3,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10]{k1},zmm3 + vmovdqu8 zmm3{k1}{z},zmm3 + vpshufb zmm6,zmm0,zmm29 + vpshufb zmm7,zmm3,zmm29 + vextracti32x4 xmm13,zmm7,3 + sub r13,16 * (8 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_487 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[224+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[288+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vpxorq zmm15,zmm0,zmm15 + vpxorq zmm16,zmm3,zmm16 + vpxorq zmm17,zmm4,zmm17 + vpxorq zmm19,zmm5,zmm19 + + vpxorq zmm17,zmm17,zmm19 + vpsrldq zmm4,zmm17,8 + vpslldq zmm5,zmm17,8 + vpxorq zmm0,zmm15,zmm4 + vpxorq zmm3,zmm16,zmm5 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_487 +$L$_small_initial_partial_block_487: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[240+rdx] + vpclmulqdq zmm15,zmm6,zmm20,0x11 + vpclmulqdq zmm16,zmm6,zmm20,0x00 + vpclmulqdq zmm17,zmm6,zmm20,0x01 + vpclmulqdq zmm19,zmm6,zmm20,0x10 + vmovdqu64 ymm20,YMMWORD[304+rdx] + vinserti64x2 zmm20,zmm20,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm7,zmm20,0x01 + vpclmulqdq zmm5,zmm7,zmm20,0x10 + vpclmulqdq zmm0,zmm7,zmm20,0x11 + vpclmulqdq zmm3,zmm7,zmm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_487: + + or r13,r13 + je NEAR $L$_after_reduction_487 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_487: + jmp NEAR $L$_small_initial_blocks_encrypted_479 +$L$_small_initial_num_blocks_is_9_479: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm2,ZMMWORD[ddq_add_5678] + vpaddd zmm4,zmm0,ZMMWORD[ddq_add_8888] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + sub r15,128 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm4,0 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb xmm4,xmm4,xmm29 + vmovdqu8 zmm6,ZMMWORD[r11*1+r9] + vmovdqu8 zmm7,ZMMWORD[64+r11*1+r9] + vmovdqu8 xmm10{k1}{z},[128+r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm15 + vpxorq xmm4,xmm4,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc xmm4,xmm4,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc xmm4,xmm4,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc xmm4,xmm4,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc xmm4,xmm4,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc xmm4,xmm4,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc xmm4,xmm4,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc xmm4,xmm4,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc xmm4,xmm4,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc xmm4,xmm4,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc xmm4,xmm4,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc xmm4,xmm4,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc xmm4,xmm4,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc xmm4,xmm4,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[224+rcx] + vaesenclast zmm0,zmm0,zmm15 + vaesenclast zmm3,zmm3,zmm15 + vaesenclast xmm4,xmm4,xmm15 + vpxorq zmm0,zmm0,zmm6 + vpxorq zmm3,zmm3,zmm7 + vpxorq xmm4,xmm4,xmm10 + vextracti32x4 xmm12,zmm4,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 XMMWORD[128+r11*1+r10]{k1},xmm4 + vmovdqu8 zmm4{k1}{z},zmm4 + vpshufb zmm6,zmm0,zmm29 + vpshufb zmm7,zmm3,zmm29 + vpshufb xmm10,xmm4,xmm29 + vextracti32x4 xmm13,zmm10,0 + sub r13,16 * (9 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_488 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[208+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[272+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vpxorq zmm15,zmm0,zmm15 + vpxorq zmm16,zmm3,zmm16 + vpxorq zmm17,zmm4,zmm17 + vpxorq zmm19,zmm5,zmm19 + vmovdqu64 xmm20,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm10,xmm20,0x01 + vpclmulqdq xmm5,xmm10,xmm20,0x10 + vpclmulqdq xmm0,xmm10,xmm20,0x11 + vpclmulqdq xmm3,xmm10,xmm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_488 +$L$_small_initial_partial_block_488: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[224+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[288+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vpxorq zmm15,zmm0,zmm15 + vpxorq zmm16,zmm3,zmm16 + vpxorq zmm17,zmm4,zmm17 + vpxorq zmm19,zmm5,zmm19 + + vpxorq zmm17,zmm17,zmm19 + vpsrldq zmm4,zmm17,8 + vpslldq zmm5,zmm17,8 + vpxorq zmm0,zmm15,zmm4 + vpxorq zmm3,zmm16,zmm5 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_488: + + or r13,r13 + je NEAR $L$_after_reduction_488 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_488: + jmp NEAR $L$_small_initial_blocks_encrypted_479 +$L$_small_initial_num_blocks_is_10_479: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm2,ZMMWORD[ddq_add_5678] + vpaddd zmm4,zmm0,ZMMWORD[ddq_add_8888] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + sub r15,128 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm4,1 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb ymm4,ymm4,ymm29 + vmovdqu8 zmm6,ZMMWORD[r11*1+r9] + vmovdqu8 zmm7,ZMMWORD[64+r11*1+r9] + vmovdqu8 ymm10{k1}{z},[128+r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm15 + vpxorq ymm4,ymm4,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc ymm4,ymm4,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc ymm4,ymm4,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc ymm4,ymm4,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc ymm4,ymm4,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc ymm4,ymm4,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc ymm4,ymm4,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc ymm4,ymm4,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc ymm4,ymm4,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc ymm4,ymm4,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc ymm4,ymm4,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc ymm4,ymm4,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc ymm4,ymm4,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc ymm4,ymm4,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[224+rcx] + vaesenclast zmm0,zmm0,zmm15 + vaesenclast zmm3,zmm3,zmm15 + vaesenclast ymm4,ymm4,ymm15 + vpxorq zmm0,zmm0,zmm6 + vpxorq zmm3,zmm3,zmm7 + vpxorq ymm4,ymm4,ymm10 + vextracti32x4 xmm12,zmm4,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 YMMWORD[128+r11*1+r10]{k1},ymm4 + vmovdqu8 zmm4{k1}{z},zmm4 + vpshufb zmm6,zmm0,zmm29 + vpshufb zmm7,zmm3,zmm29 + vpshufb ymm10,ymm4,ymm29 + vextracti32x4 xmm13,zmm10,1 + sub r13,16 * (10 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_489 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[192+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[256+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vpxorq zmm15,zmm0,zmm15 + vpxorq zmm16,zmm3,zmm16 + vpxorq zmm17,zmm4,zmm17 + vpxorq zmm19,zmm5,zmm19 + vmovdqu64 ymm20,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm10,ymm20,0x01 + vpclmulqdq ymm5,ymm10,ymm20,0x10 + vpclmulqdq ymm0,ymm10,ymm20,0x11 + vpclmulqdq ymm3,ymm10,ymm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_489 +$L$_small_initial_partial_block_489: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[208+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[272+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vpxorq zmm15,zmm0,zmm15 + vpxorq zmm16,zmm3,zmm16 + vpxorq zmm17,zmm4,zmm17 + vpxorq zmm19,zmm5,zmm19 + vmovdqu64 xmm20,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm10,xmm20,0x01 + vpclmulqdq xmm5,xmm10,xmm20,0x10 + vpclmulqdq xmm0,xmm10,xmm20,0x11 + vpclmulqdq xmm3,xmm10,xmm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_489: + + or r13,r13 + je NEAR $L$_after_reduction_489 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_489: + jmp NEAR $L$_small_initial_blocks_encrypted_479 +$L$_small_initial_num_blocks_is_11_479: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm2,ZMMWORD[ddq_add_5678] + vpaddd zmm4,zmm0,ZMMWORD[ddq_add_8888] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + sub r15,128 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm4,2 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vmovdqu8 zmm6,ZMMWORD[r11*1+r9] + vmovdqu8 zmm7,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm10{k1}{z},[128+r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm15 + vpxorq zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[224+rcx] + vaesenclast zmm0,zmm0,zmm15 + vaesenclast zmm3,zmm3,zmm15 + vaesenclast zmm4,zmm4,zmm15 + vpxorq zmm0,zmm0,zmm6 + vpxorq zmm3,zmm3,zmm7 + vpxorq zmm4,zmm4,zmm10 + vextracti32x4 xmm12,zmm4,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10]{k1},zmm4 + vmovdqu8 zmm4{k1}{z},zmm4 + vpshufb zmm6,zmm0,zmm29 + vpshufb zmm7,zmm3,zmm29 + vpshufb zmm10,zmm4,zmm29 + vextracti32x4 xmm13,zmm10,2 + sub r13,16 * (11 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_490 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[176+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[240+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vpxorq zmm15,zmm0,zmm15 + vpxorq zmm16,zmm3,zmm16 + vpxorq zmm17,zmm4,zmm17 + vpxorq zmm19,zmm5,zmm19 + vmovdqu64 ymm20,YMMWORD[304+rdx] + vinserti64x2 zmm20,zmm20,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm10,zmm20,0x01 + vpclmulqdq zmm5,zmm10,zmm20,0x10 + vpclmulqdq zmm0,zmm10,zmm20,0x11 + vpclmulqdq zmm3,zmm10,zmm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_490 +$L$_small_initial_partial_block_490: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[192+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[256+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vpxorq zmm15,zmm0,zmm15 + vpxorq zmm16,zmm3,zmm16 + vpxorq zmm17,zmm4,zmm17 + vpxorq zmm19,zmm5,zmm19 + vmovdqu64 ymm20,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm10,ymm20,0x01 + vpclmulqdq ymm5,ymm10,ymm20,0x10 + vpclmulqdq ymm0,ymm10,ymm20,0x11 + vpclmulqdq ymm3,ymm10,ymm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_490: + + or r13,r13 + je NEAR $L$_after_reduction_490 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_490: + jmp NEAR $L$_small_initial_blocks_encrypted_479 +$L$_small_initial_num_blocks_is_12_479: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm2,ZMMWORD[ddq_add_5678] + vpaddd zmm4,zmm0,ZMMWORD[ddq_add_8888] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + sub r15,128 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm4,3 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vmovdqu8 zmm6,ZMMWORD[r11*1+r9] + vmovdqu8 zmm7,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm10{k1}{z},[128+r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm15 + vpxorq zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[224+rcx] + vaesenclast zmm0,zmm0,zmm15 + vaesenclast zmm3,zmm3,zmm15 + vaesenclast zmm4,zmm4,zmm15 + vpxorq zmm0,zmm0,zmm6 + vpxorq zmm3,zmm3,zmm7 + vpxorq zmm4,zmm4,zmm10 + vextracti32x4 xmm12,zmm4,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10]{k1},zmm4 + vmovdqu8 zmm4{k1}{z},zmm4 + vpshufb zmm6,zmm0,zmm29 + vpshufb zmm7,zmm3,zmm29 + vpshufb zmm10,zmm4,zmm29 + vextracti32x4 xmm13,zmm10,3 + sub r13,16 * (12 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_491 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[160+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[224+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[288+rdx] + vpclmulqdq zmm6,zmm10,zmm20,0x11 + vpclmulqdq zmm7,zmm10,zmm20,0x00 + vpternlogq zmm15,zmm6,zmm0,0x96 + vpternlogq zmm16,zmm7,zmm3,0x96 + vpclmulqdq zmm6,zmm10,zmm20,0x01 + vpclmulqdq zmm7,zmm10,zmm20,0x10 + vpternlogq zmm17,zmm6,zmm4,0x96 + vpternlogq zmm19,zmm7,zmm5,0x96 + + vpxorq zmm17,zmm17,zmm19 + vpsrldq zmm4,zmm17,8 + vpslldq zmm5,zmm17,8 + vpxorq zmm0,zmm15,zmm4 + vpxorq zmm3,zmm16,zmm5 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_491 +$L$_small_initial_partial_block_491: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[176+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[240+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vpxorq zmm15,zmm0,zmm15 + vpxorq zmm16,zmm3,zmm16 + vpxorq zmm17,zmm4,zmm17 + vpxorq zmm19,zmm5,zmm19 + vmovdqu64 ymm20,YMMWORD[304+rdx] + vinserti64x2 zmm20,zmm20,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm10,zmm20,0x01 + vpclmulqdq zmm5,zmm10,zmm20,0x10 + vpclmulqdq zmm0,zmm10,zmm20,0x11 + vpclmulqdq zmm3,zmm10,zmm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_491: + + or r13,r13 + je NEAR $L$_after_reduction_491 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_491: + jmp NEAR $L$_small_initial_blocks_encrypted_479 +$L$_small_initial_num_blocks_is_13_479: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm2,ZMMWORD[ddq_add_5678] + vpaddd zmm4,zmm0,ZMMWORD[ddq_add_8888] + vpaddd zmm5,zmm3,ZMMWORD[ddq_add_8888] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + sub r15,192 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm5,0 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb xmm5,xmm5,xmm29 + vmovdqu8 zmm6,ZMMWORD[r11*1+r9] + vmovdqu8 zmm7,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm10,ZMMWORD[128+r11*1+r9] + vmovdqu8 xmm11{k1}{z},[192+r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm15 + vpxorq zmm4,zmm4,zmm15 + vpxorq xmm5,xmm5,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc xmm5,xmm5,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc xmm5,xmm5,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc xmm5,xmm5,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc xmm5,xmm5,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc xmm5,xmm5,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc xmm5,xmm5,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc xmm5,xmm5,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc xmm5,xmm5,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc xmm5,xmm5,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc xmm5,xmm5,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc xmm5,xmm5,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc xmm5,xmm5,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc xmm5,xmm5,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[224+rcx] + vaesenclast zmm0,zmm0,zmm15 + vaesenclast zmm3,zmm3,zmm15 + vaesenclast zmm4,zmm4,zmm15 + vaesenclast xmm5,xmm5,xmm15 + vpxorq zmm0,zmm0,zmm6 + vpxorq zmm3,zmm3,zmm7 + vpxorq zmm4,zmm4,zmm10 + vpxorq xmm5,xmm5,xmm11 + vextracti32x4 xmm12,zmm5,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 XMMWORD[192+r11*1+r10]{k1},xmm5 + vmovdqu8 zmm5{k1}{z},zmm5 + vpshufb zmm6,zmm0,zmm29 + vpshufb zmm7,zmm3,zmm29 + vpshufb zmm10,zmm4,zmm29 + vpshufb xmm11,xmm5,xmm29 + vextracti32x4 xmm13,zmm11,0 + sub r13,16 * (13 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_492 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[144+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[208+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[272+rdx] + vpclmulqdq zmm6,zmm10,zmm20,0x11 + vpclmulqdq zmm7,zmm10,zmm20,0x00 + vpternlogq zmm15,zmm6,zmm0,0x96 + vpternlogq zmm16,zmm7,zmm3,0x96 + vpclmulqdq zmm6,zmm10,zmm20,0x01 + vpclmulqdq zmm7,zmm10,zmm20,0x10 + vpternlogq zmm17,zmm6,zmm4,0x96 + vpternlogq zmm19,zmm7,zmm5,0x96 + vmovdqu64 xmm20,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm11,xmm20,0x01 + vpclmulqdq xmm5,xmm11,xmm20,0x10 + vpclmulqdq xmm0,xmm11,xmm20,0x11 + vpclmulqdq xmm3,xmm11,xmm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_492 +$L$_small_initial_partial_block_492: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[160+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[224+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[288+rdx] + vpclmulqdq zmm6,zmm10,zmm20,0x11 + vpclmulqdq zmm7,zmm10,zmm20,0x00 + vpternlogq zmm15,zmm6,zmm0,0x96 + vpternlogq zmm16,zmm7,zmm3,0x96 + vpclmulqdq zmm6,zmm10,zmm20,0x01 + vpclmulqdq zmm7,zmm10,zmm20,0x10 + vpternlogq zmm17,zmm6,zmm4,0x96 + vpternlogq zmm19,zmm7,zmm5,0x96 + + vpxorq zmm17,zmm17,zmm19 + vpsrldq zmm4,zmm17,8 + vpslldq zmm5,zmm17,8 + vpxorq zmm0,zmm15,zmm4 + vpxorq zmm3,zmm16,zmm5 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_492: + + or r13,r13 + je NEAR $L$_after_reduction_492 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_492: + jmp NEAR $L$_small_initial_blocks_encrypted_479 +$L$_small_initial_num_blocks_is_14_479: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm2,ZMMWORD[ddq_add_5678] + vpaddd zmm4,zmm0,ZMMWORD[ddq_add_8888] + vpaddd zmm5,zmm3,ZMMWORD[ddq_add_8888] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + sub r15,192 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm5,1 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb ymm5,ymm5,ymm29 + vmovdqu8 zmm6,ZMMWORD[r11*1+r9] + vmovdqu8 zmm7,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm10,ZMMWORD[128+r11*1+r9] + vmovdqu8 ymm11{k1}{z},[192+r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm15 + vpxorq zmm4,zmm4,zmm15 + vpxorq ymm5,ymm5,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc ymm5,ymm5,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc ymm5,ymm5,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc ymm5,ymm5,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc ymm5,ymm5,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc ymm5,ymm5,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc ymm5,ymm5,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc ymm5,ymm5,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc ymm5,ymm5,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc ymm5,ymm5,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc ymm5,ymm5,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc ymm5,ymm5,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc ymm5,ymm5,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc ymm5,ymm5,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[224+rcx] + vaesenclast zmm0,zmm0,zmm15 + vaesenclast zmm3,zmm3,zmm15 + vaesenclast zmm4,zmm4,zmm15 + vaesenclast ymm5,ymm5,ymm15 + vpxorq zmm0,zmm0,zmm6 + vpxorq zmm3,zmm3,zmm7 + vpxorq zmm4,zmm4,zmm10 + vpxorq ymm5,ymm5,ymm11 + vextracti32x4 xmm12,zmm5,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 YMMWORD[192+r11*1+r10]{k1},ymm5 + vmovdqu8 zmm5{k1}{z},zmm5 + vpshufb zmm6,zmm0,zmm29 + vpshufb zmm7,zmm3,zmm29 + vpshufb zmm10,zmm4,zmm29 + vpshufb ymm11,ymm5,ymm29 + vextracti32x4 xmm13,zmm11,1 + sub r13,16 * (14 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_493 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[128+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[192+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[256+rdx] + vpclmulqdq zmm6,zmm10,zmm20,0x11 + vpclmulqdq zmm7,zmm10,zmm20,0x00 + vpternlogq zmm15,zmm6,zmm0,0x96 + vpternlogq zmm16,zmm7,zmm3,0x96 + vpclmulqdq zmm6,zmm10,zmm20,0x01 + vpclmulqdq zmm7,zmm10,zmm20,0x10 + vpternlogq zmm17,zmm6,zmm4,0x96 + vpternlogq zmm19,zmm7,zmm5,0x96 + vmovdqu64 ymm20,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm11,ymm20,0x01 + vpclmulqdq ymm5,ymm11,ymm20,0x10 + vpclmulqdq ymm0,ymm11,ymm20,0x11 + vpclmulqdq ymm3,ymm11,ymm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_493 +$L$_small_initial_partial_block_493: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[144+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[208+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[272+rdx] + vpclmulqdq zmm6,zmm10,zmm20,0x11 + vpclmulqdq zmm7,zmm10,zmm20,0x00 + vpternlogq zmm15,zmm6,zmm0,0x96 + vpternlogq zmm16,zmm7,zmm3,0x96 + vpclmulqdq zmm6,zmm10,zmm20,0x01 + vpclmulqdq zmm7,zmm10,zmm20,0x10 + vpternlogq zmm17,zmm6,zmm4,0x96 + vpternlogq zmm19,zmm7,zmm5,0x96 + vmovdqu64 xmm20,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm11,xmm20,0x01 + vpclmulqdq xmm5,xmm11,xmm20,0x10 + vpclmulqdq xmm0,xmm11,xmm20,0x11 + vpclmulqdq xmm3,xmm11,xmm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_493: + + or r13,r13 + je NEAR $L$_after_reduction_493 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_493: + jmp NEAR $L$_small_initial_blocks_encrypted_479 +$L$_small_initial_num_blocks_is_15_479: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm2,ZMMWORD[ddq_add_5678] + vpaddd zmm4,zmm0,ZMMWORD[ddq_add_8888] + vpaddd zmm5,zmm3,ZMMWORD[ddq_add_8888] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + sub r15,192 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm5,2 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 + vmovdqu8 zmm6,ZMMWORD[r11*1+r9] + vmovdqu8 zmm7,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm10,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm11{k1}{z},[192+r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm15 + vpxorq zmm4,zmm4,zmm15 + vpxorq zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[224+rcx] + vaesenclast zmm0,zmm0,zmm15 + vaesenclast zmm3,zmm3,zmm15 + vaesenclast zmm4,zmm4,zmm15 + vaesenclast zmm5,zmm5,zmm15 + vpxorq zmm0,zmm0,zmm6 + vpxorq zmm3,zmm3,zmm7 + vpxorq zmm4,zmm4,zmm10 + vpxorq zmm5,zmm5,zmm11 + vextracti32x4 xmm12,zmm5,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[192+r11*1+r10]{k1},zmm5 + vmovdqu8 zmm5{k1}{z},zmm5 + vpshufb zmm6,zmm0,zmm29 + vpshufb zmm7,zmm3,zmm29 + vpshufb zmm10,zmm4,zmm29 + vpshufb zmm11,zmm5,zmm29 + vextracti32x4 xmm13,zmm11,2 + sub r13,16 * (15 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_494 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[112+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[176+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[240+rdx] + vpclmulqdq zmm6,zmm10,zmm20,0x11 + vpclmulqdq zmm7,zmm10,zmm20,0x00 + vpternlogq zmm15,zmm6,zmm0,0x96 + vpternlogq zmm16,zmm7,zmm3,0x96 + vpclmulqdq zmm6,zmm10,zmm20,0x01 + vpclmulqdq zmm7,zmm10,zmm20,0x10 + vpternlogq zmm17,zmm6,zmm4,0x96 + vpternlogq zmm19,zmm7,zmm5,0x96 + vmovdqu64 ymm20,YMMWORD[304+rdx] + vinserti64x2 zmm20,zmm20,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm11,zmm20,0x01 + vpclmulqdq zmm5,zmm11,zmm20,0x10 + vpclmulqdq zmm0,zmm11,zmm20,0x11 + vpclmulqdq zmm3,zmm11,zmm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_494 +$L$_small_initial_partial_block_494: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[128+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[192+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[256+rdx] + vpclmulqdq zmm6,zmm10,zmm20,0x11 + vpclmulqdq zmm7,zmm10,zmm20,0x00 + vpternlogq zmm15,zmm6,zmm0,0x96 + vpternlogq zmm16,zmm7,zmm3,0x96 + vpclmulqdq zmm6,zmm10,zmm20,0x01 + vpclmulqdq zmm7,zmm10,zmm20,0x10 + vpternlogq zmm17,zmm6,zmm4,0x96 + vpternlogq zmm19,zmm7,zmm5,0x96 + vmovdqu64 ymm20,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm11,ymm20,0x01 + vpclmulqdq ymm5,ymm11,ymm20,0x10 + vpclmulqdq ymm0,ymm11,ymm20,0x11 + vpclmulqdq ymm3,ymm11,ymm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_494: + + or r13,r13 + je NEAR $L$_after_reduction_494 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_494: + jmp NEAR $L$_small_initial_blocks_encrypted_479 +$L$_small_initial_num_blocks_is_16_479: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm2,ZMMWORD[ddq_add_5678] + vpaddd zmm4,zmm0,ZMMWORD[ddq_add_8888] + vpaddd zmm5,zmm3,ZMMWORD[ddq_add_8888] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + sub r15,192 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm5,3 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 + vmovdqu8 zmm6,ZMMWORD[r11*1+r9] + vmovdqu8 zmm7,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm10,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm11{k1}{z},[192+r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm15 + vpxorq zmm4,zmm4,zmm15 + vpxorq zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[224+rcx] + vaesenclast zmm0,zmm0,zmm15 + vaesenclast zmm3,zmm3,zmm15 + vaesenclast zmm4,zmm4,zmm15 + vaesenclast zmm5,zmm5,zmm15 + vpxorq zmm0,zmm0,zmm6 + vpxorq zmm3,zmm3,zmm7 + vpxorq zmm4,zmm4,zmm10 + vpxorq zmm5,zmm5,zmm11 + vextracti32x4 xmm12,zmm5,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[192+r11*1+r10]{k1},zmm5 + vmovdqu8 zmm5{k1}{z},zmm5 + vpshufb zmm6,zmm0,zmm29 + vpshufb zmm7,zmm3,zmm29 + vpshufb zmm10,zmm4,zmm29 + vpshufb zmm11,zmm5,zmm29 + vextracti32x4 xmm13,zmm11,3 + sub r13,16 * (16 - 1) +$L$_small_initial_partial_block_495: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[112+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[176+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[240+rdx] + vpclmulqdq zmm6,zmm10,zmm20,0x11 + vpclmulqdq zmm7,zmm10,zmm20,0x00 + vpternlogq zmm15,zmm6,zmm0,0x96 + vpternlogq zmm16,zmm7,zmm3,0x96 + vpclmulqdq zmm6,zmm10,zmm20,0x01 + vpclmulqdq zmm7,zmm10,zmm20,0x10 + vpternlogq zmm17,zmm6,zmm4,0x96 + vpternlogq zmm19,zmm7,zmm5,0x96 + vmovdqu64 ymm20,YMMWORD[304+rdx] + vinserti64x2 zmm20,zmm20,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm11,zmm20,0x01 + vpclmulqdq zmm5,zmm11,zmm20,0x10 + vpclmulqdq zmm0,zmm11,zmm20,0x11 + vpclmulqdq zmm3,zmm11,zmm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_495: + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_495: +$L$_small_initial_blocks_encrypted_479: +$L$_ghash_done_334: + vmovdqu64 XMMWORD[rdx],xmm2 + vmovdqu64 XMMWORD[64+rdx],xmm14 +$L$_enc_dec_done_334: + jmp NEAR $L$exit_gcm_encrypt +$L$exit_gcm_encrypt: + cmp QWORD[112+rbp],256 + jbe NEAR $L$skip_hkeys_cleanup_496 + vpxor xmm0,xmm0,xmm0 + vmovdqa64 ZMMWORD[rsp],zmm0 + vmovdqa64 ZMMWORD[64+rsp],zmm0 + vmovdqa64 ZMMWORD[128+rsp],zmm0 + vmovdqa64 ZMMWORD[192+rsp],zmm0 + vmovdqa64 ZMMWORD[256+rsp],zmm0 + vmovdqa64 ZMMWORD[320+rsp],zmm0 + vmovdqa64 ZMMWORD[384+rsp],zmm0 + vmovdqa64 ZMMWORD[448+rsp],zmm0 + vmovdqa64 ZMMWORD[512+rsp],zmm0 + vmovdqa64 ZMMWORD[576+rsp],zmm0 + vmovdqa64 ZMMWORD[640+rsp],zmm0 + vmovdqa64 ZMMWORD[704+rsp],zmm0 +$L$skip_hkeys_cleanup_496: + vzeroupper + vmovdqu xmm15,XMMWORD[((-16))+rbp] + vmovdqu xmm14,XMMWORD[((-32))+rbp] + vmovdqu xmm13,XMMWORD[((-48))+rbp] + vmovdqu xmm12,XMMWORD[((-64))+rbp] + vmovdqu xmm11,XMMWORD[((-80))+rbp] + vmovdqu xmm10,XMMWORD[((-96))+rbp] + vmovdqu xmm9,XMMWORD[((-112))+rbp] + vmovdqu xmm8,XMMWORD[((-128))+rbp] + vmovdqu xmm7,XMMWORD[((-144))+rbp] + vmovdqu xmm6,XMMWORD[((-160))+rbp] + lea rsp,[8+rbp] + pop rsi + + pop rdi + + pop r15 + + pop r14 + + pop r13 + + pop r12 + + pop rbp + + pop rbx + + DB 0F3h,0C3h ;repret +$L$encrypt_seh_end: + + +global ossl_aes_gcm_decrypt_avx512 + +ALIGN 32 +ossl_aes_gcm_decrypt_avx512: + +$L$decrypt_seh_begin: +DB 243,15,30,250 + push rbx + +$L$decrypt_seh_push_rbx: + push rbp + +$L$decrypt_seh_push_rbp: + push r12 + +$L$decrypt_seh_push_r12: + push r13 + +$L$decrypt_seh_push_r13: + push r14 + +$L$decrypt_seh_push_r14: + push r15 + +$L$decrypt_seh_push_r15: + push rdi +$L$decrypt_seh_push_rdi: + push rsi +$L$decrypt_seh_push_rsi: + + sub rsp,168 +$L$decrypt_seh_allocstack_xmm: + + + + + + + + + + + lea rbp,[160+rsp] + +$L$decrypt_seh_setfp: + vmovdqu XMMWORD[rsp],xmm6 +$L$decrypt_seh_save_xmm6: + vmovdqu XMMWORD[16+rsp],xmm7 +$L$decrypt_seh_save_xmm7: + vmovdqu XMMWORD[32+rsp],xmm8 +$L$decrypt_seh_save_xmm8: + vmovdqu XMMWORD[48+rsp],xmm9 +$L$decrypt_seh_save_xmm9: + vmovdqu XMMWORD[64+rsp],xmm10 +$L$decrypt_seh_save_xmm10: + vmovdqu XMMWORD[80+rsp],xmm11 +$L$decrypt_seh_save_xmm11: + vmovdqu XMMWORD[96+rsp],xmm12 +$L$decrypt_seh_save_xmm12: + vmovdqu XMMWORD[112+rsp],xmm13 +$L$decrypt_seh_save_xmm13: + vmovdqu XMMWORD[128+rsp],xmm14 +$L$decrypt_seh_save_xmm14: + vmovdqu XMMWORD[144+rsp],xmm15 +$L$decrypt_seh_save_xmm15: + +$L$decrypt_seh_prolog_end: + sub rsp,1584 + and rsp,(-64) + + + mov eax,DWORD[240+rcx] + cmp eax,9 + je NEAR $L$aes_gcm_decrypt_128_avx512 + cmp eax,11 + je NEAR $L$aes_gcm_decrypt_192_avx512 + cmp eax,13 + je NEAR $L$aes_gcm_decrypt_256_avx512 + xor eax,eax + jmp NEAR $L$exit_gcm_decrypt +ALIGN 32 +$L$aes_gcm_decrypt_128_avx512: + cmp QWORD[112+rbp],0 + je NEAR $L$_enc_dec_done_497 + xor r14,r14 + vmovdqu64 xmm14,XMMWORD[64+rdx] + + mov r11,QWORD[r8] + or r11,r11 + je NEAR $L$_partial_block_done_498 + mov r10d,16 + lea r12,[byte_len_to_mask_table] + cmp QWORD[112+rbp],r10 + cmovc r10,QWORD[112+rbp] + add r12,r10 + add r12,r10 + kmovw k1,[r12] + vmovdqu8 xmm0{k1}{z},[r9] + + vmovdqu64 xmm3,XMMWORD[16+rdx] + vmovdqu64 xmm4,XMMWORD[336+rdx] + + + + lea r12,[SHIFT_MASK] + add r12,r11 + vmovdqu64 xmm5,XMMWORD[r12] + vpshufb xmm3,xmm3,xmm5 + + vmovdqa64 xmm6,xmm0 + vpxorq xmm3,xmm3,xmm0 + + + mov r13,QWORD[112+rbp] + add r13,r11 + sub r13,16 + jge NEAR $L$_no_extra_mask_498 + sub r12,r13 +$L$_no_extra_mask_498: + + + + vmovdqu64 xmm0,XMMWORD[16+r12] + vpand xmm3,xmm3,xmm0 + vpand xmm6,xmm6,xmm0 + vpshufb xmm6,xmm6,XMMWORD[SHUF_MASK] + vpshufb xmm6,xmm6,xmm5 + vpxorq xmm14,xmm14,xmm6 + cmp r13,0 + jl NEAR $L$_partial_incomplete_498 + + vpclmulqdq xmm7,xmm14,xmm4,0x11 + vpclmulqdq xmm10,xmm14,xmm4,0x00 + vpclmulqdq xmm11,xmm14,xmm4,0x01 + vpclmulqdq xmm14,xmm14,xmm4,0x10 + vpxorq xmm14,xmm14,xmm11 + + vpsrldq xmm11,xmm14,8 + vpslldq xmm14,xmm14,8 + vpxorq xmm7,xmm7,xmm11 + vpxorq xmm14,xmm14,xmm10 + + + + vmovdqu64 xmm11,XMMWORD[POLY2] + + vpclmulqdq xmm10,xmm11,xmm14,0x01 + vpslldq xmm10,xmm10,8 + vpxorq xmm14,xmm14,xmm10 + + + + vpclmulqdq xmm10,xmm11,xmm14,0x00 + vpsrldq xmm10,xmm10,4 + vpclmulqdq xmm14,xmm11,xmm14,0x10 + vpslldq xmm14,xmm14,4 + + vpternlogq xmm14,xmm7,xmm10,0x96 + + mov QWORD[r8],0 + + mov r12,r11 + mov r11,16 + sub r11,r12 + jmp NEAR $L$_enc_dec_done_498 + +$L$_partial_incomplete_498: + mov r12,QWORD[112+rbp] + add QWORD[r8],r12 + mov r11,QWORD[112+rbp] + +$L$_enc_dec_done_498: + + + lea r12,[byte_len_to_mask_table] + kmovw k1,[r11*2+r12] + vmovdqu64 XMMWORD[64+rdx],xmm14 + mov r12,QWORD[120+rbp] + vmovdqu8 XMMWORD[r12]{k1},xmm3 +$L$_partial_block_done_498: + vmovdqu64 xmm2,XMMWORD[rdx] + mov r13,QWORD[112+rbp] + sub r13,r11 + je NEAR $L$_enc_dec_done_497 + cmp r13,256 + jbe NEAR $L$_message_below_equal_16_blocks_497 + + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vmovdqa64 zmm27,ZMMWORD[ddq_addbe_4444] + vmovdqa64 zmm28,ZMMWORD[ddq_addbe_1234] + + + + + + + vmovd r15d,xmm2 + and r15d,255 + + vshufi64x2 zmm2,zmm2,zmm2,0 + vpshufb zmm2,zmm2,zmm29 + + + + cmp r15b,240 + jae NEAR $L$_next_16_overflow_499 + vpaddd zmm7,zmm2,zmm28 + vpaddd zmm10,zmm7,zmm27 + vpaddd zmm11,zmm10,zmm27 + vpaddd zmm12,zmm11,zmm27 + jmp NEAR $L$_next_16_ok_499 +$L$_next_16_overflow_499: + vpshufb zmm2,zmm2,zmm29 + vmovdqa64 zmm12,ZMMWORD[ddq_add_4444] + vpaddd zmm7,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm10,zmm7,zmm12 + vpaddd zmm11,zmm10,zmm12 + vpaddd zmm12,zmm11,zmm12 + vpshufb zmm7,zmm7,zmm29 + vpshufb zmm10,zmm10,zmm29 + vpshufb zmm11,zmm11,zmm29 + vpshufb zmm12,zmm12,zmm29 +$L$_next_16_ok_499: + vshufi64x2 zmm2,zmm12,zmm12,255 + add r15b,16 + + vmovdqu8 zmm0,ZMMWORD[r11*1+r9] + vmovdqu8 zmm3,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm4,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm5,ZMMWORD[192+r11*1+r9] + + + vbroadcastf64x2 zmm6,ZMMWORD[rcx] + vpxorq zmm7,zmm7,zmm6 + vpxorq zmm10,zmm10,zmm6 + vpxorq zmm11,zmm11,zmm6 + vpxorq zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[16+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[32+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[48+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[64+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[80+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[96+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[112+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[128+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[144+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[160+rcx] + vaesenclast zmm7,zmm7,zmm6 + vaesenclast zmm10,zmm10,zmm6 + vaesenclast zmm11,zmm11,zmm6 + vaesenclast zmm12,zmm12,zmm6 + + + vpxorq zmm7,zmm7,zmm0 + vpxorq zmm10,zmm10,zmm3 + vpxorq zmm11,zmm11,zmm4 + vpxorq zmm12,zmm12,zmm5 + + + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm7 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm10 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm11 + vmovdqu8 ZMMWORD[192+r11*1+r10],zmm12 + + vpshufb zmm7,zmm0,zmm29 + vpshufb zmm10,zmm3,zmm29 + vpshufb zmm11,zmm4,zmm29 + vpshufb zmm12,zmm5,zmm29 + vmovdqa64 ZMMWORD[768+rsp],zmm7 + vmovdqa64 ZMMWORD[832+rsp],zmm10 + vmovdqa64 ZMMWORD[896+rsp],zmm11 + vmovdqa64 ZMMWORD[960+rsp],zmm12 + test r14,r14 + jnz NEAR $L$_skip_hkeys_precomputation_500 + + vmovdqu64 zmm0,ZMMWORD[288+rdx] + vmovdqu64 ZMMWORD[704+rsp],zmm0 + + vmovdqu64 zmm3,ZMMWORD[224+rdx] + vmovdqu64 ZMMWORD[640+rsp],zmm3 + + + vshufi64x2 zmm3,zmm3,zmm3,0x00 + + vmovdqu64 zmm4,ZMMWORD[160+rdx] + vmovdqu64 ZMMWORD[576+rsp],zmm4 + + vmovdqu64 zmm5,ZMMWORD[96+rdx] + vmovdqu64 ZMMWORD[512+rsp],zmm5 +$L$_skip_hkeys_precomputation_500: + cmp r13,512 + jb NEAR $L$_message_below_32_blocks_497 + + + + cmp r15b,240 + jae NEAR $L$_next_16_overflow_501 + vpaddd zmm7,zmm2,zmm28 + vpaddd zmm10,zmm7,zmm27 + vpaddd zmm11,zmm10,zmm27 + vpaddd zmm12,zmm11,zmm27 + jmp NEAR $L$_next_16_ok_501 +$L$_next_16_overflow_501: + vpshufb zmm2,zmm2,zmm29 + vmovdqa64 zmm12,ZMMWORD[ddq_add_4444] + vpaddd zmm7,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm10,zmm7,zmm12 + vpaddd zmm11,zmm10,zmm12 + vpaddd zmm12,zmm11,zmm12 + vpshufb zmm7,zmm7,zmm29 + vpshufb zmm10,zmm10,zmm29 + vpshufb zmm11,zmm11,zmm29 + vpshufb zmm12,zmm12,zmm29 +$L$_next_16_ok_501: + vshufi64x2 zmm2,zmm12,zmm12,255 + add r15b,16 + + vmovdqu8 zmm0,ZMMWORD[256+r11*1+r9] + vmovdqu8 zmm3,ZMMWORD[320+r11*1+r9] + vmovdqu8 zmm4,ZMMWORD[384+r11*1+r9] + vmovdqu8 zmm5,ZMMWORD[448+r11*1+r9] + + + vbroadcastf64x2 zmm6,ZMMWORD[rcx] + vpxorq zmm7,zmm7,zmm6 + vpxorq zmm10,zmm10,zmm6 + vpxorq zmm11,zmm11,zmm6 + vpxorq zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[16+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[32+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[48+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[64+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[80+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[96+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[112+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[128+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[144+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[160+rcx] + vaesenclast zmm7,zmm7,zmm6 + vaesenclast zmm10,zmm10,zmm6 + vaesenclast zmm11,zmm11,zmm6 + vaesenclast zmm12,zmm12,zmm6 + + + vpxorq zmm7,zmm7,zmm0 + vpxorq zmm10,zmm10,zmm3 + vpxorq zmm11,zmm11,zmm4 + vpxorq zmm12,zmm12,zmm5 + + + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[256+r11*1+r10],zmm7 + vmovdqu8 ZMMWORD[320+r11*1+r10],zmm10 + vmovdqu8 ZMMWORD[384+r11*1+r10],zmm11 + vmovdqu8 ZMMWORD[448+r11*1+r10],zmm12 + + vpshufb zmm7,zmm0,zmm29 + vpshufb zmm10,zmm3,zmm29 + vpshufb zmm11,zmm4,zmm29 + vpshufb zmm12,zmm5,zmm29 + vmovdqa64 ZMMWORD[1024+rsp],zmm7 + vmovdqa64 ZMMWORD[1088+rsp],zmm10 + vmovdqa64 ZMMWORD[1152+rsp],zmm11 + vmovdqa64 ZMMWORD[1216+rsp],zmm12 + test r14,r14 + jnz NEAR $L$_skip_hkeys_precomputation_502 + vmovdqu64 zmm3,ZMMWORD[640+rsp] + + + vshufi64x2 zmm3,zmm3,zmm3,0x00 + + vmovdqu64 zmm4,ZMMWORD[576+rsp] + vmovdqu64 zmm5,ZMMWORD[512+rsp] + + vpclmulqdq zmm6,zmm4,zmm3,0x11 + vpclmulqdq zmm7,zmm4,zmm3,0x00 + vpclmulqdq zmm10,zmm4,zmm3,0x01 + vpclmulqdq zmm4,zmm4,zmm3,0x10 + vpxorq zmm4,zmm4,zmm10 + + vpsrldq zmm10,zmm4,8 + vpslldq zmm4,zmm4,8 + vpxorq zmm6,zmm6,zmm10 + vpxorq zmm4,zmm4,zmm7 + + + + vmovdqu64 zmm10,ZMMWORD[POLY2] + + vpclmulqdq zmm7,zmm10,zmm4,0x01 + vpslldq zmm7,zmm7,8 + vpxorq zmm4,zmm4,zmm7 + + + + vpclmulqdq zmm7,zmm10,zmm4,0x00 + vpsrldq zmm7,zmm7,4 + vpclmulqdq zmm4,zmm10,zmm4,0x10 + vpslldq zmm4,zmm4,4 + + vpternlogq zmm4,zmm6,zmm7,0x96 + + vmovdqu64 ZMMWORD[448+rsp],zmm4 + + vpclmulqdq zmm6,zmm5,zmm3,0x11 + vpclmulqdq zmm7,zmm5,zmm3,0x00 + vpclmulqdq zmm10,zmm5,zmm3,0x01 + vpclmulqdq zmm5,zmm5,zmm3,0x10 + vpxorq zmm5,zmm5,zmm10 + + vpsrldq zmm10,zmm5,8 + vpslldq zmm5,zmm5,8 + vpxorq zmm6,zmm6,zmm10 + vpxorq zmm5,zmm5,zmm7 + + + + vmovdqu64 zmm10,ZMMWORD[POLY2] + + vpclmulqdq zmm7,zmm10,zmm5,0x01 + vpslldq zmm7,zmm7,8 + vpxorq zmm5,zmm5,zmm7 + + + + vpclmulqdq zmm7,zmm10,zmm5,0x00 + vpsrldq zmm7,zmm7,4 + vpclmulqdq zmm5,zmm10,zmm5,0x10 + vpslldq zmm5,zmm5,4 + + vpternlogq zmm5,zmm6,zmm7,0x96 + + vmovdqu64 ZMMWORD[384+rsp],zmm5 + + vpclmulqdq zmm6,zmm4,zmm3,0x11 + vpclmulqdq zmm7,zmm4,zmm3,0x00 + vpclmulqdq zmm10,zmm4,zmm3,0x01 + vpclmulqdq zmm4,zmm4,zmm3,0x10 + vpxorq zmm4,zmm4,zmm10 + + vpsrldq zmm10,zmm4,8 + vpslldq zmm4,zmm4,8 + vpxorq zmm6,zmm6,zmm10 + vpxorq zmm4,zmm4,zmm7 + + + + vmovdqu64 zmm10,ZMMWORD[POLY2] + + vpclmulqdq zmm7,zmm10,zmm4,0x01 + vpslldq zmm7,zmm7,8 + vpxorq zmm4,zmm4,zmm7 + + + + vpclmulqdq zmm7,zmm10,zmm4,0x00 + vpsrldq zmm7,zmm7,4 + vpclmulqdq zmm4,zmm10,zmm4,0x10 + vpslldq zmm4,zmm4,4 + + vpternlogq zmm4,zmm6,zmm7,0x96 + + vmovdqu64 ZMMWORD[320+rsp],zmm4 + + vpclmulqdq zmm6,zmm5,zmm3,0x11 + vpclmulqdq zmm7,zmm5,zmm3,0x00 + vpclmulqdq zmm10,zmm5,zmm3,0x01 + vpclmulqdq zmm5,zmm5,zmm3,0x10 + vpxorq zmm5,zmm5,zmm10 + + vpsrldq zmm10,zmm5,8 + vpslldq zmm5,zmm5,8 + vpxorq zmm6,zmm6,zmm10 + vpxorq zmm5,zmm5,zmm7 + + + + vmovdqu64 zmm10,ZMMWORD[POLY2] + + vpclmulqdq zmm7,zmm10,zmm5,0x01 + vpslldq zmm7,zmm7,8 + vpxorq zmm5,zmm5,zmm7 + + + + vpclmulqdq zmm7,zmm10,zmm5,0x00 + vpsrldq zmm7,zmm7,4 + vpclmulqdq zmm5,zmm10,zmm5,0x10 + vpslldq zmm5,zmm5,4 + + vpternlogq zmm5,zmm6,zmm7,0x96 + + vmovdqu64 ZMMWORD[256+rsp],zmm5 + + vpclmulqdq zmm6,zmm4,zmm3,0x11 + vpclmulqdq zmm7,zmm4,zmm3,0x00 + vpclmulqdq zmm10,zmm4,zmm3,0x01 + vpclmulqdq zmm4,zmm4,zmm3,0x10 + vpxorq zmm4,zmm4,zmm10 + + vpsrldq zmm10,zmm4,8 + vpslldq zmm4,zmm4,8 + vpxorq zmm6,zmm6,zmm10 + vpxorq zmm4,zmm4,zmm7 + + + + vmovdqu64 zmm10,ZMMWORD[POLY2] + + vpclmulqdq zmm7,zmm10,zmm4,0x01 + vpslldq zmm7,zmm7,8 + vpxorq zmm4,zmm4,zmm7 + + + + vpclmulqdq zmm7,zmm10,zmm4,0x00 + vpsrldq zmm7,zmm7,4 + vpclmulqdq zmm4,zmm10,zmm4,0x10 + vpslldq zmm4,zmm4,4 + + vpternlogq zmm4,zmm6,zmm7,0x96 + + vmovdqu64 ZMMWORD[192+rsp],zmm4 + + vpclmulqdq zmm6,zmm5,zmm3,0x11 + vpclmulqdq zmm7,zmm5,zmm3,0x00 + vpclmulqdq zmm10,zmm5,zmm3,0x01 + vpclmulqdq zmm5,zmm5,zmm3,0x10 + vpxorq zmm5,zmm5,zmm10 + + vpsrldq zmm10,zmm5,8 + vpslldq zmm5,zmm5,8 + vpxorq zmm6,zmm6,zmm10 + vpxorq zmm5,zmm5,zmm7 + + + + vmovdqu64 zmm10,ZMMWORD[POLY2] + + vpclmulqdq zmm7,zmm10,zmm5,0x01 + vpslldq zmm7,zmm7,8 + vpxorq zmm5,zmm5,zmm7 + + + + vpclmulqdq zmm7,zmm10,zmm5,0x00 + vpsrldq zmm7,zmm7,4 + vpclmulqdq zmm5,zmm10,zmm5,0x10 + vpslldq zmm5,zmm5,4 + + vpternlogq zmm5,zmm6,zmm7,0x96 + + vmovdqu64 ZMMWORD[128+rsp],zmm5 + + vpclmulqdq zmm6,zmm4,zmm3,0x11 + vpclmulqdq zmm7,zmm4,zmm3,0x00 + vpclmulqdq zmm10,zmm4,zmm3,0x01 + vpclmulqdq zmm4,zmm4,zmm3,0x10 + vpxorq zmm4,zmm4,zmm10 + + vpsrldq zmm10,zmm4,8 + vpslldq zmm4,zmm4,8 + vpxorq zmm6,zmm6,zmm10 + vpxorq zmm4,zmm4,zmm7 + + + + vmovdqu64 zmm10,ZMMWORD[POLY2] + + vpclmulqdq zmm7,zmm10,zmm4,0x01 + vpslldq zmm7,zmm7,8 + vpxorq zmm4,zmm4,zmm7 + + + + vpclmulqdq zmm7,zmm10,zmm4,0x00 + vpsrldq zmm7,zmm7,4 + vpclmulqdq zmm4,zmm10,zmm4,0x10 + vpslldq zmm4,zmm4,4 + + vpternlogq zmm4,zmm6,zmm7,0x96 + + vmovdqu64 ZMMWORD[64+rsp],zmm4 + + vpclmulqdq zmm6,zmm5,zmm3,0x11 + vpclmulqdq zmm7,zmm5,zmm3,0x00 + vpclmulqdq zmm10,zmm5,zmm3,0x01 + vpclmulqdq zmm5,zmm5,zmm3,0x10 + vpxorq zmm5,zmm5,zmm10 + + vpsrldq zmm10,zmm5,8 + vpslldq zmm5,zmm5,8 + vpxorq zmm6,zmm6,zmm10 + vpxorq zmm5,zmm5,zmm7 + + + + vmovdqu64 zmm10,ZMMWORD[POLY2] + + vpclmulqdq zmm7,zmm10,zmm5,0x01 + vpslldq zmm7,zmm7,8 + vpxorq zmm5,zmm5,zmm7 + + + + vpclmulqdq zmm7,zmm10,zmm5,0x00 + vpsrldq zmm7,zmm7,4 + vpclmulqdq zmm5,zmm10,zmm5,0x10 + vpslldq zmm5,zmm5,4 + + vpternlogq zmm5,zmm6,zmm7,0x96 + + vmovdqu64 ZMMWORD[rsp],zmm5 +$L$_skip_hkeys_precomputation_502: + mov r14,1 + add r11,512 + sub r13,512 + + cmp r13,768 + jb NEAR $L$_no_more_big_nblocks_497 +$L$_encrypt_big_nblocks_497: + cmp r15b,240 + jae NEAR $L$_16_blocks_overflow_503 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_503 +$L$_16_blocks_overflow_503: + vpshufb zmm2,zmm2,zmm29 + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_503: + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rsp] + + + + + vshufi64x2 zmm2,zmm5,zmm5,255 + add r15b,16 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + + + + + + + + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + + vpclmulqdq zmm6,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + + vpternlogq zmm6,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + + + + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm21,ZMMWORD[192+r11*1+r9] + + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm26,zmm10,zmm15 + vpxorq zmm24,zmm6,zmm12 + vpxorq zmm25,zmm7,zmm13 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + + + + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + + + + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[192+r11*1+r10],zmm5 + vpshufb zmm0,zmm17,zmm29 + vpshufb zmm3,zmm19,zmm29 + vpshufb zmm4,zmm20,zmm29 + vpshufb zmm5,zmm21,zmm29 + vmovdqa64 ZMMWORD[1280+rsp],zmm0 + vmovdqa64 ZMMWORD[1344+rsp],zmm3 + vmovdqa64 ZMMWORD[1408+rsp],zmm4 + vmovdqa64 ZMMWORD[1472+rsp],zmm5 + cmp r15b,240 + jae NEAR $L$_16_blocks_overflow_504 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_504 +$L$_16_blocks_overflow_504: + vpshufb zmm2,zmm2,zmm29 + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_504: + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[256+rsp] + + + + + vshufi64x2 zmm2,zmm5,zmm5,255 + add r15b,16 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[320+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + + + + + + + + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + + vpclmulqdq zmm6,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[384+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[448+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + + vpternlogq zmm6,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + + + + vmovdqu8 zmm17,ZMMWORD[256+r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[320+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[384+r11*1+r9] + vmovdqu8 zmm21,ZMMWORD[448+r11*1+r9] + + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vpternlogq zmm24,zmm6,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + + + + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + + + + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[256+r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[320+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[384+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[448+r11*1+r10],zmm5 + vpshufb zmm0,zmm17,zmm29 + vpshufb zmm3,zmm19,zmm29 + vpshufb zmm4,zmm20,zmm29 + vpshufb zmm5,zmm21,zmm29 + vmovdqa64 ZMMWORD[768+rsp],zmm0 + vmovdqa64 ZMMWORD[832+rsp],zmm3 + vmovdqa64 ZMMWORD[896+rsp],zmm4 + vmovdqa64 ZMMWORD[960+rsp],zmm5 + cmp r15b,240 + jae NEAR $L$_16_blocks_overflow_505 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_505 +$L$_16_blocks_overflow_505: + vpshufb zmm2,zmm2,zmm29 + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_505: + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + + + + + vshufi64x2 zmm2,zmm5,zmm5,255 + add r15b,16 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + + + + + + + + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + + vpclmulqdq zmm6,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + + vpternlogq zmm6,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + + + + vmovdqu8 zmm17,ZMMWORD[512+r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[576+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[640+r11*1+r9] + vmovdqu8 zmm21,ZMMWORD[704+r11*1+r9] + + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + + + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpternlogq zmm6,zmm12,zmm15,0x96 + vpxorq zmm6,zmm6,zmm24 + vpternlogq zmm7,zmm13,zmm10,0x96 + vpxorq zmm7,zmm7,zmm25 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vextracti64x4 ymm12,zmm6,1 + vpxorq ymm6,ymm6,ymm12 + vextracti32x4 xmm12,ymm6,1 + vpxorq xmm6,xmm6,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm6,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + + + + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + + + + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[512+r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[576+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[640+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[704+r11*1+r10],zmm5 + vpshufb zmm0,zmm17,zmm29 + vpshufb zmm3,zmm19,zmm29 + vpshufb zmm4,zmm20,zmm29 + vpshufb zmm5,zmm21,zmm29 + vmovdqa64 ZMMWORD[1024+rsp],zmm0 + vmovdqa64 ZMMWORD[1088+rsp],zmm3 + vmovdqa64 ZMMWORD[1152+rsp],zmm4 + vmovdqa64 ZMMWORD[1216+rsp],zmm5 + vmovdqa64 zmm14,zmm6 + + add r11,768 + sub r13,768 + cmp r13,768 + jae NEAR $L$_encrypt_big_nblocks_497 + +$L$_no_more_big_nblocks_497: + + cmp r13,512 + jae NEAR $L$_encrypt_32_blocks_497 + + cmp r13,256 + jae NEAR $L$_encrypt_16_blocks_497 +$L$_encrypt_0_blocks_ghash_32_497: + mov r10d,r13d + and r10d,~15 + mov ebx,256 + sub ebx,r10d + vmovdqa64 zmm13,ZMMWORD[768+rsp] + vpxorq zmm13,zmm13,zmm14 + vmovdqu64 zmm12,ZMMWORD[rbx*1+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[832+rsp] + vmovdqu64 zmm12,ZMMWORD[64+rbx*1+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + vpxorq zmm26,zmm4,zmm10 + vpxorq zmm24,zmm0,zmm6 + vpxorq zmm25,zmm3,zmm7 + vpternlogq zmm26,zmm5,zmm11,0x96 + vmovdqa64 zmm13,ZMMWORD[896+rsp] + vmovdqu64 zmm12,ZMMWORD[128+rbx*1+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[960+rsp] + vmovdqu64 zmm12,ZMMWORD[192+rbx*1+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + + vpternlogq zmm26,zmm4,zmm10,0x96 + vpternlogq zmm24,zmm0,zmm6,0x96 + vpternlogq zmm25,zmm3,zmm7,0x96 + vpternlogq zmm26,zmm5,zmm11,0x96 + add ebx,256 + mov r10d,r13d + add r10d,15 + shr r10d,4 + je NEAR $L$_last_num_blocks_is_0_506 + + cmp r10d,8 + je NEAR $L$_last_num_blocks_is_8_506 + jb NEAR $L$_last_num_blocks_is_7_1_506 + + + cmp r10d,12 + je NEAR $L$_last_num_blocks_is_12_506 + jb NEAR $L$_last_num_blocks_is_11_9_506 + + + cmp r10d,15 + je NEAR $L$_last_num_blocks_is_15_506 + ja NEAR $L$_last_num_blocks_is_16_506 + cmp r10d,14 + je NEAR $L$_last_num_blocks_is_14_506 + jmp NEAR $L$_last_num_blocks_is_13_506 + +$L$_last_num_blocks_is_11_9_506: + + cmp r10d,10 + je NEAR $L$_last_num_blocks_is_10_506 + ja NEAR $L$_last_num_blocks_is_11_506 + jmp NEAR $L$_last_num_blocks_is_9_506 + +$L$_last_num_blocks_is_7_1_506: + cmp r10d,4 + je NEAR $L$_last_num_blocks_is_4_506 + jb NEAR $L$_last_num_blocks_is_3_1_506 + + cmp r10d,6 + ja NEAR $L$_last_num_blocks_is_7_506 + je NEAR $L$_last_num_blocks_is_6_506 + jmp NEAR $L$_last_num_blocks_is_5_506 + +$L$_last_num_blocks_is_3_1_506: + + cmp r10d,2 + ja NEAR $L$_last_num_blocks_is_3_506 + je NEAR $L$_last_num_blocks_is_2_506 +$L$_last_num_blocks_is_1_506: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,255 + jae NEAR $L$_16_blocks_overflow_507 + vpaddd xmm0,xmm2,xmm28 + jmp NEAR $L$_16_blocks_ok_507 + +$L$_16_blocks_overflow_507: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb xmm0,xmm0,xmm29 +$L$_16_blocks_ok_507: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm0,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 xmm17{k1}{z},[r11*1+r9] + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc xmm0,xmm0,xmm31 + vaesenclast xmm0,xmm0,xmm30 + vpxorq xmm0,xmm0,xmm17 + vextracti32x4 xmm11,zmm0,0 + mov r10,QWORD[120+rbp] + vmovdqu8 XMMWORD[r11*1+r10]{k1},xmm0 + vmovdqu8 zmm17{k1}{z},zmm17 + vpshufb xmm17,xmm17,xmm29 + vextracti32x4 xmm7,zmm17,0 + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_508 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm17,xmm1,0x01 + vpclmulqdq xmm5,xmm17,xmm1,0x10 + vpclmulqdq xmm0,xmm17,xmm1,0x11 + vpclmulqdq xmm3,xmm17,xmm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_508 +$L$_small_initial_partial_block_508: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + + + vpsrldq zmm0,zmm26,8 + vpslldq zmm3,zmm26,8 + vpxorq zmm24,zmm24,zmm0 + vpxorq zmm25,zmm25,zmm3 + vextracti64x4 ymm0,zmm24,1 + vpxorq ymm24,ymm24,ymm0 + vextracti32x4 xmm0,ymm24,1 + vpxorq xmm24,xmm24,xmm0 + vextracti64x4 ymm3,zmm25,1 + vpxorq ymm25,ymm25,ymm3 + vextracti32x4 xmm3,ymm25,1 + vpxorq xmm25,xmm25,xmm3 + vmovdqa64 xmm0,XMMWORD[POLY2] + + + vpclmulqdq xmm3,xmm0,xmm25,0x01 + vpslldq xmm3,xmm3,8 + vpxorq xmm3,xmm25,xmm3 + + + vpclmulqdq xmm4,xmm0,xmm3,0x00 + vpsrldq xmm4,xmm4,4 + vpclmulqdq xmm14,xmm0,xmm3,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm4,xmm24,0x96 + + + + + + + + + + + + + vpxorq xmm14,xmm14,xmm7 + + jmp NEAR $L$_after_reduction_508 +$L$_small_initial_compute_done_508: +$L$_after_reduction_508: + jmp NEAR $L$_last_blocks_done_506 +$L$_last_num_blocks_is_2_506: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,254 + jae NEAR $L$_16_blocks_overflow_509 + vpaddd ymm0,ymm2,ymm28 + jmp NEAR $L$_16_blocks_ok_509 + +$L$_16_blocks_overflow_509: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb ymm0,ymm0,ymm29 +$L$_16_blocks_ok_509: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm0,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 ymm17{k1}{z},[r11*1+r9] + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc ymm0,ymm0,ymm31 + vaesenclast ymm0,ymm0,ymm30 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm11,zmm0,1 + mov r10,QWORD[120+rbp] + vmovdqu8 YMMWORD[r11*1+r10]{k1},ymm0 + vmovdqu8 zmm17{k1}{z},zmm17 + vpshufb ymm17,ymm17,ymm29 + vextracti32x4 xmm7,zmm17,1 + sub r13,16 * (2 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_510 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm17,ymm1,0x01 + vpclmulqdq ymm5,ymm17,ymm1,0x10 + vpclmulqdq ymm0,ymm17,ymm1,0x11 + vpclmulqdq ymm3,ymm17,ymm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_510 +$L$_small_initial_partial_block_510: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm17,xmm1,0x01 + vpclmulqdq xmm5,xmm17,xmm1,0x10 + vpclmulqdq xmm0,xmm17,xmm1,0x11 + vpclmulqdq xmm3,xmm17,xmm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_510: + + or r13,r13 + je NEAR $L$_after_reduction_510 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_510: + jmp NEAR $L$_last_blocks_done_506 +$L$_last_num_blocks_is_3_506: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,253 + jae NEAR $L$_16_blocks_overflow_511 + vpaddd zmm0,zmm2,zmm28 + jmp NEAR $L$_16_blocks_ok_511 + +$L$_16_blocks_overflow_511: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb zmm0,zmm0,zmm29 +$L$_16_blocks_ok_511: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm0,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17{k1}{z},[r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vpxorq zmm0,zmm0,zmm17 + vextracti32x4 xmm11,zmm0,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10]{k1},zmm0 + vmovdqu8 zmm17{k1}{z},zmm17 + vpshufb zmm17,zmm17,zmm29 + vextracti32x4 xmm7,zmm17,2 + sub r13,16 * (3 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_512 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_512 +$L$_small_initial_partial_block_512: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm17,ymm1,0x01 + vpclmulqdq ymm5,ymm17,ymm1,0x10 + vpclmulqdq ymm0,ymm17,ymm1,0x11 + vpclmulqdq ymm3,ymm17,ymm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_512: + + or r13,r13 + je NEAR $L$_after_reduction_512 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_512: + jmp NEAR $L$_last_blocks_done_506 +$L$_last_num_blocks_is_4_506: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,252 + jae NEAR $L$_16_blocks_overflow_513 + vpaddd zmm0,zmm2,zmm28 + jmp NEAR $L$_16_blocks_ok_513 + +$L$_16_blocks_overflow_513: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb zmm0,zmm0,zmm29 +$L$_16_blocks_ok_513: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm0,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17{k1}{z},[r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vpxorq zmm0,zmm0,zmm17 + vextracti32x4 xmm11,zmm0,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10]{k1},zmm0 + vmovdqu8 zmm17{k1}{z},zmm17 + vpshufb zmm17,zmm17,zmm29 + vextracti32x4 xmm7,zmm17,3 + sub r13,16 * (4 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_514 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_514 +$L$_small_initial_partial_block_514: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_514: + + or r13,r13 + je NEAR $L$_after_reduction_514 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_514: + jmp NEAR $L$_last_blocks_done_506 +$L$_last_num_blocks_is_5_506: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,251 + jae NEAR $L$_16_blocks_overflow_515 + vpaddd zmm0,zmm2,zmm28 + vpaddd xmm3,xmm0,xmm27 + jmp NEAR $L$_16_blocks_ok_515 + +$L$_16_blocks_overflow_515: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb xmm3,xmm3,xmm29 +$L$_16_blocks_ok_515: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm3,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 xmm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast xmm3,xmm3,xmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq xmm3,xmm3,xmm19 + vextracti32x4 xmm11,zmm3,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 XMMWORD[64+r11*1+r10]{k1},xmm3 + vmovdqu8 zmm19{k1}{z},zmm19 + vpshufb zmm17,zmm17,zmm29 + vpshufb xmm19,xmm19,xmm29 + vextracti32x4 xmm7,zmm19,0 + sub r13,16 * (5 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_516 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm19,xmm1,0x01 + vpclmulqdq xmm5,xmm19,xmm1,0x10 + vpclmulqdq xmm0,xmm19,xmm1,0x11 + vpclmulqdq xmm3,xmm19,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_516 +$L$_small_initial_partial_block_516: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_516: + + or r13,r13 + je NEAR $L$_after_reduction_516 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_516: + jmp NEAR $L$_last_blocks_done_506 +$L$_last_num_blocks_is_6_506: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,250 + jae NEAR $L$_16_blocks_overflow_517 + vpaddd zmm0,zmm2,zmm28 + vpaddd ymm3,ymm0,ymm27 + jmp NEAR $L$_16_blocks_ok_517 + +$L$_16_blocks_overflow_517: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb ymm3,ymm3,ymm29 +$L$_16_blocks_ok_517: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm3,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 ymm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast ymm3,ymm3,ymm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm11,zmm3,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 YMMWORD[64+r11*1+r10]{k1},ymm3 + vmovdqu8 zmm19{k1}{z},zmm19 + vpshufb zmm17,zmm17,zmm29 + vpshufb ymm19,ymm19,ymm29 + vextracti32x4 xmm7,zmm19,1 + sub r13,16 * (6 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_518 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm19,ymm1,0x01 + vpclmulqdq ymm5,ymm19,ymm1,0x10 + vpclmulqdq ymm0,ymm19,ymm1,0x11 + vpclmulqdq ymm3,ymm19,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_518 +$L$_small_initial_partial_block_518: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm19,xmm1,0x01 + vpclmulqdq xmm5,xmm19,xmm1,0x10 + vpclmulqdq xmm0,xmm19,xmm1,0x11 + vpclmulqdq xmm3,xmm19,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_518: + + or r13,r13 + je NEAR $L$_after_reduction_518 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_518: + jmp NEAR $L$_last_blocks_done_506 +$L$_last_num_blocks_is_7_506: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,249 + jae NEAR $L$_16_blocks_overflow_519 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + jmp NEAR $L$_16_blocks_ok_519 + +$L$_16_blocks_overflow_519: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 +$L$_16_blocks_ok_519: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm3,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti32x4 xmm11,zmm3,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10]{k1},zmm3 + vmovdqu8 zmm19{k1}{z},zmm19 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vextracti32x4 xmm7,zmm19,2 + sub r13,16 * (7 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_520 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm19,zmm1,0x01 + vpclmulqdq zmm5,zmm19,zmm1,0x10 + vpclmulqdq zmm0,zmm19,zmm1,0x11 + vpclmulqdq zmm3,zmm19,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_520 +$L$_small_initial_partial_block_520: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm19,ymm1,0x01 + vpclmulqdq ymm5,ymm19,ymm1,0x10 + vpclmulqdq ymm0,ymm19,ymm1,0x11 + vpclmulqdq ymm3,ymm19,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_520: + + or r13,r13 + je NEAR $L$_after_reduction_520 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_520: + jmp NEAR $L$_last_blocks_done_506 +$L$_last_num_blocks_is_8_506: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,248 + jae NEAR $L$_16_blocks_overflow_521 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + jmp NEAR $L$_16_blocks_ok_521 + +$L$_16_blocks_overflow_521: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 +$L$_16_blocks_ok_521: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm3,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti32x4 xmm11,zmm3,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10]{k1},zmm3 + vmovdqu8 zmm19{k1}{z},zmm19 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vextracti32x4 xmm7,zmm19,3 + sub r13,16 * (8 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_522 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_522 +$L$_small_initial_partial_block_522: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm19,zmm1,0x01 + vpclmulqdq zmm5,zmm19,zmm1,0x10 + vpclmulqdq zmm0,zmm19,zmm1,0x11 + vpclmulqdq zmm3,zmm19,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_522: + + or r13,r13 + je NEAR $L$_after_reduction_522 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_522: + jmp NEAR $L$_last_blocks_done_506 +$L$_last_num_blocks_is_9_506: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,247 + jae NEAR $L$_16_blocks_overflow_523 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd xmm4,xmm3,xmm27 + jmp NEAR $L$_16_blocks_ok_523 + +$L$_16_blocks_overflow_523: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb xmm4,xmm4,xmm29 +$L$_16_blocks_ok_523: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm4,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 xmm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast xmm4,xmm4,xmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq xmm4,xmm4,xmm20 + vextracti32x4 xmm11,zmm4,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 XMMWORD[128+r11*1+r10]{k1},xmm4 + vmovdqu8 zmm20{k1}{z},zmm20 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb xmm20,xmm20,xmm29 + vextracti32x4 xmm7,zmm20,0 + sub r13,16 * (9 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_524 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm20,xmm1,0x01 + vpclmulqdq xmm5,xmm20,xmm1,0x10 + vpclmulqdq xmm0,xmm20,xmm1,0x11 + vpclmulqdq xmm3,xmm20,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_524 +$L$_small_initial_partial_block_524: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_524: + + or r13,r13 + je NEAR $L$_after_reduction_524 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_524: + jmp NEAR $L$_last_blocks_done_506 +$L$_last_num_blocks_is_10_506: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,246 + jae NEAR $L$_16_blocks_overflow_525 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd ymm4,ymm3,ymm27 + jmp NEAR $L$_16_blocks_ok_525 + +$L$_16_blocks_overflow_525: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb ymm4,ymm4,ymm29 +$L$_16_blocks_ok_525: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm4,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 ymm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast ymm4,ymm4,ymm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq ymm4,ymm4,ymm20 + vextracti32x4 xmm11,zmm4,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 YMMWORD[128+r11*1+r10]{k1},ymm4 + vmovdqu8 zmm20{k1}{z},zmm20 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb ymm20,ymm20,ymm29 + vextracti32x4 xmm7,zmm20,1 + sub r13,16 * (10 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_526 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm20,ymm1,0x01 + vpclmulqdq ymm5,ymm20,ymm1,0x10 + vpclmulqdq ymm0,ymm20,ymm1,0x11 + vpclmulqdq ymm3,ymm20,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_526 +$L$_small_initial_partial_block_526: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm20,xmm1,0x01 + vpclmulqdq xmm5,xmm20,xmm1,0x10 + vpclmulqdq xmm0,xmm20,xmm1,0x11 + vpclmulqdq xmm3,xmm20,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_526: + + or r13,r13 + je NEAR $L$_after_reduction_526 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_526: + jmp NEAR $L$_last_blocks_done_506 +$L$_last_num_blocks_is_11_506: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,245 + jae NEAR $L$_16_blocks_overflow_527 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + jmp NEAR $L$_16_blocks_ok_527 + +$L$_16_blocks_overflow_527: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 +$L$_16_blocks_ok_527: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm4,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vextracti32x4 xmm11,zmm4,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10]{k1},zmm4 + vmovdqu8 zmm20{k1}{z},zmm20 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb zmm20,zmm20,zmm29 + vextracti32x4 xmm7,zmm20,2 + sub r13,16 * (11 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_528 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm20,zmm1,0x01 + vpclmulqdq zmm5,zmm20,zmm1,0x10 + vpclmulqdq zmm0,zmm20,zmm1,0x11 + vpclmulqdq zmm3,zmm20,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_528 +$L$_small_initial_partial_block_528: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm20,ymm1,0x01 + vpclmulqdq ymm5,ymm20,ymm1,0x10 + vpclmulqdq ymm0,ymm20,ymm1,0x11 + vpclmulqdq ymm3,ymm20,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_528: + + or r13,r13 + je NEAR $L$_after_reduction_528 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_528: + jmp NEAR $L$_last_blocks_done_506 +$L$_last_num_blocks_is_12_506: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,244 + jae NEAR $L$_16_blocks_overflow_529 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + jmp NEAR $L$_16_blocks_ok_529 + +$L$_16_blocks_overflow_529: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 +$L$_16_blocks_ok_529: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm4,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vextracti32x4 xmm11,zmm4,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10]{k1},zmm4 + vmovdqu8 zmm20{k1}{z},zmm20 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb zmm20,zmm20,zmm29 + vextracti32x4 xmm7,zmm20,3 + sub r13,16 * (12 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_530 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[160+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_530 +$L$_small_initial_partial_block_530: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm20,zmm1,0x01 + vpclmulqdq zmm5,zmm20,zmm1,0x10 + vpclmulqdq zmm0,zmm20,zmm1,0x11 + vpclmulqdq zmm3,zmm20,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_530: + + or r13,r13 + je NEAR $L$_after_reduction_530 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_530: + jmp NEAR $L$_last_blocks_done_506 +$L$_last_num_blocks_is_13_506: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,243 + jae NEAR $L$_16_blocks_overflow_531 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd xmm5,xmm4,xmm27 + jmp NEAR $L$_16_blocks_ok_531 + +$L$_16_blocks_overflow_531: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb xmm5,xmm5,xmm29 +$L$_16_blocks_ok_531: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm5,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 xmm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast xmm5,xmm5,xmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq xmm5,xmm5,xmm21 + vextracti32x4 xmm11,zmm5,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 XMMWORD[192+r11*1+r10]{k1},xmm5 + vmovdqu8 zmm21{k1}{z},zmm21 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb zmm20,zmm20,zmm29 + vpshufb xmm21,xmm21,xmm29 + vextracti32x4 xmm7,zmm21,0 + sub r13,16 * (13 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_532 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[144+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm21,xmm1,0x01 + vpclmulqdq xmm5,xmm21,xmm1,0x10 + vpclmulqdq xmm0,xmm21,xmm1,0x11 + vpclmulqdq xmm3,xmm21,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_532 +$L$_small_initial_partial_block_532: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[160+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_532: + + or r13,r13 + je NEAR $L$_after_reduction_532 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_532: + jmp NEAR $L$_last_blocks_done_506 +$L$_last_num_blocks_is_14_506: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,242 + jae NEAR $L$_16_blocks_overflow_533 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd ymm5,ymm4,ymm27 + jmp NEAR $L$_16_blocks_ok_533 + +$L$_16_blocks_overflow_533: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb ymm5,ymm5,ymm29 +$L$_16_blocks_ok_533: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm5,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 ymm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast ymm5,ymm5,ymm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq ymm5,ymm5,ymm21 + vextracti32x4 xmm11,zmm5,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 YMMWORD[192+r11*1+r10]{k1},ymm5 + vmovdqu8 zmm21{k1}{z},zmm21 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb zmm20,zmm20,zmm29 + vpshufb ymm21,ymm21,ymm29 + vextracti32x4 xmm7,zmm21,1 + sub r13,16 * (14 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_534 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[128+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm21,ymm1,0x01 + vpclmulqdq ymm5,ymm21,ymm1,0x10 + vpclmulqdq ymm0,ymm21,ymm1,0x11 + vpclmulqdq ymm3,ymm21,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_534 +$L$_small_initial_partial_block_534: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[144+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm21,xmm1,0x01 + vpclmulqdq xmm5,xmm21,xmm1,0x10 + vpclmulqdq xmm0,xmm21,xmm1,0x11 + vpclmulqdq xmm3,xmm21,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_534: + + or r13,r13 + je NEAR $L$_after_reduction_534 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_534: + jmp NEAR $L$_last_blocks_done_506 +$L$_last_num_blocks_is_15_506: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,241 + jae NEAR $L$_16_blocks_overflow_535 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_535 + +$L$_16_blocks_overflow_535: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_535: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm5,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + vextracti32x4 xmm11,zmm5,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[192+r11*1+r10]{k1},zmm5 + vmovdqu8 zmm21{k1}{z},zmm21 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb zmm20,zmm20,zmm29 + vpshufb zmm21,zmm21,zmm29 + vextracti32x4 xmm7,zmm21,2 + sub r13,16 * (15 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_536 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[112+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm21,zmm1,0x01 + vpclmulqdq zmm5,zmm21,zmm1,0x10 + vpclmulqdq zmm0,zmm21,zmm1,0x11 + vpclmulqdq zmm3,zmm21,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_536 +$L$_small_initial_partial_block_536: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[128+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm21,ymm1,0x01 + vpclmulqdq ymm5,ymm21,ymm1,0x10 + vpclmulqdq ymm0,ymm21,ymm1,0x11 + vpclmulqdq ymm3,ymm21,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_536: + + or r13,r13 + je NEAR $L$_after_reduction_536 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_536: + jmp NEAR $L$_last_blocks_done_506 +$L$_last_num_blocks_is_16_506: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,240 + jae NEAR $L$_16_blocks_overflow_537 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_537 + +$L$_16_blocks_overflow_537: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_537: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm5,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + vextracti32x4 xmm11,zmm5,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[192+r11*1+r10]{k1},zmm5 + vmovdqu8 zmm21{k1}{z},zmm21 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb zmm20,zmm20,zmm29 + vpshufb zmm21,zmm21,zmm29 + vextracti32x4 xmm7,zmm21,3 + sub r13,16 * (16 - 1) +$L$_small_initial_partial_block_538: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[112+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm21,zmm1,0x01 + vpclmulqdq zmm5,zmm21,zmm1,0x10 + vpclmulqdq zmm0,zmm21,zmm1,0x11 + vpclmulqdq zmm3,zmm21,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_538: + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_538: + jmp NEAR $L$_last_blocks_done_506 +$L$_last_num_blocks_is_0_506: + vmovdqa64 zmm13,ZMMWORD[1024+rsp] + vmovdqu64 zmm12,ZMMWORD[rbx*1+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[1088+rsp] + vmovdqu64 zmm12,ZMMWORD[64+rbx*1+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + vpternlogq zmm26,zmm4,zmm10,0x96 + vpternlogq zmm24,zmm0,zmm6,0x96 + vpternlogq zmm25,zmm3,zmm7,0x96 + vpternlogq zmm26,zmm5,zmm11,0x96 + vmovdqa64 zmm13,ZMMWORD[1152+rsp] + vmovdqu64 zmm12,ZMMWORD[128+rbx*1+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[1216+rsp] + vmovdqu64 zmm12,ZMMWORD[192+rbx*1+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + + vpternlogq zmm26,zmm4,zmm10,0x96 + vpternlogq zmm24,zmm0,zmm6,0x96 + vpternlogq zmm25,zmm3,zmm7,0x96 + vpternlogq zmm26,zmm5,zmm11,0x96 + + vpsrldq zmm0,zmm26,8 + vpslldq zmm3,zmm26,8 + vpxorq zmm24,zmm24,zmm0 + vpxorq zmm25,zmm25,zmm3 + vextracti64x4 ymm0,zmm24,1 + vpxorq ymm24,ymm24,ymm0 + vextracti32x4 xmm0,ymm24,1 + vpxorq xmm24,xmm24,xmm0 + vextracti64x4 ymm3,zmm25,1 + vpxorq ymm25,ymm25,ymm3 + vextracti32x4 xmm3,ymm25,1 + vpxorq xmm25,xmm25,xmm3 + vmovdqa64 xmm4,XMMWORD[POLY2] + + + vpclmulqdq xmm0,xmm4,xmm25,0x01 + vpslldq xmm0,xmm0,8 + vpxorq xmm0,xmm25,xmm0 + + + vpclmulqdq xmm3,xmm4,xmm0,0x00 + vpsrldq xmm3,xmm3,4 + vpclmulqdq xmm14,xmm4,xmm0,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm3,xmm24,0x96 + +$L$_last_blocks_done_506: + vpshufb xmm2,xmm2,xmm29 + jmp NEAR $L$_ghash_done_497 +$L$_encrypt_32_blocks_497: + cmp r15b,240 + jae NEAR $L$_16_blocks_overflow_539 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_539 +$L$_16_blocks_overflow_539: + vpshufb zmm2,zmm2,zmm29 + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_539: + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rsp] + + + + + vshufi64x2 zmm2,zmm5,zmm5,255 + add r15b,16 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + + + + + + + + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + + vpclmulqdq zmm6,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + + vpternlogq zmm6,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + + + + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm21,ZMMWORD[192+r11*1+r9] + + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm26,zmm10,zmm15 + vpxorq zmm24,zmm6,zmm12 + vpxorq zmm25,zmm7,zmm13 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + + + + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + + + + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[192+r11*1+r10],zmm5 + vpshufb zmm0,zmm17,zmm29 + vpshufb zmm3,zmm19,zmm29 + vpshufb zmm4,zmm20,zmm29 + vpshufb zmm5,zmm21,zmm29 + vmovdqa64 ZMMWORD[1280+rsp],zmm0 + vmovdqa64 ZMMWORD[1344+rsp],zmm3 + vmovdqa64 ZMMWORD[1408+rsp],zmm4 + vmovdqa64 ZMMWORD[1472+rsp],zmm5 + cmp r15b,240 + jae NEAR $L$_16_blocks_overflow_540 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_540 +$L$_16_blocks_overflow_540: + vpshufb zmm2,zmm2,zmm29 + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_540: + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[256+rsp] + + + + + vshufi64x2 zmm2,zmm5,zmm5,255 + add r15b,16 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[320+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + + + + + + + + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + + vpclmulqdq zmm6,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[384+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[448+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + + vpternlogq zmm6,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + + + + vmovdqu8 zmm17,ZMMWORD[256+r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[320+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[384+r11*1+r9] + vmovdqu8 zmm21,ZMMWORD[448+r11*1+r9] + + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vpternlogq zmm24,zmm6,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + + + + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + + + + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[256+r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[320+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[384+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[448+r11*1+r10],zmm5 + vpshufb zmm0,zmm17,zmm29 + vpshufb zmm3,zmm19,zmm29 + vpshufb zmm4,zmm20,zmm29 + vpshufb zmm5,zmm21,zmm29 + vmovdqa64 ZMMWORD[768+rsp],zmm0 + vmovdqa64 ZMMWORD[832+rsp],zmm3 + vmovdqa64 ZMMWORD[896+rsp],zmm4 + vmovdqa64 ZMMWORD[960+rsp],zmm5 + vmovdqa64 zmm13,ZMMWORD[1280+rsp] + vmovdqu64 zmm12,ZMMWORD[512+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[1344+rsp] + vmovdqu64 zmm12,ZMMWORD[576+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + vpternlogq zmm26,zmm4,zmm10,0x96 + vpternlogq zmm24,zmm0,zmm6,0x96 + vpternlogq zmm25,zmm3,zmm7,0x96 + vpternlogq zmm26,zmm5,zmm11,0x96 + vmovdqa64 zmm13,ZMMWORD[1408+rsp] + vmovdqu64 zmm12,ZMMWORD[640+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[1472+rsp] + vmovdqu64 zmm12,ZMMWORD[704+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + + vpternlogq zmm26,zmm4,zmm10,0x96 + vpternlogq zmm24,zmm0,zmm6,0x96 + vpternlogq zmm25,zmm3,zmm7,0x96 + vpternlogq zmm26,zmm5,zmm11,0x96 + + vpsrldq zmm0,zmm26,8 + vpslldq zmm3,zmm26,8 + vpxorq zmm24,zmm24,zmm0 + vpxorq zmm25,zmm25,zmm3 + vextracti64x4 ymm0,zmm24,1 + vpxorq ymm24,ymm24,ymm0 + vextracti32x4 xmm0,ymm24,1 + vpxorq xmm24,xmm24,xmm0 + vextracti64x4 ymm3,zmm25,1 + vpxorq ymm25,ymm25,ymm3 + vextracti32x4 xmm3,ymm25,1 + vpxorq xmm25,xmm25,xmm3 + vmovdqa64 xmm4,XMMWORD[POLY2] + + + vpclmulqdq xmm0,xmm4,xmm25,0x01 + vpslldq xmm0,xmm0,8 + vpxorq xmm0,xmm25,xmm0 + + + vpclmulqdq xmm3,xmm4,xmm0,0x00 + vpsrldq xmm3,xmm3,4 + vpclmulqdq xmm14,xmm4,xmm0,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm3,xmm24,0x96 + + sub r13,512 + add r11,512 + mov r10d,r13d + and r10d,~15 + mov ebx,512 + sub ebx,r10d + mov r10d,r13d + add r10d,15 + shr r10d,4 + je NEAR $L$_last_num_blocks_is_0_541 + + cmp r10d,8 + je NEAR $L$_last_num_blocks_is_8_541 + jb NEAR $L$_last_num_blocks_is_7_1_541 + + + cmp r10d,12 + je NEAR $L$_last_num_blocks_is_12_541 + jb NEAR $L$_last_num_blocks_is_11_9_541 + + + cmp r10d,15 + je NEAR $L$_last_num_blocks_is_15_541 + ja NEAR $L$_last_num_blocks_is_16_541 + cmp r10d,14 + je NEAR $L$_last_num_blocks_is_14_541 + jmp NEAR $L$_last_num_blocks_is_13_541 + +$L$_last_num_blocks_is_11_9_541: + + cmp r10d,10 + je NEAR $L$_last_num_blocks_is_10_541 + ja NEAR $L$_last_num_blocks_is_11_541 + jmp NEAR $L$_last_num_blocks_is_9_541 + +$L$_last_num_blocks_is_7_1_541: + cmp r10d,4 + je NEAR $L$_last_num_blocks_is_4_541 + jb NEAR $L$_last_num_blocks_is_3_1_541 + + cmp r10d,6 + ja NEAR $L$_last_num_blocks_is_7_541 + je NEAR $L$_last_num_blocks_is_6_541 + jmp NEAR $L$_last_num_blocks_is_5_541 + +$L$_last_num_blocks_is_3_1_541: + + cmp r10d,2 + ja NEAR $L$_last_num_blocks_is_3_541 + je NEAR $L$_last_num_blocks_is_2_541 +$L$_last_num_blocks_is_1_541: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,255 + jae NEAR $L$_16_blocks_overflow_542 + vpaddd xmm0,xmm2,xmm28 + jmp NEAR $L$_16_blocks_ok_542 + +$L$_16_blocks_overflow_542: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb xmm0,xmm0,xmm29 +$L$_16_blocks_ok_542: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm0,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 xmm17{k1}{z},[r11*1+r9] + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc xmm0,xmm0,xmm31 + vaesenclast xmm0,xmm0,xmm30 + vpxorq xmm0,xmm0,xmm17 + vextracti32x4 xmm11,zmm0,0 + mov r10,QWORD[120+rbp] + vmovdqu8 XMMWORD[r11*1+r10]{k1},xmm0 + vmovdqu8 zmm17{k1}{z},zmm17 + vpshufb xmm17,xmm17,xmm29 + vextracti32x4 xmm7,zmm17,0 + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_543 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm17,xmm1,0x01 + vpclmulqdq xmm5,xmm17,xmm1,0x10 + vpclmulqdq xmm0,xmm17,xmm1,0x11 + vpclmulqdq xmm3,xmm17,xmm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_543 +$L$_small_initial_partial_block_543: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + + + vpsrldq zmm0,zmm26,8 + vpslldq zmm3,zmm26,8 + vpxorq zmm24,zmm24,zmm0 + vpxorq zmm25,zmm25,zmm3 + vextracti64x4 ymm0,zmm24,1 + vpxorq ymm24,ymm24,ymm0 + vextracti32x4 xmm0,ymm24,1 + vpxorq xmm24,xmm24,xmm0 + vextracti64x4 ymm3,zmm25,1 + vpxorq ymm25,ymm25,ymm3 + vextracti32x4 xmm3,ymm25,1 + vpxorq xmm25,xmm25,xmm3 + vmovdqa64 xmm0,XMMWORD[POLY2] + + + vpclmulqdq xmm3,xmm0,xmm25,0x01 + vpslldq xmm3,xmm3,8 + vpxorq xmm3,xmm25,xmm3 + + + vpclmulqdq xmm4,xmm0,xmm3,0x00 + vpsrldq xmm4,xmm4,4 + vpclmulqdq xmm14,xmm0,xmm3,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm4,xmm24,0x96 + + + + + + + + + + + + + vpxorq xmm14,xmm14,xmm7 + + jmp NEAR $L$_after_reduction_543 +$L$_small_initial_compute_done_543: +$L$_after_reduction_543: + jmp NEAR $L$_last_blocks_done_541 +$L$_last_num_blocks_is_2_541: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,254 + jae NEAR $L$_16_blocks_overflow_544 + vpaddd ymm0,ymm2,ymm28 + jmp NEAR $L$_16_blocks_ok_544 + +$L$_16_blocks_overflow_544: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb ymm0,ymm0,ymm29 +$L$_16_blocks_ok_544: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm0,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 ymm17{k1}{z},[r11*1+r9] + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc ymm0,ymm0,ymm31 + vaesenclast ymm0,ymm0,ymm30 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm11,zmm0,1 + mov r10,QWORD[120+rbp] + vmovdqu8 YMMWORD[r11*1+r10]{k1},ymm0 + vmovdqu8 zmm17{k1}{z},zmm17 + vpshufb ymm17,ymm17,ymm29 + vextracti32x4 xmm7,zmm17,1 + sub r13,16 * (2 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_545 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm17,ymm1,0x01 + vpclmulqdq ymm5,ymm17,ymm1,0x10 + vpclmulqdq ymm0,ymm17,ymm1,0x11 + vpclmulqdq ymm3,ymm17,ymm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_545 +$L$_small_initial_partial_block_545: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm17,xmm1,0x01 + vpclmulqdq xmm5,xmm17,xmm1,0x10 + vpclmulqdq xmm0,xmm17,xmm1,0x11 + vpclmulqdq xmm3,xmm17,xmm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_545: + + or r13,r13 + je NEAR $L$_after_reduction_545 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_545: + jmp NEAR $L$_last_blocks_done_541 +$L$_last_num_blocks_is_3_541: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,253 + jae NEAR $L$_16_blocks_overflow_546 + vpaddd zmm0,zmm2,zmm28 + jmp NEAR $L$_16_blocks_ok_546 + +$L$_16_blocks_overflow_546: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb zmm0,zmm0,zmm29 +$L$_16_blocks_ok_546: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm0,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17{k1}{z},[r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vpxorq zmm0,zmm0,zmm17 + vextracti32x4 xmm11,zmm0,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10]{k1},zmm0 + vmovdqu8 zmm17{k1}{z},zmm17 + vpshufb zmm17,zmm17,zmm29 + vextracti32x4 xmm7,zmm17,2 + sub r13,16 * (3 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_547 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_547 +$L$_small_initial_partial_block_547: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm17,ymm1,0x01 + vpclmulqdq ymm5,ymm17,ymm1,0x10 + vpclmulqdq ymm0,ymm17,ymm1,0x11 + vpclmulqdq ymm3,ymm17,ymm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_547: + + or r13,r13 + je NEAR $L$_after_reduction_547 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_547: + jmp NEAR $L$_last_blocks_done_541 +$L$_last_num_blocks_is_4_541: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,252 + jae NEAR $L$_16_blocks_overflow_548 + vpaddd zmm0,zmm2,zmm28 + jmp NEAR $L$_16_blocks_ok_548 + +$L$_16_blocks_overflow_548: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb zmm0,zmm0,zmm29 +$L$_16_blocks_ok_548: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm0,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17{k1}{z},[r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vpxorq zmm0,zmm0,zmm17 + vextracti32x4 xmm11,zmm0,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10]{k1},zmm0 + vmovdqu8 zmm17{k1}{z},zmm17 + vpshufb zmm17,zmm17,zmm29 + vextracti32x4 xmm7,zmm17,3 + sub r13,16 * (4 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_549 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_549 +$L$_small_initial_partial_block_549: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_549: + + or r13,r13 + je NEAR $L$_after_reduction_549 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_549: + jmp NEAR $L$_last_blocks_done_541 +$L$_last_num_blocks_is_5_541: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,251 + jae NEAR $L$_16_blocks_overflow_550 + vpaddd zmm0,zmm2,zmm28 + vpaddd xmm3,xmm0,xmm27 + jmp NEAR $L$_16_blocks_ok_550 + +$L$_16_blocks_overflow_550: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb xmm3,xmm3,xmm29 +$L$_16_blocks_ok_550: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm3,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 xmm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast xmm3,xmm3,xmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq xmm3,xmm3,xmm19 + vextracti32x4 xmm11,zmm3,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 XMMWORD[64+r11*1+r10]{k1},xmm3 + vmovdqu8 zmm19{k1}{z},zmm19 + vpshufb zmm17,zmm17,zmm29 + vpshufb xmm19,xmm19,xmm29 + vextracti32x4 xmm7,zmm19,0 + sub r13,16 * (5 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_551 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm19,xmm1,0x01 + vpclmulqdq xmm5,xmm19,xmm1,0x10 + vpclmulqdq xmm0,xmm19,xmm1,0x11 + vpclmulqdq xmm3,xmm19,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_551 +$L$_small_initial_partial_block_551: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_551: + + or r13,r13 + je NEAR $L$_after_reduction_551 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_551: + jmp NEAR $L$_last_blocks_done_541 +$L$_last_num_blocks_is_6_541: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,250 + jae NEAR $L$_16_blocks_overflow_552 + vpaddd zmm0,zmm2,zmm28 + vpaddd ymm3,ymm0,ymm27 + jmp NEAR $L$_16_blocks_ok_552 + +$L$_16_blocks_overflow_552: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb ymm3,ymm3,ymm29 +$L$_16_blocks_ok_552: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm3,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 ymm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast ymm3,ymm3,ymm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm11,zmm3,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 YMMWORD[64+r11*1+r10]{k1},ymm3 + vmovdqu8 zmm19{k1}{z},zmm19 + vpshufb zmm17,zmm17,zmm29 + vpshufb ymm19,ymm19,ymm29 + vextracti32x4 xmm7,zmm19,1 + sub r13,16 * (6 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_553 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm19,ymm1,0x01 + vpclmulqdq ymm5,ymm19,ymm1,0x10 + vpclmulqdq ymm0,ymm19,ymm1,0x11 + vpclmulqdq ymm3,ymm19,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_553 +$L$_small_initial_partial_block_553: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm19,xmm1,0x01 + vpclmulqdq xmm5,xmm19,xmm1,0x10 + vpclmulqdq xmm0,xmm19,xmm1,0x11 + vpclmulqdq xmm3,xmm19,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_553: + + or r13,r13 + je NEAR $L$_after_reduction_553 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_553: + jmp NEAR $L$_last_blocks_done_541 +$L$_last_num_blocks_is_7_541: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,249 + jae NEAR $L$_16_blocks_overflow_554 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + jmp NEAR $L$_16_blocks_ok_554 + +$L$_16_blocks_overflow_554: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 +$L$_16_blocks_ok_554: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm3,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti32x4 xmm11,zmm3,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10]{k1},zmm3 + vmovdqu8 zmm19{k1}{z},zmm19 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vextracti32x4 xmm7,zmm19,2 + sub r13,16 * (7 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_555 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm19,zmm1,0x01 + vpclmulqdq zmm5,zmm19,zmm1,0x10 + vpclmulqdq zmm0,zmm19,zmm1,0x11 + vpclmulqdq zmm3,zmm19,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_555 +$L$_small_initial_partial_block_555: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm19,ymm1,0x01 + vpclmulqdq ymm5,ymm19,ymm1,0x10 + vpclmulqdq ymm0,ymm19,ymm1,0x11 + vpclmulqdq ymm3,ymm19,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_555: + + or r13,r13 + je NEAR $L$_after_reduction_555 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_555: + jmp NEAR $L$_last_blocks_done_541 +$L$_last_num_blocks_is_8_541: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,248 + jae NEAR $L$_16_blocks_overflow_556 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + jmp NEAR $L$_16_blocks_ok_556 + +$L$_16_blocks_overflow_556: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 +$L$_16_blocks_ok_556: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm3,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti32x4 xmm11,zmm3,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10]{k1},zmm3 + vmovdqu8 zmm19{k1}{z},zmm19 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vextracti32x4 xmm7,zmm19,3 + sub r13,16 * (8 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_557 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_557 +$L$_small_initial_partial_block_557: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm19,zmm1,0x01 + vpclmulqdq zmm5,zmm19,zmm1,0x10 + vpclmulqdq zmm0,zmm19,zmm1,0x11 + vpclmulqdq zmm3,zmm19,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_557: + + or r13,r13 + je NEAR $L$_after_reduction_557 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_557: + jmp NEAR $L$_last_blocks_done_541 +$L$_last_num_blocks_is_9_541: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,247 + jae NEAR $L$_16_blocks_overflow_558 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd xmm4,xmm3,xmm27 + jmp NEAR $L$_16_blocks_ok_558 + +$L$_16_blocks_overflow_558: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb xmm4,xmm4,xmm29 +$L$_16_blocks_ok_558: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm4,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 xmm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast xmm4,xmm4,xmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq xmm4,xmm4,xmm20 + vextracti32x4 xmm11,zmm4,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 XMMWORD[128+r11*1+r10]{k1},xmm4 + vmovdqu8 zmm20{k1}{z},zmm20 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb xmm20,xmm20,xmm29 + vextracti32x4 xmm7,zmm20,0 + sub r13,16 * (9 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_559 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm20,xmm1,0x01 + vpclmulqdq xmm5,xmm20,xmm1,0x10 + vpclmulqdq xmm0,xmm20,xmm1,0x11 + vpclmulqdq xmm3,xmm20,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_559 +$L$_small_initial_partial_block_559: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_559: + + or r13,r13 + je NEAR $L$_after_reduction_559 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_559: + jmp NEAR $L$_last_blocks_done_541 +$L$_last_num_blocks_is_10_541: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,246 + jae NEAR $L$_16_blocks_overflow_560 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd ymm4,ymm3,ymm27 + jmp NEAR $L$_16_blocks_ok_560 + +$L$_16_blocks_overflow_560: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb ymm4,ymm4,ymm29 +$L$_16_blocks_ok_560: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm4,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 ymm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast ymm4,ymm4,ymm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq ymm4,ymm4,ymm20 + vextracti32x4 xmm11,zmm4,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 YMMWORD[128+r11*1+r10]{k1},ymm4 + vmovdqu8 zmm20{k1}{z},zmm20 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb ymm20,ymm20,ymm29 + vextracti32x4 xmm7,zmm20,1 + sub r13,16 * (10 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_561 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm20,ymm1,0x01 + vpclmulqdq ymm5,ymm20,ymm1,0x10 + vpclmulqdq ymm0,ymm20,ymm1,0x11 + vpclmulqdq ymm3,ymm20,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_561 +$L$_small_initial_partial_block_561: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm20,xmm1,0x01 + vpclmulqdq xmm5,xmm20,xmm1,0x10 + vpclmulqdq xmm0,xmm20,xmm1,0x11 + vpclmulqdq xmm3,xmm20,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_561: + + or r13,r13 + je NEAR $L$_after_reduction_561 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_561: + jmp NEAR $L$_last_blocks_done_541 +$L$_last_num_blocks_is_11_541: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,245 + jae NEAR $L$_16_blocks_overflow_562 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + jmp NEAR $L$_16_blocks_ok_562 + +$L$_16_blocks_overflow_562: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 +$L$_16_blocks_ok_562: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm4,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vextracti32x4 xmm11,zmm4,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10]{k1},zmm4 + vmovdqu8 zmm20{k1}{z},zmm20 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb zmm20,zmm20,zmm29 + vextracti32x4 xmm7,zmm20,2 + sub r13,16 * (11 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_563 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm20,zmm1,0x01 + vpclmulqdq zmm5,zmm20,zmm1,0x10 + vpclmulqdq zmm0,zmm20,zmm1,0x11 + vpclmulqdq zmm3,zmm20,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_563 +$L$_small_initial_partial_block_563: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm20,ymm1,0x01 + vpclmulqdq ymm5,ymm20,ymm1,0x10 + vpclmulqdq ymm0,ymm20,ymm1,0x11 + vpclmulqdq ymm3,ymm20,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_563: + + or r13,r13 + je NEAR $L$_after_reduction_563 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_563: + jmp NEAR $L$_last_blocks_done_541 +$L$_last_num_blocks_is_12_541: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,244 + jae NEAR $L$_16_blocks_overflow_564 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + jmp NEAR $L$_16_blocks_ok_564 + +$L$_16_blocks_overflow_564: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 +$L$_16_blocks_ok_564: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm4,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vextracti32x4 xmm11,zmm4,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10]{k1},zmm4 + vmovdqu8 zmm20{k1}{z},zmm20 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb zmm20,zmm20,zmm29 + vextracti32x4 xmm7,zmm20,3 + sub r13,16 * (12 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_565 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[160+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_565 +$L$_small_initial_partial_block_565: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm20,zmm1,0x01 + vpclmulqdq zmm5,zmm20,zmm1,0x10 + vpclmulqdq zmm0,zmm20,zmm1,0x11 + vpclmulqdq zmm3,zmm20,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_565: + + or r13,r13 + je NEAR $L$_after_reduction_565 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_565: + jmp NEAR $L$_last_blocks_done_541 +$L$_last_num_blocks_is_13_541: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,243 + jae NEAR $L$_16_blocks_overflow_566 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd xmm5,xmm4,xmm27 + jmp NEAR $L$_16_blocks_ok_566 + +$L$_16_blocks_overflow_566: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb xmm5,xmm5,xmm29 +$L$_16_blocks_ok_566: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm5,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 xmm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast xmm5,xmm5,xmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq xmm5,xmm5,xmm21 + vextracti32x4 xmm11,zmm5,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 XMMWORD[192+r11*1+r10]{k1},xmm5 + vmovdqu8 zmm21{k1}{z},zmm21 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb zmm20,zmm20,zmm29 + vpshufb xmm21,xmm21,xmm29 + vextracti32x4 xmm7,zmm21,0 + sub r13,16 * (13 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_567 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[144+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm21,xmm1,0x01 + vpclmulqdq xmm5,xmm21,xmm1,0x10 + vpclmulqdq xmm0,xmm21,xmm1,0x11 + vpclmulqdq xmm3,xmm21,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_567 +$L$_small_initial_partial_block_567: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[160+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_567: + + or r13,r13 + je NEAR $L$_after_reduction_567 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_567: + jmp NEAR $L$_last_blocks_done_541 +$L$_last_num_blocks_is_14_541: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,242 + jae NEAR $L$_16_blocks_overflow_568 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd ymm5,ymm4,ymm27 + jmp NEAR $L$_16_blocks_ok_568 + +$L$_16_blocks_overflow_568: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb ymm5,ymm5,ymm29 +$L$_16_blocks_ok_568: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm5,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 ymm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast ymm5,ymm5,ymm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq ymm5,ymm5,ymm21 + vextracti32x4 xmm11,zmm5,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 YMMWORD[192+r11*1+r10]{k1},ymm5 + vmovdqu8 zmm21{k1}{z},zmm21 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb zmm20,zmm20,zmm29 + vpshufb ymm21,ymm21,ymm29 + vextracti32x4 xmm7,zmm21,1 + sub r13,16 * (14 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_569 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[128+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm21,ymm1,0x01 + vpclmulqdq ymm5,ymm21,ymm1,0x10 + vpclmulqdq ymm0,ymm21,ymm1,0x11 + vpclmulqdq ymm3,ymm21,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_569 +$L$_small_initial_partial_block_569: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[144+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm21,xmm1,0x01 + vpclmulqdq xmm5,xmm21,xmm1,0x10 + vpclmulqdq xmm0,xmm21,xmm1,0x11 + vpclmulqdq xmm3,xmm21,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_569: + + or r13,r13 + je NEAR $L$_after_reduction_569 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_569: + jmp NEAR $L$_last_blocks_done_541 +$L$_last_num_blocks_is_15_541: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,241 + jae NEAR $L$_16_blocks_overflow_570 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_570 + +$L$_16_blocks_overflow_570: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_570: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm5,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + vextracti32x4 xmm11,zmm5,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[192+r11*1+r10]{k1},zmm5 + vmovdqu8 zmm21{k1}{z},zmm21 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb zmm20,zmm20,zmm29 + vpshufb zmm21,zmm21,zmm29 + vextracti32x4 xmm7,zmm21,2 + sub r13,16 * (15 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_571 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[112+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm21,zmm1,0x01 + vpclmulqdq zmm5,zmm21,zmm1,0x10 + vpclmulqdq zmm0,zmm21,zmm1,0x11 + vpclmulqdq zmm3,zmm21,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_571 +$L$_small_initial_partial_block_571: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[128+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm21,ymm1,0x01 + vpclmulqdq ymm5,ymm21,ymm1,0x10 + vpclmulqdq ymm0,ymm21,ymm1,0x11 + vpclmulqdq ymm3,ymm21,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_571: + + or r13,r13 + je NEAR $L$_after_reduction_571 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_571: + jmp NEAR $L$_last_blocks_done_541 +$L$_last_num_blocks_is_16_541: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,240 + jae NEAR $L$_16_blocks_overflow_572 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_572 + +$L$_16_blocks_overflow_572: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_572: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm5,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + vextracti32x4 xmm11,zmm5,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[192+r11*1+r10]{k1},zmm5 + vmovdqu8 zmm21{k1}{z},zmm21 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb zmm20,zmm20,zmm29 + vpshufb zmm21,zmm21,zmm29 + vextracti32x4 xmm7,zmm21,3 + sub r13,16 * (16 - 1) +$L$_small_initial_partial_block_573: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[112+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm21,zmm1,0x01 + vpclmulqdq zmm5,zmm21,zmm1,0x10 + vpclmulqdq zmm0,zmm21,zmm1,0x11 + vpclmulqdq zmm3,zmm21,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_573: + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_573: + jmp NEAR $L$_last_blocks_done_541 +$L$_last_num_blocks_is_0_541: + vmovdqa64 zmm13,ZMMWORD[768+rsp] + vpxorq zmm13,zmm13,zmm14 + vmovdqu64 zmm12,ZMMWORD[rbx*1+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[832+rsp] + vmovdqu64 zmm12,ZMMWORD[64+rbx*1+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + vpxorq zmm26,zmm4,zmm10 + vpxorq zmm24,zmm0,zmm6 + vpxorq zmm25,zmm3,zmm7 + vpternlogq zmm26,zmm5,zmm11,0x96 + vmovdqa64 zmm13,ZMMWORD[896+rsp] + vmovdqu64 zmm12,ZMMWORD[128+rbx*1+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[960+rsp] + vmovdqu64 zmm12,ZMMWORD[192+rbx*1+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + + vpternlogq zmm26,zmm4,zmm10,0x96 + vpternlogq zmm24,zmm0,zmm6,0x96 + vpternlogq zmm25,zmm3,zmm7,0x96 + vpternlogq zmm26,zmm5,zmm11,0x96 + + vpsrldq zmm0,zmm26,8 + vpslldq zmm3,zmm26,8 + vpxorq zmm24,zmm24,zmm0 + vpxorq zmm25,zmm25,zmm3 + vextracti64x4 ymm0,zmm24,1 + vpxorq ymm24,ymm24,ymm0 + vextracti32x4 xmm0,ymm24,1 + vpxorq xmm24,xmm24,xmm0 + vextracti64x4 ymm3,zmm25,1 + vpxorq ymm25,ymm25,ymm3 + vextracti32x4 xmm3,ymm25,1 + vpxorq xmm25,xmm25,xmm3 + vmovdqa64 xmm4,XMMWORD[POLY2] + + + vpclmulqdq xmm0,xmm4,xmm25,0x01 + vpslldq xmm0,xmm0,8 + vpxorq xmm0,xmm25,xmm0 + + + vpclmulqdq xmm3,xmm4,xmm0,0x00 + vpsrldq xmm3,xmm3,4 + vpclmulqdq xmm14,xmm4,xmm0,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm3,xmm24,0x96 + +$L$_last_blocks_done_541: + vpshufb xmm2,xmm2,xmm29 + jmp NEAR $L$_ghash_done_497 +$L$_encrypt_16_blocks_497: + cmp r15b,240 + jae NEAR $L$_16_blocks_overflow_574 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_574 +$L$_16_blocks_overflow_574: + vpshufb zmm2,zmm2,zmm29 + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_574: + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rsp] + + + + + vshufi64x2 zmm2,zmm5,zmm5,255 + add r15b,16 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + + + + + + + + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + + vpclmulqdq zmm6,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + + vpternlogq zmm6,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + + + + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm21,ZMMWORD[192+r11*1+r9] + + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm26,zmm10,zmm15 + vpxorq zmm24,zmm6,zmm12 + vpxorq zmm25,zmm7,zmm13 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + + + + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + + + + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[192+r11*1+r10],zmm5 + vpshufb zmm0,zmm17,zmm29 + vpshufb zmm3,zmm19,zmm29 + vpshufb zmm4,zmm20,zmm29 + vpshufb zmm5,zmm21,zmm29 + vmovdqa64 ZMMWORD[1280+rsp],zmm0 + vmovdqa64 ZMMWORD[1344+rsp],zmm3 + vmovdqa64 ZMMWORD[1408+rsp],zmm4 + vmovdqa64 ZMMWORD[1472+rsp],zmm5 + vmovdqa64 zmm13,ZMMWORD[1024+rsp] + vmovdqu64 zmm12,ZMMWORD[256+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[1088+rsp] + vmovdqu64 zmm12,ZMMWORD[320+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + vpternlogq zmm26,zmm4,zmm10,0x96 + vpternlogq zmm24,zmm0,zmm6,0x96 + vpternlogq zmm25,zmm3,zmm7,0x96 + vpternlogq zmm26,zmm5,zmm11,0x96 + vmovdqa64 zmm13,ZMMWORD[1152+rsp] + vmovdqu64 zmm12,ZMMWORD[384+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[1216+rsp] + vmovdqu64 zmm12,ZMMWORD[448+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + + vpternlogq zmm26,zmm4,zmm10,0x96 + vpternlogq zmm24,zmm0,zmm6,0x96 + vpternlogq zmm25,zmm3,zmm7,0x96 + vpternlogq zmm26,zmm5,zmm11,0x96 + sub r13,256 + add r11,256 + mov r10d,r13d + add r10d,15 + shr r10d,4 + je NEAR $L$_last_num_blocks_is_0_575 + + cmp r10d,8 + je NEAR $L$_last_num_blocks_is_8_575 + jb NEAR $L$_last_num_blocks_is_7_1_575 + + + cmp r10d,12 + je NEAR $L$_last_num_blocks_is_12_575 + jb NEAR $L$_last_num_blocks_is_11_9_575 + + + cmp r10d,15 + je NEAR $L$_last_num_blocks_is_15_575 + ja NEAR $L$_last_num_blocks_is_16_575 + cmp r10d,14 + je NEAR $L$_last_num_blocks_is_14_575 + jmp NEAR $L$_last_num_blocks_is_13_575 + +$L$_last_num_blocks_is_11_9_575: + + cmp r10d,10 + je NEAR $L$_last_num_blocks_is_10_575 + ja NEAR $L$_last_num_blocks_is_11_575 + jmp NEAR $L$_last_num_blocks_is_9_575 + +$L$_last_num_blocks_is_7_1_575: + cmp r10d,4 + je NEAR $L$_last_num_blocks_is_4_575 + jb NEAR $L$_last_num_blocks_is_3_1_575 + + cmp r10d,6 + ja NEAR $L$_last_num_blocks_is_7_575 + je NEAR $L$_last_num_blocks_is_6_575 + jmp NEAR $L$_last_num_blocks_is_5_575 + +$L$_last_num_blocks_is_3_1_575: + + cmp r10d,2 + ja NEAR $L$_last_num_blocks_is_3_575 + je NEAR $L$_last_num_blocks_is_2_575 +$L$_last_num_blocks_is_1_575: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,255 + jae NEAR $L$_16_blocks_overflow_576 + vpaddd xmm0,xmm2,xmm28 + jmp NEAR $L$_16_blocks_ok_576 + +$L$_16_blocks_overflow_576: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb xmm0,xmm0,xmm29 +$L$_16_blocks_ok_576: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm0,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 xmm17{k1}{z},[r11*1+r9] + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc xmm0,xmm0,xmm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast xmm0,xmm0,xmm30 + vpxorq xmm0,xmm0,xmm17 + vextracti32x4 xmm11,zmm0,0 + mov r10,QWORD[120+rbp] + vmovdqu8 XMMWORD[r11*1+r10]{k1},xmm0 + vmovdqu8 zmm17{k1}{z},zmm17 + vpshufb xmm17,xmm17,xmm29 + vextracti32x4 xmm7,zmm17,0 + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_577 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm17,xmm1,0x01 + vpclmulqdq xmm5,xmm17,xmm1,0x10 + vpclmulqdq xmm0,xmm17,xmm1,0x11 + vpclmulqdq xmm3,xmm17,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_577 +$L$_small_initial_partial_block_577: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + + + + + + + + + + + + vpxorq xmm14,xmm14,xmm7 + + jmp NEAR $L$_after_reduction_577 +$L$_small_initial_compute_done_577: +$L$_after_reduction_577: + jmp NEAR $L$_last_blocks_done_575 +$L$_last_num_blocks_is_2_575: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,254 + jae NEAR $L$_16_blocks_overflow_578 + vpaddd ymm0,ymm2,ymm28 + jmp NEAR $L$_16_blocks_ok_578 + +$L$_16_blocks_overflow_578: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb ymm0,ymm0,ymm29 +$L$_16_blocks_ok_578: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm0,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 ymm17{k1}{z},[r11*1+r9] + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc ymm0,ymm0,ymm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast ymm0,ymm0,ymm30 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm11,zmm0,1 + mov r10,QWORD[120+rbp] + vmovdqu8 YMMWORD[r11*1+r10]{k1},ymm0 + vmovdqu8 zmm17{k1}{z},zmm17 + vpshufb ymm17,ymm17,ymm29 + vextracti32x4 xmm7,zmm17,1 + sub r13,16 * (2 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_579 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm17,ymm1,0x01 + vpclmulqdq ymm5,ymm17,ymm1,0x10 + vpclmulqdq ymm0,ymm17,ymm1,0x11 + vpclmulqdq ymm3,ymm17,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_579 +$L$_small_initial_partial_block_579: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm17,xmm1,0x01 + vpclmulqdq xmm5,xmm17,xmm1,0x10 + vpclmulqdq xmm0,xmm17,xmm1,0x11 + vpclmulqdq xmm3,xmm17,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_579: + + or r13,r13 + je NEAR $L$_after_reduction_579 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_579: + jmp NEAR $L$_last_blocks_done_575 +$L$_last_num_blocks_is_3_575: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,253 + jae NEAR $L$_16_blocks_overflow_580 + vpaddd zmm0,zmm2,zmm28 + jmp NEAR $L$_16_blocks_ok_580 + +$L$_16_blocks_overflow_580: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb zmm0,zmm0,zmm29 +$L$_16_blocks_ok_580: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm0,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17{k1}{z},[r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vpxorq zmm0,zmm0,zmm17 + vextracti32x4 xmm11,zmm0,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10]{k1},zmm0 + vmovdqu8 zmm17{k1}{z},zmm17 + vpshufb zmm17,zmm17,zmm29 + vextracti32x4 xmm7,zmm17,2 + sub r13,16 * (3 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_581 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_581 +$L$_small_initial_partial_block_581: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm17,ymm1,0x01 + vpclmulqdq ymm5,ymm17,ymm1,0x10 + vpclmulqdq ymm0,ymm17,ymm1,0x11 + vpclmulqdq ymm3,ymm17,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_581: + + or r13,r13 + je NEAR $L$_after_reduction_581 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_581: + jmp NEAR $L$_last_blocks_done_575 +$L$_last_num_blocks_is_4_575: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,252 + jae NEAR $L$_16_blocks_overflow_582 + vpaddd zmm0,zmm2,zmm28 + jmp NEAR $L$_16_blocks_ok_582 + +$L$_16_blocks_overflow_582: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb zmm0,zmm0,zmm29 +$L$_16_blocks_ok_582: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm0,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17{k1}{z},[r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vpxorq zmm0,zmm0,zmm17 + vextracti32x4 xmm11,zmm0,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10]{k1},zmm0 + vmovdqu8 zmm17{k1}{z},zmm17 + vpshufb zmm17,zmm17,zmm29 + vextracti32x4 xmm7,zmm17,3 + sub r13,16 * (4 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_583 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_583 +$L$_small_initial_partial_block_583: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_583: + + or r13,r13 + je NEAR $L$_after_reduction_583 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_583: + jmp NEAR $L$_last_blocks_done_575 +$L$_last_num_blocks_is_5_575: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,251 + jae NEAR $L$_16_blocks_overflow_584 + vpaddd zmm0,zmm2,zmm28 + vpaddd xmm3,xmm0,xmm27 + jmp NEAR $L$_16_blocks_ok_584 + +$L$_16_blocks_overflow_584: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb xmm3,xmm3,xmm29 +$L$_16_blocks_ok_584: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm3,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 xmm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast xmm3,xmm3,xmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq xmm3,xmm3,xmm19 + vextracti32x4 xmm11,zmm3,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 XMMWORD[64+r11*1+r10]{k1},xmm3 + vmovdqu8 zmm19{k1}{z},zmm19 + vpshufb zmm17,zmm17,zmm29 + vpshufb xmm19,xmm19,xmm29 + vextracti32x4 xmm7,zmm19,0 + sub r13,16 * (5 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_585 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm19,xmm1,0x01 + vpclmulqdq xmm5,xmm19,xmm1,0x10 + vpclmulqdq xmm0,xmm19,xmm1,0x11 + vpclmulqdq xmm3,xmm19,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_585 +$L$_small_initial_partial_block_585: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_585: + + or r13,r13 + je NEAR $L$_after_reduction_585 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_585: + jmp NEAR $L$_last_blocks_done_575 +$L$_last_num_blocks_is_6_575: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,250 + jae NEAR $L$_16_blocks_overflow_586 + vpaddd zmm0,zmm2,zmm28 + vpaddd ymm3,ymm0,ymm27 + jmp NEAR $L$_16_blocks_ok_586 + +$L$_16_blocks_overflow_586: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb ymm3,ymm3,ymm29 +$L$_16_blocks_ok_586: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm3,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 ymm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast ymm3,ymm3,ymm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm11,zmm3,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 YMMWORD[64+r11*1+r10]{k1},ymm3 + vmovdqu8 zmm19{k1}{z},zmm19 + vpshufb zmm17,zmm17,zmm29 + vpshufb ymm19,ymm19,ymm29 + vextracti32x4 xmm7,zmm19,1 + sub r13,16 * (6 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_587 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm19,ymm1,0x01 + vpclmulqdq ymm5,ymm19,ymm1,0x10 + vpclmulqdq ymm0,ymm19,ymm1,0x11 + vpclmulqdq ymm3,ymm19,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_587 +$L$_small_initial_partial_block_587: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm19,xmm1,0x01 + vpclmulqdq xmm5,xmm19,xmm1,0x10 + vpclmulqdq xmm0,xmm19,xmm1,0x11 + vpclmulqdq xmm3,xmm19,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_587: + + or r13,r13 + je NEAR $L$_after_reduction_587 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_587: + jmp NEAR $L$_last_blocks_done_575 +$L$_last_num_blocks_is_7_575: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,249 + jae NEAR $L$_16_blocks_overflow_588 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + jmp NEAR $L$_16_blocks_ok_588 + +$L$_16_blocks_overflow_588: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 +$L$_16_blocks_ok_588: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm3,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti32x4 xmm11,zmm3,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10]{k1},zmm3 + vmovdqu8 zmm19{k1}{z},zmm19 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vextracti32x4 xmm7,zmm19,2 + sub r13,16 * (7 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_589 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm19,zmm1,0x01 + vpclmulqdq zmm5,zmm19,zmm1,0x10 + vpclmulqdq zmm0,zmm19,zmm1,0x11 + vpclmulqdq zmm3,zmm19,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_589 +$L$_small_initial_partial_block_589: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm19,ymm1,0x01 + vpclmulqdq ymm5,ymm19,ymm1,0x10 + vpclmulqdq ymm0,ymm19,ymm1,0x11 + vpclmulqdq ymm3,ymm19,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_589: + + or r13,r13 + je NEAR $L$_after_reduction_589 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_589: + jmp NEAR $L$_last_blocks_done_575 +$L$_last_num_blocks_is_8_575: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,248 + jae NEAR $L$_16_blocks_overflow_590 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + jmp NEAR $L$_16_blocks_ok_590 + +$L$_16_blocks_overflow_590: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 +$L$_16_blocks_ok_590: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm3,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti32x4 xmm11,zmm3,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10]{k1},zmm3 + vmovdqu8 zmm19{k1}{z},zmm19 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vextracti32x4 xmm7,zmm19,3 + sub r13,16 * (8 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_591 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_591 +$L$_small_initial_partial_block_591: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm19,zmm1,0x01 + vpclmulqdq zmm5,zmm19,zmm1,0x10 + vpclmulqdq zmm0,zmm19,zmm1,0x11 + vpclmulqdq zmm3,zmm19,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_591: + + or r13,r13 + je NEAR $L$_after_reduction_591 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_591: + jmp NEAR $L$_last_blocks_done_575 +$L$_last_num_blocks_is_9_575: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,247 + jae NEAR $L$_16_blocks_overflow_592 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd xmm4,xmm3,xmm27 + jmp NEAR $L$_16_blocks_ok_592 + +$L$_16_blocks_overflow_592: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb xmm4,xmm4,xmm29 +$L$_16_blocks_ok_592: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm4,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 xmm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast xmm4,xmm4,xmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq xmm4,xmm4,xmm20 + vextracti32x4 xmm11,zmm4,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 XMMWORD[128+r11*1+r10]{k1},xmm4 + vmovdqu8 zmm20{k1}{z},zmm20 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb xmm20,xmm20,xmm29 + vextracti32x4 xmm7,zmm20,0 + sub r13,16 * (9 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_593 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm20,xmm1,0x01 + vpclmulqdq xmm5,xmm20,xmm1,0x10 + vpclmulqdq xmm0,xmm20,xmm1,0x11 + vpclmulqdq xmm3,xmm20,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_593 +$L$_small_initial_partial_block_593: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_593: + + or r13,r13 + je NEAR $L$_after_reduction_593 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_593: + jmp NEAR $L$_last_blocks_done_575 +$L$_last_num_blocks_is_10_575: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,246 + jae NEAR $L$_16_blocks_overflow_594 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd ymm4,ymm3,ymm27 + jmp NEAR $L$_16_blocks_ok_594 + +$L$_16_blocks_overflow_594: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb ymm4,ymm4,ymm29 +$L$_16_blocks_ok_594: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm4,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 ymm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast ymm4,ymm4,ymm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq ymm4,ymm4,ymm20 + vextracti32x4 xmm11,zmm4,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 YMMWORD[128+r11*1+r10]{k1},ymm4 + vmovdqu8 zmm20{k1}{z},zmm20 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb ymm20,ymm20,ymm29 + vextracti32x4 xmm7,zmm20,1 + sub r13,16 * (10 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_595 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm20,ymm1,0x01 + vpclmulqdq ymm5,ymm20,ymm1,0x10 + vpclmulqdq ymm0,ymm20,ymm1,0x11 + vpclmulqdq ymm3,ymm20,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_595 +$L$_small_initial_partial_block_595: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm20,xmm1,0x01 + vpclmulqdq xmm5,xmm20,xmm1,0x10 + vpclmulqdq xmm0,xmm20,xmm1,0x11 + vpclmulqdq xmm3,xmm20,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_595: + + or r13,r13 + je NEAR $L$_after_reduction_595 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_595: + jmp NEAR $L$_last_blocks_done_575 +$L$_last_num_blocks_is_11_575: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,245 + jae NEAR $L$_16_blocks_overflow_596 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + jmp NEAR $L$_16_blocks_ok_596 + +$L$_16_blocks_overflow_596: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 +$L$_16_blocks_ok_596: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm4,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vextracti32x4 xmm11,zmm4,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10]{k1},zmm4 + vmovdqu8 zmm20{k1}{z},zmm20 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb zmm20,zmm20,zmm29 + vextracti32x4 xmm7,zmm20,2 + sub r13,16 * (11 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_597 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm20,zmm1,0x01 + vpclmulqdq zmm5,zmm20,zmm1,0x10 + vpclmulqdq zmm0,zmm20,zmm1,0x11 + vpclmulqdq zmm3,zmm20,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_597 +$L$_small_initial_partial_block_597: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm20,ymm1,0x01 + vpclmulqdq ymm5,ymm20,ymm1,0x10 + vpclmulqdq ymm0,ymm20,ymm1,0x11 + vpclmulqdq ymm3,ymm20,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_597: + + or r13,r13 + je NEAR $L$_after_reduction_597 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_597: + jmp NEAR $L$_last_blocks_done_575 +$L$_last_num_blocks_is_12_575: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,244 + jae NEAR $L$_16_blocks_overflow_598 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + jmp NEAR $L$_16_blocks_ok_598 + +$L$_16_blocks_overflow_598: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 +$L$_16_blocks_ok_598: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm4,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vextracti32x4 xmm11,zmm4,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10]{k1},zmm4 + vmovdqu8 zmm20{k1}{z},zmm20 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb zmm20,zmm20,zmm29 + vextracti32x4 xmm7,zmm20,3 + sub r13,16 * (12 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_599 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[160+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_599 +$L$_small_initial_partial_block_599: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm20,zmm1,0x01 + vpclmulqdq zmm5,zmm20,zmm1,0x10 + vpclmulqdq zmm0,zmm20,zmm1,0x11 + vpclmulqdq zmm3,zmm20,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_599: + + or r13,r13 + je NEAR $L$_after_reduction_599 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_599: + jmp NEAR $L$_last_blocks_done_575 +$L$_last_num_blocks_is_13_575: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,243 + jae NEAR $L$_16_blocks_overflow_600 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd xmm5,xmm4,xmm27 + jmp NEAR $L$_16_blocks_ok_600 + +$L$_16_blocks_overflow_600: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb xmm5,xmm5,xmm29 +$L$_16_blocks_ok_600: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm5,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 xmm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast xmm5,xmm5,xmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq xmm5,xmm5,xmm21 + vextracti32x4 xmm11,zmm5,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 XMMWORD[192+r11*1+r10]{k1},xmm5 + vmovdqu8 zmm21{k1}{z},zmm21 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb zmm20,zmm20,zmm29 + vpshufb xmm21,xmm21,xmm29 + vextracti32x4 xmm7,zmm21,0 + sub r13,16 * (13 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_601 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[144+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm21,xmm1,0x01 + vpclmulqdq xmm5,xmm21,xmm1,0x10 + vpclmulqdq xmm0,xmm21,xmm1,0x11 + vpclmulqdq xmm3,xmm21,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_601 +$L$_small_initial_partial_block_601: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[160+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_601: + + or r13,r13 + je NEAR $L$_after_reduction_601 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_601: + jmp NEAR $L$_last_blocks_done_575 +$L$_last_num_blocks_is_14_575: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,242 + jae NEAR $L$_16_blocks_overflow_602 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd ymm5,ymm4,ymm27 + jmp NEAR $L$_16_blocks_ok_602 + +$L$_16_blocks_overflow_602: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb ymm5,ymm5,ymm29 +$L$_16_blocks_ok_602: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm5,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 ymm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast ymm5,ymm5,ymm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq ymm5,ymm5,ymm21 + vextracti32x4 xmm11,zmm5,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 YMMWORD[192+r11*1+r10]{k1},ymm5 + vmovdqu8 zmm21{k1}{z},zmm21 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb zmm20,zmm20,zmm29 + vpshufb ymm21,ymm21,ymm29 + vextracti32x4 xmm7,zmm21,1 + sub r13,16 * (14 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_603 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[128+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm21,ymm1,0x01 + vpclmulqdq ymm5,ymm21,ymm1,0x10 + vpclmulqdq ymm0,ymm21,ymm1,0x11 + vpclmulqdq ymm3,ymm21,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_603 +$L$_small_initial_partial_block_603: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[144+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm21,xmm1,0x01 + vpclmulqdq xmm5,xmm21,xmm1,0x10 + vpclmulqdq xmm0,xmm21,xmm1,0x11 + vpclmulqdq xmm3,xmm21,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_603: + + or r13,r13 + je NEAR $L$_after_reduction_603 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_603: + jmp NEAR $L$_last_blocks_done_575 +$L$_last_num_blocks_is_15_575: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,241 + jae NEAR $L$_16_blocks_overflow_604 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_604 + +$L$_16_blocks_overflow_604: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_604: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm5,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + vextracti32x4 xmm11,zmm5,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[192+r11*1+r10]{k1},zmm5 + vmovdqu8 zmm21{k1}{z},zmm21 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb zmm20,zmm20,zmm29 + vpshufb zmm21,zmm21,zmm29 + vextracti32x4 xmm7,zmm21,2 + sub r13,16 * (15 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_605 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[112+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm21,zmm1,0x01 + vpclmulqdq zmm5,zmm21,zmm1,0x10 + vpclmulqdq zmm0,zmm21,zmm1,0x11 + vpclmulqdq zmm3,zmm21,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_605 +$L$_small_initial_partial_block_605: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[128+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm21,ymm1,0x01 + vpclmulqdq ymm5,ymm21,ymm1,0x10 + vpclmulqdq ymm0,ymm21,ymm1,0x11 + vpclmulqdq ymm3,ymm21,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_605: + + or r13,r13 + je NEAR $L$_after_reduction_605 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_605: + jmp NEAR $L$_last_blocks_done_575 +$L$_last_num_blocks_is_16_575: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,240 + jae NEAR $L$_16_blocks_overflow_606 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_606 + +$L$_16_blocks_overflow_606: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_606: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm5,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + vextracti32x4 xmm11,zmm5,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[192+r11*1+r10]{k1},zmm5 + vmovdqu8 zmm21{k1}{z},zmm21 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb zmm20,zmm20,zmm29 + vpshufb zmm21,zmm21,zmm29 + vextracti32x4 xmm7,zmm21,3 + sub r13,16 * (16 - 1) +$L$_small_initial_partial_block_607: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[112+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm21,zmm1,0x01 + vpclmulqdq zmm5,zmm21,zmm1,0x10 + vpclmulqdq zmm0,zmm21,zmm1,0x11 + vpclmulqdq zmm3,zmm21,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_607: + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_607: + jmp NEAR $L$_last_blocks_done_575 +$L$_last_num_blocks_is_0_575: + vmovdqa64 zmm13,ZMMWORD[1280+rsp] + vmovdqu64 zmm12,ZMMWORD[512+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[1344+rsp] + vmovdqu64 zmm12,ZMMWORD[576+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + vpternlogq zmm26,zmm4,zmm10,0x96 + vpternlogq zmm24,zmm0,zmm6,0x96 + vpternlogq zmm25,zmm3,zmm7,0x96 + vpternlogq zmm26,zmm5,zmm11,0x96 + vmovdqa64 zmm13,ZMMWORD[1408+rsp] + vmovdqu64 zmm12,ZMMWORD[640+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[1472+rsp] + vmovdqu64 zmm12,ZMMWORD[704+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + + vpternlogq zmm26,zmm4,zmm10,0x96 + vpternlogq zmm24,zmm0,zmm6,0x96 + vpternlogq zmm25,zmm3,zmm7,0x96 + vpternlogq zmm26,zmm5,zmm11,0x96 + + vpsrldq zmm0,zmm26,8 + vpslldq zmm3,zmm26,8 + vpxorq zmm24,zmm24,zmm0 + vpxorq zmm25,zmm25,zmm3 + vextracti64x4 ymm0,zmm24,1 + vpxorq ymm24,ymm24,ymm0 + vextracti32x4 xmm0,ymm24,1 + vpxorq xmm24,xmm24,xmm0 + vextracti64x4 ymm3,zmm25,1 + vpxorq ymm25,ymm25,ymm3 + vextracti32x4 xmm3,ymm25,1 + vpxorq xmm25,xmm25,xmm3 + vmovdqa64 xmm4,XMMWORD[POLY2] + + + vpclmulqdq xmm0,xmm4,xmm25,0x01 + vpslldq xmm0,xmm0,8 + vpxorq xmm0,xmm25,xmm0 + + + vpclmulqdq xmm3,xmm4,xmm0,0x00 + vpsrldq xmm3,xmm3,4 + vpclmulqdq xmm14,xmm4,xmm0,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm3,xmm24,0x96 + +$L$_last_blocks_done_575: + vpshufb xmm2,xmm2,xmm29 + jmp NEAR $L$_ghash_done_497 + +$L$_message_below_32_blocks_497: + + + sub r13,256 + add r11,256 + mov r10d,r13d + test r14,r14 + jnz NEAR $L$_skip_hkeys_precomputation_608 + vmovdqu64 zmm3,ZMMWORD[640+rsp] + + + vshufi64x2 zmm3,zmm3,zmm3,0x00 + + vmovdqu64 zmm4,ZMMWORD[576+rsp] + vmovdqu64 zmm5,ZMMWORD[512+rsp] + + vpclmulqdq zmm6,zmm4,zmm3,0x11 + vpclmulqdq zmm7,zmm4,zmm3,0x00 + vpclmulqdq zmm10,zmm4,zmm3,0x01 + vpclmulqdq zmm4,zmm4,zmm3,0x10 + vpxorq zmm4,zmm4,zmm10 + + vpsrldq zmm10,zmm4,8 + vpslldq zmm4,zmm4,8 + vpxorq zmm6,zmm6,zmm10 + vpxorq zmm4,zmm4,zmm7 + + + + vmovdqu64 zmm10,ZMMWORD[POLY2] + + vpclmulqdq zmm7,zmm10,zmm4,0x01 + vpslldq zmm7,zmm7,8 + vpxorq zmm4,zmm4,zmm7 + + + + vpclmulqdq zmm7,zmm10,zmm4,0x00 + vpsrldq zmm7,zmm7,4 + vpclmulqdq zmm4,zmm10,zmm4,0x10 + vpslldq zmm4,zmm4,4 + + vpternlogq zmm4,zmm6,zmm7,0x96 + + vmovdqu64 ZMMWORD[448+rsp],zmm4 + + vpclmulqdq zmm6,zmm5,zmm3,0x11 + vpclmulqdq zmm7,zmm5,zmm3,0x00 + vpclmulqdq zmm10,zmm5,zmm3,0x01 + vpclmulqdq zmm5,zmm5,zmm3,0x10 + vpxorq zmm5,zmm5,zmm10 + + vpsrldq zmm10,zmm5,8 + vpslldq zmm5,zmm5,8 + vpxorq zmm6,zmm6,zmm10 + vpxorq zmm5,zmm5,zmm7 + + + + vmovdqu64 zmm10,ZMMWORD[POLY2] + + vpclmulqdq zmm7,zmm10,zmm5,0x01 + vpslldq zmm7,zmm7,8 + vpxorq zmm5,zmm5,zmm7 + + + + vpclmulqdq zmm7,zmm10,zmm5,0x00 + vpsrldq zmm7,zmm7,4 + vpclmulqdq zmm5,zmm10,zmm5,0x10 + vpslldq zmm5,zmm5,4 + + vpternlogq zmm5,zmm6,zmm7,0x96 + + vmovdqu64 ZMMWORD[384+rsp],zmm5 + + vpclmulqdq zmm6,zmm4,zmm3,0x11 + vpclmulqdq zmm7,zmm4,zmm3,0x00 + vpclmulqdq zmm10,zmm4,zmm3,0x01 + vpclmulqdq zmm4,zmm4,zmm3,0x10 + vpxorq zmm4,zmm4,zmm10 + + vpsrldq zmm10,zmm4,8 + vpslldq zmm4,zmm4,8 + vpxorq zmm6,zmm6,zmm10 + vpxorq zmm4,zmm4,zmm7 + + + + vmovdqu64 zmm10,ZMMWORD[POLY2] + + vpclmulqdq zmm7,zmm10,zmm4,0x01 + vpslldq zmm7,zmm7,8 + vpxorq zmm4,zmm4,zmm7 + + + + vpclmulqdq zmm7,zmm10,zmm4,0x00 + vpsrldq zmm7,zmm7,4 + vpclmulqdq zmm4,zmm10,zmm4,0x10 + vpslldq zmm4,zmm4,4 + + vpternlogq zmm4,zmm6,zmm7,0x96 + + vmovdqu64 ZMMWORD[320+rsp],zmm4 + + vpclmulqdq zmm6,zmm5,zmm3,0x11 + vpclmulqdq zmm7,zmm5,zmm3,0x00 + vpclmulqdq zmm10,zmm5,zmm3,0x01 + vpclmulqdq zmm5,zmm5,zmm3,0x10 + vpxorq zmm5,zmm5,zmm10 + + vpsrldq zmm10,zmm5,8 + vpslldq zmm5,zmm5,8 + vpxorq zmm6,zmm6,zmm10 + vpxorq zmm5,zmm5,zmm7 + + + + vmovdqu64 zmm10,ZMMWORD[POLY2] + + vpclmulqdq zmm7,zmm10,zmm5,0x01 + vpslldq zmm7,zmm7,8 + vpxorq zmm5,zmm5,zmm7 + + + + vpclmulqdq zmm7,zmm10,zmm5,0x00 + vpsrldq zmm7,zmm7,4 + vpclmulqdq zmm5,zmm10,zmm5,0x10 + vpslldq zmm5,zmm5,4 + + vpternlogq zmm5,zmm6,zmm7,0x96 + + vmovdqu64 ZMMWORD[256+rsp],zmm5 +$L$_skip_hkeys_precomputation_608: + mov r14,1 + and r10d,~15 + mov ebx,512 + sub ebx,r10d + mov r10d,r13d + add r10d,15 + shr r10d,4 + je NEAR $L$_last_num_blocks_is_0_609 + + cmp r10d,8 + je NEAR $L$_last_num_blocks_is_8_609 + jb NEAR $L$_last_num_blocks_is_7_1_609 + + + cmp r10d,12 + je NEAR $L$_last_num_blocks_is_12_609 + jb NEAR $L$_last_num_blocks_is_11_9_609 + + + cmp r10d,15 + je NEAR $L$_last_num_blocks_is_15_609 + ja NEAR $L$_last_num_blocks_is_16_609 + cmp r10d,14 + je NEAR $L$_last_num_blocks_is_14_609 + jmp NEAR $L$_last_num_blocks_is_13_609 + +$L$_last_num_blocks_is_11_9_609: + + cmp r10d,10 + je NEAR $L$_last_num_blocks_is_10_609 + ja NEAR $L$_last_num_blocks_is_11_609 + jmp NEAR $L$_last_num_blocks_is_9_609 + +$L$_last_num_blocks_is_7_1_609: + cmp r10d,4 + je NEAR $L$_last_num_blocks_is_4_609 + jb NEAR $L$_last_num_blocks_is_3_1_609 + + cmp r10d,6 + ja NEAR $L$_last_num_blocks_is_7_609 + je NEAR $L$_last_num_blocks_is_6_609 + jmp NEAR $L$_last_num_blocks_is_5_609 + +$L$_last_num_blocks_is_3_1_609: + + cmp r10d,2 + ja NEAR $L$_last_num_blocks_is_3_609 + je NEAR $L$_last_num_blocks_is_2_609 +$L$_last_num_blocks_is_1_609: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,255 + jae NEAR $L$_16_blocks_overflow_610 + vpaddd xmm0,xmm2,xmm28 + jmp NEAR $L$_16_blocks_ok_610 + +$L$_16_blocks_overflow_610: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb xmm0,xmm0,xmm29 +$L$_16_blocks_ok_610: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm0,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 xmm17{k1}{z},[r11*1+r9] + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc xmm0,xmm0,xmm31 + vaesenclast xmm0,xmm0,xmm30 + vpxorq xmm0,xmm0,xmm17 + vextracti32x4 xmm11,zmm0,0 + mov r10,QWORD[120+rbp] + vmovdqu8 XMMWORD[r11*1+r10]{k1},xmm0 + vmovdqu8 zmm17{k1}{z},zmm17 + vpshufb xmm17,xmm17,xmm29 + vextracti32x4 xmm7,zmm17,0 + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_611 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm17,xmm1,0x01 + vpclmulqdq xmm5,xmm17,xmm1,0x10 + vpclmulqdq xmm0,xmm17,xmm1,0x11 + vpclmulqdq xmm3,xmm17,xmm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_611 +$L$_small_initial_partial_block_611: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + + + vpsrldq zmm0,zmm26,8 + vpslldq zmm3,zmm26,8 + vpxorq zmm24,zmm24,zmm0 + vpxorq zmm25,zmm25,zmm3 + vextracti64x4 ymm0,zmm24,1 + vpxorq ymm24,ymm24,ymm0 + vextracti32x4 xmm0,ymm24,1 + vpxorq xmm24,xmm24,xmm0 + vextracti64x4 ymm3,zmm25,1 + vpxorq ymm25,ymm25,ymm3 + vextracti32x4 xmm3,ymm25,1 + vpxorq xmm25,xmm25,xmm3 + vmovdqa64 xmm0,XMMWORD[POLY2] + + + vpclmulqdq xmm3,xmm0,xmm25,0x01 + vpslldq xmm3,xmm3,8 + vpxorq xmm3,xmm25,xmm3 + + + vpclmulqdq xmm4,xmm0,xmm3,0x00 + vpsrldq xmm4,xmm4,4 + vpclmulqdq xmm14,xmm0,xmm3,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm4,xmm24,0x96 + + + + + + + + + + + + + vpxorq xmm14,xmm14,xmm7 + + jmp NEAR $L$_after_reduction_611 +$L$_small_initial_compute_done_611: +$L$_after_reduction_611: + jmp NEAR $L$_last_blocks_done_609 +$L$_last_num_blocks_is_2_609: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,254 + jae NEAR $L$_16_blocks_overflow_612 + vpaddd ymm0,ymm2,ymm28 + jmp NEAR $L$_16_blocks_ok_612 + +$L$_16_blocks_overflow_612: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb ymm0,ymm0,ymm29 +$L$_16_blocks_ok_612: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm0,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 ymm17{k1}{z},[r11*1+r9] + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc ymm0,ymm0,ymm31 + vaesenclast ymm0,ymm0,ymm30 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm11,zmm0,1 + mov r10,QWORD[120+rbp] + vmovdqu8 YMMWORD[r11*1+r10]{k1},ymm0 + vmovdqu8 zmm17{k1}{z},zmm17 + vpshufb ymm17,ymm17,ymm29 + vextracti32x4 xmm7,zmm17,1 + sub r13,16 * (2 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_613 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm17,ymm1,0x01 + vpclmulqdq ymm5,ymm17,ymm1,0x10 + vpclmulqdq ymm0,ymm17,ymm1,0x11 + vpclmulqdq ymm3,ymm17,ymm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_613 +$L$_small_initial_partial_block_613: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm17,xmm1,0x01 + vpclmulqdq xmm5,xmm17,xmm1,0x10 + vpclmulqdq xmm0,xmm17,xmm1,0x11 + vpclmulqdq xmm3,xmm17,xmm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_613: + + or r13,r13 + je NEAR $L$_after_reduction_613 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_613: + jmp NEAR $L$_last_blocks_done_609 +$L$_last_num_blocks_is_3_609: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,253 + jae NEAR $L$_16_blocks_overflow_614 + vpaddd zmm0,zmm2,zmm28 + jmp NEAR $L$_16_blocks_ok_614 + +$L$_16_blocks_overflow_614: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb zmm0,zmm0,zmm29 +$L$_16_blocks_ok_614: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm0,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17{k1}{z},[r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vpxorq zmm0,zmm0,zmm17 + vextracti32x4 xmm11,zmm0,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10]{k1},zmm0 + vmovdqu8 zmm17{k1}{z},zmm17 + vpshufb zmm17,zmm17,zmm29 + vextracti32x4 xmm7,zmm17,2 + sub r13,16 * (3 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_615 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_615 +$L$_small_initial_partial_block_615: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm17,ymm1,0x01 + vpclmulqdq ymm5,ymm17,ymm1,0x10 + vpclmulqdq ymm0,ymm17,ymm1,0x11 + vpclmulqdq ymm3,ymm17,ymm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_615: + + or r13,r13 + je NEAR $L$_after_reduction_615 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_615: + jmp NEAR $L$_last_blocks_done_609 +$L$_last_num_blocks_is_4_609: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,252 + jae NEAR $L$_16_blocks_overflow_616 + vpaddd zmm0,zmm2,zmm28 + jmp NEAR $L$_16_blocks_ok_616 + +$L$_16_blocks_overflow_616: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb zmm0,zmm0,zmm29 +$L$_16_blocks_ok_616: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm0,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17{k1}{z},[r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vpxorq zmm0,zmm0,zmm17 + vextracti32x4 xmm11,zmm0,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10]{k1},zmm0 + vmovdqu8 zmm17{k1}{z},zmm17 + vpshufb zmm17,zmm17,zmm29 + vextracti32x4 xmm7,zmm17,3 + sub r13,16 * (4 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_617 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_617 +$L$_small_initial_partial_block_617: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_617: + + or r13,r13 + je NEAR $L$_after_reduction_617 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_617: + jmp NEAR $L$_last_blocks_done_609 +$L$_last_num_blocks_is_5_609: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,251 + jae NEAR $L$_16_blocks_overflow_618 + vpaddd zmm0,zmm2,zmm28 + vpaddd xmm3,xmm0,xmm27 + jmp NEAR $L$_16_blocks_ok_618 + +$L$_16_blocks_overflow_618: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb xmm3,xmm3,xmm29 +$L$_16_blocks_ok_618: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm3,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 xmm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast xmm3,xmm3,xmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq xmm3,xmm3,xmm19 + vextracti32x4 xmm11,zmm3,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 XMMWORD[64+r11*1+r10]{k1},xmm3 + vmovdqu8 zmm19{k1}{z},zmm19 + vpshufb zmm17,zmm17,zmm29 + vpshufb xmm19,xmm19,xmm29 + vextracti32x4 xmm7,zmm19,0 + sub r13,16 * (5 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_619 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm19,xmm1,0x01 + vpclmulqdq xmm5,xmm19,xmm1,0x10 + vpclmulqdq xmm0,xmm19,xmm1,0x11 + vpclmulqdq xmm3,xmm19,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_619 +$L$_small_initial_partial_block_619: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_619: + + or r13,r13 + je NEAR $L$_after_reduction_619 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_619: + jmp NEAR $L$_last_blocks_done_609 +$L$_last_num_blocks_is_6_609: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,250 + jae NEAR $L$_16_blocks_overflow_620 + vpaddd zmm0,zmm2,zmm28 + vpaddd ymm3,ymm0,ymm27 + jmp NEAR $L$_16_blocks_ok_620 + +$L$_16_blocks_overflow_620: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb ymm3,ymm3,ymm29 +$L$_16_blocks_ok_620: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm3,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 ymm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast ymm3,ymm3,ymm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm11,zmm3,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 YMMWORD[64+r11*1+r10]{k1},ymm3 + vmovdqu8 zmm19{k1}{z},zmm19 + vpshufb zmm17,zmm17,zmm29 + vpshufb ymm19,ymm19,ymm29 + vextracti32x4 xmm7,zmm19,1 + sub r13,16 * (6 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_621 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm19,ymm1,0x01 + vpclmulqdq ymm5,ymm19,ymm1,0x10 + vpclmulqdq ymm0,ymm19,ymm1,0x11 + vpclmulqdq ymm3,ymm19,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_621 +$L$_small_initial_partial_block_621: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm19,xmm1,0x01 + vpclmulqdq xmm5,xmm19,xmm1,0x10 + vpclmulqdq xmm0,xmm19,xmm1,0x11 + vpclmulqdq xmm3,xmm19,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_621: + + or r13,r13 + je NEAR $L$_after_reduction_621 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_621: + jmp NEAR $L$_last_blocks_done_609 +$L$_last_num_blocks_is_7_609: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,249 + jae NEAR $L$_16_blocks_overflow_622 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + jmp NEAR $L$_16_blocks_ok_622 + +$L$_16_blocks_overflow_622: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 +$L$_16_blocks_ok_622: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm3,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti32x4 xmm11,zmm3,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10]{k1},zmm3 + vmovdqu8 zmm19{k1}{z},zmm19 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vextracti32x4 xmm7,zmm19,2 + sub r13,16 * (7 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_623 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm19,zmm1,0x01 + vpclmulqdq zmm5,zmm19,zmm1,0x10 + vpclmulqdq zmm0,zmm19,zmm1,0x11 + vpclmulqdq zmm3,zmm19,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_623 +$L$_small_initial_partial_block_623: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm19,ymm1,0x01 + vpclmulqdq ymm5,ymm19,ymm1,0x10 + vpclmulqdq ymm0,ymm19,ymm1,0x11 + vpclmulqdq ymm3,ymm19,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_623: + + or r13,r13 + je NEAR $L$_after_reduction_623 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_623: + jmp NEAR $L$_last_blocks_done_609 +$L$_last_num_blocks_is_8_609: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,248 + jae NEAR $L$_16_blocks_overflow_624 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + jmp NEAR $L$_16_blocks_ok_624 + +$L$_16_blocks_overflow_624: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 +$L$_16_blocks_ok_624: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm3,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti32x4 xmm11,zmm3,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10]{k1},zmm3 + vmovdqu8 zmm19{k1}{z},zmm19 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vextracti32x4 xmm7,zmm19,3 + sub r13,16 * (8 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_625 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_625 +$L$_small_initial_partial_block_625: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm19,zmm1,0x01 + vpclmulqdq zmm5,zmm19,zmm1,0x10 + vpclmulqdq zmm0,zmm19,zmm1,0x11 + vpclmulqdq zmm3,zmm19,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_625: + + or r13,r13 + je NEAR $L$_after_reduction_625 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_625: + jmp NEAR $L$_last_blocks_done_609 +$L$_last_num_blocks_is_9_609: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,247 + jae NEAR $L$_16_blocks_overflow_626 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd xmm4,xmm3,xmm27 + jmp NEAR $L$_16_blocks_ok_626 + +$L$_16_blocks_overflow_626: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb xmm4,xmm4,xmm29 +$L$_16_blocks_ok_626: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm4,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 xmm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast xmm4,xmm4,xmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq xmm4,xmm4,xmm20 + vextracti32x4 xmm11,zmm4,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 XMMWORD[128+r11*1+r10]{k1},xmm4 + vmovdqu8 zmm20{k1}{z},zmm20 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb xmm20,xmm20,xmm29 + vextracti32x4 xmm7,zmm20,0 + sub r13,16 * (9 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_627 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm20,xmm1,0x01 + vpclmulqdq xmm5,xmm20,xmm1,0x10 + vpclmulqdq xmm0,xmm20,xmm1,0x11 + vpclmulqdq xmm3,xmm20,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_627 +$L$_small_initial_partial_block_627: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_627: + + or r13,r13 + je NEAR $L$_after_reduction_627 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_627: + jmp NEAR $L$_last_blocks_done_609 +$L$_last_num_blocks_is_10_609: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,246 + jae NEAR $L$_16_blocks_overflow_628 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd ymm4,ymm3,ymm27 + jmp NEAR $L$_16_blocks_ok_628 + +$L$_16_blocks_overflow_628: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb ymm4,ymm4,ymm29 +$L$_16_blocks_ok_628: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm4,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 ymm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast ymm4,ymm4,ymm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq ymm4,ymm4,ymm20 + vextracti32x4 xmm11,zmm4,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 YMMWORD[128+r11*1+r10]{k1},ymm4 + vmovdqu8 zmm20{k1}{z},zmm20 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb ymm20,ymm20,ymm29 + vextracti32x4 xmm7,zmm20,1 + sub r13,16 * (10 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_629 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm20,ymm1,0x01 + vpclmulqdq ymm5,ymm20,ymm1,0x10 + vpclmulqdq ymm0,ymm20,ymm1,0x11 + vpclmulqdq ymm3,ymm20,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_629 +$L$_small_initial_partial_block_629: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm20,xmm1,0x01 + vpclmulqdq xmm5,xmm20,xmm1,0x10 + vpclmulqdq xmm0,xmm20,xmm1,0x11 + vpclmulqdq xmm3,xmm20,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_629: + + or r13,r13 + je NEAR $L$_after_reduction_629 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_629: + jmp NEAR $L$_last_blocks_done_609 +$L$_last_num_blocks_is_11_609: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,245 + jae NEAR $L$_16_blocks_overflow_630 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + jmp NEAR $L$_16_blocks_ok_630 + +$L$_16_blocks_overflow_630: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 +$L$_16_blocks_ok_630: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm4,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vextracti32x4 xmm11,zmm4,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10]{k1},zmm4 + vmovdqu8 zmm20{k1}{z},zmm20 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb zmm20,zmm20,zmm29 + vextracti32x4 xmm7,zmm20,2 + sub r13,16 * (11 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_631 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm20,zmm1,0x01 + vpclmulqdq zmm5,zmm20,zmm1,0x10 + vpclmulqdq zmm0,zmm20,zmm1,0x11 + vpclmulqdq zmm3,zmm20,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_631 +$L$_small_initial_partial_block_631: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm20,ymm1,0x01 + vpclmulqdq ymm5,ymm20,ymm1,0x10 + vpclmulqdq ymm0,ymm20,ymm1,0x11 + vpclmulqdq ymm3,ymm20,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_631: + + or r13,r13 + je NEAR $L$_after_reduction_631 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_631: + jmp NEAR $L$_last_blocks_done_609 +$L$_last_num_blocks_is_12_609: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,244 + jae NEAR $L$_16_blocks_overflow_632 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + jmp NEAR $L$_16_blocks_ok_632 + +$L$_16_blocks_overflow_632: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 +$L$_16_blocks_ok_632: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm4,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vextracti32x4 xmm11,zmm4,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10]{k1},zmm4 + vmovdqu8 zmm20{k1}{z},zmm20 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb zmm20,zmm20,zmm29 + vextracti32x4 xmm7,zmm20,3 + sub r13,16 * (12 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_633 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[160+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_633 +$L$_small_initial_partial_block_633: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm20,zmm1,0x01 + vpclmulqdq zmm5,zmm20,zmm1,0x10 + vpclmulqdq zmm0,zmm20,zmm1,0x11 + vpclmulqdq zmm3,zmm20,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_633: + + or r13,r13 + je NEAR $L$_after_reduction_633 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_633: + jmp NEAR $L$_last_blocks_done_609 +$L$_last_num_blocks_is_13_609: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,243 + jae NEAR $L$_16_blocks_overflow_634 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd xmm5,xmm4,xmm27 + jmp NEAR $L$_16_blocks_ok_634 + +$L$_16_blocks_overflow_634: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb xmm5,xmm5,xmm29 +$L$_16_blocks_ok_634: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm5,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 xmm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast xmm5,xmm5,xmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq xmm5,xmm5,xmm21 + vextracti32x4 xmm11,zmm5,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 XMMWORD[192+r11*1+r10]{k1},xmm5 + vmovdqu8 zmm21{k1}{z},zmm21 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb zmm20,zmm20,zmm29 + vpshufb xmm21,xmm21,xmm29 + vextracti32x4 xmm7,zmm21,0 + sub r13,16 * (13 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_635 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[144+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm21,xmm1,0x01 + vpclmulqdq xmm5,xmm21,xmm1,0x10 + vpclmulqdq xmm0,xmm21,xmm1,0x11 + vpclmulqdq xmm3,xmm21,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_635 +$L$_small_initial_partial_block_635: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[160+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_635: + + or r13,r13 + je NEAR $L$_after_reduction_635 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_635: + jmp NEAR $L$_last_blocks_done_609 +$L$_last_num_blocks_is_14_609: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,242 + jae NEAR $L$_16_blocks_overflow_636 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd ymm5,ymm4,ymm27 + jmp NEAR $L$_16_blocks_ok_636 + +$L$_16_blocks_overflow_636: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb ymm5,ymm5,ymm29 +$L$_16_blocks_ok_636: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm5,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 ymm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast ymm5,ymm5,ymm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq ymm5,ymm5,ymm21 + vextracti32x4 xmm11,zmm5,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 YMMWORD[192+r11*1+r10]{k1},ymm5 + vmovdqu8 zmm21{k1}{z},zmm21 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb zmm20,zmm20,zmm29 + vpshufb ymm21,ymm21,ymm29 + vextracti32x4 xmm7,zmm21,1 + sub r13,16 * (14 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_637 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[128+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm21,ymm1,0x01 + vpclmulqdq ymm5,ymm21,ymm1,0x10 + vpclmulqdq ymm0,ymm21,ymm1,0x11 + vpclmulqdq ymm3,ymm21,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_637 +$L$_small_initial_partial_block_637: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[144+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm21,xmm1,0x01 + vpclmulqdq xmm5,xmm21,xmm1,0x10 + vpclmulqdq xmm0,xmm21,xmm1,0x11 + vpclmulqdq xmm3,xmm21,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_637: + + or r13,r13 + je NEAR $L$_after_reduction_637 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_637: + jmp NEAR $L$_last_blocks_done_609 +$L$_last_num_blocks_is_15_609: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,241 + jae NEAR $L$_16_blocks_overflow_638 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_638 + +$L$_16_blocks_overflow_638: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_638: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm5,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + vextracti32x4 xmm11,zmm5,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[192+r11*1+r10]{k1},zmm5 + vmovdqu8 zmm21{k1}{z},zmm21 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb zmm20,zmm20,zmm29 + vpshufb zmm21,zmm21,zmm29 + vextracti32x4 xmm7,zmm21,2 + sub r13,16 * (15 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_639 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[112+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm21,zmm1,0x01 + vpclmulqdq zmm5,zmm21,zmm1,0x10 + vpclmulqdq zmm0,zmm21,zmm1,0x11 + vpclmulqdq zmm3,zmm21,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_639 +$L$_small_initial_partial_block_639: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[128+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm21,ymm1,0x01 + vpclmulqdq ymm5,ymm21,ymm1,0x10 + vpclmulqdq ymm0,ymm21,ymm1,0x11 + vpclmulqdq ymm3,ymm21,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_639: + + or r13,r13 + je NEAR $L$_after_reduction_639 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_639: + jmp NEAR $L$_last_blocks_done_609 +$L$_last_num_blocks_is_16_609: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,240 + jae NEAR $L$_16_blocks_overflow_640 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_640 + +$L$_16_blocks_overflow_640: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_640: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm5,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + vextracti32x4 xmm11,zmm5,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[192+r11*1+r10]{k1},zmm5 + vmovdqu8 zmm21{k1}{z},zmm21 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb zmm20,zmm20,zmm29 + vpshufb zmm21,zmm21,zmm29 + vextracti32x4 xmm7,zmm21,3 + sub r13,16 * (16 - 1) +$L$_small_initial_partial_block_641: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[112+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm21,zmm1,0x01 + vpclmulqdq zmm5,zmm21,zmm1,0x10 + vpclmulqdq zmm0,zmm21,zmm1,0x11 + vpclmulqdq zmm3,zmm21,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_641: + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_641: + jmp NEAR $L$_last_blocks_done_609 +$L$_last_num_blocks_is_0_609: + vmovdqa64 zmm13,ZMMWORD[768+rsp] + vpxorq zmm13,zmm13,zmm14 + vmovdqu64 zmm12,ZMMWORD[rbx*1+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[832+rsp] + vmovdqu64 zmm12,ZMMWORD[64+rbx*1+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + vpxorq zmm26,zmm4,zmm10 + vpxorq zmm24,zmm0,zmm6 + vpxorq zmm25,zmm3,zmm7 + vpternlogq zmm26,zmm5,zmm11,0x96 + vmovdqa64 zmm13,ZMMWORD[896+rsp] + vmovdqu64 zmm12,ZMMWORD[128+rbx*1+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[960+rsp] + vmovdqu64 zmm12,ZMMWORD[192+rbx*1+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + + vpternlogq zmm26,zmm4,zmm10,0x96 + vpternlogq zmm24,zmm0,zmm6,0x96 + vpternlogq zmm25,zmm3,zmm7,0x96 + vpternlogq zmm26,zmm5,zmm11,0x96 + + vpsrldq zmm0,zmm26,8 + vpslldq zmm3,zmm26,8 + vpxorq zmm24,zmm24,zmm0 + vpxorq zmm25,zmm25,zmm3 + vextracti64x4 ymm0,zmm24,1 + vpxorq ymm24,ymm24,ymm0 + vextracti32x4 xmm0,ymm24,1 + vpxorq xmm24,xmm24,xmm0 + vextracti64x4 ymm3,zmm25,1 + vpxorq ymm25,ymm25,ymm3 + vextracti32x4 xmm3,ymm25,1 + vpxorq xmm25,xmm25,xmm3 + vmovdqa64 xmm4,XMMWORD[POLY2] + + + vpclmulqdq xmm0,xmm4,xmm25,0x01 + vpslldq xmm0,xmm0,8 + vpxorq xmm0,xmm25,xmm0 + + + vpclmulqdq xmm3,xmm4,xmm0,0x00 + vpsrldq xmm3,xmm3,4 + vpclmulqdq xmm14,xmm4,xmm0,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm3,xmm24,0x96 + +$L$_last_blocks_done_609: + vpshufb xmm2,xmm2,xmm29 + jmp NEAR $L$_ghash_done_497 + +$L$_message_below_equal_16_blocks_497: + + + mov r12d,r13d + add r12d,15 + shr r12d,4 + cmp r12,8 + je NEAR $L$_small_initial_num_blocks_is_8_642 + jl NEAR $L$_small_initial_num_blocks_is_7_1_642 + + + cmp r12,12 + je NEAR $L$_small_initial_num_blocks_is_12_642 + jl NEAR $L$_small_initial_num_blocks_is_11_9_642 + + + cmp r12,16 + je NEAR $L$_small_initial_num_blocks_is_16_642 + cmp r12,15 + je NEAR $L$_small_initial_num_blocks_is_15_642 + cmp r12,14 + je NEAR $L$_small_initial_num_blocks_is_14_642 + jmp NEAR $L$_small_initial_num_blocks_is_13_642 + +$L$_small_initial_num_blocks_is_11_9_642: + + cmp r12,11 + je NEAR $L$_small_initial_num_blocks_is_11_642 + cmp r12,10 + je NEAR $L$_small_initial_num_blocks_is_10_642 + jmp NEAR $L$_small_initial_num_blocks_is_9_642 + +$L$_small_initial_num_blocks_is_7_1_642: + cmp r12,4 + je NEAR $L$_small_initial_num_blocks_is_4_642 + jl NEAR $L$_small_initial_num_blocks_is_3_1_642 + + cmp r12,7 + je NEAR $L$_small_initial_num_blocks_is_7_642 + cmp r12,6 + je NEAR $L$_small_initial_num_blocks_is_6_642 + jmp NEAR $L$_small_initial_num_blocks_is_5_642 + +$L$_small_initial_num_blocks_is_3_1_642: + + cmp r12,3 + je NEAR $L$_small_initial_num_blocks_is_3_642 + cmp r12,2 + je NEAR $L$_small_initial_num_blocks_is_2_642 + + + + + +$L$_small_initial_num_blocks_is_1_642: + vmovdqa64 xmm29,XMMWORD[SHUF_MASK] + vpaddd xmm0,xmm2,XMMWORD[ONE] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm0,0 + vpshufb xmm0,xmm0,xmm29 + vmovdqu8 xmm6{k1}{z},[r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq xmm0,xmm0,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc xmm0,xmm0,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc xmm0,xmm0,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc xmm0,xmm0,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc xmm0,xmm0,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc xmm0,xmm0,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc xmm0,xmm0,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc xmm0,xmm0,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc xmm0,xmm0,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc xmm0,xmm0,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenclast xmm0,xmm0,xmm15 + vpxorq xmm0,xmm0,xmm6 + vextracti32x4 xmm12,zmm0,0 + mov r10,QWORD[120+rbp] + vmovdqu8 XMMWORD[r11*1+r10]{k1},xmm0 + vmovdqu8 zmm0{k1}{z},zmm0 + vpshufb xmm6,xmm6,xmm29 + vextracti32x4 xmm13,zmm6,0 + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_643 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 xmm20,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm6,xmm20,0x01 + vpclmulqdq xmm5,xmm6,xmm20,0x10 + vpclmulqdq xmm0,xmm6,xmm20,0x11 + vpclmulqdq xmm3,xmm6,xmm20,0x00 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_643 +$L$_small_initial_partial_block_643: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + + + + + + + + + + + + vpxorq xmm14,xmm14,xmm13 + + jmp NEAR $L$_after_reduction_643 +$L$_small_initial_compute_done_643: +$L$_after_reduction_643: + jmp NEAR $L$_small_initial_blocks_encrypted_642 +$L$_small_initial_num_blocks_is_2_642: + vmovdqa64 ymm29,YMMWORD[SHUF_MASK] + vshufi64x2 ymm0,ymm2,ymm2,0 + vpaddd ymm0,ymm0,YMMWORD[ddq_add_1234] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm0,1 + vpshufb ymm0,ymm0,ymm29 + vmovdqu8 ymm6{k1}{z},[r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq ymm0,ymm0,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc ymm0,ymm0,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc ymm0,ymm0,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc ymm0,ymm0,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc ymm0,ymm0,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc ymm0,ymm0,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc ymm0,ymm0,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc ymm0,ymm0,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc ymm0,ymm0,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc ymm0,ymm0,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenclast ymm0,ymm0,ymm15 + vpxorq ymm0,ymm0,ymm6 + vextracti32x4 xmm12,zmm0,1 + mov r10,QWORD[120+rbp] + vmovdqu8 YMMWORD[r11*1+r10]{k1},ymm0 + vmovdqu8 zmm0{k1}{z},zmm0 + vpshufb ymm6,ymm6,ymm29 + vextracti32x4 xmm13,zmm6,1 + sub r13,16 * (2 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_644 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 ymm20,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm6,ymm20,0x01 + vpclmulqdq ymm5,ymm6,ymm20,0x10 + vpclmulqdq ymm0,ymm6,ymm20,0x11 + vpclmulqdq ymm3,ymm6,ymm20,0x00 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_644 +$L$_small_initial_partial_block_644: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 xmm20,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm6,xmm20,0x01 + vpclmulqdq xmm5,xmm6,xmm20,0x10 + vpclmulqdq xmm0,xmm6,xmm20,0x11 + vpclmulqdq xmm3,xmm6,xmm20,0x00 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_644: + + or r13,r13 + je NEAR $L$_after_reduction_644 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_644: + jmp NEAR $L$_small_initial_blocks_encrypted_642 +$L$_small_initial_num_blocks_is_3_642: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm0,2 + vpshufb zmm0,zmm0,zmm29 + vmovdqu8 zmm6{k1}{z},[r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenclast zmm0,zmm0,zmm15 + vpxorq zmm0,zmm0,zmm6 + vextracti32x4 xmm12,zmm0,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10]{k1},zmm0 + vmovdqu8 zmm0{k1}{z},zmm0 + vpshufb zmm6,zmm6,zmm29 + vextracti32x4 xmm13,zmm6,2 + sub r13,16 * (3 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_645 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 ymm20,YMMWORD[304+rdx] + vinserti64x2 zmm20,zmm20,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_645 +$L$_small_initial_partial_block_645: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 ymm20,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm6,ymm20,0x01 + vpclmulqdq ymm5,ymm6,ymm20,0x10 + vpclmulqdq ymm0,ymm6,ymm20,0x11 + vpclmulqdq ymm3,ymm6,ymm20,0x00 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_645: + + or r13,r13 + je NEAR $L$_after_reduction_645 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_645: + jmp NEAR $L$_small_initial_blocks_encrypted_642 +$L$_small_initial_num_blocks_is_4_642: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm0,3 + vpshufb zmm0,zmm0,zmm29 + vmovdqu8 zmm6{k1}{z},[r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenclast zmm0,zmm0,zmm15 + vpxorq zmm0,zmm0,zmm6 + vextracti32x4 xmm12,zmm0,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10]{k1},zmm0 + vmovdqu8 zmm0{k1}{z},zmm0 + vpshufb zmm6,zmm6,zmm29 + vextracti32x4 xmm13,zmm6,3 + sub r13,16 * (4 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_646 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[288+rdx] + vpclmulqdq zmm15,zmm6,zmm20,0x11 + vpclmulqdq zmm16,zmm6,zmm20,0x00 + vpclmulqdq zmm17,zmm6,zmm20,0x01 + vpclmulqdq zmm19,zmm6,zmm20,0x10 + + vpxorq zmm17,zmm17,zmm19 + vpsrldq zmm4,zmm17,8 + vpslldq zmm5,zmm17,8 + vpxorq zmm0,zmm15,zmm4 + vpxorq zmm3,zmm16,zmm5 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_646 +$L$_small_initial_partial_block_646: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 ymm20,YMMWORD[304+rdx] + vinserti64x2 zmm20,zmm20,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_646: + + or r13,r13 + je NEAR $L$_after_reduction_646 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_646: + jmp NEAR $L$_small_initial_blocks_encrypted_642 +$L$_small_initial_num_blocks_is_5_642: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm2,ZMMWORD[ddq_add_5678] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + sub r15,64 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm3,0 + vpshufb zmm0,zmm0,zmm29 + vpshufb xmm3,xmm3,xmm29 + vmovdqu8 zmm6,ZMMWORD[r11*1+r9] + vmovdqu8 xmm7{k1}{z},[64+r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vpxorq xmm3,xmm3,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc xmm3,xmm3,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc xmm3,xmm3,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc xmm3,xmm3,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc xmm3,xmm3,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc xmm3,xmm3,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc xmm3,xmm3,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc xmm3,xmm3,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc xmm3,xmm3,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc xmm3,xmm3,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenclast zmm0,zmm0,zmm15 + vaesenclast xmm3,xmm3,xmm15 + vpxorq zmm0,zmm0,zmm6 + vpxorq xmm3,xmm3,xmm7 + vextracti32x4 xmm12,zmm3,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 XMMWORD[64+r11*1+r10]{k1},xmm3 + vmovdqu8 zmm3{k1}{z},zmm3 + vpshufb zmm6,zmm6,zmm29 + vpshufb xmm7,xmm7,xmm29 + vextracti32x4 xmm13,zmm7,0 + sub r13,16 * (5 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_647 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[272+rdx] + vpclmulqdq zmm15,zmm6,zmm20,0x11 + vpclmulqdq zmm16,zmm6,zmm20,0x00 + vpclmulqdq zmm17,zmm6,zmm20,0x01 + vpclmulqdq zmm19,zmm6,zmm20,0x10 + vmovdqu64 xmm20,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm7,xmm20,0x01 + vpclmulqdq xmm5,xmm7,xmm20,0x10 + vpclmulqdq xmm0,xmm7,xmm20,0x11 + vpclmulqdq xmm3,xmm7,xmm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_647 +$L$_small_initial_partial_block_647: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[288+rdx] + vpclmulqdq zmm15,zmm6,zmm20,0x11 + vpclmulqdq zmm16,zmm6,zmm20,0x00 + vpclmulqdq zmm17,zmm6,zmm20,0x01 + vpclmulqdq zmm19,zmm6,zmm20,0x10 + + vpxorq zmm17,zmm17,zmm19 + vpsrldq zmm4,zmm17,8 + vpslldq zmm5,zmm17,8 + vpxorq zmm0,zmm15,zmm4 + vpxorq zmm3,zmm16,zmm5 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_647: + + or r13,r13 + je NEAR $L$_after_reduction_647 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_647: + jmp NEAR $L$_small_initial_blocks_encrypted_642 +$L$_small_initial_num_blocks_is_6_642: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm2,ZMMWORD[ddq_add_5678] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + sub r15,64 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm3,1 + vpshufb zmm0,zmm0,zmm29 + vpshufb ymm3,ymm3,ymm29 + vmovdqu8 zmm6,ZMMWORD[r11*1+r9] + vmovdqu8 ymm7{k1}{z},[64+r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vpxorq ymm3,ymm3,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc ymm3,ymm3,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc ymm3,ymm3,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc ymm3,ymm3,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc ymm3,ymm3,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc ymm3,ymm3,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc ymm3,ymm3,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc ymm3,ymm3,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc ymm3,ymm3,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc ymm3,ymm3,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenclast zmm0,zmm0,zmm15 + vaesenclast ymm3,ymm3,ymm15 + vpxorq zmm0,zmm0,zmm6 + vpxorq ymm3,ymm3,ymm7 + vextracti32x4 xmm12,zmm3,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 YMMWORD[64+r11*1+r10]{k1},ymm3 + vmovdqu8 zmm3{k1}{z},zmm3 + vpshufb zmm6,zmm6,zmm29 + vpshufb ymm7,ymm7,ymm29 + vextracti32x4 xmm13,zmm7,1 + sub r13,16 * (6 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_648 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[256+rdx] + vpclmulqdq zmm15,zmm6,zmm20,0x11 + vpclmulqdq zmm16,zmm6,zmm20,0x00 + vpclmulqdq zmm17,zmm6,zmm20,0x01 + vpclmulqdq zmm19,zmm6,zmm20,0x10 + vmovdqu64 ymm20,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm7,ymm20,0x01 + vpclmulqdq ymm5,ymm7,ymm20,0x10 + vpclmulqdq ymm0,ymm7,ymm20,0x11 + vpclmulqdq ymm3,ymm7,ymm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_648 +$L$_small_initial_partial_block_648: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[272+rdx] + vpclmulqdq zmm15,zmm6,zmm20,0x11 + vpclmulqdq zmm16,zmm6,zmm20,0x00 + vpclmulqdq zmm17,zmm6,zmm20,0x01 + vpclmulqdq zmm19,zmm6,zmm20,0x10 + vmovdqu64 xmm20,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm7,xmm20,0x01 + vpclmulqdq xmm5,xmm7,xmm20,0x10 + vpclmulqdq xmm0,xmm7,xmm20,0x11 + vpclmulqdq xmm3,xmm7,xmm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_648: + + or r13,r13 + je NEAR $L$_after_reduction_648 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_648: + jmp NEAR $L$_small_initial_blocks_encrypted_642 +$L$_small_initial_num_blocks_is_7_642: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm2,ZMMWORD[ddq_add_5678] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + sub r15,64 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm3,2 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vmovdqu8 zmm6,ZMMWORD[r11*1+r9] + vmovdqu8 zmm7{k1}{z},[64+r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenclast zmm0,zmm0,zmm15 + vaesenclast zmm3,zmm3,zmm15 + vpxorq zmm0,zmm0,zmm6 + vpxorq zmm3,zmm3,zmm7 + vextracti32x4 xmm12,zmm3,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10]{k1},zmm3 + vmovdqu8 zmm3{k1}{z},zmm3 + vpshufb zmm6,zmm6,zmm29 + vpshufb zmm7,zmm7,zmm29 + vextracti32x4 xmm13,zmm7,2 + sub r13,16 * (7 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_649 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[240+rdx] + vpclmulqdq zmm15,zmm6,zmm20,0x11 + vpclmulqdq zmm16,zmm6,zmm20,0x00 + vpclmulqdq zmm17,zmm6,zmm20,0x01 + vpclmulqdq zmm19,zmm6,zmm20,0x10 + vmovdqu64 ymm20,YMMWORD[304+rdx] + vinserti64x2 zmm20,zmm20,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm7,zmm20,0x01 + vpclmulqdq zmm5,zmm7,zmm20,0x10 + vpclmulqdq zmm0,zmm7,zmm20,0x11 + vpclmulqdq zmm3,zmm7,zmm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_649 +$L$_small_initial_partial_block_649: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[256+rdx] + vpclmulqdq zmm15,zmm6,zmm20,0x11 + vpclmulqdq zmm16,zmm6,zmm20,0x00 + vpclmulqdq zmm17,zmm6,zmm20,0x01 + vpclmulqdq zmm19,zmm6,zmm20,0x10 + vmovdqu64 ymm20,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm7,ymm20,0x01 + vpclmulqdq ymm5,ymm7,ymm20,0x10 + vpclmulqdq ymm0,ymm7,ymm20,0x11 + vpclmulqdq ymm3,ymm7,ymm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_649: + + or r13,r13 + je NEAR $L$_after_reduction_649 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_649: + jmp NEAR $L$_small_initial_blocks_encrypted_642 +$L$_small_initial_num_blocks_is_8_642: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm2,ZMMWORD[ddq_add_5678] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + sub r15,64 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm3,3 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vmovdqu8 zmm6,ZMMWORD[r11*1+r9] + vmovdqu8 zmm7{k1}{z},[64+r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenclast zmm0,zmm0,zmm15 + vaesenclast zmm3,zmm3,zmm15 + vpxorq zmm0,zmm0,zmm6 + vpxorq zmm3,zmm3,zmm7 + vextracti32x4 xmm12,zmm3,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10]{k1},zmm3 + vmovdqu8 zmm3{k1}{z},zmm3 + vpshufb zmm6,zmm6,zmm29 + vpshufb zmm7,zmm7,zmm29 + vextracti32x4 xmm13,zmm7,3 + sub r13,16 * (8 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_650 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[224+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[288+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vpxorq zmm15,zmm0,zmm15 + vpxorq zmm16,zmm3,zmm16 + vpxorq zmm17,zmm4,zmm17 + vpxorq zmm19,zmm5,zmm19 + + vpxorq zmm17,zmm17,zmm19 + vpsrldq zmm4,zmm17,8 + vpslldq zmm5,zmm17,8 + vpxorq zmm0,zmm15,zmm4 + vpxorq zmm3,zmm16,zmm5 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_650 +$L$_small_initial_partial_block_650: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[240+rdx] + vpclmulqdq zmm15,zmm6,zmm20,0x11 + vpclmulqdq zmm16,zmm6,zmm20,0x00 + vpclmulqdq zmm17,zmm6,zmm20,0x01 + vpclmulqdq zmm19,zmm6,zmm20,0x10 + vmovdqu64 ymm20,YMMWORD[304+rdx] + vinserti64x2 zmm20,zmm20,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm7,zmm20,0x01 + vpclmulqdq zmm5,zmm7,zmm20,0x10 + vpclmulqdq zmm0,zmm7,zmm20,0x11 + vpclmulqdq zmm3,zmm7,zmm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_650: + + or r13,r13 + je NEAR $L$_after_reduction_650 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_650: + jmp NEAR $L$_small_initial_blocks_encrypted_642 +$L$_small_initial_num_blocks_is_9_642: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm2,ZMMWORD[ddq_add_5678] + vpaddd zmm4,zmm0,ZMMWORD[ddq_add_8888] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + sub r15,128 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm4,0 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb xmm4,xmm4,xmm29 + vmovdqu8 zmm6,ZMMWORD[r11*1+r9] + vmovdqu8 zmm7,ZMMWORD[64+r11*1+r9] + vmovdqu8 xmm10{k1}{z},[128+r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm15 + vpxorq xmm4,xmm4,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc xmm4,xmm4,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc xmm4,xmm4,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc xmm4,xmm4,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc xmm4,xmm4,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc xmm4,xmm4,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc xmm4,xmm4,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc xmm4,xmm4,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc xmm4,xmm4,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc xmm4,xmm4,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenclast zmm0,zmm0,zmm15 + vaesenclast zmm3,zmm3,zmm15 + vaesenclast xmm4,xmm4,xmm15 + vpxorq zmm0,zmm0,zmm6 + vpxorq zmm3,zmm3,zmm7 + vpxorq xmm4,xmm4,xmm10 + vextracti32x4 xmm12,zmm4,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 XMMWORD[128+r11*1+r10]{k1},xmm4 + vmovdqu8 zmm4{k1}{z},zmm4 + vpshufb zmm6,zmm6,zmm29 + vpshufb zmm7,zmm7,zmm29 + vpshufb xmm10,xmm10,xmm29 + vextracti32x4 xmm13,zmm10,0 + sub r13,16 * (9 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_651 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[208+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[272+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vpxorq zmm15,zmm0,zmm15 + vpxorq zmm16,zmm3,zmm16 + vpxorq zmm17,zmm4,zmm17 + vpxorq zmm19,zmm5,zmm19 + vmovdqu64 xmm20,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm10,xmm20,0x01 + vpclmulqdq xmm5,xmm10,xmm20,0x10 + vpclmulqdq xmm0,xmm10,xmm20,0x11 + vpclmulqdq xmm3,xmm10,xmm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_651 +$L$_small_initial_partial_block_651: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[224+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[288+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vpxorq zmm15,zmm0,zmm15 + vpxorq zmm16,zmm3,zmm16 + vpxorq zmm17,zmm4,zmm17 + vpxorq zmm19,zmm5,zmm19 + + vpxorq zmm17,zmm17,zmm19 + vpsrldq zmm4,zmm17,8 + vpslldq zmm5,zmm17,8 + vpxorq zmm0,zmm15,zmm4 + vpxorq zmm3,zmm16,zmm5 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_651: + + or r13,r13 + je NEAR $L$_after_reduction_651 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_651: + jmp NEAR $L$_small_initial_blocks_encrypted_642 +$L$_small_initial_num_blocks_is_10_642: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm2,ZMMWORD[ddq_add_5678] + vpaddd zmm4,zmm0,ZMMWORD[ddq_add_8888] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + sub r15,128 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm4,1 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb ymm4,ymm4,ymm29 + vmovdqu8 zmm6,ZMMWORD[r11*1+r9] + vmovdqu8 zmm7,ZMMWORD[64+r11*1+r9] + vmovdqu8 ymm10{k1}{z},[128+r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm15 + vpxorq ymm4,ymm4,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc ymm4,ymm4,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc ymm4,ymm4,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc ymm4,ymm4,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc ymm4,ymm4,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc ymm4,ymm4,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc ymm4,ymm4,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc ymm4,ymm4,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc ymm4,ymm4,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc ymm4,ymm4,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenclast zmm0,zmm0,zmm15 + vaesenclast zmm3,zmm3,zmm15 + vaesenclast ymm4,ymm4,ymm15 + vpxorq zmm0,zmm0,zmm6 + vpxorq zmm3,zmm3,zmm7 + vpxorq ymm4,ymm4,ymm10 + vextracti32x4 xmm12,zmm4,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 YMMWORD[128+r11*1+r10]{k1},ymm4 + vmovdqu8 zmm4{k1}{z},zmm4 + vpshufb zmm6,zmm6,zmm29 + vpshufb zmm7,zmm7,zmm29 + vpshufb ymm10,ymm10,ymm29 + vextracti32x4 xmm13,zmm10,1 + sub r13,16 * (10 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_652 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[192+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[256+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vpxorq zmm15,zmm0,zmm15 + vpxorq zmm16,zmm3,zmm16 + vpxorq zmm17,zmm4,zmm17 + vpxorq zmm19,zmm5,zmm19 + vmovdqu64 ymm20,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm10,ymm20,0x01 + vpclmulqdq ymm5,ymm10,ymm20,0x10 + vpclmulqdq ymm0,ymm10,ymm20,0x11 + vpclmulqdq ymm3,ymm10,ymm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_652 +$L$_small_initial_partial_block_652: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[208+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[272+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vpxorq zmm15,zmm0,zmm15 + vpxorq zmm16,zmm3,zmm16 + vpxorq zmm17,zmm4,zmm17 + vpxorq zmm19,zmm5,zmm19 + vmovdqu64 xmm20,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm10,xmm20,0x01 + vpclmulqdq xmm5,xmm10,xmm20,0x10 + vpclmulqdq xmm0,xmm10,xmm20,0x11 + vpclmulqdq xmm3,xmm10,xmm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_652: + + or r13,r13 + je NEAR $L$_after_reduction_652 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_652: + jmp NEAR $L$_small_initial_blocks_encrypted_642 +$L$_small_initial_num_blocks_is_11_642: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm2,ZMMWORD[ddq_add_5678] + vpaddd zmm4,zmm0,ZMMWORD[ddq_add_8888] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + sub r15,128 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm4,2 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vmovdqu8 zmm6,ZMMWORD[r11*1+r9] + vmovdqu8 zmm7,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm10{k1}{z},[128+r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm15 + vpxorq zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenclast zmm0,zmm0,zmm15 + vaesenclast zmm3,zmm3,zmm15 + vaesenclast zmm4,zmm4,zmm15 + vpxorq zmm0,zmm0,zmm6 + vpxorq zmm3,zmm3,zmm7 + vpxorq zmm4,zmm4,zmm10 + vextracti32x4 xmm12,zmm4,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10]{k1},zmm4 + vmovdqu8 zmm4{k1}{z},zmm4 + vpshufb zmm6,zmm6,zmm29 + vpshufb zmm7,zmm7,zmm29 + vpshufb zmm10,zmm10,zmm29 + vextracti32x4 xmm13,zmm10,2 + sub r13,16 * (11 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_653 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[176+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[240+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vpxorq zmm15,zmm0,zmm15 + vpxorq zmm16,zmm3,zmm16 + vpxorq zmm17,zmm4,zmm17 + vpxorq zmm19,zmm5,zmm19 + vmovdqu64 ymm20,YMMWORD[304+rdx] + vinserti64x2 zmm20,zmm20,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm10,zmm20,0x01 + vpclmulqdq zmm5,zmm10,zmm20,0x10 + vpclmulqdq zmm0,zmm10,zmm20,0x11 + vpclmulqdq zmm3,zmm10,zmm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_653 +$L$_small_initial_partial_block_653: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[192+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[256+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vpxorq zmm15,zmm0,zmm15 + vpxorq zmm16,zmm3,zmm16 + vpxorq zmm17,zmm4,zmm17 + vpxorq zmm19,zmm5,zmm19 + vmovdqu64 ymm20,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm10,ymm20,0x01 + vpclmulqdq ymm5,ymm10,ymm20,0x10 + vpclmulqdq ymm0,ymm10,ymm20,0x11 + vpclmulqdq ymm3,ymm10,ymm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_653: + + or r13,r13 + je NEAR $L$_after_reduction_653 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_653: + jmp NEAR $L$_small_initial_blocks_encrypted_642 +$L$_small_initial_num_blocks_is_12_642: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm2,ZMMWORD[ddq_add_5678] + vpaddd zmm4,zmm0,ZMMWORD[ddq_add_8888] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + sub r15,128 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm4,3 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vmovdqu8 zmm6,ZMMWORD[r11*1+r9] + vmovdqu8 zmm7,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm10{k1}{z},[128+r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm15 + vpxorq zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenclast zmm0,zmm0,zmm15 + vaesenclast zmm3,zmm3,zmm15 + vaesenclast zmm4,zmm4,zmm15 + vpxorq zmm0,zmm0,zmm6 + vpxorq zmm3,zmm3,zmm7 + vpxorq zmm4,zmm4,zmm10 + vextracti32x4 xmm12,zmm4,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10]{k1},zmm4 + vmovdqu8 zmm4{k1}{z},zmm4 + vpshufb zmm6,zmm6,zmm29 + vpshufb zmm7,zmm7,zmm29 + vpshufb zmm10,zmm10,zmm29 + vextracti32x4 xmm13,zmm10,3 + sub r13,16 * (12 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_654 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[160+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[224+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[288+rdx] + vpclmulqdq zmm6,zmm10,zmm20,0x11 + vpclmulqdq zmm7,zmm10,zmm20,0x00 + vpternlogq zmm15,zmm6,zmm0,0x96 + vpternlogq zmm16,zmm7,zmm3,0x96 + vpclmulqdq zmm6,zmm10,zmm20,0x01 + vpclmulqdq zmm7,zmm10,zmm20,0x10 + vpternlogq zmm17,zmm6,zmm4,0x96 + vpternlogq zmm19,zmm7,zmm5,0x96 + + vpxorq zmm17,zmm17,zmm19 + vpsrldq zmm4,zmm17,8 + vpslldq zmm5,zmm17,8 + vpxorq zmm0,zmm15,zmm4 + vpxorq zmm3,zmm16,zmm5 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_654 +$L$_small_initial_partial_block_654: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[176+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[240+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vpxorq zmm15,zmm0,zmm15 + vpxorq zmm16,zmm3,zmm16 + vpxorq zmm17,zmm4,zmm17 + vpxorq zmm19,zmm5,zmm19 + vmovdqu64 ymm20,YMMWORD[304+rdx] + vinserti64x2 zmm20,zmm20,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm10,zmm20,0x01 + vpclmulqdq zmm5,zmm10,zmm20,0x10 + vpclmulqdq zmm0,zmm10,zmm20,0x11 + vpclmulqdq zmm3,zmm10,zmm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_654: + + or r13,r13 + je NEAR $L$_after_reduction_654 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_654: + jmp NEAR $L$_small_initial_blocks_encrypted_642 +$L$_small_initial_num_blocks_is_13_642: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm2,ZMMWORD[ddq_add_5678] + vpaddd zmm4,zmm0,ZMMWORD[ddq_add_8888] + vpaddd zmm5,zmm3,ZMMWORD[ddq_add_8888] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + sub r15,192 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm5,0 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb xmm5,xmm5,xmm29 + vmovdqu8 zmm6,ZMMWORD[r11*1+r9] + vmovdqu8 zmm7,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm10,ZMMWORD[128+r11*1+r9] + vmovdqu8 xmm11{k1}{z},[192+r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm15 + vpxorq zmm4,zmm4,zmm15 + vpxorq xmm5,xmm5,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc xmm5,xmm5,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc xmm5,xmm5,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc xmm5,xmm5,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc xmm5,xmm5,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc xmm5,xmm5,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc xmm5,xmm5,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc xmm5,xmm5,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc xmm5,xmm5,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc xmm5,xmm5,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenclast zmm0,zmm0,zmm15 + vaesenclast zmm3,zmm3,zmm15 + vaesenclast zmm4,zmm4,zmm15 + vaesenclast xmm5,xmm5,xmm15 + vpxorq zmm0,zmm0,zmm6 + vpxorq zmm3,zmm3,zmm7 + vpxorq zmm4,zmm4,zmm10 + vpxorq xmm5,xmm5,xmm11 + vextracti32x4 xmm12,zmm5,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 XMMWORD[192+r11*1+r10]{k1},xmm5 + vmovdqu8 zmm5{k1}{z},zmm5 + vpshufb zmm6,zmm6,zmm29 + vpshufb zmm7,zmm7,zmm29 + vpshufb zmm10,zmm10,zmm29 + vpshufb xmm11,xmm11,xmm29 + vextracti32x4 xmm13,zmm11,0 + sub r13,16 * (13 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_655 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[144+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[208+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[272+rdx] + vpclmulqdq zmm6,zmm10,zmm20,0x11 + vpclmulqdq zmm7,zmm10,zmm20,0x00 + vpternlogq zmm15,zmm6,zmm0,0x96 + vpternlogq zmm16,zmm7,zmm3,0x96 + vpclmulqdq zmm6,zmm10,zmm20,0x01 + vpclmulqdq zmm7,zmm10,zmm20,0x10 + vpternlogq zmm17,zmm6,zmm4,0x96 + vpternlogq zmm19,zmm7,zmm5,0x96 + vmovdqu64 xmm20,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm11,xmm20,0x01 + vpclmulqdq xmm5,xmm11,xmm20,0x10 + vpclmulqdq xmm0,xmm11,xmm20,0x11 + vpclmulqdq xmm3,xmm11,xmm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_655 +$L$_small_initial_partial_block_655: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[160+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[224+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[288+rdx] + vpclmulqdq zmm6,zmm10,zmm20,0x11 + vpclmulqdq zmm7,zmm10,zmm20,0x00 + vpternlogq zmm15,zmm6,zmm0,0x96 + vpternlogq zmm16,zmm7,zmm3,0x96 + vpclmulqdq zmm6,zmm10,zmm20,0x01 + vpclmulqdq zmm7,zmm10,zmm20,0x10 + vpternlogq zmm17,zmm6,zmm4,0x96 + vpternlogq zmm19,zmm7,zmm5,0x96 + + vpxorq zmm17,zmm17,zmm19 + vpsrldq zmm4,zmm17,8 + vpslldq zmm5,zmm17,8 + vpxorq zmm0,zmm15,zmm4 + vpxorq zmm3,zmm16,zmm5 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_655: + + or r13,r13 + je NEAR $L$_after_reduction_655 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_655: + jmp NEAR $L$_small_initial_blocks_encrypted_642 +$L$_small_initial_num_blocks_is_14_642: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm2,ZMMWORD[ddq_add_5678] + vpaddd zmm4,zmm0,ZMMWORD[ddq_add_8888] + vpaddd zmm5,zmm3,ZMMWORD[ddq_add_8888] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + sub r15,192 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm5,1 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb ymm5,ymm5,ymm29 + vmovdqu8 zmm6,ZMMWORD[r11*1+r9] + vmovdqu8 zmm7,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm10,ZMMWORD[128+r11*1+r9] + vmovdqu8 ymm11{k1}{z},[192+r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm15 + vpxorq zmm4,zmm4,zmm15 + vpxorq ymm5,ymm5,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc ymm5,ymm5,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc ymm5,ymm5,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc ymm5,ymm5,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc ymm5,ymm5,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc ymm5,ymm5,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc ymm5,ymm5,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc ymm5,ymm5,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc ymm5,ymm5,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc ymm5,ymm5,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenclast zmm0,zmm0,zmm15 + vaesenclast zmm3,zmm3,zmm15 + vaesenclast zmm4,zmm4,zmm15 + vaesenclast ymm5,ymm5,ymm15 + vpxorq zmm0,zmm0,zmm6 + vpxorq zmm3,zmm3,zmm7 + vpxorq zmm4,zmm4,zmm10 + vpxorq ymm5,ymm5,ymm11 + vextracti32x4 xmm12,zmm5,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 YMMWORD[192+r11*1+r10]{k1},ymm5 + vmovdqu8 zmm5{k1}{z},zmm5 + vpshufb zmm6,zmm6,zmm29 + vpshufb zmm7,zmm7,zmm29 + vpshufb zmm10,zmm10,zmm29 + vpshufb ymm11,ymm11,ymm29 + vextracti32x4 xmm13,zmm11,1 + sub r13,16 * (14 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_656 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[128+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[192+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[256+rdx] + vpclmulqdq zmm6,zmm10,zmm20,0x11 + vpclmulqdq zmm7,zmm10,zmm20,0x00 + vpternlogq zmm15,zmm6,zmm0,0x96 + vpternlogq zmm16,zmm7,zmm3,0x96 + vpclmulqdq zmm6,zmm10,zmm20,0x01 + vpclmulqdq zmm7,zmm10,zmm20,0x10 + vpternlogq zmm17,zmm6,zmm4,0x96 + vpternlogq zmm19,zmm7,zmm5,0x96 + vmovdqu64 ymm20,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm11,ymm20,0x01 + vpclmulqdq ymm5,ymm11,ymm20,0x10 + vpclmulqdq ymm0,ymm11,ymm20,0x11 + vpclmulqdq ymm3,ymm11,ymm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_656 +$L$_small_initial_partial_block_656: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[144+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[208+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[272+rdx] + vpclmulqdq zmm6,zmm10,zmm20,0x11 + vpclmulqdq zmm7,zmm10,zmm20,0x00 + vpternlogq zmm15,zmm6,zmm0,0x96 + vpternlogq zmm16,zmm7,zmm3,0x96 + vpclmulqdq zmm6,zmm10,zmm20,0x01 + vpclmulqdq zmm7,zmm10,zmm20,0x10 + vpternlogq zmm17,zmm6,zmm4,0x96 + vpternlogq zmm19,zmm7,zmm5,0x96 + vmovdqu64 xmm20,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm11,xmm20,0x01 + vpclmulqdq xmm5,xmm11,xmm20,0x10 + vpclmulqdq xmm0,xmm11,xmm20,0x11 + vpclmulqdq xmm3,xmm11,xmm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_656: + + or r13,r13 + je NEAR $L$_after_reduction_656 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_656: + jmp NEAR $L$_small_initial_blocks_encrypted_642 +$L$_small_initial_num_blocks_is_15_642: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm2,ZMMWORD[ddq_add_5678] + vpaddd zmm4,zmm0,ZMMWORD[ddq_add_8888] + vpaddd zmm5,zmm3,ZMMWORD[ddq_add_8888] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + sub r15,192 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm5,2 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 + vmovdqu8 zmm6,ZMMWORD[r11*1+r9] + vmovdqu8 zmm7,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm10,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm11{k1}{z},[192+r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm15 + vpxorq zmm4,zmm4,zmm15 + vpxorq zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenclast zmm0,zmm0,zmm15 + vaesenclast zmm3,zmm3,zmm15 + vaesenclast zmm4,zmm4,zmm15 + vaesenclast zmm5,zmm5,zmm15 + vpxorq zmm0,zmm0,zmm6 + vpxorq zmm3,zmm3,zmm7 + vpxorq zmm4,zmm4,zmm10 + vpxorq zmm5,zmm5,zmm11 + vextracti32x4 xmm12,zmm5,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[192+r11*1+r10]{k1},zmm5 + vmovdqu8 zmm5{k1}{z},zmm5 + vpshufb zmm6,zmm6,zmm29 + vpshufb zmm7,zmm7,zmm29 + vpshufb zmm10,zmm10,zmm29 + vpshufb zmm11,zmm11,zmm29 + vextracti32x4 xmm13,zmm11,2 + sub r13,16 * (15 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_657 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[112+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[176+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[240+rdx] + vpclmulqdq zmm6,zmm10,zmm20,0x11 + vpclmulqdq zmm7,zmm10,zmm20,0x00 + vpternlogq zmm15,zmm6,zmm0,0x96 + vpternlogq zmm16,zmm7,zmm3,0x96 + vpclmulqdq zmm6,zmm10,zmm20,0x01 + vpclmulqdq zmm7,zmm10,zmm20,0x10 + vpternlogq zmm17,zmm6,zmm4,0x96 + vpternlogq zmm19,zmm7,zmm5,0x96 + vmovdqu64 ymm20,YMMWORD[304+rdx] + vinserti64x2 zmm20,zmm20,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm11,zmm20,0x01 + vpclmulqdq zmm5,zmm11,zmm20,0x10 + vpclmulqdq zmm0,zmm11,zmm20,0x11 + vpclmulqdq zmm3,zmm11,zmm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_657 +$L$_small_initial_partial_block_657: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[128+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[192+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[256+rdx] + vpclmulqdq zmm6,zmm10,zmm20,0x11 + vpclmulqdq zmm7,zmm10,zmm20,0x00 + vpternlogq zmm15,zmm6,zmm0,0x96 + vpternlogq zmm16,zmm7,zmm3,0x96 + vpclmulqdq zmm6,zmm10,zmm20,0x01 + vpclmulqdq zmm7,zmm10,zmm20,0x10 + vpternlogq zmm17,zmm6,zmm4,0x96 + vpternlogq zmm19,zmm7,zmm5,0x96 + vmovdqu64 ymm20,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm11,ymm20,0x01 + vpclmulqdq ymm5,ymm11,ymm20,0x10 + vpclmulqdq ymm0,ymm11,ymm20,0x11 + vpclmulqdq ymm3,ymm11,ymm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_657: + + or r13,r13 + je NEAR $L$_after_reduction_657 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_657: + jmp NEAR $L$_small_initial_blocks_encrypted_642 +$L$_small_initial_num_blocks_is_16_642: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm2,ZMMWORD[ddq_add_5678] + vpaddd zmm4,zmm0,ZMMWORD[ddq_add_8888] + vpaddd zmm5,zmm3,ZMMWORD[ddq_add_8888] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + sub r15,192 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm5,3 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 + vmovdqu8 zmm6,ZMMWORD[r11*1+r9] + vmovdqu8 zmm7,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm10,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm11{k1}{z},[192+r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm15 + vpxorq zmm4,zmm4,zmm15 + vpxorq zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenclast zmm0,zmm0,zmm15 + vaesenclast zmm3,zmm3,zmm15 + vaesenclast zmm4,zmm4,zmm15 + vaesenclast zmm5,zmm5,zmm15 + vpxorq zmm0,zmm0,zmm6 + vpxorq zmm3,zmm3,zmm7 + vpxorq zmm4,zmm4,zmm10 + vpxorq zmm5,zmm5,zmm11 + vextracti32x4 xmm12,zmm5,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[192+r11*1+r10]{k1},zmm5 + vmovdqu8 zmm5{k1}{z},zmm5 + vpshufb zmm6,zmm6,zmm29 + vpshufb zmm7,zmm7,zmm29 + vpshufb zmm10,zmm10,zmm29 + vpshufb zmm11,zmm11,zmm29 + vextracti32x4 xmm13,zmm11,3 + sub r13,16 * (16 - 1) +$L$_small_initial_partial_block_658: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[112+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[176+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[240+rdx] + vpclmulqdq zmm6,zmm10,zmm20,0x11 + vpclmulqdq zmm7,zmm10,zmm20,0x00 + vpternlogq zmm15,zmm6,zmm0,0x96 + vpternlogq zmm16,zmm7,zmm3,0x96 + vpclmulqdq zmm6,zmm10,zmm20,0x01 + vpclmulqdq zmm7,zmm10,zmm20,0x10 + vpternlogq zmm17,zmm6,zmm4,0x96 + vpternlogq zmm19,zmm7,zmm5,0x96 + vmovdqu64 ymm20,YMMWORD[304+rdx] + vinserti64x2 zmm20,zmm20,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm11,zmm20,0x01 + vpclmulqdq zmm5,zmm11,zmm20,0x10 + vpclmulqdq zmm0,zmm11,zmm20,0x11 + vpclmulqdq zmm3,zmm11,zmm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_658: + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_658: +$L$_small_initial_blocks_encrypted_642: +$L$_ghash_done_497: + vmovdqu64 XMMWORD[rdx],xmm2 + vmovdqu64 XMMWORD[64+rdx],xmm14 +$L$_enc_dec_done_497: + jmp NEAR $L$exit_gcm_decrypt +ALIGN 32 +$L$aes_gcm_decrypt_192_avx512: + cmp QWORD[112+rbp],0 + je NEAR $L$_enc_dec_done_659 + xor r14,r14 + vmovdqu64 xmm14,XMMWORD[64+rdx] + + mov r11,QWORD[r8] + or r11,r11 + je NEAR $L$_partial_block_done_660 + mov r10d,16 + lea r12,[byte_len_to_mask_table] + cmp QWORD[112+rbp],r10 + cmovc r10,QWORD[112+rbp] + add r12,r10 + add r12,r10 + kmovw k1,[r12] + vmovdqu8 xmm0{k1}{z},[r9] + + vmovdqu64 xmm3,XMMWORD[16+rdx] + vmovdqu64 xmm4,XMMWORD[336+rdx] + + + + lea r12,[SHIFT_MASK] + add r12,r11 + vmovdqu64 xmm5,XMMWORD[r12] + vpshufb xmm3,xmm3,xmm5 + + vmovdqa64 xmm6,xmm0 + vpxorq xmm3,xmm3,xmm0 + + + mov r13,QWORD[112+rbp] + add r13,r11 + sub r13,16 + jge NEAR $L$_no_extra_mask_660 + sub r12,r13 +$L$_no_extra_mask_660: + + + + vmovdqu64 xmm0,XMMWORD[16+r12] + vpand xmm3,xmm3,xmm0 + vpand xmm6,xmm6,xmm0 + vpshufb xmm6,xmm6,XMMWORD[SHUF_MASK] + vpshufb xmm6,xmm6,xmm5 + vpxorq xmm14,xmm14,xmm6 + cmp r13,0 + jl NEAR $L$_partial_incomplete_660 + + vpclmulqdq xmm7,xmm14,xmm4,0x11 + vpclmulqdq xmm10,xmm14,xmm4,0x00 + vpclmulqdq xmm11,xmm14,xmm4,0x01 + vpclmulqdq xmm14,xmm14,xmm4,0x10 + vpxorq xmm14,xmm14,xmm11 + + vpsrldq xmm11,xmm14,8 + vpslldq xmm14,xmm14,8 + vpxorq xmm7,xmm7,xmm11 + vpxorq xmm14,xmm14,xmm10 + + + + vmovdqu64 xmm11,XMMWORD[POLY2] + + vpclmulqdq xmm10,xmm11,xmm14,0x01 + vpslldq xmm10,xmm10,8 + vpxorq xmm14,xmm14,xmm10 + + + + vpclmulqdq xmm10,xmm11,xmm14,0x00 + vpsrldq xmm10,xmm10,4 + vpclmulqdq xmm14,xmm11,xmm14,0x10 + vpslldq xmm14,xmm14,4 + + vpternlogq xmm14,xmm7,xmm10,0x96 + + mov QWORD[r8],0 + + mov r12,r11 + mov r11,16 + sub r11,r12 + jmp NEAR $L$_enc_dec_done_660 + +$L$_partial_incomplete_660: + mov r12,QWORD[112+rbp] + add QWORD[r8],r12 + mov r11,QWORD[112+rbp] + +$L$_enc_dec_done_660: + + + lea r12,[byte_len_to_mask_table] + kmovw k1,[r11*2+r12] + vmovdqu64 XMMWORD[64+rdx],xmm14 + mov r12,QWORD[120+rbp] + vmovdqu8 XMMWORD[r12]{k1},xmm3 +$L$_partial_block_done_660: + vmovdqu64 xmm2,XMMWORD[rdx] + mov r13,QWORD[112+rbp] + sub r13,r11 + je NEAR $L$_enc_dec_done_659 + cmp r13,256 + jbe NEAR $L$_message_below_equal_16_blocks_659 + + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vmovdqa64 zmm27,ZMMWORD[ddq_addbe_4444] + vmovdqa64 zmm28,ZMMWORD[ddq_addbe_1234] + + + + + + + vmovd r15d,xmm2 + and r15d,255 + + vshufi64x2 zmm2,zmm2,zmm2,0 + vpshufb zmm2,zmm2,zmm29 + + + + cmp r15b,240 + jae NEAR $L$_next_16_overflow_661 + vpaddd zmm7,zmm2,zmm28 + vpaddd zmm10,zmm7,zmm27 + vpaddd zmm11,zmm10,zmm27 + vpaddd zmm12,zmm11,zmm27 + jmp NEAR $L$_next_16_ok_661 +$L$_next_16_overflow_661: + vpshufb zmm2,zmm2,zmm29 + vmovdqa64 zmm12,ZMMWORD[ddq_add_4444] + vpaddd zmm7,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm10,zmm7,zmm12 + vpaddd zmm11,zmm10,zmm12 + vpaddd zmm12,zmm11,zmm12 + vpshufb zmm7,zmm7,zmm29 + vpshufb zmm10,zmm10,zmm29 + vpshufb zmm11,zmm11,zmm29 + vpshufb zmm12,zmm12,zmm29 +$L$_next_16_ok_661: + vshufi64x2 zmm2,zmm12,zmm12,255 + add r15b,16 + + vmovdqu8 zmm0,ZMMWORD[r11*1+r9] + vmovdqu8 zmm3,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm4,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm5,ZMMWORD[192+r11*1+r9] + + + vbroadcastf64x2 zmm6,ZMMWORD[rcx] + vpxorq zmm7,zmm7,zmm6 + vpxorq zmm10,zmm10,zmm6 + vpxorq zmm11,zmm11,zmm6 + vpxorq zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[16+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[32+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[48+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[64+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[80+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[96+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[112+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[128+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[144+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[160+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[176+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[192+rcx] + vaesenclast zmm7,zmm7,zmm6 + vaesenclast zmm10,zmm10,zmm6 + vaesenclast zmm11,zmm11,zmm6 + vaesenclast zmm12,zmm12,zmm6 + + + vpxorq zmm7,zmm7,zmm0 + vpxorq zmm10,zmm10,zmm3 + vpxorq zmm11,zmm11,zmm4 + vpxorq zmm12,zmm12,zmm5 + + + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm7 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm10 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm11 + vmovdqu8 ZMMWORD[192+r11*1+r10],zmm12 + + vpshufb zmm7,zmm0,zmm29 + vpshufb zmm10,zmm3,zmm29 + vpshufb zmm11,zmm4,zmm29 + vpshufb zmm12,zmm5,zmm29 + vmovdqa64 ZMMWORD[768+rsp],zmm7 + vmovdqa64 ZMMWORD[832+rsp],zmm10 + vmovdqa64 ZMMWORD[896+rsp],zmm11 + vmovdqa64 ZMMWORD[960+rsp],zmm12 + test r14,r14 + jnz NEAR $L$_skip_hkeys_precomputation_662 + + vmovdqu64 zmm0,ZMMWORD[288+rdx] + vmovdqu64 ZMMWORD[704+rsp],zmm0 + + vmovdqu64 zmm3,ZMMWORD[224+rdx] + vmovdqu64 ZMMWORD[640+rsp],zmm3 + + + vshufi64x2 zmm3,zmm3,zmm3,0x00 + + vmovdqu64 zmm4,ZMMWORD[160+rdx] + vmovdqu64 ZMMWORD[576+rsp],zmm4 + + vmovdqu64 zmm5,ZMMWORD[96+rdx] + vmovdqu64 ZMMWORD[512+rsp],zmm5 +$L$_skip_hkeys_precomputation_662: + cmp r13,512 + jb NEAR $L$_message_below_32_blocks_659 + + + + cmp r15b,240 + jae NEAR $L$_next_16_overflow_663 + vpaddd zmm7,zmm2,zmm28 + vpaddd zmm10,zmm7,zmm27 + vpaddd zmm11,zmm10,zmm27 + vpaddd zmm12,zmm11,zmm27 + jmp NEAR $L$_next_16_ok_663 +$L$_next_16_overflow_663: + vpshufb zmm2,zmm2,zmm29 + vmovdqa64 zmm12,ZMMWORD[ddq_add_4444] + vpaddd zmm7,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm10,zmm7,zmm12 + vpaddd zmm11,zmm10,zmm12 + vpaddd zmm12,zmm11,zmm12 + vpshufb zmm7,zmm7,zmm29 + vpshufb zmm10,zmm10,zmm29 + vpshufb zmm11,zmm11,zmm29 + vpshufb zmm12,zmm12,zmm29 +$L$_next_16_ok_663: + vshufi64x2 zmm2,zmm12,zmm12,255 + add r15b,16 + + vmovdqu8 zmm0,ZMMWORD[256+r11*1+r9] + vmovdqu8 zmm3,ZMMWORD[320+r11*1+r9] + vmovdqu8 zmm4,ZMMWORD[384+r11*1+r9] + vmovdqu8 zmm5,ZMMWORD[448+r11*1+r9] + + + vbroadcastf64x2 zmm6,ZMMWORD[rcx] + vpxorq zmm7,zmm7,zmm6 + vpxorq zmm10,zmm10,zmm6 + vpxorq zmm11,zmm11,zmm6 + vpxorq zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[16+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[32+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[48+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[64+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[80+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[96+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[112+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[128+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[144+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[160+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[176+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[192+rcx] + vaesenclast zmm7,zmm7,zmm6 + vaesenclast zmm10,zmm10,zmm6 + vaesenclast zmm11,zmm11,zmm6 + vaesenclast zmm12,zmm12,zmm6 + + + vpxorq zmm7,zmm7,zmm0 + vpxorq zmm10,zmm10,zmm3 + vpxorq zmm11,zmm11,zmm4 + vpxorq zmm12,zmm12,zmm5 + + + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[256+r11*1+r10],zmm7 + vmovdqu8 ZMMWORD[320+r11*1+r10],zmm10 + vmovdqu8 ZMMWORD[384+r11*1+r10],zmm11 + vmovdqu8 ZMMWORD[448+r11*1+r10],zmm12 + + vpshufb zmm7,zmm0,zmm29 + vpshufb zmm10,zmm3,zmm29 + vpshufb zmm11,zmm4,zmm29 + vpshufb zmm12,zmm5,zmm29 + vmovdqa64 ZMMWORD[1024+rsp],zmm7 + vmovdqa64 ZMMWORD[1088+rsp],zmm10 + vmovdqa64 ZMMWORD[1152+rsp],zmm11 + vmovdqa64 ZMMWORD[1216+rsp],zmm12 + test r14,r14 + jnz NEAR $L$_skip_hkeys_precomputation_664 + vmovdqu64 zmm3,ZMMWORD[640+rsp] + + + vshufi64x2 zmm3,zmm3,zmm3,0x00 + + vmovdqu64 zmm4,ZMMWORD[576+rsp] + vmovdqu64 zmm5,ZMMWORD[512+rsp] + + vpclmulqdq zmm6,zmm4,zmm3,0x11 + vpclmulqdq zmm7,zmm4,zmm3,0x00 + vpclmulqdq zmm10,zmm4,zmm3,0x01 + vpclmulqdq zmm4,zmm4,zmm3,0x10 + vpxorq zmm4,zmm4,zmm10 + + vpsrldq zmm10,zmm4,8 + vpslldq zmm4,zmm4,8 + vpxorq zmm6,zmm6,zmm10 + vpxorq zmm4,zmm4,zmm7 + + + + vmovdqu64 zmm10,ZMMWORD[POLY2] + + vpclmulqdq zmm7,zmm10,zmm4,0x01 + vpslldq zmm7,zmm7,8 + vpxorq zmm4,zmm4,zmm7 + + + + vpclmulqdq zmm7,zmm10,zmm4,0x00 + vpsrldq zmm7,zmm7,4 + vpclmulqdq zmm4,zmm10,zmm4,0x10 + vpslldq zmm4,zmm4,4 + + vpternlogq zmm4,zmm6,zmm7,0x96 + + vmovdqu64 ZMMWORD[448+rsp],zmm4 + + vpclmulqdq zmm6,zmm5,zmm3,0x11 + vpclmulqdq zmm7,zmm5,zmm3,0x00 + vpclmulqdq zmm10,zmm5,zmm3,0x01 + vpclmulqdq zmm5,zmm5,zmm3,0x10 + vpxorq zmm5,zmm5,zmm10 + + vpsrldq zmm10,zmm5,8 + vpslldq zmm5,zmm5,8 + vpxorq zmm6,zmm6,zmm10 + vpxorq zmm5,zmm5,zmm7 + + + + vmovdqu64 zmm10,ZMMWORD[POLY2] + + vpclmulqdq zmm7,zmm10,zmm5,0x01 + vpslldq zmm7,zmm7,8 + vpxorq zmm5,zmm5,zmm7 + + + + vpclmulqdq zmm7,zmm10,zmm5,0x00 + vpsrldq zmm7,zmm7,4 + vpclmulqdq zmm5,zmm10,zmm5,0x10 + vpslldq zmm5,zmm5,4 + + vpternlogq zmm5,zmm6,zmm7,0x96 + + vmovdqu64 ZMMWORD[384+rsp],zmm5 + + vpclmulqdq zmm6,zmm4,zmm3,0x11 + vpclmulqdq zmm7,zmm4,zmm3,0x00 + vpclmulqdq zmm10,zmm4,zmm3,0x01 + vpclmulqdq zmm4,zmm4,zmm3,0x10 + vpxorq zmm4,zmm4,zmm10 + + vpsrldq zmm10,zmm4,8 + vpslldq zmm4,zmm4,8 + vpxorq zmm6,zmm6,zmm10 + vpxorq zmm4,zmm4,zmm7 + + + + vmovdqu64 zmm10,ZMMWORD[POLY2] + + vpclmulqdq zmm7,zmm10,zmm4,0x01 + vpslldq zmm7,zmm7,8 + vpxorq zmm4,zmm4,zmm7 + + + + vpclmulqdq zmm7,zmm10,zmm4,0x00 + vpsrldq zmm7,zmm7,4 + vpclmulqdq zmm4,zmm10,zmm4,0x10 + vpslldq zmm4,zmm4,4 + + vpternlogq zmm4,zmm6,zmm7,0x96 + + vmovdqu64 ZMMWORD[320+rsp],zmm4 + + vpclmulqdq zmm6,zmm5,zmm3,0x11 + vpclmulqdq zmm7,zmm5,zmm3,0x00 + vpclmulqdq zmm10,zmm5,zmm3,0x01 + vpclmulqdq zmm5,zmm5,zmm3,0x10 + vpxorq zmm5,zmm5,zmm10 + + vpsrldq zmm10,zmm5,8 + vpslldq zmm5,zmm5,8 + vpxorq zmm6,zmm6,zmm10 + vpxorq zmm5,zmm5,zmm7 + + + + vmovdqu64 zmm10,ZMMWORD[POLY2] + + vpclmulqdq zmm7,zmm10,zmm5,0x01 + vpslldq zmm7,zmm7,8 + vpxorq zmm5,zmm5,zmm7 + + + + vpclmulqdq zmm7,zmm10,zmm5,0x00 + vpsrldq zmm7,zmm7,4 + vpclmulqdq zmm5,zmm10,zmm5,0x10 + vpslldq zmm5,zmm5,4 + + vpternlogq zmm5,zmm6,zmm7,0x96 + + vmovdqu64 ZMMWORD[256+rsp],zmm5 + + vpclmulqdq zmm6,zmm4,zmm3,0x11 + vpclmulqdq zmm7,zmm4,zmm3,0x00 + vpclmulqdq zmm10,zmm4,zmm3,0x01 + vpclmulqdq zmm4,zmm4,zmm3,0x10 + vpxorq zmm4,zmm4,zmm10 + + vpsrldq zmm10,zmm4,8 + vpslldq zmm4,zmm4,8 + vpxorq zmm6,zmm6,zmm10 + vpxorq zmm4,zmm4,zmm7 + + + + vmovdqu64 zmm10,ZMMWORD[POLY2] + + vpclmulqdq zmm7,zmm10,zmm4,0x01 + vpslldq zmm7,zmm7,8 + vpxorq zmm4,zmm4,zmm7 + + + + vpclmulqdq zmm7,zmm10,zmm4,0x00 + vpsrldq zmm7,zmm7,4 + vpclmulqdq zmm4,zmm10,zmm4,0x10 + vpslldq zmm4,zmm4,4 + + vpternlogq zmm4,zmm6,zmm7,0x96 + + vmovdqu64 ZMMWORD[192+rsp],zmm4 + + vpclmulqdq zmm6,zmm5,zmm3,0x11 + vpclmulqdq zmm7,zmm5,zmm3,0x00 + vpclmulqdq zmm10,zmm5,zmm3,0x01 + vpclmulqdq zmm5,zmm5,zmm3,0x10 + vpxorq zmm5,zmm5,zmm10 + + vpsrldq zmm10,zmm5,8 + vpslldq zmm5,zmm5,8 + vpxorq zmm6,zmm6,zmm10 + vpxorq zmm5,zmm5,zmm7 + + + + vmovdqu64 zmm10,ZMMWORD[POLY2] + + vpclmulqdq zmm7,zmm10,zmm5,0x01 + vpslldq zmm7,zmm7,8 + vpxorq zmm5,zmm5,zmm7 + + + + vpclmulqdq zmm7,zmm10,zmm5,0x00 + vpsrldq zmm7,zmm7,4 + vpclmulqdq zmm5,zmm10,zmm5,0x10 + vpslldq zmm5,zmm5,4 + + vpternlogq zmm5,zmm6,zmm7,0x96 + + vmovdqu64 ZMMWORD[128+rsp],zmm5 + + vpclmulqdq zmm6,zmm4,zmm3,0x11 + vpclmulqdq zmm7,zmm4,zmm3,0x00 + vpclmulqdq zmm10,zmm4,zmm3,0x01 + vpclmulqdq zmm4,zmm4,zmm3,0x10 + vpxorq zmm4,zmm4,zmm10 + + vpsrldq zmm10,zmm4,8 + vpslldq zmm4,zmm4,8 + vpxorq zmm6,zmm6,zmm10 + vpxorq zmm4,zmm4,zmm7 + + + + vmovdqu64 zmm10,ZMMWORD[POLY2] + + vpclmulqdq zmm7,zmm10,zmm4,0x01 + vpslldq zmm7,zmm7,8 + vpxorq zmm4,zmm4,zmm7 + + + + vpclmulqdq zmm7,zmm10,zmm4,0x00 + vpsrldq zmm7,zmm7,4 + vpclmulqdq zmm4,zmm10,zmm4,0x10 + vpslldq zmm4,zmm4,4 + + vpternlogq zmm4,zmm6,zmm7,0x96 + + vmovdqu64 ZMMWORD[64+rsp],zmm4 + + vpclmulqdq zmm6,zmm5,zmm3,0x11 + vpclmulqdq zmm7,zmm5,zmm3,0x00 + vpclmulqdq zmm10,zmm5,zmm3,0x01 + vpclmulqdq zmm5,zmm5,zmm3,0x10 + vpxorq zmm5,zmm5,zmm10 + + vpsrldq zmm10,zmm5,8 + vpslldq zmm5,zmm5,8 + vpxorq zmm6,zmm6,zmm10 + vpxorq zmm5,zmm5,zmm7 + + + + vmovdqu64 zmm10,ZMMWORD[POLY2] + + vpclmulqdq zmm7,zmm10,zmm5,0x01 + vpslldq zmm7,zmm7,8 + vpxorq zmm5,zmm5,zmm7 + + + + vpclmulqdq zmm7,zmm10,zmm5,0x00 + vpsrldq zmm7,zmm7,4 + vpclmulqdq zmm5,zmm10,zmm5,0x10 + vpslldq zmm5,zmm5,4 + + vpternlogq zmm5,zmm6,zmm7,0x96 + + vmovdqu64 ZMMWORD[rsp],zmm5 +$L$_skip_hkeys_precomputation_664: + mov r14,1 + add r11,512 + sub r13,512 + + cmp r13,768 + jb NEAR $L$_no_more_big_nblocks_659 +$L$_encrypt_big_nblocks_659: + cmp r15b,240 + jae NEAR $L$_16_blocks_overflow_665 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_665 +$L$_16_blocks_overflow_665: + vpshufb zmm2,zmm2,zmm29 + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_665: + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rsp] + + + + + vshufi64x2 zmm2,zmm5,zmm5,255 + add r15b,16 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + + + + + + + + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + + vpclmulqdq zmm6,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + + vpternlogq zmm6,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + + + + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm21,ZMMWORD[192+r11*1+r9] + + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm26,zmm10,zmm15 + vpxorq zmm24,zmm6,zmm12 + vpxorq zmm25,zmm7,zmm13 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + + + + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + + + + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[192+r11*1+r10],zmm5 + vpshufb zmm0,zmm17,zmm29 + vpshufb zmm3,zmm19,zmm29 + vpshufb zmm4,zmm20,zmm29 + vpshufb zmm5,zmm21,zmm29 + vmovdqa64 ZMMWORD[1280+rsp],zmm0 + vmovdqa64 ZMMWORD[1344+rsp],zmm3 + vmovdqa64 ZMMWORD[1408+rsp],zmm4 + vmovdqa64 ZMMWORD[1472+rsp],zmm5 + cmp r15b,240 + jae NEAR $L$_16_blocks_overflow_666 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_666 +$L$_16_blocks_overflow_666: + vpshufb zmm2,zmm2,zmm29 + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_666: + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[256+rsp] + + + + + vshufi64x2 zmm2,zmm5,zmm5,255 + add r15b,16 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[320+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + + + + + + + + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + + vpclmulqdq zmm6,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[384+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[448+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + + vpternlogq zmm6,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + + + + vmovdqu8 zmm17,ZMMWORD[256+r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[320+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[384+r11*1+r9] + vmovdqu8 zmm21,ZMMWORD[448+r11*1+r9] + + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vpternlogq zmm24,zmm6,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + + + + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + + + + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[256+r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[320+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[384+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[448+r11*1+r10],zmm5 + vpshufb zmm0,zmm17,zmm29 + vpshufb zmm3,zmm19,zmm29 + vpshufb zmm4,zmm20,zmm29 + vpshufb zmm5,zmm21,zmm29 + vmovdqa64 ZMMWORD[768+rsp],zmm0 + vmovdqa64 ZMMWORD[832+rsp],zmm3 + vmovdqa64 ZMMWORD[896+rsp],zmm4 + vmovdqa64 ZMMWORD[960+rsp],zmm5 + cmp r15b,240 + jae NEAR $L$_16_blocks_overflow_667 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_667 +$L$_16_blocks_overflow_667: + vpshufb zmm2,zmm2,zmm29 + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_667: + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + + + + + vshufi64x2 zmm2,zmm5,zmm5,255 + add r15b,16 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + + + + + + + + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + + vpclmulqdq zmm6,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + + vpternlogq zmm6,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + + + + vmovdqu8 zmm17,ZMMWORD[512+r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[576+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[640+r11*1+r9] + vmovdqu8 zmm21,ZMMWORD[704+r11*1+r9] + + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + + + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpternlogq zmm6,zmm12,zmm15,0x96 + vpxorq zmm6,zmm6,zmm24 + vpternlogq zmm7,zmm13,zmm10,0x96 + vpxorq zmm7,zmm7,zmm25 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vextracti64x4 ymm12,zmm6,1 + vpxorq ymm6,ymm6,ymm12 + vextracti32x4 xmm12,ymm6,1 + vpxorq xmm6,xmm6,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm6,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + + + + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + + + + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[512+r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[576+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[640+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[704+r11*1+r10],zmm5 + vpshufb zmm0,zmm17,zmm29 + vpshufb zmm3,zmm19,zmm29 + vpshufb zmm4,zmm20,zmm29 + vpshufb zmm5,zmm21,zmm29 + vmovdqa64 ZMMWORD[1024+rsp],zmm0 + vmovdqa64 ZMMWORD[1088+rsp],zmm3 + vmovdqa64 ZMMWORD[1152+rsp],zmm4 + vmovdqa64 ZMMWORD[1216+rsp],zmm5 + vmovdqa64 zmm14,zmm6 + + add r11,768 + sub r13,768 + cmp r13,768 + jae NEAR $L$_encrypt_big_nblocks_659 + +$L$_no_more_big_nblocks_659: + + cmp r13,512 + jae NEAR $L$_encrypt_32_blocks_659 + + cmp r13,256 + jae NEAR $L$_encrypt_16_blocks_659 +$L$_encrypt_0_blocks_ghash_32_659: + mov r10d,r13d + and r10d,~15 + mov ebx,256 + sub ebx,r10d + vmovdqa64 zmm13,ZMMWORD[768+rsp] + vpxorq zmm13,zmm13,zmm14 + vmovdqu64 zmm12,ZMMWORD[rbx*1+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[832+rsp] + vmovdqu64 zmm12,ZMMWORD[64+rbx*1+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + vpxorq zmm26,zmm4,zmm10 + vpxorq zmm24,zmm0,zmm6 + vpxorq zmm25,zmm3,zmm7 + vpternlogq zmm26,zmm5,zmm11,0x96 + vmovdqa64 zmm13,ZMMWORD[896+rsp] + vmovdqu64 zmm12,ZMMWORD[128+rbx*1+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[960+rsp] + vmovdqu64 zmm12,ZMMWORD[192+rbx*1+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + + vpternlogq zmm26,zmm4,zmm10,0x96 + vpternlogq zmm24,zmm0,zmm6,0x96 + vpternlogq zmm25,zmm3,zmm7,0x96 + vpternlogq zmm26,zmm5,zmm11,0x96 + add ebx,256 + mov r10d,r13d + add r10d,15 + shr r10d,4 + je NEAR $L$_last_num_blocks_is_0_668 + + cmp r10d,8 + je NEAR $L$_last_num_blocks_is_8_668 + jb NEAR $L$_last_num_blocks_is_7_1_668 + + + cmp r10d,12 + je NEAR $L$_last_num_blocks_is_12_668 + jb NEAR $L$_last_num_blocks_is_11_9_668 + + + cmp r10d,15 + je NEAR $L$_last_num_blocks_is_15_668 + ja NEAR $L$_last_num_blocks_is_16_668 + cmp r10d,14 + je NEAR $L$_last_num_blocks_is_14_668 + jmp NEAR $L$_last_num_blocks_is_13_668 + +$L$_last_num_blocks_is_11_9_668: + + cmp r10d,10 + je NEAR $L$_last_num_blocks_is_10_668 + ja NEAR $L$_last_num_blocks_is_11_668 + jmp NEAR $L$_last_num_blocks_is_9_668 + +$L$_last_num_blocks_is_7_1_668: + cmp r10d,4 + je NEAR $L$_last_num_blocks_is_4_668 + jb NEAR $L$_last_num_blocks_is_3_1_668 + + cmp r10d,6 + ja NEAR $L$_last_num_blocks_is_7_668 + je NEAR $L$_last_num_blocks_is_6_668 + jmp NEAR $L$_last_num_blocks_is_5_668 + +$L$_last_num_blocks_is_3_1_668: + + cmp r10d,2 + ja NEAR $L$_last_num_blocks_is_3_668 + je NEAR $L$_last_num_blocks_is_2_668 +$L$_last_num_blocks_is_1_668: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,255 + jae NEAR $L$_16_blocks_overflow_669 + vpaddd xmm0,xmm2,xmm28 + jmp NEAR $L$_16_blocks_ok_669 + +$L$_16_blocks_overflow_669: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb xmm0,xmm0,xmm29 +$L$_16_blocks_ok_669: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm0,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 xmm17{k1}{z},[r11*1+r9] + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc xmm0,xmm0,xmm31 + vaesenclast xmm0,xmm0,xmm30 + vpxorq xmm0,xmm0,xmm17 + vextracti32x4 xmm11,zmm0,0 + mov r10,QWORD[120+rbp] + vmovdqu8 XMMWORD[r11*1+r10]{k1},xmm0 + vmovdqu8 zmm17{k1}{z},zmm17 + vpshufb xmm17,xmm17,xmm29 + vextracti32x4 xmm7,zmm17,0 + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_670 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm17,xmm1,0x01 + vpclmulqdq xmm5,xmm17,xmm1,0x10 + vpclmulqdq xmm0,xmm17,xmm1,0x11 + vpclmulqdq xmm3,xmm17,xmm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_670 +$L$_small_initial_partial_block_670: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + + + vpsrldq zmm0,zmm26,8 + vpslldq zmm3,zmm26,8 + vpxorq zmm24,zmm24,zmm0 + vpxorq zmm25,zmm25,zmm3 + vextracti64x4 ymm0,zmm24,1 + vpxorq ymm24,ymm24,ymm0 + vextracti32x4 xmm0,ymm24,1 + vpxorq xmm24,xmm24,xmm0 + vextracti64x4 ymm3,zmm25,1 + vpxorq ymm25,ymm25,ymm3 + vextracti32x4 xmm3,ymm25,1 + vpxorq xmm25,xmm25,xmm3 + vmovdqa64 xmm0,XMMWORD[POLY2] + + + vpclmulqdq xmm3,xmm0,xmm25,0x01 + vpslldq xmm3,xmm3,8 + vpxorq xmm3,xmm25,xmm3 + + + vpclmulqdq xmm4,xmm0,xmm3,0x00 + vpsrldq xmm4,xmm4,4 + vpclmulqdq xmm14,xmm0,xmm3,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm4,xmm24,0x96 + + + + + + + + + + + + + vpxorq xmm14,xmm14,xmm7 + + jmp NEAR $L$_after_reduction_670 +$L$_small_initial_compute_done_670: +$L$_after_reduction_670: + jmp NEAR $L$_last_blocks_done_668 +$L$_last_num_blocks_is_2_668: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,254 + jae NEAR $L$_16_blocks_overflow_671 + vpaddd ymm0,ymm2,ymm28 + jmp NEAR $L$_16_blocks_ok_671 + +$L$_16_blocks_overflow_671: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb ymm0,ymm0,ymm29 +$L$_16_blocks_ok_671: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm0,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 ymm17{k1}{z},[r11*1+r9] + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc ymm0,ymm0,ymm31 + vaesenclast ymm0,ymm0,ymm30 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm11,zmm0,1 + mov r10,QWORD[120+rbp] + vmovdqu8 YMMWORD[r11*1+r10]{k1},ymm0 + vmovdqu8 zmm17{k1}{z},zmm17 + vpshufb ymm17,ymm17,ymm29 + vextracti32x4 xmm7,zmm17,1 + sub r13,16 * (2 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_672 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm17,ymm1,0x01 + vpclmulqdq ymm5,ymm17,ymm1,0x10 + vpclmulqdq ymm0,ymm17,ymm1,0x11 + vpclmulqdq ymm3,ymm17,ymm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_672 +$L$_small_initial_partial_block_672: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm17,xmm1,0x01 + vpclmulqdq xmm5,xmm17,xmm1,0x10 + vpclmulqdq xmm0,xmm17,xmm1,0x11 + vpclmulqdq xmm3,xmm17,xmm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_672: + + or r13,r13 + je NEAR $L$_after_reduction_672 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_672: + jmp NEAR $L$_last_blocks_done_668 +$L$_last_num_blocks_is_3_668: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,253 + jae NEAR $L$_16_blocks_overflow_673 + vpaddd zmm0,zmm2,zmm28 + jmp NEAR $L$_16_blocks_ok_673 + +$L$_16_blocks_overflow_673: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb zmm0,zmm0,zmm29 +$L$_16_blocks_ok_673: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm0,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17{k1}{z},[r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vpxorq zmm0,zmm0,zmm17 + vextracti32x4 xmm11,zmm0,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10]{k1},zmm0 + vmovdqu8 zmm17{k1}{z},zmm17 + vpshufb zmm17,zmm17,zmm29 + vextracti32x4 xmm7,zmm17,2 + sub r13,16 * (3 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_674 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_674 +$L$_small_initial_partial_block_674: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm17,ymm1,0x01 + vpclmulqdq ymm5,ymm17,ymm1,0x10 + vpclmulqdq ymm0,ymm17,ymm1,0x11 + vpclmulqdq ymm3,ymm17,ymm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_674: + + or r13,r13 + je NEAR $L$_after_reduction_674 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_674: + jmp NEAR $L$_last_blocks_done_668 +$L$_last_num_blocks_is_4_668: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,252 + jae NEAR $L$_16_blocks_overflow_675 + vpaddd zmm0,zmm2,zmm28 + jmp NEAR $L$_16_blocks_ok_675 + +$L$_16_blocks_overflow_675: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb zmm0,zmm0,zmm29 +$L$_16_blocks_ok_675: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm0,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17{k1}{z},[r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vpxorq zmm0,zmm0,zmm17 + vextracti32x4 xmm11,zmm0,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10]{k1},zmm0 + vmovdqu8 zmm17{k1}{z},zmm17 + vpshufb zmm17,zmm17,zmm29 + vextracti32x4 xmm7,zmm17,3 + sub r13,16 * (4 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_676 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_676 +$L$_small_initial_partial_block_676: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_676: + + or r13,r13 + je NEAR $L$_after_reduction_676 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_676: + jmp NEAR $L$_last_blocks_done_668 +$L$_last_num_blocks_is_5_668: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,251 + jae NEAR $L$_16_blocks_overflow_677 + vpaddd zmm0,zmm2,zmm28 + vpaddd xmm3,xmm0,xmm27 + jmp NEAR $L$_16_blocks_ok_677 + +$L$_16_blocks_overflow_677: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb xmm3,xmm3,xmm29 +$L$_16_blocks_ok_677: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm3,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 xmm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast xmm3,xmm3,xmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq xmm3,xmm3,xmm19 + vextracti32x4 xmm11,zmm3,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 XMMWORD[64+r11*1+r10]{k1},xmm3 + vmovdqu8 zmm19{k1}{z},zmm19 + vpshufb zmm17,zmm17,zmm29 + vpshufb xmm19,xmm19,xmm29 + vextracti32x4 xmm7,zmm19,0 + sub r13,16 * (5 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_678 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm19,xmm1,0x01 + vpclmulqdq xmm5,xmm19,xmm1,0x10 + vpclmulqdq xmm0,xmm19,xmm1,0x11 + vpclmulqdq xmm3,xmm19,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_678 +$L$_small_initial_partial_block_678: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_678: + + or r13,r13 + je NEAR $L$_after_reduction_678 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_678: + jmp NEAR $L$_last_blocks_done_668 +$L$_last_num_blocks_is_6_668: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,250 + jae NEAR $L$_16_blocks_overflow_679 + vpaddd zmm0,zmm2,zmm28 + vpaddd ymm3,ymm0,ymm27 + jmp NEAR $L$_16_blocks_ok_679 + +$L$_16_blocks_overflow_679: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb ymm3,ymm3,ymm29 +$L$_16_blocks_ok_679: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm3,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 ymm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast ymm3,ymm3,ymm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm11,zmm3,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 YMMWORD[64+r11*1+r10]{k1},ymm3 + vmovdqu8 zmm19{k1}{z},zmm19 + vpshufb zmm17,zmm17,zmm29 + vpshufb ymm19,ymm19,ymm29 + vextracti32x4 xmm7,zmm19,1 + sub r13,16 * (6 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_680 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm19,ymm1,0x01 + vpclmulqdq ymm5,ymm19,ymm1,0x10 + vpclmulqdq ymm0,ymm19,ymm1,0x11 + vpclmulqdq ymm3,ymm19,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_680 +$L$_small_initial_partial_block_680: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm19,xmm1,0x01 + vpclmulqdq xmm5,xmm19,xmm1,0x10 + vpclmulqdq xmm0,xmm19,xmm1,0x11 + vpclmulqdq xmm3,xmm19,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_680: + + or r13,r13 + je NEAR $L$_after_reduction_680 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_680: + jmp NEAR $L$_last_blocks_done_668 +$L$_last_num_blocks_is_7_668: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,249 + jae NEAR $L$_16_blocks_overflow_681 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + jmp NEAR $L$_16_blocks_ok_681 + +$L$_16_blocks_overflow_681: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 +$L$_16_blocks_ok_681: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm3,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti32x4 xmm11,zmm3,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10]{k1},zmm3 + vmovdqu8 zmm19{k1}{z},zmm19 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vextracti32x4 xmm7,zmm19,2 + sub r13,16 * (7 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_682 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm19,zmm1,0x01 + vpclmulqdq zmm5,zmm19,zmm1,0x10 + vpclmulqdq zmm0,zmm19,zmm1,0x11 + vpclmulqdq zmm3,zmm19,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_682 +$L$_small_initial_partial_block_682: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm19,ymm1,0x01 + vpclmulqdq ymm5,ymm19,ymm1,0x10 + vpclmulqdq ymm0,ymm19,ymm1,0x11 + vpclmulqdq ymm3,ymm19,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_682: + + or r13,r13 + je NEAR $L$_after_reduction_682 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_682: + jmp NEAR $L$_last_blocks_done_668 +$L$_last_num_blocks_is_8_668: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,248 + jae NEAR $L$_16_blocks_overflow_683 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + jmp NEAR $L$_16_blocks_ok_683 + +$L$_16_blocks_overflow_683: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 +$L$_16_blocks_ok_683: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm3,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti32x4 xmm11,zmm3,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10]{k1},zmm3 + vmovdqu8 zmm19{k1}{z},zmm19 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vextracti32x4 xmm7,zmm19,3 + sub r13,16 * (8 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_684 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_684 +$L$_small_initial_partial_block_684: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm19,zmm1,0x01 + vpclmulqdq zmm5,zmm19,zmm1,0x10 + vpclmulqdq zmm0,zmm19,zmm1,0x11 + vpclmulqdq zmm3,zmm19,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_684: + + or r13,r13 + je NEAR $L$_after_reduction_684 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_684: + jmp NEAR $L$_last_blocks_done_668 +$L$_last_num_blocks_is_9_668: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,247 + jae NEAR $L$_16_blocks_overflow_685 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd xmm4,xmm3,xmm27 + jmp NEAR $L$_16_blocks_ok_685 + +$L$_16_blocks_overflow_685: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb xmm4,xmm4,xmm29 +$L$_16_blocks_ok_685: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm4,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 xmm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast xmm4,xmm4,xmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq xmm4,xmm4,xmm20 + vextracti32x4 xmm11,zmm4,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 XMMWORD[128+r11*1+r10]{k1},xmm4 + vmovdqu8 zmm20{k1}{z},zmm20 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb xmm20,xmm20,xmm29 + vextracti32x4 xmm7,zmm20,0 + sub r13,16 * (9 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_686 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm20,xmm1,0x01 + vpclmulqdq xmm5,xmm20,xmm1,0x10 + vpclmulqdq xmm0,xmm20,xmm1,0x11 + vpclmulqdq xmm3,xmm20,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_686 +$L$_small_initial_partial_block_686: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_686: + + or r13,r13 + je NEAR $L$_after_reduction_686 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_686: + jmp NEAR $L$_last_blocks_done_668 +$L$_last_num_blocks_is_10_668: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,246 + jae NEAR $L$_16_blocks_overflow_687 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd ymm4,ymm3,ymm27 + jmp NEAR $L$_16_blocks_ok_687 + +$L$_16_blocks_overflow_687: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb ymm4,ymm4,ymm29 +$L$_16_blocks_ok_687: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm4,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 ymm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast ymm4,ymm4,ymm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq ymm4,ymm4,ymm20 + vextracti32x4 xmm11,zmm4,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 YMMWORD[128+r11*1+r10]{k1},ymm4 + vmovdqu8 zmm20{k1}{z},zmm20 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb ymm20,ymm20,ymm29 + vextracti32x4 xmm7,zmm20,1 + sub r13,16 * (10 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_688 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm20,ymm1,0x01 + vpclmulqdq ymm5,ymm20,ymm1,0x10 + vpclmulqdq ymm0,ymm20,ymm1,0x11 + vpclmulqdq ymm3,ymm20,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_688 +$L$_small_initial_partial_block_688: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm20,xmm1,0x01 + vpclmulqdq xmm5,xmm20,xmm1,0x10 + vpclmulqdq xmm0,xmm20,xmm1,0x11 + vpclmulqdq xmm3,xmm20,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_688: + + or r13,r13 + je NEAR $L$_after_reduction_688 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_688: + jmp NEAR $L$_last_blocks_done_668 +$L$_last_num_blocks_is_11_668: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,245 + jae NEAR $L$_16_blocks_overflow_689 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + jmp NEAR $L$_16_blocks_ok_689 + +$L$_16_blocks_overflow_689: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 +$L$_16_blocks_ok_689: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm4,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vextracti32x4 xmm11,zmm4,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10]{k1},zmm4 + vmovdqu8 zmm20{k1}{z},zmm20 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb zmm20,zmm20,zmm29 + vextracti32x4 xmm7,zmm20,2 + sub r13,16 * (11 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_690 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm20,zmm1,0x01 + vpclmulqdq zmm5,zmm20,zmm1,0x10 + vpclmulqdq zmm0,zmm20,zmm1,0x11 + vpclmulqdq zmm3,zmm20,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_690 +$L$_small_initial_partial_block_690: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm20,ymm1,0x01 + vpclmulqdq ymm5,ymm20,ymm1,0x10 + vpclmulqdq ymm0,ymm20,ymm1,0x11 + vpclmulqdq ymm3,ymm20,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_690: + + or r13,r13 + je NEAR $L$_after_reduction_690 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_690: + jmp NEAR $L$_last_blocks_done_668 +$L$_last_num_blocks_is_12_668: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,244 + jae NEAR $L$_16_blocks_overflow_691 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + jmp NEAR $L$_16_blocks_ok_691 + +$L$_16_blocks_overflow_691: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 +$L$_16_blocks_ok_691: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm4,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vextracti32x4 xmm11,zmm4,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10]{k1},zmm4 + vmovdqu8 zmm20{k1}{z},zmm20 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb zmm20,zmm20,zmm29 + vextracti32x4 xmm7,zmm20,3 + sub r13,16 * (12 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_692 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[160+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_692 +$L$_small_initial_partial_block_692: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm20,zmm1,0x01 + vpclmulqdq zmm5,zmm20,zmm1,0x10 + vpclmulqdq zmm0,zmm20,zmm1,0x11 + vpclmulqdq zmm3,zmm20,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_692: + + or r13,r13 + je NEAR $L$_after_reduction_692 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_692: + jmp NEAR $L$_last_blocks_done_668 +$L$_last_num_blocks_is_13_668: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,243 + jae NEAR $L$_16_blocks_overflow_693 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd xmm5,xmm4,xmm27 + jmp NEAR $L$_16_blocks_ok_693 + +$L$_16_blocks_overflow_693: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb xmm5,xmm5,xmm29 +$L$_16_blocks_ok_693: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm5,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 xmm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast xmm5,xmm5,xmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq xmm5,xmm5,xmm21 + vextracti32x4 xmm11,zmm5,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 XMMWORD[192+r11*1+r10]{k1},xmm5 + vmovdqu8 zmm21{k1}{z},zmm21 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb zmm20,zmm20,zmm29 + vpshufb xmm21,xmm21,xmm29 + vextracti32x4 xmm7,zmm21,0 + sub r13,16 * (13 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_694 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[144+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm21,xmm1,0x01 + vpclmulqdq xmm5,xmm21,xmm1,0x10 + vpclmulqdq xmm0,xmm21,xmm1,0x11 + vpclmulqdq xmm3,xmm21,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_694 +$L$_small_initial_partial_block_694: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[160+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_694: + + or r13,r13 + je NEAR $L$_after_reduction_694 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_694: + jmp NEAR $L$_last_blocks_done_668 +$L$_last_num_blocks_is_14_668: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,242 + jae NEAR $L$_16_blocks_overflow_695 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd ymm5,ymm4,ymm27 + jmp NEAR $L$_16_blocks_ok_695 + +$L$_16_blocks_overflow_695: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb ymm5,ymm5,ymm29 +$L$_16_blocks_ok_695: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm5,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 ymm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast ymm5,ymm5,ymm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq ymm5,ymm5,ymm21 + vextracti32x4 xmm11,zmm5,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 YMMWORD[192+r11*1+r10]{k1},ymm5 + vmovdqu8 zmm21{k1}{z},zmm21 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb zmm20,zmm20,zmm29 + vpshufb ymm21,ymm21,ymm29 + vextracti32x4 xmm7,zmm21,1 + sub r13,16 * (14 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_696 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[128+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm21,ymm1,0x01 + vpclmulqdq ymm5,ymm21,ymm1,0x10 + vpclmulqdq ymm0,ymm21,ymm1,0x11 + vpclmulqdq ymm3,ymm21,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_696 +$L$_small_initial_partial_block_696: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[144+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm21,xmm1,0x01 + vpclmulqdq xmm5,xmm21,xmm1,0x10 + vpclmulqdq xmm0,xmm21,xmm1,0x11 + vpclmulqdq xmm3,xmm21,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_696: + + or r13,r13 + je NEAR $L$_after_reduction_696 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_696: + jmp NEAR $L$_last_blocks_done_668 +$L$_last_num_blocks_is_15_668: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,241 + jae NEAR $L$_16_blocks_overflow_697 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_697 + +$L$_16_blocks_overflow_697: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_697: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm5,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + vextracti32x4 xmm11,zmm5,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[192+r11*1+r10]{k1},zmm5 + vmovdqu8 zmm21{k1}{z},zmm21 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb zmm20,zmm20,zmm29 + vpshufb zmm21,zmm21,zmm29 + vextracti32x4 xmm7,zmm21,2 + sub r13,16 * (15 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_698 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[112+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm21,zmm1,0x01 + vpclmulqdq zmm5,zmm21,zmm1,0x10 + vpclmulqdq zmm0,zmm21,zmm1,0x11 + vpclmulqdq zmm3,zmm21,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_698 +$L$_small_initial_partial_block_698: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[128+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm21,ymm1,0x01 + vpclmulqdq ymm5,ymm21,ymm1,0x10 + vpclmulqdq ymm0,ymm21,ymm1,0x11 + vpclmulqdq ymm3,ymm21,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_698: + + or r13,r13 + je NEAR $L$_after_reduction_698 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_698: + jmp NEAR $L$_last_blocks_done_668 +$L$_last_num_blocks_is_16_668: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,240 + jae NEAR $L$_16_blocks_overflow_699 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_699 + +$L$_16_blocks_overflow_699: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_699: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm5,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + vextracti32x4 xmm11,zmm5,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[192+r11*1+r10]{k1},zmm5 + vmovdqu8 zmm21{k1}{z},zmm21 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb zmm20,zmm20,zmm29 + vpshufb zmm21,zmm21,zmm29 + vextracti32x4 xmm7,zmm21,3 + sub r13,16 * (16 - 1) +$L$_small_initial_partial_block_700: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[112+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm21,zmm1,0x01 + vpclmulqdq zmm5,zmm21,zmm1,0x10 + vpclmulqdq zmm0,zmm21,zmm1,0x11 + vpclmulqdq zmm3,zmm21,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_700: + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_700: + jmp NEAR $L$_last_blocks_done_668 +$L$_last_num_blocks_is_0_668: + vmovdqa64 zmm13,ZMMWORD[1024+rsp] + vmovdqu64 zmm12,ZMMWORD[rbx*1+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[1088+rsp] + vmovdqu64 zmm12,ZMMWORD[64+rbx*1+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + vpternlogq zmm26,zmm4,zmm10,0x96 + vpternlogq zmm24,zmm0,zmm6,0x96 + vpternlogq zmm25,zmm3,zmm7,0x96 + vpternlogq zmm26,zmm5,zmm11,0x96 + vmovdqa64 zmm13,ZMMWORD[1152+rsp] + vmovdqu64 zmm12,ZMMWORD[128+rbx*1+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[1216+rsp] + vmovdqu64 zmm12,ZMMWORD[192+rbx*1+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + + vpternlogq zmm26,zmm4,zmm10,0x96 + vpternlogq zmm24,zmm0,zmm6,0x96 + vpternlogq zmm25,zmm3,zmm7,0x96 + vpternlogq zmm26,zmm5,zmm11,0x96 + + vpsrldq zmm0,zmm26,8 + vpslldq zmm3,zmm26,8 + vpxorq zmm24,zmm24,zmm0 + vpxorq zmm25,zmm25,zmm3 + vextracti64x4 ymm0,zmm24,1 + vpxorq ymm24,ymm24,ymm0 + vextracti32x4 xmm0,ymm24,1 + vpxorq xmm24,xmm24,xmm0 + vextracti64x4 ymm3,zmm25,1 + vpxorq ymm25,ymm25,ymm3 + vextracti32x4 xmm3,ymm25,1 + vpxorq xmm25,xmm25,xmm3 + vmovdqa64 xmm4,XMMWORD[POLY2] + + + vpclmulqdq xmm0,xmm4,xmm25,0x01 + vpslldq xmm0,xmm0,8 + vpxorq xmm0,xmm25,xmm0 + + + vpclmulqdq xmm3,xmm4,xmm0,0x00 + vpsrldq xmm3,xmm3,4 + vpclmulqdq xmm14,xmm4,xmm0,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm3,xmm24,0x96 + +$L$_last_blocks_done_668: + vpshufb xmm2,xmm2,xmm29 + jmp NEAR $L$_ghash_done_659 +$L$_encrypt_32_blocks_659: + cmp r15b,240 + jae NEAR $L$_16_blocks_overflow_701 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_701 +$L$_16_blocks_overflow_701: + vpshufb zmm2,zmm2,zmm29 + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_701: + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rsp] + + + + + vshufi64x2 zmm2,zmm5,zmm5,255 + add r15b,16 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + + + + + + + + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + + vpclmulqdq zmm6,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + + vpternlogq zmm6,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + + + + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm21,ZMMWORD[192+r11*1+r9] + + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm26,zmm10,zmm15 + vpxorq zmm24,zmm6,zmm12 + vpxorq zmm25,zmm7,zmm13 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + + + + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + + + + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[192+r11*1+r10],zmm5 + vpshufb zmm0,zmm17,zmm29 + vpshufb zmm3,zmm19,zmm29 + vpshufb zmm4,zmm20,zmm29 + vpshufb zmm5,zmm21,zmm29 + vmovdqa64 ZMMWORD[1280+rsp],zmm0 + vmovdqa64 ZMMWORD[1344+rsp],zmm3 + vmovdqa64 ZMMWORD[1408+rsp],zmm4 + vmovdqa64 ZMMWORD[1472+rsp],zmm5 + cmp r15b,240 + jae NEAR $L$_16_blocks_overflow_702 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_702 +$L$_16_blocks_overflow_702: + vpshufb zmm2,zmm2,zmm29 + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_702: + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[256+rsp] + + + + + vshufi64x2 zmm2,zmm5,zmm5,255 + add r15b,16 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[320+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + + + + + + + + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + + vpclmulqdq zmm6,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[384+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[448+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + + vpternlogq zmm6,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + + + + vmovdqu8 zmm17,ZMMWORD[256+r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[320+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[384+r11*1+r9] + vmovdqu8 zmm21,ZMMWORD[448+r11*1+r9] + + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vpternlogq zmm24,zmm6,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + + + + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + + + + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[256+r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[320+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[384+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[448+r11*1+r10],zmm5 + vpshufb zmm0,zmm17,zmm29 + vpshufb zmm3,zmm19,zmm29 + vpshufb zmm4,zmm20,zmm29 + vpshufb zmm5,zmm21,zmm29 + vmovdqa64 ZMMWORD[768+rsp],zmm0 + vmovdqa64 ZMMWORD[832+rsp],zmm3 + vmovdqa64 ZMMWORD[896+rsp],zmm4 + vmovdqa64 ZMMWORD[960+rsp],zmm5 + vmovdqa64 zmm13,ZMMWORD[1280+rsp] + vmovdqu64 zmm12,ZMMWORD[512+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[1344+rsp] + vmovdqu64 zmm12,ZMMWORD[576+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + vpternlogq zmm26,zmm4,zmm10,0x96 + vpternlogq zmm24,zmm0,zmm6,0x96 + vpternlogq zmm25,zmm3,zmm7,0x96 + vpternlogq zmm26,zmm5,zmm11,0x96 + vmovdqa64 zmm13,ZMMWORD[1408+rsp] + vmovdqu64 zmm12,ZMMWORD[640+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[1472+rsp] + vmovdqu64 zmm12,ZMMWORD[704+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + + vpternlogq zmm26,zmm4,zmm10,0x96 + vpternlogq zmm24,zmm0,zmm6,0x96 + vpternlogq zmm25,zmm3,zmm7,0x96 + vpternlogq zmm26,zmm5,zmm11,0x96 + + vpsrldq zmm0,zmm26,8 + vpslldq zmm3,zmm26,8 + vpxorq zmm24,zmm24,zmm0 + vpxorq zmm25,zmm25,zmm3 + vextracti64x4 ymm0,zmm24,1 + vpxorq ymm24,ymm24,ymm0 + vextracti32x4 xmm0,ymm24,1 + vpxorq xmm24,xmm24,xmm0 + vextracti64x4 ymm3,zmm25,1 + vpxorq ymm25,ymm25,ymm3 + vextracti32x4 xmm3,ymm25,1 + vpxorq xmm25,xmm25,xmm3 + vmovdqa64 xmm4,XMMWORD[POLY2] + + + vpclmulqdq xmm0,xmm4,xmm25,0x01 + vpslldq xmm0,xmm0,8 + vpxorq xmm0,xmm25,xmm0 + + + vpclmulqdq xmm3,xmm4,xmm0,0x00 + vpsrldq xmm3,xmm3,4 + vpclmulqdq xmm14,xmm4,xmm0,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm3,xmm24,0x96 + + sub r13,512 + add r11,512 + mov r10d,r13d + and r10d,~15 + mov ebx,512 + sub ebx,r10d + mov r10d,r13d + add r10d,15 + shr r10d,4 + je NEAR $L$_last_num_blocks_is_0_703 + + cmp r10d,8 + je NEAR $L$_last_num_blocks_is_8_703 + jb NEAR $L$_last_num_blocks_is_7_1_703 + + + cmp r10d,12 + je NEAR $L$_last_num_blocks_is_12_703 + jb NEAR $L$_last_num_blocks_is_11_9_703 + + + cmp r10d,15 + je NEAR $L$_last_num_blocks_is_15_703 + ja NEAR $L$_last_num_blocks_is_16_703 + cmp r10d,14 + je NEAR $L$_last_num_blocks_is_14_703 + jmp NEAR $L$_last_num_blocks_is_13_703 + +$L$_last_num_blocks_is_11_9_703: + + cmp r10d,10 + je NEAR $L$_last_num_blocks_is_10_703 + ja NEAR $L$_last_num_blocks_is_11_703 + jmp NEAR $L$_last_num_blocks_is_9_703 + +$L$_last_num_blocks_is_7_1_703: + cmp r10d,4 + je NEAR $L$_last_num_blocks_is_4_703 + jb NEAR $L$_last_num_blocks_is_3_1_703 + + cmp r10d,6 + ja NEAR $L$_last_num_blocks_is_7_703 + je NEAR $L$_last_num_blocks_is_6_703 + jmp NEAR $L$_last_num_blocks_is_5_703 + +$L$_last_num_blocks_is_3_1_703: + + cmp r10d,2 + ja NEAR $L$_last_num_blocks_is_3_703 + je NEAR $L$_last_num_blocks_is_2_703 +$L$_last_num_blocks_is_1_703: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,255 + jae NEAR $L$_16_blocks_overflow_704 + vpaddd xmm0,xmm2,xmm28 + jmp NEAR $L$_16_blocks_ok_704 + +$L$_16_blocks_overflow_704: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb xmm0,xmm0,xmm29 +$L$_16_blocks_ok_704: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm0,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 xmm17{k1}{z},[r11*1+r9] + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc xmm0,xmm0,xmm31 + vaesenclast xmm0,xmm0,xmm30 + vpxorq xmm0,xmm0,xmm17 + vextracti32x4 xmm11,zmm0,0 + mov r10,QWORD[120+rbp] + vmovdqu8 XMMWORD[r11*1+r10]{k1},xmm0 + vmovdqu8 zmm17{k1}{z},zmm17 + vpshufb xmm17,xmm17,xmm29 + vextracti32x4 xmm7,zmm17,0 + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_705 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm17,xmm1,0x01 + vpclmulqdq xmm5,xmm17,xmm1,0x10 + vpclmulqdq xmm0,xmm17,xmm1,0x11 + vpclmulqdq xmm3,xmm17,xmm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_705 +$L$_small_initial_partial_block_705: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + + + vpsrldq zmm0,zmm26,8 + vpslldq zmm3,zmm26,8 + vpxorq zmm24,zmm24,zmm0 + vpxorq zmm25,zmm25,zmm3 + vextracti64x4 ymm0,zmm24,1 + vpxorq ymm24,ymm24,ymm0 + vextracti32x4 xmm0,ymm24,1 + vpxorq xmm24,xmm24,xmm0 + vextracti64x4 ymm3,zmm25,1 + vpxorq ymm25,ymm25,ymm3 + vextracti32x4 xmm3,ymm25,1 + vpxorq xmm25,xmm25,xmm3 + vmovdqa64 xmm0,XMMWORD[POLY2] + + + vpclmulqdq xmm3,xmm0,xmm25,0x01 + vpslldq xmm3,xmm3,8 + vpxorq xmm3,xmm25,xmm3 + + + vpclmulqdq xmm4,xmm0,xmm3,0x00 + vpsrldq xmm4,xmm4,4 + vpclmulqdq xmm14,xmm0,xmm3,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm4,xmm24,0x96 + + + + + + + + + + + + + vpxorq xmm14,xmm14,xmm7 + + jmp NEAR $L$_after_reduction_705 +$L$_small_initial_compute_done_705: +$L$_after_reduction_705: + jmp NEAR $L$_last_blocks_done_703 +$L$_last_num_blocks_is_2_703: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,254 + jae NEAR $L$_16_blocks_overflow_706 + vpaddd ymm0,ymm2,ymm28 + jmp NEAR $L$_16_blocks_ok_706 + +$L$_16_blocks_overflow_706: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb ymm0,ymm0,ymm29 +$L$_16_blocks_ok_706: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm0,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 ymm17{k1}{z},[r11*1+r9] + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc ymm0,ymm0,ymm31 + vaesenclast ymm0,ymm0,ymm30 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm11,zmm0,1 + mov r10,QWORD[120+rbp] + vmovdqu8 YMMWORD[r11*1+r10]{k1},ymm0 + vmovdqu8 zmm17{k1}{z},zmm17 + vpshufb ymm17,ymm17,ymm29 + vextracti32x4 xmm7,zmm17,1 + sub r13,16 * (2 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_707 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm17,ymm1,0x01 + vpclmulqdq ymm5,ymm17,ymm1,0x10 + vpclmulqdq ymm0,ymm17,ymm1,0x11 + vpclmulqdq ymm3,ymm17,ymm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_707 +$L$_small_initial_partial_block_707: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm17,xmm1,0x01 + vpclmulqdq xmm5,xmm17,xmm1,0x10 + vpclmulqdq xmm0,xmm17,xmm1,0x11 + vpclmulqdq xmm3,xmm17,xmm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_707: + + or r13,r13 + je NEAR $L$_after_reduction_707 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_707: + jmp NEAR $L$_last_blocks_done_703 +$L$_last_num_blocks_is_3_703: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,253 + jae NEAR $L$_16_blocks_overflow_708 + vpaddd zmm0,zmm2,zmm28 + jmp NEAR $L$_16_blocks_ok_708 + +$L$_16_blocks_overflow_708: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb zmm0,zmm0,zmm29 +$L$_16_blocks_ok_708: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm0,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17{k1}{z},[r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vpxorq zmm0,zmm0,zmm17 + vextracti32x4 xmm11,zmm0,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10]{k1},zmm0 + vmovdqu8 zmm17{k1}{z},zmm17 + vpshufb zmm17,zmm17,zmm29 + vextracti32x4 xmm7,zmm17,2 + sub r13,16 * (3 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_709 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_709 +$L$_small_initial_partial_block_709: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm17,ymm1,0x01 + vpclmulqdq ymm5,ymm17,ymm1,0x10 + vpclmulqdq ymm0,ymm17,ymm1,0x11 + vpclmulqdq ymm3,ymm17,ymm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_709: + + or r13,r13 + je NEAR $L$_after_reduction_709 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_709: + jmp NEAR $L$_last_blocks_done_703 +$L$_last_num_blocks_is_4_703: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,252 + jae NEAR $L$_16_blocks_overflow_710 + vpaddd zmm0,zmm2,zmm28 + jmp NEAR $L$_16_blocks_ok_710 + +$L$_16_blocks_overflow_710: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb zmm0,zmm0,zmm29 +$L$_16_blocks_ok_710: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm0,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17{k1}{z},[r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vpxorq zmm0,zmm0,zmm17 + vextracti32x4 xmm11,zmm0,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10]{k1},zmm0 + vmovdqu8 zmm17{k1}{z},zmm17 + vpshufb zmm17,zmm17,zmm29 + vextracti32x4 xmm7,zmm17,3 + sub r13,16 * (4 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_711 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_711 +$L$_small_initial_partial_block_711: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_711: + + or r13,r13 + je NEAR $L$_after_reduction_711 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_711: + jmp NEAR $L$_last_blocks_done_703 +$L$_last_num_blocks_is_5_703: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,251 + jae NEAR $L$_16_blocks_overflow_712 + vpaddd zmm0,zmm2,zmm28 + vpaddd xmm3,xmm0,xmm27 + jmp NEAR $L$_16_blocks_ok_712 + +$L$_16_blocks_overflow_712: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb xmm3,xmm3,xmm29 +$L$_16_blocks_ok_712: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm3,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 xmm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast xmm3,xmm3,xmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq xmm3,xmm3,xmm19 + vextracti32x4 xmm11,zmm3,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 XMMWORD[64+r11*1+r10]{k1},xmm3 + vmovdqu8 zmm19{k1}{z},zmm19 + vpshufb zmm17,zmm17,zmm29 + vpshufb xmm19,xmm19,xmm29 + vextracti32x4 xmm7,zmm19,0 + sub r13,16 * (5 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_713 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm19,xmm1,0x01 + vpclmulqdq xmm5,xmm19,xmm1,0x10 + vpclmulqdq xmm0,xmm19,xmm1,0x11 + vpclmulqdq xmm3,xmm19,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_713 +$L$_small_initial_partial_block_713: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_713: + + or r13,r13 + je NEAR $L$_after_reduction_713 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_713: + jmp NEAR $L$_last_blocks_done_703 +$L$_last_num_blocks_is_6_703: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,250 + jae NEAR $L$_16_blocks_overflow_714 + vpaddd zmm0,zmm2,zmm28 + vpaddd ymm3,ymm0,ymm27 + jmp NEAR $L$_16_blocks_ok_714 + +$L$_16_blocks_overflow_714: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb ymm3,ymm3,ymm29 +$L$_16_blocks_ok_714: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm3,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 ymm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast ymm3,ymm3,ymm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm11,zmm3,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 YMMWORD[64+r11*1+r10]{k1},ymm3 + vmovdqu8 zmm19{k1}{z},zmm19 + vpshufb zmm17,zmm17,zmm29 + vpshufb ymm19,ymm19,ymm29 + vextracti32x4 xmm7,zmm19,1 + sub r13,16 * (6 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_715 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm19,ymm1,0x01 + vpclmulqdq ymm5,ymm19,ymm1,0x10 + vpclmulqdq ymm0,ymm19,ymm1,0x11 + vpclmulqdq ymm3,ymm19,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_715 +$L$_small_initial_partial_block_715: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm19,xmm1,0x01 + vpclmulqdq xmm5,xmm19,xmm1,0x10 + vpclmulqdq xmm0,xmm19,xmm1,0x11 + vpclmulqdq xmm3,xmm19,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_715: + + or r13,r13 + je NEAR $L$_after_reduction_715 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_715: + jmp NEAR $L$_last_blocks_done_703 +$L$_last_num_blocks_is_7_703: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,249 + jae NEAR $L$_16_blocks_overflow_716 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + jmp NEAR $L$_16_blocks_ok_716 + +$L$_16_blocks_overflow_716: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 +$L$_16_blocks_ok_716: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm3,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti32x4 xmm11,zmm3,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10]{k1},zmm3 + vmovdqu8 zmm19{k1}{z},zmm19 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vextracti32x4 xmm7,zmm19,2 + sub r13,16 * (7 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_717 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm19,zmm1,0x01 + vpclmulqdq zmm5,zmm19,zmm1,0x10 + vpclmulqdq zmm0,zmm19,zmm1,0x11 + vpclmulqdq zmm3,zmm19,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_717 +$L$_small_initial_partial_block_717: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm19,ymm1,0x01 + vpclmulqdq ymm5,ymm19,ymm1,0x10 + vpclmulqdq ymm0,ymm19,ymm1,0x11 + vpclmulqdq ymm3,ymm19,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_717: + + or r13,r13 + je NEAR $L$_after_reduction_717 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_717: + jmp NEAR $L$_last_blocks_done_703 +$L$_last_num_blocks_is_8_703: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,248 + jae NEAR $L$_16_blocks_overflow_718 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + jmp NEAR $L$_16_blocks_ok_718 + +$L$_16_blocks_overflow_718: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 +$L$_16_blocks_ok_718: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm3,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti32x4 xmm11,zmm3,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10]{k1},zmm3 + vmovdqu8 zmm19{k1}{z},zmm19 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vextracti32x4 xmm7,zmm19,3 + sub r13,16 * (8 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_719 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_719 +$L$_small_initial_partial_block_719: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm19,zmm1,0x01 + vpclmulqdq zmm5,zmm19,zmm1,0x10 + vpclmulqdq zmm0,zmm19,zmm1,0x11 + vpclmulqdq zmm3,zmm19,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_719: + + or r13,r13 + je NEAR $L$_after_reduction_719 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_719: + jmp NEAR $L$_last_blocks_done_703 +$L$_last_num_blocks_is_9_703: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,247 + jae NEAR $L$_16_blocks_overflow_720 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd xmm4,xmm3,xmm27 + jmp NEAR $L$_16_blocks_ok_720 + +$L$_16_blocks_overflow_720: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb xmm4,xmm4,xmm29 +$L$_16_blocks_ok_720: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm4,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 xmm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast xmm4,xmm4,xmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq xmm4,xmm4,xmm20 + vextracti32x4 xmm11,zmm4,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 XMMWORD[128+r11*1+r10]{k1},xmm4 + vmovdqu8 zmm20{k1}{z},zmm20 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb xmm20,xmm20,xmm29 + vextracti32x4 xmm7,zmm20,0 + sub r13,16 * (9 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_721 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm20,xmm1,0x01 + vpclmulqdq xmm5,xmm20,xmm1,0x10 + vpclmulqdq xmm0,xmm20,xmm1,0x11 + vpclmulqdq xmm3,xmm20,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_721 +$L$_small_initial_partial_block_721: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_721: + + or r13,r13 + je NEAR $L$_after_reduction_721 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_721: + jmp NEAR $L$_last_blocks_done_703 +$L$_last_num_blocks_is_10_703: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,246 + jae NEAR $L$_16_blocks_overflow_722 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd ymm4,ymm3,ymm27 + jmp NEAR $L$_16_blocks_ok_722 + +$L$_16_blocks_overflow_722: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb ymm4,ymm4,ymm29 +$L$_16_blocks_ok_722: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm4,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 ymm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast ymm4,ymm4,ymm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq ymm4,ymm4,ymm20 + vextracti32x4 xmm11,zmm4,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 YMMWORD[128+r11*1+r10]{k1},ymm4 + vmovdqu8 zmm20{k1}{z},zmm20 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb ymm20,ymm20,ymm29 + vextracti32x4 xmm7,zmm20,1 + sub r13,16 * (10 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_723 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm20,ymm1,0x01 + vpclmulqdq ymm5,ymm20,ymm1,0x10 + vpclmulqdq ymm0,ymm20,ymm1,0x11 + vpclmulqdq ymm3,ymm20,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_723 +$L$_small_initial_partial_block_723: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm20,xmm1,0x01 + vpclmulqdq xmm5,xmm20,xmm1,0x10 + vpclmulqdq xmm0,xmm20,xmm1,0x11 + vpclmulqdq xmm3,xmm20,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_723: + + or r13,r13 + je NEAR $L$_after_reduction_723 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_723: + jmp NEAR $L$_last_blocks_done_703 +$L$_last_num_blocks_is_11_703: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,245 + jae NEAR $L$_16_blocks_overflow_724 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + jmp NEAR $L$_16_blocks_ok_724 + +$L$_16_blocks_overflow_724: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 +$L$_16_blocks_ok_724: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm4,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vextracti32x4 xmm11,zmm4,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10]{k1},zmm4 + vmovdqu8 zmm20{k1}{z},zmm20 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb zmm20,zmm20,zmm29 + vextracti32x4 xmm7,zmm20,2 + sub r13,16 * (11 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_725 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm20,zmm1,0x01 + vpclmulqdq zmm5,zmm20,zmm1,0x10 + vpclmulqdq zmm0,zmm20,zmm1,0x11 + vpclmulqdq zmm3,zmm20,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_725 +$L$_small_initial_partial_block_725: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm20,ymm1,0x01 + vpclmulqdq ymm5,ymm20,ymm1,0x10 + vpclmulqdq ymm0,ymm20,ymm1,0x11 + vpclmulqdq ymm3,ymm20,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_725: + + or r13,r13 + je NEAR $L$_after_reduction_725 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_725: + jmp NEAR $L$_last_blocks_done_703 +$L$_last_num_blocks_is_12_703: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,244 + jae NEAR $L$_16_blocks_overflow_726 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + jmp NEAR $L$_16_blocks_ok_726 + +$L$_16_blocks_overflow_726: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 +$L$_16_blocks_ok_726: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm4,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vextracti32x4 xmm11,zmm4,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10]{k1},zmm4 + vmovdqu8 zmm20{k1}{z},zmm20 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb zmm20,zmm20,zmm29 + vextracti32x4 xmm7,zmm20,3 + sub r13,16 * (12 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_727 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[160+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_727 +$L$_small_initial_partial_block_727: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm20,zmm1,0x01 + vpclmulqdq zmm5,zmm20,zmm1,0x10 + vpclmulqdq zmm0,zmm20,zmm1,0x11 + vpclmulqdq zmm3,zmm20,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_727: + + or r13,r13 + je NEAR $L$_after_reduction_727 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_727: + jmp NEAR $L$_last_blocks_done_703 +$L$_last_num_blocks_is_13_703: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,243 + jae NEAR $L$_16_blocks_overflow_728 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd xmm5,xmm4,xmm27 + jmp NEAR $L$_16_blocks_ok_728 + +$L$_16_blocks_overflow_728: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb xmm5,xmm5,xmm29 +$L$_16_blocks_ok_728: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm5,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 xmm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast xmm5,xmm5,xmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq xmm5,xmm5,xmm21 + vextracti32x4 xmm11,zmm5,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 XMMWORD[192+r11*1+r10]{k1},xmm5 + vmovdqu8 zmm21{k1}{z},zmm21 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb zmm20,zmm20,zmm29 + vpshufb xmm21,xmm21,xmm29 + vextracti32x4 xmm7,zmm21,0 + sub r13,16 * (13 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_729 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[144+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm21,xmm1,0x01 + vpclmulqdq xmm5,xmm21,xmm1,0x10 + vpclmulqdq xmm0,xmm21,xmm1,0x11 + vpclmulqdq xmm3,xmm21,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_729 +$L$_small_initial_partial_block_729: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[160+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_729: + + or r13,r13 + je NEAR $L$_after_reduction_729 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_729: + jmp NEAR $L$_last_blocks_done_703 +$L$_last_num_blocks_is_14_703: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,242 + jae NEAR $L$_16_blocks_overflow_730 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd ymm5,ymm4,ymm27 + jmp NEAR $L$_16_blocks_ok_730 + +$L$_16_blocks_overflow_730: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb ymm5,ymm5,ymm29 +$L$_16_blocks_ok_730: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm5,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 ymm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast ymm5,ymm5,ymm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq ymm5,ymm5,ymm21 + vextracti32x4 xmm11,zmm5,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 YMMWORD[192+r11*1+r10]{k1},ymm5 + vmovdqu8 zmm21{k1}{z},zmm21 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb zmm20,zmm20,zmm29 + vpshufb ymm21,ymm21,ymm29 + vextracti32x4 xmm7,zmm21,1 + sub r13,16 * (14 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_731 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[128+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm21,ymm1,0x01 + vpclmulqdq ymm5,ymm21,ymm1,0x10 + vpclmulqdq ymm0,ymm21,ymm1,0x11 + vpclmulqdq ymm3,ymm21,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_731 +$L$_small_initial_partial_block_731: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[144+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm21,xmm1,0x01 + vpclmulqdq xmm5,xmm21,xmm1,0x10 + vpclmulqdq xmm0,xmm21,xmm1,0x11 + vpclmulqdq xmm3,xmm21,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_731: + + or r13,r13 + je NEAR $L$_after_reduction_731 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_731: + jmp NEAR $L$_last_blocks_done_703 +$L$_last_num_blocks_is_15_703: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,241 + jae NEAR $L$_16_blocks_overflow_732 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_732 + +$L$_16_blocks_overflow_732: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_732: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm5,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + vextracti32x4 xmm11,zmm5,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[192+r11*1+r10]{k1},zmm5 + vmovdqu8 zmm21{k1}{z},zmm21 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb zmm20,zmm20,zmm29 + vpshufb zmm21,zmm21,zmm29 + vextracti32x4 xmm7,zmm21,2 + sub r13,16 * (15 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_733 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[112+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm21,zmm1,0x01 + vpclmulqdq zmm5,zmm21,zmm1,0x10 + vpclmulqdq zmm0,zmm21,zmm1,0x11 + vpclmulqdq zmm3,zmm21,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_733 +$L$_small_initial_partial_block_733: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[128+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm21,ymm1,0x01 + vpclmulqdq ymm5,ymm21,ymm1,0x10 + vpclmulqdq ymm0,ymm21,ymm1,0x11 + vpclmulqdq ymm3,ymm21,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_733: + + or r13,r13 + je NEAR $L$_after_reduction_733 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_733: + jmp NEAR $L$_last_blocks_done_703 +$L$_last_num_blocks_is_16_703: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,240 + jae NEAR $L$_16_blocks_overflow_734 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_734 + +$L$_16_blocks_overflow_734: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_734: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm5,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + vextracti32x4 xmm11,zmm5,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[192+r11*1+r10]{k1},zmm5 + vmovdqu8 zmm21{k1}{z},zmm21 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb zmm20,zmm20,zmm29 + vpshufb zmm21,zmm21,zmm29 + vextracti32x4 xmm7,zmm21,3 + sub r13,16 * (16 - 1) +$L$_small_initial_partial_block_735: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[112+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm21,zmm1,0x01 + vpclmulqdq zmm5,zmm21,zmm1,0x10 + vpclmulqdq zmm0,zmm21,zmm1,0x11 + vpclmulqdq zmm3,zmm21,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_735: + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_735: + jmp NEAR $L$_last_blocks_done_703 +$L$_last_num_blocks_is_0_703: + vmovdqa64 zmm13,ZMMWORD[768+rsp] + vpxorq zmm13,zmm13,zmm14 + vmovdqu64 zmm12,ZMMWORD[rbx*1+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[832+rsp] + vmovdqu64 zmm12,ZMMWORD[64+rbx*1+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + vpxorq zmm26,zmm4,zmm10 + vpxorq zmm24,zmm0,zmm6 + vpxorq zmm25,zmm3,zmm7 + vpternlogq zmm26,zmm5,zmm11,0x96 + vmovdqa64 zmm13,ZMMWORD[896+rsp] + vmovdqu64 zmm12,ZMMWORD[128+rbx*1+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[960+rsp] + vmovdqu64 zmm12,ZMMWORD[192+rbx*1+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + + vpternlogq zmm26,zmm4,zmm10,0x96 + vpternlogq zmm24,zmm0,zmm6,0x96 + vpternlogq zmm25,zmm3,zmm7,0x96 + vpternlogq zmm26,zmm5,zmm11,0x96 + + vpsrldq zmm0,zmm26,8 + vpslldq zmm3,zmm26,8 + vpxorq zmm24,zmm24,zmm0 + vpxorq zmm25,zmm25,zmm3 + vextracti64x4 ymm0,zmm24,1 + vpxorq ymm24,ymm24,ymm0 + vextracti32x4 xmm0,ymm24,1 + vpxorq xmm24,xmm24,xmm0 + vextracti64x4 ymm3,zmm25,1 + vpxorq ymm25,ymm25,ymm3 + vextracti32x4 xmm3,ymm25,1 + vpxorq xmm25,xmm25,xmm3 + vmovdqa64 xmm4,XMMWORD[POLY2] + + + vpclmulqdq xmm0,xmm4,xmm25,0x01 + vpslldq xmm0,xmm0,8 + vpxorq xmm0,xmm25,xmm0 + + + vpclmulqdq xmm3,xmm4,xmm0,0x00 + vpsrldq xmm3,xmm3,4 + vpclmulqdq xmm14,xmm4,xmm0,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm3,xmm24,0x96 + +$L$_last_blocks_done_703: + vpshufb xmm2,xmm2,xmm29 + jmp NEAR $L$_ghash_done_659 +$L$_encrypt_16_blocks_659: + cmp r15b,240 + jae NEAR $L$_16_blocks_overflow_736 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_736 +$L$_16_blocks_overflow_736: + vpshufb zmm2,zmm2,zmm29 + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_736: + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rsp] + + + + + vshufi64x2 zmm2,zmm5,zmm5,255 + add r15b,16 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + + + + + + + + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + + vpclmulqdq zmm6,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + + vpternlogq zmm6,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + + + + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm21,ZMMWORD[192+r11*1+r9] + + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm26,zmm10,zmm15 + vpxorq zmm24,zmm6,zmm12 + vpxorq zmm25,zmm7,zmm13 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + + + + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + + + + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[192+r11*1+r10],zmm5 + vpshufb zmm0,zmm17,zmm29 + vpshufb zmm3,zmm19,zmm29 + vpshufb zmm4,zmm20,zmm29 + vpshufb zmm5,zmm21,zmm29 + vmovdqa64 ZMMWORD[1280+rsp],zmm0 + vmovdqa64 ZMMWORD[1344+rsp],zmm3 + vmovdqa64 ZMMWORD[1408+rsp],zmm4 + vmovdqa64 ZMMWORD[1472+rsp],zmm5 + vmovdqa64 zmm13,ZMMWORD[1024+rsp] + vmovdqu64 zmm12,ZMMWORD[256+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[1088+rsp] + vmovdqu64 zmm12,ZMMWORD[320+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + vpternlogq zmm26,zmm4,zmm10,0x96 + vpternlogq zmm24,zmm0,zmm6,0x96 + vpternlogq zmm25,zmm3,zmm7,0x96 + vpternlogq zmm26,zmm5,zmm11,0x96 + vmovdqa64 zmm13,ZMMWORD[1152+rsp] + vmovdqu64 zmm12,ZMMWORD[384+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[1216+rsp] + vmovdqu64 zmm12,ZMMWORD[448+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + + vpternlogq zmm26,zmm4,zmm10,0x96 + vpternlogq zmm24,zmm0,zmm6,0x96 + vpternlogq zmm25,zmm3,zmm7,0x96 + vpternlogq zmm26,zmm5,zmm11,0x96 + sub r13,256 + add r11,256 + mov r10d,r13d + add r10d,15 + shr r10d,4 + je NEAR $L$_last_num_blocks_is_0_737 + + cmp r10d,8 + je NEAR $L$_last_num_blocks_is_8_737 + jb NEAR $L$_last_num_blocks_is_7_1_737 + + + cmp r10d,12 + je NEAR $L$_last_num_blocks_is_12_737 + jb NEAR $L$_last_num_blocks_is_11_9_737 + + + cmp r10d,15 + je NEAR $L$_last_num_blocks_is_15_737 + ja NEAR $L$_last_num_blocks_is_16_737 + cmp r10d,14 + je NEAR $L$_last_num_blocks_is_14_737 + jmp NEAR $L$_last_num_blocks_is_13_737 + +$L$_last_num_blocks_is_11_9_737: + + cmp r10d,10 + je NEAR $L$_last_num_blocks_is_10_737 + ja NEAR $L$_last_num_blocks_is_11_737 + jmp NEAR $L$_last_num_blocks_is_9_737 + +$L$_last_num_blocks_is_7_1_737: + cmp r10d,4 + je NEAR $L$_last_num_blocks_is_4_737 + jb NEAR $L$_last_num_blocks_is_3_1_737 + + cmp r10d,6 + ja NEAR $L$_last_num_blocks_is_7_737 + je NEAR $L$_last_num_blocks_is_6_737 + jmp NEAR $L$_last_num_blocks_is_5_737 + +$L$_last_num_blocks_is_3_1_737: + + cmp r10d,2 + ja NEAR $L$_last_num_blocks_is_3_737 + je NEAR $L$_last_num_blocks_is_2_737 +$L$_last_num_blocks_is_1_737: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,255 + jae NEAR $L$_16_blocks_overflow_738 + vpaddd xmm0,xmm2,xmm28 + jmp NEAR $L$_16_blocks_ok_738 + +$L$_16_blocks_overflow_738: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb xmm0,xmm0,xmm29 +$L$_16_blocks_ok_738: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm0,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 xmm17{k1}{z},[r11*1+r9] + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc xmm0,xmm0,xmm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc xmm0,xmm0,xmm31 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast xmm0,xmm0,xmm30 + vpxorq xmm0,xmm0,xmm17 + vextracti32x4 xmm11,zmm0,0 + mov r10,QWORD[120+rbp] + vmovdqu8 XMMWORD[r11*1+r10]{k1},xmm0 + vmovdqu8 zmm17{k1}{z},zmm17 + vpshufb xmm17,xmm17,xmm29 + vextracti32x4 xmm7,zmm17,0 + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_739 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm17,xmm1,0x01 + vpclmulqdq xmm5,xmm17,xmm1,0x10 + vpclmulqdq xmm0,xmm17,xmm1,0x11 + vpclmulqdq xmm3,xmm17,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_739 +$L$_small_initial_partial_block_739: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + + + + + + + + + + + + vpxorq xmm14,xmm14,xmm7 + + jmp NEAR $L$_after_reduction_739 +$L$_small_initial_compute_done_739: +$L$_after_reduction_739: + jmp NEAR $L$_last_blocks_done_737 +$L$_last_num_blocks_is_2_737: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,254 + jae NEAR $L$_16_blocks_overflow_740 + vpaddd ymm0,ymm2,ymm28 + jmp NEAR $L$_16_blocks_ok_740 + +$L$_16_blocks_overflow_740: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb ymm0,ymm0,ymm29 +$L$_16_blocks_ok_740: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm0,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 ymm17{k1}{z},[r11*1+r9] + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc ymm0,ymm0,ymm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc ymm0,ymm0,ymm31 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast ymm0,ymm0,ymm30 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm11,zmm0,1 + mov r10,QWORD[120+rbp] + vmovdqu8 YMMWORD[r11*1+r10]{k1},ymm0 + vmovdqu8 zmm17{k1}{z},zmm17 + vpshufb ymm17,ymm17,ymm29 + vextracti32x4 xmm7,zmm17,1 + sub r13,16 * (2 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_741 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm17,ymm1,0x01 + vpclmulqdq ymm5,ymm17,ymm1,0x10 + vpclmulqdq ymm0,ymm17,ymm1,0x11 + vpclmulqdq ymm3,ymm17,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_741 +$L$_small_initial_partial_block_741: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm17,xmm1,0x01 + vpclmulqdq xmm5,xmm17,xmm1,0x10 + vpclmulqdq xmm0,xmm17,xmm1,0x11 + vpclmulqdq xmm3,xmm17,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_741: + + or r13,r13 + je NEAR $L$_after_reduction_741 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_741: + jmp NEAR $L$_last_blocks_done_737 +$L$_last_num_blocks_is_3_737: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,253 + jae NEAR $L$_16_blocks_overflow_742 + vpaddd zmm0,zmm2,zmm28 + jmp NEAR $L$_16_blocks_ok_742 + +$L$_16_blocks_overflow_742: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb zmm0,zmm0,zmm29 +$L$_16_blocks_ok_742: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm0,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17{k1}{z},[r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vpxorq zmm0,zmm0,zmm17 + vextracti32x4 xmm11,zmm0,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10]{k1},zmm0 + vmovdqu8 zmm17{k1}{z},zmm17 + vpshufb zmm17,zmm17,zmm29 + vextracti32x4 xmm7,zmm17,2 + sub r13,16 * (3 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_743 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_743 +$L$_small_initial_partial_block_743: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm17,ymm1,0x01 + vpclmulqdq ymm5,ymm17,ymm1,0x10 + vpclmulqdq ymm0,ymm17,ymm1,0x11 + vpclmulqdq ymm3,ymm17,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_743: + + or r13,r13 + je NEAR $L$_after_reduction_743 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_743: + jmp NEAR $L$_last_blocks_done_737 +$L$_last_num_blocks_is_4_737: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,252 + jae NEAR $L$_16_blocks_overflow_744 + vpaddd zmm0,zmm2,zmm28 + jmp NEAR $L$_16_blocks_ok_744 + +$L$_16_blocks_overflow_744: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb zmm0,zmm0,zmm29 +$L$_16_blocks_ok_744: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm0,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17{k1}{z},[r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vpxorq zmm0,zmm0,zmm17 + vextracti32x4 xmm11,zmm0,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10]{k1},zmm0 + vmovdqu8 zmm17{k1}{z},zmm17 + vpshufb zmm17,zmm17,zmm29 + vextracti32x4 xmm7,zmm17,3 + sub r13,16 * (4 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_745 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_745 +$L$_small_initial_partial_block_745: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_745: + + or r13,r13 + je NEAR $L$_after_reduction_745 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_745: + jmp NEAR $L$_last_blocks_done_737 +$L$_last_num_blocks_is_5_737: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,251 + jae NEAR $L$_16_blocks_overflow_746 + vpaddd zmm0,zmm2,zmm28 + vpaddd xmm3,xmm0,xmm27 + jmp NEAR $L$_16_blocks_ok_746 + +$L$_16_blocks_overflow_746: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb xmm3,xmm3,xmm29 +$L$_16_blocks_ok_746: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm3,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 xmm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast xmm3,xmm3,xmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq xmm3,xmm3,xmm19 + vextracti32x4 xmm11,zmm3,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 XMMWORD[64+r11*1+r10]{k1},xmm3 + vmovdqu8 zmm19{k1}{z},zmm19 + vpshufb zmm17,zmm17,zmm29 + vpshufb xmm19,xmm19,xmm29 + vextracti32x4 xmm7,zmm19,0 + sub r13,16 * (5 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_747 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm19,xmm1,0x01 + vpclmulqdq xmm5,xmm19,xmm1,0x10 + vpclmulqdq xmm0,xmm19,xmm1,0x11 + vpclmulqdq xmm3,xmm19,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_747 +$L$_small_initial_partial_block_747: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_747: + + or r13,r13 + je NEAR $L$_after_reduction_747 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_747: + jmp NEAR $L$_last_blocks_done_737 +$L$_last_num_blocks_is_6_737: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,250 + jae NEAR $L$_16_blocks_overflow_748 + vpaddd zmm0,zmm2,zmm28 + vpaddd ymm3,ymm0,ymm27 + jmp NEAR $L$_16_blocks_ok_748 + +$L$_16_blocks_overflow_748: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb ymm3,ymm3,ymm29 +$L$_16_blocks_ok_748: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm3,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 ymm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast ymm3,ymm3,ymm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm11,zmm3,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 YMMWORD[64+r11*1+r10]{k1},ymm3 + vmovdqu8 zmm19{k1}{z},zmm19 + vpshufb zmm17,zmm17,zmm29 + vpshufb ymm19,ymm19,ymm29 + vextracti32x4 xmm7,zmm19,1 + sub r13,16 * (6 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_749 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm19,ymm1,0x01 + vpclmulqdq ymm5,ymm19,ymm1,0x10 + vpclmulqdq ymm0,ymm19,ymm1,0x11 + vpclmulqdq ymm3,ymm19,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_749 +$L$_small_initial_partial_block_749: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm19,xmm1,0x01 + vpclmulqdq xmm5,xmm19,xmm1,0x10 + vpclmulqdq xmm0,xmm19,xmm1,0x11 + vpclmulqdq xmm3,xmm19,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_749: + + or r13,r13 + je NEAR $L$_after_reduction_749 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_749: + jmp NEAR $L$_last_blocks_done_737 +$L$_last_num_blocks_is_7_737: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,249 + jae NEAR $L$_16_blocks_overflow_750 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + jmp NEAR $L$_16_blocks_ok_750 + +$L$_16_blocks_overflow_750: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 +$L$_16_blocks_ok_750: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm3,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti32x4 xmm11,zmm3,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10]{k1},zmm3 + vmovdqu8 zmm19{k1}{z},zmm19 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vextracti32x4 xmm7,zmm19,2 + sub r13,16 * (7 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_751 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm19,zmm1,0x01 + vpclmulqdq zmm5,zmm19,zmm1,0x10 + vpclmulqdq zmm0,zmm19,zmm1,0x11 + vpclmulqdq zmm3,zmm19,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_751 +$L$_small_initial_partial_block_751: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm19,ymm1,0x01 + vpclmulqdq ymm5,ymm19,ymm1,0x10 + vpclmulqdq ymm0,ymm19,ymm1,0x11 + vpclmulqdq ymm3,ymm19,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_751: + + or r13,r13 + je NEAR $L$_after_reduction_751 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_751: + jmp NEAR $L$_last_blocks_done_737 +$L$_last_num_blocks_is_8_737: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,248 + jae NEAR $L$_16_blocks_overflow_752 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + jmp NEAR $L$_16_blocks_ok_752 + +$L$_16_blocks_overflow_752: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 +$L$_16_blocks_ok_752: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm3,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti32x4 xmm11,zmm3,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10]{k1},zmm3 + vmovdqu8 zmm19{k1}{z},zmm19 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vextracti32x4 xmm7,zmm19,3 + sub r13,16 * (8 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_753 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_753 +$L$_small_initial_partial_block_753: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm19,zmm1,0x01 + vpclmulqdq zmm5,zmm19,zmm1,0x10 + vpclmulqdq zmm0,zmm19,zmm1,0x11 + vpclmulqdq zmm3,zmm19,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_753: + + or r13,r13 + je NEAR $L$_after_reduction_753 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_753: + jmp NEAR $L$_last_blocks_done_737 +$L$_last_num_blocks_is_9_737: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,247 + jae NEAR $L$_16_blocks_overflow_754 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd xmm4,xmm3,xmm27 + jmp NEAR $L$_16_blocks_ok_754 + +$L$_16_blocks_overflow_754: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb xmm4,xmm4,xmm29 +$L$_16_blocks_ok_754: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm4,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 xmm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast xmm4,xmm4,xmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq xmm4,xmm4,xmm20 + vextracti32x4 xmm11,zmm4,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 XMMWORD[128+r11*1+r10]{k1},xmm4 + vmovdqu8 zmm20{k1}{z},zmm20 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb xmm20,xmm20,xmm29 + vextracti32x4 xmm7,zmm20,0 + sub r13,16 * (9 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_755 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm20,xmm1,0x01 + vpclmulqdq xmm5,xmm20,xmm1,0x10 + vpclmulqdq xmm0,xmm20,xmm1,0x11 + vpclmulqdq xmm3,xmm20,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_755 +$L$_small_initial_partial_block_755: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_755: + + or r13,r13 + je NEAR $L$_after_reduction_755 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_755: + jmp NEAR $L$_last_blocks_done_737 +$L$_last_num_blocks_is_10_737: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,246 + jae NEAR $L$_16_blocks_overflow_756 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd ymm4,ymm3,ymm27 + jmp NEAR $L$_16_blocks_ok_756 + +$L$_16_blocks_overflow_756: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb ymm4,ymm4,ymm29 +$L$_16_blocks_ok_756: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm4,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 ymm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast ymm4,ymm4,ymm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq ymm4,ymm4,ymm20 + vextracti32x4 xmm11,zmm4,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 YMMWORD[128+r11*1+r10]{k1},ymm4 + vmovdqu8 zmm20{k1}{z},zmm20 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb ymm20,ymm20,ymm29 + vextracti32x4 xmm7,zmm20,1 + sub r13,16 * (10 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_757 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm20,ymm1,0x01 + vpclmulqdq ymm5,ymm20,ymm1,0x10 + vpclmulqdq ymm0,ymm20,ymm1,0x11 + vpclmulqdq ymm3,ymm20,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_757 +$L$_small_initial_partial_block_757: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm20,xmm1,0x01 + vpclmulqdq xmm5,xmm20,xmm1,0x10 + vpclmulqdq xmm0,xmm20,xmm1,0x11 + vpclmulqdq xmm3,xmm20,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_757: + + or r13,r13 + je NEAR $L$_after_reduction_757 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_757: + jmp NEAR $L$_last_blocks_done_737 +$L$_last_num_blocks_is_11_737: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,245 + jae NEAR $L$_16_blocks_overflow_758 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + jmp NEAR $L$_16_blocks_ok_758 + +$L$_16_blocks_overflow_758: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 +$L$_16_blocks_ok_758: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm4,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vextracti32x4 xmm11,zmm4,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10]{k1},zmm4 + vmovdqu8 zmm20{k1}{z},zmm20 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb zmm20,zmm20,zmm29 + vextracti32x4 xmm7,zmm20,2 + sub r13,16 * (11 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_759 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm20,zmm1,0x01 + vpclmulqdq zmm5,zmm20,zmm1,0x10 + vpclmulqdq zmm0,zmm20,zmm1,0x11 + vpclmulqdq zmm3,zmm20,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_759 +$L$_small_initial_partial_block_759: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm20,ymm1,0x01 + vpclmulqdq ymm5,ymm20,ymm1,0x10 + vpclmulqdq ymm0,ymm20,ymm1,0x11 + vpclmulqdq ymm3,ymm20,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_759: + + or r13,r13 + je NEAR $L$_after_reduction_759 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_759: + jmp NEAR $L$_last_blocks_done_737 +$L$_last_num_blocks_is_12_737: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,244 + jae NEAR $L$_16_blocks_overflow_760 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + jmp NEAR $L$_16_blocks_ok_760 + +$L$_16_blocks_overflow_760: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 +$L$_16_blocks_ok_760: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm4,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vextracti32x4 xmm11,zmm4,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10]{k1},zmm4 + vmovdqu8 zmm20{k1}{z},zmm20 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb zmm20,zmm20,zmm29 + vextracti32x4 xmm7,zmm20,3 + sub r13,16 * (12 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_761 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[160+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_761 +$L$_small_initial_partial_block_761: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm20,zmm1,0x01 + vpclmulqdq zmm5,zmm20,zmm1,0x10 + vpclmulqdq zmm0,zmm20,zmm1,0x11 + vpclmulqdq zmm3,zmm20,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_761: + + or r13,r13 + je NEAR $L$_after_reduction_761 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_761: + jmp NEAR $L$_last_blocks_done_737 +$L$_last_num_blocks_is_13_737: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,243 + jae NEAR $L$_16_blocks_overflow_762 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd xmm5,xmm4,xmm27 + jmp NEAR $L$_16_blocks_ok_762 + +$L$_16_blocks_overflow_762: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb xmm5,xmm5,xmm29 +$L$_16_blocks_ok_762: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm5,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 xmm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast xmm5,xmm5,xmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq xmm5,xmm5,xmm21 + vextracti32x4 xmm11,zmm5,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 XMMWORD[192+r11*1+r10]{k1},xmm5 + vmovdqu8 zmm21{k1}{z},zmm21 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb zmm20,zmm20,zmm29 + vpshufb xmm21,xmm21,xmm29 + vextracti32x4 xmm7,zmm21,0 + sub r13,16 * (13 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_763 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[144+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm21,xmm1,0x01 + vpclmulqdq xmm5,xmm21,xmm1,0x10 + vpclmulqdq xmm0,xmm21,xmm1,0x11 + vpclmulqdq xmm3,xmm21,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_763 +$L$_small_initial_partial_block_763: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[160+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_763: + + or r13,r13 + je NEAR $L$_after_reduction_763 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_763: + jmp NEAR $L$_last_blocks_done_737 +$L$_last_num_blocks_is_14_737: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,242 + jae NEAR $L$_16_blocks_overflow_764 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd ymm5,ymm4,ymm27 + jmp NEAR $L$_16_blocks_ok_764 + +$L$_16_blocks_overflow_764: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb ymm5,ymm5,ymm29 +$L$_16_blocks_ok_764: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm5,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 ymm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast ymm5,ymm5,ymm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq ymm5,ymm5,ymm21 + vextracti32x4 xmm11,zmm5,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 YMMWORD[192+r11*1+r10]{k1},ymm5 + vmovdqu8 zmm21{k1}{z},zmm21 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb zmm20,zmm20,zmm29 + vpshufb ymm21,ymm21,ymm29 + vextracti32x4 xmm7,zmm21,1 + sub r13,16 * (14 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_765 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[128+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm21,ymm1,0x01 + vpclmulqdq ymm5,ymm21,ymm1,0x10 + vpclmulqdq ymm0,ymm21,ymm1,0x11 + vpclmulqdq ymm3,ymm21,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_765 +$L$_small_initial_partial_block_765: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[144+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm21,xmm1,0x01 + vpclmulqdq xmm5,xmm21,xmm1,0x10 + vpclmulqdq xmm0,xmm21,xmm1,0x11 + vpclmulqdq xmm3,xmm21,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_765: + + or r13,r13 + je NEAR $L$_after_reduction_765 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_765: + jmp NEAR $L$_last_blocks_done_737 +$L$_last_num_blocks_is_15_737: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,241 + jae NEAR $L$_16_blocks_overflow_766 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_766 + +$L$_16_blocks_overflow_766: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_766: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm5,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + vextracti32x4 xmm11,zmm5,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[192+r11*1+r10]{k1},zmm5 + vmovdqu8 zmm21{k1}{z},zmm21 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb zmm20,zmm20,zmm29 + vpshufb zmm21,zmm21,zmm29 + vextracti32x4 xmm7,zmm21,2 + sub r13,16 * (15 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_767 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[112+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm21,zmm1,0x01 + vpclmulqdq zmm5,zmm21,zmm1,0x10 + vpclmulqdq zmm0,zmm21,zmm1,0x11 + vpclmulqdq zmm3,zmm21,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_767 +$L$_small_initial_partial_block_767: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[128+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm21,ymm1,0x01 + vpclmulqdq ymm5,ymm21,ymm1,0x10 + vpclmulqdq ymm0,ymm21,ymm1,0x11 + vpclmulqdq ymm3,ymm21,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_767: + + or r13,r13 + je NEAR $L$_after_reduction_767 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_767: + jmp NEAR $L$_last_blocks_done_737 +$L$_last_num_blocks_is_16_737: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,240 + jae NEAR $L$_16_blocks_overflow_768 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_768 + +$L$_16_blocks_overflow_768: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_768: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm5,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + vextracti32x4 xmm11,zmm5,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[192+r11*1+r10]{k1},zmm5 + vmovdqu8 zmm21{k1}{z},zmm21 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb zmm20,zmm20,zmm29 + vpshufb zmm21,zmm21,zmm29 + vextracti32x4 xmm7,zmm21,3 + sub r13,16 * (16 - 1) +$L$_small_initial_partial_block_769: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[112+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm21,zmm1,0x01 + vpclmulqdq zmm5,zmm21,zmm1,0x10 + vpclmulqdq zmm0,zmm21,zmm1,0x11 + vpclmulqdq zmm3,zmm21,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_769: + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_769: + jmp NEAR $L$_last_blocks_done_737 +$L$_last_num_blocks_is_0_737: + vmovdqa64 zmm13,ZMMWORD[1280+rsp] + vmovdqu64 zmm12,ZMMWORD[512+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[1344+rsp] + vmovdqu64 zmm12,ZMMWORD[576+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + vpternlogq zmm26,zmm4,zmm10,0x96 + vpternlogq zmm24,zmm0,zmm6,0x96 + vpternlogq zmm25,zmm3,zmm7,0x96 + vpternlogq zmm26,zmm5,zmm11,0x96 + vmovdqa64 zmm13,ZMMWORD[1408+rsp] + vmovdqu64 zmm12,ZMMWORD[640+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[1472+rsp] + vmovdqu64 zmm12,ZMMWORD[704+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + + vpternlogq zmm26,zmm4,zmm10,0x96 + vpternlogq zmm24,zmm0,zmm6,0x96 + vpternlogq zmm25,zmm3,zmm7,0x96 + vpternlogq zmm26,zmm5,zmm11,0x96 + + vpsrldq zmm0,zmm26,8 + vpslldq zmm3,zmm26,8 + vpxorq zmm24,zmm24,zmm0 + vpxorq zmm25,zmm25,zmm3 + vextracti64x4 ymm0,zmm24,1 + vpxorq ymm24,ymm24,ymm0 + vextracti32x4 xmm0,ymm24,1 + vpxorq xmm24,xmm24,xmm0 + vextracti64x4 ymm3,zmm25,1 + vpxorq ymm25,ymm25,ymm3 + vextracti32x4 xmm3,ymm25,1 + vpxorq xmm25,xmm25,xmm3 + vmovdqa64 xmm4,XMMWORD[POLY2] + + + vpclmulqdq xmm0,xmm4,xmm25,0x01 + vpslldq xmm0,xmm0,8 + vpxorq xmm0,xmm25,xmm0 + + + vpclmulqdq xmm3,xmm4,xmm0,0x00 + vpsrldq xmm3,xmm3,4 + vpclmulqdq xmm14,xmm4,xmm0,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm3,xmm24,0x96 + +$L$_last_blocks_done_737: + vpshufb xmm2,xmm2,xmm29 + jmp NEAR $L$_ghash_done_659 + +$L$_message_below_32_blocks_659: + + + sub r13,256 + add r11,256 + mov r10d,r13d + test r14,r14 + jnz NEAR $L$_skip_hkeys_precomputation_770 + vmovdqu64 zmm3,ZMMWORD[640+rsp] + + + vshufi64x2 zmm3,zmm3,zmm3,0x00 + + vmovdqu64 zmm4,ZMMWORD[576+rsp] + vmovdqu64 zmm5,ZMMWORD[512+rsp] + + vpclmulqdq zmm6,zmm4,zmm3,0x11 + vpclmulqdq zmm7,zmm4,zmm3,0x00 + vpclmulqdq zmm10,zmm4,zmm3,0x01 + vpclmulqdq zmm4,zmm4,zmm3,0x10 + vpxorq zmm4,zmm4,zmm10 + + vpsrldq zmm10,zmm4,8 + vpslldq zmm4,zmm4,8 + vpxorq zmm6,zmm6,zmm10 + vpxorq zmm4,zmm4,zmm7 + + + + vmovdqu64 zmm10,ZMMWORD[POLY2] + + vpclmulqdq zmm7,zmm10,zmm4,0x01 + vpslldq zmm7,zmm7,8 + vpxorq zmm4,zmm4,zmm7 + + + + vpclmulqdq zmm7,zmm10,zmm4,0x00 + vpsrldq zmm7,zmm7,4 + vpclmulqdq zmm4,zmm10,zmm4,0x10 + vpslldq zmm4,zmm4,4 + + vpternlogq zmm4,zmm6,zmm7,0x96 + + vmovdqu64 ZMMWORD[448+rsp],zmm4 + + vpclmulqdq zmm6,zmm5,zmm3,0x11 + vpclmulqdq zmm7,zmm5,zmm3,0x00 + vpclmulqdq zmm10,zmm5,zmm3,0x01 + vpclmulqdq zmm5,zmm5,zmm3,0x10 + vpxorq zmm5,zmm5,zmm10 + + vpsrldq zmm10,zmm5,8 + vpslldq zmm5,zmm5,8 + vpxorq zmm6,zmm6,zmm10 + vpxorq zmm5,zmm5,zmm7 + + + + vmovdqu64 zmm10,ZMMWORD[POLY2] + + vpclmulqdq zmm7,zmm10,zmm5,0x01 + vpslldq zmm7,zmm7,8 + vpxorq zmm5,zmm5,zmm7 + + + + vpclmulqdq zmm7,zmm10,zmm5,0x00 + vpsrldq zmm7,zmm7,4 + vpclmulqdq zmm5,zmm10,zmm5,0x10 + vpslldq zmm5,zmm5,4 + + vpternlogq zmm5,zmm6,zmm7,0x96 + + vmovdqu64 ZMMWORD[384+rsp],zmm5 + + vpclmulqdq zmm6,zmm4,zmm3,0x11 + vpclmulqdq zmm7,zmm4,zmm3,0x00 + vpclmulqdq zmm10,zmm4,zmm3,0x01 + vpclmulqdq zmm4,zmm4,zmm3,0x10 + vpxorq zmm4,zmm4,zmm10 + + vpsrldq zmm10,zmm4,8 + vpslldq zmm4,zmm4,8 + vpxorq zmm6,zmm6,zmm10 + vpxorq zmm4,zmm4,zmm7 + + + + vmovdqu64 zmm10,ZMMWORD[POLY2] + + vpclmulqdq zmm7,zmm10,zmm4,0x01 + vpslldq zmm7,zmm7,8 + vpxorq zmm4,zmm4,zmm7 + + + + vpclmulqdq zmm7,zmm10,zmm4,0x00 + vpsrldq zmm7,zmm7,4 + vpclmulqdq zmm4,zmm10,zmm4,0x10 + vpslldq zmm4,zmm4,4 + + vpternlogq zmm4,zmm6,zmm7,0x96 + + vmovdqu64 ZMMWORD[320+rsp],zmm4 + + vpclmulqdq zmm6,zmm5,zmm3,0x11 + vpclmulqdq zmm7,zmm5,zmm3,0x00 + vpclmulqdq zmm10,zmm5,zmm3,0x01 + vpclmulqdq zmm5,zmm5,zmm3,0x10 + vpxorq zmm5,zmm5,zmm10 + + vpsrldq zmm10,zmm5,8 + vpslldq zmm5,zmm5,8 + vpxorq zmm6,zmm6,zmm10 + vpxorq zmm5,zmm5,zmm7 + + + + vmovdqu64 zmm10,ZMMWORD[POLY2] + + vpclmulqdq zmm7,zmm10,zmm5,0x01 + vpslldq zmm7,zmm7,8 + vpxorq zmm5,zmm5,zmm7 + + + + vpclmulqdq zmm7,zmm10,zmm5,0x00 + vpsrldq zmm7,zmm7,4 + vpclmulqdq zmm5,zmm10,zmm5,0x10 + vpslldq zmm5,zmm5,4 + + vpternlogq zmm5,zmm6,zmm7,0x96 + + vmovdqu64 ZMMWORD[256+rsp],zmm5 +$L$_skip_hkeys_precomputation_770: + mov r14,1 + and r10d,~15 + mov ebx,512 + sub ebx,r10d + mov r10d,r13d + add r10d,15 + shr r10d,4 + je NEAR $L$_last_num_blocks_is_0_771 + + cmp r10d,8 + je NEAR $L$_last_num_blocks_is_8_771 + jb NEAR $L$_last_num_blocks_is_7_1_771 + + + cmp r10d,12 + je NEAR $L$_last_num_blocks_is_12_771 + jb NEAR $L$_last_num_blocks_is_11_9_771 + + + cmp r10d,15 + je NEAR $L$_last_num_blocks_is_15_771 + ja NEAR $L$_last_num_blocks_is_16_771 + cmp r10d,14 + je NEAR $L$_last_num_blocks_is_14_771 + jmp NEAR $L$_last_num_blocks_is_13_771 + +$L$_last_num_blocks_is_11_9_771: + + cmp r10d,10 + je NEAR $L$_last_num_blocks_is_10_771 + ja NEAR $L$_last_num_blocks_is_11_771 + jmp NEAR $L$_last_num_blocks_is_9_771 + +$L$_last_num_blocks_is_7_1_771: + cmp r10d,4 + je NEAR $L$_last_num_blocks_is_4_771 + jb NEAR $L$_last_num_blocks_is_3_1_771 + + cmp r10d,6 + ja NEAR $L$_last_num_blocks_is_7_771 + je NEAR $L$_last_num_blocks_is_6_771 + jmp NEAR $L$_last_num_blocks_is_5_771 + +$L$_last_num_blocks_is_3_1_771: + + cmp r10d,2 + ja NEAR $L$_last_num_blocks_is_3_771 + je NEAR $L$_last_num_blocks_is_2_771 +$L$_last_num_blocks_is_1_771: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,255 + jae NEAR $L$_16_blocks_overflow_772 + vpaddd xmm0,xmm2,xmm28 + jmp NEAR $L$_16_blocks_ok_772 + +$L$_16_blocks_overflow_772: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb xmm0,xmm0,xmm29 +$L$_16_blocks_ok_772: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm0,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 xmm17{k1}{z},[r11*1+r9] + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc xmm0,xmm0,xmm31 + vaesenclast xmm0,xmm0,xmm30 + vpxorq xmm0,xmm0,xmm17 + vextracti32x4 xmm11,zmm0,0 + mov r10,QWORD[120+rbp] + vmovdqu8 XMMWORD[r11*1+r10]{k1},xmm0 + vmovdqu8 zmm17{k1}{z},zmm17 + vpshufb xmm17,xmm17,xmm29 + vextracti32x4 xmm7,zmm17,0 + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_773 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm17,xmm1,0x01 + vpclmulqdq xmm5,xmm17,xmm1,0x10 + vpclmulqdq xmm0,xmm17,xmm1,0x11 + vpclmulqdq xmm3,xmm17,xmm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_773 +$L$_small_initial_partial_block_773: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + + + vpsrldq zmm0,zmm26,8 + vpslldq zmm3,zmm26,8 + vpxorq zmm24,zmm24,zmm0 + vpxorq zmm25,zmm25,zmm3 + vextracti64x4 ymm0,zmm24,1 + vpxorq ymm24,ymm24,ymm0 + vextracti32x4 xmm0,ymm24,1 + vpxorq xmm24,xmm24,xmm0 + vextracti64x4 ymm3,zmm25,1 + vpxorq ymm25,ymm25,ymm3 + vextracti32x4 xmm3,ymm25,1 + vpxorq xmm25,xmm25,xmm3 + vmovdqa64 xmm0,XMMWORD[POLY2] + + + vpclmulqdq xmm3,xmm0,xmm25,0x01 + vpslldq xmm3,xmm3,8 + vpxorq xmm3,xmm25,xmm3 + + + vpclmulqdq xmm4,xmm0,xmm3,0x00 + vpsrldq xmm4,xmm4,4 + vpclmulqdq xmm14,xmm0,xmm3,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm4,xmm24,0x96 + + + + + + + + + + + + + vpxorq xmm14,xmm14,xmm7 + + jmp NEAR $L$_after_reduction_773 +$L$_small_initial_compute_done_773: +$L$_after_reduction_773: + jmp NEAR $L$_last_blocks_done_771 +$L$_last_num_blocks_is_2_771: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,254 + jae NEAR $L$_16_blocks_overflow_774 + vpaddd ymm0,ymm2,ymm28 + jmp NEAR $L$_16_blocks_ok_774 + +$L$_16_blocks_overflow_774: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb ymm0,ymm0,ymm29 +$L$_16_blocks_ok_774: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm0,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 ymm17{k1}{z},[r11*1+r9] + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc ymm0,ymm0,ymm31 + vaesenclast ymm0,ymm0,ymm30 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm11,zmm0,1 + mov r10,QWORD[120+rbp] + vmovdqu8 YMMWORD[r11*1+r10]{k1},ymm0 + vmovdqu8 zmm17{k1}{z},zmm17 + vpshufb ymm17,ymm17,ymm29 + vextracti32x4 xmm7,zmm17,1 + sub r13,16 * (2 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_775 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm17,ymm1,0x01 + vpclmulqdq ymm5,ymm17,ymm1,0x10 + vpclmulqdq ymm0,ymm17,ymm1,0x11 + vpclmulqdq ymm3,ymm17,ymm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_775 +$L$_small_initial_partial_block_775: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm17,xmm1,0x01 + vpclmulqdq xmm5,xmm17,xmm1,0x10 + vpclmulqdq xmm0,xmm17,xmm1,0x11 + vpclmulqdq xmm3,xmm17,xmm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_775: + + or r13,r13 + je NEAR $L$_after_reduction_775 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_775: + jmp NEAR $L$_last_blocks_done_771 +$L$_last_num_blocks_is_3_771: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,253 + jae NEAR $L$_16_blocks_overflow_776 + vpaddd zmm0,zmm2,zmm28 + jmp NEAR $L$_16_blocks_ok_776 + +$L$_16_blocks_overflow_776: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb zmm0,zmm0,zmm29 +$L$_16_blocks_ok_776: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm0,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17{k1}{z},[r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vpxorq zmm0,zmm0,zmm17 + vextracti32x4 xmm11,zmm0,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10]{k1},zmm0 + vmovdqu8 zmm17{k1}{z},zmm17 + vpshufb zmm17,zmm17,zmm29 + vextracti32x4 xmm7,zmm17,2 + sub r13,16 * (3 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_777 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_777 +$L$_small_initial_partial_block_777: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm17,ymm1,0x01 + vpclmulqdq ymm5,ymm17,ymm1,0x10 + vpclmulqdq ymm0,ymm17,ymm1,0x11 + vpclmulqdq ymm3,ymm17,ymm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_777: + + or r13,r13 + je NEAR $L$_after_reduction_777 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_777: + jmp NEAR $L$_last_blocks_done_771 +$L$_last_num_blocks_is_4_771: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,252 + jae NEAR $L$_16_blocks_overflow_778 + vpaddd zmm0,zmm2,zmm28 + jmp NEAR $L$_16_blocks_ok_778 + +$L$_16_blocks_overflow_778: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb zmm0,zmm0,zmm29 +$L$_16_blocks_ok_778: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm0,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17{k1}{z},[r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vpxorq zmm0,zmm0,zmm17 + vextracti32x4 xmm11,zmm0,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10]{k1},zmm0 + vmovdqu8 zmm17{k1}{z},zmm17 + vpshufb zmm17,zmm17,zmm29 + vextracti32x4 xmm7,zmm17,3 + sub r13,16 * (4 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_779 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_779 +$L$_small_initial_partial_block_779: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_779: + + or r13,r13 + je NEAR $L$_after_reduction_779 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_779: + jmp NEAR $L$_last_blocks_done_771 +$L$_last_num_blocks_is_5_771: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,251 + jae NEAR $L$_16_blocks_overflow_780 + vpaddd zmm0,zmm2,zmm28 + vpaddd xmm3,xmm0,xmm27 + jmp NEAR $L$_16_blocks_ok_780 + +$L$_16_blocks_overflow_780: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb xmm3,xmm3,xmm29 +$L$_16_blocks_ok_780: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm3,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 xmm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast xmm3,xmm3,xmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq xmm3,xmm3,xmm19 + vextracti32x4 xmm11,zmm3,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 XMMWORD[64+r11*1+r10]{k1},xmm3 + vmovdqu8 zmm19{k1}{z},zmm19 + vpshufb zmm17,zmm17,zmm29 + vpshufb xmm19,xmm19,xmm29 + vextracti32x4 xmm7,zmm19,0 + sub r13,16 * (5 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_781 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm19,xmm1,0x01 + vpclmulqdq xmm5,xmm19,xmm1,0x10 + vpclmulqdq xmm0,xmm19,xmm1,0x11 + vpclmulqdq xmm3,xmm19,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_781 +$L$_small_initial_partial_block_781: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_781: + + or r13,r13 + je NEAR $L$_after_reduction_781 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_781: + jmp NEAR $L$_last_blocks_done_771 +$L$_last_num_blocks_is_6_771: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,250 + jae NEAR $L$_16_blocks_overflow_782 + vpaddd zmm0,zmm2,zmm28 + vpaddd ymm3,ymm0,ymm27 + jmp NEAR $L$_16_blocks_ok_782 + +$L$_16_blocks_overflow_782: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb ymm3,ymm3,ymm29 +$L$_16_blocks_ok_782: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm3,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 ymm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast ymm3,ymm3,ymm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm11,zmm3,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 YMMWORD[64+r11*1+r10]{k1},ymm3 + vmovdqu8 zmm19{k1}{z},zmm19 + vpshufb zmm17,zmm17,zmm29 + vpshufb ymm19,ymm19,ymm29 + vextracti32x4 xmm7,zmm19,1 + sub r13,16 * (6 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_783 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm19,ymm1,0x01 + vpclmulqdq ymm5,ymm19,ymm1,0x10 + vpclmulqdq ymm0,ymm19,ymm1,0x11 + vpclmulqdq ymm3,ymm19,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_783 +$L$_small_initial_partial_block_783: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm19,xmm1,0x01 + vpclmulqdq xmm5,xmm19,xmm1,0x10 + vpclmulqdq xmm0,xmm19,xmm1,0x11 + vpclmulqdq xmm3,xmm19,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_783: + + or r13,r13 + je NEAR $L$_after_reduction_783 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_783: + jmp NEAR $L$_last_blocks_done_771 +$L$_last_num_blocks_is_7_771: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,249 + jae NEAR $L$_16_blocks_overflow_784 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + jmp NEAR $L$_16_blocks_ok_784 + +$L$_16_blocks_overflow_784: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 +$L$_16_blocks_ok_784: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm3,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti32x4 xmm11,zmm3,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10]{k1},zmm3 + vmovdqu8 zmm19{k1}{z},zmm19 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vextracti32x4 xmm7,zmm19,2 + sub r13,16 * (7 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_785 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm19,zmm1,0x01 + vpclmulqdq zmm5,zmm19,zmm1,0x10 + vpclmulqdq zmm0,zmm19,zmm1,0x11 + vpclmulqdq zmm3,zmm19,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_785 +$L$_small_initial_partial_block_785: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm19,ymm1,0x01 + vpclmulqdq ymm5,ymm19,ymm1,0x10 + vpclmulqdq ymm0,ymm19,ymm1,0x11 + vpclmulqdq ymm3,ymm19,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_785: + + or r13,r13 + je NEAR $L$_after_reduction_785 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_785: + jmp NEAR $L$_last_blocks_done_771 +$L$_last_num_blocks_is_8_771: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,248 + jae NEAR $L$_16_blocks_overflow_786 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + jmp NEAR $L$_16_blocks_ok_786 + +$L$_16_blocks_overflow_786: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 +$L$_16_blocks_ok_786: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm3,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti32x4 xmm11,zmm3,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10]{k1},zmm3 + vmovdqu8 zmm19{k1}{z},zmm19 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vextracti32x4 xmm7,zmm19,3 + sub r13,16 * (8 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_787 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_787 +$L$_small_initial_partial_block_787: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm19,zmm1,0x01 + vpclmulqdq zmm5,zmm19,zmm1,0x10 + vpclmulqdq zmm0,zmm19,zmm1,0x11 + vpclmulqdq zmm3,zmm19,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_787: + + or r13,r13 + je NEAR $L$_after_reduction_787 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_787: + jmp NEAR $L$_last_blocks_done_771 +$L$_last_num_blocks_is_9_771: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,247 + jae NEAR $L$_16_blocks_overflow_788 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd xmm4,xmm3,xmm27 + jmp NEAR $L$_16_blocks_ok_788 + +$L$_16_blocks_overflow_788: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb xmm4,xmm4,xmm29 +$L$_16_blocks_ok_788: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm4,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 xmm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast xmm4,xmm4,xmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq xmm4,xmm4,xmm20 + vextracti32x4 xmm11,zmm4,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 XMMWORD[128+r11*1+r10]{k1},xmm4 + vmovdqu8 zmm20{k1}{z},zmm20 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb xmm20,xmm20,xmm29 + vextracti32x4 xmm7,zmm20,0 + sub r13,16 * (9 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_789 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm20,xmm1,0x01 + vpclmulqdq xmm5,xmm20,xmm1,0x10 + vpclmulqdq xmm0,xmm20,xmm1,0x11 + vpclmulqdq xmm3,xmm20,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_789 +$L$_small_initial_partial_block_789: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_789: + + or r13,r13 + je NEAR $L$_after_reduction_789 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_789: + jmp NEAR $L$_last_blocks_done_771 +$L$_last_num_blocks_is_10_771: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,246 + jae NEAR $L$_16_blocks_overflow_790 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd ymm4,ymm3,ymm27 + jmp NEAR $L$_16_blocks_ok_790 + +$L$_16_blocks_overflow_790: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb ymm4,ymm4,ymm29 +$L$_16_blocks_ok_790: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm4,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 ymm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast ymm4,ymm4,ymm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq ymm4,ymm4,ymm20 + vextracti32x4 xmm11,zmm4,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 YMMWORD[128+r11*1+r10]{k1},ymm4 + vmovdqu8 zmm20{k1}{z},zmm20 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb ymm20,ymm20,ymm29 + vextracti32x4 xmm7,zmm20,1 + sub r13,16 * (10 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_791 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm20,ymm1,0x01 + vpclmulqdq ymm5,ymm20,ymm1,0x10 + vpclmulqdq ymm0,ymm20,ymm1,0x11 + vpclmulqdq ymm3,ymm20,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_791 +$L$_small_initial_partial_block_791: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm20,xmm1,0x01 + vpclmulqdq xmm5,xmm20,xmm1,0x10 + vpclmulqdq xmm0,xmm20,xmm1,0x11 + vpclmulqdq xmm3,xmm20,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_791: + + or r13,r13 + je NEAR $L$_after_reduction_791 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_791: + jmp NEAR $L$_last_blocks_done_771 +$L$_last_num_blocks_is_11_771: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,245 + jae NEAR $L$_16_blocks_overflow_792 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + jmp NEAR $L$_16_blocks_ok_792 + +$L$_16_blocks_overflow_792: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 +$L$_16_blocks_ok_792: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm4,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vextracti32x4 xmm11,zmm4,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10]{k1},zmm4 + vmovdqu8 zmm20{k1}{z},zmm20 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb zmm20,zmm20,zmm29 + vextracti32x4 xmm7,zmm20,2 + sub r13,16 * (11 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_793 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm20,zmm1,0x01 + vpclmulqdq zmm5,zmm20,zmm1,0x10 + vpclmulqdq zmm0,zmm20,zmm1,0x11 + vpclmulqdq zmm3,zmm20,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_793 +$L$_small_initial_partial_block_793: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm20,ymm1,0x01 + vpclmulqdq ymm5,ymm20,ymm1,0x10 + vpclmulqdq ymm0,ymm20,ymm1,0x11 + vpclmulqdq ymm3,ymm20,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_793: + + or r13,r13 + je NEAR $L$_after_reduction_793 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_793: + jmp NEAR $L$_last_blocks_done_771 +$L$_last_num_blocks_is_12_771: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,244 + jae NEAR $L$_16_blocks_overflow_794 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + jmp NEAR $L$_16_blocks_ok_794 + +$L$_16_blocks_overflow_794: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 +$L$_16_blocks_ok_794: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm4,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vextracti32x4 xmm11,zmm4,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10]{k1},zmm4 + vmovdqu8 zmm20{k1}{z},zmm20 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb zmm20,zmm20,zmm29 + vextracti32x4 xmm7,zmm20,3 + sub r13,16 * (12 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_795 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[160+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_795 +$L$_small_initial_partial_block_795: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm20,zmm1,0x01 + vpclmulqdq zmm5,zmm20,zmm1,0x10 + vpclmulqdq zmm0,zmm20,zmm1,0x11 + vpclmulqdq zmm3,zmm20,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_795: + + or r13,r13 + je NEAR $L$_after_reduction_795 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_795: + jmp NEAR $L$_last_blocks_done_771 +$L$_last_num_blocks_is_13_771: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,243 + jae NEAR $L$_16_blocks_overflow_796 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd xmm5,xmm4,xmm27 + jmp NEAR $L$_16_blocks_ok_796 + +$L$_16_blocks_overflow_796: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb xmm5,xmm5,xmm29 +$L$_16_blocks_ok_796: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm5,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 xmm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast xmm5,xmm5,xmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq xmm5,xmm5,xmm21 + vextracti32x4 xmm11,zmm5,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 XMMWORD[192+r11*1+r10]{k1},xmm5 + vmovdqu8 zmm21{k1}{z},zmm21 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb zmm20,zmm20,zmm29 + vpshufb xmm21,xmm21,xmm29 + vextracti32x4 xmm7,zmm21,0 + sub r13,16 * (13 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_797 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[144+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm21,xmm1,0x01 + vpclmulqdq xmm5,xmm21,xmm1,0x10 + vpclmulqdq xmm0,xmm21,xmm1,0x11 + vpclmulqdq xmm3,xmm21,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_797 +$L$_small_initial_partial_block_797: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[160+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_797: + + or r13,r13 + je NEAR $L$_after_reduction_797 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_797: + jmp NEAR $L$_last_blocks_done_771 +$L$_last_num_blocks_is_14_771: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,242 + jae NEAR $L$_16_blocks_overflow_798 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd ymm5,ymm4,ymm27 + jmp NEAR $L$_16_blocks_ok_798 + +$L$_16_blocks_overflow_798: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb ymm5,ymm5,ymm29 +$L$_16_blocks_ok_798: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm5,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 ymm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast ymm5,ymm5,ymm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq ymm5,ymm5,ymm21 + vextracti32x4 xmm11,zmm5,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 YMMWORD[192+r11*1+r10]{k1},ymm5 + vmovdqu8 zmm21{k1}{z},zmm21 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb zmm20,zmm20,zmm29 + vpshufb ymm21,ymm21,ymm29 + vextracti32x4 xmm7,zmm21,1 + sub r13,16 * (14 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_799 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[128+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm21,ymm1,0x01 + vpclmulqdq ymm5,ymm21,ymm1,0x10 + vpclmulqdq ymm0,ymm21,ymm1,0x11 + vpclmulqdq ymm3,ymm21,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_799 +$L$_small_initial_partial_block_799: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[144+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm21,xmm1,0x01 + vpclmulqdq xmm5,xmm21,xmm1,0x10 + vpclmulqdq xmm0,xmm21,xmm1,0x11 + vpclmulqdq xmm3,xmm21,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_799: + + or r13,r13 + je NEAR $L$_after_reduction_799 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_799: + jmp NEAR $L$_last_blocks_done_771 +$L$_last_num_blocks_is_15_771: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,241 + jae NEAR $L$_16_blocks_overflow_800 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_800 + +$L$_16_blocks_overflow_800: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_800: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm5,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + vextracti32x4 xmm11,zmm5,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[192+r11*1+r10]{k1},zmm5 + vmovdqu8 zmm21{k1}{z},zmm21 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb zmm20,zmm20,zmm29 + vpshufb zmm21,zmm21,zmm29 + vextracti32x4 xmm7,zmm21,2 + sub r13,16 * (15 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_801 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[112+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm21,zmm1,0x01 + vpclmulqdq zmm5,zmm21,zmm1,0x10 + vpclmulqdq zmm0,zmm21,zmm1,0x11 + vpclmulqdq zmm3,zmm21,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_801 +$L$_small_initial_partial_block_801: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[128+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm21,ymm1,0x01 + vpclmulqdq ymm5,ymm21,ymm1,0x10 + vpclmulqdq ymm0,ymm21,ymm1,0x11 + vpclmulqdq ymm3,ymm21,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_801: + + or r13,r13 + je NEAR $L$_after_reduction_801 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_801: + jmp NEAR $L$_last_blocks_done_771 +$L$_last_num_blocks_is_16_771: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,240 + jae NEAR $L$_16_blocks_overflow_802 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_802 + +$L$_16_blocks_overflow_802: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_802: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm5,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + vextracti32x4 xmm11,zmm5,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[192+r11*1+r10]{k1},zmm5 + vmovdqu8 zmm21{k1}{z},zmm21 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb zmm20,zmm20,zmm29 + vpshufb zmm21,zmm21,zmm29 + vextracti32x4 xmm7,zmm21,3 + sub r13,16 * (16 - 1) +$L$_small_initial_partial_block_803: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[112+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm21,zmm1,0x01 + vpclmulqdq zmm5,zmm21,zmm1,0x10 + vpclmulqdq zmm0,zmm21,zmm1,0x11 + vpclmulqdq zmm3,zmm21,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_803: + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_803: + jmp NEAR $L$_last_blocks_done_771 +$L$_last_num_blocks_is_0_771: + vmovdqa64 zmm13,ZMMWORD[768+rsp] + vpxorq zmm13,zmm13,zmm14 + vmovdqu64 zmm12,ZMMWORD[rbx*1+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[832+rsp] + vmovdqu64 zmm12,ZMMWORD[64+rbx*1+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + vpxorq zmm26,zmm4,zmm10 + vpxorq zmm24,zmm0,zmm6 + vpxorq zmm25,zmm3,zmm7 + vpternlogq zmm26,zmm5,zmm11,0x96 + vmovdqa64 zmm13,ZMMWORD[896+rsp] + vmovdqu64 zmm12,ZMMWORD[128+rbx*1+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[960+rsp] + vmovdqu64 zmm12,ZMMWORD[192+rbx*1+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + + vpternlogq zmm26,zmm4,zmm10,0x96 + vpternlogq zmm24,zmm0,zmm6,0x96 + vpternlogq zmm25,zmm3,zmm7,0x96 + vpternlogq zmm26,zmm5,zmm11,0x96 + + vpsrldq zmm0,zmm26,8 + vpslldq zmm3,zmm26,8 + vpxorq zmm24,zmm24,zmm0 + vpxorq zmm25,zmm25,zmm3 + vextracti64x4 ymm0,zmm24,1 + vpxorq ymm24,ymm24,ymm0 + vextracti32x4 xmm0,ymm24,1 + vpxorq xmm24,xmm24,xmm0 + vextracti64x4 ymm3,zmm25,1 + vpxorq ymm25,ymm25,ymm3 + vextracti32x4 xmm3,ymm25,1 + vpxorq xmm25,xmm25,xmm3 + vmovdqa64 xmm4,XMMWORD[POLY2] + + + vpclmulqdq xmm0,xmm4,xmm25,0x01 + vpslldq xmm0,xmm0,8 + vpxorq xmm0,xmm25,xmm0 + + + vpclmulqdq xmm3,xmm4,xmm0,0x00 + vpsrldq xmm3,xmm3,4 + vpclmulqdq xmm14,xmm4,xmm0,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm3,xmm24,0x96 + +$L$_last_blocks_done_771: + vpshufb xmm2,xmm2,xmm29 + jmp NEAR $L$_ghash_done_659 + +$L$_message_below_equal_16_blocks_659: + + + mov r12d,r13d + add r12d,15 + shr r12d,4 + cmp r12,8 + je NEAR $L$_small_initial_num_blocks_is_8_804 + jl NEAR $L$_small_initial_num_blocks_is_7_1_804 + + + cmp r12,12 + je NEAR $L$_small_initial_num_blocks_is_12_804 + jl NEAR $L$_small_initial_num_blocks_is_11_9_804 + + + cmp r12,16 + je NEAR $L$_small_initial_num_blocks_is_16_804 + cmp r12,15 + je NEAR $L$_small_initial_num_blocks_is_15_804 + cmp r12,14 + je NEAR $L$_small_initial_num_blocks_is_14_804 + jmp NEAR $L$_small_initial_num_blocks_is_13_804 + +$L$_small_initial_num_blocks_is_11_9_804: + + cmp r12,11 + je NEAR $L$_small_initial_num_blocks_is_11_804 + cmp r12,10 + je NEAR $L$_small_initial_num_blocks_is_10_804 + jmp NEAR $L$_small_initial_num_blocks_is_9_804 + +$L$_small_initial_num_blocks_is_7_1_804: + cmp r12,4 + je NEAR $L$_small_initial_num_blocks_is_4_804 + jl NEAR $L$_small_initial_num_blocks_is_3_1_804 + + cmp r12,7 + je NEAR $L$_small_initial_num_blocks_is_7_804 + cmp r12,6 + je NEAR $L$_small_initial_num_blocks_is_6_804 + jmp NEAR $L$_small_initial_num_blocks_is_5_804 + +$L$_small_initial_num_blocks_is_3_1_804: + + cmp r12,3 + je NEAR $L$_small_initial_num_blocks_is_3_804 + cmp r12,2 + je NEAR $L$_small_initial_num_blocks_is_2_804 + + + + + +$L$_small_initial_num_blocks_is_1_804: + vmovdqa64 xmm29,XMMWORD[SHUF_MASK] + vpaddd xmm0,xmm2,XMMWORD[ONE] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm0,0 + vpshufb xmm0,xmm0,xmm29 + vmovdqu8 xmm6{k1}{z},[r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq xmm0,xmm0,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc xmm0,xmm0,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc xmm0,xmm0,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc xmm0,xmm0,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc xmm0,xmm0,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc xmm0,xmm0,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc xmm0,xmm0,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc xmm0,xmm0,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc xmm0,xmm0,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc xmm0,xmm0,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenc xmm0,xmm0,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[176+rcx] + vaesenc xmm0,xmm0,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[192+rcx] + vaesenclast xmm0,xmm0,xmm15 + vpxorq xmm0,xmm0,xmm6 + vextracti32x4 xmm12,zmm0,0 + mov r10,QWORD[120+rbp] + vmovdqu8 XMMWORD[r11*1+r10]{k1},xmm0 + vmovdqu8 zmm0{k1}{z},zmm0 + vpshufb xmm6,xmm6,xmm29 + vextracti32x4 xmm13,zmm6,0 + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_805 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 xmm20,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm6,xmm20,0x01 + vpclmulqdq xmm5,xmm6,xmm20,0x10 + vpclmulqdq xmm0,xmm6,xmm20,0x11 + vpclmulqdq xmm3,xmm6,xmm20,0x00 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_805 +$L$_small_initial_partial_block_805: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + + + + + + + + + + + + vpxorq xmm14,xmm14,xmm13 + + jmp NEAR $L$_after_reduction_805 +$L$_small_initial_compute_done_805: +$L$_after_reduction_805: + jmp NEAR $L$_small_initial_blocks_encrypted_804 +$L$_small_initial_num_blocks_is_2_804: + vmovdqa64 ymm29,YMMWORD[SHUF_MASK] + vshufi64x2 ymm0,ymm2,ymm2,0 + vpaddd ymm0,ymm0,YMMWORD[ddq_add_1234] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm0,1 + vpshufb ymm0,ymm0,ymm29 + vmovdqu8 ymm6{k1}{z},[r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq ymm0,ymm0,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc ymm0,ymm0,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc ymm0,ymm0,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc ymm0,ymm0,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc ymm0,ymm0,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc ymm0,ymm0,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc ymm0,ymm0,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc ymm0,ymm0,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc ymm0,ymm0,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc ymm0,ymm0,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenc ymm0,ymm0,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[176+rcx] + vaesenc ymm0,ymm0,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[192+rcx] + vaesenclast ymm0,ymm0,ymm15 + vpxorq ymm0,ymm0,ymm6 + vextracti32x4 xmm12,zmm0,1 + mov r10,QWORD[120+rbp] + vmovdqu8 YMMWORD[r11*1+r10]{k1},ymm0 + vmovdqu8 zmm0{k1}{z},zmm0 + vpshufb ymm6,ymm6,ymm29 + vextracti32x4 xmm13,zmm6,1 + sub r13,16 * (2 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_806 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 ymm20,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm6,ymm20,0x01 + vpclmulqdq ymm5,ymm6,ymm20,0x10 + vpclmulqdq ymm0,ymm6,ymm20,0x11 + vpclmulqdq ymm3,ymm6,ymm20,0x00 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_806 +$L$_small_initial_partial_block_806: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 xmm20,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm6,xmm20,0x01 + vpclmulqdq xmm5,xmm6,xmm20,0x10 + vpclmulqdq xmm0,xmm6,xmm20,0x11 + vpclmulqdq xmm3,xmm6,xmm20,0x00 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_806: + + or r13,r13 + je NEAR $L$_after_reduction_806 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_806: + jmp NEAR $L$_small_initial_blocks_encrypted_804 +$L$_small_initial_num_blocks_is_3_804: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm0,2 + vpshufb zmm0,zmm0,zmm29 + vmovdqu8 zmm6{k1}{z},[r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[192+rcx] + vaesenclast zmm0,zmm0,zmm15 + vpxorq zmm0,zmm0,zmm6 + vextracti32x4 xmm12,zmm0,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10]{k1},zmm0 + vmovdqu8 zmm0{k1}{z},zmm0 + vpshufb zmm6,zmm6,zmm29 + vextracti32x4 xmm13,zmm6,2 + sub r13,16 * (3 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_807 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 ymm20,YMMWORD[304+rdx] + vinserti64x2 zmm20,zmm20,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_807 +$L$_small_initial_partial_block_807: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 ymm20,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm6,ymm20,0x01 + vpclmulqdq ymm5,ymm6,ymm20,0x10 + vpclmulqdq ymm0,ymm6,ymm20,0x11 + vpclmulqdq ymm3,ymm6,ymm20,0x00 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_807: + + or r13,r13 + je NEAR $L$_after_reduction_807 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_807: + jmp NEAR $L$_small_initial_blocks_encrypted_804 +$L$_small_initial_num_blocks_is_4_804: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm0,3 + vpshufb zmm0,zmm0,zmm29 + vmovdqu8 zmm6{k1}{z},[r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[192+rcx] + vaesenclast zmm0,zmm0,zmm15 + vpxorq zmm0,zmm0,zmm6 + vextracti32x4 xmm12,zmm0,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10]{k1},zmm0 + vmovdqu8 zmm0{k1}{z},zmm0 + vpshufb zmm6,zmm6,zmm29 + vextracti32x4 xmm13,zmm6,3 + sub r13,16 * (4 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_808 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[288+rdx] + vpclmulqdq zmm15,zmm6,zmm20,0x11 + vpclmulqdq zmm16,zmm6,zmm20,0x00 + vpclmulqdq zmm17,zmm6,zmm20,0x01 + vpclmulqdq zmm19,zmm6,zmm20,0x10 + + vpxorq zmm17,zmm17,zmm19 + vpsrldq zmm4,zmm17,8 + vpslldq zmm5,zmm17,8 + vpxorq zmm0,zmm15,zmm4 + vpxorq zmm3,zmm16,zmm5 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_808 +$L$_small_initial_partial_block_808: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 ymm20,YMMWORD[304+rdx] + vinserti64x2 zmm20,zmm20,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_808: + + or r13,r13 + je NEAR $L$_after_reduction_808 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_808: + jmp NEAR $L$_small_initial_blocks_encrypted_804 +$L$_small_initial_num_blocks_is_5_804: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm2,ZMMWORD[ddq_add_5678] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + sub r15,64 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm3,0 + vpshufb zmm0,zmm0,zmm29 + vpshufb xmm3,xmm3,xmm29 + vmovdqu8 zmm6,ZMMWORD[r11*1+r9] + vmovdqu8 xmm7{k1}{z},[64+r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vpxorq xmm3,xmm3,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc xmm3,xmm3,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc xmm3,xmm3,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc xmm3,xmm3,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc xmm3,xmm3,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc xmm3,xmm3,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc xmm3,xmm3,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc xmm3,xmm3,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc xmm3,xmm3,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc xmm3,xmm3,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc xmm3,xmm3,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc xmm3,xmm3,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[192+rcx] + vaesenclast zmm0,zmm0,zmm15 + vaesenclast xmm3,xmm3,xmm15 + vpxorq zmm0,zmm0,zmm6 + vpxorq xmm3,xmm3,xmm7 + vextracti32x4 xmm12,zmm3,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 XMMWORD[64+r11*1+r10]{k1},xmm3 + vmovdqu8 zmm3{k1}{z},zmm3 + vpshufb zmm6,zmm6,zmm29 + vpshufb xmm7,xmm7,xmm29 + vextracti32x4 xmm13,zmm7,0 + sub r13,16 * (5 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_809 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[272+rdx] + vpclmulqdq zmm15,zmm6,zmm20,0x11 + vpclmulqdq zmm16,zmm6,zmm20,0x00 + vpclmulqdq zmm17,zmm6,zmm20,0x01 + vpclmulqdq zmm19,zmm6,zmm20,0x10 + vmovdqu64 xmm20,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm7,xmm20,0x01 + vpclmulqdq xmm5,xmm7,xmm20,0x10 + vpclmulqdq xmm0,xmm7,xmm20,0x11 + vpclmulqdq xmm3,xmm7,xmm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_809 +$L$_small_initial_partial_block_809: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[288+rdx] + vpclmulqdq zmm15,zmm6,zmm20,0x11 + vpclmulqdq zmm16,zmm6,zmm20,0x00 + vpclmulqdq zmm17,zmm6,zmm20,0x01 + vpclmulqdq zmm19,zmm6,zmm20,0x10 + + vpxorq zmm17,zmm17,zmm19 + vpsrldq zmm4,zmm17,8 + vpslldq zmm5,zmm17,8 + vpxorq zmm0,zmm15,zmm4 + vpxorq zmm3,zmm16,zmm5 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_809: + + or r13,r13 + je NEAR $L$_after_reduction_809 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_809: + jmp NEAR $L$_small_initial_blocks_encrypted_804 +$L$_small_initial_num_blocks_is_6_804: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm2,ZMMWORD[ddq_add_5678] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + sub r15,64 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm3,1 + vpshufb zmm0,zmm0,zmm29 + vpshufb ymm3,ymm3,ymm29 + vmovdqu8 zmm6,ZMMWORD[r11*1+r9] + vmovdqu8 ymm7{k1}{z},[64+r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vpxorq ymm3,ymm3,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc ymm3,ymm3,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc ymm3,ymm3,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc ymm3,ymm3,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc ymm3,ymm3,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc ymm3,ymm3,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc ymm3,ymm3,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc ymm3,ymm3,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc ymm3,ymm3,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc ymm3,ymm3,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc ymm3,ymm3,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc ymm3,ymm3,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[192+rcx] + vaesenclast zmm0,zmm0,zmm15 + vaesenclast ymm3,ymm3,ymm15 + vpxorq zmm0,zmm0,zmm6 + vpxorq ymm3,ymm3,ymm7 + vextracti32x4 xmm12,zmm3,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 YMMWORD[64+r11*1+r10]{k1},ymm3 + vmovdqu8 zmm3{k1}{z},zmm3 + vpshufb zmm6,zmm6,zmm29 + vpshufb ymm7,ymm7,ymm29 + vextracti32x4 xmm13,zmm7,1 + sub r13,16 * (6 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_810 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[256+rdx] + vpclmulqdq zmm15,zmm6,zmm20,0x11 + vpclmulqdq zmm16,zmm6,zmm20,0x00 + vpclmulqdq zmm17,zmm6,zmm20,0x01 + vpclmulqdq zmm19,zmm6,zmm20,0x10 + vmovdqu64 ymm20,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm7,ymm20,0x01 + vpclmulqdq ymm5,ymm7,ymm20,0x10 + vpclmulqdq ymm0,ymm7,ymm20,0x11 + vpclmulqdq ymm3,ymm7,ymm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_810 +$L$_small_initial_partial_block_810: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[272+rdx] + vpclmulqdq zmm15,zmm6,zmm20,0x11 + vpclmulqdq zmm16,zmm6,zmm20,0x00 + vpclmulqdq zmm17,zmm6,zmm20,0x01 + vpclmulqdq zmm19,zmm6,zmm20,0x10 + vmovdqu64 xmm20,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm7,xmm20,0x01 + vpclmulqdq xmm5,xmm7,xmm20,0x10 + vpclmulqdq xmm0,xmm7,xmm20,0x11 + vpclmulqdq xmm3,xmm7,xmm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_810: + + or r13,r13 + je NEAR $L$_after_reduction_810 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_810: + jmp NEAR $L$_small_initial_blocks_encrypted_804 +$L$_small_initial_num_blocks_is_7_804: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm2,ZMMWORD[ddq_add_5678] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + sub r15,64 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm3,2 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vmovdqu8 zmm6,ZMMWORD[r11*1+r9] + vmovdqu8 zmm7{k1}{z},[64+r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[192+rcx] + vaesenclast zmm0,zmm0,zmm15 + vaesenclast zmm3,zmm3,zmm15 + vpxorq zmm0,zmm0,zmm6 + vpxorq zmm3,zmm3,zmm7 + vextracti32x4 xmm12,zmm3,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10]{k1},zmm3 + vmovdqu8 zmm3{k1}{z},zmm3 + vpshufb zmm6,zmm6,zmm29 + vpshufb zmm7,zmm7,zmm29 + vextracti32x4 xmm13,zmm7,2 + sub r13,16 * (7 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_811 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[240+rdx] + vpclmulqdq zmm15,zmm6,zmm20,0x11 + vpclmulqdq zmm16,zmm6,zmm20,0x00 + vpclmulqdq zmm17,zmm6,zmm20,0x01 + vpclmulqdq zmm19,zmm6,zmm20,0x10 + vmovdqu64 ymm20,YMMWORD[304+rdx] + vinserti64x2 zmm20,zmm20,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm7,zmm20,0x01 + vpclmulqdq zmm5,zmm7,zmm20,0x10 + vpclmulqdq zmm0,zmm7,zmm20,0x11 + vpclmulqdq zmm3,zmm7,zmm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_811 +$L$_small_initial_partial_block_811: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[256+rdx] + vpclmulqdq zmm15,zmm6,zmm20,0x11 + vpclmulqdq zmm16,zmm6,zmm20,0x00 + vpclmulqdq zmm17,zmm6,zmm20,0x01 + vpclmulqdq zmm19,zmm6,zmm20,0x10 + vmovdqu64 ymm20,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm7,ymm20,0x01 + vpclmulqdq ymm5,ymm7,ymm20,0x10 + vpclmulqdq ymm0,ymm7,ymm20,0x11 + vpclmulqdq ymm3,ymm7,ymm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_811: + + or r13,r13 + je NEAR $L$_after_reduction_811 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_811: + jmp NEAR $L$_small_initial_blocks_encrypted_804 +$L$_small_initial_num_blocks_is_8_804: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm2,ZMMWORD[ddq_add_5678] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + sub r15,64 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm3,3 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vmovdqu8 zmm6,ZMMWORD[r11*1+r9] + vmovdqu8 zmm7{k1}{z},[64+r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[192+rcx] + vaesenclast zmm0,zmm0,zmm15 + vaesenclast zmm3,zmm3,zmm15 + vpxorq zmm0,zmm0,zmm6 + vpxorq zmm3,zmm3,zmm7 + vextracti32x4 xmm12,zmm3,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10]{k1},zmm3 + vmovdqu8 zmm3{k1}{z},zmm3 + vpshufb zmm6,zmm6,zmm29 + vpshufb zmm7,zmm7,zmm29 + vextracti32x4 xmm13,zmm7,3 + sub r13,16 * (8 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_812 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[224+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[288+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vpxorq zmm15,zmm0,zmm15 + vpxorq zmm16,zmm3,zmm16 + vpxorq zmm17,zmm4,zmm17 + vpxorq zmm19,zmm5,zmm19 + + vpxorq zmm17,zmm17,zmm19 + vpsrldq zmm4,zmm17,8 + vpslldq zmm5,zmm17,8 + vpxorq zmm0,zmm15,zmm4 + vpxorq zmm3,zmm16,zmm5 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_812 +$L$_small_initial_partial_block_812: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[240+rdx] + vpclmulqdq zmm15,zmm6,zmm20,0x11 + vpclmulqdq zmm16,zmm6,zmm20,0x00 + vpclmulqdq zmm17,zmm6,zmm20,0x01 + vpclmulqdq zmm19,zmm6,zmm20,0x10 + vmovdqu64 ymm20,YMMWORD[304+rdx] + vinserti64x2 zmm20,zmm20,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm7,zmm20,0x01 + vpclmulqdq zmm5,zmm7,zmm20,0x10 + vpclmulqdq zmm0,zmm7,zmm20,0x11 + vpclmulqdq zmm3,zmm7,zmm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_812: + + or r13,r13 + je NEAR $L$_after_reduction_812 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_812: + jmp NEAR $L$_small_initial_blocks_encrypted_804 +$L$_small_initial_num_blocks_is_9_804: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm2,ZMMWORD[ddq_add_5678] + vpaddd zmm4,zmm0,ZMMWORD[ddq_add_8888] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + sub r15,128 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm4,0 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb xmm4,xmm4,xmm29 + vmovdqu8 zmm6,ZMMWORD[r11*1+r9] + vmovdqu8 zmm7,ZMMWORD[64+r11*1+r9] + vmovdqu8 xmm10{k1}{z},[128+r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm15 + vpxorq xmm4,xmm4,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc xmm4,xmm4,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc xmm4,xmm4,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc xmm4,xmm4,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc xmm4,xmm4,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc xmm4,xmm4,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc xmm4,xmm4,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc xmm4,xmm4,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc xmm4,xmm4,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc xmm4,xmm4,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc xmm4,xmm4,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc xmm4,xmm4,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[192+rcx] + vaesenclast zmm0,zmm0,zmm15 + vaesenclast zmm3,zmm3,zmm15 + vaesenclast xmm4,xmm4,xmm15 + vpxorq zmm0,zmm0,zmm6 + vpxorq zmm3,zmm3,zmm7 + vpxorq xmm4,xmm4,xmm10 + vextracti32x4 xmm12,zmm4,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 XMMWORD[128+r11*1+r10]{k1},xmm4 + vmovdqu8 zmm4{k1}{z},zmm4 + vpshufb zmm6,zmm6,zmm29 + vpshufb zmm7,zmm7,zmm29 + vpshufb xmm10,xmm10,xmm29 + vextracti32x4 xmm13,zmm10,0 + sub r13,16 * (9 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_813 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[208+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[272+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vpxorq zmm15,zmm0,zmm15 + vpxorq zmm16,zmm3,zmm16 + vpxorq zmm17,zmm4,zmm17 + vpxorq zmm19,zmm5,zmm19 + vmovdqu64 xmm20,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm10,xmm20,0x01 + vpclmulqdq xmm5,xmm10,xmm20,0x10 + vpclmulqdq xmm0,xmm10,xmm20,0x11 + vpclmulqdq xmm3,xmm10,xmm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_813 +$L$_small_initial_partial_block_813: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[224+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[288+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vpxorq zmm15,zmm0,zmm15 + vpxorq zmm16,zmm3,zmm16 + vpxorq zmm17,zmm4,zmm17 + vpxorq zmm19,zmm5,zmm19 + + vpxorq zmm17,zmm17,zmm19 + vpsrldq zmm4,zmm17,8 + vpslldq zmm5,zmm17,8 + vpxorq zmm0,zmm15,zmm4 + vpxorq zmm3,zmm16,zmm5 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_813: + + or r13,r13 + je NEAR $L$_after_reduction_813 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_813: + jmp NEAR $L$_small_initial_blocks_encrypted_804 +$L$_small_initial_num_blocks_is_10_804: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm2,ZMMWORD[ddq_add_5678] + vpaddd zmm4,zmm0,ZMMWORD[ddq_add_8888] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + sub r15,128 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm4,1 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb ymm4,ymm4,ymm29 + vmovdqu8 zmm6,ZMMWORD[r11*1+r9] + vmovdqu8 zmm7,ZMMWORD[64+r11*1+r9] + vmovdqu8 ymm10{k1}{z},[128+r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm15 + vpxorq ymm4,ymm4,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc ymm4,ymm4,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc ymm4,ymm4,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc ymm4,ymm4,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc ymm4,ymm4,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc ymm4,ymm4,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc ymm4,ymm4,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc ymm4,ymm4,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc ymm4,ymm4,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc ymm4,ymm4,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc ymm4,ymm4,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc ymm4,ymm4,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[192+rcx] + vaesenclast zmm0,zmm0,zmm15 + vaesenclast zmm3,zmm3,zmm15 + vaesenclast ymm4,ymm4,ymm15 + vpxorq zmm0,zmm0,zmm6 + vpxorq zmm3,zmm3,zmm7 + vpxorq ymm4,ymm4,ymm10 + vextracti32x4 xmm12,zmm4,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 YMMWORD[128+r11*1+r10]{k1},ymm4 + vmovdqu8 zmm4{k1}{z},zmm4 + vpshufb zmm6,zmm6,zmm29 + vpshufb zmm7,zmm7,zmm29 + vpshufb ymm10,ymm10,ymm29 + vextracti32x4 xmm13,zmm10,1 + sub r13,16 * (10 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_814 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[192+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[256+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vpxorq zmm15,zmm0,zmm15 + vpxorq zmm16,zmm3,zmm16 + vpxorq zmm17,zmm4,zmm17 + vpxorq zmm19,zmm5,zmm19 + vmovdqu64 ymm20,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm10,ymm20,0x01 + vpclmulqdq ymm5,ymm10,ymm20,0x10 + vpclmulqdq ymm0,ymm10,ymm20,0x11 + vpclmulqdq ymm3,ymm10,ymm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_814 +$L$_small_initial_partial_block_814: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[208+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[272+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vpxorq zmm15,zmm0,zmm15 + vpxorq zmm16,zmm3,zmm16 + vpxorq zmm17,zmm4,zmm17 + vpxorq zmm19,zmm5,zmm19 + vmovdqu64 xmm20,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm10,xmm20,0x01 + vpclmulqdq xmm5,xmm10,xmm20,0x10 + vpclmulqdq xmm0,xmm10,xmm20,0x11 + vpclmulqdq xmm3,xmm10,xmm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_814: + + or r13,r13 + je NEAR $L$_after_reduction_814 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_814: + jmp NEAR $L$_small_initial_blocks_encrypted_804 +$L$_small_initial_num_blocks_is_11_804: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm2,ZMMWORD[ddq_add_5678] + vpaddd zmm4,zmm0,ZMMWORD[ddq_add_8888] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + sub r15,128 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm4,2 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vmovdqu8 zmm6,ZMMWORD[r11*1+r9] + vmovdqu8 zmm7,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm10{k1}{z},[128+r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm15 + vpxorq zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[192+rcx] + vaesenclast zmm0,zmm0,zmm15 + vaesenclast zmm3,zmm3,zmm15 + vaesenclast zmm4,zmm4,zmm15 + vpxorq zmm0,zmm0,zmm6 + vpxorq zmm3,zmm3,zmm7 + vpxorq zmm4,zmm4,zmm10 + vextracti32x4 xmm12,zmm4,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10]{k1},zmm4 + vmovdqu8 zmm4{k1}{z},zmm4 + vpshufb zmm6,zmm6,zmm29 + vpshufb zmm7,zmm7,zmm29 + vpshufb zmm10,zmm10,zmm29 + vextracti32x4 xmm13,zmm10,2 + sub r13,16 * (11 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_815 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[176+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[240+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vpxorq zmm15,zmm0,zmm15 + vpxorq zmm16,zmm3,zmm16 + vpxorq zmm17,zmm4,zmm17 + vpxorq zmm19,zmm5,zmm19 + vmovdqu64 ymm20,YMMWORD[304+rdx] + vinserti64x2 zmm20,zmm20,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm10,zmm20,0x01 + vpclmulqdq zmm5,zmm10,zmm20,0x10 + vpclmulqdq zmm0,zmm10,zmm20,0x11 + vpclmulqdq zmm3,zmm10,zmm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_815 +$L$_small_initial_partial_block_815: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[192+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[256+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vpxorq zmm15,zmm0,zmm15 + vpxorq zmm16,zmm3,zmm16 + vpxorq zmm17,zmm4,zmm17 + vpxorq zmm19,zmm5,zmm19 + vmovdqu64 ymm20,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm10,ymm20,0x01 + vpclmulqdq ymm5,ymm10,ymm20,0x10 + vpclmulqdq ymm0,ymm10,ymm20,0x11 + vpclmulqdq ymm3,ymm10,ymm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_815: + + or r13,r13 + je NEAR $L$_after_reduction_815 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_815: + jmp NEAR $L$_small_initial_blocks_encrypted_804 +$L$_small_initial_num_blocks_is_12_804: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm2,ZMMWORD[ddq_add_5678] + vpaddd zmm4,zmm0,ZMMWORD[ddq_add_8888] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + sub r15,128 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm4,3 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vmovdqu8 zmm6,ZMMWORD[r11*1+r9] + vmovdqu8 zmm7,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm10{k1}{z},[128+r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm15 + vpxorq zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[192+rcx] + vaesenclast zmm0,zmm0,zmm15 + vaesenclast zmm3,zmm3,zmm15 + vaesenclast zmm4,zmm4,zmm15 + vpxorq zmm0,zmm0,zmm6 + vpxorq zmm3,zmm3,zmm7 + vpxorq zmm4,zmm4,zmm10 + vextracti32x4 xmm12,zmm4,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10]{k1},zmm4 + vmovdqu8 zmm4{k1}{z},zmm4 + vpshufb zmm6,zmm6,zmm29 + vpshufb zmm7,zmm7,zmm29 + vpshufb zmm10,zmm10,zmm29 + vextracti32x4 xmm13,zmm10,3 + sub r13,16 * (12 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_816 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[160+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[224+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[288+rdx] + vpclmulqdq zmm6,zmm10,zmm20,0x11 + vpclmulqdq zmm7,zmm10,zmm20,0x00 + vpternlogq zmm15,zmm6,zmm0,0x96 + vpternlogq zmm16,zmm7,zmm3,0x96 + vpclmulqdq zmm6,zmm10,zmm20,0x01 + vpclmulqdq zmm7,zmm10,zmm20,0x10 + vpternlogq zmm17,zmm6,zmm4,0x96 + vpternlogq zmm19,zmm7,zmm5,0x96 + + vpxorq zmm17,zmm17,zmm19 + vpsrldq zmm4,zmm17,8 + vpslldq zmm5,zmm17,8 + vpxorq zmm0,zmm15,zmm4 + vpxorq zmm3,zmm16,zmm5 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_816 +$L$_small_initial_partial_block_816: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[176+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[240+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vpxorq zmm15,zmm0,zmm15 + vpxorq zmm16,zmm3,zmm16 + vpxorq zmm17,zmm4,zmm17 + vpxorq zmm19,zmm5,zmm19 + vmovdqu64 ymm20,YMMWORD[304+rdx] + vinserti64x2 zmm20,zmm20,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm10,zmm20,0x01 + vpclmulqdq zmm5,zmm10,zmm20,0x10 + vpclmulqdq zmm0,zmm10,zmm20,0x11 + vpclmulqdq zmm3,zmm10,zmm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_816: + + or r13,r13 + je NEAR $L$_after_reduction_816 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_816: + jmp NEAR $L$_small_initial_blocks_encrypted_804 +$L$_small_initial_num_blocks_is_13_804: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm2,ZMMWORD[ddq_add_5678] + vpaddd zmm4,zmm0,ZMMWORD[ddq_add_8888] + vpaddd zmm5,zmm3,ZMMWORD[ddq_add_8888] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + sub r15,192 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm5,0 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb xmm5,xmm5,xmm29 + vmovdqu8 zmm6,ZMMWORD[r11*1+r9] + vmovdqu8 zmm7,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm10,ZMMWORD[128+r11*1+r9] + vmovdqu8 xmm11{k1}{z},[192+r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm15 + vpxorq zmm4,zmm4,zmm15 + vpxorq xmm5,xmm5,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc xmm5,xmm5,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc xmm5,xmm5,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc xmm5,xmm5,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc xmm5,xmm5,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc xmm5,xmm5,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc xmm5,xmm5,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc xmm5,xmm5,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc xmm5,xmm5,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc xmm5,xmm5,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc xmm5,xmm5,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc xmm5,xmm5,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[192+rcx] + vaesenclast zmm0,zmm0,zmm15 + vaesenclast zmm3,zmm3,zmm15 + vaesenclast zmm4,zmm4,zmm15 + vaesenclast xmm5,xmm5,xmm15 + vpxorq zmm0,zmm0,zmm6 + vpxorq zmm3,zmm3,zmm7 + vpxorq zmm4,zmm4,zmm10 + vpxorq xmm5,xmm5,xmm11 + vextracti32x4 xmm12,zmm5,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 XMMWORD[192+r11*1+r10]{k1},xmm5 + vmovdqu8 zmm5{k1}{z},zmm5 + vpshufb zmm6,zmm6,zmm29 + vpshufb zmm7,zmm7,zmm29 + vpshufb zmm10,zmm10,zmm29 + vpshufb xmm11,xmm11,xmm29 + vextracti32x4 xmm13,zmm11,0 + sub r13,16 * (13 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_817 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[144+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[208+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[272+rdx] + vpclmulqdq zmm6,zmm10,zmm20,0x11 + vpclmulqdq zmm7,zmm10,zmm20,0x00 + vpternlogq zmm15,zmm6,zmm0,0x96 + vpternlogq zmm16,zmm7,zmm3,0x96 + vpclmulqdq zmm6,zmm10,zmm20,0x01 + vpclmulqdq zmm7,zmm10,zmm20,0x10 + vpternlogq zmm17,zmm6,zmm4,0x96 + vpternlogq zmm19,zmm7,zmm5,0x96 + vmovdqu64 xmm20,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm11,xmm20,0x01 + vpclmulqdq xmm5,xmm11,xmm20,0x10 + vpclmulqdq xmm0,xmm11,xmm20,0x11 + vpclmulqdq xmm3,xmm11,xmm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_817 +$L$_small_initial_partial_block_817: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[160+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[224+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[288+rdx] + vpclmulqdq zmm6,zmm10,zmm20,0x11 + vpclmulqdq zmm7,zmm10,zmm20,0x00 + vpternlogq zmm15,zmm6,zmm0,0x96 + vpternlogq zmm16,zmm7,zmm3,0x96 + vpclmulqdq zmm6,zmm10,zmm20,0x01 + vpclmulqdq zmm7,zmm10,zmm20,0x10 + vpternlogq zmm17,zmm6,zmm4,0x96 + vpternlogq zmm19,zmm7,zmm5,0x96 + + vpxorq zmm17,zmm17,zmm19 + vpsrldq zmm4,zmm17,8 + vpslldq zmm5,zmm17,8 + vpxorq zmm0,zmm15,zmm4 + vpxorq zmm3,zmm16,zmm5 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_817: + + or r13,r13 + je NEAR $L$_after_reduction_817 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_817: + jmp NEAR $L$_small_initial_blocks_encrypted_804 +$L$_small_initial_num_blocks_is_14_804: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm2,ZMMWORD[ddq_add_5678] + vpaddd zmm4,zmm0,ZMMWORD[ddq_add_8888] + vpaddd zmm5,zmm3,ZMMWORD[ddq_add_8888] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + sub r15,192 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm5,1 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb ymm5,ymm5,ymm29 + vmovdqu8 zmm6,ZMMWORD[r11*1+r9] + vmovdqu8 zmm7,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm10,ZMMWORD[128+r11*1+r9] + vmovdqu8 ymm11{k1}{z},[192+r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm15 + vpxorq zmm4,zmm4,zmm15 + vpxorq ymm5,ymm5,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc ymm5,ymm5,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc ymm5,ymm5,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc ymm5,ymm5,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc ymm5,ymm5,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc ymm5,ymm5,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc ymm5,ymm5,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc ymm5,ymm5,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc ymm5,ymm5,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc ymm5,ymm5,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc ymm5,ymm5,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc ymm5,ymm5,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[192+rcx] + vaesenclast zmm0,zmm0,zmm15 + vaesenclast zmm3,zmm3,zmm15 + vaesenclast zmm4,zmm4,zmm15 + vaesenclast ymm5,ymm5,ymm15 + vpxorq zmm0,zmm0,zmm6 + vpxorq zmm3,zmm3,zmm7 + vpxorq zmm4,zmm4,zmm10 + vpxorq ymm5,ymm5,ymm11 + vextracti32x4 xmm12,zmm5,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 YMMWORD[192+r11*1+r10]{k1},ymm5 + vmovdqu8 zmm5{k1}{z},zmm5 + vpshufb zmm6,zmm6,zmm29 + vpshufb zmm7,zmm7,zmm29 + vpshufb zmm10,zmm10,zmm29 + vpshufb ymm11,ymm11,ymm29 + vextracti32x4 xmm13,zmm11,1 + sub r13,16 * (14 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_818 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[128+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[192+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[256+rdx] + vpclmulqdq zmm6,zmm10,zmm20,0x11 + vpclmulqdq zmm7,zmm10,zmm20,0x00 + vpternlogq zmm15,zmm6,zmm0,0x96 + vpternlogq zmm16,zmm7,zmm3,0x96 + vpclmulqdq zmm6,zmm10,zmm20,0x01 + vpclmulqdq zmm7,zmm10,zmm20,0x10 + vpternlogq zmm17,zmm6,zmm4,0x96 + vpternlogq zmm19,zmm7,zmm5,0x96 + vmovdqu64 ymm20,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm11,ymm20,0x01 + vpclmulqdq ymm5,ymm11,ymm20,0x10 + vpclmulqdq ymm0,ymm11,ymm20,0x11 + vpclmulqdq ymm3,ymm11,ymm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_818 +$L$_small_initial_partial_block_818: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[144+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[208+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[272+rdx] + vpclmulqdq zmm6,zmm10,zmm20,0x11 + vpclmulqdq zmm7,zmm10,zmm20,0x00 + vpternlogq zmm15,zmm6,zmm0,0x96 + vpternlogq zmm16,zmm7,zmm3,0x96 + vpclmulqdq zmm6,zmm10,zmm20,0x01 + vpclmulqdq zmm7,zmm10,zmm20,0x10 + vpternlogq zmm17,zmm6,zmm4,0x96 + vpternlogq zmm19,zmm7,zmm5,0x96 + vmovdqu64 xmm20,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm11,xmm20,0x01 + vpclmulqdq xmm5,xmm11,xmm20,0x10 + vpclmulqdq xmm0,xmm11,xmm20,0x11 + vpclmulqdq xmm3,xmm11,xmm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_818: + + or r13,r13 + je NEAR $L$_after_reduction_818 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_818: + jmp NEAR $L$_small_initial_blocks_encrypted_804 +$L$_small_initial_num_blocks_is_15_804: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm2,ZMMWORD[ddq_add_5678] + vpaddd zmm4,zmm0,ZMMWORD[ddq_add_8888] + vpaddd zmm5,zmm3,ZMMWORD[ddq_add_8888] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + sub r15,192 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm5,2 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 + vmovdqu8 zmm6,ZMMWORD[r11*1+r9] + vmovdqu8 zmm7,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm10,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm11{k1}{z},[192+r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm15 + vpxorq zmm4,zmm4,zmm15 + vpxorq zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[192+rcx] + vaesenclast zmm0,zmm0,zmm15 + vaesenclast zmm3,zmm3,zmm15 + vaesenclast zmm4,zmm4,zmm15 + vaesenclast zmm5,zmm5,zmm15 + vpxorq zmm0,zmm0,zmm6 + vpxorq zmm3,zmm3,zmm7 + vpxorq zmm4,zmm4,zmm10 + vpxorq zmm5,zmm5,zmm11 + vextracti32x4 xmm12,zmm5,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[192+r11*1+r10]{k1},zmm5 + vmovdqu8 zmm5{k1}{z},zmm5 + vpshufb zmm6,zmm6,zmm29 + vpshufb zmm7,zmm7,zmm29 + vpshufb zmm10,zmm10,zmm29 + vpshufb zmm11,zmm11,zmm29 + vextracti32x4 xmm13,zmm11,2 + sub r13,16 * (15 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_819 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[112+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[176+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[240+rdx] + vpclmulqdq zmm6,zmm10,zmm20,0x11 + vpclmulqdq zmm7,zmm10,zmm20,0x00 + vpternlogq zmm15,zmm6,zmm0,0x96 + vpternlogq zmm16,zmm7,zmm3,0x96 + vpclmulqdq zmm6,zmm10,zmm20,0x01 + vpclmulqdq zmm7,zmm10,zmm20,0x10 + vpternlogq zmm17,zmm6,zmm4,0x96 + vpternlogq zmm19,zmm7,zmm5,0x96 + vmovdqu64 ymm20,YMMWORD[304+rdx] + vinserti64x2 zmm20,zmm20,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm11,zmm20,0x01 + vpclmulqdq zmm5,zmm11,zmm20,0x10 + vpclmulqdq zmm0,zmm11,zmm20,0x11 + vpclmulqdq zmm3,zmm11,zmm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_819 +$L$_small_initial_partial_block_819: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[128+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[192+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[256+rdx] + vpclmulqdq zmm6,zmm10,zmm20,0x11 + vpclmulqdq zmm7,zmm10,zmm20,0x00 + vpternlogq zmm15,zmm6,zmm0,0x96 + vpternlogq zmm16,zmm7,zmm3,0x96 + vpclmulqdq zmm6,zmm10,zmm20,0x01 + vpclmulqdq zmm7,zmm10,zmm20,0x10 + vpternlogq zmm17,zmm6,zmm4,0x96 + vpternlogq zmm19,zmm7,zmm5,0x96 + vmovdqu64 ymm20,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm11,ymm20,0x01 + vpclmulqdq ymm5,ymm11,ymm20,0x10 + vpclmulqdq ymm0,ymm11,ymm20,0x11 + vpclmulqdq ymm3,ymm11,ymm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_819: + + or r13,r13 + je NEAR $L$_after_reduction_819 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_819: + jmp NEAR $L$_small_initial_blocks_encrypted_804 +$L$_small_initial_num_blocks_is_16_804: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm2,ZMMWORD[ddq_add_5678] + vpaddd zmm4,zmm0,ZMMWORD[ddq_add_8888] + vpaddd zmm5,zmm3,ZMMWORD[ddq_add_8888] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + sub r15,192 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm5,3 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 + vmovdqu8 zmm6,ZMMWORD[r11*1+r9] + vmovdqu8 zmm7,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm10,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm11{k1}{z},[192+r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm15 + vpxorq zmm4,zmm4,zmm15 + vpxorq zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[192+rcx] + vaesenclast zmm0,zmm0,zmm15 + vaesenclast zmm3,zmm3,zmm15 + vaesenclast zmm4,zmm4,zmm15 + vaesenclast zmm5,zmm5,zmm15 + vpxorq zmm0,zmm0,zmm6 + vpxorq zmm3,zmm3,zmm7 + vpxorq zmm4,zmm4,zmm10 + vpxorq zmm5,zmm5,zmm11 + vextracti32x4 xmm12,zmm5,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[192+r11*1+r10]{k1},zmm5 + vmovdqu8 zmm5{k1}{z},zmm5 + vpshufb zmm6,zmm6,zmm29 + vpshufb zmm7,zmm7,zmm29 + vpshufb zmm10,zmm10,zmm29 + vpshufb zmm11,zmm11,zmm29 + vextracti32x4 xmm13,zmm11,3 + sub r13,16 * (16 - 1) +$L$_small_initial_partial_block_820: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[112+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[176+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[240+rdx] + vpclmulqdq zmm6,zmm10,zmm20,0x11 + vpclmulqdq zmm7,zmm10,zmm20,0x00 + vpternlogq zmm15,zmm6,zmm0,0x96 + vpternlogq zmm16,zmm7,zmm3,0x96 + vpclmulqdq zmm6,zmm10,zmm20,0x01 + vpclmulqdq zmm7,zmm10,zmm20,0x10 + vpternlogq zmm17,zmm6,zmm4,0x96 + vpternlogq zmm19,zmm7,zmm5,0x96 + vmovdqu64 ymm20,YMMWORD[304+rdx] + vinserti64x2 zmm20,zmm20,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm11,zmm20,0x01 + vpclmulqdq zmm5,zmm11,zmm20,0x10 + vpclmulqdq zmm0,zmm11,zmm20,0x11 + vpclmulqdq zmm3,zmm11,zmm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_820: + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_820: +$L$_small_initial_blocks_encrypted_804: +$L$_ghash_done_659: + vmovdqu64 XMMWORD[rdx],xmm2 + vmovdqu64 XMMWORD[64+rdx],xmm14 +$L$_enc_dec_done_659: + jmp NEAR $L$exit_gcm_decrypt +ALIGN 32 +$L$aes_gcm_decrypt_256_avx512: + cmp QWORD[112+rbp],0 + je NEAR $L$_enc_dec_done_821 + xor r14,r14 + vmovdqu64 xmm14,XMMWORD[64+rdx] + + mov r11,QWORD[r8] + or r11,r11 + je NEAR $L$_partial_block_done_822 + mov r10d,16 + lea r12,[byte_len_to_mask_table] + cmp QWORD[112+rbp],r10 + cmovc r10,QWORD[112+rbp] + add r12,r10 + add r12,r10 + kmovw k1,[r12] + vmovdqu8 xmm0{k1}{z},[r9] + + vmovdqu64 xmm3,XMMWORD[16+rdx] + vmovdqu64 xmm4,XMMWORD[336+rdx] + + + + lea r12,[SHIFT_MASK] + add r12,r11 + vmovdqu64 xmm5,XMMWORD[r12] + vpshufb xmm3,xmm3,xmm5 + + vmovdqa64 xmm6,xmm0 + vpxorq xmm3,xmm3,xmm0 + + + mov r13,QWORD[112+rbp] + add r13,r11 + sub r13,16 + jge NEAR $L$_no_extra_mask_822 + sub r12,r13 +$L$_no_extra_mask_822: + + + + vmovdqu64 xmm0,XMMWORD[16+r12] + vpand xmm3,xmm3,xmm0 + vpand xmm6,xmm6,xmm0 + vpshufb xmm6,xmm6,XMMWORD[SHUF_MASK] + vpshufb xmm6,xmm6,xmm5 + vpxorq xmm14,xmm14,xmm6 + cmp r13,0 + jl NEAR $L$_partial_incomplete_822 + + vpclmulqdq xmm7,xmm14,xmm4,0x11 + vpclmulqdq xmm10,xmm14,xmm4,0x00 + vpclmulqdq xmm11,xmm14,xmm4,0x01 + vpclmulqdq xmm14,xmm14,xmm4,0x10 + vpxorq xmm14,xmm14,xmm11 + + vpsrldq xmm11,xmm14,8 + vpslldq xmm14,xmm14,8 + vpxorq xmm7,xmm7,xmm11 + vpxorq xmm14,xmm14,xmm10 + + + + vmovdqu64 xmm11,XMMWORD[POLY2] + + vpclmulqdq xmm10,xmm11,xmm14,0x01 + vpslldq xmm10,xmm10,8 + vpxorq xmm14,xmm14,xmm10 + + + + vpclmulqdq xmm10,xmm11,xmm14,0x00 + vpsrldq xmm10,xmm10,4 + vpclmulqdq xmm14,xmm11,xmm14,0x10 + vpslldq xmm14,xmm14,4 + + vpternlogq xmm14,xmm7,xmm10,0x96 + + mov QWORD[r8],0 + + mov r12,r11 + mov r11,16 + sub r11,r12 + jmp NEAR $L$_enc_dec_done_822 + +$L$_partial_incomplete_822: + mov r12,QWORD[112+rbp] + add QWORD[r8],r12 + mov r11,QWORD[112+rbp] + +$L$_enc_dec_done_822: + + + lea r12,[byte_len_to_mask_table] + kmovw k1,[r11*2+r12] + vmovdqu64 XMMWORD[64+rdx],xmm14 + mov r12,QWORD[120+rbp] + vmovdqu8 XMMWORD[r12]{k1},xmm3 +$L$_partial_block_done_822: + vmovdqu64 xmm2,XMMWORD[rdx] + mov r13,QWORD[112+rbp] + sub r13,r11 + je NEAR $L$_enc_dec_done_821 + cmp r13,256 + jbe NEAR $L$_message_below_equal_16_blocks_821 + + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vmovdqa64 zmm27,ZMMWORD[ddq_addbe_4444] + vmovdqa64 zmm28,ZMMWORD[ddq_addbe_1234] + + + + + + + vmovd r15d,xmm2 + and r15d,255 + + vshufi64x2 zmm2,zmm2,zmm2,0 + vpshufb zmm2,zmm2,zmm29 + + + + cmp r15b,240 + jae NEAR $L$_next_16_overflow_823 + vpaddd zmm7,zmm2,zmm28 + vpaddd zmm10,zmm7,zmm27 + vpaddd zmm11,zmm10,zmm27 + vpaddd zmm12,zmm11,zmm27 + jmp NEAR $L$_next_16_ok_823 +$L$_next_16_overflow_823: + vpshufb zmm2,zmm2,zmm29 + vmovdqa64 zmm12,ZMMWORD[ddq_add_4444] + vpaddd zmm7,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm10,zmm7,zmm12 + vpaddd zmm11,zmm10,zmm12 + vpaddd zmm12,zmm11,zmm12 + vpshufb zmm7,zmm7,zmm29 + vpshufb zmm10,zmm10,zmm29 + vpshufb zmm11,zmm11,zmm29 + vpshufb zmm12,zmm12,zmm29 +$L$_next_16_ok_823: + vshufi64x2 zmm2,zmm12,zmm12,255 + add r15b,16 + + vmovdqu8 zmm0,ZMMWORD[r11*1+r9] + vmovdqu8 zmm3,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm4,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm5,ZMMWORD[192+r11*1+r9] + + + vbroadcastf64x2 zmm6,ZMMWORD[rcx] + vpxorq zmm7,zmm7,zmm6 + vpxorq zmm10,zmm10,zmm6 + vpxorq zmm11,zmm11,zmm6 + vpxorq zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[16+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[32+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[48+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[64+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[80+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[96+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[112+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[128+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[144+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[160+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[176+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[192+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[208+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[224+rcx] + vaesenclast zmm7,zmm7,zmm6 + vaesenclast zmm10,zmm10,zmm6 + vaesenclast zmm11,zmm11,zmm6 + vaesenclast zmm12,zmm12,zmm6 + + + vpxorq zmm7,zmm7,zmm0 + vpxorq zmm10,zmm10,zmm3 + vpxorq zmm11,zmm11,zmm4 + vpxorq zmm12,zmm12,zmm5 + + + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm7 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm10 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm11 + vmovdqu8 ZMMWORD[192+r11*1+r10],zmm12 + + vpshufb zmm7,zmm0,zmm29 + vpshufb zmm10,zmm3,zmm29 + vpshufb zmm11,zmm4,zmm29 + vpshufb zmm12,zmm5,zmm29 + vmovdqa64 ZMMWORD[768+rsp],zmm7 + vmovdqa64 ZMMWORD[832+rsp],zmm10 + vmovdqa64 ZMMWORD[896+rsp],zmm11 + vmovdqa64 ZMMWORD[960+rsp],zmm12 + test r14,r14 + jnz NEAR $L$_skip_hkeys_precomputation_824 + + vmovdqu64 zmm0,ZMMWORD[288+rdx] + vmovdqu64 ZMMWORD[704+rsp],zmm0 + + vmovdqu64 zmm3,ZMMWORD[224+rdx] + vmovdqu64 ZMMWORD[640+rsp],zmm3 + + + vshufi64x2 zmm3,zmm3,zmm3,0x00 + + vmovdqu64 zmm4,ZMMWORD[160+rdx] + vmovdqu64 ZMMWORD[576+rsp],zmm4 + + vmovdqu64 zmm5,ZMMWORD[96+rdx] + vmovdqu64 ZMMWORD[512+rsp],zmm5 +$L$_skip_hkeys_precomputation_824: + cmp r13,512 + jb NEAR $L$_message_below_32_blocks_821 + + + + cmp r15b,240 + jae NEAR $L$_next_16_overflow_825 + vpaddd zmm7,zmm2,zmm28 + vpaddd zmm10,zmm7,zmm27 + vpaddd zmm11,zmm10,zmm27 + vpaddd zmm12,zmm11,zmm27 + jmp NEAR $L$_next_16_ok_825 +$L$_next_16_overflow_825: + vpshufb zmm2,zmm2,zmm29 + vmovdqa64 zmm12,ZMMWORD[ddq_add_4444] + vpaddd zmm7,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm10,zmm7,zmm12 + vpaddd zmm11,zmm10,zmm12 + vpaddd zmm12,zmm11,zmm12 + vpshufb zmm7,zmm7,zmm29 + vpshufb zmm10,zmm10,zmm29 + vpshufb zmm11,zmm11,zmm29 + vpshufb zmm12,zmm12,zmm29 +$L$_next_16_ok_825: + vshufi64x2 zmm2,zmm12,zmm12,255 + add r15b,16 + + vmovdqu8 zmm0,ZMMWORD[256+r11*1+r9] + vmovdqu8 zmm3,ZMMWORD[320+r11*1+r9] + vmovdqu8 zmm4,ZMMWORD[384+r11*1+r9] + vmovdqu8 zmm5,ZMMWORD[448+r11*1+r9] + + + vbroadcastf64x2 zmm6,ZMMWORD[rcx] + vpxorq zmm7,zmm7,zmm6 + vpxorq zmm10,zmm10,zmm6 + vpxorq zmm11,zmm11,zmm6 + vpxorq zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[16+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[32+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[48+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[64+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[80+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[96+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[112+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[128+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[144+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[160+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[176+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[192+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[208+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[224+rcx] + vaesenclast zmm7,zmm7,zmm6 + vaesenclast zmm10,zmm10,zmm6 + vaesenclast zmm11,zmm11,zmm6 + vaesenclast zmm12,zmm12,zmm6 + + + vpxorq zmm7,zmm7,zmm0 + vpxorq zmm10,zmm10,zmm3 + vpxorq zmm11,zmm11,zmm4 + vpxorq zmm12,zmm12,zmm5 + + + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[256+r11*1+r10],zmm7 + vmovdqu8 ZMMWORD[320+r11*1+r10],zmm10 + vmovdqu8 ZMMWORD[384+r11*1+r10],zmm11 + vmovdqu8 ZMMWORD[448+r11*1+r10],zmm12 + + vpshufb zmm7,zmm0,zmm29 + vpshufb zmm10,zmm3,zmm29 + vpshufb zmm11,zmm4,zmm29 + vpshufb zmm12,zmm5,zmm29 + vmovdqa64 ZMMWORD[1024+rsp],zmm7 + vmovdqa64 ZMMWORD[1088+rsp],zmm10 + vmovdqa64 ZMMWORD[1152+rsp],zmm11 + vmovdqa64 ZMMWORD[1216+rsp],zmm12 + test r14,r14 + jnz NEAR $L$_skip_hkeys_precomputation_826 + vmovdqu64 zmm3,ZMMWORD[640+rsp] + + + vshufi64x2 zmm3,zmm3,zmm3,0x00 + + vmovdqu64 zmm4,ZMMWORD[576+rsp] + vmovdqu64 zmm5,ZMMWORD[512+rsp] + + vpclmulqdq zmm6,zmm4,zmm3,0x11 + vpclmulqdq zmm7,zmm4,zmm3,0x00 + vpclmulqdq zmm10,zmm4,zmm3,0x01 + vpclmulqdq zmm4,zmm4,zmm3,0x10 + vpxorq zmm4,zmm4,zmm10 + + vpsrldq zmm10,zmm4,8 + vpslldq zmm4,zmm4,8 + vpxorq zmm6,zmm6,zmm10 + vpxorq zmm4,zmm4,zmm7 + + + + vmovdqu64 zmm10,ZMMWORD[POLY2] + + vpclmulqdq zmm7,zmm10,zmm4,0x01 + vpslldq zmm7,zmm7,8 + vpxorq zmm4,zmm4,zmm7 + + + + vpclmulqdq zmm7,zmm10,zmm4,0x00 + vpsrldq zmm7,zmm7,4 + vpclmulqdq zmm4,zmm10,zmm4,0x10 + vpslldq zmm4,zmm4,4 + + vpternlogq zmm4,zmm6,zmm7,0x96 + + vmovdqu64 ZMMWORD[448+rsp],zmm4 + + vpclmulqdq zmm6,zmm5,zmm3,0x11 + vpclmulqdq zmm7,zmm5,zmm3,0x00 + vpclmulqdq zmm10,zmm5,zmm3,0x01 + vpclmulqdq zmm5,zmm5,zmm3,0x10 + vpxorq zmm5,zmm5,zmm10 + + vpsrldq zmm10,zmm5,8 + vpslldq zmm5,zmm5,8 + vpxorq zmm6,zmm6,zmm10 + vpxorq zmm5,zmm5,zmm7 + + + + vmovdqu64 zmm10,ZMMWORD[POLY2] + + vpclmulqdq zmm7,zmm10,zmm5,0x01 + vpslldq zmm7,zmm7,8 + vpxorq zmm5,zmm5,zmm7 + + + + vpclmulqdq zmm7,zmm10,zmm5,0x00 + vpsrldq zmm7,zmm7,4 + vpclmulqdq zmm5,zmm10,zmm5,0x10 + vpslldq zmm5,zmm5,4 + + vpternlogq zmm5,zmm6,zmm7,0x96 + + vmovdqu64 ZMMWORD[384+rsp],zmm5 + + vpclmulqdq zmm6,zmm4,zmm3,0x11 + vpclmulqdq zmm7,zmm4,zmm3,0x00 + vpclmulqdq zmm10,zmm4,zmm3,0x01 + vpclmulqdq zmm4,zmm4,zmm3,0x10 + vpxorq zmm4,zmm4,zmm10 + + vpsrldq zmm10,zmm4,8 + vpslldq zmm4,zmm4,8 + vpxorq zmm6,zmm6,zmm10 + vpxorq zmm4,zmm4,zmm7 + + + + vmovdqu64 zmm10,ZMMWORD[POLY2] + + vpclmulqdq zmm7,zmm10,zmm4,0x01 + vpslldq zmm7,zmm7,8 + vpxorq zmm4,zmm4,zmm7 + + + + vpclmulqdq zmm7,zmm10,zmm4,0x00 + vpsrldq zmm7,zmm7,4 + vpclmulqdq zmm4,zmm10,zmm4,0x10 + vpslldq zmm4,zmm4,4 + + vpternlogq zmm4,zmm6,zmm7,0x96 + + vmovdqu64 ZMMWORD[320+rsp],zmm4 + + vpclmulqdq zmm6,zmm5,zmm3,0x11 + vpclmulqdq zmm7,zmm5,zmm3,0x00 + vpclmulqdq zmm10,zmm5,zmm3,0x01 + vpclmulqdq zmm5,zmm5,zmm3,0x10 + vpxorq zmm5,zmm5,zmm10 + + vpsrldq zmm10,zmm5,8 + vpslldq zmm5,zmm5,8 + vpxorq zmm6,zmm6,zmm10 + vpxorq zmm5,zmm5,zmm7 + + + + vmovdqu64 zmm10,ZMMWORD[POLY2] + + vpclmulqdq zmm7,zmm10,zmm5,0x01 + vpslldq zmm7,zmm7,8 + vpxorq zmm5,zmm5,zmm7 + + + + vpclmulqdq zmm7,zmm10,zmm5,0x00 + vpsrldq zmm7,zmm7,4 + vpclmulqdq zmm5,zmm10,zmm5,0x10 + vpslldq zmm5,zmm5,4 + + vpternlogq zmm5,zmm6,zmm7,0x96 + + vmovdqu64 ZMMWORD[256+rsp],zmm5 + + vpclmulqdq zmm6,zmm4,zmm3,0x11 + vpclmulqdq zmm7,zmm4,zmm3,0x00 + vpclmulqdq zmm10,zmm4,zmm3,0x01 + vpclmulqdq zmm4,zmm4,zmm3,0x10 + vpxorq zmm4,zmm4,zmm10 + + vpsrldq zmm10,zmm4,8 + vpslldq zmm4,zmm4,8 + vpxorq zmm6,zmm6,zmm10 + vpxorq zmm4,zmm4,zmm7 + + + + vmovdqu64 zmm10,ZMMWORD[POLY2] + + vpclmulqdq zmm7,zmm10,zmm4,0x01 + vpslldq zmm7,zmm7,8 + vpxorq zmm4,zmm4,zmm7 + + + + vpclmulqdq zmm7,zmm10,zmm4,0x00 + vpsrldq zmm7,zmm7,4 + vpclmulqdq zmm4,zmm10,zmm4,0x10 + vpslldq zmm4,zmm4,4 + + vpternlogq zmm4,zmm6,zmm7,0x96 + + vmovdqu64 ZMMWORD[192+rsp],zmm4 + + vpclmulqdq zmm6,zmm5,zmm3,0x11 + vpclmulqdq zmm7,zmm5,zmm3,0x00 + vpclmulqdq zmm10,zmm5,zmm3,0x01 + vpclmulqdq zmm5,zmm5,zmm3,0x10 + vpxorq zmm5,zmm5,zmm10 + + vpsrldq zmm10,zmm5,8 + vpslldq zmm5,zmm5,8 + vpxorq zmm6,zmm6,zmm10 + vpxorq zmm5,zmm5,zmm7 + + + + vmovdqu64 zmm10,ZMMWORD[POLY2] + + vpclmulqdq zmm7,zmm10,zmm5,0x01 + vpslldq zmm7,zmm7,8 + vpxorq zmm5,zmm5,zmm7 + + + + vpclmulqdq zmm7,zmm10,zmm5,0x00 + vpsrldq zmm7,zmm7,4 + vpclmulqdq zmm5,zmm10,zmm5,0x10 + vpslldq zmm5,zmm5,4 + + vpternlogq zmm5,zmm6,zmm7,0x96 + + vmovdqu64 ZMMWORD[128+rsp],zmm5 + + vpclmulqdq zmm6,zmm4,zmm3,0x11 + vpclmulqdq zmm7,zmm4,zmm3,0x00 + vpclmulqdq zmm10,zmm4,zmm3,0x01 + vpclmulqdq zmm4,zmm4,zmm3,0x10 + vpxorq zmm4,zmm4,zmm10 + + vpsrldq zmm10,zmm4,8 + vpslldq zmm4,zmm4,8 + vpxorq zmm6,zmm6,zmm10 + vpxorq zmm4,zmm4,zmm7 + + + + vmovdqu64 zmm10,ZMMWORD[POLY2] + + vpclmulqdq zmm7,zmm10,zmm4,0x01 + vpslldq zmm7,zmm7,8 + vpxorq zmm4,zmm4,zmm7 + + + + vpclmulqdq zmm7,zmm10,zmm4,0x00 + vpsrldq zmm7,zmm7,4 + vpclmulqdq zmm4,zmm10,zmm4,0x10 + vpslldq zmm4,zmm4,4 + + vpternlogq zmm4,zmm6,zmm7,0x96 + + vmovdqu64 ZMMWORD[64+rsp],zmm4 + + vpclmulqdq zmm6,zmm5,zmm3,0x11 + vpclmulqdq zmm7,zmm5,zmm3,0x00 + vpclmulqdq zmm10,zmm5,zmm3,0x01 + vpclmulqdq zmm5,zmm5,zmm3,0x10 + vpxorq zmm5,zmm5,zmm10 + + vpsrldq zmm10,zmm5,8 + vpslldq zmm5,zmm5,8 + vpxorq zmm6,zmm6,zmm10 + vpxorq zmm5,zmm5,zmm7 + + + + vmovdqu64 zmm10,ZMMWORD[POLY2] + + vpclmulqdq zmm7,zmm10,zmm5,0x01 + vpslldq zmm7,zmm7,8 + vpxorq zmm5,zmm5,zmm7 + + + + vpclmulqdq zmm7,zmm10,zmm5,0x00 + vpsrldq zmm7,zmm7,4 + vpclmulqdq zmm5,zmm10,zmm5,0x10 + vpslldq zmm5,zmm5,4 + + vpternlogq zmm5,zmm6,zmm7,0x96 + + vmovdqu64 ZMMWORD[rsp],zmm5 +$L$_skip_hkeys_precomputation_826: + mov r14,1 + add r11,512 + sub r13,512 + + cmp r13,768 + jb NEAR $L$_no_more_big_nblocks_821 +$L$_encrypt_big_nblocks_821: + cmp r15b,240 + jae NEAR $L$_16_blocks_overflow_827 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_827 +$L$_16_blocks_overflow_827: + vpshufb zmm2,zmm2,zmm29 + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_827: + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rsp] + + + + + vshufi64x2 zmm2,zmm5,zmm5,255 + add r15b,16 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + + + + + + + + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + + vpclmulqdq zmm6,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + + vpternlogq zmm6,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + + + + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm21,ZMMWORD[192+r11*1+r9] + + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm26,zmm10,zmm15 + vpxorq zmm24,zmm6,zmm12 + vpxorq zmm25,zmm7,zmm13 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + + + + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + + + + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[192+r11*1+r10],zmm5 + vpshufb zmm0,zmm17,zmm29 + vpshufb zmm3,zmm19,zmm29 + vpshufb zmm4,zmm20,zmm29 + vpshufb zmm5,zmm21,zmm29 + vmovdqa64 ZMMWORD[1280+rsp],zmm0 + vmovdqa64 ZMMWORD[1344+rsp],zmm3 + vmovdqa64 ZMMWORD[1408+rsp],zmm4 + vmovdqa64 ZMMWORD[1472+rsp],zmm5 + cmp r15b,240 + jae NEAR $L$_16_blocks_overflow_828 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_828 +$L$_16_blocks_overflow_828: + vpshufb zmm2,zmm2,zmm29 + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_828: + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[256+rsp] + + + + + vshufi64x2 zmm2,zmm5,zmm5,255 + add r15b,16 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[320+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + + + + + + + + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + + vpclmulqdq zmm6,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[384+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[448+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + + vpternlogq zmm6,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + + + + vmovdqu8 zmm17,ZMMWORD[256+r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[320+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[384+r11*1+r9] + vmovdqu8 zmm21,ZMMWORD[448+r11*1+r9] + + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vpternlogq zmm24,zmm6,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + + + + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + + + + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[256+r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[320+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[384+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[448+r11*1+r10],zmm5 + vpshufb zmm0,zmm17,zmm29 + vpshufb zmm3,zmm19,zmm29 + vpshufb zmm4,zmm20,zmm29 + vpshufb zmm5,zmm21,zmm29 + vmovdqa64 ZMMWORD[768+rsp],zmm0 + vmovdqa64 ZMMWORD[832+rsp],zmm3 + vmovdqa64 ZMMWORD[896+rsp],zmm4 + vmovdqa64 ZMMWORD[960+rsp],zmm5 + cmp r15b,240 + jae NEAR $L$_16_blocks_overflow_829 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_829 +$L$_16_blocks_overflow_829: + vpshufb zmm2,zmm2,zmm29 + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_829: + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + + + + + vshufi64x2 zmm2,zmm5,zmm5,255 + add r15b,16 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + + + + + + + + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + + vpclmulqdq zmm6,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + + vpternlogq zmm6,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + + + + vmovdqu8 zmm17,ZMMWORD[512+r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[576+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[640+r11*1+r9] + vmovdqu8 zmm21,ZMMWORD[704+r11*1+r9] + + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + + + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpternlogq zmm6,zmm12,zmm15,0x96 + vpxorq zmm6,zmm6,zmm24 + vpternlogq zmm7,zmm13,zmm10,0x96 + vpxorq zmm7,zmm7,zmm25 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vextracti64x4 ymm12,zmm6,1 + vpxorq ymm6,ymm6,ymm12 + vextracti32x4 xmm12,ymm6,1 + vpxorq xmm6,xmm6,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm6,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + + + + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + + + + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[512+r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[576+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[640+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[704+r11*1+r10],zmm5 + vpshufb zmm0,zmm17,zmm29 + vpshufb zmm3,zmm19,zmm29 + vpshufb zmm4,zmm20,zmm29 + vpshufb zmm5,zmm21,zmm29 + vmovdqa64 ZMMWORD[1024+rsp],zmm0 + vmovdqa64 ZMMWORD[1088+rsp],zmm3 + vmovdqa64 ZMMWORD[1152+rsp],zmm4 + vmovdqa64 ZMMWORD[1216+rsp],zmm5 + vmovdqa64 zmm14,zmm6 + + add r11,768 + sub r13,768 + cmp r13,768 + jae NEAR $L$_encrypt_big_nblocks_821 + +$L$_no_more_big_nblocks_821: + + cmp r13,512 + jae NEAR $L$_encrypt_32_blocks_821 + + cmp r13,256 + jae NEAR $L$_encrypt_16_blocks_821 +$L$_encrypt_0_blocks_ghash_32_821: + mov r10d,r13d + and r10d,~15 + mov ebx,256 + sub ebx,r10d + vmovdqa64 zmm13,ZMMWORD[768+rsp] + vpxorq zmm13,zmm13,zmm14 + vmovdqu64 zmm12,ZMMWORD[rbx*1+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[832+rsp] + vmovdqu64 zmm12,ZMMWORD[64+rbx*1+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + vpxorq zmm26,zmm4,zmm10 + vpxorq zmm24,zmm0,zmm6 + vpxorq zmm25,zmm3,zmm7 + vpternlogq zmm26,zmm5,zmm11,0x96 + vmovdqa64 zmm13,ZMMWORD[896+rsp] + vmovdqu64 zmm12,ZMMWORD[128+rbx*1+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[960+rsp] + vmovdqu64 zmm12,ZMMWORD[192+rbx*1+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + + vpternlogq zmm26,zmm4,zmm10,0x96 + vpternlogq zmm24,zmm0,zmm6,0x96 + vpternlogq zmm25,zmm3,zmm7,0x96 + vpternlogq zmm26,zmm5,zmm11,0x96 + add ebx,256 + mov r10d,r13d + add r10d,15 + shr r10d,4 + je NEAR $L$_last_num_blocks_is_0_830 + + cmp r10d,8 + je NEAR $L$_last_num_blocks_is_8_830 + jb NEAR $L$_last_num_blocks_is_7_1_830 + + + cmp r10d,12 + je NEAR $L$_last_num_blocks_is_12_830 + jb NEAR $L$_last_num_blocks_is_11_9_830 + + + cmp r10d,15 + je NEAR $L$_last_num_blocks_is_15_830 + ja NEAR $L$_last_num_blocks_is_16_830 + cmp r10d,14 + je NEAR $L$_last_num_blocks_is_14_830 + jmp NEAR $L$_last_num_blocks_is_13_830 + +$L$_last_num_blocks_is_11_9_830: + + cmp r10d,10 + je NEAR $L$_last_num_blocks_is_10_830 + ja NEAR $L$_last_num_blocks_is_11_830 + jmp NEAR $L$_last_num_blocks_is_9_830 + +$L$_last_num_blocks_is_7_1_830: + cmp r10d,4 + je NEAR $L$_last_num_blocks_is_4_830 + jb NEAR $L$_last_num_blocks_is_3_1_830 + + cmp r10d,6 + ja NEAR $L$_last_num_blocks_is_7_830 + je NEAR $L$_last_num_blocks_is_6_830 + jmp NEAR $L$_last_num_blocks_is_5_830 + +$L$_last_num_blocks_is_3_1_830: + + cmp r10d,2 + ja NEAR $L$_last_num_blocks_is_3_830 + je NEAR $L$_last_num_blocks_is_2_830 +$L$_last_num_blocks_is_1_830: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,255 + jae NEAR $L$_16_blocks_overflow_831 + vpaddd xmm0,xmm2,xmm28 + jmp NEAR $L$_16_blocks_ok_831 + +$L$_16_blocks_overflow_831: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb xmm0,xmm0,xmm29 +$L$_16_blocks_ok_831: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm0,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 xmm17{k1}{z},[r11*1+r9] + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc xmm0,xmm0,xmm31 + vaesenclast xmm0,xmm0,xmm30 + vpxorq xmm0,xmm0,xmm17 + vextracti32x4 xmm11,zmm0,0 + mov r10,QWORD[120+rbp] + vmovdqu8 XMMWORD[r11*1+r10]{k1},xmm0 + vmovdqu8 zmm17{k1}{z},zmm17 + vpshufb xmm17,xmm17,xmm29 + vextracti32x4 xmm7,zmm17,0 + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_832 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm17,xmm1,0x01 + vpclmulqdq xmm5,xmm17,xmm1,0x10 + vpclmulqdq xmm0,xmm17,xmm1,0x11 + vpclmulqdq xmm3,xmm17,xmm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_832 +$L$_small_initial_partial_block_832: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + + + vpsrldq zmm0,zmm26,8 + vpslldq zmm3,zmm26,8 + vpxorq zmm24,zmm24,zmm0 + vpxorq zmm25,zmm25,zmm3 + vextracti64x4 ymm0,zmm24,1 + vpxorq ymm24,ymm24,ymm0 + vextracti32x4 xmm0,ymm24,1 + vpxorq xmm24,xmm24,xmm0 + vextracti64x4 ymm3,zmm25,1 + vpxorq ymm25,ymm25,ymm3 + vextracti32x4 xmm3,ymm25,1 + vpxorq xmm25,xmm25,xmm3 + vmovdqa64 xmm0,XMMWORD[POLY2] + + + vpclmulqdq xmm3,xmm0,xmm25,0x01 + vpslldq xmm3,xmm3,8 + vpxorq xmm3,xmm25,xmm3 + + + vpclmulqdq xmm4,xmm0,xmm3,0x00 + vpsrldq xmm4,xmm4,4 + vpclmulqdq xmm14,xmm0,xmm3,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm4,xmm24,0x96 + + + + + + + + + + + + + vpxorq xmm14,xmm14,xmm7 + + jmp NEAR $L$_after_reduction_832 +$L$_small_initial_compute_done_832: +$L$_after_reduction_832: + jmp NEAR $L$_last_blocks_done_830 +$L$_last_num_blocks_is_2_830: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,254 + jae NEAR $L$_16_blocks_overflow_833 + vpaddd ymm0,ymm2,ymm28 + jmp NEAR $L$_16_blocks_ok_833 + +$L$_16_blocks_overflow_833: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb ymm0,ymm0,ymm29 +$L$_16_blocks_ok_833: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm0,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 ymm17{k1}{z},[r11*1+r9] + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc ymm0,ymm0,ymm31 + vaesenclast ymm0,ymm0,ymm30 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm11,zmm0,1 + mov r10,QWORD[120+rbp] + vmovdqu8 YMMWORD[r11*1+r10]{k1},ymm0 + vmovdqu8 zmm17{k1}{z},zmm17 + vpshufb ymm17,ymm17,ymm29 + vextracti32x4 xmm7,zmm17,1 + sub r13,16 * (2 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_834 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm17,ymm1,0x01 + vpclmulqdq ymm5,ymm17,ymm1,0x10 + vpclmulqdq ymm0,ymm17,ymm1,0x11 + vpclmulqdq ymm3,ymm17,ymm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_834 +$L$_small_initial_partial_block_834: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm17,xmm1,0x01 + vpclmulqdq xmm5,xmm17,xmm1,0x10 + vpclmulqdq xmm0,xmm17,xmm1,0x11 + vpclmulqdq xmm3,xmm17,xmm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_834: + + or r13,r13 + je NEAR $L$_after_reduction_834 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_834: + jmp NEAR $L$_last_blocks_done_830 +$L$_last_num_blocks_is_3_830: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,253 + jae NEAR $L$_16_blocks_overflow_835 + vpaddd zmm0,zmm2,zmm28 + jmp NEAR $L$_16_blocks_ok_835 + +$L$_16_blocks_overflow_835: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb zmm0,zmm0,zmm29 +$L$_16_blocks_ok_835: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm0,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17{k1}{z},[r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vpxorq zmm0,zmm0,zmm17 + vextracti32x4 xmm11,zmm0,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10]{k1},zmm0 + vmovdqu8 zmm17{k1}{z},zmm17 + vpshufb zmm17,zmm17,zmm29 + vextracti32x4 xmm7,zmm17,2 + sub r13,16 * (3 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_836 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_836 +$L$_small_initial_partial_block_836: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm17,ymm1,0x01 + vpclmulqdq ymm5,ymm17,ymm1,0x10 + vpclmulqdq ymm0,ymm17,ymm1,0x11 + vpclmulqdq ymm3,ymm17,ymm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_836: + + or r13,r13 + je NEAR $L$_after_reduction_836 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_836: + jmp NEAR $L$_last_blocks_done_830 +$L$_last_num_blocks_is_4_830: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,252 + jae NEAR $L$_16_blocks_overflow_837 + vpaddd zmm0,zmm2,zmm28 + jmp NEAR $L$_16_blocks_ok_837 + +$L$_16_blocks_overflow_837: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb zmm0,zmm0,zmm29 +$L$_16_blocks_ok_837: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm0,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17{k1}{z},[r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vpxorq zmm0,zmm0,zmm17 + vextracti32x4 xmm11,zmm0,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10]{k1},zmm0 + vmovdqu8 zmm17{k1}{z},zmm17 + vpshufb zmm17,zmm17,zmm29 + vextracti32x4 xmm7,zmm17,3 + sub r13,16 * (4 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_838 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_838 +$L$_small_initial_partial_block_838: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_838: + + or r13,r13 + je NEAR $L$_after_reduction_838 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_838: + jmp NEAR $L$_last_blocks_done_830 +$L$_last_num_blocks_is_5_830: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,251 + jae NEAR $L$_16_blocks_overflow_839 + vpaddd zmm0,zmm2,zmm28 + vpaddd xmm3,xmm0,xmm27 + jmp NEAR $L$_16_blocks_ok_839 + +$L$_16_blocks_overflow_839: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb xmm3,xmm3,xmm29 +$L$_16_blocks_ok_839: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm3,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 xmm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast xmm3,xmm3,xmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq xmm3,xmm3,xmm19 + vextracti32x4 xmm11,zmm3,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 XMMWORD[64+r11*1+r10]{k1},xmm3 + vmovdqu8 zmm19{k1}{z},zmm19 + vpshufb zmm17,zmm17,zmm29 + vpshufb xmm19,xmm19,xmm29 + vextracti32x4 xmm7,zmm19,0 + sub r13,16 * (5 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_840 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm19,xmm1,0x01 + vpclmulqdq xmm5,xmm19,xmm1,0x10 + vpclmulqdq xmm0,xmm19,xmm1,0x11 + vpclmulqdq xmm3,xmm19,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_840 +$L$_small_initial_partial_block_840: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_840: + + or r13,r13 + je NEAR $L$_after_reduction_840 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_840: + jmp NEAR $L$_last_blocks_done_830 +$L$_last_num_blocks_is_6_830: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,250 + jae NEAR $L$_16_blocks_overflow_841 + vpaddd zmm0,zmm2,zmm28 + vpaddd ymm3,ymm0,ymm27 + jmp NEAR $L$_16_blocks_ok_841 + +$L$_16_blocks_overflow_841: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb ymm3,ymm3,ymm29 +$L$_16_blocks_ok_841: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm3,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 ymm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast ymm3,ymm3,ymm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm11,zmm3,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 YMMWORD[64+r11*1+r10]{k1},ymm3 + vmovdqu8 zmm19{k1}{z},zmm19 + vpshufb zmm17,zmm17,zmm29 + vpshufb ymm19,ymm19,ymm29 + vextracti32x4 xmm7,zmm19,1 + sub r13,16 * (6 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_842 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm19,ymm1,0x01 + vpclmulqdq ymm5,ymm19,ymm1,0x10 + vpclmulqdq ymm0,ymm19,ymm1,0x11 + vpclmulqdq ymm3,ymm19,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_842 +$L$_small_initial_partial_block_842: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm19,xmm1,0x01 + vpclmulqdq xmm5,xmm19,xmm1,0x10 + vpclmulqdq xmm0,xmm19,xmm1,0x11 + vpclmulqdq xmm3,xmm19,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_842: + + or r13,r13 + je NEAR $L$_after_reduction_842 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_842: + jmp NEAR $L$_last_blocks_done_830 +$L$_last_num_blocks_is_7_830: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,249 + jae NEAR $L$_16_blocks_overflow_843 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + jmp NEAR $L$_16_blocks_ok_843 + +$L$_16_blocks_overflow_843: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 +$L$_16_blocks_ok_843: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm3,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti32x4 xmm11,zmm3,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10]{k1},zmm3 + vmovdqu8 zmm19{k1}{z},zmm19 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vextracti32x4 xmm7,zmm19,2 + sub r13,16 * (7 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_844 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm19,zmm1,0x01 + vpclmulqdq zmm5,zmm19,zmm1,0x10 + vpclmulqdq zmm0,zmm19,zmm1,0x11 + vpclmulqdq zmm3,zmm19,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_844 +$L$_small_initial_partial_block_844: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm19,ymm1,0x01 + vpclmulqdq ymm5,ymm19,ymm1,0x10 + vpclmulqdq ymm0,ymm19,ymm1,0x11 + vpclmulqdq ymm3,ymm19,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_844: + + or r13,r13 + je NEAR $L$_after_reduction_844 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_844: + jmp NEAR $L$_last_blocks_done_830 +$L$_last_num_blocks_is_8_830: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,248 + jae NEAR $L$_16_blocks_overflow_845 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + jmp NEAR $L$_16_blocks_ok_845 + +$L$_16_blocks_overflow_845: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 +$L$_16_blocks_ok_845: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm3,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti32x4 xmm11,zmm3,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10]{k1},zmm3 + vmovdqu8 zmm19{k1}{z},zmm19 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vextracti32x4 xmm7,zmm19,3 + sub r13,16 * (8 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_846 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_846 +$L$_small_initial_partial_block_846: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm19,zmm1,0x01 + vpclmulqdq zmm5,zmm19,zmm1,0x10 + vpclmulqdq zmm0,zmm19,zmm1,0x11 + vpclmulqdq zmm3,zmm19,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_846: + + or r13,r13 + je NEAR $L$_after_reduction_846 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_846: + jmp NEAR $L$_last_blocks_done_830 +$L$_last_num_blocks_is_9_830: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,247 + jae NEAR $L$_16_blocks_overflow_847 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd xmm4,xmm3,xmm27 + jmp NEAR $L$_16_blocks_ok_847 + +$L$_16_blocks_overflow_847: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb xmm4,xmm4,xmm29 +$L$_16_blocks_ok_847: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm4,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 xmm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast xmm4,xmm4,xmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq xmm4,xmm4,xmm20 + vextracti32x4 xmm11,zmm4,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 XMMWORD[128+r11*1+r10]{k1},xmm4 + vmovdqu8 zmm20{k1}{z},zmm20 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb xmm20,xmm20,xmm29 + vextracti32x4 xmm7,zmm20,0 + sub r13,16 * (9 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_848 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm20,xmm1,0x01 + vpclmulqdq xmm5,xmm20,xmm1,0x10 + vpclmulqdq xmm0,xmm20,xmm1,0x11 + vpclmulqdq xmm3,xmm20,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_848 +$L$_small_initial_partial_block_848: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_848: + + or r13,r13 + je NEAR $L$_after_reduction_848 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_848: + jmp NEAR $L$_last_blocks_done_830 +$L$_last_num_blocks_is_10_830: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,246 + jae NEAR $L$_16_blocks_overflow_849 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd ymm4,ymm3,ymm27 + jmp NEAR $L$_16_blocks_ok_849 + +$L$_16_blocks_overflow_849: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb ymm4,ymm4,ymm29 +$L$_16_blocks_ok_849: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm4,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 ymm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast ymm4,ymm4,ymm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq ymm4,ymm4,ymm20 + vextracti32x4 xmm11,zmm4,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 YMMWORD[128+r11*1+r10]{k1},ymm4 + vmovdqu8 zmm20{k1}{z},zmm20 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb ymm20,ymm20,ymm29 + vextracti32x4 xmm7,zmm20,1 + sub r13,16 * (10 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_850 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm20,ymm1,0x01 + vpclmulqdq ymm5,ymm20,ymm1,0x10 + vpclmulqdq ymm0,ymm20,ymm1,0x11 + vpclmulqdq ymm3,ymm20,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_850 +$L$_small_initial_partial_block_850: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm20,xmm1,0x01 + vpclmulqdq xmm5,xmm20,xmm1,0x10 + vpclmulqdq xmm0,xmm20,xmm1,0x11 + vpclmulqdq xmm3,xmm20,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_850: + + or r13,r13 + je NEAR $L$_after_reduction_850 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_850: + jmp NEAR $L$_last_blocks_done_830 +$L$_last_num_blocks_is_11_830: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,245 + jae NEAR $L$_16_blocks_overflow_851 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + jmp NEAR $L$_16_blocks_ok_851 + +$L$_16_blocks_overflow_851: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 +$L$_16_blocks_ok_851: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm4,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vextracti32x4 xmm11,zmm4,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10]{k1},zmm4 + vmovdqu8 zmm20{k1}{z},zmm20 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb zmm20,zmm20,zmm29 + vextracti32x4 xmm7,zmm20,2 + sub r13,16 * (11 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_852 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm20,zmm1,0x01 + vpclmulqdq zmm5,zmm20,zmm1,0x10 + vpclmulqdq zmm0,zmm20,zmm1,0x11 + vpclmulqdq zmm3,zmm20,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_852 +$L$_small_initial_partial_block_852: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm20,ymm1,0x01 + vpclmulqdq ymm5,ymm20,ymm1,0x10 + vpclmulqdq ymm0,ymm20,ymm1,0x11 + vpclmulqdq ymm3,ymm20,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_852: + + or r13,r13 + je NEAR $L$_after_reduction_852 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_852: + jmp NEAR $L$_last_blocks_done_830 +$L$_last_num_blocks_is_12_830: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,244 + jae NEAR $L$_16_blocks_overflow_853 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + jmp NEAR $L$_16_blocks_ok_853 + +$L$_16_blocks_overflow_853: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 +$L$_16_blocks_ok_853: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm4,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vextracti32x4 xmm11,zmm4,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10]{k1},zmm4 + vmovdqu8 zmm20{k1}{z},zmm20 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb zmm20,zmm20,zmm29 + vextracti32x4 xmm7,zmm20,3 + sub r13,16 * (12 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_854 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[160+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_854 +$L$_small_initial_partial_block_854: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm20,zmm1,0x01 + vpclmulqdq zmm5,zmm20,zmm1,0x10 + vpclmulqdq zmm0,zmm20,zmm1,0x11 + vpclmulqdq zmm3,zmm20,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_854: + + or r13,r13 + je NEAR $L$_after_reduction_854 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_854: + jmp NEAR $L$_last_blocks_done_830 +$L$_last_num_blocks_is_13_830: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,243 + jae NEAR $L$_16_blocks_overflow_855 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd xmm5,xmm4,xmm27 + jmp NEAR $L$_16_blocks_ok_855 + +$L$_16_blocks_overflow_855: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb xmm5,xmm5,xmm29 +$L$_16_blocks_ok_855: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm5,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 xmm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast xmm5,xmm5,xmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq xmm5,xmm5,xmm21 + vextracti32x4 xmm11,zmm5,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 XMMWORD[192+r11*1+r10]{k1},xmm5 + vmovdqu8 zmm21{k1}{z},zmm21 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb zmm20,zmm20,zmm29 + vpshufb xmm21,xmm21,xmm29 + vextracti32x4 xmm7,zmm21,0 + sub r13,16 * (13 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_856 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[144+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm21,xmm1,0x01 + vpclmulqdq xmm5,xmm21,xmm1,0x10 + vpclmulqdq xmm0,xmm21,xmm1,0x11 + vpclmulqdq xmm3,xmm21,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_856 +$L$_small_initial_partial_block_856: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[160+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_856: + + or r13,r13 + je NEAR $L$_after_reduction_856 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_856: + jmp NEAR $L$_last_blocks_done_830 +$L$_last_num_blocks_is_14_830: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,242 + jae NEAR $L$_16_blocks_overflow_857 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd ymm5,ymm4,ymm27 + jmp NEAR $L$_16_blocks_ok_857 + +$L$_16_blocks_overflow_857: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb ymm5,ymm5,ymm29 +$L$_16_blocks_ok_857: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm5,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 ymm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast ymm5,ymm5,ymm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq ymm5,ymm5,ymm21 + vextracti32x4 xmm11,zmm5,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 YMMWORD[192+r11*1+r10]{k1},ymm5 + vmovdqu8 zmm21{k1}{z},zmm21 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb zmm20,zmm20,zmm29 + vpshufb ymm21,ymm21,ymm29 + vextracti32x4 xmm7,zmm21,1 + sub r13,16 * (14 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_858 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[128+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm21,ymm1,0x01 + vpclmulqdq ymm5,ymm21,ymm1,0x10 + vpclmulqdq ymm0,ymm21,ymm1,0x11 + vpclmulqdq ymm3,ymm21,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_858 +$L$_small_initial_partial_block_858: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[144+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm21,xmm1,0x01 + vpclmulqdq xmm5,xmm21,xmm1,0x10 + vpclmulqdq xmm0,xmm21,xmm1,0x11 + vpclmulqdq xmm3,xmm21,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_858: + + or r13,r13 + je NEAR $L$_after_reduction_858 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_858: + jmp NEAR $L$_last_blocks_done_830 +$L$_last_num_blocks_is_15_830: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,241 + jae NEAR $L$_16_blocks_overflow_859 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_859 + +$L$_16_blocks_overflow_859: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_859: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm5,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + vextracti32x4 xmm11,zmm5,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[192+r11*1+r10]{k1},zmm5 + vmovdqu8 zmm21{k1}{z},zmm21 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb zmm20,zmm20,zmm29 + vpshufb zmm21,zmm21,zmm29 + vextracti32x4 xmm7,zmm21,2 + sub r13,16 * (15 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_860 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[112+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm21,zmm1,0x01 + vpclmulqdq zmm5,zmm21,zmm1,0x10 + vpclmulqdq zmm0,zmm21,zmm1,0x11 + vpclmulqdq zmm3,zmm21,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_860 +$L$_small_initial_partial_block_860: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[128+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm21,ymm1,0x01 + vpclmulqdq ymm5,ymm21,ymm1,0x10 + vpclmulqdq ymm0,ymm21,ymm1,0x11 + vpclmulqdq ymm3,ymm21,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_860: + + or r13,r13 + je NEAR $L$_after_reduction_860 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_860: + jmp NEAR $L$_last_blocks_done_830 +$L$_last_num_blocks_is_16_830: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,240 + jae NEAR $L$_16_blocks_overflow_861 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_861 + +$L$_16_blocks_overflow_861: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_861: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm5,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + vextracti32x4 xmm11,zmm5,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[192+r11*1+r10]{k1},zmm5 + vmovdqu8 zmm21{k1}{z},zmm21 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb zmm20,zmm20,zmm29 + vpshufb zmm21,zmm21,zmm29 + vextracti32x4 xmm7,zmm21,3 + sub r13,16 * (16 - 1) +$L$_small_initial_partial_block_862: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[112+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm21,zmm1,0x01 + vpclmulqdq zmm5,zmm21,zmm1,0x10 + vpclmulqdq zmm0,zmm21,zmm1,0x11 + vpclmulqdq zmm3,zmm21,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_862: + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_862: + jmp NEAR $L$_last_blocks_done_830 +$L$_last_num_blocks_is_0_830: + vmovdqa64 zmm13,ZMMWORD[1024+rsp] + vmovdqu64 zmm12,ZMMWORD[rbx*1+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[1088+rsp] + vmovdqu64 zmm12,ZMMWORD[64+rbx*1+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + vpternlogq zmm26,zmm4,zmm10,0x96 + vpternlogq zmm24,zmm0,zmm6,0x96 + vpternlogq zmm25,zmm3,zmm7,0x96 + vpternlogq zmm26,zmm5,zmm11,0x96 + vmovdqa64 zmm13,ZMMWORD[1152+rsp] + vmovdqu64 zmm12,ZMMWORD[128+rbx*1+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[1216+rsp] + vmovdqu64 zmm12,ZMMWORD[192+rbx*1+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + + vpternlogq zmm26,zmm4,zmm10,0x96 + vpternlogq zmm24,zmm0,zmm6,0x96 + vpternlogq zmm25,zmm3,zmm7,0x96 + vpternlogq zmm26,zmm5,zmm11,0x96 + + vpsrldq zmm0,zmm26,8 + vpslldq zmm3,zmm26,8 + vpxorq zmm24,zmm24,zmm0 + vpxorq zmm25,zmm25,zmm3 + vextracti64x4 ymm0,zmm24,1 + vpxorq ymm24,ymm24,ymm0 + vextracti32x4 xmm0,ymm24,1 + vpxorq xmm24,xmm24,xmm0 + vextracti64x4 ymm3,zmm25,1 + vpxorq ymm25,ymm25,ymm3 + vextracti32x4 xmm3,ymm25,1 + vpxorq xmm25,xmm25,xmm3 + vmovdqa64 xmm4,XMMWORD[POLY2] + + + vpclmulqdq xmm0,xmm4,xmm25,0x01 + vpslldq xmm0,xmm0,8 + vpxorq xmm0,xmm25,xmm0 + + + vpclmulqdq xmm3,xmm4,xmm0,0x00 + vpsrldq xmm3,xmm3,4 + vpclmulqdq xmm14,xmm4,xmm0,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm3,xmm24,0x96 + +$L$_last_blocks_done_830: + vpshufb xmm2,xmm2,xmm29 + jmp NEAR $L$_ghash_done_821 +$L$_encrypt_32_blocks_821: + cmp r15b,240 + jae NEAR $L$_16_blocks_overflow_863 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_863 +$L$_16_blocks_overflow_863: + vpshufb zmm2,zmm2,zmm29 + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_863: + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rsp] + + + + + vshufi64x2 zmm2,zmm5,zmm5,255 + add r15b,16 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + + + + + + + + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + + vpclmulqdq zmm6,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + + vpternlogq zmm6,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + + + + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm21,ZMMWORD[192+r11*1+r9] + + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm26,zmm10,zmm15 + vpxorq zmm24,zmm6,zmm12 + vpxorq zmm25,zmm7,zmm13 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + + + + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + + + + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[192+r11*1+r10],zmm5 + vpshufb zmm0,zmm17,zmm29 + vpshufb zmm3,zmm19,zmm29 + vpshufb zmm4,zmm20,zmm29 + vpshufb zmm5,zmm21,zmm29 + vmovdqa64 ZMMWORD[1280+rsp],zmm0 + vmovdqa64 ZMMWORD[1344+rsp],zmm3 + vmovdqa64 ZMMWORD[1408+rsp],zmm4 + vmovdqa64 ZMMWORD[1472+rsp],zmm5 + cmp r15b,240 + jae NEAR $L$_16_blocks_overflow_864 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_864 +$L$_16_blocks_overflow_864: + vpshufb zmm2,zmm2,zmm29 + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_864: + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[256+rsp] + + + + + vshufi64x2 zmm2,zmm5,zmm5,255 + add r15b,16 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[320+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + + + + + + + + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + + vpclmulqdq zmm6,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[384+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[448+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + + vpternlogq zmm6,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + + + + vmovdqu8 zmm17,ZMMWORD[256+r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[320+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[384+r11*1+r9] + vmovdqu8 zmm21,ZMMWORD[448+r11*1+r9] + + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vpternlogq zmm24,zmm6,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + + + + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + + + + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[256+r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[320+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[384+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[448+r11*1+r10],zmm5 + vpshufb zmm0,zmm17,zmm29 + vpshufb zmm3,zmm19,zmm29 + vpshufb zmm4,zmm20,zmm29 + vpshufb zmm5,zmm21,zmm29 + vmovdqa64 ZMMWORD[768+rsp],zmm0 + vmovdqa64 ZMMWORD[832+rsp],zmm3 + vmovdqa64 ZMMWORD[896+rsp],zmm4 + vmovdqa64 ZMMWORD[960+rsp],zmm5 + vmovdqa64 zmm13,ZMMWORD[1280+rsp] + vmovdqu64 zmm12,ZMMWORD[512+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[1344+rsp] + vmovdqu64 zmm12,ZMMWORD[576+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + vpternlogq zmm26,zmm4,zmm10,0x96 + vpternlogq zmm24,zmm0,zmm6,0x96 + vpternlogq zmm25,zmm3,zmm7,0x96 + vpternlogq zmm26,zmm5,zmm11,0x96 + vmovdqa64 zmm13,ZMMWORD[1408+rsp] + vmovdqu64 zmm12,ZMMWORD[640+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[1472+rsp] + vmovdqu64 zmm12,ZMMWORD[704+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + + vpternlogq zmm26,zmm4,zmm10,0x96 + vpternlogq zmm24,zmm0,zmm6,0x96 + vpternlogq zmm25,zmm3,zmm7,0x96 + vpternlogq zmm26,zmm5,zmm11,0x96 + + vpsrldq zmm0,zmm26,8 + vpslldq zmm3,zmm26,8 + vpxorq zmm24,zmm24,zmm0 + vpxorq zmm25,zmm25,zmm3 + vextracti64x4 ymm0,zmm24,1 + vpxorq ymm24,ymm24,ymm0 + vextracti32x4 xmm0,ymm24,1 + vpxorq xmm24,xmm24,xmm0 + vextracti64x4 ymm3,zmm25,1 + vpxorq ymm25,ymm25,ymm3 + vextracti32x4 xmm3,ymm25,1 + vpxorq xmm25,xmm25,xmm3 + vmovdqa64 xmm4,XMMWORD[POLY2] + + + vpclmulqdq xmm0,xmm4,xmm25,0x01 + vpslldq xmm0,xmm0,8 + vpxorq xmm0,xmm25,xmm0 + + + vpclmulqdq xmm3,xmm4,xmm0,0x00 + vpsrldq xmm3,xmm3,4 + vpclmulqdq xmm14,xmm4,xmm0,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm3,xmm24,0x96 + + sub r13,512 + add r11,512 + mov r10d,r13d + and r10d,~15 + mov ebx,512 + sub ebx,r10d + mov r10d,r13d + add r10d,15 + shr r10d,4 + je NEAR $L$_last_num_blocks_is_0_865 + + cmp r10d,8 + je NEAR $L$_last_num_blocks_is_8_865 + jb NEAR $L$_last_num_blocks_is_7_1_865 + + + cmp r10d,12 + je NEAR $L$_last_num_blocks_is_12_865 + jb NEAR $L$_last_num_blocks_is_11_9_865 + + + cmp r10d,15 + je NEAR $L$_last_num_blocks_is_15_865 + ja NEAR $L$_last_num_blocks_is_16_865 + cmp r10d,14 + je NEAR $L$_last_num_blocks_is_14_865 + jmp NEAR $L$_last_num_blocks_is_13_865 + +$L$_last_num_blocks_is_11_9_865: + + cmp r10d,10 + je NEAR $L$_last_num_blocks_is_10_865 + ja NEAR $L$_last_num_blocks_is_11_865 + jmp NEAR $L$_last_num_blocks_is_9_865 + +$L$_last_num_blocks_is_7_1_865: + cmp r10d,4 + je NEAR $L$_last_num_blocks_is_4_865 + jb NEAR $L$_last_num_blocks_is_3_1_865 + + cmp r10d,6 + ja NEAR $L$_last_num_blocks_is_7_865 + je NEAR $L$_last_num_blocks_is_6_865 + jmp NEAR $L$_last_num_blocks_is_5_865 + +$L$_last_num_blocks_is_3_1_865: + + cmp r10d,2 + ja NEAR $L$_last_num_blocks_is_3_865 + je NEAR $L$_last_num_blocks_is_2_865 +$L$_last_num_blocks_is_1_865: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,255 + jae NEAR $L$_16_blocks_overflow_866 + vpaddd xmm0,xmm2,xmm28 + jmp NEAR $L$_16_blocks_ok_866 + +$L$_16_blocks_overflow_866: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb xmm0,xmm0,xmm29 +$L$_16_blocks_ok_866: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm0,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 xmm17{k1}{z},[r11*1+r9] + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc xmm0,xmm0,xmm31 + vaesenclast xmm0,xmm0,xmm30 + vpxorq xmm0,xmm0,xmm17 + vextracti32x4 xmm11,zmm0,0 + mov r10,QWORD[120+rbp] + vmovdqu8 XMMWORD[r11*1+r10]{k1},xmm0 + vmovdqu8 zmm17{k1}{z},zmm17 + vpshufb xmm17,xmm17,xmm29 + vextracti32x4 xmm7,zmm17,0 + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_867 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm17,xmm1,0x01 + vpclmulqdq xmm5,xmm17,xmm1,0x10 + vpclmulqdq xmm0,xmm17,xmm1,0x11 + vpclmulqdq xmm3,xmm17,xmm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_867 +$L$_small_initial_partial_block_867: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + + + vpsrldq zmm0,zmm26,8 + vpslldq zmm3,zmm26,8 + vpxorq zmm24,zmm24,zmm0 + vpxorq zmm25,zmm25,zmm3 + vextracti64x4 ymm0,zmm24,1 + vpxorq ymm24,ymm24,ymm0 + vextracti32x4 xmm0,ymm24,1 + vpxorq xmm24,xmm24,xmm0 + vextracti64x4 ymm3,zmm25,1 + vpxorq ymm25,ymm25,ymm3 + vextracti32x4 xmm3,ymm25,1 + vpxorq xmm25,xmm25,xmm3 + vmovdqa64 xmm0,XMMWORD[POLY2] + + + vpclmulqdq xmm3,xmm0,xmm25,0x01 + vpslldq xmm3,xmm3,8 + vpxorq xmm3,xmm25,xmm3 + + + vpclmulqdq xmm4,xmm0,xmm3,0x00 + vpsrldq xmm4,xmm4,4 + vpclmulqdq xmm14,xmm0,xmm3,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm4,xmm24,0x96 + + + + + + + + + + + + + vpxorq xmm14,xmm14,xmm7 + + jmp NEAR $L$_after_reduction_867 +$L$_small_initial_compute_done_867: +$L$_after_reduction_867: + jmp NEAR $L$_last_blocks_done_865 +$L$_last_num_blocks_is_2_865: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,254 + jae NEAR $L$_16_blocks_overflow_868 + vpaddd ymm0,ymm2,ymm28 + jmp NEAR $L$_16_blocks_ok_868 + +$L$_16_blocks_overflow_868: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb ymm0,ymm0,ymm29 +$L$_16_blocks_ok_868: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm0,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 ymm17{k1}{z},[r11*1+r9] + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc ymm0,ymm0,ymm31 + vaesenclast ymm0,ymm0,ymm30 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm11,zmm0,1 + mov r10,QWORD[120+rbp] + vmovdqu8 YMMWORD[r11*1+r10]{k1},ymm0 + vmovdqu8 zmm17{k1}{z},zmm17 + vpshufb ymm17,ymm17,ymm29 + vextracti32x4 xmm7,zmm17,1 + sub r13,16 * (2 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_869 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm17,ymm1,0x01 + vpclmulqdq ymm5,ymm17,ymm1,0x10 + vpclmulqdq ymm0,ymm17,ymm1,0x11 + vpclmulqdq ymm3,ymm17,ymm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_869 +$L$_small_initial_partial_block_869: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm17,xmm1,0x01 + vpclmulqdq xmm5,xmm17,xmm1,0x10 + vpclmulqdq xmm0,xmm17,xmm1,0x11 + vpclmulqdq xmm3,xmm17,xmm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_869: + + or r13,r13 + je NEAR $L$_after_reduction_869 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_869: + jmp NEAR $L$_last_blocks_done_865 +$L$_last_num_blocks_is_3_865: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,253 + jae NEAR $L$_16_blocks_overflow_870 + vpaddd zmm0,zmm2,zmm28 + jmp NEAR $L$_16_blocks_ok_870 + +$L$_16_blocks_overflow_870: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb zmm0,zmm0,zmm29 +$L$_16_blocks_ok_870: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm0,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17{k1}{z},[r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vpxorq zmm0,zmm0,zmm17 + vextracti32x4 xmm11,zmm0,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10]{k1},zmm0 + vmovdqu8 zmm17{k1}{z},zmm17 + vpshufb zmm17,zmm17,zmm29 + vextracti32x4 xmm7,zmm17,2 + sub r13,16 * (3 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_871 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_871 +$L$_small_initial_partial_block_871: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm17,ymm1,0x01 + vpclmulqdq ymm5,ymm17,ymm1,0x10 + vpclmulqdq ymm0,ymm17,ymm1,0x11 + vpclmulqdq ymm3,ymm17,ymm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_871: + + or r13,r13 + je NEAR $L$_after_reduction_871 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_871: + jmp NEAR $L$_last_blocks_done_865 +$L$_last_num_blocks_is_4_865: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,252 + jae NEAR $L$_16_blocks_overflow_872 + vpaddd zmm0,zmm2,zmm28 + jmp NEAR $L$_16_blocks_ok_872 + +$L$_16_blocks_overflow_872: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb zmm0,zmm0,zmm29 +$L$_16_blocks_ok_872: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm0,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17{k1}{z},[r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vpxorq zmm0,zmm0,zmm17 + vextracti32x4 xmm11,zmm0,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10]{k1},zmm0 + vmovdqu8 zmm17{k1}{z},zmm17 + vpshufb zmm17,zmm17,zmm29 + vextracti32x4 xmm7,zmm17,3 + sub r13,16 * (4 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_873 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_873 +$L$_small_initial_partial_block_873: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_873: + + or r13,r13 + je NEAR $L$_after_reduction_873 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_873: + jmp NEAR $L$_last_blocks_done_865 +$L$_last_num_blocks_is_5_865: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,251 + jae NEAR $L$_16_blocks_overflow_874 + vpaddd zmm0,zmm2,zmm28 + vpaddd xmm3,xmm0,xmm27 + jmp NEAR $L$_16_blocks_ok_874 + +$L$_16_blocks_overflow_874: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb xmm3,xmm3,xmm29 +$L$_16_blocks_ok_874: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm3,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 xmm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast xmm3,xmm3,xmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq xmm3,xmm3,xmm19 + vextracti32x4 xmm11,zmm3,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 XMMWORD[64+r11*1+r10]{k1},xmm3 + vmovdqu8 zmm19{k1}{z},zmm19 + vpshufb zmm17,zmm17,zmm29 + vpshufb xmm19,xmm19,xmm29 + vextracti32x4 xmm7,zmm19,0 + sub r13,16 * (5 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_875 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm19,xmm1,0x01 + vpclmulqdq xmm5,xmm19,xmm1,0x10 + vpclmulqdq xmm0,xmm19,xmm1,0x11 + vpclmulqdq xmm3,xmm19,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_875 +$L$_small_initial_partial_block_875: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_875: + + or r13,r13 + je NEAR $L$_after_reduction_875 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_875: + jmp NEAR $L$_last_blocks_done_865 +$L$_last_num_blocks_is_6_865: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,250 + jae NEAR $L$_16_blocks_overflow_876 + vpaddd zmm0,zmm2,zmm28 + vpaddd ymm3,ymm0,ymm27 + jmp NEAR $L$_16_blocks_ok_876 + +$L$_16_blocks_overflow_876: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb ymm3,ymm3,ymm29 +$L$_16_blocks_ok_876: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm3,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 ymm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast ymm3,ymm3,ymm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm11,zmm3,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 YMMWORD[64+r11*1+r10]{k1},ymm3 + vmovdqu8 zmm19{k1}{z},zmm19 + vpshufb zmm17,zmm17,zmm29 + vpshufb ymm19,ymm19,ymm29 + vextracti32x4 xmm7,zmm19,1 + sub r13,16 * (6 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_877 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm19,ymm1,0x01 + vpclmulqdq ymm5,ymm19,ymm1,0x10 + vpclmulqdq ymm0,ymm19,ymm1,0x11 + vpclmulqdq ymm3,ymm19,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_877 +$L$_small_initial_partial_block_877: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm19,xmm1,0x01 + vpclmulqdq xmm5,xmm19,xmm1,0x10 + vpclmulqdq xmm0,xmm19,xmm1,0x11 + vpclmulqdq xmm3,xmm19,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_877: + + or r13,r13 + je NEAR $L$_after_reduction_877 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_877: + jmp NEAR $L$_last_blocks_done_865 +$L$_last_num_blocks_is_7_865: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,249 + jae NEAR $L$_16_blocks_overflow_878 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + jmp NEAR $L$_16_blocks_ok_878 + +$L$_16_blocks_overflow_878: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 +$L$_16_blocks_ok_878: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm3,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti32x4 xmm11,zmm3,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10]{k1},zmm3 + vmovdqu8 zmm19{k1}{z},zmm19 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vextracti32x4 xmm7,zmm19,2 + sub r13,16 * (7 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_879 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm19,zmm1,0x01 + vpclmulqdq zmm5,zmm19,zmm1,0x10 + vpclmulqdq zmm0,zmm19,zmm1,0x11 + vpclmulqdq zmm3,zmm19,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_879 +$L$_small_initial_partial_block_879: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm19,ymm1,0x01 + vpclmulqdq ymm5,ymm19,ymm1,0x10 + vpclmulqdq ymm0,ymm19,ymm1,0x11 + vpclmulqdq ymm3,ymm19,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_879: + + or r13,r13 + je NEAR $L$_after_reduction_879 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_879: + jmp NEAR $L$_last_blocks_done_865 +$L$_last_num_blocks_is_8_865: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,248 + jae NEAR $L$_16_blocks_overflow_880 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + jmp NEAR $L$_16_blocks_ok_880 + +$L$_16_blocks_overflow_880: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 +$L$_16_blocks_ok_880: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm3,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti32x4 xmm11,zmm3,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10]{k1},zmm3 + vmovdqu8 zmm19{k1}{z},zmm19 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vextracti32x4 xmm7,zmm19,3 + sub r13,16 * (8 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_881 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_881 +$L$_small_initial_partial_block_881: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm19,zmm1,0x01 + vpclmulqdq zmm5,zmm19,zmm1,0x10 + vpclmulqdq zmm0,zmm19,zmm1,0x11 + vpclmulqdq zmm3,zmm19,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_881: + + or r13,r13 + je NEAR $L$_after_reduction_881 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_881: + jmp NEAR $L$_last_blocks_done_865 +$L$_last_num_blocks_is_9_865: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,247 + jae NEAR $L$_16_blocks_overflow_882 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd xmm4,xmm3,xmm27 + jmp NEAR $L$_16_blocks_ok_882 + +$L$_16_blocks_overflow_882: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb xmm4,xmm4,xmm29 +$L$_16_blocks_ok_882: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm4,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 xmm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast xmm4,xmm4,xmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq xmm4,xmm4,xmm20 + vextracti32x4 xmm11,zmm4,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 XMMWORD[128+r11*1+r10]{k1},xmm4 + vmovdqu8 zmm20{k1}{z},zmm20 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb xmm20,xmm20,xmm29 + vextracti32x4 xmm7,zmm20,0 + sub r13,16 * (9 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_883 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm20,xmm1,0x01 + vpclmulqdq xmm5,xmm20,xmm1,0x10 + vpclmulqdq xmm0,xmm20,xmm1,0x11 + vpclmulqdq xmm3,xmm20,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_883 +$L$_small_initial_partial_block_883: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_883: + + or r13,r13 + je NEAR $L$_after_reduction_883 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_883: + jmp NEAR $L$_last_blocks_done_865 +$L$_last_num_blocks_is_10_865: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,246 + jae NEAR $L$_16_blocks_overflow_884 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd ymm4,ymm3,ymm27 + jmp NEAR $L$_16_blocks_ok_884 + +$L$_16_blocks_overflow_884: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb ymm4,ymm4,ymm29 +$L$_16_blocks_ok_884: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm4,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 ymm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast ymm4,ymm4,ymm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq ymm4,ymm4,ymm20 + vextracti32x4 xmm11,zmm4,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 YMMWORD[128+r11*1+r10]{k1},ymm4 + vmovdqu8 zmm20{k1}{z},zmm20 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb ymm20,ymm20,ymm29 + vextracti32x4 xmm7,zmm20,1 + sub r13,16 * (10 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_885 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm20,ymm1,0x01 + vpclmulqdq ymm5,ymm20,ymm1,0x10 + vpclmulqdq ymm0,ymm20,ymm1,0x11 + vpclmulqdq ymm3,ymm20,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_885 +$L$_small_initial_partial_block_885: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm20,xmm1,0x01 + vpclmulqdq xmm5,xmm20,xmm1,0x10 + vpclmulqdq xmm0,xmm20,xmm1,0x11 + vpclmulqdq xmm3,xmm20,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_885: + + or r13,r13 + je NEAR $L$_after_reduction_885 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_885: + jmp NEAR $L$_last_blocks_done_865 +$L$_last_num_blocks_is_11_865: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,245 + jae NEAR $L$_16_blocks_overflow_886 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + jmp NEAR $L$_16_blocks_ok_886 + +$L$_16_blocks_overflow_886: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 +$L$_16_blocks_ok_886: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm4,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vextracti32x4 xmm11,zmm4,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10]{k1},zmm4 + vmovdqu8 zmm20{k1}{z},zmm20 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb zmm20,zmm20,zmm29 + vextracti32x4 xmm7,zmm20,2 + sub r13,16 * (11 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_887 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm20,zmm1,0x01 + vpclmulqdq zmm5,zmm20,zmm1,0x10 + vpclmulqdq zmm0,zmm20,zmm1,0x11 + vpclmulqdq zmm3,zmm20,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_887 +$L$_small_initial_partial_block_887: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm20,ymm1,0x01 + vpclmulqdq ymm5,ymm20,ymm1,0x10 + vpclmulqdq ymm0,ymm20,ymm1,0x11 + vpclmulqdq ymm3,ymm20,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_887: + + or r13,r13 + je NEAR $L$_after_reduction_887 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_887: + jmp NEAR $L$_last_blocks_done_865 +$L$_last_num_blocks_is_12_865: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,244 + jae NEAR $L$_16_blocks_overflow_888 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + jmp NEAR $L$_16_blocks_ok_888 + +$L$_16_blocks_overflow_888: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 +$L$_16_blocks_ok_888: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm4,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vextracti32x4 xmm11,zmm4,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10]{k1},zmm4 + vmovdqu8 zmm20{k1}{z},zmm20 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb zmm20,zmm20,zmm29 + vextracti32x4 xmm7,zmm20,3 + sub r13,16 * (12 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_889 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[160+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_889 +$L$_small_initial_partial_block_889: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm20,zmm1,0x01 + vpclmulqdq zmm5,zmm20,zmm1,0x10 + vpclmulqdq zmm0,zmm20,zmm1,0x11 + vpclmulqdq zmm3,zmm20,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_889: + + or r13,r13 + je NEAR $L$_after_reduction_889 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_889: + jmp NEAR $L$_last_blocks_done_865 +$L$_last_num_blocks_is_13_865: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,243 + jae NEAR $L$_16_blocks_overflow_890 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd xmm5,xmm4,xmm27 + jmp NEAR $L$_16_blocks_ok_890 + +$L$_16_blocks_overflow_890: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb xmm5,xmm5,xmm29 +$L$_16_blocks_ok_890: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm5,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 xmm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast xmm5,xmm5,xmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq xmm5,xmm5,xmm21 + vextracti32x4 xmm11,zmm5,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 XMMWORD[192+r11*1+r10]{k1},xmm5 + vmovdqu8 zmm21{k1}{z},zmm21 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb zmm20,zmm20,zmm29 + vpshufb xmm21,xmm21,xmm29 + vextracti32x4 xmm7,zmm21,0 + sub r13,16 * (13 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_891 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[144+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm21,xmm1,0x01 + vpclmulqdq xmm5,xmm21,xmm1,0x10 + vpclmulqdq xmm0,xmm21,xmm1,0x11 + vpclmulqdq xmm3,xmm21,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_891 +$L$_small_initial_partial_block_891: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[160+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_891: + + or r13,r13 + je NEAR $L$_after_reduction_891 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_891: + jmp NEAR $L$_last_blocks_done_865 +$L$_last_num_blocks_is_14_865: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,242 + jae NEAR $L$_16_blocks_overflow_892 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd ymm5,ymm4,ymm27 + jmp NEAR $L$_16_blocks_ok_892 + +$L$_16_blocks_overflow_892: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb ymm5,ymm5,ymm29 +$L$_16_blocks_ok_892: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm5,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 ymm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast ymm5,ymm5,ymm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq ymm5,ymm5,ymm21 + vextracti32x4 xmm11,zmm5,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 YMMWORD[192+r11*1+r10]{k1},ymm5 + vmovdqu8 zmm21{k1}{z},zmm21 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb zmm20,zmm20,zmm29 + vpshufb ymm21,ymm21,ymm29 + vextracti32x4 xmm7,zmm21,1 + sub r13,16 * (14 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_893 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[128+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm21,ymm1,0x01 + vpclmulqdq ymm5,ymm21,ymm1,0x10 + vpclmulqdq ymm0,ymm21,ymm1,0x11 + vpclmulqdq ymm3,ymm21,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_893 +$L$_small_initial_partial_block_893: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[144+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm21,xmm1,0x01 + vpclmulqdq xmm5,xmm21,xmm1,0x10 + vpclmulqdq xmm0,xmm21,xmm1,0x11 + vpclmulqdq xmm3,xmm21,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_893: + + or r13,r13 + je NEAR $L$_after_reduction_893 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_893: + jmp NEAR $L$_last_blocks_done_865 +$L$_last_num_blocks_is_15_865: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,241 + jae NEAR $L$_16_blocks_overflow_894 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_894 + +$L$_16_blocks_overflow_894: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_894: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm5,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + vextracti32x4 xmm11,zmm5,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[192+r11*1+r10]{k1},zmm5 + vmovdqu8 zmm21{k1}{z},zmm21 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb zmm20,zmm20,zmm29 + vpshufb zmm21,zmm21,zmm29 + vextracti32x4 xmm7,zmm21,2 + sub r13,16 * (15 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_895 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[112+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm21,zmm1,0x01 + vpclmulqdq zmm5,zmm21,zmm1,0x10 + vpclmulqdq zmm0,zmm21,zmm1,0x11 + vpclmulqdq zmm3,zmm21,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_895 +$L$_small_initial_partial_block_895: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[128+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm21,ymm1,0x01 + vpclmulqdq ymm5,ymm21,ymm1,0x10 + vpclmulqdq ymm0,ymm21,ymm1,0x11 + vpclmulqdq ymm3,ymm21,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_895: + + or r13,r13 + je NEAR $L$_after_reduction_895 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_895: + jmp NEAR $L$_last_blocks_done_865 +$L$_last_num_blocks_is_16_865: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,240 + jae NEAR $L$_16_blocks_overflow_896 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_896 + +$L$_16_blocks_overflow_896: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_896: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm5,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + vextracti32x4 xmm11,zmm5,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[192+r11*1+r10]{k1},zmm5 + vmovdqu8 zmm21{k1}{z},zmm21 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb zmm20,zmm20,zmm29 + vpshufb zmm21,zmm21,zmm29 + vextracti32x4 xmm7,zmm21,3 + sub r13,16 * (16 - 1) +$L$_small_initial_partial_block_897: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[112+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm21,zmm1,0x01 + vpclmulqdq zmm5,zmm21,zmm1,0x10 + vpclmulqdq zmm0,zmm21,zmm1,0x11 + vpclmulqdq zmm3,zmm21,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_897: + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_897: + jmp NEAR $L$_last_blocks_done_865 +$L$_last_num_blocks_is_0_865: + vmovdqa64 zmm13,ZMMWORD[768+rsp] + vpxorq zmm13,zmm13,zmm14 + vmovdqu64 zmm12,ZMMWORD[rbx*1+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[832+rsp] + vmovdqu64 zmm12,ZMMWORD[64+rbx*1+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + vpxorq zmm26,zmm4,zmm10 + vpxorq zmm24,zmm0,zmm6 + vpxorq zmm25,zmm3,zmm7 + vpternlogq zmm26,zmm5,zmm11,0x96 + vmovdqa64 zmm13,ZMMWORD[896+rsp] + vmovdqu64 zmm12,ZMMWORD[128+rbx*1+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[960+rsp] + vmovdqu64 zmm12,ZMMWORD[192+rbx*1+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + + vpternlogq zmm26,zmm4,zmm10,0x96 + vpternlogq zmm24,zmm0,zmm6,0x96 + vpternlogq zmm25,zmm3,zmm7,0x96 + vpternlogq zmm26,zmm5,zmm11,0x96 + + vpsrldq zmm0,zmm26,8 + vpslldq zmm3,zmm26,8 + vpxorq zmm24,zmm24,zmm0 + vpxorq zmm25,zmm25,zmm3 + vextracti64x4 ymm0,zmm24,1 + vpxorq ymm24,ymm24,ymm0 + vextracti32x4 xmm0,ymm24,1 + vpxorq xmm24,xmm24,xmm0 + vextracti64x4 ymm3,zmm25,1 + vpxorq ymm25,ymm25,ymm3 + vextracti32x4 xmm3,ymm25,1 + vpxorq xmm25,xmm25,xmm3 + vmovdqa64 xmm4,XMMWORD[POLY2] + + + vpclmulqdq xmm0,xmm4,xmm25,0x01 + vpslldq xmm0,xmm0,8 + vpxorq xmm0,xmm25,xmm0 + + + vpclmulqdq xmm3,xmm4,xmm0,0x00 + vpsrldq xmm3,xmm3,4 + vpclmulqdq xmm14,xmm4,xmm0,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm3,xmm24,0x96 + +$L$_last_blocks_done_865: + vpshufb xmm2,xmm2,xmm29 + jmp NEAR $L$_ghash_done_821 +$L$_encrypt_16_blocks_821: + cmp r15b,240 + jae NEAR $L$_16_blocks_overflow_898 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_898 +$L$_16_blocks_overflow_898: + vpshufb zmm2,zmm2,zmm29 + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_898: + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rsp] + + + + + vshufi64x2 zmm2,zmm5,zmm5,255 + add r15b,16 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + + + + + + + + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + + vpclmulqdq zmm6,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + + vpternlogq zmm6,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + + + + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm21,ZMMWORD[192+r11*1+r9] + + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm26,zmm10,zmm15 + vpxorq zmm24,zmm6,zmm12 + vpxorq zmm25,zmm7,zmm13 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + + + + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + + + + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[192+r11*1+r10],zmm5 + vpshufb zmm0,zmm17,zmm29 + vpshufb zmm3,zmm19,zmm29 + vpshufb zmm4,zmm20,zmm29 + vpshufb zmm5,zmm21,zmm29 + vmovdqa64 ZMMWORD[1280+rsp],zmm0 + vmovdqa64 ZMMWORD[1344+rsp],zmm3 + vmovdqa64 ZMMWORD[1408+rsp],zmm4 + vmovdqa64 ZMMWORD[1472+rsp],zmm5 + vmovdqa64 zmm13,ZMMWORD[1024+rsp] + vmovdqu64 zmm12,ZMMWORD[256+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[1088+rsp] + vmovdqu64 zmm12,ZMMWORD[320+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + vpternlogq zmm26,zmm4,zmm10,0x96 + vpternlogq zmm24,zmm0,zmm6,0x96 + vpternlogq zmm25,zmm3,zmm7,0x96 + vpternlogq zmm26,zmm5,zmm11,0x96 + vmovdqa64 zmm13,ZMMWORD[1152+rsp] + vmovdqu64 zmm12,ZMMWORD[384+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[1216+rsp] + vmovdqu64 zmm12,ZMMWORD[448+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + + vpternlogq zmm26,zmm4,zmm10,0x96 + vpternlogq zmm24,zmm0,zmm6,0x96 + vpternlogq zmm25,zmm3,zmm7,0x96 + vpternlogq zmm26,zmm5,zmm11,0x96 + sub r13,256 + add r11,256 + mov r10d,r13d + add r10d,15 + shr r10d,4 + je NEAR $L$_last_num_blocks_is_0_899 + + cmp r10d,8 + je NEAR $L$_last_num_blocks_is_8_899 + jb NEAR $L$_last_num_blocks_is_7_1_899 + + + cmp r10d,12 + je NEAR $L$_last_num_blocks_is_12_899 + jb NEAR $L$_last_num_blocks_is_11_9_899 + + + cmp r10d,15 + je NEAR $L$_last_num_blocks_is_15_899 + ja NEAR $L$_last_num_blocks_is_16_899 + cmp r10d,14 + je NEAR $L$_last_num_blocks_is_14_899 + jmp NEAR $L$_last_num_blocks_is_13_899 + +$L$_last_num_blocks_is_11_9_899: + + cmp r10d,10 + je NEAR $L$_last_num_blocks_is_10_899 + ja NEAR $L$_last_num_blocks_is_11_899 + jmp NEAR $L$_last_num_blocks_is_9_899 + +$L$_last_num_blocks_is_7_1_899: + cmp r10d,4 + je NEAR $L$_last_num_blocks_is_4_899 + jb NEAR $L$_last_num_blocks_is_3_1_899 + + cmp r10d,6 + ja NEAR $L$_last_num_blocks_is_7_899 + je NEAR $L$_last_num_blocks_is_6_899 + jmp NEAR $L$_last_num_blocks_is_5_899 + +$L$_last_num_blocks_is_3_1_899: + + cmp r10d,2 + ja NEAR $L$_last_num_blocks_is_3_899 + je NEAR $L$_last_num_blocks_is_2_899 +$L$_last_num_blocks_is_1_899: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,255 + jae NEAR $L$_16_blocks_overflow_900 + vpaddd xmm0,xmm2,xmm28 + jmp NEAR $L$_16_blocks_ok_900 + +$L$_16_blocks_overflow_900: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb xmm0,xmm0,xmm29 +$L$_16_blocks_ok_900: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm0,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 xmm17{k1}{z},[r11*1+r9] + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc xmm0,xmm0,xmm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc xmm0,xmm0,xmm31 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast xmm0,xmm0,xmm30 + vpxorq xmm0,xmm0,xmm17 + vextracti32x4 xmm11,zmm0,0 + mov r10,QWORD[120+rbp] + vmovdqu8 XMMWORD[r11*1+r10]{k1},xmm0 + vmovdqu8 zmm17{k1}{z},zmm17 + vpshufb xmm17,xmm17,xmm29 + vextracti32x4 xmm7,zmm17,0 + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_901 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm17,xmm1,0x01 + vpclmulqdq xmm5,xmm17,xmm1,0x10 + vpclmulqdq xmm0,xmm17,xmm1,0x11 + vpclmulqdq xmm3,xmm17,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_901 +$L$_small_initial_partial_block_901: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + + + + + + + + + + + + vpxorq xmm14,xmm14,xmm7 + + jmp NEAR $L$_after_reduction_901 +$L$_small_initial_compute_done_901: +$L$_after_reduction_901: + jmp NEAR $L$_last_blocks_done_899 +$L$_last_num_blocks_is_2_899: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,254 + jae NEAR $L$_16_blocks_overflow_902 + vpaddd ymm0,ymm2,ymm28 + jmp NEAR $L$_16_blocks_ok_902 + +$L$_16_blocks_overflow_902: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb ymm0,ymm0,ymm29 +$L$_16_blocks_ok_902: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm0,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 ymm17{k1}{z},[r11*1+r9] + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc ymm0,ymm0,ymm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc ymm0,ymm0,ymm31 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast ymm0,ymm0,ymm30 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm11,zmm0,1 + mov r10,QWORD[120+rbp] + vmovdqu8 YMMWORD[r11*1+r10]{k1},ymm0 + vmovdqu8 zmm17{k1}{z},zmm17 + vpshufb ymm17,ymm17,ymm29 + vextracti32x4 xmm7,zmm17,1 + sub r13,16 * (2 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_903 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm17,ymm1,0x01 + vpclmulqdq ymm5,ymm17,ymm1,0x10 + vpclmulqdq ymm0,ymm17,ymm1,0x11 + vpclmulqdq ymm3,ymm17,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_903 +$L$_small_initial_partial_block_903: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm17,xmm1,0x01 + vpclmulqdq xmm5,xmm17,xmm1,0x10 + vpclmulqdq xmm0,xmm17,xmm1,0x11 + vpclmulqdq xmm3,xmm17,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_903: + + or r13,r13 + je NEAR $L$_after_reduction_903 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_903: + jmp NEAR $L$_last_blocks_done_899 +$L$_last_num_blocks_is_3_899: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,253 + jae NEAR $L$_16_blocks_overflow_904 + vpaddd zmm0,zmm2,zmm28 + jmp NEAR $L$_16_blocks_ok_904 + +$L$_16_blocks_overflow_904: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb zmm0,zmm0,zmm29 +$L$_16_blocks_ok_904: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm0,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17{k1}{z},[r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vpxorq zmm0,zmm0,zmm17 + vextracti32x4 xmm11,zmm0,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10]{k1},zmm0 + vmovdqu8 zmm17{k1}{z},zmm17 + vpshufb zmm17,zmm17,zmm29 + vextracti32x4 xmm7,zmm17,2 + sub r13,16 * (3 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_905 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_905 +$L$_small_initial_partial_block_905: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm17,ymm1,0x01 + vpclmulqdq ymm5,ymm17,ymm1,0x10 + vpclmulqdq ymm0,ymm17,ymm1,0x11 + vpclmulqdq ymm3,ymm17,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_905: + + or r13,r13 + je NEAR $L$_after_reduction_905 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_905: + jmp NEAR $L$_last_blocks_done_899 +$L$_last_num_blocks_is_4_899: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,252 + jae NEAR $L$_16_blocks_overflow_906 + vpaddd zmm0,zmm2,zmm28 + jmp NEAR $L$_16_blocks_ok_906 + +$L$_16_blocks_overflow_906: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb zmm0,zmm0,zmm29 +$L$_16_blocks_ok_906: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm0,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17{k1}{z},[r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vpxorq zmm0,zmm0,zmm17 + vextracti32x4 xmm11,zmm0,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10]{k1},zmm0 + vmovdqu8 zmm17{k1}{z},zmm17 + vpshufb zmm17,zmm17,zmm29 + vextracti32x4 xmm7,zmm17,3 + sub r13,16 * (4 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_907 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_907 +$L$_small_initial_partial_block_907: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_907: + + or r13,r13 + je NEAR $L$_after_reduction_907 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_907: + jmp NEAR $L$_last_blocks_done_899 +$L$_last_num_blocks_is_5_899: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,251 + jae NEAR $L$_16_blocks_overflow_908 + vpaddd zmm0,zmm2,zmm28 + vpaddd xmm3,xmm0,xmm27 + jmp NEAR $L$_16_blocks_ok_908 + +$L$_16_blocks_overflow_908: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb xmm3,xmm3,xmm29 +$L$_16_blocks_ok_908: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm3,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 xmm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast xmm3,xmm3,xmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq xmm3,xmm3,xmm19 + vextracti32x4 xmm11,zmm3,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 XMMWORD[64+r11*1+r10]{k1},xmm3 + vmovdqu8 zmm19{k1}{z},zmm19 + vpshufb zmm17,zmm17,zmm29 + vpshufb xmm19,xmm19,xmm29 + vextracti32x4 xmm7,zmm19,0 + sub r13,16 * (5 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_909 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm19,xmm1,0x01 + vpclmulqdq xmm5,xmm19,xmm1,0x10 + vpclmulqdq xmm0,xmm19,xmm1,0x11 + vpclmulqdq xmm3,xmm19,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_909 +$L$_small_initial_partial_block_909: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_909: + + or r13,r13 + je NEAR $L$_after_reduction_909 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_909: + jmp NEAR $L$_last_blocks_done_899 +$L$_last_num_blocks_is_6_899: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,250 + jae NEAR $L$_16_blocks_overflow_910 + vpaddd zmm0,zmm2,zmm28 + vpaddd ymm3,ymm0,ymm27 + jmp NEAR $L$_16_blocks_ok_910 + +$L$_16_blocks_overflow_910: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb ymm3,ymm3,ymm29 +$L$_16_blocks_ok_910: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm3,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 ymm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast ymm3,ymm3,ymm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm11,zmm3,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 YMMWORD[64+r11*1+r10]{k1},ymm3 + vmovdqu8 zmm19{k1}{z},zmm19 + vpshufb zmm17,zmm17,zmm29 + vpshufb ymm19,ymm19,ymm29 + vextracti32x4 xmm7,zmm19,1 + sub r13,16 * (6 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_911 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm19,ymm1,0x01 + vpclmulqdq ymm5,ymm19,ymm1,0x10 + vpclmulqdq ymm0,ymm19,ymm1,0x11 + vpclmulqdq ymm3,ymm19,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_911 +$L$_small_initial_partial_block_911: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm19,xmm1,0x01 + vpclmulqdq xmm5,xmm19,xmm1,0x10 + vpclmulqdq xmm0,xmm19,xmm1,0x11 + vpclmulqdq xmm3,xmm19,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_911: + + or r13,r13 + je NEAR $L$_after_reduction_911 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_911: + jmp NEAR $L$_last_blocks_done_899 +$L$_last_num_blocks_is_7_899: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,249 + jae NEAR $L$_16_blocks_overflow_912 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + jmp NEAR $L$_16_blocks_ok_912 + +$L$_16_blocks_overflow_912: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 +$L$_16_blocks_ok_912: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm3,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti32x4 xmm11,zmm3,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10]{k1},zmm3 + vmovdqu8 zmm19{k1}{z},zmm19 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vextracti32x4 xmm7,zmm19,2 + sub r13,16 * (7 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_913 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm19,zmm1,0x01 + vpclmulqdq zmm5,zmm19,zmm1,0x10 + vpclmulqdq zmm0,zmm19,zmm1,0x11 + vpclmulqdq zmm3,zmm19,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_913 +$L$_small_initial_partial_block_913: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm19,ymm1,0x01 + vpclmulqdq ymm5,ymm19,ymm1,0x10 + vpclmulqdq ymm0,ymm19,ymm1,0x11 + vpclmulqdq ymm3,ymm19,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_913: + + or r13,r13 + je NEAR $L$_after_reduction_913 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_913: + jmp NEAR $L$_last_blocks_done_899 +$L$_last_num_blocks_is_8_899: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,248 + jae NEAR $L$_16_blocks_overflow_914 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + jmp NEAR $L$_16_blocks_ok_914 + +$L$_16_blocks_overflow_914: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 +$L$_16_blocks_ok_914: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm3,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti32x4 xmm11,zmm3,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10]{k1},zmm3 + vmovdqu8 zmm19{k1}{z},zmm19 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vextracti32x4 xmm7,zmm19,3 + sub r13,16 * (8 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_915 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_915 +$L$_small_initial_partial_block_915: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm19,zmm1,0x01 + vpclmulqdq zmm5,zmm19,zmm1,0x10 + vpclmulqdq zmm0,zmm19,zmm1,0x11 + vpclmulqdq zmm3,zmm19,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_915: + + or r13,r13 + je NEAR $L$_after_reduction_915 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_915: + jmp NEAR $L$_last_blocks_done_899 +$L$_last_num_blocks_is_9_899: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,247 + jae NEAR $L$_16_blocks_overflow_916 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd xmm4,xmm3,xmm27 + jmp NEAR $L$_16_blocks_ok_916 + +$L$_16_blocks_overflow_916: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb xmm4,xmm4,xmm29 +$L$_16_blocks_ok_916: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm4,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 xmm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast xmm4,xmm4,xmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq xmm4,xmm4,xmm20 + vextracti32x4 xmm11,zmm4,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 XMMWORD[128+r11*1+r10]{k1},xmm4 + vmovdqu8 zmm20{k1}{z},zmm20 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb xmm20,xmm20,xmm29 + vextracti32x4 xmm7,zmm20,0 + sub r13,16 * (9 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_917 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm20,xmm1,0x01 + vpclmulqdq xmm5,xmm20,xmm1,0x10 + vpclmulqdq xmm0,xmm20,xmm1,0x11 + vpclmulqdq xmm3,xmm20,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_917 +$L$_small_initial_partial_block_917: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_917: + + or r13,r13 + je NEAR $L$_after_reduction_917 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_917: + jmp NEAR $L$_last_blocks_done_899 +$L$_last_num_blocks_is_10_899: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,246 + jae NEAR $L$_16_blocks_overflow_918 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd ymm4,ymm3,ymm27 + jmp NEAR $L$_16_blocks_ok_918 + +$L$_16_blocks_overflow_918: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb ymm4,ymm4,ymm29 +$L$_16_blocks_ok_918: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm4,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 ymm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast ymm4,ymm4,ymm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq ymm4,ymm4,ymm20 + vextracti32x4 xmm11,zmm4,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 YMMWORD[128+r11*1+r10]{k1},ymm4 + vmovdqu8 zmm20{k1}{z},zmm20 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb ymm20,ymm20,ymm29 + vextracti32x4 xmm7,zmm20,1 + sub r13,16 * (10 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_919 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm20,ymm1,0x01 + vpclmulqdq ymm5,ymm20,ymm1,0x10 + vpclmulqdq ymm0,ymm20,ymm1,0x11 + vpclmulqdq ymm3,ymm20,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_919 +$L$_small_initial_partial_block_919: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm20,xmm1,0x01 + vpclmulqdq xmm5,xmm20,xmm1,0x10 + vpclmulqdq xmm0,xmm20,xmm1,0x11 + vpclmulqdq xmm3,xmm20,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_919: + + or r13,r13 + je NEAR $L$_after_reduction_919 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_919: + jmp NEAR $L$_last_blocks_done_899 +$L$_last_num_blocks_is_11_899: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,245 + jae NEAR $L$_16_blocks_overflow_920 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + jmp NEAR $L$_16_blocks_ok_920 + +$L$_16_blocks_overflow_920: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 +$L$_16_blocks_ok_920: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm4,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vextracti32x4 xmm11,zmm4,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10]{k1},zmm4 + vmovdqu8 zmm20{k1}{z},zmm20 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb zmm20,zmm20,zmm29 + vextracti32x4 xmm7,zmm20,2 + sub r13,16 * (11 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_921 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm20,zmm1,0x01 + vpclmulqdq zmm5,zmm20,zmm1,0x10 + vpclmulqdq zmm0,zmm20,zmm1,0x11 + vpclmulqdq zmm3,zmm20,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_921 +$L$_small_initial_partial_block_921: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm20,ymm1,0x01 + vpclmulqdq ymm5,ymm20,ymm1,0x10 + vpclmulqdq ymm0,ymm20,ymm1,0x11 + vpclmulqdq ymm3,ymm20,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_921: + + or r13,r13 + je NEAR $L$_after_reduction_921 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_921: + jmp NEAR $L$_last_blocks_done_899 +$L$_last_num_blocks_is_12_899: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,244 + jae NEAR $L$_16_blocks_overflow_922 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + jmp NEAR $L$_16_blocks_ok_922 + +$L$_16_blocks_overflow_922: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 +$L$_16_blocks_ok_922: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm4,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vextracti32x4 xmm11,zmm4,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10]{k1},zmm4 + vmovdqu8 zmm20{k1}{z},zmm20 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb zmm20,zmm20,zmm29 + vextracti32x4 xmm7,zmm20,3 + sub r13,16 * (12 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_923 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[160+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_923 +$L$_small_initial_partial_block_923: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm20,zmm1,0x01 + vpclmulqdq zmm5,zmm20,zmm1,0x10 + vpclmulqdq zmm0,zmm20,zmm1,0x11 + vpclmulqdq zmm3,zmm20,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_923: + + or r13,r13 + je NEAR $L$_after_reduction_923 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_923: + jmp NEAR $L$_last_blocks_done_899 +$L$_last_num_blocks_is_13_899: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,243 + jae NEAR $L$_16_blocks_overflow_924 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd xmm5,xmm4,xmm27 + jmp NEAR $L$_16_blocks_ok_924 + +$L$_16_blocks_overflow_924: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb xmm5,xmm5,xmm29 +$L$_16_blocks_ok_924: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm5,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 xmm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast xmm5,xmm5,xmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq xmm5,xmm5,xmm21 + vextracti32x4 xmm11,zmm5,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 XMMWORD[192+r11*1+r10]{k1},xmm5 + vmovdqu8 zmm21{k1}{z},zmm21 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb zmm20,zmm20,zmm29 + vpshufb xmm21,xmm21,xmm29 + vextracti32x4 xmm7,zmm21,0 + sub r13,16 * (13 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_925 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[144+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm21,xmm1,0x01 + vpclmulqdq xmm5,xmm21,xmm1,0x10 + vpclmulqdq xmm0,xmm21,xmm1,0x11 + vpclmulqdq xmm3,xmm21,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_925 +$L$_small_initial_partial_block_925: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[160+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_925: + + or r13,r13 + je NEAR $L$_after_reduction_925 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_925: + jmp NEAR $L$_last_blocks_done_899 +$L$_last_num_blocks_is_14_899: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,242 + jae NEAR $L$_16_blocks_overflow_926 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd ymm5,ymm4,ymm27 + jmp NEAR $L$_16_blocks_ok_926 + +$L$_16_blocks_overflow_926: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb ymm5,ymm5,ymm29 +$L$_16_blocks_ok_926: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm5,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 ymm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast ymm5,ymm5,ymm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq ymm5,ymm5,ymm21 + vextracti32x4 xmm11,zmm5,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 YMMWORD[192+r11*1+r10]{k1},ymm5 + vmovdqu8 zmm21{k1}{z},zmm21 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb zmm20,zmm20,zmm29 + vpshufb ymm21,ymm21,ymm29 + vextracti32x4 xmm7,zmm21,1 + sub r13,16 * (14 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_927 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[128+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm21,ymm1,0x01 + vpclmulqdq ymm5,ymm21,ymm1,0x10 + vpclmulqdq ymm0,ymm21,ymm1,0x11 + vpclmulqdq ymm3,ymm21,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_927 +$L$_small_initial_partial_block_927: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[144+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm21,xmm1,0x01 + vpclmulqdq xmm5,xmm21,xmm1,0x10 + vpclmulqdq xmm0,xmm21,xmm1,0x11 + vpclmulqdq xmm3,xmm21,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_927: + + or r13,r13 + je NEAR $L$_after_reduction_927 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_927: + jmp NEAR $L$_last_blocks_done_899 +$L$_last_num_blocks_is_15_899: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,241 + jae NEAR $L$_16_blocks_overflow_928 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_928 + +$L$_16_blocks_overflow_928: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_928: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm5,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + vextracti32x4 xmm11,zmm5,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[192+r11*1+r10]{k1},zmm5 + vmovdqu8 zmm21{k1}{z},zmm21 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb zmm20,zmm20,zmm29 + vpshufb zmm21,zmm21,zmm29 + vextracti32x4 xmm7,zmm21,2 + sub r13,16 * (15 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_929 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[112+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm21,zmm1,0x01 + vpclmulqdq zmm5,zmm21,zmm1,0x10 + vpclmulqdq zmm0,zmm21,zmm1,0x11 + vpclmulqdq zmm3,zmm21,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_929 +$L$_small_initial_partial_block_929: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[128+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm21,ymm1,0x01 + vpclmulqdq ymm5,ymm21,ymm1,0x10 + vpclmulqdq ymm0,ymm21,ymm1,0x11 + vpclmulqdq ymm3,ymm21,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_929: + + or r13,r13 + je NEAR $L$_after_reduction_929 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_929: + jmp NEAR $L$_last_blocks_done_899 +$L$_last_num_blocks_is_16_899: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,240 + jae NEAR $L$_16_blocks_overflow_930 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_930 + +$L$_16_blocks_overflow_930: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_930: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm5,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + vextracti32x4 xmm11,zmm5,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[192+r11*1+r10]{k1},zmm5 + vmovdqu8 zmm21{k1}{z},zmm21 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb zmm20,zmm20,zmm29 + vpshufb zmm21,zmm21,zmm29 + vextracti32x4 xmm7,zmm21,3 + sub r13,16 * (16 - 1) +$L$_small_initial_partial_block_931: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[112+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm21,zmm1,0x01 + vpclmulqdq zmm5,zmm21,zmm1,0x10 + vpclmulqdq zmm0,zmm21,zmm1,0x11 + vpclmulqdq zmm3,zmm21,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_931: + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_931: + jmp NEAR $L$_last_blocks_done_899 +$L$_last_num_blocks_is_0_899: + vmovdqa64 zmm13,ZMMWORD[1280+rsp] + vmovdqu64 zmm12,ZMMWORD[512+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[1344+rsp] + vmovdqu64 zmm12,ZMMWORD[576+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + vpternlogq zmm26,zmm4,zmm10,0x96 + vpternlogq zmm24,zmm0,zmm6,0x96 + vpternlogq zmm25,zmm3,zmm7,0x96 + vpternlogq zmm26,zmm5,zmm11,0x96 + vmovdqa64 zmm13,ZMMWORD[1408+rsp] + vmovdqu64 zmm12,ZMMWORD[640+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[1472+rsp] + vmovdqu64 zmm12,ZMMWORD[704+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + + vpternlogq zmm26,zmm4,zmm10,0x96 + vpternlogq zmm24,zmm0,zmm6,0x96 + vpternlogq zmm25,zmm3,zmm7,0x96 + vpternlogq zmm26,zmm5,zmm11,0x96 + + vpsrldq zmm0,zmm26,8 + vpslldq zmm3,zmm26,8 + vpxorq zmm24,zmm24,zmm0 + vpxorq zmm25,zmm25,zmm3 + vextracti64x4 ymm0,zmm24,1 + vpxorq ymm24,ymm24,ymm0 + vextracti32x4 xmm0,ymm24,1 + vpxorq xmm24,xmm24,xmm0 + vextracti64x4 ymm3,zmm25,1 + vpxorq ymm25,ymm25,ymm3 + vextracti32x4 xmm3,ymm25,1 + vpxorq xmm25,xmm25,xmm3 + vmovdqa64 xmm4,XMMWORD[POLY2] + + + vpclmulqdq xmm0,xmm4,xmm25,0x01 + vpslldq xmm0,xmm0,8 + vpxorq xmm0,xmm25,xmm0 + + + vpclmulqdq xmm3,xmm4,xmm0,0x00 + vpsrldq xmm3,xmm3,4 + vpclmulqdq xmm14,xmm4,xmm0,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm3,xmm24,0x96 + +$L$_last_blocks_done_899: + vpshufb xmm2,xmm2,xmm29 + jmp NEAR $L$_ghash_done_821 + +$L$_message_below_32_blocks_821: + + + sub r13,256 + add r11,256 + mov r10d,r13d + test r14,r14 + jnz NEAR $L$_skip_hkeys_precomputation_932 + vmovdqu64 zmm3,ZMMWORD[640+rsp] + + + vshufi64x2 zmm3,zmm3,zmm3,0x00 + + vmovdqu64 zmm4,ZMMWORD[576+rsp] + vmovdqu64 zmm5,ZMMWORD[512+rsp] + + vpclmulqdq zmm6,zmm4,zmm3,0x11 + vpclmulqdq zmm7,zmm4,zmm3,0x00 + vpclmulqdq zmm10,zmm4,zmm3,0x01 + vpclmulqdq zmm4,zmm4,zmm3,0x10 + vpxorq zmm4,zmm4,zmm10 + + vpsrldq zmm10,zmm4,8 + vpslldq zmm4,zmm4,8 + vpxorq zmm6,zmm6,zmm10 + vpxorq zmm4,zmm4,zmm7 + + + + vmovdqu64 zmm10,ZMMWORD[POLY2] + + vpclmulqdq zmm7,zmm10,zmm4,0x01 + vpslldq zmm7,zmm7,8 + vpxorq zmm4,zmm4,zmm7 + + + + vpclmulqdq zmm7,zmm10,zmm4,0x00 + vpsrldq zmm7,zmm7,4 + vpclmulqdq zmm4,zmm10,zmm4,0x10 + vpslldq zmm4,zmm4,4 + + vpternlogq zmm4,zmm6,zmm7,0x96 + + vmovdqu64 ZMMWORD[448+rsp],zmm4 + + vpclmulqdq zmm6,zmm5,zmm3,0x11 + vpclmulqdq zmm7,zmm5,zmm3,0x00 + vpclmulqdq zmm10,zmm5,zmm3,0x01 + vpclmulqdq zmm5,zmm5,zmm3,0x10 + vpxorq zmm5,zmm5,zmm10 + + vpsrldq zmm10,zmm5,8 + vpslldq zmm5,zmm5,8 + vpxorq zmm6,zmm6,zmm10 + vpxorq zmm5,zmm5,zmm7 + + + + vmovdqu64 zmm10,ZMMWORD[POLY2] + + vpclmulqdq zmm7,zmm10,zmm5,0x01 + vpslldq zmm7,zmm7,8 + vpxorq zmm5,zmm5,zmm7 + + + + vpclmulqdq zmm7,zmm10,zmm5,0x00 + vpsrldq zmm7,zmm7,4 + vpclmulqdq zmm5,zmm10,zmm5,0x10 + vpslldq zmm5,zmm5,4 + + vpternlogq zmm5,zmm6,zmm7,0x96 + + vmovdqu64 ZMMWORD[384+rsp],zmm5 + + vpclmulqdq zmm6,zmm4,zmm3,0x11 + vpclmulqdq zmm7,zmm4,zmm3,0x00 + vpclmulqdq zmm10,zmm4,zmm3,0x01 + vpclmulqdq zmm4,zmm4,zmm3,0x10 + vpxorq zmm4,zmm4,zmm10 + + vpsrldq zmm10,zmm4,8 + vpslldq zmm4,zmm4,8 + vpxorq zmm6,zmm6,zmm10 + vpxorq zmm4,zmm4,zmm7 + + + + vmovdqu64 zmm10,ZMMWORD[POLY2] + + vpclmulqdq zmm7,zmm10,zmm4,0x01 + vpslldq zmm7,zmm7,8 + vpxorq zmm4,zmm4,zmm7 + + + + vpclmulqdq zmm7,zmm10,zmm4,0x00 + vpsrldq zmm7,zmm7,4 + vpclmulqdq zmm4,zmm10,zmm4,0x10 + vpslldq zmm4,zmm4,4 + + vpternlogq zmm4,zmm6,zmm7,0x96 + + vmovdqu64 ZMMWORD[320+rsp],zmm4 + + vpclmulqdq zmm6,zmm5,zmm3,0x11 + vpclmulqdq zmm7,zmm5,zmm3,0x00 + vpclmulqdq zmm10,zmm5,zmm3,0x01 + vpclmulqdq zmm5,zmm5,zmm3,0x10 + vpxorq zmm5,zmm5,zmm10 + + vpsrldq zmm10,zmm5,8 + vpslldq zmm5,zmm5,8 + vpxorq zmm6,zmm6,zmm10 + vpxorq zmm5,zmm5,zmm7 + + + + vmovdqu64 zmm10,ZMMWORD[POLY2] + + vpclmulqdq zmm7,zmm10,zmm5,0x01 + vpslldq zmm7,zmm7,8 + vpxorq zmm5,zmm5,zmm7 + + + + vpclmulqdq zmm7,zmm10,zmm5,0x00 + vpsrldq zmm7,zmm7,4 + vpclmulqdq zmm5,zmm10,zmm5,0x10 + vpslldq zmm5,zmm5,4 + + vpternlogq zmm5,zmm6,zmm7,0x96 + + vmovdqu64 ZMMWORD[256+rsp],zmm5 +$L$_skip_hkeys_precomputation_932: + mov r14,1 + and r10d,~15 + mov ebx,512 + sub ebx,r10d + mov r10d,r13d + add r10d,15 + shr r10d,4 + je NEAR $L$_last_num_blocks_is_0_933 + + cmp r10d,8 + je NEAR $L$_last_num_blocks_is_8_933 + jb NEAR $L$_last_num_blocks_is_7_1_933 + + + cmp r10d,12 + je NEAR $L$_last_num_blocks_is_12_933 + jb NEAR $L$_last_num_blocks_is_11_9_933 + + + cmp r10d,15 + je NEAR $L$_last_num_blocks_is_15_933 + ja NEAR $L$_last_num_blocks_is_16_933 + cmp r10d,14 + je NEAR $L$_last_num_blocks_is_14_933 + jmp NEAR $L$_last_num_blocks_is_13_933 + +$L$_last_num_blocks_is_11_9_933: + + cmp r10d,10 + je NEAR $L$_last_num_blocks_is_10_933 + ja NEAR $L$_last_num_blocks_is_11_933 + jmp NEAR $L$_last_num_blocks_is_9_933 + +$L$_last_num_blocks_is_7_1_933: + cmp r10d,4 + je NEAR $L$_last_num_blocks_is_4_933 + jb NEAR $L$_last_num_blocks_is_3_1_933 + + cmp r10d,6 + ja NEAR $L$_last_num_blocks_is_7_933 + je NEAR $L$_last_num_blocks_is_6_933 + jmp NEAR $L$_last_num_blocks_is_5_933 + +$L$_last_num_blocks_is_3_1_933: + + cmp r10d,2 + ja NEAR $L$_last_num_blocks_is_3_933 + je NEAR $L$_last_num_blocks_is_2_933 +$L$_last_num_blocks_is_1_933: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,255 + jae NEAR $L$_16_blocks_overflow_934 + vpaddd xmm0,xmm2,xmm28 + jmp NEAR $L$_16_blocks_ok_934 + +$L$_16_blocks_overflow_934: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb xmm0,xmm0,xmm29 +$L$_16_blocks_ok_934: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm0,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 xmm17{k1}{z},[r11*1+r9] + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc xmm0,xmm0,xmm31 + vaesenclast xmm0,xmm0,xmm30 + vpxorq xmm0,xmm0,xmm17 + vextracti32x4 xmm11,zmm0,0 + mov r10,QWORD[120+rbp] + vmovdqu8 XMMWORD[r11*1+r10]{k1},xmm0 + vmovdqu8 zmm17{k1}{z},zmm17 + vpshufb xmm17,xmm17,xmm29 + vextracti32x4 xmm7,zmm17,0 + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_935 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm17,xmm1,0x01 + vpclmulqdq xmm5,xmm17,xmm1,0x10 + vpclmulqdq xmm0,xmm17,xmm1,0x11 + vpclmulqdq xmm3,xmm17,xmm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_935 +$L$_small_initial_partial_block_935: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + + + vpsrldq zmm0,zmm26,8 + vpslldq zmm3,zmm26,8 + vpxorq zmm24,zmm24,zmm0 + vpxorq zmm25,zmm25,zmm3 + vextracti64x4 ymm0,zmm24,1 + vpxorq ymm24,ymm24,ymm0 + vextracti32x4 xmm0,ymm24,1 + vpxorq xmm24,xmm24,xmm0 + vextracti64x4 ymm3,zmm25,1 + vpxorq ymm25,ymm25,ymm3 + vextracti32x4 xmm3,ymm25,1 + vpxorq xmm25,xmm25,xmm3 + vmovdqa64 xmm0,XMMWORD[POLY2] + + + vpclmulqdq xmm3,xmm0,xmm25,0x01 + vpslldq xmm3,xmm3,8 + vpxorq xmm3,xmm25,xmm3 + + + vpclmulqdq xmm4,xmm0,xmm3,0x00 + vpsrldq xmm4,xmm4,4 + vpclmulqdq xmm14,xmm0,xmm3,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm4,xmm24,0x96 + + + + + + + + + + + + + vpxorq xmm14,xmm14,xmm7 + + jmp NEAR $L$_after_reduction_935 +$L$_small_initial_compute_done_935: +$L$_after_reduction_935: + jmp NEAR $L$_last_blocks_done_933 +$L$_last_num_blocks_is_2_933: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,254 + jae NEAR $L$_16_blocks_overflow_936 + vpaddd ymm0,ymm2,ymm28 + jmp NEAR $L$_16_blocks_ok_936 + +$L$_16_blocks_overflow_936: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb ymm0,ymm0,ymm29 +$L$_16_blocks_ok_936: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm0,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 ymm17{k1}{z},[r11*1+r9] + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc ymm0,ymm0,ymm31 + vaesenclast ymm0,ymm0,ymm30 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm11,zmm0,1 + mov r10,QWORD[120+rbp] + vmovdqu8 YMMWORD[r11*1+r10]{k1},ymm0 + vmovdqu8 zmm17{k1}{z},zmm17 + vpshufb ymm17,ymm17,ymm29 + vextracti32x4 xmm7,zmm17,1 + sub r13,16 * (2 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_937 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm17,ymm1,0x01 + vpclmulqdq ymm5,ymm17,ymm1,0x10 + vpclmulqdq ymm0,ymm17,ymm1,0x11 + vpclmulqdq ymm3,ymm17,ymm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_937 +$L$_small_initial_partial_block_937: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm17,xmm1,0x01 + vpclmulqdq xmm5,xmm17,xmm1,0x10 + vpclmulqdq xmm0,xmm17,xmm1,0x11 + vpclmulqdq xmm3,xmm17,xmm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_937: + + or r13,r13 + je NEAR $L$_after_reduction_937 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_937: + jmp NEAR $L$_last_blocks_done_933 +$L$_last_num_blocks_is_3_933: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,253 + jae NEAR $L$_16_blocks_overflow_938 + vpaddd zmm0,zmm2,zmm28 + jmp NEAR $L$_16_blocks_ok_938 + +$L$_16_blocks_overflow_938: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb zmm0,zmm0,zmm29 +$L$_16_blocks_ok_938: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm0,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17{k1}{z},[r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vpxorq zmm0,zmm0,zmm17 + vextracti32x4 xmm11,zmm0,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10]{k1},zmm0 + vmovdqu8 zmm17{k1}{z},zmm17 + vpshufb zmm17,zmm17,zmm29 + vextracti32x4 xmm7,zmm17,2 + sub r13,16 * (3 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_939 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_939 +$L$_small_initial_partial_block_939: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm17,ymm1,0x01 + vpclmulqdq ymm5,ymm17,ymm1,0x10 + vpclmulqdq ymm0,ymm17,ymm1,0x11 + vpclmulqdq ymm3,ymm17,ymm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_939: + + or r13,r13 + je NEAR $L$_after_reduction_939 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_939: + jmp NEAR $L$_last_blocks_done_933 +$L$_last_num_blocks_is_4_933: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,252 + jae NEAR $L$_16_blocks_overflow_940 + vpaddd zmm0,zmm2,zmm28 + jmp NEAR $L$_16_blocks_ok_940 + +$L$_16_blocks_overflow_940: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb zmm0,zmm0,zmm29 +$L$_16_blocks_ok_940: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm0,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17{k1}{z},[r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vpxorq zmm0,zmm0,zmm17 + vextracti32x4 xmm11,zmm0,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10]{k1},zmm0 + vmovdqu8 zmm17{k1}{z},zmm17 + vpshufb zmm17,zmm17,zmm29 + vextracti32x4 xmm7,zmm17,3 + sub r13,16 * (4 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_941 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_941 +$L$_small_initial_partial_block_941: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_941: + + or r13,r13 + je NEAR $L$_after_reduction_941 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_941: + jmp NEAR $L$_last_blocks_done_933 +$L$_last_num_blocks_is_5_933: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,251 + jae NEAR $L$_16_blocks_overflow_942 + vpaddd zmm0,zmm2,zmm28 + vpaddd xmm3,xmm0,xmm27 + jmp NEAR $L$_16_blocks_ok_942 + +$L$_16_blocks_overflow_942: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb xmm3,xmm3,xmm29 +$L$_16_blocks_ok_942: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm3,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 xmm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast xmm3,xmm3,xmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq xmm3,xmm3,xmm19 + vextracti32x4 xmm11,zmm3,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 XMMWORD[64+r11*1+r10]{k1},xmm3 + vmovdqu8 zmm19{k1}{z},zmm19 + vpshufb zmm17,zmm17,zmm29 + vpshufb xmm19,xmm19,xmm29 + vextracti32x4 xmm7,zmm19,0 + sub r13,16 * (5 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_943 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm19,xmm1,0x01 + vpclmulqdq xmm5,xmm19,xmm1,0x10 + vpclmulqdq xmm0,xmm19,xmm1,0x11 + vpclmulqdq xmm3,xmm19,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_943 +$L$_small_initial_partial_block_943: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_943: + + or r13,r13 + je NEAR $L$_after_reduction_943 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_943: + jmp NEAR $L$_last_blocks_done_933 +$L$_last_num_blocks_is_6_933: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,250 + jae NEAR $L$_16_blocks_overflow_944 + vpaddd zmm0,zmm2,zmm28 + vpaddd ymm3,ymm0,ymm27 + jmp NEAR $L$_16_blocks_ok_944 + +$L$_16_blocks_overflow_944: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb ymm3,ymm3,ymm29 +$L$_16_blocks_ok_944: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm3,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 ymm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast ymm3,ymm3,ymm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm11,zmm3,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 YMMWORD[64+r11*1+r10]{k1},ymm3 + vmovdqu8 zmm19{k1}{z},zmm19 + vpshufb zmm17,zmm17,zmm29 + vpshufb ymm19,ymm19,ymm29 + vextracti32x4 xmm7,zmm19,1 + sub r13,16 * (6 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_945 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm19,ymm1,0x01 + vpclmulqdq ymm5,ymm19,ymm1,0x10 + vpclmulqdq ymm0,ymm19,ymm1,0x11 + vpclmulqdq ymm3,ymm19,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_945 +$L$_small_initial_partial_block_945: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm19,xmm1,0x01 + vpclmulqdq xmm5,xmm19,xmm1,0x10 + vpclmulqdq xmm0,xmm19,xmm1,0x11 + vpclmulqdq xmm3,xmm19,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_945: + + or r13,r13 + je NEAR $L$_after_reduction_945 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_945: + jmp NEAR $L$_last_blocks_done_933 +$L$_last_num_blocks_is_7_933: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,249 + jae NEAR $L$_16_blocks_overflow_946 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + jmp NEAR $L$_16_blocks_ok_946 + +$L$_16_blocks_overflow_946: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 +$L$_16_blocks_ok_946: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm3,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti32x4 xmm11,zmm3,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10]{k1},zmm3 + vmovdqu8 zmm19{k1}{z},zmm19 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vextracti32x4 xmm7,zmm19,2 + sub r13,16 * (7 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_947 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm19,zmm1,0x01 + vpclmulqdq zmm5,zmm19,zmm1,0x10 + vpclmulqdq zmm0,zmm19,zmm1,0x11 + vpclmulqdq zmm3,zmm19,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_947 +$L$_small_initial_partial_block_947: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm19,ymm1,0x01 + vpclmulqdq ymm5,ymm19,ymm1,0x10 + vpclmulqdq ymm0,ymm19,ymm1,0x11 + vpclmulqdq ymm3,ymm19,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_947: + + or r13,r13 + je NEAR $L$_after_reduction_947 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_947: + jmp NEAR $L$_last_blocks_done_933 +$L$_last_num_blocks_is_8_933: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,248 + jae NEAR $L$_16_blocks_overflow_948 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + jmp NEAR $L$_16_blocks_ok_948 + +$L$_16_blocks_overflow_948: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 +$L$_16_blocks_ok_948: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm3,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti32x4 xmm11,zmm3,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10]{k1},zmm3 + vmovdqu8 zmm19{k1}{z},zmm19 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vextracti32x4 xmm7,zmm19,3 + sub r13,16 * (8 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_949 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_949 +$L$_small_initial_partial_block_949: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm19,zmm1,0x01 + vpclmulqdq zmm5,zmm19,zmm1,0x10 + vpclmulqdq zmm0,zmm19,zmm1,0x11 + vpclmulqdq zmm3,zmm19,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_949: + + or r13,r13 + je NEAR $L$_after_reduction_949 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_949: + jmp NEAR $L$_last_blocks_done_933 +$L$_last_num_blocks_is_9_933: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,247 + jae NEAR $L$_16_blocks_overflow_950 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd xmm4,xmm3,xmm27 + jmp NEAR $L$_16_blocks_ok_950 + +$L$_16_blocks_overflow_950: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb xmm4,xmm4,xmm29 +$L$_16_blocks_ok_950: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm4,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 xmm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast xmm4,xmm4,xmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq xmm4,xmm4,xmm20 + vextracti32x4 xmm11,zmm4,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 XMMWORD[128+r11*1+r10]{k1},xmm4 + vmovdqu8 zmm20{k1}{z},zmm20 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb xmm20,xmm20,xmm29 + vextracti32x4 xmm7,zmm20,0 + sub r13,16 * (9 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_951 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm20,xmm1,0x01 + vpclmulqdq xmm5,xmm20,xmm1,0x10 + vpclmulqdq xmm0,xmm20,xmm1,0x11 + vpclmulqdq xmm3,xmm20,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_951 +$L$_small_initial_partial_block_951: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_951: + + or r13,r13 + je NEAR $L$_after_reduction_951 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_951: + jmp NEAR $L$_last_blocks_done_933 +$L$_last_num_blocks_is_10_933: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,246 + jae NEAR $L$_16_blocks_overflow_952 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd ymm4,ymm3,ymm27 + jmp NEAR $L$_16_blocks_ok_952 + +$L$_16_blocks_overflow_952: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb ymm4,ymm4,ymm29 +$L$_16_blocks_ok_952: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm4,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 ymm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast ymm4,ymm4,ymm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq ymm4,ymm4,ymm20 + vextracti32x4 xmm11,zmm4,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 YMMWORD[128+r11*1+r10]{k1},ymm4 + vmovdqu8 zmm20{k1}{z},zmm20 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb ymm20,ymm20,ymm29 + vextracti32x4 xmm7,zmm20,1 + sub r13,16 * (10 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_953 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm20,ymm1,0x01 + vpclmulqdq ymm5,ymm20,ymm1,0x10 + vpclmulqdq ymm0,ymm20,ymm1,0x11 + vpclmulqdq ymm3,ymm20,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_953 +$L$_small_initial_partial_block_953: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm20,xmm1,0x01 + vpclmulqdq xmm5,xmm20,xmm1,0x10 + vpclmulqdq xmm0,xmm20,xmm1,0x11 + vpclmulqdq xmm3,xmm20,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_953: + + or r13,r13 + je NEAR $L$_after_reduction_953 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_953: + jmp NEAR $L$_last_blocks_done_933 +$L$_last_num_blocks_is_11_933: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,245 + jae NEAR $L$_16_blocks_overflow_954 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + jmp NEAR $L$_16_blocks_ok_954 + +$L$_16_blocks_overflow_954: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 +$L$_16_blocks_ok_954: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm4,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vextracti32x4 xmm11,zmm4,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10]{k1},zmm4 + vmovdqu8 zmm20{k1}{z},zmm20 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb zmm20,zmm20,zmm29 + vextracti32x4 xmm7,zmm20,2 + sub r13,16 * (11 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_955 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm20,zmm1,0x01 + vpclmulqdq zmm5,zmm20,zmm1,0x10 + vpclmulqdq zmm0,zmm20,zmm1,0x11 + vpclmulqdq zmm3,zmm20,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_955 +$L$_small_initial_partial_block_955: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm20,ymm1,0x01 + vpclmulqdq ymm5,ymm20,ymm1,0x10 + vpclmulqdq ymm0,ymm20,ymm1,0x11 + vpclmulqdq ymm3,ymm20,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_955: + + or r13,r13 + je NEAR $L$_after_reduction_955 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_955: + jmp NEAR $L$_last_blocks_done_933 +$L$_last_num_blocks_is_12_933: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,244 + jae NEAR $L$_16_blocks_overflow_956 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + jmp NEAR $L$_16_blocks_ok_956 + +$L$_16_blocks_overflow_956: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 +$L$_16_blocks_ok_956: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm4,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vextracti32x4 xmm11,zmm4,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10]{k1},zmm4 + vmovdqu8 zmm20{k1}{z},zmm20 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb zmm20,zmm20,zmm29 + vextracti32x4 xmm7,zmm20,3 + sub r13,16 * (12 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_957 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[160+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_957 +$L$_small_initial_partial_block_957: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm20,zmm1,0x01 + vpclmulqdq zmm5,zmm20,zmm1,0x10 + vpclmulqdq zmm0,zmm20,zmm1,0x11 + vpclmulqdq zmm3,zmm20,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_957: + + or r13,r13 + je NEAR $L$_after_reduction_957 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_957: + jmp NEAR $L$_last_blocks_done_933 +$L$_last_num_blocks_is_13_933: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,243 + jae NEAR $L$_16_blocks_overflow_958 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd xmm5,xmm4,xmm27 + jmp NEAR $L$_16_blocks_ok_958 + +$L$_16_blocks_overflow_958: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb xmm5,xmm5,xmm29 +$L$_16_blocks_ok_958: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm5,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 xmm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast xmm5,xmm5,xmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq xmm5,xmm5,xmm21 + vextracti32x4 xmm11,zmm5,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 XMMWORD[192+r11*1+r10]{k1},xmm5 + vmovdqu8 zmm21{k1}{z},zmm21 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb zmm20,zmm20,zmm29 + vpshufb xmm21,xmm21,xmm29 + vextracti32x4 xmm7,zmm21,0 + sub r13,16 * (13 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_959 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[144+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm21,xmm1,0x01 + vpclmulqdq xmm5,xmm21,xmm1,0x10 + vpclmulqdq xmm0,xmm21,xmm1,0x11 + vpclmulqdq xmm3,xmm21,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_959 +$L$_small_initial_partial_block_959: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[160+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_959: + + or r13,r13 + je NEAR $L$_after_reduction_959 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_959: + jmp NEAR $L$_last_blocks_done_933 +$L$_last_num_blocks_is_14_933: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,242 + jae NEAR $L$_16_blocks_overflow_960 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd ymm5,ymm4,ymm27 + jmp NEAR $L$_16_blocks_ok_960 + +$L$_16_blocks_overflow_960: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb ymm5,ymm5,ymm29 +$L$_16_blocks_ok_960: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm5,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 ymm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast ymm5,ymm5,ymm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq ymm5,ymm5,ymm21 + vextracti32x4 xmm11,zmm5,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 YMMWORD[192+r11*1+r10]{k1},ymm5 + vmovdqu8 zmm21{k1}{z},zmm21 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb zmm20,zmm20,zmm29 + vpshufb ymm21,ymm21,ymm29 + vextracti32x4 xmm7,zmm21,1 + sub r13,16 * (14 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_961 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[128+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm21,ymm1,0x01 + vpclmulqdq ymm5,ymm21,ymm1,0x10 + vpclmulqdq ymm0,ymm21,ymm1,0x11 + vpclmulqdq ymm3,ymm21,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_961 +$L$_small_initial_partial_block_961: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[144+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm21,xmm1,0x01 + vpclmulqdq xmm5,xmm21,xmm1,0x10 + vpclmulqdq xmm0,xmm21,xmm1,0x11 + vpclmulqdq xmm3,xmm21,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_961: + + or r13,r13 + je NEAR $L$_after_reduction_961 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_961: + jmp NEAR $L$_last_blocks_done_933 +$L$_last_num_blocks_is_15_933: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,241 + jae NEAR $L$_16_blocks_overflow_962 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_962 + +$L$_16_blocks_overflow_962: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_962: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm5,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + vextracti32x4 xmm11,zmm5,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[192+r11*1+r10]{k1},zmm5 + vmovdqu8 zmm21{k1}{z},zmm21 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb zmm20,zmm20,zmm29 + vpshufb zmm21,zmm21,zmm29 + vextracti32x4 xmm7,zmm21,2 + sub r13,16 * (15 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_963 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[112+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm21,zmm1,0x01 + vpclmulqdq zmm5,zmm21,zmm1,0x10 + vpclmulqdq zmm0,zmm21,zmm1,0x11 + vpclmulqdq zmm3,zmm21,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_963 +$L$_small_initial_partial_block_963: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[128+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm21,ymm1,0x01 + vpclmulqdq ymm5,ymm21,ymm1,0x10 + vpclmulqdq ymm0,ymm21,ymm1,0x11 + vpclmulqdq ymm3,ymm21,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_963: + + or r13,r13 + je NEAR $L$_after_reduction_963 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_963: + jmp NEAR $L$_last_blocks_done_933 +$L$_last_num_blocks_is_16_933: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,240 + jae NEAR $L$_16_blocks_overflow_964 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_964 + +$L$_16_blocks_overflow_964: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_964: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm5,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + vextracti32x4 xmm11,zmm5,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[192+r11*1+r10]{k1},zmm5 + vmovdqu8 zmm21{k1}{z},zmm21 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb zmm20,zmm20,zmm29 + vpshufb zmm21,zmm21,zmm29 + vextracti32x4 xmm7,zmm21,3 + sub r13,16 * (16 - 1) +$L$_small_initial_partial_block_965: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[112+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm21,zmm1,0x01 + vpclmulqdq zmm5,zmm21,zmm1,0x10 + vpclmulqdq zmm0,zmm21,zmm1,0x11 + vpclmulqdq zmm3,zmm21,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_965: + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_965: + jmp NEAR $L$_last_blocks_done_933 +$L$_last_num_blocks_is_0_933: + vmovdqa64 zmm13,ZMMWORD[768+rsp] + vpxorq zmm13,zmm13,zmm14 + vmovdqu64 zmm12,ZMMWORD[rbx*1+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[832+rsp] + vmovdqu64 zmm12,ZMMWORD[64+rbx*1+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + vpxorq zmm26,zmm4,zmm10 + vpxorq zmm24,zmm0,zmm6 + vpxorq zmm25,zmm3,zmm7 + vpternlogq zmm26,zmm5,zmm11,0x96 + vmovdqa64 zmm13,ZMMWORD[896+rsp] + vmovdqu64 zmm12,ZMMWORD[128+rbx*1+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[960+rsp] + vmovdqu64 zmm12,ZMMWORD[192+rbx*1+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + + vpternlogq zmm26,zmm4,zmm10,0x96 + vpternlogq zmm24,zmm0,zmm6,0x96 + vpternlogq zmm25,zmm3,zmm7,0x96 + vpternlogq zmm26,zmm5,zmm11,0x96 + + vpsrldq zmm0,zmm26,8 + vpslldq zmm3,zmm26,8 + vpxorq zmm24,zmm24,zmm0 + vpxorq zmm25,zmm25,zmm3 + vextracti64x4 ymm0,zmm24,1 + vpxorq ymm24,ymm24,ymm0 + vextracti32x4 xmm0,ymm24,1 + vpxorq xmm24,xmm24,xmm0 + vextracti64x4 ymm3,zmm25,1 + vpxorq ymm25,ymm25,ymm3 + vextracti32x4 xmm3,ymm25,1 + vpxorq xmm25,xmm25,xmm3 + vmovdqa64 xmm4,XMMWORD[POLY2] + + + vpclmulqdq xmm0,xmm4,xmm25,0x01 + vpslldq xmm0,xmm0,8 + vpxorq xmm0,xmm25,xmm0 + + + vpclmulqdq xmm3,xmm4,xmm0,0x00 + vpsrldq xmm3,xmm3,4 + vpclmulqdq xmm14,xmm4,xmm0,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm3,xmm24,0x96 + +$L$_last_blocks_done_933: + vpshufb xmm2,xmm2,xmm29 + jmp NEAR $L$_ghash_done_821 + +$L$_message_below_equal_16_blocks_821: + + + mov r12d,r13d + add r12d,15 + shr r12d,4 + cmp r12,8 + je NEAR $L$_small_initial_num_blocks_is_8_966 + jl NEAR $L$_small_initial_num_blocks_is_7_1_966 + + + cmp r12,12 + je NEAR $L$_small_initial_num_blocks_is_12_966 + jl NEAR $L$_small_initial_num_blocks_is_11_9_966 + + + cmp r12,16 + je NEAR $L$_small_initial_num_blocks_is_16_966 + cmp r12,15 + je NEAR $L$_small_initial_num_blocks_is_15_966 + cmp r12,14 + je NEAR $L$_small_initial_num_blocks_is_14_966 + jmp NEAR $L$_small_initial_num_blocks_is_13_966 + +$L$_small_initial_num_blocks_is_11_9_966: + + cmp r12,11 + je NEAR $L$_small_initial_num_blocks_is_11_966 + cmp r12,10 + je NEAR $L$_small_initial_num_blocks_is_10_966 + jmp NEAR $L$_small_initial_num_blocks_is_9_966 + +$L$_small_initial_num_blocks_is_7_1_966: + cmp r12,4 + je NEAR $L$_small_initial_num_blocks_is_4_966 + jl NEAR $L$_small_initial_num_blocks_is_3_1_966 + + cmp r12,7 + je NEAR $L$_small_initial_num_blocks_is_7_966 + cmp r12,6 + je NEAR $L$_small_initial_num_blocks_is_6_966 + jmp NEAR $L$_small_initial_num_blocks_is_5_966 + +$L$_small_initial_num_blocks_is_3_1_966: + + cmp r12,3 + je NEAR $L$_small_initial_num_blocks_is_3_966 + cmp r12,2 + je NEAR $L$_small_initial_num_blocks_is_2_966 + + + + + +$L$_small_initial_num_blocks_is_1_966: + vmovdqa64 xmm29,XMMWORD[SHUF_MASK] + vpaddd xmm0,xmm2,XMMWORD[ONE] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm0,0 + vpshufb xmm0,xmm0,xmm29 + vmovdqu8 xmm6{k1}{z},[r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq xmm0,xmm0,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc xmm0,xmm0,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc xmm0,xmm0,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc xmm0,xmm0,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc xmm0,xmm0,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc xmm0,xmm0,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc xmm0,xmm0,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc xmm0,xmm0,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc xmm0,xmm0,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc xmm0,xmm0,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenc xmm0,xmm0,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[176+rcx] + vaesenc xmm0,xmm0,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[192+rcx] + vaesenc xmm0,xmm0,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[208+rcx] + vaesenc xmm0,xmm0,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[224+rcx] + vaesenclast xmm0,xmm0,xmm15 + vpxorq xmm0,xmm0,xmm6 + vextracti32x4 xmm12,zmm0,0 + mov r10,QWORD[120+rbp] + vmovdqu8 XMMWORD[r11*1+r10]{k1},xmm0 + vmovdqu8 zmm0{k1}{z},zmm0 + vpshufb xmm6,xmm6,xmm29 + vextracti32x4 xmm13,zmm6,0 + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_967 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 xmm20,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm6,xmm20,0x01 + vpclmulqdq xmm5,xmm6,xmm20,0x10 + vpclmulqdq xmm0,xmm6,xmm20,0x11 + vpclmulqdq xmm3,xmm6,xmm20,0x00 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_967 +$L$_small_initial_partial_block_967: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + + + + + + + + + + + + vpxorq xmm14,xmm14,xmm13 + + jmp NEAR $L$_after_reduction_967 +$L$_small_initial_compute_done_967: +$L$_after_reduction_967: + jmp NEAR $L$_small_initial_blocks_encrypted_966 +$L$_small_initial_num_blocks_is_2_966: + vmovdqa64 ymm29,YMMWORD[SHUF_MASK] + vshufi64x2 ymm0,ymm2,ymm2,0 + vpaddd ymm0,ymm0,YMMWORD[ddq_add_1234] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm0,1 + vpshufb ymm0,ymm0,ymm29 + vmovdqu8 ymm6{k1}{z},[r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq ymm0,ymm0,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc ymm0,ymm0,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc ymm0,ymm0,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc ymm0,ymm0,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc ymm0,ymm0,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc ymm0,ymm0,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc ymm0,ymm0,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc ymm0,ymm0,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc ymm0,ymm0,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc ymm0,ymm0,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenc ymm0,ymm0,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[176+rcx] + vaesenc ymm0,ymm0,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[192+rcx] + vaesenc ymm0,ymm0,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[208+rcx] + vaesenc ymm0,ymm0,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[224+rcx] + vaesenclast ymm0,ymm0,ymm15 + vpxorq ymm0,ymm0,ymm6 + vextracti32x4 xmm12,zmm0,1 + mov r10,QWORD[120+rbp] + vmovdqu8 YMMWORD[r11*1+r10]{k1},ymm0 + vmovdqu8 zmm0{k1}{z},zmm0 + vpshufb ymm6,ymm6,ymm29 + vextracti32x4 xmm13,zmm6,1 + sub r13,16 * (2 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_968 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 ymm20,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm6,ymm20,0x01 + vpclmulqdq ymm5,ymm6,ymm20,0x10 + vpclmulqdq ymm0,ymm6,ymm20,0x11 + vpclmulqdq ymm3,ymm6,ymm20,0x00 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_968 +$L$_small_initial_partial_block_968: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 xmm20,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm6,xmm20,0x01 + vpclmulqdq xmm5,xmm6,xmm20,0x10 + vpclmulqdq xmm0,xmm6,xmm20,0x11 + vpclmulqdq xmm3,xmm6,xmm20,0x00 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_968: + + or r13,r13 + je NEAR $L$_after_reduction_968 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_968: + jmp NEAR $L$_small_initial_blocks_encrypted_966 +$L$_small_initial_num_blocks_is_3_966: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm0,2 + vpshufb zmm0,zmm0,zmm29 + vmovdqu8 zmm6{k1}{z},[r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[224+rcx] + vaesenclast zmm0,zmm0,zmm15 + vpxorq zmm0,zmm0,zmm6 + vextracti32x4 xmm12,zmm0,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10]{k1},zmm0 + vmovdqu8 zmm0{k1}{z},zmm0 + vpshufb zmm6,zmm6,zmm29 + vextracti32x4 xmm13,zmm6,2 + sub r13,16 * (3 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_969 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 ymm20,YMMWORD[304+rdx] + vinserti64x2 zmm20,zmm20,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_969 +$L$_small_initial_partial_block_969: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 ymm20,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm6,ymm20,0x01 + vpclmulqdq ymm5,ymm6,ymm20,0x10 + vpclmulqdq ymm0,ymm6,ymm20,0x11 + vpclmulqdq ymm3,ymm6,ymm20,0x00 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_969: + + or r13,r13 + je NEAR $L$_after_reduction_969 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_969: + jmp NEAR $L$_small_initial_blocks_encrypted_966 +$L$_small_initial_num_blocks_is_4_966: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm0,3 + vpshufb zmm0,zmm0,zmm29 + vmovdqu8 zmm6{k1}{z},[r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[224+rcx] + vaesenclast zmm0,zmm0,zmm15 + vpxorq zmm0,zmm0,zmm6 + vextracti32x4 xmm12,zmm0,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10]{k1},zmm0 + vmovdqu8 zmm0{k1}{z},zmm0 + vpshufb zmm6,zmm6,zmm29 + vextracti32x4 xmm13,zmm6,3 + sub r13,16 * (4 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_970 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[288+rdx] + vpclmulqdq zmm15,zmm6,zmm20,0x11 + vpclmulqdq zmm16,zmm6,zmm20,0x00 + vpclmulqdq zmm17,zmm6,zmm20,0x01 + vpclmulqdq zmm19,zmm6,zmm20,0x10 + + vpxorq zmm17,zmm17,zmm19 + vpsrldq zmm4,zmm17,8 + vpslldq zmm5,zmm17,8 + vpxorq zmm0,zmm15,zmm4 + vpxorq zmm3,zmm16,zmm5 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_970 +$L$_small_initial_partial_block_970: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 ymm20,YMMWORD[304+rdx] + vinserti64x2 zmm20,zmm20,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_970: + + or r13,r13 + je NEAR $L$_after_reduction_970 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_970: + jmp NEAR $L$_small_initial_blocks_encrypted_966 +$L$_small_initial_num_blocks_is_5_966: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm2,ZMMWORD[ddq_add_5678] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + sub r15,64 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm3,0 + vpshufb zmm0,zmm0,zmm29 + vpshufb xmm3,xmm3,xmm29 + vmovdqu8 zmm6,ZMMWORD[r11*1+r9] + vmovdqu8 xmm7{k1}{z},[64+r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vpxorq xmm3,xmm3,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc xmm3,xmm3,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc xmm3,xmm3,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc xmm3,xmm3,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc xmm3,xmm3,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc xmm3,xmm3,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc xmm3,xmm3,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc xmm3,xmm3,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc xmm3,xmm3,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc xmm3,xmm3,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc xmm3,xmm3,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc xmm3,xmm3,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc xmm3,xmm3,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc xmm3,xmm3,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[224+rcx] + vaesenclast zmm0,zmm0,zmm15 + vaesenclast xmm3,xmm3,xmm15 + vpxorq zmm0,zmm0,zmm6 + vpxorq xmm3,xmm3,xmm7 + vextracti32x4 xmm12,zmm3,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 XMMWORD[64+r11*1+r10]{k1},xmm3 + vmovdqu8 zmm3{k1}{z},zmm3 + vpshufb zmm6,zmm6,zmm29 + vpshufb xmm7,xmm7,xmm29 + vextracti32x4 xmm13,zmm7,0 + sub r13,16 * (5 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_971 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[272+rdx] + vpclmulqdq zmm15,zmm6,zmm20,0x11 + vpclmulqdq zmm16,zmm6,zmm20,0x00 + vpclmulqdq zmm17,zmm6,zmm20,0x01 + vpclmulqdq zmm19,zmm6,zmm20,0x10 + vmovdqu64 xmm20,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm7,xmm20,0x01 + vpclmulqdq xmm5,xmm7,xmm20,0x10 + vpclmulqdq xmm0,xmm7,xmm20,0x11 + vpclmulqdq xmm3,xmm7,xmm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_971 +$L$_small_initial_partial_block_971: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[288+rdx] + vpclmulqdq zmm15,zmm6,zmm20,0x11 + vpclmulqdq zmm16,zmm6,zmm20,0x00 + vpclmulqdq zmm17,zmm6,zmm20,0x01 + vpclmulqdq zmm19,zmm6,zmm20,0x10 + + vpxorq zmm17,zmm17,zmm19 + vpsrldq zmm4,zmm17,8 + vpslldq zmm5,zmm17,8 + vpxorq zmm0,zmm15,zmm4 + vpxorq zmm3,zmm16,zmm5 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_971: + + or r13,r13 + je NEAR $L$_after_reduction_971 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_971: + jmp NEAR $L$_small_initial_blocks_encrypted_966 +$L$_small_initial_num_blocks_is_6_966: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm2,ZMMWORD[ddq_add_5678] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + sub r15,64 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm3,1 + vpshufb zmm0,zmm0,zmm29 + vpshufb ymm3,ymm3,ymm29 + vmovdqu8 zmm6,ZMMWORD[r11*1+r9] + vmovdqu8 ymm7{k1}{z},[64+r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vpxorq ymm3,ymm3,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc ymm3,ymm3,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc ymm3,ymm3,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc ymm3,ymm3,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc ymm3,ymm3,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc ymm3,ymm3,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc ymm3,ymm3,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc ymm3,ymm3,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc ymm3,ymm3,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc ymm3,ymm3,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc ymm3,ymm3,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc ymm3,ymm3,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc ymm3,ymm3,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc ymm3,ymm3,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[224+rcx] + vaesenclast zmm0,zmm0,zmm15 + vaesenclast ymm3,ymm3,ymm15 + vpxorq zmm0,zmm0,zmm6 + vpxorq ymm3,ymm3,ymm7 + vextracti32x4 xmm12,zmm3,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 YMMWORD[64+r11*1+r10]{k1},ymm3 + vmovdqu8 zmm3{k1}{z},zmm3 + vpshufb zmm6,zmm6,zmm29 + vpshufb ymm7,ymm7,ymm29 + vextracti32x4 xmm13,zmm7,1 + sub r13,16 * (6 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_972 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[256+rdx] + vpclmulqdq zmm15,zmm6,zmm20,0x11 + vpclmulqdq zmm16,zmm6,zmm20,0x00 + vpclmulqdq zmm17,zmm6,zmm20,0x01 + vpclmulqdq zmm19,zmm6,zmm20,0x10 + vmovdqu64 ymm20,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm7,ymm20,0x01 + vpclmulqdq ymm5,ymm7,ymm20,0x10 + vpclmulqdq ymm0,ymm7,ymm20,0x11 + vpclmulqdq ymm3,ymm7,ymm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_972 +$L$_small_initial_partial_block_972: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[272+rdx] + vpclmulqdq zmm15,zmm6,zmm20,0x11 + vpclmulqdq zmm16,zmm6,zmm20,0x00 + vpclmulqdq zmm17,zmm6,zmm20,0x01 + vpclmulqdq zmm19,zmm6,zmm20,0x10 + vmovdqu64 xmm20,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm7,xmm20,0x01 + vpclmulqdq xmm5,xmm7,xmm20,0x10 + vpclmulqdq xmm0,xmm7,xmm20,0x11 + vpclmulqdq xmm3,xmm7,xmm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_972: + + or r13,r13 + je NEAR $L$_after_reduction_972 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_972: + jmp NEAR $L$_small_initial_blocks_encrypted_966 +$L$_small_initial_num_blocks_is_7_966: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm2,ZMMWORD[ddq_add_5678] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + sub r15,64 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm3,2 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vmovdqu8 zmm6,ZMMWORD[r11*1+r9] + vmovdqu8 zmm7{k1}{z},[64+r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[224+rcx] + vaesenclast zmm0,zmm0,zmm15 + vaesenclast zmm3,zmm3,zmm15 + vpxorq zmm0,zmm0,zmm6 + vpxorq zmm3,zmm3,zmm7 + vextracti32x4 xmm12,zmm3,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10]{k1},zmm3 + vmovdqu8 zmm3{k1}{z},zmm3 + vpshufb zmm6,zmm6,zmm29 + vpshufb zmm7,zmm7,zmm29 + vextracti32x4 xmm13,zmm7,2 + sub r13,16 * (7 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_973 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[240+rdx] + vpclmulqdq zmm15,zmm6,zmm20,0x11 + vpclmulqdq zmm16,zmm6,zmm20,0x00 + vpclmulqdq zmm17,zmm6,zmm20,0x01 + vpclmulqdq zmm19,zmm6,zmm20,0x10 + vmovdqu64 ymm20,YMMWORD[304+rdx] + vinserti64x2 zmm20,zmm20,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm7,zmm20,0x01 + vpclmulqdq zmm5,zmm7,zmm20,0x10 + vpclmulqdq zmm0,zmm7,zmm20,0x11 + vpclmulqdq zmm3,zmm7,zmm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_973 +$L$_small_initial_partial_block_973: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[256+rdx] + vpclmulqdq zmm15,zmm6,zmm20,0x11 + vpclmulqdq zmm16,zmm6,zmm20,0x00 + vpclmulqdq zmm17,zmm6,zmm20,0x01 + vpclmulqdq zmm19,zmm6,zmm20,0x10 + vmovdqu64 ymm20,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm7,ymm20,0x01 + vpclmulqdq ymm5,ymm7,ymm20,0x10 + vpclmulqdq ymm0,ymm7,ymm20,0x11 + vpclmulqdq ymm3,ymm7,ymm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_973: + + or r13,r13 + je NEAR $L$_after_reduction_973 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_973: + jmp NEAR $L$_small_initial_blocks_encrypted_966 +$L$_small_initial_num_blocks_is_8_966: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm2,ZMMWORD[ddq_add_5678] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + sub r15,64 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm3,3 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vmovdqu8 zmm6,ZMMWORD[r11*1+r9] + vmovdqu8 zmm7{k1}{z},[64+r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[224+rcx] + vaesenclast zmm0,zmm0,zmm15 + vaesenclast zmm3,zmm3,zmm15 + vpxorq zmm0,zmm0,zmm6 + vpxorq zmm3,zmm3,zmm7 + vextracti32x4 xmm12,zmm3,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10]{k1},zmm3 + vmovdqu8 zmm3{k1}{z},zmm3 + vpshufb zmm6,zmm6,zmm29 + vpshufb zmm7,zmm7,zmm29 + vextracti32x4 xmm13,zmm7,3 + sub r13,16 * (8 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_974 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[224+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[288+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vpxorq zmm15,zmm0,zmm15 + vpxorq zmm16,zmm3,zmm16 + vpxorq zmm17,zmm4,zmm17 + vpxorq zmm19,zmm5,zmm19 + + vpxorq zmm17,zmm17,zmm19 + vpsrldq zmm4,zmm17,8 + vpslldq zmm5,zmm17,8 + vpxorq zmm0,zmm15,zmm4 + vpxorq zmm3,zmm16,zmm5 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_974 +$L$_small_initial_partial_block_974: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[240+rdx] + vpclmulqdq zmm15,zmm6,zmm20,0x11 + vpclmulqdq zmm16,zmm6,zmm20,0x00 + vpclmulqdq zmm17,zmm6,zmm20,0x01 + vpclmulqdq zmm19,zmm6,zmm20,0x10 + vmovdqu64 ymm20,YMMWORD[304+rdx] + vinserti64x2 zmm20,zmm20,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm7,zmm20,0x01 + vpclmulqdq zmm5,zmm7,zmm20,0x10 + vpclmulqdq zmm0,zmm7,zmm20,0x11 + vpclmulqdq zmm3,zmm7,zmm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_974: + + or r13,r13 + je NEAR $L$_after_reduction_974 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_974: + jmp NEAR $L$_small_initial_blocks_encrypted_966 +$L$_small_initial_num_blocks_is_9_966: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm2,ZMMWORD[ddq_add_5678] + vpaddd zmm4,zmm0,ZMMWORD[ddq_add_8888] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + sub r15,128 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm4,0 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb xmm4,xmm4,xmm29 + vmovdqu8 zmm6,ZMMWORD[r11*1+r9] + vmovdqu8 zmm7,ZMMWORD[64+r11*1+r9] + vmovdqu8 xmm10{k1}{z},[128+r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm15 + vpxorq xmm4,xmm4,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc xmm4,xmm4,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc xmm4,xmm4,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc xmm4,xmm4,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc xmm4,xmm4,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc xmm4,xmm4,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc xmm4,xmm4,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc xmm4,xmm4,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc xmm4,xmm4,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc xmm4,xmm4,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc xmm4,xmm4,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc xmm4,xmm4,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc xmm4,xmm4,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc xmm4,xmm4,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[224+rcx] + vaesenclast zmm0,zmm0,zmm15 + vaesenclast zmm3,zmm3,zmm15 + vaesenclast xmm4,xmm4,xmm15 + vpxorq zmm0,zmm0,zmm6 + vpxorq zmm3,zmm3,zmm7 + vpxorq xmm4,xmm4,xmm10 + vextracti32x4 xmm12,zmm4,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 XMMWORD[128+r11*1+r10]{k1},xmm4 + vmovdqu8 zmm4{k1}{z},zmm4 + vpshufb zmm6,zmm6,zmm29 + vpshufb zmm7,zmm7,zmm29 + vpshufb xmm10,xmm10,xmm29 + vextracti32x4 xmm13,zmm10,0 + sub r13,16 * (9 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_975 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[208+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[272+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vpxorq zmm15,zmm0,zmm15 + vpxorq zmm16,zmm3,zmm16 + vpxorq zmm17,zmm4,zmm17 + vpxorq zmm19,zmm5,zmm19 + vmovdqu64 xmm20,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm10,xmm20,0x01 + vpclmulqdq xmm5,xmm10,xmm20,0x10 + vpclmulqdq xmm0,xmm10,xmm20,0x11 + vpclmulqdq xmm3,xmm10,xmm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_975 +$L$_small_initial_partial_block_975: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[224+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[288+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vpxorq zmm15,zmm0,zmm15 + vpxorq zmm16,zmm3,zmm16 + vpxorq zmm17,zmm4,zmm17 + vpxorq zmm19,zmm5,zmm19 + + vpxorq zmm17,zmm17,zmm19 + vpsrldq zmm4,zmm17,8 + vpslldq zmm5,zmm17,8 + vpxorq zmm0,zmm15,zmm4 + vpxorq zmm3,zmm16,zmm5 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_975: + + or r13,r13 + je NEAR $L$_after_reduction_975 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_975: + jmp NEAR $L$_small_initial_blocks_encrypted_966 +$L$_small_initial_num_blocks_is_10_966: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm2,ZMMWORD[ddq_add_5678] + vpaddd zmm4,zmm0,ZMMWORD[ddq_add_8888] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + sub r15,128 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm4,1 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb ymm4,ymm4,ymm29 + vmovdqu8 zmm6,ZMMWORD[r11*1+r9] + vmovdqu8 zmm7,ZMMWORD[64+r11*1+r9] + vmovdqu8 ymm10{k1}{z},[128+r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm15 + vpxorq ymm4,ymm4,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc ymm4,ymm4,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc ymm4,ymm4,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc ymm4,ymm4,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc ymm4,ymm4,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc ymm4,ymm4,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc ymm4,ymm4,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc ymm4,ymm4,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc ymm4,ymm4,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc ymm4,ymm4,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc ymm4,ymm4,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc ymm4,ymm4,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc ymm4,ymm4,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc ymm4,ymm4,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[224+rcx] + vaesenclast zmm0,zmm0,zmm15 + vaesenclast zmm3,zmm3,zmm15 + vaesenclast ymm4,ymm4,ymm15 + vpxorq zmm0,zmm0,zmm6 + vpxorq zmm3,zmm3,zmm7 + vpxorq ymm4,ymm4,ymm10 + vextracti32x4 xmm12,zmm4,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 YMMWORD[128+r11*1+r10]{k1},ymm4 + vmovdqu8 zmm4{k1}{z},zmm4 + vpshufb zmm6,zmm6,zmm29 + vpshufb zmm7,zmm7,zmm29 + vpshufb ymm10,ymm10,ymm29 + vextracti32x4 xmm13,zmm10,1 + sub r13,16 * (10 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_976 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[192+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[256+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vpxorq zmm15,zmm0,zmm15 + vpxorq zmm16,zmm3,zmm16 + vpxorq zmm17,zmm4,zmm17 + vpxorq zmm19,zmm5,zmm19 + vmovdqu64 ymm20,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm10,ymm20,0x01 + vpclmulqdq ymm5,ymm10,ymm20,0x10 + vpclmulqdq ymm0,ymm10,ymm20,0x11 + vpclmulqdq ymm3,ymm10,ymm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_976 +$L$_small_initial_partial_block_976: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[208+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[272+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vpxorq zmm15,zmm0,zmm15 + vpxorq zmm16,zmm3,zmm16 + vpxorq zmm17,zmm4,zmm17 + vpxorq zmm19,zmm5,zmm19 + vmovdqu64 xmm20,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm10,xmm20,0x01 + vpclmulqdq xmm5,xmm10,xmm20,0x10 + vpclmulqdq xmm0,xmm10,xmm20,0x11 + vpclmulqdq xmm3,xmm10,xmm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_976: + + or r13,r13 + je NEAR $L$_after_reduction_976 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_976: + jmp NEAR $L$_small_initial_blocks_encrypted_966 +$L$_small_initial_num_blocks_is_11_966: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm2,ZMMWORD[ddq_add_5678] + vpaddd zmm4,zmm0,ZMMWORD[ddq_add_8888] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + sub r15,128 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm4,2 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vmovdqu8 zmm6,ZMMWORD[r11*1+r9] + vmovdqu8 zmm7,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm10{k1}{z},[128+r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm15 + vpxorq zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[224+rcx] + vaesenclast zmm0,zmm0,zmm15 + vaesenclast zmm3,zmm3,zmm15 + vaesenclast zmm4,zmm4,zmm15 + vpxorq zmm0,zmm0,zmm6 + vpxorq zmm3,zmm3,zmm7 + vpxorq zmm4,zmm4,zmm10 + vextracti32x4 xmm12,zmm4,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10]{k1},zmm4 + vmovdqu8 zmm4{k1}{z},zmm4 + vpshufb zmm6,zmm6,zmm29 + vpshufb zmm7,zmm7,zmm29 + vpshufb zmm10,zmm10,zmm29 + vextracti32x4 xmm13,zmm10,2 + sub r13,16 * (11 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_977 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[176+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[240+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vpxorq zmm15,zmm0,zmm15 + vpxorq zmm16,zmm3,zmm16 + vpxorq zmm17,zmm4,zmm17 + vpxorq zmm19,zmm5,zmm19 + vmovdqu64 ymm20,YMMWORD[304+rdx] + vinserti64x2 zmm20,zmm20,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm10,zmm20,0x01 + vpclmulqdq zmm5,zmm10,zmm20,0x10 + vpclmulqdq zmm0,zmm10,zmm20,0x11 + vpclmulqdq zmm3,zmm10,zmm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_977 +$L$_small_initial_partial_block_977: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[192+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[256+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vpxorq zmm15,zmm0,zmm15 + vpxorq zmm16,zmm3,zmm16 + vpxorq zmm17,zmm4,zmm17 + vpxorq zmm19,zmm5,zmm19 + vmovdqu64 ymm20,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm10,ymm20,0x01 + vpclmulqdq ymm5,ymm10,ymm20,0x10 + vpclmulqdq ymm0,ymm10,ymm20,0x11 + vpclmulqdq ymm3,ymm10,ymm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_977: + + or r13,r13 + je NEAR $L$_after_reduction_977 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_977: + jmp NEAR $L$_small_initial_blocks_encrypted_966 +$L$_small_initial_num_blocks_is_12_966: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm2,ZMMWORD[ddq_add_5678] + vpaddd zmm4,zmm0,ZMMWORD[ddq_add_8888] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + sub r15,128 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm4,3 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vmovdqu8 zmm6,ZMMWORD[r11*1+r9] + vmovdqu8 zmm7,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm10{k1}{z},[128+r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm15 + vpxorq zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[224+rcx] + vaesenclast zmm0,zmm0,zmm15 + vaesenclast zmm3,zmm3,zmm15 + vaesenclast zmm4,zmm4,zmm15 + vpxorq zmm0,zmm0,zmm6 + vpxorq zmm3,zmm3,zmm7 + vpxorq zmm4,zmm4,zmm10 + vextracti32x4 xmm12,zmm4,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10]{k1},zmm4 + vmovdqu8 zmm4{k1}{z},zmm4 + vpshufb zmm6,zmm6,zmm29 + vpshufb zmm7,zmm7,zmm29 + vpshufb zmm10,zmm10,zmm29 + vextracti32x4 xmm13,zmm10,3 + sub r13,16 * (12 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_978 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[160+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[224+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[288+rdx] + vpclmulqdq zmm6,zmm10,zmm20,0x11 + vpclmulqdq zmm7,zmm10,zmm20,0x00 + vpternlogq zmm15,zmm6,zmm0,0x96 + vpternlogq zmm16,zmm7,zmm3,0x96 + vpclmulqdq zmm6,zmm10,zmm20,0x01 + vpclmulqdq zmm7,zmm10,zmm20,0x10 + vpternlogq zmm17,zmm6,zmm4,0x96 + vpternlogq zmm19,zmm7,zmm5,0x96 + + vpxorq zmm17,zmm17,zmm19 + vpsrldq zmm4,zmm17,8 + vpslldq zmm5,zmm17,8 + vpxorq zmm0,zmm15,zmm4 + vpxorq zmm3,zmm16,zmm5 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_978 +$L$_small_initial_partial_block_978: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[176+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[240+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vpxorq zmm15,zmm0,zmm15 + vpxorq zmm16,zmm3,zmm16 + vpxorq zmm17,zmm4,zmm17 + vpxorq zmm19,zmm5,zmm19 + vmovdqu64 ymm20,YMMWORD[304+rdx] + vinserti64x2 zmm20,zmm20,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm10,zmm20,0x01 + vpclmulqdq zmm5,zmm10,zmm20,0x10 + vpclmulqdq zmm0,zmm10,zmm20,0x11 + vpclmulqdq zmm3,zmm10,zmm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_978: + + or r13,r13 + je NEAR $L$_after_reduction_978 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_978: + jmp NEAR $L$_small_initial_blocks_encrypted_966 +$L$_small_initial_num_blocks_is_13_966: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm2,ZMMWORD[ddq_add_5678] + vpaddd zmm4,zmm0,ZMMWORD[ddq_add_8888] + vpaddd zmm5,zmm3,ZMMWORD[ddq_add_8888] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + sub r15,192 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm5,0 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb xmm5,xmm5,xmm29 + vmovdqu8 zmm6,ZMMWORD[r11*1+r9] + vmovdqu8 zmm7,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm10,ZMMWORD[128+r11*1+r9] + vmovdqu8 xmm11{k1}{z},[192+r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm15 + vpxorq zmm4,zmm4,zmm15 + vpxorq xmm5,xmm5,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc xmm5,xmm5,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc xmm5,xmm5,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc xmm5,xmm5,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc xmm5,xmm5,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc xmm5,xmm5,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc xmm5,xmm5,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc xmm5,xmm5,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc xmm5,xmm5,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc xmm5,xmm5,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc xmm5,xmm5,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc xmm5,xmm5,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc xmm5,xmm5,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc xmm5,xmm5,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[224+rcx] + vaesenclast zmm0,zmm0,zmm15 + vaesenclast zmm3,zmm3,zmm15 + vaesenclast zmm4,zmm4,zmm15 + vaesenclast xmm5,xmm5,xmm15 + vpxorq zmm0,zmm0,zmm6 + vpxorq zmm3,zmm3,zmm7 + vpxorq zmm4,zmm4,zmm10 + vpxorq xmm5,xmm5,xmm11 + vextracti32x4 xmm12,zmm5,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 XMMWORD[192+r11*1+r10]{k1},xmm5 + vmovdqu8 zmm5{k1}{z},zmm5 + vpshufb zmm6,zmm6,zmm29 + vpshufb zmm7,zmm7,zmm29 + vpshufb zmm10,zmm10,zmm29 + vpshufb xmm11,xmm11,xmm29 + vextracti32x4 xmm13,zmm11,0 + sub r13,16 * (13 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_979 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[144+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[208+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[272+rdx] + vpclmulqdq zmm6,zmm10,zmm20,0x11 + vpclmulqdq zmm7,zmm10,zmm20,0x00 + vpternlogq zmm15,zmm6,zmm0,0x96 + vpternlogq zmm16,zmm7,zmm3,0x96 + vpclmulqdq zmm6,zmm10,zmm20,0x01 + vpclmulqdq zmm7,zmm10,zmm20,0x10 + vpternlogq zmm17,zmm6,zmm4,0x96 + vpternlogq zmm19,zmm7,zmm5,0x96 + vmovdqu64 xmm20,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm11,xmm20,0x01 + vpclmulqdq xmm5,xmm11,xmm20,0x10 + vpclmulqdq xmm0,xmm11,xmm20,0x11 + vpclmulqdq xmm3,xmm11,xmm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_979 +$L$_small_initial_partial_block_979: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[160+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[224+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[288+rdx] + vpclmulqdq zmm6,zmm10,zmm20,0x11 + vpclmulqdq zmm7,zmm10,zmm20,0x00 + vpternlogq zmm15,zmm6,zmm0,0x96 + vpternlogq zmm16,zmm7,zmm3,0x96 + vpclmulqdq zmm6,zmm10,zmm20,0x01 + vpclmulqdq zmm7,zmm10,zmm20,0x10 + vpternlogq zmm17,zmm6,zmm4,0x96 + vpternlogq zmm19,zmm7,zmm5,0x96 + + vpxorq zmm17,zmm17,zmm19 + vpsrldq zmm4,zmm17,8 + vpslldq zmm5,zmm17,8 + vpxorq zmm0,zmm15,zmm4 + vpxorq zmm3,zmm16,zmm5 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_979: + + or r13,r13 + je NEAR $L$_after_reduction_979 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_979: + jmp NEAR $L$_small_initial_blocks_encrypted_966 +$L$_small_initial_num_blocks_is_14_966: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm2,ZMMWORD[ddq_add_5678] + vpaddd zmm4,zmm0,ZMMWORD[ddq_add_8888] + vpaddd zmm5,zmm3,ZMMWORD[ddq_add_8888] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + sub r15,192 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm5,1 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb ymm5,ymm5,ymm29 + vmovdqu8 zmm6,ZMMWORD[r11*1+r9] + vmovdqu8 zmm7,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm10,ZMMWORD[128+r11*1+r9] + vmovdqu8 ymm11{k1}{z},[192+r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm15 + vpxorq zmm4,zmm4,zmm15 + vpxorq ymm5,ymm5,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc ymm5,ymm5,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc ymm5,ymm5,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc ymm5,ymm5,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc ymm5,ymm5,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc ymm5,ymm5,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc ymm5,ymm5,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc ymm5,ymm5,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc ymm5,ymm5,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc ymm5,ymm5,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc ymm5,ymm5,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc ymm5,ymm5,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc ymm5,ymm5,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc ymm5,ymm5,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[224+rcx] + vaesenclast zmm0,zmm0,zmm15 + vaesenclast zmm3,zmm3,zmm15 + vaesenclast zmm4,zmm4,zmm15 + vaesenclast ymm5,ymm5,ymm15 + vpxorq zmm0,zmm0,zmm6 + vpxorq zmm3,zmm3,zmm7 + vpxorq zmm4,zmm4,zmm10 + vpxorq ymm5,ymm5,ymm11 + vextracti32x4 xmm12,zmm5,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 YMMWORD[192+r11*1+r10]{k1},ymm5 + vmovdqu8 zmm5{k1}{z},zmm5 + vpshufb zmm6,zmm6,zmm29 + vpshufb zmm7,zmm7,zmm29 + vpshufb zmm10,zmm10,zmm29 + vpshufb ymm11,ymm11,ymm29 + vextracti32x4 xmm13,zmm11,1 + sub r13,16 * (14 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_980 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[128+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[192+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[256+rdx] + vpclmulqdq zmm6,zmm10,zmm20,0x11 + vpclmulqdq zmm7,zmm10,zmm20,0x00 + vpternlogq zmm15,zmm6,zmm0,0x96 + vpternlogq zmm16,zmm7,zmm3,0x96 + vpclmulqdq zmm6,zmm10,zmm20,0x01 + vpclmulqdq zmm7,zmm10,zmm20,0x10 + vpternlogq zmm17,zmm6,zmm4,0x96 + vpternlogq zmm19,zmm7,zmm5,0x96 + vmovdqu64 ymm20,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm11,ymm20,0x01 + vpclmulqdq ymm5,ymm11,ymm20,0x10 + vpclmulqdq ymm0,ymm11,ymm20,0x11 + vpclmulqdq ymm3,ymm11,ymm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_980 +$L$_small_initial_partial_block_980: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[144+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[208+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[272+rdx] + vpclmulqdq zmm6,zmm10,zmm20,0x11 + vpclmulqdq zmm7,zmm10,zmm20,0x00 + vpternlogq zmm15,zmm6,zmm0,0x96 + vpternlogq zmm16,zmm7,zmm3,0x96 + vpclmulqdq zmm6,zmm10,zmm20,0x01 + vpclmulqdq zmm7,zmm10,zmm20,0x10 + vpternlogq zmm17,zmm6,zmm4,0x96 + vpternlogq zmm19,zmm7,zmm5,0x96 + vmovdqu64 xmm20,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm11,xmm20,0x01 + vpclmulqdq xmm5,xmm11,xmm20,0x10 + vpclmulqdq xmm0,xmm11,xmm20,0x11 + vpclmulqdq xmm3,xmm11,xmm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_980: + + or r13,r13 + je NEAR $L$_after_reduction_980 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_980: + jmp NEAR $L$_small_initial_blocks_encrypted_966 +$L$_small_initial_num_blocks_is_15_966: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm2,ZMMWORD[ddq_add_5678] + vpaddd zmm4,zmm0,ZMMWORD[ddq_add_8888] + vpaddd zmm5,zmm3,ZMMWORD[ddq_add_8888] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + sub r15,192 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm5,2 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 + vmovdqu8 zmm6,ZMMWORD[r11*1+r9] + vmovdqu8 zmm7,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm10,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm11{k1}{z},[192+r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm15 + vpxorq zmm4,zmm4,zmm15 + vpxorq zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[224+rcx] + vaesenclast zmm0,zmm0,zmm15 + vaesenclast zmm3,zmm3,zmm15 + vaesenclast zmm4,zmm4,zmm15 + vaesenclast zmm5,zmm5,zmm15 + vpxorq zmm0,zmm0,zmm6 + vpxorq zmm3,zmm3,zmm7 + vpxorq zmm4,zmm4,zmm10 + vpxorq zmm5,zmm5,zmm11 + vextracti32x4 xmm12,zmm5,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[192+r11*1+r10]{k1},zmm5 + vmovdqu8 zmm5{k1}{z},zmm5 + vpshufb zmm6,zmm6,zmm29 + vpshufb zmm7,zmm7,zmm29 + vpshufb zmm10,zmm10,zmm29 + vpshufb zmm11,zmm11,zmm29 + vextracti32x4 xmm13,zmm11,2 + sub r13,16 * (15 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_981 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[112+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[176+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[240+rdx] + vpclmulqdq zmm6,zmm10,zmm20,0x11 + vpclmulqdq zmm7,zmm10,zmm20,0x00 + vpternlogq zmm15,zmm6,zmm0,0x96 + vpternlogq zmm16,zmm7,zmm3,0x96 + vpclmulqdq zmm6,zmm10,zmm20,0x01 + vpclmulqdq zmm7,zmm10,zmm20,0x10 + vpternlogq zmm17,zmm6,zmm4,0x96 + vpternlogq zmm19,zmm7,zmm5,0x96 + vmovdqu64 ymm20,YMMWORD[304+rdx] + vinserti64x2 zmm20,zmm20,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm11,zmm20,0x01 + vpclmulqdq zmm5,zmm11,zmm20,0x10 + vpclmulqdq zmm0,zmm11,zmm20,0x11 + vpclmulqdq zmm3,zmm11,zmm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_981 +$L$_small_initial_partial_block_981: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[128+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[192+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[256+rdx] + vpclmulqdq zmm6,zmm10,zmm20,0x11 + vpclmulqdq zmm7,zmm10,zmm20,0x00 + vpternlogq zmm15,zmm6,zmm0,0x96 + vpternlogq zmm16,zmm7,zmm3,0x96 + vpclmulqdq zmm6,zmm10,zmm20,0x01 + vpclmulqdq zmm7,zmm10,zmm20,0x10 + vpternlogq zmm17,zmm6,zmm4,0x96 + vpternlogq zmm19,zmm7,zmm5,0x96 + vmovdqu64 ymm20,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm11,ymm20,0x01 + vpclmulqdq ymm5,ymm11,ymm20,0x10 + vpclmulqdq ymm0,ymm11,ymm20,0x11 + vpclmulqdq ymm3,ymm11,ymm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_981: + + or r13,r13 + je NEAR $L$_after_reduction_981 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_981: + jmp NEAR $L$_small_initial_blocks_encrypted_966 +$L$_small_initial_num_blocks_is_16_966: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm2,ZMMWORD[ddq_add_5678] + vpaddd zmm4,zmm0,ZMMWORD[ddq_add_8888] + vpaddd zmm5,zmm3,ZMMWORD[ddq_add_8888] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + sub r15,192 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm5,3 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 + vmovdqu8 zmm6,ZMMWORD[r11*1+r9] + vmovdqu8 zmm7,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm10,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm11{k1}{z},[192+r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm15 + vpxorq zmm4,zmm4,zmm15 + vpxorq zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[224+rcx] + vaesenclast zmm0,zmm0,zmm15 + vaesenclast zmm3,zmm3,zmm15 + vaesenclast zmm4,zmm4,zmm15 + vaesenclast zmm5,zmm5,zmm15 + vpxorq zmm0,zmm0,zmm6 + vpxorq zmm3,zmm3,zmm7 + vpxorq zmm4,zmm4,zmm10 + vpxorq zmm5,zmm5,zmm11 + vextracti32x4 xmm12,zmm5,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[192+r11*1+r10]{k1},zmm5 + vmovdqu8 zmm5{k1}{z},zmm5 + vpshufb zmm6,zmm6,zmm29 + vpshufb zmm7,zmm7,zmm29 + vpshufb zmm10,zmm10,zmm29 + vpshufb zmm11,zmm11,zmm29 + vextracti32x4 xmm13,zmm11,3 + sub r13,16 * (16 - 1) +$L$_small_initial_partial_block_982: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[112+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[176+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[240+rdx] + vpclmulqdq zmm6,zmm10,zmm20,0x11 + vpclmulqdq zmm7,zmm10,zmm20,0x00 + vpternlogq zmm15,zmm6,zmm0,0x96 + vpternlogq zmm16,zmm7,zmm3,0x96 + vpclmulqdq zmm6,zmm10,zmm20,0x01 + vpclmulqdq zmm7,zmm10,zmm20,0x10 + vpternlogq zmm17,zmm6,zmm4,0x96 + vpternlogq zmm19,zmm7,zmm5,0x96 + vmovdqu64 ymm20,YMMWORD[304+rdx] + vinserti64x2 zmm20,zmm20,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm11,zmm20,0x01 + vpclmulqdq zmm5,zmm11,zmm20,0x10 + vpclmulqdq zmm0,zmm11,zmm20,0x11 + vpclmulqdq zmm3,zmm11,zmm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_982: + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_982: +$L$_small_initial_blocks_encrypted_966: +$L$_ghash_done_821: + vmovdqu64 XMMWORD[rdx],xmm2 + vmovdqu64 XMMWORD[64+rdx],xmm14 +$L$_enc_dec_done_821: + jmp NEAR $L$exit_gcm_decrypt +$L$exit_gcm_decrypt: + cmp QWORD[112+rbp],256 + jbe NEAR $L$skip_hkeys_cleanup_983 + vpxor xmm0,xmm0,xmm0 + vmovdqa64 ZMMWORD[rsp],zmm0 + vmovdqa64 ZMMWORD[64+rsp],zmm0 + vmovdqa64 ZMMWORD[128+rsp],zmm0 + vmovdqa64 ZMMWORD[192+rsp],zmm0 + vmovdqa64 ZMMWORD[256+rsp],zmm0 + vmovdqa64 ZMMWORD[320+rsp],zmm0 + vmovdqa64 ZMMWORD[384+rsp],zmm0 + vmovdqa64 ZMMWORD[448+rsp],zmm0 + vmovdqa64 ZMMWORD[512+rsp],zmm0 + vmovdqa64 ZMMWORD[576+rsp],zmm0 + vmovdqa64 ZMMWORD[640+rsp],zmm0 + vmovdqa64 ZMMWORD[704+rsp],zmm0 +$L$skip_hkeys_cleanup_983: + vzeroupper + vmovdqu xmm15,XMMWORD[((-16))+rbp] + vmovdqu xmm14,XMMWORD[((-32))+rbp] + vmovdqu xmm13,XMMWORD[((-48))+rbp] + vmovdqu xmm12,XMMWORD[((-64))+rbp] + vmovdqu xmm11,XMMWORD[((-80))+rbp] + vmovdqu xmm10,XMMWORD[((-96))+rbp] + vmovdqu xmm9,XMMWORD[((-112))+rbp] + vmovdqu xmm8,XMMWORD[((-128))+rbp] + vmovdqu xmm7,XMMWORD[((-144))+rbp] + vmovdqu xmm6,XMMWORD[((-160))+rbp] + lea rsp,[8+rbp] + pop rsi + + pop rdi + + pop r15 + + pop r14 + + pop r13 + + pop r12 + + pop rbp + + pop rbx + + DB 0F3h,0C3h ;repret +$L$decrypt_seh_end: + + +global ossl_aes_gcm_finalize_avx512 + +ALIGN 32 +ossl_aes_gcm_finalize_avx512: + +DB 243,15,30,250 + vmovdqu xmm2,XMMWORD[336+rcx] + vmovdqu xmm3,XMMWORD[32+rcx] + vmovdqu xmm4,XMMWORD[64+rcx] + + + cmp rdx,0 + je NEAR $L$_partial_done_984 + + vpclmulqdq xmm0,xmm4,xmm2,0x11 + vpclmulqdq xmm16,xmm4,xmm2,0x00 + vpclmulqdq xmm17,xmm4,xmm2,0x01 + vpclmulqdq xmm4,xmm4,xmm2,0x10 + vpxorq xmm4,xmm4,xmm17 + + vpsrldq xmm17,xmm4,8 + vpslldq xmm4,xmm4,8 + vpxorq xmm0,xmm0,xmm17 + vpxorq xmm4,xmm4,xmm16 + + + + vmovdqu64 xmm17,XMMWORD[POLY2] + + vpclmulqdq xmm16,xmm17,xmm4,0x01 + vpslldq xmm16,xmm16,8 + vpxorq xmm4,xmm4,xmm16 + + + + vpclmulqdq xmm16,xmm17,xmm4,0x00 + vpsrldq xmm16,xmm16,4 + vpclmulqdq xmm4,xmm17,xmm4,0x10 + vpslldq xmm4,xmm4,4 + + vpternlogq xmm4,xmm0,xmm16,0x96 + +$L$_partial_done_984: + vmovq xmm5,QWORD[56+rcx] + vpinsrq xmm5,xmm5,QWORD[48+rcx],1 + vpsllq xmm5,xmm5,3 + + vpxor xmm4,xmm4,xmm5 + + vpclmulqdq xmm0,xmm4,xmm2,0x11 + vpclmulqdq xmm16,xmm4,xmm2,0x00 + vpclmulqdq xmm17,xmm4,xmm2,0x01 + vpclmulqdq xmm4,xmm4,xmm2,0x10 + vpxorq xmm4,xmm4,xmm17 + + vpsrldq xmm17,xmm4,8 + vpslldq xmm4,xmm4,8 + vpxorq xmm0,xmm0,xmm17 + vpxorq xmm4,xmm4,xmm16 + + + + vmovdqu64 xmm17,XMMWORD[POLY2] + + vpclmulqdq xmm16,xmm17,xmm4,0x01 + vpslldq xmm16,xmm16,8 + vpxorq xmm4,xmm4,xmm16 + + + + vpclmulqdq xmm16,xmm17,xmm4,0x00 + vpsrldq xmm16,xmm16,4 + vpclmulqdq xmm4,xmm17,xmm4,0x10 + vpslldq xmm4,xmm4,4 + + vpternlogq xmm4,xmm0,xmm16,0x96 + + vpshufb xmm4,xmm4,XMMWORD[SHUF_MASK] + vpxor xmm3,xmm3,xmm4 + +$L$_return_T_984: + vmovdqu XMMWORD[64+rcx],xmm3 +$L$abort_finalize: + DB 0F3h,0C3h ;repret + + +global ossl_gcm_gmult_avx512 + + +ALIGN 32 +ossl_gcm_gmult_avx512: + +DB 243,15,30,250 + vmovdqu64 xmm1,XMMWORD[rcx] + vmovdqu64 xmm2,XMMWORD[336+rdx] + + vpclmulqdq xmm3,xmm1,xmm2,0x11 + vpclmulqdq xmm4,xmm1,xmm2,0x00 + vpclmulqdq xmm5,xmm1,xmm2,0x01 + vpclmulqdq xmm1,xmm1,xmm2,0x10 + vpxorq xmm1,xmm1,xmm5 + + vpsrldq xmm5,xmm1,8 + vpslldq xmm1,xmm1,8 + vpxorq xmm3,xmm3,xmm5 + vpxorq xmm1,xmm1,xmm4 + + + + vmovdqu64 xmm5,XMMWORD[POLY2] + + vpclmulqdq xmm4,xmm5,xmm1,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm1,xmm1,xmm4 + + + + vpclmulqdq xmm4,xmm5,xmm1,0x00 + vpsrldq xmm4,xmm4,4 + vpclmulqdq xmm1,xmm5,xmm1,0x10 + vpslldq xmm1,xmm1,4 + + vpternlogq xmm1,xmm3,xmm4,0x96 + + vmovdqu64 XMMWORD[rcx],xmm1 + vzeroupper +$L$abort_gmult: + DB 0F3h,0C3h ;repret + + +section .pdata rdata align=4 +ALIGN 4 + DD $L$setiv_seh_begin wrt ..imagebase + DD $L$setiv_seh_end wrt ..imagebase + DD $L$setiv_seh_info wrt ..imagebase + + DD $L$ghash_seh_begin wrt ..imagebase + DD $L$ghash_seh_end wrt ..imagebase + DD $L$ghash_seh_info wrt ..imagebase + + DD $L$encrypt_seh_begin wrt ..imagebase + DD $L$encrypt_seh_end wrt ..imagebase + DD $L$encrypt_seh_info wrt ..imagebase + + DD $L$decrypt_seh_begin wrt ..imagebase + DD $L$decrypt_seh_end wrt ..imagebase + DD $L$decrypt_seh_info wrt ..imagebase + +section .xdata rdata align=8 +ALIGN 8 +$L$setiv_seh_info: +DB 1 +DB $L$setiv_seh_prolog_end-$L$setiv_seh_begin +DB 31 + +DB 165 +DB $L$setiv_seh_save_xmm15-$L$setiv_seh_begin +DB 248 + DW 9 +DB $L$setiv_seh_save_xmm14-$L$setiv_seh_begin +DB 232 + DW 8 +DB $L$setiv_seh_save_xmm13-$L$setiv_seh_begin +DB 216 + DW 7 +DB $L$setiv_seh_save_xmm12-$L$setiv_seh_begin +DB 200 + DW 6 +DB $L$setiv_seh_save_xmm11-$L$setiv_seh_begin +DB 184 + DW 5 +DB $L$setiv_seh_save_xmm10-$L$setiv_seh_begin +DB 168 + DW 4 +DB $L$setiv_seh_save_xmm9-$L$setiv_seh_begin +DB 152 + DW 3 +DB $L$setiv_seh_save_xmm8-$L$setiv_seh_begin +DB 136 + DW 2 +DB $L$setiv_seh_save_xmm7-$L$setiv_seh_begin +DB 120 + DW 1 +DB $L$setiv_seh_save_xmm6-$L$setiv_seh_begin +DB 104 + DW 0 + +DB $L$setiv_seh_setfp-$L$setiv_seh_begin +DB 3 + + +DB $L$setiv_seh_allocstack_xmm-$L$setiv_seh_begin +DB 1 + DW 21 +DB $L$setiv_seh_push_rsi-$L$setiv_seh_begin +DB 96 +DB $L$setiv_seh_push_rdi-$L$setiv_seh_begin +DB 112 +DB $L$setiv_seh_push_r15-$L$setiv_seh_begin +DB 240 +DB $L$setiv_seh_push_r14-$L$setiv_seh_begin +DB 224 +DB $L$setiv_seh_push_r13-$L$setiv_seh_begin +DB 208 +DB $L$setiv_seh_push_r12-$L$setiv_seh_begin +DB 192 +DB $L$setiv_seh_push_rbp-$L$setiv_seh_begin +DB 80 +DB $L$setiv_seh_push_rbx-$L$setiv_seh_begin +DB 48 +ALIGN 8 +$L$ghash_seh_info: +DB 1 +DB $L$ghash_seh_prolog_end-$L$ghash_seh_begin +DB 31 + +DB 165 +DB $L$ghash_seh_save_xmm15-$L$ghash_seh_begin +DB 248 + DW 9 +DB $L$ghash_seh_save_xmm14-$L$ghash_seh_begin +DB 232 + DW 8 +DB $L$ghash_seh_save_xmm13-$L$ghash_seh_begin +DB 216 + DW 7 +DB $L$ghash_seh_save_xmm12-$L$ghash_seh_begin +DB 200 + DW 6 +DB $L$ghash_seh_save_xmm11-$L$ghash_seh_begin +DB 184 + DW 5 +DB $L$ghash_seh_save_xmm10-$L$ghash_seh_begin +DB 168 + DW 4 +DB $L$ghash_seh_save_xmm9-$L$ghash_seh_begin +DB 152 + DW 3 +DB $L$ghash_seh_save_xmm8-$L$ghash_seh_begin +DB 136 + DW 2 +DB $L$ghash_seh_save_xmm7-$L$ghash_seh_begin +DB 120 + DW 1 +DB $L$ghash_seh_save_xmm6-$L$ghash_seh_begin +DB 104 + DW 0 + +DB $L$ghash_seh_setfp-$L$ghash_seh_begin +DB 3 + + +DB $L$ghash_seh_allocstack_xmm-$L$ghash_seh_begin +DB 1 + DW 21 +DB $L$ghash_seh_push_rsi-$L$ghash_seh_begin +DB 96 +DB $L$ghash_seh_push_rdi-$L$ghash_seh_begin +DB 112 +DB $L$ghash_seh_push_r15-$L$ghash_seh_begin +DB 240 +DB $L$ghash_seh_push_r14-$L$ghash_seh_begin +DB 224 +DB $L$ghash_seh_push_r13-$L$ghash_seh_begin +DB 208 +DB $L$ghash_seh_push_r12-$L$ghash_seh_begin +DB 192 +DB $L$ghash_seh_push_rbp-$L$ghash_seh_begin +DB 80 +DB $L$ghash_seh_push_rbx-$L$ghash_seh_begin +DB 48 +ALIGN 8 +$L$encrypt_seh_info: +DB 1 +DB $L$encrypt_seh_prolog_end-$L$encrypt_seh_begin +DB 31 + +DB 165 +DB $L$encrypt_seh_save_xmm15-$L$encrypt_seh_begin +DB 248 + DW 9 +DB $L$encrypt_seh_save_xmm14-$L$encrypt_seh_begin +DB 232 + DW 8 +DB $L$encrypt_seh_save_xmm13-$L$encrypt_seh_begin +DB 216 + DW 7 +DB $L$encrypt_seh_save_xmm12-$L$encrypt_seh_begin +DB 200 + DW 6 +DB $L$encrypt_seh_save_xmm11-$L$encrypt_seh_begin +DB 184 + DW 5 +DB $L$encrypt_seh_save_xmm10-$L$encrypt_seh_begin +DB 168 + DW 4 +DB $L$encrypt_seh_save_xmm9-$L$encrypt_seh_begin +DB 152 + DW 3 +DB $L$encrypt_seh_save_xmm8-$L$encrypt_seh_begin +DB 136 + DW 2 +DB $L$encrypt_seh_save_xmm7-$L$encrypt_seh_begin +DB 120 + DW 1 +DB $L$encrypt_seh_save_xmm6-$L$encrypt_seh_begin +DB 104 + DW 0 + +DB $L$encrypt_seh_setfp-$L$encrypt_seh_begin +DB 3 + + +DB $L$encrypt_seh_allocstack_xmm-$L$encrypt_seh_begin +DB 1 + DW 21 +DB $L$encrypt_seh_push_rsi-$L$encrypt_seh_begin +DB 96 +DB $L$encrypt_seh_push_rdi-$L$encrypt_seh_begin +DB 112 +DB $L$encrypt_seh_push_r15-$L$encrypt_seh_begin +DB 240 +DB $L$encrypt_seh_push_r14-$L$encrypt_seh_begin +DB 224 +DB $L$encrypt_seh_push_r13-$L$encrypt_seh_begin +DB 208 +DB $L$encrypt_seh_push_r12-$L$encrypt_seh_begin +DB 192 +DB $L$encrypt_seh_push_rbp-$L$encrypt_seh_begin +DB 80 +DB $L$encrypt_seh_push_rbx-$L$encrypt_seh_begin +DB 48 +ALIGN 8 +$L$decrypt_seh_info: +DB 1 +DB $L$decrypt_seh_prolog_end-$L$decrypt_seh_begin +DB 31 + +DB 165 +DB $L$decrypt_seh_save_xmm15-$L$decrypt_seh_begin +DB 248 + DW 9 +DB $L$decrypt_seh_save_xmm14-$L$decrypt_seh_begin +DB 232 + DW 8 +DB $L$decrypt_seh_save_xmm13-$L$decrypt_seh_begin +DB 216 + DW 7 +DB $L$decrypt_seh_save_xmm12-$L$decrypt_seh_begin +DB 200 + DW 6 +DB $L$decrypt_seh_save_xmm11-$L$decrypt_seh_begin +DB 184 + DW 5 +DB $L$decrypt_seh_save_xmm10-$L$decrypt_seh_begin +DB 168 + DW 4 +DB $L$decrypt_seh_save_xmm9-$L$decrypt_seh_begin +DB 152 + DW 3 +DB $L$decrypt_seh_save_xmm8-$L$decrypt_seh_begin +DB 136 + DW 2 +DB $L$decrypt_seh_save_xmm7-$L$decrypt_seh_begin +DB 120 + DW 1 +DB $L$decrypt_seh_save_xmm6-$L$decrypt_seh_begin +DB 104 + DW 0 + +DB $L$decrypt_seh_setfp-$L$decrypt_seh_begin +DB 3 + + +DB $L$decrypt_seh_allocstack_xmm-$L$decrypt_seh_begin +DB 1 + DW 21 +DB $L$decrypt_seh_push_rsi-$L$decrypt_seh_begin +DB 96 +DB $L$decrypt_seh_push_rdi-$L$decrypt_seh_begin +DB 112 +DB $L$decrypt_seh_push_r15-$L$decrypt_seh_begin +DB 240 +DB $L$decrypt_seh_push_r14-$L$decrypt_seh_begin +DB 224 +DB $L$decrypt_seh_push_r13-$L$decrypt_seh_begin +DB 208 +DB $L$decrypt_seh_push_r12-$L$decrypt_seh_begin +DB 192 +DB $L$decrypt_seh_push_rbp-$L$decrypt_seh_begin +DB 80 +DB $L$decrypt_seh_push_rbx-$L$decrypt_seh_begin +DB 48 +section .rdata rdata align=16 +ALIGN 16 +POLY: DQ 0x0000000000000001,0xC200000000000000 + +ALIGN 64 +POLY2: + DQ 0x00000001C2000000,0xC200000000000000 + DQ 0x00000001C2000000,0xC200000000000000 + DQ 0x00000001C2000000,0xC200000000000000 + DQ 0x00000001C2000000,0xC200000000000000 + +ALIGN 16 +TWOONE: DQ 0x0000000000000001,0x0000000100000000 + + + +ALIGN 64 +SHUF_MASK: + DQ 0x08090A0B0C0D0E0F,0x0001020304050607 + DQ 0x08090A0B0C0D0E0F,0x0001020304050607 + DQ 0x08090A0B0C0D0E0F,0x0001020304050607 + DQ 0x08090A0B0C0D0E0F,0x0001020304050607 + +ALIGN 16 +SHIFT_MASK: + DQ 0x0706050403020100,0x0f0e0d0c0b0a0908 + +ALL_F: + DQ 0xffffffffffffffff,0xffffffffffffffff + +ZERO: + DQ 0x0000000000000000,0x0000000000000000 + +ALIGN 16 +ONE: + DQ 0x0000000000000001,0x0000000000000000 + +ALIGN 16 +ONEf: + DQ 0x0000000000000000,0x0100000000000000 + +ALIGN 64 +ddq_add_1234: + DQ 0x0000000000000001,0x0000000000000000 + DQ 0x0000000000000002,0x0000000000000000 + DQ 0x0000000000000003,0x0000000000000000 + DQ 0x0000000000000004,0x0000000000000000 + +ALIGN 64 +ddq_add_5678: + DQ 0x0000000000000005,0x0000000000000000 + DQ 0x0000000000000006,0x0000000000000000 + DQ 0x0000000000000007,0x0000000000000000 + DQ 0x0000000000000008,0x0000000000000000 + +ALIGN 64 +ddq_add_4444: + DQ 0x0000000000000004,0x0000000000000000 + DQ 0x0000000000000004,0x0000000000000000 + DQ 0x0000000000000004,0x0000000000000000 + DQ 0x0000000000000004,0x0000000000000000 + +ALIGN 64 +ddq_add_8888: + DQ 0x0000000000000008,0x0000000000000000 + DQ 0x0000000000000008,0x0000000000000000 + DQ 0x0000000000000008,0x0000000000000000 + DQ 0x0000000000000008,0x0000000000000000 + +ALIGN 64 +ddq_addbe_1234: + DQ 0x0000000000000000,0x0100000000000000 + DQ 0x0000000000000000,0x0200000000000000 + DQ 0x0000000000000000,0x0300000000000000 + DQ 0x0000000000000000,0x0400000000000000 + +ALIGN 64 +ddq_addbe_4444: + DQ 0x0000000000000000,0x0400000000000000 + DQ 0x0000000000000000,0x0400000000000000 + DQ 0x0000000000000000,0x0400000000000000 + DQ 0x0000000000000000,0x0400000000000000 + +ALIGN 64 +byte_len_to_mask_table: + DW 0x0000,0x0001,0x0003,0x0007 + DW 0x000f,0x001f,0x003f,0x007f + DW 0x00ff,0x01ff,0x03ff,0x07ff + DW 0x0fff,0x1fff,0x3fff,0x7fff + DW 0xffff + +ALIGN 64 +byte64_len_to_mask_table: + DQ 0x0000000000000000,0x0000000000000001 + DQ 0x0000000000000003,0x0000000000000007 + DQ 0x000000000000000f,0x000000000000001f + DQ 0x000000000000003f,0x000000000000007f + DQ 0x00000000000000ff,0x00000000000001ff + DQ 0x00000000000003ff,0x00000000000007ff + DQ 0x0000000000000fff,0x0000000000001fff + DQ 0x0000000000003fff,0x0000000000007fff + DQ 0x000000000000ffff,0x000000000001ffff + DQ 0x000000000003ffff,0x000000000007ffff + DQ 0x00000000000fffff,0x00000000001fffff + DQ 0x00000000003fffff,0x00000000007fffff + DQ 0x0000000000ffffff,0x0000000001ffffff + DQ 0x0000000003ffffff,0x0000000007ffffff + DQ 0x000000000fffffff,0x000000001fffffff + DQ 0x000000003fffffff,0x000000007fffffff + DQ 0x00000000ffffffff,0x00000001ffffffff + DQ 0x00000003ffffffff,0x00000007ffffffff + DQ 0x0000000fffffffff,0x0000001fffffffff + DQ 0x0000003fffffffff,0x0000007fffffffff + DQ 0x000000ffffffffff,0x000001ffffffffff + DQ 0x000003ffffffffff,0x000007ffffffffff + DQ 0x00000fffffffffff,0x00001fffffffffff + DQ 0x00003fffffffffff,0x00007fffffffffff + DQ 0x0000ffffffffffff,0x0001ffffffffffff + DQ 0x0003ffffffffffff,0x0007ffffffffffff + DQ 0x000fffffffffffff,0x001fffffffffffff + DQ 0x003fffffffffffff,0x007fffffffffffff + DQ 0x00ffffffffffffff,0x01ffffffffffffff + DQ 0x03ffffffffffffff,0x07ffffffffffffff + DQ 0x0fffffffffffffff,0x1fffffffffffffff + DQ 0x3fffffffffffffff,0x7fffffffffffffff + DQ 0xffffffffffffffff diff --git a/deps/openssl/config/archs/VC-WIN64A/asm/crypto/modes/aesni-gcm-x86_64.asm b/deps/openssl/config/archs/VC-WIN64A/asm/crypto/modes/aesni-gcm-x86_64.asm index 9fba32b883a6ba..b9b1b5256142ad 100644 --- a/deps/openssl/config/archs/VC-WIN64A/asm/crypto/modes/aesni-gcm-x86_64.asm +++ b/deps/openssl/config/archs/VC-WIN64A/asm/crypto/modes/aesni-gcm-x86_64.asm @@ -851,6 +851,7 @@ $L$gcm_enc_abort: DB 0F3h,0C3h ;repret $L$SEH_end_aesni_gcm_encrypt: +section .rdata rdata align=64 ALIGN 64 $L$bswap_mask: DB 15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0 @@ -866,6 +867,7 @@ DB 65,69,83,45,78,73,32,71,67,77,32,109,111,100,117,108 DB 101,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82 DB 89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112 DB 114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 +section .text ALIGN 64 EXTERN __imp_RtlVirtualUnwind diff --git a/deps/openssl/config/archs/VC-WIN64A/asm/crypto/modes/ghash-x86_64.asm b/deps/openssl/config/archs/VC-WIN64A/asm/crypto/modes/ghash-x86_64.asm index 639672d87b00b4..e68d6e5228e7b8 100644 --- a/deps/openssl/config/archs/VC-WIN64A/asm/crypto/modes/ghash-x86_64.asm +++ b/deps/openssl/config/archs/VC-WIN64A/asm/crypto/modes/ghash-x86_64.asm @@ -723,6 +723,7 @@ global gcm_init_clmul ALIGN 16 gcm_init_clmul: +DB 243,15,30,250 $L$_init_clmul: $L$SEH_begin_gcm_init_clmul: @@ -1354,6 +1355,7 @@ global gcm_init_avx ALIGN 32 gcm_init_avx: +DB 243,15,30,250 $L$SEH_begin_gcm_init_avx: DB 0x48,0x83,0xec,0x18 @@ -1879,6 +1881,7 @@ $L$SEH_end_gcm_ghash_avx: DB 0F3h,0C3h ;repret +section .rdata rdata align=64 ALIGN 64 $L$bswap_mask: DB 15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0 @@ -1935,6 +1938,7 @@ DB 44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32 DB 60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111 DB 114,103,62,0 ALIGN 64 +section .text EXTERN __imp_RtlVirtualUnwind ALIGN 16 diff --git a/deps/openssl/config/archs/VC-WIN64A/asm/crypto/params_idx.c b/deps/openssl/config/archs/VC-WIN64A/asm/crypto/params_idx.c new file mode 100644 index 00000000000000..874125eb57a17c --- /dev/null +++ b/deps/openssl/config/archs/VC-WIN64A/asm/crypto/params_idx.c @@ -0,0 +1,3366 @@ +/* + * WARNING: do not edit! + * Generated by makefile from crypto/params_idx.c.in + * + * Copyright 2023 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + +#include "internal/e_os.h" +#include "internal/param_names.h" +#include + +/* Machine generated TRIE -- generated by util/perl/OpenSSL/paramnames.pm */ +int ossl_param_find_pidx(const char *s) +{ + switch(s[0]) { + default: + break; + case 'a': + switch(s[1]) { + default: + break; + case 'c': + if (strcmp("vp-info", s + 2) == 0) + return PIDX_KDF_PARAM_X942_ACVPINFO; + break; + case 'd': + switch(s[2]) { + default: + break; + case 'd': + if (strcmp("itional-random", s + 3) == 0) + return PIDX_SIGNATURE_PARAM_ADD_RANDOM; + break; + case '\0': + return PIDX_KDF_PARAM_ARGON2_AD; + } + break; + case 'e': + if (strcmp("ad", s + 2) == 0) + return PIDX_CIPHER_PARAM_AEAD; + break; + case 'l': + switch(s[2]) { + default: + break; + case 'g': + switch(s[3]) { + default: + break; + case '_': + if (strcmp("id_param", s + 4) == 0) + return PIDX_CIPHER_PARAM_ALGORITHM_ID_PARAMS_OLD; + break; + case 'i': + if (strcmp("d-absent", s + 4) == 0) + return PIDX_DIGEST_PARAM_ALGID_ABSENT; + break; + case 'o': + switch(s[4]) { + default: + break; + case 'r': + switch(s[5]) { + default: + break; + case 'i': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case 'h': + switch(s[8]) { + default: + break; + case 'm': + switch(s[9]) { + default: + break; + case '-': + switch(s[10]) { + default: + break; + case 'i': + switch(s[11]) { + default: + break; + case 'd': + switch(s[12]) { + default: + break; + case '-': + if (strcmp("params", s + 13) == 0) + return PIDX_ALG_PARAM_ALGORITHM_ID_PARAMS; + break; + case '\0': + return PIDX_ALG_PARAM_ALGORITHM_ID; + } + } + } + } + } + } + } + } + } + } + break; + case 'i': + if (strcmp("as", s + 3) == 0) + return PIDX_STORE_PARAM_ALIAS; + } + break; + case '\0': + return PIDX_PKEY_PARAM_EC_A; + } + break; + case 'b': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("sis-type", s + 2) == 0) + return PIDX_PKEY_PARAM_EC_CHAR2_TYPE; + break; + case 'i': + if (strcmp("ts", s + 2) == 0) + return PIDX_PKEY_PARAM_BITS; + break; + case 'l': + switch(s[2]) { + default: + break; + case 'o': + switch(s[3]) { + default: + break; + case 'c': + switch(s[4]) { + default: + break; + case 'k': + switch(s[5]) { + default: + break; + case '-': + if (strcmp("size", s + 6) == 0) + return PIDX_MAC_PARAM_BLOCK_SIZE; + break; + case '_': + if (strcmp("padding", s + 6) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_BLOCK_PADDING; + break; + case 's': + if (strcmp("ize", s + 6) == 0) + return PIDX_DIGEST_PARAM_BLOCK_SIZE; + } + } + } + } + break; + case 'u': + if (strcmp("ildinfo", s + 2) == 0) + return PIDX_PROV_PARAM_BUILDINFO; + break; + case '\0': + return PIDX_PKEY_PARAM_EC_B; + } + break; + case 'c': + switch(s[1]) { + default: + break; + case '-': + if (strcmp("rounds", s + 2) == 0) + return PIDX_MAC_PARAM_C_ROUNDS; + break; + case 'e': + if (strcmp("kalg", s + 2) == 0) + return PIDX_KDF_PARAM_CEK_ALG; + break; + case 'i': + if (strcmp("pher", s + 2) == 0) + return PIDX_ALG_PARAM_CIPHER; + break; + case 'o': + switch(s[2]) { + default: + break; + case 'f': + if (strcmp("actor", s + 3) == 0) + return PIDX_PKEY_PARAM_EC_COFACTOR; + break; + case 'n': + switch(s[3]) { + default: + break; + case 's': + if (strcmp("tant", s + 4) == 0) + return PIDX_KDF_PARAM_CONSTANT; + break; + case 't': + if (strcmp("ext-string", s + 4) == 0) + return PIDX_SIGNATURE_PARAM_CONTEXT_STRING; + } + } + break; + case 't': + switch(s[2]) { + default: + break; + case 's': + switch(s[3]) { + default: + break; + case '_': + if (strcmp("mode", s + 4) == 0) + return PIDX_CIPHER_PARAM_CTS_MODE; + break; + case '\0': + return PIDX_CIPHER_PARAM_CTS; + } + } + break; + case 'u': + switch(s[2]) { + default: + break; + case 's': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case 'o': + switch(s[5]) { + default: + break; + case 'm': + switch(s[6]) { + default: + break; + case '-': + if (strcmp("iv", s + 7) == 0) + return PIDX_CIPHER_PARAM_CUSTOM_IV; + break; + case '\0': + return PIDX_MAC_PARAM_CUSTOM; + } + } + } + } + } + } + break; + case 'd': + switch(s[1]) { + default: + break; + case '-': + if (strcmp("rounds", s + 2) == 0) + return PIDX_MAC_PARAM_D_ROUNDS; + break; + case 'a': + switch(s[2]) { + default: + break; + case 't': + switch(s[3]) { + default: + break; + case 'a': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 's': + if (strcmp("tructure", s + 6) == 0) + return PIDX_OBJECT_PARAM_DATA_STRUCTURE; + break; + case 't': + if (strcmp("ype", s + 6) == 0) + return PIDX_OBJECT_PARAM_DATA_TYPE; + } + break; + case '\0': + return PIDX_OBJECT_PARAM_DATA; + } + } + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'c': + switch(s[3]) { + default: + break; + case 'o': + if (strcmp("ded-from-explicit", s + 4) == 0) + return PIDX_PKEY_PARAM_EC_DECODED_FROM_EXPLICIT_PARAMS; + break; + case 'r': + if (strcmp("ypt-only", s + 4) == 0) + return PIDX_CIPHER_PARAM_DECRYPT_ONLY; + } + break; + case 'f': + if (strcmp("ault-digest", s + 3) == 0) + return PIDX_PKEY_PARAM_DEFAULT_DIGEST; + break; + case 's': + if (strcmp("c", s + 3) == 0) + return PIDX_OBJECT_PARAM_DESC; + break; + case 't': + if (strcmp("erministic", s + 3) == 0) + return PIDX_SIGNATURE_PARAM_DETERMINISTIC; + } + break; + case 'h': + if (strcmp("kem-ikm", s + 2) == 0) + return PIDX_PKEY_PARAM_DHKEM_IKM; + break; + case 'i': + switch(s[2]) { + default: + break; + case 'g': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case 's': + switch(s[5]) { + default: + break; + case 't': + switch(s[6]) { + default: + break; + case '-': + switch(s[7]) { + default: + break; + case 'c': + if (strcmp("heck", s + 8) == 0) + return PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK; + break; + case 'n': + if (strcmp("oinit", s + 8) == 0) + return PIDX_MAC_PARAM_DIGEST_NOINIT; + break; + case 'o': + if (strcmp("neshot", s + 8) == 0) + return PIDX_MAC_PARAM_DIGEST_ONESHOT; + break; + case 'p': + if (strcmp("rops", s + 8) == 0) + return PIDX_ASYM_CIPHER_PARAM_OAEP_DIGEST_PROPS; + break; + case 's': + if (strcmp("ize", s + 8) == 0) + return PIDX_PKEY_PARAM_DIGEST_SIZE; + } + break; + case '\0': + return PIDX_STORE_PARAM_DIGEST; + } + } + } + } + break; + case 's': + if (strcmp("tid", s + 3) == 0) + return PIDX_PKEY_PARAM_DIST_ID; + } + break; + case 'r': + if (strcmp("bg-no-trunc-md", s + 2) == 0) + return PIDX_PROV_PARAM_DRBG_TRUNC_DIGEST; + break; + case 's': + if (strcmp("a-sign-disabled", s + 2) == 0) + return PIDX_PROV_PARAM_DSA_SIGN_DISABLED; + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_D; + } + break; + case 'e': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("rly_clean", s + 2) == 0) + return PIDX_KDF_PARAM_EARLY_CLEAN; + break; + case 'c': + switch(s[2]) { + default: + break; + case 'd': + switch(s[3]) { + default: + break; + case 'h': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'c': + switch(s[6]) { + default: + break; + case 'o': + switch(s[7]) { + default: + break; + case 'f': + switch(s[8]) { + default: + break; + case 'a': + switch(s[9]) { + default: + break; + case 'c': + switch(s[10]) { + default: + break; + case 't': + switch(s[11]) { + default: + break; + case 'o': + switch(s[12]) { + default: + break; + case 'r': + switch(s[13]) { + default: + break; + case '-': + switch(s[14]) { + default: + break; + case 'c': + if (strcmp("heck", s + 15) == 0) + return PIDX_PROV_PARAM_ECDH_COFACTOR_CHECK; + break; + case 'm': + if (strcmp("ode", s + 15) == 0) + return PIDX_EXCHANGE_PARAM_EC_ECDH_COFACTOR_MODE; + } + } + } + } + } + } + } + } + } + } + } + } + } + break; + case 'm': + if (strcmp("s_check", s + 2) == 0) + return PIDX_KDF_PARAM_FIPS_EMS_CHECK; + break; + case 'n': + switch(s[2]) { + default: + break; + case 'c': + switch(s[3]) { + default: + break; + case 'o': + switch(s[4]) { + default: + break; + case 'd': + switch(s[5]) { + default: + break; + case 'e': + if (strcmp("d-pub-key", s + 6) == 0) + return PIDX_PKEY_PARAM_ENCODED_PUBLIC_KEY; + break; + case 'i': + if (strcmp("ng", s + 6) == 0) + return PIDX_PKEY_PARAM_EC_ENCODING; + } + } + break; + case 'r': + switch(s[4]) { + default: + break; + case 'y': + switch(s[5]) { + default: + break; + case 'p': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case '-': + switch(s[8]) { + default: + break; + case 'c': + if (strcmp("heck", s + 9) == 0) + return PIDX_CIPHER_PARAM_FIPS_ENCRYPT_CHECK; + break; + case 'l': + if (strcmp("evel", s + 9) == 0) + return PIDX_ENCODER_PARAM_ENCRYPT_LEVEL; + } + } + } + } + } + } + break; + case 'g': + if (strcmp("ine", s + 3) == 0) + return PIDX_ALG_PARAM_ENGINE; + break; + case 't': + switch(s[3]) { + default: + break; + case 'r': + switch(s[4]) { + default: + break; + case 'o': + switch(s[5]) { + default: + break; + case 'p': + switch(s[6]) { + default: + break; + case 'y': + switch(s[7]) { + default: + break; + case '_': + if (strcmp("required", s + 8) == 0) + return PIDX_DRBG_PARAM_ENTROPY_REQUIRED; + break; + case '\0': + return PIDX_KDF_PARAM_HMACDRBG_ENTROPY; + } + } + } + } + } + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_E; + break; + case 'x': + if (strcmp("pect", s + 2) == 0) + return PIDX_STORE_PARAM_EXPECT; + } + break; + case 'f': + switch(s[1]) { + default: + break; + case 'i': + switch(s[2]) { + default: + break; + case 'e': + if (strcmp("ld-type", s + 3) == 0) + return PIDX_PKEY_PARAM_EC_FIELD_TYPE; + break; + case 'n': + if (strcmp("gerprint", s + 3) == 0) + return PIDX_STORE_PARAM_FINGERPRINT; + break; + case 'p': + if (strcmp("s-indicator", s + 3) == 0) + return PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR; + } + } + break; + case 'g': + switch(s[1]) { + default: + break; + case 'e': + switch(s[2]) { + default: + break; + case 'n': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case 'r': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case 'e': + switch(s[8]) { + default: + break; + case '\0': + return PIDX_RAND_PARAM_GENERATE; + } + break; + case 'o': + if (strcmp("r", s + 8) == 0) + return PIDX_PKEY_PARAM_EC_GENERATOR; + } + } + } + } + } + } + break; + case 'i': + if (strcmp("ndex", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_GINDEX; + break; + case 'r': + switch(s[2]) { + default: + break; + case 'o': + switch(s[3]) { + default: + break; + case 'u': + switch(s[4]) { + default: + break; + case 'p': + switch(s[5]) { + default: + break; + case '-': + if (strcmp("check", s + 6) == 0) + return PIDX_PKEY_PARAM_EC_GROUP_CHECK_TYPE; + break; + case '\0': + return PIDX_PKEY_PARAM_GROUP_NAME; + } + } + } + } + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_G; + } + break; + case 'h': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("s-randkey", s + 2) == 0) + return PIDX_CIPHER_PARAM_HAS_RAND_KEY; + break; + case 'i': + if (strcmp("ndex", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_H; + break; + case 'k': + switch(s[2]) { + default: + break; + case 'd': + switch(s[3]) { + default: + break; + case 'f': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 6) == 0) + return PIDX_PROV_PARAM_HKDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 6) == 0) + return PIDX_PROV_PARAM_HKDF_KEY_CHECK; + } + } + } + } + break; + case 'm': + if (strcmp("ac-key-check", s + 2) == 0) + return PIDX_PROV_PARAM_HMAC_KEY_CHECK; + break; + case 's': + if (strcmp("_padding", s + 2) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_HS_PADDING; + } + break; + case 'i': + switch(s[1]) { + default: + break; + case 'd': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_KDF_PARAM_PKCS12_ID; + } + break; + case 'k': + if (strcmp("me", s + 2) == 0) + return PIDX_KEM_PARAM_IKME; + break; + case 'm': + if (strcmp("plicit-rejection", s + 2) == 0) + return PIDX_PKEY_PARAM_IMPLICIT_REJECTION; + break; + case 'n': + switch(s[2]) { + default: + break; + case 'c': + if (strcmp("lude-public", s + 3) == 0) + return PIDX_PKEY_PARAM_EC_INCLUDE_PUBLIC; + break; + case 'f': + if (strcmp("o", s + 3) == 0) + return PIDX_PASSPHRASE_PARAM_INFO; + break; + case 'p': + if (strcmp("ut-type", s + 3) == 0) + return PIDX_STORE_PARAM_INPUT_TYPE; + break; + case 's': + if (strcmp("tance", s + 3) == 0) + return PIDX_SIGNATURE_PARAM_INSTANCE; + } + break; + case 't': + switch(s[2]) { + default: + break; + case 'e': + switch(s[3]) { + default: + break; + case 'r': + switch(s[4]) { + default: + break; + case 'a': + if (strcmp("tion", s + 5) == 0) + return PIDX_GEN_PARAM_ITERATION; + break; + case '\0': + return PIDX_KDF_PARAM_ITER; + } + } + } + break; + case 'v': + switch(s[2]) { + default: + break; + case '-': + if (strcmp("generated", s + 3) == 0) + return PIDX_CIPHER_PARAM_AEAD_IV_GENERATED; + break; + case 'l': + if (strcmp("en", s + 3) == 0) + return PIDX_CIPHER_PARAM_IVLEN; + break; + case '\0': + return PIDX_MAC_PARAM_IV; + } + } + break; + case 'j': + switch(s[1]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_COFACTOR; + } + break; + case 'k': + switch(s[1]) { + default: + break; + case '1': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_PP_K1; + } + break; + case '2': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_PP_K2; + } + break; + case '3': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_PP_K3; + } + break; + case 'a': + if (strcmp("t", s + 2) == 0) + return PIDX_SIGNATURE_PARAM_KAT; + break; + case 'b': + if (strcmp("kdf-key-check", s + 2) == 0) + return PIDX_PROV_PARAM_KBKDF_KEY_CHECK; + break; + case 'd': + switch(s[2]) { + default: + break; + case 'f': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'd': + switch(s[5]) { + default: + break; + case 'i': + switch(s[6]) { + default: + break; + case 'g': + switch(s[7]) { + default: + break; + case 'e': + switch(s[8]) { + default: + break; + case 's': + switch(s[9]) { + default: + break; + case 't': + switch(s[10]) { + default: + break; + case '-': + if (strcmp("props", s + 11) == 0) + return PIDX_EXCHANGE_PARAM_KDF_DIGEST_PROPS; + break; + case '\0': + return PIDX_EXCHANGE_PARAM_KDF_DIGEST; + } + } + } + } + } + } + break; + case 'o': + if (strcmp("utlen", s + 5) == 0) + return PIDX_EXCHANGE_PARAM_KDF_OUTLEN; + break; + case 't': + if (strcmp("ype", s + 5) == 0) + return PIDX_EXCHANGE_PARAM_KDF_TYPE; + break; + case 'u': + if (strcmp("km", s + 5) == 0) + return PIDX_EXCHANGE_PARAM_KDF_UKM; + } + } + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'y': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'c': + if (strcmp("heck", s + 5) == 0) + return PIDX_PKEY_PARAM_FIPS_KEY_CHECK; + break; + case 'l': + if (strcmp("ength", s + 5) == 0) + return PIDX_SKEY_PARAM_KEY_LENGTH; + } + break; + case 'b': + if (strcmp("its", s + 4) == 0) + return PIDX_CIPHER_PARAM_RC2_KEYBITS; + break; + case 'l': + if (strcmp("en", s + 4) == 0) + return PIDX_CIPHER_PARAM_KEYLEN; + break; + case '\0': + return PIDX_MAC_PARAM_KEY; + } + } + break; + case 'm': + if (strcmp("ac-key-check", s + 2) == 0) + return PIDX_PROV_PARAM_KMAC_KEY_CHECK; + } + break; + case 'l': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'b': + if (strcmp("el", s + 3) == 0) + return PIDX_KDF_PARAM_LABEL; + break; + case 'n': + if (strcmp("es", s + 3) == 0) + return PIDX_KDF_PARAM_ARGON2_LANES; + } + } + break; + case 'm': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'c': + switch(s[3]) { + default: + break; + case 'k': + if (strcmp("ey", s + 4) == 0) + return PIDX_CIPHER_PARAM_AEAD_MAC_KEY; + break; + case 'l': + if (strcmp("en", s + 4) == 0) + return PIDX_KDF_PARAM_MAC_SIZE; + break; + case '\0': + return PIDX_ALG_PARAM_MAC; + } + break; + case 'n': + if (strcmp("datory-digest", s + 3) == 0) + return PIDX_PKEY_PARAM_MANDATORY_DIGEST; + break; + case 'x': + switch(s[3]) { + default: + break; + case '-': + if (strcmp("size", s + 4) == 0) + return PIDX_PKEY_PARAM_MAX_SIZE; + break; + case '_': + switch(s[4]) { + default: + break; + case 'a': + if (strcmp("dinlen", s + 5) == 0) + return PIDX_DRBG_PARAM_MAX_ADINLEN; + break; + case 'e': + switch(s[5]) { + default: + break; + case 'a': + if (strcmp("rly_data", s + 6) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_MAX_EARLY_DATA; + break; + case 'n': + if (strcmp("tropylen", s + 6) == 0) + return PIDX_DRBG_PARAM_MAX_ENTROPYLEN; + } + break; + case 'f': + if (strcmp("rag_len", s + 5) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_MAX_FRAG_LEN; + break; + case 'n': + if (strcmp("oncelen", s + 5) == 0) + return PIDX_DRBG_PARAM_MAX_NONCELEN; + break; + case 'p': + if (strcmp("erslen", s + 5) == 0) + return PIDX_DRBG_PARAM_MAX_PERSLEN; + break; + case 'r': + if (strcmp("equest", s + 5) == 0) + return PIDX_RAND_PARAM_MAX_REQUEST; + } + break; + case 'i': + if (strcmp("um_length", s + 4) == 0) + return PIDX_DRBG_PARAM_MAX_LENGTH; + break; + case 'm': + if (strcmp("em_bytes", s + 4) == 0) + return PIDX_KDF_PARAM_SCRYPT_MAXMEM; + } + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'm': + if (strcmp("cost", s + 3) == 0) + return PIDX_KDF_PARAM_ARGON2_MEMCOST; + break; + case 's': + if (strcmp("sage-encoding", s + 3) == 0) + return PIDX_SIGNATURE_PARAM_MESSAGE_ENCODING; + } + break; + case 'g': + switch(s[2]) { + default: + break; + case 'f': + switch(s[3]) { + default: + break; + case '1': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'd': + if (strcmp("igest", s + 6) == 0) + return PIDX_PKEY_PARAM_MGF1_DIGEST; + break; + case 'p': + if (strcmp("roperties", s + 6) == 0) + return PIDX_PKEY_PARAM_MGF1_PROPERTIES; + } + } + break; + case '\0': + return PIDX_PKEY_PARAM_MASKGENFUNC; + } + } + break; + case 'i': + switch(s[2]) { + default: + break; + case 'c': + if (strcmp("alg", s + 3) == 0) + return PIDX_DIGEST_PARAM_MICALG; + break; + case 'n': + switch(s[3]) { + default: + break; + case '_': + switch(s[4]) { + default: + break; + case 'e': + if (strcmp("ntropylen", s + 5) == 0) + return PIDX_DRBG_PARAM_MIN_ENTROPYLEN; + break; + case 'n': + if (strcmp("oncelen", s + 5) == 0) + return PIDX_DRBG_PARAM_MIN_NONCELEN; + } + break; + case 'i': + if (strcmp("um_length", s + 4) == 0) + return PIDX_DRBG_PARAM_MIN_LENGTH; + } + } + break; + case 'l': + switch(s[2]) { + default: + break; + case '-': + switch(s[3]) { + default: + break; + case 'd': + switch(s[4]) { + default: + break; + case 's': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case '.': + switch(s[7]) { + default: + break; + case 'i': + if (strcmp("nput_formats", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_DSA_INPUT_FORMATS; + break; + case 'o': + if (strcmp("utput_formats", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_DSA_OUTPUT_FORMATS; + break; + case 'p': + if (strcmp("refer_seed", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_DSA_PREFER_SEED; + break; + case 'r': + if (strcmp("etain_seed", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_DSA_RETAIN_SEED; + } + } + } + } + break; + case 'k': + switch(s[4]) { + default: + break; + case 'e': + switch(s[5]) { + default: + break; + case 'm': + switch(s[6]) { + default: + break; + case '.': + switch(s[7]) { + default: + break; + case 'i': + switch(s[8]) { + default: + break; + case 'm': + if (strcmp("port_pct_type", s + 9) == 0) + return PIDX_PKEY_PARAM_ML_KEM_IMPORT_PCT_TYPE; + break; + case 'n': + if (strcmp("put_formats", s + 9) == 0) + return PIDX_PKEY_PARAM_ML_KEM_INPUT_FORMATS; + } + break; + case 'o': + if (strcmp("utput_formats", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_KEM_OUTPUT_FORMATS; + break; + case 'p': + if (strcmp("refer_seed", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_KEM_PREFER_SEED; + break; + case 'r': + if (strcmp("etain_seed", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_KEM_RETAIN_SEED; + } + } + } + } + } + } + break; + case 'o': + switch(s[2]) { + default: + break; + case 'd': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case '\0': + return PIDX_LIBSSL_RECORD_LAYER_PARAM_MODE; + } + break; + case 'u': + if (strcmp("le-filename", s + 4) == 0) + return PIDX_PROV_PARAM_CORE_MODULE_FILENAME; + } + } + break; + case 'u': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_SIGNATURE_PARAM_MU; + } + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_M; + } + break; + case 'n': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("me", s + 2) == 0) + return PIDX_STORE_PARAM_ISSUER; + break; + case 'o': + switch(s[2]) { + default: + break; + case '-': + if (strcmp("short-mac", s + 3) == 0) + return PIDX_PROV_PARAM_NO_SHORT_MAC; + break; + case 'n': + switch(s[3]) { + default: + break; + case 'c': + switch(s[4]) { + default: + break; + case 'e': + switch(s[5]) { + default: + break; + case '-': + if (strcmp("type", s + 6) == 0) + return PIDX_SIGNATURE_PARAM_NONCE_TYPE; + break; + case '\0': + return PIDX_KDF_PARAM_HMACDRBG_NONCE; + } + } + } + } + break; + case 'u': + if (strcmp("m", s + 2) == 0) + return PIDX_CIPHER_PARAM_NUM; + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_N; + } + break; + case 'o': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("ep-label", s + 2) == 0) + return PIDX_ASYM_CIPHER_PARAM_OAEP_LABEL; + break; + case 'p': + switch(s[2]) { + default: + break; + case 'e': + switch(s[3]) { + default: + break; + case 'n': + if (strcmp("ssl-version", s + 4) == 0) + return PIDX_PROV_PARAM_CORE_VERSION; + break; + case 'r': + if (strcmp("ation", s + 4) == 0) + return PIDX_KEM_PARAM_OPERATION; + } + break; + case 't': + if (strcmp("ions", s + 3) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_OPTIONS; + } + break; + case 'r': + if (strcmp("der", s + 2) == 0) + return PIDX_PKEY_PARAM_EC_ORDER; + } + break; + case 'p': + switch(s[1]) { + default: + break; + case '1': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_P1; + } + break; + case '2': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_P2; + } + break; + case 'a': + switch(s[2]) { + default: + break; + case 'd': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'm': + if (strcmp("ode", s + 5) == 0) + return PIDX_PKEY_PARAM_PAD_MODE; + break; + case 't': + if (strcmp("ype", s + 5) == 0) + return PIDX_DIGEST_PARAM_PAD_TYPE; + } + break; + case 'd': + if (strcmp("ing", s + 4) == 0) + return PIDX_CIPHER_PARAM_PADDING; + break; + case '\0': + return PIDX_EXCHANGE_PARAM_PAD; + } + break; + case 'r': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case 'y': + switch(s[5]) { + default: + break; + case 'u': + if (strcmp("-info", s + 6) == 0) + return PIDX_KDF_PARAM_X942_PARTYUINFO; + break; + case 'v': + if (strcmp("-info", s + 6) == 0) + return PIDX_KDF_PARAM_X942_PARTYVINFO; + } + } + } + break; + case 's': + if (strcmp("s", s + 3) == 0) + return PIDX_KDF_PARAM_PASSWORD; + } + break; + case 'b': + switch(s[2]) { + default: + break; + case 'i': + if (strcmp("ts", s + 3) == 0) + return PIDX_PKEY_PARAM_FFC_PBITS; + break; + case 'k': + if (strcmp("df2-lower-bound-check", s + 3) == 0) + return PIDX_PROV_PARAM_PBKDF2_LOWER_BOUND_CHECK; + } + break; + case 'c': + if (strcmp("ounter", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_PCOUNTER; + break; + case 'i': + if (strcmp("peline-tag", s + 2) == 0) + return PIDX_CIPHER_PARAM_PIPELINE_AEAD_TAG; + break; + case 'k': + if (strcmp("cs5", s + 2) == 0) + return PIDX_KDF_PARAM_PKCS5; + break; + case 'o': + switch(s[2]) { + default: + break; + case 'i': + if (strcmp("nt-format", s + 3) == 0) + return PIDX_PKEY_PARAM_EC_POINT_CONVERSION_FORMAT; + break; + case 't': + if (strcmp("ential", s + 3) == 0) + return PIDX_GEN_PARAM_POTENTIAL; + } + break; + case 'r': + switch(s[2]) { + default: + break; + case 'e': + switch(s[3]) { + default: + break; + case 'd': + if (strcmp("iction_resistance", s + 4) == 0) + return PIDX_DRBG_PARAM_PREDICTION_RESISTANCE; + break; + case 'f': + if (strcmp("ix", s + 4) == 0) + return PIDX_KDF_PARAM_PREFIX; + } + break; + case 'i': + switch(s[3]) { + default: + break; + case 'm': + if (strcmp("es", s + 4) == 0) + return PIDX_PKEY_PARAM_RSA_PRIMES; + break; + case 'v': + switch(s[4]) { + default: + break; + case '_': + if (strcmp("len", s + 5) == 0) + return PIDX_PKEY_PARAM_DH_PRIV_LEN; + break; + case '\0': + return PIDX_PKEY_PARAM_PRIV_KEY; + } + } + break; + case 'o': + switch(s[3]) { + default: + break; + case 'p': + if (strcmp("erties", s + 4) == 0) + return PIDX_STORE_PARAM_PROPERTIES; + break; + case 'v': + if (strcmp("ider-name", s + 4) == 0) + return PIDX_PROV_PARAM_CORE_PROV_NAME; + } + } + break; + case 'u': + if (strcmp("b", s + 2) == 0) + return PIDX_PKEY_PARAM_PUB_KEY; + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_P; + } + break; + case 'q': + switch(s[1]) { + default: + break; + case '1': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_Q1; + } + break; + case '2': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_Q2; + } + break; + case 'b': + if (strcmp("its", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_QBITS; + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_Q; + break; + case 'x': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_PUB_X; + } + break; + case 'y': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_PUB_Y; + } + } + break; + case 'r': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'n': + switch(s[3]) { + default: + break; + case 'd': + switch(s[4]) { + default: + break; + case 'k': + if (strcmp("ey", s + 5) == 0) + return PIDX_CIPHER_PARAM_RANDOM_KEY; + break; + case 'o': + if (strcmp("m_data", s + 5) == 0) + return PIDX_DRBG_PARAM_RANDOM_DATA; + } + } + break; + case 'w': + if (strcmp("-bytes", s + 3) == 0) + return PIDX_SKEY_PARAM_RAW_BYTES; + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'a': + switch(s[3]) { + default: + break; + case 'd': + switch(s[4]) { + default: + break; + case '_': + switch(s[5]) { + default: + break; + case 'a': + if (strcmp("head", s + 6) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_READ_AHEAD; + break; + case 'b': + if (strcmp("uffer_len", s + 6) == 0) + return PIDX_LIBSSL_RECORD_LAYER_READ_BUFFER_LEN; + } + } + } + break; + case 'f': + if (strcmp("erence", s + 3) == 0) + return PIDX_OBJECT_PARAM_REFERENCE; + break; + case 's': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case 'e': + switch(s[5]) { + default: + break; + case 'd': + switch(s[6]) { + default: + break; + case '_': + switch(s[7]) { + default: + break; + case 'c': + if (strcmp("ounter", s + 8) == 0) + return PIDX_DRBG_PARAM_RESEED_COUNTER; + break; + case 'r': + if (strcmp("equests", s + 8) == 0) + return PIDX_DRBG_PARAM_RESEED_REQUESTS; + break; + case 't': + switch(s[8]) { + default: + break; + case 'i': + switch(s[9]) { + default: + break; + case 'm': + switch(s[10]) { + default: + break; + case 'e': + switch(s[11]) { + default: + break; + case '_': + if (strcmp("interval", s + 12) == 0) + return PIDX_DRBG_PARAM_RESEED_TIME_INTERVAL; + break; + case '\0': + return PIDX_DRBG_PARAM_RESEED_TIME; + } + } + } + } + } + } + } + } + } + } + break; + case 'o': + if (strcmp("unds", s + 2) == 0) + return PIDX_CIPHER_PARAM_ROUNDS; + break; + case 's': + switch(s[2]) { + default: + break; + case 'a': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'c': + switch(s[5]) { + default: + break; + case 'o': + switch(s[6]) { + default: + break; + case 'e': + switch(s[7]) { + default: + break; + case 'f': + switch(s[8]) { + default: + break; + case 'f': + switch(s[9]) { + default: + break; + case 'i': + switch(s[10]) { + default: + break; + case 'c': + switch(s[11]) { + default: + break; + case 'i': + switch(s[12]) { + default: + break; + case 'e': + switch(s[13]) { + default: + break; + case 'n': + switch(s[14]) { + default: + break; + case 't': + switch(s[15]) { + default: + break; + case '1': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT1; + } + break; + case '2': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT2; + } + break; + case '3': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT3; + } + break; + case '4': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT4; + } + break; + case '5': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT5; + } + break; + case '6': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT6; + } + break; + case '7': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT7; + } + break; + case '8': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT8; + } + break; + case '9': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT9; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT; + } + } + } + } + } + } + } + } + } + } + } + break; + case 'd': + if (strcmp("erive-from-pq", s + 5) == 0) + return PIDX_PKEY_PARAM_RSA_DERIVE_FROM_PQ; + break; + case 'e': + switch(s[5]) { + default: + break; + case 'x': + switch(s[6]) { + default: + break; + case 'p': + switch(s[7]) { + default: + break; + case 'o': + switch(s[8]) { + default: + break; + case 'n': + switch(s[9]) { + default: + break; + case 'e': + switch(s[10]) { + default: + break; + case 'n': + switch(s[11]) { + default: + break; + case 't': + switch(s[12]) { + default: + break; + case '1': + switch(s[13]) { + default: + break; + case '0': + switch(s[14]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT10; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT1; + } + break; + case '2': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT2; + } + break; + case '3': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT3; + } + break; + case '4': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT4; + } + break; + case '5': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT5; + } + break; + case '6': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT6; + } + break; + case '7': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT7; + } + break; + case '8': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT8; + } + break; + case '9': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT9; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT; + } + } + } + } + } + } + } + } + break; + case 'f': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case 'c': + switch(s[7]) { + default: + break; + case 't': + switch(s[8]) { + default: + break; + case 'o': + switch(s[9]) { + default: + break; + case 'r': + switch(s[10]) { + default: + break; + case '1': + switch(s[11]) { + default: + break; + case '0': + switch(s[12]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR10; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR1; + } + break; + case '2': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR2; + } + break; + case '3': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR3; + } + break; + case '4': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR4; + } + break; + case '5': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR5; + } + break; + case '6': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR6; + } + break; + case '7': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR7; + } + break; + case '8': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR8; + } + break; + case '9': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR9; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR; + } + } + } + } + } + } + break; + case 'p': + switch(s[5]) { + default: + break; + case 'k': + if (strcmp("cs15-pad-disabled", s + 6) == 0) + return PIDX_PROV_PARAM_RSA_PKCS15_PAD_DISABLED; + break; + case 's': + if (strcmp("s-saltlen-check", s + 6) == 0) + return PIDX_SIGNATURE_PARAM_FIPS_RSA_PSS_SALTLEN_CHECK; + } + break; + case 's': + if (strcmp("ign-x931-pad-disabled", s + 5) == 0) + return PIDX_PROV_PARAM_RSA_SIGN_X931_PAD_DISABLED; + } + } + } + break; + case '\0': + return PIDX_KDF_PARAM_SCRYPT_R; + } + break; + case 's': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'f': + if (strcmp("eprime-generator", s + 3) == 0) + return PIDX_PKEY_PARAM_DH_GENERATOR; + break; + case 'l': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case 'l': + if (strcmp("en", s + 5) == 0) + return PIDX_SIGNATURE_PARAM_PSS_SALTLEN; + break; + case '\0': + return PIDX_MAC_PARAM_SALT; + } + } + break; + case 'v': + if (strcmp("e-parameters", s + 3) == 0) + return PIDX_ENCODER_PARAM_SAVE_PARAMETERS; + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'c': + switch(s[3]) { + default: + break; + case 'r': + if (strcmp("et", s + 4) == 0) + return PIDX_KDF_PARAM_SECRET; + break; + case 'u': + switch(s[4]) { + default: + break; + case 'r': + switch(s[5]) { + default: + break; + case 'i': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case 'y': + switch(s[8]) { + default: + break; + case '-': + switch(s[9]) { + default: + break; + case 'b': + if (strcmp("its", s + 10) == 0) + return PIDX_PKEY_PARAM_SECURITY_BITS; + break; + case 'c': + if (strcmp("hecks", s + 10) == 0) + return PIDX_PROV_PARAM_SECURITY_CHECKS; + } + } + } + } + } + } + } + break; + case 'e': + if (strcmp("d", s + 3) == 0) + return PIDX_PKEY_PARAM_SLH_DSA_SEED; + break; + case 'r': + if (strcmp("ial", s + 3) == 0) + return PIDX_STORE_PARAM_SERIAL; + break; + case 's': + if (strcmp("sion_id", s + 3) == 0) + return PIDX_KDF_PARAM_SSHKDF_SESSION_ID; + } + break; + case 'i': + switch(s[2]) { + default: + break; + case 'g': + switch(s[3]) { + default: + break; + case 'n': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'c': + if (strcmp("heck", s + 6) == 0) + return PIDX_PKEY_PARAM_FIPS_SIGN_CHECK; + break; + case 'x': + if (strcmp("931-pad-check", s + 6) == 0) + return PIDX_SIGNATURE_PARAM_FIPS_SIGN_X931_PAD_CHECK; + } + break; + case 'a': + switch(s[5]) { + default: + break; + case 't': + switch(s[6]) { + default: + break; + case 'u': + switch(s[7]) { + default: + break; + case 'r': + switch(s[8]) { + default: + break; + case 'e': + switch(s[9]) { + default: + break; + case '-': + if (strcmp("digest-check", s + 10) == 0) + return PIDX_PROV_PARAM_SIGNATURE_DIGEST_CHECK; + break; + case '\0': + return PIDX_SIGNATURE_PARAM_SIGNATURE; + } + } + } + } + } + } + } + break; + case 'z': + if (strcmp("e", s + 3) == 0) + return PIDX_MAC_PARAM_SIZE; + } + break; + case 'p': + if (strcmp("eed", s + 2) == 0) + return PIDX_CIPHER_PARAM_SPEED; + break; + case 's': + switch(s[2]) { + default: + break; + case 'h': + switch(s[3]) { + default: + break; + case 'k': + switch(s[4]) { + default: + break; + case 'd': + switch(s[5]) { + default: + break; + case 'f': + switch(s[6]) { + default: + break; + case '-': + switch(s[7]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 8) == 0) + return PIDX_PROV_PARAM_SSHKDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 8) == 0) + return PIDX_PROV_PARAM_SSHKDF_KEY_CHECK; + } + } + } + } + } + break; + case 'k': + switch(s[3]) { + default: + break; + case 'd': + switch(s[4]) { + default: + break; + case 'f': + switch(s[5]) { + default: + break; + case '-': + switch(s[6]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 7) == 0) + return PIDX_PROV_PARAM_SSKDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 7) == 0) + return PIDX_PROV_PARAM_SSKDF_KEY_CHECK; + } + } + } + } + break; + case 'l': + if (strcmp("3-ms", s + 3) == 0) + return PIDX_DIGEST_PARAM_SSL3_MS; + } + break; + case 't': + switch(s[2]) { + default: + break; + case '-': + switch(s[3]) { + default: + break; + case 'd': + if (strcmp("esc", s + 4) == 0) + return PIDX_PROV_PARAM_SELF_TEST_DESC; + break; + case 'p': + if (strcmp("hase", s + 4) == 0) + return PIDX_PROV_PARAM_SELF_TEST_PHASE; + break; + case 't': + if (strcmp("ype", s + 4) == 0) + return PIDX_PROV_PARAM_SELF_TEST_TYPE; + } + break; + case 'a': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case 'e': + switch(s[5]) { + default: + break; + case '\0': + return PIDX_RAND_PARAM_STATE; + } + break; + case 'u': + if (strcmp("s", s + 5) == 0) + return PIDX_PROV_PARAM_STATUS; + } + } + break; + case 'r': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case 'a': + if (strcmp("m_mac", s + 5) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_STREAM_MAC; + break; + case 'n': + if (strcmp("gth", s + 5) == 0) + return PIDX_RAND_PARAM_STRENGTH; + } + } + } + break; + case 'u': + switch(s[2]) { + default: + break; + case 'b': + if (strcmp("ject", s + 3) == 0) + return PIDX_STORE_PARAM_SUBJECT; + break; + case 'p': + switch(s[3]) { + default: + break; + case 'p': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'p': + switch(s[6]) { + default: + break; + case 'r': + if (strcmp("ivinfo", s + 7) == 0) + return PIDX_KDF_PARAM_X942_SUPP_PRIVINFO; + break; + case 'u': + if (strcmp("binfo", s + 7) == 0) + return PIDX_KDF_PARAM_X942_SUPP_PUBINFO; + } + } + } + } + } + } + break; + case 't': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'g': + switch(s[3]) { + default: + break; + case 'l': + if (strcmp("en", s + 4) == 0) + return PIDX_CIPHER_PARAM_AEAD_TAGLEN; + break; + case '\0': + return PIDX_CIPHER_PARAM_AEAD_TAG; + } + } + break; + case 'd': + if (strcmp("es-encrypt-disabled", s + 2) == 0) + return PIDX_PROV_PARAM_TDES_ENCRYPT_DISABLED; + break; + case 'e': + switch(s[2]) { + default: + break; + case 's': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case '-': + if (strcmp("entropy", s + 5) == 0) + return PIDX_SIGNATURE_PARAM_TEST_ENTROPY; + break; + case '_': + switch(s[5]) { + default: + break; + case 'e': + if (strcmp("ntropy", s + 6) == 0) + return PIDX_RAND_PARAM_TEST_ENTROPY; + break; + case 'n': + if (strcmp("once", s + 6) == 0) + return PIDX_RAND_PARAM_TEST_NONCE; + } + } + } + } + break; + case 'h': + if (strcmp("reads", s + 2) == 0) + return PIDX_KDF_PARAM_THREADS; + break; + case 'l': + switch(s[2]) { + default: + break; + case 's': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'c': + if (strcmp("lient-version", s + 5) == 0) + return PIDX_ASYM_CIPHER_PARAM_TLS_CLIENT_VERSION; + break; + case 'd': + if (strcmp("ata-size", s + 5) == 0) + return PIDX_MAC_PARAM_TLS_DATA_SIZE; + break; + case 'g': + switch(s[5]) { + default: + break; + case 'r': + switch(s[6]) { + default: + break; + case 'o': + switch(s[7]) { + default: + break; + case 'u': + switch(s[8]) { + default: + break; + case 'p': + switch(s[9]) { + default: + break; + case '-': + switch(s[10]) { + default: + break; + case 'a': + if (strcmp("lg", s + 11) == 0) + return PIDX_CAPABILITY_TLS_GROUP_ALG; + break; + case 'i': + switch(s[11]) { + default: + break; + case 'd': + switch(s[12]) { + default: + break; + case '\0': + return PIDX_CAPABILITY_TLS_GROUP_ID; + } + break; + case 's': + if (strcmp("-kem", s + 12) == 0) + return PIDX_CAPABILITY_TLS_GROUP_IS_KEM; + } + break; + case 'n': + switch(s[11]) { + default: + break; + case 'a': + switch(s[12]) { + default: + break; + case 'm': + switch(s[13]) { + default: + break; + case 'e': + switch(s[14]) { + default: + break; + case '-': + if (strcmp("internal", s + 15) == 0) + return PIDX_CAPABILITY_TLS_GROUP_NAME_INTERNAL; + break; + case '\0': + return PIDX_CAPABILITY_TLS_GROUP_NAME; + } + } + } + } + break; + case 's': + if (strcmp("ec-bits", s + 11) == 0) + return PIDX_CAPABILITY_TLS_GROUP_SECURITY_BITS; + } + } + } + } + } + } + break; + case 'm': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case 'c': + switch(s[7]) { + default: + break; + case '-': + if (strcmp("size", s + 8) == 0) + return PIDX_CIPHER_PARAM_TLS_MAC_SIZE; + break; + case '\0': + return PIDX_CIPHER_PARAM_TLS_MAC; + } + break; + case 'x': + switch(s[7]) { + default: + break; + case '-': + switch(s[8]) { + default: + break; + case 'd': + if (strcmp("tls", s + 9) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_MAX_DTLS; + break; + case 't': + if (strcmp("ls", s + 9) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_MAX_TLS; + } + } + } + break; + case 'i': + switch(s[6]) { + default: + break; + case 'n': + switch(s[7]) { + default: + break; + case '-': + switch(s[8]) { + default: + break; + case 'd': + if (strcmp("tls", s + 9) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_MIN_DTLS; + break; + case 't': + if (strcmp("ls", s + 9) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_MIN_TLS; + } + } + } + break; + case 'u': + if (strcmp("lti", s + 6) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK; + } + break; + case 'n': + if (strcmp("egotiated-version", s + 5) == 0) + return PIDX_ASYM_CIPHER_PARAM_TLS_NEGOTIATED_VERSION; + break; + case 's': + switch(s[5]) { + default: + break; + case 'i': + switch(s[6]) { + default: + break; + case 'g': + switch(s[7]) { + default: + break; + case 'a': + switch(s[8]) { + default: + break; + case 'l': + switch(s[9]) { + default: + break; + case 'g': + switch(s[10]) { + default: + break; + case '-': + switch(s[11]) { + default: + break; + case 'c': + if (strcmp("ode-point", s + 12) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_CODE_POINT; + break; + case 'h': + switch(s[12]) { + default: + break; + case 'a': + switch(s[13]) { + default: + break; + case 's': + switch(s[14]) { + default: + break; + case 'h': + switch(s[15]) { + default: + break; + case '-': + switch(s[16]) { + default: + break; + case 'n': + if (strcmp("ame", s + 17) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_HASH_NAME; + break; + case 'o': + if (strcmp("id", s + 17) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_HASH_OID; + } + } + } + } + } + break; + case 'i': + if (strcmp("ana-name", s + 12) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_IANA_NAME; + break; + case 'k': + switch(s[12]) { + default: + break; + case 'e': + switch(s[13]) { + default: + break; + case 'y': + switch(s[14]) { + default: + break; + case 't': + switch(s[15]) { + default: + break; + case 'y': + switch(s[16]) { + default: + break; + case 'p': + switch(s[17]) { + default: + break; + case 'e': + switch(s[18]) { + default: + break; + case '-': + if (strcmp("oid", s + 19) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_KEYTYPE_OID; + break; + case '\0': + return PIDX_CAPABILITY_TLS_SIGALG_KEYTYPE; + } + } + } + } + } + } + } + break; + case 'n': + if (strcmp("ame", s + 12) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_NAME; + break; + case 'o': + if (strcmp("id", s + 12) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_OID; + break; + case 's': + switch(s[12]) { + default: + break; + case 'e': + if (strcmp("c-bits", s + 13) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_SECURITY_BITS; + break; + case 'i': + switch(s[13]) { + default: + break; + case 'g': + switch(s[14]) { + default: + break; + case '-': + switch(s[15]) { + default: + break; + case 'n': + if (strcmp("ame", s + 16) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_SIG_NAME; + break; + case 'o': + if (strcmp("id", s + 16) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_SIG_OID; + } + } + } + } + } + } + } + } + } + } + } + break; + case 'v': + if (strcmp("ersion", s + 5) == 0) + return PIDX_CIPHER_PARAM_TLS_VERSION; + } + break; + case '1': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'p': + switch(s[6]) { + default: + break; + case 'r': + switch(s[7]) { + default: + break; + case 'f': + switch(s[8]) { + default: + break; + case '-': + switch(s[9]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 10) == 0) + return PIDX_PROV_PARAM_TLS1_PRF_DIGEST_CHECK; + break; + case 'e': + if (strcmp("ms-check", s + 10) == 0) + return PIDX_PROV_PARAM_TLS1_PRF_EMS_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 10) == 0) + return PIDX_PROV_PARAM_TLS1_PRF_KEY_CHECK; + } + } + } + } + } + break; + case '3': + switch(s[5]) { + default: + break; + case '-': + switch(s[6]) { + default: + break; + case 'k': + switch(s[7]) { + default: + break; + case 'd': + switch(s[8]) { + default: + break; + case 'f': + switch(s[9]) { + default: + break; + case '-': + switch(s[10]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 11) == 0) + return PIDX_PROV_PARAM_TLS13_KDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 11) == 0) + return PIDX_PROV_PARAM_TLS13_KDF_KEY_CHECK; + } + } + } + } + } + } + break; + case 'm': + switch(s[5]) { + default: + break; + case 'u': + switch(s[6]) { + default: + break; + case 'l': + switch(s[7]) { + default: + break; + case 't': + switch(s[8]) { + default: + break; + case 'i': + switch(s[9]) { + default: + break; + case '_': + switch(s[10]) { + default: + break; + case 'a': + switch(s[11]) { + default: + break; + case 'a': + switch(s[12]) { + default: + break; + case 'd': + switch(s[13]) { + default: + break; + case 'p': + if (strcmp("acklen", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD_PACKLEN; + break; + case '\0': + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD; + } + } + } + break; + case 'e': + switch(s[11]) { + default: + break; + case 'n': + switch(s[12]) { + default: + break; + case 'c': + switch(s[13]) { + default: + break; + case 'i': + if (strcmp("n", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_IN; + break; + case 'l': + if (strcmp("en", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_LEN; + break; + case '\0': + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC; + } + } + } + break; + case 'i': + if (strcmp("nterleave", s + 11) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_INTERLEAVE; + break; + case 'm': + switch(s[11]) { + default: + break; + case 'a': + switch(s[12]) { + default: + break; + case 'x': + switch(s[13]) { + default: + break; + case 'b': + if (strcmp("ufsz", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_BUFSIZE; + break; + case 's': + if (strcmp("ndfrag", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_SEND_FRAGMENT; + } + } + } + } + } + } + } + } + } + } + break; + case 'a': + switch(s[4]) { + default: + break; + case 'a': + switch(s[5]) { + default: + break; + case 'd': + switch(s[6]) { + default: + break; + case 'p': + if (strcmp("ad", s + 7) == 0) + return PIDX_CIPHER_PARAM_AEAD_TLS1_AAD_PAD; + break; + case '\0': + return PIDX_CIPHER_PARAM_AEAD_TLS1_AAD; + } + } + } + break; + case 'i': + switch(s[4]) { + default: + break; + case 'v': + switch(s[5]) { + default: + break; + case 'f': + if (strcmp("ixed", s + 6) == 0) + return PIDX_CIPHER_PARAM_AEAD_TLS1_IV_FIXED; + break; + case 'g': + if (strcmp("en", s + 6) == 0) + return PIDX_CIPHER_PARAM_AEAD_TLS1_GET_IV_GEN; + break; + case 'i': + if (strcmp("nv", s + 6) == 0) + return PIDX_CIPHER_PARAM_AEAD_TLS1_SET_IV_INV; + } + } + break; + case 't': + if (strcmp("ree", s + 4) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_TLSTREE; + } + } + break; + case 'p': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_TP_BASIS; + } + break; + case 'y': + if (strcmp("pe", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_TYPE; + } + break; + case 'u': + switch(s[1]) { + default: + break; + case 'k': + if (strcmp("m", s + 2) == 0) + return PIDX_KDF_PARAM_UKM; + break; + case 'p': + if (strcmp("dated-iv", s + 2) == 0) + return PIDX_CIPHER_PARAM_UPDATED_IV; + break; + case 's': + switch(s[2]) { + default: + break; + case 'e': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'b': + if (strcmp("its", s + 5) == 0) + return PIDX_CIPHER_PARAM_USE_BITS; + break; + case 'c': + if (strcmp("ofactor-flag", s + 5) == 0) + return PIDX_PKEY_PARAM_USE_COFACTOR_FLAG; + break; + case 'k': + if (strcmp("eybits", s + 5) == 0) + return PIDX_KDF_PARAM_X942_USE_KEYBITS; + break; + case 'l': + switch(s[5]) { + default: + break; + case '\0': + return PIDX_KDF_PARAM_KBKDF_USE_L; + } + break; + case 's': + if (strcmp("eparator", s + 5) == 0) + return PIDX_KDF_PARAM_KBKDF_USE_SEPARATOR; + } + break; + case '_': + switch(s[4]) { + default: + break; + case 'd': + if (strcmp("erivation_function", s + 5) == 0) + return PIDX_DRBG_PARAM_USE_DF; + break; + case 'e': + if (strcmp("tm", s + 5) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_USE_ETM; + } + } + } + } + break; + case 'v': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'l': + switch(s[3]) { + default: + break; + case 'i': + switch(s[4]) { + default: + break; + case 'd': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case 'e': + switch(s[8]) { + default: + break; + case '-': + switch(s[9]) { + default: + break; + case 'g': + switch(s[10]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_VALIDATE_G; + } + break; + case 'l': + if (strcmp("egacy", s + 10) == 0) + return PIDX_PKEY_PARAM_FFC_VALIDATE_LEGACY; + break; + case 'p': + if (strcmp("q", s + 10) == 0) + return PIDX_PKEY_PARAM_FFC_VALIDATE_PQ; + } + } + } + } + } + } + } + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'r': + switch(s[3]) { + default: + break; + case 'i': + if (strcmp("fy-message", s + 4) == 0) + return PIDX_SIGNATURE_PARAM_FIPS_VERIFY_MESSAGE; + break; + case 's': + if (strcmp("ion", s + 4) == 0) + return PIDX_PROV_PARAM_VERSION; + } + } + } + break; + case 'x': + switch(s[1]) { + default: + break; + case '9': + switch(s[2]) { + default: + break; + case '4': + if (strcmp("2kdf-key-check", s + 3) == 0) + return PIDX_PROV_PARAM_X942KDF_KEY_CHECK; + break; + case '6': + switch(s[3]) { + default: + break; + case '3': + switch(s[4]) { + default: + break; + case 'k': + switch(s[5]) { + default: + break; + case 'd': + switch(s[6]) { + default: + break; + case 'f': + switch(s[7]) { + default: + break; + case '-': + switch(s[8]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 9) == 0) + return PIDX_PROV_PARAM_X963KDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 9) == 0) + return PIDX_PROV_PARAM_X963KDF_KEY_CHECK; + } + } + } + } + } + } + } + break; + case 'c': + if (strcmp("ghash", s + 2) == 0) + return PIDX_KDF_PARAM_SSHKDF_XCGHASH; + break; + case 'o': + switch(s[2]) { + default: + break; + case 'f': + switch(s[3]) { + default: + break; + case 'l': + if (strcmp("en", s + 4) == 0) + return PIDX_DIGEST_PARAM_XOFLEN; + break; + case '\0': + return PIDX_MAC_PARAM_XOF; + } + } + break; + case 'p': + switch(s[2]) { + default: + break; + case '1': + switch(s[3]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XP1; + } + break; + case '2': + switch(s[3]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XP2; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XP; + } + break; + case 'q': + switch(s[2]) { + default: + break; + case '1': + switch(s[3]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XQ1; + } + break; + case '2': + switch(s[3]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XQ2; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XQ; + } + break; + case 't': + if (strcmp("s_standard", s + 2) == 0) + return PIDX_CIPHER_PARAM_XTS_STANDARD; + } + } + return -1; +} + +/* End of TRIE */ diff --git a/deps/openssl/config/archs/VC-WIN64A/asm/crypto/poly1305/poly1305-x86_64.asm b/deps/openssl/config/archs/VC-WIN64A/asm/crypto/poly1305/poly1305-x86_64.asm index fb3823608c949b..9b026665fe1e89 100644 --- a/deps/openssl/config/archs/VC-WIN64A/asm/crypto/poly1305/poly1305-x86_64.asm +++ b/deps/openssl/config/archs/VC-WIN64A/asm/crypto/poly1305/poly1305-x86_64.asm @@ -76,6 +76,7 @@ $L$SEH_begin_poly1305_blocks: +DB 243,15,30,250 $L$blocks: shr rdx,4 jz NEAR $L$no_data @@ -196,6 +197,7 @@ $L$SEH_begin_poly1305_emit: +DB 243,15,30,250 $L$emit: mov r8,QWORD[rdi] mov r9,QWORD[8+rdi] @@ -444,6 +446,7 @@ $L$SEH_begin_poly1305_blocks_avx: +DB 243,15,30,250 mov r8d,DWORD[20+rdi] cmp rdx,128 jae NEAR $L$blocks_avx @@ -1300,6 +1303,7 @@ $L$SEH_begin_poly1305_emit_avx: +DB 243,15,30,250 cmp DWORD[20+rdi],0 je NEAR $L$emit @@ -1368,6 +1372,7 @@ $L$SEH_begin_poly1305_blocks_avx2: +DB 243,15,30,250 mov r8d,DWORD[20+rdi] cmp rdx,128 jae NEAR $L$blocks_avx2 @@ -2040,6 +2045,7 @@ $L$SEH_begin_poly1305_blocks_avx512: +DB 243,15,30,250 $L$blocks_avx512: mov eax,15 kmovw k2,eax @@ -2600,6 +2606,7 @@ $L$do_avx512_epilogue: DB 0F3h,0C3h ;repret $L$SEH_end_poly1305_blocks_avx512: +section .rdata rdata align=64 ALIGN 64 $L$const: $L$mask24: @@ -2631,6 +2638,7 @@ $L$x_mask44: $L$x_mask42: DQ 0x3ffffffffff,0x3ffffffffff,0x3ffffffffff,0x3ffffffffff DQ 0x3ffffffffff,0x3ffffffffff,0x3ffffffffff,0x3ffffffffff +section .text DB 80,111,108,121,49,51,48,53,32,102,111,114,32,120,56,54 DB 95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32 DB 98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115 diff --git a/deps/openssl/config/archs/VC-WIN64A/asm/crypto/sha/keccak1600-x86_64.asm b/deps/openssl/config/archs/VC-WIN64A/asm/crypto/sha/keccak1600-x86_64.asm index fdab35d95c2f29..69c5eea5b16e80 100644 --- a/deps/openssl/config/archs/VC-WIN64A/asm/crypto/sha/keccak1600-x86_64.asm +++ b/deps/openssl/config/archs/VC-WIN64A/asm/crypto/sha/keccak1600-x86_64.asm @@ -436,6 +436,7 @@ $L$SEH_begin_SHA3_squeeze: mov rsi,rdx mov rdx,r8 mov rcx,r9 + mov r8,QWORD[40+rsp] @@ -447,10 +448,12 @@ $L$SEH_begin_SHA3_squeeze: shr rcx,3 - mov r8,rdi + mov r9,rdi mov r12,rsi mov r13,rdx mov r14,rcx + bt r8d,0 + jc NEAR $L$next_block jmp NEAR $L$oop_squeeze ALIGN 32 @@ -458,8 +461,8 @@ $L$oop_squeeze: cmp r13,8 jb NEAR $L$tail_squeeze - mov rax,QWORD[r8] - lea r8,[8+r8] + mov rax,QWORD[r9] + lea r9,[8+r9] mov QWORD[r12],rax lea r12,[8+r12] sub r13,8 @@ -467,14 +470,14 @@ $L$oop_squeeze: sub rcx,1 jnz NEAR $L$oop_squeeze - +$L$next_block: call KeccakF1600 - mov r8,rdi + mov r9,rdi mov rcx,r14 jmp NEAR $L$oop_squeeze $L$tail_squeeze: - mov rsi,r8 + mov rsi,r9 mov rdi,r12 mov rcx,r13 DB 0xf3,0xa4 @@ -491,6 +494,7 @@ $L$done_squeeze: DB 0F3h,0C3h ;repret $L$SEH_end_SHA3_squeeze: +section .rdata rdata align=256 ALIGN 256 DQ 0,0,0,0,0,0,0,0 diff --git a/deps/openssl/config/archs/VC-WIN64A/asm/crypto/sha/sha1-mb-x86_64.asm b/deps/openssl/config/archs/VC-WIN64A/asm/crypto/sha/sha1-mb-x86_64.asm index 49e6a41c9ce87e..266be0f957c718 100644 --- a/deps/openssl/config/archs/VC-WIN64A/asm/crypto/sha/sha1-mb-x86_64.asm +++ b/deps/openssl/config/archs/VC-WIN64A/asm/crypto/sha/sha1-mb-x86_64.asm @@ -7419,7 +7419,7 @@ $L$epilogue_avx2: DB 0F3h,0C3h ;repret $L$SEH_end_sha1_multi_block_avx2: - +section .rdata rdata align=256 ALIGN 256 DD 0x5a827999,0x5a827999,0x5a827999,0x5a827999 DD 0x5a827999,0x5a827999,0x5a827999,0x5a827999 @@ -7438,6 +7438,7 @@ DB 32,116,114,97,110,115,102,111,114,109,32,102,111,114,32,120 DB 56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77 DB 83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110 DB 115,115,108,46,111,114,103,62,0 +section .text EXTERN __imp_RtlVirtualUnwind ALIGN 16 diff --git a/deps/openssl/config/archs/VC-WIN64A/asm/crypto/sha/sha1-x86_64.asm b/deps/openssl/config/archs/VC-WIN64A/asm/crypto/sha/sha1-x86_64.asm index 1b60a7ce75cae0..37fa9a8ee866de 100644 --- a/deps/openssl/config/archs/VC-WIN64A/asm/crypto/sha/sha1-x86_64.asm +++ b/deps/openssl/config/archs/VC-WIN64A/asm/crypto/sha/sha1-x86_64.asm @@ -5545,6 +5545,7 @@ $L$epilogue_avx2: DB 0F3h,0C3h ;repret $L$SEH_end_sha1_block_data_order_avx2: +section .rdata rdata align=64 ALIGN 64 K_XX_XX: DD 0x5a827999,0x5a827999,0x5a827999,0x5a827999 @@ -5558,6 +5559,7 @@ K_XX_XX: DD 0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f DD 0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f DB 0xf,0xe,0xd,0xc,0xb,0xa,0x9,0x8,0x7,0x6,0x5,0x4,0x3,0x2,0x1,0x0 +section .text DB 83,72,65,49,32,98,108,111,99,107,32,116,114,97,110,115 DB 102,111,114,109,32,102,111,114,32,120,56,54,95,54,52,44 DB 32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60 diff --git a/deps/openssl/config/archs/VC-WIN64A/asm/crypto/sha/sha256-mb-x86_64.asm b/deps/openssl/config/archs/VC-WIN64A/asm/crypto/sha/sha256-mb-x86_64.asm index 201994b04ca970..bbdbac6b65e1c6 100644 --- a/deps/openssl/config/archs/VC-WIN64A/asm/crypto/sha/sha256-mb-x86_64.asm +++ b/deps/openssl/config/archs/VC-WIN64A/asm/crypto/sha/sha256-mb-x86_64.asm @@ -7964,6 +7964,7 @@ $L$epilogue_avx2: DB 0F3h,0C3h ;repret $L$SEH_end_sha256_multi_block_avx2: +section .rdata rdata align=256 ALIGN 256 K256: DD 1116352408,1116352408,1116352408,1116352408 @@ -8119,6 +8120,7 @@ DB 99,107,32,116,114,97,110,115,102,111,114,109,32,102,111,114 DB 32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71 DB 65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112 DB 101,110,115,115,108,46,111,114,103,62,0 +section .text EXTERN __imp_RtlVirtualUnwind ALIGN 16 diff --git a/deps/openssl/config/archs/VC-WIN64A/asm/crypto/sha/sha256-x86_64.asm b/deps/openssl/config/archs/VC-WIN64A/asm/crypto/sha/sha256-x86_64.asm index 9ff3cbb92b5df1..b4a869f67ba116 100644 --- a/deps/openssl/config/archs/VC-WIN64A/asm/crypto/sha/sha256-x86_64.asm +++ b/deps/openssl/config/archs/VC-WIN64A/asm/crypto/sha/sha256-x86_64.asm @@ -1744,6 +1744,7 @@ $L$epilogue: DB 0F3h,0C3h ;repret $L$SEH_end_sha256_block_data_order: +section .rdata rdata align=64 ALIGN 64 K256: @@ -1791,6 +1792,7 @@ DB 110,115,102,111,114,109,32,102,111,114,32,120,56,54,95,54 DB 52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121 DB 32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46 DB 111,114,103,62,0 +section .text ALIGN 64 sha256_block_data_order_shaext: diff --git a/deps/openssl/config/archs/VC-WIN64A/asm/crypto/sha/sha512-x86_64.asm b/deps/openssl/config/archs/VC-WIN64A/asm/crypto/sha/sha512-x86_64.asm index fc2269c8435930..30f1640b5e5d8d 100644 --- a/deps/openssl/config/archs/VC-WIN64A/asm/crypto/sha/sha512-x86_64.asm +++ b/deps/openssl/config/archs/VC-WIN64A/asm/crypto/sha/sha512-x86_64.asm @@ -1742,6 +1742,7 @@ $L$epilogue: DB 0F3h,0C3h ;repret $L$SEH_end_sha512_block_data_order: +section .rdata rdata align=64 ALIGN 64 K512: @@ -1833,6 +1834,7 @@ DB 110,115,102,111,114,109,32,102,111,114,32,120,56,54,95,54 DB 52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121 DB 32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46 DB 111,114,103,62,0 +section .text ALIGN 64 sha512_block_data_order_xop: diff --git a/deps/openssl/config/archs/VC-WIN64A/asm/crypto/whrlpool/wp-x86_64.asm b/deps/openssl/config/archs/VC-WIN64A/asm/crypto/whrlpool/wp-x86_64.asm index 76f7b07678a7ef..6f64ab15115884 100644 --- a/deps/openssl/config/archs/VC-WIN64A/asm/crypto/whrlpool/wp-x86_64.asm +++ b/deps/openssl/config/archs/VC-WIN64A/asm/crypto/whrlpool/wp-x86_64.asm @@ -624,6 +624,7 @@ $L$epilogue: $L$SEH_end_whirlpool_block: +section .rdata rdata align=64 ALIGN 64 $L$table: diff --git a/deps/openssl/config/archs/VC-WIN64A/asm/crypto/x86_64cpuid.asm b/deps/openssl/config/archs/VC-WIN64A/asm/crypto/x86_64cpuid.asm index d929065b02cbe9..1b15ab48f01cc6 100644 --- a/deps/openssl/config/archs/VC-WIN64A/asm/crypto/x86_64cpuid.asm +++ b/deps/openssl/config/archs/VC-WIN64A/asm/crypto/x86_64cpuid.asm @@ -2,14 +2,14 @@ default rel %define XMMWORD %define YMMWORD %define ZMMWORD + EXTERN OPENSSL_cpuid_setup section .CRT$XCU rdata align=8 DQ OPENSSL_cpuid_setup -common OPENSSL_ia32cap_P 16 - +common OPENSSL_ia32cap_P 40 section .text code align=64 @@ -175,6 +175,7 @@ $L$generic: mov eax,7 xor ecx,ecx cpuid + movd xmm1,eax bt r9d,26 jc NEAR $L$notknights and ebx,0xfff7ffff @@ -185,9 +186,31 @@ $L$notknights: jne NEAR $L$notskylakex and ebx,0xfffeffff + $L$notskylakex: mov DWORD[8+rdi],ebx mov DWORD[12+rdi],ecx + mov DWORD[16+rdi],edx + + movd eax,xmm1 + cmp eax,0x1 + jb NEAR $L$no_extended_info + mov eax,0x7 + mov ecx,0x1 + cpuid + mov DWORD[20+rdi],eax + mov DWORD[24+rdi],edx + mov DWORD[28+rdi],ebx + mov DWORD[32+rdi],ecx + + and edx,0x80000 + cmp edx,0x0 + je NEAR $L$no_extended_info + mov eax,0x24 + mov ecx,0x0 + cpuid + mov DWORD[36+rdi],ebx + $L$no_extended_info: bt r9d,27 @@ -206,6 +229,9 @@ DB 0x0f,0x01,0xd0 cmp eax,6 je NEAR $L$done $L$clear_avx: + and DWORD[20+rdi],0xff7fffff + + mov eax,0xefffe7ff and r9d,eax mov eax,0x3fdeffdf diff --git a/deps/openssl/config/archs/VC-WIN64A/asm/include/internal/param_names.h b/deps/openssl/config/archs/VC-WIN64A/asm/include/internal/param_names.h new file mode 100644 index 00000000000000..ec5bff6e31c126 --- /dev/null +++ b/deps/openssl/config/archs/VC-WIN64A/asm/include/internal/param_names.h @@ -0,0 +1,469 @@ +/* + * WARNING: do not edit! + * Generated by makefile from include/internal/param_names.h.in + * + * Copyright 2023 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + +int ossl_param_find_pidx(const char *s); + +/* Parameter name definitions - generated by util/perl/OpenSSL/paramnames.pm */ +#define NUM_PIDX 346 + +#define PIDX_ALG_PARAM_ALGORITHM_ID 0 +#define PIDX_ALG_PARAM_ALGORITHM_ID_PARAMS 1 +#define PIDX_ALG_PARAM_CIPHER 2 +#define PIDX_ALG_PARAM_DIGEST 3 +#define PIDX_ALG_PARAM_ENGINE 4 +#define PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR 5 +#define PIDX_ALG_PARAM_MAC 6 +#define PIDX_ALG_PARAM_PROPERTIES 7 +#define PIDX_ASYM_CIPHER_PARAM_DIGEST PIDX_PKEY_PARAM_DIGEST +#define PIDX_ASYM_CIPHER_PARAM_ENGINE PIDX_PKEY_PARAM_ENGINE +#define PIDX_ASYM_CIPHER_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_ASYM_CIPHER_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_ASYM_CIPHER_PARAM_FIPS_RSA_PKCS15_PAD_DISABLED PIDX_PROV_PARAM_RSA_PKCS15_PAD_DISABLED +#define PIDX_ASYM_CIPHER_PARAM_IMPLICIT_REJECTION 8 +#define PIDX_ASYM_CIPHER_PARAM_MGF1_DIGEST PIDX_PKEY_PARAM_MGF1_DIGEST +#define PIDX_ASYM_CIPHER_PARAM_MGF1_DIGEST_PROPS PIDX_PKEY_PARAM_MGF1_PROPERTIES +#define PIDX_ASYM_CIPHER_PARAM_OAEP_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_ASYM_CIPHER_PARAM_OAEP_DIGEST_PROPS 9 +#define PIDX_ASYM_CIPHER_PARAM_OAEP_LABEL 10 +#define PIDX_ASYM_CIPHER_PARAM_PAD_MODE PIDX_PKEY_PARAM_PAD_MODE +#define PIDX_ASYM_CIPHER_PARAM_PROPERTIES PIDX_PKEY_PARAM_PROPERTIES +#define PIDX_ASYM_CIPHER_PARAM_TLS_CLIENT_VERSION 11 +#define PIDX_ASYM_CIPHER_PARAM_TLS_NEGOTIATED_VERSION 12 +#define PIDX_CAPABILITY_TLS_GROUP_ALG 13 +#define PIDX_CAPABILITY_TLS_GROUP_ID 14 +#define PIDX_CAPABILITY_TLS_GROUP_IS_KEM 15 +#define PIDX_CAPABILITY_TLS_GROUP_MAX_DTLS 16 +#define PIDX_CAPABILITY_TLS_GROUP_MAX_TLS 17 +#define PIDX_CAPABILITY_TLS_GROUP_MIN_DTLS 18 +#define PIDX_CAPABILITY_TLS_GROUP_MIN_TLS 19 +#define PIDX_CAPABILITY_TLS_GROUP_NAME 20 +#define PIDX_CAPABILITY_TLS_GROUP_NAME_INTERNAL 21 +#define PIDX_CAPABILITY_TLS_GROUP_SECURITY_BITS 22 +#define PIDX_CAPABILITY_TLS_SIGALG_CODE_POINT 23 +#define PIDX_CAPABILITY_TLS_SIGALG_HASH_NAME 24 +#define PIDX_CAPABILITY_TLS_SIGALG_HASH_OID 25 +#define PIDX_CAPABILITY_TLS_SIGALG_IANA_NAME 26 +#define PIDX_CAPABILITY_TLS_SIGALG_KEYTYPE 27 +#define PIDX_CAPABILITY_TLS_SIGALG_KEYTYPE_OID 28 +#define PIDX_CAPABILITY_TLS_SIGALG_MAX_DTLS 16 +#define PIDX_CAPABILITY_TLS_SIGALG_MAX_TLS 17 +#define PIDX_CAPABILITY_TLS_SIGALG_MIN_DTLS 18 +#define PIDX_CAPABILITY_TLS_SIGALG_MIN_TLS 19 +#define PIDX_CAPABILITY_TLS_SIGALG_NAME 29 +#define PIDX_CAPABILITY_TLS_SIGALG_OID 30 +#define PIDX_CAPABILITY_TLS_SIGALG_SECURITY_BITS 31 +#define PIDX_CAPABILITY_TLS_SIGALG_SIG_NAME 32 +#define PIDX_CAPABILITY_TLS_SIGALG_SIG_OID 33 +#define PIDX_CIPHER_PARAM_AEAD 34 +#define PIDX_CIPHER_PARAM_AEAD_IVLEN PIDX_CIPHER_PARAM_IVLEN +#define PIDX_CIPHER_PARAM_AEAD_IV_GENERATED 35 +#define PIDX_CIPHER_PARAM_AEAD_MAC_KEY 36 +#define PIDX_CIPHER_PARAM_AEAD_TAG 37 +#define PIDX_CIPHER_PARAM_AEAD_TAGLEN 38 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_AAD 39 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_AAD_PAD 40 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_GET_IV_GEN 41 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_IV_FIXED 42 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_SET_IV_INV 43 +#define PIDX_CIPHER_PARAM_ALGORITHM_ID PIDX_ALG_PARAM_ALGORITHM_ID +#define PIDX_CIPHER_PARAM_ALGORITHM_ID_PARAMS PIDX_ALG_PARAM_ALGORITHM_ID_PARAMS +#define PIDX_CIPHER_PARAM_ALGORITHM_ID_PARAMS_OLD 44 +#define PIDX_CIPHER_PARAM_BLOCK_SIZE 45 +#define PIDX_CIPHER_PARAM_CTS 46 +#define PIDX_CIPHER_PARAM_CTS_MODE 47 +#define PIDX_CIPHER_PARAM_CUSTOM_IV 48 +#define PIDX_CIPHER_PARAM_DECRYPT_ONLY 49 +#define PIDX_CIPHER_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_CIPHER_PARAM_FIPS_ENCRYPT_CHECK 50 +#define PIDX_CIPHER_PARAM_HAS_RAND_KEY 51 +#define PIDX_CIPHER_PARAM_IV 52 +#define PIDX_CIPHER_PARAM_IVLEN 53 +#define PIDX_CIPHER_PARAM_KEYLEN 54 +#define PIDX_CIPHER_PARAM_MODE 55 +#define PIDX_CIPHER_PARAM_NUM 56 +#define PIDX_CIPHER_PARAM_PADDING 57 +#define PIDX_CIPHER_PARAM_PIPELINE_AEAD_TAG 58 +#define PIDX_CIPHER_PARAM_RANDOM_KEY 59 +#define PIDX_CIPHER_PARAM_RC2_KEYBITS 60 +#define PIDX_CIPHER_PARAM_ROUNDS 61 +#define PIDX_CIPHER_PARAM_SPEED 62 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK 63 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD 64 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD_PACKLEN 65 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC 66 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_IN 67 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_LEN 68 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_INTERLEAVE 69 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_BUFSIZE 70 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_SEND_FRAGMENT 71 +#define PIDX_CIPHER_PARAM_TLS_MAC 72 +#define PIDX_CIPHER_PARAM_TLS_MAC_SIZE 73 +#define PIDX_CIPHER_PARAM_TLS_VERSION 74 +#define PIDX_CIPHER_PARAM_UPDATED_IV 75 +#define PIDX_CIPHER_PARAM_USE_BITS 76 +#define PIDX_CIPHER_PARAM_XTS_STANDARD 77 +#define PIDX_DECODER_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_DIGEST_PARAM_ALGID_ABSENT 78 +#define PIDX_DIGEST_PARAM_BLOCK_SIZE 45 +#define PIDX_DIGEST_PARAM_MICALG 79 +#define PIDX_DIGEST_PARAM_PAD_TYPE 80 +#define PIDX_DIGEST_PARAM_SIZE 81 +#define PIDX_DIGEST_PARAM_SSL3_MS 82 +#define PIDX_DIGEST_PARAM_XOF 83 +#define PIDX_DIGEST_PARAM_XOFLEN 84 +#define PIDX_DRBG_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_DRBG_PARAM_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_DRBG_PARAM_ENTROPY_REQUIRED 85 +#define PIDX_DRBG_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_DRBG_PARAM_FIPS_DIGEST_CHECK PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK +#define PIDX_DRBG_PARAM_MAC PIDX_ALG_PARAM_MAC +#define PIDX_DRBG_PARAM_MAX_ADINLEN 86 +#define PIDX_DRBG_PARAM_MAX_ENTROPYLEN 87 +#define PIDX_DRBG_PARAM_MAX_LENGTH 88 +#define PIDX_DRBG_PARAM_MAX_NONCELEN 89 +#define PIDX_DRBG_PARAM_MAX_PERSLEN 90 +#define PIDX_DRBG_PARAM_MIN_ENTROPYLEN 91 +#define PIDX_DRBG_PARAM_MIN_LENGTH 92 +#define PIDX_DRBG_PARAM_MIN_NONCELEN 93 +#define PIDX_DRBG_PARAM_PREDICTION_RESISTANCE 94 +#define PIDX_DRBG_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_DRBG_PARAM_RANDOM_DATA 95 +#define PIDX_DRBG_PARAM_RESEED_COUNTER 96 +#define PIDX_DRBG_PARAM_RESEED_REQUESTS 97 +#define PIDX_DRBG_PARAM_RESEED_TIME 98 +#define PIDX_DRBG_PARAM_RESEED_TIME_INTERVAL 99 +#define PIDX_DRBG_PARAM_SIZE 81 +#define PIDX_DRBG_PARAM_USE_DF 100 +#define PIDX_ENCODER_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_ENCODER_PARAM_ENCRYPT_LEVEL 101 +#define PIDX_ENCODER_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_ENCODER_PARAM_SAVE_PARAMETERS 102 +#define PIDX_EXCHANGE_PARAM_EC_ECDH_COFACTOR_MODE 103 +#define PIDX_EXCHANGE_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_EXCHANGE_PARAM_FIPS_DIGEST_CHECK PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK +#define PIDX_EXCHANGE_PARAM_FIPS_ECDH_COFACTOR_CHECK PIDX_PROV_PARAM_ECDH_COFACTOR_CHECK +#define PIDX_EXCHANGE_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_EXCHANGE_PARAM_KDF_DIGEST 104 +#define PIDX_EXCHANGE_PARAM_KDF_DIGEST_PROPS 105 +#define PIDX_EXCHANGE_PARAM_KDF_OUTLEN 106 +#define PIDX_EXCHANGE_PARAM_KDF_TYPE 107 +#define PIDX_EXCHANGE_PARAM_KDF_UKM 108 +#define PIDX_EXCHANGE_PARAM_PAD 109 +#define PIDX_GEN_PARAM_ITERATION 110 +#define PIDX_GEN_PARAM_POTENTIAL 111 +#define PIDX_KDF_PARAM_ARGON2_AD 112 +#define PIDX_KDF_PARAM_ARGON2_LANES 113 +#define PIDX_KDF_PARAM_ARGON2_MEMCOST 114 +#define PIDX_KDF_PARAM_ARGON2_VERSION 115 +#define PIDX_KDF_PARAM_CEK_ALG 116 +#define PIDX_KDF_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_KDF_PARAM_CONSTANT 117 +#define PIDX_KDF_PARAM_DATA 118 +#define PIDX_KDF_PARAM_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_KDF_PARAM_EARLY_CLEAN 119 +#define PIDX_KDF_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_KDF_PARAM_FIPS_DIGEST_CHECK PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK +#define PIDX_KDF_PARAM_FIPS_EMS_CHECK 120 +#define PIDX_KDF_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_KDF_PARAM_HMACDRBG_ENTROPY 121 +#define PIDX_KDF_PARAM_HMACDRBG_NONCE 122 +#define PIDX_KDF_PARAM_INFO 123 +#define PIDX_KDF_PARAM_ITER 124 +#define PIDX_KDF_PARAM_KBKDF_R 125 +#define PIDX_KDF_PARAM_KBKDF_USE_L 126 +#define PIDX_KDF_PARAM_KBKDF_USE_SEPARATOR 127 +#define PIDX_KDF_PARAM_KEY 128 +#define PIDX_KDF_PARAM_LABEL 129 +#define PIDX_KDF_PARAM_MAC PIDX_ALG_PARAM_MAC +#define PIDX_KDF_PARAM_MAC_SIZE 130 +#define PIDX_KDF_PARAM_MODE 55 +#define PIDX_KDF_PARAM_PASSWORD 131 +#define PIDX_KDF_PARAM_PKCS12_ID 132 +#define PIDX_KDF_PARAM_PKCS5 133 +#define PIDX_KDF_PARAM_PREFIX 134 +#define PIDX_KDF_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_KDF_PARAM_SALT 135 +#define PIDX_KDF_PARAM_SCRYPT_MAXMEM 136 +#define PIDX_KDF_PARAM_SCRYPT_N 137 +#define PIDX_KDF_PARAM_SCRYPT_P 138 +#define PIDX_KDF_PARAM_SCRYPT_R 125 +#define PIDX_KDF_PARAM_SECRET 139 +#define PIDX_KDF_PARAM_SEED 140 +#define PIDX_KDF_PARAM_SIZE 81 +#define PIDX_KDF_PARAM_SSHKDF_SESSION_ID 141 +#define PIDX_KDF_PARAM_SSHKDF_TYPE 142 +#define PIDX_KDF_PARAM_SSHKDF_XCGHASH 143 +#define PIDX_KDF_PARAM_THREADS 144 +#define PIDX_KDF_PARAM_UKM 145 +#define PIDX_KDF_PARAM_X942_ACVPINFO 146 +#define PIDX_KDF_PARAM_X942_PARTYUINFO 147 +#define PIDX_KDF_PARAM_X942_PARTYVINFO 148 +#define PIDX_KDF_PARAM_X942_SUPP_PRIVINFO 149 +#define PIDX_KDF_PARAM_X942_SUPP_PUBINFO 150 +#define PIDX_KDF_PARAM_X942_USE_KEYBITS 151 +#define PIDX_KEM_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_KEM_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_KEM_PARAM_IKME 152 +#define PIDX_KEM_PARAM_OPERATION 153 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_BLOCK_PADDING 154 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_HS_PADDING 155 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_MAX_EARLY_DATA 156 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_MAX_FRAG_LEN 157 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_MODE 55 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_OPTIONS 158 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_READ_AHEAD 159 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_STREAM_MAC 160 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_TLSTREE 161 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_USE_ETM 162 +#define PIDX_LIBSSL_RECORD_LAYER_READ_BUFFER_LEN 163 +#define PIDX_MAC_PARAM_BLOCK_SIZE 164 +#define PIDX_MAC_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_MAC_PARAM_CUSTOM 165 +#define PIDX_MAC_PARAM_C_ROUNDS 166 +#define PIDX_MAC_PARAM_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_MAC_PARAM_DIGEST_NOINIT 167 +#define PIDX_MAC_PARAM_DIGEST_ONESHOT 168 +#define PIDX_MAC_PARAM_D_ROUNDS 169 +#define PIDX_MAC_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_MAC_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_MAC_PARAM_FIPS_NO_SHORT_MAC PIDX_PROV_PARAM_NO_SHORT_MAC +#define PIDX_MAC_PARAM_IV 52 +#define PIDX_MAC_PARAM_KEY 128 +#define PIDX_MAC_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_MAC_PARAM_SALT 135 +#define PIDX_MAC_PARAM_SIZE 81 +#define PIDX_MAC_PARAM_TLS_DATA_SIZE 170 +#define PIDX_MAC_PARAM_XOF 83 +#define PIDX_OBJECT_PARAM_DATA 118 +#define PIDX_OBJECT_PARAM_DATA_STRUCTURE 171 +#define PIDX_OBJECT_PARAM_DATA_TYPE 172 +#define PIDX_OBJECT_PARAM_DESC 173 +#define PIDX_OBJECT_PARAM_INPUT_TYPE 174 +#define PIDX_OBJECT_PARAM_REFERENCE 175 +#define PIDX_OBJECT_PARAM_TYPE 142 +#define PIDX_PASSPHRASE_PARAM_INFO 123 +#define PIDX_PKEY_PARAM_ALGORITHM_ID PIDX_ALG_PARAM_ALGORITHM_ID +#define PIDX_PKEY_PARAM_ALGORITHM_ID_PARAMS PIDX_ALG_PARAM_ALGORITHM_ID_PARAMS +#define PIDX_PKEY_PARAM_BITS 176 +#define PIDX_PKEY_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_PKEY_PARAM_DEFAULT_DIGEST 177 +#define PIDX_PKEY_PARAM_DHKEM_IKM 178 +#define PIDX_PKEY_PARAM_DH_GENERATOR 179 +#define PIDX_PKEY_PARAM_DH_PRIV_LEN 180 +#define PIDX_PKEY_PARAM_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_PKEY_PARAM_DIGEST_SIZE 181 +#define PIDX_PKEY_PARAM_DIST_ID 182 +#define PIDX_PKEY_PARAM_EC_A 183 +#define PIDX_PKEY_PARAM_EC_B 184 +#define PIDX_PKEY_PARAM_EC_CHAR2_M 185 +#define PIDX_PKEY_PARAM_EC_CHAR2_PP_K1 186 +#define PIDX_PKEY_PARAM_EC_CHAR2_PP_K2 187 +#define PIDX_PKEY_PARAM_EC_CHAR2_PP_K3 188 +#define PIDX_PKEY_PARAM_EC_CHAR2_TP_BASIS 189 +#define PIDX_PKEY_PARAM_EC_CHAR2_TYPE 190 +#define PIDX_PKEY_PARAM_EC_COFACTOR 191 +#define PIDX_PKEY_PARAM_EC_DECODED_FROM_EXPLICIT_PARAMS 192 +#define PIDX_PKEY_PARAM_EC_ENCODING 193 +#define PIDX_PKEY_PARAM_EC_FIELD_TYPE 194 +#define PIDX_PKEY_PARAM_EC_GENERATOR 195 +#define PIDX_PKEY_PARAM_EC_GROUP_CHECK_TYPE 196 +#define PIDX_PKEY_PARAM_EC_INCLUDE_PUBLIC 197 +#define PIDX_PKEY_PARAM_EC_ORDER 198 +#define PIDX_PKEY_PARAM_EC_P 138 +#define PIDX_PKEY_PARAM_EC_POINT_CONVERSION_FORMAT 199 +#define PIDX_PKEY_PARAM_EC_PUB_X 200 +#define PIDX_PKEY_PARAM_EC_PUB_Y 201 +#define PIDX_PKEY_PARAM_EC_SEED 140 +#define PIDX_PKEY_PARAM_ENCODED_PUBLIC_KEY 202 +#define PIDX_PKEY_PARAM_ENGINE PIDX_ALG_PARAM_ENGINE +#define PIDX_PKEY_PARAM_FFC_COFACTOR 203 +#define PIDX_PKEY_PARAM_FFC_DIGEST PIDX_PKEY_PARAM_DIGEST +#define PIDX_PKEY_PARAM_FFC_DIGEST_PROPS PIDX_PKEY_PARAM_PROPERTIES +#define PIDX_PKEY_PARAM_FFC_G 204 +#define PIDX_PKEY_PARAM_FFC_GINDEX 205 +#define PIDX_PKEY_PARAM_FFC_H 206 +#define PIDX_PKEY_PARAM_FFC_P 138 +#define PIDX_PKEY_PARAM_FFC_PBITS 207 +#define PIDX_PKEY_PARAM_FFC_PCOUNTER 208 +#define PIDX_PKEY_PARAM_FFC_Q 209 +#define PIDX_PKEY_PARAM_FFC_QBITS 210 +#define PIDX_PKEY_PARAM_FFC_SEED 140 +#define PIDX_PKEY_PARAM_FFC_TYPE 142 +#define PIDX_PKEY_PARAM_FFC_VALIDATE_G 211 +#define PIDX_PKEY_PARAM_FFC_VALIDATE_LEGACY 212 +#define PIDX_PKEY_PARAM_FFC_VALIDATE_PQ 213 +#define PIDX_PKEY_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK 214 +#define PIDX_PKEY_PARAM_FIPS_KEY_CHECK 215 +#define PIDX_PKEY_PARAM_FIPS_SIGN_CHECK 216 +#define PIDX_PKEY_PARAM_GROUP_NAME 217 +#define PIDX_PKEY_PARAM_IMPLICIT_REJECTION 8 +#define PIDX_PKEY_PARAM_MANDATORY_DIGEST 218 +#define PIDX_PKEY_PARAM_MASKGENFUNC 219 +#define PIDX_PKEY_PARAM_MAX_SIZE 220 +#define PIDX_PKEY_PARAM_MGF1_DIGEST 221 +#define PIDX_PKEY_PARAM_MGF1_PROPERTIES 222 +#define PIDX_PKEY_PARAM_ML_DSA_INPUT_FORMATS 223 +#define PIDX_PKEY_PARAM_ML_DSA_OUTPUT_FORMATS 224 +#define PIDX_PKEY_PARAM_ML_DSA_PREFER_SEED 225 +#define PIDX_PKEY_PARAM_ML_DSA_RETAIN_SEED 226 +#define PIDX_PKEY_PARAM_ML_DSA_SEED 140 +#define PIDX_PKEY_PARAM_ML_KEM_IMPORT_PCT_TYPE 227 +#define PIDX_PKEY_PARAM_ML_KEM_INPUT_FORMATS 228 +#define PIDX_PKEY_PARAM_ML_KEM_OUTPUT_FORMATS 229 +#define PIDX_PKEY_PARAM_ML_KEM_PREFER_SEED 230 +#define PIDX_PKEY_PARAM_ML_KEM_RETAIN_SEED 231 +#define PIDX_PKEY_PARAM_ML_KEM_SEED 140 +#define PIDX_PKEY_PARAM_PAD_MODE 232 +#define PIDX_PKEY_PARAM_PRIV_KEY 233 +#define PIDX_PKEY_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_PKEY_PARAM_PUB_KEY 234 +#define PIDX_PKEY_PARAM_RSA_BITS PIDX_PKEY_PARAM_BITS +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT 235 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT1 236 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT2 237 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT3 238 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT4 239 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT5 240 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT6 241 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT7 242 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT8 243 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT9 244 +#define PIDX_PKEY_PARAM_RSA_D 245 +#define PIDX_PKEY_PARAM_RSA_DERIVE_FROM_PQ 246 +#define PIDX_PKEY_PARAM_RSA_DIGEST PIDX_PKEY_PARAM_DIGEST +#define PIDX_PKEY_PARAM_RSA_DIGEST_PROPS PIDX_PKEY_PARAM_PROPERTIES +#define PIDX_PKEY_PARAM_RSA_E 247 +#define PIDX_PKEY_PARAM_RSA_EXPONENT 248 +#define PIDX_PKEY_PARAM_RSA_EXPONENT1 249 +#define PIDX_PKEY_PARAM_RSA_EXPONENT10 250 +#define PIDX_PKEY_PARAM_RSA_EXPONENT2 251 +#define PIDX_PKEY_PARAM_RSA_EXPONENT3 252 +#define PIDX_PKEY_PARAM_RSA_EXPONENT4 253 +#define PIDX_PKEY_PARAM_RSA_EXPONENT5 254 +#define PIDX_PKEY_PARAM_RSA_EXPONENT6 255 +#define PIDX_PKEY_PARAM_RSA_EXPONENT7 256 +#define PIDX_PKEY_PARAM_RSA_EXPONENT8 257 +#define PIDX_PKEY_PARAM_RSA_EXPONENT9 258 +#define PIDX_PKEY_PARAM_RSA_FACTOR 259 +#define PIDX_PKEY_PARAM_RSA_FACTOR1 260 +#define PIDX_PKEY_PARAM_RSA_FACTOR10 261 +#define PIDX_PKEY_PARAM_RSA_FACTOR2 262 +#define PIDX_PKEY_PARAM_RSA_FACTOR3 263 +#define PIDX_PKEY_PARAM_RSA_FACTOR4 264 +#define PIDX_PKEY_PARAM_RSA_FACTOR5 265 +#define PIDX_PKEY_PARAM_RSA_FACTOR6 266 +#define PIDX_PKEY_PARAM_RSA_FACTOR7 267 +#define PIDX_PKEY_PARAM_RSA_FACTOR8 268 +#define PIDX_PKEY_PARAM_RSA_FACTOR9 269 +#define PIDX_PKEY_PARAM_RSA_MASKGENFUNC PIDX_PKEY_PARAM_MASKGENFUNC +#define PIDX_PKEY_PARAM_RSA_MGF1_DIGEST PIDX_PKEY_PARAM_MGF1_DIGEST +#define PIDX_PKEY_PARAM_RSA_N 137 +#define PIDX_PKEY_PARAM_RSA_PRIMES 270 +#define PIDX_PKEY_PARAM_RSA_PSS_SALTLEN 271 +#define PIDX_PKEY_PARAM_RSA_TEST_P1 272 +#define PIDX_PKEY_PARAM_RSA_TEST_P2 273 +#define PIDX_PKEY_PARAM_RSA_TEST_Q1 274 +#define PIDX_PKEY_PARAM_RSA_TEST_Q2 275 +#define PIDX_PKEY_PARAM_RSA_TEST_XP 276 +#define PIDX_PKEY_PARAM_RSA_TEST_XP1 277 +#define PIDX_PKEY_PARAM_RSA_TEST_XP2 278 +#define PIDX_PKEY_PARAM_RSA_TEST_XQ 279 +#define PIDX_PKEY_PARAM_RSA_TEST_XQ1 280 +#define PIDX_PKEY_PARAM_RSA_TEST_XQ2 281 +#define PIDX_PKEY_PARAM_SECURITY_BITS 282 +#define PIDX_PKEY_PARAM_SLH_DSA_SEED 140 +#define PIDX_PKEY_PARAM_USE_COFACTOR_ECDH PIDX_PKEY_PARAM_USE_COFACTOR_FLAG +#define PIDX_PKEY_PARAM_USE_COFACTOR_FLAG 283 +#define PIDX_PROV_PARAM_BUILDINFO 284 +#define PIDX_PROV_PARAM_CORE_MODULE_FILENAME 285 +#define PIDX_PROV_PARAM_CORE_PROV_NAME 286 +#define PIDX_PROV_PARAM_CORE_VERSION 287 +#define PIDX_PROV_PARAM_DRBG_TRUNC_DIGEST 288 +#define PIDX_PROV_PARAM_DSA_SIGN_DISABLED 289 +#define PIDX_PROV_PARAM_ECDH_COFACTOR_CHECK 290 +#define PIDX_PROV_PARAM_HKDF_DIGEST_CHECK 291 +#define PIDX_PROV_PARAM_HKDF_KEY_CHECK 292 +#define PIDX_PROV_PARAM_HMAC_KEY_CHECK 293 +#define PIDX_PROV_PARAM_KBKDF_KEY_CHECK 294 +#define PIDX_PROV_PARAM_KMAC_KEY_CHECK 295 +#define PIDX_PROV_PARAM_NAME 296 +#define PIDX_PROV_PARAM_NO_SHORT_MAC 297 +#define PIDX_PROV_PARAM_PBKDF2_LOWER_BOUND_CHECK 298 +#define PIDX_PROV_PARAM_RSA_PKCS15_PAD_DISABLED 299 +#define PIDX_PROV_PARAM_RSA_PSS_SALTLEN_CHECK 300 +#define PIDX_PROV_PARAM_RSA_SIGN_X931_PAD_DISABLED 301 +#define PIDX_PROV_PARAM_SECURITY_CHECKS 302 +#define PIDX_PROV_PARAM_SELF_TEST_DESC 303 +#define PIDX_PROV_PARAM_SELF_TEST_PHASE 304 +#define PIDX_PROV_PARAM_SELF_TEST_TYPE 305 +#define PIDX_PROV_PARAM_SIGNATURE_DIGEST_CHECK 306 +#define PIDX_PROV_PARAM_SSHKDF_DIGEST_CHECK 307 +#define PIDX_PROV_PARAM_SSHKDF_KEY_CHECK 308 +#define PIDX_PROV_PARAM_SSKDF_DIGEST_CHECK 309 +#define PIDX_PROV_PARAM_SSKDF_KEY_CHECK 310 +#define PIDX_PROV_PARAM_STATUS 311 +#define PIDX_PROV_PARAM_TDES_ENCRYPT_DISABLED 312 +#define PIDX_PROV_PARAM_TLS13_KDF_DIGEST_CHECK 313 +#define PIDX_PROV_PARAM_TLS13_KDF_KEY_CHECK 314 +#define PIDX_PROV_PARAM_TLS1_PRF_DIGEST_CHECK 315 +#define PIDX_PROV_PARAM_TLS1_PRF_EMS_CHECK 316 +#define PIDX_PROV_PARAM_TLS1_PRF_KEY_CHECK 317 +#define PIDX_PROV_PARAM_VERSION 115 +#define PIDX_PROV_PARAM_X942KDF_KEY_CHECK 318 +#define PIDX_PROV_PARAM_X963KDF_DIGEST_CHECK 319 +#define PIDX_PROV_PARAM_X963KDF_KEY_CHECK 320 +#define PIDX_RAND_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_RAND_PARAM_GENERATE 321 +#define PIDX_RAND_PARAM_MAX_REQUEST 322 +#define PIDX_RAND_PARAM_STATE 323 +#define PIDX_RAND_PARAM_STRENGTH 324 +#define PIDX_RAND_PARAM_TEST_ENTROPY 325 +#define PIDX_RAND_PARAM_TEST_NONCE 326 +#define PIDX_SIGNATURE_PARAM_ADD_RANDOM 327 +#define PIDX_SIGNATURE_PARAM_ALGORITHM_ID PIDX_PKEY_PARAM_ALGORITHM_ID +#define PIDX_SIGNATURE_PARAM_ALGORITHM_ID_PARAMS PIDX_PKEY_PARAM_ALGORITHM_ID_PARAMS +#define PIDX_SIGNATURE_PARAM_CONTEXT_STRING 328 +#define PIDX_SIGNATURE_PARAM_DETERMINISTIC 329 +#define PIDX_SIGNATURE_PARAM_DIGEST PIDX_PKEY_PARAM_DIGEST +#define PIDX_SIGNATURE_PARAM_DIGEST_SIZE PIDX_PKEY_PARAM_DIGEST_SIZE +#define PIDX_SIGNATURE_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_SIGNATURE_PARAM_FIPS_DIGEST_CHECK PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK +#define PIDX_SIGNATURE_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_SIGNATURE_PARAM_FIPS_RSA_PSS_SALTLEN_CHECK 300 +#define PIDX_SIGNATURE_PARAM_FIPS_SIGN_CHECK PIDX_PKEY_PARAM_FIPS_SIGN_CHECK +#define PIDX_SIGNATURE_PARAM_FIPS_SIGN_X931_PAD_CHECK 330 +#define PIDX_SIGNATURE_PARAM_FIPS_VERIFY_MESSAGE 331 +#define PIDX_SIGNATURE_PARAM_INSTANCE 332 +#define PIDX_SIGNATURE_PARAM_KAT 333 +#define PIDX_SIGNATURE_PARAM_MESSAGE_ENCODING 334 +#define PIDX_SIGNATURE_PARAM_MGF1_DIGEST PIDX_PKEY_PARAM_MGF1_DIGEST +#define PIDX_SIGNATURE_PARAM_MGF1_PROPERTIES PIDX_PKEY_PARAM_MGF1_PROPERTIES +#define PIDX_SIGNATURE_PARAM_MU 335 +#define PIDX_SIGNATURE_PARAM_NONCE_TYPE 336 +#define PIDX_SIGNATURE_PARAM_PAD_MODE PIDX_PKEY_PARAM_PAD_MODE +#define PIDX_SIGNATURE_PARAM_PROPERTIES PIDX_PKEY_PARAM_PROPERTIES +#define PIDX_SIGNATURE_PARAM_PSS_SALTLEN 271 +#define PIDX_SIGNATURE_PARAM_SIGNATURE 337 +#define PIDX_SIGNATURE_PARAM_TEST_ENTROPY 338 +#define PIDX_SKEY_PARAM_KEY_LENGTH 339 +#define PIDX_SKEY_PARAM_RAW_BYTES 340 +#define PIDX_STORE_PARAM_ALIAS 341 +#define PIDX_STORE_PARAM_DIGEST 3 +#define PIDX_STORE_PARAM_EXPECT 342 +#define PIDX_STORE_PARAM_FINGERPRINT 343 +#define PIDX_STORE_PARAM_INPUT_TYPE 174 +#define PIDX_STORE_PARAM_ISSUER 296 +#define PIDX_STORE_PARAM_PROPERTIES 7 +#define PIDX_STORE_PARAM_SERIAL 344 +#define PIDX_STORE_PARAM_SUBJECT 345 diff --git a/deps/openssl/config/archs/VC-WIN64A/asm/include/openssl/asn1.h b/deps/openssl/config/archs/VC-WIN64A/asm/include/openssl/asn1.h index e28efbbb718e2b..5129217b2e0977 100644 --- a/deps/openssl/config/archs/VC-WIN64A/asm/include/openssl/asn1.h +++ b/deps/openssl/config/archs/VC-WIN64A/asm/include/openssl/asn1.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by makefile from include/openssl/asn1.h.in * - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -21,6 +21,9 @@ # define HEADER_ASN1_H # endif +# ifndef OPENSSL_NO_STDIO +# include +# endif # include # include # include @@ -50,14 +53,14 @@ extern "C" { # define V_ASN1_PRIMITIVE_TAG 0x1f # define V_ASN1_PRIMATIVE_TAG /*compat*/ V_ASN1_PRIMITIVE_TAG -# define V_ASN1_APP_CHOOSE -2/* let the recipient choose */ -# define V_ASN1_OTHER -3/* used in ASN1_TYPE */ -# define V_ASN1_ANY -4/* used in ASN1 template code */ +# define V_ASN1_APP_CHOOSE -2 /* let the recipient choose */ +# define V_ASN1_OTHER -3 /* used in ASN1_TYPE */ +# define V_ASN1_ANY -4 /* used in ASN1 template code */ # define V_ASN1_UNDEF -1 /* ASN.1 tag values */ # define V_ASN1_EOC 0 -# define V_ASN1_BOOLEAN 1 /**/ +# define V_ASN1_BOOLEAN 1 # define V_ASN1_INTEGER 2 # define V_ASN1_BIT_STRING 3 # define V_ASN1_OCTET_STRING 4 @@ -70,19 +73,19 @@ extern "C" { # define V_ASN1_UTF8STRING 12 # define V_ASN1_SEQUENCE 16 # define V_ASN1_SET 17 -# define V_ASN1_NUMERICSTRING 18 /**/ +# define V_ASN1_NUMERICSTRING 18 # define V_ASN1_PRINTABLESTRING 19 # define V_ASN1_T61STRING 20 -# define V_ASN1_TELETEXSTRING 20/* alias */ -# define V_ASN1_VIDEOTEXSTRING 21 /**/ +# define V_ASN1_TELETEXSTRING 20 /* alias */ +# define V_ASN1_VIDEOTEXSTRING 21 # define V_ASN1_IA5STRING 22 # define V_ASN1_UTCTIME 23 -# define V_ASN1_GENERALIZEDTIME 24 /**/ -# define V_ASN1_GRAPHICSTRING 25 /**/ -# define V_ASN1_ISO64STRING 26 /**/ -# define V_ASN1_VISIBLESTRING 26/* alias */ -# define V_ASN1_GENERALSTRING 27 /**/ -# define V_ASN1_UNIVERSALSTRING 28 /**/ +# define V_ASN1_GENERALIZEDTIME 24 +# define V_ASN1_GRAPHICSTRING 25 +# define V_ASN1_ISO64STRING 26 +# define V_ASN1_VISIBLESTRING 26 /* alias */ +# define V_ASN1_GENERALSTRING 27 +# define V_ASN1_UNIVERSALSTRING 28 # define V_ASN1_BMPSTRING 30 /* @@ -155,7 +158,7 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_ALGOR, X509_ALGOR, X509_ALGOR) -# define ASN1_STRING_FLAG_BITS_LEFT 0x08/* Set if 0x07 has bits left value */ +# define ASN1_STRING_FLAG_BITS_LEFT 0x08 /* Set if 0x07 has bits left value */ /* * This indicates that the ASN1_STRING is not a real value but just a place * holder for the location where indefinite length constructed data should be @@ -275,7 +278,7 @@ typedef struct ASN1_TLC_st ASN1_TLC; /* This is just an opaque pointer */ typedef struct ASN1_VALUE_st ASN1_VALUE; -/* Declare ASN1 functions: the implement macro in in asn1t.h */ +/* Declare ASN1 functions: the implement macro is in asn1t.h */ /* * The mysterious 'extern' that's passed to some macros is innocuous, @@ -368,6 +371,7 @@ typedef struct ASN1_VALUE_st ASN1_VALUE; typedef void *d2i_of_void(void **, const unsigned char **, long); typedef int i2d_of_void(const void *, unsigned char **); +typedef int OSSL_i2d_of_void_ctx(const void *, unsigned char **, void *vctx); /*- * The following macros and typedefs allow an ASN1_ITEM @@ -996,6 +1000,8 @@ int ASN1_TYPE_get_int_octetstring(const ASN1_TYPE *a, long *num, unsigned char *data, int max_len); void *ASN1_item_unpack(const ASN1_STRING *oct, const ASN1_ITEM *it); +void *ASN1_item_unpack_ex(const ASN1_STRING *oct, const ASN1_ITEM *it, + OSSL_LIB_CTX *libctx, const char *propq); ASN1_STRING *ASN1_item_pack(void *obj, const ASN1_ITEM *it, ASN1_OCTET_STRING **oct); diff --git a/deps/openssl/config/archs/VC-WIN64A/asm/include/openssl/bio.h b/deps/openssl/config/archs/VC-WIN64A/asm/include/openssl/bio.h index d094af47b73f1c..be24d086a54013 100644 --- a/deps/openssl/config/archs/VC-WIN64A/asm/include/openssl/bio.h +++ b/deps/openssl/config/archs/VC-WIN64A/asm/include/openssl/bio.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by makefile from include/openssl/bio.h.in * - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -67,8 +67,13 @@ extern "C" { # define BIO_TYPE_DGRAM_SCTP (24|BIO_TYPE_SOURCE_SINK|BIO_TYPE_DESCRIPTOR) # endif # define BIO_TYPE_CORE_TO_PROV (25|BIO_TYPE_SOURCE_SINK) +# define BIO_TYPE_DGRAM_PAIR (26|BIO_TYPE_SOURCE_SINK) +# define BIO_TYPE_DGRAM_MEM (27|BIO_TYPE_SOURCE_SINK) +/* Custom type starting index returned by BIO_get_new_index() */ #define BIO_TYPE_START 128 +/* Custom type maximum index that can be returned by BIO_get_new_index() */ +#define BIO_TYPE_MASK 0xFF /* * BIO_FILENAME_READ|BIO_CLOSE to open or close on free. @@ -171,6 +176,31 @@ extern "C" { # define BIO_CTRL_SET_INDENT 80 # define BIO_CTRL_GET_INDENT 81 +# define BIO_CTRL_DGRAM_GET_LOCAL_ADDR_CAP 82 +# define BIO_CTRL_DGRAM_GET_LOCAL_ADDR_ENABLE 83 +# define BIO_CTRL_DGRAM_SET_LOCAL_ADDR_ENABLE 84 +# define BIO_CTRL_DGRAM_GET_EFFECTIVE_CAPS 85 +# define BIO_CTRL_DGRAM_GET_CAPS 86 +# define BIO_CTRL_DGRAM_SET_CAPS 87 +# define BIO_CTRL_DGRAM_GET_NO_TRUNC 88 +# define BIO_CTRL_DGRAM_SET_NO_TRUNC 89 + +/* + * internal BIO: + * # define BIO_CTRL_SET_KTLS_TX_ZEROCOPY_SENDFILE 90 + */ + +# define BIO_CTRL_GET_RPOLL_DESCRIPTOR 91 +# define BIO_CTRL_GET_WPOLL_DESCRIPTOR 92 +# define BIO_CTRL_DGRAM_DETECT_PEER_ADDR 93 +# define BIO_CTRL_DGRAM_SET0_LOCAL_ADDR 94 + +# define BIO_DGRAM_CAP_NONE 0U +# define BIO_DGRAM_CAP_HANDLES_SRC_ADDR (1U << 0) +# define BIO_DGRAM_CAP_HANDLES_DST_ADDR (1U << 1) +# define BIO_DGRAM_CAP_PROVIDES_SRC_ADDR (1U << 2) +# define BIO_DGRAM_CAP_PROVIDES_DST_ADDR (1U << 3) + # ifndef OPENSSL_NO_KTLS # define BIO_get_ktls_send(b) \ (BIO_ctrl(b, BIO_CTRL_GET_KTLS_SEND, 0, NULL) > 0) @@ -208,7 +238,7 @@ extern "C" { # define BIO_FLAGS_NONCLEAR_RST 0x400 # define BIO_FLAGS_IN_EOF 0x800 -/* the BIO FLAGS values 0x1000 to 0x4000 are reserved for internal KTLS flags */ +/* the BIO FLAGS values 0x1000 to 0x8000 are reserved for internal KTLS flags */ typedef union bio_addr_st BIO_ADDR; typedef struct bio_addrinfo_st BIO_ADDRINFO; @@ -256,12 +286,14 @@ void BIO_clear_flags(BIO *b, int flags); # define BIO_RR_ACCEPT 0x03 /* These are passed by the BIO callback */ -# define BIO_CB_FREE 0x01 -# define BIO_CB_READ 0x02 -# define BIO_CB_WRITE 0x03 -# define BIO_CB_PUTS 0x04 -# define BIO_CB_GETS 0x05 -# define BIO_CB_CTRL 0x06 +# define BIO_CB_FREE 0x01 +# define BIO_CB_READ 0x02 +# define BIO_CB_WRITE 0x03 +# define BIO_CB_PUTS 0x04 +# define BIO_CB_GETS 0x05 +# define BIO_CB_CTRL 0x06 +# define BIO_CB_RECVMMSG 0x07 +# define BIO_CB_SENDMMSG 0x08 /* * The callback is called before and after the underling operation, The @@ -362,6 +394,36 @@ struct bio_dgram_sctp_prinfo { }; # endif +/* BIO_sendmmsg/BIO_recvmmsg-related definitions */ +typedef struct bio_msg_st { + void *data; + size_t data_len; + BIO_ADDR *peer, *local; + uint64_t flags; +} BIO_MSG; + +typedef struct bio_mmsg_cb_args_st { + BIO_MSG *msg; + size_t stride, num_msg; + uint64_t flags; + size_t *msgs_processed; +} BIO_MMSG_CB_ARGS; + +#define BIO_POLL_DESCRIPTOR_TYPE_NONE 0 +#define BIO_POLL_DESCRIPTOR_TYPE_SOCK_FD 1 +#define BIO_POLL_DESCRIPTOR_TYPE_SSL 2 +#define BIO_POLL_DESCRIPTOR_CUSTOM_START 8192 + +typedef struct bio_poll_descriptor_st { + uint32_t type; + union { + int fd; + void *custom; + uintptr_t custom_ui; + SSL *ssl; + } value; +} BIO_POLL_DESCRIPTOR; + /* * #define BIO_CONN_get_param_hostname BIO_ctrl */ @@ -428,10 +490,17 @@ struct bio_dgram_sctp_prinfo { # define BIO_C_SET_CONNECT_MODE 155 +# define BIO_C_SET_TFO 156 /* like BIO_C_SET_NBIO */ + +# define BIO_C_SET_SOCK_TYPE 157 +# define BIO_C_GET_SOCK_TYPE 158 +# define BIO_C_GET_DGRAM_BIO 159 + # define BIO_set_app_data(s,arg) BIO_set_ex_data(s,0,arg) # define BIO_get_app_data(s) BIO_get_ex_data(s,0) -# define BIO_set_nbio(b,n) BIO_ctrl(b,BIO_C_SET_NBIO,(n),NULL) +# define BIO_set_nbio(b,n) BIO_ctrl(b,BIO_C_SET_NBIO,(n),NULL) +# define BIO_set_tfo(b,n) BIO_ctrl(b,BIO_C_SET_TFO,(n),NULL) # ifndef OPENSSL_NO_SOCK /* IP families we support, for BIO_s_connect() and BIO_s_accept() */ @@ -452,7 +521,11 @@ struct bio_dgram_sctp_prinfo { # define BIO_get_conn_port(b) ((const char *)BIO_ptr_ctrl(b,BIO_C_GET_CONNECT,1)) # define BIO_get_conn_address(b) ((const BIO_ADDR *)BIO_ptr_ctrl(b,BIO_C_GET_CONNECT,2)) # define BIO_get_conn_ip_family(b) BIO_ctrl(b,BIO_C_GET_CONNECT,3,NULL) +# define BIO_get_conn_mode(b) BIO_ctrl(b,BIO_C_GET_CONNECT,4,NULL) # define BIO_set_conn_mode(b,n) BIO_ctrl(b,BIO_C_SET_CONNECT_MODE,(n),NULL) +# define BIO_set_sock_type(b,t) BIO_ctrl(b,BIO_C_SET_SOCK_TYPE,(t),NULL) +# define BIO_get_sock_type(b) BIO_ctrl(b,BIO_C_GET_SOCK_TYPE,0,NULL) +# define BIO_get0_dgram_bio(b, p) BIO_ctrl(b,BIO_C_GET_DGRAM_BIO,0,(void *)(BIO **)(p)) /* BIO_s_accept() */ # define BIO_set_accept_name(b,name) BIO_ctrl(b,BIO_C_SET_ACCEPT,0, \ @@ -469,6 +542,7 @@ struct bio_dgram_sctp_prinfo { (char *)(bio)) # define BIO_set_accept_ip_family(b,f) BIO_int_ctrl(b,BIO_C_SET_ACCEPT,4,f) # define BIO_get_accept_ip_family(b) BIO_ctrl(b,BIO_C_GET_ACCEPT,4,NULL) +# define BIO_set_tfo_accept(b,n) BIO_ctrl(b,BIO_C_SET_ACCEPT,5,(n)?(void *)"a":NULL) /* Aliases kept for backward compatibility */ # define BIO_BIND_NORMAL 0 @@ -596,8 +670,32 @@ int BIO_ctrl_reset_read_request(BIO *b); (int)BIO_ctrl(b, BIO_CTRL_DGRAM_GET_PEER, 0, (char *)(peer)) # define BIO_dgram_set_peer(b,peer) \ (int)BIO_ctrl(b, BIO_CTRL_DGRAM_SET_PEER, 0, (char *)(peer)) +# define BIO_dgram_detect_peer_addr(b,peer) \ + (int)BIO_ctrl(b, BIO_CTRL_DGRAM_DETECT_PEER_ADDR, 0, (char *)(peer)) # define BIO_dgram_get_mtu_overhead(b) \ (unsigned int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_MTU_OVERHEAD, 0, NULL) +# define BIO_dgram_get_local_addr_cap(b) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_LOCAL_ADDR_CAP, 0, NULL) +# define BIO_dgram_get_local_addr_enable(b, penable) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_LOCAL_ADDR_ENABLE, 0, (char *)(penable)) +# define BIO_dgram_set_local_addr_enable(b, enable) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET_LOCAL_ADDR_ENABLE, (enable), NULL) +# define BIO_dgram_get_effective_caps(b) \ + (uint32_t)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_EFFECTIVE_CAPS, 0, NULL) +# define BIO_dgram_get_caps(b) \ + (uint32_t)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_CAPS, 0, NULL) +# define BIO_dgram_set_caps(b, caps) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET_CAPS, (long)(caps), NULL) +# define BIO_dgram_get_no_trunc(b) \ + (unsigned int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_NO_TRUNC, 0, NULL) +# define BIO_dgram_set_no_trunc(b, enable) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET_NO_TRUNC, (enable), NULL) +# define BIO_dgram_get_mtu(b) \ + (unsigned int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_MTU, 0, NULL) +# define BIO_dgram_set_mtu(b, mtu) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET_MTU, (mtu), NULL) +# define BIO_dgram_set0_local_addr(b, addr) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET0_LOCAL_ADDR, 0, (addr)) /* ctrl macros for BIO_f_prefix */ # define BIO_set_prefix(b,p) BIO_ctrl((b), BIO_CTRL_SET_PREFIX, 0, (void *)(p)) @@ -640,10 +738,18 @@ void BIO_vfree(BIO *a); int BIO_up_ref(BIO *a); int BIO_read(BIO *b, void *data, int dlen); int BIO_read_ex(BIO *b, void *data, size_t dlen, size_t *readbytes); +__owur int BIO_recvmmsg(BIO *b, BIO_MSG *msg, + size_t stride, size_t num_msg, uint64_t flags, + size_t *msgs_processed); int BIO_gets(BIO *bp, char *buf, int size); int BIO_get_line(BIO *bio, char *buf, int size); int BIO_write(BIO *b, const void *data, int dlen); int BIO_write_ex(BIO *b, const void *data, size_t dlen, size_t *written); +__owur int BIO_sendmmsg(BIO *b, BIO_MSG *msg, + size_t stride, size_t num_msg, uint64_t flags, + size_t *msgs_processed); +__owur int BIO_get_rpoll_descriptor(BIO *b, BIO_POLL_DESCRIPTOR *desc); +__owur int BIO_get_wpoll_descriptor(BIO *b, BIO_POLL_DESCRIPTOR *desc); int BIO_puts(BIO *bp, const char *buf); int BIO_indent(BIO *b, int indent, int max); long BIO_ctrl(BIO *bp, int cmd, long larg, void *parg); @@ -667,6 +773,9 @@ int BIO_nwrite0(BIO *bio, char **buf); int BIO_nwrite(BIO *bio, char **buf, int num); const BIO_METHOD *BIO_s_mem(void); +# ifndef OPENSSL_NO_DGRAM +const BIO_METHOD *BIO_s_dgram_mem(void); +# endif const BIO_METHOD *BIO_s_secmem(void); BIO *BIO_new_mem_buf(const void *buf, int len); # ifndef OPENSSL_NO_SOCK @@ -686,6 +795,7 @@ const BIO_METHOD *BIO_f_nbio_test(void); const BIO_METHOD *BIO_f_prefix(void); const BIO_METHOD *BIO_s_core(void); # ifndef OPENSSL_NO_DGRAM +const BIO_METHOD *BIO_s_dgram_pair(void); const BIO_METHOD *BIO_s_datagram(void); int BIO_dgram_non_fatal_error(int error); BIO *BIO_new_dgram(int fd, int close_flag); @@ -704,6 +814,7 @@ int BIO_dgram_sctp_msg_waiting(BIO *b); # ifndef OPENSSL_NO_SOCK int BIO_sock_should_retry(int i); int BIO_sock_non_fatal_error(int error); +int BIO_err_is_non_fatal(unsigned int errcode); int BIO_socket_wait(int fd, int for_read, time_t max_time); # endif int BIO_wait(BIO *bio, time_t max_time, unsigned int nap_milliseconds); @@ -726,6 +837,8 @@ int BIO_hex_string(BIO *out, int indent, int width, const void *data, # ifndef OPENSSL_NO_SOCK BIO_ADDR *BIO_ADDR_new(void); +int BIO_ADDR_copy(BIO_ADDR *dst, const BIO_ADDR *src); +BIO_ADDR *BIO_ADDR_dup(const BIO_ADDR *ap); int BIO_ADDR_rawmake(BIO_ADDR *ap, int family, const void *where, size_t wherelen, unsigned short port); void BIO_ADDR_free(BIO_ADDR *); @@ -788,6 +901,7 @@ int BIO_sock_info(int sock, # define BIO_SOCK_KEEPALIVE 0x04 # define BIO_SOCK_NONBLOCK 0x08 # define BIO_SOCK_NODELAY 0x10 +# define BIO_SOCK_TFO 0x20 int BIO_socket(int domain, int socktype, int protocol, int options); int BIO_connect(int sock, const BIO_ADDR *addr, int options); @@ -805,6 +919,11 @@ BIO *BIO_new_fd(int fd, int close_flag); int BIO_new_bio_pair(BIO **bio1, size_t writebuf1, BIO **bio2, size_t writebuf2); +# ifndef OPENSSL_NO_DGRAM +int BIO_new_bio_dgram_pair(BIO **bio1, size_t writebuf1, + BIO **bio2, size_t writebuf2); +# endif + /* * If successful, returns 1 and in *bio1, *bio2 two BIO pair endpoints. * Otherwise returns 0 and sets *bio1 and *bio2 to NULL. Size 0 uses default @@ -849,38 +968,54 @@ ossl_bio__attr__((__format__(ossl_bio__printf__, 3, 0))); BIO_METHOD *BIO_meth_new(int type, const char *name); void BIO_meth_free(BIO_METHOD *biom); -int (*BIO_meth_get_write(const BIO_METHOD *biom)) (BIO *, const char *, int); -int (*BIO_meth_get_write_ex(const BIO_METHOD *biom)) (BIO *, const char *, size_t, - size_t *); int BIO_meth_set_write(BIO_METHOD *biom, int (*write) (BIO *, const char *, int)); int BIO_meth_set_write_ex(BIO_METHOD *biom, int (*bwrite) (BIO *, const char *, size_t, size_t *)); -int (*BIO_meth_get_read(const BIO_METHOD *biom)) (BIO *, char *, int); -int (*BIO_meth_get_read_ex(const BIO_METHOD *biom)) (BIO *, char *, size_t, size_t *); +int BIO_meth_set_sendmmsg(BIO_METHOD *biom, + int (*f) (BIO *, BIO_MSG *, size_t, size_t, + uint64_t, size_t *)); int BIO_meth_set_read(BIO_METHOD *biom, int (*read) (BIO *, char *, int)); int BIO_meth_set_read_ex(BIO_METHOD *biom, int (*bread) (BIO *, char *, size_t, size_t *)); -int (*BIO_meth_get_puts(const BIO_METHOD *biom)) (BIO *, const char *); +int BIO_meth_set_recvmmsg(BIO_METHOD *biom, + int (*f) (BIO *, BIO_MSG *, size_t, size_t, + uint64_t, size_t *)); int BIO_meth_set_puts(BIO_METHOD *biom, int (*puts) (BIO *, const char *)); -int (*BIO_meth_get_gets(const BIO_METHOD *biom)) (BIO *, char *, int); int BIO_meth_set_gets(BIO_METHOD *biom, int (*ossl_gets) (BIO *, char *, int)); -long (*BIO_meth_get_ctrl(const BIO_METHOD *biom)) (BIO *, int, long, void *); int BIO_meth_set_ctrl(BIO_METHOD *biom, long (*ctrl) (BIO *, int, long, void *)); -int (*BIO_meth_get_create(const BIO_METHOD *bion)) (BIO *); int BIO_meth_set_create(BIO_METHOD *biom, int (*create) (BIO *)); -int (*BIO_meth_get_destroy(const BIO_METHOD *biom)) (BIO *); int BIO_meth_set_destroy(BIO_METHOD *biom, int (*destroy) (BIO *)); -long (*BIO_meth_get_callback_ctrl(const BIO_METHOD *biom)) - (BIO *, int, BIO_info_cb *); int BIO_meth_set_callback_ctrl(BIO_METHOD *biom, long (*callback_ctrl) (BIO *, int, BIO_info_cb *)); - +# ifndef OPENSSL_NO_DEPRECATED_3_5 +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_write(const BIO_METHOD *biom)) (BIO *, const char *, + int); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_write_ex(const BIO_METHOD *biom)) (BIO *, const char *, + size_t, size_t *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_sendmmsg(const BIO_METHOD *biom))(BIO *, BIO_MSG *, + size_t, size_t, + uint64_t, size_t *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_read(const BIO_METHOD *biom)) (BIO *, char *, int); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_read_ex(const BIO_METHOD *biom)) (BIO *, char *, + size_t, size_t *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_recvmmsg(const BIO_METHOD *biom))(BIO *, BIO_MSG *, + size_t, size_t, + uint64_t, size_t *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_puts(const BIO_METHOD *biom)) (BIO *, const char *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_gets(const BIO_METHOD *biom)) (BIO *, char *, int); +OSSL_DEPRECATEDIN_3_5 long (*BIO_meth_get_ctrl(const BIO_METHOD *biom)) (BIO *, int, + long, void *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_create(const BIO_METHOD *bion)) (BIO *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_destroy(const BIO_METHOD *biom)) (BIO *); +OSSL_DEPRECATEDIN_3_5 long (*BIO_meth_get_callback_ctrl(const BIO_METHOD *biom)) (BIO *, int, + BIO_info_cb *); +# endif # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/VC-WIN64A/asm/include/openssl/cmp.h b/deps/openssl/config/archs/VC-WIN64A/asm/include/openssl/cmp.h index f0e768e01baacd..ded2dd2905f756 100644 --- a/deps/openssl/config/archs/VC-WIN64A/asm/include/openssl/cmp.h +++ b/deps/openssl/config/archs/VC-WIN64A/asm/include/openssl/cmp.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by makefile from include/openssl/cmp.h.in * - * Copyright 2007-2023 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2007-2024 The OpenSSL Project Authors. All Rights Reserved. * Copyright Nokia 2007-2019 * Copyright Siemens AG 2015-2019 * @@ -35,7 +35,9 @@ extern "C" { # endif -# define OSSL_CMP_PVNO 2 +# define OSSL_CMP_PVNO_2 2 +# define OSSL_CMP_PVNO_3 3 +# define OSSL_CMP_PVNO OSSL_CMP_PVNO_2 /* v2 is the default */ /*- * PKIFailureInfo ::= BIT STRING { @@ -137,7 +139,6 @@ extern "C" { # if OSSL_CMP_PKIFAILUREINFO_MAX_BIT_PATTERN > INT_MAX # error CMP_PKIFAILUREINFO_MAX bit pattern does not fit in type int # endif - typedef ASN1_BIT_STRING OSSL_CMP_PKIFAILUREINFO; # define OSSL_CMP_CTX_FAILINFO_badAlg (1 << 0) @@ -203,8 +204,8 @@ typedef ASN1_BIT_STRING OSSL_CMP_PKIFAILUREINFO; # define OSSL_CMP_PKISTATUS_revocationWarning 4 # define OSSL_CMP_PKISTATUS_revocationNotification 5 # define OSSL_CMP_PKISTATUS_keyUpdateWarning 6 - typedef ASN1_INTEGER OSSL_CMP_PKISTATUS; + DECLARE_ASN1_ITEM(OSSL_CMP_PKISTATUS) # define OSSL_CMP_CERTORENCCERT_CERTIFICATE 0 @@ -274,6 +275,46 @@ SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CMP_ITAV, OSSL_CMP_ITAV, OSSL_CMP_ITAV) #define sk_OSSL_CMP_ITAV_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_CMP_ITAV) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_CMP_ITAV_sk_type(sk), ossl_check_OSSL_CMP_ITAV_copyfunc_type(copyfunc), ossl_check_OSSL_CMP_ITAV_freefunc_type(freefunc))) #define sk_OSSL_CMP_ITAV_set_cmp_func(sk, cmp) ((sk_OSSL_CMP_ITAV_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CMP_ITAV_sk_type(sk), ossl_check_OSSL_CMP_ITAV_compfunc_type(cmp))) + +typedef struct ossl_cmp_crlstatus_st OSSL_CMP_CRLSTATUS; +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CMP_CRLSTATUS, OSSL_CMP_CRLSTATUS, OSSL_CMP_CRLSTATUS) +#define sk_OSSL_CMP_CRLSTATUS_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_value(sk, idx) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_value(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk), (idx))) +#define sk_OSSL_CMP_CRLSTATUS_new(cmp) ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_new(ossl_check_OSSL_CMP_CRLSTATUS_compfunc_type(cmp))) +#define sk_OSSL_CMP_CRLSTATUS_new_null() ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_new_null()) +#define sk_OSSL_CMP_CRLSTATUS_new_reserve(cmp, n) ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_CMP_CRLSTATUS_compfunc_type(cmp), (n))) +#define sk_OSSL_CMP_CRLSTATUS_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), (n)) +#define sk_OSSL_CMP_CRLSTATUS_free(sk) OPENSSL_sk_free(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_delete(sk, i) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_delete(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), (i))) +#define sk_OSSL_CMP_CRLSTATUS_delete_ptr(sk, ptr) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr))) +#define sk_OSSL_CMP_CRLSTATUS_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr)) +#define sk_OSSL_CMP_CRLSTATUS_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr)) +#define sk_OSSL_CMP_CRLSTATUS_pop(sk) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_pop(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk))) +#define sk_OSSL_CMP_CRLSTATUS_shift(sk) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_shift(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk))) +#define sk_OSSL_CMP_CRLSTATUS_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk),ossl_check_OSSL_CMP_CRLSTATUS_freefunc_type(freefunc)) +#define sk_OSSL_CMP_CRLSTATUS_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr), (idx)) +#define sk_OSSL_CMP_CRLSTATUS_set(sk, idx, ptr) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_set(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), (idx), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr))) +#define sk_OSSL_CMP_CRLSTATUS_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr)) +#define sk_OSSL_CMP_CRLSTATUS_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr)) +#define sk_OSSL_CMP_CRLSTATUS_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr), pnum) +#define sk_OSSL_CMP_CRLSTATUS_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_dup(sk) ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_dup(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk))) +#define sk_OSSL_CMP_CRLSTATUS_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_copyfunc_type(copyfunc), ossl_check_OSSL_CMP_CRLSTATUS_freefunc_type(freefunc))) +#define sk_OSSL_CMP_CRLSTATUS_set_cmp_func(sk, cmp) ((sk_OSSL_CMP_CRLSTATUS_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_compfunc_type(cmp))) + + +typedef OSSL_CRMF_ATTRIBUTETYPEANDVALUE OSSL_CMP_ATAV; +# define OSSL_CMP_ATAV_free OSSL_CRMF_ATTRIBUTETYPEANDVALUE_free +typedef STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) OSSL_CMP_ATAVS; +DECLARE_ASN1_FUNCTIONS(OSSL_CMP_ATAVS) +# define stack_st_OSSL_CMP_ATAV stack_st_OSSL_CRMF_ATTRIBUTETYPEANDVALUE +# define sk_OSSL_CMP_ATAV_num sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_num +# define sk_OSSL_CMP_ATAV_value sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_value +# define sk_OSSL_CMP_ATAV_push sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_push +# define sk_OSSL_CMP_ATAV_pop_free sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_pop_free + typedef struct ossl_cmp_revrepcontent_st OSSL_CMP_REVREPCONTENT; typedef struct ossl_cmp_pkisi_st OSSL_CMP_PKISI; DECLARE_ASN1_FUNCTIONS(OSSL_CMP_PKISI) @@ -375,21 +416,75 @@ void OSSL_CMP_ITAV_set0(OSSL_CMP_ITAV *itav, ASN1_OBJECT *type, ASN1_TYPE *value); ASN1_OBJECT *OSSL_CMP_ITAV_get0_type(const OSSL_CMP_ITAV *itav); ASN1_TYPE *OSSL_CMP_ITAV_get0_value(const OSSL_CMP_ITAV *itav); -int OSSL_CMP_ITAV_push0_stack_item(STACK_OF(OSSL_CMP_ITAV) **itav_sk_p, +int OSSL_CMP_ITAV_push0_stack_item(STACK_OF(OSSL_CMP_ITAV) **sk_p, OSSL_CMP_ITAV *itav); void OSSL_CMP_ITAV_free(OSSL_CMP_ITAV *itav); + +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new0_certProfile(STACK_OF(ASN1_UTF8STRING) + *certProfile); +int OSSL_CMP_ITAV_get0_certProfile(const OSSL_CMP_ITAV *itav, + STACK_OF(ASN1_UTF8STRING) **out); +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new_caCerts(const STACK_OF(X509) *caCerts); +int OSSL_CMP_ITAV_get0_caCerts(const OSSL_CMP_ITAV *itav, STACK_OF(X509) **out); + +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new_rootCaCert(const X509 *rootCaCert); +int OSSL_CMP_ITAV_get0_rootCaCert(const OSSL_CMP_ITAV *itav, X509 **out); +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new_rootCaKeyUpdate(const X509 *newWithNew, + const X509 *newWithOld, + const X509 *oldWithNew); +int OSSL_CMP_ITAV_get0_rootCaKeyUpdate(const OSSL_CMP_ITAV *itav, + X509 **newWithNew, + X509 **newWithOld, + X509 **oldWithNew); + +OSSL_CMP_CRLSTATUS *OSSL_CMP_CRLSTATUS_create(const X509_CRL *crl, + const X509 *cert, int only_DN); +OSSL_CMP_CRLSTATUS *OSSL_CMP_CRLSTATUS_new1(const DIST_POINT_NAME *dpn, + const GENERAL_NAMES *issuer, + const ASN1_TIME *thisUpdate); +int OSSL_CMP_CRLSTATUS_get0(const OSSL_CMP_CRLSTATUS *crlstatus, + DIST_POINT_NAME **dpn, GENERAL_NAMES **issuer, + ASN1_TIME **thisUpdate); +void OSSL_CMP_CRLSTATUS_free(OSSL_CMP_CRLSTATUS *crlstatus); +OSSL_CMP_ITAV +*OSSL_CMP_ITAV_new0_crlStatusList(STACK_OF(OSSL_CMP_CRLSTATUS) *crlStatusList); +int OSSL_CMP_ITAV_get0_crlStatusList(const OSSL_CMP_ITAV *itav, + STACK_OF(OSSL_CMP_CRLSTATUS) **out); +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new_crls(const X509_CRL *crls); +int OSSL_CMP_ITAV_get0_crls(const OSSL_CMP_ITAV *it, STACK_OF(X509_CRL) **out); +OSSL_CMP_ITAV +*OSSL_CMP_ITAV_new0_certReqTemplate(OSSL_CRMF_CERTTEMPLATE *certTemplate, + OSSL_CMP_ATAVS *keySpec); +int OSSL_CMP_ITAV_get1_certReqTemplate(const OSSL_CMP_ITAV *itav, + OSSL_CRMF_CERTTEMPLATE **certTemplate, + OSSL_CMP_ATAVS **keySpec); + +OSSL_CMP_ATAV *OSSL_CMP_ATAV_create(ASN1_OBJECT *type, ASN1_TYPE *value); +void OSSL_CMP_ATAV_set0(OSSL_CMP_ATAV *itav, ASN1_OBJECT *type, + ASN1_TYPE *value); +ASN1_OBJECT *OSSL_CMP_ATAV_get0_type(const OSSL_CMP_ATAV *itav); +ASN1_TYPE *OSSL_CMP_ATAV_get0_value(const OSSL_CMP_ATAV *itav); +OSSL_CMP_ATAV *OSSL_CMP_ATAV_new_algId(const X509_ALGOR *alg); +X509_ALGOR *OSSL_CMP_ATAV_get0_algId(const OSSL_CMP_ATAV *atav); +OSSL_CMP_ATAV *OSSL_CMP_ATAV_new_rsaKeyLen(int len); +int OSSL_CMP_ATAV_get_rsaKeyLen(const OSSL_CMP_ATAV *atav); +int OSSL_CMP_ATAV_push1(OSSL_CMP_ATAVS **sk_p, const OSSL_CMP_ATAV *atav); + void OSSL_CMP_MSG_free(OSSL_CMP_MSG *msg); /* from cmp_ctx.c */ OSSL_CMP_CTX *OSSL_CMP_CTX_new(OSSL_LIB_CTX *libctx, const char *propq); void OSSL_CMP_CTX_free(OSSL_CMP_CTX *ctx); int OSSL_CMP_CTX_reinit(OSSL_CMP_CTX *ctx); +OSSL_LIB_CTX *OSSL_CMP_CTX_get0_libctx(const OSSL_CMP_CTX *ctx); +const char *OSSL_CMP_CTX_get0_propq(const OSSL_CMP_CTX *ctx); /* CMP general options: */ # define OSSL_CMP_OPT_LOG_VERBOSITY 0 /* CMP transfer options: */ -# define OSSL_CMP_OPT_KEEP_ALIVE 10 -# define OSSL_CMP_OPT_MSG_TIMEOUT 11 +# define OSSL_CMP_OPT_KEEP_ALIVE 10 +# define OSSL_CMP_OPT_MSG_TIMEOUT 11 # define OSSL_CMP_OPT_TOTAL_TIMEOUT 12 +# define OSSL_CMP_OPT_USE_TLS 13 /* CMP request options: */ # define OSSL_CMP_OPT_VALIDITY_DAYS 20 # define OSSL_CMP_OPT_SUBJECTALTNAME_NODEFAULT 21 @@ -407,6 +502,7 @@ int OSSL_CMP_CTX_reinit(OSSL_CMP_CTX *ctx); # define OSSL_CMP_OPT_DIGEST_ALGNID 34 # define OSSL_CMP_OPT_IGNORE_KEYUSAGE 35 # define OSSL_CMP_OPT_PERMIT_TA_IN_EXTRACERTS_FOR_IR 36 +# define OSSL_CMP_OPT_NO_CACHE_EXTRACERTS 37 int OSSL_CMP_CTX_set_option(OSSL_CMP_CTX *ctx, int opt, int val); int OSSL_CMP_CTX_get_option(const OSSL_CMP_CTX *ctx, int opt); /* CMP-specific callback for logging and outputting the error queue: */ @@ -420,9 +516,11 @@ int OSSL_CMP_CTX_set1_server(OSSL_CMP_CTX *ctx, const char *address); int OSSL_CMP_CTX_set_serverPort(OSSL_CMP_CTX *ctx, int port); int OSSL_CMP_CTX_set1_proxy(OSSL_CMP_CTX *ctx, const char *name); int OSSL_CMP_CTX_set1_no_proxy(OSSL_CMP_CTX *ctx, const char *names); +# ifndef OPENSSL_NO_HTTP int OSSL_CMP_CTX_set_http_cb(OSSL_CMP_CTX *ctx, OSSL_HTTP_bio_cb_t cb); int OSSL_CMP_CTX_set_http_cb_arg(OSSL_CMP_CTX *ctx, void *arg); void *OSSL_CMP_CTX_get_http_cb_arg(const OSSL_CMP_CTX *ctx); +# endif typedef OSSL_CMP_MSG *(*OSSL_CMP_transfer_cb_t) (OSSL_CMP_CTX *ctx, const OSSL_CMP_MSG *req); int OSSL_CMP_CTX_set_transfer_cb(OSSL_CMP_CTX *ctx, OSSL_CMP_transfer_cb_t cb); @@ -432,7 +530,9 @@ void *OSSL_CMP_CTX_get_transfer_cb_arg(const OSSL_CMP_CTX *ctx); int OSSL_CMP_CTX_set1_srvCert(OSSL_CMP_CTX *ctx, X509 *cert); int OSSL_CMP_CTX_set1_expected_sender(OSSL_CMP_CTX *ctx, const X509_NAME *name); int OSSL_CMP_CTX_set0_trustedStore(OSSL_CMP_CTX *ctx, X509_STORE *store); +# define OSSL_CMP_CTX_set0_trusted OSSL_CMP_CTX_set0_trustedStore X509_STORE *OSSL_CMP_CTX_get0_trustedStore(const OSSL_CMP_CTX *ctx); +# define OSSL_CMP_CTX_get0_trusted OSSL_CMP_CTX_get0_trustedStore int OSSL_CMP_CTX_set1_untrusted(OSSL_CMP_CTX *ctx, STACK_OF(X509) *certs); STACK_OF(X509) *OSSL_CMP_CTX_get0_untrusted(const OSSL_CMP_CTX *ctx); /* client authentication: */ @@ -448,12 +548,15 @@ int OSSL_CMP_CTX_set1_secretValue(OSSL_CMP_CTX *ctx, int OSSL_CMP_CTX_set1_recipient(OSSL_CMP_CTX *ctx, const X509_NAME *name); int OSSL_CMP_CTX_push0_geninfo_ITAV(OSSL_CMP_CTX *ctx, OSSL_CMP_ITAV *itav); int OSSL_CMP_CTX_reset_geninfo_ITAVs(OSSL_CMP_CTX *ctx); +STACK_OF(OSSL_CMP_ITAV) + *OSSL_CMP_CTX_get0_geninfo_ITAVs(const OSSL_CMP_CTX *ctx); int OSSL_CMP_CTX_set1_extraCertsOut(OSSL_CMP_CTX *ctx, STACK_OF(X509) *extraCertsOut); /* certificate template: */ int OSSL_CMP_CTX_set0_newPkey(OSSL_CMP_CTX *ctx, int priv, EVP_PKEY *pkey); EVP_PKEY *OSSL_CMP_CTX_get0_newPkey(const OSSL_CMP_CTX *ctx, int priv); int OSSL_CMP_CTX_set1_issuer(OSSL_CMP_CTX *ctx, const X509_NAME *name); +int OSSL_CMP_CTX_set1_serialNumber(OSSL_CMP_CTX *ctx, const ASN1_INTEGER *sn); int OSSL_CMP_CTX_set1_subjectName(OSSL_CMP_CTX *ctx, const X509_NAME *name); int OSSL_CMP_CTX_push1_subjectAltName(OSSL_CMP_CTX *ctx, const GENERAL_NAME *name); @@ -477,6 +580,7 @@ int OSSL_CMP_CTX_get_status(const OSSL_CMP_CTX *ctx); OSSL_CMP_PKIFREETEXT *OSSL_CMP_CTX_get0_statusString(const OSSL_CMP_CTX *ctx); int OSSL_CMP_CTX_get_failInfoCode(const OSSL_CMP_CTX *ctx); # define OSSL_CMP_PKISI_BUFLEN 1024 +X509 *OSSL_CMP_CTX_get0_validatedSrvCert(const OSSL_CMP_CTX *ctx); X509 *OSSL_CMP_CTX_get0_newCert(const OSSL_CMP_CTX *ctx); STACK_OF(X509) *OSSL_CMP_CTX_get1_newChain(const OSSL_CMP_CTX *ctx); STACK_OF(X509) *OSSL_CMP_CTX_get1_caPubs(const OSSL_CMP_CTX *ctx); @@ -498,10 +602,13 @@ OSSL_CMP_STATUSINFO_new(int status, int fail_info, const char *text); ASN1_OCTET_STRING *OSSL_CMP_HDR_get0_transactionID(const OSSL_CMP_PKIHEADER *hdr); ASN1_OCTET_STRING *OSSL_CMP_HDR_get0_recipNonce(const OSSL_CMP_PKIHEADER *hdr); +STACK_OF(OSSL_CMP_ITAV) + *OSSL_CMP_HDR_get0_geninfo_ITAVs(const OSSL_CMP_PKIHEADER *hdr); /* from cmp_msg.c */ OSSL_CMP_PKIHEADER *OSSL_CMP_MSG_get0_header(const OSSL_CMP_MSG *msg); int OSSL_CMP_MSG_get_bodytype(const OSSL_CMP_MSG *msg); +X509_PUBKEY *OSSL_CMP_MSG_get0_certreq_publickey(const OSSL_CMP_MSG *msg); int OSSL_CMP_MSG_update_transactionID(OSSL_CMP_CTX *ctx, OSSL_CMP_MSG *msg); int OSSL_CMP_MSG_update_recipNonce(OSSL_CMP_CTX *ctx, OSSL_CMP_MSG *msg); OSSL_CRMF_MSG *OSSL_CMP_CTX_setup_CRM(OSSL_CMP_CTX *ctx, int for_KUR, int rid); @@ -517,8 +624,10 @@ int OSSL_CMP_validate_cert_path(const OSSL_CMP_CTX *ctx, X509_STORE *trusted_store, X509 *cert); /* from cmp_http.c */ +# ifndef OPENSSL_NO_HTTP OSSL_CMP_MSG *OSSL_CMP_MSG_http_perform(OSSL_CMP_CTX *ctx, const OSSL_CMP_MSG *req); +# endif /* from cmp_server.c */ typedef struct ossl_cmp_srv_ctx_st OSSL_CMP_SRV_CTX; @@ -561,6 +670,13 @@ int OSSL_CMP_SRV_CTX_init(OSSL_CMP_SRV_CTX *srv_ctx, void *custom_ctx, OSSL_CMP_SRV_error_cb_t process_error, OSSL_CMP_SRV_certConf_cb_t process_certConf, OSSL_CMP_SRV_pollReq_cb_t process_pollReq); +typedef int (*OSSL_CMP_SRV_delayed_delivery_cb_t)(OSSL_CMP_SRV_CTX *srv_ctx, + const OSSL_CMP_MSG *req); +typedef int (*OSSL_CMP_SRV_clean_transaction_cb_t)(OSSL_CMP_SRV_CTX *srv_ctx, + const ASN1_OCTET_STRING *id); +int OSSL_CMP_SRV_CTX_init_trans(OSSL_CMP_SRV_CTX *srv_ctx, + OSSL_CMP_SRV_delayed_delivery_cb_t delay, + OSSL_CMP_SRV_clean_transaction_cb_t clean); OSSL_CMP_CTX *OSSL_CMP_SRV_CTX_get0_cmp_ctx(const OSSL_CMP_SRV_CTX *srv_ctx); void *OSSL_CMP_SRV_CTX_get0_custom_ctx(const OSSL_CMP_SRV_CTX *srv_ctx); int OSSL_CMP_SRV_CTX_set_send_unprotected_errors(OSSL_CMP_SRV_CTX *srv_ctx, @@ -577,6 +693,8 @@ X509 *OSSL_CMP_exec_certreq(OSSL_CMP_CTX *ctx, int req_type, # define OSSL_CMP_CR 2 # define OSSL_CMP_P10CR 4 # define OSSL_CMP_KUR 7 +# define OSSL_CMP_GENM 21 +# define OSSL_CMP_ERROR 23 # define OSSL_CMP_exec_IR_ses(ctx) \ OSSL_CMP_exec_certreq(ctx, OSSL_CMP_IR, NULL) # define OSSL_CMP_exec_CR_ses(ctx) \ @@ -590,6 +708,18 @@ int OSSL_CMP_try_certreq(OSSL_CMP_CTX *ctx, int req_type, int OSSL_CMP_exec_RR_ses(OSSL_CMP_CTX *ctx); STACK_OF(OSSL_CMP_ITAV) *OSSL_CMP_exec_GENM_ses(OSSL_CMP_CTX *ctx); +/* from cmp_genm.c */ +int OSSL_CMP_get1_caCerts(OSSL_CMP_CTX *ctx, STACK_OF(X509) **out); +int OSSL_CMP_get1_rootCaKeyUpdate(OSSL_CMP_CTX *ctx, + const X509 *oldWithOld, X509 **newWithNew, + X509 **newWithOld, X509 **oldWithNew); +int OSSL_CMP_get1_crlUpdate(OSSL_CMP_CTX *ctx, const X509 *crlcert, + const X509_CRL *last_crl, + X509_CRL **crl); +int OSSL_CMP_get1_certReqTemplate(OSSL_CMP_CTX *ctx, + OSSL_CRMF_CERTTEMPLATE **certTemplate, + OSSL_CMP_ATAVS **keySpec); + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/VC-WIN64A/asm/include/openssl/cms.h b/deps/openssl/config/archs/VC-WIN64A/asm/include/openssl/cms.h index 03ce6ab07aac44..1a51921256fea4 100644 --- a/deps/openssl/config/archs/VC-WIN64A/asm/include/openssl/cms.h +++ b/deps/openssl/config/archs/VC-WIN64A/asm/include/openssl/cms.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by makefile from include/openssl/cms.h.in * - * Copyright 2008-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2008-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -31,8 +31,10 @@ extern "C" { # endif +typedef struct CMS_EnvelopedData_st CMS_EnvelopedData; typedef struct CMS_ContentInfo_st CMS_ContentInfo; typedef struct CMS_SignerInfo_st CMS_SignerInfo; +typedef struct CMS_SignedData_st CMS_SignedData; typedef struct CMS_CertificateChoices CMS_CertificateChoices; typedef struct CMS_RevocationInfoChoice_st CMS_RevocationInfoChoice; typedef struct CMS_RecipientInfo_st CMS_RecipientInfo; @@ -147,10 +149,14 @@ SKM_DEFINE_STACK_OF_INTERNAL(CMS_RevocationInfoChoice, CMS_RevocationInfoChoice, #define sk_CMS_RevocationInfoChoice_set_cmp_func(sk, cmp) ((sk_CMS_RevocationInfoChoice_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_CMS_RevocationInfoChoice_sk_type(sk), ossl_check_CMS_RevocationInfoChoice_compfunc_type(cmp))) +DECLARE_ASN1_ITEM(CMS_EnvelopedData) +DECLARE_ASN1_ALLOC_FUNCTIONS(CMS_SignedData) DECLARE_ASN1_FUNCTIONS(CMS_ContentInfo) DECLARE_ASN1_FUNCTIONS(CMS_ReceiptRequest) DECLARE_ASN1_PRINT_FUNCTION(CMS_ContentInfo) +DECLARE_ASN1_DUP_FUNCTION(CMS_EnvelopedData) + CMS_ContentInfo *CMS_ContentInfo_new_ex(OSSL_LIB_CTX *libctx, const char *propq); # define CMS_SIGNERINFO_ISSUER_SERIAL 0 @@ -190,6 +196,7 @@ CMS_ContentInfo *CMS_ContentInfo_new_ex(OSSL_LIB_CTX *libctx, const char *propq) # define CMS_ASCIICRLF 0x80000 # define CMS_CADES 0x100000 # define CMS_USE_ORIGINATOR_KEYID 0x200000 +# define CMS_NO_SIGNING_TIME 0x400000 const ASN1_OBJECT *CMS_get0_type(const CMS_ContentInfo *cms); @@ -217,13 +224,16 @@ int SMIME_write_CMS(BIO *bio, CMS_ContentInfo *cms, BIO *data, int flags); int CMS_final(CMS_ContentInfo *cms, BIO *data, BIO *dcont, unsigned int flags); +int CMS_final_digest(CMS_ContentInfo *cms, + const unsigned char *md, unsigned int mdlen, BIO *dcont, + unsigned int flags); CMS_ContentInfo *CMS_sign(X509 *signcert, EVP_PKEY *pkey, STACK_OF(X509) *certs, BIO *data, unsigned int flags); CMS_ContentInfo *CMS_sign_ex(X509 *signcert, EVP_PKEY *pkey, STACK_OF(X509) *certs, BIO *data, - unsigned int flags, OSSL_LIB_CTX *ctx, + unsigned int flags, OSSL_LIB_CTX *libctx, const char *propq); CMS_ContentInfo *CMS_sign_receipt(CMS_SignerInfo *si, @@ -233,27 +243,26 @@ CMS_ContentInfo *CMS_sign_receipt(CMS_SignerInfo *si, int CMS_data(CMS_ContentInfo *cms, BIO *out, unsigned int flags); CMS_ContentInfo *CMS_data_create(BIO *in, unsigned int flags); CMS_ContentInfo *CMS_data_create_ex(BIO *in, unsigned int flags, - OSSL_LIB_CTX *ctx, const char *propq); + OSSL_LIB_CTX *libctx, const char *propq); int CMS_digest_verify(CMS_ContentInfo *cms, BIO *dcont, BIO *out, unsigned int flags); CMS_ContentInfo *CMS_digest_create(BIO *in, const EVP_MD *md, unsigned int flags); CMS_ContentInfo *CMS_digest_create_ex(BIO *in, const EVP_MD *md, - unsigned int flags, OSSL_LIB_CTX *ctx, + unsigned int flags, OSSL_LIB_CTX *libctx, const char *propq); int CMS_EncryptedData_decrypt(CMS_ContentInfo *cms, const unsigned char *key, size_t keylen, BIO *dcont, BIO *out, unsigned int flags); - CMS_ContentInfo *CMS_EncryptedData_encrypt(BIO *in, const EVP_CIPHER *cipher, const unsigned char *key, size_t keylen, unsigned int flags); CMS_ContentInfo *CMS_EncryptedData_encrypt_ex(BIO *in, const EVP_CIPHER *cipher, const unsigned char *key, size_t keylen, unsigned int flags, - OSSL_LIB_CTX *ctx, + OSSL_LIB_CTX *libctx, const char *propq); int CMS_EncryptedData_set1_key(CMS_ContentInfo *cms, const EVP_CIPHER *ciph, @@ -272,7 +281,7 @@ CMS_ContentInfo *CMS_encrypt(STACK_OF(X509) *certs, BIO *in, const EVP_CIPHER *cipher, unsigned int flags); CMS_ContentInfo *CMS_encrypt_ex(STACK_OF(X509) *certs, BIO *in, const EVP_CIPHER *cipher, unsigned int flags, - OSSL_LIB_CTX *ctx, const char *propq); + OSSL_LIB_CTX *libctx, const char *propq); int CMS_decrypt(CMS_ContentInfo *cms, EVP_PKEY *pkey, X509 *cert, BIO *dcont, BIO *out, unsigned int flags); @@ -291,12 +300,16 @@ int CMS_RecipientInfo_type(CMS_RecipientInfo *ri); EVP_PKEY_CTX *CMS_RecipientInfo_get0_pkey_ctx(CMS_RecipientInfo *ri); CMS_ContentInfo *CMS_AuthEnvelopedData_create(const EVP_CIPHER *cipher); CMS_ContentInfo * -CMS_AuthEnvelopedData_create_ex(const EVP_CIPHER *cipher, OSSL_LIB_CTX *ctx, +CMS_AuthEnvelopedData_create_ex(const EVP_CIPHER *cipher, OSSL_LIB_CTX *libctx, const char *propq); CMS_ContentInfo *CMS_EnvelopedData_create(const EVP_CIPHER *cipher); CMS_ContentInfo *CMS_EnvelopedData_create_ex(const EVP_CIPHER *cipher, - OSSL_LIB_CTX *ctx, + OSSL_LIB_CTX *libctx, const char *propq); +BIO *CMS_EnvelopedData_decrypt(CMS_EnvelopedData *env, BIO *detached_data, + EVP_PKEY *pkey, X509 *cert, + ASN1_OCTET_STRING *secret, unsigned int flags, + OSSL_LIB_CTX *libctx, const char *propq); CMS_RecipientInfo *CMS_add1_recipient_cert(CMS_ContentInfo *cms, X509 *recip, unsigned int flags); @@ -385,6 +398,11 @@ ASN1_OCTET_STRING *CMS_SignerInfo_get0_signature(CMS_SignerInfo *si); int CMS_SignerInfo_sign(CMS_SignerInfo *si); int CMS_SignerInfo_verify(CMS_SignerInfo *si); int CMS_SignerInfo_verify_content(CMS_SignerInfo *si, BIO *chain); +BIO *CMS_SignedData_verify(CMS_SignedData *sd, BIO *detached_data, + STACK_OF(X509) *scerts, X509_STORE *store, + STACK_OF(X509) *extra, STACK_OF(X509_CRL) *crls, + unsigned int flags, + OSSL_LIB_CTX *libctx, const char *propq); int CMS_add_smimecap(CMS_SignerInfo *si, STACK_OF(X509_ALGOR) *algs); int CMS_add_simple_smimecap(STACK_OF(X509_ALGOR) **algs, @@ -441,7 +459,7 @@ CMS_ReceiptRequest *CMS_ReceiptRequest_create0_ex( unsigned char *id, int idlen, int allorfirst, STACK_OF(GENERAL_NAMES) *receiptList, STACK_OF(GENERAL_NAMES) *receiptsTo, - OSSL_LIB_CTX *ctx); + OSSL_LIB_CTX *libctx); int CMS_add1_ReceiptRequest(CMS_SignerInfo *si, CMS_ReceiptRequest *rr); void CMS_ReceiptRequest_get0_values(CMS_ReceiptRequest *rr, diff --git a/deps/openssl/config/archs/VC-WIN64A/asm/include/openssl/comp.h b/deps/openssl/config/archs/VC-WIN64A/asm/include/openssl/comp.h new file mode 100644 index 00000000000000..90e39511fe8d28 --- /dev/null +++ b/deps/openssl/config/archs/VC-WIN64A/asm/include/openssl/comp.h @@ -0,0 +1,98 @@ +/* + * Copyright 2015-2024 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + + +#ifndef OPENSSL_COMP_H +# define OPENSSL_COMP_H +# pragma once + +# include +# ifndef OPENSSL_NO_DEPRECATED_3_0 +# define HEADER_COMP_H +# endif + +# include + +# include +# include +# ifdef __cplusplus +extern "C" { +# endif + + + +# ifndef OPENSSL_NO_COMP + +COMP_CTX *COMP_CTX_new(COMP_METHOD *meth); +const COMP_METHOD *COMP_CTX_get_method(const COMP_CTX *ctx); +int COMP_CTX_get_type(const COMP_CTX* comp); +int COMP_get_type(const COMP_METHOD *meth); +const char *COMP_get_name(const COMP_METHOD *meth); +void COMP_CTX_free(COMP_CTX *ctx); + +int COMP_compress_block(COMP_CTX *ctx, unsigned char *out, int olen, + unsigned char *in, int ilen); +int COMP_expand_block(COMP_CTX *ctx, unsigned char *out, int olen, + unsigned char *in, int ilen); + +COMP_METHOD *COMP_zlib(void); +COMP_METHOD *COMP_zlib_oneshot(void); +COMP_METHOD *COMP_brotli(void); +COMP_METHOD *COMP_brotli_oneshot(void); +COMP_METHOD *COMP_zstd(void); +COMP_METHOD *COMP_zstd_oneshot(void); + +# ifndef OPENSSL_NO_DEPRECATED_1_1_0 +# define COMP_zlib_cleanup() while(0) continue +# endif + +# ifdef OPENSSL_BIO_H +const BIO_METHOD *BIO_f_zlib(void); +const BIO_METHOD *BIO_f_brotli(void); +const BIO_METHOD *BIO_f_zstd(void); +# endif + +# endif + +typedef struct ssl_comp_st SSL_COMP; + +SKM_DEFINE_STACK_OF_INTERNAL(SSL_COMP, SSL_COMP, SSL_COMP) +#define sk_SSL_COMP_num(sk) OPENSSL_sk_num(ossl_check_const_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_value(sk, idx) ((SSL_COMP *)OPENSSL_sk_value(ossl_check_const_SSL_COMP_sk_type(sk), (idx))) +#define sk_SSL_COMP_new(cmp) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new(ossl_check_SSL_COMP_compfunc_type(cmp))) +#define sk_SSL_COMP_new_null() ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new_null()) +#define sk_SSL_COMP_new_reserve(cmp, n) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new_reserve(ossl_check_SSL_COMP_compfunc_type(cmp), (n))) +#define sk_SSL_COMP_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_SSL_COMP_sk_type(sk), (n)) +#define sk_SSL_COMP_free(sk) OPENSSL_sk_free(ossl_check_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_zero(sk) OPENSSL_sk_zero(ossl_check_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_delete(sk, i) ((SSL_COMP *)OPENSSL_sk_delete(ossl_check_SSL_COMP_sk_type(sk), (i))) +#define sk_SSL_COMP_delete_ptr(sk, ptr) ((SSL_COMP *)OPENSSL_sk_delete_ptr(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr))) +#define sk_SSL_COMP_push(sk, ptr) OPENSSL_sk_push(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) +#define sk_SSL_COMP_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) +#define sk_SSL_COMP_pop(sk) ((SSL_COMP *)OPENSSL_sk_pop(ossl_check_SSL_COMP_sk_type(sk))) +#define sk_SSL_COMP_shift(sk) ((SSL_COMP *)OPENSSL_sk_shift(ossl_check_SSL_COMP_sk_type(sk))) +#define sk_SSL_COMP_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_SSL_COMP_sk_type(sk),ossl_check_SSL_COMP_freefunc_type(freefunc)) +#define sk_SSL_COMP_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr), (idx)) +#define sk_SSL_COMP_set(sk, idx, ptr) ((SSL_COMP *)OPENSSL_sk_set(ossl_check_SSL_COMP_sk_type(sk), (idx), ossl_check_SSL_COMP_type(ptr))) +#define sk_SSL_COMP_find(sk, ptr) OPENSSL_sk_find(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) +#define sk_SSL_COMP_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) +#define sk_SSL_COMP_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr), pnum) +#define sk_SSL_COMP_sort(sk) OPENSSL_sk_sort(ossl_check_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_dup(sk) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_dup(ossl_check_const_SSL_COMP_sk_type(sk))) +#define sk_SSL_COMP_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_deep_copy(ossl_check_const_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_copyfunc_type(copyfunc), ossl_check_SSL_COMP_freefunc_type(freefunc))) +#define sk_SSL_COMP_set_cmp_func(sk, cmp) ((sk_SSL_COMP_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_compfunc_type(cmp))) + + + +# ifdef __cplusplus +} +# endif +#endif diff --git a/deps/openssl/config/archs/VC-WIN64A/asm/include/openssl/conf.h b/deps/openssl/config/archs/VC-WIN64A/asm/include/openssl/conf.h index 994e573a957435..ffa9ced71e8b26 100644 --- a/deps/openssl/config/archs/VC-WIN64A/asm/include/openssl/conf.h +++ b/deps/openssl/config/archs/VC-WIN64A/asm/include/openssl/conf.h @@ -27,6 +27,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -65,7 +68,7 @@ SKM_DEFINE_STACK_OF_INTERNAL(CONF_VALUE, CONF_VALUE, CONF_VALUE) #define sk_CONF_VALUE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(CONF_VALUE) *)OPENSSL_sk_deep_copy(ossl_check_const_CONF_VALUE_sk_type(sk), ossl_check_CONF_VALUE_copyfunc_type(copyfunc), ossl_check_CONF_VALUE_freefunc_type(freefunc))) #define sk_CONF_VALUE_set_cmp_func(sk, cmp) ((sk_CONF_VALUE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_CONF_VALUE_sk_type(sk), ossl_check_CONF_VALUE_compfunc_type(cmp))) DEFINE_LHASH_OF_INTERNAL(CONF_VALUE); -#define lh_CONF_VALUE_new(hfn, cmp) ((LHASH_OF(CONF_VALUE) *)OPENSSL_LH_new(ossl_check_CONF_VALUE_lh_hashfunc_type(hfn), ossl_check_CONF_VALUE_lh_compfunc_type(cmp))) +#define lh_CONF_VALUE_new(hfn, cmp) ((LHASH_OF(CONF_VALUE) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new(ossl_check_CONF_VALUE_lh_hashfunc_type(hfn), ossl_check_CONF_VALUE_lh_compfunc_type(cmp)), lh_CONF_VALUE_hash_thunk, lh_CONF_VALUE_comp_thunk, lh_CONF_VALUE_doall_thunk, lh_CONF_VALUE_doall_arg_thunk)) #define lh_CONF_VALUE_free(lh) OPENSSL_LH_free(ossl_check_CONF_VALUE_lh_type(lh)) #define lh_CONF_VALUE_flush(lh) OPENSSL_LH_flush(ossl_check_CONF_VALUE_lh_type(lh)) #define lh_CONF_VALUE_insert(lh, ptr) ((CONF_VALUE *)OPENSSL_LH_insert(ossl_check_CONF_VALUE_lh_type(lh), ossl_check_CONF_VALUE_lh_plain_type(ptr))) diff --git a/deps/openssl/config/archs/VC-WIN64A/asm/include/openssl/configuration.h b/deps/openssl/config/archs/VC-WIN64A/asm/include/openssl/configuration.h index 6a413341de2587..c3090e2efeff08 100644 --- a/deps/openssl/config/archs/VC-WIN64A/asm/include/openssl/configuration.h +++ b/deps/openssl/config/archs/VC-WIN64A/asm/include/openssl/configuration.h @@ -29,7 +29,7 @@ extern "C" { # ifndef OPENSSL_SYS_WIN64A # define OPENSSL_SYS_WIN64A 1 # endif -# define OPENSSL_CONFIGURED_API 30000 +# define OPENSSL_CONFIGURED_API 30500 # ifndef OPENSSL_RAND_SEED_OS # define OPENSSL_RAND_SEED_OS # endif @@ -42,6 +42,12 @@ extern "C" { # ifndef OPENSSL_NO_ASAN # define OPENSSL_NO_ASAN # endif +# ifndef OPENSSL_NO_BROTLI +# define OPENSSL_NO_BROTLI +# endif +# ifndef OPENSSL_NO_BROTLI_DYNAMIC +# define OPENSSL_NO_BROTLI_DYNAMIC +# endif # ifndef OPENSSL_NO_COMP # define OPENSSL_NO_COMP # endif @@ -51,6 +57,9 @@ extern "C" { # ifndef OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE # define OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE # endif +# ifndef OPENSSL_NO_DEMOS +# define OPENSSL_NO_DEMOS +# endif # ifndef OPENSSL_NO_DEVCRYPTOENG # define OPENSSL_NO_DEVCRYPTOENG # endif @@ -63,12 +72,24 @@ extern "C" { # ifndef OPENSSL_NO_EXTERNAL_TESTS # define OPENSSL_NO_EXTERNAL_TESTS # endif +# ifndef OPENSSL_NO_FIPS_JITTER +# define OPENSSL_NO_FIPS_JITTER +# endif # ifndef OPENSSL_NO_FUZZ_AFL # define OPENSSL_NO_FUZZ_AFL # endif # ifndef OPENSSL_NO_FUZZ_LIBFUZZER # define OPENSSL_NO_FUZZ_LIBFUZZER # endif +# ifndef OPENSSL_NO_H3DEMO +# define OPENSSL_NO_H3DEMO +# endif +# ifndef OPENSSL_NO_HQINTEROP +# define OPENSSL_NO_HQINTEROP +# endif +# ifndef OPENSSL_NO_JITTER +# define OPENSSL_NO_JITTER +# endif # ifndef OPENSSL_NO_KTLS # define OPENSSL_NO_KTLS # endif @@ -81,6 +102,9 @@ extern "C" { # ifndef OPENSSL_NO_MSAN # define OPENSSL_NO_MSAN # endif +# ifndef OPENSSL_NO_PIE +# define OPENSSL_NO_PIE +# endif # ifndef OPENSSL_NO_RC5 # define OPENSSL_NO_RC5 # endif @@ -93,6 +117,12 @@ extern "C" { # ifndef OPENSSL_NO_SSL3_METHOD # define OPENSSL_NO_SSL3_METHOD # endif +# ifndef OPENSSL_NO_SSLKEYLOG +# define OPENSSL_NO_SSLKEYLOG +# endif +# ifndef OPENSSL_NO_TFO +# define OPENSSL_NO_TFO +# endif # ifndef OPENSSL_NO_TRACE # define OPENSSL_NO_TRACE # endif @@ -108,6 +138,18 @@ extern "C" { # ifndef OPENSSL_NO_WEAK_SSL_CIPHERS # define OPENSSL_NO_WEAK_SSL_CIPHERS # endif +# ifndef OPENSSL_NO_ZLIB +# define OPENSSL_NO_ZLIB +# endif +# ifndef OPENSSL_NO_ZLIB_DYNAMIC +# define OPENSSL_NO_ZLIB_DYNAMIC +# endif +# ifndef OPENSSL_NO_ZSTD +# define OPENSSL_NO_ZSTD +# endif +# ifndef OPENSSL_NO_ZSTD_DYNAMIC +# define OPENSSL_NO_ZSTD_DYNAMIC +# endif # ifndef OPENSSL_NO_DYNAMIC_ENGINE # define OPENSSL_NO_DYNAMIC_ENGINE # endif @@ -129,6 +171,12 @@ extern "C" { # define RC4_INT unsigned int +# if defined(OPENSSL_NO_COMP) || (defined(OPENSSL_NO_BROTLI) && defined(OPENSSL_NO_ZSTD) && defined(OPENSSL_NO_ZLIB)) +# define OPENSSL_NO_COMP_ALG +# else +# undef OPENSSL_NO_COMP_ALG +# endif + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/VC-WIN64A/asm/include/openssl/core_names.h b/deps/openssl/config/archs/VC-WIN64A/asm/include/openssl/core_names.h new file mode 100644 index 00000000000000..aaca6051c81b53 --- /dev/null +++ b/deps/openssl/config/archs/VC-WIN64A/asm/include/openssl/core_names.h @@ -0,0 +1,575 @@ +/* + * WARNING: do not edit! + * Generated by makefile from include/openssl/core_names.h.in + * + * Copyright 2019-2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + +#ifndef OPENSSL_CORE_NAMES_H +# define OPENSSL_CORE_NAMES_H +# pragma once + +# ifdef __cplusplus +extern "C" { +# endif + +/* OSSL_CIPHER_PARAM_CTS_MODE Values */ +# define OSSL_CIPHER_CTS_MODE_CS1 "CS1" +# define OSSL_CIPHER_CTS_MODE_CS2 "CS2" +# define OSSL_CIPHER_CTS_MODE_CS3 "CS3" + +/* Known CIPHER names (not a complete list) */ +# define OSSL_CIPHER_NAME_AES_128_GCM_SIV "AES-128-GCM-SIV" +# define OSSL_CIPHER_NAME_AES_192_GCM_SIV "AES-192-GCM-SIV" +# define OSSL_CIPHER_NAME_AES_256_GCM_SIV "AES-256-GCM-SIV" + +/* Known DIGEST names (not a complete list) */ +# define OSSL_DIGEST_NAME_MD5 "MD5" +# define OSSL_DIGEST_NAME_MD5_SHA1 "MD5-SHA1" +# define OSSL_DIGEST_NAME_SHA1 "SHA1" +# define OSSL_DIGEST_NAME_SHA2_224 "SHA2-224" +# define OSSL_DIGEST_NAME_SHA2_256 "SHA2-256" +# define OSSL_DIGEST_NAME_SHA2_256_192 "SHA2-256/192" +# define OSSL_DIGEST_NAME_SHA2_384 "SHA2-384" +# define OSSL_DIGEST_NAME_SHA2_512 "SHA2-512" +# define OSSL_DIGEST_NAME_SHA2_512_224 "SHA2-512/224" +# define OSSL_DIGEST_NAME_SHA2_512_256 "SHA2-512/256" +# define OSSL_DIGEST_NAME_MD2 "MD2" +# define OSSL_DIGEST_NAME_MD4 "MD4" +# define OSSL_DIGEST_NAME_MDC2 "MDC2" +# define OSSL_DIGEST_NAME_RIPEMD160 "RIPEMD160" +# define OSSL_DIGEST_NAME_SHA3_224 "SHA3-224" +# define OSSL_DIGEST_NAME_SHA3_256 "SHA3-256" +# define OSSL_DIGEST_NAME_SHA3_384 "SHA3-384" +# define OSSL_DIGEST_NAME_SHA3_512 "SHA3-512" +# define OSSL_DIGEST_NAME_KECCAK_KMAC128 "KECCAK-KMAC-128" +# define OSSL_DIGEST_NAME_KECCAK_KMAC256 "KECCAK-KMAC-256" +# define OSSL_DIGEST_NAME_SM3 "SM3" + +/* Known MAC names */ +# define OSSL_MAC_NAME_BLAKE2BMAC "BLAKE2BMAC" +# define OSSL_MAC_NAME_BLAKE2SMAC "BLAKE2SMAC" +# define OSSL_MAC_NAME_CMAC "CMAC" +# define OSSL_MAC_NAME_GMAC "GMAC" +# define OSSL_MAC_NAME_HMAC "HMAC" +# define OSSL_MAC_NAME_KMAC128 "KMAC128" +# define OSSL_MAC_NAME_KMAC256 "KMAC256" +# define OSSL_MAC_NAME_POLY1305 "POLY1305" +# define OSSL_MAC_NAME_SIPHASH "SIPHASH" + +/* Known KDF names */ +# define OSSL_KDF_NAME_HKDF "HKDF" +# define OSSL_KDF_NAME_TLS1_3_KDF "TLS13-KDF" +# define OSSL_KDF_NAME_PBKDF1 "PBKDF1" +# define OSSL_KDF_NAME_PBKDF2 "PBKDF2" +# define OSSL_KDF_NAME_SCRYPT "SCRYPT" +# define OSSL_KDF_NAME_SSHKDF "SSHKDF" +# define OSSL_KDF_NAME_SSKDF "SSKDF" +# define OSSL_KDF_NAME_TLS1_PRF "TLS1-PRF" +# define OSSL_KDF_NAME_X942KDF_ASN1 "X942KDF-ASN1" +# define OSSL_KDF_NAME_X942KDF_CONCAT "X942KDF-CONCAT" +# define OSSL_KDF_NAME_X963KDF "X963KDF" +# define OSSL_KDF_NAME_KBKDF "KBKDF" +# define OSSL_KDF_NAME_KRB5KDF "KRB5KDF" +# define OSSL_KDF_NAME_HMACDRBGKDF "HMAC-DRBG-KDF" + +/* RSA padding modes */ +# define OSSL_PKEY_RSA_PAD_MODE_NONE "none" +# define OSSL_PKEY_RSA_PAD_MODE_PKCSV15 "pkcs1" +# define OSSL_PKEY_RSA_PAD_MODE_OAEP "oaep" +# define OSSL_PKEY_RSA_PAD_MODE_X931 "x931" +# define OSSL_PKEY_RSA_PAD_MODE_PSS "pss" + +/* RSA pss padding salt length */ +# define OSSL_PKEY_RSA_PSS_SALT_LEN_DIGEST "digest" +# define OSSL_PKEY_RSA_PSS_SALT_LEN_MAX "max" +# define OSSL_PKEY_RSA_PSS_SALT_LEN_AUTO "auto" +# define OSSL_PKEY_RSA_PSS_SALT_LEN_AUTO_DIGEST_MAX "auto-digestmax" + +/* OSSL_PKEY_PARAM_EC_ENCODING values */ +# define OSSL_PKEY_EC_ENCODING_EXPLICIT "explicit" +# define OSSL_PKEY_EC_ENCODING_GROUP "named_curve" + +# define OSSL_PKEY_EC_POINT_CONVERSION_FORMAT_UNCOMPRESSED "uncompressed" +# define OSSL_PKEY_EC_POINT_CONVERSION_FORMAT_COMPRESSED "compressed" +# define OSSL_PKEY_EC_POINT_CONVERSION_FORMAT_HYBRID "hybrid" + +# define OSSL_PKEY_EC_GROUP_CHECK_DEFAULT "default" +# define OSSL_PKEY_EC_GROUP_CHECK_NAMED "named" +# define OSSL_PKEY_EC_GROUP_CHECK_NAMED_NIST "named-nist" + +/* PROV_SKEY well known key types */ +# define OSSL_SKEY_TYPE_GENERIC "GENERIC-SECRET" +# define OSSL_SKEY_TYPE_AES "AES" + +/* OSSL_KEM_PARAM_OPERATION values */ +#define OSSL_KEM_PARAM_OPERATION_RSASVE "RSASVE" +#define OSSL_KEM_PARAM_OPERATION_DHKEM "DHKEM" + +/* Provider configuration variables */ +#define OSSL_PKEY_RETAIN_SEED "pkey_retain_seed" + +/* Parameter name definitions - generated by util/perl/OpenSSL/paramnames.pm */ +# define OSSL_ALG_PARAM_ALGORITHM_ID "algorithm-id" +# define OSSL_ALG_PARAM_ALGORITHM_ID_PARAMS "algorithm-id-params" +# define OSSL_ALG_PARAM_CIPHER "cipher" +# define OSSL_ALG_PARAM_DIGEST "digest" +# define OSSL_ALG_PARAM_ENGINE "engine" +# define OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR "fips-indicator" +# define OSSL_ALG_PARAM_MAC "mac" +# define OSSL_ALG_PARAM_PROPERTIES "properties" +# define OSSL_ASYM_CIPHER_PARAM_DIGEST OSSL_PKEY_PARAM_DIGEST +# define OSSL_ASYM_CIPHER_PARAM_ENGINE OSSL_PKEY_PARAM_ENGINE +# define OSSL_ASYM_CIPHER_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_ASYM_CIPHER_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_ASYM_CIPHER_PARAM_FIPS_RSA_PKCS15_PAD_DISABLED OSSL_PROV_PARAM_RSA_PKCS15_PAD_DISABLED +# define OSSL_ASYM_CIPHER_PARAM_IMPLICIT_REJECTION "implicit-rejection" +# define OSSL_ASYM_CIPHER_PARAM_MGF1_DIGEST OSSL_PKEY_PARAM_MGF1_DIGEST +# define OSSL_ASYM_CIPHER_PARAM_MGF1_DIGEST_PROPS OSSL_PKEY_PARAM_MGF1_PROPERTIES +# define OSSL_ASYM_CIPHER_PARAM_OAEP_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_ASYM_CIPHER_PARAM_OAEP_DIGEST_PROPS "digest-props" +# define OSSL_ASYM_CIPHER_PARAM_OAEP_LABEL "oaep-label" +# define OSSL_ASYM_CIPHER_PARAM_PAD_MODE OSSL_PKEY_PARAM_PAD_MODE +# define OSSL_ASYM_CIPHER_PARAM_PROPERTIES OSSL_PKEY_PARAM_PROPERTIES +# define OSSL_ASYM_CIPHER_PARAM_TLS_CLIENT_VERSION "tls-client-version" +# define OSSL_ASYM_CIPHER_PARAM_TLS_NEGOTIATED_VERSION "tls-negotiated-version" +# define OSSL_CAPABILITY_TLS_GROUP_ALG "tls-group-alg" +# define OSSL_CAPABILITY_TLS_GROUP_ID "tls-group-id" +# define OSSL_CAPABILITY_TLS_GROUP_IS_KEM "tls-group-is-kem" +# define OSSL_CAPABILITY_TLS_GROUP_MAX_DTLS "tls-max-dtls" +# define OSSL_CAPABILITY_TLS_GROUP_MAX_TLS "tls-max-tls" +# define OSSL_CAPABILITY_TLS_GROUP_MIN_DTLS "tls-min-dtls" +# define OSSL_CAPABILITY_TLS_GROUP_MIN_TLS "tls-min-tls" +# define OSSL_CAPABILITY_TLS_GROUP_NAME "tls-group-name" +# define OSSL_CAPABILITY_TLS_GROUP_NAME_INTERNAL "tls-group-name-internal" +# define OSSL_CAPABILITY_TLS_GROUP_SECURITY_BITS "tls-group-sec-bits" +# define OSSL_CAPABILITY_TLS_SIGALG_CODE_POINT "tls-sigalg-code-point" +# define OSSL_CAPABILITY_TLS_SIGALG_HASH_NAME "tls-sigalg-hash-name" +# define OSSL_CAPABILITY_TLS_SIGALG_HASH_OID "tls-sigalg-hash-oid" +# define OSSL_CAPABILITY_TLS_SIGALG_IANA_NAME "tls-sigalg-iana-name" +# define OSSL_CAPABILITY_TLS_SIGALG_KEYTYPE "tls-sigalg-keytype" +# define OSSL_CAPABILITY_TLS_SIGALG_KEYTYPE_OID "tls-sigalg-keytype-oid" +# define OSSL_CAPABILITY_TLS_SIGALG_MAX_DTLS "tls-max-dtls" +# define OSSL_CAPABILITY_TLS_SIGALG_MAX_TLS "tls-max-tls" +# define OSSL_CAPABILITY_TLS_SIGALG_MIN_DTLS "tls-min-dtls" +# define OSSL_CAPABILITY_TLS_SIGALG_MIN_TLS "tls-min-tls" +# define OSSL_CAPABILITY_TLS_SIGALG_NAME "tls-sigalg-name" +# define OSSL_CAPABILITY_TLS_SIGALG_OID "tls-sigalg-oid" +# define OSSL_CAPABILITY_TLS_SIGALG_SECURITY_BITS "tls-sigalg-sec-bits" +# define OSSL_CAPABILITY_TLS_SIGALG_SIG_NAME "tls-sigalg-sig-name" +# define OSSL_CAPABILITY_TLS_SIGALG_SIG_OID "tls-sigalg-sig-oid" +# define OSSL_CIPHER_PARAM_AEAD "aead" +# define OSSL_CIPHER_PARAM_AEAD_IVLEN OSSL_CIPHER_PARAM_IVLEN +# define OSSL_CIPHER_PARAM_AEAD_IV_GENERATED "iv-generated" +# define OSSL_CIPHER_PARAM_AEAD_MAC_KEY "mackey" +# define OSSL_CIPHER_PARAM_AEAD_TAG "tag" +# define OSSL_CIPHER_PARAM_AEAD_TAGLEN "taglen" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_AAD "tlsaad" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_AAD_PAD "tlsaadpad" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_GET_IV_GEN "tlsivgen" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_IV_FIXED "tlsivfixed" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_SET_IV_INV "tlsivinv" +# define OSSL_CIPHER_PARAM_ALGORITHM_ID OSSL_ALG_PARAM_ALGORITHM_ID +# define OSSL_CIPHER_PARAM_ALGORITHM_ID_PARAMS OSSL_ALG_PARAM_ALGORITHM_ID_PARAMS +# define OSSL_CIPHER_PARAM_ALGORITHM_ID_PARAMS_OLD "alg_id_param" +# define OSSL_CIPHER_PARAM_BLOCK_SIZE "blocksize" +# define OSSL_CIPHER_PARAM_CTS "cts" +# define OSSL_CIPHER_PARAM_CTS_MODE "cts_mode" +# define OSSL_CIPHER_PARAM_CUSTOM_IV "custom-iv" +# define OSSL_CIPHER_PARAM_DECRYPT_ONLY "decrypt-only" +# define OSSL_CIPHER_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_CIPHER_PARAM_FIPS_ENCRYPT_CHECK "encrypt-check" +# define OSSL_CIPHER_PARAM_HAS_RAND_KEY "has-randkey" +# define OSSL_CIPHER_PARAM_IV "iv" +# define OSSL_CIPHER_PARAM_IVLEN "ivlen" +# define OSSL_CIPHER_PARAM_KEYLEN "keylen" +# define OSSL_CIPHER_PARAM_MODE "mode" +# define OSSL_CIPHER_PARAM_NUM "num" +# define OSSL_CIPHER_PARAM_PADDING "padding" +# define OSSL_CIPHER_PARAM_PIPELINE_AEAD_TAG "pipeline-tag" +# define OSSL_CIPHER_PARAM_RANDOM_KEY "randkey" +# define OSSL_CIPHER_PARAM_RC2_KEYBITS "keybits" +# define OSSL_CIPHER_PARAM_ROUNDS "rounds" +# define OSSL_CIPHER_PARAM_SPEED "speed" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK "tls-multi" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD "tls1multi_aad" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD_PACKLEN "tls1multi_aadpacklen" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC "tls1multi_enc" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_IN "tls1multi_encin" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_LEN "tls1multi_enclen" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_INTERLEAVE "tls1multi_interleave" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_BUFSIZE "tls1multi_maxbufsz" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_SEND_FRAGMENT "tls1multi_maxsndfrag" +# define OSSL_CIPHER_PARAM_TLS_MAC "tls-mac" +# define OSSL_CIPHER_PARAM_TLS_MAC_SIZE "tls-mac-size" +# define OSSL_CIPHER_PARAM_TLS_VERSION "tls-version" +# define OSSL_CIPHER_PARAM_UPDATED_IV "updated-iv" +# define OSSL_CIPHER_PARAM_USE_BITS "use-bits" +# define OSSL_CIPHER_PARAM_XTS_STANDARD "xts_standard" +# define OSSL_DECODER_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_DIGEST_PARAM_ALGID_ABSENT "algid-absent" +# define OSSL_DIGEST_PARAM_BLOCK_SIZE "blocksize" +# define OSSL_DIGEST_PARAM_MICALG "micalg" +# define OSSL_DIGEST_PARAM_PAD_TYPE "pad-type" +# define OSSL_DIGEST_PARAM_SIZE "size" +# define OSSL_DIGEST_PARAM_SSL3_MS "ssl3-ms" +# define OSSL_DIGEST_PARAM_XOF "xof" +# define OSSL_DIGEST_PARAM_XOFLEN "xoflen" +# define OSSL_DRBG_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_DRBG_PARAM_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_DRBG_PARAM_ENTROPY_REQUIRED "entropy_required" +# define OSSL_DRBG_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_DRBG_PARAM_FIPS_DIGEST_CHECK OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK +# define OSSL_DRBG_PARAM_MAC OSSL_ALG_PARAM_MAC +# define OSSL_DRBG_PARAM_MAX_ADINLEN "max_adinlen" +# define OSSL_DRBG_PARAM_MAX_ENTROPYLEN "max_entropylen" +# define OSSL_DRBG_PARAM_MAX_LENGTH "maxium_length" +# define OSSL_DRBG_PARAM_MAX_NONCELEN "max_noncelen" +# define OSSL_DRBG_PARAM_MAX_PERSLEN "max_perslen" +# define OSSL_DRBG_PARAM_MIN_ENTROPYLEN "min_entropylen" +# define OSSL_DRBG_PARAM_MIN_LENGTH "minium_length" +# define OSSL_DRBG_PARAM_MIN_NONCELEN "min_noncelen" +# define OSSL_DRBG_PARAM_PREDICTION_RESISTANCE "prediction_resistance" +# define OSSL_DRBG_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_DRBG_PARAM_RANDOM_DATA "random_data" +# define OSSL_DRBG_PARAM_RESEED_COUNTER "reseed_counter" +# define OSSL_DRBG_PARAM_RESEED_REQUESTS "reseed_requests" +# define OSSL_DRBG_PARAM_RESEED_TIME "reseed_time" +# define OSSL_DRBG_PARAM_RESEED_TIME_INTERVAL "reseed_time_interval" +# define OSSL_DRBG_PARAM_SIZE "size" +# define OSSL_DRBG_PARAM_USE_DF "use_derivation_function" +# define OSSL_ENCODER_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_ENCODER_PARAM_ENCRYPT_LEVEL "encrypt-level" +# define OSSL_ENCODER_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_ENCODER_PARAM_SAVE_PARAMETERS "save-parameters" +# define OSSL_EXCHANGE_PARAM_EC_ECDH_COFACTOR_MODE "ecdh-cofactor-mode" +# define OSSL_EXCHANGE_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_EXCHANGE_PARAM_FIPS_DIGEST_CHECK OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK +# define OSSL_EXCHANGE_PARAM_FIPS_ECDH_COFACTOR_CHECK OSSL_PROV_PARAM_ECDH_COFACTOR_CHECK +# define OSSL_EXCHANGE_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_EXCHANGE_PARAM_KDF_DIGEST "kdf-digest" +# define OSSL_EXCHANGE_PARAM_KDF_DIGEST_PROPS "kdf-digest-props" +# define OSSL_EXCHANGE_PARAM_KDF_OUTLEN "kdf-outlen" +# define OSSL_EXCHANGE_PARAM_KDF_TYPE "kdf-type" +# define OSSL_EXCHANGE_PARAM_KDF_UKM "kdf-ukm" +# define OSSL_EXCHANGE_PARAM_PAD "pad" +# define OSSL_GEN_PARAM_ITERATION "iteration" +# define OSSL_GEN_PARAM_POTENTIAL "potential" +# define OSSL_KDF_PARAM_ARGON2_AD "ad" +# define OSSL_KDF_PARAM_ARGON2_LANES "lanes" +# define OSSL_KDF_PARAM_ARGON2_MEMCOST "memcost" +# define OSSL_KDF_PARAM_ARGON2_VERSION "version" +# define OSSL_KDF_PARAM_CEK_ALG "cekalg" +# define OSSL_KDF_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_KDF_PARAM_CONSTANT "constant" +# define OSSL_KDF_PARAM_DATA "data" +# define OSSL_KDF_PARAM_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_KDF_PARAM_EARLY_CLEAN "early_clean" +# define OSSL_KDF_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_KDF_PARAM_FIPS_DIGEST_CHECK OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK +# define OSSL_KDF_PARAM_FIPS_EMS_CHECK "ems_check" +# define OSSL_KDF_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_KDF_PARAM_HMACDRBG_ENTROPY "entropy" +# define OSSL_KDF_PARAM_HMACDRBG_NONCE "nonce" +# define OSSL_KDF_PARAM_INFO "info" +# define OSSL_KDF_PARAM_ITER "iter" +# define OSSL_KDF_PARAM_KBKDF_R "r" +# define OSSL_KDF_PARAM_KBKDF_USE_L "use-l" +# define OSSL_KDF_PARAM_KBKDF_USE_SEPARATOR "use-separator" +# define OSSL_KDF_PARAM_KEY "key" +# define OSSL_KDF_PARAM_LABEL "label" +# define OSSL_KDF_PARAM_MAC OSSL_ALG_PARAM_MAC +# define OSSL_KDF_PARAM_MAC_SIZE "maclen" +# define OSSL_KDF_PARAM_MODE "mode" +# define OSSL_KDF_PARAM_PASSWORD "pass" +# define OSSL_KDF_PARAM_PKCS12_ID "id" +# define OSSL_KDF_PARAM_PKCS5 "pkcs5" +# define OSSL_KDF_PARAM_PREFIX "prefix" +# define OSSL_KDF_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_KDF_PARAM_SALT "salt" +# define OSSL_KDF_PARAM_SCRYPT_MAXMEM "maxmem_bytes" +# define OSSL_KDF_PARAM_SCRYPT_N "n" +# define OSSL_KDF_PARAM_SCRYPT_P "p" +# define OSSL_KDF_PARAM_SCRYPT_R "r" +# define OSSL_KDF_PARAM_SECRET "secret" +# define OSSL_KDF_PARAM_SEED "seed" +# define OSSL_KDF_PARAM_SIZE "size" +# define OSSL_KDF_PARAM_SSHKDF_SESSION_ID "session_id" +# define OSSL_KDF_PARAM_SSHKDF_TYPE "type" +# define OSSL_KDF_PARAM_SSHKDF_XCGHASH "xcghash" +# define OSSL_KDF_PARAM_THREADS "threads" +# define OSSL_KDF_PARAM_UKM "ukm" +# define OSSL_KDF_PARAM_X942_ACVPINFO "acvp-info" +# define OSSL_KDF_PARAM_X942_PARTYUINFO "partyu-info" +# define OSSL_KDF_PARAM_X942_PARTYVINFO "partyv-info" +# define OSSL_KDF_PARAM_X942_SUPP_PRIVINFO "supp-privinfo" +# define OSSL_KDF_PARAM_X942_SUPP_PUBINFO "supp-pubinfo" +# define OSSL_KDF_PARAM_X942_USE_KEYBITS "use-keybits" +# define OSSL_KEM_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_KEM_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_KEM_PARAM_IKME "ikme" +# define OSSL_KEM_PARAM_OPERATION "operation" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_BLOCK_PADDING "block_padding" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_HS_PADDING "hs_padding" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_MAX_EARLY_DATA "max_early_data" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_MAX_FRAG_LEN "max_frag_len" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_MODE "mode" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_OPTIONS "options" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_READ_AHEAD "read_ahead" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_STREAM_MAC "stream_mac" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_TLSTREE "tlstree" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_USE_ETM "use_etm" +# define OSSL_LIBSSL_RECORD_LAYER_READ_BUFFER_LEN "read_buffer_len" +# define OSSL_MAC_PARAM_BLOCK_SIZE "block-size" +# define OSSL_MAC_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_MAC_PARAM_CUSTOM "custom" +# define OSSL_MAC_PARAM_C_ROUNDS "c-rounds" +# define OSSL_MAC_PARAM_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_MAC_PARAM_DIGEST_NOINIT "digest-noinit" +# define OSSL_MAC_PARAM_DIGEST_ONESHOT "digest-oneshot" +# define OSSL_MAC_PARAM_D_ROUNDS "d-rounds" +# define OSSL_MAC_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_MAC_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_MAC_PARAM_FIPS_NO_SHORT_MAC OSSL_PROV_PARAM_NO_SHORT_MAC +# define OSSL_MAC_PARAM_IV "iv" +# define OSSL_MAC_PARAM_KEY "key" +# define OSSL_MAC_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_MAC_PARAM_SALT "salt" +# define OSSL_MAC_PARAM_SIZE "size" +# define OSSL_MAC_PARAM_TLS_DATA_SIZE "tls-data-size" +# define OSSL_MAC_PARAM_XOF "xof" +# define OSSL_OBJECT_PARAM_DATA "data" +# define OSSL_OBJECT_PARAM_DATA_STRUCTURE "data-structure" +# define OSSL_OBJECT_PARAM_DATA_TYPE "data-type" +# define OSSL_OBJECT_PARAM_DESC "desc" +# define OSSL_OBJECT_PARAM_INPUT_TYPE "input-type" +# define OSSL_OBJECT_PARAM_REFERENCE "reference" +# define OSSL_OBJECT_PARAM_TYPE "type" +# define OSSL_PASSPHRASE_PARAM_INFO "info" +# define OSSL_PKEY_PARAM_ALGORITHM_ID OSSL_ALG_PARAM_ALGORITHM_ID +# define OSSL_PKEY_PARAM_ALGORITHM_ID_PARAMS OSSL_ALG_PARAM_ALGORITHM_ID_PARAMS +# define OSSL_PKEY_PARAM_BITS "bits" +# define OSSL_PKEY_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_PKEY_PARAM_DEFAULT_DIGEST "default-digest" +# define OSSL_PKEY_PARAM_DHKEM_IKM "dhkem-ikm" +# define OSSL_PKEY_PARAM_DH_GENERATOR "safeprime-generator" +# define OSSL_PKEY_PARAM_DH_PRIV_LEN "priv_len" +# define OSSL_PKEY_PARAM_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_PKEY_PARAM_DIGEST_SIZE "digest-size" +# define OSSL_PKEY_PARAM_DIST_ID "distid" +# define OSSL_PKEY_PARAM_EC_A "a" +# define OSSL_PKEY_PARAM_EC_B "b" +# define OSSL_PKEY_PARAM_EC_CHAR2_M "m" +# define OSSL_PKEY_PARAM_EC_CHAR2_PP_K1 "k1" +# define OSSL_PKEY_PARAM_EC_CHAR2_PP_K2 "k2" +# define OSSL_PKEY_PARAM_EC_CHAR2_PP_K3 "k3" +# define OSSL_PKEY_PARAM_EC_CHAR2_TP_BASIS "tp" +# define OSSL_PKEY_PARAM_EC_CHAR2_TYPE "basis-type" +# define OSSL_PKEY_PARAM_EC_COFACTOR "cofactor" +# define OSSL_PKEY_PARAM_EC_DECODED_FROM_EXPLICIT_PARAMS "decoded-from-explicit" +# define OSSL_PKEY_PARAM_EC_ENCODING "encoding" +# define OSSL_PKEY_PARAM_EC_FIELD_TYPE "field-type" +# define OSSL_PKEY_PARAM_EC_GENERATOR "generator" +# define OSSL_PKEY_PARAM_EC_GROUP_CHECK_TYPE "group-check" +# define OSSL_PKEY_PARAM_EC_INCLUDE_PUBLIC "include-public" +# define OSSL_PKEY_PARAM_EC_ORDER "order" +# define OSSL_PKEY_PARAM_EC_P "p" +# define OSSL_PKEY_PARAM_EC_POINT_CONVERSION_FORMAT "point-format" +# define OSSL_PKEY_PARAM_EC_PUB_X "qx" +# define OSSL_PKEY_PARAM_EC_PUB_Y "qy" +# define OSSL_PKEY_PARAM_EC_SEED "seed" +# define OSSL_PKEY_PARAM_ENCODED_PUBLIC_KEY "encoded-pub-key" +# define OSSL_PKEY_PARAM_ENGINE OSSL_ALG_PARAM_ENGINE +# define OSSL_PKEY_PARAM_FFC_COFACTOR "j" +# define OSSL_PKEY_PARAM_FFC_DIGEST OSSL_PKEY_PARAM_DIGEST +# define OSSL_PKEY_PARAM_FFC_DIGEST_PROPS OSSL_PKEY_PARAM_PROPERTIES +# define OSSL_PKEY_PARAM_FFC_G "g" +# define OSSL_PKEY_PARAM_FFC_GINDEX "gindex" +# define OSSL_PKEY_PARAM_FFC_H "hindex" +# define OSSL_PKEY_PARAM_FFC_P "p" +# define OSSL_PKEY_PARAM_FFC_PBITS "pbits" +# define OSSL_PKEY_PARAM_FFC_PCOUNTER "pcounter" +# define OSSL_PKEY_PARAM_FFC_Q "q" +# define OSSL_PKEY_PARAM_FFC_QBITS "qbits" +# define OSSL_PKEY_PARAM_FFC_SEED "seed" +# define OSSL_PKEY_PARAM_FFC_TYPE "type" +# define OSSL_PKEY_PARAM_FFC_VALIDATE_G "validate-g" +# define OSSL_PKEY_PARAM_FFC_VALIDATE_LEGACY "validate-legacy" +# define OSSL_PKEY_PARAM_FFC_VALIDATE_PQ "validate-pq" +# define OSSL_PKEY_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK "digest-check" +# define OSSL_PKEY_PARAM_FIPS_KEY_CHECK "key-check" +# define OSSL_PKEY_PARAM_FIPS_SIGN_CHECK "sign-check" +# define OSSL_PKEY_PARAM_GROUP_NAME "group" +# define OSSL_PKEY_PARAM_IMPLICIT_REJECTION "implicit-rejection" +# define OSSL_PKEY_PARAM_MANDATORY_DIGEST "mandatory-digest" +# define OSSL_PKEY_PARAM_MASKGENFUNC "mgf" +# define OSSL_PKEY_PARAM_MAX_SIZE "max-size" +# define OSSL_PKEY_PARAM_MGF1_DIGEST "mgf1-digest" +# define OSSL_PKEY_PARAM_MGF1_PROPERTIES "mgf1-properties" +# define OSSL_PKEY_PARAM_ML_DSA_INPUT_FORMATS "ml-dsa.input_formats" +# define OSSL_PKEY_PARAM_ML_DSA_OUTPUT_FORMATS "ml-dsa.output_formats" +# define OSSL_PKEY_PARAM_ML_DSA_PREFER_SEED "ml-dsa.prefer_seed" +# define OSSL_PKEY_PARAM_ML_DSA_RETAIN_SEED "ml-dsa.retain_seed" +# define OSSL_PKEY_PARAM_ML_DSA_SEED "seed" +# define OSSL_PKEY_PARAM_ML_KEM_IMPORT_PCT_TYPE "ml-kem.import_pct_type" +# define OSSL_PKEY_PARAM_ML_KEM_INPUT_FORMATS "ml-kem.input_formats" +# define OSSL_PKEY_PARAM_ML_KEM_OUTPUT_FORMATS "ml-kem.output_formats" +# define OSSL_PKEY_PARAM_ML_KEM_PREFER_SEED "ml-kem.prefer_seed" +# define OSSL_PKEY_PARAM_ML_KEM_RETAIN_SEED "ml-kem.retain_seed" +# define OSSL_PKEY_PARAM_ML_KEM_SEED "seed" +# define OSSL_PKEY_PARAM_PAD_MODE "pad-mode" +# define OSSL_PKEY_PARAM_PRIV_KEY "priv" +# define OSSL_PKEY_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_PKEY_PARAM_PUB_KEY "pub" +# define OSSL_PKEY_PARAM_RSA_BITS OSSL_PKEY_PARAM_BITS +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT "rsa-coefficient" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT1 "rsa-coefficient1" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT2 "rsa-coefficient2" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT3 "rsa-coefficient3" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT4 "rsa-coefficient4" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT5 "rsa-coefficient5" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT6 "rsa-coefficient6" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT7 "rsa-coefficient7" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT8 "rsa-coefficient8" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT9 "rsa-coefficient9" +# define OSSL_PKEY_PARAM_RSA_D "d" +# define OSSL_PKEY_PARAM_RSA_DERIVE_FROM_PQ "rsa-derive-from-pq" +# define OSSL_PKEY_PARAM_RSA_DIGEST OSSL_PKEY_PARAM_DIGEST +# define OSSL_PKEY_PARAM_RSA_DIGEST_PROPS OSSL_PKEY_PARAM_PROPERTIES +# define OSSL_PKEY_PARAM_RSA_E "e" +# define OSSL_PKEY_PARAM_RSA_EXPONENT "rsa-exponent" +# define OSSL_PKEY_PARAM_RSA_EXPONENT1 "rsa-exponent1" +# define OSSL_PKEY_PARAM_RSA_EXPONENT10 "rsa-exponent10" +# define OSSL_PKEY_PARAM_RSA_EXPONENT2 "rsa-exponent2" +# define OSSL_PKEY_PARAM_RSA_EXPONENT3 "rsa-exponent3" +# define OSSL_PKEY_PARAM_RSA_EXPONENT4 "rsa-exponent4" +# define OSSL_PKEY_PARAM_RSA_EXPONENT5 "rsa-exponent5" +# define OSSL_PKEY_PARAM_RSA_EXPONENT6 "rsa-exponent6" +# define OSSL_PKEY_PARAM_RSA_EXPONENT7 "rsa-exponent7" +# define OSSL_PKEY_PARAM_RSA_EXPONENT8 "rsa-exponent8" +# define OSSL_PKEY_PARAM_RSA_EXPONENT9 "rsa-exponent9" +# define OSSL_PKEY_PARAM_RSA_FACTOR "rsa-factor" +# define OSSL_PKEY_PARAM_RSA_FACTOR1 "rsa-factor1" +# define OSSL_PKEY_PARAM_RSA_FACTOR10 "rsa-factor10" +# define OSSL_PKEY_PARAM_RSA_FACTOR2 "rsa-factor2" +# define OSSL_PKEY_PARAM_RSA_FACTOR3 "rsa-factor3" +# define OSSL_PKEY_PARAM_RSA_FACTOR4 "rsa-factor4" +# define OSSL_PKEY_PARAM_RSA_FACTOR5 "rsa-factor5" +# define OSSL_PKEY_PARAM_RSA_FACTOR6 "rsa-factor6" +# define OSSL_PKEY_PARAM_RSA_FACTOR7 "rsa-factor7" +# define OSSL_PKEY_PARAM_RSA_FACTOR8 "rsa-factor8" +# define OSSL_PKEY_PARAM_RSA_FACTOR9 "rsa-factor9" +# define OSSL_PKEY_PARAM_RSA_MASKGENFUNC OSSL_PKEY_PARAM_MASKGENFUNC +# define OSSL_PKEY_PARAM_RSA_MGF1_DIGEST OSSL_PKEY_PARAM_MGF1_DIGEST +# define OSSL_PKEY_PARAM_RSA_N "n" +# define OSSL_PKEY_PARAM_RSA_PRIMES "primes" +# define OSSL_PKEY_PARAM_RSA_PSS_SALTLEN "saltlen" +# define OSSL_PKEY_PARAM_RSA_TEST_P1 "p1" +# define OSSL_PKEY_PARAM_RSA_TEST_P2 "p2" +# define OSSL_PKEY_PARAM_RSA_TEST_Q1 "q1" +# define OSSL_PKEY_PARAM_RSA_TEST_Q2 "q2" +# define OSSL_PKEY_PARAM_RSA_TEST_XP "xp" +# define OSSL_PKEY_PARAM_RSA_TEST_XP1 "xp1" +# define OSSL_PKEY_PARAM_RSA_TEST_XP2 "xp2" +# define OSSL_PKEY_PARAM_RSA_TEST_XQ "xq" +# define OSSL_PKEY_PARAM_RSA_TEST_XQ1 "xq1" +# define OSSL_PKEY_PARAM_RSA_TEST_XQ2 "xq2" +# define OSSL_PKEY_PARAM_SECURITY_BITS "security-bits" +# define OSSL_PKEY_PARAM_SLH_DSA_SEED "seed" +# define OSSL_PKEY_PARAM_USE_COFACTOR_ECDH OSSL_PKEY_PARAM_USE_COFACTOR_FLAG +# define OSSL_PKEY_PARAM_USE_COFACTOR_FLAG "use-cofactor-flag" +# define OSSL_PROV_PARAM_BUILDINFO "buildinfo" +# define OSSL_PROV_PARAM_CORE_MODULE_FILENAME "module-filename" +# define OSSL_PROV_PARAM_CORE_PROV_NAME "provider-name" +# define OSSL_PROV_PARAM_CORE_VERSION "openssl-version" +# define OSSL_PROV_PARAM_DRBG_TRUNC_DIGEST "drbg-no-trunc-md" +# define OSSL_PROV_PARAM_DSA_SIGN_DISABLED "dsa-sign-disabled" +# define OSSL_PROV_PARAM_ECDH_COFACTOR_CHECK "ecdh-cofactor-check" +# define OSSL_PROV_PARAM_HKDF_DIGEST_CHECK "hkdf-digest-check" +# define OSSL_PROV_PARAM_HKDF_KEY_CHECK "hkdf-key-check" +# define OSSL_PROV_PARAM_HMAC_KEY_CHECK "hmac-key-check" +# define OSSL_PROV_PARAM_KBKDF_KEY_CHECK "kbkdf-key-check" +# define OSSL_PROV_PARAM_KMAC_KEY_CHECK "kmac-key-check" +# define OSSL_PROV_PARAM_NAME "name" +# define OSSL_PROV_PARAM_NO_SHORT_MAC "no-short-mac" +# define OSSL_PROV_PARAM_PBKDF2_LOWER_BOUND_CHECK "pbkdf2-lower-bound-check" +# define OSSL_PROV_PARAM_RSA_PKCS15_PAD_DISABLED "rsa-pkcs15-pad-disabled" +# define OSSL_PROV_PARAM_RSA_PSS_SALTLEN_CHECK "rsa-pss-saltlen-check" +# define OSSL_PROV_PARAM_RSA_SIGN_X931_PAD_DISABLED "rsa-sign-x931-pad-disabled" +# define OSSL_PROV_PARAM_SECURITY_CHECKS "security-checks" +# define OSSL_PROV_PARAM_SELF_TEST_DESC "st-desc" +# define OSSL_PROV_PARAM_SELF_TEST_PHASE "st-phase" +# define OSSL_PROV_PARAM_SELF_TEST_TYPE "st-type" +# define OSSL_PROV_PARAM_SIGNATURE_DIGEST_CHECK "signature-digest-check" +# define OSSL_PROV_PARAM_SSHKDF_DIGEST_CHECK "sshkdf-digest-check" +# define OSSL_PROV_PARAM_SSHKDF_KEY_CHECK "sshkdf-key-check" +# define OSSL_PROV_PARAM_SSKDF_DIGEST_CHECK "sskdf-digest-check" +# define OSSL_PROV_PARAM_SSKDF_KEY_CHECK "sskdf-key-check" +# define OSSL_PROV_PARAM_STATUS "status" +# define OSSL_PROV_PARAM_TDES_ENCRYPT_DISABLED "tdes-encrypt-disabled" +# define OSSL_PROV_PARAM_TLS13_KDF_DIGEST_CHECK "tls13-kdf-digest-check" +# define OSSL_PROV_PARAM_TLS13_KDF_KEY_CHECK "tls13-kdf-key-check" +# define OSSL_PROV_PARAM_TLS1_PRF_DIGEST_CHECK "tls1-prf-digest-check" +# define OSSL_PROV_PARAM_TLS1_PRF_EMS_CHECK "tls1-prf-ems-check" +# define OSSL_PROV_PARAM_TLS1_PRF_KEY_CHECK "tls1-prf-key-check" +# define OSSL_PROV_PARAM_VERSION "version" +# define OSSL_PROV_PARAM_X942KDF_KEY_CHECK "x942kdf-key-check" +# define OSSL_PROV_PARAM_X963KDF_DIGEST_CHECK "x963kdf-digest-check" +# define OSSL_PROV_PARAM_X963KDF_KEY_CHECK "x963kdf-key-check" +# define OSSL_RAND_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_RAND_PARAM_GENERATE "generate" +# define OSSL_RAND_PARAM_MAX_REQUEST "max_request" +# define OSSL_RAND_PARAM_STATE "state" +# define OSSL_RAND_PARAM_STRENGTH "strength" +# define OSSL_RAND_PARAM_TEST_ENTROPY "test_entropy" +# define OSSL_RAND_PARAM_TEST_NONCE "test_nonce" +# define OSSL_SIGNATURE_PARAM_ADD_RANDOM "additional-random" +# define OSSL_SIGNATURE_PARAM_ALGORITHM_ID OSSL_PKEY_PARAM_ALGORITHM_ID +# define OSSL_SIGNATURE_PARAM_ALGORITHM_ID_PARAMS OSSL_PKEY_PARAM_ALGORITHM_ID_PARAMS +# define OSSL_SIGNATURE_PARAM_CONTEXT_STRING "context-string" +# define OSSL_SIGNATURE_PARAM_DETERMINISTIC "deterministic" +# define OSSL_SIGNATURE_PARAM_DIGEST OSSL_PKEY_PARAM_DIGEST +# define OSSL_SIGNATURE_PARAM_DIGEST_SIZE OSSL_PKEY_PARAM_DIGEST_SIZE +# define OSSL_SIGNATURE_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_SIGNATURE_PARAM_FIPS_DIGEST_CHECK OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK +# define OSSL_SIGNATURE_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_SIGNATURE_PARAM_FIPS_RSA_PSS_SALTLEN_CHECK "rsa-pss-saltlen-check" +# define OSSL_SIGNATURE_PARAM_FIPS_SIGN_CHECK OSSL_PKEY_PARAM_FIPS_SIGN_CHECK +# define OSSL_SIGNATURE_PARAM_FIPS_SIGN_X931_PAD_CHECK "sign-x931-pad-check" +# define OSSL_SIGNATURE_PARAM_FIPS_VERIFY_MESSAGE "verify-message" +# define OSSL_SIGNATURE_PARAM_INSTANCE "instance" +# define OSSL_SIGNATURE_PARAM_KAT "kat" +# define OSSL_SIGNATURE_PARAM_MESSAGE_ENCODING "message-encoding" +# define OSSL_SIGNATURE_PARAM_MGF1_DIGEST OSSL_PKEY_PARAM_MGF1_DIGEST +# define OSSL_SIGNATURE_PARAM_MGF1_PROPERTIES OSSL_PKEY_PARAM_MGF1_PROPERTIES +# define OSSL_SIGNATURE_PARAM_MU "mu" +# define OSSL_SIGNATURE_PARAM_NONCE_TYPE "nonce-type" +# define OSSL_SIGNATURE_PARAM_PAD_MODE OSSL_PKEY_PARAM_PAD_MODE +# define OSSL_SIGNATURE_PARAM_PROPERTIES OSSL_PKEY_PARAM_PROPERTIES +# define OSSL_SIGNATURE_PARAM_PSS_SALTLEN "saltlen" +# define OSSL_SIGNATURE_PARAM_SIGNATURE "signature" +# define OSSL_SIGNATURE_PARAM_TEST_ENTROPY "test-entropy" +# define OSSL_SKEY_PARAM_KEY_LENGTH "key-length" +# define OSSL_SKEY_PARAM_RAW_BYTES "raw-bytes" +# define OSSL_STORE_PARAM_ALIAS "alias" +# define OSSL_STORE_PARAM_DIGEST "digest" +# define OSSL_STORE_PARAM_EXPECT "expect" +# define OSSL_STORE_PARAM_FINGERPRINT "fingerprint" +# define OSSL_STORE_PARAM_INPUT_TYPE "input-type" +# define OSSL_STORE_PARAM_ISSUER "name" +# define OSSL_STORE_PARAM_PROPERTIES "properties" +# define OSSL_STORE_PARAM_SERIAL "serial" +# define OSSL_STORE_PARAM_SUBJECT "subject" + +# ifdef __cplusplus +} +# endif + +#endif diff --git a/deps/openssl/config/archs/VC-WIN64A/asm/include/openssl/crmf.h b/deps/openssl/config/archs/VC-WIN64A/asm/include/openssl/crmf.h index 0419170bb99974..9b6f13fac240b2 100644 --- a/deps/openssl/config/archs/VC-WIN64A/asm/include/openssl/crmf.h +++ b/deps/openssl/config/archs/VC-WIN64A/asm/include/openssl/crmf.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by makefile from include/openssl/crmf.h.in * - * Copyright 2007-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2007-2025 The OpenSSL Project Authors. All Rights Reserved. * Copyright Nokia 2007-2019 * Copyright Siemens AG 2015-2019 * @@ -26,6 +26,7 @@ # include # include # include /* for GENERAL_NAME etc. */ +# include /* explicit #includes not strictly needed since implied by the above: */ # include @@ -43,9 +44,12 @@ extern "C" { # define OSSL_CRMF_SUBSEQUENTMESSAGE_ENCRCERT 0 # define OSSL_CRMF_SUBSEQUENTMESSAGE_CHALLENGERESP 1 - typedef struct ossl_crmf_encryptedvalue_st OSSL_CRMF_ENCRYPTEDVALUE; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_ENCRYPTEDVALUE) + +typedef struct ossl_crmf_encryptedkey_st OSSL_CRMF_ENCRYPTEDKEY; +DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_ENCRYPTEDKEY) + typedef struct ossl_crmf_msg_st OSSL_CRMF_MSG; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_MSG) DECLARE_ASN1_DUP_FUNCTION(OSSL_CRMF_MSG) @@ -77,6 +81,36 @@ SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CRMF_MSG, OSSL_CRMF_MSG, OSSL_CRMF_MSG) #define sk_OSSL_CRMF_MSG_set_cmp_func(sk, cmp) ((sk_OSSL_CRMF_MSG_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CRMF_MSG_sk_type(sk), ossl_check_OSSL_CRMF_MSG_compfunc_type(cmp))) typedef struct ossl_crmf_attributetypeandvalue_st OSSL_CRMF_ATTRIBUTETYPEANDVALUE; +void OSSL_CRMF_ATTRIBUTETYPEANDVALUE_free(OSSL_CRMF_ATTRIBUTETYPEANDVALUE *v); +DECLARE_ASN1_DUP_FUNCTION(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CRMF_ATTRIBUTETYPEANDVALUE, OSSL_CRMF_ATTRIBUTETYPEANDVALUE, OSSL_CRMF_ATTRIBUTETYPEANDVALUE) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_value(sk, idx) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_value(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), (idx))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_new(cmp) ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_new(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_compfunc_type(cmp))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_new_null() ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_new_null()) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_new_reserve(cmp, n) ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_compfunc_type(cmp), (n))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), (n)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_free(sk) OPENSSL_sk_free(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_delete(sk, i) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_delete(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), (i))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_delete_ptr(sk, ptr) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_pop(sk) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_pop(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_shift(sk) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_shift(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk),ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_freefunc_type(freefunc)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr), (idx)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_set(sk, idx, ptr) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_set(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), (idx), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr), pnum) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_dup(sk) ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_dup(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_copyfunc_type(copyfunc), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_freefunc_type(freefunc))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_set_cmp_func(sk, cmp) ((sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_compfunc_type(cmp))) + + typedef struct ossl_crmf_pbmparameter_st OSSL_CRMF_PBMPARAMETER; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_PBMPARAMETER) typedef struct ossl_crmf_poposigningkey_st OSSL_CRMF_POPOSIGNINGKEY; @@ -118,6 +152,7 @@ typedef struct ossl_crmf_singlepubinfo_st OSSL_CRMF_SINGLEPUBINFO; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_SINGLEPUBINFO) typedef struct ossl_crmf_certtemplate_st OSSL_CRMF_CERTTEMPLATE; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_CERTTEMPLATE) +DECLARE_ASN1_DUP_FUNCTION(OSSL_CRMF_CERTTEMPLATE) typedef STACK_OF(OSSL_CRMF_MSG) OSSL_CRMF_MSGS; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_MSGS) @@ -198,12 +233,14 @@ int OSSL_CRMF_MSGS_verify_popo(const OSSL_CRMF_MSGS *reqs, int rid, int acceptRAVerified, OSSL_LIB_CTX *libctx, const char *propq); OSSL_CRMF_CERTTEMPLATE *OSSL_CRMF_MSG_get0_tmpl(const OSSL_CRMF_MSG *crm); -const ASN1_INTEGER -*OSSL_CRMF_CERTTEMPLATE_get0_serialNumber(const OSSL_CRMF_CERTTEMPLATE *tmpl); +X509_PUBKEY +*OSSL_CRMF_CERTTEMPLATE_get0_publicKey(const OSSL_CRMF_CERTTEMPLATE *tmpl); const X509_NAME *OSSL_CRMF_CERTTEMPLATE_get0_subject(const OSSL_CRMF_CERTTEMPLATE *tmpl); const X509_NAME *OSSL_CRMF_CERTTEMPLATE_get0_issuer(const OSSL_CRMF_CERTTEMPLATE *tmpl); +const ASN1_INTEGER +*OSSL_CRMF_CERTTEMPLATE_get0_serialNumber(const OSSL_CRMF_CERTTEMPLATE *tmpl); X509_EXTENSIONS *OSSL_CRMF_CERTTEMPLATE_get0_extensions(const OSSL_CRMF_CERTTEMPLATE *tmpl); const X509_NAME @@ -215,10 +252,24 @@ int OSSL_CRMF_CERTTEMPLATE_fill(OSSL_CRMF_CERTTEMPLATE *tmpl, const X509_NAME *subject, const X509_NAME *issuer, const ASN1_INTEGER *serial); -X509 -*OSSL_CRMF_ENCRYPTEDVALUE_get1_encCert(const OSSL_CRMF_ENCRYPTEDVALUE *ecert, - OSSL_LIB_CTX *libctx, const char *propq, - EVP_PKEY *pkey); +X509 *OSSL_CRMF_ENCRYPTEDVALUE_get1_encCert(const OSSL_CRMF_ENCRYPTEDVALUE *ecert, + OSSL_LIB_CTX *libctx, const char *propq, + EVP_PKEY *pkey); +X509 *OSSL_CRMF_ENCRYPTEDKEY_get1_encCert(const OSSL_CRMF_ENCRYPTEDKEY *ecert, + OSSL_LIB_CTX *libctx, const char *propq, + EVP_PKEY *pkey, unsigned int flags); +unsigned char +*OSSL_CRMF_ENCRYPTEDVALUE_decrypt(const OSSL_CRMF_ENCRYPTEDVALUE *enc, + OSSL_LIB_CTX *libctx, const char *propq, + EVP_PKEY *pkey, int *outlen); +EVP_PKEY *OSSL_CRMF_ENCRYPTEDKEY_get1_pkey(const OSSL_CRMF_ENCRYPTEDKEY *encryptedKey, + X509_STORE *ts, STACK_OF(X509) *extra, EVP_PKEY *pkey, + X509 *cert, ASN1_OCTET_STRING *secret, + OSSL_LIB_CTX *libctx, const char *propq); +int OSSL_CRMF_MSG_centralkeygen_requested(const OSSL_CRMF_MSG *crm, const X509_REQ *p10cr); +# ifndef OPENSSL_NO_CMS +OSSL_CRMF_ENCRYPTEDKEY *OSSL_CRMF_ENCRYPTEDKEY_init_envdata(CMS_EnvelopedData *envdata); +# endif # ifdef __cplusplus } diff --git a/deps/openssl/config/archs/VC-WIN64A/asm/include/openssl/crypto.h b/deps/openssl/config/archs/VC-WIN64A/asm/include/openssl/crypto.h index 668c52cfee1f15..2a825986bf3a55 100644 --- a/deps/openssl/config/archs/VC-WIN64A/asm/include/openssl/crypto.h +++ b/deps/openssl/config/archs/VC-WIN64A/asm/include/openssl/crypto.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by makefile from include/openssl/crypto.h.in * - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2024 The OpenSSL Project Authors. All Rights Reserved. * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved * * Licensed under the Apache License 2.0 (the "License"). You may not use @@ -85,9 +85,15 @@ int CRYPTO_THREAD_unlock(CRYPTO_RWLOCK *lock); void CRYPTO_THREAD_lock_free(CRYPTO_RWLOCK *lock); int CRYPTO_atomic_add(int *val, int amount, int *ret, CRYPTO_RWLOCK *lock); +int CRYPTO_atomic_add64(uint64_t *val, uint64_t op, uint64_t *ret, + CRYPTO_RWLOCK *lock); +int CRYPTO_atomic_and(uint64_t *val, uint64_t op, uint64_t *ret, + CRYPTO_RWLOCK *lock); int CRYPTO_atomic_or(uint64_t *val, uint64_t op, uint64_t *ret, CRYPTO_RWLOCK *lock); int CRYPTO_atomic_load(uint64_t *val, uint64_t *ret, CRYPTO_RWLOCK *lock); +int CRYPTO_atomic_load_int(int *val, int *ret, CRYPTO_RWLOCK *lock); +int CRYPTO_atomic_store(uint64_t *dst, uint64_t val, CRYPTO_RWLOCK *lock); /* No longer needed, so this is a no-op */ #define OPENSSL_malloc_init() while(0) continue @@ -96,6 +102,9 @@ int CRYPTO_atomic_load(uint64_t *val, uint64_t *ret, CRYPTO_RWLOCK *lock); CRYPTO_malloc(num, OPENSSL_FILE, OPENSSL_LINE) # define OPENSSL_zalloc(num) \ CRYPTO_zalloc(num, OPENSSL_FILE, OPENSSL_LINE) +# define OPENSSL_aligned_alloc(num, alignment, freeptr) \ + CRYPTO_aligned_alloc(num, alignment, freeptr, \ + OPENSSL_FILE, OPENSSL_LINE) # define OPENSSL_realloc(addr, num) \ CRYPTO_realloc(addr, num, OPENSSL_FILE, OPENSSL_LINE) # define OPENSSL_clear_realloc(addr, old_num, num) \ @@ -124,6 +133,7 @@ int CRYPTO_atomic_load(uint64_t *val, uint64_t *ret, CRYPTO_RWLOCK *lock); size_t OPENSSL_strlcpy(char *dst, const char *src, size_t siz); size_t OPENSSL_strlcat(char *dst, const char *src, size_t siz); size_t OPENSSL_strnlen(const char *str, size_t maxlen); +int OPENSSL_strtoul(const char *str, char **endptr, int base, unsigned long *num); int OPENSSL_buf2hexstr_ex(char *str, size_t str_n, size_t *strlength, const unsigned char *buf, size_t buflen, const char sep); @@ -160,6 +170,7 @@ const char *OpenSSL_version(int type); # define OPENSSL_FULL_VERSION_STRING 7 # define OPENSSL_MODULES_DIR 8 # define OPENSSL_CPU_INFO 9 +# define OPENSSL_WINCTX 10 const char *OPENSSL_info(int type); /* @@ -174,6 +185,7 @@ const char *OPENSSL_info(int type); # define OPENSSL_INFO_LIST_SEPARATOR 1006 # define OPENSSL_INFO_SEED_SOURCE 1007 # define OPENSSL_INFO_CPU_SETTINGS 1008 +# define OPENSSL_INFO_WINDOWS_CONTEXT 1009 int OPENSSL_issetugid(void); @@ -341,11 +353,14 @@ void CRYPTO_get_mem_functions(CRYPTO_malloc_fn *malloc_fn, CRYPTO_realloc_fn *realloc_fn, CRYPTO_free_fn *free_fn); -void *CRYPTO_malloc(size_t num, const char *file, int line); -void *CRYPTO_zalloc(size_t num, const char *file, int line); -void *CRYPTO_memdup(const void *str, size_t siz, const char *file, int line); -char *CRYPTO_strdup(const char *str, const char *file, int line); -char *CRYPTO_strndup(const char *str, size_t s, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_malloc(size_t num, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_zalloc(size_t num, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_aligned_alloc(size_t num, size_t align, + void **freeptr, const char *file, + int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_memdup(const void *str, size_t siz, const char *file, int line); +OSSL_CRYPTO_ALLOC char *CRYPTO_strdup(const char *str, const char *file, int line); +OSSL_CRYPTO_ALLOC char *CRYPTO_strndup(const char *str, size_t s, const char *file, int line); void CRYPTO_free(void *ptr, const char *file, int line); void CRYPTO_clear_free(void *ptr, size_t num, const char *file, int line); void *CRYPTO_realloc(void *addr, size_t num, const char *file, int line); @@ -354,8 +369,8 @@ void *CRYPTO_clear_realloc(void *addr, size_t old_num, size_t num, int CRYPTO_secure_malloc_init(size_t sz, size_t minsize); int CRYPTO_secure_malloc_done(void); -void *CRYPTO_secure_malloc(size_t num, const char *file, int line); -void *CRYPTO_secure_zalloc(size_t num, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_secure_malloc(size_t num, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_secure_zalloc(size_t num, const char *file, int line); void CRYPTO_secure_free(void *ptr, const char *file, int line); void CRYPTO_secure_clear_free(void *ptr, size_t num, const char *file, int line); @@ -376,6 +391,9 @@ void OPENSSL_cleanse(void *ptr, size_t len); # define CRYPTO_MEM_CHECK_ENABLE 0x2 /* Control and mode bit */ # define CRYPTO_MEM_CHECK_DISABLE 0x3 /* Control only */ +/* max allowed length for value of OPENSSL_MALLOC_FAILURES env var. */ +# define CRYPTO_MEM_CHECK_MAX_FS 256 + void CRYPTO_get_alloc_counts(int *mcount, int *rcount, int *fcount); # ifndef OPENSSL_NO_DEPRECATED_3_0 # define OPENSSL_mem_debug_push(info) \ @@ -551,6 +569,13 @@ int OSSL_LIB_CTX_load_config(OSSL_LIB_CTX *ctx, const char *config_file); void OSSL_LIB_CTX_free(OSSL_LIB_CTX *); OSSL_LIB_CTX *OSSL_LIB_CTX_get0_global_default(void); OSSL_LIB_CTX *OSSL_LIB_CTX_set0_default(OSSL_LIB_CTX *libctx); +int OSSL_LIB_CTX_get_conf_diagnostics(OSSL_LIB_CTX *ctx); +void OSSL_LIB_CTX_set_conf_diagnostics(OSSL_LIB_CTX *ctx, int value); + +void OSSL_sleep(uint64_t millis); + + +void *OSSL_LIB_CTX_get_data(OSSL_LIB_CTX *ctx, int index); # ifdef __cplusplus } diff --git a/deps/openssl/config/archs/VC-WIN64A/asm/include/openssl/ct.h b/deps/openssl/config/archs/VC-WIN64A/asm/include/openssl/ct.h index 15a276e33ff7ca..d29dbc78997c0b 100644 --- a/deps/openssl/config/archs/VC-WIN64A/asm/include/openssl/ct.h +++ b/deps/openssl/config/archs/VC-WIN64A/asm/include/openssl/ct.h @@ -133,7 +133,7 @@ typedef enum { */ CT_POLICY_EVAL_CTX *CT_POLICY_EVAL_CTX_new_ex(OSSL_LIB_CTX *libctx, const char *propq); - + /* * The same as CT_POLICY_EVAL_CTX_new_ex() but the default library * context and property query string is used. diff --git a/deps/openssl/config/archs/VC-WIN64A/asm/include/openssl/err.h b/deps/openssl/config/archs/VC-WIN64A/asm/include/openssl/err.h index 2abf2483488181..daca18e7b757b0 100644 --- a/deps/openssl/config/archs/VC-WIN64A/asm/include/openssl/err.h +++ b/deps/openssl/config/archs/VC-WIN64A/asm/include/openssl/err.h @@ -1,5 +1,5 @@ /* - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -372,7 +372,7 @@ typedef struct ERR_string_data_st { } ERR_STRING_DATA; DEFINE_LHASH_OF_INTERNAL(ERR_STRING_DATA); -#define lh_ERR_STRING_DATA_new(hfn, cmp) ((LHASH_OF(ERR_STRING_DATA) *)OPENSSL_LH_new(ossl_check_ERR_STRING_DATA_lh_hashfunc_type(hfn), ossl_check_ERR_STRING_DATA_lh_compfunc_type(cmp))) +#define lh_ERR_STRING_DATA_new(hfn, cmp) ((LHASH_OF(ERR_STRING_DATA) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new(ossl_check_ERR_STRING_DATA_lh_hashfunc_type(hfn), ossl_check_ERR_STRING_DATA_lh_compfunc_type(cmp)), lh_ERR_STRING_DATA_hash_thunk, lh_ERR_STRING_DATA_comp_thunk, lh_ERR_STRING_DATA_doall_thunk, lh_ERR_STRING_DATA_doall_arg_thunk)) #define lh_ERR_STRING_DATA_free(lh) OPENSSL_LH_free(ossl_check_ERR_STRING_DATA_lh_type(lh)) #define lh_ERR_STRING_DATA_flush(lh) OPENSSL_LH_flush(ossl_check_ERR_STRING_DATA_lh_type(lh)) #define lh_ERR_STRING_DATA_insert(lh, ptr) ((ERR_STRING_DATA *)OPENSSL_LH_insert(ossl_check_ERR_STRING_DATA_lh_type(lh), ossl_check_ERR_STRING_DATA_lh_plain_type(ptr))) @@ -496,6 +496,14 @@ int ERR_get_next_error_library(void); int ERR_set_mark(void); int ERR_pop_to_mark(void); int ERR_clear_last_mark(void); +int ERR_count_to_mark(void); +int ERR_pop(void); + +ERR_STATE *OSSL_ERR_STATE_new(void); +void OSSL_ERR_STATE_save(ERR_STATE *es); +void OSSL_ERR_STATE_save_to_mark(ERR_STATE *es); +void OSSL_ERR_STATE_restore(const ERR_STATE *es); +void OSSL_ERR_STATE_free(ERR_STATE *es); #ifdef __cplusplus } diff --git a/deps/openssl/config/archs/VC-WIN64A/asm/include/openssl/fipskey.h b/deps/openssl/config/archs/VC-WIN64A/asm/include/openssl/fipskey.h index bf03682482fdd5..6939fd3c55ba6e 100644 --- a/deps/openssl/config/archs/VC-WIN64A/asm/include/openssl/fipskey.h +++ b/deps/openssl/config/archs/VC-WIN64A/asm/include/openssl/fipskey.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by makefile from include/openssl/fipskey.h.in * - * Copyright 2020-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2020-2024 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -29,6 +29,11 @@ extern "C" { */ #define FIPS_KEY_STRING "f4556650ac31d35461610bac4ed81b1a181b2d8a43ea2854cbae22ca74560813" +/* + * The FIPS provider vendor name, as a string. + */ +#define FIPS_VENDOR "OpenSSL FIPS Provider" + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/VC-WIN64A/asm/include/openssl/lhash.h b/deps/openssl/config/archs/VC-WIN64A/asm/include/openssl/lhash.h index 39dd6254acdeb6..62c55b20fd9716 100644 --- a/deps/openssl/config/archs/VC-WIN64A/asm/include/openssl/lhash.h +++ b/deps/openssl/config/archs/VC-WIN64A/asm/include/openssl/lhash.h @@ -1,5 +1,5 @@ /* - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2024 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -24,6 +24,9 @@ # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -31,9 +34,13 @@ extern "C" { typedef struct lhash_node_st OPENSSL_LH_NODE; typedef int (*OPENSSL_LH_COMPFUNC) (const void *, const void *); +typedef int (*OPENSSL_LH_COMPFUNCTHUNK) (const void *, const void *, OPENSSL_LH_COMPFUNC cfn); typedef unsigned long (*OPENSSL_LH_HASHFUNC) (const void *); +typedef unsigned long (*OPENSSL_LH_HASHFUNCTHUNK) (const void *, OPENSSL_LH_HASHFUNC hfn); typedef void (*OPENSSL_LH_DOALL_FUNC) (void *); +typedef void (*OPENSSL_LH_DOALL_FUNC_THUNK) (void *, OPENSSL_LH_DOALL_FUNC doall); typedef void (*OPENSSL_LH_DOALL_FUNCARG) (void *, void *); +typedef void (*OPENSSL_LH_DOALL_FUNCARG_THUNK) (void *, void *, OPENSSL_LH_DOALL_FUNCARG doall); typedef struct lhash_st OPENSSL_LHASH; /* @@ -79,26 +86,40 @@ typedef struct lhash_st OPENSSL_LHASH; int OPENSSL_LH_error(OPENSSL_LHASH *lh); OPENSSL_LHASH *OPENSSL_LH_new(OPENSSL_LH_HASHFUNC h, OPENSSL_LH_COMPFUNC c); +OPENSSL_LHASH *OPENSSL_LH_set_thunks(OPENSSL_LHASH *lh, + OPENSSL_LH_HASHFUNCTHUNK hw, + OPENSSL_LH_COMPFUNCTHUNK cw, + OPENSSL_LH_DOALL_FUNC_THUNK daw, + OPENSSL_LH_DOALL_FUNCARG_THUNK daaw); void OPENSSL_LH_free(OPENSSL_LHASH *lh); void OPENSSL_LH_flush(OPENSSL_LHASH *lh); void *OPENSSL_LH_insert(OPENSSL_LHASH *lh, void *data); void *OPENSSL_LH_delete(OPENSSL_LHASH *lh, const void *data); void *OPENSSL_LH_retrieve(OPENSSL_LHASH *lh, const void *data); void OPENSSL_LH_doall(OPENSSL_LHASH *lh, OPENSSL_LH_DOALL_FUNC func); -void OPENSSL_LH_doall_arg(OPENSSL_LHASH *lh, OPENSSL_LH_DOALL_FUNCARG func, void *arg); +void OPENSSL_LH_doall_arg(OPENSSL_LHASH *lh, + OPENSSL_LH_DOALL_FUNCARG func, void *arg); +void OPENSSL_LH_doall_arg_thunk(OPENSSL_LHASH *lh, + OPENSSL_LH_DOALL_FUNCARG_THUNK daaw, + OPENSSL_LH_DOALL_FUNCARG fn, void *arg); + unsigned long OPENSSL_LH_strhash(const char *c); unsigned long OPENSSL_LH_num_items(const OPENSSL_LHASH *lh); unsigned long OPENSSL_LH_get_down_load(const OPENSSL_LHASH *lh); void OPENSSL_LH_set_down_load(OPENSSL_LHASH *lh, unsigned long down_load); # ifndef OPENSSL_NO_STDIO -void OPENSSL_LH_stats(const OPENSSL_LHASH *lh, FILE *fp); -void OPENSSL_LH_node_stats(const OPENSSL_LHASH *lh, FILE *fp); -void OPENSSL_LH_node_usage_stats(const OPENSSL_LHASH *lh, FILE *fp); +# ifndef OPENSSL_NO_DEPRECATED_3_1 +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_stats(const OPENSSL_LHASH *lh, FILE *fp); +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_node_stats(const OPENSSL_LHASH *lh, FILE *fp); +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_node_usage_stats(const OPENSSL_LHASH *lh, FILE *fp); +# endif +# endif +# ifndef OPENSSL_NO_DEPRECATED_3_1 +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_stats_bio(const OPENSSL_LHASH *lh, BIO *out); +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_node_stats_bio(const OPENSSL_LHASH *lh, BIO *out); +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_node_usage_stats_bio(const OPENSSL_LHASH *lh, BIO *out); # endif -void OPENSSL_LH_stats_bio(const OPENSSL_LHASH *lh, BIO *out); -void OPENSSL_LH_node_stats_bio(const OPENSSL_LHASH *lh, BIO *out); -void OPENSSL_LH_node_usage_stats_bio(const OPENSSL_LHASH *lh, BIO *out); # ifndef OPENSSL_NO_DEPRECATED_1_1_0 # define _LHASH OPENSSL_LHASH @@ -129,110 +150,190 @@ void OPENSSL_LH_node_usage_stats_bio(const OPENSSL_LHASH *lh, BIO *out); /* Helper macro for internal use */ # define DEFINE_LHASH_OF_INTERNAL(type) \ - LHASH_OF(type) { union lh_##type##_dummy { void* d1; unsigned long d2; int d3; } dummy; }; \ + LHASH_OF(type) { \ + union lh_##type##_dummy { void* d1; unsigned long d2; int d3; } dummy; \ + }; \ typedef int (*lh_##type##_compfunc)(const type *a, const type *b); \ typedef unsigned long (*lh_##type##_hashfunc)(const type *a); \ typedef void (*lh_##type##_doallfunc)(type *a); \ - static ossl_unused ossl_inline type *ossl_check_##type##_lh_plain_type(type *ptr) \ + static ossl_inline unsigned long lh_##type##_hash_thunk(const void *data, OPENSSL_LH_HASHFUNC hfn) \ + { \ + unsigned long (*hfn_conv)(const type *) = (unsigned long (*)(const type *))hfn; \ + return hfn_conv((const type *)data); \ + } \ + static ossl_inline int lh_##type##_comp_thunk(const void *da, const void *db, OPENSSL_LH_COMPFUNC cfn) \ + { \ + int (*cfn_conv)(const type *, const type *) = (int (*)(const type *, const type *))cfn; \ + return cfn_conv((const type *)da, (const type *)db); \ + } \ + static ossl_inline void lh_##type##_doall_thunk(void *node, OPENSSL_LH_DOALL_FUNC doall) \ + { \ + void (*doall_conv)(type *) = (void (*)(type *))doall; \ + doall_conv((type *)node); \ + } \ + static ossl_inline void lh_##type##_doall_arg_thunk(void *node, void *arg, OPENSSL_LH_DOALL_FUNCARG doall) \ + { \ + void (*doall_conv)(type *, void *) = (void (*)(type *, void *))doall; \ + doall_conv((type *)node, arg); \ + } \ + static ossl_unused ossl_inline type *\ + ossl_check_##type##_lh_plain_type(type *ptr) \ { \ return ptr; \ } \ - static ossl_unused ossl_inline const type *ossl_check_const_##type##_lh_plain_type(const type *ptr) \ + static ossl_unused ossl_inline const type * \ + ossl_check_const_##type##_lh_plain_type(const type *ptr) \ { \ return ptr; \ } \ - static ossl_unused ossl_inline const OPENSSL_LHASH *ossl_check_const_##type##_lh_type(const LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline const OPENSSL_LHASH * \ + ossl_check_const_##type##_lh_type(const LHASH_OF(type) *lh) \ { \ return (const OPENSSL_LHASH *)lh; \ } \ - static ossl_unused ossl_inline OPENSSL_LHASH *ossl_check_##type##_lh_type(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline OPENSSL_LHASH * \ + ossl_check_##type##_lh_type(LHASH_OF(type) *lh) \ { \ return (OPENSSL_LHASH *)lh; \ } \ - static ossl_unused ossl_inline OPENSSL_LH_COMPFUNC ossl_check_##type##_lh_compfunc_type(lh_##type##_compfunc cmp) \ + static ossl_unused ossl_inline OPENSSL_LH_COMPFUNC \ + ossl_check_##type##_lh_compfunc_type(lh_##type##_compfunc cmp) \ { \ return (OPENSSL_LH_COMPFUNC)cmp; \ } \ - static ossl_unused ossl_inline OPENSSL_LH_HASHFUNC ossl_check_##type##_lh_hashfunc_type(lh_##type##_hashfunc hfn) \ + static ossl_unused ossl_inline OPENSSL_LH_HASHFUNC \ + ossl_check_##type##_lh_hashfunc_type(lh_##type##_hashfunc hfn) \ { \ return (OPENSSL_LH_HASHFUNC)hfn; \ } \ - static ossl_unused ossl_inline OPENSSL_LH_DOALL_FUNC ossl_check_##type##_lh_doallfunc_type(lh_##type##_doallfunc dfn) \ + static ossl_unused ossl_inline OPENSSL_LH_DOALL_FUNC \ + ossl_check_##type##_lh_doallfunc_type(lh_##type##_doallfunc dfn) \ { \ return (OPENSSL_LH_DOALL_FUNC)dfn; \ } \ LHASH_OF(type) -# define DEFINE_LHASH_OF(type) \ - LHASH_OF(type) { union lh_##type##_dummy { void* d1; unsigned long d2; int d3; } dummy; }; \ - static ossl_unused ossl_inline LHASH_OF(type) *lh_##type##_new(unsigned long (*hfn)(const type *), \ - int (*cfn)(const type *, const type *)) \ +# ifndef OPENSSL_NO_DEPRECATED_3_1 +# define DEFINE_LHASH_OF_DEPRECATED(type) \ + static ossl_unused ossl_inline void \ + lh_##type##_node_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ { \ - return (LHASH_OF(type) *) \ - OPENSSL_LH_new((OPENSSL_LH_HASHFUNC)hfn, (OPENSSL_LH_COMPFUNC)cfn); \ + OPENSSL_LH_node_stats_bio((const OPENSSL_LHASH *)lh, out); \ } \ - static ossl_unused ossl_inline void lh_##type##_free(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline void \ + lh_##type##_node_usage_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + { \ + OPENSSL_LH_node_usage_stats_bio((const OPENSSL_LHASH *)lh, out); \ + } \ + static ossl_unused ossl_inline void \ + lh_##type##_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + { \ + OPENSSL_LH_stats_bio((const OPENSSL_LHASH *)lh, out); \ + } +# else +# define DEFINE_LHASH_OF_DEPRECATED(type) +# endif + +# define DEFINE_LHASH_OF_EX(type) \ + LHASH_OF(type) { \ + union lh_##type##_dummy { void* d1; unsigned long d2; int d3; } dummy; \ + }; \ + static unsigned long \ + lh_##type##_hfn_thunk(const void *data, OPENSSL_LH_HASHFUNC hfn) \ + { \ + unsigned long (*hfn_conv)(const type *) = (unsigned long (*)(const type *))hfn; \ + return hfn_conv((const type *)data); \ + } \ + static int lh_##type##_cfn_thunk(const void *da, const void *db, OPENSSL_LH_COMPFUNC cfn) \ + { \ + int (*cfn_conv)(const type *, const type *) = (int (*)(const type *, const type *))cfn; \ + return cfn_conv((const type *)da, (const type *)db); \ + } \ + static ossl_unused ossl_inline void \ + lh_##type##_free(LHASH_OF(type) *lh) \ { \ OPENSSL_LH_free((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline void lh_##type##_flush(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline void \ + lh_##type##_flush(LHASH_OF(type) *lh) \ { \ OPENSSL_LH_flush((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline type *lh_##type##_insert(LHASH_OF(type) *lh, type *d) \ + static ossl_unused ossl_inline type * \ + lh_##type##_insert(LHASH_OF(type) *lh, type *d) \ { \ return (type *)OPENSSL_LH_insert((OPENSSL_LHASH *)lh, d); \ } \ - static ossl_unused ossl_inline type *lh_##type##_delete(LHASH_OF(type) *lh, const type *d) \ + static ossl_unused ossl_inline type * \ + lh_##type##_delete(LHASH_OF(type) *lh, const type *d) \ { \ return (type *)OPENSSL_LH_delete((OPENSSL_LHASH *)lh, d); \ } \ - static ossl_unused ossl_inline type *lh_##type##_retrieve(LHASH_OF(type) *lh, const type *d) \ + static ossl_unused ossl_inline type * \ + lh_##type##_retrieve(LHASH_OF(type) *lh, const type *d) \ { \ return (type *)OPENSSL_LH_retrieve((OPENSSL_LHASH *)lh, d); \ } \ - static ossl_unused ossl_inline int lh_##type##_error(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline int \ + lh_##type##_error(LHASH_OF(type) *lh) \ { \ return OPENSSL_LH_error((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline unsigned long lh_##type##_num_items(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline unsigned long \ + lh_##type##_num_items(LHASH_OF(type) *lh) \ { \ return OPENSSL_LH_num_items((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline void lh_##type##_node_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + static ossl_unused ossl_inline unsigned long \ + lh_##type##_get_down_load(LHASH_OF(type) *lh) \ { \ - OPENSSL_LH_node_stats_bio((const OPENSSL_LHASH *)lh, out); \ + return OPENSSL_LH_get_down_load((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline void lh_##type##_node_usage_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + static ossl_unused ossl_inline void \ + lh_##type##_set_down_load(LHASH_OF(type) *lh, unsigned long dl) \ { \ - OPENSSL_LH_node_usage_stats_bio((const OPENSSL_LHASH *)lh, out); \ + OPENSSL_LH_set_down_load((OPENSSL_LHASH *)lh, dl); \ } \ - static ossl_unused ossl_inline void lh_##type##_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall_thunk(void *node, OPENSSL_LH_DOALL_FUNC doall) \ { \ - OPENSSL_LH_stats_bio((const OPENSSL_LHASH *)lh, out); \ + void (*doall_conv)(type *) = (void (*)(type *))doall; \ + doall_conv((type *)node); \ } \ - static ossl_unused ossl_inline unsigned long lh_##type##_get_down_load(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall_arg_thunk(void *node, void *arg, OPENSSL_LH_DOALL_FUNCARG doall) \ { \ - return OPENSSL_LH_get_down_load((OPENSSL_LHASH *)lh); \ + void (*doall_conv)(type *, void *) = (void (*)(type *, void *))doall; \ + doall_conv((type *)node, arg); \ } \ - static ossl_unused ossl_inline void lh_##type##_set_down_load(LHASH_OF(type) *lh, unsigned long dl) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall(LHASH_OF(type) *lh, void (*doall)(type *)) \ { \ - OPENSSL_LH_set_down_load((OPENSSL_LHASH *)lh, dl); \ + OPENSSL_LH_doall((OPENSSL_LHASH *)lh, (OPENSSL_LH_DOALL_FUNC)doall); \ } \ - static ossl_unused ossl_inline void lh_##type##_doall(LHASH_OF(type) *lh, \ - void (*doall)(type *)) \ + static ossl_unused ossl_inline LHASH_OF(type) * \ + lh_##type##_new(unsigned long (*hfn)(const type *), \ + int (*cfn)(const type *, const type *)) \ { \ - OPENSSL_LH_doall((OPENSSL_LHASH *)lh, (OPENSSL_LH_DOALL_FUNC)doall); \ + return (LHASH_OF(type) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new((OPENSSL_LH_HASHFUNC)hfn, (OPENSSL_LH_COMPFUNC)cfn), \ + lh_##type##_hfn_thunk, lh_##type##_cfn_thunk, \ + lh_##type##_doall_thunk, \ + lh_##type##_doall_arg_thunk); \ } \ - static ossl_unused ossl_inline void lh_##type##_doall_arg(LHASH_OF(type) *lh, \ - void (*doallarg)(type *, void *), \ - void *arg) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall_arg(LHASH_OF(type) *lh, \ + void (*doallarg)(type *, void *), void *arg) \ { \ OPENSSL_LH_doall_arg((OPENSSL_LHASH *)lh, \ (OPENSSL_LH_DOALL_FUNCARG)doallarg, arg); \ } \ LHASH_OF(type) +# define DEFINE_LHASH_OF(type) \ + DEFINE_LHASH_OF_EX(type); \ + DEFINE_LHASH_OF_DEPRECATED(type) \ + LHASH_OF(type) + #define IMPLEMENT_LHASH_DOALL_ARG_CONST(type, argtype) \ int_implement_lhash_doall(type, argtype, const type) @@ -240,17 +341,26 @@ void OPENSSL_LH_node_usage_stats_bio(const OPENSSL_LHASH *lh, BIO *out); int_implement_lhash_doall(type, argtype, type) #define int_implement_lhash_doall(type, argtype, cbargtype) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall_##argtype##_thunk(void *node, void *arg, OPENSSL_LH_DOALL_FUNCARG fn) \ + { \ + void (*fn_conv)(cbargtype *, argtype *) = (void (*)(cbargtype *, argtype *))fn; \ + fn_conv((cbargtype *)node, (argtype *)arg); \ + } \ static ossl_unused ossl_inline void \ lh_##type##_doall_##argtype(LHASH_OF(type) *lh, \ void (*fn)(cbargtype *, argtype *), \ argtype *arg) \ { \ - OPENSSL_LH_doall_arg((OPENSSL_LHASH *)lh, (OPENSSL_LH_DOALL_FUNCARG)fn, (void *)arg); \ + OPENSSL_LH_doall_arg_thunk((OPENSSL_LHASH *)lh, \ + lh_##type##_doall_##argtype##_thunk, \ + (OPENSSL_LH_DOALL_FUNCARG)fn, \ + (void *)arg); \ } \ LHASH_OF(type) DEFINE_LHASH_OF_INTERNAL(OPENSSL_STRING); -#define lh_OPENSSL_STRING_new(hfn, cmp) ((LHASH_OF(OPENSSL_STRING) *)OPENSSL_LH_new(ossl_check_OPENSSL_STRING_lh_hashfunc_type(hfn), ossl_check_OPENSSL_STRING_lh_compfunc_type(cmp))) +#define lh_OPENSSL_STRING_new(hfn, cmp) ((LHASH_OF(OPENSSL_STRING) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new(ossl_check_OPENSSL_STRING_lh_hashfunc_type(hfn), ossl_check_OPENSSL_STRING_lh_compfunc_type(cmp)), lh_OPENSSL_STRING_hash_thunk, lh_OPENSSL_STRING_comp_thunk, lh_OPENSSL_STRING_doall_thunk, lh_OPENSSL_STRING_doall_arg_thunk)) #define lh_OPENSSL_STRING_free(lh) OPENSSL_LH_free(ossl_check_OPENSSL_STRING_lh_type(lh)) #define lh_OPENSSL_STRING_flush(lh) OPENSSL_LH_flush(ossl_check_OPENSSL_STRING_lh_type(lh)) #define lh_OPENSSL_STRING_insert(lh, ptr) ((OPENSSL_STRING *)OPENSSL_LH_insert(ossl_check_OPENSSL_STRING_lh_type(lh), ossl_check_OPENSSL_STRING_lh_plain_type(ptr))) @@ -265,7 +375,7 @@ DEFINE_LHASH_OF_INTERNAL(OPENSSL_STRING); #define lh_OPENSSL_STRING_set_down_load(lh, dl) OPENSSL_LH_set_down_load(ossl_check_OPENSSL_STRING_lh_type(lh), dl) #define lh_OPENSSL_STRING_doall(lh, dfn) OPENSSL_LH_doall(ossl_check_OPENSSL_STRING_lh_type(lh), ossl_check_OPENSSL_STRING_lh_doallfunc_type(dfn)) DEFINE_LHASH_OF_INTERNAL(OPENSSL_CSTRING); -#define lh_OPENSSL_CSTRING_new(hfn, cmp) ((LHASH_OF(OPENSSL_CSTRING) *)OPENSSL_LH_new(ossl_check_OPENSSL_CSTRING_lh_hashfunc_type(hfn), ossl_check_OPENSSL_CSTRING_lh_compfunc_type(cmp))) +#define lh_OPENSSL_CSTRING_new(hfn, cmp) ((LHASH_OF(OPENSSL_CSTRING) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new(ossl_check_OPENSSL_CSTRING_lh_hashfunc_type(hfn), ossl_check_OPENSSL_CSTRING_lh_compfunc_type(cmp)), lh_OPENSSL_CSTRING_hash_thunk, lh_OPENSSL_CSTRING_comp_thunk, lh_OPENSSL_CSTRING_doall_thunk, lh_OPENSSL_CSTRING_doall_arg_thunk)) #define lh_OPENSSL_CSTRING_free(lh) OPENSSL_LH_free(ossl_check_OPENSSL_CSTRING_lh_type(lh)) #define lh_OPENSSL_CSTRING_flush(lh) OPENSSL_LH_flush(ossl_check_OPENSSL_CSTRING_lh_type(lh)) #define lh_OPENSSL_CSTRING_insert(lh, ptr) ((OPENSSL_CSTRING *)OPENSSL_LH_insert(ossl_check_OPENSSL_CSTRING_lh_type(lh), ossl_check_OPENSSL_CSTRING_lh_plain_type(ptr))) diff --git a/deps/openssl/config/archs/VC-WIN64A/asm/include/openssl/opensslv.h b/deps/openssl/config/archs/VC-WIN64A/asm/include/openssl/opensslv.h index 94f44daf376f8e..a26d4e609af1b7 100644 --- a/deps/openssl/config/archs/VC-WIN64A/asm/include/openssl/opensslv.h +++ b/deps/openssl/config/archs/VC-WIN64A/asm/include/openssl/opensslv.h @@ -28,8 +28,8 @@ extern "C" { * These macros express version number MAJOR.MINOR.PATCH exactly */ # define OPENSSL_VERSION_MAJOR 3 -# define OPENSSL_VERSION_MINOR 0 -# define OPENSSL_VERSION_PATCH 17 +# define OPENSSL_VERSION_MINOR 5 +# define OPENSSL_VERSION_PATCH 1 /* * Additional version information @@ -74,8 +74,8 @@ extern "C" { * longer variant with OPENSSL_VERSION_PRE_RELEASE_STR and * OPENSSL_VERSION_BUILD_METADATA_STR appended. */ -# define OPENSSL_VERSION_STR "3.0.17" -# define OPENSSL_FULL_VERSION_STR "3.0.17" +# define OPENSSL_VERSION_STR "3.5.1" +# define OPENSSL_FULL_VERSION_STR "3.5.1" /* * SECTION 3: ADDITIONAL METADATA @@ -88,7 +88,7 @@ extern "C" { * SECTION 4: BACKWARD COMPATIBILITY */ -# define OPENSSL_VERSION_TEXT "OpenSSL 3.0.17 1 Jul 2025" +# define OPENSSL_VERSION_TEXT "OpenSSL 3.5.1 1 Jul 2025" /* Synthesize OPENSSL_VERSION_NUMBER with the layout 0xMNN00PPSL */ # ifdef OPENSSL_VERSION_PRE_RELEASE diff --git a/deps/openssl/config/archs/VC-WIN64A/asm/include/openssl/pkcs12.h b/deps/openssl/config/archs/VC-WIN64A/asm/include/openssl/pkcs12.h index 80369818c8ecdc..35d04f039366ce 100644 --- a/deps/openssl/config/archs/VC-WIN64A/asm/include/openssl/pkcs12.h +++ b/deps/openssl/config/archs/VC-WIN64A/asm/include/openssl/pkcs12.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by makefile from include/openssl/pkcs12.h.in * - * Copyright 1999-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1999-2024 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -25,6 +25,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -41,6 +44,7 @@ extern "C" { # define PKCS12_MAC_KEY_LENGTH 20 +/* The macro is expected to be used only internally. Kept for backwards compatibility. */ # define PKCS12_SALT_LEN 8 /* It's not clear if these are actually needed... */ @@ -130,7 +134,9 @@ int PKCS12_SAFEBAG_get_bag_nid(const PKCS12_SAFEBAG *bag); const ASN1_TYPE *PKCS12_SAFEBAG_get0_bag_obj(const PKCS12_SAFEBAG *bag); const ASN1_OBJECT *PKCS12_SAFEBAG_get0_bag_type(const PKCS12_SAFEBAG *bag); +X509 *PKCS12_SAFEBAG_get1_cert_ex(const PKCS12_SAFEBAG *bag, OSSL_LIB_CTX *libctx, const char *propq); X509 *PKCS12_SAFEBAG_get1_cert(const PKCS12_SAFEBAG *bag); +X509_CRL *PKCS12_SAFEBAG_get1_crl_ex(const PKCS12_SAFEBAG *bag, OSSL_LIB_CTX *libctx, const char *propq); X509_CRL *PKCS12_SAFEBAG_get1_crl(const PKCS12_SAFEBAG *bag); const STACK_OF(PKCS12_SAFEBAG) * PKCS12_SAFEBAG_get0_safes(const PKCS12_SAFEBAG *bag); @@ -218,6 +224,7 @@ ASN1_TYPE *PKCS12_get_attr_gen(const STACK_OF(X509_ATTRIBUTE) *attrs, char *PKCS12_get_friendlyname(PKCS12_SAFEBAG *bag); const STACK_OF(X509_ATTRIBUTE) * PKCS12_SAFEBAG_get0_attrs(const PKCS12_SAFEBAG *bag); +void PKCS12_SAFEBAG_set0_attrs(PKCS12_SAFEBAG *bag, STACK_OF(X509_ATTRIBUTE) *attrs); unsigned char *PKCS12_pbe_crypt(const X509_ALGOR *algor, const char *pass, int passlen, const unsigned char *in, int inlen, @@ -285,6 +292,9 @@ int PKCS12_verify_mac(PKCS12 *p12, const char *pass, int passlen); int PKCS12_set_mac(PKCS12 *p12, const char *pass, int passlen, unsigned char *salt, int saltlen, int iter, const EVP_MD *md_type); +int PKCS12_set_pbmac1_pbkdf2(PKCS12 *p12, const char *pass, int passlen, + unsigned char *salt, int saltlen, int iter, + const EVP_MD *md_type, const char *prf_md_name); int PKCS12_setup_mac(PKCS12 *p12, int iter, unsigned char *salt, int saltlen, const EVP_MD *md_type); unsigned char *OPENSSL_asc2uni(const char *asc, int asclen, @@ -305,6 +315,7 @@ DECLARE_ASN1_ITEM(PKCS12_AUTHSAFES) void PKCS12_PBE_add(void); int PKCS12_parse(PKCS12 *p12, const char *pass, EVP_PKEY **pkey, X509 **cert, STACK_OF(X509) **ca); +typedef int PKCS12_create_cb(PKCS12_SAFEBAG *bag, void *cbarg); PKCS12 *PKCS12_create(const char *pass, const char *name, EVP_PKEY *pkey, X509 *cert, STACK_OF(X509) *ca, int nid_key, int nid_cert, int iter, int mac_iter, int keytype); @@ -312,6 +323,11 @@ PKCS12 *PKCS12_create_ex(const char *pass, const char *name, EVP_PKEY *pkey, X509 *cert, STACK_OF(X509) *ca, int nid_key, int nid_cert, int iter, int mac_iter, int keytype, OSSL_LIB_CTX *ctx, const char *propq); +PKCS12 *PKCS12_create_ex2(const char *pass, const char *name, EVP_PKEY *pkey, + X509 *cert, STACK_OF(X509) *ca, int nid_key, int nid_cert, + int iter, int mac_iter, int keytype, + OSSL_LIB_CTX *ctx, const char *propq, + PKCS12_create_cb *cb, void *cbarg); PKCS12_SAFEBAG *PKCS12_add_cert(STACK_OF(PKCS12_SAFEBAG) **pbags, X509 *cert); PKCS12_SAFEBAG *PKCS12_add_key(STACK_OF(PKCS12_SAFEBAG) **pbags, diff --git a/deps/openssl/config/archs/VC-WIN64A/asm/include/openssl/pkcs7.h b/deps/openssl/config/archs/VC-WIN64A/asm/include/openssl/pkcs7.h index 0a95a93e59e262..641d9411a47354 100644 --- a/deps/openssl/config/archs/VC-WIN64A/asm/include/openssl/pkcs7.h +++ b/deps/openssl/config/archs/VC-WIN64A/asm/include/openssl/pkcs7.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by makefile from include/openssl/pkcs7.h.in * - * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -28,6 +28,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -131,8 +134,8 @@ SKM_DEFINE_STACK_OF_INTERNAL(PKCS7_RECIP_INFO, PKCS7_RECIP_INFO, PKCS7_RECIP_INF typedef struct pkcs7_signed_st { ASN1_INTEGER *version; /* version 1 */ STACK_OF(X509_ALGOR) *md_algs; /* md used */ - STACK_OF(X509) *cert; /* [ 0 ] */ - STACK_OF(X509_CRL) *crl; /* [ 1 ] */ + STACK_OF(X509) *cert; /* [ 0 ] */ /* name should be 'certificates' */ + STACK_OF(X509_CRL) *crl; /* [ 1 ] */ /* name should be 'crls' */ STACK_OF(PKCS7_SIGNER_INFO) *signer_info; struct pkcs7_st *contents; } PKCS7_SIGNED; @@ -158,8 +161,8 @@ typedef struct pkcs7_enveloped_st { typedef struct pkcs7_signedandenveloped_st { ASN1_INTEGER *version; /* version 1 */ STACK_OF(X509_ALGOR) *md_algs; /* md used */ - STACK_OF(X509) *cert; /* [ 0 ] */ - STACK_OF(X509_CRL) *crl; /* [ 1 ] */ + STACK_OF(X509) *cert; /* [ 0 ] */ /* name should be 'certificates' */ + STACK_OF(X509_CRL) *crl; /* [ 1 ] */ /* name should be 'crls' */ STACK_OF(PKCS7_SIGNER_INFO) *signer_info; PKCS7_ENC_CONTENT *enc_data; STACK_OF(PKCS7_RECIP_INFO) *recipientinfo; @@ -200,7 +203,7 @@ typedef struct pkcs7_st { /* NID_pkcs7_data */ ASN1_OCTET_STRING *data; /* NID_pkcs7_signed */ - PKCS7_SIGNED *sign; + PKCS7_SIGNED *sign; /* field name 'signed' would clash with C keyword */ /* NID_pkcs7_enveloped */ PKCS7_ENVELOPE *enveloped; /* NID_pkcs7_signedAndEnveloped */ @@ -341,13 +344,13 @@ int PKCS7_SIGNER_INFO_set(PKCS7_SIGNER_INFO *p7i, X509 *x509, EVP_PKEY *pkey, const EVP_MD *dgst); int PKCS7_SIGNER_INFO_sign(PKCS7_SIGNER_INFO *si); int PKCS7_add_signer(PKCS7 *p7, PKCS7_SIGNER_INFO *p7i); -int PKCS7_add_certificate(PKCS7 *p7, X509 *x509); -int PKCS7_add_crl(PKCS7 *p7, X509_CRL *x509); +int PKCS7_add_certificate(PKCS7 *p7, X509 *cert); +int PKCS7_add_crl(PKCS7 *p7, X509_CRL *crl); int PKCS7_content_new(PKCS7 *p7, int nid); int PKCS7_dataVerify(X509_STORE *cert_store, X509_STORE_CTX *ctx, BIO *bio, PKCS7 *p7, PKCS7_SIGNER_INFO *si); int PKCS7_signatureVerify(BIO *bio, PKCS7 *p7, PKCS7_SIGNER_INFO *si, - X509 *x509); + X509 *signer); BIO *PKCS7_dataInit(PKCS7 *p7, BIO *bio); int PKCS7_dataFinal(PKCS7 *p7, BIO *bio); diff --git a/deps/openssl/config/archs/VC-WIN64A/asm/include/openssl/ssl.h b/deps/openssl/config/archs/VC-WIN64A/asm/include/openssl/ssl.h index 7e9ca09bbf39f0..6396681867d76c 100644 --- a/deps/openssl/config/archs/VC-WIN64A/asm/include/openssl/ssl.h +++ b/deps/openssl/config/archs/VC-WIN64A/asm/include/openssl/ssl.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by makefile from include/openssl/ssl.h.in * - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved * Copyright 2005 Nokia. All rights reserved. * @@ -24,6 +24,7 @@ # endif # include +# include # include # include # include @@ -42,6 +43,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -231,10 +235,8 @@ typedef struct ssl_cipher_st SSL_CIPHER; typedef struct ssl_session_st SSL_SESSION; typedef struct tls_sigalgs_st TLS_SIGALGS; typedef struct ssl_conf_ctx_st SSL_CONF_CTX; -typedef struct ssl_comp_st SSL_COMP; STACK_OF(SSL_CIPHER); -STACK_OF(SSL_COMP); /* SRTP protection profiles for use with the use_srtp extension (RFC 5764)*/ typedef struct srtp_protection_profile_st { @@ -278,28 +280,31 @@ typedef int (*tls_session_secret_cb_fn)(SSL *s, void *secret, int *secret_len, /* Extension context codes */ /* This extension is only allowed in TLS */ -#define SSL_EXT_TLS_ONLY 0x0001 +#define SSL_EXT_TLS_ONLY 0x00001 /* This extension is only allowed in DTLS */ -#define SSL_EXT_DTLS_ONLY 0x0002 +#define SSL_EXT_DTLS_ONLY 0x00002 /* Some extensions may be allowed in DTLS but we don't implement them for it */ -#define SSL_EXT_TLS_IMPLEMENTATION_ONLY 0x0004 +#define SSL_EXT_TLS_IMPLEMENTATION_ONLY 0x00004 /* Most extensions are not defined for SSLv3 but EXT_TYPE_renegotiate is */ -#define SSL_EXT_SSL3_ALLOWED 0x0008 +#define SSL_EXT_SSL3_ALLOWED 0x00008 /* Extension is only defined for TLS1.2 and below */ -#define SSL_EXT_TLS1_2_AND_BELOW_ONLY 0x0010 +#define SSL_EXT_TLS1_2_AND_BELOW_ONLY 0x00010 /* Extension is only defined for TLS1.3 and above */ -#define SSL_EXT_TLS1_3_ONLY 0x0020 +#define SSL_EXT_TLS1_3_ONLY 0x00020 /* Ignore this extension during parsing if we are resuming */ -#define SSL_EXT_IGNORE_ON_RESUMPTION 0x0040 -#define SSL_EXT_CLIENT_HELLO 0x0080 +#define SSL_EXT_IGNORE_ON_RESUMPTION 0x00040 +#define SSL_EXT_CLIENT_HELLO 0x00080 /* Really means TLS1.2 or below */ -#define SSL_EXT_TLS1_2_SERVER_HELLO 0x0100 -#define SSL_EXT_TLS1_3_SERVER_HELLO 0x0200 -#define SSL_EXT_TLS1_3_ENCRYPTED_EXTENSIONS 0x0400 -#define SSL_EXT_TLS1_3_HELLO_RETRY_REQUEST 0x0800 -#define SSL_EXT_TLS1_3_CERTIFICATE 0x1000 -#define SSL_EXT_TLS1_3_NEW_SESSION_TICKET 0x2000 -#define SSL_EXT_TLS1_3_CERTIFICATE_REQUEST 0x4000 +#define SSL_EXT_TLS1_2_SERVER_HELLO 0x00100 +#define SSL_EXT_TLS1_3_SERVER_HELLO 0x00200 +#define SSL_EXT_TLS1_3_ENCRYPTED_EXTENSIONS 0x00400 +#define SSL_EXT_TLS1_3_HELLO_RETRY_REQUEST 0x00800 +#define SSL_EXT_TLS1_3_CERTIFICATE 0x01000 +#define SSL_EXT_TLS1_3_NEW_SESSION_TICKET 0x02000 +#define SSL_EXT_TLS1_3_CERTIFICATE_REQUEST 0x04000 +#define SSL_EXT_TLS1_3_CERTIFICATE_COMPRESSION 0x08000 +/* When sending a raw public key in a certificate message */ +#define SSL_EXT_TLS1_3_RAW_PUBLIC_KEY 0x10000 /* Typedefs for handling custom extensions */ @@ -404,7 +409,7 @@ typedef int (*SSL_async_callback_fn)(SSL *s, void *arg); */ # define SSL_OP_CIPHER_SERVER_PREFERENCE SSL_OP_BIT(22) /* - * If set, a server will allow a client to issue a SSLv3.0 version + * If set, a server will allow a client to issue an SSLv3.0 version * number as latest version supported in the premaster secret, even when * TLSv1.0 (version 3.1) was announced in the client hello. Normally * this is forbidden to prevent version rollback attacks. @@ -430,6 +435,19 @@ typedef int (*SSL_async_callback_fn)(SSL *s, void *arg); * interoperability with CryptoPro CSP 3.x */ # define SSL_OP_CRYPTOPRO_TLSEXT_BUG SSL_OP_BIT(31) +/* + * Disable RFC8879 certificate compression + * SSL_OP_NO_TX_CERTIFICATE_COMPRESSION: don't send compressed certificates, + * and ignore the extension when received. + * SSL_OP_NO_RX_CERTIFICATE_COMPRESSION: don't send the extension, and + * subsequently indicating that receiving is not supported + */ +# define SSL_OP_NO_TX_CERTIFICATE_COMPRESSION SSL_OP_BIT(32) +# define SSL_OP_NO_RX_CERTIFICATE_COMPRESSION SSL_OP_BIT(33) + /* Enable KTLS TX zerocopy on Linux */ +# define SSL_OP_ENABLE_KTLS_TX_ZEROCOPY_SENDFILE SSL_OP_BIT(34) + +#define SSL_OP_PREFER_NO_DHE_KEX SSL_OP_BIT(35) /* * Option "collections." @@ -574,6 +592,8 @@ typedef int (*SSL_async_callback_fn)(SSL *s, void *arg); # define CERT_PKEY_CERT_TYPE 0x400 /* Cert chain suitable to Suite B */ # define CERT_PKEY_SUITEB 0x800 +/* Cert pkey valid for raw public key use */ +# define CERT_PKEY_RPK 0x1000 # define SSL_CONF_FLAG_CMDLINE 0x1 # define SSL_CONF_FLAG_FILE 0x2 @@ -965,6 +985,7 @@ uint32_t SSL_get_recv_max_early_data(const SSL *s); # include /* This is mostly sslv3 with a few tweaks */ # include /* Datagram TLS */ # include /* Support for the use_srtp extension */ +# include #ifdef __cplusplus extern "C" { @@ -1000,32 +1021,6 @@ SKM_DEFINE_STACK_OF_INTERNAL(SSL_CIPHER, const SSL_CIPHER, SSL_CIPHER) #define sk_SSL_CIPHER_dup(sk) ((STACK_OF(SSL_CIPHER) *)OPENSSL_sk_dup(ossl_check_const_SSL_CIPHER_sk_type(sk))) #define sk_SSL_CIPHER_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(SSL_CIPHER) *)OPENSSL_sk_deep_copy(ossl_check_const_SSL_CIPHER_sk_type(sk), ossl_check_SSL_CIPHER_copyfunc_type(copyfunc), ossl_check_SSL_CIPHER_freefunc_type(freefunc))) #define sk_SSL_CIPHER_set_cmp_func(sk, cmp) ((sk_SSL_CIPHER_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_SSL_CIPHER_sk_type(sk), ossl_check_SSL_CIPHER_compfunc_type(cmp))) -SKM_DEFINE_STACK_OF_INTERNAL(SSL_COMP, SSL_COMP, SSL_COMP) -#define sk_SSL_COMP_num(sk) OPENSSL_sk_num(ossl_check_const_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_value(sk, idx) ((SSL_COMP *)OPENSSL_sk_value(ossl_check_const_SSL_COMP_sk_type(sk), (idx))) -#define sk_SSL_COMP_new(cmp) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new(ossl_check_SSL_COMP_compfunc_type(cmp))) -#define sk_SSL_COMP_new_null() ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new_null()) -#define sk_SSL_COMP_new_reserve(cmp, n) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new_reserve(ossl_check_SSL_COMP_compfunc_type(cmp), (n))) -#define sk_SSL_COMP_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_SSL_COMP_sk_type(sk), (n)) -#define sk_SSL_COMP_free(sk) OPENSSL_sk_free(ossl_check_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_zero(sk) OPENSSL_sk_zero(ossl_check_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_delete(sk, i) ((SSL_COMP *)OPENSSL_sk_delete(ossl_check_SSL_COMP_sk_type(sk), (i))) -#define sk_SSL_COMP_delete_ptr(sk, ptr) ((SSL_COMP *)OPENSSL_sk_delete_ptr(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr))) -#define sk_SSL_COMP_push(sk, ptr) OPENSSL_sk_push(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) -#define sk_SSL_COMP_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) -#define sk_SSL_COMP_pop(sk) ((SSL_COMP *)OPENSSL_sk_pop(ossl_check_SSL_COMP_sk_type(sk))) -#define sk_SSL_COMP_shift(sk) ((SSL_COMP *)OPENSSL_sk_shift(ossl_check_SSL_COMP_sk_type(sk))) -#define sk_SSL_COMP_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_SSL_COMP_sk_type(sk),ossl_check_SSL_COMP_freefunc_type(freefunc)) -#define sk_SSL_COMP_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr), (idx)) -#define sk_SSL_COMP_set(sk, idx, ptr) ((SSL_COMP *)OPENSSL_sk_set(ossl_check_SSL_COMP_sk_type(sk), (idx), ossl_check_SSL_COMP_type(ptr))) -#define sk_SSL_COMP_find(sk, ptr) OPENSSL_sk_find(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) -#define sk_SSL_COMP_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) -#define sk_SSL_COMP_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr), pnum) -#define sk_SSL_COMP_sort(sk) OPENSSL_sk_sort(ossl_check_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_dup(sk) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_dup(ossl_check_const_SSL_COMP_sk_type(sk))) -#define sk_SSL_COMP_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_deep_copy(ossl_check_const_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_copyfunc_type(copyfunc), ossl_check_SSL_COMP_freefunc_type(freefunc))) -#define sk_SSL_COMP_set_cmp_func(sk, cmp) ((sk_SSL_COMP_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_compfunc_type(cmp))) /* compatibility */ @@ -1066,6 +1061,7 @@ typedef enum { DTLS_ST_CR_HELLO_VERIFY_REQUEST, TLS_ST_CR_SRVR_HELLO, TLS_ST_CR_CERT, + TLS_ST_CR_COMP_CERT, TLS_ST_CR_CERT_STATUS, TLS_ST_CR_KEY_EXCH, TLS_ST_CR_CERT_REQ, @@ -1075,6 +1071,7 @@ typedef enum { TLS_ST_CR_FINISHED, TLS_ST_CW_CLNT_HELLO, TLS_ST_CW_CERT, + TLS_ST_CW_COMP_CERT, TLS_ST_CW_KEY_EXCH, TLS_ST_CW_CERT_VRFY, TLS_ST_CW_CHANGE, @@ -1085,10 +1082,12 @@ typedef enum { DTLS_ST_SW_HELLO_VERIFY_REQUEST, TLS_ST_SW_SRVR_HELLO, TLS_ST_SW_CERT, + TLS_ST_SW_COMP_CERT, TLS_ST_SW_KEY_EXCH, TLS_ST_SW_CERT_REQ, TLS_ST_SW_SRVR_DONE, TLS_ST_SR_CERT, + TLS_ST_SR_COMP_CERT, TLS_ST_SR_KEY_EXCH, TLS_ST_SR_CERT_VRFY, TLS_ST_SR_NEXT_PROTO, @@ -1380,9 +1379,13 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) # define SSL_CTRL_GET_SIGNATURE_NID 132 # define SSL_CTRL_GET_TMP_KEY 133 # define SSL_CTRL_GET_NEGOTIATED_GROUP 134 +# define SSL_CTRL_GET_IANA_GROUPS 135 # define SSL_CTRL_SET_RETRY_VERIFY 136 # define SSL_CTRL_GET_VERIFY_CERT_STORE 137 # define SSL_CTRL_GET_CHAIN_CERT_STORE 138 +# define SSL_CTRL_GET0_IMPLEMENTED_GROUPS 139 +# define SSL_CTRL_GET_SIGNATURE_NAME 140 +# define SSL_CTRL_GET_PEER_SIGNATURE_NAME 141 # define SSL_CERT_SET_FIRST 1 # define SSL_CERT_SET_NEXT 2 # define SSL_CERT_SET_SERVER 3 @@ -1485,10 +1488,15 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) # define SSL_get1_groups(s, glist) \ SSL_ctrl(s,SSL_CTRL_GET_GROUPS,0,(int*)(glist)) +# define SSL_get0_iana_groups(s, plst) \ + SSL_ctrl(s,SSL_CTRL_GET_IANA_GROUPS,0,(uint16_t **)(plst)) # define SSL_CTX_set1_groups(ctx, glist, glistlen) \ SSL_CTX_ctrl(ctx,SSL_CTRL_SET_GROUPS,glistlen,(int *)(glist)) # define SSL_CTX_set1_groups_list(ctx, s) \ SSL_CTX_ctrl(ctx,SSL_CTRL_SET_GROUPS_LIST,0,(char *)(s)) +# define SSL_CTX_get0_implemented_groups(ctx, all, out) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_GET0_IMPLEMENTED_GROUPS, all, \ + (STACK_OF(OPENSSL_CSTRING) *)(out)) # define SSL_set1_groups(s, glist, glistlen) \ SSL_ctrl(s,SSL_CTRL_SET_GROUPS,glistlen,(char *)(glist)) # define SSL_set1_groups_list(s, str) \ @@ -1520,8 +1528,12 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) (char *)(clist)) # define SSL_set1_client_certificate_types(s, clist, clistlen) \ SSL_ctrl(s,SSL_CTRL_SET_CLIENT_CERT_TYPES,clistlen,(char *)(clist)) +# define SSL_get0_signature_name(s, str) \ + SSL_ctrl(s,SSL_CTRL_GET_SIGNATURE_NAME,0,(1?(str):(const char **)NULL)) # define SSL_get_signature_nid(s, pn) \ SSL_ctrl(s,SSL_CTRL_GET_SIGNATURE_NID,0,pn) +# define SSL_get0_peer_signature_name(s, str) \ + SSL_ctrl(s,SSL_CTRL_GET_PEER_SIGNATURE_NAME,0,(1?(str):(const char **)NULL)) # define SSL_get_peer_signature_nid(s, pn) \ SSL_ctrl(s,SSL_CTRL_GET_PEER_SIGNATURE_NID,0,pn) # define SSL_get_peer_tmp_key(s, pk) \ @@ -1549,6 +1561,7 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) # define SSL_get_max_proto_version(s) \ SSL_ctrl(s, SSL_CTRL_GET_MAX_PROTO_VERSION, 0, NULL) +const char *SSL_get0_group_name(SSL *s); const char *SSL_group_to_name(SSL *s, int id); /* Backwards compatibility, original 1.1.0 names */ @@ -1613,7 +1626,11 @@ void SSL_CTX_set1_cert_store(SSL_CTX *, X509_STORE *); __owur int SSL_want(const SSL *s); __owur int SSL_clear(SSL *s); +#ifndef OPENSSL_NO_DEPRECATED_3_4 +OSSL_DEPRECATEDIN_3_4_FOR("not Y2038-safe, replace with SSL_CTX_flush_sessions_ex()") void SSL_CTX_flush_sessions(SSL_CTX *ctx, long tm); +#endif +void SSL_CTX_flush_sessions_ex(SSL_CTX *ctx, time_t tm); __owur const SSL_CIPHER *SSL_get_current_cipher(const SSL *s); __owur const SSL_CIPHER *SSL_get_pending_cipher(const SSL *s); @@ -1725,13 +1742,21 @@ __owur const char *SSL_state_string(const SSL *s); __owur const char *SSL_rstate_string(const SSL *s); __owur const char *SSL_state_string_long(const SSL *s); __owur const char *SSL_rstate_string_long(const SSL *s); + +#ifndef OPENSSL_NO_DEPRECATED_3_4 +OSSL_DEPRECATEDIN_3_4_FOR("not Y2038-safe, replace with SSL_SESSION_get_time_ex()") __owur long SSL_SESSION_get_time(const SSL_SESSION *s); +OSSL_DEPRECATEDIN_3_4_FOR("not Y2038-safe, replace with SSL_SESSION_set_time_ex()") __owur long SSL_SESSION_set_time(SSL_SESSION *s, long t); +#endif __owur long SSL_SESSION_get_timeout(const SSL_SESSION *s); __owur long SSL_SESSION_set_timeout(SSL_SESSION *s, long t); __owur int SSL_SESSION_get_protocol_version(const SSL_SESSION *s); __owur int SSL_SESSION_set_protocol_version(SSL_SESSION *s, int version); +__owur time_t SSL_SESSION_get_time_ex(const SSL_SESSION *s); +__owur time_t SSL_SESSION_set_time_ex(SSL_SESSION *s, time_t t); + __owur const char *SSL_SESSION_get0_hostname(const SSL_SESSION *s); __owur int SSL_SESSION_set1_hostname(SSL_SESSION *s, const char *hostname); void SSL_SESSION_get0_alpn_selected(const SSL_SESSION *s, @@ -1783,6 +1808,9 @@ __owur int SSL_has_matching_session_id(const SSL *s, unsigned int id_len); SSL_SESSION *d2i_SSL_SESSION(SSL_SESSION **a, const unsigned char **pp, long length); +SSL_SESSION *d2i_SSL_SESSION_ex(SSL_SESSION **a, const unsigned char **pp, + long length, OSSL_LIB_CTX *libctx, + const char *propq); # ifdef OPENSSL_X509_H __owur X509 *SSL_get0_peer_certificate(const SSL *s); @@ -1840,6 +1868,8 @@ __owur int SSL_CTX_set_session_id_context(SSL_CTX *ctx, SSL *SSL_new(SSL_CTX *ctx); int SSL_up_ref(SSL *s); int SSL_is_dtls(const SSL *s); +int SSL_is_tls(const SSL *s); +int SSL_is_quic(const SSL *s); __owur int SSL_set_session_id_context(SSL *ssl, const unsigned char *sid_ctx, unsigned int sid_ctx_len); @@ -1848,8 +1878,8 @@ __owur int SSL_set_purpose(SSL *ssl, int purpose); __owur int SSL_CTX_set_trust(SSL_CTX *ctx, int trust); __owur int SSL_set_trust(SSL *ssl, int trust); -__owur int SSL_set1_host(SSL *s, const char *hostname); -__owur int SSL_add1_host(SSL *s, const char *hostname); +__owur int SSL_set1_host(SSL *s, const char *host); +__owur int SSL_add1_host(SSL *s, const char *host); __owur const char *SSL_get0_peername(SSL *s); void SSL_set_hostflags(SSL *s, unsigned int flags); @@ -1924,6 +1954,11 @@ OSSL_DEPRECATEDIN_3_0 __owur char *SSL_get_srp_userinfo(SSL *s); typedef int (*SSL_client_hello_cb_fn) (SSL *s, int *al, void *arg); void SSL_CTX_set_client_hello_cb(SSL_CTX *c, SSL_client_hello_cb_fn cb, void *arg); +typedef int (*SSL_new_pending_conn_cb_fn) (SSL_CTX *ctx, SSL *new_ssl, + void *arg); +void SSL_CTX_set_new_pending_conn_cb(SSL_CTX *c, SSL_new_pending_conn_cb_fn cb, + void *arg); + int SSL_client_hello_isv2(SSL *s); unsigned int SSL_client_hello_get0_legacy_version(SSL *s); size_t SSL_client_hello_get0_random(SSL *s, const unsigned char **out); @@ -1932,6 +1967,8 @@ size_t SSL_client_hello_get0_ciphers(SSL *s, const unsigned char **out); size_t SSL_client_hello_get0_compression_methods(SSL *s, const unsigned char **out); int SSL_client_hello_get1_extensions_present(SSL *s, int **out, size_t *outlen); +int SSL_client_hello_get_extension_order(SSL *s, uint16_t *exts, + size_t *num_exts); int SSL_client_hello_get0_ext(SSL *s, unsigned int type, const unsigned char **out, size_t *outlen); @@ -1978,6 +2015,12 @@ long SSL_callback_ctrl(SSL *, int, void (*)(void)); long SSL_CTX_ctrl(SSL_CTX *ctx, int cmd, long larg, void *parg); long SSL_CTX_callback_ctrl(SSL_CTX *, int, void (*)(void)); +# define SSL_WRITE_FLAG_CONCLUDE (1U << 0) + +__owur int SSL_write_ex2(SSL *s, const void *buf, size_t num, + uint64_t flags, + size_t *written); + # define SSL_EARLY_DATA_NOT_SENT 0 # define SSL_EARLY_DATA_REJECTED 1 # define SSL_EARLY_DATA_ACCEPTED 2 @@ -1986,6 +2029,7 @@ __owur int SSL_get_early_data_status(const SSL *s); __owur int SSL_get_error(const SSL *s, int ret_code); __owur const char *SSL_get_version(const SSL *s); +__owur int SSL_get_handshake_rtt(const SSL *s, uint64_t *rtt); /* This sets the 'default' SSL version that SSL_new() will create */ # ifndef OPENSSL_NO_DEPRECATED_3_0 @@ -2281,6 +2325,8 @@ void SSL_CTX_set_record_padding_callback(SSL_CTX *ctx, void SSL_CTX_set_record_padding_callback_arg(SSL_CTX *ctx, void *arg); void *SSL_CTX_get_record_padding_callback_arg(const SSL_CTX *ctx); int SSL_CTX_set_block_padding(SSL_CTX *ctx, size_t block_size); +int SSL_CTX_set_block_padding_ex(SSL_CTX *ctx, size_t app_block_size, + size_t hs_block_size); int SSL_set_record_padding_callback(SSL *ssl, size_t (*cb) (SSL *ssl, int type, @@ -2288,12 +2334,255 @@ int SSL_set_record_padding_callback(SSL *ssl, void SSL_set_record_padding_callback_arg(SSL *ssl, void *arg); void *SSL_get_record_padding_callback_arg(const SSL *ssl); int SSL_set_block_padding(SSL *ssl, size_t block_size); - +int SSL_set_block_padding_ex(SSL *ssl, size_t app_block_size, + size_t hs_block_size); int SSL_set_num_tickets(SSL *s, size_t num_tickets); size_t SSL_get_num_tickets(const SSL *s); int SSL_CTX_set_num_tickets(SSL_CTX *ctx, size_t num_tickets); size_t SSL_CTX_get_num_tickets(const SSL_CTX *ctx); +/* QUIC support */ +int SSL_handle_events(SSL *s); +__owur int SSL_get_event_timeout(SSL *s, struct timeval *tv, int *is_infinite); +__owur int SSL_get_rpoll_descriptor(SSL *s, BIO_POLL_DESCRIPTOR *desc); +__owur int SSL_get_wpoll_descriptor(SSL *s, BIO_POLL_DESCRIPTOR *desc); +__owur int SSL_net_read_desired(SSL *s); +__owur int SSL_net_write_desired(SSL *s); +__owur int SSL_set_blocking_mode(SSL *s, int blocking); +__owur int SSL_get_blocking_mode(SSL *s); +__owur int SSL_set1_initial_peer_addr(SSL *s, const BIO_ADDR *peer_addr); +__owur SSL *SSL_get0_connection(SSL *s); +__owur int SSL_is_connection(SSL *s); + +__owur int SSL_is_listener(SSL *ssl); +__owur SSL *SSL_get0_listener(SSL *s); +#define SSL_LISTENER_FLAG_NO_VALIDATE (1UL << 1) +__owur SSL *SSL_new_listener(SSL_CTX *ctx, uint64_t flags); +__owur SSL *SSL_new_listener_from(SSL *ssl, uint64_t flags); +__owur SSL *SSL_new_from_listener(SSL *ssl, uint64_t flags); +#define SSL_ACCEPT_CONNECTION_NO_BLOCK (1UL << 0) +__owur SSL *SSL_accept_connection(SSL *ssl, uint64_t flags); +__owur size_t SSL_get_accept_connection_queue_len(SSL *ssl); +__owur int SSL_listen(SSL *ssl); + +__owur int SSL_is_domain(SSL *s); +__owur SSL *SSL_get0_domain(SSL *s); +__owur SSL *SSL_new_domain(SSL_CTX *ctx, uint64_t flags); + +#define SSL_DOMAIN_FLAG_SINGLE_THREAD (1U << 0) +#define SSL_DOMAIN_FLAG_MULTI_THREAD (1U << 1) +#define SSL_DOMAIN_FLAG_THREAD_ASSISTED (1U << 2) +#define SSL_DOMAIN_FLAG_BLOCKING (1U << 3) +#define SSL_DOMAIN_FLAG_LEGACY_BLOCKING (1U << 4) + +__owur int SSL_CTX_set_domain_flags(SSL_CTX *ctx, uint64_t domain_flags); +__owur int SSL_CTX_get_domain_flags(const SSL_CTX *ctx, uint64_t *domain_flags); +__owur int SSL_get_domain_flags(const SSL *ssl, uint64_t *domain_flags); + +#define SSL_STREAM_TYPE_NONE 0 +#define SSL_STREAM_TYPE_READ (1U << 0) +#define SSL_STREAM_TYPE_WRITE (1U << 1) +#define SSL_STREAM_TYPE_BIDI (SSL_STREAM_TYPE_READ | SSL_STREAM_TYPE_WRITE) +__owur int SSL_get_stream_type(SSL *s); + +__owur uint64_t SSL_get_stream_id(SSL *s); +__owur int SSL_is_stream_local(SSL *s); + +#define SSL_DEFAULT_STREAM_MODE_NONE 0 +#define SSL_DEFAULT_STREAM_MODE_AUTO_BIDI 1 +#define SSL_DEFAULT_STREAM_MODE_AUTO_UNI 2 +__owur int SSL_set_default_stream_mode(SSL *s, uint32_t mode); + +#define SSL_STREAM_FLAG_UNI (1U << 0) +#define SSL_STREAM_FLAG_NO_BLOCK (1U << 1) +#define SSL_STREAM_FLAG_ADVANCE (1U << 2) +__owur SSL *SSL_new_stream(SSL *s, uint64_t flags); + +#define SSL_INCOMING_STREAM_POLICY_AUTO 0 +#define SSL_INCOMING_STREAM_POLICY_ACCEPT 1 +#define SSL_INCOMING_STREAM_POLICY_REJECT 2 +__owur int SSL_set_incoming_stream_policy(SSL *s, int policy, uint64_t aec); + +#define SSL_ACCEPT_STREAM_NO_BLOCK (1U << 0) +__owur SSL *SSL_accept_stream(SSL *s, uint64_t flags); +__owur size_t SSL_get_accept_stream_queue_len(SSL *s); + +# ifndef OPENSSL_NO_QUIC +__owur int SSL_inject_net_dgram(SSL *s, const unsigned char *buf, + size_t buf_len, + const BIO_ADDR *peer, + const BIO_ADDR *local); +# endif + +typedef struct ssl_shutdown_ex_args_st { + uint64_t quic_error_code; + const char *quic_reason; +} SSL_SHUTDOWN_EX_ARGS; + +#define SSL_SHUTDOWN_FLAG_RAPID (1U << 0) +#define SSL_SHUTDOWN_FLAG_NO_STREAM_FLUSH (1U << 1) +#define SSL_SHUTDOWN_FLAG_NO_BLOCK (1U << 2) +#define SSL_SHUTDOWN_FLAG_WAIT_PEER (1U << 3) + +__owur int SSL_shutdown_ex(SSL *ssl, uint64_t flags, + const SSL_SHUTDOWN_EX_ARGS *args, + size_t args_len); + +__owur int SSL_stream_conclude(SSL *ssl, uint64_t flags); + +typedef struct ssl_stream_reset_args_st { + uint64_t quic_error_code; +} SSL_STREAM_RESET_ARGS; + +__owur int SSL_stream_reset(SSL *ssl, + const SSL_STREAM_RESET_ARGS *args, + size_t args_len); + +#define SSL_STREAM_STATE_NONE 0 +#define SSL_STREAM_STATE_OK 1 +#define SSL_STREAM_STATE_WRONG_DIR 2 +#define SSL_STREAM_STATE_FINISHED 3 +#define SSL_STREAM_STATE_RESET_LOCAL 4 +#define SSL_STREAM_STATE_RESET_REMOTE 5 +#define SSL_STREAM_STATE_CONN_CLOSED 6 +__owur int SSL_get_stream_read_state(SSL *ssl); +__owur int SSL_get_stream_write_state(SSL *ssl); + +__owur int SSL_get_stream_read_error_code(SSL *ssl, uint64_t *app_error_code); +__owur int SSL_get_stream_write_error_code(SSL *ssl, uint64_t *app_error_code); + +#define SSL_CONN_CLOSE_FLAG_LOCAL (1U << 0) +#define SSL_CONN_CLOSE_FLAG_TRANSPORT (1U << 1) + +typedef struct ssl_conn_close_info_st { + uint64_t error_code, frame_type; + const char *reason; + size_t reason_len; + uint32_t flags; +} SSL_CONN_CLOSE_INFO; + +__owur int SSL_get_conn_close_info(SSL *ssl, + SSL_CONN_CLOSE_INFO *info, + size_t info_len); + +# define SSL_VALUE_CLASS_GENERIC 0 +# define SSL_VALUE_CLASS_FEATURE_REQUEST 1 +# define SSL_VALUE_CLASS_FEATURE_PEER_REQUEST 2 +# define SSL_VALUE_CLASS_FEATURE_NEGOTIATED 3 + +# define SSL_VALUE_NONE 0 +# define SSL_VALUE_QUIC_STREAM_BIDI_LOCAL_AVAIL 1 +# define SSL_VALUE_QUIC_STREAM_BIDI_REMOTE_AVAIL 2 +# define SSL_VALUE_QUIC_STREAM_UNI_LOCAL_AVAIL 3 +# define SSL_VALUE_QUIC_STREAM_UNI_REMOTE_AVAIL 4 +# define SSL_VALUE_QUIC_IDLE_TIMEOUT 5 +# define SSL_VALUE_EVENT_HANDLING_MODE 6 +# define SSL_VALUE_STREAM_WRITE_BUF_SIZE 7 +# define SSL_VALUE_STREAM_WRITE_BUF_USED 8 +# define SSL_VALUE_STREAM_WRITE_BUF_AVAIL 9 + +# define SSL_VALUE_EVENT_HANDLING_MODE_INHERIT 0 +# define SSL_VALUE_EVENT_HANDLING_MODE_IMPLICIT 1 +# define SSL_VALUE_EVENT_HANDLING_MODE_EXPLICIT 2 + +int SSL_get_value_uint(SSL *s, uint32_t class_, uint32_t id, uint64_t *v); +int SSL_set_value_uint(SSL *s, uint32_t class_, uint32_t id, uint64_t v); + +# define SSL_get_generic_value_uint(ssl, id, v) \ + SSL_get_value_uint((ssl), SSL_VALUE_CLASS_GENERIC, (id), (v)) +# define SSL_set_generic_value_uint(ssl, id, v) \ + SSL_set_value_uint((ssl), SSL_VALUE_CLASS_GENERIC, (id), (v)) +# define SSL_get_feature_request_uint(ssl, id, v) \ + SSL_get_value_uint((ssl), SSL_VALUE_CLASS_FEATURE_REQUEST, (id), (v)) +# define SSL_set_feature_request_uint(ssl, id, v) \ + SSL_set_value_uint((ssl), SSL_VALUE_CLASS_FEATURE_REQUEST, (id), (v)) +# define SSL_get_feature_peer_request_uint(ssl, id, v) \ + SSL_get_value_uint((ssl), SSL_VALUE_CLASS_FEATURE_PEER_REQUEST, (id), (v)) +# define SSL_get_feature_negotiated_uint(ssl, id, v) \ + SSL_get_value_uint((ssl), SSL_VALUE_CLASS_FEATURE_NEGOTIATED, (id), (v)) + +# define SSL_get_quic_stream_bidi_local_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_QUIC_STREAM_BIDI_LOCAL_AVAIL, \ + (value)) +# define SSL_get_quic_stream_bidi_remote_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_QUIC_STREAM_BIDI_REMOTE_AVAIL, \ + (value)) +# define SSL_get_quic_stream_uni_local_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_QUIC_STREAM_UNI_LOCAL_AVAIL, \ + (value)) +# define SSL_get_quic_stream_uni_remote_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_QUIC_STREAM_UNI_REMOTE_AVAIL, \ + (value)) + +# define SSL_get_event_handling_mode(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_EVENT_HANDLING_MODE, \ + (value)) +# define SSL_set_event_handling_mode(ssl, value) \ + SSL_set_generic_value_uint((ssl), SSL_VALUE_EVENT_HANDLING_MODE, \ + (value)) + +# define SSL_get_stream_write_buf_size(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_STREAM_WRITE_BUF_SIZE, \ + (value)) +# define SSL_get_stream_write_buf_used(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_STREAM_WRITE_BUF_USED, \ + (value)) +# define SSL_get_stream_write_buf_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_STREAM_WRITE_BUF_AVAIL, \ + (value)) + +# define SSL_POLL_EVENT_NONE 0 + +# define SSL_POLL_EVENT_F (1U << 0) /* F (Failure) */ +# define SSL_POLL_EVENT_EL (1U << 1) /* EL (Exception on Listener) */ +# define SSL_POLL_EVENT_EC (1U << 2) /* EC (Exception on Conn) */ +# define SSL_POLL_EVENT_ECD (1U << 3) /* ECD (Exception on Conn Drained) */ +# define SSL_POLL_EVENT_ER (1U << 4) /* ER (Exception on Read) */ +# define SSL_POLL_EVENT_EW (1U << 5) /* EW (Exception on Write) */ +# define SSL_POLL_EVENT_R (1U << 6) /* R (Readable) */ +# define SSL_POLL_EVENT_W (1U << 7) /* W (Writable) */ +# define SSL_POLL_EVENT_IC (1U << 8) /* IC (Incoming Connection) */ +# define SSL_POLL_EVENT_ISB (1U << 9) /* ISB (Incoming Stream: Bidi) */ +# define SSL_POLL_EVENT_ISU (1U << 10) /* ISU (Incoming Stream: Uni) */ +# define SSL_POLL_EVENT_OSB (1U << 11) /* OSB (Outgoing Stream: Bidi) */ +# define SSL_POLL_EVENT_OSU (1U << 12) /* OSU (Outgoing Stream: Uni) */ + +# define SSL_POLL_EVENT_RW (SSL_POLL_EVENT_R | SSL_POLL_EVENT_W) +# define SSL_POLL_EVENT_RE (SSL_POLL_EVENT_R | SSL_POLL_EVENT_ER) +# define SSL_POLL_EVENT_WE (SSL_POLL_EVENT_W | SSL_POLL_EVENT_EW) +# define SSL_POLL_EVENT_RWE (SSL_POLL_EVENT_RE | SSL_POLL_EVENT_WE) +# define SSL_POLL_EVENT_E (SSL_POLL_EVENT_EL | SSL_POLL_EVENT_EC \ + | SSL_POLL_EVENT_ER | SSL_POLL_EVENT_EW) +# define SSL_POLL_EVENT_IS (SSL_POLL_EVENT_ISB | SSL_POLL_EVENT_ISU) +# define SSL_POLL_EVENT_ISE (SSL_POLL_EVENT_IS | SSL_POLL_EVENT_EC) +# define SSL_POLL_EVENT_I (SSL_POLL_EVENT_IS | SSL_POLL_EVENT_IC) +# define SSL_POLL_EVENT_OS (SSL_POLL_EVENT_OSB | SSL_POLL_EVENT_OSU) +# define SSL_POLL_EVENT_OSE (SSL_POLL_EVENT_OS | SSL_POLL_EVENT_EC) + +typedef struct ssl_poll_item_st { + BIO_POLL_DESCRIPTOR desc; + uint64_t events, revents; +} SSL_POLL_ITEM; + +# define SSL_POLL_FLAG_NO_HANDLE_EVENTS (1U << 0) + +__owur int SSL_poll(SSL_POLL_ITEM *items, + size_t num_items, + size_t stride, + const struct timeval *timeout, + uint64_t flags, + size_t *result_count); + +static ossl_inline ossl_unused BIO_POLL_DESCRIPTOR +SSL_as_poll_descriptor(SSL *s) +{ + BIO_POLL_DESCRIPTOR d; + + d.type = BIO_POLL_DESCRIPTOR_TYPE_SSL; + d.value.ssl = s; + return d; +} + # ifndef OPENSSL_NO_DEPRECATED_1_1_0 # define SSL_cache_hit(s) SSL_session_reused(s) # endif @@ -2593,6 +2882,51 @@ void SSL_set_allow_early_data_cb(SSL *s, const char *OSSL_default_cipher_list(void); const char *OSSL_default_ciphersuites(void); +/* RFC8879 Certificate compression APIs */ + +int SSL_CTX_compress_certs(SSL_CTX *ctx, int alg); +int SSL_compress_certs(SSL *ssl, int alg); + +int SSL_CTX_set1_cert_comp_preference(SSL_CTX *ctx, int *algs, size_t len); +int SSL_set1_cert_comp_preference(SSL *ssl, int *algs, size_t len); + +int SSL_CTX_set1_compressed_cert(SSL_CTX *ctx, int algorithm, unsigned char *comp_data, + size_t comp_length, size_t orig_length); +int SSL_set1_compressed_cert(SSL *ssl, int algorithm, unsigned char *comp_data, + size_t comp_length, size_t orig_length); +size_t SSL_CTX_get1_compressed_cert(SSL_CTX *ctx, int alg, unsigned char **data, size_t *orig_len); +size_t SSL_get1_compressed_cert(SSL *ssl, int alg, unsigned char **data, size_t *orig_len); + +__owur int SSL_add_expected_rpk(SSL *s, EVP_PKEY *rpk); +__owur EVP_PKEY *SSL_get0_peer_rpk(const SSL *s); +__owur EVP_PKEY *SSL_SESSION_get0_peer_rpk(SSL_SESSION *s); +__owur int SSL_get_negotiated_client_cert_type(const SSL *s); +__owur int SSL_get_negotiated_server_cert_type(const SSL *s); + +__owur int SSL_set1_client_cert_type(SSL *s, const unsigned char *val, size_t len); +__owur int SSL_set1_server_cert_type(SSL *s, const unsigned char *val, size_t len); +__owur int SSL_CTX_set1_client_cert_type(SSL_CTX *ctx, const unsigned char *val, size_t len); +__owur int SSL_CTX_set1_server_cert_type(SSL_CTX *ctx, const unsigned char *val, size_t len); +__owur int SSL_get0_client_cert_type(const SSL *s, unsigned char **t, size_t *len); +__owur int SSL_get0_server_cert_type(const SSL *s, unsigned char **t, size_t *len); +__owur int SSL_CTX_get0_client_cert_type(const SSL_CTX *ctx, unsigned char **t, size_t *len); +__owur int SSL_CTX_get0_server_cert_type(const SSL_CTX *s, unsigned char **t, size_t *len); + +/* + * Protection level. For <= TLSv1.2 only "NONE" and "APPLICATION" are used. + */ +# define OSSL_RECORD_PROTECTION_LEVEL_NONE 0 +# define OSSL_RECORD_PROTECTION_LEVEL_EARLY 1 +# define OSSL_RECORD_PROTECTION_LEVEL_HANDSHAKE 2 +# define OSSL_RECORD_PROTECTION_LEVEL_APPLICATION 3 + +int SSL_set_quic_tls_cbs(SSL *s, const OSSL_DISPATCH *qtdis, void *arg); +int SSL_set_quic_tls_transport_params(SSL *s, + const unsigned char *params, + size_t params_len); + +int SSL_set_quic_tls_early_data_enabled(SSL *s, int enabled); + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/VC-WIN64A/asm/include/openssl/x509.h b/deps/openssl/config/archs/VC-WIN64A/asm/include/openssl/x509.h index 0f2353c821aa9b..5e9c548c48d65b 100644 --- a/deps/openssl/config/archs/VC-WIN64A/asm/include/openssl/x509.h +++ b/deps/openssl/config/archs/VC-WIN64A/asm/include/openssl/x509.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by makefile from include/openssl/x509.h.in * - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2024 The OpenSSL Project Authors. All Rights Reserved. * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved * * Licensed under the Apache License 2.0 (the "License"). You may not use @@ -40,6 +40,9 @@ # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -162,16 +165,24 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_CRL, X509_CRL, X509_CRL) # define X509_FILETYPE_ASN1 2 # define X509_FILETYPE_DEFAULT 3 -# define X509v3_KU_DIGITAL_SIGNATURE 0x0080 -# define X509v3_KU_NON_REPUDIATION 0x0040 -# define X509v3_KU_KEY_ENCIPHERMENT 0x0020 -# define X509v3_KU_DATA_ENCIPHERMENT 0x0010 -# define X509v3_KU_KEY_AGREEMENT 0x0008 -# define X509v3_KU_KEY_CERT_SIGN 0x0004 -# define X509v3_KU_CRL_SIGN 0x0002 -# define X509v3_KU_ENCIPHER_ONLY 0x0001 -# define X509v3_KU_DECIPHER_ONLY 0x8000 -# define X509v3_KU_UNDEF 0xffff +/*- + * : + * The KeyUsage BITSTRING is treated as a little-endian integer, hence bit `0` + * is 0x80, while bit `7` is 0x01 (the LSB of the integer value), bit `8` is + * then the MSB of the second octet, or 0x8000. + */ +# define X509v3_KU_DIGITAL_SIGNATURE 0x0080 /* (0) */ +# define X509v3_KU_NON_REPUDIATION 0x0040 /* (1) */ +# define X509v3_KU_KEY_ENCIPHERMENT 0x0020 /* (2) */ +# define X509v3_KU_DATA_ENCIPHERMENT 0x0010 /* (3) */ +# define X509v3_KU_KEY_AGREEMENT 0x0008 /* (4) */ +# define X509v3_KU_KEY_CERT_SIGN 0x0004 /* (5) */ +# define X509v3_KU_CRL_SIGN 0x0002 /* (6) */ +# define X509v3_KU_ENCIPHER_ONLY 0x0001 /* (7) */ +# define X509v3_KU_DECIPHER_ONLY 0x8000 /* (8) */ +# ifndef OPENSSL_NO_DEPRECATED_3_4 +# define X509v3_KU_UNDEF 0xffff /* vestigial, not used */ +# endif struct X509_algor_st { ASN1_OBJECT *algorithm; @@ -462,7 +473,12 @@ typedef struct PBKDF2PARAM_st { X509_ALGOR *prf; } PBKDF2PARAM; -#ifndef OPENSSL_NO_SCRYPT +typedef struct { + X509_ALGOR *keyDerivationFunc; + X509_ALGOR *messageAuthScheme; +} PBMAC1PARAM; + +# ifndef OPENSSL_NO_SCRYPT typedef struct SCRYPT_PARAMS_st { ASN1_OCTET_STRING *salt; ASN1_INTEGER *costParameter; @@ -470,7 +486,7 @@ typedef struct SCRYPT_PARAMS_st { ASN1_INTEGER *parallelizationParameter; ASN1_INTEGER *keyLength; } SCRYPT_PARAMS; -#endif +# endif #ifdef __cplusplus } @@ -603,6 +619,8 @@ EVP_PKEY *d2i_PrivateKey_ex_fp(FILE *fp, EVP_PKEY **a, OSSL_LIB_CTX *libctx, const char *propq); EVP_PKEY *d2i_PrivateKey_fp(FILE *fp, EVP_PKEY **a); int i2d_PUBKEY_fp(FILE *fp, const EVP_PKEY *pkey); +EVP_PKEY *d2i_PUBKEY_ex_fp(FILE *fp, EVP_PKEY **a, OSSL_LIB_CTX *libctx, + const char *propq); EVP_PKEY *d2i_PUBKEY_fp(FILE *fp, EVP_PKEY **a); # endif @@ -651,6 +669,8 @@ EVP_PKEY *d2i_PrivateKey_ex_bio(BIO *bp, EVP_PKEY **a, OSSL_LIB_CTX *libctx, const char *propq); EVP_PKEY *d2i_PrivateKey_bio(BIO *bp, EVP_PKEY **a); int i2d_PUBKEY_bio(BIO *bp, const EVP_PKEY *pkey); +EVP_PKEY *d2i_PUBKEY_ex_bio(BIO *bp, EVP_PKEY **a, OSSL_LIB_CTX *libctx, + const char *propq); EVP_PKEY *d2i_PUBKEY_bio(BIO *bp, EVP_PKEY **a); DECLARE_ASN1_DUP_FUNCTION(X509) @@ -884,12 +904,12 @@ int X509_REQ_get_signature_nid(const X509_REQ *req); int i2d_re_X509_REQ_tbs(X509_REQ *req, unsigned char **pp); int X509_REQ_set_pubkey(X509_REQ *x, EVP_PKEY *pkey); EVP_PKEY *X509_REQ_get_pubkey(X509_REQ *req); -EVP_PKEY *X509_REQ_get0_pubkey(X509_REQ *req); +EVP_PKEY *X509_REQ_get0_pubkey(const X509_REQ *req); X509_PUBKEY *X509_REQ_get_X509_PUBKEY(X509_REQ *req); int X509_REQ_extension_nid(int nid); int *X509_REQ_get_extension_nids(void); void X509_REQ_set_extension_nids(int *nids); -STACK_OF(X509_EXTENSION) *X509_REQ_get_extensions(X509_REQ *req); +STACK_OF(X509_EXTENSION) *X509_REQ_get_extensions(OSSL_FUTURE_CONST X509_REQ *req); int X509_REQ_add_extensions_nid(X509_REQ *req, const STACK_OF(X509_EXTENSION) *exts, int nid); int X509_REQ_add_extensions(X509_REQ *req, const STACK_OF(X509_EXTENSION) *ext); @@ -950,13 +970,14 @@ X509_REVOKED_get0_extensions(const X509_REVOKED *r); X509_CRL *X509_CRL_diff(X509_CRL *base, X509_CRL *newer, EVP_PKEY *skey, const EVP_MD *md, unsigned int flags); -int X509_REQ_check_private_key(X509_REQ *x509, EVP_PKEY *pkey); +int X509_REQ_check_private_key(const X509_REQ *req, EVP_PKEY *pkey); -int X509_check_private_key(const X509 *x509, const EVP_PKEY *pkey); +int X509_check_private_key(const X509 *cert, const EVP_PKEY *pkey); int X509_chain_check_suiteb(int *perror_depth, X509 *x, STACK_OF(X509) *chain, unsigned long flags); int X509_CRL_check_suiteb(X509_CRL *crl, EVP_PKEY *pk, unsigned long flags); +void OSSL_STACK_OF_X509_free(STACK_OF(X509) *certs); STACK_OF(X509) *X509_chain_up_ref(STACK_OF(X509) *chain); int X509_issuer_and_serial_cmp(const X509 *a, const X509 *b); @@ -1077,6 +1098,8 @@ X509_EXTENSION *X509v3_get_ext(const STACK_OF(X509_EXTENSION) *x, int loc); X509_EXTENSION *X509v3_delete_ext(STACK_OF(X509_EXTENSION) *x, int loc); STACK_OF(X509_EXTENSION) *X509v3_add_ext(STACK_OF(X509_EXTENSION) **x, X509_EXTENSION *ex, int loc); +STACK_OF(X509_EXTENSION) *X509v3_add_extensions(STACK_OF(X509_EXTENSION) **target, + const STACK_OF(X509_EXTENSION) *exts); int X509_get_ext_count(const X509 *x); int X509_get_ext_by_NID(const X509 *x, int nid, int lastpos); @@ -1198,9 +1221,10 @@ X509 *X509_find_by_subject(STACK_OF(X509) *sk, const X509_NAME *name); DECLARE_ASN1_FUNCTIONS(PBEPARAM) DECLARE_ASN1_FUNCTIONS(PBE2PARAM) DECLARE_ASN1_FUNCTIONS(PBKDF2PARAM) -#ifndef OPENSSL_NO_SCRYPT +DECLARE_ASN1_FUNCTIONS(PBMAC1PARAM) +# ifndef OPENSSL_NO_SCRYPT DECLARE_ASN1_FUNCTIONS(SCRYPT_PARAMS) -#endif +# endif int PKCS5_pbe_set0_algor(X509_ALGOR *algor, int alg, int iter, const unsigned char *salt, int saltlen); @@ -1237,6 +1261,7 @@ X509_ALGOR *PKCS5_pbkdf2_set_ex(int iter, unsigned char *salt, int saltlen, int prf_nid, int keylen, OSSL_LIB_CTX *libctx); +PBKDF2PARAM *PBMAC1_get1_pbkdf2_param(const X509_ALGOR *macalg); /* PKCS#8 utilities */ DECLARE_ASN1_FUNCTIONS(PKCS8_PRIV_KEY_INFO) @@ -1262,6 +1287,8 @@ int PKCS8_pkey_add1_attr_by_OBJ(PKCS8_PRIV_KEY_INFO *p8, const ASN1_OBJECT *obj, int type, const unsigned char *bytes, int len); +void X509_PUBKEY_set0_public_key(X509_PUBKEY *pub, + unsigned char *penc, int penclen); int X509_PUBKEY_set0_param(X509_PUBKEY *pub, ASN1_OBJECT *aobj, int ptype, void *pval, unsigned char *penc, int penclen); diff --git a/deps/openssl/config/archs/VC-WIN64A/asm/include/openssl/x509_acert.h b/deps/openssl/config/archs/VC-WIN64A/asm/include/openssl/x509_acert.h new file mode 100644 index 00000000000000..efae82c8f6b635 --- /dev/null +++ b/deps/openssl/config/archs/VC-WIN64A/asm/include/openssl/x509_acert.h @@ -0,0 +1,294 @@ +/* + * WARNING: do not edit! + * Generated by makefile from include/openssl/x509_acert.h.in + * + * Copyright 2022-2024 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + + +#ifndef OPENSSL_X509_ACERT_H +# define OPENSSL_X509_ACERT_H +# pragma once + +# include +# include +# include + +typedef struct X509_acert_st X509_ACERT; +typedef struct X509_acert_info_st X509_ACERT_INFO; +typedef struct ossl_object_digest_info_st OSSL_OBJECT_DIGEST_INFO; +typedef struct ossl_issuer_serial_st OSSL_ISSUER_SERIAL; +typedef struct X509_acert_issuer_v2form_st X509_ACERT_ISSUER_V2FORM; + +DECLARE_ASN1_FUNCTIONS(X509_ACERT) +DECLARE_ASN1_DUP_FUNCTION(X509_ACERT) +DECLARE_ASN1_ITEM(X509_ACERT_INFO) +DECLARE_ASN1_ALLOC_FUNCTIONS(X509_ACERT_INFO) +DECLARE_ASN1_ALLOC_FUNCTIONS(OSSL_OBJECT_DIGEST_INFO) +DECLARE_ASN1_ALLOC_FUNCTIONS(OSSL_ISSUER_SERIAL) +DECLARE_ASN1_ALLOC_FUNCTIONS(X509_ACERT_ISSUER_V2FORM) + +# ifndef OPENSSL_NO_STDIO +X509_ACERT *d2i_X509_ACERT_fp(FILE *fp, X509_ACERT **acert); +int i2d_X509_ACERT_fp(FILE *fp, const X509_ACERT *acert); +# endif + +DECLARE_PEM_rw(X509_ACERT, X509_ACERT) + +X509_ACERT *d2i_X509_ACERT_bio(BIO *bp, X509_ACERT **acert); +int i2d_X509_ACERT_bio(BIO *bp, const X509_ACERT *acert); + +int X509_ACERT_sign(X509_ACERT *x, EVP_PKEY *pkey, const EVP_MD *md); +int X509_ACERT_sign_ctx(X509_ACERT *x, EVP_MD_CTX *ctx); +int X509_ACERT_verify(X509_ACERT *a, EVP_PKEY *r); + +# define X509_ACERT_VERSION_2 1 + +const GENERAL_NAMES *X509_ACERT_get0_holder_entityName(const X509_ACERT *x); +const OSSL_ISSUER_SERIAL *X509_ACERT_get0_holder_baseCertId(const X509_ACERT *x); +const OSSL_OBJECT_DIGEST_INFO * X509_ACERT_get0_holder_digest(const X509_ACERT *x); +const X509_NAME *X509_ACERT_get0_issuerName(const X509_ACERT *x); +long X509_ACERT_get_version(const X509_ACERT *x); +void X509_ACERT_get0_signature(const X509_ACERT *x, + const ASN1_BIT_STRING **psig, + const X509_ALGOR **palg); +int X509_ACERT_get_signature_nid(const X509_ACERT *x); +const X509_ALGOR *X509_ACERT_get0_info_sigalg(const X509_ACERT *x); +const ASN1_INTEGER *X509_ACERT_get0_serialNumber(const X509_ACERT *x); +const ASN1_TIME *X509_ACERT_get0_notBefore(const X509_ACERT *x); +const ASN1_TIME *X509_ACERT_get0_notAfter(const X509_ACERT *x); +const ASN1_BIT_STRING *X509_ACERT_get0_issuerUID(const X509_ACERT *x); + +int X509_ACERT_print(BIO *bp, X509_ACERT *x); +int X509_ACERT_print_ex(BIO *bp, X509_ACERT *x, unsigned long nmflags, + unsigned long cflag); + +int X509_ACERT_get_attr_count(const X509_ACERT *x); +int X509_ACERT_get_attr_by_NID(const X509_ACERT *x, int nid, int lastpos); +int X509_ACERT_get_attr_by_OBJ(const X509_ACERT *x, const ASN1_OBJECT *obj, + int lastpos); +X509_ATTRIBUTE *X509_ACERT_get_attr(const X509_ACERT *x, int loc); +X509_ATTRIBUTE *X509_ACERT_delete_attr(X509_ACERT *x, int loc); + +void *X509_ACERT_get_ext_d2i(const X509_ACERT *x, int nid, int *crit, int *idx); +int X509_ACERT_add1_ext_i2d(X509_ACERT *x, int nid, void *value, int crit, + unsigned long flags); +const STACK_OF(X509_EXTENSION) *X509_ACERT_get0_extensions(const X509_ACERT *x); + +# define OSSL_OBJECT_DIGEST_INFO_PUBLIC_KEY 0 +# define OSSL_OBJECT_DIGEST_INFO_PUBLIC_KEY_CERT 1 +# define OSSL_OBJECT_DIGEST_INFO_OTHER 2 /* must not be used in RFC 5755 profile */ +int X509_ACERT_set_version(X509_ACERT *x, long version); +void X509_ACERT_set0_holder_entityName(X509_ACERT *x, GENERAL_NAMES *name); +void X509_ACERT_set0_holder_baseCertId(X509_ACERT *x, OSSL_ISSUER_SERIAL *isss); +void X509_ACERT_set0_holder_digest(X509_ACERT *x, + OSSL_OBJECT_DIGEST_INFO *dinfo); + +int X509_ACERT_add1_attr(X509_ACERT *x, X509_ATTRIBUTE *attr); +int X509_ACERT_add1_attr_by_OBJ(X509_ACERT *x, const ASN1_OBJECT *obj, + int type, const void *bytes, int len); +int X509_ACERT_add1_attr_by_NID(X509_ACERT *x, int nid, int type, + const void *bytes, int len); +int X509_ACERT_add1_attr_by_txt(X509_ACERT *x, const char *attrname, int type, + const unsigned char *bytes, int len); +int X509_ACERT_add_attr_nconf(CONF *conf, const char *section, + X509_ACERT *acert); + +int X509_ACERT_set1_issuerName(X509_ACERT *x, const X509_NAME *name); +int X509_ACERT_set1_serialNumber(X509_ACERT *x, const ASN1_INTEGER *serial); +int X509_ACERT_set1_notBefore(X509_ACERT *x, const ASN1_GENERALIZEDTIME *time); +int X509_ACERT_set1_notAfter(X509_ACERT *x, const ASN1_GENERALIZEDTIME *time); + +void OSSL_OBJECT_DIGEST_INFO_get0_digest(const OSSL_OBJECT_DIGEST_INFO *o, + int *digestedObjectType, + const X509_ALGOR **digestAlgorithm, + const ASN1_BIT_STRING **digest); + +int OSSL_OBJECT_DIGEST_INFO_set1_digest(OSSL_OBJECT_DIGEST_INFO *o, + int digestedObjectType, + X509_ALGOR *digestAlgorithm, + ASN1_BIT_STRING *digest); + +const X509_NAME *OSSL_ISSUER_SERIAL_get0_issuer(const OSSL_ISSUER_SERIAL *isss); +const ASN1_INTEGER *OSSL_ISSUER_SERIAL_get0_serial(const OSSL_ISSUER_SERIAL *isss); +const ASN1_BIT_STRING *OSSL_ISSUER_SERIAL_get0_issuerUID(const OSSL_ISSUER_SERIAL *isss); + +int OSSL_ISSUER_SERIAL_set1_issuer(OSSL_ISSUER_SERIAL *isss, + const X509_NAME *issuer); +int OSSL_ISSUER_SERIAL_set1_serial(OSSL_ISSUER_SERIAL *isss, + const ASN1_INTEGER *serial); +int OSSL_ISSUER_SERIAL_set1_issuerUID(OSSL_ISSUER_SERIAL *isss, + const ASN1_BIT_STRING *uid); + +# define OSSL_IETFAS_OCTETS 0 +# define OSSL_IETFAS_OID 1 +# define OSSL_IETFAS_STRING 2 + +typedef struct OSSL_IETF_ATTR_SYNTAX_VALUE_st OSSL_IETF_ATTR_SYNTAX_VALUE; +typedef struct OSSL_IETF_ATTR_SYNTAX_st OSSL_IETF_ATTR_SYNTAX; +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_IETF_ATTR_SYNTAX_VALUE, OSSL_IETF_ATTR_SYNTAX_VALUE, OSSL_IETF_ATTR_SYNTAX_VALUE) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_value(sk, idx) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_value(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), (idx))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_new(cmp) ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_new(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_compfunc_type(cmp))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_new_null() ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_new_null()) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_new_reserve(cmp, n) ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_compfunc_type(cmp), (n))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), (n)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_free(sk) OPENSSL_sk_free(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_delete(sk, i) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_delete(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), (i))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_delete_ptr(sk, ptr) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_pop(sk) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_pop(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_shift(sk) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_shift(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk),ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_freefunc_type(freefunc)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr), (idx)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_set(sk, idx, ptr) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_set(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), (idx), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr), pnum) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_dup(sk) ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_dup(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_copyfunc_type(copyfunc), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_freefunc_type(freefunc))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_set_cmp_func(sk, cmp) ((sk_OSSL_IETF_ATTR_SYNTAX_VALUE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_compfunc_type(cmp))) + + +DECLARE_ASN1_ITEM(OSSL_IETF_ATTR_SYNTAX_VALUE) +DECLARE_ASN1_ALLOC_FUNCTIONS(OSSL_IETF_ATTR_SYNTAX_VALUE) +DECLARE_ASN1_FUNCTIONS(OSSL_IETF_ATTR_SYNTAX) + +const GENERAL_NAMES * +OSSL_IETF_ATTR_SYNTAX_get0_policyAuthority(const OSSL_IETF_ATTR_SYNTAX *a); +void OSSL_IETF_ATTR_SYNTAX_set0_policyAuthority(OSSL_IETF_ATTR_SYNTAX *a, + GENERAL_NAMES *names); + +int OSSL_IETF_ATTR_SYNTAX_get_value_num(const OSSL_IETF_ATTR_SYNTAX *a); +void *OSSL_IETF_ATTR_SYNTAX_get0_value(const OSSL_IETF_ATTR_SYNTAX *a, + int ind, int *type); +int OSSL_IETF_ATTR_SYNTAX_add1_value(OSSL_IETF_ATTR_SYNTAX *a, int type, + void *data); +int OSSL_IETF_ATTR_SYNTAX_print(BIO *bp, OSSL_IETF_ATTR_SYNTAX *a, int indent); + +struct TARGET_CERT_st { + OSSL_ISSUER_SERIAL *targetCertificate; + GENERAL_NAME *targetName; + OSSL_OBJECT_DIGEST_INFO *certDigestInfo; +}; + +typedef struct TARGET_CERT_st OSSL_TARGET_CERT; + +# define OSSL_TGT_TARGET_NAME 0 +# define OSSL_TGT_TARGET_GROUP 1 +# define OSSL_TGT_TARGET_CERT 2 + +typedef struct TARGET_st { + int type; + union { + GENERAL_NAME *targetName; + GENERAL_NAME *targetGroup; + OSSL_TARGET_CERT *targetCert; + } choice; +} OSSL_TARGET; + +typedef STACK_OF(OSSL_TARGET) OSSL_TARGETS; +typedef STACK_OF(OSSL_TARGETS) OSSL_TARGETING_INFORMATION; + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_TARGET, OSSL_TARGET, OSSL_TARGET) +#define sk_OSSL_TARGET_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_value(sk, idx) ((OSSL_TARGET *)OPENSSL_sk_value(ossl_check_const_OSSL_TARGET_sk_type(sk), (idx))) +#define sk_OSSL_TARGET_new(cmp) ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_new(ossl_check_OSSL_TARGET_compfunc_type(cmp))) +#define sk_OSSL_TARGET_new_null() ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_new_null()) +#define sk_OSSL_TARGET_new_reserve(cmp, n) ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_TARGET_compfunc_type(cmp), (n))) +#define sk_OSSL_TARGET_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_TARGET_sk_type(sk), (n)) +#define sk_OSSL_TARGET_free(sk) OPENSSL_sk_free(ossl_check_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_delete(sk, i) ((OSSL_TARGET *)OPENSSL_sk_delete(ossl_check_OSSL_TARGET_sk_type(sk), (i))) +#define sk_OSSL_TARGET_delete_ptr(sk, ptr) ((OSSL_TARGET *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr))) +#define sk_OSSL_TARGET_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr)) +#define sk_OSSL_TARGET_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr)) +#define sk_OSSL_TARGET_pop(sk) ((OSSL_TARGET *)OPENSSL_sk_pop(ossl_check_OSSL_TARGET_sk_type(sk))) +#define sk_OSSL_TARGET_shift(sk) ((OSSL_TARGET *)OPENSSL_sk_shift(ossl_check_OSSL_TARGET_sk_type(sk))) +#define sk_OSSL_TARGET_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_TARGET_sk_type(sk),ossl_check_OSSL_TARGET_freefunc_type(freefunc)) +#define sk_OSSL_TARGET_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr), (idx)) +#define sk_OSSL_TARGET_set(sk, idx, ptr) ((OSSL_TARGET *)OPENSSL_sk_set(ossl_check_OSSL_TARGET_sk_type(sk), (idx), ossl_check_OSSL_TARGET_type(ptr))) +#define sk_OSSL_TARGET_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr)) +#define sk_OSSL_TARGET_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr)) +#define sk_OSSL_TARGET_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr), pnum) +#define sk_OSSL_TARGET_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_dup(sk) ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_dup(ossl_check_const_OSSL_TARGET_sk_type(sk))) +#define sk_OSSL_TARGET_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_copyfunc_type(copyfunc), ossl_check_OSSL_TARGET_freefunc_type(freefunc))) +#define sk_OSSL_TARGET_set_cmp_func(sk, cmp) ((sk_OSSL_TARGET_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_compfunc_type(cmp))) + + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_TARGETS, OSSL_TARGETS, OSSL_TARGETS) +#define sk_OSSL_TARGETS_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_value(sk, idx) ((OSSL_TARGETS *)OPENSSL_sk_value(ossl_check_const_OSSL_TARGETS_sk_type(sk), (idx))) +#define sk_OSSL_TARGETS_new(cmp) ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_new(ossl_check_OSSL_TARGETS_compfunc_type(cmp))) +#define sk_OSSL_TARGETS_new_null() ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_new_null()) +#define sk_OSSL_TARGETS_new_reserve(cmp, n) ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_TARGETS_compfunc_type(cmp), (n))) +#define sk_OSSL_TARGETS_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_TARGETS_sk_type(sk), (n)) +#define sk_OSSL_TARGETS_free(sk) OPENSSL_sk_free(ossl_check_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_delete(sk, i) ((OSSL_TARGETS *)OPENSSL_sk_delete(ossl_check_OSSL_TARGETS_sk_type(sk), (i))) +#define sk_OSSL_TARGETS_delete_ptr(sk, ptr) ((OSSL_TARGETS *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr))) +#define sk_OSSL_TARGETS_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr)) +#define sk_OSSL_TARGETS_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr)) +#define sk_OSSL_TARGETS_pop(sk) ((OSSL_TARGETS *)OPENSSL_sk_pop(ossl_check_OSSL_TARGETS_sk_type(sk))) +#define sk_OSSL_TARGETS_shift(sk) ((OSSL_TARGETS *)OPENSSL_sk_shift(ossl_check_OSSL_TARGETS_sk_type(sk))) +#define sk_OSSL_TARGETS_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_TARGETS_sk_type(sk),ossl_check_OSSL_TARGETS_freefunc_type(freefunc)) +#define sk_OSSL_TARGETS_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr), (idx)) +#define sk_OSSL_TARGETS_set(sk, idx, ptr) ((OSSL_TARGETS *)OPENSSL_sk_set(ossl_check_OSSL_TARGETS_sk_type(sk), (idx), ossl_check_OSSL_TARGETS_type(ptr))) +#define sk_OSSL_TARGETS_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr)) +#define sk_OSSL_TARGETS_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr)) +#define sk_OSSL_TARGETS_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr), pnum) +#define sk_OSSL_TARGETS_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_dup(sk) ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_dup(ossl_check_const_OSSL_TARGETS_sk_type(sk))) +#define sk_OSSL_TARGETS_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_copyfunc_type(copyfunc), ossl_check_OSSL_TARGETS_freefunc_type(freefunc))) +#define sk_OSSL_TARGETS_set_cmp_func(sk, cmp) ((sk_OSSL_TARGETS_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_compfunc_type(cmp))) + + +DECLARE_ASN1_FUNCTIONS(OSSL_TARGET) +DECLARE_ASN1_FUNCTIONS(OSSL_TARGETS) +DECLARE_ASN1_FUNCTIONS(OSSL_TARGETING_INFORMATION) + +typedef STACK_OF(OSSL_ISSUER_SERIAL) OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX; +DECLARE_ASN1_FUNCTIONS(OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ISSUER_SERIAL, OSSL_ISSUER_SERIAL, OSSL_ISSUER_SERIAL) +#define sk_OSSL_ISSUER_SERIAL_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_value(sk, idx) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_value(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk), (idx))) +#define sk_OSSL_ISSUER_SERIAL_new(cmp) ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_new(ossl_check_OSSL_ISSUER_SERIAL_compfunc_type(cmp))) +#define sk_OSSL_ISSUER_SERIAL_new_null() ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ISSUER_SERIAL_new_reserve(cmp, n) ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ISSUER_SERIAL_compfunc_type(cmp), (n))) +#define sk_OSSL_ISSUER_SERIAL_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), (n)) +#define sk_OSSL_ISSUER_SERIAL_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_delete(sk, i) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_delete(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), (i))) +#define sk_OSSL_ISSUER_SERIAL_delete_ptr(sk, ptr) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr))) +#define sk_OSSL_ISSUER_SERIAL_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr)) +#define sk_OSSL_ISSUER_SERIAL_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr)) +#define sk_OSSL_ISSUER_SERIAL_pop(sk) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_pop(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk))) +#define sk_OSSL_ISSUER_SERIAL_shift(sk) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_shift(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk))) +#define sk_OSSL_ISSUER_SERIAL_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk),ossl_check_OSSL_ISSUER_SERIAL_freefunc_type(freefunc)) +#define sk_OSSL_ISSUER_SERIAL_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr), (idx)) +#define sk_OSSL_ISSUER_SERIAL_set(sk, idx, ptr) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_set(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), (idx), ossl_check_OSSL_ISSUER_SERIAL_type(ptr))) +#define sk_OSSL_ISSUER_SERIAL_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr)) +#define sk_OSSL_ISSUER_SERIAL_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr)) +#define sk_OSSL_ISSUER_SERIAL_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr), pnum) +#define sk_OSSL_ISSUER_SERIAL_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_dup(sk) ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk))) +#define sk_OSSL_ISSUER_SERIAL_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_copyfunc_type(copyfunc), ossl_check_OSSL_ISSUER_SERIAL_freefunc_type(freefunc))) +#define sk_OSSL_ISSUER_SERIAL_set_cmp_func(sk, cmp) ((sk_OSSL_ISSUER_SERIAL_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_compfunc_type(cmp))) + + +#endif diff --git a/deps/openssl/config/archs/VC-WIN64A/asm/include/openssl/x509_vfy.h b/deps/openssl/config/archs/VC-WIN64A/asm/include/openssl/x509_vfy.h index f571187265cfc9..f08a134b17b7db 100644 --- a/deps/openssl/config/archs/VC-WIN64A/asm/include/openssl/x509_vfy.h +++ b/deps/openssl/config/archs/VC-WIN64A/asm/include/openssl/x509_vfy.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by makefile from include/openssl/x509_vfy.h.in * - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -411,6 +411,7 @@ X509_LOOKUP_ctrl_ex((x), X509_L_ADD_STORE, (name), 0, NULL, \ # define X509_V_ERR_CA_CERT_MISSING_KEY_USAGE 92 # define X509_V_ERR_EXTENSIONS_REQUIRE_VERSION_3 93 # define X509_V_ERR_EC_KEY_EXPLICIT_PARAMS 94 +# define X509_V_ERR_RPK_UNTRUSTED 95 /* Certificate verify flags */ # ifndef OPENSSL_NO_DEPRECATED_1_1_0 @@ -491,71 +492,72 @@ int X509_OBJECT_set1_X509(X509_OBJECT *a, X509 *obj); X509_CRL *X509_OBJECT_get0_X509_CRL(const X509_OBJECT *a); int X509_OBJECT_set1_X509_CRL(X509_OBJECT *a, X509_CRL *obj); X509_STORE *X509_STORE_new(void); -void X509_STORE_free(X509_STORE *v); -int X509_STORE_lock(X509_STORE *ctx); -int X509_STORE_unlock(X509_STORE *ctx); -int X509_STORE_up_ref(X509_STORE *v); -STACK_OF(X509_OBJECT) *X509_STORE_get0_objects(const X509_STORE *v); -STACK_OF(X509) *X509_STORE_get1_all_certs(X509_STORE *st); -STACK_OF(X509) *X509_STORE_CTX_get1_certs(X509_STORE_CTX *st, +void X509_STORE_free(X509_STORE *xs); +int X509_STORE_lock(X509_STORE *xs); +int X509_STORE_unlock(X509_STORE *xs); +int X509_STORE_up_ref(X509_STORE *xs); +STACK_OF(X509_OBJECT) *X509_STORE_get0_objects(const X509_STORE *xs); +STACK_OF(X509_OBJECT) *X509_STORE_get1_objects(X509_STORE *xs); +STACK_OF(X509) *X509_STORE_get1_all_certs(X509_STORE *xs); +STACK_OF(X509) *X509_STORE_CTX_get1_certs(X509_STORE_CTX *xs, const X509_NAME *nm); STACK_OF(X509_CRL) *X509_STORE_CTX_get1_crls(const X509_STORE_CTX *st, const X509_NAME *nm); -int X509_STORE_set_flags(X509_STORE *ctx, unsigned long flags); -int X509_STORE_set_purpose(X509_STORE *ctx, int purpose); -int X509_STORE_set_trust(X509_STORE *ctx, int trust); -int X509_STORE_set1_param(X509_STORE *ctx, const X509_VERIFY_PARAM *pm); -X509_VERIFY_PARAM *X509_STORE_get0_param(const X509_STORE *ctx); +int X509_STORE_set_flags(X509_STORE *xs, unsigned long flags); +int X509_STORE_set_purpose(X509_STORE *xs, int purpose); +int X509_STORE_set_trust(X509_STORE *xs, int trust); +int X509_STORE_set1_param(X509_STORE *xs, const X509_VERIFY_PARAM *pm); +X509_VERIFY_PARAM *X509_STORE_get0_param(const X509_STORE *xs); -void X509_STORE_set_verify(X509_STORE *ctx, X509_STORE_CTX_verify_fn verify); +void X509_STORE_set_verify(X509_STORE *xs, X509_STORE_CTX_verify_fn verify); #define X509_STORE_set_verify_func(ctx, func) \ X509_STORE_set_verify((ctx),(func)) void X509_STORE_CTX_set_verify(X509_STORE_CTX *ctx, X509_STORE_CTX_verify_fn verify); -X509_STORE_CTX_verify_fn X509_STORE_get_verify(const X509_STORE *ctx); -void X509_STORE_set_verify_cb(X509_STORE *ctx, +X509_STORE_CTX_verify_fn X509_STORE_get_verify(const X509_STORE *xs); +void X509_STORE_set_verify_cb(X509_STORE *xs, X509_STORE_CTX_verify_cb verify_cb); # define X509_STORE_set_verify_cb_func(ctx,func) \ X509_STORE_set_verify_cb((ctx),(func)) -X509_STORE_CTX_verify_cb X509_STORE_get_verify_cb(const X509_STORE *ctx); -void X509_STORE_set_get_issuer(X509_STORE *ctx, +X509_STORE_CTX_verify_cb X509_STORE_get_verify_cb(const X509_STORE *xs); +void X509_STORE_set_get_issuer(X509_STORE *xs, X509_STORE_CTX_get_issuer_fn get_issuer); -X509_STORE_CTX_get_issuer_fn X509_STORE_get_get_issuer(const X509_STORE *ctx); -void X509_STORE_set_check_issued(X509_STORE *ctx, +X509_STORE_CTX_get_issuer_fn X509_STORE_get_get_issuer(const X509_STORE *xs); +void X509_STORE_set_check_issued(X509_STORE *xs, X509_STORE_CTX_check_issued_fn check_issued); -X509_STORE_CTX_check_issued_fn X509_STORE_get_check_issued(const X509_STORE *ctx); -void X509_STORE_set_check_revocation(X509_STORE *ctx, +X509_STORE_CTX_check_issued_fn X509_STORE_get_check_issued(const X509_STORE *s); +void X509_STORE_set_check_revocation(X509_STORE *xs, X509_STORE_CTX_check_revocation_fn check_revocation); X509_STORE_CTX_check_revocation_fn - X509_STORE_get_check_revocation(const X509_STORE *ctx); -void X509_STORE_set_get_crl(X509_STORE *ctx, + X509_STORE_get_check_revocation(const X509_STORE *xs); +void X509_STORE_set_get_crl(X509_STORE *xs, X509_STORE_CTX_get_crl_fn get_crl); -X509_STORE_CTX_get_crl_fn X509_STORE_get_get_crl(const X509_STORE *ctx); -void X509_STORE_set_check_crl(X509_STORE *ctx, +X509_STORE_CTX_get_crl_fn X509_STORE_get_get_crl(const X509_STORE *xs); +void X509_STORE_set_check_crl(X509_STORE *xs, X509_STORE_CTX_check_crl_fn check_crl); -X509_STORE_CTX_check_crl_fn X509_STORE_get_check_crl(const X509_STORE *ctx); -void X509_STORE_set_cert_crl(X509_STORE *ctx, +X509_STORE_CTX_check_crl_fn X509_STORE_get_check_crl(const X509_STORE *xs); +void X509_STORE_set_cert_crl(X509_STORE *xs, X509_STORE_CTX_cert_crl_fn cert_crl); -X509_STORE_CTX_cert_crl_fn X509_STORE_get_cert_crl(const X509_STORE *ctx); -void X509_STORE_set_check_policy(X509_STORE *ctx, +X509_STORE_CTX_cert_crl_fn X509_STORE_get_cert_crl(const X509_STORE *xs); +void X509_STORE_set_check_policy(X509_STORE *xs, X509_STORE_CTX_check_policy_fn check_policy); -X509_STORE_CTX_check_policy_fn X509_STORE_get_check_policy(const X509_STORE *ctx); -void X509_STORE_set_lookup_certs(X509_STORE *ctx, +X509_STORE_CTX_check_policy_fn X509_STORE_get_check_policy(const X509_STORE *s); +void X509_STORE_set_lookup_certs(X509_STORE *xs, X509_STORE_CTX_lookup_certs_fn lookup_certs); -X509_STORE_CTX_lookup_certs_fn X509_STORE_get_lookup_certs(const X509_STORE *ctx); -void X509_STORE_set_lookup_crls(X509_STORE *ctx, +X509_STORE_CTX_lookup_certs_fn X509_STORE_get_lookup_certs(const X509_STORE *s); +void X509_STORE_set_lookup_crls(X509_STORE *xs, X509_STORE_CTX_lookup_crls_fn lookup_crls); #define X509_STORE_set_lookup_crls_cb(ctx, func) \ X509_STORE_set_lookup_crls((ctx), (func)) -X509_STORE_CTX_lookup_crls_fn X509_STORE_get_lookup_crls(const X509_STORE *ctx); -void X509_STORE_set_cleanup(X509_STORE *ctx, +X509_STORE_CTX_lookup_crls_fn X509_STORE_get_lookup_crls(const X509_STORE *xs); +void X509_STORE_set_cleanup(X509_STORE *xs, X509_STORE_CTX_cleanup_fn cleanup); -X509_STORE_CTX_cleanup_fn X509_STORE_get_cleanup(const X509_STORE *ctx); +X509_STORE_CTX_cleanup_fn X509_STORE_get_cleanup(const X509_STORE *xs); #define X509_STORE_get_ex_new_index(l, p, newf, dupf, freef) \ CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_X509_STORE, l, p, newf, dupf, freef) -int X509_STORE_set_ex_data(X509_STORE *ctx, int idx, void *data); -void *X509_STORE_get_ex_data(const X509_STORE *ctx, int idx); +int X509_STORE_set_ex_data(X509_STORE *xs, int idx, void *data); +void *X509_STORE_get_ex_data(const X509_STORE *xs, int idx); X509_STORE_CTX *X509_STORE_CTX_new_ex(OSSL_LIB_CTX *libctx, const char *propq); X509_STORE_CTX *X509_STORE_CTX_new(void); @@ -565,11 +567,14 @@ int X509_STORE_CTX_get1_issuer(X509 **issuer, X509_STORE_CTX *ctx, X509 *x); void X509_STORE_CTX_free(X509_STORE_CTX *ctx); int X509_STORE_CTX_init(X509_STORE_CTX *ctx, X509_STORE *trust_store, X509 *target, STACK_OF(X509) *untrusted); +int X509_STORE_CTX_init_rpk(X509_STORE_CTX *ctx, X509_STORE *trust_store, + EVP_PKEY* rpk); void X509_STORE_CTX_set0_trusted_stack(X509_STORE_CTX *ctx, STACK_OF(X509) *sk); void X509_STORE_CTX_cleanup(X509_STORE_CTX *ctx); X509_STORE *X509_STORE_CTX_get0_store(const X509_STORE_CTX *ctx); X509 *X509_STORE_CTX_get0_cert(const X509_STORE_CTX *ctx); +EVP_PKEY *X509_STORE_CTX_get0_rpk(const X509_STORE_CTX *ctx); STACK_OF(X509)* X509_STORE_CTX_get0_untrusted(const X509_STORE_CTX *ctx); void X509_STORE_CTX_set0_untrusted(X509_STORE_CTX *ctx, STACK_OF(X509) *sk); void X509_STORE_CTX_set_verify_cb(X509_STORE_CTX *ctx, @@ -579,6 +584,8 @@ X509_STORE_CTX_verify_fn X509_STORE_CTX_get_verify(const X509_STORE_CTX *ctx); X509_STORE_CTX_get_issuer_fn X509_STORE_CTX_get_get_issuer(const X509_STORE_CTX *ctx); X509_STORE_CTX_check_issued_fn X509_STORE_CTX_get_check_issued(const X509_STORE_CTX *ctx); X509_STORE_CTX_check_revocation_fn X509_STORE_CTX_get_check_revocation(const X509_STORE_CTX *ctx); +void X509_STORE_CTX_set_get_crl(X509_STORE_CTX *ctx, + X509_STORE_CTX_get_crl_fn get_crl); X509_STORE_CTX_get_crl_fn X509_STORE_CTX_get_get_crl(const X509_STORE_CTX *ctx); X509_STORE_CTX_check_crl_fn X509_STORE_CTX_get_check_crl(const X509_STORE_CTX *ctx); X509_STORE_CTX_cert_crl_fn X509_STORE_CTX_get_cert_crl(const X509_STORE_CTX *ctx); @@ -600,7 +607,7 @@ X509_STORE_CTX_cleanup_fn X509_STORE_CTX_get_cleanup(const X509_STORE_CTX *ctx); # define X509_STORE_get1_crl X509_STORE_CTX_get1_crls #endif -X509_LOOKUP *X509_STORE_add_lookup(X509_STORE *v, X509_LOOKUP_METHOD *m); +X509_LOOKUP *X509_STORE_add_lookup(X509_STORE *xs, X509_LOOKUP_METHOD *m); X509_LOOKUP_METHOD *X509_LOOKUP_hash_dir(void); X509_LOOKUP_METHOD *X509_LOOKUP_file(void); X509_LOOKUP_METHOD *X509_LOOKUP_store(void); @@ -685,8 +692,8 @@ X509_LOOKUP_get_by_alias_fn X509_LOOKUP_meth_get_get_by_alias( const X509_LOOKUP_METHOD *method); -int X509_STORE_add_cert(X509_STORE *ctx, X509 *x); -int X509_STORE_add_crl(X509_STORE *ctx, X509_CRL *x); +int X509_STORE_add_cert(X509_STORE *xs, X509 *x); +int X509_STORE_add_crl(X509_STORE *xs, X509_CRL *x); int X509_STORE_CTX_get_by_subject(const X509_STORE_CTX *vs, X509_LOOKUP_TYPE type, @@ -730,23 +737,21 @@ void *X509_LOOKUP_get_method_data(const X509_LOOKUP *ctx); X509_STORE *X509_LOOKUP_get_store(const X509_LOOKUP *ctx); int X509_LOOKUP_shutdown(X509_LOOKUP *ctx); -int X509_STORE_load_file(X509_STORE *ctx, const char *file); -int X509_STORE_load_path(X509_STORE *ctx, const char *path); -int X509_STORE_load_store(X509_STORE *ctx, const char *store); -int X509_STORE_load_locations(X509_STORE *ctx, - const char *file, - const char *dir); -int X509_STORE_set_default_paths(X509_STORE *ctx); +int X509_STORE_load_file(X509_STORE *xs, const char *file); +int X509_STORE_load_path(X509_STORE *xs, const char *path); +int X509_STORE_load_store(X509_STORE *xs, const char *store); +int X509_STORE_load_locations(X509_STORE *s, const char *file, const char *dir); +int X509_STORE_set_default_paths(X509_STORE *xs); -int X509_STORE_load_file_ex(X509_STORE *ctx, const char *file, +int X509_STORE_load_file_ex(X509_STORE *xs, const char *file, OSSL_LIB_CTX *libctx, const char *propq); -int X509_STORE_load_store_ex(X509_STORE *ctx, const char *store, +int X509_STORE_load_store_ex(X509_STORE *xs, const char *store, OSSL_LIB_CTX *libctx, const char *propq); -int X509_STORE_load_locations_ex(X509_STORE *ctx, const char *file, - const char *dir, OSSL_LIB_CTX *libctx, - const char *propq); -int X509_STORE_set_default_paths_ex(X509_STORE *ctx, OSSL_LIB_CTX *libctx, - const char *propq); +int X509_STORE_load_locations_ex(X509_STORE *xs, + const char *file, const char *dir, + OSSL_LIB_CTX *libctx, const char *propq); +int X509_STORE_set_default_paths_ex(X509_STORE *xs, + OSSL_LIB_CTX *libctx, const char *propq); #define X509_STORE_CTX_get_ex_new_index(l, p, newf, dupf, freef) \ CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_X509_STORE_CTX, l, p, newf, dupf, freef) @@ -764,6 +769,7 @@ X509_STORE_CTX *X509_STORE_CTX_get0_parent_ctx(const X509_STORE_CTX *ctx); STACK_OF(X509) *X509_STORE_CTX_get0_chain(const X509_STORE_CTX *ctx); STACK_OF(X509) *X509_STORE_CTX_get1_chain(const X509_STORE_CTX *ctx); void X509_STORE_CTX_set_cert(X509_STORE_CTX *ctx, X509 *target); +void X509_STORE_CTX_set0_rpk(X509_STORE_CTX *ctx, EVP_PKEY *target); void X509_STORE_CTX_set0_verified_chain(X509_STORE_CTX *c, STACK_OF(X509) *sk); void X509_STORE_CTX_set0_crls(X509_STORE_CTX *ctx, STACK_OF(X509_CRL) *sk); int X509_STORE_CTX_set_purpose(X509_STORE_CTX *ctx, int purpose); @@ -773,6 +779,8 @@ int X509_STORE_CTX_purpose_inherit(X509_STORE_CTX *ctx, int def_purpose, void X509_STORE_CTX_set_flags(X509_STORE_CTX *ctx, unsigned long flags); void X509_STORE_CTX_set_time(X509_STORE_CTX *ctx, unsigned long flags, time_t t); +void X509_STORE_CTX_set_current_reasons(X509_STORE_CTX *ctx, + unsigned int current_reasons); X509_POLICY_TREE *X509_STORE_CTX_get0_policy_tree(const X509_STORE_CTX *ctx); int X509_STORE_CTX_get_explicit_policy(const X509_STORE_CTX *ctx); @@ -804,6 +812,7 @@ int X509_VERIFY_PARAM_clear_flags(X509_VERIFY_PARAM *param, unsigned long flags); unsigned long X509_VERIFY_PARAM_get_flags(const X509_VERIFY_PARAM *param); int X509_VERIFY_PARAM_set_purpose(X509_VERIFY_PARAM *param, int purpose); +int X509_VERIFY_PARAM_get_purpose(const X509_VERIFY_PARAM *param); int X509_VERIFY_PARAM_set_trust(X509_VERIFY_PARAM *param, int trust); void X509_VERIFY_PARAM_set_depth(X509_VERIFY_PARAM *param, int depth); void X509_VERIFY_PARAM_set_auth_level(X509_VERIFY_PARAM *param, int auth_level); diff --git a/deps/openssl/config/archs/VC-WIN64A/asm/include/openssl/x509v3.h b/deps/openssl/config/archs/VC-WIN64A/asm/include/openssl/x509v3.h index ed08a546f9813d..362ce3fb4387f7 100644 --- a/deps/openssl/config/archs/VC-WIN64A/asm/include/openssl/x509v3.h +++ b/deps/openssl/config/archs/VC-WIN64A/asm/include/openssl/x509v3.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by makefile from include/openssl/x509v3.h.in * - * Copyright 1999-2023 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1999-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -25,6 +25,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -146,6 +149,11 @@ typedef struct BASIC_CONSTRAINTS_st { ASN1_INTEGER *pathlen; } BASIC_CONSTRAINTS; +typedef struct OSSL_BASIC_ATTR_CONSTRAINTS_st { + int authority; + ASN1_INTEGER *pathlen; +} OSSL_BASIC_ATTR_CONSTRAINTS; + typedef struct PKEY_USAGE_PERIOD_st { ASN1_GENERALIZEDTIME *notBefore; ASN1_GENERALIZEDTIME *notAfter; @@ -198,6 +206,8 @@ typedef struct ACCESS_DESCRIPTION_st { GENERAL_NAME *location; } ACCESS_DESCRIPTION; +int GENERAL_NAME_set1_X509_NAME(GENERAL_NAME **tgt, const X509_NAME *src); + SKM_DEFINE_STACK_OF_INTERNAL(ACCESS_DESCRIPTION, ACCESS_DESCRIPTION, ACCESS_DESCRIPTION) #define sk_ACCESS_DESCRIPTION_num(sk) OPENSSL_sk_num(ossl_check_const_ACCESS_DESCRIPTION_sk_type(sk)) #define sk_ACCESS_DESCRIPTION_value(sk, idx) ((ACCESS_DESCRIPTION *)OPENSSL_sk_value(ossl_check_const_ACCESS_DESCRIPTION_sk_type(sk), (idx))) @@ -294,6 +304,7 @@ typedef struct DIST_POINT_NAME_st { /* If relativename then this contains the full distribution point name */ X509_NAME *dpname; } DIST_POINT_NAME; +DECLARE_ASN1_DUP_FUNCTION(DIST_POINT_NAME) /* All existing reasons */ # define CRLDP_ALL_REASONS 0x807f @@ -659,15 +670,16 @@ struct ISSUING_DIST_POINT_st { # define EXFLAG_SAN_CRITICAL 0x80000 # define EXFLAG_NO_FINGERPRINT 0x100000 -# define KU_DIGITAL_SIGNATURE 0x0080 -# define KU_NON_REPUDIATION 0x0040 -# define KU_KEY_ENCIPHERMENT 0x0020 -# define KU_DATA_ENCIPHERMENT 0x0010 -# define KU_KEY_AGREEMENT 0x0008 -# define KU_KEY_CERT_SIGN 0x0004 -# define KU_CRL_SIGN 0x0002 -# define KU_ENCIPHER_ONLY 0x0001 -# define KU_DECIPHER_ONLY 0x8000 +/* https://datatracker.ietf.org/doc/html/rfc5280#section-4.2.1.3 */ +# define KU_DIGITAL_SIGNATURE X509v3_KU_DIGITAL_SIGNATURE +# define KU_NON_REPUDIATION X509v3_KU_NON_REPUDIATION +# define KU_KEY_ENCIPHERMENT X509v3_KU_KEY_ENCIPHERMENT +# define KU_DATA_ENCIPHERMENT X509v3_KU_DATA_ENCIPHERMENT +# define KU_KEY_AGREEMENT X509v3_KU_KEY_AGREEMENT +# define KU_KEY_CERT_SIGN X509v3_KU_KEY_CERT_SIGN +# define KU_CRL_SIGN X509v3_KU_CRL_SIGN +# define KU_ENCIPHER_ONLY X509v3_KU_ENCIPHER_ONLY +# define KU_DECIPHER_ONLY X509v3_KU_DECIPHER_ONLY # define NS_SSL_CLIENT 0x80 # define NS_SSL_SERVER 0x40 @@ -729,7 +741,7 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_PURPOSE, X509_PURPOSE, X509_PURPOSE) #define sk_X509_PURPOSE_set_cmp_func(sk, cmp) ((sk_X509_PURPOSE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_X509_PURPOSE_sk_type(sk), ossl_check_X509_PURPOSE_compfunc_type(cmp))) - +# define X509_PURPOSE_DEFAULT_ANY 0 # define X509_PURPOSE_SSL_CLIENT 1 # define X509_PURPOSE_SSL_SERVER 2 # define X509_PURPOSE_NS_SSL_SERVER 3 @@ -739,9 +751,10 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_PURPOSE, X509_PURPOSE, X509_PURPOSE) # define X509_PURPOSE_ANY 7 # define X509_PURPOSE_OCSP_HELPER 8 # define X509_PURPOSE_TIMESTAMP_SIGN 9 +# define X509_PURPOSE_CODE_SIGN 10 # define X509_PURPOSE_MIN 1 -# define X509_PURPOSE_MAX 9 +# define X509_PURPOSE_MAX 10 /* Flags for X509V3_EXT_print() */ @@ -767,6 +780,7 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_PURPOSE, X509_PURPOSE, X509_PURPOSE) # define X509V3_ADD_SILENT 0x10 DECLARE_ASN1_FUNCTIONS(BASIC_CONSTRAINTS) +DECLARE_ASN1_FUNCTIONS(OSSL_BASIC_ATTR_CONSTRAINTS) DECLARE_ASN1_FUNCTIONS(SXNET) DECLARE_ASN1_FUNCTIONS(SXNETID) @@ -976,7 +990,6 @@ int X509V3_extensions_print(BIO *out, const char *title, int X509_check_ca(X509 *x); int X509_check_purpose(X509 *x, int id, int ca); int X509_supported_extension(X509_EXTENSION *ex); -int X509_PURPOSE_set(int *p, int purpose); int X509_check_issued(X509 *issuer, X509 *subject); int X509_check_akid(const X509 *issuer, const AUTHORITY_KEYID *akid); void X509_set_proxy_flag(X509 *x); @@ -992,22 +1005,26 @@ const GENERAL_NAMES *X509_get0_authority_issuer(X509 *x); const ASN1_INTEGER *X509_get0_authority_serial(X509 *x); int X509_PURPOSE_get_count(void); -X509_PURPOSE *X509_PURPOSE_get0(int idx); +int X509_PURPOSE_get_unused_id(OSSL_LIB_CTX *libctx); int X509_PURPOSE_get_by_sname(const char *sname); int X509_PURPOSE_get_by_id(int id); int X509_PURPOSE_add(int id, int trust, int flags, int (*ck) (const X509_PURPOSE *, const X509 *, int), const char *name, const char *sname, void *arg); +void X509_PURPOSE_cleanup(void); + +X509_PURPOSE *X509_PURPOSE_get0(int idx); +int X509_PURPOSE_get_id(const X509_PURPOSE *); char *X509_PURPOSE_get0_name(const X509_PURPOSE *xp); char *X509_PURPOSE_get0_sname(const X509_PURPOSE *xp); int X509_PURPOSE_get_trust(const X509_PURPOSE *xp); -void X509_PURPOSE_cleanup(void); -int X509_PURPOSE_get_id(const X509_PURPOSE *); +int X509_PURPOSE_set(int *p, int purpose); STACK_OF(OPENSSL_STRING) *X509_get1_email(X509 *x); STACK_OF(OPENSSL_STRING) *X509_REQ_get1_email(X509_REQ *x); void X509_email_free(STACK_OF(OPENSSL_STRING) *sk); STACK_OF(OPENSSL_STRING) *X509_get1_ocsp(X509 *x); + /* Flags for X509_check_* functions */ /* @@ -1444,6 +1461,507 @@ const ASN1_PRINTABLESTRING *PROFESSION_INFO_get0_registrationNumber( void PROFESSION_INFO_set0_registrationNumber( PROFESSION_INFO *pi, ASN1_PRINTABLESTRING *rn); +int OSSL_GENERAL_NAMES_print(BIO *out, GENERAL_NAMES *gens, int indent); + +typedef STACK_OF(X509_ATTRIBUTE) OSSL_ATTRIBUTES_SYNTAX; +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTES_SYNTAX) + +typedef STACK_OF(USERNOTICE) OSSL_USER_NOTICE_SYNTAX; +DECLARE_ASN1_FUNCTIONS(OSSL_USER_NOTICE_SYNTAX) + +SKM_DEFINE_STACK_OF_INTERNAL(USERNOTICE, USERNOTICE, USERNOTICE) +#define sk_USERNOTICE_num(sk) OPENSSL_sk_num(ossl_check_const_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_value(sk, idx) ((USERNOTICE *)OPENSSL_sk_value(ossl_check_const_USERNOTICE_sk_type(sk), (idx))) +#define sk_USERNOTICE_new(cmp) ((STACK_OF(USERNOTICE) *)OPENSSL_sk_new(ossl_check_USERNOTICE_compfunc_type(cmp))) +#define sk_USERNOTICE_new_null() ((STACK_OF(USERNOTICE) *)OPENSSL_sk_new_null()) +#define sk_USERNOTICE_new_reserve(cmp, n) ((STACK_OF(USERNOTICE) *)OPENSSL_sk_new_reserve(ossl_check_USERNOTICE_compfunc_type(cmp), (n))) +#define sk_USERNOTICE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_USERNOTICE_sk_type(sk), (n)) +#define sk_USERNOTICE_free(sk) OPENSSL_sk_free(ossl_check_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_zero(sk) OPENSSL_sk_zero(ossl_check_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_delete(sk, i) ((USERNOTICE *)OPENSSL_sk_delete(ossl_check_USERNOTICE_sk_type(sk), (i))) +#define sk_USERNOTICE_delete_ptr(sk, ptr) ((USERNOTICE *)OPENSSL_sk_delete_ptr(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr))) +#define sk_USERNOTICE_push(sk, ptr) OPENSSL_sk_push(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr)) +#define sk_USERNOTICE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr)) +#define sk_USERNOTICE_pop(sk) ((USERNOTICE *)OPENSSL_sk_pop(ossl_check_USERNOTICE_sk_type(sk))) +#define sk_USERNOTICE_shift(sk) ((USERNOTICE *)OPENSSL_sk_shift(ossl_check_USERNOTICE_sk_type(sk))) +#define sk_USERNOTICE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_USERNOTICE_sk_type(sk),ossl_check_USERNOTICE_freefunc_type(freefunc)) +#define sk_USERNOTICE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr), (idx)) +#define sk_USERNOTICE_set(sk, idx, ptr) ((USERNOTICE *)OPENSSL_sk_set(ossl_check_USERNOTICE_sk_type(sk), (idx), ossl_check_USERNOTICE_type(ptr))) +#define sk_USERNOTICE_find(sk, ptr) OPENSSL_sk_find(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr)) +#define sk_USERNOTICE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr)) +#define sk_USERNOTICE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr), pnum) +#define sk_USERNOTICE_sort(sk) OPENSSL_sk_sort(ossl_check_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_dup(sk) ((STACK_OF(USERNOTICE) *)OPENSSL_sk_dup(ossl_check_const_USERNOTICE_sk_type(sk))) +#define sk_USERNOTICE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(USERNOTICE) *)OPENSSL_sk_deep_copy(ossl_check_const_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_copyfunc_type(copyfunc), ossl_check_USERNOTICE_freefunc_type(freefunc))) +#define sk_USERNOTICE_set_cmp_func(sk, cmp) ((sk_USERNOTICE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_compfunc_type(cmp))) + + +typedef struct OSSL_ROLE_SPEC_CERT_ID_st { + GENERAL_NAME *roleName; + GENERAL_NAME *roleCertIssuer; + ASN1_INTEGER *roleCertSerialNumber; + GENERAL_NAMES *roleCertLocator; +} OSSL_ROLE_SPEC_CERT_ID; + +DECLARE_ASN1_FUNCTIONS(OSSL_ROLE_SPEC_CERT_ID) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ROLE_SPEC_CERT_ID, OSSL_ROLE_SPEC_CERT_ID, OSSL_ROLE_SPEC_CERT_ID) +#define sk_OSSL_ROLE_SPEC_CERT_ID_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_value(sk, idx) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_value(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), (idx))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_new(cmp) ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_new(ossl_check_OSSL_ROLE_SPEC_CERT_ID_compfunc_type(cmp))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_new_null() ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ROLE_SPEC_CERT_ID_new_reserve(cmp, n) ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ROLE_SPEC_CERT_ID_compfunc_type(cmp), (n))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), (n)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_delete(sk, i) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_delete(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), (i))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_delete_ptr(sk, ptr) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_pop(sk) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_pop(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_shift(sk) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_shift(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk),ossl_check_OSSL_ROLE_SPEC_CERT_ID_freefunc_type(freefunc)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr), (idx)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_set(sk, idx, ptr) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_set(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), (idx), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr), pnum) +#define sk_OSSL_ROLE_SPEC_CERT_ID_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_dup(sk) ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_copyfunc_type(copyfunc), ossl_check_OSSL_ROLE_SPEC_CERT_ID_freefunc_type(freefunc))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_set_cmp_func(sk, cmp) ((sk_OSSL_ROLE_SPEC_CERT_ID_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_compfunc_type(cmp))) + + +typedef STACK_OF(OSSL_ROLE_SPEC_CERT_ID) OSSL_ROLE_SPEC_CERT_ID_SYNTAX; + +DECLARE_ASN1_FUNCTIONS(OSSL_ROLE_SPEC_CERT_ID_SYNTAX) +typedef struct OSSL_HASH_st { + X509_ALGOR *algorithmIdentifier; + ASN1_BIT_STRING *hashValue; +} OSSL_HASH; + +typedef struct OSSL_INFO_SYNTAX_POINTER_st { + GENERAL_NAMES *name; + OSSL_HASH *hash; +} OSSL_INFO_SYNTAX_POINTER; + +# define OSSL_INFO_SYNTAX_TYPE_CONTENT 0 +# define OSSL_INFO_SYNTAX_TYPE_POINTER 1 + +typedef struct OSSL_INFO_SYNTAX_st { + int type; + union { + ASN1_STRING *content; + OSSL_INFO_SYNTAX_POINTER *pointer; + } choice; +} OSSL_INFO_SYNTAX; + +typedef struct OSSL_PRIVILEGE_POLICY_ID_st { + ASN1_OBJECT *privilegePolicy; + OSSL_INFO_SYNTAX *privPolSyntax; +} OSSL_PRIVILEGE_POLICY_ID; + +typedef struct OSSL_ATTRIBUTE_DESCRIPTOR_st { + ASN1_OBJECT *identifier; + ASN1_STRING *attributeSyntax; + ASN1_UTF8STRING *name; + ASN1_UTF8STRING *description; + OSSL_PRIVILEGE_POLICY_ID *dominationRule; +} OSSL_ATTRIBUTE_DESCRIPTOR; + +DECLARE_ASN1_FUNCTIONS(OSSL_HASH) +DECLARE_ASN1_FUNCTIONS(OSSL_INFO_SYNTAX) +DECLARE_ASN1_FUNCTIONS(OSSL_INFO_SYNTAX_POINTER) +DECLARE_ASN1_FUNCTIONS(OSSL_PRIVILEGE_POLICY_ID) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_DESCRIPTOR) + +typedef struct OSSL_TIME_SPEC_ABSOLUTE_st { + ASN1_GENERALIZEDTIME *startTime; + ASN1_GENERALIZEDTIME *endTime; +} OSSL_TIME_SPEC_ABSOLUTE; + +typedef struct OSSL_DAY_TIME_st { + ASN1_INTEGER *hour; + ASN1_INTEGER *minute; + ASN1_INTEGER *second; +} OSSL_DAY_TIME; + +typedef struct OSSL_DAY_TIME_BAND_st { + OSSL_DAY_TIME *startDayTime; + OSSL_DAY_TIME *endDayTime; +} OSSL_DAY_TIME_BAND; + +# define OSSL_NAMED_DAY_TYPE_INT 0 +# define OSSL_NAMED_DAY_TYPE_BIT 1 +# define OSSL_NAMED_DAY_INT_SUN 1 +# define OSSL_NAMED_DAY_INT_MON 2 +# define OSSL_NAMED_DAY_INT_TUE 3 +# define OSSL_NAMED_DAY_INT_WED 4 +# define OSSL_NAMED_DAY_INT_THU 5 +# define OSSL_NAMED_DAY_INT_FRI 6 +# define OSSL_NAMED_DAY_INT_SAT 7 +# define OSSL_NAMED_DAY_BIT_SUN 0 +# define OSSL_NAMED_DAY_BIT_MON 1 +# define OSSL_NAMED_DAY_BIT_TUE 2 +# define OSSL_NAMED_DAY_BIT_WED 3 +# define OSSL_NAMED_DAY_BIT_THU 4 +# define OSSL_NAMED_DAY_BIT_FRI 5 +# define OSSL_NAMED_DAY_BIT_SAT 6 + +typedef struct OSSL_NAMED_DAY_st { + int type; + union { + ASN1_INTEGER *intNamedDays; + ASN1_BIT_STRING *bitNamedDays; + } choice; +} OSSL_NAMED_DAY; + +# define OSSL_TIME_SPEC_X_DAY_OF_FIRST 0 +# define OSSL_TIME_SPEC_X_DAY_OF_SECOND 1 +# define OSSL_TIME_SPEC_X_DAY_OF_THIRD 2 +# define OSSL_TIME_SPEC_X_DAY_OF_FOURTH 3 +# define OSSL_TIME_SPEC_X_DAY_OF_FIFTH 4 + +typedef struct OSSL_TIME_SPEC_X_DAY_OF_st { + int type; + union { + OSSL_NAMED_DAY *first; + OSSL_NAMED_DAY *second; + OSSL_NAMED_DAY *third; + OSSL_NAMED_DAY *fourth; + OSSL_NAMED_DAY *fifth; + } choice; +} OSSL_TIME_SPEC_X_DAY_OF; + +# define OSSL_TIME_SPEC_DAY_TYPE_INT 0 +# define OSSL_TIME_SPEC_DAY_TYPE_BIT 1 +# define OSSL_TIME_SPEC_DAY_TYPE_DAY_OF 2 +# define OSSL_TIME_SPEC_DAY_BIT_SUN 0 +# define OSSL_TIME_SPEC_DAY_BIT_MON 1 +# define OSSL_TIME_SPEC_DAY_BIT_TUE 2 +# define OSSL_TIME_SPEC_DAY_BIT_WED 3 +# define OSSL_TIME_SPEC_DAY_BIT_THU 4 +# define OSSL_TIME_SPEC_DAY_BIT_FRI 5 +# define OSSL_TIME_SPEC_DAY_BIT_SAT 6 +# define OSSL_TIME_SPEC_DAY_INT_SUN 1 +# define OSSL_TIME_SPEC_DAY_INT_MON 2 +# define OSSL_TIME_SPEC_DAY_INT_TUE 3 +# define OSSL_TIME_SPEC_DAY_INT_WED 4 +# define OSSL_TIME_SPEC_DAY_INT_THU 5 +# define OSSL_TIME_SPEC_DAY_INT_FRI 6 +# define OSSL_TIME_SPEC_DAY_INT_SAT 7 + +typedef struct OSSL_TIME_SPEC_DAY_st { + int type; + union { + STACK_OF(ASN1_INTEGER) *intDay; + ASN1_BIT_STRING *bitDay; + OSSL_TIME_SPEC_X_DAY_OF *dayOf; + } choice; +} OSSL_TIME_SPEC_DAY; + +# define OSSL_TIME_SPEC_WEEKS_TYPE_ALL 0 +# define OSSL_TIME_SPEC_WEEKS_TYPE_INT 1 +# define OSSL_TIME_SPEC_WEEKS_TYPE_BIT 2 +# define OSSL_TIME_SPEC_BIT_WEEKS_1 0 +# define OSSL_TIME_SPEC_BIT_WEEKS_2 1 +# define OSSL_TIME_SPEC_BIT_WEEKS_3 2 +# define OSSL_TIME_SPEC_BIT_WEEKS_4 3 +# define OSSL_TIME_SPEC_BIT_WEEKS_5 4 + +typedef struct OSSL_TIME_SPEC_WEEKS_st { + int type; + union { + ASN1_NULL *allWeeks; + STACK_OF(ASN1_INTEGER) *intWeek; + ASN1_BIT_STRING *bitWeek; + } choice; +} OSSL_TIME_SPEC_WEEKS; + +# define OSSL_TIME_SPEC_MONTH_TYPE_ALL 0 +# define OSSL_TIME_SPEC_MONTH_TYPE_INT 1 +# define OSSL_TIME_SPEC_MONTH_TYPE_BIT 2 +# define OSSL_TIME_SPEC_INT_MONTH_JAN 1 +# define OSSL_TIME_SPEC_INT_MONTH_FEB 2 +# define OSSL_TIME_SPEC_INT_MONTH_MAR 3 +# define OSSL_TIME_SPEC_INT_MONTH_APR 4 +# define OSSL_TIME_SPEC_INT_MONTH_MAY 5 +# define OSSL_TIME_SPEC_INT_MONTH_JUN 6 +# define OSSL_TIME_SPEC_INT_MONTH_JUL 7 +# define OSSL_TIME_SPEC_INT_MONTH_AUG 8 +# define OSSL_TIME_SPEC_INT_MONTH_SEP 9 +# define OSSL_TIME_SPEC_INT_MONTH_OCT 10 +# define OSSL_TIME_SPEC_INT_MONTH_NOV 11 +# define OSSL_TIME_SPEC_INT_MONTH_DEC 12 +# define OSSL_TIME_SPEC_BIT_MONTH_JAN 0 +# define OSSL_TIME_SPEC_BIT_MONTH_FEB 1 +# define OSSL_TIME_SPEC_BIT_MONTH_MAR 2 +# define OSSL_TIME_SPEC_BIT_MONTH_APR 3 +# define OSSL_TIME_SPEC_BIT_MONTH_MAY 4 +# define OSSL_TIME_SPEC_BIT_MONTH_JUN 5 +# define OSSL_TIME_SPEC_BIT_MONTH_JUL 6 +# define OSSL_TIME_SPEC_BIT_MONTH_AUG 7 +# define OSSL_TIME_SPEC_BIT_MONTH_SEP 8 +# define OSSL_TIME_SPEC_BIT_MONTH_OCT 9 +# define OSSL_TIME_SPEC_BIT_MONTH_NOV 10 +# define OSSL_TIME_SPEC_BIT_MONTH_DEC 11 + +typedef struct OSSL_TIME_SPEC_MONTH_st { + int type; + union { + ASN1_NULL *allMonths; + STACK_OF(ASN1_INTEGER) *intMonth; + ASN1_BIT_STRING *bitMonth; + } choice; +} OSSL_TIME_SPEC_MONTH; + +typedef struct OSSL_TIME_PERIOD_st { + STACK_OF(OSSL_DAY_TIME_BAND) *timesOfDay; + OSSL_TIME_SPEC_DAY *days; + OSSL_TIME_SPEC_WEEKS *weeks; + OSSL_TIME_SPEC_MONTH *months; + STACK_OF(ASN1_INTEGER) *years; +} OSSL_TIME_PERIOD; + +# define OSSL_TIME_SPEC_TIME_TYPE_ABSOLUTE 0 +# define OSSL_TIME_SPEC_TIME_TYPE_PERIODIC 1 + +typedef struct OSSL_TIME_SPEC_TIME_st { + int type; + union { + OSSL_TIME_SPEC_ABSOLUTE *absolute; + STACK_OF(OSSL_TIME_PERIOD) *periodic; + } choice; +} OSSL_TIME_SPEC_TIME; + +typedef struct OSSL_TIME_SPEC_st { + OSSL_TIME_SPEC_TIME *time; + ASN1_BOOLEAN notThisTime; + ASN1_INTEGER *timeZone; +} OSSL_TIME_SPEC; + +DECLARE_ASN1_FUNCTIONS(OSSL_DAY_TIME) +DECLARE_ASN1_FUNCTIONS(OSSL_DAY_TIME_BAND) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_DAY) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_WEEKS) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_MONTH) +DECLARE_ASN1_FUNCTIONS(OSSL_NAMED_DAY) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_X_DAY_OF) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_ABSOLUTE) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_TIME) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_PERIOD) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_TIME_PERIOD, OSSL_TIME_PERIOD, OSSL_TIME_PERIOD) +#define sk_OSSL_TIME_PERIOD_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_value(sk, idx) ((OSSL_TIME_PERIOD *)OPENSSL_sk_value(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk), (idx))) +#define sk_OSSL_TIME_PERIOD_new(cmp) ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_new(ossl_check_OSSL_TIME_PERIOD_compfunc_type(cmp))) +#define sk_OSSL_TIME_PERIOD_new_null() ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_new_null()) +#define sk_OSSL_TIME_PERIOD_new_reserve(cmp, n) ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_TIME_PERIOD_compfunc_type(cmp), (n))) +#define sk_OSSL_TIME_PERIOD_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), (n)) +#define sk_OSSL_TIME_PERIOD_free(sk) OPENSSL_sk_free(ossl_check_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_delete(sk, i) ((OSSL_TIME_PERIOD *)OPENSSL_sk_delete(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), (i))) +#define sk_OSSL_TIME_PERIOD_delete_ptr(sk, ptr) ((OSSL_TIME_PERIOD *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr))) +#define sk_OSSL_TIME_PERIOD_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr)) +#define sk_OSSL_TIME_PERIOD_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr)) +#define sk_OSSL_TIME_PERIOD_pop(sk) ((OSSL_TIME_PERIOD *)OPENSSL_sk_pop(ossl_check_OSSL_TIME_PERIOD_sk_type(sk))) +#define sk_OSSL_TIME_PERIOD_shift(sk) ((OSSL_TIME_PERIOD *)OPENSSL_sk_shift(ossl_check_OSSL_TIME_PERIOD_sk_type(sk))) +#define sk_OSSL_TIME_PERIOD_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_TIME_PERIOD_sk_type(sk),ossl_check_OSSL_TIME_PERIOD_freefunc_type(freefunc)) +#define sk_OSSL_TIME_PERIOD_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr), (idx)) +#define sk_OSSL_TIME_PERIOD_set(sk, idx, ptr) ((OSSL_TIME_PERIOD *)OPENSSL_sk_set(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), (idx), ossl_check_OSSL_TIME_PERIOD_type(ptr))) +#define sk_OSSL_TIME_PERIOD_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr)) +#define sk_OSSL_TIME_PERIOD_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr)) +#define sk_OSSL_TIME_PERIOD_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr), pnum) +#define sk_OSSL_TIME_PERIOD_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_dup(sk) ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_dup(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk))) +#define sk_OSSL_TIME_PERIOD_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_copyfunc_type(copyfunc), ossl_check_OSSL_TIME_PERIOD_freefunc_type(freefunc))) +#define sk_OSSL_TIME_PERIOD_set_cmp_func(sk, cmp) ((sk_OSSL_TIME_PERIOD_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_compfunc_type(cmp))) + + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_DAY_TIME_BAND, OSSL_DAY_TIME_BAND, OSSL_DAY_TIME_BAND) +#define sk_OSSL_DAY_TIME_BAND_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_value(sk, idx) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_value(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk), (idx))) +#define sk_OSSL_DAY_TIME_BAND_new(cmp) ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_new(ossl_check_OSSL_DAY_TIME_BAND_compfunc_type(cmp))) +#define sk_OSSL_DAY_TIME_BAND_new_null() ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_new_null()) +#define sk_OSSL_DAY_TIME_BAND_new_reserve(cmp, n) ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_DAY_TIME_BAND_compfunc_type(cmp), (n))) +#define sk_OSSL_DAY_TIME_BAND_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), (n)) +#define sk_OSSL_DAY_TIME_BAND_free(sk) OPENSSL_sk_free(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_delete(sk, i) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_delete(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), (i))) +#define sk_OSSL_DAY_TIME_BAND_delete_ptr(sk, ptr) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr))) +#define sk_OSSL_DAY_TIME_BAND_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr)) +#define sk_OSSL_DAY_TIME_BAND_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr)) +#define sk_OSSL_DAY_TIME_BAND_pop(sk) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_pop(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk))) +#define sk_OSSL_DAY_TIME_BAND_shift(sk) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_shift(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk))) +#define sk_OSSL_DAY_TIME_BAND_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk),ossl_check_OSSL_DAY_TIME_BAND_freefunc_type(freefunc)) +#define sk_OSSL_DAY_TIME_BAND_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr), (idx)) +#define sk_OSSL_DAY_TIME_BAND_set(sk, idx, ptr) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_set(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), (idx), ossl_check_OSSL_DAY_TIME_BAND_type(ptr))) +#define sk_OSSL_DAY_TIME_BAND_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr)) +#define sk_OSSL_DAY_TIME_BAND_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr)) +#define sk_OSSL_DAY_TIME_BAND_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr), pnum) +#define sk_OSSL_DAY_TIME_BAND_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_dup(sk) ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_dup(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk))) +#define sk_OSSL_DAY_TIME_BAND_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_copyfunc_type(copyfunc), ossl_check_OSSL_DAY_TIME_BAND_freefunc_type(freefunc))) +#define sk_OSSL_DAY_TIME_BAND_set_cmp_func(sk, cmp) ((sk_OSSL_DAY_TIME_BAND_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_compfunc_type(cmp))) + + +/* Attribute Type and Value */ +typedef struct atav_st { + ASN1_OBJECT *type; + ASN1_TYPE *value; +} OSSL_ATAV; + +typedef struct ATTRIBUTE_TYPE_MAPPING_st { + ASN1_OBJECT *local; + ASN1_OBJECT *remote; +} OSSL_ATTRIBUTE_TYPE_MAPPING; + +typedef struct ATTRIBUTE_VALUE_MAPPING_st { + OSSL_ATAV *local; + OSSL_ATAV *remote; +} OSSL_ATTRIBUTE_VALUE_MAPPING; + +# define OSSL_ATTR_MAP_TYPE 0 +# define OSSL_ATTR_MAP_VALUE 1 + +typedef struct ATTRIBUTE_MAPPING_st { + int type; + union { + OSSL_ATTRIBUTE_TYPE_MAPPING *typeMappings; + OSSL_ATTRIBUTE_VALUE_MAPPING *typeValueMappings; + } choice; +} OSSL_ATTRIBUTE_MAPPING; + +typedef STACK_OF(OSSL_ATTRIBUTE_MAPPING) OSSL_ATTRIBUTE_MAPPINGS; +DECLARE_ASN1_FUNCTIONS(OSSL_ATAV) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_TYPE_MAPPING) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_VALUE_MAPPING) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_MAPPING) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_MAPPINGS) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ATTRIBUTE_MAPPING, OSSL_ATTRIBUTE_MAPPING, OSSL_ATTRIBUTE_MAPPING) +#define sk_OSSL_ATTRIBUTE_MAPPING_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_value(sk, idx) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_value(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), (idx))) +#define sk_OSSL_ATTRIBUTE_MAPPING_new(cmp) ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_new(ossl_check_OSSL_ATTRIBUTE_MAPPING_compfunc_type(cmp))) +#define sk_OSSL_ATTRIBUTE_MAPPING_new_null() ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ATTRIBUTE_MAPPING_new_reserve(cmp, n) ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ATTRIBUTE_MAPPING_compfunc_type(cmp), (n))) +#define sk_OSSL_ATTRIBUTE_MAPPING_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), (n)) +#define sk_OSSL_ATTRIBUTE_MAPPING_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_delete(sk, i) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_delete(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), (i))) +#define sk_OSSL_ATTRIBUTE_MAPPING_delete_ptr(sk, ptr) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr))) +#define sk_OSSL_ATTRIBUTE_MAPPING_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr)) +#define sk_OSSL_ATTRIBUTE_MAPPING_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr)) +#define sk_OSSL_ATTRIBUTE_MAPPING_pop(sk) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_pop(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk))) +#define sk_OSSL_ATTRIBUTE_MAPPING_shift(sk) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_shift(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk))) +#define sk_OSSL_ATTRIBUTE_MAPPING_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk),ossl_check_OSSL_ATTRIBUTE_MAPPING_freefunc_type(freefunc)) +#define sk_OSSL_ATTRIBUTE_MAPPING_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr), (idx)) +#define sk_OSSL_ATTRIBUTE_MAPPING_set(sk, idx, ptr) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_set(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), (idx), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr))) +#define sk_OSSL_ATTRIBUTE_MAPPING_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr)) +#define sk_OSSL_ATTRIBUTE_MAPPING_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr)) +#define sk_OSSL_ATTRIBUTE_MAPPING_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr), pnum) +#define sk_OSSL_ATTRIBUTE_MAPPING_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_dup(sk) ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk))) +#define sk_OSSL_ATTRIBUTE_MAPPING_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_copyfunc_type(copyfunc), ossl_check_OSSL_ATTRIBUTE_MAPPING_freefunc_type(freefunc))) +#define sk_OSSL_ATTRIBUTE_MAPPING_set_cmp_func(sk, cmp) ((sk_OSSL_ATTRIBUTE_MAPPING_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_compfunc_type(cmp))) + + +# define OSSL_AAA_ATTRIBUTE_TYPE 0 +# define OSSL_AAA_ATTRIBUTE_VALUES 1 + +typedef struct ALLOWED_ATTRIBUTES_CHOICE_st { + int type; + union { + ASN1_OBJECT *attributeType; + X509_ATTRIBUTE *attributeTypeandValues; + } choice; +} OSSL_ALLOWED_ATTRIBUTES_CHOICE; + +typedef struct ALLOWED_ATTRIBUTES_ITEM_st { + STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *attributes; + GENERAL_NAME *holderDomain; +} OSSL_ALLOWED_ATTRIBUTES_ITEM; + +typedef STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) OSSL_ALLOWED_ATTRIBUTES_SYNTAX; + +DECLARE_ASN1_FUNCTIONS(OSSL_ALLOWED_ATTRIBUTES_CHOICE) +DECLARE_ASN1_FUNCTIONS(OSSL_ALLOWED_ATTRIBUTES_ITEM) +DECLARE_ASN1_FUNCTIONS(OSSL_ALLOWED_ATTRIBUTES_SYNTAX) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ALLOWED_ATTRIBUTES_CHOICE, OSSL_ALLOWED_ATTRIBUTES_CHOICE, OSSL_ALLOWED_ATTRIBUTES_CHOICE) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_value(sk, idx) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_value(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), (idx))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_new(cmp) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_new(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_compfunc_type(cmp))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_new_null() ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_new_reserve(cmp, n) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_compfunc_type(cmp), (n))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), (n)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_delete(sk, i) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_delete(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), (i))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_delete_ptr(sk, ptr) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_pop(sk) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_pop(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_shift(sk) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_shift(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk),ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_freefunc_type(freefunc)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr), (idx)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_set(sk, idx, ptr) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_set(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), (idx), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr), pnum) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_dup(sk) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_copyfunc_type(copyfunc), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_freefunc_type(freefunc))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_set_cmp_func(sk, cmp) ((sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_compfunc_type(cmp))) + + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ALLOWED_ATTRIBUTES_ITEM, OSSL_ALLOWED_ATTRIBUTES_ITEM, OSSL_ALLOWED_ATTRIBUTES_ITEM) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_value(sk, idx) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_value(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), (idx))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_new(cmp) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_new(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_compfunc_type(cmp))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_new_null() ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_new_reserve(cmp, n) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_compfunc_type(cmp), (n))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), (n)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_delete(sk, i) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_delete(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), (i))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_delete_ptr(sk, ptr) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_pop(sk) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_pop(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_shift(sk) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_shift(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk),ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_freefunc_type(freefunc)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr), (idx)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_set(sk, idx, ptr) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_set(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), (idx), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr), pnum) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_dup(sk) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_copyfunc_type(copyfunc), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_freefunc_type(freefunc))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_set_cmp_func(sk, cmp) ((sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_compfunc_type(cmp))) + + +typedef struct AA_DIST_POINT_st { + DIST_POINT_NAME *distpoint; + ASN1_BIT_STRING *reasons; + int dp_reasons; + ASN1_BOOLEAN indirectCRL; + ASN1_BOOLEAN containsUserAttributeCerts; + ASN1_BOOLEAN containsAACerts; + ASN1_BOOLEAN containsSOAPublicKeyCerts; +} OSSL_AA_DIST_POINT; + +DECLARE_ASN1_FUNCTIONS(OSSL_AA_DIST_POINT) + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/VC-WIN64A/asm/include/progs.h b/deps/openssl/config/archs/VC-WIN64A/asm/include/progs.h index be55f61503d405..1b62ec37dec130 100644 --- a/deps/openssl/config/archs/VC-WIN64A/asm/include/progs.h +++ b/deps/openssl/config/archs/VC-WIN64A/asm/include/progs.h @@ -56,6 +56,7 @@ extern int s_client_main(int argc, char *argv[]); extern int s_server_main(int argc, char *argv[]); extern int s_time_main(int argc, char *argv[]); extern int sess_id_main(int argc, char *argv[]); +extern int skeyutl_main(int argc, char *argv[]); extern int smime_main(int argc, char *argv[]); extern int speed_main(int argc, char *argv[]); extern int spkac_main(int argc, char *argv[]); @@ -110,6 +111,7 @@ extern const OPTIONS s_client_options[]; extern const OPTIONS s_server_options[]; extern const OPTIONS s_time_options[]; extern const OPTIONS sess_id_options[]; +extern const OPTIONS skeyutl_options[]; extern const OPTIONS smime_options[]; extern const OPTIONS speed_options[]; extern const OPTIONS spkac_options[]; diff --git a/deps/openssl/config/archs/VC-WIN64A/asm/openssl-cl.gypi b/deps/openssl/config/archs/VC-WIN64A/asm/openssl-cl.gypi index 9b7e878e1c497d..2de27868d138f9 100644 --- a/deps/openssl/config/archs/VC-WIN64A/asm/openssl-cl.gypi +++ b/deps/openssl/config/archs/VC-WIN64A/asm/openssl-cl.gypi @@ -88,6 +88,7 @@ 'openssl/apps/s_server.c', 'openssl/apps/s_time.c', 'openssl/apps/sess_id.c', + 'openssl/apps/skeyutl.c', 'openssl/apps/smime.c', 'openssl/apps/speed.c', 'openssl/apps/spkac.c', @@ -103,12 +104,14 @@ 'openssl/apps/lib/app_rand.c', 'openssl/apps/lib/app_x509.c', 'openssl/apps/lib/apps.c', + 'openssl/apps/lib/apps_opt_printf.c', 'openssl/apps/lib/apps_ui.c', 'openssl/apps/lib/columns.c', 'openssl/apps/lib/engine.c', 'openssl/apps/lib/engine_loader.c', 'openssl/apps/lib/fmt.c', 'openssl/apps/lib/http_server.c', + 'openssl/apps/lib/log.c', 'openssl/apps/lib/names.c', 'openssl/apps/lib/opt.c', 'openssl/apps/lib/s_cb.c', diff --git a/deps/openssl/config/archs/VC-WIN64A/asm/openssl-fips.gypi b/deps/openssl/config/archs/VC-WIN64A/asm/openssl-fips.gypi index 780f25951c1546..03c0d5c847b84d 100644 --- a/deps/openssl/config/archs/VC-WIN64A/asm/openssl-fips.gypi +++ b/deps/openssl/config/archs/VC-WIN64A/asm/openssl-fips.gypi @@ -101,14 +101,15 @@ 'openssl/crypto/evp/kem.c', 'openssl/crypto/evp/keymgmt_lib.c', 'openssl/crypto/evp/keymgmt_meth.c', - 'openssl/crypto/evp/m_sigver.c', 'openssl/crypto/evp/mac_lib.c', 'openssl/crypto/evp/mac_meth.c', 'openssl/crypto/evp/p_lib.c', 'openssl/crypto/evp/pmeth_check.c', 'openssl/crypto/evp/pmeth_gn.c', 'openssl/crypto/evp/pmeth_lib.c', + 'openssl/crypto/evp/s_lib.c', 'openssl/crypto/evp/signature.c', + 'openssl/crypto/evp/skeymgmt_meth.c', 'openssl/crypto/ffc/ffc_backend.c', 'openssl/crypto/ffc/ffc_dh.c', 'openssl/crypto/ffc/ffc_key_generate.c', @@ -116,6 +117,8 @@ 'openssl/crypto/ffc/ffc_params.c', 'openssl/crypto/ffc/ffc_params_generate.c', 'openssl/crypto/ffc/ffc_params_validate.c', + 'openssl/crypto/hashtable/hashfunc.c', + 'openssl/crypto/hashtable/hashtable.c', 'openssl/crypto/hmac/hmac.c', 'openssl/crypto/lhash/lhash.c', 'openssl/crypto/asn1_dsa.c', @@ -145,6 +148,16 @@ 'openssl/crypto/threads_none.c', 'openssl/crypto/threads_pthread.c', 'openssl/crypto/threads_win.c', + 'openssl/crypto/time.c', + 'openssl/crypto/ml_dsa/ml_dsa_encoders.c', + 'openssl/crypto/ml_dsa/ml_dsa_key.c', + 'openssl/crypto/ml_dsa/ml_dsa_key_compress.c', + 'openssl/crypto/ml_dsa/ml_dsa_matrix.c', + 'openssl/crypto/ml_dsa/ml_dsa_ntt.c', + 'openssl/crypto/ml_dsa/ml_dsa_params.c', + 'openssl/crypto/ml_dsa/ml_dsa_sample.c', + 'openssl/crypto/ml_dsa/ml_dsa_sign.c', + 'openssl/crypto/ml_kem/ml_kem.c', 'openssl/crypto/modes/cbc128.c', 'openssl/crypto/modes/ccm128.c', 'openssl/crypto/modes/cfb128.c', @@ -153,6 +166,7 @@ 'openssl/crypto/modes/ofb128.c', 'openssl/crypto/modes/wrap128.c', 'openssl/crypto/modes/xts128.c', + 'openssl/crypto/modes/xts128gb.c', 'openssl/crypto/property/defn_cache.c', 'openssl/crypto/property/property.c', 'openssl/crypto/property/property_parse.c', @@ -180,7 +194,23 @@ 'openssl/crypto/sha/sha256.c', 'openssl/crypto/sha/sha3.c', 'openssl/crypto/sha/sha512.c', + 'openssl/crypto/slh_dsa/slh_adrs.c', + 'openssl/crypto/slh_dsa/slh_dsa.c', + 'openssl/crypto/slh_dsa/slh_dsa_hash_ctx.c', + 'openssl/crypto/slh_dsa/slh_dsa_key.c', + 'openssl/crypto/slh_dsa/slh_fors.c', + 'openssl/crypto/slh_dsa/slh_hash.c', + 'openssl/crypto/slh_dsa/slh_hypertree.c', + 'openssl/crypto/slh_dsa/slh_params.c', + 'openssl/crypto/slh_dsa/slh_wots.c', + 'openssl/crypto/slh_dsa/slh_xmss.c', 'openssl/crypto/stack/stack.c', + 'openssl/crypto/thread/arch/thread_none.c', + 'openssl/crypto/thread/arch/thread_posix.c', + 'openssl/crypto/thread/arch/thread_win.c', + 'openssl/crypto/thread/api.c', + 'openssl/crypto/thread/arch.c', + 'openssl/crypto/thread/internal.c', 'openssl/providers/common/der/der_rsa_sig.c', 'openssl/providers/common/bio_prov.c', 'openssl/providers/common/capabilities.c', @@ -189,6 +219,7 @@ 'openssl/providers/common/provider_util.c', 'openssl/providers/common/securitycheck.c', 'openssl/providers/common/securitycheck_fips.c', + 'openssl/providers/fips/fipsindicator.c', 'openssl/providers/fips/fipsprov.c', 'openssl/providers/fips/self_test.c', 'openssl/providers/fips/self_test_kats.c', @@ -226,6 +257,8 @@ 'openssl/providers/implementations/kdfs/sskdf.c', 'openssl/providers/implementations/kdfs/tls1_prf.c', 'openssl/providers/implementations/kdfs/x942kdf.c', + 'openssl/providers/implementations/kem/ml_kem_kem.c', + 'openssl/providers/implementations/kem/mlx_kem.c', 'openssl/providers/implementations/kem/rsa_kem.c', 'openssl/providers/implementations/keymgmt/dh_kmgmt.c', 'openssl/providers/implementations/keymgmt/dsa_kmgmt.c', @@ -233,29 +266,39 @@ 'openssl/providers/implementations/keymgmt/ecx_kmgmt.c', 'openssl/providers/implementations/keymgmt/kdf_legacy_kmgmt.c', 'openssl/providers/implementations/keymgmt/mac_legacy_kmgmt.c', + 'openssl/providers/implementations/keymgmt/ml_dsa_kmgmt.c', + 'openssl/providers/implementations/keymgmt/ml_kem_kmgmt.c', + 'openssl/providers/implementations/keymgmt/mlx_kmgmt.c', 'openssl/providers/implementations/keymgmt/rsa_kmgmt.c', + 'openssl/providers/implementations/keymgmt/slh_dsa_kmgmt.c', 'openssl/providers/implementations/macs/cmac_prov.c', 'openssl/providers/implementations/macs/gmac_prov.c', 'openssl/providers/implementations/macs/hmac_prov.c', 'openssl/providers/implementations/macs/kmac_prov.c', - 'openssl/providers/implementations/rands/crngt.c', 'openssl/providers/implementations/rands/drbg.c', 'openssl/providers/implementations/rands/drbg_ctr.c', 'openssl/providers/implementations/rands/drbg_hash.c', 'openssl/providers/implementations/rands/drbg_hmac.c', + 'openssl/providers/implementations/rands/fips_crng_test.c', 'openssl/providers/implementations/rands/test_rng.c', 'openssl/providers/implementations/signature/dsa_sig.c', 'openssl/providers/implementations/signature/ecdsa_sig.c', 'openssl/providers/implementations/signature/eddsa_sig.c', 'openssl/providers/implementations/signature/mac_legacy_sig.c', + 'openssl/providers/implementations/signature/ml_dsa_sig.c', 'openssl/providers/implementations/signature/rsa_sig.c', - 'openssl/ssl/s3_cbc.c', + 'openssl/providers/implementations/signature/slh_dsa_sig.c', + 'openssl/providers/implementations/skeymgmt/aes_skmgmt.c', + 'openssl/providers/implementations/skeymgmt/generic.c', + 'openssl/ssl/record/methods/ssl3_cbc.c', 'openssl/providers/common/der/der_dsa_key.c', 'openssl/providers/common/der/der_dsa_sig.c', 'openssl/providers/common/der/der_ec_key.c', 'openssl/providers/common/der/der_ec_sig.c', 'openssl/providers/common/der/der_ecx_key.c', + 'openssl/providers/common/der/der_ml_dsa_key.c', 'openssl/providers/common/der/der_rsa_key.c', + 'openssl/providers/common/der/der_slh_dsa_key.c', 'openssl/providers/common/provider_ctx.c', 'openssl/providers/common/provider_err.c', 'openssl/providers/implementations/ciphers/ciphercommon.c', @@ -266,7 +309,7 @@ 'openssl/providers/implementations/ciphers/ciphercommon_gcm_hw.c', 'openssl/providers/implementations/ciphers/ciphercommon_hw.c', 'openssl/providers/implementations/digests/digestcommon.c', - 'openssl/ssl/record/tls_pad.c', + 'openssl/ssl/record/methods/tls_pad.c', 'openssl/providers/fips/fips_entry.c', ], @@ -276,10 +319,16 @@ './config/archs/VC-WIN64A/asm/crypto/aes/aesni-sha1-x86_64.asm', './config/archs/VC-WIN64A/asm/crypto/aes/aesni-sha256-x86_64.asm', './config/archs/VC-WIN64A/asm/crypto/aes/aesni-x86_64.asm', + './config/archs/VC-WIN64A/asm/crypto/aes/aesni-xts-avx512.asm', './config/archs/VC-WIN64A/asm/crypto/aes/bsaes-x86_64.asm', './config/archs/VC-WIN64A/asm/crypto/aes/vpaes-x86_64.asm', + './config/archs/VC-WIN64A/asm/crypto/bn/rsaz-2k-avx512.asm', + './config/archs/VC-WIN64A/asm/crypto/bn/rsaz-2k-avxifma.asm', + './config/archs/VC-WIN64A/asm/crypto/bn/rsaz-3k-avx512.asm', + './config/archs/VC-WIN64A/asm/crypto/bn/rsaz-3k-avxifma.asm', + './config/archs/VC-WIN64A/asm/crypto/bn/rsaz-4k-avx512.asm', + './config/archs/VC-WIN64A/asm/crypto/bn/rsaz-4k-avxifma.asm', './config/archs/VC-WIN64A/asm/crypto/bn/rsaz-avx2.asm', - './config/archs/VC-WIN64A/asm/crypto/bn/rsaz-avx512.asm', './config/archs/VC-WIN64A/asm/crypto/bn/rsaz-x86_64.asm', './config/archs/VC-WIN64A/asm/crypto/bn/x86_64-gf2m.asm', './config/archs/VC-WIN64A/asm/crypto/bn/x86_64-mont.asm', @@ -288,8 +337,10 @@ './config/archs/VC-WIN64A/asm/crypto/chacha/chacha-x86_64.asm', './config/archs/VC-WIN64A/asm/crypto/ec/ecp_nistz256-x86_64.asm', './config/archs/VC-WIN64A/asm/crypto/ec/x25519-x86_64.asm', + './config/archs/VC-WIN64A/asm/crypto/params_idx.c', './config/archs/VC-WIN64A/asm/crypto/x86_64cpuid.asm', './config/archs/VC-WIN64A/asm/crypto/md5/md5-x86_64.asm', + './config/archs/VC-WIN64A/asm/crypto/modes/aes-gcm-avx512.asm', './config/archs/VC-WIN64A/asm/crypto/modes/aesni-gcm-x86_64.asm', './config/archs/VC-WIN64A/asm/crypto/modes/ghash-x86_64.asm', './config/archs/VC-WIN64A/asm/crypto/poly1305/poly1305-x86_64.asm', @@ -308,7 +359,9 @@ './config/archs/VC-WIN64A/asm/providers/common/der/der_dsa_gen.c', './config/archs/VC-WIN64A/asm/providers/common/der/der_ec_gen.c', './config/archs/VC-WIN64A/asm/providers/common/der/der_ecx_gen.c', + './config/archs/VC-WIN64A/asm/providers/common/der/der_ml_dsa_gen.c', './config/archs/VC-WIN64A/asm/providers/common/der/der_rsa_gen.c', + './config/archs/VC-WIN64A/asm/providers/common/der/der_slh_dsa_gen.c', './config/archs/VC-WIN64A/asm/providers/common/der/der_wrap_gen.c', ], diff --git a/deps/openssl/config/archs/VC-WIN64A/asm/openssl.gypi b/deps/openssl/config/archs/VC-WIN64A/asm/openssl.gypi index 56214992653bd3..8223693dea08c4 100644 --- a/deps/openssl/config/archs/VC-WIN64A/asm/openssl.gypi +++ b/deps/openssl/config/archs/VC-WIN64A/asm/openssl.gypi @@ -7,14 +7,15 @@ 'openssl/ssl/d1_srtp.c', 'openssl/ssl/methods.c', 'openssl/ssl/pqueue.c', + 'openssl/ssl/priority_queue.c', 'openssl/ssl/s3_enc.c', 'openssl/ssl/s3_lib.c', 'openssl/ssl/s3_msg.c', 'openssl/ssl/ssl_asn1.c', 'openssl/ssl/ssl_cert.c', + 'openssl/ssl/ssl_cert_comp.c', 'openssl/ssl/ssl_ciph.c', 'openssl/ssl/ssl_conf.c', - 'openssl/ssl/ssl_err.c', 'openssl/ssl/ssl_err_legacy.c', 'openssl/ssl/ssl_init.c', 'openssl/ssl/ssl_lib.c', @@ -31,12 +32,60 @@ 'openssl/ssl/tls13_enc.c', 'openssl/ssl/tls_depr.c', 'openssl/ssl/tls_srp.c', - 'openssl/ssl/record/dtls1_bitmap.c', + 'openssl/ssl/quic/cc_newreno.c', + 'openssl/ssl/quic/json_enc.c', + 'openssl/ssl/quic/qlog.c', + 'openssl/ssl/quic/qlog_event_helpers.c', + 'openssl/ssl/quic/quic_ackm.c', + 'openssl/ssl/quic/quic_cfq.c', + 'openssl/ssl/quic/quic_channel.c', + 'openssl/ssl/quic/quic_demux.c', + 'openssl/ssl/quic/quic_engine.c', + 'openssl/ssl/quic/quic_fc.c', + 'openssl/ssl/quic/quic_fifd.c', + 'openssl/ssl/quic/quic_impl.c', + 'openssl/ssl/quic/quic_lcidm.c', + 'openssl/ssl/quic/quic_method.c', + 'openssl/ssl/quic/quic_obj.c', + 'openssl/ssl/quic/quic_port.c', + 'openssl/ssl/quic/quic_rcidm.c', + 'openssl/ssl/quic/quic_reactor.c', + 'openssl/ssl/quic/quic_reactor_wait_ctx.c', + 'openssl/ssl/quic/quic_record_rx.c', + 'openssl/ssl/quic/quic_record_shared.c', + 'openssl/ssl/quic/quic_record_tx.c', + 'openssl/ssl/quic/quic_record_util.c', + 'openssl/ssl/quic/quic_rstream.c', + 'openssl/ssl/quic/quic_rx_depack.c', + 'openssl/ssl/quic/quic_sf_list.c', + 'openssl/ssl/quic/quic_srt_gen.c', + 'openssl/ssl/quic/quic_srtm.c', + 'openssl/ssl/quic/quic_sstream.c', + 'openssl/ssl/quic/quic_statm.c', + 'openssl/ssl/quic/quic_stream_map.c', + 'openssl/ssl/quic/quic_thread_assist.c', + 'openssl/ssl/quic/quic_tls.c', + 'openssl/ssl/quic/quic_tls_api.c', + 'openssl/ssl/quic/quic_trace.c', + 'openssl/ssl/quic/quic_tserver.c', + 'openssl/ssl/quic/quic_txp.c', + 'openssl/ssl/quic/quic_txpim.c', + 'openssl/ssl/quic/quic_types.c', + 'openssl/ssl/quic/quic_wire.c', + 'openssl/ssl/quic/quic_wire_pkt.c', + 'openssl/ssl/quic/uint_set.c', 'openssl/ssl/record/rec_layer_d1.c', 'openssl/ssl/record/rec_layer_s3.c', - 'openssl/ssl/record/ssl3_buffer.c', - 'openssl/ssl/record/ssl3_record.c', - 'openssl/ssl/record/ssl3_record_tls13.c', + 'openssl/ssl/record/methods/dtls_meth.c', + 'openssl/ssl/record/methods/ssl3_meth.c', + 'openssl/ssl/record/methods/tls13_meth.c', + 'openssl/ssl/record/methods/tls1_meth.c', + 'openssl/ssl/record/methods/tls_common.c', + 'openssl/ssl/record/methods/tls_multib.c', + 'openssl/ssl/record/methods/tlsany_meth.c', + 'openssl/ssl/rio/poll_builder.c', + 'openssl/ssl/rio/poll_immediate.c', + 'openssl/ssl/rio/rio_notifier.c', 'openssl/ssl/statem/extensions.c', 'openssl/ssl/statem/extensions_clnt.c', 'openssl/ssl/statem/extensions_cust.c', @@ -148,6 +197,7 @@ 'openssl/crypto/bio/bss_conn.c', 'openssl/crypto/bio/bss_core.c', 'openssl/crypto/bio/bss_dgram.c', + 'openssl/crypto/bio/bss_dgram_pair.c', 'openssl/crypto/bio/bss_fd.c', 'openssl/crypto/bio/bss_file.c', 'openssl/crypto/bio/bss_log.c', @@ -207,6 +257,7 @@ 'openssl/crypto/cmp/cmp_client.c', 'openssl/crypto/cmp/cmp_ctx.c', 'openssl/crypto/cmp/cmp_err.c', + 'openssl/crypto/cmp/cmp_genm.c', 'openssl/crypto/cmp/cmp_hdr.c', 'openssl/crypto/cmp/cmp_http.c', 'openssl/crypto/cmp/cmp_msg.c', @@ -383,7 +434,9 @@ 'openssl/crypto/err/err_all.c', 'openssl/crypto/err/err_all_legacy.c', 'openssl/crypto/err/err_blocks.c', + 'openssl/crypto/err/err_mark.c', 'openssl/crypto/err/err_prn.c', + 'openssl/crypto/err/err_save.c', 'openssl/crypto/ess/ess_asn1.c', 'openssl/crypto/ess/ess_err.c', 'openssl/crypto/ess/ess_lib.c', @@ -466,7 +519,9 @@ 'openssl/crypto/evp/pmeth_check.c', 'openssl/crypto/evp/pmeth_gn.c', 'openssl/crypto/evp/pmeth_lib.c', + 'openssl/crypto/evp/s_lib.c', 'openssl/crypto/evp/signature.c', + 'openssl/crypto/evp/skeymgmt_meth.c', 'openssl/crypto/ffc/ffc_backend.c', 'openssl/crypto/ffc/ffc_dh.c', 'openssl/crypto/ffc/ffc_key_generate.c', @@ -474,7 +529,11 @@ 'openssl/crypto/ffc/ffc_params.c', 'openssl/crypto/ffc/ffc_params_generate.c', 'openssl/crypto/ffc/ffc_params_validate.c', + 'openssl/crypto/hashtable/hashfunc.c', + 'openssl/crypto/hashtable/hashtable.c', 'openssl/crypto/hmac/hmac.c', + 'openssl/crypto/hpke/hpke.c', + 'openssl/crypto/hpke/hpke_util.c', 'openssl/crypto/http/http_client.c', 'openssl/crypto/http/http_err.c', 'openssl/crypto/http/http_lib.c', @@ -488,6 +547,7 @@ 'openssl/crypto/lhash/lhash.c', 'openssl/crypto/asn1_dsa.c', 'openssl/crypto/bsearch.c', + 'openssl/crypto/comp_methods.c', 'openssl/crypto/context.c', 'openssl/crypto/core_algorithm.c', 'openssl/crypto/core_fetch.c', @@ -497,10 +557,13 @@ 'openssl/crypto/cryptlib.c', 'openssl/crypto/ctype.c', 'openssl/crypto/cversion.c', + 'openssl/crypto/defaults.c', 'openssl/crypto/der_writer.c', + 'openssl/crypto/deterministic_nonce.c', 'openssl/crypto/ebcdic.c', 'openssl/crypto/ex_data.c', 'openssl/crypto/getenv.c', + 'openssl/crypto/indicator_core.c', 'openssl/crypto/info.c', 'openssl/crypto/init.c', 'openssl/crypto/initthread.c', @@ -524,12 +587,16 @@ 'openssl/crypto/provider_core.c', 'openssl/crypto/provider_predefined.c', 'openssl/crypto/punycode.c', + 'openssl/crypto/quic_vlint.c', 'openssl/crypto/self_test_core.c', + 'openssl/crypto/sleep.c', 'openssl/crypto/sparse_array.c', + 'openssl/crypto/ssl_err.c', 'openssl/crypto/threads_lib.c', 'openssl/crypto/threads_none.c', 'openssl/crypto/threads_pthread.c', 'openssl/crypto/threads_win.c', + 'openssl/crypto/time.c', 'openssl/crypto/trace.c', 'openssl/crypto/uid.c', 'openssl/crypto/md4/md4_dgst.c', @@ -539,6 +606,15 @@ 'openssl/crypto/md5/md5_sha1.c', 'openssl/crypto/mdc2/mdc2_one.c', 'openssl/crypto/mdc2/mdc2dgst.c', + 'openssl/crypto/ml_dsa/ml_dsa_encoders.c', + 'openssl/crypto/ml_dsa/ml_dsa_key.c', + 'openssl/crypto/ml_dsa/ml_dsa_key_compress.c', + 'openssl/crypto/ml_dsa/ml_dsa_matrix.c', + 'openssl/crypto/ml_dsa/ml_dsa_ntt.c', + 'openssl/crypto/ml_dsa/ml_dsa_params.c', + 'openssl/crypto/ml_dsa/ml_dsa_sample.c', + 'openssl/crypto/ml_dsa/ml_dsa_sign.c', + 'openssl/crypto/ml_kem/ml_kem.c', 'openssl/crypto/modes/cbc128.c', 'openssl/crypto/modes/ccm128.c', 'openssl/crypto/modes/cfb128.c', @@ -550,6 +626,7 @@ 'openssl/crypto/modes/siv128.c', 'openssl/crypto/modes/wrap128.c', 'openssl/crypto/modes/xts128.c', + 'openssl/crypto/modes/xts128gb.c', 'openssl/crypto/objects/o_names.c', 'openssl/crypto/objects/obj_dat.c', 'openssl/crypto/objects/obj_err.c', @@ -613,6 +690,7 @@ 'openssl/crypto/rand/rand_lib.c', 'openssl/crypto/rand/rand_meth.c', 'openssl/crypto/rand/rand_pool.c', + 'openssl/crypto/rand/rand_uniform.c', 'openssl/crypto/rand/randfile.c', 'openssl/crypto/rc2/rc2_cbc.c', 'openssl/crypto/rc2/rc2_ecb.c', @@ -658,6 +736,16 @@ 'openssl/crypto/sha/sha3.c', 'openssl/crypto/sha/sha512.c', 'openssl/crypto/siphash/siphash.c', + 'openssl/crypto/slh_dsa/slh_adrs.c', + 'openssl/crypto/slh_dsa/slh_dsa.c', + 'openssl/crypto/slh_dsa/slh_dsa_hash_ctx.c', + 'openssl/crypto/slh_dsa/slh_dsa_key.c', + 'openssl/crypto/slh_dsa/slh_fors.c', + 'openssl/crypto/slh_dsa/slh_hash.c', + 'openssl/crypto/slh_dsa/slh_hypertree.c', + 'openssl/crypto/slh_dsa/slh_params.c', + 'openssl/crypto/slh_dsa/slh_wots.c', + 'openssl/crypto/slh_dsa/slh_xmss.c', 'openssl/crypto/sm2/sm2_crypt.c', 'openssl/crypto/sm2/sm2_err.c', 'openssl/crypto/sm2/sm2_key.c', @@ -675,6 +763,12 @@ 'openssl/crypto/store/store_register.c', 'openssl/crypto/store/store_result.c', 'openssl/crypto/store/store_strings.c', + 'openssl/crypto/thread/arch/thread_none.c', + 'openssl/crypto/thread/arch/thread_posix.c', + 'openssl/crypto/thread/arch/thread_win.c', + 'openssl/crypto/thread/api.c', + 'openssl/crypto/thread/arch.c', + 'openssl/crypto/thread/internal.c', 'openssl/crypto/ts/ts_asn1.c', 'openssl/crypto/ts/ts_conf.c', 'openssl/crypto/ts/ts_err.c', @@ -702,14 +796,22 @@ 'openssl/crypto/x509/pcy_map.c', 'openssl/crypto/x509/pcy_node.c', 'openssl/crypto/x509/pcy_tree.c', + 'openssl/crypto/x509/t_acert.c', 'openssl/crypto/x509/t_crl.c', 'openssl/crypto/x509/t_req.c', 'openssl/crypto/x509/t_x509.c', + 'openssl/crypto/x509/v3_aaa.c', + 'openssl/crypto/x509/v3_ac_tgt.c', 'openssl/crypto/x509/v3_addr.c', 'openssl/crypto/x509/v3_admis.c', 'openssl/crypto/x509/v3_akeya.c', 'openssl/crypto/x509/v3_akid.c', 'openssl/crypto/x509/v3_asid.c', + 'openssl/crypto/x509/v3_attrdesc.c', + 'openssl/crypto/x509/v3_attrmap.c', + 'openssl/crypto/x509/v3_audit_id.c', + 'openssl/crypto/x509/v3_authattid.c', + 'openssl/crypto/x509/v3_battcons.c', 'openssl/crypto/x509/v3_bcons.c', 'openssl/crypto/x509/v3_bitst.c', 'openssl/crypto/x509/v3_conf.c', @@ -718,12 +820,17 @@ 'openssl/crypto/x509/v3_enum.c', 'openssl/crypto/x509/v3_extku.c', 'openssl/crypto/x509/v3_genn.c', + 'openssl/crypto/x509/v3_group_ac.c', 'openssl/crypto/x509/v3_ia5.c', + 'openssl/crypto/x509/v3_ind_iss.c', 'openssl/crypto/x509/v3_info.c', 'openssl/crypto/x509/v3_int.c', + 'openssl/crypto/x509/v3_iobo.c', 'openssl/crypto/x509/v3_ist.c', 'openssl/crypto/x509/v3_lib.c', 'openssl/crypto/x509/v3_ncons.c', + 'openssl/crypto/x509/v3_no_ass.c', + 'openssl/crypto/x509/v3_no_rev_avail.c', 'openssl/crypto/x509/v3_pci.c', 'openssl/crypto/x509/v3_pcia.c', 'openssl/crypto/x509/v3_pcons.c', @@ -731,13 +838,20 @@ 'openssl/crypto/x509/v3_pmaps.c', 'openssl/crypto/x509/v3_prn.c', 'openssl/crypto/x509/v3_purp.c', + 'openssl/crypto/x509/v3_rolespec.c', 'openssl/crypto/x509/v3_san.c', + 'openssl/crypto/x509/v3_sda.c', + 'openssl/crypto/x509/v3_single_use.c', 'openssl/crypto/x509/v3_skid.c', + 'openssl/crypto/x509/v3_soa_id.c', 'openssl/crypto/x509/v3_sxnet.c', + 'openssl/crypto/x509/v3_timespec.c', 'openssl/crypto/x509/v3_tlsf.c', + 'openssl/crypto/x509/v3_usernotice.c', 'openssl/crypto/x509/v3_utf8.c', 'openssl/crypto/x509/v3_utl.c', 'openssl/crypto/x509/v3err.c', + 'openssl/crypto/x509/x509_acert.c', 'openssl/crypto/x509/x509_att.c', 'openssl/crypto/x509/x509_cmp.c', 'openssl/crypto/x509/x509_d2.c', @@ -755,6 +869,7 @@ 'openssl/crypto/x509/x509_v3.c', 'openssl/crypto/x509/x509_vfy.c', 'openssl/crypto/x509/x509_vpm.c', + 'openssl/crypto/x509/x509aset.c', 'openssl/crypto/x509/x509cset.c', 'openssl/crypto/x509/x509name.c', 'openssl/crypto/x509/x509rset.c', @@ -764,6 +879,7 @@ 'openssl/crypto/x509/x_attrib.c', 'openssl/crypto/x509/x_crl.c', 'openssl/crypto/x509/x_exten.c', + 'openssl/crypto/x509/x_ietfatt.c', 'openssl/crypto/x509/x_name.c', 'openssl/crypto/x509/x_pubkey.c', 'openssl/crypto/x509/x_req.c', @@ -795,6 +911,9 @@ 'openssl/providers/implementations/ciphers/cipher_aes_ccm_hw.c', 'openssl/providers/implementations/ciphers/cipher_aes_gcm.c', 'openssl/providers/implementations/ciphers/cipher_aes_gcm_hw.c', + 'openssl/providers/implementations/ciphers/cipher_aes_gcm_siv.c', + 'openssl/providers/implementations/ciphers/cipher_aes_gcm_siv_hw.c', + 'openssl/providers/implementations/ciphers/cipher_aes_gcm_siv_polyval.c', 'openssl/providers/implementations/ciphers/cipher_aes_hw.c', 'openssl/providers/implementations/ciphers/cipher_aes_ocb.c', 'openssl/providers/implementations/ciphers/cipher_aes_ocb_hw.c', @@ -819,7 +938,13 @@ 'openssl/providers/implementations/ciphers/cipher_cts.c', 'openssl/providers/implementations/ciphers/cipher_null.c', 'openssl/providers/implementations/ciphers/cipher_sm4.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_ccm.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_ccm_hw.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_gcm.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_gcm_hw.c', 'openssl/providers/implementations/ciphers/cipher_sm4_hw.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_xts.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_xts_hw.c', 'openssl/providers/implementations/ciphers/cipher_tdes.c', 'openssl/providers/implementations/ciphers/cipher_tdes_common.c', 'openssl/providers/implementations/ciphers/cipher_tdes_default.c', @@ -848,11 +973,16 @@ 'openssl/providers/implementations/encode_decode/encode_key2ms.c', 'openssl/providers/implementations/encode_decode/encode_key2text.c', 'openssl/providers/implementations/encode_decode/endecoder_common.c', + 'openssl/providers/implementations/encode_decode/ml_common_codecs.c', + 'openssl/providers/implementations/encode_decode/ml_dsa_codecs.c', + 'openssl/providers/implementations/encode_decode/ml_kem_codecs.c', 'openssl/providers/implementations/exchange/dh_exch.c', 'openssl/providers/implementations/exchange/ecdh_exch.c', 'openssl/providers/implementations/exchange/ecx_exch.c', 'openssl/providers/implementations/exchange/kdf_exch.c', + 'openssl/providers/implementations/kdfs/argon2.c', 'openssl/providers/implementations/kdfs/hkdf.c', + 'openssl/providers/implementations/kdfs/hmacdrbg_kdf.c', 'openssl/providers/implementations/kdfs/kbkdf.c', 'openssl/providers/implementations/kdfs/krb5kdf.c', 'openssl/providers/implementations/kdfs/pbkdf2.c', @@ -863,6 +993,11 @@ 'openssl/providers/implementations/kdfs/sskdf.c', 'openssl/providers/implementations/kdfs/tls1_prf.c', 'openssl/providers/implementations/kdfs/x942kdf.c', + 'openssl/providers/implementations/kem/ec_kem.c', + 'openssl/providers/implementations/kem/ecx_kem.c', + 'openssl/providers/implementations/kem/kem_util.c', + 'openssl/providers/implementations/kem/ml_kem_kem.c', + 'openssl/providers/implementations/kem/mlx_kem.c', 'openssl/providers/implementations/kem/rsa_kem.c', 'openssl/providers/implementations/keymgmt/dh_kmgmt.c', 'openssl/providers/implementations/keymgmt/dsa_kmgmt.c', @@ -870,7 +1005,11 @@ 'openssl/providers/implementations/keymgmt/ecx_kmgmt.c', 'openssl/providers/implementations/keymgmt/kdf_legacy_kmgmt.c', 'openssl/providers/implementations/keymgmt/mac_legacy_kmgmt.c', + 'openssl/providers/implementations/keymgmt/ml_dsa_kmgmt.c', + 'openssl/providers/implementations/keymgmt/ml_kem_kmgmt.c', + 'openssl/providers/implementations/keymgmt/mlx_kmgmt.c', 'openssl/providers/implementations/keymgmt/rsa_kmgmt.c', + 'openssl/providers/implementations/keymgmt/slh_dsa_kmgmt.c', 'openssl/providers/implementations/macs/blake2b_mac.c', 'openssl/providers/implementations/macs/blake2s_mac.c', 'openssl/providers/implementations/macs/cmac_prov.c', @@ -879,12 +1018,12 @@ 'openssl/providers/implementations/macs/kmac_prov.c', 'openssl/providers/implementations/macs/poly1305_prov.c', 'openssl/providers/implementations/macs/siphash_prov.c', - 'openssl/providers/implementations/rands/crngt.c', 'openssl/providers/implementations/rands/drbg.c', 'openssl/providers/implementations/rands/drbg_ctr.c', 'openssl/providers/implementations/rands/drbg_hash.c', 'openssl/providers/implementations/rands/drbg_hmac.c', 'openssl/providers/implementations/rands/seed_src.c', + 'openssl/providers/implementations/rands/seed_src_jitter.c', 'openssl/providers/implementations/rands/test_rng.c', 'openssl/providers/implementations/rands/seeding/rand_cpu_x86.c', 'openssl/providers/implementations/rands/seeding/rand_tsc.c', @@ -894,17 +1033,24 @@ 'openssl/providers/implementations/signature/ecdsa_sig.c', 'openssl/providers/implementations/signature/eddsa_sig.c', 'openssl/providers/implementations/signature/mac_legacy_sig.c', + 'openssl/providers/implementations/signature/ml_dsa_sig.c', 'openssl/providers/implementations/signature/rsa_sig.c', + 'openssl/providers/implementations/signature/slh_dsa_sig.c', 'openssl/providers/implementations/signature/sm2_sig.c', + 'openssl/providers/implementations/skeymgmt/aes_skmgmt.c', + 'openssl/providers/implementations/skeymgmt/generic.c', 'openssl/providers/implementations/storemgmt/file_store.c', 'openssl/providers/implementations/storemgmt/file_store_any2obj.c', - 'openssl/ssl/s3_cbc.c', + 'openssl/providers/implementations/storemgmt/winstore_store.c', + 'openssl/ssl/record/methods/ssl3_cbc.c', 'openssl/providers/common/der/der_dsa_key.c', 'openssl/providers/common/der/der_dsa_sig.c', 'openssl/providers/common/der/der_ec_key.c', 'openssl/providers/common/der/der_ec_sig.c', 'openssl/providers/common/der/der_ecx_key.c', + 'openssl/providers/common/der/der_ml_dsa_key.c', 'openssl/providers/common/der/der_rsa_key.c', + 'openssl/providers/common/der/der_slh_dsa_key.c', 'openssl/providers/common/provider_ctx.c', 'openssl/providers/common/provider_err.c', 'openssl/providers/implementations/ciphers/ciphercommon.c', @@ -915,7 +1061,7 @@ 'openssl/providers/implementations/ciphers/ciphercommon_gcm_hw.c', 'openssl/providers/implementations/ciphers/ciphercommon_hw.c', 'openssl/providers/implementations/digests/digestcommon.c', - 'openssl/ssl/record/tls_pad.c', + 'openssl/ssl/record/methods/tls_pad.c', 'openssl/providers/implementations/ciphers/cipher_blowfish.c', 'openssl/providers/implementations/ciphers/cipher_blowfish_hw.c', 'openssl/providers/implementations/ciphers/cipher_cast5.c', @@ -940,6 +1086,7 @@ 'openssl/providers/implementations/digests/ripemd_prov.c', 'openssl/providers/implementations/digests/wp_prov.c', 'openssl/providers/implementations/kdfs/pbkdf1.c', + 'openssl/providers/implementations/kdfs/pvkkdf.c', 'openssl/providers/prov_running.c', 'openssl/providers/legacyprov.c', ], @@ -949,10 +1096,16 @@ './config/archs/VC-WIN64A/asm/crypto/aes/aesni-sha1-x86_64.asm', './config/archs/VC-WIN64A/asm/crypto/aes/aesni-sha256-x86_64.asm', './config/archs/VC-WIN64A/asm/crypto/aes/aesni-x86_64.asm', + './config/archs/VC-WIN64A/asm/crypto/aes/aesni-xts-avx512.asm', './config/archs/VC-WIN64A/asm/crypto/aes/bsaes-x86_64.asm', './config/archs/VC-WIN64A/asm/crypto/aes/vpaes-x86_64.asm', + './config/archs/VC-WIN64A/asm/crypto/bn/rsaz-2k-avx512.asm', + './config/archs/VC-WIN64A/asm/crypto/bn/rsaz-2k-avxifma.asm', + './config/archs/VC-WIN64A/asm/crypto/bn/rsaz-3k-avx512.asm', + './config/archs/VC-WIN64A/asm/crypto/bn/rsaz-3k-avxifma.asm', + './config/archs/VC-WIN64A/asm/crypto/bn/rsaz-4k-avx512.asm', + './config/archs/VC-WIN64A/asm/crypto/bn/rsaz-4k-avxifma.asm', './config/archs/VC-WIN64A/asm/crypto/bn/rsaz-avx2.asm', - './config/archs/VC-WIN64A/asm/crypto/bn/rsaz-avx512.asm', './config/archs/VC-WIN64A/asm/crypto/bn/rsaz-x86_64.asm', './config/archs/VC-WIN64A/asm/crypto/bn/x86_64-gf2m.asm', './config/archs/VC-WIN64A/asm/crypto/bn/x86_64-mont.asm', @@ -961,8 +1114,10 @@ './config/archs/VC-WIN64A/asm/crypto/chacha/chacha-x86_64.asm', './config/archs/VC-WIN64A/asm/crypto/ec/ecp_nistz256-x86_64.asm', './config/archs/VC-WIN64A/asm/crypto/ec/x25519-x86_64.asm', + './config/archs/VC-WIN64A/asm/crypto/params_idx.c', './config/archs/VC-WIN64A/asm/crypto/x86_64cpuid.asm', './config/archs/VC-WIN64A/asm/crypto/md5/md5-x86_64.asm', + './config/archs/VC-WIN64A/asm/crypto/modes/aes-gcm-avx512.asm', './config/archs/VC-WIN64A/asm/crypto/modes/aesni-gcm-x86_64.asm', './config/archs/VC-WIN64A/asm/crypto/modes/ghash-x86_64.asm', './config/archs/VC-WIN64A/asm/crypto/poly1305/poly1305-x86_64.asm', @@ -981,7 +1136,9 @@ './config/archs/VC-WIN64A/asm/providers/common/der/der_dsa_gen.c', './config/archs/VC-WIN64A/asm/providers/common/der/der_ec_gen.c', './config/archs/VC-WIN64A/asm/providers/common/der/der_ecx_gen.c', + './config/archs/VC-WIN64A/asm/providers/common/der/der_ml_dsa_gen.c', './config/archs/VC-WIN64A/asm/providers/common/der/der_rsa_gen.c', + './config/archs/VC-WIN64A/asm/providers/common/der/der_slh_dsa_gen.c', './config/archs/VC-WIN64A/asm/providers/common/der/der_wrap_gen.c', ], 'openssl_defines_VC-WIN64A': [ diff --git a/deps/openssl/config/archs/VC-WIN64A/asm/providers/common/der/der_ml_dsa_gen.c b/deps/openssl/config/archs/VC-WIN64A/asm/providers/common/der/der_ml_dsa_gen.c new file mode 100644 index 00000000000000..4a8a113a268578 --- /dev/null +++ b/deps/openssl/config/archs/VC-WIN64A/asm/providers/common/der/der_ml_dsa_gen.c @@ -0,0 +1,37 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from providers/common/der/der_ml_dsa_gen.c.in + * + * Copyright 2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include "prov/der_ml_dsa.h" + +/* Well known OIDs precompiled */ + +/* + * id-ml-dsa-44 OBJECT IDENTIFIER ::= { sigAlgs 17 } + */ +const unsigned char ossl_der_oid_id_ml_dsa_44[DER_OID_SZ_id_ml_dsa_44] = { + DER_OID_V_id_ml_dsa_44 +}; + +/* + * id-ml-dsa-65 OBJECT IDENTIFIER ::= { sigAlgs 18 } + */ +const unsigned char ossl_der_oid_id_ml_dsa_65[DER_OID_SZ_id_ml_dsa_65] = { + DER_OID_V_id_ml_dsa_65 +}; + +/* + * id-ml-dsa-87 OBJECT IDENTIFIER ::= { sigAlgs 19 } + */ +const unsigned char ossl_der_oid_id_ml_dsa_87[DER_OID_SZ_id_ml_dsa_87] = { + DER_OID_V_id_ml_dsa_87 +}; + diff --git a/deps/openssl/config/archs/VC-WIN64A/asm/providers/common/der/der_slh_dsa_gen.c b/deps/openssl/config/archs/VC-WIN64A/asm/providers/common/der/der_slh_dsa_gen.c new file mode 100644 index 00000000000000..1419a9515097dd --- /dev/null +++ b/deps/openssl/config/archs/VC-WIN64A/asm/providers/common/der/der_slh_dsa_gen.c @@ -0,0 +1,100 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from providers/common/der/der_slh_dsa_gen.c.in + * + * Copyright 2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include "prov/der_slh_dsa.h" + +/* Well known OIDs precompiled */ + +/* + * id-slh-dsa-sha2-128s OBJECT IDENTIFIER ::= { sigAlgs 20 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_128s[DER_OID_SZ_id_slh_dsa_sha2_128s] = { + DER_OID_V_id_slh_dsa_sha2_128s +}; + +/* + * id-slh-dsa-sha2-128f OBJECT IDENTIFIER ::= { sigAlgs 21 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_128f[DER_OID_SZ_id_slh_dsa_sha2_128f] = { + DER_OID_V_id_slh_dsa_sha2_128f +}; + +/* + * id-slh-dsa-sha2-192s OBJECT IDENTIFIER ::= { sigAlgs 22 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_192s[DER_OID_SZ_id_slh_dsa_sha2_192s] = { + DER_OID_V_id_slh_dsa_sha2_192s +}; + +/* + * id-slh-dsa-sha2-192f OBJECT IDENTIFIER ::= { sigAlgs 23 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_192f[DER_OID_SZ_id_slh_dsa_sha2_192f] = { + DER_OID_V_id_slh_dsa_sha2_192f +}; + +/* + * id-slh-dsa-sha2-256s OBJECT IDENTIFIER ::= { sigAlgs 24 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_256s[DER_OID_SZ_id_slh_dsa_sha2_256s] = { + DER_OID_V_id_slh_dsa_sha2_256s +}; + +/* + * id-slh-dsa-sha2-256f OBJECT IDENTIFIER ::= { sigAlgs 25 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_256f[DER_OID_SZ_id_slh_dsa_sha2_256f] = { + DER_OID_V_id_slh_dsa_sha2_256f +}; + +/* + * id-slh-dsa-shake-128s OBJECT IDENTIFIER ::= { sigAlgs 26 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_128s[DER_OID_SZ_id_slh_dsa_shake_128s] = { + DER_OID_V_id_slh_dsa_shake_128s +}; + +/* + * id-slh-dsa-shake-128f OBJECT IDENTIFIER ::= { sigAlgs 27 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_128f[DER_OID_SZ_id_slh_dsa_shake_128f] = { + DER_OID_V_id_slh_dsa_shake_128f +}; + +/* + * id-slh-dsa-shake-192s OBJECT IDENTIFIER ::= { sigAlgs 28 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_192s[DER_OID_SZ_id_slh_dsa_shake_192s] = { + DER_OID_V_id_slh_dsa_shake_192s +}; + +/* + * id-slh-dsa-shake-192f OBJECT IDENTIFIER ::= { sigAlgs 29 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_192f[DER_OID_SZ_id_slh_dsa_shake_192f] = { + DER_OID_V_id_slh_dsa_shake_192f +}; + +/* + * id-slh-dsa-shake-256s OBJECT IDENTIFIER ::= { sigAlgs 30 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_256s[DER_OID_SZ_id_slh_dsa_shake_256s] = { + DER_OID_V_id_slh_dsa_shake_256s +}; + +/* + * id-slh-dsa-shake-256f OBJECT IDENTIFIER ::= { sigAlgs 31 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_256f[DER_OID_SZ_id_slh_dsa_shake_256f] = { + DER_OID_V_id_slh_dsa_shake_256f +}; + diff --git a/deps/openssl/config/archs/VC-WIN64A/asm/providers/common/include/prov/der_ml_dsa.h b/deps/openssl/config/archs/VC-WIN64A/asm/providers/common/include/prov/der_ml_dsa.h new file mode 100644 index 00000000000000..c55f780ab4527c --- /dev/null +++ b/deps/openssl/config/archs/VC-WIN64A/asm/providers/common/include/prov/der_ml_dsa.h @@ -0,0 +1,40 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from providers/common/include/prov/der_ml_dsa.h.in + * + * Copyright 2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include "internal/der.h" +#include "crypto/ml_dsa.h" + +/* Well known OIDs precompiled */ + +/* + * id-ml-dsa-44 OBJECT IDENTIFIER ::= { sigAlgs 17 } + */ +#define DER_OID_V_id_ml_dsa_44 DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x11 +#define DER_OID_SZ_id_ml_dsa_44 11 +extern const unsigned char ossl_der_oid_id_ml_dsa_44[DER_OID_SZ_id_ml_dsa_44]; + +/* + * id-ml-dsa-65 OBJECT IDENTIFIER ::= { sigAlgs 18 } + */ +#define DER_OID_V_id_ml_dsa_65 DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x12 +#define DER_OID_SZ_id_ml_dsa_65 11 +extern const unsigned char ossl_der_oid_id_ml_dsa_65[DER_OID_SZ_id_ml_dsa_65]; + +/* + * id-ml-dsa-87 OBJECT IDENTIFIER ::= { sigAlgs 19 } + */ +#define DER_OID_V_id_ml_dsa_87 DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x13 +#define DER_OID_SZ_id_ml_dsa_87 11 +extern const unsigned char ossl_der_oid_id_ml_dsa_87[DER_OID_SZ_id_ml_dsa_87]; + + +int ossl_DER_w_algorithmIdentifier_ML_DSA(WPACKET *pkt, int tag, ML_DSA_KEY *key); diff --git a/deps/openssl/config/archs/VC-WIN64A/asm/providers/common/include/prov/der_slh_dsa.h b/deps/openssl/config/archs/VC-WIN64A/asm/providers/common/include/prov/der_slh_dsa.h new file mode 100644 index 00000000000000..760f8e7699be72 --- /dev/null +++ b/deps/openssl/config/archs/VC-WIN64A/asm/providers/common/include/prov/der_slh_dsa.h @@ -0,0 +1,103 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from providers/common/include/prov/der_slh_dsa.h.in + * + * Copyright 2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include "internal/der.h" +#include "crypto/slh_dsa.h" + +/* Well known OIDs precompiled */ + +/* + * id-slh-dsa-sha2-128s OBJECT IDENTIFIER ::= { sigAlgs 20 } + */ +#define DER_OID_V_id_slh_dsa_sha2_128s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x14 +#define DER_OID_SZ_id_slh_dsa_sha2_128s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_128s[DER_OID_SZ_id_slh_dsa_sha2_128s]; + +/* + * id-slh-dsa-sha2-128f OBJECT IDENTIFIER ::= { sigAlgs 21 } + */ +#define DER_OID_V_id_slh_dsa_sha2_128f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x15 +#define DER_OID_SZ_id_slh_dsa_sha2_128f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_128f[DER_OID_SZ_id_slh_dsa_sha2_128f]; + +/* + * id-slh-dsa-sha2-192s OBJECT IDENTIFIER ::= { sigAlgs 22 } + */ +#define DER_OID_V_id_slh_dsa_sha2_192s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x16 +#define DER_OID_SZ_id_slh_dsa_sha2_192s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_192s[DER_OID_SZ_id_slh_dsa_sha2_192s]; + +/* + * id-slh-dsa-sha2-192f OBJECT IDENTIFIER ::= { sigAlgs 23 } + */ +#define DER_OID_V_id_slh_dsa_sha2_192f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x17 +#define DER_OID_SZ_id_slh_dsa_sha2_192f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_192f[DER_OID_SZ_id_slh_dsa_sha2_192f]; + +/* + * id-slh-dsa-sha2-256s OBJECT IDENTIFIER ::= { sigAlgs 24 } + */ +#define DER_OID_V_id_slh_dsa_sha2_256s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x18 +#define DER_OID_SZ_id_slh_dsa_sha2_256s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_256s[DER_OID_SZ_id_slh_dsa_sha2_256s]; + +/* + * id-slh-dsa-sha2-256f OBJECT IDENTIFIER ::= { sigAlgs 25 } + */ +#define DER_OID_V_id_slh_dsa_sha2_256f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x19 +#define DER_OID_SZ_id_slh_dsa_sha2_256f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_256f[DER_OID_SZ_id_slh_dsa_sha2_256f]; + +/* + * id-slh-dsa-shake-128s OBJECT IDENTIFIER ::= { sigAlgs 26 } + */ +#define DER_OID_V_id_slh_dsa_shake_128s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1A +#define DER_OID_SZ_id_slh_dsa_shake_128s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_128s[DER_OID_SZ_id_slh_dsa_shake_128s]; + +/* + * id-slh-dsa-shake-128f OBJECT IDENTIFIER ::= { sigAlgs 27 } + */ +#define DER_OID_V_id_slh_dsa_shake_128f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1B +#define DER_OID_SZ_id_slh_dsa_shake_128f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_128f[DER_OID_SZ_id_slh_dsa_shake_128f]; + +/* + * id-slh-dsa-shake-192s OBJECT IDENTIFIER ::= { sigAlgs 28 } + */ +#define DER_OID_V_id_slh_dsa_shake_192s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1C +#define DER_OID_SZ_id_slh_dsa_shake_192s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_192s[DER_OID_SZ_id_slh_dsa_shake_192s]; + +/* + * id-slh-dsa-shake-192f OBJECT IDENTIFIER ::= { sigAlgs 29 } + */ +#define DER_OID_V_id_slh_dsa_shake_192f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1D +#define DER_OID_SZ_id_slh_dsa_shake_192f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_192f[DER_OID_SZ_id_slh_dsa_shake_192f]; + +/* + * id-slh-dsa-shake-256s OBJECT IDENTIFIER ::= { sigAlgs 30 } + */ +#define DER_OID_V_id_slh_dsa_shake_256s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1E +#define DER_OID_SZ_id_slh_dsa_shake_256s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_256s[DER_OID_SZ_id_slh_dsa_shake_256s]; + +/* + * id-slh-dsa-shake-256f OBJECT IDENTIFIER ::= { sigAlgs 31 } + */ +#define DER_OID_V_id_slh_dsa_shake_256f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1F +#define DER_OID_SZ_id_slh_dsa_shake_256f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_256f[DER_OID_SZ_id_slh_dsa_shake_256f]; + + +int ossl_DER_w_algorithmIdentifier_SLH_DSA(WPACKET *pkt, int tag, SLH_DSA_KEY *key); diff --git a/deps/openssl/config/archs/VC-WIN64A/asm_avx2/apps/progs.c b/deps/openssl/config/archs/VC-WIN64A/asm_avx2/apps/progs.c index 43cef00799b86e..acc204a3e6e781 100644 --- a/deps/openssl/config/archs/VC-WIN64A/asm_avx2/apps/progs.c +++ b/deps/openssl/config/archs/VC-WIN64A/asm_avx2/apps/progs.c @@ -89,6 +89,7 @@ FUNCTION functions[] = { {FT_general, "s_time", s_time_main, s_time_options, NULL, NULL}, #endif {FT_general, "sess_id", sess_id_main, sess_id_options, NULL, NULL}, + {FT_general, "skeyutl", skeyutl_main, skeyutl_options, NULL, NULL}, {FT_general, "smime", smime_main, smime_options, NULL, NULL}, {FT_general, "speed", speed_main, speed_options, NULL, NULL}, {FT_general, "spkac", spkac_main, spkac_options, NULL, NULL}, @@ -225,9 +226,15 @@ FUNCTION functions[] = { {FT_cipher, "camellia-256-ecb", enc_main, enc_options, NULL}, #endif {FT_cipher, "base64", enc_main, enc_options, NULL}, -#ifdef ZLIB +#ifndef OPENSSL_NO_ZLIB {FT_cipher, "zlib", enc_main, enc_options, NULL}, #endif +#ifndef OPENSSL_NO_BROTLI + {FT_cipher, "brotli", enc_main, enc_options, NULL}, +#endif +#ifndef OPENSSL_NO_ZSTD + {FT_cipher, "zstd", enc_main, enc_options, NULL}, +#endif #ifndef OPENSSL_NO_DES {FT_cipher, "des", enc_main, enc_options, NULL}, #endif diff --git a/deps/openssl/config/archs/VC-WIN64A/asm_avx2/configdata.pm b/deps/openssl/config/archs/VC-WIN64A/asm_avx2/configdata.pm index b774af6c5bb0b0..4e1e496dea44c7 100644 --- a/deps/openssl/config/archs/VC-WIN64A/asm_avx2/configdata.pm +++ b/deps/openssl/config/archs/VC-WIN64A/asm_avx2/configdata.pm @@ -32,6 +32,7 @@ our %config = ( "CPPINCLUDES" => [], "CXXFLAGS" => [], "FIPSKEY" => "f4556650ac31d35461610bac4ed81b1a181b2d8a43ea2854cbae22ca74560813", + "FIPS_VENDOR" => "OpenSSL FIPS Provider", "HASHBANGPERL" => "/usr/bin/env perl", "LD" => "link", "LDFLAGS" => [ @@ -46,7 +47,7 @@ our %config = ( "RANLIB" => "ranlib", "RC" => "rc", "RCFLAGS" => [], - "api" => "30000", + "api" => "30500", "b32" => "0", "b64" => "1", "b64l" => "0", @@ -68,11 +69,13 @@ our %config = ( "doc/build.info", "test/build.info", "engines/build.info", + "exporters/build.info", "crypto/objects/build.info", "crypto/buffer/build.info", "crypto/bio/build.info", "crypto/stack/build.info", "crypto/lhash/build.info", + "crypto/hashtable/build.info", "crypto/rand/build.info", "crypto/evp/build.info", "crypto/asn1/build.info", @@ -90,6 +93,7 @@ our %config = ( "crypto/md5/build.info", "crypto/sha/build.info", "crypto/mdc2/build.info", + "crypto/ml_kem/build.info", "crypto/hmac/build.info", "crypto/ripemd/build.info", "crypto/whrlpool/build.info", @@ -131,11 +135,19 @@ our %config = ( "crypto/cmp/build.info", "crypto/encode_decode/build.info", "crypto/ffc/build.info", + "crypto/hpke/build.info", + "crypto/thread/build.info", + "crypto/ml_dsa/build.info", + "crypto/slh_dsa/build.info", + "ssl/record/build.info", + "ssl/rio/build.info", + "ssl/quic/build.info", "apps/lib/build.info", "providers/common/build.info", "providers/implementations/build.info", "providers/fips/build.info", "doc/man1/build.info", + "ssl/record/methods/build.info", "providers/common/der/build.info", "providers/implementations/digests/build.info", "providers/implementations/ciphers/build.info", @@ -149,6 +161,7 @@ our %config = ( "providers/implementations/encode_decode/build.info", "providers/implementations/storemgmt/build.info", "providers/implementations/kem/build.info", + "providers/implementations/skeymgmt/build.info", "providers/implementations/rands/seeding/build.info" ], "build_metadata" => "", @@ -168,7 +181,7 @@ our %config = ( ], "dynamic_engines" => "0", "ex_libs" => [], - "full_version" => "3.0.17", + "full_version" => "3.5.1", "includes" => [], "lflags" => [], "lib_defines" => [ @@ -178,37 +191,51 @@ our %config = ( "major" => "3", "makedep_scheme" => "VC", "makedepcmd" => "\$(CC) /Zs /showIncludes", - "minor" => "0", + "minor" => "5", "openssl_api_defines" => [ - "OPENSSL_CONFIGURED_API=30000" + "OPENSSL_CONFIGURED_API=30500" ], "openssl_feature_defines" => [ "OPENSSL_RAND_SEED_OS", "OPENSSL_THREADS", "OPENSSL_NO_AFALGENG", "OPENSSL_NO_ASAN", + "OPENSSL_NO_BROTLI", + "OPENSSL_NO_BROTLI_DYNAMIC", "OPENSSL_NO_COMP", "OPENSSL_NO_CRYPTO_MDEBUG", "OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE", + "OPENSSL_NO_DEMOS", "OPENSSL_NO_DEVCRYPTOENG", "OPENSSL_NO_EC_NISTP_64_GCC_128", "OPENSSL_NO_EGD", "OPENSSL_NO_EXTERNAL_TESTS", + "OPENSSL_NO_FIPS_JITTER", "OPENSSL_NO_FUZZ_AFL", "OPENSSL_NO_FUZZ_LIBFUZZER", + "OPENSSL_NO_H3DEMO", + "OPENSSL_NO_HQINTEROP", + "OPENSSL_NO_JITTER", "OPENSSL_NO_KTLS", "OPENSSL_NO_LOADERENG", "OPENSSL_NO_MD2", "OPENSSL_NO_MSAN", + "OPENSSL_NO_PIE", "OPENSSL_NO_RC5", "OPENSSL_NO_SCTP", "OPENSSL_NO_SSL3", "OPENSSL_NO_SSL3_METHOD", + "OPENSSL_NO_SSLKEYLOG", + "OPENSSL_NO_TFO", "OPENSSL_NO_TRACE", "OPENSSL_NO_UBSAN", "OPENSSL_NO_UNIT_TEST", "OPENSSL_NO_UPLINK", "OPENSSL_NO_WEAK_SSL_CIPHERS", + "OPENSSL_NO_ZLIB", + "OPENSSL_NO_ZLIB_DYNAMIC", + "OPENSSL_NO_ZSTD", + "OPENSSL_NO_ZSTD_DYNAMIC", "OPENSSL_NO_DYNAMIC_ENGINE" ], "openssl_other_defines" => [ @@ -218,11 +245,11 @@ our %config = ( "OPENSSL_SYS_WIN64A" ], "openssldir" => "", - "options" => "enable-ssl-trace enable-fips no-afalgeng no-asan no-buildtest-c++ no-comp no-crypto-mdebug no-crypto-mdebug-backtrace no-devcryptoeng no-dynamic-engine no-ec_nistp_64_gcc_128 no-egd no-external-tests no-fuzz-afl no-fuzz-libfuzzer no-ktls no-loadereng no-md2 no-msan no-rc5 no-sctp no-shared no-ssl3 no-ssl3-method no-trace no-ubsan no-unit-test no-uplink no-weak-ssl-ciphers no-zlib no-zlib-dynamic", - "patch" => "17", + "options" => "enable-ssl-trace enable-fips no-afalgeng no-asan no-brotli no-brotli-dynamic no-buildtest-c++ no-comp no-crypto-mdebug no-crypto-mdebug-backtrace no-demos no-devcryptoeng no-dynamic-engine no-ec_nistp_64_gcc_128 no-egd no-external-tests no-fips-jitter no-fuzz-afl no-fuzz-libfuzzer no-h3demo no-hqinterop no-jitter no-ktls no-loadereng no-md2 no-msan no-pie no-rc5 no-sctp no-shared no-ssl3 no-ssl3-method no-sslkeylog no-tfo no-trace no-ubsan no-unit-test no-uplink no-weak-ssl-ciphers no-zlib no-zlib-dynamic no-zstd no-zstd-dynamic", + "patch" => "1", "perl_archname" => "x86_64-linux-gnu-thread-multi", "perl_cmd" => "/usr/bin/perl", - "perl_version" => "5.38.2", + "perl_version" => "5.34.0", "perlargv" => [ "no-comp", "no-shared", @@ -252,6 +279,7 @@ our %config = ( "LDLIBS" => undef, "MT" => undef, "MTFLAGS" => undef, + "OBJCOPY" => undef, "OPENSSL_LOCAL_CONFIG_DIR" => undef, "PERL" => undef, "RANLIB" => undef, @@ -275,7 +303,7 @@ our %config = ( "shlib_version" => "3", "sourcedir" => ".", "target" => "VC-WIN64A", - "version" => "3.0.17" + "version" => "3.5.1" ); our %target = ( "AR" => "lib", @@ -290,7 +318,7 @@ our %target = ( "LDFLAGS" => "/nologo /debug", "MT" => "mt", "MTFLAGS" => "-nologo", - "RANLIB" => "CODE(0x5590ca26eb18)", + "RANLIB" => "CODE(0x5566d2efe410)", "RC" => "rc", "_conf_fname_int" => [ "Configurations/00-base-templates.conf", @@ -374,6 +402,8 @@ our %target = ( our @disablables = ( "acvp-tests", "afalgeng", + "apps", + "argon2", "aria", "asan", "asm", @@ -384,11 +414,14 @@ our @disablables = ( "autoload-config", "bf", "blake2", + "brotli", + "brotli-dynamic", "buildtest-c++", "bulk", "cached-fetch", "camellia", "capieng", + "winstore", "cast", "chacha", "cmac", @@ -397,11 +430,16 @@ our @disablables = ( "comp", "crypto-mdebug", "ct", + "default-thread-pool", + "demos", + "h3demo", + "hqinterop", "deprecated", "des", "devcryptoeng", "dgram", "dh", + "docs", "dsa", "dso", "dtls", @@ -411,6 +449,7 @@ our @disablables = ( "ec_nistp_64_gcc_128", "ecdh", "ecdsa", + "ecx", "egd", "engine", "err", @@ -418,10 +457,15 @@ our @disablables = ( "filenames", "fips", "fips-securitychecks", + "fips-post", + "fips-jitter", "fuzz-afl", "fuzz-libfuzzer", "gost", + "http", "idea", + "integrity-only-ciphers", + "jitter", "ktls", "legacy", "loadereng", @@ -429,6 +473,8 @@ our @disablables = ( "md2", "md4", "mdc2", + "ml-dsa", + "ml-kem", "module", "msan", "multiblock", @@ -437,10 +483,13 @@ our @disablables = ( "ocsp", "padlockeng", "pic", + "pie", "pinshared", "poly1305", "posix-io", "psk", + "quic", + "unstable-qlog", "rc2", "rc4", "rc5", @@ -454,7 +503,9 @@ our @disablables = ( "shared", "siphash", "siv", + "slh-dsa", "sm2", + "sm2-precomp", "sm3", "sm4", "sock", @@ -465,9 +516,13 @@ our @disablables = ( "ssl-trace", "static-engine", "stdio", + "sslkeylog", "tests", + "tfo", + "thread-pool", "threads", "tls", + "tls-deprecated-ec", "trace", "ts", "ubsan", @@ -478,6 +533,8 @@ our @disablables = ( "whirlpool", "zlib", "zlib-dynamic", + "zstd", + "zstd-dynamic", "ssl3", "ssl3-method", "tls1", @@ -498,33 +555,45 @@ our @disablables_int = ( our %disabled = ( "afalgeng" => "option", "asan" => "default", + "brotli" => "default", + "brotli-dynamic" => "default", "buildtest-c++" => "default", "comp" => "option", "crypto-mdebug" => "default", "crypto-mdebug-backtrace" => "default", + "demos" => "default", "devcryptoeng" => "default", "dynamic-engine" => "cascade", "ec_nistp_64_gcc_128" => "default", "egd" => "default", "external-tests" => "default", + "fips-jitter" => "default", "fuzz-afl" => "default", "fuzz-libfuzzer" => "default", + "h3demo" => "default", + "hqinterop" => "default", + "jitter" => "default", "ktls" => "default", "loadereng" => "cascade", "md2" => "default", "msan" => "default", + "pie" => "default", "rc5" => "default", "sctp" => "default", "shared" => "option", "ssl3" => "default", "ssl3-method" => "default", + "sslkeylog" => "default", + "tfo" => "default", "trace" => "default", "ubsan" => "default", "unit-test" => "default", "uplink" => "cascade", "weak-ssl-ciphers" => "default", "zlib" => "default", - "zlib-dynamic" => "default" + "zlib-dynamic" => "default", + "zstd" => "default", + "zstd-dynamic" => "default" ); our %withargs = (); our %unified_info = ( @@ -750,6 +819,11 @@ our %unified_info = ( "pod" => "1" } }, + "doc/man1/openssl-skeyutl.pod" => { + "doc/man1/openssl-skeyutl.pod.in" => { + "pod" => "1" + } + }, "doc/man1/openssl-smime.pod" => { "doc/man1/openssl-smime.pod.in" => { "pod" => "1" @@ -807,6 +881,21 @@ our %unified_info = ( } }, "generate" => { + "exporters/OpenSSLConfig.cmake" => { + "exporter" => "cmake" + }, + "exporters/OpenSSLConfigVersion.cmake" => { + "exporter" => "cmake" + }, + "exporters/libcrypto.pc" => { + "exporter" => "pkg-config" + }, + "exporters/libssl.pc" => { + "exporter" => "pkg-config" + }, + "exporters/openssl.pc" => { + "exporter" => "pkg-config" + }, "include/openssl/configuration.h" => { "skip" => "1" } @@ -827,6 +916,9 @@ our %unified_info = ( "providers/liblegacy.a" => { "noinst" => "1" }, + "providers/libtemplate.a" => { + "noinst" => "1" + }, "test/libtestutil.a" => { "has_main" => "1", "noinst" => "1" @@ -844,6 +936,9 @@ our %unified_info = ( } }, "programs" => { + "fuzz/acert-test" => { + "noinst" => "1" + }, "fuzz/asn1-test" => { "noinst" => "1" }, @@ -874,9 +969,60 @@ our %unified_info = ( "fuzz/ct-test" => { "noinst" => "1" }, + "fuzz/decoder-test" => { + "noinst" => "1" + }, + "fuzz/dtlsclient-test" => { + "noinst" => "1" + }, + "fuzz/dtlsserver-test" => { + "noinst" => "1" + }, + "fuzz/hashtable-test" => { + "noinst" => "1" + }, + "fuzz/ml-dsa-test" => { + "noinst" => "1" + }, + "fuzz/ml-kem-test" => { + "noinst" => "1" + }, + "fuzz/pem-test" => { + "noinst" => "1" + }, + "fuzz/provider-test" => { + "noinst" => "1" + }, + "fuzz/punycode-test" => { + "noinst" => "1" + }, + "fuzz/quic-client-test" => { + "noinst" => "1" + }, + "fuzz/quic-lcidm-test" => { + "noinst" => "1" + }, + "fuzz/quic-rcidm-test" => { + "noinst" => "1" + }, + "fuzz/quic-server-test" => { + "noinst" => "1" + }, + "fuzz/quic-srtm-test" => { + "noinst" => "1" + }, "fuzz/server-test" => { "noinst" => "1" }, + "fuzz/slh-dsa-test" => { + "noinst" => "1" + }, + "fuzz/smime-test" => { + "noinst" => "1" + }, + "fuzz/v3name-test" => { + "noinst" => "1" + }, "fuzz/x509-test" => { "noinst" => "1" }, @@ -928,18 +1074,30 @@ our %unified_info = ( "test/bftest" => { "noinst" => "1" }, + "test/bio_addr_test" => { + "noinst" => "1" + }, + "test/bio_base64_test" => { + "noinst" => "1" + }, "test/bio_callback_test" => { "noinst" => "1" }, "test/bio_core_test" => { "noinst" => "1" }, + "test/bio_dgram_test" => { + "noinst" => "1" + }, "test/bio_enc_test" => { "noinst" => "1" }, "test/bio_memleak_test" => { "noinst" => "1" }, + "test/bio_meth_test" => { + "noinst" => "1" + }, "test/bio_prefix_text" => { "noinst" => "1" }, @@ -949,6 +1107,9 @@ our %unified_info = ( "test/bio_readbuffer_test" => { "noinst" => "1" }, + "test/bio_tfo_test" => { + "noinst" => "1" + }, "test/bioprinttest" => { "noinst" => "1" }, @@ -958,6 +1119,9 @@ our %unified_info = ( "test/bntest" => { "noinst" => "1" }, + "test/build_wincrypt_test" => { + "noinst" => "1" + }, "test/buildtest_c_aes" => { "noinst" => "1" }, @@ -973,6 +1137,9 @@ our %unified_info = ( "test/buildtest_c_buffer" => { "noinst" => "1" }, + "test/buildtest_c_byteorder" => { + "noinst" => "1" + }, "test/buildtest_c_camellia" => { "noinst" => "1" }, @@ -997,9 +1164,6 @@ our %unified_info = ( "test/buildtest_c_core_dispatch" => { "noinst" => "1" }, - "test/buildtest_c_core_names" => { - "noinst" => "1" - }, "test/buildtest_c_core_object" => { "noinst" => "1" }, @@ -1024,6 +1188,9 @@ our %unified_info = ( "test/buildtest_c_e_os2" => { "noinst" => "1" }, + "test/buildtest_c_e_ostime" => { + "noinst" => "1" + }, "test/buildtest_c_ebcdic" => { "noinst" => "1" }, @@ -1051,12 +1218,18 @@ our %unified_info = ( "test/buildtest_c_hmac" => { "noinst" => "1" }, + "test/buildtest_c_hpke" => { + "noinst" => "1" + }, "test/buildtest_c_http" => { "noinst" => "1" }, "test/buildtest_c_idea" => { "noinst" => "1" }, + "test/buildtest_c_indicator" => { + "noinst" => "1" + }, "test/buildtest_c_kdf" => { "noinst" => "1" }, @@ -1072,6 +1245,9 @@ our %unified_info = ( "test/buildtest_c_mdc2" => { "noinst" => "1" }, + "test/buildtest_c_ml_kem" => { + "noinst" => "1" + }, "test/buildtest_c_modes" => { "noinst" => "1" }, @@ -1102,6 +1278,9 @@ our %unified_info = ( "test/buildtest_c_provider" => { "noinst" => "1" }, + "test/buildtest_c_quic" => { + "noinst" => "1" + }, "test/buildtest_c_rand" => { "noinst" => "1" }, @@ -1144,6 +1323,9 @@ our %unified_info = ( "test/buildtest_c_symhacks" => { "noinst" => "1" }, + "test/buildtest_c_thread" => { + "noinst" => "1" + }, "test/buildtest_c_tls1" => { "noinst" => "1" }, @@ -1159,6 +1341,12 @@ our %unified_info = ( "test/buildtest_c_whrlpool" => { "noinst" => "1" }, + "test/byteorder_test" => { + "noinst" => "1" + }, + "test/ca_internals_test" => { + "noinst" => "1" + }, "test/casttest" => { "noinst" => "1" }, @@ -1243,6 +1431,9 @@ our %unified_info = ( "test/danetest" => { "noinst" => "1" }, + "test/decoder_propq_test" => { + "noinst" => "1" + }, "test/defltfips_test" => { "noinst" => "1" }, @@ -1315,15 +1506,24 @@ our %unified_info = ( "test/evp_pkey_ctx_new_from_name" => { "noinst" => "1" }, + "test/evp_pkey_dhkem_test" => { + "noinst" => "1" + }, "test/evp_pkey_dparams_test" => { "noinst" => "1" }, "test/evp_pkey_provided_test" => { "noinst" => "1" }, + "test/evp_skey_test" => { + "noinst" => "1" + }, "test/evp_test" => { "noinst" => "1" }, + "test/evp_xof_test" => { + "noinst" => "1" + }, "test/exdatatest" => { "noinst" => "1" }, @@ -1351,6 +1551,9 @@ our %unified_info = ( "test/hmactest" => { "noinst" => "1" }, + "test/hpke_test" => { + "noinst" => "1" + }, "test/http_test" => { "noinst" => "1" }, @@ -1360,12 +1563,18 @@ our %unified_info = ( "test/igetest" => { "noinst" => "1" }, + "test/json_test" => { + "noinst" => "1" + }, "test/keymgmt_internal_test" => { "noinst" => "1" }, "test/lhash_test" => { "noinst" => "1" }, + "test/list_test" => { + "noinst" => "1" + }, "test/localetest" => { "noinst" => "1" }, @@ -1375,9 +1584,21 @@ our %unified_info = ( "test/mdc2test" => { "noinst" => "1" }, + "test/membio_test" => { + "noinst" => "1" + }, "test/memleaktest" => { "noinst" => "1" }, + "test/ml_dsa_test" => { + "noinst" => "1" + }, + "test/ml_kem_evp_extra_test" => { + "noinst" => "1" + }, + "test/ml_kem_internal_test" => { + "noinst" => "1" + }, "test/modes_internal_test" => { "noinst" => "1" }, @@ -1396,6 +1617,9 @@ our %unified_info = ( "test/packettest" => { "noinst" => "1" }, + "test/pairwise_fail_test" => { + "noinst" => "1" + }, "test/param_build_test" => { "noinst" => "1" }, @@ -1420,6 +1644,9 @@ our %unified_info = ( "test/pemtest" => { "noinst" => "1" }, + "test/pkcs12_api_test" => { + "noinst" => "1" + }, "test/pkcs12_format_test" => { "noinst" => "1" }, @@ -1435,6 +1662,9 @@ our %unified_info = ( "test/poly1305_internal_test" => { "noinst" => "1" }, + "test/priority_queue_test" => { + "noinst" => "1" + }, "test/property_test" => { "noinst" => "1" }, @@ -1444,6 +1674,9 @@ our %unified_info = ( "test/provfetchtest" => { "noinst" => "1" }, + "test/provider_default_search_path_test" => { + "noinst" => "1" + }, "test/provider_fallback_test" => { "noinst" => "1" }, @@ -1462,6 +1695,72 @@ our %unified_info = ( "test/punycode_test" => { "noinst" => "1" }, + "test/quic_ackm_test" => { + "noinst" => "1" + }, + "test/quic_cc_test" => { + "noinst" => "1" + }, + "test/quic_cfq_test" => { + "noinst" => "1" + }, + "test/quic_client_test" => { + "noinst" => "1" + }, + "test/quic_fc_test" => { + "noinst" => "1" + }, + "test/quic_fifd_test" => { + "noinst" => "1" + }, + "test/quic_lcidm_test" => { + "noinst" => "1" + }, + "test/quic_multistream_test" => { + "noinst" => "1" + }, + "test/quic_newcid_test" => { + "noinst" => "1" + }, + "test/quic_qlog_test" => { + "noinst" => "1" + }, + "test/quic_radix_test" => { + "noinst" => "1" + }, + "test/quic_rcidm_test" => { + "noinst" => "1" + }, + "test/quic_record_test" => { + "noinst" => "1" + }, + "test/quic_srt_gen_test" => { + "noinst" => "1" + }, + "test/quic_srtm_test" => { + "noinst" => "1" + }, + "test/quic_stream_test" => { + "noinst" => "1" + }, + "test/quic_tserver_test" => { + "noinst" => "1" + }, + "test/quic_txp_test" => { + "noinst" => "1" + }, + "test/quic_txpim_test" => { + "noinst" => "1" + }, + "test/quic_wire_test" => { + "noinst" => "1" + }, + "test/quicapitest" => { + "noinst" => "1" + }, + "test/quicfaultstest" => { + "noinst" => "1" + }, "test/rand_status_test" => { "noinst" => "1" }, @@ -1477,12 +1776,15 @@ our %unified_info = ( "test/rc5test" => { "noinst" => "1" }, - "test/rdrand_sanitytest" => { + "test/rdcpu_sanitytest" => { "noinst" => "1" }, "test/recordlentest" => { "noinst" => "1" }, + "test/rpktest" => { + "noinst" => "1" + }, "test/rsa_complex" => { "noinst" => "1" }, @@ -1495,6 +1797,12 @@ our %unified_info = ( "test/rsa_test" => { "noinst" => "1" }, + "test/rsa_x931_test" => { + "noinst" => "1" + }, + "test/safe_math_test" => { + "noinst" => "1" + }, "test/sanitytest" => { "noinst" => "1" }, @@ -1510,6 +1818,9 @@ our %unified_info = ( "test/siphash_internal_test" => { "noinst" => "1" }, + "test/slh_dsa_test" => { + "noinst" => "1" + }, "test/sm2_internal_test" => { "noinst" => "1" }, @@ -1531,6 +1842,9 @@ our %unified_info = ( "test/ssl_ctx_test" => { "noinst" => "1" }, + "test/ssl_handshake_rtt_test" => { + "noinst" => "1" + }, "test/ssl_old_test" => { "noinst" => "1" }, @@ -1552,12 +1866,18 @@ our %unified_info = ( "test/stack_test" => { "noinst" => "1" }, + "test/strtoultest" => { + "noinst" => "1" + }, "test/sysdefaulttest" => { "noinst" => "1" }, "test/test_test" => { "noinst" => "1" }, + "test/threadpool_test" => { + "noinst" => "1" + }, "test/threadstest" => { "noinst" => "1" }, @@ -1567,12 +1887,18 @@ our %unified_info = ( "test/time_offset_test" => { "noinst" => "1" }, + "test/time_test" => { + "noinst" => "1" + }, "test/tls13ccstest" => { "noinst" => "1" }, "test/tls13encryptiontest" => { "noinst" => "1" }, + "test/tls13groupselection_test" => { + "noinst" => "1" + }, "test/trace_api_test" => { "noinst" => "1" }, @@ -1600,6 +1926,9 @@ our %unified_info = ( "test/wpackettest" => { "noinst" => "1" }, + "test/x509_acert_test" => { + "noinst" => "1" + }, "test/x509_check_cert_pkey_test" => { "noinst" => "1" }, @@ -1609,6 +1938,15 @@ our %unified_info = ( "test/x509_internal_test" => { "noinst" => "1" }, + "test/x509_load_cert_file_test" => { + "noinst" => "1" + }, + "test/x509_req_test" => { + "noinst" => "1" + }, + "test/x509_test" => { + "noinst" => "1" + }, "test/x509_time_test" => { "noinst" => "1" }, @@ -1685,6 +2023,7 @@ our %unified_info = ( "ECP_NISTZ256_ASM", "KECCAK1600_ASM", "OPENSSL_CPUID_OBJ", + "OPENSSL_IA32_SSE2", "SHA1_ASM", "SHA256_ASM", "SHA512_ASM", @@ -1713,6 +2052,9 @@ our %unified_info = ( "MD5_ASM", "RC4_ASM" ], + "test/endecode_test" => [ + "STATIC_LEGACY" + ], "test/evp_extra_test" => [ "STATIC_LEGACY" ], @@ -1725,14 +2067,21 @@ our %unified_info = ( }, "depends" => { "" => [ + "OpenSSLConfigVersion.cmake", + "crypto/params_idx.c", + "exporters/OpenSSLConfigVersion.cmake", + "exporters/openssl.pc", "include/crypto/bn_conf.h", "include/crypto/dso_conf.h", + "include/internal/param_names.h", "include/openssl/asn1.h", "include/openssl/asn1t.h", "include/openssl/bio.h", "include/openssl/cmp.h", "include/openssl/cms.h", + "include/openssl/comp.h", "include/openssl/conf.h", + "include/openssl/core_names.h", "include/openssl/crmf.h", "include/openssl/crypto.h", "include/openssl/ct.h", @@ -1749,10 +2098,22 @@ our %unified_info = ( "include/openssl/ssl.h", "include/openssl/ui.h", "include/openssl/x509.h", + "include/openssl/x509_acert.h", "include/openssl/x509_vfy.h", "include/openssl/x509v3.h", + "openssl.pc", "test/provider_internal_test.cnf" ], + "OpenSSLConfig.cmake" => [ + "builddata.pm" + ], + "OpenSSLConfigVersion.cmake" => [ + "OpenSSLConfig.cmake", + "builddata.pm" + ], + "apps/ca_internals_test-bin-ca.o" => [ + "apps/progs.h" + ], "apps/lib/cmp_client_test-bin-cmp_mock_srv.o" => [ "apps/progs.h" ], @@ -1898,6 +2259,9 @@ our %unified_info = ( "apps/openssl-bin-sess_id.o" => [ "apps/progs.h" ], + "apps/openssl-bin-skeyutl.o" => [ + "apps/progs.h" + ], "apps/openssl-bin-smime.o" => [ "apps/progs.h" ], @@ -1986,6 +2350,9 @@ our %unified_info = ( "crypto/libcrypto-lib-info.o" => [ "crypto/buildinf.h" ], + "crypto/params_idx.c" => [ + "util/perl|OpenSSL/paramnames.pm" + ], "crypto/rc4/rc4-586.S" => [ "crypto/perlasm/x86asm.pl" ], @@ -2151,6 +2518,9 @@ our %unified_info = ( "doc/html/man1/openssl-sess_id.html" => [ "doc/man1/openssl-sess_id.pod" ], + "doc/html/man1/openssl-skeyutl.html" => [ + "doc/man1/openssl-skeyutl.pod" + ], "doc/html/man1/openssl-smime.html" => [ "doc/man1/openssl-smime.pod" ], @@ -2292,6 +2662,9 @@ our %unified_info = ( "doc/html/man3/BIO_get_ex_new_index.html" => [ "doc/man3/BIO_get_ex_new_index.pod" ], + "doc/html/man3/BIO_get_rpoll_descriptor.html" => [ + "doc/man3/BIO_get_rpoll_descriptor.pod" + ], "doc/html/man3/BIO_meth_new.html" => [ "doc/man3/BIO_meth_new.pod" ], @@ -2328,6 +2701,9 @@ our %unified_info = ( "doc/html/man3/BIO_s_datagram.html" => [ "doc/man3/BIO_s_datagram.pod" ], + "doc/html/man3/BIO_s_dgram_pair.html" => [ + "doc/man3/BIO_s_dgram_pair.pod" + ], "doc/html/man3/BIO_s_fd.html" => [ "doc/man3/BIO_s_fd.pod" ], @@ -2343,6 +2719,9 @@ our %unified_info = ( "doc/html/man3/BIO_s_socket.html" => [ "doc/man3/BIO_s_socket.pod" ], + "doc/html/man3/BIO_sendmmsg.html" => [ + "doc/man3/BIO_sendmmsg.pod" + ], "doc/html/man3/BIO_set_callback.html" => [ "doc/man3/BIO_set_callback.pod" ], @@ -2415,6 +2794,9 @@ our %unified_info = ( "doc/html/man3/BUF_MEM_new.html" => [ "doc/man3/BUF_MEM_new.pod" ], + "doc/html/man3/CMAC_CTX.html" => [ + "doc/man3/CMAC_CTX.pod" + ], "doc/html/man3/CMS_EncryptedData_decrypt.html" => [ "doc/man3/CMS_EncryptedData_decrypt.pod" ], @@ -2481,6 +2863,9 @@ our %unified_info = ( "doc/html/man3/CMS_verify_receipt.html" => [ "doc/man3/CMS_verify_receipt.pod" ], + "doc/html/man3/COMP_CTX_new.html" => [ + "doc/man3/COMP_CTX_new.pod" + ], "doc/html/man3/CONF_modules_free.html" => [ "doc/man3/CONF_modules_free.pod" ], @@ -2580,6 +2965,12 @@ our %unified_info = ( "doc/html/man3/DTLS_set_timer_cb.html" => [ "doc/man3/DTLS_set_timer_cb.pod" ], + "doc/html/man3/DTLSv1_get_timeout.html" => [ + "doc/man3/DTLSv1_get_timeout.pod" + ], + "doc/html/man3/DTLSv1_handle_timeout.html" => [ + "doc/man3/DTLSv1_handle_timeout.pod" + ], "doc/html/man3/DTLSv1_listen.html" => [ "doc/man3/DTLSv1_listen.pod" ], @@ -2718,6 +3109,9 @@ our %unified_info = ( "doc/html/man3/EVP_PKEY_CTX_get0_pkey.html" => [ "doc/man3/EVP_PKEY_CTX_get0_pkey.pod" ], + "doc/html/man3/EVP_PKEY_CTX_get_algor.html" => [ + "doc/man3/EVP_PKEY_CTX_get_algor.pod" + ], "doc/html/man3/EVP_PKEY_CTX_new.html" => [ "doc/man3/EVP_PKEY_CTX_new.pod" ], @@ -2835,6 +3229,12 @@ our %unified_info = ( "doc/html/man3/EVP_SIGNATURE.html" => [ "doc/man3/EVP_SIGNATURE.pod" ], + "doc/html/man3/EVP_SKEY.html" => [ + "doc/man3/EVP_SKEY.pod" + ], + "doc/html/man3/EVP_SKEYMGMT.html" => [ + "doc/man3/EVP_SKEYMGMT.pod" + ], "doc/html/man3/EVP_SealInit.html" => [ "doc/man3/EVP_SealInit.pod" ], @@ -2922,6 +3322,9 @@ our %unified_info = ( "doc/html/man3/EVP_whirlpool.html" => [ "doc/man3/EVP_whirlpool.pod" ], + "doc/html/man3/GENERAL_NAME.html" => [ + "doc/man3/GENERAL_NAME.pod" + ], "doc/html/man3/HMAC.html" => [ "doc/man3/HMAC.pod" ], @@ -2994,9 +3397,15 @@ our %unified_info = ( "doc/html/man3/OPENSSL_load_builtin_modules.html" => [ "doc/man3/OPENSSL_load_builtin_modules.pod" ], + "doc/html/man3/OPENSSL_load_u16_le.html" => [ + "doc/man3/OPENSSL_load_u16_le.pod" + ], "doc/html/man3/OPENSSL_malloc.html" => [ "doc/man3/OPENSSL_malloc.pod" ], + "doc/html/man3/OPENSSL_riscvcap.html" => [ + "doc/man3/OPENSSL_riscvcap.pod" + ], "doc/html/man3/OPENSSL_s390xcap.html" => [ "doc/man3/OPENSSL_s390xcap.pod" ], @@ -3012,12 +3421,18 @@ our %unified_info = ( "doc/html/man3/OSSL_CALLBACK.html" => [ "doc/man3/OSSL_CALLBACK.pod" ], + "doc/html/man3/OSSL_CMP_ATAV_set0.html" => [ + "doc/man3/OSSL_CMP_ATAV_set0.pod" + ], "doc/html/man3/OSSL_CMP_CTX_new.html" => [ "doc/man3/OSSL_CMP_CTX_new.pod" ], "doc/html/man3/OSSL_CMP_HDR_get0_transactionID.html" => [ "doc/man3/OSSL_CMP_HDR_get0_transactionID.pod" ], + "doc/html/man3/OSSL_CMP_ITAV_new_caCerts.html" => [ + "doc/man3/OSSL_CMP_ITAV_new_caCerts.pod" + ], "doc/html/man3/OSSL_CMP_ITAV_set0.html" => [ "doc/man3/OSSL_CMP_ITAV_set0.pod" ], @@ -3087,9 +3502,18 @@ our %unified_info = ( "doc/html/man3/OSSL_ENCODER_to_bio.html" => [ "doc/man3/OSSL_ENCODER_to_bio.pod" ], + "doc/html/man3/OSSL_ERR_STATE_save.html" => [ + "doc/man3/OSSL_ERR_STATE_save.pod" + ], "doc/html/man3/OSSL_ESS_check_signing_certs.html" => [ "doc/man3/OSSL_ESS_check_signing_certs.pod" ], + "doc/html/man3/OSSL_GENERAL_NAMES_print.html" => [ + "doc/man3/OSSL_GENERAL_NAMES_print.pod" + ], + "doc/html/man3/OSSL_HPKE_CTX_new.html" => [ + "doc/man3/OSSL_HPKE_CTX_new.pod" + ], "doc/html/man3/OSSL_HTTP_REQ_CTX.html" => [ "doc/man3/OSSL_HTTP_REQ_CTX.pod" ], @@ -3099,12 +3523,24 @@ our %unified_info = ( "doc/html/man3/OSSL_HTTP_transfer.html" => [ "doc/man3/OSSL_HTTP_transfer.pod" ], + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX.html" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX.pod" + ], + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX_print.html" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX_print.pod" + ], + "doc/html/man3/OSSL_INDICATOR_set_callback.html" => [ + "doc/man3/OSSL_INDICATOR_set_callback.pod" + ], "doc/html/man3/OSSL_ITEM.html" => [ "doc/man3/OSSL_ITEM.pod" ], "doc/html/man3/OSSL_LIB_CTX.html" => [ "doc/man3/OSSL_LIB_CTX.pod" ], + "doc/html/man3/OSSL_LIB_CTX_set_conf_diagnostics.html" => [ + "doc/man3/OSSL_LIB_CTX_set_conf_diagnostics.pod" + ], "doc/html/man3/OSSL_PARAM.html" => [ "doc/man3/OSSL_PARAM.pod" ], @@ -3120,9 +3556,15 @@ our %unified_info = ( "doc/html/man3/OSSL_PARAM_int.html" => [ "doc/man3/OSSL_PARAM_int.pod" ], + "doc/html/man3/OSSL_PARAM_print_to_bio.html" => [ + "doc/man3/OSSL_PARAM_print_to_bio.pod" + ], "doc/html/man3/OSSL_PROVIDER.html" => [ "doc/man3/OSSL_PROVIDER.pod" ], + "doc/html/man3/OSSL_QUIC_client_method.html" => [ + "doc/man3/OSSL_QUIC_client_method.pod" + ], "doc/html/man3/OSSL_SELF_TEST_new.html" => [ "doc/man3/OSSL_SELF_TEST_new.pod" ], @@ -3147,6 +3589,9 @@ our %unified_info = ( "doc/html/man3/OSSL_STORE_open.html" => [ "doc/man3/OSSL_STORE_open.pod" ], + "doc/html/man3/OSSL_sleep.html" => [ + "doc/man3/OSSL_sleep.pod" + ], "doc/html/man3/OSSL_trace_enabled.html" => [ "doc/man3/OSSL_trace_enabled.pod" ], @@ -3162,6 +3607,9 @@ our %unified_info = ( "doc/html/man3/OpenSSL_version.html" => [ "doc/man3/OpenSSL_version.pod" ], + "doc/html/man3/PBMAC1_get1_pbkdf2_param.html" => [ + "doc/man3/PBMAC1_get1_pbkdf2_param.pod" + ], "doc/html/man3/PEM_X509_INFO_read_bio_ex.html" => [ "doc/man3/PEM_X509_INFO_read_bio_ex.pod" ], @@ -3198,6 +3646,9 @@ our %unified_info = ( "doc/html/man3/PKCS12_SAFEBAG_get1_cert.html" => [ "doc/man3/PKCS12_SAFEBAG_get1_cert.pod" ], + "doc/html/man3/PKCS12_SAFEBAG_set0_attrs.html" => [ + "doc/man3/PKCS12_SAFEBAG_set0_attrs.pod" + ], "doc/html/man3/PKCS12_add1_attr_by_NID.html" => [ "doc/man3/PKCS12_add1_attr_by_NID.pod" ], @@ -3471,6 +3922,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set0_CA_list.html" => [ "doc/man3/SSL_CTX_set0_CA_list.pod" ], + "doc/html/man3/SSL_CTX_set1_cert_comp_preference.html" => [ + "doc/man3/SSL_CTX_set1_cert_comp_preference.pod" + ], "doc/html/man3/SSL_CTX_set1_curves.html" => [ "doc/man3/SSL_CTX_set1_curves.pod" ], @@ -3510,6 +3964,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_default_passwd_cb.html" => [ "doc/man3/SSL_CTX_set_default_passwd_cb.pod" ], + "doc/html/man3/SSL_CTX_set_domain_flags.html" => [ + "doc/man3/SSL_CTX_set_domain_flags.pod" + ], "doc/html/man3/SSL_CTX_set_generate_session_id.html" => [ "doc/man3/SSL_CTX_set_generate_session_id.pod" ], @@ -3531,6 +3988,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_msg_callback.html" => [ "doc/man3/SSL_CTX_set_msg_callback.pod" ], + "doc/html/man3/SSL_CTX_set_new_pending_conn_cb.html" => [ + "doc/man3/SSL_CTX_set_new_pending_conn_cb.pod" + ], "doc/html/man3/SSL_CTX_set_num_tickets.html" => [ "doc/man3/SSL_CTX_set_num_tickets.pod" ], @@ -3645,6 +4105,9 @@ our %unified_info = ( "doc/html/man3/SSL_accept.html" => [ "doc/man3/SSL_accept.pod" ], + "doc/html/man3/SSL_accept_stream.html" => [ + "doc/man3/SSL_accept_stream.pod" + ], "doc/html/man3/SSL_alert_type_string.html" => [ "doc/man3/SSL_alert_type_string.pod" ], @@ -3672,9 +4135,21 @@ our %unified_info = ( "doc/html/man3/SSL_free.html" => [ "doc/man3/SSL_free.pod" ], + "doc/html/man3/SSL_get0_connection.html" => [ + "doc/man3/SSL_get0_connection.pod" + ], + "doc/html/man3/SSL_get0_group_name.html" => [ + "doc/man3/SSL_get0_group_name.pod" + ], + "doc/html/man3/SSL_get0_peer_rpk.html" => [ + "doc/man3/SSL_get0_peer_rpk.pod" + ], "doc/html/man3/SSL_get0_peer_scts.html" => [ "doc/man3/SSL_get0_peer_scts.pod" ], + "doc/html/man3/SSL_get1_builtin_sigalgs.html" => [ + "doc/man3/SSL_get1_builtin_sigalgs.pod" + ], "doc/html/man3/SSL_get_SSL_CTX.html" => [ "doc/man3/SSL_get_SSL_CTX.pod" ], @@ -3690,6 +4165,9 @@ our %unified_info = ( "doc/html/man3/SSL_get_client_random.html" => [ "doc/man3/SSL_get_client_random.pod" ], + "doc/html/man3/SSL_get_conn_close_info.html" => [ + "doc/man3/SSL_get_conn_close_info.pod" + ], "doc/html/man3/SSL_get_current_cipher.html" => [ "doc/man3/SSL_get_current_cipher.pod" ], @@ -3699,12 +4177,18 @@ our %unified_info = ( "doc/html/man3/SSL_get_error.html" => [ "doc/man3/SSL_get_error.pod" ], + "doc/html/man3/SSL_get_event_timeout.html" => [ + "doc/man3/SSL_get_event_timeout.pod" + ], "doc/html/man3/SSL_get_extms_support.html" => [ "doc/man3/SSL_get_extms_support.pod" ], "doc/html/man3/SSL_get_fd.html" => [ "doc/man3/SSL_get_fd.pod" ], + "doc/html/man3/SSL_get_handshake_rtt.html" => [ + "doc/man3/SSL_get_handshake_rtt.pod" + ], "doc/html/man3/SSL_get_peer_cert_chain.html" => [ "doc/man3/SSL_get_peer_cert_chain.pod" ], @@ -3723,12 +4207,24 @@ our %unified_info = ( "doc/html/man3/SSL_get_rbio.html" => [ "doc/man3/SSL_get_rbio.pod" ], + "doc/html/man3/SSL_get_rpoll_descriptor.html" => [ + "doc/man3/SSL_get_rpoll_descriptor.pod" + ], "doc/html/man3/SSL_get_session.html" => [ "doc/man3/SSL_get_session.pod" ], "doc/html/man3/SSL_get_shared_sigalgs.html" => [ "doc/man3/SSL_get_shared_sigalgs.pod" ], + "doc/html/man3/SSL_get_stream_id.html" => [ + "doc/man3/SSL_get_stream_id.pod" + ], + "doc/html/man3/SSL_get_stream_read_state.html" => [ + "doc/man3/SSL_get_stream_read_state.pod" + ], + "doc/html/man3/SSL_get_value_uint.html" => [ + "doc/man3/SSL_get_value_uint.pod" + ], "doc/html/man3/SSL_get_verify_result.html" => [ "doc/man3/SSL_get_verify_result.pod" ], @@ -3738,9 +4234,15 @@ our %unified_info = ( "doc/html/man3/SSL_group_to_name.html" => [ "doc/man3/SSL_group_to_name.pod" ], + "doc/html/man3/SSL_handle_events.html" => [ + "doc/man3/SSL_handle_events.pod" + ], "doc/html/man3/SSL_in_init.html" => [ "doc/man3/SSL_in_init.pod" ], + "doc/html/man3/SSL_inject_net_dgram.html" => [ + "doc/man3/SSL_inject_net_dgram.pod" + ], "doc/html/man3/SSL_key_update.html" => [ "doc/man3/SSL_key_update.pod" ], @@ -3753,9 +4255,21 @@ our %unified_info = ( "doc/html/man3/SSL_new.html" => [ "doc/man3/SSL_new.pod" ], + "doc/html/man3/SSL_new_domain.html" => [ + "doc/man3/SSL_new_domain.pod" + ], + "doc/html/man3/SSL_new_listener.html" => [ + "doc/man3/SSL_new_listener.pod" + ], + "doc/html/man3/SSL_new_stream.html" => [ + "doc/man3/SSL_new_stream.pod" + ], "doc/html/man3/SSL_pending.html" => [ "doc/man3/SSL_pending.pod" ], + "doc/html/man3/SSL_poll.html" => [ + "doc/man3/SSL_poll.pod" + ], "doc/html/man3/SSL_read.html" => [ "doc/man3/SSL_read.pod" ], @@ -3771,24 +4285,45 @@ our %unified_info = ( "doc/html/man3/SSL_set1_host.html" => [ "doc/man3/SSL_set1_host.pod" ], + "doc/html/man3/SSL_set1_initial_peer_addr.html" => [ + "doc/man3/SSL_set1_initial_peer_addr.pod" + ], + "doc/html/man3/SSL_set1_server_cert_type.html" => [ + "doc/man3/SSL_set1_server_cert_type.pod" + ], "doc/html/man3/SSL_set_async_callback.html" => [ "doc/man3/SSL_set_async_callback.pod" ], "doc/html/man3/SSL_set_bio.html" => [ "doc/man3/SSL_set_bio.pod" ], + "doc/html/man3/SSL_set_blocking_mode.html" => [ + "doc/man3/SSL_set_blocking_mode.pod" + ], "doc/html/man3/SSL_set_connect_state.html" => [ "doc/man3/SSL_set_connect_state.pod" ], + "doc/html/man3/SSL_set_default_stream_mode.html" => [ + "doc/man3/SSL_set_default_stream_mode.pod" + ], "doc/html/man3/SSL_set_fd.html" => [ "doc/man3/SSL_set_fd.pod" ], + "doc/html/man3/SSL_set_incoming_stream_policy.html" => [ + "doc/man3/SSL_set_incoming_stream_policy.pod" + ], + "doc/html/man3/SSL_set_quic_tls_cbs.html" => [ + "doc/man3/SSL_set_quic_tls_cbs.pod" + ], "doc/html/man3/SSL_set_retry_verify.html" => [ "doc/man3/SSL_set_retry_verify.pod" ], "doc/html/man3/SSL_set_session.html" => [ "doc/man3/SSL_set_session.pod" ], + "doc/html/man3/SSL_set_session_secret_cb.html" => [ + "doc/man3/SSL_set_session_secret_cb.pod" + ], "doc/html/man3/SSL_set_shutdown.html" => [ "doc/man3/SSL_set_shutdown.pod" ], @@ -3801,6 +4336,12 @@ our %unified_info = ( "doc/html/man3/SSL_state_string.html" => [ "doc/man3/SSL_state_string.pod" ], + "doc/html/man3/SSL_stream_conclude.html" => [ + "doc/man3/SSL_stream_conclude.pod" + ], + "doc/html/man3/SSL_stream_reset.html" => [ + "doc/man3/SSL_stream_reset.pod" + ], "doc/html/man3/SSL_want.html" => [ "doc/man3/SSL_want.pod" ], @@ -3810,8 +4351,8 @@ our %unified_info = ( "doc/html/man3/TS_RESP_CTX_new.html" => [ "doc/man3/TS_RESP_CTX_new.pod" ], - "doc/html/man3/TS_VERIFY_CTX_set_certs.html" => [ - "doc/man3/TS_VERIFY_CTX_set_certs.pod" + "doc/html/man3/TS_VERIFY_CTX.html" => [ + "doc/man3/TS_VERIFY_CTX.pod" ], "doc/html/man3/UI_STRING.html" => [ "doc/man3/UI_STRING.pod" @@ -3831,6 +4372,21 @@ our %unified_info = ( "doc/html/man3/X509V3_set_ctx.html" => [ "doc/man3/X509V3_set_ctx.pod" ], + "doc/html/man3/X509_ACERT_add1_attr.html" => [ + "doc/man3/X509_ACERT_add1_attr.pod" + ], + "doc/html/man3/X509_ACERT_add_attr_nconf.html" => [ + "doc/man3/X509_ACERT_add_attr_nconf.pod" + ], + "doc/html/man3/X509_ACERT_get0_holder_baseCertId.html" => [ + "doc/man3/X509_ACERT_get0_holder_baseCertId.pod" + ], + "doc/html/man3/X509_ACERT_get_attr.html" => [ + "doc/man3/X509_ACERT_get_attr.pod" + ], + "doc/html/man3/X509_ACERT_print_ex.html" => [ + "doc/man3/X509_ACERT_print_ex.pod" + ], "doc/html/man3/X509_ALGOR_dup.html" => [ "doc/man3/X509_ALGOR_dup.pod" ], @@ -3879,6 +4435,9 @@ our %unified_info = ( "doc/html/man3/X509_SIG_get0.html" => [ "doc/man3/X509_SIG_get0.pod" ], + "doc/html/man3/X509_STORE_CTX_get_by_subject.html" => [ + "doc/man3/X509_STORE_CTX_get_by_subject.pod" + ], "doc/html/man3/X509_STORE_CTX_get_error.html" => [ "doc/man3/X509_STORE_CTX_get_error.pod" ], @@ -3945,6 +4504,9 @@ our %unified_info = ( "doc/html/man3/X509_get0_uids.html" => [ "doc/man3/X509_get0_uids.pod" ], + "doc/html/man3/X509_get_default_cert_file.html" => [ + "doc/man3/X509_get_default_cert_file.pod" + ], "doc/html/man3/X509_get_extension_flags.html" => [ "doc/man3/X509_get_extension_flags.pod" ], @@ -4068,9 +4630,15 @@ our %unified_info = ( "doc/html/man7/EVP_CIPHER-SM4.html" => [ "doc/man7/EVP_CIPHER-SM4.pod" ], + "doc/html/man7/EVP_KDF-ARGON2.html" => [ + "doc/man7/EVP_KDF-ARGON2.pod" + ], "doc/html/man7/EVP_KDF-HKDF.html" => [ "doc/man7/EVP_KDF-HKDF.pod" ], + "doc/html/man7/EVP_KDF-HMAC-DRBG.html" => [ + "doc/man7/EVP_KDF-HMAC-DRBG.pod" + ], "doc/html/man7/EVP_KDF-KB.html" => [ "doc/man7/EVP_KDF-KB.pod" ], @@ -4086,6 +4654,9 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-PKCS12KDF.html" => [ "doc/man7/EVP_KDF-PKCS12KDF.pod" ], + "doc/html/man7/EVP_KDF-PVKKDF.html" => [ + "doc/man7/EVP_KDF-PVKKDF.pod" + ], "doc/html/man7/EVP_KDF-SCRYPT.html" => [ "doc/man7/EVP_KDF-SCRYPT.pod" ], @@ -4110,9 +4681,18 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-X963.html" => [ "doc/man7/EVP_KDF-X963.pod" ], + "doc/html/man7/EVP_KEM-EC.html" => [ + "doc/man7/EVP_KEM-EC.pod" + ], + "doc/html/man7/EVP_KEM-ML-KEM.html" => [ + "doc/man7/EVP_KEM-ML-KEM.pod" + ], "doc/html/man7/EVP_KEM-RSA.html" => [ "doc/man7/EVP_KEM-RSA.pod" ], + "doc/html/man7/EVP_KEM-X25519.html" => [ + "doc/man7/EVP_KEM-X25519.pod" + ], "doc/html/man7/EVP_KEYEXCH-DH.html" => [ "doc/man7/EVP_KEYEXCH-DH.pod" ], @@ -4146,6 +4726,9 @@ our %unified_info = ( "doc/html/man7/EVP_MD-BLAKE2.html" => [ "doc/man7/EVP_MD-BLAKE2.pod" ], + "doc/html/man7/EVP_MD-KECCAK.html" => [ + "doc/man7/EVP_MD-KECCAK.pod" + ], "doc/html/man7/EVP_MD-MD2.html" => [ "doc/man7/EVP_MD-MD2.pod" ], @@ -4203,15 +4786,27 @@ our %unified_info = ( "doc/html/man7/EVP_PKEY-HMAC.html" => [ "doc/man7/EVP_PKEY-HMAC.pod" ], + "doc/html/man7/EVP_PKEY-ML-DSA.html" => [ + "doc/man7/EVP_PKEY-ML-DSA.pod" + ], + "doc/html/man7/EVP_PKEY-ML-KEM.html" => [ + "doc/man7/EVP_PKEY-ML-KEM.pod" + ], "doc/html/man7/EVP_PKEY-RSA.html" => [ "doc/man7/EVP_PKEY-RSA.pod" ], + "doc/html/man7/EVP_PKEY-SLH-DSA.html" => [ + "doc/man7/EVP_PKEY-SLH-DSA.pod" + ], "doc/html/man7/EVP_PKEY-SM2.html" => [ "doc/man7/EVP_PKEY-SM2.pod" ], "doc/html/man7/EVP_PKEY-X25519.html" => [ "doc/man7/EVP_PKEY-X25519.pod" ], + "doc/html/man7/EVP_RAND-CRNG-TEST.html" => [ + "doc/man7/EVP_RAND-CRNG-TEST.pod" + ], "doc/html/man7/EVP_RAND-CTR-DRBG.html" => [ "doc/man7/EVP_RAND-CTR-DRBG.pod" ], @@ -4221,6 +4816,9 @@ our %unified_info = ( "doc/html/man7/EVP_RAND-HMAC-DRBG.html" => [ "doc/man7/EVP_RAND-HMAC-DRBG.pod" ], + "doc/html/man7/EVP_RAND-JITTER.html" => [ + "doc/man7/EVP_RAND-JITTER.pod" + ], "doc/html/man7/EVP_RAND-SEED-SRC.html" => [ "doc/man7/EVP_RAND-SEED-SRC.pod" ], @@ -4242,9 +4840,15 @@ our %unified_info = ( "doc/html/man7/EVP_SIGNATURE-HMAC.html" => [ "doc/man7/EVP_SIGNATURE-HMAC.pod" ], + "doc/html/man7/EVP_SIGNATURE-ML-DSA.html" => [ + "doc/man7/EVP_SIGNATURE-ML-DSA.pod" + ], "doc/html/man7/EVP_SIGNATURE-RSA.html" => [ "doc/man7/EVP_SIGNATURE-RSA.pod" ], + "doc/html/man7/EVP_SIGNATURE-SLH-DSA.html" => [ + "doc/man7/EVP_SIGNATURE-SLH-DSA.pod" + ], "doc/html/man7/OSSL_PROVIDER-FIPS.html" => [ "doc/man7/OSSL_PROVIDER-FIPS.pod" ], @@ -4260,6 +4864,9 @@ our %unified_info = ( "doc/html/man7/OSSL_PROVIDER-null.html" => [ "doc/man7/OSSL_PROVIDER-null.pod" ], + "doc/html/man7/OSSL_STORE-winstore.html" => [ + "doc/man7/OSSL_STORE-winstore.pod" + ], "doc/html/man7/RAND.html" => [ "doc/man7/RAND.pod" ], @@ -4272,9 +4879,6 @@ our %unified_info = ( "doc/html/man7/bio.html" => [ "doc/man7/bio.pod" ], - "doc/html/man7/crypto.html" => [ - "doc/man7/crypto.pod" - ], "doc/html/man7/ct.html" => [ "doc/man7/ct.pod" ], @@ -4305,9 +4909,6 @@ our %unified_info = ( "doc/html/man7/life_cycle-rand.html" => [ "doc/man7/life_cycle-rand.pod" ], - "doc/html/man7/migration_guide.html" => [ - "doc/man7/migration_guide.pod" - ], "doc/html/man7/openssl-core.h.html" => [ "doc/man7/openssl-core.h.pod" ], @@ -4323,12 +4924,66 @@ our %unified_info = ( "doc/html/man7/openssl-glossary.html" => [ "doc/man7/openssl-glossary.pod" ], + "doc/html/man7/openssl-qlog.html" => [ + "doc/man7/openssl-qlog.pod" + ], + "doc/html/man7/openssl-quic-concurrency.html" => [ + "doc/man7/openssl-quic-concurrency.pod" + ], + "doc/html/man7/openssl-quic.html" => [ + "doc/man7/openssl-quic.pod" + ], "doc/html/man7/openssl-threads.html" => [ "doc/man7/openssl-threads.pod" ], "doc/html/man7/openssl_user_macros.html" => [ "doc/man7/openssl_user_macros.pod" ], + "doc/html/man7/ossl-guide-introduction.html" => [ + "doc/man7/ossl-guide-introduction.pod" + ], + "doc/html/man7/ossl-guide-libcrypto-introduction.html" => [ + "doc/man7/ossl-guide-libcrypto-introduction.pod" + ], + "doc/html/man7/ossl-guide-libraries-introduction.html" => [ + "doc/man7/ossl-guide-libraries-introduction.pod" + ], + "doc/html/man7/ossl-guide-libssl-introduction.html" => [ + "doc/man7/ossl-guide-libssl-introduction.pod" + ], + "doc/html/man7/ossl-guide-migration.html" => [ + "doc/man7/ossl-guide-migration.pod" + ], + "doc/html/man7/ossl-guide-quic-client-block.html" => [ + "doc/man7/ossl-guide-quic-client-block.pod" + ], + "doc/html/man7/ossl-guide-quic-client-non-block.html" => [ + "doc/man7/ossl-guide-quic-client-non-block.pod" + ], + "doc/html/man7/ossl-guide-quic-introduction.html" => [ + "doc/man7/ossl-guide-quic-introduction.pod" + ], + "doc/html/man7/ossl-guide-quic-multi-stream.html" => [ + "doc/man7/ossl-guide-quic-multi-stream.pod" + ], + "doc/html/man7/ossl-guide-quic-server-block.html" => [ + "doc/man7/ossl-guide-quic-server-block.pod" + ], + "doc/html/man7/ossl-guide-quic-server-non-block.html" => [ + "doc/man7/ossl-guide-quic-server-non-block.pod" + ], + "doc/html/man7/ossl-guide-tls-client-block.html" => [ + "doc/man7/ossl-guide-tls-client-block.pod" + ], + "doc/html/man7/ossl-guide-tls-client-non-block.html" => [ + "doc/man7/ossl-guide-tls-client-non-block.pod" + ], + "doc/html/man7/ossl-guide-tls-introduction.html" => [ + "doc/man7/ossl-guide-tls-introduction.pod" + ], + "doc/html/man7/ossl-guide-tls-server-block.html" => [ + "doc/man7/ossl-guide-tls-server-block.pod" + ], "doc/html/man7/ossl_store-file.html" => [ "doc/man7/ossl_store-file.pod" ], @@ -4383,6 +5038,9 @@ our %unified_info = ( "doc/html/man7/provider-signature.html" => [ "doc/man7/provider-signature.pod" ], + "doc/html/man7/provider-skeymgmt.html" => [ + "doc/man7/provider-skeymgmt.pod" + ], "doc/html/man7/provider-storemgmt.html" => [ "doc/man7/provider-storemgmt.pod" ], @@ -4392,9 +5050,6 @@ our %unified_info = ( "doc/html/man7/proxy-certificates.html" => [ "doc/man7/proxy-certificates.pod" ], - "doc/html/man7/ssl.html" => [ - "doc/man7/ssl.pod" - ], "doc/html/man7/x509.html" => [ "doc/man7/x509.pod" ], @@ -4542,6 +5197,9 @@ our %unified_info = ( "doc/man/man1/openssl-sess_id.1" => [ "doc/man1/openssl-sess_id.pod" ], + "doc/man/man1/openssl-skeyutl.1" => [ + "doc/man1/openssl-skeyutl.pod" + ], "doc/man/man1/openssl-smime.1" => [ "doc/man1/openssl-smime.pod" ], @@ -4683,6 +5341,9 @@ our %unified_info = ( "doc/man/man3/BIO_get_ex_new_index.3" => [ "doc/man3/BIO_get_ex_new_index.pod" ], + "doc/man/man3/BIO_get_rpoll_descriptor.3" => [ + "doc/man3/BIO_get_rpoll_descriptor.pod" + ], "doc/man/man3/BIO_meth_new.3" => [ "doc/man3/BIO_meth_new.pod" ], @@ -4719,6 +5380,9 @@ our %unified_info = ( "doc/man/man3/BIO_s_datagram.3" => [ "doc/man3/BIO_s_datagram.pod" ], + "doc/man/man3/BIO_s_dgram_pair.3" => [ + "doc/man3/BIO_s_dgram_pair.pod" + ], "doc/man/man3/BIO_s_fd.3" => [ "doc/man3/BIO_s_fd.pod" ], @@ -4734,6 +5398,9 @@ our %unified_info = ( "doc/man/man3/BIO_s_socket.3" => [ "doc/man3/BIO_s_socket.pod" ], + "doc/man/man3/BIO_sendmmsg.3" => [ + "doc/man3/BIO_sendmmsg.pod" + ], "doc/man/man3/BIO_set_callback.3" => [ "doc/man3/BIO_set_callback.pod" ], @@ -4806,6 +5473,9 @@ our %unified_info = ( "doc/man/man3/BUF_MEM_new.3" => [ "doc/man3/BUF_MEM_new.pod" ], + "doc/man/man3/CMAC_CTX.3" => [ + "doc/man3/CMAC_CTX.pod" + ], "doc/man/man3/CMS_EncryptedData_decrypt.3" => [ "doc/man3/CMS_EncryptedData_decrypt.pod" ], @@ -4872,6 +5542,9 @@ our %unified_info = ( "doc/man/man3/CMS_verify_receipt.3" => [ "doc/man3/CMS_verify_receipt.pod" ], + "doc/man/man3/COMP_CTX_new.3" => [ + "doc/man3/COMP_CTX_new.pod" + ], "doc/man/man3/CONF_modules_free.3" => [ "doc/man3/CONF_modules_free.pod" ], @@ -4971,6 +5644,12 @@ our %unified_info = ( "doc/man/man3/DTLS_set_timer_cb.3" => [ "doc/man3/DTLS_set_timer_cb.pod" ], + "doc/man/man3/DTLSv1_get_timeout.3" => [ + "doc/man3/DTLSv1_get_timeout.pod" + ], + "doc/man/man3/DTLSv1_handle_timeout.3" => [ + "doc/man3/DTLSv1_handle_timeout.pod" + ], "doc/man/man3/DTLSv1_listen.3" => [ "doc/man3/DTLSv1_listen.pod" ], @@ -5109,6 +5788,9 @@ our %unified_info = ( "doc/man/man3/EVP_PKEY_CTX_get0_pkey.3" => [ "doc/man3/EVP_PKEY_CTX_get0_pkey.pod" ], + "doc/man/man3/EVP_PKEY_CTX_get_algor.3" => [ + "doc/man3/EVP_PKEY_CTX_get_algor.pod" + ], "doc/man/man3/EVP_PKEY_CTX_new.3" => [ "doc/man3/EVP_PKEY_CTX_new.pod" ], @@ -5226,6 +5908,12 @@ our %unified_info = ( "doc/man/man3/EVP_SIGNATURE.3" => [ "doc/man3/EVP_SIGNATURE.pod" ], + "doc/man/man3/EVP_SKEY.3" => [ + "doc/man3/EVP_SKEY.pod" + ], + "doc/man/man3/EVP_SKEYMGMT.3" => [ + "doc/man3/EVP_SKEYMGMT.pod" + ], "doc/man/man3/EVP_SealInit.3" => [ "doc/man3/EVP_SealInit.pod" ], @@ -5313,6 +6001,9 @@ our %unified_info = ( "doc/man/man3/EVP_whirlpool.3" => [ "doc/man3/EVP_whirlpool.pod" ], + "doc/man/man3/GENERAL_NAME.3" => [ + "doc/man3/GENERAL_NAME.pod" + ], "doc/man/man3/HMAC.3" => [ "doc/man3/HMAC.pod" ], @@ -5385,9 +6076,15 @@ our %unified_info = ( "doc/man/man3/OPENSSL_load_builtin_modules.3" => [ "doc/man3/OPENSSL_load_builtin_modules.pod" ], + "doc/man/man3/OPENSSL_load_u16_le.3" => [ + "doc/man3/OPENSSL_load_u16_le.pod" + ], "doc/man/man3/OPENSSL_malloc.3" => [ "doc/man3/OPENSSL_malloc.pod" ], + "doc/man/man3/OPENSSL_riscvcap.3" => [ + "doc/man3/OPENSSL_riscvcap.pod" + ], "doc/man/man3/OPENSSL_s390xcap.3" => [ "doc/man3/OPENSSL_s390xcap.pod" ], @@ -5403,12 +6100,18 @@ our %unified_info = ( "doc/man/man3/OSSL_CALLBACK.3" => [ "doc/man3/OSSL_CALLBACK.pod" ], + "doc/man/man3/OSSL_CMP_ATAV_set0.3" => [ + "doc/man3/OSSL_CMP_ATAV_set0.pod" + ], "doc/man/man3/OSSL_CMP_CTX_new.3" => [ "doc/man3/OSSL_CMP_CTX_new.pod" ], "doc/man/man3/OSSL_CMP_HDR_get0_transactionID.3" => [ "doc/man3/OSSL_CMP_HDR_get0_transactionID.pod" ], + "doc/man/man3/OSSL_CMP_ITAV_new_caCerts.3" => [ + "doc/man3/OSSL_CMP_ITAV_new_caCerts.pod" + ], "doc/man/man3/OSSL_CMP_ITAV_set0.3" => [ "doc/man3/OSSL_CMP_ITAV_set0.pod" ], @@ -5478,9 +6181,18 @@ our %unified_info = ( "doc/man/man3/OSSL_ENCODER_to_bio.3" => [ "doc/man3/OSSL_ENCODER_to_bio.pod" ], + "doc/man/man3/OSSL_ERR_STATE_save.3" => [ + "doc/man3/OSSL_ERR_STATE_save.pod" + ], "doc/man/man3/OSSL_ESS_check_signing_certs.3" => [ "doc/man3/OSSL_ESS_check_signing_certs.pod" ], + "doc/man/man3/OSSL_GENERAL_NAMES_print.3" => [ + "doc/man3/OSSL_GENERAL_NAMES_print.pod" + ], + "doc/man/man3/OSSL_HPKE_CTX_new.3" => [ + "doc/man3/OSSL_HPKE_CTX_new.pod" + ], "doc/man/man3/OSSL_HTTP_REQ_CTX.3" => [ "doc/man3/OSSL_HTTP_REQ_CTX.pod" ], @@ -5490,12 +6202,24 @@ our %unified_info = ( "doc/man/man3/OSSL_HTTP_transfer.3" => [ "doc/man3/OSSL_HTTP_transfer.pod" ], + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX.3" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX.pod" + ], + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX_print.3" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX_print.pod" + ], + "doc/man/man3/OSSL_INDICATOR_set_callback.3" => [ + "doc/man3/OSSL_INDICATOR_set_callback.pod" + ], "doc/man/man3/OSSL_ITEM.3" => [ "doc/man3/OSSL_ITEM.pod" ], "doc/man/man3/OSSL_LIB_CTX.3" => [ "doc/man3/OSSL_LIB_CTX.pod" ], + "doc/man/man3/OSSL_LIB_CTX_set_conf_diagnostics.3" => [ + "doc/man3/OSSL_LIB_CTX_set_conf_diagnostics.pod" + ], "doc/man/man3/OSSL_PARAM.3" => [ "doc/man3/OSSL_PARAM.pod" ], @@ -5511,9 +6235,15 @@ our %unified_info = ( "doc/man/man3/OSSL_PARAM_int.3" => [ "doc/man3/OSSL_PARAM_int.pod" ], + "doc/man/man3/OSSL_PARAM_print_to_bio.3" => [ + "doc/man3/OSSL_PARAM_print_to_bio.pod" + ], "doc/man/man3/OSSL_PROVIDER.3" => [ "doc/man3/OSSL_PROVIDER.pod" ], + "doc/man/man3/OSSL_QUIC_client_method.3" => [ + "doc/man3/OSSL_QUIC_client_method.pod" + ], "doc/man/man3/OSSL_SELF_TEST_new.3" => [ "doc/man3/OSSL_SELF_TEST_new.pod" ], @@ -5538,6 +6268,9 @@ our %unified_info = ( "doc/man/man3/OSSL_STORE_open.3" => [ "doc/man3/OSSL_STORE_open.pod" ], + "doc/man/man3/OSSL_sleep.3" => [ + "doc/man3/OSSL_sleep.pod" + ], "doc/man/man3/OSSL_trace_enabled.3" => [ "doc/man3/OSSL_trace_enabled.pod" ], @@ -5553,6 +6286,9 @@ our %unified_info = ( "doc/man/man3/OpenSSL_version.3" => [ "doc/man3/OpenSSL_version.pod" ], + "doc/man/man3/PBMAC1_get1_pbkdf2_param.3" => [ + "doc/man3/PBMAC1_get1_pbkdf2_param.pod" + ], "doc/man/man3/PEM_X509_INFO_read_bio_ex.3" => [ "doc/man3/PEM_X509_INFO_read_bio_ex.pod" ], @@ -5589,6 +6325,9 @@ our %unified_info = ( "doc/man/man3/PKCS12_SAFEBAG_get1_cert.3" => [ "doc/man3/PKCS12_SAFEBAG_get1_cert.pod" ], + "doc/man/man3/PKCS12_SAFEBAG_set0_attrs.3" => [ + "doc/man3/PKCS12_SAFEBAG_set0_attrs.pod" + ], "doc/man/man3/PKCS12_add1_attr_by_NID.3" => [ "doc/man3/PKCS12_add1_attr_by_NID.pod" ], @@ -5862,6 +6601,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set0_CA_list.3" => [ "doc/man3/SSL_CTX_set0_CA_list.pod" ], + "doc/man/man3/SSL_CTX_set1_cert_comp_preference.3" => [ + "doc/man3/SSL_CTX_set1_cert_comp_preference.pod" + ], "doc/man/man3/SSL_CTX_set1_curves.3" => [ "doc/man3/SSL_CTX_set1_curves.pod" ], @@ -5901,6 +6643,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_default_passwd_cb.3" => [ "doc/man3/SSL_CTX_set_default_passwd_cb.pod" ], + "doc/man/man3/SSL_CTX_set_domain_flags.3" => [ + "doc/man3/SSL_CTX_set_domain_flags.pod" + ], "doc/man/man3/SSL_CTX_set_generate_session_id.3" => [ "doc/man3/SSL_CTX_set_generate_session_id.pod" ], @@ -5922,6 +6667,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_msg_callback.3" => [ "doc/man3/SSL_CTX_set_msg_callback.pod" ], + "doc/man/man3/SSL_CTX_set_new_pending_conn_cb.3" => [ + "doc/man3/SSL_CTX_set_new_pending_conn_cb.pod" + ], "doc/man/man3/SSL_CTX_set_num_tickets.3" => [ "doc/man3/SSL_CTX_set_num_tickets.pod" ], @@ -6036,6 +6784,9 @@ our %unified_info = ( "doc/man/man3/SSL_accept.3" => [ "doc/man3/SSL_accept.pod" ], + "doc/man/man3/SSL_accept_stream.3" => [ + "doc/man3/SSL_accept_stream.pod" + ], "doc/man/man3/SSL_alert_type_string.3" => [ "doc/man3/SSL_alert_type_string.pod" ], @@ -6063,9 +6814,21 @@ our %unified_info = ( "doc/man/man3/SSL_free.3" => [ "doc/man3/SSL_free.pod" ], + "doc/man/man3/SSL_get0_connection.3" => [ + "doc/man3/SSL_get0_connection.pod" + ], + "doc/man/man3/SSL_get0_group_name.3" => [ + "doc/man3/SSL_get0_group_name.pod" + ], + "doc/man/man3/SSL_get0_peer_rpk.3" => [ + "doc/man3/SSL_get0_peer_rpk.pod" + ], "doc/man/man3/SSL_get0_peer_scts.3" => [ "doc/man3/SSL_get0_peer_scts.pod" ], + "doc/man/man3/SSL_get1_builtin_sigalgs.3" => [ + "doc/man3/SSL_get1_builtin_sigalgs.pod" + ], "doc/man/man3/SSL_get_SSL_CTX.3" => [ "doc/man3/SSL_get_SSL_CTX.pod" ], @@ -6081,6 +6844,9 @@ our %unified_info = ( "doc/man/man3/SSL_get_client_random.3" => [ "doc/man3/SSL_get_client_random.pod" ], + "doc/man/man3/SSL_get_conn_close_info.3" => [ + "doc/man3/SSL_get_conn_close_info.pod" + ], "doc/man/man3/SSL_get_current_cipher.3" => [ "doc/man3/SSL_get_current_cipher.pod" ], @@ -6090,12 +6856,18 @@ our %unified_info = ( "doc/man/man3/SSL_get_error.3" => [ "doc/man3/SSL_get_error.pod" ], + "doc/man/man3/SSL_get_event_timeout.3" => [ + "doc/man3/SSL_get_event_timeout.pod" + ], "doc/man/man3/SSL_get_extms_support.3" => [ "doc/man3/SSL_get_extms_support.pod" ], "doc/man/man3/SSL_get_fd.3" => [ "doc/man3/SSL_get_fd.pod" ], + "doc/man/man3/SSL_get_handshake_rtt.3" => [ + "doc/man3/SSL_get_handshake_rtt.pod" + ], "doc/man/man3/SSL_get_peer_cert_chain.3" => [ "doc/man3/SSL_get_peer_cert_chain.pod" ], @@ -6114,12 +6886,24 @@ our %unified_info = ( "doc/man/man3/SSL_get_rbio.3" => [ "doc/man3/SSL_get_rbio.pod" ], + "doc/man/man3/SSL_get_rpoll_descriptor.3" => [ + "doc/man3/SSL_get_rpoll_descriptor.pod" + ], "doc/man/man3/SSL_get_session.3" => [ "doc/man3/SSL_get_session.pod" ], "doc/man/man3/SSL_get_shared_sigalgs.3" => [ "doc/man3/SSL_get_shared_sigalgs.pod" ], + "doc/man/man3/SSL_get_stream_id.3" => [ + "doc/man3/SSL_get_stream_id.pod" + ], + "doc/man/man3/SSL_get_stream_read_state.3" => [ + "doc/man3/SSL_get_stream_read_state.pod" + ], + "doc/man/man3/SSL_get_value_uint.3" => [ + "doc/man3/SSL_get_value_uint.pod" + ], "doc/man/man3/SSL_get_verify_result.3" => [ "doc/man3/SSL_get_verify_result.pod" ], @@ -6129,9 +6913,15 @@ our %unified_info = ( "doc/man/man3/SSL_group_to_name.3" => [ "doc/man3/SSL_group_to_name.pod" ], + "doc/man/man3/SSL_handle_events.3" => [ + "doc/man3/SSL_handle_events.pod" + ], "doc/man/man3/SSL_in_init.3" => [ "doc/man3/SSL_in_init.pod" ], + "doc/man/man3/SSL_inject_net_dgram.3" => [ + "doc/man3/SSL_inject_net_dgram.pod" + ], "doc/man/man3/SSL_key_update.3" => [ "doc/man3/SSL_key_update.pod" ], @@ -6144,9 +6934,21 @@ our %unified_info = ( "doc/man/man3/SSL_new.3" => [ "doc/man3/SSL_new.pod" ], + "doc/man/man3/SSL_new_domain.3" => [ + "doc/man3/SSL_new_domain.pod" + ], + "doc/man/man3/SSL_new_listener.3" => [ + "doc/man3/SSL_new_listener.pod" + ], + "doc/man/man3/SSL_new_stream.3" => [ + "doc/man3/SSL_new_stream.pod" + ], "doc/man/man3/SSL_pending.3" => [ "doc/man3/SSL_pending.pod" ], + "doc/man/man3/SSL_poll.3" => [ + "doc/man3/SSL_poll.pod" + ], "doc/man/man3/SSL_read.3" => [ "doc/man3/SSL_read.pod" ], @@ -6162,24 +6964,45 @@ our %unified_info = ( "doc/man/man3/SSL_set1_host.3" => [ "doc/man3/SSL_set1_host.pod" ], + "doc/man/man3/SSL_set1_initial_peer_addr.3" => [ + "doc/man3/SSL_set1_initial_peer_addr.pod" + ], + "doc/man/man3/SSL_set1_server_cert_type.3" => [ + "doc/man3/SSL_set1_server_cert_type.pod" + ], "doc/man/man3/SSL_set_async_callback.3" => [ "doc/man3/SSL_set_async_callback.pod" ], "doc/man/man3/SSL_set_bio.3" => [ "doc/man3/SSL_set_bio.pod" ], + "doc/man/man3/SSL_set_blocking_mode.3" => [ + "doc/man3/SSL_set_blocking_mode.pod" + ], "doc/man/man3/SSL_set_connect_state.3" => [ "doc/man3/SSL_set_connect_state.pod" ], + "doc/man/man3/SSL_set_default_stream_mode.3" => [ + "doc/man3/SSL_set_default_stream_mode.pod" + ], "doc/man/man3/SSL_set_fd.3" => [ "doc/man3/SSL_set_fd.pod" ], + "doc/man/man3/SSL_set_incoming_stream_policy.3" => [ + "doc/man3/SSL_set_incoming_stream_policy.pod" + ], + "doc/man/man3/SSL_set_quic_tls_cbs.3" => [ + "doc/man3/SSL_set_quic_tls_cbs.pod" + ], "doc/man/man3/SSL_set_retry_verify.3" => [ "doc/man3/SSL_set_retry_verify.pod" ], "doc/man/man3/SSL_set_session.3" => [ "doc/man3/SSL_set_session.pod" ], + "doc/man/man3/SSL_set_session_secret_cb.3" => [ + "doc/man3/SSL_set_session_secret_cb.pod" + ], "doc/man/man3/SSL_set_shutdown.3" => [ "doc/man3/SSL_set_shutdown.pod" ], @@ -6192,6 +7015,12 @@ our %unified_info = ( "doc/man/man3/SSL_state_string.3" => [ "doc/man3/SSL_state_string.pod" ], + "doc/man/man3/SSL_stream_conclude.3" => [ + "doc/man3/SSL_stream_conclude.pod" + ], + "doc/man/man3/SSL_stream_reset.3" => [ + "doc/man3/SSL_stream_reset.pod" + ], "doc/man/man3/SSL_want.3" => [ "doc/man3/SSL_want.pod" ], @@ -6201,8 +7030,8 @@ our %unified_info = ( "doc/man/man3/TS_RESP_CTX_new.3" => [ "doc/man3/TS_RESP_CTX_new.pod" ], - "doc/man/man3/TS_VERIFY_CTX_set_certs.3" => [ - "doc/man3/TS_VERIFY_CTX_set_certs.pod" + "doc/man/man3/TS_VERIFY_CTX.3" => [ + "doc/man3/TS_VERIFY_CTX.pod" ], "doc/man/man3/UI_STRING.3" => [ "doc/man3/UI_STRING.pod" @@ -6222,6 +7051,21 @@ our %unified_info = ( "doc/man/man3/X509V3_set_ctx.3" => [ "doc/man3/X509V3_set_ctx.pod" ], + "doc/man/man3/X509_ACERT_add1_attr.3" => [ + "doc/man3/X509_ACERT_add1_attr.pod" + ], + "doc/man/man3/X509_ACERT_add_attr_nconf.3" => [ + "doc/man3/X509_ACERT_add_attr_nconf.pod" + ], + "doc/man/man3/X509_ACERT_get0_holder_baseCertId.3" => [ + "doc/man3/X509_ACERT_get0_holder_baseCertId.pod" + ], + "doc/man/man3/X509_ACERT_get_attr.3" => [ + "doc/man3/X509_ACERT_get_attr.pod" + ], + "doc/man/man3/X509_ACERT_print_ex.3" => [ + "doc/man3/X509_ACERT_print_ex.pod" + ], "doc/man/man3/X509_ALGOR_dup.3" => [ "doc/man3/X509_ALGOR_dup.pod" ], @@ -6270,6 +7114,9 @@ our %unified_info = ( "doc/man/man3/X509_SIG_get0.3" => [ "doc/man3/X509_SIG_get0.pod" ], + "doc/man/man3/X509_STORE_CTX_get_by_subject.3" => [ + "doc/man3/X509_STORE_CTX_get_by_subject.pod" + ], "doc/man/man3/X509_STORE_CTX_get_error.3" => [ "doc/man3/X509_STORE_CTX_get_error.pod" ], @@ -6336,6 +7183,9 @@ our %unified_info = ( "doc/man/man3/X509_get0_uids.3" => [ "doc/man3/X509_get0_uids.pod" ], + "doc/man/man3/X509_get_default_cert_file.3" => [ + "doc/man3/X509_get_default_cert_file.pod" + ], "doc/man/man3/X509_get_extension_flags.3" => [ "doc/man3/X509_get_extension_flags.pod" ], @@ -6459,9 +7309,15 @@ our %unified_info = ( "doc/man/man7/EVP_CIPHER-SM4.7" => [ "doc/man7/EVP_CIPHER-SM4.pod" ], + "doc/man/man7/EVP_KDF-ARGON2.7" => [ + "doc/man7/EVP_KDF-ARGON2.pod" + ], "doc/man/man7/EVP_KDF-HKDF.7" => [ "doc/man7/EVP_KDF-HKDF.pod" ], + "doc/man/man7/EVP_KDF-HMAC-DRBG.7" => [ + "doc/man7/EVP_KDF-HMAC-DRBG.pod" + ], "doc/man/man7/EVP_KDF-KB.7" => [ "doc/man7/EVP_KDF-KB.pod" ], @@ -6477,6 +7333,9 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-PKCS12KDF.7" => [ "doc/man7/EVP_KDF-PKCS12KDF.pod" ], + "doc/man/man7/EVP_KDF-PVKKDF.7" => [ + "doc/man7/EVP_KDF-PVKKDF.pod" + ], "doc/man/man7/EVP_KDF-SCRYPT.7" => [ "doc/man7/EVP_KDF-SCRYPT.pod" ], @@ -6501,9 +7360,18 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-X963.7" => [ "doc/man7/EVP_KDF-X963.pod" ], + "doc/man/man7/EVP_KEM-EC.7" => [ + "doc/man7/EVP_KEM-EC.pod" + ], + "doc/man/man7/EVP_KEM-ML-KEM.7" => [ + "doc/man7/EVP_KEM-ML-KEM.pod" + ], "doc/man/man7/EVP_KEM-RSA.7" => [ "doc/man7/EVP_KEM-RSA.pod" ], + "doc/man/man7/EVP_KEM-X25519.7" => [ + "doc/man7/EVP_KEM-X25519.pod" + ], "doc/man/man7/EVP_KEYEXCH-DH.7" => [ "doc/man7/EVP_KEYEXCH-DH.pod" ], @@ -6537,6 +7405,9 @@ our %unified_info = ( "doc/man/man7/EVP_MD-BLAKE2.7" => [ "doc/man7/EVP_MD-BLAKE2.pod" ], + "doc/man/man7/EVP_MD-KECCAK.7" => [ + "doc/man7/EVP_MD-KECCAK.pod" + ], "doc/man/man7/EVP_MD-MD2.7" => [ "doc/man7/EVP_MD-MD2.pod" ], @@ -6594,15 +7465,27 @@ our %unified_info = ( "doc/man/man7/EVP_PKEY-HMAC.7" => [ "doc/man7/EVP_PKEY-HMAC.pod" ], + "doc/man/man7/EVP_PKEY-ML-DSA.7" => [ + "doc/man7/EVP_PKEY-ML-DSA.pod" + ], + "doc/man/man7/EVP_PKEY-ML-KEM.7" => [ + "doc/man7/EVP_PKEY-ML-KEM.pod" + ], "doc/man/man7/EVP_PKEY-RSA.7" => [ "doc/man7/EVP_PKEY-RSA.pod" ], + "doc/man/man7/EVP_PKEY-SLH-DSA.7" => [ + "doc/man7/EVP_PKEY-SLH-DSA.pod" + ], "doc/man/man7/EVP_PKEY-SM2.7" => [ "doc/man7/EVP_PKEY-SM2.pod" ], "doc/man/man7/EVP_PKEY-X25519.7" => [ "doc/man7/EVP_PKEY-X25519.pod" ], + "doc/man/man7/EVP_RAND-CRNG-TEST.7" => [ + "doc/man7/EVP_RAND-CRNG-TEST.pod" + ], "doc/man/man7/EVP_RAND-CTR-DRBG.7" => [ "doc/man7/EVP_RAND-CTR-DRBG.pod" ], @@ -6612,6 +7495,9 @@ our %unified_info = ( "doc/man/man7/EVP_RAND-HMAC-DRBG.7" => [ "doc/man7/EVP_RAND-HMAC-DRBG.pod" ], + "doc/man/man7/EVP_RAND-JITTER.7" => [ + "doc/man7/EVP_RAND-JITTER.pod" + ], "doc/man/man7/EVP_RAND-SEED-SRC.7" => [ "doc/man7/EVP_RAND-SEED-SRC.pod" ], @@ -6633,9 +7519,15 @@ our %unified_info = ( "doc/man/man7/EVP_SIGNATURE-HMAC.7" => [ "doc/man7/EVP_SIGNATURE-HMAC.pod" ], + "doc/man/man7/EVP_SIGNATURE-ML-DSA.7" => [ + "doc/man7/EVP_SIGNATURE-ML-DSA.pod" + ], "doc/man/man7/EVP_SIGNATURE-RSA.7" => [ "doc/man7/EVP_SIGNATURE-RSA.pod" ], + "doc/man/man7/EVP_SIGNATURE-SLH-DSA.7" => [ + "doc/man7/EVP_SIGNATURE-SLH-DSA.pod" + ], "doc/man/man7/OSSL_PROVIDER-FIPS.7" => [ "doc/man7/OSSL_PROVIDER-FIPS.pod" ], @@ -6651,6 +7543,9 @@ our %unified_info = ( "doc/man/man7/OSSL_PROVIDER-null.7" => [ "doc/man7/OSSL_PROVIDER-null.pod" ], + "doc/man/man7/OSSL_STORE-winstore.7" => [ + "doc/man7/OSSL_STORE-winstore.pod" + ], "doc/man/man7/RAND.7" => [ "doc/man7/RAND.pod" ], @@ -6663,9 +7558,6 @@ our %unified_info = ( "doc/man/man7/bio.7" => [ "doc/man7/bio.pod" ], - "doc/man/man7/crypto.7" => [ - "doc/man7/crypto.pod" - ], "doc/man/man7/ct.7" => [ "doc/man7/ct.pod" ], @@ -6696,9 +7588,6 @@ our %unified_info = ( "doc/man/man7/life_cycle-rand.7" => [ "doc/man7/life_cycle-rand.pod" ], - "doc/man/man7/migration_guide.7" => [ - "doc/man7/migration_guide.pod" - ], "doc/man/man7/openssl-core.h.7" => [ "doc/man7/openssl-core.h.pod" ], @@ -6714,12 +7603,66 @@ our %unified_info = ( "doc/man/man7/openssl-glossary.7" => [ "doc/man7/openssl-glossary.pod" ], + "doc/man/man7/openssl-qlog.7" => [ + "doc/man7/openssl-qlog.pod" + ], + "doc/man/man7/openssl-quic-concurrency.7" => [ + "doc/man7/openssl-quic-concurrency.pod" + ], + "doc/man/man7/openssl-quic.7" => [ + "doc/man7/openssl-quic.pod" + ], "doc/man/man7/openssl-threads.7" => [ "doc/man7/openssl-threads.pod" ], "doc/man/man7/openssl_user_macros.7" => [ "doc/man7/openssl_user_macros.pod" ], + "doc/man/man7/ossl-guide-introduction.7" => [ + "doc/man7/ossl-guide-introduction.pod" + ], + "doc/man/man7/ossl-guide-libcrypto-introduction.7" => [ + "doc/man7/ossl-guide-libcrypto-introduction.pod" + ], + "doc/man/man7/ossl-guide-libraries-introduction.7" => [ + "doc/man7/ossl-guide-libraries-introduction.pod" + ], + "doc/man/man7/ossl-guide-libssl-introduction.7" => [ + "doc/man7/ossl-guide-libssl-introduction.pod" + ], + "doc/man/man7/ossl-guide-migration.7" => [ + "doc/man7/ossl-guide-migration.pod" + ], + "doc/man/man7/ossl-guide-quic-client-block.7" => [ + "doc/man7/ossl-guide-quic-client-block.pod" + ], + "doc/man/man7/ossl-guide-quic-client-non-block.7" => [ + "doc/man7/ossl-guide-quic-client-non-block.pod" + ], + "doc/man/man7/ossl-guide-quic-introduction.7" => [ + "doc/man7/ossl-guide-quic-introduction.pod" + ], + "doc/man/man7/ossl-guide-quic-multi-stream.7" => [ + "doc/man7/ossl-guide-quic-multi-stream.pod" + ], + "doc/man/man7/ossl-guide-quic-server-block.7" => [ + "doc/man7/ossl-guide-quic-server-block.pod" + ], + "doc/man/man7/ossl-guide-quic-server-non-block.7" => [ + "doc/man7/ossl-guide-quic-server-non-block.pod" + ], + "doc/man/man7/ossl-guide-tls-client-block.7" => [ + "doc/man7/ossl-guide-tls-client-block.pod" + ], + "doc/man/man7/ossl-guide-tls-client-non-block.7" => [ + "doc/man7/ossl-guide-tls-client-non-block.pod" + ], + "doc/man/man7/ossl-guide-tls-introduction.7" => [ + "doc/man7/ossl-guide-tls-introduction.pod" + ], + "doc/man/man7/ossl-guide-tls-server-block.7" => [ + "doc/man7/ossl-guide-tls-server-block.pod" + ], "doc/man/man7/ossl_store-file.7" => [ "doc/man7/ossl_store-file.pod" ], @@ -6774,6 +7717,9 @@ our %unified_info = ( "doc/man/man7/provider-signature.7" => [ "doc/man7/provider-signature.pod" ], + "doc/man/man7/provider-skeymgmt.7" => [ + "doc/man7/provider-skeymgmt.pod" + ], "doc/man/man7/provider-storemgmt.7" => [ "doc/man7/provider-storemgmt.pod" ], @@ -6783,9 +7729,6 @@ our %unified_info = ( "doc/man/man7/proxy-certificates.7" => [ "doc/man7/proxy-certificates.pod" ], - "doc/man/man7/ssl.7" => [ - "doc/man7/ssl.pod" - ], "doc/man/man7/x509.7" => [ "doc/man7/x509.pod" ], @@ -6965,6 +7908,10 @@ our %unified_info = ( "doc/man1/openssl-sess_id.pod.in", "doc/perlvars.pm" ], + "doc/man1/openssl-skeyutl.pod" => [ + "doc/man1/openssl-skeyutl.pod.in", + "doc/perlvars.pm" + ], "doc/man1/openssl-smime.pod" => [ "doc/man1/openssl-smime.pod.in", "doc/perlvars.pm" @@ -7004,6 +7951,27 @@ our %unified_info = ( "doc/man7/openssl_user_macros.pod" => [ "doc/man7/openssl_user_macros.pod.in" ], + "exporters/OpenSSLConfig.cmake" => [ + "installdata.pm" + ], + "exporters/OpenSSLConfigVersion.cmake" => [ + "exporters/OpenSSLConfig.cmake", + "installdata.pm" + ], + "exporters/libcrypto.pc" => [ + "installdata.pm" + ], + "exporters/libssl.pc" => [ + "installdata.pm" + ], + "exporters/openssl.pc" => [ + "exporters/libcrypto.pc", + "exporters/libssl.pc", + "installdata.pm" + ], + "fuzz/acert-test" => [ + "libcrypto" + ], "fuzz/asn1-test" => [ "libcrypto", "libssl" @@ -7036,17 +8004,85 @@ our %unified_info = ( "fuzz/ct-test" => [ "libcrypto" ], + "fuzz/decoder-test" => [ + "libcrypto" + ], + "fuzz/dtlsclient-test" => [ + "libcrypto", + "libssl" + ], + "fuzz/dtlsserver-test" => [ + "libcrypto", + "libssl" + ], + "fuzz/hashtable-test" => [ + "libcrypto.a" + ], + "fuzz/ml-dsa-test" => [ + "libcrypto.a" + ], + "fuzz/ml-kem-test" => [ + "libcrypto.a" + ], + "fuzz/pem-test" => [ + "libcrypto.a" + ], + "fuzz/provider-test" => [ + "libcrypto" + ], + "fuzz/punycode-test" => [ + "libcrypto.a" + ], + "fuzz/quic-client-test" => [ + "libcrypto.a", + "libssl.a" + ], + "fuzz/quic-lcidm-test" => [ + "libcrypto.a", + "libssl.a" + ], + "fuzz/quic-rcidm-test" => [ + "libcrypto.a", + "libssl.a" + ], + "fuzz/quic-server-test" => [ + "libcrypto.a", + "libssl.a" + ], + "fuzz/quic-srtm-test" => [ + "libcrypto.a", + "libssl.a" + ], "fuzz/server-test" => [ "libcrypto", "libssl" ], + "fuzz/slh-dsa-test" => [ + "libcrypto.a" + ], + "fuzz/smime-test" => [ + "libcrypto", + "libssl" + ], + "fuzz/v3name-test" => [ + "libcrypto.a" + ], "fuzz/x509-test" => [ "libcrypto" ], + "include/internal/param_names.h" => [ + "util/perl|OpenSSL/paramnames.pm" + ], + "include/openssl/core_names.h" => [ + "util/perl|OpenSSL/paramnames.pm" + ], "libcrypto.ld" => [ "configdata.pm", "util/perl/OpenSSL/Ordinals.pm" ], + "libcrypto.pc" => [ + "builddata.pm" + ], "libcrypto.rc" => [ "configdata.pm" ], @@ -7057,9 +8093,17 @@ our %unified_info = ( "configdata.pm", "util/perl/OpenSSL/Ordinals.pm" ], + "libssl.pc" => [ + "builddata.pm" + ], "libssl.rc" => [ "configdata.pm" ], + "openssl.pc" => [ + "builddata.pm", + "libcrypto.pc", + "libssl.pc" + ], "providers/common/der/der_digests_gen.c" => [ "providers/common/der/DIGESTS.asn1", "providers/common/der/NIST.asn1", @@ -7077,11 +8121,19 @@ our %unified_info = ( "providers/common/der/ECX.asn1", "providers/common/der/oids_to_c.pm" ], + "providers/common/der/der_ml_dsa_gen.c" => [ + "providers/common/der/ML_DSA.asn1", + "providers/common/der/oids_to_c.pm" + ], "providers/common/der/der_rsa_gen.c" => [ "providers/common/der/NIST.asn1", "providers/common/der/RSA.asn1", "providers/common/der/oids_to_c.pm" ], + "providers/common/der/der_slh_dsa_gen.c" => [ + "providers/common/der/SLH_DSA.asn1", + "providers/common/der/oids_to_c.pm" + ], "providers/common/der/der_sm2_gen.c" => [ "providers/common/der/SM2.asn1", "providers/common/der/oids_to_c.pm" @@ -7121,6 +8173,12 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ecx_key.o" => [ "providers/common/include/prov/der_ecx.h" ], + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o" => [ + "providers/common/include/prov/der_ml_dsa.h" + ], + "providers/common/der/libcommon-lib-der_ml_dsa_key.o" => [ + "providers/common/include/prov/der_ml_dsa.h" + ], "providers/common/der/libcommon-lib-der_rsa_gen.o" => [ "providers/common/include/prov/der_rsa.h" ], @@ -7128,6 +8186,12 @@ our %unified_info = ( "providers/common/include/prov/der_digests.h", "providers/common/include/prov/der_rsa.h" ], + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o" => [ + "providers/common/include/prov/der_slh_dsa.h" + ], + "providers/common/der/libcommon-lib-der_slh_dsa_key.o" => [ + "providers/common/include/prov/der_slh_dsa.h" + ], "providers/common/der/libcommon-lib-der_wrap_gen.o" => [ "providers/common/include/prov/der_wrap.h" ], @@ -7167,11 +8231,19 @@ our %unified_info = ( "providers/common/der/ECX.asn1", "providers/common/der/oids_to_c.pm" ], + "providers/common/include/prov/der_ml_dsa.h" => [ + "providers/common/der/ML_DSA.asn1", + "providers/common/der/oids_to_c.pm" + ], "providers/common/include/prov/der_rsa.h" => [ "providers/common/der/NIST.asn1", "providers/common/der/RSA.asn1", "providers/common/der/oids_to_c.pm" ], + "providers/common/include/prov/der_slh_dsa.h" => [ + "providers/common/der/SLH_DSA.asn1", + "providers/common/der/oids_to_c.pm" + ], "providers/common/include/prov/der_sm2.h" => [ "providers/common/der/SM2.asn1", "providers/common/der/oids_to_c.pm" @@ -7204,9 +8276,15 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-eddsa_sig.o" => [ "providers/common/include/prov/der_ecx.h" ], + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o" => [ + "providers/common/include/prov/der_ml_dsa.h" + ], "providers/implementations/signature/libdefault-lib-rsa_sig.o" => [ "providers/common/include/prov/der_rsa.h" ], + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o" => [ + "providers/common/include/prov/der_slh_dsa.h" + ], "providers/implementations/signature/libdefault-lib-sm2_sig.o" => [ "providers/common/include/prov/der_sm2.h" ], @@ -7219,9 +8297,15 @@ our %unified_info = ( "providers/implementations/signature/libfips-lib-eddsa_sig.o" => [ "providers/common/include/prov/der_ecx.h" ], + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o" => [ + "providers/common/include/prov/der_ml_dsa.h" + ], "providers/implementations/signature/libfips-lib-rsa_sig.o" => [ "providers/common/include/prov/der_rsa.h" ], + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o" => [ + "providers/common/include/prov/der_slh_dsa.h" + ], "providers/legacy" => [ "libcrypto", "providers/liblegacy.a" @@ -7299,6 +8383,14 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/bio_addr_test" => [ + "libcrypto", + "test/libtestutil.a" + ], + "test/bio_base64_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/bio_callback_test" => [ "libcrypto", "test/libtestutil.a" @@ -7307,6 +8399,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/bio_dgram_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/bio_enc_test" => [ "libcrypto", "test/libtestutil.a" @@ -7315,6 +8411,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/bio_meth_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/bio_prefix_text" => [ "libcrypto", "test/libtestutil.a" @@ -7327,6 +8427,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/bio_tfo_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/bioprinttest" => [ "libcrypto", "test/libtestutil.a" @@ -7339,6 +8443,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/build_wincrypt_test" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_aes" => [ "libcrypto", "libssl" @@ -7359,6 +8467,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_byteorder" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_camellia" => [ "libcrypto", "libssl" @@ -7391,10 +8503,6 @@ our %unified_info = ( "libcrypto", "libssl" ], - "test/buildtest_c_core_names" => [ - "libcrypto", - "libssl" - ], "test/buildtest_c_core_object" => [ "libcrypto", "libssl" @@ -7427,6 +8535,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_e_ostime" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_ebcdic" => [ "libcrypto", "libssl" @@ -7463,6 +8575,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_hpke" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_http" => [ "libcrypto", "libssl" @@ -7471,6 +8587,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_indicator" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_kdf" => [ "libcrypto", "libssl" @@ -7491,6 +8611,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_ml_kem" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_modes" => [ "libcrypto", "libssl" @@ -7531,6 +8655,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_quic" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_rand" => [ "libcrypto", "libssl" @@ -7587,6 +8715,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_thread" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_tls1" => [ "libcrypto", "libssl" @@ -7607,10 +8739,23 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/byteorder_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], + "test/ca_internals_test" => [ + "libssl", + "test/libtestutil.a" + ], "test/casttest" => [ "libcrypto", "test/libtestutil.a" ], + "test/cert_comp_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], "test/chacha_internal_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -7724,6 +8869,10 @@ our %unified_info = ( "libssl", "test/libtestutil.a" ], + "test/decoder_propq_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/defltfips_test" => [ "libcrypto", "test/libtestutil.a" @@ -7780,6 +8929,8 @@ our %unified_info = ( ], "test/endecode_test" => [ "libcrypto.a", + "providers/libcommon.a", + "providers/liblegacy.a", "test/libtestutil.a" ], "test/endecoder_legacy_test" => [ @@ -7823,6 +8974,10 @@ our %unified_info = ( "test/evp_pkey_ctx_new_from_name" => [ "libcrypto" ], + "test/evp_pkey_dhkem_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/evp_pkey_dparams_test" => [ "libcrypto", "test/libtestutil.a" @@ -7831,10 +8986,18 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/evp_skey_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/evp_test" => [ "libcrypto", "test/libtestutil.a" ], + "test/evp_xof_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/exdatatest" => [ "libcrypto", "test/libtestutil.a" @@ -7873,6 +9036,10 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/hpke_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/http_test" => [ "libcrypto", "test/libtestutil.a" @@ -7885,17 +9052,25 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/json_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], "test/keymgmt_internal_test" => [ "libcrypto.a", "test/libtestutil.a" ], "test/lhash_test" => [ - "libcrypto", + "libcrypto.a", "test/libtestutil.a" ], "test/libtestutil.a" => [ "libcrypto" ], + "test/list_test" => [ + "test/libtestutil.a" + ], "test/localetest" => [ "libcrypto", "test/libtestutil.a" @@ -7908,10 +9083,26 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/membio_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/memleaktest" => [ "libcrypto", "test/libtestutil.a" ], + "test/ml_dsa_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], + "test/ml_kem_evp_extra_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], + "test/ml_kem_internal_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/modes_internal_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -7936,6 +9127,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/pairwise_fail_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/param_build_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -7968,6 +9163,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/pkcs12_api_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/pkcs12_format_test" => [ "libcrypto", "test/libtestutil.a" @@ -7988,6 +9187,11 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/priority_queue_test" => [ + "libcrypto", + "libssl.a", + "test/libtestutil.a" + ], "test/property_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -8000,6 +9204,10 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/provider_default_search_path_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/provider_fallback_test" => [ "libcrypto", "test/libtestutil.a" @@ -8024,12 +9232,122 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/quic_ackm_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_cc_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_cfq_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_client_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_fc_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_fifd_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_lcidm_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_multistream_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_newcid_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_qlog_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_radix_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_rcidm_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_record_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_srt_gen_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_srtm_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_stream_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_tserver_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_txp_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_txpim_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_wire_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quicapitest" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quicfaultstest" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], "test/rand_status_test" => [ "libcrypto", "test/libtestutil.a" ], "test/rand_test" => [ - "libcrypto", + "libcrypto.a", "test/libtestutil.a" ], "test/rc2test" => [ @@ -8044,7 +9362,7 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], - "test/rdrand_sanitytest" => [ + "test/rdcpu_sanitytest" => [ "libcrypto.a", "test/libtestutil.a" ], @@ -8053,6 +9371,11 @@ our %unified_info = ( "libssl", "test/libtestutil.a" ], + "test/rpktest" => [ + "libcrypto", + "libssl", + "test/libtestutil.a" + ], "test/rsa_mp_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -8065,10 +9388,18 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], - "test/sanitytest" => [ + "test/rsa_x931_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], + "test/safe_math_test" => [ "libcrypto", "test/libtestutil.a" ], + "test/sanitytest" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/secmemtest" => [ "libcrypto", "test/libtestutil.a" @@ -8086,6 +9417,10 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/slh_dsa_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/sm2_internal_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -8115,6 +9450,11 @@ our %unified_info = ( "libssl", "test/libtestutil.a" ], + "test/ssl_handshake_rtt_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], "test/ssl_old_test" => [ "libcrypto.a", "libssl.a", @@ -8131,8 +9471,8 @@ our %unified_info = ( "test/libtestutil.a" ], "test/sslapitest" => [ - "libcrypto", - "libssl", + "libcrypto.a", + "libssl.a", "test/libtestutil.a" ], "test/sslbuffertest" => [ @@ -8149,6 +9489,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/strtoultest" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/sysdefaulttest" => [ "libcrypto", "libssl", @@ -8158,8 +9502,12 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/threadpool_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/threadstest" => [ - "libcrypto", + "libcrypto.a", "test/libtestutil.a" ], "test/threadstest_fips" => [ @@ -8170,6 +9518,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/time_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/tls13ccstest" => [ "libcrypto", "libssl", @@ -8180,6 +9532,11 @@ our %unified_info = ( "libssl.a", "test/libtestutil.a" ], + "test/tls13groupselection_test" => [ + "libcrypto", + "libssl", + "test/libtestutil.a" + ], "test/trace_api_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -8217,6 +9574,10 @@ our %unified_info = ( "libssl.a", "test/libtestutil.a" ], + "test/x509_acert_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/x509_check_cert_pkey_test" => [ "libcrypto", "test/libtestutil.a" @@ -8229,6 +9590,18 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/x509_load_cert_file_test" => [ + "libcrypto", + "test/libtestutil.a" + ], + "test/x509_req_test" => [ + "libcrypto", + "test/libtestutil.a" + ], + "test/x509_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/x509_time_test" => [ "libcrypto", "test/libtestutil.a" @@ -8243,9 +9616,13 @@ our %unified_info = ( }, "dirinfo" => { "apps" => { + "deps" => [ + "apps/ca_internals_test-bin-ca.o" + ], "products" => { "bin" => [ - "apps/openssl" + "apps/openssl", + "test/ca_internals_test" ], "script" => [ "apps/CA.pl", @@ -8256,6 +9633,14 @@ our %unified_info = ( "apps/lib" => { "deps" => [ "apps/lib/openssl-bin-cmp_mock_srv.o", + "apps/lib/ca_internals_test-bin-app_libctx.o", + "apps/lib/ca_internals_test-bin-app_provider.o", + "apps/lib/ca_internals_test-bin-app_rand.o", + "apps/lib/ca_internals_test-bin-app_x509.o", + "apps/lib/ca_internals_test-bin-apps.o", + "apps/lib/ca_internals_test-bin-apps_ui.o", + "apps/lib/ca_internals_test-bin-engine.o", + "apps/lib/ca_internals_test-bin-fmt.o", "apps/lib/cmp_client_test-bin-cmp_mock_srv.o", "apps/lib/uitest-bin-apps_ui.o", "apps/lib/libapps-lib-app_libctx.o", @@ -8264,12 +9649,14 @@ our %unified_info = ( "apps/lib/libapps-lib-app_rand.o", "apps/lib/libapps-lib-app_x509.o", "apps/lib/libapps-lib-apps.o", + "apps/lib/libapps-lib-apps_opt_printf.o", "apps/lib/libapps-lib-apps_ui.o", "apps/lib/libapps-lib-columns.o", "apps/lib/libapps-lib-engine.o", "apps/lib/libapps-lib-engine_loader.o", "apps/lib/libapps-lib-fmt.o", "apps/lib/libapps-lib-http_server.o", + "apps/lib/libapps-lib-log.o", "apps/lib/libapps-lib-names.o", "apps/lib/libapps-lib-opt.o", "apps/lib/libapps-lib-s_cb.o", @@ -8282,6 +9669,7 @@ our %unified_info = ( "products" => { "bin" => [ "apps/openssl", + "test/ca_internals_test", "test/cmp_client_test", "test/uitest" ], @@ -8293,8 +9681,12 @@ our %unified_info = ( }, "crypto" => { "deps" => [ + "crypto/asn1_time_test-bin-ctype.o", + "crypto/ca_internals_test-bin-ctype.o", + "crypto/packettest-bin-quic_vlint.o", "crypto/libcrypto-lib-asn1_dsa.o", "crypto/libcrypto-lib-bsearch.o", + "crypto/libcrypto-lib-comp_methods.o", "crypto/libcrypto-lib-context.o", "crypto/libcrypto-lib-core_algorithm.o", "crypto/libcrypto-lib-core_fetch.o", @@ -8304,10 +9696,13 @@ our %unified_info = ( "crypto/libcrypto-lib-cryptlib.o", "crypto/libcrypto-lib-ctype.o", "crypto/libcrypto-lib-cversion.o", + "crypto/libcrypto-lib-defaults.o", "crypto/libcrypto-lib-der_writer.o", + "crypto/libcrypto-lib-deterministic_nonce.o", "crypto/libcrypto-lib-ebcdic.o", "crypto/libcrypto-lib-ex_data.o", "crypto/libcrypto-lib-getenv.o", + "crypto/libcrypto-lib-indicator_core.o", "crypto/libcrypto-lib-info.o", "crypto/libcrypto-lib-init.o", "crypto/libcrypto-lib-initthread.o", @@ -8324,6 +9719,7 @@ our %unified_info = ( "crypto/libcrypto-lib-params.o", "crypto/libcrypto-lib-params_dup.o", "crypto/libcrypto-lib-params_from_text.o", + "crypto/libcrypto-lib-params_idx.o", "crypto/libcrypto-lib-passphrase.o", "crypto/libcrypto-lib-provider.o", "crypto/libcrypto-lib-provider_child.o", @@ -8331,12 +9727,16 @@ our %unified_info = ( "crypto/libcrypto-lib-provider_core.o", "crypto/libcrypto-lib-provider_predefined.o", "crypto/libcrypto-lib-punycode.o", + "crypto/libcrypto-lib-quic_vlint.o", "crypto/libcrypto-lib-self_test_core.o", + "crypto/libcrypto-lib-sleep.o", "crypto/libcrypto-lib-sparse_array.o", + "crypto/libcrypto-lib-ssl_err.o", "crypto/libcrypto-lib-threads_lib.o", "crypto/libcrypto-lib-threads_none.o", "crypto/libcrypto-lib-threads_pthread.o", "crypto/libcrypto-lib-threads_win.o", + "crypto/libcrypto-lib-time.o", "crypto/libcrypto-lib-trace.o", "crypto/libcrypto-lib-uid.o", "crypto/libcrypto-lib-x86_64cpuid.o", @@ -8359,6 +9759,7 @@ our %unified_info = ( "crypto/libfips-lib-params.o", "crypto/libfips-lib-params_dup.o", "crypto/libfips-lib-params_from_text.o", + "crypto/libfips-lib-params_idx.o", "crypto/libfips-lib-provider_core.o", "crypto/libfips-lib-provider_predefined.o", "crypto/libfips-lib-self_test_core.o", @@ -8367,9 +9768,15 @@ our %unified_info = ( "crypto/libfips-lib-threads_none.o", "crypto/libfips-lib-threads_pthread.o", "crypto/libfips-lib-threads_win.o", + "crypto/libfips-lib-time.o", "crypto/libfips-lib-x86_64cpuid.o" ], "products" => { + "bin" => [ + "test/asn1_time_test", + "test/ca_internals_test", + "test/packettest" + ], "lib" => [ "libcrypto", "providers/libfips.a" @@ -8389,6 +9796,7 @@ our %unified_info = ( "crypto/aes/libcrypto-lib-aesni-sha1-x86_64.o", "crypto/aes/libcrypto-lib-aesni-sha256-x86_64.o", "crypto/aes/libcrypto-lib-aesni-x86_64.o", + "crypto/aes/libcrypto-lib-aesni-xts-avx512.o", "crypto/aes/libcrypto-lib-bsaes-x86_64.o", "crypto/aes/libcrypto-lib-vpaes-x86_64.o", "crypto/aes/libfips-lib-aes-x86_64.o", @@ -8398,6 +9806,7 @@ our %unified_info = ( "crypto/aes/libfips-lib-aesni-sha1-x86_64.o", "crypto/aes/libfips-lib-aesni-sha256-x86_64.o", "crypto/aes/libfips-lib-aesni-x86_64.o", + "crypto/aes/libfips-lib-aesni-xts-avx512.o", "crypto/aes/libfips-lib-bsaes-x86_64.o", "crypto/aes/libfips-lib-vpaes-x86_64.o" ], @@ -8420,6 +9829,8 @@ our %unified_info = ( }, "crypto/asn1" => { "deps" => [ + "crypto/asn1/asn1_time_test-bin-a_time.o", + "crypto/asn1/ca_internals_test-bin-a_time.o", "crypto/asn1/libcrypto-lib-a_bitstr.o", "crypto/asn1/libcrypto-lib-a_d2i_fp.o", "crypto/asn1/libcrypto-lib-a_digest.o", @@ -8486,6 +9897,10 @@ our %unified_info = ( "crypto/asn1/libcrypto-lib-x_val.o" ], "products" => { + "bin" => [ + "test/asn1_time_test", + "test/ca_internals_test" + ], "lib" => [ "libcrypto" ] @@ -8551,6 +9966,7 @@ our %unified_info = ( "crypto/bio/libcrypto-lib-bss_conn.o", "crypto/bio/libcrypto-lib-bss_core.o", "crypto/bio/libcrypto-lib-bss_dgram.o", + "crypto/bio/libcrypto-lib-bss_dgram_pair.o", "crypto/bio/libcrypto-lib-bss_fd.o", "crypto/bio/libcrypto-lib-bss_file.o", "crypto/bio/libcrypto-lib-bss_log.o", @@ -8600,8 +10016,13 @@ our %unified_info = ( "crypto/bn/libcrypto-lib-bn_srp.o", "crypto/bn/libcrypto-lib-bn_word.o", "crypto/bn/libcrypto-lib-bn_x931p.o", + "crypto/bn/libcrypto-lib-rsaz-2k-avx512.o", + "crypto/bn/libcrypto-lib-rsaz-2k-avxifma.o", + "crypto/bn/libcrypto-lib-rsaz-3k-avx512.o", + "crypto/bn/libcrypto-lib-rsaz-3k-avxifma.o", + "crypto/bn/libcrypto-lib-rsaz-4k-avx512.o", + "crypto/bn/libcrypto-lib-rsaz-4k-avxifma.o", "crypto/bn/libcrypto-lib-rsaz-avx2.o", - "crypto/bn/libcrypto-lib-rsaz-avx512.o", "crypto/bn/libcrypto-lib-rsaz-x86_64.o", "crypto/bn/libcrypto-lib-rsaz_exp.o", "crypto/bn/libcrypto-lib-rsaz_exp_x2.o", @@ -8636,8 +10057,13 @@ our %unified_info = ( "crypto/bn/libfips-lib-bn_sqr.o", "crypto/bn/libfips-lib-bn_sqrt.o", "crypto/bn/libfips-lib-bn_word.o", + "crypto/bn/libfips-lib-rsaz-2k-avx512.o", + "crypto/bn/libfips-lib-rsaz-2k-avxifma.o", + "crypto/bn/libfips-lib-rsaz-3k-avx512.o", + "crypto/bn/libfips-lib-rsaz-3k-avxifma.o", + "crypto/bn/libfips-lib-rsaz-4k-avx512.o", + "crypto/bn/libfips-lib-rsaz-4k-avxifma.o", "crypto/bn/libfips-lib-rsaz-avx2.o", - "crypto/bn/libfips-lib-rsaz-avx512.o", "crypto/bn/libfips-lib-rsaz-x86_64.o", "crypto/bn/libfips-lib-rsaz_exp.o", "crypto/bn/libfips-lib-rsaz_exp_x2.o", @@ -8722,6 +10148,7 @@ our %unified_info = ( "crypto/cmp/libcrypto-lib-cmp_client.o", "crypto/cmp/libcrypto-lib-cmp_ctx.o", "crypto/cmp/libcrypto-lib-cmp_err.o", + "crypto/cmp/libcrypto-lib-cmp_genm.o", "crypto/cmp/libcrypto-lib-cmp_hdr.o", "crypto/cmp/libcrypto-lib-cmp_http.o", "crypto/cmp/libcrypto-lib-cmp_msg.o", @@ -9095,7 +10522,9 @@ our %unified_info = ( "crypto/err/libcrypto-lib-err_all.o", "crypto/err/libcrypto-lib-err_all_legacy.o", "crypto/err/libcrypto-lib-err_blocks.o", - "crypto/err/libcrypto-lib-err_prn.o" + "crypto/err/libcrypto-lib-err_mark.o", + "crypto/err/libcrypto-lib-err_prn.o", + "crypto/err/libcrypto-lib-err_save.o" ], "products" => { "lib" => [ @@ -9196,7 +10625,9 @@ our %unified_info = ( "crypto/evp/libcrypto-lib-pmeth_check.o", "crypto/evp/libcrypto-lib-pmeth_gn.o", "crypto/evp/libcrypto-lib-pmeth_lib.o", + "crypto/evp/libcrypto-lib-s_lib.o", "crypto/evp/libcrypto-lib-signature.o", + "crypto/evp/libcrypto-lib-skeymgmt_meth.o", "crypto/evp/libfips-lib-asymcipher.o", "crypto/evp/libfips-lib-dh_support.o", "crypto/evp/libfips-lib-digest.o", @@ -9212,14 +10643,15 @@ our %unified_info = ( "crypto/evp/libfips-lib-kem.o", "crypto/evp/libfips-lib-keymgmt_lib.o", "crypto/evp/libfips-lib-keymgmt_meth.o", - "crypto/evp/libfips-lib-m_sigver.o", "crypto/evp/libfips-lib-mac_lib.o", "crypto/evp/libfips-lib-mac_meth.o", "crypto/evp/libfips-lib-p_lib.o", "crypto/evp/libfips-lib-pmeth_check.o", "crypto/evp/libfips-lib-pmeth_gn.o", "crypto/evp/libfips-lib-pmeth_lib.o", - "crypto/evp/libfips-lib-signature.o" + "crypto/evp/libfips-lib-s_lib.o", + "crypto/evp/libfips-lib-signature.o", + "crypto/evp/libfips-lib-skeymgmt_meth.o" ], "products" => { "lib" => [ @@ -9252,6 +10684,20 @@ our %unified_info = ( ] } }, + "crypto/hashtable" => { + "deps" => [ + "crypto/hashtable/libcrypto-lib-hashfunc.o", + "crypto/hashtable/libcrypto-lib-hashtable.o", + "crypto/hashtable/libfips-lib-hashfunc.o", + "crypto/hashtable/libfips-lib-hashtable.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, "crypto/hmac" => { "deps" => [ "crypto/hmac/libcrypto-lib-hmac.o", @@ -9264,6 +10710,17 @@ our %unified_info = ( ] } }, + "crypto/hpke" => { + "deps" => [ + "crypto/hpke/libcrypto-lib-hpke.o", + "crypto/hpke/libcrypto-lib-hpke_util.o" + ], + "products" => { + "lib" => [ + "libcrypto" + ] + } + }, "crypto/http" => { "deps" => [ "crypto/http/libcrypto-lib-http_client.o", @@ -9348,8 +10805,47 @@ our %unified_info = ( ] } }, + "crypto/ml_dsa" => { + "deps" => [ + "crypto/ml_dsa/libcrypto-lib-ml_dsa_encoders.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key_compress.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_matrix.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_ntt.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_params.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sample.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sign.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_encoders.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_key.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_key_compress.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_matrix.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_ntt.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_params.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_sample.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_sign.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, + "crypto/ml_kem" => { + "deps" => [ + "crypto/ml_kem/libcrypto-lib-ml_kem.o", + "crypto/ml_kem/libfips-lib-ml_kem.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, "crypto/modes" => { "deps" => [ + "crypto/modes/libcrypto-lib-aes-gcm-avx512.o", "crypto/modes/libcrypto-lib-aesni-gcm-x86_64.o", "crypto/modes/libcrypto-lib-cbc128.o", "crypto/modes/libcrypto-lib-ccm128.o", @@ -9363,6 +10859,8 @@ our %unified_info = ( "crypto/modes/libcrypto-lib-siv128.o", "crypto/modes/libcrypto-lib-wrap128.o", "crypto/modes/libcrypto-lib-xts128.o", + "crypto/modes/libcrypto-lib-xts128gb.o", + "crypto/modes/libfips-lib-aes-gcm-avx512.o", "crypto/modes/libfips-lib-aesni-gcm-x86_64.o", "crypto/modes/libfips-lib-cbc128.o", "crypto/modes/libfips-lib-ccm128.o", @@ -9372,7 +10870,8 @@ our %unified_info = ( "crypto/modes/libfips-lib-ghash-x86_64.o", "crypto/modes/libfips-lib-ofb128.o", "crypto/modes/libfips-lib-wrap128.o", - "crypto/modes/libfips-lib-xts128.o" + "crypto/modes/libfips-lib-xts128.o", + "crypto/modes/libfips-lib-xts128gb.o" ], "products" => { "lib" => [ @@ -9516,6 +11015,7 @@ our %unified_info = ( "crypto/rand/libcrypto-lib-rand_lib.o", "crypto/rand/libcrypto-lib-rand_meth.o", "crypto/rand/libcrypto-lib-rand_pool.o", + "crypto/rand/libcrypto-lib-rand_uniform.o", "crypto/rand/libcrypto-lib-randfile.o", "crypto/rand/libfips-lib-rand_lib.o" ], @@ -9670,6 +11170,36 @@ our %unified_info = ( ] } }, + "crypto/slh_dsa" => { + "deps" => [ + "crypto/slh_dsa/libcrypto-lib-slh_adrs.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa_hash_ctx.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa_key.o", + "crypto/slh_dsa/libcrypto-lib-slh_fors.o", + "crypto/slh_dsa/libcrypto-lib-slh_hash.o", + "crypto/slh_dsa/libcrypto-lib-slh_hypertree.o", + "crypto/slh_dsa/libcrypto-lib-slh_params.o", + "crypto/slh_dsa/libcrypto-lib-slh_wots.o", + "crypto/slh_dsa/libcrypto-lib-slh_xmss.o", + "crypto/slh_dsa/libfips-lib-slh_adrs.o", + "crypto/slh_dsa/libfips-lib-slh_dsa.o", + "crypto/slh_dsa/libfips-lib-slh_dsa_hash_ctx.o", + "crypto/slh_dsa/libfips-lib-slh_dsa_key.o", + "crypto/slh_dsa/libfips-lib-slh_fors.o", + "crypto/slh_dsa/libfips-lib-slh_hash.o", + "crypto/slh_dsa/libfips-lib-slh_hypertree.o", + "crypto/slh_dsa/libfips-lib-slh_params.o", + "crypto/slh_dsa/libfips-lib-slh_wots.o", + "crypto/slh_dsa/libfips-lib-slh_xmss.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, "crypto/sm2" => { "deps" => [ "crypto/sm2/libcrypto-lib-sm2_crypt.o", @@ -9743,6 +11273,38 @@ our %unified_info = ( ] } }, + "crypto/thread" => { + "deps" => [ + "crypto/thread/libcrypto-lib-api.o", + "crypto/thread/libcrypto-lib-arch.o", + "crypto/thread/libcrypto-lib-internal.o", + "crypto/thread/libfips-lib-api.o", + "crypto/thread/libfips-lib-arch.o", + "crypto/thread/libfips-lib-internal.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, + "crypto/thread/arch" => { + "deps" => [ + "crypto/thread/arch/libcrypto-lib-thread_none.o", + "crypto/thread/arch/libcrypto-lib-thread_posix.o", + "crypto/thread/arch/libcrypto-lib-thread_win.o", + "crypto/thread/arch/libfips-lib-thread_none.o", + "crypto/thread/arch/libfips-lib-thread_posix.o", + "crypto/thread/arch/libfips-lib-thread_win.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, "crypto/ts" => { "deps" => [ "crypto/ts/libcrypto-lib-ts_asn1.o", @@ -9809,14 +11371,22 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-pcy_map.o", "crypto/x509/libcrypto-lib-pcy_node.o", "crypto/x509/libcrypto-lib-pcy_tree.o", + "crypto/x509/libcrypto-lib-t_acert.o", "crypto/x509/libcrypto-lib-t_crl.o", "crypto/x509/libcrypto-lib-t_req.o", "crypto/x509/libcrypto-lib-t_x509.o", + "crypto/x509/libcrypto-lib-v3_aaa.o", + "crypto/x509/libcrypto-lib-v3_ac_tgt.o", "crypto/x509/libcrypto-lib-v3_addr.o", "crypto/x509/libcrypto-lib-v3_admis.o", "crypto/x509/libcrypto-lib-v3_akeya.o", "crypto/x509/libcrypto-lib-v3_akid.o", "crypto/x509/libcrypto-lib-v3_asid.o", + "crypto/x509/libcrypto-lib-v3_attrdesc.o", + "crypto/x509/libcrypto-lib-v3_attrmap.o", + "crypto/x509/libcrypto-lib-v3_audit_id.o", + "crypto/x509/libcrypto-lib-v3_authattid.o", + "crypto/x509/libcrypto-lib-v3_battcons.o", "crypto/x509/libcrypto-lib-v3_bcons.o", "crypto/x509/libcrypto-lib-v3_bitst.o", "crypto/x509/libcrypto-lib-v3_conf.o", @@ -9825,12 +11395,17 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_enum.o", "crypto/x509/libcrypto-lib-v3_extku.o", "crypto/x509/libcrypto-lib-v3_genn.o", + "crypto/x509/libcrypto-lib-v3_group_ac.o", "crypto/x509/libcrypto-lib-v3_ia5.o", + "crypto/x509/libcrypto-lib-v3_ind_iss.o", "crypto/x509/libcrypto-lib-v3_info.o", "crypto/x509/libcrypto-lib-v3_int.o", + "crypto/x509/libcrypto-lib-v3_iobo.o", "crypto/x509/libcrypto-lib-v3_ist.o", "crypto/x509/libcrypto-lib-v3_lib.o", "crypto/x509/libcrypto-lib-v3_ncons.o", + "crypto/x509/libcrypto-lib-v3_no_ass.o", + "crypto/x509/libcrypto-lib-v3_no_rev_avail.o", "crypto/x509/libcrypto-lib-v3_pci.o", "crypto/x509/libcrypto-lib-v3_pcia.o", "crypto/x509/libcrypto-lib-v3_pcons.o", @@ -9838,13 +11413,20 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_pmaps.o", "crypto/x509/libcrypto-lib-v3_prn.o", "crypto/x509/libcrypto-lib-v3_purp.o", + "crypto/x509/libcrypto-lib-v3_rolespec.o", "crypto/x509/libcrypto-lib-v3_san.o", + "crypto/x509/libcrypto-lib-v3_sda.o", + "crypto/x509/libcrypto-lib-v3_single_use.o", "crypto/x509/libcrypto-lib-v3_skid.o", + "crypto/x509/libcrypto-lib-v3_soa_id.o", "crypto/x509/libcrypto-lib-v3_sxnet.o", + "crypto/x509/libcrypto-lib-v3_timespec.o", "crypto/x509/libcrypto-lib-v3_tlsf.o", + "crypto/x509/libcrypto-lib-v3_usernotice.o", "crypto/x509/libcrypto-lib-v3_utf8.o", "crypto/x509/libcrypto-lib-v3_utl.o", "crypto/x509/libcrypto-lib-v3err.o", + "crypto/x509/libcrypto-lib-x509_acert.o", "crypto/x509/libcrypto-lib-x509_att.o", "crypto/x509/libcrypto-lib-x509_cmp.o", "crypto/x509/libcrypto-lib-x509_d2.o", @@ -9862,6 +11444,7 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x509_v3.o", "crypto/x509/libcrypto-lib-x509_vfy.o", "crypto/x509/libcrypto-lib-x509_vpm.o", + "crypto/x509/libcrypto-lib-x509aset.o", "crypto/x509/libcrypto-lib-x509cset.o", "crypto/x509/libcrypto-lib-x509name.o", "crypto/x509/libcrypto-lib-x509rset.o", @@ -9871,6 +11454,7 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x_attrib.o", "crypto/x509/libcrypto-lib-x_crl.o", "crypto/x509/libcrypto-lib-x_exten.o", + "crypto/x509/libcrypto-lib-x_ietfatt.o", "crypto/x509/libcrypto-lib-x_name.o", "crypto/x509/libcrypto-lib-x_pubkey.o", "crypto/x509/libcrypto-lib-x_req.o", @@ -9898,6 +11482,7 @@ our %unified_info = ( "fuzz" => { "products" => { "bin" => [ + "fuzz/acert-test", "fuzz/asn1-test", "fuzz/asn1parse-test", "fuzz/bignum-test", @@ -9908,13 +11493,31 @@ our %unified_info = ( "fuzz/conf-test", "fuzz/crl-test", "fuzz/ct-test", + "fuzz/decoder-test", + "fuzz/dtlsclient-test", + "fuzz/dtlsserver-test", + "fuzz/hashtable-test", + "fuzz/ml-dsa-test", + "fuzz/ml-kem-test", + "fuzz/pem-test", + "fuzz/provider-test", + "fuzz/punycode-test", + "fuzz/quic-client-test", + "fuzz/quic-lcidm-test", + "fuzz/quic-rcidm-test", + "fuzz/quic-server-test", + "fuzz/quic-srtm-test", "fuzz/server-test", + "fuzz/slh-dsa-test", + "fuzz/smime-test", + "fuzz/v3name-test", "fuzz/x509-test" ] } }, "providers" => { "deps" => [ + "providers/endecode_test-bin-legacyprov.o", "providers/evp_extra_test-bin-legacyprov.o", "providers/libcrypto-lib-baseprov.o", "providers/libcrypto-lib-defltprov.o", @@ -9924,6 +11527,7 @@ our %unified_info = ( ], "products" => { "bin" => [ + "test/endecode_test", "test/evp_extra_test" ], "dso" => [ @@ -9975,8 +11579,12 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ec_sig.o", "providers/common/der/libcommon-lib-der_ecx_gen.o", "providers/common/der/libcommon-lib-der_ecx_key.o", + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o", + "providers/common/der/libcommon-lib-der_ml_dsa_key.o", "providers/common/der/libcommon-lib-der_rsa_gen.o", "providers/common/der/libcommon-lib-der_rsa_key.o", + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o", + "providers/common/der/libcommon-lib-der_slh_dsa_key.o", "providers/common/der/libcommon-lib-der_wrap_gen.o", "providers/common/der/libdefault-lib-der_rsa_sig.o", "providers/common/der/libdefault-lib-der_sm2_gen.o", @@ -9995,6 +11603,7 @@ our %unified_info = ( "providers/fips" => { "deps" => [ "providers/fips/fips-dso-fips_entry.o", + "providers/fips/libfips-lib-fipsindicator.o", "providers/fips/libfips-lib-fipsprov.o", "providers/fips/libfips-lib-self_test.o", "providers/fips/libfips-lib-self_test_kats.o" @@ -10038,6 +11647,9 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_aes_ccm_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_polyval.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_ocb.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_ocb_hw.o", @@ -10062,7 +11674,13 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_cts.o", "providers/implementations/ciphers/libdefault-lib-cipher_null.o", "providers/implementations/ciphers/libdefault-lib-cipher_sm4.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_sm4_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes_common.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes_default.o", @@ -10159,7 +11777,10 @@ our %unified_info = ( "providers/implementations/encode_decode/libdefault-lib-encode_key2blob.o", "providers/implementations/encode_decode/libdefault-lib-encode_key2ms.o", "providers/implementations/encode_decode/libdefault-lib-encode_key2text.o", - "providers/implementations/encode_decode/libdefault-lib-endecoder_common.o" + "providers/implementations/encode_decode/libdefault-lib-endecoder_common.o", + "providers/implementations/encode_decode/libdefault-lib-ml_common_codecs.o", + "providers/implementations/encode_decode/libdefault-lib-ml_dsa_codecs.o", + "providers/implementations/encode_decode/libdefault-lib-ml_kem_codecs.o" ], "products" => { "lib" => [ @@ -10187,7 +11808,9 @@ our %unified_info = ( }, "providers/implementations/kdfs" => { "deps" => [ + "providers/implementations/kdfs/libdefault-lib-argon2.o", "providers/implementations/kdfs/libdefault-lib-hkdf.o", + "providers/implementations/kdfs/libdefault-lib-hmacdrbg_kdf.o", "providers/implementations/kdfs/libdefault-lib-kbkdf.o", "providers/implementations/kdfs/libdefault-lib-krb5kdf.o", "providers/implementations/kdfs/libdefault-lib-pbkdf2.o", @@ -10206,7 +11829,8 @@ our %unified_info = ( "providers/implementations/kdfs/libfips-lib-sskdf.o", "providers/implementations/kdfs/libfips-lib-tls1_prf.o", "providers/implementations/kdfs/libfips-lib-x942kdf.o", - "providers/implementations/kdfs/liblegacy-lib-pbkdf1.o" + "providers/implementations/kdfs/liblegacy-lib-pbkdf1.o", + "providers/implementations/kdfs/liblegacy-lib-pvkkdf.o" ], "products" => { "lib" => [ @@ -10218,13 +11842,22 @@ our %unified_info = ( }, "providers/implementations/kem" => { "deps" => [ + "providers/implementations/kem/libdefault-lib-ec_kem.o", + "providers/implementations/kem/libdefault-lib-ecx_kem.o", + "providers/implementations/kem/libdefault-lib-kem_util.o", + "providers/implementations/kem/libdefault-lib-ml_kem_kem.o", + "providers/implementations/kem/libdefault-lib-mlx_kem.o", "providers/implementations/kem/libdefault-lib-rsa_kem.o", - "providers/implementations/kem/libfips-lib-rsa_kem.o" + "providers/implementations/kem/libfips-lib-ml_kem_kem.o", + "providers/implementations/kem/libfips-lib-mlx_kem.o", + "providers/implementations/kem/libfips-lib-rsa_kem.o", + "providers/implementations/kem/libtemplate-lib-template_kem.o" ], "products" => { "lib" => [ "providers/libdefault.a", - "providers/libfips.a" + "providers/libfips.a", + "providers/libtemplate.a" ] } }, @@ -10236,19 +11869,29 @@ our %unified_info = ( "providers/implementations/keymgmt/libdefault-lib-ecx_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-kdf_legacy_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-mac_legacy_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-ml_dsa_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-ml_kem_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-mlx_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-rsa_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-slh_dsa_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-dh_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-dsa_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-ec_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-ecx_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-kdf_legacy_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-mac_legacy_kmgmt.o", - "providers/implementations/keymgmt/libfips-lib-rsa_kmgmt.o" + "providers/implementations/keymgmt/libfips-lib-ml_dsa_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-ml_kem_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-mlx_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-rsa_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-slh_dsa_kmgmt.o", + "providers/implementations/keymgmt/libtemplate-lib-template_kmgmt.o" ], "products" => { "lib" => [ "providers/libdefault.a", - "providers/libfips.a" + "providers/libfips.a", + "providers/libtemplate.a" ] } }, @@ -10276,18 +11919,18 @@ our %unified_info = ( }, "providers/implementations/rands" => { "deps" => [ - "providers/implementations/rands/libdefault-lib-crngt.o", "providers/implementations/rands/libdefault-lib-drbg.o", "providers/implementations/rands/libdefault-lib-drbg_ctr.o", "providers/implementations/rands/libdefault-lib-drbg_hash.o", "providers/implementations/rands/libdefault-lib-drbg_hmac.o", "providers/implementations/rands/libdefault-lib-seed_src.o", + "providers/implementations/rands/libdefault-lib-seed_src_jitter.o", "providers/implementations/rands/libdefault-lib-test_rng.o", - "providers/implementations/rands/libfips-lib-crngt.o", "providers/implementations/rands/libfips-lib-drbg.o", "providers/implementations/rands/libfips-lib-drbg_ctr.o", "providers/implementations/rands/libfips-lib-drbg_hash.o", "providers/implementations/rands/libfips-lib-drbg_hmac.o", + "providers/implementations/rands/libfips-lib-fips_crng_test.o", "providers/implementations/rands/libfips-lib-test_rng.o" ], "products" => { @@ -10316,13 +11959,31 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-ecdsa_sig.o", "providers/implementations/signature/libdefault-lib-eddsa_sig.o", "providers/implementations/signature/libdefault-lib-mac_legacy_sig.o", + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o", "providers/implementations/signature/libdefault-lib-rsa_sig.o", + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o", "providers/implementations/signature/libdefault-lib-sm2_sig.o", "providers/implementations/signature/libfips-lib-dsa_sig.o", "providers/implementations/signature/libfips-lib-ecdsa_sig.o", "providers/implementations/signature/libfips-lib-eddsa_sig.o", "providers/implementations/signature/libfips-lib-mac_legacy_sig.o", - "providers/implementations/signature/libfips-lib-rsa_sig.o" + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o", + "providers/implementations/signature/libfips-lib-rsa_sig.o", + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o" + ], + "products" => { + "lib" => [ + "providers/libdefault.a", + "providers/libfips.a" + ] + } + }, + "providers/implementations/skeymgmt" => { + "deps" => [ + "providers/implementations/skeymgmt/libdefault-lib-aes_skmgmt.o", + "providers/implementations/skeymgmt/libdefault-lib-generic.o", + "providers/implementations/skeymgmt/libfips-lib-aes_skmgmt.o", + "providers/implementations/skeymgmt/libfips-lib-generic.o" ], "products" => { "lib" => [ @@ -10334,7 +11995,8 @@ our %unified_info = ( "providers/implementations/storemgmt" => { "deps" => [ "providers/implementations/storemgmt/libdefault-lib-file_store.o", - "providers/implementations/storemgmt/libdefault-lib-file_store_any2obj.o" + "providers/implementations/storemgmt/libdefault-lib-file_store_any2obj.o", + "providers/implementations/storemgmt/libdefault-lib-winstore_store.o" ], "products" => { "lib" => [ @@ -10350,14 +12012,15 @@ our %unified_info = ( "ssl/libssl-lib-d1_srtp.o", "ssl/libssl-lib-methods.o", "ssl/libssl-lib-pqueue.o", + "ssl/libssl-lib-priority_queue.o", "ssl/libssl-lib-s3_enc.o", "ssl/libssl-lib-s3_lib.o", "ssl/libssl-lib-s3_msg.o", "ssl/libssl-lib-ssl_asn1.o", "ssl/libssl-lib-ssl_cert.o", + "ssl/libssl-lib-ssl_cert_comp.o", "ssl/libssl-lib-ssl_ciph.o", "ssl/libssl-lib-ssl_conf.o", - "ssl/libssl-lib-ssl_err.o", "ssl/libssl-lib-ssl_err_legacy.o", "ssl/libssl-lib-ssl_init.o", "ssl/libssl-lib-ssl_lib.o", @@ -10373,32 +12036,107 @@ our %unified_info = ( "ssl/libssl-lib-t1_trce.o", "ssl/libssl-lib-tls13_enc.o", "ssl/libssl-lib-tls_depr.o", - "ssl/libssl-lib-tls_srp.o", - "ssl/libdefault-lib-s3_cbc.o", - "ssl/libfips-lib-s3_cbc.o" + "ssl/libssl-lib-tls_srp.o" ], "products" => { "lib" => [ - "libssl", - "providers/libdefault.a", - "providers/libfips.a" + "libssl" + ] + } + }, + "ssl/quic" => { + "deps" => [ + "ssl/quic/libssl-lib-cc_newreno.o", + "ssl/quic/libssl-lib-json_enc.o", + "ssl/quic/libssl-lib-qlog.o", + "ssl/quic/libssl-lib-qlog_event_helpers.o", + "ssl/quic/libssl-lib-quic_ackm.o", + "ssl/quic/libssl-lib-quic_cfq.o", + "ssl/quic/libssl-lib-quic_channel.o", + "ssl/quic/libssl-lib-quic_demux.o", + "ssl/quic/libssl-lib-quic_engine.o", + "ssl/quic/libssl-lib-quic_fc.o", + "ssl/quic/libssl-lib-quic_fifd.o", + "ssl/quic/libssl-lib-quic_impl.o", + "ssl/quic/libssl-lib-quic_lcidm.o", + "ssl/quic/libssl-lib-quic_method.o", + "ssl/quic/libssl-lib-quic_obj.o", + "ssl/quic/libssl-lib-quic_port.o", + "ssl/quic/libssl-lib-quic_rcidm.o", + "ssl/quic/libssl-lib-quic_reactor.o", + "ssl/quic/libssl-lib-quic_reactor_wait_ctx.o", + "ssl/quic/libssl-lib-quic_record_rx.o", + "ssl/quic/libssl-lib-quic_record_shared.o", + "ssl/quic/libssl-lib-quic_record_tx.o", + "ssl/quic/libssl-lib-quic_record_util.o", + "ssl/quic/libssl-lib-quic_rstream.o", + "ssl/quic/libssl-lib-quic_rx_depack.o", + "ssl/quic/libssl-lib-quic_sf_list.o", + "ssl/quic/libssl-lib-quic_srt_gen.o", + "ssl/quic/libssl-lib-quic_srtm.o", + "ssl/quic/libssl-lib-quic_sstream.o", + "ssl/quic/libssl-lib-quic_statm.o", + "ssl/quic/libssl-lib-quic_stream_map.o", + "ssl/quic/libssl-lib-quic_thread_assist.o", + "ssl/quic/libssl-lib-quic_tls.o", + "ssl/quic/libssl-lib-quic_tls_api.o", + "ssl/quic/libssl-lib-quic_trace.o", + "ssl/quic/libssl-lib-quic_tserver.o", + "ssl/quic/libssl-lib-quic_txp.o", + "ssl/quic/libssl-lib-quic_txpim.o", + "ssl/quic/libssl-lib-quic_types.o", + "ssl/quic/libssl-lib-quic_wire.o", + "ssl/quic/libssl-lib-quic_wire_pkt.o", + "ssl/quic/libssl-lib-uint_set.o" + ], + "products" => { + "lib" => [ + "libssl" ] } }, "ssl/record" => { "deps" => [ - "ssl/record/libssl-lib-dtls1_bitmap.o", "ssl/record/libssl-lib-rec_layer_d1.o", - "ssl/record/libssl-lib-rec_layer_s3.o", - "ssl/record/libssl-lib-ssl3_buffer.o", - "ssl/record/libssl-lib-ssl3_record.o", - "ssl/record/libssl-lib-ssl3_record_tls13.o", - "ssl/record/libcommon-lib-tls_pad.o" + "ssl/record/libssl-lib-rec_layer_s3.o" + ], + "products" => { + "lib" => [ + "libssl" + ] + } + }, + "ssl/record/methods" => { + "deps" => [ + "ssl/record/methods/libssl-lib-dtls_meth.o", + "ssl/record/methods/libssl-lib-ssl3_meth.o", + "ssl/record/methods/libssl-lib-tls13_meth.o", + "ssl/record/methods/libssl-lib-tls1_meth.o", + "ssl/record/methods/libssl-lib-tls_common.o", + "ssl/record/methods/libssl-lib-tls_multib.o", + "ssl/record/methods/libssl-lib-tlsany_meth.o", + "ssl/record/methods/libcommon-lib-tls_pad.o", + "ssl/record/methods/libdefault-lib-ssl3_cbc.o", + "ssl/record/methods/libfips-lib-ssl3_cbc.o" ], "products" => { "lib" => [ "libssl", - "providers/libcommon.a" + "providers/libcommon.a", + "providers/libdefault.a", + "providers/libfips.a" + ] + } + }, + "ssl/rio" => { + "deps" => [ + "ssl/rio/libssl-lib-poll_builder.o", + "ssl/rio/libssl-lib-poll_immediate.o", + "ssl/rio/libssl-lib-rio_notifier.o" + ], + "products" => { + "lib" => [ + "libssl" ] } }, @@ -10436,9 +12174,40 @@ our %unified_info = ( "test/helpers/dtlstest-bin-ssltestlib.o", "test/helpers/endecode_test-bin-predefined_dhparams.o", "test/helpers/fatalerrtest-bin-ssltestlib.o", + "test/helpers/json_test-bin-noisydgrambio.o", + "test/helpers/json_test-bin-pktsplitbio.o", + "test/helpers/json_test-bin-quictestlib.o", + "test/helpers/json_test-bin-ssltestlib.o", + "test/helpers/pkcs12_api_test-bin-pkcs12.o", "test/helpers/pkcs12_format_test-bin-pkcs12.o", + "test/helpers/quic_multistream_test-bin-noisydgrambio.o", + "test/helpers/quic_multistream_test-bin-pktsplitbio.o", + "test/helpers/quic_multistream_test-bin-quictestlib.o", + "test/helpers/quic_multistream_test-bin-ssltestlib.o", + "test/helpers/quic_newcid_test-bin-noisydgrambio.o", + "test/helpers/quic_newcid_test-bin-pktsplitbio.o", + "test/helpers/quic_newcid_test-bin-quictestlib.o", + "test/helpers/quic_newcid_test-bin-ssltestlib.o", + "test/helpers/quic_radix_test-bin-noisydgrambio.o", + "test/helpers/quic_radix_test-bin-pktsplitbio.o", + "test/helpers/quic_radix_test-bin-quictestlib.o", + "test/helpers/quic_radix_test-bin-ssltestlib.o", + "test/helpers/quic_srt_gen_test-bin-noisydgrambio.o", + "test/helpers/quic_srt_gen_test-bin-pktsplitbio.o", + "test/helpers/quic_srt_gen_test-bin-quictestlib.o", + "test/helpers/quic_srt_gen_test-bin-ssltestlib.o", + "test/helpers/quicapitest-bin-noisydgrambio.o", + "test/helpers/quicapitest-bin-pktsplitbio.o", + "test/helpers/quicapitest-bin-quictestlib.o", + "test/helpers/quicapitest-bin-ssltestlib.o", + "test/helpers/quicfaultstest-bin-noisydgrambio.o", + "test/helpers/quicfaultstest-bin-pktsplitbio.o", + "test/helpers/quicfaultstest-bin-quictestlib.o", + "test/helpers/quicfaultstest-bin-ssltestlib.o", "test/helpers/recordlentest-bin-ssltestlib.o", + "test/helpers/rpktest-bin-ssltestlib.o", "test/helpers/servername_test-bin-ssltestlib.o", + "test/helpers/ssl_handshake_rtt_test-bin-ssltestlib.o", "test/helpers/ssl_old_test-bin-predefined_dhparams.o", "test/helpers/ssl_test-bin-handshake.o", "test/helpers/ssl_test-bin-handshake_srp.o", @@ -10447,7 +12216,8 @@ our %unified_info = ( "test/helpers/sslapitest-bin-ssltestlib.o", "test/helpers/sslbuffertest-bin-ssltestlib.o", "test/helpers/sslcorrupttest-bin-ssltestlib.o", - "test/helpers/tls13ccstest-bin-ssltestlib.o" + "test/helpers/tls13ccstest-bin-ssltestlib.o", + "test/helpers/tls13groupselection_test-bin-ssltestlib.o" ], "products" => { "bin" => [ @@ -10465,16 +12235,37 @@ our %unified_info = ( "test/dtlstest", "test/endecode_test", "test/fatalerrtest", + "test/json_test", + "test/pkcs12_api_test", "test/pkcs12_format_test", + "test/quic_multistream_test", + "test/quic_newcid_test", + "test/quic_radix_test", + "test/quic_srt_gen_test", + "test/quicapitest", + "test/quicfaultstest", "test/recordlentest", + "test/rpktest", "test/servername_test", + "test/ssl_handshake_rtt_test", "test/ssl_old_test", "test/ssl_test", "test/ssl_test_ctx_test", "test/sslapitest", "test/sslbuffertest", "test/sslcorrupttest", - "test/tls13ccstest" + "test/tls13ccstest", + "test/tls13groupselection_test" + ] + } + }, + "test/radix" => { + "deps" => [ + "test/radix/quic_radix_test-bin-quic_radix.o" + ], + "products" => { + "bin" => [ + "test/quic_radix_test" ] } }, @@ -10486,6 +12277,7 @@ our %unified_info = ( "test/testutil/libtestutil-lib-driver.o", "test/testutil/libtestutil-lib-fake_random.o", "test/testutil/libtestutil-lib-format_output.o", + "test/testutil/libtestutil-lib-helper.o", "test/testutil/libtestutil-lib-load.o", "test/testutil/libtestutil-lib-main.o", "test/testutil/libtestutil-lib-options.o", @@ -10520,6 +12312,12 @@ our %unified_info = ( } }, "generate" => { + "OpenSSLConfig.cmake" => [ + "exporters/cmake/OpenSSLConfig.cmake.in" + ], + "OpenSSLConfigVersion.cmake" => [ + "exporters/cmake/OpenSSLConfigVersion.cmake.in" + ], "apps/openssl.rc" => [ "util/mkrc.pl", "openssl" @@ -10534,6 +12332,19 @@ our %unified_info = ( "\"-H\"", "\$(APPS_OPENSSL)" ], + "builddata.pm" => [ + "util/mkinstallvars.pl", + "PREFIX=.", + "BINDIR=apps", + "APPLINKDIR=ms", + "LIBDIR=", + "INCLUDEDIR=include", + "\"INCLUDEDIR=\$(SRCDIR)/include\"", + "ENGINESDIR=engines", + "MODULESDIR=providers", + "\"VERSION=\$(VERSION)\"", + "\"LDLIBS=\$(LIB_EX_LIBS)\"" + ], "crypto/aes/aes-586.S" => [ "crypto/aes/asm/aes-586.pl" ], @@ -10555,6 +12366,24 @@ our %unified_info = ( "crypto/aes/aes-ppc.s" => [ "crypto/aes/asm/aes-ppc.pl" ], + "crypto/aes/aes-riscv32-zkn.s" => [ + "crypto/aes/asm/aes-riscv32-zkn.pl" + ], + "crypto/aes/aes-riscv64-zkn.s" => [ + "crypto/aes/asm/aes-riscv64-zkn.pl" + ], + "crypto/aes/aes-riscv64-zvbb-zvkg-zvkned.s" => [ + "crypto/aes/asm/aes-riscv64-zvbb-zvkg-zvkned.pl" + ], + "crypto/aes/aes-riscv64-zvkb-zvkned.s" => [ + "crypto/aes/asm/aes-riscv64-zvkb-zvkned.pl" + ], + "crypto/aes/aes-riscv64-zvkned.s" => [ + "crypto/aes/asm/aes-riscv64-zvkned.pl" + ], + "crypto/aes/aes-riscv64.s" => [ + "crypto/aes/asm/aes-riscv64.pl" + ], "crypto/aes/aes-s390x.S" => [ "crypto/aes/asm/aes-s390x.pl" ], @@ -10582,6 +12411,9 @@ our %unified_info = ( "crypto/aes/aesni-x86_64.s" => [ "crypto/aes/asm/aesni-x86_64.pl" ], + "crypto/aes/aesni-xts-avx512.s" => [ + "crypto/aes/asm/aesni-xts-avx512.pl" + ], "crypto/aes/aesp8-ppc.s" => [ "crypto/aes/asm/aesp8-ppc.pl" ], @@ -10594,12 +12426,18 @@ our %unified_info = ( "crypto/aes/bsaes-armv7.S" => [ "crypto/aes/asm/bsaes-armv7.pl" ], + "crypto/aes/bsaes-armv8.S" => [ + "crypto/aes/asm/bsaes-armv8.pl" + ], "crypto/aes/bsaes-x86_64.s" => [ "crypto/aes/asm/bsaes-x86_64.pl" ], "crypto/aes/vpaes-armv8.S" => [ "crypto/aes/asm/vpaes-armv8.pl" ], + "crypto/aes/vpaes-loongarch64.S" => [ + "crypto/aes/asm/vpaes-loongarch64.pl" + ], "crypto/aes/vpaes-ppc.s" => [ "crypto/aes/asm/vpaes-ppc.pl" ], @@ -10660,15 +12498,33 @@ our %unified_info = ( "crypto/bn/ppc-mont.s" => [ "crypto/bn/asm/ppc-mont.pl" ], + "crypto/bn/ppc64-mont-fixed.s" => [ + "crypto/bn/asm/ppc64-mont-fixed.pl" + ], "crypto/bn/ppc64-mont.s" => [ "crypto/bn/asm/ppc64-mont.pl" ], + "crypto/bn/rsaz-2k-avx512.s" => [ + "crypto/bn/asm/rsaz-2k-avx512.pl" + ], + "crypto/bn/rsaz-2k-avxifma.s" => [ + "crypto/bn/asm/rsaz-2k-avxifma.pl" + ], + "crypto/bn/rsaz-3k-avx512.s" => [ + "crypto/bn/asm/rsaz-3k-avx512.pl" + ], + "crypto/bn/rsaz-3k-avxifma.s" => [ + "crypto/bn/asm/rsaz-3k-avxifma.pl" + ], + "crypto/bn/rsaz-4k-avx512.s" => [ + "crypto/bn/asm/rsaz-4k-avx512.pl" + ], + "crypto/bn/rsaz-4k-avxifma.s" => [ + "crypto/bn/asm/rsaz-4k-avxifma.pl" + ], "crypto/bn/rsaz-avx2.s" => [ "crypto/bn/asm/rsaz-avx2.pl" ], - "crypto/bn/rsaz-avx512.s" => [ - "crypto/bn/asm/rsaz-avx512.pl" - ], "crypto/bn/rsaz-x86_64.s" => [ "crypto/bn/asm/rsaz-x86_64.pl" ], @@ -10730,6 +12586,9 @@ our %unified_info = ( "crypto/chacha/chacha-armv4.S" => [ "crypto/chacha/asm/chacha-armv4.pl" ], + "crypto/chacha/chacha-armv8-sve.S" => [ + "crypto/chacha/asm/chacha-armv8-sve.pl" + ], "crypto/chacha/chacha-armv8.S" => [ "crypto/chacha/asm/chacha-armv8.pl" ], @@ -10742,9 +12601,19 @@ our %unified_info = ( "crypto/chacha/chacha-ia64.s" => [ "crypto/chacha/chacha-ia64.S" ], + "crypto/chacha/chacha-loongarch64.S" => [ + "crypto/chacha/asm/chacha-loongarch64.pl" + ], "crypto/chacha/chacha-ppc.s" => [ "crypto/chacha/asm/chacha-ppc.pl" ], + "crypto/chacha/chacha-riscv64-v-zbb-zvkb.s" => [ + "crypto/chacha/asm/chacha-riscv64-v-zbb.pl", + "zvkb" + ], + "crypto/chacha/chacha-riscv64-v-zbb.s" => [ + "crypto/chacha/asm/chacha-riscv64-v-zbb.pl" + ], "crypto/chacha/chacha-s390x.S" => [ "crypto/chacha/asm/chacha-s390x.pl" ], @@ -10754,6 +12623,9 @@ our %unified_info = ( "crypto/chacha/chacha-x86_64.s" => [ "crypto/chacha/asm/chacha-x86_64.pl" ], + "crypto/chacha/chachap10-ppc.s" => [ + "crypto/chacha/asm/chachap10-ppc.pl" + ], "crypto/des/crypt586.S" => [ "crypto/des/asm/crypt586.pl" ], @@ -10766,6 +12638,9 @@ our %unified_info = ( "crypto/des/dest4-sparcv9.S" => [ "crypto/des/asm/dest4-sparcv9.pl" ], + "crypto/ec/ecp_nistp384-ppc64.s" => [ + "crypto/ec/asm/ecp_nistp384-ppc64.pl" + ], "crypto/ec/ecp_nistp521-ppc64.s" => [ "crypto/ec/asm/ecp_nistp521-ppc64.pl" ], @@ -10790,6 +12665,9 @@ our %unified_info = ( "crypto/ec/ecp_nistz256-x86_64.s" => [ "crypto/ec/asm/ecp_nistz256-x86_64.pl" ], + "crypto/ec/ecp_sm2p256-armv8.S" => [ + "crypto/ec/asm/ecp_sm2p256-armv8.pl" + ], "crypto/ec/x25519-ppc64.s" => [ "crypto/ec/asm/x25519-ppc64.pl" ], @@ -10799,18 +12677,39 @@ our %unified_info = ( "crypto/ia64cpuid.s" => [ "crypto/ia64cpuid.S" ], + "crypto/loongarch64cpuid.s" => [ + "crypto/loongarch64cpuid.pl" + ], "crypto/md5/md5-586.S" => [ "crypto/md5/asm/md5-586.pl" ], + "crypto/md5/md5-aarch64.S" => [ + "crypto/md5/asm/md5-aarch64.pl" + ], + "crypto/md5/md5-loongarch64.S" => [ + "crypto/md5/asm/md5-loongarch64.pl" + ], "crypto/md5/md5-sparcv9.S" => [ "crypto/md5/asm/md5-sparcv9.pl" ], "crypto/md5/md5-x86_64.s" => [ "crypto/md5/asm/md5-x86_64.pl" ], + "crypto/modes/aes-gcm-armv8-unroll8_64.S" => [ + "crypto/modes/asm/aes-gcm-armv8-unroll8_64.pl" + ], "crypto/modes/aes-gcm-armv8_64.S" => [ "crypto/modes/asm/aes-gcm-armv8_64.pl" ], + "crypto/modes/aes-gcm-avx512.s" => [ + "crypto/modes/asm/aes-gcm-avx512.pl" + ], + "crypto/modes/aes-gcm-ppc.s" => [ + "crypto/modes/asm/aes-gcm-ppc.pl" + ], + "crypto/modes/aes-gcm-riscv64-zvkb-zvkg-zvkned.s" => [ + "crypto/modes/asm/aes-gcm-riscv64-zvkb-zvkg-zvkned.pl" + ], "crypto/modes/aesni-gcm-x86_64.s" => [ "crypto/modes/asm/aesni-gcm-x86_64.pl" ], @@ -10829,6 +12728,15 @@ our %unified_info = ( "crypto/modes/ghash-parisc.s" => [ "crypto/modes/asm/ghash-parisc.pl" ], + "crypto/modes/ghash-riscv64-zvkb-zvbc.s" => [ + "crypto/modes/asm/ghash-riscv64-zvkb-zvbc.pl" + ], + "crypto/modes/ghash-riscv64-zvkg.s" => [ + "crypto/modes/asm/ghash-riscv64-zvkg.pl" + ], + "crypto/modes/ghash-riscv64.s" => [ + "crypto/modes/asm/ghash-riscv64.pl" + ], "crypto/modes/ghash-s390x.S" => [ "crypto/modes/asm/ghash-s390x.pl" ], @@ -10847,6 +12755,9 @@ our %unified_info = ( "crypto/modes/ghashv8-armx.S" => [ "crypto/modes/asm/ghashv8-armx.pl" ], + "crypto/params_idx.c" => [ + "crypto/params_idx.c.in" + ], "crypto/pariscid.s" => [ "crypto/pariscid.pl" ], @@ -10907,6 +12818,12 @@ our %unified_info = ( "crypto/ripemd/rmd-586.S" => [ "crypto/ripemd/asm/rmd-586.pl" ], + "crypto/riscv32cpuid.s" => [ + "crypto/riscv32cpuid.pl" + ], + "crypto/riscv64cpuid.s" => [ + "crypto/riscv64cpuid.pl" + ], "crypto/s390xcpuid.S" => [ "crypto/s390xcpuid.pl" ], @@ -11015,6 +12932,9 @@ our %unified_info = ( "crypto/sha/sha256-ppc.s" => [ "crypto/sha/asm/sha512-ppc.pl" ], + "crypto/sha/sha256-riscv64-zvkb-zvknha_or_zvknhb.S" => [ + "crypto/sha/asm/sha256-riscv64-zvkb-zvknha_or_zvknhb.pl" + ], "crypto/sha/sha256-s390x.S" => [ "crypto/sha/asm/sha512-s390x.pl" ], @@ -11051,6 +12971,9 @@ our %unified_info = ( "crypto/sha/sha512-ppc.s" => [ "crypto/sha/asm/sha512-ppc.pl" ], + "crypto/sha/sha512-riscv64-zvkb-zvknhb.S" => [ + "crypto/sha/asm/sha512-riscv64-zvkb-zvknhb.pl" + ], "crypto/sha/sha512-s390x.S" => [ "crypto/sha/asm/sha512-s390x.pl" ], @@ -11063,6 +12986,24 @@ our %unified_info = ( "crypto/sha/sha512p8-ppc.s" => [ "crypto/sha/asm/sha512p8-ppc.pl" ], + "crypto/sm3/sm3-armv8.S" => [ + "crypto/sm3/asm/sm3-armv8.pl" + ], + "crypto/sm3/sm3-riscv64-zvksh.S" => [ + "crypto/sm3/asm/sm3-riscv64-zvksh.pl" + ], + "crypto/sm4/sm4-armv8.S" => [ + "crypto/sm4/asm/sm4-armv8.pl" + ], + "crypto/sm4/sm4-riscv64-zvksed.s" => [ + "crypto/sm4/asm/sm4-riscv64-zvksed.pl" + ], + "crypto/sm4/vpsm4-armv8.S" => [ + "crypto/sm4/asm/vpsm4-armv8.pl" + ], + "crypto/sm4/vpsm4_ex-armv8.S" => [ + "crypto/sm4/asm/vpsm4_ex-armv8.pl" + ], "crypto/uplink-ia64.s" => [ "ms/uplink-ia64.pl" ], @@ -11228,6 +13169,9 @@ our %unified_info = ( "doc/html/man1/openssl-sess_id.html" => [ "doc/man1/openssl-sess_id.pod" ], + "doc/html/man1/openssl-skeyutl.html" => [ + "doc/man1/openssl-skeyutl.pod" + ], "doc/html/man1/openssl-smime.html" => [ "doc/man1/openssl-smime.pod" ], @@ -11369,6 +13313,9 @@ our %unified_info = ( "doc/html/man3/BIO_get_ex_new_index.html" => [ "doc/man3/BIO_get_ex_new_index.pod" ], + "doc/html/man3/BIO_get_rpoll_descriptor.html" => [ + "doc/man3/BIO_get_rpoll_descriptor.pod" + ], "doc/html/man3/BIO_meth_new.html" => [ "doc/man3/BIO_meth_new.pod" ], @@ -11405,6 +13352,9 @@ our %unified_info = ( "doc/html/man3/BIO_s_datagram.html" => [ "doc/man3/BIO_s_datagram.pod" ], + "doc/html/man3/BIO_s_dgram_pair.html" => [ + "doc/man3/BIO_s_dgram_pair.pod" + ], "doc/html/man3/BIO_s_fd.html" => [ "doc/man3/BIO_s_fd.pod" ], @@ -11420,6 +13370,9 @@ our %unified_info = ( "doc/html/man3/BIO_s_socket.html" => [ "doc/man3/BIO_s_socket.pod" ], + "doc/html/man3/BIO_sendmmsg.html" => [ + "doc/man3/BIO_sendmmsg.pod" + ], "doc/html/man3/BIO_set_callback.html" => [ "doc/man3/BIO_set_callback.pod" ], @@ -11492,6 +13445,9 @@ our %unified_info = ( "doc/html/man3/BUF_MEM_new.html" => [ "doc/man3/BUF_MEM_new.pod" ], + "doc/html/man3/CMAC_CTX.html" => [ + "doc/man3/CMAC_CTX.pod" + ], "doc/html/man3/CMS_EncryptedData_decrypt.html" => [ "doc/man3/CMS_EncryptedData_decrypt.pod" ], @@ -11558,6 +13514,9 @@ our %unified_info = ( "doc/html/man3/CMS_verify_receipt.html" => [ "doc/man3/CMS_verify_receipt.pod" ], + "doc/html/man3/COMP_CTX_new.html" => [ + "doc/man3/COMP_CTX_new.pod" + ], "doc/html/man3/CONF_modules_free.html" => [ "doc/man3/CONF_modules_free.pod" ], @@ -11657,6 +13616,12 @@ our %unified_info = ( "doc/html/man3/DTLS_set_timer_cb.html" => [ "doc/man3/DTLS_set_timer_cb.pod" ], + "doc/html/man3/DTLSv1_get_timeout.html" => [ + "doc/man3/DTLSv1_get_timeout.pod" + ], + "doc/html/man3/DTLSv1_handle_timeout.html" => [ + "doc/man3/DTLSv1_handle_timeout.pod" + ], "doc/html/man3/DTLSv1_listen.html" => [ "doc/man3/DTLSv1_listen.pod" ], @@ -11795,6 +13760,9 @@ our %unified_info = ( "doc/html/man3/EVP_PKEY_CTX_get0_pkey.html" => [ "doc/man3/EVP_PKEY_CTX_get0_pkey.pod" ], + "doc/html/man3/EVP_PKEY_CTX_get_algor.html" => [ + "doc/man3/EVP_PKEY_CTX_get_algor.pod" + ], "doc/html/man3/EVP_PKEY_CTX_new.html" => [ "doc/man3/EVP_PKEY_CTX_new.pod" ], @@ -11912,6 +13880,12 @@ our %unified_info = ( "doc/html/man3/EVP_SIGNATURE.html" => [ "doc/man3/EVP_SIGNATURE.pod" ], + "doc/html/man3/EVP_SKEY.html" => [ + "doc/man3/EVP_SKEY.pod" + ], + "doc/html/man3/EVP_SKEYMGMT.html" => [ + "doc/man3/EVP_SKEYMGMT.pod" + ], "doc/html/man3/EVP_SealInit.html" => [ "doc/man3/EVP_SealInit.pod" ], @@ -11999,6 +13973,9 @@ our %unified_info = ( "doc/html/man3/EVP_whirlpool.html" => [ "doc/man3/EVP_whirlpool.pod" ], + "doc/html/man3/GENERAL_NAME.html" => [ + "doc/man3/GENERAL_NAME.pod" + ], "doc/html/man3/HMAC.html" => [ "doc/man3/HMAC.pod" ], @@ -12071,9 +14048,15 @@ our %unified_info = ( "doc/html/man3/OPENSSL_load_builtin_modules.html" => [ "doc/man3/OPENSSL_load_builtin_modules.pod" ], + "doc/html/man3/OPENSSL_load_u16_le.html" => [ + "doc/man3/OPENSSL_load_u16_le.pod" + ], "doc/html/man3/OPENSSL_malloc.html" => [ "doc/man3/OPENSSL_malloc.pod" ], + "doc/html/man3/OPENSSL_riscvcap.html" => [ + "doc/man3/OPENSSL_riscvcap.pod" + ], "doc/html/man3/OPENSSL_s390xcap.html" => [ "doc/man3/OPENSSL_s390xcap.pod" ], @@ -12089,12 +14072,18 @@ our %unified_info = ( "doc/html/man3/OSSL_CALLBACK.html" => [ "doc/man3/OSSL_CALLBACK.pod" ], + "doc/html/man3/OSSL_CMP_ATAV_set0.html" => [ + "doc/man3/OSSL_CMP_ATAV_set0.pod" + ], "doc/html/man3/OSSL_CMP_CTX_new.html" => [ "doc/man3/OSSL_CMP_CTX_new.pod" ], "doc/html/man3/OSSL_CMP_HDR_get0_transactionID.html" => [ "doc/man3/OSSL_CMP_HDR_get0_transactionID.pod" ], + "doc/html/man3/OSSL_CMP_ITAV_new_caCerts.html" => [ + "doc/man3/OSSL_CMP_ITAV_new_caCerts.pod" + ], "doc/html/man3/OSSL_CMP_ITAV_set0.html" => [ "doc/man3/OSSL_CMP_ITAV_set0.pod" ], @@ -12164,9 +14153,18 @@ our %unified_info = ( "doc/html/man3/OSSL_ENCODER_to_bio.html" => [ "doc/man3/OSSL_ENCODER_to_bio.pod" ], + "doc/html/man3/OSSL_ERR_STATE_save.html" => [ + "doc/man3/OSSL_ERR_STATE_save.pod" + ], "doc/html/man3/OSSL_ESS_check_signing_certs.html" => [ "doc/man3/OSSL_ESS_check_signing_certs.pod" ], + "doc/html/man3/OSSL_GENERAL_NAMES_print.html" => [ + "doc/man3/OSSL_GENERAL_NAMES_print.pod" + ], + "doc/html/man3/OSSL_HPKE_CTX_new.html" => [ + "doc/man3/OSSL_HPKE_CTX_new.pod" + ], "doc/html/man3/OSSL_HTTP_REQ_CTX.html" => [ "doc/man3/OSSL_HTTP_REQ_CTX.pod" ], @@ -12176,12 +14174,24 @@ our %unified_info = ( "doc/html/man3/OSSL_HTTP_transfer.html" => [ "doc/man3/OSSL_HTTP_transfer.pod" ], + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX.html" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX.pod" + ], + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX_print.html" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX_print.pod" + ], + "doc/html/man3/OSSL_INDICATOR_set_callback.html" => [ + "doc/man3/OSSL_INDICATOR_set_callback.pod" + ], "doc/html/man3/OSSL_ITEM.html" => [ "doc/man3/OSSL_ITEM.pod" ], "doc/html/man3/OSSL_LIB_CTX.html" => [ "doc/man3/OSSL_LIB_CTX.pod" ], + "doc/html/man3/OSSL_LIB_CTX_set_conf_diagnostics.html" => [ + "doc/man3/OSSL_LIB_CTX_set_conf_diagnostics.pod" + ], "doc/html/man3/OSSL_PARAM.html" => [ "doc/man3/OSSL_PARAM.pod" ], @@ -12197,9 +14207,15 @@ our %unified_info = ( "doc/html/man3/OSSL_PARAM_int.html" => [ "doc/man3/OSSL_PARAM_int.pod" ], + "doc/html/man3/OSSL_PARAM_print_to_bio.html" => [ + "doc/man3/OSSL_PARAM_print_to_bio.pod" + ], "doc/html/man3/OSSL_PROVIDER.html" => [ "doc/man3/OSSL_PROVIDER.pod" ], + "doc/html/man3/OSSL_QUIC_client_method.html" => [ + "doc/man3/OSSL_QUIC_client_method.pod" + ], "doc/html/man3/OSSL_SELF_TEST_new.html" => [ "doc/man3/OSSL_SELF_TEST_new.pod" ], @@ -12224,6 +14240,9 @@ our %unified_info = ( "doc/html/man3/OSSL_STORE_open.html" => [ "doc/man3/OSSL_STORE_open.pod" ], + "doc/html/man3/OSSL_sleep.html" => [ + "doc/man3/OSSL_sleep.pod" + ], "doc/html/man3/OSSL_trace_enabled.html" => [ "doc/man3/OSSL_trace_enabled.pod" ], @@ -12239,6 +14258,9 @@ our %unified_info = ( "doc/html/man3/OpenSSL_version.html" => [ "doc/man3/OpenSSL_version.pod" ], + "doc/html/man3/PBMAC1_get1_pbkdf2_param.html" => [ + "doc/man3/PBMAC1_get1_pbkdf2_param.pod" + ], "doc/html/man3/PEM_X509_INFO_read_bio_ex.html" => [ "doc/man3/PEM_X509_INFO_read_bio_ex.pod" ], @@ -12275,6 +14297,9 @@ our %unified_info = ( "doc/html/man3/PKCS12_SAFEBAG_get1_cert.html" => [ "doc/man3/PKCS12_SAFEBAG_get1_cert.pod" ], + "doc/html/man3/PKCS12_SAFEBAG_set0_attrs.html" => [ + "doc/man3/PKCS12_SAFEBAG_set0_attrs.pod" + ], "doc/html/man3/PKCS12_add1_attr_by_NID.html" => [ "doc/man3/PKCS12_add1_attr_by_NID.pod" ], @@ -12548,6 +14573,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set0_CA_list.html" => [ "doc/man3/SSL_CTX_set0_CA_list.pod" ], + "doc/html/man3/SSL_CTX_set1_cert_comp_preference.html" => [ + "doc/man3/SSL_CTX_set1_cert_comp_preference.pod" + ], "doc/html/man3/SSL_CTX_set1_curves.html" => [ "doc/man3/SSL_CTX_set1_curves.pod" ], @@ -12587,6 +14615,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_default_passwd_cb.html" => [ "doc/man3/SSL_CTX_set_default_passwd_cb.pod" ], + "doc/html/man3/SSL_CTX_set_domain_flags.html" => [ + "doc/man3/SSL_CTX_set_domain_flags.pod" + ], "doc/html/man3/SSL_CTX_set_generate_session_id.html" => [ "doc/man3/SSL_CTX_set_generate_session_id.pod" ], @@ -12608,6 +14639,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_msg_callback.html" => [ "doc/man3/SSL_CTX_set_msg_callback.pod" ], + "doc/html/man3/SSL_CTX_set_new_pending_conn_cb.html" => [ + "doc/man3/SSL_CTX_set_new_pending_conn_cb.pod" + ], "doc/html/man3/SSL_CTX_set_num_tickets.html" => [ "doc/man3/SSL_CTX_set_num_tickets.pod" ], @@ -12722,6 +14756,9 @@ our %unified_info = ( "doc/html/man3/SSL_accept.html" => [ "doc/man3/SSL_accept.pod" ], + "doc/html/man3/SSL_accept_stream.html" => [ + "doc/man3/SSL_accept_stream.pod" + ], "doc/html/man3/SSL_alert_type_string.html" => [ "doc/man3/SSL_alert_type_string.pod" ], @@ -12749,9 +14786,21 @@ our %unified_info = ( "doc/html/man3/SSL_free.html" => [ "doc/man3/SSL_free.pod" ], + "doc/html/man3/SSL_get0_connection.html" => [ + "doc/man3/SSL_get0_connection.pod" + ], + "doc/html/man3/SSL_get0_group_name.html" => [ + "doc/man3/SSL_get0_group_name.pod" + ], + "doc/html/man3/SSL_get0_peer_rpk.html" => [ + "doc/man3/SSL_get0_peer_rpk.pod" + ], "doc/html/man3/SSL_get0_peer_scts.html" => [ "doc/man3/SSL_get0_peer_scts.pod" ], + "doc/html/man3/SSL_get1_builtin_sigalgs.html" => [ + "doc/man3/SSL_get1_builtin_sigalgs.pod" + ], "doc/html/man3/SSL_get_SSL_CTX.html" => [ "doc/man3/SSL_get_SSL_CTX.pod" ], @@ -12767,6 +14816,9 @@ our %unified_info = ( "doc/html/man3/SSL_get_client_random.html" => [ "doc/man3/SSL_get_client_random.pod" ], + "doc/html/man3/SSL_get_conn_close_info.html" => [ + "doc/man3/SSL_get_conn_close_info.pod" + ], "doc/html/man3/SSL_get_current_cipher.html" => [ "doc/man3/SSL_get_current_cipher.pod" ], @@ -12776,12 +14828,18 @@ our %unified_info = ( "doc/html/man3/SSL_get_error.html" => [ "doc/man3/SSL_get_error.pod" ], + "doc/html/man3/SSL_get_event_timeout.html" => [ + "doc/man3/SSL_get_event_timeout.pod" + ], "doc/html/man3/SSL_get_extms_support.html" => [ "doc/man3/SSL_get_extms_support.pod" ], "doc/html/man3/SSL_get_fd.html" => [ "doc/man3/SSL_get_fd.pod" ], + "doc/html/man3/SSL_get_handshake_rtt.html" => [ + "doc/man3/SSL_get_handshake_rtt.pod" + ], "doc/html/man3/SSL_get_peer_cert_chain.html" => [ "doc/man3/SSL_get_peer_cert_chain.pod" ], @@ -12800,12 +14858,24 @@ our %unified_info = ( "doc/html/man3/SSL_get_rbio.html" => [ "doc/man3/SSL_get_rbio.pod" ], + "doc/html/man3/SSL_get_rpoll_descriptor.html" => [ + "doc/man3/SSL_get_rpoll_descriptor.pod" + ], "doc/html/man3/SSL_get_session.html" => [ "doc/man3/SSL_get_session.pod" ], "doc/html/man3/SSL_get_shared_sigalgs.html" => [ "doc/man3/SSL_get_shared_sigalgs.pod" ], + "doc/html/man3/SSL_get_stream_id.html" => [ + "doc/man3/SSL_get_stream_id.pod" + ], + "doc/html/man3/SSL_get_stream_read_state.html" => [ + "doc/man3/SSL_get_stream_read_state.pod" + ], + "doc/html/man3/SSL_get_value_uint.html" => [ + "doc/man3/SSL_get_value_uint.pod" + ], "doc/html/man3/SSL_get_verify_result.html" => [ "doc/man3/SSL_get_verify_result.pod" ], @@ -12815,9 +14885,15 @@ our %unified_info = ( "doc/html/man3/SSL_group_to_name.html" => [ "doc/man3/SSL_group_to_name.pod" ], + "doc/html/man3/SSL_handle_events.html" => [ + "doc/man3/SSL_handle_events.pod" + ], "doc/html/man3/SSL_in_init.html" => [ "doc/man3/SSL_in_init.pod" ], + "doc/html/man3/SSL_inject_net_dgram.html" => [ + "doc/man3/SSL_inject_net_dgram.pod" + ], "doc/html/man3/SSL_key_update.html" => [ "doc/man3/SSL_key_update.pod" ], @@ -12830,9 +14906,21 @@ our %unified_info = ( "doc/html/man3/SSL_new.html" => [ "doc/man3/SSL_new.pod" ], + "doc/html/man3/SSL_new_domain.html" => [ + "doc/man3/SSL_new_domain.pod" + ], + "doc/html/man3/SSL_new_listener.html" => [ + "doc/man3/SSL_new_listener.pod" + ], + "doc/html/man3/SSL_new_stream.html" => [ + "doc/man3/SSL_new_stream.pod" + ], "doc/html/man3/SSL_pending.html" => [ "doc/man3/SSL_pending.pod" ], + "doc/html/man3/SSL_poll.html" => [ + "doc/man3/SSL_poll.pod" + ], "doc/html/man3/SSL_read.html" => [ "doc/man3/SSL_read.pod" ], @@ -12848,24 +14936,45 @@ our %unified_info = ( "doc/html/man3/SSL_set1_host.html" => [ "doc/man3/SSL_set1_host.pod" ], + "doc/html/man3/SSL_set1_initial_peer_addr.html" => [ + "doc/man3/SSL_set1_initial_peer_addr.pod" + ], + "doc/html/man3/SSL_set1_server_cert_type.html" => [ + "doc/man3/SSL_set1_server_cert_type.pod" + ], "doc/html/man3/SSL_set_async_callback.html" => [ "doc/man3/SSL_set_async_callback.pod" ], "doc/html/man3/SSL_set_bio.html" => [ "doc/man3/SSL_set_bio.pod" ], + "doc/html/man3/SSL_set_blocking_mode.html" => [ + "doc/man3/SSL_set_blocking_mode.pod" + ], "doc/html/man3/SSL_set_connect_state.html" => [ "doc/man3/SSL_set_connect_state.pod" ], + "doc/html/man3/SSL_set_default_stream_mode.html" => [ + "doc/man3/SSL_set_default_stream_mode.pod" + ], "doc/html/man3/SSL_set_fd.html" => [ "doc/man3/SSL_set_fd.pod" ], + "doc/html/man3/SSL_set_incoming_stream_policy.html" => [ + "doc/man3/SSL_set_incoming_stream_policy.pod" + ], + "doc/html/man3/SSL_set_quic_tls_cbs.html" => [ + "doc/man3/SSL_set_quic_tls_cbs.pod" + ], "doc/html/man3/SSL_set_retry_verify.html" => [ "doc/man3/SSL_set_retry_verify.pod" ], "doc/html/man3/SSL_set_session.html" => [ "doc/man3/SSL_set_session.pod" ], + "doc/html/man3/SSL_set_session_secret_cb.html" => [ + "doc/man3/SSL_set_session_secret_cb.pod" + ], "doc/html/man3/SSL_set_shutdown.html" => [ "doc/man3/SSL_set_shutdown.pod" ], @@ -12878,6 +14987,12 @@ our %unified_info = ( "doc/html/man3/SSL_state_string.html" => [ "doc/man3/SSL_state_string.pod" ], + "doc/html/man3/SSL_stream_conclude.html" => [ + "doc/man3/SSL_stream_conclude.pod" + ], + "doc/html/man3/SSL_stream_reset.html" => [ + "doc/man3/SSL_stream_reset.pod" + ], "doc/html/man3/SSL_want.html" => [ "doc/man3/SSL_want.pod" ], @@ -12887,8 +15002,8 @@ our %unified_info = ( "doc/html/man3/TS_RESP_CTX_new.html" => [ "doc/man3/TS_RESP_CTX_new.pod" ], - "doc/html/man3/TS_VERIFY_CTX_set_certs.html" => [ - "doc/man3/TS_VERIFY_CTX_set_certs.pod" + "doc/html/man3/TS_VERIFY_CTX.html" => [ + "doc/man3/TS_VERIFY_CTX.pod" ], "doc/html/man3/UI_STRING.html" => [ "doc/man3/UI_STRING.pod" @@ -12908,6 +15023,21 @@ our %unified_info = ( "doc/html/man3/X509V3_set_ctx.html" => [ "doc/man3/X509V3_set_ctx.pod" ], + "doc/html/man3/X509_ACERT_add1_attr.html" => [ + "doc/man3/X509_ACERT_add1_attr.pod" + ], + "doc/html/man3/X509_ACERT_add_attr_nconf.html" => [ + "doc/man3/X509_ACERT_add_attr_nconf.pod" + ], + "doc/html/man3/X509_ACERT_get0_holder_baseCertId.html" => [ + "doc/man3/X509_ACERT_get0_holder_baseCertId.pod" + ], + "doc/html/man3/X509_ACERT_get_attr.html" => [ + "doc/man3/X509_ACERT_get_attr.pod" + ], + "doc/html/man3/X509_ACERT_print_ex.html" => [ + "doc/man3/X509_ACERT_print_ex.pod" + ], "doc/html/man3/X509_ALGOR_dup.html" => [ "doc/man3/X509_ALGOR_dup.pod" ], @@ -12956,6 +15086,9 @@ our %unified_info = ( "doc/html/man3/X509_SIG_get0.html" => [ "doc/man3/X509_SIG_get0.pod" ], + "doc/html/man3/X509_STORE_CTX_get_by_subject.html" => [ + "doc/man3/X509_STORE_CTX_get_by_subject.pod" + ], "doc/html/man3/X509_STORE_CTX_get_error.html" => [ "doc/man3/X509_STORE_CTX_get_error.pod" ], @@ -13022,6 +15155,9 @@ our %unified_info = ( "doc/html/man3/X509_get0_uids.html" => [ "doc/man3/X509_get0_uids.pod" ], + "doc/html/man3/X509_get_default_cert_file.html" => [ + "doc/man3/X509_get_default_cert_file.pod" + ], "doc/html/man3/X509_get_extension_flags.html" => [ "doc/man3/X509_get_extension_flags.pod" ], @@ -13145,9 +15281,15 @@ our %unified_info = ( "doc/html/man7/EVP_CIPHER-SM4.html" => [ "doc/man7/EVP_CIPHER-SM4.pod" ], + "doc/html/man7/EVP_KDF-ARGON2.html" => [ + "doc/man7/EVP_KDF-ARGON2.pod" + ], "doc/html/man7/EVP_KDF-HKDF.html" => [ "doc/man7/EVP_KDF-HKDF.pod" ], + "doc/html/man7/EVP_KDF-HMAC-DRBG.html" => [ + "doc/man7/EVP_KDF-HMAC-DRBG.pod" + ], "doc/html/man7/EVP_KDF-KB.html" => [ "doc/man7/EVP_KDF-KB.pod" ], @@ -13163,6 +15305,9 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-PKCS12KDF.html" => [ "doc/man7/EVP_KDF-PKCS12KDF.pod" ], + "doc/html/man7/EVP_KDF-PVKKDF.html" => [ + "doc/man7/EVP_KDF-PVKKDF.pod" + ], "doc/html/man7/EVP_KDF-SCRYPT.html" => [ "doc/man7/EVP_KDF-SCRYPT.pod" ], @@ -13187,9 +15332,18 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-X963.html" => [ "doc/man7/EVP_KDF-X963.pod" ], + "doc/html/man7/EVP_KEM-EC.html" => [ + "doc/man7/EVP_KEM-EC.pod" + ], + "doc/html/man7/EVP_KEM-ML-KEM.html" => [ + "doc/man7/EVP_KEM-ML-KEM.pod" + ], "doc/html/man7/EVP_KEM-RSA.html" => [ "doc/man7/EVP_KEM-RSA.pod" ], + "doc/html/man7/EVP_KEM-X25519.html" => [ + "doc/man7/EVP_KEM-X25519.pod" + ], "doc/html/man7/EVP_KEYEXCH-DH.html" => [ "doc/man7/EVP_KEYEXCH-DH.pod" ], @@ -13223,6 +15377,9 @@ our %unified_info = ( "doc/html/man7/EVP_MD-BLAKE2.html" => [ "doc/man7/EVP_MD-BLAKE2.pod" ], + "doc/html/man7/EVP_MD-KECCAK.html" => [ + "doc/man7/EVP_MD-KECCAK.pod" + ], "doc/html/man7/EVP_MD-MD2.html" => [ "doc/man7/EVP_MD-MD2.pod" ], @@ -13280,15 +15437,27 @@ our %unified_info = ( "doc/html/man7/EVP_PKEY-HMAC.html" => [ "doc/man7/EVP_PKEY-HMAC.pod" ], + "doc/html/man7/EVP_PKEY-ML-DSA.html" => [ + "doc/man7/EVP_PKEY-ML-DSA.pod" + ], + "doc/html/man7/EVP_PKEY-ML-KEM.html" => [ + "doc/man7/EVP_PKEY-ML-KEM.pod" + ], "doc/html/man7/EVP_PKEY-RSA.html" => [ "doc/man7/EVP_PKEY-RSA.pod" ], + "doc/html/man7/EVP_PKEY-SLH-DSA.html" => [ + "doc/man7/EVP_PKEY-SLH-DSA.pod" + ], "doc/html/man7/EVP_PKEY-SM2.html" => [ "doc/man7/EVP_PKEY-SM2.pod" ], "doc/html/man7/EVP_PKEY-X25519.html" => [ "doc/man7/EVP_PKEY-X25519.pod" ], + "doc/html/man7/EVP_RAND-CRNG-TEST.html" => [ + "doc/man7/EVP_RAND-CRNG-TEST.pod" + ], "doc/html/man7/EVP_RAND-CTR-DRBG.html" => [ "doc/man7/EVP_RAND-CTR-DRBG.pod" ], @@ -13298,6 +15467,9 @@ our %unified_info = ( "doc/html/man7/EVP_RAND-HMAC-DRBG.html" => [ "doc/man7/EVP_RAND-HMAC-DRBG.pod" ], + "doc/html/man7/EVP_RAND-JITTER.html" => [ + "doc/man7/EVP_RAND-JITTER.pod" + ], "doc/html/man7/EVP_RAND-SEED-SRC.html" => [ "doc/man7/EVP_RAND-SEED-SRC.pod" ], @@ -13319,9 +15491,15 @@ our %unified_info = ( "doc/html/man7/EVP_SIGNATURE-HMAC.html" => [ "doc/man7/EVP_SIGNATURE-HMAC.pod" ], + "doc/html/man7/EVP_SIGNATURE-ML-DSA.html" => [ + "doc/man7/EVP_SIGNATURE-ML-DSA.pod" + ], "doc/html/man7/EVP_SIGNATURE-RSA.html" => [ "doc/man7/EVP_SIGNATURE-RSA.pod" ], + "doc/html/man7/EVP_SIGNATURE-SLH-DSA.html" => [ + "doc/man7/EVP_SIGNATURE-SLH-DSA.pod" + ], "doc/html/man7/OSSL_PROVIDER-FIPS.html" => [ "doc/man7/OSSL_PROVIDER-FIPS.pod" ], @@ -13337,6 +15515,9 @@ our %unified_info = ( "doc/html/man7/OSSL_PROVIDER-null.html" => [ "doc/man7/OSSL_PROVIDER-null.pod" ], + "doc/html/man7/OSSL_STORE-winstore.html" => [ + "doc/man7/OSSL_STORE-winstore.pod" + ], "doc/html/man7/RAND.html" => [ "doc/man7/RAND.pod" ], @@ -13349,9 +15530,6 @@ our %unified_info = ( "doc/html/man7/bio.html" => [ "doc/man7/bio.pod" ], - "doc/html/man7/crypto.html" => [ - "doc/man7/crypto.pod" - ], "doc/html/man7/ct.html" => [ "doc/man7/ct.pod" ], @@ -13382,9 +15560,6 @@ our %unified_info = ( "doc/html/man7/life_cycle-rand.html" => [ "doc/man7/life_cycle-rand.pod" ], - "doc/html/man7/migration_guide.html" => [ - "doc/man7/migration_guide.pod" - ], "doc/html/man7/openssl-core.h.html" => [ "doc/man7/openssl-core.h.pod" ], @@ -13400,12 +15575,66 @@ our %unified_info = ( "doc/html/man7/openssl-glossary.html" => [ "doc/man7/openssl-glossary.pod" ], + "doc/html/man7/openssl-qlog.html" => [ + "doc/man7/openssl-qlog.pod" + ], + "doc/html/man7/openssl-quic-concurrency.html" => [ + "doc/man7/openssl-quic-concurrency.pod" + ], + "doc/html/man7/openssl-quic.html" => [ + "doc/man7/openssl-quic.pod" + ], "doc/html/man7/openssl-threads.html" => [ "doc/man7/openssl-threads.pod" ], "doc/html/man7/openssl_user_macros.html" => [ "doc/man7/openssl_user_macros.pod" ], + "doc/html/man7/ossl-guide-introduction.html" => [ + "doc/man7/ossl-guide-introduction.pod" + ], + "doc/html/man7/ossl-guide-libcrypto-introduction.html" => [ + "doc/man7/ossl-guide-libcrypto-introduction.pod" + ], + "doc/html/man7/ossl-guide-libraries-introduction.html" => [ + "doc/man7/ossl-guide-libraries-introduction.pod" + ], + "doc/html/man7/ossl-guide-libssl-introduction.html" => [ + "doc/man7/ossl-guide-libssl-introduction.pod" + ], + "doc/html/man7/ossl-guide-migration.html" => [ + "doc/man7/ossl-guide-migration.pod" + ], + "doc/html/man7/ossl-guide-quic-client-block.html" => [ + "doc/man7/ossl-guide-quic-client-block.pod" + ], + "doc/html/man7/ossl-guide-quic-client-non-block.html" => [ + "doc/man7/ossl-guide-quic-client-non-block.pod" + ], + "doc/html/man7/ossl-guide-quic-introduction.html" => [ + "doc/man7/ossl-guide-quic-introduction.pod" + ], + "doc/html/man7/ossl-guide-quic-multi-stream.html" => [ + "doc/man7/ossl-guide-quic-multi-stream.pod" + ], + "doc/html/man7/ossl-guide-quic-server-block.html" => [ + "doc/man7/ossl-guide-quic-server-block.pod" + ], + "doc/html/man7/ossl-guide-quic-server-non-block.html" => [ + "doc/man7/ossl-guide-quic-server-non-block.pod" + ], + "doc/html/man7/ossl-guide-tls-client-block.html" => [ + "doc/man7/ossl-guide-tls-client-block.pod" + ], + "doc/html/man7/ossl-guide-tls-client-non-block.html" => [ + "doc/man7/ossl-guide-tls-client-non-block.pod" + ], + "doc/html/man7/ossl-guide-tls-introduction.html" => [ + "doc/man7/ossl-guide-tls-introduction.pod" + ], + "doc/html/man7/ossl-guide-tls-server-block.html" => [ + "doc/man7/ossl-guide-tls-server-block.pod" + ], "doc/html/man7/ossl_store-file.html" => [ "doc/man7/ossl_store-file.pod" ], @@ -13460,6 +15689,9 @@ our %unified_info = ( "doc/html/man7/provider-signature.html" => [ "doc/man7/provider-signature.pod" ], + "doc/html/man7/provider-skeymgmt.html" => [ + "doc/man7/provider-skeymgmt.pod" + ], "doc/html/man7/provider-storemgmt.html" => [ "doc/man7/provider-storemgmt.pod" ], @@ -13469,9 +15701,6 @@ our %unified_info = ( "doc/html/man7/proxy-certificates.html" => [ "doc/man7/proxy-certificates.pod" ], - "doc/html/man7/ssl.html" => [ - "doc/man7/ssl.pod" - ], "doc/html/man7/x509.html" => [ "doc/man7/x509.pod" ], @@ -13619,6 +15848,9 @@ our %unified_info = ( "doc/man/man1/openssl-sess_id.1" => [ "doc/man1/openssl-sess_id.pod" ], + "doc/man/man1/openssl-skeyutl.1" => [ + "doc/man1/openssl-skeyutl.pod" + ], "doc/man/man1/openssl-smime.1" => [ "doc/man1/openssl-smime.pod" ], @@ -13760,6 +15992,9 @@ our %unified_info = ( "doc/man/man3/BIO_get_ex_new_index.3" => [ "doc/man3/BIO_get_ex_new_index.pod" ], + "doc/man/man3/BIO_get_rpoll_descriptor.3" => [ + "doc/man3/BIO_get_rpoll_descriptor.pod" + ], "doc/man/man3/BIO_meth_new.3" => [ "doc/man3/BIO_meth_new.pod" ], @@ -13796,6 +16031,9 @@ our %unified_info = ( "doc/man/man3/BIO_s_datagram.3" => [ "doc/man3/BIO_s_datagram.pod" ], + "doc/man/man3/BIO_s_dgram_pair.3" => [ + "doc/man3/BIO_s_dgram_pair.pod" + ], "doc/man/man3/BIO_s_fd.3" => [ "doc/man3/BIO_s_fd.pod" ], @@ -13811,6 +16049,9 @@ our %unified_info = ( "doc/man/man3/BIO_s_socket.3" => [ "doc/man3/BIO_s_socket.pod" ], + "doc/man/man3/BIO_sendmmsg.3" => [ + "doc/man3/BIO_sendmmsg.pod" + ], "doc/man/man3/BIO_set_callback.3" => [ "doc/man3/BIO_set_callback.pod" ], @@ -13883,6 +16124,9 @@ our %unified_info = ( "doc/man/man3/BUF_MEM_new.3" => [ "doc/man3/BUF_MEM_new.pod" ], + "doc/man/man3/CMAC_CTX.3" => [ + "doc/man3/CMAC_CTX.pod" + ], "doc/man/man3/CMS_EncryptedData_decrypt.3" => [ "doc/man3/CMS_EncryptedData_decrypt.pod" ], @@ -13949,6 +16193,9 @@ our %unified_info = ( "doc/man/man3/CMS_verify_receipt.3" => [ "doc/man3/CMS_verify_receipt.pod" ], + "doc/man/man3/COMP_CTX_new.3" => [ + "doc/man3/COMP_CTX_new.pod" + ], "doc/man/man3/CONF_modules_free.3" => [ "doc/man3/CONF_modules_free.pod" ], @@ -14048,6 +16295,12 @@ our %unified_info = ( "doc/man/man3/DTLS_set_timer_cb.3" => [ "doc/man3/DTLS_set_timer_cb.pod" ], + "doc/man/man3/DTLSv1_get_timeout.3" => [ + "doc/man3/DTLSv1_get_timeout.pod" + ], + "doc/man/man3/DTLSv1_handle_timeout.3" => [ + "doc/man3/DTLSv1_handle_timeout.pod" + ], "doc/man/man3/DTLSv1_listen.3" => [ "doc/man3/DTLSv1_listen.pod" ], @@ -14186,6 +16439,9 @@ our %unified_info = ( "doc/man/man3/EVP_PKEY_CTX_get0_pkey.3" => [ "doc/man3/EVP_PKEY_CTX_get0_pkey.pod" ], + "doc/man/man3/EVP_PKEY_CTX_get_algor.3" => [ + "doc/man3/EVP_PKEY_CTX_get_algor.pod" + ], "doc/man/man3/EVP_PKEY_CTX_new.3" => [ "doc/man3/EVP_PKEY_CTX_new.pod" ], @@ -14303,6 +16559,12 @@ our %unified_info = ( "doc/man/man3/EVP_SIGNATURE.3" => [ "doc/man3/EVP_SIGNATURE.pod" ], + "doc/man/man3/EVP_SKEY.3" => [ + "doc/man3/EVP_SKEY.pod" + ], + "doc/man/man3/EVP_SKEYMGMT.3" => [ + "doc/man3/EVP_SKEYMGMT.pod" + ], "doc/man/man3/EVP_SealInit.3" => [ "doc/man3/EVP_SealInit.pod" ], @@ -14390,6 +16652,9 @@ our %unified_info = ( "doc/man/man3/EVP_whirlpool.3" => [ "doc/man3/EVP_whirlpool.pod" ], + "doc/man/man3/GENERAL_NAME.3" => [ + "doc/man3/GENERAL_NAME.pod" + ], "doc/man/man3/HMAC.3" => [ "doc/man3/HMAC.pod" ], @@ -14462,9 +16727,15 @@ our %unified_info = ( "doc/man/man3/OPENSSL_load_builtin_modules.3" => [ "doc/man3/OPENSSL_load_builtin_modules.pod" ], + "doc/man/man3/OPENSSL_load_u16_le.3" => [ + "doc/man3/OPENSSL_load_u16_le.pod" + ], "doc/man/man3/OPENSSL_malloc.3" => [ "doc/man3/OPENSSL_malloc.pod" ], + "doc/man/man3/OPENSSL_riscvcap.3" => [ + "doc/man3/OPENSSL_riscvcap.pod" + ], "doc/man/man3/OPENSSL_s390xcap.3" => [ "doc/man3/OPENSSL_s390xcap.pod" ], @@ -14480,12 +16751,18 @@ our %unified_info = ( "doc/man/man3/OSSL_CALLBACK.3" => [ "doc/man3/OSSL_CALLBACK.pod" ], + "doc/man/man3/OSSL_CMP_ATAV_set0.3" => [ + "doc/man3/OSSL_CMP_ATAV_set0.pod" + ], "doc/man/man3/OSSL_CMP_CTX_new.3" => [ "doc/man3/OSSL_CMP_CTX_new.pod" ], "doc/man/man3/OSSL_CMP_HDR_get0_transactionID.3" => [ "doc/man3/OSSL_CMP_HDR_get0_transactionID.pod" ], + "doc/man/man3/OSSL_CMP_ITAV_new_caCerts.3" => [ + "doc/man3/OSSL_CMP_ITAV_new_caCerts.pod" + ], "doc/man/man3/OSSL_CMP_ITAV_set0.3" => [ "doc/man3/OSSL_CMP_ITAV_set0.pod" ], @@ -14555,9 +16832,18 @@ our %unified_info = ( "doc/man/man3/OSSL_ENCODER_to_bio.3" => [ "doc/man3/OSSL_ENCODER_to_bio.pod" ], + "doc/man/man3/OSSL_ERR_STATE_save.3" => [ + "doc/man3/OSSL_ERR_STATE_save.pod" + ], "doc/man/man3/OSSL_ESS_check_signing_certs.3" => [ "doc/man3/OSSL_ESS_check_signing_certs.pod" ], + "doc/man/man3/OSSL_GENERAL_NAMES_print.3" => [ + "doc/man3/OSSL_GENERAL_NAMES_print.pod" + ], + "doc/man/man3/OSSL_HPKE_CTX_new.3" => [ + "doc/man3/OSSL_HPKE_CTX_new.pod" + ], "doc/man/man3/OSSL_HTTP_REQ_CTX.3" => [ "doc/man3/OSSL_HTTP_REQ_CTX.pod" ], @@ -14567,12 +16853,24 @@ our %unified_info = ( "doc/man/man3/OSSL_HTTP_transfer.3" => [ "doc/man3/OSSL_HTTP_transfer.pod" ], + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX.3" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX.pod" + ], + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX_print.3" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX_print.pod" + ], + "doc/man/man3/OSSL_INDICATOR_set_callback.3" => [ + "doc/man3/OSSL_INDICATOR_set_callback.pod" + ], "doc/man/man3/OSSL_ITEM.3" => [ "doc/man3/OSSL_ITEM.pod" ], "doc/man/man3/OSSL_LIB_CTX.3" => [ "doc/man3/OSSL_LIB_CTX.pod" ], + "doc/man/man3/OSSL_LIB_CTX_set_conf_diagnostics.3" => [ + "doc/man3/OSSL_LIB_CTX_set_conf_diagnostics.pod" + ], "doc/man/man3/OSSL_PARAM.3" => [ "doc/man3/OSSL_PARAM.pod" ], @@ -14588,9 +16886,15 @@ our %unified_info = ( "doc/man/man3/OSSL_PARAM_int.3" => [ "doc/man3/OSSL_PARAM_int.pod" ], + "doc/man/man3/OSSL_PARAM_print_to_bio.3" => [ + "doc/man3/OSSL_PARAM_print_to_bio.pod" + ], "doc/man/man3/OSSL_PROVIDER.3" => [ "doc/man3/OSSL_PROVIDER.pod" ], + "doc/man/man3/OSSL_QUIC_client_method.3" => [ + "doc/man3/OSSL_QUIC_client_method.pod" + ], "doc/man/man3/OSSL_SELF_TEST_new.3" => [ "doc/man3/OSSL_SELF_TEST_new.pod" ], @@ -14615,6 +16919,9 @@ our %unified_info = ( "doc/man/man3/OSSL_STORE_open.3" => [ "doc/man3/OSSL_STORE_open.pod" ], + "doc/man/man3/OSSL_sleep.3" => [ + "doc/man3/OSSL_sleep.pod" + ], "doc/man/man3/OSSL_trace_enabled.3" => [ "doc/man3/OSSL_trace_enabled.pod" ], @@ -14630,6 +16937,9 @@ our %unified_info = ( "doc/man/man3/OpenSSL_version.3" => [ "doc/man3/OpenSSL_version.pod" ], + "doc/man/man3/PBMAC1_get1_pbkdf2_param.3" => [ + "doc/man3/PBMAC1_get1_pbkdf2_param.pod" + ], "doc/man/man3/PEM_X509_INFO_read_bio_ex.3" => [ "doc/man3/PEM_X509_INFO_read_bio_ex.pod" ], @@ -14666,6 +16976,9 @@ our %unified_info = ( "doc/man/man3/PKCS12_SAFEBAG_get1_cert.3" => [ "doc/man3/PKCS12_SAFEBAG_get1_cert.pod" ], + "doc/man/man3/PKCS12_SAFEBAG_set0_attrs.3" => [ + "doc/man3/PKCS12_SAFEBAG_set0_attrs.pod" + ], "doc/man/man3/PKCS12_add1_attr_by_NID.3" => [ "doc/man3/PKCS12_add1_attr_by_NID.pod" ], @@ -14939,6 +17252,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set0_CA_list.3" => [ "doc/man3/SSL_CTX_set0_CA_list.pod" ], + "doc/man/man3/SSL_CTX_set1_cert_comp_preference.3" => [ + "doc/man3/SSL_CTX_set1_cert_comp_preference.pod" + ], "doc/man/man3/SSL_CTX_set1_curves.3" => [ "doc/man3/SSL_CTX_set1_curves.pod" ], @@ -14978,6 +17294,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_default_passwd_cb.3" => [ "doc/man3/SSL_CTX_set_default_passwd_cb.pod" ], + "doc/man/man3/SSL_CTX_set_domain_flags.3" => [ + "doc/man3/SSL_CTX_set_domain_flags.pod" + ], "doc/man/man3/SSL_CTX_set_generate_session_id.3" => [ "doc/man3/SSL_CTX_set_generate_session_id.pod" ], @@ -14999,6 +17318,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_msg_callback.3" => [ "doc/man3/SSL_CTX_set_msg_callback.pod" ], + "doc/man/man3/SSL_CTX_set_new_pending_conn_cb.3" => [ + "doc/man3/SSL_CTX_set_new_pending_conn_cb.pod" + ], "doc/man/man3/SSL_CTX_set_num_tickets.3" => [ "doc/man3/SSL_CTX_set_num_tickets.pod" ], @@ -15113,6 +17435,9 @@ our %unified_info = ( "doc/man/man3/SSL_accept.3" => [ "doc/man3/SSL_accept.pod" ], + "doc/man/man3/SSL_accept_stream.3" => [ + "doc/man3/SSL_accept_stream.pod" + ], "doc/man/man3/SSL_alert_type_string.3" => [ "doc/man3/SSL_alert_type_string.pod" ], @@ -15140,9 +17465,21 @@ our %unified_info = ( "doc/man/man3/SSL_free.3" => [ "doc/man3/SSL_free.pod" ], + "doc/man/man3/SSL_get0_connection.3" => [ + "doc/man3/SSL_get0_connection.pod" + ], + "doc/man/man3/SSL_get0_group_name.3" => [ + "doc/man3/SSL_get0_group_name.pod" + ], + "doc/man/man3/SSL_get0_peer_rpk.3" => [ + "doc/man3/SSL_get0_peer_rpk.pod" + ], "doc/man/man3/SSL_get0_peer_scts.3" => [ "doc/man3/SSL_get0_peer_scts.pod" ], + "doc/man/man3/SSL_get1_builtin_sigalgs.3" => [ + "doc/man3/SSL_get1_builtin_sigalgs.pod" + ], "doc/man/man3/SSL_get_SSL_CTX.3" => [ "doc/man3/SSL_get_SSL_CTX.pod" ], @@ -15158,6 +17495,9 @@ our %unified_info = ( "doc/man/man3/SSL_get_client_random.3" => [ "doc/man3/SSL_get_client_random.pod" ], + "doc/man/man3/SSL_get_conn_close_info.3" => [ + "doc/man3/SSL_get_conn_close_info.pod" + ], "doc/man/man3/SSL_get_current_cipher.3" => [ "doc/man3/SSL_get_current_cipher.pod" ], @@ -15167,12 +17507,18 @@ our %unified_info = ( "doc/man/man3/SSL_get_error.3" => [ "doc/man3/SSL_get_error.pod" ], + "doc/man/man3/SSL_get_event_timeout.3" => [ + "doc/man3/SSL_get_event_timeout.pod" + ], "doc/man/man3/SSL_get_extms_support.3" => [ "doc/man3/SSL_get_extms_support.pod" ], "doc/man/man3/SSL_get_fd.3" => [ "doc/man3/SSL_get_fd.pod" ], + "doc/man/man3/SSL_get_handshake_rtt.3" => [ + "doc/man3/SSL_get_handshake_rtt.pod" + ], "doc/man/man3/SSL_get_peer_cert_chain.3" => [ "doc/man3/SSL_get_peer_cert_chain.pod" ], @@ -15191,12 +17537,24 @@ our %unified_info = ( "doc/man/man3/SSL_get_rbio.3" => [ "doc/man3/SSL_get_rbio.pod" ], + "doc/man/man3/SSL_get_rpoll_descriptor.3" => [ + "doc/man3/SSL_get_rpoll_descriptor.pod" + ], "doc/man/man3/SSL_get_session.3" => [ "doc/man3/SSL_get_session.pod" ], "doc/man/man3/SSL_get_shared_sigalgs.3" => [ "doc/man3/SSL_get_shared_sigalgs.pod" ], + "doc/man/man3/SSL_get_stream_id.3" => [ + "doc/man3/SSL_get_stream_id.pod" + ], + "doc/man/man3/SSL_get_stream_read_state.3" => [ + "doc/man3/SSL_get_stream_read_state.pod" + ], + "doc/man/man3/SSL_get_value_uint.3" => [ + "doc/man3/SSL_get_value_uint.pod" + ], "doc/man/man3/SSL_get_verify_result.3" => [ "doc/man3/SSL_get_verify_result.pod" ], @@ -15206,9 +17564,15 @@ our %unified_info = ( "doc/man/man3/SSL_group_to_name.3" => [ "doc/man3/SSL_group_to_name.pod" ], + "doc/man/man3/SSL_handle_events.3" => [ + "doc/man3/SSL_handle_events.pod" + ], "doc/man/man3/SSL_in_init.3" => [ "doc/man3/SSL_in_init.pod" ], + "doc/man/man3/SSL_inject_net_dgram.3" => [ + "doc/man3/SSL_inject_net_dgram.pod" + ], "doc/man/man3/SSL_key_update.3" => [ "doc/man3/SSL_key_update.pod" ], @@ -15221,9 +17585,21 @@ our %unified_info = ( "doc/man/man3/SSL_new.3" => [ "doc/man3/SSL_new.pod" ], + "doc/man/man3/SSL_new_domain.3" => [ + "doc/man3/SSL_new_domain.pod" + ], + "doc/man/man3/SSL_new_listener.3" => [ + "doc/man3/SSL_new_listener.pod" + ], + "doc/man/man3/SSL_new_stream.3" => [ + "doc/man3/SSL_new_stream.pod" + ], "doc/man/man3/SSL_pending.3" => [ "doc/man3/SSL_pending.pod" ], + "doc/man/man3/SSL_poll.3" => [ + "doc/man3/SSL_poll.pod" + ], "doc/man/man3/SSL_read.3" => [ "doc/man3/SSL_read.pod" ], @@ -15239,24 +17615,45 @@ our %unified_info = ( "doc/man/man3/SSL_set1_host.3" => [ "doc/man3/SSL_set1_host.pod" ], + "doc/man/man3/SSL_set1_initial_peer_addr.3" => [ + "doc/man3/SSL_set1_initial_peer_addr.pod" + ], + "doc/man/man3/SSL_set1_server_cert_type.3" => [ + "doc/man3/SSL_set1_server_cert_type.pod" + ], "doc/man/man3/SSL_set_async_callback.3" => [ "doc/man3/SSL_set_async_callback.pod" ], "doc/man/man3/SSL_set_bio.3" => [ "doc/man3/SSL_set_bio.pod" ], + "doc/man/man3/SSL_set_blocking_mode.3" => [ + "doc/man3/SSL_set_blocking_mode.pod" + ], "doc/man/man3/SSL_set_connect_state.3" => [ "doc/man3/SSL_set_connect_state.pod" ], + "doc/man/man3/SSL_set_default_stream_mode.3" => [ + "doc/man3/SSL_set_default_stream_mode.pod" + ], "doc/man/man3/SSL_set_fd.3" => [ "doc/man3/SSL_set_fd.pod" ], + "doc/man/man3/SSL_set_incoming_stream_policy.3" => [ + "doc/man3/SSL_set_incoming_stream_policy.pod" + ], + "doc/man/man3/SSL_set_quic_tls_cbs.3" => [ + "doc/man3/SSL_set_quic_tls_cbs.pod" + ], "doc/man/man3/SSL_set_retry_verify.3" => [ "doc/man3/SSL_set_retry_verify.pod" ], "doc/man/man3/SSL_set_session.3" => [ "doc/man3/SSL_set_session.pod" ], + "doc/man/man3/SSL_set_session_secret_cb.3" => [ + "doc/man3/SSL_set_session_secret_cb.pod" + ], "doc/man/man3/SSL_set_shutdown.3" => [ "doc/man3/SSL_set_shutdown.pod" ], @@ -15269,6 +17666,12 @@ our %unified_info = ( "doc/man/man3/SSL_state_string.3" => [ "doc/man3/SSL_state_string.pod" ], + "doc/man/man3/SSL_stream_conclude.3" => [ + "doc/man3/SSL_stream_conclude.pod" + ], + "doc/man/man3/SSL_stream_reset.3" => [ + "doc/man3/SSL_stream_reset.pod" + ], "doc/man/man3/SSL_want.3" => [ "doc/man3/SSL_want.pod" ], @@ -15278,8 +17681,8 @@ our %unified_info = ( "doc/man/man3/TS_RESP_CTX_new.3" => [ "doc/man3/TS_RESP_CTX_new.pod" ], - "doc/man/man3/TS_VERIFY_CTX_set_certs.3" => [ - "doc/man3/TS_VERIFY_CTX_set_certs.pod" + "doc/man/man3/TS_VERIFY_CTX.3" => [ + "doc/man3/TS_VERIFY_CTX.pod" ], "doc/man/man3/UI_STRING.3" => [ "doc/man3/UI_STRING.pod" @@ -15293,11 +17696,26 @@ our %unified_info = ( "doc/man/man3/UI_new.3" => [ "doc/man3/UI_new.pod" ], - "doc/man/man3/X509V3_get_d2i.3" => [ - "doc/man3/X509V3_get_d2i.pod" + "doc/man/man3/X509V3_get_d2i.3" => [ + "doc/man3/X509V3_get_d2i.pod" + ], + "doc/man/man3/X509V3_set_ctx.3" => [ + "doc/man3/X509V3_set_ctx.pod" + ], + "doc/man/man3/X509_ACERT_add1_attr.3" => [ + "doc/man3/X509_ACERT_add1_attr.pod" + ], + "doc/man/man3/X509_ACERT_add_attr_nconf.3" => [ + "doc/man3/X509_ACERT_add_attr_nconf.pod" + ], + "doc/man/man3/X509_ACERT_get0_holder_baseCertId.3" => [ + "doc/man3/X509_ACERT_get0_holder_baseCertId.pod" + ], + "doc/man/man3/X509_ACERT_get_attr.3" => [ + "doc/man3/X509_ACERT_get_attr.pod" ], - "doc/man/man3/X509V3_set_ctx.3" => [ - "doc/man3/X509V3_set_ctx.pod" + "doc/man/man3/X509_ACERT_print_ex.3" => [ + "doc/man3/X509_ACERT_print_ex.pod" ], "doc/man/man3/X509_ALGOR_dup.3" => [ "doc/man3/X509_ALGOR_dup.pod" @@ -15347,6 +17765,9 @@ our %unified_info = ( "doc/man/man3/X509_SIG_get0.3" => [ "doc/man3/X509_SIG_get0.pod" ], + "doc/man/man3/X509_STORE_CTX_get_by_subject.3" => [ + "doc/man3/X509_STORE_CTX_get_by_subject.pod" + ], "doc/man/man3/X509_STORE_CTX_get_error.3" => [ "doc/man3/X509_STORE_CTX_get_error.pod" ], @@ -15413,6 +17834,9 @@ our %unified_info = ( "doc/man/man3/X509_get0_uids.3" => [ "doc/man3/X509_get0_uids.pod" ], + "doc/man/man3/X509_get_default_cert_file.3" => [ + "doc/man3/X509_get_default_cert_file.pod" + ], "doc/man/man3/X509_get_extension_flags.3" => [ "doc/man3/X509_get_extension_flags.pod" ], @@ -15536,9 +17960,15 @@ our %unified_info = ( "doc/man/man7/EVP_CIPHER-SM4.7" => [ "doc/man7/EVP_CIPHER-SM4.pod" ], + "doc/man/man7/EVP_KDF-ARGON2.7" => [ + "doc/man7/EVP_KDF-ARGON2.pod" + ], "doc/man/man7/EVP_KDF-HKDF.7" => [ "doc/man7/EVP_KDF-HKDF.pod" ], + "doc/man/man7/EVP_KDF-HMAC-DRBG.7" => [ + "doc/man7/EVP_KDF-HMAC-DRBG.pod" + ], "doc/man/man7/EVP_KDF-KB.7" => [ "doc/man7/EVP_KDF-KB.pod" ], @@ -15554,6 +17984,9 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-PKCS12KDF.7" => [ "doc/man7/EVP_KDF-PKCS12KDF.pod" ], + "doc/man/man7/EVP_KDF-PVKKDF.7" => [ + "doc/man7/EVP_KDF-PVKKDF.pod" + ], "doc/man/man7/EVP_KDF-SCRYPT.7" => [ "doc/man7/EVP_KDF-SCRYPT.pod" ], @@ -15578,9 +18011,18 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-X963.7" => [ "doc/man7/EVP_KDF-X963.pod" ], + "doc/man/man7/EVP_KEM-EC.7" => [ + "doc/man7/EVP_KEM-EC.pod" + ], + "doc/man/man7/EVP_KEM-ML-KEM.7" => [ + "doc/man7/EVP_KEM-ML-KEM.pod" + ], "doc/man/man7/EVP_KEM-RSA.7" => [ "doc/man7/EVP_KEM-RSA.pod" ], + "doc/man/man7/EVP_KEM-X25519.7" => [ + "doc/man7/EVP_KEM-X25519.pod" + ], "doc/man/man7/EVP_KEYEXCH-DH.7" => [ "doc/man7/EVP_KEYEXCH-DH.pod" ], @@ -15614,6 +18056,9 @@ our %unified_info = ( "doc/man/man7/EVP_MD-BLAKE2.7" => [ "doc/man7/EVP_MD-BLAKE2.pod" ], + "doc/man/man7/EVP_MD-KECCAK.7" => [ + "doc/man7/EVP_MD-KECCAK.pod" + ], "doc/man/man7/EVP_MD-MD2.7" => [ "doc/man7/EVP_MD-MD2.pod" ], @@ -15671,15 +18116,27 @@ our %unified_info = ( "doc/man/man7/EVP_PKEY-HMAC.7" => [ "doc/man7/EVP_PKEY-HMAC.pod" ], + "doc/man/man7/EVP_PKEY-ML-DSA.7" => [ + "doc/man7/EVP_PKEY-ML-DSA.pod" + ], + "doc/man/man7/EVP_PKEY-ML-KEM.7" => [ + "doc/man7/EVP_PKEY-ML-KEM.pod" + ], "doc/man/man7/EVP_PKEY-RSA.7" => [ "doc/man7/EVP_PKEY-RSA.pod" ], + "doc/man/man7/EVP_PKEY-SLH-DSA.7" => [ + "doc/man7/EVP_PKEY-SLH-DSA.pod" + ], "doc/man/man7/EVP_PKEY-SM2.7" => [ "doc/man7/EVP_PKEY-SM2.pod" ], "doc/man/man7/EVP_PKEY-X25519.7" => [ "doc/man7/EVP_PKEY-X25519.pod" ], + "doc/man/man7/EVP_RAND-CRNG-TEST.7" => [ + "doc/man7/EVP_RAND-CRNG-TEST.pod" + ], "doc/man/man7/EVP_RAND-CTR-DRBG.7" => [ "doc/man7/EVP_RAND-CTR-DRBG.pod" ], @@ -15689,6 +18146,9 @@ our %unified_info = ( "doc/man/man7/EVP_RAND-HMAC-DRBG.7" => [ "doc/man7/EVP_RAND-HMAC-DRBG.pod" ], + "doc/man/man7/EVP_RAND-JITTER.7" => [ + "doc/man7/EVP_RAND-JITTER.pod" + ], "doc/man/man7/EVP_RAND-SEED-SRC.7" => [ "doc/man7/EVP_RAND-SEED-SRC.pod" ], @@ -15710,9 +18170,15 @@ our %unified_info = ( "doc/man/man7/EVP_SIGNATURE-HMAC.7" => [ "doc/man7/EVP_SIGNATURE-HMAC.pod" ], + "doc/man/man7/EVP_SIGNATURE-ML-DSA.7" => [ + "doc/man7/EVP_SIGNATURE-ML-DSA.pod" + ], "doc/man/man7/EVP_SIGNATURE-RSA.7" => [ "doc/man7/EVP_SIGNATURE-RSA.pod" ], + "doc/man/man7/EVP_SIGNATURE-SLH-DSA.7" => [ + "doc/man7/EVP_SIGNATURE-SLH-DSA.pod" + ], "doc/man/man7/OSSL_PROVIDER-FIPS.7" => [ "doc/man7/OSSL_PROVIDER-FIPS.pod" ], @@ -15728,6 +18194,9 @@ our %unified_info = ( "doc/man/man7/OSSL_PROVIDER-null.7" => [ "doc/man7/OSSL_PROVIDER-null.pod" ], + "doc/man/man7/OSSL_STORE-winstore.7" => [ + "doc/man7/OSSL_STORE-winstore.pod" + ], "doc/man/man7/RAND.7" => [ "doc/man7/RAND.pod" ], @@ -15740,9 +18209,6 @@ our %unified_info = ( "doc/man/man7/bio.7" => [ "doc/man7/bio.pod" ], - "doc/man/man7/crypto.7" => [ - "doc/man7/crypto.pod" - ], "doc/man/man7/ct.7" => [ "doc/man7/ct.pod" ], @@ -15773,9 +18239,6 @@ our %unified_info = ( "doc/man/man7/life_cycle-rand.7" => [ "doc/man7/life_cycle-rand.pod" ], - "doc/man/man7/migration_guide.7" => [ - "doc/man7/migration_guide.pod" - ], "doc/man/man7/openssl-core.h.7" => [ "doc/man7/openssl-core.h.pod" ], @@ -15791,12 +18254,66 @@ our %unified_info = ( "doc/man/man7/openssl-glossary.7" => [ "doc/man7/openssl-glossary.pod" ], + "doc/man/man7/openssl-qlog.7" => [ + "doc/man7/openssl-qlog.pod" + ], + "doc/man/man7/openssl-quic-concurrency.7" => [ + "doc/man7/openssl-quic-concurrency.pod" + ], + "doc/man/man7/openssl-quic.7" => [ + "doc/man7/openssl-quic.pod" + ], "doc/man/man7/openssl-threads.7" => [ "doc/man7/openssl-threads.pod" ], "doc/man/man7/openssl_user_macros.7" => [ "doc/man7/openssl_user_macros.pod" ], + "doc/man/man7/ossl-guide-introduction.7" => [ + "doc/man7/ossl-guide-introduction.pod" + ], + "doc/man/man7/ossl-guide-libcrypto-introduction.7" => [ + "doc/man7/ossl-guide-libcrypto-introduction.pod" + ], + "doc/man/man7/ossl-guide-libraries-introduction.7" => [ + "doc/man7/ossl-guide-libraries-introduction.pod" + ], + "doc/man/man7/ossl-guide-libssl-introduction.7" => [ + "doc/man7/ossl-guide-libssl-introduction.pod" + ], + "doc/man/man7/ossl-guide-migration.7" => [ + "doc/man7/ossl-guide-migration.pod" + ], + "doc/man/man7/ossl-guide-quic-client-block.7" => [ + "doc/man7/ossl-guide-quic-client-block.pod" + ], + "doc/man/man7/ossl-guide-quic-client-non-block.7" => [ + "doc/man7/ossl-guide-quic-client-non-block.pod" + ], + "doc/man/man7/ossl-guide-quic-introduction.7" => [ + "doc/man7/ossl-guide-quic-introduction.pod" + ], + "doc/man/man7/ossl-guide-quic-multi-stream.7" => [ + "doc/man7/ossl-guide-quic-multi-stream.pod" + ], + "doc/man/man7/ossl-guide-quic-server-block.7" => [ + "doc/man7/ossl-guide-quic-server-block.pod" + ], + "doc/man/man7/ossl-guide-quic-server-non-block.7" => [ + "doc/man7/ossl-guide-quic-server-non-block.pod" + ], + "doc/man/man7/ossl-guide-tls-client-block.7" => [ + "doc/man7/ossl-guide-tls-client-block.pod" + ], + "doc/man/man7/ossl-guide-tls-client-non-block.7" => [ + "doc/man7/ossl-guide-tls-client-non-block.pod" + ], + "doc/man/man7/ossl-guide-tls-introduction.7" => [ + "doc/man7/ossl-guide-tls-introduction.pod" + ], + "doc/man/man7/ossl-guide-tls-server-block.7" => [ + "doc/man7/ossl-guide-tls-server-block.pod" + ], "doc/man/man7/ossl_store-file.7" => [ "doc/man7/ossl_store-file.pod" ], @@ -15851,6 +18368,9 @@ our %unified_info = ( "doc/man/man7/provider-signature.7" => [ "doc/man7/provider-signature.pod" ], + "doc/man/man7/provider-skeymgmt.7" => [ + "doc/man7/provider-skeymgmt.pod" + ], "doc/man/man7/provider-storemgmt.7" => [ "doc/man7/provider-storemgmt.pod" ], @@ -15860,9 +18380,6 @@ our %unified_info = ( "doc/man/man7/proxy-certificates.7" => [ "doc/man7/proxy-certificates.pod" ], - "doc/man/man7/ssl.7" => [ - "doc/man7/ssl.pod" - ], "doc/man/man7/x509.7" => [ "doc/man7/x509.pod" ], @@ -15998,6 +18515,9 @@ our %unified_info = ( "doc/man1/openssl-sess_id.pod" => [ "doc/man1/openssl-sess_id.pod.in" ], + "doc/man1/openssl-skeyutl.pod" => [ + "doc/man1/openssl-skeyutl.pod.in" + ], "doc/man1/openssl-smime.pod" => [ "doc/man1/openssl-smime.pod.in" ], @@ -16034,12 +18554,30 @@ our %unified_info = ( "engines/e_padlock-x86_64.s" => [ "engines/asm/e_padlock-x86_64.pl" ], + "exporters/OpenSSLConfig.cmake" => [ + "exporters/cmake/OpenSSLConfig.cmake.in" + ], + "exporters/OpenSSLConfigVersion.cmake" => [ + "exporters/cmake/OpenSSLConfigVersion.cmake.in" + ], + "exporters/libcrypto.pc" => [ + "exporters/pkg-config/libcrypto.pc.in" + ], + "exporters/libssl.pc" => [ + "exporters/pkg-config/libssl.pc.in" + ], + "exporters/openssl.pc" => [ + "exporters/pkg-config/openssl.pc.in" + ], "include/crypto/bn_conf.h" => [ "include/crypto/bn_conf.h.in" ], "include/crypto/dso_conf.h" => [ "include/crypto/dso_conf.h.in" ], + "include/internal/param_names.h" => [ + "include/internal/param_names.h.in" + ], "include/openssl/asn1.h" => [ "include/openssl/asn1.h.in" ], @@ -16055,12 +18593,18 @@ our %unified_info = ( "include/openssl/cms.h" => [ "include/openssl/cms.h.in" ], + "include/openssl/comp.h" => [ + "include/openssl/comp.h.in" + ], "include/openssl/conf.h" => [ "include/openssl/conf.h.in" ], "include/openssl/configuration.h" => [ "include/openssl/configuration.h.in" ], + "include/openssl/core_names.h" => [ + "include/openssl/core_names.h.in" + ], "include/openssl/crmf.h" => [ "include/openssl/crmf.h.in" ], @@ -16109,16 +18653,37 @@ our %unified_info = ( "include/openssl/x509.h" => [ "include/openssl/x509.h.in" ], + "include/openssl/x509_acert.h" => [ + "include/openssl/x509_acert.h.in" + ], "include/openssl/x509_vfy.h" => [ "include/openssl/x509_vfy.h.in" ], "include/openssl/x509v3.h" => [ "include/openssl/x509v3.h.in" ], + "installdata.pm" => [ + "util/mkinstallvars.pl", + "\"PREFIX=\$(INSTALLTOP)\"", + "BINDIR=bin", + "\"LIBDIR=\$(LIBDIR)\"", + "\"libdir=\$(libdir)\"", + "INCLUDEDIR=include", + "APPLINKDIR=include/openssl", + "\"ENGINESDIR=\$(ENGINESDIR)\"", + "\"MODULESDIR=\$(MODULESDIR)\"", + "\"PKGCONFIGDIR=\$(PKGCONFIGDIR)\"", + "\"CMAKECONFIGDIR=\$(CMAKECONFIGDIR)\"", + "\"LDLIBS=\$(LIB_EX_LIBS)\"", + "\"VERSION=\$(VERSION)\"" + ], "libcrypto.ld" => [ "util/libcrypto.num", "libcrypto" ], + "libcrypto.pc" => [ + "exporters/pkg-config/libcrypto.pc.in" + ], "libcrypto.rc" => [ "util/mkrc.pl", "libcrypto" @@ -16127,10 +18692,16 @@ our %unified_info = ( "util/libssl.num", "libssl" ], + "libssl.pc" => [ + "exporters/pkg-config/libssl.pc.in" + ], "libssl.rc" => [ "util/mkrc.pl", "libssl" ], + "openssl.pc" => [ + "exporters/pkg-config/openssl.pc.in" + ], "providers/common/der/der_digests_gen.c" => [ "providers/common/der/der_digests_gen.c.in" ], @@ -16143,9 +18714,15 @@ our %unified_info = ( "providers/common/der/der_ecx_gen.c" => [ "providers/common/der/der_ecx_gen.c.in" ], + "providers/common/der/der_ml_dsa_gen.c" => [ + "providers/common/der/der_ml_dsa_gen.c.in" + ], "providers/common/der/der_rsa_gen.c" => [ "providers/common/der/der_rsa_gen.c.in" ], + "providers/common/der/der_slh_dsa_gen.c" => [ + "providers/common/der/der_slh_dsa_gen.c.in" + ], "providers/common/der/der_sm2_gen.c" => [ "providers/common/der/der_sm2_gen.c.in" ], @@ -16164,9 +18741,15 @@ our %unified_info = ( "providers/common/include/prov/der_ecx.h" => [ "providers/common/include/prov/der_ecx.h.in" ], + "providers/common/include/prov/der_ml_dsa.h" => [ + "providers/common/include/prov/der_ml_dsa.h.in" + ], "providers/common/include/prov/der_rsa.h" => [ "providers/common/include/prov/der_rsa.h.in" ], + "providers/common/include/prov/der_slh_dsa.h" => [ + "providers/common/include/prov/der_slh_dsa.h.in" + ], "providers/common/include/prov/der_sm2.h" => [ "providers/common/include/prov/der_sm2.h.in" ], @@ -16216,6 +18799,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "buffer" ], + "test/buildtest_byteorder.c" => [ + "test/generate_buildtest.pl", + "byteorder" + ], "test/buildtest_camellia.c" => [ "test/generate_buildtest.pl", "camellia" @@ -16248,10 +18835,6 @@ our %unified_info = ( "test/generate_buildtest.pl", "core_dispatch" ], - "test/buildtest_core_names.c" => [ - "test/generate_buildtest.pl", - "core_names" - ], "test/buildtest_core_object.c" => [ "test/generate_buildtest.pl", "core_object" @@ -16284,6 +18867,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "e_os2" ], + "test/buildtest_e_ostime.c" => [ + "test/generate_buildtest.pl", + "e_ostime" + ], "test/buildtest_ebcdic.c" => [ "test/generate_buildtest.pl", "ebcdic" @@ -16320,6 +18907,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "hmac" ], + "test/buildtest_hpke.c" => [ + "test/generate_buildtest.pl", + "hpke" + ], "test/buildtest_http.c" => [ "test/generate_buildtest.pl", "http" @@ -16328,6 +18919,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "idea" ], + "test/buildtest_indicator.c" => [ + "test/generate_buildtest.pl", + "indicator" + ], "test/buildtest_kdf.c" => [ "test/generate_buildtest.pl", "kdf" @@ -16348,6 +18943,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "mdc2" ], + "test/buildtest_ml_kem.c" => [ + "test/generate_buildtest.pl", + "ml_kem" + ], "test/buildtest_modes.c" => [ "test/generate_buildtest.pl", "modes" @@ -16388,6 +18987,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "provider" ], + "test/buildtest_quic.c" => [ + "test/generate_buildtest.pl", + "quic" + ], "test/buildtest_rand.c" => [ "test/generate_buildtest.pl", "rand" @@ -16444,6 +19047,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "symhacks" ], + "test/buildtest_thread.c" => [ + "test/generate_buildtest.pl", + "thread" + ], "test/buildtest_tls1.c" => [ "test/generate_buildtest.pl", "tls1" @@ -16524,6 +19131,7 @@ our %unified_info = ( "doc/html/man1/openssl-s_server.html", "doc/html/man1/openssl-s_time.html", "doc/html/man1/openssl-sess_id.html", + "doc/html/man1/openssl-skeyutl.html", "doc/html/man1/openssl-smime.html", "doc/html/man1/openssl-speed.html", "doc/html/man1/openssl-spkac.html", @@ -16573,6 +19181,7 @@ our %unified_info = ( "doc/html/man3/BIO_find_type.html", "doc/html/man3/BIO_get_data.html", "doc/html/man3/BIO_get_ex_new_index.html", + "doc/html/man3/BIO_get_rpoll_descriptor.html", "doc/html/man3/BIO_meth_new.html", "doc/html/man3/BIO_new.html", "doc/html/man3/BIO_new_CMS.html", @@ -16585,11 +19194,13 @@ our %unified_info = ( "doc/html/man3/BIO_s_connect.html", "doc/html/man3/BIO_s_core.html", "doc/html/man3/BIO_s_datagram.html", + "doc/html/man3/BIO_s_dgram_pair.html", "doc/html/man3/BIO_s_fd.html", "doc/html/man3/BIO_s_file.html", "doc/html/man3/BIO_s_mem.html", "doc/html/man3/BIO_s_null.html", "doc/html/man3/BIO_s_socket.html", + "doc/html/man3/BIO_sendmmsg.html", "doc/html/man3/BIO_set_callback.html", "doc/html/man3/BIO_should_retry.html", "doc/html/man3/BIO_socket_wait.html", @@ -16614,6 +19225,7 @@ our %unified_info = ( "doc/html/man3/BN_swap.html", "doc/html/man3/BN_zero.html", "doc/html/man3/BUF_MEM_new.html", + "doc/html/man3/CMAC_CTX.html", "doc/html/man3/CMS_EncryptedData_decrypt.html", "doc/html/man3/CMS_EncryptedData_encrypt.html", "doc/html/man3/CMS_EnvelopedData_create.html", @@ -16636,6 +19248,7 @@ our %unified_info = ( "doc/html/man3/CMS_uncompress.html", "doc/html/man3/CMS_verify.html", "doc/html/man3/CMS_verify_receipt.html", + "doc/html/man3/COMP_CTX_new.html", "doc/html/man3/CONF_modules_free.html", "doc/html/man3/CONF_modules_load_file.html", "doc/html/man3/CRYPTO_THREAD_run_once.html", @@ -16669,6 +19282,8 @@ our %unified_info = ( "doc/html/man3/DSA_size.html", "doc/html/man3/DTLS_get_data_mtu.html", "doc/html/man3/DTLS_set_timer_cb.html", + "doc/html/man3/DTLSv1_get_timeout.html", + "doc/html/man3/DTLSv1_handle_timeout.html", "doc/html/man3/DTLSv1_listen.html", "doc/html/man3/ECDSA_SIG_new.html", "doc/html/man3/ECDSA_sign.html", @@ -16715,6 +19330,7 @@ our %unified_info = ( "doc/html/man3/EVP_PKEY_CTX_ctrl.html", "doc/html/man3/EVP_PKEY_CTX_get0_libctx.html", "doc/html/man3/EVP_PKEY_CTX_get0_pkey.html", + "doc/html/man3/EVP_PKEY_CTX_get_algor.html", "doc/html/man3/EVP_PKEY_CTX_new.html", "doc/html/man3/EVP_PKEY_CTX_set1_pbe_pass.html", "doc/html/man3/EVP_PKEY_CTX_set_hkdf_md.html", @@ -16754,6 +19370,8 @@ our %unified_info = ( "doc/html/man3/EVP_PKEY_verify_recover.html", "doc/html/man3/EVP_RAND.html", "doc/html/man3/EVP_SIGNATURE.html", + "doc/html/man3/EVP_SKEY.html", + "doc/html/man3/EVP_SKEYMGMT.html", "doc/html/man3/EVP_SealInit.html", "doc/html/man3/EVP_SignInit.html", "doc/html/man3/EVP_VerifyInit.html", @@ -16783,6 +19401,7 @@ our %unified_info = ( "doc/html/man3/EVP_sm3.html", "doc/html/man3/EVP_sm4_cbc.html", "doc/html/man3/EVP_whirlpool.html", + "doc/html/man3/GENERAL_NAME.html", "doc/html/man3/HMAC.html", "doc/html/man3/MD5.html", "doc/html/man3/MDC2_Init.html", @@ -16807,14 +19426,18 @@ our %unified_info = ( "doc/html/man3/OPENSSL_init_ssl.html", "doc/html/man3/OPENSSL_instrument_bus.html", "doc/html/man3/OPENSSL_load_builtin_modules.html", + "doc/html/man3/OPENSSL_load_u16_le.html", "doc/html/man3/OPENSSL_malloc.html", + "doc/html/man3/OPENSSL_riscvcap.html", "doc/html/man3/OPENSSL_s390xcap.html", "doc/html/man3/OPENSSL_secure_malloc.html", "doc/html/man3/OPENSSL_strcasecmp.html", "doc/html/man3/OSSL_ALGORITHM.html", "doc/html/man3/OSSL_CALLBACK.html", + "doc/html/man3/OSSL_CMP_ATAV_set0.html", "doc/html/man3/OSSL_CMP_CTX_new.html", "doc/html/man3/OSSL_CMP_HDR_get0_transactionID.html", + "doc/html/man3/OSSL_CMP_ITAV_new_caCerts.html", "doc/html/man3/OSSL_CMP_ITAV_set0.html", "doc/html/man3/OSSL_CMP_MSG_get0_header.html", "doc/html/man3/OSSL_CMP_MSG_http_perform.html", @@ -16838,18 +19461,27 @@ our %unified_info = ( "doc/html/man3/OSSL_ENCODER_CTX.html", "doc/html/man3/OSSL_ENCODER_CTX_new_for_pkey.html", "doc/html/man3/OSSL_ENCODER_to_bio.html", + "doc/html/man3/OSSL_ERR_STATE_save.html", "doc/html/man3/OSSL_ESS_check_signing_certs.html", + "doc/html/man3/OSSL_GENERAL_NAMES_print.html", + "doc/html/man3/OSSL_HPKE_CTX_new.html", "doc/html/man3/OSSL_HTTP_REQ_CTX.html", "doc/html/man3/OSSL_HTTP_parse_url.html", "doc/html/man3/OSSL_HTTP_transfer.html", + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX.html", + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX_print.html", + "doc/html/man3/OSSL_INDICATOR_set_callback.html", "doc/html/man3/OSSL_ITEM.html", "doc/html/man3/OSSL_LIB_CTX.html", + "doc/html/man3/OSSL_LIB_CTX_set_conf_diagnostics.html", "doc/html/man3/OSSL_PARAM.html", "doc/html/man3/OSSL_PARAM_BLD.html", "doc/html/man3/OSSL_PARAM_allocate_from_text.html", "doc/html/man3/OSSL_PARAM_dup.html", "doc/html/man3/OSSL_PARAM_int.html", + "doc/html/man3/OSSL_PARAM_print_to_bio.html", "doc/html/man3/OSSL_PROVIDER.html", + "doc/html/man3/OSSL_QUIC_client_method.html", "doc/html/man3/OSSL_SELF_TEST_new.html", "doc/html/man3/OSSL_SELF_TEST_set_callback.html", "doc/html/man3/OSSL_STORE_INFO.html", @@ -16858,11 +19490,13 @@ our %unified_info = ( "doc/html/man3/OSSL_STORE_attach.html", "doc/html/man3/OSSL_STORE_expect.html", "doc/html/man3/OSSL_STORE_open.html", + "doc/html/man3/OSSL_sleep.html", "doc/html/man3/OSSL_trace_enabled.html", "doc/html/man3/OSSL_trace_get_category_num.html", "doc/html/man3/OSSL_trace_set_channel.html", "doc/html/man3/OpenSSL_add_all_algorithms.html", "doc/html/man3/OpenSSL_version.html", + "doc/html/man3/PBMAC1_get1_pbkdf2_param.html", "doc/html/man3/PEM_X509_INFO_read_bio_ex.html", "doc/html/man3/PEM_bytes_read_bio.html", "doc/html/man3/PEM_read.html", @@ -16875,6 +19509,7 @@ our %unified_info = ( "doc/html/man3/PKCS12_SAFEBAG_create_cert.html", "doc/html/man3/PKCS12_SAFEBAG_get0_attrs.html", "doc/html/man3/PKCS12_SAFEBAG_get1_cert.html", + "doc/html/man3/PKCS12_SAFEBAG_set0_attrs.html", "doc/html/man3/PKCS12_add1_attr_by_NID.html", "doc/html/man3/PKCS12_add_CSPName_asc.html", "doc/html/man3/PKCS12_add_cert.html", @@ -16966,6 +19601,7 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_sess_set_get_cb.html", "doc/html/man3/SSL_CTX_sessions.html", "doc/html/man3/SSL_CTX_set0_CA_list.html", + "doc/html/man3/SSL_CTX_set1_cert_comp_preference.html", "doc/html/man3/SSL_CTX_set1_curves.html", "doc/html/man3/SSL_CTX_set1_sigalgs.html", "doc/html/man3/SSL_CTX_set1_verify_cert_store.html", @@ -16979,6 +19615,7 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_ct_validation_callback.html", "doc/html/man3/SSL_CTX_set_ctlog_list_file.html", "doc/html/man3/SSL_CTX_set_default_passwd_cb.html", + "doc/html/man3/SSL_CTX_set_domain_flags.html", "doc/html/man3/SSL_CTX_set_generate_session_id.html", "doc/html/man3/SSL_CTX_set_info_callback.html", "doc/html/man3/SSL_CTX_set_keylog_callback.html", @@ -16986,6 +19623,7 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_min_proto_version.html", "doc/html/man3/SSL_CTX_set_mode.html", "doc/html/man3/SSL_CTX_set_msg_callback.html", + "doc/html/man3/SSL_CTX_set_new_pending_conn_cb.html", "doc/html/man3/SSL_CTX_set_num_tickets.html", "doc/html/man3/SSL_CTX_set_options.html", "doc/html/man3/SSL_CTX_set_psk_client_callback.html", @@ -17024,6 +19662,7 @@ our %unified_info = ( "doc/html/man3/SSL_SESSION_print.html", "doc/html/man3/SSL_SESSION_set1_id.html", "doc/html/man3/SSL_accept.html", + "doc/html/man3/SSL_accept_stream.html", "doc/html/man3/SSL_alert_type_string.html", "doc/html/man3/SSL_alloc_buffers.html", "doc/html/man3/SSL_check_chain.html", @@ -17033,59 +19672,90 @@ our %unified_info = ( "doc/html/man3/SSL_export_keying_material.html", "doc/html/man3/SSL_extension_supported.html", "doc/html/man3/SSL_free.html", + "doc/html/man3/SSL_get0_connection.html", + "doc/html/man3/SSL_get0_group_name.html", + "doc/html/man3/SSL_get0_peer_rpk.html", "doc/html/man3/SSL_get0_peer_scts.html", + "doc/html/man3/SSL_get1_builtin_sigalgs.html", "doc/html/man3/SSL_get_SSL_CTX.html", "doc/html/man3/SSL_get_all_async_fds.html", "doc/html/man3/SSL_get_certificate.html", "doc/html/man3/SSL_get_ciphers.html", "doc/html/man3/SSL_get_client_random.html", + "doc/html/man3/SSL_get_conn_close_info.html", "doc/html/man3/SSL_get_current_cipher.html", "doc/html/man3/SSL_get_default_timeout.html", "doc/html/man3/SSL_get_error.html", + "doc/html/man3/SSL_get_event_timeout.html", "doc/html/man3/SSL_get_extms_support.html", "doc/html/man3/SSL_get_fd.html", + "doc/html/man3/SSL_get_handshake_rtt.html", "doc/html/man3/SSL_get_peer_cert_chain.html", "doc/html/man3/SSL_get_peer_certificate.html", "doc/html/man3/SSL_get_peer_signature_nid.html", "doc/html/man3/SSL_get_peer_tmp_key.html", "doc/html/man3/SSL_get_psk_identity.html", "doc/html/man3/SSL_get_rbio.html", + "doc/html/man3/SSL_get_rpoll_descriptor.html", "doc/html/man3/SSL_get_session.html", "doc/html/man3/SSL_get_shared_sigalgs.html", + "doc/html/man3/SSL_get_stream_id.html", + "doc/html/man3/SSL_get_stream_read_state.html", + "doc/html/man3/SSL_get_value_uint.html", "doc/html/man3/SSL_get_verify_result.html", "doc/html/man3/SSL_get_version.html", "doc/html/man3/SSL_group_to_name.html", + "doc/html/man3/SSL_handle_events.html", "doc/html/man3/SSL_in_init.html", + "doc/html/man3/SSL_inject_net_dgram.html", "doc/html/man3/SSL_key_update.html", "doc/html/man3/SSL_library_init.html", "doc/html/man3/SSL_load_client_CA_file.html", "doc/html/man3/SSL_new.html", + "doc/html/man3/SSL_new_domain.html", + "doc/html/man3/SSL_new_listener.html", + "doc/html/man3/SSL_new_stream.html", "doc/html/man3/SSL_pending.html", + "doc/html/man3/SSL_poll.html", "doc/html/man3/SSL_read.html", "doc/html/man3/SSL_read_early_data.html", "doc/html/man3/SSL_rstate_string.html", "doc/html/man3/SSL_session_reused.html", "doc/html/man3/SSL_set1_host.html", + "doc/html/man3/SSL_set1_initial_peer_addr.html", + "doc/html/man3/SSL_set1_server_cert_type.html", "doc/html/man3/SSL_set_async_callback.html", "doc/html/man3/SSL_set_bio.html", + "doc/html/man3/SSL_set_blocking_mode.html", "doc/html/man3/SSL_set_connect_state.html", + "doc/html/man3/SSL_set_default_stream_mode.html", "doc/html/man3/SSL_set_fd.html", + "doc/html/man3/SSL_set_incoming_stream_policy.html", + "doc/html/man3/SSL_set_quic_tls_cbs.html", "doc/html/man3/SSL_set_retry_verify.html", "doc/html/man3/SSL_set_session.html", + "doc/html/man3/SSL_set_session_secret_cb.html", "doc/html/man3/SSL_set_shutdown.html", "doc/html/man3/SSL_set_verify_result.html", "doc/html/man3/SSL_shutdown.html", "doc/html/man3/SSL_state_string.html", + "doc/html/man3/SSL_stream_conclude.html", + "doc/html/man3/SSL_stream_reset.html", "doc/html/man3/SSL_want.html", "doc/html/man3/SSL_write.html", "doc/html/man3/TS_RESP_CTX_new.html", - "doc/html/man3/TS_VERIFY_CTX_set_certs.html", + "doc/html/man3/TS_VERIFY_CTX.html", "doc/html/man3/UI_STRING.html", "doc/html/man3/UI_UTIL_read_pw.html", "doc/html/man3/UI_create_method.html", "doc/html/man3/UI_new.html", "doc/html/man3/X509V3_get_d2i.html", "doc/html/man3/X509V3_set_ctx.html", + "doc/html/man3/X509_ACERT_add1_attr.html", + "doc/html/man3/X509_ACERT_add_attr_nconf.html", + "doc/html/man3/X509_ACERT_get0_holder_baseCertId.html", + "doc/html/man3/X509_ACERT_get_attr.html", + "doc/html/man3/X509_ACERT_print_ex.html", "doc/html/man3/X509_ALGOR_dup.html", "doc/html/man3/X509_ATTRIBUTE.html", "doc/html/man3/X509_CRL_get0_by_serial.html", @@ -17102,6 +19772,7 @@ our %unified_info = ( "doc/html/man3/X509_REQ_get_attr.html", "doc/html/man3/X509_REQ_get_extensions.html", "doc/html/man3/X509_SIG_get0.html", + "doc/html/man3/X509_STORE_CTX_get_by_subject.html", "doc/html/man3/X509_STORE_CTX_get_error.html", "doc/html/man3/X509_STORE_CTX_new.html", "doc/html/man3/X509_STORE_CTX_set_verify_cb.html", @@ -17124,6 +19795,7 @@ our %unified_info = ( "doc/html/man3/X509_get0_notBefore.html", "doc/html/man3/X509_get0_signature.html", "doc/html/man3/X509_get0_uids.html", + "doc/html/man3/X509_get_default_cert_file.html", "doc/html/man3/X509_get_extension_flags.html", "doc/html/man3/X509_get_pubkey.html", "doc/html/man3/X509_get_serialNumber.html", @@ -17169,12 +19841,15 @@ our %unified_info = ( "doc/html/man7/EVP_CIPHER-RC5.html", "doc/html/man7/EVP_CIPHER-SEED.html", "doc/html/man7/EVP_CIPHER-SM4.html", + "doc/html/man7/EVP_KDF-ARGON2.html", "doc/html/man7/EVP_KDF-HKDF.html", + "doc/html/man7/EVP_KDF-HMAC-DRBG.html", "doc/html/man7/EVP_KDF-KB.html", "doc/html/man7/EVP_KDF-KRB5KDF.html", "doc/html/man7/EVP_KDF-PBKDF1.html", "doc/html/man7/EVP_KDF-PBKDF2.html", "doc/html/man7/EVP_KDF-PKCS12KDF.html", + "doc/html/man7/EVP_KDF-PVKKDF.html", "doc/html/man7/EVP_KDF-SCRYPT.html", "doc/html/man7/EVP_KDF-SS.html", "doc/html/man7/EVP_KDF-SSHKDF.html", @@ -17183,7 +19858,10 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-X942-ASN1.html", "doc/html/man7/EVP_KDF-X942-CONCAT.html", "doc/html/man7/EVP_KDF-X963.html", + "doc/html/man7/EVP_KEM-EC.html", + "doc/html/man7/EVP_KEM-ML-KEM.html", "doc/html/man7/EVP_KEM-RSA.html", + "doc/html/man7/EVP_KEM-X25519.html", "doc/html/man7/EVP_KEYEXCH-DH.html", "doc/html/man7/EVP_KEYEXCH-ECDH.html", "doc/html/man7/EVP_KEYEXCH-X25519.html", @@ -17195,6 +19873,7 @@ our %unified_info = ( "doc/html/man7/EVP_MAC-Poly1305.html", "doc/html/man7/EVP_MAC-Siphash.html", "doc/html/man7/EVP_MD-BLAKE2.html", + "doc/html/man7/EVP_MD-KECCAK.html", "doc/html/man7/EVP_MD-MD2.html", "doc/html/man7/EVP_MD-MD4.html", "doc/html/man7/EVP_MD-MD5-SHA1.html", @@ -17214,12 +19893,17 @@ our %unified_info = ( "doc/html/man7/EVP_PKEY-EC.html", "doc/html/man7/EVP_PKEY-FFC.html", "doc/html/man7/EVP_PKEY-HMAC.html", + "doc/html/man7/EVP_PKEY-ML-DSA.html", + "doc/html/man7/EVP_PKEY-ML-KEM.html", "doc/html/man7/EVP_PKEY-RSA.html", + "doc/html/man7/EVP_PKEY-SLH-DSA.html", "doc/html/man7/EVP_PKEY-SM2.html", "doc/html/man7/EVP_PKEY-X25519.html", + "doc/html/man7/EVP_RAND-CRNG-TEST.html", "doc/html/man7/EVP_RAND-CTR-DRBG.html", "doc/html/man7/EVP_RAND-HASH-DRBG.html", "doc/html/man7/EVP_RAND-HMAC-DRBG.html", + "doc/html/man7/EVP_RAND-JITTER.html", "doc/html/man7/EVP_RAND-SEED-SRC.html", "doc/html/man7/EVP_RAND-TEST-RAND.html", "doc/html/man7/EVP_RAND.html", @@ -17227,17 +19911,19 @@ our %unified_info = ( "doc/html/man7/EVP_SIGNATURE-ECDSA.html", "doc/html/man7/EVP_SIGNATURE-ED25519.html", "doc/html/man7/EVP_SIGNATURE-HMAC.html", + "doc/html/man7/EVP_SIGNATURE-ML-DSA.html", "doc/html/man7/EVP_SIGNATURE-RSA.html", + "doc/html/man7/EVP_SIGNATURE-SLH-DSA.html", "doc/html/man7/OSSL_PROVIDER-FIPS.html", "doc/html/man7/OSSL_PROVIDER-base.html", "doc/html/man7/OSSL_PROVIDER-default.html", "doc/html/man7/OSSL_PROVIDER-legacy.html", "doc/html/man7/OSSL_PROVIDER-null.html", + "doc/html/man7/OSSL_STORE-winstore.html", "doc/html/man7/RAND.html", "doc/html/man7/RSA-PSS.html", "doc/html/man7/X25519.html", "doc/html/man7/bio.html", - "doc/html/man7/crypto.html", "doc/html/man7/ct.html", "doc/html/man7/des_modes.html", "doc/html/man7/evp.html", @@ -17248,14 +19934,31 @@ our %unified_info = ( "doc/html/man7/life_cycle-mac.html", "doc/html/man7/life_cycle-pkey.html", "doc/html/man7/life_cycle-rand.html", - "doc/html/man7/migration_guide.html", "doc/html/man7/openssl-core.h.html", "doc/html/man7/openssl-core_dispatch.h.html", "doc/html/man7/openssl-core_names.h.html", "doc/html/man7/openssl-env.html", "doc/html/man7/openssl-glossary.html", + "doc/html/man7/openssl-qlog.html", + "doc/html/man7/openssl-quic-concurrency.html", + "doc/html/man7/openssl-quic.html", "doc/html/man7/openssl-threads.html", "doc/html/man7/openssl_user_macros.html", + "doc/html/man7/ossl-guide-introduction.html", + "doc/html/man7/ossl-guide-libcrypto-introduction.html", + "doc/html/man7/ossl-guide-libraries-introduction.html", + "doc/html/man7/ossl-guide-libssl-introduction.html", + "doc/html/man7/ossl-guide-migration.html", + "doc/html/man7/ossl-guide-quic-client-block.html", + "doc/html/man7/ossl-guide-quic-client-non-block.html", + "doc/html/man7/ossl-guide-quic-introduction.html", + "doc/html/man7/ossl-guide-quic-multi-stream.html", + "doc/html/man7/ossl-guide-quic-server-block.html", + "doc/html/man7/ossl-guide-quic-server-non-block.html", + "doc/html/man7/ossl-guide-tls-client-block.html", + "doc/html/man7/ossl-guide-tls-client-non-block.html", + "doc/html/man7/ossl-guide-tls-introduction.html", + "doc/html/man7/ossl-guide-tls-server-block.html", "doc/html/man7/ossl_store-file.html", "doc/html/man7/ossl_store.html", "doc/html/man7/passphrase-encoding.html", @@ -17274,10 +19977,10 @@ our %unified_info = ( "doc/html/man7/provider-object.html", "doc/html/man7/provider-rand.html", "doc/html/man7/provider-signature.html", + "doc/html/man7/provider-skeymgmt.html", "doc/html/man7/provider-storemgmt.html", "doc/html/man7/provider.html", "doc/html/man7/proxy-certificates.html", - "doc/html/man7/ssl.html", "doc/html/man7/x509.html" ] }, @@ -17292,12 +19995,21 @@ our %unified_info = ( ] }, "includes" => { + "OpenSSLConfig.cmake" => [ + "." + ], + "OpenSSLConfigVersion.cmake" => [ + "." + ], "apps/asn1parse.o" => [ "apps" ], "apps/ca.o" => [ "apps" ], + "apps/ca_internals_test-bin-ca.o" => [ + "apps" + ], "apps/ciphers.o" => [ "apps" ], @@ -17524,6 +20236,9 @@ our %unified_info = ( "apps/openssl-bin-sess_id.o" => [ "apps" ], + "apps/openssl-bin-skeyutl.o" => [ + "apps" + ], "apps/openssl-bin-smime.o" => [ "apps" ], @@ -17611,6 +20326,9 @@ our %unified_info = ( "apps/sess_id.o" => [ "apps" ], + "apps/skeyutl.o" => [ + "apps" + ], "apps/smime.o" => [ "apps" ], @@ -17662,6 +20380,12 @@ our %unified_info = ( "crypto/aes/bsaes-armv7.o" => [ "crypto" ], + "crypto/aes/vpaes-armv8.o" => [ + "crypto" + ], + "crypto/aes/vpaes-loongarch64.o" => [ + "crypto" + ], "crypto/arm64cpuid.o" => [ "crypto" ], @@ -17713,9 +20437,15 @@ our %unified_info = ( "crypto/chacha/chacha-armv4.o" => [ "crypto" ], + "crypto/chacha/chacha-armv8-sve.o" => [ + "crypto" + ], "crypto/chacha/chacha-armv8.o" => [ "crypto" ], + "crypto/chacha/chacha-loongarch64.o" => [ + "crypto" + ], "crypto/chacha/chacha-s390x.o" => [ "crypto" ], @@ -17740,15 +20470,27 @@ our %unified_info = ( "crypto/ec/ecp_s390x_nistp.o" => [ "crypto" ], + "crypto/ec/ecp_sm2p256-armv8.o" => [ + "crypto" + ], + "crypto/ec/ecx_key.o" => [ + "crypto" + ], "crypto/ec/ecx_meth.o" => [ "crypto" ], "crypto/ec/ecx_s390x.o" => [ "crypto" ], + "crypto/ec/libcrypto-lib-ecx_key.o" => [ + "crypto" + ], "crypto/ec/libcrypto-lib-ecx_meth.o" => [ "crypto" ], + "crypto/ec/libfips-lib-ecx_key.o" => [ + "crypto" + ], "crypto/evp/e_aes.o" => [ "crypto", "crypto/modes" @@ -17820,9 +20562,18 @@ our %unified_info = ( "crypto/libfips-lib-cpuid.o" => [ "." ], + "crypto/md5/md5-aarch64.o" => [ + "crypto" + ], + "crypto/md5/md5-loongarch64.o" => [ + "crypto" + ], "crypto/md5/md5-sparcv9.o" => [ "crypto" ], + "crypto/modes/aes-gcm-armv8-unroll8_64.o" => [ + "crypto" + ], "crypto/modes/aes-gcm-armv8_64.o" => [ "crypto" ], @@ -17847,6 +20598,9 @@ our %unified_info = ( "crypto/modes/libfips-lib-gcm128.o" => [ "crypto" ], + "crypto/params_idx.c" => [ + "util/perl" + ], "crypto/poly1305/poly1305-armv4.o" => [ "crypto" ], @@ -17868,6 +20622,9 @@ our %unified_info = ( "crypto/sha/keccak1600-armv4.o" => [ "crypto" ], + "crypto/sha/keccak1600-armv8.o" => [ + "crypto" + ], "crypto/sha/sha1-armv4-large.o" => [ "crypto" ], @@ -17913,6 +20670,18 @@ our %unified_info = ( "crypto/sha/sha512-sparcv9.o" => [ "crypto" ], + "crypto/sm3/sm3-armv8.o" => [ + "crypto" + ], + "crypto/sm4/sm4-armv8.o" => [ + "crypto" + ], + "crypto/sm4/vpsm4-armv8.o" => [ + "crypto" + ], + "crypto/sm4/vpsm4_ex-armv8.o" => [ + "crypto" + ], "doc/man1/openssl-asn1parse.pod" => [ "doc" ], @@ -18045,6 +20814,9 @@ our %unified_info = ( "doc/man1/openssl-sess_id.pod" => [ "doc" ], + "doc/man1/openssl-skeyutl.pod" => [ + "doc" + ], "doc/man1/openssl-smime.pod" => [ "doc" ], @@ -18072,6 +20844,24 @@ our %unified_info = ( "doc/man1/openssl-x509.pod" => [ "doc" ], + "exporters/OpenSSLConfig.cmake" => [ + "." + ], + "exporters/OpenSSLConfigVersion.cmake" => [ + "." + ], + "exporters/libcrypto.pc" => [ + "." + ], + "exporters/libssl.pc" => [ + "." + ], + "exporters/openssl.pc" => [ + "." + ], + "fuzz/acert-test" => [ + "include" + ], "fuzz/asn1-test" => [ "include" ], @@ -18102,12 +20892,69 @@ our %unified_info = ( "fuzz/ct-test" => [ "include" ], + "fuzz/decoder-test" => [ + "include" + ], + "fuzz/dtlsclient-test" => [ + "include" + ], + "fuzz/dtlsserver-test" => [ + "include" + ], + "fuzz/hashtable-test" => [ + "include" + ], + "fuzz/ml-dsa-test" => [ + "include" + ], + "fuzz/ml-kem-test" => [ + "include" + ], + "fuzz/pem-test" => [ + "include" + ], + "fuzz/provider-test" => [ + "include" + ], + "fuzz/punycode-test" => [ + "include" + ], + "fuzz/quic-client-test" => [ + "include" + ], + "fuzz/quic-lcidm-test" => [ + "include" + ], + "fuzz/quic-rcidm-test" => [ + "include" + ], + "fuzz/quic-server-test" => [ + "include" + ], + "fuzz/quic-srtm-test" => [ + "include" + ], "fuzz/server-test" => [ "include" ], + "fuzz/slh-dsa-test" => [ + "include" + ], + "fuzz/smime-test" => [ + "include" + ], + "fuzz/v3name-test" => [ + "include" + ], "fuzz/x509-test" => [ "include" ], + "include/internal/param_names.h" => [ + "util/perl" + ], + "include/openssl/core_names.h" => [ + "util/perl" + ], "libcrypto" => [ ".", "include", @@ -18118,6 +20965,9 @@ our %unified_info = ( ".", "util/perl/OpenSSL" ], + "libcrypto.pc" => [ + "." + ], "libcrypto.rc" => [ "." ], @@ -18129,9 +20979,15 @@ our %unified_info = ( ".", "util/perl/OpenSSL" ], + "libssl.pc" => [ + "." + ], "libssl.rc" => [ "." ], + "openssl.pc" => [ + "." + ], "providers/common/der/der_digests_gen.c" => [ "providers/common/der" ], @@ -18171,6 +21027,15 @@ our %unified_info = ( "providers/common/der/der_ecx_key.o" => [ "providers/common/include/prov" ], + "providers/common/der/der_ml_dsa_gen.c" => [ + "providers/common/der" + ], + "providers/common/der/der_ml_dsa_gen.o" => [ + "providers/common/include/prov" + ], + "providers/common/der/der_ml_dsa_key.o" => [ + "providers/common/include/prov" + ], "providers/common/der/der_rsa_gen.c" => [ "providers/common/der" ], @@ -18183,6 +21048,15 @@ our %unified_info = ( "providers/common/der/der_rsa_sig.o" => [ "providers/common/include/prov" ], + "providers/common/der/der_slh_dsa_gen.c" => [ + "providers/common/der" + ], + "providers/common/der/der_slh_dsa_gen.o" => [ + "providers/common/include/prov" + ], + "providers/common/der/der_slh_dsa_key.o" => [ + "providers/common/include/prov" + ], "providers/common/der/der_sm2_gen.c" => [ "providers/common/der" ], @@ -18228,12 +21102,24 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ecx_key.o" => [ "providers/common/include/prov" ], + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o" => [ + "providers/common/include/prov" + ], + "providers/common/der/libcommon-lib-der_ml_dsa_key.o" => [ + "providers/common/include/prov" + ], "providers/common/der/libcommon-lib-der_rsa_gen.o" => [ "providers/common/include/prov" ], "providers/common/der/libcommon-lib-der_rsa_key.o" => [ "providers/common/include/prov" ], + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o" => [ + "providers/common/include/prov" + ], + "providers/common/der/libcommon-lib-der_slh_dsa_key.o" => [ + "providers/common/include/prov" + ], "providers/common/der/libcommon-lib-der_wrap_gen.o" => [ "providers/common/include/prov" ], @@ -18264,9 +21150,15 @@ our %unified_info = ( "providers/common/include/prov/der_ecx.h" => [ "providers/common/der" ], + "providers/common/include/prov/der_ml_dsa.h" => [ + "providers/common/der" + ], "providers/common/include/prov/der_rsa.h" => [ "providers/common/der" ], + "providers/common/include/prov/der_slh_dsa.h" => [ + "providers/common/der" + ], "providers/common/include/prov/der_sm2.h" => [ "providers/common/der" ], @@ -18309,9 +21201,15 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-eddsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/libdefault-lib-rsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/libdefault-lib-sm2_sig.o" => [ "providers/common/include/prov" ], @@ -18324,12 +21222,24 @@ our %unified_info = ( "providers/implementations/signature/libfips-lib-eddsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/libfips-lib-rsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o" => [ + "providers/common/include/prov" + ], + "providers/implementations/signature/ml_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/rsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/slh_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/sm2_sig.o" => [ "providers/common/include/prov" ], @@ -18342,28 +21252,39 @@ our %unified_info = ( "crypto", "include", "providers/implementations/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" ], "providers/libdefault.a" => [ ".", "crypto", "include", "providers/implementations/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" ], "providers/libfips.a" => [ ".", "crypto", "include", "providers/implementations/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" ], "providers/liblegacy.a" => [ ".", "crypto", "include", "providers/implementations/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" + ], + "providers/libtemplate.a" => [ + "crypto", + "include", + "providers/implementations/include", + "providers/common/include", + "providers/fips/include" ], "test/aborttest" => [ "include", @@ -18432,6 +21353,14 @@ our %unified_info = ( "include", "apps/include" ], + "test/bio_addr_test" => [ + "include", + "apps/include" + ], + "test/bio_base64_test" => [ + "include", + "apps/include" + ], "test/bio_callback_test" => [ "include", "apps/include" @@ -18440,6 +21369,11 @@ our %unified_info = ( "include", "apps/include" ], + "test/bio_dgram_test" => [ + "include", + "apps/include", + "." + ], "test/bio_enc_test" => [ "include", "apps/include" @@ -18448,6 +21382,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/bio_meth_test" => [ + "include", + "apps/include" + ], "test/bio_prefix_text" => [ ".", "include", @@ -18461,6 +21399,11 @@ our %unified_info = ( "include", "apps/include" ], + "test/bio_tfo_test" => [ + "include", + "apps/include", + "." + ], "test/bioprinttest" => [ "include", "apps/include" @@ -18475,6 +21418,9 @@ our %unified_info = ( "include", "apps/include" ], + "test/build_wincrypt_test" => [ + "include" + ], "test/buildtest_c_aes" => [ "include" ], @@ -18490,6 +21436,9 @@ our %unified_info = ( "test/buildtest_c_buffer" => [ "include" ], + "test/buildtest_c_byteorder" => [ + "include" + ], "test/buildtest_c_camellia" => [ "include" ], @@ -18514,9 +21463,6 @@ our %unified_info = ( "test/buildtest_c_core_dispatch" => [ "include" ], - "test/buildtest_c_core_names" => [ - "include" - ], "test/buildtest_c_core_object" => [ "include" ], @@ -18541,6 +21487,9 @@ our %unified_info = ( "test/buildtest_c_e_os2" => [ "include" ], + "test/buildtest_c_e_ostime" => [ + "include" + ], "test/buildtest_c_ebcdic" => [ "include" ], @@ -18568,12 +21517,18 @@ our %unified_info = ( "test/buildtest_c_hmac" => [ "include" ], + "test/buildtest_c_hpke" => [ + "include" + ], "test/buildtest_c_http" => [ "include" ], "test/buildtest_c_idea" => [ "include" ], + "test/buildtest_c_indicator" => [ + "include" + ], "test/buildtest_c_kdf" => [ "include" ], @@ -18589,6 +21544,9 @@ our %unified_info = ( "test/buildtest_c_mdc2" => [ "include" ], + "test/buildtest_c_ml_kem" => [ + "include" + ], "test/buildtest_c_modes" => [ "include" ], @@ -18619,6 +21577,9 @@ our %unified_info = ( "test/buildtest_c_provider" => [ "include" ], + "test/buildtest_c_quic" => [ + "include" + ], "test/buildtest_c_rand" => [ "include" ], @@ -18661,6 +21622,9 @@ our %unified_info = ( "test/buildtest_c_symhacks" => [ "include" ], + "test/buildtest_c_thread" => [ + "include" + ], "test/buildtest_c_tls1" => [ "include" ], @@ -18676,10 +21640,24 @@ our %unified_info = ( "test/buildtest_c_whrlpool" => [ "include" ], + "test/byteorder_test" => [ + "include", + "apps/include" + ], + "test/ca_internals_test" => [ + ".", + "include", + "apps/include" + ], "test/casttest" => [ "include", "apps/include" ], + "test/cert_comp_test" => [ + "include", + "apps/include", + "." + ], "test/chacha_internal_test" => [ ".", "include", @@ -18803,6 +21781,11 @@ our %unified_info = ( "include", "apps/include" ], + "test/decoder_propq_test" => [ + ".", + "include", + "apps/include" + ], "test/defltfips_test" => [ "include", "apps/include" @@ -18818,7 +21801,8 @@ our %unified_info = ( "test/drbgtest" => [ "include", "apps/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" ], "test/dsa_no_digest_size_test" => [ "include", @@ -18861,7 +21845,9 @@ our %unified_info = ( "test/endecode_test" => [ ".", "include", - "apps/include" + "apps/include", + "providers/common/include", + "providers/implementations/include" ], "test/endecoder_legacy_test" => [ ".", @@ -18906,6 +21892,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/evp_pkey_dhkem_test" => [ + "include", + "apps/include" + ], "test/evp_pkey_dparams_test" => [ "include", "apps/include" @@ -18914,10 +21904,18 @@ our %unified_info = ( "include", "apps/include" ], + "test/evp_skey_test" => [ + "include", + "apps/include" + ], "test/evp_test" => [ "include", "apps/include" ], + "test/evp_xof_test" => [ + "include", + "apps/include" + ], "test/exdatatest" => [ "include", "apps/include" @@ -19018,22 +22016,62 @@ our %unified_info = ( ".", "include" ], + "test/helpers/json_test-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/helpers/pkcs12.o" => [ ".", "include" ], + "test/helpers/pkcs12_api_test-bin-pkcs12.o" => [ + ".", + "include" + ], "test/helpers/pkcs12_format_test-bin-pkcs12.o" => [ ".", "include" ], + "test/helpers/quic_multistream_test-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quic_newcid_test-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quic_radix_test-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quic_srt_gen_test-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quicapitest-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quicfaultstest-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/helpers/recordlentest-bin-ssltestlib.o" => [ ".", "include" ], + "test/helpers/rpktest-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/helpers/servername_test-bin-ssltestlib.o" => [ ".", "include" ], + "test/helpers/ssl_handshake_rtt_test-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/helpers/ssl_test-bin-handshake.o" => [ ".", "include" @@ -19067,6 +22105,10 @@ our %unified_info = ( ".", "include" ], + "test/helpers/tls13groupselection_test-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/hexstr_test" => [ ".", "include", @@ -19076,6 +22118,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/hpke_test" => [ + "include", + "apps/include" + ], "test/http_test" => [ "include", "apps/include" @@ -19088,6 +22134,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/json_test" => [ + "include", + "apps/include" + ], "test/keymgmt_internal_test" => [ ".", "include", @@ -19102,6 +22152,10 @@ our %unified_info = ( "apps/include", "." ], + "test/list_test" => [ + "include", + "apps/include" + ], "test/localetest" => [ "include", "apps/include" @@ -19115,10 +22169,27 @@ our %unified_info = ( "include", "apps/include" ], + "test/membio_test" => [ + "include", + "apps/include", + "." + ], "test/memleaktest" => [ "include", "apps/include" ], + "test/ml_dsa_test" => [ + "include", + "apps/include" + ], + "test/ml_kem_evp_extra_test" => [ + "include", + "apps/include" + ], + "test/ml_kem_internal_test" => [ + "include", + "apps/include" + ], "test/modes_internal_test" => [ ".", "include", @@ -19153,6 +22224,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/pairwise_fail_test" => [ + "include", + "apps/include" + ], "test/param_build_test" => [ "include", "apps/include" @@ -19186,6 +22261,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/pkcs12_api_test" => [ + "include", + "apps/include" + ], "test/pkcs12_format_test" => [ "include", "apps/include" @@ -19207,6 +22286,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/priority_queue_test" => [ + "include", + "apps/include" + ], "test/property_test" => [ ".", "include", @@ -19220,6 +22303,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/provider_default_search_path_test" => [ + "include", + "apps/include" + ], "test/provider_fallback_test" => [ "include", "apps/include" @@ -19246,6 +22333,97 @@ our %unified_info = ( "include", "apps/include" ], + "test/quic_ackm_test" => [ + "include", + "apps/include" + ], + "test/quic_cc_test" => [ + "include", + "apps/include" + ], + "test/quic_cfq_test" => [ + "include", + "apps/include" + ], + "test/quic_client_test" => [ + "include", + "apps/include" + ], + "test/quic_fc_test" => [ + "include", + "apps/include" + ], + "test/quic_fifd_test" => [ + "include", + "apps/include" + ], + "test/quic_lcidm_test" => [ + "include", + "apps/include" + ], + "test/quic_multistream_test" => [ + "include", + "apps/include" + ], + "test/quic_newcid_test" => [ + "include", + "apps/include", + "." + ], + "test/quic_qlog_test" => [ + "include", + "apps/include" + ], + "test/quic_radix_test" => [ + "include", + "apps/include" + ], + "test/quic_rcidm_test" => [ + "include", + "apps/include" + ], + "test/quic_record_test" => [ + "include", + "apps/include" + ], + "test/quic_srt_gen_test" => [ + "include", + "apps/include", + "." + ], + "test/quic_srtm_test" => [ + "include", + "apps/include" + ], + "test/quic_stream_test" => [ + "include", + "apps/include" + ], + "test/quic_tserver_test" => [ + "include", + "apps/include" + ], + "test/quic_txp_test" => [ + "include", + "apps/include" + ], + "test/quic_txpim_test" => [ + "include", + "apps/include" + ], + "test/quic_wire_test" => [ + "include", + "apps/include" + ], + "test/quicapitest" => [ + "include", + "apps/include" + ], + "test/quicfaultstest" => [ + "include", + "apps/include", + "." + ], "test/rand_status_test" => [ "include", "apps/include" @@ -19266,14 +22444,20 @@ our %unified_info = ( "include", "apps/include" ], - "test/rdrand_sanitytest" => [ + "test/rdcpu_sanitytest" => [ "include", - "apps/include" + "apps/include", + "crypto" ], "test/recordlentest" => [ "include", "apps/include" ], + "test/rpktest" => [ + "include", + "apps/include", + "." + ], "test/rsa_complex" => [ "include", "apps/include" @@ -19292,6 +22476,15 @@ our %unified_info = ( "include", "apps/include" ], + "test/rsa_x931_test" => [ + ".", + "include", + "apps/include" + ], + "test/safe_math_test" => [ + "include", + "apps/include" + ], "test/sanitytest" => [ "include", "apps/include" @@ -19313,6 +22506,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/slh_dsa_test" => [ + "include", + "apps/include" + ], "test/sm2_internal_test" => [ "include", "apps/include" @@ -19343,6 +22540,11 @@ our %unified_info = ( "include", "apps/include" ], + "test/ssl_handshake_rtt_test" => [ + "include", + "apps/include", + "." + ], "test/ssl_old_test" => [ ".", "include", @@ -19359,6 +22561,7 @@ our %unified_info = ( "test/sslapitest" => [ "include", "apps/include", + "providers/common/include", "." ], "test/sslbuffertest" => [ @@ -19373,6 +22576,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/strtoultest" => [ + "include", + "apps/include" + ], "test/sysdefaulttest" => [ "include", "apps/include" @@ -19381,7 +22588,13 @@ our %unified_info = ( "include", "apps/include" ], + "test/threadpool_test" => [ + ".", + "include", + "apps/include" + ], "test/threadstest" => [ + ".", "include", "apps/include" ], @@ -19393,6 +22606,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/time_test" => [ + "include", + "apps/include" + ], "test/tls13ccstest" => [ "include", "apps/include" @@ -19402,6 +22619,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/tls13groupselection_test" => [ + "include", + "apps/include" + ], "test/trace_api_test" => [ ".", "include", @@ -19440,6 +22661,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/x509_acert_test" => [ + "include", + "apps/include" + ], "test/x509_check_cert_pkey_test" => [ "include", "apps/include" @@ -19453,6 +22678,18 @@ our %unified_info = ( "include", "apps/include" ], + "test/x509_load_cert_file_test" => [ + "include", + "apps/include" + ], + "test/x509_req_test" => [ + "include", + "apps/include" + ], + "test/x509_test" => [ + "include", + "apps/include" + ], "test/x509_time_test" => [ "include", "apps/include" @@ -19474,6 +22711,7 @@ our %unified_info = ( "providers/libdefault.a", "providers/libfips.a", "providers/liblegacy.a", + "providers/libtemplate.a", "test/libtestutil.a" ], "mandocs" => { @@ -19526,6 +22764,7 @@ our %unified_info = ( "doc/man/man1/openssl-s_server.1", "doc/man/man1/openssl-s_time.1", "doc/man/man1/openssl-sess_id.1", + "doc/man/man1/openssl-skeyutl.1", "doc/man/man1/openssl-smime.1", "doc/man/man1/openssl-speed.1", "doc/man/man1/openssl-spkac.1", @@ -19575,6 +22814,7 @@ our %unified_info = ( "doc/man/man3/BIO_find_type.3", "doc/man/man3/BIO_get_data.3", "doc/man/man3/BIO_get_ex_new_index.3", + "doc/man/man3/BIO_get_rpoll_descriptor.3", "doc/man/man3/BIO_meth_new.3", "doc/man/man3/BIO_new.3", "doc/man/man3/BIO_new_CMS.3", @@ -19587,11 +22827,13 @@ our %unified_info = ( "doc/man/man3/BIO_s_connect.3", "doc/man/man3/BIO_s_core.3", "doc/man/man3/BIO_s_datagram.3", + "doc/man/man3/BIO_s_dgram_pair.3", "doc/man/man3/BIO_s_fd.3", "doc/man/man3/BIO_s_file.3", "doc/man/man3/BIO_s_mem.3", "doc/man/man3/BIO_s_null.3", "doc/man/man3/BIO_s_socket.3", + "doc/man/man3/BIO_sendmmsg.3", "doc/man/man3/BIO_set_callback.3", "doc/man/man3/BIO_should_retry.3", "doc/man/man3/BIO_socket_wait.3", @@ -19616,6 +22858,7 @@ our %unified_info = ( "doc/man/man3/BN_swap.3", "doc/man/man3/BN_zero.3", "doc/man/man3/BUF_MEM_new.3", + "doc/man/man3/CMAC_CTX.3", "doc/man/man3/CMS_EncryptedData_decrypt.3", "doc/man/man3/CMS_EncryptedData_encrypt.3", "doc/man/man3/CMS_EnvelopedData_create.3", @@ -19638,6 +22881,7 @@ our %unified_info = ( "doc/man/man3/CMS_uncompress.3", "doc/man/man3/CMS_verify.3", "doc/man/man3/CMS_verify_receipt.3", + "doc/man/man3/COMP_CTX_new.3", "doc/man/man3/CONF_modules_free.3", "doc/man/man3/CONF_modules_load_file.3", "doc/man/man3/CRYPTO_THREAD_run_once.3", @@ -19671,6 +22915,8 @@ our %unified_info = ( "doc/man/man3/DSA_size.3", "doc/man/man3/DTLS_get_data_mtu.3", "doc/man/man3/DTLS_set_timer_cb.3", + "doc/man/man3/DTLSv1_get_timeout.3", + "doc/man/man3/DTLSv1_handle_timeout.3", "doc/man/man3/DTLSv1_listen.3", "doc/man/man3/ECDSA_SIG_new.3", "doc/man/man3/ECDSA_sign.3", @@ -19717,6 +22963,7 @@ our %unified_info = ( "doc/man/man3/EVP_PKEY_CTX_ctrl.3", "doc/man/man3/EVP_PKEY_CTX_get0_libctx.3", "doc/man/man3/EVP_PKEY_CTX_get0_pkey.3", + "doc/man/man3/EVP_PKEY_CTX_get_algor.3", "doc/man/man3/EVP_PKEY_CTX_new.3", "doc/man/man3/EVP_PKEY_CTX_set1_pbe_pass.3", "doc/man/man3/EVP_PKEY_CTX_set_hkdf_md.3", @@ -19756,6 +23003,8 @@ our %unified_info = ( "doc/man/man3/EVP_PKEY_verify_recover.3", "doc/man/man3/EVP_RAND.3", "doc/man/man3/EVP_SIGNATURE.3", + "doc/man/man3/EVP_SKEY.3", + "doc/man/man3/EVP_SKEYMGMT.3", "doc/man/man3/EVP_SealInit.3", "doc/man/man3/EVP_SignInit.3", "doc/man/man3/EVP_VerifyInit.3", @@ -19785,6 +23034,7 @@ our %unified_info = ( "doc/man/man3/EVP_sm3.3", "doc/man/man3/EVP_sm4_cbc.3", "doc/man/man3/EVP_whirlpool.3", + "doc/man/man3/GENERAL_NAME.3", "doc/man/man3/HMAC.3", "doc/man/man3/MD5.3", "doc/man/man3/MDC2_Init.3", @@ -19809,14 +23059,18 @@ our %unified_info = ( "doc/man/man3/OPENSSL_init_ssl.3", "doc/man/man3/OPENSSL_instrument_bus.3", "doc/man/man3/OPENSSL_load_builtin_modules.3", + "doc/man/man3/OPENSSL_load_u16_le.3", "doc/man/man3/OPENSSL_malloc.3", + "doc/man/man3/OPENSSL_riscvcap.3", "doc/man/man3/OPENSSL_s390xcap.3", "doc/man/man3/OPENSSL_secure_malloc.3", "doc/man/man3/OPENSSL_strcasecmp.3", "doc/man/man3/OSSL_ALGORITHM.3", "doc/man/man3/OSSL_CALLBACK.3", + "doc/man/man3/OSSL_CMP_ATAV_set0.3", "doc/man/man3/OSSL_CMP_CTX_new.3", "doc/man/man3/OSSL_CMP_HDR_get0_transactionID.3", + "doc/man/man3/OSSL_CMP_ITAV_new_caCerts.3", "doc/man/man3/OSSL_CMP_ITAV_set0.3", "doc/man/man3/OSSL_CMP_MSG_get0_header.3", "doc/man/man3/OSSL_CMP_MSG_http_perform.3", @@ -19840,18 +23094,27 @@ our %unified_info = ( "doc/man/man3/OSSL_ENCODER_CTX.3", "doc/man/man3/OSSL_ENCODER_CTX_new_for_pkey.3", "doc/man/man3/OSSL_ENCODER_to_bio.3", + "doc/man/man3/OSSL_ERR_STATE_save.3", "doc/man/man3/OSSL_ESS_check_signing_certs.3", + "doc/man/man3/OSSL_GENERAL_NAMES_print.3", + "doc/man/man3/OSSL_HPKE_CTX_new.3", "doc/man/man3/OSSL_HTTP_REQ_CTX.3", "doc/man/man3/OSSL_HTTP_parse_url.3", "doc/man/man3/OSSL_HTTP_transfer.3", + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX.3", + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX_print.3", + "doc/man/man3/OSSL_INDICATOR_set_callback.3", "doc/man/man3/OSSL_ITEM.3", "doc/man/man3/OSSL_LIB_CTX.3", + "doc/man/man3/OSSL_LIB_CTX_set_conf_diagnostics.3", "doc/man/man3/OSSL_PARAM.3", "doc/man/man3/OSSL_PARAM_BLD.3", "doc/man/man3/OSSL_PARAM_allocate_from_text.3", "doc/man/man3/OSSL_PARAM_dup.3", "doc/man/man3/OSSL_PARAM_int.3", + "doc/man/man3/OSSL_PARAM_print_to_bio.3", "doc/man/man3/OSSL_PROVIDER.3", + "doc/man/man3/OSSL_QUIC_client_method.3", "doc/man/man3/OSSL_SELF_TEST_new.3", "doc/man/man3/OSSL_SELF_TEST_set_callback.3", "doc/man/man3/OSSL_STORE_INFO.3", @@ -19860,11 +23123,13 @@ our %unified_info = ( "doc/man/man3/OSSL_STORE_attach.3", "doc/man/man3/OSSL_STORE_expect.3", "doc/man/man3/OSSL_STORE_open.3", + "doc/man/man3/OSSL_sleep.3", "doc/man/man3/OSSL_trace_enabled.3", "doc/man/man3/OSSL_trace_get_category_num.3", "doc/man/man3/OSSL_trace_set_channel.3", "doc/man/man3/OpenSSL_add_all_algorithms.3", "doc/man/man3/OpenSSL_version.3", + "doc/man/man3/PBMAC1_get1_pbkdf2_param.3", "doc/man/man3/PEM_X509_INFO_read_bio_ex.3", "doc/man/man3/PEM_bytes_read_bio.3", "doc/man/man3/PEM_read.3", @@ -19877,6 +23142,7 @@ our %unified_info = ( "doc/man/man3/PKCS12_SAFEBAG_create_cert.3", "doc/man/man3/PKCS12_SAFEBAG_get0_attrs.3", "doc/man/man3/PKCS12_SAFEBAG_get1_cert.3", + "doc/man/man3/PKCS12_SAFEBAG_set0_attrs.3", "doc/man/man3/PKCS12_add1_attr_by_NID.3", "doc/man/man3/PKCS12_add_CSPName_asc.3", "doc/man/man3/PKCS12_add_cert.3", @@ -19968,6 +23234,7 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_sess_set_get_cb.3", "doc/man/man3/SSL_CTX_sessions.3", "doc/man/man3/SSL_CTX_set0_CA_list.3", + "doc/man/man3/SSL_CTX_set1_cert_comp_preference.3", "doc/man/man3/SSL_CTX_set1_curves.3", "doc/man/man3/SSL_CTX_set1_sigalgs.3", "doc/man/man3/SSL_CTX_set1_verify_cert_store.3", @@ -19981,6 +23248,7 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_ct_validation_callback.3", "doc/man/man3/SSL_CTX_set_ctlog_list_file.3", "doc/man/man3/SSL_CTX_set_default_passwd_cb.3", + "doc/man/man3/SSL_CTX_set_domain_flags.3", "doc/man/man3/SSL_CTX_set_generate_session_id.3", "doc/man/man3/SSL_CTX_set_info_callback.3", "doc/man/man3/SSL_CTX_set_keylog_callback.3", @@ -19988,6 +23256,7 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_min_proto_version.3", "doc/man/man3/SSL_CTX_set_mode.3", "doc/man/man3/SSL_CTX_set_msg_callback.3", + "doc/man/man3/SSL_CTX_set_new_pending_conn_cb.3", "doc/man/man3/SSL_CTX_set_num_tickets.3", "doc/man/man3/SSL_CTX_set_options.3", "doc/man/man3/SSL_CTX_set_psk_client_callback.3", @@ -20026,6 +23295,7 @@ our %unified_info = ( "doc/man/man3/SSL_SESSION_print.3", "doc/man/man3/SSL_SESSION_set1_id.3", "doc/man/man3/SSL_accept.3", + "doc/man/man3/SSL_accept_stream.3", "doc/man/man3/SSL_alert_type_string.3", "doc/man/man3/SSL_alloc_buffers.3", "doc/man/man3/SSL_check_chain.3", @@ -20035,59 +23305,90 @@ our %unified_info = ( "doc/man/man3/SSL_export_keying_material.3", "doc/man/man3/SSL_extension_supported.3", "doc/man/man3/SSL_free.3", + "doc/man/man3/SSL_get0_connection.3", + "doc/man/man3/SSL_get0_group_name.3", + "doc/man/man3/SSL_get0_peer_rpk.3", "doc/man/man3/SSL_get0_peer_scts.3", + "doc/man/man3/SSL_get1_builtin_sigalgs.3", "doc/man/man3/SSL_get_SSL_CTX.3", "doc/man/man3/SSL_get_all_async_fds.3", "doc/man/man3/SSL_get_certificate.3", "doc/man/man3/SSL_get_ciphers.3", "doc/man/man3/SSL_get_client_random.3", + "doc/man/man3/SSL_get_conn_close_info.3", "doc/man/man3/SSL_get_current_cipher.3", "doc/man/man3/SSL_get_default_timeout.3", "doc/man/man3/SSL_get_error.3", + "doc/man/man3/SSL_get_event_timeout.3", "doc/man/man3/SSL_get_extms_support.3", "doc/man/man3/SSL_get_fd.3", + "doc/man/man3/SSL_get_handshake_rtt.3", "doc/man/man3/SSL_get_peer_cert_chain.3", "doc/man/man3/SSL_get_peer_certificate.3", "doc/man/man3/SSL_get_peer_signature_nid.3", "doc/man/man3/SSL_get_peer_tmp_key.3", "doc/man/man3/SSL_get_psk_identity.3", "doc/man/man3/SSL_get_rbio.3", + "doc/man/man3/SSL_get_rpoll_descriptor.3", "doc/man/man3/SSL_get_session.3", "doc/man/man3/SSL_get_shared_sigalgs.3", + "doc/man/man3/SSL_get_stream_id.3", + "doc/man/man3/SSL_get_stream_read_state.3", + "doc/man/man3/SSL_get_value_uint.3", "doc/man/man3/SSL_get_verify_result.3", "doc/man/man3/SSL_get_version.3", "doc/man/man3/SSL_group_to_name.3", + "doc/man/man3/SSL_handle_events.3", "doc/man/man3/SSL_in_init.3", + "doc/man/man3/SSL_inject_net_dgram.3", "doc/man/man3/SSL_key_update.3", "doc/man/man3/SSL_library_init.3", "doc/man/man3/SSL_load_client_CA_file.3", "doc/man/man3/SSL_new.3", + "doc/man/man3/SSL_new_domain.3", + "doc/man/man3/SSL_new_listener.3", + "doc/man/man3/SSL_new_stream.3", "doc/man/man3/SSL_pending.3", + "doc/man/man3/SSL_poll.3", "doc/man/man3/SSL_read.3", "doc/man/man3/SSL_read_early_data.3", "doc/man/man3/SSL_rstate_string.3", "doc/man/man3/SSL_session_reused.3", "doc/man/man3/SSL_set1_host.3", + "doc/man/man3/SSL_set1_initial_peer_addr.3", + "doc/man/man3/SSL_set1_server_cert_type.3", "doc/man/man3/SSL_set_async_callback.3", "doc/man/man3/SSL_set_bio.3", + "doc/man/man3/SSL_set_blocking_mode.3", "doc/man/man3/SSL_set_connect_state.3", + "doc/man/man3/SSL_set_default_stream_mode.3", "doc/man/man3/SSL_set_fd.3", + "doc/man/man3/SSL_set_incoming_stream_policy.3", + "doc/man/man3/SSL_set_quic_tls_cbs.3", "doc/man/man3/SSL_set_retry_verify.3", "doc/man/man3/SSL_set_session.3", + "doc/man/man3/SSL_set_session_secret_cb.3", "doc/man/man3/SSL_set_shutdown.3", "doc/man/man3/SSL_set_verify_result.3", "doc/man/man3/SSL_shutdown.3", "doc/man/man3/SSL_state_string.3", + "doc/man/man3/SSL_stream_conclude.3", + "doc/man/man3/SSL_stream_reset.3", "doc/man/man3/SSL_want.3", "doc/man/man3/SSL_write.3", "doc/man/man3/TS_RESP_CTX_new.3", - "doc/man/man3/TS_VERIFY_CTX_set_certs.3", + "doc/man/man3/TS_VERIFY_CTX.3", "doc/man/man3/UI_STRING.3", "doc/man/man3/UI_UTIL_read_pw.3", "doc/man/man3/UI_create_method.3", "doc/man/man3/UI_new.3", "doc/man/man3/X509V3_get_d2i.3", "doc/man/man3/X509V3_set_ctx.3", + "doc/man/man3/X509_ACERT_add1_attr.3", + "doc/man/man3/X509_ACERT_add_attr_nconf.3", + "doc/man/man3/X509_ACERT_get0_holder_baseCertId.3", + "doc/man/man3/X509_ACERT_get_attr.3", + "doc/man/man3/X509_ACERT_print_ex.3", "doc/man/man3/X509_ALGOR_dup.3", "doc/man/man3/X509_ATTRIBUTE.3", "doc/man/man3/X509_CRL_get0_by_serial.3", @@ -20104,6 +23405,7 @@ our %unified_info = ( "doc/man/man3/X509_REQ_get_attr.3", "doc/man/man3/X509_REQ_get_extensions.3", "doc/man/man3/X509_SIG_get0.3", + "doc/man/man3/X509_STORE_CTX_get_by_subject.3", "doc/man/man3/X509_STORE_CTX_get_error.3", "doc/man/man3/X509_STORE_CTX_new.3", "doc/man/man3/X509_STORE_CTX_set_verify_cb.3", @@ -20126,6 +23428,7 @@ our %unified_info = ( "doc/man/man3/X509_get0_notBefore.3", "doc/man/man3/X509_get0_signature.3", "doc/man/man3/X509_get0_uids.3", + "doc/man/man3/X509_get_default_cert_file.3", "doc/man/man3/X509_get_extension_flags.3", "doc/man/man3/X509_get_pubkey.3", "doc/man/man3/X509_get_serialNumber.3", @@ -20171,12 +23474,15 @@ our %unified_info = ( "doc/man/man7/EVP_CIPHER-RC5.7", "doc/man/man7/EVP_CIPHER-SEED.7", "doc/man/man7/EVP_CIPHER-SM4.7", + "doc/man/man7/EVP_KDF-ARGON2.7", "doc/man/man7/EVP_KDF-HKDF.7", + "doc/man/man7/EVP_KDF-HMAC-DRBG.7", "doc/man/man7/EVP_KDF-KB.7", "doc/man/man7/EVP_KDF-KRB5KDF.7", "doc/man/man7/EVP_KDF-PBKDF1.7", "doc/man/man7/EVP_KDF-PBKDF2.7", "doc/man/man7/EVP_KDF-PKCS12KDF.7", + "doc/man/man7/EVP_KDF-PVKKDF.7", "doc/man/man7/EVP_KDF-SCRYPT.7", "doc/man/man7/EVP_KDF-SS.7", "doc/man/man7/EVP_KDF-SSHKDF.7", @@ -20185,7 +23491,10 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-X942-ASN1.7", "doc/man/man7/EVP_KDF-X942-CONCAT.7", "doc/man/man7/EVP_KDF-X963.7", + "doc/man/man7/EVP_KEM-EC.7", + "doc/man/man7/EVP_KEM-ML-KEM.7", "doc/man/man7/EVP_KEM-RSA.7", + "doc/man/man7/EVP_KEM-X25519.7", "doc/man/man7/EVP_KEYEXCH-DH.7", "doc/man/man7/EVP_KEYEXCH-ECDH.7", "doc/man/man7/EVP_KEYEXCH-X25519.7", @@ -20197,6 +23506,7 @@ our %unified_info = ( "doc/man/man7/EVP_MAC-Poly1305.7", "doc/man/man7/EVP_MAC-Siphash.7", "doc/man/man7/EVP_MD-BLAKE2.7", + "doc/man/man7/EVP_MD-KECCAK.7", "doc/man/man7/EVP_MD-MD2.7", "doc/man/man7/EVP_MD-MD4.7", "doc/man/man7/EVP_MD-MD5-SHA1.7", @@ -20216,12 +23526,17 @@ our %unified_info = ( "doc/man/man7/EVP_PKEY-EC.7", "doc/man/man7/EVP_PKEY-FFC.7", "doc/man/man7/EVP_PKEY-HMAC.7", + "doc/man/man7/EVP_PKEY-ML-DSA.7", + "doc/man/man7/EVP_PKEY-ML-KEM.7", "doc/man/man7/EVP_PKEY-RSA.7", + "doc/man/man7/EVP_PKEY-SLH-DSA.7", "doc/man/man7/EVP_PKEY-SM2.7", "doc/man/man7/EVP_PKEY-X25519.7", + "doc/man/man7/EVP_RAND-CRNG-TEST.7", "doc/man/man7/EVP_RAND-CTR-DRBG.7", "doc/man/man7/EVP_RAND-HASH-DRBG.7", "doc/man/man7/EVP_RAND-HMAC-DRBG.7", + "doc/man/man7/EVP_RAND-JITTER.7", "doc/man/man7/EVP_RAND-SEED-SRC.7", "doc/man/man7/EVP_RAND-TEST-RAND.7", "doc/man/man7/EVP_RAND.7", @@ -20229,17 +23544,19 @@ our %unified_info = ( "doc/man/man7/EVP_SIGNATURE-ECDSA.7", "doc/man/man7/EVP_SIGNATURE-ED25519.7", "doc/man/man7/EVP_SIGNATURE-HMAC.7", + "doc/man/man7/EVP_SIGNATURE-ML-DSA.7", "doc/man/man7/EVP_SIGNATURE-RSA.7", + "doc/man/man7/EVP_SIGNATURE-SLH-DSA.7", "doc/man/man7/OSSL_PROVIDER-FIPS.7", "doc/man/man7/OSSL_PROVIDER-base.7", "doc/man/man7/OSSL_PROVIDER-default.7", "doc/man/man7/OSSL_PROVIDER-legacy.7", "doc/man/man7/OSSL_PROVIDER-null.7", + "doc/man/man7/OSSL_STORE-winstore.7", "doc/man/man7/RAND.7", "doc/man/man7/RSA-PSS.7", "doc/man/man7/X25519.7", "doc/man/man7/bio.7", - "doc/man/man7/crypto.7", "doc/man/man7/ct.7", "doc/man/man7/des_modes.7", "doc/man/man7/evp.7", @@ -20250,14 +23567,31 @@ our %unified_info = ( "doc/man/man7/life_cycle-mac.7", "doc/man/man7/life_cycle-pkey.7", "doc/man/man7/life_cycle-rand.7", - "doc/man/man7/migration_guide.7", "doc/man/man7/openssl-core.h.7", "doc/man/man7/openssl-core_dispatch.h.7", "doc/man/man7/openssl-core_names.h.7", "doc/man/man7/openssl-env.7", "doc/man/man7/openssl-glossary.7", + "doc/man/man7/openssl-qlog.7", + "doc/man/man7/openssl-quic-concurrency.7", + "doc/man/man7/openssl-quic.7", "doc/man/man7/openssl-threads.7", "doc/man/man7/openssl_user_macros.7", + "doc/man/man7/ossl-guide-introduction.7", + "doc/man/man7/ossl-guide-libcrypto-introduction.7", + "doc/man/man7/ossl-guide-libraries-introduction.7", + "doc/man/man7/ossl-guide-libssl-introduction.7", + "doc/man/man7/ossl-guide-migration.7", + "doc/man/man7/ossl-guide-quic-client-block.7", + "doc/man/man7/ossl-guide-quic-client-non-block.7", + "doc/man/man7/ossl-guide-quic-introduction.7", + "doc/man/man7/ossl-guide-quic-multi-stream.7", + "doc/man/man7/ossl-guide-quic-server-block.7", + "doc/man/man7/ossl-guide-quic-server-non-block.7", + "doc/man/man7/ossl-guide-tls-client-block.7", + "doc/man/man7/ossl-guide-tls-client-non-block.7", + "doc/man/man7/ossl-guide-tls-introduction.7", + "doc/man/man7/ossl-guide-tls-server-block.7", "doc/man/man7/ossl_store-file.7", "doc/man/man7/ossl_store.7", "doc/man/man7/passphrase-encoding.7", @@ -20276,10 +23610,10 @@ our %unified_info = ( "doc/man/man7/provider-object.7", "doc/man/man7/provider-rand.7", "doc/man/man7/provider-signature.7", + "doc/man/man7/provider-skeymgmt.7", "doc/man/man7/provider-storemgmt.7", "doc/man/man7/provider.7", "doc/man/man7/proxy-certificates.7", - "doc/man/man7/ssl.7", "doc/man/man7/x509.7" ] }, @@ -20291,6 +23625,7 @@ our %unified_info = ( ], "programs" => [ "apps/openssl", + "fuzz/acert-test", "fuzz/asn1-test", "fuzz/asn1parse-test", "fuzz/bignum-test", @@ -20301,7 +23636,24 @@ our %unified_info = ( "fuzz/conf-test", "fuzz/crl-test", "fuzz/ct-test", + "fuzz/decoder-test", + "fuzz/dtlsclient-test", + "fuzz/dtlsserver-test", + "fuzz/hashtable-test", + "fuzz/ml-dsa-test", + "fuzz/ml-kem-test", + "fuzz/pem-test", + "fuzz/provider-test", + "fuzz/punycode-test", + "fuzz/quic-client-test", + "fuzz/quic-lcidm-test", + "fuzz/quic-rcidm-test", + "fuzz/quic-server-test", + "fuzz/quic-srtm-test", "fuzz/server-test", + "fuzz/slh-dsa-test", + "fuzz/smime-test", + "fuzz/v3name-test", "fuzz/x509-test", "test/aborttest", "test/acvp_test", @@ -20319,21 +23671,28 @@ our %unified_info = ( "test/asynctest", "test/bad_dtls_test", "test/bftest", + "test/bio_addr_test", + "test/bio_base64_test", "test/bio_callback_test", "test/bio_core_test", + "test/bio_dgram_test", "test/bio_enc_test", "test/bio_memleak_test", + "test/bio_meth_test", "test/bio_prefix_text", "test/bio_pw_callback_test", "test/bio_readbuffer_test", + "test/bio_tfo_test", "test/bioprinttest", "test/bn_internal_test", "test/bntest", + "test/build_wincrypt_test", "test/buildtest_c_aes", "test/buildtest_c_async", "test/buildtest_c_blowfish", "test/buildtest_c_bn", "test/buildtest_c_buffer", + "test/buildtest_c_byteorder", "test/buildtest_c_camellia", "test/buildtest_c_cast", "test/buildtest_c_cmac", @@ -20342,7 +23701,6 @@ our %unified_info = ( "test/buildtest_c_conftypes", "test/buildtest_c_core", "test/buildtest_c_core_dispatch", - "test/buildtest_c_core_names", "test/buildtest_c_core_object", "test/buildtest_c_cryptoerr_legacy", "test/buildtest_c_decoder", @@ -20351,6 +23709,7 @@ our %unified_info = ( "test/buildtest_c_dsa", "test/buildtest_c_dtls1", "test/buildtest_c_e_os2", + "test/buildtest_c_e_ostime", "test/buildtest_c_ebcdic", "test/buildtest_c_ec", "test/buildtest_c_ecdh", @@ -20360,13 +23719,16 @@ our %unified_info = ( "test/buildtest_c_evp", "test/buildtest_c_fips_names", "test/buildtest_c_hmac", + "test/buildtest_c_hpke", "test/buildtest_c_http", "test/buildtest_c_idea", + "test/buildtest_c_indicator", "test/buildtest_c_kdf", "test/buildtest_c_macros", "test/buildtest_c_md4", "test/buildtest_c_md5", "test/buildtest_c_mdc2", + "test/buildtest_c_ml_kem", "test/buildtest_c_modes", "test/buildtest_c_obj_mac", "test/buildtest_c_objects", @@ -20377,6 +23739,7 @@ our %unified_info = ( "test/buildtest_c_pem2", "test/buildtest_c_prov_ssl", "test/buildtest_c_provider", + "test/buildtest_c_quic", "test/buildtest_c_rand", "test/buildtest_c_rc2", "test/buildtest_c_rc4", @@ -20391,11 +23754,14 @@ our %unified_info = ( "test/buildtest_c_stack", "test/buildtest_c_store", "test/buildtest_c_symhacks", + "test/buildtest_c_thread", "test/buildtest_c_tls1", "test/buildtest_c_ts", "test/buildtest_c_txt_db", "test/buildtest_c_types", "test/buildtest_c_whrlpool", + "test/byteorder_test", + "test/ca_internals_test", "test/casttest", "test/chacha_internal_test", "test/cipher_overhead_test", @@ -20424,6 +23790,7 @@ our %unified_info = ( "test/curve448_internal_test", "test/d2i_test", "test/danetest", + "test/decoder_propq_test", "test/defltfips_test", "test/destest", "test/dhtest", @@ -20448,9 +23815,12 @@ our %unified_info = ( "test/evp_kdf_test", "test/evp_libctx_test", "test/evp_pkey_ctx_new_from_name", + "test/evp_pkey_dhkem_test", "test/evp_pkey_dparams_test", "test/evp_pkey_provided_test", + "test/evp_skey_test", "test/evp_test", + "test/evp_xof_test", "test/exdatatest", "test/exptest", "test/ext_internal_test", @@ -20460,21 +23830,29 @@ our %unified_info = ( "test/gmdifftest", "test/hexstr_test", "test/hmactest", + "test/hpke_test", "test/http_test", "test/ideatest", "test/igetest", + "test/json_test", "test/keymgmt_internal_test", "test/lhash_test", + "test/list_test", "test/localetest", "test/mdc2_internal_test", "test/mdc2test", + "test/membio_test", "test/memleaktest", + "test/ml_dsa_test", + "test/ml_kem_evp_extra_test", + "test/ml_kem_internal_test", "test/modes_internal_test", "test/namemap_internal_test", "test/nodefltctxtest", "test/ocspapitest", "test/ossl_store_test", "test/packettest", + "test/pairwise_fail_test", "test/param_build_test", "test/params_api_test", "test/params_conversion_test", @@ -20483,36 +23861,65 @@ our %unified_info = ( "test/pbetest", "test/pem_read_depr_test", "test/pemtest", + "test/pkcs12_api_test", "test/pkcs12_format_test", "test/pkcs7_test", "test/pkey_meth_kdf_test", "test/pkey_meth_test", "test/poly1305_internal_test", + "test/priority_queue_test", "test/property_test", "test/prov_config_test", "test/provfetchtest", + "test/provider_default_search_path_test", "test/provider_fallback_test", "test/provider_internal_test", "test/provider_pkey_test", "test/provider_status_test", "test/provider_test", "test/punycode_test", + "test/quic_ackm_test", + "test/quic_cc_test", + "test/quic_cfq_test", + "test/quic_client_test", + "test/quic_fc_test", + "test/quic_fifd_test", + "test/quic_lcidm_test", + "test/quic_multistream_test", + "test/quic_newcid_test", + "test/quic_qlog_test", + "test/quic_radix_test", + "test/quic_rcidm_test", + "test/quic_record_test", + "test/quic_srt_gen_test", + "test/quic_srtm_test", + "test/quic_stream_test", + "test/quic_tserver_test", + "test/quic_txp_test", + "test/quic_txpim_test", + "test/quic_wire_test", + "test/quicapitest", + "test/quicfaultstest", "test/rand_status_test", "test/rand_test", "test/rc2test", "test/rc4test", "test/rc5test", - "test/rdrand_sanitytest", + "test/rdcpu_sanitytest", "test/recordlentest", + "test/rpktest", "test/rsa_complex", "test/rsa_mp_test", "test/rsa_sp800_56b_test", "test/rsa_test", + "test/rsa_x931_test", + "test/safe_math_test", "test/sanitytest", "test/secmemtest", "test/servername_test", "test/sha_test", "test/siphash_internal_test", + "test/slh_dsa_test", "test/sm2_internal_test", "test/sm3_internal_test", "test/sm4_internal_test", @@ -20520,6 +23927,7 @@ our %unified_info = ( "test/srptest", "test/ssl_cert_table_internal_test", "test/ssl_ctx_test", + "test/ssl_handshake_rtt_test", "test/ssl_old_test", "test/ssl_test", "test/ssl_test_ctx_test", @@ -20527,13 +23935,17 @@ our %unified_info = ( "test/sslbuffertest", "test/sslcorrupttest", "test/stack_test", + "test/strtoultest", "test/sysdefaulttest", "test/test_test", + "test/threadpool_test", "test/threadstest", "test/threadstest_fips", "test/time_offset_test", + "test/time_test", "test/tls13ccstest", "test/tls13encryptiontest", + "test/tls13groupselection_test", "test/trace_api_test", "test/uitest", "test/upcallstest", @@ -20543,9 +23955,13 @@ our %unified_info = ( "test/verify_extra_test", "test/versions", "test/wpackettest", + "test/x509_acert_test", "test/x509_check_cert_pkey_test", "test/x509_dup_cert_test", "test/x509_internal_test", + "test/x509_load_cert_file_test", + "test/x509_req_test", + "test/x509_test", "test/x509_time_test", "test/x509aux" ], @@ -20560,6 +23976,33 @@ our %unified_info = ( "apps/CA.pl" => [ "apps/CA.pl.in" ], + "apps/ca_internals_test-bin-ca.o" => [ + "apps/ca.c" + ], + "apps/lib/ca_internals_test-bin-app_libctx.o" => [ + "apps/lib/app_libctx.c" + ], + "apps/lib/ca_internals_test-bin-app_provider.o" => [ + "apps/lib/app_provider.c" + ], + "apps/lib/ca_internals_test-bin-app_rand.o" => [ + "apps/lib/app_rand.c" + ], + "apps/lib/ca_internals_test-bin-app_x509.o" => [ + "apps/lib/app_x509.c" + ], + "apps/lib/ca_internals_test-bin-apps.o" => [ + "apps/lib/apps.c" + ], + "apps/lib/ca_internals_test-bin-apps_ui.o" => [ + "apps/lib/apps_ui.c" + ], + "apps/lib/ca_internals_test-bin-engine.o" => [ + "apps/lib/engine.c" + ], + "apps/lib/ca_internals_test-bin-fmt.o" => [ + "apps/lib/fmt.c" + ], "apps/lib/cmp_client_test-bin-cmp_mock_srv.o" => [ "apps/lib/cmp_mock_srv.c" ], @@ -20581,6 +24024,9 @@ our %unified_info = ( "apps/lib/libapps-lib-apps.o" => [ "apps/lib/apps.c" ], + "apps/lib/libapps-lib-apps_opt_printf.o" => [ + "apps/lib/apps_opt_printf.c" + ], "apps/lib/libapps-lib-apps_ui.o" => [ "apps/lib/apps_ui.c" ], @@ -20599,6 +24045,9 @@ our %unified_info = ( "apps/lib/libapps-lib-http_server.o" => [ "apps/lib/http_server.c" ], + "apps/lib/libapps-lib-log.o" => [ + "apps/lib/log.c" + ], "apps/lib/libapps-lib-names.o" => [ "apps/lib/names.c" ], @@ -20636,12 +24085,14 @@ our %unified_info = ( "apps/lib/libapps-lib-app_rand.o", "apps/lib/libapps-lib-app_x509.o", "apps/lib/libapps-lib-apps.o", + "apps/lib/libapps-lib-apps_opt_printf.o", "apps/lib/libapps-lib-apps_ui.o", "apps/lib/libapps-lib-columns.o", "apps/lib/libapps-lib-engine.o", "apps/lib/libapps-lib-engine_loader.o", "apps/lib/libapps-lib-fmt.o", "apps/lib/libapps-lib-http_server.o", + "apps/lib/libapps-lib-log.o", "apps/lib/libapps-lib-names.o", "apps/lib/libapps-lib-opt.o", "apps/lib/libapps-lib-s_cb.o", @@ -20697,6 +24148,7 @@ our %unified_info = ( "apps/openssl-bin-s_server.o", "apps/openssl-bin-s_time.o", "apps/openssl-bin-sess_id.o", + "apps/openssl-bin-skeyutl.o", "apps/openssl-bin-smime.o", "apps/openssl-bin-speed.o", "apps/openssl-bin-spkac.o", @@ -20845,6 +24297,9 @@ our %unified_info = ( "apps/openssl-bin-sess_id.o" => [ "apps/sess_id.c" ], + "apps/openssl-bin-skeyutl.o" => [ + "apps/skeyutl.c" + ], "apps/openssl-bin-smime.o" => [ "apps/smime.c" ], @@ -20908,6 +24363,9 @@ our %unified_info = ( "crypto/aes/libcrypto-lib-aesni-x86_64.o" => [ "crypto/aes/aesni-x86_64.s" ], + "crypto/aes/libcrypto-lib-aesni-xts-avx512.o" => [ + "crypto/aes/aesni-xts-avx512.s" + ], "crypto/aes/libcrypto-lib-bsaes-x86_64.o" => [ "crypto/aes/bsaes-x86_64.s" ], @@ -20935,6 +24393,9 @@ our %unified_info = ( "crypto/aes/libfips-lib-aesni-x86_64.o" => [ "crypto/aes/aesni-x86_64.s" ], + "crypto/aes/libfips-lib-aesni-xts-avx512.o" => [ + "crypto/aes/aesni-xts-avx512.s" + ], "crypto/aes/libfips-lib-bsaes-x86_64.o" => [ "crypto/aes/bsaes-x86_64.s" ], @@ -20944,6 +24405,12 @@ our %unified_info = ( "crypto/aria/libcrypto-lib-aria.o" => [ "crypto/aria/aria.c" ], + "crypto/asn1/asn1_time_test-bin-a_time.o" => [ + "crypto/asn1/a_time.c" + ], + "crypto/asn1/ca_internals_test-bin-a_time.o" => [ + "crypto/asn1/a_time.c" + ], "crypto/asn1/libcrypto-lib-a_bitstr.o" => [ "crypto/asn1/a_bitstr.c" ], @@ -21136,6 +24603,9 @@ our %unified_info = ( "crypto/asn1/libcrypto-lib-x_val.o" => [ "crypto/asn1/x_val.c" ], + "crypto/asn1_time_test-bin-ctype.o" => [ + "crypto/ctype.c" + ], "crypto/async/arch/libcrypto-lib-async_null.o" => [ "crypto/async/arch/async_null.c" ], @@ -21229,6 +24699,9 @@ our %unified_info = ( "crypto/bio/libcrypto-lib-bss_dgram.o" => [ "crypto/bio/bss_dgram.c" ], + "crypto/bio/libcrypto-lib-bss_dgram_pair.o" => [ + "crypto/bio/bss_dgram_pair.c" + ], "crypto/bio/libcrypto-lib-bss_fd.o" => [ "crypto/bio/bss_fd.c" ], @@ -21349,12 +24822,27 @@ our %unified_info = ( "crypto/bn/libcrypto-lib-bn_x931p.o" => [ "crypto/bn/bn_x931p.c" ], + "crypto/bn/libcrypto-lib-rsaz-2k-avx512.o" => [ + "crypto/bn/rsaz-2k-avx512.s" + ], + "crypto/bn/libcrypto-lib-rsaz-2k-avxifma.o" => [ + "crypto/bn/rsaz-2k-avxifma.s" + ], + "crypto/bn/libcrypto-lib-rsaz-3k-avx512.o" => [ + "crypto/bn/rsaz-3k-avx512.s" + ], + "crypto/bn/libcrypto-lib-rsaz-3k-avxifma.o" => [ + "crypto/bn/rsaz-3k-avxifma.s" + ], + "crypto/bn/libcrypto-lib-rsaz-4k-avx512.o" => [ + "crypto/bn/rsaz-4k-avx512.s" + ], + "crypto/bn/libcrypto-lib-rsaz-4k-avxifma.o" => [ + "crypto/bn/rsaz-4k-avxifma.s" + ], "crypto/bn/libcrypto-lib-rsaz-avx2.o" => [ "crypto/bn/rsaz-avx2.s" ], - "crypto/bn/libcrypto-lib-rsaz-avx512.o" => [ - "crypto/bn/rsaz-avx512.s" - ], "crypto/bn/libcrypto-lib-rsaz-x86_64.o" => [ "crypto/bn/rsaz-x86_64.s" ], @@ -21457,12 +24945,27 @@ our %unified_info = ( "crypto/bn/libfips-lib-bn_word.o" => [ "crypto/bn/bn_word.c" ], + "crypto/bn/libfips-lib-rsaz-2k-avx512.o" => [ + "crypto/bn/rsaz-2k-avx512.s" + ], + "crypto/bn/libfips-lib-rsaz-2k-avxifma.o" => [ + "crypto/bn/rsaz-2k-avxifma.s" + ], + "crypto/bn/libfips-lib-rsaz-3k-avx512.o" => [ + "crypto/bn/rsaz-3k-avx512.s" + ], + "crypto/bn/libfips-lib-rsaz-3k-avxifma.o" => [ + "crypto/bn/rsaz-3k-avxifma.s" + ], + "crypto/bn/libfips-lib-rsaz-4k-avx512.o" => [ + "crypto/bn/rsaz-4k-avx512.s" + ], + "crypto/bn/libfips-lib-rsaz-4k-avxifma.o" => [ + "crypto/bn/rsaz-4k-avxifma.s" + ], "crypto/bn/libfips-lib-rsaz-avx2.o" => [ "crypto/bn/rsaz-avx2.s" ], - "crypto/bn/libfips-lib-rsaz-avx512.o" => [ - "crypto/bn/rsaz-avx512.s" - ], "crypto/bn/libfips-lib-rsaz-x86_64.o" => [ "crypto/bn/rsaz-x86_64.s" ], @@ -21490,6 +24993,9 @@ our %unified_info = ( "crypto/buffer/libfips-lib-buffer.o" => [ "crypto/buffer/buffer.c" ], + "crypto/ca_internals_test-bin-ctype.o" => [ + "crypto/ctype.c" + ], "crypto/camellia/libcrypto-lib-cmll-x86_64.o" => [ "crypto/camellia/cmll-x86_64.s" ], @@ -21544,6 +25050,9 @@ our %unified_info = ( "crypto/cmp/libcrypto-lib-cmp_err.o" => [ "crypto/cmp/cmp_err.c" ], + "crypto/cmp/libcrypto-lib-cmp_genm.o" => [ + "crypto/cmp/cmp_genm.c" + ], "crypto/cmp/libcrypto-lib-cmp_hdr.o" => [ "crypto/cmp/cmp_hdr.c" ], @@ -22237,9 +25746,15 @@ our %unified_info = ( "crypto/err/libcrypto-lib-err_blocks.o" => [ "crypto/err/err_blocks.c" ], + "crypto/err/libcrypto-lib-err_mark.o" => [ + "crypto/err/err_mark.c" + ], "crypto/err/libcrypto-lib-err_prn.o" => [ "crypto/err/err_prn.c" ], + "crypto/err/libcrypto-lib-err_save.o" => [ + "crypto/err/err_save.c" + ], "crypto/ess/libcrypto-lib-ess_asn1.o" => [ "crypto/ess/ess_asn1.c" ], @@ -22486,9 +26001,15 @@ our %unified_info = ( "crypto/evp/libcrypto-lib-pmeth_lib.o" => [ "crypto/evp/pmeth_lib.c" ], + "crypto/evp/libcrypto-lib-s_lib.o" => [ + "crypto/evp/s_lib.c" + ], "crypto/evp/libcrypto-lib-signature.o" => [ "crypto/evp/signature.c" ], + "crypto/evp/libcrypto-lib-skeymgmt_meth.o" => [ + "crypto/evp/skeymgmt_meth.c" + ], "crypto/evp/libfips-lib-asymcipher.o" => [ "crypto/evp/asymcipher.c" ], @@ -22534,9 +26055,6 @@ our %unified_info = ( "crypto/evp/libfips-lib-keymgmt_meth.o" => [ "crypto/evp/keymgmt_meth.c" ], - "crypto/evp/libfips-lib-m_sigver.o" => [ - "crypto/evp/m_sigver.c" - ], "crypto/evp/libfips-lib-mac_lib.o" => [ "crypto/evp/mac_lib.c" ], @@ -22555,9 +26073,15 @@ our %unified_info = ( "crypto/evp/libfips-lib-pmeth_lib.o" => [ "crypto/evp/pmeth_lib.c" ], + "crypto/evp/libfips-lib-s_lib.o" => [ + "crypto/evp/s_lib.c" + ], "crypto/evp/libfips-lib-signature.o" => [ "crypto/evp/signature.c" ], + "crypto/evp/libfips-lib-skeymgmt_meth.o" => [ + "crypto/evp/skeymgmt_meth.c" + ], "crypto/ffc/libcrypto-lib-ffc_backend.o" => [ "crypto/ffc/ffc_backend.c" ], @@ -22600,12 +26124,30 @@ our %unified_info = ( "crypto/ffc/libfips-lib-ffc_params_validate.o" => [ "crypto/ffc/ffc_params_validate.c" ], + "crypto/hashtable/libcrypto-lib-hashfunc.o" => [ + "crypto/hashtable/hashfunc.c" + ], + "crypto/hashtable/libcrypto-lib-hashtable.o" => [ + "crypto/hashtable/hashtable.c" + ], + "crypto/hashtable/libfips-lib-hashfunc.o" => [ + "crypto/hashtable/hashfunc.c" + ], + "crypto/hashtable/libfips-lib-hashtable.o" => [ + "crypto/hashtable/hashtable.c" + ], "crypto/hmac/libcrypto-lib-hmac.o" => [ "crypto/hmac/hmac.c" ], "crypto/hmac/libfips-lib-hmac.o" => [ "crypto/hmac/hmac.c" ], + "crypto/hpke/libcrypto-lib-hpke.o" => [ + "crypto/hpke/hpke.c" + ], + "crypto/hpke/libcrypto-lib-hpke_util.o" => [ + "crypto/hpke/hpke_util.c" + ], "crypto/http/libcrypto-lib-http_client.o" => [ "crypto/http/http_client.c" ], @@ -22648,6 +26190,9 @@ our %unified_info = ( "crypto/libcrypto-lib-bsearch.o" => [ "crypto/bsearch.c" ], + "crypto/libcrypto-lib-comp_methods.o" => [ + "crypto/comp_methods.c" + ], "crypto/libcrypto-lib-context.o" => [ "crypto/context.c" ], @@ -22675,9 +26220,15 @@ our %unified_info = ( "crypto/libcrypto-lib-cversion.o" => [ "crypto/cversion.c" ], + "crypto/libcrypto-lib-defaults.o" => [ + "crypto/defaults.c" + ], "crypto/libcrypto-lib-der_writer.o" => [ "crypto/der_writer.c" ], + "crypto/libcrypto-lib-deterministic_nonce.o" => [ + "crypto/deterministic_nonce.c" + ], "crypto/libcrypto-lib-ebcdic.o" => [ "crypto/ebcdic.c" ], @@ -22687,6 +26238,9 @@ our %unified_info = ( "crypto/libcrypto-lib-getenv.o" => [ "crypto/getenv.c" ], + "crypto/libcrypto-lib-indicator_core.o" => [ + "crypto/indicator_core.c" + ], "crypto/libcrypto-lib-info.o" => [ "crypto/info.c" ], @@ -22735,6 +26289,9 @@ our %unified_info = ( "crypto/libcrypto-lib-params_from_text.o" => [ "crypto/params_from_text.c" ], + "crypto/libcrypto-lib-params_idx.o" => [ + "crypto/params_idx.c" + ], "crypto/libcrypto-lib-passphrase.o" => [ "crypto/passphrase.c" ], @@ -22756,12 +26313,21 @@ our %unified_info = ( "crypto/libcrypto-lib-punycode.o" => [ "crypto/punycode.c" ], + "crypto/libcrypto-lib-quic_vlint.o" => [ + "crypto/quic_vlint.c" + ], "crypto/libcrypto-lib-self_test_core.o" => [ "crypto/self_test_core.c" ], + "crypto/libcrypto-lib-sleep.o" => [ + "crypto/sleep.c" + ], "crypto/libcrypto-lib-sparse_array.o" => [ "crypto/sparse_array.c" ], + "crypto/libcrypto-lib-ssl_err.o" => [ + "crypto/ssl_err.c" + ], "crypto/libcrypto-lib-threads_lib.o" => [ "crypto/threads_lib.c" ], @@ -22774,6 +26340,9 @@ our %unified_info = ( "crypto/libcrypto-lib-threads_win.o" => [ "crypto/threads_win.c" ], + "crypto/libcrypto-lib-time.o" => [ + "crypto/time.c" + ], "crypto/libcrypto-lib-trace.o" => [ "crypto/trace.c" ], @@ -22840,6 +26409,9 @@ our %unified_info = ( "crypto/libfips-lib-params_from_text.o" => [ "crypto/params_from_text.c" ], + "crypto/libfips-lib-params_idx.o" => [ + "crypto/params_idx.c" + ], "crypto/libfips-lib-provider_core.o" => [ "crypto/provider_core.c" ], @@ -22864,6 +26436,9 @@ our %unified_info = ( "crypto/libfips-lib-threads_win.o" => [ "crypto/threads_win.c" ], + "crypto/libfips-lib-time.o" => [ + "crypto/time.c" + ], "crypto/libfips-lib-x86_64cpuid.o" => [ "crypto/x86_64cpuid.s" ], @@ -22891,6 +26466,63 @@ our %unified_info = ( "crypto/mdc2/libcrypto-lib-mdc2dgst.o" => [ "crypto/mdc2/mdc2dgst.c" ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_encoders.o" => [ + "crypto/ml_dsa/ml_dsa_encoders.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key.o" => [ + "crypto/ml_dsa/ml_dsa_key.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key_compress.o" => [ + "crypto/ml_dsa/ml_dsa_key_compress.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_matrix.o" => [ + "crypto/ml_dsa/ml_dsa_matrix.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_ntt.o" => [ + "crypto/ml_dsa/ml_dsa_ntt.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_params.o" => [ + "crypto/ml_dsa/ml_dsa_params.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sample.o" => [ + "crypto/ml_dsa/ml_dsa_sample.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sign.o" => [ + "crypto/ml_dsa/ml_dsa_sign.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_encoders.o" => [ + "crypto/ml_dsa/ml_dsa_encoders.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_key.o" => [ + "crypto/ml_dsa/ml_dsa_key.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_key_compress.o" => [ + "crypto/ml_dsa/ml_dsa_key_compress.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_matrix.o" => [ + "crypto/ml_dsa/ml_dsa_matrix.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_ntt.o" => [ + "crypto/ml_dsa/ml_dsa_ntt.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_params.o" => [ + "crypto/ml_dsa/ml_dsa_params.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_sample.o" => [ + "crypto/ml_dsa/ml_dsa_sample.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_sign.o" => [ + "crypto/ml_dsa/ml_dsa_sign.c" + ], + "crypto/ml_kem/libcrypto-lib-ml_kem.o" => [ + "crypto/ml_kem/ml_kem.c" + ], + "crypto/ml_kem/libfips-lib-ml_kem.o" => [ + "crypto/ml_kem/ml_kem.c" + ], + "crypto/modes/libcrypto-lib-aes-gcm-avx512.o" => [ + "crypto/modes/aes-gcm-avx512.s" + ], "crypto/modes/libcrypto-lib-aesni-gcm-x86_64.o" => [ "crypto/modes/aesni-gcm-x86_64.s" ], @@ -22930,6 +26562,12 @@ our %unified_info = ( "crypto/modes/libcrypto-lib-xts128.o" => [ "crypto/modes/xts128.c" ], + "crypto/modes/libcrypto-lib-xts128gb.o" => [ + "crypto/modes/xts128gb.c" + ], + "crypto/modes/libfips-lib-aes-gcm-avx512.o" => [ + "crypto/modes/aes-gcm-avx512.s" + ], "crypto/modes/libfips-lib-aesni-gcm-x86_64.o" => [ "crypto/modes/aesni-gcm-x86_64.s" ], @@ -22960,6 +26598,9 @@ our %unified_info = ( "crypto/modes/libfips-lib-xts128.o" => [ "crypto/modes/xts128.c" ], + "crypto/modes/libfips-lib-xts128gb.o" => [ + "crypto/modes/xts128gb.c" + ], "crypto/objects/libcrypto-lib-o_names.o" => [ "crypto/objects/o_names.c" ], @@ -23005,6 +26646,9 @@ our %unified_info = ( "crypto/ocsp/libcrypto-lib-v3_ocsp.o" => [ "crypto/ocsp/v3_ocsp.c" ], + "crypto/packettest-bin-quic_vlint.o" => [ + "crypto/quic_vlint.c" + ], "crypto/pem/libcrypto-lib-pem_all.o" => [ "crypto/pem/pem_all.c" ], @@ -23167,6 +26811,9 @@ our %unified_info = ( "crypto/rand/libcrypto-lib-rand_pool.o" => [ "crypto/rand/rand_pool.c" ], + "crypto/rand/libcrypto-lib-rand_uniform.o" => [ + "crypto/rand/rand_uniform.c" + ], "crypto/rand/libcrypto-lib-randfile.o" => [ "crypto/rand/randfile.c" ], @@ -23410,6 +27057,66 @@ our %unified_info = ( "crypto/siphash/libcrypto-lib-siphash.o" => [ "crypto/siphash/siphash.c" ], + "crypto/slh_dsa/libcrypto-lib-slh_adrs.o" => [ + "crypto/slh_dsa/slh_adrs.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_dsa.o" => [ + "crypto/slh_dsa/slh_dsa.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_dsa_hash_ctx.o" => [ + "crypto/slh_dsa/slh_dsa_hash_ctx.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_dsa_key.o" => [ + "crypto/slh_dsa/slh_dsa_key.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_fors.o" => [ + "crypto/slh_dsa/slh_fors.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_hash.o" => [ + "crypto/slh_dsa/slh_hash.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_hypertree.o" => [ + "crypto/slh_dsa/slh_hypertree.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_params.o" => [ + "crypto/slh_dsa/slh_params.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_wots.o" => [ + "crypto/slh_dsa/slh_wots.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_xmss.o" => [ + "crypto/slh_dsa/slh_xmss.c" + ], + "crypto/slh_dsa/libfips-lib-slh_adrs.o" => [ + "crypto/slh_dsa/slh_adrs.c" + ], + "crypto/slh_dsa/libfips-lib-slh_dsa.o" => [ + "crypto/slh_dsa/slh_dsa.c" + ], + "crypto/slh_dsa/libfips-lib-slh_dsa_hash_ctx.o" => [ + "crypto/slh_dsa/slh_dsa_hash_ctx.c" + ], + "crypto/slh_dsa/libfips-lib-slh_dsa_key.o" => [ + "crypto/slh_dsa/slh_dsa_key.c" + ], + "crypto/slh_dsa/libfips-lib-slh_fors.o" => [ + "crypto/slh_dsa/slh_fors.c" + ], + "crypto/slh_dsa/libfips-lib-slh_hash.o" => [ + "crypto/slh_dsa/slh_hash.c" + ], + "crypto/slh_dsa/libfips-lib-slh_hypertree.o" => [ + "crypto/slh_dsa/slh_hypertree.c" + ], + "crypto/slh_dsa/libfips-lib-slh_params.o" => [ + "crypto/slh_dsa/slh_params.c" + ], + "crypto/slh_dsa/libfips-lib-slh_wots.o" => [ + "crypto/slh_dsa/slh_wots.c" + ], + "crypto/slh_dsa/libfips-lib-slh_xmss.o" => [ + "crypto/slh_dsa/slh_xmss.c" + ], "crypto/sm2/libcrypto-lib-sm2_crypt.o" => [ "crypto/sm2/sm2_crypt.c" ], @@ -23464,6 +27171,42 @@ our %unified_info = ( "crypto/store/libcrypto-lib-store_strings.o" => [ "crypto/store/store_strings.c" ], + "crypto/thread/arch/libcrypto-lib-thread_none.o" => [ + "crypto/thread/arch/thread_none.c" + ], + "crypto/thread/arch/libcrypto-lib-thread_posix.o" => [ + "crypto/thread/arch/thread_posix.c" + ], + "crypto/thread/arch/libcrypto-lib-thread_win.o" => [ + "crypto/thread/arch/thread_win.c" + ], + "crypto/thread/arch/libfips-lib-thread_none.o" => [ + "crypto/thread/arch/thread_none.c" + ], + "crypto/thread/arch/libfips-lib-thread_posix.o" => [ + "crypto/thread/arch/thread_posix.c" + ], + "crypto/thread/arch/libfips-lib-thread_win.o" => [ + "crypto/thread/arch/thread_win.c" + ], + "crypto/thread/libcrypto-lib-api.o" => [ + "crypto/thread/api.c" + ], + "crypto/thread/libcrypto-lib-arch.o" => [ + "crypto/thread/arch.c" + ], + "crypto/thread/libcrypto-lib-internal.o" => [ + "crypto/thread/internal.c" + ], + "crypto/thread/libfips-lib-api.o" => [ + "crypto/thread/api.c" + ], + "crypto/thread/libfips-lib-arch.o" => [ + "crypto/thread/arch.c" + ], + "crypto/thread/libfips-lib-internal.o" => [ + "crypto/thread/internal.c" + ], "crypto/ts/libcrypto-lib-ts_asn1.o" => [ "crypto/ts/ts_asn1.c" ], @@ -23548,6 +27291,9 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-pcy_tree.o" => [ "crypto/x509/pcy_tree.c" ], + "crypto/x509/libcrypto-lib-t_acert.o" => [ + "crypto/x509/t_acert.c" + ], "crypto/x509/libcrypto-lib-t_crl.o" => [ "crypto/x509/t_crl.c" ], @@ -23557,6 +27303,12 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-t_x509.o" => [ "crypto/x509/t_x509.c" ], + "crypto/x509/libcrypto-lib-v3_aaa.o" => [ + "crypto/x509/v3_aaa.c" + ], + "crypto/x509/libcrypto-lib-v3_ac_tgt.o" => [ + "crypto/x509/v3_ac_tgt.c" + ], "crypto/x509/libcrypto-lib-v3_addr.o" => [ "crypto/x509/v3_addr.c" ], @@ -23572,6 +27324,21 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_asid.o" => [ "crypto/x509/v3_asid.c" ], + "crypto/x509/libcrypto-lib-v3_attrdesc.o" => [ + "crypto/x509/v3_attrdesc.c" + ], + "crypto/x509/libcrypto-lib-v3_attrmap.o" => [ + "crypto/x509/v3_attrmap.c" + ], + "crypto/x509/libcrypto-lib-v3_audit_id.o" => [ + "crypto/x509/v3_audit_id.c" + ], + "crypto/x509/libcrypto-lib-v3_authattid.o" => [ + "crypto/x509/v3_authattid.c" + ], + "crypto/x509/libcrypto-lib-v3_battcons.o" => [ + "crypto/x509/v3_battcons.c" + ], "crypto/x509/libcrypto-lib-v3_bcons.o" => [ "crypto/x509/v3_bcons.c" ], @@ -23596,15 +27363,24 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_genn.o" => [ "crypto/x509/v3_genn.c" ], + "crypto/x509/libcrypto-lib-v3_group_ac.o" => [ + "crypto/x509/v3_group_ac.c" + ], "crypto/x509/libcrypto-lib-v3_ia5.o" => [ "crypto/x509/v3_ia5.c" ], + "crypto/x509/libcrypto-lib-v3_ind_iss.o" => [ + "crypto/x509/v3_ind_iss.c" + ], "crypto/x509/libcrypto-lib-v3_info.o" => [ "crypto/x509/v3_info.c" ], "crypto/x509/libcrypto-lib-v3_int.o" => [ "crypto/x509/v3_int.c" ], + "crypto/x509/libcrypto-lib-v3_iobo.o" => [ + "crypto/x509/v3_iobo.c" + ], "crypto/x509/libcrypto-lib-v3_ist.o" => [ "crypto/x509/v3_ist.c" ], @@ -23614,6 +27390,12 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_ncons.o" => [ "crypto/x509/v3_ncons.c" ], + "crypto/x509/libcrypto-lib-v3_no_ass.o" => [ + "crypto/x509/v3_no_ass.c" + ], + "crypto/x509/libcrypto-lib-v3_no_rev_avail.o" => [ + "crypto/x509/v3_no_rev_avail.c" + ], "crypto/x509/libcrypto-lib-v3_pci.o" => [ "crypto/x509/v3_pci.c" ], @@ -23635,18 +27417,36 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_purp.o" => [ "crypto/x509/v3_purp.c" ], + "crypto/x509/libcrypto-lib-v3_rolespec.o" => [ + "crypto/x509/v3_rolespec.c" + ], "crypto/x509/libcrypto-lib-v3_san.o" => [ "crypto/x509/v3_san.c" ], + "crypto/x509/libcrypto-lib-v3_sda.o" => [ + "crypto/x509/v3_sda.c" + ], + "crypto/x509/libcrypto-lib-v3_single_use.o" => [ + "crypto/x509/v3_single_use.c" + ], "crypto/x509/libcrypto-lib-v3_skid.o" => [ "crypto/x509/v3_skid.c" ], + "crypto/x509/libcrypto-lib-v3_soa_id.o" => [ + "crypto/x509/v3_soa_id.c" + ], "crypto/x509/libcrypto-lib-v3_sxnet.o" => [ "crypto/x509/v3_sxnet.c" ], + "crypto/x509/libcrypto-lib-v3_timespec.o" => [ + "crypto/x509/v3_timespec.c" + ], "crypto/x509/libcrypto-lib-v3_tlsf.o" => [ "crypto/x509/v3_tlsf.c" ], + "crypto/x509/libcrypto-lib-v3_usernotice.o" => [ + "crypto/x509/v3_usernotice.c" + ], "crypto/x509/libcrypto-lib-v3_utf8.o" => [ "crypto/x509/v3_utf8.c" ], @@ -23656,6 +27456,9 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3err.o" => [ "crypto/x509/v3err.c" ], + "crypto/x509/libcrypto-lib-x509_acert.o" => [ + "crypto/x509/x509_acert.c" + ], "crypto/x509/libcrypto-lib-x509_att.o" => [ "crypto/x509/x509_att.c" ], @@ -23707,6 +27510,9 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x509_vpm.o" => [ "crypto/x509/x509_vpm.c" ], + "crypto/x509/libcrypto-lib-x509aset.o" => [ + "crypto/x509/x509aset.c" + ], "crypto/x509/libcrypto-lib-x509cset.o" => [ "crypto/x509/x509cset.c" ], @@ -23734,6 +27540,9 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x_exten.o" => [ "crypto/x509/x_exten.c" ], + "crypto/x509/libcrypto-lib-x_ietfatt.o" => [ + "crypto/x509/x_ietfatt.c" + ], "crypto/x509/libcrypto-lib-x_name.o" => [ "crypto/x509/x_name.c" ], @@ -23758,6 +27567,16 @@ our %unified_info = ( "engines/libcrypto-lib-e_padlock.o" => [ "engines/e_padlock.c" ], + "fuzz/acert-test" => [ + "fuzz/acert-test-bin-acert.o", + "fuzz/acert-test-bin-test-corpus.o" + ], + "fuzz/acert-test-bin-acert.o" => [ + "fuzz/acert.c" + ], + "fuzz/acert-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], "fuzz/asn1-test" => [ "fuzz/asn1-test-bin-asn1.o", "fuzz/asn1-test-bin-fuzz_rand.o", @@ -23870,6 +27689,190 @@ our %unified_info = ( "fuzz/ct-test-bin-test-corpus.o" => [ "fuzz/test-corpus.c" ], + "fuzz/decoder-test" => [ + "fuzz/decoder-test-bin-decoder.o", + "fuzz/decoder-test-bin-fuzz_rand.o", + "fuzz/decoder-test-bin-test-corpus.o" + ], + "fuzz/decoder-test-bin-decoder.o" => [ + "fuzz/decoder.c" + ], + "fuzz/decoder-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/decoder-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/dtlsclient-test" => [ + "fuzz/dtlsclient-test-bin-dtlsclient.o", + "fuzz/dtlsclient-test-bin-fuzz_rand.o", + "fuzz/dtlsclient-test-bin-test-corpus.o" + ], + "fuzz/dtlsclient-test-bin-dtlsclient.o" => [ + "fuzz/dtlsclient.c" + ], + "fuzz/dtlsclient-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/dtlsclient-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/dtlsserver-test" => [ + "fuzz/dtlsserver-test-bin-dtlsserver.o", + "fuzz/dtlsserver-test-bin-fuzz_rand.o", + "fuzz/dtlsserver-test-bin-test-corpus.o" + ], + "fuzz/dtlsserver-test-bin-dtlsserver.o" => [ + "fuzz/dtlsserver.c" + ], + "fuzz/dtlsserver-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/dtlsserver-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/hashtable-test" => [ + "fuzz/hashtable-test-bin-fuzz_rand.o", + "fuzz/hashtable-test-bin-hashtable.o", + "fuzz/hashtable-test-bin-test-corpus.o" + ], + "fuzz/hashtable-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/hashtable-test-bin-hashtable.o" => [ + "fuzz/hashtable.c" + ], + "fuzz/hashtable-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/ml-dsa-test" => [ + "fuzz/ml-dsa-test-bin-fuzz_rand.o", + "fuzz/ml-dsa-test-bin-ml-dsa.o", + "fuzz/ml-dsa-test-bin-test-corpus.o" + ], + "fuzz/ml-dsa-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/ml-dsa-test-bin-ml-dsa.o" => [ + "fuzz/ml-dsa.c" + ], + "fuzz/ml-dsa-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/ml-kem-test" => [ + "fuzz/ml-kem-test-bin-fuzz_rand.o", + "fuzz/ml-kem-test-bin-ml-kem.o", + "fuzz/ml-kem-test-bin-test-corpus.o" + ], + "fuzz/ml-kem-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/ml-kem-test-bin-ml-kem.o" => [ + "fuzz/ml-kem.c" + ], + "fuzz/ml-kem-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/pem-test" => [ + "fuzz/pem-test-bin-pem.o", + "fuzz/pem-test-bin-test-corpus.o" + ], + "fuzz/pem-test-bin-pem.o" => [ + "fuzz/pem.c" + ], + "fuzz/pem-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/provider-test" => [ + "fuzz/provider-test-bin-provider.o", + "fuzz/provider-test-bin-test-corpus.o" + ], + "fuzz/provider-test-bin-provider.o" => [ + "fuzz/provider.c" + ], + "fuzz/provider-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/punycode-test" => [ + "fuzz/punycode-test-bin-punycode.o", + "fuzz/punycode-test-bin-test-corpus.o" + ], + "fuzz/punycode-test-bin-punycode.o" => [ + "fuzz/punycode.c" + ], + "fuzz/punycode-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-client-test" => [ + "fuzz/quic-client-test-bin-fuzz_rand.o", + "fuzz/quic-client-test-bin-quic-client.o", + "fuzz/quic-client-test-bin-test-corpus.o" + ], + "fuzz/quic-client-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-client-test-bin-quic-client.o" => [ + "fuzz/quic-client.c" + ], + "fuzz/quic-client-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-lcidm-test" => [ + "fuzz/quic-lcidm-test-bin-fuzz_rand.o", + "fuzz/quic-lcidm-test-bin-quic-lcidm.o", + "fuzz/quic-lcidm-test-bin-test-corpus.o" + ], + "fuzz/quic-lcidm-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-lcidm-test-bin-quic-lcidm.o" => [ + "fuzz/quic-lcidm.c" + ], + "fuzz/quic-lcidm-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-rcidm-test" => [ + "fuzz/quic-rcidm-test-bin-fuzz_rand.o", + "fuzz/quic-rcidm-test-bin-quic-rcidm.o", + "fuzz/quic-rcidm-test-bin-test-corpus.o" + ], + "fuzz/quic-rcidm-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-rcidm-test-bin-quic-rcidm.o" => [ + "fuzz/quic-rcidm.c" + ], + "fuzz/quic-rcidm-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-server-test" => [ + "fuzz/quic-server-test-bin-fuzz_rand.o", + "fuzz/quic-server-test-bin-quic-server.o", + "fuzz/quic-server-test-bin-test-corpus.o" + ], + "fuzz/quic-server-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-server-test-bin-quic-server.o" => [ + "fuzz/quic-server.c" + ], + "fuzz/quic-server-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-srtm-test" => [ + "fuzz/quic-srtm-test-bin-fuzz_rand.o", + "fuzz/quic-srtm-test-bin-quic-srtm.o", + "fuzz/quic-srtm-test-bin-test-corpus.o" + ], + "fuzz/quic-srtm-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-srtm-test-bin-quic-srtm.o" => [ + "fuzz/quic-srtm.c" + ], + "fuzz/quic-srtm-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], "fuzz/server-test" => [ "fuzz/server-test-bin-fuzz_rand.o", "fuzz/server-test-bin-server.o", @@ -23884,6 +27887,40 @@ our %unified_info = ( "fuzz/server-test-bin-test-corpus.o" => [ "fuzz/test-corpus.c" ], + "fuzz/slh-dsa-test" => [ + "fuzz/slh-dsa-test-bin-fuzz_rand.o", + "fuzz/slh-dsa-test-bin-slh-dsa.o", + "fuzz/slh-dsa-test-bin-test-corpus.o" + ], + "fuzz/slh-dsa-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/slh-dsa-test-bin-slh-dsa.o" => [ + "fuzz/slh-dsa.c" + ], + "fuzz/slh-dsa-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/smime-test" => [ + "fuzz/smime-test-bin-smime.o", + "fuzz/smime-test-bin-test-corpus.o" + ], + "fuzz/smime-test-bin-smime.o" => [ + "fuzz/smime.c" + ], + "fuzz/smime-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/v3name-test" => [ + "fuzz/v3name-test-bin-test-corpus.o", + "fuzz/v3name-test-bin-v3name.o" + ], + "fuzz/v3name-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/v3name-test-bin-v3name.o" => [ + "fuzz/v3name.c" + ], "fuzz/x509-test" => [ "fuzz/x509-test-bin-fuzz_rand.o", "fuzz/x509-test-bin-test-corpus.o", @@ -23910,6 +27947,7 @@ our %unified_info = ( "crypto/aes/libcrypto-lib-aesni-sha1-x86_64.o", "crypto/aes/libcrypto-lib-aesni-sha256-x86_64.o", "crypto/aes/libcrypto-lib-aesni-x86_64.o", + "crypto/aes/libcrypto-lib-aesni-xts-avx512.o", "crypto/aes/libcrypto-lib-bsaes-x86_64.o", "crypto/aes/libcrypto-lib-vpaes-x86_64.o", "crypto/aria/libcrypto-lib-aria.o", @@ -24008,6 +28046,7 @@ our %unified_info = ( "crypto/bio/libcrypto-lib-bss_conn.o", "crypto/bio/libcrypto-lib-bss_core.o", "crypto/bio/libcrypto-lib-bss_dgram.o", + "crypto/bio/libcrypto-lib-bss_dgram_pair.o", "crypto/bio/libcrypto-lib-bss_fd.o", "crypto/bio/libcrypto-lib-bss_file.o", "crypto/bio/libcrypto-lib-bss_log.o", @@ -24048,8 +28087,13 @@ our %unified_info = ( "crypto/bn/libcrypto-lib-bn_srp.o", "crypto/bn/libcrypto-lib-bn_word.o", "crypto/bn/libcrypto-lib-bn_x931p.o", + "crypto/bn/libcrypto-lib-rsaz-2k-avx512.o", + "crypto/bn/libcrypto-lib-rsaz-2k-avxifma.o", + "crypto/bn/libcrypto-lib-rsaz-3k-avx512.o", + "crypto/bn/libcrypto-lib-rsaz-3k-avxifma.o", + "crypto/bn/libcrypto-lib-rsaz-4k-avx512.o", + "crypto/bn/libcrypto-lib-rsaz-4k-avxifma.o", "crypto/bn/libcrypto-lib-rsaz-avx2.o", - "crypto/bn/libcrypto-lib-rsaz-avx512.o", "crypto/bn/libcrypto-lib-rsaz-x86_64.o", "crypto/bn/libcrypto-lib-rsaz_exp.o", "crypto/bn/libcrypto-lib-rsaz_exp_x2.o", @@ -24075,6 +28119,7 @@ our %unified_info = ( "crypto/cmp/libcrypto-lib-cmp_client.o", "crypto/cmp/libcrypto-lib-cmp_ctx.o", "crypto/cmp/libcrypto-lib-cmp_err.o", + "crypto/cmp/libcrypto-lib-cmp_genm.o", "crypto/cmp/libcrypto-lib-cmp_hdr.o", "crypto/cmp/libcrypto-lib-cmp_http.o", "crypto/cmp/libcrypto-lib-cmp_msg.o", @@ -24253,7 +28298,9 @@ our %unified_info = ( "crypto/err/libcrypto-lib-err_all.o", "crypto/err/libcrypto-lib-err_all_legacy.o", "crypto/err/libcrypto-lib-err_blocks.o", + "crypto/err/libcrypto-lib-err_mark.o", "crypto/err/libcrypto-lib-err_prn.o", + "crypto/err/libcrypto-lib-err_save.o", "crypto/ess/libcrypto-lib-ess_asn1.o", "crypto/ess/libcrypto-lib-ess_err.o", "crypto/ess/libcrypto-lib-ess_lib.o", @@ -24336,7 +28383,9 @@ our %unified_info = ( "crypto/evp/libcrypto-lib-pmeth_check.o", "crypto/evp/libcrypto-lib-pmeth_gn.o", "crypto/evp/libcrypto-lib-pmeth_lib.o", + "crypto/evp/libcrypto-lib-s_lib.o", "crypto/evp/libcrypto-lib-signature.o", + "crypto/evp/libcrypto-lib-skeymgmt_meth.o", "crypto/ffc/libcrypto-lib-ffc_backend.o", "crypto/ffc/libcrypto-lib-ffc_dh.o", "crypto/ffc/libcrypto-lib-ffc_key_generate.o", @@ -24344,7 +28393,11 @@ our %unified_info = ( "crypto/ffc/libcrypto-lib-ffc_params.o", "crypto/ffc/libcrypto-lib-ffc_params_generate.o", "crypto/ffc/libcrypto-lib-ffc_params_validate.o", + "crypto/hashtable/libcrypto-lib-hashfunc.o", + "crypto/hashtable/libcrypto-lib-hashtable.o", "crypto/hmac/libcrypto-lib-hmac.o", + "crypto/hpke/libcrypto-lib-hpke.o", + "crypto/hpke/libcrypto-lib-hpke_util.o", "crypto/http/libcrypto-lib-http_client.o", "crypto/http/libcrypto-lib-http_err.o", "crypto/http/libcrypto-lib-http_lib.o", @@ -24358,6 +28411,7 @@ our %unified_info = ( "crypto/lhash/libcrypto-lib-lhash.o", "crypto/libcrypto-lib-asn1_dsa.o", "crypto/libcrypto-lib-bsearch.o", + "crypto/libcrypto-lib-comp_methods.o", "crypto/libcrypto-lib-context.o", "crypto/libcrypto-lib-core_algorithm.o", "crypto/libcrypto-lib-core_fetch.o", @@ -24367,10 +28421,13 @@ our %unified_info = ( "crypto/libcrypto-lib-cryptlib.o", "crypto/libcrypto-lib-ctype.o", "crypto/libcrypto-lib-cversion.o", + "crypto/libcrypto-lib-defaults.o", "crypto/libcrypto-lib-der_writer.o", + "crypto/libcrypto-lib-deterministic_nonce.o", "crypto/libcrypto-lib-ebcdic.o", "crypto/libcrypto-lib-ex_data.o", "crypto/libcrypto-lib-getenv.o", + "crypto/libcrypto-lib-indicator_core.o", "crypto/libcrypto-lib-info.o", "crypto/libcrypto-lib-init.o", "crypto/libcrypto-lib-initthread.o", @@ -24387,6 +28444,7 @@ our %unified_info = ( "crypto/libcrypto-lib-params.o", "crypto/libcrypto-lib-params_dup.o", "crypto/libcrypto-lib-params_from_text.o", + "crypto/libcrypto-lib-params_idx.o", "crypto/libcrypto-lib-passphrase.o", "crypto/libcrypto-lib-provider.o", "crypto/libcrypto-lib-provider_child.o", @@ -24394,12 +28452,16 @@ our %unified_info = ( "crypto/libcrypto-lib-provider_core.o", "crypto/libcrypto-lib-provider_predefined.o", "crypto/libcrypto-lib-punycode.o", + "crypto/libcrypto-lib-quic_vlint.o", "crypto/libcrypto-lib-self_test_core.o", + "crypto/libcrypto-lib-sleep.o", "crypto/libcrypto-lib-sparse_array.o", + "crypto/libcrypto-lib-ssl_err.o", "crypto/libcrypto-lib-threads_lib.o", "crypto/libcrypto-lib-threads_none.o", "crypto/libcrypto-lib-threads_pthread.o", "crypto/libcrypto-lib-threads_win.o", + "crypto/libcrypto-lib-time.o", "crypto/libcrypto-lib-trace.o", "crypto/libcrypto-lib-uid.o", "crypto/libcrypto-lib-x86_64cpuid.o", @@ -24411,6 +28473,16 @@ our %unified_info = ( "crypto/md5/libcrypto-lib-md5_sha1.o", "crypto/mdc2/libcrypto-lib-mdc2_one.o", "crypto/mdc2/libcrypto-lib-mdc2dgst.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_encoders.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key_compress.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_matrix.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_ntt.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_params.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sample.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sign.o", + "crypto/ml_kem/libcrypto-lib-ml_kem.o", + "crypto/modes/libcrypto-lib-aes-gcm-avx512.o", "crypto/modes/libcrypto-lib-aesni-gcm-x86_64.o", "crypto/modes/libcrypto-lib-cbc128.o", "crypto/modes/libcrypto-lib-ccm128.o", @@ -24424,6 +28496,7 @@ our %unified_info = ( "crypto/modes/libcrypto-lib-siv128.o", "crypto/modes/libcrypto-lib-wrap128.o", "crypto/modes/libcrypto-lib-xts128.o", + "crypto/modes/libcrypto-lib-xts128gb.o", "crypto/objects/libcrypto-lib-o_names.o", "crypto/objects/libcrypto-lib-obj_dat.o", "crypto/objects/libcrypto-lib-obj_err.o", @@ -24488,6 +28561,7 @@ our %unified_info = ( "crypto/rand/libcrypto-lib-rand_lib.o", "crypto/rand/libcrypto-lib-rand_meth.o", "crypto/rand/libcrypto-lib-rand_pool.o", + "crypto/rand/libcrypto-lib-rand_uniform.o", "crypto/rand/libcrypto-lib-randfile.o", "crypto/rc2/libcrypto-lib-rc2_cbc.o", "crypto/rc2/libcrypto-lib-rc2_ecb.o", @@ -24541,6 +28615,16 @@ our %unified_info = ( "crypto/sha/libcrypto-lib-sha512-x86_64.o", "crypto/sha/libcrypto-lib-sha512.o", "crypto/siphash/libcrypto-lib-siphash.o", + "crypto/slh_dsa/libcrypto-lib-slh_adrs.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa_hash_ctx.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa_key.o", + "crypto/slh_dsa/libcrypto-lib-slh_fors.o", + "crypto/slh_dsa/libcrypto-lib-slh_hash.o", + "crypto/slh_dsa/libcrypto-lib-slh_hypertree.o", + "crypto/slh_dsa/libcrypto-lib-slh_params.o", + "crypto/slh_dsa/libcrypto-lib-slh_wots.o", + "crypto/slh_dsa/libcrypto-lib-slh_xmss.o", "crypto/sm2/libcrypto-lib-sm2_crypt.o", "crypto/sm2/libcrypto-lib-sm2_err.o", "crypto/sm2/libcrypto-lib-sm2_key.o", @@ -24558,6 +28642,12 @@ our %unified_info = ( "crypto/store/libcrypto-lib-store_register.o", "crypto/store/libcrypto-lib-store_result.o", "crypto/store/libcrypto-lib-store_strings.o", + "crypto/thread/arch/libcrypto-lib-thread_none.o", + "crypto/thread/arch/libcrypto-lib-thread_posix.o", + "crypto/thread/arch/libcrypto-lib-thread_win.o", + "crypto/thread/libcrypto-lib-api.o", + "crypto/thread/libcrypto-lib-arch.o", + "crypto/thread/libcrypto-lib-internal.o", "crypto/ts/libcrypto-lib-ts_asn1.o", "crypto/ts/libcrypto-lib-ts_conf.o", "crypto/ts/libcrypto-lib-ts_err.o", @@ -24586,14 +28676,22 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-pcy_map.o", "crypto/x509/libcrypto-lib-pcy_node.o", "crypto/x509/libcrypto-lib-pcy_tree.o", + "crypto/x509/libcrypto-lib-t_acert.o", "crypto/x509/libcrypto-lib-t_crl.o", "crypto/x509/libcrypto-lib-t_req.o", "crypto/x509/libcrypto-lib-t_x509.o", + "crypto/x509/libcrypto-lib-v3_aaa.o", + "crypto/x509/libcrypto-lib-v3_ac_tgt.o", "crypto/x509/libcrypto-lib-v3_addr.o", "crypto/x509/libcrypto-lib-v3_admis.o", "crypto/x509/libcrypto-lib-v3_akeya.o", "crypto/x509/libcrypto-lib-v3_akid.o", "crypto/x509/libcrypto-lib-v3_asid.o", + "crypto/x509/libcrypto-lib-v3_attrdesc.o", + "crypto/x509/libcrypto-lib-v3_attrmap.o", + "crypto/x509/libcrypto-lib-v3_audit_id.o", + "crypto/x509/libcrypto-lib-v3_authattid.o", + "crypto/x509/libcrypto-lib-v3_battcons.o", "crypto/x509/libcrypto-lib-v3_bcons.o", "crypto/x509/libcrypto-lib-v3_bitst.o", "crypto/x509/libcrypto-lib-v3_conf.o", @@ -24602,12 +28700,17 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_enum.o", "crypto/x509/libcrypto-lib-v3_extku.o", "crypto/x509/libcrypto-lib-v3_genn.o", + "crypto/x509/libcrypto-lib-v3_group_ac.o", "crypto/x509/libcrypto-lib-v3_ia5.o", + "crypto/x509/libcrypto-lib-v3_ind_iss.o", "crypto/x509/libcrypto-lib-v3_info.o", "crypto/x509/libcrypto-lib-v3_int.o", + "crypto/x509/libcrypto-lib-v3_iobo.o", "crypto/x509/libcrypto-lib-v3_ist.o", "crypto/x509/libcrypto-lib-v3_lib.o", "crypto/x509/libcrypto-lib-v3_ncons.o", + "crypto/x509/libcrypto-lib-v3_no_ass.o", + "crypto/x509/libcrypto-lib-v3_no_rev_avail.o", "crypto/x509/libcrypto-lib-v3_pci.o", "crypto/x509/libcrypto-lib-v3_pcia.o", "crypto/x509/libcrypto-lib-v3_pcons.o", @@ -24615,13 +28718,20 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_pmaps.o", "crypto/x509/libcrypto-lib-v3_prn.o", "crypto/x509/libcrypto-lib-v3_purp.o", + "crypto/x509/libcrypto-lib-v3_rolespec.o", "crypto/x509/libcrypto-lib-v3_san.o", + "crypto/x509/libcrypto-lib-v3_sda.o", + "crypto/x509/libcrypto-lib-v3_single_use.o", "crypto/x509/libcrypto-lib-v3_skid.o", + "crypto/x509/libcrypto-lib-v3_soa_id.o", "crypto/x509/libcrypto-lib-v3_sxnet.o", + "crypto/x509/libcrypto-lib-v3_timespec.o", "crypto/x509/libcrypto-lib-v3_tlsf.o", + "crypto/x509/libcrypto-lib-v3_usernotice.o", "crypto/x509/libcrypto-lib-v3_utf8.o", "crypto/x509/libcrypto-lib-v3_utl.o", "crypto/x509/libcrypto-lib-v3err.o", + "crypto/x509/libcrypto-lib-x509_acert.o", "crypto/x509/libcrypto-lib-x509_att.o", "crypto/x509/libcrypto-lib-x509_cmp.o", "crypto/x509/libcrypto-lib-x509_d2.o", @@ -24639,6 +28749,7 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x509_v3.o", "crypto/x509/libcrypto-lib-x509_vfy.o", "crypto/x509/libcrypto-lib-x509_vpm.o", + "crypto/x509/libcrypto-lib-x509aset.o", "crypto/x509/libcrypto-lib-x509cset.o", "crypto/x509/libcrypto-lib-x509name.o", "crypto/x509/libcrypto-lib-x509rset.o", @@ -24648,6 +28759,7 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x_attrib.o", "crypto/x509/libcrypto-lib-x_crl.o", "crypto/x509/libcrypto-lib-x_exten.o", + "crypto/x509/libcrypto-lib-x_ietfatt.o", "crypto/x509/libcrypto-lib-x_name.o", "crypto/x509/libcrypto-lib-x_pubkey.o", "crypto/x509/libcrypto-lib-x_req.o", @@ -24669,14 +28781,15 @@ our %unified_info = ( "ssl/libssl-lib-d1_srtp.o", "ssl/libssl-lib-methods.o", "ssl/libssl-lib-pqueue.o", + "ssl/libssl-lib-priority_queue.o", "ssl/libssl-lib-s3_enc.o", "ssl/libssl-lib-s3_lib.o", "ssl/libssl-lib-s3_msg.o", "ssl/libssl-lib-ssl_asn1.o", "ssl/libssl-lib-ssl_cert.o", + "ssl/libssl-lib-ssl_cert_comp.o", "ssl/libssl-lib-ssl_ciph.o", "ssl/libssl-lib-ssl_conf.o", - "ssl/libssl-lib-ssl_err.o", "ssl/libssl-lib-ssl_err_legacy.o", "ssl/libssl-lib-ssl_init.o", "ssl/libssl-lib-ssl_lib.o", @@ -24693,12 +28806,60 @@ our %unified_info = ( "ssl/libssl-lib-tls13_enc.o", "ssl/libssl-lib-tls_depr.o", "ssl/libssl-lib-tls_srp.o", - "ssl/record/libssl-lib-dtls1_bitmap.o", + "ssl/quic/libssl-lib-cc_newreno.o", + "ssl/quic/libssl-lib-json_enc.o", + "ssl/quic/libssl-lib-qlog.o", + "ssl/quic/libssl-lib-qlog_event_helpers.o", + "ssl/quic/libssl-lib-quic_ackm.o", + "ssl/quic/libssl-lib-quic_cfq.o", + "ssl/quic/libssl-lib-quic_channel.o", + "ssl/quic/libssl-lib-quic_demux.o", + "ssl/quic/libssl-lib-quic_engine.o", + "ssl/quic/libssl-lib-quic_fc.o", + "ssl/quic/libssl-lib-quic_fifd.o", + "ssl/quic/libssl-lib-quic_impl.o", + "ssl/quic/libssl-lib-quic_lcidm.o", + "ssl/quic/libssl-lib-quic_method.o", + "ssl/quic/libssl-lib-quic_obj.o", + "ssl/quic/libssl-lib-quic_port.o", + "ssl/quic/libssl-lib-quic_rcidm.o", + "ssl/quic/libssl-lib-quic_reactor.o", + "ssl/quic/libssl-lib-quic_reactor_wait_ctx.o", + "ssl/quic/libssl-lib-quic_record_rx.o", + "ssl/quic/libssl-lib-quic_record_shared.o", + "ssl/quic/libssl-lib-quic_record_tx.o", + "ssl/quic/libssl-lib-quic_record_util.o", + "ssl/quic/libssl-lib-quic_rstream.o", + "ssl/quic/libssl-lib-quic_rx_depack.o", + "ssl/quic/libssl-lib-quic_sf_list.o", + "ssl/quic/libssl-lib-quic_srt_gen.o", + "ssl/quic/libssl-lib-quic_srtm.o", + "ssl/quic/libssl-lib-quic_sstream.o", + "ssl/quic/libssl-lib-quic_statm.o", + "ssl/quic/libssl-lib-quic_stream_map.o", + "ssl/quic/libssl-lib-quic_thread_assist.o", + "ssl/quic/libssl-lib-quic_tls.o", + "ssl/quic/libssl-lib-quic_tls_api.o", + "ssl/quic/libssl-lib-quic_trace.o", + "ssl/quic/libssl-lib-quic_tserver.o", + "ssl/quic/libssl-lib-quic_txp.o", + "ssl/quic/libssl-lib-quic_txpim.o", + "ssl/quic/libssl-lib-quic_types.o", + "ssl/quic/libssl-lib-quic_wire.o", + "ssl/quic/libssl-lib-quic_wire_pkt.o", + "ssl/quic/libssl-lib-uint_set.o", "ssl/record/libssl-lib-rec_layer_d1.o", "ssl/record/libssl-lib-rec_layer_s3.o", - "ssl/record/libssl-lib-ssl3_buffer.o", - "ssl/record/libssl-lib-ssl3_record.o", - "ssl/record/libssl-lib-ssl3_record_tls13.o", + "ssl/record/methods/libssl-lib-dtls_meth.o", + "ssl/record/methods/libssl-lib-ssl3_meth.o", + "ssl/record/methods/libssl-lib-tls13_meth.o", + "ssl/record/methods/libssl-lib-tls1_meth.o", + "ssl/record/methods/libssl-lib-tls_common.o", + "ssl/record/methods/libssl-lib-tls_multib.o", + "ssl/record/methods/libssl-lib-tlsany_meth.o", + "ssl/rio/libssl-lib-poll_builder.o", + "ssl/rio/libssl-lib-poll_immediate.o", + "ssl/rio/libssl-lib-rio_notifier.o", "ssl/statem/libssl-lib-extensions.o", "ssl/statem/libssl-lib-extensions_clnt.o", "ssl/statem/libssl-lib-extensions_cust.o", @@ -24736,12 +28897,24 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ecx_key.o" => [ "providers/common/der/der_ecx_key.c" ], + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o" => [ + "providers/common/der/der_ml_dsa_gen.c" + ], + "providers/common/der/libcommon-lib-der_ml_dsa_key.o" => [ + "providers/common/der/der_ml_dsa_key.c" + ], "providers/common/der/libcommon-lib-der_rsa_gen.o" => [ "providers/common/der/der_rsa_gen.c" ], "providers/common/der/libcommon-lib-der_rsa_key.o" => [ "providers/common/der/der_rsa_key.c" ], + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o" => [ + "providers/common/der/der_slh_dsa_gen.c" + ], + "providers/common/der/libcommon-lib-der_slh_dsa_key.o" => [ + "providers/common/der/der_slh_dsa_key.c" + ], "providers/common/der/libcommon-lib-der_wrap_gen.o" => [ "providers/common/der/der_wrap_gen.c" ], @@ -24808,6 +28981,9 @@ our %unified_info = ( "providers/common/libfips-lib-securitycheck_fips.o" => [ "providers/common/securitycheck_fips.c" ], + "providers/endecode_test-bin-legacyprov.o" => [ + "providers/legacyprov.c" + ], "providers/evp_extra_test-bin-legacyprov.o" => [ "providers/legacyprov.c" ], @@ -24822,6 +28998,9 @@ our %unified_info = ( "providers/fips/fips-dso-fips_entry.o" => [ "providers/fips/fips_entry.c" ], + "providers/fips/libfips-lib-fipsindicator.o" => [ + "providers/fips/fipsindicator.c" + ], "providers/fips/libfips-lib-fipsprov.o" => [ "providers/fips/fipsprov.c" ], @@ -24885,6 +29064,15 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_hw.o" => [ "providers/implementations/ciphers/cipher_aes_gcm_hw.c" ], + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv.o" => [ + "providers/implementations/ciphers/cipher_aes_gcm_siv.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_hw.o" => [ + "providers/implementations/ciphers/cipher_aes_gcm_siv_hw.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_polyval.o" => [ + "providers/implementations/ciphers/cipher_aes_gcm_siv_polyval.c" + ], "providers/implementations/ciphers/libdefault-lib-cipher_aes_hw.o" => [ "providers/implementations/ciphers/cipher_aes_hw.c" ], @@ -24957,9 +29145,27 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_sm4.o" => [ "providers/implementations/ciphers/cipher_sm4.c" ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm.o" => [ + "providers/implementations/ciphers/cipher_sm4_ccm.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm_hw.o" => [ + "providers/implementations/ciphers/cipher_sm4_ccm_hw.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm.o" => [ + "providers/implementations/ciphers/cipher_sm4_gcm.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm_hw.o" => [ + "providers/implementations/ciphers/cipher_sm4_gcm_hw.c" + ], "providers/implementations/ciphers/libdefault-lib-cipher_sm4_hw.o" => [ "providers/implementations/ciphers/cipher_sm4_hw.c" ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts.o" => [ + "providers/implementations/ciphers/cipher_sm4_xts.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts_hw.o" => [ + "providers/implementations/ciphers/cipher_sm4_xts_hw.c" + ], "providers/implementations/ciphers/libdefault-lib-cipher_tdes.o" => [ "providers/implementations/ciphers/cipher_tdes.c" ], @@ -25179,6 +29385,15 @@ our %unified_info = ( "providers/implementations/encode_decode/libdefault-lib-endecoder_common.o" => [ "providers/implementations/encode_decode/endecoder_common.c" ], + "providers/implementations/encode_decode/libdefault-lib-ml_common_codecs.o" => [ + "providers/implementations/encode_decode/ml_common_codecs.c" + ], + "providers/implementations/encode_decode/libdefault-lib-ml_dsa_codecs.o" => [ + "providers/implementations/encode_decode/ml_dsa_codecs.c" + ], + "providers/implementations/encode_decode/libdefault-lib-ml_kem_codecs.o" => [ + "providers/implementations/encode_decode/ml_kem_codecs.c" + ], "providers/implementations/exchange/libdefault-lib-dh_exch.o" => [ "providers/implementations/exchange/dh_exch.c" ], @@ -25203,9 +29418,15 @@ our %unified_info = ( "providers/implementations/exchange/libfips-lib-kdf_exch.o" => [ "providers/implementations/exchange/kdf_exch.c" ], + "providers/implementations/kdfs/libdefault-lib-argon2.o" => [ + "providers/implementations/kdfs/argon2.c" + ], "providers/implementations/kdfs/libdefault-lib-hkdf.o" => [ "providers/implementations/kdfs/hkdf.c" ], + "providers/implementations/kdfs/libdefault-lib-hmacdrbg_kdf.o" => [ + "providers/implementations/kdfs/hmacdrbg_kdf.c" + ], "providers/implementations/kdfs/libdefault-lib-kbkdf.o" => [ "providers/implementations/kdfs/kbkdf.c" ], @@ -25263,12 +29484,39 @@ our %unified_info = ( "providers/implementations/kdfs/liblegacy-lib-pbkdf1.o" => [ "providers/implementations/kdfs/pbkdf1.c" ], + "providers/implementations/kdfs/liblegacy-lib-pvkkdf.o" => [ + "providers/implementations/kdfs/pvkkdf.c" + ], + "providers/implementations/kem/libdefault-lib-ec_kem.o" => [ + "providers/implementations/kem/ec_kem.c" + ], + "providers/implementations/kem/libdefault-lib-ecx_kem.o" => [ + "providers/implementations/kem/ecx_kem.c" + ], + "providers/implementations/kem/libdefault-lib-kem_util.o" => [ + "providers/implementations/kem/kem_util.c" + ], + "providers/implementations/kem/libdefault-lib-ml_kem_kem.o" => [ + "providers/implementations/kem/ml_kem_kem.c" + ], + "providers/implementations/kem/libdefault-lib-mlx_kem.o" => [ + "providers/implementations/kem/mlx_kem.c" + ], "providers/implementations/kem/libdefault-lib-rsa_kem.o" => [ "providers/implementations/kem/rsa_kem.c" ], + "providers/implementations/kem/libfips-lib-ml_kem_kem.o" => [ + "providers/implementations/kem/ml_kem_kem.c" + ], + "providers/implementations/kem/libfips-lib-mlx_kem.o" => [ + "providers/implementations/kem/mlx_kem.c" + ], "providers/implementations/kem/libfips-lib-rsa_kem.o" => [ "providers/implementations/kem/rsa_kem.c" ], + "providers/implementations/kem/libtemplate-lib-template_kem.o" => [ + "providers/implementations/kem/template_kem.c" + ], "providers/implementations/keymgmt/libdefault-lib-dh_kmgmt.o" => [ "providers/implementations/keymgmt/dh_kmgmt.c" ], @@ -25287,9 +29535,21 @@ our %unified_info = ( "providers/implementations/keymgmt/libdefault-lib-mac_legacy_kmgmt.o" => [ "providers/implementations/keymgmt/mac_legacy_kmgmt.c" ], + "providers/implementations/keymgmt/libdefault-lib-ml_dsa_kmgmt.o" => [ + "providers/implementations/keymgmt/ml_dsa_kmgmt.c" + ], + "providers/implementations/keymgmt/libdefault-lib-ml_kem_kmgmt.o" => [ + "providers/implementations/keymgmt/ml_kem_kmgmt.c" + ], + "providers/implementations/keymgmt/libdefault-lib-mlx_kmgmt.o" => [ + "providers/implementations/keymgmt/mlx_kmgmt.c" + ], "providers/implementations/keymgmt/libdefault-lib-rsa_kmgmt.o" => [ "providers/implementations/keymgmt/rsa_kmgmt.c" ], + "providers/implementations/keymgmt/libdefault-lib-slh_dsa_kmgmt.o" => [ + "providers/implementations/keymgmt/slh_dsa_kmgmt.c" + ], "providers/implementations/keymgmt/libfips-lib-dh_kmgmt.o" => [ "providers/implementations/keymgmt/dh_kmgmt.c" ], @@ -25308,9 +29568,24 @@ our %unified_info = ( "providers/implementations/keymgmt/libfips-lib-mac_legacy_kmgmt.o" => [ "providers/implementations/keymgmt/mac_legacy_kmgmt.c" ], + "providers/implementations/keymgmt/libfips-lib-ml_dsa_kmgmt.o" => [ + "providers/implementations/keymgmt/ml_dsa_kmgmt.c" + ], + "providers/implementations/keymgmt/libfips-lib-ml_kem_kmgmt.o" => [ + "providers/implementations/keymgmt/ml_kem_kmgmt.c" + ], + "providers/implementations/keymgmt/libfips-lib-mlx_kmgmt.o" => [ + "providers/implementations/keymgmt/mlx_kmgmt.c" + ], "providers/implementations/keymgmt/libfips-lib-rsa_kmgmt.o" => [ "providers/implementations/keymgmt/rsa_kmgmt.c" ], + "providers/implementations/keymgmt/libfips-lib-slh_dsa_kmgmt.o" => [ + "providers/implementations/keymgmt/slh_dsa_kmgmt.c" + ], + "providers/implementations/keymgmt/libtemplate-lib-template_kmgmt.o" => [ + "providers/implementations/keymgmt/template_kmgmt.c" + ], "providers/implementations/macs/libdefault-lib-blake2b_mac.o" => [ "providers/implementations/macs/blake2b_mac.c" ], @@ -25347,9 +29622,6 @@ our %unified_info = ( "providers/implementations/macs/libfips-lib-kmac_prov.o" => [ "providers/implementations/macs/kmac_prov.c" ], - "providers/implementations/rands/libdefault-lib-crngt.o" => [ - "providers/implementations/rands/crngt.c" - ], "providers/implementations/rands/libdefault-lib-drbg.o" => [ "providers/implementations/rands/drbg.c" ], @@ -25365,12 +29637,12 @@ our %unified_info = ( "providers/implementations/rands/libdefault-lib-seed_src.o" => [ "providers/implementations/rands/seed_src.c" ], + "providers/implementations/rands/libdefault-lib-seed_src_jitter.o" => [ + "providers/implementations/rands/seed_src_jitter.c" + ], "providers/implementations/rands/libdefault-lib-test_rng.o" => [ "providers/implementations/rands/test_rng.c" ], - "providers/implementations/rands/libfips-lib-crngt.o" => [ - "providers/implementations/rands/crngt.c" - ], "providers/implementations/rands/libfips-lib-drbg.o" => [ "providers/implementations/rands/drbg.c" ], @@ -25383,6 +29655,9 @@ our %unified_info = ( "providers/implementations/rands/libfips-lib-drbg_hmac.o" => [ "providers/implementations/rands/drbg_hmac.c" ], + "providers/implementations/rands/libfips-lib-fips_crng_test.o" => [ + "providers/implementations/rands/fips_crng_test.c" + ], "providers/implementations/rands/libfips-lib-test_rng.o" => [ "providers/implementations/rands/test_rng.c" ], @@ -25410,9 +29685,15 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-mac_legacy_sig.o" => [ "providers/implementations/signature/mac_legacy_sig.c" ], + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o" => [ + "providers/implementations/signature/ml_dsa_sig.c" + ], "providers/implementations/signature/libdefault-lib-rsa_sig.o" => [ "providers/implementations/signature/rsa_sig.c" ], + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o" => [ + "providers/implementations/signature/slh_dsa_sig.c" + ], "providers/implementations/signature/libdefault-lib-sm2_sig.o" => [ "providers/implementations/signature/sm2_sig.c" ], @@ -25428,15 +29709,36 @@ our %unified_info = ( "providers/implementations/signature/libfips-lib-mac_legacy_sig.o" => [ "providers/implementations/signature/mac_legacy_sig.c" ], + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o" => [ + "providers/implementations/signature/ml_dsa_sig.c" + ], "providers/implementations/signature/libfips-lib-rsa_sig.o" => [ "providers/implementations/signature/rsa_sig.c" ], + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o" => [ + "providers/implementations/signature/slh_dsa_sig.c" + ], + "providers/implementations/skeymgmt/libdefault-lib-aes_skmgmt.o" => [ + "providers/implementations/skeymgmt/aes_skmgmt.c" + ], + "providers/implementations/skeymgmt/libdefault-lib-generic.o" => [ + "providers/implementations/skeymgmt/generic.c" + ], + "providers/implementations/skeymgmt/libfips-lib-aes_skmgmt.o" => [ + "providers/implementations/skeymgmt/aes_skmgmt.c" + ], + "providers/implementations/skeymgmt/libfips-lib-generic.o" => [ + "providers/implementations/skeymgmt/generic.c" + ], "providers/implementations/storemgmt/libdefault-lib-file_store.o" => [ "providers/implementations/storemgmt/file_store.c" ], "providers/implementations/storemgmt/libdefault-lib-file_store_any2obj.o" => [ "providers/implementations/storemgmt/file_store_any2obj.c" ], + "providers/implementations/storemgmt/libdefault-lib-winstore_store.o" => [ + "providers/implementations/storemgmt/winstore_store.c" + ], "providers/legacy" => [ "providers/legacy-dso-legacy.res", "providers/legacy-dso-legacyprov.o", @@ -25458,8 +29760,12 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ec_sig.o", "providers/common/der/libcommon-lib-der_ecx_gen.o", "providers/common/der/libcommon-lib-der_ecx_key.o", + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o", + "providers/common/der/libcommon-lib-der_ml_dsa_key.o", "providers/common/der/libcommon-lib-der_rsa_gen.o", "providers/common/der/libcommon-lib-der_rsa_key.o", + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o", + "providers/common/der/libcommon-lib-der_slh_dsa_key.o", "providers/common/der/libcommon-lib-der_wrap_gen.o", "providers/common/libcommon-lib-provider_ctx.o", "providers/common/libcommon-lib-provider_err.o", @@ -25471,7 +29777,7 @@ our %unified_info = ( "providers/implementations/ciphers/libcommon-lib-ciphercommon_gcm_hw.o", "providers/implementations/ciphers/libcommon-lib-ciphercommon_hw.o", "providers/implementations/digests/libcommon-lib-digestcommon.o", - "ssl/record/libcommon-lib-tls_pad.o" + "ssl/record/methods/libcommon-lib-tls_pad.o" ], "providers/libcrypto-lib-baseprov.o" => [ "providers/baseprov.c" @@ -25507,6 +29813,9 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_aes_ccm_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_polyval.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_ocb.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_ocb_hw.o", @@ -25531,7 +29840,13 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_cts.o", "providers/implementations/ciphers/libdefault-lib-cipher_null.o", "providers/implementations/ciphers/libdefault-lib-cipher_sm4.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_sm4_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes_common.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes_default.o", @@ -25560,11 +29875,16 @@ our %unified_info = ( "providers/implementations/encode_decode/libdefault-lib-encode_key2ms.o", "providers/implementations/encode_decode/libdefault-lib-encode_key2text.o", "providers/implementations/encode_decode/libdefault-lib-endecoder_common.o", + "providers/implementations/encode_decode/libdefault-lib-ml_common_codecs.o", + "providers/implementations/encode_decode/libdefault-lib-ml_dsa_codecs.o", + "providers/implementations/encode_decode/libdefault-lib-ml_kem_codecs.o", "providers/implementations/exchange/libdefault-lib-dh_exch.o", "providers/implementations/exchange/libdefault-lib-ecdh_exch.o", "providers/implementations/exchange/libdefault-lib-ecx_exch.o", "providers/implementations/exchange/libdefault-lib-kdf_exch.o", + "providers/implementations/kdfs/libdefault-lib-argon2.o", "providers/implementations/kdfs/libdefault-lib-hkdf.o", + "providers/implementations/kdfs/libdefault-lib-hmacdrbg_kdf.o", "providers/implementations/kdfs/libdefault-lib-kbkdf.o", "providers/implementations/kdfs/libdefault-lib-krb5kdf.o", "providers/implementations/kdfs/libdefault-lib-pbkdf2.o", @@ -25575,6 +29895,11 @@ our %unified_info = ( "providers/implementations/kdfs/libdefault-lib-sskdf.o", "providers/implementations/kdfs/libdefault-lib-tls1_prf.o", "providers/implementations/kdfs/libdefault-lib-x942kdf.o", + "providers/implementations/kem/libdefault-lib-ec_kem.o", + "providers/implementations/kem/libdefault-lib-ecx_kem.o", + "providers/implementations/kem/libdefault-lib-kem_util.o", + "providers/implementations/kem/libdefault-lib-ml_kem_kem.o", + "providers/implementations/kem/libdefault-lib-mlx_kem.o", "providers/implementations/kem/libdefault-lib-rsa_kem.o", "providers/implementations/keymgmt/libdefault-lib-dh_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-dsa_kmgmt.o", @@ -25582,7 +29907,11 @@ our %unified_info = ( "providers/implementations/keymgmt/libdefault-lib-ecx_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-kdf_legacy_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-mac_legacy_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-ml_dsa_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-ml_kem_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-mlx_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-rsa_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-slh_dsa_kmgmt.o", "providers/implementations/macs/libdefault-lib-blake2b_mac.o", "providers/implementations/macs/libdefault-lib-blake2s_mac.o", "providers/implementations/macs/libdefault-lib-cmac_prov.o", @@ -25591,12 +29920,12 @@ our %unified_info = ( "providers/implementations/macs/libdefault-lib-kmac_prov.o", "providers/implementations/macs/libdefault-lib-poly1305_prov.o", "providers/implementations/macs/libdefault-lib-siphash_prov.o", - "providers/implementations/rands/libdefault-lib-crngt.o", "providers/implementations/rands/libdefault-lib-drbg.o", "providers/implementations/rands/libdefault-lib-drbg_ctr.o", "providers/implementations/rands/libdefault-lib-drbg_hash.o", "providers/implementations/rands/libdefault-lib-drbg_hmac.o", "providers/implementations/rands/libdefault-lib-seed_src.o", + "providers/implementations/rands/libdefault-lib-seed_src_jitter.o", "providers/implementations/rands/libdefault-lib-test_rng.o", "providers/implementations/rands/seeding/libdefault-lib-rand_cpu_x86.o", "providers/implementations/rands/seeding/libdefault-lib-rand_tsc.o", @@ -25606,11 +29935,16 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-ecdsa_sig.o", "providers/implementations/signature/libdefault-lib-eddsa_sig.o", "providers/implementations/signature/libdefault-lib-mac_legacy_sig.o", + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o", "providers/implementations/signature/libdefault-lib-rsa_sig.o", + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o", "providers/implementations/signature/libdefault-lib-sm2_sig.o", + "providers/implementations/skeymgmt/libdefault-lib-aes_skmgmt.o", + "providers/implementations/skeymgmt/libdefault-lib-generic.o", "providers/implementations/storemgmt/libdefault-lib-file_store.o", "providers/implementations/storemgmt/libdefault-lib-file_store_any2obj.o", - "ssl/libdefault-lib-s3_cbc.o" + "providers/implementations/storemgmt/libdefault-lib-winstore_store.o", + "ssl/record/methods/libdefault-lib-ssl3_cbc.o" ], "providers/libfips.a" => [ "crypto/aes/libfips-lib-aes-x86_64.o", @@ -25620,6 +29954,7 @@ our %unified_info = ( "crypto/aes/libfips-lib-aesni-sha1-x86_64.o", "crypto/aes/libfips-lib-aesni-sha256-x86_64.o", "crypto/aes/libfips-lib-aesni-x86_64.o", + "crypto/aes/libfips-lib-aesni-xts-avx512.o", "crypto/aes/libfips-lib-bsaes-x86_64.o", "crypto/aes/libfips-lib-vpaes-x86_64.o", "crypto/bn/libfips-lib-bn_add.o", @@ -25650,8 +29985,13 @@ our %unified_info = ( "crypto/bn/libfips-lib-bn_sqr.o", "crypto/bn/libfips-lib-bn_sqrt.o", "crypto/bn/libfips-lib-bn_word.o", + "crypto/bn/libfips-lib-rsaz-2k-avx512.o", + "crypto/bn/libfips-lib-rsaz-2k-avxifma.o", + "crypto/bn/libfips-lib-rsaz-3k-avx512.o", + "crypto/bn/libfips-lib-rsaz-3k-avxifma.o", + "crypto/bn/libfips-lib-rsaz-4k-avx512.o", + "crypto/bn/libfips-lib-rsaz-4k-avxifma.o", "crypto/bn/libfips-lib-rsaz-avx2.o", - "crypto/bn/libfips-lib-rsaz-avx512.o", "crypto/bn/libfips-lib-rsaz-x86_64.o", "crypto/bn/libfips-lib-rsaz_exp.o", "crypto/bn/libfips-lib-rsaz_exp_x2.o", @@ -25728,14 +30068,15 @@ our %unified_info = ( "crypto/evp/libfips-lib-kem.o", "crypto/evp/libfips-lib-keymgmt_lib.o", "crypto/evp/libfips-lib-keymgmt_meth.o", - "crypto/evp/libfips-lib-m_sigver.o", "crypto/evp/libfips-lib-mac_lib.o", "crypto/evp/libfips-lib-mac_meth.o", "crypto/evp/libfips-lib-p_lib.o", "crypto/evp/libfips-lib-pmeth_check.o", "crypto/evp/libfips-lib-pmeth_gn.o", "crypto/evp/libfips-lib-pmeth_lib.o", + "crypto/evp/libfips-lib-s_lib.o", "crypto/evp/libfips-lib-signature.o", + "crypto/evp/libfips-lib-skeymgmt_meth.o", "crypto/ffc/libfips-lib-ffc_backend.o", "crypto/ffc/libfips-lib-ffc_dh.o", "crypto/ffc/libfips-lib-ffc_key_generate.o", @@ -25743,6 +30084,8 @@ our %unified_info = ( "crypto/ffc/libfips-lib-ffc_params.o", "crypto/ffc/libfips-lib-ffc_params_generate.o", "crypto/ffc/libfips-lib-ffc_params_validate.o", + "crypto/hashtable/libfips-lib-hashfunc.o", + "crypto/hashtable/libfips-lib-hashtable.o", "crypto/hmac/libfips-lib-hmac.o", "crypto/lhash/libfips-lib-lhash.o", "crypto/libfips-lib-asn1_dsa.o", @@ -25764,6 +30107,7 @@ our %unified_info = ( "crypto/libfips-lib-params.o", "crypto/libfips-lib-params_dup.o", "crypto/libfips-lib-params_from_text.o", + "crypto/libfips-lib-params_idx.o", "crypto/libfips-lib-provider_core.o", "crypto/libfips-lib-provider_predefined.o", "crypto/libfips-lib-self_test_core.o", @@ -25772,7 +30116,18 @@ our %unified_info = ( "crypto/libfips-lib-threads_none.o", "crypto/libfips-lib-threads_pthread.o", "crypto/libfips-lib-threads_win.o", + "crypto/libfips-lib-time.o", "crypto/libfips-lib-x86_64cpuid.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_encoders.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_key.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_key_compress.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_matrix.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_ntt.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_params.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_sample.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_sign.o", + "crypto/ml_kem/libfips-lib-ml_kem.o", + "crypto/modes/libfips-lib-aes-gcm-avx512.o", "crypto/modes/libfips-lib-aesni-gcm-x86_64.o", "crypto/modes/libfips-lib-cbc128.o", "crypto/modes/libfips-lib-ccm128.o", @@ -25783,6 +30138,7 @@ our %unified_info = ( "crypto/modes/libfips-lib-ofb128.o", "crypto/modes/libfips-lib-wrap128.o", "crypto/modes/libfips-lib-xts128.o", + "crypto/modes/libfips-lib-xts128gb.o", "crypto/property/libfips-lib-defn_cache.o", "crypto/property/libfips-lib-property.o", "crypto/property/libfips-lib-property_parse.o", @@ -25816,7 +30172,23 @@ our %unified_info = ( "crypto/sha/libfips-lib-sha3.o", "crypto/sha/libfips-lib-sha512-x86_64.o", "crypto/sha/libfips-lib-sha512.o", + "crypto/slh_dsa/libfips-lib-slh_adrs.o", + "crypto/slh_dsa/libfips-lib-slh_dsa.o", + "crypto/slh_dsa/libfips-lib-slh_dsa_hash_ctx.o", + "crypto/slh_dsa/libfips-lib-slh_dsa_key.o", + "crypto/slh_dsa/libfips-lib-slh_fors.o", + "crypto/slh_dsa/libfips-lib-slh_hash.o", + "crypto/slh_dsa/libfips-lib-slh_hypertree.o", + "crypto/slh_dsa/libfips-lib-slh_params.o", + "crypto/slh_dsa/libfips-lib-slh_wots.o", + "crypto/slh_dsa/libfips-lib-slh_xmss.o", "crypto/stack/libfips-lib-stack.o", + "crypto/thread/arch/libfips-lib-thread_none.o", + "crypto/thread/arch/libfips-lib-thread_posix.o", + "crypto/thread/arch/libfips-lib-thread_win.o", + "crypto/thread/libfips-lib-api.o", + "crypto/thread/libfips-lib-arch.o", + "crypto/thread/libfips-lib-internal.o", "providers/common/der/libfips-lib-der_rsa_sig.o", "providers/common/libfips-lib-bio_prov.o", "providers/common/libfips-lib-capabilities.o", @@ -25825,6 +30197,7 @@ our %unified_info = ( "providers/common/libfips-lib-provider_util.o", "providers/common/libfips-lib-securitycheck.o", "providers/common/libfips-lib-securitycheck_fips.o", + "providers/fips/libfips-lib-fipsindicator.o", "providers/fips/libfips-lib-fipsprov.o", "providers/fips/libfips-lib-self_test.o", "providers/fips/libfips-lib-self_test_kats.o", @@ -25862,6 +30235,8 @@ our %unified_info = ( "providers/implementations/kdfs/libfips-lib-sskdf.o", "providers/implementations/kdfs/libfips-lib-tls1_prf.o", "providers/implementations/kdfs/libfips-lib-x942kdf.o", + "providers/implementations/kem/libfips-lib-ml_kem_kem.o", + "providers/implementations/kem/libfips-lib-mlx_kem.o", "providers/implementations/kem/libfips-lib-rsa_kem.o", "providers/implementations/keymgmt/libfips-lib-dh_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-dsa_kmgmt.o", @@ -25869,24 +30244,32 @@ our %unified_info = ( "providers/implementations/keymgmt/libfips-lib-ecx_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-kdf_legacy_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-mac_legacy_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-ml_dsa_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-ml_kem_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-mlx_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-rsa_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-slh_dsa_kmgmt.o", "providers/implementations/macs/libfips-lib-cmac_prov.o", "providers/implementations/macs/libfips-lib-gmac_prov.o", "providers/implementations/macs/libfips-lib-hmac_prov.o", "providers/implementations/macs/libfips-lib-kmac_prov.o", - "providers/implementations/rands/libfips-lib-crngt.o", "providers/implementations/rands/libfips-lib-drbg.o", "providers/implementations/rands/libfips-lib-drbg_ctr.o", "providers/implementations/rands/libfips-lib-drbg_hash.o", "providers/implementations/rands/libfips-lib-drbg_hmac.o", + "providers/implementations/rands/libfips-lib-fips_crng_test.o", "providers/implementations/rands/libfips-lib-test_rng.o", "providers/implementations/signature/libfips-lib-dsa_sig.o", "providers/implementations/signature/libfips-lib-ecdsa_sig.o", "providers/implementations/signature/libfips-lib-eddsa_sig.o", "providers/implementations/signature/libfips-lib-mac_legacy_sig.o", + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o", "providers/implementations/signature/libfips-lib-rsa_sig.o", + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o", + "providers/implementations/skeymgmt/libfips-lib-aes_skmgmt.o", + "providers/implementations/skeymgmt/libfips-lib-generic.o", "providers/libcommon.a", - "ssl/libfips-lib-s3_cbc.o" + "ssl/record/methods/libfips-lib-ssl3_cbc.o" ], "providers/liblegacy-lib-prov_running.o" => [ "providers/prov_running.c" @@ -25916,13 +30299,12 @@ our %unified_info = ( "providers/implementations/digests/liblegacy-lib-ripemd_prov.o", "providers/implementations/digests/liblegacy-lib-wp_prov.o", "providers/implementations/kdfs/liblegacy-lib-pbkdf1.o", + "providers/implementations/kdfs/liblegacy-lib-pvkkdf.o", "providers/liblegacy-lib-prov_running.o" ], - "ssl/libdefault-lib-s3_cbc.o" => [ - "ssl/s3_cbc.c" - ], - "ssl/libfips-lib-s3_cbc.o" => [ - "ssl/s3_cbc.c" + "providers/libtemplate.a" => [ + "providers/implementations/kem/libtemplate-lib-template_kem.o", + "providers/implementations/keymgmt/libtemplate-lib-template_kmgmt.o" ], "ssl/libssl-lib-bio_ssl.o" => [ "ssl/bio_ssl.c" @@ -25942,6 +30324,9 @@ our %unified_info = ( "ssl/libssl-lib-pqueue.o" => [ "ssl/pqueue.c" ], + "ssl/libssl-lib-priority_queue.o" => [ + "ssl/priority_queue.c" + ], "ssl/libssl-lib-s3_enc.o" => [ "ssl/s3_enc.c" ], @@ -25957,15 +30342,15 @@ our %unified_info = ( "ssl/libssl-lib-ssl_cert.o" => [ "ssl/ssl_cert.c" ], + "ssl/libssl-lib-ssl_cert_comp.o" => [ + "ssl/ssl_cert_comp.c" + ], "ssl/libssl-lib-ssl_ciph.o" => [ "ssl/ssl_ciph.c" ], "ssl/libssl-lib-ssl_conf.o" => [ "ssl/ssl_conf.c" ], - "ssl/libssl-lib-ssl_err.o" => [ - "ssl/ssl_err.c" - ], "ssl/libssl-lib-ssl_err_legacy.o" => [ "ssl/ssl_err_legacy.c" ], @@ -26014,11 +30399,131 @@ our %unified_info = ( "ssl/libssl-lib-tls_srp.o" => [ "ssl/tls_srp.c" ], - "ssl/record/libcommon-lib-tls_pad.o" => [ - "ssl/record/tls_pad.c" + "ssl/quic/libssl-lib-cc_newreno.o" => [ + "ssl/quic/cc_newreno.c" + ], + "ssl/quic/libssl-lib-json_enc.o" => [ + "ssl/quic/json_enc.c" + ], + "ssl/quic/libssl-lib-qlog.o" => [ + "ssl/quic/qlog.c" + ], + "ssl/quic/libssl-lib-qlog_event_helpers.o" => [ + "ssl/quic/qlog_event_helpers.c" + ], + "ssl/quic/libssl-lib-quic_ackm.o" => [ + "ssl/quic/quic_ackm.c" + ], + "ssl/quic/libssl-lib-quic_cfq.o" => [ + "ssl/quic/quic_cfq.c" + ], + "ssl/quic/libssl-lib-quic_channel.o" => [ + "ssl/quic/quic_channel.c" + ], + "ssl/quic/libssl-lib-quic_demux.o" => [ + "ssl/quic/quic_demux.c" + ], + "ssl/quic/libssl-lib-quic_engine.o" => [ + "ssl/quic/quic_engine.c" + ], + "ssl/quic/libssl-lib-quic_fc.o" => [ + "ssl/quic/quic_fc.c" + ], + "ssl/quic/libssl-lib-quic_fifd.o" => [ + "ssl/quic/quic_fifd.c" + ], + "ssl/quic/libssl-lib-quic_impl.o" => [ + "ssl/quic/quic_impl.c" + ], + "ssl/quic/libssl-lib-quic_lcidm.o" => [ + "ssl/quic/quic_lcidm.c" + ], + "ssl/quic/libssl-lib-quic_method.o" => [ + "ssl/quic/quic_method.c" + ], + "ssl/quic/libssl-lib-quic_obj.o" => [ + "ssl/quic/quic_obj.c" + ], + "ssl/quic/libssl-lib-quic_port.o" => [ + "ssl/quic/quic_port.c" + ], + "ssl/quic/libssl-lib-quic_rcidm.o" => [ + "ssl/quic/quic_rcidm.c" + ], + "ssl/quic/libssl-lib-quic_reactor.o" => [ + "ssl/quic/quic_reactor.c" + ], + "ssl/quic/libssl-lib-quic_reactor_wait_ctx.o" => [ + "ssl/quic/quic_reactor_wait_ctx.c" + ], + "ssl/quic/libssl-lib-quic_record_rx.o" => [ + "ssl/quic/quic_record_rx.c" + ], + "ssl/quic/libssl-lib-quic_record_shared.o" => [ + "ssl/quic/quic_record_shared.c" + ], + "ssl/quic/libssl-lib-quic_record_tx.o" => [ + "ssl/quic/quic_record_tx.c" + ], + "ssl/quic/libssl-lib-quic_record_util.o" => [ + "ssl/quic/quic_record_util.c" ], - "ssl/record/libssl-lib-dtls1_bitmap.o" => [ - "ssl/record/dtls1_bitmap.c" + "ssl/quic/libssl-lib-quic_rstream.o" => [ + "ssl/quic/quic_rstream.c" + ], + "ssl/quic/libssl-lib-quic_rx_depack.o" => [ + "ssl/quic/quic_rx_depack.c" + ], + "ssl/quic/libssl-lib-quic_sf_list.o" => [ + "ssl/quic/quic_sf_list.c" + ], + "ssl/quic/libssl-lib-quic_srt_gen.o" => [ + "ssl/quic/quic_srt_gen.c" + ], + "ssl/quic/libssl-lib-quic_srtm.o" => [ + "ssl/quic/quic_srtm.c" + ], + "ssl/quic/libssl-lib-quic_sstream.o" => [ + "ssl/quic/quic_sstream.c" + ], + "ssl/quic/libssl-lib-quic_statm.o" => [ + "ssl/quic/quic_statm.c" + ], + "ssl/quic/libssl-lib-quic_stream_map.o" => [ + "ssl/quic/quic_stream_map.c" + ], + "ssl/quic/libssl-lib-quic_thread_assist.o" => [ + "ssl/quic/quic_thread_assist.c" + ], + "ssl/quic/libssl-lib-quic_tls.o" => [ + "ssl/quic/quic_tls.c" + ], + "ssl/quic/libssl-lib-quic_tls_api.o" => [ + "ssl/quic/quic_tls_api.c" + ], + "ssl/quic/libssl-lib-quic_trace.o" => [ + "ssl/quic/quic_trace.c" + ], + "ssl/quic/libssl-lib-quic_tserver.o" => [ + "ssl/quic/quic_tserver.c" + ], + "ssl/quic/libssl-lib-quic_txp.o" => [ + "ssl/quic/quic_txp.c" + ], + "ssl/quic/libssl-lib-quic_txpim.o" => [ + "ssl/quic/quic_txpim.c" + ], + "ssl/quic/libssl-lib-quic_types.o" => [ + "ssl/quic/quic_types.c" + ], + "ssl/quic/libssl-lib-quic_wire.o" => [ + "ssl/quic/quic_wire.c" + ], + "ssl/quic/libssl-lib-quic_wire_pkt.o" => [ + "ssl/quic/quic_wire_pkt.c" + ], + "ssl/quic/libssl-lib-uint_set.o" => [ + "ssl/quic/uint_set.c" ], "ssl/record/libssl-lib-rec_layer_d1.o" => [ "ssl/record/rec_layer_d1.c" @@ -26026,14 +30531,44 @@ our %unified_info = ( "ssl/record/libssl-lib-rec_layer_s3.o" => [ "ssl/record/rec_layer_s3.c" ], - "ssl/record/libssl-lib-ssl3_buffer.o" => [ - "ssl/record/ssl3_buffer.c" + "ssl/record/methods/libcommon-lib-tls_pad.o" => [ + "ssl/record/methods/tls_pad.c" + ], + "ssl/record/methods/libdefault-lib-ssl3_cbc.o" => [ + "ssl/record/methods/ssl3_cbc.c" + ], + "ssl/record/methods/libfips-lib-ssl3_cbc.o" => [ + "ssl/record/methods/ssl3_cbc.c" + ], + "ssl/record/methods/libssl-lib-dtls_meth.o" => [ + "ssl/record/methods/dtls_meth.c" + ], + "ssl/record/methods/libssl-lib-ssl3_meth.o" => [ + "ssl/record/methods/ssl3_meth.c" + ], + "ssl/record/methods/libssl-lib-tls13_meth.o" => [ + "ssl/record/methods/tls13_meth.c" + ], + "ssl/record/methods/libssl-lib-tls1_meth.o" => [ + "ssl/record/methods/tls1_meth.c" ], - "ssl/record/libssl-lib-ssl3_record.o" => [ - "ssl/record/ssl3_record.c" + "ssl/record/methods/libssl-lib-tls_common.o" => [ + "ssl/record/methods/tls_common.c" ], - "ssl/record/libssl-lib-ssl3_record_tls13.o" => [ - "ssl/record/ssl3_record_tls13.c" + "ssl/record/methods/libssl-lib-tls_multib.o" => [ + "ssl/record/methods/tls_multib.c" + ], + "ssl/record/methods/libssl-lib-tlsany_meth.o" => [ + "ssl/record/methods/tlsany_meth.c" + ], + "ssl/rio/libssl-lib-poll_builder.o" => [ + "ssl/rio/poll_builder.c" + ], + "ssl/rio/libssl-lib-poll_immediate.o" => [ + "ssl/rio/poll_immediate.c" + ], + "ssl/rio/libssl-lib-rio_notifier.o" => [ + "ssl/rio/rio_notifier.c" ], "ssl/statem/libssl-lib-extensions.o" => [ "ssl/statem/extensions.c" @@ -26129,6 +30664,8 @@ our %unified_info = ( "test/asn1_string_table_test.c" ], "test/asn1_time_test" => [ + "crypto/asn1/asn1_time_test-bin-a_time.o", + "crypto/asn1_time_test-bin-ctype.o", "test/asn1_time_test-bin-asn1_time_test.o" ], "test/asn1_time_test-bin-asn1_time_test.o" => [ @@ -26159,6 +30696,18 @@ our %unified_info = ( "test/bftest-bin-bftest.o" => [ "test/bftest.c" ], + "test/bio_addr_test" => [ + "test/bio_addr_test-bin-bio_addr_test.o" + ], + "test/bio_addr_test-bin-bio_addr_test.o" => [ + "test/bio_addr_test.c" + ], + "test/bio_base64_test" => [ + "test/bio_base64_test-bin-bio_base64_test.o" + ], + "test/bio_base64_test-bin-bio_base64_test.o" => [ + "test/bio_base64_test.c" + ], "test/bio_callback_test" => [ "test/bio_callback_test-bin-bio_callback_test.o" ], @@ -26171,6 +30720,12 @@ our %unified_info = ( "test/bio_core_test-bin-bio_core_test.o" => [ "test/bio_core_test.c" ], + "test/bio_dgram_test" => [ + "test/bio_dgram_test-bin-bio_dgram_test.o" + ], + "test/bio_dgram_test-bin-bio_dgram_test.o" => [ + "test/bio_dgram_test.c" + ], "test/bio_enc_test" => [ "test/bio_enc_test-bin-bio_enc_test.o" ], @@ -26183,6 +30738,12 @@ our %unified_info = ( "test/bio_memleak_test-bin-bio_memleak_test.o" => [ "test/bio_memleak_test.c" ], + "test/bio_meth_test" => [ + "test/bio_meth_test-bin-bio_meth_test.o" + ], + "test/bio_meth_test-bin-bio_meth_test.o" => [ + "test/bio_meth_test.c" + ], "test/bio_prefix_text" => [ "test/bio_prefix_text-bin-bio_prefix_text.o" ], @@ -26201,6 +30762,12 @@ our %unified_info = ( "test/bio_readbuffer_test-bin-bio_readbuffer_test.o" => [ "test/bio_readbuffer_test.c" ], + "test/bio_tfo_test" => [ + "test/bio_tfo_test-bin-bio_tfo_test.o" + ], + "test/bio_tfo_test-bin-bio_tfo_test.o" => [ + "test/bio_tfo_test.c" + ], "test/bioprinttest" => [ "test/bioprinttest-bin-bioprinttest.o" ], @@ -26219,6 +30786,12 @@ our %unified_info = ( "test/bntest-bin-bntest.o" => [ "test/bntest.c" ], + "test/build_wincrypt_test" => [ + "test/build_wincrypt_test-bin-build_wincrypt_test.o" + ], + "test/build_wincrypt_test-bin-build_wincrypt_test.o" => [ + "test/build_wincrypt_test.c" + ], "test/buildtest_c_aes" => [ "test/buildtest_c_aes-bin-buildtest_aes.o" ], @@ -26249,6 +30822,12 @@ our %unified_info = ( "test/buildtest_c_buffer-bin-buildtest_buffer.o" => [ "test/buildtest_buffer.c" ], + "test/buildtest_c_byteorder" => [ + "test/buildtest_c_byteorder-bin-buildtest_byteorder.o" + ], + "test/buildtest_c_byteorder-bin-buildtest_byteorder.o" => [ + "test/buildtest_byteorder.c" + ], "test/buildtest_c_camellia" => [ "test/buildtest_c_camellia-bin-buildtest_camellia.o" ], @@ -26297,12 +30876,6 @@ our %unified_info = ( "test/buildtest_c_core_dispatch-bin-buildtest_core_dispatch.o" => [ "test/buildtest_core_dispatch.c" ], - "test/buildtest_c_core_names" => [ - "test/buildtest_c_core_names-bin-buildtest_core_names.o" - ], - "test/buildtest_c_core_names-bin-buildtest_core_names.o" => [ - "test/buildtest_core_names.c" - ], "test/buildtest_c_core_object" => [ "test/buildtest_c_core_object-bin-buildtest_core_object.o" ], @@ -26351,6 +30924,12 @@ our %unified_info = ( "test/buildtest_c_e_os2-bin-buildtest_e_os2.o" => [ "test/buildtest_e_os2.c" ], + "test/buildtest_c_e_ostime" => [ + "test/buildtest_c_e_ostime-bin-buildtest_e_ostime.o" + ], + "test/buildtest_c_e_ostime-bin-buildtest_e_ostime.o" => [ + "test/buildtest_e_ostime.c" + ], "test/buildtest_c_ebcdic" => [ "test/buildtest_c_ebcdic-bin-buildtest_ebcdic.o" ], @@ -26405,6 +30984,12 @@ our %unified_info = ( "test/buildtest_c_hmac-bin-buildtest_hmac.o" => [ "test/buildtest_hmac.c" ], + "test/buildtest_c_hpke" => [ + "test/buildtest_c_hpke-bin-buildtest_hpke.o" + ], + "test/buildtest_c_hpke-bin-buildtest_hpke.o" => [ + "test/buildtest_hpke.c" + ], "test/buildtest_c_http" => [ "test/buildtest_c_http-bin-buildtest_http.o" ], @@ -26417,6 +31002,12 @@ our %unified_info = ( "test/buildtest_c_idea-bin-buildtest_idea.o" => [ "test/buildtest_idea.c" ], + "test/buildtest_c_indicator" => [ + "test/buildtest_c_indicator-bin-buildtest_indicator.o" + ], + "test/buildtest_c_indicator-bin-buildtest_indicator.o" => [ + "test/buildtest_indicator.c" + ], "test/buildtest_c_kdf" => [ "test/buildtest_c_kdf-bin-buildtest_kdf.o" ], @@ -26447,6 +31038,12 @@ our %unified_info = ( "test/buildtest_c_mdc2-bin-buildtest_mdc2.o" => [ "test/buildtest_mdc2.c" ], + "test/buildtest_c_ml_kem" => [ + "test/buildtest_c_ml_kem-bin-buildtest_ml_kem.o" + ], + "test/buildtest_c_ml_kem-bin-buildtest_ml_kem.o" => [ + "test/buildtest_ml_kem.c" + ], "test/buildtest_c_modes" => [ "test/buildtest_c_modes-bin-buildtest_modes.o" ], @@ -26507,6 +31104,12 @@ our %unified_info = ( "test/buildtest_c_provider-bin-buildtest_provider.o" => [ "test/buildtest_provider.c" ], + "test/buildtest_c_quic" => [ + "test/buildtest_c_quic-bin-buildtest_quic.o" + ], + "test/buildtest_c_quic-bin-buildtest_quic.o" => [ + "test/buildtest_quic.c" + ], "test/buildtest_c_rand" => [ "test/buildtest_c_rand-bin-buildtest_rand.o" ], @@ -26591,6 +31194,12 @@ our %unified_info = ( "test/buildtest_c_symhacks-bin-buildtest_symhacks.o" => [ "test/buildtest_symhacks.c" ], + "test/buildtest_c_thread" => [ + "test/buildtest_c_thread-bin-buildtest_thread.o" + ], + "test/buildtest_c_thread-bin-buildtest_thread.o" => [ + "test/buildtest_thread.c" + ], "test/buildtest_c_tls1" => [ "test/buildtest_c_tls1-bin-buildtest_tls1.o" ], @@ -26621,6 +31230,29 @@ our %unified_info = ( "test/buildtest_c_whrlpool-bin-buildtest_whrlpool.o" => [ "test/buildtest_whrlpool.c" ], + "test/byteorder_test" => [ + "test/byteorder_test-bin-byteorder_test.o" + ], + "test/byteorder_test-bin-byteorder_test.o" => [ + "test/byteorder_test.c" + ], + "test/ca_internals_test" => [ + "apps/ca_internals_test-bin-ca.o", + "apps/lib/ca_internals_test-bin-app_libctx.o", + "apps/lib/ca_internals_test-bin-app_provider.o", + "apps/lib/ca_internals_test-bin-app_rand.o", + "apps/lib/ca_internals_test-bin-app_x509.o", + "apps/lib/ca_internals_test-bin-apps.o", + "apps/lib/ca_internals_test-bin-apps_ui.o", + "apps/lib/ca_internals_test-bin-engine.o", + "apps/lib/ca_internals_test-bin-fmt.o", + "crypto/asn1/ca_internals_test-bin-a_time.o", + "crypto/ca_internals_test-bin-ctype.o", + "test/ca_internals_test-bin-ca_internals_test.o" + ], + "test/ca_internals_test-bin-ca_internals_test.o" => [ + "test/ca_internals_test.c" + ], "test/casttest" => [ "test/casttest-bin-casttest.o" ], @@ -26799,6 +31431,12 @@ our %unified_info = ( "test/danetest-bin-danetest.o" => [ "test/danetest.c" ], + "test/decoder_propq_test" => [ + "test/decoder_propq_test-bin-decoder_propq_test.o" + ], + "test/decoder_propq_test-bin-decoder_propq_test.o" => [ + "test/decoder_propq_test.c" + ], "test/defltfips_test" => [ "test/defltfips_test-bin-defltfips_test.o" ], @@ -26880,6 +31518,7 @@ our %unified_info = ( "test/ectest.c" ], "test/endecode_test" => [ + "providers/endecode_test-bin-legacyprov.o", "test/endecode_test-bin-endecode_test.o", "test/helpers/endecode_test-bin-predefined_dhparams.o" ], @@ -26912,17 +31551,29 @@ our %unified_info = ( ], "test/evp_extra_test" => [ "providers/evp_extra_test-bin-legacyprov.o", - "test/evp_extra_test-bin-evp_extra_test.o" + "test/evp_extra_test-bin-evp_extra_test.o", + "test/evp_extra_test-bin-fake_pipelineprov.o", + "test/evp_extra_test-bin-fake_rsaprov.o" ], "test/evp_extra_test-bin-evp_extra_test.o" => [ "test/evp_extra_test.c" ], + "test/evp_extra_test-bin-fake_pipelineprov.o" => [ + "test/fake_pipelineprov.c" + ], + "test/evp_extra_test-bin-fake_rsaprov.o" => [ + "test/fake_rsaprov.c" + ], "test/evp_extra_test2" => [ - "test/evp_extra_test2-bin-evp_extra_test2.o" + "test/evp_extra_test2-bin-evp_extra_test2.o", + "test/evp_extra_test2-bin-tls-provider.o" ], "test/evp_extra_test2-bin-evp_extra_test2.o" => [ "test/evp_extra_test2.c" ], + "test/evp_extra_test2-bin-tls-provider.o" => [ + "test/tls-provider.c" + ], "test/evp_fetch_prov_test" => [ "test/evp_fetch_prov_test-bin-evp_fetch_prov_test.o" ], @@ -26947,6 +31598,12 @@ our %unified_info = ( "test/evp_pkey_ctx_new_from_name-bin-evp_pkey_ctx_new_from_name.o" => [ "test/evp_pkey_ctx_new_from_name.c" ], + "test/evp_pkey_dhkem_test" => [ + "test/evp_pkey_dhkem_test-bin-evp_pkey_dhkem_test.o" + ], + "test/evp_pkey_dhkem_test-bin-evp_pkey_dhkem_test.o" => [ + "test/evp_pkey_dhkem_test.c" + ], "test/evp_pkey_dparams_test" => [ "test/evp_pkey_dparams_test-bin-evp_pkey_dparams_test.o" ], @@ -26959,12 +31616,28 @@ our %unified_info = ( "test/evp_pkey_provided_test-bin-evp_pkey_provided_test.o" => [ "test/evp_pkey_provided_test.c" ], + "test/evp_skey_test" => [ + "test/evp_skey_test-bin-evp_skey_test.o", + "test/evp_skey_test-bin-fake_cipherprov.o" + ], + "test/evp_skey_test-bin-evp_skey_test.o" => [ + "test/evp_skey_test.c" + ], + "test/evp_skey_test-bin-fake_cipherprov.o" => [ + "test/fake_cipherprov.c" + ], "test/evp_test" => [ "test/evp_test-bin-evp_test.o" ], "test/evp_test-bin-evp_test.o" => [ "test/evp_test.c" ], + "test/evp_xof_test" => [ + "test/evp_xof_test-bin-evp_xof_test.o" + ], + "test/evp_xof_test-bin-evp_xof_test.o" => [ + "test/evp_xof_test.c" + ], "test/exdatatest" => [ "test/exdatatest-bin-exdatatest.o" ], @@ -27050,15 +31723,108 @@ our %unified_info = ( "test/helpers/fatalerrtest-bin-ssltestlib.o" => [ "test/helpers/ssltestlib.c" ], + "test/helpers/json_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/json_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/json_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/json_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/pkcs12_api_test-bin-pkcs12.o" => [ + "test/helpers/pkcs12.c" + ], "test/helpers/pkcs12_format_test-bin-pkcs12.o" => [ "test/helpers/pkcs12.c" ], + "test/helpers/quic_multistream_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quic_multistream_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quic_multistream_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quic_multistream_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quic_newcid_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quic_newcid_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quic_newcid_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quic_newcid_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quic_radix_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quic_radix_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quic_radix_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quic_radix_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quic_srt_gen_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quic_srt_gen_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quic_srt_gen_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quic_srt_gen_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quicapitest-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quicapitest-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quicapitest-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quicapitest-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quicfaultstest-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quicfaultstest-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quicfaultstest-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quicfaultstest-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], "test/helpers/recordlentest-bin-ssltestlib.o" => [ "test/helpers/ssltestlib.c" ], + "test/helpers/rpktest-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], "test/helpers/servername_test-bin-ssltestlib.o" => [ "test/helpers/ssltestlib.c" ], + "test/helpers/ssl_handshake_rtt_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], "test/helpers/ssl_old_test-bin-predefined_dhparams.o" => [ "test/helpers/predefined_dhparams.c" ], @@ -27086,6 +31852,9 @@ our %unified_info = ( "test/helpers/tls13ccstest-bin-ssltestlib.o" => [ "test/helpers/ssltestlib.c" ], + "test/helpers/tls13groupselection_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], "test/hexstr_test" => [ "test/hexstr_test-bin-hexstr_test.o" ], @@ -27098,6 +31867,12 @@ our %unified_info = ( "test/hmactest-bin-hmactest.o" => [ "test/hmactest.c" ], + "test/hpke_test" => [ + "test/hpke_test-bin-hpke_test.o" + ], + "test/hpke_test-bin-hpke_test.o" => [ + "test/hpke_test.c" + ], "test/http_test" => [ "test/http_test-bin-http_test.o" ], @@ -27116,6 +31891,16 @@ our %unified_info = ( "test/igetest-bin-igetest.o" => [ "test/igetest.c" ], + "test/json_test" => [ + "test/helpers/json_test-bin-noisydgrambio.o", + "test/helpers/json_test-bin-pktsplitbio.o", + "test/helpers/json_test-bin-quictestlib.o", + "test/helpers/json_test-bin-ssltestlib.o", + "test/json_test-bin-json_test.o" + ], + "test/json_test-bin-json_test.o" => [ + "test/json_test.c" + ], "test/keymgmt_internal_test" => [ "test/keymgmt_internal_test-bin-keymgmt_internal_test.o" ], @@ -27137,6 +31922,7 @@ our %unified_info = ( "test/testutil/libtestutil-lib-driver.o", "test/testutil/libtestutil-lib-fake_random.o", "test/testutil/libtestutil-lib-format_output.o", + "test/testutil/libtestutil-lib-helper.o", "test/testutil/libtestutil-lib-load.o", "test/testutil/libtestutil-lib-main.o", "test/testutil/libtestutil-lib-options.o", @@ -27149,6 +31935,12 @@ our %unified_info = ( "test/testutil/libtestutil-lib-tests.o", "test/testutil/libtestutil-lib-testutil_init.o" ], + "test/list_test" => [ + "test/list_test-bin-list_test.o" + ], + "test/list_test-bin-list_test.o" => [ + "test/list_test.c" + ], "test/localetest" => [ "test/localetest-bin-localetest.o" ], @@ -27167,12 +31959,36 @@ our %unified_info = ( "test/mdc2test-bin-mdc2test.o" => [ "test/mdc2test.c" ], + "test/membio_test" => [ + "test/membio_test-bin-membio_test.o" + ], + "test/membio_test-bin-membio_test.o" => [ + "test/membio_test.c" + ], "test/memleaktest" => [ "test/memleaktest-bin-memleaktest.o" ], "test/memleaktest-bin-memleaktest.o" => [ "test/memleaktest.c" ], + "test/ml_dsa_test" => [ + "test/ml_dsa_test-bin-ml_dsa_test.o" + ], + "test/ml_dsa_test-bin-ml_dsa_test.o" => [ + "test/ml_dsa_test.c" + ], + "test/ml_kem_evp_extra_test" => [ + "test/ml_kem_evp_extra_test-bin-ml_kem_evp_extra_test.o" + ], + "test/ml_kem_evp_extra_test-bin-ml_kem_evp_extra_test.o" => [ + "test/ml_kem_evp_extra_test.c" + ], + "test/ml_kem_internal_test" => [ + "test/ml_kem_internal_test-bin-ml_kem_internal_test.o" + ], + "test/ml_kem_internal_test-bin-ml_kem_internal_test.o" => [ + "test/ml_kem_internal_test.c" + ], "test/modes_internal_test" => [ "test/modes_internal_test-bin-modes_internal_test.o" ], @@ -27218,11 +32034,18 @@ our %unified_info = ( "test/p_test.c" ], "test/packettest" => [ + "crypto/packettest-bin-quic_vlint.o", "test/packettest-bin-packettest.o" ], "test/packettest-bin-packettest.o" => [ "test/packettest.c" ], + "test/pairwise_fail_test" => [ + "test/pairwise_fail_test-bin-pairwise_fail_test.o" + ], + "test/pairwise_fail_test-bin-pairwise_fail_test.o" => [ + "test/pairwise_fail_test.c" + ], "test/param_build_test" => [ "test/param_build_test-bin-param_build_test.o" ], @@ -27271,6 +32094,13 @@ our %unified_info = ( "test/pemtest-bin-pemtest.o" => [ "test/pemtest.c" ], + "test/pkcs12_api_test" => [ + "test/helpers/pkcs12_api_test-bin-pkcs12.o", + "test/pkcs12_api_test-bin-pkcs12_api_test.o" + ], + "test/pkcs12_api_test-bin-pkcs12_api_test.o" => [ + "test/pkcs12_api_test.c" + ], "test/pkcs12_format_test" => [ "test/helpers/pkcs12_format_test-bin-pkcs12.o", "test/pkcs12_format_test-bin-pkcs12_format_test.o" @@ -27302,6 +32132,12 @@ our %unified_info = ( "test/poly1305_internal_test-bin-poly1305_internal_test.o" => [ "test/poly1305_internal_test.c" ], + "test/priority_queue_test" => [ + "test/priority_queue_test-bin-priority_queue_test.o" + ], + "test/priority_queue_test-bin-priority_queue_test.o" => [ + "test/priority_queue_test.c" + ], "test/property_test" => [ "test/property_test-bin-property_test.o" ], @@ -27320,6 +32156,12 @@ our %unified_info = ( "test/provfetchtest-bin-provfetchtest.o" => [ "test/provfetchtest.c" ], + "test/provider_default_search_path_test" => [ + "test/provider_default_search_path_test-bin-provider_default_search_path_test.o" + ], + "test/provider_default_search_path_test-bin-provider_default_search_path_test.o" => [ + "test/provider_default_search_path_test.c" + ], "test/provider_fallback_test" => [ "test/provider_fallback_test-bin-provider_fallback_test.o" ], @@ -27368,6 +32210,174 @@ our %unified_info = ( "test/punycode_test-bin-punycode_test.o" => [ "test/punycode_test.c" ], + "test/quic_ackm_test" => [ + "test/quic_ackm_test-bin-cc_dummy.o", + "test/quic_ackm_test-bin-quic_ackm_test.o" + ], + "test/quic_ackm_test-bin-cc_dummy.o" => [ + "test/cc_dummy.c" + ], + "test/quic_ackm_test-bin-quic_ackm_test.o" => [ + "test/quic_ackm_test.c" + ], + "test/quic_cc_test" => [ + "test/quic_cc_test-bin-quic_cc_test.o" + ], + "test/quic_cc_test-bin-quic_cc_test.o" => [ + "test/quic_cc_test.c" + ], + "test/quic_cfq_test" => [ + "test/quic_cfq_test-bin-quic_cfq_test.o" + ], + "test/quic_cfq_test-bin-quic_cfq_test.o" => [ + "test/quic_cfq_test.c" + ], + "test/quic_client_test" => [ + "test/quic_client_test-bin-quic_client_test.o" + ], + "test/quic_client_test-bin-quic_client_test.o" => [ + "test/quic_client_test.c" + ], + "test/quic_fc_test" => [ + "test/quic_fc_test-bin-quic_fc_test.o" + ], + "test/quic_fc_test-bin-quic_fc_test.o" => [ + "test/quic_fc_test.c" + ], + "test/quic_fifd_test" => [ + "test/quic_fifd_test-bin-cc_dummy.o", + "test/quic_fifd_test-bin-quic_fifd_test.o" + ], + "test/quic_fifd_test-bin-cc_dummy.o" => [ + "test/cc_dummy.c" + ], + "test/quic_fifd_test-bin-quic_fifd_test.o" => [ + "test/quic_fifd_test.c" + ], + "test/quic_lcidm_test" => [ + "test/quic_lcidm_test-bin-quic_lcidm_test.o" + ], + "test/quic_lcidm_test-bin-quic_lcidm_test.o" => [ + "test/quic_lcidm_test.c" + ], + "test/quic_multistream_test" => [ + "test/helpers/quic_multistream_test-bin-noisydgrambio.o", + "test/helpers/quic_multistream_test-bin-pktsplitbio.o", + "test/helpers/quic_multistream_test-bin-quictestlib.o", + "test/helpers/quic_multistream_test-bin-ssltestlib.o", + "test/quic_multistream_test-bin-quic_multistream_test.o" + ], + "test/quic_multistream_test-bin-quic_multistream_test.o" => [ + "test/quic_multistream_test.c" + ], + "test/quic_newcid_test" => [ + "test/helpers/quic_newcid_test-bin-noisydgrambio.o", + "test/helpers/quic_newcid_test-bin-pktsplitbio.o", + "test/helpers/quic_newcid_test-bin-quictestlib.o", + "test/helpers/quic_newcid_test-bin-ssltestlib.o", + "test/quic_newcid_test-bin-quic_newcid_test.o" + ], + "test/quic_newcid_test-bin-quic_newcid_test.o" => [ + "test/quic_newcid_test.c" + ], + "test/quic_qlog_test" => [ + "test/quic_qlog_test-bin-quic_qlog_test.o" + ], + "test/quic_qlog_test-bin-quic_qlog_test.o" => [ + "test/quic_qlog_test.c" + ], + "test/quic_radix_test" => [ + "test/helpers/quic_radix_test-bin-noisydgrambio.o", + "test/helpers/quic_radix_test-bin-pktsplitbio.o", + "test/helpers/quic_radix_test-bin-quictestlib.o", + "test/helpers/quic_radix_test-bin-ssltestlib.o", + "test/radix/quic_radix_test-bin-quic_radix.o" + ], + "test/quic_rcidm_test" => [ + "test/quic_rcidm_test-bin-quic_rcidm_test.o" + ], + "test/quic_rcidm_test-bin-quic_rcidm_test.o" => [ + "test/quic_rcidm_test.c" + ], + "test/quic_record_test" => [ + "test/quic_record_test-bin-quic_record_test.o" + ], + "test/quic_record_test-bin-quic_record_test.o" => [ + "test/quic_record_test.c" + ], + "test/quic_srt_gen_test" => [ + "test/helpers/quic_srt_gen_test-bin-noisydgrambio.o", + "test/helpers/quic_srt_gen_test-bin-pktsplitbio.o", + "test/helpers/quic_srt_gen_test-bin-quictestlib.o", + "test/helpers/quic_srt_gen_test-bin-ssltestlib.o", + "test/quic_srt_gen_test-bin-quic_srt_gen_test.o" + ], + "test/quic_srt_gen_test-bin-quic_srt_gen_test.o" => [ + "test/quic_srt_gen_test.c" + ], + "test/quic_srtm_test" => [ + "test/quic_srtm_test-bin-quic_srtm_test.o" + ], + "test/quic_srtm_test-bin-quic_srtm_test.o" => [ + "test/quic_srtm_test.c" + ], + "test/quic_stream_test" => [ + "test/quic_stream_test-bin-quic_stream_test.o" + ], + "test/quic_stream_test-bin-quic_stream_test.o" => [ + "test/quic_stream_test.c" + ], + "test/quic_tserver_test" => [ + "test/quic_tserver_test-bin-quic_tserver_test.o" + ], + "test/quic_tserver_test-bin-quic_tserver_test.o" => [ + "test/quic_tserver_test.c" + ], + "test/quic_txp_test" => [ + "test/quic_txp_test-bin-cc_dummy.o", + "test/quic_txp_test-bin-quic_txp_test.o" + ], + "test/quic_txp_test-bin-cc_dummy.o" => [ + "test/cc_dummy.c" + ], + "test/quic_txp_test-bin-quic_txp_test.o" => [ + "test/quic_txp_test.c" + ], + "test/quic_txpim_test" => [ + "test/quic_txpim_test-bin-quic_txpim_test.o" + ], + "test/quic_txpim_test-bin-quic_txpim_test.o" => [ + "test/quic_txpim_test.c" + ], + "test/quic_wire_test" => [ + "test/quic_wire_test-bin-quic_wire_test.o" + ], + "test/quic_wire_test-bin-quic_wire_test.o" => [ + "test/quic_wire_test.c" + ], + "test/quicapitest" => [ + "test/helpers/quicapitest-bin-noisydgrambio.o", + "test/helpers/quicapitest-bin-pktsplitbio.o", + "test/helpers/quicapitest-bin-quictestlib.o", + "test/helpers/quicapitest-bin-ssltestlib.o", + "test/quicapitest-bin-quicapitest.o" + ], + "test/quicapitest-bin-quicapitest.o" => [ + "test/quicapitest.c" + ], + "test/quicfaultstest" => [ + "test/helpers/quicfaultstest-bin-noisydgrambio.o", + "test/helpers/quicfaultstest-bin-pktsplitbio.o", + "test/helpers/quicfaultstest-bin-quictestlib.o", + "test/helpers/quicfaultstest-bin-ssltestlib.o", + "test/quicfaultstest-bin-quicfaultstest.o" + ], + "test/quicfaultstest-bin-quicfaultstest.o" => [ + "test/quicfaultstest.c" + ], + "test/radix/quic_radix_test-bin-quic_radix.o" => [ + "test/radix/quic_radix.c" + ], "test/rand_status_test" => [ "test/rand_status_test-bin-rand_status_test.o" ], @@ -27398,11 +32408,11 @@ our %unified_info = ( "test/rc5test-bin-rc5test.o" => [ "test/rc5test.c" ], - "test/rdrand_sanitytest" => [ - "test/rdrand_sanitytest-bin-rdrand_sanitytest.o" + "test/rdcpu_sanitytest" => [ + "test/rdcpu_sanitytest-bin-rdcpu_sanitytest.o" ], - "test/rdrand_sanitytest-bin-rdrand_sanitytest.o" => [ - "test/rdrand_sanitytest.c" + "test/rdcpu_sanitytest-bin-rdcpu_sanitytest.o" => [ + "test/rdcpu_sanitytest.c" ], "test/recordlentest" => [ "test/helpers/recordlentest-bin-ssltestlib.o", @@ -27411,6 +32421,13 @@ our %unified_info = ( "test/recordlentest-bin-recordlentest.o" => [ "test/recordlentest.c" ], + "test/rpktest" => [ + "test/helpers/rpktest-bin-ssltestlib.o", + "test/rpktest-bin-rpktest.o" + ], + "test/rpktest-bin-rpktest.o" => [ + "test/rpktest.c" + ], "test/rsa_complex" => [ "test/rsa_complex-bin-rsa_complex.o" ], @@ -27435,6 +32452,18 @@ our %unified_info = ( "test/rsa_test-bin-rsa_test.o" => [ "test/rsa_test.c" ], + "test/rsa_x931_test" => [ + "test/rsa_x931_test-bin-rsa_x931_test.o" + ], + "test/rsa_x931_test-bin-rsa_x931_test.o" => [ + "test/rsa_x931_test.c" + ], + "test/safe_math_test" => [ + "test/safe_math_test-bin-safe_math_test.o" + ], + "test/safe_math_test-bin-safe_math_test.o" => [ + "test/safe_math_test.c" + ], "test/sanitytest" => [ "test/sanitytest-bin-sanitytest.o" ], @@ -27466,6 +32495,12 @@ our %unified_info = ( "test/siphash_internal_test-bin-siphash_internal_test.o" => [ "test/siphash_internal_test.c" ], + "test/slh_dsa_test" => [ + "test/slh_dsa_test-bin-slh_dsa_test.o" + ], + "test/slh_dsa_test-bin-slh_dsa_test.o" => [ + "test/slh_dsa_test.c" + ], "test/sm2_internal_test" => [ "test/sm2_internal_test-bin-sm2_internal_test.o" ], @@ -27508,6 +32543,13 @@ our %unified_info = ( "test/ssl_ctx_test-bin-ssl_ctx_test.o" => [ "test/ssl_ctx_test.c" ], + "test/ssl_handshake_rtt_test" => [ + "test/helpers/ssl_handshake_rtt_test-bin-ssltestlib.o", + "test/ssl_handshake_rtt_test-bin-ssl_handshake_rtt_test.o" + ], + "test/ssl_handshake_rtt_test-bin-ssl_handshake_rtt_test.o" => [ + "test/ssl_handshake_rtt_test.c" + ], "test/ssl_old_test" => [ "test/helpers/ssl_old_test-bin-predefined_dhparams.o", "test/ssl_old_test-bin-ssl_old_test.o" @@ -27566,6 +32608,12 @@ our %unified_info = ( "test/stack_test-bin-stack_test.o" => [ "test/stack_test.c" ], + "test/strtoultest" => [ + "test/strtoultest-bin-strtoultest.o" + ], + "test/strtoultest-bin-strtoultest.o" => [ + "test/strtoultest.c" + ], "test/sysdefaulttest" => [ "test/sysdefaulttest-bin-sysdefaulttest.o" ], @@ -27596,6 +32644,9 @@ our %unified_info = ( "test/testutil/libtestutil-lib-format_output.o" => [ "test/testutil/format_output.c" ], + "test/testutil/libtestutil-lib-helper.o" => [ + "test/testutil/helper.c" + ], "test/testutil/libtestutil-lib-load.o" => [ "test/testutil/load.c" ], @@ -27629,6 +32680,12 @@ our %unified_info = ( "test/testutil/libtestutil-lib-testutil_init.o" => [ "test/testutil/testutil_init.c" ], + "test/threadpool_test" => [ + "test/threadpool_test-bin-threadpool_test.o" + ], + "test/threadpool_test-bin-threadpool_test.o" => [ + "test/threadpool_test.c" + ], "test/threadstest" => [ "test/threadstest-bin-threadstest.o" ], @@ -27647,6 +32704,12 @@ our %unified_info = ( "test/time_offset_test-bin-time_offset_test.o" => [ "test/time_offset_test.c" ], + "test/time_test" => [ + "test/time_test-bin-time_test.o" + ], + "test/time_test-bin-time_test.o" => [ + "test/time_test.c" + ], "test/tls13ccstest" => [ "test/helpers/tls13ccstest-bin-ssltestlib.o", "test/tls13ccstest-bin-tls13ccstest.o" @@ -27660,6 +32723,13 @@ our %unified_info = ( "test/tls13encryptiontest-bin-tls13encryptiontest.o" => [ "test/tls13encryptiontest.c" ], + "test/tls13groupselection_test" => [ + "test/helpers/tls13groupselection_test-bin-ssltestlib.o", + "test/tls13groupselection_test-bin-tls13groupselection_test.o" + ], + "test/tls13groupselection_test-bin-tls13groupselection_test.o" => [ + "test/tls13groupselection_test.c" + ], "test/trace_api_test" => [ "test/trace_api_test-bin-trace_api_test.o" ], @@ -27715,6 +32785,12 @@ our %unified_info = ( "test/wpackettest-bin-wpackettest.o" => [ "test/wpackettest.c" ], + "test/x509_acert_test" => [ + "test/x509_acert_test-bin-x509_acert_test.o" + ], + "test/x509_acert_test-bin-x509_acert_test.o" => [ + "test/x509_acert_test.c" + ], "test/x509_check_cert_pkey_test" => [ "test/x509_check_cert_pkey_test-bin-x509_check_cert_pkey_test.o" ], @@ -27733,6 +32809,24 @@ our %unified_info = ( "test/x509_internal_test-bin-x509_internal_test.o" => [ "test/x509_internal_test.c" ], + "test/x509_load_cert_file_test" => [ + "test/x509_load_cert_file_test-bin-x509_load_cert_file_test.o" + ], + "test/x509_load_cert_file_test-bin-x509_load_cert_file_test.o" => [ + "test/x509_load_cert_file_test.c" + ], + "test/x509_req_test" => [ + "test/x509_req_test-bin-x509_req_test.o" + ], + "test/x509_req_test-bin-x509_req_test.o" => [ + "test/x509_req_test.c" + ], + "test/x509_test" => [ + "test/x509_test-bin-x509_test.o" + ], + "test/x509_test-bin-x509_test.o" => [ + "test/x509_test.c" + ], "test/x509_time_test" => [ "test/x509_time_test-bin-x509_time_test.o" ], @@ -27793,6 +32887,7 @@ my @makevars = ( "LDLIBS", "MT", "MTFLAGS", + "OBJCOPY", "PERL", "RANLIB", "RC", @@ -27806,6 +32901,12 @@ my %disabled_info = ( "asan" => { "macro" => "OPENSSL_NO_ASAN" }, + "brotli" => { + "macro" => "OPENSSL_NO_BROTLI" + }, + "brotli-dynamic" => { + "macro" => "OPENSSL_NO_BROTLI_DYNAMIC" + }, "comp" => { "macro" => "OPENSSL_NO_COMP", "skipped" => [ @@ -27818,6 +32919,9 @@ my %disabled_info = ( "crypto-mdebug-backtrace" => { "macro" => "OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE" }, + "demos" => { + "macro" => "OPENSSL_NO_DEMOS" + }, "devcryptoeng" => { "macro" => "OPENSSL_NO_DEVCRYPTOENG" }, @@ -27830,12 +32934,24 @@ my %disabled_info = ( "external-tests" => { "macro" => "OPENSSL_NO_EXTERNAL_TESTS" }, + "fips-jitter" => { + "macro" => "OPENSSL_NO_FIPS_JITTER" + }, "fuzz-afl" => { "macro" => "OPENSSL_NO_FUZZ_AFL" }, "fuzz-libfuzzer" => { "macro" => "OPENSSL_NO_FUZZ_LIBFUZZER" }, + "h3demo" => { + "macro" => "OPENSSL_NO_H3DEMO" + }, + "hqinterop" => { + "macro" => "OPENSSL_NO_HQINTEROP" + }, + "jitter" => { + "macro" => "OPENSSL_NO_JITTER" + }, "ktls" => { "macro" => "OPENSSL_NO_KTLS" }, @@ -27851,6 +32967,9 @@ my %disabled_info = ( "msan" => { "macro" => "OPENSSL_NO_MSAN" }, + "pie" => { + "macro" => "OPENSSL_NO_PIE" + }, "rc5" => { "macro" => "OPENSSL_NO_RC5", "skipped" => [ @@ -27866,6 +32985,12 @@ my %disabled_info = ( "ssl3-method" => { "macro" => "OPENSSL_NO_SSL3_METHOD" }, + "sslkeylog" => { + "macro" => "OPENSSL_NO_SSLKEYLOG" + }, + "tfo" => { + "macro" => "OPENSSL_NO_TFO" + }, "trace" => { "macro" => "OPENSSL_NO_TRACE" }, @@ -27880,6 +33005,18 @@ my %disabled_info = ( }, "weak-ssl-ciphers" => { "macro" => "OPENSSL_NO_WEAK_SSL_CIPHERS" + }, + "zlib" => { + "macro" => "OPENSSL_NO_ZLIB" + }, + "zlib-dynamic" => { + "macro" => "OPENSSL_NO_ZLIB_DYNAMIC" + }, + "zstd" => { + "macro" => "OPENSSL_NO_ZSTD" + }, + "zstd-dynamic" => { + "macro" => "OPENSSL_NO_ZSTD_DYNAMIC" } ); my @user_crossable = qw( AR AS CC CXX CPP LD MT RANLIB RC ); @@ -27893,15 +33030,15 @@ unless (caller) { use File::Copy; use Pod::Usage; - use lib '/home/runner/work/node/node/deps/openssl/openssl/util/perl'; - use OpenSSL::fallback '/home/runner/work/node/node/deps/openssl/openssl/external/perl/MODULES.txt'; + use lib '/node/deps/openssl/openssl/util/perl'; + use OpenSSL::fallback '/node/deps/openssl/openssl/external/perl/MODULES.txt'; my $here = dirname($0); if (scalar @ARGV == 0) { # With no arguments, re-create the build file # We do that in two steps, where the first step emits perl - # snipets. + # snippets. my $buildfile = $config{build_file}; my $buildfile_template = "$buildfile.in"; @@ -27921,7 +33058,7 @@ unless (caller) { ); use lib '.'; - use lib '/home/runner/work/node/node/deps/openssl/openssl/Configurations'; + use lib '/node/deps/openssl/openssl/Configurations'; use gentemplate; open my $buildfile_template_fh, ">$buildfile_template" @@ -27938,8 +33075,8 @@ unless (caller) { my $prepend = <<'_____'; use File::Spec::Functions; -use lib '/home/runner/work/node/node/deps/openssl/openssl/util/perl'; -use lib '/home/runner/work/node/node/deps/openssl/openssl/Configurations'; +use lib '/node/deps/openssl/openssl/util/perl'; +use lib '/node/deps/openssl/openssl/Configurations'; use lib '.'; use platform; _____ diff --git a/deps/openssl/config/archs/VC-WIN64A/asm_avx2/crypto/aes/aes-x86_64.asm b/deps/openssl/config/archs/VC-WIN64A/asm_avx2/crypto/aes/aes-x86_64.asm index 32e49db2b9cbc6..61e7c0a9fada60 100644 --- a/deps/openssl/config/archs/VC-WIN64A/asm_avx2/crypto/aes/aes-x86_64.asm +++ b/deps/openssl/config/archs/VC-WIN64A/asm_avx2/crypto/aes/aes-x86_64.asm @@ -1915,6 +1915,7 @@ $L$cbc_epilogue: DB 0F3h,0C3h ;repret $L$SEH_end_AES_cbc_encrypt: +section .rdata rdata align=64 ALIGN 64 $L$AES_Te: DD 0xa56363c6,0xa56363c6 @@ -2704,6 +2705,7 @@ DB 67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97 DB 112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103 DB 62,0 ALIGN 64 +section .text EXTERN __imp_RtlVirtualUnwind ALIGN 16 diff --git a/deps/openssl/config/archs/VC-WIN64A/asm_avx2/crypto/aes/aesni-sha1-x86_64.asm b/deps/openssl/config/archs/VC-WIN64A/asm_avx2/crypto/aes/aesni-sha1-x86_64.asm index ac71215c45e2dc..a842bfa5e5cbe2 100644 --- a/deps/openssl/config/archs/VC-WIN64A/asm_avx2/crypto/aes/aesni-sha1-x86_64.asm +++ b/deps/openssl/config/archs/VC-WIN64A/asm_avx2/crypto/aes/aesni-sha1-x86_64.asm @@ -2781,6 +2781,7 @@ $L$epilogue_avx: DB 0F3h,0C3h ;repret $L$SEH_end_aesni_cbc_sha1_enc_avx: +section .rdata rdata align=64 ALIGN 64 K_XX_XX: DD 0x5a827999,0x5a827999,0x5a827999,0x5a827999 @@ -2796,6 +2797,7 @@ DB 44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32 DB 60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111 DB 114,103,62,0 ALIGN 64 +section .text ALIGN 32 aesni_cbc_sha1_enc_shaext: diff --git a/deps/openssl/config/archs/VC-WIN64A/asm_avx2/crypto/aes/aesni-sha256-x86_64.asm b/deps/openssl/config/archs/VC-WIN64A/asm_avx2/crypto/aes/aesni-sha256-x86_64.asm index 17e571d38b1846..39a88bc72d1930 100644 --- a/deps/openssl/config/archs/VC-WIN64A/asm_avx2/crypto/aes/aesni-sha256-x86_64.asm +++ b/deps/openssl/config/archs/VC-WIN64A/asm_avx2/crypto/aes/aesni-sha256-x86_64.asm @@ -39,6 +39,7 @@ $L$probe: +section .rdata rdata align=64 ALIGN 64 K256: @@ -85,6 +86,7 @@ DB 54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98 DB 121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108 DB 46,111,114,103,62,0 ALIGN 64 +section .text ALIGN 64 aesni_cbc_sha256_enc_xop: diff --git a/deps/openssl/config/archs/VC-WIN64A/asm_avx2/crypto/aes/aesni-x86_64.asm b/deps/openssl/config/archs/VC-WIN64A/asm_avx2/crypto/aes/aesni-x86_64.asm index b590ecea7d5a49..8058ea319e20c6 100644 --- a/deps/openssl/config/archs/VC-WIN64A/asm_avx2/crypto/aes/aesni-x86_64.asm +++ b/deps/openssl/config/archs/VC-WIN64A/asm_avx2/crypto/aes/aesni-x86_64.asm @@ -4762,6 +4762,7 @@ $L$key_expansion_256b: +section .rdata rdata align=64 ALIGN 64 $L$bswap_mask: DB 15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0 @@ -4787,6 +4788,7 @@ DB 83,45,78,73,44,32,67,82,89,80,84,79,71,65,77,83 DB 32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115 DB 115,108,46,111,114,103,62,0 ALIGN 64 +section .text EXTERN __imp_RtlVirtualUnwind ALIGN 16 diff --git a/deps/openssl/config/archs/VC-WIN64A/asm_avx2/crypto/aes/aesni-xts-avx512.asm b/deps/openssl/config/archs/VC-WIN64A/asm_avx2/crypto/aes/aesni-xts-avx512.asm new file mode 100644 index 00000000000000..1e8bcc6b6f7543 --- /dev/null +++ b/deps/openssl/config/archs/VC-WIN64A/asm_avx2/crypto/aes/aesni-xts-avx512.asm @@ -0,0 +1,8350 @@ +default rel +%define XMMWORD +%define YMMWORD +%define ZMMWORD +section .text code align=64 + +EXTERN OPENSSL_ia32cap_P +global aesni_xts_avx512_eligible + +ALIGN 32 +aesni_xts_avx512_eligible: + mov ecx,DWORD[((OPENSSL_ia32cap_P+8))] + xor eax,eax + + and ecx,0xc0030000 + cmp ecx,0xc0030000 + jne NEAR $L$_done + mov ecx,DWORD[((OPENSSL_ia32cap_P+12))] + + and ecx,0x640 + cmp ecx,0x640 + cmove eax,ecx +$L$_done: + DB 0F3h,0C3h ;repret + +global aesni_xts_128_encrypt_avx512 + + +ALIGN 32 +aesni_xts_128_encrypt_avx512: + mov QWORD[8+rsp],rdi ;WIN64 prologue + mov QWORD[16+rsp],rsi + mov rax,rsp +$L$SEH_begin_aesni_xts_128_encrypt_avx512: + mov rdi,rcx + mov rsi,rdx + mov rdx,r8 + mov rcx,r9 + mov r8,QWORD[40+rsp] + mov r9,QWORD[48+rsp] + + + +DB 243,15,30,250 + push rbp + mov rbp,rsp + sub rsp,312 + and rsp,0xffffffffffffffc0 + mov QWORD[288+rsp],rbx + mov QWORD[((288 + 8))+rsp],rdi + mov QWORD[((288 + 16))+rsp],rsi + vmovdqa XMMWORD[(128 + 0)+rsp],xmm6 + vmovdqa XMMWORD[(128 + 16)+rsp],xmm7 + vmovdqa XMMWORD[(128 + 32)+rsp],xmm8 + vmovdqa XMMWORD[(128 + 48)+rsp],xmm9 + vmovdqa XMMWORD[(128 + 64)+rsp],xmm10 + vmovdqa XMMWORD[(128 + 80)+rsp],xmm11 + vmovdqa XMMWORD[(128 + 96)+rsp],xmm12 + vmovdqa XMMWORD[(128 + 112)+rsp],xmm13 + vmovdqa XMMWORD[(128 + 128)+rsp],xmm14 + vmovdqa XMMWORD[(128 + 144)+rsp],xmm15 + mov r10,0x87 + vmovdqu xmm1,XMMWORD[r9] + vpxor xmm1,xmm1,XMMWORD[r8] + vaesenc xmm1,xmm1,XMMWORD[16+r8] + vaesenc xmm1,xmm1,XMMWORD[32+r8] + vaesenc xmm1,xmm1,XMMWORD[48+r8] + vaesenc xmm1,xmm1,XMMWORD[64+r8] + vaesenc xmm1,xmm1,XMMWORD[80+r8] + vaesenc xmm1,xmm1,XMMWORD[96+r8] + vaesenc xmm1,xmm1,XMMWORD[112+r8] + vaesenc xmm1,xmm1,XMMWORD[128+r8] + vaesenc xmm1,xmm1,XMMWORD[144+r8] + vaesenclast xmm1,xmm1,XMMWORD[160+r8] + vmovdqa XMMWORD[rsp],xmm1 + mov QWORD[((8 + 40))+rbp],rdi + mov QWORD[((8 + 48))+rbp],rsi + + cmp rdx,0x80 + jl NEAR $L$_less_than_128_bytes_hEgxyDlCngwrfFe + vpbroadcastq zmm25,r10 + cmp rdx,0x100 + jge NEAR $L$_start_by16_hEgxyDlCngwrfFe + cmp rdx,0x80 + jge NEAR $L$_start_by8_hEgxyDlCngwrfFe + +$L$_do_n_blocks_hEgxyDlCngwrfFe: + cmp rdx,0x0 + je NEAR $L$_ret_hEgxyDlCngwrfFe + cmp rdx,0x70 + jge NEAR $L$_remaining_num_blocks_is_7_hEgxyDlCngwrfFe + cmp rdx,0x60 + jge NEAR $L$_remaining_num_blocks_is_6_hEgxyDlCngwrfFe + cmp rdx,0x50 + jge NEAR $L$_remaining_num_blocks_is_5_hEgxyDlCngwrfFe + cmp rdx,0x40 + jge NEAR $L$_remaining_num_blocks_is_4_hEgxyDlCngwrfFe + cmp rdx,0x30 + jge NEAR $L$_remaining_num_blocks_is_3_hEgxyDlCngwrfFe + cmp rdx,0x20 + jge NEAR $L$_remaining_num_blocks_is_2_hEgxyDlCngwrfFe + cmp rdx,0x10 + jge NEAR $L$_remaining_num_blocks_is_1_hEgxyDlCngwrfFe + vmovdqa xmm8,xmm0 + vmovdqa xmm0,xmm9 + jmp NEAR $L$_steal_cipher_hEgxyDlCngwrfFe + +$L$_remaining_num_blocks_is_7_hEgxyDlCngwrfFe: + mov r8,0x0000ffffffffffff + kmovq k1,r8 + vmovdqu8 zmm1,ZMMWORD[rdi] + vmovdqu8 zmm2{k1},[64+rdi] + add rdi,0x70 + vbroadcasti32x4 zmm0,ZMMWORD[rcx] + vpternlogq zmm1,zmm9,zmm0,0x96 + vpternlogq zmm2,zmm10,zmm0,0x96 + vbroadcasti32x4 zmm0,ZMMWORD[16+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[32+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[48+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + vbroadcasti32x4 zmm0,ZMMWORD[64+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[80+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[96+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[112+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[128+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[144+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + vbroadcasti32x4 zmm0,ZMMWORD[160+rcx] + vaesenclast zmm1,zmm1,zmm0 + vaesenclast zmm2,zmm2,zmm0 + vpxorq zmm1,zmm1,zmm9 + vpxorq zmm2,zmm2,zmm10 + vmovdqu8 ZMMWORD[rsi],zmm1 + vmovdqu8 ZMMWORD[64+rsi]{k1},zmm2 + add rsi,0x70 + vextracti32x4 xmm8,zmm2,0x2 + vextracti32x4 xmm0,zmm10,0x3 + and rdx,0xf + je NEAR $L$_ret_hEgxyDlCngwrfFe + jmp NEAR $L$_steal_cipher_hEgxyDlCngwrfFe + +$L$_remaining_num_blocks_is_6_hEgxyDlCngwrfFe: + vmovdqu8 zmm1,ZMMWORD[rdi] + vmovdqu8 ymm2,YMMWORD[64+rdi] + add rdi,0x60 + vbroadcasti32x4 zmm0,ZMMWORD[rcx] + vpternlogq zmm1,zmm9,zmm0,0x96 + vpternlogq zmm2,zmm10,zmm0,0x96 + vbroadcasti32x4 zmm0,ZMMWORD[16+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[32+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[48+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + vbroadcasti32x4 zmm0,ZMMWORD[64+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[80+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[96+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[112+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[128+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[144+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + vbroadcasti32x4 zmm0,ZMMWORD[160+rcx] + vaesenclast zmm1,zmm1,zmm0 + vaesenclast zmm2,zmm2,zmm0 + vpxorq zmm1,zmm1,zmm9 + vpxorq zmm2,zmm2,zmm10 + vmovdqu8 ZMMWORD[rsi],zmm1 + vmovdqu8 YMMWORD[64+rsi],ymm2 + add rsi,0x60 + vextracti32x4 xmm8,zmm2,0x1 + vextracti32x4 xmm0,zmm10,0x2 + and rdx,0xf + je NEAR $L$_ret_hEgxyDlCngwrfFe + jmp NEAR $L$_steal_cipher_hEgxyDlCngwrfFe + +$L$_remaining_num_blocks_is_5_hEgxyDlCngwrfFe: + vmovdqu8 zmm1,ZMMWORD[rdi] + vmovdqu xmm2,XMMWORD[64+rdi] + add rdi,0x50 + vbroadcasti32x4 zmm0,ZMMWORD[rcx] + vpternlogq zmm1,zmm9,zmm0,0x96 + vpternlogq zmm2,zmm10,zmm0,0x96 + vbroadcasti32x4 zmm0,ZMMWORD[16+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[32+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[48+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + vbroadcasti32x4 zmm0,ZMMWORD[64+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[80+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[96+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[112+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[128+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[144+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + vbroadcasti32x4 zmm0,ZMMWORD[160+rcx] + vaesenclast zmm1,zmm1,zmm0 + vaesenclast zmm2,zmm2,zmm0 + vpxorq zmm1,zmm1,zmm9 + vpxorq zmm2,zmm2,zmm10 + vmovdqu8 ZMMWORD[rsi],zmm1 + vmovdqu XMMWORD[64+rsi],xmm2 + add rsi,0x50 + vmovdqa xmm8,xmm2 + vextracti32x4 xmm0,zmm10,0x1 + and rdx,0xf + je NEAR $L$_ret_hEgxyDlCngwrfFe + jmp NEAR $L$_steal_cipher_hEgxyDlCngwrfFe + +$L$_remaining_num_blocks_is_4_hEgxyDlCngwrfFe: + vmovdqu8 zmm1,ZMMWORD[rdi] + add rdi,0x40 + vbroadcasti32x4 zmm0,ZMMWORD[rcx] + vpternlogq zmm1,zmm9,zmm0,0x96 + vbroadcasti32x4 zmm0,ZMMWORD[16+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[32+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[48+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[64+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[80+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[96+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[112+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[128+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[144+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[160+rcx] + vaesenclast zmm1,zmm1,zmm0 + vpxorq zmm1,zmm1,zmm9 + vmovdqu8 ZMMWORD[rsi],zmm1 + add rsi,0x40 + vextracti32x4 xmm8,zmm1,0x3 + vmovdqa64 xmm0,xmm10 + and rdx,0xf + je NEAR $L$_ret_hEgxyDlCngwrfFe + jmp NEAR $L$_steal_cipher_hEgxyDlCngwrfFe +$L$_remaining_num_blocks_is_3_hEgxyDlCngwrfFe: + mov r8,-1 + shr r8,0x10 + kmovq k1,r8 + vmovdqu8 zmm1{k1},[rdi] + add rdi,0x30 + vbroadcasti32x4 zmm0,ZMMWORD[rcx] + vpternlogq zmm1,zmm9,zmm0,0x96 + vbroadcasti32x4 zmm0,ZMMWORD[16+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[32+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[48+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[64+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[80+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[96+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[112+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[128+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[144+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[160+rcx] + vaesenclast zmm1,zmm1,zmm0 + vpxorq zmm1,zmm1,zmm9 + vmovdqu8 ZMMWORD[rsi]{k1},zmm1 + add rsi,0x30 + vextracti32x4 xmm8,zmm1,0x2 + vextracti32x4 xmm0,zmm9,0x3 + and rdx,0xf + je NEAR $L$_ret_hEgxyDlCngwrfFe + jmp NEAR $L$_steal_cipher_hEgxyDlCngwrfFe +$L$_remaining_num_blocks_is_2_hEgxyDlCngwrfFe: + vmovdqu8 ymm1,YMMWORD[rdi] + add rdi,0x20 + vbroadcasti32x4 ymm0,YMMWORD[rcx] + vpternlogq ymm1,ymm9,ymm0,0x96 + vbroadcasti32x4 ymm0,YMMWORD[16+rcx] + vaesenc ymm1,ymm1,ymm0 + vbroadcasti32x4 ymm0,YMMWORD[32+rcx] + vaesenc ymm1,ymm1,ymm0 + vbroadcasti32x4 ymm0,YMMWORD[48+rcx] + vaesenc ymm1,ymm1,ymm0 + vbroadcasti32x4 ymm0,YMMWORD[64+rcx] + vaesenc ymm1,ymm1,ymm0 + vbroadcasti32x4 ymm0,YMMWORD[80+rcx] + vaesenc ymm1,ymm1,ymm0 + vbroadcasti32x4 ymm0,YMMWORD[96+rcx] + vaesenc ymm1,ymm1,ymm0 + vbroadcasti32x4 ymm0,YMMWORD[112+rcx] + vaesenc ymm1,ymm1,ymm0 + vbroadcasti32x4 ymm0,YMMWORD[128+rcx] + vaesenc ymm1,ymm1,ymm0 + vbroadcasti32x4 ymm0,YMMWORD[144+rcx] + vaesenc ymm1,ymm1,ymm0 + vbroadcasti32x4 ymm0,YMMWORD[160+rcx] + vaesenclast ymm1,ymm1,ymm0 + vpxorq ymm1,ymm1,ymm9 + vmovdqu YMMWORD[rsi],ymm1 + add rsi,0x20 + vextracti32x4 xmm8,zmm1,0x1 + vextracti32x4 xmm0,zmm9,0x2 + and rdx,0xf + je NEAR $L$_ret_hEgxyDlCngwrfFe + jmp NEAR $L$_steal_cipher_hEgxyDlCngwrfFe +$L$_remaining_num_blocks_is_1_hEgxyDlCngwrfFe: + vmovdqu xmm1,XMMWORD[rdi] + add rdi,0x10 + vpxor xmm1,xmm1,xmm9 + vpxor xmm1,xmm1,XMMWORD[rcx] + vaesenc xmm1,xmm1,XMMWORD[16+rcx] + vaesenc xmm1,xmm1,XMMWORD[32+rcx] + vaesenc xmm1,xmm1,XMMWORD[48+rcx] + vaesenc xmm1,xmm1,XMMWORD[64+rcx] + vaesenc xmm1,xmm1,XMMWORD[80+rcx] + vaesenc xmm1,xmm1,XMMWORD[96+rcx] + vaesenc xmm1,xmm1,XMMWORD[112+rcx] + vaesenc xmm1,xmm1,XMMWORD[128+rcx] + vaesenc xmm1,xmm1,XMMWORD[144+rcx] + vaesenclast xmm1,xmm1,XMMWORD[160+rcx] + vpxor xmm1,xmm1,xmm9 + vmovdqu XMMWORD[rsi],xmm1 + add rsi,0x10 + vmovdqa xmm8,xmm1 + vextracti32x4 xmm0,zmm9,0x1 + and rdx,0xf + je NEAR $L$_ret_hEgxyDlCngwrfFe + jmp NEAR $L$_steal_cipher_hEgxyDlCngwrfFe + + +$L$_start_by16_hEgxyDlCngwrfFe: + vbroadcasti32x4 zmm0,ZMMWORD[rsp] + vbroadcasti32x4 zmm8,ZMMWORD[shufb_15_7] + mov r8,0xaa + kmovq k2,r8 + vpshufb zmm1,zmm0,zmm8 + vpsllvq zmm4,zmm0,ZMMWORD[const_dq3210] + vpsrlvq zmm2,zmm1,ZMMWORD[const_dq5678] + vpclmulqdq zmm3,zmm2,zmm25,0x0 + vpxorq zmm4{k2},zmm4,zmm2 + vpxord zmm9,zmm3,zmm4 + vpsllvq zmm5,zmm0,ZMMWORD[const_dq7654] + vpsrlvq zmm6,zmm1,ZMMWORD[const_dq1234] + vpclmulqdq zmm7,zmm6,zmm25,0x0 + vpxorq zmm5{k2},zmm5,zmm6 + vpxord zmm10,zmm7,zmm5 + vpsrldq zmm13,zmm9,0xf + vpclmulqdq zmm14,zmm13,zmm25,0x0 + vpslldq zmm11,zmm9,0x1 + vpxord zmm11,zmm11,zmm14 + vpsrldq zmm15,zmm10,0xf + vpclmulqdq zmm16,zmm15,zmm25,0x0 + vpslldq zmm12,zmm10,0x1 + vpxord zmm12,zmm12,zmm16 + +$L$_main_loop_run_16_hEgxyDlCngwrfFe: + vmovdqu8 zmm1,ZMMWORD[rdi] + vmovdqu8 zmm2,ZMMWORD[64+rdi] + vmovdqu8 zmm3,ZMMWORD[128+rdi] + vmovdqu8 zmm4,ZMMWORD[192+rdi] + add rdi,0x100 + vpxorq zmm1,zmm1,zmm9 + vpxorq zmm2,zmm2,zmm10 + vpxorq zmm3,zmm3,zmm11 + vpxorq zmm4,zmm4,zmm12 + vbroadcasti32x4 zmm0,ZMMWORD[rcx] + vpxorq zmm1,zmm1,zmm0 + vpxorq zmm2,zmm2,zmm0 + vpxorq zmm3,zmm3,zmm0 + vpxorq zmm4,zmm4,zmm0 + vpsrldq zmm13,zmm11,0xf + vpclmulqdq zmm14,zmm13,zmm25,0x0 + vpslldq zmm15,zmm11,0x1 + vpxord zmm15,zmm15,zmm14 + vbroadcasti32x4 zmm0,ZMMWORD[16+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + vaesenc zmm3,zmm3,zmm0 + vaesenc zmm4,zmm4,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[32+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + vaesenc zmm3,zmm3,zmm0 + vaesenc zmm4,zmm4,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[48+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + vaesenc zmm3,zmm3,zmm0 + vaesenc zmm4,zmm4,zmm0 + vpsrldq zmm13,zmm12,0xf + vpclmulqdq zmm14,zmm13,zmm25,0x0 + vpslldq zmm16,zmm12,0x1 + vpxord zmm16,zmm16,zmm14 + vbroadcasti32x4 zmm0,ZMMWORD[64+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + vaesenc zmm3,zmm3,zmm0 + vaesenc zmm4,zmm4,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[80+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + vaesenc zmm3,zmm3,zmm0 + vaesenc zmm4,zmm4,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[96+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + vaesenc zmm3,zmm3,zmm0 + vaesenc zmm4,zmm4,zmm0 + vpsrldq zmm13,zmm15,0xf + vpclmulqdq zmm14,zmm13,zmm25,0x0 + vpslldq zmm17,zmm15,0x1 + vpxord zmm17,zmm17,zmm14 + vbroadcasti32x4 zmm0,ZMMWORD[112+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + vaesenc zmm3,zmm3,zmm0 + vaesenc zmm4,zmm4,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[128+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + vaesenc zmm3,zmm3,zmm0 + vaesenc zmm4,zmm4,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[144+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + vaesenc zmm3,zmm3,zmm0 + vaesenc zmm4,zmm4,zmm0 + vpsrldq zmm13,zmm16,0xf + vpclmulqdq zmm14,zmm13,zmm25,0x0 + vpslldq zmm18,zmm16,0x1 + vpxord zmm18,zmm18,zmm14 + vbroadcasti32x4 zmm0,ZMMWORD[160+rcx] + vaesenclast zmm1,zmm1,zmm0 + vaesenclast zmm2,zmm2,zmm0 + vaesenclast zmm3,zmm3,zmm0 + vaesenclast zmm4,zmm4,zmm0 + vpxorq zmm1,zmm1,zmm9 + vpxorq zmm2,zmm2,zmm10 + vpxorq zmm3,zmm3,zmm11 + vpxorq zmm4,zmm4,zmm12 + + vmovdqa32 zmm9,zmm15 + vmovdqa32 zmm10,zmm16 + vmovdqa32 zmm11,zmm17 + vmovdqa32 zmm12,zmm18 + vmovdqu8 ZMMWORD[rsi],zmm1 + vmovdqu8 ZMMWORD[64+rsi],zmm2 + vmovdqu8 ZMMWORD[128+rsi],zmm3 + vmovdqu8 ZMMWORD[192+rsi],zmm4 + add rsi,0x100 + sub rdx,0x100 + cmp rdx,0x100 + jae NEAR $L$_main_loop_run_16_hEgxyDlCngwrfFe + cmp rdx,0x80 + jae NEAR $L$_main_loop_run_8_hEgxyDlCngwrfFe + vextracti32x4 xmm0,zmm4,0x3 + jmp NEAR $L$_do_n_blocks_hEgxyDlCngwrfFe + +$L$_start_by8_hEgxyDlCngwrfFe: + vbroadcasti32x4 zmm0,ZMMWORD[rsp] + vbroadcasti32x4 zmm8,ZMMWORD[shufb_15_7] + mov r8,0xaa + kmovq k2,r8 + vpshufb zmm1,zmm0,zmm8 + vpsllvq zmm4,zmm0,ZMMWORD[const_dq3210] + vpsrlvq zmm2,zmm1,ZMMWORD[const_dq5678] + vpclmulqdq zmm3,zmm2,zmm25,0x0 + vpxorq zmm4{k2},zmm4,zmm2 + vpxord zmm9,zmm3,zmm4 + vpsllvq zmm5,zmm0,ZMMWORD[const_dq7654] + vpsrlvq zmm6,zmm1,ZMMWORD[const_dq1234] + vpclmulqdq zmm7,zmm6,zmm25,0x0 + vpxorq zmm5{k2},zmm5,zmm6 + vpxord zmm10,zmm7,zmm5 + +$L$_main_loop_run_8_hEgxyDlCngwrfFe: + vmovdqu8 zmm1,ZMMWORD[rdi] + vmovdqu8 zmm2,ZMMWORD[64+rdi] + add rdi,0x80 + vbroadcasti32x4 zmm0,ZMMWORD[rcx] + vpternlogq zmm1,zmm9,zmm0,0x96 + vpternlogq zmm2,zmm10,zmm0,0x96 + vpsrldq zmm13,zmm9,0xf + vpclmulqdq zmm14,zmm13,zmm25,0x0 + vpslldq zmm15,zmm9,0x1 + vpxord zmm15,zmm15,zmm14 + vbroadcasti32x4 zmm0,ZMMWORD[16+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[32+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[48+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + vpsrldq zmm13,zmm10,0xf + vpclmulqdq zmm14,zmm13,zmm25,0x0 + vpslldq zmm16,zmm10,0x1 + vpxord zmm16,zmm16,zmm14 + + vbroadcasti32x4 zmm0,ZMMWORD[64+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[80+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[96+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[112+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[128+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[144+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + vbroadcasti32x4 zmm0,ZMMWORD[160+rcx] + vaesenclast zmm1,zmm1,zmm0 + vaesenclast zmm2,zmm2,zmm0 + vpxorq zmm1,zmm1,zmm9 + vpxorq zmm2,zmm2,zmm10 + vmovdqa32 zmm9,zmm15 + vmovdqa32 zmm10,zmm16 + vmovdqu8 ZMMWORD[rsi],zmm1 + vmovdqu8 ZMMWORD[64+rsi],zmm2 + add rsi,0x80 + sub rdx,0x80 + cmp rdx,0x80 + jae NEAR $L$_main_loop_run_8_hEgxyDlCngwrfFe + vextracti32x4 xmm0,zmm2,0x3 + jmp NEAR $L$_do_n_blocks_hEgxyDlCngwrfFe + +$L$_steal_cipher_hEgxyDlCngwrfFe: + vmovdqa xmm2,xmm8 + lea rax,[vpshufb_shf_table] + vmovdqu xmm10,XMMWORD[rdx*1+rax] + vpshufb xmm8,xmm8,xmm10 + vmovdqu xmm3,XMMWORD[((-16))+rdx*1+rdi] + vmovdqu XMMWORD[(-16)+rdx*1+rsi],xmm8 + lea rax,[vpshufb_shf_table] + add rax,16 + sub rax,rdx + vmovdqu xmm10,XMMWORD[rax] + vpxor xmm10,xmm10,XMMWORD[mask1] + vpshufb xmm3,xmm3,xmm10 + vpblendvb xmm3,xmm3,xmm2,xmm10 + vpxor xmm8,xmm3,xmm0 + vpxor xmm8,xmm8,XMMWORD[rcx] + vaesenc xmm8,xmm8,XMMWORD[16+rcx] + vaesenc xmm8,xmm8,XMMWORD[32+rcx] + vaesenc xmm8,xmm8,XMMWORD[48+rcx] + vaesenc xmm8,xmm8,XMMWORD[64+rcx] + vaesenc xmm8,xmm8,XMMWORD[80+rcx] + vaesenc xmm8,xmm8,XMMWORD[96+rcx] + vaesenc xmm8,xmm8,XMMWORD[112+rcx] + vaesenc xmm8,xmm8,XMMWORD[128+rcx] + vaesenc xmm8,xmm8,XMMWORD[144+rcx] + vaesenclast xmm8,xmm8,XMMWORD[160+rcx] + vpxor xmm8,xmm8,xmm0 + vmovdqu XMMWORD[(-16)+rsi],xmm8 +$L$_ret_hEgxyDlCngwrfFe: + mov rbx,QWORD[288+rsp] + xor r8,r8 + mov QWORD[288+rsp],r8 + + vpxorq zmm0,zmm0,zmm0 + mov rdi,QWORD[((288 + 8))+rsp] + mov QWORD[((288 + 8))+rsp],r8 + mov rsi,QWORD[((288 + 16))+rsp] + mov QWORD[((288 + 16))+rsp],r8 + + vmovdqa xmm6,XMMWORD[((128 + 0))+rsp] + vmovdqa xmm7,XMMWORD[((128 + 16))+rsp] + vmovdqa xmm8,XMMWORD[((128 + 32))+rsp] + vmovdqa xmm9,XMMWORD[((128 + 48))+rsp] + + + vmovdqa64 ZMMWORD[128+rsp],zmm0 + + vmovdqa xmm10,XMMWORD[((128 + 64))+rsp] + vmovdqa xmm11,XMMWORD[((128 + 80))+rsp] + vmovdqa xmm12,XMMWORD[((128 + 96))+rsp] + vmovdqa xmm13,XMMWORD[((128 + 112))+rsp] + + + vmovdqa64 ZMMWORD[(128 + 64)+rsp],zmm0 + + vmovdqa xmm14,XMMWORD[((128 + 128))+rsp] + vmovdqa xmm15,XMMWORD[((128 + 144))+rsp] + + + + vmovdqa YMMWORD[(128 + 128)+rsp],ymm0 + mov rsp,rbp + pop rbp + vzeroupper + mov rdi,QWORD[8+rsp] ;WIN64 epilogue + mov rsi,QWORD[16+rsp] + DB 0F3h,0C3h ;repret + +$L$_less_than_128_bytes_hEgxyDlCngwrfFe: + vpbroadcastq zmm25,r10 + cmp rdx,0x10 + jb NEAR $L$_ret_hEgxyDlCngwrfFe + vbroadcasti32x4 zmm0,ZMMWORD[rsp] + vbroadcasti32x4 zmm8,ZMMWORD[shufb_15_7] + mov r8d,0xaa + kmovq k2,r8 + mov r8,rdx + and r8,0x70 + cmp r8,0x60 + je NEAR $L$_num_blocks_is_6_hEgxyDlCngwrfFe + cmp r8,0x50 + je NEAR $L$_num_blocks_is_5_hEgxyDlCngwrfFe + cmp r8,0x40 + je NEAR $L$_num_blocks_is_4_hEgxyDlCngwrfFe + cmp r8,0x30 + je NEAR $L$_num_blocks_is_3_hEgxyDlCngwrfFe + cmp r8,0x20 + je NEAR $L$_num_blocks_is_2_hEgxyDlCngwrfFe + cmp r8,0x10 + je NEAR $L$_num_blocks_is_1_hEgxyDlCngwrfFe + +$L$_num_blocks_is_7_hEgxyDlCngwrfFe: + vpshufb zmm1,zmm0,zmm8 + vpsllvq zmm4,zmm0,ZMMWORD[const_dq3210] + vpsrlvq zmm2,zmm1,ZMMWORD[const_dq5678] + vpclmulqdq zmm3,zmm2,zmm25,0x00 + vpxorq zmm4{k2},zmm4,zmm2 + vpxord zmm9,zmm3,zmm4 + vpsllvq zmm5,zmm0,ZMMWORD[const_dq7654] + vpsrlvq zmm6,zmm1,ZMMWORD[const_dq1234] + vpclmulqdq zmm7,zmm6,zmm25,0x00 + vpxorq zmm5{k2},zmm5,zmm6 + vpxord zmm10,zmm7,zmm5 + mov r8,0x0000ffffffffffff + kmovq k1,r8 + vmovdqu8 zmm1,ZMMWORD[rdi] + vmovdqu8 zmm2{k1},[64+rdi] + + add rdi,0x70 + vbroadcasti32x4 zmm0,ZMMWORD[rcx] + vpternlogq zmm1,zmm9,zmm0,0x96 + vpternlogq zmm2,zmm10,zmm0,0x96 + vbroadcasti32x4 zmm0,ZMMWORD[16+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[32+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[48+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + vbroadcasti32x4 zmm0,ZMMWORD[64+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[80+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[96+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[112+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[128+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[144+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + vbroadcasti32x4 zmm0,ZMMWORD[160+rcx] + vaesenclast zmm1,zmm1,zmm0 + vaesenclast zmm2,zmm2,zmm0 + vpxorq zmm1,zmm1,zmm9 + vpxorq zmm2,zmm2,zmm10 + vmovdqu8 ZMMWORD[rsi],zmm1 + vmovdqu8 ZMMWORD[64+rsi]{k1},zmm2 + add rsi,0x70 + vextracti32x4 xmm8,zmm2,0x2 + vextracti32x4 xmm0,zmm10,0x3 + and rdx,0xf + je NEAR $L$_ret_hEgxyDlCngwrfFe + jmp NEAR $L$_steal_cipher_hEgxyDlCngwrfFe +$L$_num_blocks_is_6_hEgxyDlCngwrfFe: + vpshufb zmm1,zmm0,zmm8 + vpsllvq zmm4,zmm0,ZMMWORD[const_dq3210] + vpsrlvq zmm2,zmm1,ZMMWORD[const_dq5678] + vpclmulqdq zmm3,zmm2,zmm25,0x00 + vpxorq zmm4{k2},zmm4,zmm2 + vpxord zmm9,zmm3,zmm4 + vpsllvq zmm5,zmm0,ZMMWORD[const_dq7654] + vpsrlvq zmm6,zmm1,ZMMWORD[const_dq1234] + vpclmulqdq zmm7,zmm6,zmm25,0x00 + vpxorq zmm5{k2},zmm5,zmm6 + vpxord zmm10,zmm7,zmm5 + vmovdqu8 zmm1,ZMMWORD[rdi] + vmovdqu8 ymm2,YMMWORD[64+rdi] + add rdi,96 + vbroadcasti32x4 zmm0,ZMMWORD[rcx] + vpternlogq zmm1,zmm9,zmm0,0x96 + vpternlogq zmm2,zmm10,zmm0,0x96 + vbroadcasti32x4 zmm0,ZMMWORD[16+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[32+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[48+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + vbroadcasti32x4 zmm0,ZMMWORD[64+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[80+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[96+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[112+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[128+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[144+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + vbroadcasti32x4 zmm0,ZMMWORD[160+rcx] + vaesenclast zmm1,zmm1,zmm0 + vaesenclast zmm2,zmm2,zmm0 + vpxorq zmm1,zmm1,zmm9 + vpxorq zmm2,zmm2,zmm10 + vmovdqu8 ZMMWORD[rsi],zmm1 + vmovdqu8 YMMWORD[64+rsi],ymm2 + add rsi,96 + + vextracti32x4 xmm8,ymm2,0x1 + vextracti32x4 xmm0,zmm10,0x2 + and rdx,0xf + je NEAR $L$_ret_hEgxyDlCngwrfFe + jmp NEAR $L$_steal_cipher_hEgxyDlCngwrfFe +$L$_num_blocks_is_5_hEgxyDlCngwrfFe: + vpshufb zmm1,zmm0,zmm8 + vpsllvq zmm4,zmm0,ZMMWORD[const_dq3210] + vpsrlvq zmm2,zmm1,ZMMWORD[const_dq5678] + vpclmulqdq zmm3,zmm2,zmm25,0x00 + vpxorq zmm4{k2},zmm4,zmm2 + vpxord zmm9,zmm3,zmm4 + vpsllvq zmm5,zmm0,ZMMWORD[const_dq7654] + vpsrlvq zmm6,zmm1,ZMMWORD[const_dq1234] + vpclmulqdq zmm7,zmm6,zmm25,0x00 + vpxorq zmm5{k2},zmm5,zmm6 + vpxord zmm10,zmm7,zmm5 + vmovdqu8 zmm1,ZMMWORD[rdi] + vmovdqu8 xmm2,XMMWORD[64+rdi] + add rdi,80 + vbroadcasti32x4 zmm0,ZMMWORD[rcx] + vpternlogq zmm1,zmm9,zmm0,0x96 + vpternlogq zmm2,zmm10,zmm0,0x96 + vbroadcasti32x4 zmm0,ZMMWORD[16+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[32+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[48+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + vbroadcasti32x4 zmm0,ZMMWORD[64+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[80+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[96+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[112+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[128+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[144+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + vbroadcasti32x4 zmm0,ZMMWORD[160+rcx] + vaesenclast zmm1,zmm1,zmm0 + vaesenclast zmm2,zmm2,zmm0 + vpxorq zmm1,zmm1,zmm9 + vpxorq zmm2,zmm2,zmm10 + vmovdqu8 ZMMWORD[rsi],zmm1 + vmovdqu8 XMMWORD[64+rsi],xmm2 + add rsi,80 + + vmovdqa xmm8,xmm2 + vextracti32x4 xmm0,zmm10,0x1 + and rdx,0xf + je NEAR $L$_ret_hEgxyDlCngwrfFe + jmp NEAR $L$_steal_cipher_hEgxyDlCngwrfFe +$L$_num_blocks_is_4_hEgxyDlCngwrfFe: + vpshufb zmm1,zmm0,zmm8 + vpsllvq zmm4,zmm0,ZMMWORD[const_dq3210] + vpsrlvq zmm2,zmm1,ZMMWORD[const_dq5678] + vpclmulqdq zmm3,zmm2,zmm25,0x00 + vpxorq zmm4{k2},zmm4,zmm2 + vpxord zmm9,zmm3,zmm4 + vpsllvq zmm5,zmm0,ZMMWORD[const_dq7654] + vpsrlvq zmm6,zmm1,ZMMWORD[const_dq1234] + vpclmulqdq zmm7,zmm6,zmm25,0x00 + vpxorq zmm5{k2},zmm5,zmm6 + vpxord zmm10,zmm7,zmm5 + vmovdqu8 zmm1,ZMMWORD[rdi] + add rdi,64 + vbroadcasti32x4 zmm0,ZMMWORD[rcx] + vpternlogq zmm1,zmm9,zmm0,0x96 + vbroadcasti32x4 zmm0,ZMMWORD[16+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[32+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[48+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[64+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[80+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[96+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[112+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[128+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[144+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[160+rcx] + vaesenclast zmm1,zmm1,zmm0 + vpxorq zmm1,zmm1,zmm9 + vmovdqu8 ZMMWORD[rsi],zmm1 + add rsi,64 + vextracti32x4 xmm8,zmm1,0x3 + vmovdqa xmm0,xmm10 + and rdx,0xf + je NEAR $L$_ret_hEgxyDlCngwrfFe + jmp NEAR $L$_steal_cipher_hEgxyDlCngwrfFe +$L$_num_blocks_is_3_hEgxyDlCngwrfFe: + vpshufb zmm1,zmm0,zmm8 + vpsllvq zmm4,zmm0,ZMMWORD[const_dq3210] + vpsrlvq zmm2,zmm1,ZMMWORD[const_dq5678] + vpclmulqdq zmm3,zmm2,zmm25,0x00 + vpxorq zmm4{k2},zmm4,zmm2 + vpxord zmm9,zmm3,zmm4 + mov r8,0x0000ffffffffffff + kmovq k1,r8 + vmovdqu8 zmm1{k1},[rdi] + add rdi,48 + vbroadcasti32x4 zmm0,ZMMWORD[rcx] + vpternlogq zmm1,zmm9,zmm0,0x96 + vbroadcasti32x4 zmm0,ZMMWORD[16+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[32+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[48+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[64+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[80+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[96+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[112+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[128+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[144+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[160+rcx] + vaesenclast zmm1,zmm1,zmm0 + vpxorq zmm1,zmm1,zmm9 + vmovdqu8 ZMMWORD[rsi]{k1},zmm1 + add rsi,48 + vextracti32x4 xmm8,zmm1,2 + vextracti32x4 xmm0,zmm9,3 + and rdx,0xf + je NEAR $L$_ret_hEgxyDlCngwrfFe + jmp NEAR $L$_steal_cipher_hEgxyDlCngwrfFe +$L$_num_blocks_is_2_hEgxyDlCngwrfFe: + vpshufb zmm1,zmm0,zmm8 + vpsllvq zmm4,zmm0,ZMMWORD[const_dq3210] + vpsrlvq zmm2,zmm1,ZMMWORD[const_dq5678] + vpclmulqdq zmm3,zmm2,zmm25,0x00 + vpxorq zmm4{k2},zmm4,zmm2 + vpxord zmm9,zmm3,zmm4 + + vmovdqu8 ymm1,YMMWORD[rdi] + add rdi,32 + vbroadcasti32x4 ymm0,YMMWORD[rcx] + vpternlogq ymm1,ymm9,ymm0,0x96 + vbroadcasti32x4 ymm0,YMMWORD[16+rcx] + vaesenc ymm1,ymm1,ymm0 + vbroadcasti32x4 ymm0,YMMWORD[32+rcx] + vaesenc ymm1,ymm1,ymm0 + vbroadcasti32x4 ymm0,YMMWORD[48+rcx] + vaesenc ymm1,ymm1,ymm0 + vbroadcasti32x4 ymm0,YMMWORD[64+rcx] + vaesenc ymm1,ymm1,ymm0 + vbroadcasti32x4 ymm0,YMMWORD[80+rcx] + vaesenc ymm1,ymm1,ymm0 + vbroadcasti32x4 ymm0,YMMWORD[96+rcx] + vaesenc ymm1,ymm1,ymm0 + vbroadcasti32x4 ymm0,YMMWORD[112+rcx] + vaesenc ymm1,ymm1,ymm0 + vbroadcasti32x4 ymm0,YMMWORD[128+rcx] + vaesenc ymm1,ymm1,ymm0 + vbroadcasti32x4 ymm0,YMMWORD[144+rcx] + vaesenc ymm1,ymm1,ymm0 + vbroadcasti32x4 ymm0,YMMWORD[160+rcx] + vaesenclast ymm1,ymm1,ymm0 + vpxorq ymm1,ymm1,ymm9 + vmovdqu8 YMMWORD[rsi],ymm1 + add rsi,32 + + vextracti32x4 xmm8,ymm1,1 + vextracti32x4 xmm0,zmm9,2 + and rdx,0xf + je NEAR $L$_ret_hEgxyDlCngwrfFe + jmp NEAR $L$_steal_cipher_hEgxyDlCngwrfFe +$L$_num_blocks_is_1_hEgxyDlCngwrfFe: + vpshufb zmm1,zmm0,zmm8 + vpsllvq zmm4,zmm0,ZMMWORD[const_dq3210] + vpsrlvq zmm2,zmm1,ZMMWORD[const_dq5678] + vpclmulqdq zmm3,zmm2,zmm25,0x00 + vpxorq zmm4{k2},zmm4,zmm2 + vpxord zmm9,zmm3,zmm4 + + vmovdqu8 xmm1,XMMWORD[rdi] + add rdi,16 + vbroadcasti32x4 ymm0,YMMWORD[rcx] + vpternlogq ymm1,ymm9,ymm0,0x96 + vbroadcasti32x4 ymm0,YMMWORD[16+rcx] + vaesenc ymm1,ymm1,ymm0 + vbroadcasti32x4 ymm0,YMMWORD[32+rcx] + vaesenc ymm1,ymm1,ymm0 + vbroadcasti32x4 ymm0,YMMWORD[48+rcx] + vaesenc ymm1,ymm1,ymm0 + vbroadcasti32x4 ymm0,YMMWORD[64+rcx] + vaesenc ymm1,ymm1,ymm0 + vbroadcasti32x4 ymm0,YMMWORD[80+rcx] + vaesenc ymm1,ymm1,ymm0 + vbroadcasti32x4 ymm0,YMMWORD[96+rcx] + vaesenc ymm1,ymm1,ymm0 + vbroadcasti32x4 ymm0,YMMWORD[112+rcx] + vaesenc ymm1,ymm1,ymm0 + vbroadcasti32x4 ymm0,YMMWORD[128+rcx] + vaesenc ymm1,ymm1,ymm0 + vbroadcasti32x4 ymm0,YMMWORD[144+rcx] + vaesenc ymm1,ymm1,ymm0 + vbroadcasti32x4 ymm0,YMMWORD[160+rcx] + vaesenclast ymm1,ymm1,ymm0 + vpxorq ymm1,ymm1,ymm9 + vmovdqu8 XMMWORD[rsi],xmm1 + add rsi,16 + + vmovdqa xmm8,xmm1 + vextracti32x4 xmm0,zmm9,1 + and rdx,0xf + je NEAR $L$_ret_hEgxyDlCngwrfFe + jmp NEAR $L$_steal_cipher_hEgxyDlCngwrfFe + +global aesni_xts_128_decrypt_avx512 + + +ALIGN 32 +aesni_xts_128_decrypt_avx512: + mov QWORD[8+rsp],rdi ;WIN64 prologue + mov QWORD[16+rsp],rsi + mov rax,rsp +$L$SEH_begin_aesni_xts_128_decrypt_avx512: + mov rdi,rcx + mov rsi,rdx + mov rdx,r8 + mov rcx,r9 + mov r8,QWORD[40+rsp] + mov r9,QWORD[48+rsp] + + + +DB 243,15,30,250 + push rbp + mov rbp,rsp + sub rsp,312 + and rsp,0xffffffffffffffc0 + mov QWORD[288+rsp],rbx + mov QWORD[((288 + 8))+rsp],rdi + mov QWORD[((288 + 16))+rsp],rsi + vmovdqa XMMWORD[(128 + 0)+rsp],xmm6 + vmovdqa XMMWORD[(128 + 16)+rsp],xmm7 + vmovdqa XMMWORD[(128 + 32)+rsp],xmm8 + vmovdqa XMMWORD[(128 + 48)+rsp],xmm9 + vmovdqa XMMWORD[(128 + 64)+rsp],xmm10 + vmovdqa XMMWORD[(128 + 80)+rsp],xmm11 + vmovdqa XMMWORD[(128 + 96)+rsp],xmm12 + vmovdqa XMMWORD[(128 + 112)+rsp],xmm13 + vmovdqa XMMWORD[(128 + 128)+rsp],xmm14 + vmovdqa XMMWORD[(128 + 144)+rsp],xmm15 + mov r10,0x87 + vmovdqu xmm1,XMMWORD[r9] + vpxor xmm1,xmm1,XMMWORD[r8] + vaesenc xmm1,xmm1,XMMWORD[16+r8] + vaesenc xmm1,xmm1,XMMWORD[32+r8] + vaesenc xmm1,xmm1,XMMWORD[48+r8] + vaesenc xmm1,xmm1,XMMWORD[64+r8] + vaesenc xmm1,xmm1,XMMWORD[80+r8] + vaesenc xmm1,xmm1,XMMWORD[96+r8] + vaesenc xmm1,xmm1,XMMWORD[112+r8] + vaesenc xmm1,xmm1,XMMWORD[128+r8] + vaesenc xmm1,xmm1,XMMWORD[144+r8] + vaesenclast xmm1,xmm1,XMMWORD[160+r8] + vmovdqa XMMWORD[rsp],xmm1 + mov QWORD[((8 + 40))+rbp],rdi + mov QWORD[((8 + 48))+rbp],rsi + + cmp rdx,0x80 + jb NEAR $L$_less_than_128_bytes_amivrujEyduiFoi + vpbroadcastq zmm25,r10 + cmp rdx,0x100 + jge NEAR $L$_start_by16_amivrujEyduiFoi + jmp NEAR $L$_start_by8_amivrujEyduiFoi + +$L$_do_n_blocks_amivrujEyduiFoi: + cmp rdx,0x0 + je NEAR $L$_ret_amivrujEyduiFoi + cmp rdx,0x70 + jge NEAR $L$_remaining_num_blocks_is_7_amivrujEyduiFoi + cmp rdx,0x60 + jge NEAR $L$_remaining_num_blocks_is_6_amivrujEyduiFoi + cmp rdx,0x50 + jge NEAR $L$_remaining_num_blocks_is_5_amivrujEyduiFoi + cmp rdx,0x40 + jge NEAR $L$_remaining_num_blocks_is_4_amivrujEyduiFoi + cmp rdx,0x30 + jge NEAR $L$_remaining_num_blocks_is_3_amivrujEyduiFoi + cmp rdx,0x20 + jge NEAR $L$_remaining_num_blocks_is_2_amivrujEyduiFoi + cmp rdx,0x10 + jge NEAR $L$_remaining_num_blocks_is_1_amivrujEyduiFoi + + + vmovdqu xmm1,xmm5 + + vpxor xmm1,xmm1,xmm9 + vmovdqu xmm0,XMMWORD[rcx] + vpxor xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[16+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[32+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[48+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[64+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[80+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[96+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[112+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[128+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[144+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[160+rcx] + vaesdeclast xmm1,xmm1,xmm0 + vpxor xmm1,xmm1,xmm9 + vmovdqu XMMWORD[(-16)+rsi],xmm1 + vmovdqa xmm8,xmm1 + + + mov r8,0x1 + kmovq k1,r8 + vpsllq xmm13,xmm9,0x3f + vpsraq xmm14,xmm13,0x3f + vpandq xmm5,xmm14,xmm25 + vpxorq xmm9{k1},xmm9,xmm5 + vpsrldq xmm10,xmm9,0x8 +DB 98,211,181,8,115,194,1 + vpslldq xmm13,xmm13,0x8 + vpxorq xmm0,xmm0,xmm13 + jmp NEAR $L$_steal_cipher_amivrujEyduiFoi + +$L$_remaining_num_blocks_is_7_amivrujEyduiFoi: + mov r8,0xffffffffffffffff + shr r8,0x10 + kmovq k1,r8 + vmovdqu8 zmm1,ZMMWORD[rdi] + vmovdqu8 zmm2{k1},[64+rdi] + add rdi,0x70 + and rdx,0xf + je NEAR $L$_done_7_remain_amivrujEyduiFoi + vextracti32x4 xmm12,zmm10,0x2 + vextracti32x4 xmm13,zmm10,0x3 + vinserti32x4 zmm10,zmm10,xmm13,0x2 + + vpxorq zmm1,zmm1,zmm9 + vpxorq zmm2,zmm2,zmm10 + + + vbroadcasti32x4 zmm0,ZMMWORD[rcx] + vpxorq zmm1,zmm1,zmm0 + vpxorq zmm2,zmm2,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[16+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[32+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[48+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + vbroadcasti32x4 zmm0,ZMMWORD[64+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[80+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[96+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[112+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[128+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[144+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[160+rcx] + vaesdeclast zmm1,zmm1,zmm0 + vaesdeclast zmm2,zmm2,zmm0 + + vpxorq zmm1,zmm1,zmm9 + vpxorq zmm2,zmm2,zmm10 + + + vmovdqa32 zmm9,zmm15 + vmovdqa32 zmm10,zmm16 + vmovdqu8 ZMMWORD[rsi],zmm1 + vmovdqu8 ZMMWORD[64+rsi]{k1},zmm2 + add rsi,0x70 + vextracti32x4 xmm8,zmm2,0x2 + vmovdqa xmm0,xmm12 + jmp NEAR $L$_steal_cipher_amivrujEyduiFoi + +$L$_done_7_remain_amivrujEyduiFoi: + + vpxorq zmm1,zmm1,zmm9 + vpxorq zmm2,zmm2,zmm10 + + + vbroadcasti32x4 zmm0,ZMMWORD[rcx] + vpxorq zmm1,zmm1,zmm0 + vpxorq zmm2,zmm2,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[16+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[32+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[48+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + vbroadcasti32x4 zmm0,ZMMWORD[64+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[80+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[96+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[112+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[128+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[144+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[160+rcx] + vaesdeclast zmm1,zmm1,zmm0 + vaesdeclast zmm2,zmm2,zmm0 + + vpxorq zmm1,zmm1,zmm9 + vpxorq zmm2,zmm2,zmm10 + + + vmovdqa32 zmm9,zmm15 + vmovdqa32 zmm10,zmm16 + vmovdqu8 ZMMWORD[rsi],zmm1 + vmovdqu8 ZMMWORD[64+rsi]{k1},zmm2 + jmp NEAR $L$_ret_amivrujEyduiFoi + +$L$_remaining_num_blocks_is_6_amivrujEyduiFoi: + vmovdqu8 zmm1,ZMMWORD[rdi] + vmovdqu8 ymm2,YMMWORD[64+rdi] + add rdi,0x60 + and rdx,0xf + je NEAR $L$_done_6_remain_amivrujEyduiFoi + vextracti32x4 xmm12,zmm10,0x1 + vextracti32x4 xmm13,zmm10,0x2 + vinserti32x4 zmm10,zmm10,xmm13,0x1 + + vpxorq zmm1,zmm1,zmm9 + vpxorq zmm2,zmm2,zmm10 + + + vbroadcasti32x4 zmm0,ZMMWORD[rcx] + vpxorq zmm1,zmm1,zmm0 + vpxorq zmm2,zmm2,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[16+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[32+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[48+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + vbroadcasti32x4 zmm0,ZMMWORD[64+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[80+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[96+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[112+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[128+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[144+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[160+rcx] + vaesdeclast zmm1,zmm1,zmm0 + vaesdeclast zmm2,zmm2,zmm0 + + vpxorq zmm1,zmm1,zmm9 + vpxorq zmm2,zmm2,zmm10 + + + vmovdqa32 zmm9,zmm15 + vmovdqa32 zmm10,zmm16 + vmovdqu8 ZMMWORD[rsi],zmm1 + vmovdqu8 YMMWORD[64+rsi],ymm2 + add rsi,0x60 + vextracti32x4 xmm8,zmm2,0x1 + vmovdqa xmm0,xmm12 + jmp NEAR $L$_steal_cipher_amivrujEyduiFoi + +$L$_done_6_remain_amivrujEyduiFoi: + + vpxorq zmm1,zmm1,zmm9 + vpxorq zmm2,zmm2,zmm10 + + + vbroadcasti32x4 zmm0,ZMMWORD[rcx] + vpxorq zmm1,zmm1,zmm0 + vpxorq zmm2,zmm2,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[16+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[32+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[48+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + vbroadcasti32x4 zmm0,ZMMWORD[64+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[80+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[96+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[112+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[128+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[144+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[160+rcx] + vaesdeclast zmm1,zmm1,zmm0 + vaesdeclast zmm2,zmm2,zmm0 + + vpxorq zmm1,zmm1,zmm9 + vpxorq zmm2,zmm2,zmm10 + + + vmovdqa32 zmm9,zmm15 + vmovdqa32 zmm10,zmm16 + vmovdqu8 ZMMWORD[rsi],zmm1 + vmovdqu8 YMMWORD[64+rsi],ymm2 + jmp NEAR $L$_ret_amivrujEyduiFoi + +$L$_remaining_num_blocks_is_5_amivrujEyduiFoi: + vmovdqu8 zmm1,ZMMWORD[rdi] + vmovdqu xmm2,XMMWORD[64+rdi] + add rdi,0x50 + and rdx,0xf + je NEAR $L$_done_5_remain_amivrujEyduiFoi + vmovdqa xmm12,xmm10 + vextracti32x4 xmm10,zmm10,0x1 + + vpxorq zmm1,zmm1,zmm9 + vpxorq zmm2,zmm2,zmm10 + + + vbroadcasti32x4 zmm0,ZMMWORD[rcx] + vpxorq zmm1,zmm1,zmm0 + vpxorq zmm2,zmm2,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[16+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[32+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[48+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + vbroadcasti32x4 zmm0,ZMMWORD[64+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[80+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[96+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[112+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[128+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[144+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[160+rcx] + vaesdeclast zmm1,zmm1,zmm0 + vaesdeclast zmm2,zmm2,zmm0 + + vpxorq zmm1,zmm1,zmm9 + vpxorq zmm2,zmm2,zmm10 + + + vmovdqa32 zmm9,zmm15 + vmovdqa32 zmm10,zmm16 + vmovdqu8 ZMMWORD[rsi],zmm1 + vmovdqu XMMWORD[64+rsi],xmm2 + add rsi,0x50 + vmovdqa xmm8,xmm2 + vmovdqa xmm0,xmm12 + jmp NEAR $L$_steal_cipher_amivrujEyduiFoi + +$L$_done_5_remain_amivrujEyduiFoi: + + vpxorq zmm1,zmm1,zmm9 + vpxorq zmm2,zmm2,zmm10 + + + vbroadcasti32x4 zmm0,ZMMWORD[rcx] + vpxorq zmm1,zmm1,zmm0 + vpxorq zmm2,zmm2,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[16+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[32+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[48+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + vbroadcasti32x4 zmm0,ZMMWORD[64+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[80+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[96+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[112+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[128+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[144+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[160+rcx] + vaesdeclast zmm1,zmm1,zmm0 + vaesdeclast zmm2,zmm2,zmm0 + + vpxorq zmm1,zmm1,zmm9 + vpxorq zmm2,zmm2,zmm10 + + + vmovdqa32 zmm9,zmm15 + vmovdqa32 zmm10,zmm16 + vmovdqu8 ZMMWORD[rsi],zmm1 + vmovdqu8 XMMWORD[64+rsi],xmm2 + jmp NEAR $L$_ret_amivrujEyduiFoi + +$L$_remaining_num_blocks_is_4_amivrujEyduiFoi: + vmovdqu8 zmm1,ZMMWORD[rdi] + add rdi,0x40 + and rdx,0xf + je NEAR $L$_done_4_remain_amivrujEyduiFoi + vextracti32x4 xmm12,zmm9,0x3 + vinserti32x4 zmm9,zmm9,xmm10,0x3 + + vpxorq zmm1,zmm1,zmm9 + vpxorq zmm2,zmm2,zmm10 + + + vbroadcasti32x4 zmm0,ZMMWORD[rcx] + vpxorq zmm1,zmm1,zmm0 + vpxorq zmm2,zmm2,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[16+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[32+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[48+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + vbroadcasti32x4 zmm0,ZMMWORD[64+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[80+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[96+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[112+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[128+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[144+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[160+rcx] + vaesdeclast zmm1,zmm1,zmm0 + vaesdeclast zmm2,zmm2,zmm0 + + vpxorq zmm1,zmm1,zmm9 + vpxorq zmm2,zmm2,zmm10 + + + vmovdqa32 zmm9,zmm15 + vmovdqa32 zmm10,zmm16 + vmovdqu8 ZMMWORD[rsi],zmm1 + add rsi,0x40 + vextracti32x4 xmm8,zmm1,0x3 + vmovdqa xmm0,xmm12 + jmp NEAR $L$_steal_cipher_amivrujEyduiFoi + +$L$_done_4_remain_amivrujEyduiFoi: + + vpxorq zmm1,zmm1,zmm9 + vpxorq zmm2,zmm2,zmm10 + + + vbroadcasti32x4 zmm0,ZMMWORD[rcx] + vpxorq zmm1,zmm1,zmm0 + vpxorq zmm2,zmm2,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[16+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[32+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[48+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + vbroadcasti32x4 zmm0,ZMMWORD[64+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[80+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[96+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[112+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[128+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[144+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[160+rcx] + vaesdeclast zmm1,zmm1,zmm0 + vaesdeclast zmm2,zmm2,zmm0 + + vpxorq zmm1,zmm1,zmm9 + vpxorq zmm2,zmm2,zmm10 + + + vmovdqa32 zmm9,zmm15 + vmovdqa32 zmm10,zmm16 + vmovdqu8 ZMMWORD[rsi],zmm1 + jmp NEAR $L$_ret_amivrujEyduiFoi + +$L$_remaining_num_blocks_is_3_amivrujEyduiFoi: + vmovdqu xmm1,XMMWORD[rdi] + vmovdqu xmm2,XMMWORD[16+rdi] + vmovdqu xmm3,XMMWORD[32+rdi] + add rdi,0x30 + and rdx,0xf + je NEAR $L$_done_3_remain_amivrujEyduiFoi + vextracti32x4 xmm13,zmm9,0x2 + vextracti32x4 xmm10,zmm9,0x1 + vextracti32x4 xmm11,zmm9,0x3 + vpxor xmm1,xmm1,xmm9 + vpxor xmm2,xmm2,xmm10 + vpxor xmm3,xmm3,xmm11 + vmovdqu xmm0,XMMWORD[rcx] + vpxor xmm1,xmm1,xmm0 + vpxor xmm2,xmm2,xmm0 + vpxor xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[16+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[32+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[48+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[64+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[80+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[96+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[112+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[128+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[144+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[160+rcx] + vaesdeclast xmm1,xmm1,xmm0 + vaesdeclast xmm2,xmm2,xmm0 + vaesdeclast xmm3,xmm3,xmm0 + vpxor xmm1,xmm1,xmm9 + vpxor xmm2,xmm2,xmm10 + vpxor xmm3,xmm3,xmm11 + vmovdqu XMMWORD[rsi],xmm1 + vmovdqu XMMWORD[16+rsi],xmm2 + vmovdqu XMMWORD[32+rsi],xmm3 + add rsi,0x30 + vmovdqa xmm8,xmm3 + vmovdqa xmm0,xmm13 + jmp NEAR $L$_steal_cipher_amivrujEyduiFoi + +$L$_done_3_remain_amivrujEyduiFoi: + vextracti32x4 xmm10,zmm9,0x1 + vextracti32x4 xmm11,zmm9,0x2 + vpxor xmm1,xmm1,xmm9 + vpxor xmm2,xmm2,xmm10 + vpxor xmm3,xmm3,xmm11 + vmovdqu xmm0,XMMWORD[rcx] + vpxor xmm1,xmm1,xmm0 + vpxor xmm2,xmm2,xmm0 + vpxor xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[16+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[32+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[48+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[64+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[80+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[96+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[112+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[128+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[144+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[160+rcx] + vaesdeclast xmm1,xmm1,xmm0 + vaesdeclast xmm2,xmm2,xmm0 + vaesdeclast xmm3,xmm3,xmm0 + vpxor xmm1,xmm1,xmm9 + vpxor xmm2,xmm2,xmm10 + vpxor xmm3,xmm3,xmm11 + vmovdqu XMMWORD[rsi],xmm1 + vmovdqu XMMWORD[16+rsi],xmm2 + vmovdqu XMMWORD[32+rsi],xmm3 + jmp NEAR $L$_ret_amivrujEyduiFoi + +$L$_remaining_num_blocks_is_2_amivrujEyduiFoi: + vmovdqu xmm1,XMMWORD[rdi] + vmovdqu xmm2,XMMWORD[16+rdi] + add rdi,0x20 + and rdx,0xf + je NEAR $L$_done_2_remain_amivrujEyduiFoi + vextracti32x4 xmm10,zmm9,0x2 + vextracti32x4 xmm12,zmm9,0x1 + vpxor xmm1,xmm1,xmm9 + vpxor xmm2,xmm2,xmm10 + vmovdqu xmm0,XMMWORD[rcx] + vpxor xmm1,xmm1,xmm0 + vpxor xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[16+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[32+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[48+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[64+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[80+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[96+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[112+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[128+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[144+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[160+rcx] + vaesdeclast xmm1,xmm1,xmm0 + vaesdeclast xmm2,xmm2,xmm0 + vpxor xmm1,xmm1,xmm9 + vpxor xmm2,xmm2,xmm10 + vmovdqu XMMWORD[rsi],xmm1 + vmovdqu XMMWORD[16+rsi],xmm2 + add rsi,0x20 + vmovdqa xmm8,xmm2 + vmovdqa xmm0,xmm12 + jmp NEAR $L$_steal_cipher_amivrujEyduiFoi + +$L$_done_2_remain_amivrujEyduiFoi: + vextracti32x4 xmm10,zmm9,0x1 + vpxor xmm1,xmm1,xmm9 + vpxor xmm2,xmm2,xmm10 + vmovdqu xmm0,XMMWORD[rcx] + vpxor xmm1,xmm1,xmm0 + vpxor xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[16+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[32+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[48+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[64+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[80+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[96+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[112+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[128+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[144+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[160+rcx] + vaesdeclast xmm1,xmm1,xmm0 + vaesdeclast xmm2,xmm2,xmm0 + vpxor xmm1,xmm1,xmm9 + vpxor xmm2,xmm2,xmm10 + vmovdqu XMMWORD[rsi],xmm1 + vmovdqu XMMWORD[16+rsi],xmm2 + jmp NEAR $L$_ret_amivrujEyduiFoi + +$L$_remaining_num_blocks_is_1_amivrujEyduiFoi: + vmovdqu xmm1,XMMWORD[rdi] + add rdi,0x10 + and rdx,0xf + je NEAR $L$_done_1_remain_amivrujEyduiFoi + vextracti32x4 xmm11,zmm9,0x1 + vpxor xmm1,xmm1,xmm11 + vmovdqu xmm0,XMMWORD[rcx] + vpxor xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[16+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[32+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[48+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[64+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[80+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[96+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[112+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[128+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[144+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[160+rcx] + vaesdeclast xmm1,xmm1,xmm0 + vpxor xmm1,xmm1,xmm11 + vmovdqu XMMWORD[rsi],xmm1 + add rsi,0x10 + vmovdqa xmm8,xmm1 + vmovdqa xmm0,xmm9 + jmp NEAR $L$_steal_cipher_amivrujEyduiFoi + +$L$_done_1_remain_amivrujEyduiFoi: + vpxor xmm1,xmm1,xmm9 + vmovdqu xmm0,XMMWORD[rcx] + vpxor xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[16+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[32+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[48+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[64+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[80+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[96+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[112+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[128+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[144+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[160+rcx] + vaesdeclast xmm1,xmm1,xmm0 + vpxor xmm1,xmm1,xmm9 + vmovdqu XMMWORD[rsi],xmm1 + jmp NEAR $L$_ret_amivrujEyduiFoi + +$L$_start_by16_amivrujEyduiFoi: + vbroadcasti32x4 zmm0,ZMMWORD[rsp] + vbroadcasti32x4 zmm8,ZMMWORD[shufb_15_7] + mov r8,0xaa + kmovq k2,r8 + + + vpshufb zmm1,zmm0,zmm8 + vpsllvq zmm4,zmm0,ZMMWORD[const_dq3210] + vpsrlvq zmm2,zmm1,ZMMWORD[const_dq5678] + vpclmulqdq zmm3,zmm2,zmm25,0x0 + vpxorq zmm4{k2},zmm4,zmm2 + vpxord zmm9,zmm3,zmm4 + + + vpsllvq zmm5,zmm0,ZMMWORD[const_dq7654] + vpsrlvq zmm6,zmm1,ZMMWORD[const_dq1234] + vpclmulqdq zmm7,zmm6,zmm25,0x0 + vpxorq zmm5{k2},zmm5,zmm6 + vpxord zmm10,zmm7,zmm5 + + + vpsrldq zmm13,zmm9,0xf + vpclmulqdq zmm14,zmm13,zmm25,0x0 + vpslldq zmm11,zmm9,0x1 + vpxord zmm11,zmm11,zmm14 + + vpsrldq zmm15,zmm10,0xf + vpclmulqdq zmm16,zmm15,zmm25,0x0 + vpslldq zmm12,zmm10,0x1 + vpxord zmm12,zmm12,zmm16 + +$L$_main_loop_run_16_amivrujEyduiFoi: + vmovdqu8 zmm1,ZMMWORD[rdi] + vmovdqu8 zmm2,ZMMWORD[64+rdi] + vmovdqu8 zmm3,ZMMWORD[128+rdi] + vmovdqu8 zmm4,ZMMWORD[192+rdi] + vmovdqu8 xmm5,XMMWORD[240+rdi] + add rdi,0x100 + vpxorq zmm1,zmm1,zmm9 + vpxorq zmm2,zmm2,zmm10 + vpxorq zmm3,zmm3,zmm11 + vpxorq zmm4,zmm4,zmm12 + vbroadcasti32x4 zmm0,ZMMWORD[rcx] + vpxorq zmm1,zmm1,zmm0 + vpxorq zmm2,zmm2,zmm0 + vpxorq zmm3,zmm3,zmm0 + vpxorq zmm4,zmm4,zmm0 + vpsrldq zmm13,zmm11,0xf + vpclmulqdq zmm14,zmm13,zmm25,0x0 + vpslldq zmm15,zmm11,0x1 + vpxord zmm15,zmm15,zmm14 + vbroadcasti32x4 zmm0,ZMMWORD[16+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + vaesdec zmm3,zmm3,zmm0 + vaesdec zmm4,zmm4,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[32+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + vaesdec zmm3,zmm3,zmm0 + vaesdec zmm4,zmm4,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[48+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + vaesdec zmm3,zmm3,zmm0 + vaesdec zmm4,zmm4,zmm0 + vpsrldq zmm13,zmm12,0xf + vpclmulqdq zmm14,zmm13,zmm25,0x0 + vpslldq zmm16,zmm12,0x1 + vpxord zmm16,zmm16,zmm14 + vbroadcasti32x4 zmm0,ZMMWORD[64+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + vaesdec zmm3,zmm3,zmm0 + vaesdec zmm4,zmm4,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[80+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + vaesdec zmm3,zmm3,zmm0 + vaesdec zmm4,zmm4,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[96+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + vaesdec zmm3,zmm3,zmm0 + vaesdec zmm4,zmm4,zmm0 + vpsrldq zmm13,zmm15,0xf + vpclmulqdq zmm14,zmm13,zmm25,0x0 + vpslldq zmm17,zmm15,0x1 + vpxord zmm17,zmm17,zmm14 + vbroadcasti32x4 zmm0,ZMMWORD[112+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + vaesdec zmm3,zmm3,zmm0 + vaesdec zmm4,zmm4,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[128+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + vaesdec zmm3,zmm3,zmm0 + vaesdec zmm4,zmm4,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[144+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + vaesdec zmm3,zmm3,zmm0 + vaesdec zmm4,zmm4,zmm0 + vpsrldq zmm13,zmm16,0xf + vpclmulqdq zmm14,zmm13,zmm25,0x0 + vpslldq zmm18,zmm16,0x1 + vpxord zmm18,zmm18,zmm14 + vbroadcasti32x4 zmm0,ZMMWORD[160+rcx] + vaesdeclast zmm1,zmm1,zmm0 + vaesdeclast zmm2,zmm2,zmm0 + vaesdeclast zmm3,zmm3,zmm0 + vaesdeclast zmm4,zmm4,zmm0 + vpxorq zmm1,zmm1,zmm9 + vpxorq zmm2,zmm2,zmm10 + vpxorq zmm3,zmm3,zmm11 + vpxorq zmm4,zmm4,zmm12 + + vmovdqa32 zmm9,zmm15 + vmovdqa32 zmm10,zmm16 + vmovdqa32 zmm11,zmm17 + vmovdqa32 zmm12,zmm18 + vmovdqu8 ZMMWORD[rsi],zmm1 + vmovdqu8 ZMMWORD[64+rsi],zmm2 + vmovdqu8 ZMMWORD[128+rsi],zmm3 + vmovdqu8 ZMMWORD[192+rsi],zmm4 + add rsi,0x100 + sub rdx,0x100 + cmp rdx,0x100 + jge NEAR $L$_main_loop_run_16_amivrujEyduiFoi + + cmp rdx,0x80 + jge NEAR $L$_main_loop_run_8_amivrujEyduiFoi + jmp NEAR $L$_do_n_blocks_amivrujEyduiFoi + +$L$_start_by8_amivrujEyduiFoi: + + vbroadcasti32x4 zmm0,ZMMWORD[rsp] + vbroadcasti32x4 zmm8,ZMMWORD[shufb_15_7] + mov r8,0xaa + kmovq k2,r8 + + + vpshufb zmm1,zmm0,zmm8 + vpsllvq zmm4,zmm0,ZMMWORD[const_dq3210] + vpsrlvq zmm2,zmm1,ZMMWORD[const_dq5678] + vpclmulqdq zmm3,zmm2,zmm25,0x0 + vpxorq zmm4{k2},zmm4,zmm2 + vpxord zmm9,zmm3,zmm4 + + + vpsllvq zmm5,zmm0,ZMMWORD[const_dq7654] + vpsrlvq zmm6,zmm1,ZMMWORD[const_dq1234] + vpclmulqdq zmm7,zmm6,zmm25,0x0 + vpxorq zmm5{k2},zmm5,zmm6 + vpxord zmm10,zmm7,zmm5 + +$L$_main_loop_run_8_amivrujEyduiFoi: + vmovdqu8 zmm1,ZMMWORD[rdi] + vmovdqu8 zmm2,ZMMWORD[64+rdi] + vmovdqu8 xmm5,XMMWORD[112+rdi] + add rdi,0x80 + + vpxorq zmm1,zmm1,zmm9 + vpxorq zmm2,zmm2,zmm10 + + + vbroadcasti32x4 zmm0,ZMMWORD[rcx] + vpxorq zmm1,zmm1,zmm0 + vpxorq zmm2,zmm2,zmm0 + vpsrldq zmm13,zmm9,0xf + vpclmulqdq zmm14,zmm13,zmm25,0x0 + vpslldq zmm15,zmm9,0x1 + vpxord zmm15,zmm15,zmm14 + vbroadcasti32x4 zmm0,ZMMWORD[16+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[32+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[48+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + vpsrldq zmm13,zmm10,0xf + vpclmulqdq zmm14,zmm13,zmm25,0x0 + vpslldq zmm16,zmm10,0x1 + vpxord zmm16,zmm16,zmm14 + + vbroadcasti32x4 zmm0,ZMMWORD[64+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[80+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[96+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[112+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[128+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[144+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[160+rcx] + vaesdeclast zmm1,zmm1,zmm0 + vaesdeclast zmm2,zmm2,zmm0 + + vpxorq zmm1,zmm1,zmm9 + vpxorq zmm2,zmm2,zmm10 + + + vmovdqa32 zmm9,zmm15 + vmovdqa32 zmm10,zmm16 + vmovdqu8 ZMMWORD[rsi],zmm1 + vmovdqu8 ZMMWORD[64+rsi],zmm2 + add rsi,0x80 + sub rdx,0x80 + cmp rdx,0x80 + jge NEAR $L$_main_loop_run_8_amivrujEyduiFoi + jmp NEAR $L$_do_n_blocks_amivrujEyduiFoi + +$L$_steal_cipher_amivrujEyduiFoi: + + vmovdqa xmm2,xmm8 + + + lea rax,[vpshufb_shf_table] + vmovdqu xmm10,XMMWORD[rdx*1+rax] + vpshufb xmm8,xmm8,xmm10 + + + vmovdqu xmm3,XMMWORD[((-16))+rdx*1+rdi] + vmovdqu XMMWORD[(-16)+rdx*1+rsi],xmm8 + + + lea rax,[vpshufb_shf_table] + add rax,16 + sub rax,rdx + vmovdqu xmm10,XMMWORD[rax] + vpxor xmm10,xmm10,XMMWORD[mask1] + vpshufb xmm3,xmm3,xmm10 + + vpblendvb xmm3,xmm3,xmm2,xmm10 + + + vpxor xmm8,xmm3,xmm0 + + + vpxor xmm8,xmm8,XMMWORD[rcx] + vaesdec xmm8,xmm8,XMMWORD[16+rcx] + vaesdec xmm8,xmm8,XMMWORD[32+rcx] + vaesdec xmm8,xmm8,XMMWORD[48+rcx] + vaesdec xmm8,xmm8,XMMWORD[64+rcx] + vaesdec xmm8,xmm8,XMMWORD[80+rcx] + vaesdec xmm8,xmm8,XMMWORD[96+rcx] + vaesdec xmm8,xmm8,XMMWORD[112+rcx] + vaesdec xmm8,xmm8,XMMWORD[128+rcx] + vaesdec xmm8,xmm8,XMMWORD[144+rcx] + vaesdeclast xmm8,xmm8,XMMWORD[160+rcx] + + vpxor xmm8,xmm8,xmm0 + +$L$_done_amivrujEyduiFoi: + + vmovdqu XMMWORD[(-16)+rsi],xmm8 +$L$_ret_amivrujEyduiFoi: + mov rbx,QWORD[288+rsp] + xor r8,r8 + mov QWORD[288+rsp],r8 + + vpxorq zmm0,zmm0,zmm0 + mov rdi,QWORD[((288 + 8))+rsp] + mov QWORD[((288 + 8))+rsp],r8 + mov rsi,QWORD[((288 + 16))+rsp] + mov QWORD[((288 + 16))+rsp],r8 + + vmovdqa xmm6,XMMWORD[((128 + 0))+rsp] + vmovdqa xmm7,XMMWORD[((128 + 16))+rsp] + vmovdqa xmm8,XMMWORD[((128 + 32))+rsp] + vmovdqa xmm9,XMMWORD[((128 + 48))+rsp] + + + vmovdqa64 ZMMWORD[128+rsp],zmm0 + + vmovdqa xmm10,XMMWORD[((128 + 64))+rsp] + vmovdqa xmm11,XMMWORD[((128 + 80))+rsp] + vmovdqa xmm12,XMMWORD[((128 + 96))+rsp] + vmovdqa xmm13,XMMWORD[((128 + 112))+rsp] + + + vmovdqa64 ZMMWORD[(128 + 64)+rsp],zmm0 + + vmovdqa xmm14,XMMWORD[((128 + 128))+rsp] + vmovdqa xmm15,XMMWORD[((128 + 144))+rsp] + + + + vmovdqa YMMWORD[(128 + 128)+rsp],ymm0 + mov rsp,rbp + pop rbp + vzeroupper + mov rdi,QWORD[8+rsp] ;WIN64 epilogue + mov rsi,QWORD[16+rsp] + DB 0F3h,0C3h ;repret + +$L$_less_than_128_bytes_amivrujEyduiFoi: + cmp rdx,0x10 + jb NEAR $L$_ret_amivrujEyduiFoi + + mov r8,rdx + and r8,0x70 + cmp r8,0x60 + je NEAR $L$_num_blocks_is_6_amivrujEyduiFoi + cmp r8,0x50 + je NEAR $L$_num_blocks_is_5_amivrujEyduiFoi + cmp r8,0x40 + je NEAR $L$_num_blocks_is_4_amivrujEyduiFoi + cmp r8,0x30 + je NEAR $L$_num_blocks_is_3_amivrujEyduiFoi + cmp r8,0x20 + je NEAR $L$_num_blocks_is_2_amivrujEyduiFoi + cmp r8,0x10 + je NEAR $L$_num_blocks_is_1_amivrujEyduiFoi + +$L$_num_blocks_is_7_amivrujEyduiFoi: + vmovdqa xmm9,XMMWORD[rsp] + mov rax,QWORD[rsp] + mov rbx,QWORD[8+rsp] + vmovdqu xmm1,XMMWORD[rdi] + xor r11,r11 + shl rax,1 + adc rbx,rbx + cmovc r11,r10 + xor rax,r11 + mov QWORD[16+rsp],rax + mov QWORD[((16 + 8))+rsp],rbx + vmovdqa xmm10,XMMWORD[16+rsp] + vmovdqu xmm2,XMMWORD[16+rdi] + xor r11,r11 + shl rax,1 + adc rbx,rbx + cmovc r11,r10 + xor rax,r11 + mov QWORD[32+rsp],rax + mov QWORD[((32 + 8))+rsp],rbx + vmovdqa xmm11,XMMWORD[32+rsp] + vmovdqu xmm3,XMMWORD[32+rdi] + xor r11,r11 + shl rax,1 + adc rbx,rbx + cmovc r11,r10 + xor rax,r11 + mov QWORD[48+rsp],rax + mov QWORD[((48 + 8))+rsp],rbx + vmovdqa xmm12,XMMWORD[48+rsp] + vmovdqu xmm4,XMMWORD[48+rdi] + xor r11,r11 + shl rax,1 + adc rbx,rbx + cmovc r11,r10 + xor rax,r11 + mov QWORD[64+rsp],rax + mov QWORD[((64 + 8))+rsp],rbx + vmovdqa xmm13,XMMWORD[64+rsp] + vmovdqu xmm5,XMMWORD[64+rdi] + xor r11,r11 + shl rax,1 + adc rbx,rbx + cmovc r11,r10 + xor rax,r11 + mov QWORD[80+rsp],rax + mov QWORD[((80 + 8))+rsp],rbx + vmovdqa xmm14,XMMWORD[80+rsp] + vmovdqu xmm6,XMMWORD[80+rdi] + xor r11,r11 + shl rax,1 + adc rbx,rbx + cmovc r11,r10 + xor rax,r11 + mov QWORD[96+rsp],rax + mov QWORD[((96 + 8))+rsp],rbx + vmovdqa xmm15,XMMWORD[96+rsp] + vmovdqu xmm7,XMMWORD[96+rdi] + add rdi,0x70 + and rdx,0xf + je NEAR $L$_done_7_amivrujEyduiFoi + +$L$_steal_cipher_7_amivrujEyduiFoi: + xor r11,r11 + shl rax,1 + adc rbx,rbx + cmovc r11,r10 + xor rax,r11 + mov QWORD[16+rsp],rax + mov QWORD[24+rsp],rbx + vmovdqa64 xmm16,xmm15 + vmovdqa xmm15,XMMWORD[16+rsp] + vpxor xmm1,xmm1,xmm9 + vpxor xmm2,xmm2,xmm10 + vpxor xmm3,xmm3,xmm11 + vpxor xmm4,xmm4,xmm12 + vpxor xmm5,xmm5,xmm13 + vpxor xmm6,xmm6,xmm14 + vpxor xmm7,xmm7,xmm15 + vmovdqu xmm0,XMMWORD[rcx] + vpxor xmm1,xmm1,xmm0 + vpxor xmm2,xmm2,xmm0 + vpxor xmm3,xmm3,xmm0 + vpxor xmm4,xmm4,xmm0 + vpxor xmm5,xmm5,xmm0 + vpxor xmm6,xmm6,xmm0 + vpxor xmm7,xmm7,xmm0 + vmovdqu xmm0,XMMWORD[16+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vaesdec xmm7,xmm7,xmm0 + vmovdqu xmm0,XMMWORD[32+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vaesdec xmm7,xmm7,xmm0 + vmovdqu xmm0,XMMWORD[48+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vaesdec xmm7,xmm7,xmm0 + vmovdqu xmm0,XMMWORD[64+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vaesdec xmm7,xmm7,xmm0 + vmovdqu xmm0,XMMWORD[80+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vaesdec xmm7,xmm7,xmm0 + vmovdqu xmm0,XMMWORD[96+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vaesdec xmm7,xmm7,xmm0 + vmovdqu xmm0,XMMWORD[112+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vaesdec xmm7,xmm7,xmm0 + vmovdqu xmm0,XMMWORD[128+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vaesdec xmm7,xmm7,xmm0 + vmovdqu xmm0,XMMWORD[144+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vaesdec xmm7,xmm7,xmm0 + vmovdqu xmm0,XMMWORD[160+rcx] + vaesdeclast xmm1,xmm1,xmm0 + vaesdeclast xmm2,xmm2,xmm0 + vaesdeclast xmm3,xmm3,xmm0 + vaesdeclast xmm4,xmm4,xmm0 + vaesdeclast xmm5,xmm5,xmm0 + vaesdeclast xmm6,xmm6,xmm0 + vaesdeclast xmm7,xmm7,xmm0 + vpxor xmm1,xmm1,xmm9 + vpxor xmm2,xmm2,xmm10 + vpxor xmm3,xmm3,xmm11 + vpxor xmm4,xmm4,xmm12 + vpxor xmm5,xmm5,xmm13 + vpxor xmm6,xmm6,xmm14 + vpxor xmm7,xmm7,xmm15 + vmovdqu XMMWORD[rsi],xmm1 + vmovdqu XMMWORD[16+rsi],xmm2 + vmovdqu XMMWORD[32+rsi],xmm3 + vmovdqu XMMWORD[48+rsi],xmm4 + vmovdqu XMMWORD[64+rsi],xmm5 + vmovdqu XMMWORD[80+rsi],xmm6 + add rsi,0x70 + vmovdqa64 xmm0,xmm16 + vmovdqa xmm8,xmm7 + jmp NEAR $L$_steal_cipher_amivrujEyduiFoi + +$L$_done_7_amivrujEyduiFoi: + vpxor xmm1,xmm1,xmm9 + vpxor xmm2,xmm2,xmm10 + vpxor xmm3,xmm3,xmm11 + vpxor xmm4,xmm4,xmm12 + vpxor xmm5,xmm5,xmm13 + vpxor xmm6,xmm6,xmm14 + vpxor xmm7,xmm7,xmm15 + vmovdqu xmm0,XMMWORD[rcx] + vpxor xmm1,xmm1,xmm0 + vpxor xmm2,xmm2,xmm0 + vpxor xmm3,xmm3,xmm0 + vpxor xmm4,xmm4,xmm0 + vpxor xmm5,xmm5,xmm0 + vpxor xmm6,xmm6,xmm0 + vpxor xmm7,xmm7,xmm0 + vmovdqu xmm0,XMMWORD[16+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vaesdec xmm7,xmm7,xmm0 + vmovdqu xmm0,XMMWORD[32+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vaesdec xmm7,xmm7,xmm0 + vmovdqu xmm0,XMMWORD[48+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vaesdec xmm7,xmm7,xmm0 + vmovdqu xmm0,XMMWORD[64+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vaesdec xmm7,xmm7,xmm0 + vmovdqu xmm0,XMMWORD[80+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vaesdec xmm7,xmm7,xmm0 + vmovdqu xmm0,XMMWORD[96+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vaesdec xmm7,xmm7,xmm0 + vmovdqu xmm0,XMMWORD[112+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vaesdec xmm7,xmm7,xmm0 + vmovdqu xmm0,XMMWORD[128+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vaesdec xmm7,xmm7,xmm0 + vmovdqu xmm0,XMMWORD[144+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vaesdec xmm7,xmm7,xmm0 + vmovdqu xmm0,XMMWORD[160+rcx] + vaesdeclast xmm1,xmm1,xmm0 + vaesdeclast xmm2,xmm2,xmm0 + vaesdeclast xmm3,xmm3,xmm0 + vaesdeclast xmm4,xmm4,xmm0 + vaesdeclast xmm5,xmm5,xmm0 + vaesdeclast xmm6,xmm6,xmm0 + vaesdeclast xmm7,xmm7,xmm0 + vpxor xmm1,xmm1,xmm9 + vpxor xmm2,xmm2,xmm10 + vpxor xmm3,xmm3,xmm11 + vpxor xmm4,xmm4,xmm12 + vpxor xmm5,xmm5,xmm13 + vpxor xmm6,xmm6,xmm14 + vpxor xmm7,xmm7,xmm15 + vmovdqu XMMWORD[rsi],xmm1 + vmovdqu XMMWORD[16+rsi],xmm2 + vmovdqu XMMWORD[32+rsi],xmm3 + vmovdqu XMMWORD[48+rsi],xmm4 + vmovdqu XMMWORD[64+rsi],xmm5 + vmovdqu XMMWORD[80+rsi],xmm6 + add rsi,0x70 + vmovdqa xmm8,xmm7 + jmp NEAR $L$_done_amivrujEyduiFoi + +$L$_num_blocks_is_6_amivrujEyduiFoi: + vmovdqa xmm9,XMMWORD[rsp] + mov rax,QWORD[rsp] + mov rbx,QWORD[8+rsp] + vmovdqu xmm1,XMMWORD[rdi] + xor r11,r11 + shl rax,1 + adc rbx,rbx + cmovc r11,r10 + xor rax,r11 + mov QWORD[16+rsp],rax + mov QWORD[((16 + 8))+rsp],rbx + vmovdqa xmm10,XMMWORD[16+rsp] + vmovdqu xmm2,XMMWORD[16+rdi] + xor r11,r11 + shl rax,1 + adc rbx,rbx + cmovc r11,r10 + xor rax,r11 + mov QWORD[32+rsp],rax + mov QWORD[((32 + 8))+rsp],rbx + vmovdqa xmm11,XMMWORD[32+rsp] + vmovdqu xmm3,XMMWORD[32+rdi] + xor r11,r11 + shl rax,1 + adc rbx,rbx + cmovc r11,r10 + xor rax,r11 + mov QWORD[48+rsp],rax + mov QWORD[((48 + 8))+rsp],rbx + vmovdqa xmm12,XMMWORD[48+rsp] + vmovdqu xmm4,XMMWORD[48+rdi] + xor r11,r11 + shl rax,1 + adc rbx,rbx + cmovc r11,r10 + xor rax,r11 + mov QWORD[64+rsp],rax + mov QWORD[((64 + 8))+rsp],rbx + vmovdqa xmm13,XMMWORD[64+rsp] + vmovdqu xmm5,XMMWORD[64+rdi] + xor r11,r11 + shl rax,1 + adc rbx,rbx + cmovc r11,r10 + xor rax,r11 + mov QWORD[80+rsp],rax + mov QWORD[((80 + 8))+rsp],rbx + vmovdqa xmm14,XMMWORD[80+rsp] + vmovdqu xmm6,XMMWORD[80+rdi] + add rdi,0x60 + and rdx,0xf + je NEAR $L$_done_6_amivrujEyduiFoi + +$L$_steal_cipher_6_amivrujEyduiFoi: + xor r11,r11 + shl rax,1 + adc rbx,rbx + cmovc r11,r10 + xor rax,r11 + mov QWORD[16+rsp],rax + mov QWORD[24+rsp],rbx + vmovdqa64 xmm15,xmm14 + vmovdqa xmm14,XMMWORD[16+rsp] + vpxor xmm1,xmm1,xmm9 + vpxor xmm2,xmm2,xmm10 + vpxor xmm3,xmm3,xmm11 + vpxor xmm4,xmm4,xmm12 + vpxor xmm5,xmm5,xmm13 + vpxor xmm6,xmm6,xmm14 + vmovdqu xmm0,XMMWORD[rcx] + vpxor xmm1,xmm1,xmm0 + vpxor xmm2,xmm2,xmm0 + vpxor xmm3,xmm3,xmm0 + vpxor xmm4,xmm4,xmm0 + vpxor xmm5,xmm5,xmm0 + vpxor xmm6,xmm6,xmm0 + vmovdqu xmm0,XMMWORD[16+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vmovdqu xmm0,XMMWORD[32+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vmovdqu xmm0,XMMWORD[48+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vmovdqu xmm0,XMMWORD[64+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vmovdqu xmm0,XMMWORD[80+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vmovdqu xmm0,XMMWORD[96+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vmovdqu xmm0,XMMWORD[112+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vmovdqu xmm0,XMMWORD[128+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vmovdqu xmm0,XMMWORD[144+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vmovdqu xmm0,XMMWORD[160+rcx] + vaesdeclast xmm1,xmm1,xmm0 + vaesdeclast xmm2,xmm2,xmm0 + vaesdeclast xmm3,xmm3,xmm0 + vaesdeclast xmm4,xmm4,xmm0 + vaesdeclast xmm5,xmm5,xmm0 + vaesdeclast xmm6,xmm6,xmm0 + vpxor xmm1,xmm1,xmm9 + vpxor xmm2,xmm2,xmm10 + vpxor xmm3,xmm3,xmm11 + vpxor xmm4,xmm4,xmm12 + vpxor xmm5,xmm5,xmm13 + vpxor xmm6,xmm6,xmm14 + vmovdqu XMMWORD[rsi],xmm1 + vmovdqu XMMWORD[16+rsi],xmm2 + vmovdqu XMMWORD[32+rsi],xmm3 + vmovdqu XMMWORD[48+rsi],xmm4 + vmovdqu XMMWORD[64+rsi],xmm5 + add rsi,0x60 + vmovdqa xmm0,xmm15 + vmovdqa xmm8,xmm6 + jmp NEAR $L$_steal_cipher_amivrujEyduiFoi + +$L$_done_6_amivrujEyduiFoi: + vpxor xmm1,xmm1,xmm9 + vpxor xmm2,xmm2,xmm10 + vpxor xmm3,xmm3,xmm11 + vpxor xmm4,xmm4,xmm12 + vpxor xmm5,xmm5,xmm13 + vpxor xmm6,xmm6,xmm14 + vmovdqu xmm0,XMMWORD[rcx] + vpxor xmm1,xmm1,xmm0 + vpxor xmm2,xmm2,xmm0 + vpxor xmm3,xmm3,xmm0 + vpxor xmm4,xmm4,xmm0 + vpxor xmm5,xmm5,xmm0 + vpxor xmm6,xmm6,xmm0 + vmovdqu xmm0,XMMWORD[16+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vmovdqu xmm0,XMMWORD[32+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vmovdqu xmm0,XMMWORD[48+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vmovdqu xmm0,XMMWORD[64+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vmovdqu xmm0,XMMWORD[80+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vmovdqu xmm0,XMMWORD[96+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vmovdqu xmm0,XMMWORD[112+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vmovdqu xmm0,XMMWORD[128+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vmovdqu xmm0,XMMWORD[144+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vmovdqu xmm0,XMMWORD[160+rcx] + vaesdeclast xmm1,xmm1,xmm0 + vaesdeclast xmm2,xmm2,xmm0 + vaesdeclast xmm3,xmm3,xmm0 + vaesdeclast xmm4,xmm4,xmm0 + vaesdeclast xmm5,xmm5,xmm0 + vaesdeclast xmm6,xmm6,xmm0 + vpxor xmm1,xmm1,xmm9 + vpxor xmm2,xmm2,xmm10 + vpxor xmm3,xmm3,xmm11 + vpxor xmm4,xmm4,xmm12 + vpxor xmm5,xmm5,xmm13 + vpxor xmm6,xmm6,xmm14 + vmovdqu XMMWORD[rsi],xmm1 + vmovdqu XMMWORD[16+rsi],xmm2 + vmovdqu XMMWORD[32+rsi],xmm3 + vmovdqu XMMWORD[48+rsi],xmm4 + vmovdqu XMMWORD[64+rsi],xmm5 + add rsi,0x60 + vmovdqa xmm8,xmm6 + jmp NEAR $L$_done_amivrujEyduiFoi + +$L$_num_blocks_is_5_amivrujEyduiFoi: + vmovdqa xmm9,XMMWORD[rsp] + mov rax,QWORD[rsp] + mov rbx,QWORD[8+rsp] + vmovdqu xmm1,XMMWORD[rdi] + xor r11,r11 + shl rax,1 + adc rbx,rbx + cmovc r11,r10 + xor rax,r11 + mov QWORD[16+rsp],rax + mov QWORD[((16 + 8))+rsp],rbx + vmovdqa xmm10,XMMWORD[16+rsp] + vmovdqu xmm2,XMMWORD[16+rdi] + xor r11,r11 + shl rax,1 + adc rbx,rbx + cmovc r11,r10 + xor rax,r11 + mov QWORD[32+rsp],rax + mov QWORD[((32 + 8))+rsp],rbx + vmovdqa xmm11,XMMWORD[32+rsp] + vmovdqu xmm3,XMMWORD[32+rdi] + xor r11,r11 + shl rax,1 + adc rbx,rbx + cmovc r11,r10 + xor rax,r11 + mov QWORD[48+rsp],rax + mov QWORD[((48 + 8))+rsp],rbx + vmovdqa xmm12,XMMWORD[48+rsp] + vmovdqu xmm4,XMMWORD[48+rdi] + xor r11,r11 + shl rax,1 + adc rbx,rbx + cmovc r11,r10 + xor rax,r11 + mov QWORD[64+rsp],rax + mov QWORD[((64 + 8))+rsp],rbx + vmovdqa xmm13,XMMWORD[64+rsp] + vmovdqu xmm5,XMMWORD[64+rdi] + add rdi,0x50 + and rdx,0xf + je NEAR $L$_done_5_amivrujEyduiFoi + +$L$_steal_cipher_5_amivrujEyduiFoi: + xor r11,r11 + shl rax,1 + adc rbx,rbx + cmovc r11,r10 + xor rax,r11 + mov QWORD[16+rsp],rax + mov QWORD[24+rsp],rbx + vmovdqa64 xmm14,xmm13 + vmovdqa xmm13,XMMWORD[16+rsp] + vpxor xmm1,xmm1,xmm9 + vpxor xmm2,xmm2,xmm10 + vpxor xmm3,xmm3,xmm11 + vpxor xmm4,xmm4,xmm12 + vpxor xmm5,xmm5,xmm13 + vmovdqu xmm0,XMMWORD[rcx] + vpxor xmm1,xmm1,xmm0 + vpxor xmm2,xmm2,xmm0 + vpxor xmm3,xmm3,xmm0 + vpxor xmm4,xmm4,xmm0 + vpxor xmm5,xmm5,xmm0 + vmovdqu xmm0,XMMWORD[16+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vmovdqu xmm0,XMMWORD[32+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vmovdqu xmm0,XMMWORD[48+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vmovdqu xmm0,XMMWORD[64+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vmovdqu xmm0,XMMWORD[80+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vmovdqu xmm0,XMMWORD[96+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vmovdqu xmm0,XMMWORD[112+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vmovdqu xmm0,XMMWORD[128+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vmovdqu xmm0,XMMWORD[144+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vmovdqu xmm0,XMMWORD[160+rcx] + vaesdeclast xmm1,xmm1,xmm0 + vaesdeclast xmm2,xmm2,xmm0 + vaesdeclast xmm3,xmm3,xmm0 + vaesdeclast xmm4,xmm4,xmm0 + vaesdeclast xmm5,xmm5,xmm0 + vpxor xmm1,xmm1,xmm9 + vpxor xmm2,xmm2,xmm10 + vpxor xmm3,xmm3,xmm11 + vpxor xmm4,xmm4,xmm12 + vpxor xmm5,xmm5,xmm13 + vmovdqu XMMWORD[rsi],xmm1 + vmovdqu XMMWORD[16+rsi],xmm2 + vmovdqu XMMWORD[32+rsi],xmm3 + vmovdqu XMMWORD[48+rsi],xmm4 + add rsi,0x50 + vmovdqa xmm0,xmm14 + vmovdqa xmm8,xmm5 + jmp NEAR $L$_steal_cipher_amivrujEyduiFoi + +$L$_done_5_amivrujEyduiFoi: + vpxor xmm1,xmm1,xmm9 + vpxor xmm2,xmm2,xmm10 + vpxor xmm3,xmm3,xmm11 + vpxor xmm4,xmm4,xmm12 + vpxor xmm5,xmm5,xmm13 + vmovdqu xmm0,XMMWORD[rcx] + vpxor xmm1,xmm1,xmm0 + vpxor xmm2,xmm2,xmm0 + vpxor xmm3,xmm3,xmm0 + vpxor xmm4,xmm4,xmm0 + vpxor xmm5,xmm5,xmm0 + vmovdqu xmm0,XMMWORD[16+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vmovdqu xmm0,XMMWORD[32+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vmovdqu xmm0,XMMWORD[48+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vmovdqu xmm0,XMMWORD[64+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vmovdqu xmm0,XMMWORD[80+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vmovdqu xmm0,XMMWORD[96+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vmovdqu xmm0,XMMWORD[112+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vmovdqu xmm0,XMMWORD[128+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vmovdqu xmm0,XMMWORD[144+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vmovdqu xmm0,XMMWORD[160+rcx] + vaesdeclast xmm1,xmm1,xmm0 + vaesdeclast xmm2,xmm2,xmm0 + vaesdeclast xmm3,xmm3,xmm0 + vaesdeclast xmm4,xmm4,xmm0 + vaesdeclast xmm5,xmm5,xmm0 + vpxor xmm1,xmm1,xmm9 + vpxor xmm2,xmm2,xmm10 + vpxor xmm3,xmm3,xmm11 + vpxor xmm4,xmm4,xmm12 + vpxor xmm5,xmm5,xmm13 + vmovdqu XMMWORD[rsi],xmm1 + vmovdqu XMMWORD[16+rsi],xmm2 + vmovdqu XMMWORD[32+rsi],xmm3 + vmovdqu XMMWORD[48+rsi],xmm4 + add rsi,0x50 + vmovdqa xmm8,xmm5 + jmp NEAR $L$_done_amivrujEyduiFoi + +$L$_num_blocks_is_4_amivrujEyduiFoi: + vmovdqa xmm9,XMMWORD[rsp] + mov rax,QWORD[rsp] + mov rbx,QWORD[8+rsp] + vmovdqu xmm1,XMMWORD[rdi] + xor r11,r11 + shl rax,1 + adc rbx,rbx + cmovc r11,r10 + xor rax,r11 + mov QWORD[16+rsp],rax + mov QWORD[((16 + 8))+rsp],rbx + vmovdqa xmm10,XMMWORD[16+rsp] + vmovdqu xmm2,XMMWORD[16+rdi] + xor r11,r11 + shl rax,1 + adc rbx,rbx + cmovc r11,r10 + xor rax,r11 + mov QWORD[32+rsp],rax + mov QWORD[((32 + 8))+rsp],rbx + vmovdqa xmm11,XMMWORD[32+rsp] + vmovdqu xmm3,XMMWORD[32+rdi] + xor r11,r11 + shl rax,1 + adc rbx,rbx + cmovc r11,r10 + xor rax,r11 + mov QWORD[48+rsp],rax + mov QWORD[((48 + 8))+rsp],rbx + vmovdqa xmm12,XMMWORD[48+rsp] + vmovdqu xmm4,XMMWORD[48+rdi] + add rdi,0x40 + and rdx,0xf + je NEAR $L$_done_4_amivrujEyduiFoi + +$L$_steal_cipher_4_amivrujEyduiFoi: + xor r11,r11 + shl rax,1 + adc rbx,rbx + cmovc r11,r10 + xor rax,r11 + mov QWORD[16+rsp],rax + mov QWORD[24+rsp],rbx + vmovdqa64 xmm13,xmm12 + vmovdqa xmm12,XMMWORD[16+rsp] + vpxor xmm1,xmm1,xmm9 + vpxor xmm2,xmm2,xmm10 + vpxor xmm3,xmm3,xmm11 + vpxor xmm4,xmm4,xmm12 + vmovdqu xmm0,XMMWORD[rcx] + vpxor xmm1,xmm1,xmm0 + vpxor xmm2,xmm2,xmm0 + vpxor xmm3,xmm3,xmm0 + vpxor xmm4,xmm4,xmm0 + vmovdqu xmm0,XMMWORD[16+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vmovdqu xmm0,XMMWORD[32+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vmovdqu xmm0,XMMWORD[48+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vmovdqu xmm0,XMMWORD[64+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vmovdqu xmm0,XMMWORD[80+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vmovdqu xmm0,XMMWORD[96+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vmovdqu xmm0,XMMWORD[112+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vmovdqu xmm0,XMMWORD[128+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vmovdqu xmm0,XMMWORD[144+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vmovdqu xmm0,XMMWORD[160+rcx] + vaesdeclast xmm1,xmm1,xmm0 + vaesdeclast xmm2,xmm2,xmm0 + vaesdeclast xmm3,xmm3,xmm0 + vaesdeclast xmm4,xmm4,xmm0 + vpxor xmm1,xmm1,xmm9 + vpxor xmm2,xmm2,xmm10 + vpxor xmm3,xmm3,xmm11 + vpxor xmm4,xmm4,xmm12 + vmovdqu XMMWORD[rsi],xmm1 + vmovdqu XMMWORD[16+rsi],xmm2 + vmovdqu XMMWORD[32+rsi],xmm3 + add rsi,0x40 + vmovdqa xmm0,xmm13 + vmovdqa xmm8,xmm4 + jmp NEAR $L$_steal_cipher_amivrujEyduiFoi + +$L$_done_4_amivrujEyduiFoi: + vpxor xmm1,xmm1,xmm9 + vpxor xmm2,xmm2,xmm10 + vpxor xmm3,xmm3,xmm11 + vpxor xmm4,xmm4,xmm12 + vmovdqu xmm0,XMMWORD[rcx] + vpxor xmm1,xmm1,xmm0 + vpxor xmm2,xmm2,xmm0 + vpxor xmm3,xmm3,xmm0 + vpxor xmm4,xmm4,xmm0 + vmovdqu xmm0,XMMWORD[16+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vmovdqu xmm0,XMMWORD[32+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vmovdqu xmm0,XMMWORD[48+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vmovdqu xmm0,XMMWORD[64+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vmovdqu xmm0,XMMWORD[80+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vmovdqu xmm0,XMMWORD[96+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vmovdqu xmm0,XMMWORD[112+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vmovdqu xmm0,XMMWORD[128+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vmovdqu xmm0,XMMWORD[144+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vmovdqu xmm0,XMMWORD[160+rcx] + vaesdeclast xmm1,xmm1,xmm0 + vaesdeclast xmm2,xmm2,xmm0 + vaesdeclast xmm3,xmm3,xmm0 + vaesdeclast xmm4,xmm4,xmm0 + vpxor xmm1,xmm1,xmm9 + vpxor xmm2,xmm2,xmm10 + vpxor xmm3,xmm3,xmm11 + vpxor xmm4,xmm4,xmm12 + vmovdqu XMMWORD[rsi],xmm1 + vmovdqu XMMWORD[16+rsi],xmm2 + vmovdqu XMMWORD[32+rsi],xmm3 + add rsi,0x40 + vmovdqa xmm8,xmm4 + jmp NEAR $L$_done_amivrujEyduiFoi + +$L$_num_blocks_is_3_amivrujEyduiFoi: + vmovdqa xmm9,XMMWORD[rsp] + mov rax,QWORD[rsp] + mov rbx,QWORD[8+rsp] + vmovdqu xmm1,XMMWORD[rdi] + xor r11,r11 + shl rax,1 + adc rbx,rbx + cmovc r11,r10 + xor rax,r11 + mov QWORD[16+rsp],rax + mov QWORD[((16 + 8))+rsp],rbx + vmovdqa xmm10,XMMWORD[16+rsp] + vmovdqu xmm2,XMMWORD[16+rdi] + xor r11,r11 + shl rax,1 + adc rbx,rbx + cmovc r11,r10 + xor rax,r11 + mov QWORD[32+rsp],rax + mov QWORD[((32 + 8))+rsp],rbx + vmovdqa xmm11,XMMWORD[32+rsp] + vmovdqu xmm3,XMMWORD[32+rdi] + add rdi,0x30 + and rdx,0xf + je NEAR $L$_done_3_amivrujEyduiFoi + +$L$_steal_cipher_3_amivrujEyduiFoi: + xor r11,r11 + shl rax,1 + adc rbx,rbx + cmovc r11,r10 + xor rax,r11 + mov QWORD[16+rsp],rax + mov QWORD[24+rsp],rbx + vmovdqa64 xmm12,xmm11 + vmovdqa xmm11,XMMWORD[16+rsp] + vpxor xmm1,xmm1,xmm9 + vpxor xmm2,xmm2,xmm10 + vpxor xmm3,xmm3,xmm11 + vmovdqu xmm0,XMMWORD[rcx] + vpxor xmm1,xmm1,xmm0 + vpxor xmm2,xmm2,xmm0 + vpxor xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[16+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[32+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[48+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[64+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[80+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[96+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[112+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[128+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[144+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[160+rcx] + vaesdeclast xmm1,xmm1,xmm0 + vaesdeclast xmm2,xmm2,xmm0 + vaesdeclast xmm3,xmm3,xmm0 + vpxor xmm1,xmm1,xmm9 + vpxor xmm2,xmm2,xmm10 + vpxor xmm3,xmm3,xmm11 + vmovdqu XMMWORD[rsi],xmm1 + vmovdqu XMMWORD[16+rsi],xmm2 + add rsi,0x30 + vmovdqa xmm0,xmm12 + vmovdqa xmm8,xmm3 + jmp NEAR $L$_steal_cipher_amivrujEyduiFoi + +$L$_done_3_amivrujEyduiFoi: + vpxor xmm1,xmm1,xmm9 + vpxor xmm2,xmm2,xmm10 + vpxor xmm3,xmm3,xmm11 + vmovdqu xmm0,XMMWORD[rcx] + vpxor xmm1,xmm1,xmm0 + vpxor xmm2,xmm2,xmm0 + vpxor xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[16+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[32+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[48+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[64+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[80+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[96+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[112+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[128+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[144+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[160+rcx] + vaesdeclast xmm1,xmm1,xmm0 + vaesdeclast xmm2,xmm2,xmm0 + vaesdeclast xmm3,xmm3,xmm0 + vpxor xmm1,xmm1,xmm9 + vpxor xmm2,xmm2,xmm10 + vpxor xmm3,xmm3,xmm11 + vmovdqu XMMWORD[rsi],xmm1 + vmovdqu XMMWORD[16+rsi],xmm2 + add rsi,0x30 + vmovdqa xmm8,xmm3 + jmp NEAR $L$_done_amivrujEyduiFoi + +$L$_num_blocks_is_2_amivrujEyduiFoi: + vmovdqa xmm9,XMMWORD[rsp] + mov rax,QWORD[rsp] + mov rbx,QWORD[8+rsp] + vmovdqu xmm1,XMMWORD[rdi] + xor r11,r11 + shl rax,1 + adc rbx,rbx + cmovc r11,r10 + xor rax,r11 + mov QWORD[16+rsp],rax + mov QWORD[((16 + 8))+rsp],rbx + vmovdqa xmm10,XMMWORD[16+rsp] + vmovdqu xmm2,XMMWORD[16+rdi] + add rdi,0x20 + and rdx,0xf + je NEAR $L$_done_2_amivrujEyduiFoi + +$L$_steal_cipher_2_amivrujEyduiFoi: + xor r11,r11 + shl rax,1 + adc rbx,rbx + cmovc r11,r10 + xor rax,r11 + mov QWORD[16+rsp],rax + mov QWORD[24+rsp],rbx + vmovdqa64 xmm11,xmm10 + vmovdqa xmm10,XMMWORD[16+rsp] + vpxor xmm1,xmm1,xmm9 + vpxor xmm2,xmm2,xmm10 + vmovdqu xmm0,XMMWORD[rcx] + vpxor xmm1,xmm1,xmm0 + vpxor xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[16+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[32+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[48+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[64+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[80+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[96+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[112+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[128+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[144+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[160+rcx] + vaesdeclast xmm1,xmm1,xmm0 + vaesdeclast xmm2,xmm2,xmm0 + vpxor xmm1,xmm1,xmm9 + vpxor xmm2,xmm2,xmm10 + vmovdqu XMMWORD[rsi],xmm1 + add rsi,0x20 + vmovdqa xmm0,xmm11 + vmovdqa xmm8,xmm2 + jmp NEAR $L$_steal_cipher_amivrujEyduiFoi + +$L$_done_2_amivrujEyduiFoi: + vpxor xmm1,xmm1,xmm9 + vpxor xmm2,xmm2,xmm10 + vmovdqu xmm0,XMMWORD[rcx] + vpxor xmm1,xmm1,xmm0 + vpxor xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[16+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[32+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[48+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[64+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[80+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[96+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[112+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[128+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[144+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[160+rcx] + vaesdeclast xmm1,xmm1,xmm0 + vaesdeclast xmm2,xmm2,xmm0 + vpxor xmm1,xmm1,xmm9 + vpxor xmm2,xmm2,xmm10 + vmovdqu XMMWORD[rsi],xmm1 + add rsi,0x20 + vmovdqa xmm8,xmm2 + jmp NEAR $L$_done_amivrujEyduiFoi + +$L$_num_blocks_is_1_amivrujEyduiFoi: + vmovdqa xmm9,XMMWORD[rsp] + mov rax,QWORD[rsp] + mov rbx,QWORD[8+rsp] + vmovdqu xmm1,XMMWORD[rdi] + add rdi,0x10 + and rdx,0xf + je NEAR $L$_done_1_amivrujEyduiFoi + +$L$_steal_cipher_1_amivrujEyduiFoi: + xor r11,r11 + shl rax,1 + adc rbx,rbx + cmovc r11,r10 + xor rax,r11 + mov QWORD[16+rsp],rax + mov QWORD[24+rsp],rbx + vmovdqa64 xmm10,xmm9 + vmovdqa xmm9,XMMWORD[16+rsp] + vpxor xmm1,xmm1,xmm9 + vmovdqu xmm0,XMMWORD[rcx] + vpxor xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[16+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[32+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[48+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[64+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[80+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[96+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[112+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[128+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[144+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[160+rcx] + vaesdeclast xmm1,xmm1,xmm0 + vpxor xmm1,xmm1,xmm9 + add rsi,0x10 + vmovdqa xmm0,xmm10 + vmovdqa xmm8,xmm1 + jmp NEAR $L$_steal_cipher_amivrujEyduiFoi + +$L$_done_1_amivrujEyduiFoi: + vpxor xmm1,xmm1,xmm9 + vmovdqu xmm0,XMMWORD[rcx] + vpxor xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[16+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[32+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[48+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[64+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[80+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[96+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[112+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[128+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[144+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[160+rcx] + vaesdeclast xmm1,xmm1,xmm0 + vpxor xmm1,xmm1,xmm9 + add rsi,0x10 + vmovdqa xmm8,xmm1 + jmp NEAR $L$_done_amivrujEyduiFoi + +global aesni_xts_256_encrypt_avx512 + + +ALIGN 32 +aesni_xts_256_encrypt_avx512: + mov QWORD[8+rsp],rdi ;WIN64 prologue + mov QWORD[16+rsp],rsi + mov rax,rsp +$L$SEH_begin_aesni_xts_256_encrypt_avx512: + mov rdi,rcx + mov rsi,rdx + mov rdx,r8 + mov rcx,r9 + mov r8,QWORD[40+rsp] + mov r9,QWORD[48+rsp] + + + +DB 243,15,30,250 + push rbp + mov rbp,rsp + sub rsp,312 + and rsp,0xffffffffffffffc0 + mov QWORD[288+rsp],rbx + mov QWORD[((288 + 8))+rsp],rdi + mov QWORD[((288 + 16))+rsp],rsi + vmovdqa XMMWORD[(128 + 0)+rsp],xmm6 + vmovdqa XMMWORD[(128 + 16)+rsp],xmm7 + vmovdqa XMMWORD[(128 + 32)+rsp],xmm8 + vmovdqa XMMWORD[(128 + 48)+rsp],xmm9 + vmovdqa XMMWORD[(128 + 64)+rsp],xmm10 + vmovdqa XMMWORD[(128 + 80)+rsp],xmm11 + vmovdqa XMMWORD[(128 + 96)+rsp],xmm12 + vmovdqa XMMWORD[(128 + 112)+rsp],xmm13 + vmovdqa XMMWORD[(128 + 128)+rsp],xmm14 + vmovdqa XMMWORD[(128 + 144)+rsp],xmm15 + mov r10,0x87 + vmovdqu xmm1,XMMWORD[r9] + vpxor xmm1,xmm1,XMMWORD[r8] + vaesenc xmm1,xmm1,XMMWORD[16+r8] + vaesenc xmm1,xmm1,XMMWORD[32+r8] + vaesenc xmm1,xmm1,XMMWORD[48+r8] + vaesenc xmm1,xmm1,XMMWORD[64+r8] + vaesenc xmm1,xmm1,XMMWORD[80+r8] + vaesenc xmm1,xmm1,XMMWORD[96+r8] + vaesenc xmm1,xmm1,XMMWORD[112+r8] + vaesenc xmm1,xmm1,XMMWORD[128+r8] + vaesenc xmm1,xmm1,XMMWORD[144+r8] + vaesenc xmm1,xmm1,XMMWORD[160+r8] + vaesenc xmm1,xmm1,XMMWORD[176+r8] + vaesenc xmm1,xmm1,XMMWORD[192+r8] + vaesenc xmm1,xmm1,XMMWORD[208+r8] + vaesenclast xmm1,xmm1,XMMWORD[224+r8] + vmovdqa XMMWORD[rsp],xmm1 + mov QWORD[((8 + 40))+rbp],rdi + mov QWORD[((8 + 48))+rbp],rsi + + cmp rdx,0x80 + jl NEAR $L$_less_than_128_bytes_wcpqaDvsGlbjGoe + vpbroadcastq zmm25,r10 + cmp rdx,0x100 + jge NEAR $L$_start_by16_wcpqaDvsGlbjGoe + cmp rdx,0x80 + jge NEAR $L$_start_by8_wcpqaDvsGlbjGoe + +$L$_do_n_blocks_wcpqaDvsGlbjGoe: + cmp rdx,0x0 + je NEAR $L$_ret_wcpqaDvsGlbjGoe + cmp rdx,0x70 + jge NEAR $L$_remaining_num_blocks_is_7_wcpqaDvsGlbjGoe + cmp rdx,0x60 + jge NEAR $L$_remaining_num_blocks_is_6_wcpqaDvsGlbjGoe + cmp rdx,0x50 + jge NEAR $L$_remaining_num_blocks_is_5_wcpqaDvsGlbjGoe + cmp rdx,0x40 + jge NEAR $L$_remaining_num_blocks_is_4_wcpqaDvsGlbjGoe + cmp rdx,0x30 + jge NEAR $L$_remaining_num_blocks_is_3_wcpqaDvsGlbjGoe + cmp rdx,0x20 + jge NEAR $L$_remaining_num_blocks_is_2_wcpqaDvsGlbjGoe + cmp rdx,0x10 + jge NEAR $L$_remaining_num_blocks_is_1_wcpqaDvsGlbjGoe + vmovdqa xmm8,xmm0 + vmovdqa xmm0,xmm9 + jmp NEAR $L$_steal_cipher_wcpqaDvsGlbjGoe + +$L$_remaining_num_blocks_is_7_wcpqaDvsGlbjGoe: + mov r8,0x0000ffffffffffff + kmovq k1,r8 + vmovdqu8 zmm1,ZMMWORD[rdi] + vmovdqu8 zmm2{k1},[64+rdi] + add rdi,0x70 + vbroadcasti32x4 zmm0,ZMMWORD[rcx] + vpternlogq zmm1,zmm9,zmm0,0x96 + vpternlogq zmm2,zmm10,zmm0,0x96 + vbroadcasti32x4 zmm0,ZMMWORD[16+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[32+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[48+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + vbroadcasti32x4 zmm0,ZMMWORD[64+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[80+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[96+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[112+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[128+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[144+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + vbroadcasti32x4 zmm0,ZMMWORD[160+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[176+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[192+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[208+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[224+rcx] + vaesenclast zmm1,zmm1,zmm0 + vaesenclast zmm2,zmm2,zmm0 + vpxorq zmm1,zmm1,zmm9 + vpxorq zmm2,zmm2,zmm10 + vmovdqu8 ZMMWORD[rsi],zmm1 + vmovdqu8 ZMMWORD[64+rsi]{k1},zmm2 + add rsi,0x70 + vextracti32x4 xmm8,zmm2,0x2 + vextracti32x4 xmm0,zmm10,0x3 + and rdx,0xf + je NEAR $L$_ret_wcpqaDvsGlbjGoe + jmp NEAR $L$_steal_cipher_wcpqaDvsGlbjGoe + +$L$_remaining_num_blocks_is_6_wcpqaDvsGlbjGoe: + vmovdqu8 zmm1,ZMMWORD[rdi] + vmovdqu8 ymm2,YMMWORD[64+rdi] + add rdi,0x60 + vbroadcasti32x4 zmm0,ZMMWORD[rcx] + vpternlogq zmm1,zmm9,zmm0,0x96 + vpternlogq zmm2,zmm10,zmm0,0x96 + vbroadcasti32x4 zmm0,ZMMWORD[16+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[32+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[48+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + vbroadcasti32x4 zmm0,ZMMWORD[64+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[80+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[96+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[112+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[128+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[144+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + vbroadcasti32x4 zmm0,ZMMWORD[160+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[176+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[192+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[208+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[224+rcx] + vaesenclast zmm1,zmm1,zmm0 + vaesenclast zmm2,zmm2,zmm0 + vpxorq zmm1,zmm1,zmm9 + vpxorq zmm2,zmm2,zmm10 + vmovdqu8 ZMMWORD[rsi],zmm1 + vmovdqu8 YMMWORD[64+rsi],ymm2 + add rsi,0x60 + vextracti32x4 xmm8,zmm2,0x1 + vextracti32x4 xmm0,zmm10,0x2 + and rdx,0xf + je NEAR $L$_ret_wcpqaDvsGlbjGoe + jmp NEAR $L$_steal_cipher_wcpqaDvsGlbjGoe + +$L$_remaining_num_blocks_is_5_wcpqaDvsGlbjGoe: + vmovdqu8 zmm1,ZMMWORD[rdi] + vmovdqu xmm2,XMMWORD[64+rdi] + add rdi,0x50 + vbroadcasti32x4 zmm0,ZMMWORD[rcx] + vpternlogq zmm1,zmm9,zmm0,0x96 + vpternlogq zmm2,zmm10,zmm0,0x96 + vbroadcasti32x4 zmm0,ZMMWORD[16+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[32+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[48+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + vbroadcasti32x4 zmm0,ZMMWORD[64+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[80+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[96+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[112+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[128+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[144+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + vbroadcasti32x4 zmm0,ZMMWORD[160+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[176+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[192+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[208+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[224+rcx] + vaesenclast zmm1,zmm1,zmm0 + vaesenclast zmm2,zmm2,zmm0 + vpxorq zmm1,zmm1,zmm9 + vpxorq zmm2,zmm2,zmm10 + vmovdqu8 ZMMWORD[rsi],zmm1 + vmovdqu XMMWORD[64+rsi],xmm2 + add rsi,0x50 + vmovdqa xmm8,xmm2 + vextracti32x4 xmm0,zmm10,0x1 + and rdx,0xf + je NEAR $L$_ret_wcpqaDvsGlbjGoe + jmp NEAR $L$_steal_cipher_wcpqaDvsGlbjGoe + +$L$_remaining_num_blocks_is_4_wcpqaDvsGlbjGoe: + vmovdqu8 zmm1,ZMMWORD[rdi] + add rdi,0x40 + vbroadcasti32x4 zmm0,ZMMWORD[rcx] + vpternlogq zmm1,zmm9,zmm0,0x96 + vbroadcasti32x4 zmm0,ZMMWORD[16+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[32+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[48+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[64+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[80+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[96+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[112+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[128+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[144+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[160+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[176+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[192+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[208+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[224+rcx] + vaesenclast zmm1,zmm1,zmm0 + vpxorq zmm1,zmm1,zmm9 + vmovdqu8 ZMMWORD[rsi],zmm1 + add rsi,0x40 + vextracti32x4 xmm8,zmm1,0x3 + vmovdqa64 xmm0,xmm10 + and rdx,0xf + je NEAR $L$_ret_wcpqaDvsGlbjGoe + jmp NEAR $L$_steal_cipher_wcpqaDvsGlbjGoe +$L$_remaining_num_blocks_is_3_wcpqaDvsGlbjGoe: + mov r8,-1 + shr r8,0x10 + kmovq k1,r8 + vmovdqu8 zmm1{k1},[rdi] + add rdi,0x30 + vbroadcasti32x4 zmm0,ZMMWORD[rcx] + vpternlogq zmm1,zmm9,zmm0,0x96 + vbroadcasti32x4 zmm0,ZMMWORD[16+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[32+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[48+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[64+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[80+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[96+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[112+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[128+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[144+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[160+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[176+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[192+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[208+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[224+rcx] + vaesenclast zmm1,zmm1,zmm0 + vpxorq zmm1,zmm1,zmm9 + vmovdqu8 ZMMWORD[rsi]{k1},zmm1 + add rsi,0x30 + vextracti32x4 xmm8,zmm1,0x2 + vextracti32x4 xmm0,zmm9,0x3 + and rdx,0xf + je NEAR $L$_ret_wcpqaDvsGlbjGoe + jmp NEAR $L$_steal_cipher_wcpqaDvsGlbjGoe +$L$_remaining_num_blocks_is_2_wcpqaDvsGlbjGoe: + vmovdqu8 ymm1,YMMWORD[rdi] + add rdi,0x20 + vbroadcasti32x4 ymm0,YMMWORD[rcx] + vpternlogq ymm1,ymm9,ymm0,0x96 + vbroadcasti32x4 ymm0,YMMWORD[16+rcx] + vaesenc ymm1,ymm1,ymm0 + vbroadcasti32x4 ymm0,YMMWORD[32+rcx] + vaesenc ymm1,ymm1,ymm0 + vbroadcasti32x4 ymm0,YMMWORD[48+rcx] + vaesenc ymm1,ymm1,ymm0 + vbroadcasti32x4 ymm0,YMMWORD[64+rcx] + vaesenc ymm1,ymm1,ymm0 + vbroadcasti32x4 ymm0,YMMWORD[80+rcx] + vaesenc ymm1,ymm1,ymm0 + vbroadcasti32x4 ymm0,YMMWORD[96+rcx] + vaesenc ymm1,ymm1,ymm0 + vbroadcasti32x4 ymm0,YMMWORD[112+rcx] + vaesenc ymm1,ymm1,ymm0 + vbroadcasti32x4 ymm0,YMMWORD[128+rcx] + vaesenc ymm1,ymm1,ymm0 + vbroadcasti32x4 ymm0,YMMWORD[144+rcx] + vaesenc ymm1,ymm1,ymm0 + vbroadcasti32x4 ymm0,YMMWORD[160+rcx] + vaesenc ymm1,ymm1,ymm0 + vbroadcasti32x4 ymm0,YMMWORD[176+rcx] + vaesenc ymm1,ymm1,ymm0 + vbroadcasti32x4 ymm0,YMMWORD[192+rcx] + vaesenc ymm1,ymm1,ymm0 + vbroadcasti32x4 ymm0,YMMWORD[208+rcx] + vaesenc ymm1,ymm1,ymm0 + vbroadcasti32x4 ymm0,YMMWORD[224+rcx] + vaesenclast ymm1,ymm1,ymm0 + vpxorq ymm1,ymm1,ymm9 + vmovdqu YMMWORD[rsi],ymm1 + add rsi,0x20 + vextracti32x4 xmm8,zmm1,0x1 + vextracti32x4 xmm0,zmm9,0x2 + and rdx,0xf + je NEAR $L$_ret_wcpqaDvsGlbjGoe + jmp NEAR $L$_steal_cipher_wcpqaDvsGlbjGoe +$L$_remaining_num_blocks_is_1_wcpqaDvsGlbjGoe: + vmovdqu xmm1,XMMWORD[rdi] + add rdi,0x10 + vpxor xmm1,xmm1,xmm9 + vpxor xmm1,xmm1,XMMWORD[rcx] + vaesenc xmm1,xmm1,XMMWORD[16+rcx] + vaesenc xmm1,xmm1,XMMWORD[32+rcx] + vaesenc xmm1,xmm1,XMMWORD[48+rcx] + vaesenc xmm1,xmm1,XMMWORD[64+rcx] + vaesenc xmm1,xmm1,XMMWORD[80+rcx] + vaesenc xmm1,xmm1,XMMWORD[96+rcx] + vaesenc xmm1,xmm1,XMMWORD[112+rcx] + vaesenc xmm1,xmm1,XMMWORD[128+rcx] + vaesenc xmm1,xmm1,XMMWORD[144+rcx] + vaesenc xmm1,xmm1,XMMWORD[160+rcx] + vaesenc xmm1,xmm1,XMMWORD[176+rcx] + vaesenc xmm1,xmm1,XMMWORD[192+rcx] + vaesenc xmm1,xmm1,XMMWORD[208+rcx] + vaesenclast xmm1,xmm1,XMMWORD[224+rcx] + vpxor xmm1,xmm1,xmm9 + vmovdqu XMMWORD[rsi],xmm1 + add rsi,0x10 + vmovdqa xmm8,xmm1 + vextracti32x4 xmm0,zmm9,0x1 + and rdx,0xf + je NEAR $L$_ret_wcpqaDvsGlbjGoe + jmp NEAR $L$_steal_cipher_wcpqaDvsGlbjGoe + + +$L$_start_by16_wcpqaDvsGlbjGoe: + vbroadcasti32x4 zmm0,ZMMWORD[rsp] + vbroadcasti32x4 zmm8,ZMMWORD[shufb_15_7] + mov r8,0xaa + kmovq k2,r8 + vpshufb zmm1,zmm0,zmm8 + vpsllvq zmm4,zmm0,ZMMWORD[const_dq3210] + vpsrlvq zmm2,zmm1,ZMMWORD[const_dq5678] + vpclmulqdq zmm3,zmm2,zmm25,0x0 + vpxorq zmm4{k2},zmm4,zmm2 + vpxord zmm9,zmm3,zmm4 + vpsllvq zmm5,zmm0,ZMMWORD[const_dq7654] + vpsrlvq zmm6,zmm1,ZMMWORD[const_dq1234] + vpclmulqdq zmm7,zmm6,zmm25,0x0 + vpxorq zmm5{k2},zmm5,zmm6 + vpxord zmm10,zmm7,zmm5 + vpsrldq zmm13,zmm9,0xf + vpclmulqdq zmm14,zmm13,zmm25,0x0 + vpslldq zmm11,zmm9,0x1 + vpxord zmm11,zmm11,zmm14 + vpsrldq zmm15,zmm10,0xf + vpclmulqdq zmm16,zmm15,zmm25,0x0 + vpslldq zmm12,zmm10,0x1 + vpxord zmm12,zmm12,zmm16 + +$L$_main_loop_run_16_wcpqaDvsGlbjGoe: + vmovdqu8 zmm1,ZMMWORD[rdi] + vmovdqu8 zmm2,ZMMWORD[64+rdi] + vmovdqu8 zmm3,ZMMWORD[128+rdi] + vmovdqu8 zmm4,ZMMWORD[192+rdi] + add rdi,0x100 + vpxorq zmm1,zmm1,zmm9 + vpxorq zmm2,zmm2,zmm10 + vpxorq zmm3,zmm3,zmm11 + vpxorq zmm4,zmm4,zmm12 + vbroadcasti32x4 zmm0,ZMMWORD[rcx] + vpxorq zmm1,zmm1,zmm0 + vpxorq zmm2,zmm2,zmm0 + vpxorq zmm3,zmm3,zmm0 + vpxorq zmm4,zmm4,zmm0 + vpsrldq zmm13,zmm11,0xf + vpclmulqdq zmm14,zmm13,zmm25,0x0 + vpslldq zmm15,zmm11,0x1 + vpxord zmm15,zmm15,zmm14 + vbroadcasti32x4 zmm0,ZMMWORD[16+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + vaesenc zmm3,zmm3,zmm0 + vaesenc zmm4,zmm4,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[32+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + vaesenc zmm3,zmm3,zmm0 + vaesenc zmm4,zmm4,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[48+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + vaesenc zmm3,zmm3,zmm0 + vaesenc zmm4,zmm4,zmm0 + vpsrldq zmm13,zmm12,0xf + vpclmulqdq zmm14,zmm13,zmm25,0x0 + vpslldq zmm16,zmm12,0x1 + vpxord zmm16,zmm16,zmm14 + vbroadcasti32x4 zmm0,ZMMWORD[64+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + vaesenc zmm3,zmm3,zmm0 + vaesenc zmm4,zmm4,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[80+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + vaesenc zmm3,zmm3,zmm0 + vaesenc zmm4,zmm4,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[96+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + vaesenc zmm3,zmm3,zmm0 + vaesenc zmm4,zmm4,zmm0 + vpsrldq zmm13,zmm15,0xf + vpclmulqdq zmm14,zmm13,zmm25,0x0 + vpslldq zmm17,zmm15,0x1 + vpxord zmm17,zmm17,zmm14 + vbroadcasti32x4 zmm0,ZMMWORD[112+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + vaesenc zmm3,zmm3,zmm0 + vaesenc zmm4,zmm4,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[128+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + vaesenc zmm3,zmm3,zmm0 + vaesenc zmm4,zmm4,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[144+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + vaesenc zmm3,zmm3,zmm0 + vaesenc zmm4,zmm4,zmm0 + vpsrldq zmm13,zmm16,0xf + vpclmulqdq zmm14,zmm13,zmm25,0x0 + vpslldq zmm18,zmm16,0x1 + vpxord zmm18,zmm18,zmm14 + vbroadcasti32x4 zmm0,ZMMWORD[160+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + vaesenc zmm3,zmm3,zmm0 + vaesenc zmm4,zmm4,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[176+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + vaesenc zmm3,zmm3,zmm0 + vaesenc zmm4,zmm4,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[192+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + vaesenc zmm3,zmm3,zmm0 + vaesenc zmm4,zmm4,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[208+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + vaesenc zmm3,zmm3,zmm0 + vaesenc zmm4,zmm4,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[224+rcx] + vaesenclast zmm1,zmm1,zmm0 + vaesenclast zmm2,zmm2,zmm0 + vaesenclast zmm3,zmm3,zmm0 + vaesenclast zmm4,zmm4,zmm0 + vpxorq zmm1,zmm1,zmm9 + vpxorq zmm2,zmm2,zmm10 + vpxorq zmm3,zmm3,zmm11 + vpxorq zmm4,zmm4,zmm12 + + vmovdqa32 zmm9,zmm15 + vmovdqa32 zmm10,zmm16 + vmovdqa32 zmm11,zmm17 + vmovdqa32 zmm12,zmm18 + vmovdqu8 ZMMWORD[rsi],zmm1 + vmovdqu8 ZMMWORD[64+rsi],zmm2 + vmovdqu8 ZMMWORD[128+rsi],zmm3 + vmovdqu8 ZMMWORD[192+rsi],zmm4 + add rsi,0x100 + sub rdx,0x100 + cmp rdx,0x100 + jae NEAR $L$_main_loop_run_16_wcpqaDvsGlbjGoe + cmp rdx,0x80 + jae NEAR $L$_main_loop_run_8_wcpqaDvsGlbjGoe + vextracti32x4 xmm0,zmm4,0x3 + jmp NEAR $L$_do_n_blocks_wcpqaDvsGlbjGoe + +$L$_start_by8_wcpqaDvsGlbjGoe: + vbroadcasti32x4 zmm0,ZMMWORD[rsp] + vbroadcasti32x4 zmm8,ZMMWORD[shufb_15_7] + mov r8,0xaa + kmovq k2,r8 + vpshufb zmm1,zmm0,zmm8 + vpsllvq zmm4,zmm0,ZMMWORD[const_dq3210] + vpsrlvq zmm2,zmm1,ZMMWORD[const_dq5678] + vpclmulqdq zmm3,zmm2,zmm25,0x0 + vpxorq zmm4{k2},zmm4,zmm2 + vpxord zmm9,zmm3,zmm4 + vpsllvq zmm5,zmm0,ZMMWORD[const_dq7654] + vpsrlvq zmm6,zmm1,ZMMWORD[const_dq1234] + vpclmulqdq zmm7,zmm6,zmm25,0x0 + vpxorq zmm5{k2},zmm5,zmm6 + vpxord zmm10,zmm7,zmm5 + +$L$_main_loop_run_8_wcpqaDvsGlbjGoe: + vmovdqu8 zmm1,ZMMWORD[rdi] + vmovdqu8 zmm2,ZMMWORD[64+rdi] + add rdi,0x80 + vbroadcasti32x4 zmm0,ZMMWORD[rcx] + vpternlogq zmm1,zmm9,zmm0,0x96 + vpternlogq zmm2,zmm10,zmm0,0x96 + vpsrldq zmm13,zmm9,0xf + vpclmulqdq zmm14,zmm13,zmm25,0x0 + vpslldq zmm15,zmm9,0x1 + vpxord zmm15,zmm15,zmm14 + vbroadcasti32x4 zmm0,ZMMWORD[16+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[32+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[48+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + vpsrldq zmm13,zmm10,0xf + vpclmulqdq zmm14,zmm13,zmm25,0x0 + vpslldq zmm16,zmm10,0x1 + vpxord zmm16,zmm16,zmm14 + + vbroadcasti32x4 zmm0,ZMMWORD[64+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[80+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[96+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[112+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[128+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[144+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + vbroadcasti32x4 zmm0,ZMMWORD[160+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[176+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[192+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[208+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[224+rcx] + vaesenclast zmm1,zmm1,zmm0 + vaesenclast zmm2,zmm2,zmm0 + vpxorq zmm1,zmm1,zmm9 + vpxorq zmm2,zmm2,zmm10 + vmovdqa32 zmm9,zmm15 + vmovdqa32 zmm10,zmm16 + vmovdqu8 ZMMWORD[rsi],zmm1 + vmovdqu8 ZMMWORD[64+rsi],zmm2 + add rsi,0x80 + sub rdx,0x80 + cmp rdx,0x80 + jae NEAR $L$_main_loop_run_8_wcpqaDvsGlbjGoe + vextracti32x4 xmm0,zmm2,0x3 + jmp NEAR $L$_do_n_blocks_wcpqaDvsGlbjGoe + +$L$_steal_cipher_wcpqaDvsGlbjGoe: + vmovdqa xmm2,xmm8 + lea rax,[vpshufb_shf_table] + vmovdqu xmm10,XMMWORD[rdx*1+rax] + vpshufb xmm8,xmm8,xmm10 + vmovdqu xmm3,XMMWORD[((-16))+rdx*1+rdi] + vmovdqu XMMWORD[(-16)+rdx*1+rsi],xmm8 + lea rax,[vpshufb_shf_table] + add rax,16 + sub rax,rdx + vmovdqu xmm10,XMMWORD[rax] + vpxor xmm10,xmm10,XMMWORD[mask1] + vpshufb xmm3,xmm3,xmm10 + vpblendvb xmm3,xmm3,xmm2,xmm10 + vpxor xmm8,xmm3,xmm0 + vpxor xmm8,xmm8,XMMWORD[rcx] + vaesenc xmm8,xmm8,XMMWORD[16+rcx] + vaesenc xmm8,xmm8,XMMWORD[32+rcx] + vaesenc xmm8,xmm8,XMMWORD[48+rcx] + vaesenc xmm8,xmm8,XMMWORD[64+rcx] + vaesenc xmm8,xmm8,XMMWORD[80+rcx] + vaesenc xmm8,xmm8,XMMWORD[96+rcx] + vaesenc xmm8,xmm8,XMMWORD[112+rcx] + vaesenc xmm8,xmm8,XMMWORD[128+rcx] + vaesenc xmm8,xmm8,XMMWORD[144+rcx] + vaesenc xmm8,xmm8,XMMWORD[160+rcx] + vaesenc xmm8,xmm8,XMMWORD[176+rcx] + vaesenc xmm8,xmm8,XMMWORD[192+rcx] + vaesenc xmm8,xmm8,XMMWORD[208+rcx] + vaesenclast xmm8,xmm8,XMMWORD[224+rcx] + vpxor xmm8,xmm8,xmm0 + vmovdqu XMMWORD[(-16)+rsi],xmm8 +$L$_ret_wcpqaDvsGlbjGoe: + mov rbx,QWORD[288+rsp] + xor r8,r8 + mov QWORD[288+rsp],r8 + + vpxorq zmm0,zmm0,zmm0 + mov rdi,QWORD[((288 + 8))+rsp] + mov QWORD[((288 + 8))+rsp],r8 + mov rsi,QWORD[((288 + 16))+rsp] + mov QWORD[((288 + 16))+rsp],r8 + + vmovdqa xmm6,XMMWORD[((128 + 0))+rsp] + vmovdqa xmm7,XMMWORD[((128 + 16))+rsp] + vmovdqa xmm8,XMMWORD[((128 + 32))+rsp] + vmovdqa xmm9,XMMWORD[((128 + 48))+rsp] + + + vmovdqa64 ZMMWORD[128+rsp],zmm0 + + vmovdqa xmm10,XMMWORD[((128 + 64))+rsp] + vmovdqa xmm11,XMMWORD[((128 + 80))+rsp] + vmovdqa xmm12,XMMWORD[((128 + 96))+rsp] + vmovdqa xmm13,XMMWORD[((128 + 112))+rsp] + + + vmovdqa64 ZMMWORD[(128 + 64)+rsp],zmm0 + + vmovdqa xmm14,XMMWORD[((128 + 128))+rsp] + vmovdqa xmm15,XMMWORD[((128 + 144))+rsp] + + + + vmovdqa YMMWORD[(128 + 128)+rsp],ymm0 + mov rsp,rbp + pop rbp + vzeroupper + mov rdi,QWORD[8+rsp] ;WIN64 epilogue + mov rsi,QWORD[16+rsp] + DB 0F3h,0C3h ;repret + +$L$_less_than_128_bytes_wcpqaDvsGlbjGoe: + vpbroadcastq zmm25,r10 + cmp rdx,0x10 + jb NEAR $L$_ret_wcpqaDvsGlbjGoe + vbroadcasti32x4 zmm0,ZMMWORD[rsp] + vbroadcasti32x4 zmm8,ZMMWORD[shufb_15_7] + mov r8d,0xaa + kmovq k2,r8 + mov r8,rdx + and r8,0x70 + cmp r8,0x60 + je NEAR $L$_num_blocks_is_6_wcpqaDvsGlbjGoe + cmp r8,0x50 + je NEAR $L$_num_blocks_is_5_wcpqaDvsGlbjGoe + cmp r8,0x40 + je NEAR $L$_num_blocks_is_4_wcpqaDvsGlbjGoe + cmp r8,0x30 + je NEAR $L$_num_blocks_is_3_wcpqaDvsGlbjGoe + cmp r8,0x20 + je NEAR $L$_num_blocks_is_2_wcpqaDvsGlbjGoe + cmp r8,0x10 + je NEAR $L$_num_blocks_is_1_wcpqaDvsGlbjGoe + +$L$_num_blocks_is_7_wcpqaDvsGlbjGoe: + vpshufb zmm1,zmm0,zmm8 + vpsllvq zmm4,zmm0,ZMMWORD[const_dq3210] + vpsrlvq zmm2,zmm1,ZMMWORD[const_dq5678] + vpclmulqdq zmm3,zmm2,zmm25,0x00 + vpxorq zmm4{k2},zmm4,zmm2 + vpxord zmm9,zmm3,zmm4 + vpsllvq zmm5,zmm0,ZMMWORD[const_dq7654] + vpsrlvq zmm6,zmm1,ZMMWORD[const_dq1234] + vpclmulqdq zmm7,zmm6,zmm25,0x00 + vpxorq zmm5{k2},zmm5,zmm6 + vpxord zmm10,zmm7,zmm5 + mov r8,0x0000ffffffffffff + kmovq k1,r8 + vmovdqu8 zmm1,ZMMWORD[rdi] + vmovdqu8 zmm2{k1},[64+rdi] + + add rdi,0x70 + vbroadcasti32x4 zmm0,ZMMWORD[rcx] + vpternlogq zmm1,zmm9,zmm0,0x96 + vpternlogq zmm2,zmm10,zmm0,0x96 + vbroadcasti32x4 zmm0,ZMMWORD[16+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[32+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[48+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + vbroadcasti32x4 zmm0,ZMMWORD[64+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[80+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[96+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[112+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[128+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[144+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + vbroadcasti32x4 zmm0,ZMMWORD[160+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[176+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[192+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[208+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[224+rcx] + vaesenclast zmm1,zmm1,zmm0 + vaesenclast zmm2,zmm2,zmm0 + vpxorq zmm1,zmm1,zmm9 + vpxorq zmm2,zmm2,zmm10 + vmovdqu8 ZMMWORD[rsi],zmm1 + vmovdqu8 ZMMWORD[64+rsi]{k1},zmm2 + add rsi,0x70 + vextracti32x4 xmm8,zmm2,0x2 + vextracti32x4 xmm0,zmm10,0x3 + and rdx,0xf + je NEAR $L$_ret_wcpqaDvsGlbjGoe + jmp NEAR $L$_steal_cipher_wcpqaDvsGlbjGoe +$L$_num_blocks_is_6_wcpqaDvsGlbjGoe: + vpshufb zmm1,zmm0,zmm8 + vpsllvq zmm4,zmm0,ZMMWORD[const_dq3210] + vpsrlvq zmm2,zmm1,ZMMWORD[const_dq5678] + vpclmulqdq zmm3,zmm2,zmm25,0x00 + vpxorq zmm4{k2},zmm4,zmm2 + vpxord zmm9,zmm3,zmm4 + vpsllvq zmm5,zmm0,ZMMWORD[const_dq7654] + vpsrlvq zmm6,zmm1,ZMMWORD[const_dq1234] + vpclmulqdq zmm7,zmm6,zmm25,0x00 + vpxorq zmm5{k2},zmm5,zmm6 + vpxord zmm10,zmm7,zmm5 + vmovdqu8 zmm1,ZMMWORD[rdi] + vmovdqu8 ymm2,YMMWORD[64+rdi] + add rdi,96 + vbroadcasti32x4 zmm0,ZMMWORD[rcx] + vpternlogq zmm1,zmm9,zmm0,0x96 + vpternlogq zmm2,zmm10,zmm0,0x96 + vbroadcasti32x4 zmm0,ZMMWORD[16+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[32+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[48+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + vbroadcasti32x4 zmm0,ZMMWORD[64+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[80+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[96+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[112+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[128+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[144+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + vbroadcasti32x4 zmm0,ZMMWORD[160+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[176+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[192+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[208+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[224+rcx] + vaesenclast zmm1,zmm1,zmm0 + vaesenclast zmm2,zmm2,zmm0 + vpxorq zmm1,zmm1,zmm9 + vpxorq zmm2,zmm2,zmm10 + vmovdqu8 ZMMWORD[rsi],zmm1 + vmovdqu8 YMMWORD[64+rsi],ymm2 + add rsi,96 + + vextracti32x4 xmm8,ymm2,0x1 + vextracti32x4 xmm0,zmm10,0x2 + and rdx,0xf + je NEAR $L$_ret_wcpqaDvsGlbjGoe + jmp NEAR $L$_steal_cipher_wcpqaDvsGlbjGoe +$L$_num_blocks_is_5_wcpqaDvsGlbjGoe: + vpshufb zmm1,zmm0,zmm8 + vpsllvq zmm4,zmm0,ZMMWORD[const_dq3210] + vpsrlvq zmm2,zmm1,ZMMWORD[const_dq5678] + vpclmulqdq zmm3,zmm2,zmm25,0x00 + vpxorq zmm4{k2},zmm4,zmm2 + vpxord zmm9,zmm3,zmm4 + vpsllvq zmm5,zmm0,ZMMWORD[const_dq7654] + vpsrlvq zmm6,zmm1,ZMMWORD[const_dq1234] + vpclmulqdq zmm7,zmm6,zmm25,0x00 + vpxorq zmm5{k2},zmm5,zmm6 + vpxord zmm10,zmm7,zmm5 + vmovdqu8 zmm1,ZMMWORD[rdi] + vmovdqu8 xmm2,XMMWORD[64+rdi] + add rdi,80 + vbroadcasti32x4 zmm0,ZMMWORD[rcx] + vpternlogq zmm1,zmm9,zmm0,0x96 + vpternlogq zmm2,zmm10,zmm0,0x96 + vbroadcasti32x4 zmm0,ZMMWORD[16+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[32+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[48+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + vbroadcasti32x4 zmm0,ZMMWORD[64+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[80+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[96+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[112+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[128+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[144+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + vbroadcasti32x4 zmm0,ZMMWORD[160+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[176+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[192+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[208+rcx] + vaesenc zmm1,zmm1,zmm0 + vaesenc zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[224+rcx] + vaesenclast zmm1,zmm1,zmm0 + vaesenclast zmm2,zmm2,zmm0 + vpxorq zmm1,zmm1,zmm9 + vpxorq zmm2,zmm2,zmm10 + vmovdqu8 ZMMWORD[rsi],zmm1 + vmovdqu8 XMMWORD[64+rsi],xmm2 + add rsi,80 + + vmovdqa xmm8,xmm2 + vextracti32x4 xmm0,zmm10,0x1 + and rdx,0xf + je NEAR $L$_ret_wcpqaDvsGlbjGoe + jmp NEAR $L$_steal_cipher_wcpqaDvsGlbjGoe +$L$_num_blocks_is_4_wcpqaDvsGlbjGoe: + vpshufb zmm1,zmm0,zmm8 + vpsllvq zmm4,zmm0,ZMMWORD[const_dq3210] + vpsrlvq zmm2,zmm1,ZMMWORD[const_dq5678] + vpclmulqdq zmm3,zmm2,zmm25,0x00 + vpxorq zmm4{k2},zmm4,zmm2 + vpxord zmm9,zmm3,zmm4 + vpsllvq zmm5,zmm0,ZMMWORD[const_dq7654] + vpsrlvq zmm6,zmm1,ZMMWORD[const_dq1234] + vpclmulqdq zmm7,zmm6,zmm25,0x00 + vpxorq zmm5{k2},zmm5,zmm6 + vpxord zmm10,zmm7,zmm5 + vmovdqu8 zmm1,ZMMWORD[rdi] + add rdi,64 + vbroadcasti32x4 zmm0,ZMMWORD[rcx] + vpternlogq zmm1,zmm9,zmm0,0x96 + vbroadcasti32x4 zmm0,ZMMWORD[16+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[32+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[48+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[64+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[80+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[96+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[112+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[128+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[144+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[160+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[176+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[192+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[208+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[224+rcx] + vaesenclast zmm1,zmm1,zmm0 + vpxorq zmm1,zmm1,zmm9 + vmovdqu8 ZMMWORD[rsi],zmm1 + add rsi,64 + vextracti32x4 xmm8,zmm1,0x3 + vmovdqa xmm0,xmm10 + and rdx,0xf + je NEAR $L$_ret_wcpqaDvsGlbjGoe + jmp NEAR $L$_steal_cipher_wcpqaDvsGlbjGoe +$L$_num_blocks_is_3_wcpqaDvsGlbjGoe: + vpshufb zmm1,zmm0,zmm8 + vpsllvq zmm4,zmm0,ZMMWORD[const_dq3210] + vpsrlvq zmm2,zmm1,ZMMWORD[const_dq5678] + vpclmulqdq zmm3,zmm2,zmm25,0x00 + vpxorq zmm4{k2},zmm4,zmm2 + vpxord zmm9,zmm3,zmm4 + mov r8,0x0000ffffffffffff + kmovq k1,r8 + vmovdqu8 zmm1{k1},[rdi] + add rdi,48 + vbroadcasti32x4 zmm0,ZMMWORD[rcx] + vpternlogq zmm1,zmm9,zmm0,0x96 + vbroadcasti32x4 zmm0,ZMMWORD[16+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[32+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[48+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[64+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[80+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[96+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[112+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[128+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[144+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[160+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[176+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[192+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[208+rcx] + vaesenc zmm1,zmm1,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[224+rcx] + vaesenclast zmm1,zmm1,zmm0 + vpxorq zmm1,zmm1,zmm9 + vmovdqu8 ZMMWORD[rsi]{k1},zmm1 + add rsi,48 + vextracti32x4 xmm8,zmm1,2 + vextracti32x4 xmm0,zmm9,3 + and rdx,0xf + je NEAR $L$_ret_wcpqaDvsGlbjGoe + jmp NEAR $L$_steal_cipher_wcpqaDvsGlbjGoe +$L$_num_blocks_is_2_wcpqaDvsGlbjGoe: + vpshufb zmm1,zmm0,zmm8 + vpsllvq zmm4,zmm0,ZMMWORD[const_dq3210] + vpsrlvq zmm2,zmm1,ZMMWORD[const_dq5678] + vpclmulqdq zmm3,zmm2,zmm25,0x00 + vpxorq zmm4{k2},zmm4,zmm2 + vpxord zmm9,zmm3,zmm4 + + vmovdqu8 ymm1,YMMWORD[rdi] + add rdi,32 + vbroadcasti32x4 ymm0,YMMWORD[rcx] + vpternlogq ymm1,ymm9,ymm0,0x96 + vbroadcasti32x4 ymm0,YMMWORD[16+rcx] + vaesenc ymm1,ymm1,ymm0 + vbroadcasti32x4 ymm0,YMMWORD[32+rcx] + vaesenc ymm1,ymm1,ymm0 + vbroadcasti32x4 ymm0,YMMWORD[48+rcx] + vaesenc ymm1,ymm1,ymm0 + vbroadcasti32x4 ymm0,YMMWORD[64+rcx] + vaesenc ymm1,ymm1,ymm0 + vbroadcasti32x4 ymm0,YMMWORD[80+rcx] + vaesenc ymm1,ymm1,ymm0 + vbroadcasti32x4 ymm0,YMMWORD[96+rcx] + vaesenc ymm1,ymm1,ymm0 + vbroadcasti32x4 ymm0,YMMWORD[112+rcx] + vaesenc ymm1,ymm1,ymm0 + vbroadcasti32x4 ymm0,YMMWORD[128+rcx] + vaesenc ymm1,ymm1,ymm0 + vbroadcasti32x4 ymm0,YMMWORD[144+rcx] + vaesenc ymm1,ymm1,ymm0 + vbroadcasti32x4 ymm0,YMMWORD[160+rcx] + vaesenc ymm1,ymm1,ymm0 + vbroadcasti32x4 ymm0,YMMWORD[176+rcx] + vaesenc ymm1,ymm1,ymm0 + vbroadcasti32x4 ymm0,YMMWORD[192+rcx] + vaesenc ymm1,ymm1,ymm0 + vbroadcasti32x4 ymm0,YMMWORD[208+rcx] + vaesenc ymm1,ymm1,ymm0 + vbroadcasti32x4 ymm0,YMMWORD[224+rcx] + vaesenclast ymm1,ymm1,ymm0 + vpxorq ymm1,ymm1,ymm9 + vmovdqu8 YMMWORD[rsi],ymm1 + add rsi,32 + + vextracti32x4 xmm8,ymm1,1 + vextracti32x4 xmm0,zmm9,2 + and rdx,0xf + je NEAR $L$_ret_wcpqaDvsGlbjGoe + jmp NEAR $L$_steal_cipher_wcpqaDvsGlbjGoe +$L$_num_blocks_is_1_wcpqaDvsGlbjGoe: + vpshufb zmm1,zmm0,zmm8 + vpsllvq zmm4,zmm0,ZMMWORD[const_dq3210] + vpsrlvq zmm2,zmm1,ZMMWORD[const_dq5678] + vpclmulqdq zmm3,zmm2,zmm25,0x00 + vpxorq zmm4{k2},zmm4,zmm2 + vpxord zmm9,zmm3,zmm4 + + vmovdqu8 xmm1,XMMWORD[rdi] + add rdi,16 + vbroadcasti32x4 ymm0,YMMWORD[rcx] + vpternlogq ymm1,ymm9,ymm0,0x96 + vbroadcasti32x4 ymm0,YMMWORD[16+rcx] + vaesenc ymm1,ymm1,ymm0 + vbroadcasti32x4 ymm0,YMMWORD[32+rcx] + vaesenc ymm1,ymm1,ymm0 + vbroadcasti32x4 ymm0,YMMWORD[48+rcx] + vaesenc ymm1,ymm1,ymm0 + vbroadcasti32x4 ymm0,YMMWORD[64+rcx] + vaesenc ymm1,ymm1,ymm0 + vbroadcasti32x4 ymm0,YMMWORD[80+rcx] + vaesenc ymm1,ymm1,ymm0 + vbroadcasti32x4 ymm0,YMMWORD[96+rcx] + vaesenc ymm1,ymm1,ymm0 + vbroadcasti32x4 ymm0,YMMWORD[112+rcx] + vaesenc ymm1,ymm1,ymm0 + vbroadcasti32x4 ymm0,YMMWORD[128+rcx] + vaesenc ymm1,ymm1,ymm0 + vbroadcasti32x4 ymm0,YMMWORD[144+rcx] + vaesenc ymm1,ymm1,ymm0 + vbroadcasti32x4 ymm0,YMMWORD[160+rcx] + vaesenc ymm1,ymm1,ymm0 + vbroadcasti32x4 ymm0,YMMWORD[176+rcx] + vaesenc ymm1,ymm1,ymm0 + vbroadcasti32x4 ymm0,YMMWORD[192+rcx] + vaesenc ymm1,ymm1,ymm0 + vbroadcasti32x4 ymm0,YMMWORD[208+rcx] + vaesenc ymm1,ymm1,ymm0 + vbroadcasti32x4 ymm0,YMMWORD[224+rcx] + vaesenclast ymm1,ymm1,ymm0 + vpxorq ymm1,ymm1,ymm9 + vmovdqu8 XMMWORD[rsi],xmm1 + add rsi,16 + + vmovdqa xmm8,xmm1 + vextracti32x4 xmm0,zmm9,1 + and rdx,0xf + je NEAR $L$_ret_wcpqaDvsGlbjGoe + jmp NEAR $L$_steal_cipher_wcpqaDvsGlbjGoe + +global aesni_xts_256_decrypt_avx512 + + +ALIGN 32 +aesni_xts_256_decrypt_avx512: + mov QWORD[8+rsp],rdi ;WIN64 prologue + mov QWORD[16+rsp],rsi + mov rax,rsp +$L$SEH_begin_aesni_xts_256_decrypt_avx512: + mov rdi,rcx + mov rsi,rdx + mov rdx,r8 + mov rcx,r9 + mov r8,QWORD[40+rsp] + mov r9,QWORD[48+rsp] + + + +DB 243,15,30,250 + push rbp + mov rbp,rsp + sub rsp,312 + and rsp,0xffffffffffffffc0 + mov QWORD[288+rsp],rbx + mov QWORD[((288 + 8))+rsp],rdi + mov QWORD[((288 + 16))+rsp],rsi + vmovdqa XMMWORD[(128 + 0)+rsp],xmm6 + vmovdqa XMMWORD[(128 + 16)+rsp],xmm7 + vmovdqa XMMWORD[(128 + 32)+rsp],xmm8 + vmovdqa XMMWORD[(128 + 48)+rsp],xmm9 + vmovdqa XMMWORD[(128 + 64)+rsp],xmm10 + vmovdqa XMMWORD[(128 + 80)+rsp],xmm11 + vmovdqa XMMWORD[(128 + 96)+rsp],xmm12 + vmovdqa XMMWORD[(128 + 112)+rsp],xmm13 + vmovdqa XMMWORD[(128 + 128)+rsp],xmm14 + vmovdqa XMMWORD[(128 + 144)+rsp],xmm15 + mov r10,0x87 + vmovdqu xmm1,XMMWORD[r9] + vpxor xmm1,xmm1,XMMWORD[r8] + vaesenc xmm1,xmm1,XMMWORD[16+r8] + vaesenc xmm1,xmm1,XMMWORD[32+r8] + vaesenc xmm1,xmm1,XMMWORD[48+r8] + vaesenc xmm1,xmm1,XMMWORD[64+r8] + vaesenc xmm1,xmm1,XMMWORD[80+r8] + vaesenc xmm1,xmm1,XMMWORD[96+r8] + vaesenc xmm1,xmm1,XMMWORD[112+r8] + vaesenc xmm1,xmm1,XMMWORD[128+r8] + vaesenc xmm1,xmm1,XMMWORD[144+r8] + vaesenc xmm1,xmm1,XMMWORD[160+r8] + vaesenc xmm1,xmm1,XMMWORD[176+r8] + vaesenc xmm1,xmm1,XMMWORD[192+r8] + vaesenc xmm1,xmm1,XMMWORD[208+r8] + vaesenclast xmm1,xmm1,XMMWORD[224+r8] + vmovdqa XMMWORD[rsp],xmm1 + mov QWORD[((8 + 40))+rbp],rdi + mov QWORD[((8 + 48))+rbp],rsi + + cmp rdx,0x80 + jb NEAR $L$_less_than_128_bytes_EmbgEptodyewbFa + vpbroadcastq zmm25,r10 + cmp rdx,0x100 + jge NEAR $L$_start_by16_EmbgEptodyewbFa + jmp NEAR $L$_start_by8_EmbgEptodyewbFa + +$L$_do_n_blocks_EmbgEptodyewbFa: + cmp rdx,0x0 + je NEAR $L$_ret_EmbgEptodyewbFa + cmp rdx,0x70 + jge NEAR $L$_remaining_num_blocks_is_7_EmbgEptodyewbFa + cmp rdx,0x60 + jge NEAR $L$_remaining_num_blocks_is_6_EmbgEptodyewbFa + cmp rdx,0x50 + jge NEAR $L$_remaining_num_blocks_is_5_EmbgEptodyewbFa + cmp rdx,0x40 + jge NEAR $L$_remaining_num_blocks_is_4_EmbgEptodyewbFa + cmp rdx,0x30 + jge NEAR $L$_remaining_num_blocks_is_3_EmbgEptodyewbFa + cmp rdx,0x20 + jge NEAR $L$_remaining_num_blocks_is_2_EmbgEptodyewbFa + cmp rdx,0x10 + jge NEAR $L$_remaining_num_blocks_is_1_EmbgEptodyewbFa + + + vmovdqu xmm1,xmm5 + + vpxor xmm1,xmm1,xmm9 + vmovdqu xmm0,XMMWORD[rcx] + vpxor xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[16+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[32+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[48+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[64+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[80+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[96+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[112+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[128+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[144+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[160+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[176+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[192+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[208+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[224+rcx] + vaesdeclast xmm1,xmm1,xmm0 + vpxor xmm1,xmm1,xmm9 + vmovdqu XMMWORD[(-16)+rsi],xmm1 + vmovdqa xmm8,xmm1 + + + mov r8,0x1 + kmovq k1,r8 + vpsllq xmm13,xmm9,0x3f + vpsraq xmm14,xmm13,0x3f + vpandq xmm5,xmm14,xmm25 + vpxorq xmm9{k1},xmm9,xmm5 + vpsrldq xmm10,xmm9,0x8 +DB 98,211,181,8,115,194,1 + vpslldq xmm13,xmm13,0x8 + vpxorq xmm0,xmm0,xmm13 + jmp NEAR $L$_steal_cipher_EmbgEptodyewbFa + +$L$_remaining_num_blocks_is_7_EmbgEptodyewbFa: + mov r8,0xffffffffffffffff + shr r8,0x10 + kmovq k1,r8 + vmovdqu8 zmm1,ZMMWORD[rdi] + vmovdqu8 zmm2{k1},[64+rdi] + add rdi,0x70 + and rdx,0xf + je NEAR $L$_done_7_remain_EmbgEptodyewbFa + vextracti32x4 xmm12,zmm10,0x2 + vextracti32x4 xmm13,zmm10,0x3 + vinserti32x4 zmm10,zmm10,xmm13,0x2 + + vpxorq zmm1,zmm1,zmm9 + vpxorq zmm2,zmm2,zmm10 + + + vbroadcasti32x4 zmm0,ZMMWORD[rcx] + vpxorq zmm1,zmm1,zmm0 + vpxorq zmm2,zmm2,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[16+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[32+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[48+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + vbroadcasti32x4 zmm0,ZMMWORD[64+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[80+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[96+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[112+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[128+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[144+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[160+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[176+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[192+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[208+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[224+rcx] + vaesdeclast zmm1,zmm1,zmm0 + vaesdeclast zmm2,zmm2,zmm0 + + vpxorq zmm1,zmm1,zmm9 + vpxorq zmm2,zmm2,zmm10 + + + vmovdqa32 zmm9,zmm15 + vmovdqa32 zmm10,zmm16 + vmovdqu8 ZMMWORD[rsi],zmm1 + vmovdqu8 ZMMWORD[64+rsi]{k1},zmm2 + add rsi,0x70 + vextracti32x4 xmm8,zmm2,0x2 + vmovdqa xmm0,xmm12 + jmp NEAR $L$_steal_cipher_EmbgEptodyewbFa + +$L$_done_7_remain_EmbgEptodyewbFa: + + vpxorq zmm1,zmm1,zmm9 + vpxorq zmm2,zmm2,zmm10 + + + vbroadcasti32x4 zmm0,ZMMWORD[rcx] + vpxorq zmm1,zmm1,zmm0 + vpxorq zmm2,zmm2,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[16+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[32+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[48+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + vbroadcasti32x4 zmm0,ZMMWORD[64+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[80+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[96+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[112+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[128+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[144+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[160+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[176+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[192+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[208+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[224+rcx] + vaesdeclast zmm1,zmm1,zmm0 + vaesdeclast zmm2,zmm2,zmm0 + + vpxorq zmm1,zmm1,zmm9 + vpxorq zmm2,zmm2,zmm10 + + + vmovdqa32 zmm9,zmm15 + vmovdqa32 zmm10,zmm16 + vmovdqu8 ZMMWORD[rsi],zmm1 + vmovdqu8 ZMMWORD[64+rsi]{k1},zmm2 + jmp NEAR $L$_ret_EmbgEptodyewbFa + +$L$_remaining_num_blocks_is_6_EmbgEptodyewbFa: + vmovdqu8 zmm1,ZMMWORD[rdi] + vmovdqu8 ymm2,YMMWORD[64+rdi] + add rdi,0x60 + and rdx,0xf + je NEAR $L$_done_6_remain_EmbgEptodyewbFa + vextracti32x4 xmm12,zmm10,0x1 + vextracti32x4 xmm13,zmm10,0x2 + vinserti32x4 zmm10,zmm10,xmm13,0x1 + + vpxorq zmm1,zmm1,zmm9 + vpxorq zmm2,zmm2,zmm10 + + + vbroadcasti32x4 zmm0,ZMMWORD[rcx] + vpxorq zmm1,zmm1,zmm0 + vpxorq zmm2,zmm2,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[16+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[32+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[48+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + vbroadcasti32x4 zmm0,ZMMWORD[64+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[80+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[96+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[112+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[128+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[144+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[160+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[176+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[192+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[208+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[224+rcx] + vaesdeclast zmm1,zmm1,zmm0 + vaesdeclast zmm2,zmm2,zmm0 + + vpxorq zmm1,zmm1,zmm9 + vpxorq zmm2,zmm2,zmm10 + + + vmovdqa32 zmm9,zmm15 + vmovdqa32 zmm10,zmm16 + vmovdqu8 ZMMWORD[rsi],zmm1 + vmovdqu8 YMMWORD[64+rsi],ymm2 + add rsi,0x60 + vextracti32x4 xmm8,zmm2,0x1 + vmovdqa xmm0,xmm12 + jmp NEAR $L$_steal_cipher_EmbgEptodyewbFa + +$L$_done_6_remain_EmbgEptodyewbFa: + + vpxorq zmm1,zmm1,zmm9 + vpxorq zmm2,zmm2,zmm10 + + + vbroadcasti32x4 zmm0,ZMMWORD[rcx] + vpxorq zmm1,zmm1,zmm0 + vpxorq zmm2,zmm2,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[16+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[32+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[48+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + vbroadcasti32x4 zmm0,ZMMWORD[64+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[80+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[96+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[112+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[128+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[144+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[160+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[176+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[192+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[208+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[224+rcx] + vaesdeclast zmm1,zmm1,zmm0 + vaesdeclast zmm2,zmm2,zmm0 + + vpxorq zmm1,zmm1,zmm9 + vpxorq zmm2,zmm2,zmm10 + + + vmovdqa32 zmm9,zmm15 + vmovdqa32 zmm10,zmm16 + vmovdqu8 ZMMWORD[rsi],zmm1 + vmovdqu8 YMMWORD[64+rsi],ymm2 + jmp NEAR $L$_ret_EmbgEptodyewbFa + +$L$_remaining_num_blocks_is_5_EmbgEptodyewbFa: + vmovdqu8 zmm1,ZMMWORD[rdi] + vmovdqu xmm2,XMMWORD[64+rdi] + add rdi,0x50 + and rdx,0xf + je NEAR $L$_done_5_remain_EmbgEptodyewbFa + vmovdqa xmm12,xmm10 + vextracti32x4 xmm10,zmm10,0x1 + + vpxorq zmm1,zmm1,zmm9 + vpxorq zmm2,zmm2,zmm10 + + + vbroadcasti32x4 zmm0,ZMMWORD[rcx] + vpxorq zmm1,zmm1,zmm0 + vpxorq zmm2,zmm2,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[16+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[32+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[48+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + vbroadcasti32x4 zmm0,ZMMWORD[64+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[80+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[96+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[112+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[128+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[144+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[160+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[176+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[192+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[208+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[224+rcx] + vaesdeclast zmm1,zmm1,zmm0 + vaesdeclast zmm2,zmm2,zmm0 + + vpxorq zmm1,zmm1,zmm9 + vpxorq zmm2,zmm2,zmm10 + + + vmovdqa32 zmm9,zmm15 + vmovdqa32 zmm10,zmm16 + vmovdqu8 ZMMWORD[rsi],zmm1 + vmovdqu XMMWORD[64+rsi],xmm2 + add rsi,0x50 + vmovdqa xmm8,xmm2 + vmovdqa xmm0,xmm12 + jmp NEAR $L$_steal_cipher_EmbgEptodyewbFa + +$L$_done_5_remain_EmbgEptodyewbFa: + + vpxorq zmm1,zmm1,zmm9 + vpxorq zmm2,zmm2,zmm10 + + + vbroadcasti32x4 zmm0,ZMMWORD[rcx] + vpxorq zmm1,zmm1,zmm0 + vpxorq zmm2,zmm2,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[16+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[32+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[48+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + vbroadcasti32x4 zmm0,ZMMWORD[64+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[80+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[96+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[112+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[128+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[144+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[160+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[176+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[192+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[208+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[224+rcx] + vaesdeclast zmm1,zmm1,zmm0 + vaesdeclast zmm2,zmm2,zmm0 + + vpxorq zmm1,zmm1,zmm9 + vpxorq zmm2,zmm2,zmm10 + + + vmovdqa32 zmm9,zmm15 + vmovdqa32 zmm10,zmm16 + vmovdqu8 ZMMWORD[rsi],zmm1 + vmovdqu8 XMMWORD[64+rsi],xmm2 + jmp NEAR $L$_ret_EmbgEptodyewbFa + +$L$_remaining_num_blocks_is_4_EmbgEptodyewbFa: + vmovdqu8 zmm1,ZMMWORD[rdi] + add rdi,0x40 + and rdx,0xf + je NEAR $L$_done_4_remain_EmbgEptodyewbFa + vextracti32x4 xmm12,zmm9,0x3 + vinserti32x4 zmm9,zmm9,xmm10,0x3 + + vpxorq zmm1,zmm1,zmm9 + vpxorq zmm2,zmm2,zmm10 + + + vbroadcasti32x4 zmm0,ZMMWORD[rcx] + vpxorq zmm1,zmm1,zmm0 + vpxorq zmm2,zmm2,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[16+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[32+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[48+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + vbroadcasti32x4 zmm0,ZMMWORD[64+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[80+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[96+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[112+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[128+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[144+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[160+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[176+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[192+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[208+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[224+rcx] + vaesdeclast zmm1,zmm1,zmm0 + vaesdeclast zmm2,zmm2,zmm0 + + vpxorq zmm1,zmm1,zmm9 + vpxorq zmm2,zmm2,zmm10 + + + vmovdqa32 zmm9,zmm15 + vmovdqa32 zmm10,zmm16 + vmovdqu8 ZMMWORD[rsi],zmm1 + add rsi,0x40 + vextracti32x4 xmm8,zmm1,0x3 + vmovdqa xmm0,xmm12 + jmp NEAR $L$_steal_cipher_EmbgEptodyewbFa + +$L$_done_4_remain_EmbgEptodyewbFa: + + vpxorq zmm1,zmm1,zmm9 + vpxorq zmm2,zmm2,zmm10 + + + vbroadcasti32x4 zmm0,ZMMWORD[rcx] + vpxorq zmm1,zmm1,zmm0 + vpxorq zmm2,zmm2,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[16+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[32+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[48+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + vbroadcasti32x4 zmm0,ZMMWORD[64+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[80+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[96+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[112+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[128+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[144+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[160+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[176+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[192+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[208+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[224+rcx] + vaesdeclast zmm1,zmm1,zmm0 + vaesdeclast zmm2,zmm2,zmm0 + + vpxorq zmm1,zmm1,zmm9 + vpxorq zmm2,zmm2,zmm10 + + + vmovdqa32 zmm9,zmm15 + vmovdqa32 zmm10,zmm16 + vmovdqu8 ZMMWORD[rsi],zmm1 + jmp NEAR $L$_ret_EmbgEptodyewbFa + +$L$_remaining_num_blocks_is_3_EmbgEptodyewbFa: + vmovdqu xmm1,XMMWORD[rdi] + vmovdqu xmm2,XMMWORD[16+rdi] + vmovdqu xmm3,XMMWORD[32+rdi] + add rdi,0x30 + and rdx,0xf + je NEAR $L$_done_3_remain_EmbgEptodyewbFa + vextracti32x4 xmm13,zmm9,0x2 + vextracti32x4 xmm10,zmm9,0x1 + vextracti32x4 xmm11,zmm9,0x3 + vpxor xmm1,xmm1,xmm9 + vpxor xmm2,xmm2,xmm10 + vpxor xmm3,xmm3,xmm11 + vmovdqu xmm0,XMMWORD[rcx] + vpxor xmm1,xmm1,xmm0 + vpxor xmm2,xmm2,xmm0 + vpxor xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[16+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[32+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[48+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[64+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[80+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[96+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[112+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[128+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[144+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[160+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[176+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[192+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[208+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[224+rcx] + vaesdeclast xmm1,xmm1,xmm0 + vaesdeclast xmm2,xmm2,xmm0 + vaesdeclast xmm3,xmm3,xmm0 + vpxor xmm1,xmm1,xmm9 + vpxor xmm2,xmm2,xmm10 + vpxor xmm3,xmm3,xmm11 + vmovdqu XMMWORD[rsi],xmm1 + vmovdqu XMMWORD[16+rsi],xmm2 + vmovdqu XMMWORD[32+rsi],xmm3 + add rsi,0x30 + vmovdqa xmm8,xmm3 + vmovdqa xmm0,xmm13 + jmp NEAR $L$_steal_cipher_EmbgEptodyewbFa + +$L$_done_3_remain_EmbgEptodyewbFa: + vextracti32x4 xmm10,zmm9,0x1 + vextracti32x4 xmm11,zmm9,0x2 + vpxor xmm1,xmm1,xmm9 + vpxor xmm2,xmm2,xmm10 + vpxor xmm3,xmm3,xmm11 + vmovdqu xmm0,XMMWORD[rcx] + vpxor xmm1,xmm1,xmm0 + vpxor xmm2,xmm2,xmm0 + vpxor xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[16+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[32+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[48+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[64+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[80+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[96+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[112+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[128+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[144+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[160+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[176+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[192+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[208+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[224+rcx] + vaesdeclast xmm1,xmm1,xmm0 + vaesdeclast xmm2,xmm2,xmm0 + vaesdeclast xmm3,xmm3,xmm0 + vpxor xmm1,xmm1,xmm9 + vpxor xmm2,xmm2,xmm10 + vpxor xmm3,xmm3,xmm11 + vmovdqu XMMWORD[rsi],xmm1 + vmovdqu XMMWORD[16+rsi],xmm2 + vmovdqu XMMWORD[32+rsi],xmm3 + jmp NEAR $L$_ret_EmbgEptodyewbFa + +$L$_remaining_num_blocks_is_2_EmbgEptodyewbFa: + vmovdqu xmm1,XMMWORD[rdi] + vmovdqu xmm2,XMMWORD[16+rdi] + add rdi,0x20 + and rdx,0xf + je NEAR $L$_done_2_remain_EmbgEptodyewbFa + vextracti32x4 xmm10,zmm9,0x2 + vextracti32x4 xmm12,zmm9,0x1 + vpxor xmm1,xmm1,xmm9 + vpxor xmm2,xmm2,xmm10 + vmovdqu xmm0,XMMWORD[rcx] + vpxor xmm1,xmm1,xmm0 + vpxor xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[16+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[32+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[48+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[64+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[80+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[96+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[112+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[128+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[144+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[160+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[176+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[192+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[208+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[224+rcx] + vaesdeclast xmm1,xmm1,xmm0 + vaesdeclast xmm2,xmm2,xmm0 + vpxor xmm1,xmm1,xmm9 + vpxor xmm2,xmm2,xmm10 + vmovdqu XMMWORD[rsi],xmm1 + vmovdqu XMMWORD[16+rsi],xmm2 + add rsi,0x20 + vmovdqa xmm8,xmm2 + vmovdqa xmm0,xmm12 + jmp NEAR $L$_steal_cipher_EmbgEptodyewbFa + +$L$_done_2_remain_EmbgEptodyewbFa: + vextracti32x4 xmm10,zmm9,0x1 + vpxor xmm1,xmm1,xmm9 + vpxor xmm2,xmm2,xmm10 + vmovdqu xmm0,XMMWORD[rcx] + vpxor xmm1,xmm1,xmm0 + vpxor xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[16+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[32+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[48+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[64+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[80+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[96+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[112+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[128+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[144+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[160+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[176+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[192+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[208+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[224+rcx] + vaesdeclast xmm1,xmm1,xmm0 + vaesdeclast xmm2,xmm2,xmm0 + vpxor xmm1,xmm1,xmm9 + vpxor xmm2,xmm2,xmm10 + vmovdqu XMMWORD[rsi],xmm1 + vmovdqu XMMWORD[16+rsi],xmm2 + jmp NEAR $L$_ret_EmbgEptodyewbFa + +$L$_remaining_num_blocks_is_1_EmbgEptodyewbFa: + vmovdqu xmm1,XMMWORD[rdi] + add rdi,0x10 + and rdx,0xf + je NEAR $L$_done_1_remain_EmbgEptodyewbFa + vextracti32x4 xmm11,zmm9,0x1 + vpxor xmm1,xmm1,xmm11 + vmovdqu xmm0,XMMWORD[rcx] + vpxor xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[16+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[32+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[48+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[64+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[80+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[96+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[112+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[128+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[144+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[160+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[176+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[192+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[208+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[224+rcx] + vaesdeclast xmm1,xmm1,xmm0 + vpxor xmm1,xmm1,xmm11 + vmovdqu XMMWORD[rsi],xmm1 + add rsi,0x10 + vmovdqa xmm8,xmm1 + vmovdqa xmm0,xmm9 + jmp NEAR $L$_steal_cipher_EmbgEptodyewbFa + +$L$_done_1_remain_EmbgEptodyewbFa: + vpxor xmm1,xmm1,xmm9 + vmovdqu xmm0,XMMWORD[rcx] + vpxor xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[16+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[32+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[48+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[64+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[80+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[96+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[112+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[128+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[144+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[160+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[176+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[192+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[208+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[224+rcx] + vaesdeclast xmm1,xmm1,xmm0 + vpxor xmm1,xmm1,xmm9 + vmovdqu XMMWORD[rsi],xmm1 + jmp NEAR $L$_ret_EmbgEptodyewbFa + +$L$_start_by16_EmbgEptodyewbFa: + vbroadcasti32x4 zmm0,ZMMWORD[rsp] + vbroadcasti32x4 zmm8,ZMMWORD[shufb_15_7] + mov r8,0xaa + kmovq k2,r8 + + + vpshufb zmm1,zmm0,zmm8 + vpsllvq zmm4,zmm0,ZMMWORD[const_dq3210] + vpsrlvq zmm2,zmm1,ZMMWORD[const_dq5678] + vpclmulqdq zmm3,zmm2,zmm25,0x0 + vpxorq zmm4{k2},zmm4,zmm2 + vpxord zmm9,zmm3,zmm4 + + + vpsllvq zmm5,zmm0,ZMMWORD[const_dq7654] + vpsrlvq zmm6,zmm1,ZMMWORD[const_dq1234] + vpclmulqdq zmm7,zmm6,zmm25,0x0 + vpxorq zmm5{k2},zmm5,zmm6 + vpxord zmm10,zmm7,zmm5 + + + vpsrldq zmm13,zmm9,0xf + vpclmulqdq zmm14,zmm13,zmm25,0x0 + vpslldq zmm11,zmm9,0x1 + vpxord zmm11,zmm11,zmm14 + + vpsrldq zmm15,zmm10,0xf + vpclmulqdq zmm16,zmm15,zmm25,0x0 + vpslldq zmm12,zmm10,0x1 + vpxord zmm12,zmm12,zmm16 + +$L$_main_loop_run_16_EmbgEptodyewbFa: + vmovdqu8 zmm1,ZMMWORD[rdi] + vmovdqu8 zmm2,ZMMWORD[64+rdi] + vmovdqu8 zmm3,ZMMWORD[128+rdi] + vmovdqu8 zmm4,ZMMWORD[192+rdi] + vmovdqu8 xmm5,XMMWORD[240+rdi] + add rdi,0x100 + vpxorq zmm1,zmm1,zmm9 + vpxorq zmm2,zmm2,zmm10 + vpxorq zmm3,zmm3,zmm11 + vpxorq zmm4,zmm4,zmm12 + vbroadcasti32x4 zmm0,ZMMWORD[rcx] + vpxorq zmm1,zmm1,zmm0 + vpxorq zmm2,zmm2,zmm0 + vpxorq zmm3,zmm3,zmm0 + vpxorq zmm4,zmm4,zmm0 + vpsrldq zmm13,zmm11,0xf + vpclmulqdq zmm14,zmm13,zmm25,0x0 + vpslldq zmm15,zmm11,0x1 + vpxord zmm15,zmm15,zmm14 + vbroadcasti32x4 zmm0,ZMMWORD[16+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + vaesdec zmm3,zmm3,zmm0 + vaesdec zmm4,zmm4,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[32+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + vaesdec zmm3,zmm3,zmm0 + vaesdec zmm4,zmm4,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[48+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + vaesdec zmm3,zmm3,zmm0 + vaesdec zmm4,zmm4,zmm0 + vpsrldq zmm13,zmm12,0xf + vpclmulqdq zmm14,zmm13,zmm25,0x0 + vpslldq zmm16,zmm12,0x1 + vpxord zmm16,zmm16,zmm14 + vbroadcasti32x4 zmm0,ZMMWORD[64+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + vaesdec zmm3,zmm3,zmm0 + vaesdec zmm4,zmm4,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[80+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + vaesdec zmm3,zmm3,zmm0 + vaesdec zmm4,zmm4,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[96+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + vaesdec zmm3,zmm3,zmm0 + vaesdec zmm4,zmm4,zmm0 + vpsrldq zmm13,zmm15,0xf + vpclmulqdq zmm14,zmm13,zmm25,0x0 + vpslldq zmm17,zmm15,0x1 + vpxord zmm17,zmm17,zmm14 + vbroadcasti32x4 zmm0,ZMMWORD[112+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + vaesdec zmm3,zmm3,zmm0 + vaesdec zmm4,zmm4,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[128+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + vaesdec zmm3,zmm3,zmm0 + vaesdec zmm4,zmm4,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[144+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + vaesdec zmm3,zmm3,zmm0 + vaesdec zmm4,zmm4,zmm0 + vpsrldq zmm13,zmm16,0xf + vpclmulqdq zmm14,zmm13,zmm25,0x0 + vpslldq zmm18,zmm16,0x1 + vpxord zmm18,zmm18,zmm14 + vbroadcasti32x4 zmm0,ZMMWORD[160+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + vaesdec zmm3,zmm3,zmm0 + vaesdec zmm4,zmm4,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[176+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + vaesdec zmm3,zmm3,zmm0 + vaesdec zmm4,zmm4,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[192+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + vaesdec zmm3,zmm3,zmm0 + vaesdec zmm4,zmm4,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[208+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + vaesdec zmm3,zmm3,zmm0 + vaesdec zmm4,zmm4,zmm0 + vbroadcasti32x4 zmm0,ZMMWORD[224+rcx] + vaesdeclast zmm1,zmm1,zmm0 + vaesdeclast zmm2,zmm2,zmm0 + vaesdeclast zmm3,zmm3,zmm0 + vaesdeclast zmm4,zmm4,zmm0 + vpxorq zmm1,zmm1,zmm9 + vpxorq zmm2,zmm2,zmm10 + vpxorq zmm3,zmm3,zmm11 + vpxorq zmm4,zmm4,zmm12 + + vmovdqa32 zmm9,zmm15 + vmovdqa32 zmm10,zmm16 + vmovdqa32 zmm11,zmm17 + vmovdqa32 zmm12,zmm18 + vmovdqu8 ZMMWORD[rsi],zmm1 + vmovdqu8 ZMMWORD[64+rsi],zmm2 + vmovdqu8 ZMMWORD[128+rsi],zmm3 + vmovdqu8 ZMMWORD[192+rsi],zmm4 + add rsi,0x100 + sub rdx,0x100 + cmp rdx,0x100 + jge NEAR $L$_main_loop_run_16_EmbgEptodyewbFa + + cmp rdx,0x80 + jge NEAR $L$_main_loop_run_8_EmbgEptodyewbFa + jmp NEAR $L$_do_n_blocks_EmbgEptodyewbFa + +$L$_start_by8_EmbgEptodyewbFa: + + vbroadcasti32x4 zmm0,ZMMWORD[rsp] + vbroadcasti32x4 zmm8,ZMMWORD[shufb_15_7] + mov r8,0xaa + kmovq k2,r8 + + + vpshufb zmm1,zmm0,zmm8 + vpsllvq zmm4,zmm0,ZMMWORD[const_dq3210] + vpsrlvq zmm2,zmm1,ZMMWORD[const_dq5678] + vpclmulqdq zmm3,zmm2,zmm25,0x0 + vpxorq zmm4{k2},zmm4,zmm2 + vpxord zmm9,zmm3,zmm4 + + + vpsllvq zmm5,zmm0,ZMMWORD[const_dq7654] + vpsrlvq zmm6,zmm1,ZMMWORD[const_dq1234] + vpclmulqdq zmm7,zmm6,zmm25,0x0 + vpxorq zmm5{k2},zmm5,zmm6 + vpxord zmm10,zmm7,zmm5 + +$L$_main_loop_run_8_EmbgEptodyewbFa: + vmovdqu8 zmm1,ZMMWORD[rdi] + vmovdqu8 zmm2,ZMMWORD[64+rdi] + vmovdqu8 xmm5,XMMWORD[112+rdi] + add rdi,0x80 + + vpxorq zmm1,zmm1,zmm9 + vpxorq zmm2,zmm2,zmm10 + + + vbroadcasti32x4 zmm0,ZMMWORD[rcx] + vpxorq zmm1,zmm1,zmm0 + vpxorq zmm2,zmm2,zmm0 + vpsrldq zmm13,zmm9,0xf + vpclmulqdq zmm14,zmm13,zmm25,0x0 + vpslldq zmm15,zmm9,0x1 + vpxord zmm15,zmm15,zmm14 + vbroadcasti32x4 zmm0,ZMMWORD[16+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[32+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[48+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + vpsrldq zmm13,zmm10,0xf + vpclmulqdq zmm14,zmm13,zmm25,0x0 + vpslldq zmm16,zmm10,0x1 + vpxord zmm16,zmm16,zmm14 + + vbroadcasti32x4 zmm0,ZMMWORD[64+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[80+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[96+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[112+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[128+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[144+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[160+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[176+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[192+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[208+rcx] + vaesdec zmm1,zmm1,zmm0 + vaesdec zmm2,zmm2,zmm0 + + + vbroadcasti32x4 zmm0,ZMMWORD[224+rcx] + vaesdeclast zmm1,zmm1,zmm0 + vaesdeclast zmm2,zmm2,zmm0 + + vpxorq zmm1,zmm1,zmm9 + vpxorq zmm2,zmm2,zmm10 + + + vmovdqa32 zmm9,zmm15 + vmovdqa32 zmm10,zmm16 + vmovdqu8 ZMMWORD[rsi],zmm1 + vmovdqu8 ZMMWORD[64+rsi],zmm2 + add rsi,0x80 + sub rdx,0x80 + cmp rdx,0x80 + jge NEAR $L$_main_loop_run_8_EmbgEptodyewbFa + jmp NEAR $L$_do_n_blocks_EmbgEptodyewbFa + +$L$_steal_cipher_EmbgEptodyewbFa: + + vmovdqa xmm2,xmm8 + + + lea rax,[vpshufb_shf_table] + vmovdqu xmm10,XMMWORD[rdx*1+rax] + vpshufb xmm8,xmm8,xmm10 + + + vmovdqu xmm3,XMMWORD[((-16))+rdx*1+rdi] + vmovdqu XMMWORD[(-16)+rdx*1+rsi],xmm8 + + + lea rax,[vpshufb_shf_table] + add rax,16 + sub rax,rdx + vmovdqu xmm10,XMMWORD[rax] + vpxor xmm10,xmm10,XMMWORD[mask1] + vpshufb xmm3,xmm3,xmm10 + + vpblendvb xmm3,xmm3,xmm2,xmm10 + + + vpxor xmm8,xmm3,xmm0 + + + vpxor xmm8,xmm8,XMMWORD[rcx] + vaesdec xmm8,xmm8,XMMWORD[16+rcx] + vaesdec xmm8,xmm8,XMMWORD[32+rcx] + vaesdec xmm8,xmm8,XMMWORD[48+rcx] + vaesdec xmm8,xmm8,XMMWORD[64+rcx] + vaesdec xmm8,xmm8,XMMWORD[80+rcx] + vaesdec xmm8,xmm8,XMMWORD[96+rcx] + vaesdec xmm8,xmm8,XMMWORD[112+rcx] + vaesdec xmm8,xmm8,XMMWORD[128+rcx] + vaesdec xmm8,xmm8,XMMWORD[144+rcx] + vaesdec xmm8,xmm8,XMMWORD[160+rcx] + vaesdec xmm8,xmm8,XMMWORD[176+rcx] + vaesdec xmm8,xmm8,XMMWORD[192+rcx] + vaesdec xmm8,xmm8,XMMWORD[208+rcx] + vaesdeclast xmm8,xmm8,XMMWORD[224+rcx] + + vpxor xmm8,xmm8,xmm0 + +$L$_done_EmbgEptodyewbFa: + + vmovdqu XMMWORD[(-16)+rsi],xmm8 +$L$_ret_EmbgEptodyewbFa: + mov rbx,QWORD[288+rsp] + xor r8,r8 + mov QWORD[288+rsp],r8 + + vpxorq zmm0,zmm0,zmm0 + mov rdi,QWORD[((288 + 8))+rsp] + mov QWORD[((288 + 8))+rsp],r8 + mov rsi,QWORD[((288 + 16))+rsp] + mov QWORD[((288 + 16))+rsp],r8 + + vmovdqa xmm6,XMMWORD[((128 + 0))+rsp] + vmovdqa xmm7,XMMWORD[((128 + 16))+rsp] + vmovdqa xmm8,XMMWORD[((128 + 32))+rsp] + vmovdqa xmm9,XMMWORD[((128 + 48))+rsp] + + + vmovdqa64 ZMMWORD[128+rsp],zmm0 + + vmovdqa xmm10,XMMWORD[((128 + 64))+rsp] + vmovdqa xmm11,XMMWORD[((128 + 80))+rsp] + vmovdqa xmm12,XMMWORD[((128 + 96))+rsp] + vmovdqa xmm13,XMMWORD[((128 + 112))+rsp] + + + vmovdqa64 ZMMWORD[(128 + 64)+rsp],zmm0 + + vmovdqa xmm14,XMMWORD[((128 + 128))+rsp] + vmovdqa xmm15,XMMWORD[((128 + 144))+rsp] + + + + vmovdqa YMMWORD[(128 + 128)+rsp],ymm0 + mov rsp,rbp + pop rbp + vzeroupper + mov rdi,QWORD[8+rsp] ;WIN64 epilogue + mov rsi,QWORD[16+rsp] + DB 0F3h,0C3h ;repret + +$L$_less_than_128_bytes_EmbgEptodyewbFa: + cmp rdx,0x10 + jb NEAR $L$_ret_EmbgEptodyewbFa + + mov r8,rdx + and r8,0x70 + cmp r8,0x60 + je NEAR $L$_num_blocks_is_6_EmbgEptodyewbFa + cmp r8,0x50 + je NEAR $L$_num_blocks_is_5_EmbgEptodyewbFa + cmp r8,0x40 + je NEAR $L$_num_blocks_is_4_EmbgEptodyewbFa + cmp r8,0x30 + je NEAR $L$_num_blocks_is_3_EmbgEptodyewbFa + cmp r8,0x20 + je NEAR $L$_num_blocks_is_2_EmbgEptodyewbFa + cmp r8,0x10 + je NEAR $L$_num_blocks_is_1_EmbgEptodyewbFa + +$L$_num_blocks_is_7_EmbgEptodyewbFa: + vmovdqa xmm9,XMMWORD[rsp] + mov rax,QWORD[rsp] + mov rbx,QWORD[8+rsp] + vmovdqu xmm1,XMMWORD[rdi] + xor r11,r11 + shl rax,1 + adc rbx,rbx + cmovc r11,r10 + xor rax,r11 + mov QWORD[16+rsp],rax + mov QWORD[((16 + 8))+rsp],rbx + vmovdqa xmm10,XMMWORD[16+rsp] + vmovdqu xmm2,XMMWORD[16+rdi] + xor r11,r11 + shl rax,1 + adc rbx,rbx + cmovc r11,r10 + xor rax,r11 + mov QWORD[32+rsp],rax + mov QWORD[((32 + 8))+rsp],rbx + vmovdqa xmm11,XMMWORD[32+rsp] + vmovdqu xmm3,XMMWORD[32+rdi] + xor r11,r11 + shl rax,1 + adc rbx,rbx + cmovc r11,r10 + xor rax,r11 + mov QWORD[48+rsp],rax + mov QWORD[((48 + 8))+rsp],rbx + vmovdqa xmm12,XMMWORD[48+rsp] + vmovdqu xmm4,XMMWORD[48+rdi] + xor r11,r11 + shl rax,1 + adc rbx,rbx + cmovc r11,r10 + xor rax,r11 + mov QWORD[64+rsp],rax + mov QWORD[((64 + 8))+rsp],rbx + vmovdqa xmm13,XMMWORD[64+rsp] + vmovdqu xmm5,XMMWORD[64+rdi] + xor r11,r11 + shl rax,1 + adc rbx,rbx + cmovc r11,r10 + xor rax,r11 + mov QWORD[80+rsp],rax + mov QWORD[((80 + 8))+rsp],rbx + vmovdqa xmm14,XMMWORD[80+rsp] + vmovdqu xmm6,XMMWORD[80+rdi] + xor r11,r11 + shl rax,1 + adc rbx,rbx + cmovc r11,r10 + xor rax,r11 + mov QWORD[96+rsp],rax + mov QWORD[((96 + 8))+rsp],rbx + vmovdqa xmm15,XMMWORD[96+rsp] + vmovdqu xmm7,XMMWORD[96+rdi] + add rdi,0x70 + and rdx,0xf + je NEAR $L$_done_7_EmbgEptodyewbFa + +$L$_steal_cipher_7_EmbgEptodyewbFa: + xor r11,r11 + shl rax,1 + adc rbx,rbx + cmovc r11,r10 + xor rax,r11 + mov QWORD[16+rsp],rax + mov QWORD[24+rsp],rbx + vmovdqa64 xmm16,xmm15 + vmovdqa xmm15,XMMWORD[16+rsp] + vpxor xmm1,xmm1,xmm9 + vpxor xmm2,xmm2,xmm10 + vpxor xmm3,xmm3,xmm11 + vpxor xmm4,xmm4,xmm12 + vpxor xmm5,xmm5,xmm13 + vpxor xmm6,xmm6,xmm14 + vpxor xmm7,xmm7,xmm15 + vmovdqu xmm0,XMMWORD[rcx] + vpxor xmm1,xmm1,xmm0 + vpxor xmm2,xmm2,xmm0 + vpxor xmm3,xmm3,xmm0 + vpxor xmm4,xmm4,xmm0 + vpxor xmm5,xmm5,xmm0 + vpxor xmm6,xmm6,xmm0 + vpxor xmm7,xmm7,xmm0 + vmovdqu xmm0,XMMWORD[16+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vaesdec xmm7,xmm7,xmm0 + vmovdqu xmm0,XMMWORD[32+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vaesdec xmm7,xmm7,xmm0 + vmovdqu xmm0,XMMWORD[48+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vaesdec xmm7,xmm7,xmm0 + vmovdqu xmm0,XMMWORD[64+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vaesdec xmm7,xmm7,xmm0 + vmovdqu xmm0,XMMWORD[80+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vaesdec xmm7,xmm7,xmm0 + vmovdqu xmm0,XMMWORD[96+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vaesdec xmm7,xmm7,xmm0 + vmovdqu xmm0,XMMWORD[112+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vaesdec xmm7,xmm7,xmm0 + vmovdqu xmm0,XMMWORD[128+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vaesdec xmm7,xmm7,xmm0 + vmovdqu xmm0,XMMWORD[144+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vaesdec xmm7,xmm7,xmm0 + vmovdqu xmm0,XMMWORD[160+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vaesdec xmm7,xmm7,xmm0 + vmovdqu xmm0,XMMWORD[176+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vaesdec xmm7,xmm7,xmm0 + vmovdqu xmm0,XMMWORD[192+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vaesdec xmm7,xmm7,xmm0 + vmovdqu xmm0,XMMWORD[208+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vaesdec xmm7,xmm7,xmm0 + vmovdqu xmm0,XMMWORD[224+rcx] + vaesdeclast xmm1,xmm1,xmm0 + vaesdeclast xmm2,xmm2,xmm0 + vaesdeclast xmm3,xmm3,xmm0 + vaesdeclast xmm4,xmm4,xmm0 + vaesdeclast xmm5,xmm5,xmm0 + vaesdeclast xmm6,xmm6,xmm0 + vaesdeclast xmm7,xmm7,xmm0 + vpxor xmm1,xmm1,xmm9 + vpxor xmm2,xmm2,xmm10 + vpxor xmm3,xmm3,xmm11 + vpxor xmm4,xmm4,xmm12 + vpxor xmm5,xmm5,xmm13 + vpxor xmm6,xmm6,xmm14 + vpxor xmm7,xmm7,xmm15 + vmovdqu XMMWORD[rsi],xmm1 + vmovdqu XMMWORD[16+rsi],xmm2 + vmovdqu XMMWORD[32+rsi],xmm3 + vmovdqu XMMWORD[48+rsi],xmm4 + vmovdqu XMMWORD[64+rsi],xmm5 + vmovdqu XMMWORD[80+rsi],xmm6 + add rsi,0x70 + vmovdqa64 xmm0,xmm16 + vmovdqa xmm8,xmm7 + jmp NEAR $L$_steal_cipher_EmbgEptodyewbFa + +$L$_done_7_EmbgEptodyewbFa: + vpxor xmm1,xmm1,xmm9 + vpxor xmm2,xmm2,xmm10 + vpxor xmm3,xmm3,xmm11 + vpxor xmm4,xmm4,xmm12 + vpxor xmm5,xmm5,xmm13 + vpxor xmm6,xmm6,xmm14 + vpxor xmm7,xmm7,xmm15 + vmovdqu xmm0,XMMWORD[rcx] + vpxor xmm1,xmm1,xmm0 + vpxor xmm2,xmm2,xmm0 + vpxor xmm3,xmm3,xmm0 + vpxor xmm4,xmm4,xmm0 + vpxor xmm5,xmm5,xmm0 + vpxor xmm6,xmm6,xmm0 + vpxor xmm7,xmm7,xmm0 + vmovdqu xmm0,XMMWORD[16+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vaesdec xmm7,xmm7,xmm0 + vmovdqu xmm0,XMMWORD[32+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vaesdec xmm7,xmm7,xmm0 + vmovdqu xmm0,XMMWORD[48+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vaesdec xmm7,xmm7,xmm0 + vmovdqu xmm0,XMMWORD[64+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vaesdec xmm7,xmm7,xmm0 + vmovdqu xmm0,XMMWORD[80+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vaesdec xmm7,xmm7,xmm0 + vmovdqu xmm0,XMMWORD[96+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vaesdec xmm7,xmm7,xmm0 + vmovdqu xmm0,XMMWORD[112+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vaesdec xmm7,xmm7,xmm0 + vmovdqu xmm0,XMMWORD[128+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vaesdec xmm7,xmm7,xmm0 + vmovdqu xmm0,XMMWORD[144+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vaesdec xmm7,xmm7,xmm0 + vmovdqu xmm0,XMMWORD[160+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vaesdec xmm7,xmm7,xmm0 + vmovdqu xmm0,XMMWORD[176+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vaesdec xmm7,xmm7,xmm0 + vmovdqu xmm0,XMMWORD[192+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vaesdec xmm7,xmm7,xmm0 + vmovdqu xmm0,XMMWORD[208+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vaesdec xmm7,xmm7,xmm0 + vmovdqu xmm0,XMMWORD[224+rcx] + vaesdeclast xmm1,xmm1,xmm0 + vaesdeclast xmm2,xmm2,xmm0 + vaesdeclast xmm3,xmm3,xmm0 + vaesdeclast xmm4,xmm4,xmm0 + vaesdeclast xmm5,xmm5,xmm0 + vaesdeclast xmm6,xmm6,xmm0 + vaesdeclast xmm7,xmm7,xmm0 + vpxor xmm1,xmm1,xmm9 + vpxor xmm2,xmm2,xmm10 + vpxor xmm3,xmm3,xmm11 + vpxor xmm4,xmm4,xmm12 + vpxor xmm5,xmm5,xmm13 + vpxor xmm6,xmm6,xmm14 + vpxor xmm7,xmm7,xmm15 + vmovdqu XMMWORD[rsi],xmm1 + vmovdqu XMMWORD[16+rsi],xmm2 + vmovdqu XMMWORD[32+rsi],xmm3 + vmovdqu XMMWORD[48+rsi],xmm4 + vmovdqu XMMWORD[64+rsi],xmm5 + vmovdqu XMMWORD[80+rsi],xmm6 + add rsi,0x70 + vmovdqa xmm8,xmm7 + jmp NEAR $L$_done_EmbgEptodyewbFa + +$L$_num_blocks_is_6_EmbgEptodyewbFa: + vmovdqa xmm9,XMMWORD[rsp] + mov rax,QWORD[rsp] + mov rbx,QWORD[8+rsp] + vmovdqu xmm1,XMMWORD[rdi] + xor r11,r11 + shl rax,1 + adc rbx,rbx + cmovc r11,r10 + xor rax,r11 + mov QWORD[16+rsp],rax + mov QWORD[((16 + 8))+rsp],rbx + vmovdqa xmm10,XMMWORD[16+rsp] + vmovdqu xmm2,XMMWORD[16+rdi] + xor r11,r11 + shl rax,1 + adc rbx,rbx + cmovc r11,r10 + xor rax,r11 + mov QWORD[32+rsp],rax + mov QWORD[((32 + 8))+rsp],rbx + vmovdqa xmm11,XMMWORD[32+rsp] + vmovdqu xmm3,XMMWORD[32+rdi] + xor r11,r11 + shl rax,1 + adc rbx,rbx + cmovc r11,r10 + xor rax,r11 + mov QWORD[48+rsp],rax + mov QWORD[((48 + 8))+rsp],rbx + vmovdqa xmm12,XMMWORD[48+rsp] + vmovdqu xmm4,XMMWORD[48+rdi] + xor r11,r11 + shl rax,1 + adc rbx,rbx + cmovc r11,r10 + xor rax,r11 + mov QWORD[64+rsp],rax + mov QWORD[((64 + 8))+rsp],rbx + vmovdqa xmm13,XMMWORD[64+rsp] + vmovdqu xmm5,XMMWORD[64+rdi] + xor r11,r11 + shl rax,1 + adc rbx,rbx + cmovc r11,r10 + xor rax,r11 + mov QWORD[80+rsp],rax + mov QWORD[((80 + 8))+rsp],rbx + vmovdqa xmm14,XMMWORD[80+rsp] + vmovdqu xmm6,XMMWORD[80+rdi] + add rdi,0x60 + and rdx,0xf + je NEAR $L$_done_6_EmbgEptodyewbFa + +$L$_steal_cipher_6_EmbgEptodyewbFa: + xor r11,r11 + shl rax,1 + adc rbx,rbx + cmovc r11,r10 + xor rax,r11 + mov QWORD[16+rsp],rax + mov QWORD[24+rsp],rbx + vmovdqa64 xmm15,xmm14 + vmovdqa xmm14,XMMWORD[16+rsp] + vpxor xmm1,xmm1,xmm9 + vpxor xmm2,xmm2,xmm10 + vpxor xmm3,xmm3,xmm11 + vpxor xmm4,xmm4,xmm12 + vpxor xmm5,xmm5,xmm13 + vpxor xmm6,xmm6,xmm14 + vmovdqu xmm0,XMMWORD[rcx] + vpxor xmm1,xmm1,xmm0 + vpxor xmm2,xmm2,xmm0 + vpxor xmm3,xmm3,xmm0 + vpxor xmm4,xmm4,xmm0 + vpxor xmm5,xmm5,xmm0 + vpxor xmm6,xmm6,xmm0 + vmovdqu xmm0,XMMWORD[16+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vmovdqu xmm0,XMMWORD[32+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vmovdqu xmm0,XMMWORD[48+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vmovdqu xmm0,XMMWORD[64+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vmovdqu xmm0,XMMWORD[80+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vmovdqu xmm0,XMMWORD[96+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vmovdqu xmm0,XMMWORD[112+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vmovdqu xmm0,XMMWORD[128+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vmovdqu xmm0,XMMWORD[144+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vmovdqu xmm0,XMMWORD[160+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vmovdqu xmm0,XMMWORD[176+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vmovdqu xmm0,XMMWORD[192+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vmovdqu xmm0,XMMWORD[208+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vmovdqu xmm0,XMMWORD[224+rcx] + vaesdeclast xmm1,xmm1,xmm0 + vaesdeclast xmm2,xmm2,xmm0 + vaesdeclast xmm3,xmm3,xmm0 + vaesdeclast xmm4,xmm4,xmm0 + vaesdeclast xmm5,xmm5,xmm0 + vaesdeclast xmm6,xmm6,xmm0 + vpxor xmm1,xmm1,xmm9 + vpxor xmm2,xmm2,xmm10 + vpxor xmm3,xmm3,xmm11 + vpxor xmm4,xmm4,xmm12 + vpxor xmm5,xmm5,xmm13 + vpxor xmm6,xmm6,xmm14 + vmovdqu XMMWORD[rsi],xmm1 + vmovdqu XMMWORD[16+rsi],xmm2 + vmovdqu XMMWORD[32+rsi],xmm3 + vmovdqu XMMWORD[48+rsi],xmm4 + vmovdqu XMMWORD[64+rsi],xmm5 + add rsi,0x60 + vmovdqa xmm0,xmm15 + vmovdqa xmm8,xmm6 + jmp NEAR $L$_steal_cipher_EmbgEptodyewbFa + +$L$_done_6_EmbgEptodyewbFa: + vpxor xmm1,xmm1,xmm9 + vpxor xmm2,xmm2,xmm10 + vpxor xmm3,xmm3,xmm11 + vpxor xmm4,xmm4,xmm12 + vpxor xmm5,xmm5,xmm13 + vpxor xmm6,xmm6,xmm14 + vmovdqu xmm0,XMMWORD[rcx] + vpxor xmm1,xmm1,xmm0 + vpxor xmm2,xmm2,xmm0 + vpxor xmm3,xmm3,xmm0 + vpxor xmm4,xmm4,xmm0 + vpxor xmm5,xmm5,xmm0 + vpxor xmm6,xmm6,xmm0 + vmovdqu xmm0,XMMWORD[16+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vmovdqu xmm0,XMMWORD[32+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vmovdqu xmm0,XMMWORD[48+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vmovdqu xmm0,XMMWORD[64+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vmovdqu xmm0,XMMWORD[80+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vmovdqu xmm0,XMMWORD[96+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vmovdqu xmm0,XMMWORD[112+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vmovdqu xmm0,XMMWORD[128+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vmovdqu xmm0,XMMWORD[144+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vmovdqu xmm0,XMMWORD[160+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vmovdqu xmm0,XMMWORD[176+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vmovdqu xmm0,XMMWORD[192+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vmovdqu xmm0,XMMWORD[208+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vaesdec xmm6,xmm6,xmm0 + vmovdqu xmm0,XMMWORD[224+rcx] + vaesdeclast xmm1,xmm1,xmm0 + vaesdeclast xmm2,xmm2,xmm0 + vaesdeclast xmm3,xmm3,xmm0 + vaesdeclast xmm4,xmm4,xmm0 + vaesdeclast xmm5,xmm5,xmm0 + vaesdeclast xmm6,xmm6,xmm0 + vpxor xmm1,xmm1,xmm9 + vpxor xmm2,xmm2,xmm10 + vpxor xmm3,xmm3,xmm11 + vpxor xmm4,xmm4,xmm12 + vpxor xmm5,xmm5,xmm13 + vpxor xmm6,xmm6,xmm14 + vmovdqu XMMWORD[rsi],xmm1 + vmovdqu XMMWORD[16+rsi],xmm2 + vmovdqu XMMWORD[32+rsi],xmm3 + vmovdqu XMMWORD[48+rsi],xmm4 + vmovdqu XMMWORD[64+rsi],xmm5 + add rsi,0x60 + vmovdqa xmm8,xmm6 + jmp NEAR $L$_done_EmbgEptodyewbFa + +$L$_num_blocks_is_5_EmbgEptodyewbFa: + vmovdqa xmm9,XMMWORD[rsp] + mov rax,QWORD[rsp] + mov rbx,QWORD[8+rsp] + vmovdqu xmm1,XMMWORD[rdi] + xor r11,r11 + shl rax,1 + adc rbx,rbx + cmovc r11,r10 + xor rax,r11 + mov QWORD[16+rsp],rax + mov QWORD[((16 + 8))+rsp],rbx + vmovdqa xmm10,XMMWORD[16+rsp] + vmovdqu xmm2,XMMWORD[16+rdi] + xor r11,r11 + shl rax,1 + adc rbx,rbx + cmovc r11,r10 + xor rax,r11 + mov QWORD[32+rsp],rax + mov QWORD[((32 + 8))+rsp],rbx + vmovdqa xmm11,XMMWORD[32+rsp] + vmovdqu xmm3,XMMWORD[32+rdi] + xor r11,r11 + shl rax,1 + adc rbx,rbx + cmovc r11,r10 + xor rax,r11 + mov QWORD[48+rsp],rax + mov QWORD[((48 + 8))+rsp],rbx + vmovdqa xmm12,XMMWORD[48+rsp] + vmovdqu xmm4,XMMWORD[48+rdi] + xor r11,r11 + shl rax,1 + adc rbx,rbx + cmovc r11,r10 + xor rax,r11 + mov QWORD[64+rsp],rax + mov QWORD[((64 + 8))+rsp],rbx + vmovdqa xmm13,XMMWORD[64+rsp] + vmovdqu xmm5,XMMWORD[64+rdi] + add rdi,0x50 + and rdx,0xf + je NEAR $L$_done_5_EmbgEptodyewbFa + +$L$_steal_cipher_5_EmbgEptodyewbFa: + xor r11,r11 + shl rax,1 + adc rbx,rbx + cmovc r11,r10 + xor rax,r11 + mov QWORD[16+rsp],rax + mov QWORD[24+rsp],rbx + vmovdqa64 xmm14,xmm13 + vmovdqa xmm13,XMMWORD[16+rsp] + vpxor xmm1,xmm1,xmm9 + vpxor xmm2,xmm2,xmm10 + vpxor xmm3,xmm3,xmm11 + vpxor xmm4,xmm4,xmm12 + vpxor xmm5,xmm5,xmm13 + vmovdqu xmm0,XMMWORD[rcx] + vpxor xmm1,xmm1,xmm0 + vpxor xmm2,xmm2,xmm0 + vpxor xmm3,xmm3,xmm0 + vpxor xmm4,xmm4,xmm0 + vpxor xmm5,xmm5,xmm0 + vmovdqu xmm0,XMMWORD[16+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vmovdqu xmm0,XMMWORD[32+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vmovdqu xmm0,XMMWORD[48+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vmovdqu xmm0,XMMWORD[64+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vmovdqu xmm0,XMMWORD[80+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vmovdqu xmm0,XMMWORD[96+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vmovdqu xmm0,XMMWORD[112+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vmovdqu xmm0,XMMWORD[128+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vmovdqu xmm0,XMMWORD[144+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vmovdqu xmm0,XMMWORD[160+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vmovdqu xmm0,XMMWORD[176+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vmovdqu xmm0,XMMWORD[192+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vmovdqu xmm0,XMMWORD[208+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vmovdqu xmm0,XMMWORD[224+rcx] + vaesdeclast xmm1,xmm1,xmm0 + vaesdeclast xmm2,xmm2,xmm0 + vaesdeclast xmm3,xmm3,xmm0 + vaesdeclast xmm4,xmm4,xmm0 + vaesdeclast xmm5,xmm5,xmm0 + vpxor xmm1,xmm1,xmm9 + vpxor xmm2,xmm2,xmm10 + vpxor xmm3,xmm3,xmm11 + vpxor xmm4,xmm4,xmm12 + vpxor xmm5,xmm5,xmm13 + vmovdqu XMMWORD[rsi],xmm1 + vmovdqu XMMWORD[16+rsi],xmm2 + vmovdqu XMMWORD[32+rsi],xmm3 + vmovdqu XMMWORD[48+rsi],xmm4 + add rsi,0x50 + vmovdqa xmm0,xmm14 + vmovdqa xmm8,xmm5 + jmp NEAR $L$_steal_cipher_EmbgEptodyewbFa + +$L$_done_5_EmbgEptodyewbFa: + vpxor xmm1,xmm1,xmm9 + vpxor xmm2,xmm2,xmm10 + vpxor xmm3,xmm3,xmm11 + vpxor xmm4,xmm4,xmm12 + vpxor xmm5,xmm5,xmm13 + vmovdqu xmm0,XMMWORD[rcx] + vpxor xmm1,xmm1,xmm0 + vpxor xmm2,xmm2,xmm0 + vpxor xmm3,xmm3,xmm0 + vpxor xmm4,xmm4,xmm0 + vpxor xmm5,xmm5,xmm0 + vmovdqu xmm0,XMMWORD[16+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vmovdqu xmm0,XMMWORD[32+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vmovdqu xmm0,XMMWORD[48+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vmovdqu xmm0,XMMWORD[64+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vmovdqu xmm0,XMMWORD[80+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vmovdqu xmm0,XMMWORD[96+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vmovdqu xmm0,XMMWORD[112+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vmovdqu xmm0,XMMWORD[128+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vmovdqu xmm0,XMMWORD[144+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vmovdqu xmm0,XMMWORD[160+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vmovdqu xmm0,XMMWORD[176+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vmovdqu xmm0,XMMWORD[192+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vmovdqu xmm0,XMMWORD[208+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vaesdec xmm5,xmm5,xmm0 + vmovdqu xmm0,XMMWORD[224+rcx] + vaesdeclast xmm1,xmm1,xmm0 + vaesdeclast xmm2,xmm2,xmm0 + vaesdeclast xmm3,xmm3,xmm0 + vaesdeclast xmm4,xmm4,xmm0 + vaesdeclast xmm5,xmm5,xmm0 + vpxor xmm1,xmm1,xmm9 + vpxor xmm2,xmm2,xmm10 + vpxor xmm3,xmm3,xmm11 + vpxor xmm4,xmm4,xmm12 + vpxor xmm5,xmm5,xmm13 + vmovdqu XMMWORD[rsi],xmm1 + vmovdqu XMMWORD[16+rsi],xmm2 + vmovdqu XMMWORD[32+rsi],xmm3 + vmovdqu XMMWORD[48+rsi],xmm4 + add rsi,0x50 + vmovdqa xmm8,xmm5 + jmp NEAR $L$_done_EmbgEptodyewbFa + +$L$_num_blocks_is_4_EmbgEptodyewbFa: + vmovdqa xmm9,XMMWORD[rsp] + mov rax,QWORD[rsp] + mov rbx,QWORD[8+rsp] + vmovdqu xmm1,XMMWORD[rdi] + xor r11,r11 + shl rax,1 + adc rbx,rbx + cmovc r11,r10 + xor rax,r11 + mov QWORD[16+rsp],rax + mov QWORD[((16 + 8))+rsp],rbx + vmovdqa xmm10,XMMWORD[16+rsp] + vmovdqu xmm2,XMMWORD[16+rdi] + xor r11,r11 + shl rax,1 + adc rbx,rbx + cmovc r11,r10 + xor rax,r11 + mov QWORD[32+rsp],rax + mov QWORD[((32 + 8))+rsp],rbx + vmovdqa xmm11,XMMWORD[32+rsp] + vmovdqu xmm3,XMMWORD[32+rdi] + xor r11,r11 + shl rax,1 + adc rbx,rbx + cmovc r11,r10 + xor rax,r11 + mov QWORD[48+rsp],rax + mov QWORD[((48 + 8))+rsp],rbx + vmovdqa xmm12,XMMWORD[48+rsp] + vmovdqu xmm4,XMMWORD[48+rdi] + add rdi,0x40 + and rdx,0xf + je NEAR $L$_done_4_EmbgEptodyewbFa + +$L$_steal_cipher_4_EmbgEptodyewbFa: + xor r11,r11 + shl rax,1 + adc rbx,rbx + cmovc r11,r10 + xor rax,r11 + mov QWORD[16+rsp],rax + mov QWORD[24+rsp],rbx + vmovdqa64 xmm13,xmm12 + vmovdqa xmm12,XMMWORD[16+rsp] + vpxor xmm1,xmm1,xmm9 + vpxor xmm2,xmm2,xmm10 + vpxor xmm3,xmm3,xmm11 + vpxor xmm4,xmm4,xmm12 + vmovdqu xmm0,XMMWORD[rcx] + vpxor xmm1,xmm1,xmm0 + vpxor xmm2,xmm2,xmm0 + vpxor xmm3,xmm3,xmm0 + vpxor xmm4,xmm4,xmm0 + vmovdqu xmm0,XMMWORD[16+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vmovdqu xmm0,XMMWORD[32+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vmovdqu xmm0,XMMWORD[48+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vmovdqu xmm0,XMMWORD[64+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vmovdqu xmm0,XMMWORD[80+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vmovdqu xmm0,XMMWORD[96+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vmovdqu xmm0,XMMWORD[112+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vmovdqu xmm0,XMMWORD[128+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vmovdqu xmm0,XMMWORD[144+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vmovdqu xmm0,XMMWORD[160+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vmovdqu xmm0,XMMWORD[176+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vmovdqu xmm0,XMMWORD[192+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vmovdqu xmm0,XMMWORD[208+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vmovdqu xmm0,XMMWORD[224+rcx] + vaesdeclast xmm1,xmm1,xmm0 + vaesdeclast xmm2,xmm2,xmm0 + vaesdeclast xmm3,xmm3,xmm0 + vaesdeclast xmm4,xmm4,xmm0 + vpxor xmm1,xmm1,xmm9 + vpxor xmm2,xmm2,xmm10 + vpxor xmm3,xmm3,xmm11 + vpxor xmm4,xmm4,xmm12 + vmovdqu XMMWORD[rsi],xmm1 + vmovdqu XMMWORD[16+rsi],xmm2 + vmovdqu XMMWORD[32+rsi],xmm3 + add rsi,0x40 + vmovdqa xmm0,xmm13 + vmovdqa xmm8,xmm4 + jmp NEAR $L$_steal_cipher_EmbgEptodyewbFa + +$L$_done_4_EmbgEptodyewbFa: + vpxor xmm1,xmm1,xmm9 + vpxor xmm2,xmm2,xmm10 + vpxor xmm3,xmm3,xmm11 + vpxor xmm4,xmm4,xmm12 + vmovdqu xmm0,XMMWORD[rcx] + vpxor xmm1,xmm1,xmm0 + vpxor xmm2,xmm2,xmm0 + vpxor xmm3,xmm3,xmm0 + vpxor xmm4,xmm4,xmm0 + vmovdqu xmm0,XMMWORD[16+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vmovdqu xmm0,XMMWORD[32+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vmovdqu xmm0,XMMWORD[48+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vmovdqu xmm0,XMMWORD[64+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vmovdqu xmm0,XMMWORD[80+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vmovdqu xmm0,XMMWORD[96+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vmovdqu xmm0,XMMWORD[112+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vmovdqu xmm0,XMMWORD[128+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vmovdqu xmm0,XMMWORD[144+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vmovdqu xmm0,XMMWORD[160+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vmovdqu xmm0,XMMWORD[176+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vmovdqu xmm0,XMMWORD[192+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vmovdqu xmm0,XMMWORD[208+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vaesdec xmm4,xmm4,xmm0 + vmovdqu xmm0,XMMWORD[224+rcx] + vaesdeclast xmm1,xmm1,xmm0 + vaesdeclast xmm2,xmm2,xmm0 + vaesdeclast xmm3,xmm3,xmm0 + vaesdeclast xmm4,xmm4,xmm0 + vpxor xmm1,xmm1,xmm9 + vpxor xmm2,xmm2,xmm10 + vpxor xmm3,xmm3,xmm11 + vpxor xmm4,xmm4,xmm12 + vmovdqu XMMWORD[rsi],xmm1 + vmovdqu XMMWORD[16+rsi],xmm2 + vmovdqu XMMWORD[32+rsi],xmm3 + add rsi,0x40 + vmovdqa xmm8,xmm4 + jmp NEAR $L$_done_EmbgEptodyewbFa + +$L$_num_blocks_is_3_EmbgEptodyewbFa: + vmovdqa xmm9,XMMWORD[rsp] + mov rax,QWORD[rsp] + mov rbx,QWORD[8+rsp] + vmovdqu xmm1,XMMWORD[rdi] + xor r11,r11 + shl rax,1 + adc rbx,rbx + cmovc r11,r10 + xor rax,r11 + mov QWORD[16+rsp],rax + mov QWORD[((16 + 8))+rsp],rbx + vmovdqa xmm10,XMMWORD[16+rsp] + vmovdqu xmm2,XMMWORD[16+rdi] + xor r11,r11 + shl rax,1 + adc rbx,rbx + cmovc r11,r10 + xor rax,r11 + mov QWORD[32+rsp],rax + mov QWORD[((32 + 8))+rsp],rbx + vmovdqa xmm11,XMMWORD[32+rsp] + vmovdqu xmm3,XMMWORD[32+rdi] + add rdi,0x30 + and rdx,0xf + je NEAR $L$_done_3_EmbgEptodyewbFa + +$L$_steal_cipher_3_EmbgEptodyewbFa: + xor r11,r11 + shl rax,1 + adc rbx,rbx + cmovc r11,r10 + xor rax,r11 + mov QWORD[16+rsp],rax + mov QWORD[24+rsp],rbx + vmovdqa64 xmm12,xmm11 + vmovdqa xmm11,XMMWORD[16+rsp] + vpxor xmm1,xmm1,xmm9 + vpxor xmm2,xmm2,xmm10 + vpxor xmm3,xmm3,xmm11 + vmovdqu xmm0,XMMWORD[rcx] + vpxor xmm1,xmm1,xmm0 + vpxor xmm2,xmm2,xmm0 + vpxor xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[16+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[32+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[48+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[64+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[80+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[96+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[112+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[128+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[144+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[160+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[176+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[192+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[208+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[224+rcx] + vaesdeclast xmm1,xmm1,xmm0 + vaesdeclast xmm2,xmm2,xmm0 + vaesdeclast xmm3,xmm3,xmm0 + vpxor xmm1,xmm1,xmm9 + vpxor xmm2,xmm2,xmm10 + vpxor xmm3,xmm3,xmm11 + vmovdqu XMMWORD[rsi],xmm1 + vmovdqu XMMWORD[16+rsi],xmm2 + add rsi,0x30 + vmovdqa xmm0,xmm12 + vmovdqa xmm8,xmm3 + jmp NEAR $L$_steal_cipher_EmbgEptodyewbFa + +$L$_done_3_EmbgEptodyewbFa: + vpxor xmm1,xmm1,xmm9 + vpxor xmm2,xmm2,xmm10 + vpxor xmm3,xmm3,xmm11 + vmovdqu xmm0,XMMWORD[rcx] + vpxor xmm1,xmm1,xmm0 + vpxor xmm2,xmm2,xmm0 + vpxor xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[16+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[32+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[48+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[64+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[80+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[96+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[112+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[128+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[144+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[160+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[176+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[192+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[208+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vaesdec xmm3,xmm3,xmm0 + vmovdqu xmm0,XMMWORD[224+rcx] + vaesdeclast xmm1,xmm1,xmm0 + vaesdeclast xmm2,xmm2,xmm0 + vaesdeclast xmm3,xmm3,xmm0 + vpxor xmm1,xmm1,xmm9 + vpxor xmm2,xmm2,xmm10 + vpxor xmm3,xmm3,xmm11 + vmovdqu XMMWORD[rsi],xmm1 + vmovdqu XMMWORD[16+rsi],xmm2 + add rsi,0x30 + vmovdqa xmm8,xmm3 + jmp NEAR $L$_done_EmbgEptodyewbFa + +$L$_num_blocks_is_2_EmbgEptodyewbFa: + vmovdqa xmm9,XMMWORD[rsp] + mov rax,QWORD[rsp] + mov rbx,QWORD[8+rsp] + vmovdqu xmm1,XMMWORD[rdi] + xor r11,r11 + shl rax,1 + adc rbx,rbx + cmovc r11,r10 + xor rax,r11 + mov QWORD[16+rsp],rax + mov QWORD[((16 + 8))+rsp],rbx + vmovdqa xmm10,XMMWORD[16+rsp] + vmovdqu xmm2,XMMWORD[16+rdi] + add rdi,0x20 + and rdx,0xf + je NEAR $L$_done_2_EmbgEptodyewbFa + +$L$_steal_cipher_2_EmbgEptodyewbFa: + xor r11,r11 + shl rax,1 + adc rbx,rbx + cmovc r11,r10 + xor rax,r11 + mov QWORD[16+rsp],rax + mov QWORD[24+rsp],rbx + vmovdqa64 xmm11,xmm10 + vmovdqa xmm10,XMMWORD[16+rsp] + vpxor xmm1,xmm1,xmm9 + vpxor xmm2,xmm2,xmm10 + vmovdqu xmm0,XMMWORD[rcx] + vpxor xmm1,xmm1,xmm0 + vpxor xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[16+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[32+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[48+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[64+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[80+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[96+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[112+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[128+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[144+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[160+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[176+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[192+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[208+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[224+rcx] + vaesdeclast xmm1,xmm1,xmm0 + vaesdeclast xmm2,xmm2,xmm0 + vpxor xmm1,xmm1,xmm9 + vpxor xmm2,xmm2,xmm10 + vmovdqu XMMWORD[rsi],xmm1 + add rsi,0x20 + vmovdqa xmm0,xmm11 + vmovdqa xmm8,xmm2 + jmp NEAR $L$_steal_cipher_EmbgEptodyewbFa + +$L$_done_2_EmbgEptodyewbFa: + vpxor xmm1,xmm1,xmm9 + vpxor xmm2,xmm2,xmm10 + vmovdqu xmm0,XMMWORD[rcx] + vpxor xmm1,xmm1,xmm0 + vpxor xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[16+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[32+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[48+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[64+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[80+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[96+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[112+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[128+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[144+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[160+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[176+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[192+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[208+rcx] + vaesdec xmm1,xmm1,xmm0 + vaesdec xmm2,xmm2,xmm0 + vmovdqu xmm0,XMMWORD[224+rcx] + vaesdeclast xmm1,xmm1,xmm0 + vaesdeclast xmm2,xmm2,xmm0 + vpxor xmm1,xmm1,xmm9 + vpxor xmm2,xmm2,xmm10 + vmovdqu XMMWORD[rsi],xmm1 + add rsi,0x20 + vmovdqa xmm8,xmm2 + jmp NEAR $L$_done_EmbgEptodyewbFa + +$L$_num_blocks_is_1_EmbgEptodyewbFa: + vmovdqa xmm9,XMMWORD[rsp] + mov rax,QWORD[rsp] + mov rbx,QWORD[8+rsp] + vmovdqu xmm1,XMMWORD[rdi] + add rdi,0x10 + and rdx,0xf + je NEAR $L$_done_1_EmbgEptodyewbFa + +$L$_steal_cipher_1_EmbgEptodyewbFa: + xor r11,r11 + shl rax,1 + adc rbx,rbx + cmovc r11,r10 + xor rax,r11 + mov QWORD[16+rsp],rax + mov QWORD[24+rsp],rbx + vmovdqa64 xmm10,xmm9 + vmovdqa xmm9,XMMWORD[16+rsp] + vpxor xmm1,xmm1,xmm9 + vmovdqu xmm0,XMMWORD[rcx] + vpxor xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[16+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[32+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[48+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[64+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[80+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[96+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[112+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[128+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[144+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[160+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[176+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[192+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[208+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[224+rcx] + vaesdeclast xmm1,xmm1,xmm0 + vpxor xmm1,xmm1,xmm9 + add rsi,0x10 + vmovdqa xmm0,xmm10 + vmovdqa xmm8,xmm1 + jmp NEAR $L$_steal_cipher_EmbgEptodyewbFa + +$L$_done_1_EmbgEptodyewbFa: + vpxor xmm1,xmm1,xmm9 + vmovdqu xmm0,XMMWORD[rcx] + vpxor xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[16+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[32+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[48+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[64+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[80+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[96+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[112+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[128+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[144+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[160+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[176+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[192+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[208+rcx] + vaesdec xmm1,xmm1,xmm0 + vmovdqu xmm0,XMMWORD[224+rcx] + vaesdeclast xmm1,xmm1,xmm0 + vpxor xmm1,xmm1,xmm9 + add rsi,0x10 + vmovdqa xmm8,xmm1 + jmp NEAR $L$_done_EmbgEptodyewbFa + +section .rdata rdata align=8 +ALIGN 16 + +vpshufb_shf_table: + DQ 0x8786858483828100,0x8f8e8d8c8b8a8988 + DQ 0x0706050403020100,0x000e0d0c0b0a0908 + +mask1: + DQ 0x8080808080808080,0x8080808080808080 + +const_dq3210: + DQ 0,0,1,1,2,2,3,3 +const_dq5678: + DQ 8,8,7,7,6,6,5,5 +const_dq7654: + DQ 4,4,5,5,6,6,7,7 +const_dq1234: + DQ 4,4,3,3,2,2,1,1 + +shufb_15_7: +DB 15,0xff,0xff,0xff,0xff,0xff,0xff,0xff,7,0xff,0xff +DB 0xff,0xff,0xff,0xff,0xff + +section .text code align=64 + diff --git a/deps/openssl/config/archs/VC-WIN64A/asm_avx2/crypto/aes/bsaes-x86_64.asm b/deps/openssl/config/archs/VC-WIN64A/asm_avx2/crypto/aes/bsaes-x86_64.asm index 0755ee4346daea..a10e7650b3ab3c 100644 --- a/deps/openssl/config/archs/VC-WIN64A/asm_avx2/crypto/aes/bsaes-x86_64.asm +++ b/deps/openssl/config/archs/VC-WIN64A/asm_avx2/crypto/aes/bsaes-x86_64.asm @@ -1615,6 +1615,7 @@ global ossl_bsaes_xts_encrypt ALIGN 16 ossl_bsaes_xts_encrypt: +DB 243,15,30,250 mov rax,rsp $L$xts_enc_prologue: push rbp @@ -2110,6 +2111,7 @@ global ossl_bsaes_xts_decrypt ALIGN 16 ossl_bsaes_xts_decrypt: +DB 243,15,30,250 mov rax,rsp $L$xts_dec_prologue: push rbp @@ -2625,6 +2627,7 @@ $L$xts_dec_epilogue: +section .rdata rdata align=64 ALIGN 64 _bsaes_const: $L$M0ISR: @@ -2676,13 +2679,13 @@ $L$M0: DQ 0x02060a0e03070b0f,0x0004080c0105090d $L$63: DQ 0x6363636363636363,0x6363636363636363 +ALIGN 64 + DB 66,105,116,45,115,108,105,99,101,100,32,65,69,83,32,102 DB 111,114,32,120,56,54,95,54,52,47,83,83,83,69,51,44 DB 32,69,109,105,108,105,97,32,75,195,164,115,112,101,114,44 DB 32,80,101,116,101,114,32,83,99,104,119,97,98,101,44,32 DB 65,110,100,121,32,80,111,108,121,97,107,111,118,0 -ALIGN 64 - EXTERN __imp_RtlVirtualUnwind ALIGN 16 diff --git a/deps/openssl/config/archs/VC-WIN64A/asm_avx2/crypto/aes/vpaes-x86_64.asm b/deps/openssl/config/archs/VC-WIN64A/asm_avx2/crypto/aes/vpaes-x86_64.asm index 8fb98f25d2d6f5..8321f694c79c4d 100644 --- a/deps/openssl/config/archs/VC-WIN64A/asm_avx2/crypto/aes/vpaes-x86_64.asm +++ b/deps/openssl/config/archs/VC-WIN64A/asm_avx2/crypto/aes/vpaes-x86_64.asm @@ -941,6 +941,7 @@ _vpaes_preheat: +section .rdata rdata align=64 ALIGN 64 _vpaes_consts: $L$k_inv: @@ -1036,13 +1037,13 @@ $L$k_dsbe: $L$k_dsbo: DQ 0x1387EA537EF94000,0xC7AA6DB9D4943E2D DQ 0x12D7560F93441D00,0xCA4B8159D8C58E9C +ALIGN 64 + DB 86,101,99,116,111,114,32,80,101,114,109,117,116,97,116,105 DB 111,110,32,65,69,83,32,102,111,114,32,120,56,54,95,54 DB 52,47,83,83,83,69,51,44,32,77,105,107,101,32,72,97 DB 109,98,117,114,103,32,40,83,116,97,110,102,111,114,100,32 DB 85,110,105,118,101,114,115,105,116,121,41,0 -ALIGN 64 - EXTERN __imp_RtlVirtualUnwind ALIGN 16 diff --git a/deps/openssl/config/archs/VC-WIN64A/asm_avx2/crypto/bn/rsaz-2k-avx512.asm b/deps/openssl/config/archs/VC-WIN64A/asm_avx2/crypto/bn/rsaz-2k-avx512.asm new file mode 100644 index 00000000000000..553761ef2f1cc3 --- /dev/null +++ b/deps/openssl/config/archs/VC-WIN64A/asm_avx2/crypto/bn/rsaz-2k-avx512.asm @@ -0,0 +1,1024 @@ +default rel +%define XMMWORD +%define YMMWORD +%define ZMMWORD +EXTERN OPENSSL_ia32cap_P +global ossl_rsaz_avx512ifma_eligible + +ALIGN 32 +ossl_rsaz_avx512ifma_eligible: + mov ecx,DWORD[((OPENSSL_ia32cap_P+8))] + xor eax,eax + and ecx,2149777408 + cmp ecx,2149777408 + cmove eax,ecx + DB 0F3h,0C3h ;repret + +section .text code align=64 + + +global ossl_rsaz_amm52x20_x1_ifma256 + +ALIGN 32 +ossl_rsaz_amm52x20_x1_ifma256: + mov QWORD[8+rsp],rdi ;WIN64 prologue + mov QWORD[16+rsp],rsi + mov rax,rsp +$L$SEH_begin_ossl_rsaz_amm52x20_x1_ifma256: + mov rdi,rcx + mov rsi,rdx + mov rdx,r8 + mov rcx,r9 + mov r8,QWORD[40+rsp] + + + +DB 243,15,30,250 + push rbx + + push rbp + + push r12 + + push r13 + + push r14 + + push r15 + +$L$ossl_rsaz_amm52x20_x1_ifma256_body: + + + vpxord ymm0,ymm0,ymm0 + vmovdqa64 ymm3,ymm0 + vmovdqa64 ymm16,ymm0 + vmovdqa64 ymm17,ymm0 + vmovdqa64 ymm18,ymm0 + vmovdqa64 ymm19,ymm0 + + xor r9d,r9d + + mov r11,rdx + mov rax,0xfffffffffffff + + + mov ebx,5 + +ALIGN 32 +$L$loop5: + mov r13,QWORD[r11] + + vpbroadcastq ymm1,r13 + mov rdx,QWORD[rsi] + mulx r12,r13,r13 + add r9,r13 + mov r10,r12 + adc r10,0 + + mov r13,r8 + imul r13,r9 + and r13,rax + + vpbroadcastq ymm2,r13 + mov rdx,QWORD[rcx] + mulx r12,r13,r13 + add r9,r13 + adc r10,r12 + + shr r9,52 + sal r10,12 + or r9,r10 + + vpmadd52luq ymm3,ymm1,YMMWORD[rsi] + vpmadd52luq ymm16,ymm1,YMMWORD[32+rsi] + vpmadd52luq ymm17,ymm1,YMMWORD[64+rsi] + vpmadd52luq ymm18,ymm1,YMMWORD[96+rsi] + vpmadd52luq ymm19,ymm1,YMMWORD[128+rsi] + + vpmadd52luq ymm3,ymm2,YMMWORD[rcx] + vpmadd52luq ymm16,ymm2,YMMWORD[32+rcx] + vpmadd52luq ymm17,ymm2,YMMWORD[64+rcx] + vpmadd52luq ymm18,ymm2,YMMWORD[96+rcx] + vpmadd52luq ymm19,ymm2,YMMWORD[128+rcx] + + + valignq ymm3,ymm16,ymm3,1 + valignq ymm16,ymm17,ymm16,1 + valignq ymm17,ymm18,ymm17,1 + valignq ymm18,ymm19,ymm18,1 + valignq ymm19,ymm0,ymm19,1 + + vmovq r13,xmm3 + add r9,r13 + + vpmadd52huq ymm3,ymm1,YMMWORD[rsi] + vpmadd52huq ymm16,ymm1,YMMWORD[32+rsi] + vpmadd52huq ymm17,ymm1,YMMWORD[64+rsi] + vpmadd52huq ymm18,ymm1,YMMWORD[96+rsi] + vpmadd52huq ymm19,ymm1,YMMWORD[128+rsi] + + vpmadd52huq ymm3,ymm2,YMMWORD[rcx] + vpmadd52huq ymm16,ymm2,YMMWORD[32+rcx] + vpmadd52huq ymm17,ymm2,YMMWORD[64+rcx] + vpmadd52huq ymm18,ymm2,YMMWORD[96+rcx] + vpmadd52huq ymm19,ymm2,YMMWORD[128+rcx] + mov r13,QWORD[8+r11] + + vpbroadcastq ymm1,r13 + mov rdx,QWORD[rsi] + mulx r12,r13,r13 + add r9,r13 + mov r10,r12 + adc r10,0 + + mov r13,r8 + imul r13,r9 + and r13,rax + + vpbroadcastq ymm2,r13 + mov rdx,QWORD[rcx] + mulx r12,r13,r13 + add r9,r13 + adc r10,r12 + + shr r9,52 + sal r10,12 + or r9,r10 + + vpmadd52luq ymm3,ymm1,YMMWORD[rsi] + vpmadd52luq ymm16,ymm1,YMMWORD[32+rsi] + vpmadd52luq ymm17,ymm1,YMMWORD[64+rsi] + vpmadd52luq ymm18,ymm1,YMMWORD[96+rsi] + vpmadd52luq ymm19,ymm1,YMMWORD[128+rsi] + + vpmadd52luq ymm3,ymm2,YMMWORD[rcx] + vpmadd52luq ymm16,ymm2,YMMWORD[32+rcx] + vpmadd52luq ymm17,ymm2,YMMWORD[64+rcx] + vpmadd52luq ymm18,ymm2,YMMWORD[96+rcx] + vpmadd52luq ymm19,ymm2,YMMWORD[128+rcx] + + + valignq ymm3,ymm16,ymm3,1 + valignq ymm16,ymm17,ymm16,1 + valignq ymm17,ymm18,ymm17,1 + valignq ymm18,ymm19,ymm18,1 + valignq ymm19,ymm0,ymm19,1 + + vmovq r13,xmm3 + add r9,r13 + + vpmadd52huq ymm3,ymm1,YMMWORD[rsi] + vpmadd52huq ymm16,ymm1,YMMWORD[32+rsi] + vpmadd52huq ymm17,ymm1,YMMWORD[64+rsi] + vpmadd52huq ymm18,ymm1,YMMWORD[96+rsi] + vpmadd52huq ymm19,ymm1,YMMWORD[128+rsi] + + vpmadd52huq ymm3,ymm2,YMMWORD[rcx] + vpmadd52huq ymm16,ymm2,YMMWORD[32+rcx] + vpmadd52huq ymm17,ymm2,YMMWORD[64+rcx] + vpmadd52huq ymm18,ymm2,YMMWORD[96+rcx] + vpmadd52huq ymm19,ymm2,YMMWORD[128+rcx] + mov r13,QWORD[16+r11] + + vpbroadcastq ymm1,r13 + mov rdx,QWORD[rsi] + mulx r12,r13,r13 + add r9,r13 + mov r10,r12 + adc r10,0 + + mov r13,r8 + imul r13,r9 + and r13,rax + + vpbroadcastq ymm2,r13 + mov rdx,QWORD[rcx] + mulx r12,r13,r13 + add r9,r13 + adc r10,r12 + + shr r9,52 + sal r10,12 + or r9,r10 + + vpmadd52luq ymm3,ymm1,YMMWORD[rsi] + vpmadd52luq ymm16,ymm1,YMMWORD[32+rsi] + vpmadd52luq ymm17,ymm1,YMMWORD[64+rsi] + vpmadd52luq ymm18,ymm1,YMMWORD[96+rsi] + vpmadd52luq ymm19,ymm1,YMMWORD[128+rsi] + + vpmadd52luq ymm3,ymm2,YMMWORD[rcx] + vpmadd52luq ymm16,ymm2,YMMWORD[32+rcx] + vpmadd52luq ymm17,ymm2,YMMWORD[64+rcx] + vpmadd52luq ymm18,ymm2,YMMWORD[96+rcx] + vpmadd52luq ymm19,ymm2,YMMWORD[128+rcx] + + + valignq ymm3,ymm16,ymm3,1 + valignq ymm16,ymm17,ymm16,1 + valignq ymm17,ymm18,ymm17,1 + valignq ymm18,ymm19,ymm18,1 + valignq ymm19,ymm0,ymm19,1 + + vmovq r13,xmm3 + add r9,r13 + + vpmadd52huq ymm3,ymm1,YMMWORD[rsi] + vpmadd52huq ymm16,ymm1,YMMWORD[32+rsi] + vpmadd52huq ymm17,ymm1,YMMWORD[64+rsi] + vpmadd52huq ymm18,ymm1,YMMWORD[96+rsi] + vpmadd52huq ymm19,ymm1,YMMWORD[128+rsi] + + vpmadd52huq ymm3,ymm2,YMMWORD[rcx] + vpmadd52huq ymm16,ymm2,YMMWORD[32+rcx] + vpmadd52huq ymm17,ymm2,YMMWORD[64+rcx] + vpmadd52huq ymm18,ymm2,YMMWORD[96+rcx] + vpmadd52huq ymm19,ymm2,YMMWORD[128+rcx] + mov r13,QWORD[24+r11] + + vpbroadcastq ymm1,r13 + mov rdx,QWORD[rsi] + mulx r12,r13,r13 + add r9,r13 + mov r10,r12 + adc r10,0 + + mov r13,r8 + imul r13,r9 + and r13,rax + + vpbroadcastq ymm2,r13 + mov rdx,QWORD[rcx] + mulx r12,r13,r13 + add r9,r13 + adc r10,r12 + + shr r9,52 + sal r10,12 + or r9,r10 + + vpmadd52luq ymm3,ymm1,YMMWORD[rsi] + vpmadd52luq ymm16,ymm1,YMMWORD[32+rsi] + vpmadd52luq ymm17,ymm1,YMMWORD[64+rsi] + vpmadd52luq ymm18,ymm1,YMMWORD[96+rsi] + vpmadd52luq ymm19,ymm1,YMMWORD[128+rsi] + + vpmadd52luq ymm3,ymm2,YMMWORD[rcx] + vpmadd52luq ymm16,ymm2,YMMWORD[32+rcx] + vpmadd52luq ymm17,ymm2,YMMWORD[64+rcx] + vpmadd52luq ymm18,ymm2,YMMWORD[96+rcx] + vpmadd52luq ymm19,ymm2,YMMWORD[128+rcx] + + + valignq ymm3,ymm16,ymm3,1 + valignq ymm16,ymm17,ymm16,1 + valignq ymm17,ymm18,ymm17,1 + valignq ymm18,ymm19,ymm18,1 + valignq ymm19,ymm0,ymm19,1 + + vmovq r13,xmm3 + add r9,r13 + + vpmadd52huq ymm3,ymm1,YMMWORD[rsi] + vpmadd52huq ymm16,ymm1,YMMWORD[32+rsi] + vpmadd52huq ymm17,ymm1,YMMWORD[64+rsi] + vpmadd52huq ymm18,ymm1,YMMWORD[96+rsi] + vpmadd52huq ymm19,ymm1,YMMWORD[128+rsi] + + vpmadd52huq ymm3,ymm2,YMMWORD[rcx] + vpmadd52huq ymm16,ymm2,YMMWORD[32+rcx] + vpmadd52huq ymm17,ymm2,YMMWORD[64+rcx] + vpmadd52huq ymm18,ymm2,YMMWORD[96+rcx] + vpmadd52huq ymm19,ymm2,YMMWORD[128+rcx] + lea r11,[32+r11] + dec ebx + jne NEAR $L$loop5 + + vpbroadcastq ymm0,r9 + vpblendd ymm3,ymm3,ymm0,3 + + + + vpsrlq ymm0,ymm3,52 + vpsrlq ymm1,ymm16,52 + vpsrlq ymm2,ymm17,52 + vpsrlq ymm25,ymm18,52 + vpsrlq ymm26,ymm19,52 + + + valignq ymm26,ymm26,ymm25,3 + valignq ymm25,ymm25,ymm2,3 + valignq ymm2,ymm2,ymm1,3 + valignq ymm1,ymm1,ymm0,3 + valignq ymm0,ymm0,YMMWORD[$L$zeros],3 + + + vpandq ymm3,ymm3,YMMWORD[$L$mask52x4] + vpandq ymm16,ymm16,YMMWORD[$L$mask52x4] + vpandq ymm17,ymm17,YMMWORD[$L$mask52x4] + vpandq ymm18,ymm18,YMMWORD[$L$mask52x4] + vpandq ymm19,ymm19,YMMWORD[$L$mask52x4] + + + vpaddq ymm3,ymm3,ymm0 + vpaddq ymm16,ymm16,ymm1 + vpaddq ymm17,ymm17,ymm2 + vpaddq ymm18,ymm18,ymm25 + vpaddq ymm19,ymm19,ymm26 + + + + vpcmpuq k1,ymm3,YMMWORD[$L$mask52x4],6 + vpcmpuq k2,ymm16,YMMWORD[$L$mask52x4],6 + vpcmpuq k3,ymm17,YMMWORD[$L$mask52x4],6 + vpcmpuq k4,ymm18,YMMWORD[$L$mask52x4],6 + vpcmpuq k5,ymm19,YMMWORD[$L$mask52x4],6 + kmovb r14d,k1 + kmovb r13d,k2 + kmovb r12d,k3 + kmovb r11d,k4 + kmovb r10d,k5 + + + vpcmpuq k1,ymm3,YMMWORD[$L$mask52x4],0 + vpcmpuq k2,ymm16,YMMWORD[$L$mask52x4],0 + vpcmpuq k3,ymm17,YMMWORD[$L$mask52x4],0 + vpcmpuq k4,ymm18,YMMWORD[$L$mask52x4],0 + vpcmpuq k5,ymm19,YMMWORD[$L$mask52x4],0 + kmovb r9d,k1 + kmovb r8d,k2 + kmovb ebx,k3 + kmovb ecx,k4 + kmovb edx,k5 + + + + shl r13b,4 + or r14b,r13b + shl r11b,4 + or r12b,r11b + + add r14b,r14b + adc r12b,r12b + adc r10b,r10b + + shl r8b,4 + or r9b,r8b + shl cl,4 + or bl,cl + + add r14b,r9b + adc r12b,bl + adc r10b,dl + + xor r14b,r9b + xor r12b,bl + xor r10b,dl + + kmovb k1,r14d + shr r14b,4 + kmovb k2,r14d + kmovb k3,r12d + shr r12b,4 + kmovb k4,r12d + kmovb k5,r10d + + + vpsubq ymm3{k1},ymm3,YMMWORD[$L$mask52x4] + vpsubq ymm16{k2},ymm16,YMMWORD[$L$mask52x4] + vpsubq ymm17{k3},ymm17,YMMWORD[$L$mask52x4] + vpsubq ymm18{k4},ymm18,YMMWORD[$L$mask52x4] + vpsubq ymm19{k5},ymm19,YMMWORD[$L$mask52x4] + + vpandq ymm3,ymm3,YMMWORD[$L$mask52x4] + vpandq ymm16,ymm16,YMMWORD[$L$mask52x4] + vpandq ymm17,ymm17,YMMWORD[$L$mask52x4] + vpandq ymm18,ymm18,YMMWORD[$L$mask52x4] + vpandq ymm19,ymm19,YMMWORD[$L$mask52x4] + + vmovdqu64 YMMWORD[rdi],ymm3 + vmovdqu64 YMMWORD[32+rdi],ymm16 + vmovdqu64 YMMWORD[64+rdi],ymm17 + vmovdqu64 YMMWORD[96+rdi],ymm18 + vmovdqu64 YMMWORD[128+rdi],ymm19 + + vzeroupper + mov r15,QWORD[rsp] + + mov r14,QWORD[8+rsp] + + mov r13,QWORD[16+rsp] + + mov r12,QWORD[24+rsp] + + mov rbp,QWORD[32+rsp] + + mov rbx,QWORD[40+rsp] + + lea rsp,[48+rsp] + +$L$ossl_rsaz_amm52x20_x1_ifma256_epilogue: + mov rdi,QWORD[8+rsp] ;WIN64 epilogue + mov rsi,QWORD[16+rsp] + DB 0F3h,0C3h ;repret + +$L$SEH_end_ossl_rsaz_amm52x20_x1_ifma256: +section .rdata rdata align=32 +ALIGN 32 +$L$mask52x4: + DQ 0xfffffffffffff + DQ 0xfffffffffffff + DQ 0xfffffffffffff + DQ 0xfffffffffffff +section .text code align=64 + + +global ossl_rsaz_amm52x20_x2_ifma256 + +ALIGN 32 +ossl_rsaz_amm52x20_x2_ifma256: + mov QWORD[8+rsp],rdi ;WIN64 prologue + mov QWORD[16+rsp],rsi + mov rax,rsp +$L$SEH_begin_ossl_rsaz_amm52x20_x2_ifma256: + mov rdi,rcx + mov rsi,rdx + mov rdx,r8 + mov rcx,r9 + mov r8,QWORD[40+rsp] + + + +DB 243,15,30,250 + push rbx + + push rbp + + push r12 + + push r13 + + push r14 + + push r15 + +$L$ossl_rsaz_amm52x20_x2_ifma256_body: + + + vpxord ymm0,ymm0,ymm0 + vmovdqa64 ymm3,ymm0 + vmovdqa64 ymm16,ymm0 + vmovdqa64 ymm17,ymm0 + vmovdqa64 ymm18,ymm0 + vmovdqa64 ymm19,ymm0 + vmovdqa64 ymm4,ymm0 + vmovdqa64 ymm20,ymm0 + vmovdqa64 ymm21,ymm0 + vmovdqa64 ymm22,ymm0 + vmovdqa64 ymm23,ymm0 + + xor r9d,r9d + xor r15d,r15d + + mov r11,rdx + mov rax,0xfffffffffffff + + mov ebx,20 + +ALIGN 32 +$L$loop20: + mov r13,QWORD[r11] + + vpbroadcastq ymm1,r13 + mov rdx,QWORD[rsi] + mulx r12,r13,r13 + add r9,r13 + mov r10,r12 + adc r10,0 + + mov r13,QWORD[r8] + imul r13,r9 + and r13,rax + + vpbroadcastq ymm2,r13 + mov rdx,QWORD[rcx] + mulx r12,r13,r13 + add r9,r13 + adc r10,r12 + + shr r9,52 + sal r10,12 + or r9,r10 + + vpmadd52luq ymm3,ymm1,YMMWORD[rsi] + vpmadd52luq ymm16,ymm1,YMMWORD[32+rsi] + vpmadd52luq ymm17,ymm1,YMMWORD[64+rsi] + vpmadd52luq ymm18,ymm1,YMMWORD[96+rsi] + vpmadd52luq ymm19,ymm1,YMMWORD[128+rsi] + + vpmadd52luq ymm3,ymm2,YMMWORD[rcx] + vpmadd52luq ymm16,ymm2,YMMWORD[32+rcx] + vpmadd52luq ymm17,ymm2,YMMWORD[64+rcx] + vpmadd52luq ymm18,ymm2,YMMWORD[96+rcx] + vpmadd52luq ymm19,ymm2,YMMWORD[128+rcx] + + + valignq ymm3,ymm16,ymm3,1 + valignq ymm16,ymm17,ymm16,1 + valignq ymm17,ymm18,ymm17,1 + valignq ymm18,ymm19,ymm18,1 + valignq ymm19,ymm0,ymm19,1 + + vmovq r13,xmm3 + add r9,r13 + + vpmadd52huq ymm3,ymm1,YMMWORD[rsi] + vpmadd52huq ymm16,ymm1,YMMWORD[32+rsi] + vpmadd52huq ymm17,ymm1,YMMWORD[64+rsi] + vpmadd52huq ymm18,ymm1,YMMWORD[96+rsi] + vpmadd52huq ymm19,ymm1,YMMWORD[128+rsi] + + vpmadd52huq ymm3,ymm2,YMMWORD[rcx] + vpmadd52huq ymm16,ymm2,YMMWORD[32+rcx] + vpmadd52huq ymm17,ymm2,YMMWORD[64+rcx] + vpmadd52huq ymm18,ymm2,YMMWORD[96+rcx] + vpmadd52huq ymm19,ymm2,YMMWORD[128+rcx] + mov r13,QWORD[160+r11] + + vpbroadcastq ymm1,r13 + mov rdx,QWORD[160+rsi] + mulx r12,r13,r13 + add r15,r13 + mov r10,r12 + adc r10,0 + + mov r13,QWORD[8+r8] + imul r13,r15 + and r13,rax + + vpbroadcastq ymm2,r13 + mov rdx,QWORD[160+rcx] + mulx r12,r13,r13 + add r15,r13 + adc r10,r12 + + shr r15,52 + sal r10,12 + or r15,r10 + + vpmadd52luq ymm4,ymm1,YMMWORD[160+rsi] + vpmadd52luq ymm20,ymm1,YMMWORD[192+rsi] + vpmadd52luq ymm21,ymm1,YMMWORD[224+rsi] + vpmadd52luq ymm22,ymm1,YMMWORD[256+rsi] + vpmadd52luq ymm23,ymm1,YMMWORD[288+rsi] + + vpmadd52luq ymm4,ymm2,YMMWORD[160+rcx] + vpmadd52luq ymm20,ymm2,YMMWORD[192+rcx] + vpmadd52luq ymm21,ymm2,YMMWORD[224+rcx] + vpmadd52luq ymm22,ymm2,YMMWORD[256+rcx] + vpmadd52luq ymm23,ymm2,YMMWORD[288+rcx] + + + valignq ymm4,ymm20,ymm4,1 + valignq ymm20,ymm21,ymm20,1 + valignq ymm21,ymm22,ymm21,1 + valignq ymm22,ymm23,ymm22,1 + valignq ymm23,ymm0,ymm23,1 + + vmovq r13,xmm4 + add r15,r13 + + vpmadd52huq ymm4,ymm1,YMMWORD[160+rsi] + vpmadd52huq ymm20,ymm1,YMMWORD[192+rsi] + vpmadd52huq ymm21,ymm1,YMMWORD[224+rsi] + vpmadd52huq ymm22,ymm1,YMMWORD[256+rsi] + vpmadd52huq ymm23,ymm1,YMMWORD[288+rsi] + + vpmadd52huq ymm4,ymm2,YMMWORD[160+rcx] + vpmadd52huq ymm20,ymm2,YMMWORD[192+rcx] + vpmadd52huq ymm21,ymm2,YMMWORD[224+rcx] + vpmadd52huq ymm22,ymm2,YMMWORD[256+rcx] + vpmadd52huq ymm23,ymm2,YMMWORD[288+rcx] + lea r11,[8+r11] + dec ebx + jne NEAR $L$loop20 + + vpbroadcastq ymm0,r9 + vpblendd ymm3,ymm3,ymm0,3 + + + + vpsrlq ymm0,ymm3,52 + vpsrlq ymm1,ymm16,52 + vpsrlq ymm2,ymm17,52 + vpsrlq ymm25,ymm18,52 + vpsrlq ymm26,ymm19,52 + + + valignq ymm26,ymm26,ymm25,3 + valignq ymm25,ymm25,ymm2,3 + valignq ymm2,ymm2,ymm1,3 + valignq ymm1,ymm1,ymm0,3 + valignq ymm0,ymm0,YMMWORD[$L$zeros],3 + + + vpandq ymm3,ymm3,YMMWORD[$L$mask52x4] + vpandq ymm16,ymm16,YMMWORD[$L$mask52x4] + vpandq ymm17,ymm17,YMMWORD[$L$mask52x4] + vpandq ymm18,ymm18,YMMWORD[$L$mask52x4] + vpandq ymm19,ymm19,YMMWORD[$L$mask52x4] + + + vpaddq ymm3,ymm3,ymm0 + vpaddq ymm16,ymm16,ymm1 + vpaddq ymm17,ymm17,ymm2 + vpaddq ymm18,ymm18,ymm25 + vpaddq ymm19,ymm19,ymm26 + + + + vpcmpuq k1,ymm3,YMMWORD[$L$mask52x4],6 + vpcmpuq k2,ymm16,YMMWORD[$L$mask52x4],6 + vpcmpuq k3,ymm17,YMMWORD[$L$mask52x4],6 + vpcmpuq k4,ymm18,YMMWORD[$L$mask52x4],6 + vpcmpuq k5,ymm19,YMMWORD[$L$mask52x4],6 + kmovb r14d,k1 + kmovb r13d,k2 + kmovb r12d,k3 + kmovb r11d,k4 + kmovb r10d,k5 + + + vpcmpuq k1,ymm3,YMMWORD[$L$mask52x4],0 + vpcmpuq k2,ymm16,YMMWORD[$L$mask52x4],0 + vpcmpuq k3,ymm17,YMMWORD[$L$mask52x4],0 + vpcmpuq k4,ymm18,YMMWORD[$L$mask52x4],0 + vpcmpuq k5,ymm19,YMMWORD[$L$mask52x4],0 + kmovb r9d,k1 + kmovb r8d,k2 + kmovb ebx,k3 + kmovb ecx,k4 + kmovb edx,k5 + + + + shl r13b,4 + or r14b,r13b + shl r11b,4 + or r12b,r11b + + add r14b,r14b + adc r12b,r12b + adc r10b,r10b + + shl r8b,4 + or r9b,r8b + shl cl,4 + or bl,cl + + add r14b,r9b + adc r12b,bl + adc r10b,dl + + xor r14b,r9b + xor r12b,bl + xor r10b,dl + + kmovb k1,r14d + shr r14b,4 + kmovb k2,r14d + kmovb k3,r12d + shr r12b,4 + kmovb k4,r12d + kmovb k5,r10d + + + vpsubq ymm3{k1},ymm3,YMMWORD[$L$mask52x4] + vpsubq ymm16{k2},ymm16,YMMWORD[$L$mask52x4] + vpsubq ymm17{k3},ymm17,YMMWORD[$L$mask52x4] + vpsubq ymm18{k4},ymm18,YMMWORD[$L$mask52x4] + vpsubq ymm19{k5},ymm19,YMMWORD[$L$mask52x4] + + vpandq ymm3,ymm3,YMMWORD[$L$mask52x4] + vpandq ymm16,ymm16,YMMWORD[$L$mask52x4] + vpandq ymm17,ymm17,YMMWORD[$L$mask52x4] + vpandq ymm18,ymm18,YMMWORD[$L$mask52x4] + vpandq ymm19,ymm19,YMMWORD[$L$mask52x4] + + vpbroadcastq ymm0,r15 + vpblendd ymm4,ymm4,ymm0,3 + + + + vpsrlq ymm0,ymm4,52 + vpsrlq ymm1,ymm20,52 + vpsrlq ymm2,ymm21,52 + vpsrlq ymm25,ymm22,52 + vpsrlq ymm26,ymm23,52 + + + valignq ymm26,ymm26,ymm25,3 + valignq ymm25,ymm25,ymm2,3 + valignq ymm2,ymm2,ymm1,3 + valignq ymm1,ymm1,ymm0,3 + valignq ymm0,ymm0,YMMWORD[$L$zeros],3 + + + vpandq ymm4,ymm4,YMMWORD[$L$mask52x4] + vpandq ymm20,ymm20,YMMWORD[$L$mask52x4] + vpandq ymm21,ymm21,YMMWORD[$L$mask52x4] + vpandq ymm22,ymm22,YMMWORD[$L$mask52x4] + vpandq ymm23,ymm23,YMMWORD[$L$mask52x4] + + + vpaddq ymm4,ymm4,ymm0 + vpaddq ymm20,ymm20,ymm1 + vpaddq ymm21,ymm21,ymm2 + vpaddq ymm22,ymm22,ymm25 + vpaddq ymm23,ymm23,ymm26 + + + + vpcmpuq k1,ymm4,YMMWORD[$L$mask52x4],6 + vpcmpuq k2,ymm20,YMMWORD[$L$mask52x4],6 + vpcmpuq k3,ymm21,YMMWORD[$L$mask52x4],6 + vpcmpuq k4,ymm22,YMMWORD[$L$mask52x4],6 + vpcmpuq k5,ymm23,YMMWORD[$L$mask52x4],6 + kmovb r14d,k1 + kmovb r13d,k2 + kmovb r12d,k3 + kmovb r11d,k4 + kmovb r10d,k5 + + + vpcmpuq k1,ymm4,YMMWORD[$L$mask52x4],0 + vpcmpuq k2,ymm20,YMMWORD[$L$mask52x4],0 + vpcmpuq k3,ymm21,YMMWORD[$L$mask52x4],0 + vpcmpuq k4,ymm22,YMMWORD[$L$mask52x4],0 + vpcmpuq k5,ymm23,YMMWORD[$L$mask52x4],0 + kmovb r9d,k1 + kmovb r8d,k2 + kmovb ebx,k3 + kmovb ecx,k4 + kmovb edx,k5 + + + + shl r13b,4 + or r14b,r13b + shl r11b,4 + or r12b,r11b + + add r14b,r14b + adc r12b,r12b + adc r10b,r10b + + shl r8b,4 + or r9b,r8b + shl cl,4 + or bl,cl + + add r14b,r9b + adc r12b,bl + adc r10b,dl + + xor r14b,r9b + xor r12b,bl + xor r10b,dl + + kmovb k1,r14d + shr r14b,4 + kmovb k2,r14d + kmovb k3,r12d + shr r12b,4 + kmovb k4,r12d + kmovb k5,r10d + + + vpsubq ymm4{k1},ymm4,YMMWORD[$L$mask52x4] + vpsubq ymm20{k2},ymm20,YMMWORD[$L$mask52x4] + vpsubq ymm21{k3},ymm21,YMMWORD[$L$mask52x4] + vpsubq ymm22{k4},ymm22,YMMWORD[$L$mask52x4] + vpsubq ymm23{k5},ymm23,YMMWORD[$L$mask52x4] + + vpandq ymm4,ymm4,YMMWORD[$L$mask52x4] + vpandq ymm20,ymm20,YMMWORD[$L$mask52x4] + vpandq ymm21,ymm21,YMMWORD[$L$mask52x4] + vpandq ymm22,ymm22,YMMWORD[$L$mask52x4] + vpandq ymm23,ymm23,YMMWORD[$L$mask52x4] + + vmovdqu64 YMMWORD[rdi],ymm3 + vmovdqu64 YMMWORD[32+rdi],ymm16 + vmovdqu64 YMMWORD[64+rdi],ymm17 + vmovdqu64 YMMWORD[96+rdi],ymm18 + vmovdqu64 YMMWORD[128+rdi],ymm19 + + vmovdqu64 YMMWORD[160+rdi],ymm4 + vmovdqu64 YMMWORD[192+rdi],ymm20 + vmovdqu64 YMMWORD[224+rdi],ymm21 + vmovdqu64 YMMWORD[256+rdi],ymm22 + vmovdqu64 YMMWORD[288+rdi],ymm23 + + vzeroupper + mov r15,QWORD[rsp] + + mov r14,QWORD[8+rsp] + + mov r13,QWORD[16+rsp] + + mov r12,QWORD[24+rsp] + + mov rbp,QWORD[32+rsp] + + mov rbx,QWORD[40+rsp] + + lea rsp,[48+rsp] + +$L$ossl_rsaz_amm52x20_x2_ifma256_epilogue: + mov rdi,QWORD[8+rsp] ;WIN64 epilogue + mov rsi,QWORD[16+rsp] + DB 0F3h,0C3h ;repret + +$L$SEH_end_ossl_rsaz_amm52x20_x2_ifma256: +section .text code align=64 + + +ALIGN 32 +global ossl_extract_multiplier_2x20_win5 + +ossl_extract_multiplier_2x20_win5: + +DB 243,15,30,250 + vmovdqa64 ymm24,YMMWORD[$L$ones] + vpbroadcastq ymm22,r8 + vpbroadcastq ymm23,r9 + lea rax,[10240+rdx] + + + vpxor xmm0,xmm0,xmm0 + vmovdqa64 ymm21,ymm0 + vmovdqa64 ymm1,ymm0 + vmovdqa64 ymm2,ymm0 + vmovdqa64 ymm3,ymm0 + vmovdqa64 ymm4,ymm0 + vmovdqa64 ymm5,ymm0 + vmovdqa64 ymm16,ymm0 + vmovdqa64 ymm17,ymm0 + vmovdqa64 ymm18,ymm0 + vmovdqa64 ymm19,ymm0 + +ALIGN 32 +$L$loop: + vpcmpq k1,ymm22,ymm21,0 + vpcmpq k2,ymm23,ymm21,0 + vmovdqu64 ymm20,YMMWORD[rdx] + vpblendmq ymm0{k1},ymm0,ymm20 + vmovdqu64 ymm20,YMMWORD[32+rdx] + vpblendmq ymm1{k1},ymm1,ymm20 + vmovdqu64 ymm20,YMMWORD[64+rdx] + vpblendmq ymm2{k1},ymm2,ymm20 + vmovdqu64 ymm20,YMMWORD[96+rdx] + vpblendmq ymm3{k1},ymm3,ymm20 + vmovdqu64 ymm20,YMMWORD[128+rdx] + vpblendmq ymm4{k1},ymm4,ymm20 + vmovdqu64 ymm20,YMMWORD[160+rdx] + vpblendmq ymm5{k2},ymm5,ymm20 + vmovdqu64 ymm20,YMMWORD[192+rdx] + vpblendmq ymm16{k2},ymm16,ymm20 + vmovdqu64 ymm20,YMMWORD[224+rdx] + vpblendmq ymm17{k2},ymm17,ymm20 + vmovdqu64 ymm20,YMMWORD[256+rdx] + vpblendmq ymm18{k2},ymm18,ymm20 + vmovdqu64 ymm20,YMMWORD[288+rdx] + vpblendmq ymm19{k2},ymm19,ymm20 + vpaddq ymm21,ymm21,ymm24 + add rdx,320 + cmp rax,rdx + jne NEAR $L$loop + vmovdqu64 YMMWORD[rcx],ymm0 + vmovdqu64 YMMWORD[32+rcx],ymm1 + vmovdqu64 YMMWORD[64+rcx],ymm2 + vmovdqu64 YMMWORD[96+rcx],ymm3 + vmovdqu64 YMMWORD[128+rcx],ymm4 + vmovdqu64 YMMWORD[160+rcx],ymm5 + vmovdqu64 YMMWORD[192+rcx],ymm16 + vmovdqu64 YMMWORD[224+rcx],ymm17 + vmovdqu64 YMMWORD[256+rcx],ymm18 + vmovdqu64 YMMWORD[288+rcx],ymm19 + DB 0F3h,0C3h ;repret + + +section .rdata rdata align=32 +ALIGN 32 +$L$ones: + DQ 1,1,1,1 +$L$zeros: + DQ 0,0,0,0 +EXTERN __imp_RtlVirtualUnwind + +ALIGN 16 +rsaz_def_handler: + push rsi + push rdi + push rbx + push rbp + push r12 + push r13 + push r14 + push r15 + pushfq + sub rsp,64 + + mov rax,QWORD[120+r8] + mov rbx,QWORD[248+r8] + + mov rsi,QWORD[8+r9] + mov r11,QWORD[56+r9] + + mov r10d,DWORD[r11] + lea r10,[r10*1+rsi] + cmp rbx,r10 + jb NEAR $L$common_seh_tail + + mov rax,QWORD[152+r8] + + mov r10d,DWORD[4+r11] + lea r10,[r10*1+rsi] + cmp rbx,r10 + jae NEAR $L$common_seh_tail + + lea rax,[48+rax] + + mov rbx,QWORD[((-8))+rax] + mov rbp,QWORD[((-16))+rax] + mov r12,QWORD[((-24))+rax] + mov r13,QWORD[((-32))+rax] + mov r14,QWORD[((-40))+rax] + mov r15,QWORD[((-48))+rax] + mov QWORD[144+r8],rbx + mov QWORD[160+r8],rbp + mov QWORD[216+r8],r12 + mov QWORD[224+r8],r13 + mov QWORD[232+r8],r14 + mov QWORD[240+r8],r15 + +$L$common_seh_tail: + mov rdi,QWORD[8+rax] + mov rsi,QWORD[16+rax] + mov QWORD[152+r8],rax + mov QWORD[168+r8],rsi + mov QWORD[176+r8],rdi + + mov rdi,QWORD[40+r9] + mov rsi,r8 + mov ecx,154 + DD 0xa548f3fc + + mov rsi,r9 + xor rcx,rcx + mov rdx,QWORD[8+rsi] + mov r8,QWORD[rsi] + mov r9,QWORD[16+rsi] + mov r10,QWORD[40+rsi] + lea r11,[56+rsi] + lea r12,[24+rsi] + mov QWORD[32+rsp],r10 + mov QWORD[40+rsp],r11 + mov QWORD[48+rsp],r12 + mov QWORD[56+rsp],rcx + call QWORD[__imp_RtlVirtualUnwind] + + mov eax,1 + add rsp,64 + popfq + pop r15 + pop r14 + pop r13 + pop r12 + pop rbp + pop rbx + pop rdi + pop rsi + DB 0F3h,0C3h ;repret + + +section .pdata rdata align=4 +ALIGN 4 + DD $L$SEH_begin_ossl_rsaz_amm52x20_x1_ifma256 wrt ..imagebase + DD $L$SEH_end_ossl_rsaz_amm52x20_x1_ifma256 wrt ..imagebase + DD $L$SEH_info_ossl_rsaz_amm52x20_x1_ifma256 wrt ..imagebase + + DD $L$SEH_begin_ossl_rsaz_amm52x20_x2_ifma256 wrt ..imagebase + DD $L$SEH_end_ossl_rsaz_amm52x20_x2_ifma256 wrt ..imagebase + DD $L$SEH_info_ossl_rsaz_amm52x20_x2_ifma256 wrt ..imagebase + +section .xdata rdata align=8 +ALIGN 8 +$L$SEH_info_ossl_rsaz_amm52x20_x1_ifma256: +DB 9,0,0,0 + DD rsaz_def_handler wrt ..imagebase + DD $L$ossl_rsaz_amm52x20_x1_ifma256_body wrt ..imagebase,$L$ossl_rsaz_amm52x20_x1_ifma256_epilogue wrt ..imagebase +$L$SEH_info_ossl_rsaz_amm52x20_x2_ifma256: +DB 9,0,0,0 + DD rsaz_def_handler wrt ..imagebase + DD $L$ossl_rsaz_amm52x20_x2_ifma256_body wrt ..imagebase,$L$ossl_rsaz_amm52x20_x2_ifma256_epilogue wrt ..imagebase diff --git a/deps/openssl/config/archs/VC-WIN64A/asm_avx2/crypto/bn/rsaz-2k-avxifma.asm b/deps/openssl/config/archs/VC-WIN64A/asm_avx2/crypto/bn/rsaz-2k-avxifma.asm new file mode 100644 index 00000000000000..0041c71f3d0b62 --- /dev/null +++ b/deps/openssl/config/archs/VC-WIN64A/asm_avx2/crypto/bn/rsaz-2k-avxifma.asm @@ -0,0 +1,24 @@ +default rel +%define XMMWORD +%define YMMWORD +%define ZMMWORD +section .text code align=64 + + +global ossl_rsaz_avxifma_eligible + +ossl_rsaz_avxifma_eligible: + xor eax,eax + DB 0F3h,0C3h ;repret + + +global ossl_rsaz_amm52x20_x1_avxifma256 +global ossl_rsaz_amm52x20_x2_avxifma256 +global ossl_extract_multiplier_2x20_win5_avx + +ossl_rsaz_amm52x20_x1_avxifma256: +ossl_rsaz_amm52x20_x2_avxifma256: +ossl_extract_multiplier_2x20_win5_avx: +DB 0x0f,0x0b + DB 0F3h,0C3h ;repret + diff --git a/deps/openssl/config/archs/VC-WIN64A/asm_avx2/crypto/bn/rsaz-3k-avx512.asm b/deps/openssl/config/archs/VC-WIN64A/asm_avx2/crypto/bn/rsaz-3k-avx512.asm new file mode 100644 index 00000000000000..0865c61efbc872 --- /dev/null +++ b/deps/openssl/config/archs/VC-WIN64A/asm_avx2/crypto/bn/rsaz-3k-avx512.asm @@ -0,0 +1,1490 @@ +default rel +%define XMMWORD +%define YMMWORD +%define ZMMWORD +section .text code align=64 + + +global ossl_rsaz_amm52x30_x1_ifma256 + +ALIGN 32 +ossl_rsaz_amm52x30_x1_ifma256: + mov QWORD[8+rsp],rdi ;WIN64 prologue + mov QWORD[16+rsp],rsi + mov rax,rsp +$L$SEH_begin_ossl_rsaz_amm52x30_x1_ifma256: + mov rdi,rcx + mov rsi,rdx + mov rdx,r8 + mov rcx,r9 + mov r8,QWORD[40+rsp] + + + +DB 243,15,30,250 + push rbx + + push rbp + + push r12 + + push r13 + + push r14 + + push r15 + + lea rsp,[((-168))+rsp] + vmovdqa64 XMMWORD[rsp],xmm6 + vmovdqa64 XMMWORD[16+rsp],xmm7 + vmovdqa64 XMMWORD[32+rsp],xmm8 + vmovdqa64 XMMWORD[48+rsp],xmm9 + vmovdqa64 XMMWORD[64+rsp],xmm10 + vmovdqa64 XMMWORD[80+rsp],xmm11 + vmovdqa64 XMMWORD[96+rsp],xmm12 + vmovdqa64 XMMWORD[112+rsp],xmm13 + vmovdqa64 XMMWORD[128+rsp],xmm14 + vmovdqa64 XMMWORD[144+rsp],xmm15 +$L$ossl_rsaz_amm52x30_x1_ifma256_body: + + vpxord ymm0,ymm0,ymm0 + vmovdqa64 ymm3,ymm0 + vmovdqa64 ymm4,ymm0 + vmovdqa64 ymm5,ymm0 + vmovdqa64 ymm6,ymm0 + vmovdqa64 ymm7,ymm0 + vmovdqa64 ymm8,ymm0 + vmovdqa64 ymm9,ymm0 + vmovdqa64 ymm10,ymm0 + + xor r9d,r9d + + mov r11,rdx + mov rax,0xfffffffffffff + + + mov ebx,7 + +ALIGN 32 +$L$loop7: + mov r13,QWORD[r11] + + vpbroadcastq ymm1,r13 + mov rdx,QWORD[rsi] + mulx r12,r13,r13 + add r9,r13 + mov r10,r12 + adc r10,0 + + mov r13,r8 + imul r13,r9 + and r13,rax + + vpbroadcastq ymm2,r13 + mov rdx,QWORD[rcx] + mulx r12,r13,r13 + add r9,r13 + adc r10,r12 + + shr r9,52 + sal r10,12 + or r9,r10 + + vpmadd52luq ymm3,ymm1,YMMWORD[rsi] + vpmadd52luq ymm4,ymm1,YMMWORD[32+rsi] + vpmadd52luq ymm5,ymm1,YMMWORD[64+rsi] + vpmadd52luq ymm6,ymm1,YMMWORD[96+rsi] + vpmadd52luq ymm7,ymm1,YMMWORD[128+rsi] + vpmadd52luq ymm8,ymm1,YMMWORD[160+rsi] + vpmadd52luq ymm9,ymm1,YMMWORD[192+rsi] + vpmadd52luq ymm10,ymm1,YMMWORD[224+rsi] + + vpmadd52luq ymm3,ymm2,YMMWORD[rcx] + vpmadd52luq ymm4,ymm2,YMMWORD[32+rcx] + vpmadd52luq ymm5,ymm2,YMMWORD[64+rcx] + vpmadd52luq ymm6,ymm2,YMMWORD[96+rcx] + vpmadd52luq ymm7,ymm2,YMMWORD[128+rcx] + vpmadd52luq ymm8,ymm2,YMMWORD[160+rcx] + vpmadd52luq ymm9,ymm2,YMMWORD[192+rcx] + vpmadd52luq ymm10,ymm2,YMMWORD[224+rcx] + + + valignq ymm3,ymm4,ymm3,1 + valignq ymm4,ymm5,ymm4,1 + valignq ymm5,ymm6,ymm5,1 + valignq ymm6,ymm7,ymm6,1 + valignq ymm7,ymm8,ymm7,1 + valignq ymm8,ymm9,ymm8,1 + valignq ymm9,ymm10,ymm9,1 + valignq ymm10,ymm0,ymm10,1 + + vmovq r13,xmm3 + add r9,r13 + + vpmadd52huq ymm3,ymm1,YMMWORD[rsi] + vpmadd52huq ymm4,ymm1,YMMWORD[32+rsi] + vpmadd52huq ymm5,ymm1,YMMWORD[64+rsi] + vpmadd52huq ymm6,ymm1,YMMWORD[96+rsi] + vpmadd52huq ymm7,ymm1,YMMWORD[128+rsi] + vpmadd52huq ymm8,ymm1,YMMWORD[160+rsi] + vpmadd52huq ymm9,ymm1,YMMWORD[192+rsi] + vpmadd52huq ymm10,ymm1,YMMWORD[224+rsi] + + vpmadd52huq ymm3,ymm2,YMMWORD[rcx] + vpmadd52huq ymm4,ymm2,YMMWORD[32+rcx] + vpmadd52huq ymm5,ymm2,YMMWORD[64+rcx] + vpmadd52huq ymm6,ymm2,YMMWORD[96+rcx] + vpmadd52huq ymm7,ymm2,YMMWORD[128+rcx] + vpmadd52huq ymm8,ymm2,YMMWORD[160+rcx] + vpmadd52huq ymm9,ymm2,YMMWORD[192+rcx] + vpmadd52huq ymm10,ymm2,YMMWORD[224+rcx] + mov r13,QWORD[8+r11] + + vpbroadcastq ymm1,r13 + mov rdx,QWORD[rsi] + mulx r12,r13,r13 + add r9,r13 + mov r10,r12 + adc r10,0 + + mov r13,r8 + imul r13,r9 + and r13,rax + + vpbroadcastq ymm2,r13 + mov rdx,QWORD[rcx] + mulx r12,r13,r13 + add r9,r13 + adc r10,r12 + + shr r9,52 + sal r10,12 + or r9,r10 + + vpmadd52luq ymm3,ymm1,YMMWORD[rsi] + vpmadd52luq ymm4,ymm1,YMMWORD[32+rsi] + vpmadd52luq ymm5,ymm1,YMMWORD[64+rsi] + vpmadd52luq ymm6,ymm1,YMMWORD[96+rsi] + vpmadd52luq ymm7,ymm1,YMMWORD[128+rsi] + vpmadd52luq ymm8,ymm1,YMMWORD[160+rsi] + vpmadd52luq ymm9,ymm1,YMMWORD[192+rsi] + vpmadd52luq ymm10,ymm1,YMMWORD[224+rsi] + + vpmadd52luq ymm3,ymm2,YMMWORD[rcx] + vpmadd52luq ymm4,ymm2,YMMWORD[32+rcx] + vpmadd52luq ymm5,ymm2,YMMWORD[64+rcx] + vpmadd52luq ymm6,ymm2,YMMWORD[96+rcx] + vpmadd52luq ymm7,ymm2,YMMWORD[128+rcx] + vpmadd52luq ymm8,ymm2,YMMWORD[160+rcx] + vpmadd52luq ymm9,ymm2,YMMWORD[192+rcx] + vpmadd52luq ymm10,ymm2,YMMWORD[224+rcx] + + + valignq ymm3,ymm4,ymm3,1 + valignq ymm4,ymm5,ymm4,1 + valignq ymm5,ymm6,ymm5,1 + valignq ymm6,ymm7,ymm6,1 + valignq ymm7,ymm8,ymm7,1 + valignq ymm8,ymm9,ymm8,1 + valignq ymm9,ymm10,ymm9,1 + valignq ymm10,ymm0,ymm10,1 + + vmovq r13,xmm3 + add r9,r13 + + vpmadd52huq ymm3,ymm1,YMMWORD[rsi] + vpmadd52huq ymm4,ymm1,YMMWORD[32+rsi] + vpmadd52huq ymm5,ymm1,YMMWORD[64+rsi] + vpmadd52huq ymm6,ymm1,YMMWORD[96+rsi] + vpmadd52huq ymm7,ymm1,YMMWORD[128+rsi] + vpmadd52huq ymm8,ymm1,YMMWORD[160+rsi] + vpmadd52huq ymm9,ymm1,YMMWORD[192+rsi] + vpmadd52huq ymm10,ymm1,YMMWORD[224+rsi] + + vpmadd52huq ymm3,ymm2,YMMWORD[rcx] + vpmadd52huq ymm4,ymm2,YMMWORD[32+rcx] + vpmadd52huq ymm5,ymm2,YMMWORD[64+rcx] + vpmadd52huq ymm6,ymm2,YMMWORD[96+rcx] + vpmadd52huq ymm7,ymm2,YMMWORD[128+rcx] + vpmadd52huq ymm8,ymm2,YMMWORD[160+rcx] + vpmadd52huq ymm9,ymm2,YMMWORD[192+rcx] + vpmadd52huq ymm10,ymm2,YMMWORD[224+rcx] + mov r13,QWORD[16+r11] + + vpbroadcastq ymm1,r13 + mov rdx,QWORD[rsi] + mulx r12,r13,r13 + add r9,r13 + mov r10,r12 + adc r10,0 + + mov r13,r8 + imul r13,r9 + and r13,rax + + vpbroadcastq ymm2,r13 + mov rdx,QWORD[rcx] + mulx r12,r13,r13 + add r9,r13 + adc r10,r12 + + shr r9,52 + sal r10,12 + or r9,r10 + + vpmadd52luq ymm3,ymm1,YMMWORD[rsi] + vpmadd52luq ymm4,ymm1,YMMWORD[32+rsi] + vpmadd52luq ymm5,ymm1,YMMWORD[64+rsi] + vpmadd52luq ymm6,ymm1,YMMWORD[96+rsi] + vpmadd52luq ymm7,ymm1,YMMWORD[128+rsi] + vpmadd52luq ymm8,ymm1,YMMWORD[160+rsi] + vpmadd52luq ymm9,ymm1,YMMWORD[192+rsi] + vpmadd52luq ymm10,ymm1,YMMWORD[224+rsi] + + vpmadd52luq ymm3,ymm2,YMMWORD[rcx] + vpmadd52luq ymm4,ymm2,YMMWORD[32+rcx] + vpmadd52luq ymm5,ymm2,YMMWORD[64+rcx] + vpmadd52luq ymm6,ymm2,YMMWORD[96+rcx] + vpmadd52luq ymm7,ymm2,YMMWORD[128+rcx] + vpmadd52luq ymm8,ymm2,YMMWORD[160+rcx] + vpmadd52luq ymm9,ymm2,YMMWORD[192+rcx] + vpmadd52luq ymm10,ymm2,YMMWORD[224+rcx] + + + valignq ymm3,ymm4,ymm3,1 + valignq ymm4,ymm5,ymm4,1 + valignq ymm5,ymm6,ymm5,1 + valignq ymm6,ymm7,ymm6,1 + valignq ymm7,ymm8,ymm7,1 + valignq ymm8,ymm9,ymm8,1 + valignq ymm9,ymm10,ymm9,1 + valignq ymm10,ymm0,ymm10,1 + + vmovq r13,xmm3 + add r9,r13 + + vpmadd52huq ymm3,ymm1,YMMWORD[rsi] + vpmadd52huq ymm4,ymm1,YMMWORD[32+rsi] + vpmadd52huq ymm5,ymm1,YMMWORD[64+rsi] + vpmadd52huq ymm6,ymm1,YMMWORD[96+rsi] + vpmadd52huq ymm7,ymm1,YMMWORD[128+rsi] + vpmadd52huq ymm8,ymm1,YMMWORD[160+rsi] + vpmadd52huq ymm9,ymm1,YMMWORD[192+rsi] + vpmadd52huq ymm10,ymm1,YMMWORD[224+rsi] + + vpmadd52huq ymm3,ymm2,YMMWORD[rcx] + vpmadd52huq ymm4,ymm2,YMMWORD[32+rcx] + vpmadd52huq ymm5,ymm2,YMMWORD[64+rcx] + vpmadd52huq ymm6,ymm2,YMMWORD[96+rcx] + vpmadd52huq ymm7,ymm2,YMMWORD[128+rcx] + vpmadd52huq ymm8,ymm2,YMMWORD[160+rcx] + vpmadd52huq ymm9,ymm2,YMMWORD[192+rcx] + vpmadd52huq ymm10,ymm2,YMMWORD[224+rcx] + mov r13,QWORD[24+r11] + + vpbroadcastq ymm1,r13 + mov rdx,QWORD[rsi] + mulx r12,r13,r13 + add r9,r13 + mov r10,r12 + adc r10,0 + + mov r13,r8 + imul r13,r9 + and r13,rax + + vpbroadcastq ymm2,r13 + mov rdx,QWORD[rcx] + mulx r12,r13,r13 + add r9,r13 + adc r10,r12 + + shr r9,52 + sal r10,12 + or r9,r10 + + vpmadd52luq ymm3,ymm1,YMMWORD[rsi] + vpmadd52luq ymm4,ymm1,YMMWORD[32+rsi] + vpmadd52luq ymm5,ymm1,YMMWORD[64+rsi] + vpmadd52luq ymm6,ymm1,YMMWORD[96+rsi] + vpmadd52luq ymm7,ymm1,YMMWORD[128+rsi] + vpmadd52luq ymm8,ymm1,YMMWORD[160+rsi] + vpmadd52luq ymm9,ymm1,YMMWORD[192+rsi] + vpmadd52luq ymm10,ymm1,YMMWORD[224+rsi] + + vpmadd52luq ymm3,ymm2,YMMWORD[rcx] + vpmadd52luq ymm4,ymm2,YMMWORD[32+rcx] + vpmadd52luq ymm5,ymm2,YMMWORD[64+rcx] + vpmadd52luq ymm6,ymm2,YMMWORD[96+rcx] + vpmadd52luq ymm7,ymm2,YMMWORD[128+rcx] + vpmadd52luq ymm8,ymm2,YMMWORD[160+rcx] + vpmadd52luq ymm9,ymm2,YMMWORD[192+rcx] + vpmadd52luq ymm10,ymm2,YMMWORD[224+rcx] + + + valignq ymm3,ymm4,ymm3,1 + valignq ymm4,ymm5,ymm4,1 + valignq ymm5,ymm6,ymm5,1 + valignq ymm6,ymm7,ymm6,1 + valignq ymm7,ymm8,ymm7,1 + valignq ymm8,ymm9,ymm8,1 + valignq ymm9,ymm10,ymm9,1 + valignq ymm10,ymm0,ymm10,1 + + vmovq r13,xmm3 + add r9,r13 + + vpmadd52huq ymm3,ymm1,YMMWORD[rsi] + vpmadd52huq ymm4,ymm1,YMMWORD[32+rsi] + vpmadd52huq ymm5,ymm1,YMMWORD[64+rsi] + vpmadd52huq ymm6,ymm1,YMMWORD[96+rsi] + vpmadd52huq ymm7,ymm1,YMMWORD[128+rsi] + vpmadd52huq ymm8,ymm1,YMMWORD[160+rsi] + vpmadd52huq ymm9,ymm1,YMMWORD[192+rsi] + vpmadd52huq ymm10,ymm1,YMMWORD[224+rsi] + + vpmadd52huq ymm3,ymm2,YMMWORD[rcx] + vpmadd52huq ymm4,ymm2,YMMWORD[32+rcx] + vpmadd52huq ymm5,ymm2,YMMWORD[64+rcx] + vpmadd52huq ymm6,ymm2,YMMWORD[96+rcx] + vpmadd52huq ymm7,ymm2,YMMWORD[128+rcx] + vpmadd52huq ymm8,ymm2,YMMWORD[160+rcx] + vpmadd52huq ymm9,ymm2,YMMWORD[192+rcx] + vpmadd52huq ymm10,ymm2,YMMWORD[224+rcx] + lea r11,[32+r11] + dec ebx + jne NEAR $L$loop7 + mov r13,QWORD[r11] + + vpbroadcastq ymm1,r13 + mov rdx,QWORD[rsi] + mulx r12,r13,r13 + add r9,r13 + mov r10,r12 + adc r10,0 + + mov r13,r8 + imul r13,r9 + and r13,rax + + vpbroadcastq ymm2,r13 + mov rdx,QWORD[rcx] + mulx r12,r13,r13 + add r9,r13 + adc r10,r12 + + shr r9,52 + sal r10,12 + or r9,r10 + + vpmadd52luq ymm3,ymm1,YMMWORD[rsi] + vpmadd52luq ymm4,ymm1,YMMWORD[32+rsi] + vpmadd52luq ymm5,ymm1,YMMWORD[64+rsi] + vpmadd52luq ymm6,ymm1,YMMWORD[96+rsi] + vpmadd52luq ymm7,ymm1,YMMWORD[128+rsi] + vpmadd52luq ymm8,ymm1,YMMWORD[160+rsi] + vpmadd52luq ymm9,ymm1,YMMWORD[192+rsi] + vpmadd52luq ymm10,ymm1,YMMWORD[224+rsi] + + vpmadd52luq ymm3,ymm2,YMMWORD[rcx] + vpmadd52luq ymm4,ymm2,YMMWORD[32+rcx] + vpmadd52luq ymm5,ymm2,YMMWORD[64+rcx] + vpmadd52luq ymm6,ymm2,YMMWORD[96+rcx] + vpmadd52luq ymm7,ymm2,YMMWORD[128+rcx] + vpmadd52luq ymm8,ymm2,YMMWORD[160+rcx] + vpmadd52luq ymm9,ymm2,YMMWORD[192+rcx] + vpmadd52luq ymm10,ymm2,YMMWORD[224+rcx] + + + valignq ymm3,ymm4,ymm3,1 + valignq ymm4,ymm5,ymm4,1 + valignq ymm5,ymm6,ymm5,1 + valignq ymm6,ymm7,ymm6,1 + valignq ymm7,ymm8,ymm7,1 + valignq ymm8,ymm9,ymm8,1 + valignq ymm9,ymm10,ymm9,1 + valignq ymm10,ymm0,ymm10,1 + + vmovq r13,xmm3 + add r9,r13 + + vpmadd52huq ymm3,ymm1,YMMWORD[rsi] + vpmadd52huq ymm4,ymm1,YMMWORD[32+rsi] + vpmadd52huq ymm5,ymm1,YMMWORD[64+rsi] + vpmadd52huq ymm6,ymm1,YMMWORD[96+rsi] + vpmadd52huq ymm7,ymm1,YMMWORD[128+rsi] + vpmadd52huq ymm8,ymm1,YMMWORD[160+rsi] + vpmadd52huq ymm9,ymm1,YMMWORD[192+rsi] + vpmadd52huq ymm10,ymm1,YMMWORD[224+rsi] + + vpmadd52huq ymm3,ymm2,YMMWORD[rcx] + vpmadd52huq ymm4,ymm2,YMMWORD[32+rcx] + vpmadd52huq ymm5,ymm2,YMMWORD[64+rcx] + vpmadd52huq ymm6,ymm2,YMMWORD[96+rcx] + vpmadd52huq ymm7,ymm2,YMMWORD[128+rcx] + vpmadd52huq ymm8,ymm2,YMMWORD[160+rcx] + vpmadd52huq ymm9,ymm2,YMMWORD[192+rcx] + vpmadd52huq ymm10,ymm2,YMMWORD[224+rcx] + mov r13,QWORD[8+r11] + + vpbroadcastq ymm1,r13 + mov rdx,QWORD[rsi] + mulx r12,r13,r13 + add r9,r13 + mov r10,r12 + adc r10,0 + + mov r13,r8 + imul r13,r9 + and r13,rax + + vpbroadcastq ymm2,r13 + mov rdx,QWORD[rcx] + mulx r12,r13,r13 + add r9,r13 + adc r10,r12 + + shr r9,52 + sal r10,12 + or r9,r10 + + vpmadd52luq ymm3,ymm1,YMMWORD[rsi] + vpmadd52luq ymm4,ymm1,YMMWORD[32+rsi] + vpmadd52luq ymm5,ymm1,YMMWORD[64+rsi] + vpmadd52luq ymm6,ymm1,YMMWORD[96+rsi] + vpmadd52luq ymm7,ymm1,YMMWORD[128+rsi] + vpmadd52luq ymm8,ymm1,YMMWORD[160+rsi] + vpmadd52luq ymm9,ymm1,YMMWORD[192+rsi] + vpmadd52luq ymm10,ymm1,YMMWORD[224+rsi] + + vpmadd52luq ymm3,ymm2,YMMWORD[rcx] + vpmadd52luq ymm4,ymm2,YMMWORD[32+rcx] + vpmadd52luq ymm5,ymm2,YMMWORD[64+rcx] + vpmadd52luq ymm6,ymm2,YMMWORD[96+rcx] + vpmadd52luq ymm7,ymm2,YMMWORD[128+rcx] + vpmadd52luq ymm8,ymm2,YMMWORD[160+rcx] + vpmadd52luq ymm9,ymm2,YMMWORD[192+rcx] + vpmadd52luq ymm10,ymm2,YMMWORD[224+rcx] + + + valignq ymm3,ymm4,ymm3,1 + valignq ymm4,ymm5,ymm4,1 + valignq ymm5,ymm6,ymm5,1 + valignq ymm6,ymm7,ymm6,1 + valignq ymm7,ymm8,ymm7,1 + valignq ymm8,ymm9,ymm8,1 + valignq ymm9,ymm10,ymm9,1 + valignq ymm10,ymm0,ymm10,1 + + vmovq r13,xmm3 + add r9,r13 + + vpmadd52huq ymm3,ymm1,YMMWORD[rsi] + vpmadd52huq ymm4,ymm1,YMMWORD[32+rsi] + vpmadd52huq ymm5,ymm1,YMMWORD[64+rsi] + vpmadd52huq ymm6,ymm1,YMMWORD[96+rsi] + vpmadd52huq ymm7,ymm1,YMMWORD[128+rsi] + vpmadd52huq ymm8,ymm1,YMMWORD[160+rsi] + vpmadd52huq ymm9,ymm1,YMMWORD[192+rsi] + vpmadd52huq ymm10,ymm1,YMMWORD[224+rsi] + + vpmadd52huq ymm3,ymm2,YMMWORD[rcx] + vpmadd52huq ymm4,ymm2,YMMWORD[32+rcx] + vpmadd52huq ymm5,ymm2,YMMWORD[64+rcx] + vpmadd52huq ymm6,ymm2,YMMWORD[96+rcx] + vpmadd52huq ymm7,ymm2,YMMWORD[128+rcx] + vpmadd52huq ymm8,ymm2,YMMWORD[160+rcx] + vpmadd52huq ymm9,ymm2,YMMWORD[192+rcx] + vpmadd52huq ymm10,ymm2,YMMWORD[224+rcx] + + vpbroadcastq ymm0,r9 + vpblendd ymm3,ymm3,ymm0,3 + + + + vpsrlq ymm0,ymm3,52 + vpsrlq ymm1,ymm4,52 + vpsrlq ymm2,ymm5,52 + vpsrlq ymm19,ymm6,52 + vpsrlq ymm20,ymm7,52 + vpsrlq ymm21,ymm8,52 + vpsrlq ymm22,ymm9,52 + vpsrlq ymm23,ymm10,52 + + + valignq ymm23,ymm23,ymm22,3 + valignq ymm22,ymm22,ymm21,3 + valignq ymm21,ymm21,ymm20,3 + valignq ymm20,ymm20,ymm19,3 + valignq ymm19,ymm19,ymm2,3 + valignq ymm2,ymm2,ymm1,3 + valignq ymm1,ymm1,ymm0,3 + valignq ymm0,ymm0,YMMWORD[$L$zeros],3 + + + vpandq ymm3,ymm3,YMMWORD[$L$mask52x4] + vpandq ymm4,ymm4,YMMWORD[$L$mask52x4] + vpandq ymm5,ymm5,YMMWORD[$L$mask52x4] + vpandq ymm6,ymm6,YMMWORD[$L$mask52x4] + vpandq ymm7,ymm7,YMMWORD[$L$mask52x4] + vpandq ymm8,ymm8,YMMWORD[$L$mask52x4] + vpandq ymm9,ymm9,YMMWORD[$L$mask52x4] + vpandq ymm10,ymm10,YMMWORD[$L$mask52x4] + + + vpaddq ymm3,ymm3,ymm0 + vpaddq ymm4,ymm4,ymm1 + vpaddq ymm5,ymm5,ymm2 + vpaddq ymm6,ymm6,ymm19 + vpaddq ymm7,ymm7,ymm20 + vpaddq ymm8,ymm8,ymm21 + vpaddq ymm9,ymm9,ymm22 + vpaddq ymm10,ymm10,ymm23 + + + + vpcmpuq k1,ymm3,YMMWORD[$L$mask52x4],6 + vpcmpuq k2,ymm4,YMMWORD[$L$mask52x4],6 + kmovb r14d,k1 + kmovb r13d,k2 + shl r13b,4 + or r14b,r13b + + vpcmpuq k1,ymm5,YMMWORD[$L$mask52x4],6 + vpcmpuq k2,ymm6,YMMWORD[$L$mask52x4],6 + kmovb r13d,k1 + kmovb r12d,k2 + shl r12b,4 + or r13b,r12b + + vpcmpuq k1,ymm7,YMMWORD[$L$mask52x4],6 + vpcmpuq k2,ymm8,YMMWORD[$L$mask52x4],6 + kmovb r12d,k1 + kmovb r11d,k2 + shl r11b,4 + or r12b,r11b + + vpcmpuq k1,ymm9,YMMWORD[$L$mask52x4],6 + vpcmpuq k2,ymm10,YMMWORD[$L$mask52x4],6 + kmovb r11d,k1 + kmovb r10d,k2 + shl r10b,4 + or r11b,r10b + + add r14b,r14b + adc r13b,r13b + adc r12b,r12b + adc r11b,r11b + + + vpcmpuq k1,ymm3,YMMWORD[$L$mask52x4],0 + vpcmpuq k2,ymm4,YMMWORD[$L$mask52x4],0 + kmovb r9d,k1 + kmovb r8d,k2 + shl r8b,4 + or r9b,r8b + + vpcmpuq k1,ymm5,YMMWORD[$L$mask52x4],0 + vpcmpuq k2,ymm6,YMMWORD[$L$mask52x4],0 + kmovb r8d,k1 + kmovb edx,k2 + shl dl,4 + or r8b,dl + + vpcmpuq k1,ymm7,YMMWORD[$L$mask52x4],0 + vpcmpuq k2,ymm8,YMMWORD[$L$mask52x4],0 + kmovb edx,k1 + kmovb ecx,k2 + shl cl,4 + or dl,cl + + vpcmpuq k1,ymm9,YMMWORD[$L$mask52x4],0 + vpcmpuq k2,ymm10,YMMWORD[$L$mask52x4],0 + kmovb ecx,k1 + kmovb ebx,k2 + shl bl,4 + or cl,bl + + add r14b,r9b + adc r13b,r8b + adc r12b,dl + adc r11b,cl + + xor r14b,r9b + xor r13b,r8b + xor r12b,dl + xor r11b,cl + + kmovb k1,r14d + shr r14b,4 + kmovb k2,r14d + kmovb k3,r13d + shr r13b,4 + kmovb k4,r13d + kmovb k5,r12d + shr r12b,4 + kmovb k6,r12d + kmovb k7,r11d + + vpsubq ymm3{k1},ymm3,YMMWORD[$L$mask52x4] + vpsubq ymm4{k2},ymm4,YMMWORD[$L$mask52x4] + vpsubq ymm5{k3},ymm5,YMMWORD[$L$mask52x4] + vpsubq ymm6{k4},ymm6,YMMWORD[$L$mask52x4] + vpsubq ymm7{k5},ymm7,YMMWORD[$L$mask52x4] + vpsubq ymm8{k6},ymm8,YMMWORD[$L$mask52x4] + vpsubq ymm9{k7},ymm9,YMMWORD[$L$mask52x4] + + vpandq ymm3,ymm3,YMMWORD[$L$mask52x4] + vpandq ymm4,ymm4,YMMWORD[$L$mask52x4] + vpandq ymm5,ymm5,YMMWORD[$L$mask52x4] + vpandq ymm6,ymm6,YMMWORD[$L$mask52x4] + vpandq ymm7,ymm7,YMMWORD[$L$mask52x4] + vpandq ymm8,ymm8,YMMWORD[$L$mask52x4] + vpandq ymm9,ymm9,YMMWORD[$L$mask52x4] + + shr r11b,4 + kmovb k1,r11d + + vpsubq ymm10{k1},ymm10,YMMWORD[$L$mask52x4] + + vpandq ymm10,ymm10,YMMWORD[$L$mask52x4] + + vmovdqu64 YMMWORD[rdi],ymm3 + vmovdqu64 YMMWORD[32+rdi],ymm4 + vmovdqu64 YMMWORD[64+rdi],ymm5 + vmovdqu64 YMMWORD[96+rdi],ymm6 + vmovdqu64 YMMWORD[128+rdi],ymm7 + vmovdqu64 YMMWORD[160+rdi],ymm8 + vmovdqu64 YMMWORD[192+rdi],ymm9 + vmovdqu64 YMMWORD[224+rdi],ymm10 + + vzeroupper + lea rax,[rsp] + + vmovdqa64 xmm6,XMMWORD[rax] + vmovdqa64 xmm7,XMMWORD[16+rax] + vmovdqa64 xmm8,XMMWORD[32+rax] + vmovdqa64 xmm9,XMMWORD[48+rax] + vmovdqa64 xmm10,XMMWORD[64+rax] + vmovdqa64 xmm11,XMMWORD[80+rax] + vmovdqa64 xmm12,XMMWORD[96+rax] + vmovdqa64 xmm13,XMMWORD[112+rax] + vmovdqa64 xmm14,XMMWORD[128+rax] + vmovdqa64 xmm15,XMMWORD[144+rax] + lea rax,[168+rsp] + mov r15,QWORD[rax] + + mov r14,QWORD[8+rax] + + mov r13,QWORD[16+rax] + + mov r12,QWORD[24+rax] + + mov rbp,QWORD[32+rax] + + mov rbx,QWORD[40+rax] + + lea rsp,[48+rax] + +$L$ossl_rsaz_amm52x30_x1_ifma256_epilogue: + mov rdi,QWORD[8+rsp] ;WIN64 epilogue + mov rsi,QWORD[16+rsp] + DB 0F3h,0C3h ;repret + +$L$SEH_end_ossl_rsaz_amm52x30_x1_ifma256: +section .rdata rdata align=32 +ALIGN 32 +$L$mask52x4: + DQ 0xfffffffffffff + DQ 0xfffffffffffff + DQ 0xfffffffffffff + DQ 0xfffffffffffff +section .text code align=64 + + +global ossl_rsaz_amm52x30_x2_ifma256 + +ALIGN 32 +ossl_rsaz_amm52x30_x2_ifma256: + mov QWORD[8+rsp],rdi ;WIN64 prologue + mov QWORD[16+rsp],rsi + mov rax,rsp +$L$SEH_begin_ossl_rsaz_amm52x30_x2_ifma256: + mov rdi,rcx + mov rsi,rdx + mov rdx,r8 + mov rcx,r9 + mov r8,QWORD[40+rsp] + + + +DB 243,15,30,250 + push rbx + + push rbp + + push r12 + + push r13 + + push r14 + + push r15 + + lea rsp,[((-168))+rsp] + vmovdqa64 XMMWORD[rsp],xmm6 + vmovdqa64 XMMWORD[16+rsp],xmm7 + vmovdqa64 XMMWORD[32+rsp],xmm8 + vmovdqa64 XMMWORD[48+rsp],xmm9 + vmovdqa64 XMMWORD[64+rsp],xmm10 + vmovdqa64 XMMWORD[80+rsp],xmm11 + vmovdqa64 XMMWORD[96+rsp],xmm12 + vmovdqa64 XMMWORD[112+rsp],xmm13 + vmovdqa64 XMMWORD[128+rsp],xmm14 + vmovdqa64 XMMWORD[144+rsp],xmm15 +$L$ossl_rsaz_amm52x30_x2_ifma256_body: + + vpxord ymm0,ymm0,ymm0 + vmovdqa64 ymm3,ymm0 + vmovdqa64 ymm4,ymm0 + vmovdqa64 ymm5,ymm0 + vmovdqa64 ymm6,ymm0 + vmovdqa64 ymm7,ymm0 + vmovdqa64 ymm8,ymm0 + vmovdqa64 ymm9,ymm0 + vmovdqa64 ymm10,ymm0 + + vmovdqa64 ymm11,ymm0 + vmovdqa64 ymm12,ymm0 + vmovdqa64 ymm13,ymm0 + vmovdqa64 ymm14,ymm0 + vmovdqa64 ymm15,ymm0 + vmovdqa64 ymm16,ymm0 + vmovdqa64 ymm17,ymm0 + vmovdqa64 ymm18,ymm0 + + + xor r9d,r9d + xor r15d,r15d + + mov r11,rdx + mov rax,0xfffffffffffff + + mov ebx,30 + +ALIGN 32 +$L$loop30: + mov r13,QWORD[r11] + + vpbroadcastq ymm1,r13 + mov rdx,QWORD[rsi] + mulx r12,r13,r13 + add r9,r13 + mov r10,r12 + adc r10,0 + + mov r13,QWORD[r8] + imul r13,r9 + and r13,rax + + vpbroadcastq ymm2,r13 + mov rdx,QWORD[rcx] + mulx r12,r13,r13 + add r9,r13 + adc r10,r12 + + shr r9,52 + sal r10,12 + or r9,r10 + + vpmadd52luq ymm3,ymm1,YMMWORD[rsi] + vpmadd52luq ymm4,ymm1,YMMWORD[32+rsi] + vpmadd52luq ymm5,ymm1,YMMWORD[64+rsi] + vpmadd52luq ymm6,ymm1,YMMWORD[96+rsi] + vpmadd52luq ymm7,ymm1,YMMWORD[128+rsi] + vpmadd52luq ymm8,ymm1,YMMWORD[160+rsi] + vpmadd52luq ymm9,ymm1,YMMWORD[192+rsi] + vpmadd52luq ymm10,ymm1,YMMWORD[224+rsi] + + vpmadd52luq ymm3,ymm2,YMMWORD[rcx] + vpmadd52luq ymm4,ymm2,YMMWORD[32+rcx] + vpmadd52luq ymm5,ymm2,YMMWORD[64+rcx] + vpmadd52luq ymm6,ymm2,YMMWORD[96+rcx] + vpmadd52luq ymm7,ymm2,YMMWORD[128+rcx] + vpmadd52luq ymm8,ymm2,YMMWORD[160+rcx] + vpmadd52luq ymm9,ymm2,YMMWORD[192+rcx] + vpmadd52luq ymm10,ymm2,YMMWORD[224+rcx] + + + valignq ymm3,ymm4,ymm3,1 + valignq ymm4,ymm5,ymm4,1 + valignq ymm5,ymm6,ymm5,1 + valignq ymm6,ymm7,ymm6,1 + valignq ymm7,ymm8,ymm7,1 + valignq ymm8,ymm9,ymm8,1 + valignq ymm9,ymm10,ymm9,1 + valignq ymm10,ymm0,ymm10,1 + + vmovq r13,xmm3 + add r9,r13 + + vpmadd52huq ymm3,ymm1,YMMWORD[rsi] + vpmadd52huq ymm4,ymm1,YMMWORD[32+rsi] + vpmadd52huq ymm5,ymm1,YMMWORD[64+rsi] + vpmadd52huq ymm6,ymm1,YMMWORD[96+rsi] + vpmadd52huq ymm7,ymm1,YMMWORD[128+rsi] + vpmadd52huq ymm8,ymm1,YMMWORD[160+rsi] + vpmadd52huq ymm9,ymm1,YMMWORD[192+rsi] + vpmadd52huq ymm10,ymm1,YMMWORD[224+rsi] + + vpmadd52huq ymm3,ymm2,YMMWORD[rcx] + vpmadd52huq ymm4,ymm2,YMMWORD[32+rcx] + vpmadd52huq ymm5,ymm2,YMMWORD[64+rcx] + vpmadd52huq ymm6,ymm2,YMMWORD[96+rcx] + vpmadd52huq ymm7,ymm2,YMMWORD[128+rcx] + vpmadd52huq ymm8,ymm2,YMMWORD[160+rcx] + vpmadd52huq ymm9,ymm2,YMMWORD[192+rcx] + vpmadd52huq ymm10,ymm2,YMMWORD[224+rcx] + mov r13,QWORD[256+r11] + + vpbroadcastq ymm1,r13 + mov rdx,QWORD[256+rsi] + mulx r12,r13,r13 + add r15,r13 + mov r10,r12 + adc r10,0 + + mov r13,QWORD[8+r8] + imul r13,r15 + and r13,rax + + vpbroadcastq ymm2,r13 + mov rdx,QWORD[256+rcx] + mulx r12,r13,r13 + add r15,r13 + adc r10,r12 + + shr r15,52 + sal r10,12 + or r15,r10 + + vpmadd52luq ymm11,ymm1,YMMWORD[256+rsi] + vpmadd52luq ymm12,ymm1,YMMWORD[288+rsi] + vpmadd52luq ymm13,ymm1,YMMWORD[320+rsi] + vpmadd52luq ymm14,ymm1,YMMWORD[352+rsi] + vpmadd52luq ymm15,ymm1,YMMWORD[384+rsi] + vpmadd52luq ymm16,ymm1,YMMWORD[416+rsi] + vpmadd52luq ymm17,ymm1,YMMWORD[448+rsi] + vpmadd52luq ymm18,ymm1,YMMWORD[480+rsi] + + vpmadd52luq ymm11,ymm2,YMMWORD[256+rcx] + vpmadd52luq ymm12,ymm2,YMMWORD[288+rcx] + vpmadd52luq ymm13,ymm2,YMMWORD[320+rcx] + vpmadd52luq ymm14,ymm2,YMMWORD[352+rcx] + vpmadd52luq ymm15,ymm2,YMMWORD[384+rcx] + vpmadd52luq ymm16,ymm2,YMMWORD[416+rcx] + vpmadd52luq ymm17,ymm2,YMMWORD[448+rcx] + vpmadd52luq ymm18,ymm2,YMMWORD[480+rcx] + + + valignq ymm11,ymm12,ymm11,1 + valignq ymm12,ymm13,ymm12,1 + valignq ymm13,ymm14,ymm13,1 + valignq ymm14,ymm15,ymm14,1 + valignq ymm15,ymm16,ymm15,1 + valignq ymm16,ymm17,ymm16,1 + valignq ymm17,ymm18,ymm17,1 + valignq ymm18,ymm0,ymm18,1 + + vmovq r13,xmm11 + add r15,r13 + + vpmadd52huq ymm11,ymm1,YMMWORD[256+rsi] + vpmadd52huq ymm12,ymm1,YMMWORD[288+rsi] + vpmadd52huq ymm13,ymm1,YMMWORD[320+rsi] + vpmadd52huq ymm14,ymm1,YMMWORD[352+rsi] + vpmadd52huq ymm15,ymm1,YMMWORD[384+rsi] + vpmadd52huq ymm16,ymm1,YMMWORD[416+rsi] + vpmadd52huq ymm17,ymm1,YMMWORD[448+rsi] + vpmadd52huq ymm18,ymm1,YMMWORD[480+rsi] + + vpmadd52huq ymm11,ymm2,YMMWORD[256+rcx] + vpmadd52huq ymm12,ymm2,YMMWORD[288+rcx] + vpmadd52huq ymm13,ymm2,YMMWORD[320+rcx] + vpmadd52huq ymm14,ymm2,YMMWORD[352+rcx] + vpmadd52huq ymm15,ymm2,YMMWORD[384+rcx] + vpmadd52huq ymm16,ymm2,YMMWORD[416+rcx] + vpmadd52huq ymm17,ymm2,YMMWORD[448+rcx] + vpmadd52huq ymm18,ymm2,YMMWORD[480+rcx] + lea r11,[8+r11] + dec ebx + jne NEAR $L$loop30 + + vpbroadcastq ymm0,r9 + vpblendd ymm3,ymm3,ymm0,3 + + + + vpsrlq ymm0,ymm3,52 + vpsrlq ymm1,ymm4,52 + vpsrlq ymm2,ymm5,52 + vpsrlq ymm19,ymm6,52 + vpsrlq ymm20,ymm7,52 + vpsrlq ymm21,ymm8,52 + vpsrlq ymm22,ymm9,52 + vpsrlq ymm23,ymm10,52 + + + valignq ymm23,ymm23,ymm22,3 + valignq ymm22,ymm22,ymm21,3 + valignq ymm21,ymm21,ymm20,3 + valignq ymm20,ymm20,ymm19,3 + valignq ymm19,ymm19,ymm2,3 + valignq ymm2,ymm2,ymm1,3 + valignq ymm1,ymm1,ymm0,3 + valignq ymm0,ymm0,YMMWORD[$L$zeros],3 + + + vpandq ymm3,ymm3,YMMWORD[$L$mask52x4] + vpandq ymm4,ymm4,YMMWORD[$L$mask52x4] + vpandq ymm5,ymm5,YMMWORD[$L$mask52x4] + vpandq ymm6,ymm6,YMMWORD[$L$mask52x4] + vpandq ymm7,ymm7,YMMWORD[$L$mask52x4] + vpandq ymm8,ymm8,YMMWORD[$L$mask52x4] + vpandq ymm9,ymm9,YMMWORD[$L$mask52x4] + vpandq ymm10,ymm10,YMMWORD[$L$mask52x4] + + + vpaddq ymm3,ymm3,ymm0 + vpaddq ymm4,ymm4,ymm1 + vpaddq ymm5,ymm5,ymm2 + vpaddq ymm6,ymm6,ymm19 + vpaddq ymm7,ymm7,ymm20 + vpaddq ymm8,ymm8,ymm21 + vpaddq ymm9,ymm9,ymm22 + vpaddq ymm10,ymm10,ymm23 + + + + vpcmpuq k1,ymm3,YMMWORD[$L$mask52x4],6 + vpcmpuq k2,ymm4,YMMWORD[$L$mask52x4],6 + kmovb r14d,k1 + kmovb r13d,k2 + shl r13b,4 + or r14b,r13b + + vpcmpuq k1,ymm5,YMMWORD[$L$mask52x4],6 + vpcmpuq k2,ymm6,YMMWORD[$L$mask52x4],6 + kmovb r13d,k1 + kmovb r12d,k2 + shl r12b,4 + or r13b,r12b + + vpcmpuq k1,ymm7,YMMWORD[$L$mask52x4],6 + vpcmpuq k2,ymm8,YMMWORD[$L$mask52x4],6 + kmovb r12d,k1 + kmovb r11d,k2 + shl r11b,4 + or r12b,r11b + + vpcmpuq k1,ymm9,YMMWORD[$L$mask52x4],6 + vpcmpuq k2,ymm10,YMMWORD[$L$mask52x4],6 + kmovb r11d,k1 + kmovb r10d,k2 + shl r10b,4 + or r11b,r10b + + add r14b,r14b + adc r13b,r13b + adc r12b,r12b + adc r11b,r11b + + + vpcmpuq k1,ymm3,YMMWORD[$L$mask52x4],0 + vpcmpuq k2,ymm4,YMMWORD[$L$mask52x4],0 + kmovb r9d,k1 + kmovb r8d,k2 + shl r8b,4 + or r9b,r8b + + vpcmpuq k1,ymm5,YMMWORD[$L$mask52x4],0 + vpcmpuq k2,ymm6,YMMWORD[$L$mask52x4],0 + kmovb r8d,k1 + kmovb edx,k2 + shl dl,4 + or r8b,dl + + vpcmpuq k1,ymm7,YMMWORD[$L$mask52x4],0 + vpcmpuq k2,ymm8,YMMWORD[$L$mask52x4],0 + kmovb edx,k1 + kmovb ecx,k2 + shl cl,4 + or dl,cl + + vpcmpuq k1,ymm9,YMMWORD[$L$mask52x4],0 + vpcmpuq k2,ymm10,YMMWORD[$L$mask52x4],0 + kmovb ecx,k1 + kmovb ebx,k2 + shl bl,4 + or cl,bl + + add r14b,r9b + adc r13b,r8b + adc r12b,dl + adc r11b,cl + + xor r14b,r9b + xor r13b,r8b + xor r12b,dl + xor r11b,cl + + kmovb k1,r14d + shr r14b,4 + kmovb k2,r14d + kmovb k3,r13d + shr r13b,4 + kmovb k4,r13d + kmovb k5,r12d + shr r12b,4 + kmovb k6,r12d + kmovb k7,r11d + + vpsubq ymm3{k1},ymm3,YMMWORD[$L$mask52x4] + vpsubq ymm4{k2},ymm4,YMMWORD[$L$mask52x4] + vpsubq ymm5{k3},ymm5,YMMWORD[$L$mask52x4] + vpsubq ymm6{k4},ymm6,YMMWORD[$L$mask52x4] + vpsubq ymm7{k5},ymm7,YMMWORD[$L$mask52x4] + vpsubq ymm8{k6},ymm8,YMMWORD[$L$mask52x4] + vpsubq ymm9{k7},ymm9,YMMWORD[$L$mask52x4] + + vpandq ymm3,ymm3,YMMWORD[$L$mask52x4] + vpandq ymm4,ymm4,YMMWORD[$L$mask52x4] + vpandq ymm5,ymm5,YMMWORD[$L$mask52x4] + vpandq ymm6,ymm6,YMMWORD[$L$mask52x4] + vpandq ymm7,ymm7,YMMWORD[$L$mask52x4] + vpandq ymm8,ymm8,YMMWORD[$L$mask52x4] + vpandq ymm9,ymm9,YMMWORD[$L$mask52x4] + + shr r11b,4 + kmovb k1,r11d + + vpsubq ymm10{k1},ymm10,YMMWORD[$L$mask52x4] + + vpandq ymm10,ymm10,YMMWORD[$L$mask52x4] + + vpbroadcastq ymm0,r15 + vpblendd ymm11,ymm11,ymm0,3 + + + + vpsrlq ymm0,ymm11,52 + vpsrlq ymm1,ymm12,52 + vpsrlq ymm2,ymm13,52 + vpsrlq ymm19,ymm14,52 + vpsrlq ymm20,ymm15,52 + vpsrlq ymm21,ymm16,52 + vpsrlq ymm22,ymm17,52 + vpsrlq ymm23,ymm18,52 + + + valignq ymm23,ymm23,ymm22,3 + valignq ymm22,ymm22,ymm21,3 + valignq ymm21,ymm21,ymm20,3 + valignq ymm20,ymm20,ymm19,3 + valignq ymm19,ymm19,ymm2,3 + valignq ymm2,ymm2,ymm1,3 + valignq ymm1,ymm1,ymm0,3 + valignq ymm0,ymm0,YMMWORD[$L$zeros],3 + + + vpandq ymm11,ymm11,YMMWORD[$L$mask52x4] + vpandq ymm12,ymm12,YMMWORD[$L$mask52x4] + vpandq ymm13,ymm13,YMMWORD[$L$mask52x4] + vpandq ymm14,ymm14,YMMWORD[$L$mask52x4] + vpandq ymm15,ymm15,YMMWORD[$L$mask52x4] + vpandq ymm16,ymm16,YMMWORD[$L$mask52x4] + vpandq ymm17,ymm17,YMMWORD[$L$mask52x4] + vpandq ymm18,ymm18,YMMWORD[$L$mask52x4] + + + vpaddq ymm11,ymm11,ymm0 + vpaddq ymm12,ymm12,ymm1 + vpaddq ymm13,ymm13,ymm2 + vpaddq ymm14,ymm14,ymm19 + vpaddq ymm15,ymm15,ymm20 + vpaddq ymm16,ymm16,ymm21 + vpaddq ymm17,ymm17,ymm22 + vpaddq ymm18,ymm18,ymm23 + + + + vpcmpuq k1,ymm11,YMMWORD[$L$mask52x4],6 + vpcmpuq k2,ymm12,YMMWORD[$L$mask52x4],6 + kmovb r14d,k1 + kmovb r13d,k2 + shl r13b,4 + or r14b,r13b + + vpcmpuq k1,ymm13,YMMWORD[$L$mask52x4],6 + vpcmpuq k2,ymm14,YMMWORD[$L$mask52x4],6 + kmovb r13d,k1 + kmovb r12d,k2 + shl r12b,4 + or r13b,r12b + + vpcmpuq k1,ymm15,YMMWORD[$L$mask52x4],6 + vpcmpuq k2,ymm16,YMMWORD[$L$mask52x4],6 + kmovb r12d,k1 + kmovb r11d,k2 + shl r11b,4 + or r12b,r11b + + vpcmpuq k1,ymm17,YMMWORD[$L$mask52x4],6 + vpcmpuq k2,ymm18,YMMWORD[$L$mask52x4],6 + kmovb r11d,k1 + kmovb r10d,k2 + shl r10b,4 + or r11b,r10b + + add r14b,r14b + adc r13b,r13b + adc r12b,r12b + adc r11b,r11b + + + vpcmpuq k1,ymm11,YMMWORD[$L$mask52x4],0 + vpcmpuq k2,ymm12,YMMWORD[$L$mask52x4],0 + kmovb r9d,k1 + kmovb r8d,k2 + shl r8b,4 + or r9b,r8b + + vpcmpuq k1,ymm13,YMMWORD[$L$mask52x4],0 + vpcmpuq k2,ymm14,YMMWORD[$L$mask52x4],0 + kmovb r8d,k1 + kmovb edx,k2 + shl dl,4 + or r8b,dl + + vpcmpuq k1,ymm15,YMMWORD[$L$mask52x4],0 + vpcmpuq k2,ymm16,YMMWORD[$L$mask52x4],0 + kmovb edx,k1 + kmovb ecx,k2 + shl cl,4 + or dl,cl + + vpcmpuq k1,ymm17,YMMWORD[$L$mask52x4],0 + vpcmpuq k2,ymm18,YMMWORD[$L$mask52x4],0 + kmovb ecx,k1 + kmovb ebx,k2 + shl bl,4 + or cl,bl + + add r14b,r9b + adc r13b,r8b + adc r12b,dl + adc r11b,cl + + xor r14b,r9b + xor r13b,r8b + xor r12b,dl + xor r11b,cl + + kmovb k1,r14d + shr r14b,4 + kmovb k2,r14d + kmovb k3,r13d + shr r13b,4 + kmovb k4,r13d + kmovb k5,r12d + shr r12b,4 + kmovb k6,r12d + kmovb k7,r11d + + vpsubq ymm11{k1},ymm11,YMMWORD[$L$mask52x4] + vpsubq ymm12{k2},ymm12,YMMWORD[$L$mask52x4] + vpsubq ymm13{k3},ymm13,YMMWORD[$L$mask52x4] + vpsubq ymm14{k4},ymm14,YMMWORD[$L$mask52x4] + vpsubq ymm15{k5},ymm15,YMMWORD[$L$mask52x4] + vpsubq ymm16{k6},ymm16,YMMWORD[$L$mask52x4] + vpsubq ymm17{k7},ymm17,YMMWORD[$L$mask52x4] + + vpandq ymm11,ymm11,YMMWORD[$L$mask52x4] + vpandq ymm12,ymm12,YMMWORD[$L$mask52x4] + vpandq ymm13,ymm13,YMMWORD[$L$mask52x4] + vpandq ymm14,ymm14,YMMWORD[$L$mask52x4] + vpandq ymm15,ymm15,YMMWORD[$L$mask52x4] + vpandq ymm16,ymm16,YMMWORD[$L$mask52x4] + vpandq ymm17,ymm17,YMMWORD[$L$mask52x4] + + shr r11b,4 + kmovb k1,r11d + + vpsubq ymm18{k1},ymm18,YMMWORD[$L$mask52x4] + + vpandq ymm18,ymm18,YMMWORD[$L$mask52x4] + + vmovdqu64 YMMWORD[rdi],ymm3 + vmovdqu64 YMMWORD[32+rdi],ymm4 + vmovdqu64 YMMWORD[64+rdi],ymm5 + vmovdqu64 YMMWORD[96+rdi],ymm6 + vmovdqu64 YMMWORD[128+rdi],ymm7 + vmovdqu64 YMMWORD[160+rdi],ymm8 + vmovdqu64 YMMWORD[192+rdi],ymm9 + vmovdqu64 YMMWORD[224+rdi],ymm10 + + vmovdqu64 YMMWORD[256+rdi],ymm11 + vmovdqu64 YMMWORD[288+rdi],ymm12 + vmovdqu64 YMMWORD[320+rdi],ymm13 + vmovdqu64 YMMWORD[352+rdi],ymm14 + vmovdqu64 YMMWORD[384+rdi],ymm15 + vmovdqu64 YMMWORD[416+rdi],ymm16 + vmovdqu64 YMMWORD[448+rdi],ymm17 + vmovdqu64 YMMWORD[480+rdi],ymm18 + + vzeroupper + lea rax,[rsp] + + vmovdqa64 xmm6,XMMWORD[rax] + vmovdqa64 xmm7,XMMWORD[16+rax] + vmovdqa64 xmm8,XMMWORD[32+rax] + vmovdqa64 xmm9,XMMWORD[48+rax] + vmovdqa64 xmm10,XMMWORD[64+rax] + vmovdqa64 xmm11,XMMWORD[80+rax] + vmovdqa64 xmm12,XMMWORD[96+rax] + vmovdqa64 xmm13,XMMWORD[112+rax] + vmovdqa64 xmm14,XMMWORD[128+rax] + vmovdqa64 xmm15,XMMWORD[144+rax] + lea rax,[168+rsp] + mov r15,QWORD[rax] + + mov r14,QWORD[8+rax] + + mov r13,QWORD[16+rax] + + mov r12,QWORD[24+rax] + + mov rbp,QWORD[32+rax] + + mov rbx,QWORD[40+rax] + + lea rsp,[48+rax] + +$L$ossl_rsaz_amm52x30_x2_ifma256_epilogue: + mov rdi,QWORD[8+rsp] ;WIN64 epilogue + mov rsi,QWORD[16+rsp] + DB 0F3h,0C3h ;repret + +$L$SEH_end_ossl_rsaz_amm52x30_x2_ifma256: +section .text code align=64 + + +ALIGN 32 +global ossl_extract_multiplier_2x30_win5 + +ossl_extract_multiplier_2x30_win5: + +DB 243,15,30,250 + vmovdqa64 ymm30,YMMWORD[$L$ones] + vpbroadcastq ymm28,r8 + vpbroadcastq ymm29,r9 + lea rax,[16384+rdx] + + + vpxor xmm0,xmm0,xmm0 + vmovdqa64 ymm27,ymm0 + vmovdqa64 ymm1,ymm0 + vmovdqa64 ymm2,ymm0 + vmovdqa64 ymm3,ymm0 + vmovdqa64 ymm4,ymm0 + vmovdqa64 ymm5,ymm0 + vmovdqa64 ymm16,ymm0 + vmovdqa64 ymm17,ymm0 + vmovdqa64 ymm18,ymm0 + vmovdqa64 ymm19,ymm0 + vmovdqa64 ymm20,ymm0 + vmovdqa64 ymm21,ymm0 + vmovdqa64 ymm22,ymm0 + vmovdqa64 ymm23,ymm0 + vmovdqa64 ymm24,ymm0 + vmovdqa64 ymm25,ymm0 + +ALIGN 32 +$L$loop: + vpcmpq k1,ymm28,ymm27,0 + vpcmpq k2,ymm29,ymm27,0 + vmovdqu64 ymm26,YMMWORD[rdx] + vpblendmq ymm0{k1},ymm0,ymm26 + vmovdqu64 ymm26,YMMWORD[32+rdx] + vpblendmq ymm1{k1},ymm1,ymm26 + vmovdqu64 ymm26,YMMWORD[64+rdx] + vpblendmq ymm2{k1},ymm2,ymm26 + vmovdqu64 ymm26,YMMWORD[96+rdx] + vpblendmq ymm3{k1},ymm3,ymm26 + vmovdqu64 ymm26,YMMWORD[128+rdx] + vpblendmq ymm4{k1},ymm4,ymm26 + vmovdqu64 ymm26,YMMWORD[160+rdx] + vpblendmq ymm5{k1},ymm5,ymm26 + vmovdqu64 ymm26,YMMWORD[192+rdx] + vpblendmq ymm16{k1},ymm16,ymm26 + vmovdqu64 ymm26,YMMWORD[224+rdx] + vpblendmq ymm17{k1},ymm17,ymm26 + vmovdqu64 ymm26,YMMWORD[256+rdx] + vpblendmq ymm18{k2},ymm18,ymm26 + vmovdqu64 ymm26,YMMWORD[288+rdx] + vpblendmq ymm19{k2},ymm19,ymm26 + vmovdqu64 ymm26,YMMWORD[320+rdx] + vpblendmq ymm20{k2},ymm20,ymm26 + vmovdqu64 ymm26,YMMWORD[352+rdx] + vpblendmq ymm21{k2},ymm21,ymm26 + vmovdqu64 ymm26,YMMWORD[384+rdx] + vpblendmq ymm22{k2},ymm22,ymm26 + vmovdqu64 ymm26,YMMWORD[416+rdx] + vpblendmq ymm23{k2},ymm23,ymm26 + vmovdqu64 ymm26,YMMWORD[448+rdx] + vpblendmq ymm24{k2},ymm24,ymm26 + vmovdqu64 ymm26,YMMWORD[480+rdx] + vpblendmq ymm25{k2},ymm25,ymm26 + vpaddq ymm27,ymm27,ymm30 + add rdx,512 + cmp rax,rdx + jne NEAR $L$loop + vmovdqu64 YMMWORD[rcx],ymm0 + vmovdqu64 YMMWORD[32+rcx],ymm1 + vmovdqu64 YMMWORD[64+rcx],ymm2 + vmovdqu64 YMMWORD[96+rcx],ymm3 + vmovdqu64 YMMWORD[128+rcx],ymm4 + vmovdqu64 YMMWORD[160+rcx],ymm5 + vmovdqu64 YMMWORD[192+rcx],ymm16 + vmovdqu64 YMMWORD[224+rcx],ymm17 + vmovdqu64 YMMWORD[256+rcx],ymm18 + vmovdqu64 YMMWORD[288+rcx],ymm19 + vmovdqu64 YMMWORD[320+rcx],ymm20 + vmovdqu64 YMMWORD[352+rcx],ymm21 + vmovdqu64 YMMWORD[384+rcx],ymm22 + vmovdqu64 YMMWORD[416+rcx],ymm23 + vmovdqu64 YMMWORD[448+rcx],ymm24 + vmovdqu64 YMMWORD[480+rcx],ymm25 + + DB 0F3h,0C3h ;repret + + +section .rdata rdata align=32 +ALIGN 32 +$L$ones: + DQ 1,1,1,1 +$L$zeros: + DQ 0,0,0,0 +EXTERN __imp_RtlVirtualUnwind + +ALIGN 16 +rsaz_avx_handler: + push rsi + push rdi + push rbx + push rbp + push r12 + push r13 + push r14 + push r15 + pushfq + sub rsp,64 + + mov rax,QWORD[120+r8] + mov rbx,QWORD[248+r8] + + mov rsi,QWORD[8+r9] + mov r11,QWORD[56+r9] + + mov r10d,DWORD[r11] + lea r10,[r10*1+rsi] + cmp rbx,r10 + jb NEAR $L$common_seh_tail + + mov r10d,DWORD[4+r11] + lea r10,[r10*1+rsi] + cmp rbx,r10 + jae NEAR $L$common_seh_tail + + mov rax,QWORD[152+r8] + + lea rsi,[rax] + lea rdi,[512+r8] + mov ecx,20 + DD 0xa548f3fc + + lea rax,[216+rax] + + mov rbx,QWORD[((-8))+rax] + mov rbp,QWORD[((-16))+rax] + mov r12,QWORD[((-24))+rax] + mov r13,QWORD[((-32))+rax] + mov r14,QWORD[((-40))+rax] + mov r15,QWORD[((-48))+rax] + mov QWORD[144+r8],rbx + mov QWORD[160+r8],rbp + mov QWORD[216+r8],r12 + mov QWORD[224+r8],r13 + mov QWORD[232+r8],r14 + mov QWORD[240+r8],r15 + +$L$common_seh_tail: + mov rdi,QWORD[8+rax] + mov rsi,QWORD[16+rax] + mov QWORD[152+r8],rax + mov QWORD[168+r8],rsi + mov QWORD[176+r8],rdi + + mov rdi,QWORD[40+r9] + mov rsi,r8 + mov ecx,154 + DD 0xa548f3fc + + mov rsi,r9 + xor rcx,rcx + mov rdx,QWORD[8+rsi] + mov r8,QWORD[rsi] + mov r9,QWORD[16+rsi] + mov r10,QWORD[40+rsi] + lea r11,[56+rsi] + lea r12,[24+rsi] + mov QWORD[32+rsp],r10 + mov QWORD[40+rsp],r11 + mov QWORD[48+rsp],r12 + mov QWORD[56+rsp],rcx + call QWORD[__imp_RtlVirtualUnwind] + + mov eax,1 + add rsp,64 + popfq + pop r15 + pop r14 + pop r13 + pop r12 + pop rbp + pop rbx + pop rdi + pop rsi + DB 0F3h,0C3h ;repret + + +section .pdata rdata align=4 +ALIGN 4 + DD $L$SEH_begin_ossl_rsaz_amm52x30_x1_ifma256 wrt ..imagebase + DD $L$SEH_end_ossl_rsaz_amm52x30_x1_ifma256 wrt ..imagebase + DD $L$SEH_info_ossl_rsaz_amm52x30_x1_ifma256 wrt ..imagebase + + DD $L$SEH_begin_ossl_rsaz_amm52x30_x2_ifma256 wrt ..imagebase + DD $L$SEH_end_ossl_rsaz_amm52x30_x2_ifma256 wrt ..imagebase + DD $L$SEH_info_ossl_rsaz_amm52x30_x2_ifma256 wrt ..imagebase + +section .xdata rdata align=8 +ALIGN 8 +$L$SEH_info_ossl_rsaz_amm52x30_x1_ifma256: +DB 9,0,0,0 + DD rsaz_avx_handler wrt ..imagebase + DD $L$ossl_rsaz_amm52x30_x1_ifma256_body wrt ..imagebase,$L$ossl_rsaz_amm52x30_x1_ifma256_epilogue wrt ..imagebase +$L$SEH_info_ossl_rsaz_amm52x30_x2_ifma256: +DB 9,0,0,0 + DD rsaz_avx_handler wrt ..imagebase + DD $L$ossl_rsaz_amm52x30_x2_ifma256_body wrt ..imagebase,$L$ossl_rsaz_amm52x30_x2_ifma256_epilogue wrt ..imagebase diff --git a/deps/openssl/config/archs/VC-WIN64A/asm_avx2/crypto/bn/rsaz-3k-avxifma.asm b/deps/openssl/config/archs/VC-WIN64A/asm_avx2/crypto/bn/rsaz-3k-avxifma.asm new file mode 100644 index 00000000000000..b7dc264139e7ad --- /dev/null +++ b/deps/openssl/config/archs/VC-WIN64A/asm_avx2/crypto/bn/rsaz-3k-avxifma.asm @@ -0,0 +1,17 @@ +default rel +%define XMMWORD +%define YMMWORD +%define ZMMWORD +section .text code align=64 + + +global ossl_rsaz_amm52x30_x1_avxifma256 +global ossl_rsaz_amm52x30_x2_avxifma256 +global ossl_extract_multiplier_2x30_win5_avx + +ossl_rsaz_amm52x30_x1_avxifma256: +ossl_rsaz_amm52x30_x2_avxifma256: +ossl_extract_multiplier_2x30_win5_avx: +DB 0x0f,0x0b + DB 0F3h,0C3h ;repret + diff --git a/deps/openssl/config/archs/VC-WIN64A/asm_avx2/crypto/bn/rsaz-4k-avx512.asm b/deps/openssl/config/archs/VC-WIN64A/asm_avx2/crypto/bn/rsaz-4k-avx512.asm new file mode 100644 index 00000000000000..4e11925db699e6 --- /dev/null +++ b/deps/openssl/config/archs/VC-WIN64A/asm_avx2/crypto/bn/rsaz-4k-avx512.asm @@ -0,0 +1,1533 @@ +default rel +%define XMMWORD +%define YMMWORD +%define ZMMWORD +section .text code align=64 + + +global ossl_rsaz_amm52x40_x1_ifma256 + +ALIGN 32 +ossl_rsaz_amm52x40_x1_ifma256: + mov QWORD[8+rsp],rdi ;WIN64 prologue + mov QWORD[16+rsp],rsi + mov rax,rsp +$L$SEH_begin_ossl_rsaz_amm52x40_x1_ifma256: + mov rdi,rcx + mov rsi,rdx + mov rdx,r8 + mov rcx,r9 + mov r8,QWORD[40+rsp] + + + +DB 243,15,30,250 + push rbx + + push rbp + + push r12 + + push r13 + + push r14 + + push r15 + + lea rsp,[((-168))+rsp] + vmovdqa64 XMMWORD[rsp],xmm6 + vmovdqa64 XMMWORD[16+rsp],xmm7 + vmovdqa64 XMMWORD[32+rsp],xmm8 + vmovdqa64 XMMWORD[48+rsp],xmm9 + vmovdqa64 XMMWORD[64+rsp],xmm10 + vmovdqa64 XMMWORD[80+rsp],xmm11 + vmovdqa64 XMMWORD[96+rsp],xmm12 + vmovdqa64 XMMWORD[112+rsp],xmm13 + vmovdqa64 XMMWORD[128+rsp],xmm14 + vmovdqa64 XMMWORD[144+rsp],xmm15 +$L$ossl_rsaz_amm52x40_x1_ifma256_body: + + vpxord ymm0,ymm0,ymm0 + vmovdqa64 ymm3,ymm0 + vmovdqa64 ymm4,ymm0 + vmovdqa64 ymm5,ymm0 + vmovdqa64 ymm6,ymm0 + vmovdqa64 ymm7,ymm0 + vmovdqa64 ymm8,ymm0 + vmovdqa64 ymm9,ymm0 + vmovdqa64 ymm10,ymm0 + vmovdqa64 ymm11,ymm0 + vmovdqa64 ymm12,ymm0 + + xor r9d,r9d + + mov r11,rdx + mov rax,0xfffffffffffff + + + mov ebx,10 + +ALIGN 32 +$L$loop10: + mov r13,QWORD[r11] + + vpbroadcastq ymm1,r13 + mov rdx,QWORD[rsi] + mulx r12,r13,r13 + add r9,r13 + mov r10,r12 + adc r10,0 + + mov r13,r8 + imul r13,r9 + and r13,rax + + vpbroadcastq ymm2,r13 + mov rdx,QWORD[rcx] + mulx r12,r13,r13 + add r9,r13 + adc r10,r12 + + shr r9,52 + sal r10,12 + or r9,r10 + + vpmadd52luq ymm3,ymm1,YMMWORD[rsi] + vpmadd52luq ymm4,ymm1,YMMWORD[32+rsi] + vpmadd52luq ymm5,ymm1,YMMWORD[64+rsi] + vpmadd52luq ymm6,ymm1,YMMWORD[96+rsi] + vpmadd52luq ymm7,ymm1,YMMWORD[128+rsi] + vpmadd52luq ymm8,ymm1,YMMWORD[160+rsi] + vpmadd52luq ymm9,ymm1,YMMWORD[192+rsi] + vpmadd52luq ymm10,ymm1,YMMWORD[224+rsi] + vpmadd52luq ymm11,ymm1,YMMWORD[256+rsi] + vpmadd52luq ymm12,ymm1,YMMWORD[288+rsi] + + vpmadd52luq ymm3,ymm2,YMMWORD[rcx] + vpmadd52luq ymm4,ymm2,YMMWORD[32+rcx] + vpmadd52luq ymm5,ymm2,YMMWORD[64+rcx] + vpmadd52luq ymm6,ymm2,YMMWORD[96+rcx] + vpmadd52luq ymm7,ymm2,YMMWORD[128+rcx] + vpmadd52luq ymm8,ymm2,YMMWORD[160+rcx] + vpmadd52luq ymm9,ymm2,YMMWORD[192+rcx] + vpmadd52luq ymm10,ymm2,YMMWORD[224+rcx] + vpmadd52luq ymm11,ymm2,YMMWORD[256+rcx] + vpmadd52luq ymm12,ymm2,YMMWORD[288+rcx] + + + valignq ymm3,ymm4,ymm3,1 + valignq ymm4,ymm5,ymm4,1 + valignq ymm5,ymm6,ymm5,1 + valignq ymm6,ymm7,ymm6,1 + valignq ymm7,ymm8,ymm7,1 + valignq ymm8,ymm9,ymm8,1 + valignq ymm9,ymm10,ymm9,1 + valignq ymm10,ymm11,ymm10,1 + valignq ymm11,ymm12,ymm11,1 + valignq ymm12,ymm0,ymm12,1 + + vmovq r13,xmm3 + add r9,r13 + + vpmadd52huq ymm3,ymm1,YMMWORD[rsi] + vpmadd52huq ymm4,ymm1,YMMWORD[32+rsi] + vpmadd52huq ymm5,ymm1,YMMWORD[64+rsi] + vpmadd52huq ymm6,ymm1,YMMWORD[96+rsi] + vpmadd52huq ymm7,ymm1,YMMWORD[128+rsi] + vpmadd52huq ymm8,ymm1,YMMWORD[160+rsi] + vpmadd52huq ymm9,ymm1,YMMWORD[192+rsi] + vpmadd52huq ymm10,ymm1,YMMWORD[224+rsi] + vpmadd52huq ymm11,ymm1,YMMWORD[256+rsi] + vpmadd52huq ymm12,ymm1,YMMWORD[288+rsi] + + vpmadd52huq ymm3,ymm2,YMMWORD[rcx] + vpmadd52huq ymm4,ymm2,YMMWORD[32+rcx] + vpmadd52huq ymm5,ymm2,YMMWORD[64+rcx] + vpmadd52huq ymm6,ymm2,YMMWORD[96+rcx] + vpmadd52huq ymm7,ymm2,YMMWORD[128+rcx] + vpmadd52huq ymm8,ymm2,YMMWORD[160+rcx] + vpmadd52huq ymm9,ymm2,YMMWORD[192+rcx] + vpmadd52huq ymm10,ymm2,YMMWORD[224+rcx] + vpmadd52huq ymm11,ymm2,YMMWORD[256+rcx] + vpmadd52huq ymm12,ymm2,YMMWORD[288+rcx] + mov r13,QWORD[8+r11] + + vpbroadcastq ymm1,r13 + mov rdx,QWORD[rsi] + mulx r12,r13,r13 + add r9,r13 + mov r10,r12 + adc r10,0 + + mov r13,r8 + imul r13,r9 + and r13,rax + + vpbroadcastq ymm2,r13 + mov rdx,QWORD[rcx] + mulx r12,r13,r13 + add r9,r13 + adc r10,r12 + + shr r9,52 + sal r10,12 + or r9,r10 + + vpmadd52luq ymm3,ymm1,YMMWORD[rsi] + vpmadd52luq ymm4,ymm1,YMMWORD[32+rsi] + vpmadd52luq ymm5,ymm1,YMMWORD[64+rsi] + vpmadd52luq ymm6,ymm1,YMMWORD[96+rsi] + vpmadd52luq ymm7,ymm1,YMMWORD[128+rsi] + vpmadd52luq ymm8,ymm1,YMMWORD[160+rsi] + vpmadd52luq ymm9,ymm1,YMMWORD[192+rsi] + vpmadd52luq ymm10,ymm1,YMMWORD[224+rsi] + vpmadd52luq ymm11,ymm1,YMMWORD[256+rsi] + vpmadd52luq ymm12,ymm1,YMMWORD[288+rsi] + + vpmadd52luq ymm3,ymm2,YMMWORD[rcx] + vpmadd52luq ymm4,ymm2,YMMWORD[32+rcx] + vpmadd52luq ymm5,ymm2,YMMWORD[64+rcx] + vpmadd52luq ymm6,ymm2,YMMWORD[96+rcx] + vpmadd52luq ymm7,ymm2,YMMWORD[128+rcx] + vpmadd52luq ymm8,ymm2,YMMWORD[160+rcx] + vpmadd52luq ymm9,ymm2,YMMWORD[192+rcx] + vpmadd52luq ymm10,ymm2,YMMWORD[224+rcx] + vpmadd52luq ymm11,ymm2,YMMWORD[256+rcx] + vpmadd52luq ymm12,ymm2,YMMWORD[288+rcx] + + + valignq ymm3,ymm4,ymm3,1 + valignq ymm4,ymm5,ymm4,1 + valignq ymm5,ymm6,ymm5,1 + valignq ymm6,ymm7,ymm6,1 + valignq ymm7,ymm8,ymm7,1 + valignq ymm8,ymm9,ymm8,1 + valignq ymm9,ymm10,ymm9,1 + valignq ymm10,ymm11,ymm10,1 + valignq ymm11,ymm12,ymm11,1 + valignq ymm12,ymm0,ymm12,1 + + vmovq r13,xmm3 + add r9,r13 + + vpmadd52huq ymm3,ymm1,YMMWORD[rsi] + vpmadd52huq ymm4,ymm1,YMMWORD[32+rsi] + vpmadd52huq ymm5,ymm1,YMMWORD[64+rsi] + vpmadd52huq ymm6,ymm1,YMMWORD[96+rsi] + vpmadd52huq ymm7,ymm1,YMMWORD[128+rsi] + vpmadd52huq ymm8,ymm1,YMMWORD[160+rsi] + vpmadd52huq ymm9,ymm1,YMMWORD[192+rsi] + vpmadd52huq ymm10,ymm1,YMMWORD[224+rsi] + vpmadd52huq ymm11,ymm1,YMMWORD[256+rsi] + vpmadd52huq ymm12,ymm1,YMMWORD[288+rsi] + + vpmadd52huq ymm3,ymm2,YMMWORD[rcx] + vpmadd52huq ymm4,ymm2,YMMWORD[32+rcx] + vpmadd52huq ymm5,ymm2,YMMWORD[64+rcx] + vpmadd52huq ymm6,ymm2,YMMWORD[96+rcx] + vpmadd52huq ymm7,ymm2,YMMWORD[128+rcx] + vpmadd52huq ymm8,ymm2,YMMWORD[160+rcx] + vpmadd52huq ymm9,ymm2,YMMWORD[192+rcx] + vpmadd52huq ymm10,ymm2,YMMWORD[224+rcx] + vpmadd52huq ymm11,ymm2,YMMWORD[256+rcx] + vpmadd52huq ymm12,ymm2,YMMWORD[288+rcx] + mov r13,QWORD[16+r11] + + vpbroadcastq ymm1,r13 + mov rdx,QWORD[rsi] + mulx r12,r13,r13 + add r9,r13 + mov r10,r12 + adc r10,0 + + mov r13,r8 + imul r13,r9 + and r13,rax + + vpbroadcastq ymm2,r13 + mov rdx,QWORD[rcx] + mulx r12,r13,r13 + add r9,r13 + adc r10,r12 + + shr r9,52 + sal r10,12 + or r9,r10 + + vpmadd52luq ymm3,ymm1,YMMWORD[rsi] + vpmadd52luq ymm4,ymm1,YMMWORD[32+rsi] + vpmadd52luq ymm5,ymm1,YMMWORD[64+rsi] + vpmadd52luq ymm6,ymm1,YMMWORD[96+rsi] + vpmadd52luq ymm7,ymm1,YMMWORD[128+rsi] + vpmadd52luq ymm8,ymm1,YMMWORD[160+rsi] + vpmadd52luq ymm9,ymm1,YMMWORD[192+rsi] + vpmadd52luq ymm10,ymm1,YMMWORD[224+rsi] + vpmadd52luq ymm11,ymm1,YMMWORD[256+rsi] + vpmadd52luq ymm12,ymm1,YMMWORD[288+rsi] + + vpmadd52luq ymm3,ymm2,YMMWORD[rcx] + vpmadd52luq ymm4,ymm2,YMMWORD[32+rcx] + vpmadd52luq ymm5,ymm2,YMMWORD[64+rcx] + vpmadd52luq ymm6,ymm2,YMMWORD[96+rcx] + vpmadd52luq ymm7,ymm2,YMMWORD[128+rcx] + vpmadd52luq ymm8,ymm2,YMMWORD[160+rcx] + vpmadd52luq ymm9,ymm2,YMMWORD[192+rcx] + vpmadd52luq ymm10,ymm2,YMMWORD[224+rcx] + vpmadd52luq ymm11,ymm2,YMMWORD[256+rcx] + vpmadd52luq ymm12,ymm2,YMMWORD[288+rcx] + + + valignq ymm3,ymm4,ymm3,1 + valignq ymm4,ymm5,ymm4,1 + valignq ymm5,ymm6,ymm5,1 + valignq ymm6,ymm7,ymm6,1 + valignq ymm7,ymm8,ymm7,1 + valignq ymm8,ymm9,ymm8,1 + valignq ymm9,ymm10,ymm9,1 + valignq ymm10,ymm11,ymm10,1 + valignq ymm11,ymm12,ymm11,1 + valignq ymm12,ymm0,ymm12,1 + + vmovq r13,xmm3 + add r9,r13 + + vpmadd52huq ymm3,ymm1,YMMWORD[rsi] + vpmadd52huq ymm4,ymm1,YMMWORD[32+rsi] + vpmadd52huq ymm5,ymm1,YMMWORD[64+rsi] + vpmadd52huq ymm6,ymm1,YMMWORD[96+rsi] + vpmadd52huq ymm7,ymm1,YMMWORD[128+rsi] + vpmadd52huq ymm8,ymm1,YMMWORD[160+rsi] + vpmadd52huq ymm9,ymm1,YMMWORD[192+rsi] + vpmadd52huq ymm10,ymm1,YMMWORD[224+rsi] + vpmadd52huq ymm11,ymm1,YMMWORD[256+rsi] + vpmadd52huq ymm12,ymm1,YMMWORD[288+rsi] + + vpmadd52huq ymm3,ymm2,YMMWORD[rcx] + vpmadd52huq ymm4,ymm2,YMMWORD[32+rcx] + vpmadd52huq ymm5,ymm2,YMMWORD[64+rcx] + vpmadd52huq ymm6,ymm2,YMMWORD[96+rcx] + vpmadd52huq ymm7,ymm2,YMMWORD[128+rcx] + vpmadd52huq ymm8,ymm2,YMMWORD[160+rcx] + vpmadd52huq ymm9,ymm2,YMMWORD[192+rcx] + vpmadd52huq ymm10,ymm2,YMMWORD[224+rcx] + vpmadd52huq ymm11,ymm2,YMMWORD[256+rcx] + vpmadd52huq ymm12,ymm2,YMMWORD[288+rcx] + mov r13,QWORD[24+r11] + + vpbroadcastq ymm1,r13 + mov rdx,QWORD[rsi] + mulx r12,r13,r13 + add r9,r13 + mov r10,r12 + adc r10,0 + + mov r13,r8 + imul r13,r9 + and r13,rax + + vpbroadcastq ymm2,r13 + mov rdx,QWORD[rcx] + mulx r12,r13,r13 + add r9,r13 + adc r10,r12 + + shr r9,52 + sal r10,12 + or r9,r10 + + vpmadd52luq ymm3,ymm1,YMMWORD[rsi] + vpmadd52luq ymm4,ymm1,YMMWORD[32+rsi] + vpmadd52luq ymm5,ymm1,YMMWORD[64+rsi] + vpmadd52luq ymm6,ymm1,YMMWORD[96+rsi] + vpmadd52luq ymm7,ymm1,YMMWORD[128+rsi] + vpmadd52luq ymm8,ymm1,YMMWORD[160+rsi] + vpmadd52luq ymm9,ymm1,YMMWORD[192+rsi] + vpmadd52luq ymm10,ymm1,YMMWORD[224+rsi] + vpmadd52luq ymm11,ymm1,YMMWORD[256+rsi] + vpmadd52luq ymm12,ymm1,YMMWORD[288+rsi] + + vpmadd52luq ymm3,ymm2,YMMWORD[rcx] + vpmadd52luq ymm4,ymm2,YMMWORD[32+rcx] + vpmadd52luq ymm5,ymm2,YMMWORD[64+rcx] + vpmadd52luq ymm6,ymm2,YMMWORD[96+rcx] + vpmadd52luq ymm7,ymm2,YMMWORD[128+rcx] + vpmadd52luq ymm8,ymm2,YMMWORD[160+rcx] + vpmadd52luq ymm9,ymm2,YMMWORD[192+rcx] + vpmadd52luq ymm10,ymm2,YMMWORD[224+rcx] + vpmadd52luq ymm11,ymm2,YMMWORD[256+rcx] + vpmadd52luq ymm12,ymm2,YMMWORD[288+rcx] + + + valignq ymm3,ymm4,ymm3,1 + valignq ymm4,ymm5,ymm4,1 + valignq ymm5,ymm6,ymm5,1 + valignq ymm6,ymm7,ymm6,1 + valignq ymm7,ymm8,ymm7,1 + valignq ymm8,ymm9,ymm8,1 + valignq ymm9,ymm10,ymm9,1 + valignq ymm10,ymm11,ymm10,1 + valignq ymm11,ymm12,ymm11,1 + valignq ymm12,ymm0,ymm12,1 + + vmovq r13,xmm3 + add r9,r13 + + vpmadd52huq ymm3,ymm1,YMMWORD[rsi] + vpmadd52huq ymm4,ymm1,YMMWORD[32+rsi] + vpmadd52huq ymm5,ymm1,YMMWORD[64+rsi] + vpmadd52huq ymm6,ymm1,YMMWORD[96+rsi] + vpmadd52huq ymm7,ymm1,YMMWORD[128+rsi] + vpmadd52huq ymm8,ymm1,YMMWORD[160+rsi] + vpmadd52huq ymm9,ymm1,YMMWORD[192+rsi] + vpmadd52huq ymm10,ymm1,YMMWORD[224+rsi] + vpmadd52huq ymm11,ymm1,YMMWORD[256+rsi] + vpmadd52huq ymm12,ymm1,YMMWORD[288+rsi] + + vpmadd52huq ymm3,ymm2,YMMWORD[rcx] + vpmadd52huq ymm4,ymm2,YMMWORD[32+rcx] + vpmadd52huq ymm5,ymm2,YMMWORD[64+rcx] + vpmadd52huq ymm6,ymm2,YMMWORD[96+rcx] + vpmadd52huq ymm7,ymm2,YMMWORD[128+rcx] + vpmadd52huq ymm8,ymm2,YMMWORD[160+rcx] + vpmadd52huq ymm9,ymm2,YMMWORD[192+rcx] + vpmadd52huq ymm10,ymm2,YMMWORD[224+rcx] + vpmadd52huq ymm11,ymm2,YMMWORD[256+rcx] + vpmadd52huq ymm12,ymm2,YMMWORD[288+rcx] + lea r11,[32+r11] + dec ebx + jne NEAR $L$loop10 + + vpbroadcastq ymm0,r9 + vpblendd ymm3,ymm3,ymm0,3 + + + + vpsrlq ymm0,ymm3,52 + vpsrlq ymm1,ymm4,52 + vpsrlq ymm2,ymm5,52 + vpsrlq ymm23,ymm6,52 + vpsrlq ymm24,ymm7,52 + vpsrlq ymm25,ymm8,52 + vpsrlq ymm26,ymm9,52 + vpsrlq ymm27,ymm10,52 + vpsrlq ymm28,ymm11,52 + vpsrlq ymm29,ymm12,52 + + + valignq ymm29,ymm29,ymm28,3 + valignq ymm28,ymm28,ymm27,3 + valignq ymm27,ymm27,ymm26,3 + valignq ymm26,ymm26,ymm25,3 + valignq ymm25,ymm25,ymm24,3 + valignq ymm24,ymm24,ymm23,3 + valignq ymm23,ymm23,ymm2,3 + valignq ymm2,ymm2,ymm1,3 + valignq ymm1,ymm1,ymm0,3 + valignq ymm0,ymm0,YMMWORD[$L$zeros],3 + + + vpandq ymm3,ymm3,YMMWORD[$L$mask52x4] + vpandq ymm4,ymm4,YMMWORD[$L$mask52x4] + vpandq ymm5,ymm5,YMMWORD[$L$mask52x4] + vpandq ymm6,ymm6,YMMWORD[$L$mask52x4] + vpandq ymm7,ymm7,YMMWORD[$L$mask52x4] + vpandq ymm8,ymm8,YMMWORD[$L$mask52x4] + vpandq ymm9,ymm9,YMMWORD[$L$mask52x4] + vpandq ymm10,ymm10,YMMWORD[$L$mask52x4] + vpandq ymm11,ymm11,YMMWORD[$L$mask52x4] + vpandq ymm12,ymm12,YMMWORD[$L$mask52x4] + + + vpaddq ymm3,ymm3,ymm0 + vpaddq ymm4,ymm4,ymm1 + vpaddq ymm5,ymm5,ymm2 + vpaddq ymm6,ymm6,ymm23 + vpaddq ymm7,ymm7,ymm24 + vpaddq ymm8,ymm8,ymm25 + vpaddq ymm9,ymm9,ymm26 + vpaddq ymm10,ymm10,ymm27 + vpaddq ymm11,ymm11,ymm28 + vpaddq ymm12,ymm12,ymm29 + + + + vpcmpuq k1,ymm3,YMMWORD[$L$mask52x4],6 + vpcmpuq k2,ymm4,YMMWORD[$L$mask52x4],6 + kmovb r14d,k1 + kmovb r13d,k2 + shl r13b,4 + or r14b,r13b + + vpcmpuq k1,ymm5,YMMWORD[$L$mask52x4],6 + vpcmpuq k2,ymm6,YMMWORD[$L$mask52x4],6 + kmovb r13d,k1 + kmovb r12d,k2 + shl r12b,4 + or r13b,r12b + + vpcmpuq k1,ymm7,YMMWORD[$L$mask52x4],6 + vpcmpuq k2,ymm8,YMMWORD[$L$mask52x4],6 + kmovb r12d,k1 + kmovb r11d,k2 + shl r11b,4 + or r12b,r11b + + vpcmpuq k1,ymm9,YMMWORD[$L$mask52x4],6 + vpcmpuq k2,ymm10,YMMWORD[$L$mask52x4],6 + kmovb r11d,k1 + kmovb r10d,k2 + shl r10b,4 + or r11b,r10b + + vpcmpuq k1,ymm11,YMMWORD[$L$mask52x4],6 + vpcmpuq k2,ymm12,YMMWORD[$L$mask52x4],6 + kmovb r10d,k1 + kmovb r9d,k2 + shl r9b,4 + or r10b,r9b + + add r14b,r14b + adc r13b,r13b + adc r12b,r12b + adc r11b,r11b + adc r10b,r10b + + + vpcmpuq k1,ymm3,YMMWORD[$L$mask52x4],0 + vpcmpuq k2,ymm4,YMMWORD[$L$mask52x4],0 + kmovb r9d,k1 + kmovb r8d,k2 + shl r8b,4 + or r9b,r8b + + vpcmpuq k1,ymm5,YMMWORD[$L$mask52x4],0 + vpcmpuq k2,ymm6,YMMWORD[$L$mask52x4],0 + kmovb r8d,k1 + kmovb edx,k2 + shl dl,4 + or r8b,dl + + vpcmpuq k1,ymm7,YMMWORD[$L$mask52x4],0 + vpcmpuq k2,ymm8,YMMWORD[$L$mask52x4],0 + kmovb edx,k1 + kmovb ecx,k2 + shl cl,4 + or dl,cl + + vpcmpuq k1,ymm9,YMMWORD[$L$mask52x4],0 + vpcmpuq k2,ymm10,YMMWORD[$L$mask52x4],0 + kmovb ecx,k1 + kmovb ebx,k2 + shl bl,4 + or cl,bl + + vpcmpuq k1,ymm11,YMMWORD[$L$mask52x4],0 + vpcmpuq k2,ymm12,YMMWORD[$L$mask52x4],0 + kmovb ebx,k1 + kmovb eax,k2 + shl al,4 + or bl,al + + add r14b,r9b + adc r13b,r8b + adc r12b,dl + adc r11b,cl + adc r10b,bl + + xor r14b,r9b + xor r13b,r8b + xor r12b,dl + xor r11b,cl + xor r10b,bl + + kmovb k1,r14d + shr r14b,4 + kmovb k2,r14d + kmovb k3,r13d + shr r13b,4 + kmovb k4,r13d + kmovb k5,r12d + shr r12b,4 + kmovb k6,r12d + kmovb k7,r11d + + vpsubq ymm3{k1},ymm3,YMMWORD[$L$mask52x4] + vpsubq ymm4{k2},ymm4,YMMWORD[$L$mask52x4] + vpsubq ymm5{k3},ymm5,YMMWORD[$L$mask52x4] + vpsubq ymm6{k4},ymm6,YMMWORD[$L$mask52x4] + vpsubq ymm7{k5},ymm7,YMMWORD[$L$mask52x4] + vpsubq ymm8{k6},ymm8,YMMWORD[$L$mask52x4] + vpsubq ymm9{k7},ymm9,YMMWORD[$L$mask52x4] + + vpandq ymm3,ymm3,YMMWORD[$L$mask52x4] + vpandq ymm4,ymm4,YMMWORD[$L$mask52x4] + vpandq ymm5,ymm5,YMMWORD[$L$mask52x4] + vpandq ymm6,ymm6,YMMWORD[$L$mask52x4] + vpandq ymm7,ymm7,YMMWORD[$L$mask52x4] + vpandq ymm8,ymm8,YMMWORD[$L$mask52x4] + vpandq ymm9,ymm9,YMMWORD[$L$mask52x4] + + shr r11b,4 + kmovb k1,r11d + kmovb k2,r10d + shr r10b,4 + kmovb k3,r10d + + vpsubq ymm10{k1},ymm10,YMMWORD[$L$mask52x4] + vpsubq ymm11{k2},ymm11,YMMWORD[$L$mask52x4] + vpsubq ymm12{k3},ymm12,YMMWORD[$L$mask52x4] + + vpandq ymm10,ymm10,YMMWORD[$L$mask52x4] + vpandq ymm11,ymm11,YMMWORD[$L$mask52x4] + vpandq ymm12,ymm12,YMMWORD[$L$mask52x4] + + vmovdqu64 YMMWORD[rdi],ymm3 + vmovdqu64 YMMWORD[32+rdi],ymm4 + vmovdqu64 YMMWORD[64+rdi],ymm5 + vmovdqu64 YMMWORD[96+rdi],ymm6 + vmovdqu64 YMMWORD[128+rdi],ymm7 + vmovdqu64 YMMWORD[160+rdi],ymm8 + vmovdqu64 YMMWORD[192+rdi],ymm9 + vmovdqu64 YMMWORD[224+rdi],ymm10 + vmovdqu64 YMMWORD[256+rdi],ymm11 + vmovdqu64 YMMWORD[288+rdi],ymm12 + + vzeroupper + lea rax,[rsp] + + vmovdqa64 xmm6,XMMWORD[rax] + vmovdqa64 xmm7,XMMWORD[16+rax] + vmovdqa64 xmm8,XMMWORD[32+rax] + vmovdqa64 xmm9,XMMWORD[48+rax] + vmovdqa64 xmm10,XMMWORD[64+rax] + vmovdqa64 xmm11,XMMWORD[80+rax] + vmovdqa64 xmm12,XMMWORD[96+rax] + vmovdqa64 xmm13,XMMWORD[112+rax] + vmovdqa64 xmm14,XMMWORD[128+rax] + vmovdqa64 xmm15,XMMWORD[144+rax] + lea rax,[168+rsp] + mov r15,QWORD[rax] + + mov r14,QWORD[8+rax] + + mov r13,QWORD[16+rax] + + mov r12,QWORD[24+rax] + + mov rbp,QWORD[32+rax] + + mov rbx,QWORD[40+rax] + + lea rsp,[48+rax] + +$L$ossl_rsaz_amm52x40_x1_ifma256_epilogue: + + mov rdi,QWORD[8+rsp] ;WIN64 epilogue + mov rsi,QWORD[16+rsp] + DB 0F3h,0C3h ;repret + +$L$SEH_end_ossl_rsaz_amm52x40_x1_ifma256: +section .rdata rdata align=32 +ALIGN 32 +$L$mask52x4: + DQ 0xfffffffffffff + DQ 0xfffffffffffff + DQ 0xfffffffffffff + DQ 0xfffffffffffff +section .text code align=64 + + +global ossl_rsaz_amm52x40_x2_ifma256 + +ALIGN 32 +ossl_rsaz_amm52x40_x2_ifma256: + mov QWORD[8+rsp],rdi ;WIN64 prologue + mov QWORD[16+rsp],rsi + mov rax,rsp +$L$SEH_begin_ossl_rsaz_amm52x40_x2_ifma256: + mov rdi,rcx + mov rsi,rdx + mov rdx,r8 + mov rcx,r9 + mov r8,QWORD[40+rsp] + + + +DB 243,15,30,250 + push rbx + + push rbp + + push r12 + + push r13 + + push r14 + + push r15 + + lea rsp,[((-168))+rsp] + vmovdqa64 XMMWORD[rsp],xmm6 + vmovdqa64 XMMWORD[16+rsp],xmm7 + vmovdqa64 XMMWORD[32+rsp],xmm8 + vmovdqa64 XMMWORD[48+rsp],xmm9 + vmovdqa64 XMMWORD[64+rsp],xmm10 + vmovdqa64 XMMWORD[80+rsp],xmm11 + vmovdqa64 XMMWORD[96+rsp],xmm12 + vmovdqa64 XMMWORD[112+rsp],xmm13 + vmovdqa64 XMMWORD[128+rsp],xmm14 + vmovdqa64 XMMWORD[144+rsp],xmm15 +$L$ossl_rsaz_amm52x40_x2_ifma256_body: + + vpxord ymm0,ymm0,ymm0 + vmovdqa64 ymm3,ymm0 + vmovdqa64 ymm4,ymm0 + vmovdqa64 ymm5,ymm0 + vmovdqa64 ymm6,ymm0 + vmovdqa64 ymm7,ymm0 + vmovdqa64 ymm8,ymm0 + vmovdqa64 ymm9,ymm0 + vmovdqa64 ymm10,ymm0 + vmovdqa64 ymm11,ymm0 + vmovdqa64 ymm12,ymm0 + + vmovdqa64 ymm13,ymm0 + vmovdqa64 ymm14,ymm0 + vmovdqa64 ymm15,ymm0 + vmovdqa64 ymm16,ymm0 + vmovdqa64 ymm17,ymm0 + vmovdqa64 ymm18,ymm0 + vmovdqa64 ymm19,ymm0 + vmovdqa64 ymm20,ymm0 + vmovdqa64 ymm21,ymm0 + vmovdqa64 ymm22,ymm0 + + + xor r9d,r9d + xor r15d,r15d + + mov r11,rdx + mov rax,0xfffffffffffff + + mov ebx,40 + +ALIGN 32 +$L$loop40: + mov r13,QWORD[r11] + + vpbroadcastq ymm1,r13 + mov rdx,QWORD[rsi] + mulx r12,r13,r13 + add r9,r13 + mov r10,r12 + adc r10,0 + + mov r13,QWORD[r8] + imul r13,r9 + and r13,rax + + vpbroadcastq ymm2,r13 + mov rdx,QWORD[rcx] + mulx r12,r13,r13 + add r9,r13 + adc r10,r12 + + shr r9,52 + sal r10,12 + or r9,r10 + + vpmadd52luq ymm3,ymm1,YMMWORD[rsi] + vpmadd52luq ymm4,ymm1,YMMWORD[32+rsi] + vpmadd52luq ymm5,ymm1,YMMWORD[64+rsi] + vpmadd52luq ymm6,ymm1,YMMWORD[96+rsi] + vpmadd52luq ymm7,ymm1,YMMWORD[128+rsi] + vpmadd52luq ymm8,ymm1,YMMWORD[160+rsi] + vpmadd52luq ymm9,ymm1,YMMWORD[192+rsi] + vpmadd52luq ymm10,ymm1,YMMWORD[224+rsi] + vpmadd52luq ymm11,ymm1,YMMWORD[256+rsi] + vpmadd52luq ymm12,ymm1,YMMWORD[288+rsi] + + vpmadd52luq ymm3,ymm2,YMMWORD[rcx] + vpmadd52luq ymm4,ymm2,YMMWORD[32+rcx] + vpmadd52luq ymm5,ymm2,YMMWORD[64+rcx] + vpmadd52luq ymm6,ymm2,YMMWORD[96+rcx] + vpmadd52luq ymm7,ymm2,YMMWORD[128+rcx] + vpmadd52luq ymm8,ymm2,YMMWORD[160+rcx] + vpmadd52luq ymm9,ymm2,YMMWORD[192+rcx] + vpmadd52luq ymm10,ymm2,YMMWORD[224+rcx] + vpmadd52luq ymm11,ymm2,YMMWORD[256+rcx] + vpmadd52luq ymm12,ymm2,YMMWORD[288+rcx] + + + valignq ymm3,ymm4,ymm3,1 + valignq ymm4,ymm5,ymm4,1 + valignq ymm5,ymm6,ymm5,1 + valignq ymm6,ymm7,ymm6,1 + valignq ymm7,ymm8,ymm7,1 + valignq ymm8,ymm9,ymm8,1 + valignq ymm9,ymm10,ymm9,1 + valignq ymm10,ymm11,ymm10,1 + valignq ymm11,ymm12,ymm11,1 + valignq ymm12,ymm0,ymm12,1 + + vmovq r13,xmm3 + add r9,r13 + + vpmadd52huq ymm3,ymm1,YMMWORD[rsi] + vpmadd52huq ymm4,ymm1,YMMWORD[32+rsi] + vpmadd52huq ymm5,ymm1,YMMWORD[64+rsi] + vpmadd52huq ymm6,ymm1,YMMWORD[96+rsi] + vpmadd52huq ymm7,ymm1,YMMWORD[128+rsi] + vpmadd52huq ymm8,ymm1,YMMWORD[160+rsi] + vpmadd52huq ymm9,ymm1,YMMWORD[192+rsi] + vpmadd52huq ymm10,ymm1,YMMWORD[224+rsi] + vpmadd52huq ymm11,ymm1,YMMWORD[256+rsi] + vpmadd52huq ymm12,ymm1,YMMWORD[288+rsi] + + vpmadd52huq ymm3,ymm2,YMMWORD[rcx] + vpmadd52huq ymm4,ymm2,YMMWORD[32+rcx] + vpmadd52huq ymm5,ymm2,YMMWORD[64+rcx] + vpmadd52huq ymm6,ymm2,YMMWORD[96+rcx] + vpmadd52huq ymm7,ymm2,YMMWORD[128+rcx] + vpmadd52huq ymm8,ymm2,YMMWORD[160+rcx] + vpmadd52huq ymm9,ymm2,YMMWORD[192+rcx] + vpmadd52huq ymm10,ymm2,YMMWORD[224+rcx] + vpmadd52huq ymm11,ymm2,YMMWORD[256+rcx] + vpmadd52huq ymm12,ymm2,YMMWORD[288+rcx] + mov r13,QWORD[320+r11] + + vpbroadcastq ymm1,r13 + mov rdx,QWORD[320+rsi] + mulx r12,r13,r13 + add r15,r13 + mov r10,r12 + adc r10,0 + + mov r13,QWORD[8+r8] + imul r13,r15 + and r13,rax + + vpbroadcastq ymm2,r13 + mov rdx,QWORD[320+rcx] + mulx r12,r13,r13 + add r15,r13 + adc r10,r12 + + shr r15,52 + sal r10,12 + or r15,r10 + + vpmadd52luq ymm13,ymm1,YMMWORD[320+rsi] + vpmadd52luq ymm14,ymm1,YMMWORD[352+rsi] + vpmadd52luq ymm15,ymm1,YMMWORD[384+rsi] + vpmadd52luq ymm16,ymm1,YMMWORD[416+rsi] + vpmadd52luq ymm17,ymm1,YMMWORD[448+rsi] + vpmadd52luq ymm18,ymm1,YMMWORD[480+rsi] + vpmadd52luq ymm19,ymm1,YMMWORD[512+rsi] + vpmadd52luq ymm20,ymm1,YMMWORD[544+rsi] + vpmadd52luq ymm21,ymm1,YMMWORD[576+rsi] + vpmadd52luq ymm22,ymm1,YMMWORD[608+rsi] + + vpmadd52luq ymm13,ymm2,YMMWORD[320+rcx] + vpmadd52luq ymm14,ymm2,YMMWORD[352+rcx] + vpmadd52luq ymm15,ymm2,YMMWORD[384+rcx] + vpmadd52luq ymm16,ymm2,YMMWORD[416+rcx] + vpmadd52luq ymm17,ymm2,YMMWORD[448+rcx] + vpmadd52luq ymm18,ymm2,YMMWORD[480+rcx] + vpmadd52luq ymm19,ymm2,YMMWORD[512+rcx] + vpmadd52luq ymm20,ymm2,YMMWORD[544+rcx] + vpmadd52luq ymm21,ymm2,YMMWORD[576+rcx] + vpmadd52luq ymm22,ymm2,YMMWORD[608+rcx] + + + valignq ymm13,ymm14,ymm13,1 + valignq ymm14,ymm15,ymm14,1 + valignq ymm15,ymm16,ymm15,1 + valignq ymm16,ymm17,ymm16,1 + valignq ymm17,ymm18,ymm17,1 + valignq ymm18,ymm19,ymm18,1 + valignq ymm19,ymm20,ymm19,1 + valignq ymm20,ymm21,ymm20,1 + valignq ymm21,ymm22,ymm21,1 + valignq ymm22,ymm0,ymm22,1 + + vmovq r13,xmm13 + add r15,r13 + + vpmadd52huq ymm13,ymm1,YMMWORD[320+rsi] + vpmadd52huq ymm14,ymm1,YMMWORD[352+rsi] + vpmadd52huq ymm15,ymm1,YMMWORD[384+rsi] + vpmadd52huq ymm16,ymm1,YMMWORD[416+rsi] + vpmadd52huq ymm17,ymm1,YMMWORD[448+rsi] + vpmadd52huq ymm18,ymm1,YMMWORD[480+rsi] + vpmadd52huq ymm19,ymm1,YMMWORD[512+rsi] + vpmadd52huq ymm20,ymm1,YMMWORD[544+rsi] + vpmadd52huq ymm21,ymm1,YMMWORD[576+rsi] + vpmadd52huq ymm22,ymm1,YMMWORD[608+rsi] + + vpmadd52huq ymm13,ymm2,YMMWORD[320+rcx] + vpmadd52huq ymm14,ymm2,YMMWORD[352+rcx] + vpmadd52huq ymm15,ymm2,YMMWORD[384+rcx] + vpmadd52huq ymm16,ymm2,YMMWORD[416+rcx] + vpmadd52huq ymm17,ymm2,YMMWORD[448+rcx] + vpmadd52huq ymm18,ymm2,YMMWORD[480+rcx] + vpmadd52huq ymm19,ymm2,YMMWORD[512+rcx] + vpmadd52huq ymm20,ymm2,YMMWORD[544+rcx] + vpmadd52huq ymm21,ymm2,YMMWORD[576+rcx] + vpmadd52huq ymm22,ymm2,YMMWORD[608+rcx] + lea r11,[8+r11] + dec ebx + jne NEAR $L$loop40 + + vpbroadcastq ymm0,r9 + vpblendd ymm3,ymm3,ymm0,3 + + + + vpsrlq ymm0,ymm3,52 + vpsrlq ymm1,ymm4,52 + vpsrlq ymm2,ymm5,52 + vpsrlq ymm23,ymm6,52 + vpsrlq ymm24,ymm7,52 + vpsrlq ymm25,ymm8,52 + vpsrlq ymm26,ymm9,52 + vpsrlq ymm27,ymm10,52 + vpsrlq ymm28,ymm11,52 + vpsrlq ymm29,ymm12,52 + + + valignq ymm29,ymm29,ymm28,3 + valignq ymm28,ymm28,ymm27,3 + valignq ymm27,ymm27,ymm26,3 + valignq ymm26,ymm26,ymm25,3 + valignq ymm25,ymm25,ymm24,3 + valignq ymm24,ymm24,ymm23,3 + valignq ymm23,ymm23,ymm2,3 + valignq ymm2,ymm2,ymm1,3 + valignq ymm1,ymm1,ymm0,3 + valignq ymm0,ymm0,YMMWORD[$L$zeros],3 + + + vpandq ymm3,ymm3,YMMWORD[$L$mask52x4] + vpandq ymm4,ymm4,YMMWORD[$L$mask52x4] + vpandq ymm5,ymm5,YMMWORD[$L$mask52x4] + vpandq ymm6,ymm6,YMMWORD[$L$mask52x4] + vpandq ymm7,ymm7,YMMWORD[$L$mask52x4] + vpandq ymm8,ymm8,YMMWORD[$L$mask52x4] + vpandq ymm9,ymm9,YMMWORD[$L$mask52x4] + vpandq ymm10,ymm10,YMMWORD[$L$mask52x4] + vpandq ymm11,ymm11,YMMWORD[$L$mask52x4] + vpandq ymm12,ymm12,YMMWORD[$L$mask52x4] + + + vpaddq ymm3,ymm3,ymm0 + vpaddq ymm4,ymm4,ymm1 + vpaddq ymm5,ymm5,ymm2 + vpaddq ymm6,ymm6,ymm23 + vpaddq ymm7,ymm7,ymm24 + vpaddq ymm8,ymm8,ymm25 + vpaddq ymm9,ymm9,ymm26 + vpaddq ymm10,ymm10,ymm27 + vpaddq ymm11,ymm11,ymm28 + vpaddq ymm12,ymm12,ymm29 + + + + vpcmpuq k1,ymm3,YMMWORD[$L$mask52x4],6 + vpcmpuq k2,ymm4,YMMWORD[$L$mask52x4],6 + kmovb r14d,k1 + kmovb r13d,k2 + shl r13b,4 + or r14b,r13b + + vpcmpuq k1,ymm5,YMMWORD[$L$mask52x4],6 + vpcmpuq k2,ymm6,YMMWORD[$L$mask52x4],6 + kmovb r13d,k1 + kmovb r12d,k2 + shl r12b,4 + or r13b,r12b + + vpcmpuq k1,ymm7,YMMWORD[$L$mask52x4],6 + vpcmpuq k2,ymm8,YMMWORD[$L$mask52x4],6 + kmovb r12d,k1 + kmovb r11d,k2 + shl r11b,4 + or r12b,r11b + + vpcmpuq k1,ymm9,YMMWORD[$L$mask52x4],6 + vpcmpuq k2,ymm10,YMMWORD[$L$mask52x4],6 + kmovb r11d,k1 + kmovb r10d,k2 + shl r10b,4 + or r11b,r10b + + vpcmpuq k1,ymm11,YMMWORD[$L$mask52x4],6 + vpcmpuq k2,ymm12,YMMWORD[$L$mask52x4],6 + kmovb r10d,k1 + kmovb r9d,k2 + shl r9b,4 + or r10b,r9b + + add r14b,r14b + adc r13b,r13b + adc r12b,r12b + adc r11b,r11b + adc r10b,r10b + + + vpcmpuq k1,ymm3,YMMWORD[$L$mask52x4],0 + vpcmpuq k2,ymm4,YMMWORD[$L$mask52x4],0 + kmovb r9d,k1 + kmovb r8d,k2 + shl r8b,4 + or r9b,r8b + + vpcmpuq k1,ymm5,YMMWORD[$L$mask52x4],0 + vpcmpuq k2,ymm6,YMMWORD[$L$mask52x4],0 + kmovb r8d,k1 + kmovb edx,k2 + shl dl,4 + or r8b,dl + + vpcmpuq k1,ymm7,YMMWORD[$L$mask52x4],0 + vpcmpuq k2,ymm8,YMMWORD[$L$mask52x4],0 + kmovb edx,k1 + kmovb ecx,k2 + shl cl,4 + or dl,cl + + vpcmpuq k1,ymm9,YMMWORD[$L$mask52x4],0 + vpcmpuq k2,ymm10,YMMWORD[$L$mask52x4],0 + kmovb ecx,k1 + kmovb ebx,k2 + shl bl,4 + or cl,bl + + vpcmpuq k1,ymm11,YMMWORD[$L$mask52x4],0 + vpcmpuq k2,ymm12,YMMWORD[$L$mask52x4],0 + kmovb ebx,k1 + kmovb eax,k2 + shl al,4 + or bl,al + + add r14b,r9b + adc r13b,r8b + adc r12b,dl + adc r11b,cl + adc r10b,bl + + xor r14b,r9b + xor r13b,r8b + xor r12b,dl + xor r11b,cl + xor r10b,bl + + kmovb k1,r14d + shr r14b,4 + kmovb k2,r14d + kmovb k3,r13d + shr r13b,4 + kmovb k4,r13d + kmovb k5,r12d + shr r12b,4 + kmovb k6,r12d + kmovb k7,r11d + + vpsubq ymm3{k1},ymm3,YMMWORD[$L$mask52x4] + vpsubq ymm4{k2},ymm4,YMMWORD[$L$mask52x4] + vpsubq ymm5{k3},ymm5,YMMWORD[$L$mask52x4] + vpsubq ymm6{k4},ymm6,YMMWORD[$L$mask52x4] + vpsubq ymm7{k5},ymm7,YMMWORD[$L$mask52x4] + vpsubq ymm8{k6},ymm8,YMMWORD[$L$mask52x4] + vpsubq ymm9{k7},ymm9,YMMWORD[$L$mask52x4] + + vpandq ymm3,ymm3,YMMWORD[$L$mask52x4] + vpandq ymm4,ymm4,YMMWORD[$L$mask52x4] + vpandq ymm5,ymm5,YMMWORD[$L$mask52x4] + vpandq ymm6,ymm6,YMMWORD[$L$mask52x4] + vpandq ymm7,ymm7,YMMWORD[$L$mask52x4] + vpandq ymm8,ymm8,YMMWORD[$L$mask52x4] + vpandq ymm9,ymm9,YMMWORD[$L$mask52x4] + + shr r11b,4 + kmovb k1,r11d + kmovb k2,r10d + shr r10b,4 + kmovb k3,r10d + + vpsubq ymm10{k1},ymm10,YMMWORD[$L$mask52x4] + vpsubq ymm11{k2},ymm11,YMMWORD[$L$mask52x4] + vpsubq ymm12{k3},ymm12,YMMWORD[$L$mask52x4] + + vpandq ymm10,ymm10,YMMWORD[$L$mask52x4] + vpandq ymm11,ymm11,YMMWORD[$L$mask52x4] + vpandq ymm12,ymm12,YMMWORD[$L$mask52x4] + + vpbroadcastq ymm0,r15 + vpblendd ymm13,ymm13,ymm0,3 + + + + vpsrlq ymm0,ymm13,52 + vpsrlq ymm1,ymm14,52 + vpsrlq ymm2,ymm15,52 + vpsrlq ymm23,ymm16,52 + vpsrlq ymm24,ymm17,52 + vpsrlq ymm25,ymm18,52 + vpsrlq ymm26,ymm19,52 + vpsrlq ymm27,ymm20,52 + vpsrlq ymm28,ymm21,52 + vpsrlq ymm29,ymm22,52 + + + valignq ymm29,ymm29,ymm28,3 + valignq ymm28,ymm28,ymm27,3 + valignq ymm27,ymm27,ymm26,3 + valignq ymm26,ymm26,ymm25,3 + valignq ymm25,ymm25,ymm24,3 + valignq ymm24,ymm24,ymm23,3 + valignq ymm23,ymm23,ymm2,3 + valignq ymm2,ymm2,ymm1,3 + valignq ymm1,ymm1,ymm0,3 + valignq ymm0,ymm0,YMMWORD[$L$zeros],3 + + + vpandq ymm13,ymm13,YMMWORD[$L$mask52x4] + vpandq ymm14,ymm14,YMMWORD[$L$mask52x4] + vpandq ymm15,ymm15,YMMWORD[$L$mask52x4] + vpandq ymm16,ymm16,YMMWORD[$L$mask52x4] + vpandq ymm17,ymm17,YMMWORD[$L$mask52x4] + vpandq ymm18,ymm18,YMMWORD[$L$mask52x4] + vpandq ymm19,ymm19,YMMWORD[$L$mask52x4] + vpandq ymm20,ymm20,YMMWORD[$L$mask52x4] + vpandq ymm21,ymm21,YMMWORD[$L$mask52x4] + vpandq ymm22,ymm22,YMMWORD[$L$mask52x4] + + + vpaddq ymm13,ymm13,ymm0 + vpaddq ymm14,ymm14,ymm1 + vpaddq ymm15,ymm15,ymm2 + vpaddq ymm16,ymm16,ymm23 + vpaddq ymm17,ymm17,ymm24 + vpaddq ymm18,ymm18,ymm25 + vpaddq ymm19,ymm19,ymm26 + vpaddq ymm20,ymm20,ymm27 + vpaddq ymm21,ymm21,ymm28 + vpaddq ymm22,ymm22,ymm29 + + + + vpcmpuq k1,ymm13,YMMWORD[$L$mask52x4],6 + vpcmpuq k2,ymm14,YMMWORD[$L$mask52x4],6 + kmovb r14d,k1 + kmovb r13d,k2 + shl r13b,4 + or r14b,r13b + + vpcmpuq k1,ymm15,YMMWORD[$L$mask52x4],6 + vpcmpuq k2,ymm16,YMMWORD[$L$mask52x4],6 + kmovb r13d,k1 + kmovb r12d,k2 + shl r12b,4 + or r13b,r12b + + vpcmpuq k1,ymm17,YMMWORD[$L$mask52x4],6 + vpcmpuq k2,ymm18,YMMWORD[$L$mask52x4],6 + kmovb r12d,k1 + kmovb r11d,k2 + shl r11b,4 + or r12b,r11b + + vpcmpuq k1,ymm19,YMMWORD[$L$mask52x4],6 + vpcmpuq k2,ymm20,YMMWORD[$L$mask52x4],6 + kmovb r11d,k1 + kmovb r10d,k2 + shl r10b,4 + or r11b,r10b + + vpcmpuq k1,ymm21,YMMWORD[$L$mask52x4],6 + vpcmpuq k2,ymm22,YMMWORD[$L$mask52x4],6 + kmovb r10d,k1 + kmovb r9d,k2 + shl r9b,4 + or r10b,r9b + + add r14b,r14b + adc r13b,r13b + adc r12b,r12b + adc r11b,r11b + adc r10b,r10b + + + vpcmpuq k1,ymm13,YMMWORD[$L$mask52x4],0 + vpcmpuq k2,ymm14,YMMWORD[$L$mask52x4],0 + kmovb r9d,k1 + kmovb r8d,k2 + shl r8b,4 + or r9b,r8b + + vpcmpuq k1,ymm15,YMMWORD[$L$mask52x4],0 + vpcmpuq k2,ymm16,YMMWORD[$L$mask52x4],0 + kmovb r8d,k1 + kmovb edx,k2 + shl dl,4 + or r8b,dl + + vpcmpuq k1,ymm17,YMMWORD[$L$mask52x4],0 + vpcmpuq k2,ymm18,YMMWORD[$L$mask52x4],0 + kmovb edx,k1 + kmovb ecx,k2 + shl cl,4 + or dl,cl + + vpcmpuq k1,ymm19,YMMWORD[$L$mask52x4],0 + vpcmpuq k2,ymm20,YMMWORD[$L$mask52x4],0 + kmovb ecx,k1 + kmovb ebx,k2 + shl bl,4 + or cl,bl + + vpcmpuq k1,ymm21,YMMWORD[$L$mask52x4],0 + vpcmpuq k2,ymm22,YMMWORD[$L$mask52x4],0 + kmovb ebx,k1 + kmovb eax,k2 + shl al,4 + or bl,al + + add r14b,r9b + adc r13b,r8b + adc r12b,dl + adc r11b,cl + adc r10b,bl + + xor r14b,r9b + xor r13b,r8b + xor r12b,dl + xor r11b,cl + xor r10b,bl + + kmovb k1,r14d + shr r14b,4 + kmovb k2,r14d + kmovb k3,r13d + shr r13b,4 + kmovb k4,r13d + kmovb k5,r12d + shr r12b,4 + kmovb k6,r12d + kmovb k7,r11d + + vpsubq ymm13{k1},ymm13,YMMWORD[$L$mask52x4] + vpsubq ymm14{k2},ymm14,YMMWORD[$L$mask52x4] + vpsubq ymm15{k3},ymm15,YMMWORD[$L$mask52x4] + vpsubq ymm16{k4},ymm16,YMMWORD[$L$mask52x4] + vpsubq ymm17{k5},ymm17,YMMWORD[$L$mask52x4] + vpsubq ymm18{k6},ymm18,YMMWORD[$L$mask52x4] + vpsubq ymm19{k7},ymm19,YMMWORD[$L$mask52x4] + + vpandq ymm13,ymm13,YMMWORD[$L$mask52x4] + vpandq ymm14,ymm14,YMMWORD[$L$mask52x4] + vpandq ymm15,ymm15,YMMWORD[$L$mask52x4] + vpandq ymm16,ymm16,YMMWORD[$L$mask52x4] + vpandq ymm17,ymm17,YMMWORD[$L$mask52x4] + vpandq ymm18,ymm18,YMMWORD[$L$mask52x4] + vpandq ymm19,ymm19,YMMWORD[$L$mask52x4] + + shr r11b,4 + kmovb k1,r11d + kmovb k2,r10d + shr r10b,4 + kmovb k3,r10d + + vpsubq ymm20{k1},ymm20,YMMWORD[$L$mask52x4] + vpsubq ymm21{k2},ymm21,YMMWORD[$L$mask52x4] + vpsubq ymm22{k3},ymm22,YMMWORD[$L$mask52x4] + + vpandq ymm20,ymm20,YMMWORD[$L$mask52x4] + vpandq ymm21,ymm21,YMMWORD[$L$mask52x4] + vpandq ymm22,ymm22,YMMWORD[$L$mask52x4] + + vmovdqu64 YMMWORD[rdi],ymm3 + vmovdqu64 YMMWORD[32+rdi],ymm4 + vmovdqu64 YMMWORD[64+rdi],ymm5 + vmovdqu64 YMMWORD[96+rdi],ymm6 + vmovdqu64 YMMWORD[128+rdi],ymm7 + vmovdqu64 YMMWORD[160+rdi],ymm8 + vmovdqu64 YMMWORD[192+rdi],ymm9 + vmovdqu64 YMMWORD[224+rdi],ymm10 + vmovdqu64 YMMWORD[256+rdi],ymm11 + vmovdqu64 YMMWORD[288+rdi],ymm12 + + vmovdqu64 YMMWORD[320+rdi],ymm13 + vmovdqu64 YMMWORD[352+rdi],ymm14 + vmovdqu64 YMMWORD[384+rdi],ymm15 + vmovdqu64 YMMWORD[416+rdi],ymm16 + vmovdqu64 YMMWORD[448+rdi],ymm17 + vmovdqu64 YMMWORD[480+rdi],ymm18 + vmovdqu64 YMMWORD[512+rdi],ymm19 + vmovdqu64 YMMWORD[544+rdi],ymm20 + vmovdqu64 YMMWORD[576+rdi],ymm21 + vmovdqu64 YMMWORD[608+rdi],ymm22 + + vzeroupper + lea rax,[rsp] + + vmovdqa64 xmm6,XMMWORD[rax] + vmovdqa64 xmm7,XMMWORD[16+rax] + vmovdqa64 xmm8,XMMWORD[32+rax] + vmovdqa64 xmm9,XMMWORD[48+rax] + vmovdqa64 xmm10,XMMWORD[64+rax] + vmovdqa64 xmm11,XMMWORD[80+rax] + vmovdqa64 xmm12,XMMWORD[96+rax] + vmovdqa64 xmm13,XMMWORD[112+rax] + vmovdqa64 xmm14,XMMWORD[128+rax] + vmovdqa64 xmm15,XMMWORD[144+rax] + lea rax,[168+rsp] + mov r15,QWORD[rax] + + mov r14,QWORD[8+rax] + + mov r13,QWORD[16+rax] + + mov r12,QWORD[24+rax] + + mov rbp,QWORD[32+rax] + + mov rbx,QWORD[40+rax] + + lea rsp,[48+rax] + +$L$ossl_rsaz_amm52x40_x2_ifma256_epilogue: + mov rdi,QWORD[8+rsp] ;WIN64 epilogue + mov rsi,QWORD[16+rsp] + DB 0F3h,0C3h ;repret + +$L$SEH_end_ossl_rsaz_amm52x40_x2_ifma256: +section .text code align=64 + + +ALIGN 32 +global ossl_extract_multiplier_2x40_win5 + +ossl_extract_multiplier_2x40_win5: + +DB 243,15,30,250 + vmovdqa64 ymm24,YMMWORD[$L$ones] + vpbroadcastq ymm22,r8 + vpbroadcastq ymm23,r9 + lea rax,[20480+rdx] + + + mov r10,rdx + + + vpxor xmm0,xmm0,xmm0 + vmovdqa64 ymm1,ymm0 + vmovdqa64 ymm2,ymm0 + vmovdqa64 ymm3,ymm0 + vmovdqa64 ymm4,ymm0 + vmovdqa64 ymm5,ymm0 + vmovdqa64 ymm16,ymm0 + vmovdqa64 ymm17,ymm0 + vmovdqa64 ymm18,ymm0 + vmovdqa64 ymm19,ymm0 + vpxorq ymm21,ymm21,ymm21 +ALIGN 32 +$L$loop_0: + vpcmpq k1,ymm22,ymm21,0 + vmovdqu64 ymm20,YMMWORD[rdx] + vpblendmq ymm0{k1},ymm0,ymm20 + vmovdqu64 ymm20,YMMWORD[32+rdx] + vpblendmq ymm1{k1},ymm1,ymm20 + vmovdqu64 ymm20,YMMWORD[64+rdx] + vpblendmq ymm2{k1},ymm2,ymm20 + vmovdqu64 ymm20,YMMWORD[96+rdx] + vpblendmq ymm3{k1},ymm3,ymm20 + vmovdqu64 ymm20,YMMWORD[128+rdx] + vpblendmq ymm4{k1},ymm4,ymm20 + vmovdqu64 ymm20,YMMWORD[160+rdx] + vpblendmq ymm5{k1},ymm5,ymm20 + vmovdqu64 ymm20,YMMWORD[192+rdx] + vpblendmq ymm16{k1},ymm16,ymm20 + vmovdqu64 ymm20,YMMWORD[224+rdx] + vpblendmq ymm17{k1},ymm17,ymm20 + vmovdqu64 ymm20,YMMWORD[256+rdx] + vpblendmq ymm18{k1},ymm18,ymm20 + vmovdqu64 ymm20,YMMWORD[288+rdx] + vpblendmq ymm19{k1},ymm19,ymm20 + vpaddq ymm21,ymm21,ymm24 + add rdx,640 + cmp rax,rdx + jne NEAR $L$loop_0 + vmovdqu64 YMMWORD[rcx],ymm0 + vmovdqu64 YMMWORD[32+rcx],ymm1 + vmovdqu64 YMMWORD[64+rcx],ymm2 + vmovdqu64 YMMWORD[96+rcx],ymm3 + vmovdqu64 YMMWORD[128+rcx],ymm4 + vmovdqu64 YMMWORD[160+rcx],ymm5 + vmovdqu64 YMMWORD[192+rcx],ymm16 + vmovdqu64 YMMWORD[224+rcx],ymm17 + vmovdqu64 YMMWORD[256+rcx],ymm18 + vmovdqu64 YMMWORD[288+rcx],ymm19 + mov rdx,r10 + vpxorq ymm21,ymm21,ymm21 +ALIGN 32 +$L$loop_320: + vpcmpq k1,ymm23,ymm21,0 + vmovdqu64 ymm20,YMMWORD[320+rdx] + vpblendmq ymm0{k1},ymm0,ymm20 + vmovdqu64 ymm20,YMMWORD[352+rdx] + vpblendmq ymm1{k1},ymm1,ymm20 + vmovdqu64 ymm20,YMMWORD[384+rdx] + vpblendmq ymm2{k1},ymm2,ymm20 + vmovdqu64 ymm20,YMMWORD[416+rdx] + vpblendmq ymm3{k1},ymm3,ymm20 + vmovdqu64 ymm20,YMMWORD[448+rdx] + vpblendmq ymm4{k1},ymm4,ymm20 + vmovdqu64 ymm20,YMMWORD[480+rdx] + vpblendmq ymm5{k1},ymm5,ymm20 + vmovdqu64 ymm20,YMMWORD[512+rdx] + vpblendmq ymm16{k1},ymm16,ymm20 + vmovdqu64 ymm20,YMMWORD[544+rdx] + vpblendmq ymm17{k1},ymm17,ymm20 + vmovdqu64 ymm20,YMMWORD[576+rdx] + vpblendmq ymm18{k1},ymm18,ymm20 + vmovdqu64 ymm20,YMMWORD[608+rdx] + vpblendmq ymm19{k1},ymm19,ymm20 + vpaddq ymm21,ymm21,ymm24 + add rdx,640 + cmp rax,rdx + jne NEAR $L$loop_320 + vmovdqu64 YMMWORD[320+rcx],ymm0 + vmovdqu64 YMMWORD[352+rcx],ymm1 + vmovdqu64 YMMWORD[384+rcx],ymm2 + vmovdqu64 YMMWORD[416+rcx],ymm3 + vmovdqu64 YMMWORD[448+rcx],ymm4 + vmovdqu64 YMMWORD[480+rcx],ymm5 + vmovdqu64 YMMWORD[512+rcx],ymm16 + vmovdqu64 YMMWORD[544+rcx],ymm17 + vmovdqu64 YMMWORD[576+rcx],ymm18 + vmovdqu64 YMMWORD[608+rcx],ymm19 + + DB 0F3h,0C3h ;repret + + +section .rdata rdata align=32 +ALIGN 32 +$L$ones: + DQ 1,1,1,1 +$L$zeros: + DQ 0,0,0,0 +EXTERN __imp_RtlVirtualUnwind + +ALIGN 16 +rsaz_avx_handler: + push rsi + push rdi + push rbx + push rbp + push r12 + push r13 + push r14 + push r15 + pushfq + sub rsp,64 + + mov rax,QWORD[120+r8] + mov rbx,QWORD[248+r8] + + mov rsi,QWORD[8+r9] + mov r11,QWORD[56+r9] + + mov r10d,DWORD[r11] + lea r10,[r10*1+rsi] + cmp rbx,r10 + jb NEAR $L$common_seh_tail + + mov r10d,DWORD[4+r11] + lea r10,[r10*1+rsi] + cmp rbx,r10 + jae NEAR $L$common_seh_tail + + mov rax,QWORD[152+r8] + + lea rsi,[rax] + lea rdi,[512+r8] + mov ecx,20 + DD 0xa548f3fc + + lea rax,[216+rax] + + mov rbx,QWORD[((-8))+rax] + mov rbp,QWORD[((-16))+rax] + mov r12,QWORD[((-24))+rax] + mov r13,QWORD[((-32))+rax] + mov r14,QWORD[((-40))+rax] + mov r15,QWORD[((-48))+rax] + mov QWORD[144+r8],rbx + mov QWORD[160+r8],rbp + mov QWORD[216+r8],r12 + mov QWORD[224+r8],r13 + mov QWORD[232+r8],r14 + mov QWORD[240+r8],r15 + +$L$common_seh_tail: + mov rdi,QWORD[8+rax] + mov rsi,QWORD[16+rax] + mov QWORD[152+r8],rax + mov QWORD[168+r8],rsi + mov QWORD[176+r8],rdi + + mov rdi,QWORD[40+r9] + mov rsi,r8 + mov ecx,154 + DD 0xa548f3fc + + mov rsi,r9 + xor rcx,rcx + mov rdx,QWORD[8+rsi] + mov r8,QWORD[rsi] + mov r9,QWORD[16+rsi] + mov r10,QWORD[40+rsi] + lea r11,[56+rsi] + lea r12,[24+rsi] + mov QWORD[32+rsp],r10 + mov QWORD[40+rsp],r11 + mov QWORD[48+rsp],r12 + mov QWORD[56+rsp],rcx + call QWORD[__imp_RtlVirtualUnwind] + + mov eax,1 + add rsp,64 + popfq + pop r15 + pop r14 + pop r13 + pop r12 + pop rbp + pop rbx + pop rdi + pop rsi + DB 0F3h,0C3h ;repret + + +section .pdata rdata align=4 +ALIGN 4 + DD $L$SEH_begin_ossl_rsaz_amm52x40_x1_ifma256 wrt ..imagebase + DD $L$SEH_end_ossl_rsaz_amm52x40_x1_ifma256 wrt ..imagebase + DD $L$SEH_info_ossl_rsaz_amm52x40_x1_ifma256 wrt ..imagebase + + DD $L$SEH_begin_ossl_rsaz_amm52x40_x2_ifma256 wrt ..imagebase + DD $L$SEH_end_ossl_rsaz_amm52x40_x2_ifma256 wrt ..imagebase + DD $L$SEH_info_ossl_rsaz_amm52x40_x2_ifma256 wrt ..imagebase + +section .xdata rdata align=8 +ALIGN 8 +$L$SEH_info_ossl_rsaz_amm52x40_x1_ifma256: +DB 9,0,0,0 + DD rsaz_avx_handler wrt ..imagebase + DD $L$ossl_rsaz_amm52x40_x1_ifma256_body wrt ..imagebase,$L$ossl_rsaz_amm52x40_x1_ifma256_epilogue wrt ..imagebase +$L$SEH_info_ossl_rsaz_amm52x40_x2_ifma256: +DB 9,0,0,0 + DD rsaz_avx_handler wrt ..imagebase + DD $L$ossl_rsaz_amm52x40_x2_ifma256_body wrt ..imagebase,$L$ossl_rsaz_amm52x40_x2_ifma256_epilogue wrt ..imagebase diff --git a/deps/openssl/config/archs/VC-WIN64A/asm_avx2/crypto/bn/rsaz-4k-avxifma.asm b/deps/openssl/config/archs/VC-WIN64A/asm_avx2/crypto/bn/rsaz-4k-avxifma.asm new file mode 100644 index 00000000000000..dd22db0064b9c6 --- /dev/null +++ b/deps/openssl/config/archs/VC-WIN64A/asm_avx2/crypto/bn/rsaz-4k-avxifma.asm @@ -0,0 +1,17 @@ +default rel +%define XMMWORD +%define YMMWORD +%define ZMMWORD +section .text code align=64 + + +global ossl_rsaz_amm52x40_x1_avxifma256 +global ossl_rsaz_amm52x40_x2_avxifma256 +global ossl_extract_multiplier_2x40_win5_avx + +ossl_rsaz_amm52x40_x1_avxifma256: +ossl_rsaz_amm52x40_x2_avxifma256: +ossl_extract_multiplier_2x40_win5_avx: +DB 0x0f,0x0b + DB 0F3h,0C3h ;repret + diff --git a/deps/openssl/config/archs/VC-WIN64A/asm_avx2/crypto/bn/rsaz-avx2.asm b/deps/openssl/config/archs/VC-WIN64A/asm_avx2/crypto/bn/rsaz-avx2.asm index f854d1783d1687..9d58c4fd0148e5 100644 --- a/deps/openssl/config/archs/VC-WIN64A/asm_avx2/crypto/bn/rsaz-avx2.asm +++ b/deps/openssl/config/archs/VC-WIN64A/asm_avx2/crypto/bn/rsaz-avx2.asm @@ -1832,6 +1832,7 @@ rsaz_avx2_eligible: DB 0F3h,0C3h ;repret +section .rdata rdata align=64 ALIGN 64 $L$and_mask: DQ 0x1fffffff,0x1fffffff,0x1fffffff,0x1fffffff @@ -1843,6 +1844,7 @@ $L$inc: DD 0,0,0,0,1,1,1,1 DD 2,2,2,2,3,3,3,3 DD 4,4,4,4,4,4,4,4 +section .text ALIGN 64 EXTERN __imp_RtlVirtualUnwind diff --git a/deps/openssl/config/archs/VC-WIN64A/asm_avx2/crypto/bn/rsaz-avx512.asm b/deps/openssl/config/archs/VC-WIN64A/asm_avx2/crypto/bn/rsaz-avx512.asm deleted file mode 100644 index 8bedb848d91107..00000000000000 --- a/deps/openssl/config/archs/VC-WIN64A/asm_avx2/crypto/bn/rsaz-avx512.asm +++ /dev/null @@ -1,1031 +0,0 @@ -default rel -%define XMMWORD -%define YMMWORD -%define ZMMWORD -EXTERN OPENSSL_ia32cap_P -global ossl_rsaz_avx512ifma_eligible - -ALIGN 32 -ossl_rsaz_avx512ifma_eligible: - mov ecx,DWORD[((OPENSSL_ia32cap_P+8))] - xor eax,eax - and ecx,2149777408 - cmp ecx,2149777408 - cmove eax,ecx - DB 0F3h,0C3h ;repret - -section .text code align=64 - - -global ossl_rsaz_amm52x20_x1_256 - -ALIGN 32 -ossl_rsaz_amm52x20_x1_256: - mov QWORD[8+rsp],rdi ;WIN64 prologue - mov QWORD[16+rsp],rsi - mov rax,rsp -$L$SEH_begin_ossl_rsaz_amm52x20_x1_256: - mov rdi,rcx - mov rsi,rdx - mov rdx,r8 - mov rcx,r9 - mov r8,QWORD[40+rsp] - - - -DB 243,15,30,250 - push rbx - - push rbp - - push r12 - - push r13 - - push r14 - - push r15 - -$L$rsaz_amm52x20_x1_256_body: - - - vpxord ymm0,ymm0,ymm0 - vmovdqa64 ymm1,ymm0 - vmovdqa64 ymm16,ymm0 - vmovdqa64 ymm17,ymm0 - vmovdqa64 ymm18,ymm0 - vmovdqa64 ymm19,ymm0 - - xor r9d,r9d - - mov r11,rdx - mov rax,0xfffffffffffff - - - mov ebx,5 - -ALIGN 32 -$L$loop5: - mov r13,QWORD[r11] - - vpbroadcastq ymm3,r13 - mov rdx,QWORD[rsi] - mulx r12,r13,r13 - add r9,r13 - mov r10,r12 - adc r10,0 - - mov r13,r8 - imul r13,r9 - and r13,rax - - vpbroadcastq ymm4,r13 - mov rdx,QWORD[rcx] - mulx r12,r13,r13 - add r9,r13 - adc r10,r12 - - shr r9,52 - sal r10,12 - or r9,r10 - - vpmadd52luq ymm1,ymm3,YMMWORD[rsi] - vpmadd52luq ymm16,ymm3,YMMWORD[32+rsi] - vpmadd52luq ymm17,ymm3,YMMWORD[64+rsi] - vpmadd52luq ymm18,ymm3,YMMWORD[96+rsi] - vpmadd52luq ymm19,ymm3,YMMWORD[128+rsi] - - vpmadd52luq ymm1,ymm4,YMMWORD[rcx] - vpmadd52luq ymm16,ymm4,YMMWORD[32+rcx] - vpmadd52luq ymm17,ymm4,YMMWORD[64+rcx] - vpmadd52luq ymm18,ymm4,YMMWORD[96+rcx] - vpmadd52luq ymm19,ymm4,YMMWORD[128+rcx] - - - valignq ymm1,ymm16,ymm1,1 - valignq ymm16,ymm17,ymm16,1 - valignq ymm17,ymm18,ymm17,1 - valignq ymm18,ymm19,ymm18,1 - valignq ymm19,ymm0,ymm19,1 - - vmovq r13,xmm1 - add r9,r13 - - vpmadd52huq ymm1,ymm3,YMMWORD[rsi] - vpmadd52huq ymm16,ymm3,YMMWORD[32+rsi] - vpmadd52huq ymm17,ymm3,YMMWORD[64+rsi] - vpmadd52huq ymm18,ymm3,YMMWORD[96+rsi] - vpmadd52huq ymm19,ymm3,YMMWORD[128+rsi] - - vpmadd52huq ymm1,ymm4,YMMWORD[rcx] - vpmadd52huq ymm16,ymm4,YMMWORD[32+rcx] - vpmadd52huq ymm17,ymm4,YMMWORD[64+rcx] - vpmadd52huq ymm18,ymm4,YMMWORD[96+rcx] - vpmadd52huq ymm19,ymm4,YMMWORD[128+rcx] - mov r13,QWORD[8+r11] - - vpbroadcastq ymm3,r13 - mov rdx,QWORD[rsi] - mulx r12,r13,r13 - add r9,r13 - mov r10,r12 - adc r10,0 - - mov r13,r8 - imul r13,r9 - and r13,rax - - vpbroadcastq ymm4,r13 - mov rdx,QWORD[rcx] - mulx r12,r13,r13 - add r9,r13 - adc r10,r12 - - shr r9,52 - sal r10,12 - or r9,r10 - - vpmadd52luq ymm1,ymm3,YMMWORD[rsi] - vpmadd52luq ymm16,ymm3,YMMWORD[32+rsi] - vpmadd52luq ymm17,ymm3,YMMWORD[64+rsi] - vpmadd52luq ymm18,ymm3,YMMWORD[96+rsi] - vpmadd52luq ymm19,ymm3,YMMWORD[128+rsi] - - vpmadd52luq ymm1,ymm4,YMMWORD[rcx] - vpmadd52luq ymm16,ymm4,YMMWORD[32+rcx] - vpmadd52luq ymm17,ymm4,YMMWORD[64+rcx] - vpmadd52luq ymm18,ymm4,YMMWORD[96+rcx] - vpmadd52luq ymm19,ymm4,YMMWORD[128+rcx] - - - valignq ymm1,ymm16,ymm1,1 - valignq ymm16,ymm17,ymm16,1 - valignq ymm17,ymm18,ymm17,1 - valignq ymm18,ymm19,ymm18,1 - valignq ymm19,ymm0,ymm19,1 - - vmovq r13,xmm1 - add r9,r13 - - vpmadd52huq ymm1,ymm3,YMMWORD[rsi] - vpmadd52huq ymm16,ymm3,YMMWORD[32+rsi] - vpmadd52huq ymm17,ymm3,YMMWORD[64+rsi] - vpmadd52huq ymm18,ymm3,YMMWORD[96+rsi] - vpmadd52huq ymm19,ymm3,YMMWORD[128+rsi] - - vpmadd52huq ymm1,ymm4,YMMWORD[rcx] - vpmadd52huq ymm16,ymm4,YMMWORD[32+rcx] - vpmadd52huq ymm17,ymm4,YMMWORD[64+rcx] - vpmadd52huq ymm18,ymm4,YMMWORD[96+rcx] - vpmadd52huq ymm19,ymm4,YMMWORD[128+rcx] - mov r13,QWORD[16+r11] - - vpbroadcastq ymm3,r13 - mov rdx,QWORD[rsi] - mulx r12,r13,r13 - add r9,r13 - mov r10,r12 - adc r10,0 - - mov r13,r8 - imul r13,r9 - and r13,rax - - vpbroadcastq ymm4,r13 - mov rdx,QWORD[rcx] - mulx r12,r13,r13 - add r9,r13 - adc r10,r12 - - shr r9,52 - sal r10,12 - or r9,r10 - - vpmadd52luq ymm1,ymm3,YMMWORD[rsi] - vpmadd52luq ymm16,ymm3,YMMWORD[32+rsi] - vpmadd52luq ymm17,ymm3,YMMWORD[64+rsi] - vpmadd52luq ymm18,ymm3,YMMWORD[96+rsi] - vpmadd52luq ymm19,ymm3,YMMWORD[128+rsi] - - vpmadd52luq ymm1,ymm4,YMMWORD[rcx] - vpmadd52luq ymm16,ymm4,YMMWORD[32+rcx] - vpmadd52luq ymm17,ymm4,YMMWORD[64+rcx] - vpmadd52luq ymm18,ymm4,YMMWORD[96+rcx] - vpmadd52luq ymm19,ymm4,YMMWORD[128+rcx] - - - valignq ymm1,ymm16,ymm1,1 - valignq ymm16,ymm17,ymm16,1 - valignq ymm17,ymm18,ymm17,1 - valignq ymm18,ymm19,ymm18,1 - valignq ymm19,ymm0,ymm19,1 - - vmovq r13,xmm1 - add r9,r13 - - vpmadd52huq ymm1,ymm3,YMMWORD[rsi] - vpmadd52huq ymm16,ymm3,YMMWORD[32+rsi] - vpmadd52huq ymm17,ymm3,YMMWORD[64+rsi] - vpmadd52huq ymm18,ymm3,YMMWORD[96+rsi] - vpmadd52huq ymm19,ymm3,YMMWORD[128+rsi] - - vpmadd52huq ymm1,ymm4,YMMWORD[rcx] - vpmadd52huq ymm16,ymm4,YMMWORD[32+rcx] - vpmadd52huq ymm17,ymm4,YMMWORD[64+rcx] - vpmadd52huq ymm18,ymm4,YMMWORD[96+rcx] - vpmadd52huq ymm19,ymm4,YMMWORD[128+rcx] - mov r13,QWORD[24+r11] - - vpbroadcastq ymm3,r13 - mov rdx,QWORD[rsi] - mulx r12,r13,r13 - add r9,r13 - mov r10,r12 - adc r10,0 - - mov r13,r8 - imul r13,r9 - and r13,rax - - vpbroadcastq ymm4,r13 - mov rdx,QWORD[rcx] - mulx r12,r13,r13 - add r9,r13 - adc r10,r12 - - shr r9,52 - sal r10,12 - or r9,r10 - - vpmadd52luq ymm1,ymm3,YMMWORD[rsi] - vpmadd52luq ymm16,ymm3,YMMWORD[32+rsi] - vpmadd52luq ymm17,ymm3,YMMWORD[64+rsi] - vpmadd52luq ymm18,ymm3,YMMWORD[96+rsi] - vpmadd52luq ymm19,ymm3,YMMWORD[128+rsi] - - vpmadd52luq ymm1,ymm4,YMMWORD[rcx] - vpmadd52luq ymm16,ymm4,YMMWORD[32+rcx] - vpmadd52luq ymm17,ymm4,YMMWORD[64+rcx] - vpmadd52luq ymm18,ymm4,YMMWORD[96+rcx] - vpmadd52luq ymm19,ymm4,YMMWORD[128+rcx] - - - valignq ymm1,ymm16,ymm1,1 - valignq ymm16,ymm17,ymm16,1 - valignq ymm17,ymm18,ymm17,1 - valignq ymm18,ymm19,ymm18,1 - valignq ymm19,ymm0,ymm19,1 - - vmovq r13,xmm1 - add r9,r13 - - vpmadd52huq ymm1,ymm3,YMMWORD[rsi] - vpmadd52huq ymm16,ymm3,YMMWORD[32+rsi] - vpmadd52huq ymm17,ymm3,YMMWORD[64+rsi] - vpmadd52huq ymm18,ymm3,YMMWORD[96+rsi] - vpmadd52huq ymm19,ymm3,YMMWORD[128+rsi] - - vpmadd52huq ymm1,ymm4,YMMWORD[rcx] - vpmadd52huq ymm16,ymm4,YMMWORD[32+rcx] - vpmadd52huq ymm17,ymm4,YMMWORD[64+rcx] - vpmadd52huq ymm18,ymm4,YMMWORD[96+rcx] - vpmadd52huq ymm19,ymm4,YMMWORD[128+rcx] - lea r11,[32+r11] - dec ebx - jne NEAR $L$loop5 - - vmovdqa64 ymm4,YMMWORD[$L$mask52x4] - - vpbroadcastq ymm3,r9 - vpblendd ymm1,ymm1,ymm3,3 - - - - vpsrlq ymm24,ymm1,52 - vpsrlq ymm25,ymm16,52 - vpsrlq ymm26,ymm17,52 - vpsrlq ymm27,ymm18,52 - vpsrlq ymm28,ymm19,52 - - - valignq ymm28,ymm28,ymm27,3 - valignq ymm27,ymm27,ymm26,3 - valignq ymm26,ymm26,ymm25,3 - valignq ymm25,ymm25,ymm24,3 - valignq ymm24,ymm24,ymm0,3 - - - vpandq ymm1,ymm1,ymm4 - vpandq ymm16,ymm16,ymm4 - vpandq ymm17,ymm17,ymm4 - vpandq ymm18,ymm18,ymm4 - vpandq ymm19,ymm19,ymm4 - - - vpaddq ymm1,ymm1,ymm24 - vpaddq ymm16,ymm16,ymm25 - vpaddq ymm17,ymm17,ymm26 - vpaddq ymm18,ymm18,ymm27 - vpaddq ymm19,ymm19,ymm28 - - - - vpcmpuq k1,ymm4,ymm1,1 - vpcmpuq k2,ymm4,ymm16,1 - vpcmpuq k3,ymm4,ymm17,1 - vpcmpuq k4,ymm4,ymm18,1 - vpcmpuq k5,ymm4,ymm19,1 - kmovb r14d,k1 - kmovb r13d,k2 - kmovb r12d,k3 - kmovb r11d,k4 - kmovb r10d,k5 - - - vpcmpuq k1,ymm4,ymm1,0 - vpcmpuq k2,ymm4,ymm16,0 - vpcmpuq k3,ymm4,ymm17,0 - vpcmpuq k4,ymm4,ymm18,0 - vpcmpuq k5,ymm4,ymm19,0 - kmovb r9d,k1 - kmovb r8d,k2 - kmovb ebx,k3 - kmovb ecx,k4 - kmovb edx,k5 - - - - shl r13b,4 - or r14b,r13b - shl r11b,4 - or r12b,r11b - - add r14b,r14b - adc r12b,r12b - adc r10b,r10b - - shl r8b,4 - or r9b,r8b - shl cl,4 - or bl,cl - - add r14b,r9b - adc r12b,bl - adc r10b,dl - - xor r14b,r9b - xor r12b,bl - xor r10b,dl - - kmovb k1,r14d - shr r14b,4 - kmovb k2,r14d - kmovb k3,r12d - shr r12b,4 - kmovb k4,r12d - kmovb k5,r10d - - - vpsubq ymm1{k1},ymm1,ymm4 - vpsubq ymm16{k2},ymm16,ymm4 - vpsubq ymm17{k3},ymm17,ymm4 - vpsubq ymm18{k4},ymm18,ymm4 - vpsubq ymm19{k5},ymm19,ymm4 - - vpandq ymm1,ymm1,ymm4 - vpandq ymm16,ymm16,ymm4 - vpandq ymm17,ymm17,ymm4 - vpandq ymm18,ymm18,ymm4 - vpandq ymm19,ymm19,ymm4 - - vmovdqu64 YMMWORD[rdi],ymm1 - vmovdqu64 YMMWORD[32+rdi],ymm16 - vmovdqu64 YMMWORD[64+rdi],ymm17 - vmovdqu64 YMMWORD[96+rdi],ymm18 - vmovdqu64 YMMWORD[128+rdi],ymm19 - - vzeroupper - mov r15,QWORD[rsp] - - mov r14,QWORD[8+rsp] - - mov r13,QWORD[16+rsp] - - mov r12,QWORD[24+rsp] - - mov rbp,QWORD[32+rsp] - - mov rbx,QWORD[40+rsp] - - lea rsp,[48+rsp] - -$L$rsaz_amm52x20_x1_256_epilogue: - mov rdi,QWORD[8+rsp] ;WIN64 epilogue - mov rsi,QWORD[16+rsp] - DB 0F3h,0C3h ;repret - -$L$SEH_end_ossl_rsaz_amm52x20_x1_256: -section .data data align=8 - -ALIGN 32 -$L$mask52x4: - DQ 0xfffffffffffff - DQ 0xfffffffffffff - DQ 0xfffffffffffff - DQ 0xfffffffffffff -section .text code align=64 - - -global ossl_rsaz_amm52x20_x2_256 - -ALIGN 32 -ossl_rsaz_amm52x20_x2_256: - mov QWORD[8+rsp],rdi ;WIN64 prologue - mov QWORD[16+rsp],rsi - mov rax,rsp -$L$SEH_begin_ossl_rsaz_amm52x20_x2_256: - mov rdi,rcx - mov rsi,rdx - mov rdx,r8 - mov rcx,r9 - mov r8,QWORD[40+rsp] - - - -DB 243,15,30,250 - push rbx - - push rbp - - push r12 - - push r13 - - push r14 - - push r15 - -$L$rsaz_amm52x20_x2_256_body: - - - vpxord ymm0,ymm0,ymm0 - vmovdqa64 ymm1,ymm0 - vmovdqa64 ymm16,ymm0 - vmovdqa64 ymm17,ymm0 - vmovdqa64 ymm18,ymm0 - vmovdqa64 ymm19,ymm0 - vmovdqa64 ymm2,ymm0 - vmovdqa64 ymm20,ymm0 - vmovdqa64 ymm21,ymm0 - vmovdqa64 ymm22,ymm0 - vmovdqa64 ymm23,ymm0 - - xor r9d,r9d - xor r15d,r15d - - mov r11,rdx - mov rax,0xfffffffffffff - - mov ebx,20 - -ALIGN 32 -$L$loop20: - mov r13,QWORD[r11] - - vpbroadcastq ymm3,r13 - mov rdx,QWORD[rsi] - mulx r12,r13,r13 - add r9,r13 - mov r10,r12 - adc r10,0 - - mov r13,QWORD[r8] - imul r13,r9 - and r13,rax - - vpbroadcastq ymm4,r13 - mov rdx,QWORD[rcx] - mulx r12,r13,r13 - add r9,r13 - adc r10,r12 - - shr r9,52 - sal r10,12 - or r9,r10 - - vpmadd52luq ymm1,ymm3,YMMWORD[rsi] - vpmadd52luq ymm16,ymm3,YMMWORD[32+rsi] - vpmadd52luq ymm17,ymm3,YMMWORD[64+rsi] - vpmadd52luq ymm18,ymm3,YMMWORD[96+rsi] - vpmadd52luq ymm19,ymm3,YMMWORD[128+rsi] - - vpmadd52luq ymm1,ymm4,YMMWORD[rcx] - vpmadd52luq ymm16,ymm4,YMMWORD[32+rcx] - vpmadd52luq ymm17,ymm4,YMMWORD[64+rcx] - vpmadd52luq ymm18,ymm4,YMMWORD[96+rcx] - vpmadd52luq ymm19,ymm4,YMMWORD[128+rcx] - - - valignq ymm1,ymm16,ymm1,1 - valignq ymm16,ymm17,ymm16,1 - valignq ymm17,ymm18,ymm17,1 - valignq ymm18,ymm19,ymm18,1 - valignq ymm19,ymm0,ymm19,1 - - vmovq r13,xmm1 - add r9,r13 - - vpmadd52huq ymm1,ymm3,YMMWORD[rsi] - vpmadd52huq ymm16,ymm3,YMMWORD[32+rsi] - vpmadd52huq ymm17,ymm3,YMMWORD[64+rsi] - vpmadd52huq ymm18,ymm3,YMMWORD[96+rsi] - vpmadd52huq ymm19,ymm3,YMMWORD[128+rsi] - - vpmadd52huq ymm1,ymm4,YMMWORD[rcx] - vpmadd52huq ymm16,ymm4,YMMWORD[32+rcx] - vpmadd52huq ymm17,ymm4,YMMWORD[64+rcx] - vpmadd52huq ymm18,ymm4,YMMWORD[96+rcx] - vpmadd52huq ymm19,ymm4,YMMWORD[128+rcx] - mov r13,QWORD[160+r11] - - vpbroadcastq ymm3,r13 - mov rdx,QWORD[160+rsi] - mulx r12,r13,r13 - add r15,r13 - mov r10,r12 - adc r10,0 - - mov r13,QWORD[8+r8] - imul r13,r15 - and r13,rax - - vpbroadcastq ymm4,r13 - mov rdx,QWORD[160+rcx] - mulx r12,r13,r13 - add r15,r13 - adc r10,r12 - - shr r15,52 - sal r10,12 - or r15,r10 - - vpmadd52luq ymm2,ymm3,YMMWORD[160+rsi] - vpmadd52luq ymm20,ymm3,YMMWORD[192+rsi] - vpmadd52luq ymm21,ymm3,YMMWORD[224+rsi] - vpmadd52luq ymm22,ymm3,YMMWORD[256+rsi] - vpmadd52luq ymm23,ymm3,YMMWORD[288+rsi] - - vpmadd52luq ymm2,ymm4,YMMWORD[160+rcx] - vpmadd52luq ymm20,ymm4,YMMWORD[192+rcx] - vpmadd52luq ymm21,ymm4,YMMWORD[224+rcx] - vpmadd52luq ymm22,ymm4,YMMWORD[256+rcx] - vpmadd52luq ymm23,ymm4,YMMWORD[288+rcx] - - - valignq ymm2,ymm20,ymm2,1 - valignq ymm20,ymm21,ymm20,1 - valignq ymm21,ymm22,ymm21,1 - valignq ymm22,ymm23,ymm22,1 - valignq ymm23,ymm0,ymm23,1 - - vmovq r13,xmm2 - add r15,r13 - - vpmadd52huq ymm2,ymm3,YMMWORD[160+rsi] - vpmadd52huq ymm20,ymm3,YMMWORD[192+rsi] - vpmadd52huq ymm21,ymm3,YMMWORD[224+rsi] - vpmadd52huq ymm22,ymm3,YMMWORD[256+rsi] - vpmadd52huq ymm23,ymm3,YMMWORD[288+rsi] - - vpmadd52huq ymm2,ymm4,YMMWORD[160+rcx] - vpmadd52huq ymm20,ymm4,YMMWORD[192+rcx] - vpmadd52huq ymm21,ymm4,YMMWORD[224+rcx] - vpmadd52huq ymm22,ymm4,YMMWORD[256+rcx] - vpmadd52huq ymm23,ymm4,YMMWORD[288+rcx] - lea r11,[8+r11] - dec ebx - jne NEAR $L$loop20 - - vmovdqa64 ymm4,YMMWORD[$L$mask52x4] - - vpbroadcastq ymm3,r9 - vpblendd ymm1,ymm1,ymm3,3 - - - - vpsrlq ymm24,ymm1,52 - vpsrlq ymm25,ymm16,52 - vpsrlq ymm26,ymm17,52 - vpsrlq ymm27,ymm18,52 - vpsrlq ymm28,ymm19,52 - - - valignq ymm28,ymm28,ymm27,3 - valignq ymm27,ymm27,ymm26,3 - valignq ymm26,ymm26,ymm25,3 - valignq ymm25,ymm25,ymm24,3 - valignq ymm24,ymm24,ymm0,3 - - - vpandq ymm1,ymm1,ymm4 - vpandq ymm16,ymm16,ymm4 - vpandq ymm17,ymm17,ymm4 - vpandq ymm18,ymm18,ymm4 - vpandq ymm19,ymm19,ymm4 - - - vpaddq ymm1,ymm1,ymm24 - vpaddq ymm16,ymm16,ymm25 - vpaddq ymm17,ymm17,ymm26 - vpaddq ymm18,ymm18,ymm27 - vpaddq ymm19,ymm19,ymm28 - - - - vpcmpuq k1,ymm4,ymm1,1 - vpcmpuq k2,ymm4,ymm16,1 - vpcmpuq k3,ymm4,ymm17,1 - vpcmpuq k4,ymm4,ymm18,1 - vpcmpuq k5,ymm4,ymm19,1 - kmovb r14d,k1 - kmovb r13d,k2 - kmovb r12d,k3 - kmovb r11d,k4 - kmovb r10d,k5 - - - vpcmpuq k1,ymm4,ymm1,0 - vpcmpuq k2,ymm4,ymm16,0 - vpcmpuq k3,ymm4,ymm17,0 - vpcmpuq k4,ymm4,ymm18,0 - vpcmpuq k5,ymm4,ymm19,0 - kmovb r9d,k1 - kmovb r8d,k2 - kmovb ebx,k3 - kmovb ecx,k4 - kmovb edx,k5 - - - - shl r13b,4 - or r14b,r13b - shl r11b,4 - or r12b,r11b - - add r14b,r14b - adc r12b,r12b - adc r10b,r10b - - shl r8b,4 - or r9b,r8b - shl cl,4 - or bl,cl - - add r14b,r9b - adc r12b,bl - adc r10b,dl - - xor r14b,r9b - xor r12b,bl - xor r10b,dl - - kmovb k1,r14d - shr r14b,4 - kmovb k2,r14d - kmovb k3,r12d - shr r12b,4 - kmovb k4,r12d - kmovb k5,r10d - - - vpsubq ymm1{k1},ymm1,ymm4 - vpsubq ymm16{k2},ymm16,ymm4 - vpsubq ymm17{k3},ymm17,ymm4 - vpsubq ymm18{k4},ymm18,ymm4 - vpsubq ymm19{k5},ymm19,ymm4 - - vpandq ymm1,ymm1,ymm4 - vpandq ymm16,ymm16,ymm4 - vpandq ymm17,ymm17,ymm4 - vpandq ymm18,ymm18,ymm4 - vpandq ymm19,ymm19,ymm4 - - vpbroadcastq ymm3,r15 - vpblendd ymm2,ymm2,ymm3,3 - - - - vpsrlq ymm24,ymm2,52 - vpsrlq ymm25,ymm20,52 - vpsrlq ymm26,ymm21,52 - vpsrlq ymm27,ymm22,52 - vpsrlq ymm28,ymm23,52 - - - valignq ymm28,ymm28,ymm27,3 - valignq ymm27,ymm27,ymm26,3 - valignq ymm26,ymm26,ymm25,3 - valignq ymm25,ymm25,ymm24,3 - valignq ymm24,ymm24,ymm0,3 - - - vpandq ymm2,ymm2,ymm4 - vpandq ymm20,ymm20,ymm4 - vpandq ymm21,ymm21,ymm4 - vpandq ymm22,ymm22,ymm4 - vpandq ymm23,ymm23,ymm4 - - - vpaddq ymm2,ymm2,ymm24 - vpaddq ymm20,ymm20,ymm25 - vpaddq ymm21,ymm21,ymm26 - vpaddq ymm22,ymm22,ymm27 - vpaddq ymm23,ymm23,ymm28 - - - - vpcmpuq k1,ymm4,ymm2,1 - vpcmpuq k2,ymm4,ymm20,1 - vpcmpuq k3,ymm4,ymm21,1 - vpcmpuq k4,ymm4,ymm22,1 - vpcmpuq k5,ymm4,ymm23,1 - kmovb r14d,k1 - kmovb r13d,k2 - kmovb r12d,k3 - kmovb r11d,k4 - kmovb r10d,k5 - - - vpcmpuq k1,ymm4,ymm2,0 - vpcmpuq k2,ymm4,ymm20,0 - vpcmpuq k3,ymm4,ymm21,0 - vpcmpuq k4,ymm4,ymm22,0 - vpcmpuq k5,ymm4,ymm23,0 - kmovb r9d,k1 - kmovb r8d,k2 - kmovb ebx,k3 - kmovb ecx,k4 - kmovb edx,k5 - - - - shl r13b,4 - or r14b,r13b - shl r11b,4 - or r12b,r11b - - add r14b,r14b - adc r12b,r12b - adc r10b,r10b - - shl r8b,4 - or r9b,r8b - shl cl,4 - or bl,cl - - add r14b,r9b - adc r12b,bl - adc r10b,dl - - xor r14b,r9b - xor r12b,bl - xor r10b,dl - - kmovb k1,r14d - shr r14b,4 - kmovb k2,r14d - kmovb k3,r12d - shr r12b,4 - kmovb k4,r12d - kmovb k5,r10d - - - vpsubq ymm2{k1},ymm2,ymm4 - vpsubq ymm20{k2},ymm20,ymm4 - vpsubq ymm21{k3},ymm21,ymm4 - vpsubq ymm22{k4},ymm22,ymm4 - vpsubq ymm23{k5},ymm23,ymm4 - - vpandq ymm2,ymm2,ymm4 - vpandq ymm20,ymm20,ymm4 - vpandq ymm21,ymm21,ymm4 - vpandq ymm22,ymm22,ymm4 - vpandq ymm23,ymm23,ymm4 - - vmovdqu64 YMMWORD[rdi],ymm1 - vmovdqu64 YMMWORD[32+rdi],ymm16 - vmovdqu64 YMMWORD[64+rdi],ymm17 - vmovdqu64 YMMWORD[96+rdi],ymm18 - vmovdqu64 YMMWORD[128+rdi],ymm19 - - vmovdqu64 YMMWORD[160+rdi],ymm2 - vmovdqu64 YMMWORD[192+rdi],ymm20 - vmovdqu64 YMMWORD[224+rdi],ymm21 - vmovdqu64 YMMWORD[256+rdi],ymm22 - vmovdqu64 YMMWORD[288+rdi],ymm23 - - vzeroupper - mov r15,QWORD[rsp] - - mov r14,QWORD[8+rsp] - - mov r13,QWORD[16+rsp] - - mov r12,QWORD[24+rsp] - - mov rbp,QWORD[32+rsp] - - mov rbx,QWORD[40+rsp] - - lea rsp,[48+rsp] - -$L$rsaz_amm52x20_x2_256_epilogue: - mov rdi,QWORD[8+rsp] ;WIN64 epilogue - mov rsi,QWORD[16+rsp] - DB 0F3h,0C3h ;repret - -$L$SEH_end_ossl_rsaz_amm52x20_x2_256: -section .text code align=64 - - -ALIGN 32 -global ossl_extract_multiplier_2x20_win5 - -ossl_extract_multiplier_2x20_win5: - mov QWORD[8+rsp],rdi ;WIN64 prologue - mov QWORD[16+rsp],rsi - mov rax,rsp -$L$SEH_begin_ossl_extract_multiplier_2x20_win5: - mov rdi,rcx - mov rsi,rdx - mov rdx,r8 - mov rcx,r9 - - - -DB 243,15,30,250 - lea rax,[rcx*4+rcx] - sal rax,5 - add rsi,rax - - vmovdqa64 ymm23,YMMWORD[$L$ones] - vpbroadcastq ymm22,rdx - lea rax,[10240+rsi] - - vpxor xmm4,xmm4,xmm4 - vmovdqa64 ymm3,ymm4 - vmovdqa64 ymm2,ymm4 - vmovdqa64 ymm1,ymm4 - vmovdqa64 ymm0,ymm4 - vmovdqa64 ymm21,ymm4 - -ALIGN 32 -$L$loop: - vpcmpq k1,ymm22,ymm21,0 - add rsi,320 - vpaddq ymm21,ymm21,ymm23 - vmovdqu64 ymm16,YMMWORD[((-320))+rsi] - vmovdqu64 ymm17,YMMWORD[((-288))+rsi] - vmovdqu64 ymm18,YMMWORD[((-256))+rsi] - vmovdqu64 ymm19,YMMWORD[((-224))+rsi] - vmovdqu64 ymm20,YMMWORD[((-192))+rsi] - vpblendmq ymm0{k1},ymm0,ymm16 - vpblendmq ymm1{k1},ymm1,ymm17 - vpblendmq ymm2{k1},ymm2,ymm18 - vpblendmq ymm3{k1},ymm3,ymm19 - vpblendmq ymm4{k1},ymm4,ymm20 - cmp rax,rsi - jne NEAR $L$loop - - vmovdqu64 YMMWORD[rdi],ymm0 - vmovdqu64 YMMWORD[32+rdi],ymm1 - vmovdqu64 YMMWORD[64+rdi],ymm2 - vmovdqu64 YMMWORD[96+rdi],ymm3 - vmovdqu64 YMMWORD[128+rdi],ymm4 - - mov rdi,QWORD[8+rsp] ;WIN64 epilogue - mov rsi,QWORD[16+rsp] - DB 0F3h,0C3h ;repret - -$L$SEH_end_ossl_extract_multiplier_2x20_win5: -section .data data align=8 - -ALIGN 32 -$L$ones: - DQ 1,1,1,1 -EXTERN __imp_RtlVirtualUnwind - -ALIGN 16 -rsaz_def_handler: - push rsi - push rdi - push rbx - push rbp - push r12 - push r13 - push r14 - push r15 - pushfq - sub rsp,64 - - mov rax,QWORD[120+r8] - mov rbx,QWORD[248+r8] - - mov rsi,QWORD[8+r9] - mov r11,QWORD[56+r9] - - mov r10d,DWORD[r11] - lea r10,[r10*1+rsi] - cmp rbx,r10 - jb NEAR $L$common_seh_tail - - mov rax,QWORD[152+r8] - - mov r10d,DWORD[4+r11] - lea r10,[r10*1+rsi] - cmp rbx,r10 - jae NEAR $L$common_seh_tail - - lea rax,[48+rax] - - mov rbx,QWORD[((-8))+rax] - mov rbp,QWORD[((-16))+rax] - mov r12,QWORD[((-24))+rax] - mov r13,QWORD[((-32))+rax] - mov r14,QWORD[((-40))+rax] - mov r15,QWORD[((-48))+rax] - mov QWORD[144+r8],rbx - mov QWORD[160+r8],rbp - mov QWORD[216+r8],r12 - mov QWORD[224+r8],r13 - mov QWORD[232+r8],r14 - mov QWORD[240+r8],r15 - -$L$common_seh_tail: - mov rdi,QWORD[8+rax] - mov rsi,QWORD[16+rax] - mov QWORD[152+r8],rax - mov QWORD[168+r8],rsi - mov QWORD[176+r8],rdi - - mov rdi,QWORD[40+r9] - mov rsi,r8 - mov ecx,154 - DD 0xa548f3fc - - mov rsi,r9 - xor rcx,rcx - mov rdx,QWORD[8+rsi] - mov r8,QWORD[rsi] - mov r9,QWORD[16+rsi] - mov r10,QWORD[40+rsi] - lea r11,[56+rsi] - lea r12,[24+rsi] - mov QWORD[32+rsp],r10 - mov QWORD[40+rsp],r11 - mov QWORD[48+rsp],r12 - mov QWORD[56+rsp],rcx - call QWORD[__imp_RtlVirtualUnwind] - - mov eax,1 - add rsp,64 - popfq - pop r15 - pop r14 - pop r13 - pop r12 - pop rbp - pop rbx - pop rdi - pop rsi - DB 0F3h,0C3h ;repret - - -section .pdata rdata align=4 -ALIGN 4 - DD $L$SEH_begin_ossl_rsaz_amm52x20_x1_256 wrt ..imagebase - DD $L$SEH_end_ossl_rsaz_amm52x20_x1_256 wrt ..imagebase - DD $L$SEH_info_ossl_rsaz_amm52x20_x1_256 wrt ..imagebase - - DD $L$SEH_begin_ossl_rsaz_amm52x20_x2_256 wrt ..imagebase - DD $L$SEH_end_ossl_rsaz_amm52x20_x2_256 wrt ..imagebase - DD $L$SEH_info_ossl_rsaz_amm52x20_x2_256 wrt ..imagebase - - DD $L$SEH_begin_ossl_extract_multiplier_2x20_win5 wrt ..imagebase - DD $L$SEH_end_ossl_extract_multiplier_2x20_win5 wrt ..imagebase - DD $L$SEH_info_ossl_extract_multiplier_2x20_win5 wrt ..imagebase - -section .xdata rdata align=8 -ALIGN 8 -$L$SEH_info_ossl_rsaz_amm52x20_x1_256: -DB 9,0,0,0 - DD rsaz_def_handler wrt ..imagebase - DD $L$rsaz_amm52x20_x1_256_body wrt ..imagebase,$L$rsaz_amm52x20_x1_256_epilogue wrt ..imagebase -$L$SEH_info_ossl_rsaz_amm52x20_x2_256: -DB 9,0,0,0 - DD rsaz_def_handler wrt ..imagebase - DD $L$rsaz_amm52x20_x2_256_body wrt ..imagebase,$L$rsaz_amm52x20_x2_256_epilogue wrt ..imagebase -$L$SEH_info_ossl_extract_multiplier_2x20_win5: -DB 9,0,0,0 - DD rsaz_def_handler wrt ..imagebase - DD $L$SEH_begin_ossl_extract_multiplier_2x20_win5 wrt ..imagebase,$L$SEH_begin_ossl_extract_multiplier_2x20_win5 wrt ..imagebase diff --git a/deps/openssl/config/archs/VC-WIN64A/asm_avx2/crypto/bn/rsaz-x86_64.asm b/deps/openssl/config/archs/VC-WIN64A/asm_avx2/crypto/bn/rsaz-x86_64.asm index a474c5d9a68c9f..46cc66d8cfcc52 100644 --- a/deps/openssl/config/archs/VC-WIN64A/asm_avx2/crypto/bn/rsaz-x86_64.asm +++ b/deps/openssl/config/archs/VC-WIN64A/asm_avx2/crypto/bn/rsaz-x86_64.asm @@ -2094,10 +2094,12 @@ $L$SEH_end_rsaz_512_gather4: +section .rdata rdata align=64 ALIGN 64 $L$inc: DD 0,0,1,1 DD 2,2,2,2 +section .text EXTERN __imp_RtlVirtualUnwind ALIGN 16 diff --git a/deps/openssl/config/archs/VC-WIN64A/asm_avx2/crypto/bn/x86_64-mont5.asm b/deps/openssl/config/archs/VC-WIN64A/asm_avx2/crypto/bn/x86_64-mont5.asm index 118676455aa6be..871263ef45cbdd 100644 --- a/deps/openssl/config/archs/VC-WIN64A/asm_avx2/crypto/bn/x86_64-mont5.asm +++ b/deps/openssl/config/archs/VC-WIN64A/asm_avx2/crypto/bn/x86_64-mont5.asm @@ -3671,6 +3671,7 @@ $L$gather: $L$SEH_end_bn_gather5: +section .rdata rdata align=64 ALIGN 64 $L$inc: DD 0,0,1,1 @@ -3681,6 +3682,7 @@ DB 99,97,116,116,101,114,47,103,97,116,104,101,114,32,102,111 DB 114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79 DB 71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111 DB 112,101,110,115,115,108,46,111,114,103,62,0 +section .text EXTERN __imp_RtlVirtualUnwind ALIGN 16 diff --git a/deps/openssl/config/archs/VC-WIN64A/asm_avx2/crypto/buildinf.h b/deps/openssl/config/archs/VC-WIN64A/asm_avx2/crypto/buildinf.h index 4271571db24d0a..f2f55307847632 100644 --- a/deps/openssl/config/archs/VC-WIN64A/asm_avx2/crypto/buildinf.h +++ b/deps/openssl/config/archs/VC-WIN64A/asm_avx2/crypto/buildinf.h @@ -11,7 +11,7 @@ */ #define PLATFORM "platform: " -#define DATE "built on: Sun Jul 20 00:55:27 2025 UTC" +#define DATE "built on: Sun Jul 27 00:59:02 2025 UTC" /* * Generate compiler_flags as an array of individual characters. This is a diff --git a/deps/openssl/config/archs/VC-WIN64A/asm_avx2/crypto/camellia/cmll-x86_64.asm b/deps/openssl/config/archs/VC-WIN64A/asm_avx2/crypto/camellia/cmll-x86_64.asm index ac057de920beb0..491d84f8812181 100644 --- a/deps/openssl/config/archs/VC-WIN64A/asm_avx2/crypto/camellia/cmll-x86_64.asm +++ b/deps/openssl/config/archs/VC-WIN64A/asm_avx2/crypto/camellia/cmll-x86_64.asm @@ -1169,6 +1169,7 @@ $L$key_epilogue: DB 0F3h,0C3h ;repret $L$SEH_end_Camellia_Ekeygen: +section .rdata rdata align=64 ALIGN 64 $L$Camellia_SIGMA: DD 0x3bcc908b,0xa09e667f,0x4caa73b2,0xb67ae858 @@ -1688,6 +1689,8 @@ $L$Camellia_SBOX: DD 0x008f8f8f,0xe300e3e3 DD 0x00010101,0x40004040 DD 0x003d3d3d,0x4f004f4f +section .text code align=64 + global Camellia_cbc_encrypt ALIGN 16 diff --git a/deps/openssl/config/archs/VC-WIN64A/asm_avx2/crypto/chacha/chacha-x86_64.asm b/deps/openssl/config/archs/VC-WIN64A/asm_avx2/crypto/chacha/chacha-x86_64.asm index 4ae3fe31a63414..47cb8a3db4cd35 100644 --- a/deps/openssl/config/archs/VC-WIN64A/asm_avx2/crypto/chacha/chacha-x86_64.asm +++ b/deps/openssl/config/archs/VC-WIN64A/asm_avx2/crypto/chacha/chacha-x86_64.asm @@ -7,6 +7,7 @@ section .text code align=64 EXTERN OPENSSL_ia32cap_P +section .rdata rdata align=64 ALIGN 64 $L$zero: DD 0,0,0,0 @@ -42,6 +43,7 @@ DB 67,104,97,67,104,97,50,48,32,102,111,114,32,120,56,54 DB 95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32 DB 98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115 DB 108,46,111,114,103,62,0 +section .text global ChaCha20_ctr32 ALIGN 64 diff --git a/deps/openssl/config/archs/VC-WIN64A/asm_avx2/crypto/ec/ecp_nistz256-x86_64.asm b/deps/openssl/config/archs/VC-WIN64A/asm_avx2/crypto/ec/ecp_nistz256-x86_64.asm index 9930dadce66880..746041b3c9e7f4 100644 --- a/deps/openssl/config/archs/VC-WIN64A/asm_avx2/crypto/ec/ecp_nistz256-x86_64.asm +++ b/deps/openssl/config/archs/VC-WIN64A/asm_avx2/crypto/ec/ecp_nistz256-x86_64.asm @@ -2,8 +2,7 @@ default rel %define XMMWORD %define YMMWORD %define ZMMWORD -section .text code align=64 - +section .rdata rdata align=4096 global ecp_nistz256_precomputed ALIGN 4096 @@ -2382,6 +2381,7 @@ section .text code align=64 EXTERN OPENSSL_ia32cap_P +section .rdata rdata align=4096 ALIGN 64 $L$poly: DQ 0xffffffffffffffff,0x00000000ffffffff,0x0000000000000000,0xffffffff00000001 @@ -2404,6 +2404,7 @@ $L$ord: DQ 0xf3b9cac2fc632551,0xbce6faada7179e84,0xffffffffffffffff,0xffffffff00000000 $L$ordK: DQ 0xccd1c8aaee00bc4f +section .text global ecp_nistz256_mul_by_2 diff --git a/deps/openssl/config/archs/VC-WIN64A/asm_avx2/crypto/md5/md5-x86_64.asm b/deps/openssl/config/archs/VC-WIN64A/asm_avx2/crypto/md5/md5-x86_64.asm index 666c54a4be937d..416ea1c0bf89ce 100644 --- a/deps/openssl/config/archs/VC-WIN64A/asm_avx2/crypto/md5/md5-x86_64.asm +++ b/deps/openssl/config/archs/VC-WIN64A/asm_avx2/crypto/md5/md5-x86_64.asm @@ -210,7 +210,7 @@ $L$loop: lea eax,[((-165796510))+r10*1+rax] and r11d,ecx mov r10d,DWORD[24+rsi] - or r12d,r11d + add eax,r11d mov r11d,ecx add eax,r12d mov r12d,ecx @@ -221,7 +221,7 @@ $L$loop: lea edx,[((-1069501632))+r10*1+rdx] and r11d,ebx mov r10d,DWORD[44+rsi] - or r12d,r11d + add edx,r11d mov r11d,ebx add edx,r12d mov r12d,ebx @@ -232,7 +232,7 @@ $L$loop: lea ecx,[643717713+r10*1+rcx] and r11d,eax mov r10d,DWORD[rsi] - or r12d,r11d + add ecx,r11d mov r11d,eax add ecx,r12d mov r12d,eax @@ -243,7 +243,7 @@ $L$loop: lea ebx,[((-373897302))+r10*1+rbx] and r11d,edx mov r10d,DWORD[20+rsi] - or r12d,r11d + add ebx,r11d mov r11d,edx add ebx,r12d mov r12d,edx @@ -254,7 +254,7 @@ $L$loop: lea eax,[((-701558691))+r10*1+rax] and r11d,ecx mov r10d,DWORD[40+rsi] - or r12d,r11d + add eax,r11d mov r11d,ecx add eax,r12d mov r12d,ecx @@ -265,7 +265,7 @@ $L$loop: lea edx,[38016083+r10*1+rdx] and r11d,ebx mov r10d,DWORD[60+rsi] - or r12d,r11d + add edx,r11d mov r11d,ebx add edx,r12d mov r12d,ebx @@ -276,7 +276,7 @@ $L$loop: lea ecx,[((-660478335))+r10*1+rcx] and r11d,eax mov r10d,DWORD[16+rsi] - or r12d,r11d + add ecx,r11d mov r11d,eax add ecx,r12d mov r12d,eax @@ -287,7 +287,7 @@ $L$loop: lea ebx,[((-405537848))+r10*1+rbx] and r11d,edx mov r10d,DWORD[36+rsi] - or r12d,r11d + add ebx,r11d mov r11d,edx add ebx,r12d mov r12d,edx @@ -298,7 +298,7 @@ $L$loop: lea eax,[568446438+r10*1+rax] and r11d,ecx mov r10d,DWORD[56+rsi] - or r12d,r11d + add eax,r11d mov r11d,ecx add eax,r12d mov r12d,ecx @@ -309,7 +309,7 @@ $L$loop: lea edx,[((-1019803690))+r10*1+rdx] and r11d,ebx mov r10d,DWORD[12+rsi] - or r12d,r11d + add edx,r11d mov r11d,ebx add edx,r12d mov r12d,ebx @@ -320,7 +320,7 @@ $L$loop: lea ecx,[((-187363961))+r10*1+rcx] and r11d,eax mov r10d,DWORD[32+rsi] - or r12d,r11d + add ecx,r11d mov r11d,eax add ecx,r12d mov r12d,eax @@ -331,7 +331,7 @@ $L$loop: lea ebx,[1163531501+r10*1+rbx] and r11d,edx mov r10d,DWORD[52+rsi] - or r12d,r11d + add ebx,r11d mov r11d,edx add ebx,r12d mov r12d,edx @@ -342,7 +342,7 @@ $L$loop: lea eax,[((-1444681467))+r10*1+rax] and r11d,ecx mov r10d,DWORD[8+rsi] - or r12d,r11d + add eax,r11d mov r11d,ecx add eax,r12d mov r12d,ecx @@ -353,7 +353,7 @@ $L$loop: lea edx,[((-51403784))+r10*1+rdx] and r11d,ebx mov r10d,DWORD[28+rsi] - or r12d,r11d + add edx,r11d mov r11d,ebx add edx,r12d mov r12d,ebx @@ -364,7 +364,7 @@ $L$loop: lea ecx,[1735328473+r10*1+rcx] and r11d,eax mov r10d,DWORD[48+rsi] - or r12d,r11d + add ecx,r11d mov r11d,eax add ecx,r12d mov r12d,eax @@ -375,7 +375,7 @@ $L$loop: lea ebx,[((-1926607734))+r10*1+rbx] and r11d,edx mov r10d,DWORD[20+rsi] - or r12d,r11d + add ebx,r11d mov r11d,edx add ebx,r12d mov r12d,edx diff --git a/deps/openssl/config/archs/VC-WIN64A/asm_avx2/crypto/modes/aes-gcm-avx512.asm b/deps/openssl/config/archs/VC-WIN64A/asm_avx2/crypto/modes/aes-gcm-avx512.asm new file mode 100644 index 00000000000000..563af63a5564e8 --- /dev/null +++ b/deps/openssl/config/archs/VC-WIN64A/asm_avx2/crypto/modes/aes-gcm-avx512.asm @@ -0,0 +1,136520 @@ +default rel +%define XMMWORD +%define YMMWORD +%define ZMMWORD +EXTERN OPENSSL_ia32cap_P +global ossl_vaes_vpclmulqdq_capable + +ALIGN 32 +ossl_vaes_vpclmulqdq_capable: + mov rcx,QWORD[((OPENSSL_ia32cap_P+8))] + + mov rdx,6600291188736 + xor eax,eax + and rcx,rdx + cmp rcx,rdx + cmove rax,rcx + DB 0F3h,0C3h ;repret + +section .text code align=64 + +global ossl_aes_gcm_init_avx512 + +ALIGN 32 +ossl_aes_gcm_init_avx512: + +DB 243,15,30,250 + vpxorq xmm16,xmm16,xmm16 + + + mov eax,DWORD[240+rcx] + cmp eax,9 + je NEAR $L$aes_128_0 + cmp eax,11 + je NEAR $L$aes_192_0 + cmp eax,13 + je NEAR $L$aes_256_0 + jmp NEAR $L$exit_aes_0 +ALIGN 32 +$L$aes_128_0: + vpxorq xmm16,xmm16,XMMWORD[rcx] + + vaesenc xmm16,xmm16,XMMWORD[16+rcx] + + vaesenc xmm16,xmm16,XMMWORD[32+rcx] + + vaesenc xmm16,xmm16,XMMWORD[48+rcx] + + vaesenc xmm16,xmm16,XMMWORD[64+rcx] + + vaesenc xmm16,xmm16,XMMWORD[80+rcx] + + vaesenc xmm16,xmm16,XMMWORD[96+rcx] + + vaesenc xmm16,xmm16,XMMWORD[112+rcx] + + vaesenc xmm16,xmm16,XMMWORD[128+rcx] + + vaesenc xmm16,xmm16,XMMWORD[144+rcx] + + vaesenclast xmm16,xmm16,XMMWORD[160+rcx] + jmp NEAR $L$exit_aes_0 +ALIGN 32 +$L$aes_192_0: + vpxorq xmm16,xmm16,XMMWORD[rcx] + + vaesenc xmm16,xmm16,XMMWORD[16+rcx] + + vaesenc xmm16,xmm16,XMMWORD[32+rcx] + + vaesenc xmm16,xmm16,XMMWORD[48+rcx] + + vaesenc xmm16,xmm16,XMMWORD[64+rcx] + + vaesenc xmm16,xmm16,XMMWORD[80+rcx] + + vaesenc xmm16,xmm16,XMMWORD[96+rcx] + + vaesenc xmm16,xmm16,XMMWORD[112+rcx] + + vaesenc xmm16,xmm16,XMMWORD[128+rcx] + + vaesenc xmm16,xmm16,XMMWORD[144+rcx] + + vaesenc xmm16,xmm16,XMMWORD[160+rcx] + + vaesenc xmm16,xmm16,XMMWORD[176+rcx] + + vaesenclast xmm16,xmm16,XMMWORD[192+rcx] + jmp NEAR $L$exit_aes_0 +ALIGN 32 +$L$aes_256_0: + vpxorq xmm16,xmm16,XMMWORD[rcx] + + vaesenc xmm16,xmm16,XMMWORD[16+rcx] + + vaesenc xmm16,xmm16,XMMWORD[32+rcx] + + vaesenc xmm16,xmm16,XMMWORD[48+rcx] + + vaesenc xmm16,xmm16,XMMWORD[64+rcx] + + vaesenc xmm16,xmm16,XMMWORD[80+rcx] + + vaesenc xmm16,xmm16,XMMWORD[96+rcx] + + vaesenc xmm16,xmm16,XMMWORD[112+rcx] + + vaesenc xmm16,xmm16,XMMWORD[128+rcx] + + vaesenc xmm16,xmm16,XMMWORD[144+rcx] + + vaesenc xmm16,xmm16,XMMWORD[160+rcx] + + vaesenc xmm16,xmm16,XMMWORD[176+rcx] + + vaesenc xmm16,xmm16,XMMWORD[192+rcx] + + vaesenc xmm16,xmm16,XMMWORD[208+rcx] + + vaesenclast xmm16,xmm16,XMMWORD[224+rcx] + jmp NEAR $L$exit_aes_0 +$L$exit_aes_0: + + vpshufb xmm16,xmm16,XMMWORD[SHUF_MASK] + + vmovdqa64 xmm2,xmm16 + vpsllq xmm16,xmm16,1 + vpsrlq xmm2,xmm2,63 + vmovdqa xmm1,xmm2 + vpslldq xmm2,xmm2,8 + vpsrldq xmm1,xmm1,8 + vporq xmm16,xmm16,xmm2 + + vpshufd xmm2,xmm1,36 + vpcmpeqd xmm2,xmm2,XMMWORD[TWOONE] + vpand xmm2,xmm2,XMMWORD[POLY] + vpxorq xmm16,xmm16,xmm2 + + vmovdqu64 XMMWORD[336+rdx],xmm16 + vshufi32x4 ymm4,ymm16,ymm16,0x00 + vmovdqa ymm3,ymm4 + + vpclmulqdq ymm0,ymm3,ymm4,0x11 + vpclmulqdq ymm1,ymm3,ymm4,0x00 + vpclmulqdq ymm2,ymm3,ymm4,0x01 + vpclmulqdq ymm3,ymm3,ymm4,0x10 + vpxorq ymm3,ymm3,ymm2 + + vpsrldq ymm2,ymm3,8 + vpslldq ymm3,ymm3,8 + vpxorq ymm0,ymm0,ymm2 + vpxorq ymm3,ymm3,ymm1 + + + + vmovdqu64 ymm2,YMMWORD[POLY2] + + vpclmulqdq ymm1,ymm2,ymm3,0x01 + vpslldq ymm1,ymm1,8 + vpxorq ymm3,ymm3,ymm1 + + + + vpclmulqdq ymm1,ymm2,ymm3,0x00 + vpsrldq ymm1,ymm1,4 + vpclmulqdq ymm3,ymm2,ymm3,0x10 + vpslldq ymm3,ymm3,4 + + vpternlogq ymm3,ymm0,ymm1,0x96 + + vmovdqu64 XMMWORD[320+rdx],xmm3 + vinserti64x2 ymm4,ymm3,xmm16,1 + vmovdqa64 ymm5,ymm4 + + vpclmulqdq ymm0,ymm4,ymm3,0x11 + vpclmulqdq ymm1,ymm4,ymm3,0x00 + vpclmulqdq ymm2,ymm4,ymm3,0x01 + vpclmulqdq ymm4,ymm4,ymm3,0x10 + vpxorq ymm4,ymm4,ymm2 + + vpsrldq ymm2,ymm4,8 + vpslldq ymm4,ymm4,8 + vpxorq ymm0,ymm0,ymm2 + vpxorq ymm4,ymm4,ymm1 + + + + vmovdqu64 ymm2,YMMWORD[POLY2] + + vpclmulqdq ymm1,ymm2,ymm4,0x01 + vpslldq ymm1,ymm1,8 + vpxorq ymm4,ymm4,ymm1 + + + + vpclmulqdq ymm1,ymm2,ymm4,0x00 + vpsrldq ymm1,ymm1,4 + vpclmulqdq ymm4,ymm2,ymm4,0x10 + vpslldq ymm4,ymm4,4 + + vpternlogq ymm4,ymm0,ymm1,0x96 + + vmovdqu64 YMMWORD[288+rdx],ymm4 + + vinserti64x4 zmm4,zmm4,ymm5,1 + + + vshufi64x2 zmm3,zmm4,zmm4,0x00 + vmovdqa64 zmm5,zmm4 + + vpclmulqdq zmm0,zmm4,zmm3,0x11 + vpclmulqdq zmm1,zmm4,zmm3,0x00 + vpclmulqdq zmm2,zmm4,zmm3,0x01 + vpclmulqdq zmm4,zmm4,zmm3,0x10 + vpxorq zmm4,zmm4,zmm2 + + vpsrldq zmm2,zmm4,8 + vpslldq zmm4,zmm4,8 + vpxorq zmm0,zmm0,zmm2 + vpxorq zmm4,zmm4,zmm1 + + + + vmovdqu64 zmm2,ZMMWORD[POLY2] + + vpclmulqdq zmm1,zmm2,zmm4,0x01 + vpslldq zmm1,zmm1,8 + vpxorq zmm4,zmm4,zmm1 + + + + vpclmulqdq zmm1,zmm2,zmm4,0x00 + vpsrldq zmm1,zmm1,4 + vpclmulqdq zmm4,zmm2,zmm4,0x10 + vpslldq zmm4,zmm4,4 + + vpternlogq zmm4,zmm0,zmm1,0x96 + + vmovdqu64 ZMMWORD[224+rdx],zmm4 + vshufi64x2 zmm3,zmm4,zmm4,0x00 + + vpclmulqdq zmm0,zmm5,zmm3,0x11 + vpclmulqdq zmm1,zmm5,zmm3,0x00 + vpclmulqdq zmm2,zmm5,zmm3,0x01 + vpclmulqdq zmm5,zmm5,zmm3,0x10 + vpxorq zmm5,zmm5,zmm2 + + vpsrldq zmm2,zmm5,8 + vpslldq zmm5,zmm5,8 + vpxorq zmm0,zmm0,zmm2 + vpxorq zmm5,zmm5,zmm1 + + + + vmovdqu64 zmm2,ZMMWORD[POLY2] + + vpclmulqdq zmm1,zmm2,zmm5,0x01 + vpslldq zmm1,zmm1,8 + vpxorq zmm5,zmm5,zmm1 + + + + vpclmulqdq zmm1,zmm2,zmm5,0x00 + vpsrldq zmm1,zmm1,4 + vpclmulqdq zmm5,zmm2,zmm5,0x10 + vpslldq zmm5,zmm5,4 + + vpternlogq zmm5,zmm0,zmm1,0x96 + + vmovdqu64 ZMMWORD[160+rdx],zmm5 + + vpclmulqdq zmm0,zmm4,zmm3,0x11 + vpclmulqdq zmm1,zmm4,zmm3,0x00 + vpclmulqdq zmm2,zmm4,zmm3,0x01 + vpclmulqdq zmm4,zmm4,zmm3,0x10 + vpxorq zmm4,zmm4,zmm2 + + vpsrldq zmm2,zmm4,8 + vpslldq zmm4,zmm4,8 + vpxorq zmm0,zmm0,zmm2 + vpxorq zmm4,zmm4,zmm1 + + + + vmovdqu64 zmm2,ZMMWORD[POLY2] + + vpclmulqdq zmm1,zmm2,zmm4,0x01 + vpslldq zmm1,zmm1,8 + vpxorq zmm4,zmm4,zmm1 + + + + vpclmulqdq zmm1,zmm2,zmm4,0x00 + vpsrldq zmm1,zmm1,4 + vpclmulqdq zmm4,zmm2,zmm4,0x10 + vpslldq zmm4,zmm4,4 + + vpternlogq zmm4,zmm0,zmm1,0x96 + + vmovdqu64 ZMMWORD[96+rdx],zmm4 + vzeroupper +$L$abort_init: + DB 0F3h,0C3h ;repret + + +global ossl_aes_gcm_setiv_avx512 + +ALIGN 32 +ossl_aes_gcm_setiv_avx512: + +$L$setiv_seh_begin: +DB 243,15,30,250 + push rbx + +$L$setiv_seh_push_rbx: + push rbp + +$L$setiv_seh_push_rbp: + push r12 + +$L$setiv_seh_push_r12: + push r13 + +$L$setiv_seh_push_r13: + push r14 + +$L$setiv_seh_push_r14: + push r15 + +$L$setiv_seh_push_r15: + push rdi +$L$setiv_seh_push_rdi: + push rsi +$L$setiv_seh_push_rsi: + + sub rsp,168 +$L$setiv_seh_allocstack_xmm: + + + + + + + + + + + lea rbp,[160+rsp] + +$L$setiv_seh_setfp: + vmovdqu XMMWORD[rsp],xmm6 +$L$setiv_seh_save_xmm6: + vmovdqu XMMWORD[16+rsp],xmm7 +$L$setiv_seh_save_xmm7: + vmovdqu XMMWORD[32+rsp],xmm8 +$L$setiv_seh_save_xmm8: + vmovdqu XMMWORD[48+rsp],xmm9 +$L$setiv_seh_save_xmm9: + vmovdqu XMMWORD[64+rsp],xmm10 +$L$setiv_seh_save_xmm10: + vmovdqu XMMWORD[80+rsp],xmm11 +$L$setiv_seh_save_xmm11: + vmovdqu XMMWORD[96+rsp],xmm12 +$L$setiv_seh_save_xmm12: + vmovdqu XMMWORD[112+rsp],xmm13 +$L$setiv_seh_save_xmm13: + vmovdqu XMMWORD[128+rsp],xmm14 +$L$setiv_seh_save_xmm14: + vmovdqu XMMWORD[144+rsp],xmm15 +$L$setiv_seh_save_xmm15: + +$L$setiv_seh_prolog_end: + sub rsp,816 + and rsp,(-64) + cmp r9,12 + je NEAR iv_len_12_init_IV + vpxor xmm2,xmm2,xmm2 + mov r10,r8 + mov r11,r9 + or r11,r11 + jz NEAR $L$_CALC_AAD_done_1 + + xor rbx,rbx + vmovdqa64 zmm16,ZMMWORD[SHUF_MASK] + +$L$_get_AAD_loop48x16_1: + cmp r11,768 + jl NEAR $L$_exit_AAD_loop48x16_1 + vmovdqu64 zmm11,ZMMWORD[r10] + vmovdqu64 zmm3,ZMMWORD[64+r10] + vmovdqu64 zmm4,ZMMWORD[128+r10] + vmovdqu64 zmm5,ZMMWORD[192+r10] + vpshufb zmm11,zmm11,zmm16 + vpshufb zmm3,zmm3,zmm16 + vpshufb zmm4,zmm4,zmm16 + vpshufb zmm5,zmm5,zmm16 + test rbx,rbx + jnz NEAR $L$_skip_hkeys_precomputation_2 + + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vmovdqu64 ZMMWORD[704+rsp],zmm1 + + vmovdqu64 zmm9,ZMMWORD[224+rdx] + vmovdqu64 ZMMWORD[640+rsp],zmm9 + + + vshufi64x2 zmm9,zmm9,zmm9,0x00 + + vmovdqu64 zmm10,ZMMWORD[160+rdx] + vmovdqu64 ZMMWORD[576+rsp],zmm10 + + vmovdqu64 zmm12,ZMMWORD[96+rdx] + vmovdqu64 ZMMWORD[512+rsp],zmm12 + + vpclmulqdq zmm13,zmm10,zmm9,0x11 + vpclmulqdq zmm15,zmm10,zmm9,0x00 + vpclmulqdq zmm17,zmm10,zmm9,0x01 + vpclmulqdq zmm10,zmm10,zmm9,0x10 + vpxorq zmm10,zmm10,zmm17 + + vpsrldq zmm17,zmm10,8 + vpslldq zmm10,zmm10,8 + vpxorq zmm13,zmm13,zmm17 + vpxorq zmm10,zmm10,zmm15 + + + + vmovdqu64 zmm17,ZMMWORD[POLY2] + + vpclmulqdq zmm15,zmm17,zmm10,0x01 + vpslldq zmm15,zmm15,8 + vpxorq zmm10,zmm10,zmm15 + + + + vpclmulqdq zmm15,zmm17,zmm10,0x00 + vpsrldq zmm15,zmm15,4 + vpclmulqdq zmm10,zmm17,zmm10,0x10 + vpslldq zmm10,zmm10,4 + + vpternlogq zmm10,zmm13,zmm15,0x96 + + vmovdqu64 ZMMWORD[448+rsp],zmm10 + + vpclmulqdq zmm13,zmm12,zmm9,0x11 + vpclmulqdq zmm15,zmm12,zmm9,0x00 + vpclmulqdq zmm17,zmm12,zmm9,0x01 + vpclmulqdq zmm12,zmm12,zmm9,0x10 + vpxorq zmm12,zmm12,zmm17 + + vpsrldq zmm17,zmm12,8 + vpslldq zmm12,zmm12,8 + vpxorq zmm13,zmm13,zmm17 + vpxorq zmm12,zmm12,zmm15 + + + + vmovdqu64 zmm17,ZMMWORD[POLY2] + + vpclmulqdq zmm15,zmm17,zmm12,0x01 + vpslldq zmm15,zmm15,8 + vpxorq zmm12,zmm12,zmm15 + + + + vpclmulqdq zmm15,zmm17,zmm12,0x00 + vpsrldq zmm15,zmm15,4 + vpclmulqdq zmm12,zmm17,zmm12,0x10 + vpslldq zmm12,zmm12,4 + + vpternlogq zmm12,zmm13,zmm15,0x96 + + vmovdqu64 ZMMWORD[384+rsp],zmm12 + + vpclmulqdq zmm13,zmm10,zmm9,0x11 + vpclmulqdq zmm15,zmm10,zmm9,0x00 + vpclmulqdq zmm17,zmm10,zmm9,0x01 + vpclmulqdq zmm10,zmm10,zmm9,0x10 + vpxorq zmm10,zmm10,zmm17 + + vpsrldq zmm17,zmm10,8 + vpslldq zmm10,zmm10,8 + vpxorq zmm13,zmm13,zmm17 + vpxorq zmm10,zmm10,zmm15 + + + + vmovdqu64 zmm17,ZMMWORD[POLY2] + + vpclmulqdq zmm15,zmm17,zmm10,0x01 + vpslldq zmm15,zmm15,8 + vpxorq zmm10,zmm10,zmm15 + + + + vpclmulqdq zmm15,zmm17,zmm10,0x00 + vpsrldq zmm15,zmm15,4 + vpclmulqdq zmm10,zmm17,zmm10,0x10 + vpslldq zmm10,zmm10,4 + + vpternlogq zmm10,zmm13,zmm15,0x96 + + vmovdqu64 ZMMWORD[320+rsp],zmm10 + + vpclmulqdq zmm13,zmm12,zmm9,0x11 + vpclmulqdq zmm15,zmm12,zmm9,0x00 + vpclmulqdq zmm17,zmm12,zmm9,0x01 + vpclmulqdq zmm12,zmm12,zmm9,0x10 + vpxorq zmm12,zmm12,zmm17 + + vpsrldq zmm17,zmm12,8 + vpslldq zmm12,zmm12,8 + vpxorq zmm13,zmm13,zmm17 + vpxorq zmm12,zmm12,zmm15 + + + + vmovdqu64 zmm17,ZMMWORD[POLY2] + + vpclmulqdq zmm15,zmm17,zmm12,0x01 + vpslldq zmm15,zmm15,8 + vpxorq zmm12,zmm12,zmm15 + + + + vpclmulqdq zmm15,zmm17,zmm12,0x00 + vpsrldq zmm15,zmm15,4 + vpclmulqdq zmm12,zmm17,zmm12,0x10 + vpslldq zmm12,zmm12,4 + + vpternlogq zmm12,zmm13,zmm15,0x96 + + vmovdqu64 ZMMWORD[256+rsp],zmm12 + + vpclmulqdq zmm13,zmm10,zmm9,0x11 + vpclmulqdq zmm15,zmm10,zmm9,0x00 + vpclmulqdq zmm17,zmm10,zmm9,0x01 + vpclmulqdq zmm10,zmm10,zmm9,0x10 + vpxorq zmm10,zmm10,zmm17 + + vpsrldq zmm17,zmm10,8 + vpslldq zmm10,zmm10,8 + vpxorq zmm13,zmm13,zmm17 + vpxorq zmm10,zmm10,zmm15 + + + + vmovdqu64 zmm17,ZMMWORD[POLY2] + + vpclmulqdq zmm15,zmm17,zmm10,0x01 + vpslldq zmm15,zmm15,8 + vpxorq zmm10,zmm10,zmm15 + + + + vpclmulqdq zmm15,zmm17,zmm10,0x00 + vpsrldq zmm15,zmm15,4 + vpclmulqdq zmm10,zmm17,zmm10,0x10 + vpslldq zmm10,zmm10,4 + + vpternlogq zmm10,zmm13,zmm15,0x96 + + vmovdqu64 ZMMWORD[192+rsp],zmm10 + + vpclmulqdq zmm13,zmm12,zmm9,0x11 + vpclmulqdq zmm15,zmm12,zmm9,0x00 + vpclmulqdq zmm17,zmm12,zmm9,0x01 + vpclmulqdq zmm12,zmm12,zmm9,0x10 + vpxorq zmm12,zmm12,zmm17 + + vpsrldq zmm17,zmm12,8 + vpslldq zmm12,zmm12,8 + vpxorq zmm13,zmm13,zmm17 + vpxorq zmm12,zmm12,zmm15 + + + + vmovdqu64 zmm17,ZMMWORD[POLY2] + + vpclmulqdq zmm15,zmm17,zmm12,0x01 + vpslldq zmm15,zmm15,8 + vpxorq zmm12,zmm12,zmm15 + + + + vpclmulqdq zmm15,zmm17,zmm12,0x00 + vpsrldq zmm15,zmm15,4 + vpclmulqdq zmm12,zmm17,zmm12,0x10 + vpslldq zmm12,zmm12,4 + + vpternlogq zmm12,zmm13,zmm15,0x96 + + vmovdqu64 ZMMWORD[128+rsp],zmm12 + + vpclmulqdq zmm13,zmm10,zmm9,0x11 + vpclmulqdq zmm15,zmm10,zmm9,0x00 + vpclmulqdq zmm17,zmm10,zmm9,0x01 + vpclmulqdq zmm10,zmm10,zmm9,0x10 + vpxorq zmm10,zmm10,zmm17 + + vpsrldq zmm17,zmm10,8 + vpslldq zmm10,zmm10,8 + vpxorq zmm13,zmm13,zmm17 + vpxorq zmm10,zmm10,zmm15 + + + + vmovdqu64 zmm17,ZMMWORD[POLY2] + + vpclmulqdq zmm15,zmm17,zmm10,0x01 + vpslldq zmm15,zmm15,8 + vpxorq zmm10,zmm10,zmm15 + + + + vpclmulqdq zmm15,zmm17,zmm10,0x00 + vpsrldq zmm15,zmm15,4 + vpclmulqdq zmm10,zmm17,zmm10,0x10 + vpslldq zmm10,zmm10,4 + + vpternlogq zmm10,zmm13,zmm15,0x96 + + vmovdqu64 ZMMWORD[64+rsp],zmm10 + + vpclmulqdq zmm13,zmm12,zmm9,0x11 + vpclmulqdq zmm15,zmm12,zmm9,0x00 + vpclmulqdq zmm17,zmm12,zmm9,0x01 + vpclmulqdq zmm12,zmm12,zmm9,0x10 + vpxorq zmm12,zmm12,zmm17 + + vpsrldq zmm17,zmm12,8 + vpslldq zmm12,zmm12,8 + vpxorq zmm13,zmm13,zmm17 + vpxorq zmm12,zmm12,zmm15 + + + + vmovdqu64 zmm17,ZMMWORD[POLY2] + + vpclmulqdq zmm15,zmm17,zmm12,0x01 + vpslldq zmm15,zmm15,8 + vpxorq zmm12,zmm12,zmm15 + + + + vpclmulqdq zmm15,zmm17,zmm12,0x00 + vpsrldq zmm15,zmm15,4 + vpclmulqdq zmm12,zmm17,zmm12,0x10 + vpslldq zmm12,zmm12,4 + + vpternlogq zmm12,zmm13,zmm15,0x96 + + vmovdqu64 ZMMWORD[rsp],zmm12 +$L$_skip_hkeys_precomputation_2: + mov rbx,1 + vpxorq zmm11,zmm11,zmm2 + vmovdqu64 zmm19,ZMMWORD[rsp] + vpclmulqdq zmm1,zmm11,zmm19,0x11 + vpclmulqdq zmm9,zmm11,zmm19,0x00 + vpclmulqdq zmm10,zmm11,zmm19,0x01 + vpclmulqdq zmm12,zmm11,zmm19,0x10 + vmovdqu64 zmm19,ZMMWORD[64+rsp] + vpclmulqdq zmm13,zmm3,zmm19,0x11 + vpclmulqdq zmm15,zmm3,zmm19,0x00 + vpclmulqdq zmm17,zmm3,zmm19,0x01 + vpclmulqdq zmm18,zmm3,zmm19,0x10 + vpxorq zmm7,zmm10,zmm17 + vpxorq zmm6,zmm1,zmm13 + vpxorq zmm8,zmm9,zmm15 + vpternlogq zmm7,zmm12,zmm18,0x96 + vmovdqu64 zmm19,ZMMWORD[128+rsp] + vpclmulqdq zmm1,zmm4,zmm19,0x11 + vpclmulqdq zmm9,zmm4,zmm19,0x00 + vpclmulqdq zmm10,zmm4,zmm19,0x01 + vpclmulqdq zmm12,zmm4,zmm19,0x10 + vmovdqu64 zmm19,ZMMWORD[192+rsp] + vpclmulqdq zmm13,zmm5,zmm19,0x11 + vpclmulqdq zmm15,zmm5,zmm19,0x00 + vpclmulqdq zmm17,zmm5,zmm19,0x01 + vpclmulqdq zmm18,zmm5,zmm19,0x10 + + vpternlogq zmm7,zmm10,zmm17,0x96 + vpternlogq zmm6,zmm1,zmm13,0x96 + vpternlogq zmm8,zmm9,zmm15,0x96 + vpternlogq zmm7,zmm12,zmm18,0x96 + vmovdqu64 zmm11,ZMMWORD[256+r10] + vmovdqu64 zmm3,ZMMWORD[320+r10] + vmovdqu64 zmm4,ZMMWORD[384+r10] + vmovdqu64 zmm5,ZMMWORD[448+r10] + vpshufb zmm11,zmm11,zmm16 + vpshufb zmm3,zmm3,zmm16 + vpshufb zmm4,zmm4,zmm16 + vpshufb zmm5,zmm5,zmm16 + vmovdqu64 zmm19,ZMMWORD[256+rsp] + vpclmulqdq zmm1,zmm11,zmm19,0x11 + vpclmulqdq zmm9,zmm11,zmm19,0x00 + vpclmulqdq zmm10,zmm11,zmm19,0x01 + vpclmulqdq zmm12,zmm11,zmm19,0x10 + vmovdqu64 zmm19,ZMMWORD[320+rsp] + vpclmulqdq zmm13,zmm3,zmm19,0x11 + vpclmulqdq zmm15,zmm3,zmm19,0x00 + vpclmulqdq zmm17,zmm3,zmm19,0x01 + vpclmulqdq zmm18,zmm3,zmm19,0x10 + vpternlogq zmm7,zmm10,zmm17,0x96 + vpternlogq zmm6,zmm1,zmm13,0x96 + vpternlogq zmm8,zmm9,zmm15,0x96 + vpternlogq zmm7,zmm12,zmm18,0x96 + vmovdqu64 zmm19,ZMMWORD[384+rsp] + vpclmulqdq zmm1,zmm4,zmm19,0x11 + vpclmulqdq zmm9,zmm4,zmm19,0x00 + vpclmulqdq zmm10,zmm4,zmm19,0x01 + vpclmulqdq zmm12,zmm4,zmm19,0x10 + vmovdqu64 zmm19,ZMMWORD[448+rsp] + vpclmulqdq zmm13,zmm5,zmm19,0x11 + vpclmulqdq zmm15,zmm5,zmm19,0x00 + vpclmulqdq zmm17,zmm5,zmm19,0x01 + vpclmulqdq zmm18,zmm5,zmm19,0x10 + + vpternlogq zmm7,zmm10,zmm17,0x96 + vpternlogq zmm6,zmm1,zmm13,0x96 + vpternlogq zmm8,zmm9,zmm15,0x96 + vpternlogq zmm7,zmm12,zmm18,0x96 + vmovdqu64 zmm11,ZMMWORD[512+r10] + vmovdqu64 zmm3,ZMMWORD[576+r10] + vmovdqu64 zmm4,ZMMWORD[640+r10] + vmovdqu64 zmm5,ZMMWORD[704+r10] + vpshufb zmm11,zmm11,zmm16 + vpshufb zmm3,zmm3,zmm16 + vpshufb zmm4,zmm4,zmm16 + vpshufb zmm5,zmm5,zmm16 + vmovdqu64 zmm19,ZMMWORD[512+rsp] + vpclmulqdq zmm1,zmm11,zmm19,0x11 + vpclmulqdq zmm9,zmm11,zmm19,0x00 + vpclmulqdq zmm10,zmm11,zmm19,0x01 + vpclmulqdq zmm12,zmm11,zmm19,0x10 + vmovdqu64 zmm19,ZMMWORD[576+rsp] + vpclmulqdq zmm13,zmm3,zmm19,0x11 + vpclmulqdq zmm15,zmm3,zmm19,0x00 + vpclmulqdq zmm17,zmm3,zmm19,0x01 + vpclmulqdq zmm18,zmm3,zmm19,0x10 + vpternlogq zmm7,zmm10,zmm17,0x96 + vpternlogq zmm6,zmm1,zmm13,0x96 + vpternlogq zmm8,zmm9,zmm15,0x96 + vpternlogq zmm7,zmm12,zmm18,0x96 + vmovdqu64 zmm19,ZMMWORD[640+rsp] + vpclmulqdq zmm1,zmm4,zmm19,0x11 + vpclmulqdq zmm9,zmm4,zmm19,0x00 + vpclmulqdq zmm10,zmm4,zmm19,0x01 + vpclmulqdq zmm12,zmm4,zmm19,0x10 + vmovdqu64 zmm19,ZMMWORD[704+rsp] + vpclmulqdq zmm13,zmm5,zmm19,0x11 + vpclmulqdq zmm15,zmm5,zmm19,0x00 + vpclmulqdq zmm17,zmm5,zmm19,0x01 + vpclmulqdq zmm18,zmm5,zmm19,0x10 + + vpternlogq zmm7,zmm10,zmm17,0x96 + vpternlogq zmm6,zmm1,zmm13,0x96 + vpternlogq zmm8,zmm9,zmm15,0x96 + vpternlogq zmm7,zmm12,zmm18,0x96 + + vpsrldq zmm1,zmm7,8 + vpslldq zmm9,zmm7,8 + vpxorq zmm6,zmm6,zmm1 + vpxorq zmm8,zmm8,zmm9 + vextracti64x4 ymm1,zmm6,1 + vpxorq ymm6,ymm6,ymm1 + vextracti32x4 xmm1,ymm6,1 + vpxorq xmm6,xmm6,xmm1 + vextracti64x4 ymm9,zmm8,1 + vpxorq ymm8,ymm8,ymm9 + vextracti32x4 xmm9,ymm8,1 + vpxorq xmm8,xmm8,xmm9 + vmovdqa64 xmm10,XMMWORD[POLY2] + + + vpclmulqdq xmm1,xmm10,xmm8,0x01 + vpslldq xmm1,xmm1,8 + vpxorq xmm1,xmm8,xmm1 + + + vpclmulqdq xmm9,xmm10,xmm1,0x00 + vpsrldq xmm9,xmm9,4 + vpclmulqdq xmm2,xmm10,xmm1,0x10 + vpslldq xmm2,xmm2,4 + vpternlogq xmm2,xmm9,xmm6,0x96 + + sub r11,768 + je NEAR $L$_CALC_AAD_done_1 + + add r10,768 + jmp NEAR $L$_get_AAD_loop48x16_1 + +$L$_exit_AAD_loop48x16_1: + + cmp r11,512 + jl NEAR $L$_less_than_32x16_1 + + vmovdqu64 zmm11,ZMMWORD[r10] + vmovdqu64 zmm3,ZMMWORD[64+r10] + vmovdqu64 zmm4,ZMMWORD[128+r10] + vmovdqu64 zmm5,ZMMWORD[192+r10] + vpshufb zmm11,zmm11,zmm16 + vpshufb zmm3,zmm3,zmm16 + vpshufb zmm4,zmm4,zmm16 + vpshufb zmm5,zmm5,zmm16 + test rbx,rbx + jnz NEAR $L$_skip_hkeys_precomputation_3 + + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vmovdqu64 ZMMWORD[704+rsp],zmm1 + + vmovdqu64 zmm9,ZMMWORD[224+rdx] + vmovdqu64 ZMMWORD[640+rsp],zmm9 + + + vshufi64x2 zmm9,zmm9,zmm9,0x00 + + vmovdqu64 zmm10,ZMMWORD[160+rdx] + vmovdqu64 ZMMWORD[576+rsp],zmm10 + + vmovdqu64 zmm12,ZMMWORD[96+rdx] + vmovdqu64 ZMMWORD[512+rsp],zmm12 + + vpclmulqdq zmm13,zmm10,zmm9,0x11 + vpclmulqdq zmm15,zmm10,zmm9,0x00 + vpclmulqdq zmm17,zmm10,zmm9,0x01 + vpclmulqdq zmm10,zmm10,zmm9,0x10 + vpxorq zmm10,zmm10,zmm17 + + vpsrldq zmm17,zmm10,8 + vpslldq zmm10,zmm10,8 + vpxorq zmm13,zmm13,zmm17 + vpxorq zmm10,zmm10,zmm15 + + + + vmovdqu64 zmm17,ZMMWORD[POLY2] + + vpclmulqdq zmm15,zmm17,zmm10,0x01 + vpslldq zmm15,zmm15,8 + vpxorq zmm10,zmm10,zmm15 + + + + vpclmulqdq zmm15,zmm17,zmm10,0x00 + vpsrldq zmm15,zmm15,4 + vpclmulqdq zmm10,zmm17,zmm10,0x10 + vpslldq zmm10,zmm10,4 + + vpternlogq zmm10,zmm13,zmm15,0x96 + + vmovdqu64 ZMMWORD[448+rsp],zmm10 + + vpclmulqdq zmm13,zmm12,zmm9,0x11 + vpclmulqdq zmm15,zmm12,zmm9,0x00 + vpclmulqdq zmm17,zmm12,zmm9,0x01 + vpclmulqdq zmm12,zmm12,zmm9,0x10 + vpxorq zmm12,zmm12,zmm17 + + vpsrldq zmm17,zmm12,8 + vpslldq zmm12,zmm12,8 + vpxorq zmm13,zmm13,zmm17 + vpxorq zmm12,zmm12,zmm15 + + + + vmovdqu64 zmm17,ZMMWORD[POLY2] + + vpclmulqdq zmm15,zmm17,zmm12,0x01 + vpslldq zmm15,zmm15,8 + vpxorq zmm12,zmm12,zmm15 + + + + vpclmulqdq zmm15,zmm17,zmm12,0x00 + vpsrldq zmm15,zmm15,4 + vpclmulqdq zmm12,zmm17,zmm12,0x10 + vpslldq zmm12,zmm12,4 + + vpternlogq zmm12,zmm13,zmm15,0x96 + + vmovdqu64 ZMMWORD[384+rsp],zmm12 + + vpclmulqdq zmm13,zmm10,zmm9,0x11 + vpclmulqdq zmm15,zmm10,zmm9,0x00 + vpclmulqdq zmm17,zmm10,zmm9,0x01 + vpclmulqdq zmm10,zmm10,zmm9,0x10 + vpxorq zmm10,zmm10,zmm17 + + vpsrldq zmm17,zmm10,8 + vpslldq zmm10,zmm10,8 + vpxorq zmm13,zmm13,zmm17 + vpxorq zmm10,zmm10,zmm15 + + + + vmovdqu64 zmm17,ZMMWORD[POLY2] + + vpclmulqdq zmm15,zmm17,zmm10,0x01 + vpslldq zmm15,zmm15,8 + vpxorq zmm10,zmm10,zmm15 + + + + vpclmulqdq zmm15,zmm17,zmm10,0x00 + vpsrldq zmm15,zmm15,4 + vpclmulqdq zmm10,zmm17,zmm10,0x10 + vpslldq zmm10,zmm10,4 + + vpternlogq zmm10,zmm13,zmm15,0x96 + + vmovdqu64 ZMMWORD[320+rsp],zmm10 + + vpclmulqdq zmm13,zmm12,zmm9,0x11 + vpclmulqdq zmm15,zmm12,zmm9,0x00 + vpclmulqdq zmm17,zmm12,zmm9,0x01 + vpclmulqdq zmm12,zmm12,zmm9,0x10 + vpxorq zmm12,zmm12,zmm17 + + vpsrldq zmm17,zmm12,8 + vpslldq zmm12,zmm12,8 + vpxorq zmm13,zmm13,zmm17 + vpxorq zmm12,zmm12,zmm15 + + + + vmovdqu64 zmm17,ZMMWORD[POLY2] + + vpclmulqdq zmm15,zmm17,zmm12,0x01 + vpslldq zmm15,zmm15,8 + vpxorq zmm12,zmm12,zmm15 + + + + vpclmulqdq zmm15,zmm17,zmm12,0x00 + vpsrldq zmm15,zmm15,4 + vpclmulqdq zmm12,zmm17,zmm12,0x10 + vpslldq zmm12,zmm12,4 + + vpternlogq zmm12,zmm13,zmm15,0x96 + + vmovdqu64 ZMMWORD[256+rsp],zmm12 +$L$_skip_hkeys_precomputation_3: + mov rbx,1 + vpxorq zmm11,zmm11,zmm2 + vmovdqu64 zmm19,ZMMWORD[256+rsp] + vpclmulqdq zmm1,zmm11,zmm19,0x11 + vpclmulqdq zmm9,zmm11,zmm19,0x00 + vpclmulqdq zmm10,zmm11,zmm19,0x01 + vpclmulqdq zmm12,zmm11,zmm19,0x10 + vmovdqu64 zmm19,ZMMWORD[320+rsp] + vpclmulqdq zmm13,zmm3,zmm19,0x11 + vpclmulqdq zmm15,zmm3,zmm19,0x00 + vpclmulqdq zmm17,zmm3,zmm19,0x01 + vpclmulqdq zmm18,zmm3,zmm19,0x10 + vpxorq zmm7,zmm10,zmm17 + vpxorq zmm6,zmm1,zmm13 + vpxorq zmm8,zmm9,zmm15 + vpternlogq zmm7,zmm12,zmm18,0x96 + vmovdqu64 zmm19,ZMMWORD[384+rsp] + vpclmulqdq zmm1,zmm4,zmm19,0x11 + vpclmulqdq zmm9,zmm4,zmm19,0x00 + vpclmulqdq zmm10,zmm4,zmm19,0x01 + vpclmulqdq zmm12,zmm4,zmm19,0x10 + vmovdqu64 zmm19,ZMMWORD[448+rsp] + vpclmulqdq zmm13,zmm5,zmm19,0x11 + vpclmulqdq zmm15,zmm5,zmm19,0x00 + vpclmulqdq zmm17,zmm5,zmm19,0x01 + vpclmulqdq zmm18,zmm5,zmm19,0x10 + + vpternlogq zmm7,zmm10,zmm17,0x96 + vpternlogq zmm6,zmm1,zmm13,0x96 + vpternlogq zmm8,zmm9,zmm15,0x96 + vpternlogq zmm7,zmm12,zmm18,0x96 + vmovdqu64 zmm11,ZMMWORD[256+r10] + vmovdqu64 zmm3,ZMMWORD[320+r10] + vmovdqu64 zmm4,ZMMWORD[384+r10] + vmovdqu64 zmm5,ZMMWORD[448+r10] + vpshufb zmm11,zmm11,zmm16 + vpshufb zmm3,zmm3,zmm16 + vpshufb zmm4,zmm4,zmm16 + vpshufb zmm5,zmm5,zmm16 + vmovdqu64 zmm19,ZMMWORD[512+rsp] + vpclmulqdq zmm1,zmm11,zmm19,0x11 + vpclmulqdq zmm9,zmm11,zmm19,0x00 + vpclmulqdq zmm10,zmm11,zmm19,0x01 + vpclmulqdq zmm12,zmm11,zmm19,0x10 + vmovdqu64 zmm19,ZMMWORD[576+rsp] + vpclmulqdq zmm13,zmm3,zmm19,0x11 + vpclmulqdq zmm15,zmm3,zmm19,0x00 + vpclmulqdq zmm17,zmm3,zmm19,0x01 + vpclmulqdq zmm18,zmm3,zmm19,0x10 + vpternlogq zmm7,zmm10,zmm17,0x96 + vpternlogq zmm6,zmm1,zmm13,0x96 + vpternlogq zmm8,zmm9,zmm15,0x96 + vpternlogq zmm7,zmm12,zmm18,0x96 + vmovdqu64 zmm19,ZMMWORD[640+rsp] + vpclmulqdq zmm1,zmm4,zmm19,0x11 + vpclmulqdq zmm9,zmm4,zmm19,0x00 + vpclmulqdq zmm10,zmm4,zmm19,0x01 + vpclmulqdq zmm12,zmm4,zmm19,0x10 + vmovdqu64 zmm19,ZMMWORD[704+rsp] + vpclmulqdq zmm13,zmm5,zmm19,0x11 + vpclmulqdq zmm15,zmm5,zmm19,0x00 + vpclmulqdq zmm17,zmm5,zmm19,0x01 + vpclmulqdq zmm18,zmm5,zmm19,0x10 + + vpternlogq zmm7,zmm10,zmm17,0x96 + vpternlogq zmm6,zmm1,zmm13,0x96 + vpternlogq zmm8,zmm9,zmm15,0x96 + vpternlogq zmm7,zmm12,zmm18,0x96 + + vpsrldq zmm1,zmm7,8 + vpslldq zmm9,zmm7,8 + vpxorq zmm6,zmm6,zmm1 + vpxorq zmm8,zmm8,zmm9 + vextracti64x4 ymm1,zmm6,1 + vpxorq ymm6,ymm6,ymm1 + vextracti32x4 xmm1,ymm6,1 + vpxorq xmm6,xmm6,xmm1 + vextracti64x4 ymm9,zmm8,1 + vpxorq ymm8,ymm8,ymm9 + vextracti32x4 xmm9,ymm8,1 + vpxorq xmm8,xmm8,xmm9 + vmovdqa64 xmm10,XMMWORD[POLY2] + + + vpclmulqdq xmm1,xmm10,xmm8,0x01 + vpslldq xmm1,xmm1,8 + vpxorq xmm1,xmm8,xmm1 + + + vpclmulqdq xmm9,xmm10,xmm1,0x00 + vpsrldq xmm9,xmm9,4 + vpclmulqdq xmm2,xmm10,xmm1,0x10 + vpslldq xmm2,xmm2,4 + vpternlogq xmm2,xmm9,xmm6,0x96 + + sub r11,512 + je NEAR $L$_CALC_AAD_done_1 + + add r10,512 + jmp NEAR $L$_less_than_16x16_1 + +$L$_less_than_32x16_1: + cmp r11,256 + jl NEAR $L$_less_than_16x16_1 + + vmovdqu64 zmm11,ZMMWORD[r10] + vmovdqu64 zmm3,ZMMWORD[64+r10] + vmovdqu64 zmm4,ZMMWORD[128+r10] + vmovdqu64 zmm5,ZMMWORD[192+r10] + vpshufb zmm11,zmm11,zmm16 + vpshufb zmm3,zmm3,zmm16 + vpshufb zmm4,zmm4,zmm16 + vpshufb zmm5,zmm5,zmm16 + vpxorq zmm11,zmm11,zmm2 + vmovdqu64 zmm19,ZMMWORD[96+rdx] + vpclmulqdq zmm1,zmm11,zmm19,0x11 + vpclmulqdq zmm9,zmm11,zmm19,0x00 + vpclmulqdq zmm10,zmm11,zmm19,0x01 + vpclmulqdq zmm12,zmm11,zmm19,0x10 + vmovdqu64 zmm19,ZMMWORD[160+rdx] + vpclmulqdq zmm13,zmm3,zmm19,0x11 + vpclmulqdq zmm15,zmm3,zmm19,0x00 + vpclmulqdq zmm17,zmm3,zmm19,0x01 + vpclmulqdq zmm18,zmm3,zmm19,0x10 + vpxorq zmm7,zmm10,zmm17 + vpxorq zmm6,zmm1,zmm13 + vpxorq zmm8,zmm9,zmm15 + vpternlogq zmm7,zmm12,zmm18,0x96 + vmovdqu64 zmm19,ZMMWORD[224+rdx] + vpclmulqdq zmm1,zmm4,zmm19,0x11 + vpclmulqdq zmm9,zmm4,zmm19,0x00 + vpclmulqdq zmm10,zmm4,zmm19,0x01 + vpclmulqdq zmm12,zmm4,zmm19,0x10 + vmovdqu64 zmm19,ZMMWORD[288+rdx] + vpclmulqdq zmm13,zmm5,zmm19,0x11 + vpclmulqdq zmm15,zmm5,zmm19,0x00 + vpclmulqdq zmm17,zmm5,zmm19,0x01 + vpclmulqdq zmm18,zmm5,zmm19,0x10 + + vpternlogq zmm7,zmm10,zmm17,0x96 + vpternlogq zmm6,zmm1,zmm13,0x96 + vpternlogq zmm8,zmm9,zmm15,0x96 + vpternlogq zmm7,zmm12,zmm18,0x96 + + vpsrldq zmm1,zmm7,8 + vpslldq zmm9,zmm7,8 + vpxorq zmm6,zmm6,zmm1 + vpxorq zmm8,zmm8,zmm9 + vextracti64x4 ymm1,zmm6,1 + vpxorq ymm6,ymm6,ymm1 + vextracti32x4 xmm1,ymm6,1 + vpxorq xmm6,xmm6,xmm1 + vextracti64x4 ymm9,zmm8,1 + vpxorq ymm8,ymm8,ymm9 + vextracti32x4 xmm9,ymm8,1 + vpxorq xmm8,xmm8,xmm9 + vmovdqa64 xmm10,XMMWORD[POLY2] + + + vpclmulqdq xmm1,xmm10,xmm8,0x01 + vpslldq xmm1,xmm1,8 + vpxorq xmm1,xmm8,xmm1 + + + vpclmulqdq xmm9,xmm10,xmm1,0x00 + vpsrldq xmm9,xmm9,4 + vpclmulqdq xmm2,xmm10,xmm1,0x10 + vpslldq xmm2,xmm2,4 + vpternlogq xmm2,xmm9,xmm6,0x96 + + sub r11,256 + je NEAR $L$_CALC_AAD_done_1 + + add r10,256 + +$L$_less_than_16x16_1: + + lea r12,[byte64_len_to_mask_table] + lea r12,[r11*8+r12] + + + add r11d,15 + shr r11d,4 + cmp r11d,2 + jb NEAR $L$_AAD_blocks_1_1 + je NEAR $L$_AAD_blocks_2_1 + cmp r11d,4 + jb NEAR $L$_AAD_blocks_3_1 + je NEAR $L$_AAD_blocks_4_1 + cmp r11d,6 + jb NEAR $L$_AAD_blocks_5_1 + je NEAR $L$_AAD_blocks_6_1 + cmp r11d,8 + jb NEAR $L$_AAD_blocks_7_1 + je NEAR $L$_AAD_blocks_8_1 + cmp r11d,10 + jb NEAR $L$_AAD_blocks_9_1 + je NEAR $L$_AAD_blocks_10_1 + cmp r11d,12 + jb NEAR $L$_AAD_blocks_11_1 + je NEAR $L$_AAD_blocks_12_1 + cmp r11d,14 + jb NEAR $L$_AAD_blocks_13_1 + je NEAR $L$_AAD_blocks_14_1 + cmp r11d,15 + je NEAR $L$_AAD_blocks_15_1 +$L$_AAD_blocks_16_1: + sub r12,1536 + kmovq k1,[r12] + vmovdqu8 zmm11,ZMMWORD[r10] + vmovdqu8 zmm3,ZMMWORD[64+r10] + vmovdqu8 zmm4,ZMMWORD[128+r10] + vmovdqu8 zmm5{k1}{z},[192+r10] + vpshufb zmm11,zmm11,zmm16 + vpshufb zmm3,zmm3,zmm16 + vpshufb zmm4,zmm4,zmm16 + vpshufb zmm5,zmm5,zmm16 + vpxorq zmm11,zmm11,zmm2 + vmovdqu64 zmm15,ZMMWORD[96+rdx] + vpclmulqdq zmm1,zmm11,zmm15,0x11 + vpclmulqdq zmm6,zmm11,zmm15,0x00 + vpclmulqdq zmm7,zmm11,zmm15,0x01 + vpclmulqdq zmm8,zmm11,zmm15,0x10 + vmovdqu64 zmm15,ZMMWORD[160+rdx] + vpclmulqdq zmm9,zmm3,zmm15,0x11 + vpclmulqdq zmm10,zmm3,zmm15,0x00 + vpclmulqdq zmm12,zmm3,zmm15,0x01 + vpclmulqdq zmm13,zmm3,zmm15,0x10 + vmovdqu64 zmm15,ZMMWORD[224+rdx] + vpclmulqdq zmm11,zmm4,zmm15,0x11 + vpclmulqdq zmm3,zmm4,zmm15,0x00 + vpternlogq zmm1,zmm11,zmm9,0x96 + vpternlogq zmm6,zmm3,zmm10,0x96 + vpclmulqdq zmm11,zmm4,zmm15,0x01 + vpclmulqdq zmm3,zmm4,zmm15,0x10 + vpternlogq zmm7,zmm11,zmm12,0x96 + vpternlogq zmm8,zmm3,zmm13,0x96 + vmovdqu64 zmm15,ZMMWORD[288+rdx] + vpclmulqdq zmm9,zmm5,zmm15,0x11 + vpclmulqdq zmm10,zmm5,zmm15,0x00 + vpclmulqdq zmm12,zmm5,zmm15,0x01 + vpclmulqdq zmm13,zmm5,zmm15,0x10 + vpxorq zmm9,zmm1,zmm9 + vpxorq zmm10,zmm6,zmm10 + vpxorq zmm12,zmm7,zmm12 + vpxorq zmm13,zmm8,zmm13 + + vpxorq zmm12,zmm12,zmm13 + vpsrldq zmm7,zmm12,8 + vpslldq zmm8,zmm12,8 + vpxorq zmm1,zmm9,zmm7 + vpxorq zmm6,zmm10,zmm8 + vextracti64x4 ymm12,zmm1,1 + vpxorq ymm1,ymm1,ymm12 + vextracti32x4 xmm12,ymm1,1 + vpxorq xmm1,xmm1,xmm12 + vextracti64x4 ymm13,zmm6,1 + vpxorq ymm6,ymm6,ymm13 + vextracti32x4 xmm13,ymm6,1 + vpxorq xmm6,xmm6,xmm13 + vmovdqa64 xmm15,XMMWORD[POLY2] + + + vpclmulqdq xmm7,xmm15,xmm6,0x01 + vpslldq xmm7,xmm7,8 + vpxorq xmm7,xmm6,xmm7 + + + vpclmulqdq xmm8,xmm15,xmm7,0x00 + vpsrldq xmm8,xmm8,4 + vpclmulqdq xmm2,xmm15,xmm7,0x10 + vpslldq xmm2,xmm2,4 + vpternlogq xmm2,xmm8,xmm1,0x96 + + jmp NEAR $L$_CALC_AAD_done_1 +$L$_AAD_blocks_15_1: + sub r12,1536 + kmovq k1,[r12] + vmovdqu8 zmm11,ZMMWORD[r10] + vmovdqu8 zmm3,ZMMWORD[64+r10] + vmovdqu8 zmm4,ZMMWORD[128+r10] + vmovdqu8 zmm5{k1}{z},[192+r10] + vpshufb zmm11,zmm11,zmm16 + vpshufb zmm3,zmm3,zmm16 + vpshufb zmm4,zmm4,zmm16 + vpshufb zmm5,zmm5,zmm16 + vpxorq zmm11,zmm11,zmm2 + vmovdqu64 zmm15,ZMMWORD[112+rdx] + vpclmulqdq zmm1,zmm11,zmm15,0x11 + vpclmulqdq zmm6,zmm11,zmm15,0x00 + vpclmulqdq zmm7,zmm11,zmm15,0x01 + vpclmulqdq zmm8,zmm11,zmm15,0x10 + vmovdqu64 zmm15,ZMMWORD[176+rdx] + vpclmulqdq zmm9,zmm3,zmm15,0x11 + vpclmulqdq zmm10,zmm3,zmm15,0x00 + vpclmulqdq zmm12,zmm3,zmm15,0x01 + vpclmulqdq zmm13,zmm3,zmm15,0x10 + vmovdqu64 zmm15,ZMMWORD[240+rdx] + vpclmulqdq zmm11,zmm4,zmm15,0x11 + vpclmulqdq zmm3,zmm4,zmm15,0x00 + vpternlogq zmm9,zmm11,zmm1,0x96 + vpternlogq zmm10,zmm3,zmm6,0x96 + vpclmulqdq zmm11,zmm4,zmm15,0x01 + vpclmulqdq zmm3,zmm4,zmm15,0x10 + vpternlogq zmm12,zmm11,zmm7,0x96 + vpternlogq zmm13,zmm3,zmm8,0x96 + vmovdqu64 ymm15,YMMWORD[304+rdx] + vinserti64x2 zmm15,zmm15,ZMMWORD[336+rdx],2 + vpclmulqdq zmm7,zmm5,zmm15,0x01 + vpclmulqdq zmm8,zmm5,zmm15,0x10 + vpclmulqdq zmm1,zmm5,zmm15,0x11 + vpclmulqdq zmm6,zmm5,zmm15,0x00 + + vpxorq zmm7,zmm7,zmm12 + vpxorq zmm8,zmm8,zmm13 + vpxorq zmm1,zmm1,zmm9 + vpxorq zmm6,zmm6,zmm10 + + vpxorq zmm7,zmm7,zmm8 + vpsrldq zmm12,zmm7,8 + vpslldq zmm13,zmm7,8 + vpxorq zmm1,zmm1,zmm12 + vpxorq zmm6,zmm6,zmm13 + vextracti64x4 ymm12,zmm1,1 + vpxorq ymm1,ymm1,ymm12 + vextracti32x4 xmm12,ymm1,1 + vpxorq xmm1,xmm1,xmm12 + vextracti64x4 ymm13,zmm6,1 + vpxorq ymm6,ymm6,ymm13 + vextracti32x4 xmm13,ymm6,1 + vpxorq xmm6,xmm6,xmm13 + vmovdqa64 xmm15,XMMWORD[POLY2] + + + vpclmulqdq xmm7,xmm15,xmm6,0x01 + vpslldq xmm7,xmm7,8 + vpxorq xmm7,xmm6,xmm7 + + + vpclmulqdq xmm8,xmm15,xmm7,0x00 + vpsrldq xmm8,xmm8,4 + vpclmulqdq xmm2,xmm15,xmm7,0x10 + vpslldq xmm2,xmm2,4 + vpternlogq xmm2,xmm8,xmm1,0x96 + + jmp NEAR $L$_CALC_AAD_done_1 +$L$_AAD_blocks_14_1: + sub r12,1536 + kmovq k1,[r12] + vmovdqu8 zmm11,ZMMWORD[r10] + vmovdqu8 zmm3,ZMMWORD[64+r10] + vmovdqu8 zmm4,ZMMWORD[128+r10] + vmovdqu8 ymm5{k1}{z},[192+r10] + vpshufb zmm11,zmm11,zmm16 + vpshufb zmm3,zmm3,zmm16 + vpshufb zmm4,zmm4,zmm16 + vpshufb ymm5,ymm5,ymm16 + vpxorq zmm11,zmm11,zmm2 + vmovdqu64 zmm15,ZMMWORD[128+rdx] + vpclmulqdq zmm1,zmm11,zmm15,0x11 + vpclmulqdq zmm6,zmm11,zmm15,0x00 + vpclmulqdq zmm7,zmm11,zmm15,0x01 + vpclmulqdq zmm8,zmm11,zmm15,0x10 + vmovdqu64 zmm15,ZMMWORD[192+rdx] + vpclmulqdq zmm9,zmm3,zmm15,0x11 + vpclmulqdq zmm10,zmm3,zmm15,0x00 + vpclmulqdq zmm12,zmm3,zmm15,0x01 + vpclmulqdq zmm13,zmm3,zmm15,0x10 + vmovdqu64 zmm15,ZMMWORD[256+rdx] + vpclmulqdq zmm11,zmm4,zmm15,0x11 + vpclmulqdq zmm3,zmm4,zmm15,0x00 + vpternlogq zmm9,zmm11,zmm1,0x96 + vpternlogq zmm10,zmm3,zmm6,0x96 + vpclmulqdq zmm11,zmm4,zmm15,0x01 + vpclmulqdq zmm3,zmm4,zmm15,0x10 + vpternlogq zmm12,zmm11,zmm7,0x96 + vpternlogq zmm13,zmm3,zmm8,0x96 + vmovdqu64 ymm15,YMMWORD[320+rdx] + vpclmulqdq ymm7,ymm5,ymm15,0x01 + vpclmulqdq ymm8,ymm5,ymm15,0x10 + vpclmulqdq ymm1,ymm5,ymm15,0x11 + vpclmulqdq ymm6,ymm5,ymm15,0x00 + + vpxorq zmm7,zmm7,zmm12 + vpxorq zmm8,zmm8,zmm13 + vpxorq zmm1,zmm1,zmm9 + vpxorq zmm6,zmm6,zmm10 + + vpxorq zmm7,zmm7,zmm8 + vpsrldq zmm12,zmm7,8 + vpslldq zmm13,zmm7,8 + vpxorq zmm1,zmm1,zmm12 + vpxorq zmm6,zmm6,zmm13 + vextracti64x4 ymm12,zmm1,1 + vpxorq ymm1,ymm1,ymm12 + vextracti32x4 xmm12,ymm1,1 + vpxorq xmm1,xmm1,xmm12 + vextracti64x4 ymm13,zmm6,1 + vpxorq ymm6,ymm6,ymm13 + vextracti32x4 xmm13,ymm6,1 + vpxorq xmm6,xmm6,xmm13 + vmovdqa64 xmm15,XMMWORD[POLY2] + + + vpclmulqdq xmm7,xmm15,xmm6,0x01 + vpslldq xmm7,xmm7,8 + vpxorq xmm7,xmm6,xmm7 + + + vpclmulqdq xmm8,xmm15,xmm7,0x00 + vpsrldq xmm8,xmm8,4 + vpclmulqdq xmm2,xmm15,xmm7,0x10 + vpslldq xmm2,xmm2,4 + vpternlogq xmm2,xmm8,xmm1,0x96 + + jmp NEAR $L$_CALC_AAD_done_1 +$L$_AAD_blocks_13_1: + sub r12,1536 + kmovq k1,[r12] + vmovdqu8 zmm11,ZMMWORD[r10] + vmovdqu8 zmm3,ZMMWORD[64+r10] + vmovdqu8 zmm4,ZMMWORD[128+r10] + vmovdqu8 xmm5{k1}{z},[192+r10] + vpshufb zmm11,zmm11,zmm16 + vpshufb zmm3,zmm3,zmm16 + vpshufb zmm4,zmm4,zmm16 + vpshufb xmm5,xmm5,xmm16 + vpxorq zmm11,zmm11,zmm2 + vmovdqu64 zmm15,ZMMWORD[144+rdx] + vpclmulqdq zmm1,zmm11,zmm15,0x11 + vpclmulqdq zmm6,zmm11,zmm15,0x00 + vpclmulqdq zmm7,zmm11,zmm15,0x01 + vpclmulqdq zmm8,zmm11,zmm15,0x10 + vmovdqu64 zmm15,ZMMWORD[208+rdx] + vpclmulqdq zmm9,zmm3,zmm15,0x11 + vpclmulqdq zmm10,zmm3,zmm15,0x00 + vpclmulqdq zmm12,zmm3,zmm15,0x01 + vpclmulqdq zmm13,zmm3,zmm15,0x10 + vmovdqu64 zmm15,ZMMWORD[272+rdx] + vpclmulqdq zmm11,zmm4,zmm15,0x11 + vpclmulqdq zmm3,zmm4,zmm15,0x00 + vpternlogq zmm9,zmm11,zmm1,0x96 + vpternlogq zmm10,zmm3,zmm6,0x96 + vpclmulqdq zmm11,zmm4,zmm15,0x01 + vpclmulqdq zmm3,zmm4,zmm15,0x10 + vpternlogq zmm12,zmm11,zmm7,0x96 + vpternlogq zmm13,zmm3,zmm8,0x96 + vmovdqu64 xmm15,XMMWORD[336+rdx] + vpclmulqdq xmm7,xmm5,xmm15,0x01 + vpclmulqdq xmm8,xmm5,xmm15,0x10 + vpclmulqdq xmm1,xmm5,xmm15,0x11 + vpclmulqdq xmm6,xmm5,xmm15,0x00 + + vpxorq zmm7,zmm7,zmm12 + vpxorq zmm8,zmm8,zmm13 + vpxorq zmm1,zmm1,zmm9 + vpxorq zmm6,zmm6,zmm10 + + vpxorq zmm7,zmm7,zmm8 + vpsrldq zmm12,zmm7,8 + vpslldq zmm13,zmm7,8 + vpxorq zmm1,zmm1,zmm12 + vpxorq zmm6,zmm6,zmm13 + vextracti64x4 ymm12,zmm1,1 + vpxorq ymm1,ymm1,ymm12 + vextracti32x4 xmm12,ymm1,1 + vpxorq xmm1,xmm1,xmm12 + vextracti64x4 ymm13,zmm6,1 + vpxorq ymm6,ymm6,ymm13 + vextracti32x4 xmm13,ymm6,1 + vpxorq xmm6,xmm6,xmm13 + vmovdqa64 xmm15,XMMWORD[POLY2] + + + vpclmulqdq xmm7,xmm15,xmm6,0x01 + vpslldq xmm7,xmm7,8 + vpxorq xmm7,xmm6,xmm7 + + + vpclmulqdq xmm8,xmm15,xmm7,0x00 + vpsrldq xmm8,xmm8,4 + vpclmulqdq xmm2,xmm15,xmm7,0x10 + vpslldq xmm2,xmm2,4 + vpternlogq xmm2,xmm8,xmm1,0x96 + + jmp NEAR $L$_CALC_AAD_done_1 +$L$_AAD_blocks_12_1: + sub r12,1024 + kmovq k1,[r12] + vmovdqu8 zmm11,ZMMWORD[r10] + vmovdqu8 zmm3,ZMMWORD[64+r10] + vmovdqu8 zmm4{k1}{z},[128+r10] + vpshufb zmm11,zmm11,zmm16 + vpshufb zmm3,zmm3,zmm16 + vpshufb zmm4,zmm4,zmm16 + vpxorq zmm11,zmm11,zmm2 + vmovdqu64 zmm15,ZMMWORD[160+rdx] + vpclmulqdq zmm1,zmm11,zmm15,0x11 + vpclmulqdq zmm6,zmm11,zmm15,0x00 + vpclmulqdq zmm7,zmm11,zmm15,0x01 + vpclmulqdq zmm8,zmm11,zmm15,0x10 + vmovdqu64 zmm15,ZMMWORD[224+rdx] + vpclmulqdq zmm9,zmm3,zmm15,0x11 + vpclmulqdq zmm10,zmm3,zmm15,0x00 + vpclmulqdq zmm12,zmm3,zmm15,0x01 + vpclmulqdq zmm13,zmm3,zmm15,0x10 + vmovdqu64 zmm15,ZMMWORD[288+rdx] + vpclmulqdq zmm11,zmm4,zmm15,0x11 + vpclmulqdq zmm3,zmm4,zmm15,0x00 + vpternlogq zmm9,zmm11,zmm1,0x96 + vpternlogq zmm10,zmm3,zmm6,0x96 + vpclmulqdq zmm11,zmm4,zmm15,0x01 + vpclmulqdq zmm3,zmm4,zmm15,0x10 + vpternlogq zmm12,zmm11,zmm7,0x96 + vpternlogq zmm13,zmm3,zmm8,0x96 + + vpxorq zmm12,zmm12,zmm13 + vpsrldq zmm7,zmm12,8 + vpslldq zmm8,zmm12,8 + vpxorq zmm1,zmm9,zmm7 + vpxorq zmm6,zmm10,zmm8 + vextracti64x4 ymm12,zmm1,1 + vpxorq ymm1,ymm1,ymm12 + vextracti32x4 xmm12,ymm1,1 + vpxorq xmm1,xmm1,xmm12 + vextracti64x4 ymm13,zmm6,1 + vpxorq ymm6,ymm6,ymm13 + vextracti32x4 xmm13,ymm6,1 + vpxorq xmm6,xmm6,xmm13 + vmovdqa64 xmm15,XMMWORD[POLY2] + + + vpclmulqdq xmm7,xmm15,xmm6,0x01 + vpslldq xmm7,xmm7,8 + vpxorq xmm7,xmm6,xmm7 + + + vpclmulqdq xmm8,xmm15,xmm7,0x00 + vpsrldq xmm8,xmm8,4 + vpclmulqdq xmm2,xmm15,xmm7,0x10 + vpslldq xmm2,xmm2,4 + vpternlogq xmm2,xmm8,xmm1,0x96 + + jmp NEAR $L$_CALC_AAD_done_1 +$L$_AAD_blocks_11_1: + sub r12,1024 + kmovq k1,[r12] + vmovdqu8 zmm11,ZMMWORD[r10] + vmovdqu8 zmm3,ZMMWORD[64+r10] + vmovdqu8 zmm4{k1}{z},[128+r10] + vpshufb zmm11,zmm11,zmm16 + vpshufb zmm3,zmm3,zmm16 + vpshufb zmm4,zmm4,zmm16 + vpxorq zmm11,zmm11,zmm2 + vmovdqu64 zmm15,ZMMWORD[176+rdx] + vpclmulqdq zmm1,zmm11,zmm15,0x11 + vpclmulqdq zmm6,zmm11,zmm15,0x00 + vpclmulqdq zmm7,zmm11,zmm15,0x01 + vpclmulqdq zmm8,zmm11,zmm15,0x10 + vmovdqu64 zmm15,ZMMWORD[240+rdx] + vpclmulqdq zmm9,zmm3,zmm15,0x11 + vpclmulqdq zmm10,zmm3,zmm15,0x00 + vpclmulqdq zmm12,zmm3,zmm15,0x01 + vpclmulqdq zmm13,zmm3,zmm15,0x10 + vpxorq zmm9,zmm1,zmm9 + vpxorq zmm10,zmm6,zmm10 + vpxorq zmm12,zmm7,zmm12 + vpxorq zmm13,zmm8,zmm13 + vmovdqu64 ymm15,YMMWORD[304+rdx] + vinserti64x2 zmm15,zmm15,ZMMWORD[336+rdx],2 + vpclmulqdq zmm7,zmm4,zmm15,0x01 + vpclmulqdq zmm8,zmm4,zmm15,0x10 + vpclmulqdq zmm1,zmm4,zmm15,0x11 + vpclmulqdq zmm6,zmm4,zmm15,0x00 + + vpxorq zmm7,zmm7,zmm12 + vpxorq zmm8,zmm8,zmm13 + vpxorq zmm1,zmm1,zmm9 + vpxorq zmm6,zmm6,zmm10 + + vpxorq zmm7,zmm7,zmm8 + vpsrldq zmm12,zmm7,8 + vpslldq zmm13,zmm7,8 + vpxorq zmm1,zmm1,zmm12 + vpxorq zmm6,zmm6,zmm13 + vextracti64x4 ymm12,zmm1,1 + vpxorq ymm1,ymm1,ymm12 + vextracti32x4 xmm12,ymm1,1 + vpxorq xmm1,xmm1,xmm12 + vextracti64x4 ymm13,zmm6,1 + vpxorq ymm6,ymm6,ymm13 + vextracti32x4 xmm13,ymm6,1 + vpxorq xmm6,xmm6,xmm13 + vmovdqa64 xmm15,XMMWORD[POLY2] + + + vpclmulqdq xmm7,xmm15,xmm6,0x01 + vpslldq xmm7,xmm7,8 + vpxorq xmm7,xmm6,xmm7 + + + vpclmulqdq xmm8,xmm15,xmm7,0x00 + vpsrldq xmm8,xmm8,4 + vpclmulqdq xmm2,xmm15,xmm7,0x10 + vpslldq xmm2,xmm2,4 + vpternlogq xmm2,xmm8,xmm1,0x96 + + jmp NEAR $L$_CALC_AAD_done_1 +$L$_AAD_blocks_10_1: + sub r12,1024 + kmovq k1,[r12] + vmovdqu8 zmm11,ZMMWORD[r10] + vmovdqu8 zmm3,ZMMWORD[64+r10] + vmovdqu8 ymm4{k1}{z},[128+r10] + vpshufb zmm11,zmm11,zmm16 + vpshufb zmm3,zmm3,zmm16 + vpshufb ymm4,ymm4,ymm16 + vpxorq zmm11,zmm11,zmm2 + vmovdqu64 zmm15,ZMMWORD[192+rdx] + vpclmulqdq zmm1,zmm11,zmm15,0x11 + vpclmulqdq zmm6,zmm11,zmm15,0x00 + vpclmulqdq zmm7,zmm11,zmm15,0x01 + vpclmulqdq zmm8,zmm11,zmm15,0x10 + vmovdqu64 zmm15,ZMMWORD[256+rdx] + vpclmulqdq zmm9,zmm3,zmm15,0x11 + vpclmulqdq zmm10,zmm3,zmm15,0x00 + vpclmulqdq zmm12,zmm3,zmm15,0x01 + vpclmulqdq zmm13,zmm3,zmm15,0x10 + vpxorq zmm9,zmm1,zmm9 + vpxorq zmm10,zmm6,zmm10 + vpxorq zmm12,zmm7,zmm12 + vpxorq zmm13,zmm8,zmm13 + vmovdqu64 ymm15,YMMWORD[320+rdx] + vpclmulqdq ymm7,ymm4,ymm15,0x01 + vpclmulqdq ymm8,ymm4,ymm15,0x10 + vpclmulqdq ymm1,ymm4,ymm15,0x11 + vpclmulqdq ymm6,ymm4,ymm15,0x00 + + vpxorq zmm7,zmm7,zmm12 + vpxorq zmm8,zmm8,zmm13 + vpxorq zmm1,zmm1,zmm9 + vpxorq zmm6,zmm6,zmm10 + + vpxorq zmm7,zmm7,zmm8 + vpsrldq zmm12,zmm7,8 + vpslldq zmm13,zmm7,8 + vpxorq zmm1,zmm1,zmm12 + vpxorq zmm6,zmm6,zmm13 + vextracti64x4 ymm12,zmm1,1 + vpxorq ymm1,ymm1,ymm12 + vextracti32x4 xmm12,ymm1,1 + vpxorq xmm1,xmm1,xmm12 + vextracti64x4 ymm13,zmm6,1 + vpxorq ymm6,ymm6,ymm13 + vextracti32x4 xmm13,ymm6,1 + vpxorq xmm6,xmm6,xmm13 + vmovdqa64 xmm15,XMMWORD[POLY2] + + + vpclmulqdq xmm7,xmm15,xmm6,0x01 + vpslldq xmm7,xmm7,8 + vpxorq xmm7,xmm6,xmm7 + + + vpclmulqdq xmm8,xmm15,xmm7,0x00 + vpsrldq xmm8,xmm8,4 + vpclmulqdq xmm2,xmm15,xmm7,0x10 + vpslldq xmm2,xmm2,4 + vpternlogq xmm2,xmm8,xmm1,0x96 + + jmp NEAR $L$_CALC_AAD_done_1 +$L$_AAD_blocks_9_1: + sub r12,1024 + kmovq k1,[r12] + vmovdqu8 zmm11,ZMMWORD[r10] + vmovdqu8 zmm3,ZMMWORD[64+r10] + vmovdqu8 xmm4{k1}{z},[128+r10] + vpshufb zmm11,zmm11,zmm16 + vpshufb zmm3,zmm3,zmm16 + vpshufb xmm4,xmm4,xmm16 + vpxorq zmm11,zmm11,zmm2 + vmovdqu64 zmm15,ZMMWORD[208+rdx] + vpclmulqdq zmm1,zmm11,zmm15,0x11 + vpclmulqdq zmm6,zmm11,zmm15,0x00 + vpclmulqdq zmm7,zmm11,zmm15,0x01 + vpclmulqdq zmm8,zmm11,zmm15,0x10 + vmovdqu64 zmm15,ZMMWORD[272+rdx] + vpclmulqdq zmm9,zmm3,zmm15,0x11 + vpclmulqdq zmm10,zmm3,zmm15,0x00 + vpclmulqdq zmm12,zmm3,zmm15,0x01 + vpclmulqdq zmm13,zmm3,zmm15,0x10 + vpxorq zmm9,zmm1,zmm9 + vpxorq zmm10,zmm6,zmm10 + vpxorq zmm12,zmm7,zmm12 + vpxorq zmm13,zmm8,zmm13 + vmovdqu64 xmm15,XMMWORD[336+rdx] + vpclmulqdq xmm7,xmm4,xmm15,0x01 + vpclmulqdq xmm8,xmm4,xmm15,0x10 + vpclmulqdq xmm1,xmm4,xmm15,0x11 + vpclmulqdq xmm6,xmm4,xmm15,0x00 + + vpxorq zmm7,zmm7,zmm12 + vpxorq zmm8,zmm8,zmm13 + vpxorq zmm1,zmm1,zmm9 + vpxorq zmm6,zmm6,zmm10 + + vpxorq zmm7,zmm7,zmm8 + vpsrldq zmm12,zmm7,8 + vpslldq zmm13,zmm7,8 + vpxorq zmm1,zmm1,zmm12 + vpxorq zmm6,zmm6,zmm13 + vextracti64x4 ymm12,zmm1,1 + vpxorq ymm1,ymm1,ymm12 + vextracti32x4 xmm12,ymm1,1 + vpxorq xmm1,xmm1,xmm12 + vextracti64x4 ymm13,zmm6,1 + vpxorq ymm6,ymm6,ymm13 + vextracti32x4 xmm13,ymm6,1 + vpxorq xmm6,xmm6,xmm13 + vmovdqa64 xmm15,XMMWORD[POLY2] + + + vpclmulqdq xmm7,xmm15,xmm6,0x01 + vpslldq xmm7,xmm7,8 + vpxorq xmm7,xmm6,xmm7 + + + vpclmulqdq xmm8,xmm15,xmm7,0x00 + vpsrldq xmm8,xmm8,4 + vpclmulqdq xmm2,xmm15,xmm7,0x10 + vpslldq xmm2,xmm2,4 + vpternlogq xmm2,xmm8,xmm1,0x96 + + jmp NEAR $L$_CALC_AAD_done_1 +$L$_AAD_blocks_8_1: + sub r12,512 + kmovq k1,[r12] + vmovdqu8 zmm11,ZMMWORD[r10] + vmovdqu8 zmm3{k1}{z},[64+r10] + vpshufb zmm11,zmm11,zmm16 + vpshufb zmm3,zmm3,zmm16 + vpxorq zmm11,zmm11,zmm2 + vmovdqu64 zmm15,ZMMWORD[224+rdx] + vpclmulqdq zmm1,zmm11,zmm15,0x11 + vpclmulqdq zmm6,zmm11,zmm15,0x00 + vpclmulqdq zmm7,zmm11,zmm15,0x01 + vpclmulqdq zmm8,zmm11,zmm15,0x10 + vmovdqu64 zmm15,ZMMWORD[288+rdx] + vpclmulqdq zmm9,zmm3,zmm15,0x11 + vpclmulqdq zmm10,zmm3,zmm15,0x00 + vpclmulqdq zmm12,zmm3,zmm15,0x01 + vpclmulqdq zmm13,zmm3,zmm15,0x10 + vpxorq zmm9,zmm1,zmm9 + vpxorq zmm10,zmm6,zmm10 + vpxorq zmm12,zmm7,zmm12 + vpxorq zmm13,zmm8,zmm13 + + vpxorq zmm12,zmm12,zmm13 + vpsrldq zmm7,zmm12,8 + vpslldq zmm8,zmm12,8 + vpxorq zmm1,zmm9,zmm7 + vpxorq zmm6,zmm10,zmm8 + vextracti64x4 ymm12,zmm1,1 + vpxorq ymm1,ymm1,ymm12 + vextracti32x4 xmm12,ymm1,1 + vpxorq xmm1,xmm1,xmm12 + vextracti64x4 ymm13,zmm6,1 + vpxorq ymm6,ymm6,ymm13 + vextracti32x4 xmm13,ymm6,1 + vpxorq xmm6,xmm6,xmm13 + vmovdqa64 xmm15,XMMWORD[POLY2] + + + vpclmulqdq xmm7,xmm15,xmm6,0x01 + vpslldq xmm7,xmm7,8 + vpxorq xmm7,xmm6,xmm7 + + + vpclmulqdq xmm8,xmm15,xmm7,0x00 + vpsrldq xmm8,xmm8,4 + vpclmulqdq xmm2,xmm15,xmm7,0x10 + vpslldq xmm2,xmm2,4 + vpternlogq xmm2,xmm8,xmm1,0x96 + + jmp NEAR $L$_CALC_AAD_done_1 +$L$_AAD_blocks_7_1: + sub r12,512 + kmovq k1,[r12] + vmovdqu8 zmm11,ZMMWORD[r10] + vmovdqu8 zmm3{k1}{z},[64+r10] + vpshufb zmm11,zmm11,zmm16 + vpshufb zmm3,zmm3,zmm16 + vpxorq zmm11,zmm11,zmm2 + vmovdqu64 zmm15,ZMMWORD[240+rdx] + vpclmulqdq zmm9,zmm11,zmm15,0x11 + vpclmulqdq zmm10,zmm11,zmm15,0x00 + vpclmulqdq zmm12,zmm11,zmm15,0x01 + vpclmulqdq zmm13,zmm11,zmm15,0x10 + vmovdqu64 ymm15,YMMWORD[304+rdx] + vinserti64x2 zmm15,zmm15,ZMMWORD[336+rdx],2 + vpclmulqdq zmm7,zmm3,zmm15,0x01 + vpclmulqdq zmm8,zmm3,zmm15,0x10 + vpclmulqdq zmm1,zmm3,zmm15,0x11 + vpclmulqdq zmm6,zmm3,zmm15,0x00 + + vpxorq zmm7,zmm7,zmm12 + vpxorq zmm8,zmm8,zmm13 + vpxorq zmm1,zmm1,zmm9 + vpxorq zmm6,zmm6,zmm10 + + vpxorq zmm7,zmm7,zmm8 + vpsrldq zmm12,zmm7,8 + vpslldq zmm13,zmm7,8 + vpxorq zmm1,zmm1,zmm12 + vpxorq zmm6,zmm6,zmm13 + vextracti64x4 ymm12,zmm1,1 + vpxorq ymm1,ymm1,ymm12 + vextracti32x4 xmm12,ymm1,1 + vpxorq xmm1,xmm1,xmm12 + vextracti64x4 ymm13,zmm6,1 + vpxorq ymm6,ymm6,ymm13 + vextracti32x4 xmm13,ymm6,1 + vpxorq xmm6,xmm6,xmm13 + vmovdqa64 xmm15,XMMWORD[POLY2] + + + vpclmulqdq xmm7,xmm15,xmm6,0x01 + vpslldq xmm7,xmm7,8 + vpxorq xmm7,xmm6,xmm7 + + + vpclmulqdq xmm8,xmm15,xmm7,0x00 + vpsrldq xmm8,xmm8,4 + vpclmulqdq xmm2,xmm15,xmm7,0x10 + vpslldq xmm2,xmm2,4 + vpternlogq xmm2,xmm8,xmm1,0x96 + + jmp NEAR $L$_CALC_AAD_done_1 +$L$_AAD_blocks_6_1: + sub r12,512 + kmovq k1,[r12] + vmovdqu8 zmm11,ZMMWORD[r10] + vmovdqu8 ymm3{k1}{z},[64+r10] + vpshufb zmm11,zmm11,zmm16 + vpshufb ymm3,ymm3,ymm16 + vpxorq zmm11,zmm11,zmm2 + vmovdqu64 zmm15,ZMMWORD[256+rdx] + vpclmulqdq zmm9,zmm11,zmm15,0x11 + vpclmulqdq zmm10,zmm11,zmm15,0x00 + vpclmulqdq zmm12,zmm11,zmm15,0x01 + vpclmulqdq zmm13,zmm11,zmm15,0x10 + vmovdqu64 ymm15,YMMWORD[320+rdx] + vpclmulqdq ymm7,ymm3,ymm15,0x01 + vpclmulqdq ymm8,ymm3,ymm15,0x10 + vpclmulqdq ymm1,ymm3,ymm15,0x11 + vpclmulqdq ymm6,ymm3,ymm15,0x00 + + vpxorq zmm7,zmm7,zmm12 + vpxorq zmm8,zmm8,zmm13 + vpxorq zmm1,zmm1,zmm9 + vpxorq zmm6,zmm6,zmm10 + + vpxorq zmm7,zmm7,zmm8 + vpsrldq zmm12,zmm7,8 + vpslldq zmm13,zmm7,8 + vpxorq zmm1,zmm1,zmm12 + vpxorq zmm6,zmm6,zmm13 + vextracti64x4 ymm12,zmm1,1 + vpxorq ymm1,ymm1,ymm12 + vextracti32x4 xmm12,ymm1,1 + vpxorq xmm1,xmm1,xmm12 + vextracti64x4 ymm13,zmm6,1 + vpxorq ymm6,ymm6,ymm13 + vextracti32x4 xmm13,ymm6,1 + vpxorq xmm6,xmm6,xmm13 + vmovdqa64 xmm15,XMMWORD[POLY2] + + + vpclmulqdq xmm7,xmm15,xmm6,0x01 + vpslldq xmm7,xmm7,8 + vpxorq xmm7,xmm6,xmm7 + + + vpclmulqdq xmm8,xmm15,xmm7,0x00 + vpsrldq xmm8,xmm8,4 + vpclmulqdq xmm2,xmm15,xmm7,0x10 + vpslldq xmm2,xmm2,4 + vpternlogq xmm2,xmm8,xmm1,0x96 + + jmp NEAR $L$_CALC_AAD_done_1 +$L$_AAD_blocks_5_1: + sub r12,512 + kmovq k1,[r12] + vmovdqu8 zmm11,ZMMWORD[r10] + vmovdqu8 xmm3{k1}{z},[64+r10] + vpshufb zmm11,zmm11,zmm16 + vpshufb xmm3,xmm3,xmm16 + vpxorq zmm11,zmm11,zmm2 + vmovdqu64 zmm15,ZMMWORD[272+rdx] + vpclmulqdq zmm9,zmm11,zmm15,0x11 + vpclmulqdq zmm10,zmm11,zmm15,0x00 + vpclmulqdq zmm12,zmm11,zmm15,0x01 + vpclmulqdq zmm13,zmm11,zmm15,0x10 + vmovdqu64 xmm15,XMMWORD[336+rdx] + vpclmulqdq xmm7,xmm3,xmm15,0x01 + vpclmulqdq xmm8,xmm3,xmm15,0x10 + vpclmulqdq xmm1,xmm3,xmm15,0x11 + vpclmulqdq xmm6,xmm3,xmm15,0x00 + + vpxorq zmm7,zmm7,zmm12 + vpxorq zmm8,zmm8,zmm13 + vpxorq zmm1,zmm1,zmm9 + vpxorq zmm6,zmm6,zmm10 + + vpxorq zmm7,zmm7,zmm8 + vpsrldq zmm12,zmm7,8 + vpslldq zmm13,zmm7,8 + vpxorq zmm1,zmm1,zmm12 + vpxorq zmm6,zmm6,zmm13 + vextracti64x4 ymm12,zmm1,1 + vpxorq ymm1,ymm1,ymm12 + vextracti32x4 xmm12,ymm1,1 + vpxorq xmm1,xmm1,xmm12 + vextracti64x4 ymm13,zmm6,1 + vpxorq ymm6,ymm6,ymm13 + vextracti32x4 xmm13,ymm6,1 + vpxorq xmm6,xmm6,xmm13 + vmovdqa64 xmm15,XMMWORD[POLY2] + + + vpclmulqdq xmm7,xmm15,xmm6,0x01 + vpslldq xmm7,xmm7,8 + vpxorq xmm7,xmm6,xmm7 + + + vpclmulqdq xmm8,xmm15,xmm7,0x00 + vpsrldq xmm8,xmm8,4 + vpclmulqdq xmm2,xmm15,xmm7,0x10 + vpslldq xmm2,xmm2,4 + vpternlogq xmm2,xmm8,xmm1,0x96 + + jmp NEAR $L$_CALC_AAD_done_1 +$L$_AAD_blocks_4_1: + kmovq k1,[r12] + vmovdqu8 zmm11{k1}{z},[r10] + vpshufb zmm11,zmm11,zmm16 + vpxorq zmm11,zmm11,zmm2 + vmovdqu64 zmm15,ZMMWORD[288+rdx] + vpclmulqdq zmm9,zmm11,zmm15,0x11 + vpclmulqdq zmm10,zmm11,zmm15,0x00 + vpclmulqdq zmm12,zmm11,zmm15,0x01 + vpclmulqdq zmm13,zmm11,zmm15,0x10 + + vpxorq zmm12,zmm12,zmm13 + vpsrldq zmm7,zmm12,8 + vpslldq zmm8,zmm12,8 + vpxorq zmm1,zmm9,zmm7 + vpxorq zmm6,zmm10,zmm8 + vextracti64x4 ymm12,zmm1,1 + vpxorq ymm1,ymm1,ymm12 + vextracti32x4 xmm12,ymm1,1 + vpxorq xmm1,xmm1,xmm12 + vextracti64x4 ymm13,zmm6,1 + vpxorq ymm6,ymm6,ymm13 + vextracti32x4 xmm13,ymm6,1 + vpxorq xmm6,xmm6,xmm13 + vmovdqa64 xmm15,XMMWORD[POLY2] + + + vpclmulqdq xmm7,xmm15,xmm6,0x01 + vpslldq xmm7,xmm7,8 + vpxorq xmm7,xmm6,xmm7 + + + vpclmulqdq xmm8,xmm15,xmm7,0x00 + vpsrldq xmm8,xmm8,4 + vpclmulqdq xmm2,xmm15,xmm7,0x10 + vpslldq xmm2,xmm2,4 + vpternlogq xmm2,xmm8,xmm1,0x96 + + jmp NEAR $L$_CALC_AAD_done_1 +$L$_AAD_blocks_3_1: + kmovq k1,[r12] + vmovdqu8 zmm11{k1}{z},[r10] + vpshufb zmm11,zmm11,zmm16 + vpxorq zmm11,zmm11,zmm2 + vmovdqu64 ymm15,YMMWORD[304+rdx] + vinserti64x2 zmm15,zmm15,ZMMWORD[336+rdx],2 + vpclmulqdq zmm7,zmm11,zmm15,0x01 + vpclmulqdq zmm8,zmm11,zmm15,0x10 + vpclmulqdq zmm1,zmm11,zmm15,0x11 + vpclmulqdq zmm6,zmm11,zmm15,0x00 + + vpxorq zmm7,zmm7,zmm8 + vpsrldq zmm12,zmm7,8 + vpslldq zmm13,zmm7,8 + vpxorq zmm1,zmm1,zmm12 + vpxorq zmm6,zmm6,zmm13 + vextracti64x4 ymm12,zmm1,1 + vpxorq ymm1,ymm1,ymm12 + vextracti32x4 xmm12,ymm1,1 + vpxorq xmm1,xmm1,xmm12 + vextracti64x4 ymm13,zmm6,1 + vpxorq ymm6,ymm6,ymm13 + vextracti32x4 xmm13,ymm6,1 + vpxorq xmm6,xmm6,xmm13 + vmovdqa64 xmm15,XMMWORD[POLY2] + + + vpclmulqdq xmm7,xmm15,xmm6,0x01 + vpslldq xmm7,xmm7,8 + vpxorq xmm7,xmm6,xmm7 + + + vpclmulqdq xmm8,xmm15,xmm7,0x00 + vpsrldq xmm8,xmm8,4 + vpclmulqdq xmm2,xmm15,xmm7,0x10 + vpslldq xmm2,xmm2,4 + vpternlogq xmm2,xmm8,xmm1,0x96 + + jmp NEAR $L$_CALC_AAD_done_1 +$L$_AAD_blocks_2_1: + kmovq k1,[r12] + vmovdqu8 ymm11{k1}{z},[r10] + vpshufb ymm11,ymm11,ymm16 + vpxorq zmm11,zmm11,zmm2 + vmovdqu64 ymm15,YMMWORD[320+rdx] + vpclmulqdq ymm7,ymm11,ymm15,0x01 + vpclmulqdq ymm8,ymm11,ymm15,0x10 + vpclmulqdq ymm1,ymm11,ymm15,0x11 + vpclmulqdq ymm6,ymm11,ymm15,0x00 + + vpxorq zmm7,zmm7,zmm8 + vpsrldq zmm12,zmm7,8 + vpslldq zmm13,zmm7,8 + vpxorq zmm1,zmm1,zmm12 + vpxorq zmm6,zmm6,zmm13 + vextracti64x4 ymm12,zmm1,1 + vpxorq ymm1,ymm1,ymm12 + vextracti32x4 xmm12,ymm1,1 + vpxorq xmm1,xmm1,xmm12 + vextracti64x4 ymm13,zmm6,1 + vpxorq ymm6,ymm6,ymm13 + vextracti32x4 xmm13,ymm6,1 + vpxorq xmm6,xmm6,xmm13 + vmovdqa64 xmm15,XMMWORD[POLY2] + + + vpclmulqdq xmm7,xmm15,xmm6,0x01 + vpslldq xmm7,xmm7,8 + vpxorq xmm7,xmm6,xmm7 + + + vpclmulqdq xmm8,xmm15,xmm7,0x00 + vpsrldq xmm8,xmm8,4 + vpclmulqdq xmm2,xmm15,xmm7,0x10 + vpslldq xmm2,xmm2,4 + vpternlogq xmm2,xmm8,xmm1,0x96 + + jmp NEAR $L$_CALC_AAD_done_1 +$L$_AAD_blocks_1_1: + kmovq k1,[r12] + vmovdqu8 xmm11{k1}{z},[r10] + vpshufb xmm11,xmm11,xmm16 + vpxorq zmm11,zmm11,zmm2 + vmovdqu64 xmm15,XMMWORD[336+rdx] + vpclmulqdq xmm7,xmm11,xmm15,0x01 + vpclmulqdq xmm8,xmm11,xmm15,0x10 + vpclmulqdq xmm1,xmm11,xmm15,0x11 + vpclmulqdq xmm6,xmm11,xmm15,0x00 + + vpxorq zmm7,zmm7,zmm8 + vpsrldq zmm12,zmm7,8 + vpslldq zmm13,zmm7,8 + vpxorq zmm1,zmm1,zmm12 + vpxorq zmm6,zmm6,zmm13 + vextracti64x4 ymm12,zmm1,1 + vpxorq ymm1,ymm1,ymm12 + vextracti32x4 xmm12,ymm1,1 + vpxorq xmm1,xmm1,xmm12 + vextracti64x4 ymm13,zmm6,1 + vpxorq ymm6,ymm6,ymm13 + vextracti32x4 xmm13,ymm6,1 + vpxorq xmm6,xmm6,xmm13 + vmovdqa64 xmm15,XMMWORD[POLY2] + + + vpclmulqdq xmm7,xmm15,xmm6,0x01 + vpslldq xmm7,xmm7,8 + vpxorq xmm7,xmm6,xmm7 + + + vpclmulqdq xmm8,xmm15,xmm7,0x00 + vpsrldq xmm8,xmm8,4 + vpclmulqdq xmm2,xmm15,xmm7,0x10 + vpslldq xmm2,xmm2,4 + vpternlogq xmm2,xmm8,xmm1,0x96 + +$L$_CALC_AAD_done_1: + mov r10,r9 + shl r10,3 + vmovq xmm3,r10 + + + vpxorq xmm2,xmm3,xmm2 + + vmovdqu64 xmm1,XMMWORD[336+rdx] + + vpclmulqdq xmm11,xmm2,xmm1,0x11 + vpclmulqdq xmm3,xmm2,xmm1,0x00 + vpclmulqdq xmm4,xmm2,xmm1,0x01 + vpclmulqdq xmm2,xmm2,xmm1,0x10 + vpxorq xmm2,xmm2,xmm4 + + vpsrldq xmm4,xmm2,8 + vpslldq xmm2,xmm2,8 + vpxorq xmm11,xmm11,xmm4 + vpxorq xmm2,xmm2,xmm3 + + + + vmovdqu64 xmm4,XMMWORD[POLY2] + + vpclmulqdq xmm3,xmm4,xmm2,0x01 + vpslldq xmm3,xmm3,8 + vpxorq xmm2,xmm2,xmm3 + + + + vpclmulqdq xmm3,xmm4,xmm2,0x00 + vpsrldq xmm3,xmm3,4 + vpclmulqdq xmm2,xmm4,xmm2,0x10 + vpslldq xmm2,xmm2,4 + + vpternlogq xmm2,xmm11,xmm3,0x96 + + vpshufb xmm2,xmm2,XMMWORD[SHUF_MASK] + jmp NEAR skip_iv_len_12_init_IV +iv_len_12_init_IV: + + vmovdqu8 xmm2,XMMWORD[ONEf] + mov r11,r8 + mov r10d,0x0000000000000fff + kmovq k1,r10 + vmovdqu8 xmm2{k1},[r11] +skip_iv_len_12_init_IV: + vmovdqu xmm1,xmm2 + + + mov r10d,DWORD[240+rcx] + cmp r10d,9 + je NEAR $L$aes_128_4 + cmp r10d,11 + je NEAR $L$aes_192_4 + cmp r10d,13 + je NEAR $L$aes_256_4 + jmp NEAR $L$exit_aes_4 +ALIGN 32 +$L$aes_128_4: + vpxorq xmm1,xmm1,XMMWORD[rcx] + + vaesenc xmm1,xmm1,XMMWORD[16+rcx] + + vaesenc xmm1,xmm1,XMMWORD[32+rcx] + + vaesenc xmm1,xmm1,XMMWORD[48+rcx] + + vaesenc xmm1,xmm1,XMMWORD[64+rcx] + + vaesenc xmm1,xmm1,XMMWORD[80+rcx] + + vaesenc xmm1,xmm1,XMMWORD[96+rcx] + + vaesenc xmm1,xmm1,XMMWORD[112+rcx] + + vaesenc xmm1,xmm1,XMMWORD[128+rcx] + + vaesenc xmm1,xmm1,XMMWORD[144+rcx] + + vaesenclast xmm1,xmm1,XMMWORD[160+rcx] + jmp NEAR $L$exit_aes_4 +ALIGN 32 +$L$aes_192_4: + vpxorq xmm1,xmm1,XMMWORD[rcx] + + vaesenc xmm1,xmm1,XMMWORD[16+rcx] + + vaesenc xmm1,xmm1,XMMWORD[32+rcx] + + vaesenc xmm1,xmm1,XMMWORD[48+rcx] + + vaesenc xmm1,xmm1,XMMWORD[64+rcx] + + vaesenc xmm1,xmm1,XMMWORD[80+rcx] + + vaesenc xmm1,xmm1,XMMWORD[96+rcx] + + vaesenc xmm1,xmm1,XMMWORD[112+rcx] + + vaesenc xmm1,xmm1,XMMWORD[128+rcx] + + vaesenc xmm1,xmm1,XMMWORD[144+rcx] + + vaesenc xmm1,xmm1,XMMWORD[160+rcx] + + vaesenc xmm1,xmm1,XMMWORD[176+rcx] + + vaesenclast xmm1,xmm1,XMMWORD[192+rcx] + jmp NEAR $L$exit_aes_4 +ALIGN 32 +$L$aes_256_4: + vpxorq xmm1,xmm1,XMMWORD[rcx] + + vaesenc xmm1,xmm1,XMMWORD[16+rcx] + + vaesenc xmm1,xmm1,XMMWORD[32+rcx] + + vaesenc xmm1,xmm1,XMMWORD[48+rcx] + + vaesenc xmm1,xmm1,XMMWORD[64+rcx] + + vaesenc xmm1,xmm1,XMMWORD[80+rcx] + + vaesenc xmm1,xmm1,XMMWORD[96+rcx] + + vaesenc xmm1,xmm1,XMMWORD[112+rcx] + + vaesenc xmm1,xmm1,XMMWORD[128+rcx] + + vaesenc xmm1,xmm1,XMMWORD[144+rcx] + + vaesenc xmm1,xmm1,XMMWORD[160+rcx] + + vaesenc xmm1,xmm1,XMMWORD[176+rcx] + + vaesenc xmm1,xmm1,XMMWORD[192+rcx] + + vaesenc xmm1,xmm1,XMMWORD[208+rcx] + + vaesenclast xmm1,xmm1,XMMWORD[224+rcx] + jmp NEAR $L$exit_aes_4 +$L$exit_aes_4: + + vmovdqu XMMWORD[32+rdx],xmm1 + + + vpshufb xmm2,xmm2,XMMWORD[SHUF_MASK] + vmovdqu XMMWORD[rdx],xmm2 + cmp r9,256 + jbe NEAR $L$skip_hkeys_cleanup_5 + vpxor xmm0,xmm0,xmm0 + vmovdqa64 ZMMWORD[rsp],zmm0 + vmovdqa64 ZMMWORD[64+rsp],zmm0 + vmovdqa64 ZMMWORD[128+rsp],zmm0 + vmovdqa64 ZMMWORD[192+rsp],zmm0 + vmovdqa64 ZMMWORD[256+rsp],zmm0 + vmovdqa64 ZMMWORD[320+rsp],zmm0 + vmovdqa64 ZMMWORD[384+rsp],zmm0 + vmovdqa64 ZMMWORD[448+rsp],zmm0 + vmovdqa64 ZMMWORD[512+rsp],zmm0 + vmovdqa64 ZMMWORD[576+rsp],zmm0 + vmovdqa64 ZMMWORD[640+rsp],zmm0 + vmovdqa64 ZMMWORD[704+rsp],zmm0 +$L$skip_hkeys_cleanup_5: + vzeroupper + vmovdqu xmm15,XMMWORD[((-16))+rbp] + vmovdqu xmm14,XMMWORD[((-32))+rbp] + vmovdqu xmm13,XMMWORD[((-48))+rbp] + vmovdqu xmm12,XMMWORD[((-64))+rbp] + vmovdqu xmm11,XMMWORD[((-80))+rbp] + vmovdqu xmm10,XMMWORD[((-96))+rbp] + vmovdqu xmm9,XMMWORD[((-112))+rbp] + vmovdqu xmm8,XMMWORD[((-128))+rbp] + vmovdqu xmm7,XMMWORD[((-144))+rbp] + vmovdqu xmm6,XMMWORD[((-160))+rbp] + lea rsp,[8+rbp] + pop rsi + + pop rdi + + pop r15 + + pop r14 + + pop r13 + + pop r12 + + pop rbp + + pop rbx + +$L$abort_setiv: + DB 0F3h,0C3h ;repret +$L$setiv_seh_end: + + +global ossl_aes_gcm_update_aad_avx512 + +ALIGN 32 +ossl_aes_gcm_update_aad_avx512: + +$L$ghash_seh_begin: +DB 243,15,30,250 + push rbx + +$L$ghash_seh_push_rbx: + push rbp + +$L$ghash_seh_push_rbp: + push r12 + +$L$ghash_seh_push_r12: + push r13 + +$L$ghash_seh_push_r13: + push r14 + +$L$ghash_seh_push_r14: + push r15 + +$L$ghash_seh_push_r15: + push rdi +$L$ghash_seh_push_rdi: + push rsi +$L$ghash_seh_push_rsi: + + sub rsp,168 +$L$ghash_seh_allocstack_xmm: + + + + + + + + + + + lea rbp,[160+rsp] + +$L$ghash_seh_setfp: + vmovdqu XMMWORD[rsp],xmm6 +$L$ghash_seh_save_xmm6: + vmovdqu XMMWORD[16+rsp],xmm7 +$L$ghash_seh_save_xmm7: + vmovdqu XMMWORD[32+rsp],xmm8 +$L$ghash_seh_save_xmm8: + vmovdqu XMMWORD[48+rsp],xmm9 +$L$ghash_seh_save_xmm9: + vmovdqu XMMWORD[64+rsp],xmm10 +$L$ghash_seh_save_xmm10: + vmovdqu XMMWORD[80+rsp],xmm11 +$L$ghash_seh_save_xmm11: + vmovdqu XMMWORD[96+rsp],xmm12 +$L$ghash_seh_save_xmm12: + vmovdqu XMMWORD[112+rsp],xmm13 +$L$ghash_seh_save_xmm13: + vmovdqu XMMWORD[128+rsp],xmm14 +$L$ghash_seh_save_xmm14: + vmovdqu XMMWORD[144+rsp],xmm15 +$L$ghash_seh_save_xmm15: + +$L$ghash_seh_prolog_end: + sub rsp,816 + and rsp,(-64) + vmovdqu64 xmm14,XMMWORD[64+rcx] + mov r10,rdx + mov r11,r8 + or r11,r11 + jz NEAR $L$_CALC_AAD_done_6 + + xor rbx,rbx + vmovdqa64 zmm16,ZMMWORD[SHUF_MASK] + +$L$_get_AAD_loop48x16_6: + cmp r11,768 + jl NEAR $L$_exit_AAD_loop48x16_6 + vmovdqu64 zmm11,ZMMWORD[r10] + vmovdqu64 zmm3,ZMMWORD[64+r10] + vmovdqu64 zmm4,ZMMWORD[128+r10] + vmovdqu64 zmm5,ZMMWORD[192+r10] + vpshufb zmm11,zmm11,zmm16 + vpshufb zmm3,zmm3,zmm16 + vpshufb zmm4,zmm4,zmm16 + vpshufb zmm5,zmm5,zmm16 + test rbx,rbx + jnz NEAR $L$_skip_hkeys_precomputation_7 + + vmovdqu64 zmm1,ZMMWORD[288+rcx] + vmovdqu64 ZMMWORD[704+rsp],zmm1 + + vmovdqu64 zmm9,ZMMWORD[224+rcx] + vmovdqu64 ZMMWORD[640+rsp],zmm9 + + + vshufi64x2 zmm9,zmm9,zmm9,0x00 + + vmovdqu64 zmm10,ZMMWORD[160+rcx] + vmovdqu64 ZMMWORD[576+rsp],zmm10 + + vmovdqu64 zmm12,ZMMWORD[96+rcx] + vmovdqu64 ZMMWORD[512+rsp],zmm12 + + vpclmulqdq zmm13,zmm10,zmm9,0x11 + vpclmulqdq zmm15,zmm10,zmm9,0x00 + vpclmulqdq zmm17,zmm10,zmm9,0x01 + vpclmulqdq zmm10,zmm10,zmm9,0x10 + vpxorq zmm10,zmm10,zmm17 + + vpsrldq zmm17,zmm10,8 + vpslldq zmm10,zmm10,8 + vpxorq zmm13,zmm13,zmm17 + vpxorq zmm10,zmm10,zmm15 + + + + vmovdqu64 zmm17,ZMMWORD[POLY2] + + vpclmulqdq zmm15,zmm17,zmm10,0x01 + vpslldq zmm15,zmm15,8 + vpxorq zmm10,zmm10,zmm15 + + + + vpclmulqdq zmm15,zmm17,zmm10,0x00 + vpsrldq zmm15,zmm15,4 + vpclmulqdq zmm10,zmm17,zmm10,0x10 + vpslldq zmm10,zmm10,4 + + vpternlogq zmm10,zmm13,zmm15,0x96 + + vmovdqu64 ZMMWORD[448+rsp],zmm10 + + vpclmulqdq zmm13,zmm12,zmm9,0x11 + vpclmulqdq zmm15,zmm12,zmm9,0x00 + vpclmulqdq zmm17,zmm12,zmm9,0x01 + vpclmulqdq zmm12,zmm12,zmm9,0x10 + vpxorq zmm12,zmm12,zmm17 + + vpsrldq zmm17,zmm12,8 + vpslldq zmm12,zmm12,8 + vpxorq zmm13,zmm13,zmm17 + vpxorq zmm12,zmm12,zmm15 + + + + vmovdqu64 zmm17,ZMMWORD[POLY2] + + vpclmulqdq zmm15,zmm17,zmm12,0x01 + vpslldq zmm15,zmm15,8 + vpxorq zmm12,zmm12,zmm15 + + + + vpclmulqdq zmm15,zmm17,zmm12,0x00 + vpsrldq zmm15,zmm15,4 + vpclmulqdq zmm12,zmm17,zmm12,0x10 + vpslldq zmm12,zmm12,4 + + vpternlogq zmm12,zmm13,zmm15,0x96 + + vmovdqu64 ZMMWORD[384+rsp],zmm12 + + vpclmulqdq zmm13,zmm10,zmm9,0x11 + vpclmulqdq zmm15,zmm10,zmm9,0x00 + vpclmulqdq zmm17,zmm10,zmm9,0x01 + vpclmulqdq zmm10,zmm10,zmm9,0x10 + vpxorq zmm10,zmm10,zmm17 + + vpsrldq zmm17,zmm10,8 + vpslldq zmm10,zmm10,8 + vpxorq zmm13,zmm13,zmm17 + vpxorq zmm10,zmm10,zmm15 + + + + vmovdqu64 zmm17,ZMMWORD[POLY2] + + vpclmulqdq zmm15,zmm17,zmm10,0x01 + vpslldq zmm15,zmm15,8 + vpxorq zmm10,zmm10,zmm15 + + + + vpclmulqdq zmm15,zmm17,zmm10,0x00 + vpsrldq zmm15,zmm15,4 + vpclmulqdq zmm10,zmm17,zmm10,0x10 + vpslldq zmm10,zmm10,4 + + vpternlogq zmm10,zmm13,zmm15,0x96 + + vmovdqu64 ZMMWORD[320+rsp],zmm10 + + vpclmulqdq zmm13,zmm12,zmm9,0x11 + vpclmulqdq zmm15,zmm12,zmm9,0x00 + vpclmulqdq zmm17,zmm12,zmm9,0x01 + vpclmulqdq zmm12,zmm12,zmm9,0x10 + vpxorq zmm12,zmm12,zmm17 + + vpsrldq zmm17,zmm12,8 + vpslldq zmm12,zmm12,8 + vpxorq zmm13,zmm13,zmm17 + vpxorq zmm12,zmm12,zmm15 + + + + vmovdqu64 zmm17,ZMMWORD[POLY2] + + vpclmulqdq zmm15,zmm17,zmm12,0x01 + vpslldq zmm15,zmm15,8 + vpxorq zmm12,zmm12,zmm15 + + + + vpclmulqdq zmm15,zmm17,zmm12,0x00 + vpsrldq zmm15,zmm15,4 + vpclmulqdq zmm12,zmm17,zmm12,0x10 + vpslldq zmm12,zmm12,4 + + vpternlogq zmm12,zmm13,zmm15,0x96 + + vmovdqu64 ZMMWORD[256+rsp],zmm12 + + vpclmulqdq zmm13,zmm10,zmm9,0x11 + vpclmulqdq zmm15,zmm10,zmm9,0x00 + vpclmulqdq zmm17,zmm10,zmm9,0x01 + vpclmulqdq zmm10,zmm10,zmm9,0x10 + vpxorq zmm10,zmm10,zmm17 + + vpsrldq zmm17,zmm10,8 + vpslldq zmm10,zmm10,8 + vpxorq zmm13,zmm13,zmm17 + vpxorq zmm10,zmm10,zmm15 + + + + vmovdqu64 zmm17,ZMMWORD[POLY2] + + vpclmulqdq zmm15,zmm17,zmm10,0x01 + vpslldq zmm15,zmm15,8 + vpxorq zmm10,zmm10,zmm15 + + + + vpclmulqdq zmm15,zmm17,zmm10,0x00 + vpsrldq zmm15,zmm15,4 + vpclmulqdq zmm10,zmm17,zmm10,0x10 + vpslldq zmm10,zmm10,4 + + vpternlogq zmm10,zmm13,zmm15,0x96 + + vmovdqu64 ZMMWORD[192+rsp],zmm10 + + vpclmulqdq zmm13,zmm12,zmm9,0x11 + vpclmulqdq zmm15,zmm12,zmm9,0x00 + vpclmulqdq zmm17,zmm12,zmm9,0x01 + vpclmulqdq zmm12,zmm12,zmm9,0x10 + vpxorq zmm12,zmm12,zmm17 + + vpsrldq zmm17,zmm12,8 + vpslldq zmm12,zmm12,8 + vpxorq zmm13,zmm13,zmm17 + vpxorq zmm12,zmm12,zmm15 + + + + vmovdqu64 zmm17,ZMMWORD[POLY2] + + vpclmulqdq zmm15,zmm17,zmm12,0x01 + vpslldq zmm15,zmm15,8 + vpxorq zmm12,zmm12,zmm15 + + + + vpclmulqdq zmm15,zmm17,zmm12,0x00 + vpsrldq zmm15,zmm15,4 + vpclmulqdq zmm12,zmm17,zmm12,0x10 + vpslldq zmm12,zmm12,4 + + vpternlogq zmm12,zmm13,zmm15,0x96 + + vmovdqu64 ZMMWORD[128+rsp],zmm12 + + vpclmulqdq zmm13,zmm10,zmm9,0x11 + vpclmulqdq zmm15,zmm10,zmm9,0x00 + vpclmulqdq zmm17,zmm10,zmm9,0x01 + vpclmulqdq zmm10,zmm10,zmm9,0x10 + vpxorq zmm10,zmm10,zmm17 + + vpsrldq zmm17,zmm10,8 + vpslldq zmm10,zmm10,8 + vpxorq zmm13,zmm13,zmm17 + vpxorq zmm10,zmm10,zmm15 + + + + vmovdqu64 zmm17,ZMMWORD[POLY2] + + vpclmulqdq zmm15,zmm17,zmm10,0x01 + vpslldq zmm15,zmm15,8 + vpxorq zmm10,zmm10,zmm15 + + + + vpclmulqdq zmm15,zmm17,zmm10,0x00 + vpsrldq zmm15,zmm15,4 + vpclmulqdq zmm10,zmm17,zmm10,0x10 + vpslldq zmm10,zmm10,4 + + vpternlogq zmm10,zmm13,zmm15,0x96 + + vmovdqu64 ZMMWORD[64+rsp],zmm10 + + vpclmulqdq zmm13,zmm12,zmm9,0x11 + vpclmulqdq zmm15,zmm12,zmm9,0x00 + vpclmulqdq zmm17,zmm12,zmm9,0x01 + vpclmulqdq zmm12,zmm12,zmm9,0x10 + vpxorq zmm12,zmm12,zmm17 + + vpsrldq zmm17,zmm12,8 + vpslldq zmm12,zmm12,8 + vpxorq zmm13,zmm13,zmm17 + vpxorq zmm12,zmm12,zmm15 + + + + vmovdqu64 zmm17,ZMMWORD[POLY2] + + vpclmulqdq zmm15,zmm17,zmm12,0x01 + vpslldq zmm15,zmm15,8 + vpxorq zmm12,zmm12,zmm15 + + + + vpclmulqdq zmm15,zmm17,zmm12,0x00 + vpsrldq zmm15,zmm15,4 + vpclmulqdq zmm12,zmm17,zmm12,0x10 + vpslldq zmm12,zmm12,4 + + vpternlogq zmm12,zmm13,zmm15,0x96 + + vmovdqu64 ZMMWORD[rsp],zmm12 +$L$_skip_hkeys_precomputation_7: + mov rbx,1 + vpxorq zmm11,zmm11,zmm14 + vmovdqu64 zmm19,ZMMWORD[rsp] + vpclmulqdq zmm1,zmm11,zmm19,0x11 + vpclmulqdq zmm9,zmm11,zmm19,0x00 + vpclmulqdq zmm10,zmm11,zmm19,0x01 + vpclmulqdq zmm12,zmm11,zmm19,0x10 + vmovdqu64 zmm19,ZMMWORD[64+rsp] + vpclmulqdq zmm13,zmm3,zmm19,0x11 + vpclmulqdq zmm15,zmm3,zmm19,0x00 + vpclmulqdq zmm17,zmm3,zmm19,0x01 + vpclmulqdq zmm18,zmm3,zmm19,0x10 + vpxorq zmm7,zmm10,zmm17 + vpxorq zmm6,zmm1,zmm13 + vpxorq zmm8,zmm9,zmm15 + vpternlogq zmm7,zmm12,zmm18,0x96 + vmovdqu64 zmm19,ZMMWORD[128+rsp] + vpclmulqdq zmm1,zmm4,zmm19,0x11 + vpclmulqdq zmm9,zmm4,zmm19,0x00 + vpclmulqdq zmm10,zmm4,zmm19,0x01 + vpclmulqdq zmm12,zmm4,zmm19,0x10 + vmovdqu64 zmm19,ZMMWORD[192+rsp] + vpclmulqdq zmm13,zmm5,zmm19,0x11 + vpclmulqdq zmm15,zmm5,zmm19,0x00 + vpclmulqdq zmm17,zmm5,zmm19,0x01 + vpclmulqdq zmm18,zmm5,zmm19,0x10 + + vpternlogq zmm7,zmm10,zmm17,0x96 + vpternlogq zmm6,zmm1,zmm13,0x96 + vpternlogq zmm8,zmm9,zmm15,0x96 + vpternlogq zmm7,zmm12,zmm18,0x96 + vmovdqu64 zmm11,ZMMWORD[256+r10] + vmovdqu64 zmm3,ZMMWORD[320+r10] + vmovdqu64 zmm4,ZMMWORD[384+r10] + vmovdqu64 zmm5,ZMMWORD[448+r10] + vpshufb zmm11,zmm11,zmm16 + vpshufb zmm3,zmm3,zmm16 + vpshufb zmm4,zmm4,zmm16 + vpshufb zmm5,zmm5,zmm16 + vmovdqu64 zmm19,ZMMWORD[256+rsp] + vpclmulqdq zmm1,zmm11,zmm19,0x11 + vpclmulqdq zmm9,zmm11,zmm19,0x00 + vpclmulqdq zmm10,zmm11,zmm19,0x01 + vpclmulqdq zmm12,zmm11,zmm19,0x10 + vmovdqu64 zmm19,ZMMWORD[320+rsp] + vpclmulqdq zmm13,zmm3,zmm19,0x11 + vpclmulqdq zmm15,zmm3,zmm19,0x00 + vpclmulqdq zmm17,zmm3,zmm19,0x01 + vpclmulqdq zmm18,zmm3,zmm19,0x10 + vpternlogq zmm7,zmm10,zmm17,0x96 + vpternlogq zmm6,zmm1,zmm13,0x96 + vpternlogq zmm8,zmm9,zmm15,0x96 + vpternlogq zmm7,zmm12,zmm18,0x96 + vmovdqu64 zmm19,ZMMWORD[384+rsp] + vpclmulqdq zmm1,zmm4,zmm19,0x11 + vpclmulqdq zmm9,zmm4,zmm19,0x00 + vpclmulqdq zmm10,zmm4,zmm19,0x01 + vpclmulqdq zmm12,zmm4,zmm19,0x10 + vmovdqu64 zmm19,ZMMWORD[448+rsp] + vpclmulqdq zmm13,zmm5,zmm19,0x11 + vpclmulqdq zmm15,zmm5,zmm19,0x00 + vpclmulqdq zmm17,zmm5,zmm19,0x01 + vpclmulqdq zmm18,zmm5,zmm19,0x10 + + vpternlogq zmm7,zmm10,zmm17,0x96 + vpternlogq zmm6,zmm1,zmm13,0x96 + vpternlogq zmm8,zmm9,zmm15,0x96 + vpternlogq zmm7,zmm12,zmm18,0x96 + vmovdqu64 zmm11,ZMMWORD[512+r10] + vmovdqu64 zmm3,ZMMWORD[576+r10] + vmovdqu64 zmm4,ZMMWORD[640+r10] + vmovdqu64 zmm5,ZMMWORD[704+r10] + vpshufb zmm11,zmm11,zmm16 + vpshufb zmm3,zmm3,zmm16 + vpshufb zmm4,zmm4,zmm16 + vpshufb zmm5,zmm5,zmm16 + vmovdqu64 zmm19,ZMMWORD[512+rsp] + vpclmulqdq zmm1,zmm11,zmm19,0x11 + vpclmulqdq zmm9,zmm11,zmm19,0x00 + vpclmulqdq zmm10,zmm11,zmm19,0x01 + vpclmulqdq zmm12,zmm11,zmm19,0x10 + vmovdqu64 zmm19,ZMMWORD[576+rsp] + vpclmulqdq zmm13,zmm3,zmm19,0x11 + vpclmulqdq zmm15,zmm3,zmm19,0x00 + vpclmulqdq zmm17,zmm3,zmm19,0x01 + vpclmulqdq zmm18,zmm3,zmm19,0x10 + vpternlogq zmm7,zmm10,zmm17,0x96 + vpternlogq zmm6,zmm1,zmm13,0x96 + vpternlogq zmm8,zmm9,zmm15,0x96 + vpternlogq zmm7,zmm12,zmm18,0x96 + vmovdqu64 zmm19,ZMMWORD[640+rsp] + vpclmulqdq zmm1,zmm4,zmm19,0x11 + vpclmulqdq zmm9,zmm4,zmm19,0x00 + vpclmulqdq zmm10,zmm4,zmm19,0x01 + vpclmulqdq zmm12,zmm4,zmm19,0x10 + vmovdqu64 zmm19,ZMMWORD[704+rsp] + vpclmulqdq zmm13,zmm5,zmm19,0x11 + vpclmulqdq zmm15,zmm5,zmm19,0x00 + vpclmulqdq zmm17,zmm5,zmm19,0x01 + vpclmulqdq zmm18,zmm5,zmm19,0x10 + + vpternlogq zmm7,zmm10,zmm17,0x96 + vpternlogq zmm6,zmm1,zmm13,0x96 + vpternlogq zmm8,zmm9,zmm15,0x96 + vpternlogq zmm7,zmm12,zmm18,0x96 + + vpsrldq zmm1,zmm7,8 + vpslldq zmm9,zmm7,8 + vpxorq zmm6,zmm6,zmm1 + vpxorq zmm8,zmm8,zmm9 + vextracti64x4 ymm1,zmm6,1 + vpxorq ymm6,ymm6,ymm1 + vextracti32x4 xmm1,ymm6,1 + vpxorq xmm6,xmm6,xmm1 + vextracti64x4 ymm9,zmm8,1 + vpxorq ymm8,ymm8,ymm9 + vextracti32x4 xmm9,ymm8,1 + vpxorq xmm8,xmm8,xmm9 + vmovdqa64 xmm10,XMMWORD[POLY2] + + + vpclmulqdq xmm1,xmm10,xmm8,0x01 + vpslldq xmm1,xmm1,8 + vpxorq xmm1,xmm8,xmm1 + + + vpclmulqdq xmm9,xmm10,xmm1,0x00 + vpsrldq xmm9,xmm9,4 + vpclmulqdq xmm14,xmm10,xmm1,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm9,xmm6,0x96 + + sub r11,768 + je NEAR $L$_CALC_AAD_done_6 + + add r10,768 + jmp NEAR $L$_get_AAD_loop48x16_6 + +$L$_exit_AAD_loop48x16_6: + + cmp r11,512 + jl NEAR $L$_less_than_32x16_6 + + vmovdqu64 zmm11,ZMMWORD[r10] + vmovdqu64 zmm3,ZMMWORD[64+r10] + vmovdqu64 zmm4,ZMMWORD[128+r10] + vmovdqu64 zmm5,ZMMWORD[192+r10] + vpshufb zmm11,zmm11,zmm16 + vpshufb zmm3,zmm3,zmm16 + vpshufb zmm4,zmm4,zmm16 + vpshufb zmm5,zmm5,zmm16 + test rbx,rbx + jnz NEAR $L$_skip_hkeys_precomputation_8 + + vmovdqu64 zmm1,ZMMWORD[288+rcx] + vmovdqu64 ZMMWORD[704+rsp],zmm1 + + vmovdqu64 zmm9,ZMMWORD[224+rcx] + vmovdqu64 ZMMWORD[640+rsp],zmm9 + + + vshufi64x2 zmm9,zmm9,zmm9,0x00 + + vmovdqu64 zmm10,ZMMWORD[160+rcx] + vmovdqu64 ZMMWORD[576+rsp],zmm10 + + vmovdqu64 zmm12,ZMMWORD[96+rcx] + vmovdqu64 ZMMWORD[512+rsp],zmm12 + + vpclmulqdq zmm13,zmm10,zmm9,0x11 + vpclmulqdq zmm15,zmm10,zmm9,0x00 + vpclmulqdq zmm17,zmm10,zmm9,0x01 + vpclmulqdq zmm10,zmm10,zmm9,0x10 + vpxorq zmm10,zmm10,zmm17 + + vpsrldq zmm17,zmm10,8 + vpslldq zmm10,zmm10,8 + vpxorq zmm13,zmm13,zmm17 + vpxorq zmm10,zmm10,zmm15 + + + + vmovdqu64 zmm17,ZMMWORD[POLY2] + + vpclmulqdq zmm15,zmm17,zmm10,0x01 + vpslldq zmm15,zmm15,8 + vpxorq zmm10,zmm10,zmm15 + + + + vpclmulqdq zmm15,zmm17,zmm10,0x00 + vpsrldq zmm15,zmm15,4 + vpclmulqdq zmm10,zmm17,zmm10,0x10 + vpslldq zmm10,zmm10,4 + + vpternlogq zmm10,zmm13,zmm15,0x96 + + vmovdqu64 ZMMWORD[448+rsp],zmm10 + + vpclmulqdq zmm13,zmm12,zmm9,0x11 + vpclmulqdq zmm15,zmm12,zmm9,0x00 + vpclmulqdq zmm17,zmm12,zmm9,0x01 + vpclmulqdq zmm12,zmm12,zmm9,0x10 + vpxorq zmm12,zmm12,zmm17 + + vpsrldq zmm17,zmm12,8 + vpslldq zmm12,zmm12,8 + vpxorq zmm13,zmm13,zmm17 + vpxorq zmm12,zmm12,zmm15 + + + + vmovdqu64 zmm17,ZMMWORD[POLY2] + + vpclmulqdq zmm15,zmm17,zmm12,0x01 + vpslldq zmm15,zmm15,8 + vpxorq zmm12,zmm12,zmm15 + + + + vpclmulqdq zmm15,zmm17,zmm12,0x00 + vpsrldq zmm15,zmm15,4 + vpclmulqdq zmm12,zmm17,zmm12,0x10 + vpslldq zmm12,zmm12,4 + + vpternlogq zmm12,zmm13,zmm15,0x96 + + vmovdqu64 ZMMWORD[384+rsp],zmm12 + + vpclmulqdq zmm13,zmm10,zmm9,0x11 + vpclmulqdq zmm15,zmm10,zmm9,0x00 + vpclmulqdq zmm17,zmm10,zmm9,0x01 + vpclmulqdq zmm10,zmm10,zmm9,0x10 + vpxorq zmm10,zmm10,zmm17 + + vpsrldq zmm17,zmm10,8 + vpslldq zmm10,zmm10,8 + vpxorq zmm13,zmm13,zmm17 + vpxorq zmm10,zmm10,zmm15 + + + + vmovdqu64 zmm17,ZMMWORD[POLY2] + + vpclmulqdq zmm15,zmm17,zmm10,0x01 + vpslldq zmm15,zmm15,8 + vpxorq zmm10,zmm10,zmm15 + + + + vpclmulqdq zmm15,zmm17,zmm10,0x00 + vpsrldq zmm15,zmm15,4 + vpclmulqdq zmm10,zmm17,zmm10,0x10 + vpslldq zmm10,zmm10,4 + + vpternlogq zmm10,zmm13,zmm15,0x96 + + vmovdqu64 ZMMWORD[320+rsp],zmm10 + + vpclmulqdq zmm13,zmm12,zmm9,0x11 + vpclmulqdq zmm15,zmm12,zmm9,0x00 + vpclmulqdq zmm17,zmm12,zmm9,0x01 + vpclmulqdq zmm12,zmm12,zmm9,0x10 + vpxorq zmm12,zmm12,zmm17 + + vpsrldq zmm17,zmm12,8 + vpslldq zmm12,zmm12,8 + vpxorq zmm13,zmm13,zmm17 + vpxorq zmm12,zmm12,zmm15 + + + + vmovdqu64 zmm17,ZMMWORD[POLY2] + + vpclmulqdq zmm15,zmm17,zmm12,0x01 + vpslldq zmm15,zmm15,8 + vpxorq zmm12,zmm12,zmm15 + + + + vpclmulqdq zmm15,zmm17,zmm12,0x00 + vpsrldq zmm15,zmm15,4 + vpclmulqdq zmm12,zmm17,zmm12,0x10 + vpslldq zmm12,zmm12,4 + + vpternlogq zmm12,zmm13,zmm15,0x96 + + vmovdqu64 ZMMWORD[256+rsp],zmm12 +$L$_skip_hkeys_precomputation_8: + mov rbx,1 + vpxorq zmm11,zmm11,zmm14 + vmovdqu64 zmm19,ZMMWORD[256+rsp] + vpclmulqdq zmm1,zmm11,zmm19,0x11 + vpclmulqdq zmm9,zmm11,zmm19,0x00 + vpclmulqdq zmm10,zmm11,zmm19,0x01 + vpclmulqdq zmm12,zmm11,zmm19,0x10 + vmovdqu64 zmm19,ZMMWORD[320+rsp] + vpclmulqdq zmm13,zmm3,zmm19,0x11 + vpclmulqdq zmm15,zmm3,zmm19,0x00 + vpclmulqdq zmm17,zmm3,zmm19,0x01 + vpclmulqdq zmm18,zmm3,zmm19,0x10 + vpxorq zmm7,zmm10,zmm17 + vpxorq zmm6,zmm1,zmm13 + vpxorq zmm8,zmm9,zmm15 + vpternlogq zmm7,zmm12,zmm18,0x96 + vmovdqu64 zmm19,ZMMWORD[384+rsp] + vpclmulqdq zmm1,zmm4,zmm19,0x11 + vpclmulqdq zmm9,zmm4,zmm19,0x00 + vpclmulqdq zmm10,zmm4,zmm19,0x01 + vpclmulqdq zmm12,zmm4,zmm19,0x10 + vmovdqu64 zmm19,ZMMWORD[448+rsp] + vpclmulqdq zmm13,zmm5,zmm19,0x11 + vpclmulqdq zmm15,zmm5,zmm19,0x00 + vpclmulqdq zmm17,zmm5,zmm19,0x01 + vpclmulqdq zmm18,zmm5,zmm19,0x10 + + vpternlogq zmm7,zmm10,zmm17,0x96 + vpternlogq zmm6,zmm1,zmm13,0x96 + vpternlogq zmm8,zmm9,zmm15,0x96 + vpternlogq zmm7,zmm12,zmm18,0x96 + vmovdqu64 zmm11,ZMMWORD[256+r10] + vmovdqu64 zmm3,ZMMWORD[320+r10] + vmovdqu64 zmm4,ZMMWORD[384+r10] + vmovdqu64 zmm5,ZMMWORD[448+r10] + vpshufb zmm11,zmm11,zmm16 + vpshufb zmm3,zmm3,zmm16 + vpshufb zmm4,zmm4,zmm16 + vpshufb zmm5,zmm5,zmm16 + vmovdqu64 zmm19,ZMMWORD[512+rsp] + vpclmulqdq zmm1,zmm11,zmm19,0x11 + vpclmulqdq zmm9,zmm11,zmm19,0x00 + vpclmulqdq zmm10,zmm11,zmm19,0x01 + vpclmulqdq zmm12,zmm11,zmm19,0x10 + vmovdqu64 zmm19,ZMMWORD[576+rsp] + vpclmulqdq zmm13,zmm3,zmm19,0x11 + vpclmulqdq zmm15,zmm3,zmm19,0x00 + vpclmulqdq zmm17,zmm3,zmm19,0x01 + vpclmulqdq zmm18,zmm3,zmm19,0x10 + vpternlogq zmm7,zmm10,zmm17,0x96 + vpternlogq zmm6,zmm1,zmm13,0x96 + vpternlogq zmm8,zmm9,zmm15,0x96 + vpternlogq zmm7,zmm12,zmm18,0x96 + vmovdqu64 zmm19,ZMMWORD[640+rsp] + vpclmulqdq zmm1,zmm4,zmm19,0x11 + vpclmulqdq zmm9,zmm4,zmm19,0x00 + vpclmulqdq zmm10,zmm4,zmm19,0x01 + vpclmulqdq zmm12,zmm4,zmm19,0x10 + vmovdqu64 zmm19,ZMMWORD[704+rsp] + vpclmulqdq zmm13,zmm5,zmm19,0x11 + vpclmulqdq zmm15,zmm5,zmm19,0x00 + vpclmulqdq zmm17,zmm5,zmm19,0x01 + vpclmulqdq zmm18,zmm5,zmm19,0x10 + + vpternlogq zmm7,zmm10,zmm17,0x96 + vpternlogq zmm6,zmm1,zmm13,0x96 + vpternlogq zmm8,zmm9,zmm15,0x96 + vpternlogq zmm7,zmm12,zmm18,0x96 + + vpsrldq zmm1,zmm7,8 + vpslldq zmm9,zmm7,8 + vpxorq zmm6,zmm6,zmm1 + vpxorq zmm8,zmm8,zmm9 + vextracti64x4 ymm1,zmm6,1 + vpxorq ymm6,ymm6,ymm1 + vextracti32x4 xmm1,ymm6,1 + vpxorq xmm6,xmm6,xmm1 + vextracti64x4 ymm9,zmm8,1 + vpxorq ymm8,ymm8,ymm9 + vextracti32x4 xmm9,ymm8,1 + vpxorq xmm8,xmm8,xmm9 + vmovdqa64 xmm10,XMMWORD[POLY2] + + + vpclmulqdq xmm1,xmm10,xmm8,0x01 + vpslldq xmm1,xmm1,8 + vpxorq xmm1,xmm8,xmm1 + + + vpclmulqdq xmm9,xmm10,xmm1,0x00 + vpsrldq xmm9,xmm9,4 + vpclmulqdq xmm14,xmm10,xmm1,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm9,xmm6,0x96 + + sub r11,512 + je NEAR $L$_CALC_AAD_done_6 + + add r10,512 + jmp NEAR $L$_less_than_16x16_6 + +$L$_less_than_32x16_6: + cmp r11,256 + jl NEAR $L$_less_than_16x16_6 + + vmovdqu64 zmm11,ZMMWORD[r10] + vmovdqu64 zmm3,ZMMWORD[64+r10] + vmovdqu64 zmm4,ZMMWORD[128+r10] + vmovdqu64 zmm5,ZMMWORD[192+r10] + vpshufb zmm11,zmm11,zmm16 + vpshufb zmm3,zmm3,zmm16 + vpshufb zmm4,zmm4,zmm16 + vpshufb zmm5,zmm5,zmm16 + vpxorq zmm11,zmm11,zmm14 + vmovdqu64 zmm19,ZMMWORD[96+rcx] + vpclmulqdq zmm1,zmm11,zmm19,0x11 + vpclmulqdq zmm9,zmm11,zmm19,0x00 + vpclmulqdq zmm10,zmm11,zmm19,0x01 + vpclmulqdq zmm12,zmm11,zmm19,0x10 + vmovdqu64 zmm19,ZMMWORD[160+rcx] + vpclmulqdq zmm13,zmm3,zmm19,0x11 + vpclmulqdq zmm15,zmm3,zmm19,0x00 + vpclmulqdq zmm17,zmm3,zmm19,0x01 + vpclmulqdq zmm18,zmm3,zmm19,0x10 + vpxorq zmm7,zmm10,zmm17 + vpxorq zmm6,zmm1,zmm13 + vpxorq zmm8,zmm9,zmm15 + vpternlogq zmm7,zmm12,zmm18,0x96 + vmovdqu64 zmm19,ZMMWORD[224+rcx] + vpclmulqdq zmm1,zmm4,zmm19,0x11 + vpclmulqdq zmm9,zmm4,zmm19,0x00 + vpclmulqdq zmm10,zmm4,zmm19,0x01 + vpclmulqdq zmm12,zmm4,zmm19,0x10 + vmovdqu64 zmm19,ZMMWORD[288+rcx] + vpclmulqdq zmm13,zmm5,zmm19,0x11 + vpclmulqdq zmm15,zmm5,zmm19,0x00 + vpclmulqdq zmm17,zmm5,zmm19,0x01 + vpclmulqdq zmm18,zmm5,zmm19,0x10 + + vpternlogq zmm7,zmm10,zmm17,0x96 + vpternlogq zmm6,zmm1,zmm13,0x96 + vpternlogq zmm8,zmm9,zmm15,0x96 + vpternlogq zmm7,zmm12,zmm18,0x96 + + vpsrldq zmm1,zmm7,8 + vpslldq zmm9,zmm7,8 + vpxorq zmm6,zmm6,zmm1 + vpxorq zmm8,zmm8,zmm9 + vextracti64x4 ymm1,zmm6,1 + vpxorq ymm6,ymm6,ymm1 + vextracti32x4 xmm1,ymm6,1 + vpxorq xmm6,xmm6,xmm1 + vextracti64x4 ymm9,zmm8,1 + vpxorq ymm8,ymm8,ymm9 + vextracti32x4 xmm9,ymm8,1 + vpxorq xmm8,xmm8,xmm9 + vmovdqa64 xmm10,XMMWORD[POLY2] + + + vpclmulqdq xmm1,xmm10,xmm8,0x01 + vpslldq xmm1,xmm1,8 + vpxorq xmm1,xmm8,xmm1 + + + vpclmulqdq xmm9,xmm10,xmm1,0x00 + vpsrldq xmm9,xmm9,4 + vpclmulqdq xmm14,xmm10,xmm1,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm9,xmm6,0x96 + + sub r11,256 + je NEAR $L$_CALC_AAD_done_6 + + add r10,256 + +$L$_less_than_16x16_6: + + lea r12,[byte64_len_to_mask_table] + lea r12,[r11*8+r12] + + + add r11d,15 + shr r11d,4 + cmp r11d,2 + jb NEAR $L$_AAD_blocks_1_6 + je NEAR $L$_AAD_blocks_2_6 + cmp r11d,4 + jb NEAR $L$_AAD_blocks_3_6 + je NEAR $L$_AAD_blocks_4_6 + cmp r11d,6 + jb NEAR $L$_AAD_blocks_5_6 + je NEAR $L$_AAD_blocks_6_6 + cmp r11d,8 + jb NEAR $L$_AAD_blocks_7_6 + je NEAR $L$_AAD_blocks_8_6 + cmp r11d,10 + jb NEAR $L$_AAD_blocks_9_6 + je NEAR $L$_AAD_blocks_10_6 + cmp r11d,12 + jb NEAR $L$_AAD_blocks_11_6 + je NEAR $L$_AAD_blocks_12_6 + cmp r11d,14 + jb NEAR $L$_AAD_blocks_13_6 + je NEAR $L$_AAD_blocks_14_6 + cmp r11d,15 + je NEAR $L$_AAD_blocks_15_6 +$L$_AAD_blocks_16_6: + sub r12,1536 + kmovq k1,[r12] + vmovdqu8 zmm11,ZMMWORD[r10] + vmovdqu8 zmm3,ZMMWORD[64+r10] + vmovdqu8 zmm4,ZMMWORD[128+r10] + vmovdqu8 zmm5{k1}{z},[192+r10] + vpshufb zmm11,zmm11,zmm16 + vpshufb zmm3,zmm3,zmm16 + vpshufb zmm4,zmm4,zmm16 + vpshufb zmm5,zmm5,zmm16 + vpxorq zmm11,zmm11,zmm14 + vmovdqu64 zmm15,ZMMWORD[96+rcx] + vpclmulqdq zmm1,zmm11,zmm15,0x11 + vpclmulqdq zmm6,zmm11,zmm15,0x00 + vpclmulqdq zmm7,zmm11,zmm15,0x01 + vpclmulqdq zmm8,zmm11,zmm15,0x10 + vmovdqu64 zmm15,ZMMWORD[160+rcx] + vpclmulqdq zmm9,zmm3,zmm15,0x11 + vpclmulqdq zmm10,zmm3,zmm15,0x00 + vpclmulqdq zmm12,zmm3,zmm15,0x01 + vpclmulqdq zmm13,zmm3,zmm15,0x10 + vmovdqu64 zmm15,ZMMWORD[224+rcx] + vpclmulqdq zmm11,zmm4,zmm15,0x11 + vpclmulqdq zmm3,zmm4,zmm15,0x00 + vpternlogq zmm1,zmm11,zmm9,0x96 + vpternlogq zmm6,zmm3,zmm10,0x96 + vpclmulqdq zmm11,zmm4,zmm15,0x01 + vpclmulqdq zmm3,zmm4,zmm15,0x10 + vpternlogq zmm7,zmm11,zmm12,0x96 + vpternlogq zmm8,zmm3,zmm13,0x96 + vmovdqu64 zmm15,ZMMWORD[288+rcx] + vpclmulqdq zmm9,zmm5,zmm15,0x11 + vpclmulqdq zmm10,zmm5,zmm15,0x00 + vpclmulqdq zmm12,zmm5,zmm15,0x01 + vpclmulqdq zmm13,zmm5,zmm15,0x10 + vpxorq zmm9,zmm1,zmm9 + vpxorq zmm10,zmm6,zmm10 + vpxorq zmm12,zmm7,zmm12 + vpxorq zmm13,zmm8,zmm13 + + vpxorq zmm12,zmm12,zmm13 + vpsrldq zmm7,zmm12,8 + vpslldq zmm8,zmm12,8 + vpxorq zmm1,zmm9,zmm7 + vpxorq zmm6,zmm10,zmm8 + vextracti64x4 ymm12,zmm1,1 + vpxorq ymm1,ymm1,ymm12 + vextracti32x4 xmm12,ymm1,1 + vpxorq xmm1,xmm1,xmm12 + vextracti64x4 ymm13,zmm6,1 + vpxorq ymm6,ymm6,ymm13 + vextracti32x4 xmm13,ymm6,1 + vpxorq xmm6,xmm6,xmm13 + vmovdqa64 xmm15,XMMWORD[POLY2] + + + vpclmulqdq xmm7,xmm15,xmm6,0x01 + vpslldq xmm7,xmm7,8 + vpxorq xmm7,xmm6,xmm7 + + + vpclmulqdq xmm8,xmm15,xmm7,0x00 + vpsrldq xmm8,xmm8,4 + vpclmulqdq xmm14,xmm15,xmm7,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm8,xmm1,0x96 + + jmp NEAR $L$_CALC_AAD_done_6 +$L$_AAD_blocks_15_6: + sub r12,1536 + kmovq k1,[r12] + vmovdqu8 zmm11,ZMMWORD[r10] + vmovdqu8 zmm3,ZMMWORD[64+r10] + vmovdqu8 zmm4,ZMMWORD[128+r10] + vmovdqu8 zmm5{k1}{z},[192+r10] + vpshufb zmm11,zmm11,zmm16 + vpshufb zmm3,zmm3,zmm16 + vpshufb zmm4,zmm4,zmm16 + vpshufb zmm5,zmm5,zmm16 + vpxorq zmm11,zmm11,zmm14 + vmovdqu64 zmm15,ZMMWORD[112+rcx] + vpclmulqdq zmm1,zmm11,zmm15,0x11 + vpclmulqdq zmm6,zmm11,zmm15,0x00 + vpclmulqdq zmm7,zmm11,zmm15,0x01 + vpclmulqdq zmm8,zmm11,zmm15,0x10 + vmovdqu64 zmm15,ZMMWORD[176+rcx] + vpclmulqdq zmm9,zmm3,zmm15,0x11 + vpclmulqdq zmm10,zmm3,zmm15,0x00 + vpclmulqdq zmm12,zmm3,zmm15,0x01 + vpclmulqdq zmm13,zmm3,zmm15,0x10 + vmovdqu64 zmm15,ZMMWORD[240+rcx] + vpclmulqdq zmm11,zmm4,zmm15,0x11 + vpclmulqdq zmm3,zmm4,zmm15,0x00 + vpternlogq zmm9,zmm11,zmm1,0x96 + vpternlogq zmm10,zmm3,zmm6,0x96 + vpclmulqdq zmm11,zmm4,zmm15,0x01 + vpclmulqdq zmm3,zmm4,zmm15,0x10 + vpternlogq zmm12,zmm11,zmm7,0x96 + vpternlogq zmm13,zmm3,zmm8,0x96 + vmovdqu64 ymm15,YMMWORD[304+rcx] + vinserti64x2 zmm15,zmm15,ZMMWORD[336+rcx],2 + vpclmulqdq zmm7,zmm5,zmm15,0x01 + vpclmulqdq zmm8,zmm5,zmm15,0x10 + vpclmulqdq zmm1,zmm5,zmm15,0x11 + vpclmulqdq zmm6,zmm5,zmm15,0x00 + + vpxorq zmm7,zmm7,zmm12 + vpxorq zmm8,zmm8,zmm13 + vpxorq zmm1,zmm1,zmm9 + vpxorq zmm6,zmm6,zmm10 + + vpxorq zmm7,zmm7,zmm8 + vpsrldq zmm12,zmm7,8 + vpslldq zmm13,zmm7,8 + vpxorq zmm1,zmm1,zmm12 + vpxorq zmm6,zmm6,zmm13 + vextracti64x4 ymm12,zmm1,1 + vpxorq ymm1,ymm1,ymm12 + vextracti32x4 xmm12,ymm1,1 + vpxorq xmm1,xmm1,xmm12 + vextracti64x4 ymm13,zmm6,1 + vpxorq ymm6,ymm6,ymm13 + vextracti32x4 xmm13,ymm6,1 + vpxorq xmm6,xmm6,xmm13 + vmovdqa64 xmm15,XMMWORD[POLY2] + + + vpclmulqdq xmm7,xmm15,xmm6,0x01 + vpslldq xmm7,xmm7,8 + vpxorq xmm7,xmm6,xmm7 + + + vpclmulqdq xmm8,xmm15,xmm7,0x00 + vpsrldq xmm8,xmm8,4 + vpclmulqdq xmm14,xmm15,xmm7,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm8,xmm1,0x96 + + jmp NEAR $L$_CALC_AAD_done_6 +$L$_AAD_blocks_14_6: + sub r12,1536 + kmovq k1,[r12] + vmovdqu8 zmm11,ZMMWORD[r10] + vmovdqu8 zmm3,ZMMWORD[64+r10] + vmovdqu8 zmm4,ZMMWORD[128+r10] + vmovdqu8 ymm5{k1}{z},[192+r10] + vpshufb zmm11,zmm11,zmm16 + vpshufb zmm3,zmm3,zmm16 + vpshufb zmm4,zmm4,zmm16 + vpshufb ymm5,ymm5,ymm16 + vpxorq zmm11,zmm11,zmm14 + vmovdqu64 zmm15,ZMMWORD[128+rcx] + vpclmulqdq zmm1,zmm11,zmm15,0x11 + vpclmulqdq zmm6,zmm11,zmm15,0x00 + vpclmulqdq zmm7,zmm11,zmm15,0x01 + vpclmulqdq zmm8,zmm11,zmm15,0x10 + vmovdqu64 zmm15,ZMMWORD[192+rcx] + vpclmulqdq zmm9,zmm3,zmm15,0x11 + vpclmulqdq zmm10,zmm3,zmm15,0x00 + vpclmulqdq zmm12,zmm3,zmm15,0x01 + vpclmulqdq zmm13,zmm3,zmm15,0x10 + vmovdqu64 zmm15,ZMMWORD[256+rcx] + vpclmulqdq zmm11,zmm4,zmm15,0x11 + vpclmulqdq zmm3,zmm4,zmm15,0x00 + vpternlogq zmm9,zmm11,zmm1,0x96 + vpternlogq zmm10,zmm3,zmm6,0x96 + vpclmulqdq zmm11,zmm4,zmm15,0x01 + vpclmulqdq zmm3,zmm4,zmm15,0x10 + vpternlogq zmm12,zmm11,zmm7,0x96 + vpternlogq zmm13,zmm3,zmm8,0x96 + vmovdqu64 ymm15,YMMWORD[320+rcx] + vpclmulqdq ymm7,ymm5,ymm15,0x01 + vpclmulqdq ymm8,ymm5,ymm15,0x10 + vpclmulqdq ymm1,ymm5,ymm15,0x11 + vpclmulqdq ymm6,ymm5,ymm15,0x00 + + vpxorq zmm7,zmm7,zmm12 + vpxorq zmm8,zmm8,zmm13 + vpxorq zmm1,zmm1,zmm9 + vpxorq zmm6,zmm6,zmm10 + + vpxorq zmm7,zmm7,zmm8 + vpsrldq zmm12,zmm7,8 + vpslldq zmm13,zmm7,8 + vpxorq zmm1,zmm1,zmm12 + vpxorq zmm6,zmm6,zmm13 + vextracti64x4 ymm12,zmm1,1 + vpxorq ymm1,ymm1,ymm12 + vextracti32x4 xmm12,ymm1,1 + vpxorq xmm1,xmm1,xmm12 + vextracti64x4 ymm13,zmm6,1 + vpxorq ymm6,ymm6,ymm13 + vextracti32x4 xmm13,ymm6,1 + vpxorq xmm6,xmm6,xmm13 + vmovdqa64 xmm15,XMMWORD[POLY2] + + + vpclmulqdq xmm7,xmm15,xmm6,0x01 + vpslldq xmm7,xmm7,8 + vpxorq xmm7,xmm6,xmm7 + + + vpclmulqdq xmm8,xmm15,xmm7,0x00 + vpsrldq xmm8,xmm8,4 + vpclmulqdq xmm14,xmm15,xmm7,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm8,xmm1,0x96 + + jmp NEAR $L$_CALC_AAD_done_6 +$L$_AAD_blocks_13_6: + sub r12,1536 + kmovq k1,[r12] + vmovdqu8 zmm11,ZMMWORD[r10] + vmovdqu8 zmm3,ZMMWORD[64+r10] + vmovdqu8 zmm4,ZMMWORD[128+r10] + vmovdqu8 xmm5{k1}{z},[192+r10] + vpshufb zmm11,zmm11,zmm16 + vpshufb zmm3,zmm3,zmm16 + vpshufb zmm4,zmm4,zmm16 + vpshufb xmm5,xmm5,xmm16 + vpxorq zmm11,zmm11,zmm14 + vmovdqu64 zmm15,ZMMWORD[144+rcx] + vpclmulqdq zmm1,zmm11,zmm15,0x11 + vpclmulqdq zmm6,zmm11,zmm15,0x00 + vpclmulqdq zmm7,zmm11,zmm15,0x01 + vpclmulqdq zmm8,zmm11,zmm15,0x10 + vmovdqu64 zmm15,ZMMWORD[208+rcx] + vpclmulqdq zmm9,zmm3,zmm15,0x11 + vpclmulqdq zmm10,zmm3,zmm15,0x00 + vpclmulqdq zmm12,zmm3,zmm15,0x01 + vpclmulqdq zmm13,zmm3,zmm15,0x10 + vmovdqu64 zmm15,ZMMWORD[272+rcx] + vpclmulqdq zmm11,zmm4,zmm15,0x11 + vpclmulqdq zmm3,zmm4,zmm15,0x00 + vpternlogq zmm9,zmm11,zmm1,0x96 + vpternlogq zmm10,zmm3,zmm6,0x96 + vpclmulqdq zmm11,zmm4,zmm15,0x01 + vpclmulqdq zmm3,zmm4,zmm15,0x10 + vpternlogq zmm12,zmm11,zmm7,0x96 + vpternlogq zmm13,zmm3,zmm8,0x96 + vmovdqu64 xmm15,XMMWORD[336+rcx] + vpclmulqdq xmm7,xmm5,xmm15,0x01 + vpclmulqdq xmm8,xmm5,xmm15,0x10 + vpclmulqdq xmm1,xmm5,xmm15,0x11 + vpclmulqdq xmm6,xmm5,xmm15,0x00 + + vpxorq zmm7,zmm7,zmm12 + vpxorq zmm8,zmm8,zmm13 + vpxorq zmm1,zmm1,zmm9 + vpxorq zmm6,zmm6,zmm10 + + vpxorq zmm7,zmm7,zmm8 + vpsrldq zmm12,zmm7,8 + vpslldq zmm13,zmm7,8 + vpxorq zmm1,zmm1,zmm12 + vpxorq zmm6,zmm6,zmm13 + vextracti64x4 ymm12,zmm1,1 + vpxorq ymm1,ymm1,ymm12 + vextracti32x4 xmm12,ymm1,1 + vpxorq xmm1,xmm1,xmm12 + vextracti64x4 ymm13,zmm6,1 + vpxorq ymm6,ymm6,ymm13 + vextracti32x4 xmm13,ymm6,1 + vpxorq xmm6,xmm6,xmm13 + vmovdqa64 xmm15,XMMWORD[POLY2] + + + vpclmulqdq xmm7,xmm15,xmm6,0x01 + vpslldq xmm7,xmm7,8 + vpxorq xmm7,xmm6,xmm7 + + + vpclmulqdq xmm8,xmm15,xmm7,0x00 + vpsrldq xmm8,xmm8,4 + vpclmulqdq xmm14,xmm15,xmm7,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm8,xmm1,0x96 + + jmp NEAR $L$_CALC_AAD_done_6 +$L$_AAD_blocks_12_6: + sub r12,1024 + kmovq k1,[r12] + vmovdqu8 zmm11,ZMMWORD[r10] + vmovdqu8 zmm3,ZMMWORD[64+r10] + vmovdqu8 zmm4{k1}{z},[128+r10] + vpshufb zmm11,zmm11,zmm16 + vpshufb zmm3,zmm3,zmm16 + vpshufb zmm4,zmm4,zmm16 + vpxorq zmm11,zmm11,zmm14 + vmovdqu64 zmm15,ZMMWORD[160+rcx] + vpclmulqdq zmm1,zmm11,zmm15,0x11 + vpclmulqdq zmm6,zmm11,zmm15,0x00 + vpclmulqdq zmm7,zmm11,zmm15,0x01 + vpclmulqdq zmm8,zmm11,zmm15,0x10 + vmovdqu64 zmm15,ZMMWORD[224+rcx] + vpclmulqdq zmm9,zmm3,zmm15,0x11 + vpclmulqdq zmm10,zmm3,zmm15,0x00 + vpclmulqdq zmm12,zmm3,zmm15,0x01 + vpclmulqdq zmm13,zmm3,zmm15,0x10 + vmovdqu64 zmm15,ZMMWORD[288+rcx] + vpclmulqdq zmm11,zmm4,zmm15,0x11 + vpclmulqdq zmm3,zmm4,zmm15,0x00 + vpternlogq zmm9,zmm11,zmm1,0x96 + vpternlogq zmm10,zmm3,zmm6,0x96 + vpclmulqdq zmm11,zmm4,zmm15,0x01 + vpclmulqdq zmm3,zmm4,zmm15,0x10 + vpternlogq zmm12,zmm11,zmm7,0x96 + vpternlogq zmm13,zmm3,zmm8,0x96 + + vpxorq zmm12,zmm12,zmm13 + vpsrldq zmm7,zmm12,8 + vpslldq zmm8,zmm12,8 + vpxorq zmm1,zmm9,zmm7 + vpxorq zmm6,zmm10,zmm8 + vextracti64x4 ymm12,zmm1,1 + vpxorq ymm1,ymm1,ymm12 + vextracti32x4 xmm12,ymm1,1 + vpxorq xmm1,xmm1,xmm12 + vextracti64x4 ymm13,zmm6,1 + vpxorq ymm6,ymm6,ymm13 + vextracti32x4 xmm13,ymm6,1 + vpxorq xmm6,xmm6,xmm13 + vmovdqa64 xmm15,XMMWORD[POLY2] + + + vpclmulqdq xmm7,xmm15,xmm6,0x01 + vpslldq xmm7,xmm7,8 + vpxorq xmm7,xmm6,xmm7 + + + vpclmulqdq xmm8,xmm15,xmm7,0x00 + vpsrldq xmm8,xmm8,4 + vpclmulqdq xmm14,xmm15,xmm7,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm8,xmm1,0x96 + + jmp NEAR $L$_CALC_AAD_done_6 +$L$_AAD_blocks_11_6: + sub r12,1024 + kmovq k1,[r12] + vmovdqu8 zmm11,ZMMWORD[r10] + vmovdqu8 zmm3,ZMMWORD[64+r10] + vmovdqu8 zmm4{k1}{z},[128+r10] + vpshufb zmm11,zmm11,zmm16 + vpshufb zmm3,zmm3,zmm16 + vpshufb zmm4,zmm4,zmm16 + vpxorq zmm11,zmm11,zmm14 + vmovdqu64 zmm15,ZMMWORD[176+rcx] + vpclmulqdq zmm1,zmm11,zmm15,0x11 + vpclmulqdq zmm6,zmm11,zmm15,0x00 + vpclmulqdq zmm7,zmm11,zmm15,0x01 + vpclmulqdq zmm8,zmm11,zmm15,0x10 + vmovdqu64 zmm15,ZMMWORD[240+rcx] + vpclmulqdq zmm9,zmm3,zmm15,0x11 + vpclmulqdq zmm10,zmm3,zmm15,0x00 + vpclmulqdq zmm12,zmm3,zmm15,0x01 + vpclmulqdq zmm13,zmm3,zmm15,0x10 + vpxorq zmm9,zmm1,zmm9 + vpxorq zmm10,zmm6,zmm10 + vpxorq zmm12,zmm7,zmm12 + vpxorq zmm13,zmm8,zmm13 + vmovdqu64 ymm15,YMMWORD[304+rcx] + vinserti64x2 zmm15,zmm15,ZMMWORD[336+rcx],2 + vpclmulqdq zmm7,zmm4,zmm15,0x01 + vpclmulqdq zmm8,zmm4,zmm15,0x10 + vpclmulqdq zmm1,zmm4,zmm15,0x11 + vpclmulqdq zmm6,zmm4,zmm15,0x00 + + vpxorq zmm7,zmm7,zmm12 + vpxorq zmm8,zmm8,zmm13 + vpxorq zmm1,zmm1,zmm9 + vpxorq zmm6,zmm6,zmm10 + + vpxorq zmm7,zmm7,zmm8 + vpsrldq zmm12,zmm7,8 + vpslldq zmm13,zmm7,8 + vpxorq zmm1,zmm1,zmm12 + vpxorq zmm6,zmm6,zmm13 + vextracti64x4 ymm12,zmm1,1 + vpxorq ymm1,ymm1,ymm12 + vextracti32x4 xmm12,ymm1,1 + vpxorq xmm1,xmm1,xmm12 + vextracti64x4 ymm13,zmm6,1 + vpxorq ymm6,ymm6,ymm13 + vextracti32x4 xmm13,ymm6,1 + vpxorq xmm6,xmm6,xmm13 + vmovdqa64 xmm15,XMMWORD[POLY2] + + + vpclmulqdq xmm7,xmm15,xmm6,0x01 + vpslldq xmm7,xmm7,8 + vpxorq xmm7,xmm6,xmm7 + + + vpclmulqdq xmm8,xmm15,xmm7,0x00 + vpsrldq xmm8,xmm8,4 + vpclmulqdq xmm14,xmm15,xmm7,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm8,xmm1,0x96 + + jmp NEAR $L$_CALC_AAD_done_6 +$L$_AAD_blocks_10_6: + sub r12,1024 + kmovq k1,[r12] + vmovdqu8 zmm11,ZMMWORD[r10] + vmovdqu8 zmm3,ZMMWORD[64+r10] + vmovdqu8 ymm4{k1}{z},[128+r10] + vpshufb zmm11,zmm11,zmm16 + vpshufb zmm3,zmm3,zmm16 + vpshufb ymm4,ymm4,ymm16 + vpxorq zmm11,zmm11,zmm14 + vmovdqu64 zmm15,ZMMWORD[192+rcx] + vpclmulqdq zmm1,zmm11,zmm15,0x11 + vpclmulqdq zmm6,zmm11,zmm15,0x00 + vpclmulqdq zmm7,zmm11,zmm15,0x01 + vpclmulqdq zmm8,zmm11,zmm15,0x10 + vmovdqu64 zmm15,ZMMWORD[256+rcx] + vpclmulqdq zmm9,zmm3,zmm15,0x11 + vpclmulqdq zmm10,zmm3,zmm15,0x00 + vpclmulqdq zmm12,zmm3,zmm15,0x01 + vpclmulqdq zmm13,zmm3,zmm15,0x10 + vpxorq zmm9,zmm1,zmm9 + vpxorq zmm10,zmm6,zmm10 + vpxorq zmm12,zmm7,zmm12 + vpxorq zmm13,zmm8,zmm13 + vmovdqu64 ymm15,YMMWORD[320+rcx] + vpclmulqdq ymm7,ymm4,ymm15,0x01 + vpclmulqdq ymm8,ymm4,ymm15,0x10 + vpclmulqdq ymm1,ymm4,ymm15,0x11 + vpclmulqdq ymm6,ymm4,ymm15,0x00 + + vpxorq zmm7,zmm7,zmm12 + vpxorq zmm8,zmm8,zmm13 + vpxorq zmm1,zmm1,zmm9 + vpxorq zmm6,zmm6,zmm10 + + vpxorq zmm7,zmm7,zmm8 + vpsrldq zmm12,zmm7,8 + vpslldq zmm13,zmm7,8 + vpxorq zmm1,zmm1,zmm12 + vpxorq zmm6,zmm6,zmm13 + vextracti64x4 ymm12,zmm1,1 + vpxorq ymm1,ymm1,ymm12 + vextracti32x4 xmm12,ymm1,1 + vpxorq xmm1,xmm1,xmm12 + vextracti64x4 ymm13,zmm6,1 + vpxorq ymm6,ymm6,ymm13 + vextracti32x4 xmm13,ymm6,1 + vpxorq xmm6,xmm6,xmm13 + vmovdqa64 xmm15,XMMWORD[POLY2] + + + vpclmulqdq xmm7,xmm15,xmm6,0x01 + vpslldq xmm7,xmm7,8 + vpxorq xmm7,xmm6,xmm7 + + + vpclmulqdq xmm8,xmm15,xmm7,0x00 + vpsrldq xmm8,xmm8,4 + vpclmulqdq xmm14,xmm15,xmm7,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm8,xmm1,0x96 + + jmp NEAR $L$_CALC_AAD_done_6 +$L$_AAD_blocks_9_6: + sub r12,1024 + kmovq k1,[r12] + vmovdqu8 zmm11,ZMMWORD[r10] + vmovdqu8 zmm3,ZMMWORD[64+r10] + vmovdqu8 xmm4{k1}{z},[128+r10] + vpshufb zmm11,zmm11,zmm16 + vpshufb zmm3,zmm3,zmm16 + vpshufb xmm4,xmm4,xmm16 + vpxorq zmm11,zmm11,zmm14 + vmovdqu64 zmm15,ZMMWORD[208+rcx] + vpclmulqdq zmm1,zmm11,zmm15,0x11 + vpclmulqdq zmm6,zmm11,zmm15,0x00 + vpclmulqdq zmm7,zmm11,zmm15,0x01 + vpclmulqdq zmm8,zmm11,zmm15,0x10 + vmovdqu64 zmm15,ZMMWORD[272+rcx] + vpclmulqdq zmm9,zmm3,zmm15,0x11 + vpclmulqdq zmm10,zmm3,zmm15,0x00 + vpclmulqdq zmm12,zmm3,zmm15,0x01 + vpclmulqdq zmm13,zmm3,zmm15,0x10 + vpxorq zmm9,zmm1,zmm9 + vpxorq zmm10,zmm6,zmm10 + vpxorq zmm12,zmm7,zmm12 + vpxorq zmm13,zmm8,zmm13 + vmovdqu64 xmm15,XMMWORD[336+rcx] + vpclmulqdq xmm7,xmm4,xmm15,0x01 + vpclmulqdq xmm8,xmm4,xmm15,0x10 + vpclmulqdq xmm1,xmm4,xmm15,0x11 + vpclmulqdq xmm6,xmm4,xmm15,0x00 + + vpxorq zmm7,zmm7,zmm12 + vpxorq zmm8,zmm8,zmm13 + vpxorq zmm1,zmm1,zmm9 + vpxorq zmm6,zmm6,zmm10 + + vpxorq zmm7,zmm7,zmm8 + vpsrldq zmm12,zmm7,8 + vpslldq zmm13,zmm7,8 + vpxorq zmm1,zmm1,zmm12 + vpxorq zmm6,zmm6,zmm13 + vextracti64x4 ymm12,zmm1,1 + vpxorq ymm1,ymm1,ymm12 + vextracti32x4 xmm12,ymm1,1 + vpxorq xmm1,xmm1,xmm12 + vextracti64x4 ymm13,zmm6,1 + vpxorq ymm6,ymm6,ymm13 + vextracti32x4 xmm13,ymm6,1 + vpxorq xmm6,xmm6,xmm13 + vmovdqa64 xmm15,XMMWORD[POLY2] + + + vpclmulqdq xmm7,xmm15,xmm6,0x01 + vpslldq xmm7,xmm7,8 + vpxorq xmm7,xmm6,xmm7 + + + vpclmulqdq xmm8,xmm15,xmm7,0x00 + vpsrldq xmm8,xmm8,4 + vpclmulqdq xmm14,xmm15,xmm7,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm8,xmm1,0x96 + + jmp NEAR $L$_CALC_AAD_done_6 +$L$_AAD_blocks_8_6: + sub r12,512 + kmovq k1,[r12] + vmovdqu8 zmm11,ZMMWORD[r10] + vmovdqu8 zmm3{k1}{z},[64+r10] + vpshufb zmm11,zmm11,zmm16 + vpshufb zmm3,zmm3,zmm16 + vpxorq zmm11,zmm11,zmm14 + vmovdqu64 zmm15,ZMMWORD[224+rcx] + vpclmulqdq zmm1,zmm11,zmm15,0x11 + vpclmulqdq zmm6,zmm11,zmm15,0x00 + vpclmulqdq zmm7,zmm11,zmm15,0x01 + vpclmulqdq zmm8,zmm11,zmm15,0x10 + vmovdqu64 zmm15,ZMMWORD[288+rcx] + vpclmulqdq zmm9,zmm3,zmm15,0x11 + vpclmulqdq zmm10,zmm3,zmm15,0x00 + vpclmulqdq zmm12,zmm3,zmm15,0x01 + vpclmulqdq zmm13,zmm3,zmm15,0x10 + vpxorq zmm9,zmm1,zmm9 + vpxorq zmm10,zmm6,zmm10 + vpxorq zmm12,zmm7,zmm12 + vpxorq zmm13,zmm8,zmm13 + + vpxorq zmm12,zmm12,zmm13 + vpsrldq zmm7,zmm12,8 + vpslldq zmm8,zmm12,8 + vpxorq zmm1,zmm9,zmm7 + vpxorq zmm6,zmm10,zmm8 + vextracti64x4 ymm12,zmm1,1 + vpxorq ymm1,ymm1,ymm12 + vextracti32x4 xmm12,ymm1,1 + vpxorq xmm1,xmm1,xmm12 + vextracti64x4 ymm13,zmm6,1 + vpxorq ymm6,ymm6,ymm13 + vextracti32x4 xmm13,ymm6,1 + vpxorq xmm6,xmm6,xmm13 + vmovdqa64 xmm15,XMMWORD[POLY2] + + + vpclmulqdq xmm7,xmm15,xmm6,0x01 + vpslldq xmm7,xmm7,8 + vpxorq xmm7,xmm6,xmm7 + + + vpclmulqdq xmm8,xmm15,xmm7,0x00 + vpsrldq xmm8,xmm8,4 + vpclmulqdq xmm14,xmm15,xmm7,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm8,xmm1,0x96 + + jmp NEAR $L$_CALC_AAD_done_6 +$L$_AAD_blocks_7_6: + sub r12,512 + kmovq k1,[r12] + vmovdqu8 zmm11,ZMMWORD[r10] + vmovdqu8 zmm3{k1}{z},[64+r10] + vpshufb zmm11,zmm11,zmm16 + vpshufb zmm3,zmm3,zmm16 + vpxorq zmm11,zmm11,zmm14 + vmovdqu64 zmm15,ZMMWORD[240+rcx] + vpclmulqdq zmm9,zmm11,zmm15,0x11 + vpclmulqdq zmm10,zmm11,zmm15,0x00 + vpclmulqdq zmm12,zmm11,zmm15,0x01 + vpclmulqdq zmm13,zmm11,zmm15,0x10 + vmovdqu64 ymm15,YMMWORD[304+rcx] + vinserti64x2 zmm15,zmm15,ZMMWORD[336+rcx],2 + vpclmulqdq zmm7,zmm3,zmm15,0x01 + vpclmulqdq zmm8,zmm3,zmm15,0x10 + vpclmulqdq zmm1,zmm3,zmm15,0x11 + vpclmulqdq zmm6,zmm3,zmm15,0x00 + + vpxorq zmm7,zmm7,zmm12 + vpxorq zmm8,zmm8,zmm13 + vpxorq zmm1,zmm1,zmm9 + vpxorq zmm6,zmm6,zmm10 + + vpxorq zmm7,zmm7,zmm8 + vpsrldq zmm12,zmm7,8 + vpslldq zmm13,zmm7,8 + vpxorq zmm1,zmm1,zmm12 + vpxorq zmm6,zmm6,zmm13 + vextracti64x4 ymm12,zmm1,1 + vpxorq ymm1,ymm1,ymm12 + vextracti32x4 xmm12,ymm1,1 + vpxorq xmm1,xmm1,xmm12 + vextracti64x4 ymm13,zmm6,1 + vpxorq ymm6,ymm6,ymm13 + vextracti32x4 xmm13,ymm6,1 + vpxorq xmm6,xmm6,xmm13 + vmovdqa64 xmm15,XMMWORD[POLY2] + + + vpclmulqdq xmm7,xmm15,xmm6,0x01 + vpslldq xmm7,xmm7,8 + vpxorq xmm7,xmm6,xmm7 + + + vpclmulqdq xmm8,xmm15,xmm7,0x00 + vpsrldq xmm8,xmm8,4 + vpclmulqdq xmm14,xmm15,xmm7,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm8,xmm1,0x96 + + jmp NEAR $L$_CALC_AAD_done_6 +$L$_AAD_blocks_6_6: + sub r12,512 + kmovq k1,[r12] + vmovdqu8 zmm11,ZMMWORD[r10] + vmovdqu8 ymm3{k1}{z},[64+r10] + vpshufb zmm11,zmm11,zmm16 + vpshufb ymm3,ymm3,ymm16 + vpxorq zmm11,zmm11,zmm14 + vmovdqu64 zmm15,ZMMWORD[256+rcx] + vpclmulqdq zmm9,zmm11,zmm15,0x11 + vpclmulqdq zmm10,zmm11,zmm15,0x00 + vpclmulqdq zmm12,zmm11,zmm15,0x01 + vpclmulqdq zmm13,zmm11,zmm15,0x10 + vmovdqu64 ymm15,YMMWORD[320+rcx] + vpclmulqdq ymm7,ymm3,ymm15,0x01 + vpclmulqdq ymm8,ymm3,ymm15,0x10 + vpclmulqdq ymm1,ymm3,ymm15,0x11 + vpclmulqdq ymm6,ymm3,ymm15,0x00 + + vpxorq zmm7,zmm7,zmm12 + vpxorq zmm8,zmm8,zmm13 + vpxorq zmm1,zmm1,zmm9 + vpxorq zmm6,zmm6,zmm10 + + vpxorq zmm7,zmm7,zmm8 + vpsrldq zmm12,zmm7,8 + vpslldq zmm13,zmm7,8 + vpxorq zmm1,zmm1,zmm12 + vpxorq zmm6,zmm6,zmm13 + vextracti64x4 ymm12,zmm1,1 + vpxorq ymm1,ymm1,ymm12 + vextracti32x4 xmm12,ymm1,1 + vpxorq xmm1,xmm1,xmm12 + vextracti64x4 ymm13,zmm6,1 + vpxorq ymm6,ymm6,ymm13 + vextracti32x4 xmm13,ymm6,1 + vpxorq xmm6,xmm6,xmm13 + vmovdqa64 xmm15,XMMWORD[POLY2] + + + vpclmulqdq xmm7,xmm15,xmm6,0x01 + vpslldq xmm7,xmm7,8 + vpxorq xmm7,xmm6,xmm7 + + + vpclmulqdq xmm8,xmm15,xmm7,0x00 + vpsrldq xmm8,xmm8,4 + vpclmulqdq xmm14,xmm15,xmm7,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm8,xmm1,0x96 + + jmp NEAR $L$_CALC_AAD_done_6 +$L$_AAD_blocks_5_6: + sub r12,512 + kmovq k1,[r12] + vmovdqu8 zmm11,ZMMWORD[r10] + vmovdqu8 xmm3{k1}{z},[64+r10] + vpshufb zmm11,zmm11,zmm16 + vpshufb xmm3,xmm3,xmm16 + vpxorq zmm11,zmm11,zmm14 + vmovdqu64 zmm15,ZMMWORD[272+rcx] + vpclmulqdq zmm9,zmm11,zmm15,0x11 + vpclmulqdq zmm10,zmm11,zmm15,0x00 + vpclmulqdq zmm12,zmm11,zmm15,0x01 + vpclmulqdq zmm13,zmm11,zmm15,0x10 + vmovdqu64 xmm15,XMMWORD[336+rcx] + vpclmulqdq xmm7,xmm3,xmm15,0x01 + vpclmulqdq xmm8,xmm3,xmm15,0x10 + vpclmulqdq xmm1,xmm3,xmm15,0x11 + vpclmulqdq xmm6,xmm3,xmm15,0x00 + + vpxorq zmm7,zmm7,zmm12 + vpxorq zmm8,zmm8,zmm13 + vpxorq zmm1,zmm1,zmm9 + vpxorq zmm6,zmm6,zmm10 + + vpxorq zmm7,zmm7,zmm8 + vpsrldq zmm12,zmm7,8 + vpslldq zmm13,zmm7,8 + vpxorq zmm1,zmm1,zmm12 + vpxorq zmm6,zmm6,zmm13 + vextracti64x4 ymm12,zmm1,1 + vpxorq ymm1,ymm1,ymm12 + vextracti32x4 xmm12,ymm1,1 + vpxorq xmm1,xmm1,xmm12 + vextracti64x4 ymm13,zmm6,1 + vpxorq ymm6,ymm6,ymm13 + vextracti32x4 xmm13,ymm6,1 + vpxorq xmm6,xmm6,xmm13 + vmovdqa64 xmm15,XMMWORD[POLY2] + + + vpclmulqdq xmm7,xmm15,xmm6,0x01 + vpslldq xmm7,xmm7,8 + vpxorq xmm7,xmm6,xmm7 + + + vpclmulqdq xmm8,xmm15,xmm7,0x00 + vpsrldq xmm8,xmm8,4 + vpclmulqdq xmm14,xmm15,xmm7,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm8,xmm1,0x96 + + jmp NEAR $L$_CALC_AAD_done_6 +$L$_AAD_blocks_4_6: + kmovq k1,[r12] + vmovdqu8 zmm11{k1}{z},[r10] + vpshufb zmm11,zmm11,zmm16 + vpxorq zmm11,zmm11,zmm14 + vmovdqu64 zmm15,ZMMWORD[288+rcx] + vpclmulqdq zmm9,zmm11,zmm15,0x11 + vpclmulqdq zmm10,zmm11,zmm15,0x00 + vpclmulqdq zmm12,zmm11,zmm15,0x01 + vpclmulqdq zmm13,zmm11,zmm15,0x10 + + vpxorq zmm12,zmm12,zmm13 + vpsrldq zmm7,zmm12,8 + vpslldq zmm8,zmm12,8 + vpxorq zmm1,zmm9,zmm7 + vpxorq zmm6,zmm10,zmm8 + vextracti64x4 ymm12,zmm1,1 + vpxorq ymm1,ymm1,ymm12 + vextracti32x4 xmm12,ymm1,1 + vpxorq xmm1,xmm1,xmm12 + vextracti64x4 ymm13,zmm6,1 + vpxorq ymm6,ymm6,ymm13 + vextracti32x4 xmm13,ymm6,1 + vpxorq xmm6,xmm6,xmm13 + vmovdqa64 xmm15,XMMWORD[POLY2] + + + vpclmulqdq xmm7,xmm15,xmm6,0x01 + vpslldq xmm7,xmm7,8 + vpxorq xmm7,xmm6,xmm7 + + + vpclmulqdq xmm8,xmm15,xmm7,0x00 + vpsrldq xmm8,xmm8,4 + vpclmulqdq xmm14,xmm15,xmm7,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm8,xmm1,0x96 + + jmp NEAR $L$_CALC_AAD_done_6 +$L$_AAD_blocks_3_6: + kmovq k1,[r12] + vmovdqu8 zmm11{k1}{z},[r10] + vpshufb zmm11,zmm11,zmm16 + vpxorq zmm11,zmm11,zmm14 + vmovdqu64 ymm15,YMMWORD[304+rcx] + vinserti64x2 zmm15,zmm15,ZMMWORD[336+rcx],2 + vpclmulqdq zmm7,zmm11,zmm15,0x01 + vpclmulqdq zmm8,zmm11,zmm15,0x10 + vpclmulqdq zmm1,zmm11,zmm15,0x11 + vpclmulqdq zmm6,zmm11,zmm15,0x00 + + vpxorq zmm7,zmm7,zmm8 + vpsrldq zmm12,zmm7,8 + vpslldq zmm13,zmm7,8 + vpxorq zmm1,zmm1,zmm12 + vpxorq zmm6,zmm6,zmm13 + vextracti64x4 ymm12,zmm1,1 + vpxorq ymm1,ymm1,ymm12 + vextracti32x4 xmm12,ymm1,1 + vpxorq xmm1,xmm1,xmm12 + vextracti64x4 ymm13,zmm6,1 + vpxorq ymm6,ymm6,ymm13 + vextracti32x4 xmm13,ymm6,1 + vpxorq xmm6,xmm6,xmm13 + vmovdqa64 xmm15,XMMWORD[POLY2] + + + vpclmulqdq xmm7,xmm15,xmm6,0x01 + vpslldq xmm7,xmm7,8 + vpxorq xmm7,xmm6,xmm7 + + + vpclmulqdq xmm8,xmm15,xmm7,0x00 + vpsrldq xmm8,xmm8,4 + vpclmulqdq xmm14,xmm15,xmm7,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm8,xmm1,0x96 + + jmp NEAR $L$_CALC_AAD_done_6 +$L$_AAD_blocks_2_6: + kmovq k1,[r12] + vmovdqu8 ymm11{k1}{z},[r10] + vpshufb ymm11,ymm11,ymm16 + vpxorq zmm11,zmm11,zmm14 + vmovdqu64 ymm15,YMMWORD[320+rcx] + vpclmulqdq ymm7,ymm11,ymm15,0x01 + vpclmulqdq ymm8,ymm11,ymm15,0x10 + vpclmulqdq ymm1,ymm11,ymm15,0x11 + vpclmulqdq ymm6,ymm11,ymm15,0x00 + + vpxorq zmm7,zmm7,zmm8 + vpsrldq zmm12,zmm7,8 + vpslldq zmm13,zmm7,8 + vpxorq zmm1,zmm1,zmm12 + vpxorq zmm6,zmm6,zmm13 + vextracti64x4 ymm12,zmm1,1 + vpxorq ymm1,ymm1,ymm12 + vextracti32x4 xmm12,ymm1,1 + vpxorq xmm1,xmm1,xmm12 + vextracti64x4 ymm13,zmm6,1 + vpxorq ymm6,ymm6,ymm13 + vextracti32x4 xmm13,ymm6,1 + vpxorq xmm6,xmm6,xmm13 + vmovdqa64 xmm15,XMMWORD[POLY2] + + + vpclmulqdq xmm7,xmm15,xmm6,0x01 + vpslldq xmm7,xmm7,8 + vpxorq xmm7,xmm6,xmm7 + + + vpclmulqdq xmm8,xmm15,xmm7,0x00 + vpsrldq xmm8,xmm8,4 + vpclmulqdq xmm14,xmm15,xmm7,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm8,xmm1,0x96 + + jmp NEAR $L$_CALC_AAD_done_6 +$L$_AAD_blocks_1_6: + kmovq k1,[r12] + vmovdqu8 xmm11{k1}{z},[r10] + vpshufb xmm11,xmm11,xmm16 + vpxorq zmm11,zmm11,zmm14 + vmovdqu64 xmm15,XMMWORD[336+rcx] + vpclmulqdq xmm7,xmm11,xmm15,0x01 + vpclmulqdq xmm8,xmm11,xmm15,0x10 + vpclmulqdq xmm1,xmm11,xmm15,0x11 + vpclmulqdq xmm6,xmm11,xmm15,0x00 + + vpxorq zmm7,zmm7,zmm8 + vpsrldq zmm12,zmm7,8 + vpslldq zmm13,zmm7,8 + vpxorq zmm1,zmm1,zmm12 + vpxorq zmm6,zmm6,zmm13 + vextracti64x4 ymm12,zmm1,1 + vpxorq ymm1,ymm1,ymm12 + vextracti32x4 xmm12,ymm1,1 + vpxorq xmm1,xmm1,xmm12 + vextracti64x4 ymm13,zmm6,1 + vpxorq ymm6,ymm6,ymm13 + vextracti32x4 xmm13,ymm6,1 + vpxorq xmm6,xmm6,xmm13 + vmovdqa64 xmm15,XMMWORD[POLY2] + + + vpclmulqdq xmm7,xmm15,xmm6,0x01 + vpslldq xmm7,xmm7,8 + vpxorq xmm7,xmm6,xmm7 + + + vpclmulqdq xmm8,xmm15,xmm7,0x00 + vpsrldq xmm8,xmm8,4 + vpclmulqdq xmm14,xmm15,xmm7,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm8,xmm1,0x96 + +$L$_CALC_AAD_done_6: + vmovdqu64 XMMWORD[64+rcx],xmm14 + cmp r8,256 + jbe NEAR $L$skip_hkeys_cleanup_9 + vpxor xmm0,xmm0,xmm0 + vmovdqa64 ZMMWORD[rsp],zmm0 + vmovdqa64 ZMMWORD[64+rsp],zmm0 + vmovdqa64 ZMMWORD[128+rsp],zmm0 + vmovdqa64 ZMMWORD[192+rsp],zmm0 + vmovdqa64 ZMMWORD[256+rsp],zmm0 + vmovdqa64 ZMMWORD[320+rsp],zmm0 + vmovdqa64 ZMMWORD[384+rsp],zmm0 + vmovdqa64 ZMMWORD[448+rsp],zmm0 + vmovdqa64 ZMMWORD[512+rsp],zmm0 + vmovdqa64 ZMMWORD[576+rsp],zmm0 + vmovdqa64 ZMMWORD[640+rsp],zmm0 + vmovdqa64 ZMMWORD[704+rsp],zmm0 +$L$skip_hkeys_cleanup_9: + vzeroupper + vmovdqu xmm15,XMMWORD[((-16))+rbp] + vmovdqu xmm14,XMMWORD[((-32))+rbp] + vmovdqu xmm13,XMMWORD[((-48))+rbp] + vmovdqu xmm12,XMMWORD[((-64))+rbp] + vmovdqu xmm11,XMMWORD[((-80))+rbp] + vmovdqu xmm10,XMMWORD[((-96))+rbp] + vmovdqu xmm9,XMMWORD[((-112))+rbp] + vmovdqu xmm8,XMMWORD[((-128))+rbp] + vmovdqu xmm7,XMMWORD[((-144))+rbp] + vmovdqu xmm6,XMMWORD[((-160))+rbp] + lea rsp,[8+rbp] + pop rsi + + pop rdi + + pop r15 + + pop r14 + + pop r13 + + pop r12 + + pop rbp + + pop rbx + +$L$exit_update_aad: + DB 0F3h,0C3h ;repret +$L$ghash_seh_end: + + +global ossl_aes_gcm_encrypt_avx512 + +ALIGN 32 +ossl_aes_gcm_encrypt_avx512: + +$L$encrypt_seh_begin: +DB 243,15,30,250 + push rbx + +$L$encrypt_seh_push_rbx: + push rbp + +$L$encrypt_seh_push_rbp: + push r12 + +$L$encrypt_seh_push_r12: + push r13 + +$L$encrypt_seh_push_r13: + push r14 + +$L$encrypt_seh_push_r14: + push r15 + +$L$encrypt_seh_push_r15: + push rdi +$L$encrypt_seh_push_rdi: + push rsi +$L$encrypt_seh_push_rsi: + + sub rsp,168 +$L$encrypt_seh_allocstack_xmm: + + + + + + + + + + + lea rbp,[160+rsp] + +$L$encrypt_seh_setfp: + vmovdqu XMMWORD[rsp],xmm6 +$L$encrypt_seh_save_xmm6: + vmovdqu XMMWORD[16+rsp],xmm7 +$L$encrypt_seh_save_xmm7: + vmovdqu XMMWORD[32+rsp],xmm8 +$L$encrypt_seh_save_xmm8: + vmovdqu XMMWORD[48+rsp],xmm9 +$L$encrypt_seh_save_xmm9: + vmovdqu XMMWORD[64+rsp],xmm10 +$L$encrypt_seh_save_xmm10: + vmovdqu XMMWORD[80+rsp],xmm11 +$L$encrypt_seh_save_xmm11: + vmovdqu XMMWORD[96+rsp],xmm12 +$L$encrypt_seh_save_xmm12: + vmovdqu XMMWORD[112+rsp],xmm13 +$L$encrypt_seh_save_xmm13: + vmovdqu XMMWORD[128+rsp],xmm14 +$L$encrypt_seh_save_xmm14: + vmovdqu XMMWORD[144+rsp],xmm15 +$L$encrypt_seh_save_xmm15: + +$L$encrypt_seh_prolog_end: + sub rsp,1584 + and rsp,(-64) + + + mov eax,DWORD[240+rcx] + cmp eax,9 + je NEAR $L$aes_gcm_encrypt_128_avx512 + cmp eax,11 + je NEAR $L$aes_gcm_encrypt_192_avx512 + cmp eax,13 + je NEAR $L$aes_gcm_encrypt_256_avx512 + xor eax,eax + jmp NEAR $L$exit_gcm_encrypt +ALIGN 32 +$L$aes_gcm_encrypt_128_avx512: + cmp QWORD[112+rbp],0 + je NEAR $L$_enc_dec_done_10 + xor r14,r14 + vmovdqu64 xmm14,XMMWORD[64+rdx] + + mov r11,QWORD[r8] + or r11,r11 + je NEAR $L$_partial_block_done_11 + mov r10d,16 + lea r12,[byte_len_to_mask_table] + cmp QWORD[112+rbp],r10 + cmovc r10,QWORD[112+rbp] + add r12,r10 + add r12,r10 + kmovw k1,[r12] + vmovdqu8 xmm0{k1}{z},[r9] + + vmovdqu64 xmm3,XMMWORD[16+rdx] + vmovdqu64 xmm4,XMMWORD[336+rdx] + + + + lea r12,[SHIFT_MASK] + add r12,r11 + vmovdqu64 xmm5,XMMWORD[r12] + vpshufb xmm3,xmm3,xmm5 + vpxorq xmm3,xmm3,xmm0 + + + mov r13,QWORD[112+rbp] + add r13,r11 + sub r13,16 + jge NEAR $L$_no_extra_mask_11 + sub r12,r13 +$L$_no_extra_mask_11: + + + + vmovdqu64 xmm0,XMMWORD[16+r12] + vpand xmm3,xmm3,xmm0 + vpshufb xmm3,xmm3,XMMWORD[SHUF_MASK] + vpshufb xmm3,xmm3,xmm5 + vpxorq xmm14,xmm14,xmm3 + cmp r13,0 + jl NEAR $L$_partial_incomplete_11 + + vpclmulqdq xmm7,xmm14,xmm4,0x11 + vpclmulqdq xmm10,xmm14,xmm4,0x00 + vpclmulqdq xmm11,xmm14,xmm4,0x01 + vpclmulqdq xmm14,xmm14,xmm4,0x10 + vpxorq xmm14,xmm14,xmm11 + + vpsrldq xmm11,xmm14,8 + vpslldq xmm14,xmm14,8 + vpxorq xmm7,xmm7,xmm11 + vpxorq xmm14,xmm14,xmm10 + + + + vmovdqu64 xmm11,XMMWORD[POLY2] + + vpclmulqdq xmm10,xmm11,xmm14,0x01 + vpslldq xmm10,xmm10,8 + vpxorq xmm14,xmm14,xmm10 + + + + vpclmulqdq xmm10,xmm11,xmm14,0x00 + vpsrldq xmm10,xmm10,4 + vpclmulqdq xmm14,xmm11,xmm14,0x10 + vpslldq xmm14,xmm14,4 + + vpternlogq xmm14,xmm7,xmm10,0x96 + + mov QWORD[r8],0 + + mov r12,r11 + mov r11,16 + sub r11,r12 + jmp NEAR $L$_enc_dec_done_11 + +$L$_partial_incomplete_11: + mov r12,QWORD[112+rbp] + add QWORD[r8],r12 + mov r11,QWORD[112+rbp] + +$L$_enc_dec_done_11: + + + lea r12,[byte_len_to_mask_table] + kmovw k1,[r11*2+r12] + vmovdqu64 XMMWORD[64+rdx],xmm14 + + vpshufb xmm3,xmm3,XMMWORD[SHUF_MASK] + vpshufb xmm3,xmm3,xmm5 + mov r12,QWORD[120+rbp] + vmovdqu8 XMMWORD[r12]{k1},xmm3 +$L$_partial_block_done_11: + vmovdqu64 xmm2,XMMWORD[rdx] + mov r13,QWORD[112+rbp] + sub r13,r11 + je NEAR $L$_enc_dec_done_10 + cmp r13,256 + jbe NEAR $L$_message_below_equal_16_blocks_10 + + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vmovdqa64 zmm27,ZMMWORD[ddq_addbe_4444] + vmovdqa64 zmm28,ZMMWORD[ddq_addbe_1234] + + + + + + + vmovd r15d,xmm2 + and r15d,255 + + vshufi64x2 zmm2,zmm2,zmm2,0 + vpshufb zmm2,zmm2,zmm29 + + + + cmp r15b,240 + jae NEAR $L$_next_16_overflow_12 + vpaddd zmm7,zmm2,zmm28 + vpaddd zmm10,zmm7,zmm27 + vpaddd zmm11,zmm10,zmm27 + vpaddd zmm12,zmm11,zmm27 + jmp NEAR $L$_next_16_ok_12 +$L$_next_16_overflow_12: + vpshufb zmm2,zmm2,zmm29 + vmovdqa64 zmm12,ZMMWORD[ddq_add_4444] + vpaddd zmm7,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm10,zmm7,zmm12 + vpaddd zmm11,zmm10,zmm12 + vpaddd zmm12,zmm11,zmm12 + vpshufb zmm7,zmm7,zmm29 + vpshufb zmm10,zmm10,zmm29 + vpshufb zmm11,zmm11,zmm29 + vpshufb zmm12,zmm12,zmm29 +$L$_next_16_ok_12: + vshufi64x2 zmm2,zmm12,zmm12,255 + add r15b,16 + + vmovdqu8 zmm0,ZMMWORD[r11*1+r9] + vmovdqu8 zmm3,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm4,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm5,ZMMWORD[192+r11*1+r9] + + + vbroadcastf64x2 zmm6,ZMMWORD[rcx] + vpxorq zmm7,zmm7,zmm6 + vpxorq zmm10,zmm10,zmm6 + vpxorq zmm11,zmm11,zmm6 + vpxorq zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[16+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[32+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[48+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[64+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[80+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[96+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[112+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[128+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[144+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[160+rcx] + vaesenclast zmm7,zmm7,zmm6 + vaesenclast zmm10,zmm10,zmm6 + vaesenclast zmm11,zmm11,zmm6 + vaesenclast zmm12,zmm12,zmm6 + + + vpxorq zmm7,zmm7,zmm0 + vpxorq zmm10,zmm10,zmm3 + vpxorq zmm11,zmm11,zmm4 + vpxorq zmm12,zmm12,zmm5 + + + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm7 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm10 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm11 + vmovdqu8 ZMMWORD[192+r11*1+r10],zmm12 + + vpshufb zmm7,zmm7,zmm29 + vpshufb zmm10,zmm10,zmm29 + vpshufb zmm11,zmm11,zmm29 + vpshufb zmm12,zmm12,zmm29 + vmovdqa64 ZMMWORD[768+rsp],zmm7 + vmovdqa64 ZMMWORD[832+rsp],zmm10 + vmovdqa64 ZMMWORD[896+rsp],zmm11 + vmovdqa64 ZMMWORD[960+rsp],zmm12 + test r14,r14 + jnz NEAR $L$_skip_hkeys_precomputation_13 + + vmovdqu64 zmm0,ZMMWORD[288+rdx] + vmovdqu64 ZMMWORD[704+rsp],zmm0 + + vmovdqu64 zmm3,ZMMWORD[224+rdx] + vmovdqu64 ZMMWORD[640+rsp],zmm3 + + + vshufi64x2 zmm3,zmm3,zmm3,0x00 + + vmovdqu64 zmm4,ZMMWORD[160+rdx] + vmovdqu64 ZMMWORD[576+rsp],zmm4 + + vmovdqu64 zmm5,ZMMWORD[96+rdx] + vmovdqu64 ZMMWORD[512+rsp],zmm5 +$L$_skip_hkeys_precomputation_13: + cmp r13,512 + jb NEAR $L$_message_below_32_blocks_10 + + + + cmp r15b,240 + jae NEAR $L$_next_16_overflow_14 + vpaddd zmm7,zmm2,zmm28 + vpaddd zmm10,zmm7,zmm27 + vpaddd zmm11,zmm10,zmm27 + vpaddd zmm12,zmm11,zmm27 + jmp NEAR $L$_next_16_ok_14 +$L$_next_16_overflow_14: + vpshufb zmm2,zmm2,zmm29 + vmovdqa64 zmm12,ZMMWORD[ddq_add_4444] + vpaddd zmm7,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm10,zmm7,zmm12 + vpaddd zmm11,zmm10,zmm12 + vpaddd zmm12,zmm11,zmm12 + vpshufb zmm7,zmm7,zmm29 + vpshufb zmm10,zmm10,zmm29 + vpshufb zmm11,zmm11,zmm29 + vpshufb zmm12,zmm12,zmm29 +$L$_next_16_ok_14: + vshufi64x2 zmm2,zmm12,zmm12,255 + add r15b,16 + + vmovdqu8 zmm0,ZMMWORD[256+r11*1+r9] + vmovdqu8 zmm3,ZMMWORD[320+r11*1+r9] + vmovdqu8 zmm4,ZMMWORD[384+r11*1+r9] + vmovdqu8 zmm5,ZMMWORD[448+r11*1+r9] + + + vbroadcastf64x2 zmm6,ZMMWORD[rcx] + vpxorq zmm7,zmm7,zmm6 + vpxorq zmm10,zmm10,zmm6 + vpxorq zmm11,zmm11,zmm6 + vpxorq zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[16+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[32+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[48+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[64+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[80+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[96+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[112+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[128+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[144+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[160+rcx] + vaesenclast zmm7,zmm7,zmm6 + vaesenclast zmm10,zmm10,zmm6 + vaesenclast zmm11,zmm11,zmm6 + vaesenclast zmm12,zmm12,zmm6 + + + vpxorq zmm7,zmm7,zmm0 + vpxorq zmm10,zmm10,zmm3 + vpxorq zmm11,zmm11,zmm4 + vpxorq zmm12,zmm12,zmm5 + + + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[256+r11*1+r10],zmm7 + vmovdqu8 ZMMWORD[320+r11*1+r10],zmm10 + vmovdqu8 ZMMWORD[384+r11*1+r10],zmm11 + vmovdqu8 ZMMWORD[448+r11*1+r10],zmm12 + + vpshufb zmm7,zmm7,zmm29 + vpshufb zmm10,zmm10,zmm29 + vpshufb zmm11,zmm11,zmm29 + vpshufb zmm12,zmm12,zmm29 + vmovdqa64 ZMMWORD[1024+rsp],zmm7 + vmovdqa64 ZMMWORD[1088+rsp],zmm10 + vmovdqa64 ZMMWORD[1152+rsp],zmm11 + vmovdqa64 ZMMWORD[1216+rsp],zmm12 + test r14,r14 + jnz NEAR $L$_skip_hkeys_precomputation_15 + vmovdqu64 zmm3,ZMMWORD[640+rsp] + + + vshufi64x2 zmm3,zmm3,zmm3,0x00 + + vmovdqu64 zmm4,ZMMWORD[576+rsp] + vmovdqu64 zmm5,ZMMWORD[512+rsp] + + vpclmulqdq zmm6,zmm4,zmm3,0x11 + vpclmulqdq zmm7,zmm4,zmm3,0x00 + vpclmulqdq zmm10,zmm4,zmm3,0x01 + vpclmulqdq zmm4,zmm4,zmm3,0x10 + vpxorq zmm4,zmm4,zmm10 + + vpsrldq zmm10,zmm4,8 + vpslldq zmm4,zmm4,8 + vpxorq zmm6,zmm6,zmm10 + vpxorq zmm4,zmm4,zmm7 + + + + vmovdqu64 zmm10,ZMMWORD[POLY2] + + vpclmulqdq zmm7,zmm10,zmm4,0x01 + vpslldq zmm7,zmm7,8 + vpxorq zmm4,zmm4,zmm7 + + + + vpclmulqdq zmm7,zmm10,zmm4,0x00 + vpsrldq zmm7,zmm7,4 + vpclmulqdq zmm4,zmm10,zmm4,0x10 + vpslldq zmm4,zmm4,4 + + vpternlogq zmm4,zmm6,zmm7,0x96 + + vmovdqu64 ZMMWORD[448+rsp],zmm4 + + vpclmulqdq zmm6,zmm5,zmm3,0x11 + vpclmulqdq zmm7,zmm5,zmm3,0x00 + vpclmulqdq zmm10,zmm5,zmm3,0x01 + vpclmulqdq zmm5,zmm5,zmm3,0x10 + vpxorq zmm5,zmm5,zmm10 + + vpsrldq zmm10,zmm5,8 + vpslldq zmm5,zmm5,8 + vpxorq zmm6,zmm6,zmm10 + vpxorq zmm5,zmm5,zmm7 + + + + vmovdqu64 zmm10,ZMMWORD[POLY2] + + vpclmulqdq zmm7,zmm10,zmm5,0x01 + vpslldq zmm7,zmm7,8 + vpxorq zmm5,zmm5,zmm7 + + + + vpclmulqdq zmm7,zmm10,zmm5,0x00 + vpsrldq zmm7,zmm7,4 + vpclmulqdq zmm5,zmm10,zmm5,0x10 + vpslldq zmm5,zmm5,4 + + vpternlogq zmm5,zmm6,zmm7,0x96 + + vmovdqu64 ZMMWORD[384+rsp],zmm5 + + vpclmulqdq zmm6,zmm4,zmm3,0x11 + vpclmulqdq zmm7,zmm4,zmm3,0x00 + vpclmulqdq zmm10,zmm4,zmm3,0x01 + vpclmulqdq zmm4,zmm4,zmm3,0x10 + vpxorq zmm4,zmm4,zmm10 + + vpsrldq zmm10,zmm4,8 + vpslldq zmm4,zmm4,8 + vpxorq zmm6,zmm6,zmm10 + vpxorq zmm4,zmm4,zmm7 + + + + vmovdqu64 zmm10,ZMMWORD[POLY2] + + vpclmulqdq zmm7,zmm10,zmm4,0x01 + vpslldq zmm7,zmm7,8 + vpxorq zmm4,zmm4,zmm7 + + + + vpclmulqdq zmm7,zmm10,zmm4,0x00 + vpsrldq zmm7,zmm7,4 + vpclmulqdq zmm4,zmm10,zmm4,0x10 + vpslldq zmm4,zmm4,4 + + vpternlogq zmm4,zmm6,zmm7,0x96 + + vmovdqu64 ZMMWORD[320+rsp],zmm4 + + vpclmulqdq zmm6,zmm5,zmm3,0x11 + vpclmulqdq zmm7,zmm5,zmm3,0x00 + vpclmulqdq zmm10,zmm5,zmm3,0x01 + vpclmulqdq zmm5,zmm5,zmm3,0x10 + vpxorq zmm5,zmm5,zmm10 + + vpsrldq zmm10,zmm5,8 + vpslldq zmm5,zmm5,8 + vpxorq zmm6,zmm6,zmm10 + vpxorq zmm5,zmm5,zmm7 + + + + vmovdqu64 zmm10,ZMMWORD[POLY2] + + vpclmulqdq zmm7,zmm10,zmm5,0x01 + vpslldq zmm7,zmm7,8 + vpxorq zmm5,zmm5,zmm7 + + + + vpclmulqdq zmm7,zmm10,zmm5,0x00 + vpsrldq zmm7,zmm7,4 + vpclmulqdq zmm5,zmm10,zmm5,0x10 + vpslldq zmm5,zmm5,4 + + vpternlogq zmm5,zmm6,zmm7,0x96 + + vmovdqu64 ZMMWORD[256+rsp],zmm5 + + vpclmulqdq zmm6,zmm4,zmm3,0x11 + vpclmulqdq zmm7,zmm4,zmm3,0x00 + vpclmulqdq zmm10,zmm4,zmm3,0x01 + vpclmulqdq zmm4,zmm4,zmm3,0x10 + vpxorq zmm4,zmm4,zmm10 + + vpsrldq zmm10,zmm4,8 + vpslldq zmm4,zmm4,8 + vpxorq zmm6,zmm6,zmm10 + vpxorq zmm4,zmm4,zmm7 + + + + vmovdqu64 zmm10,ZMMWORD[POLY2] + + vpclmulqdq zmm7,zmm10,zmm4,0x01 + vpslldq zmm7,zmm7,8 + vpxorq zmm4,zmm4,zmm7 + + + + vpclmulqdq zmm7,zmm10,zmm4,0x00 + vpsrldq zmm7,zmm7,4 + vpclmulqdq zmm4,zmm10,zmm4,0x10 + vpslldq zmm4,zmm4,4 + + vpternlogq zmm4,zmm6,zmm7,0x96 + + vmovdqu64 ZMMWORD[192+rsp],zmm4 + + vpclmulqdq zmm6,zmm5,zmm3,0x11 + vpclmulqdq zmm7,zmm5,zmm3,0x00 + vpclmulqdq zmm10,zmm5,zmm3,0x01 + vpclmulqdq zmm5,zmm5,zmm3,0x10 + vpxorq zmm5,zmm5,zmm10 + + vpsrldq zmm10,zmm5,8 + vpslldq zmm5,zmm5,8 + vpxorq zmm6,zmm6,zmm10 + vpxorq zmm5,zmm5,zmm7 + + + + vmovdqu64 zmm10,ZMMWORD[POLY2] + + vpclmulqdq zmm7,zmm10,zmm5,0x01 + vpslldq zmm7,zmm7,8 + vpxorq zmm5,zmm5,zmm7 + + + + vpclmulqdq zmm7,zmm10,zmm5,0x00 + vpsrldq zmm7,zmm7,4 + vpclmulqdq zmm5,zmm10,zmm5,0x10 + vpslldq zmm5,zmm5,4 + + vpternlogq zmm5,zmm6,zmm7,0x96 + + vmovdqu64 ZMMWORD[128+rsp],zmm5 + + vpclmulqdq zmm6,zmm4,zmm3,0x11 + vpclmulqdq zmm7,zmm4,zmm3,0x00 + vpclmulqdq zmm10,zmm4,zmm3,0x01 + vpclmulqdq zmm4,zmm4,zmm3,0x10 + vpxorq zmm4,zmm4,zmm10 + + vpsrldq zmm10,zmm4,8 + vpslldq zmm4,zmm4,8 + vpxorq zmm6,zmm6,zmm10 + vpxorq zmm4,zmm4,zmm7 + + + + vmovdqu64 zmm10,ZMMWORD[POLY2] + + vpclmulqdq zmm7,zmm10,zmm4,0x01 + vpslldq zmm7,zmm7,8 + vpxorq zmm4,zmm4,zmm7 + + + + vpclmulqdq zmm7,zmm10,zmm4,0x00 + vpsrldq zmm7,zmm7,4 + vpclmulqdq zmm4,zmm10,zmm4,0x10 + vpslldq zmm4,zmm4,4 + + vpternlogq zmm4,zmm6,zmm7,0x96 + + vmovdqu64 ZMMWORD[64+rsp],zmm4 + + vpclmulqdq zmm6,zmm5,zmm3,0x11 + vpclmulqdq zmm7,zmm5,zmm3,0x00 + vpclmulqdq zmm10,zmm5,zmm3,0x01 + vpclmulqdq zmm5,zmm5,zmm3,0x10 + vpxorq zmm5,zmm5,zmm10 + + vpsrldq zmm10,zmm5,8 + vpslldq zmm5,zmm5,8 + vpxorq zmm6,zmm6,zmm10 + vpxorq zmm5,zmm5,zmm7 + + + + vmovdqu64 zmm10,ZMMWORD[POLY2] + + vpclmulqdq zmm7,zmm10,zmm5,0x01 + vpslldq zmm7,zmm7,8 + vpxorq zmm5,zmm5,zmm7 + + + + vpclmulqdq zmm7,zmm10,zmm5,0x00 + vpsrldq zmm7,zmm7,4 + vpclmulqdq zmm5,zmm10,zmm5,0x10 + vpslldq zmm5,zmm5,4 + + vpternlogq zmm5,zmm6,zmm7,0x96 + + vmovdqu64 ZMMWORD[rsp],zmm5 +$L$_skip_hkeys_precomputation_15: + mov r14,1 + add r11,512 + sub r13,512 + + cmp r13,768 + jb NEAR $L$_no_more_big_nblocks_10 +$L$_encrypt_big_nblocks_10: + cmp r15b,240 + jae NEAR $L$_16_blocks_overflow_16 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_16 +$L$_16_blocks_overflow_16: + vpshufb zmm2,zmm2,zmm29 + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_16: + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rsp] + + + + + vshufi64x2 zmm2,zmm5,zmm5,255 + add r15b,16 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + + + + + + + + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + + vpclmulqdq zmm6,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + + vpternlogq zmm6,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + + + + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm21,ZMMWORD[192+r11*1+r9] + + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm26,zmm10,zmm15 + vpxorq zmm24,zmm6,zmm12 + vpxorq zmm25,zmm7,zmm13 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + + + + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + + + + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[192+r11*1+r10],zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 + vmovdqa64 ZMMWORD[1280+rsp],zmm0 + vmovdqa64 ZMMWORD[1344+rsp],zmm3 + vmovdqa64 ZMMWORD[1408+rsp],zmm4 + vmovdqa64 ZMMWORD[1472+rsp],zmm5 + cmp r15b,240 + jae NEAR $L$_16_blocks_overflow_17 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_17 +$L$_16_blocks_overflow_17: + vpshufb zmm2,zmm2,zmm29 + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_17: + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[256+rsp] + + + + + vshufi64x2 zmm2,zmm5,zmm5,255 + add r15b,16 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[320+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + + + + + + + + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + + vpclmulqdq zmm6,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[384+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[448+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + + vpternlogq zmm6,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + + + + vmovdqu8 zmm17,ZMMWORD[256+r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[320+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[384+r11*1+r9] + vmovdqu8 zmm21,ZMMWORD[448+r11*1+r9] + + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vpternlogq zmm24,zmm6,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + + + + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + + + + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[256+r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[320+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[384+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[448+r11*1+r10],zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 + vmovdqa64 ZMMWORD[768+rsp],zmm0 + vmovdqa64 ZMMWORD[832+rsp],zmm3 + vmovdqa64 ZMMWORD[896+rsp],zmm4 + vmovdqa64 ZMMWORD[960+rsp],zmm5 + cmp r15b,240 + jae NEAR $L$_16_blocks_overflow_18 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_18 +$L$_16_blocks_overflow_18: + vpshufb zmm2,zmm2,zmm29 + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_18: + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + + + + + vshufi64x2 zmm2,zmm5,zmm5,255 + add r15b,16 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + + + + + + + + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + + vpclmulqdq zmm6,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + + vpternlogq zmm6,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + + + + vmovdqu8 zmm17,ZMMWORD[512+r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[576+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[640+r11*1+r9] + vmovdqu8 zmm21,ZMMWORD[704+r11*1+r9] + + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + + + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpternlogq zmm6,zmm12,zmm15,0x96 + vpxorq zmm6,zmm6,zmm24 + vpternlogq zmm7,zmm13,zmm10,0x96 + vpxorq zmm7,zmm7,zmm25 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vextracti64x4 ymm12,zmm6,1 + vpxorq ymm6,ymm6,ymm12 + vextracti32x4 xmm12,ymm6,1 + vpxorq xmm6,xmm6,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm6,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + + + + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + + + + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[512+r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[576+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[640+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[704+r11*1+r10],zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 + vmovdqa64 ZMMWORD[1024+rsp],zmm0 + vmovdqa64 ZMMWORD[1088+rsp],zmm3 + vmovdqa64 ZMMWORD[1152+rsp],zmm4 + vmovdqa64 ZMMWORD[1216+rsp],zmm5 + vmovdqa64 zmm14,zmm6 + + add r11,768 + sub r13,768 + cmp r13,768 + jae NEAR $L$_encrypt_big_nblocks_10 + +$L$_no_more_big_nblocks_10: + + cmp r13,512 + jae NEAR $L$_encrypt_32_blocks_10 + + cmp r13,256 + jae NEAR $L$_encrypt_16_blocks_10 +$L$_encrypt_0_blocks_ghash_32_10: + mov r10d,r13d + and r10d,~15 + mov ebx,256 + sub ebx,r10d + vmovdqa64 zmm13,ZMMWORD[768+rsp] + vpxorq zmm13,zmm13,zmm14 + vmovdqu64 zmm12,ZMMWORD[rbx*1+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[832+rsp] + vmovdqu64 zmm12,ZMMWORD[64+rbx*1+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + vpxorq zmm26,zmm4,zmm10 + vpxorq zmm24,zmm0,zmm6 + vpxorq zmm25,zmm3,zmm7 + vpternlogq zmm26,zmm5,zmm11,0x96 + vmovdqa64 zmm13,ZMMWORD[896+rsp] + vmovdqu64 zmm12,ZMMWORD[128+rbx*1+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[960+rsp] + vmovdqu64 zmm12,ZMMWORD[192+rbx*1+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + + vpternlogq zmm26,zmm4,zmm10,0x96 + vpternlogq zmm24,zmm0,zmm6,0x96 + vpternlogq zmm25,zmm3,zmm7,0x96 + vpternlogq zmm26,zmm5,zmm11,0x96 + add ebx,256 + mov r10d,r13d + add r10d,15 + shr r10d,4 + je NEAR $L$_last_num_blocks_is_0_19 + + cmp r10d,8 + je NEAR $L$_last_num_blocks_is_8_19 + jb NEAR $L$_last_num_blocks_is_7_1_19 + + + cmp r10d,12 + je NEAR $L$_last_num_blocks_is_12_19 + jb NEAR $L$_last_num_blocks_is_11_9_19 + + + cmp r10d,15 + je NEAR $L$_last_num_blocks_is_15_19 + ja NEAR $L$_last_num_blocks_is_16_19 + cmp r10d,14 + je NEAR $L$_last_num_blocks_is_14_19 + jmp NEAR $L$_last_num_blocks_is_13_19 + +$L$_last_num_blocks_is_11_9_19: + + cmp r10d,10 + je NEAR $L$_last_num_blocks_is_10_19 + ja NEAR $L$_last_num_blocks_is_11_19 + jmp NEAR $L$_last_num_blocks_is_9_19 + +$L$_last_num_blocks_is_7_1_19: + cmp r10d,4 + je NEAR $L$_last_num_blocks_is_4_19 + jb NEAR $L$_last_num_blocks_is_3_1_19 + + cmp r10d,6 + ja NEAR $L$_last_num_blocks_is_7_19 + je NEAR $L$_last_num_blocks_is_6_19 + jmp NEAR $L$_last_num_blocks_is_5_19 + +$L$_last_num_blocks_is_3_1_19: + + cmp r10d,2 + ja NEAR $L$_last_num_blocks_is_3_19 + je NEAR $L$_last_num_blocks_is_2_19 +$L$_last_num_blocks_is_1_19: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,255 + jae NEAR $L$_16_blocks_overflow_20 + vpaddd xmm0,xmm2,xmm28 + jmp NEAR $L$_16_blocks_ok_20 + +$L$_16_blocks_overflow_20: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb xmm0,xmm0,xmm29 +$L$_16_blocks_ok_20: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm0,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 xmm17{k1}{z},[r11*1+r9] + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc xmm0,xmm0,xmm31 + vaesenclast xmm0,xmm0,xmm30 + vpxorq xmm0,xmm0,xmm17 + vextracti32x4 xmm11,zmm0,0 + mov r10,QWORD[120+rbp] + vmovdqu8 XMMWORD[r11*1+r10]{k1},xmm0 + vmovdqu8 zmm0{k1}{z},zmm0 + vpshufb xmm17,xmm0,xmm29 + vextracti32x4 xmm7,zmm17,0 + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_21 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm17,xmm1,0x01 + vpclmulqdq xmm5,xmm17,xmm1,0x10 + vpclmulqdq xmm0,xmm17,xmm1,0x11 + vpclmulqdq xmm3,xmm17,xmm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_21 +$L$_small_initial_partial_block_21: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + + + vpsrldq zmm0,zmm26,8 + vpslldq zmm3,zmm26,8 + vpxorq zmm24,zmm24,zmm0 + vpxorq zmm25,zmm25,zmm3 + vextracti64x4 ymm0,zmm24,1 + vpxorq ymm24,ymm24,ymm0 + vextracti32x4 xmm0,ymm24,1 + vpxorq xmm24,xmm24,xmm0 + vextracti64x4 ymm3,zmm25,1 + vpxorq ymm25,ymm25,ymm3 + vextracti32x4 xmm3,ymm25,1 + vpxorq xmm25,xmm25,xmm3 + vmovdqa64 xmm0,XMMWORD[POLY2] + + + vpclmulqdq xmm3,xmm0,xmm25,0x01 + vpslldq xmm3,xmm3,8 + vpxorq xmm3,xmm25,xmm3 + + + vpclmulqdq xmm4,xmm0,xmm3,0x00 + vpsrldq xmm4,xmm4,4 + vpclmulqdq xmm14,xmm0,xmm3,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm4,xmm24,0x96 + + + + + + + + + + + + + vpxorq xmm14,xmm14,xmm7 + + jmp NEAR $L$_after_reduction_21 +$L$_small_initial_compute_done_21: +$L$_after_reduction_21: + jmp NEAR $L$_last_blocks_done_19 +$L$_last_num_blocks_is_2_19: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,254 + jae NEAR $L$_16_blocks_overflow_22 + vpaddd ymm0,ymm2,ymm28 + jmp NEAR $L$_16_blocks_ok_22 + +$L$_16_blocks_overflow_22: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb ymm0,ymm0,ymm29 +$L$_16_blocks_ok_22: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm0,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 ymm17{k1}{z},[r11*1+r9] + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc ymm0,ymm0,ymm31 + vaesenclast ymm0,ymm0,ymm30 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm11,zmm0,1 + mov r10,QWORD[120+rbp] + vmovdqu8 YMMWORD[r11*1+r10]{k1},ymm0 + vmovdqu8 zmm0{k1}{z},zmm0 + vpshufb ymm17,ymm0,ymm29 + vextracti32x4 xmm7,zmm17,1 + sub r13,16 * (2 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_23 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm17,ymm1,0x01 + vpclmulqdq ymm5,ymm17,ymm1,0x10 + vpclmulqdq ymm0,ymm17,ymm1,0x11 + vpclmulqdq ymm3,ymm17,ymm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_23 +$L$_small_initial_partial_block_23: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm17,xmm1,0x01 + vpclmulqdq xmm5,xmm17,xmm1,0x10 + vpclmulqdq xmm0,xmm17,xmm1,0x11 + vpclmulqdq xmm3,xmm17,xmm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_23: + + or r13,r13 + je NEAR $L$_after_reduction_23 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_23: + jmp NEAR $L$_last_blocks_done_19 +$L$_last_num_blocks_is_3_19: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,253 + jae NEAR $L$_16_blocks_overflow_24 + vpaddd zmm0,zmm2,zmm28 + jmp NEAR $L$_16_blocks_ok_24 + +$L$_16_blocks_overflow_24: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb zmm0,zmm0,zmm29 +$L$_16_blocks_ok_24: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm0,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17{k1}{z},[r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vpxorq zmm0,zmm0,zmm17 + vextracti32x4 xmm11,zmm0,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10]{k1},zmm0 + vmovdqu8 zmm0{k1}{z},zmm0 + vpshufb zmm17,zmm0,zmm29 + vextracti32x4 xmm7,zmm17,2 + sub r13,16 * (3 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_25 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_25 +$L$_small_initial_partial_block_25: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm17,ymm1,0x01 + vpclmulqdq ymm5,ymm17,ymm1,0x10 + vpclmulqdq ymm0,ymm17,ymm1,0x11 + vpclmulqdq ymm3,ymm17,ymm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_25: + + or r13,r13 + je NEAR $L$_after_reduction_25 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_25: + jmp NEAR $L$_last_blocks_done_19 +$L$_last_num_blocks_is_4_19: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,252 + jae NEAR $L$_16_blocks_overflow_26 + vpaddd zmm0,zmm2,zmm28 + jmp NEAR $L$_16_blocks_ok_26 + +$L$_16_blocks_overflow_26: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb zmm0,zmm0,zmm29 +$L$_16_blocks_ok_26: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm0,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17{k1}{z},[r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vpxorq zmm0,zmm0,zmm17 + vextracti32x4 xmm11,zmm0,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10]{k1},zmm0 + vmovdqu8 zmm0{k1}{z},zmm0 + vpshufb zmm17,zmm0,zmm29 + vextracti32x4 xmm7,zmm17,3 + sub r13,16 * (4 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_27 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_27 +$L$_small_initial_partial_block_27: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_27: + + or r13,r13 + je NEAR $L$_after_reduction_27 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_27: + jmp NEAR $L$_last_blocks_done_19 +$L$_last_num_blocks_is_5_19: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,251 + jae NEAR $L$_16_blocks_overflow_28 + vpaddd zmm0,zmm2,zmm28 + vpaddd xmm3,xmm0,xmm27 + jmp NEAR $L$_16_blocks_ok_28 + +$L$_16_blocks_overflow_28: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb xmm3,xmm3,xmm29 +$L$_16_blocks_ok_28: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm3,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 xmm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast xmm3,xmm3,xmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq xmm3,xmm3,xmm19 + vextracti32x4 xmm11,zmm3,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 XMMWORD[64+r11*1+r10]{k1},xmm3 + vmovdqu8 zmm3{k1}{z},zmm3 + vpshufb zmm17,zmm0,zmm29 + vpshufb xmm19,xmm3,xmm29 + vextracti32x4 xmm7,zmm19,0 + sub r13,16 * (5 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_29 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm19,xmm1,0x01 + vpclmulqdq xmm5,xmm19,xmm1,0x10 + vpclmulqdq xmm0,xmm19,xmm1,0x11 + vpclmulqdq xmm3,xmm19,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_29 +$L$_small_initial_partial_block_29: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_29: + + or r13,r13 + je NEAR $L$_after_reduction_29 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_29: + jmp NEAR $L$_last_blocks_done_19 +$L$_last_num_blocks_is_6_19: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,250 + jae NEAR $L$_16_blocks_overflow_30 + vpaddd zmm0,zmm2,zmm28 + vpaddd ymm3,ymm0,ymm27 + jmp NEAR $L$_16_blocks_ok_30 + +$L$_16_blocks_overflow_30: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb ymm3,ymm3,ymm29 +$L$_16_blocks_ok_30: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm3,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 ymm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast ymm3,ymm3,ymm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm11,zmm3,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 YMMWORD[64+r11*1+r10]{k1},ymm3 + vmovdqu8 zmm3{k1}{z},zmm3 + vpshufb zmm17,zmm0,zmm29 + vpshufb ymm19,ymm3,ymm29 + vextracti32x4 xmm7,zmm19,1 + sub r13,16 * (6 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_31 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm19,ymm1,0x01 + vpclmulqdq ymm5,ymm19,ymm1,0x10 + vpclmulqdq ymm0,ymm19,ymm1,0x11 + vpclmulqdq ymm3,ymm19,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_31 +$L$_small_initial_partial_block_31: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm19,xmm1,0x01 + vpclmulqdq xmm5,xmm19,xmm1,0x10 + vpclmulqdq xmm0,xmm19,xmm1,0x11 + vpclmulqdq xmm3,xmm19,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_31: + + or r13,r13 + je NEAR $L$_after_reduction_31 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_31: + jmp NEAR $L$_last_blocks_done_19 +$L$_last_num_blocks_is_7_19: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,249 + jae NEAR $L$_16_blocks_overflow_32 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + jmp NEAR $L$_16_blocks_ok_32 + +$L$_16_blocks_overflow_32: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 +$L$_16_blocks_ok_32: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm3,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti32x4 xmm11,zmm3,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10]{k1},zmm3 + vmovdqu8 zmm3{k1}{z},zmm3 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vextracti32x4 xmm7,zmm19,2 + sub r13,16 * (7 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_33 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm19,zmm1,0x01 + vpclmulqdq zmm5,zmm19,zmm1,0x10 + vpclmulqdq zmm0,zmm19,zmm1,0x11 + vpclmulqdq zmm3,zmm19,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_33 +$L$_small_initial_partial_block_33: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm19,ymm1,0x01 + vpclmulqdq ymm5,ymm19,ymm1,0x10 + vpclmulqdq ymm0,ymm19,ymm1,0x11 + vpclmulqdq ymm3,ymm19,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_33: + + or r13,r13 + je NEAR $L$_after_reduction_33 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_33: + jmp NEAR $L$_last_blocks_done_19 +$L$_last_num_blocks_is_8_19: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,248 + jae NEAR $L$_16_blocks_overflow_34 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + jmp NEAR $L$_16_blocks_ok_34 + +$L$_16_blocks_overflow_34: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 +$L$_16_blocks_ok_34: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm3,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti32x4 xmm11,zmm3,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10]{k1},zmm3 + vmovdqu8 zmm3{k1}{z},zmm3 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vextracti32x4 xmm7,zmm19,3 + sub r13,16 * (8 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_35 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_35 +$L$_small_initial_partial_block_35: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm19,zmm1,0x01 + vpclmulqdq zmm5,zmm19,zmm1,0x10 + vpclmulqdq zmm0,zmm19,zmm1,0x11 + vpclmulqdq zmm3,zmm19,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_35: + + or r13,r13 + je NEAR $L$_after_reduction_35 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_35: + jmp NEAR $L$_last_blocks_done_19 +$L$_last_num_blocks_is_9_19: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,247 + jae NEAR $L$_16_blocks_overflow_36 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd xmm4,xmm3,xmm27 + jmp NEAR $L$_16_blocks_ok_36 + +$L$_16_blocks_overflow_36: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb xmm4,xmm4,xmm29 +$L$_16_blocks_ok_36: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm4,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 xmm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast xmm4,xmm4,xmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq xmm4,xmm4,xmm20 + vextracti32x4 xmm11,zmm4,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 XMMWORD[128+r11*1+r10]{k1},xmm4 + vmovdqu8 zmm4{k1}{z},zmm4 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb xmm20,xmm4,xmm29 + vextracti32x4 xmm7,zmm20,0 + sub r13,16 * (9 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_37 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm20,xmm1,0x01 + vpclmulqdq xmm5,xmm20,xmm1,0x10 + vpclmulqdq xmm0,xmm20,xmm1,0x11 + vpclmulqdq xmm3,xmm20,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_37 +$L$_small_initial_partial_block_37: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_37: + + or r13,r13 + je NEAR $L$_after_reduction_37 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_37: + jmp NEAR $L$_last_blocks_done_19 +$L$_last_num_blocks_is_10_19: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,246 + jae NEAR $L$_16_blocks_overflow_38 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd ymm4,ymm3,ymm27 + jmp NEAR $L$_16_blocks_ok_38 + +$L$_16_blocks_overflow_38: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb ymm4,ymm4,ymm29 +$L$_16_blocks_ok_38: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm4,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 ymm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast ymm4,ymm4,ymm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq ymm4,ymm4,ymm20 + vextracti32x4 xmm11,zmm4,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 YMMWORD[128+r11*1+r10]{k1},ymm4 + vmovdqu8 zmm4{k1}{z},zmm4 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb ymm20,ymm4,ymm29 + vextracti32x4 xmm7,zmm20,1 + sub r13,16 * (10 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_39 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm20,ymm1,0x01 + vpclmulqdq ymm5,ymm20,ymm1,0x10 + vpclmulqdq ymm0,ymm20,ymm1,0x11 + vpclmulqdq ymm3,ymm20,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_39 +$L$_small_initial_partial_block_39: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm20,xmm1,0x01 + vpclmulqdq xmm5,xmm20,xmm1,0x10 + vpclmulqdq xmm0,xmm20,xmm1,0x11 + vpclmulqdq xmm3,xmm20,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_39: + + or r13,r13 + je NEAR $L$_after_reduction_39 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_39: + jmp NEAR $L$_last_blocks_done_19 +$L$_last_num_blocks_is_11_19: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,245 + jae NEAR $L$_16_blocks_overflow_40 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + jmp NEAR $L$_16_blocks_ok_40 + +$L$_16_blocks_overflow_40: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 +$L$_16_blocks_ok_40: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm4,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vextracti32x4 xmm11,zmm4,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10]{k1},zmm4 + vmovdqu8 zmm4{k1}{z},zmm4 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb zmm20,zmm4,zmm29 + vextracti32x4 xmm7,zmm20,2 + sub r13,16 * (11 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_41 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm20,zmm1,0x01 + vpclmulqdq zmm5,zmm20,zmm1,0x10 + vpclmulqdq zmm0,zmm20,zmm1,0x11 + vpclmulqdq zmm3,zmm20,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_41 +$L$_small_initial_partial_block_41: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm20,ymm1,0x01 + vpclmulqdq ymm5,ymm20,ymm1,0x10 + vpclmulqdq ymm0,ymm20,ymm1,0x11 + vpclmulqdq ymm3,ymm20,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_41: + + or r13,r13 + je NEAR $L$_after_reduction_41 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_41: + jmp NEAR $L$_last_blocks_done_19 +$L$_last_num_blocks_is_12_19: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,244 + jae NEAR $L$_16_blocks_overflow_42 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + jmp NEAR $L$_16_blocks_ok_42 + +$L$_16_blocks_overflow_42: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 +$L$_16_blocks_ok_42: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm4,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vextracti32x4 xmm11,zmm4,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10]{k1},zmm4 + vmovdqu8 zmm4{k1}{z},zmm4 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb zmm20,zmm4,zmm29 + vextracti32x4 xmm7,zmm20,3 + sub r13,16 * (12 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_43 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[160+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_43 +$L$_small_initial_partial_block_43: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm20,zmm1,0x01 + vpclmulqdq zmm5,zmm20,zmm1,0x10 + vpclmulqdq zmm0,zmm20,zmm1,0x11 + vpclmulqdq zmm3,zmm20,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_43: + + or r13,r13 + je NEAR $L$_after_reduction_43 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_43: + jmp NEAR $L$_last_blocks_done_19 +$L$_last_num_blocks_is_13_19: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,243 + jae NEAR $L$_16_blocks_overflow_44 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd xmm5,xmm4,xmm27 + jmp NEAR $L$_16_blocks_ok_44 + +$L$_16_blocks_overflow_44: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb xmm5,xmm5,xmm29 +$L$_16_blocks_ok_44: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm5,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 xmm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast xmm5,xmm5,xmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq xmm5,xmm5,xmm21 + vextracti32x4 xmm11,zmm5,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 XMMWORD[192+r11*1+r10]{k1},xmm5 + vmovdqu8 zmm5{k1}{z},zmm5 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb zmm20,zmm4,zmm29 + vpshufb xmm21,xmm5,xmm29 + vextracti32x4 xmm7,zmm21,0 + sub r13,16 * (13 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_45 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[144+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm21,xmm1,0x01 + vpclmulqdq xmm5,xmm21,xmm1,0x10 + vpclmulqdq xmm0,xmm21,xmm1,0x11 + vpclmulqdq xmm3,xmm21,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_45 +$L$_small_initial_partial_block_45: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[160+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_45: + + or r13,r13 + je NEAR $L$_after_reduction_45 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_45: + jmp NEAR $L$_last_blocks_done_19 +$L$_last_num_blocks_is_14_19: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,242 + jae NEAR $L$_16_blocks_overflow_46 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd ymm5,ymm4,ymm27 + jmp NEAR $L$_16_blocks_ok_46 + +$L$_16_blocks_overflow_46: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb ymm5,ymm5,ymm29 +$L$_16_blocks_ok_46: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm5,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 ymm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast ymm5,ymm5,ymm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq ymm5,ymm5,ymm21 + vextracti32x4 xmm11,zmm5,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 YMMWORD[192+r11*1+r10]{k1},ymm5 + vmovdqu8 zmm5{k1}{z},zmm5 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb zmm20,zmm4,zmm29 + vpshufb ymm21,ymm5,ymm29 + vextracti32x4 xmm7,zmm21,1 + sub r13,16 * (14 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_47 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[128+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm21,ymm1,0x01 + vpclmulqdq ymm5,ymm21,ymm1,0x10 + vpclmulqdq ymm0,ymm21,ymm1,0x11 + vpclmulqdq ymm3,ymm21,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_47 +$L$_small_initial_partial_block_47: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[144+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm21,xmm1,0x01 + vpclmulqdq xmm5,xmm21,xmm1,0x10 + vpclmulqdq xmm0,xmm21,xmm1,0x11 + vpclmulqdq xmm3,xmm21,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_47: + + or r13,r13 + je NEAR $L$_after_reduction_47 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_47: + jmp NEAR $L$_last_blocks_done_19 +$L$_last_num_blocks_is_15_19: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,241 + jae NEAR $L$_16_blocks_overflow_48 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_48 + +$L$_16_blocks_overflow_48: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_48: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm5,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + vextracti32x4 xmm11,zmm5,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[192+r11*1+r10]{k1},zmm5 + vmovdqu8 zmm5{k1}{z},zmm5 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb zmm20,zmm4,zmm29 + vpshufb zmm21,zmm5,zmm29 + vextracti32x4 xmm7,zmm21,2 + sub r13,16 * (15 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_49 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[112+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm21,zmm1,0x01 + vpclmulqdq zmm5,zmm21,zmm1,0x10 + vpclmulqdq zmm0,zmm21,zmm1,0x11 + vpclmulqdq zmm3,zmm21,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_49 +$L$_small_initial_partial_block_49: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[128+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm21,ymm1,0x01 + vpclmulqdq ymm5,ymm21,ymm1,0x10 + vpclmulqdq ymm0,ymm21,ymm1,0x11 + vpclmulqdq ymm3,ymm21,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_49: + + or r13,r13 + je NEAR $L$_after_reduction_49 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_49: + jmp NEAR $L$_last_blocks_done_19 +$L$_last_num_blocks_is_16_19: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,240 + jae NEAR $L$_16_blocks_overflow_50 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_50 + +$L$_16_blocks_overflow_50: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_50: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm5,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + vextracti32x4 xmm11,zmm5,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[192+r11*1+r10]{k1},zmm5 + vmovdqu8 zmm5{k1}{z},zmm5 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb zmm20,zmm4,zmm29 + vpshufb zmm21,zmm5,zmm29 + vextracti32x4 xmm7,zmm21,3 + sub r13,16 * (16 - 1) +$L$_small_initial_partial_block_51: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[112+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm21,zmm1,0x01 + vpclmulqdq zmm5,zmm21,zmm1,0x10 + vpclmulqdq zmm0,zmm21,zmm1,0x11 + vpclmulqdq zmm3,zmm21,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_51: + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_51: + jmp NEAR $L$_last_blocks_done_19 +$L$_last_num_blocks_is_0_19: + vmovdqa64 zmm13,ZMMWORD[1024+rsp] + vmovdqu64 zmm12,ZMMWORD[rbx*1+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[1088+rsp] + vmovdqu64 zmm12,ZMMWORD[64+rbx*1+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + vpternlogq zmm26,zmm4,zmm10,0x96 + vpternlogq zmm24,zmm0,zmm6,0x96 + vpternlogq zmm25,zmm3,zmm7,0x96 + vpternlogq zmm26,zmm5,zmm11,0x96 + vmovdqa64 zmm13,ZMMWORD[1152+rsp] + vmovdqu64 zmm12,ZMMWORD[128+rbx*1+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[1216+rsp] + vmovdqu64 zmm12,ZMMWORD[192+rbx*1+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + + vpternlogq zmm26,zmm4,zmm10,0x96 + vpternlogq zmm24,zmm0,zmm6,0x96 + vpternlogq zmm25,zmm3,zmm7,0x96 + vpternlogq zmm26,zmm5,zmm11,0x96 + + vpsrldq zmm0,zmm26,8 + vpslldq zmm3,zmm26,8 + vpxorq zmm24,zmm24,zmm0 + vpxorq zmm25,zmm25,zmm3 + vextracti64x4 ymm0,zmm24,1 + vpxorq ymm24,ymm24,ymm0 + vextracti32x4 xmm0,ymm24,1 + vpxorq xmm24,xmm24,xmm0 + vextracti64x4 ymm3,zmm25,1 + vpxorq ymm25,ymm25,ymm3 + vextracti32x4 xmm3,ymm25,1 + vpxorq xmm25,xmm25,xmm3 + vmovdqa64 xmm4,XMMWORD[POLY2] + + + vpclmulqdq xmm0,xmm4,xmm25,0x01 + vpslldq xmm0,xmm0,8 + vpxorq xmm0,xmm25,xmm0 + + + vpclmulqdq xmm3,xmm4,xmm0,0x00 + vpsrldq xmm3,xmm3,4 + vpclmulqdq xmm14,xmm4,xmm0,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm3,xmm24,0x96 + +$L$_last_blocks_done_19: + vpshufb xmm2,xmm2,xmm29 + jmp NEAR $L$_ghash_done_10 +$L$_encrypt_32_blocks_10: + cmp r15b,240 + jae NEAR $L$_16_blocks_overflow_52 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_52 +$L$_16_blocks_overflow_52: + vpshufb zmm2,zmm2,zmm29 + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_52: + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rsp] + + + + + vshufi64x2 zmm2,zmm5,zmm5,255 + add r15b,16 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + + + + + + + + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + + vpclmulqdq zmm6,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + + vpternlogq zmm6,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + + + + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm21,ZMMWORD[192+r11*1+r9] + + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm26,zmm10,zmm15 + vpxorq zmm24,zmm6,zmm12 + vpxorq zmm25,zmm7,zmm13 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + + + + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + + + + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[192+r11*1+r10],zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 + vmovdqa64 ZMMWORD[1280+rsp],zmm0 + vmovdqa64 ZMMWORD[1344+rsp],zmm3 + vmovdqa64 ZMMWORD[1408+rsp],zmm4 + vmovdqa64 ZMMWORD[1472+rsp],zmm5 + cmp r15b,240 + jae NEAR $L$_16_blocks_overflow_53 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_53 +$L$_16_blocks_overflow_53: + vpshufb zmm2,zmm2,zmm29 + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_53: + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[256+rsp] + + + + + vshufi64x2 zmm2,zmm5,zmm5,255 + add r15b,16 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[320+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + + + + + + + + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + + vpclmulqdq zmm6,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[384+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[448+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + + vpternlogq zmm6,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + + + + vmovdqu8 zmm17,ZMMWORD[256+r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[320+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[384+r11*1+r9] + vmovdqu8 zmm21,ZMMWORD[448+r11*1+r9] + + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vpternlogq zmm24,zmm6,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + + + + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + + + + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[256+r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[320+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[384+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[448+r11*1+r10],zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 + vmovdqa64 ZMMWORD[768+rsp],zmm0 + vmovdqa64 ZMMWORD[832+rsp],zmm3 + vmovdqa64 ZMMWORD[896+rsp],zmm4 + vmovdqa64 ZMMWORD[960+rsp],zmm5 + vmovdqa64 zmm13,ZMMWORD[1280+rsp] + vmovdqu64 zmm12,ZMMWORD[512+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[1344+rsp] + vmovdqu64 zmm12,ZMMWORD[576+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + vpternlogq zmm26,zmm4,zmm10,0x96 + vpternlogq zmm24,zmm0,zmm6,0x96 + vpternlogq zmm25,zmm3,zmm7,0x96 + vpternlogq zmm26,zmm5,zmm11,0x96 + vmovdqa64 zmm13,ZMMWORD[1408+rsp] + vmovdqu64 zmm12,ZMMWORD[640+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[1472+rsp] + vmovdqu64 zmm12,ZMMWORD[704+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + + vpternlogq zmm26,zmm4,zmm10,0x96 + vpternlogq zmm24,zmm0,zmm6,0x96 + vpternlogq zmm25,zmm3,zmm7,0x96 + vpternlogq zmm26,zmm5,zmm11,0x96 + + vpsrldq zmm0,zmm26,8 + vpslldq zmm3,zmm26,8 + vpxorq zmm24,zmm24,zmm0 + vpxorq zmm25,zmm25,zmm3 + vextracti64x4 ymm0,zmm24,1 + vpxorq ymm24,ymm24,ymm0 + vextracti32x4 xmm0,ymm24,1 + vpxorq xmm24,xmm24,xmm0 + vextracti64x4 ymm3,zmm25,1 + vpxorq ymm25,ymm25,ymm3 + vextracti32x4 xmm3,ymm25,1 + vpxorq xmm25,xmm25,xmm3 + vmovdqa64 xmm4,XMMWORD[POLY2] + + + vpclmulqdq xmm0,xmm4,xmm25,0x01 + vpslldq xmm0,xmm0,8 + vpxorq xmm0,xmm25,xmm0 + + + vpclmulqdq xmm3,xmm4,xmm0,0x00 + vpsrldq xmm3,xmm3,4 + vpclmulqdq xmm14,xmm4,xmm0,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm3,xmm24,0x96 + + sub r13,512 + add r11,512 + mov r10d,r13d + and r10d,~15 + mov ebx,512 + sub ebx,r10d + mov r10d,r13d + add r10d,15 + shr r10d,4 + je NEAR $L$_last_num_blocks_is_0_54 + + cmp r10d,8 + je NEAR $L$_last_num_blocks_is_8_54 + jb NEAR $L$_last_num_blocks_is_7_1_54 + + + cmp r10d,12 + je NEAR $L$_last_num_blocks_is_12_54 + jb NEAR $L$_last_num_blocks_is_11_9_54 + + + cmp r10d,15 + je NEAR $L$_last_num_blocks_is_15_54 + ja NEAR $L$_last_num_blocks_is_16_54 + cmp r10d,14 + je NEAR $L$_last_num_blocks_is_14_54 + jmp NEAR $L$_last_num_blocks_is_13_54 + +$L$_last_num_blocks_is_11_9_54: + + cmp r10d,10 + je NEAR $L$_last_num_blocks_is_10_54 + ja NEAR $L$_last_num_blocks_is_11_54 + jmp NEAR $L$_last_num_blocks_is_9_54 + +$L$_last_num_blocks_is_7_1_54: + cmp r10d,4 + je NEAR $L$_last_num_blocks_is_4_54 + jb NEAR $L$_last_num_blocks_is_3_1_54 + + cmp r10d,6 + ja NEAR $L$_last_num_blocks_is_7_54 + je NEAR $L$_last_num_blocks_is_6_54 + jmp NEAR $L$_last_num_blocks_is_5_54 + +$L$_last_num_blocks_is_3_1_54: + + cmp r10d,2 + ja NEAR $L$_last_num_blocks_is_3_54 + je NEAR $L$_last_num_blocks_is_2_54 +$L$_last_num_blocks_is_1_54: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,255 + jae NEAR $L$_16_blocks_overflow_55 + vpaddd xmm0,xmm2,xmm28 + jmp NEAR $L$_16_blocks_ok_55 + +$L$_16_blocks_overflow_55: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb xmm0,xmm0,xmm29 +$L$_16_blocks_ok_55: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm0,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 xmm17{k1}{z},[r11*1+r9] + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc xmm0,xmm0,xmm31 + vaesenclast xmm0,xmm0,xmm30 + vpxorq xmm0,xmm0,xmm17 + vextracti32x4 xmm11,zmm0,0 + mov r10,QWORD[120+rbp] + vmovdqu8 XMMWORD[r11*1+r10]{k1},xmm0 + vmovdqu8 zmm0{k1}{z},zmm0 + vpshufb xmm17,xmm0,xmm29 + vextracti32x4 xmm7,zmm17,0 + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_56 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm17,xmm1,0x01 + vpclmulqdq xmm5,xmm17,xmm1,0x10 + vpclmulqdq xmm0,xmm17,xmm1,0x11 + vpclmulqdq xmm3,xmm17,xmm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_56 +$L$_small_initial_partial_block_56: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + + + vpsrldq zmm0,zmm26,8 + vpslldq zmm3,zmm26,8 + vpxorq zmm24,zmm24,zmm0 + vpxorq zmm25,zmm25,zmm3 + vextracti64x4 ymm0,zmm24,1 + vpxorq ymm24,ymm24,ymm0 + vextracti32x4 xmm0,ymm24,1 + vpxorq xmm24,xmm24,xmm0 + vextracti64x4 ymm3,zmm25,1 + vpxorq ymm25,ymm25,ymm3 + vextracti32x4 xmm3,ymm25,1 + vpxorq xmm25,xmm25,xmm3 + vmovdqa64 xmm0,XMMWORD[POLY2] + + + vpclmulqdq xmm3,xmm0,xmm25,0x01 + vpslldq xmm3,xmm3,8 + vpxorq xmm3,xmm25,xmm3 + + + vpclmulqdq xmm4,xmm0,xmm3,0x00 + vpsrldq xmm4,xmm4,4 + vpclmulqdq xmm14,xmm0,xmm3,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm4,xmm24,0x96 + + + + + + + + + + + + + vpxorq xmm14,xmm14,xmm7 + + jmp NEAR $L$_after_reduction_56 +$L$_small_initial_compute_done_56: +$L$_after_reduction_56: + jmp NEAR $L$_last_blocks_done_54 +$L$_last_num_blocks_is_2_54: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,254 + jae NEAR $L$_16_blocks_overflow_57 + vpaddd ymm0,ymm2,ymm28 + jmp NEAR $L$_16_blocks_ok_57 + +$L$_16_blocks_overflow_57: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb ymm0,ymm0,ymm29 +$L$_16_blocks_ok_57: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm0,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 ymm17{k1}{z},[r11*1+r9] + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc ymm0,ymm0,ymm31 + vaesenclast ymm0,ymm0,ymm30 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm11,zmm0,1 + mov r10,QWORD[120+rbp] + vmovdqu8 YMMWORD[r11*1+r10]{k1},ymm0 + vmovdqu8 zmm0{k1}{z},zmm0 + vpshufb ymm17,ymm0,ymm29 + vextracti32x4 xmm7,zmm17,1 + sub r13,16 * (2 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_58 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm17,ymm1,0x01 + vpclmulqdq ymm5,ymm17,ymm1,0x10 + vpclmulqdq ymm0,ymm17,ymm1,0x11 + vpclmulqdq ymm3,ymm17,ymm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_58 +$L$_small_initial_partial_block_58: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm17,xmm1,0x01 + vpclmulqdq xmm5,xmm17,xmm1,0x10 + vpclmulqdq xmm0,xmm17,xmm1,0x11 + vpclmulqdq xmm3,xmm17,xmm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_58: + + or r13,r13 + je NEAR $L$_after_reduction_58 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_58: + jmp NEAR $L$_last_blocks_done_54 +$L$_last_num_blocks_is_3_54: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,253 + jae NEAR $L$_16_blocks_overflow_59 + vpaddd zmm0,zmm2,zmm28 + jmp NEAR $L$_16_blocks_ok_59 + +$L$_16_blocks_overflow_59: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb zmm0,zmm0,zmm29 +$L$_16_blocks_ok_59: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm0,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17{k1}{z},[r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vpxorq zmm0,zmm0,zmm17 + vextracti32x4 xmm11,zmm0,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10]{k1},zmm0 + vmovdqu8 zmm0{k1}{z},zmm0 + vpshufb zmm17,zmm0,zmm29 + vextracti32x4 xmm7,zmm17,2 + sub r13,16 * (3 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_60 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_60 +$L$_small_initial_partial_block_60: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm17,ymm1,0x01 + vpclmulqdq ymm5,ymm17,ymm1,0x10 + vpclmulqdq ymm0,ymm17,ymm1,0x11 + vpclmulqdq ymm3,ymm17,ymm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_60: + + or r13,r13 + je NEAR $L$_after_reduction_60 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_60: + jmp NEAR $L$_last_blocks_done_54 +$L$_last_num_blocks_is_4_54: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,252 + jae NEAR $L$_16_blocks_overflow_61 + vpaddd zmm0,zmm2,zmm28 + jmp NEAR $L$_16_blocks_ok_61 + +$L$_16_blocks_overflow_61: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb zmm0,zmm0,zmm29 +$L$_16_blocks_ok_61: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm0,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17{k1}{z},[r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vpxorq zmm0,zmm0,zmm17 + vextracti32x4 xmm11,zmm0,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10]{k1},zmm0 + vmovdqu8 zmm0{k1}{z},zmm0 + vpshufb zmm17,zmm0,zmm29 + vextracti32x4 xmm7,zmm17,3 + sub r13,16 * (4 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_62 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_62 +$L$_small_initial_partial_block_62: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_62: + + or r13,r13 + je NEAR $L$_after_reduction_62 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_62: + jmp NEAR $L$_last_blocks_done_54 +$L$_last_num_blocks_is_5_54: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,251 + jae NEAR $L$_16_blocks_overflow_63 + vpaddd zmm0,zmm2,zmm28 + vpaddd xmm3,xmm0,xmm27 + jmp NEAR $L$_16_blocks_ok_63 + +$L$_16_blocks_overflow_63: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb xmm3,xmm3,xmm29 +$L$_16_blocks_ok_63: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm3,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 xmm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast xmm3,xmm3,xmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq xmm3,xmm3,xmm19 + vextracti32x4 xmm11,zmm3,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 XMMWORD[64+r11*1+r10]{k1},xmm3 + vmovdqu8 zmm3{k1}{z},zmm3 + vpshufb zmm17,zmm0,zmm29 + vpshufb xmm19,xmm3,xmm29 + vextracti32x4 xmm7,zmm19,0 + sub r13,16 * (5 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_64 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm19,xmm1,0x01 + vpclmulqdq xmm5,xmm19,xmm1,0x10 + vpclmulqdq xmm0,xmm19,xmm1,0x11 + vpclmulqdq xmm3,xmm19,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_64 +$L$_small_initial_partial_block_64: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_64: + + or r13,r13 + je NEAR $L$_after_reduction_64 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_64: + jmp NEAR $L$_last_blocks_done_54 +$L$_last_num_blocks_is_6_54: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,250 + jae NEAR $L$_16_blocks_overflow_65 + vpaddd zmm0,zmm2,zmm28 + vpaddd ymm3,ymm0,ymm27 + jmp NEAR $L$_16_blocks_ok_65 + +$L$_16_blocks_overflow_65: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb ymm3,ymm3,ymm29 +$L$_16_blocks_ok_65: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm3,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 ymm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast ymm3,ymm3,ymm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm11,zmm3,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 YMMWORD[64+r11*1+r10]{k1},ymm3 + vmovdqu8 zmm3{k1}{z},zmm3 + vpshufb zmm17,zmm0,zmm29 + vpshufb ymm19,ymm3,ymm29 + vextracti32x4 xmm7,zmm19,1 + sub r13,16 * (6 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_66 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm19,ymm1,0x01 + vpclmulqdq ymm5,ymm19,ymm1,0x10 + vpclmulqdq ymm0,ymm19,ymm1,0x11 + vpclmulqdq ymm3,ymm19,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_66 +$L$_small_initial_partial_block_66: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm19,xmm1,0x01 + vpclmulqdq xmm5,xmm19,xmm1,0x10 + vpclmulqdq xmm0,xmm19,xmm1,0x11 + vpclmulqdq xmm3,xmm19,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_66: + + or r13,r13 + je NEAR $L$_after_reduction_66 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_66: + jmp NEAR $L$_last_blocks_done_54 +$L$_last_num_blocks_is_7_54: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,249 + jae NEAR $L$_16_blocks_overflow_67 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + jmp NEAR $L$_16_blocks_ok_67 + +$L$_16_blocks_overflow_67: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 +$L$_16_blocks_ok_67: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm3,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti32x4 xmm11,zmm3,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10]{k1},zmm3 + vmovdqu8 zmm3{k1}{z},zmm3 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vextracti32x4 xmm7,zmm19,2 + sub r13,16 * (7 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_68 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm19,zmm1,0x01 + vpclmulqdq zmm5,zmm19,zmm1,0x10 + vpclmulqdq zmm0,zmm19,zmm1,0x11 + vpclmulqdq zmm3,zmm19,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_68 +$L$_small_initial_partial_block_68: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm19,ymm1,0x01 + vpclmulqdq ymm5,ymm19,ymm1,0x10 + vpclmulqdq ymm0,ymm19,ymm1,0x11 + vpclmulqdq ymm3,ymm19,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_68: + + or r13,r13 + je NEAR $L$_after_reduction_68 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_68: + jmp NEAR $L$_last_blocks_done_54 +$L$_last_num_blocks_is_8_54: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,248 + jae NEAR $L$_16_blocks_overflow_69 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + jmp NEAR $L$_16_blocks_ok_69 + +$L$_16_blocks_overflow_69: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 +$L$_16_blocks_ok_69: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm3,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti32x4 xmm11,zmm3,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10]{k1},zmm3 + vmovdqu8 zmm3{k1}{z},zmm3 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vextracti32x4 xmm7,zmm19,3 + sub r13,16 * (8 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_70 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_70 +$L$_small_initial_partial_block_70: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm19,zmm1,0x01 + vpclmulqdq zmm5,zmm19,zmm1,0x10 + vpclmulqdq zmm0,zmm19,zmm1,0x11 + vpclmulqdq zmm3,zmm19,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_70: + + or r13,r13 + je NEAR $L$_after_reduction_70 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_70: + jmp NEAR $L$_last_blocks_done_54 +$L$_last_num_blocks_is_9_54: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,247 + jae NEAR $L$_16_blocks_overflow_71 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd xmm4,xmm3,xmm27 + jmp NEAR $L$_16_blocks_ok_71 + +$L$_16_blocks_overflow_71: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb xmm4,xmm4,xmm29 +$L$_16_blocks_ok_71: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm4,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 xmm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast xmm4,xmm4,xmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq xmm4,xmm4,xmm20 + vextracti32x4 xmm11,zmm4,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 XMMWORD[128+r11*1+r10]{k1},xmm4 + vmovdqu8 zmm4{k1}{z},zmm4 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb xmm20,xmm4,xmm29 + vextracti32x4 xmm7,zmm20,0 + sub r13,16 * (9 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_72 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm20,xmm1,0x01 + vpclmulqdq xmm5,xmm20,xmm1,0x10 + vpclmulqdq xmm0,xmm20,xmm1,0x11 + vpclmulqdq xmm3,xmm20,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_72 +$L$_small_initial_partial_block_72: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_72: + + or r13,r13 + je NEAR $L$_after_reduction_72 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_72: + jmp NEAR $L$_last_blocks_done_54 +$L$_last_num_blocks_is_10_54: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,246 + jae NEAR $L$_16_blocks_overflow_73 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd ymm4,ymm3,ymm27 + jmp NEAR $L$_16_blocks_ok_73 + +$L$_16_blocks_overflow_73: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb ymm4,ymm4,ymm29 +$L$_16_blocks_ok_73: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm4,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 ymm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast ymm4,ymm4,ymm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq ymm4,ymm4,ymm20 + vextracti32x4 xmm11,zmm4,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 YMMWORD[128+r11*1+r10]{k1},ymm4 + vmovdqu8 zmm4{k1}{z},zmm4 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb ymm20,ymm4,ymm29 + vextracti32x4 xmm7,zmm20,1 + sub r13,16 * (10 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_74 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm20,ymm1,0x01 + vpclmulqdq ymm5,ymm20,ymm1,0x10 + vpclmulqdq ymm0,ymm20,ymm1,0x11 + vpclmulqdq ymm3,ymm20,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_74 +$L$_small_initial_partial_block_74: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm20,xmm1,0x01 + vpclmulqdq xmm5,xmm20,xmm1,0x10 + vpclmulqdq xmm0,xmm20,xmm1,0x11 + vpclmulqdq xmm3,xmm20,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_74: + + or r13,r13 + je NEAR $L$_after_reduction_74 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_74: + jmp NEAR $L$_last_blocks_done_54 +$L$_last_num_blocks_is_11_54: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,245 + jae NEAR $L$_16_blocks_overflow_75 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + jmp NEAR $L$_16_blocks_ok_75 + +$L$_16_blocks_overflow_75: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 +$L$_16_blocks_ok_75: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm4,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vextracti32x4 xmm11,zmm4,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10]{k1},zmm4 + vmovdqu8 zmm4{k1}{z},zmm4 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb zmm20,zmm4,zmm29 + vextracti32x4 xmm7,zmm20,2 + sub r13,16 * (11 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_76 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm20,zmm1,0x01 + vpclmulqdq zmm5,zmm20,zmm1,0x10 + vpclmulqdq zmm0,zmm20,zmm1,0x11 + vpclmulqdq zmm3,zmm20,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_76 +$L$_small_initial_partial_block_76: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm20,ymm1,0x01 + vpclmulqdq ymm5,ymm20,ymm1,0x10 + vpclmulqdq ymm0,ymm20,ymm1,0x11 + vpclmulqdq ymm3,ymm20,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_76: + + or r13,r13 + je NEAR $L$_after_reduction_76 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_76: + jmp NEAR $L$_last_blocks_done_54 +$L$_last_num_blocks_is_12_54: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,244 + jae NEAR $L$_16_blocks_overflow_77 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + jmp NEAR $L$_16_blocks_ok_77 + +$L$_16_blocks_overflow_77: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 +$L$_16_blocks_ok_77: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm4,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vextracti32x4 xmm11,zmm4,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10]{k1},zmm4 + vmovdqu8 zmm4{k1}{z},zmm4 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb zmm20,zmm4,zmm29 + vextracti32x4 xmm7,zmm20,3 + sub r13,16 * (12 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_78 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[160+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_78 +$L$_small_initial_partial_block_78: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm20,zmm1,0x01 + vpclmulqdq zmm5,zmm20,zmm1,0x10 + vpclmulqdq zmm0,zmm20,zmm1,0x11 + vpclmulqdq zmm3,zmm20,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_78: + + or r13,r13 + je NEAR $L$_after_reduction_78 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_78: + jmp NEAR $L$_last_blocks_done_54 +$L$_last_num_blocks_is_13_54: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,243 + jae NEAR $L$_16_blocks_overflow_79 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd xmm5,xmm4,xmm27 + jmp NEAR $L$_16_blocks_ok_79 + +$L$_16_blocks_overflow_79: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb xmm5,xmm5,xmm29 +$L$_16_blocks_ok_79: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm5,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 xmm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast xmm5,xmm5,xmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq xmm5,xmm5,xmm21 + vextracti32x4 xmm11,zmm5,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 XMMWORD[192+r11*1+r10]{k1},xmm5 + vmovdqu8 zmm5{k1}{z},zmm5 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb zmm20,zmm4,zmm29 + vpshufb xmm21,xmm5,xmm29 + vextracti32x4 xmm7,zmm21,0 + sub r13,16 * (13 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_80 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[144+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm21,xmm1,0x01 + vpclmulqdq xmm5,xmm21,xmm1,0x10 + vpclmulqdq xmm0,xmm21,xmm1,0x11 + vpclmulqdq xmm3,xmm21,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_80 +$L$_small_initial_partial_block_80: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[160+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_80: + + or r13,r13 + je NEAR $L$_after_reduction_80 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_80: + jmp NEAR $L$_last_blocks_done_54 +$L$_last_num_blocks_is_14_54: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,242 + jae NEAR $L$_16_blocks_overflow_81 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd ymm5,ymm4,ymm27 + jmp NEAR $L$_16_blocks_ok_81 + +$L$_16_blocks_overflow_81: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb ymm5,ymm5,ymm29 +$L$_16_blocks_ok_81: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm5,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 ymm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast ymm5,ymm5,ymm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq ymm5,ymm5,ymm21 + vextracti32x4 xmm11,zmm5,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 YMMWORD[192+r11*1+r10]{k1},ymm5 + vmovdqu8 zmm5{k1}{z},zmm5 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb zmm20,zmm4,zmm29 + vpshufb ymm21,ymm5,ymm29 + vextracti32x4 xmm7,zmm21,1 + sub r13,16 * (14 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_82 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[128+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm21,ymm1,0x01 + vpclmulqdq ymm5,ymm21,ymm1,0x10 + vpclmulqdq ymm0,ymm21,ymm1,0x11 + vpclmulqdq ymm3,ymm21,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_82 +$L$_small_initial_partial_block_82: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[144+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm21,xmm1,0x01 + vpclmulqdq xmm5,xmm21,xmm1,0x10 + vpclmulqdq xmm0,xmm21,xmm1,0x11 + vpclmulqdq xmm3,xmm21,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_82: + + or r13,r13 + je NEAR $L$_after_reduction_82 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_82: + jmp NEAR $L$_last_blocks_done_54 +$L$_last_num_blocks_is_15_54: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,241 + jae NEAR $L$_16_blocks_overflow_83 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_83 + +$L$_16_blocks_overflow_83: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_83: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm5,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + vextracti32x4 xmm11,zmm5,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[192+r11*1+r10]{k1},zmm5 + vmovdqu8 zmm5{k1}{z},zmm5 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb zmm20,zmm4,zmm29 + vpshufb zmm21,zmm5,zmm29 + vextracti32x4 xmm7,zmm21,2 + sub r13,16 * (15 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_84 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[112+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm21,zmm1,0x01 + vpclmulqdq zmm5,zmm21,zmm1,0x10 + vpclmulqdq zmm0,zmm21,zmm1,0x11 + vpclmulqdq zmm3,zmm21,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_84 +$L$_small_initial_partial_block_84: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[128+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm21,ymm1,0x01 + vpclmulqdq ymm5,ymm21,ymm1,0x10 + vpclmulqdq ymm0,ymm21,ymm1,0x11 + vpclmulqdq ymm3,ymm21,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_84: + + or r13,r13 + je NEAR $L$_after_reduction_84 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_84: + jmp NEAR $L$_last_blocks_done_54 +$L$_last_num_blocks_is_16_54: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,240 + jae NEAR $L$_16_blocks_overflow_85 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_85 + +$L$_16_blocks_overflow_85: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_85: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm5,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + vextracti32x4 xmm11,zmm5,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[192+r11*1+r10]{k1},zmm5 + vmovdqu8 zmm5{k1}{z},zmm5 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb zmm20,zmm4,zmm29 + vpshufb zmm21,zmm5,zmm29 + vextracti32x4 xmm7,zmm21,3 + sub r13,16 * (16 - 1) +$L$_small_initial_partial_block_86: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[112+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm21,zmm1,0x01 + vpclmulqdq zmm5,zmm21,zmm1,0x10 + vpclmulqdq zmm0,zmm21,zmm1,0x11 + vpclmulqdq zmm3,zmm21,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_86: + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_86: + jmp NEAR $L$_last_blocks_done_54 +$L$_last_num_blocks_is_0_54: + vmovdqa64 zmm13,ZMMWORD[768+rsp] + vpxorq zmm13,zmm13,zmm14 + vmovdqu64 zmm12,ZMMWORD[rbx*1+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[832+rsp] + vmovdqu64 zmm12,ZMMWORD[64+rbx*1+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + vpxorq zmm26,zmm4,zmm10 + vpxorq zmm24,zmm0,zmm6 + vpxorq zmm25,zmm3,zmm7 + vpternlogq zmm26,zmm5,zmm11,0x96 + vmovdqa64 zmm13,ZMMWORD[896+rsp] + vmovdqu64 zmm12,ZMMWORD[128+rbx*1+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[960+rsp] + vmovdqu64 zmm12,ZMMWORD[192+rbx*1+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + + vpternlogq zmm26,zmm4,zmm10,0x96 + vpternlogq zmm24,zmm0,zmm6,0x96 + vpternlogq zmm25,zmm3,zmm7,0x96 + vpternlogq zmm26,zmm5,zmm11,0x96 + + vpsrldq zmm0,zmm26,8 + vpslldq zmm3,zmm26,8 + vpxorq zmm24,zmm24,zmm0 + vpxorq zmm25,zmm25,zmm3 + vextracti64x4 ymm0,zmm24,1 + vpxorq ymm24,ymm24,ymm0 + vextracti32x4 xmm0,ymm24,1 + vpxorq xmm24,xmm24,xmm0 + vextracti64x4 ymm3,zmm25,1 + vpxorq ymm25,ymm25,ymm3 + vextracti32x4 xmm3,ymm25,1 + vpxorq xmm25,xmm25,xmm3 + vmovdqa64 xmm4,XMMWORD[POLY2] + + + vpclmulqdq xmm0,xmm4,xmm25,0x01 + vpslldq xmm0,xmm0,8 + vpxorq xmm0,xmm25,xmm0 + + + vpclmulqdq xmm3,xmm4,xmm0,0x00 + vpsrldq xmm3,xmm3,4 + vpclmulqdq xmm14,xmm4,xmm0,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm3,xmm24,0x96 + +$L$_last_blocks_done_54: + vpshufb xmm2,xmm2,xmm29 + jmp NEAR $L$_ghash_done_10 +$L$_encrypt_16_blocks_10: + cmp r15b,240 + jae NEAR $L$_16_blocks_overflow_87 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_87 +$L$_16_blocks_overflow_87: + vpshufb zmm2,zmm2,zmm29 + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_87: + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rsp] + + + + + vshufi64x2 zmm2,zmm5,zmm5,255 + add r15b,16 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + + + + + + + + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + + vpclmulqdq zmm6,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + + vpternlogq zmm6,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + + + + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm21,ZMMWORD[192+r11*1+r9] + + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm26,zmm10,zmm15 + vpxorq zmm24,zmm6,zmm12 + vpxorq zmm25,zmm7,zmm13 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + + + + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + + + + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[192+r11*1+r10],zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 + vmovdqa64 ZMMWORD[1280+rsp],zmm0 + vmovdqa64 ZMMWORD[1344+rsp],zmm3 + vmovdqa64 ZMMWORD[1408+rsp],zmm4 + vmovdqa64 ZMMWORD[1472+rsp],zmm5 + vmovdqa64 zmm13,ZMMWORD[1024+rsp] + vmovdqu64 zmm12,ZMMWORD[256+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[1088+rsp] + vmovdqu64 zmm12,ZMMWORD[320+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + vpternlogq zmm26,zmm4,zmm10,0x96 + vpternlogq zmm24,zmm0,zmm6,0x96 + vpternlogq zmm25,zmm3,zmm7,0x96 + vpternlogq zmm26,zmm5,zmm11,0x96 + vmovdqa64 zmm13,ZMMWORD[1152+rsp] + vmovdqu64 zmm12,ZMMWORD[384+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[1216+rsp] + vmovdqu64 zmm12,ZMMWORD[448+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + + vpternlogq zmm26,zmm4,zmm10,0x96 + vpternlogq zmm24,zmm0,zmm6,0x96 + vpternlogq zmm25,zmm3,zmm7,0x96 + vpternlogq zmm26,zmm5,zmm11,0x96 + sub r13,256 + add r11,256 + mov r10d,r13d + add r10d,15 + shr r10d,4 + je NEAR $L$_last_num_blocks_is_0_88 + + cmp r10d,8 + je NEAR $L$_last_num_blocks_is_8_88 + jb NEAR $L$_last_num_blocks_is_7_1_88 + + + cmp r10d,12 + je NEAR $L$_last_num_blocks_is_12_88 + jb NEAR $L$_last_num_blocks_is_11_9_88 + + + cmp r10d,15 + je NEAR $L$_last_num_blocks_is_15_88 + ja NEAR $L$_last_num_blocks_is_16_88 + cmp r10d,14 + je NEAR $L$_last_num_blocks_is_14_88 + jmp NEAR $L$_last_num_blocks_is_13_88 + +$L$_last_num_blocks_is_11_9_88: + + cmp r10d,10 + je NEAR $L$_last_num_blocks_is_10_88 + ja NEAR $L$_last_num_blocks_is_11_88 + jmp NEAR $L$_last_num_blocks_is_9_88 + +$L$_last_num_blocks_is_7_1_88: + cmp r10d,4 + je NEAR $L$_last_num_blocks_is_4_88 + jb NEAR $L$_last_num_blocks_is_3_1_88 + + cmp r10d,6 + ja NEAR $L$_last_num_blocks_is_7_88 + je NEAR $L$_last_num_blocks_is_6_88 + jmp NEAR $L$_last_num_blocks_is_5_88 + +$L$_last_num_blocks_is_3_1_88: + + cmp r10d,2 + ja NEAR $L$_last_num_blocks_is_3_88 + je NEAR $L$_last_num_blocks_is_2_88 +$L$_last_num_blocks_is_1_88: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,255 + jae NEAR $L$_16_blocks_overflow_89 + vpaddd xmm0,xmm2,xmm28 + jmp NEAR $L$_16_blocks_ok_89 + +$L$_16_blocks_overflow_89: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb xmm0,xmm0,xmm29 +$L$_16_blocks_ok_89: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm0,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 xmm17{k1}{z},[r11*1+r9] + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc xmm0,xmm0,xmm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast xmm0,xmm0,xmm30 + vpxorq xmm0,xmm0,xmm17 + vextracti32x4 xmm11,zmm0,0 + mov r10,QWORD[120+rbp] + vmovdqu8 XMMWORD[r11*1+r10]{k1},xmm0 + vmovdqu8 zmm0{k1}{z},zmm0 + vpshufb xmm17,xmm0,xmm29 + vextracti32x4 xmm7,zmm17,0 + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_90 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm17,xmm1,0x01 + vpclmulqdq xmm5,xmm17,xmm1,0x10 + vpclmulqdq xmm0,xmm17,xmm1,0x11 + vpclmulqdq xmm3,xmm17,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_90 +$L$_small_initial_partial_block_90: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + + + + + + + + + + + + vpxorq xmm14,xmm14,xmm7 + + jmp NEAR $L$_after_reduction_90 +$L$_small_initial_compute_done_90: +$L$_after_reduction_90: + jmp NEAR $L$_last_blocks_done_88 +$L$_last_num_blocks_is_2_88: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,254 + jae NEAR $L$_16_blocks_overflow_91 + vpaddd ymm0,ymm2,ymm28 + jmp NEAR $L$_16_blocks_ok_91 + +$L$_16_blocks_overflow_91: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb ymm0,ymm0,ymm29 +$L$_16_blocks_ok_91: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm0,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 ymm17{k1}{z},[r11*1+r9] + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc ymm0,ymm0,ymm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast ymm0,ymm0,ymm30 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm11,zmm0,1 + mov r10,QWORD[120+rbp] + vmovdqu8 YMMWORD[r11*1+r10]{k1},ymm0 + vmovdqu8 zmm0{k1}{z},zmm0 + vpshufb ymm17,ymm0,ymm29 + vextracti32x4 xmm7,zmm17,1 + sub r13,16 * (2 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_92 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm17,ymm1,0x01 + vpclmulqdq ymm5,ymm17,ymm1,0x10 + vpclmulqdq ymm0,ymm17,ymm1,0x11 + vpclmulqdq ymm3,ymm17,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_92 +$L$_small_initial_partial_block_92: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm17,xmm1,0x01 + vpclmulqdq xmm5,xmm17,xmm1,0x10 + vpclmulqdq xmm0,xmm17,xmm1,0x11 + vpclmulqdq xmm3,xmm17,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_92: + + or r13,r13 + je NEAR $L$_after_reduction_92 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_92: + jmp NEAR $L$_last_blocks_done_88 +$L$_last_num_blocks_is_3_88: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,253 + jae NEAR $L$_16_blocks_overflow_93 + vpaddd zmm0,zmm2,zmm28 + jmp NEAR $L$_16_blocks_ok_93 + +$L$_16_blocks_overflow_93: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb zmm0,zmm0,zmm29 +$L$_16_blocks_ok_93: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm0,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17{k1}{z},[r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vpxorq zmm0,zmm0,zmm17 + vextracti32x4 xmm11,zmm0,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10]{k1},zmm0 + vmovdqu8 zmm0{k1}{z},zmm0 + vpshufb zmm17,zmm0,zmm29 + vextracti32x4 xmm7,zmm17,2 + sub r13,16 * (3 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_94 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_94 +$L$_small_initial_partial_block_94: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm17,ymm1,0x01 + vpclmulqdq ymm5,ymm17,ymm1,0x10 + vpclmulqdq ymm0,ymm17,ymm1,0x11 + vpclmulqdq ymm3,ymm17,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_94: + + or r13,r13 + je NEAR $L$_after_reduction_94 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_94: + jmp NEAR $L$_last_blocks_done_88 +$L$_last_num_blocks_is_4_88: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,252 + jae NEAR $L$_16_blocks_overflow_95 + vpaddd zmm0,zmm2,zmm28 + jmp NEAR $L$_16_blocks_ok_95 + +$L$_16_blocks_overflow_95: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb zmm0,zmm0,zmm29 +$L$_16_blocks_ok_95: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm0,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17{k1}{z},[r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vpxorq zmm0,zmm0,zmm17 + vextracti32x4 xmm11,zmm0,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10]{k1},zmm0 + vmovdqu8 zmm0{k1}{z},zmm0 + vpshufb zmm17,zmm0,zmm29 + vextracti32x4 xmm7,zmm17,3 + sub r13,16 * (4 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_96 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_96 +$L$_small_initial_partial_block_96: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_96: + + or r13,r13 + je NEAR $L$_after_reduction_96 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_96: + jmp NEAR $L$_last_blocks_done_88 +$L$_last_num_blocks_is_5_88: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,251 + jae NEAR $L$_16_blocks_overflow_97 + vpaddd zmm0,zmm2,zmm28 + vpaddd xmm3,xmm0,xmm27 + jmp NEAR $L$_16_blocks_ok_97 + +$L$_16_blocks_overflow_97: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb xmm3,xmm3,xmm29 +$L$_16_blocks_ok_97: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm3,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 xmm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast xmm3,xmm3,xmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq xmm3,xmm3,xmm19 + vextracti32x4 xmm11,zmm3,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 XMMWORD[64+r11*1+r10]{k1},xmm3 + vmovdqu8 zmm3{k1}{z},zmm3 + vpshufb zmm17,zmm0,zmm29 + vpshufb xmm19,xmm3,xmm29 + vextracti32x4 xmm7,zmm19,0 + sub r13,16 * (5 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_98 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm19,xmm1,0x01 + vpclmulqdq xmm5,xmm19,xmm1,0x10 + vpclmulqdq xmm0,xmm19,xmm1,0x11 + vpclmulqdq xmm3,xmm19,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_98 +$L$_small_initial_partial_block_98: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_98: + + or r13,r13 + je NEAR $L$_after_reduction_98 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_98: + jmp NEAR $L$_last_blocks_done_88 +$L$_last_num_blocks_is_6_88: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,250 + jae NEAR $L$_16_blocks_overflow_99 + vpaddd zmm0,zmm2,zmm28 + vpaddd ymm3,ymm0,ymm27 + jmp NEAR $L$_16_blocks_ok_99 + +$L$_16_blocks_overflow_99: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb ymm3,ymm3,ymm29 +$L$_16_blocks_ok_99: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm3,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 ymm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast ymm3,ymm3,ymm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm11,zmm3,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 YMMWORD[64+r11*1+r10]{k1},ymm3 + vmovdqu8 zmm3{k1}{z},zmm3 + vpshufb zmm17,zmm0,zmm29 + vpshufb ymm19,ymm3,ymm29 + vextracti32x4 xmm7,zmm19,1 + sub r13,16 * (6 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_100 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm19,ymm1,0x01 + vpclmulqdq ymm5,ymm19,ymm1,0x10 + vpclmulqdq ymm0,ymm19,ymm1,0x11 + vpclmulqdq ymm3,ymm19,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_100 +$L$_small_initial_partial_block_100: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm19,xmm1,0x01 + vpclmulqdq xmm5,xmm19,xmm1,0x10 + vpclmulqdq xmm0,xmm19,xmm1,0x11 + vpclmulqdq xmm3,xmm19,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_100: + + or r13,r13 + je NEAR $L$_after_reduction_100 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_100: + jmp NEAR $L$_last_blocks_done_88 +$L$_last_num_blocks_is_7_88: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,249 + jae NEAR $L$_16_blocks_overflow_101 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + jmp NEAR $L$_16_blocks_ok_101 + +$L$_16_blocks_overflow_101: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 +$L$_16_blocks_ok_101: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm3,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti32x4 xmm11,zmm3,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10]{k1},zmm3 + vmovdqu8 zmm3{k1}{z},zmm3 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vextracti32x4 xmm7,zmm19,2 + sub r13,16 * (7 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_102 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm19,zmm1,0x01 + vpclmulqdq zmm5,zmm19,zmm1,0x10 + vpclmulqdq zmm0,zmm19,zmm1,0x11 + vpclmulqdq zmm3,zmm19,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_102 +$L$_small_initial_partial_block_102: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm19,ymm1,0x01 + vpclmulqdq ymm5,ymm19,ymm1,0x10 + vpclmulqdq ymm0,ymm19,ymm1,0x11 + vpclmulqdq ymm3,ymm19,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_102: + + or r13,r13 + je NEAR $L$_after_reduction_102 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_102: + jmp NEAR $L$_last_blocks_done_88 +$L$_last_num_blocks_is_8_88: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,248 + jae NEAR $L$_16_blocks_overflow_103 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + jmp NEAR $L$_16_blocks_ok_103 + +$L$_16_blocks_overflow_103: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 +$L$_16_blocks_ok_103: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm3,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti32x4 xmm11,zmm3,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10]{k1},zmm3 + vmovdqu8 zmm3{k1}{z},zmm3 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vextracti32x4 xmm7,zmm19,3 + sub r13,16 * (8 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_104 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_104 +$L$_small_initial_partial_block_104: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm19,zmm1,0x01 + vpclmulqdq zmm5,zmm19,zmm1,0x10 + vpclmulqdq zmm0,zmm19,zmm1,0x11 + vpclmulqdq zmm3,zmm19,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_104: + + or r13,r13 + je NEAR $L$_after_reduction_104 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_104: + jmp NEAR $L$_last_blocks_done_88 +$L$_last_num_blocks_is_9_88: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,247 + jae NEAR $L$_16_blocks_overflow_105 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd xmm4,xmm3,xmm27 + jmp NEAR $L$_16_blocks_ok_105 + +$L$_16_blocks_overflow_105: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb xmm4,xmm4,xmm29 +$L$_16_blocks_ok_105: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm4,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 xmm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast xmm4,xmm4,xmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq xmm4,xmm4,xmm20 + vextracti32x4 xmm11,zmm4,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 XMMWORD[128+r11*1+r10]{k1},xmm4 + vmovdqu8 zmm4{k1}{z},zmm4 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb xmm20,xmm4,xmm29 + vextracti32x4 xmm7,zmm20,0 + sub r13,16 * (9 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_106 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm20,xmm1,0x01 + vpclmulqdq xmm5,xmm20,xmm1,0x10 + vpclmulqdq xmm0,xmm20,xmm1,0x11 + vpclmulqdq xmm3,xmm20,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_106 +$L$_small_initial_partial_block_106: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_106: + + or r13,r13 + je NEAR $L$_after_reduction_106 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_106: + jmp NEAR $L$_last_blocks_done_88 +$L$_last_num_blocks_is_10_88: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,246 + jae NEAR $L$_16_blocks_overflow_107 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd ymm4,ymm3,ymm27 + jmp NEAR $L$_16_blocks_ok_107 + +$L$_16_blocks_overflow_107: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb ymm4,ymm4,ymm29 +$L$_16_blocks_ok_107: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm4,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 ymm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast ymm4,ymm4,ymm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq ymm4,ymm4,ymm20 + vextracti32x4 xmm11,zmm4,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 YMMWORD[128+r11*1+r10]{k1},ymm4 + vmovdqu8 zmm4{k1}{z},zmm4 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb ymm20,ymm4,ymm29 + vextracti32x4 xmm7,zmm20,1 + sub r13,16 * (10 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_108 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm20,ymm1,0x01 + vpclmulqdq ymm5,ymm20,ymm1,0x10 + vpclmulqdq ymm0,ymm20,ymm1,0x11 + vpclmulqdq ymm3,ymm20,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_108 +$L$_small_initial_partial_block_108: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm20,xmm1,0x01 + vpclmulqdq xmm5,xmm20,xmm1,0x10 + vpclmulqdq xmm0,xmm20,xmm1,0x11 + vpclmulqdq xmm3,xmm20,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_108: + + or r13,r13 + je NEAR $L$_after_reduction_108 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_108: + jmp NEAR $L$_last_blocks_done_88 +$L$_last_num_blocks_is_11_88: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,245 + jae NEAR $L$_16_blocks_overflow_109 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + jmp NEAR $L$_16_blocks_ok_109 + +$L$_16_blocks_overflow_109: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 +$L$_16_blocks_ok_109: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm4,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vextracti32x4 xmm11,zmm4,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10]{k1},zmm4 + vmovdqu8 zmm4{k1}{z},zmm4 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb zmm20,zmm4,zmm29 + vextracti32x4 xmm7,zmm20,2 + sub r13,16 * (11 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_110 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm20,zmm1,0x01 + vpclmulqdq zmm5,zmm20,zmm1,0x10 + vpclmulqdq zmm0,zmm20,zmm1,0x11 + vpclmulqdq zmm3,zmm20,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_110 +$L$_small_initial_partial_block_110: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm20,ymm1,0x01 + vpclmulqdq ymm5,ymm20,ymm1,0x10 + vpclmulqdq ymm0,ymm20,ymm1,0x11 + vpclmulqdq ymm3,ymm20,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_110: + + or r13,r13 + je NEAR $L$_after_reduction_110 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_110: + jmp NEAR $L$_last_blocks_done_88 +$L$_last_num_blocks_is_12_88: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,244 + jae NEAR $L$_16_blocks_overflow_111 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + jmp NEAR $L$_16_blocks_ok_111 + +$L$_16_blocks_overflow_111: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 +$L$_16_blocks_ok_111: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm4,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vextracti32x4 xmm11,zmm4,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10]{k1},zmm4 + vmovdqu8 zmm4{k1}{z},zmm4 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb zmm20,zmm4,zmm29 + vextracti32x4 xmm7,zmm20,3 + sub r13,16 * (12 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_112 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[160+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_112 +$L$_small_initial_partial_block_112: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm20,zmm1,0x01 + vpclmulqdq zmm5,zmm20,zmm1,0x10 + vpclmulqdq zmm0,zmm20,zmm1,0x11 + vpclmulqdq zmm3,zmm20,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_112: + + or r13,r13 + je NEAR $L$_after_reduction_112 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_112: + jmp NEAR $L$_last_blocks_done_88 +$L$_last_num_blocks_is_13_88: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,243 + jae NEAR $L$_16_blocks_overflow_113 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd xmm5,xmm4,xmm27 + jmp NEAR $L$_16_blocks_ok_113 + +$L$_16_blocks_overflow_113: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb xmm5,xmm5,xmm29 +$L$_16_blocks_ok_113: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm5,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 xmm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast xmm5,xmm5,xmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq xmm5,xmm5,xmm21 + vextracti32x4 xmm11,zmm5,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 XMMWORD[192+r11*1+r10]{k1},xmm5 + vmovdqu8 zmm5{k1}{z},zmm5 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb zmm20,zmm4,zmm29 + vpshufb xmm21,xmm5,xmm29 + vextracti32x4 xmm7,zmm21,0 + sub r13,16 * (13 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_114 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[144+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm21,xmm1,0x01 + vpclmulqdq xmm5,xmm21,xmm1,0x10 + vpclmulqdq xmm0,xmm21,xmm1,0x11 + vpclmulqdq xmm3,xmm21,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_114 +$L$_small_initial_partial_block_114: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[160+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_114: + + or r13,r13 + je NEAR $L$_after_reduction_114 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_114: + jmp NEAR $L$_last_blocks_done_88 +$L$_last_num_blocks_is_14_88: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,242 + jae NEAR $L$_16_blocks_overflow_115 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd ymm5,ymm4,ymm27 + jmp NEAR $L$_16_blocks_ok_115 + +$L$_16_blocks_overflow_115: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb ymm5,ymm5,ymm29 +$L$_16_blocks_ok_115: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm5,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 ymm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast ymm5,ymm5,ymm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq ymm5,ymm5,ymm21 + vextracti32x4 xmm11,zmm5,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 YMMWORD[192+r11*1+r10]{k1},ymm5 + vmovdqu8 zmm5{k1}{z},zmm5 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb zmm20,zmm4,zmm29 + vpshufb ymm21,ymm5,ymm29 + vextracti32x4 xmm7,zmm21,1 + sub r13,16 * (14 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_116 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[128+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm21,ymm1,0x01 + vpclmulqdq ymm5,ymm21,ymm1,0x10 + vpclmulqdq ymm0,ymm21,ymm1,0x11 + vpclmulqdq ymm3,ymm21,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_116 +$L$_small_initial_partial_block_116: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[144+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm21,xmm1,0x01 + vpclmulqdq xmm5,xmm21,xmm1,0x10 + vpclmulqdq xmm0,xmm21,xmm1,0x11 + vpclmulqdq xmm3,xmm21,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_116: + + or r13,r13 + je NEAR $L$_after_reduction_116 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_116: + jmp NEAR $L$_last_blocks_done_88 +$L$_last_num_blocks_is_15_88: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,241 + jae NEAR $L$_16_blocks_overflow_117 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_117 + +$L$_16_blocks_overflow_117: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_117: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm5,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + vextracti32x4 xmm11,zmm5,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[192+r11*1+r10]{k1},zmm5 + vmovdqu8 zmm5{k1}{z},zmm5 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb zmm20,zmm4,zmm29 + vpshufb zmm21,zmm5,zmm29 + vextracti32x4 xmm7,zmm21,2 + sub r13,16 * (15 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_118 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[112+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm21,zmm1,0x01 + vpclmulqdq zmm5,zmm21,zmm1,0x10 + vpclmulqdq zmm0,zmm21,zmm1,0x11 + vpclmulqdq zmm3,zmm21,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_118 +$L$_small_initial_partial_block_118: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[128+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm21,ymm1,0x01 + vpclmulqdq ymm5,ymm21,ymm1,0x10 + vpclmulqdq ymm0,ymm21,ymm1,0x11 + vpclmulqdq ymm3,ymm21,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_118: + + or r13,r13 + je NEAR $L$_after_reduction_118 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_118: + jmp NEAR $L$_last_blocks_done_88 +$L$_last_num_blocks_is_16_88: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,240 + jae NEAR $L$_16_blocks_overflow_119 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_119 + +$L$_16_blocks_overflow_119: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_119: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm5,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + vextracti32x4 xmm11,zmm5,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[192+r11*1+r10]{k1},zmm5 + vmovdqu8 zmm5{k1}{z},zmm5 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb zmm20,zmm4,zmm29 + vpshufb zmm21,zmm5,zmm29 + vextracti32x4 xmm7,zmm21,3 + sub r13,16 * (16 - 1) +$L$_small_initial_partial_block_120: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[112+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm21,zmm1,0x01 + vpclmulqdq zmm5,zmm21,zmm1,0x10 + vpclmulqdq zmm0,zmm21,zmm1,0x11 + vpclmulqdq zmm3,zmm21,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_120: + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_120: + jmp NEAR $L$_last_blocks_done_88 +$L$_last_num_blocks_is_0_88: + vmovdqa64 zmm13,ZMMWORD[1280+rsp] + vmovdqu64 zmm12,ZMMWORD[512+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[1344+rsp] + vmovdqu64 zmm12,ZMMWORD[576+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + vpternlogq zmm26,zmm4,zmm10,0x96 + vpternlogq zmm24,zmm0,zmm6,0x96 + vpternlogq zmm25,zmm3,zmm7,0x96 + vpternlogq zmm26,zmm5,zmm11,0x96 + vmovdqa64 zmm13,ZMMWORD[1408+rsp] + vmovdqu64 zmm12,ZMMWORD[640+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[1472+rsp] + vmovdqu64 zmm12,ZMMWORD[704+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + + vpternlogq zmm26,zmm4,zmm10,0x96 + vpternlogq zmm24,zmm0,zmm6,0x96 + vpternlogq zmm25,zmm3,zmm7,0x96 + vpternlogq zmm26,zmm5,zmm11,0x96 + + vpsrldq zmm0,zmm26,8 + vpslldq zmm3,zmm26,8 + vpxorq zmm24,zmm24,zmm0 + vpxorq zmm25,zmm25,zmm3 + vextracti64x4 ymm0,zmm24,1 + vpxorq ymm24,ymm24,ymm0 + vextracti32x4 xmm0,ymm24,1 + vpxorq xmm24,xmm24,xmm0 + vextracti64x4 ymm3,zmm25,1 + vpxorq ymm25,ymm25,ymm3 + vextracti32x4 xmm3,ymm25,1 + vpxorq xmm25,xmm25,xmm3 + vmovdqa64 xmm4,XMMWORD[POLY2] + + + vpclmulqdq xmm0,xmm4,xmm25,0x01 + vpslldq xmm0,xmm0,8 + vpxorq xmm0,xmm25,xmm0 + + + vpclmulqdq xmm3,xmm4,xmm0,0x00 + vpsrldq xmm3,xmm3,4 + vpclmulqdq xmm14,xmm4,xmm0,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm3,xmm24,0x96 + +$L$_last_blocks_done_88: + vpshufb xmm2,xmm2,xmm29 + jmp NEAR $L$_ghash_done_10 + +$L$_message_below_32_blocks_10: + + + sub r13,256 + add r11,256 + mov r10d,r13d + test r14,r14 + jnz NEAR $L$_skip_hkeys_precomputation_121 + vmovdqu64 zmm3,ZMMWORD[640+rsp] + + + vshufi64x2 zmm3,zmm3,zmm3,0x00 + + vmovdqu64 zmm4,ZMMWORD[576+rsp] + vmovdqu64 zmm5,ZMMWORD[512+rsp] + + vpclmulqdq zmm6,zmm4,zmm3,0x11 + vpclmulqdq zmm7,zmm4,zmm3,0x00 + vpclmulqdq zmm10,zmm4,zmm3,0x01 + vpclmulqdq zmm4,zmm4,zmm3,0x10 + vpxorq zmm4,zmm4,zmm10 + + vpsrldq zmm10,zmm4,8 + vpslldq zmm4,zmm4,8 + vpxorq zmm6,zmm6,zmm10 + vpxorq zmm4,zmm4,zmm7 + + + + vmovdqu64 zmm10,ZMMWORD[POLY2] + + vpclmulqdq zmm7,zmm10,zmm4,0x01 + vpslldq zmm7,zmm7,8 + vpxorq zmm4,zmm4,zmm7 + + + + vpclmulqdq zmm7,zmm10,zmm4,0x00 + vpsrldq zmm7,zmm7,4 + vpclmulqdq zmm4,zmm10,zmm4,0x10 + vpslldq zmm4,zmm4,4 + + vpternlogq zmm4,zmm6,zmm7,0x96 + + vmovdqu64 ZMMWORD[448+rsp],zmm4 + + vpclmulqdq zmm6,zmm5,zmm3,0x11 + vpclmulqdq zmm7,zmm5,zmm3,0x00 + vpclmulqdq zmm10,zmm5,zmm3,0x01 + vpclmulqdq zmm5,zmm5,zmm3,0x10 + vpxorq zmm5,zmm5,zmm10 + + vpsrldq zmm10,zmm5,8 + vpslldq zmm5,zmm5,8 + vpxorq zmm6,zmm6,zmm10 + vpxorq zmm5,zmm5,zmm7 + + + + vmovdqu64 zmm10,ZMMWORD[POLY2] + + vpclmulqdq zmm7,zmm10,zmm5,0x01 + vpslldq zmm7,zmm7,8 + vpxorq zmm5,zmm5,zmm7 + + + + vpclmulqdq zmm7,zmm10,zmm5,0x00 + vpsrldq zmm7,zmm7,4 + vpclmulqdq zmm5,zmm10,zmm5,0x10 + vpslldq zmm5,zmm5,4 + + vpternlogq zmm5,zmm6,zmm7,0x96 + + vmovdqu64 ZMMWORD[384+rsp],zmm5 + + vpclmulqdq zmm6,zmm4,zmm3,0x11 + vpclmulqdq zmm7,zmm4,zmm3,0x00 + vpclmulqdq zmm10,zmm4,zmm3,0x01 + vpclmulqdq zmm4,zmm4,zmm3,0x10 + vpxorq zmm4,zmm4,zmm10 + + vpsrldq zmm10,zmm4,8 + vpslldq zmm4,zmm4,8 + vpxorq zmm6,zmm6,zmm10 + vpxorq zmm4,zmm4,zmm7 + + + + vmovdqu64 zmm10,ZMMWORD[POLY2] + + vpclmulqdq zmm7,zmm10,zmm4,0x01 + vpslldq zmm7,zmm7,8 + vpxorq zmm4,zmm4,zmm7 + + + + vpclmulqdq zmm7,zmm10,zmm4,0x00 + vpsrldq zmm7,zmm7,4 + vpclmulqdq zmm4,zmm10,zmm4,0x10 + vpslldq zmm4,zmm4,4 + + vpternlogq zmm4,zmm6,zmm7,0x96 + + vmovdqu64 ZMMWORD[320+rsp],zmm4 + + vpclmulqdq zmm6,zmm5,zmm3,0x11 + vpclmulqdq zmm7,zmm5,zmm3,0x00 + vpclmulqdq zmm10,zmm5,zmm3,0x01 + vpclmulqdq zmm5,zmm5,zmm3,0x10 + vpxorq zmm5,zmm5,zmm10 + + vpsrldq zmm10,zmm5,8 + vpslldq zmm5,zmm5,8 + vpxorq zmm6,zmm6,zmm10 + vpxorq zmm5,zmm5,zmm7 + + + + vmovdqu64 zmm10,ZMMWORD[POLY2] + + vpclmulqdq zmm7,zmm10,zmm5,0x01 + vpslldq zmm7,zmm7,8 + vpxorq zmm5,zmm5,zmm7 + + + + vpclmulqdq zmm7,zmm10,zmm5,0x00 + vpsrldq zmm7,zmm7,4 + vpclmulqdq zmm5,zmm10,zmm5,0x10 + vpslldq zmm5,zmm5,4 + + vpternlogq zmm5,zmm6,zmm7,0x96 + + vmovdqu64 ZMMWORD[256+rsp],zmm5 +$L$_skip_hkeys_precomputation_121: + mov r14,1 + and r10d,~15 + mov ebx,512 + sub ebx,r10d + mov r10d,r13d + add r10d,15 + shr r10d,4 + je NEAR $L$_last_num_blocks_is_0_122 + + cmp r10d,8 + je NEAR $L$_last_num_blocks_is_8_122 + jb NEAR $L$_last_num_blocks_is_7_1_122 + + + cmp r10d,12 + je NEAR $L$_last_num_blocks_is_12_122 + jb NEAR $L$_last_num_blocks_is_11_9_122 + + + cmp r10d,15 + je NEAR $L$_last_num_blocks_is_15_122 + ja NEAR $L$_last_num_blocks_is_16_122 + cmp r10d,14 + je NEAR $L$_last_num_blocks_is_14_122 + jmp NEAR $L$_last_num_blocks_is_13_122 + +$L$_last_num_blocks_is_11_9_122: + + cmp r10d,10 + je NEAR $L$_last_num_blocks_is_10_122 + ja NEAR $L$_last_num_blocks_is_11_122 + jmp NEAR $L$_last_num_blocks_is_9_122 + +$L$_last_num_blocks_is_7_1_122: + cmp r10d,4 + je NEAR $L$_last_num_blocks_is_4_122 + jb NEAR $L$_last_num_blocks_is_3_1_122 + + cmp r10d,6 + ja NEAR $L$_last_num_blocks_is_7_122 + je NEAR $L$_last_num_blocks_is_6_122 + jmp NEAR $L$_last_num_blocks_is_5_122 + +$L$_last_num_blocks_is_3_1_122: + + cmp r10d,2 + ja NEAR $L$_last_num_blocks_is_3_122 + je NEAR $L$_last_num_blocks_is_2_122 +$L$_last_num_blocks_is_1_122: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,255 + jae NEAR $L$_16_blocks_overflow_123 + vpaddd xmm0,xmm2,xmm28 + jmp NEAR $L$_16_blocks_ok_123 + +$L$_16_blocks_overflow_123: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb xmm0,xmm0,xmm29 +$L$_16_blocks_ok_123: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm0,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 xmm17{k1}{z},[r11*1+r9] + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc xmm0,xmm0,xmm31 + vaesenclast xmm0,xmm0,xmm30 + vpxorq xmm0,xmm0,xmm17 + vextracti32x4 xmm11,zmm0,0 + mov r10,QWORD[120+rbp] + vmovdqu8 XMMWORD[r11*1+r10]{k1},xmm0 + vmovdqu8 zmm0{k1}{z},zmm0 + vpshufb xmm17,xmm0,xmm29 + vextracti32x4 xmm7,zmm17,0 + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_124 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm17,xmm1,0x01 + vpclmulqdq xmm5,xmm17,xmm1,0x10 + vpclmulqdq xmm0,xmm17,xmm1,0x11 + vpclmulqdq xmm3,xmm17,xmm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_124 +$L$_small_initial_partial_block_124: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + + + vpsrldq zmm0,zmm26,8 + vpslldq zmm3,zmm26,8 + vpxorq zmm24,zmm24,zmm0 + vpxorq zmm25,zmm25,zmm3 + vextracti64x4 ymm0,zmm24,1 + vpxorq ymm24,ymm24,ymm0 + vextracti32x4 xmm0,ymm24,1 + vpxorq xmm24,xmm24,xmm0 + vextracti64x4 ymm3,zmm25,1 + vpxorq ymm25,ymm25,ymm3 + vextracti32x4 xmm3,ymm25,1 + vpxorq xmm25,xmm25,xmm3 + vmovdqa64 xmm0,XMMWORD[POLY2] + + + vpclmulqdq xmm3,xmm0,xmm25,0x01 + vpslldq xmm3,xmm3,8 + vpxorq xmm3,xmm25,xmm3 + + + vpclmulqdq xmm4,xmm0,xmm3,0x00 + vpsrldq xmm4,xmm4,4 + vpclmulqdq xmm14,xmm0,xmm3,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm4,xmm24,0x96 + + + + + + + + + + + + + vpxorq xmm14,xmm14,xmm7 + + jmp NEAR $L$_after_reduction_124 +$L$_small_initial_compute_done_124: +$L$_after_reduction_124: + jmp NEAR $L$_last_blocks_done_122 +$L$_last_num_blocks_is_2_122: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,254 + jae NEAR $L$_16_blocks_overflow_125 + vpaddd ymm0,ymm2,ymm28 + jmp NEAR $L$_16_blocks_ok_125 + +$L$_16_blocks_overflow_125: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb ymm0,ymm0,ymm29 +$L$_16_blocks_ok_125: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm0,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 ymm17{k1}{z},[r11*1+r9] + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc ymm0,ymm0,ymm31 + vaesenclast ymm0,ymm0,ymm30 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm11,zmm0,1 + mov r10,QWORD[120+rbp] + vmovdqu8 YMMWORD[r11*1+r10]{k1},ymm0 + vmovdqu8 zmm0{k1}{z},zmm0 + vpshufb ymm17,ymm0,ymm29 + vextracti32x4 xmm7,zmm17,1 + sub r13,16 * (2 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_126 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm17,ymm1,0x01 + vpclmulqdq ymm5,ymm17,ymm1,0x10 + vpclmulqdq ymm0,ymm17,ymm1,0x11 + vpclmulqdq ymm3,ymm17,ymm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_126 +$L$_small_initial_partial_block_126: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm17,xmm1,0x01 + vpclmulqdq xmm5,xmm17,xmm1,0x10 + vpclmulqdq xmm0,xmm17,xmm1,0x11 + vpclmulqdq xmm3,xmm17,xmm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_126: + + or r13,r13 + je NEAR $L$_after_reduction_126 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_126: + jmp NEAR $L$_last_blocks_done_122 +$L$_last_num_blocks_is_3_122: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,253 + jae NEAR $L$_16_blocks_overflow_127 + vpaddd zmm0,zmm2,zmm28 + jmp NEAR $L$_16_blocks_ok_127 + +$L$_16_blocks_overflow_127: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb zmm0,zmm0,zmm29 +$L$_16_blocks_ok_127: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm0,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17{k1}{z},[r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vpxorq zmm0,zmm0,zmm17 + vextracti32x4 xmm11,zmm0,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10]{k1},zmm0 + vmovdqu8 zmm0{k1}{z},zmm0 + vpshufb zmm17,zmm0,zmm29 + vextracti32x4 xmm7,zmm17,2 + sub r13,16 * (3 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_128 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_128 +$L$_small_initial_partial_block_128: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm17,ymm1,0x01 + vpclmulqdq ymm5,ymm17,ymm1,0x10 + vpclmulqdq ymm0,ymm17,ymm1,0x11 + vpclmulqdq ymm3,ymm17,ymm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_128: + + or r13,r13 + je NEAR $L$_after_reduction_128 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_128: + jmp NEAR $L$_last_blocks_done_122 +$L$_last_num_blocks_is_4_122: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,252 + jae NEAR $L$_16_blocks_overflow_129 + vpaddd zmm0,zmm2,zmm28 + jmp NEAR $L$_16_blocks_ok_129 + +$L$_16_blocks_overflow_129: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb zmm0,zmm0,zmm29 +$L$_16_blocks_ok_129: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm0,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17{k1}{z},[r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vpxorq zmm0,zmm0,zmm17 + vextracti32x4 xmm11,zmm0,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10]{k1},zmm0 + vmovdqu8 zmm0{k1}{z},zmm0 + vpshufb zmm17,zmm0,zmm29 + vextracti32x4 xmm7,zmm17,3 + sub r13,16 * (4 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_130 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_130 +$L$_small_initial_partial_block_130: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_130: + + or r13,r13 + je NEAR $L$_after_reduction_130 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_130: + jmp NEAR $L$_last_blocks_done_122 +$L$_last_num_blocks_is_5_122: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,251 + jae NEAR $L$_16_blocks_overflow_131 + vpaddd zmm0,zmm2,zmm28 + vpaddd xmm3,xmm0,xmm27 + jmp NEAR $L$_16_blocks_ok_131 + +$L$_16_blocks_overflow_131: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb xmm3,xmm3,xmm29 +$L$_16_blocks_ok_131: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm3,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 xmm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast xmm3,xmm3,xmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq xmm3,xmm3,xmm19 + vextracti32x4 xmm11,zmm3,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 XMMWORD[64+r11*1+r10]{k1},xmm3 + vmovdqu8 zmm3{k1}{z},zmm3 + vpshufb zmm17,zmm0,zmm29 + vpshufb xmm19,xmm3,xmm29 + vextracti32x4 xmm7,zmm19,0 + sub r13,16 * (5 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_132 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm19,xmm1,0x01 + vpclmulqdq xmm5,xmm19,xmm1,0x10 + vpclmulqdq xmm0,xmm19,xmm1,0x11 + vpclmulqdq xmm3,xmm19,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_132 +$L$_small_initial_partial_block_132: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_132: + + or r13,r13 + je NEAR $L$_after_reduction_132 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_132: + jmp NEAR $L$_last_blocks_done_122 +$L$_last_num_blocks_is_6_122: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,250 + jae NEAR $L$_16_blocks_overflow_133 + vpaddd zmm0,zmm2,zmm28 + vpaddd ymm3,ymm0,ymm27 + jmp NEAR $L$_16_blocks_ok_133 + +$L$_16_blocks_overflow_133: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb ymm3,ymm3,ymm29 +$L$_16_blocks_ok_133: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm3,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 ymm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast ymm3,ymm3,ymm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm11,zmm3,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 YMMWORD[64+r11*1+r10]{k1},ymm3 + vmovdqu8 zmm3{k1}{z},zmm3 + vpshufb zmm17,zmm0,zmm29 + vpshufb ymm19,ymm3,ymm29 + vextracti32x4 xmm7,zmm19,1 + sub r13,16 * (6 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_134 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm19,ymm1,0x01 + vpclmulqdq ymm5,ymm19,ymm1,0x10 + vpclmulqdq ymm0,ymm19,ymm1,0x11 + vpclmulqdq ymm3,ymm19,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_134 +$L$_small_initial_partial_block_134: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm19,xmm1,0x01 + vpclmulqdq xmm5,xmm19,xmm1,0x10 + vpclmulqdq xmm0,xmm19,xmm1,0x11 + vpclmulqdq xmm3,xmm19,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_134: + + or r13,r13 + je NEAR $L$_after_reduction_134 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_134: + jmp NEAR $L$_last_blocks_done_122 +$L$_last_num_blocks_is_7_122: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,249 + jae NEAR $L$_16_blocks_overflow_135 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + jmp NEAR $L$_16_blocks_ok_135 + +$L$_16_blocks_overflow_135: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 +$L$_16_blocks_ok_135: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm3,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti32x4 xmm11,zmm3,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10]{k1},zmm3 + vmovdqu8 zmm3{k1}{z},zmm3 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vextracti32x4 xmm7,zmm19,2 + sub r13,16 * (7 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_136 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm19,zmm1,0x01 + vpclmulqdq zmm5,zmm19,zmm1,0x10 + vpclmulqdq zmm0,zmm19,zmm1,0x11 + vpclmulqdq zmm3,zmm19,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_136 +$L$_small_initial_partial_block_136: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm19,ymm1,0x01 + vpclmulqdq ymm5,ymm19,ymm1,0x10 + vpclmulqdq ymm0,ymm19,ymm1,0x11 + vpclmulqdq ymm3,ymm19,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_136: + + or r13,r13 + je NEAR $L$_after_reduction_136 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_136: + jmp NEAR $L$_last_blocks_done_122 +$L$_last_num_blocks_is_8_122: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,248 + jae NEAR $L$_16_blocks_overflow_137 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + jmp NEAR $L$_16_blocks_ok_137 + +$L$_16_blocks_overflow_137: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 +$L$_16_blocks_ok_137: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm3,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti32x4 xmm11,zmm3,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10]{k1},zmm3 + vmovdqu8 zmm3{k1}{z},zmm3 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vextracti32x4 xmm7,zmm19,3 + sub r13,16 * (8 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_138 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_138 +$L$_small_initial_partial_block_138: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm19,zmm1,0x01 + vpclmulqdq zmm5,zmm19,zmm1,0x10 + vpclmulqdq zmm0,zmm19,zmm1,0x11 + vpclmulqdq zmm3,zmm19,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_138: + + or r13,r13 + je NEAR $L$_after_reduction_138 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_138: + jmp NEAR $L$_last_blocks_done_122 +$L$_last_num_blocks_is_9_122: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,247 + jae NEAR $L$_16_blocks_overflow_139 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd xmm4,xmm3,xmm27 + jmp NEAR $L$_16_blocks_ok_139 + +$L$_16_blocks_overflow_139: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb xmm4,xmm4,xmm29 +$L$_16_blocks_ok_139: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm4,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 xmm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast xmm4,xmm4,xmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq xmm4,xmm4,xmm20 + vextracti32x4 xmm11,zmm4,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 XMMWORD[128+r11*1+r10]{k1},xmm4 + vmovdqu8 zmm4{k1}{z},zmm4 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb xmm20,xmm4,xmm29 + vextracti32x4 xmm7,zmm20,0 + sub r13,16 * (9 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_140 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm20,xmm1,0x01 + vpclmulqdq xmm5,xmm20,xmm1,0x10 + vpclmulqdq xmm0,xmm20,xmm1,0x11 + vpclmulqdq xmm3,xmm20,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_140 +$L$_small_initial_partial_block_140: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_140: + + or r13,r13 + je NEAR $L$_after_reduction_140 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_140: + jmp NEAR $L$_last_blocks_done_122 +$L$_last_num_blocks_is_10_122: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,246 + jae NEAR $L$_16_blocks_overflow_141 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd ymm4,ymm3,ymm27 + jmp NEAR $L$_16_blocks_ok_141 + +$L$_16_blocks_overflow_141: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb ymm4,ymm4,ymm29 +$L$_16_blocks_ok_141: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm4,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 ymm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast ymm4,ymm4,ymm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq ymm4,ymm4,ymm20 + vextracti32x4 xmm11,zmm4,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 YMMWORD[128+r11*1+r10]{k1},ymm4 + vmovdqu8 zmm4{k1}{z},zmm4 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb ymm20,ymm4,ymm29 + vextracti32x4 xmm7,zmm20,1 + sub r13,16 * (10 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_142 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm20,ymm1,0x01 + vpclmulqdq ymm5,ymm20,ymm1,0x10 + vpclmulqdq ymm0,ymm20,ymm1,0x11 + vpclmulqdq ymm3,ymm20,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_142 +$L$_small_initial_partial_block_142: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm20,xmm1,0x01 + vpclmulqdq xmm5,xmm20,xmm1,0x10 + vpclmulqdq xmm0,xmm20,xmm1,0x11 + vpclmulqdq xmm3,xmm20,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_142: + + or r13,r13 + je NEAR $L$_after_reduction_142 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_142: + jmp NEAR $L$_last_blocks_done_122 +$L$_last_num_blocks_is_11_122: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,245 + jae NEAR $L$_16_blocks_overflow_143 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + jmp NEAR $L$_16_blocks_ok_143 + +$L$_16_blocks_overflow_143: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 +$L$_16_blocks_ok_143: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm4,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vextracti32x4 xmm11,zmm4,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10]{k1},zmm4 + vmovdqu8 zmm4{k1}{z},zmm4 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb zmm20,zmm4,zmm29 + vextracti32x4 xmm7,zmm20,2 + sub r13,16 * (11 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_144 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm20,zmm1,0x01 + vpclmulqdq zmm5,zmm20,zmm1,0x10 + vpclmulqdq zmm0,zmm20,zmm1,0x11 + vpclmulqdq zmm3,zmm20,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_144 +$L$_small_initial_partial_block_144: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm20,ymm1,0x01 + vpclmulqdq ymm5,ymm20,ymm1,0x10 + vpclmulqdq ymm0,ymm20,ymm1,0x11 + vpclmulqdq ymm3,ymm20,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_144: + + or r13,r13 + je NEAR $L$_after_reduction_144 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_144: + jmp NEAR $L$_last_blocks_done_122 +$L$_last_num_blocks_is_12_122: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,244 + jae NEAR $L$_16_blocks_overflow_145 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + jmp NEAR $L$_16_blocks_ok_145 + +$L$_16_blocks_overflow_145: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 +$L$_16_blocks_ok_145: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm4,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vextracti32x4 xmm11,zmm4,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10]{k1},zmm4 + vmovdqu8 zmm4{k1}{z},zmm4 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb zmm20,zmm4,zmm29 + vextracti32x4 xmm7,zmm20,3 + sub r13,16 * (12 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_146 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[160+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_146 +$L$_small_initial_partial_block_146: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm20,zmm1,0x01 + vpclmulqdq zmm5,zmm20,zmm1,0x10 + vpclmulqdq zmm0,zmm20,zmm1,0x11 + vpclmulqdq zmm3,zmm20,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_146: + + or r13,r13 + je NEAR $L$_after_reduction_146 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_146: + jmp NEAR $L$_last_blocks_done_122 +$L$_last_num_blocks_is_13_122: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,243 + jae NEAR $L$_16_blocks_overflow_147 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd xmm5,xmm4,xmm27 + jmp NEAR $L$_16_blocks_ok_147 + +$L$_16_blocks_overflow_147: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb xmm5,xmm5,xmm29 +$L$_16_blocks_ok_147: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm5,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 xmm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast xmm5,xmm5,xmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq xmm5,xmm5,xmm21 + vextracti32x4 xmm11,zmm5,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 XMMWORD[192+r11*1+r10]{k1},xmm5 + vmovdqu8 zmm5{k1}{z},zmm5 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb zmm20,zmm4,zmm29 + vpshufb xmm21,xmm5,xmm29 + vextracti32x4 xmm7,zmm21,0 + sub r13,16 * (13 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_148 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[144+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm21,xmm1,0x01 + vpclmulqdq xmm5,xmm21,xmm1,0x10 + vpclmulqdq xmm0,xmm21,xmm1,0x11 + vpclmulqdq xmm3,xmm21,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_148 +$L$_small_initial_partial_block_148: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[160+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_148: + + or r13,r13 + je NEAR $L$_after_reduction_148 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_148: + jmp NEAR $L$_last_blocks_done_122 +$L$_last_num_blocks_is_14_122: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,242 + jae NEAR $L$_16_blocks_overflow_149 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd ymm5,ymm4,ymm27 + jmp NEAR $L$_16_blocks_ok_149 + +$L$_16_blocks_overflow_149: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb ymm5,ymm5,ymm29 +$L$_16_blocks_ok_149: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm5,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 ymm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast ymm5,ymm5,ymm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq ymm5,ymm5,ymm21 + vextracti32x4 xmm11,zmm5,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 YMMWORD[192+r11*1+r10]{k1},ymm5 + vmovdqu8 zmm5{k1}{z},zmm5 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb zmm20,zmm4,zmm29 + vpshufb ymm21,ymm5,ymm29 + vextracti32x4 xmm7,zmm21,1 + sub r13,16 * (14 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_150 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[128+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm21,ymm1,0x01 + vpclmulqdq ymm5,ymm21,ymm1,0x10 + vpclmulqdq ymm0,ymm21,ymm1,0x11 + vpclmulqdq ymm3,ymm21,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_150 +$L$_small_initial_partial_block_150: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[144+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm21,xmm1,0x01 + vpclmulqdq xmm5,xmm21,xmm1,0x10 + vpclmulqdq xmm0,xmm21,xmm1,0x11 + vpclmulqdq xmm3,xmm21,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_150: + + or r13,r13 + je NEAR $L$_after_reduction_150 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_150: + jmp NEAR $L$_last_blocks_done_122 +$L$_last_num_blocks_is_15_122: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,241 + jae NEAR $L$_16_blocks_overflow_151 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_151 + +$L$_16_blocks_overflow_151: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_151: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm5,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + vextracti32x4 xmm11,zmm5,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[192+r11*1+r10]{k1},zmm5 + vmovdqu8 zmm5{k1}{z},zmm5 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb zmm20,zmm4,zmm29 + vpshufb zmm21,zmm5,zmm29 + vextracti32x4 xmm7,zmm21,2 + sub r13,16 * (15 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_152 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[112+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm21,zmm1,0x01 + vpclmulqdq zmm5,zmm21,zmm1,0x10 + vpclmulqdq zmm0,zmm21,zmm1,0x11 + vpclmulqdq zmm3,zmm21,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_152 +$L$_small_initial_partial_block_152: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[128+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm21,ymm1,0x01 + vpclmulqdq ymm5,ymm21,ymm1,0x10 + vpclmulqdq ymm0,ymm21,ymm1,0x11 + vpclmulqdq ymm3,ymm21,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_152: + + or r13,r13 + je NEAR $L$_after_reduction_152 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_152: + jmp NEAR $L$_last_blocks_done_122 +$L$_last_num_blocks_is_16_122: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,240 + jae NEAR $L$_16_blocks_overflow_153 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_153 + +$L$_16_blocks_overflow_153: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_153: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm5,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + vextracti32x4 xmm11,zmm5,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[192+r11*1+r10]{k1},zmm5 + vmovdqu8 zmm5{k1}{z},zmm5 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb zmm20,zmm4,zmm29 + vpshufb zmm21,zmm5,zmm29 + vextracti32x4 xmm7,zmm21,3 + sub r13,16 * (16 - 1) +$L$_small_initial_partial_block_154: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[112+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm21,zmm1,0x01 + vpclmulqdq zmm5,zmm21,zmm1,0x10 + vpclmulqdq zmm0,zmm21,zmm1,0x11 + vpclmulqdq zmm3,zmm21,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_154: + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_154: + jmp NEAR $L$_last_blocks_done_122 +$L$_last_num_blocks_is_0_122: + vmovdqa64 zmm13,ZMMWORD[768+rsp] + vpxorq zmm13,zmm13,zmm14 + vmovdqu64 zmm12,ZMMWORD[rbx*1+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[832+rsp] + vmovdqu64 zmm12,ZMMWORD[64+rbx*1+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + vpxorq zmm26,zmm4,zmm10 + vpxorq zmm24,zmm0,zmm6 + vpxorq zmm25,zmm3,zmm7 + vpternlogq zmm26,zmm5,zmm11,0x96 + vmovdqa64 zmm13,ZMMWORD[896+rsp] + vmovdqu64 zmm12,ZMMWORD[128+rbx*1+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[960+rsp] + vmovdqu64 zmm12,ZMMWORD[192+rbx*1+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + + vpternlogq zmm26,zmm4,zmm10,0x96 + vpternlogq zmm24,zmm0,zmm6,0x96 + vpternlogq zmm25,zmm3,zmm7,0x96 + vpternlogq zmm26,zmm5,zmm11,0x96 + + vpsrldq zmm0,zmm26,8 + vpslldq zmm3,zmm26,8 + vpxorq zmm24,zmm24,zmm0 + vpxorq zmm25,zmm25,zmm3 + vextracti64x4 ymm0,zmm24,1 + vpxorq ymm24,ymm24,ymm0 + vextracti32x4 xmm0,ymm24,1 + vpxorq xmm24,xmm24,xmm0 + vextracti64x4 ymm3,zmm25,1 + vpxorq ymm25,ymm25,ymm3 + vextracti32x4 xmm3,ymm25,1 + vpxorq xmm25,xmm25,xmm3 + vmovdqa64 xmm4,XMMWORD[POLY2] + + + vpclmulqdq xmm0,xmm4,xmm25,0x01 + vpslldq xmm0,xmm0,8 + vpxorq xmm0,xmm25,xmm0 + + + vpclmulqdq xmm3,xmm4,xmm0,0x00 + vpsrldq xmm3,xmm3,4 + vpclmulqdq xmm14,xmm4,xmm0,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm3,xmm24,0x96 + +$L$_last_blocks_done_122: + vpshufb xmm2,xmm2,xmm29 + jmp NEAR $L$_ghash_done_10 + +$L$_message_below_equal_16_blocks_10: + + + mov r12d,r13d + add r12d,15 + shr r12d,4 + cmp r12,8 + je NEAR $L$_small_initial_num_blocks_is_8_155 + jl NEAR $L$_small_initial_num_blocks_is_7_1_155 + + + cmp r12,12 + je NEAR $L$_small_initial_num_blocks_is_12_155 + jl NEAR $L$_small_initial_num_blocks_is_11_9_155 + + + cmp r12,16 + je NEAR $L$_small_initial_num_blocks_is_16_155 + cmp r12,15 + je NEAR $L$_small_initial_num_blocks_is_15_155 + cmp r12,14 + je NEAR $L$_small_initial_num_blocks_is_14_155 + jmp NEAR $L$_small_initial_num_blocks_is_13_155 + +$L$_small_initial_num_blocks_is_11_9_155: + + cmp r12,11 + je NEAR $L$_small_initial_num_blocks_is_11_155 + cmp r12,10 + je NEAR $L$_small_initial_num_blocks_is_10_155 + jmp NEAR $L$_small_initial_num_blocks_is_9_155 + +$L$_small_initial_num_blocks_is_7_1_155: + cmp r12,4 + je NEAR $L$_small_initial_num_blocks_is_4_155 + jl NEAR $L$_small_initial_num_blocks_is_3_1_155 + + cmp r12,7 + je NEAR $L$_small_initial_num_blocks_is_7_155 + cmp r12,6 + je NEAR $L$_small_initial_num_blocks_is_6_155 + jmp NEAR $L$_small_initial_num_blocks_is_5_155 + +$L$_small_initial_num_blocks_is_3_1_155: + + cmp r12,3 + je NEAR $L$_small_initial_num_blocks_is_3_155 + cmp r12,2 + je NEAR $L$_small_initial_num_blocks_is_2_155 + + + + + +$L$_small_initial_num_blocks_is_1_155: + vmovdqa64 xmm29,XMMWORD[SHUF_MASK] + vpaddd xmm0,xmm2,XMMWORD[ONE] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm0,0 + vpshufb xmm0,xmm0,xmm29 + vmovdqu8 xmm6{k1}{z},[r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq xmm0,xmm0,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc xmm0,xmm0,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc xmm0,xmm0,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc xmm0,xmm0,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc xmm0,xmm0,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc xmm0,xmm0,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc xmm0,xmm0,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc xmm0,xmm0,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc xmm0,xmm0,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc xmm0,xmm0,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenclast xmm0,xmm0,xmm15 + vpxorq xmm0,xmm0,xmm6 + vextracti32x4 xmm12,zmm0,0 + mov r10,QWORD[120+rbp] + vmovdqu8 XMMWORD[r11*1+r10]{k1},xmm0 + vmovdqu8 zmm0{k1}{z},zmm0 + vpshufb xmm6,xmm0,xmm29 + vextracti32x4 xmm13,zmm6,0 + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_156 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 xmm20,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm6,xmm20,0x01 + vpclmulqdq xmm5,xmm6,xmm20,0x10 + vpclmulqdq xmm0,xmm6,xmm20,0x11 + vpclmulqdq xmm3,xmm6,xmm20,0x00 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_156 +$L$_small_initial_partial_block_156: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + + + + + + + + + + + + vpxorq xmm14,xmm14,xmm13 + + jmp NEAR $L$_after_reduction_156 +$L$_small_initial_compute_done_156: +$L$_after_reduction_156: + jmp NEAR $L$_small_initial_blocks_encrypted_155 +$L$_small_initial_num_blocks_is_2_155: + vmovdqa64 ymm29,YMMWORD[SHUF_MASK] + vshufi64x2 ymm0,ymm2,ymm2,0 + vpaddd ymm0,ymm0,YMMWORD[ddq_add_1234] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm0,1 + vpshufb ymm0,ymm0,ymm29 + vmovdqu8 ymm6{k1}{z},[r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq ymm0,ymm0,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc ymm0,ymm0,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc ymm0,ymm0,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc ymm0,ymm0,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc ymm0,ymm0,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc ymm0,ymm0,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc ymm0,ymm0,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc ymm0,ymm0,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc ymm0,ymm0,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc ymm0,ymm0,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenclast ymm0,ymm0,ymm15 + vpxorq ymm0,ymm0,ymm6 + vextracti32x4 xmm12,zmm0,1 + mov r10,QWORD[120+rbp] + vmovdqu8 YMMWORD[r11*1+r10]{k1},ymm0 + vmovdqu8 zmm0{k1}{z},zmm0 + vpshufb ymm6,ymm0,ymm29 + vextracti32x4 xmm13,zmm6,1 + sub r13,16 * (2 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_157 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 ymm20,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm6,ymm20,0x01 + vpclmulqdq ymm5,ymm6,ymm20,0x10 + vpclmulqdq ymm0,ymm6,ymm20,0x11 + vpclmulqdq ymm3,ymm6,ymm20,0x00 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_157 +$L$_small_initial_partial_block_157: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 xmm20,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm6,xmm20,0x01 + vpclmulqdq xmm5,xmm6,xmm20,0x10 + vpclmulqdq xmm0,xmm6,xmm20,0x11 + vpclmulqdq xmm3,xmm6,xmm20,0x00 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_157: + + or r13,r13 + je NEAR $L$_after_reduction_157 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_157: + jmp NEAR $L$_small_initial_blocks_encrypted_155 +$L$_small_initial_num_blocks_is_3_155: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm0,2 + vpshufb zmm0,zmm0,zmm29 + vmovdqu8 zmm6{k1}{z},[r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenclast zmm0,zmm0,zmm15 + vpxorq zmm0,zmm0,zmm6 + vextracti32x4 xmm12,zmm0,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10]{k1},zmm0 + vmovdqu8 zmm0{k1}{z},zmm0 + vpshufb zmm6,zmm0,zmm29 + vextracti32x4 xmm13,zmm6,2 + sub r13,16 * (3 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_158 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 ymm20,YMMWORD[304+rdx] + vinserti64x2 zmm20,zmm20,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_158 +$L$_small_initial_partial_block_158: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 ymm20,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm6,ymm20,0x01 + vpclmulqdq ymm5,ymm6,ymm20,0x10 + vpclmulqdq ymm0,ymm6,ymm20,0x11 + vpclmulqdq ymm3,ymm6,ymm20,0x00 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_158: + + or r13,r13 + je NEAR $L$_after_reduction_158 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_158: + jmp NEAR $L$_small_initial_blocks_encrypted_155 +$L$_small_initial_num_blocks_is_4_155: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm0,3 + vpshufb zmm0,zmm0,zmm29 + vmovdqu8 zmm6{k1}{z},[r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenclast zmm0,zmm0,zmm15 + vpxorq zmm0,zmm0,zmm6 + vextracti32x4 xmm12,zmm0,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10]{k1},zmm0 + vmovdqu8 zmm0{k1}{z},zmm0 + vpshufb zmm6,zmm0,zmm29 + vextracti32x4 xmm13,zmm6,3 + sub r13,16 * (4 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_159 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[288+rdx] + vpclmulqdq zmm15,zmm6,zmm20,0x11 + vpclmulqdq zmm16,zmm6,zmm20,0x00 + vpclmulqdq zmm17,zmm6,zmm20,0x01 + vpclmulqdq zmm19,zmm6,zmm20,0x10 + + vpxorq zmm17,zmm17,zmm19 + vpsrldq zmm4,zmm17,8 + vpslldq zmm5,zmm17,8 + vpxorq zmm0,zmm15,zmm4 + vpxorq zmm3,zmm16,zmm5 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_159 +$L$_small_initial_partial_block_159: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 ymm20,YMMWORD[304+rdx] + vinserti64x2 zmm20,zmm20,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_159: + + or r13,r13 + je NEAR $L$_after_reduction_159 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_159: + jmp NEAR $L$_small_initial_blocks_encrypted_155 +$L$_small_initial_num_blocks_is_5_155: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm2,ZMMWORD[ddq_add_5678] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + sub r15,64 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm3,0 + vpshufb zmm0,zmm0,zmm29 + vpshufb xmm3,xmm3,xmm29 + vmovdqu8 zmm6,ZMMWORD[r11*1+r9] + vmovdqu8 xmm7{k1}{z},[64+r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vpxorq xmm3,xmm3,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc xmm3,xmm3,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc xmm3,xmm3,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc xmm3,xmm3,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc xmm3,xmm3,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc xmm3,xmm3,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc xmm3,xmm3,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc xmm3,xmm3,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc xmm3,xmm3,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc xmm3,xmm3,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenclast zmm0,zmm0,zmm15 + vaesenclast xmm3,xmm3,xmm15 + vpxorq zmm0,zmm0,zmm6 + vpxorq xmm3,xmm3,xmm7 + vextracti32x4 xmm12,zmm3,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 XMMWORD[64+r11*1+r10]{k1},xmm3 + vmovdqu8 zmm3{k1}{z},zmm3 + vpshufb zmm6,zmm0,zmm29 + vpshufb xmm7,xmm3,xmm29 + vextracti32x4 xmm13,zmm7,0 + sub r13,16 * (5 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_160 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[272+rdx] + vpclmulqdq zmm15,zmm6,zmm20,0x11 + vpclmulqdq zmm16,zmm6,zmm20,0x00 + vpclmulqdq zmm17,zmm6,zmm20,0x01 + vpclmulqdq zmm19,zmm6,zmm20,0x10 + vmovdqu64 xmm20,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm7,xmm20,0x01 + vpclmulqdq xmm5,xmm7,xmm20,0x10 + vpclmulqdq xmm0,xmm7,xmm20,0x11 + vpclmulqdq xmm3,xmm7,xmm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_160 +$L$_small_initial_partial_block_160: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[288+rdx] + vpclmulqdq zmm15,zmm6,zmm20,0x11 + vpclmulqdq zmm16,zmm6,zmm20,0x00 + vpclmulqdq zmm17,zmm6,zmm20,0x01 + vpclmulqdq zmm19,zmm6,zmm20,0x10 + + vpxorq zmm17,zmm17,zmm19 + vpsrldq zmm4,zmm17,8 + vpslldq zmm5,zmm17,8 + vpxorq zmm0,zmm15,zmm4 + vpxorq zmm3,zmm16,zmm5 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_160: + + or r13,r13 + je NEAR $L$_after_reduction_160 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_160: + jmp NEAR $L$_small_initial_blocks_encrypted_155 +$L$_small_initial_num_blocks_is_6_155: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm2,ZMMWORD[ddq_add_5678] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + sub r15,64 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm3,1 + vpshufb zmm0,zmm0,zmm29 + vpshufb ymm3,ymm3,ymm29 + vmovdqu8 zmm6,ZMMWORD[r11*1+r9] + vmovdqu8 ymm7{k1}{z},[64+r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vpxorq ymm3,ymm3,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc ymm3,ymm3,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc ymm3,ymm3,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc ymm3,ymm3,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc ymm3,ymm3,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc ymm3,ymm3,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc ymm3,ymm3,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc ymm3,ymm3,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc ymm3,ymm3,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc ymm3,ymm3,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenclast zmm0,zmm0,zmm15 + vaesenclast ymm3,ymm3,ymm15 + vpxorq zmm0,zmm0,zmm6 + vpxorq ymm3,ymm3,ymm7 + vextracti32x4 xmm12,zmm3,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 YMMWORD[64+r11*1+r10]{k1},ymm3 + vmovdqu8 zmm3{k1}{z},zmm3 + vpshufb zmm6,zmm0,zmm29 + vpshufb ymm7,ymm3,ymm29 + vextracti32x4 xmm13,zmm7,1 + sub r13,16 * (6 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_161 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[256+rdx] + vpclmulqdq zmm15,zmm6,zmm20,0x11 + vpclmulqdq zmm16,zmm6,zmm20,0x00 + vpclmulqdq zmm17,zmm6,zmm20,0x01 + vpclmulqdq zmm19,zmm6,zmm20,0x10 + vmovdqu64 ymm20,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm7,ymm20,0x01 + vpclmulqdq ymm5,ymm7,ymm20,0x10 + vpclmulqdq ymm0,ymm7,ymm20,0x11 + vpclmulqdq ymm3,ymm7,ymm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_161 +$L$_small_initial_partial_block_161: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[272+rdx] + vpclmulqdq zmm15,zmm6,zmm20,0x11 + vpclmulqdq zmm16,zmm6,zmm20,0x00 + vpclmulqdq zmm17,zmm6,zmm20,0x01 + vpclmulqdq zmm19,zmm6,zmm20,0x10 + vmovdqu64 xmm20,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm7,xmm20,0x01 + vpclmulqdq xmm5,xmm7,xmm20,0x10 + vpclmulqdq xmm0,xmm7,xmm20,0x11 + vpclmulqdq xmm3,xmm7,xmm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_161: + + or r13,r13 + je NEAR $L$_after_reduction_161 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_161: + jmp NEAR $L$_small_initial_blocks_encrypted_155 +$L$_small_initial_num_blocks_is_7_155: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm2,ZMMWORD[ddq_add_5678] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + sub r15,64 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm3,2 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vmovdqu8 zmm6,ZMMWORD[r11*1+r9] + vmovdqu8 zmm7{k1}{z},[64+r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenclast zmm0,zmm0,zmm15 + vaesenclast zmm3,zmm3,zmm15 + vpxorq zmm0,zmm0,zmm6 + vpxorq zmm3,zmm3,zmm7 + vextracti32x4 xmm12,zmm3,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10]{k1},zmm3 + vmovdqu8 zmm3{k1}{z},zmm3 + vpshufb zmm6,zmm0,zmm29 + vpshufb zmm7,zmm3,zmm29 + vextracti32x4 xmm13,zmm7,2 + sub r13,16 * (7 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_162 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[240+rdx] + vpclmulqdq zmm15,zmm6,zmm20,0x11 + vpclmulqdq zmm16,zmm6,zmm20,0x00 + vpclmulqdq zmm17,zmm6,zmm20,0x01 + vpclmulqdq zmm19,zmm6,zmm20,0x10 + vmovdqu64 ymm20,YMMWORD[304+rdx] + vinserti64x2 zmm20,zmm20,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm7,zmm20,0x01 + vpclmulqdq zmm5,zmm7,zmm20,0x10 + vpclmulqdq zmm0,zmm7,zmm20,0x11 + vpclmulqdq zmm3,zmm7,zmm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_162 +$L$_small_initial_partial_block_162: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[256+rdx] + vpclmulqdq zmm15,zmm6,zmm20,0x11 + vpclmulqdq zmm16,zmm6,zmm20,0x00 + vpclmulqdq zmm17,zmm6,zmm20,0x01 + vpclmulqdq zmm19,zmm6,zmm20,0x10 + vmovdqu64 ymm20,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm7,ymm20,0x01 + vpclmulqdq ymm5,ymm7,ymm20,0x10 + vpclmulqdq ymm0,ymm7,ymm20,0x11 + vpclmulqdq ymm3,ymm7,ymm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_162: + + or r13,r13 + je NEAR $L$_after_reduction_162 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_162: + jmp NEAR $L$_small_initial_blocks_encrypted_155 +$L$_small_initial_num_blocks_is_8_155: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm2,ZMMWORD[ddq_add_5678] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + sub r15,64 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm3,3 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vmovdqu8 zmm6,ZMMWORD[r11*1+r9] + vmovdqu8 zmm7{k1}{z},[64+r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenclast zmm0,zmm0,zmm15 + vaesenclast zmm3,zmm3,zmm15 + vpxorq zmm0,zmm0,zmm6 + vpxorq zmm3,zmm3,zmm7 + vextracti32x4 xmm12,zmm3,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10]{k1},zmm3 + vmovdqu8 zmm3{k1}{z},zmm3 + vpshufb zmm6,zmm0,zmm29 + vpshufb zmm7,zmm3,zmm29 + vextracti32x4 xmm13,zmm7,3 + sub r13,16 * (8 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_163 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[224+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[288+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vpxorq zmm15,zmm0,zmm15 + vpxorq zmm16,zmm3,zmm16 + vpxorq zmm17,zmm4,zmm17 + vpxorq zmm19,zmm5,zmm19 + + vpxorq zmm17,zmm17,zmm19 + vpsrldq zmm4,zmm17,8 + vpslldq zmm5,zmm17,8 + vpxorq zmm0,zmm15,zmm4 + vpxorq zmm3,zmm16,zmm5 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_163 +$L$_small_initial_partial_block_163: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[240+rdx] + vpclmulqdq zmm15,zmm6,zmm20,0x11 + vpclmulqdq zmm16,zmm6,zmm20,0x00 + vpclmulqdq zmm17,zmm6,zmm20,0x01 + vpclmulqdq zmm19,zmm6,zmm20,0x10 + vmovdqu64 ymm20,YMMWORD[304+rdx] + vinserti64x2 zmm20,zmm20,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm7,zmm20,0x01 + vpclmulqdq zmm5,zmm7,zmm20,0x10 + vpclmulqdq zmm0,zmm7,zmm20,0x11 + vpclmulqdq zmm3,zmm7,zmm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_163: + + or r13,r13 + je NEAR $L$_after_reduction_163 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_163: + jmp NEAR $L$_small_initial_blocks_encrypted_155 +$L$_small_initial_num_blocks_is_9_155: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm2,ZMMWORD[ddq_add_5678] + vpaddd zmm4,zmm0,ZMMWORD[ddq_add_8888] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + sub r15,128 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm4,0 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb xmm4,xmm4,xmm29 + vmovdqu8 zmm6,ZMMWORD[r11*1+r9] + vmovdqu8 zmm7,ZMMWORD[64+r11*1+r9] + vmovdqu8 xmm10{k1}{z},[128+r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm15 + vpxorq xmm4,xmm4,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc xmm4,xmm4,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc xmm4,xmm4,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc xmm4,xmm4,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc xmm4,xmm4,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc xmm4,xmm4,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc xmm4,xmm4,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc xmm4,xmm4,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc xmm4,xmm4,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc xmm4,xmm4,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenclast zmm0,zmm0,zmm15 + vaesenclast zmm3,zmm3,zmm15 + vaesenclast xmm4,xmm4,xmm15 + vpxorq zmm0,zmm0,zmm6 + vpxorq zmm3,zmm3,zmm7 + vpxorq xmm4,xmm4,xmm10 + vextracti32x4 xmm12,zmm4,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 XMMWORD[128+r11*1+r10]{k1},xmm4 + vmovdqu8 zmm4{k1}{z},zmm4 + vpshufb zmm6,zmm0,zmm29 + vpshufb zmm7,zmm3,zmm29 + vpshufb xmm10,xmm4,xmm29 + vextracti32x4 xmm13,zmm10,0 + sub r13,16 * (9 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_164 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[208+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[272+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vpxorq zmm15,zmm0,zmm15 + vpxorq zmm16,zmm3,zmm16 + vpxorq zmm17,zmm4,zmm17 + vpxorq zmm19,zmm5,zmm19 + vmovdqu64 xmm20,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm10,xmm20,0x01 + vpclmulqdq xmm5,xmm10,xmm20,0x10 + vpclmulqdq xmm0,xmm10,xmm20,0x11 + vpclmulqdq xmm3,xmm10,xmm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_164 +$L$_small_initial_partial_block_164: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[224+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[288+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vpxorq zmm15,zmm0,zmm15 + vpxorq zmm16,zmm3,zmm16 + vpxorq zmm17,zmm4,zmm17 + vpxorq zmm19,zmm5,zmm19 + + vpxorq zmm17,zmm17,zmm19 + vpsrldq zmm4,zmm17,8 + vpslldq zmm5,zmm17,8 + vpxorq zmm0,zmm15,zmm4 + vpxorq zmm3,zmm16,zmm5 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_164: + + or r13,r13 + je NEAR $L$_after_reduction_164 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_164: + jmp NEAR $L$_small_initial_blocks_encrypted_155 +$L$_small_initial_num_blocks_is_10_155: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm2,ZMMWORD[ddq_add_5678] + vpaddd zmm4,zmm0,ZMMWORD[ddq_add_8888] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + sub r15,128 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm4,1 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb ymm4,ymm4,ymm29 + vmovdqu8 zmm6,ZMMWORD[r11*1+r9] + vmovdqu8 zmm7,ZMMWORD[64+r11*1+r9] + vmovdqu8 ymm10{k1}{z},[128+r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm15 + vpxorq ymm4,ymm4,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc ymm4,ymm4,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc ymm4,ymm4,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc ymm4,ymm4,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc ymm4,ymm4,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc ymm4,ymm4,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc ymm4,ymm4,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc ymm4,ymm4,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc ymm4,ymm4,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc ymm4,ymm4,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenclast zmm0,zmm0,zmm15 + vaesenclast zmm3,zmm3,zmm15 + vaesenclast ymm4,ymm4,ymm15 + vpxorq zmm0,zmm0,zmm6 + vpxorq zmm3,zmm3,zmm7 + vpxorq ymm4,ymm4,ymm10 + vextracti32x4 xmm12,zmm4,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 YMMWORD[128+r11*1+r10]{k1},ymm4 + vmovdqu8 zmm4{k1}{z},zmm4 + vpshufb zmm6,zmm0,zmm29 + vpshufb zmm7,zmm3,zmm29 + vpshufb ymm10,ymm4,ymm29 + vextracti32x4 xmm13,zmm10,1 + sub r13,16 * (10 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_165 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[192+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[256+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vpxorq zmm15,zmm0,zmm15 + vpxorq zmm16,zmm3,zmm16 + vpxorq zmm17,zmm4,zmm17 + vpxorq zmm19,zmm5,zmm19 + vmovdqu64 ymm20,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm10,ymm20,0x01 + vpclmulqdq ymm5,ymm10,ymm20,0x10 + vpclmulqdq ymm0,ymm10,ymm20,0x11 + vpclmulqdq ymm3,ymm10,ymm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_165 +$L$_small_initial_partial_block_165: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[208+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[272+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vpxorq zmm15,zmm0,zmm15 + vpxorq zmm16,zmm3,zmm16 + vpxorq zmm17,zmm4,zmm17 + vpxorq zmm19,zmm5,zmm19 + vmovdqu64 xmm20,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm10,xmm20,0x01 + vpclmulqdq xmm5,xmm10,xmm20,0x10 + vpclmulqdq xmm0,xmm10,xmm20,0x11 + vpclmulqdq xmm3,xmm10,xmm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_165: + + or r13,r13 + je NEAR $L$_after_reduction_165 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_165: + jmp NEAR $L$_small_initial_blocks_encrypted_155 +$L$_small_initial_num_blocks_is_11_155: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm2,ZMMWORD[ddq_add_5678] + vpaddd zmm4,zmm0,ZMMWORD[ddq_add_8888] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + sub r15,128 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm4,2 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vmovdqu8 zmm6,ZMMWORD[r11*1+r9] + vmovdqu8 zmm7,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm10{k1}{z},[128+r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm15 + vpxorq zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenclast zmm0,zmm0,zmm15 + vaesenclast zmm3,zmm3,zmm15 + vaesenclast zmm4,zmm4,zmm15 + vpxorq zmm0,zmm0,zmm6 + vpxorq zmm3,zmm3,zmm7 + vpxorq zmm4,zmm4,zmm10 + vextracti32x4 xmm12,zmm4,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10]{k1},zmm4 + vmovdqu8 zmm4{k1}{z},zmm4 + vpshufb zmm6,zmm0,zmm29 + vpshufb zmm7,zmm3,zmm29 + vpshufb zmm10,zmm4,zmm29 + vextracti32x4 xmm13,zmm10,2 + sub r13,16 * (11 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_166 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[176+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[240+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vpxorq zmm15,zmm0,zmm15 + vpxorq zmm16,zmm3,zmm16 + vpxorq zmm17,zmm4,zmm17 + vpxorq zmm19,zmm5,zmm19 + vmovdqu64 ymm20,YMMWORD[304+rdx] + vinserti64x2 zmm20,zmm20,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm10,zmm20,0x01 + vpclmulqdq zmm5,zmm10,zmm20,0x10 + vpclmulqdq zmm0,zmm10,zmm20,0x11 + vpclmulqdq zmm3,zmm10,zmm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_166 +$L$_small_initial_partial_block_166: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[192+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[256+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vpxorq zmm15,zmm0,zmm15 + vpxorq zmm16,zmm3,zmm16 + vpxorq zmm17,zmm4,zmm17 + vpxorq zmm19,zmm5,zmm19 + vmovdqu64 ymm20,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm10,ymm20,0x01 + vpclmulqdq ymm5,ymm10,ymm20,0x10 + vpclmulqdq ymm0,ymm10,ymm20,0x11 + vpclmulqdq ymm3,ymm10,ymm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_166: + + or r13,r13 + je NEAR $L$_after_reduction_166 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_166: + jmp NEAR $L$_small_initial_blocks_encrypted_155 +$L$_small_initial_num_blocks_is_12_155: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm2,ZMMWORD[ddq_add_5678] + vpaddd zmm4,zmm0,ZMMWORD[ddq_add_8888] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + sub r15,128 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm4,3 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vmovdqu8 zmm6,ZMMWORD[r11*1+r9] + vmovdqu8 zmm7,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm10{k1}{z},[128+r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm15 + vpxorq zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenclast zmm0,zmm0,zmm15 + vaesenclast zmm3,zmm3,zmm15 + vaesenclast zmm4,zmm4,zmm15 + vpxorq zmm0,zmm0,zmm6 + vpxorq zmm3,zmm3,zmm7 + vpxorq zmm4,zmm4,zmm10 + vextracti32x4 xmm12,zmm4,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10]{k1},zmm4 + vmovdqu8 zmm4{k1}{z},zmm4 + vpshufb zmm6,zmm0,zmm29 + vpshufb zmm7,zmm3,zmm29 + vpshufb zmm10,zmm4,zmm29 + vextracti32x4 xmm13,zmm10,3 + sub r13,16 * (12 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_167 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[160+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[224+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[288+rdx] + vpclmulqdq zmm6,zmm10,zmm20,0x11 + vpclmulqdq zmm7,zmm10,zmm20,0x00 + vpternlogq zmm15,zmm6,zmm0,0x96 + vpternlogq zmm16,zmm7,zmm3,0x96 + vpclmulqdq zmm6,zmm10,zmm20,0x01 + vpclmulqdq zmm7,zmm10,zmm20,0x10 + vpternlogq zmm17,zmm6,zmm4,0x96 + vpternlogq zmm19,zmm7,zmm5,0x96 + + vpxorq zmm17,zmm17,zmm19 + vpsrldq zmm4,zmm17,8 + vpslldq zmm5,zmm17,8 + vpxorq zmm0,zmm15,zmm4 + vpxorq zmm3,zmm16,zmm5 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_167 +$L$_small_initial_partial_block_167: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[176+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[240+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vpxorq zmm15,zmm0,zmm15 + vpxorq zmm16,zmm3,zmm16 + vpxorq zmm17,zmm4,zmm17 + vpxorq zmm19,zmm5,zmm19 + vmovdqu64 ymm20,YMMWORD[304+rdx] + vinserti64x2 zmm20,zmm20,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm10,zmm20,0x01 + vpclmulqdq zmm5,zmm10,zmm20,0x10 + vpclmulqdq zmm0,zmm10,zmm20,0x11 + vpclmulqdq zmm3,zmm10,zmm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_167: + + or r13,r13 + je NEAR $L$_after_reduction_167 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_167: + jmp NEAR $L$_small_initial_blocks_encrypted_155 +$L$_small_initial_num_blocks_is_13_155: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm2,ZMMWORD[ddq_add_5678] + vpaddd zmm4,zmm0,ZMMWORD[ddq_add_8888] + vpaddd zmm5,zmm3,ZMMWORD[ddq_add_8888] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + sub r15,192 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm5,0 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb xmm5,xmm5,xmm29 + vmovdqu8 zmm6,ZMMWORD[r11*1+r9] + vmovdqu8 zmm7,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm10,ZMMWORD[128+r11*1+r9] + vmovdqu8 xmm11{k1}{z},[192+r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm15 + vpxorq zmm4,zmm4,zmm15 + vpxorq xmm5,xmm5,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc xmm5,xmm5,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc xmm5,xmm5,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc xmm5,xmm5,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc xmm5,xmm5,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc xmm5,xmm5,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc xmm5,xmm5,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc xmm5,xmm5,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc xmm5,xmm5,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc xmm5,xmm5,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenclast zmm0,zmm0,zmm15 + vaesenclast zmm3,zmm3,zmm15 + vaesenclast zmm4,zmm4,zmm15 + vaesenclast xmm5,xmm5,xmm15 + vpxorq zmm0,zmm0,zmm6 + vpxorq zmm3,zmm3,zmm7 + vpxorq zmm4,zmm4,zmm10 + vpxorq xmm5,xmm5,xmm11 + vextracti32x4 xmm12,zmm5,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 XMMWORD[192+r11*1+r10]{k1},xmm5 + vmovdqu8 zmm5{k1}{z},zmm5 + vpshufb zmm6,zmm0,zmm29 + vpshufb zmm7,zmm3,zmm29 + vpshufb zmm10,zmm4,zmm29 + vpshufb xmm11,xmm5,xmm29 + vextracti32x4 xmm13,zmm11,0 + sub r13,16 * (13 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_168 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[144+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[208+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[272+rdx] + vpclmulqdq zmm6,zmm10,zmm20,0x11 + vpclmulqdq zmm7,zmm10,zmm20,0x00 + vpternlogq zmm15,zmm6,zmm0,0x96 + vpternlogq zmm16,zmm7,zmm3,0x96 + vpclmulqdq zmm6,zmm10,zmm20,0x01 + vpclmulqdq zmm7,zmm10,zmm20,0x10 + vpternlogq zmm17,zmm6,zmm4,0x96 + vpternlogq zmm19,zmm7,zmm5,0x96 + vmovdqu64 xmm20,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm11,xmm20,0x01 + vpclmulqdq xmm5,xmm11,xmm20,0x10 + vpclmulqdq xmm0,xmm11,xmm20,0x11 + vpclmulqdq xmm3,xmm11,xmm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_168 +$L$_small_initial_partial_block_168: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[160+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[224+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[288+rdx] + vpclmulqdq zmm6,zmm10,zmm20,0x11 + vpclmulqdq zmm7,zmm10,zmm20,0x00 + vpternlogq zmm15,zmm6,zmm0,0x96 + vpternlogq zmm16,zmm7,zmm3,0x96 + vpclmulqdq zmm6,zmm10,zmm20,0x01 + vpclmulqdq zmm7,zmm10,zmm20,0x10 + vpternlogq zmm17,zmm6,zmm4,0x96 + vpternlogq zmm19,zmm7,zmm5,0x96 + + vpxorq zmm17,zmm17,zmm19 + vpsrldq zmm4,zmm17,8 + vpslldq zmm5,zmm17,8 + vpxorq zmm0,zmm15,zmm4 + vpxorq zmm3,zmm16,zmm5 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_168: + + or r13,r13 + je NEAR $L$_after_reduction_168 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_168: + jmp NEAR $L$_small_initial_blocks_encrypted_155 +$L$_small_initial_num_blocks_is_14_155: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm2,ZMMWORD[ddq_add_5678] + vpaddd zmm4,zmm0,ZMMWORD[ddq_add_8888] + vpaddd zmm5,zmm3,ZMMWORD[ddq_add_8888] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + sub r15,192 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm5,1 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb ymm5,ymm5,ymm29 + vmovdqu8 zmm6,ZMMWORD[r11*1+r9] + vmovdqu8 zmm7,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm10,ZMMWORD[128+r11*1+r9] + vmovdqu8 ymm11{k1}{z},[192+r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm15 + vpxorq zmm4,zmm4,zmm15 + vpxorq ymm5,ymm5,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc ymm5,ymm5,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc ymm5,ymm5,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc ymm5,ymm5,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc ymm5,ymm5,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc ymm5,ymm5,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc ymm5,ymm5,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc ymm5,ymm5,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc ymm5,ymm5,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc ymm5,ymm5,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenclast zmm0,zmm0,zmm15 + vaesenclast zmm3,zmm3,zmm15 + vaesenclast zmm4,zmm4,zmm15 + vaesenclast ymm5,ymm5,ymm15 + vpxorq zmm0,zmm0,zmm6 + vpxorq zmm3,zmm3,zmm7 + vpxorq zmm4,zmm4,zmm10 + vpxorq ymm5,ymm5,ymm11 + vextracti32x4 xmm12,zmm5,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 YMMWORD[192+r11*1+r10]{k1},ymm5 + vmovdqu8 zmm5{k1}{z},zmm5 + vpshufb zmm6,zmm0,zmm29 + vpshufb zmm7,zmm3,zmm29 + vpshufb zmm10,zmm4,zmm29 + vpshufb ymm11,ymm5,ymm29 + vextracti32x4 xmm13,zmm11,1 + sub r13,16 * (14 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_169 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[128+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[192+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[256+rdx] + vpclmulqdq zmm6,zmm10,zmm20,0x11 + vpclmulqdq zmm7,zmm10,zmm20,0x00 + vpternlogq zmm15,zmm6,zmm0,0x96 + vpternlogq zmm16,zmm7,zmm3,0x96 + vpclmulqdq zmm6,zmm10,zmm20,0x01 + vpclmulqdq zmm7,zmm10,zmm20,0x10 + vpternlogq zmm17,zmm6,zmm4,0x96 + vpternlogq zmm19,zmm7,zmm5,0x96 + vmovdqu64 ymm20,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm11,ymm20,0x01 + vpclmulqdq ymm5,ymm11,ymm20,0x10 + vpclmulqdq ymm0,ymm11,ymm20,0x11 + vpclmulqdq ymm3,ymm11,ymm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_169 +$L$_small_initial_partial_block_169: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[144+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[208+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[272+rdx] + vpclmulqdq zmm6,zmm10,zmm20,0x11 + vpclmulqdq zmm7,zmm10,zmm20,0x00 + vpternlogq zmm15,zmm6,zmm0,0x96 + vpternlogq zmm16,zmm7,zmm3,0x96 + vpclmulqdq zmm6,zmm10,zmm20,0x01 + vpclmulqdq zmm7,zmm10,zmm20,0x10 + vpternlogq zmm17,zmm6,zmm4,0x96 + vpternlogq zmm19,zmm7,zmm5,0x96 + vmovdqu64 xmm20,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm11,xmm20,0x01 + vpclmulqdq xmm5,xmm11,xmm20,0x10 + vpclmulqdq xmm0,xmm11,xmm20,0x11 + vpclmulqdq xmm3,xmm11,xmm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_169: + + or r13,r13 + je NEAR $L$_after_reduction_169 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_169: + jmp NEAR $L$_small_initial_blocks_encrypted_155 +$L$_small_initial_num_blocks_is_15_155: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm2,ZMMWORD[ddq_add_5678] + vpaddd zmm4,zmm0,ZMMWORD[ddq_add_8888] + vpaddd zmm5,zmm3,ZMMWORD[ddq_add_8888] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + sub r15,192 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm5,2 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 + vmovdqu8 zmm6,ZMMWORD[r11*1+r9] + vmovdqu8 zmm7,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm10,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm11{k1}{z},[192+r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm15 + vpxorq zmm4,zmm4,zmm15 + vpxorq zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenclast zmm0,zmm0,zmm15 + vaesenclast zmm3,zmm3,zmm15 + vaesenclast zmm4,zmm4,zmm15 + vaesenclast zmm5,zmm5,zmm15 + vpxorq zmm0,zmm0,zmm6 + vpxorq zmm3,zmm3,zmm7 + vpxorq zmm4,zmm4,zmm10 + vpxorq zmm5,zmm5,zmm11 + vextracti32x4 xmm12,zmm5,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[192+r11*1+r10]{k1},zmm5 + vmovdqu8 zmm5{k1}{z},zmm5 + vpshufb zmm6,zmm0,zmm29 + vpshufb zmm7,zmm3,zmm29 + vpshufb zmm10,zmm4,zmm29 + vpshufb zmm11,zmm5,zmm29 + vextracti32x4 xmm13,zmm11,2 + sub r13,16 * (15 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_170 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[112+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[176+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[240+rdx] + vpclmulqdq zmm6,zmm10,zmm20,0x11 + vpclmulqdq zmm7,zmm10,zmm20,0x00 + vpternlogq zmm15,zmm6,zmm0,0x96 + vpternlogq zmm16,zmm7,zmm3,0x96 + vpclmulqdq zmm6,zmm10,zmm20,0x01 + vpclmulqdq zmm7,zmm10,zmm20,0x10 + vpternlogq zmm17,zmm6,zmm4,0x96 + vpternlogq zmm19,zmm7,zmm5,0x96 + vmovdqu64 ymm20,YMMWORD[304+rdx] + vinserti64x2 zmm20,zmm20,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm11,zmm20,0x01 + vpclmulqdq zmm5,zmm11,zmm20,0x10 + vpclmulqdq zmm0,zmm11,zmm20,0x11 + vpclmulqdq zmm3,zmm11,zmm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_170 +$L$_small_initial_partial_block_170: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[128+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[192+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[256+rdx] + vpclmulqdq zmm6,zmm10,zmm20,0x11 + vpclmulqdq zmm7,zmm10,zmm20,0x00 + vpternlogq zmm15,zmm6,zmm0,0x96 + vpternlogq zmm16,zmm7,zmm3,0x96 + vpclmulqdq zmm6,zmm10,zmm20,0x01 + vpclmulqdq zmm7,zmm10,zmm20,0x10 + vpternlogq zmm17,zmm6,zmm4,0x96 + vpternlogq zmm19,zmm7,zmm5,0x96 + vmovdqu64 ymm20,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm11,ymm20,0x01 + vpclmulqdq ymm5,ymm11,ymm20,0x10 + vpclmulqdq ymm0,ymm11,ymm20,0x11 + vpclmulqdq ymm3,ymm11,ymm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_170: + + or r13,r13 + je NEAR $L$_after_reduction_170 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_170: + jmp NEAR $L$_small_initial_blocks_encrypted_155 +$L$_small_initial_num_blocks_is_16_155: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm2,ZMMWORD[ddq_add_5678] + vpaddd zmm4,zmm0,ZMMWORD[ddq_add_8888] + vpaddd zmm5,zmm3,ZMMWORD[ddq_add_8888] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + sub r15,192 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm5,3 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 + vmovdqu8 zmm6,ZMMWORD[r11*1+r9] + vmovdqu8 zmm7,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm10,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm11{k1}{z},[192+r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm15 + vpxorq zmm4,zmm4,zmm15 + vpxorq zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenclast zmm0,zmm0,zmm15 + vaesenclast zmm3,zmm3,zmm15 + vaesenclast zmm4,zmm4,zmm15 + vaesenclast zmm5,zmm5,zmm15 + vpxorq zmm0,zmm0,zmm6 + vpxorq zmm3,zmm3,zmm7 + vpxorq zmm4,zmm4,zmm10 + vpxorq zmm5,zmm5,zmm11 + vextracti32x4 xmm12,zmm5,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[192+r11*1+r10]{k1},zmm5 + vmovdqu8 zmm5{k1}{z},zmm5 + vpshufb zmm6,zmm0,zmm29 + vpshufb zmm7,zmm3,zmm29 + vpshufb zmm10,zmm4,zmm29 + vpshufb zmm11,zmm5,zmm29 + vextracti32x4 xmm13,zmm11,3 + sub r13,16 * (16 - 1) +$L$_small_initial_partial_block_171: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[112+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[176+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[240+rdx] + vpclmulqdq zmm6,zmm10,zmm20,0x11 + vpclmulqdq zmm7,zmm10,zmm20,0x00 + vpternlogq zmm15,zmm6,zmm0,0x96 + vpternlogq zmm16,zmm7,zmm3,0x96 + vpclmulqdq zmm6,zmm10,zmm20,0x01 + vpclmulqdq zmm7,zmm10,zmm20,0x10 + vpternlogq zmm17,zmm6,zmm4,0x96 + vpternlogq zmm19,zmm7,zmm5,0x96 + vmovdqu64 ymm20,YMMWORD[304+rdx] + vinserti64x2 zmm20,zmm20,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm11,zmm20,0x01 + vpclmulqdq zmm5,zmm11,zmm20,0x10 + vpclmulqdq zmm0,zmm11,zmm20,0x11 + vpclmulqdq zmm3,zmm11,zmm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_171: + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_171: +$L$_small_initial_blocks_encrypted_155: +$L$_ghash_done_10: + vmovdqu64 XMMWORD[rdx],xmm2 + vmovdqu64 XMMWORD[64+rdx],xmm14 +$L$_enc_dec_done_10: + jmp NEAR $L$exit_gcm_encrypt +ALIGN 32 +$L$aes_gcm_encrypt_192_avx512: + cmp QWORD[112+rbp],0 + je NEAR $L$_enc_dec_done_172 + xor r14,r14 + vmovdqu64 xmm14,XMMWORD[64+rdx] + + mov r11,QWORD[r8] + or r11,r11 + je NEAR $L$_partial_block_done_173 + mov r10d,16 + lea r12,[byte_len_to_mask_table] + cmp QWORD[112+rbp],r10 + cmovc r10,QWORD[112+rbp] + add r12,r10 + add r12,r10 + kmovw k1,[r12] + vmovdqu8 xmm0{k1}{z},[r9] + + vmovdqu64 xmm3,XMMWORD[16+rdx] + vmovdqu64 xmm4,XMMWORD[336+rdx] + + + + lea r12,[SHIFT_MASK] + add r12,r11 + vmovdqu64 xmm5,XMMWORD[r12] + vpshufb xmm3,xmm3,xmm5 + vpxorq xmm3,xmm3,xmm0 + + + mov r13,QWORD[112+rbp] + add r13,r11 + sub r13,16 + jge NEAR $L$_no_extra_mask_173 + sub r12,r13 +$L$_no_extra_mask_173: + + + + vmovdqu64 xmm0,XMMWORD[16+r12] + vpand xmm3,xmm3,xmm0 + vpshufb xmm3,xmm3,XMMWORD[SHUF_MASK] + vpshufb xmm3,xmm3,xmm5 + vpxorq xmm14,xmm14,xmm3 + cmp r13,0 + jl NEAR $L$_partial_incomplete_173 + + vpclmulqdq xmm7,xmm14,xmm4,0x11 + vpclmulqdq xmm10,xmm14,xmm4,0x00 + vpclmulqdq xmm11,xmm14,xmm4,0x01 + vpclmulqdq xmm14,xmm14,xmm4,0x10 + vpxorq xmm14,xmm14,xmm11 + + vpsrldq xmm11,xmm14,8 + vpslldq xmm14,xmm14,8 + vpxorq xmm7,xmm7,xmm11 + vpxorq xmm14,xmm14,xmm10 + + + + vmovdqu64 xmm11,XMMWORD[POLY2] + + vpclmulqdq xmm10,xmm11,xmm14,0x01 + vpslldq xmm10,xmm10,8 + vpxorq xmm14,xmm14,xmm10 + + + + vpclmulqdq xmm10,xmm11,xmm14,0x00 + vpsrldq xmm10,xmm10,4 + vpclmulqdq xmm14,xmm11,xmm14,0x10 + vpslldq xmm14,xmm14,4 + + vpternlogq xmm14,xmm7,xmm10,0x96 + + mov QWORD[r8],0 + + mov r12,r11 + mov r11,16 + sub r11,r12 + jmp NEAR $L$_enc_dec_done_173 + +$L$_partial_incomplete_173: + mov r12,QWORD[112+rbp] + add QWORD[r8],r12 + mov r11,QWORD[112+rbp] + +$L$_enc_dec_done_173: + + + lea r12,[byte_len_to_mask_table] + kmovw k1,[r11*2+r12] + vmovdqu64 XMMWORD[64+rdx],xmm14 + + vpshufb xmm3,xmm3,XMMWORD[SHUF_MASK] + vpshufb xmm3,xmm3,xmm5 + mov r12,QWORD[120+rbp] + vmovdqu8 XMMWORD[r12]{k1},xmm3 +$L$_partial_block_done_173: + vmovdqu64 xmm2,XMMWORD[rdx] + mov r13,QWORD[112+rbp] + sub r13,r11 + je NEAR $L$_enc_dec_done_172 + cmp r13,256 + jbe NEAR $L$_message_below_equal_16_blocks_172 + + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vmovdqa64 zmm27,ZMMWORD[ddq_addbe_4444] + vmovdqa64 zmm28,ZMMWORD[ddq_addbe_1234] + + + + + + + vmovd r15d,xmm2 + and r15d,255 + + vshufi64x2 zmm2,zmm2,zmm2,0 + vpshufb zmm2,zmm2,zmm29 + + + + cmp r15b,240 + jae NEAR $L$_next_16_overflow_174 + vpaddd zmm7,zmm2,zmm28 + vpaddd zmm10,zmm7,zmm27 + vpaddd zmm11,zmm10,zmm27 + vpaddd zmm12,zmm11,zmm27 + jmp NEAR $L$_next_16_ok_174 +$L$_next_16_overflow_174: + vpshufb zmm2,zmm2,zmm29 + vmovdqa64 zmm12,ZMMWORD[ddq_add_4444] + vpaddd zmm7,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm10,zmm7,zmm12 + vpaddd zmm11,zmm10,zmm12 + vpaddd zmm12,zmm11,zmm12 + vpshufb zmm7,zmm7,zmm29 + vpshufb zmm10,zmm10,zmm29 + vpshufb zmm11,zmm11,zmm29 + vpshufb zmm12,zmm12,zmm29 +$L$_next_16_ok_174: + vshufi64x2 zmm2,zmm12,zmm12,255 + add r15b,16 + + vmovdqu8 zmm0,ZMMWORD[r11*1+r9] + vmovdqu8 zmm3,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm4,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm5,ZMMWORD[192+r11*1+r9] + + + vbroadcastf64x2 zmm6,ZMMWORD[rcx] + vpxorq zmm7,zmm7,zmm6 + vpxorq zmm10,zmm10,zmm6 + vpxorq zmm11,zmm11,zmm6 + vpxorq zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[16+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[32+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[48+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[64+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[80+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[96+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[112+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[128+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[144+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[160+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[176+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[192+rcx] + vaesenclast zmm7,zmm7,zmm6 + vaesenclast zmm10,zmm10,zmm6 + vaesenclast zmm11,zmm11,zmm6 + vaesenclast zmm12,zmm12,zmm6 + + + vpxorq zmm7,zmm7,zmm0 + vpxorq zmm10,zmm10,zmm3 + vpxorq zmm11,zmm11,zmm4 + vpxorq zmm12,zmm12,zmm5 + + + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm7 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm10 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm11 + vmovdqu8 ZMMWORD[192+r11*1+r10],zmm12 + + vpshufb zmm7,zmm7,zmm29 + vpshufb zmm10,zmm10,zmm29 + vpshufb zmm11,zmm11,zmm29 + vpshufb zmm12,zmm12,zmm29 + vmovdqa64 ZMMWORD[768+rsp],zmm7 + vmovdqa64 ZMMWORD[832+rsp],zmm10 + vmovdqa64 ZMMWORD[896+rsp],zmm11 + vmovdqa64 ZMMWORD[960+rsp],zmm12 + test r14,r14 + jnz NEAR $L$_skip_hkeys_precomputation_175 + + vmovdqu64 zmm0,ZMMWORD[288+rdx] + vmovdqu64 ZMMWORD[704+rsp],zmm0 + + vmovdqu64 zmm3,ZMMWORD[224+rdx] + vmovdqu64 ZMMWORD[640+rsp],zmm3 + + + vshufi64x2 zmm3,zmm3,zmm3,0x00 + + vmovdqu64 zmm4,ZMMWORD[160+rdx] + vmovdqu64 ZMMWORD[576+rsp],zmm4 + + vmovdqu64 zmm5,ZMMWORD[96+rdx] + vmovdqu64 ZMMWORD[512+rsp],zmm5 +$L$_skip_hkeys_precomputation_175: + cmp r13,512 + jb NEAR $L$_message_below_32_blocks_172 + + + + cmp r15b,240 + jae NEAR $L$_next_16_overflow_176 + vpaddd zmm7,zmm2,zmm28 + vpaddd zmm10,zmm7,zmm27 + vpaddd zmm11,zmm10,zmm27 + vpaddd zmm12,zmm11,zmm27 + jmp NEAR $L$_next_16_ok_176 +$L$_next_16_overflow_176: + vpshufb zmm2,zmm2,zmm29 + vmovdqa64 zmm12,ZMMWORD[ddq_add_4444] + vpaddd zmm7,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm10,zmm7,zmm12 + vpaddd zmm11,zmm10,zmm12 + vpaddd zmm12,zmm11,zmm12 + vpshufb zmm7,zmm7,zmm29 + vpshufb zmm10,zmm10,zmm29 + vpshufb zmm11,zmm11,zmm29 + vpshufb zmm12,zmm12,zmm29 +$L$_next_16_ok_176: + vshufi64x2 zmm2,zmm12,zmm12,255 + add r15b,16 + + vmovdqu8 zmm0,ZMMWORD[256+r11*1+r9] + vmovdqu8 zmm3,ZMMWORD[320+r11*1+r9] + vmovdqu8 zmm4,ZMMWORD[384+r11*1+r9] + vmovdqu8 zmm5,ZMMWORD[448+r11*1+r9] + + + vbroadcastf64x2 zmm6,ZMMWORD[rcx] + vpxorq zmm7,zmm7,zmm6 + vpxorq zmm10,zmm10,zmm6 + vpxorq zmm11,zmm11,zmm6 + vpxorq zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[16+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[32+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[48+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[64+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[80+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[96+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[112+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[128+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[144+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[160+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[176+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[192+rcx] + vaesenclast zmm7,zmm7,zmm6 + vaesenclast zmm10,zmm10,zmm6 + vaesenclast zmm11,zmm11,zmm6 + vaesenclast zmm12,zmm12,zmm6 + + + vpxorq zmm7,zmm7,zmm0 + vpxorq zmm10,zmm10,zmm3 + vpxorq zmm11,zmm11,zmm4 + vpxorq zmm12,zmm12,zmm5 + + + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[256+r11*1+r10],zmm7 + vmovdqu8 ZMMWORD[320+r11*1+r10],zmm10 + vmovdqu8 ZMMWORD[384+r11*1+r10],zmm11 + vmovdqu8 ZMMWORD[448+r11*1+r10],zmm12 + + vpshufb zmm7,zmm7,zmm29 + vpshufb zmm10,zmm10,zmm29 + vpshufb zmm11,zmm11,zmm29 + vpshufb zmm12,zmm12,zmm29 + vmovdqa64 ZMMWORD[1024+rsp],zmm7 + vmovdqa64 ZMMWORD[1088+rsp],zmm10 + vmovdqa64 ZMMWORD[1152+rsp],zmm11 + vmovdqa64 ZMMWORD[1216+rsp],zmm12 + test r14,r14 + jnz NEAR $L$_skip_hkeys_precomputation_177 + vmovdqu64 zmm3,ZMMWORD[640+rsp] + + + vshufi64x2 zmm3,zmm3,zmm3,0x00 + + vmovdqu64 zmm4,ZMMWORD[576+rsp] + vmovdqu64 zmm5,ZMMWORD[512+rsp] + + vpclmulqdq zmm6,zmm4,zmm3,0x11 + vpclmulqdq zmm7,zmm4,zmm3,0x00 + vpclmulqdq zmm10,zmm4,zmm3,0x01 + vpclmulqdq zmm4,zmm4,zmm3,0x10 + vpxorq zmm4,zmm4,zmm10 + + vpsrldq zmm10,zmm4,8 + vpslldq zmm4,zmm4,8 + vpxorq zmm6,zmm6,zmm10 + vpxorq zmm4,zmm4,zmm7 + + + + vmovdqu64 zmm10,ZMMWORD[POLY2] + + vpclmulqdq zmm7,zmm10,zmm4,0x01 + vpslldq zmm7,zmm7,8 + vpxorq zmm4,zmm4,zmm7 + + + + vpclmulqdq zmm7,zmm10,zmm4,0x00 + vpsrldq zmm7,zmm7,4 + vpclmulqdq zmm4,zmm10,zmm4,0x10 + vpslldq zmm4,zmm4,4 + + vpternlogq zmm4,zmm6,zmm7,0x96 + + vmovdqu64 ZMMWORD[448+rsp],zmm4 + + vpclmulqdq zmm6,zmm5,zmm3,0x11 + vpclmulqdq zmm7,zmm5,zmm3,0x00 + vpclmulqdq zmm10,zmm5,zmm3,0x01 + vpclmulqdq zmm5,zmm5,zmm3,0x10 + vpxorq zmm5,zmm5,zmm10 + + vpsrldq zmm10,zmm5,8 + vpslldq zmm5,zmm5,8 + vpxorq zmm6,zmm6,zmm10 + vpxorq zmm5,zmm5,zmm7 + + + + vmovdqu64 zmm10,ZMMWORD[POLY2] + + vpclmulqdq zmm7,zmm10,zmm5,0x01 + vpslldq zmm7,zmm7,8 + vpxorq zmm5,zmm5,zmm7 + + + + vpclmulqdq zmm7,zmm10,zmm5,0x00 + vpsrldq zmm7,zmm7,4 + vpclmulqdq zmm5,zmm10,zmm5,0x10 + vpslldq zmm5,zmm5,4 + + vpternlogq zmm5,zmm6,zmm7,0x96 + + vmovdqu64 ZMMWORD[384+rsp],zmm5 + + vpclmulqdq zmm6,zmm4,zmm3,0x11 + vpclmulqdq zmm7,zmm4,zmm3,0x00 + vpclmulqdq zmm10,zmm4,zmm3,0x01 + vpclmulqdq zmm4,zmm4,zmm3,0x10 + vpxorq zmm4,zmm4,zmm10 + + vpsrldq zmm10,zmm4,8 + vpslldq zmm4,zmm4,8 + vpxorq zmm6,zmm6,zmm10 + vpxorq zmm4,zmm4,zmm7 + + + + vmovdqu64 zmm10,ZMMWORD[POLY2] + + vpclmulqdq zmm7,zmm10,zmm4,0x01 + vpslldq zmm7,zmm7,8 + vpxorq zmm4,zmm4,zmm7 + + + + vpclmulqdq zmm7,zmm10,zmm4,0x00 + vpsrldq zmm7,zmm7,4 + vpclmulqdq zmm4,zmm10,zmm4,0x10 + vpslldq zmm4,zmm4,4 + + vpternlogq zmm4,zmm6,zmm7,0x96 + + vmovdqu64 ZMMWORD[320+rsp],zmm4 + + vpclmulqdq zmm6,zmm5,zmm3,0x11 + vpclmulqdq zmm7,zmm5,zmm3,0x00 + vpclmulqdq zmm10,zmm5,zmm3,0x01 + vpclmulqdq zmm5,zmm5,zmm3,0x10 + vpxorq zmm5,zmm5,zmm10 + + vpsrldq zmm10,zmm5,8 + vpslldq zmm5,zmm5,8 + vpxorq zmm6,zmm6,zmm10 + vpxorq zmm5,zmm5,zmm7 + + + + vmovdqu64 zmm10,ZMMWORD[POLY2] + + vpclmulqdq zmm7,zmm10,zmm5,0x01 + vpslldq zmm7,zmm7,8 + vpxorq zmm5,zmm5,zmm7 + + + + vpclmulqdq zmm7,zmm10,zmm5,0x00 + vpsrldq zmm7,zmm7,4 + vpclmulqdq zmm5,zmm10,zmm5,0x10 + vpslldq zmm5,zmm5,4 + + vpternlogq zmm5,zmm6,zmm7,0x96 + + vmovdqu64 ZMMWORD[256+rsp],zmm5 + + vpclmulqdq zmm6,zmm4,zmm3,0x11 + vpclmulqdq zmm7,zmm4,zmm3,0x00 + vpclmulqdq zmm10,zmm4,zmm3,0x01 + vpclmulqdq zmm4,zmm4,zmm3,0x10 + vpxorq zmm4,zmm4,zmm10 + + vpsrldq zmm10,zmm4,8 + vpslldq zmm4,zmm4,8 + vpxorq zmm6,zmm6,zmm10 + vpxorq zmm4,zmm4,zmm7 + + + + vmovdqu64 zmm10,ZMMWORD[POLY2] + + vpclmulqdq zmm7,zmm10,zmm4,0x01 + vpslldq zmm7,zmm7,8 + vpxorq zmm4,zmm4,zmm7 + + + + vpclmulqdq zmm7,zmm10,zmm4,0x00 + vpsrldq zmm7,zmm7,4 + vpclmulqdq zmm4,zmm10,zmm4,0x10 + vpslldq zmm4,zmm4,4 + + vpternlogq zmm4,zmm6,zmm7,0x96 + + vmovdqu64 ZMMWORD[192+rsp],zmm4 + + vpclmulqdq zmm6,zmm5,zmm3,0x11 + vpclmulqdq zmm7,zmm5,zmm3,0x00 + vpclmulqdq zmm10,zmm5,zmm3,0x01 + vpclmulqdq zmm5,zmm5,zmm3,0x10 + vpxorq zmm5,zmm5,zmm10 + + vpsrldq zmm10,zmm5,8 + vpslldq zmm5,zmm5,8 + vpxorq zmm6,zmm6,zmm10 + vpxorq zmm5,zmm5,zmm7 + + + + vmovdqu64 zmm10,ZMMWORD[POLY2] + + vpclmulqdq zmm7,zmm10,zmm5,0x01 + vpslldq zmm7,zmm7,8 + vpxorq zmm5,zmm5,zmm7 + + + + vpclmulqdq zmm7,zmm10,zmm5,0x00 + vpsrldq zmm7,zmm7,4 + vpclmulqdq zmm5,zmm10,zmm5,0x10 + vpslldq zmm5,zmm5,4 + + vpternlogq zmm5,zmm6,zmm7,0x96 + + vmovdqu64 ZMMWORD[128+rsp],zmm5 + + vpclmulqdq zmm6,zmm4,zmm3,0x11 + vpclmulqdq zmm7,zmm4,zmm3,0x00 + vpclmulqdq zmm10,zmm4,zmm3,0x01 + vpclmulqdq zmm4,zmm4,zmm3,0x10 + vpxorq zmm4,zmm4,zmm10 + + vpsrldq zmm10,zmm4,8 + vpslldq zmm4,zmm4,8 + vpxorq zmm6,zmm6,zmm10 + vpxorq zmm4,zmm4,zmm7 + + + + vmovdqu64 zmm10,ZMMWORD[POLY2] + + vpclmulqdq zmm7,zmm10,zmm4,0x01 + vpslldq zmm7,zmm7,8 + vpxorq zmm4,zmm4,zmm7 + + + + vpclmulqdq zmm7,zmm10,zmm4,0x00 + vpsrldq zmm7,zmm7,4 + vpclmulqdq zmm4,zmm10,zmm4,0x10 + vpslldq zmm4,zmm4,4 + + vpternlogq zmm4,zmm6,zmm7,0x96 + + vmovdqu64 ZMMWORD[64+rsp],zmm4 + + vpclmulqdq zmm6,zmm5,zmm3,0x11 + vpclmulqdq zmm7,zmm5,zmm3,0x00 + vpclmulqdq zmm10,zmm5,zmm3,0x01 + vpclmulqdq zmm5,zmm5,zmm3,0x10 + vpxorq zmm5,zmm5,zmm10 + + vpsrldq zmm10,zmm5,8 + vpslldq zmm5,zmm5,8 + vpxorq zmm6,zmm6,zmm10 + vpxorq zmm5,zmm5,zmm7 + + + + vmovdqu64 zmm10,ZMMWORD[POLY2] + + vpclmulqdq zmm7,zmm10,zmm5,0x01 + vpslldq zmm7,zmm7,8 + vpxorq zmm5,zmm5,zmm7 + + + + vpclmulqdq zmm7,zmm10,zmm5,0x00 + vpsrldq zmm7,zmm7,4 + vpclmulqdq zmm5,zmm10,zmm5,0x10 + vpslldq zmm5,zmm5,4 + + vpternlogq zmm5,zmm6,zmm7,0x96 + + vmovdqu64 ZMMWORD[rsp],zmm5 +$L$_skip_hkeys_precomputation_177: + mov r14,1 + add r11,512 + sub r13,512 + + cmp r13,768 + jb NEAR $L$_no_more_big_nblocks_172 +$L$_encrypt_big_nblocks_172: + cmp r15b,240 + jae NEAR $L$_16_blocks_overflow_178 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_178 +$L$_16_blocks_overflow_178: + vpshufb zmm2,zmm2,zmm29 + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_178: + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rsp] + + + + + vshufi64x2 zmm2,zmm5,zmm5,255 + add r15b,16 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + + + + + + + + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + + vpclmulqdq zmm6,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + + vpternlogq zmm6,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + + + + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm21,ZMMWORD[192+r11*1+r9] + + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm26,zmm10,zmm15 + vpxorq zmm24,zmm6,zmm12 + vpxorq zmm25,zmm7,zmm13 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + + + + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + + + + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[192+r11*1+r10],zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 + vmovdqa64 ZMMWORD[1280+rsp],zmm0 + vmovdqa64 ZMMWORD[1344+rsp],zmm3 + vmovdqa64 ZMMWORD[1408+rsp],zmm4 + vmovdqa64 ZMMWORD[1472+rsp],zmm5 + cmp r15b,240 + jae NEAR $L$_16_blocks_overflow_179 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_179 +$L$_16_blocks_overflow_179: + vpshufb zmm2,zmm2,zmm29 + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_179: + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[256+rsp] + + + + + vshufi64x2 zmm2,zmm5,zmm5,255 + add r15b,16 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[320+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + + + + + + + + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + + vpclmulqdq zmm6,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[384+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[448+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + + vpternlogq zmm6,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + + + + vmovdqu8 zmm17,ZMMWORD[256+r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[320+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[384+r11*1+r9] + vmovdqu8 zmm21,ZMMWORD[448+r11*1+r9] + + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vpternlogq zmm24,zmm6,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + + + + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + + + + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[256+r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[320+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[384+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[448+r11*1+r10],zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 + vmovdqa64 ZMMWORD[768+rsp],zmm0 + vmovdqa64 ZMMWORD[832+rsp],zmm3 + vmovdqa64 ZMMWORD[896+rsp],zmm4 + vmovdqa64 ZMMWORD[960+rsp],zmm5 + cmp r15b,240 + jae NEAR $L$_16_blocks_overflow_180 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_180 +$L$_16_blocks_overflow_180: + vpshufb zmm2,zmm2,zmm29 + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_180: + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + + + + + vshufi64x2 zmm2,zmm5,zmm5,255 + add r15b,16 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + + + + + + + + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + + vpclmulqdq zmm6,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + + vpternlogq zmm6,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + + + + vmovdqu8 zmm17,ZMMWORD[512+r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[576+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[640+r11*1+r9] + vmovdqu8 zmm21,ZMMWORD[704+r11*1+r9] + + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + + + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpternlogq zmm6,zmm12,zmm15,0x96 + vpxorq zmm6,zmm6,zmm24 + vpternlogq zmm7,zmm13,zmm10,0x96 + vpxorq zmm7,zmm7,zmm25 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vextracti64x4 ymm12,zmm6,1 + vpxorq ymm6,ymm6,ymm12 + vextracti32x4 xmm12,ymm6,1 + vpxorq xmm6,xmm6,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm6,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + + + + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + + + + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[512+r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[576+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[640+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[704+r11*1+r10],zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 + vmovdqa64 ZMMWORD[1024+rsp],zmm0 + vmovdqa64 ZMMWORD[1088+rsp],zmm3 + vmovdqa64 ZMMWORD[1152+rsp],zmm4 + vmovdqa64 ZMMWORD[1216+rsp],zmm5 + vmovdqa64 zmm14,zmm6 + + add r11,768 + sub r13,768 + cmp r13,768 + jae NEAR $L$_encrypt_big_nblocks_172 + +$L$_no_more_big_nblocks_172: + + cmp r13,512 + jae NEAR $L$_encrypt_32_blocks_172 + + cmp r13,256 + jae NEAR $L$_encrypt_16_blocks_172 +$L$_encrypt_0_blocks_ghash_32_172: + mov r10d,r13d + and r10d,~15 + mov ebx,256 + sub ebx,r10d + vmovdqa64 zmm13,ZMMWORD[768+rsp] + vpxorq zmm13,zmm13,zmm14 + vmovdqu64 zmm12,ZMMWORD[rbx*1+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[832+rsp] + vmovdqu64 zmm12,ZMMWORD[64+rbx*1+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + vpxorq zmm26,zmm4,zmm10 + vpxorq zmm24,zmm0,zmm6 + vpxorq zmm25,zmm3,zmm7 + vpternlogq zmm26,zmm5,zmm11,0x96 + vmovdqa64 zmm13,ZMMWORD[896+rsp] + vmovdqu64 zmm12,ZMMWORD[128+rbx*1+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[960+rsp] + vmovdqu64 zmm12,ZMMWORD[192+rbx*1+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + + vpternlogq zmm26,zmm4,zmm10,0x96 + vpternlogq zmm24,zmm0,zmm6,0x96 + vpternlogq zmm25,zmm3,zmm7,0x96 + vpternlogq zmm26,zmm5,zmm11,0x96 + add ebx,256 + mov r10d,r13d + add r10d,15 + shr r10d,4 + je NEAR $L$_last_num_blocks_is_0_181 + + cmp r10d,8 + je NEAR $L$_last_num_blocks_is_8_181 + jb NEAR $L$_last_num_blocks_is_7_1_181 + + + cmp r10d,12 + je NEAR $L$_last_num_blocks_is_12_181 + jb NEAR $L$_last_num_blocks_is_11_9_181 + + + cmp r10d,15 + je NEAR $L$_last_num_blocks_is_15_181 + ja NEAR $L$_last_num_blocks_is_16_181 + cmp r10d,14 + je NEAR $L$_last_num_blocks_is_14_181 + jmp NEAR $L$_last_num_blocks_is_13_181 + +$L$_last_num_blocks_is_11_9_181: + + cmp r10d,10 + je NEAR $L$_last_num_blocks_is_10_181 + ja NEAR $L$_last_num_blocks_is_11_181 + jmp NEAR $L$_last_num_blocks_is_9_181 + +$L$_last_num_blocks_is_7_1_181: + cmp r10d,4 + je NEAR $L$_last_num_blocks_is_4_181 + jb NEAR $L$_last_num_blocks_is_3_1_181 + + cmp r10d,6 + ja NEAR $L$_last_num_blocks_is_7_181 + je NEAR $L$_last_num_blocks_is_6_181 + jmp NEAR $L$_last_num_blocks_is_5_181 + +$L$_last_num_blocks_is_3_1_181: + + cmp r10d,2 + ja NEAR $L$_last_num_blocks_is_3_181 + je NEAR $L$_last_num_blocks_is_2_181 +$L$_last_num_blocks_is_1_181: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,255 + jae NEAR $L$_16_blocks_overflow_182 + vpaddd xmm0,xmm2,xmm28 + jmp NEAR $L$_16_blocks_ok_182 + +$L$_16_blocks_overflow_182: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb xmm0,xmm0,xmm29 +$L$_16_blocks_ok_182: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm0,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 xmm17{k1}{z},[r11*1+r9] + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc xmm0,xmm0,xmm31 + vaesenclast xmm0,xmm0,xmm30 + vpxorq xmm0,xmm0,xmm17 + vextracti32x4 xmm11,zmm0,0 + mov r10,QWORD[120+rbp] + vmovdqu8 XMMWORD[r11*1+r10]{k1},xmm0 + vmovdqu8 zmm0{k1}{z},zmm0 + vpshufb xmm17,xmm0,xmm29 + vextracti32x4 xmm7,zmm17,0 + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_183 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm17,xmm1,0x01 + vpclmulqdq xmm5,xmm17,xmm1,0x10 + vpclmulqdq xmm0,xmm17,xmm1,0x11 + vpclmulqdq xmm3,xmm17,xmm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_183 +$L$_small_initial_partial_block_183: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + + + vpsrldq zmm0,zmm26,8 + vpslldq zmm3,zmm26,8 + vpxorq zmm24,zmm24,zmm0 + vpxorq zmm25,zmm25,zmm3 + vextracti64x4 ymm0,zmm24,1 + vpxorq ymm24,ymm24,ymm0 + vextracti32x4 xmm0,ymm24,1 + vpxorq xmm24,xmm24,xmm0 + vextracti64x4 ymm3,zmm25,1 + vpxorq ymm25,ymm25,ymm3 + vextracti32x4 xmm3,ymm25,1 + vpxorq xmm25,xmm25,xmm3 + vmovdqa64 xmm0,XMMWORD[POLY2] + + + vpclmulqdq xmm3,xmm0,xmm25,0x01 + vpslldq xmm3,xmm3,8 + vpxorq xmm3,xmm25,xmm3 + + + vpclmulqdq xmm4,xmm0,xmm3,0x00 + vpsrldq xmm4,xmm4,4 + vpclmulqdq xmm14,xmm0,xmm3,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm4,xmm24,0x96 + + + + + + + + + + + + + vpxorq xmm14,xmm14,xmm7 + + jmp NEAR $L$_after_reduction_183 +$L$_small_initial_compute_done_183: +$L$_after_reduction_183: + jmp NEAR $L$_last_blocks_done_181 +$L$_last_num_blocks_is_2_181: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,254 + jae NEAR $L$_16_blocks_overflow_184 + vpaddd ymm0,ymm2,ymm28 + jmp NEAR $L$_16_blocks_ok_184 + +$L$_16_blocks_overflow_184: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb ymm0,ymm0,ymm29 +$L$_16_blocks_ok_184: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm0,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 ymm17{k1}{z},[r11*1+r9] + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc ymm0,ymm0,ymm31 + vaesenclast ymm0,ymm0,ymm30 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm11,zmm0,1 + mov r10,QWORD[120+rbp] + vmovdqu8 YMMWORD[r11*1+r10]{k1},ymm0 + vmovdqu8 zmm0{k1}{z},zmm0 + vpshufb ymm17,ymm0,ymm29 + vextracti32x4 xmm7,zmm17,1 + sub r13,16 * (2 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_185 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm17,ymm1,0x01 + vpclmulqdq ymm5,ymm17,ymm1,0x10 + vpclmulqdq ymm0,ymm17,ymm1,0x11 + vpclmulqdq ymm3,ymm17,ymm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_185 +$L$_small_initial_partial_block_185: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm17,xmm1,0x01 + vpclmulqdq xmm5,xmm17,xmm1,0x10 + vpclmulqdq xmm0,xmm17,xmm1,0x11 + vpclmulqdq xmm3,xmm17,xmm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_185: + + or r13,r13 + je NEAR $L$_after_reduction_185 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_185: + jmp NEAR $L$_last_blocks_done_181 +$L$_last_num_blocks_is_3_181: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,253 + jae NEAR $L$_16_blocks_overflow_186 + vpaddd zmm0,zmm2,zmm28 + jmp NEAR $L$_16_blocks_ok_186 + +$L$_16_blocks_overflow_186: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb zmm0,zmm0,zmm29 +$L$_16_blocks_ok_186: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm0,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17{k1}{z},[r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vpxorq zmm0,zmm0,zmm17 + vextracti32x4 xmm11,zmm0,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10]{k1},zmm0 + vmovdqu8 zmm0{k1}{z},zmm0 + vpshufb zmm17,zmm0,zmm29 + vextracti32x4 xmm7,zmm17,2 + sub r13,16 * (3 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_187 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_187 +$L$_small_initial_partial_block_187: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm17,ymm1,0x01 + vpclmulqdq ymm5,ymm17,ymm1,0x10 + vpclmulqdq ymm0,ymm17,ymm1,0x11 + vpclmulqdq ymm3,ymm17,ymm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_187: + + or r13,r13 + je NEAR $L$_after_reduction_187 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_187: + jmp NEAR $L$_last_blocks_done_181 +$L$_last_num_blocks_is_4_181: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,252 + jae NEAR $L$_16_blocks_overflow_188 + vpaddd zmm0,zmm2,zmm28 + jmp NEAR $L$_16_blocks_ok_188 + +$L$_16_blocks_overflow_188: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb zmm0,zmm0,zmm29 +$L$_16_blocks_ok_188: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm0,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17{k1}{z},[r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vpxorq zmm0,zmm0,zmm17 + vextracti32x4 xmm11,zmm0,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10]{k1},zmm0 + vmovdqu8 zmm0{k1}{z},zmm0 + vpshufb zmm17,zmm0,zmm29 + vextracti32x4 xmm7,zmm17,3 + sub r13,16 * (4 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_189 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_189 +$L$_small_initial_partial_block_189: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_189: + + or r13,r13 + je NEAR $L$_after_reduction_189 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_189: + jmp NEAR $L$_last_blocks_done_181 +$L$_last_num_blocks_is_5_181: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,251 + jae NEAR $L$_16_blocks_overflow_190 + vpaddd zmm0,zmm2,zmm28 + vpaddd xmm3,xmm0,xmm27 + jmp NEAR $L$_16_blocks_ok_190 + +$L$_16_blocks_overflow_190: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb xmm3,xmm3,xmm29 +$L$_16_blocks_ok_190: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm3,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 xmm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast xmm3,xmm3,xmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq xmm3,xmm3,xmm19 + vextracti32x4 xmm11,zmm3,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 XMMWORD[64+r11*1+r10]{k1},xmm3 + vmovdqu8 zmm3{k1}{z},zmm3 + vpshufb zmm17,zmm0,zmm29 + vpshufb xmm19,xmm3,xmm29 + vextracti32x4 xmm7,zmm19,0 + sub r13,16 * (5 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_191 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm19,xmm1,0x01 + vpclmulqdq xmm5,xmm19,xmm1,0x10 + vpclmulqdq xmm0,xmm19,xmm1,0x11 + vpclmulqdq xmm3,xmm19,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_191 +$L$_small_initial_partial_block_191: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_191: + + or r13,r13 + je NEAR $L$_after_reduction_191 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_191: + jmp NEAR $L$_last_blocks_done_181 +$L$_last_num_blocks_is_6_181: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,250 + jae NEAR $L$_16_blocks_overflow_192 + vpaddd zmm0,zmm2,zmm28 + vpaddd ymm3,ymm0,ymm27 + jmp NEAR $L$_16_blocks_ok_192 + +$L$_16_blocks_overflow_192: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb ymm3,ymm3,ymm29 +$L$_16_blocks_ok_192: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm3,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 ymm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast ymm3,ymm3,ymm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm11,zmm3,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 YMMWORD[64+r11*1+r10]{k1},ymm3 + vmovdqu8 zmm3{k1}{z},zmm3 + vpshufb zmm17,zmm0,zmm29 + vpshufb ymm19,ymm3,ymm29 + vextracti32x4 xmm7,zmm19,1 + sub r13,16 * (6 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_193 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm19,ymm1,0x01 + vpclmulqdq ymm5,ymm19,ymm1,0x10 + vpclmulqdq ymm0,ymm19,ymm1,0x11 + vpclmulqdq ymm3,ymm19,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_193 +$L$_small_initial_partial_block_193: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm19,xmm1,0x01 + vpclmulqdq xmm5,xmm19,xmm1,0x10 + vpclmulqdq xmm0,xmm19,xmm1,0x11 + vpclmulqdq xmm3,xmm19,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_193: + + or r13,r13 + je NEAR $L$_after_reduction_193 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_193: + jmp NEAR $L$_last_blocks_done_181 +$L$_last_num_blocks_is_7_181: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,249 + jae NEAR $L$_16_blocks_overflow_194 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + jmp NEAR $L$_16_blocks_ok_194 + +$L$_16_blocks_overflow_194: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 +$L$_16_blocks_ok_194: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm3,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti32x4 xmm11,zmm3,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10]{k1},zmm3 + vmovdqu8 zmm3{k1}{z},zmm3 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vextracti32x4 xmm7,zmm19,2 + sub r13,16 * (7 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_195 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm19,zmm1,0x01 + vpclmulqdq zmm5,zmm19,zmm1,0x10 + vpclmulqdq zmm0,zmm19,zmm1,0x11 + vpclmulqdq zmm3,zmm19,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_195 +$L$_small_initial_partial_block_195: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm19,ymm1,0x01 + vpclmulqdq ymm5,ymm19,ymm1,0x10 + vpclmulqdq ymm0,ymm19,ymm1,0x11 + vpclmulqdq ymm3,ymm19,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_195: + + or r13,r13 + je NEAR $L$_after_reduction_195 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_195: + jmp NEAR $L$_last_blocks_done_181 +$L$_last_num_blocks_is_8_181: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,248 + jae NEAR $L$_16_blocks_overflow_196 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + jmp NEAR $L$_16_blocks_ok_196 + +$L$_16_blocks_overflow_196: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 +$L$_16_blocks_ok_196: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm3,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti32x4 xmm11,zmm3,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10]{k1},zmm3 + vmovdqu8 zmm3{k1}{z},zmm3 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vextracti32x4 xmm7,zmm19,3 + sub r13,16 * (8 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_197 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_197 +$L$_small_initial_partial_block_197: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm19,zmm1,0x01 + vpclmulqdq zmm5,zmm19,zmm1,0x10 + vpclmulqdq zmm0,zmm19,zmm1,0x11 + vpclmulqdq zmm3,zmm19,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_197: + + or r13,r13 + je NEAR $L$_after_reduction_197 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_197: + jmp NEAR $L$_last_blocks_done_181 +$L$_last_num_blocks_is_9_181: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,247 + jae NEAR $L$_16_blocks_overflow_198 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd xmm4,xmm3,xmm27 + jmp NEAR $L$_16_blocks_ok_198 + +$L$_16_blocks_overflow_198: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb xmm4,xmm4,xmm29 +$L$_16_blocks_ok_198: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm4,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 xmm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast xmm4,xmm4,xmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq xmm4,xmm4,xmm20 + vextracti32x4 xmm11,zmm4,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 XMMWORD[128+r11*1+r10]{k1},xmm4 + vmovdqu8 zmm4{k1}{z},zmm4 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb xmm20,xmm4,xmm29 + vextracti32x4 xmm7,zmm20,0 + sub r13,16 * (9 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_199 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm20,xmm1,0x01 + vpclmulqdq xmm5,xmm20,xmm1,0x10 + vpclmulqdq xmm0,xmm20,xmm1,0x11 + vpclmulqdq xmm3,xmm20,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_199 +$L$_small_initial_partial_block_199: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_199: + + or r13,r13 + je NEAR $L$_after_reduction_199 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_199: + jmp NEAR $L$_last_blocks_done_181 +$L$_last_num_blocks_is_10_181: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,246 + jae NEAR $L$_16_blocks_overflow_200 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd ymm4,ymm3,ymm27 + jmp NEAR $L$_16_blocks_ok_200 + +$L$_16_blocks_overflow_200: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb ymm4,ymm4,ymm29 +$L$_16_blocks_ok_200: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm4,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 ymm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast ymm4,ymm4,ymm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq ymm4,ymm4,ymm20 + vextracti32x4 xmm11,zmm4,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 YMMWORD[128+r11*1+r10]{k1},ymm4 + vmovdqu8 zmm4{k1}{z},zmm4 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb ymm20,ymm4,ymm29 + vextracti32x4 xmm7,zmm20,1 + sub r13,16 * (10 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_201 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm20,ymm1,0x01 + vpclmulqdq ymm5,ymm20,ymm1,0x10 + vpclmulqdq ymm0,ymm20,ymm1,0x11 + vpclmulqdq ymm3,ymm20,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_201 +$L$_small_initial_partial_block_201: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm20,xmm1,0x01 + vpclmulqdq xmm5,xmm20,xmm1,0x10 + vpclmulqdq xmm0,xmm20,xmm1,0x11 + vpclmulqdq xmm3,xmm20,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_201: + + or r13,r13 + je NEAR $L$_after_reduction_201 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_201: + jmp NEAR $L$_last_blocks_done_181 +$L$_last_num_blocks_is_11_181: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,245 + jae NEAR $L$_16_blocks_overflow_202 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + jmp NEAR $L$_16_blocks_ok_202 + +$L$_16_blocks_overflow_202: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 +$L$_16_blocks_ok_202: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm4,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vextracti32x4 xmm11,zmm4,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10]{k1},zmm4 + vmovdqu8 zmm4{k1}{z},zmm4 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb zmm20,zmm4,zmm29 + vextracti32x4 xmm7,zmm20,2 + sub r13,16 * (11 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_203 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm20,zmm1,0x01 + vpclmulqdq zmm5,zmm20,zmm1,0x10 + vpclmulqdq zmm0,zmm20,zmm1,0x11 + vpclmulqdq zmm3,zmm20,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_203 +$L$_small_initial_partial_block_203: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm20,ymm1,0x01 + vpclmulqdq ymm5,ymm20,ymm1,0x10 + vpclmulqdq ymm0,ymm20,ymm1,0x11 + vpclmulqdq ymm3,ymm20,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_203: + + or r13,r13 + je NEAR $L$_after_reduction_203 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_203: + jmp NEAR $L$_last_blocks_done_181 +$L$_last_num_blocks_is_12_181: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,244 + jae NEAR $L$_16_blocks_overflow_204 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + jmp NEAR $L$_16_blocks_ok_204 + +$L$_16_blocks_overflow_204: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 +$L$_16_blocks_ok_204: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm4,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vextracti32x4 xmm11,zmm4,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10]{k1},zmm4 + vmovdqu8 zmm4{k1}{z},zmm4 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb zmm20,zmm4,zmm29 + vextracti32x4 xmm7,zmm20,3 + sub r13,16 * (12 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_205 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[160+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_205 +$L$_small_initial_partial_block_205: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm20,zmm1,0x01 + vpclmulqdq zmm5,zmm20,zmm1,0x10 + vpclmulqdq zmm0,zmm20,zmm1,0x11 + vpclmulqdq zmm3,zmm20,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_205: + + or r13,r13 + je NEAR $L$_after_reduction_205 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_205: + jmp NEAR $L$_last_blocks_done_181 +$L$_last_num_blocks_is_13_181: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,243 + jae NEAR $L$_16_blocks_overflow_206 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd xmm5,xmm4,xmm27 + jmp NEAR $L$_16_blocks_ok_206 + +$L$_16_blocks_overflow_206: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb xmm5,xmm5,xmm29 +$L$_16_blocks_ok_206: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm5,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 xmm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast xmm5,xmm5,xmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq xmm5,xmm5,xmm21 + vextracti32x4 xmm11,zmm5,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 XMMWORD[192+r11*1+r10]{k1},xmm5 + vmovdqu8 zmm5{k1}{z},zmm5 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb zmm20,zmm4,zmm29 + vpshufb xmm21,xmm5,xmm29 + vextracti32x4 xmm7,zmm21,0 + sub r13,16 * (13 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_207 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[144+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm21,xmm1,0x01 + vpclmulqdq xmm5,xmm21,xmm1,0x10 + vpclmulqdq xmm0,xmm21,xmm1,0x11 + vpclmulqdq xmm3,xmm21,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_207 +$L$_small_initial_partial_block_207: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[160+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_207: + + or r13,r13 + je NEAR $L$_after_reduction_207 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_207: + jmp NEAR $L$_last_blocks_done_181 +$L$_last_num_blocks_is_14_181: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,242 + jae NEAR $L$_16_blocks_overflow_208 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd ymm5,ymm4,ymm27 + jmp NEAR $L$_16_blocks_ok_208 + +$L$_16_blocks_overflow_208: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb ymm5,ymm5,ymm29 +$L$_16_blocks_ok_208: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm5,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 ymm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast ymm5,ymm5,ymm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq ymm5,ymm5,ymm21 + vextracti32x4 xmm11,zmm5,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 YMMWORD[192+r11*1+r10]{k1},ymm5 + vmovdqu8 zmm5{k1}{z},zmm5 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb zmm20,zmm4,zmm29 + vpshufb ymm21,ymm5,ymm29 + vextracti32x4 xmm7,zmm21,1 + sub r13,16 * (14 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_209 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[128+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm21,ymm1,0x01 + vpclmulqdq ymm5,ymm21,ymm1,0x10 + vpclmulqdq ymm0,ymm21,ymm1,0x11 + vpclmulqdq ymm3,ymm21,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_209 +$L$_small_initial_partial_block_209: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[144+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm21,xmm1,0x01 + vpclmulqdq xmm5,xmm21,xmm1,0x10 + vpclmulqdq xmm0,xmm21,xmm1,0x11 + vpclmulqdq xmm3,xmm21,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_209: + + or r13,r13 + je NEAR $L$_after_reduction_209 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_209: + jmp NEAR $L$_last_blocks_done_181 +$L$_last_num_blocks_is_15_181: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,241 + jae NEAR $L$_16_blocks_overflow_210 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_210 + +$L$_16_blocks_overflow_210: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_210: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm5,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + vextracti32x4 xmm11,zmm5,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[192+r11*1+r10]{k1},zmm5 + vmovdqu8 zmm5{k1}{z},zmm5 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb zmm20,zmm4,zmm29 + vpshufb zmm21,zmm5,zmm29 + vextracti32x4 xmm7,zmm21,2 + sub r13,16 * (15 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_211 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[112+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm21,zmm1,0x01 + vpclmulqdq zmm5,zmm21,zmm1,0x10 + vpclmulqdq zmm0,zmm21,zmm1,0x11 + vpclmulqdq zmm3,zmm21,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_211 +$L$_small_initial_partial_block_211: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[128+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm21,ymm1,0x01 + vpclmulqdq ymm5,ymm21,ymm1,0x10 + vpclmulqdq ymm0,ymm21,ymm1,0x11 + vpclmulqdq ymm3,ymm21,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_211: + + or r13,r13 + je NEAR $L$_after_reduction_211 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_211: + jmp NEAR $L$_last_blocks_done_181 +$L$_last_num_blocks_is_16_181: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,240 + jae NEAR $L$_16_blocks_overflow_212 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_212 + +$L$_16_blocks_overflow_212: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_212: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm5,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + vextracti32x4 xmm11,zmm5,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[192+r11*1+r10]{k1},zmm5 + vmovdqu8 zmm5{k1}{z},zmm5 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb zmm20,zmm4,zmm29 + vpshufb zmm21,zmm5,zmm29 + vextracti32x4 xmm7,zmm21,3 + sub r13,16 * (16 - 1) +$L$_small_initial_partial_block_213: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[112+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm21,zmm1,0x01 + vpclmulqdq zmm5,zmm21,zmm1,0x10 + vpclmulqdq zmm0,zmm21,zmm1,0x11 + vpclmulqdq zmm3,zmm21,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_213: + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_213: + jmp NEAR $L$_last_blocks_done_181 +$L$_last_num_blocks_is_0_181: + vmovdqa64 zmm13,ZMMWORD[1024+rsp] + vmovdqu64 zmm12,ZMMWORD[rbx*1+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[1088+rsp] + vmovdqu64 zmm12,ZMMWORD[64+rbx*1+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + vpternlogq zmm26,zmm4,zmm10,0x96 + vpternlogq zmm24,zmm0,zmm6,0x96 + vpternlogq zmm25,zmm3,zmm7,0x96 + vpternlogq zmm26,zmm5,zmm11,0x96 + vmovdqa64 zmm13,ZMMWORD[1152+rsp] + vmovdqu64 zmm12,ZMMWORD[128+rbx*1+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[1216+rsp] + vmovdqu64 zmm12,ZMMWORD[192+rbx*1+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + + vpternlogq zmm26,zmm4,zmm10,0x96 + vpternlogq zmm24,zmm0,zmm6,0x96 + vpternlogq zmm25,zmm3,zmm7,0x96 + vpternlogq zmm26,zmm5,zmm11,0x96 + + vpsrldq zmm0,zmm26,8 + vpslldq zmm3,zmm26,8 + vpxorq zmm24,zmm24,zmm0 + vpxorq zmm25,zmm25,zmm3 + vextracti64x4 ymm0,zmm24,1 + vpxorq ymm24,ymm24,ymm0 + vextracti32x4 xmm0,ymm24,1 + vpxorq xmm24,xmm24,xmm0 + vextracti64x4 ymm3,zmm25,1 + vpxorq ymm25,ymm25,ymm3 + vextracti32x4 xmm3,ymm25,1 + vpxorq xmm25,xmm25,xmm3 + vmovdqa64 xmm4,XMMWORD[POLY2] + + + vpclmulqdq xmm0,xmm4,xmm25,0x01 + vpslldq xmm0,xmm0,8 + vpxorq xmm0,xmm25,xmm0 + + + vpclmulqdq xmm3,xmm4,xmm0,0x00 + vpsrldq xmm3,xmm3,4 + vpclmulqdq xmm14,xmm4,xmm0,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm3,xmm24,0x96 + +$L$_last_blocks_done_181: + vpshufb xmm2,xmm2,xmm29 + jmp NEAR $L$_ghash_done_172 +$L$_encrypt_32_blocks_172: + cmp r15b,240 + jae NEAR $L$_16_blocks_overflow_214 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_214 +$L$_16_blocks_overflow_214: + vpshufb zmm2,zmm2,zmm29 + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_214: + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rsp] + + + + + vshufi64x2 zmm2,zmm5,zmm5,255 + add r15b,16 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + + + + + + + + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + + vpclmulqdq zmm6,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + + vpternlogq zmm6,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + + + + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm21,ZMMWORD[192+r11*1+r9] + + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm26,zmm10,zmm15 + vpxorq zmm24,zmm6,zmm12 + vpxorq zmm25,zmm7,zmm13 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + + + + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + + + + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[192+r11*1+r10],zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 + vmovdqa64 ZMMWORD[1280+rsp],zmm0 + vmovdqa64 ZMMWORD[1344+rsp],zmm3 + vmovdqa64 ZMMWORD[1408+rsp],zmm4 + vmovdqa64 ZMMWORD[1472+rsp],zmm5 + cmp r15b,240 + jae NEAR $L$_16_blocks_overflow_215 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_215 +$L$_16_blocks_overflow_215: + vpshufb zmm2,zmm2,zmm29 + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_215: + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[256+rsp] + + + + + vshufi64x2 zmm2,zmm5,zmm5,255 + add r15b,16 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[320+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + + + + + + + + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + + vpclmulqdq zmm6,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[384+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[448+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + + vpternlogq zmm6,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + + + + vmovdqu8 zmm17,ZMMWORD[256+r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[320+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[384+r11*1+r9] + vmovdqu8 zmm21,ZMMWORD[448+r11*1+r9] + + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vpternlogq zmm24,zmm6,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + + + + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + + + + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[256+r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[320+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[384+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[448+r11*1+r10],zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 + vmovdqa64 ZMMWORD[768+rsp],zmm0 + vmovdqa64 ZMMWORD[832+rsp],zmm3 + vmovdqa64 ZMMWORD[896+rsp],zmm4 + vmovdqa64 ZMMWORD[960+rsp],zmm5 + vmovdqa64 zmm13,ZMMWORD[1280+rsp] + vmovdqu64 zmm12,ZMMWORD[512+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[1344+rsp] + vmovdqu64 zmm12,ZMMWORD[576+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + vpternlogq zmm26,zmm4,zmm10,0x96 + vpternlogq zmm24,zmm0,zmm6,0x96 + vpternlogq zmm25,zmm3,zmm7,0x96 + vpternlogq zmm26,zmm5,zmm11,0x96 + vmovdqa64 zmm13,ZMMWORD[1408+rsp] + vmovdqu64 zmm12,ZMMWORD[640+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[1472+rsp] + vmovdqu64 zmm12,ZMMWORD[704+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + + vpternlogq zmm26,zmm4,zmm10,0x96 + vpternlogq zmm24,zmm0,zmm6,0x96 + vpternlogq zmm25,zmm3,zmm7,0x96 + vpternlogq zmm26,zmm5,zmm11,0x96 + + vpsrldq zmm0,zmm26,8 + vpslldq zmm3,zmm26,8 + vpxorq zmm24,zmm24,zmm0 + vpxorq zmm25,zmm25,zmm3 + vextracti64x4 ymm0,zmm24,1 + vpxorq ymm24,ymm24,ymm0 + vextracti32x4 xmm0,ymm24,1 + vpxorq xmm24,xmm24,xmm0 + vextracti64x4 ymm3,zmm25,1 + vpxorq ymm25,ymm25,ymm3 + vextracti32x4 xmm3,ymm25,1 + vpxorq xmm25,xmm25,xmm3 + vmovdqa64 xmm4,XMMWORD[POLY2] + + + vpclmulqdq xmm0,xmm4,xmm25,0x01 + vpslldq xmm0,xmm0,8 + vpxorq xmm0,xmm25,xmm0 + + + vpclmulqdq xmm3,xmm4,xmm0,0x00 + vpsrldq xmm3,xmm3,4 + vpclmulqdq xmm14,xmm4,xmm0,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm3,xmm24,0x96 + + sub r13,512 + add r11,512 + mov r10d,r13d + and r10d,~15 + mov ebx,512 + sub ebx,r10d + mov r10d,r13d + add r10d,15 + shr r10d,4 + je NEAR $L$_last_num_blocks_is_0_216 + + cmp r10d,8 + je NEAR $L$_last_num_blocks_is_8_216 + jb NEAR $L$_last_num_blocks_is_7_1_216 + + + cmp r10d,12 + je NEAR $L$_last_num_blocks_is_12_216 + jb NEAR $L$_last_num_blocks_is_11_9_216 + + + cmp r10d,15 + je NEAR $L$_last_num_blocks_is_15_216 + ja NEAR $L$_last_num_blocks_is_16_216 + cmp r10d,14 + je NEAR $L$_last_num_blocks_is_14_216 + jmp NEAR $L$_last_num_blocks_is_13_216 + +$L$_last_num_blocks_is_11_9_216: + + cmp r10d,10 + je NEAR $L$_last_num_blocks_is_10_216 + ja NEAR $L$_last_num_blocks_is_11_216 + jmp NEAR $L$_last_num_blocks_is_9_216 + +$L$_last_num_blocks_is_7_1_216: + cmp r10d,4 + je NEAR $L$_last_num_blocks_is_4_216 + jb NEAR $L$_last_num_blocks_is_3_1_216 + + cmp r10d,6 + ja NEAR $L$_last_num_blocks_is_7_216 + je NEAR $L$_last_num_blocks_is_6_216 + jmp NEAR $L$_last_num_blocks_is_5_216 + +$L$_last_num_blocks_is_3_1_216: + + cmp r10d,2 + ja NEAR $L$_last_num_blocks_is_3_216 + je NEAR $L$_last_num_blocks_is_2_216 +$L$_last_num_blocks_is_1_216: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,255 + jae NEAR $L$_16_blocks_overflow_217 + vpaddd xmm0,xmm2,xmm28 + jmp NEAR $L$_16_blocks_ok_217 + +$L$_16_blocks_overflow_217: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb xmm0,xmm0,xmm29 +$L$_16_blocks_ok_217: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm0,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 xmm17{k1}{z},[r11*1+r9] + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc xmm0,xmm0,xmm31 + vaesenclast xmm0,xmm0,xmm30 + vpxorq xmm0,xmm0,xmm17 + vextracti32x4 xmm11,zmm0,0 + mov r10,QWORD[120+rbp] + vmovdqu8 XMMWORD[r11*1+r10]{k1},xmm0 + vmovdqu8 zmm0{k1}{z},zmm0 + vpshufb xmm17,xmm0,xmm29 + vextracti32x4 xmm7,zmm17,0 + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_218 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm17,xmm1,0x01 + vpclmulqdq xmm5,xmm17,xmm1,0x10 + vpclmulqdq xmm0,xmm17,xmm1,0x11 + vpclmulqdq xmm3,xmm17,xmm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_218 +$L$_small_initial_partial_block_218: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + + + vpsrldq zmm0,zmm26,8 + vpslldq zmm3,zmm26,8 + vpxorq zmm24,zmm24,zmm0 + vpxorq zmm25,zmm25,zmm3 + vextracti64x4 ymm0,zmm24,1 + vpxorq ymm24,ymm24,ymm0 + vextracti32x4 xmm0,ymm24,1 + vpxorq xmm24,xmm24,xmm0 + vextracti64x4 ymm3,zmm25,1 + vpxorq ymm25,ymm25,ymm3 + vextracti32x4 xmm3,ymm25,1 + vpxorq xmm25,xmm25,xmm3 + vmovdqa64 xmm0,XMMWORD[POLY2] + + + vpclmulqdq xmm3,xmm0,xmm25,0x01 + vpslldq xmm3,xmm3,8 + vpxorq xmm3,xmm25,xmm3 + + + vpclmulqdq xmm4,xmm0,xmm3,0x00 + vpsrldq xmm4,xmm4,4 + vpclmulqdq xmm14,xmm0,xmm3,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm4,xmm24,0x96 + + + + + + + + + + + + + vpxorq xmm14,xmm14,xmm7 + + jmp NEAR $L$_after_reduction_218 +$L$_small_initial_compute_done_218: +$L$_after_reduction_218: + jmp NEAR $L$_last_blocks_done_216 +$L$_last_num_blocks_is_2_216: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,254 + jae NEAR $L$_16_blocks_overflow_219 + vpaddd ymm0,ymm2,ymm28 + jmp NEAR $L$_16_blocks_ok_219 + +$L$_16_blocks_overflow_219: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb ymm0,ymm0,ymm29 +$L$_16_blocks_ok_219: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm0,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 ymm17{k1}{z},[r11*1+r9] + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc ymm0,ymm0,ymm31 + vaesenclast ymm0,ymm0,ymm30 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm11,zmm0,1 + mov r10,QWORD[120+rbp] + vmovdqu8 YMMWORD[r11*1+r10]{k1},ymm0 + vmovdqu8 zmm0{k1}{z},zmm0 + vpshufb ymm17,ymm0,ymm29 + vextracti32x4 xmm7,zmm17,1 + sub r13,16 * (2 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_220 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm17,ymm1,0x01 + vpclmulqdq ymm5,ymm17,ymm1,0x10 + vpclmulqdq ymm0,ymm17,ymm1,0x11 + vpclmulqdq ymm3,ymm17,ymm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_220 +$L$_small_initial_partial_block_220: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm17,xmm1,0x01 + vpclmulqdq xmm5,xmm17,xmm1,0x10 + vpclmulqdq xmm0,xmm17,xmm1,0x11 + vpclmulqdq xmm3,xmm17,xmm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_220: + + or r13,r13 + je NEAR $L$_after_reduction_220 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_220: + jmp NEAR $L$_last_blocks_done_216 +$L$_last_num_blocks_is_3_216: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,253 + jae NEAR $L$_16_blocks_overflow_221 + vpaddd zmm0,zmm2,zmm28 + jmp NEAR $L$_16_blocks_ok_221 + +$L$_16_blocks_overflow_221: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb zmm0,zmm0,zmm29 +$L$_16_blocks_ok_221: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm0,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17{k1}{z},[r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vpxorq zmm0,zmm0,zmm17 + vextracti32x4 xmm11,zmm0,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10]{k1},zmm0 + vmovdqu8 zmm0{k1}{z},zmm0 + vpshufb zmm17,zmm0,zmm29 + vextracti32x4 xmm7,zmm17,2 + sub r13,16 * (3 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_222 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_222 +$L$_small_initial_partial_block_222: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm17,ymm1,0x01 + vpclmulqdq ymm5,ymm17,ymm1,0x10 + vpclmulqdq ymm0,ymm17,ymm1,0x11 + vpclmulqdq ymm3,ymm17,ymm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_222: + + or r13,r13 + je NEAR $L$_after_reduction_222 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_222: + jmp NEAR $L$_last_blocks_done_216 +$L$_last_num_blocks_is_4_216: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,252 + jae NEAR $L$_16_blocks_overflow_223 + vpaddd zmm0,zmm2,zmm28 + jmp NEAR $L$_16_blocks_ok_223 + +$L$_16_blocks_overflow_223: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb zmm0,zmm0,zmm29 +$L$_16_blocks_ok_223: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm0,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17{k1}{z},[r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vpxorq zmm0,zmm0,zmm17 + vextracti32x4 xmm11,zmm0,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10]{k1},zmm0 + vmovdqu8 zmm0{k1}{z},zmm0 + vpshufb zmm17,zmm0,zmm29 + vextracti32x4 xmm7,zmm17,3 + sub r13,16 * (4 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_224 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_224 +$L$_small_initial_partial_block_224: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_224: + + or r13,r13 + je NEAR $L$_after_reduction_224 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_224: + jmp NEAR $L$_last_blocks_done_216 +$L$_last_num_blocks_is_5_216: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,251 + jae NEAR $L$_16_blocks_overflow_225 + vpaddd zmm0,zmm2,zmm28 + vpaddd xmm3,xmm0,xmm27 + jmp NEAR $L$_16_blocks_ok_225 + +$L$_16_blocks_overflow_225: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb xmm3,xmm3,xmm29 +$L$_16_blocks_ok_225: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm3,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 xmm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast xmm3,xmm3,xmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq xmm3,xmm3,xmm19 + vextracti32x4 xmm11,zmm3,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 XMMWORD[64+r11*1+r10]{k1},xmm3 + vmovdqu8 zmm3{k1}{z},zmm3 + vpshufb zmm17,zmm0,zmm29 + vpshufb xmm19,xmm3,xmm29 + vextracti32x4 xmm7,zmm19,0 + sub r13,16 * (5 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_226 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm19,xmm1,0x01 + vpclmulqdq xmm5,xmm19,xmm1,0x10 + vpclmulqdq xmm0,xmm19,xmm1,0x11 + vpclmulqdq xmm3,xmm19,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_226 +$L$_small_initial_partial_block_226: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_226: + + or r13,r13 + je NEAR $L$_after_reduction_226 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_226: + jmp NEAR $L$_last_blocks_done_216 +$L$_last_num_blocks_is_6_216: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,250 + jae NEAR $L$_16_blocks_overflow_227 + vpaddd zmm0,zmm2,zmm28 + vpaddd ymm3,ymm0,ymm27 + jmp NEAR $L$_16_blocks_ok_227 + +$L$_16_blocks_overflow_227: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb ymm3,ymm3,ymm29 +$L$_16_blocks_ok_227: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm3,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 ymm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast ymm3,ymm3,ymm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm11,zmm3,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 YMMWORD[64+r11*1+r10]{k1},ymm3 + vmovdqu8 zmm3{k1}{z},zmm3 + vpshufb zmm17,zmm0,zmm29 + vpshufb ymm19,ymm3,ymm29 + vextracti32x4 xmm7,zmm19,1 + sub r13,16 * (6 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_228 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm19,ymm1,0x01 + vpclmulqdq ymm5,ymm19,ymm1,0x10 + vpclmulqdq ymm0,ymm19,ymm1,0x11 + vpclmulqdq ymm3,ymm19,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_228 +$L$_small_initial_partial_block_228: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm19,xmm1,0x01 + vpclmulqdq xmm5,xmm19,xmm1,0x10 + vpclmulqdq xmm0,xmm19,xmm1,0x11 + vpclmulqdq xmm3,xmm19,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_228: + + or r13,r13 + je NEAR $L$_after_reduction_228 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_228: + jmp NEAR $L$_last_blocks_done_216 +$L$_last_num_blocks_is_7_216: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,249 + jae NEAR $L$_16_blocks_overflow_229 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + jmp NEAR $L$_16_blocks_ok_229 + +$L$_16_blocks_overflow_229: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 +$L$_16_blocks_ok_229: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm3,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti32x4 xmm11,zmm3,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10]{k1},zmm3 + vmovdqu8 zmm3{k1}{z},zmm3 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vextracti32x4 xmm7,zmm19,2 + sub r13,16 * (7 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_230 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm19,zmm1,0x01 + vpclmulqdq zmm5,zmm19,zmm1,0x10 + vpclmulqdq zmm0,zmm19,zmm1,0x11 + vpclmulqdq zmm3,zmm19,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_230 +$L$_small_initial_partial_block_230: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm19,ymm1,0x01 + vpclmulqdq ymm5,ymm19,ymm1,0x10 + vpclmulqdq ymm0,ymm19,ymm1,0x11 + vpclmulqdq ymm3,ymm19,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_230: + + or r13,r13 + je NEAR $L$_after_reduction_230 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_230: + jmp NEAR $L$_last_blocks_done_216 +$L$_last_num_blocks_is_8_216: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,248 + jae NEAR $L$_16_blocks_overflow_231 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + jmp NEAR $L$_16_blocks_ok_231 + +$L$_16_blocks_overflow_231: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 +$L$_16_blocks_ok_231: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm3,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti32x4 xmm11,zmm3,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10]{k1},zmm3 + vmovdqu8 zmm3{k1}{z},zmm3 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vextracti32x4 xmm7,zmm19,3 + sub r13,16 * (8 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_232 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_232 +$L$_small_initial_partial_block_232: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm19,zmm1,0x01 + vpclmulqdq zmm5,zmm19,zmm1,0x10 + vpclmulqdq zmm0,zmm19,zmm1,0x11 + vpclmulqdq zmm3,zmm19,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_232: + + or r13,r13 + je NEAR $L$_after_reduction_232 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_232: + jmp NEAR $L$_last_blocks_done_216 +$L$_last_num_blocks_is_9_216: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,247 + jae NEAR $L$_16_blocks_overflow_233 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd xmm4,xmm3,xmm27 + jmp NEAR $L$_16_blocks_ok_233 + +$L$_16_blocks_overflow_233: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb xmm4,xmm4,xmm29 +$L$_16_blocks_ok_233: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm4,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 xmm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast xmm4,xmm4,xmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq xmm4,xmm4,xmm20 + vextracti32x4 xmm11,zmm4,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 XMMWORD[128+r11*1+r10]{k1},xmm4 + vmovdqu8 zmm4{k1}{z},zmm4 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb xmm20,xmm4,xmm29 + vextracti32x4 xmm7,zmm20,0 + sub r13,16 * (9 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_234 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm20,xmm1,0x01 + vpclmulqdq xmm5,xmm20,xmm1,0x10 + vpclmulqdq xmm0,xmm20,xmm1,0x11 + vpclmulqdq xmm3,xmm20,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_234 +$L$_small_initial_partial_block_234: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_234: + + or r13,r13 + je NEAR $L$_after_reduction_234 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_234: + jmp NEAR $L$_last_blocks_done_216 +$L$_last_num_blocks_is_10_216: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,246 + jae NEAR $L$_16_blocks_overflow_235 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd ymm4,ymm3,ymm27 + jmp NEAR $L$_16_blocks_ok_235 + +$L$_16_blocks_overflow_235: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb ymm4,ymm4,ymm29 +$L$_16_blocks_ok_235: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm4,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 ymm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast ymm4,ymm4,ymm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq ymm4,ymm4,ymm20 + vextracti32x4 xmm11,zmm4,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 YMMWORD[128+r11*1+r10]{k1},ymm4 + vmovdqu8 zmm4{k1}{z},zmm4 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb ymm20,ymm4,ymm29 + vextracti32x4 xmm7,zmm20,1 + sub r13,16 * (10 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_236 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm20,ymm1,0x01 + vpclmulqdq ymm5,ymm20,ymm1,0x10 + vpclmulqdq ymm0,ymm20,ymm1,0x11 + vpclmulqdq ymm3,ymm20,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_236 +$L$_small_initial_partial_block_236: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm20,xmm1,0x01 + vpclmulqdq xmm5,xmm20,xmm1,0x10 + vpclmulqdq xmm0,xmm20,xmm1,0x11 + vpclmulqdq xmm3,xmm20,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_236: + + or r13,r13 + je NEAR $L$_after_reduction_236 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_236: + jmp NEAR $L$_last_blocks_done_216 +$L$_last_num_blocks_is_11_216: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,245 + jae NEAR $L$_16_blocks_overflow_237 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + jmp NEAR $L$_16_blocks_ok_237 + +$L$_16_blocks_overflow_237: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 +$L$_16_blocks_ok_237: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm4,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vextracti32x4 xmm11,zmm4,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10]{k1},zmm4 + vmovdqu8 zmm4{k1}{z},zmm4 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb zmm20,zmm4,zmm29 + vextracti32x4 xmm7,zmm20,2 + sub r13,16 * (11 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_238 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm20,zmm1,0x01 + vpclmulqdq zmm5,zmm20,zmm1,0x10 + vpclmulqdq zmm0,zmm20,zmm1,0x11 + vpclmulqdq zmm3,zmm20,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_238 +$L$_small_initial_partial_block_238: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm20,ymm1,0x01 + vpclmulqdq ymm5,ymm20,ymm1,0x10 + vpclmulqdq ymm0,ymm20,ymm1,0x11 + vpclmulqdq ymm3,ymm20,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_238: + + or r13,r13 + je NEAR $L$_after_reduction_238 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_238: + jmp NEAR $L$_last_blocks_done_216 +$L$_last_num_blocks_is_12_216: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,244 + jae NEAR $L$_16_blocks_overflow_239 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + jmp NEAR $L$_16_blocks_ok_239 + +$L$_16_blocks_overflow_239: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 +$L$_16_blocks_ok_239: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm4,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vextracti32x4 xmm11,zmm4,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10]{k1},zmm4 + vmovdqu8 zmm4{k1}{z},zmm4 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb zmm20,zmm4,zmm29 + vextracti32x4 xmm7,zmm20,3 + sub r13,16 * (12 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_240 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[160+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_240 +$L$_small_initial_partial_block_240: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm20,zmm1,0x01 + vpclmulqdq zmm5,zmm20,zmm1,0x10 + vpclmulqdq zmm0,zmm20,zmm1,0x11 + vpclmulqdq zmm3,zmm20,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_240: + + or r13,r13 + je NEAR $L$_after_reduction_240 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_240: + jmp NEAR $L$_last_blocks_done_216 +$L$_last_num_blocks_is_13_216: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,243 + jae NEAR $L$_16_blocks_overflow_241 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd xmm5,xmm4,xmm27 + jmp NEAR $L$_16_blocks_ok_241 + +$L$_16_blocks_overflow_241: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb xmm5,xmm5,xmm29 +$L$_16_blocks_ok_241: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm5,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 xmm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast xmm5,xmm5,xmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq xmm5,xmm5,xmm21 + vextracti32x4 xmm11,zmm5,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 XMMWORD[192+r11*1+r10]{k1},xmm5 + vmovdqu8 zmm5{k1}{z},zmm5 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb zmm20,zmm4,zmm29 + vpshufb xmm21,xmm5,xmm29 + vextracti32x4 xmm7,zmm21,0 + sub r13,16 * (13 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_242 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[144+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm21,xmm1,0x01 + vpclmulqdq xmm5,xmm21,xmm1,0x10 + vpclmulqdq xmm0,xmm21,xmm1,0x11 + vpclmulqdq xmm3,xmm21,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_242 +$L$_small_initial_partial_block_242: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[160+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_242: + + or r13,r13 + je NEAR $L$_after_reduction_242 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_242: + jmp NEAR $L$_last_blocks_done_216 +$L$_last_num_blocks_is_14_216: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,242 + jae NEAR $L$_16_blocks_overflow_243 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd ymm5,ymm4,ymm27 + jmp NEAR $L$_16_blocks_ok_243 + +$L$_16_blocks_overflow_243: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb ymm5,ymm5,ymm29 +$L$_16_blocks_ok_243: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm5,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 ymm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast ymm5,ymm5,ymm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq ymm5,ymm5,ymm21 + vextracti32x4 xmm11,zmm5,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 YMMWORD[192+r11*1+r10]{k1},ymm5 + vmovdqu8 zmm5{k1}{z},zmm5 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb zmm20,zmm4,zmm29 + vpshufb ymm21,ymm5,ymm29 + vextracti32x4 xmm7,zmm21,1 + sub r13,16 * (14 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_244 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[128+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm21,ymm1,0x01 + vpclmulqdq ymm5,ymm21,ymm1,0x10 + vpclmulqdq ymm0,ymm21,ymm1,0x11 + vpclmulqdq ymm3,ymm21,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_244 +$L$_small_initial_partial_block_244: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[144+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm21,xmm1,0x01 + vpclmulqdq xmm5,xmm21,xmm1,0x10 + vpclmulqdq xmm0,xmm21,xmm1,0x11 + vpclmulqdq xmm3,xmm21,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_244: + + or r13,r13 + je NEAR $L$_after_reduction_244 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_244: + jmp NEAR $L$_last_blocks_done_216 +$L$_last_num_blocks_is_15_216: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,241 + jae NEAR $L$_16_blocks_overflow_245 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_245 + +$L$_16_blocks_overflow_245: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_245: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm5,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + vextracti32x4 xmm11,zmm5,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[192+r11*1+r10]{k1},zmm5 + vmovdqu8 zmm5{k1}{z},zmm5 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb zmm20,zmm4,zmm29 + vpshufb zmm21,zmm5,zmm29 + vextracti32x4 xmm7,zmm21,2 + sub r13,16 * (15 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_246 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[112+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm21,zmm1,0x01 + vpclmulqdq zmm5,zmm21,zmm1,0x10 + vpclmulqdq zmm0,zmm21,zmm1,0x11 + vpclmulqdq zmm3,zmm21,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_246 +$L$_small_initial_partial_block_246: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[128+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm21,ymm1,0x01 + vpclmulqdq ymm5,ymm21,ymm1,0x10 + vpclmulqdq ymm0,ymm21,ymm1,0x11 + vpclmulqdq ymm3,ymm21,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_246: + + or r13,r13 + je NEAR $L$_after_reduction_246 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_246: + jmp NEAR $L$_last_blocks_done_216 +$L$_last_num_blocks_is_16_216: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,240 + jae NEAR $L$_16_blocks_overflow_247 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_247 + +$L$_16_blocks_overflow_247: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_247: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm5,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + vextracti32x4 xmm11,zmm5,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[192+r11*1+r10]{k1},zmm5 + vmovdqu8 zmm5{k1}{z},zmm5 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb zmm20,zmm4,zmm29 + vpshufb zmm21,zmm5,zmm29 + vextracti32x4 xmm7,zmm21,3 + sub r13,16 * (16 - 1) +$L$_small_initial_partial_block_248: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[112+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm21,zmm1,0x01 + vpclmulqdq zmm5,zmm21,zmm1,0x10 + vpclmulqdq zmm0,zmm21,zmm1,0x11 + vpclmulqdq zmm3,zmm21,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_248: + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_248: + jmp NEAR $L$_last_blocks_done_216 +$L$_last_num_blocks_is_0_216: + vmovdqa64 zmm13,ZMMWORD[768+rsp] + vpxorq zmm13,zmm13,zmm14 + vmovdqu64 zmm12,ZMMWORD[rbx*1+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[832+rsp] + vmovdqu64 zmm12,ZMMWORD[64+rbx*1+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + vpxorq zmm26,zmm4,zmm10 + vpxorq zmm24,zmm0,zmm6 + vpxorq zmm25,zmm3,zmm7 + vpternlogq zmm26,zmm5,zmm11,0x96 + vmovdqa64 zmm13,ZMMWORD[896+rsp] + vmovdqu64 zmm12,ZMMWORD[128+rbx*1+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[960+rsp] + vmovdqu64 zmm12,ZMMWORD[192+rbx*1+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + + vpternlogq zmm26,zmm4,zmm10,0x96 + vpternlogq zmm24,zmm0,zmm6,0x96 + vpternlogq zmm25,zmm3,zmm7,0x96 + vpternlogq zmm26,zmm5,zmm11,0x96 + + vpsrldq zmm0,zmm26,8 + vpslldq zmm3,zmm26,8 + vpxorq zmm24,zmm24,zmm0 + vpxorq zmm25,zmm25,zmm3 + vextracti64x4 ymm0,zmm24,1 + vpxorq ymm24,ymm24,ymm0 + vextracti32x4 xmm0,ymm24,1 + vpxorq xmm24,xmm24,xmm0 + vextracti64x4 ymm3,zmm25,1 + vpxorq ymm25,ymm25,ymm3 + vextracti32x4 xmm3,ymm25,1 + vpxorq xmm25,xmm25,xmm3 + vmovdqa64 xmm4,XMMWORD[POLY2] + + + vpclmulqdq xmm0,xmm4,xmm25,0x01 + vpslldq xmm0,xmm0,8 + vpxorq xmm0,xmm25,xmm0 + + + vpclmulqdq xmm3,xmm4,xmm0,0x00 + vpsrldq xmm3,xmm3,4 + vpclmulqdq xmm14,xmm4,xmm0,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm3,xmm24,0x96 + +$L$_last_blocks_done_216: + vpshufb xmm2,xmm2,xmm29 + jmp NEAR $L$_ghash_done_172 +$L$_encrypt_16_blocks_172: + cmp r15b,240 + jae NEAR $L$_16_blocks_overflow_249 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_249 +$L$_16_blocks_overflow_249: + vpshufb zmm2,zmm2,zmm29 + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_249: + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rsp] + + + + + vshufi64x2 zmm2,zmm5,zmm5,255 + add r15b,16 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + + + + + + + + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + + vpclmulqdq zmm6,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + + vpternlogq zmm6,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + + + + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm21,ZMMWORD[192+r11*1+r9] + + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm26,zmm10,zmm15 + vpxorq zmm24,zmm6,zmm12 + vpxorq zmm25,zmm7,zmm13 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + + + + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + + + + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[192+r11*1+r10],zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 + vmovdqa64 ZMMWORD[1280+rsp],zmm0 + vmovdqa64 ZMMWORD[1344+rsp],zmm3 + vmovdqa64 ZMMWORD[1408+rsp],zmm4 + vmovdqa64 ZMMWORD[1472+rsp],zmm5 + vmovdqa64 zmm13,ZMMWORD[1024+rsp] + vmovdqu64 zmm12,ZMMWORD[256+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[1088+rsp] + vmovdqu64 zmm12,ZMMWORD[320+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + vpternlogq zmm26,zmm4,zmm10,0x96 + vpternlogq zmm24,zmm0,zmm6,0x96 + vpternlogq zmm25,zmm3,zmm7,0x96 + vpternlogq zmm26,zmm5,zmm11,0x96 + vmovdqa64 zmm13,ZMMWORD[1152+rsp] + vmovdqu64 zmm12,ZMMWORD[384+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[1216+rsp] + vmovdqu64 zmm12,ZMMWORD[448+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + + vpternlogq zmm26,zmm4,zmm10,0x96 + vpternlogq zmm24,zmm0,zmm6,0x96 + vpternlogq zmm25,zmm3,zmm7,0x96 + vpternlogq zmm26,zmm5,zmm11,0x96 + sub r13,256 + add r11,256 + mov r10d,r13d + add r10d,15 + shr r10d,4 + je NEAR $L$_last_num_blocks_is_0_250 + + cmp r10d,8 + je NEAR $L$_last_num_blocks_is_8_250 + jb NEAR $L$_last_num_blocks_is_7_1_250 + + + cmp r10d,12 + je NEAR $L$_last_num_blocks_is_12_250 + jb NEAR $L$_last_num_blocks_is_11_9_250 + + + cmp r10d,15 + je NEAR $L$_last_num_blocks_is_15_250 + ja NEAR $L$_last_num_blocks_is_16_250 + cmp r10d,14 + je NEAR $L$_last_num_blocks_is_14_250 + jmp NEAR $L$_last_num_blocks_is_13_250 + +$L$_last_num_blocks_is_11_9_250: + + cmp r10d,10 + je NEAR $L$_last_num_blocks_is_10_250 + ja NEAR $L$_last_num_blocks_is_11_250 + jmp NEAR $L$_last_num_blocks_is_9_250 + +$L$_last_num_blocks_is_7_1_250: + cmp r10d,4 + je NEAR $L$_last_num_blocks_is_4_250 + jb NEAR $L$_last_num_blocks_is_3_1_250 + + cmp r10d,6 + ja NEAR $L$_last_num_blocks_is_7_250 + je NEAR $L$_last_num_blocks_is_6_250 + jmp NEAR $L$_last_num_blocks_is_5_250 + +$L$_last_num_blocks_is_3_1_250: + + cmp r10d,2 + ja NEAR $L$_last_num_blocks_is_3_250 + je NEAR $L$_last_num_blocks_is_2_250 +$L$_last_num_blocks_is_1_250: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,255 + jae NEAR $L$_16_blocks_overflow_251 + vpaddd xmm0,xmm2,xmm28 + jmp NEAR $L$_16_blocks_ok_251 + +$L$_16_blocks_overflow_251: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb xmm0,xmm0,xmm29 +$L$_16_blocks_ok_251: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm0,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 xmm17{k1}{z},[r11*1+r9] + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc xmm0,xmm0,xmm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc xmm0,xmm0,xmm31 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast xmm0,xmm0,xmm30 + vpxorq xmm0,xmm0,xmm17 + vextracti32x4 xmm11,zmm0,0 + mov r10,QWORD[120+rbp] + vmovdqu8 XMMWORD[r11*1+r10]{k1},xmm0 + vmovdqu8 zmm0{k1}{z},zmm0 + vpshufb xmm17,xmm0,xmm29 + vextracti32x4 xmm7,zmm17,0 + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_252 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm17,xmm1,0x01 + vpclmulqdq xmm5,xmm17,xmm1,0x10 + vpclmulqdq xmm0,xmm17,xmm1,0x11 + vpclmulqdq xmm3,xmm17,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_252 +$L$_small_initial_partial_block_252: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + + + + + + + + + + + + vpxorq xmm14,xmm14,xmm7 + + jmp NEAR $L$_after_reduction_252 +$L$_small_initial_compute_done_252: +$L$_after_reduction_252: + jmp NEAR $L$_last_blocks_done_250 +$L$_last_num_blocks_is_2_250: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,254 + jae NEAR $L$_16_blocks_overflow_253 + vpaddd ymm0,ymm2,ymm28 + jmp NEAR $L$_16_blocks_ok_253 + +$L$_16_blocks_overflow_253: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb ymm0,ymm0,ymm29 +$L$_16_blocks_ok_253: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm0,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 ymm17{k1}{z},[r11*1+r9] + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc ymm0,ymm0,ymm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc ymm0,ymm0,ymm31 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast ymm0,ymm0,ymm30 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm11,zmm0,1 + mov r10,QWORD[120+rbp] + vmovdqu8 YMMWORD[r11*1+r10]{k1},ymm0 + vmovdqu8 zmm0{k1}{z},zmm0 + vpshufb ymm17,ymm0,ymm29 + vextracti32x4 xmm7,zmm17,1 + sub r13,16 * (2 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_254 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm17,ymm1,0x01 + vpclmulqdq ymm5,ymm17,ymm1,0x10 + vpclmulqdq ymm0,ymm17,ymm1,0x11 + vpclmulqdq ymm3,ymm17,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_254 +$L$_small_initial_partial_block_254: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm17,xmm1,0x01 + vpclmulqdq xmm5,xmm17,xmm1,0x10 + vpclmulqdq xmm0,xmm17,xmm1,0x11 + vpclmulqdq xmm3,xmm17,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_254: + + or r13,r13 + je NEAR $L$_after_reduction_254 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_254: + jmp NEAR $L$_last_blocks_done_250 +$L$_last_num_blocks_is_3_250: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,253 + jae NEAR $L$_16_blocks_overflow_255 + vpaddd zmm0,zmm2,zmm28 + jmp NEAR $L$_16_blocks_ok_255 + +$L$_16_blocks_overflow_255: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb zmm0,zmm0,zmm29 +$L$_16_blocks_ok_255: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm0,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17{k1}{z},[r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vpxorq zmm0,zmm0,zmm17 + vextracti32x4 xmm11,zmm0,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10]{k1},zmm0 + vmovdqu8 zmm0{k1}{z},zmm0 + vpshufb zmm17,zmm0,zmm29 + vextracti32x4 xmm7,zmm17,2 + sub r13,16 * (3 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_256 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_256 +$L$_small_initial_partial_block_256: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm17,ymm1,0x01 + vpclmulqdq ymm5,ymm17,ymm1,0x10 + vpclmulqdq ymm0,ymm17,ymm1,0x11 + vpclmulqdq ymm3,ymm17,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_256: + + or r13,r13 + je NEAR $L$_after_reduction_256 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_256: + jmp NEAR $L$_last_blocks_done_250 +$L$_last_num_blocks_is_4_250: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,252 + jae NEAR $L$_16_blocks_overflow_257 + vpaddd zmm0,zmm2,zmm28 + jmp NEAR $L$_16_blocks_ok_257 + +$L$_16_blocks_overflow_257: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb zmm0,zmm0,zmm29 +$L$_16_blocks_ok_257: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm0,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17{k1}{z},[r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vpxorq zmm0,zmm0,zmm17 + vextracti32x4 xmm11,zmm0,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10]{k1},zmm0 + vmovdqu8 zmm0{k1}{z},zmm0 + vpshufb zmm17,zmm0,zmm29 + vextracti32x4 xmm7,zmm17,3 + sub r13,16 * (4 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_258 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_258 +$L$_small_initial_partial_block_258: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_258: + + or r13,r13 + je NEAR $L$_after_reduction_258 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_258: + jmp NEAR $L$_last_blocks_done_250 +$L$_last_num_blocks_is_5_250: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,251 + jae NEAR $L$_16_blocks_overflow_259 + vpaddd zmm0,zmm2,zmm28 + vpaddd xmm3,xmm0,xmm27 + jmp NEAR $L$_16_blocks_ok_259 + +$L$_16_blocks_overflow_259: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb xmm3,xmm3,xmm29 +$L$_16_blocks_ok_259: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm3,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 xmm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast xmm3,xmm3,xmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq xmm3,xmm3,xmm19 + vextracti32x4 xmm11,zmm3,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 XMMWORD[64+r11*1+r10]{k1},xmm3 + vmovdqu8 zmm3{k1}{z},zmm3 + vpshufb zmm17,zmm0,zmm29 + vpshufb xmm19,xmm3,xmm29 + vextracti32x4 xmm7,zmm19,0 + sub r13,16 * (5 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_260 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm19,xmm1,0x01 + vpclmulqdq xmm5,xmm19,xmm1,0x10 + vpclmulqdq xmm0,xmm19,xmm1,0x11 + vpclmulqdq xmm3,xmm19,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_260 +$L$_small_initial_partial_block_260: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_260: + + or r13,r13 + je NEAR $L$_after_reduction_260 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_260: + jmp NEAR $L$_last_blocks_done_250 +$L$_last_num_blocks_is_6_250: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,250 + jae NEAR $L$_16_blocks_overflow_261 + vpaddd zmm0,zmm2,zmm28 + vpaddd ymm3,ymm0,ymm27 + jmp NEAR $L$_16_blocks_ok_261 + +$L$_16_blocks_overflow_261: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb ymm3,ymm3,ymm29 +$L$_16_blocks_ok_261: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm3,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 ymm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast ymm3,ymm3,ymm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm11,zmm3,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 YMMWORD[64+r11*1+r10]{k1},ymm3 + vmovdqu8 zmm3{k1}{z},zmm3 + vpshufb zmm17,zmm0,zmm29 + vpshufb ymm19,ymm3,ymm29 + vextracti32x4 xmm7,zmm19,1 + sub r13,16 * (6 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_262 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm19,ymm1,0x01 + vpclmulqdq ymm5,ymm19,ymm1,0x10 + vpclmulqdq ymm0,ymm19,ymm1,0x11 + vpclmulqdq ymm3,ymm19,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_262 +$L$_small_initial_partial_block_262: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm19,xmm1,0x01 + vpclmulqdq xmm5,xmm19,xmm1,0x10 + vpclmulqdq xmm0,xmm19,xmm1,0x11 + vpclmulqdq xmm3,xmm19,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_262: + + or r13,r13 + je NEAR $L$_after_reduction_262 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_262: + jmp NEAR $L$_last_blocks_done_250 +$L$_last_num_blocks_is_7_250: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,249 + jae NEAR $L$_16_blocks_overflow_263 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + jmp NEAR $L$_16_blocks_ok_263 + +$L$_16_blocks_overflow_263: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 +$L$_16_blocks_ok_263: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm3,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti32x4 xmm11,zmm3,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10]{k1},zmm3 + vmovdqu8 zmm3{k1}{z},zmm3 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vextracti32x4 xmm7,zmm19,2 + sub r13,16 * (7 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_264 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm19,zmm1,0x01 + vpclmulqdq zmm5,zmm19,zmm1,0x10 + vpclmulqdq zmm0,zmm19,zmm1,0x11 + vpclmulqdq zmm3,zmm19,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_264 +$L$_small_initial_partial_block_264: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm19,ymm1,0x01 + vpclmulqdq ymm5,ymm19,ymm1,0x10 + vpclmulqdq ymm0,ymm19,ymm1,0x11 + vpclmulqdq ymm3,ymm19,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_264: + + or r13,r13 + je NEAR $L$_after_reduction_264 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_264: + jmp NEAR $L$_last_blocks_done_250 +$L$_last_num_blocks_is_8_250: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,248 + jae NEAR $L$_16_blocks_overflow_265 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + jmp NEAR $L$_16_blocks_ok_265 + +$L$_16_blocks_overflow_265: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 +$L$_16_blocks_ok_265: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm3,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti32x4 xmm11,zmm3,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10]{k1},zmm3 + vmovdqu8 zmm3{k1}{z},zmm3 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vextracti32x4 xmm7,zmm19,3 + sub r13,16 * (8 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_266 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_266 +$L$_small_initial_partial_block_266: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm19,zmm1,0x01 + vpclmulqdq zmm5,zmm19,zmm1,0x10 + vpclmulqdq zmm0,zmm19,zmm1,0x11 + vpclmulqdq zmm3,zmm19,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_266: + + or r13,r13 + je NEAR $L$_after_reduction_266 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_266: + jmp NEAR $L$_last_blocks_done_250 +$L$_last_num_blocks_is_9_250: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,247 + jae NEAR $L$_16_blocks_overflow_267 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd xmm4,xmm3,xmm27 + jmp NEAR $L$_16_blocks_ok_267 + +$L$_16_blocks_overflow_267: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb xmm4,xmm4,xmm29 +$L$_16_blocks_ok_267: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm4,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 xmm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast xmm4,xmm4,xmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq xmm4,xmm4,xmm20 + vextracti32x4 xmm11,zmm4,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 XMMWORD[128+r11*1+r10]{k1},xmm4 + vmovdqu8 zmm4{k1}{z},zmm4 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb xmm20,xmm4,xmm29 + vextracti32x4 xmm7,zmm20,0 + sub r13,16 * (9 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_268 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm20,xmm1,0x01 + vpclmulqdq xmm5,xmm20,xmm1,0x10 + vpclmulqdq xmm0,xmm20,xmm1,0x11 + vpclmulqdq xmm3,xmm20,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_268 +$L$_small_initial_partial_block_268: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_268: + + or r13,r13 + je NEAR $L$_after_reduction_268 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_268: + jmp NEAR $L$_last_blocks_done_250 +$L$_last_num_blocks_is_10_250: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,246 + jae NEAR $L$_16_blocks_overflow_269 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd ymm4,ymm3,ymm27 + jmp NEAR $L$_16_blocks_ok_269 + +$L$_16_blocks_overflow_269: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb ymm4,ymm4,ymm29 +$L$_16_blocks_ok_269: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm4,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 ymm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast ymm4,ymm4,ymm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq ymm4,ymm4,ymm20 + vextracti32x4 xmm11,zmm4,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 YMMWORD[128+r11*1+r10]{k1},ymm4 + vmovdqu8 zmm4{k1}{z},zmm4 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb ymm20,ymm4,ymm29 + vextracti32x4 xmm7,zmm20,1 + sub r13,16 * (10 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_270 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm20,ymm1,0x01 + vpclmulqdq ymm5,ymm20,ymm1,0x10 + vpclmulqdq ymm0,ymm20,ymm1,0x11 + vpclmulqdq ymm3,ymm20,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_270 +$L$_small_initial_partial_block_270: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm20,xmm1,0x01 + vpclmulqdq xmm5,xmm20,xmm1,0x10 + vpclmulqdq xmm0,xmm20,xmm1,0x11 + vpclmulqdq xmm3,xmm20,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_270: + + or r13,r13 + je NEAR $L$_after_reduction_270 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_270: + jmp NEAR $L$_last_blocks_done_250 +$L$_last_num_blocks_is_11_250: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,245 + jae NEAR $L$_16_blocks_overflow_271 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + jmp NEAR $L$_16_blocks_ok_271 + +$L$_16_blocks_overflow_271: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 +$L$_16_blocks_ok_271: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm4,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vextracti32x4 xmm11,zmm4,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10]{k1},zmm4 + vmovdqu8 zmm4{k1}{z},zmm4 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb zmm20,zmm4,zmm29 + vextracti32x4 xmm7,zmm20,2 + sub r13,16 * (11 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_272 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm20,zmm1,0x01 + vpclmulqdq zmm5,zmm20,zmm1,0x10 + vpclmulqdq zmm0,zmm20,zmm1,0x11 + vpclmulqdq zmm3,zmm20,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_272 +$L$_small_initial_partial_block_272: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm20,ymm1,0x01 + vpclmulqdq ymm5,ymm20,ymm1,0x10 + vpclmulqdq ymm0,ymm20,ymm1,0x11 + vpclmulqdq ymm3,ymm20,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_272: + + or r13,r13 + je NEAR $L$_after_reduction_272 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_272: + jmp NEAR $L$_last_blocks_done_250 +$L$_last_num_blocks_is_12_250: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,244 + jae NEAR $L$_16_blocks_overflow_273 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + jmp NEAR $L$_16_blocks_ok_273 + +$L$_16_blocks_overflow_273: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 +$L$_16_blocks_ok_273: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm4,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vextracti32x4 xmm11,zmm4,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10]{k1},zmm4 + vmovdqu8 zmm4{k1}{z},zmm4 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb zmm20,zmm4,zmm29 + vextracti32x4 xmm7,zmm20,3 + sub r13,16 * (12 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_274 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[160+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_274 +$L$_small_initial_partial_block_274: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm20,zmm1,0x01 + vpclmulqdq zmm5,zmm20,zmm1,0x10 + vpclmulqdq zmm0,zmm20,zmm1,0x11 + vpclmulqdq zmm3,zmm20,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_274: + + or r13,r13 + je NEAR $L$_after_reduction_274 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_274: + jmp NEAR $L$_last_blocks_done_250 +$L$_last_num_blocks_is_13_250: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,243 + jae NEAR $L$_16_blocks_overflow_275 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd xmm5,xmm4,xmm27 + jmp NEAR $L$_16_blocks_ok_275 + +$L$_16_blocks_overflow_275: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb xmm5,xmm5,xmm29 +$L$_16_blocks_ok_275: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm5,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 xmm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast xmm5,xmm5,xmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq xmm5,xmm5,xmm21 + vextracti32x4 xmm11,zmm5,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 XMMWORD[192+r11*1+r10]{k1},xmm5 + vmovdqu8 zmm5{k1}{z},zmm5 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb zmm20,zmm4,zmm29 + vpshufb xmm21,xmm5,xmm29 + vextracti32x4 xmm7,zmm21,0 + sub r13,16 * (13 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_276 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[144+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm21,xmm1,0x01 + vpclmulqdq xmm5,xmm21,xmm1,0x10 + vpclmulqdq xmm0,xmm21,xmm1,0x11 + vpclmulqdq xmm3,xmm21,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_276 +$L$_small_initial_partial_block_276: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[160+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_276: + + or r13,r13 + je NEAR $L$_after_reduction_276 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_276: + jmp NEAR $L$_last_blocks_done_250 +$L$_last_num_blocks_is_14_250: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,242 + jae NEAR $L$_16_blocks_overflow_277 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd ymm5,ymm4,ymm27 + jmp NEAR $L$_16_blocks_ok_277 + +$L$_16_blocks_overflow_277: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb ymm5,ymm5,ymm29 +$L$_16_blocks_ok_277: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm5,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 ymm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast ymm5,ymm5,ymm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq ymm5,ymm5,ymm21 + vextracti32x4 xmm11,zmm5,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 YMMWORD[192+r11*1+r10]{k1},ymm5 + vmovdqu8 zmm5{k1}{z},zmm5 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb zmm20,zmm4,zmm29 + vpshufb ymm21,ymm5,ymm29 + vextracti32x4 xmm7,zmm21,1 + sub r13,16 * (14 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_278 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[128+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm21,ymm1,0x01 + vpclmulqdq ymm5,ymm21,ymm1,0x10 + vpclmulqdq ymm0,ymm21,ymm1,0x11 + vpclmulqdq ymm3,ymm21,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_278 +$L$_small_initial_partial_block_278: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[144+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm21,xmm1,0x01 + vpclmulqdq xmm5,xmm21,xmm1,0x10 + vpclmulqdq xmm0,xmm21,xmm1,0x11 + vpclmulqdq xmm3,xmm21,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_278: + + or r13,r13 + je NEAR $L$_after_reduction_278 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_278: + jmp NEAR $L$_last_blocks_done_250 +$L$_last_num_blocks_is_15_250: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,241 + jae NEAR $L$_16_blocks_overflow_279 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_279 + +$L$_16_blocks_overflow_279: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_279: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm5,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + vextracti32x4 xmm11,zmm5,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[192+r11*1+r10]{k1},zmm5 + vmovdqu8 zmm5{k1}{z},zmm5 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb zmm20,zmm4,zmm29 + vpshufb zmm21,zmm5,zmm29 + vextracti32x4 xmm7,zmm21,2 + sub r13,16 * (15 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_280 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[112+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm21,zmm1,0x01 + vpclmulqdq zmm5,zmm21,zmm1,0x10 + vpclmulqdq zmm0,zmm21,zmm1,0x11 + vpclmulqdq zmm3,zmm21,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_280 +$L$_small_initial_partial_block_280: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[128+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm21,ymm1,0x01 + vpclmulqdq ymm5,ymm21,ymm1,0x10 + vpclmulqdq ymm0,ymm21,ymm1,0x11 + vpclmulqdq ymm3,ymm21,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_280: + + or r13,r13 + je NEAR $L$_after_reduction_280 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_280: + jmp NEAR $L$_last_blocks_done_250 +$L$_last_num_blocks_is_16_250: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,240 + jae NEAR $L$_16_blocks_overflow_281 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_281 + +$L$_16_blocks_overflow_281: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_281: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm5,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + vextracti32x4 xmm11,zmm5,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[192+r11*1+r10]{k1},zmm5 + vmovdqu8 zmm5{k1}{z},zmm5 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb zmm20,zmm4,zmm29 + vpshufb zmm21,zmm5,zmm29 + vextracti32x4 xmm7,zmm21,3 + sub r13,16 * (16 - 1) +$L$_small_initial_partial_block_282: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[112+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm21,zmm1,0x01 + vpclmulqdq zmm5,zmm21,zmm1,0x10 + vpclmulqdq zmm0,zmm21,zmm1,0x11 + vpclmulqdq zmm3,zmm21,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_282: + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_282: + jmp NEAR $L$_last_blocks_done_250 +$L$_last_num_blocks_is_0_250: + vmovdqa64 zmm13,ZMMWORD[1280+rsp] + vmovdqu64 zmm12,ZMMWORD[512+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[1344+rsp] + vmovdqu64 zmm12,ZMMWORD[576+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + vpternlogq zmm26,zmm4,zmm10,0x96 + vpternlogq zmm24,zmm0,zmm6,0x96 + vpternlogq zmm25,zmm3,zmm7,0x96 + vpternlogq zmm26,zmm5,zmm11,0x96 + vmovdqa64 zmm13,ZMMWORD[1408+rsp] + vmovdqu64 zmm12,ZMMWORD[640+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[1472+rsp] + vmovdqu64 zmm12,ZMMWORD[704+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + + vpternlogq zmm26,zmm4,zmm10,0x96 + vpternlogq zmm24,zmm0,zmm6,0x96 + vpternlogq zmm25,zmm3,zmm7,0x96 + vpternlogq zmm26,zmm5,zmm11,0x96 + + vpsrldq zmm0,zmm26,8 + vpslldq zmm3,zmm26,8 + vpxorq zmm24,zmm24,zmm0 + vpxorq zmm25,zmm25,zmm3 + vextracti64x4 ymm0,zmm24,1 + vpxorq ymm24,ymm24,ymm0 + vextracti32x4 xmm0,ymm24,1 + vpxorq xmm24,xmm24,xmm0 + vextracti64x4 ymm3,zmm25,1 + vpxorq ymm25,ymm25,ymm3 + vextracti32x4 xmm3,ymm25,1 + vpxorq xmm25,xmm25,xmm3 + vmovdqa64 xmm4,XMMWORD[POLY2] + + + vpclmulqdq xmm0,xmm4,xmm25,0x01 + vpslldq xmm0,xmm0,8 + vpxorq xmm0,xmm25,xmm0 + + + vpclmulqdq xmm3,xmm4,xmm0,0x00 + vpsrldq xmm3,xmm3,4 + vpclmulqdq xmm14,xmm4,xmm0,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm3,xmm24,0x96 + +$L$_last_blocks_done_250: + vpshufb xmm2,xmm2,xmm29 + jmp NEAR $L$_ghash_done_172 + +$L$_message_below_32_blocks_172: + + + sub r13,256 + add r11,256 + mov r10d,r13d + test r14,r14 + jnz NEAR $L$_skip_hkeys_precomputation_283 + vmovdqu64 zmm3,ZMMWORD[640+rsp] + + + vshufi64x2 zmm3,zmm3,zmm3,0x00 + + vmovdqu64 zmm4,ZMMWORD[576+rsp] + vmovdqu64 zmm5,ZMMWORD[512+rsp] + + vpclmulqdq zmm6,zmm4,zmm3,0x11 + vpclmulqdq zmm7,zmm4,zmm3,0x00 + vpclmulqdq zmm10,zmm4,zmm3,0x01 + vpclmulqdq zmm4,zmm4,zmm3,0x10 + vpxorq zmm4,zmm4,zmm10 + + vpsrldq zmm10,zmm4,8 + vpslldq zmm4,zmm4,8 + vpxorq zmm6,zmm6,zmm10 + vpxorq zmm4,zmm4,zmm7 + + + + vmovdqu64 zmm10,ZMMWORD[POLY2] + + vpclmulqdq zmm7,zmm10,zmm4,0x01 + vpslldq zmm7,zmm7,8 + vpxorq zmm4,zmm4,zmm7 + + + + vpclmulqdq zmm7,zmm10,zmm4,0x00 + vpsrldq zmm7,zmm7,4 + vpclmulqdq zmm4,zmm10,zmm4,0x10 + vpslldq zmm4,zmm4,4 + + vpternlogq zmm4,zmm6,zmm7,0x96 + + vmovdqu64 ZMMWORD[448+rsp],zmm4 + + vpclmulqdq zmm6,zmm5,zmm3,0x11 + vpclmulqdq zmm7,zmm5,zmm3,0x00 + vpclmulqdq zmm10,zmm5,zmm3,0x01 + vpclmulqdq zmm5,zmm5,zmm3,0x10 + vpxorq zmm5,zmm5,zmm10 + + vpsrldq zmm10,zmm5,8 + vpslldq zmm5,zmm5,8 + vpxorq zmm6,zmm6,zmm10 + vpxorq zmm5,zmm5,zmm7 + + + + vmovdqu64 zmm10,ZMMWORD[POLY2] + + vpclmulqdq zmm7,zmm10,zmm5,0x01 + vpslldq zmm7,zmm7,8 + vpxorq zmm5,zmm5,zmm7 + + + + vpclmulqdq zmm7,zmm10,zmm5,0x00 + vpsrldq zmm7,zmm7,4 + vpclmulqdq zmm5,zmm10,zmm5,0x10 + vpslldq zmm5,zmm5,4 + + vpternlogq zmm5,zmm6,zmm7,0x96 + + vmovdqu64 ZMMWORD[384+rsp],zmm5 + + vpclmulqdq zmm6,zmm4,zmm3,0x11 + vpclmulqdq zmm7,zmm4,zmm3,0x00 + vpclmulqdq zmm10,zmm4,zmm3,0x01 + vpclmulqdq zmm4,zmm4,zmm3,0x10 + vpxorq zmm4,zmm4,zmm10 + + vpsrldq zmm10,zmm4,8 + vpslldq zmm4,zmm4,8 + vpxorq zmm6,zmm6,zmm10 + vpxorq zmm4,zmm4,zmm7 + + + + vmovdqu64 zmm10,ZMMWORD[POLY2] + + vpclmulqdq zmm7,zmm10,zmm4,0x01 + vpslldq zmm7,zmm7,8 + vpxorq zmm4,zmm4,zmm7 + + + + vpclmulqdq zmm7,zmm10,zmm4,0x00 + vpsrldq zmm7,zmm7,4 + vpclmulqdq zmm4,zmm10,zmm4,0x10 + vpslldq zmm4,zmm4,4 + + vpternlogq zmm4,zmm6,zmm7,0x96 + + vmovdqu64 ZMMWORD[320+rsp],zmm4 + + vpclmulqdq zmm6,zmm5,zmm3,0x11 + vpclmulqdq zmm7,zmm5,zmm3,0x00 + vpclmulqdq zmm10,zmm5,zmm3,0x01 + vpclmulqdq zmm5,zmm5,zmm3,0x10 + vpxorq zmm5,zmm5,zmm10 + + vpsrldq zmm10,zmm5,8 + vpslldq zmm5,zmm5,8 + vpxorq zmm6,zmm6,zmm10 + vpxorq zmm5,zmm5,zmm7 + + + + vmovdqu64 zmm10,ZMMWORD[POLY2] + + vpclmulqdq zmm7,zmm10,zmm5,0x01 + vpslldq zmm7,zmm7,8 + vpxorq zmm5,zmm5,zmm7 + + + + vpclmulqdq zmm7,zmm10,zmm5,0x00 + vpsrldq zmm7,zmm7,4 + vpclmulqdq zmm5,zmm10,zmm5,0x10 + vpslldq zmm5,zmm5,4 + + vpternlogq zmm5,zmm6,zmm7,0x96 + + vmovdqu64 ZMMWORD[256+rsp],zmm5 +$L$_skip_hkeys_precomputation_283: + mov r14,1 + and r10d,~15 + mov ebx,512 + sub ebx,r10d + mov r10d,r13d + add r10d,15 + shr r10d,4 + je NEAR $L$_last_num_blocks_is_0_284 + + cmp r10d,8 + je NEAR $L$_last_num_blocks_is_8_284 + jb NEAR $L$_last_num_blocks_is_7_1_284 + + + cmp r10d,12 + je NEAR $L$_last_num_blocks_is_12_284 + jb NEAR $L$_last_num_blocks_is_11_9_284 + + + cmp r10d,15 + je NEAR $L$_last_num_blocks_is_15_284 + ja NEAR $L$_last_num_blocks_is_16_284 + cmp r10d,14 + je NEAR $L$_last_num_blocks_is_14_284 + jmp NEAR $L$_last_num_blocks_is_13_284 + +$L$_last_num_blocks_is_11_9_284: + + cmp r10d,10 + je NEAR $L$_last_num_blocks_is_10_284 + ja NEAR $L$_last_num_blocks_is_11_284 + jmp NEAR $L$_last_num_blocks_is_9_284 + +$L$_last_num_blocks_is_7_1_284: + cmp r10d,4 + je NEAR $L$_last_num_blocks_is_4_284 + jb NEAR $L$_last_num_blocks_is_3_1_284 + + cmp r10d,6 + ja NEAR $L$_last_num_blocks_is_7_284 + je NEAR $L$_last_num_blocks_is_6_284 + jmp NEAR $L$_last_num_blocks_is_5_284 + +$L$_last_num_blocks_is_3_1_284: + + cmp r10d,2 + ja NEAR $L$_last_num_blocks_is_3_284 + je NEAR $L$_last_num_blocks_is_2_284 +$L$_last_num_blocks_is_1_284: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,255 + jae NEAR $L$_16_blocks_overflow_285 + vpaddd xmm0,xmm2,xmm28 + jmp NEAR $L$_16_blocks_ok_285 + +$L$_16_blocks_overflow_285: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb xmm0,xmm0,xmm29 +$L$_16_blocks_ok_285: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm0,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 xmm17{k1}{z},[r11*1+r9] + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc xmm0,xmm0,xmm31 + vaesenclast xmm0,xmm0,xmm30 + vpxorq xmm0,xmm0,xmm17 + vextracti32x4 xmm11,zmm0,0 + mov r10,QWORD[120+rbp] + vmovdqu8 XMMWORD[r11*1+r10]{k1},xmm0 + vmovdqu8 zmm0{k1}{z},zmm0 + vpshufb xmm17,xmm0,xmm29 + vextracti32x4 xmm7,zmm17,0 + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_286 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm17,xmm1,0x01 + vpclmulqdq xmm5,xmm17,xmm1,0x10 + vpclmulqdq xmm0,xmm17,xmm1,0x11 + vpclmulqdq xmm3,xmm17,xmm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_286 +$L$_small_initial_partial_block_286: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + + + vpsrldq zmm0,zmm26,8 + vpslldq zmm3,zmm26,8 + vpxorq zmm24,zmm24,zmm0 + vpxorq zmm25,zmm25,zmm3 + vextracti64x4 ymm0,zmm24,1 + vpxorq ymm24,ymm24,ymm0 + vextracti32x4 xmm0,ymm24,1 + vpxorq xmm24,xmm24,xmm0 + vextracti64x4 ymm3,zmm25,1 + vpxorq ymm25,ymm25,ymm3 + vextracti32x4 xmm3,ymm25,1 + vpxorq xmm25,xmm25,xmm3 + vmovdqa64 xmm0,XMMWORD[POLY2] + + + vpclmulqdq xmm3,xmm0,xmm25,0x01 + vpslldq xmm3,xmm3,8 + vpxorq xmm3,xmm25,xmm3 + + + vpclmulqdq xmm4,xmm0,xmm3,0x00 + vpsrldq xmm4,xmm4,4 + vpclmulqdq xmm14,xmm0,xmm3,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm4,xmm24,0x96 + + + + + + + + + + + + + vpxorq xmm14,xmm14,xmm7 + + jmp NEAR $L$_after_reduction_286 +$L$_small_initial_compute_done_286: +$L$_after_reduction_286: + jmp NEAR $L$_last_blocks_done_284 +$L$_last_num_blocks_is_2_284: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,254 + jae NEAR $L$_16_blocks_overflow_287 + vpaddd ymm0,ymm2,ymm28 + jmp NEAR $L$_16_blocks_ok_287 + +$L$_16_blocks_overflow_287: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb ymm0,ymm0,ymm29 +$L$_16_blocks_ok_287: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm0,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 ymm17{k1}{z},[r11*1+r9] + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc ymm0,ymm0,ymm31 + vaesenclast ymm0,ymm0,ymm30 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm11,zmm0,1 + mov r10,QWORD[120+rbp] + vmovdqu8 YMMWORD[r11*1+r10]{k1},ymm0 + vmovdqu8 zmm0{k1}{z},zmm0 + vpshufb ymm17,ymm0,ymm29 + vextracti32x4 xmm7,zmm17,1 + sub r13,16 * (2 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_288 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm17,ymm1,0x01 + vpclmulqdq ymm5,ymm17,ymm1,0x10 + vpclmulqdq ymm0,ymm17,ymm1,0x11 + vpclmulqdq ymm3,ymm17,ymm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_288 +$L$_small_initial_partial_block_288: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm17,xmm1,0x01 + vpclmulqdq xmm5,xmm17,xmm1,0x10 + vpclmulqdq xmm0,xmm17,xmm1,0x11 + vpclmulqdq xmm3,xmm17,xmm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_288: + + or r13,r13 + je NEAR $L$_after_reduction_288 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_288: + jmp NEAR $L$_last_blocks_done_284 +$L$_last_num_blocks_is_3_284: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,253 + jae NEAR $L$_16_blocks_overflow_289 + vpaddd zmm0,zmm2,zmm28 + jmp NEAR $L$_16_blocks_ok_289 + +$L$_16_blocks_overflow_289: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb zmm0,zmm0,zmm29 +$L$_16_blocks_ok_289: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm0,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17{k1}{z},[r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vpxorq zmm0,zmm0,zmm17 + vextracti32x4 xmm11,zmm0,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10]{k1},zmm0 + vmovdqu8 zmm0{k1}{z},zmm0 + vpshufb zmm17,zmm0,zmm29 + vextracti32x4 xmm7,zmm17,2 + sub r13,16 * (3 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_290 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_290 +$L$_small_initial_partial_block_290: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm17,ymm1,0x01 + vpclmulqdq ymm5,ymm17,ymm1,0x10 + vpclmulqdq ymm0,ymm17,ymm1,0x11 + vpclmulqdq ymm3,ymm17,ymm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_290: + + or r13,r13 + je NEAR $L$_after_reduction_290 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_290: + jmp NEAR $L$_last_blocks_done_284 +$L$_last_num_blocks_is_4_284: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,252 + jae NEAR $L$_16_blocks_overflow_291 + vpaddd zmm0,zmm2,zmm28 + jmp NEAR $L$_16_blocks_ok_291 + +$L$_16_blocks_overflow_291: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb zmm0,zmm0,zmm29 +$L$_16_blocks_ok_291: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm0,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17{k1}{z},[r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vpxorq zmm0,zmm0,zmm17 + vextracti32x4 xmm11,zmm0,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10]{k1},zmm0 + vmovdqu8 zmm0{k1}{z},zmm0 + vpshufb zmm17,zmm0,zmm29 + vextracti32x4 xmm7,zmm17,3 + sub r13,16 * (4 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_292 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_292 +$L$_small_initial_partial_block_292: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_292: + + or r13,r13 + je NEAR $L$_after_reduction_292 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_292: + jmp NEAR $L$_last_blocks_done_284 +$L$_last_num_blocks_is_5_284: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,251 + jae NEAR $L$_16_blocks_overflow_293 + vpaddd zmm0,zmm2,zmm28 + vpaddd xmm3,xmm0,xmm27 + jmp NEAR $L$_16_blocks_ok_293 + +$L$_16_blocks_overflow_293: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb xmm3,xmm3,xmm29 +$L$_16_blocks_ok_293: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm3,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 xmm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast xmm3,xmm3,xmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq xmm3,xmm3,xmm19 + vextracti32x4 xmm11,zmm3,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 XMMWORD[64+r11*1+r10]{k1},xmm3 + vmovdqu8 zmm3{k1}{z},zmm3 + vpshufb zmm17,zmm0,zmm29 + vpshufb xmm19,xmm3,xmm29 + vextracti32x4 xmm7,zmm19,0 + sub r13,16 * (5 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_294 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm19,xmm1,0x01 + vpclmulqdq xmm5,xmm19,xmm1,0x10 + vpclmulqdq xmm0,xmm19,xmm1,0x11 + vpclmulqdq xmm3,xmm19,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_294 +$L$_small_initial_partial_block_294: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_294: + + or r13,r13 + je NEAR $L$_after_reduction_294 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_294: + jmp NEAR $L$_last_blocks_done_284 +$L$_last_num_blocks_is_6_284: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,250 + jae NEAR $L$_16_blocks_overflow_295 + vpaddd zmm0,zmm2,zmm28 + vpaddd ymm3,ymm0,ymm27 + jmp NEAR $L$_16_blocks_ok_295 + +$L$_16_blocks_overflow_295: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb ymm3,ymm3,ymm29 +$L$_16_blocks_ok_295: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm3,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 ymm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast ymm3,ymm3,ymm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm11,zmm3,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 YMMWORD[64+r11*1+r10]{k1},ymm3 + vmovdqu8 zmm3{k1}{z},zmm3 + vpshufb zmm17,zmm0,zmm29 + vpshufb ymm19,ymm3,ymm29 + vextracti32x4 xmm7,zmm19,1 + sub r13,16 * (6 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_296 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm19,ymm1,0x01 + vpclmulqdq ymm5,ymm19,ymm1,0x10 + vpclmulqdq ymm0,ymm19,ymm1,0x11 + vpclmulqdq ymm3,ymm19,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_296 +$L$_small_initial_partial_block_296: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm19,xmm1,0x01 + vpclmulqdq xmm5,xmm19,xmm1,0x10 + vpclmulqdq xmm0,xmm19,xmm1,0x11 + vpclmulqdq xmm3,xmm19,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_296: + + or r13,r13 + je NEAR $L$_after_reduction_296 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_296: + jmp NEAR $L$_last_blocks_done_284 +$L$_last_num_blocks_is_7_284: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,249 + jae NEAR $L$_16_blocks_overflow_297 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + jmp NEAR $L$_16_blocks_ok_297 + +$L$_16_blocks_overflow_297: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 +$L$_16_blocks_ok_297: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm3,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti32x4 xmm11,zmm3,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10]{k1},zmm3 + vmovdqu8 zmm3{k1}{z},zmm3 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vextracti32x4 xmm7,zmm19,2 + sub r13,16 * (7 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_298 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm19,zmm1,0x01 + vpclmulqdq zmm5,zmm19,zmm1,0x10 + vpclmulqdq zmm0,zmm19,zmm1,0x11 + vpclmulqdq zmm3,zmm19,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_298 +$L$_small_initial_partial_block_298: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm19,ymm1,0x01 + vpclmulqdq ymm5,ymm19,ymm1,0x10 + vpclmulqdq ymm0,ymm19,ymm1,0x11 + vpclmulqdq ymm3,ymm19,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_298: + + or r13,r13 + je NEAR $L$_after_reduction_298 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_298: + jmp NEAR $L$_last_blocks_done_284 +$L$_last_num_blocks_is_8_284: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,248 + jae NEAR $L$_16_blocks_overflow_299 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + jmp NEAR $L$_16_blocks_ok_299 + +$L$_16_blocks_overflow_299: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 +$L$_16_blocks_ok_299: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm3,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti32x4 xmm11,zmm3,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10]{k1},zmm3 + vmovdqu8 zmm3{k1}{z},zmm3 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vextracti32x4 xmm7,zmm19,3 + sub r13,16 * (8 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_300 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_300 +$L$_small_initial_partial_block_300: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm19,zmm1,0x01 + vpclmulqdq zmm5,zmm19,zmm1,0x10 + vpclmulqdq zmm0,zmm19,zmm1,0x11 + vpclmulqdq zmm3,zmm19,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_300: + + or r13,r13 + je NEAR $L$_after_reduction_300 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_300: + jmp NEAR $L$_last_blocks_done_284 +$L$_last_num_blocks_is_9_284: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,247 + jae NEAR $L$_16_blocks_overflow_301 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd xmm4,xmm3,xmm27 + jmp NEAR $L$_16_blocks_ok_301 + +$L$_16_blocks_overflow_301: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb xmm4,xmm4,xmm29 +$L$_16_blocks_ok_301: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm4,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 xmm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast xmm4,xmm4,xmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq xmm4,xmm4,xmm20 + vextracti32x4 xmm11,zmm4,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 XMMWORD[128+r11*1+r10]{k1},xmm4 + vmovdqu8 zmm4{k1}{z},zmm4 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb xmm20,xmm4,xmm29 + vextracti32x4 xmm7,zmm20,0 + sub r13,16 * (9 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_302 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm20,xmm1,0x01 + vpclmulqdq xmm5,xmm20,xmm1,0x10 + vpclmulqdq xmm0,xmm20,xmm1,0x11 + vpclmulqdq xmm3,xmm20,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_302 +$L$_small_initial_partial_block_302: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_302: + + or r13,r13 + je NEAR $L$_after_reduction_302 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_302: + jmp NEAR $L$_last_blocks_done_284 +$L$_last_num_blocks_is_10_284: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,246 + jae NEAR $L$_16_blocks_overflow_303 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd ymm4,ymm3,ymm27 + jmp NEAR $L$_16_blocks_ok_303 + +$L$_16_blocks_overflow_303: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb ymm4,ymm4,ymm29 +$L$_16_blocks_ok_303: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm4,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 ymm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast ymm4,ymm4,ymm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq ymm4,ymm4,ymm20 + vextracti32x4 xmm11,zmm4,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 YMMWORD[128+r11*1+r10]{k1},ymm4 + vmovdqu8 zmm4{k1}{z},zmm4 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb ymm20,ymm4,ymm29 + vextracti32x4 xmm7,zmm20,1 + sub r13,16 * (10 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_304 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm20,ymm1,0x01 + vpclmulqdq ymm5,ymm20,ymm1,0x10 + vpclmulqdq ymm0,ymm20,ymm1,0x11 + vpclmulqdq ymm3,ymm20,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_304 +$L$_small_initial_partial_block_304: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm20,xmm1,0x01 + vpclmulqdq xmm5,xmm20,xmm1,0x10 + vpclmulqdq xmm0,xmm20,xmm1,0x11 + vpclmulqdq xmm3,xmm20,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_304: + + or r13,r13 + je NEAR $L$_after_reduction_304 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_304: + jmp NEAR $L$_last_blocks_done_284 +$L$_last_num_blocks_is_11_284: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,245 + jae NEAR $L$_16_blocks_overflow_305 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + jmp NEAR $L$_16_blocks_ok_305 + +$L$_16_blocks_overflow_305: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 +$L$_16_blocks_ok_305: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm4,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vextracti32x4 xmm11,zmm4,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10]{k1},zmm4 + vmovdqu8 zmm4{k1}{z},zmm4 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb zmm20,zmm4,zmm29 + vextracti32x4 xmm7,zmm20,2 + sub r13,16 * (11 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_306 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm20,zmm1,0x01 + vpclmulqdq zmm5,zmm20,zmm1,0x10 + vpclmulqdq zmm0,zmm20,zmm1,0x11 + vpclmulqdq zmm3,zmm20,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_306 +$L$_small_initial_partial_block_306: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm20,ymm1,0x01 + vpclmulqdq ymm5,ymm20,ymm1,0x10 + vpclmulqdq ymm0,ymm20,ymm1,0x11 + vpclmulqdq ymm3,ymm20,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_306: + + or r13,r13 + je NEAR $L$_after_reduction_306 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_306: + jmp NEAR $L$_last_blocks_done_284 +$L$_last_num_blocks_is_12_284: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,244 + jae NEAR $L$_16_blocks_overflow_307 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + jmp NEAR $L$_16_blocks_ok_307 + +$L$_16_blocks_overflow_307: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 +$L$_16_blocks_ok_307: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm4,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vextracti32x4 xmm11,zmm4,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10]{k1},zmm4 + vmovdqu8 zmm4{k1}{z},zmm4 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb zmm20,zmm4,zmm29 + vextracti32x4 xmm7,zmm20,3 + sub r13,16 * (12 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_308 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[160+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_308 +$L$_small_initial_partial_block_308: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm20,zmm1,0x01 + vpclmulqdq zmm5,zmm20,zmm1,0x10 + vpclmulqdq zmm0,zmm20,zmm1,0x11 + vpclmulqdq zmm3,zmm20,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_308: + + or r13,r13 + je NEAR $L$_after_reduction_308 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_308: + jmp NEAR $L$_last_blocks_done_284 +$L$_last_num_blocks_is_13_284: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,243 + jae NEAR $L$_16_blocks_overflow_309 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd xmm5,xmm4,xmm27 + jmp NEAR $L$_16_blocks_ok_309 + +$L$_16_blocks_overflow_309: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb xmm5,xmm5,xmm29 +$L$_16_blocks_ok_309: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm5,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 xmm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast xmm5,xmm5,xmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq xmm5,xmm5,xmm21 + vextracti32x4 xmm11,zmm5,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 XMMWORD[192+r11*1+r10]{k1},xmm5 + vmovdqu8 zmm5{k1}{z},zmm5 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb zmm20,zmm4,zmm29 + vpshufb xmm21,xmm5,xmm29 + vextracti32x4 xmm7,zmm21,0 + sub r13,16 * (13 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_310 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[144+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm21,xmm1,0x01 + vpclmulqdq xmm5,xmm21,xmm1,0x10 + vpclmulqdq xmm0,xmm21,xmm1,0x11 + vpclmulqdq xmm3,xmm21,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_310 +$L$_small_initial_partial_block_310: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[160+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_310: + + or r13,r13 + je NEAR $L$_after_reduction_310 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_310: + jmp NEAR $L$_last_blocks_done_284 +$L$_last_num_blocks_is_14_284: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,242 + jae NEAR $L$_16_blocks_overflow_311 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd ymm5,ymm4,ymm27 + jmp NEAR $L$_16_blocks_ok_311 + +$L$_16_blocks_overflow_311: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb ymm5,ymm5,ymm29 +$L$_16_blocks_ok_311: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm5,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 ymm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast ymm5,ymm5,ymm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq ymm5,ymm5,ymm21 + vextracti32x4 xmm11,zmm5,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 YMMWORD[192+r11*1+r10]{k1},ymm5 + vmovdqu8 zmm5{k1}{z},zmm5 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb zmm20,zmm4,zmm29 + vpshufb ymm21,ymm5,ymm29 + vextracti32x4 xmm7,zmm21,1 + sub r13,16 * (14 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_312 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[128+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm21,ymm1,0x01 + vpclmulqdq ymm5,ymm21,ymm1,0x10 + vpclmulqdq ymm0,ymm21,ymm1,0x11 + vpclmulqdq ymm3,ymm21,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_312 +$L$_small_initial_partial_block_312: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[144+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm21,xmm1,0x01 + vpclmulqdq xmm5,xmm21,xmm1,0x10 + vpclmulqdq xmm0,xmm21,xmm1,0x11 + vpclmulqdq xmm3,xmm21,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_312: + + or r13,r13 + je NEAR $L$_after_reduction_312 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_312: + jmp NEAR $L$_last_blocks_done_284 +$L$_last_num_blocks_is_15_284: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,241 + jae NEAR $L$_16_blocks_overflow_313 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_313 + +$L$_16_blocks_overflow_313: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_313: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm5,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + vextracti32x4 xmm11,zmm5,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[192+r11*1+r10]{k1},zmm5 + vmovdqu8 zmm5{k1}{z},zmm5 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb zmm20,zmm4,zmm29 + vpshufb zmm21,zmm5,zmm29 + vextracti32x4 xmm7,zmm21,2 + sub r13,16 * (15 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_314 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[112+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm21,zmm1,0x01 + vpclmulqdq zmm5,zmm21,zmm1,0x10 + vpclmulqdq zmm0,zmm21,zmm1,0x11 + vpclmulqdq zmm3,zmm21,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_314 +$L$_small_initial_partial_block_314: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[128+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm21,ymm1,0x01 + vpclmulqdq ymm5,ymm21,ymm1,0x10 + vpclmulqdq ymm0,ymm21,ymm1,0x11 + vpclmulqdq ymm3,ymm21,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_314: + + or r13,r13 + je NEAR $L$_after_reduction_314 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_314: + jmp NEAR $L$_last_blocks_done_284 +$L$_last_num_blocks_is_16_284: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,240 + jae NEAR $L$_16_blocks_overflow_315 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_315 + +$L$_16_blocks_overflow_315: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_315: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm5,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + vextracti32x4 xmm11,zmm5,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[192+r11*1+r10]{k1},zmm5 + vmovdqu8 zmm5{k1}{z},zmm5 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb zmm20,zmm4,zmm29 + vpshufb zmm21,zmm5,zmm29 + vextracti32x4 xmm7,zmm21,3 + sub r13,16 * (16 - 1) +$L$_small_initial_partial_block_316: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[112+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm21,zmm1,0x01 + vpclmulqdq zmm5,zmm21,zmm1,0x10 + vpclmulqdq zmm0,zmm21,zmm1,0x11 + vpclmulqdq zmm3,zmm21,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_316: + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_316: + jmp NEAR $L$_last_blocks_done_284 +$L$_last_num_blocks_is_0_284: + vmovdqa64 zmm13,ZMMWORD[768+rsp] + vpxorq zmm13,zmm13,zmm14 + vmovdqu64 zmm12,ZMMWORD[rbx*1+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[832+rsp] + vmovdqu64 zmm12,ZMMWORD[64+rbx*1+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + vpxorq zmm26,zmm4,zmm10 + vpxorq zmm24,zmm0,zmm6 + vpxorq zmm25,zmm3,zmm7 + vpternlogq zmm26,zmm5,zmm11,0x96 + vmovdqa64 zmm13,ZMMWORD[896+rsp] + vmovdqu64 zmm12,ZMMWORD[128+rbx*1+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[960+rsp] + vmovdqu64 zmm12,ZMMWORD[192+rbx*1+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + + vpternlogq zmm26,zmm4,zmm10,0x96 + vpternlogq zmm24,zmm0,zmm6,0x96 + vpternlogq zmm25,zmm3,zmm7,0x96 + vpternlogq zmm26,zmm5,zmm11,0x96 + + vpsrldq zmm0,zmm26,8 + vpslldq zmm3,zmm26,8 + vpxorq zmm24,zmm24,zmm0 + vpxorq zmm25,zmm25,zmm3 + vextracti64x4 ymm0,zmm24,1 + vpxorq ymm24,ymm24,ymm0 + vextracti32x4 xmm0,ymm24,1 + vpxorq xmm24,xmm24,xmm0 + vextracti64x4 ymm3,zmm25,1 + vpxorq ymm25,ymm25,ymm3 + vextracti32x4 xmm3,ymm25,1 + vpxorq xmm25,xmm25,xmm3 + vmovdqa64 xmm4,XMMWORD[POLY2] + + + vpclmulqdq xmm0,xmm4,xmm25,0x01 + vpslldq xmm0,xmm0,8 + vpxorq xmm0,xmm25,xmm0 + + + vpclmulqdq xmm3,xmm4,xmm0,0x00 + vpsrldq xmm3,xmm3,4 + vpclmulqdq xmm14,xmm4,xmm0,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm3,xmm24,0x96 + +$L$_last_blocks_done_284: + vpshufb xmm2,xmm2,xmm29 + jmp NEAR $L$_ghash_done_172 + +$L$_message_below_equal_16_blocks_172: + + + mov r12d,r13d + add r12d,15 + shr r12d,4 + cmp r12,8 + je NEAR $L$_small_initial_num_blocks_is_8_317 + jl NEAR $L$_small_initial_num_blocks_is_7_1_317 + + + cmp r12,12 + je NEAR $L$_small_initial_num_blocks_is_12_317 + jl NEAR $L$_small_initial_num_blocks_is_11_9_317 + + + cmp r12,16 + je NEAR $L$_small_initial_num_blocks_is_16_317 + cmp r12,15 + je NEAR $L$_small_initial_num_blocks_is_15_317 + cmp r12,14 + je NEAR $L$_small_initial_num_blocks_is_14_317 + jmp NEAR $L$_small_initial_num_blocks_is_13_317 + +$L$_small_initial_num_blocks_is_11_9_317: + + cmp r12,11 + je NEAR $L$_small_initial_num_blocks_is_11_317 + cmp r12,10 + je NEAR $L$_small_initial_num_blocks_is_10_317 + jmp NEAR $L$_small_initial_num_blocks_is_9_317 + +$L$_small_initial_num_blocks_is_7_1_317: + cmp r12,4 + je NEAR $L$_small_initial_num_blocks_is_4_317 + jl NEAR $L$_small_initial_num_blocks_is_3_1_317 + + cmp r12,7 + je NEAR $L$_small_initial_num_blocks_is_7_317 + cmp r12,6 + je NEAR $L$_small_initial_num_blocks_is_6_317 + jmp NEAR $L$_small_initial_num_blocks_is_5_317 + +$L$_small_initial_num_blocks_is_3_1_317: + + cmp r12,3 + je NEAR $L$_small_initial_num_blocks_is_3_317 + cmp r12,2 + je NEAR $L$_small_initial_num_blocks_is_2_317 + + + + + +$L$_small_initial_num_blocks_is_1_317: + vmovdqa64 xmm29,XMMWORD[SHUF_MASK] + vpaddd xmm0,xmm2,XMMWORD[ONE] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm0,0 + vpshufb xmm0,xmm0,xmm29 + vmovdqu8 xmm6{k1}{z},[r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq xmm0,xmm0,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc xmm0,xmm0,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc xmm0,xmm0,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc xmm0,xmm0,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc xmm0,xmm0,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc xmm0,xmm0,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc xmm0,xmm0,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc xmm0,xmm0,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc xmm0,xmm0,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc xmm0,xmm0,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenc xmm0,xmm0,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[176+rcx] + vaesenc xmm0,xmm0,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[192+rcx] + vaesenclast xmm0,xmm0,xmm15 + vpxorq xmm0,xmm0,xmm6 + vextracti32x4 xmm12,zmm0,0 + mov r10,QWORD[120+rbp] + vmovdqu8 XMMWORD[r11*1+r10]{k1},xmm0 + vmovdqu8 zmm0{k1}{z},zmm0 + vpshufb xmm6,xmm0,xmm29 + vextracti32x4 xmm13,zmm6,0 + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_318 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 xmm20,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm6,xmm20,0x01 + vpclmulqdq xmm5,xmm6,xmm20,0x10 + vpclmulqdq xmm0,xmm6,xmm20,0x11 + vpclmulqdq xmm3,xmm6,xmm20,0x00 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_318 +$L$_small_initial_partial_block_318: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + + + + + + + + + + + + vpxorq xmm14,xmm14,xmm13 + + jmp NEAR $L$_after_reduction_318 +$L$_small_initial_compute_done_318: +$L$_after_reduction_318: + jmp NEAR $L$_small_initial_blocks_encrypted_317 +$L$_small_initial_num_blocks_is_2_317: + vmovdqa64 ymm29,YMMWORD[SHUF_MASK] + vshufi64x2 ymm0,ymm2,ymm2,0 + vpaddd ymm0,ymm0,YMMWORD[ddq_add_1234] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm0,1 + vpshufb ymm0,ymm0,ymm29 + vmovdqu8 ymm6{k1}{z},[r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq ymm0,ymm0,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc ymm0,ymm0,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc ymm0,ymm0,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc ymm0,ymm0,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc ymm0,ymm0,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc ymm0,ymm0,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc ymm0,ymm0,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc ymm0,ymm0,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc ymm0,ymm0,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc ymm0,ymm0,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenc ymm0,ymm0,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[176+rcx] + vaesenc ymm0,ymm0,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[192+rcx] + vaesenclast ymm0,ymm0,ymm15 + vpxorq ymm0,ymm0,ymm6 + vextracti32x4 xmm12,zmm0,1 + mov r10,QWORD[120+rbp] + vmovdqu8 YMMWORD[r11*1+r10]{k1},ymm0 + vmovdqu8 zmm0{k1}{z},zmm0 + vpshufb ymm6,ymm0,ymm29 + vextracti32x4 xmm13,zmm6,1 + sub r13,16 * (2 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_319 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 ymm20,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm6,ymm20,0x01 + vpclmulqdq ymm5,ymm6,ymm20,0x10 + vpclmulqdq ymm0,ymm6,ymm20,0x11 + vpclmulqdq ymm3,ymm6,ymm20,0x00 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_319 +$L$_small_initial_partial_block_319: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 xmm20,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm6,xmm20,0x01 + vpclmulqdq xmm5,xmm6,xmm20,0x10 + vpclmulqdq xmm0,xmm6,xmm20,0x11 + vpclmulqdq xmm3,xmm6,xmm20,0x00 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_319: + + or r13,r13 + je NEAR $L$_after_reduction_319 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_319: + jmp NEAR $L$_small_initial_blocks_encrypted_317 +$L$_small_initial_num_blocks_is_3_317: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm0,2 + vpshufb zmm0,zmm0,zmm29 + vmovdqu8 zmm6{k1}{z},[r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[192+rcx] + vaesenclast zmm0,zmm0,zmm15 + vpxorq zmm0,zmm0,zmm6 + vextracti32x4 xmm12,zmm0,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10]{k1},zmm0 + vmovdqu8 zmm0{k1}{z},zmm0 + vpshufb zmm6,zmm0,zmm29 + vextracti32x4 xmm13,zmm6,2 + sub r13,16 * (3 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_320 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 ymm20,YMMWORD[304+rdx] + vinserti64x2 zmm20,zmm20,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_320 +$L$_small_initial_partial_block_320: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 ymm20,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm6,ymm20,0x01 + vpclmulqdq ymm5,ymm6,ymm20,0x10 + vpclmulqdq ymm0,ymm6,ymm20,0x11 + vpclmulqdq ymm3,ymm6,ymm20,0x00 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_320: + + or r13,r13 + je NEAR $L$_after_reduction_320 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_320: + jmp NEAR $L$_small_initial_blocks_encrypted_317 +$L$_small_initial_num_blocks_is_4_317: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm0,3 + vpshufb zmm0,zmm0,zmm29 + vmovdqu8 zmm6{k1}{z},[r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[192+rcx] + vaesenclast zmm0,zmm0,zmm15 + vpxorq zmm0,zmm0,zmm6 + vextracti32x4 xmm12,zmm0,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10]{k1},zmm0 + vmovdqu8 zmm0{k1}{z},zmm0 + vpshufb zmm6,zmm0,zmm29 + vextracti32x4 xmm13,zmm6,3 + sub r13,16 * (4 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_321 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[288+rdx] + vpclmulqdq zmm15,zmm6,zmm20,0x11 + vpclmulqdq zmm16,zmm6,zmm20,0x00 + vpclmulqdq zmm17,zmm6,zmm20,0x01 + vpclmulqdq zmm19,zmm6,zmm20,0x10 + + vpxorq zmm17,zmm17,zmm19 + vpsrldq zmm4,zmm17,8 + vpslldq zmm5,zmm17,8 + vpxorq zmm0,zmm15,zmm4 + vpxorq zmm3,zmm16,zmm5 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_321 +$L$_small_initial_partial_block_321: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 ymm20,YMMWORD[304+rdx] + vinserti64x2 zmm20,zmm20,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_321: + + or r13,r13 + je NEAR $L$_after_reduction_321 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_321: + jmp NEAR $L$_small_initial_blocks_encrypted_317 +$L$_small_initial_num_blocks_is_5_317: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm2,ZMMWORD[ddq_add_5678] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + sub r15,64 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm3,0 + vpshufb zmm0,zmm0,zmm29 + vpshufb xmm3,xmm3,xmm29 + vmovdqu8 zmm6,ZMMWORD[r11*1+r9] + vmovdqu8 xmm7{k1}{z},[64+r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vpxorq xmm3,xmm3,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc xmm3,xmm3,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc xmm3,xmm3,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc xmm3,xmm3,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc xmm3,xmm3,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc xmm3,xmm3,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc xmm3,xmm3,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc xmm3,xmm3,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc xmm3,xmm3,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc xmm3,xmm3,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc xmm3,xmm3,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc xmm3,xmm3,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[192+rcx] + vaesenclast zmm0,zmm0,zmm15 + vaesenclast xmm3,xmm3,xmm15 + vpxorq zmm0,zmm0,zmm6 + vpxorq xmm3,xmm3,xmm7 + vextracti32x4 xmm12,zmm3,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 XMMWORD[64+r11*1+r10]{k1},xmm3 + vmovdqu8 zmm3{k1}{z},zmm3 + vpshufb zmm6,zmm0,zmm29 + vpshufb xmm7,xmm3,xmm29 + vextracti32x4 xmm13,zmm7,0 + sub r13,16 * (5 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_322 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[272+rdx] + vpclmulqdq zmm15,zmm6,zmm20,0x11 + vpclmulqdq zmm16,zmm6,zmm20,0x00 + vpclmulqdq zmm17,zmm6,zmm20,0x01 + vpclmulqdq zmm19,zmm6,zmm20,0x10 + vmovdqu64 xmm20,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm7,xmm20,0x01 + vpclmulqdq xmm5,xmm7,xmm20,0x10 + vpclmulqdq xmm0,xmm7,xmm20,0x11 + vpclmulqdq xmm3,xmm7,xmm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_322 +$L$_small_initial_partial_block_322: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[288+rdx] + vpclmulqdq zmm15,zmm6,zmm20,0x11 + vpclmulqdq zmm16,zmm6,zmm20,0x00 + vpclmulqdq zmm17,zmm6,zmm20,0x01 + vpclmulqdq zmm19,zmm6,zmm20,0x10 + + vpxorq zmm17,zmm17,zmm19 + vpsrldq zmm4,zmm17,8 + vpslldq zmm5,zmm17,8 + vpxorq zmm0,zmm15,zmm4 + vpxorq zmm3,zmm16,zmm5 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_322: + + or r13,r13 + je NEAR $L$_after_reduction_322 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_322: + jmp NEAR $L$_small_initial_blocks_encrypted_317 +$L$_small_initial_num_blocks_is_6_317: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm2,ZMMWORD[ddq_add_5678] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + sub r15,64 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm3,1 + vpshufb zmm0,zmm0,zmm29 + vpshufb ymm3,ymm3,ymm29 + vmovdqu8 zmm6,ZMMWORD[r11*1+r9] + vmovdqu8 ymm7{k1}{z},[64+r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vpxorq ymm3,ymm3,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc ymm3,ymm3,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc ymm3,ymm3,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc ymm3,ymm3,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc ymm3,ymm3,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc ymm3,ymm3,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc ymm3,ymm3,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc ymm3,ymm3,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc ymm3,ymm3,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc ymm3,ymm3,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc ymm3,ymm3,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc ymm3,ymm3,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[192+rcx] + vaesenclast zmm0,zmm0,zmm15 + vaesenclast ymm3,ymm3,ymm15 + vpxorq zmm0,zmm0,zmm6 + vpxorq ymm3,ymm3,ymm7 + vextracti32x4 xmm12,zmm3,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 YMMWORD[64+r11*1+r10]{k1},ymm3 + vmovdqu8 zmm3{k1}{z},zmm3 + vpshufb zmm6,zmm0,zmm29 + vpshufb ymm7,ymm3,ymm29 + vextracti32x4 xmm13,zmm7,1 + sub r13,16 * (6 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_323 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[256+rdx] + vpclmulqdq zmm15,zmm6,zmm20,0x11 + vpclmulqdq zmm16,zmm6,zmm20,0x00 + vpclmulqdq zmm17,zmm6,zmm20,0x01 + vpclmulqdq zmm19,zmm6,zmm20,0x10 + vmovdqu64 ymm20,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm7,ymm20,0x01 + vpclmulqdq ymm5,ymm7,ymm20,0x10 + vpclmulqdq ymm0,ymm7,ymm20,0x11 + vpclmulqdq ymm3,ymm7,ymm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_323 +$L$_small_initial_partial_block_323: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[272+rdx] + vpclmulqdq zmm15,zmm6,zmm20,0x11 + vpclmulqdq zmm16,zmm6,zmm20,0x00 + vpclmulqdq zmm17,zmm6,zmm20,0x01 + vpclmulqdq zmm19,zmm6,zmm20,0x10 + vmovdqu64 xmm20,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm7,xmm20,0x01 + vpclmulqdq xmm5,xmm7,xmm20,0x10 + vpclmulqdq xmm0,xmm7,xmm20,0x11 + vpclmulqdq xmm3,xmm7,xmm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_323: + + or r13,r13 + je NEAR $L$_after_reduction_323 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_323: + jmp NEAR $L$_small_initial_blocks_encrypted_317 +$L$_small_initial_num_blocks_is_7_317: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm2,ZMMWORD[ddq_add_5678] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + sub r15,64 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm3,2 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vmovdqu8 zmm6,ZMMWORD[r11*1+r9] + vmovdqu8 zmm7{k1}{z},[64+r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[192+rcx] + vaesenclast zmm0,zmm0,zmm15 + vaesenclast zmm3,zmm3,zmm15 + vpxorq zmm0,zmm0,zmm6 + vpxorq zmm3,zmm3,zmm7 + vextracti32x4 xmm12,zmm3,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10]{k1},zmm3 + vmovdqu8 zmm3{k1}{z},zmm3 + vpshufb zmm6,zmm0,zmm29 + vpshufb zmm7,zmm3,zmm29 + vextracti32x4 xmm13,zmm7,2 + sub r13,16 * (7 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_324 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[240+rdx] + vpclmulqdq zmm15,zmm6,zmm20,0x11 + vpclmulqdq zmm16,zmm6,zmm20,0x00 + vpclmulqdq zmm17,zmm6,zmm20,0x01 + vpclmulqdq zmm19,zmm6,zmm20,0x10 + vmovdqu64 ymm20,YMMWORD[304+rdx] + vinserti64x2 zmm20,zmm20,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm7,zmm20,0x01 + vpclmulqdq zmm5,zmm7,zmm20,0x10 + vpclmulqdq zmm0,zmm7,zmm20,0x11 + vpclmulqdq zmm3,zmm7,zmm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_324 +$L$_small_initial_partial_block_324: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[256+rdx] + vpclmulqdq zmm15,zmm6,zmm20,0x11 + vpclmulqdq zmm16,zmm6,zmm20,0x00 + vpclmulqdq zmm17,zmm6,zmm20,0x01 + vpclmulqdq zmm19,zmm6,zmm20,0x10 + vmovdqu64 ymm20,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm7,ymm20,0x01 + vpclmulqdq ymm5,ymm7,ymm20,0x10 + vpclmulqdq ymm0,ymm7,ymm20,0x11 + vpclmulqdq ymm3,ymm7,ymm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_324: + + or r13,r13 + je NEAR $L$_after_reduction_324 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_324: + jmp NEAR $L$_small_initial_blocks_encrypted_317 +$L$_small_initial_num_blocks_is_8_317: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm2,ZMMWORD[ddq_add_5678] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + sub r15,64 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm3,3 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vmovdqu8 zmm6,ZMMWORD[r11*1+r9] + vmovdqu8 zmm7{k1}{z},[64+r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[192+rcx] + vaesenclast zmm0,zmm0,zmm15 + vaesenclast zmm3,zmm3,zmm15 + vpxorq zmm0,zmm0,zmm6 + vpxorq zmm3,zmm3,zmm7 + vextracti32x4 xmm12,zmm3,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10]{k1},zmm3 + vmovdqu8 zmm3{k1}{z},zmm3 + vpshufb zmm6,zmm0,zmm29 + vpshufb zmm7,zmm3,zmm29 + vextracti32x4 xmm13,zmm7,3 + sub r13,16 * (8 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_325 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[224+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[288+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vpxorq zmm15,zmm0,zmm15 + vpxorq zmm16,zmm3,zmm16 + vpxorq zmm17,zmm4,zmm17 + vpxorq zmm19,zmm5,zmm19 + + vpxorq zmm17,zmm17,zmm19 + vpsrldq zmm4,zmm17,8 + vpslldq zmm5,zmm17,8 + vpxorq zmm0,zmm15,zmm4 + vpxorq zmm3,zmm16,zmm5 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_325 +$L$_small_initial_partial_block_325: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[240+rdx] + vpclmulqdq zmm15,zmm6,zmm20,0x11 + vpclmulqdq zmm16,zmm6,zmm20,0x00 + vpclmulqdq zmm17,zmm6,zmm20,0x01 + vpclmulqdq zmm19,zmm6,zmm20,0x10 + vmovdqu64 ymm20,YMMWORD[304+rdx] + vinserti64x2 zmm20,zmm20,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm7,zmm20,0x01 + vpclmulqdq zmm5,zmm7,zmm20,0x10 + vpclmulqdq zmm0,zmm7,zmm20,0x11 + vpclmulqdq zmm3,zmm7,zmm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_325: + + or r13,r13 + je NEAR $L$_after_reduction_325 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_325: + jmp NEAR $L$_small_initial_blocks_encrypted_317 +$L$_small_initial_num_blocks_is_9_317: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm2,ZMMWORD[ddq_add_5678] + vpaddd zmm4,zmm0,ZMMWORD[ddq_add_8888] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + sub r15,128 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm4,0 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb xmm4,xmm4,xmm29 + vmovdqu8 zmm6,ZMMWORD[r11*1+r9] + vmovdqu8 zmm7,ZMMWORD[64+r11*1+r9] + vmovdqu8 xmm10{k1}{z},[128+r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm15 + vpxorq xmm4,xmm4,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc xmm4,xmm4,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc xmm4,xmm4,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc xmm4,xmm4,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc xmm4,xmm4,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc xmm4,xmm4,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc xmm4,xmm4,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc xmm4,xmm4,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc xmm4,xmm4,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc xmm4,xmm4,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc xmm4,xmm4,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc xmm4,xmm4,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[192+rcx] + vaesenclast zmm0,zmm0,zmm15 + vaesenclast zmm3,zmm3,zmm15 + vaesenclast xmm4,xmm4,xmm15 + vpxorq zmm0,zmm0,zmm6 + vpxorq zmm3,zmm3,zmm7 + vpxorq xmm4,xmm4,xmm10 + vextracti32x4 xmm12,zmm4,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 XMMWORD[128+r11*1+r10]{k1},xmm4 + vmovdqu8 zmm4{k1}{z},zmm4 + vpshufb zmm6,zmm0,zmm29 + vpshufb zmm7,zmm3,zmm29 + vpshufb xmm10,xmm4,xmm29 + vextracti32x4 xmm13,zmm10,0 + sub r13,16 * (9 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_326 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[208+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[272+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vpxorq zmm15,zmm0,zmm15 + vpxorq zmm16,zmm3,zmm16 + vpxorq zmm17,zmm4,zmm17 + vpxorq zmm19,zmm5,zmm19 + vmovdqu64 xmm20,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm10,xmm20,0x01 + vpclmulqdq xmm5,xmm10,xmm20,0x10 + vpclmulqdq xmm0,xmm10,xmm20,0x11 + vpclmulqdq xmm3,xmm10,xmm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_326 +$L$_small_initial_partial_block_326: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[224+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[288+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vpxorq zmm15,zmm0,zmm15 + vpxorq zmm16,zmm3,zmm16 + vpxorq zmm17,zmm4,zmm17 + vpxorq zmm19,zmm5,zmm19 + + vpxorq zmm17,zmm17,zmm19 + vpsrldq zmm4,zmm17,8 + vpslldq zmm5,zmm17,8 + vpxorq zmm0,zmm15,zmm4 + vpxorq zmm3,zmm16,zmm5 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_326: + + or r13,r13 + je NEAR $L$_after_reduction_326 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_326: + jmp NEAR $L$_small_initial_blocks_encrypted_317 +$L$_small_initial_num_blocks_is_10_317: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm2,ZMMWORD[ddq_add_5678] + vpaddd zmm4,zmm0,ZMMWORD[ddq_add_8888] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + sub r15,128 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm4,1 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb ymm4,ymm4,ymm29 + vmovdqu8 zmm6,ZMMWORD[r11*1+r9] + vmovdqu8 zmm7,ZMMWORD[64+r11*1+r9] + vmovdqu8 ymm10{k1}{z},[128+r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm15 + vpxorq ymm4,ymm4,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc ymm4,ymm4,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc ymm4,ymm4,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc ymm4,ymm4,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc ymm4,ymm4,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc ymm4,ymm4,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc ymm4,ymm4,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc ymm4,ymm4,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc ymm4,ymm4,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc ymm4,ymm4,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc ymm4,ymm4,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc ymm4,ymm4,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[192+rcx] + vaesenclast zmm0,zmm0,zmm15 + vaesenclast zmm3,zmm3,zmm15 + vaesenclast ymm4,ymm4,ymm15 + vpxorq zmm0,zmm0,zmm6 + vpxorq zmm3,zmm3,zmm7 + vpxorq ymm4,ymm4,ymm10 + vextracti32x4 xmm12,zmm4,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 YMMWORD[128+r11*1+r10]{k1},ymm4 + vmovdqu8 zmm4{k1}{z},zmm4 + vpshufb zmm6,zmm0,zmm29 + vpshufb zmm7,zmm3,zmm29 + vpshufb ymm10,ymm4,ymm29 + vextracti32x4 xmm13,zmm10,1 + sub r13,16 * (10 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_327 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[192+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[256+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vpxorq zmm15,zmm0,zmm15 + vpxorq zmm16,zmm3,zmm16 + vpxorq zmm17,zmm4,zmm17 + vpxorq zmm19,zmm5,zmm19 + vmovdqu64 ymm20,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm10,ymm20,0x01 + vpclmulqdq ymm5,ymm10,ymm20,0x10 + vpclmulqdq ymm0,ymm10,ymm20,0x11 + vpclmulqdq ymm3,ymm10,ymm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_327 +$L$_small_initial_partial_block_327: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[208+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[272+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vpxorq zmm15,zmm0,zmm15 + vpxorq zmm16,zmm3,zmm16 + vpxorq zmm17,zmm4,zmm17 + vpxorq zmm19,zmm5,zmm19 + vmovdqu64 xmm20,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm10,xmm20,0x01 + vpclmulqdq xmm5,xmm10,xmm20,0x10 + vpclmulqdq xmm0,xmm10,xmm20,0x11 + vpclmulqdq xmm3,xmm10,xmm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_327: + + or r13,r13 + je NEAR $L$_after_reduction_327 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_327: + jmp NEAR $L$_small_initial_blocks_encrypted_317 +$L$_small_initial_num_blocks_is_11_317: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm2,ZMMWORD[ddq_add_5678] + vpaddd zmm4,zmm0,ZMMWORD[ddq_add_8888] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + sub r15,128 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm4,2 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vmovdqu8 zmm6,ZMMWORD[r11*1+r9] + vmovdqu8 zmm7,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm10{k1}{z},[128+r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm15 + vpxorq zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[192+rcx] + vaesenclast zmm0,zmm0,zmm15 + vaesenclast zmm3,zmm3,zmm15 + vaesenclast zmm4,zmm4,zmm15 + vpxorq zmm0,zmm0,zmm6 + vpxorq zmm3,zmm3,zmm7 + vpxorq zmm4,zmm4,zmm10 + vextracti32x4 xmm12,zmm4,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10]{k1},zmm4 + vmovdqu8 zmm4{k1}{z},zmm4 + vpshufb zmm6,zmm0,zmm29 + vpshufb zmm7,zmm3,zmm29 + vpshufb zmm10,zmm4,zmm29 + vextracti32x4 xmm13,zmm10,2 + sub r13,16 * (11 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_328 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[176+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[240+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vpxorq zmm15,zmm0,zmm15 + vpxorq zmm16,zmm3,zmm16 + vpxorq zmm17,zmm4,zmm17 + vpxorq zmm19,zmm5,zmm19 + vmovdqu64 ymm20,YMMWORD[304+rdx] + vinserti64x2 zmm20,zmm20,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm10,zmm20,0x01 + vpclmulqdq zmm5,zmm10,zmm20,0x10 + vpclmulqdq zmm0,zmm10,zmm20,0x11 + vpclmulqdq zmm3,zmm10,zmm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_328 +$L$_small_initial_partial_block_328: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[192+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[256+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vpxorq zmm15,zmm0,zmm15 + vpxorq zmm16,zmm3,zmm16 + vpxorq zmm17,zmm4,zmm17 + vpxorq zmm19,zmm5,zmm19 + vmovdqu64 ymm20,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm10,ymm20,0x01 + vpclmulqdq ymm5,ymm10,ymm20,0x10 + vpclmulqdq ymm0,ymm10,ymm20,0x11 + vpclmulqdq ymm3,ymm10,ymm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_328: + + or r13,r13 + je NEAR $L$_after_reduction_328 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_328: + jmp NEAR $L$_small_initial_blocks_encrypted_317 +$L$_small_initial_num_blocks_is_12_317: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm2,ZMMWORD[ddq_add_5678] + vpaddd zmm4,zmm0,ZMMWORD[ddq_add_8888] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + sub r15,128 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm4,3 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vmovdqu8 zmm6,ZMMWORD[r11*1+r9] + vmovdqu8 zmm7,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm10{k1}{z},[128+r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm15 + vpxorq zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[192+rcx] + vaesenclast zmm0,zmm0,zmm15 + vaesenclast zmm3,zmm3,zmm15 + vaesenclast zmm4,zmm4,zmm15 + vpxorq zmm0,zmm0,zmm6 + vpxorq zmm3,zmm3,zmm7 + vpxorq zmm4,zmm4,zmm10 + vextracti32x4 xmm12,zmm4,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10]{k1},zmm4 + vmovdqu8 zmm4{k1}{z},zmm4 + vpshufb zmm6,zmm0,zmm29 + vpshufb zmm7,zmm3,zmm29 + vpshufb zmm10,zmm4,zmm29 + vextracti32x4 xmm13,zmm10,3 + sub r13,16 * (12 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_329 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[160+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[224+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[288+rdx] + vpclmulqdq zmm6,zmm10,zmm20,0x11 + vpclmulqdq zmm7,zmm10,zmm20,0x00 + vpternlogq zmm15,zmm6,zmm0,0x96 + vpternlogq zmm16,zmm7,zmm3,0x96 + vpclmulqdq zmm6,zmm10,zmm20,0x01 + vpclmulqdq zmm7,zmm10,zmm20,0x10 + vpternlogq zmm17,zmm6,zmm4,0x96 + vpternlogq zmm19,zmm7,zmm5,0x96 + + vpxorq zmm17,zmm17,zmm19 + vpsrldq zmm4,zmm17,8 + vpslldq zmm5,zmm17,8 + vpxorq zmm0,zmm15,zmm4 + vpxorq zmm3,zmm16,zmm5 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_329 +$L$_small_initial_partial_block_329: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[176+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[240+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vpxorq zmm15,zmm0,zmm15 + vpxorq zmm16,zmm3,zmm16 + vpxorq zmm17,zmm4,zmm17 + vpxorq zmm19,zmm5,zmm19 + vmovdqu64 ymm20,YMMWORD[304+rdx] + vinserti64x2 zmm20,zmm20,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm10,zmm20,0x01 + vpclmulqdq zmm5,zmm10,zmm20,0x10 + vpclmulqdq zmm0,zmm10,zmm20,0x11 + vpclmulqdq zmm3,zmm10,zmm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_329: + + or r13,r13 + je NEAR $L$_after_reduction_329 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_329: + jmp NEAR $L$_small_initial_blocks_encrypted_317 +$L$_small_initial_num_blocks_is_13_317: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm2,ZMMWORD[ddq_add_5678] + vpaddd zmm4,zmm0,ZMMWORD[ddq_add_8888] + vpaddd zmm5,zmm3,ZMMWORD[ddq_add_8888] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + sub r15,192 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm5,0 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb xmm5,xmm5,xmm29 + vmovdqu8 zmm6,ZMMWORD[r11*1+r9] + vmovdqu8 zmm7,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm10,ZMMWORD[128+r11*1+r9] + vmovdqu8 xmm11{k1}{z},[192+r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm15 + vpxorq zmm4,zmm4,zmm15 + vpxorq xmm5,xmm5,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc xmm5,xmm5,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc xmm5,xmm5,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc xmm5,xmm5,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc xmm5,xmm5,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc xmm5,xmm5,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc xmm5,xmm5,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc xmm5,xmm5,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc xmm5,xmm5,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc xmm5,xmm5,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc xmm5,xmm5,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc xmm5,xmm5,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[192+rcx] + vaesenclast zmm0,zmm0,zmm15 + vaesenclast zmm3,zmm3,zmm15 + vaesenclast zmm4,zmm4,zmm15 + vaesenclast xmm5,xmm5,xmm15 + vpxorq zmm0,zmm0,zmm6 + vpxorq zmm3,zmm3,zmm7 + vpxorq zmm4,zmm4,zmm10 + vpxorq xmm5,xmm5,xmm11 + vextracti32x4 xmm12,zmm5,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 XMMWORD[192+r11*1+r10]{k1},xmm5 + vmovdqu8 zmm5{k1}{z},zmm5 + vpshufb zmm6,zmm0,zmm29 + vpshufb zmm7,zmm3,zmm29 + vpshufb zmm10,zmm4,zmm29 + vpshufb xmm11,xmm5,xmm29 + vextracti32x4 xmm13,zmm11,0 + sub r13,16 * (13 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_330 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[144+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[208+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[272+rdx] + vpclmulqdq zmm6,zmm10,zmm20,0x11 + vpclmulqdq zmm7,zmm10,zmm20,0x00 + vpternlogq zmm15,zmm6,zmm0,0x96 + vpternlogq zmm16,zmm7,zmm3,0x96 + vpclmulqdq zmm6,zmm10,zmm20,0x01 + vpclmulqdq zmm7,zmm10,zmm20,0x10 + vpternlogq zmm17,zmm6,zmm4,0x96 + vpternlogq zmm19,zmm7,zmm5,0x96 + vmovdqu64 xmm20,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm11,xmm20,0x01 + vpclmulqdq xmm5,xmm11,xmm20,0x10 + vpclmulqdq xmm0,xmm11,xmm20,0x11 + vpclmulqdq xmm3,xmm11,xmm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_330 +$L$_small_initial_partial_block_330: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[160+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[224+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[288+rdx] + vpclmulqdq zmm6,zmm10,zmm20,0x11 + vpclmulqdq zmm7,zmm10,zmm20,0x00 + vpternlogq zmm15,zmm6,zmm0,0x96 + vpternlogq zmm16,zmm7,zmm3,0x96 + vpclmulqdq zmm6,zmm10,zmm20,0x01 + vpclmulqdq zmm7,zmm10,zmm20,0x10 + vpternlogq zmm17,zmm6,zmm4,0x96 + vpternlogq zmm19,zmm7,zmm5,0x96 + + vpxorq zmm17,zmm17,zmm19 + vpsrldq zmm4,zmm17,8 + vpslldq zmm5,zmm17,8 + vpxorq zmm0,zmm15,zmm4 + vpxorq zmm3,zmm16,zmm5 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_330: + + or r13,r13 + je NEAR $L$_after_reduction_330 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_330: + jmp NEAR $L$_small_initial_blocks_encrypted_317 +$L$_small_initial_num_blocks_is_14_317: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm2,ZMMWORD[ddq_add_5678] + vpaddd zmm4,zmm0,ZMMWORD[ddq_add_8888] + vpaddd zmm5,zmm3,ZMMWORD[ddq_add_8888] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + sub r15,192 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm5,1 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb ymm5,ymm5,ymm29 + vmovdqu8 zmm6,ZMMWORD[r11*1+r9] + vmovdqu8 zmm7,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm10,ZMMWORD[128+r11*1+r9] + vmovdqu8 ymm11{k1}{z},[192+r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm15 + vpxorq zmm4,zmm4,zmm15 + vpxorq ymm5,ymm5,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc ymm5,ymm5,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc ymm5,ymm5,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc ymm5,ymm5,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc ymm5,ymm5,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc ymm5,ymm5,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc ymm5,ymm5,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc ymm5,ymm5,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc ymm5,ymm5,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc ymm5,ymm5,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc ymm5,ymm5,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc ymm5,ymm5,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[192+rcx] + vaesenclast zmm0,zmm0,zmm15 + vaesenclast zmm3,zmm3,zmm15 + vaesenclast zmm4,zmm4,zmm15 + vaesenclast ymm5,ymm5,ymm15 + vpxorq zmm0,zmm0,zmm6 + vpxorq zmm3,zmm3,zmm7 + vpxorq zmm4,zmm4,zmm10 + vpxorq ymm5,ymm5,ymm11 + vextracti32x4 xmm12,zmm5,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 YMMWORD[192+r11*1+r10]{k1},ymm5 + vmovdqu8 zmm5{k1}{z},zmm5 + vpshufb zmm6,zmm0,zmm29 + vpshufb zmm7,zmm3,zmm29 + vpshufb zmm10,zmm4,zmm29 + vpshufb ymm11,ymm5,ymm29 + vextracti32x4 xmm13,zmm11,1 + sub r13,16 * (14 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_331 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[128+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[192+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[256+rdx] + vpclmulqdq zmm6,zmm10,zmm20,0x11 + vpclmulqdq zmm7,zmm10,zmm20,0x00 + vpternlogq zmm15,zmm6,zmm0,0x96 + vpternlogq zmm16,zmm7,zmm3,0x96 + vpclmulqdq zmm6,zmm10,zmm20,0x01 + vpclmulqdq zmm7,zmm10,zmm20,0x10 + vpternlogq zmm17,zmm6,zmm4,0x96 + vpternlogq zmm19,zmm7,zmm5,0x96 + vmovdqu64 ymm20,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm11,ymm20,0x01 + vpclmulqdq ymm5,ymm11,ymm20,0x10 + vpclmulqdq ymm0,ymm11,ymm20,0x11 + vpclmulqdq ymm3,ymm11,ymm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_331 +$L$_small_initial_partial_block_331: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[144+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[208+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[272+rdx] + vpclmulqdq zmm6,zmm10,zmm20,0x11 + vpclmulqdq zmm7,zmm10,zmm20,0x00 + vpternlogq zmm15,zmm6,zmm0,0x96 + vpternlogq zmm16,zmm7,zmm3,0x96 + vpclmulqdq zmm6,zmm10,zmm20,0x01 + vpclmulqdq zmm7,zmm10,zmm20,0x10 + vpternlogq zmm17,zmm6,zmm4,0x96 + vpternlogq zmm19,zmm7,zmm5,0x96 + vmovdqu64 xmm20,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm11,xmm20,0x01 + vpclmulqdq xmm5,xmm11,xmm20,0x10 + vpclmulqdq xmm0,xmm11,xmm20,0x11 + vpclmulqdq xmm3,xmm11,xmm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_331: + + or r13,r13 + je NEAR $L$_after_reduction_331 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_331: + jmp NEAR $L$_small_initial_blocks_encrypted_317 +$L$_small_initial_num_blocks_is_15_317: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm2,ZMMWORD[ddq_add_5678] + vpaddd zmm4,zmm0,ZMMWORD[ddq_add_8888] + vpaddd zmm5,zmm3,ZMMWORD[ddq_add_8888] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + sub r15,192 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm5,2 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 + vmovdqu8 zmm6,ZMMWORD[r11*1+r9] + vmovdqu8 zmm7,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm10,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm11{k1}{z},[192+r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm15 + vpxorq zmm4,zmm4,zmm15 + vpxorq zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[192+rcx] + vaesenclast zmm0,zmm0,zmm15 + vaesenclast zmm3,zmm3,zmm15 + vaesenclast zmm4,zmm4,zmm15 + vaesenclast zmm5,zmm5,zmm15 + vpxorq zmm0,zmm0,zmm6 + vpxorq zmm3,zmm3,zmm7 + vpxorq zmm4,zmm4,zmm10 + vpxorq zmm5,zmm5,zmm11 + vextracti32x4 xmm12,zmm5,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[192+r11*1+r10]{k1},zmm5 + vmovdqu8 zmm5{k1}{z},zmm5 + vpshufb zmm6,zmm0,zmm29 + vpshufb zmm7,zmm3,zmm29 + vpshufb zmm10,zmm4,zmm29 + vpshufb zmm11,zmm5,zmm29 + vextracti32x4 xmm13,zmm11,2 + sub r13,16 * (15 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_332 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[112+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[176+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[240+rdx] + vpclmulqdq zmm6,zmm10,zmm20,0x11 + vpclmulqdq zmm7,zmm10,zmm20,0x00 + vpternlogq zmm15,zmm6,zmm0,0x96 + vpternlogq zmm16,zmm7,zmm3,0x96 + vpclmulqdq zmm6,zmm10,zmm20,0x01 + vpclmulqdq zmm7,zmm10,zmm20,0x10 + vpternlogq zmm17,zmm6,zmm4,0x96 + vpternlogq zmm19,zmm7,zmm5,0x96 + vmovdqu64 ymm20,YMMWORD[304+rdx] + vinserti64x2 zmm20,zmm20,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm11,zmm20,0x01 + vpclmulqdq zmm5,zmm11,zmm20,0x10 + vpclmulqdq zmm0,zmm11,zmm20,0x11 + vpclmulqdq zmm3,zmm11,zmm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_332 +$L$_small_initial_partial_block_332: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[128+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[192+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[256+rdx] + vpclmulqdq zmm6,zmm10,zmm20,0x11 + vpclmulqdq zmm7,zmm10,zmm20,0x00 + vpternlogq zmm15,zmm6,zmm0,0x96 + vpternlogq zmm16,zmm7,zmm3,0x96 + vpclmulqdq zmm6,zmm10,zmm20,0x01 + vpclmulqdq zmm7,zmm10,zmm20,0x10 + vpternlogq zmm17,zmm6,zmm4,0x96 + vpternlogq zmm19,zmm7,zmm5,0x96 + vmovdqu64 ymm20,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm11,ymm20,0x01 + vpclmulqdq ymm5,ymm11,ymm20,0x10 + vpclmulqdq ymm0,ymm11,ymm20,0x11 + vpclmulqdq ymm3,ymm11,ymm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_332: + + or r13,r13 + je NEAR $L$_after_reduction_332 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_332: + jmp NEAR $L$_small_initial_blocks_encrypted_317 +$L$_small_initial_num_blocks_is_16_317: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm2,ZMMWORD[ddq_add_5678] + vpaddd zmm4,zmm0,ZMMWORD[ddq_add_8888] + vpaddd zmm5,zmm3,ZMMWORD[ddq_add_8888] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + sub r15,192 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm5,3 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 + vmovdqu8 zmm6,ZMMWORD[r11*1+r9] + vmovdqu8 zmm7,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm10,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm11{k1}{z},[192+r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm15 + vpxorq zmm4,zmm4,zmm15 + vpxorq zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[192+rcx] + vaesenclast zmm0,zmm0,zmm15 + vaesenclast zmm3,zmm3,zmm15 + vaesenclast zmm4,zmm4,zmm15 + vaesenclast zmm5,zmm5,zmm15 + vpxorq zmm0,zmm0,zmm6 + vpxorq zmm3,zmm3,zmm7 + vpxorq zmm4,zmm4,zmm10 + vpxorq zmm5,zmm5,zmm11 + vextracti32x4 xmm12,zmm5,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[192+r11*1+r10]{k1},zmm5 + vmovdqu8 zmm5{k1}{z},zmm5 + vpshufb zmm6,zmm0,zmm29 + vpshufb zmm7,zmm3,zmm29 + vpshufb zmm10,zmm4,zmm29 + vpshufb zmm11,zmm5,zmm29 + vextracti32x4 xmm13,zmm11,3 + sub r13,16 * (16 - 1) +$L$_small_initial_partial_block_333: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[112+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[176+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[240+rdx] + vpclmulqdq zmm6,zmm10,zmm20,0x11 + vpclmulqdq zmm7,zmm10,zmm20,0x00 + vpternlogq zmm15,zmm6,zmm0,0x96 + vpternlogq zmm16,zmm7,zmm3,0x96 + vpclmulqdq zmm6,zmm10,zmm20,0x01 + vpclmulqdq zmm7,zmm10,zmm20,0x10 + vpternlogq zmm17,zmm6,zmm4,0x96 + vpternlogq zmm19,zmm7,zmm5,0x96 + vmovdqu64 ymm20,YMMWORD[304+rdx] + vinserti64x2 zmm20,zmm20,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm11,zmm20,0x01 + vpclmulqdq zmm5,zmm11,zmm20,0x10 + vpclmulqdq zmm0,zmm11,zmm20,0x11 + vpclmulqdq zmm3,zmm11,zmm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_333: + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_333: +$L$_small_initial_blocks_encrypted_317: +$L$_ghash_done_172: + vmovdqu64 XMMWORD[rdx],xmm2 + vmovdqu64 XMMWORD[64+rdx],xmm14 +$L$_enc_dec_done_172: + jmp NEAR $L$exit_gcm_encrypt +ALIGN 32 +$L$aes_gcm_encrypt_256_avx512: + cmp QWORD[112+rbp],0 + je NEAR $L$_enc_dec_done_334 + xor r14,r14 + vmovdqu64 xmm14,XMMWORD[64+rdx] + + mov r11,QWORD[r8] + or r11,r11 + je NEAR $L$_partial_block_done_335 + mov r10d,16 + lea r12,[byte_len_to_mask_table] + cmp QWORD[112+rbp],r10 + cmovc r10,QWORD[112+rbp] + add r12,r10 + add r12,r10 + kmovw k1,[r12] + vmovdqu8 xmm0{k1}{z},[r9] + + vmovdqu64 xmm3,XMMWORD[16+rdx] + vmovdqu64 xmm4,XMMWORD[336+rdx] + + + + lea r12,[SHIFT_MASK] + add r12,r11 + vmovdqu64 xmm5,XMMWORD[r12] + vpshufb xmm3,xmm3,xmm5 + vpxorq xmm3,xmm3,xmm0 + + + mov r13,QWORD[112+rbp] + add r13,r11 + sub r13,16 + jge NEAR $L$_no_extra_mask_335 + sub r12,r13 +$L$_no_extra_mask_335: + + + + vmovdqu64 xmm0,XMMWORD[16+r12] + vpand xmm3,xmm3,xmm0 + vpshufb xmm3,xmm3,XMMWORD[SHUF_MASK] + vpshufb xmm3,xmm3,xmm5 + vpxorq xmm14,xmm14,xmm3 + cmp r13,0 + jl NEAR $L$_partial_incomplete_335 + + vpclmulqdq xmm7,xmm14,xmm4,0x11 + vpclmulqdq xmm10,xmm14,xmm4,0x00 + vpclmulqdq xmm11,xmm14,xmm4,0x01 + vpclmulqdq xmm14,xmm14,xmm4,0x10 + vpxorq xmm14,xmm14,xmm11 + + vpsrldq xmm11,xmm14,8 + vpslldq xmm14,xmm14,8 + vpxorq xmm7,xmm7,xmm11 + vpxorq xmm14,xmm14,xmm10 + + + + vmovdqu64 xmm11,XMMWORD[POLY2] + + vpclmulqdq xmm10,xmm11,xmm14,0x01 + vpslldq xmm10,xmm10,8 + vpxorq xmm14,xmm14,xmm10 + + + + vpclmulqdq xmm10,xmm11,xmm14,0x00 + vpsrldq xmm10,xmm10,4 + vpclmulqdq xmm14,xmm11,xmm14,0x10 + vpslldq xmm14,xmm14,4 + + vpternlogq xmm14,xmm7,xmm10,0x96 + + mov QWORD[r8],0 + + mov r12,r11 + mov r11,16 + sub r11,r12 + jmp NEAR $L$_enc_dec_done_335 + +$L$_partial_incomplete_335: + mov r12,QWORD[112+rbp] + add QWORD[r8],r12 + mov r11,QWORD[112+rbp] + +$L$_enc_dec_done_335: + + + lea r12,[byte_len_to_mask_table] + kmovw k1,[r11*2+r12] + vmovdqu64 XMMWORD[64+rdx],xmm14 + + vpshufb xmm3,xmm3,XMMWORD[SHUF_MASK] + vpshufb xmm3,xmm3,xmm5 + mov r12,QWORD[120+rbp] + vmovdqu8 XMMWORD[r12]{k1},xmm3 +$L$_partial_block_done_335: + vmovdqu64 xmm2,XMMWORD[rdx] + mov r13,QWORD[112+rbp] + sub r13,r11 + je NEAR $L$_enc_dec_done_334 + cmp r13,256 + jbe NEAR $L$_message_below_equal_16_blocks_334 + + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vmovdqa64 zmm27,ZMMWORD[ddq_addbe_4444] + vmovdqa64 zmm28,ZMMWORD[ddq_addbe_1234] + + + + + + + vmovd r15d,xmm2 + and r15d,255 + + vshufi64x2 zmm2,zmm2,zmm2,0 + vpshufb zmm2,zmm2,zmm29 + + + + cmp r15b,240 + jae NEAR $L$_next_16_overflow_336 + vpaddd zmm7,zmm2,zmm28 + vpaddd zmm10,zmm7,zmm27 + vpaddd zmm11,zmm10,zmm27 + vpaddd zmm12,zmm11,zmm27 + jmp NEAR $L$_next_16_ok_336 +$L$_next_16_overflow_336: + vpshufb zmm2,zmm2,zmm29 + vmovdqa64 zmm12,ZMMWORD[ddq_add_4444] + vpaddd zmm7,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm10,zmm7,zmm12 + vpaddd zmm11,zmm10,zmm12 + vpaddd zmm12,zmm11,zmm12 + vpshufb zmm7,zmm7,zmm29 + vpshufb zmm10,zmm10,zmm29 + vpshufb zmm11,zmm11,zmm29 + vpshufb zmm12,zmm12,zmm29 +$L$_next_16_ok_336: + vshufi64x2 zmm2,zmm12,zmm12,255 + add r15b,16 + + vmovdqu8 zmm0,ZMMWORD[r11*1+r9] + vmovdqu8 zmm3,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm4,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm5,ZMMWORD[192+r11*1+r9] + + + vbroadcastf64x2 zmm6,ZMMWORD[rcx] + vpxorq zmm7,zmm7,zmm6 + vpxorq zmm10,zmm10,zmm6 + vpxorq zmm11,zmm11,zmm6 + vpxorq zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[16+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[32+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[48+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[64+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[80+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[96+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[112+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[128+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[144+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[160+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[176+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[192+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[208+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[224+rcx] + vaesenclast zmm7,zmm7,zmm6 + vaesenclast zmm10,zmm10,zmm6 + vaesenclast zmm11,zmm11,zmm6 + vaesenclast zmm12,zmm12,zmm6 + + + vpxorq zmm7,zmm7,zmm0 + vpxorq zmm10,zmm10,zmm3 + vpxorq zmm11,zmm11,zmm4 + vpxorq zmm12,zmm12,zmm5 + + + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm7 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm10 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm11 + vmovdqu8 ZMMWORD[192+r11*1+r10],zmm12 + + vpshufb zmm7,zmm7,zmm29 + vpshufb zmm10,zmm10,zmm29 + vpshufb zmm11,zmm11,zmm29 + vpshufb zmm12,zmm12,zmm29 + vmovdqa64 ZMMWORD[768+rsp],zmm7 + vmovdqa64 ZMMWORD[832+rsp],zmm10 + vmovdqa64 ZMMWORD[896+rsp],zmm11 + vmovdqa64 ZMMWORD[960+rsp],zmm12 + test r14,r14 + jnz NEAR $L$_skip_hkeys_precomputation_337 + + vmovdqu64 zmm0,ZMMWORD[288+rdx] + vmovdqu64 ZMMWORD[704+rsp],zmm0 + + vmovdqu64 zmm3,ZMMWORD[224+rdx] + vmovdqu64 ZMMWORD[640+rsp],zmm3 + + + vshufi64x2 zmm3,zmm3,zmm3,0x00 + + vmovdqu64 zmm4,ZMMWORD[160+rdx] + vmovdqu64 ZMMWORD[576+rsp],zmm4 + + vmovdqu64 zmm5,ZMMWORD[96+rdx] + vmovdqu64 ZMMWORD[512+rsp],zmm5 +$L$_skip_hkeys_precomputation_337: + cmp r13,512 + jb NEAR $L$_message_below_32_blocks_334 + + + + cmp r15b,240 + jae NEAR $L$_next_16_overflow_338 + vpaddd zmm7,zmm2,zmm28 + vpaddd zmm10,zmm7,zmm27 + vpaddd zmm11,zmm10,zmm27 + vpaddd zmm12,zmm11,zmm27 + jmp NEAR $L$_next_16_ok_338 +$L$_next_16_overflow_338: + vpshufb zmm2,zmm2,zmm29 + vmovdqa64 zmm12,ZMMWORD[ddq_add_4444] + vpaddd zmm7,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm10,zmm7,zmm12 + vpaddd zmm11,zmm10,zmm12 + vpaddd zmm12,zmm11,zmm12 + vpshufb zmm7,zmm7,zmm29 + vpshufb zmm10,zmm10,zmm29 + vpshufb zmm11,zmm11,zmm29 + vpshufb zmm12,zmm12,zmm29 +$L$_next_16_ok_338: + vshufi64x2 zmm2,zmm12,zmm12,255 + add r15b,16 + + vmovdqu8 zmm0,ZMMWORD[256+r11*1+r9] + vmovdqu8 zmm3,ZMMWORD[320+r11*1+r9] + vmovdqu8 zmm4,ZMMWORD[384+r11*1+r9] + vmovdqu8 zmm5,ZMMWORD[448+r11*1+r9] + + + vbroadcastf64x2 zmm6,ZMMWORD[rcx] + vpxorq zmm7,zmm7,zmm6 + vpxorq zmm10,zmm10,zmm6 + vpxorq zmm11,zmm11,zmm6 + vpxorq zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[16+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[32+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[48+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[64+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[80+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[96+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[112+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[128+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[144+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[160+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[176+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[192+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[208+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[224+rcx] + vaesenclast zmm7,zmm7,zmm6 + vaesenclast zmm10,zmm10,zmm6 + vaesenclast zmm11,zmm11,zmm6 + vaesenclast zmm12,zmm12,zmm6 + + + vpxorq zmm7,zmm7,zmm0 + vpxorq zmm10,zmm10,zmm3 + vpxorq zmm11,zmm11,zmm4 + vpxorq zmm12,zmm12,zmm5 + + + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[256+r11*1+r10],zmm7 + vmovdqu8 ZMMWORD[320+r11*1+r10],zmm10 + vmovdqu8 ZMMWORD[384+r11*1+r10],zmm11 + vmovdqu8 ZMMWORD[448+r11*1+r10],zmm12 + + vpshufb zmm7,zmm7,zmm29 + vpshufb zmm10,zmm10,zmm29 + vpshufb zmm11,zmm11,zmm29 + vpshufb zmm12,zmm12,zmm29 + vmovdqa64 ZMMWORD[1024+rsp],zmm7 + vmovdqa64 ZMMWORD[1088+rsp],zmm10 + vmovdqa64 ZMMWORD[1152+rsp],zmm11 + vmovdqa64 ZMMWORD[1216+rsp],zmm12 + test r14,r14 + jnz NEAR $L$_skip_hkeys_precomputation_339 + vmovdqu64 zmm3,ZMMWORD[640+rsp] + + + vshufi64x2 zmm3,zmm3,zmm3,0x00 + + vmovdqu64 zmm4,ZMMWORD[576+rsp] + vmovdqu64 zmm5,ZMMWORD[512+rsp] + + vpclmulqdq zmm6,zmm4,zmm3,0x11 + vpclmulqdq zmm7,zmm4,zmm3,0x00 + vpclmulqdq zmm10,zmm4,zmm3,0x01 + vpclmulqdq zmm4,zmm4,zmm3,0x10 + vpxorq zmm4,zmm4,zmm10 + + vpsrldq zmm10,zmm4,8 + vpslldq zmm4,zmm4,8 + vpxorq zmm6,zmm6,zmm10 + vpxorq zmm4,zmm4,zmm7 + + + + vmovdqu64 zmm10,ZMMWORD[POLY2] + + vpclmulqdq zmm7,zmm10,zmm4,0x01 + vpslldq zmm7,zmm7,8 + vpxorq zmm4,zmm4,zmm7 + + + + vpclmulqdq zmm7,zmm10,zmm4,0x00 + vpsrldq zmm7,zmm7,4 + vpclmulqdq zmm4,zmm10,zmm4,0x10 + vpslldq zmm4,zmm4,4 + + vpternlogq zmm4,zmm6,zmm7,0x96 + + vmovdqu64 ZMMWORD[448+rsp],zmm4 + + vpclmulqdq zmm6,zmm5,zmm3,0x11 + vpclmulqdq zmm7,zmm5,zmm3,0x00 + vpclmulqdq zmm10,zmm5,zmm3,0x01 + vpclmulqdq zmm5,zmm5,zmm3,0x10 + vpxorq zmm5,zmm5,zmm10 + + vpsrldq zmm10,zmm5,8 + vpslldq zmm5,zmm5,8 + vpxorq zmm6,zmm6,zmm10 + vpxorq zmm5,zmm5,zmm7 + + + + vmovdqu64 zmm10,ZMMWORD[POLY2] + + vpclmulqdq zmm7,zmm10,zmm5,0x01 + vpslldq zmm7,zmm7,8 + vpxorq zmm5,zmm5,zmm7 + + + + vpclmulqdq zmm7,zmm10,zmm5,0x00 + vpsrldq zmm7,zmm7,4 + vpclmulqdq zmm5,zmm10,zmm5,0x10 + vpslldq zmm5,zmm5,4 + + vpternlogq zmm5,zmm6,zmm7,0x96 + + vmovdqu64 ZMMWORD[384+rsp],zmm5 + + vpclmulqdq zmm6,zmm4,zmm3,0x11 + vpclmulqdq zmm7,zmm4,zmm3,0x00 + vpclmulqdq zmm10,zmm4,zmm3,0x01 + vpclmulqdq zmm4,zmm4,zmm3,0x10 + vpxorq zmm4,zmm4,zmm10 + + vpsrldq zmm10,zmm4,8 + vpslldq zmm4,zmm4,8 + vpxorq zmm6,zmm6,zmm10 + vpxorq zmm4,zmm4,zmm7 + + + + vmovdqu64 zmm10,ZMMWORD[POLY2] + + vpclmulqdq zmm7,zmm10,zmm4,0x01 + vpslldq zmm7,zmm7,8 + vpxorq zmm4,zmm4,zmm7 + + + + vpclmulqdq zmm7,zmm10,zmm4,0x00 + vpsrldq zmm7,zmm7,4 + vpclmulqdq zmm4,zmm10,zmm4,0x10 + vpslldq zmm4,zmm4,4 + + vpternlogq zmm4,zmm6,zmm7,0x96 + + vmovdqu64 ZMMWORD[320+rsp],zmm4 + + vpclmulqdq zmm6,zmm5,zmm3,0x11 + vpclmulqdq zmm7,zmm5,zmm3,0x00 + vpclmulqdq zmm10,zmm5,zmm3,0x01 + vpclmulqdq zmm5,zmm5,zmm3,0x10 + vpxorq zmm5,zmm5,zmm10 + + vpsrldq zmm10,zmm5,8 + vpslldq zmm5,zmm5,8 + vpxorq zmm6,zmm6,zmm10 + vpxorq zmm5,zmm5,zmm7 + + + + vmovdqu64 zmm10,ZMMWORD[POLY2] + + vpclmulqdq zmm7,zmm10,zmm5,0x01 + vpslldq zmm7,zmm7,8 + vpxorq zmm5,zmm5,zmm7 + + + + vpclmulqdq zmm7,zmm10,zmm5,0x00 + vpsrldq zmm7,zmm7,4 + vpclmulqdq zmm5,zmm10,zmm5,0x10 + vpslldq zmm5,zmm5,4 + + vpternlogq zmm5,zmm6,zmm7,0x96 + + vmovdqu64 ZMMWORD[256+rsp],zmm5 + + vpclmulqdq zmm6,zmm4,zmm3,0x11 + vpclmulqdq zmm7,zmm4,zmm3,0x00 + vpclmulqdq zmm10,zmm4,zmm3,0x01 + vpclmulqdq zmm4,zmm4,zmm3,0x10 + vpxorq zmm4,zmm4,zmm10 + + vpsrldq zmm10,zmm4,8 + vpslldq zmm4,zmm4,8 + vpxorq zmm6,zmm6,zmm10 + vpxorq zmm4,zmm4,zmm7 + + + + vmovdqu64 zmm10,ZMMWORD[POLY2] + + vpclmulqdq zmm7,zmm10,zmm4,0x01 + vpslldq zmm7,zmm7,8 + vpxorq zmm4,zmm4,zmm7 + + + + vpclmulqdq zmm7,zmm10,zmm4,0x00 + vpsrldq zmm7,zmm7,4 + vpclmulqdq zmm4,zmm10,zmm4,0x10 + vpslldq zmm4,zmm4,4 + + vpternlogq zmm4,zmm6,zmm7,0x96 + + vmovdqu64 ZMMWORD[192+rsp],zmm4 + + vpclmulqdq zmm6,zmm5,zmm3,0x11 + vpclmulqdq zmm7,zmm5,zmm3,0x00 + vpclmulqdq zmm10,zmm5,zmm3,0x01 + vpclmulqdq zmm5,zmm5,zmm3,0x10 + vpxorq zmm5,zmm5,zmm10 + + vpsrldq zmm10,zmm5,8 + vpslldq zmm5,zmm5,8 + vpxorq zmm6,zmm6,zmm10 + vpxorq zmm5,zmm5,zmm7 + + + + vmovdqu64 zmm10,ZMMWORD[POLY2] + + vpclmulqdq zmm7,zmm10,zmm5,0x01 + vpslldq zmm7,zmm7,8 + vpxorq zmm5,zmm5,zmm7 + + + + vpclmulqdq zmm7,zmm10,zmm5,0x00 + vpsrldq zmm7,zmm7,4 + vpclmulqdq zmm5,zmm10,zmm5,0x10 + vpslldq zmm5,zmm5,4 + + vpternlogq zmm5,zmm6,zmm7,0x96 + + vmovdqu64 ZMMWORD[128+rsp],zmm5 + + vpclmulqdq zmm6,zmm4,zmm3,0x11 + vpclmulqdq zmm7,zmm4,zmm3,0x00 + vpclmulqdq zmm10,zmm4,zmm3,0x01 + vpclmulqdq zmm4,zmm4,zmm3,0x10 + vpxorq zmm4,zmm4,zmm10 + + vpsrldq zmm10,zmm4,8 + vpslldq zmm4,zmm4,8 + vpxorq zmm6,zmm6,zmm10 + vpxorq zmm4,zmm4,zmm7 + + + + vmovdqu64 zmm10,ZMMWORD[POLY2] + + vpclmulqdq zmm7,zmm10,zmm4,0x01 + vpslldq zmm7,zmm7,8 + vpxorq zmm4,zmm4,zmm7 + + + + vpclmulqdq zmm7,zmm10,zmm4,0x00 + vpsrldq zmm7,zmm7,4 + vpclmulqdq zmm4,zmm10,zmm4,0x10 + vpslldq zmm4,zmm4,4 + + vpternlogq zmm4,zmm6,zmm7,0x96 + + vmovdqu64 ZMMWORD[64+rsp],zmm4 + + vpclmulqdq zmm6,zmm5,zmm3,0x11 + vpclmulqdq zmm7,zmm5,zmm3,0x00 + vpclmulqdq zmm10,zmm5,zmm3,0x01 + vpclmulqdq zmm5,zmm5,zmm3,0x10 + vpxorq zmm5,zmm5,zmm10 + + vpsrldq zmm10,zmm5,8 + vpslldq zmm5,zmm5,8 + vpxorq zmm6,zmm6,zmm10 + vpxorq zmm5,zmm5,zmm7 + + + + vmovdqu64 zmm10,ZMMWORD[POLY2] + + vpclmulqdq zmm7,zmm10,zmm5,0x01 + vpslldq zmm7,zmm7,8 + vpxorq zmm5,zmm5,zmm7 + + + + vpclmulqdq zmm7,zmm10,zmm5,0x00 + vpsrldq zmm7,zmm7,4 + vpclmulqdq zmm5,zmm10,zmm5,0x10 + vpslldq zmm5,zmm5,4 + + vpternlogq zmm5,zmm6,zmm7,0x96 + + vmovdqu64 ZMMWORD[rsp],zmm5 +$L$_skip_hkeys_precomputation_339: + mov r14,1 + add r11,512 + sub r13,512 + + cmp r13,768 + jb NEAR $L$_no_more_big_nblocks_334 +$L$_encrypt_big_nblocks_334: + cmp r15b,240 + jae NEAR $L$_16_blocks_overflow_340 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_340 +$L$_16_blocks_overflow_340: + vpshufb zmm2,zmm2,zmm29 + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_340: + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rsp] + + + + + vshufi64x2 zmm2,zmm5,zmm5,255 + add r15b,16 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + + + + + + + + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + + vpclmulqdq zmm6,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + + vpternlogq zmm6,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + + + + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm21,ZMMWORD[192+r11*1+r9] + + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm26,zmm10,zmm15 + vpxorq zmm24,zmm6,zmm12 + vpxorq zmm25,zmm7,zmm13 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + + + + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + + + + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[192+r11*1+r10],zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 + vmovdqa64 ZMMWORD[1280+rsp],zmm0 + vmovdqa64 ZMMWORD[1344+rsp],zmm3 + vmovdqa64 ZMMWORD[1408+rsp],zmm4 + vmovdqa64 ZMMWORD[1472+rsp],zmm5 + cmp r15b,240 + jae NEAR $L$_16_blocks_overflow_341 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_341 +$L$_16_blocks_overflow_341: + vpshufb zmm2,zmm2,zmm29 + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_341: + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[256+rsp] + + + + + vshufi64x2 zmm2,zmm5,zmm5,255 + add r15b,16 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[320+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + + + + + + + + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + + vpclmulqdq zmm6,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[384+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[448+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + + vpternlogq zmm6,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + + + + vmovdqu8 zmm17,ZMMWORD[256+r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[320+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[384+r11*1+r9] + vmovdqu8 zmm21,ZMMWORD[448+r11*1+r9] + + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vpternlogq zmm24,zmm6,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + + + + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + + + + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[256+r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[320+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[384+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[448+r11*1+r10],zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 + vmovdqa64 ZMMWORD[768+rsp],zmm0 + vmovdqa64 ZMMWORD[832+rsp],zmm3 + vmovdqa64 ZMMWORD[896+rsp],zmm4 + vmovdqa64 ZMMWORD[960+rsp],zmm5 + cmp r15b,240 + jae NEAR $L$_16_blocks_overflow_342 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_342 +$L$_16_blocks_overflow_342: + vpshufb zmm2,zmm2,zmm29 + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_342: + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + + + + + vshufi64x2 zmm2,zmm5,zmm5,255 + add r15b,16 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + + + + + + + + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + + vpclmulqdq zmm6,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + + vpternlogq zmm6,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + + + + vmovdqu8 zmm17,ZMMWORD[512+r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[576+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[640+r11*1+r9] + vmovdqu8 zmm21,ZMMWORD[704+r11*1+r9] + + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + + + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpternlogq zmm6,zmm12,zmm15,0x96 + vpxorq zmm6,zmm6,zmm24 + vpternlogq zmm7,zmm13,zmm10,0x96 + vpxorq zmm7,zmm7,zmm25 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vextracti64x4 ymm12,zmm6,1 + vpxorq ymm6,ymm6,ymm12 + vextracti32x4 xmm12,ymm6,1 + vpxorq xmm6,xmm6,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm6,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + + + + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + + + + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[512+r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[576+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[640+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[704+r11*1+r10],zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 + vmovdqa64 ZMMWORD[1024+rsp],zmm0 + vmovdqa64 ZMMWORD[1088+rsp],zmm3 + vmovdqa64 ZMMWORD[1152+rsp],zmm4 + vmovdqa64 ZMMWORD[1216+rsp],zmm5 + vmovdqa64 zmm14,zmm6 + + add r11,768 + sub r13,768 + cmp r13,768 + jae NEAR $L$_encrypt_big_nblocks_334 + +$L$_no_more_big_nblocks_334: + + cmp r13,512 + jae NEAR $L$_encrypt_32_blocks_334 + + cmp r13,256 + jae NEAR $L$_encrypt_16_blocks_334 +$L$_encrypt_0_blocks_ghash_32_334: + mov r10d,r13d + and r10d,~15 + mov ebx,256 + sub ebx,r10d + vmovdqa64 zmm13,ZMMWORD[768+rsp] + vpxorq zmm13,zmm13,zmm14 + vmovdqu64 zmm12,ZMMWORD[rbx*1+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[832+rsp] + vmovdqu64 zmm12,ZMMWORD[64+rbx*1+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + vpxorq zmm26,zmm4,zmm10 + vpxorq zmm24,zmm0,zmm6 + vpxorq zmm25,zmm3,zmm7 + vpternlogq zmm26,zmm5,zmm11,0x96 + vmovdqa64 zmm13,ZMMWORD[896+rsp] + vmovdqu64 zmm12,ZMMWORD[128+rbx*1+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[960+rsp] + vmovdqu64 zmm12,ZMMWORD[192+rbx*1+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + + vpternlogq zmm26,zmm4,zmm10,0x96 + vpternlogq zmm24,zmm0,zmm6,0x96 + vpternlogq zmm25,zmm3,zmm7,0x96 + vpternlogq zmm26,zmm5,zmm11,0x96 + add ebx,256 + mov r10d,r13d + add r10d,15 + shr r10d,4 + je NEAR $L$_last_num_blocks_is_0_343 + + cmp r10d,8 + je NEAR $L$_last_num_blocks_is_8_343 + jb NEAR $L$_last_num_blocks_is_7_1_343 + + + cmp r10d,12 + je NEAR $L$_last_num_blocks_is_12_343 + jb NEAR $L$_last_num_blocks_is_11_9_343 + + + cmp r10d,15 + je NEAR $L$_last_num_blocks_is_15_343 + ja NEAR $L$_last_num_blocks_is_16_343 + cmp r10d,14 + je NEAR $L$_last_num_blocks_is_14_343 + jmp NEAR $L$_last_num_blocks_is_13_343 + +$L$_last_num_blocks_is_11_9_343: + + cmp r10d,10 + je NEAR $L$_last_num_blocks_is_10_343 + ja NEAR $L$_last_num_blocks_is_11_343 + jmp NEAR $L$_last_num_blocks_is_9_343 + +$L$_last_num_blocks_is_7_1_343: + cmp r10d,4 + je NEAR $L$_last_num_blocks_is_4_343 + jb NEAR $L$_last_num_blocks_is_3_1_343 + + cmp r10d,6 + ja NEAR $L$_last_num_blocks_is_7_343 + je NEAR $L$_last_num_blocks_is_6_343 + jmp NEAR $L$_last_num_blocks_is_5_343 + +$L$_last_num_blocks_is_3_1_343: + + cmp r10d,2 + ja NEAR $L$_last_num_blocks_is_3_343 + je NEAR $L$_last_num_blocks_is_2_343 +$L$_last_num_blocks_is_1_343: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,255 + jae NEAR $L$_16_blocks_overflow_344 + vpaddd xmm0,xmm2,xmm28 + jmp NEAR $L$_16_blocks_ok_344 + +$L$_16_blocks_overflow_344: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb xmm0,xmm0,xmm29 +$L$_16_blocks_ok_344: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm0,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 xmm17{k1}{z},[r11*1+r9] + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc xmm0,xmm0,xmm31 + vaesenclast xmm0,xmm0,xmm30 + vpxorq xmm0,xmm0,xmm17 + vextracti32x4 xmm11,zmm0,0 + mov r10,QWORD[120+rbp] + vmovdqu8 XMMWORD[r11*1+r10]{k1},xmm0 + vmovdqu8 zmm0{k1}{z},zmm0 + vpshufb xmm17,xmm0,xmm29 + vextracti32x4 xmm7,zmm17,0 + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_345 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm17,xmm1,0x01 + vpclmulqdq xmm5,xmm17,xmm1,0x10 + vpclmulqdq xmm0,xmm17,xmm1,0x11 + vpclmulqdq xmm3,xmm17,xmm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_345 +$L$_small_initial_partial_block_345: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + + + vpsrldq zmm0,zmm26,8 + vpslldq zmm3,zmm26,8 + vpxorq zmm24,zmm24,zmm0 + vpxorq zmm25,zmm25,zmm3 + vextracti64x4 ymm0,zmm24,1 + vpxorq ymm24,ymm24,ymm0 + vextracti32x4 xmm0,ymm24,1 + vpxorq xmm24,xmm24,xmm0 + vextracti64x4 ymm3,zmm25,1 + vpxorq ymm25,ymm25,ymm3 + vextracti32x4 xmm3,ymm25,1 + vpxorq xmm25,xmm25,xmm3 + vmovdqa64 xmm0,XMMWORD[POLY2] + + + vpclmulqdq xmm3,xmm0,xmm25,0x01 + vpslldq xmm3,xmm3,8 + vpxorq xmm3,xmm25,xmm3 + + + vpclmulqdq xmm4,xmm0,xmm3,0x00 + vpsrldq xmm4,xmm4,4 + vpclmulqdq xmm14,xmm0,xmm3,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm4,xmm24,0x96 + + + + + + + + + + + + + vpxorq xmm14,xmm14,xmm7 + + jmp NEAR $L$_after_reduction_345 +$L$_small_initial_compute_done_345: +$L$_after_reduction_345: + jmp NEAR $L$_last_blocks_done_343 +$L$_last_num_blocks_is_2_343: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,254 + jae NEAR $L$_16_blocks_overflow_346 + vpaddd ymm0,ymm2,ymm28 + jmp NEAR $L$_16_blocks_ok_346 + +$L$_16_blocks_overflow_346: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb ymm0,ymm0,ymm29 +$L$_16_blocks_ok_346: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm0,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 ymm17{k1}{z},[r11*1+r9] + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc ymm0,ymm0,ymm31 + vaesenclast ymm0,ymm0,ymm30 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm11,zmm0,1 + mov r10,QWORD[120+rbp] + vmovdqu8 YMMWORD[r11*1+r10]{k1},ymm0 + vmovdqu8 zmm0{k1}{z},zmm0 + vpshufb ymm17,ymm0,ymm29 + vextracti32x4 xmm7,zmm17,1 + sub r13,16 * (2 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_347 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm17,ymm1,0x01 + vpclmulqdq ymm5,ymm17,ymm1,0x10 + vpclmulqdq ymm0,ymm17,ymm1,0x11 + vpclmulqdq ymm3,ymm17,ymm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_347 +$L$_small_initial_partial_block_347: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm17,xmm1,0x01 + vpclmulqdq xmm5,xmm17,xmm1,0x10 + vpclmulqdq xmm0,xmm17,xmm1,0x11 + vpclmulqdq xmm3,xmm17,xmm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_347: + + or r13,r13 + je NEAR $L$_after_reduction_347 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_347: + jmp NEAR $L$_last_blocks_done_343 +$L$_last_num_blocks_is_3_343: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,253 + jae NEAR $L$_16_blocks_overflow_348 + vpaddd zmm0,zmm2,zmm28 + jmp NEAR $L$_16_blocks_ok_348 + +$L$_16_blocks_overflow_348: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb zmm0,zmm0,zmm29 +$L$_16_blocks_ok_348: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm0,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17{k1}{z},[r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vpxorq zmm0,zmm0,zmm17 + vextracti32x4 xmm11,zmm0,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10]{k1},zmm0 + vmovdqu8 zmm0{k1}{z},zmm0 + vpshufb zmm17,zmm0,zmm29 + vextracti32x4 xmm7,zmm17,2 + sub r13,16 * (3 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_349 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_349 +$L$_small_initial_partial_block_349: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm17,ymm1,0x01 + vpclmulqdq ymm5,ymm17,ymm1,0x10 + vpclmulqdq ymm0,ymm17,ymm1,0x11 + vpclmulqdq ymm3,ymm17,ymm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_349: + + or r13,r13 + je NEAR $L$_after_reduction_349 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_349: + jmp NEAR $L$_last_blocks_done_343 +$L$_last_num_blocks_is_4_343: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,252 + jae NEAR $L$_16_blocks_overflow_350 + vpaddd zmm0,zmm2,zmm28 + jmp NEAR $L$_16_blocks_ok_350 + +$L$_16_blocks_overflow_350: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb zmm0,zmm0,zmm29 +$L$_16_blocks_ok_350: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm0,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17{k1}{z},[r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vpxorq zmm0,zmm0,zmm17 + vextracti32x4 xmm11,zmm0,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10]{k1},zmm0 + vmovdqu8 zmm0{k1}{z},zmm0 + vpshufb zmm17,zmm0,zmm29 + vextracti32x4 xmm7,zmm17,3 + sub r13,16 * (4 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_351 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_351 +$L$_small_initial_partial_block_351: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_351: + + or r13,r13 + je NEAR $L$_after_reduction_351 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_351: + jmp NEAR $L$_last_blocks_done_343 +$L$_last_num_blocks_is_5_343: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,251 + jae NEAR $L$_16_blocks_overflow_352 + vpaddd zmm0,zmm2,zmm28 + vpaddd xmm3,xmm0,xmm27 + jmp NEAR $L$_16_blocks_ok_352 + +$L$_16_blocks_overflow_352: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb xmm3,xmm3,xmm29 +$L$_16_blocks_ok_352: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm3,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 xmm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast xmm3,xmm3,xmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq xmm3,xmm3,xmm19 + vextracti32x4 xmm11,zmm3,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 XMMWORD[64+r11*1+r10]{k1},xmm3 + vmovdqu8 zmm3{k1}{z},zmm3 + vpshufb zmm17,zmm0,zmm29 + vpshufb xmm19,xmm3,xmm29 + vextracti32x4 xmm7,zmm19,0 + sub r13,16 * (5 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_353 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm19,xmm1,0x01 + vpclmulqdq xmm5,xmm19,xmm1,0x10 + vpclmulqdq xmm0,xmm19,xmm1,0x11 + vpclmulqdq xmm3,xmm19,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_353 +$L$_small_initial_partial_block_353: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_353: + + or r13,r13 + je NEAR $L$_after_reduction_353 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_353: + jmp NEAR $L$_last_blocks_done_343 +$L$_last_num_blocks_is_6_343: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,250 + jae NEAR $L$_16_blocks_overflow_354 + vpaddd zmm0,zmm2,zmm28 + vpaddd ymm3,ymm0,ymm27 + jmp NEAR $L$_16_blocks_ok_354 + +$L$_16_blocks_overflow_354: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb ymm3,ymm3,ymm29 +$L$_16_blocks_ok_354: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm3,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 ymm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast ymm3,ymm3,ymm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm11,zmm3,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 YMMWORD[64+r11*1+r10]{k1},ymm3 + vmovdqu8 zmm3{k1}{z},zmm3 + vpshufb zmm17,zmm0,zmm29 + vpshufb ymm19,ymm3,ymm29 + vextracti32x4 xmm7,zmm19,1 + sub r13,16 * (6 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_355 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm19,ymm1,0x01 + vpclmulqdq ymm5,ymm19,ymm1,0x10 + vpclmulqdq ymm0,ymm19,ymm1,0x11 + vpclmulqdq ymm3,ymm19,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_355 +$L$_small_initial_partial_block_355: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm19,xmm1,0x01 + vpclmulqdq xmm5,xmm19,xmm1,0x10 + vpclmulqdq xmm0,xmm19,xmm1,0x11 + vpclmulqdq xmm3,xmm19,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_355: + + or r13,r13 + je NEAR $L$_after_reduction_355 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_355: + jmp NEAR $L$_last_blocks_done_343 +$L$_last_num_blocks_is_7_343: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,249 + jae NEAR $L$_16_blocks_overflow_356 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + jmp NEAR $L$_16_blocks_ok_356 + +$L$_16_blocks_overflow_356: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 +$L$_16_blocks_ok_356: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm3,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti32x4 xmm11,zmm3,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10]{k1},zmm3 + vmovdqu8 zmm3{k1}{z},zmm3 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vextracti32x4 xmm7,zmm19,2 + sub r13,16 * (7 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_357 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm19,zmm1,0x01 + vpclmulqdq zmm5,zmm19,zmm1,0x10 + vpclmulqdq zmm0,zmm19,zmm1,0x11 + vpclmulqdq zmm3,zmm19,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_357 +$L$_small_initial_partial_block_357: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm19,ymm1,0x01 + vpclmulqdq ymm5,ymm19,ymm1,0x10 + vpclmulqdq ymm0,ymm19,ymm1,0x11 + vpclmulqdq ymm3,ymm19,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_357: + + or r13,r13 + je NEAR $L$_after_reduction_357 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_357: + jmp NEAR $L$_last_blocks_done_343 +$L$_last_num_blocks_is_8_343: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,248 + jae NEAR $L$_16_blocks_overflow_358 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + jmp NEAR $L$_16_blocks_ok_358 + +$L$_16_blocks_overflow_358: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 +$L$_16_blocks_ok_358: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm3,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti32x4 xmm11,zmm3,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10]{k1},zmm3 + vmovdqu8 zmm3{k1}{z},zmm3 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vextracti32x4 xmm7,zmm19,3 + sub r13,16 * (8 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_359 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_359 +$L$_small_initial_partial_block_359: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm19,zmm1,0x01 + vpclmulqdq zmm5,zmm19,zmm1,0x10 + vpclmulqdq zmm0,zmm19,zmm1,0x11 + vpclmulqdq zmm3,zmm19,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_359: + + or r13,r13 + je NEAR $L$_after_reduction_359 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_359: + jmp NEAR $L$_last_blocks_done_343 +$L$_last_num_blocks_is_9_343: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,247 + jae NEAR $L$_16_blocks_overflow_360 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd xmm4,xmm3,xmm27 + jmp NEAR $L$_16_blocks_ok_360 + +$L$_16_blocks_overflow_360: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb xmm4,xmm4,xmm29 +$L$_16_blocks_ok_360: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm4,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 xmm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast xmm4,xmm4,xmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq xmm4,xmm4,xmm20 + vextracti32x4 xmm11,zmm4,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 XMMWORD[128+r11*1+r10]{k1},xmm4 + vmovdqu8 zmm4{k1}{z},zmm4 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb xmm20,xmm4,xmm29 + vextracti32x4 xmm7,zmm20,0 + sub r13,16 * (9 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_361 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm20,xmm1,0x01 + vpclmulqdq xmm5,xmm20,xmm1,0x10 + vpclmulqdq xmm0,xmm20,xmm1,0x11 + vpclmulqdq xmm3,xmm20,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_361 +$L$_small_initial_partial_block_361: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_361: + + or r13,r13 + je NEAR $L$_after_reduction_361 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_361: + jmp NEAR $L$_last_blocks_done_343 +$L$_last_num_blocks_is_10_343: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,246 + jae NEAR $L$_16_blocks_overflow_362 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd ymm4,ymm3,ymm27 + jmp NEAR $L$_16_blocks_ok_362 + +$L$_16_blocks_overflow_362: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb ymm4,ymm4,ymm29 +$L$_16_blocks_ok_362: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm4,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 ymm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast ymm4,ymm4,ymm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq ymm4,ymm4,ymm20 + vextracti32x4 xmm11,zmm4,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 YMMWORD[128+r11*1+r10]{k1},ymm4 + vmovdqu8 zmm4{k1}{z},zmm4 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb ymm20,ymm4,ymm29 + vextracti32x4 xmm7,zmm20,1 + sub r13,16 * (10 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_363 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm20,ymm1,0x01 + vpclmulqdq ymm5,ymm20,ymm1,0x10 + vpclmulqdq ymm0,ymm20,ymm1,0x11 + vpclmulqdq ymm3,ymm20,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_363 +$L$_small_initial_partial_block_363: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm20,xmm1,0x01 + vpclmulqdq xmm5,xmm20,xmm1,0x10 + vpclmulqdq xmm0,xmm20,xmm1,0x11 + vpclmulqdq xmm3,xmm20,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_363: + + or r13,r13 + je NEAR $L$_after_reduction_363 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_363: + jmp NEAR $L$_last_blocks_done_343 +$L$_last_num_blocks_is_11_343: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,245 + jae NEAR $L$_16_blocks_overflow_364 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + jmp NEAR $L$_16_blocks_ok_364 + +$L$_16_blocks_overflow_364: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 +$L$_16_blocks_ok_364: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm4,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vextracti32x4 xmm11,zmm4,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10]{k1},zmm4 + vmovdqu8 zmm4{k1}{z},zmm4 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb zmm20,zmm4,zmm29 + vextracti32x4 xmm7,zmm20,2 + sub r13,16 * (11 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_365 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm20,zmm1,0x01 + vpclmulqdq zmm5,zmm20,zmm1,0x10 + vpclmulqdq zmm0,zmm20,zmm1,0x11 + vpclmulqdq zmm3,zmm20,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_365 +$L$_small_initial_partial_block_365: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm20,ymm1,0x01 + vpclmulqdq ymm5,ymm20,ymm1,0x10 + vpclmulqdq ymm0,ymm20,ymm1,0x11 + vpclmulqdq ymm3,ymm20,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_365: + + or r13,r13 + je NEAR $L$_after_reduction_365 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_365: + jmp NEAR $L$_last_blocks_done_343 +$L$_last_num_blocks_is_12_343: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,244 + jae NEAR $L$_16_blocks_overflow_366 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + jmp NEAR $L$_16_blocks_ok_366 + +$L$_16_blocks_overflow_366: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 +$L$_16_blocks_ok_366: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm4,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vextracti32x4 xmm11,zmm4,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10]{k1},zmm4 + vmovdqu8 zmm4{k1}{z},zmm4 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb zmm20,zmm4,zmm29 + vextracti32x4 xmm7,zmm20,3 + sub r13,16 * (12 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_367 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[160+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_367 +$L$_small_initial_partial_block_367: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm20,zmm1,0x01 + vpclmulqdq zmm5,zmm20,zmm1,0x10 + vpclmulqdq zmm0,zmm20,zmm1,0x11 + vpclmulqdq zmm3,zmm20,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_367: + + or r13,r13 + je NEAR $L$_after_reduction_367 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_367: + jmp NEAR $L$_last_blocks_done_343 +$L$_last_num_blocks_is_13_343: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,243 + jae NEAR $L$_16_blocks_overflow_368 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd xmm5,xmm4,xmm27 + jmp NEAR $L$_16_blocks_ok_368 + +$L$_16_blocks_overflow_368: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb xmm5,xmm5,xmm29 +$L$_16_blocks_ok_368: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm5,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 xmm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast xmm5,xmm5,xmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq xmm5,xmm5,xmm21 + vextracti32x4 xmm11,zmm5,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 XMMWORD[192+r11*1+r10]{k1},xmm5 + vmovdqu8 zmm5{k1}{z},zmm5 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb zmm20,zmm4,zmm29 + vpshufb xmm21,xmm5,xmm29 + vextracti32x4 xmm7,zmm21,0 + sub r13,16 * (13 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_369 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[144+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm21,xmm1,0x01 + vpclmulqdq xmm5,xmm21,xmm1,0x10 + vpclmulqdq xmm0,xmm21,xmm1,0x11 + vpclmulqdq xmm3,xmm21,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_369 +$L$_small_initial_partial_block_369: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[160+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_369: + + or r13,r13 + je NEAR $L$_after_reduction_369 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_369: + jmp NEAR $L$_last_blocks_done_343 +$L$_last_num_blocks_is_14_343: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,242 + jae NEAR $L$_16_blocks_overflow_370 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd ymm5,ymm4,ymm27 + jmp NEAR $L$_16_blocks_ok_370 + +$L$_16_blocks_overflow_370: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb ymm5,ymm5,ymm29 +$L$_16_blocks_ok_370: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm5,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 ymm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast ymm5,ymm5,ymm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq ymm5,ymm5,ymm21 + vextracti32x4 xmm11,zmm5,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 YMMWORD[192+r11*1+r10]{k1},ymm5 + vmovdqu8 zmm5{k1}{z},zmm5 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb zmm20,zmm4,zmm29 + vpshufb ymm21,ymm5,ymm29 + vextracti32x4 xmm7,zmm21,1 + sub r13,16 * (14 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_371 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[128+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm21,ymm1,0x01 + vpclmulqdq ymm5,ymm21,ymm1,0x10 + vpclmulqdq ymm0,ymm21,ymm1,0x11 + vpclmulqdq ymm3,ymm21,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_371 +$L$_small_initial_partial_block_371: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[144+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm21,xmm1,0x01 + vpclmulqdq xmm5,xmm21,xmm1,0x10 + vpclmulqdq xmm0,xmm21,xmm1,0x11 + vpclmulqdq xmm3,xmm21,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_371: + + or r13,r13 + je NEAR $L$_after_reduction_371 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_371: + jmp NEAR $L$_last_blocks_done_343 +$L$_last_num_blocks_is_15_343: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,241 + jae NEAR $L$_16_blocks_overflow_372 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_372 + +$L$_16_blocks_overflow_372: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_372: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm5,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + vextracti32x4 xmm11,zmm5,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[192+r11*1+r10]{k1},zmm5 + vmovdqu8 zmm5{k1}{z},zmm5 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb zmm20,zmm4,zmm29 + vpshufb zmm21,zmm5,zmm29 + vextracti32x4 xmm7,zmm21,2 + sub r13,16 * (15 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_373 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[112+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm21,zmm1,0x01 + vpclmulqdq zmm5,zmm21,zmm1,0x10 + vpclmulqdq zmm0,zmm21,zmm1,0x11 + vpclmulqdq zmm3,zmm21,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_373 +$L$_small_initial_partial_block_373: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[128+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm21,ymm1,0x01 + vpclmulqdq ymm5,ymm21,ymm1,0x10 + vpclmulqdq ymm0,ymm21,ymm1,0x11 + vpclmulqdq ymm3,ymm21,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_373: + + or r13,r13 + je NEAR $L$_after_reduction_373 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_373: + jmp NEAR $L$_last_blocks_done_343 +$L$_last_num_blocks_is_16_343: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,240 + jae NEAR $L$_16_blocks_overflow_374 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_374 + +$L$_16_blocks_overflow_374: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_374: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm5,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + vextracti32x4 xmm11,zmm5,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[192+r11*1+r10]{k1},zmm5 + vmovdqu8 zmm5{k1}{z},zmm5 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb zmm20,zmm4,zmm29 + vpshufb zmm21,zmm5,zmm29 + vextracti32x4 xmm7,zmm21,3 + sub r13,16 * (16 - 1) +$L$_small_initial_partial_block_375: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[112+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm21,zmm1,0x01 + vpclmulqdq zmm5,zmm21,zmm1,0x10 + vpclmulqdq zmm0,zmm21,zmm1,0x11 + vpclmulqdq zmm3,zmm21,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_375: + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_375: + jmp NEAR $L$_last_blocks_done_343 +$L$_last_num_blocks_is_0_343: + vmovdqa64 zmm13,ZMMWORD[1024+rsp] + vmovdqu64 zmm12,ZMMWORD[rbx*1+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[1088+rsp] + vmovdqu64 zmm12,ZMMWORD[64+rbx*1+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + vpternlogq zmm26,zmm4,zmm10,0x96 + vpternlogq zmm24,zmm0,zmm6,0x96 + vpternlogq zmm25,zmm3,zmm7,0x96 + vpternlogq zmm26,zmm5,zmm11,0x96 + vmovdqa64 zmm13,ZMMWORD[1152+rsp] + vmovdqu64 zmm12,ZMMWORD[128+rbx*1+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[1216+rsp] + vmovdqu64 zmm12,ZMMWORD[192+rbx*1+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + + vpternlogq zmm26,zmm4,zmm10,0x96 + vpternlogq zmm24,zmm0,zmm6,0x96 + vpternlogq zmm25,zmm3,zmm7,0x96 + vpternlogq zmm26,zmm5,zmm11,0x96 + + vpsrldq zmm0,zmm26,8 + vpslldq zmm3,zmm26,8 + vpxorq zmm24,zmm24,zmm0 + vpxorq zmm25,zmm25,zmm3 + vextracti64x4 ymm0,zmm24,1 + vpxorq ymm24,ymm24,ymm0 + vextracti32x4 xmm0,ymm24,1 + vpxorq xmm24,xmm24,xmm0 + vextracti64x4 ymm3,zmm25,1 + vpxorq ymm25,ymm25,ymm3 + vextracti32x4 xmm3,ymm25,1 + vpxorq xmm25,xmm25,xmm3 + vmovdqa64 xmm4,XMMWORD[POLY2] + + + vpclmulqdq xmm0,xmm4,xmm25,0x01 + vpslldq xmm0,xmm0,8 + vpxorq xmm0,xmm25,xmm0 + + + vpclmulqdq xmm3,xmm4,xmm0,0x00 + vpsrldq xmm3,xmm3,4 + vpclmulqdq xmm14,xmm4,xmm0,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm3,xmm24,0x96 + +$L$_last_blocks_done_343: + vpshufb xmm2,xmm2,xmm29 + jmp NEAR $L$_ghash_done_334 +$L$_encrypt_32_blocks_334: + cmp r15b,240 + jae NEAR $L$_16_blocks_overflow_376 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_376 +$L$_16_blocks_overflow_376: + vpshufb zmm2,zmm2,zmm29 + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_376: + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rsp] + + + + + vshufi64x2 zmm2,zmm5,zmm5,255 + add r15b,16 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + + + + + + + + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + + vpclmulqdq zmm6,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + + vpternlogq zmm6,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + + + + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm21,ZMMWORD[192+r11*1+r9] + + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm26,zmm10,zmm15 + vpxorq zmm24,zmm6,zmm12 + vpxorq zmm25,zmm7,zmm13 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + + + + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + + + + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[192+r11*1+r10],zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 + vmovdqa64 ZMMWORD[1280+rsp],zmm0 + vmovdqa64 ZMMWORD[1344+rsp],zmm3 + vmovdqa64 ZMMWORD[1408+rsp],zmm4 + vmovdqa64 ZMMWORD[1472+rsp],zmm5 + cmp r15b,240 + jae NEAR $L$_16_blocks_overflow_377 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_377 +$L$_16_blocks_overflow_377: + vpshufb zmm2,zmm2,zmm29 + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_377: + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[256+rsp] + + + + + vshufi64x2 zmm2,zmm5,zmm5,255 + add r15b,16 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[320+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + + + + + + + + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + + vpclmulqdq zmm6,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[384+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[448+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + + vpternlogq zmm6,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + + + + vmovdqu8 zmm17,ZMMWORD[256+r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[320+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[384+r11*1+r9] + vmovdqu8 zmm21,ZMMWORD[448+r11*1+r9] + + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vpternlogq zmm24,zmm6,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + + + + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + + + + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[256+r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[320+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[384+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[448+r11*1+r10],zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 + vmovdqa64 ZMMWORD[768+rsp],zmm0 + vmovdqa64 ZMMWORD[832+rsp],zmm3 + vmovdqa64 ZMMWORD[896+rsp],zmm4 + vmovdqa64 ZMMWORD[960+rsp],zmm5 + vmovdqa64 zmm13,ZMMWORD[1280+rsp] + vmovdqu64 zmm12,ZMMWORD[512+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[1344+rsp] + vmovdqu64 zmm12,ZMMWORD[576+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + vpternlogq zmm26,zmm4,zmm10,0x96 + vpternlogq zmm24,zmm0,zmm6,0x96 + vpternlogq zmm25,zmm3,zmm7,0x96 + vpternlogq zmm26,zmm5,zmm11,0x96 + vmovdqa64 zmm13,ZMMWORD[1408+rsp] + vmovdqu64 zmm12,ZMMWORD[640+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[1472+rsp] + vmovdqu64 zmm12,ZMMWORD[704+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + + vpternlogq zmm26,zmm4,zmm10,0x96 + vpternlogq zmm24,zmm0,zmm6,0x96 + vpternlogq zmm25,zmm3,zmm7,0x96 + vpternlogq zmm26,zmm5,zmm11,0x96 + + vpsrldq zmm0,zmm26,8 + vpslldq zmm3,zmm26,8 + vpxorq zmm24,zmm24,zmm0 + vpxorq zmm25,zmm25,zmm3 + vextracti64x4 ymm0,zmm24,1 + vpxorq ymm24,ymm24,ymm0 + vextracti32x4 xmm0,ymm24,1 + vpxorq xmm24,xmm24,xmm0 + vextracti64x4 ymm3,zmm25,1 + vpxorq ymm25,ymm25,ymm3 + vextracti32x4 xmm3,ymm25,1 + vpxorq xmm25,xmm25,xmm3 + vmovdqa64 xmm4,XMMWORD[POLY2] + + + vpclmulqdq xmm0,xmm4,xmm25,0x01 + vpslldq xmm0,xmm0,8 + vpxorq xmm0,xmm25,xmm0 + + + vpclmulqdq xmm3,xmm4,xmm0,0x00 + vpsrldq xmm3,xmm3,4 + vpclmulqdq xmm14,xmm4,xmm0,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm3,xmm24,0x96 + + sub r13,512 + add r11,512 + mov r10d,r13d + and r10d,~15 + mov ebx,512 + sub ebx,r10d + mov r10d,r13d + add r10d,15 + shr r10d,4 + je NEAR $L$_last_num_blocks_is_0_378 + + cmp r10d,8 + je NEAR $L$_last_num_blocks_is_8_378 + jb NEAR $L$_last_num_blocks_is_7_1_378 + + + cmp r10d,12 + je NEAR $L$_last_num_blocks_is_12_378 + jb NEAR $L$_last_num_blocks_is_11_9_378 + + + cmp r10d,15 + je NEAR $L$_last_num_blocks_is_15_378 + ja NEAR $L$_last_num_blocks_is_16_378 + cmp r10d,14 + je NEAR $L$_last_num_blocks_is_14_378 + jmp NEAR $L$_last_num_blocks_is_13_378 + +$L$_last_num_blocks_is_11_9_378: + + cmp r10d,10 + je NEAR $L$_last_num_blocks_is_10_378 + ja NEAR $L$_last_num_blocks_is_11_378 + jmp NEAR $L$_last_num_blocks_is_9_378 + +$L$_last_num_blocks_is_7_1_378: + cmp r10d,4 + je NEAR $L$_last_num_blocks_is_4_378 + jb NEAR $L$_last_num_blocks_is_3_1_378 + + cmp r10d,6 + ja NEAR $L$_last_num_blocks_is_7_378 + je NEAR $L$_last_num_blocks_is_6_378 + jmp NEAR $L$_last_num_blocks_is_5_378 + +$L$_last_num_blocks_is_3_1_378: + + cmp r10d,2 + ja NEAR $L$_last_num_blocks_is_3_378 + je NEAR $L$_last_num_blocks_is_2_378 +$L$_last_num_blocks_is_1_378: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,255 + jae NEAR $L$_16_blocks_overflow_379 + vpaddd xmm0,xmm2,xmm28 + jmp NEAR $L$_16_blocks_ok_379 + +$L$_16_blocks_overflow_379: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb xmm0,xmm0,xmm29 +$L$_16_blocks_ok_379: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm0,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 xmm17{k1}{z},[r11*1+r9] + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc xmm0,xmm0,xmm31 + vaesenclast xmm0,xmm0,xmm30 + vpxorq xmm0,xmm0,xmm17 + vextracti32x4 xmm11,zmm0,0 + mov r10,QWORD[120+rbp] + vmovdqu8 XMMWORD[r11*1+r10]{k1},xmm0 + vmovdqu8 zmm0{k1}{z},zmm0 + vpshufb xmm17,xmm0,xmm29 + vextracti32x4 xmm7,zmm17,0 + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_380 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm17,xmm1,0x01 + vpclmulqdq xmm5,xmm17,xmm1,0x10 + vpclmulqdq xmm0,xmm17,xmm1,0x11 + vpclmulqdq xmm3,xmm17,xmm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_380 +$L$_small_initial_partial_block_380: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + + + vpsrldq zmm0,zmm26,8 + vpslldq zmm3,zmm26,8 + vpxorq zmm24,zmm24,zmm0 + vpxorq zmm25,zmm25,zmm3 + vextracti64x4 ymm0,zmm24,1 + vpxorq ymm24,ymm24,ymm0 + vextracti32x4 xmm0,ymm24,1 + vpxorq xmm24,xmm24,xmm0 + vextracti64x4 ymm3,zmm25,1 + vpxorq ymm25,ymm25,ymm3 + vextracti32x4 xmm3,ymm25,1 + vpxorq xmm25,xmm25,xmm3 + vmovdqa64 xmm0,XMMWORD[POLY2] + + + vpclmulqdq xmm3,xmm0,xmm25,0x01 + vpslldq xmm3,xmm3,8 + vpxorq xmm3,xmm25,xmm3 + + + vpclmulqdq xmm4,xmm0,xmm3,0x00 + vpsrldq xmm4,xmm4,4 + vpclmulqdq xmm14,xmm0,xmm3,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm4,xmm24,0x96 + + + + + + + + + + + + + vpxorq xmm14,xmm14,xmm7 + + jmp NEAR $L$_after_reduction_380 +$L$_small_initial_compute_done_380: +$L$_after_reduction_380: + jmp NEAR $L$_last_blocks_done_378 +$L$_last_num_blocks_is_2_378: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,254 + jae NEAR $L$_16_blocks_overflow_381 + vpaddd ymm0,ymm2,ymm28 + jmp NEAR $L$_16_blocks_ok_381 + +$L$_16_blocks_overflow_381: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb ymm0,ymm0,ymm29 +$L$_16_blocks_ok_381: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm0,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 ymm17{k1}{z},[r11*1+r9] + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc ymm0,ymm0,ymm31 + vaesenclast ymm0,ymm0,ymm30 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm11,zmm0,1 + mov r10,QWORD[120+rbp] + vmovdqu8 YMMWORD[r11*1+r10]{k1},ymm0 + vmovdqu8 zmm0{k1}{z},zmm0 + vpshufb ymm17,ymm0,ymm29 + vextracti32x4 xmm7,zmm17,1 + sub r13,16 * (2 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_382 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm17,ymm1,0x01 + vpclmulqdq ymm5,ymm17,ymm1,0x10 + vpclmulqdq ymm0,ymm17,ymm1,0x11 + vpclmulqdq ymm3,ymm17,ymm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_382 +$L$_small_initial_partial_block_382: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm17,xmm1,0x01 + vpclmulqdq xmm5,xmm17,xmm1,0x10 + vpclmulqdq xmm0,xmm17,xmm1,0x11 + vpclmulqdq xmm3,xmm17,xmm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_382: + + or r13,r13 + je NEAR $L$_after_reduction_382 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_382: + jmp NEAR $L$_last_blocks_done_378 +$L$_last_num_blocks_is_3_378: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,253 + jae NEAR $L$_16_blocks_overflow_383 + vpaddd zmm0,zmm2,zmm28 + jmp NEAR $L$_16_blocks_ok_383 + +$L$_16_blocks_overflow_383: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb zmm0,zmm0,zmm29 +$L$_16_blocks_ok_383: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm0,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17{k1}{z},[r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vpxorq zmm0,zmm0,zmm17 + vextracti32x4 xmm11,zmm0,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10]{k1},zmm0 + vmovdqu8 zmm0{k1}{z},zmm0 + vpshufb zmm17,zmm0,zmm29 + vextracti32x4 xmm7,zmm17,2 + sub r13,16 * (3 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_384 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_384 +$L$_small_initial_partial_block_384: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm17,ymm1,0x01 + vpclmulqdq ymm5,ymm17,ymm1,0x10 + vpclmulqdq ymm0,ymm17,ymm1,0x11 + vpclmulqdq ymm3,ymm17,ymm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_384: + + or r13,r13 + je NEAR $L$_after_reduction_384 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_384: + jmp NEAR $L$_last_blocks_done_378 +$L$_last_num_blocks_is_4_378: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,252 + jae NEAR $L$_16_blocks_overflow_385 + vpaddd zmm0,zmm2,zmm28 + jmp NEAR $L$_16_blocks_ok_385 + +$L$_16_blocks_overflow_385: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb zmm0,zmm0,zmm29 +$L$_16_blocks_ok_385: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm0,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17{k1}{z},[r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vpxorq zmm0,zmm0,zmm17 + vextracti32x4 xmm11,zmm0,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10]{k1},zmm0 + vmovdqu8 zmm0{k1}{z},zmm0 + vpshufb zmm17,zmm0,zmm29 + vextracti32x4 xmm7,zmm17,3 + sub r13,16 * (4 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_386 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_386 +$L$_small_initial_partial_block_386: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_386: + + or r13,r13 + je NEAR $L$_after_reduction_386 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_386: + jmp NEAR $L$_last_blocks_done_378 +$L$_last_num_blocks_is_5_378: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,251 + jae NEAR $L$_16_blocks_overflow_387 + vpaddd zmm0,zmm2,zmm28 + vpaddd xmm3,xmm0,xmm27 + jmp NEAR $L$_16_blocks_ok_387 + +$L$_16_blocks_overflow_387: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb xmm3,xmm3,xmm29 +$L$_16_blocks_ok_387: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm3,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 xmm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast xmm3,xmm3,xmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq xmm3,xmm3,xmm19 + vextracti32x4 xmm11,zmm3,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 XMMWORD[64+r11*1+r10]{k1},xmm3 + vmovdqu8 zmm3{k1}{z},zmm3 + vpshufb zmm17,zmm0,zmm29 + vpshufb xmm19,xmm3,xmm29 + vextracti32x4 xmm7,zmm19,0 + sub r13,16 * (5 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_388 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm19,xmm1,0x01 + vpclmulqdq xmm5,xmm19,xmm1,0x10 + vpclmulqdq xmm0,xmm19,xmm1,0x11 + vpclmulqdq xmm3,xmm19,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_388 +$L$_small_initial_partial_block_388: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_388: + + or r13,r13 + je NEAR $L$_after_reduction_388 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_388: + jmp NEAR $L$_last_blocks_done_378 +$L$_last_num_blocks_is_6_378: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,250 + jae NEAR $L$_16_blocks_overflow_389 + vpaddd zmm0,zmm2,zmm28 + vpaddd ymm3,ymm0,ymm27 + jmp NEAR $L$_16_blocks_ok_389 + +$L$_16_blocks_overflow_389: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb ymm3,ymm3,ymm29 +$L$_16_blocks_ok_389: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm3,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 ymm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast ymm3,ymm3,ymm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm11,zmm3,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 YMMWORD[64+r11*1+r10]{k1},ymm3 + vmovdqu8 zmm3{k1}{z},zmm3 + vpshufb zmm17,zmm0,zmm29 + vpshufb ymm19,ymm3,ymm29 + vextracti32x4 xmm7,zmm19,1 + sub r13,16 * (6 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_390 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm19,ymm1,0x01 + vpclmulqdq ymm5,ymm19,ymm1,0x10 + vpclmulqdq ymm0,ymm19,ymm1,0x11 + vpclmulqdq ymm3,ymm19,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_390 +$L$_small_initial_partial_block_390: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm19,xmm1,0x01 + vpclmulqdq xmm5,xmm19,xmm1,0x10 + vpclmulqdq xmm0,xmm19,xmm1,0x11 + vpclmulqdq xmm3,xmm19,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_390: + + or r13,r13 + je NEAR $L$_after_reduction_390 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_390: + jmp NEAR $L$_last_blocks_done_378 +$L$_last_num_blocks_is_7_378: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,249 + jae NEAR $L$_16_blocks_overflow_391 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + jmp NEAR $L$_16_blocks_ok_391 + +$L$_16_blocks_overflow_391: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 +$L$_16_blocks_ok_391: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm3,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti32x4 xmm11,zmm3,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10]{k1},zmm3 + vmovdqu8 zmm3{k1}{z},zmm3 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vextracti32x4 xmm7,zmm19,2 + sub r13,16 * (7 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_392 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm19,zmm1,0x01 + vpclmulqdq zmm5,zmm19,zmm1,0x10 + vpclmulqdq zmm0,zmm19,zmm1,0x11 + vpclmulqdq zmm3,zmm19,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_392 +$L$_small_initial_partial_block_392: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm19,ymm1,0x01 + vpclmulqdq ymm5,ymm19,ymm1,0x10 + vpclmulqdq ymm0,ymm19,ymm1,0x11 + vpclmulqdq ymm3,ymm19,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_392: + + or r13,r13 + je NEAR $L$_after_reduction_392 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_392: + jmp NEAR $L$_last_blocks_done_378 +$L$_last_num_blocks_is_8_378: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,248 + jae NEAR $L$_16_blocks_overflow_393 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + jmp NEAR $L$_16_blocks_ok_393 + +$L$_16_blocks_overflow_393: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 +$L$_16_blocks_ok_393: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm3,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti32x4 xmm11,zmm3,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10]{k1},zmm3 + vmovdqu8 zmm3{k1}{z},zmm3 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vextracti32x4 xmm7,zmm19,3 + sub r13,16 * (8 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_394 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_394 +$L$_small_initial_partial_block_394: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm19,zmm1,0x01 + vpclmulqdq zmm5,zmm19,zmm1,0x10 + vpclmulqdq zmm0,zmm19,zmm1,0x11 + vpclmulqdq zmm3,zmm19,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_394: + + or r13,r13 + je NEAR $L$_after_reduction_394 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_394: + jmp NEAR $L$_last_blocks_done_378 +$L$_last_num_blocks_is_9_378: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,247 + jae NEAR $L$_16_blocks_overflow_395 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd xmm4,xmm3,xmm27 + jmp NEAR $L$_16_blocks_ok_395 + +$L$_16_blocks_overflow_395: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb xmm4,xmm4,xmm29 +$L$_16_blocks_ok_395: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm4,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 xmm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast xmm4,xmm4,xmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq xmm4,xmm4,xmm20 + vextracti32x4 xmm11,zmm4,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 XMMWORD[128+r11*1+r10]{k1},xmm4 + vmovdqu8 zmm4{k1}{z},zmm4 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb xmm20,xmm4,xmm29 + vextracti32x4 xmm7,zmm20,0 + sub r13,16 * (9 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_396 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm20,xmm1,0x01 + vpclmulqdq xmm5,xmm20,xmm1,0x10 + vpclmulqdq xmm0,xmm20,xmm1,0x11 + vpclmulqdq xmm3,xmm20,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_396 +$L$_small_initial_partial_block_396: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_396: + + or r13,r13 + je NEAR $L$_after_reduction_396 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_396: + jmp NEAR $L$_last_blocks_done_378 +$L$_last_num_blocks_is_10_378: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,246 + jae NEAR $L$_16_blocks_overflow_397 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd ymm4,ymm3,ymm27 + jmp NEAR $L$_16_blocks_ok_397 + +$L$_16_blocks_overflow_397: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb ymm4,ymm4,ymm29 +$L$_16_blocks_ok_397: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm4,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 ymm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast ymm4,ymm4,ymm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq ymm4,ymm4,ymm20 + vextracti32x4 xmm11,zmm4,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 YMMWORD[128+r11*1+r10]{k1},ymm4 + vmovdqu8 zmm4{k1}{z},zmm4 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb ymm20,ymm4,ymm29 + vextracti32x4 xmm7,zmm20,1 + sub r13,16 * (10 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_398 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm20,ymm1,0x01 + vpclmulqdq ymm5,ymm20,ymm1,0x10 + vpclmulqdq ymm0,ymm20,ymm1,0x11 + vpclmulqdq ymm3,ymm20,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_398 +$L$_small_initial_partial_block_398: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm20,xmm1,0x01 + vpclmulqdq xmm5,xmm20,xmm1,0x10 + vpclmulqdq xmm0,xmm20,xmm1,0x11 + vpclmulqdq xmm3,xmm20,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_398: + + or r13,r13 + je NEAR $L$_after_reduction_398 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_398: + jmp NEAR $L$_last_blocks_done_378 +$L$_last_num_blocks_is_11_378: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,245 + jae NEAR $L$_16_blocks_overflow_399 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + jmp NEAR $L$_16_blocks_ok_399 + +$L$_16_blocks_overflow_399: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 +$L$_16_blocks_ok_399: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm4,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vextracti32x4 xmm11,zmm4,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10]{k1},zmm4 + vmovdqu8 zmm4{k1}{z},zmm4 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb zmm20,zmm4,zmm29 + vextracti32x4 xmm7,zmm20,2 + sub r13,16 * (11 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_400 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm20,zmm1,0x01 + vpclmulqdq zmm5,zmm20,zmm1,0x10 + vpclmulqdq zmm0,zmm20,zmm1,0x11 + vpclmulqdq zmm3,zmm20,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_400 +$L$_small_initial_partial_block_400: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm20,ymm1,0x01 + vpclmulqdq ymm5,ymm20,ymm1,0x10 + vpclmulqdq ymm0,ymm20,ymm1,0x11 + vpclmulqdq ymm3,ymm20,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_400: + + or r13,r13 + je NEAR $L$_after_reduction_400 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_400: + jmp NEAR $L$_last_blocks_done_378 +$L$_last_num_blocks_is_12_378: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,244 + jae NEAR $L$_16_blocks_overflow_401 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + jmp NEAR $L$_16_blocks_ok_401 + +$L$_16_blocks_overflow_401: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 +$L$_16_blocks_ok_401: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm4,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vextracti32x4 xmm11,zmm4,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10]{k1},zmm4 + vmovdqu8 zmm4{k1}{z},zmm4 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb zmm20,zmm4,zmm29 + vextracti32x4 xmm7,zmm20,3 + sub r13,16 * (12 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_402 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[160+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_402 +$L$_small_initial_partial_block_402: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm20,zmm1,0x01 + vpclmulqdq zmm5,zmm20,zmm1,0x10 + vpclmulqdq zmm0,zmm20,zmm1,0x11 + vpclmulqdq zmm3,zmm20,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_402: + + or r13,r13 + je NEAR $L$_after_reduction_402 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_402: + jmp NEAR $L$_last_blocks_done_378 +$L$_last_num_blocks_is_13_378: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,243 + jae NEAR $L$_16_blocks_overflow_403 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd xmm5,xmm4,xmm27 + jmp NEAR $L$_16_blocks_ok_403 + +$L$_16_blocks_overflow_403: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb xmm5,xmm5,xmm29 +$L$_16_blocks_ok_403: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm5,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 xmm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast xmm5,xmm5,xmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq xmm5,xmm5,xmm21 + vextracti32x4 xmm11,zmm5,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 XMMWORD[192+r11*1+r10]{k1},xmm5 + vmovdqu8 zmm5{k1}{z},zmm5 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb zmm20,zmm4,zmm29 + vpshufb xmm21,xmm5,xmm29 + vextracti32x4 xmm7,zmm21,0 + sub r13,16 * (13 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_404 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[144+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm21,xmm1,0x01 + vpclmulqdq xmm5,xmm21,xmm1,0x10 + vpclmulqdq xmm0,xmm21,xmm1,0x11 + vpclmulqdq xmm3,xmm21,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_404 +$L$_small_initial_partial_block_404: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[160+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_404: + + or r13,r13 + je NEAR $L$_after_reduction_404 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_404: + jmp NEAR $L$_last_blocks_done_378 +$L$_last_num_blocks_is_14_378: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,242 + jae NEAR $L$_16_blocks_overflow_405 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd ymm5,ymm4,ymm27 + jmp NEAR $L$_16_blocks_ok_405 + +$L$_16_blocks_overflow_405: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb ymm5,ymm5,ymm29 +$L$_16_blocks_ok_405: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm5,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 ymm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast ymm5,ymm5,ymm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq ymm5,ymm5,ymm21 + vextracti32x4 xmm11,zmm5,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 YMMWORD[192+r11*1+r10]{k1},ymm5 + vmovdqu8 zmm5{k1}{z},zmm5 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb zmm20,zmm4,zmm29 + vpshufb ymm21,ymm5,ymm29 + vextracti32x4 xmm7,zmm21,1 + sub r13,16 * (14 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_406 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[128+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm21,ymm1,0x01 + vpclmulqdq ymm5,ymm21,ymm1,0x10 + vpclmulqdq ymm0,ymm21,ymm1,0x11 + vpclmulqdq ymm3,ymm21,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_406 +$L$_small_initial_partial_block_406: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[144+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm21,xmm1,0x01 + vpclmulqdq xmm5,xmm21,xmm1,0x10 + vpclmulqdq xmm0,xmm21,xmm1,0x11 + vpclmulqdq xmm3,xmm21,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_406: + + or r13,r13 + je NEAR $L$_after_reduction_406 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_406: + jmp NEAR $L$_last_blocks_done_378 +$L$_last_num_blocks_is_15_378: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,241 + jae NEAR $L$_16_blocks_overflow_407 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_407 + +$L$_16_blocks_overflow_407: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_407: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm5,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + vextracti32x4 xmm11,zmm5,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[192+r11*1+r10]{k1},zmm5 + vmovdqu8 zmm5{k1}{z},zmm5 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb zmm20,zmm4,zmm29 + vpshufb zmm21,zmm5,zmm29 + vextracti32x4 xmm7,zmm21,2 + sub r13,16 * (15 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_408 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[112+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm21,zmm1,0x01 + vpclmulqdq zmm5,zmm21,zmm1,0x10 + vpclmulqdq zmm0,zmm21,zmm1,0x11 + vpclmulqdq zmm3,zmm21,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_408 +$L$_small_initial_partial_block_408: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[128+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm21,ymm1,0x01 + vpclmulqdq ymm5,ymm21,ymm1,0x10 + vpclmulqdq ymm0,ymm21,ymm1,0x11 + vpclmulqdq ymm3,ymm21,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_408: + + or r13,r13 + je NEAR $L$_after_reduction_408 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_408: + jmp NEAR $L$_last_blocks_done_378 +$L$_last_num_blocks_is_16_378: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,240 + jae NEAR $L$_16_blocks_overflow_409 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_409 + +$L$_16_blocks_overflow_409: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_409: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm5,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + vextracti32x4 xmm11,zmm5,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[192+r11*1+r10]{k1},zmm5 + vmovdqu8 zmm5{k1}{z},zmm5 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb zmm20,zmm4,zmm29 + vpshufb zmm21,zmm5,zmm29 + vextracti32x4 xmm7,zmm21,3 + sub r13,16 * (16 - 1) +$L$_small_initial_partial_block_410: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[112+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm21,zmm1,0x01 + vpclmulqdq zmm5,zmm21,zmm1,0x10 + vpclmulqdq zmm0,zmm21,zmm1,0x11 + vpclmulqdq zmm3,zmm21,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_410: + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_410: + jmp NEAR $L$_last_blocks_done_378 +$L$_last_num_blocks_is_0_378: + vmovdqa64 zmm13,ZMMWORD[768+rsp] + vpxorq zmm13,zmm13,zmm14 + vmovdqu64 zmm12,ZMMWORD[rbx*1+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[832+rsp] + vmovdqu64 zmm12,ZMMWORD[64+rbx*1+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + vpxorq zmm26,zmm4,zmm10 + vpxorq zmm24,zmm0,zmm6 + vpxorq zmm25,zmm3,zmm7 + vpternlogq zmm26,zmm5,zmm11,0x96 + vmovdqa64 zmm13,ZMMWORD[896+rsp] + vmovdqu64 zmm12,ZMMWORD[128+rbx*1+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[960+rsp] + vmovdqu64 zmm12,ZMMWORD[192+rbx*1+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + + vpternlogq zmm26,zmm4,zmm10,0x96 + vpternlogq zmm24,zmm0,zmm6,0x96 + vpternlogq zmm25,zmm3,zmm7,0x96 + vpternlogq zmm26,zmm5,zmm11,0x96 + + vpsrldq zmm0,zmm26,8 + vpslldq zmm3,zmm26,8 + vpxorq zmm24,zmm24,zmm0 + vpxorq zmm25,zmm25,zmm3 + vextracti64x4 ymm0,zmm24,1 + vpxorq ymm24,ymm24,ymm0 + vextracti32x4 xmm0,ymm24,1 + vpxorq xmm24,xmm24,xmm0 + vextracti64x4 ymm3,zmm25,1 + vpxorq ymm25,ymm25,ymm3 + vextracti32x4 xmm3,ymm25,1 + vpxorq xmm25,xmm25,xmm3 + vmovdqa64 xmm4,XMMWORD[POLY2] + + + vpclmulqdq xmm0,xmm4,xmm25,0x01 + vpslldq xmm0,xmm0,8 + vpxorq xmm0,xmm25,xmm0 + + + vpclmulqdq xmm3,xmm4,xmm0,0x00 + vpsrldq xmm3,xmm3,4 + vpclmulqdq xmm14,xmm4,xmm0,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm3,xmm24,0x96 + +$L$_last_blocks_done_378: + vpshufb xmm2,xmm2,xmm29 + jmp NEAR $L$_ghash_done_334 +$L$_encrypt_16_blocks_334: + cmp r15b,240 + jae NEAR $L$_16_blocks_overflow_411 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_411 +$L$_16_blocks_overflow_411: + vpshufb zmm2,zmm2,zmm29 + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_411: + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rsp] + + + + + vshufi64x2 zmm2,zmm5,zmm5,255 + add r15b,16 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + + + + + + + + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + + vpclmulqdq zmm6,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + + vpternlogq zmm6,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + + + + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm21,ZMMWORD[192+r11*1+r9] + + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm26,zmm10,zmm15 + vpxorq zmm24,zmm6,zmm12 + vpxorq zmm25,zmm7,zmm13 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + + + + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + + + + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[192+r11*1+r10],zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 + vmovdqa64 ZMMWORD[1280+rsp],zmm0 + vmovdqa64 ZMMWORD[1344+rsp],zmm3 + vmovdqa64 ZMMWORD[1408+rsp],zmm4 + vmovdqa64 ZMMWORD[1472+rsp],zmm5 + vmovdqa64 zmm13,ZMMWORD[1024+rsp] + vmovdqu64 zmm12,ZMMWORD[256+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[1088+rsp] + vmovdqu64 zmm12,ZMMWORD[320+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + vpternlogq zmm26,zmm4,zmm10,0x96 + vpternlogq zmm24,zmm0,zmm6,0x96 + vpternlogq zmm25,zmm3,zmm7,0x96 + vpternlogq zmm26,zmm5,zmm11,0x96 + vmovdqa64 zmm13,ZMMWORD[1152+rsp] + vmovdqu64 zmm12,ZMMWORD[384+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[1216+rsp] + vmovdqu64 zmm12,ZMMWORD[448+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + + vpternlogq zmm26,zmm4,zmm10,0x96 + vpternlogq zmm24,zmm0,zmm6,0x96 + vpternlogq zmm25,zmm3,zmm7,0x96 + vpternlogq zmm26,zmm5,zmm11,0x96 + sub r13,256 + add r11,256 + mov r10d,r13d + add r10d,15 + shr r10d,4 + je NEAR $L$_last_num_blocks_is_0_412 + + cmp r10d,8 + je NEAR $L$_last_num_blocks_is_8_412 + jb NEAR $L$_last_num_blocks_is_7_1_412 + + + cmp r10d,12 + je NEAR $L$_last_num_blocks_is_12_412 + jb NEAR $L$_last_num_blocks_is_11_9_412 + + + cmp r10d,15 + je NEAR $L$_last_num_blocks_is_15_412 + ja NEAR $L$_last_num_blocks_is_16_412 + cmp r10d,14 + je NEAR $L$_last_num_blocks_is_14_412 + jmp NEAR $L$_last_num_blocks_is_13_412 + +$L$_last_num_blocks_is_11_9_412: + + cmp r10d,10 + je NEAR $L$_last_num_blocks_is_10_412 + ja NEAR $L$_last_num_blocks_is_11_412 + jmp NEAR $L$_last_num_blocks_is_9_412 + +$L$_last_num_blocks_is_7_1_412: + cmp r10d,4 + je NEAR $L$_last_num_blocks_is_4_412 + jb NEAR $L$_last_num_blocks_is_3_1_412 + + cmp r10d,6 + ja NEAR $L$_last_num_blocks_is_7_412 + je NEAR $L$_last_num_blocks_is_6_412 + jmp NEAR $L$_last_num_blocks_is_5_412 + +$L$_last_num_blocks_is_3_1_412: + + cmp r10d,2 + ja NEAR $L$_last_num_blocks_is_3_412 + je NEAR $L$_last_num_blocks_is_2_412 +$L$_last_num_blocks_is_1_412: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,255 + jae NEAR $L$_16_blocks_overflow_413 + vpaddd xmm0,xmm2,xmm28 + jmp NEAR $L$_16_blocks_ok_413 + +$L$_16_blocks_overflow_413: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb xmm0,xmm0,xmm29 +$L$_16_blocks_ok_413: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm0,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 xmm17{k1}{z},[r11*1+r9] + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc xmm0,xmm0,xmm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc xmm0,xmm0,xmm31 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast xmm0,xmm0,xmm30 + vpxorq xmm0,xmm0,xmm17 + vextracti32x4 xmm11,zmm0,0 + mov r10,QWORD[120+rbp] + vmovdqu8 XMMWORD[r11*1+r10]{k1},xmm0 + vmovdqu8 zmm0{k1}{z},zmm0 + vpshufb xmm17,xmm0,xmm29 + vextracti32x4 xmm7,zmm17,0 + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_414 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm17,xmm1,0x01 + vpclmulqdq xmm5,xmm17,xmm1,0x10 + vpclmulqdq xmm0,xmm17,xmm1,0x11 + vpclmulqdq xmm3,xmm17,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_414 +$L$_small_initial_partial_block_414: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + + + + + + + + + + + + vpxorq xmm14,xmm14,xmm7 + + jmp NEAR $L$_after_reduction_414 +$L$_small_initial_compute_done_414: +$L$_after_reduction_414: + jmp NEAR $L$_last_blocks_done_412 +$L$_last_num_blocks_is_2_412: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,254 + jae NEAR $L$_16_blocks_overflow_415 + vpaddd ymm0,ymm2,ymm28 + jmp NEAR $L$_16_blocks_ok_415 + +$L$_16_blocks_overflow_415: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb ymm0,ymm0,ymm29 +$L$_16_blocks_ok_415: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm0,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 ymm17{k1}{z},[r11*1+r9] + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc ymm0,ymm0,ymm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc ymm0,ymm0,ymm31 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast ymm0,ymm0,ymm30 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm11,zmm0,1 + mov r10,QWORD[120+rbp] + vmovdqu8 YMMWORD[r11*1+r10]{k1},ymm0 + vmovdqu8 zmm0{k1}{z},zmm0 + vpshufb ymm17,ymm0,ymm29 + vextracti32x4 xmm7,zmm17,1 + sub r13,16 * (2 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_416 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm17,ymm1,0x01 + vpclmulqdq ymm5,ymm17,ymm1,0x10 + vpclmulqdq ymm0,ymm17,ymm1,0x11 + vpclmulqdq ymm3,ymm17,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_416 +$L$_small_initial_partial_block_416: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm17,xmm1,0x01 + vpclmulqdq xmm5,xmm17,xmm1,0x10 + vpclmulqdq xmm0,xmm17,xmm1,0x11 + vpclmulqdq xmm3,xmm17,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_416: + + or r13,r13 + je NEAR $L$_after_reduction_416 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_416: + jmp NEAR $L$_last_blocks_done_412 +$L$_last_num_blocks_is_3_412: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,253 + jae NEAR $L$_16_blocks_overflow_417 + vpaddd zmm0,zmm2,zmm28 + jmp NEAR $L$_16_blocks_ok_417 + +$L$_16_blocks_overflow_417: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb zmm0,zmm0,zmm29 +$L$_16_blocks_ok_417: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm0,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17{k1}{z},[r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vpxorq zmm0,zmm0,zmm17 + vextracti32x4 xmm11,zmm0,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10]{k1},zmm0 + vmovdqu8 zmm0{k1}{z},zmm0 + vpshufb zmm17,zmm0,zmm29 + vextracti32x4 xmm7,zmm17,2 + sub r13,16 * (3 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_418 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_418 +$L$_small_initial_partial_block_418: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm17,ymm1,0x01 + vpclmulqdq ymm5,ymm17,ymm1,0x10 + vpclmulqdq ymm0,ymm17,ymm1,0x11 + vpclmulqdq ymm3,ymm17,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_418: + + or r13,r13 + je NEAR $L$_after_reduction_418 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_418: + jmp NEAR $L$_last_blocks_done_412 +$L$_last_num_blocks_is_4_412: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,252 + jae NEAR $L$_16_blocks_overflow_419 + vpaddd zmm0,zmm2,zmm28 + jmp NEAR $L$_16_blocks_ok_419 + +$L$_16_blocks_overflow_419: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb zmm0,zmm0,zmm29 +$L$_16_blocks_ok_419: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm0,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17{k1}{z},[r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vpxorq zmm0,zmm0,zmm17 + vextracti32x4 xmm11,zmm0,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10]{k1},zmm0 + vmovdqu8 zmm0{k1}{z},zmm0 + vpshufb zmm17,zmm0,zmm29 + vextracti32x4 xmm7,zmm17,3 + sub r13,16 * (4 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_420 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_420 +$L$_small_initial_partial_block_420: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_420: + + or r13,r13 + je NEAR $L$_after_reduction_420 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_420: + jmp NEAR $L$_last_blocks_done_412 +$L$_last_num_blocks_is_5_412: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,251 + jae NEAR $L$_16_blocks_overflow_421 + vpaddd zmm0,zmm2,zmm28 + vpaddd xmm3,xmm0,xmm27 + jmp NEAR $L$_16_blocks_ok_421 + +$L$_16_blocks_overflow_421: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb xmm3,xmm3,xmm29 +$L$_16_blocks_ok_421: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm3,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 xmm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast xmm3,xmm3,xmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq xmm3,xmm3,xmm19 + vextracti32x4 xmm11,zmm3,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 XMMWORD[64+r11*1+r10]{k1},xmm3 + vmovdqu8 zmm3{k1}{z},zmm3 + vpshufb zmm17,zmm0,zmm29 + vpshufb xmm19,xmm3,xmm29 + vextracti32x4 xmm7,zmm19,0 + sub r13,16 * (5 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_422 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm19,xmm1,0x01 + vpclmulqdq xmm5,xmm19,xmm1,0x10 + vpclmulqdq xmm0,xmm19,xmm1,0x11 + vpclmulqdq xmm3,xmm19,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_422 +$L$_small_initial_partial_block_422: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_422: + + or r13,r13 + je NEAR $L$_after_reduction_422 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_422: + jmp NEAR $L$_last_blocks_done_412 +$L$_last_num_blocks_is_6_412: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,250 + jae NEAR $L$_16_blocks_overflow_423 + vpaddd zmm0,zmm2,zmm28 + vpaddd ymm3,ymm0,ymm27 + jmp NEAR $L$_16_blocks_ok_423 + +$L$_16_blocks_overflow_423: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb ymm3,ymm3,ymm29 +$L$_16_blocks_ok_423: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm3,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 ymm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast ymm3,ymm3,ymm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm11,zmm3,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 YMMWORD[64+r11*1+r10]{k1},ymm3 + vmovdqu8 zmm3{k1}{z},zmm3 + vpshufb zmm17,zmm0,zmm29 + vpshufb ymm19,ymm3,ymm29 + vextracti32x4 xmm7,zmm19,1 + sub r13,16 * (6 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_424 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm19,ymm1,0x01 + vpclmulqdq ymm5,ymm19,ymm1,0x10 + vpclmulqdq ymm0,ymm19,ymm1,0x11 + vpclmulqdq ymm3,ymm19,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_424 +$L$_small_initial_partial_block_424: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm19,xmm1,0x01 + vpclmulqdq xmm5,xmm19,xmm1,0x10 + vpclmulqdq xmm0,xmm19,xmm1,0x11 + vpclmulqdq xmm3,xmm19,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_424: + + or r13,r13 + je NEAR $L$_after_reduction_424 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_424: + jmp NEAR $L$_last_blocks_done_412 +$L$_last_num_blocks_is_7_412: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,249 + jae NEAR $L$_16_blocks_overflow_425 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + jmp NEAR $L$_16_blocks_ok_425 + +$L$_16_blocks_overflow_425: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 +$L$_16_blocks_ok_425: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm3,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti32x4 xmm11,zmm3,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10]{k1},zmm3 + vmovdqu8 zmm3{k1}{z},zmm3 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vextracti32x4 xmm7,zmm19,2 + sub r13,16 * (7 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_426 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm19,zmm1,0x01 + vpclmulqdq zmm5,zmm19,zmm1,0x10 + vpclmulqdq zmm0,zmm19,zmm1,0x11 + vpclmulqdq zmm3,zmm19,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_426 +$L$_small_initial_partial_block_426: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm19,ymm1,0x01 + vpclmulqdq ymm5,ymm19,ymm1,0x10 + vpclmulqdq ymm0,ymm19,ymm1,0x11 + vpclmulqdq ymm3,ymm19,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_426: + + or r13,r13 + je NEAR $L$_after_reduction_426 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_426: + jmp NEAR $L$_last_blocks_done_412 +$L$_last_num_blocks_is_8_412: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,248 + jae NEAR $L$_16_blocks_overflow_427 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + jmp NEAR $L$_16_blocks_ok_427 + +$L$_16_blocks_overflow_427: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 +$L$_16_blocks_ok_427: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm3,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti32x4 xmm11,zmm3,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10]{k1},zmm3 + vmovdqu8 zmm3{k1}{z},zmm3 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vextracti32x4 xmm7,zmm19,3 + sub r13,16 * (8 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_428 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_428 +$L$_small_initial_partial_block_428: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm19,zmm1,0x01 + vpclmulqdq zmm5,zmm19,zmm1,0x10 + vpclmulqdq zmm0,zmm19,zmm1,0x11 + vpclmulqdq zmm3,zmm19,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_428: + + or r13,r13 + je NEAR $L$_after_reduction_428 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_428: + jmp NEAR $L$_last_blocks_done_412 +$L$_last_num_blocks_is_9_412: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,247 + jae NEAR $L$_16_blocks_overflow_429 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd xmm4,xmm3,xmm27 + jmp NEAR $L$_16_blocks_ok_429 + +$L$_16_blocks_overflow_429: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb xmm4,xmm4,xmm29 +$L$_16_blocks_ok_429: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm4,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 xmm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast xmm4,xmm4,xmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq xmm4,xmm4,xmm20 + vextracti32x4 xmm11,zmm4,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 XMMWORD[128+r11*1+r10]{k1},xmm4 + vmovdqu8 zmm4{k1}{z},zmm4 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb xmm20,xmm4,xmm29 + vextracti32x4 xmm7,zmm20,0 + sub r13,16 * (9 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_430 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm20,xmm1,0x01 + vpclmulqdq xmm5,xmm20,xmm1,0x10 + vpclmulqdq xmm0,xmm20,xmm1,0x11 + vpclmulqdq xmm3,xmm20,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_430 +$L$_small_initial_partial_block_430: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_430: + + or r13,r13 + je NEAR $L$_after_reduction_430 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_430: + jmp NEAR $L$_last_blocks_done_412 +$L$_last_num_blocks_is_10_412: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,246 + jae NEAR $L$_16_blocks_overflow_431 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd ymm4,ymm3,ymm27 + jmp NEAR $L$_16_blocks_ok_431 + +$L$_16_blocks_overflow_431: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb ymm4,ymm4,ymm29 +$L$_16_blocks_ok_431: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm4,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 ymm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast ymm4,ymm4,ymm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq ymm4,ymm4,ymm20 + vextracti32x4 xmm11,zmm4,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 YMMWORD[128+r11*1+r10]{k1},ymm4 + vmovdqu8 zmm4{k1}{z},zmm4 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb ymm20,ymm4,ymm29 + vextracti32x4 xmm7,zmm20,1 + sub r13,16 * (10 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_432 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm20,ymm1,0x01 + vpclmulqdq ymm5,ymm20,ymm1,0x10 + vpclmulqdq ymm0,ymm20,ymm1,0x11 + vpclmulqdq ymm3,ymm20,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_432 +$L$_small_initial_partial_block_432: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm20,xmm1,0x01 + vpclmulqdq xmm5,xmm20,xmm1,0x10 + vpclmulqdq xmm0,xmm20,xmm1,0x11 + vpclmulqdq xmm3,xmm20,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_432: + + or r13,r13 + je NEAR $L$_after_reduction_432 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_432: + jmp NEAR $L$_last_blocks_done_412 +$L$_last_num_blocks_is_11_412: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,245 + jae NEAR $L$_16_blocks_overflow_433 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + jmp NEAR $L$_16_blocks_ok_433 + +$L$_16_blocks_overflow_433: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 +$L$_16_blocks_ok_433: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm4,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vextracti32x4 xmm11,zmm4,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10]{k1},zmm4 + vmovdqu8 zmm4{k1}{z},zmm4 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb zmm20,zmm4,zmm29 + vextracti32x4 xmm7,zmm20,2 + sub r13,16 * (11 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_434 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm20,zmm1,0x01 + vpclmulqdq zmm5,zmm20,zmm1,0x10 + vpclmulqdq zmm0,zmm20,zmm1,0x11 + vpclmulqdq zmm3,zmm20,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_434 +$L$_small_initial_partial_block_434: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm20,ymm1,0x01 + vpclmulqdq ymm5,ymm20,ymm1,0x10 + vpclmulqdq ymm0,ymm20,ymm1,0x11 + vpclmulqdq ymm3,ymm20,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_434: + + or r13,r13 + je NEAR $L$_after_reduction_434 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_434: + jmp NEAR $L$_last_blocks_done_412 +$L$_last_num_blocks_is_12_412: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,244 + jae NEAR $L$_16_blocks_overflow_435 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + jmp NEAR $L$_16_blocks_ok_435 + +$L$_16_blocks_overflow_435: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 +$L$_16_blocks_ok_435: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm4,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vextracti32x4 xmm11,zmm4,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10]{k1},zmm4 + vmovdqu8 zmm4{k1}{z},zmm4 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb zmm20,zmm4,zmm29 + vextracti32x4 xmm7,zmm20,3 + sub r13,16 * (12 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_436 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[160+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_436 +$L$_small_initial_partial_block_436: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm20,zmm1,0x01 + vpclmulqdq zmm5,zmm20,zmm1,0x10 + vpclmulqdq zmm0,zmm20,zmm1,0x11 + vpclmulqdq zmm3,zmm20,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_436: + + or r13,r13 + je NEAR $L$_after_reduction_436 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_436: + jmp NEAR $L$_last_blocks_done_412 +$L$_last_num_blocks_is_13_412: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,243 + jae NEAR $L$_16_blocks_overflow_437 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd xmm5,xmm4,xmm27 + jmp NEAR $L$_16_blocks_ok_437 + +$L$_16_blocks_overflow_437: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb xmm5,xmm5,xmm29 +$L$_16_blocks_ok_437: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm5,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 xmm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast xmm5,xmm5,xmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq xmm5,xmm5,xmm21 + vextracti32x4 xmm11,zmm5,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 XMMWORD[192+r11*1+r10]{k1},xmm5 + vmovdqu8 zmm5{k1}{z},zmm5 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb zmm20,zmm4,zmm29 + vpshufb xmm21,xmm5,xmm29 + vextracti32x4 xmm7,zmm21,0 + sub r13,16 * (13 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_438 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[144+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm21,xmm1,0x01 + vpclmulqdq xmm5,xmm21,xmm1,0x10 + vpclmulqdq xmm0,xmm21,xmm1,0x11 + vpclmulqdq xmm3,xmm21,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_438 +$L$_small_initial_partial_block_438: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[160+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_438: + + or r13,r13 + je NEAR $L$_after_reduction_438 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_438: + jmp NEAR $L$_last_blocks_done_412 +$L$_last_num_blocks_is_14_412: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,242 + jae NEAR $L$_16_blocks_overflow_439 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd ymm5,ymm4,ymm27 + jmp NEAR $L$_16_blocks_ok_439 + +$L$_16_blocks_overflow_439: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb ymm5,ymm5,ymm29 +$L$_16_blocks_ok_439: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm5,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 ymm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast ymm5,ymm5,ymm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq ymm5,ymm5,ymm21 + vextracti32x4 xmm11,zmm5,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 YMMWORD[192+r11*1+r10]{k1},ymm5 + vmovdqu8 zmm5{k1}{z},zmm5 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb zmm20,zmm4,zmm29 + vpshufb ymm21,ymm5,ymm29 + vextracti32x4 xmm7,zmm21,1 + sub r13,16 * (14 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_440 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[128+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm21,ymm1,0x01 + vpclmulqdq ymm5,ymm21,ymm1,0x10 + vpclmulqdq ymm0,ymm21,ymm1,0x11 + vpclmulqdq ymm3,ymm21,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_440 +$L$_small_initial_partial_block_440: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[144+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm21,xmm1,0x01 + vpclmulqdq xmm5,xmm21,xmm1,0x10 + vpclmulqdq xmm0,xmm21,xmm1,0x11 + vpclmulqdq xmm3,xmm21,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_440: + + or r13,r13 + je NEAR $L$_after_reduction_440 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_440: + jmp NEAR $L$_last_blocks_done_412 +$L$_last_num_blocks_is_15_412: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,241 + jae NEAR $L$_16_blocks_overflow_441 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_441 + +$L$_16_blocks_overflow_441: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_441: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm5,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + vextracti32x4 xmm11,zmm5,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[192+r11*1+r10]{k1},zmm5 + vmovdqu8 zmm5{k1}{z},zmm5 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb zmm20,zmm4,zmm29 + vpshufb zmm21,zmm5,zmm29 + vextracti32x4 xmm7,zmm21,2 + sub r13,16 * (15 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_442 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[112+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm21,zmm1,0x01 + vpclmulqdq zmm5,zmm21,zmm1,0x10 + vpclmulqdq zmm0,zmm21,zmm1,0x11 + vpclmulqdq zmm3,zmm21,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_442 +$L$_small_initial_partial_block_442: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[128+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm21,ymm1,0x01 + vpclmulqdq ymm5,ymm21,ymm1,0x10 + vpclmulqdq ymm0,ymm21,ymm1,0x11 + vpclmulqdq ymm3,ymm21,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_442: + + or r13,r13 + je NEAR $L$_after_reduction_442 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_442: + jmp NEAR $L$_last_blocks_done_412 +$L$_last_num_blocks_is_16_412: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,240 + jae NEAR $L$_16_blocks_overflow_443 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_443 + +$L$_16_blocks_overflow_443: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_443: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm5,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + vextracti32x4 xmm11,zmm5,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[192+r11*1+r10]{k1},zmm5 + vmovdqu8 zmm5{k1}{z},zmm5 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb zmm20,zmm4,zmm29 + vpshufb zmm21,zmm5,zmm29 + vextracti32x4 xmm7,zmm21,3 + sub r13,16 * (16 - 1) +$L$_small_initial_partial_block_444: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[112+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm21,zmm1,0x01 + vpclmulqdq zmm5,zmm21,zmm1,0x10 + vpclmulqdq zmm0,zmm21,zmm1,0x11 + vpclmulqdq zmm3,zmm21,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_444: + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_444: + jmp NEAR $L$_last_blocks_done_412 +$L$_last_num_blocks_is_0_412: + vmovdqa64 zmm13,ZMMWORD[1280+rsp] + vmovdqu64 zmm12,ZMMWORD[512+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[1344+rsp] + vmovdqu64 zmm12,ZMMWORD[576+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + vpternlogq zmm26,zmm4,zmm10,0x96 + vpternlogq zmm24,zmm0,zmm6,0x96 + vpternlogq zmm25,zmm3,zmm7,0x96 + vpternlogq zmm26,zmm5,zmm11,0x96 + vmovdqa64 zmm13,ZMMWORD[1408+rsp] + vmovdqu64 zmm12,ZMMWORD[640+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[1472+rsp] + vmovdqu64 zmm12,ZMMWORD[704+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + + vpternlogq zmm26,zmm4,zmm10,0x96 + vpternlogq zmm24,zmm0,zmm6,0x96 + vpternlogq zmm25,zmm3,zmm7,0x96 + vpternlogq zmm26,zmm5,zmm11,0x96 + + vpsrldq zmm0,zmm26,8 + vpslldq zmm3,zmm26,8 + vpxorq zmm24,zmm24,zmm0 + vpxorq zmm25,zmm25,zmm3 + vextracti64x4 ymm0,zmm24,1 + vpxorq ymm24,ymm24,ymm0 + vextracti32x4 xmm0,ymm24,1 + vpxorq xmm24,xmm24,xmm0 + vextracti64x4 ymm3,zmm25,1 + vpxorq ymm25,ymm25,ymm3 + vextracti32x4 xmm3,ymm25,1 + vpxorq xmm25,xmm25,xmm3 + vmovdqa64 xmm4,XMMWORD[POLY2] + + + vpclmulqdq xmm0,xmm4,xmm25,0x01 + vpslldq xmm0,xmm0,8 + vpxorq xmm0,xmm25,xmm0 + + + vpclmulqdq xmm3,xmm4,xmm0,0x00 + vpsrldq xmm3,xmm3,4 + vpclmulqdq xmm14,xmm4,xmm0,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm3,xmm24,0x96 + +$L$_last_blocks_done_412: + vpshufb xmm2,xmm2,xmm29 + jmp NEAR $L$_ghash_done_334 + +$L$_message_below_32_blocks_334: + + + sub r13,256 + add r11,256 + mov r10d,r13d + test r14,r14 + jnz NEAR $L$_skip_hkeys_precomputation_445 + vmovdqu64 zmm3,ZMMWORD[640+rsp] + + + vshufi64x2 zmm3,zmm3,zmm3,0x00 + + vmovdqu64 zmm4,ZMMWORD[576+rsp] + vmovdqu64 zmm5,ZMMWORD[512+rsp] + + vpclmulqdq zmm6,zmm4,zmm3,0x11 + vpclmulqdq zmm7,zmm4,zmm3,0x00 + vpclmulqdq zmm10,zmm4,zmm3,0x01 + vpclmulqdq zmm4,zmm4,zmm3,0x10 + vpxorq zmm4,zmm4,zmm10 + + vpsrldq zmm10,zmm4,8 + vpslldq zmm4,zmm4,8 + vpxorq zmm6,zmm6,zmm10 + vpxorq zmm4,zmm4,zmm7 + + + + vmovdqu64 zmm10,ZMMWORD[POLY2] + + vpclmulqdq zmm7,zmm10,zmm4,0x01 + vpslldq zmm7,zmm7,8 + vpxorq zmm4,zmm4,zmm7 + + + + vpclmulqdq zmm7,zmm10,zmm4,0x00 + vpsrldq zmm7,zmm7,4 + vpclmulqdq zmm4,zmm10,zmm4,0x10 + vpslldq zmm4,zmm4,4 + + vpternlogq zmm4,zmm6,zmm7,0x96 + + vmovdqu64 ZMMWORD[448+rsp],zmm4 + + vpclmulqdq zmm6,zmm5,zmm3,0x11 + vpclmulqdq zmm7,zmm5,zmm3,0x00 + vpclmulqdq zmm10,zmm5,zmm3,0x01 + vpclmulqdq zmm5,zmm5,zmm3,0x10 + vpxorq zmm5,zmm5,zmm10 + + vpsrldq zmm10,zmm5,8 + vpslldq zmm5,zmm5,8 + vpxorq zmm6,zmm6,zmm10 + vpxorq zmm5,zmm5,zmm7 + + + + vmovdqu64 zmm10,ZMMWORD[POLY2] + + vpclmulqdq zmm7,zmm10,zmm5,0x01 + vpslldq zmm7,zmm7,8 + vpxorq zmm5,zmm5,zmm7 + + + + vpclmulqdq zmm7,zmm10,zmm5,0x00 + vpsrldq zmm7,zmm7,4 + vpclmulqdq zmm5,zmm10,zmm5,0x10 + vpslldq zmm5,zmm5,4 + + vpternlogq zmm5,zmm6,zmm7,0x96 + + vmovdqu64 ZMMWORD[384+rsp],zmm5 + + vpclmulqdq zmm6,zmm4,zmm3,0x11 + vpclmulqdq zmm7,zmm4,zmm3,0x00 + vpclmulqdq zmm10,zmm4,zmm3,0x01 + vpclmulqdq zmm4,zmm4,zmm3,0x10 + vpxorq zmm4,zmm4,zmm10 + + vpsrldq zmm10,zmm4,8 + vpslldq zmm4,zmm4,8 + vpxorq zmm6,zmm6,zmm10 + vpxorq zmm4,zmm4,zmm7 + + + + vmovdqu64 zmm10,ZMMWORD[POLY2] + + vpclmulqdq zmm7,zmm10,zmm4,0x01 + vpslldq zmm7,zmm7,8 + vpxorq zmm4,zmm4,zmm7 + + + + vpclmulqdq zmm7,zmm10,zmm4,0x00 + vpsrldq zmm7,zmm7,4 + vpclmulqdq zmm4,zmm10,zmm4,0x10 + vpslldq zmm4,zmm4,4 + + vpternlogq zmm4,zmm6,zmm7,0x96 + + vmovdqu64 ZMMWORD[320+rsp],zmm4 + + vpclmulqdq zmm6,zmm5,zmm3,0x11 + vpclmulqdq zmm7,zmm5,zmm3,0x00 + vpclmulqdq zmm10,zmm5,zmm3,0x01 + vpclmulqdq zmm5,zmm5,zmm3,0x10 + vpxorq zmm5,zmm5,zmm10 + + vpsrldq zmm10,zmm5,8 + vpslldq zmm5,zmm5,8 + vpxorq zmm6,zmm6,zmm10 + vpxorq zmm5,zmm5,zmm7 + + + + vmovdqu64 zmm10,ZMMWORD[POLY2] + + vpclmulqdq zmm7,zmm10,zmm5,0x01 + vpslldq zmm7,zmm7,8 + vpxorq zmm5,zmm5,zmm7 + + + + vpclmulqdq zmm7,zmm10,zmm5,0x00 + vpsrldq zmm7,zmm7,4 + vpclmulqdq zmm5,zmm10,zmm5,0x10 + vpslldq zmm5,zmm5,4 + + vpternlogq zmm5,zmm6,zmm7,0x96 + + vmovdqu64 ZMMWORD[256+rsp],zmm5 +$L$_skip_hkeys_precomputation_445: + mov r14,1 + and r10d,~15 + mov ebx,512 + sub ebx,r10d + mov r10d,r13d + add r10d,15 + shr r10d,4 + je NEAR $L$_last_num_blocks_is_0_446 + + cmp r10d,8 + je NEAR $L$_last_num_blocks_is_8_446 + jb NEAR $L$_last_num_blocks_is_7_1_446 + + + cmp r10d,12 + je NEAR $L$_last_num_blocks_is_12_446 + jb NEAR $L$_last_num_blocks_is_11_9_446 + + + cmp r10d,15 + je NEAR $L$_last_num_blocks_is_15_446 + ja NEAR $L$_last_num_blocks_is_16_446 + cmp r10d,14 + je NEAR $L$_last_num_blocks_is_14_446 + jmp NEAR $L$_last_num_blocks_is_13_446 + +$L$_last_num_blocks_is_11_9_446: + + cmp r10d,10 + je NEAR $L$_last_num_blocks_is_10_446 + ja NEAR $L$_last_num_blocks_is_11_446 + jmp NEAR $L$_last_num_blocks_is_9_446 + +$L$_last_num_blocks_is_7_1_446: + cmp r10d,4 + je NEAR $L$_last_num_blocks_is_4_446 + jb NEAR $L$_last_num_blocks_is_3_1_446 + + cmp r10d,6 + ja NEAR $L$_last_num_blocks_is_7_446 + je NEAR $L$_last_num_blocks_is_6_446 + jmp NEAR $L$_last_num_blocks_is_5_446 + +$L$_last_num_blocks_is_3_1_446: + + cmp r10d,2 + ja NEAR $L$_last_num_blocks_is_3_446 + je NEAR $L$_last_num_blocks_is_2_446 +$L$_last_num_blocks_is_1_446: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,255 + jae NEAR $L$_16_blocks_overflow_447 + vpaddd xmm0,xmm2,xmm28 + jmp NEAR $L$_16_blocks_ok_447 + +$L$_16_blocks_overflow_447: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb xmm0,xmm0,xmm29 +$L$_16_blocks_ok_447: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm0,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 xmm17{k1}{z},[r11*1+r9] + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc xmm0,xmm0,xmm31 + vaesenclast xmm0,xmm0,xmm30 + vpxorq xmm0,xmm0,xmm17 + vextracti32x4 xmm11,zmm0,0 + mov r10,QWORD[120+rbp] + vmovdqu8 XMMWORD[r11*1+r10]{k1},xmm0 + vmovdqu8 zmm0{k1}{z},zmm0 + vpshufb xmm17,xmm0,xmm29 + vextracti32x4 xmm7,zmm17,0 + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_448 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm17,xmm1,0x01 + vpclmulqdq xmm5,xmm17,xmm1,0x10 + vpclmulqdq xmm0,xmm17,xmm1,0x11 + vpclmulqdq xmm3,xmm17,xmm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_448 +$L$_small_initial_partial_block_448: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + + + vpsrldq zmm0,zmm26,8 + vpslldq zmm3,zmm26,8 + vpxorq zmm24,zmm24,zmm0 + vpxorq zmm25,zmm25,zmm3 + vextracti64x4 ymm0,zmm24,1 + vpxorq ymm24,ymm24,ymm0 + vextracti32x4 xmm0,ymm24,1 + vpxorq xmm24,xmm24,xmm0 + vextracti64x4 ymm3,zmm25,1 + vpxorq ymm25,ymm25,ymm3 + vextracti32x4 xmm3,ymm25,1 + vpxorq xmm25,xmm25,xmm3 + vmovdqa64 xmm0,XMMWORD[POLY2] + + + vpclmulqdq xmm3,xmm0,xmm25,0x01 + vpslldq xmm3,xmm3,8 + vpxorq xmm3,xmm25,xmm3 + + + vpclmulqdq xmm4,xmm0,xmm3,0x00 + vpsrldq xmm4,xmm4,4 + vpclmulqdq xmm14,xmm0,xmm3,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm4,xmm24,0x96 + + + + + + + + + + + + + vpxorq xmm14,xmm14,xmm7 + + jmp NEAR $L$_after_reduction_448 +$L$_small_initial_compute_done_448: +$L$_after_reduction_448: + jmp NEAR $L$_last_blocks_done_446 +$L$_last_num_blocks_is_2_446: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,254 + jae NEAR $L$_16_blocks_overflow_449 + vpaddd ymm0,ymm2,ymm28 + jmp NEAR $L$_16_blocks_ok_449 + +$L$_16_blocks_overflow_449: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb ymm0,ymm0,ymm29 +$L$_16_blocks_ok_449: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm0,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 ymm17{k1}{z},[r11*1+r9] + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc ymm0,ymm0,ymm31 + vaesenclast ymm0,ymm0,ymm30 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm11,zmm0,1 + mov r10,QWORD[120+rbp] + vmovdqu8 YMMWORD[r11*1+r10]{k1},ymm0 + vmovdqu8 zmm0{k1}{z},zmm0 + vpshufb ymm17,ymm0,ymm29 + vextracti32x4 xmm7,zmm17,1 + sub r13,16 * (2 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_450 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm17,ymm1,0x01 + vpclmulqdq ymm5,ymm17,ymm1,0x10 + vpclmulqdq ymm0,ymm17,ymm1,0x11 + vpclmulqdq ymm3,ymm17,ymm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_450 +$L$_small_initial_partial_block_450: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm17,xmm1,0x01 + vpclmulqdq xmm5,xmm17,xmm1,0x10 + vpclmulqdq xmm0,xmm17,xmm1,0x11 + vpclmulqdq xmm3,xmm17,xmm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_450: + + or r13,r13 + je NEAR $L$_after_reduction_450 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_450: + jmp NEAR $L$_last_blocks_done_446 +$L$_last_num_blocks_is_3_446: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,253 + jae NEAR $L$_16_blocks_overflow_451 + vpaddd zmm0,zmm2,zmm28 + jmp NEAR $L$_16_blocks_ok_451 + +$L$_16_blocks_overflow_451: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb zmm0,zmm0,zmm29 +$L$_16_blocks_ok_451: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm0,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17{k1}{z},[r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vpxorq zmm0,zmm0,zmm17 + vextracti32x4 xmm11,zmm0,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10]{k1},zmm0 + vmovdqu8 zmm0{k1}{z},zmm0 + vpshufb zmm17,zmm0,zmm29 + vextracti32x4 xmm7,zmm17,2 + sub r13,16 * (3 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_452 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_452 +$L$_small_initial_partial_block_452: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm17,ymm1,0x01 + vpclmulqdq ymm5,ymm17,ymm1,0x10 + vpclmulqdq ymm0,ymm17,ymm1,0x11 + vpclmulqdq ymm3,ymm17,ymm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_452: + + or r13,r13 + je NEAR $L$_after_reduction_452 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_452: + jmp NEAR $L$_last_blocks_done_446 +$L$_last_num_blocks_is_4_446: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,252 + jae NEAR $L$_16_blocks_overflow_453 + vpaddd zmm0,zmm2,zmm28 + jmp NEAR $L$_16_blocks_ok_453 + +$L$_16_blocks_overflow_453: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb zmm0,zmm0,zmm29 +$L$_16_blocks_ok_453: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm0,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17{k1}{z},[r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vpxorq zmm0,zmm0,zmm17 + vextracti32x4 xmm11,zmm0,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10]{k1},zmm0 + vmovdqu8 zmm0{k1}{z},zmm0 + vpshufb zmm17,zmm0,zmm29 + vextracti32x4 xmm7,zmm17,3 + sub r13,16 * (4 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_454 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_454 +$L$_small_initial_partial_block_454: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_454: + + or r13,r13 + je NEAR $L$_after_reduction_454 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_454: + jmp NEAR $L$_last_blocks_done_446 +$L$_last_num_blocks_is_5_446: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,251 + jae NEAR $L$_16_blocks_overflow_455 + vpaddd zmm0,zmm2,zmm28 + vpaddd xmm3,xmm0,xmm27 + jmp NEAR $L$_16_blocks_ok_455 + +$L$_16_blocks_overflow_455: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb xmm3,xmm3,xmm29 +$L$_16_blocks_ok_455: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm3,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 xmm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast xmm3,xmm3,xmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq xmm3,xmm3,xmm19 + vextracti32x4 xmm11,zmm3,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 XMMWORD[64+r11*1+r10]{k1},xmm3 + vmovdqu8 zmm3{k1}{z},zmm3 + vpshufb zmm17,zmm0,zmm29 + vpshufb xmm19,xmm3,xmm29 + vextracti32x4 xmm7,zmm19,0 + sub r13,16 * (5 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_456 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm19,xmm1,0x01 + vpclmulqdq xmm5,xmm19,xmm1,0x10 + vpclmulqdq xmm0,xmm19,xmm1,0x11 + vpclmulqdq xmm3,xmm19,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_456 +$L$_small_initial_partial_block_456: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_456: + + or r13,r13 + je NEAR $L$_after_reduction_456 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_456: + jmp NEAR $L$_last_blocks_done_446 +$L$_last_num_blocks_is_6_446: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,250 + jae NEAR $L$_16_blocks_overflow_457 + vpaddd zmm0,zmm2,zmm28 + vpaddd ymm3,ymm0,ymm27 + jmp NEAR $L$_16_blocks_ok_457 + +$L$_16_blocks_overflow_457: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb ymm3,ymm3,ymm29 +$L$_16_blocks_ok_457: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm3,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 ymm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast ymm3,ymm3,ymm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm11,zmm3,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 YMMWORD[64+r11*1+r10]{k1},ymm3 + vmovdqu8 zmm3{k1}{z},zmm3 + vpshufb zmm17,zmm0,zmm29 + vpshufb ymm19,ymm3,ymm29 + vextracti32x4 xmm7,zmm19,1 + sub r13,16 * (6 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_458 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm19,ymm1,0x01 + vpclmulqdq ymm5,ymm19,ymm1,0x10 + vpclmulqdq ymm0,ymm19,ymm1,0x11 + vpclmulqdq ymm3,ymm19,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_458 +$L$_small_initial_partial_block_458: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm19,xmm1,0x01 + vpclmulqdq xmm5,xmm19,xmm1,0x10 + vpclmulqdq xmm0,xmm19,xmm1,0x11 + vpclmulqdq xmm3,xmm19,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_458: + + or r13,r13 + je NEAR $L$_after_reduction_458 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_458: + jmp NEAR $L$_last_blocks_done_446 +$L$_last_num_blocks_is_7_446: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,249 + jae NEAR $L$_16_blocks_overflow_459 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + jmp NEAR $L$_16_blocks_ok_459 + +$L$_16_blocks_overflow_459: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 +$L$_16_blocks_ok_459: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm3,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti32x4 xmm11,zmm3,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10]{k1},zmm3 + vmovdqu8 zmm3{k1}{z},zmm3 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vextracti32x4 xmm7,zmm19,2 + sub r13,16 * (7 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_460 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm19,zmm1,0x01 + vpclmulqdq zmm5,zmm19,zmm1,0x10 + vpclmulqdq zmm0,zmm19,zmm1,0x11 + vpclmulqdq zmm3,zmm19,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_460 +$L$_small_initial_partial_block_460: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm19,ymm1,0x01 + vpclmulqdq ymm5,ymm19,ymm1,0x10 + vpclmulqdq ymm0,ymm19,ymm1,0x11 + vpclmulqdq ymm3,ymm19,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_460: + + or r13,r13 + je NEAR $L$_after_reduction_460 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_460: + jmp NEAR $L$_last_blocks_done_446 +$L$_last_num_blocks_is_8_446: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,248 + jae NEAR $L$_16_blocks_overflow_461 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + jmp NEAR $L$_16_blocks_ok_461 + +$L$_16_blocks_overflow_461: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 +$L$_16_blocks_ok_461: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm3,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti32x4 xmm11,zmm3,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10]{k1},zmm3 + vmovdqu8 zmm3{k1}{z},zmm3 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vextracti32x4 xmm7,zmm19,3 + sub r13,16 * (8 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_462 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_462 +$L$_small_initial_partial_block_462: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm19,zmm1,0x01 + vpclmulqdq zmm5,zmm19,zmm1,0x10 + vpclmulqdq zmm0,zmm19,zmm1,0x11 + vpclmulqdq zmm3,zmm19,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_462: + + or r13,r13 + je NEAR $L$_after_reduction_462 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_462: + jmp NEAR $L$_last_blocks_done_446 +$L$_last_num_blocks_is_9_446: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,247 + jae NEAR $L$_16_blocks_overflow_463 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd xmm4,xmm3,xmm27 + jmp NEAR $L$_16_blocks_ok_463 + +$L$_16_blocks_overflow_463: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb xmm4,xmm4,xmm29 +$L$_16_blocks_ok_463: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm4,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 xmm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast xmm4,xmm4,xmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq xmm4,xmm4,xmm20 + vextracti32x4 xmm11,zmm4,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 XMMWORD[128+r11*1+r10]{k1},xmm4 + vmovdqu8 zmm4{k1}{z},zmm4 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb xmm20,xmm4,xmm29 + vextracti32x4 xmm7,zmm20,0 + sub r13,16 * (9 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_464 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm20,xmm1,0x01 + vpclmulqdq xmm5,xmm20,xmm1,0x10 + vpclmulqdq xmm0,xmm20,xmm1,0x11 + vpclmulqdq xmm3,xmm20,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_464 +$L$_small_initial_partial_block_464: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_464: + + or r13,r13 + je NEAR $L$_after_reduction_464 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_464: + jmp NEAR $L$_last_blocks_done_446 +$L$_last_num_blocks_is_10_446: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,246 + jae NEAR $L$_16_blocks_overflow_465 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd ymm4,ymm3,ymm27 + jmp NEAR $L$_16_blocks_ok_465 + +$L$_16_blocks_overflow_465: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb ymm4,ymm4,ymm29 +$L$_16_blocks_ok_465: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm4,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 ymm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast ymm4,ymm4,ymm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq ymm4,ymm4,ymm20 + vextracti32x4 xmm11,zmm4,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 YMMWORD[128+r11*1+r10]{k1},ymm4 + vmovdqu8 zmm4{k1}{z},zmm4 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb ymm20,ymm4,ymm29 + vextracti32x4 xmm7,zmm20,1 + sub r13,16 * (10 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_466 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm20,ymm1,0x01 + vpclmulqdq ymm5,ymm20,ymm1,0x10 + vpclmulqdq ymm0,ymm20,ymm1,0x11 + vpclmulqdq ymm3,ymm20,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_466 +$L$_small_initial_partial_block_466: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm20,xmm1,0x01 + vpclmulqdq xmm5,xmm20,xmm1,0x10 + vpclmulqdq xmm0,xmm20,xmm1,0x11 + vpclmulqdq xmm3,xmm20,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_466: + + or r13,r13 + je NEAR $L$_after_reduction_466 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_466: + jmp NEAR $L$_last_blocks_done_446 +$L$_last_num_blocks_is_11_446: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,245 + jae NEAR $L$_16_blocks_overflow_467 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + jmp NEAR $L$_16_blocks_ok_467 + +$L$_16_blocks_overflow_467: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 +$L$_16_blocks_ok_467: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm4,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vextracti32x4 xmm11,zmm4,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10]{k1},zmm4 + vmovdqu8 zmm4{k1}{z},zmm4 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb zmm20,zmm4,zmm29 + vextracti32x4 xmm7,zmm20,2 + sub r13,16 * (11 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_468 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm20,zmm1,0x01 + vpclmulqdq zmm5,zmm20,zmm1,0x10 + vpclmulqdq zmm0,zmm20,zmm1,0x11 + vpclmulqdq zmm3,zmm20,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_468 +$L$_small_initial_partial_block_468: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm20,ymm1,0x01 + vpclmulqdq ymm5,ymm20,ymm1,0x10 + vpclmulqdq ymm0,ymm20,ymm1,0x11 + vpclmulqdq ymm3,ymm20,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_468: + + or r13,r13 + je NEAR $L$_after_reduction_468 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_468: + jmp NEAR $L$_last_blocks_done_446 +$L$_last_num_blocks_is_12_446: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,244 + jae NEAR $L$_16_blocks_overflow_469 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + jmp NEAR $L$_16_blocks_ok_469 + +$L$_16_blocks_overflow_469: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 +$L$_16_blocks_ok_469: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm4,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vextracti32x4 xmm11,zmm4,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10]{k1},zmm4 + vmovdqu8 zmm4{k1}{z},zmm4 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb zmm20,zmm4,zmm29 + vextracti32x4 xmm7,zmm20,3 + sub r13,16 * (12 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_470 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[160+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_470 +$L$_small_initial_partial_block_470: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm20,zmm1,0x01 + vpclmulqdq zmm5,zmm20,zmm1,0x10 + vpclmulqdq zmm0,zmm20,zmm1,0x11 + vpclmulqdq zmm3,zmm20,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_470: + + or r13,r13 + je NEAR $L$_after_reduction_470 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_470: + jmp NEAR $L$_last_blocks_done_446 +$L$_last_num_blocks_is_13_446: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,243 + jae NEAR $L$_16_blocks_overflow_471 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd xmm5,xmm4,xmm27 + jmp NEAR $L$_16_blocks_ok_471 + +$L$_16_blocks_overflow_471: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb xmm5,xmm5,xmm29 +$L$_16_blocks_ok_471: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm5,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 xmm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast xmm5,xmm5,xmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq xmm5,xmm5,xmm21 + vextracti32x4 xmm11,zmm5,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 XMMWORD[192+r11*1+r10]{k1},xmm5 + vmovdqu8 zmm5{k1}{z},zmm5 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb zmm20,zmm4,zmm29 + vpshufb xmm21,xmm5,xmm29 + vextracti32x4 xmm7,zmm21,0 + sub r13,16 * (13 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_472 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[144+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm21,xmm1,0x01 + vpclmulqdq xmm5,xmm21,xmm1,0x10 + vpclmulqdq xmm0,xmm21,xmm1,0x11 + vpclmulqdq xmm3,xmm21,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_472 +$L$_small_initial_partial_block_472: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[160+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_472: + + or r13,r13 + je NEAR $L$_after_reduction_472 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_472: + jmp NEAR $L$_last_blocks_done_446 +$L$_last_num_blocks_is_14_446: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,242 + jae NEAR $L$_16_blocks_overflow_473 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd ymm5,ymm4,ymm27 + jmp NEAR $L$_16_blocks_ok_473 + +$L$_16_blocks_overflow_473: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb ymm5,ymm5,ymm29 +$L$_16_blocks_ok_473: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm5,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 ymm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast ymm5,ymm5,ymm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq ymm5,ymm5,ymm21 + vextracti32x4 xmm11,zmm5,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 YMMWORD[192+r11*1+r10]{k1},ymm5 + vmovdqu8 zmm5{k1}{z},zmm5 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb zmm20,zmm4,zmm29 + vpshufb ymm21,ymm5,ymm29 + vextracti32x4 xmm7,zmm21,1 + sub r13,16 * (14 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_474 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[128+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm21,ymm1,0x01 + vpclmulqdq ymm5,ymm21,ymm1,0x10 + vpclmulqdq ymm0,ymm21,ymm1,0x11 + vpclmulqdq ymm3,ymm21,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_474 +$L$_small_initial_partial_block_474: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[144+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm21,xmm1,0x01 + vpclmulqdq xmm5,xmm21,xmm1,0x10 + vpclmulqdq xmm0,xmm21,xmm1,0x11 + vpclmulqdq xmm3,xmm21,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_474: + + or r13,r13 + je NEAR $L$_after_reduction_474 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_474: + jmp NEAR $L$_last_blocks_done_446 +$L$_last_num_blocks_is_15_446: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,241 + jae NEAR $L$_16_blocks_overflow_475 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_475 + +$L$_16_blocks_overflow_475: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_475: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm5,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + vextracti32x4 xmm11,zmm5,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[192+r11*1+r10]{k1},zmm5 + vmovdqu8 zmm5{k1}{z},zmm5 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb zmm20,zmm4,zmm29 + vpshufb zmm21,zmm5,zmm29 + vextracti32x4 xmm7,zmm21,2 + sub r13,16 * (15 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_476 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[112+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm21,zmm1,0x01 + vpclmulqdq zmm5,zmm21,zmm1,0x10 + vpclmulqdq zmm0,zmm21,zmm1,0x11 + vpclmulqdq zmm3,zmm21,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_476 +$L$_small_initial_partial_block_476: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[128+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm21,ymm1,0x01 + vpclmulqdq ymm5,ymm21,ymm1,0x10 + vpclmulqdq ymm0,ymm21,ymm1,0x11 + vpclmulqdq ymm3,ymm21,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_476: + + or r13,r13 + je NEAR $L$_after_reduction_476 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_476: + jmp NEAR $L$_last_blocks_done_446 +$L$_last_num_blocks_is_16_446: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,240 + jae NEAR $L$_16_blocks_overflow_477 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_477 + +$L$_16_blocks_overflow_477: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_477: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm5,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + vextracti32x4 xmm11,zmm5,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[192+r11*1+r10]{k1},zmm5 + vmovdqu8 zmm5{k1}{z},zmm5 + vpshufb zmm17,zmm0,zmm29 + vpshufb zmm19,zmm3,zmm29 + vpshufb zmm20,zmm4,zmm29 + vpshufb zmm21,zmm5,zmm29 + vextracti32x4 xmm7,zmm21,3 + sub r13,16 * (16 - 1) +$L$_small_initial_partial_block_478: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[112+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm21,zmm1,0x01 + vpclmulqdq zmm5,zmm21,zmm1,0x10 + vpclmulqdq zmm0,zmm21,zmm1,0x11 + vpclmulqdq zmm3,zmm21,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_478: + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_478: + jmp NEAR $L$_last_blocks_done_446 +$L$_last_num_blocks_is_0_446: + vmovdqa64 zmm13,ZMMWORD[768+rsp] + vpxorq zmm13,zmm13,zmm14 + vmovdqu64 zmm12,ZMMWORD[rbx*1+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[832+rsp] + vmovdqu64 zmm12,ZMMWORD[64+rbx*1+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + vpxorq zmm26,zmm4,zmm10 + vpxorq zmm24,zmm0,zmm6 + vpxorq zmm25,zmm3,zmm7 + vpternlogq zmm26,zmm5,zmm11,0x96 + vmovdqa64 zmm13,ZMMWORD[896+rsp] + vmovdqu64 zmm12,ZMMWORD[128+rbx*1+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[960+rsp] + vmovdqu64 zmm12,ZMMWORD[192+rbx*1+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + + vpternlogq zmm26,zmm4,zmm10,0x96 + vpternlogq zmm24,zmm0,zmm6,0x96 + vpternlogq zmm25,zmm3,zmm7,0x96 + vpternlogq zmm26,zmm5,zmm11,0x96 + + vpsrldq zmm0,zmm26,8 + vpslldq zmm3,zmm26,8 + vpxorq zmm24,zmm24,zmm0 + vpxorq zmm25,zmm25,zmm3 + vextracti64x4 ymm0,zmm24,1 + vpxorq ymm24,ymm24,ymm0 + vextracti32x4 xmm0,ymm24,1 + vpxorq xmm24,xmm24,xmm0 + vextracti64x4 ymm3,zmm25,1 + vpxorq ymm25,ymm25,ymm3 + vextracti32x4 xmm3,ymm25,1 + vpxorq xmm25,xmm25,xmm3 + vmovdqa64 xmm4,XMMWORD[POLY2] + + + vpclmulqdq xmm0,xmm4,xmm25,0x01 + vpslldq xmm0,xmm0,8 + vpxorq xmm0,xmm25,xmm0 + + + vpclmulqdq xmm3,xmm4,xmm0,0x00 + vpsrldq xmm3,xmm3,4 + vpclmulqdq xmm14,xmm4,xmm0,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm3,xmm24,0x96 + +$L$_last_blocks_done_446: + vpshufb xmm2,xmm2,xmm29 + jmp NEAR $L$_ghash_done_334 + +$L$_message_below_equal_16_blocks_334: + + + mov r12d,r13d + add r12d,15 + shr r12d,4 + cmp r12,8 + je NEAR $L$_small_initial_num_blocks_is_8_479 + jl NEAR $L$_small_initial_num_blocks_is_7_1_479 + + + cmp r12,12 + je NEAR $L$_small_initial_num_blocks_is_12_479 + jl NEAR $L$_small_initial_num_blocks_is_11_9_479 + + + cmp r12,16 + je NEAR $L$_small_initial_num_blocks_is_16_479 + cmp r12,15 + je NEAR $L$_small_initial_num_blocks_is_15_479 + cmp r12,14 + je NEAR $L$_small_initial_num_blocks_is_14_479 + jmp NEAR $L$_small_initial_num_blocks_is_13_479 + +$L$_small_initial_num_blocks_is_11_9_479: + + cmp r12,11 + je NEAR $L$_small_initial_num_blocks_is_11_479 + cmp r12,10 + je NEAR $L$_small_initial_num_blocks_is_10_479 + jmp NEAR $L$_small_initial_num_blocks_is_9_479 + +$L$_small_initial_num_blocks_is_7_1_479: + cmp r12,4 + je NEAR $L$_small_initial_num_blocks_is_4_479 + jl NEAR $L$_small_initial_num_blocks_is_3_1_479 + + cmp r12,7 + je NEAR $L$_small_initial_num_blocks_is_7_479 + cmp r12,6 + je NEAR $L$_small_initial_num_blocks_is_6_479 + jmp NEAR $L$_small_initial_num_blocks_is_5_479 + +$L$_small_initial_num_blocks_is_3_1_479: + + cmp r12,3 + je NEAR $L$_small_initial_num_blocks_is_3_479 + cmp r12,2 + je NEAR $L$_small_initial_num_blocks_is_2_479 + + + + + +$L$_small_initial_num_blocks_is_1_479: + vmovdqa64 xmm29,XMMWORD[SHUF_MASK] + vpaddd xmm0,xmm2,XMMWORD[ONE] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm0,0 + vpshufb xmm0,xmm0,xmm29 + vmovdqu8 xmm6{k1}{z},[r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq xmm0,xmm0,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc xmm0,xmm0,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc xmm0,xmm0,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc xmm0,xmm0,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc xmm0,xmm0,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc xmm0,xmm0,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc xmm0,xmm0,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc xmm0,xmm0,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc xmm0,xmm0,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc xmm0,xmm0,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenc xmm0,xmm0,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[176+rcx] + vaesenc xmm0,xmm0,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[192+rcx] + vaesenc xmm0,xmm0,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[208+rcx] + vaesenc xmm0,xmm0,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[224+rcx] + vaesenclast xmm0,xmm0,xmm15 + vpxorq xmm0,xmm0,xmm6 + vextracti32x4 xmm12,zmm0,0 + mov r10,QWORD[120+rbp] + vmovdqu8 XMMWORD[r11*1+r10]{k1},xmm0 + vmovdqu8 zmm0{k1}{z},zmm0 + vpshufb xmm6,xmm0,xmm29 + vextracti32x4 xmm13,zmm6,0 + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_480 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 xmm20,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm6,xmm20,0x01 + vpclmulqdq xmm5,xmm6,xmm20,0x10 + vpclmulqdq xmm0,xmm6,xmm20,0x11 + vpclmulqdq xmm3,xmm6,xmm20,0x00 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_480 +$L$_small_initial_partial_block_480: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + + + + + + + + + + + + vpxorq xmm14,xmm14,xmm13 + + jmp NEAR $L$_after_reduction_480 +$L$_small_initial_compute_done_480: +$L$_after_reduction_480: + jmp NEAR $L$_small_initial_blocks_encrypted_479 +$L$_small_initial_num_blocks_is_2_479: + vmovdqa64 ymm29,YMMWORD[SHUF_MASK] + vshufi64x2 ymm0,ymm2,ymm2,0 + vpaddd ymm0,ymm0,YMMWORD[ddq_add_1234] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm0,1 + vpshufb ymm0,ymm0,ymm29 + vmovdqu8 ymm6{k1}{z},[r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq ymm0,ymm0,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc ymm0,ymm0,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc ymm0,ymm0,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc ymm0,ymm0,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc ymm0,ymm0,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc ymm0,ymm0,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc ymm0,ymm0,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc ymm0,ymm0,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc ymm0,ymm0,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc ymm0,ymm0,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenc ymm0,ymm0,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[176+rcx] + vaesenc ymm0,ymm0,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[192+rcx] + vaesenc ymm0,ymm0,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[208+rcx] + vaesenc ymm0,ymm0,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[224+rcx] + vaesenclast ymm0,ymm0,ymm15 + vpxorq ymm0,ymm0,ymm6 + vextracti32x4 xmm12,zmm0,1 + mov r10,QWORD[120+rbp] + vmovdqu8 YMMWORD[r11*1+r10]{k1},ymm0 + vmovdqu8 zmm0{k1}{z},zmm0 + vpshufb ymm6,ymm0,ymm29 + vextracti32x4 xmm13,zmm6,1 + sub r13,16 * (2 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_481 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 ymm20,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm6,ymm20,0x01 + vpclmulqdq ymm5,ymm6,ymm20,0x10 + vpclmulqdq ymm0,ymm6,ymm20,0x11 + vpclmulqdq ymm3,ymm6,ymm20,0x00 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_481 +$L$_small_initial_partial_block_481: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 xmm20,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm6,xmm20,0x01 + vpclmulqdq xmm5,xmm6,xmm20,0x10 + vpclmulqdq xmm0,xmm6,xmm20,0x11 + vpclmulqdq xmm3,xmm6,xmm20,0x00 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_481: + + or r13,r13 + je NEAR $L$_after_reduction_481 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_481: + jmp NEAR $L$_small_initial_blocks_encrypted_479 +$L$_small_initial_num_blocks_is_3_479: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm0,2 + vpshufb zmm0,zmm0,zmm29 + vmovdqu8 zmm6{k1}{z},[r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[224+rcx] + vaesenclast zmm0,zmm0,zmm15 + vpxorq zmm0,zmm0,zmm6 + vextracti32x4 xmm12,zmm0,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10]{k1},zmm0 + vmovdqu8 zmm0{k1}{z},zmm0 + vpshufb zmm6,zmm0,zmm29 + vextracti32x4 xmm13,zmm6,2 + sub r13,16 * (3 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_482 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 ymm20,YMMWORD[304+rdx] + vinserti64x2 zmm20,zmm20,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_482 +$L$_small_initial_partial_block_482: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 ymm20,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm6,ymm20,0x01 + vpclmulqdq ymm5,ymm6,ymm20,0x10 + vpclmulqdq ymm0,ymm6,ymm20,0x11 + vpclmulqdq ymm3,ymm6,ymm20,0x00 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_482: + + or r13,r13 + je NEAR $L$_after_reduction_482 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_482: + jmp NEAR $L$_small_initial_blocks_encrypted_479 +$L$_small_initial_num_blocks_is_4_479: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm0,3 + vpshufb zmm0,zmm0,zmm29 + vmovdqu8 zmm6{k1}{z},[r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[224+rcx] + vaesenclast zmm0,zmm0,zmm15 + vpxorq zmm0,zmm0,zmm6 + vextracti32x4 xmm12,zmm0,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10]{k1},zmm0 + vmovdqu8 zmm0{k1}{z},zmm0 + vpshufb zmm6,zmm0,zmm29 + vextracti32x4 xmm13,zmm6,3 + sub r13,16 * (4 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_483 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[288+rdx] + vpclmulqdq zmm15,zmm6,zmm20,0x11 + vpclmulqdq zmm16,zmm6,zmm20,0x00 + vpclmulqdq zmm17,zmm6,zmm20,0x01 + vpclmulqdq zmm19,zmm6,zmm20,0x10 + + vpxorq zmm17,zmm17,zmm19 + vpsrldq zmm4,zmm17,8 + vpslldq zmm5,zmm17,8 + vpxorq zmm0,zmm15,zmm4 + vpxorq zmm3,zmm16,zmm5 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_483 +$L$_small_initial_partial_block_483: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 ymm20,YMMWORD[304+rdx] + vinserti64x2 zmm20,zmm20,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_483: + + or r13,r13 + je NEAR $L$_after_reduction_483 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_483: + jmp NEAR $L$_small_initial_blocks_encrypted_479 +$L$_small_initial_num_blocks_is_5_479: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm2,ZMMWORD[ddq_add_5678] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + sub r15,64 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm3,0 + vpshufb zmm0,zmm0,zmm29 + vpshufb xmm3,xmm3,xmm29 + vmovdqu8 zmm6,ZMMWORD[r11*1+r9] + vmovdqu8 xmm7{k1}{z},[64+r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vpxorq xmm3,xmm3,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc xmm3,xmm3,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc xmm3,xmm3,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc xmm3,xmm3,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc xmm3,xmm3,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc xmm3,xmm3,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc xmm3,xmm3,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc xmm3,xmm3,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc xmm3,xmm3,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc xmm3,xmm3,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc xmm3,xmm3,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc xmm3,xmm3,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc xmm3,xmm3,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc xmm3,xmm3,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[224+rcx] + vaesenclast zmm0,zmm0,zmm15 + vaesenclast xmm3,xmm3,xmm15 + vpxorq zmm0,zmm0,zmm6 + vpxorq xmm3,xmm3,xmm7 + vextracti32x4 xmm12,zmm3,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 XMMWORD[64+r11*1+r10]{k1},xmm3 + vmovdqu8 zmm3{k1}{z},zmm3 + vpshufb zmm6,zmm0,zmm29 + vpshufb xmm7,xmm3,xmm29 + vextracti32x4 xmm13,zmm7,0 + sub r13,16 * (5 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_484 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[272+rdx] + vpclmulqdq zmm15,zmm6,zmm20,0x11 + vpclmulqdq zmm16,zmm6,zmm20,0x00 + vpclmulqdq zmm17,zmm6,zmm20,0x01 + vpclmulqdq zmm19,zmm6,zmm20,0x10 + vmovdqu64 xmm20,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm7,xmm20,0x01 + vpclmulqdq xmm5,xmm7,xmm20,0x10 + vpclmulqdq xmm0,xmm7,xmm20,0x11 + vpclmulqdq xmm3,xmm7,xmm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_484 +$L$_small_initial_partial_block_484: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[288+rdx] + vpclmulqdq zmm15,zmm6,zmm20,0x11 + vpclmulqdq zmm16,zmm6,zmm20,0x00 + vpclmulqdq zmm17,zmm6,zmm20,0x01 + vpclmulqdq zmm19,zmm6,zmm20,0x10 + + vpxorq zmm17,zmm17,zmm19 + vpsrldq zmm4,zmm17,8 + vpslldq zmm5,zmm17,8 + vpxorq zmm0,zmm15,zmm4 + vpxorq zmm3,zmm16,zmm5 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_484: + + or r13,r13 + je NEAR $L$_after_reduction_484 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_484: + jmp NEAR $L$_small_initial_blocks_encrypted_479 +$L$_small_initial_num_blocks_is_6_479: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm2,ZMMWORD[ddq_add_5678] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + sub r15,64 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm3,1 + vpshufb zmm0,zmm0,zmm29 + vpshufb ymm3,ymm3,ymm29 + vmovdqu8 zmm6,ZMMWORD[r11*1+r9] + vmovdqu8 ymm7{k1}{z},[64+r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vpxorq ymm3,ymm3,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc ymm3,ymm3,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc ymm3,ymm3,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc ymm3,ymm3,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc ymm3,ymm3,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc ymm3,ymm3,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc ymm3,ymm3,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc ymm3,ymm3,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc ymm3,ymm3,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc ymm3,ymm3,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc ymm3,ymm3,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc ymm3,ymm3,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc ymm3,ymm3,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc ymm3,ymm3,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[224+rcx] + vaesenclast zmm0,zmm0,zmm15 + vaesenclast ymm3,ymm3,ymm15 + vpxorq zmm0,zmm0,zmm6 + vpxorq ymm3,ymm3,ymm7 + vextracti32x4 xmm12,zmm3,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 YMMWORD[64+r11*1+r10]{k1},ymm3 + vmovdqu8 zmm3{k1}{z},zmm3 + vpshufb zmm6,zmm0,zmm29 + vpshufb ymm7,ymm3,ymm29 + vextracti32x4 xmm13,zmm7,1 + sub r13,16 * (6 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_485 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[256+rdx] + vpclmulqdq zmm15,zmm6,zmm20,0x11 + vpclmulqdq zmm16,zmm6,zmm20,0x00 + vpclmulqdq zmm17,zmm6,zmm20,0x01 + vpclmulqdq zmm19,zmm6,zmm20,0x10 + vmovdqu64 ymm20,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm7,ymm20,0x01 + vpclmulqdq ymm5,ymm7,ymm20,0x10 + vpclmulqdq ymm0,ymm7,ymm20,0x11 + vpclmulqdq ymm3,ymm7,ymm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_485 +$L$_small_initial_partial_block_485: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[272+rdx] + vpclmulqdq zmm15,zmm6,zmm20,0x11 + vpclmulqdq zmm16,zmm6,zmm20,0x00 + vpclmulqdq zmm17,zmm6,zmm20,0x01 + vpclmulqdq zmm19,zmm6,zmm20,0x10 + vmovdqu64 xmm20,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm7,xmm20,0x01 + vpclmulqdq xmm5,xmm7,xmm20,0x10 + vpclmulqdq xmm0,xmm7,xmm20,0x11 + vpclmulqdq xmm3,xmm7,xmm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_485: + + or r13,r13 + je NEAR $L$_after_reduction_485 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_485: + jmp NEAR $L$_small_initial_blocks_encrypted_479 +$L$_small_initial_num_blocks_is_7_479: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm2,ZMMWORD[ddq_add_5678] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + sub r15,64 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm3,2 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vmovdqu8 zmm6,ZMMWORD[r11*1+r9] + vmovdqu8 zmm7{k1}{z},[64+r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[224+rcx] + vaesenclast zmm0,zmm0,zmm15 + vaesenclast zmm3,zmm3,zmm15 + vpxorq zmm0,zmm0,zmm6 + vpxorq zmm3,zmm3,zmm7 + vextracti32x4 xmm12,zmm3,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10]{k1},zmm3 + vmovdqu8 zmm3{k1}{z},zmm3 + vpshufb zmm6,zmm0,zmm29 + vpshufb zmm7,zmm3,zmm29 + vextracti32x4 xmm13,zmm7,2 + sub r13,16 * (7 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_486 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[240+rdx] + vpclmulqdq zmm15,zmm6,zmm20,0x11 + vpclmulqdq zmm16,zmm6,zmm20,0x00 + vpclmulqdq zmm17,zmm6,zmm20,0x01 + vpclmulqdq zmm19,zmm6,zmm20,0x10 + vmovdqu64 ymm20,YMMWORD[304+rdx] + vinserti64x2 zmm20,zmm20,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm7,zmm20,0x01 + vpclmulqdq zmm5,zmm7,zmm20,0x10 + vpclmulqdq zmm0,zmm7,zmm20,0x11 + vpclmulqdq zmm3,zmm7,zmm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_486 +$L$_small_initial_partial_block_486: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[256+rdx] + vpclmulqdq zmm15,zmm6,zmm20,0x11 + vpclmulqdq zmm16,zmm6,zmm20,0x00 + vpclmulqdq zmm17,zmm6,zmm20,0x01 + vpclmulqdq zmm19,zmm6,zmm20,0x10 + vmovdqu64 ymm20,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm7,ymm20,0x01 + vpclmulqdq ymm5,ymm7,ymm20,0x10 + vpclmulqdq ymm0,ymm7,ymm20,0x11 + vpclmulqdq ymm3,ymm7,ymm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_486: + + or r13,r13 + je NEAR $L$_after_reduction_486 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_486: + jmp NEAR $L$_small_initial_blocks_encrypted_479 +$L$_small_initial_num_blocks_is_8_479: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm2,ZMMWORD[ddq_add_5678] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + sub r15,64 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm3,3 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vmovdqu8 zmm6,ZMMWORD[r11*1+r9] + vmovdqu8 zmm7{k1}{z},[64+r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[224+rcx] + vaesenclast zmm0,zmm0,zmm15 + vaesenclast zmm3,zmm3,zmm15 + vpxorq zmm0,zmm0,zmm6 + vpxorq zmm3,zmm3,zmm7 + vextracti32x4 xmm12,zmm3,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10]{k1},zmm3 + vmovdqu8 zmm3{k1}{z},zmm3 + vpshufb zmm6,zmm0,zmm29 + vpshufb zmm7,zmm3,zmm29 + vextracti32x4 xmm13,zmm7,3 + sub r13,16 * (8 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_487 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[224+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[288+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vpxorq zmm15,zmm0,zmm15 + vpxorq zmm16,zmm3,zmm16 + vpxorq zmm17,zmm4,zmm17 + vpxorq zmm19,zmm5,zmm19 + + vpxorq zmm17,zmm17,zmm19 + vpsrldq zmm4,zmm17,8 + vpslldq zmm5,zmm17,8 + vpxorq zmm0,zmm15,zmm4 + vpxorq zmm3,zmm16,zmm5 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_487 +$L$_small_initial_partial_block_487: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[240+rdx] + vpclmulqdq zmm15,zmm6,zmm20,0x11 + vpclmulqdq zmm16,zmm6,zmm20,0x00 + vpclmulqdq zmm17,zmm6,zmm20,0x01 + vpclmulqdq zmm19,zmm6,zmm20,0x10 + vmovdqu64 ymm20,YMMWORD[304+rdx] + vinserti64x2 zmm20,zmm20,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm7,zmm20,0x01 + vpclmulqdq zmm5,zmm7,zmm20,0x10 + vpclmulqdq zmm0,zmm7,zmm20,0x11 + vpclmulqdq zmm3,zmm7,zmm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_487: + + or r13,r13 + je NEAR $L$_after_reduction_487 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_487: + jmp NEAR $L$_small_initial_blocks_encrypted_479 +$L$_small_initial_num_blocks_is_9_479: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm2,ZMMWORD[ddq_add_5678] + vpaddd zmm4,zmm0,ZMMWORD[ddq_add_8888] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + sub r15,128 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm4,0 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb xmm4,xmm4,xmm29 + vmovdqu8 zmm6,ZMMWORD[r11*1+r9] + vmovdqu8 zmm7,ZMMWORD[64+r11*1+r9] + vmovdqu8 xmm10{k1}{z},[128+r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm15 + vpxorq xmm4,xmm4,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc xmm4,xmm4,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc xmm4,xmm4,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc xmm4,xmm4,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc xmm4,xmm4,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc xmm4,xmm4,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc xmm4,xmm4,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc xmm4,xmm4,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc xmm4,xmm4,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc xmm4,xmm4,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc xmm4,xmm4,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc xmm4,xmm4,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc xmm4,xmm4,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc xmm4,xmm4,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[224+rcx] + vaesenclast zmm0,zmm0,zmm15 + vaesenclast zmm3,zmm3,zmm15 + vaesenclast xmm4,xmm4,xmm15 + vpxorq zmm0,zmm0,zmm6 + vpxorq zmm3,zmm3,zmm7 + vpxorq xmm4,xmm4,xmm10 + vextracti32x4 xmm12,zmm4,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 XMMWORD[128+r11*1+r10]{k1},xmm4 + vmovdqu8 zmm4{k1}{z},zmm4 + vpshufb zmm6,zmm0,zmm29 + vpshufb zmm7,zmm3,zmm29 + vpshufb xmm10,xmm4,xmm29 + vextracti32x4 xmm13,zmm10,0 + sub r13,16 * (9 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_488 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[208+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[272+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vpxorq zmm15,zmm0,zmm15 + vpxorq zmm16,zmm3,zmm16 + vpxorq zmm17,zmm4,zmm17 + vpxorq zmm19,zmm5,zmm19 + vmovdqu64 xmm20,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm10,xmm20,0x01 + vpclmulqdq xmm5,xmm10,xmm20,0x10 + vpclmulqdq xmm0,xmm10,xmm20,0x11 + vpclmulqdq xmm3,xmm10,xmm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_488 +$L$_small_initial_partial_block_488: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[224+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[288+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vpxorq zmm15,zmm0,zmm15 + vpxorq zmm16,zmm3,zmm16 + vpxorq zmm17,zmm4,zmm17 + vpxorq zmm19,zmm5,zmm19 + + vpxorq zmm17,zmm17,zmm19 + vpsrldq zmm4,zmm17,8 + vpslldq zmm5,zmm17,8 + vpxorq zmm0,zmm15,zmm4 + vpxorq zmm3,zmm16,zmm5 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_488: + + or r13,r13 + je NEAR $L$_after_reduction_488 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_488: + jmp NEAR $L$_small_initial_blocks_encrypted_479 +$L$_small_initial_num_blocks_is_10_479: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm2,ZMMWORD[ddq_add_5678] + vpaddd zmm4,zmm0,ZMMWORD[ddq_add_8888] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + sub r15,128 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm4,1 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb ymm4,ymm4,ymm29 + vmovdqu8 zmm6,ZMMWORD[r11*1+r9] + vmovdqu8 zmm7,ZMMWORD[64+r11*1+r9] + vmovdqu8 ymm10{k1}{z},[128+r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm15 + vpxorq ymm4,ymm4,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc ymm4,ymm4,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc ymm4,ymm4,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc ymm4,ymm4,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc ymm4,ymm4,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc ymm4,ymm4,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc ymm4,ymm4,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc ymm4,ymm4,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc ymm4,ymm4,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc ymm4,ymm4,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc ymm4,ymm4,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc ymm4,ymm4,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc ymm4,ymm4,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc ymm4,ymm4,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[224+rcx] + vaesenclast zmm0,zmm0,zmm15 + vaesenclast zmm3,zmm3,zmm15 + vaesenclast ymm4,ymm4,ymm15 + vpxorq zmm0,zmm0,zmm6 + vpxorq zmm3,zmm3,zmm7 + vpxorq ymm4,ymm4,ymm10 + vextracti32x4 xmm12,zmm4,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 YMMWORD[128+r11*1+r10]{k1},ymm4 + vmovdqu8 zmm4{k1}{z},zmm4 + vpshufb zmm6,zmm0,zmm29 + vpshufb zmm7,zmm3,zmm29 + vpshufb ymm10,ymm4,ymm29 + vextracti32x4 xmm13,zmm10,1 + sub r13,16 * (10 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_489 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[192+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[256+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vpxorq zmm15,zmm0,zmm15 + vpxorq zmm16,zmm3,zmm16 + vpxorq zmm17,zmm4,zmm17 + vpxorq zmm19,zmm5,zmm19 + vmovdqu64 ymm20,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm10,ymm20,0x01 + vpclmulqdq ymm5,ymm10,ymm20,0x10 + vpclmulqdq ymm0,ymm10,ymm20,0x11 + vpclmulqdq ymm3,ymm10,ymm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_489 +$L$_small_initial_partial_block_489: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[208+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[272+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vpxorq zmm15,zmm0,zmm15 + vpxorq zmm16,zmm3,zmm16 + vpxorq zmm17,zmm4,zmm17 + vpxorq zmm19,zmm5,zmm19 + vmovdqu64 xmm20,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm10,xmm20,0x01 + vpclmulqdq xmm5,xmm10,xmm20,0x10 + vpclmulqdq xmm0,xmm10,xmm20,0x11 + vpclmulqdq xmm3,xmm10,xmm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_489: + + or r13,r13 + je NEAR $L$_after_reduction_489 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_489: + jmp NEAR $L$_small_initial_blocks_encrypted_479 +$L$_small_initial_num_blocks_is_11_479: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm2,ZMMWORD[ddq_add_5678] + vpaddd zmm4,zmm0,ZMMWORD[ddq_add_8888] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + sub r15,128 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm4,2 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vmovdqu8 zmm6,ZMMWORD[r11*1+r9] + vmovdqu8 zmm7,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm10{k1}{z},[128+r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm15 + vpxorq zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[224+rcx] + vaesenclast zmm0,zmm0,zmm15 + vaesenclast zmm3,zmm3,zmm15 + vaesenclast zmm4,zmm4,zmm15 + vpxorq zmm0,zmm0,zmm6 + vpxorq zmm3,zmm3,zmm7 + vpxorq zmm4,zmm4,zmm10 + vextracti32x4 xmm12,zmm4,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10]{k1},zmm4 + vmovdqu8 zmm4{k1}{z},zmm4 + vpshufb zmm6,zmm0,zmm29 + vpshufb zmm7,zmm3,zmm29 + vpshufb zmm10,zmm4,zmm29 + vextracti32x4 xmm13,zmm10,2 + sub r13,16 * (11 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_490 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[176+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[240+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vpxorq zmm15,zmm0,zmm15 + vpxorq zmm16,zmm3,zmm16 + vpxorq zmm17,zmm4,zmm17 + vpxorq zmm19,zmm5,zmm19 + vmovdqu64 ymm20,YMMWORD[304+rdx] + vinserti64x2 zmm20,zmm20,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm10,zmm20,0x01 + vpclmulqdq zmm5,zmm10,zmm20,0x10 + vpclmulqdq zmm0,zmm10,zmm20,0x11 + vpclmulqdq zmm3,zmm10,zmm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_490 +$L$_small_initial_partial_block_490: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[192+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[256+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vpxorq zmm15,zmm0,zmm15 + vpxorq zmm16,zmm3,zmm16 + vpxorq zmm17,zmm4,zmm17 + vpxorq zmm19,zmm5,zmm19 + vmovdqu64 ymm20,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm10,ymm20,0x01 + vpclmulqdq ymm5,ymm10,ymm20,0x10 + vpclmulqdq ymm0,ymm10,ymm20,0x11 + vpclmulqdq ymm3,ymm10,ymm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_490: + + or r13,r13 + je NEAR $L$_after_reduction_490 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_490: + jmp NEAR $L$_small_initial_blocks_encrypted_479 +$L$_small_initial_num_blocks_is_12_479: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm2,ZMMWORD[ddq_add_5678] + vpaddd zmm4,zmm0,ZMMWORD[ddq_add_8888] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + sub r15,128 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm4,3 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vmovdqu8 zmm6,ZMMWORD[r11*1+r9] + vmovdqu8 zmm7,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm10{k1}{z},[128+r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm15 + vpxorq zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[224+rcx] + vaesenclast zmm0,zmm0,zmm15 + vaesenclast zmm3,zmm3,zmm15 + vaesenclast zmm4,zmm4,zmm15 + vpxorq zmm0,zmm0,zmm6 + vpxorq zmm3,zmm3,zmm7 + vpxorq zmm4,zmm4,zmm10 + vextracti32x4 xmm12,zmm4,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10]{k1},zmm4 + vmovdqu8 zmm4{k1}{z},zmm4 + vpshufb zmm6,zmm0,zmm29 + vpshufb zmm7,zmm3,zmm29 + vpshufb zmm10,zmm4,zmm29 + vextracti32x4 xmm13,zmm10,3 + sub r13,16 * (12 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_491 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[160+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[224+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[288+rdx] + vpclmulqdq zmm6,zmm10,zmm20,0x11 + vpclmulqdq zmm7,zmm10,zmm20,0x00 + vpternlogq zmm15,zmm6,zmm0,0x96 + vpternlogq zmm16,zmm7,zmm3,0x96 + vpclmulqdq zmm6,zmm10,zmm20,0x01 + vpclmulqdq zmm7,zmm10,zmm20,0x10 + vpternlogq zmm17,zmm6,zmm4,0x96 + vpternlogq zmm19,zmm7,zmm5,0x96 + + vpxorq zmm17,zmm17,zmm19 + vpsrldq zmm4,zmm17,8 + vpslldq zmm5,zmm17,8 + vpxorq zmm0,zmm15,zmm4 + vpxorq zmm3,zmm16,zmm5 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_491 +$L$_small_initial_partial_block_491: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[176+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[240+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vpxorq zmm15,zmm0,zmm15 + vpxorq zmm16,zmm3,zmm16 + vpxorq zmm17,zmm4,zmm17 + vpxorq zmm19,zmm5,zmm19 + vmovdqu64 ymm20,YMMWORD[304+rdx] + vinserti64x2 zmm20,zmm20,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm10,zmm20,0x01 + vpclmulqdq zmm5,zmm10,zmm20,0x10 + vpclmulqdq zmm0,zmm10,zmm20,0x11 + vpclmulqdq zmm3,zmm10,zmm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_491: + + or r13,r13 + je NEAR $L$_after_reduction_491 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_491: + jmp NEAR $L$_small_initial_blocks_encrypted_479 +$L$_small_initial_num_blocks_is_13_479: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm2,ZMMWORD[ddq_add_5678] + vpaddd zmm4,zmm0,ZMMWORD[ddq_add_8888] + vpaddd zmm5,zmm3,ZMMWORD[ddq_add_8888] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + sub r15,192 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm5,0 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb xmm5,xmm5,xmm29 + vmovdqu8 zmm6,ZMMWORD[r11*1+r9] + vmovdqu8 zmm7,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm10,ZMMWORD[128+r11*1+r9] + vmovdqu8 xmm11{k1}{z},[192+r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm15 + vpxorq zmm4,zmm4,zmm15 + vpxorq xmm5,xmm5,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc xmm5,xmm5,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc xmm5,xmm5,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc xmm5,xmm5,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc xmm5,xmm5,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc xmm5,xmm5,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc xmm5,xmm5,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc xmm5,xmm5,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc xmm5,xmm5,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc xmm5,xmm5,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc xmm5,xmm5,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc xmm5,xmm5,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc xmm5,xmm5,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc xmm5,xmm5,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[224+rcx] + vaesenclast zmm0,zmm0,zmm15 + vaesenclast zmm3,zmm3,zmm15 + vaesenclast zmm4,zmm4,zmm15 + vaesenclast xmm5,xmm5,xmm15 + vpxorq zmm0,zmm0,zmm6 + vpxorq zmm3,zmm3,zmm7 + vpxorq zmm4,zmm4,zmm10 + vpxorq xmm5,xmm5,xmm11 + vextracti32x4 xmm12,zmm5,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 XMMWORD[192+r11*1+r10]{k1},xmm5 + vmovdqu8 zmm5{k1}{z},zmm5 + vpshufb zmm6,zmm0,zmm29 + vpshufb zmm7,zmm3,zmm29 + vpshufb zmm10,zmm4,zmm29 + vpshufb xmm11,xmm5,xmm29 + vextracti32x4 xmm13,zmm11,0 + sub r13,16 * (13 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_492 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[144+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[208+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[272+rdx] + vpclmulqdq zmm6,zmm10,zmm20,0x11 + vpclmulqdq zmm7,zmm10,zmm20,0x00 + vpternlogq zmm15,zmm6,zmm0,0x96 + vpternlogq zmm16,zmm7,zmm3,0x96 + vpclmulqdq zmm6,zmm10,zmm20,0x01 + vpclmulqdq zmm7,zmm10,zmm20,0x10 + vpternlogq zmm17,zmm6,zmm4,0x96 + vpternlogq zmm19,zmm7,zmm5,0x96 + vmovdqu64 xmm20,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm11,xmm20,0x01 + vpclmulqdq xmm5,xmm11,xmm20,0x10 + vpclmulqdq xmm0,xmm11,xmm20,0x11 + vpclmulqdq xmm3,xmm11,xmm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_492 +$L$_small_initial_partial_block_492: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[160+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[224+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[288+rdx] + vpclmulqdq zmm6,zmm10,zmm20,0x11 + vpclmulqdq zmm7,zmm10,zmm20,0x00 + vpternlogq zmm15,zmm6,zmm0,0x96 + vpternlogq zmm16,zmm7,zmm3,0x96 + vpclmulqdq zmm6,zmm10,zmm20,0x01 + vpclmulqdq zmm7,zmm10,zmm20,0x10 + vpternlogq zmm17,zmm6,zmm4,0x96 + vpternlogq zmm19,zmm7,zmm5,0x96 + + vpxorq zmm17,zmm17,zmm19 + vpsrldq zmm4,zmm17,8 + vpslldq zmm5,zmm17,8 + vpxorq zmm0,zmm15,zmm4 + vpxorq zmm3,zmm16,zmm5 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_492: + + or r13,r13 + je NEAR $L$_after_reduction_492 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_492: + jmp NEAR $L$_small_initial_blocks_encrypted_479 +$L$_small_initial_num_blocks_is_14_479: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm2,ZMMWORD[ddq_add_5678] + vpaddd zmm4,zmm0,ZMMWORD[ddq_add_8888] + vpaddd zmm5,zmm3,ZMMWORD[ddq_add_8888] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + sub r15,192 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm5,1 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb ymm5,ymm5,ymm29 + vmovdqu8 zmm6,ZMMWORD[r11*1+r9] + vmovdqu8 zmm7,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm10,ZMMWORD[128+r11*1+r9] + vmovdqu8 ymm11{k1}{z},[192+r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm15 + vpxorq zmm4,zmm4,zmm15 + vpxorq ymm5,ymm5,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc ymm5,ymm5,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc ymm5,ymm5,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc ymm5,ymm5,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc ymm5,ymm5,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc ymm5,ymm5,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc ymm5,ymm5,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc ymm5,ymm5,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc ymm5,ymm5,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc ymm5,ymm5,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc ymm5,ymm5,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc ymm5,ymm5,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc ymm5,ymm5,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc ymm5,ymm5,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[224+rcx] + vaesenclast zmm0,zmm0,zmm15 + vaesenclast zmm3,zmm3,zmm15 + vaesenclast zmm4,zmm4,zmm15 + vaesenclast ymm5,ymm5,ymm15 + vpxorq zmm0,zmm0,zmm6 + vpxorq zmm3,zmm3,zmm7 + vpxorq zmm4,zmm4,zmm10 + vpxorq ymm5,ymm5,ymm11 + vextracti32x4 xmm12,zmm5,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 YMMWORD[192+r11*1+r10]{k1},ymm5 + vmovdqu8 zmm5{k1}{z},zmm5 + vpshufb zmm6,zmm0,zmm29 + vpshufb zmm7,zmm3,zmm29 + vpshufb zmm10,zmm4,zmm29 + vpshufb ymm11,ymm5,ymm29 + vextracti32x4 xmm13,zmm11,1 + sub r13,16 * (14 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_493 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[128+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[192+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[256+rdx] + vpclmulqdq zmm6,zmm10,zmm20,0x11 + vpclmulqdq zmm7,zmm10,zmm20,0x00 + vpternlogq zmm15,zmm6,zmm0,0x96 + vpternlogq zmm16,zmm7,zmm3,0x96 + vpclmulqdq zmm6,zmm10,zmm20,0x01 + vpclmulqdq zmm7,zmm10,zmm20,0x10 + vpternlogq zmm17,zmm6,zmm4,0x96 + vpternlogq zmm19,zmm7,zmm5,0x96 + vmovdqu64 ymm20,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm11,ymm20,0x01 + vpclmulqdq ymm5,ymm11,ymm20,0x10 + vpclmulqdq ymm0,ymm11,ymm20,0x11 + vpclmulqdq ymm3,ymm11,ymm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_493 +$L$_small_initial_partial_block_493: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[144+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[208+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[272+rdx] + vpclmulqdq zmm6,zmm10,zmm20,0x11 + vpclmulqdq zmm7,zmm10,zmm20,0x00 + vpternlogq zmm15,zmm6,zmm0,0x96 + vpternlogq zmm16,zmm7,zmm3,0x96 + vpclmulqdq zmm6,zmm10,zmm20,0x01 + vpclmulqdq zmm7,zmm10,zmm20,0x10 + vpternlogq zmm17,zmm6,zmm4,0x96 + vpternlogq zmm19,zmm7,zmm5,0x96 + vmovdqu64 xmm20,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm11,xmm20,0x01 + vpclmulqdq xmm5,xmm11,xmm20,0x10 + vpclmulqdq xmm0,xmm11,xmm20,0x11 + vpclmulqdq xmm3,xmm11,xmm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_493: + + or r13,r13 + je NEAR $L$_after_reduction_493 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_493: + jmp NEAR $L$_small_initial_blocks_encrypted_479 +$L$_small_initial_num_blocks_is_15_479: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm2,ZMMWORD[ddq_add_5678] + vpaddd zmm4,zmm0,ZMMWORD[ddq_add_8888] + vpaddd zmm5,zmm3,ZMMWORD[ddq_add_8888] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + sub r15,192 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm5,2 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 + vmovdqu8 zmm6,ZMMWORD[r11*1+r9] + vmovdqu8 zmm7,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm10,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm11{k1}{z},[192+r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm15 + vpxorq zmm4,zmm4,zmm15 + vpxorq zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[224+rcx] + vaesenclast zmm0,zmm0,zmm15 + vaesenclast zmm3,zmm3,zmm15 + vaesenclast zmm4,zmm4,zmm15 + vaesenclast zmm5,zmm5,zmm15 + vpxorq zmm0,zmm0,zmm6 + vpxorq zmm3,zmm3,zmm7 + vpxorq zmm4,zmm4,zmm10 + vpxorq zmm5,zmm5,zmm11 + vextracti32x4 xmm12,zmm5,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[192+r11*1+r10]{k1},zmm5 + vmovdqu8 zmm5{k1}{z},zmm5 + vpshufb zmm6,zmm0,zmm29 + vpshufb zmm7,zmm3,zmm29 + vpshufb zmm10,zmm4,zmm29 + vpshufb zmm11,zmm5,zmm29 + vextracti32x4 xmm13,zmm11,2 + sub r13,16 * (15 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_494 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[112+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[176+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[240+rdx] + vpclmulqdq zmm6,zmm10,zmm20,0x11 + vpclmulqdq zmm7,zmm10,zmm20,0x00 + vpternlogq zmm15,zmm6,zmm0,0x96 + vpternlogq zmm16,zmm7,zmm3,0x96 + vpclmulqdq zmm6,zmm10,zmm20,0x01 + vpclmulqdq zmm7,zmm10,zmm20,0x10 + vpternlogq zmm17,zmm6,zmm4,0x96 + vpternlogq zmm19,zmm7,zmm5,0x96 + vmovdqu64 ymm20,YMMWORD[304+rdx] + vinserti64x2 zmm20,zmm20,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm11,zmm20,0x01 + vpclmulqdq zmm5,zmm11,zmm20,0x10 + vpclmulqdq zmm0,zmm11,zmm20,0x11 + vpclmulqdq zmm3,zmm11,zmm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_494 +$L$_small_initial_partial_block_494: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[128+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[192+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[256+rdx] + vpclmulqdq zmm6,zmm10,zmm20,0x11 + vpclmulqdq zmm7,zmm10,zmm20,0x00 + vpternlogq zmm15,zmm6,zmm0,0x96 + vpternlogq zmm16,zmm7,zmm3,0x96 + vpclmulqdq zmm6,zmm10,zmm20,0x01 + vpclmulqdq zmm7,zmm10,zmm20,0x10 + vpternlogq zmm17,zmm6,zmm4,0x96 + vpternlogq zmm19,zmm7,zmm5,0x96 + vmovdqu64 ymm20,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm11,ymm20,0x01 + vpclmulqdq ymm5,ymm11,ymm20,0x10 + vpclmulqdq ymm0,ymm11,ymm20,0x11 + vpclmulqdq ymm3,ymm11,ymm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_494: + + or r13,r13 + je NEAR $L$_after_reduction_494 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_494: + jmp NEAR $L$_small_initial_blocks_encrypted_479 +$L$_small_initial_num_blocks_is_16_479: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm2,ZMMWORD[ddq_add_5678] + vpaddd zmm4,zmm0,ZMMWORD[ddq_add_8888] + vpaddd zmm5,zmm3,ZMMWORD[ddq_add_8888] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + sub r15,192 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm5,3 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 + vmovdqu8 zmm6,ZMMWORD[r11*1+r9] + vmovdqu8 zmm7,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm10,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm11{k1}{z},[192+r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm15 + vpxorq zmm4,zmm4,zmm15 + vpxorq zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[224+rcx] + vaesenclast zmm0,zmm0,zmm15 + vaesenclast zmm3,zmm3,zmm15 + vaesenclast zmm4,zmm4,zmm15 + vaesenclast zmm5,zmm5,zmm15 + vpxorq zmm0,zmm0,zmm6 + vpxorq zmm3,zmm3,zmm7 + vpxorq zmm4,zmm4,zmm10 + vpxorq zmm5,zmm5,zmm11 + vextracti32x4 xmm12,zmm5,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[192+r11*1+r10]{k1},zmm5 + vmovdqu8 zmm5{k1}{z},zmm5 + vpshufb zmm6,zmm0,zmm29 + vpshufb zmm7,zmm3,zmm29 + vpshufb zmm10,zmm4,zmm29 + vpshufb zmm11,zmm5,zmm29 + vextracti32x4 xmm13,zmm11,3 + sub r13,16 * (16 - 1) +$L$_small_initial_partial_block_495: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[112+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[176+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[240+rdx] + vpclmulqdq zmm6,zmm10,zmm20,0x11 + vpclmulqdq zmm7,zmm10,zmm20,0x00 + vpternlogq zmm15,zmm6,zmm0,0x96 + vpternlogq zmm16,zmm7,zmm3,0x96 + vpclmulqdq zmm6,zmm10,zmm20,0x01 + vpclmulqdq zmm7,zmm10,zmm20,0x10 + vpternlogq zmm17,zmm6,zmm4,0x96 + vpternlogq zmm19,zmm7,zmm5,0x96 + vmovdqu64 ymm20,YMMWORD[304+rdx] + vinserti64x2 zmm20,zmm20,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm11,zmm20,0x01 + vpclmulqdq zmm5,zmm11,zmm20,0x10 + vpclmulqdq zmm0,zmm11,zmm20,0x11 + vpclmulqdq zmm3,zmm11,zmm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_495: + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_495: +$L$_small_initial_blocks_encrypted_479: +$L$_ghash_done_334: + vmovdqu64 XMMWORD[rdx],xmm2 + vmovdqu64 XMMWORD[64+rdx],xmm14 +$L$_enc_dec_done_334: + jmp NEAR $L$exit_gcm_encrypt +$L$exit_gcm_encrypt: + cmp QWORD[112+rbp],256 + jbe NEAR $L$skip_hkeys_cleanup_496 + vpxor xmm0,xmm0,xmm0 + vmovdqa64 ZMMWORD[rsp],zmm0 + vmovdqa64 ZMMWORD[64+rsp],zmm0 + vmovdqa64 ZMMWORD[128+rsp],zmm0 + vmovdqa64 ZMMWORD[192+rsp],zmm0 + vmovdqa64 ZMMWORD[256+rsp],zmm0 + vmovdqa64 ZMMWORD[320+rsp],zmm0 + vmovdqa64 ZMMWORD[384+rsp],zmm0 + vmovdqa64 ZMMWORD[448+rsp],zmm0 + vmovdqa64 ZMMWORD[512+rsp],zmm0 + vmovdqa64 ZMMWORD[576+rsp],zmm0 + vmovdqa64 ZMMWORD[640+rsp],zmm0 + vmovdqa64 ZMMWORD[704+rsp],zmm0 +$L$skip_hkeys_cleanup_496: + vzeroupper + vmovdqu xmm15,XMMWORD[((-16))+rbp] + vmovdqu xmm14,XMMWORD[((-32))+rbp] + vmovdqu xmm13,XMMWORD[((-48))+rbp] + vmovdqu xmm12,XMMWORD[((-64))+rbp] + vmovdqu xmm11,XMMWORD[((-80))+rbp] + vmovdqu xmm10,XMMWORD[((-96))+rbp] + vmovdqu xmm9,XMMWORD[((-112))+rbp] + vmovdqu xmm8,XMMWORD[((-128))+rbp] + vmovdqu xmm7,XMMWORD[((-144))+rbp] + vmovdqu xmm6,XMMWORD[((-160))+rbp] + lea rsp,[8+rbp] + pop rsi + + pop rdi + + pop r15 + + pop r14 + + pop r13 + + pop r12 + + pop rbp + + pop rbx + + DB 0F3h,0C3h ;repret +$L$encrypt_seh_end: + + +global ossl_aes_gcm_decrypt_avx512 + +ALIGN 32 +ossl_aes_gcm_decrypt_avx512: + +$L$decrypt_seh_begin: +DB 243,15,30,250 + push rbx + +$L$decrypt_seh_push_rbx: + push rbp + +$L$decrypt_seh_push_rbp: + push r12 + +$L$decrypt_seh_push_r12: + push r13 + +$L$decrypt_seh_push_r13: + push r14 + +$L$decrypt_seh_push_r14: + push r15 + +$L$decrypt_seh_push_r15: + push rdi +$L$decrypt_seh_push_rdi: + push rsi +$L$decrypt_seh_push_rsi: + + sub rsp,168 +$L$decrypt_seh_allocstack_xmm: + + + + + + + + + + + lea rbp,[160+rsp] + +$L$decrypt_seh_setfp: + vmovdqu XMMWORD[rsp],xmm6 +$L$decrypt_seh_save_xmm6: + vmovdqu XMMWORD[16+rsp],xmm7 +$L$decrypt_seh_save_xmm7: + vmovdqu XMMWORD[32+rsp],xmm8 +$L$decrypt_seh_save_xmm8: + vmovdqu XMMWORD[48+rsp],xmm9 +$L$decrypt_seh_save_xmm9: + vmovdqu XMMWORD[64+rsp],xmm10 +$L$decrypt_seh_save_xmm10: + vmovdqu XMMWORD[80+rsp],xmm11 +$L$decrypt_seh_save_xmm11: + vmovdqu XMMWORD[96+rsp],xmm12 +$L$decrypt_seh_save_xmm12: + vmovdqu XMMWORD[112+rsp],xmm13 +$L$decrypt_seh_save_xmm13: + vmovdqu XMMWORD[128+rsp],xmm14 +$L$decrypt_seh_save_xmm14: + vmovdqu XMMWORD[144+rsp],xmm15 +$L$decrypt_seh_save_xmm15: + +$L$decrypt_seh_prolog_end: + sub rsp,1584 + and rsp,(-64) + + + mov eax,DWORD[240+rcx] + cmp eax,9 + je NEAR $L$aes_gcm_decrypt_128_avx512 + cmp eax,11 + je NEAR $L$aes_gcm_decrypt_192_avx512 + cmp eax,13 + je NEAR $L$aes_gcm_decrypt_256_avx512 + xor eax,eax + jmp NEAR $L$exit_gcm_decrypt +ALIGN 32 +$L$aes_gcm_decrypt_128_avx512: + cmp QWORD[112+rbp],0 + je NEAR $L$_enc_dec_done_497 + xor r14,r14 + vmovdqu64 xmm14,XMMWORD[64+rdx] + + mov r11,QWORD[r8] + or r11,r11 + je NEAR $L$_partial_block_done_498 + mov r10d,16 + lea r12,[byte_len_to_mask_table] + cmp QWORD[112+rbp],r10 + cmovc r10,QWORD[112+rbp] + add r12,r10 + add r12,r10 + kmovw k1,[r12] + vmovdqu8 xmm0{k1}{z},[r9] + + vmovdqu64 xmm3,XMMWORD[16+rdx] + vmovdqu64 xmm4,XMMWORD[336+rdx] + + + + lea r12,[SHIFT_MASK] + add r12,r11 + vmovdqu64 xmm5,XMMWORD[r12] + vpshufb xmm3,xmm3,xmm5 + + vmovdqa64 xmm6,xmm0 + vpxorq xmm3,xmm3,xmm0 + + + mov r13,QWORD[112+rbp] + add r13,r11 + sub r13,16 + jge NEAR $L$_no_extra_mask_498 + sub r12,r13 +$L$_no_extra_mask_498: + + + + vmovdqu64 xmm0,XMMWORD[16+r12] + vpand xmm3,xmm3,xmm0 + vpand xmm6,xmm6,xmm0 + vpshufb xmm6,xmm6,XMMWORD[SHUF_MASK] + vpshufb xmm6,xmm6,xmm5 + vpxorq xmm14,xmm14,xmm6 + cmp r13,0 + jl NEAR $L$_partial_incomplete_498 + + vpclmulqdq xmm7,xmm14,xmm4,0x11 + vpclmulqdq xmm10,xmm14,xmm4,0x00 + vpclmulqdq xmm11,xmm14,xmm4,0x01 + vpclmulqdq xmm14,xmm14,xmm4,0x10 + vpxorq xmm14,xmm14,xmm11 + + vpsrldq xmm11,xmm14,8 + vpslldq xmm14,xmm14,8 + vpxorq xmm7,xmm7,xmm11 + vpxorq xmm14,xmm14,xmm10 + + + + vmovdqu64 xmm11,XMMWORD[POLY2] + + vpclmulqdq xmm10,xmm11,xmm14,0x01 + vpslldq xmm10,xmm10,8 + vpxorq xmm14,xmm14,xmm10 + + + + vpclmulqdq xmm10,xmm11,xmm14,0x00 + vpsrldq xmm10,xmm10,4 + vpclmulqdq xmm14,xmm11,xmm14,0x10 + vpslldq xmm14,xmm14,4 + + vpternlogq xmm14,xmm7,xmm10,0x96 + + mov QWORD[r8],0 + + mov r12,r11 + mov r11,16 + sub r11,r12 + jmp NEAR $L$_enc_dec_done_498 + +$L$_partial_incomplete_498: + mov r12,QWORD[112+rbp] + add QWORD[r8],r12 + mov r11,QWORD[112+rbp] + +$L$_enc_dec_done_498: + + + lea r12,[byte_len_to_mask_table] + kmovw k1,[r11*2+r12] + vmovdqu64 XMMWORD[64+rdx],xmm14 + mov r12,QWORD[120+rbp] + vmovdqu8 XMMWORD[r12]{k1},xmm3 +$L$_partial_block_done_498: + vmovdqu64 xmm2,XMMWORD[rdx] + mov r13,QWORD[112+rbp] + sub r13,r11 + je NEAR $L$_enc_dec_done_497 + cmp r13,256 + jbe NEAR $L$_message_below_equal_16_blocks_497 + + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vmovdqa64 zmm27,ZMMWORD[ddq_addbe_4444] + vmovdqa64 zmm28,ZMMWORD[ddq_addbe_1234] + + + + + + + vmovd r15d,xmm2 + and r15d,255 + + vshufi64x2 zmm2,zmm2,zmm2,0 + vpshufb zmm2,zmm2,zmm29 + + + + cmp r15b,240 + jae NEAR $L$_next_16_overflow_499 + vpaddd zmm7,zmm2,zmm28 + vpaddd zmm10,zmm7,zmm27 + vpaddd zmm11,zmm10,zmm27 + vpaddd zmm12,zmm11,zmm27 + jmp NEAR $L$_next_16_ok_499 +$L$_next_16_overflow_499: + vpshufb zmm2,zmm2,zmm29 + vmovdqa64 zmm12,ZMMWORD[ddq_add_4444] + vpaddd zmm7,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm10,zmm7,zmm12 + vpaddd zmm11,zmm10,zmm12 + vpaddd zmm12,zmm11,zmm12 + vpshufb zmm7,zmm7,zmm29 + vpshufb zmm10,zmm10,zmm29 + vpshufb zmm11,zmm11,zmm29 + vpshufb zmm12,zmm12,zmm29 +$L$_next_16_ok_499: + vshufi64x2 zmm2,zmm12,zmm12,255 + add r15b,16 + + vmovdqu8 zmm0,ZMMWORD[r11*1+r9] + vmovdqu8 zmm3,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm4,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm5,ZMMWORD[192+r11*1+r9] + + + vbroadcastf64x2 zmm6,ZMMWORD[rcx] + vpxorq zmm7,zmm7,zmm6 + vpxorq zmm10,zmm10,zmm6 + vpxorq zmm11,zmm11,zmm6 + vpxorq zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[16+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[32+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[48+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[64+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[80+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[96+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[112+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[128+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[144+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[160+rcx] + vaesenclast zmm7,zmm7,zmm6 + vaesenclast zmm10,zmm10,zmm6 + vaesenclast zmm11,zmm11,zmm6 + vaesenclast zmm12,zmm12,zmm6 + + + vpxorq zmm7,zmm7,zmm0 + vpxorq zmm10,zmm10,zmm3 + vpxorq zmm11,zmm11,zmm4 + vpxorq zmm12,zmm12,zmm5 + + + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm7 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm10 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm11 + vmovdqu8 ZMMWORD[192+r11*1+r10],zmm12 + + vpshufb zmm7,zmm0,zmm29 + vpshufb zmm10,zmm3,zmm29 + vpshufb zmm11,zmm4,zmm29 + vpshufb zmm12,zmm5,zmm29 + vmovdqa64 ZMMWORD[768+rsp],zmm7 + vmovdqa64 ZMMWORD[832+rsp],zmm10 + vmovdqa64 ZMMWORD[896+rsp],zmm11 + vmovdqa64 ZMMWORD[960+rsp],zmm12 + test r14,r14 + jnz NEAR $L$_skip_hkeys_precomputation_500 + + vmovdqu64 zmm0,ZMMWORD[288+rdx] + vmovdqu64 ZMMWORD[704+rsp],zmm0 + + vmovdqu64 zmm3,ZMMWORD[224+rdx] + vmovdqu64 ZMMWORD[640+rsp],zmm3 + + + vshufi64x2 zmm3,zmm3,zmm3,0x00 + + vmovdqu64 zmm4,ZMMWORD[160+rdx] + vmovdqu64 ZMMWORD[576+rsp],zmm4 + + vmovdqu64 zmm5,ZMMWORD[96+rdx] + vmovdqu64 ZMMWORD[512+rsp],zmm5 +$L$_skip_hkeys_precomputation_500: + cmp r13,512 + jb NEAR $L$_message_below_32_blocks_497 + + + + cmp r15b,240 + jae NEAR $L$_next_16_overflow_501 + vpaddd zmm7,zmm2,zmm28 + vpaddd zmm10,zmm7,zmm27 + vpaddd zmm11,zmm10,zmm27 + vpaddd zmm12,zmm11,zmm27 + jmp NEAR $L$_next_16_ok_501 +$L$_next_16_overflow_501: + vpshufb zmm2,zmm2,zmm29 + vmovdqa64 zmm12,ZMMWORD[ddq_add_4444] + vpaddd zmm7,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm10,zmm7,zmm12 + vpaddd zmm11,zmm10,zmm12 + vpaddd zmm12,zmm11,zmm12 + vpshufb zmm7,zmm7,zmm29 + vpshufb zmm10,zmm10,zmm29 + vpshufb zmm11,zmm11,zmm29 + vpshufb zmm12,zmm12,zmm29 +$L$_next_16_ok_501: + vshufi64x2 zmm2,zmm12,zmm12,255 + add r15b,16 + + vmovdqu8 zmm0,ZMMWORD[256+r11*1+r9] + vmovdqu8 zmm3,ZMMWORD[320+r11*1+r9] + vmovdqu8 zmm4,ZMMWORD[384+r11*1+r9] + vmovdqu8 zmm5,ZMMWORD[448+r11*1+r9] + + + vbroadcastf64x2 zmm6,ZMMWORD[rcx] + vpxorq zmm7,zmm7,zmm6 + vpxorq zmm10,zmm10,zmm6 + vpxorq zmm11,zmm11,zmm6 + vpxorq zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[16+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[32+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[48+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[64+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[80+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[96+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[112+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[128+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[144+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[160+rcx] + vaesenclast zmm7,zmm7,zmm6 + vaesenclast zmm10,zmm10,zmm6 + vaesenclast zmm11,zmm11,zmm6 + vaesenclast zmm12,zmm12,zmm6 + + + vpxorq zmm7,zmm7,zmm0 + vpxorq zmm10,zmm10,zmm3 + vpxorq zmm11,zmm11,zmm4 + vpxorq zmm12,zmm12,zmm5 + + + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[256+r11*1+r10],zmm7 + vmovdqu8 ZMMWORD[320+r11*1+r10],zmm10 + vmovdqu8 ZMMWORD[384+r11*1+r10],zmm11 + vmovdqu8 ZMMWORD[448+r11*1+r10],zmm12 + + vpshufb zmm7,zmm0,zmm29 + vpshufb zmm10,zmm3,zmm29 + vpshufb zmm11,zmm4,zmm29 + vpshufb zmm12,zmm5,zmm29 + vmovdqa64 ZMMWORD[1024+rsp],zmm7 + vmovdqa64 ZMMWORD[1088+rsp],zmm10 + vmovdqa64 ZMMWORD[1152+rsp],zmm11 + vmovdqa64 ZMMWORD[1216+rsp],zmm12 + test r14,r14 + jnz NEAR $L$_skip_hkeys_precomputation_502 + vmovdqu64 zmm3,ZMMWORD[640+rsp] + + + vshufi64x2 zmm3,zmm3,zmm3,0x00 + + vmovdqu64 zmm4,ZMMWORD[576+rsp] + vmovdqu64 zmm5,ZMMWORD[512+rsp] + + vpclmulqdq zmm6,zmm4,zmm3,0x11 + vpclmulqdq zmm7,zmm4,zmm3,0x00 + vpclmulqdq zmm10,zmm4,zmm3,0x01 + vpclmulqdq zmm4,zmm4,zmm3,0x10 + vpxorq zmm4,zmm4,zmm10 + + vpsrldq zmm10,zmm4,8 + vpslldq zmm4,zmm4,8 + vpxorq zmm6,zmm6,zmm10 + vpxorq zmm4,zmm4,zmm7 + + + + vmovdqu64 zmm10,ZMMWORD[POLY2] + + vpclmulqdq zmm7,zmm10,zmm4,0x01 + vpslldq zmm7,zmm7,8 + vpxorq zmm4,zmm4,zmm7 + + + + vpclmulqdq zmm7,zmm10,zmm4,0x00 + vpsrldq zmm7,zmm7,4 + vpclmulqdq zmm4,zmm10,zmm4,0x10 + vpslldq zmm4,zmm4,4 + + vpternlogq zmm4,zmm6,zmm7,0x96 + + vmovdqu64 ZMMWORD[448+rsp],zmm4 + + vpclmulqdq zmm6,zmm5,zmm3,0x11 + vpclmulqdq zmm7,zmm5,zmm3,0x00 + vpclmulqdq zmm10,zmm5,zmm3,0x01 + vpclmulqdq zmm5,zmm5,zmm3,0x10 + vpxorq zmm5,zmm5,zmm10 + + vpsrldq zmm10,zmm5,8 + vpslldq zmm5,zmm5,8 + vpxorq zmm6,zmm6,zmm10 + vpxorq zmm5,zmm5,zmm7 + + + + vmovdqu64 zmm10,ZMMWORD[POLY2] + + vpclmulqdq zmm7,zmm10,zmm5,0x01 + vpslldq zmm7,zmm7,8 + vpxorq zmm5,zmm5,zmm7 + + + + vpclmulqdq zmm7,zmm10,zmm5,0x00 + vpsrldq zmm7,zmm7,4 + vpclmulqdq zmm5,zmm10,zmm5,0x10 + vpslldq zmm5,zmm5,4 + + vpternlogq zmm5,zmm6,zmm7,0x96 + + vmovdqu64 ZMMWORD[384+rsp],zmm5 + + vpclmulqdq zmm6,zmm4,zmm3,0x11 + vpclmulqdq zmm7,zmm4,zmm3,0x00 + vpclmulqdq zmm10,zmm4,zmm3,0x01 + vpclmulqdq zmm4,zmm4,zmm3,0x10 + vpxorq zmm4,zmm4,zmm10 + + vpsrldq zmm10,zmm4,8 + vpslldq zmm4,zmm4,8 + vpxorq zmm6,zmm6,zmm10 + vpxorq zmm4,zmm4,zmm7 + + + + vmovdqu64 zmm10,ZMMWORD[POLY2] + + vpclmulqdq zmm7,zmm10,zmm4,0x01 + vpslldq zmm7,zmm7,8 + vpxorq zmm4,zmm4,zmm7 + + + + vpclmulqdq zmm7,zmm10,zmm4,0x00 + vpsrldq zmm7,zmm7,4 + vpclmulqdq zmm4,zmm10,zmm4,0x10 + vpslldq zmm4,zmm4,4 + + vpternlogq zmm4,zmm6,zmm7,0x96 + + vmovdqu64 ZMMWORD[320+rsp],zmm4 + + vpclmulqdq zmm6,zmm5,zmm3,0x11 + vpclmulqdq zmm7,zmm5,zmm3,0x00 + vpclmulqdq zmm10,zmm5,zmm3,0x01 + vpclmulqdq zmm5,zmm5,zmm3,0x10 + vpxorq zmm5,zmm5,zmm10 + + vpsrldq zmm10,zmm5,8 + vpslldq zmm5,zmm5,8 + vpxorq zmm6,zmm6,zmm10 + vpxorq zmm5,zmm5,zmm7 + + + + vmovdqu64 zmm10,ZMMWORD[POLY2] + + vpclmulqdq zmm7,zmm10,zmm5,0x01 + vpslldq zmm7,zmm7,8 + vpxorq zmm5,zmm5,zmm7 + + + + vpclmulqdq zmm7,zmm10,zmm5,0x00 + vpsrldq zmm7,zmm7,4 + vpclmulqdq zmm5,zmm10,zmm5,0x10 + vpslldq zmm5,zmm5,4 + + vpternlogq zmm5,zmm6,zmm7,0x96 + + vmovdqu64 ZMMWORD[256+rsp],zmm5 + + vpclmulqdq zmm6,zmm4,zmm3,0x11 + vpclmulqdq zmm7,zmm4,zmm3,0x00 + vpclmulqdq zmm10,zmm4,zmm3,0x01 + vpclmulqdq zmm4,zmm4,zmm3,0x10 + vpxorq zmm4,zmm4,zmm10 + + vpsrldq zmm10,zmm4,8 + vpslldq zmm4,zmm4,8 + vpxorq zmm6,zmm6,zmm10 + vpxorq zmm4,zmm4,zmm7 + + + + vmovdqu64 zmm10,ZMMWORD[POLY2] + + vpclmulqdq zmm7,zmm10,zmm4,0x01 + vpslldq zmm7,zmm7,8 + vpxorq zmm4,zmm4,zmm7 + + + + vpclmulqdq zmm7,zmm10,zmm4,0x00 + vpsrldq zmm7,zmm7,4 + vpclmulqdq zmm4,zmm10,zmm4,0x10 + vpslldq zmm4,zmm4,4 + + vpternlogq zmm4,zmm6,zmm7,0x96 + + vmovdqu64 ZMMWORD[192+rsp],zmm4 + + vpclmulqdq zmm6,zmm5,zmm3,0x11 + vpclmulqdq zmm7,zmm5,zmm3,0x00 + vpclmulqdq zmm10,zmm5,zmm3,0x01 + vpclmulqdq zmm5,zmm5,zmm3,0x10 + vpxorq zmm5,zmm5,zmm10 + + vpsrldq zmm10,zmm5,8 + vpslldq zmm5,zmm5,8 + vpxorq zmm6,zmm6,zmm10 + vpxorq zmm5,zmm5,zmm7 + + + + vmovdqu64 zmm10,ZMMWORD[POLY2] + + vpclmulqdq zmm7,zmm10,zmm5,0x01 + vpslldq zmm7,zmm7,8 + vpxorq zmm5,zmm5,zmm7 + + + + vpclmulqdq zmm7,zmm10,zmm5,0x00 + vpsrldq zmm7,zmm7,4 + vpclmulqdq zmm5,zmm10,zmm5,0x10 + vpslldq zmm5,zmm5,4 + + vpternlogq zmm5,zmm6,zmm7,0x96 + + vmovdqu64 ZMMWORD[128+rsp],zmm5 + + vpclmulqdq zmm6,zmm4,zmm3,0x11 + vpclmulqdq zmm7,zmm4,zmm3,0x00 + vpclmulqdq zmm10,zmm4,zmm3,0x01 + vpclmulqdq zmm4,zmm4,zmm3,0x10 + vpxorq zmm4,zmm4,zmm10 + + vpsrldq zmm10,zmm4,8 + vpslldq zmm4,zmm4,8 + vpxorq zmm6,zmm6,zmm10 + vpxorq zmm4,zmm4,zmm7 + + + + vmovdqu64 zmm10,ZMMWORD[POLY2] + + vpclmulqdq zmm7,zmm10,zmm4,0x01 + vpslldq zmm7,zmm7,8 + vpxorq zmm4,zmm4,zmm7 + + + + vpclmulqdq zmm7,zmm10,zmm4,0x00 + vpsrldq zmm7,zmm7,4 + vpclmulqdq zmm4,zmm10,zmm4,0x10 + vpslldq zmm4,zmm4,4 + + vpternlogq zmm4,zmm6,zmm7,0x96 + + vmovdqu64 ZMMWORD[64+rsp],zmm4 + + vpclmulqdq zmm6,zmm5,zmm3,0x11 + vpclmulqdq zmm7,zmm5,zmm3,0x00 + vpclmulqdq zmm10,zmm5,zmm3,0x01 + vpclmulqdq zmm5,zmm5,zmm3,0x10 + vpxorq zmm5,zmm5,zmm10 + + vpsrldq zmm10,zmm5,8 + vpslldq zmm5,zmm5,8 + vpxorq zmm6,zmm6,zmm10 + vpxorq zmm5,zmm5,zmm7 + + + + vmovdqu64 zmm10,ZMMWORD[POLY2] + + vpclmulqdq zmm7,zmm10,zmm5,0x01 + vpslldq zmm7,zmm7,8 + vpxorq zmm5,zmm5,zmm7 + + + + vpclmulqdq zmm7,zmm10,zmm5,0x00 + vpsrldq zmm7,zmm7,4 + vpclmulqdq zmm5,zmm10,zmm5,0x10 + vpslldq zmm5,zmm5,4 + + vpternlogq zmm5,zmm6,zmm7,0x96 + + vmovdqu64 ZMMWORD[rsp],zmm5 +$L$_skip_hkeys_precomputation_502: + mov r14,1 + add r11,512 + sub r13,512 + + cmp r13,768 + jb NEAR $L$_no_more_big_nblocks_497 +$L$_encrypt_big_nblocks_497: + cmp r15b,240 + jae NEAR $L$_16_blocks_overflow_503 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_503 +$L$_16_blocks_overflow_503: + vpshufb zmm2,zmm2,zmm29 + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_503: + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rsp] + + + + + vshufi64x2 zmm2,zmm5,zmm5,255 + add r15b,16 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + + + + + + + + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + + vpclmulqdq zmm6,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + + vpternlogq zmm6,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + + + + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm21,ZMMWORD[192+r11*1+r9] + + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm26,zmm10,zmm15 + vpxorq zmm24,zmm6,zmm12 + vpxorq zmm25,zmm7,zmm13 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + + + + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + + + + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[192+r11*1+r10],zmm5 + vpshufb zmm0,zmm17,zmm29 + vpshufb zmm3,zmm19,zmm29 + vpshufb zmm4,zmm20,zmm29 + vpshufb zmm5,zmm21,zmm29 + vmovdqa64 ZMMWORD[1280+rsp],zmm0 + vmovdqa64 ZMMWORD[1344+rsp],zmm3 + vmovdqa64 ZMMWORD[1408+rsp],zmm4 + vmovdqa64 ZMMWORD[1472+rsp],zmm5 + cmp r15b,240 + jae NEAR $L$_16_blocks_overflow_504 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_504 +$L$_16_blocks_overflow_504: + vpshufb zmm2,zmm2,zmm29 + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_504: + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[256+rsp] + + + + + vshufi64x2 zmm2,zmm5,zmm5,255 + add r15b,16 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[320+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + + + + + + + + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + + vpclmulqdq zmm6,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[384+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[448+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + + vpternlogq zmm6,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + + + + vmovdqu8 zmm17,ZMMWORD[256+r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[320+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[384+r11*1+r9] + vmovdqu8 zmm21,ZMMWORD[448+r11*1+r9] + + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vpternlogq zmm24,zmm6,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + + + + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + + + + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[256+r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[320+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[384+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[448+r11*1+r10],zmm5 + vpshufb zmm0,zmm17,zmm29 + vpshufb zmm3,zmm19,zmm29 + vpshufb zmm4,zmm20,zmm29 + vpshufb zmm5,zmm21,zmm29 + vmovdqa64 ZMMWORD[768+rsp],zmm0 + vmovdqa64 ZMMWORD[832+rsp],zmm3 + vmovdqa64 ZMMWORD[896+rsp],zmm4 + vmovdqa64 ZMMWORD[960+rsp],zmm5 + cmp r15b,240 + jae NEAR $L$_16_blocks_overflow_505 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_505 +$L$_16_blocks_overflow_505: + vpshufb zmm2,zmm2,zmm29 + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_505: + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + + + + + vshufi64x2 zmm2,zmm5,zmm5,255 + add r15b,16 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + + + + + + + + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + + vpclmulqdq zmm6,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + + vpternlogq zmm6,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + + + + vmovdqu8 zmm17,ZMMWORD[512+r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[576+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[640+r11*1+r9] + vmovdqu8 zmm21,ZMMWORD[704+r11*1+r9] + + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + + + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpternlogq zmm6,zmm12,zmm15,0x96 + vpxorq zmm6,zmm6,zmm24 + vpternlogq zmm7,zmm13,zmm10,0x96 + vpxorq zmm7,zmm7,zmm25 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vextracti64x4 ymm12,zmm6,1 + vpxorq ymm6,ymm6,ymm12 + vextracti32x4 xmm12,ymm6,1 + vpxorq xmm6,xmm6,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm6,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + + + + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + + + + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[512+r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[576+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[640+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[704+r11*1+r10],zmm5 + vpshufb zmm0,zmm17,zmm29 + vpshufb zmm3,zmm19,zmm29 + vpshufb zmm4,zmm20,zmm29 + vpshufb zmm5,zmm21,zmm29 + vmovdqa64 ZMMWORD[1024+rsp],zmm0 + vmovdqa64 ZMMWORD[1088+rsp],zmm3 + vmovdqa64 ZMMWORD[1152+rsp],zmm4 + vmovdqa64 ZMMWORD[1216+rsp],zmm5 + vmovdqa64 zmm14,zmm6 + + add r11,768 + sub r13,768 + cmp r13,768 + jae NEAR $L$_encrypt_big_nblocks_497 + +$L$_no_more_big_nblocks_497: + + cmp r13,512 + jae NEAR $L$_encrypt_32_blocks_497 + + cmp r13,256 + jae NEAR $L$_encrypt_16_blocks_497 +$L$_encrypt_0_blocks_ghash_32_497: + mov r10d,r13d + and r10d,~15 + mov ebx,256 + sub ebx,r10d + vmovdqa64 zmm13,ZMMWORD[768+rsp] + vpxorq zmm13,zmm13,zmm14 + vmovdqu64 zmm12,ZMMWORD[rbx*1+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[832+rsp] + vmovdqu64 zmm12,ZMMWORD[64+rbx*1+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + vpxorq zmm26,zmm4,zmm10 + vpxorq zmm24,zmm0,zmm6 + vpxorq zmm25,zmm3,zmm7 + vpternlogq zmm26,zmm5,zmm11,0x96 + vmovdqa64 zmm13,ZMMWORD[896+rsp] + vmovdqu64 zmm12,ZMMWORD[128+rbx*1+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[960+rsp] + vmovdqu64 zmm12,ZMMWORD[192+rbx*1+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + + vpternlogq zmm26,zmm4,zmm10,0x96 + vpternlogq zmm24,zmm0,zmm6,0x96 + vpternlogq zmm25,zmm3,zmm7,0x96 + vpternlogq zmm26,zmm5,zmm11,0x96 + add ebx,256 + mov r10d,r13d + add r10d,15 + shr r10d,4 + je NEAR $L$_last_num_blocks_is_0_506 + + cmp r10d,8 + je NEAR $L$_last_num_blocks_is_8_506 + jb NEAR $L$_last_num_blocks_is_7_1_506 + + + cmp r10d,12 + je NEAR $L$_last_num_blocks_is_12_506 + jb NEAR $L$_last_num_blocks_is_11_9_506 + + + cmp r10d,15 + je NEAR $L$_last_num_blocks_is_15_506 + ja NEAR $L$_last_num_blocks_is_16_506 + cmp r10d,14 + je NEAR $L$_last_num_blocks_is_14_506 + jmp NEAR $L$_last_num_blocks_is_13_506 + +$L$_last_num_blocks_is_11_9_506: + + cmp r10d,10 + je NEAR $L$_last_num_blocks_is_10_506 + ja NEAR $L$_last_num_blocks_is_11_506 + jmp NEAR $L$_last_num_blocks_is_9_506 + +$L$_last_num_blocks_is_7_1_506: + cmp r10d,4 + je NEAR $L$_last_num_blocks_is_4_506 + jb NEAR $L$_last_num_blocks_is_3_1_506 + + cmp r10d,6 + ja NEAR $L$_last_num_blocks_is_7_506 + je NEAR $L$_last_num_blocks_is_6_506 + jmp NEAR $L$_last_num_blocks_is_5_506 + +$L$_last_num_blocks_is_3_1_506: + + cmp r10d,2 + ja NEAR $L$_last_num_blocks_is_3_506 + je NEAR $L$_last_num_blocks_is_2_506 +$L$_last_num_blocks_is_1_506: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,255 + jae NEAR $L$_16_blocks_overflow_507 + vpaddd xmm0,xmm2,xmm28 + jmp NEAR $L$_16_blocks_ok_507 + +$L$_16_blocks_overflow_507: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb xmm0,xmm0,xmm29 +$L$_16_blocks_ok_507: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm0,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 xmm17{k1}{z},[r11*1+r9] + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc xmm0,xmm0,xmm31 + vaesenclast xmm0,xmm0,xmm30 + vpxorq xmm0,xmm0,xmm17 + vextracti32x4 xmm11,zmm0,0 + mov r10,QWORD[120+rbp] + vmovdqu8 XMMWORD[r11*1+r10]{k1},xmm0 + vmovdqu8 zmm17{k1}{z},zmm17 + vpshufb xmm17,xmm17,xmm29 + vextracti32x4 xmm7,zmm17,0 + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_508 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm17,xmm1,0x01 + vpclmulqdq xmm5,xmm17,xmm1,0x10 + vpclmulqdq xmm0,xmm17,xmm1,0x11 + vpclmulqdq xmm3,xmm17,xmm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_508 +$L$_small_initial_partial_block_508: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + + + vpsrldq zmm0,zmm26,8 + vpslldq zmm3,zmm26,8 + vpxorq zmm24,zmm24,zmm0 + vpxorq zmm25,zmm25,zmm3 + vextracti64x4 ymm0,zmm24,1 + vpxorq ymm24,ymm24,ymm0 + vextracti32x4 xmm0,ymm24,1 + vpxorq xmm24,xmm24,xmm0 + vextracti64x4 ymm3,zmm25,1 + vpxorq ymm25,ymm25,ymm3 + vextracti32x4 xmm3,ymm25,1 + vpxorq xmm25,xmm25,xmm3 + vmovdqa64 xmm0,XMMWORD[POLY2] + + + vpclmulqdq xmm3,xmm0,xmm25,0x01 + vpslldq xmm3,xmm3,8 + vpxorq xmm3,xmm25,xmm3 + + + vpclmulqdq xmm4,xmm0,xmm3,0x00 + vpsrldq xmm4,xmm4,4 + vpclmulqdq xmm14,xmm0,xmm3,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm4,xmm24,0x96 + + + + + + + + + + + + + vpxorq xmm14,xmm14,xmm7 + + jmp NEAR $L$_after_reduction_508 +$L$_small_initial_compute_done_508: +$L$_after_reduction_508: + jmp NEAR $L$_last_blocks_done_506 +$L$_last_num_blocks_is_2_506: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,254 + jae NEAR $L$_16_blocks_overflow_509 + vpaddd ymm0,ymm2,ymm28 + jmp NEAR $L$_16_blocks_ok_509 + +$L$_16_blocks_overflow_509: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb ymm0,ymm0,ymm29 +$L$_16_blocks_ok_509: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm0,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 ymm17{k1}{z},[r11*1+r9] + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc ymm0,ymm0,ymm31 + vaesenclast ymm0,ymm0,ymm30 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm11,zmm0,1 + mov r10,QWORD[120+rbp] + vmovdqu8 YMMWORD[r11*1+r10]{k1},ymm0 + vmovdqu8 zmm17{k1}{z},zmm17 + vpshufb ymm17,ymm17,ymm29 + vextracti32x4 xmm7,zmm17,1 + sub r13,16 * (2 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_510 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm17,ymm1,0x01 + vpclmulqdq ymm5,ymm17,ymm1,0x10 + vpclmulqdq ymm0,ymm17,ymm1,0x11 + vpclmulqdq ymm3,ymm17,ymm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_510 +$L$_small_initial_partial_block_510: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm17,xmm1,0x01 + vpclmulqdq xmm5,xmm17,xmm1,0x10 + vpclmulqdq xmm0,xmm17,xmm1,0x11 + vpclmulqdq xmm3,xmm17,xmm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_510: + + or r13,r13 + je NEAR $L$_after_reduction_510 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_510: + jmp NEAR $L$_last_blocks_done_506 +$L$_last_num_blocks_is_3_506: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,253 + jae NEAR $L$_16_blocks_overflow_511 + vpaddd zmm0,zmm2,zmm28 + jmp NEAR $L$_16_blocks_ok_511 + +$L$_16_blocks_overflow_511: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb zmm0,zmm0,zmm29 +$L$_16_blocks_ok_511: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm0,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17{k1}{z},[r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vpxorq zmm0,zmm0,zmm17 + vextracti32x4 xmm11,zmm0,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10]{k1},zmm0 + vmovdqu8 zmm17{k1}{z},zmm17 + vpshufb zmm17,zmm17,zmm29 + vextracti32x4 xmm7,zmm17,2 + sub r13,16 * (3 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_512 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_512 +$L$_small_initial_partial_block_512: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm17,ymm1,0x01 + vpclmulqdq ymm5,ymm17,ymm1,0x10 + vpclmulqdq ymm0,ymm17,ymm1,0x11 + vpclmulqdq ymm3,ymm17,ymm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_512: + + or r13,r13 + je NEAR $L$_after_reduction_512 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_512: + jmp NEAR $L$_last_blocks_done_506 +$L$_last_num_blocks_is_4_506: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,252 + jae NEAR $L$_16_blocks_overflow_513 + vpaddd zmm0,zmm2,zmm28 + jmp NEAR $L$_16_blocks_ok_513 + +$L$_16_blocks_overflow_513: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb zmm0,zmm0,zmm29 +$L$_16_blocks_ok_513: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm0,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17{k1}{z},[r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vpxorq zmm0,zmm0,zmm17 + vextracti32x4 xmm11,zmm0,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10]{k1},zmm0 + vmovdqu8 zmm17{k1}{z},zmm17 + vpshufb zmm17,zmm17,zmm29 + vextracti32x4 xmm7,zmm17,3 + sub r13,16 * (4 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_514 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_514 +$L$_small_initial_partial_block_514: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_514: + + or r13,r13 + je NEAR $L$_after_reduction_514 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_514: + jmp NEAR $L$_last_blocks_done_506 +$L$_last_num_blocks_is_5_506: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,251 + jae NEAR $L$_16_blocks_overflow_515 + vpaddd zmm0,zmm2,zmm28 + vpaddd xmm3,xmm0,xmm27 + jmp NEAR $L$_16_blocks_ok_515 + +$L$_16_blocks_overflow_515: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb xmm3,xmm3,xmm29 +$L$_16_blocks_ok_515: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm3,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 xmm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast xmm3,xmm3,xmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq xmm3,xmm3,xmm19 + vextracti32x4 xmm11,zmm3,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 XMMWORD[64+r11*1+r10]{k1},xmm3 + vmovdqu8 zmm19{k1}{z},zmm19 + vpshufb zmm17,zmm17,zmm29 + vpshufb xmm19,xmm19,xmm29 + vextracti32x4 xmm7,zmm19,0 + sub r13,16 * (5 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_516 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm19,xmm1,0x01 + vpclmulqdq xmm5,xmm19,xmm1,0x10 + vpclmulqdq xmm0,xmm19,xmm1,0x11 + vpclmulqdq xmm3,xmm19,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_516 +$L$_small_initial_partial_block_516: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_516: + + or r13,r13 + je NEAR $L$_after_reduction_516 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_516: + jmp NEAR $L$_last_blocks_done_506 +$L$_last_num_blocks_is_6_506: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,250 + jae NEAR $L$_16_blocks_overflow_517 + vpaddd zmm0,zmm2,zmm28 + vpaddd ymm3,ymm0,ymm27 + jmp NEAR $L$_16_blocks_ok_517 + +$L$_16_blocks_overflow_517: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb ymm3,ymm3,ymm29 +$L$_16_blocks_ok_517: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm3,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 ymm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast ymm3,ymm3,ymm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm11,zmm3,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 YMMWORD[64+r11*1+r10]{k1},ymm3 + vmovdqu8 zmm19{k1}{z},zmm19 + vpshufb zmm17,zmm17,zmm29 + vpshufb ymm19,ymm19,ymm29 + vextracti32x4 xmm7,zmm19,1 + sub r13,16 * (6 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_518 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm19,ymm1,0x01 + vpclmulqdq ymm5,ymm19,ymm1,0x10 + vpclmulqdq ymm0,ymm19,ymm1,0x11 + vpclmulqdq ymm3,ymm19,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_518 +$L$_small_initial_partial_block_518: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm19,xmm1,0x01 + vpclmulqdq xmm5,xmm19,xmm1,0x10 + vpclmulqdq xmm0,xmm19,xmm1,0x11 + vpclmulqdq xmm3,xmm19,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_518: + + or r13,r13 + je NEAR $L$_after_reduction_518 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_518: + jmp NEAR $L$_last_blocks_done_506 +$L$_last_num_blocks_is_7_506: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,249 + jae NEAR $L$_16_blocks_overflow_519 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + jmp NEAR $L$_16_blocks_ok_519 + +$L$_16_blocks_overflow_519: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 +$L$_16_blocks_ok_519: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm3,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti32x4 xmm11,zmm3,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10]{k1},zmm3 + vmovdqu8 zmm19{k1}{z},zmm19 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vextracti32x4 xmm7,zmm19,2 + sub r13,16 * (7 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_520 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm19,zmm1,0x01 + vpclmulqdq zmm5,zmm19,zmm1,0x10 + vpclmulqdq zmm0,zmm19,zmm1,0x11 + vpclmulqdq zmm3,zmm19,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_520 +$L$_small_initial_partial_block_520: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm19,ymm1,0x01 + vpclmulqdq ymm5,ymm19,ymm1,0x10 + vpclmulqdq ymm0,ymm19,ymm1,0x11 + vpclmulqdq ymm3,ymm19,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_520: + + or r13,r13 + je NEAR $L$_after_reduction_520 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_520: + jmp NEAR $L$_last_blocks_done_506 +$L$_last_num_blocks_is_8_506: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,248 + jae NEAR $L$_16_blocks_overflow_521 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + jmp NEAR $L$_16_blocks_ok_521 + +$L$_16_blocks_overflow_521: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 +$L$_16_blocks_ok_521: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm3,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti32x4 xmm11,zmm3,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10]{k1},zmm3 + vmovdqu8 zmm19{k1}{z},zmm19 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vextracti32x4 xmm7,zmm19,3 + sub r13,16 * (8 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_522 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_522 +$L$_small_initial_partial_block_522: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm19,zmm1,0x01 + vpclmulqdq zmm5,zmm19,zmm1,0x10 + vpclmulqdq zmm0,zmm19,zmm1,0x11 + vpclmulqdq zmm3,zmm19,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_522: + + or r13,r13 + je NEAR $L$_after_reduction_522 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_522: + jmp NEAR $L$_last_blocks_done_506 +$L$_last_num_blocks_is_9_506: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,247 + jae NEAR $L$_16_blocks_overflow_523 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd xmm4,xmm3,xmm27 + jmp NEAR $L$_16_blocks_ok_523 + +$L$_16_blocks_overflow_523: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb xmm4,xmm4,xmm29 +$L$_16_blocks_ok_523: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm4,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 xmm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast xmm4,xmm4,xmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq xmm4,xmm4,xmm20 + vextracti32x4 xmm11,zmm4,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 XMMWORD[128+r11*1+r10]{k1},xmm4 + vmovdqu8 zmm20{k1}{z},zmm20 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb xmm20,xmm20,xmm29 + vextracti32x4 xmm7,zmm20,0 + sub r13,16 * (9 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_524 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm20,xmm1,0x01 + vpclmulqdq xmm5,xmm20,xmm1,0x10 + vpclmulqdq xmm0,xmm20,xmm1,0x11 + vpclmulqdq xmm3,xmm20,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_524 +$L$_small_initial_partial_block_524: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_524: + + or r13,r13 + je NEAR $L$_after_reduction_524 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_524: + jmp NEAR $L$_last_blocks_done_506 +$L$_last_num_blocks_is_10_506: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,246 + jae NEAR $L$_16_blocks_overflow_525 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd ymm4,ymm3,ymm27 + jmp NEAR $L$_16_blocks_ok_525 + +$L$_16_blocks_overflow_525: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb ymm4,ymm4,ymm29 +$L$_16_blocks_ok_525: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm4,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 ymm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast ymm4,ymm4,ymm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq ymm4,ymm4,ymm20 + vextracti32x4 xmm11,zmm4,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 YMMWORD[128+r11*1+r10]{k1},ymm4 + vmovdqu8 zmm20{k1}{z},zmm20 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb ymm20,ymm20,ymm29 + vextracti32x4 xmm7,zmm20,1 + sub r13,16 * (10 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_526 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm20,ymm1,0x01 + vpclmulqdq ymm5,ymm20,ymm1,0x10 + vpclmulqdq ymm0,ymm20,ymm1,0x11 + vpclmulqdq ymm3,ymm20,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_526 +$L$_small_initial_partial_block_526: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm20,xmm1,0x01 + vpclmulqdq xmm5,xmm20,xmm1,0x10 + vpclmulqdq xmm0,xmm20,xmm1,0x11 + vpclmulqdq xmm3,xmm20,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_526: + + or r13,r13 + je NEAR $L$_after_reduction_526 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_526: + jmp NEAR $L$_last_blocks_done_506 +$L$_last_num_blocks_is_11_506: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,245 + jae NEAR $L$_16_blocks_overflow_527 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + jmp NEAR $L$_16_blocks_ok_527 + +$L$_16_blocks_overflow_527: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 +$L$_16_blocks_ok_527: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm4,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vextracti32x4 xmm11,zmm4,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10]{k1},zmm4 + vmovdqu8 zmm20{k1}{z},zmm20 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb zmm20,zmm20,zmm29 + vextracti32x4 xmm7,zmm20,2 + sub r13,16 * (11 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_528 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm20,zmm1,0x01 + vpclmulqdq zmm5,zmm20,zmm1,0x10 + vpclmulqdq zmm0,zmm20,zmm1,0x11 + vpclmulqdq zmm3,zmm20,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_528 +$L$_small_initial_partial_block_528: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm20,ymm1,0x01 + vpclmulqdq ymm5,ymm20,ymm1,0x10 + vpclmulqdq ymm0,ymm20,ymm1,0x11 + vpclmulqdq ymm3,ymm20,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_528: + + or r13,r13 + je NEAR $L$_after_reduction_528 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_528: + jmp NEAR $L$_last_blocks_done_506 +$L$_last_num_blocks_is_12_506: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,244 + jae NEAR $L$_16_blocks_overflow_529 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + jmp NEAR $L$_16_blocks_ok_529 + +$L$_16_blocks_overflow_529: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 +$L$_16_blocks_ok_529: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm4,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vextracti32x4 xmm11,zmm4,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10]{k1},zmm4 + vmovdqu8 zmm20{k1}{z},zmm20 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb zmm20,zmm20,zmm29 + vextracti32x4 xmm7,zmm20,3 + sub r13,16 * (12 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_530 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[160+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_530 +$L$_small_initial_partial_block_530: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm20,zmm1,0x01 + vpclmulqdq zmm5,zmm20,zmm1,0x10 + vpclmulqdq zmm0,zmm20,zmm1,0x11 + vpclmulqdq zmm3,zmm20,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_530: + + or r13,r13 + je NEAR $L$_after_reduction_530 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_530: + jmp NEAR $L$_last_blocks_done_506 +$L$_last_num_blocks_is_13_506: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,243 + jae NEAR $L$_16_blocks_overflow_531 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd xmm5,xmm4,xmm27 + jmp NEAR $L$_16_blocks_ok_531 + +$L$_16_blocks_overflow_531: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb xmm5,xmm5,xmm29 +$L$_16_blocks_ok_531: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm5,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 xmm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast xmm5,xmm5,xmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq xmm5,xmm5,xmm21 + vextracti32x4 xmm11,zmm5,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 XMMWORD[192+r11*1+r10]{k1},xmm5 + vmovdqu8 zmm21{k1}{z},zmm21 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb zmm20,zmm20,zmm29 + vpshufb xmm21,xmm21,xmm29 + vextracti32x4 xmm7,zmm21,0 + sub r13,16 * (13 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_532 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[144+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm21,xmm1,0x01 + vpclmulqdq xmm5,xmm21,xmm1,0x10 + vpclmulqdq xmm0,xmm21,xmm1,0x11 + vpclmulqdq xmm3,xmm21,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_532 +$L$_small_initial_partial_block_532: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[160+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_532: + + or r13,r13 + je NEAR $L$_after_reduction_532 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_532: + jmp NEAR $L$_last_blocks_done_506 +$L$_last_num_blocks_is_14_506: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,242 + jae NEAR $L$_16_blocks_overflow_533 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd ymm5,ymm4,ymm27 + jmp NEAR $L$_16_blocks_ok_533 + +$L$_16_blocks_overflow_533: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb ymm5,ymm5,ymm29 +$L$_16_blocks_ok_533: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm5,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 ymm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast ymm5,ymm5,ymm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq ymm5,ymm5,ymm21 + vextracti32x4 xmm11,zmm5,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 YMMWORD[192+r11*1+r10]{k1},ymm5 + vmovdqu8 zmm21{k1}{z},zmm21 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb zmm20,zmm20,zmm29 + vpshufb ymm21,ymm21,ymm29 + vextracti32x4 xmm7,zmm21,1 + sub r13,16 * (14 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_534 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[128+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm21,ymm1,0x01 + vpclmulqdq ymm5,ymm21,ymm1,0x10 + vpclmulqdq ymm0,ymm21,ymm1,0x11 + vpclmulqdq ymm3,ymm21,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_534 +$L$_small_initial_partial_block_534: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[144+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm21,xmm1,0x01 + vpclmulqdq xmm5,xmm21,xmm1,0x10 + vpclmulqdq xmm0,xmm21,xmm1,0x11 + vpclmulqdq xmm3,xmm21,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_534: + + or r13,r13 + je NEAR $L$_after_reduction_534 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_534: + jmp NEAR $L$_last_blocks_done_506 +$L$_last_num_blocks_is_15_506: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,241 + jae NEAR $L$_16_blocks_overflow_535 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_535 + +$L$_16_blocks_overflow_535: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_535: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm5,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + vextracti32x4 xmm11,zmm5,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[192+r11*1+r10]{k1},zmm5 + vmovdqu8 zmm21{k1}{z},zmm21 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb zmm20,zmm20,zmm29 + vpshufb zmm21,zmm21,zmm29 + vextracti32x4 xmm7,zmm21,2 + sub r13,16 * (15 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_536 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[112+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm21,zmm1,0x01 + vpclmulqdq zmm5,zmm21,zmm1,0x10 + vpclmulqdq zmm0,zmm21,zmm1,0x11 + vpclmulqdq zmm3,zmm21,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_536 +$L$_small_initial_partial_block_536: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[128+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm21,ymm1,0x01 + vpclmulqdq ymm5,ymm21,ymm1,0x10 + vpclmulqdq ymm0,ymm21,ymm1,0x11 + vpclmulqdq ymm3,ymm21,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_536: + + or r13,r13 + je NEAR $L$_after_reduction_536 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_536: + jmp NEAR $L$_last_blocks_done_506 +$L$_last_num_blocks_is_16_506: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,240 + jae NEAR $L$_16_blocks_overflow_537 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_537 + +$L$_16_blocks_overflow_537: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_537: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm5,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + vextracti32x4 xmm11,zmm5,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[192+r11*1+r10]{k1},zmm5 + vmovdqu8 zmm21{k1}{z},zmm21 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb zmm20,zmm20,zmm29 + vpshufb zmm21,zmm21,zmm29 + vextracti32x4 xmm7,zmm21,3 + sub r13,16 * (16 - 1) +$L$_small_initial_partial_block_538: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[112+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm21,zmm1,0x01 + vpclmulqdq zmm5,zmm21,zmm1,0x10 + vpclmulqdq zmm0,zmm21,zmm1,0x11 + vpclmulqdq zmm3,zmm21,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_538: + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_538: + jmp NEAR $L$_last_blocks_done_506 +$L$_last_num_blocks_is_0_506: + vmovdqa64 zmm13,ZMMWORD[1024+rsp] + vmovdqu64 zmm12,ZMMWORD[rbx*1+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[1088+rsp] + vmovdqu64 zmm12,ZMMWORD[64+rbx*1+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + vpternlogq zmm26,zmm4,zmm10,0x96 + vpternlogq zmm24,zmm0,zmm6,0x96 + vpternlogq zmm25,zmm3,zmm7,0x96 + vpternlogq zmm26,zmm5,zmm11,0x96 + vmovdqa64 zmm13,ZMMWORD[1152+rsp] + vmovdqu64 zmm12,ZMMWORD[128+rbx*1+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[1216+rsp] + vmovdqu64 zmm12,ZMMWORD[192+rbx*1+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + + vpternlogq zmm26,zmm4,zmm10,0x96 + vpternlogq zmm24,zmm0,zmm6,0x96 + vpternlogq zmm25,zmm3,zmm7,0x96 + vpternlogq zmm26,zmm5,zmm11,0x96 + + vpsrldq zmm0,zmm26,8 + vpslldq zmm3,zmm26,8 + vpxorq zmm24,zmm24,zmm0 + vpxorq zmm25,zmm25,zmm3 + vextracti64x4 ymm0,zmm24,1 + vpxorq ymm24,ymm24,ymm0 + vextracti32x4 xmm0,ymm24,1 + vpxorq xmm24,xmm24,xmm0 + vextracti64x4 ymm3,zmm25,1 + vpxorq ymm25,ymm25,ymm3 + vextracti32x4 xmm3,ymm25,1 + vpxorq xmm25,xmm25,xmm3 + vmovdqa64 xmm4,XMMWORD[POLY2] + + + vpclmulqdq xmm0,xmm4,xmm25,0x01 + vpslldq xmm0,xmm0,8 + vpxorq xmm0,xmm25,xmm0 + + + vpclmulqdq xmm3,xmm4,xmm0,0x00 + vpsrldq xmm3,xmm3,4 + vpclmulqdq xmm14,xmm4,xmm0,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm3,xmm24,0x96 + +$L$_last_blocks_done_506: + vpshufb xmm2,xmm2,xmm29 + jmp NEAR $L$_ghash_done_497 +$L$_encrypt_32_blocks_497: + cmp r15b,240 + jae NEAR $L$_16_blocks_overflow_539 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_539 +$L$_16_blocks_overflow_539: + vpshufb zmm2,zmm2,zmm29 + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_539: + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rsp] + + + + + vshufi64x2 zmm2,zmm5,zmm5,255 + add r15b,16 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + + + + + + + + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + + vpclmulqdq zmm6,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + + vpternlogq zmm6,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + + + + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm21,ZMMWORD[192+r11*1+r9] + + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm26,zmm10,zmm15 + vpxorq zmm24,zmm6,zmm12 + vpxorq zmm25,zmm7,zmm13 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + + + + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + + + + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[192+r11*1+r10],zmm5 + vpshufb zmm0,zmm17,zmm29 + vpshufb zmm3,zmm19,zmm29 + vpshufb zmm4,zmm20,zmm29 + vpshufb zmm5,zmm21,zmm29 + vmovdqa64 ZMMWORD[1280+rsp],zmm0 + vmovdqa64 ZMMWORD[1344+rsp],zmm3 + vmovdqa64 ZMMWORD[1408+rsp],zmm4 + vmovdqa64 ZMMWORD[1472+rsp],zmm5 + cmp r15b,240 + jae NEAR $L$_16_blocks_overflow_540 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_540 +$L$_16_blocks_overflow_540: + vpshufb zmm2,zmm2,zmm29 + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_540: + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[256+rsp] + + + + + vshufi64x2 zmm2,zmm5,zmm5,255 + add r15b,16 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[320+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + + + + + + + + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + + vpclmulqdq zmm6,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[384+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[448+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + + vpternlogq zmm6,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + + + + vmovdqu8 zmm17,ZMMWORD[256+r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[320+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[384+r11*1+r9] + vmovdqu8 zmm21,ZMMWORD[448+r11*1+r9] + + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vpternlogq zmm24,zmm6,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + + + + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + + + + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[256+r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[320+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[384+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[448+r11*1+r10],zmm5 + vpshufb zmm0,zmm17,zmm29 + vpshufb zmm3,zmm19,zmm29 + vpshufb zmm4,zmm20,zmm29 + vpshufb zmm5,zmm21,zmm29 + vmovdqa64 ZMMWORD[768+rsp],zmm0 + vmovdqa64 ZMMWORD[832+rsp],zmm3 + vmovdqa64 ZMMWORD[896+rsp],zmm4 + vmovdqa64 ZMMWORD[960+rsp],zmm5 + vmovdqa64 zmm13,ZMMWORD[1280+rsp] + vmovdqu64 zmm12,ZMMWORD[512+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[1344+rsp] + vmovdqu64 zmm12,ZMMWORD[576+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + vpternlogq zmm26,zmm4,zmm10,0x96 + vpternlogq zmm24,zmm0,zmm6,0x96 + vpternlogq zmm25,zmm3,zmm7,0x96 + vpternlogq zmm26,zmm5,zmm11,0x96 + vmovdqa64 zmm13,ZMMWORD[1408+rsp] + vmovdqu64 zmm12,ZMMWORD[640+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[1472+rsp] + vmovdqu64 zmm12,ZMMWORD[704+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + + vpternlogq zmm26,zmm4,zmm10,0x96 + vpternlogq zmm24,zmm0,zmm6,0x96 + vpternlogq zmm25,zmm3,zmm7,0x96 + vpternlogq zmm26,zmm5,zmm11,0x96 + + vpsrldq zmm0,zmm26,8 + vpslldq zmm3,zmm26,8 + vpxorq zmm24,zmm24,zmm0 + vpxorq zmm25,zmm25,zmm3 + vextracti64x4 ymm0,zmm24,1 + vpxorq ymm24,ymm24,ymm0 + vextracti32x4 xmm0,ymm24,1 + vpxorq xmm24,xmm24,xmm0 + vextracti64x4 ymm3,zmm25,1 + vpxorq ymm25,ymm25,ymm3 + vextracti32x4 xmm3,ymm25,1 + vpxorq xmm25,xmm25,xmm3 + vmovdqa64 xmm4,XMMWORD[POLY2] + + + vpclmulqdq xmm0,xmm4,xmm25,0x01 + vpslldq xmm0,xmm0,8 + vpxorq xmm0,xmm25,xmm0 + + + vpclmulqdq xmm3,xmm4,xmm0,0x00 + vpsrldq xmm3,xmm3,4 + vpclmulqdq xmm14,xmm4,xmm0,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm3,xmm24,0x96 + + sub r13,512 + add r11,512 + mov r10d,r13d + and r10d,~15 + mov ebx,512 + sub ebx,r10d + mov r10d,r13d + add r10d,15 + shr r10d,4 + je NEAR $L$_last_num_blocks_is_0_541 + + cmp r10d,8 + je NEAR $L$_last_num_blocks_is_8_541 + jb NEAR $L$_last_num_blocks_is_7_1_541 + + + cmp r10d,12 + je NEAR $L$_last_num_blocks_is_12_541 + jb NEAR $L$_last_num_blocks_is_11_9_541 + + + cmp r10d,15 + je NEAR $L$_last_num_blocks_is_15_541 + ja NEAR $L$_last_num_blocks_is_16_541 + cmp r10d,14 + je NEAR $L$_last_num_blocks_is_14_541 + jmp NEAR $L$_last_num_blocks_is_13_541 + +$L$_last_num_blocks_is_11_9_541: + + cmp r10d,10 + je NEAR $L$_last_num_blocks_is_10_541 + ja NEAR $L$_last_num_blocks_is_11_541 + jmp NEAR $L$_last_num_blocks_is_9_541 + +$L$_last_num_blocks_is_7_1_541: + cmp r10d,4 + je NEAR $L$_last_num_blocks_is_4_541 + jb NEAR $L$_last_num_blocks_is_3_1_541 + + cmp r10d,6 + ja NEAR $L$_last_num_blocks_is_7_541 + je NEAR $L$_last_num_blocks_is_6_541 + jmp NEAR $L$_last_num_blocks_is_5_541 + +$L$_last_num_blocks_is_3_1_541: + + cmp r10d,2 + ja NEAR $L$_last_num_blocks_is_3_541 + je NEAR $L$_last_num_blocks_is_2_541 +$L$_last_num_blocks_is_1_541: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,255 + jae NEAR $L$_16_blocks_overflow_542 + vpaddd xmm0,xmm2,xmm28 + jmp NEAR $L$_16_blocks_ok_542 + +$L$_16_blocks_overflow_542: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb xmm0,xmm0,xmm29 +$L$_16_blocks_ok_542: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm0,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 xmm17{k1}{z},[r11*1+r9] + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc xmm0,xmm0,xmm31 + vaesenclast xmm0,xmm0,xmm30 + vpxorq xmm0,xmm0,xmm17 + vextracti32x4 xmm11,zmm0,0 + mov r10,QWORD[120+rbp] + vmovdqu8 XMMWORD[r11*1+r10]{k1},xmm0 + vmovdqu8 zmm17{k1}{z},zmm17 + vpshufb xmm17,xmm17,xmm29 + vextracti32x4 xmm7,zmm17,0 + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_543 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm17,xmm1,0x01 + vpclmulqdq xmm5,xmm17,xmm1,0x10 + vpclmulqdq xmm0,xmm17,xmm1,0x11 + vpclmulqdq xmm3,xmm17,xmm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_543 +$L$_small_initial_partial_block_543: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + + + vpsrldq zmm0,zmm26,8 + vpslldq zmm3,zmm26,8 + vpxorq zmm24,zmm24,zmm0 + vpxorq zmm25,zmm25,zmm3 + vextracti64x4 ymm0,zmm24,1 + vpxorq ymm24,ymm24,ymm0 + vextracti32x4 xmm0,ymm24,1 + vpxorq xmm24,xmm24,xmm0 + vextracti64x4 ymm3,zmm25,1 + vpxorq ymm25,ymm25,ymm3 + vextracti32x4 xmm3,ymm25,1 + vpxorq xmm25,xmm25,xmm3 + vmovdqa64 xmm0,XMMWORD[POLY2] + + + vpclmulqdq xmm3,xmm0,xmm25,0x01 + vpslldq xmm3,xmm3,8 + vpxorq xmm3,xmm25,xmm3 + + + vpclmulqdq xmm4,xmm0,xmm3,0x00 + vpsrldq xmm4,xmm4,4 + vpclmulqdq xmm14,xmm0,xmm3,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm4,xmm24,0x96 + + + + + + + + + + + + + vpxorq xmm14,xmm14,xmm7 + + jmp NEAR $L$_after_reduction_543 +$L$_small_initial_compute_done_543: +$L$_after_reduction_543: + jmp NEAR $L$_last_blocks_done_541 +$L$_last_num_blocks_is_2_541: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,254 + jae NEAR $L$_16_blocks_overflow_544 + vpaddd ymm0,ymm2,ymm28 + jmp NEAR $L$_16_blocks_ok_544 + +$L$_16_blocks_overflow_544: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb ymm0,ymm0,ymm29 +$L$_16_blocks_ok_544: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm0,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 ymm17{k1}{z},[r11*1+r9] + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc ymm0,ymm0,ymm31 + vaesenclast ymm0,ymm0,ymm30 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm11,zmm0,1 + mov r10,QWORD[120+rbp] + vmovdqu8 YMMWORD[r11*1+r10]{k1},ymm0 + vmovdqu8 zmm17{k1}{z},zmm17 + vpshufb ymm17,ymm17,ymm29 + vextracti32x4 xmm7,zmm17,1 + sub r13,16 * (2 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_545 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm17,ymm1,0x01 + vpclmulqdq ymm5,ymm17,ymm1,0x10 + vpclmulqdq ymm0,ymm17,ymm1,0x11 + vpclmulqdq ymm3,ymm17,ymm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_545 +$L$_small_initial_partial_block_545: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm17,xmm1,0x01 + vpclmulqdq xmm5,xmm17,xmm1,0x10 + vpclmulqdq xmm0,xmm17,xmm1,0x11 + vpclmulqdq xmm3,xmm17,xmm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_545: + + or r13,r13 + je NEAR $L$_after_reduction_545 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_545: + jmp NEAR $L$_last_blocks_done_541 +$L$_last_num_blocks_is_3_541: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,253 + jae NEAR $L$_16_blocks_overflow_546 + vpaddd zmm0,zmm2,zmm28 + jmp NEAR $L$_16_blocks_ok_546 + +$L$_16_blocks_overflow_546: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb zmm0,zmm0,zmm29 +$L$_16_blocks_ok_546: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm0,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17{k1}{z},[r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vpxorq zmm0,zmm0,zmm17 + vextracti32x4 xmm11,zmm0,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10]{k1},zmm0 + vmovdqu8 zmm17{k1}{z},zmm17 + vpshufb zmm17,zmm17,zmm29 + vextracti32x4 xmm7,zmm17,2 + sub r13,16 * (3 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_547 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_547 +$L$_small_initial_partial_block_547: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm17,ymm1,0x01 + vpclmulqdq ymm5,ymm17,ymm1,0x10 + vpclmulqdq ymm0,ymm17,ymm1,0x11 + vpclmulqdq ymm3,ymm17,ymm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_547: + + or r13,r13 + je NEAR $L$_after_reduction_547 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_547: + jmp NEAR $L$_last_blocks_done_541 +$L$_last_num_blocks_is_4_541: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,252 + jae NEAR $L$_16_blocks_overflow_548 + vpaddd zmm0,zmm2,zmm28 + jmp NEAR $L$_16_blocks_ok_548 + +$L$_16_blocks_overflow_548: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb zmm0,zmm0,zmm29 +$L$_16_blocks_ok_548: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm0,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17{k1}{z},[r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vpxorq zmm0,zmm0,zmm17 + vextracti32x4 xmm11,zmm0,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10]{k1},zmm0 + vmovdqu8 zmm17{k1}{z},zmm17 + vpshufb zmm17,zmm17,zmm29 + vextracti32x4 xmm7,zmm17,3 + sub r13,16 * (4 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_549 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_549 +$L$_small_initial_partial_block_549: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_549: + + or r13,r13 + je NEAR $L$_after_reduction_549 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_549: + jmp NEAR $L$_last_blocks_done_541 +$L$_last_num_blocks_is_5_541: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,251 + jae NEAR $L$_16_blocks_overflow_550 + vpaddd zmm0,zmm2,zmm28 + vpaddd xmm3,xmm0,xmm27 + jmp NEAR $L$_16_blocks_ok_550 + +$L$_16_blocks_overflow_550: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb xmm3,xmm3,xmm29 +$L$_16_blocks_ok_550: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm3,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 xmm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast xmm3,xmm3,xmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq xmm3,xmm3,xmm19 + vextracti32x4 xmm11,zmm3,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 XMMWORD[64+r11*1+r10]{k1},xmm3 + vmovdqu8 zmm19{k1}{z},zmm19 + vpshufb zmm17,zmm17,zmm29 + vpshufb xmm19,xmm19,xmm29 + vextracti32x4 xmm7,zmm19,0 + sub r13,16 * (5 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_551 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm19,xmm1,0x01 + vpclmulqdq xmm5,xmm19,xmm1,0x10 + vpclmulqdq xmm0,xmm19,xmm1,0x11 + vpclmulqdq xmm3,xmm19,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_551 +$L$_small_initial_partial_block_551: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_551: + + or r13,r13 + je NEAR $L$_after_reduction_551 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_551: + jmp NEAR $L$_last_blocks_done_541 +$L$_last_num_blocks_is_6_541: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,250 + jae NEAR $L$_16_blocks_overflow_552 + vpaddd zmm0,zmm2,zmm28 + vpaddd ymm3,ymm0,ymm27 + jmp NEAR $L$_16_blocks_ok_552 + +$L$_16_blocks_overflow_552: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb ymm3,ymm3,ymm29 +$L$_16_blocks_ok_552: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm3,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 ymm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast ymm3,ymm3,ymm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm11,zmm3,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 YMMWORD[64+r11*1+r10]{k1},ymm3 + vmovdqu8 zmm19{k1}{z},zmm19 + vpshufb zmm17,zmm17,zmm29 + vpshufb ymm19,ymm19,ymm29 + vextracti32x4 xmm7,zmm19,1 + sub r13,16 * (6 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_553 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm19,ymm1,0x01 + vpclmulqdq ymm5,ymm19,ymm1,0x10 + vpclmulqdq ymm0,ymm19,ymm1,0x11 + vpclmulqdq ymm3,ymm19,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_553 +$L$_small_initial_partial_block_553: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm19,xmm1,0x01 + vpclmulqdq xmm5,xmm19,xmm1,0x10 + vpclmulqdq xmm0,xmm19,xmm1,0x11 + vpclmulqdq xmm3,xmm19,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_553: + + or r13,r13 + je NEAR $L$_after_reduction_553 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_553: + jmp NEAR $L$_last_blocks_done_541 +$L$_last_num_blocks_is_7_541: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,249 + jae NEAR $L$_16_blocks_overflow_554 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + jmp NEAR $L$_16_blocks_ok_554 + +$L$_16_blocks_overflow_554: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 +$L$_16_blocks_ok_554: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm3,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti32x4 xmm11,zmm3,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10]{k1},zmm3 + vmovdqu8 zmm19{k1}{z},zmm19 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vextracti32x4 xmm7,zmm19,2 + sub r13,16 * (7 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_555 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm19,zmm1,0x01 + vpclmulqdq zmm5,zmm19,zmm1,0x10 + vpclmulqdq zmm0,zmm19,zmm1,0x11 + vpclmulqdq zmm3,zmm19,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_555 +$L$_small_initial_partial_block_555: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm19,ymm1,0x01 + vpclmulqdq ymm5,ymm19,ymm1,0x10 + vpclmulqdq ymm0,ymm19,ymm1,0x11 + vpclmulqdq ymm3,ymm19,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_555: + + or r13,r13 + je NEAR $L$_after_reduction_555 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_555: + jmp NEAR $L$_last_blocks_done_541 +$L$_last_num_blocks_is_8_541: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,248 + jae NEAR $L$_16_blocks_overflow_556 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + jmp NEAR $L$_16_blocks_ok_556 + +$L$_16_blocks_overflow_556: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 +$L$_16_blocks_ok_556: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm3,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti32x4 xmm11,zmm3,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10]{k1},zmm3 + vmovdqu8 zmm19{k1}{z},zmm19 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vextracti32x4 xmm7,zmm19,3 + sub r13,16 * (8 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_557 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_557 +$L$_small_initial_partial_block_557: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm19,zmm1,0x01 + vpclmulqdq zmm5,zmm19,zmm1,0x10 + vpclmulqdq zmm0,zmm19,zmm1,0x11 + vpclmulqdq zmm3,zmm19,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_557: + + or r13,r13 + je NEAR $L$_after_reduction_557 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_557: + jmp NEAR $L$_last_blocks_done_541 +$L$_last_num_blocks_is_9_541: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,247 + jae NEAR $L$_16_blocks_overflow_558 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd xmm4,xmm3,xmm27 + jmp NEAR $L$_16_blocks_ok_558 + +$L$_16_blocks_overflow_558: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb xmm4,xmm4,xmm29 +$L$_16_blocks_ok_558: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm4,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 xmm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast xmm4,xmm4,xmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq xmm4,xmm4,xmm20 + vextracti32x4 xmm11,zmm4,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 XMMWORD[128+r11*1+r10]{k1},xmm4 + vmovdqu8 zmm20{k1}{z},zmm20 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb xmm20,xmm20,xmm29 + vextracti32x4 xmm7,zmm20,0 + sub r13,16 * (9 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_559 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm20,xmm1,0x01 + vpclmulqdq xmm5,xmm20,xmm1,0x10 + vpclmulqdq xmm0,xmm20,xmm1,0x11 + vpclmulqdq xmm3,xmm20,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_559 +$L$_small_initial_partial_block_559: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_559: + + or r13,r13 + je NEAR $L$_after_reduction_559 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_559: + jmp NEAR $L$_last_blocks_done_541 +$L$_last_num_blocks_is_10_541: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,246 + jae NEAR $L$_16_blocks_overflow_560 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd ymm4,ymm3,ymm27 + jmp NEAR $L$_16_blocks_ok_560 + +$L$_16_blocks_overflow_560: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb ymm4,ymm4,ymm29 +$L$_16_blocks_ok_560: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm4,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 ymm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast ymm4,ymm4,ymm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq ymm4,ymm4,ymm20 + vextracti32x4 xmm11,zmm4,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 YMMWORD[128+r11*1+r10]{k1},ymm4 + vmovdqu8 zmm20{k1}{z},zmm20 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb ymm20,ymm20,ymm29 + vextracti32x4 xmm7,zmm20,1 + sub r13,16 * (10 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_561 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm20,ymm1,0x01 + vpclmulqdq ymm5,ymm20,ymm1,0x10 + vpclmulqdq ymm0,ymm20,ymm1,0x11 + vpclmulqdq ymm3,ymm20,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_561 +$L$_small_initial_partial_block_561: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm20,xmm1,0x01 + vpclmulqdq xmm5,xmm20,xmm1,0x10 + vpclmulqdq xmm0,xmm20,xmm1,0x11 + vpclmulqdq xmm3,xmm20,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_561: + + or r13,r13 + je NEAR $L$_after_reduction_561 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_561: + jmp NEAR $L$_last_blocks_done_541 +$L$_last_num_blocks_is_11_541: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,245 + jae NEAR $L$_16_blocks_overflow_562 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + jmp NEAR $L$_16_blocks_ok_562 + +$L$_16_blocks_overflow_562: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 +$L$_16_blocks_ok_562: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm4,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vextracti32x4 xmm11,zmm4,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10]{k1},zmm4 + vmovdqu8 zmm20{k1}{z},zmm20 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb zmm20,zmm20,zmm29 + vextracti32x4 xmm7,zmm20,2 + sub r13,16 * (11 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_563 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm20,zmm1,0x01 + vpclmulqdq zmm5,zmm20,zmm1,0x10 + vpclmulqdq zmm0,zmm20,zmm1,0x11 + vpclmulqdq zmm3,zmm20,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_563 +$L$_small_initial_partial_block_563: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm20,ymm1,0x01 + vpclmulqdq ymm5,ymm20,ymm1,0x10 + vpclmulqdq ymm0,ymm20,ymm1,0x11 + vpclmulqdq ymm3,ymm20,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_563: + + or r13,r13 + je NEAR $L$_after_reduction_563 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_563: + jmp NEAR $L$_last_blocks_done_541 +$L$_last_num_blocks_is_12_541: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,244 + jae NEAR $L$_16_blocks_overflow_564 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + jmp NEAR $L$_16_blocks_ok_564 + +$L$_16_blocks_overflow_564: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 +$L$_16_blocks_ok_564: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm4,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vextracti32x4 xmm11,zmm4,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10]{k1},zmm4 + vmovdqu8 zmm20{k1}{z},zmm20 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb zmm20,zmm20,zmm29 + vextracti32x4 xmm7,zmm20,3 + sub r13,16 * (12 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_565 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[160+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_565 +$L$_small_initial_partial_block_565: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm20,zmm1,0x01 + vpclmulqdq zmm5,zmm20,zmm1,0x10 + vpclmulqdq zmm0,zmm20,zmm1,0x11 + vpclmulqdq zmm3,zmm20,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_565: + + or r13,r13 + je NEAR $L$_after_reduction_565 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_565: + jmp NEAR $L$_last_blocks_done_541 +$L$_last_num_blocks_is_13_541: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,243 + jae NEAR $L$_16_blocks_overflow_566 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd xmm5,xmm4,xmm27 + jmp NEAR $L$_16_blocks_ok_566 + +$L$_16_blocks_overflow_566: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb xmm5,xmm5,xmm29 +$L$_16_blocks_ok_566: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm5,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 xmm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast xmm5,xmm5,xmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq xmm5,xmm5,xmm21 + vextracti32x4 xmm11,zmm5,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 XMMWORD[192+r11*1+r10]{k1},xmm5 + vmovdqu8 zmm21{k1}{z},zmm21 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb zmm20,zmm20,zmm29 + vpshufb xmm21,xmm21,xmm29 + vextracti32x4 xmm7,zmm21,0 + sub r13,16 * (13 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_567 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[144+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm21,xmm1,0x01 + vpclmulqdq xmm5,xmm21,xmm1,0x10 + vpclmulqdq xmm0,xmm21,xmm1,0x11 + vpclmulqdq xmm3,xmm21,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_567 +$L$_small_initial_partial_block_567: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[160+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_567: + + or r13,r13 + je NEAR $L$_after_reduction_567 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_567: + jmp NEAR $L$_last_blocks_done_541 +$L$_last_num_blocks_is_14_541: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,242 + jae NEAR $L$_16_blocks_overflow_568 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd ymm5,ymm4,ymm27 + jmp NEAR $L$_16_blocks_ok_568 + +$L$_16_blocks_overflow_568: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb ymm5,ymm5,ymm29 +$L$_16_blocks_ok_568: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm5,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 ymm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast ymm5,ymm5,ymm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq ymm5,ymm5,ymm21 + vextracti32x4 xmm11,zmm5,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 YMMWORD[192+r11*1+r10]{k1},ymm5 + vmovdqu8 zmm21{k1}{z},zmm21 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb zmm20,zmm20,zmm29 + vpshufb ymm21,ymm21,ymm29 + vextracti32x4 xmm7,zmm21,1 + sub r13,16 * (14 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_569 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[128+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm21,ymm1,0x01 + vpclmulqdq ymm5,ymm21,ymm1,0x10 + vpclmulqdq ymm0,ymm21,ymm1,0x11 + vpclmulqdq ymm3,ymm21,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_569 +$L$_small_initial_partial_block_569: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[144+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm21,xmm1,0x01 + vpclmulqdq xmm5,xmm21,xmm1,0x10 + vpclmulqdq xmm0,xmm21,xmm1,0x11 + vpclmulqdq xmm3,xmm21,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_569: + + or r13,r13 + je NEAR $L$_after_reduction_569 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_569: + jmp NEAR $L$_last_blocks_done_541 +$L$_last_num_blocks_is_15_541: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,241 + jae NEAR $L$_16_blocks_overflow_570 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_570 + +$L$_16_blocks_overflow_570: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_570: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm5,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + vextracti32x4 xmm11,zmm5,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[192+r11*1+r10]{k1},zmm5 + vmovdqu8 zmm21{k1}{z},zmm21 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb zmm20,zmm20,zmm29 + vpshufb zmm21,zmm21,zmm29 + vextracti32x4 xmm7,zmm21,2 + sub r13,16 * (15 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_571 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[112+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm21,zmm1,0x01 + vpclmulqdq zmm5,zmm21,zmm1,0x10 + vpclmulqdq zmm0,zmm21,zmm1,0x11 + vpclmulqdq zmm3,zmm21,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_571 +$L$_small_initial_partial_block_571: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[128+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm21,ymm1,0x01 + vpclmulqdq ymm5,ymm21,ymm1,0x10 + vpclmulqdq ymm0,ymm21,ymm1,0x11 + vpclmulqdq ymm3,ymm21,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_571: + + or r13,r13 + je NEAR $L$_after_reduction_571 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_571: + jmp NEAR $L$_last_blocks_done_541 +$L$_last_num_blocks_is_16_541: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,240 + jae NEAR $L$_16_blocks_overflow_572 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_572 + +$L$_16_blocks_overflow_572: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_572: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm5,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + vextracti32x4 xmm11,zmm5,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[192+r11*1+r10]{k1},zmm5 + vmovdqu8 zmm21{k1}{z},zmm21 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb zmm20,zmm20,zmm29 + vpshufb zmm21,zmm21,zmm29 + vextracti32x4 xmm7,zmm21,3 + sub r13,16 * (16 - 1) +$L$_small_initial_partial_block_573: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[112+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm21,zmm1,0x01 + vpclmulqdq zmm5,zmm21,zmm1,0x10 + vpclmulqdq zmm0,zmm21,zmm1,0x11 + vpclmulqdq zmm3,zmm21,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_573: + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_573: + jmp NEAR $L$_last_blocks_done_541 +$L$_last_num_blocks_is_0_541: + vmovdqa64 zmm13,ZMMWORD[768+rsp] + vpxorq zmm13,zmm13,zmm14 + vmovdqu64 zmm12,ZMMWORD[rbx*1+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[832+rsp] + vmovdqu64 zmm12,ZMMWORD[64+rbx*1+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + vpxorq zmm26,zmm4,zmm10 + vpxorq zmm24,zmm0,zmm6 + vpxorq zmm25,zmm3,zmm7 + vpternlogq zmm26,zmm5,zmm11,0x96 + vmovdqa64 zmm13,ZMMWORD[896+rsp] + vmovdqu64 zmm12,ZMMWORD[128+rbx*1+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[960+rsp] + vmovdqu64 zmm12,ZMMWORD[192+rbx*1+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + + vpternlogq zmm26,zmm4,zmm10,0x96 + vpternlogq zmm24,zmm0,zmm6,0x96 + vpternlogq zmm25,zmm3,zmm7,0x96 + vpternlogq zmm26,zmm5,zmm11,0x96 + + vpsrldq zmm0,zmm26,8 + vpslldq zmm3,zmm26,8 + vpxorq zmm24,zmm24,zmm0 + vpxorq zmm25,zmm25,zmm3 + vextracti64x4 ymm0,zmm24,1 + vpxorq ymm24,ymm24,ymm0 + vextracti32x4 xmm0,ymm24,1 + vpxorq xmm24,xmm24,xmm0 + vextracti64x4 ymm3,zmm25,1 + vpxorq ymm25,ymm25,ymm3 + vextracti32x4 xmm3,ymm25,1 + vpxorq xmm25,xmm25,xmm3 + vmovdqa64 xmm4,XMMWORD[POLY2] + + + vpclmulqdq xmm0,xmm4,xmm25,0x01 + vpslldq xmm0,xmm0,8 + vpxorq xmm0,xmm25,xmm0 + + + vpclmulqdq xmm3,xmm4,xmm0,0x00 + vpsrldq xmm3,xmm3,4 + vpclmulqdq xmm14,xmm4,xmm0,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm3,xmm24,0x96 + +$L$_last_blocks_done_541: + vpshufb xmm2,xmm2,xmm29 + jmp NEAR $L$_ghash_done_497 +$L$_encrypt_16_blocks_497: + cmp r15b,240 + jae NEAR $L$_16_blocks_overflow_574 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_574 +$L$_16_blocks_overflow_574: + vpshufb zmm2,zmm2,zmm29 + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_574: + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rsp] + + + + + vshufi64x2 zmm2,zmm5,zmm5,255 + add r15b,16 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + + + + + + + + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + + vpclmulqdq zmm6,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + + vpternlogq zmm6,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + + + + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm21,ZMMWORD[192+r11*1+r9] + + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm26,zmm10,zmm15 + vpxorq zmm24,zmm6,zmm12 + vpxorq zmm25,zmm7,zmm13 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + + + + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + + + + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[192+r11*1+r10],zmm5 + vpshufb zmm0,zmm17,zmm29 + vpshufb zmm3,zmm19,zmm29 + vpshufb zmm4,zmm20,zmm29 + vpshufb zmm5,zmm21,zmm29 + vmovdqa64 ZMMWORD[1280+rsp],zmm0 + vmovdqa64 ZMMWORD[1344+rsp],zmm3 + vmovdqa64 ZMMWORD[1408+rsp],zmm4 + vmovdqa64 ZMMWORD[1472+rsp],zmm5 + vmovdqa64 zmm13,ZMMWORD[1024+rsp] + vmovdqu64 zmm12,ZMMWORD[256+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[1088+rsp] + vmovdqu64 zmm12,ZMMWORD[320+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + vpternlogq zmm26,zmm4,zmm10,0x96 + vpternlogq zmm24,zmm0,zmm6,0x96 + vpternlogq zmm25,zmm3,zmm7,0x96 + vpternlogq zmm26,zmm5,zmm11,0x96 + vmovdqa64 zmm13,ZMMWORD[1152+rsp] + vmovdqu64 zmm12,ZMMWORD[384+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[1216+rsp] + vmovdqu64 zmm12,ZMMWORD[448+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + + vpternlogq zmm26,zmm4,zmm10,0x96 + vpternlogq zmm24,zmm0,zmm6,0x96 + vpternlogq zmm25,zmm3,zmm7,0x96 + vpternlogq zmm26,zmm5,zmm11,0x96 + sub r13,256 + add r11,256 + mov r10d,r13d + add r10d,15 + shr r10d,4 + je NEAR $L$_last_num_blocks_is_0_575 + + cmp r10d,8 + je NEAR $L$_last_num_blocks_is_8_575 + jb NEAR $L$_last_num_blocks_is_7_1_575 + + + cmp r10d,12 + je NEAR $L$_last_num_blocks_is_12_575 + jb NEAR $L$_last_num_blocks_is_11_9_575 + + + cmp r10d,15 + je NEAR $L$_last_num_blocks_is_15_575 + ja NEAR $L$_last_num_blocks_is_16_575 + cmp r10d,14 + je NEAR $L$_last_num_blocks_is_14_575 + jmp NEAR $L$_last_num_blocks_is_13_575 + +$L$_last_num_blocks_is_11_9_575: + + cmp r10d,10 + je NEAR $L$_last_num_blocks_is_10_575 + ja NEAR $L$_last_num_blocks_is_11_575 + jmp NEAR $L$_last_num_blocks_is_9_575 + +$L$_last_num_blocks_is_7_1_575: + cmp r10d,4 + je NEAR $L$_last_num_blocks_is_4_575 + jb NEAR $L$_last_num_blocks_is_3_1_575 + + cmp r10d,6 + ja NEAR $L$_last_num_blocks_is_7_575 + je NEAR $L$_last_num_blocks_is_6_575 + jmp NEAR $L$_last_num_blocks_is_5_575 + +$L$_last_num_blocks_is_3_1_575: + + cmp r10d,2 + ja NEAR $L$_last_num_blocks_is_3_575 + je NEAR $L$_last_num_blocks_is_2_575 +$L$_last_num_blocks_is_1_575: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,255 + jae NEAR $L$_16_blocks_overflow_576 + vpaddd xmm0,xmm2,xmm28 + jmp NEAR $L$_16_blocks_ok_576 + +$L$_16_blocks_overflow_576: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb xmm0,xmm0,xmm29 +$L$_16_blocks_ok_576: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm0,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 xmm17{k1}{z},[r11*1+r9] + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc xmm0,xmm0,xmm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast xmm0,xmm0,xmm30 + vpxorq xmm0,xmm0,xmm17 + vextracti32x4 xmm11,zmm0,0 + mov r10,QWORD[120+rbp] + vmovdqu8 XMMWORD[r11*1+r10]{k1},xmm0 + vmovdqu8 zmm17{k1}{z},zmm17 + vpshufb xmm17,xmm17,xmm29 + vextracti32x4 xmm7,zmm17,0 + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_577 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm17,xmm1,0x01 + vpclmulqdq xmm5,xmm17,xmm1,0x10 + vpclmulqdq xmm0,xmm17,xmm1,0x11 + vpclmulqdq xmm3,xmm17,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_577 +$L$_small_initial_partial_block_577: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + + + + + + + + + + + + vpxorq xmm14,xmm14,xmm7 + + jmp NEAR $L$_after_reduction_577 +$L$_small_initial_compute_done_577: +$L$_after_reduction_577: + jmp NEAR $L$_last_blocks_done_575 +$L$_last_num_blocks_is_2_575: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,254 + jae NEAR $L$_16_blocks_overflow_578 + vpaddd ymm0,ymm2,ymm28 + jmp NEAR $L$_16_blocks_ok_578 + +$L$_16_blocks_overflow_578: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb ymm0,ymm0,ymm29 +$L$_16_blocks_ok_578: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm0,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 ymm17{k1}{z},[r11*1+r9] + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc ymm0,ymm0,ymm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast ymm0,ymm0,ymm30 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm11,zmm0,1 + mov r10,QWORD[120+rbp] + vmovdqu8 YMMWORD[r11*1+r10]{k1},ymm0 + vmovdqu8 zmm17{k1}{z},zmm17 + vpshufb ymm17,ymm17,ymm29 + vextracti32x4 xmm7,zmm17,1 + sub r13,16 * (2 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_579 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm17,ymm1,0x01 + vpclmulqdq ymm5,ymm17,ymm1,0x10 + vpclmulqdq ymm0,ymm17,ymm1,0x11 + vpclmulqdq ymm3,ymm17,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_579 +$L$_small_initial_partial_block_579: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm17,xmm1,0x01 + vpclmulqdq xmm5,xmm17,xmm1,0x10 + vpclmulqdq xmm0,xmm17,xmm1,0x11 + vpclmulqdq xmm3,xmm17,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_579: + + or r13,r13 + je NEAR $L$_after_reduction_579 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_579: + jmp NEAR $L$_last_blocks_done_575 +$L$_last_num_blocks_is_3_575: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,253 + jae NEAR $L$_16_blocks_overflow_580 + vpaddd zmm0,zmm2,zmm28 + jmp NEAR $L$_16_blocks_ok_580 + +$L$_16_blocks_overflow_580: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb zmm0,zmm0,zmm29 +$L$_16_blocks_ok_580: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm0,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17{k1}{z},[r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vpxorq zmm0,zmm0,zmm17 + vextracti32x4 xmm11,zmm0,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10]{k1},zmm0 + vmovdqu8 zmm17{k1}{z},zmm17 + vpshufb zmm17,zmm17,zmm29 + vextracti32x4 xmm7,zmm17,2 + sub r13,16 * (3 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_581 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_581 +$L$_small_initial_partial_block_581: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm17,ymm1,0x01 + vpclmulqdq ymm5,ymm17,ymm1,0x10 + vpclmulqdq ymm0,ymm17,ymm1,0x11 + vpclmulqdq ymm3,ymm17,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_581: + + or r13,r13 + je NEAR $L$_after_reduction_581 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_581: + jmp NEAR $L$_last_blocks_done_575 +$L$_last_num_blocks_is_4_575: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,252 + jae NEAR $L$_16_blocks_overflow_582 + vpaddd zmm0,zmm2,zmm28 + jmp NEAR $L$_16_blocks_ok_582 + +$L$_16_blocks_overflow_582: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb zmm0,zmm0,zmm29 +$L$_16_blocks_ok_582: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm0,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17{k1}{z},[r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vpxorq zmm0,zmm0,zmm17 + vextracti32x4 xmm11,zmm0,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10]{k1},zmm0 + vmovdqu8 zmm17{k1}{z},zmm17 + vpshufb zmm17,zmm17,zmm29 + vextracti32x4 xmm7,zmm17,3 + sub r13,16 * (4 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_583 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_583 +$L$_small_initial_partial_block_583: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_583: + + or r13,r13 + je NEAR $L$_after_reduction_583 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_583: + jmp NEAR $L$_last_blocks_done_575 +$L$_last_num_blocks_is_5_575: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,251 + jae NEAR $L$_16_blocks_overflow_584 + vpaddd zmm0,zmm2,zmm28 + vpaddd xmm3,xmm0,xmm27 + jmp NEAR $L$_16_blocks_ok_584 + +$L$_16_blocks_overflow_584: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb xmm3,xmm3,xmm29 +$L$_16_blocks_ok_584: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm3,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 xmm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast xmm3,xmm3,xmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq xmm3,xmm3,xmm19 + vextracti32x4 xmm11,zmm3,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 XMMWORD[64+r11*1+r10]{k1},xmm3 + vmovdqu8 zmm19{k1}{z},zmm19 + vpshufb zmm17,zmm17,zmm29 + vpshufb xmm19,xmm19,xmm29 + vextracti32x4 xmm7,zmm19,0 + sub r13,16 * (5 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_585 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm19,xmm1,0x01 + vpclmulqdq xmm5,xmm19,xmm1,0x10 + vpclmulqdq xmm0,xmm19,xmm1,0x11 + vpclmulqdq xmm3,xmm19,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_585 +$L$_small_initial_partial_block_585: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_585: + + or r13,r13 + je NEAR $L$_after_reduction_585 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_585: + jmp NEAR $L$_last_blocks_done_575 +$L$_last_num_blocks_is_6_575: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,250 + jae NEAR $L$_16_blocks_overflow_586 + vpaddd zmm0,zmm2,zmm28 + vpaddd ymm3,ymm0,ymm27 + jmp NEAR $L$_16_blocks_ok_586 + +$L$_16_blocks_overflow_586: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb ymm3,ymm3,ymm29 +$L$_16_blocks_ok_586: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm3,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 ymm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast ymm3,ymm3,ymm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm11,zmm3,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 YMMWORD[64+r11*1+r10]{k1},ymm3 + vmovdqu8 zmm19{k1}{z},zmm19 + vpshufb zmm17,zmm17,zmm29 + vpshufb ymm19,ymm19,ymm29 + vextracti32x4 xmm7,zmm19,1 + sub r13,16 * (6 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_587 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm19,ymm1,0x01 + vpclmulqdq ymm5,ymm19,ymm1,0x10 + vpclmulqdq ymm0,ymm19,ymm1,0x11 + vpclmulqdq ymm3,ymm19,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_587 +$L$_small_initial_partial_block_587: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm19,xmm1,0x01 + vpclmulqdq xmm5,xmm19,xmm1,0x10 + vpclmulqdq xmm0,xmm19,xmm1,0x11 + vpclmulqdq xmm3,xmm19,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_587: + + or r13,r13 + je NEAR $L$_after_reduction_587 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_587: + jmp NEAR $L$_last_blocks_done_575 +$L$_last_num_blocks_is_7_575: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,249 + jae NEAR $L$_16_blocks_overflow_588 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + jmp NEAR $L$_16_blocks_ok_588 + +$L$_16_blocks_overflow_588: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 +$L$_16_blocks_ok_588: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm3,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti32x4 xmm11,zmm3,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10]{k1},zmm3 + vmovdqu8 zmm19{k1}{z},zmm19 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vextracti32x4 xmm7,zmm19,2 + sub r13,16 * (7 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_589 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm19,zmm1,0x01 + vpclmulqdq zmm5,zmm19,zmm1,0x10 + vpclmulqdq zmm0,zmm19,zmm1,0x11 + vpclmulqdq zmm3,zmm19,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_589 +$L$_small_initial_partial_block_589: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm19,ymm1,0x01 + vpclmulqdq ymm5,ymm19,ymm1,0x10 + vpclmulqdq ymm0,ymm19,ymm1,0x11 + vpclmulqdq ymm3,ymm19,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_589: + + or r13,r13 + je NEAR $L$_after_reduction_589 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_589: + jmp NEAR $L$_last_blocks_done_575 +$L$_last_num_blocks_is_8_575: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,248 + jae NEAR $L$_16_blocks_overflow_590 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + jmp NEAR $L$_16_blocks_ok_590 + +$L$_16_blocks_overflow_590: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 +$L$_16_blocks_ok_590: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm3,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti32x4 xmm11,zmm3,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10]{k1},zmm3 + vmovdqu8 zmm19{k1}{z},zmm19 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vextracti32x4 xmm7,zmm19,3 + sub r13,16 * (8 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_591 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_591 +$L$_small_initial_partial_block_591: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm19,zmm1,0x01 + vpclmulqdq zmm5,zmm19,zmm1,0x10 + vpclmulqdq zmm0,zmm19,zmm1,0x11 + vpclmulqdq zmm3,zmm19,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_591: + + or r13,r13 + je NEAR $L$_after_reduction_591 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_591: + jmp NEAR $L$_last_blocks_done_575 +$L$_last_num_blocks_is_9_575: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,247 + jae NEAR $L$_16_blocks_overflow_592 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd xmm4,xmm3,xmm27 + jmp NEAR $L$_16_blocks_ok_592 + +$L$_16_blocks_overflow_592: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb xmm4,xmm4,xmm29 +$L$_16_blocks_ok_592: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm4,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 xmm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast xmm4,xmm4,xmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq xmm4,xmm4,xmm20 + vextracti32x4 xmm11,zmm4,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 XMMWORD[128+r11*1+r10]{k1},xmm4 + vmovdqu8 zmm20{k1}{z},zmm20 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb xmm20,xmm20,xmm29 + vextracti32x4 xmm7,zmm20,0 + sub r13,16 * (9 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_593 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm20,xmm1,0x01 + vpclmulqdq xmm5,xmm20,xmm1,0x10 + vpclmulqdq xmm0,xmm20,xmm1,0x11 + vpclmulqdq xmm3,xmm20,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_593 +$L$_small_initial_partial_block_593: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_593: + + or r13,r13 + je NEAR $L$_after_reduction_593 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_593: + jmp NEAR $L$_last_blocks_done_575 +$L$_last_num_blocks_is_10_575: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,246 + jae NEAR $L$_16_blocks_overflow_594 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd ymm4,ymm3,ymm27 + jmp NEAR $L$_16_blocks_ok_594 + +$L$_16_blocks_overflow_594: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb ymm4,ymm4,ymm29 +$L$_16_blocks_ok_594: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm4,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 ymm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast ymm4,ymm4,ymm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq ymm4,ymm4,ymm20 + vextracti32x4 xmm11,zmm4,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 YMMWORD[128+r11*1+r10]{k1},ymm4 + vmovdqu8 zmm20{k1}{z},zmm20 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb ymm20,ymm20,ymm29 + vextracti32x4 xmm7,zmm20,1 + sub r13,16 * (10 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_595 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm20,ymm1,0x01 + vpclmulqdq ymm5,ymm20,ymm1,0x10 + vpclmulqdq ymm0,ymm20,ymm1,0x11 + vpclmulqdq ymm3,ymm20,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_595 +$L$_small_initial_partial_block_595: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm20,xmm1,0x01 + vpclmulqdq xmm5,xmm20,xmm1,0x10 + vpclmulqdq xmm0,xmm20,xmm1,0x11 + vpclmulqdq xmm3,xmm20,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_595: + + or r13,r13 + je NEAR $L$_after_reduction_595 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_595: + jmp NEAR $L$_last_blocks_done_575 +$L$_last_num_blocks_is_11_575: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,245 + jae NEAR $L$_16_blocks_overflow_596 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + jmp NEAR $L$_16_blocks_ok_596 + +$L$_16_blocks_overflow_596: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 +$L$_16_blocks_ok_596: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm4,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vextracti32x4 xmm11,zmm4,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10]{k1},zmm4 + vmovdqu8 zmm20{k1}{z},zmm20 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb zmm20,zmm20,zmm29 + vextracti32x4 xmm7,zmm20,2 + sub r13,16 * (11 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_597 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm20,zmm1,0x01 + vpclmulqdq zmm5,zmm20,zmm1,0x10 + vpclmulqdq zmm0,zmm20,zmm1,0x11 + vpclmulqdq zmm3,zmm20,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_597 +$L$_small_initial_partial_block_597: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm20,ymm1,0x01 + vpclmulqdq ymm5,ymm20,ymm1,0x10 + vpclmulqdq ymm0,ymm20,ymm1,0x11 + vpclmulqdq ymm3,ymm20,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_597: + + or r13,r13 + je NEAR $L$_after_reduction_597 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_597: + jmp NEAR $L$_last_blocks_done_575 +$L$_last_num_blocks_is_12_575: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,244 + jae NEAR $L$_16_blocks_overflow_598 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + jmp NEAR $L$_16_blocks_ok_598 + +$L$_16_blocks_overflow_598: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 +$L$_16_blocks_ok_598: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm4,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vextracti32x4 xmm11,zmm4,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10]{k1},zmm4 + vmovdqu8 zmm20{k1}{z},zmm20 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb zmm20,zmm20,zmm29 + vextracti32x4 xmm7,zmm20,3 + sub r13,16 * (12 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_599 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[160+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_599 +$L$_small_initial_partial_block_599: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm20,zmm1,0x01 + vpclmulqdq zmm5,zmm20,zmm1,0x10 + vpclmulqdq zmm0,zmm20,zmm1,0x11 + vpclmulqdq zmm3,zmm20,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_599: + + or r13,r13 + je NEAR $L$_after_reduction_599 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_599: + jmp NEAR $L$_last_blocks_done_575 +$L$_last_num_blocks_is_13_575: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,243 + jae NEAR $L$_16_blocks_overflow_600 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd xmm5,xmm4,xmm27 + jmp NEAR $L$_16_blocks_ok_600 + +$L$_16_blocks_overflow_600: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb xmm5,xmm5,xmm29 +$L$_16_blocks_ok_600: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm5,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 xmm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast xmm5,xmm5,xmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq xmm5,xmm5,xmm21 + vextracti32x4 xmm11,zmm5,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 XMMWORD[192+r11*1+r10]{k1},xmm5 + vmovdqu8 zmm21{k1}{z},zmm21 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb zmm20,zmm20,zmm29 + vpshufb xmm21,xmm21,xmm29 + vextracti32x4 xmm7,zmm21,0 + sub r13,16 * (13 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_601 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[144+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm21,xmm1,0x01 + vpclmulqdq xmm5,xmm21,xmm1,0x10 + vpclmulqdq xmm0,xmm21,xmm1,0x11 + vpclmulqdq xmm3,xmm21,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_601 +$L$_small_initial_partial_block_601: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[160+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_601: + + or r13,r13 + je NEAR $L$_after_reduction_601 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_601: + jmp NEAR $L$_last_blocks_done_575 +$L$_last_num_blocks_is_14_575: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,242 + jae NEAR $L$_16_blocks_overflow_602 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd ymm5,ymm4,ymm27 + jmp NEAR $L$_16_blocks_ok_602 + +$L$_16_blocks_overflow_602: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb ymm5,ymm5,ymm29 +$L$_16_blocks_ok_602: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm5,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 ymm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast ymm5,ymm5,ymm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq ymm5,ymm5,ymm21 + vextracti32x4 xmm11,zmm5,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 YMMWORD[192+r11*1+r10]{k1},ymm5 + vmovdqu8 zmm21{k1}{z},zmm21 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb zmm20,zmm20,zmm29 + vpshufb ymm21,ymm21,ymm29 + vextracti32x4 xmm7,zmm21,1 + sub r13,16 * (14 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_603 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[128+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm21,ymm1,0x01 + vpclmulqdq ymm5,ymm21,ymm1,0x10 + vpclmulqdq ymm0,ymm21,ymm1,0x11 + vpclmulqdq ymm3,ymm21,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_603 +$L$_small_initial_partial_block_603: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[144+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm21,xmm1,0x01 + vpclmulqdq xmm5,xmm21,xmm1,0x10 + vpclmulqdq xmm0,xmm21,xmm1,0x11 + vpclmulqdq xmm3,xmm21,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_603: + + or r13,r13 + je NEAR $L$_after_reduction_603 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_603: + jmp NEAR $L$_last_blocks_done_575 +$L$_last_num_blocks_is_15_575: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,241 + jae NEAR $L$_16_blocks_overflow_604 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_604 + +$L$_16_blocks_overflow_604: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_604: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm5,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + vextracti32x4 xmm11,zmm5,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[192+r11*1+r10]{k1},zmm5 + vmovdqu8 zmm21{k1}{z},zmm21 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb zmm20,zmm20,zmm29 + vpshufb zmm21,zmm21,zmm29 + vextracti32x4 xmm7,zmm21,2 + sub r13,16 * (15 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_605 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[112+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm21,zmm1,0x01 + vpclmulqdq zmm5,zmm21,zmm1,0x10 + vpclmulqdq zmm0,zmm21,zmm1,0x11 + vpclmulqdq zmm3,zmm21,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_605 +$L$_small_initial_partial_block_605: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[128+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm21,ymm1,0x01 + vpclmulqdq ymm5,ymm21,ymm1,0x10 + vpclmulqdq ymm0,ymm21,ymm1,0x11 + vpclmulqdq ymm3,ymm21,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_605: + + or r13,r13 + je NEAR $L$_after_reduction_605 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_605: + jmp NEAR $L$_last_blocks_done_575 +$L$_last_num_blocks_is_16_575: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,240 + jae NEAR $L$_16_blocks_overflow_606 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_606 + +$L$_16_blocks_overflow_606: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_606: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm5,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + vextracti32x4 xmm11,zmm5,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[192+r11*1+r10]{k1},zmm5 + vmovdqu8 zmm21{k1}{z},zmm21 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb zmm20,zmm20,zmm29 + vpshufb zmm21,zmm21,zmm29 + vextracti32x4 xmm7,zmm21,3 + sub r13,16 * (16 - 1) +$L$_small_initial_partial_block_607: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[112+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm21,zmm1,0x01 + vpclmulqdq zmm5,zmm21,zmm1,0x10 + vpclmulqdq zmm0,zmm21,zmm1,0x11 + vpclmulqdq zmm3,zmm21,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_607: + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_607: + jmp NEAR $L$_last_blocks_done_575 +$L$_last_num_blocks_is_0_575: + vmovdqa64 zmm13,ZMMWORD[1280+rsp] + vmovdqu64 zmm12,ZMMWORD[512+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[1344+rsp] + vmovdqu64 zmm12,ZMMWORD[576+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + vpternlogq zmm26,zmm4,zmm10,0x96 + vpternlogq zmm24,zmm0,zmm6,0x96 + vpternlogq zmm25,zmm3,zmm7,0x96 + vpternlogq zmm26,zmm5,zmm11,0x96 + vmovdqa64 zmm13,ZMMWORD[1408+rsp] + vmovdqu64 zmm12,ZMMWORD[640+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[1472+rsp] + vmovdqu64 zmm12,ZMMWORD[704+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + + vpternlogq zmm26,zmm4,zmm10,0x96 + vpternlogq zmm24,zmm0,zmm6,0x96 + vpternlogq zmm25,zmm3,zmm7,0x96 + vpternlogq zmm26,zmm5,zmm11,0x96 + + vpsrldq zmm0,zmm26,8 + vpslldq zmm3,zmm26,8 + vpxorq zmm24,zmm24,zmm0 + vpxorq zmm25,zmm25,zmm3 + vextracti64x4 ymm0,zmm24,1 + vpxorq ymm24,ymm24,ymm0 + vextracti32x4 xmm0,ymm24,1 + vpxorq xmm24,xmm24,xmm0 + vextracti64x4 ymm3,zmm25,1 + vpxorq ymm25,ymm25,ymm3 + vextracti32x4 xmm3,ymm25,1 + vpxorq xmm25,xmm25,xmm3 + vmovdqa64 xmm4,XMMWORD[POLY2] + + + vpclmulqdq xmm0,xmm4,xmm25,0x01 + vpslldq xmm0,xmm0,8 + vpxorq xmm0,xmm25,xmm0 + + + vpclmulqdq xmm3,xmm4,xmm0,0x00 + vpsrldq xmm3,xmm3,4 + vpclmulqdq xmm14,xmm4,xmm0,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm3,xmm24,0x96 + +$L$_last_blocks_done_575: + vpshufb xmm2,xmm2,xmm29 + jmp NEAR $L$_ghash_done_497 + +$L$_message_below_32_blocks_497: + + + sub r13,256 + add r11,256 + mov r10d,r13d + test r14,r14 + jnz NEAR $L$_skip_hkeys_precomputation_608 + vmovdqu64 zmm3,ZMMWORD[640+rsp] + + + vshufi64x2 zmm3,zmm3,zmm3,0x00 + + vmovdqu64 zmm4,ZMMWORD[576+rsp] + vmovdqu64 zmm5,ZMMWORD[512+rsp] + + vpclmulqdq zmm6,zmm4,zmm3,0x11 + vpclmulqdq zmm7,zmm4,zmm3,0x00 + vpclmulqdq zmm10,zmm4,zmm3,0x01 + vpclmulqdq zmm4,zmm4,zmm3,0x10 + vpxorq zmm4,zmm4,zmm10 + + vpsrldq zmm10,zmm4,8 + vpslldq zmm4,zmm4,8 + vpxorq zmm6,zmm6,zmm10 + vpxorq zmm4,zmm4,zmm7 + + + + vmovdqu64 zmm10,ZMMWORD[POLY2] + + vpclmulqdq zmm7,zmm10,zmm4,0x01 + vpslldq zmm7,zmm7,8 + vpxorq zmm4,zmm4,zmm7 + + + + vpclmulqdq zmm7,zmm10,zmm4,0x00 + vpsrldq zmm7,zmm7,4 + vpclmulqdq zmm4,zmm10,zmm4,0x10 + vpslldq zmm4,zmm4,4 + + vpternlogq zmm4,zmm6,zmm7,0x96 + + vmovdqu64 ZMMWORD[448+rsp],zmm4 + + vpclmulqdq zmm6,zmm5,zmm3,0x11 + vpclmulqdq zmm7,zmm5,zmm3,0x00 + vpclmulqdq zmm10,zmm5,zmm3,0x01 + vpclmulqdq zmm5,zmm5,zmm3,0x10 + vpxorq zmm5,zmm5,zmm10 + + vpsrldq zmm10,zmm5,8 + vpslldq zmm5,zmm5,8 + vpxorq zmm6,zmm6,zmm10 + vpxorq zmm5,zmm5,zmm7 + + + + vmovdqu64 zmm10,ZMMWORD[POLY2] + + vpclmulqdq zmm7,zmm10,zmm5,0x01 + vpslldq zmm7,zmm7,8 + vpxorq zmm5,zmm5,zmm7 + + + + vpclmulqdq zmm7,zmm10,zmm5,0x00 + vpsrldq zmm7,zmm7,4 + vpclmulqdq zmm5,zmm10,zmm5,0x10 + vpslldq zmm5,zmm5,4 + + vpternlogq zmm5,zmm6,zmm7,0x96 + + vmovdqu64 ZMMWORD[384+rsp],zmm5 + + vpclmulqdq zmm6,zmm4,zmm3,0x11 + vpclmulqdq zmm7,zmm4,zmm3,0x00 + vpclmulqdq zmm10,zmm4,zmm3,0x01 + vpclmulqdq zmm4,zmm4,zmm3,0x10 + vpxorq zmm4,zmm4,zmm10 + + vpsrldq zmm10,zmm4,8 + vpslldq zmm4,zmm4,8 + vpxorq zmm6,zmm6,zmm10 + vpxorq zmm4,zmm4,zmm7 + + + + vmovdqu64 zmm10,ZMMWORD[POLY2] + + vpclmulqdq zmm7,zmm10,zmm4,0x01 + vpslldq zmm7,zmm7,8 + vpxorq zmm4,zmm4,zmm7 + + + + vpclmulqdq zmm7,zmm10,zmm4,0x00 + vpsrldq zmm7,zmm7,4 + vpclmulqdq zmm4,zmm10,zmm4,0x10 + vpslldq zmm4,zmm4,4 + + vpternlogq zmm4,zmm6,zmm7,0x96 + + vmovdqu64 ZMMWORD[320+rsp],zmm4 + + vpclmulqdq zmm6,zmm5,zmm3,0x11 + vpclmulqdq zmm7,zmm5,zmm3,0x00 + vpclmulqdq zmm10,zmm5,zmm3,0x01 + vpclmulqdq zmm5,zmm5,zmm3,0x10 + vpxorq zmm5,zmm5,zmm10 + + vpsrldq zmm10,zmm5,8 + vpslldq zmm5,zmm5,8 + vpxorq zmm6,zmm6,zmm10 + vpxorq zmm5,zmm5,zmm7 + + + + vmovdqu64 zmm10,ZMMWORD[POLY2] + + vpclmulqdq zmm7,zmm10,zmm5,0x01 + vpslldq zmm7,zmm7,8 + vpxorq zmm5,zmm5,zmm7 + + + + vpclmulqdq zmm7,zmm10,zmm5,0x00 + vpsrldq zmm7,zmm7,4 + vpclmulqdq zmm5,zmm10,zmm5,0x10 + vpslldq zmm5,zmm5,4 + + vpternlogq zmm5,zmm6,zmm7,0x96 + + vmovdqu64 ZMMWORD[256+rsp],zmm5 +$L$_skip_hkeys_precomputation_608: + mov r14,1 + and r10d,~15 + mov ebx,512 + sub ebx,r10d + mov r10d,r13d + add r10d,15 + shr r10d,4 + je NEAR $L$_last_num_blocks_is_0_609 + + cmp r10d,8 + je NEAR $L$_last_num_blocks_is_8_609 + jb NEAR $L$_last_num_blocks_is_7_1_609 + + + cmp r10d,12 + je NEAR $L$_last_num_blocks_is_12_609 + jb NEAR $L$_last_num_blocks_is_11_9_609 + + + cmp r10d,15 + je NEAR $L$_last_num_blocks_is_15_609 + ja NEAR $L$_last_num_blocks_is_16_609 + cmp r10d,14 + je NEAR $L$_last_num_blocks_is_14_609 + jmp NEAR $L$_last_num_blocks_is_13_609 + +$L$_last_num_blocks_is_11_9_609: + + cmp r10d,10 + je NEAR $L$_last_num_blocks_is_10_609 + ja NEAR $L$_last_num_blocks_is_11_609 + jmp NEAR $L$_last_num_blocks_is_9_609 + +$L$_last_num_blocks_is_7_1_609: + cmp r10d,4 + je NEAR $L$_last_num_blocks_is_4_609 + jb NEAR $L$_last_num_blocks_is_3_1_609 + + cmp r10d,6 + ja NEAR $L$_last_num_blocks_is_7_609 + je NEAR $L$_last_num_blocks_is_6_609 + jmp NEAR $L$_last_num_blocks_is_5_609 + +$L$_last_num_blocks_is_3_1_609: + + cmp r10d,2 + ja NEAR $L$_last_num_blocks_is_3_609 + je NEAR $L$_last_num_blocks_is_2_609 +$L$_last_num_blocks_is_1_609: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,255 + jae NEAR $L$_16_blocks_overflow_610 + vpaddd xmm0,xmm2,xmm28 + jmp NEAR $L$_16_blocks_ok_610 + +$L$_16_blocks_overflow_610: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb xmm0,xmm0,xmm29 +$L$_16_blocks_ok_610: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm0,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 xmm17{k1}{z},[r11*1+r9] + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc xmm0,xmm0,xmm31 + vaesenclast xmm0,xmm0,xmm30 + vpxorq xmm0,xmm0,xmm17 + vextracti32x4 xmm11,zmm0,0 + mov r10,QWORD[120+rbp] + vmovdqu8 XMMWORD[r11*1+r10]{k1},xmm0 + vmovdqu8 zmm17{k1}{z},zmm17 + vpshufb xmm17,xmm17,xmm29 + vextracti32x4 xmm7,zmm17,0 + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_611 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm17,xmm1,0x01 + vpclmulqdq xmm5,xmm17,xmm1,0x10 + vpclmulqdq xmm0,xmm17,xmm1,0x11 + vpclmulqdq xmm3,xmm17,xmm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_611 +$L$_small_initial_partial_block_611: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + + + vpsrldq zmm0,zmm26,8 + vpslldq zmm3,zmm26,8 + vpxorq zmm24,zmm24,zmm0 + vpxorq zmm25,zmm25,zmm3 + vextracti64x4 ymm0,zmm24,1 + vpxorq ymm24,ymm24,ymm0 + vextracti32x4 xmm0,ymm24,1 + vpxorq xmm24,xmm24,xmm0 + vextracti64x4 ymm3,zmm25,1 + vpxorq ymm25,ymm25,ymm3 + vextracti32x4 xmm3,ymm25,1 + vpxorq xmm25,xmm25,xmm3 + vmovdqa64 xmm0,XMMWORD[POLY2] + + + vpclmulqdq xmm3,xmm0,xmm25,0x01 + vpslldq xmm3,xmm3,8 + vpxorq xmm3,xmm25,xmm3 + + + vpclmulqdq xmm4,xmm0,xmm3,0x00 + vpsrldq xmm4,xmm4,4 + vpclmulqdq xmm14,xmm0,xmm3,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm4,xmm24,0x96 + + + + + + + + + + + + + vpxorq xmm14,xmm14,xmm7 + + jmp NEAR $L$_after_reduction_611 +$L$_small_initial_compute_done_611: +$L$_after_reduction_611: + jmp NEAR $L$_last_blocks_done_609 +$L$_last_num_blocks_is_2_609: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,254 + jae NEAR $L$_16_blocks_overflow_612 + vpaddd ymm0,ymm2,ymm28 + jmp NEAR $L$_16_blocks_ok_612 + +$L$_16_blocks_overflow_612: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb ymm0,ymm0,ymm29 +$L$_16_blocks_ok_612: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm0,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 ymm17{k1}{z},[r11*1+r9] + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc ymm0,ymm0,ymm31 + vaesenclast ymm0,ymm0,ymm30 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm11,zmm0,1 + mov r10,QWORD[120+rbp] + vmovdqu8 YMMWORD[r11*1+r10]{k1},ymm0 + vmovdqu8 zmm17{k1}{z},zmm17 + vpshufb ymm17,ymm17,ymm29 + vextracti32x4 xmm7,zmm17,1 + sub r13,16 * (2 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_613 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm17,ymm1,0x01 + vpclmulqdq ymm5,ymm17,ymm1,0x10 + vpclmulqdq ymm0,ymm17,ymm1,0x11 + vpclmulqdq ymm3,ymm17,ymm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_613 +$L$_small_initial_partial_block_613: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm17,xmm1,0x01 + vpclmulqdq xmm5,xmm17,xmm1,0x10 + vpclmulqdq xmm0,xmm17,xmm1,0x11 + vpclmulqdq xmm3,xmm17,xmm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_613: + + or r13,r13 + je NEAR $L$_after_reduction_613 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_613: + jmp NEAR $L$_last_blocks_done_609 +$L$_last_num_blocks_is_3_609: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,253 + jae NEAR $L$_16_blocks_overflow_614 + vpaddd zmm0,zmm2,zmm28 + jmp NEAR $L$_16_blocks_ok_614 + +$L$_16_blocks_overflow_614: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb zmm0,zmm0,zmm29 +$L$_16_blocks_ok_614: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm0,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17{k1}{z},[r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vpxorq zmm0,zmm0,zmm17 + vextracti32x4 xmm11,zmm0,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10]{k1},zmm0 + vmovdqu8 zmm17{k1}{z},zmm17 + vpshufb zmm17,zmm17,zmm29 + vextracti32x4 xmm7,zmm17,2 + sub r13,16 * (3 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_615 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_615 +$L$_small_initial_partial_block_615: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm17,ymm1,0x01 + vpclmulqdq ymm5,ymm17,ymm1,0x10 + vpclmulqdq ymm0,ymm17,ymm1,0x11 + vpclmulqdq ymm3,ymm17,ymm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_615: + + or r13,r13 + je NEAR $L$_after_reduction_615 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_615: + jmp NEAR $L$_last_blocks_done_609 +$L$_last_num_blocks_is_4_609: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,252 + jae NEAR $L$_16_blocks_overflow_616 + vpaddd zmm0,zmm2,zmm28 + jmp NEAR $L$_16_blocks_ok_616 + +$L$_16_blocks_overflow_616: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb zmm0,zmm0,zmm29 +$L$_16_blocks_ok_616: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm0,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17{k1}{z},[r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vpxorq zmm0,zmm0,zmm17 + vextracti32x4 xmm11,zmm0,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10]{k1},zmm0 + vmovdqu8 zmm17{k1}{z},zmm17 + vpshufb zmm17,zmm17,zmm29 + vextracti32x4 xmm7,zmm17,3 + sub r13,16 * (4 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_617 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_617 +$L$_small_initial_partial_block_617: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_617: + + or r13,r13 + je NEAR $L$_after_reduction_617 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_617: + jmp NEAR $L$_last_blocks_done_609 +$L$_last_num_blocks_is_5_609: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,251 + jae NEAR $L$_16_blocks_overflow_618 + vpaddd zmm0,zmm2,zmm28 + vpaddd xmm3,xmm0,xmm27 + jmp NEAR $L$_16_blocks_ok_618 + +$L$_16_blocks_overflow_618: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb xmm3,xmm3,xmm29 +$L$_16_blocks_ok_618: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm3,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 xmm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast xmm3,xmm3,xmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq xmm3,xmm3,xmm19 + vextracti32x4 xmm11,zmm3,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 XMMWORD[64+r11*1+r10]{k1},xmm3 + vmovdqu8 zmm19{k1}{z},zmm19 + vpshufb zmm17,zmm17,zmm29 + vpshufb xmm19,xmm19,xmm29 + vextracti32x4 xmm7,zmm19,0 + sub r13,16 * (5 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_619 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm19,xmm1,0x01 + vpclmulqdq xmm5,xmm19,xmm1,0x10 + vpclmulqdq xmm0,xmm19,xmm1,0x11 + vpclmulqdq xmm3,xmm19,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_619 +$L$_small_initial_partial_block_619: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_619: + + or r13,r13 + je NEAR $L$_after_reduction_619 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_619: + jmp NEAR $L$_last_blocks_done_609 +$L$_last_num_blocks_is_6_609: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,250 + jae NEAR $L$_16_blocks_overflow_620 + vpaddd zmm0,zmm2,zmm28 + vpaddd ymm3,ymm0,ymm27 + jmp NEAR $L$_16_blocks_ok_620 + +$L$_16_blocks_overflow_620: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb ymm3,ymm3,ymm29 +$L$_16_blocks_ok_620: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm3,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 ymm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast ymm3,ymm3,ymm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm11,zmm3,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 YMMWORD[64+r11*1+r10]{k1},ymm3 + vmovdqu8 zmm19{k1}{z},zmm19 + vpshufb zmm17,zmm17,zmm29 + vpshufb ymm19,ymm19,ymm29 + vextracti32x4 xmm7,zmm19,1 + sub r13,16 * (6 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_621 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm19,ymm1,0x01 + vpclmulqdq ymm5,ymm19,ymm1,0x10 + vpclmulqdq ymm0,ymm19,ymm1,0x11 + vpclmulqdq ymm3,ymm19,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_621 +$L$_small_initial_partial_block_621: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm19,xmm1,0x01 + vpclmulqdq xmm5,xmm19,xmm1,0x10 + vpclmulqdq xmm0,xmm19,xmm1,0x11 + vpclmulqdq xmm3,xmm19,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_621: + + or r13,r13 + je NEAR $L$_after_reduction_621 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_621: + jmp NEAR $L$_last_blocks_done_609 +$L$_last_num_blocks_is_7_609: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,249 + jae NEAR $L$_16_blocks_overflow_622 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + jmp NEAR $L$_16_blocks_ok_622 + +$L$_16_blocks_overflow_622: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 +$L$_16_blocks_ok_622: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm3,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti32x4 xmm11,zmm3,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10]{k1},zmm3 + vmovdqu8 zmm19{k1}{z},zmm19 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vextracti32x4 xmm7,zmm19,2 + sub r13,16 * (7 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_623 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm19,zmm1,0x01 + vpclmulqdq zmm5,zmm19,zmm1,0x10 + vpclmulqdq zmm0,zmm19,zmm1,0x11 + vpclmulqdq zmm3,zmm19,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_623 +$L$_small_initial_partial_block_623: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm19,ymm1,0x01 + vpclmulqdq ymm5,ymm19,ymm1,0x10 + vpclmulqdq ymm0,ymm19,ymm1,0x11 + vpclmulqdq ymm3,ymm19,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_623: + + or r13,r13 + je NEAR $L$_after_reduction_623 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_623: + jmp NEAR $L$_last_blocks_done_609 +$L$_last_num_blocks_is_8_609: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,248 + jae NEAR $L$_16_blocks_overflow_624 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + jmp NEAR $L$_16_blocks_ok_624 + +$L$_16_blocks_overflow_624: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 +$L$_16_blocks_ok_624: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm3,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti32x4 xmm11,zmm3,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10]{k1},zmm3 + vmovdqu8 zmm19{k1}{z},zmm19 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vextracti32x4 xmm7,zmm19,3 + sub r13,16 * (8 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_625 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_625 +$L$_small_initial_partial_block_625: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm19,zmm1,0x01 + vpclmulqdq zmm5,zmm19,zmm1,0x10 + vpclmulqdq zmm0,zmm19,zmm1,0x11 + vpclmulqdq zmm3,zmm19,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_625: + + or r13,r13 + je NEAR $L$_after_reduction_625 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_625: + jmp NEAR $L$_last_blocks_done_609 +$L$_last_num_blocks_is_9_609: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,247 + jae NEAR $L$_16_blocks_overflow_626 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd xmm4,xmm3,xmm27 + jmp NEAR $L$_16_blocks_ok_626 + +$L$_16_blocks_overflow_626: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb xmm4,xmm4,xmm29 +$L$_16_blocks_ok_626: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm4,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 xmm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast xmm4,xmm4,xmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq xmm4,xmm4,xmm20 + vextracti32x4 xmm11,zmm4,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 XMMWORD[128+r11*1+r10]{k1},xmm4 + vmovdqu8 zmm20{k1}{z},zmm20 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb xmm20,xmm20,xmm29 + vextracti32x4 xmm7,zmm20,0 + sub r13,16 * (9 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_627 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm20,xmm1,0x01 + vpclmulqdq xmm5,xmm20,xmm1,0x10 + vpclmulqdq xmm0,xmm20,xmm1,0x11 + vpclmulqdq xmm3,xmm20,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_627 +$L$_small_initial_partial_block_627: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_627: + + or r13,r13 + je NEAR $L$_after_reduction_627 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_627: + jmp NEAR $L$_last_blocks_done_609 +$L$_last_num_blocks_is_10_609: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,246 + jae NEAR $L$_16_blocks_overflow_628 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd ymm4,ymm3,ymm27 + jmp NEAR $L$_16_blocks_ok_628 + +$L$_16_blocks_overflow_628: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb ymm4,ymm4,ymm29 +$L$_16_blocks_ok_628: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm4,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 ymm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast ymm4,ymm4,ymm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq ymm4,ymm4,ymm20 + vextracti32x4 xmm11,zmm4,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 YMMWORD[128+r11*1+r10]{k1},ymm4 + vmovdqu8 zmm20{k1}{z},zmm20 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb ymm20,ymm20,ymm29 + vextracti32x4 xmm7,zmm20,1 + sub r13,16 * (10 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_629 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm20,ymm1,0x01 + vpclmulqdq ymm5,ymm20,ymm1,0x10 + vpclmulqdq ymm0,ymm20,ymm1,0x11 + vpclmulqdq ymm3,ymm20,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_629 +$L$_small_initial_partial_block_629: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm20,xmm1,0x01 + vpclmulqdq xmm5,xmm20,xmm1,0x10 + vpclmulqdq xmm0,xmm20,xmm1,0x11 + vpclmulqdq xmm3,xmm20,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_629: + + or r13,r13 + je NEAR $L$_after_reduction_629 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_629: + jmp NEAR $L$_last_blocks_done_609 +$L$_last_num_blocks_is_11_609: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,245 + jae NEAR $L$_16_blocks_overflow_630 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + jmp NEAR $L$_16_blocks_ok_630 + +$L$_16_blocks_overflow_630: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 +$L$_16_blocks_ok_630: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm4,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vextracti32x4 xmm11,zmm4,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10]{k1},zmm4 + vmovdqu8 zmm20{k1}{z},zmm20 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb zmm20,zmm20,zmm29 + vextracti32x4 xmm7,zmm20,2 + sub r13,16 * (11 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_631 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm20,zmm1,0x01 + vpclmulqdq zmm5,zmm20,zmm1,0x10 + vpclmulqdq zmm0,zmm20,zmm1,0x11 + vpclmulqdq zmm3,zmm20,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_631 +$L$_small_initial_partial_block_631: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm20,ymm1,0x01 + vpclmulqdq ymm5,ymm20,ymm1,0x10 + vpclmulqdq ymm0,ymm20,ymm1,0x11 + vpclmulqdq ymm3,ymm20,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_631: + + or r13,r13 + je NEAR $L$_after_reduction_631 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_631: + jmp NEAR $L$_last_blocks_done_609 +$L$_last_num_blocks_is_12_609: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,244 + jae NEAR $L$_16_blocks_overflow_632 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + jmp NEAR $L$_16_blocks_ok_632 + +$L$_16_blocks_overflow_632: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 +$L$_16_blocks_ok_632: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm4,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vextracti32x4 xmm11,zmm4,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10]{k1},zmm4 + vmovdqu8 zmm20{k1}{z},zmm20 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb zmm20,zmm20,zmm29 + vextracti32x4 xmm7,zmm20,3 + sub r13,16 * (12 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_633 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[160+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_633 +$L$_small_initial_partial_block_633: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm20,zmm1,0x01 + vpclmulqdq zmm5,zmm20,zmm1,0x10 + vpclmulqdq zmm0,zmm20,zmm1,0x11 + vpclmulqdq zmm3,zmm20,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_633: + + or r13,r13 + je NEAR $L$_after_reduction_633 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_633: + jmp NEAR $L$_last_blocks_done_609 +$L$_last_num_blocks_is_13_609: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,243 + jae NEAR $L$_16_blocks_overflow_634 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd xmm5,xmm4,xmm27 + jmp NEAR $L$_16_blocks_ok_634 + +$L$_16_blocks_overflow_634: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb xmm5,xmm5,xmm29 +$L$_16_blocks_ok_634: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm5,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 xmm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast xmm5,xmm5,xmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq xmm5,xmm5,xmm21 + vextracti32x4 xmm11,zmm5,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 XMMWORD[192+r11*1+r10]{k1},xmm5 + vmovdqu8 zmm21{k1}{z},zmm21 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb zmm20,zmm20,zmm29 + vpshufb xmm21,xmm21,xmm29 + vextracti32x4 xmm7,zmm21,0 + sub r13,16 * (13 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_635 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[144+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm21,xmm1,0x01 + vpclmulqdq xmm5,xmm21,xmm1,0x10 + vpclmulqdq xmm0,xmm21,xmm1,0x11 + vpclmulqdq xmm3,xmm21,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_635 +$L$_small_initial_partial_block_635: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[160+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_635: + + or r13,r13 + je NEAR $L$_after_reduction_635 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_635: + jmp NEAR $L$_last_blocks_done_609 +$L$_last_num_blocks_is_14_609: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,242 + jae NEAR $L$_16_blocks_overflow_636 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd ymm5,ymm4,ymm27 + jmp NEAR $L$_16_blocks_ok_636 + +$L$_16_blocks_overflow_636: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb ymm5,ymm5,ymm29 +$L$_16_blocks_ok_636: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm5,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 ymm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast ymm5,ymm5,ymm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq ymm5,ymm5,ymm21 + vextracti32x4 xmm11,zmm5,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 YMMWORD[192+r11*1+r10]{k1},ymm5 + vmovdqu8 zmm21{k1}{z},zmm21 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb zmm20,zmm20,zmm29 + vpshufb ymm21,ymm21,ymm29 + vextracti32x4 xmm7,zmm21,1 + sub r13,16 * (14 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_637 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[128+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm21,ymm1,0x01 + vpclmulqdq ymm5,ymm21,ymm1,0x10 + vpclmulqdq ymm0,ymm21,ymm1,0x11 + vpclmulqdq ymm3,ymm21,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_637 +$L$_small_initial_partial_block_637: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[144+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm21,xmm1,0x01 + vpclmulqdq xmm5,xmm21,xmm1,0x10 + vpclmulqdq xmm0,xmm21,xmm1,0x11 + vpclmulqdq xmm3,xmm21,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_637: + + or r13,r13 + je NEAR $L$_after_reduction_637 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_637: + jmp NEAR $L$_last_blocks_done_609 +$L$_last_num_blocks_is_15_609: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,241 + jae NEAR $L$_16_blocks_overflow_638 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_638 + +$L$_16_blocks_overflow_638: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_638: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm5,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + vextracti32x4 xmm11,zmm5,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[192+r11*1+r10]{k1},zmm5 + vmovdqu8 zmm21{k1}{z},zmm21 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb zmm20,zmm20,zmm29 + vpshufb zmm21,zmm21,zmm29 + vextracti32x4 xmm7,zmm21,2 + sub r13,16 * (15 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_639 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[112+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm21,zmm1,0x01 + vpclmulqdq zmm5,zmm21,zmm1,0x10 + vpclmulqdq zmm0,zmm21,zmm1,0x11 + vpclmulqdq zmm3,zmm21,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_639 +$L$_small_initial_partial_block_639: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[128+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm21,ymm1,0x01 + vpclmulqdq ymm5,ymm21,ymm1,0x10 + vpclmulqdq ymm0,ymm21,ymm1,0x11 + vpclmulqdq ymm3,ymm21,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_639: + + or r13,r13 + je NEAR $L$_after_reduction_639 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_639: + jmp NEAR $L$_last_blocks_done_609 +$L$_last_num_blocks_is_16_609: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,240 + jae NEAR $L$_16_blocks_overflow_640 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_640 + +$L$_16_blocks_overflow_640: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_640: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm5,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + vextracti32x4 xmm11,zmm5,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[192+r11*1+r10]{k1},zmm5 + vmovdqu8 zmm21{k1}{z},zmm21 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb zmm20,zmm20,zmm29 + vpshufb zmm21,zmm21,zmm29 + vextracti32x4 xmm7,zmm21,3 + sub r13,16 * (16 - 1) +$L$_small_initial_partial_block_641: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[112+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm21,zmm1,0x01 + vpclmulqdq zmm5,zmm21,zmm1,0x10 + vpclmulqdq zmm0,zmm21,zmm1,0x11 + vpclmulqdq zmm3,zmm21,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_641: + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_641: + jmp NEAR $L$_last_blocks_done_609 +$L$_last_num_blocks_is_0_609: + vmovdqa64 zmm13,ZMMWORD[768+rsp] + vpxorq zmm13,zmm13,zmm14 + vmovdqu64 zmm12,ZMMWORD[rbx*1+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[832+rsp] + vmovdqu64 zmm12,ZMMWORD[64+rbx*1+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + vpxorq zmm26,zmm4,zmm10 + vpxorq zmm24,zmm0,zmm6 + vpxorq zmm25,zmm3,zmm7 + vpternlogq zmm26,zmm5,zmm11,0x96 + vmovdqa64 zmm13,ZMMWORD[896+rsp] + vmovdqu64 zmm12,ZMMWORD[128+rbx*1+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[960+rsp] + vmovdqu64 zmm12,ZMMWORD[192+rbx*1+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + + vpternlogq zmm26,zmm4,zmm10,0x96 + vpternlogq zmm24,zmm0,zmm6,0x96 + vpternlogq zmm25,zmm3,zmm7,0x96 + vpternlogq zmm26,zmm5,zmm11,0x96 + + vpsrldq zmm0,zmm26,8 + vpslldq zmm3,zmm26,8 + vpxorq zmm24,zmm24,zmm0 + vpxorq zmm25,zmm25,zmm3 + vextracti64x4 ymm0,zmm24,1 + vpxorq ymm24,ymm24,ymm0 + vextracti32x4 xmm0,ymm24,1 + vpxorq xmm24,xmm24,xmm0 + vextracti64x4 ymm3,zmm25,1 + vpxorq ymm25,ymm25,ymm3 + vextracti32x4 xmm3,ymm25,1 + vpxorq xmm25,xmm25,xmm3 + vmovdqa64 xmm4,XMMWORD[POLY2] + + + vpclmulqdq xmm0,xmm4,xmm25,0x01 + vpslldq xmm0,xmm0,8 + vpxorq xmm0,xmm25,xmm0 + + + vpclmulqdq xmm3,xmm4,xmm0,0x00 + vpsrldq xmm3,xmm3,4 + vpclmulqdq xmm14,xmm4,xmm0,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm3,xmm24,0x96 + +$L$_last_blocks_done_609: + vpshufb xmm2,xmm2,xmm29 + jmp NEAR $L$_ghash_done_497 + +$L$_message_below_equal_16_blocks_497: + + + mov r12d,r13d + add r12d,15 + shr r12d,4 + cmp r12,8 + je NEAR $L$_small_initial_num_blocks_is_8_642 + jl NEAR $L$_small_initial_num_blocks_is_7_1_642 + + + cmp r12,12 + je NEAR $L$_small_initial_num_blocks_is_12_642 + jl NEAR $L$_small_initial_num_blocks_is_11_9_642 + + + cmp r12,16 + je NEAR $L$_small_initial_num_blocks_is_16_642 + cmp r12,15 + je NEAR $L$_small_initial_num_blocks_is_15_642 + cmp r12,14 + je NEAR $L$_small_initial_num_blocks_is_14_642 + jmp NEAR $L$_small_initial_num_blocks_is_13_642 + +$L$_small_initial_num_blocks_is_11_9_642: + + cmp r12,11 + je NEAR $L$_small_initial_num_blocks_is_11_642 + cmp r12,10 + je NEAR $L$_small_initial_num_blocks_is_10_642 + jmp NEAR $L$_small_initial_num_blocks_is_9_642 + +$L$_small_initial_num_blocks_is_7_1_642: + cmp r12,4 + je NEAR $L$_small_initial_num_blocks_is_4_642 + jl NEAR $L$_small_initial_num_blocks_is_3_1_642 + + cmp r12,7 + je NEAR $L$_small_initial_num_blocks_is_7_642 + cmp r12,6 + je NEAR $L$_small_initial_num_blocks_is_6_642 + jmp NEAR $L$_small_initial_num_blocks_is_5_642 + +$L$_small_initial_num_blocks_is_3_1_642: + + cmp r12,3 + je NEAR $L$_small_initial_num_blocks_is_3_642 + cmp r12,2 + je NEAR $L$_small_initial_num_blocks_is_2_642 + + + + + +$L$_small_initial_num_blocks_is_1_642: + vmovdqa64 xmm29,XMMWORD[SHUF_MASK] + vpaddd xmm0,xmm2,XMMWORD[ONE] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm0,0 + vpshufb xmm0,xmm0,xmm29 + vmovdqu8 xmm6{k1}{z},[r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq xmm0,xmm0,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc xmm0,xmm0,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc xmm0,xmm0,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc xmm0,xmm0,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc xmm0,xmm0,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc xmm0,xmm0,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc xmm0,xmm0,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc xmm0,xmm0,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc xmm0,xmm0,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc xmm0,xmm0,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenclast xmm0,xmm0,xmm15 + vpxorq xmm0,xmm0,xmm6 + vextracti32x4 xmm12,zmm0,0 + mov r10,QWORD[120+rbp] + vmovdqu8 XMMWORD[r11*1+r10]{k1},xmm0 + vmovdqu8 zmm0{k1}{z},zmm0 + vpshufb xmm6,xmm6,xmm29 + vextracti32x4 xmm13,zmm6,0 + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_643 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 xmm20,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm6,xmm20,0x01 + vpclmulqdq xmm5,xmm6,xmm20,0x10 + vpclmulqdq xmm0,xmm6,xmm20,0x11 + vpclmulqdq xmm3,xmm6,xmm20,0x00 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_643 +$L$_small_initial_partial_block_643: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + + + + + + + + + + + + vpxorq xmm14,xmm14,xmm13 + + jmp NEAR $L$_after_reduction_643 +$L$_small_initial_compute_done_643: +$L$_after_reduction_643: + jmp NEAR $L$_small_initial_blocks_encrypted_642 +$L$_small_initial_num_blocks_is_2_642: + vmovdqa64 ymm29,YMMWORD[SHUF_MASK] + vshufi64x2 ymm0,ymm2,ymm2,0 + vpaddd ymm0,ymm0,YMMWORD[ddq_add_1234] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm0,1 + vpshufb ymm0,ymm0,ymm29 + vmovdqu8 ymm6{k1}{z},[r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq ymm0,ymm0,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc ymm0,ymm0,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc ymm0,ymm0,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc ymm0,ymm0,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc ymm0,ymm0,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc ymm0,ymm0,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc ymm0,ymm0,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc ymm0,ymm0,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc ymm0,ymm0,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc ymm0,ymm0,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenclast ymm0,ymm0,ymm15 + vpxorq ymm0,ymm0,ymm6 + vextracti32x4 xmm12,zmm0,1 + mov r10,QWORD[120+rbp] + vmovdqu8 YMMWORD[r11*1+r10]{k1},ymm0 + vmovdqu8 zmm0{k1}{z},zmm0 + vpshufb ymm6,ymm6,ymm29 + vextracti32x4 xmm13,zmm6,1 + sub r13,16 * (2 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_644 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 ymm20,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm6,ymm20,0x01 + vpclmulqdq ymm5,ymm6,ymm20,0x10 + vpclmulqdq ymm0,ymm6,ymm20,0x11 + vpclmulqdq ymm3,ymm6,ymm20,0x00 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_644 +$L$_small_initial_partial_block_644: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 xmm20,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm6,xmm20,0x01 + vpclmulqdq xmm5,xmm6,xmm20,0x10 + vpclmulqdq xmm0,xmm6,xmm20,0x11 + vpclmulqdq xmm3,xmm6,xmm20,0x00 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_644: + + or r13,r13 + je NEAR $L$_after_reduction_644 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_644: + jmp NEAR $L$_small_initial_blocks_encrypted_642 +$L$_small_initial_num_blocks_is_3_642: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm0,2 + vpshufb zmm0,zmm0,zmm29 + vmovdqu8 zmm6{k1}{z},[r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenclast zmm0,zmm0,zmm15 + vpxorq zmm0,zmm0,zmm6 + vextracti32x4 xmm12,zmm0,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10]{k1},zmm0 + vmovdqu8 zmm0{k1}{z},zmm0 + vpshufb zmm6,zmm6,zmm29 + vextracti32x4 xmm13,zmm6,2 + sub r13,16 * (3 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_645 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 ymm20,YMMWORD[304+rdx] + vinserti64x2 zmm20,zmm20,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_645 +$L$_small_initial_partial_block_645: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 ymm20,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm6,ymm20,0x01 + vpclmulqdq ymm5,ymm6,ymm20,0x10 + vpclmulqdq ymm0,ymm6,ymm20,0x11 + vpclmulqdq ymm3,ymm6,ymm20,0x00 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_645: + + or r13,r13 + je NEAR $L$_after_reduction_645 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_645: + jmp NEAR $L$_small_initial_blocks_encrypted_642 +$L$_small_initial_num_blocks_is_4_642: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm0,3 + vpshufb zmm0,zmm0,zmm29 + vmovdqu8 zmm6{k1}{z},[r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenclast zmm0,zmm0,zmm15 + vpxorq zmm0,zmm0,zmm6 + vextracti32x4 xmm12,zmm0,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10]{k1},zmm0 + vmovdqu8 zmm0{k1}{z},zmm0 + vpshufb zmm6,zmm6,zmm29 + vextracti32x4 xmm13,zmm6,3 + sub r13,16 * (4 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_646 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[288+rdx] + vpclmulqdq zmm15,zmm6,zmm20,0x11 + vpclmulqdq zmm16,zmm6,zmm20,0x00 + vpclmulqdq zmm17,zmm6,zmm20,0x01 + vpclmulqdq zmm19,zmm6,zmm20,0x10 + + vpxorq zmm17,zmm17,zmm19 + vpsrldq zmm4,zmm17,8 + vpslldq zmm5,zmm17,8 + vpxorq zmm0,zmm15,zmm4 + vpxorq zmm3,zmm16,zmm5 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_646 +$L$_small_initial_partial_block_646: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 ymm20,YMMWORD[304+rdx] + vinserti64x2 zmm20,zmm20,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_646: + + or r13,r13 + je NEAR $L$_after_reduction_646 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_646: + jmp NEAR $L$_small_initial_blocks_encrypted_642 +$L$_small_initial_num_blocks_is_5_642: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm2,ZMMWORD[ddq_add_5678] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + sub r15,64 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm3,0 + vpshufb zmm0,zmm0,zmm29 + vpshufb xmm3,xmm3,xmm29 + vmovdqu8 zmm6,ZMMWORD[r11*1+r9] + vmovdqu8 xmm7{k1}{z},[64+r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vpxorq xmm3,xmm3,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc xmm3,xmm3,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc xmm3,xmm3,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc xmm3,xmm3,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc xmm3,xmm3,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc xmm3,xmm3,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc xmm3,xmm3,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc xmm3,xmm3,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc xmm3,xmm3,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc xmm3,xmm3,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenclast zmm0,zmm0,zmm15 + vaesenclast xmm3,xmm3,xmm15 + vpxorq zmm0,zmm0,zmm6 + vpxorq xmm3,xmm3,xmm7 + vextracti32x4 xmm12,zmm3,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 XMMWORD[64+r11*1+r10]{k1},xmm3 + vmovdqu8 zmm3{k1}{z},zmm3 + vpshufb zmm6,zmm6,zmm29 + vpshufb xmm7,xmm7,xmm29 + vextracti32x4 xmm13,zmm7,0 + sub r13,16 * (5 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_647 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[272+rdx] + vpclmulqdq zmm15,zmm6,zmm20,0x11 + vpclmulqdq zmm16,zmm6,zmm20,0x00 + vpclmulqdq zmm17,zmm6,zmm20,0x01 + vpclmulqdq zmm19,zmm6,zmm20,0x10 + vmovdqu64 xmm20,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm7,xmm20,0x01 + vpclmulqdq xmm5,xmm7,xmm20,0x10 + vpclmulqdq xmm0,xmm7,xmm20,0x11 + vpclmulqdq xmm3,xmm7,xmm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_647 +$L$_small_initial_partial_block_647: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[288+rdx] + vpclmulqdq zmm15,zmm6,zmm20,0x11 + vpclmulqdq zmm16,zmm6,zmm20,0x00 + vpclmulqdq zmm17,zmm6,zmm20,0x01 + vpclmulqdq zmm19,zmm6,zmm20,0x10 + + vpxorq zmm17,zmm17,zmm19 + vpsrldq zmm4,zmm17,8 + vpslldq zmm5,zmm17,8 + vpxorq zmm0,zmm15,zmm4 + vpxorq zmm3,zmm16,zmm5 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_647: + + or r13,r13 + je NEAR $L$_after_reduction_647 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_647: + jmp NEAR $L$_small_initial_blocks_encrypted_642 +$L$_small_initial_num_blocks_is_6_642: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm2,ZMMWORD[ddq_add_5678] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + sub r15,64 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm3,1 + vpshufb zmm0,zmm0,zmm29 + vpshufb ymm3,ymm3,ymm29 + vmovdqu8 zmm6,ZMMWORD[r11*1+r9] + vmovdqu8 ymm7{k1}{z},[64+r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vpxorq ymm3,ymm3,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc ymm3,ymm3,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc ymm3,ymm3,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc ymm3,ymm3,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc ymm3,ymm3,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc ymm3,ymm3,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc ymm3,ymm3,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc ymm3,ymm3,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc ymm3,ymm3,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc ymm3,ymm3,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenclast zmm0,zmm0,zmm15 + vaesenclast ymm3,ymm3,ymm15 + vpxorq zmm0,zmm0,zmm6 + vpxorq ymm3,ymm3,ymm7 + vextracti32x4 xmm12,zmm3,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 YMMWORD[64+r11*1+r10]{k1},ymm3 + vmovdqu8 zmm3{k1}{z},zmm3 + vpshufb zmm6,zmm6,zmm29 + vpshufb ymm7,ymm7,ymm29 + vextracti32x4 xmm13,zmm7,1 + sub r13,16 * (6 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_648 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[256+rdx] + vpclmulqdq zmm15,zmm6,zmm20,0x11 + vpclmulqdq zmm16,zmm6,zmm20,0x00 + vpclmulqdq zmm17,zmm6,zmm20,0x01 + vpclmulqdq zmm19,zmm6,zmm20,0x10 + vmovdqu64 ymm20,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm7,ymm20,0x01 + vpclmulqdq ymm5,ymm7,ymm20,0x10 + vpclmulqdq ymm0,ymm7,ymm20,0x11 + vpclmulqdq ymm3,ymm7,ymm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_648 +$L$_small_initial_partial_block_648: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[272+rdx] + vpclmulqdq zmm15,zmm6,zmm20,0x11 + vpclmulqdq zmm16,zmm6,zmm20,0x00 + vpclmulqdq zmm17,zmm6,zmm20,0x01 + vpclmulqdq zmm19,zmm6,zmm20,0x10 + vmovdqu64 xmm20,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm7,xmm20,0x01 + vpclmulqdq xmm5,xmm7,xmm20,0x10 + vpclmulqdq xmm0,xmm7,xmm20,0x11 + vpclmulqdq xmm3,xmm7,xmm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_648: + + or r13,r13 + je NEAR $L$_after_reduction_648 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_648: + jmp NEAR $L$_small_initial_blocks_encrypted_642 +$L$_small_initial_num_blocks_is_7_642: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm2,ZMMWORD[ddq_add_5678] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + sub r15,64 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm3,2 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vmovdqu8 zmm6,ZMMWORD[r11*1+r9] + vmovdqu8 zmm7{k1}{z},[64+r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenclast zmm0,zmm0,zmm15 + vaesenclast zmm3,zmm3,zmm15 + vpxorq zmm0,zmm0,zmm6 + vpxorq zmm3,zmm3,zmm7 + vextracti32x4 xmm12,zmm3,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10]{k1},zmm3 + vmovdqu8 zmm3{k1}{z},zmm3 + vpshufb zmm6,zmm6,zmm29 + vpshufb zmm7,zmm7,zmm29 + vextracti32x4 xmm13,zmm7,2 + sub r13,16 * (7 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_649 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[240+rdx] + vpclmulqdq zmm15,zmm6,zmm20,0x11 + vpclmulqdq zmm16,zmm6,zmm20,0x00 + vpclmulqdq zmm17,zmm6,zmm20,0x01 + vpclmulqdq zmm19,zmm6,zmm20,0x10 + vmovdqu64 ymm20,YMMWORD[304+rdx] + vinserti64x2 zmm20,zmm20,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm7,zmm20,0x01 + vpclmulqdq zmm5,zmm7,zmm20,0x10 + vpclmulqdq zmm0,zmm7,zmm20,0x11 + vpclmulqdq zmm3,zmm7,zmm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_649 +$L$_small_initial_partial_block_649: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[256+rdx] + vpclmulqdq zmm15,zmm6,zmm20,0x11 + vpclmulqdq zmm16,zmm6,zmm20,0x00 + vpclmulqdq zmm17,zmm6,zmm20,0x01 + vpclmulqdq zmm19,zmm6,zmm20,0x10 + vmovdqu64 ymm20,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm7,ymm20,0x01 + vpclmulqdq ymm5,ymm7,ymm20,0x10 + vpclmulqdq ymm0,ymm7,ymm20,0x11 + vpclmulqdq ymm3,ymm7,ymm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_649: + + or r13,r13 + je NEAR $L$_after_reduction_649 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_649: + jmp NEAR $L$_small_initial_blocks_encrypted_642 +$L$_small_initial_num_blocks_is_8_642: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm2,ZMMWORD[ddq_add_5678] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + sub r15,64 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm3,3 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vmovdqu8 zmm6,ZMMWORD[r11*1+r9] + vmovdqu8 zmm7{k1}{z},[64+r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenclast zmm0,zmm0,zmm15 + vaesenclast zmm3,zmm3,zmm15 + vpxorq zmm0,zmm0,zmm6 + vpxorq zmm3,zmm3,zmm7 + vextracti32x4 xmm12,zmm3,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10]{k1},zmm3 + vmovdqu8 zmm3{k1}{z},zmm3 + vpshufb zmm6,zmm6,zmm29 + vpshufb zmm7,zmm7,zmm29 + vextracti32x4 xmm13,zmm7,3 + sub r13,16 * (8 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_650 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[224+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[288+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vpxorq zmm15,zmm0,zmm15 + vpxorq zmm16,zmm3,zmm16 + vpxorq zmm17,zmm4,zmm17 + vpxorq zmm19,zmm5,zmm19 + + vpxorq zmm17,zmm17,zmm19 + vpsrldq zmm4,zmm17,8 + vpslldq zmm5,zmm17,8 + vpxorq zmm0,zmm15,zmm4 + vpxorq zmm3,zmm16,zmm5 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_650 +$L$_small_initial_partial_block_650: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[240+rdx] + vpclmulqdq zmm15,zmm6,zmm20,0x11 + vpclmulqdq zmm16,zmm6,zmm20,0x00 + vpclmulqdq zmm17,zmm6,zmm20,0x01 + vpclmulqdq zmm19,zmm6,zmm20,0x10 + vmovdqu64 ymm20,YMMWORD[304+rdx] + vinserti64x2 zmm20,zmm20,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm7,zmm20,0x01 + vpclmulqdq zmm5,zmm7,zmm20,0x10 + vpclmulqdq zmm0,zmm7,zmm20,0x11 + vpclmulqdq zmm3,zmm7,zmm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_650: + + or r13,r13 + je NEAR $L$_after_reduction_650 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_650: + jmp NEAR $L$_small_initial_blocks_encrypted_642 +$L$_small_initial_num_blocks_is_9_642: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm2,ZMMWORD[ddq_add_5678] + vpaddd zmm4,zmm0,ZMMWORD[ddq_add_8888] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + sub r15,128 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm4,0 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb xmm4,xmm4,xmm29 + vmovdqu8 zmm6,ZMMWORD[r11*1+r9] + vmovdqu8 zmm7,ZMMWORD[64+r11*1+r9] + vmovdqu8 xmm10{k1}{z},[128+r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm15 + vpxorq xmm4,xmm4,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc xmm4,xmm4,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc xmm4,xmm4,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc xmm4,xmm4,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc xmm4,xmm4,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc xmm4,xmm4,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc xmm4,xmm4,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc xmm4,xmm4,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc xmm4,xmm4,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc xmm4,xmm4,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenclast zmm0,zmm0,zmm15 + vaesenclast zmm3,zmm3,zmm15 + vaesenclast xmm4,xmm4,xmm15 + vpxorq zmm0,zmm0,zmm6 + vpxorq zmm3,zmm3,zmm7 + vpxorq xmm4,xmm4,xmm10 + vextracti32x4 xmm12,zmm4,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 XMMWORD[128+r11*1+r10]{k1},xmm4 + vmovdqu8 zmm4{k1}{z},zmm4 + vpshufb zmm6,zmm6,zmm29 + vpshufb zmm7,zmm7,zmm29 + vpshufb xmm10,xmm10,xmm29 + vextracti32x4 xmm13,zmm10,0 + sub r13,16 * (9 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_651 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[208+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[272+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vpxorq zmm15,zmm0,zmm15 + vpxorq zmm16,zmm3,zmm16 + vpxorq zmm17,zmm4,zmm17 + vpxorq zmm19,zmm5,zmm19 + vmovdqu64 xmm20,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm10,xmm20,0x01 + vpclmulqdq xmm5,xmm10,xmm20,0x10 + vpclmulqdq xmm0,xmm10,xmm20,0x11 + vpclmulqdq xmm3,xmm10,xmm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_651 +$L$_small_initial_partial_block_651: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[224+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[288+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vpxorq zmm15,zmm0,zmm15 + vpxorq zmm16,zmm3,zmm16 + vpxorq zmm17,zmm4,zmm17 + vpxorq zmm19,zmm5,zmm19 + + vpxorq zmm17,zmm17,zmm19 + vpsrldq zmm4,zmm17,8 + vpslldq zmm5,zmm17,8 + vpxorq zmm0,zmm15,zmm4 + vpxorq zmm3,zmm16,zmm5 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_651: + + or r13,r13 + je NEAR $L$_after_reduction_651 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_651: + jmp NEAR $L$_small_initial_blocks_encrypted_642 +$L$_small_initial_num_blocks_is_10_642: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm2,ZMMWORD[ddq_add_5678] + vpaddd zmm4,zmm0,ZMMWORD[ddq_add_8888] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + sub r15,128 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm4,1 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb ymm4,ymm4,ymm29 + vmovdqu8 zmm6,ZMMWORD[r11*1+r9] + vmovdqu8 zmm7,ZMMWORD[64+r11*1+r9] + vmovdqu8 ymm10{k1}{z},[128+r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm15 + vpxorq ymm4,ymm4,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc ymm4,ymm4,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc ymm4,ymm4,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc ymm4,ymm4,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc ymm4,ymm4,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc ymm4,ymm4,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc ymm4,ymm4,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc ymm4,ymm4,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc ymm4,ymm4,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc ymm4,ymm4,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenclast zmm0,zmm0,zmm15 + vaesenclast zmm3,zmm3,zmm15 + vaesenclast ymm4,ymm4,ymm15 + vpxorq zmm0,zmm0,zmm6 + vpxorq zmm3,zmm3,zmm7 + vpxorq ymm4,ymm4,ymm10 + vextracti32x4 xmm12,zmm4,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 YMMWORD[128+r11*1+r10]{k1},ymm4 + vmovdqu8 zmm4{k1}{z},zmm4 + vpshufb zmm6,zmm6,zmm29 + vpshufb zmm7,zmm7,zmm29 + vpshufb ymm10,ymm10,ymm29 + vextracti32x4 xmm13,zmm10,1 + sub r13,16 * (10 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_652 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[192+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[256+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vpxorq zmm15,zmm0,zmm15 + vpxorq zmm16,zmm3,zmm16 + vpxorq zmm17,zmm4,zmm17 + vpxorq zmm19,zmm5,zmm19 + vmovdqu64 ymm20,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm10,ymm20,0x01 + vpclmulqdq ymm5,ymm10,ymm20,0x10 + vpclmulqdq ymm0,ymm10,ymm20,0x11 + vpclmulqdq ymm3,ymm10,ymm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_652 +$L$_small_initial_partial_block_652: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[208+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[272+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vpxorq zmm15,zmm0,zmm15 + vpxorq zmm16,zmm3,zmm16 + vpxorq zmm17,zmm4,zmm17 + vpxorq zmm19,zmm5,zmm19 + vmovdqu64 xmm20,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm10,xmm20,0x01 + vpclmulqdq xmm5,xmm10,xmm20,0x10 + vpclmulqdq xmm0,xmm10,xmm20,0x11 + vpclmulqdq xmm3,xmm10,xmm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_652: + + or r13,r13 + je NEAR $L$_after_reduction_652 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_652: + jmp NEAR $L$_small_initial_blocks_encrypted_642 +$L$_small_initial_num_blocks_is_11_642: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm2,ZMMWORD[ddq_add_5678] + vpaddd zmm4,zmm0,ZMMWORD[ddq_add_8888] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + sub r15,128 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm4,2 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vmovdqu8 zmm6,ZMMWORD[r11*1+r9] + vmovdqu8 zmm7,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm10{k1}{z},[128+r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm15 + vpxorq zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenclast zmm0,zmm0,zmm15 + vaesenclast zmm3,zmm3,zmm15 + vaesenclast zmm4,zmm4,zmm15 + vpxorq zmm0,zmm0,zmm6 + vpxorq zmm3,zmm3,zmm7 + vpxorq zmm4,zmm4,zmm10 + vextracti32x4 xmm12,zmm4,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10]{k1},zmm4 + vmovdqu8 zmm4{k1}{z},zmm4 + vpshufb zmm6,zmm6,zmm29 + vpshufb zmm7,zmm7,zmm29 + vpshufb zmm10,zmm10,zmm29 + vextracti32x4 xmm13,zmm10,2 + sub r13,16 * (11 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_653 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[176+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[240+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vpxorq zmm15,zmm0,zmm15 + vpxorq zmm16,zmm3,zmm16 + vpxorq zmm17,zmm4,zmm17 + vpxorq zmm19,zmm5,zmm19 + vmovdqu64 ymm20,YMMWORD[304+rdx] + vinserti64x2 zmm20,zmm20,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm10,zmm20,0x01 + vpclmulqdq zmm5,zmm10,zmm20,0x10 + vpclmulqdq zmm0,zmm10,zmm20,0x11 + vpclmulqdq zmm3,zmm10,zmm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_653 +$L$_small_initial_partial_block_653: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[192+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[256+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vpxorq zmm15,zmm0,zmm15 + vpxorq zmm16,zmm3,zmm16 + vpxorq zmm17,zmm4,zmm17 + vpxorq zmm19,zmm5,zmm19 + vmovdqu64 ymm20,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm10,ymm20,0x01 + vpclmulqdq ymm5,ymm10,ymm20,0x10 + vpclmulqdq ymm0,ymm10,ymm20,0x11 + vpclmulqdq ymm3,ymm10,ymm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_653: + + or r13,r13 + je NEAR $L$_after_reduction_653 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_653: + jmp NEAR $L$_small_initial_blocks_encrypted_642 +$L$_small_initial_num_blocks_is_12_642: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm2,ZMMWORD[ddq_add_5678] + vpaddd zmm4,zmm0,ZMMWORD[ddq_add_8888] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + sub r15,128 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm4,3 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vmovdqu8 zmm6,ZMMWORD[r11*1+r9] + vmovdqu8 zmm7,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm10{k1}{z},[128+r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm15 + vpxorq zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenclast zmm0,zmm0,zmm15 + vaesenclast zmm3,zmm3,zmm15 + vaesenclast zmm4,zmm4,zmm15 + vpxorq zmm0,zmm0,zmm6 + vpxorq zmm3,zmm3,zmm7 + vpxorq zmm4,zmm4,zmm10 + vextracti32x4 xmm12,zmm4,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10]{k1},zmm4 + vmovdqu8 zmm4{k1}{z},zmm4 + vpshufb zmm6,zmm6,zmm29 + vpshufb zmm7,zmm7,zmm29 + vpshufb zmm10,zmm10,zmm29 + vextracti32x4 xmm13,zmm10,3 + sub r13,16 * (12 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_654 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[160+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[224+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[288+rdx] + vpclmulqdq zmm6,zmm10,zmm20,0x11 + vpclmulqdq zmm7,zmm10,zmm20,0x00 + vpternlogq zmm15,zmm6,zmm0,0x96 + vpternlogq zmm16,zmm7,zmm3,0x96 + vpclmulqdq zmm6,zmm10,zmm20,0x01 + vpclmulqdq zmm7,zmm10,zmm20,0x10 + vpternlogq zmm17,zmm6,zmm4,0x96 + vpternlogq zmm19,zmm7,zmm5,0x96 + + vpxorq zmm17,zmm17,zmm19 + vpsrldq zmm4,zmm17,8 + vpslldq zmm5,zmm17,8 + vpxorq zmm0,zmm15,zmm4 + vpxorq zmm3,zmm16,zmm5 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_654 +$L$_small_initial_partial_block_654: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[176+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[240+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vpxorq zmm15,zmm0,zmm15 + vpxorq zmm16,zmm3,zmm16 + vpxorq zmm17,zmm4,zmm17 + vpxorq zmm19,zmm5,zmm19 + vmovdqu64 ymm20,YMMWORD[304+rdx] + vinserti64x2 zmm20,zmm20,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm10,zmm20,0x01 + vpclmulqdq zmm5,zmm10,zmm20,0x10 + vpclmulqdq zmm0,zmm10,zmm20,0x11 + vpclmulqdq zmm3,zmm10,zmm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_654: + + or r13,r13 + je NEAR $L$_after_reduction_654 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_654: + jmp NEAR $L$_small_initial_blocks_encrypted_642 +$L$_small_initial_num_blocks_is_13_642: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm2,ZMMWORD[ddq_add_5678] + vpaddd zmm4,zmm0,ZMMWORD[ddq_add_8888] + vpaddd zmm5,zmm3,ZMMWORD[ddq_add_8888] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + sub r15,192 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm5,0 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb xmm5,xmm5,xmm29 + vmovdqu8 zmm6,ZMMWORD[r11*1+r9] + vmovdqu8 zmm7,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm10,ZMMWORD[128+r11*1+r9] + vmovdqu8 xmm11{k1}{z},[192+r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm15 + vpxorq zmm4,zmm4,zmm15 + vpxorq xmm5,xmm5,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc xmm5,xmm5,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc xmm5,xmm5,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc xmm5,xmm5,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc xmm5,xmm5,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc xmm5,xmm5,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc xmm5,xmm5,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc xmm5,xmm5,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc xmm5,xmm5,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc xmm5,xmm5,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenclast zmm0,zmm0,zmm15 + vaesenclast zmm3,zmm3,zmm15 + vaesenclast zmm4,zmm4,zmm15 + vaesenclast xmm5,xmm5,xmm15 + vpxorq zmm0,zmm0,zmm6 + vpxorq zmm3,zmm3,zmm7 + vpxorq zmm4,zmm4,zmm10 + vpxorq xmm5,xmm5,xmm11 + vextracti32x4 xmm12,zmm5,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 XMMWORD[192+r11*1+r10]{k1},xmm5 + vmovdqu8 zmm5{k1}{z},zmm5 + vpshufb zmm6,zmm6,zmm29 + vpshufb zmm7,zmm7,zmm29 + vpshufb zmm10,zmm10,zmm29 + vpshufb xmm11,xmm11,xmm29 + vextracti32x4 xmm13,zmm11,0 + sub r13,16 * (13 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_655 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[144+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[208+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[272+rdx] + vpclmulqdq zmm6,zmm10,zmm20,0x11 + vpclmulqdq zmm7,zmm10,zmm20,0x00 + vpternlogq zmm15,zmm6,zmm0,0x96 + vpternlogq zmm16,zmm7,zmm3,0x96 + vpclmulqdq zmm6,zmm10,zmm20,0x01 + vpclmulqdq zmm7,zmm10,zmm20,0x10 + vpternlogq zmm17,zmm6,zmm4,0x96 + vpternlogq zmm19,zmm7,zmm5,0x96 + vmovdqu64 xmm20,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm11,xmm20,0x01 + vpclmulqdq xmm5,xmm11,xmm20,0x10 + vpclmulqdq xmm0,xmm11,xmm20,0x11 + vpclmulqdq xmm3,xmm11,xmm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_655 +$L$_small_initial_partial_block_655: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[160+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[224+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[288+rdx] + vpclmulqdq zmm6,zmm10,zmm20,0x11 + vpclmulqdq zmm7,zmm10,zmm20,0x00 + vpternlogq zmm15,zmm6,zmm0,0x96 + vpternlogq zmm16,zmm7,zmm3,0x96 + vpclmulqdq zmm6,zmm10,zmm20,0x01 + vpclmulqdq zmm7,zmm10,zmm20,0x10 + vpternlogq zmm17,zmm6,zmm4,0x96 + vpternlogq zmm19,zmm7,zmm5,0x96 + + vpxorq zmm17,zmm17,zmm19 + vpsrldq zmm4,zmm17,8 + vpslldq zmm5,zmm17,8 + vpxorq zmm0,zmm15,zmm4 + vpxorq zmm3,zmm16,zmm5 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_655: + + or r13,r13 + je NEAR $L$_after_reduction_655 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_655: + jmp NEAR $L$_small_initial_blocks_encrypted_642 +$L$_small_initial_num_blocks_is_14_642: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm2,ZMMWORD[ddq_add_5678] + vpaddd zmm4,zmm0,ZMMWORD[ddq_add_8888] + vpaddd zmm5,zmm3,ZMMWORD[ddq_add_8888] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + sub r15,192 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm5,1 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb ymm5,ymm5,ymm29 + vmovdqu8 zmm6,ZMMWORD[r11*1+r9] + vmovdqu8 zmm7,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm10,ZMMWORD[128+r11*1+r9] + vmovdqu8 ymm11{k1}{z},[192+r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm15 + vpxorq zmm4,zmm4,zmm15 + vpxorq ymm5,ymm5,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc ymm5,ymm5,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc ymm5,ymm5,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc ymm5,ymm5,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc ymm5,ymm5,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc ymm5,ymm5,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc ymm5,ymm5,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc ymm5,ymm5,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc ymm5,ymm5,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc ymm5,ymm5,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenclast zmm0,zmm0,zmm15 + vaesenclast zmm3,zmm3,zmm15 + vaesenclast zmm4,zmm4,zmm15 + vaesenclast ymm5,ymm5,ymm15 + vpxorq zmm0,zmm0,zmm6 + vpxorq zmm3,zmm3,zmm7 + vpxorq zmm4,zmm4,zmm10 + vpxorq ymm5,ymm5,ymm11 + vextracti32x4 xmm12,zmm5,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 YMMWORD[192+r11*1+r10]{k1},ymm5 + vmovdqu8 zmm5{k1}{z},zmm5 + vpshufb zmm6,zmm6,zmm29 + vpshufb zmm7,zmm7,zmm29 + vpshufb zmm10,zmm10,zmm29 + vpshufb ymm11,ymm11,ymm29 + vextracti32x4 xmm13,zmm11,1 + sub r13,16 * (14 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_656 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[128+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[192+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[256+rdx] + vpclmulqdq zmm6,zmm10,zmm20,0x11 + vpclmulqdq zmm7,zmm10,zmm20,0x00 + vpternlogq zmm15,zmm6,zmm0,0x96 + vpternlogq zmm16,zmm7,zmm3,0x96 + vpclmulqdq zmm6,zmm10,zmm20,0x01 + vpclmulqdq zmm7,zmm10,zmm20,0x10 + vpternlogq zmm17,zmm6,zmm4,0x96 + vpternlogq zmm19,zmm7,zmm5,0x96 + vmovdqu64 ymm20,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm11,ymm20,0x01 + vpclmulqdq ymm5,ymm11,ymm20,0x10 + vpclmulqdq ymm0,ymm11,ymm20,0x11 + vpclmulqdq ymm3,ymm11,ymm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_656 +$L$_small_initial_partial_block_656: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[144+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[208+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[272+rdx] + vpclmulqdq zmm6,zmm10,zmm20,0x11 + vpclmulqdq zmm7,zmm10,zmm20,0x00 + vpternlogq zmm15,zmm6,zmm0,0x96 + vpternlogq zmm16,zmm7,zmm3,0x96 + vpclmulqdq zmm6,zmm10,zmm20,0x01 + vpclmulqdq zmm7,zmm10,zmm20,0x10 + vpternlogq zmm17,zmm6,zmm4,0x96 + vpternlogq zmm19,zmm7,zmm5,0x96 + vmovdqu64 xmm20,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm11,xmm20,0x01 + vpclmulqdq xmm5,xmm11,xmm20,0x10 + vpclmulqdq xmm0,xmm11,xmm20,0x11 + vpclmulqdq xmm3,xmm11,xmm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_656: + + or r13,r13 + je NEAR $L$_after_reduction_656 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_656: + jmp NEAR $L$_small_initial_blocks_encrypted_642 +$L$_small_initial_num_blocks_is_15_642: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm2,ZMMWORD[ddq_add_5678] + vpaddd zmm4,zmm0,ZMMWORD[ddq_add_8888] + vpaddd zmm5,zmm3,ZMMWORD[ddq_add_8888] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + sub r15,192 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm5,2 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 + vmovdqu8 zmm6,ZMMWORD[r11*1+r9] + vmovdqu8 zmm7,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm10,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm11{k1}{z},[192+r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm15 + vpxorq zmm4,zmm4,zmm15 + vpxorq zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenclast zmm0,zmm0,zmm15 + vaesenclast zmm3,zmm3,zmm15 + vaesenclast zmm4,zmm4,zmm15 + vaesenclast zmm5,zmm5,zmm15 + vpxorq zmm0,zmm0,zmm6 + vpxorq zmm3,zmm3,zmm7 + vpxorq zmm4,zmm4,zmm10 + vpxorq zmm5,zmm5,zmm11 + vextracti32x4 xmm12,zmm5,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[192+r11*1+r10]{k1},zmm5 + vmovdqu8 zmm5{k1}{z},zmm5 + vpshufb zmm6,zmm6,zmm29 + vpshufb zmm7,zmm7,zmm29 + vpshufb zmm10,zmm10,zmm29 + vpshufb zmm11,zmm11,zmm29 + vextracti32x4 xmm13,zmm11,2 + sub r13,16 * (15 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_657 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[112+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[176+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[240+rdx] + vpclmulqdq zmm6,zmm10,zmm20,0x11 + vpclmulqdq zmm7,zmm10,zmm20,0x00 + vpternlogq zmm15,zmm6,zmm0,0x96 + vpternlogq zmm16,zmm7,zmm3,0x96 + vpclmulqdq zmm6,zmm10,zmm20,0x01 + vpclmulqdq zmm7,zmm10,zmm20,0x10 + vpternlogq zmm17,zmm6,zmm4,0x96 + vpternlogq zmm19,zmm7,zmm5,0x96 + vmovdqu64 ymm20,YMMWORD[304+rdx] + vinserti64x2 zmm20,zmm20,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm11,zmm20,0x01 + vpclmulqdq zmm5,zmm11,zmm20,0x10 + vpclmulqdq zmm0,zmm11,zmm20,0x11 + vpclmulqdq zmm3,zmm11,zmm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_657 +$L$_small_initial_partial_block_657: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[128+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[192+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[256+rdx] + vpclmulqdq zmm6,zmm10,zmm20,0x11 + vpclmulqdq zmm7,zmm10,zmm20,0x00 + vpternlogq zmm15,zmm6,zmm0,0x96 + vpternlogq zmm16,zmm7,zmm3,0x96 + vpclmulqdq zmm6,zmm10,zmm20,0x01 + vpclmulqdq zmm7,zmm10,zmm20,0x10 + vpternlogq zmm17,zmm6,zmm4,0x96 + vpternlogq zmm19,zmm7,zmm5,0x96 + vmovdqu64 ymm20,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm11,ymm20,0x01 + vpclmulqdq ymm5,ymm11,ymm20,0x10 + vpclmulqdq ymm0,ymm11,ymm20,0x11 + vpclmulqdq ymm3,ymm11,ymm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_657: + + or r13,r13 + je NEAR $L$_after_reduction_657 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_657: + jmp NEAR $L$_small_initial_blocks_encrypted_642 +$L$_small_initial_num_blocks_is_16_642: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm2,ZMMWORD[ddq_add_5678] + vpaddd zmm4,zmm0,ZMMWORD[ddq_add_8888] + vpaddd zmm5,zmm3,ZMMWORD[ddq_add_8888] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + sub r15,192 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm5,3 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 + vmovdqu8 zmm6,ZMMWORD[r11*1+r9] + vmovdqu8 zmm7,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm10,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm11{k1}{z},[192+r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm15 + vpxorq zmm4,zmm4,zmm15 + vpxorq zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenclast zmm0,zmm0,zmm15 + vaesenclast zmm3,zmm3,zmm15 + vaesenclast zmm4,zmm4,zmm15 + vaesenclast zmm5,zmm5,zmm15 + vpxorq zmm0,zmm0,zmm6 + vpxorq zmm3,zmm3,zmm7 + vpxorq zmm4,zmm4,zmm10 + vpxorq zmm5,zmm5,zmm11 + vextracti32x4 xmm12,zmm5,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[192+r11*1+r10]{k1},zmm5 + vmovdqu8 zmm5{k1}{z},zmm5 + vpshufb zmm6,zmm6,zmm29 + vpshufb zmm7,zmm7,zmm29 + vpshufb zmm10,zmm10,zmm29 + vpshufb zmm11,zmm11,zmm29 + vextracti32x4 xmm13,zmm11,3 + sub r13,16 * (16 - 1) +$L$_small_initial_partial_block_658: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[112+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[176+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[240+rdx] + vpclmulqdq zmm6,zmm10,zmm20,0x11 + vpclmulqdq zmm7,zmm10,zmm20,0x00 + vpternlogq zmm15,zmm6,zmm0,0x96 + vpternlogq zmm16,zmm7,zmm3,0x96 + vpclmulqdq zmm6,zmm10,zmm20,0x01 + vpclmulqdq zmm7,zmm10,zmm20,0x10 + vpternlogq zmm17,zmm6,zmm4,0x96 + vpternlogq zmm19,zmm7,zmm5,0x96 + vmovdqu64 ymm20,YMMWORD[304+rdx] + vinserti64x2 zmm20,zmm20,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm11,zmm20,0x01 + vpclmulqdq zmm5,zmm11,zmm20,0x10 + vpclmulqdq zmm0,zmm11,zmm20,0x11 + vpclmulqdq zmm3,zmm11,zmm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_658: + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_658: +$L$_small_initial_blocks_encrypted_642: +$L$_ghash_done_497: + vmovdqu64 XMMWORD[rdx],xmm2 + vmovdqu64 XMMWORD[64+rdx],xmm14 +$L$_enc_dec_done_497: + jmp NEAR $L$exit_gcm_decrypt +ALIGN 32 +$L$aes_gcm_decrypt_192_avx512: + cmp QWORD[112+rbp],0 + je NEAR $L$_enc_dec_done_659 + xor r14,r14 + vmovdqu64 xmm14,XMMWORD[64+rdx] + + mov r11,QWORD[r8] + or r11,r11 + je NEAR $L$_partial_block_done_660 + mov r10d,16 + lea r12,[byte_len_to_mask_table] + cmp QWORD[112+rbp],r10 + cmovc r10,QWORD[112+rbp] + add r12,r10 + add r12,r10 + kmovw k1,[r12] + vmovdqu8 xmm0{k1}{z},[r9] + + vmovdqu64 xmm3,XMMWORD[16+rdx] + vmovdqu64 xmm4,XMMWORD[336+rdx] + + + + lea r12,[SHIFT_MASK] + add r12,r11 + vmovdqu64 xmm5,XMMWORD[r12] + vpshufb xmm3,xmm3,xmm5 + + vmovdqa64 xmm6,xmm0 + vpxorq xmm3,xmm3,xmm0 + + + mov r13,QWORD[112+rbp] + add r13,r11 + sub r13,16 + jge NEAR $L$_no_extra_mask_660 + sub r12,r13 +$L$_no_extra_mask_660: + + + + vmovdqu64 xmm0,XMMWORD[16+r12] + vpand xmm3,xmm3,xmm0 + vpand xmm6,xmm6,xmm0 + vpshufb xmm6,xmm6,XMMWORD[SHUF_MASK] + vpshufb xmm6,xmm6,xmm5 + vpxorq xmm14,xmm14,xmm6 + cmp r13,0 + jl NEAR $L$_partial_incomplete_660 + + vpclmulqdq xmm7,xmm14,xmm4,0x11 + vpclmulqdq xmm10,xmm14,xmm4,0x00 + vpclmulqdq xmm11,xmm14,xmm4,0x01 + vpclmulqdq xmm14,xmm14,xmm4,0x10 + vpxorq xmm14,xmm14,xmm11 + + vpsrldq xmm11,xmm14,8 + vpslldq xmm14,xmm14,8 + vpxorq xmm7,xmm7,xmm11 + vpxorq xmm14,xmm14,xmm10 + + + + vmovdqu64 xmm11,XMMWORD[POLY2] + + vpclmulqdq xmm10,xmm11,xmm14,0x01 + vpslldq xmm10,xmm10,8 + vpxorq xmm14,xmm14,xmm10 + + + + vpclmulqdq xmm10,xmm11,xmm14,0x00 + vpsrldq xmm10,xmm10,4 + vpclmulqdq xmm14,xmm11,xmm14,0x10 + vpslldq xmm14,xmm14,4 + + vpternlogq xmm14,xmm7,xmm10,0x96 + + mov QWORD[r8],0 + + mov r12,r11 + mov r11,16 + sub r11,r12 + jmp NEAR $L$_enc_dec_done_660 + +$L$_partial_incomplete_660: + mov r12,QWORD[112+rbp] + add QWORD[r8],r12 + mov r11,QWORD[112+rbp] + +$L$_enc_dec_done_660: + + + lea r12,[byte_len_to_mask_table] + kmovw k1,[r11*2+r12] + vmovdqu64 XMMWORD[64+rdx],xmm14 + mov r12,QWORD[120+rbp] + vmovdqu8 XMMWORD[r12]{k1},xmm3 +$L$_partial_block_done_660: + vmovdqu64 xmm2,XMMWORD[rdx] + mov r13,QWORD[112+rbp] + sub r13,r11 + je NEAR $L$_enc_dec_done_659 + cmp r13,256 + jbe NEAR $L$_message_below_equal_16_blocks_659 + + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vmovdqa64 zmm27,ZMMWORD[ddq_addbe_4444] + vmovdqa64 zmm28,ZMMWORD[ddq_addbe_1234] + + + + + + + vmovd r15d,xmm2 + and r15d,255 + + vshufi64x2 zmm2,zmm2,zmm2,0 + vpshufb zmm2,zmm2,zmm29 + + + + cmp r15b,240 + jae NEAR $L$_next_16_overflow_661 + vpaddd zmm7,zmm2,zmm28 + vpaddd zmm10,zmm7,zmm27 + vpaddd zmm11,zmm10,zmm27 + vpaddd zmm12,zmm11,zmm27 + jmp NEAR $L$_next_16_ok_661 +$L$_next_16_overflow_661: + vpshufb zmm2,zmm2,zmm29 + vmovdqa64 zmm12,ZMMWORD[ddq_add_4444] + vpaddd zmm7,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm10,zmm7,zmm12 + vpaddd zmm11,zmm10,zmm12 + vpaddd zmm12,zmm11,zmm12 + vpshufb zmm7,zmm7,zmm29 + vpshufb zmm10,zmm10,zmm29 + vpshufb zmm11,zmm11,zmm29 + vpshufb zmm12,zmm12,zmm29 +$L$_next_16_ok_661: + vshufi64x2 zmm2,zmm12,zmm12,255 + add r15b,16 + + vmovdqu8 zmm0,ZMMWORD[r11*1+r9] + vmovdqu8 zmm3,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm4,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm5,ZMMWORD[192+r11*1+r9] + + + vbroadcastf64x2 zmm6,ZMMWORD[rcx] + vpxorq zmm7,zmm7,zmm6 + vpxorq zmm10,zmm10,zmm6 + vpxorq zmm11,zmm11,zmm6 + vpxorq zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[16+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[32+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[48+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[64+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[80+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[96+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[112+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[128+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[144+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[160+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[176+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[192+rcx] + vaesenclast zmm7,zmm7,zmm6 + vaesenclast zmm10,zmm10,zmm6 + vaesenclast zmm11,zmm11,zmm6 + vaesenclast zmm12,zmm12,zmm6 + + + vpxorq zmm7,zmm7,zmm0 + vpxorq zmm10,zmm10,zmm3 + vpxorq zmm11,zmm11,zmm4 + vpxorq zmm12,zmm12,zmm5 + + + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm7 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm10 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm11 + vmovdqu8 ZMMWORD[192+r11*1+r10],zmm12 + + vpshufb zmm7,zmm0,zmm29 + vpshufb zmm10,zmm3,zmm29 + vpshufb zmm11,zmm4,zmm29 + vpshufb zmm12,zmm5,zmm29 + vmovdqa64 ZMMWORD[768+rsp],zmm7 + vmovdqa64 ZMMWORD[832+rsp],zmm10 + vmovdqa64 ZMMWORD[896+rsp],zmm11 + vmovdqa64 ZMMWORD[960+rsp],zmm12 + test r14,r14 + jnz NEAR $L$_skip_hkeys_precomputation_662 + + vmovdqu64 zmm0,ZMMWORD[288+rdx] + vmovdqu64 ZMMWORD[704+rsp],zmm0 + + vmovdqu64 zmm3,ZMMWORD[224+rdx] + vmovdqu64 ZMMWORD[640+rsp],zmm3 + + + vshufi64x2 zmm3,zmm3,zmm3,0x00 + + vmovdqu64 zmm4,ZMMWORD[160+rdx] + vmovdqu64 ZMMWORD[576+rsp],zmm4 + + vmovdqu64 zmm5,ZMMWORD[96+rdx] + vmovdqu64 ZMMWORD[512+rsp],zmm5 +$L$_skip_hkeys_precomputation_662: + cmp r13,512 + jb NEAR $L$_message_below_32_blocks_659 + + + + cmp r15b,240 + jae NEAR $L$_next_16_overflow_663 + vpaddd zmm7,zmm2,zmm28 + vpaddd zmm10,zmm7,zmm27 + vpaddd zmm11,zmm10,zmm27 + vpaddd zmm12,zmm11,zmm27 + jmp NEAR $L$_next_16_ok_663 +$L$_next_16_overflow_663: + vpshufb zmm2,zmm2,zmm29 + vmovdqa64 zmm12,ZMMWORD[ddq_add_4444] + vpaddd zmm7,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm10,zmm7,zmm12 + vpaddd zmm11,zmm10,zmm12 + vpaddd zmm12,zmm11,zmm12 + vpshufb zmm7,zmm7,zmm29 + vpshufb zmm10,zmm10,zmm29 + vpshufb zmm11,zmm11,zmm29 + vpshufb zmm12,zmm12,zmm29 +$L$_next_16_ok_663: + vshufi64x2 zmm2,zmm12,zmm12,255 + add r15b,16 + + vmovdqu8 zmm0,ZMMWORD[256+r11*1+r9] + vmovdqu8 zmm3,ZMMWORD[320+r11*1+r9] + vmovdqu8 zmm4,ZMMWORD[384+r11*1+r9] + vmovdqu8 zmm5,ZMMWORD[448+r11*1+r9] + + + vbroadcastf64x2 zmm6,ZMMWORD[rcx] + vpxorq zmm7,zmm7,zmm6 + vpxorq zmm10,zmm10,zmm6 + vpxorq zmm11,zmm11,zmm6 + vpxorq zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[16+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[32+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[48+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[64+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[80+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[96+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[112+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[128+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[144+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[160+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[176+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[192+rcx] + vaesenclast zmm7,zmm7,zmm6 + vaesenclast zmm10,zmm10,zmm6 + vaesenclast zmm11,zmm11,zmm6 + vaesenclast zmm12,zmm12,zmm6 + + + vpxorq zmm7,zmm7,zmm0 + vpxorq zmm10,zmm10,zmm3 + vpxorq zmm11,zmm11,zmm4 + vpxorq zmm12,zmm12,zmm5 + + + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[256+r11*1+r10],zmm7 + vmovdqu8 ZMMWORD[320+r11*1+r10],zmm10 + vmovdqu8 ZMMWORD[384+r11*1+r10],zmm11 + vmovdqu8 ZMMWORD[448+r11*1+r10],zmm12 + + vpshufb zmm7,zmm0,zmm29 + vpshufb zmm10,zmm3,zmm29 + vpshufb zmm11,zmm4,zmm29 + vpshufb zmm12,zmm5,zmm29 + vmovdqa64 ZMMWORD[1024+rsp],zmm7 + vmovdqa64 ZMMWORD[1088+rsp],zmm10 + vmovdqa64 ZMMWORD[1152+rsp],zmm11 + vmovdqa64 ZMMWORD[1216+rsp],zmm12 + test r14,r14 + jnz NEAR $L$_skip_hkeys_precomputation_664 + vmovdqu64 zmm3,ZMMWORD[640+rsp] + + + vshufi64x2 zmm3,zmm3,zmm3,0x00 + + vmovdqu64 zmm4,ZMMWORD[576+rsp] + vmovdqu64 zmm5,ZMMWORD[512+rsp] + + vpclmulqdq zmm6,zmm4,zmm3,0x11 + vpclmulqdq zmm7,zmm4,zmm3,0x00 + vpclmulqdq zmm10,zmm4,zmm3,0x01 + vpclmulqdq zmm4,zmm4,zmm3,0x10 + vpxorq zmm4,zmm4,zmm10 + + vpsrldq zmm10,zmm4,8 + vpslldq zmm4,zmm4,8 + vpxorq zmm6,zmm6,zmm10 + vpxorq zmm4,zmm4,zmm7 + + + + vmovdqu64 zmm10,ZMMWORD[POLY2] + + vpclmulqdq zmm7,zmm10,zmm4,0x01 + vpslldq zmm7,zmm7,8 + vpxorq zmm4,zmm4,zmm7 + + + + vpclmulqdq zmm7,zmm10,zmm4,0x00 + vpsrldq zmm7,zmm7,4 + vpclmulqdq zmm4,zmm10,zmm4,0x10 + vpslldq zmm4,zmm4,4 + + vpternlogq zmm4,zmm6,zmm7,0x96 + + vmovdqu64 ZMMWORD[448+rsp],zmm4 + + vpclmulqdq zmm6,zmm5,zmm3,0x11 + vpclmulqdq zmm7,zmm5,zmm3,0x00 + vpclmulqdq zmm10,zmm5,zmm3,0x01 + vpclmulqdq zmm5,zmm5,zmm3,0x10 + vpxorq zmm5,zmm5,zmm10 + + vpsrldq zmm10,zmm5,8 + vpslldq zmm5,zmm5,8 + vpxorq zmm6,zmm6,zmm10 + vpxorq zmm5,zmm5,zmm7 + + + + vmovdqu64 zmm10,ZMMWORD[POLY2] + + vpclmulqdq zmm7,zmm10,zmm5,0x01 + vpslldq zmm7,zmm7,8 + vpxorq zmm5,zmm5,zmm7 + + + + vpclmulqdq zmm7,zmm10,zmm5,0x00 + vpsrldq zmm7,zmm7,4 + vpclmulqdq zmm5,zmm10,zmm5,0x10 + vpslldq zmm5,zmm5,4 + + vpternlogq zmm5,zmm6,zmm7,0x96 + + vmovdqu64 ZMMWORD[384+rsp],zmm5 + + vpclmulqdq zmm6,zmm4,zmm3,0x11 + vpclmulqdq zmm7,zmm4,zmm3,0x00 + vpclmulqdq zmm10,zmm4,zmm3,0x01 + vpclmulqdq zmm4,zmm4,zmm3,0x10 + vpxorq zmm4,zmm4,zmm10 + + vpsrldq zmm10,zmm4,8 + vpslldq zmm4,zmm4,8 + vpxorq zmm6,zmm6,zmm10 + vpxorq zmm4,zmm4,zmm7 + + + + vmovdqu64 zmm10,ZMMWORD[POLY2] + + vpclmulqdq zmm7,zmm10,zmm4,0x01 + vpslldq zmm7,zmm7,8 + vpxorq zmm4,zmm4,zmm7 + + + + vpclmulqdq zmm7,zmm10,zmm4,0x00 + vpsrldq zmm7,zmm7,4 + vpclmulqdq zmm4,zmm10,zmm4,0x10 + vpslldq zmm4,zmm4,4 + + vpternlogq zmm4,zmm6,zmm7,0x96 + + vmovdqu64 ZMMWORD[320+rsp],zmm4 + + vpclmulqdq zmm6,zmm5,zmm3,0x11 + vpclmulqdq zmm7,zmm5,zmm3,0x00 + vpclmulqdq zmm10,zmm5,zmm3,0x01 + vpclmulqdq zmm5,zmm5,zmm3,0x10 + vpxorq zmm5,zmm5,zmm10 + + vpsrldq zmm10,zmm5,8 + vpslldq zmm5,zmm5,8 + vpxorq zmm6,zmm6,zmm10 + vpxorq zmm5,zmm5,zmm7 + + + + vmovdqu64 zmm10,ZMMWORD[POLY2] + + vpclmulqdq zmm7,zmm10,zmm5,0x01 + vpslldq zmm7,zmm7,8 + vpxorq zmm5,zmm5,zmm7 + + + + vpclmulqdq zmm7,zmm10,zmm5,0x00 + vpsrldq zmm7,zmm7,4 + vpclmulqdq zmm5,zmm10,zmm5,0x10 + vpslldq zmm5,zmm5,4 + + vpternlogq zmm5,zmm6,zmm7,0x96 + + vmovdqu64 ZMMWORD[256+rsp],zmm5 + + vpclmulqdq zmm6,zmm4,zmm3,0x11 + vpclmulqdq zmm7,zmm4,zmm3,0x00 + vpclmulqdq zmm10,zmm4,zmm3,0x01 + vpclmulqdq zmm4,zmm4,zmm3,0x10 + vpxorq zmm4,zmm4,zmm10 + + vpsrldq zmm10,zmm4,8 + vpslldq zmm4,zmm4,8 + vpxorq zmm6,zmm6,zmm10 + vpxorq zmm4,zmm4,zmm7 + + + + vmovdqu64 zmm10,ZMMWORD[POLY2] + + vpclmulqdq zmm7,zmm10,zmm4,0x01 + vpslldq zmm7,zmm7,8 + vpxorq zmm4,zmm4,zmm7 + + + + vpclmulqdq zmm7,zmm10,zmm4,0x00 + vpsrldq zmm7,zmm7,4 + vpclmulqdq zmm4,zmm10,zmm4,0x10 + vpslldq zmm4,zmm4,4 + + vpternlogq zmm4,zmm6,zmm7,0x96 + + vmovdqu64 ZMMWORD[192+rsp],zmm4 + + vpclmulqdq zmm6,zmm5,zmm3,0x11 + vpclmulqdq zmm7,zmm5,zmm3,0x00 + vpclmulqdq zmm10,zmm5,zmm3,0x01 + vpclmulqdq zmm5,zmm5,zmm3,0x10 + vpxorq zmm5,zmm5,zmm10 + + vpsrldq zmm10,zmm5,8 + vpslldq zmm5,zmm5,8 + vpxorq zmm6,zmm6,zmm10 + vpxorq zmm5,zmm5,zmm7 + + + + vmovdqu64 zmm10,ZMMWORD[POLY2] + + vpclmulqdq zmm7,zmm10,zmm5,0x01 + vpslldq zmm7,zmm7,8 + vpxorq zmm5,zmm5,zmm7 + + + + vpclmulqdq zmm7,zmm10,zmm5,0x00 + vpsrldq zmm7,zmm7,4 + vpclmulqdq zmm5,zmm10,zmm5,0x10 + vpslldq zmm5,zmm5,4 + + vpternlogq zmm5,zmm6,zmm7,0x96 + + vmovdqu64 ZMMWORD[128+rsp],zmm5 + + vpclmulqdq zmm6,zmm4,zmm3,0x11 + vpclmulqdq zmm7,zmm4,zmm3,0x00 + vpclmulqdq zmm10,zmm4,zmm3,0x01 + vpclmulqdq zmm4,zmm4,zmm3,0x10 + vpxorq zmm4,zmm4,zmm10 + + vpsrldq zmm10,zmm4,8 + vpslldq zmm4,zmm4,8 + vpxorq zmm6,zmm6,zmm10 + vpxorq zmm4,zmm4,zmm7 + + + + vmovdqu64 zmm10,ZMMWORD[POLY2] + + vpclmulqdq zmm7,zmm10,zmm4,0x01 + vpslldq zmm7,zmm7,8 + vpxorq zmm4,zmm4,zmm7 + + + + vpclmulqdq zmm7,zmm10,zmm4,0x00 + vpsrldq zmm7,zmm7,4 + vpclmulqdq zmm4,zmm10,zmm4,0x10 + vpslldq zmm4,zmm4,4 + + vpternlogq zmm4,zmm6,zmm7,0x96 + + vmovdqu64 ZMMWORD[64+rsp],zmm4 + + vpclmulqdq zmm6,zmm5,zmm3,0x11 + vpclmulqdq zmm7,zmm5,zmm3,0x00 + vpclmulqdq zmm10,zmm5,zmm3,0x01 + vpclmulqdq zmm5,zmm5,zmm3,0x10 + vpxorq zmm5,zmm5,zmm10 + + vpsrldq zmm10,zmm5,8 + vpslldq zmm5,zmm5,8 + vpxorq zmm6,zmm6,zmm10 + vpxorq zmm5,zmm5,zmm7 + + + + vmovdqu64 zmm10,ZMMWORD[POLY2] + + vpclmulqdq zmm7,zmm10,zmm5,0x01 + vpslldq zmm7,zmm7,8 + vpxorq zmm5,zmm5,zmm7 + + + + vpclmulqdq zmm7,zmm10,zmm5,0x00 + vpsrldq zmm7,zmm7,4 + vpclmulqdq zmm5,zmm10,zmm5,0x10 + vpslldq zmm5,zmm5,4 + + vpternlogq zmm5,zmm6,zmm7,0x96 + + vmovdqu64 ZMMWORD[rsp],zmm5 +$L$_skip_hkeys_precomputation_664: + mov r14,1 + add r11,512 + sub r13,512 + + cmp r13,768 + jb NEAR $L$_no_more_big_nblocks_659 +$L$_encrypt_big_nblocks_659: + cmp r15b,240 + jae NEAR $L$_16_blocks_overflow_665 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_665 +$L$_16_blocks_overflow_665: + vpshufb zmm2,zmm2,zmm29 + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_665: + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rsp] + + + + + vshufi64x2 zmm2,zmm5,zmm5,255 + add r15b,16 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + + + + + + + + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + + vpclmulqdq zmm6,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + + vpternlogq zmm6,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + + + + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm21,ZMMWORD[192+r11*1+r9] + + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm26,zmm10,zmm15 + vpxorq zmm24,zmm6,zmm12 + vpxorq zmm25,zmm7,zmm13 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + + + + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + + + + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[192+r11*1+r10],zmm5 + vpshufb zmm0,zmm17,zmm29 + vpshufb zmm3,zmm19,zmm29 + vpshufb zmm4,zmm20,zmm29 + vpshufb zmm5,zmm21,zmm29 + vmovdqa64 ZMMWORD[1280+rsp],zmm0 + vmovdqa64 ZMMWORD[1344+rsp],zmm3 + vmovdqa64 ZMMWORD[1408+rsp],zmm4 + vmovdqa64 ZMMWORD[1472+rsp],zmm5 + cmp r15b,240 + jae NEAR $L$_16_blocks_overflow_666 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_666 +$L$_16_blocks_overflow_666: + vpshufb zmm2,zmm2,zmm29 + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_666: + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[256+rsp] + + + + + vshufi64x2 zmm2,zmm5,zmm5,255 + add r15b,16 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[320+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + + + + + + + + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + + vpclmulqdq zmm6,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[384+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[448+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + + vpternlogq zmm6,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + + + + vmovdqu8 zmm17,ZMMWORD[256+r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[320+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[384+r11*1+r9] + vmovdqu8 zmm21,ZMMWORD[448+r11*1+r9] + + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vpternlogq zmm24,zmm6,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + + + + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + + + + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[256+r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[320+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[384+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[448+r11*1+r10],zmm5 + vpshufb zmm0,zmm17,zmm29 + vpshufb zmm3,zmm19,zmm29 + vpshufb zmm4,zmm20,zmm29 + vpshufb zmm5,zmm21,zmm29 + vmovdqa64 ZMMWORD[768+rsp],zmm0 + vmovdqa64 ZMMWORD[832+rsp],zmm3 + vmovdqa64 ZMMWORD[896+rsp],zmm4 + vmovdqa64 ZMMWORD[960+rsp],zmm5 + cmp r15b,240 + jae NEAR $L$_16_blocks_overflow_667 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_667 +$L$_16_blocks_overflow_667: + vpshufb zmm2,zmm2,zmm29 + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_667: + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + + + + + vshufi64x2 zmm2,zmm5,zmm5,255 + add r15b,16 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + + + + + + + + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + + vpclmulqdq zmm6,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + + vpternlogq zmm6,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + + + + vmovdqu8 zmm17,ZMMWORD[512+r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[576+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[640+r11*1+r9] + vmovdqu8 zmm21,ZMMWORD[704+r11*1+r9] + + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + + + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpternlogq zmm6,zmm12,zmm15,0x96 + vpxorq zmm6,zmm6,zmm24 + vpternlogq zmm7,zmm13,zmm10,0x96 + vpxorq zmm7,zmm7,zmm25 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vextracti64x4 ymm12,zmm6,1 + vpxorq ymm6,ymm6,ymm12 + vextracti32x4 xmm12,ymm6,1 + vpxorq xmm6,xmm6,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm6,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + + + + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + + + + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[512+r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[576+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[640+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[704+r11*1+r10],zmm5 + vpshufb zmm0,zmm17,zmm29 + vpshufb zmm3,zmm19,zmm29 + vpshufb zmm4,zmm20,zmm29 + vpshufb zmm5,zmm21,zmm29 + vmovdqa64 ZMMWORD[1024+rsp],zmm0 + vmovdqa64 ZMMWORD[1088+rsp],zmm3 + vmovdqa64 ZMMWORD[1152+rsp],zmm4 + vmovdqa64 ZMMWORD[1216+rsp],zmm5 + vmovdqa64 zmm14,zmm6 + + add r11,768 + sub r13,768 + cmp r13,768 + jae NEAR $L$_encrypt_big_nblocks_659 + +$L$_no_more_big_nblocks_659: + + cmp r13,512 + jae NEAR $L$_encrypt_32_blocks_659 + + cmp r13,256 + jae NEAR $L$_encrypt_16_blocks_659 +$L$_encrypt_0_blocks_ghash_32_659: + mov r10d,r13d + and r10d,~15 + mov ebx,256 + sub ebx,r10d + vmovdqa64 zmm13,ZMMWORD[768+rsp] + vpxorq zmm13,zmm13,zmm14 + vmovdqu64 zmm12,ZMMWORD[rbx*1+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[832+rsp] + vmovdqu64 zmm12,ZMMWORD[64+rbx*1+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + vpxorq zmm26,zmm4,zmm10 + vpxorq zmm24,zmm0,zmm6 + vpxorq zmm25,zmm3,zmm7 + vpternlogq zmm26,zmm5,zmm11,0x96 + vmovdqa64 zmm13,ZMMWORD[896+rsp] + vmovdqu64 zmm12,ZMMWORD[128+rbx*1+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[960+rsp] + vmovdqu64 zmm12,ZMMWORD[192+rbx*1+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + + vpternlogq zmm26,zmm4,zmm10,0x96 + vpternlogq zmm24,zmm0,zmm6,0x96 + vpternlogq zmm25,zmm3,zmm7,0x96 + vpternlogq zmm26,zmm5,zmm11,0x96 + add ebx,256 + mov r10d,r13d + add r10d,15 + shr r10d,4 + je NEAR $L$_last_num_blocks_is_0_668 + + cmp r10d,8 + je NEAR $L$_last_num_blocks_is_8_668 + jb NEAR $L$_last_num_blocks_is_7_1_668 + + + cmp r10d,12 + je NEAR $L$_last_num_blocks_is_12_668 + jb NEAR $L$_last_num_blocks_is_11_9_668 + + + cmp r10d,15 + je NEAR $L$_last_num_blocks_is_15_668 + ja NEAR $L$_last_num_blocks_is_16_668 + cmp r10d,14 + je NEAR $L$_last_num_blocks_is_14_668 + jmp NEAR $L$_last_num_blocks_is_13_668 + +$L$_last_num_blocks_is_11_9_668: + + cmp r10d,10 + je NEAR $L$_last_num_blocks_is_10_668 + ja NEAR $L$_last_num_blocks_is_11_668 + jmp NEAR $L$_last_num_blocks_is_9_668 + +$L$_last_num_blocks_is_7_1_668: + cmp r10d,4 + je NEAR $L$_last_num_blocks_is_4_668 + jb NEAR $L$_last_num_blocks_is_3_1_668 + + cmp r10d,6 + ja NEAR $L$_last_num_blocks_is_7_668 + je NEAR $L$_last_num_blocks_is_6_668 + jmp NEAR $L$_last_num_blocks_is_5_668 + +$L$_last_num_blocks_is_3_1_668: + + cmp r10d,2 + ja NEAR $L$_last_num_blocks_is_3_668 + je NEAR $L$_last_num_blocks_is_2_668 +$L$_last_num_blocks_is_1_668: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,255 + jae NEAR $L$_16_blocks_overflow_669 + vpaddd xmm0,xmm2,xmm28 + jmp NEAR $L$_16_blocks_ok_669 + +$L$_16_blocks_overflow_669: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb xmm0,xmm0,xmm29 +$L$_16_blocks_ok_669: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm0,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 xmm17{k1}{z},[r11*1+r9] + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc xmm0,xmm0,xmm31 + vaesenclast xmm0,xmm0,xmm30 + vpxorq xmm0,xmm0,xmm17 + vextracti32x4 xmm11,zmm0,0 + mov r10,QWORD[120+rbp] + vmovdqu8 XMMWORD[r11*1+r10]{k1},xmm0 + vmovdqu8 zmm17{k1}{z},zmm17 + vpshufb xmm17,xmm17,xmm29 + vextracti32x4 xmm7,zmm17,0 + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_670 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm17,xmm1,0x01 + vpclmulqdq xmm5,xmm17,xmm1,0x10 + vpclmulqdq xmm0,xmm17,xmm1,0x11 + vpclmulqdq xmm3,xmm17,xmm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_670 +$L$_small_initial_partial_block_670: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + + + vpsrldq zmm0,zmm26,8 + vpslldq zmm3,zmm26,8 + vpxorq zmm24,zmm24,zmm0 + vpxorq zmm25,zmm25,zmm3 + vextracti64x4 ymm0,zmm24,1 + vpxorq ymm24,ymm24,ymm0 + vextracti32x4 xmm0,ymm24,1 + vpxorq xmm24,xmm24,xmm0 + vextracti64x4 ymm3,zmm25,1 + vpxorq ymm25,ymm25,ymm3 + vextracti32x4 xmm3,ymm25,1 + vpxorq xmm25,xmm25,xmm3 + vmovdqa64 xmm0,XMMWORD[POLY2] + + + vpclmulqdq xmm3,xmm0,xmm25,0x01 + vpslldq xmm3,xmm3,8 + vpxorq xmm3,xmm25,xmm3 + + + vpclmulqdq xmm4,xmm0,xmm3,0x00 + vpsrldq xmm4,xmm4,4 + vpclmulqdq xmm14,xmm0,xmm3,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm4,xmm24,0x96 + + + + + + + + + + + + + vpxorq xmm14,xmm14,xmm7 + + jmp NEAR $L$_after_reduction_670 +$L$_small_initial_compute_done_670: +$L$_after_reduction_670: + jmp NEAR $L$_last_blocks_done_668 +$L$_last_num_blocks_is_2_668: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,254 + jae NEAR $L$_16_blocks_overflow_671 + vpaddd ymm0,ymm2,ymm28 + jmp NEAR $L$_16_blocks_ok_671 + +$L$_16_blocks_overflow_671: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb ymm0,ymm0,ymm29 +$L$_16_blocks_ok_671: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm0,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 ymm17{k1}{z},[r11*1+r9] + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc ymm0,ymm0,ymm31 + vaesenclast ymm0,ymm0,ymm30 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm11,zmm0,1 + mov r10,QWORD[120+rbp] + vmovdqu8 YMMWORD[r11*1+r10]{k1},ymm0 + vmovdqu8 zmm17{k1}{z},zmm17 + vpshufb ymm17,ymm17,ymm29 + vextracti32x4 xmm7,zmm17,1 + sub r13,16 * (2 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_672 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm17,ymm1,0x01 + vpclmulqdq ymm5,ymm17,ymm1,0x10 + vpclmulqdq ymm0,ymm17,ymm1,0x11 + vpclmulqdq ymm3,ymm17,ymm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_672 +$L$_small_initial_partial_block_672: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm17,xmm1,0x01 + vpclmulqdq xmm5,xmm17,xmm1,0x10 + vpclmulqdq xmm0,xmm17,xmm1,0x11 + vpclmulqdq xmm3,xmm17,xmm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_672: + + or r13,r13 + je NEAR $L$_after_reduction_672 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_672: + jmp NEAR $L$_last_blocks_done_668 +$L$_last_num_blocks_is_3_668: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,253 + jae NEAR $L$_16_blocks_overflow_673 + vpaddd zmm0,zmm2,zmm28 + jmp NEAR $L$_16_blocks_ok_673 + +$L$_16_blocks_overflow_673: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb zmm0,zmm0,zmm29 +$L$_16_blocks_ok_673: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm0,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17{k1}{z},[r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vpxorq zmm0,zmm0,zmm17 + vextracti32x4 xmm11,zmm0,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10]{k1},zmm0 + vmovdqu8 zmm17{k1}{z},zmm17 + vpshufb zmm17,zmm17,zmm29 + vextracti32x4 xmm7,zmm17,2 + sub r13,16 * (3 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_674 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_674 +$L$_small_initial_partial_block_674: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm17,ymm1,0x01 + vpclmulqdq ymm5,ymm17,ymm1,0x10 + vpclmulqdq ymm0,ymm17,ymm1,0x11 + vpclmulqdq ymm3,ymm17,ymm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_674: + + or r13,r13 + je NEAR $L$_after_reduction_674 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_674: + jmp NEAR $L$_last_blocks_done_668 +$L$_last_num_blocks_is_4_668: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,252 + jae NEAR $L$_16_blocks_overflow_675 + vpaddd zmm0,zmm2,zmm28 + jmp NEAR $L$_16_blocks_ok_675 + +$L$_16_blocks_overflow_675: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb zmm0,zmm0,zmm29 +$L$_16_blocks_ok_675: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm0,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17{k1}{z},[r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vpxorq zmm0,zmm0,zmm17 + vextracti32x4 xmm11,zmm0,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10]{k1},zmm0 + vmovdqu8 zmm17{k1}{z},zmm17 + vpshufb zmm17,zmm17,zmm29 + vextracti32x4 xmm7,zmm17,3 + sub r13,16 * (4 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_676 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_676 +$L$_small_initial_partial_block_676: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_676: + + or r13,r13 + je NEAR $L$_after_reduction_676 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_676: + jmp NEAR $L$_last_blocks_done_668 +$L$_last_num_blocks_is_5_668: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,251 + jae NEAR $L$_16_blocks_overflow_677 + vpaddd zmm0,zmm2,zmm28 + vpaddd xmm3,xmm0,xmm27 + jmp NEAR $L$_16_blocks_ok_677 + +$L$_16_blocks_overflow_677: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb xmm3,xmm3,xmm29 +$L$_16_blocks_ok_677: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm3,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 xmm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast xmm3,xmm3,xmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq xmm3,xmm3,xmm19 + vextracti32x4 xmm11,zmm3,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 XMMWORD[64+r11*1+r10]{k1},xmm3 + vmovdqu8 zmm19{k1}{z},zmm19 + vpshufb zmm17,zmm17,zmm29 + vpshufb xmm19,xmm19,xmm29 + vextracti32x4 xmm7,zmm19,0 + sub r13,16 * (5 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_678 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm19,xmm1,0x01 + vpclmulqdq xmm5,xmm19,xmm1,0x10 + vpclmulqdq xmm0,xmm19,xmm1,0x11 + vpclmulqdq xmm3,xmm19,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_678 +$L$_small_initial_partial_block_678: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_678: + + or r13,r13 + je NEAR $L$_after_reduction_678 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_678: + jmp NEAR $L$_last_blocks_done_668 +$L$_last_num_blocks_is_6_668: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,250 + jae NEAR $L$_16_blocks_overflow_679 + vpaddd zmm0,zmm2,zmm28 + vpaddd ymm3,ymm0,ymm27 + jmp NEAR $L$_16_blocks_ok_679 + +$L$_16_blocks_overflow_679: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb ymm3,ymm3,ymm29 +$L$_16_blocks_ok_679: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm3,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 ymm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast ymm3,ymm3,ymm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm11,zmm3,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 YMMWORD[64+r11*1+r10]{k1},ymm3 + vmovdqu8 zmm19{k1}{z},zmm19 + vpshufb zmm17,zmm17,zmm29 + vpshufb ymm19,ymm19,ymm29 + vextracti32x4 xmm7,zmm19,1 + sub r13,16 * (6 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_680 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm19,ymm1,0x01 + vpclmulqdq ymm5,ymm19,ymm1,0x10 + vpclmulqdq ymm0,ymm19,ymm1,0x11 + vpclmulqdq ymm3,ymm19,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_680 +$L$_small_initial_partial_block_680: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm19,xmm1,0x01 + vpclmulqdq xmm5,xmm19,xmm1,0x10 + vpclmulqdq xmm0,xmm19,xmm1,0x11 + vpclmulqdq xmm3,xmm19,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_680: + + or r13,r13 + je NEAR $L$_after_reduction_680 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_680: + jmp NEAR $L$_last_blocks_done_668 +$L$_last_num_blocks_is_7_668: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,249 + jae NEAR $L$_16_blocks_overflow_681 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + jmp NEAR $L$_16_blocks_ok_681 + +$L$_16_blocks_overflow_681: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 +$L$_16_blocks_ok_681: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm3,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti32x4 xmm11,zmm3,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10]{k1},zmm3 + vmovdqu8 zmm19{k1}{z},zmm19 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vextracti32x4 xmm7,zmm19,2 + sub r13,16 * (7 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_682 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm19,zmm1,0x01 + vpclmulqdq zmm5,zmm19,zmm1,0x10 + vpclmulqdq zmm0,zmm19,zmm1,0x11 + vpclmulqdq zmm3,zmm19,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_682 +$L$_small_initial_partial_block_682: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm19,ymm1,0x01 + vpclmulqdq ymm5,ymm19,ymm1,0x10 + vpclmulqdq ymm0,ymm19,ymm1,0x11 + vpclmulqdq ymm3,ymm19,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_682: + + or r13,r13 + je NEAR $L$_after_reduction_682 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_682: + jmp NEAR $L$_last_blocks_done_668 +$L$_last_num_blocks_is_8_668: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,248 + jae NEAR $L$_16_blocks_overflow_683 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + jmp NEAR $L$_16_blocks_ok_683 + +$L$_16_blocks_overflow_683: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 +$L$_16_blocks_ok_683: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm3,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti32x4 xmm11,zmm3,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10]{k1},zmm3 + vmovdqu8 zmm19{k1}{z},zmm19 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vextracti32x4 xmm7,zmm19,3 + sub r13,16 * (8 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_684 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_684 +$L$_small_initial_partial_block_684: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm19,zmm1,0x01 + vpclmulqdq zmm5,zmm19,zmm1,0x10 + vpclmulqdq zmm0,zmm19,zmm1,0x11 + vpclmulqdq zmm3,zmm19,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_684: + + or r13,r13 + je NEAR $L$_after_reduction_684 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_684: + jmp NEAR $L$_last_blocks_done_668 +$L$_last_num_blocks_is_9_668: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,247 + jae NEAR $L$_16_blocks_overflow_685 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd xmm4,xmm3,xmm27 + jmp NEAR $L$_16_blocks_ok_685 + +$L$_16_blocks_overflow_685: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb xmm4,xmm4,xmm29 +$L$_16_blocks_ok_685: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm4,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 xmm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast xmm4,xmm4,xmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq xmm4,xmm4,xmm20 + vextracti32x4 xmm11,zmm4,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 XMMWORD[128+r11*1+r10]{k1},xmm4 + vmovdqu8 zmm20{k1}{z},zmm20 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb xmm20,xmm20,xmm29 + vextracti32x4 xmm7,zmm20,0 + sub r13,16 * (9 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_686 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm20,xmm1,0x01 + vpclmulqdq xmm5,xmm20,xmm1,0x10 + vpclmulqdq xmm0,xmm20,xmm1,0x11 + vpclmulqdq xmm3,xmm20,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_686 +$L$_small_initial_partial_block_686: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_686: + + or r13,r13 + je NEAR $L$_after_reduction_686 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_686: + jmp NEAR $L$_last_blocks_done_668 +$L$_last_num_blocks_is_10_668: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,246 + jae NEAR $L$_16_blocks_overflow_687 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd ymm4,ymm3,ymm27 + jmp NEAR $L$_16_blocks_ok_687 + +$L$_16_blocks_overflow_687: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb ymm4,ymm4,ymm29 +$L$_16_blocks_ok_687: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm4,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 ymm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast ymm4,ymm4,ymm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq ymm4,ymm4,ymm20 + vextracti32x4 xmm11,zmm4,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 YMMWORD[128+r11*1+r10]{k1},ymm4 + vmovdqu8 zmm20{k1}{z},zmm20 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb ymm20,ymm20,ymm29 + vextracti32x4 xmm7,zmm20,1 + sub r13,16 * (10 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_688 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm20,ymm1,0x01 + vpclmulqdq ymm5,ymm20,ymm1,0x10 + vpclmulqdq ymm0,ymm20,ymm1,0x11 + vpclmulqdq ymm3,ymm20,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_688 +$L$_small_initial_partial_block_688: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm20,xmm1,0x01 + vpclmulqdq xmm5,xmm20,xmm1,0x10 + vpclmulqdq xmm0,xmm20,xmm1,0x11 + vpclmulqdq xmm3,xmm20,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_688: + + or r13,r13 + je NEAR $L$_after_reduction_688 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_688: + jmp NEAR $L$_last_blocks_done_668 +$L$_last_num_blocks_is_11_668: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,245 + jae NEAR $L$_16_blocks_overflow_689 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + jmp NEAR $L$_16_blocks_ok_689 + +$L$_16_blocks_overflow_689: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 +$L$_16_blocks_ok_689: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm4,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vextracti32x4 xmm11,zmm4,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10]{k1},zmm4 + vmovdqu8 zmm20{k1}{z},zmm20 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb zmm20,zmm20,zmm29 + vextracti32x4 xmm7,zmm20,2 + sub r13,16 * (11 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_690 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm20,zmm1,0x01 + vpclmulqdq zmm5,zmm20,zmm1,0x10 + vpclmulqdq zmm0,zmm20,zmm1,0x11 + vpclmulqdq zmm3,zmm20,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_690 +$L$_small_initial_partial_block_690: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm20,ymm1,0x01 + vpclmulqdq ymm5,ymm20,ymm1,0x10 + vpclmulqdq ymm0,ymm20,ymm1,0x11 + vpclmulqdq ymm3,ymm20,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_690: + + or r13,r13 + je NEAR $L$_after_reduction_690 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_690: + jmp NEAR $L$_last_blocks_done_668 +$L$_last_num_blocks_is_12_668: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,244 + jae NEAR $L$_16_blocks_overflow_691 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + jmp NEAR $L$_16_blocks_ok_691 + +$L$_16_blocks_overflow_691: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 +$L$_16_blocks_ok_691: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm4,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vextracti32x4 xmm11,zmm4,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10]{k1},zmm4 + vmovdqu8 zmm20{k1}{z},zmm20 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb zmm20,zmm20,zmm29 + vextracti32x4 xmm7,zmm20,3 + sub r13,16 * (12 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_692 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[160+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_692 +$L$_small_initial_partial_block_692: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm20,zmm1,0x01 + vpclmulqdq zmm5,zmm20,zmm1,0x10 + vpclmulqdq zmm0,zmm20,zmm1,0x11 + vpclmulqdq zmm3,zmm20,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_692: + + or r13,r13 + je NEAR $L$_after_reduction_692 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_692: + jmp NEAR $L$_last_blocks_done_668 +$L$_last_num_blocks_is_13_668: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,243 + jae NEAR $L$_16_blocks_overflow_693 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd xmm5,xmm4,xmm27 + jmp NEAR $L$_16_blocks_ok_693 + +$L$_16_blocks_overflow_693: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb xmm5,xmm5,xmm29 +$L$_16_blocks_ok_693: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm5,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 xmm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast xmm5,xmm5,xmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq xmm5,xmm5,xmm21 + vextracti32x4 xmm11,zmm5,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 XMMWORD[192+r11*1+r10]{k1},xmm5 + vmovdqu8 zmm21{k1}{z},zmm21 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb zmm20,zmm20,zmm29 + vpshufb xmm21,xmm21,xmm29 + vextracti32x4 xmm7,zmm21,0 + sub r13,16 * (13 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_694 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[144+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm21,xmm1,0x01 + vpclmulqdq xmm5,xmm21,xmm1,0x10 + vpclmulqdq xmm0,xmm21,xmm1,0x11 + vpclmulqdq xmm3,xmm21,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_694 +$L$_small_initial_partial_block_694: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[160+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_694: + + or r13,r13 + je NEAR $L$_after_reduction_694 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_694: + jmp NEAR $L$_last_blocks_done_668 +$L$_last_num_blocks_is_14_668: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,242 + jae NEAR $L$_16_blocks_overflow_695 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd ymm5,ymm4,ymm27 + jmp NEAR $L$_16_blocks_ok_695 + +$L$_16_blocks_overflow_695: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb ymm5,ymm5,ymm29 +$L$_16_blocks_ok_695: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm5,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 ymm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast ymm5,ymm5,ymm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq ymm5,ymm5,ymm21 + vextracti32x4 xmm11,zmm5,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 YMMWORD[192+r11*1+r10]{k1},ymm5 + vmovdqu8 zmm21{k1}{z},zmm21 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb zmm20,zmm20,zmm29 + vpshufb ymm21,ymm21,ymm29 + vextracti32x4 xmm7,zmm21,1 + sub r13,16 * (14 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_696 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[128+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm21,ymm1,0x01 + vpclmulqdq ymm5,ymm21,ymm1,0x10 + vpclmulqdq ymm0,ymm21,ymm1,0x11 + vpclmulqdq ymm3,ymm21,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_696 +$L$_small_initial_partial_block_696: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[144+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm21,xmm1,0x01 + vpclmulqdq xmm5,xmm21,xmm1,0x10 + vpclmulqdq xmm0,xmm21,xmm1,0x11 + vpclmulqdq xmm3,xmm21,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_696: + + or r13,r13 + je NEAR $L$_after_reduction_696 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_696: + jmp NEAR $L$_last_blocks_done_668 +$L$_last_num_blocks_is_15_668: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,241 + jae NEAR $L$_16_blocks_overflow_697 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_697 + +$L$_16_blocks_overflow_697: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_697: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm5,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + vextracti32x4 xmm11,zmm5,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[192+r11*1+r10]{k1},zmm5 + vmovdqu8 zmm21{k1}{z},zmm21 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb zmm20,zmm20,zmm29 + vpshufb zmm21,zmm21,zmm29 + vextracti32x4 xmm7,zmm21,2 + sub r13,16 * (15 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_698 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[112+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm21,zmm1,0x01 + vpclmulqdq zmm5,zmm21,zmm1,0x10 + vpclmulqdq zmm0,zmm21,zmm1,0x11 + vpclmulqdq zmm3,zmm21,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_698 +$L$_small_initial_partial_block_698: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[128+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm21,ymm1,0x01 + vpclmulqdq ymm5,ymm21,ymm1,0x10 + vpclmulqdq ymm0,ymm21,ymm1,0x11 + vpclmulqdq ymm3,ymm21,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_698: + + or r13,r13 + je NEAR $L$_after_reduction_698 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_698: + jmp NEAR $L$_last_blocks_done_668 +$L$_last_num_blocks_is_16_668: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,240 + jae NEAR $L$_16_blocks_overflow_699 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_699 + +$L$_16_blocks_overflow_699: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_699: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm5,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + vextracti32x4 xmm11,zmm5,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[192+r11*1+r10]{k1},zmm5 + vmovdqu8 zmm21{k1}{z},zmm21 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb zmm20,zmm20,zmm29 + vpshufb zmm21,zmm21,zmm29 + vextracti32x4 xmm7,zmm21,3 + sub r13,16 * (16 - 1) +$L$_small_initial_partial_block_700: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[112+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm21,zmm1,0x01 + vpclmulqdq zmm5,zmm21,zmm1,0x10 + vpclmulqdq zmm0,zmm21,zmm1,0x11 + vpclmulqdq zmm3,zmm21,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_700: + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_700: + jmp NEAR $L$_last_blocks_done_668 +$L$_last_num_blocks_is_0_668: + vmovdqa64 zmm13,ZMMWORD[1024+rsp] + vmovdqu64 zmm12,ZMMWORD[rbx*1+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[1088+rsp] + vmovdqu64 zmm12,ZMMWORD[64+rbx*1+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + vpternlogq zmm26,zmm4,zmm10,0x96 + vpternlogq zmm24,zmm0,zmm6,0x96 + vpternlogq zmm25,zmm3,zmm7,0x96 + vpternlogq zmm26,zmm5,zmm11,0x96 + vmovdqa64 zmm13,ZMMWORD[1152+rsp] + vmovdqu64 zmm12,ZMMWORD[128+rbx*1+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[1216+rsp] + vmovdqu64 zmm12,ZMMWORD[192+rbx*1+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + + vpternlogq zmm26,zmm4,zmm10,0x96 + vpternlogq zmm24,zmm0,zmm6,0x96 + vpternlogq zmm25,zmm3,zmm7,0x96 + vpternlogq zmm26,zmm5,zmm11,0x96 + + vpsrldq zmm0,zmm26,8 + vpslldq zmm3,zmm26,8 + vpxorq zmm24,zmm24,zmm0 + vpxorq zmm25,zmm25,zmm3 + vextracti64x4 ymm0,zmm24,1 + vpxorq ymm24,ymm24,ymm0 + vextracti32x4 xmm0,ymm24,1 + vpxorq xmm24,xmm24,xmm0 + vextracti64x4 ymm3,zmm25,1 + vpxorq ymm25,ymm25,ymm3 + vextracti32x4 xmm3,ymm25,1 + vpxorq xmm25,xmm25,xmm3 + vmovdqa64 xmm4,XMMWORD[POLY2] + + + vpclmulqdq xmm0,xmm4,xmm25,0x01 + vpslldq xmm0,xmm0,8 + vpxorq xmm0,xmm25,xmm0 + + + vpclmulqdq xmm3,xmm4,xmm0,0x00 + vpsrldq xmm3,xmm3,4 + vpclmulqdq xmm14,xmm4,xmm0,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm3,xmm24,0x96 + +$L$_last_blocks_done_668: + vpshufb xmm2,xmm2,xmm29 + jmp NEAR $L$_ghash_done_659 +$L$_encrypt_32_blocks_659: + cmp r15b,240 + jae NEAR $L$_16_blocks_overflow_701 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_701 +$L$_16_blocks_overflow_701: + vpshufb zmm2,zmm2,zmm29 + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_701: + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rsp] + + + + + vshufi64x2 zmm2,zmm5,zmm5,255 + add r15b,16 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + + + + + + + + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + + vpclmulqdq zmm6,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + + vpternlogq zmm6,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + + + + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm21,ZMMWORD[192+r11*1+r9] + + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm26,zmm10,zmm15 + vpxorq zmm24,zmm6,zmm12 + vpxorq zmm25,zmm7,zmm13 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + + + + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + + + + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[192+r11*1+r10],zmm5 + vpshufb zmm0,zmm17,zmm29 + vpshufb zmm3,zmm19,zmm29 + vpshufb zmm4,zmm20,zmm29 + vpshufb zmm5,zmm21,zmm29 + vmovdqa64 ZMMWORD[1280+rsp],zmm0 + vmovdqa64 ZMMWORD[1344+rsp],zmm3 + vmovdqa64 ZMMWORD[1408+rsp],zmm4 + vmovdqa64 ZMMWORD[1472+rsp],zmm5 + cmp r15b,240 + jae NEAR $L$_16_blocks_overflow_702 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_702 +$L$_16_blocks_overflow_702: + vpshufb zmm2,zmm2,zmm29 + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_702: + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[256+rsp] + + + + + vshufi64x2 zmm2,zmm5,zmm5,255 + add r15b,16 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[320+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + + + + + + + + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + + vpclmulqdq zmm6,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[384+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[448+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + + vpternlogq zmm6,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + + + + vmovdqu8 zmm17,ZMMWORD[256+r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[320+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[384+r11*1+r9] + vmovdqu8 zmm21,ZMMWORD[448+r11*1+r9] + + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vpternlogq zmm24,zmm6,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + + + + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + + + + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[256+r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[320+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[384+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[448+r11*1+r10],zmm5 + vpshufb zmm0,zmm17,zmm29 + vpshufb zmm3,zmm19,zmm29 + vpshufb zmm4,zmm20,zmm29 + vpshufb zmm5,zmm21,zmm29 + vmovdqa64 ZMMWORD[768+rsp],zmm0 + vmovdqa64 ZMMWORD[832+rsp],zmm3 + vmovdqa64 ZMMWORD[896+rsp],zmm4 + vmovdqa64 ZMMWORD[960+rsp],zmm5 + vmovdqa64 zmm13,ZMMWORD[1280+rsp] + vmovdqu64 zmm12,ZMMWORD[512+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[1344+rsp] + vmovdqu64 zmm12,ZMMWORD[576+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + vpternlogq zmm26,zmm4,zmm10,0x96 + vpternlogq zmm24,zmm0,zmm6,0x96 + vpternlogq zmm25,zmm3,zmm7,0x96 + vpternlogq zmm26,zmm5,zmm11,0x96 + vmovdqa64 zmm13,ZMMWORD[1408+rsp] + vmovdqu64 zmm12,ZMMWORD[640+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[1472+rsp] + vmovdqu64 zmm12,ZMMWORD[704+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + + vpternlogq zmm26,zmm4,zmm10,0x96 + vpternlogq zmm24,zmm0,zmm6,0x96 + vpternlogq zmm25,zmm3,zmm7,0x96 + vpternlogq zmm26,zmm5,zmm11,0x96 + + vpsrldq zmm0,zmm26,8 + vpslldq zmm3,zmm26,8 + vpxorq zmm24,zmm24,zmm0 + vpxorq zmm25,zmm25,zmm3 + vextracti64x4 ymm0,zmm24,1 + vpxorq ymm24,ymm24,ymm0 + vextracti32x4 xmm0,ymm24,1 + vpxorq xmm24,xmm24,xmm0 + vextracti64x4 ymm3,zmm25,1 + vpxorq ymm25,ymm25,ymm3 + vextracti32x4 xmm3,ymm25,1 + vpxorq xmm25,xmm25,xmm3 + vmovdqa64 xmm4,XMMWORD[POLY2] + + + vpclmulqdq xmm0,xmm4,xmm25,0x01 + vpslldq xmm0,xmm0,8 + vpxorq xmm0,xmm25,xmm0 + + + vpclmulqdq xmm3,xmm4,xmm0,0x00 + vpsrldq xmm3,xmm3,4 + vpclmulqdq xmm14,xmm4,xmm0,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm3,xmm24,0x96 + + sub r13,512 + add r11,512 + mov r10d,r13d + and r10d,~15 + mov ebx,512 + sub ebx,r10d + mov r10d,r13d + add r10d,15 + shr r10d,4 + je NEAR $L$_last_num_blocks_is_0_703 + + cmp r10d,8 + je NEAR $L$_last_num_blocks_is_8_703 + jb NEAR $L$_last_num_blocks_is_7_1_703 + + + cmp r10d,12 + je NEAR $L$_last_num_blocks_is_12_703 + jb NEAR $L$_last_num_blocks_is_11_9_703 + + + cmp r10d,15 + je NEAR $L$_last_num_blocks_is_15_703 + ja NEAR $L$_last_num_blocks_is_16_703 + cmp r10d,14 + je NEAR $L$_last_num_blocks_is_14_703 + jmp NEAR $L$_last_num_blocks_is_13_703 + +$L$_last_num_blocks_is_11_9_703: + + cmp r10d,10 + je NEAR $L$_last_num_blocks_is_10_703 + ja NEAR $L$_last_num_blocks_is_11_703 + jmp NEAR $L$_last_num_blocks_is_9_703 + +$L$_last_num_blocks_is_7_1_703: + cmp r10d,4 + je NEAR $L$_last_num_blocks_is_4_703 + jb NEAR $L$_last_num_blocks_is_3_1_703 + + cmp r10d,6 + ja NEAR $L$_last_num_blocks_is_7_703 + je NEAR $L$_last_num_blocks_is_6_703 + jmp NEAR $L$_last_num_blocks_is_5_703 + +$L$_last_num_blocks_is_3_1_703: + + cmp r10d,2 + ja NEAR $L$_last_num_blocks_is_3_703 + je NEAR $L$_last_num_blocks_is_2_703 +$L$_last_num_blocks_is_1_703: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,255 + jae NEAR $L$_16_blocks_overflow_704 + vpaddd xmm0,xmm2,xmm28 + jmp NEAR $L$_16_blocks_ok_704 + +$L$_16_blocks_overflow_704: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb xmm0,xmm0,xmm29 +$L$_16_blocks_ok_704: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm0,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 xmm17{k1}{z},[r11*1+r9] + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc xmm0,xmm0,xmm31 + vaesenclast xmm0,xmm0,xmm30 + vpxorq xmm0,xmm0,xmm17 + vextracti32x4 xmm11,zmm0,0 + mov r10,QWORD[120+rbp] + vmovdqu8 XMMWORD[r11*1+r10]{k1},xmm0 + vmovdqu8 zmm17{k1}{z},zmm17 + vpshufb xmm17,xmm17,xmm29 + vextracti32x4 xmm7,zmm17,0 + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_705 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm17,xmm1,0x01 + vpclmulqdq xmm5,xmm17,xmm1,0x10 + vpclmulqdq xmm0,xmm17,xmm1,0x11 + vpclmulqdq xmm3,xmm17,xmm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_705 +$L$_small_initial_partial_block_705: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + + + vpsrldq zmm0,zmm26,8 + vpslldq zmm3,zmm26,8 + vpxorq zmm24,zmm24,zmm0 + vpxorq zmm25,zmm25,zmm3 + vextracti64x4 ymm0,zmm24,1 + vpxorq ymm24,ymm24,ymm0 + vextracti32x4 xmm0,ymm24,1 + vpxorq xmm24,xmm24,xmm0 + vextracti64x4 ymm3,zmm25,1 + vpxorq ymm25,ymm25,ymm3 + vextracti32x4 xmm3,ymm25,1 + vpxorq xmm25,xmm25,xmm3 + vmovdqa64 xmm0,XMMWORD[POLY2] + + + vpclmulqdq xmm3,xmm0,xmm25,0x01 + vpslldq xmm3,xmm3,8 + vpxorq xmm3,xmm25,xmm3 + + + vpclmulqdq xmm4,xmm0,xmm3,0x00 + vpsrldq xmm4,xmm4,4 + vpclmulqdq xmm14,xmm0,xmm3,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm4,xmm24,0x96 + + + + + + + + + + + + + vpxorq xmm14,xmm14,xmm7 + + jmp NEAR $L$_after_reduction_705 +$L$_small_initial_compute_done_705: +$L$_after_reduction_705: + jmp NEAR $L$_last_blocks_done_703 +$L$_last_num_blocks_is_2_703: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,254 + jae NEAR $L$_16_blocks_overflow_706 + vpaddd ymm0,ymm2,ymm28 + jmp NEAR $L$_16_blocks_ok_706 + +$L$_16_blocks_overflow_706: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb ymm0,ymm0,ymm29 +$L$_16_blocks_ok_706: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm0,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 ymm17{k1}{z},[r11*1+r9] + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc ymm0,ymm0,ymm31 + vaesenclast ymm0,ymm0,ymm30 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm11,zmm0,1 + mov r10,QWORD[120+rbp] + vmovdqu8 YMMWORD[r11*1+r10]{k1},ymm0 + vmovdqu8 zmm17{k1}{z},zmm17 + vpshufb ymm17,ymm17,ymm29 + vextracti32x4 xmm7,zmm17,1 + sub r13,16 * (2 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_707 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm17,ymm1,0x01 + vpclmulqdq ymm5,ymm17,ymm1,0x10 + vpclmulqdq ymm0,ymm17,ymm1,0x11 + vpclmulqdq ymm3,ymm17,ymm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_707 +$L$_small_initial_partial_block_707: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm17,xmm1,0x01 + vpclmulqdq xmm5,xmm17,xmm1,0x10 + vpclmulqdq xmm0,xmm17,xmm1,0x11 + vpclmulqdq xmm3,xmm17,xmm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_707: + + or r13,r13 + je NEAR $L$_after_reduction_707 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_707: + jmp NEAR $L$_last_blocks_done_703 +$L$_last_num_blocks_is_3_703: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,253 + jae NEAR $L$_16_blocks_overflow_708 + vpaddd zmm0,zmm2,zmm28 + jmp NEAR $L$_16_blocks_ok_708 + +$L$_16_blocks_overflow_708: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb zmm0,zmm0,zmm29 +$L$_16_blocks_ok_708: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm0,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17{k1}{z},[r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vpxorq zmm0,zmm0,zmm17 + vextracti32x4 xmm11,zmm0,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10]{k1},zmm0 + vmovdqu8 zmm17{k1}{z},zmm17 + vpshufb zmm17,zmm17,zmm29 + vextracti32x4 xmm7,zmm17,2 + sub r13,16 * (3 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_709 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_709 +$L$_small_initial_partial_block_709: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm17,ymm1,0x01 + vpclmulqdq ymm5,ymm17,ymm1,0x10 + vpclmulqdq ymm0,ymm17,ymm1,0x11 + vpclmulqdq ymm3,ymm17,ymm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_709: + + or r13,r13 + je NEAR $L$_after_reduction_709 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_709: + jmp NEAR $L$_last_blocks_done_703 +$L$_last_num_blocks_is_4_703: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,252 + jae NEAR $L$_16_blocks_overflow_710 + vpaddd zmm0,zmm2,zmm28 + jmp NEAR $L$_16_blocks_ok_710 + +$L$_16_blocks_overflow_710: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb zmm0,zmm0,zmm29 +$L$_16_blocks_ok_710: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm0,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17{k1}{z},[r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vpxorq zmm0,zmm0,zmm17 + vextracti32x4 xmm11,zmm0,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10]{k1},zmm0 + vmovdqu8 zmm17{k1}{z},zmm17 + vpshufb zmm17,zmm17,zmm29 + vextracti32x4 xmm7,zmm17,3 + sub r13,16 * (4 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_711 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_711 +$L$_small_initial_partial_block_711: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_711: + + or r13,r13 + je NEAR $L$_after_reduction_711 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_711: + jmp NEAR $L$_last_blocks_done_703 +$L$_last_num_blocks_is_5_703: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,251 + jae NEAR $L$_16_blocks_overflow_712 + vpaddd zmm0,zmm2,zmm28 + vpaddd xmm3,xmm0,xmm27 + jmp NEAR $L$_16_blocks_ok_712 + +$L$_16_blocks_overflow_712: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb xmm3,xmm3,xmm29 +$L$_16_blocks_ok_712: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm3,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 xmm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast xmm3,xmm3,xmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq xmm3,xmm3,xmm19 + vextracti32x4 xmm11,zmm3,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 XMMWORD[64+r11*1+r10]{k1},xmm3 + vmovdqu8 zmm19{k1}{z},zmm19 + vpshufb zmm17,zmm17,zmm29 + vpshufb xmm19,xmm19,xmm29 + vextracti32x4 xmm7,zmm19,0 + sub r13,16 * (5 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_713 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm19,xmm1,0x01 + vpclmulqdq xmm5,xmm19,xmm1,0x10 + vpclmulqdq xmm0,xmm19,xmm1,0x11 + vpclmulqdq xmm3,xmm19,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_713 +$L$_small_initial_partial_block_713: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_713: + + or r13,r13 + je NEAR $L$_after_reduction_713 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_713: + jmp NEAR $L$_last_blocks_done_703 +$L$_last_num_blocks_is_6_703: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,250 + jae NEAR $L$_16_blocks_overflow_714 + vpaddd zmm0,zmm2,zmm28 + vpaddd ymm3,ymm0,ymm27 + jmp NEAR $L$_16_blocks_ok_714 + +$L$_16_blocks_overflow_714: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb ymm3,ymm3,ymm29 +$L$_16_blocks_ok_714: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm3,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 ymm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast ymm3,ymm3,ymm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm11,zmm3,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 YMMWORD[64+r11*1+r10]{k1},ymm3 + vmovdqu8 zmm19{k1}{z},zmm19 + vpshufb zmm17,zmm17,zmm29 + vpshufb ymm19,ymm19,ymm29 + vextracti32x4 xmm7,zmm19,1 + sub r13,16 * (6 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_715 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm19,ymm1,0x01 + vpclmulqdq ymm5,ymm19,ymm1,0x10 + vpclmulqdq ymm0,ymm19,ymm1,0x11 + vpclmulqdq ymm3,ymm19,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_715 +$L$_small_initial_partial_block_715: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm19,xmm1,0x01 + vpclmulqdq xmm5,xmm19,xmm1,0x10 + vpclmulqdq xmm0,xmm19,xmm1,0x11 + vpclmulqdq xmm3,xmm19,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_715: + + or r13,r13 + je NEAR $L$_after_reduction_715 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_715: + jmp NEAR $L$_last_blocks_done_703 +$L$_last_num_blocks_is_7_703: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,249 + jae NEAR $L$_16_blocks_overflow_716 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + jmp NEAR $L$_16_blocks_ok_716 + +$L$_16_blocks_overflow_716: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 +$L$_16_blocks_ok_716: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm3,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti32x4 xmm11,zmm3,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10]{k1},zmm3 + vmovdqu8 zmm19{k1}{z},zmm19 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vextracti32x4 xmm7,zmm19,2 + sub r13,16 * (7 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_717 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm19,zmm1,0x01 + vpclmulqdq zmm5,zmm19,zmm1,0x10 + vpclmulqdq zmm0,zmm19,zmm1,0x11 + vpclmulqdq zmm3,zmm19,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_717 +$L$_small_initial_partial_block_717: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm19,ymm1,0x01 + vpclmulqdq ymm5,ymm19,ymm1,0x10 + vpclmulqdq ymm0,ymm19,ymm1,0x11 + vpclmulqdq ymm3,ymm19,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_717: + + or r13,r13 + je NEAR $L$_after_reduction_717 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_717: + jmp NEAR $L$_last_blocks_done_703 +$L$_last_num_blocks_is_8_703: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,248 + jae NEAR $L$_16_blocks_overflow_718 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + jmp NEAR $L$_16_blocks_ok_718 + +$L$_16_blocks_overflow_718: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 +$L$_16_blocks_ok_718: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm3,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti32x4 xmm11,zmm3,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10]{k1},zmm3 + vmovdqu8 zmm19{k1}{z},zmm19 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vextracti32x4 xmm7,zmm19,3 + sub r13,16 * (8 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_719 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_719 +$L$_small_initial_partial_block_719: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm19,zmm1,0x01 + vpclmulqdq zmm5,zmm19,zmm1,0x10 + vpclmulqdq zmm0,zmm19,zmm1,0x11 + vpclmulqdq zmm3,zmm19,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_719: + + or r13,r13 + je NEAR $L$_after_reduction_719 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_719: + jmp NEAR $L$_last_blocks_done_703 +$L$_last_num_blocks_is_9_703: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,247 + jae NEAR $L$_16_blocks_overflow_720 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd xmm4,xmm3,xmm27 + jmp NEAR $L$_16_blocks_ok_720 + +$L$_16_blocks_overflow_720: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb xmm4,xmm4,xmm29 +$L$_16_blocks_ok_720: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm4,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 xmm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast xmm4,xmm4,xmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq xmm4,xmm4,xmm20 + vextracti32x4 xmm11,zmm4,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 XMMWORD[128+r11*1+r10]{k1},xmm4 + vmovdqu8 zmm20{k1}{z},zmm20 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb xmm20,xmm20,xmm29 + vextracti32x4 xmm7,zmm20,0 + sub r13,16 * (9 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_721 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm20,xmm1,0x01 + vpclmulqdq xmm5,xmm20,xmm1,0x10 + vpclmulqdq xmm0,xmm20,xmm1,0x11 + vpclmulqdq xmm3,xmm20,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_721 +$L$_small_initial_partial_block_721: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_721: + + or r13,r13 + je NEAR $L$_after_reduction_721 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_721: + jmp NEAR $L$_last_blocks_done_703 +$L$_last_num_blocks_is_10_703: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,246 + jae NEAR $L$_16_blocks_overflow_722 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd ymm4,ymm3,ymm27 + jmp NEAR $L$_16_blocks_ok_722 + +$L$_16_blocks_overflow_722: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb ymm4,ymm4,ymm29 +$L$_16_blocks_ok_722: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm4,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 ymm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast ymm4,ymm4,ymm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq ymm4,ymm4,ymm20 + vextracti32x4 xmm11,zmm4,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 YMMWORD[128+r11*1+r10]{k1},ymm4 + vmovdqu8 zmm20{k1}{z},zmm20 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb ymm20,ymm20,ymm29 + vextracti32x4 xmm7,zmm20,1 + sub r13,16 * (10 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_723 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm20,ymm1,0x01 + vpclmulqdq ymm5,ymm20,ymm1,0x10 + vpclmulqdq ymm0,ymm20,ymm1,0x11 + vpclmulqdq ymm3,ymm20,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_723 +$L$_small_initial_partial_block_723: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm20,xmm1,0x01 + vpclmulqdq xmm5,xmm20,xmm1,0x10 + vpclmulqdq xmm0,xmm20,xmm1,0x11 + vpclmulqdq xmm3,xmm20,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_723: + + or r13,r13 + je NEAR $L$_after_reduction_723 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_723: + jmp NEAR $L$_last_blocks_done_703 +$L$_last_num_blocks_is_11_703: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,245 + jae NEAR $L$_16_blocks_overflow_724 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + jmp NEAR $L$_16_blocks_ok_724 + +$L$_16_blocks_overflow_724: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 +$L$_16_blocks_ok_724: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm4,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vextracti32x4 xmm11,zmm4,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10]{k1},zmm4 + vmovdqu8 zmm20{k1}{z},zmm20 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb zmm20,zmm20,zmm29 + vextracti32x4 xmm7,zmm20,2 + sub r13,16 * (11 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_725 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm20,zmm1,0x01 + vpclmulqdq zmm5,zmm20,zmm1,0x10 + vpclmulqdq zmm0,zmm20,zmm1,0x11 + vpclmulqdq zmm3,zmm20,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_725 +$L$_small_initial_partial_block_725: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm20,ymm1,0x01 + vpclmulqdq ymm5,ymm20,ymm1,0x10 + vpclmulqdq ymm0,ymm20,ymm1,0x11 + vpclmulqdq ymm3,ymm20,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_725: + + or r13,r13 + je NEAR $L$_after_reduction_725 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_725: + jmp NEAR $L$_last_blocks_done_703 +$L$_last_num_blocks_is_12_703: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,244 + jae NEAR $L$_16_blocks_overflow_726 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + jmp NEAR $L$_16_blocks_ok_726 + +$L$_16_blocks_overflow_726: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 +$L$_16_blocks_ok_726: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm4,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vextracti32x4 xmm11,zmm4,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10]{k1},zmm4 + vmovdqu8 zmm20{k1}{z},zmm20 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb zmm20,zmm20,zmm29 + vextracti32x4 xmm7,zmm20,3 + sub r13,16 * (12 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_727 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[160+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_727 +$L$_small_initial_partial_block_727: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm20,zmm1,0x01 + vpclmulqdq zmm5,zmm20,zmm1,0x10 + vpclmulqdq zmm0,zmm20,zmm1,0x11 + vpclmulqdq zmm3,zmm20,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_727: + + or r13,r13 + je NEAR $L$_after_reduction_727 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_727: + jmp NEAR $L$_last_blocks_done_703 +$L$_last_num_blocks_is_13_703: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,243 + jae NEAR $L$_16_blocks_overflow_728 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd xmm5,xmm4,xmm27 + jmp NEAR $L$_16_blocks_ok_728 + +$L$_16_blocks_overflow_728: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb xmm5,xmm5,xmm29 +$L$_16_blocks_ok_728: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm5,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 xmm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast xmm5,xmm5,xmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq xmm5,xmm5,xmm21 + vextracti32x4 xmm11,zmm5,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 XMMWORD[192+r11*1+r10]{k1},xmm5 + vmovdqu8 zmm21{k1}{z},zmm21 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb zmm20,zmm20,zmm29 + vpshufb xmm21,xmm21,xmm29 + vextracti32x4 xmm7,zmm21,0 + sub r13,16 * (13 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_729 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[144+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm21,xmm1,0x01 + vpclmulqdq xmm5,xmm21,xmm1,0x10 + vpclmulqdq xmm0,xmm21,xmm1,0x11 + vpclmulqdq xmm3,xmm21,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_729 +$L$_small_initial_partial_block_729: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[160+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_729: + + or r13,r13 + je NEAR $L$_after_reduction_729 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_729: + jmp NEAR $L$_last_blocks_done_703 +$L$_last_num_blocks_is_14_703: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,242 + jae NEAR $L$_16_blocks_overflow_730 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd ymm5,ymm4,ymm27 + jmp NEAR $L$_16_blocks_ok_730 + +$L$_16_blocks_overflow_730: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb ymm5,ymm5,ymm29 +$L$_16_blocks_ok_730: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm5,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 ymm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast ymm5,ymm5,ymm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq ymm5,ymm5,ymm21 + vextracti32x4 xmm11,zmm5,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 YMMWORD[192+r11*1+r10]{k1},ymm5 + vmovdqu8 zmm21{k1}{z},zmm21 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb zmm20,zmm20,zmm29 + vpshufb ymm21,ymm21,ymm29 + vextracti32x4 xmm7,zmm21,1 + sub r13,16 * (14 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_731 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[128+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm21,ymm1,0x01 + vpclmulqdq ymm5,ymm21,ymm1,0x10 + vpclmulqdq ymm0,ymm21,ymm1,0x11 + vpclmulqdq ymm3,ymm21,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_731 +$L$_small_initial_partial_block_731: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[144+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm21,xmm1,0x01 + vpclmulqdq xmm5,xmm21,xmm1,0x10 + vpclmulqdq xmm0,xmm21,xmm1,0x11 + vpclmulqdq xmm3,xmm21,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_731: + + or r13,r13 + je NEAR $L$_after_reduction_731 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_731: + jmp NEAR $L$_last_blocks_done_703 +$L$_last_num_blocks_is_15_703: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,241 + jae NEAR $L$_16_blocks_overflow_732 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_732 + +$L$_16_blocks_overflow_732: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_732: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm5,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + vextracti32x4 xmm11,zmm5,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[192+r11*1+r10]{k1},zmm5 + vmovdqu8 zmm21{k1}{z},zmm21 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb zmm20,zmm20,zmm29 + vpshufb zmm21,zmm21,zmm29 + vextracti32x4 xmm7,zmm21,2 + sub r13,16 * (15 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_733 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[112+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm21,zmm1,0x01 + vpclmulqdq zmm5,zmm21,zmm1,0x10 + vpclmulqdq zmm0,zmm21,zmm1,0x11 + vpclmulqdq zmm3,zmm21,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_733 +$L$_small_initial_partial_block_733: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[128+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm21,ymm1,0x01 + vpclmulqdq ymm5,ymm21,ymm1,0x10 + vpclmulqdq ymm0,ymm21,ymm1,0x11 + vpclmulqdq ymm3,ymm21,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_733: + + or r13,r13 + je NEAR $L$_after_reduction_733 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_733: + jmp NEAR $L$_last_blocks_done_703 +$L$_last_num_blocks_is_16_703: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,240 + jae NEAR $L$_16_blocks_overflow_734 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_734 + +$L$_16_blocks_overflow_734: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_734: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm5,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + vextracti32x4 xmm11,zmm5,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[192+r11*1+r10]{k1},zmm5 + vmovdqu8 zmm21{k1}{z},zmm21 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb zmm20,zmm20,zmm29 + vpshufb zmm21,zmm21,zmm29 + vextracti32x4 xmm7,zmm21,3 + sub r13,16 * (16 - 1) +$L$_small_initial_partial_block_735: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[112+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm21,zmm1,0x01 + vpclmulqdq zmm5,zmm21,zmm1,0x10 + vpclmulqdq zmm0,zmm21,zmm1,0x11 + vpclmulqdq zmm3,zmm21,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_735: + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_735: + jmp NEAR $L$_last_blocks_done_703 +$L$_last_num_blocks_is_0_703: + vmovdqa64 zmm13,ZMMWORD[768+rsp] + vpxorq zmm13,zmm13,zmm14 + vmovdqu64 zmm12,ZMMWORD[rbx*1+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[832+rsp] + vmovdqu64 zmm12,ZMMWORD[64+rbx*1+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + vpxorq zmm26,zmm4,zmm10 + vpxorq zmm24,zmm0,zmm6 + vpxorq zmm25,zmm3,zmm7 + vpternlogq zmm26,zmm5,zmm11,0x96 + vmovdqa64 zmm13,ZMMWORD[896+rsp] + vmovdqu64 zmm12,ZMMWORD[128+rbx*1+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[960+rsp] + vmovdqu64 zmm12,ZMMWORD[192+rbx*1+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + + vpternlogq zmm26,zmm4,zmm10,0x96 + vpternlogq zmm24,zmm0,zmm6,0x96 + vpternlogq zmm25,zmm3,zmm7,0x96 + vpternlogq zmm26,zmm5,zmm11,0x96 + + vpsrldq zmm0,zmm26,8 + vpslldq zmm3,zmm26,8 + vpxorq zmm24,zmm24,zmm0 + vpxorq zmm25,zmm25,zmm3 + vextracti64x4 ymm0,zmm24,1 + vpxorq ymm24,ymm24,ymm0 + vextracti32x4 xmm0,ymm24,1 + vpxorq xmm24,xmm24,xmm0 + vextracti64x4 ymm3,zmm25,1 + vpxorq ymm25,ymm25,ymm3 + vextracti32x4 xmm3,ymm25,1 + vpxorq xmm25,xmm25,xmm3 + vmovdqa64 xmm4,XMMWORD[POLY2] + + + vpclmulqdq xmm0,xmm4,xmm25,0x01 + vpslldq xmm0,xmm0,8 + vpxorq xmm0,xmm25,xmm0 + + + vpclmulqdq xmm3,xmm4,xmm0,0x00 + vpsrldq xmm3,xmm3,4 + vpclmulqdq xmm14,xmm4,xmm0,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm3,xmm24,0x96 + +$L$_last_blocks_done_703: + vpshufb xmm2,xmm2,xmm29 + jmp NEAR $L$_ghash_done_659 +$L$_encrypt_16_blocks_659: + cmp r15b,240 + jae NEAR $L$_16_blocks_overflow_736 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_736 +$L$_16_blocks_overflow_736: + vpshufb zmm2,zmm2,zmm29 + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_736: + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rsp] + + + + + vshufi64x2 zmm2,zmm5,zmm5,255 + add r15b,16 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + + + + + + + + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + + vpclmulqdq zmm6,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + + vpternlogq zmm6,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + + + + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm21,ZMMWORD[192+r11*1+r9] + + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm26,zmm10,zmm15 + vpxorq zmm24,zmm6,zmm12 + vpxorq zmm25,zmm7,zmm13 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + + + + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + + + + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[192+r11*1+r10],zmm5 + vpshufb zmm0,zmm17,zmm29 + vpshufb zmm3,zmm19,zmm29 + vpshufb zmm4,zmm20,zmm29 + vpshufb zmm5,zmm21,zmm29 + vmovdqa64 ZMMWORD[1280+rsp],zmm0 + vmovdqa64 ZMMWORD[1344+rsp],zmm3 + vmovdqa64 ZMMWORD[1408+rsp],zmm4 + vmovdqa64 ZMMWORD[1472+rsp],zmm5 + vmovdqa64 zmm13,ZMMWORD[1024+rsp] + vmovdqu64 zmm12,ZMMWORD[256+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[1088+rsp] + vmovdqu64 zmm12,ZMMWORD[320+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + vpternlogq zmm26,zmm4,zmm10,0x96 + vpternlogq zmm24,zmm0,zmm6,0x96 + vpternlogq zmm25,zmm3,zmm7,0x96 + vpternlogq zmm26,zmm5,zmm11,0x96 + vmovdqa64 zmm13,ZMMWORD[1152+rsp] + vmovdqu64 zmm12,ZMMWORD[384+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[1216+rsp] + vmovdqu64 zmm12,ZMMWORD[448+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + + vpternlogq zmm26,zmm4,zmm10,0x96 + vpternlogq zmm24,zmm0,zmm6,0x96 + vpternlogq zmm25,zmm3,zmm7,0x96 + vpternlogq zmm26,zmm5,zmm11,0x96 + sub r13,256 + add r11,256 + mov r10d,r13d + add r10d,15 + shr r10d,4 + je NEAR $L$_last_num_blocks_is_0_737 + + cmp r10d,8 + je NEAR $L$_last_num_blocks_is_8_737 + jb NEAR $L$_last_num_blocks_is_7_1_737 + + + cmp r10d,12 + je NEAR $L$_last_num_blocks_is_12_737 + jb NEAR $L$_last_num_blocks_is_11_9_737 + + + cmp r10d,15 + je NEAR $L$_last_num_blocks_is_15_737 + ja NEAR $L$_last_num_blocks_is_16_737 + cmp r10d,14 + je NEAR $L$_last_num_blocks_is_14_737 + jmp NEAR $L$_last_num_blocks_is_13_737 + +$L$_last_num_blocks_is_11_9_737: + + cmp r10d,10 + je NEAR $L$_last_num_blocks_is_10_737 + ja NEAR $L$_last_num_blocks_is_11_737 + jmp NEAR $L$_last_num_blocks_is_9_737 + +$L$_last_num_blocks_is_7_1_737: + cmp r10d,4 + je NEAR $L$_last_num_blocks_is_4_737 + jb NEAR $L$_last_num_blocks_is_3_1_737 + + cmp r10d,6 + ja NEAR $L$_last_num_blocks_is_7_737 + je NEAR $L$_last_num_blocks_is_6_737 + jmp NEAR $L$_last_num_blocks_is_5_737 + +$L$_last_num_blocks_is_3_1_737: + + cmp r10d,2 + ja NEAR $L$_last_num_blocks_is_3_737 + je NEAR $L$_last_num_blocks_is_2_737 +$L$_last_num_blocks_is_1_737: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,255 + jae NEAR $L$_16_blocks_overflow_738 + vpaddd xmm0,xmm2,xmm28 + jmp NEAR $L$_16_blocks_ok_738 + +$L$_16_blocks_overflow_738: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb xmm0,xmm0,xmm29 +$L$_16_blocks_ok_738: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm0,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 xmm17{k1}{z},[r11*1+r9] + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc xmm0,xmm0,xmm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc xmm0,xmm0,xmm31 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast xmm0,xmm0,xmm30 + vpxorq xmm0,xmm0,xmm17 + vextracti32x4 xmm11,zmm0,0 + mov r10,QWORD[120+rbp] + vmovdqu8 XMMWORD[r11*1+r10]{k1},xmm0 + vmovdqu8 zmm17{k1}{z},zmm17 + vpshufb xmm17,xmm17,xmm29 + vextracti32x4 xmm7,zmm17,0 + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_739 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm17,xmm1,0x01 + vpclmulqdq xmm5,xmm17,xmm1,0x10 + vpclmulqdq xmm0,xmm17,xmm1,0x11 + vpclmulqdq xmm3,xmm17,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_739 +$L$_small_initial_partial_block_739: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + + + + + + + + + + + + vpxorq xmm14,xmm14,xmm7 + + jmp NEAR $L$_after_reduction_739 +$L$_small_initial_compute_done_739: +$L$_after_reduction_739: + jmp NEAR $L$_last_blocks_done_737 +$L$_last_num_blocks_is_2_737: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,254 + jae NEAR $L$_16_blocks_overflow_740 + vpaddd ymm0,ymm2,ymm28 + jmp NEAR $L$_16_blocks_ok_740 + +$L$_16_blocks_overflow_740: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb ymm0,ymm0,ymm29 +$L$_16_blocks_ok_740: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm0,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 ymm17{k1}{z},[r11*1+r9] + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc ymm0,ymm0,ymm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc ymm0,ymm0,ymm31 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast ymm0,ymm0,ymm30 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm11,zmm0,1 + mov r10,QWORD[120+rbp] + vmovdqu8 YMMWORD[r11*1+r10]{k1},ymm0 + vmovdqu8 zmm17{k1}{z},zmm17 + vpshufb ymm17,ymm17,ymm29 + vextracti32x4 xmm7,zmm17,1 + sub r13,16 * (2 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_741 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm17,ymm1,0x01 + vpclmulqdq ymm5,ymm17,ymm1,0x10 + vpclmulqdq ymm0,ymm17,ymm1,0x11 + vpclmulqdq ymm3,ymm17,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_741 +$L$_small_initial_partial_block_741: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm17,xmm1,0x01 + vpclmulqdq xmm5,xmm17,xmm1,0x10 + vpclmulqdq xmm0,xmm17,xmm1,0x11 + vpclmulqdq xmm3,xmm17,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_741: + + or r13,r13 + je NEAR $L$_after_reduction_741 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_741: + jmp NEAR $L$_last_blocks_done_737 +$L$_last_num_blocks_is_3_737: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,253 + jae NEAR $L$_16_blocks_overflow_742 + vpaddd zmm0,zmm2,zmm28 + jmp NEAR $L$_16_blocks_ok_742 + +$L$_16_blocks_overflow_742: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb zmm0,zmm0,zmm29 +$L$_16_blocks_ok_742: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm0,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17{k1}{z},[r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vpxorq zmm0,zmm0,zmm17 + vextracti32x4 xmm11,zmm0,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10]{k1},zmm0 + vmovdqu8 zmm17{k1}{z},zmm17 + vpshufb zmm17,zmm17,zmm29 + vextracti32x4 xmm7,zmm17,2 + sub r13,16 * (3 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_743 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_743 +$L$_small_initial_partial_block_743: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm17,ymm1,0x01 + vpclmulqdq ymm5,ymm17,ymm1,0x10 + vpclmulqdq ymm0,ymm17,ymm1,0x11 + vpclmulqdq ymm3,ymm17,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_743: + + or r13,r13 + je NEAR $L$_after_reduction_743 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_743: + jmp NEAR $L$_last_blocks_done_737 +$L$_last_num_blocks_is_4_737: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,252 + jae NEAR $L$_16_blocks_overflow_744 + vpaddd zmm0,zmm2,zmm28 + jmp NEAR $L$_16_blocks_ok_744 + +$L$_16_blocks_overflow_744: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb zmm0,zmm0,zmm29 +$L$_16_blocks_ok_744: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm0,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17{k1}{z},[r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vpxorq zmm0,zmm0,zmm17 + vextracti32x4 xmm11,zmm0,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10]{k1},zmm0 + vmovdqu8 zmm17{k1}{z},zmm17 + vpshufb zmm17,zmm17,zmm29 + vextracti32x4 xmm7,zmm17,3 + sub r13,16 * (4 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_745 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_745 +$L$_small_initial_partial_block_745: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_745: + + or r13,r13 + je NEAR $L$_after_reduction_745 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_745: + jmp NEAR $L$_last_blocks_done_737 +$L$_last_num_blocks_is_5_737: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,251 + jae NEAR $L$_16_blocks_overflow_746 + vpaddd zmm0,zmm2,zmm28 + vpaddd xmm3,xmm0,xmm27 + jmp NEAR $L$_16_blocks_ok_746 + +$L$_16_blocks_overflow_746: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb xmm3,xmm3,xmm29 +$L$_16_blocks_ok_746: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm3,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 xmm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast xmm3,xmm3,xmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq xmm3,xmm3,xmm19 + vextracti32x4 xmm11,zmm3,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 XMMWORD[64+r11*1+r10]{k1},xmm3 + vmovdqu8 zmm19{k1}{z},zmm19 + vpshufb zmm17,zmm17,zmm29 + vpshufb xmm19,xmm19,xmm29 + vextracti32x4 xmm7,zmm19,0 + sub r13,16 * (5 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_747 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm19,xmm1,0x01 + vpclmulqdq xmm5,xmm19,xmm1,0x10 + vpclmulqdq xmm0,xmm19,xmm1,0x11 + vpclmulqdq xmm3,xmm19,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_747 +$L$_small_initial_partial_block_747: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_747: + + or r13,r13 + je NEAR $L$_after_reduction_747 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_747: + jmp NEAR $L$_last_blocks_done_737 +$L$_last_num_blocks_is_6_737: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,250 + jae NEAR $L$_16_blocks_overflow_748 + vpaddd zmm0,zmm2,zmm28 + vpaddd ymm3,ymm0,ymm27 + jmp NEAR $L$_16_blocks_ok_748 + +$L$_16_blocks_overflow_748: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb ymm3,ymm3,ymm29 +$L$_16_blocks_ok_748: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm3,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 ymm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast ymm3,ymm3,ymm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm11,zmm3,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 YMMWORD[64+r11*1+r10]{k1},ymm3 + vmovdqu8 zmm19{k1}{z},zmm19 + vpshufb zmm17,zmm17,zmm29 + vpshufb ymm19,ymm19,ymm29 + vextracti32x4 xmm7,zmm19,1 + sub r13,16 * (6 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_749 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm19,ymm1,0x01 + vpclmulqdq ymm5,ymm19,ymm1,0x10 + vpclmulqdq ymm0,ymm19,ymm1,0x11 + vpclmulqdq ymm3,ymm19,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_749 +$L$_small_initial_partial_block_749: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm19,xmm1,0x01 + vpclmulqdq xmm5,xmm19,xmm1,0x10 + vpclmulqdq xmm0,xmm19,xmm1,0x11 + vpclmulqdq xmm3,xmm19,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_749: + + or r13,r13 + je NEAR $L$_after_reduction_749 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_749: + jmp NEAR $L$_last_blocks_done_737 +$L$_last_num_blocks_is_7_737: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,249 + jae NEAR $L$_16_blocks_overflow_750 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + jmp NEAR $L$_16_blocks_ok_750 + +$L$_16_blocks_overflow_750: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 +$L$_16_blocks_ok_750: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm3,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti32x4 xmm11,zmm3,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10]{k1},zmm3 + vmovdqu8 zmm19{k1}{z},zmm19 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vextracti32x4 xmm7,zmm19,2 + sub r13,16 * (7 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_751 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm19,zmm1,0x01 + vpclmulqdq zmm5,zmm19,zmm1,0x10 + vpclmulqdq zmm0,zmm19,zmm1,0x11 + vpclmulqdq zmm3,zmm19,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_751 +$L$_small_initial_partial_block_751: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm19,ymm1,0x01 + vpclmulqdq ymm5,ymm19,ymm1,0x10 + vpclmulqdq ymm0,ymm19,ymm1,0x11 + vpclmulqdq ymm3,ymm19,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_751: + + or r13,r13 + je NEAR $L$_after_reduction_751 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_751: + jmp NEAR $L$_last_blocks_done_737 +$L$_last_num_blocks_is_8_737: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,248 + jae NEAR $L$_16_blocks_overflow_752 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + jmp NEAR $L$_16_blocks_ok_752 + +$L$_16_blocks_overflow_752: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 +$L$_16_blocks_ok_752: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm3,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti32x4 xmm11,zmm3,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10]{k1},zmm3 + vmovdqu8 zmm19{k1}{z},zmm19 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vextracti32x4 xmm7,zmm19,3 + sub r13,16 * (8 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_753 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_753 +$L$_small_initial_partial_block_753: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm19,zmm1,0x01 + vpclmulqdq zmm5,zmm19,zmm1,0x10 + vpclmulqdq zmm0,zmm19,zmm1,0x11 + vpclmulqdq zmm3,zmm19,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_753: + + or r13,r13 + je NEAR $L$_after_reduction_753 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_753: + jmp NEAR $L$_last_blocks_done_737 +$L$_last_num_blocks_is_9_737: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,247 + jae NEAR $L$_16_blocks_overflow_754 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd xmm4,xmm3,xmm27 + jmp NEAR $L$_16_blocks_ok_754 + +$L$_16_blocks_overflow_754: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb xmm4,xmm4,xmm29 +$L$_16_blocks_ok_754: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm4,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 xmm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast xmm4,xmm4,xmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq xmm4,xmm4,xmm20 + vextracti32x4 xmm11,zmm4,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 XMMWORD[128+r11*1+r10]{k1},xmm4 + vmovdqu8 zmm20{k1}{z},zmm20 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb xmm20,xmm20,xmm29 + vextracti32x4 xmm7,zmm20,0 + sub r13,16 * (9 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_755 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm20,xmm1,0x01 + vpclmulqdq xmm5,xmm20,xmm1,0x10 + vpclmulqdq xmm0,xmm20,xmm1,0x11 + vpclmulqdq xmm3,xmm20,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_755 +$L$_small_initial_partial_block_755: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_755: + + or r13,r13 + je NEAR $L$_after_reduction_755 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_755: + jmp NEAR $L$_last_blocks_done_737 +$L$_last_num_blocks_is_10_737: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,246 + jae NEAR $L$_16_blocks_overflow_756 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd ymm4,ymm3,ymm27 + jmp NEAR $L$_16_blocks_ok_756 + +$L$_16_blocks_overflow_756: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb ymm4,ymm4,ymm29 +$L$_16_blocks_ok_756: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm4,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 ymm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast ymm4,ymm4,ymm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq ymm4,ymm4,ymm20 + vextracti32x4 xmm11,zmm4,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 YMMWORD[128+r11*1+r10]{k1},ymm4 + vmovdqu8 zmm20{k1}{z},zmm20 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb ymm20,ymm20,ymm29 + vextracti32x4 xmm7,zmm20,1 + sub r13,16 * (10 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_757 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm20,ymm1,0x01 + vpclmulqdq ymm5,ymm20,ymm1,0x10 + vpclmulqdq ymm0,ymm20,ymm1,0x11 + vpclmulqdq ymm3,ymm20,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_757 +$L$_small_initial_partial_block_757: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm20,xmm1,0x01 + vpclmulqdq xmm5,xmm20,xmm1,0x10 + vpclmulqdq xmm0,xmm20,xmm1,0x11 + vpclmulqdq xmm3,xmm20,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_757: + + or r13,r13 + je NEAR $L$_after_reduction_757 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_757: + jmp NEAR $L$_last_blocks_done_737 +$L$_last_num_blocks_is_11_737: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,245 + jae NEAR $L$_16_blocks_overflow_758 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + jmp NEAR $L$_16_blocks_ok_758 + +$L$_16_blocks_overflow_758: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 +$L$_16_blocks_ok_758: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm4,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vextracti32x4 xmm11,zmm4,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10]{k1},zmm4 + vmovdqu8 zmm20{k1}{z},zmm20 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb zmm20,zmm20,zmm29 + vextracti32x4 xmm7,zmm20,2 + sub r13,16 * (11 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_759 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm20,zmm1,0x01 + vpclmulqdq zmm5,zmm20,zmm1,0x10 + vpclmulqdq zmm0,zmm20,zmm1,0x11 + vpclmulqdq zmm3,zmm20,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_759 +$L$_small_initial_partial_block_759: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm20,ymm1,0x01 + vpclmulqdq ymm5,ymm20,ymm1,0x10 + vpclmulqdq ymm0,ymm20,ymm1,0x11 + vpclmulqdq ymm3,ymm20,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_759: + + or r13,r13 + je NEAR $L$_after_reduction_759 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_759: + jmp NEAR $L$_last_blocks_done_737 +$L$_last_num_blocks_is_12_737: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,244 + jae NEAR $L$_16_blocks_overflow_760 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + jmp NEAR $L$_16_blocks_ok_760 + +$L$_16_blocks_overflow_760: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 +$L$_16_blocks_ok_760: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm4,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vextracti32x4 xmm11,zmm4,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10]{k1},zmm4 + vmovdqu8 zmm20{k1}{z},zmm20 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb zmm20,zmm20,zmm29 + vextracti32x4 xmm7,zmm20,3 + sub r13,16 * (12 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_761 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[160+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_761 +$L$_small_initial_partial_block_761: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm20,zmm1,0x01 + vpclmulqdq zmm5,zmm20,zmm1,0x10 + vpclmulqdq zmm0,zmm20,zmm1,0x11 + vpclmulqdq zmm3,zmm20,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_761: + + or r13,r13 + je NEAR $L$_after_reduction_761 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_761: + jmp NEAR $L$_last_blocks_done_737 +$L$_last_num_blocks_is_13_737: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,243 + jae NEAR $L$_16_blocks_overflow_762 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd xmm5,xmm4,xmm27 + jmp NEAR $L$_16_blocks_ok_762 + +$L$_16_blocks_overflow_762: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb xmm5,xmm5,xmm29 +$L$_16_blocks_ok_762: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm5,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 xmm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast xmm5,xmm5,xmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq xmm5,xmm5,xmm21 + vextracti32x4 xmm11,zmm5,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 XMMWORD[192+r11*1+r10]{k1},xmm5 + vmovdqu8 zmm21{k1}{z},zmm21 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb zmm20,zmm20,zmm29 + vpshufb xmm21,xmm21,xmm29 + vextracti32x4 xmm7,zmm21,0 + sub r13,16 * (13 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_763 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[144+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm21,xmm1,0x01 + vpclmulqdq xmm5,xmm21,xmm1,0x10 + vpclmulqdq xmm0,xmm21,xmm1,0x11 + vpclmulqdq xmm3,xmm21,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_763 +$L$_small_initial_partial_block_763: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[160+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_763: + + or r13,r13 + je NEAR $L$_after_reduction_763 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_763: + jmp NEAR $L$_last_blocks_done_737 +$L$_last_num_blocks_is_14_737: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,242 + jae NEAR $L$_16_blocks_overflow_764 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd ymm5,ymm4,ymm27 + jmp NEAR $L$_16_blocks_ok_764 + +$L$_16_blocks_overflow_764: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb ymm5,ymm5,ymm29 +$L$_16_blocks_ok_764: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm5,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 ymm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast ymm5,ymm5,ymm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq ymm5,ymm5,ymm21 + vextracti32x4 xmm11,zmm5,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 YMMWORD[192+r11*1+r10]{k1},ymm5 + vmovdqu8 zmm21{k1}{z},zmm21 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb zmm20,zmm20,zmm29 + vpshufb ymm21,ymm21,ymm29 + vextracti32x4 xmm7,zmm21,1 + sub r13,16 * (14 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_765 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[128+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm21,ymm1,0x01 + vpclmulqdq ymm5,ymm21,ymm1,0x10 + vpclmulqdq ymm0,ymm21,ymm1,0x11 + vpclmulqdq ymm3,ymm21,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_765 +$L$_small_initial_partial_block_765: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[144+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm21,xmm1,0x01 + vpclmulqdq xmm5,xmm21,xmm1,0x10 + vpclmulqdq xmm0,xmm21,xmm1,0x11 + vpclmulqdq xmm3,xmm21,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_765: + + or r13,r13 + je NEAR $L$_after_reduction_765 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_765: + jmp NEAR $L$_last_blocks_done_737 +$L$_last_num_blocks_is_15_737: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,241 + jae NEAR $L$_16_blocks_overflow_766 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_766 + +$L$_16_blocks_overflow_766: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_766: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm5,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + vextracti32x4 xmm11,zmm5,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[192+r11*1+r10]{k1},zmm5 + vmovdqu8 zmm21{k1}{z},zmm21 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb zmm20,zmm20,zmm29 + vpshufb zmm21,zmm21,zmm29 + vextracti32x4 xmm7,zmm21,2 + sub r13,16 * (15 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_767 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[112+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm21,zmm1,0x01 + vpclmulqdq zmm5,zmm21,zmm1,0x10 + vpclmulqdq zmm0,zmm21,zmm1,0x11 + vpclmulqdq zmm3,zmm21,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_767 +$L$_small_initial_partial_block_767: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[128+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm21,ymm1,0x01 + vpclmulqdq ymm5,ymm21,ymm1,0x10 + vpclmulqdq ymm0,ymm21,ymm1,0x11 + vpclmulqdq ymm3,ymm21,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_767: + + or r13,r13 + je NEAR $L$_after_reduction_767 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_767: + jmp NEAR $L$_last_blocks_done_737 +$L$_last_num_blocks_is_16_737: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,240 + jae NEAR $L$_16_blocks_overflow_768 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_768 + +$L$_16_blocks_overflow_768: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_768: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm5,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + vextracti32x4 xmm11,zmm5,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[192+r11*1+r10]{k1},zmm5 + vmovdqu8 zmm21{k1}{z},zmm21 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb zmm20,zmm20,zmm29 + vpshufb zmm21,zmm21,zmm29 + vextracti32x4 xmm7,zmm21,3 + sub r13,16 * (16 - 1) +$L$_small_initial_partial_block_769: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[112+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm21,zmm1,0x01 + vpclmulqdq zmm5,zmm21,zmm1,0x10 + vpclmulqdq zmm0,zmm21,zmm1,0x11 + vpclmulqdq zmm3,zmm21,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_769: + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_769: + jmp NEAR $L$_last_blocks_done_737 +$L$_last_num_blocks_is_0_737: + vmovdqa64 zmm13,ZMMWORD[1280+rsp] + vmovdqu64 zmm12,ZMMWORD[512+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[1344+rsp] + vmovdqu64 zmm12,ZMMWORD[576+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + vpternlogq zmm26,zmm4,zmm10,0x96 + vpternlogq zmm24,zmm0,zmm6,0x96 + vpternlogq zmm25,zmm3,zmm7,0x96 + vpternlogq zmm26,zmm5,zmm11,0x96 + vmovdqa64 zmm13,ZMMWORD[1408+rsp] + vmovdqu64 zmm12,ZMMWORD[640+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[1472+rsp] + vmovdqu64 zmm12,ZMMWORD[704+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + + vpternlogq zmm26,zmm4,zmm10,0x96 + vpternlogq zmm24,zmm0,zmm6,0x96 + vpternlogq zmm25,zmm3,zmm7,0x96 + vpternlogq zmm26,zmm5,zmm11,0x96 + + vpsrldq zmm0,zmm26,8 + vpslldq zmm3,zmm26,8 + vpxorq zmm24,zmm24,zmm0 + vpxorq zmm25,zmm25,zmm3 + vextracti64x4 ymm0,zmm24,1 + vpxorq ymm24,ymm24,ymm0 + vextracti32x4 xmm0,ymm24,1 + vpxorq xmm24,xmm24,xmm0 + vextracti64x4 ymm3,zmm25,1 + vpxorq ymm25,ymm25,ymm3 + vextracti32x4 xmm3,ymm25,1 + vpxorq xmm25,xmm25,xmm3 + vmovdqa64 xmm4,XMMWORD[POLY2] + + + vpclmulqdq xmm0,xmm4,xmm25,0x01 + vpslldq xmm0,xmm0,8 + vpxorq xmm0,xmm25,xmm0 + + + vpclmulqdq xmm3,xmm4,xmm0,0x00 + vpsrldq xmm3,xmm3,4 + vpclmulqdq xmm14,xmm4,xmm0,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm3,xmm24,0x96 + +$L$_last_blocks_done_737: + vpshufb xmm2,xmm2,xmm29 + jmp NEAR $L$_ghash_done_659 + +$L$_message_below_32_blocks_659: + + + sub r13,256 + add r11,256 + mov r10d,r13d + test r14,r14 + jnz NEAR $L$_skip_hkeys_precomputation_770 + vmovdqu64 zmm3,ZMMWORD[640+rsp] + + + vshufi64x2 zmm3,zmm3,zmm3,0x00 + + vmovdqu64 zmm4,ZMMWORD[576+rsp] + vmovdqu64 zmm5,ZMMWORD[512+rsp] + + vpclmulqdq zmm6,zmm4,zmm3,0x11 + vpclmulqdq zmm7,zmm4,zmm3,0x00 + vpclmulqdq zmm10,zmm4,zmm3,0x01 + vpclmulqdq zmm4,zmm4,zmm3,0x10 + vpxorq zmm4,zmm4,zmm10 + + vpsrldq zmm10,zmm4,8 + vpslldq zmm4,zmm4,8 + vpxorq zmm6,zmm6,zmm10 + vpxorq zmm4,zmm4,zmm7 + + + + vmovdqu64 zmm10,ZMMWORD[POLY2] + + vpclmulqdq zmm7,zmm10,zmm4,0x01 + vpslldq zmm7,zmm7,8 + vpxorq zmm4,zmm4,zmm7 + + + + vpclmulqdq zmm7,zmm10,zmm4,0x00 + vpsrldq zmm7,zmm7,4 + vpclmulqdq zmm4,zmm10,zmm4,0x10 + vpslldq zmm4,zmm4,4 + + vpternlogq zmm4,zmm6,zmm7,0x96 + + vmovdqu64 ZMMWORD[448+rsp],zmm4 + + vpclmulqdq zmm6,zmm5,zmm3,0x11 + vpclmulqdq zmm7,zmm5,zmm3,0x00 + vpclmulqdq zmm10,zmm5,zmm3,0x01 + vpclmulqdq zmm5,zmm5,zmm3,0x10 + vpxorq zmm5,zmm5,zmm10 + + vpsrldq zmm10,zmm5,8 + vpslldq zmm5,zmm5,8 + vpxorq zmm6,zmm6,zmm10 + vpxorq zmm5,zmm5,zmm7 + + + + vmovdqu64 zmm10,ZMMWORD[POLY2] + + vpclmulqdq zmm7,zmm10,zmm5,0x01 + vpslldq zmm7,zmm7,8 + vpxorq zmm5,zmm5,zmm7 + + + + vpclmulqdq zmm7,zmm10,zmm5,0x00 + vpsrldq zmm7,zmm7,4 + vpclmulqdq zmm5,zmm10,zmm5,0x10 + vpslldq zmm5,zmm5,4 + + vpternlogq zmm5,zmm6,zmm7,0x96 + + vmovdqu64 ZMMWORD[384+rsp],zmm5 + + vpclmulqdq zmm6,zmm4,zmm3,0x11 + vpclmulqdq zmm7,zmm4,zmm3,0x00 + vpclmulqdq zmm10,zmm4,zmm3,0x01 + vpclmulqdq zmm4,zmm4,zmm3,0x10 + vpxorq zmm4,zmm4,zmm10 + + vpsrldq zmm10,zmm4,8 + vpslldq zmm4,zmm4,8 + vpxorq zmm6,zmm6,zmm10 + vpxorq zmm4,zmm4,zmm7 + + + + vmovdqu64 zmm10,ZMMWORD[POLY2] + + vpclmulqdq zmm7,zmm10,zmm4,0x01 + vpslldq zmm7,zmm7,8 + vpxorq zmm4,zmm4,zmm7 + + + + vpclmulqdq zmm7,zmm10,zmm4,0x00 + vpsrldq zmm7,zmm7,4 + vpclmulqdq zmm4,zmm10,zmm4,0x10 + vpslldq zmm4,zmm4,4 + + vpternlogq zmm4,zmm6,zmm7,0x96 + + vmovdqu64 ZMMWORD[320+rsp],zmm4 + + vpclmulqdq zmm6,zmm5,zmm3,0x11 + vpclmulqdq zmm7,zmm5,zmm3,0x00 + vpclmulqdq zmm10,zmm5,zmm3,0x01 + vpclmulqdq zmm5,zmm5,zmm3,0x10 + vpxorq zmm5,zmm5,zmm10 + + vpsrldq zmm10,zmm5,8 + vpslldq zmm5,zmm5,8 + vpxorq zmm6,zmm6,zmm10 + vpxorq zmm5,zmm5,zmm7 + + + + vmovdqu64 zmm10,ZMMWORD[POLY2] + + vpclmulqdq zmm7,zmm10,zmm5,0x01 + vpslldq zmm7,zmm7,8 + vpxorq zmm5,zmm5,zmm7 + + + + vpclmulqdq zmm7,zmm10,zmm5,0x00 + vpsrldq zmm7,zmm7,4 + vpclmulqdq zmm5,zmm10,zmm5,0x10 + vpslldq zmm5,zmm5,4 + + vpternlogq zmm5,zmm6,zmm7,0x96 + + vmovdqu64 ZMMWORD[256+rsp],zmm5 +$L$_skip_hkeys_precomputation_770: + mov r14,1 + and r10d,~15 + mov ebx,512 + sub ebx,r10d + mov r10d,r13d + add r10d,15 + shr r10d,4 + je NEAR $L$_last_num_blocks_is_0_771 + + cmp r10d,8 + je NEAR $L$_last_num_blocks_is_8_771 + jb NEAR $L$_last_num_blocks_is_7_1_771 + + + cmp r10d,12 + je NEAR $L$_last_num_blocks_is_12_771 + jb NEAR $L$_last_num_blocks_is_11_9_771 + + + cmp r10d,15 + je NEAR $L$_last_num_blocks_is_15_771 + ja NEAR $L$_last_num_blocks_is_16_771 + cmp r10d,14 + je NEAR $L$_last_num_blocks_is_14_771 + jmp NEAR $L$_last_num_blocks_is_13_771 + +$L$_last_num_blocks_is_11_9_771: + + cmp r10d,10 + je NEAR $L$_last_num_blocks_is_10_771 + ja NEAR $L$_last_num_blocks_is_11_771 + jmp NEAR $L$_last_num_blocks_is_9_771 + +$L$_last_num_blocks_is_7_1_771: + cmp r10d,4 + je NEAR $L$_last_num_blocks_is_4_771 + jb NEAR $L$_last_num_blocks_is_3_1_771 + + cmp r10d,6 + ja NEAR $L$_last_num_blocks_is_7_771 + je NEAR $L$_last_num_blocks_is_6_771 + jmp NEAR $L$_last_num_blocks_is_5_771 + +$L$_last_num_blocks_is_3_1_771: + + cmp r10d,2 + ja NEAR $L$_last_num_blocks_is_3_771 + je NEAR $L$_last_num_blocks_is_2_771 +$L$_last_num_blocks_is_1_771: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,255 + jae NEAR $L$_16_blocks_overflow_772 + vpaddd xmm0,xmm2,xmm28 + jmp NEAR $L$_16_blocks_ok_772 + +$L$_16_blocks_overflow_772: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb xmm0,xmm0,xmm29 +$L$_16_blocks_ok_772: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm0,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 xmm17{k1}{z},[r11*1+r9] + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc xmm0,xmm0,xmm31 + vaesenclast xmm0,xmm0,xmm30 + vpxorq xmm0,xmm0,xmm17 + vextracti32x4 xmm11,zmm0,0 + mov r10,QWORD[120+rbp] + vmovdqu8 XMMWORD[r11*1+r10]{k1},xmm0 + vmovdqu8 zmm17{k1}{z},zmm17 + vpshufb xmm17,xmm17,xmm29 + vextracti32x4 xmm7,zmm17,0 + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_773 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm17,xmm1,0x01 + vpclmulqdq xmm5,xmm17,xmm1,0x10 + vpclmulqdq xmm0,xmm17,xmm1,0x11 + vpclmulqdq xmm3,xmm17,xmm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_773 +$L$_small_initial_partial_block_773: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + + + vpsrldq zmm0,zmm26,8 + vpslldq zmm3,zmm26,8 + vpxorq zmm24,zmm24,zmm0 + vpxorq zmm25,zmm25,zmm3 + vextracti64x4 ymm0,zmm24,1 + vpxorq ymm24,ymm24,ymm0 + vextracti32x4 xmm0,ymm24,1 + vpxorq xmm24,xmm24,xmm0 + vextracti64x4 ymm3,zmm25,1 + vpxorq ymm25,ymm25,ymm3 + vextracti32x4 xmm3,ymm25,1 + vpxorq xmm25,xmm25,xmm3 + vmovdqa64 xmm0,XMMWORD[POLY2] + + + vpclmulqdq xmm3,xmm0,xmm25,0x01 + vpslldq xmm3,xmm3,8 + vpxorq xmm3,xmm25,xmm3 + + + vpclmulqdq xmm4,xmm0,xmm3,0x00 + vpsrldq xmm4,xmm4,4 + vpclmulqdq xmm14,xmm0,xmm3,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm4,xmm24,0x96 + + + + + + + + + + + + + vpxorq xmm14,xmm14,xmm7 + + jmp NEAR $L$_after_reduction_773 +$L$_small_initial_compute_done_773: +$L$_after_reduction_773: + jmp NEAR $L$_last_blocks_done_771 +$L$_last_num_blocks_is_2_771: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,254 + jae NEAR $L$_16_blocks_overflow_774 + vpaddd ymm0,ymm2,ymm28 + jmp NEAR $L$_16_blocks_ok_774 + +$L$_16_blocks_overflow_774: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb ymm0,ymm0,ymm29 +$L$_16_blocks_ok_774: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm0,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 ymm17{k1}{z},[r11*1+r9] + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc ymm0,ymm0,ymm31 + vaesenclast ymm0,ymm0,ymm30 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm11,zmm0,1 + mov r10,QWORD[120+rbp] + vmovdqu8 YMMWORD[r11*1+r10]{k1},ymm0 + vmovdqu8 zmm17{k1}{z},zmm17 + vpshufb ymm17,ymm17,ymm29 + vextracti32x4 xmm7,zmm17,1 + sub r13,16 * (2 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_775 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm17,ymm1,0x01 + vpclmulqdq ymm5,ymm17,ymm1,0x10 + vpclmulqdq ymm0,ymm17,ymm1,0x11 + vpclmulqdq ymm3,ymm17,ymm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_775 +$L$_small_initial_partial_block_775: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm17,xmm1,0x01 + vpclmulqdq xmm5,xmm17,xmm1,0x10 + vpclmulqdq xmm0,xmm17,xmm1,0x11 + vpclmulqdq xmm3,xmm17,xmm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_775: + + or r13,r13 + je NEAR $L$_after_reduction_775 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_775: + jmp NEAR $L$_last_blocks_done_771 +$L$_last_num_blocks_is_3_771: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,253 + jae NEAR $L$_16_blocks_overflow_776 + vpaddd zmm0,zmm2,zmm28 + jmp NEAR $L$_16_blocks_ok_776 + +$L$_16_blocks_overflow_776: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb zmm0,zmm0,zmm29 +$L$_16_blocks_ok_776: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm0,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17{k1}{z},[r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vpxorq zmm0,zmm0,zmm17 + vextracti32x4 xmm11,zmm0,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10]{k1},zmm0 + vmovdqu8 zmm17{k1}{z},zmm17 + vpshufb zmm17,zmm17,zmm29 + vextracti32x4 xmm7,zmm17,2 + sub r13,16 * (3 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_777 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_777 +$L$_small_initial_partial_block_777: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm17,ymm1,0x01 + vpclmulqdq ymm5,ymm17,ymm1,0x10 + vpclmulqdq ymm0,ymm17,ymm1,0x11 + vpclmulqdq ymm3,ymm17,ymm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_777: + + or r13,r13 + je NEAR $L$_after_reduction_777 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_777: + jmp NEAR $L$_last_blocks_done_771 +$L$_last_num_blocks_is_4_771: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,252 + jae NEAR $L$_16_blocks_overflow_778 + vpaddd zmm0,zmm2,zmm28 + jmp NEAR $L$_16_blocks_ok_778 + +$L$_16_blocks_overflow_778: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb zmm0,zmm0,zmm29 +$L$_16_blocks_ok_778: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm0,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17{k1}{z},[r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vpxorq zmm0,zmm0,zmm17 + vextracti32x4 xmm11,zmm0,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10]{k1},zmm0 + vmovdqu8 zmm17{k1}{z},zmm17 + vpshufb zmm17,zmm17,zmm29 + vextracti32x4 xmm7,zmm17,3 + sub r13,16 * (4 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_779 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_779 +$L$_small_initial_partial_block_779: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_779: + + or r13,r13 + je NEAR $L$_after_reduction_779 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_779: + jmp NEAR $L$_last_blocks_done_771 +$L$_last_num_blocks_is_5_771: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,251 + jae NEAR $L$_16_blocks_overflow_780 + vpaddd zmm0,zmm2,zmm28 + vpaddd xmm3,xmm0,xmm27 + jmp NEAR $L$_16_blocks_ok_780 + +$L$_16_blocks_overflow_780: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb xmm3,xmm3,xmm29 +$L$_16_blocks_ok_780: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm3,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 xmm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast xmm3,xmm3,xmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq xmm3,xmm3,xmm19 + vextracti32x4 xmm11,zmm3,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 XMMWORD[64+r11*1+r10]{k1},xmm3 + vmovdqu8 zmm19{k1}{z},zmm19 + vpshufb zmm17,zmm17,zmm29 + vpshufb xmm19,xmm19,xmm29 + vextracti32x4 xmm7,zmm19,0 + sub r13,16 * (5 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_781 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm19,xmm1,0x01 + vpclmulqdq xmm5,xmm19,xmm1,0x10 + vpclmulqdq xmm0,xmm19,xmm1,0x11 + vpclmulqdq xmm3,xmm19,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_781 +$L$_small_initial_partial_block_781: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_781: + + or r13,r13 + je NEAR $L$_after_reduction_781 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_781: + jmp NEAR $L$_last_blocks_done_771 +$L$_last_num_blocks_is_6_771: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,250 + jae NEAR $L$_16_blocks_overflow_782 + vpaddd zmm0,zmm2,zmm28 + vpaddd ymm3,ymm0,ymm27 + jmp NEAR $L$_16_blocks_ok_782 + +$L$_16_blocks_overflow_782: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb ymm3,ymm3,ymm29 +$L$_16_blocks_ok_782: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm3,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 ymm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast ymm3,ymm3,ymm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm11,zmm3,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 YMMWORD[64+r11*1+r10]{k1},ymm3 + vmovdqu8 zmm19{k1}{z},zmm19 + vpshufb zmm17,zmm17,zmm29 + vpshufb ymm19,ymm19,ymm29 + vextracti32x4 xmm7,zmm19,1 + sub r13,16 * (6 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_783 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm19,ymm1,0x01 + vpclmulqdq ymm5,ymm19,ymm1,0x10 + vpclmulqdq ymm0,ymm19,ymm1,0x11 + vpclmulqdq ymm3,ymm19,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_783 +$L$_small_initial_partial_block_783: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm19,xmm1,0x01 + vpclmulqdq xmm5,xmm19,xmm1,0x10 + vpclmulqdq xmm0,xmm19,xmm1,0x11 + vpclmulqdq xmm3,xmm19,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_783: + + or r13,r13 + je NEAR $L$_after_reduction_783 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_783: + jmp NEAR $L$_last_blocks_done_771 +$L$_last_num_blocks_is_7_771: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,249 + jae NEAR $L$_16_blocks_overflow_784 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + jmp NEAR $L$_16_blocks_ok_784 + +$L$_16_blocks_overflow_784: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 +$L$_16_blocks_ok_784: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm3,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti32x4 xmm11,zmm3,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10]{k1},zmm3 + vmovdqu8 zmm19{k1}{z},zmm19 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vextracti32x4 xmm7,zmm19,2 + sub r13,16 * (7 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_785 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm19,zmm1,0x01 + vpclmulqdq zmm5,zmm19,zmm1,0x10 + vpclmulqdq zmm0,zmm19,zmm1,0x11 + vpclmulqdq zmm3,zmm19,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_785 +$L$_small_initial_partial_block_785: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm19,ymm1,0x01 + vpclmulqdq ymm5,ymm19,ymm1,0x10 + vpclmulqdq ymm0,ymm19,ymm1,0x11 + vpclmulqdq ymm3,ymm19,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_785: + + or r13,r13 + je NEAR $L$_after_reduction_785 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_785: + jmp NEAR $L$_last_blocks_done_771 +$L$_last_num_blocks_is_8_771: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,248 + jae NEAR $L$_16_blocks_overflow_786 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + jmp NEAR $L$_16_blocks_ok_786 + +$L$_16_blocks_overflow_786: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 +$L$_16_blocks_ok_786: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm3,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti32x4 xmm11,zmm3,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10]{k1},zmm3 + vmovdqu8 zmm19{k1}{z},zmm19 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vextracti32x4 xmm7,zmm19,3 + sub r13,16 * (8 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_787 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_787 +$L$_small_initial_partial_block_787: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm19,zmm1,0x01 + vpclmulqdq zmm5,zmm19,zmm1,0x10 + vpclmulqdq zmm0,zmm19,zmm1,0x11 + vpclmulqdq zmm3,zmm19,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_787: + + or r13,r13 + je NEAR $L$_after_reduction_787 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_787: + jmp NEAR $L$_last_blocks_done_771 +$L$_last_num_blocks_is_9_771: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,247 + jae NEAR $L$_16_blocks_overflow_788 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd xmm4,xmm3,xmm27 + jmp NEAR $L$_16_blocks_ok_788 + +$L$_16_blocks_overflow_788: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb xmm4,xmm4,xmm29 +$L$_16_blocks_ok_788: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm4,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 xmm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast xmm4,xmm4,xmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq xmm4,xmm4,xmm20 + vextracti32x4 xmm11,zmm4,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 XMMWORD[128+r11*1+r10]{k1},xmm4 + vmovdqu8 zmm20{k1}{z},zmm20 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb xmm20,xmm20,xmm29 + vextracti32x4 xmm7,zmm20,0 + sub r13,16 * (9 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_789 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm20,xmm1,0x01 + vpclmulqdq xmm5,xmm20,xmm1,0x10 + vpclmulqdq xmm0,xmm20,xmm1,0x11 + vpclmulqdq xmm3,xmm20,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_789 +$L$_small_initial_partial_block_789: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_789: + + or r13,r13 + je NEAR $L$_after_reduction_789 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_789: + jmp NEAR $L$_last_blocks_done_771 +$L$_last_num_blocks_is_10_771: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,246 + jae NEAR $L$_16_blocks_overflow_790 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd ymm4,ymm3,ymm27 + jmp NEAR $L$_16_blocks_ok_790 + +$L$_16_blocks_overflow_790: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb ymm4,ymm4,ymm29 +$L$_16_blocks_ok_790: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm4,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 ymm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast ymm4,ymm4,ymm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq ymm4,ymm4,ymm20 + vextracti32x4 xmm11,zmm4,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 YMMWORD[128+r11*1+r10]{k1},ymm4 + vmovdqu8 zmm20{k1}{z},zmm20 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb ymm20,ymm20,ymm29 + vextracti32x4 xmm7,zmm20,1 + sub r13,16 * (10 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_791 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm20,ymm1,0x01 + vpclmulqdq ymm5,ymm20,ymm1,0x10 + vpclmulqdq ymm0,ymm20,ymm1,0x11 + vpclmulqdq ymm3,ymm20,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_791 +$L$_small_initial_partial_block_791: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm20,xmm1,0x01 + vpclmulqdq xmm5,xmm20,xmm1,0x10 + vpclmulqdq xmm0,xmm20,xmm1,0x11 + vpclmulqdq xmm3,xmm20,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_791: + + or r13,r13 + je NEAR $L$_after_reduction_791 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_791: + jmp NEAR $L$_last_blocks_done_771 +$L$_last_num_blocks_is_11_771: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,245 + jae NEAR $L$_16_blocks_overflow_792 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + jmp NEAR $L$_16_blocks_ok_792 + +$L$_16_blocks_overflow_792: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 +$L$_16_blocks_ok_792: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm4,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vextracti32x4 xmm11,zmm4,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10]{k1},zmm4 + vmovdqu8 zmm20{k1}{z},zmm20 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb zmm20,zmm20,zmm29 + vextracti32x4 xmm7,zmm20,2 + sub r13,16 * (11 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_793 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm20,zmm1,0x01 + vpclmulqdq zmm5,zmm20,zmm1,0x10 + vpclmulqdq zmm0,zmm20,zmm1,0x11 + vpclmulqdq zmm3,zmm20,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_793 +$L$_small_initial_partial_block_793: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm20,ymm1,0x01 + vpclmulqdq ymm5,ymm20,ymm1,0x10 + vpclmulqdq ymm0,ymm20,ymm1,0x11 + vpclmulqdq ymm3,ymm20,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_793: + + or r13,r13 + je NEAR $L$_after_reduction_793 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_793: + jmp NEAR $L$_last_blocks_done_771 +$L$_last_num_blocks_is_12_771: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,244 + jae NEAR $L$_16_blocks_overflow_794 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + jmp NEAR $L$_16_blocks_ok_794 + +$L$_16_blocks_overflow_794: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 +$L$_16_blocks_ok_794: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm4,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vextracti32x4 xmm11,zmm4,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10]{k1},zmm4 + vmovdqu8 zmm20{k1}{z},zmm20 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb zmm20,zmm20,zmm29 + vextracti32x4 xmm7,zmm20,3 + sub r13,16 * (12 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_795 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[160+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_795 +$L$_small_initial_partial_block_795: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm20,zmm1,0x01 + vpclmulqdq zmm5,zmm20,zmm1,0x10 + vpclmulqdq zmm0,zmm20,zmm1,0x11 + vpclmulqdq zmm3,zmm20,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_795: + + or r13,r13 + je NEAR $L$_after_reduction_795 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_795: + jmp NEAR $L$_last_blocks_done_771 +$L$_last_num_blocks_is_13_771: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,243 + jae NEAR $L$_16_blocks_overflow_796 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd xmm5,xmm4,xmm27 + jmp NEAR $L$_16_blocks_ok_796 + +$L$_16_blocks_overflow_796: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb xmm5,xmm5,xmm29 +$L$_16_blocks_ok_796: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm5,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 xmm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast xmm5,xmm5,xmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq xmm5,xmm5,xmm21 + vextracti32x4 xmm11,zmm5,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 XMMWORD[192+r11*1+r10]{k1},xmm5 + vmovdqu8 zmm21{k1}{z},zmm21 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb zmm20,zmm20,zmm29 + vpshufb xmm21,xmm21,xmm29 + vextracti32x4 xmm7,zmm21,0 + sub r13,16 * (13 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_797 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[144+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm21,xmm1,0x01 + vpclmulqdq xmm5,xmm21,xmm1,0x10 + vpclmulqdq xmm0,xmm21,xmm1,0x11 + vpclmulqdq xmm3,xmm21,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_797 +$L$_small_initial_partial_block_797: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[160+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_797: + + or r13,r13 + je NEAR $L$_after_reduction_797 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_797: + jmp NEAR $L$_last_blocks_done_771 +$L$_last_num_blocks_is_14_771: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,242 + jae NEAR $L$_16_blocks_overflow_798 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd ymm5,ymm4,ymm27 + jmp NEAR $L$_16_blocks_ok_798 + +$L$_16_blocks_overflow_798: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb ymm5,ymm5,ymm29 +$L$_16_blocks_ok_798: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm5,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 ymm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast ymm5,ymm5,ymm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq ymm5,ymm5,ymm21 + vextracti32x4 xmm11,zmm5,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 YMMWORD[192+r11*1+r10]{k1},ymm5 + vmovdqu8 zmm21{k1}{z},zmm21 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb zmm20,zmm20,zmm29 + vpshufb ymm21,ymm21,ymm29 + vextracti32x4 xmm7,zmm21,1 + sub r13,16 * (14 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_799 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[128+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm21,ymm1,0x01 + vpclmulqdq ymm5,ymm21,ymm1,0x10 + vpclmulqdq ymm0,ymm21,ymm1,0x11 + vpclmulqdq ymm3,ymm21,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_799 +$L$_small_initial_partial_block_799: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[144+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm21,xmm1,0x01 + vpclmulqdq xmm5,xmm21,xmm1,0x10 + vpclmulqdq xmm0,xmm21,xmm1,0x11 + vpclmulqdq xmm3,xmm21,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_799: + + or r13,r13 + je NEAR $L$_after_reduction_799 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_799: + jmp NEAR $L$_last_blocks_done_771 +$L$_last_num_blocks_is_15_771: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,241 + jae NEAR $L$_16_blocks_overflow_800 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_800 + +$L$_16_blocks_overflow_800: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_800: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm5,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + vextracti32x4 xmm11,zmm5,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[192+r11*1+r10]{k1},zmm5 + vmovdqu8 zmm21{k1}{z},zmm21 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb zmm20,zmm20,zmm29 + vpshufb zmm21,zmm21,zmm29 + vextracti32x4 xmm7,zmm21,2 + sub r13,16 * (15 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_801 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[112+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm21,zmm1,0x01 + vpclmulqdq zmm5,zmm21,zmm1,0x10 + vpclmulqdq zmm0,zmm21,zmm1,0x11 + vpclmulqdq zmm3,zmm21,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_801 +$L$_small_initial_partial_block_801: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[128+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm21,ymm1,0x01 + vpclmulqdq ymm5,ymm21,ymm1,0x10 + vpclmulqdq ymm0,ymm21,ymm1,0x11 + vpclmulqdq ymm3,ymm21,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_801: + + or r13,r13 + je NEAR $L$_after_reduction_801 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_801: + jmp NEAR $L$_last_blocks_done_771 +$L$_last_num_blocks_is_16_771: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,240 + jae NEAR $L$_16_blocks_overflow_802 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_802 + +$L$_16_blocks_overflow_802: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_802: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm5,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + vextracti32x4 xmm11,zmm5,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[192+r11*1+r10]{k1},zmm5 + vmovdqu8 zmm21{k1}{z},zmm21 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb zmm20,zmm20,zmm29 + vpshufb zmm21,zmm21,zmm29 + vextracti32x4 xmm7,zmm21,3 + sub r13,16 * (16 - 1) +$L$_small_initial_partial_block_803: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[112+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm21,zmm1,0x01 + vpclmulqdq zmm5,zmm21,zmm1,0x10 + vpclmulqdq zmm0,zmm21,zmm1,0x11 + vpclmulqdq zmm3,zmm21,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_803: + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_803: + jmp NEAR $L$_last_blocks_done_771 +$L$_last_num_blocks_is_0_771: + vmovdqa64 zmm13,ZMMWORD[768+rsp] + vpxorq zmm13,zmm13,zmm14 + vmovdqu64 zmm12,ZMMWORD[rbx*1+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[832+rsp] + vmovdqu64 zmm12,ZMMWORD[64+rbx*1+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + vpxorq zmm26,zmm4,zmm10 + vpxorq zmm24,zmm0,zmm6 + vpxorq zmm25,zmm3,zmm7 + vpternlogq zmm26,zmm5,zmm11,0x96 + vmovdqa64 zmm13,ZMMWORD[896+rsp] + vmovdqu64 zmm12,ZMMWORD[128+rbx*1+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[960+rsp] + vmovdqu64 zmm12,ZMMWORD[192+rbx*1+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + + vpternlogq zmm26,zmm4,zmm10,0x96 + vpternlogq zmm24,zmm0,zmm6,0x96 + vpternlogq zmm25,zmm3,zmm7,0x96 + vpternlogq zmm26,zmm5,zmm11,0x96 + + vpsrldq zmm0,zmm26,8 + vpslldq zmm3,zmm26,8 + vpxorq zmm24,zmm24,zmm0 + vpxorq zmm25,zmm25,zmm3 + vextracti64x4 ymm0,zmm24,1 + vpxorq ymm24,ymm24,ymm0 + vextracti32x4 xmm0,ymm24,1 + vpxorq xmm24,xmm24,xmm0 + vextracti64x4 ymm3,zmm25,1 + vpxorq ymm25,ymm25,ymm3 + vextracti32x4 xmm3,ymm25,1 + vpxorq xmm25,xmm25,xmm3 + vmovdqa64 xmm4,XMMWORD[POLY2] + + + vpclmulqdq xmm0,xmm4,xmm25,0x01 + vpslldq xmm0,xmm0,8 + vpxorq xmm0,xmm25,xmm0 + + + vpclmulqdq xmm3,xmm4,xmm0,0x00 + vpsrldq xmm3,xmm3,4 + vpclmulqdq xmm14,xmm4,xmm0,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm3,xmm24,0x96 + +$L$_last_blocks_done_771: + vpshufb xmm2,xmm2,xmm29 + jmp NEAR $L$_ghash_done_659 + +$L$_message_below_equal_16_blocks_659: + + + mov r12d,r13d + add r12d,15 + shr r12d,4 + cmp r12,8 + je NEAR $L$_small_initial_num_blocks_is_8_804 + jl NEAR $L$_small_initial_num_blocks_is_7_1_804 + + + cmp r12,12 + je NEAR $L$_small_initial_num_blocks_is_12_804 + jl NEAR $L$_small_initial_num_blocks_is_11_9_804 + + + cmp r12,16 + je NEAR $L$_small_initial_num_blocks_is_16_804 + cmp r12,15 + je NEAR $L$_small_initial_num_blocks_is_15_804 + cmp r12,14 + je NEAR $L$_small_initial_num_blocks_is_14_804 + jmp NEAR $L$_small_initial_num_blocks_is_13_804 + +$L$_small_initial_num_blocks_is_11_9_804: + + cmp r12,11 + je NEAR $L$_small_initial_num_blocks_is_11_804 + cmp r12,10 + je NEAR $L$_small_initial_num_blocks_is_10_804 + jmp NEAR $L$_small_initial_num_blocks_is_9_804 + +$L$_small_initial_num_blocks_is_7_1_804: + cmp r12,4 + je NEAR $L$_small_initial_num_blocks_is_4_804 + jl NEAR $L$_small_initial_num_blocks_is_3_1_804 + + cmp r12,7 + je NEAR $L$_small_initial_num_blocks_is_7_804 + cmp r12,6 + je NEAR $L$_small_initial_num_blocks_is_6_804 + jmp NEAR $L$_small_initial_num_blocks_is_5_804 + +$L$_small_initial_num_blocks_is_3_1_804: + + cmp r12,3 + je NEAR $L$_small_initial_num_blocks_is_3_804 + cmp r12,2 + je NEAR $L$_small_initial_num_blocks_is_2_804 + + + + + +$L$_small_initial_num_blocks_is_1_804: + vmovdqa64 xmm29,XMMWORD[SHUF_MASK] + vpaddd xmm0,xmm2,XMMWORD[ONE] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm0,0 + vpshufb xmm0,xmm0,xmm29 + vmovdqu8 xmm6{k1}{z},[r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq xmm0,xmm0,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc xmm0,xmm0,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc xmm0,xmm0,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc xmm0,xmm0,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc xmm0,xmm0,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc xmm0,xmm0,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc xmm0,xmm0,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc xmm0,xmm0,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc xmm0,xmm0,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc xmm0,xmm0,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenc xmm0,xmm0,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[176+rcx] + vaesenc xmm0,xmm0,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[192+rcx] + vaesenclast xmm0,xmm0,xmm15 + vpxorq xmm0,xmm0,xmm6 + vextracti32x4 xmm12,zmm0,0 + mov r10,QWORD[120+rbp] + vmovdqu8 XMMWORD[r11*1+r10]{k1},xmm0 + vmovdqu8 zmm0{k1}{z},zmm0 + vpshufb xmm6,xmm6,xmm29 + vextracti32x4 xmm13,zmm6,0 + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_805 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 xmm20,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm6,xmm20,0x01 + vpclmulqdq xmm5,xmm6,xmm20,0x10 + vpclmulqdq xmm0,xmm6,xmm20,0x11 + vpclmulqdq xmm3,xmm6,xmm20,0x00 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_805 +$L$_small_initial_partial_block_805: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + + + + + + + + + + + + vpxorq xmm14,xmm14,xmm13 + + jmp NEAR $L$_after_reduction_805 +$L$_small_initial_compute_done_805: +$L$_after_reduction_805: + jmp NEAR $L$_small_initial_blocks_encrypted_804 +$L$_small_initial_num_blocks_is_2_804: + vmovdqa64 ymm29,YMMWORD[SHUF_MASK] + vshufi64x2 ymm0,ymm2,ymm2,0 + vpaddd ymm0,ymm0,YMMWORD[ddq_add_1234] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm0,1 + vpshufb ymm0,ymm0,ymm29 + vmovdqu8 ymm6{k1}{z},[r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq ymm0,ymm0,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc ymm0,ymm0,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc ymm0,ymm0,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc ymm0,ymm0,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc ymm0,ymm0,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc ymm0,ymm0,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc ymm0,ymm0,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc ymm0,ymm0,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc ymm0,ymm0,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc ymm0,ymm0,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenc ymm0,ymm0,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[176+rcx] + vaesenc ymm0,ymm0,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[192+rcx] + vaesenclast ymm0,ymm0,ymm15 + vpxorq ymm0,ymm0,ymm6 + vextracti32x4 xmm12,zmm0,1 + mov r10,QWORD[120+rbp] + vmovdqu8 YMMWORD[r11*1+r10]{k1},ymm0 + vmovdqu8 zmm0{k1}{z},zmm0 + vpshufb ymm6,ymm6,ymm29 + vextracti32x4 xmm13,zmm6,1 + sub r13,16 * (2 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_806 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 ymm20,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm6,ymm20,0x01 + vpclmulqdq ymm5,ymm6,ymm20,0x10 + vpclmulqdq ymm0,ymm6,ymm20,0x11 + vpclmulqdq ymm3,ymm6,ymm20,0x00 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_806 +$L$_small_initial_partial_block_806: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 xmm20,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm6,xmm20,0x01 + vpclmulqdq xmm5,xmm6,xmm20,0x10 + vpclmulqdq xmm0,xmm6,xmm20,0x11 + vpclmulqdq xmm3,xmm6,xmm20,0x00 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_806: + + or r13,r13 + je NEAR $L$_after_reduction_806 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_806: + jmp NEAR $L$_small_initial_blocks_encrypted_804 +$L$_small_initial_num_blocks_is_3_804: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm0,2 + vpshufb zmm0,zmm0,zmm29 + vmovdqu8 zmm6{k1}{z},[r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[192+rcx] + vaesenclast zmm0,zmm0,zmm15 + vpxorq zmm0,zmm0,zmm6 + vextracti32x4 xmm12,zmm0,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10]{k1},zmm0 + vmovdqu8 zmm0{k1}{z},zmm0 + vpshufb zmm6,zmm6,zmm29 + vextracti32x4 xmm13,zmm6,2 + sub r13,16 * (3 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_807 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 ymm20,YMMWORD[304+rdx] + vinserti64x2 zmm20,zmm20,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_807 +$L$_small_initial_partial_block_807: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 ymm20,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm6,ymm20,0x01 + vpclmulqdq ymm5,ymm6,ymm20,0x10 + vpclmulqdq ymm0,ymm6,ymm20,0x11 + vpclmulqdq ymm3,ymm6,ymm20,0x00 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_807: + + or r13,r13 + je NEAR $L$_after_reduction_807 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_807: + jmp NEAR $L$_small_initial_blocks_encrypted_804 +$L$_small_initial_num_blocks_is_4_804: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm0,3 + vpshufb zmm0,zmm0,zmm29 + vmovdqu8 zmm6{k1}{z},[r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[192+rcx] + vaesenclast zmm0,zmm0,zmm15 + vpxorq zmm0,zmm0,zmm6 + vextracti32x4 xmm12,zmm0,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10]{k1},zmm0 + vmovdqu8 zmm0{k1}{z},zmm0 + vpshufb zmm6,zmm6,zmm29 + vextracti32x4 xmm13,zmm6,3 + sub r13,16 * (4 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_808 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[288+rdx] + vpclmulqdq zmm15,zmm6,zmm20,0x11 + vpclmulqdq zmm16,zmm6,zmm20,0x00 + vpclmulqdq zmm17,zmm6,zmm20,0x01 + vpclmulqdq zmm19,zmm6,zmm20,0x10 + + vpxorq zmm17,zmm17,zmm19 + vpsrldq zmm4,zmm17,8 + vpslldq zmm5,zmm17,8 + vpxorq zmm0,zmm15,zmm4 + vpxorq zmm3,zmm16,zmm5 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_808 +$L$_small_initial_partial_block_808: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 ymm20,YMMWORD[304+rdx] + vinserti64x2 zmm20,zmm20,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_808: + + or r13,r13 + je NEAR $L$_after_reduction_808 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_808: + jmp NEAR $L$_small_initial_blocks_encrypted_804 +$L$_small_initial_num_blocks_is_5_804: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm2,ZMMWORD[ddq_add_5678] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + sub r15,64 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm3,0 + vpshufb zmm0,zmm0,zmm29 + vpshufb xmm3,xmm3,xmm29 + vmovdqu8 zmm6,ZMMWORD[r11*1+r9] + vmovdqu8 xmm7{k1}{z},[64+r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vpxorq xmm3,xmm3,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc xmm3,xmm3,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc xmm3,xmm3,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc xmm3,xmm3,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc xmm3,xmm3,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc xmm3,xmm3,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc xmm3,xmm3,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc xmm3,xmm3,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc xmm3,xmm3,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc xmm3,xmm3,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc xmm3,xmm3,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc xmm3,xmm3,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[192+rcx] + vaesenclast zmm0,zmm0,zmm15 + vaesenclast xmm3,xmm3,xmm15 + vpxorq zmm0,zmm0,zmm6 + vpxorq xmm3,xmm3,xmm7 + vextracti32x4 xmm12,zmm3,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 XMMWORD[64+r11*1+r10]{k1},xmm3 + vmovdqu8 zmm3{k1}{z},zmm3 + vpshufb zmm6,zmm6,zmm29 + vpshufb xmm7,xmm7,xmm29 + vextracti32x4 xmm13,zmm7,0 + sub r13,16 * (5 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_809 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[272+rdx] + vpclmulqdq zmm15,zmm6,zmm20,0x11 + vpclmulqdq zmm16,zmm6,zmm20,0x00 + vpclmulqdq zmm17,zmm6,zmm20,0x01 + vpclmulqdq zmm19,zmm6,zmm20,0x10 + vmovdqu64 xmm20,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm7,xmm20,0x01 + vpclmulqdq xmm5,xmm7,xmm20,0x10 + vpclmulqdq xmm0,xmm7,xmm20,0x11 + vpclmulqdq xmm3,xmm7,xmm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_809 +$L$_small_initial_partial_block_809: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[288+rdx] + vpclmulqdq zmm15,zmm6,zmm20,0x11 + vpclmulqdq zmm16,zmm6,zmm20,0x00 + vpclmulqdq zmm17,zmm6,zmm20,0x01 + vpclmulqdq zmm19,zmm6,zmm20,0x10 + + vpxorq zmm17,zmm17,zmm19 + vpsrldq zmm4,zmm17,8 + vpslldq zmm5,zmm17,8 + vpxorq zmm0,zmm15,zmm4 + vpxorq zmm3,zmm16,zmm5 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_809: + + or r13,r13 + je NEAR $L$_after_reduction_809 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_809: + jmp NEAR $L$_small_initial_blocks_encrypted_804 +$L$_small_initial_num_blocks_is_6_804: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm2,ZMMWORD[ddq_add_5678] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + sub r15,64 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm3,1 + vpshufb zmm0,zmm0,zmm29 + vpshufb ymm3,ymm3,ymm29 + vmovdqu8 zmm6,ZMMWORD[r11*1+r9] + vmovdqu8 ymm7{k1}{z},[64+r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vpxorq ymm3,ymm3,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc ymm3,ymm3,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc ymm3,ymm3,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc ymm3,ymm3,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc ymm3,ymm3,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc ymm3,ymm3,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc ymm3,ymm3,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc ymm3,ymm3,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc ymm3,ymm3,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc ymm3,ymm3,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc ymm3,ymm3,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc ymm3,ymm3,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[192+rcx] + vaesenclast zmm0,zmm0,zmm15 + vaesenclast ymm3,ymm3,ymm15 + vpxorq zmm0,zmm0,zmm6 + vpxorq ymm3,ymm3,ymm7 + vextracti32x4 xmm12,zmm3,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 YMMWORD[64+r11*1+r10]{k1},ymm3 + vmovdqu8 zmm3{k1}{z},zmm3 + vpshufb zmm6,zmm6,zmm29 + vpshufb ymm7,ymm7,ymm29 + vextracti32x4 xmm13,zmm7,1 + sub r13,16 * (6 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_810 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[256+rdx] + vpclmulqdq zmm15,zmm6,zmm20,0x11 + vpclmulqdq zmm16,zmm6,zmm20,0x00 + vpclmulqdq zmm17,zmm6,zmm20,0x01 + vpclmulqdq zmm19,zmm6,zmm20,0x10 + vmovdqu64 ymm20,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm7,ymm20,0x01 + vpclmulqdq ymm5,ymm7,ymm20,0x10 + vpclmulqdq ymm0,ymm7,ymm20,0x11 + vpclmulqdq ymm3,ymm7,ymm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_810 +$L$_small_initial_partial_block_810: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[272+rdx] + vpclmulqdq zmm15,zmm6,zmm20,0x11 + vpclmulqdq zmm16,zmm6,zmm20,0x00 + vpclmulqdq zmm17,zmm6,zmm20,0x01 + vpclmulqdq zmm19,zmm6,zmm20,0x10 + vmovdqu64 xmm20,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm7,xmm20,0x01 + vpclmulqdq xmm5,xmm7,xmm20,0x10 + vpclmulqdq xmm0,xmm7,xmm20,0x11 + vpclmulqdq xmm3,xmm7,xmm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_810: + + or r13,r13 + je NEAR $L$_after_reduction_810 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_810: + jmp NEAR $L$_small_initial_blocks_encrypted_804 +$L$_small_initial_num_blocks_is_7_804: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm2,ZMMWORD[ddq_add_5678] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + sub r15,64 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm3,2 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vmovdqu8 zmm6,ZMMWORD[r11*1+r9] + vmovdqu8 zmm7{k1}{z},[64+r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[192+rcx] + vaesenclast zmm0,zmm0,zmm15 + vaesenclast zmm3,zmm3,zmm15 + vpxorq zmm0,zmm0,zmm6 + vpxorq zmm3,zmm3,zmm7 + vextracti32x4 xmm12,zmm3,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10]{k1},zmm3 + vmovdqu8 zmm3{k1}{z},zmm3 + vpshufb zmm6,zmm6,zmm29 + vpshufb zmm7,zmm7,zmm29 + vextracti32x4 xmm13,zmm7,2 + sub r13,16 * (7 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_811 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[240+rdx] + vpclmulqdq zmm15,zmm6,zmm20,0x11 + vpclmulqdq zmm16,zmm6,zmm20,0x00 + vpclmulqdq zmm17,zmm6,zmm20,0x01 + vpclmulqdq zmm19,zmm6,zmm20,0x10 + vmovdqu64 ymm20,YMMWORD[304+rdx] + vinserti64x2 zmm20,zmm20,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm7,zmm20,0x01 + vpclmulqdq zmm5,zmm7,zmm20,0x10 + vpclmulqdq zmm0,zmm7,zmm20,0x11 + vpclmulqdq zmm3,zmm7,zmm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_811 +$L$_small_initial_partial_block_811: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[256+rdx] + vpclmulqdq zmm15,zmm6,zmm20,0x11 + vpclmulqdq zmm16,zmm6,zmm20,0x00 + vpclmulqdq zmm17,zmm6,zmm20,0x01 + vpclmulqdq zmm19,zmm6,zmm20,0x10 + vmovdqu64 ymm20,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm7,ymm20,0x01 + vpclmulqdq ymm5,ymm7,ymm20,0x10 + vpclmulqdq ymm0,ymm7,ymm20,0x11 + vpclmulqdq ymm3,ymm7,ymm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_811: + + or r13,r13 + je NEAR $L$_after_reduction_811 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_811: + jmp NEAR $L$_small_initial_blocks_encrypted_804 +$L$_small_initial_num_blocks_is_8_804: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm2,ZMMWORD[ddq_add_5678] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + sub r15,64 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm3,3 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vmovdqu8 zmm6,ZMMWORD[r11*1+r9] + vmovdqu8 zmm7{k1}{z},[64+r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[192+rcx] + vaesenclast zmm0,zmm0,zmm15 + vaesenclast zmm3,zmm3,zmm15 + vpxorq zmm0,zmm0,zmm6 + vpxorq zmm3,zmm3,zmm7 + vextracti32x4 xmm12,zmm3,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10]{k1},zmm3 + vmovdqu8 zmm3{k1}{z},zmm3 + vpshufb zmm6,zmm6,zmm29 + vpshufb zmm7,zmm7,zmm29 + vextracti32x4 xmm13,zmm7,3 + sub r13,16 * (8 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_812 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[224+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[288+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vpxorq zmm15,zmm0,zmm15 + vpxorq zmm16,zmm3,zmm16 + vpxorq zmm17,zmm4,zmm17 + vpxorq zmm19,zmm5,zmm19 + + vpxorq zmm17,zmm17,zmm19 + vpsrldq zmm4,zmm17,8 + vpslldq zmm5,zmm17,8 + vpxorq zmm0,zmm15,zmm4 + vpxorq zmm3,zmm16,zmm5 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_812 +$L$_small_initial_partial_block_812: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[240+rdx] + vpclmulqdq zmm15,zmm6,zmm20,0x11 + vpclmulqdq zmm16,zmm6,zmm20,0x00 + vpclmulqdq zmm17,zmm6,zmm20,0x01 + vpclmulqdq zmm19,zmm6,zmm20,0x10 + vmovdqu64 ymm20,YMMWORD[304+rdx] + vinserti64x2 zmm20,zmm20,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm7,zmm20,0x01 + vpclmulqdq zmm5,zmm7,zmm20,0x10 + vpclmulqdq zmm0,zmm7,zmm20,0x11 + vpclmulqdq zmm3,zmm7,zmm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_812: + + or r13,r13 + je NEAR $L$_after_reduction_812 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_812: + jmp NEAR $L$_small_initial_blocks_encrypted_804 +$L$_small_initial_num_blocks_is_9_804: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm2,ZMMWORD[ddq_add_5678] + vpaddd zmm4,zmm0,ZMMWORD[ddq_add_8888] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + sub r15,128 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm4,0 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb xmm4,xmm4,xmm29 + vmovdqu8 zmm6,ZMMWORD[r11*1+r9] + vmovdqu8 zmm7,ZMMWORD[64+r11*1+r9] + vmovdqu8 xmm10{k1}{z},[128+r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm15 + vpxorq xmm4,xmm4,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc xmm4,xmm4,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc xmm4,xmm4,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc xmm4,xmm4,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc xmm4,xmm4,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc xmm4,xmm4,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc xmm4,xmm4,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc xmm4,xmm4,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc xmm4,xmm4,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc xmm4,xmm4,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc xmm4,xmm4,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc xmm4,xmm4,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[192+rcx] + vaesenclast zmm0,zmm0,zmm15 + vaesenclast zmm3,zmm3,zmm15 + vaesenclast xmm4,xmm4,xmm15 + vpxorq zmm0,zmm0,zmm6 + vpxorq zmm3,zmm3,zmm7 + vpxorq xmm4,xmm4,xmm10 + vextracti32x4 xmm12,zmm4,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 XMMWORD[128+r11*1+r10]{k1},xmm4 + vmovdqu8 zmm4{k1}{z},zmm4 + vpshufb zmm6,zmm6,zmm29 + vpshufb zmm7,zmm7,zmm29 + vpshufb xmm10,xmm10,xmm29 + vextracti32x4 xmm13,zmm10,0 + sub r13,16 * (9 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_813 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[208+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[272+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vpxorq zmm15,zmm0,zmm15 + vpxorq zmm16,zmm3,zmm16 + vpxorq zmm17,zmm4,zmm17 + vpxorq zmm19,zmm5,zmm19 + vmovdqu64 xmm20,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm10,xmm20,0x01 + vpclmulqdq xmm5,xmm10,xmm20,0x10 + vpclmulqdq xmm0,xmm10,xmm20,0x11 + vpclmulqdq xmm3,xmm10,xmm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_813 +$L$_small_initial_partial_block_813: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[224+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[288+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vpxorq zmm15,zmm0,zmm15 + vpxorq zmm16,zmm3,zmm16 + vpxorq zmm17,zmm4,zmm17 + vpxorq zmm19,zmm5,zmm19 + + vpxorq zmm17,zmm17,zmm19 + vpsrldq zmm4,zmm17,8 + vpslldq zmm5,zmm17,8 + vpxorq zmm0,zmm15,zmm4 + vpxorq zmm3,zmm16,zmm5 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_813: + + or r13,r13 + je NEAR $L$_after_reduction_813 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_813: + jmp NEAR $L$_small_initial_blocks_encrypted_804 +$L$_small_initial_num_blocks_is_10_804: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm2,ZMMWORD[ddq_add_5678] + vpaddd zmm4,zmm0,ZMMWORD[ddq_add_8888] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + sub r15,128 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm4,1 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb ymm4,ymm4,ymm29 + vmovdqu8 zmm6,ZMMWORD[r11*1+r9] + vmovdqu8 zmm7,ZMMWORD[64+r11*1+r9] + vmovdqu8 ymm10{k1}{z},[128+r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm15 + vpxorq ymm4,ymm4,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc ymm4,ymm4,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc ymm4,ymm4,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc ymm4,ymm4,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc ymm4,ymm4,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc ymm4,ymm4,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc ymm4,ymm4,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc ymm4,ymm4,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc ymm4,ymm4,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc ymm4,ymm4,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc ymm4,ymm4,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc ymm4,ymm4,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[192+rcx] + vaesenclast zmm0,zmm0,zmm15 + vaesenclast zmm3,zmm3,zmm15 + vaesenclast ymm4,ymm4,ymm15 + vpxorq zmm0,zmm0,zmm6 + vpxorq zmm3,zmm3,zmm7 + vpxorq ymm4,ymm4,ymm10 + vextracti32x4 xmm12,zmm4,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 YMMWORD[128+r11*1+r10]{k1},ymm4 + vmovdqu8 zmm4{k1}{z},zmm4 + vpshufb zmm6,zmm6,zmm29 + vpshufb zmm7,zmm7,zmm29 + vpshufb ymm10,ymm10,ymm29 + vextracti32x4 xmm13,zmm10,1 + sub r13,16 * (10 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_814 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[192+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[256+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vpxorq zmm15,zmm0,zmm15 + vpxorq zmm16,zmm3,zmm16 + vpxorq zmm17,zmm4,zmm17 + vpxorq zmm19,zmm5,zmm19 + vmovdqu64 ymm20,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm10,ymm20,0x01 + vpclmulqdq ymm5,ymm10,ymm20,0x10 + vpclmulqdq ymm0,ymm10,ymm20,0x11 + vpclmulqdq ymm3,ymm10,ymm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_814 +$L$_small_initial_partial_block_814: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[208+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[272+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vpxorq zmm15,zmm0,zmm15 + vpxorq zmm16,zmm3,zmm16 + vpxorq zmm17,zmm4,zmm17 + vpxorq zmm19,zmm5,zmm19 + vmovdqu64 xmm20,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm10,xmm20,0x01 + vpclmulqdq xmm5,xmm10,xmm20,0x10 + vpclmulqdq xmm0,xmm10,xmm20,0x11 + vpclmulqdq xmm3,xmm10,xmm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_814: + + or r13,r13 + je NEAR $L$_after_reduction_814 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_814: + jmp NEAR $L$_small_initial_blocks_encrypted_804 +$L$_small_initial_num_blocks_is_11_804: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm2,ZMMWORD[ddq_add_5678] + vpaddd zmm4,zmm0,ZMMWORD[ddq_add_8888] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + sub r15,128 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm4,2 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vmovdqu8 zmm6,ZMMWORD[r11*1+r9] + vmovdqu8 zmm7,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm10{k1}{z},[128+r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm15 + vpxorq zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[192+rcx] + vaesenclast zmm0,zmm0,zmm15 + vaesenclast zmm3,zmm3,zmm15 + vaesenclast zmm4,zmm4,zmm15 + vpxorq zmm0,zmm0,zmm6 + vpxorq zmm3,zmm3,zmm7 + vpxorq zmm4,zmm4,zmm10 + vextracti32x4 xmm12,zmm4,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10]{k1},zmm4 + vmovdqu8 zmm4{k1}{z},zmm4 + vpshufb zmm6,zmm6,zmm29 + vpshufb zmm7,zmm7,zmm29 + vpshufb zmm10,zmm10,zmm29 + vextracti32x4 xmm13,zmm10,2 + sub r13,16 * (11 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_815 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[176+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[240+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vpxorq zmm15,zmm0,zmm15 + vpxorq zmm16,zmm3,zmm16 + vpxorq zmm17,zmm4,zmm17 + vpxorq zmm19,zmm5,zmm19 + vmovdqu64 ymm20,YMMWORD[304+rdx] + vinserti64x2 zmm20,zmm20,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm10,zmm20,0x01 + vpclmulqdq zmm5,zmm10,zmm20,0x10 + vpclmulqdq zmm0,zmm10,zmm20,0x11 + vpclmulqdq zmm3,zmm10,zmm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_815 +$L$_small_initial_partial_block_815: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[192+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[256+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vpxorq zmm15,zmm0,zmm15 + vpxorq zmm16,zmm3,zmm16 + vpxorq zmm17,zmm4,zmm17 + vpxorq zmm19,zmm5,zmm19 + vmovdqu64 ymm20,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm10,ymm20,0x01 + vpclmulqdq ymm5,ymm10,ymm20,0x10 + vpclmulqdq ymm0,ymm10,ymm20,0x11 + vpclmulqdq ymm3,ymm10,ymm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_815: + + or r13,r13 + je NEAR $L$_after_reduction_815 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_815: + jmp NEAR $L$_small_initial_blocks_encrypted_804 +$L$_small_initial_num_blocks_is_12_804: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm2,ZMMWORD[ddq_add_5678] + vpaddd zmm4,zmm0,ZMMWORD[ddq_add_8888] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + sub r15,128 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm4,3 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vmovdqu8 zmm6,ZMMWORD[r11*1+r9] + vmovdqu8 zmm7,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm10{k1}{z},[128+r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm15 + vpxorq zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[192+rcx] + vaesenclast zmm0,zmm0,zmm15 + vaesenclast zmm3,zmm3,zmm15 + vaesenclast zmm4,zmm4,zmm15 + vpxorq zmm0,zmm0,zmm6 + vpxorq zmm3,zmm3,zmm7 + vpxorq zmm4,zmm4,zmm10 + vextracti32x4 xmm12,zmm4,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10]{k1},zmm4 + vmovdqu8 zmm4{k1}{z},zmm4 + vpshufb zmm6,zmm6,zmm29 + vpshufb zmm7,zmm7,zmm29 + vpshufb zmm10,zmm10,zmm29 + vextracti32x4 xmm13,zmm10,3 + sub r13,16 * (12 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_816 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[160+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[224+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[288+rdx] + vpclmulqdq zmm6,zmm10,zmm20,0x11 + vpclmulqdq zmm7,zmm10,zmm20,0x00 + vpternlogq zmm15,zmm6,zmm0,0x96 + vpternlogq zmm16,zmm7,zmm3,0x96 + vpclmulqdq zmm6,zmm10,zmm20,0x01 + vpclmulqdq zmm7,zmm10,zmm20,0x10 + vpternlogq zmm17,zmm6,zmm4,0x96 + vpternlogq zmm19,zmm7,zmm5,0x96 + + vpxorq zmm17,zmm17,zmm19 + vpsrldq zmm4,zmm17,8 + vpslldq zmm5,zmm17,8 + vpxorq zmm0,zmm15,zmm4 + vpxorq zmm3,zmm16,zmm5 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_816 +$L$_small_initial_partial_block_816: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[176+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[240+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vpxorq zmm15,zmm0,zmm15 + vpxorq zmm16,zmm3,zmm16 + vpxorq zmm17,zmm4,zmm17 + vpxorq zmm19,zmm5,zmm19 + vmovdqu64 ymm20,YMMWORD[304+rdx] + vinserti64x2 zmm20,zmm20,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm10,zmm20,0x01 + vpclmulqdq zmm5,zmm10,zmm20,0x10 + vpclmulqdq zmm0,zmm10,zmm20,0x11 + vpclmulqdq zmm3,zmm10,zmm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_816: + + or r13,r13 + je NEAR $L$_after_reduction_816 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_816: + jmp NEAR $L$_small_initial_blocks_encrypted_804 +$L$_small_initial_num_blocks_is_13_804: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm2,ZMMWORD[ddq_add_5678] + vpaddd zmm4,zmm0,ZMMWORD[ddq_add_8888] + vpaddd zmm5,zmm3,ZMMWORD[ddq_add_8888] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + sub r15,192 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm5,0 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb xmm5,xmm5,xmm29 + vmovdqu8 zmm6,ZMMWORD[r11*1+r9] + vmovdqu8 zmm7,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm10,ZMMWORD[128+r11*1+r9] + vmovdqu8 xmm11{k1}{z},[192+r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm15 + vpxorq zmm4,zmm4,zmm15 + vpxorq xmm5,xmm5,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc xmm5,xmm5,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc xmm5,xmm5,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc xmm5,xmm5,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc xmm5,xmm5,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc xmm5,xmm5,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc xmm5,xmm5,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc xmm5,xmm5,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc xmm5,xmm5,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc xmm5,xmm5,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc xmm5,xmm5,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc xmm5,xmm5,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[192+rcx] + vaesenclast zmm0,zmm0,zmm15 + vaesenclast zmm3,zmm3,zmm15 + vaesenclast zmm4,zmm4,zmm15 + vaesenclast xmm5,xmm5,xmm15 + vpxorq zmm0,zmm0,zmm6 + vpxorq zmm3,zmm3,zmm7 + vpxorq zmm4,zmm4,zmm10 + vpxorq xmm5,xmm5,xmm11 + vextracti32x4 xmm12,zmm5,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 XMMWORD[192+r11*1+r10]{k1},xmm5 + vmovdqu8 zmm5{k1}{z},zmm5 + vpshufb zmm6,zmm6,zmm29 + vpshufb zmm7,zmm7,zmm29 + vpshufb zmm10,zmm10,zmm29 + vpshufb xmm11,xmm11,xmm29 + vextracti32x4 xmm13,zmm11,0 + sub r13,16 * (13 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_817 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[144+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[208+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[272+rdx] + vpclmulqdq zmm6,zmm10,zmm20,0x11 + vpclmulqdq zmm7,zmm10,zmm20,0x00 + vpternlogq zmm15,zmm6,zmm0,0x96 + vpternlogq zmm16,zmm7,zmm3,0x96 + vpclmulqdq zmm6,zmm10,zmm20,0x01 + vpclmulqdq zmm7,zmm10,zmm20,0x10 + vpternlogq zmm17,zmm6,zmm4,0x96 + vpternlogq zmm19,zmm7,zmm5,0x96 + vmovdqu64 xmm20,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm11,xmm20,0x01 + vpclmulqdq xmm5,xmm11,xmm20,0x10 + vpclmulqdq xmm0,xmm11,xmm20,0x11 + vpclmulqdq xmm3,xmm11,xmm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_817 +$L$_small_initial_partial_block_817: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[160+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[224+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[288+rdx] + vpclmulqdq zmm6,zmm10,zmm20,0x11 + vpclmulqdq zmm7,zmm10,zmm20,0x00 + vpternlogq zmm15,zmm6,zmm0,0x96 + vpternlogq zmm16,zmm7,zmm3,0x96 + vpclmulqdq zmm6,zmm10,zmm20,0x01 + vpclmulqdq zmm7,zmm10,zmm20,0x10 + vpternlogq zmm17,zmm6,zmm4,0x96 + vpternlogq zmm19,zmm7,zmm5,0x96 + + vpxorq zmm17,zmm17,zmm19 + vpsrldq zmm4,zmm17,8 + vpslldq zmm5,zmm17,8 + vpxorq zmm0,zmm15,zmm4 + vpxorq zmm3,zmm16,zmm5 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_817: + + or r13,r13 + je NEAR $L$_after_reduction_817 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_817: + jmp NEAR $L$_small_initial_blocks_encrypted_804 +$L$_small_initial_num_blocks_is_14_804: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm2,ZMMWORD[ddq_add_5678] + vpaddd zmm4,zmm0,ZMMWORD[ddq_add_8888] + vpaddd zmm5,zmm3,ZMMWORD[ddq_add_8888] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + sub r15,192 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm5,1 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb ymm5,ymm5,ymm29 + vmovdqu8 zmm6,ZMMWORD[r11*1+r9] + vmovdqu8 zmm7,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm10,ZMMWORD[128+r11*1+r9] + vmovdqu8 ymm11{k1}{z},[192+r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm15 + vpxorq zmm4,zmm4,zmm15 + vpxorq ymm5,ymm5,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc ymm5,ymm5,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc ymm5,ymm5,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc ymm5,ymm5,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc ymm5,ymm5,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc ymm5,ymm5,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc ymm5,ymm5,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc ymm5,ymm5,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc ymm5,ymm5,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc ymm5,ymm5,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc ymm5,ymm5,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc ymm5,ymm5,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[192+rcx] + vaesenclast zmm0,zmm0,zmm15 + vaesenclast zmm3,zmm3,zmm15 + vaesenclast zmm4,zmm4,zmm15 + vaesenclast ymm5,ymm5,ymm15 + vpxorq zmm0,zmm0,zmm6 + vpxorq zmm3,zmm3,zmm7 + vpxorq zmm4,zmm4,zmm10 + vpxorq ymm5,ymm5,ymm11 + vextracti32x4 xmm12,zmm5,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 YMMWORD[192+r11*1+r10]{k1},ymm5 + vmovdqu8 zmm5{k1}{z},zmm5 + vpshufb zmm6,zmm6,zmm29 + vpshufb zmm7,zmm7,zmm29 + vpshufb zmm10,zmm10,zmm29 + vpshufb ymm11,ymm11,ymm29 + vextracti32x4 xmm13,zmm11,1 + sub r13,16 * (14 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_818 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[128+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[192+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[256+rdx] + vpclmulqdq zmm6,zmm10,zmm20,0x11 + vpclmulqdq zmm7,zmm10,zmm20,0x00 + vpternlogq zmm15,zmm6,zmm0,0x96 + vpternlogq zmm16,zmm7,zmm3,0x96 + vpclmulqdq zmm6,zmm10,zmm20,0x01 + vpclmulqdq zmm7,zmm10,zmm20,0x10 + vpternlogq zmm17,zmm6,zmm4,0x96 + vpternlogq zmm19,zmm7,zmm5,0x96 + vmovdqu64 ymm20,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm11,ymm20,0x01 + vpclmulqdq ymm5,ymm11,ymm20,0x10 + vpclmulqdq ymm0,ymm11,ymm20,0x11 + vpclmulqdq ymm3,ymm11,ymm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_818 +$L$_small_initial_partial_block_818: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[144+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[208+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[272+rdx] + vpclmulqdq zmm6,zmm10,zmm20,0x11 + vpclmulqdq zmm7,zmm10,zmm20,0x00 + vpternlogq zmm15,zmm6,zmm0,0x96 + vpternlogq zmm16,zmm7,zmm3,0x96 + vpclmulqdq zmm6,zmm10,zmm20,0x01 + vpclmulqdq zmm7,zmm10,zmm20,0x10 + vpternlogq zmm17,zmm6,zmm4,0x96 + vpternlogq zmm19,zmm7,zmm5,0x96 + vmovdqu64 xmm20,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm11,xmm20,0x01 + vpclmulqdq xmm5,xmm11,xmm20,0x10 + vpclmulqdq xmm0,xmm11,xmm20,0x11 + vpclmulqdq xmm3,xmm11,xmm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_818: + + or r13,r13 + je NEAR $L$_after_reduction_818 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_818: + jmp NEAR $L$_small_initial_blocks_encrypted_804 +$L$_small_initial_num_blocks_is_15_804: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm2,ZMMWORD[ddq_add_5678] + vpaddd zmm4,zmm0,ZMMWORD[ddq_add_8888] + vpaddd zmm5,zmm3,ZMMWORD[ddq_add_8888] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + sub r15,192 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm5,2 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 + vmovdqu8 zmm6,ZMMWORD[r11*1+r9] + vmovdqu8 zmm7,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm10,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm11{k1}{z},[192+r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm15 + vpxorq zmm4,zmm4,zmm15 + vpxorq zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[192+rcx] + vaesenclast zmm0,zmm0,zmm15 + vaesenclast zmm3,zmm3,zmm15 + vaesenclast zmm4,zmm4,zmm15 + vaesenclast zmm5,zmm5,zmm15 + vpxorq zmm0,zmm0,zmm6 + vpxorq zmm3,zmm3,zmm7 + vpxorq zmm4,zmm4,zmm10 + vpxorq zmm5,zmm5,zmm11 + vextracti32x4 xmm12,zmm5,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[192+r11*1+r10]{k1},zmm5 + vmovdqu8 zmm5{k1}{z},zmm5 + vpshufb zmm6,zmm6,zmm29 + vpshufb zmm7,zmm7,zmm29 + vpshufb zmm10,zmm10,zmm29 + vpshufb zmm11,zmm11,zmm29 + vextracti32x4 xmm13,zmm11,2 + sub r13,16 * (15 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_819 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[112+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[176+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[240+rdx] + vpclmulqdq zmm6,zmm10,zmm20,0x11 + vpclmulqdq zmm7,zmm10,zmm20,0x00 + vpternlogq zmm15,zmm6,zmm0,0x96 + vpternlogq zmm16,zmm7,zmm3,0x96 + vpclmulqdq zmm6,zmm10,zmm20,0x01 + vpclmulqdq zmm7,zmm10,zmm20,0x10 + vpternlogq zmm17,zmm6,zmm4,0x96 + vpternlogq zmm19,zmm7,zmm5,0x96 + vmovdqu64 ymm20,YMMWORD[304+rdx] + vinserti64x2 zmm20,zmm20,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm11,zmm20,0x01 + vpclmulqdq zmm5,zmm11,zmm20,0x10 + vpclmulqdq zmm0,zmm11,zmm20,0x11 + vpclmulqdq zmm3,zmm11,zmm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_819 +$L$_small_initial_partial_block_819: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[128+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[192+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[256+rdx] + vpclmulqdq zmm6,zmm10,zmm20,0x11 + vpclmulqdq zmm7,zmm10,zmm20,0x00 + vpternlogq zmm15,zmm6,zmm0,0x96 + vpternlogq zmm16,zmm7,zmm3,0x96 + vpclmulqdq zmm6,zmm10,zmm20,0x01 + vpclmulqdq zmm7,zmm10,zmm20,0x10 + vpternlogq zmm17,zmm6,zmm4,0x96 + vpternlogq zmm19,zmm7,zmm5,0x96 + vmovdqu64 ymm20,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm11,ymm20,0x01 + vpclmulqdq ymm5,ymm11,ymm20,0x10 + vpclmulqdq ymm0,ymm11,ymm20,0x11 + vpclmulqdq ymm3,ymm11,ymm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_819: + + or r13,r13 + je NEAR $L$_after_reduction_819 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_819: + jmp NEAR $L$_small_initial_blocks_encrypted_804 +$L$_small_initial_num_blocks_is_16_804: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm2,ZMMWORD[ddq_add_5678] + vpaddd zmm4,zmm0,ZMMWORD[ddq_add_8888] + vpaddd zmm5,zmm3,ZMMWORD[ddq_add_8888] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + sub r15,192 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm5,3 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 + vmovdqu8 zmm6,ZMMWORD[r11*1+r9] + vmovdqu8 zmm7,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm10,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm11{k1}{z},[192+r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm15 + vpxorq zmm4,zmm4,zmm15 + vpxorq zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[192+rcx] + vaesenclast zmm0,zmm0,zmm15 + vaesenclast zmm3,zmm3,zmm15 + vaesenclast zmm4,zmm4,zmm15 + vaesenclast zmm5,zmm5,zmm15 + vpxorq zmm0,zmm0,zmm6 + vpxorq zmm3,zmm3,zmm7 + vpxorq zmm4,zmm4,zmm10 + vpxorq zmm5,zmm5,zmm11 + vextracti32x4 xmm12,zmm5,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[192+r11*1+r10]{k1},zmm5 + vmovdqu8 zmm5{k1}{z},zmm5 + vpshufb zmm6,zmm6,zmm29 + vpshufb zmm7,zmm7,zmm29 + vpshufb zmm10,zmm10,zmm29 + vpshufb zmm11,zmm11,zmm29 + vextracti32x4 xmm13,zmm11,3 + sub r13,16 * (16 - 1) +$L$_small_initial_partial_block_820: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[112+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[176+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[240+rdx] + vpclmulqdq zmm6,zmm10,zmm20,0x11 + vpclmulqdq zmm7,zmm10,zmm20,0x00 + vpternlogq zmm15,zmm6,zmm0,0x96 + vpternlogq zmm16,zmm7,zmm3,0x96 + vpclmulqdq zmm6,zmm10,zmm20,0x01 + vpclmulqdq zmm7,zmm10,zmm20,0x10 + vpternlogq zmm17,zmm6,zmm4,0x96 + vpternlogq zmm19,zmm7,zmm5,0x96 + vmovdqu64 ymm20,YMMWORD[304+rdx] + vinserti64x2 zmm20,zmm20,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm11,zmm20,0x01 + vpclmulqdq zmm5,zmm11,zmm20,0x10 + vpclmulqdq zmm0,zmm11,zmm20,0x11 + vpclmulqdq zmm3,zmm11,zmm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_820: + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_820: +$L$_small_initial_blocks_encrypted_804: +$L$_ghash_done_659: + vmovdqu64 XMMWORD[rdx],xmm2 + vmovdqu64 XMMWORD[64+rdx],xmm14 +$L$_enc_dec_done_659: + jmp NEAR $L$exit_gcm_decrypt +ALIGN 32 +$L$aes_gcm_decrypt_256_avx512: + cmp QWORD[112+rbp],0 + je NEAR $L$_enc_dec_done_821 + xor r14,r14 + vmovdqu64 xmm14,XMMWORD[64+rdx] + + mov r11,QWORD[r8] + or r11,r11 + je NEAR $L$_partial_block_done_822 + mov r10d,16 + lea r12,[byte_len_to_mask_table] + cmp QWORD[112+rbp],r10 + cmovc r10,QWORD[112+rbp] + add r12,r10 + add r12,r10 + kmovw k1,[r12] + vmovdqu8 xmm0{k1}{z},[r9] + + vmovdqu64 xmm3,XMMWORD[16+rdx] + vmovdqu64 xmm4,XMMWORD[336+rdx] + + + + lea r12,[SHIFT_MASK] + add r12,r11 + vmovdqu64 xmm5,XMMWORD[r12] + vpshufb xmm3,xmm3,xmm5 + + vmovdqa64 xmm6,xmm0 + vpxorq xmm3,xmm3,xmm0 + + + mov r13,QWORD[112+rbp] + add r13,r11 + sub r13,16 + jge NEAR $L$_no_extra_mask_822 + sub r12,r13 +$L$_no_extra_mask_822: + + + + vmovdqu64 xmm0,XMMWORD[16+r12] + vpand xmm3,xmm3,xmm0 + vpand xmm6,xmm6,xmm0 + vpshufb xmm6,xmm6,XMMWORD[SHUF_MASK] + vpshufb xmm6,xmm6,xmm5 + vpxorq xmm14,xmm14,xmm6 + cmp r13,0 + jl NEAR $L$_partial_incomplete_822 + + vpclmulqdq xmm7,xmm14,xmm4,0x11 + vpclmulqdq xmm10,xmm14,xmm4,0x00 + vpclmulqdq xmm11,xmm14,xmm4,0x01 + vpclmulqdq xmm14,xmm14,xmm4,0x10 + vpxorq xmm14,xmm14,xmm11 + + vpsrldq xmm11,xmm14,8 + vpslldq xmm14,xmm14,8 + vpxorq xmm7,xmm7,xmm11 + vpxorq xmm14,xmm14,xmm10 + + + + vmovdqu64 xmm11,XMMWORD[POLY2] + + vpclmulqdq xmm10,xmm11,xmm14,0x01 + vpslldq xmm10,xmm10,8 + vpxorq xmm14,xmm14,xmm10 + + + + vpclmulqdq xmm10,xmm11,xmm14,0x00 + vpsrldq xmm10,xmm10,4 + vpclmulqdq xmm14,xmm11,xmm14,0x10 + vpslldq xmm14,xmm14,4 + + vpternlogq xmm14,xmm7,xmm10,0x96 + + mov QWORD[r8],0 + + mov r12,r11 + mov r11,16 + sub r11,r12 + jmp NEAR $L$_enc_dec_done_822 + +$L$_partial_incomplete_822: + mov r12,QWORD[112+rbp] + add QWORD[r8],r12 + mov r11,QWORD[112+rbp] + +$L$_enc_dec_done_822: + + + lea r12,[byte_len_to_mask_table] + kmovw k1,[r11*2+r12] + vmovdqu64 XMMWORD[64+rdx],xmm14 + mov r12,QWORD[120+rbp] + vmovdqu8 XMMWORD[r12]{k1},xmm3 +$L$_partial_block_done_822: + vmovdqu64 xmm2,XMMWORD[rdx] + mov r13,QWORD[112+rbp] + sub r13,r11 + je NEAR $L$_enc_dec_done_821 + cmp r13,256 + jbe NEAR $L$_message_below_equal_16_blocks_821 + + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vmovdqa64 zmm27,ZMMWORD[ddq_addbe_4444] + vmovdqa64 zmm28,ZMMWORD[ddq_addbe_1234] + + + + + + + vmovd r15d,xmm2 + and r15d,255 + + vshufi64x2 zmm2,zmm2,zmm2,0 + vpshufb zmm2,zmm2,zmm29 + + + + cmp r15b,240 + jae NEAR $L$_next_16_overflow_823 + vpaddd zmm7,zmm2,zmm28 + vpaddd zmm10,zmm7,zmm27 + vpaddd zmm11,zmm10,zmm27 + vpaddd zmm12,zmm11,zmm27 + jmp NEAR $L$_next_16_ok_823 +$L$_next_16_overflow_823: + vpshufb zmm2,zmm2,zmm29 + vmovdqa64 zmm12,ZMMWORD[ddq_add_4444] + vpaddd zmm7,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm10,zmm7,zmm12 + vpaddd zmm11,zmm10,zmm12 + vpaddd zmm12,zmm11,zmm12 + vpshufb zmm7,zmm7,zmm29 + vpshufb zmm10,zmm10,zmm29 + vpshufb zmm11,zmm11,zmm29 + vpshufb zmm12,zmm12,zmm29 +$L$_next_16_ok_823: + vshufi64x2 zmm2,zmm12,zmm12,255 + add r15b,16 + + vmovdqu8 zmm0,ZMMWORD[r11*1+r9] + vmovdqu8 zmm3,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm4,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm5,ZMMWORD[192+r11*1+r9] + + + vbroadcastf64x2 zmm6,ZMMWORD[rcx] + vpxorq zmm7,zmm7,zmm6 + vpxorq zmm10,zmm10,zmm6 + vpxorq zmm11,zmm11,zmm6 + vpxorq zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[16+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[32+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[48+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[64+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[80+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[96+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[112+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[128+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[144+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[160+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[176+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[192+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[208+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[224+rcx] + vaesenclast zmm7,zmm7,zmm6 + vaesenclast zmm10,zmm10,zmm6 + vaesenclast zmm11,zmm11,zmm6 + vaesenclast zmm12,zmm12,zmm6 + + + vpxorq zmm7,zmm7,zmm0 + vpxorq zmm10,zmm10,zmm3 + vpxorq zmm11,zmm11,zmm4 + vpxorq zmm12,zmm12,zmm5 + + + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm7 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm10 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm11 + vmovdqu8 ZMMWORD[192+r11*1+r10],zmm12 + + vpshufb zmm7,zmm0,zmm29 + vpshufb zmm10,zmm3,zmm29 + vpshufb zmm11,zmm4,zmm29 + vpshufb zmm12,zmm5,zmm29 + vmovdqa64 ZMMWORD[768+rsp],zmm7 + vmovdqa64 ZMMWORD[832+rsp],zmm10 + vmovdqa64 ZMMWORD[896+rsp],zmm11 + vmovdqa64 ZMMWORD[960+rsp],zmm12 + test r14,r14 + jnz NEAR $L$_skip_hkeys_precomputation_824 + + vmovdqu64 zmm0,ZMMWORD[288+rdx] + vmovdqu64 ZMMWORD[704+rsp],zmm0 + + vmovdqu64 zmm3,ZMMWORD[224+rdx] + vmovdqu64 ZMMWORD[640+rsp],zmm3 + + + vshufi64x2 zmm3,zmm3,zmm3,0x00 + + vmovdqu64 zmm4,ZMMWORD[160+rdx] + vmovdqu64 ZMMWORD[576+rsp],zmm4 + + vmovdqu64 zmm5,ZMMWORD[96+rdx] + vmovdqu64 ZMMWORD[512+rsp],zmm5 +$L$_skip_hkeys_precomputation_824: + cmp r13,512 + jb NEAR $L$_message_below_32_blocks_821 + + + + cmp r15b,240 + jae NEAR $L$_next_16_overflow_825 + vpaddd zmm7,zmm2,zmm28 + vpaddd zmm10,zmm7,zmm27 + vpaddd zmm11,zmm10,zmm27 + vpaddd zmm12,zmm11,zmm27 + jmp NEAR $L$_next_16_ok_825 +$L$_next_16_overflow_825: + vpshufb zmm2,zmm2,zmm29 + vmovdqa64 zmm12,ZMMWORD[ddq_add_4444] + vpaddd zmm7,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm10,zmm7,zmm12 + vpaddd zmm11,zmm10,zmm12 + vpaddd zmm12,zmm11,zmm12 + vpshufb zmm7,zmm7,zmm29 + vpshufb zmm10,zmm10,zmm29 + vpshufb zmm11,zmm11,zmm29 + vpshufb zmm12,zmm12,zmm29 +$L$_next_16_ok_825: + vshufi64x2 zmm2,zmm12,zmm12,255 + add r15b,16 + + vmovdqu8 zmm0,ZMMWORD[256+r11*1+r9] + vmovdqu8 zmm3,ZMMWORD[320+r11*1+r9] + vmovdqu8 zmm4,ZMMWORD[384+r11*1+r9] + vmovdqu8 zmm5,ZMMWORD[448+r11*1+r9] + + + vbroadcastf64x2 zmm6,ZMMWORD[rcx] + vpxorq zmm7,zmm7,zmm6 + vpxorq zmm10,zmm10,zmm6 + vpxorq zmm11,zmm11,zmm6 + vpxorq zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[16+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[32+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[48+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[64+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[80+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[96+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[112+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[128+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[144+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[160+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[176+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[192+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[208+rcx] + vaesenc zmm7,zmm7,zmm6 + vaesenc zmm10,zmm10,zmm6 + vaesenc zmm11,zmm11,zmm6 + vaesenc zmm12,zmm12,zmm6 + vbroadcastf64x2 zmm6,ZMMWORD[224+rcx] + vaesenclast zmm7,zmm7,zmm6 + vaesenclast zmm10,zmm10,zmm6 + vaesenclast zmm11,zmm11,zmm6 + vaesenclast zmm12,zmm12,zmm6 + + + vpxorq zmm7,zmm7,zmm0 + vpxorq zmm10,zmm10,zmm3 + vpxorq zmm11,zmm11,zmm4 + vpxorq zmm12,zmm12,zmm5 + + + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[256+r11*1+r10],zmm7 + vmovdqu8 ZMMWORD[320+r11*1+r10],zmm10 + vmovdqu8 ZMMWORD[384+r11*1+r10],zmm11 + vmovdqu8 ZMMWORD[448+r11*1+r10],zmm12 + + vpshufb zmm7,zmm0,zmm29 + vpshufb zmm10,zmm3,zmm29 + vpshufb zmm11,zmm4,zmm29 + vpshufb zmm12,zmm5,zmm29 + vmovdqa64 ZMMWORD[1024+rsp],zmm7 + vmovdqa64 ZMMWORD[1088+rsp],zmm10 + vmovdqa64 ZMMWORD[1152+rsp],zmm11 + vmovdqa64 ZMMWORD[1216+rsp],zmm12 + test r14,r14 + jnz NEAR $L$_skip_hkeys_precomputation_826 + vmovdqu64 zmm3,ZMMWORD[640+rsp] + + + vshufi64x2 zmm3,zmm3,zmm3,0x00 + + vmovdqu64 zmm4,ZMMWORD[576+rsp] + vmovdqu64 zmm5,ZMMWORD[512+rsp] + + vpclmulqdq zmm6,zmm4,zmm3,0x11 + vpclmulqdq zmm7,zmm4,zmm3,0x00 + vpclmulqdq zmm10,zmm4,zmm3,0x01 + vpclmulqdq zmm4,zmm4,zmm3,0x10 + vpxorq zmm4,zmm4,zmm10 + + vpsrldq zmm10,zmm4,8 + vpslldq zmm4,zmm4,8 + vpxorq zmm6,zmm6,zmm10 + vpxorq zmm4,zmm4,zmm7 + + + + vmovdqu64 zmm10,ZMMWORD[POLY2] + + vpclmulqdq zmm7,zmm10,zmm4,0x01 + vpslldq zmm7,zmm7,8 + vpxorq zmm4,zmm4,zmm7 + + + + vpclmulqdq zmm7,zmm10,zmm4,0x00 + vpsrldq zmm7,zmm7,4 + vpclmulqdq zmm4,zmm10,zmm4,0x10 + vpslldq zmm4,zmm4,4 + + vpternlogq zmm4,zmm6,zmm7,0x96 + + vmovdqu64 ZMMWORD[448+rsp],zmm4 + + vpclmulqdq zmm6,zmm5,zmm3,0x11 + vpclmulqdq zmm7,zmm5,zmm3,0x00 + vpclmulqdq zmm10,zmm5,zmm3,0x01 + vpclmulqdq zmm5,zmm5,zmm3,0x10 + vpxorq zmm5,zmm5,zmm10 + + vpsrldq zmm10,zmm5,8 + vpslldq zmm5,zmm5,8 + vpxorq zmm6,zmm6,zmm10 + vpxorq zmm5,zmm5,zmm7 + + + + vmovdqu64 zmm10,ZMMWORD[POLY2] + + vpclmulqdq zmm7,zmm10,zmm5,0x01 + vpslldq zmm7,zmm7,8 + vpxorq zmm5,zmm5,zmm7 + + + + vpclmulqdq zmm7,zmm10,zmm5,0x00 + vpsrldq zmm7,zmm7,4 + vpclmulqdq zmm5,zmm10,zmm5,0x10 + vpslldq zmm5,zmm5,4 + + vpternlogq zmm5,zmm6,zmm7,0x96 + + vmovdqu64 ZMMWORD[384+rsp],zmm5 + + vpclmulqdq zmm6,zmm4,zmm3,0x11 + vpclmulqdq zmm7,zmm4,zmm3,0x00 + vpclmulqdq zmm10,zmm4,zmm3,0x01 + vpclmulqdq zmm4,zmm4,zmm3,0x10 + vpxorq zmm4,zmm4,zmm10 + + vpsrldq zmm10,zmm4,8 + vpslldq zmm4,zmm4,8 + vpxorq zmm6,zmm6,zmm10 + vpxorq zmm4,zmm4,zmm7 + + + + vmovdqu64 zmm10,ZMMWORD[POLY2] + + vpclmulqdq zmm7,zmm10,zmm4,0x01 + vpslldq zmm7,zmm7,8 + vpxorq zmm4,zmm4,zmm7 + + + + vpclmulqdq zmm7,zmm10,zmm4,0x00 + vpsrldq zmm7,zmm7,4 + vpclmulqdq zmm4,zmm10,zmm4,0x10 + vpslldq zmm4,zmm4,4 + + vpternlogq zmm4,zmm6,zmm7,0x96 + + vmovdqu64 ZMMWORD[320+rsp],zmm4 + + vpclmulqdq zmm6,zmm5,zmm3,0x11 + vpclmulqdq zmm7,zmm5,zmm3,0x00 + vpclmulqdq zmm10,zmm5,zmm3,0x01 + vpclmulqdq zmm5,zmm5,zmm3,0x10 + vpxorq zmm5,zmm5,zmm10 + + vpsrldq zmm10,zmm5,8 + vpslldq zmm5,zmm5,8 + vpxorq zmm6,zmm6,zmm10 + vpxorq zmm5,zmm5,zmm7 + + + + vmovdqu64 zmm10,ZMMWORD[POLY2] + + vpclmulqdq zmm7,zmm10,zmm5,0x01 + vpslldq zmm7,zmm7,8 + vpxorq zmm5,zmm5,zmm7 + + + + vpclmulqdq zmm7,zmm10,zmm5,0x00 + vpsrldq zmm7,zmm7,4 + vpclmulqdq zmm5,zmm10,zmm5,0x10 + vpslldq zmm5,zmm5,4 + + vpternlogq zmm5,zmm6,zmm7,0x96 + + vmovdqu64 ZMMWORD[256+rsp],zmm5 + + vpclmulqdq zmm6,zmm4,zmm3,0x11 + vpclmulqdq zmm7,zmm4,zmm3,0x00 + vpclmulqdq zmm10,zmm4,zmm3,0x01 + vpclmulqdq zmm4,zmm4,zmm3,0x10 + vpxorq zmm4,zmm4,zmm10 + + vpsrldq zmm10,zmm4,8 + vpslldq zmm4,zmm4,8 + vpxorq zmm6,zmm6,zmm10 + vpxorq zmm4,zmm4,zmm7 + + + + vmovdqu64 zmm10,ZMMWORD[POLY2] + + vpclmulqdq zmm7,zmm10,zmm4,0x01 + vpslldq zmm7,zmm7,8 + vpxorq zmm4,zmm4,zmm7 + + + + vpclmulqdq zmm7,zmm10,zmm4,0x00 + vpsrldq zmm7,zmm7,4 + vpclmulqdq zmm4,zmm10,zmm4,0x10 + vpslldq zmm4,zmm4,4 + + vpternlogq zmm4,zmm6,zmm7,0x96 + + vmovdqu64 ZMMWORD[192+rsp],zmm4 + + vpclmulqdq zmm6,zmm5,zmm3,0x11 + vpclmulqdq zmm7,zmm5,zmm3,0x00 + vpclmulqdq zmm10,zmm5,zmm3,0x01 + vpclmulqdq zmm5,zmm5,zmm3,0x10 + vpxorq zmm5,zmm5,zmm10 + + vpsrldq zmm10,zmm5,8 + vpslldq zmm5,zmm5,8 + vpxorq zmm6,zmm6,zmm10 + vpxorq zmm5,zmm5,zmm7 + + + + vmovdqu64 zmm10,ZMMWORD[POLY2] + + vpclmulqdq zmm7,zmm10,zmm5,0x01 + vpslldq zmm7,zmm7,8 + vpxorq zmm5,zmm5,zmm7 + + + + vpclmulqdq zmm7,zmm10,zmm5,0x00 + vpsrldq zmm7,zmm7,4 + vpclmulqdq zmm5,zmm10,zmm5,0x10 + vpslldq zmm5,zmm5,4 + + vpternlogq zmm5,zmm6,zmm7,0x96 + + vmovdqu64 ZMMWORD[128+rsp],zmm5 + + vpclmulqdq zmm6,zmm4,zmm3,0x11 + vpclmulqdq zmm7,zmm4,zmm3,0x00 + vpclmulqdq zmm10,zmm4,zmm3,0x01 + vpclmulqdq zmm4,zmm4,zmm3,0x10 + vpxorq zmm4,zmm4,zmm10 + + vpsrldq zmm10,zmm4,8 + vpslldq zmm4,zmm4,8 + vpxorq zmm6,zmm6,zmm10 + vpxorq zmm4,zmm4,zmm7 + + + + vmovdqu64 zmm10,ZMMWORD[POLY2] + + vpclmulqdq zmm7,zmm10,zmm4,0x01 + vpslldq zmm7,zmm7,8 + vpxorq zmm4,zmm4,zmm7 + + + + vpclmulqdq zmm7,zmm10,zmm4,0x00 + vpsrldq zmm7,zmm7,4 + vpclmulqdq zmm4,zmm10,zmm4,0x10 + vpslldq zmm4,zmm4,4 + + vpternlogq zmm4,zmm6,zmm7,0x96 + + vmovdqu64 ZMMWORD[64+rsp],zmm4 + + vpclmulqdq zmm6,zmm5,zmm3,0x11 + vpclmulqdq zmm7,zmm5,zmm3,0x00 + vpclmulqdq zmm10,zmm5,zmm3,0x01 + vpclmulqdq zmm5,zmm5,zmm3,0x10 + vpxorq zmm5,zmm5,zmm10 + + vpsrldq zmm10,zmm5,8 + vpslldq zmm5,zmm5,8 + vpxorq zmm6,zmm6,zmm10 + vpxorq zmm5,zmm5,zmm7 + + + + vmovdqu64 zmm10,ZMMWORD[POLY2] + + vpclmulqdq zmm7,zmm10,zmm5,0x01 + vpslldq zmm7,zmm7,8 + vpxorq zmm5,zmm5,zmm7 + + + + vpclmulqdq zmm7,zmm10,zmm5,0x00 + vpsrldq zmm7,zmm7,4 + vpclmulqdq zmm5,zmm10,zmm5,0x10 + vpslldq zmm5,zmm5,4 + + vpternlogq zmm5,zmm6,zmm7,0x96 + + vmovdqu64 ZMMWORD[rsp],zmm5 +$L$_skip_hkeys_precomputation_826: + mov r14,1 + add r11,512 + sub r13,512 + + cmp r13,768 + jb NEAR $L$_no_more_big_nblocks_821 +$L$_encrypt_big_nblocks_821: + cmp r15b,240 + jae NEAR $L$_16_blocks_overflow_827 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_827 +$L$_16_blocks_overflow_827: + vpshufb zmm2,zmm2,zmm29 + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_827: + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rsp] + + + + + vshufi64x2 zmm2,zmm5,zmm5,255 + add r15b,16 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + + + + + + + + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + + vpclmulqdq zmm6,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + + vpternlogq zmm6,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + + + + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm21,ZMMWORD[192+r11*1+r9] + + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm26,zmm10,zmm15 + vpxorq zmm24,zmm6,zmm12 + vpxorq zmm25,zmm7,zmm13 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + + + + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + + + + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[192+r11*1+r10],zmm5 + vpshufb zmm0,zmm17,zmm29 + vpshufb zmm3,zmm19,zmm29 + vpshufb zmm4,zmm20,zmm29 + vpshufb zmm5,zmm21,zmm29 + vmovdqa64 ZMMWORD[1280+rsp],zmm0 + vmovdqa64 ZMMWORD[1344+rsp],zmm3 + vmovdqa64 ZMMWORD[1408+rsp],zmm4 + vmovdqa64 ZMMWORD[1472+rsp],zmm5 + cmp r15b,240 + jae NEAR $L$_16_blocks_overflow_828 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_828 +$L$_16_blocks_overflow_828: + vpshufb zmm2,zmm2,zmm29 + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_828: + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[256+rsp] + + + + + vshufi64x2 zmm2,zmm5,zmm5,255 + add r15b,16 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[320+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + + + + + + + + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + + vpclmulqdq zmm6,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[384+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[448+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + + vpternlogq zmm6,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + + + + vmovdqu8 zmm17,ZMMWORD[256+r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[320+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[384+r11*1+r9] + vmovdqu8 zmm21,ZMMWORD[448+r11*1+r9] + + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vpternlogq zmm24,zmm6,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + + + + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + + + + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[256+r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[320+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[384+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[448+r11*1+r10],zmm5 + vpshufb zmm0,zmm17,zmm29 + vpshufb zmm3,zmm19,zmm29 + vpshufb zmm4,zmm20,zmm29 + vpshufb zmm5,zmm21,zmm29 + vmovdqa64 ZMMWORD[768+rsp],zmm0 + vmovdqa64 ZMMWORD[832+rsp],zmm3 + vmovdqa64 ZMMWORD[896+rsp],zmm4 + vmovdqa64 ZMMWORD[960+rsp],zmm5 + cmp r15b,240 + jae NEAR $L$_16_blocks_overflow_829 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_829 +$L$_16_blocks_overflow_829: + vpshufb zmm2,zmm2,zmm29 + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_829: + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + + + + + vshufi64x2 zmm2,zmm5,zmm5,255 + add r15b,16 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + + + + + + + + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + + vpclmulqdq zmm6,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + + vpternlogq zmm6,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + + + + vmovdqu8 zmm17,ZMMWORD[512+r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[576+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[640+r11*1+r9] + vmovdqu8 zmm21,ZMMWORD[704+r11*1+r9] + + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + + + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpternlogq zmm6,zmm12,zmm15,0x96 + vpxorq zmm6,zmm6,zmm24 + vpternlogq zmm7,zmm13,zmm10,0x96 + vpxorq zmm7,zmm7,zmm25 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vextracti64x4 ymm12,zmm6,1 + vpxorq ymm6,ymm6,ymm12 + vextracti32x4 xmm12,ymm6,1 + vpxorq xmm6,xmm6,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm6,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + + + + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + + + + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[512+r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[576+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[640+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[704+r11*1+r10],zmm5 + vpshufb zmm0,zmm17,zmm29 + vpshufb zmm3,zmm19,zmm29 + vpshufb zmm4,zmm20,zmm29 + vpshufb zmm5,zmm21,zmm29 + vmovdqa64 ZMMWORD[1024+rsp],zmm0 + vmovdqa64 ZMMWORD[1088+rsp],zmm3 + vmovdqa64 ZMMWORD[1152+rsp],zmm4 + vmovdqa64 ZMMWORD[1216+rsp],zmm5 + vmovdqa64 zmm14,zmm6 + + add r11,768 + sub r13,768 + cmp r13,768 + jae NEAR $L$_encrypt_big_nblocks_821 + +$L$_no_more_big_nblocks_821: + + cmp r13,512 + jae NEAR $L$_encrypt_32_blocks_821 + + cmp r13,256 + jae NEAR $L$_encrypt_16_blocks_821 +$L$_encrypt_0_blocks_ghash_32_821: + mov r10d,r13d + and r10d,~15 + mov ebx,256 + sub ebx,r10d + vmovdqa64 zmm13,ZMMWORD[768+rsp] + vpxorq zmm13,zmm13,zmm14 + vmovdqu64 zmm12,ZMMWORD[rbx*1+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[832+rsp] + vmovdqu64 zmm12,ZMMWORD[64+rbx*1+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + vpxorq zmm26,zmm4,zmm10 + vpxorq zmm24,zmm0,zmm6 + vpxorq zmm25,zmm3,zmm7 + vpternlogq zmm26,zmm5,zmm11,0x96 + vmovdqa64 zmm13,ZMMWORD[896+rsp] + vmovdqu64 zmm12,ZMMWORD[128+rbx*1+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[960+rsp] + vmovdqu64 zmm12,ZMMWORD[192+rbx*1+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + + vpternlogq zmm26,zmm4,zmm10,0x96 + vpternlogq zmm24,zmm0,zmm6,0x96 + vpternlogq zmm25,zmm3,zmm7,0x96 + vpternlogq zmm26,zmm5,zmm11,0x96 + add ebx,256 + mov r10d,r13d + add r10d,15 + shr r10d,4 + je NEAR $L$_last_num_blocks_is_0_830 + + cmp r10d,8 + je NEAR $L$_last_num_blocks_is_8_830 + jb NEAR $L$_last_num_blocks_is_7_1_830 + + + cmp r10d,12 + je NEAR $L$_last_num_blocks_is_12_830 + jb NEAR $L$_last_num_blocks_is_11_9_830 + + + cmp r10d,15 + je NEAR $L$_last_num_blocks_is_15_830 + ja NEAR $L$_last_num_blocks_is_16_830 + cmp r10d,14 + je NEAR $L$_last_num_blocks_is_14_830 + jmp NEAR $L$_last_num_blocks_is_13_830 + +$L$_last_num_blocks_is_11_9_830: + + cmp r10d,10 + je NEAR $L$_last_num_blocks_is_10_830 + ja NEAR $L$_last_num_blocks_is_11_830 + jmp NEAR $L$_last_num_blocks_is_9_830 + +$L$_last_num_blocks_is_7_1_830: + cmp r10d,4 + je NEAR $L$_last_num_blocks_is_4_830 + jb NEAR $L$_last_num_blocks_is_3_1_830 + + cmp r10d,6 + ja NEAR $L$_last_num_blocks_is_7_830 + je NEAR $L$_last_num_blocks_is_6_830 + jmp NEAR $L$_last_num_blocks_is_5_830 + +$L$_last_num_blocks_is_3_1_830: + + cmp r10d,2 + ja NEAR $L$_last_num_blocks_is_3_830 + je NEAR $L$_last_num_blocks_is_2_830 +$L$_last_num_blocks_is_1_830: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,255 + jae NEAR $L$_16_blocks_overflow_831 + vpaddd xmm0,xmm2,xmm28 + jmp NEAR $L$_16_blocks_ok_831 + +$L$_16_blocks_overflow_831: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb xmm0,xmm0,xmm29 +$L$_16_blocks_ok_831: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm0,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 xmm17{k1}{z},[r11*1+r9] + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc xmm0,xmm0,xmm31 + vaesenclast xmm0,xmm0,xmm30 + vpxorq xmm0,xmm0,xmm17 + vextracti32x4 xmm11,zmm0,0 + mov r10,QWORD[120+rbp] + vmovdqu8 XMMWORD[r11*1+r10]{k1},xmm0 + vmovdqu8 zmm17{k1}{z},zmm17 + vpshufb xmm17,xmm17,xmm29 + vextracti32x4 xmm7,zmm17,0 + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_832 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm17,xmm1,0x01 + vpclmulqdq xmm5,xmm17,xmm1,0x10 + vpclmulqdq xmm0,xmm17,xmm1,0x11 + vpclmulqdq xmm3,xmm17,xmm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_832 +$L$_small_initial_partial_block_832: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + + + vpsrldq zmm0,zmm26,8 + vpslldq zmm3,zmm26,8 + vpxorq zmm24,zmm24,zmm0 + vpxorq zmm25,zmm25,zmm3 + vextracti64x4 ymm0,zmm24,1 + vpxorq ymm24,ymm24,ymm0 + vextracti32x4 xmm0,ymm24,1 + vpxorq xmm24,xmm24,xmm0 + vextracti64x4 ymm3,zmm25,1 + vpxorq ymm25,ymm25,ymm3 + vextracti32x4 xmm3,ymm25,1 + vpxorq xmm25,xmm25,xmm3 + vmovdqa64 xmm0,XMMWORD[POLY2] + + + vpclmulqdq xmm3,xmm0,xmm25,0x01 + vpslldq xmm3,xmm3,8 + vpxorq xmm3,xmm25,xmm3 + + + vpclmulqdq xmm4,xmm0,xmm3,0x00 + vpsrldq xmm4,xmm4,4 + vpclmulqdq xmm14,xmm0,xmm3,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm4,xmm24,0x96 + + + + + + + + + + + + + vpxorq xmm14,xmm14,xmm7 + + jmp NEAR $L$_after_reduction_832 +$L$_small_initial_compute_done_832: +$L$_after_reduction_832: + jmp NEAR $L$_last_blocks_done_830 +$L$_last_num_blocks_is_2_830: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,254 + jae NEAR $L$_16_blocks_overflow_833 + vpaddd ymm0,ymm2,ymm28 + jmp NEAR $L$_16_blocks_ok_833 + +$L$_16_blocks_overflow_833: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb ymm0,ymm0,ymm29 +$L$_16_blocks_ok_833: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm0,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 ymm17{k1}{z},[r11*1+r9] + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc ymm0,ymm0,ymm31 + vaesenclast ymm0,ymm0,ymm30 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm11,zmm0,1 + mov r10,QWORD[120+rbp] + vmovdqu8 YMMWORD[r11*1+r10]{k1},ymm0 + vmovdqu8 zmm17{k1}{z},zmm17 + vpshufb ymm17,ymm17,ymm29 + vextracti32x4 xmm7,zmm17,1 + sub r13,16 * (2 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_834 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm17,ymm1,0x01 + vpclmulqdq ymm5,ymm17,ymm1,0x10 + vpclmulqdq ymm0,ymm17,ymm1,0x11 + vpclmulqdq ymm3,ymm17,ymm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_834 +$L$_small_initial_partial_block_834: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm17,xmm1,0x01 + vpclmulqdq xmm5,xmm17,xmm1,0x10 + vpclmulqdq xmm0,xmm17,xmm1,0x11 + vpclmulqdq xmm3,xmm17,xmm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_834: + + or r13,r13 + je NEAR $L$_after_reduction_834 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_834: + jmp NEAR $L$_last_blocks_done_830 +$L$_last_num_blocks_is_3_830: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,253 + jae NEAR $L$_16_blocks_overflow_835 + vpaddd zmm0,zmm2,zmm28 + jmp NEAR $L$_16_blocks_ok_835 + +$L$_16_blocks_overflow_835: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb zmm0,zmm0,zmm29 +$L$_16_blocks_ok_835: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm0,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17{k1}{z},[r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vpxorq zmm0,zmm0,zmm17 + vextracti32x4 xmm11,zmm0,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10]{k1},zmm0 + vmovdqu8 zmm17{k1}{z},zmm17 + vpshufb zmm17,zmm17,zmm29 + vextracti32x4 xmm7,zmm17,2 + sub r13,16 * (3 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_836 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_836 +$L$_small_initial_partial_block_836: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm17,ymm1,0x01 + vpclmulqdq ymm5,ymm17,ymm1,0x10 + vpclmulqdq ymm0,ymm17,ymm1,0x11 + vpclmulqdq ymm3,ymm17,ymm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_836: + + or r13,r13 + je NEAR $L$_after_reduction_836 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_836: + jmp NEAR $L$_last_blocks_done_830 +$L$_last_num_blocks_is_4_830: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,252 + jae NEAR $L$_16_blocks_overflow_837 + vpaddd zmm0,zmm2,zmm28 + jmp NEAR $L$_16_blocks_ok_837 + +$L$_16_blocks_overflow_837: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb zmm0,zmm0,zmm29 +$L$_16_blocks_ok_837: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm0,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17{k1}{z},[r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vpxorq zmm0,zmm0,zmm17 + vextracti32x4 xmm11,zmm0,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10]{k1},zmm0 + vmovdqu8 zmm17{k1}{z},zmm17 + vpshufb zmm17,zmm17,zmm29 + vextracti32x4 xmm7,zmm17,3 + sub r13,16 * (4 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_838 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_838 +$L$_small_initial_partial_block_838: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_838: + + or r13,r13 + je NEAR $L$_after_reduction_838 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_838: + jmp NEAR $L$_last_blocks_done_830 +$L$_last_num_blocks_is_5_830: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,251 + jae NEAR $L$_16_blocks_overflow_839 + vpaddd zmm0,zmm2,zmm28 + vpaddd xmm3,xmm0,xmm27 + jmp NEAR $L$_16_blocks_ok_839 + +$L$_16_blocks_overflow_839: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb xmm3,xmm3,xmm29 +$L$_16_blocks_ok_839: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm3,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 xmm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast xmm3,xmm3,xmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq xmm3,xmm3,xmm19 + vextracti32x4 xmm11,zmm3,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 XMMWORD[64+r11*1+r10]{k1},xmm3 + vmovdqu8 zmm19{k1}{z},zmm19 + vpshufb zmm17,zmm17,zmm29 + vpshufb xmm19,xmm19,xmm29 + vextracti32x4 xmm7,zmm19,0 + sub r13,16 * (5 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_840 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm19,xmm1,0x01 + vpclmulqdq xmm5,xmm19,xmm1,0x10 + vpclmulqdq xmm0,xmm19,xmm1,0x11 + vpclmulqdq xmm3,xmm19,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_840 +$L$_small_initial_partial_block_840: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_840: + + or r13,r13 + je NEAR $L$_after_reduction_840 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_840: + jmp NEAR $L$_last_blocks_done_830 +$L$_last_num_blocks_is_6_830: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,250 + jae NEAR $L$_16_blocks_overflow_841 + vpaddd zmm0,zmm2,zmm28 + vpaddd ymm3,ymm0,ymm27 + jmp NEAR $L$_16_blocks_ok_841 + +$L$_16_blocks_overflow_841: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb ymm3,ymm3,ymm29 +$L$_16_blocks_ok_841: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm3,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 ymm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast ymm3,ymm3,ymm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm11,zmm3,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 YMMWORD[64+r11*1+r10]{k1},ymm3 + vmovdqu8 zmm19{k1}{z},zmm19 + vpshufb zmm17,zmm17,zmm29 + vpshufb ymm19,ymm19,ymm29 + vextracti32x4 xmm7,zmm19,1 + sub r13,16 * (6 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_842 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm19,ymm1,0x01 + vpclmulqdq ymm5,ymm19,ymm1,0x10 + vpclmulqdq ymm0,ymm19,ymm1,0x11 + vpclmulqdq ymm3,ymm19,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_842 +$L$_small_initial_partial_block_842: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm19,xmm1,0x01 + vpclmulqdq xmm5,xmm19,xmm1,0x10 + vpclmulqdq xmm0,xmm19,xmm1,0x11 + vpclmulqdq xmm3,xmm19,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_842: + + or r13,r13 + je NEAR $L$_after_reduction_842 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_842: + jmp NEAR $L$_last_blocks_done_830 +$L$_last_num_blocks_is_7_830: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,249 + jae NEAR $L$_16_blocks_overflow_843 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + jmp NEAR $L$_16_blocks_ok_843 + +$L$_16_blocks_overflow_843: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 +$L$_16_blocks_ok_843: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm3,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti32x4 xmm11,zmm3,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10]{k1},zmm3 + vmovdqu8 zmm19{k1}{z},zmm19 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vextracti32x4 xmm7,zmm19,2 + sub r13,16 * (7 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_844 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm19,zmm1,0x01 + vpclmulqdq zmm5,zmm19,zmm1,0x10 + vpclmulqdq zmm0,zmm19,zmm1,0x11 + vpclmulqdq zmm3,zmm19,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_844 +$L$_small_initial_partial_block_844: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm19,ymm1,0x01 + vpclmulqdq ymm5,ymm19,ymm1,0x10 + vpclmulqdq ymm0,ymm19,ymm1,0x11 + vpclmulqdq ymm3,ymm19,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_844: + + or r13,r13 + je NEAR $L$_after_reduction_844 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_844: + jmp NEAR $L$_last_blocks_done_830 +$L$_last_num_blocks_is_8_830: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,248 + jae NEAR $L$_16_blocks_overflow_845 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + jmp NEAR $L$_16_blocks_ok_845 + +$L$_16_blocks_overflow_845: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 +$L$_16_blocks_ok_845: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm3,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti32x4 xmm11,zmm3,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10]{k1},zmm3 + vmovdqu8 zmm19{k1}{z},zmm19 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vextracti32x4 xmm7,zmm19,3 + sub r13,16 * (8 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_846 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_846 +$L$_small_initial_partial_block_846: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm19,zmm1,0x01 + vpclmulqdq zmm5,zmm19,zmm1,0x10 + vpclmulqdq zmm0,zmm19,zmm1,0x11 + vpclmulqdq zmm3,zmm19,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_846: + + or r13,r13 + je NEAR $L$_after_reduction_846 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_846: + jmp NEAR $L$_last_blocks_done_830 +$L$_last_num_blocks_is_9_830: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,247 + jae NEAR $L$_16_blocks_overflow_847 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd xmm4,xmm3,xmm27 + jmp NEAR $L$_16_blocks_ok_847 + +$L$_16_blocks_overflow_847: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb xmm4,xmm4,xmm29 +$L$_16_blocks_ok_847: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm4,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 xmm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast xmm4,xmm4,xmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq xmm4,xmm4,xmm20 + vextracti32x4 xmm11,zmm4,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 XMMWORD[128+r11*1+r10]{k1},xmm4 + vmovdqu8 zmm20{k1}{z},zmm20 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb xmm20,xmm20,xmm29 + vextracti32x4 xmm7,zmm20,0 + sub r13,16 * (9 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_848 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm20,xmm1,0x01 + vpclmulqdq xmm5,xmm20,xmm1,0x10 + vpclmulqdq xmm0,xmm20,xmm1,0x11 + vpclmulqdq xmm3,xmm20,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_848 +$L$_small_initial_partial_block_848: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_848: + + or r13,r13 + je NEAR $L$_after_reduction_848 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_848: + jmp NEAR $L$_last_blocks_done_830 +$L$_last_num_blocks_is_10_830: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,246 + jae NEAR $L$_16_blocks_overflow_849 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd ymm4,ymm3,ymm27 + jmp NEAR $L$_16_blocks_ok_849 + +$L$_16_blocks_overflow_849: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb ymm4,ymm4,ymm29 +$L$_16_blocks_ok_849: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm4,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 ymm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast ymm4,ymm4,ymm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq ymm4,ymm4,ymm20 + vextracti32x4 xmm11,zmm4,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 YMMWORD[128+r11*1+r10]{k1},ymm4 + vmovdqu8 zmm20{k1}{z},zmm20 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb ymm20,ymm20,ymm29 + vextracti32x4 xmm7,zmm20,1 + sub r13,16 * (10 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_850 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm20,ymm1,0x01 + vpclmulqdq ymm5,ymm20,ymm1,0x10 + vpclmulqdq ymm0,ymm20,ymm1,0x11 + vpclmulqdq ymm3,ymm20,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_850 +$L$_small_initial_partial_block_850: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm20,xmm1,0x01 + vpclmulqdq xmm5,xmm20,xmm1,0x10 + vpclmulqdq xmm0,xmm20,xmm1,0x11 + vpclmulqdq xmm3,xmm20,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_850: + + or r13,r13 + je NEAR $L$_after_reduction_850 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_850: + jmp NEAR $L$_last_blocks_done_830 +$L$_last_num_blocks_is_11_830: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,245 + jae NEAR $L$_16_blocks_overflow_851 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + jmp NEAR $L$_16_blocks_ok_851 + +$L$_16_blocks_overflow_851: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 +$L$_16_blocks_ok_851: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm4,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vextracti32x4 xmm11,zmm4,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10]{k1},zmm4 + vmovdqu8 zmm20{k1}{z},zmm20 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb zmm20,zmm20,zmm29 + vextracti32x4 xmm7,zmm20,2 + sub r13,16 * (11 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_852 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm20,zmm1,0x01 + vpclmulqdq zmm5,zmm20,zmm1,0x10 + vpclmulqdq zmm0,zmm20,zmm1,0x11 + vpclmulqdq zmm3,zmm20,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_852 +$L$_small_initial_partial_block_852: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm20,ymm1,0x01 + vpclmulqdq ymm5,ymm20,ymm1,0x10 + vpclmulqdq ymm0,ymm20,ymm1,0x11 + vpclmulqdq ymm3,ymm20,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_852: + + or r13,r13 + je NEAR $L$_after_reduction_852 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_852: + jmp NEAR $L$_last_blocks_done_830 +$L$_last_num_blocks_is_12_830: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,244 + jae NEAR $L$_16_blocks_overflow_853 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + jmp NEAR $L$_16_blocks_ok_853 + +$L$_16_blocks_overflow_853: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 +$L$_16_blocks_ok_853: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm4,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vextracti32x4 xmm11,zmm4,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10]{k1},zmm4 + vmovdqu8 zmm20{k1}{z},zmm20 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb zmm20,zmm20,zmm29 + vextracti32x4 xmm7,zmm20,3 + sub r13,16 * (12 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_854 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[160+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_854 +$L$_small_initial_partial_block_854: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm20,zmm1,0x01 + vpclmulqdq zmm5,zmm20,zmm1,0x10 + vpclmulqdq zmm0,zmm20,zmm1,0x11 + vpclmulqdq zmm3,zmm20,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_854: + + or r13,r13 + je NEAR $L$_after_reduction_854 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_854: + jmp NEAR $L$_last_blocks_done_830 +$L$_last_num_blocks_is_13_830: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,243 + jae NEAR $L$_16_blocks_overflow_855 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd xmm5,xmm4,xmm27 + jmp NEAR $L$_16_blocks_ok_855 + +$L$_16_blocks_overflow_855: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb xmm5,xmm5,xmm29 +$L$_16_blocks_ok_855: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm5,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 xmm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast xmm5,xmm5,xmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq xmm5,xmm5,xmm21 + vextracti32x4 xmm11,zmm5,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 XMMWORD[192+r11*1+r10]{k1},xmm5 + vmovdqu8 zmm21{k1}{z},zmm21 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb zmm20,zmm20,zmm29 + vpshufb xmm21,xmm21,xmm29 + vextracti32x4 xmm7,zmm21,0 + sub r13,16 * (13 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_856 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[144+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm21,xmm1,0x01 + vpclmulqdq xmm5,xmm21,xmm1,0x10 + vpclmulqdq xmm0,xmm21,xmm1,0x11 + vpclmulqdq xmm3,xmm21,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_856 +$L$_small_initial_partial_block_856: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[160+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_856: + + or r13,r13 + je NEAR $L$_after_reduction_856 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_856: + jmp NEAR $L$_last_blocks_done_830 +$L$_last_num_blocks_is_14_830: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,242 + jae NEAR $L$_16_blocks_overflow_857 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd ymm5,ymm4,ymm27 + jmp NEAR $L$_16_blocks_ok_857 + +$L$_16_blocks_overflow_857: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb ymm5,ymm5,ymm29 +$L$_16_blocks_ok_857: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm5,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 ymm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast ymm5,ymm5,ymm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq ymm5,ymm5,ymm21 + vextracti32x4 xmm11,zmm5,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 YMMWORD[192+r11*1+r10]{k1},ymm5 + vmovdqu8 zmm21{k1}{z},zmm21 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb zmm20,zmm20,zmm29 + vpshufb ymm21,ymm21,ymm29 + vextracti32x4 xmm7,zmm21,1 + sub r13,16 * (14 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_858 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[128+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm21,ymm1,0x01 + vpclmulqdq ymm5,ymm21,ymm1,0x10 + vpclmulqdq ymm0,ymm21,ymm1,0x11 + vpclmulqdq ymm3,ymm21,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_858 +$L$_small_initial_partial_block_858: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[144+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm21,xmm1,0x01 + vpclmulqdq xmm5,xmm21,xmm1,0x10 + vpclmulqdq xmm0,xmm21,xmm1,0x11 + vpclmulqdq xmm3,xmm21,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_858: + + or r13,r13 + je NEAR $L$_after_reduction_858 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_858: + jmp NEAR $L$_last_blocks_done_830 +$L$_last_num_blocks_is_15_830: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,241 + jae NEAR $L$_16_blocks_overflow_859 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_859 + +$L$_16_blocks_overflow_859: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_859: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm5,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + vextracti32x4 xmm11,zmm5,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[192+r11*1+r10]{k1},zmm5 + vmovdqu8 zmm21{k1}{z},zmm21 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb zmm20,zmm20,zmm29 + vpshufb zmm21,zmm21,zmm29 + vextracti32x4 xmm7,zmm21,2 + sub r13,16 * (15 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_860 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[112+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm21,zmm1,0x01 + vpclmulqdq zmm5,zmm21,zmm1,0x10 + vpclmulqdq zmm0,zmm21,zmm1,0x11 + vpclmulqdq zmm3,zmm21,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_860 +$L$_small_initial_partial_block_860: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[128+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm21,ymm1,0x01 + vpclmulqdq ymm5,ymm21,ymm1,0x10 + vpclmulqdq ymm0,ymm21,ymm1,0x11 + vpclmulqdq ymm3,ymm21,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_860: + + or r13,r13 + je NEAR $L$_after_reduction_860 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_860: + jmp NEAR $L$_last_blocks_done_830 +$L$_last_num_blocks_is_16_830: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,240 + jae NEAR $L$_16_blocks_overflow_861 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_861 + +$L$_16_blocks_overflow_861: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_861: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm5,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm24,zmm14,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + vextracti32x4 xmm11,zmm5,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[192+r11*1+r10]{k1},zmm5 + vmovdqu8 zmm21{k1}{z},zmm21 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb zmm20,zmm20,zmm29 + vpshufb zmm21,zmm21,zmm29 + vextracti32x4 xmm7,zmm21,3 + sub r13,16 * (16 - 1) +$L$_small_initial_partial_block_862: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[112+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm21,zmm1,0x01 + vpclmulqdq zmm5,zmm21,zmm1,0x10 + vpclmulqdq zmm0,zmm21,zmm1,0x11 + vpclmulqdq zmm3,zmm21,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_862: + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_862: + jmp NEAR $L$_last_blocks_done_830 +$L$_last_num_blocks_is_0_830: + vmovdqa64 zmm13,ZMMWORD[1024+rsp] + vmovdqu64 zmm12,ZMMWORD[rbx*1+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[1088+rsp] + vmovdqu64 zmm12,ZMMWORD[64+rbx*1+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + vpternlogq zmm26,zmm4,zmm10,0x96 + vpternlogq zmm24,zmm0,zmm6,0x96 + vpternlogq zmm25,zmm3,zmm7,0x96 + vpternlogq zmm26,zmm5,zmm11,0x96 + vmovdqa64 zmm13,ZMMWORD[1152+rsp] + vmovdqu64 zmm12,ZMMWORD[128+rbx*1+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[1216+rsp] + vmovdqu64 zmm12,ZMMWORD[192+rbx*1+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + + vpternlogq zmm26,zmm4,zmm10,0x96 + vpternlogq zmm24,zmm0,zmm6,0x96 + vpternlogq zmm25,zmm3,zmm7,0x96 + vpternlogq zmm26,zmm5,zmm11,0x96 + + vpsrldq zmm0,zmm26,8 + vpslldq zmm3,zmm26,8 + vpxorq zmm24,zmm24,zmm0 + vpxorq zmm25,zmm25,zmm3 + vextracti64x4 ymm0,zmm24,1 + vpxorq ymm24,ymm24,ymm0 + vextracti32x4 xmm0,ymm24,1 + vpxorq xmm24,xmm24,xmm0 + vextracti64x4 ymm3,zmm25,1 + vpxorq ymm25,ymm25,ymm3 + vextracti32x4 xmm3,ymm25,1 + vpxorq xmm25,xmm25,xmm3 + vmovdqa64 xmm4,XMMWORD[POLY2] + + + vpclmulqdq xmm0,xmm4,xmm25,0x01 + vpslldq xmm0,xmm0,8 + vpxorq xmm0,xmm25,xmm0 + + + vpclmulqdq xmm3,xmm4,xmm0,0x00 + vpsrldq xmm3,xmm3,4 + vpclmulqdq xmm14,xmm4,xmm0,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm3,xmm24,0x96 + +$L$_last_blocks_done_830: + vpshufb xmm2,xmm2,xmm29 + jmp NEAR $L$_ghash_done_821 +$L$_encrypt_32_blocks_821: + cmp r15b,240 + jae NEAR $L$_16_blocks_overflow_863 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_863 +$L$_16_blocks_overflow_863: + vpshufb zmm2,zmm2,zmm29 + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_863: + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rsp] + + + + + vshufi64x2 zmm2,zmm5,zmm5,255 + add r15b,16 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + + + + + + + + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + + vpclmulqdq zmm6,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + + vpternlogq zmm6,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + + + + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm21,ZMMWORD[192+r11*1+r9] + + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm26,zmm10,zmm15 + vpxorq zmm24,zmm6,zmm12 + vpxorq zmm25,zmm7,zmm13 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + + + + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + + + + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[192+r11*1+r10],zmm5 + vpshufb zmm0,zmm17,zmm29 + vpshufb zmm3,zmm19,zmm29 + vpshufb zmm4,zmm20,zmm29 + vpshufb zmm5,zmm21,zmm29 + vmovdqa64 ZMMWORD[1280+rsp],zmm0 + vmovdqa64 ZMMWORD[1344+rsp],zmm3 + vmovdqa64 ZMMWORD[1408+rsp],zmm4 + vmovdqa64 ZMMWORD[1472+rsp],zmm5 + cmp r15b,240 + jae NEAR $L$_16_blocks_overflow_864 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_864 +$L$_16_blocks_overflow_864: + vpshufb zmm2,zmm2,zmm29 + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_864: + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1024+rsp] + vmovdqu64 zmm1,ZMMWORD[256+rsp] + + + + + vshufi64x2 zmm2,zmm5,zmm5,255 + add r15b,16 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[320+rsp] + vmovdqa64 zmm22,ZMMWORD[1088+rsp] + + + + + + + + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + + vpclmulqdq zmm6,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[384+rsp] + vmovdqa64 zmm8,ZMMWORD[1152+rsp] + + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[448+rsp] + vmovdqa64 zmm22,ZMMWORD[1216+rsp] + + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + + vpternlogq zmm6,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + + + + vmovdqu8 zmm17,ZMMWORD[256+r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[320+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[384+r11*1+r9] + vmovdqu8 zmm21,ZMMWORD[448+r11*1+r9] + + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm26,zmm10,zmm15,0x96 + vpternlogq zmm24,zmm6,zmm12,0x96 + vpternlogq zmm25,zmm7,zmm13,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + + + + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + + + + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[256+r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[320+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[384+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[448+r11*1+r10],zmm5 + vpshufb zmm0,zmm17,zmm29 + vpshufb zmm3,zmm19,zmm29 + vpshufb zmm4,zmm20,zmm29 + vpshufb zmm5,zmm21,zmm29 + vmovdqa64 ZMMWORD[768+rsp],zmm0 + vmovdqa64 ZMMWORD[832+rsp],zmm3 + vmovdqa64 ZMMWORD[896+rsp],zmm4 + vmovdqa64 ZMMWORD[960+rsp],zmm5 + vmovdqa64 zmm13,ZMMWORD[1280+rsp] + vmovdqu64 zmm12,ZMMWORD[512+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[1344+rsp] + vmovdqu64 zmm12,ZMMWORD[576+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + vpternlogq zmm26,zmm4,zmm10,0x96 + vpternlogq zmm24,zmm0,zmm6,0x96 + vpternlogq zmm25,zmm3,zmm7,0x96 + vpternlogq zmm26,zmm5,zmm11,0x96 + vmovdqa64 zmm13,ZMMWORD[1408+rsp] + vmovdqu64 zmm12,ZMMWORD[640+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[1472+rsp] + vmovdqu64 zmm12,ZMMWORD[704+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + + vpternlogq zmm26,zmm4,zmm10,0x96 + vpternlogq zmm24,zmm0,zmm6,0x96 + vpternlogq zmm25,zmm3,zmm7,0x96 + vpternlogq zmm26,zmm5,zmm11,0x96 + + vpsrldq zmm0,zmm26,8 + vpslldq zmm3,zmm26,8 + vpxorq zmm24,zmm24,zmm0 + vpxorq zmm25,zmm25,zmm3 + vextracti64x4 ymm0,zmm24,1 + vpxorq ymm24,ymm24,ymm0 + vextracti32x4 xmm0,ymm24,1 + vpxorq xmm24,xmm24,xmm0 + vextracti64x4 ymm3,zmm25,1 + vpxorq ymm25,ymm25,ymm3 + vextracti32x4 xmm3,ymm25,1 + vpxorq xmm25,xmm25,xmm3 + vmovdqa64 xmm4,XMMWORD[POLY2] + + + vpclmulqdq xmm0,xmm4,xmm25,0x01 + vpslldq xmm0,xmm0,8 + vpxorq xmm0,xmm25,xmm0 + + + vpclmulqdq xmm3,xmm4,xmm0,0x00 + vpsrldq xmm3,xmm3,4 + vpclmulqdq xmm14,xmm4,xmm0,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm3,xmm24,0x96 + + sub r13,512 + add r11,512 + mov r10d,r13d + and r10d,~15 + mov ebx,512 + sub ebx,r10d + mov r10d,r13d + add r10d,15 + shr r10d,4 + je NEAR $L$_last_num_blocks_is_0_865 + + cmp r10d,8 + je NEAR $L$_last_num_blocks_is_8_865 + jb NEAR $L$_last_num_blocks_is_7_1_865 + + + cmp r10d,12 + je NEAR $L$_last_num_blocks_is_12_865 + jb NEAR $L$_last_num_blocks_is_11_9_865 + + + cmp r10d,15 + je NEAR $L$_last_num_blocks_is_15_865 + ja NEAR $L$_last_num_blocks_is_16_865 + cmp r10d,14 + je NEAR $L$_last_num_blocks_is_14_865 + jmp NEAR $L$_last_num_blocks_is_13_865 + +$L$_last_num_blocks_is_11_9_865: + + cmp r10d,10 + je NEAR $L$_last_num_blocks_is_10_865 + ja NEAR $L$_last_num_blocks_is_11_865 + jmp NEAR $L$_last_num_blocks_is_9_865 + +$L$_last_num_blocks_is_7_1_865: + cmp r10d,4 + je NEAR $L$_last_num_blocks_is_4_865 + jb NEAR $L$_last_num_blocks_is_3_1_865 + + cmp r10d,6 + ja NEAR $L$_last_num_blocks_is_7_865 + je NEAR $L$_last_num_blocks_is_6_865 + jmp NEAR $L$_last_num_blocks_is_5_865 + +$L$_last_num_blocks_is_3_1_865: + + cmp r10d,2 + ja NEAR $L$_last_num_blocks_is_3_865 + je NEAR $L$_last_num_blocks_is_2_865 +$L$_last_num_blocks_is_1_865: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,255 + jae NEAR $L$_16_blocks_overflow_866 + vpaddd xmm0,xmm2,xmm28 + jmp NEAR $L$_16_blocks_ok_866 + +$L$_16_blocks_overflow_866: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb xmm0,xmm0,xmm29 +$L$_16_blocks_ok_866: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm0,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 xmm17{k1}{z},[r11*1+r9] + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc xmm0,xmm0,xmm31 + vaesenclast xmm0,xmm0,xmm30 + vpxorq xmm0,xmm0,xmm17 + vextracti32x4 xmm11,zmm0,0 + mov r10,QWORD[120+rbp] + vmovdqu8 XMMWORD[r11*1+r10]{k1},xmm0 + vmovdqu8 zmm17{k1}{z},zmm17 + vpshufb xmm17,xmm17,xmm29 + vextracti32x4 xmm7,zmm17,0 + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_867 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm17,xmm1,0x01 + vpclmulqdq xmm5,xmm17,xmm1,0x10 + vpclmulqdq xmm0,xmm17,xmm1,0x11 + vpclmulqdq xmm3,xmm17,xmm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_867 +$L$_small_initial_partial_block_867: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + + + vpsrldq zmm0,zmm26,8 + vpslldq zmm3,zmm26,8 + vpxorq zmm24,zmm24,zmm0 + vpxorq zmm25,zmm25,zmm3 + vextracti64x4 ymm0,zmm24,1 + vpxorq ymm24,ymm24,ymm0 + vextracti32x4 xmm0,ymm24,1 + vpxorq xmm24,xmm24,xmm0 + vextracti64x4 ymm3,zmm25,1 + vpxorq ymm25,ymm25,ymm3 + vextracti32x4 xmm3,ymm25,1 + vpxorq xmm25,xmm25,xmm3 + vmovdqa64 xmm0,XMMWORD[POLY2] + + + vpclmulqdq xmm3,xmm0,xmm25,0x01 + vpslldq xmm3,xmm3,8 + vpxorq xmm3,xmm25,xmm3 + + + vpclmulqdq xmm4,xmm0,xmm3,0x00 + vpsrldq xmm4,xmm4,4 + vpclmulqdq xmm14,xmm0,xmm3,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm4,xmm24,0x96 + + + + + + + + + + + + + vpxorq xmm14,xmm14,xmm7 + + jmp NEAR $L$_after_reduction_867 +$L$_small_initial_compute_done_867: +$L$_after_reduction_867: + jmp NEAR $L$_last_blocks_done_865 +$L$_last_num_blocks_is_2_865: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,254 + jae NEAR $L$_16_blocks_overflow_868 + vpaddd ymm0,ymm2,ymm28 + jmp NEAR $L$_16_blocks_ok_868 + +$L$_16_blocks_overflow_868: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb ymm0,ymm0,ymm29 +$L$_16_blocks_ok_868: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm0,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 ymm17{k1}{z},[r11*1+r9] + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc ymm0,ymm0,ymm31 + vaesenclast ymm0,ymm0,ymm30 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm11,zmm0,1 + mov r10,QWORD[120+rbp] + vmovdqu8 YMMWORD[r11*1+r10]{k1},ymm0 + vmovdqu8 zmm17{k1}{z},zmm17 + vpshufb ymm17,ymm17,ymm29 + vextracti32x4 xmm7,zmm17,1 + sub r13,16 * (2 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_869 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm17,ymm1,0x01 + vpclmulqdq ymm5,ymm17,ymm1,0x10 + vpclmulqdq ymm0,ymm17,ymm1,0x11 + vpclmulqdq ymm3,ymm17,ymm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_869 +$L$_small_initial_partial_block_869: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm17,xmm1,0x01 + vpclmulqdq xmm5,xmm17,xmm1,0x10 + vpclmulqdq xmm0,xmm17,xmm1,0x11 + vpclmulqdq xmm3,xmm17,xmm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_869: + + or r13,r13 + je NEAR $L$_after_reduction_869 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_869: + jmp NEAR $L$_last_blocks_done_865 +$L$_last_num_blocks_is_3_865: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,253 + jae NEAR $L$_16_blocks_overflow_870 + vpaddd zmm0,zmm2,zmm28 + jmp NEAR $L$_16_blocks_ok_870 + +$L$_16_blocks_overflow_870: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb zmm0,zmm0,zmm29 +$L$_16_blocks_ok_870: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm0,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17{k1}{z},[r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vpxorq zmm0,zmm0,zmm17 + vextracti32x4 xmm11,zmm0,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10]{k1},zmm0 + vmovdqu8 zmm17{k1}{z},zmm17 + vpshufb zmm17,zmm17,zmm29 + vextracti32x4 xmm7,zmm17,2 + sub r13,16 * (3 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_871 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_871 +$L$_small_initial_partial_block_871: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm17,ymm1,0x01 + vpclmulqdq ymm5,ymm17,ymm1,0x10 + vpclmulqdq ymm0,ymm17,ymm1,0x11 + vpclmulqdq ymm3,ymm17,ymm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_871: + + or r13,r13 + je NEAR $L$_after_reduction_871 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_871: + jmp NEAR $L$_last_blocks_done_865 +$L$_last_num_blocks_is_4_865: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,252 + jae NEAR $L$_16_blocks_overflow_872 + vpaddd zmm0,zmm2,zmm28 + jmp NEAR $L$_16_blocks_ok_872 + +$L$_16_blocks_overflow_872: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb zmm0,zmm0,zmm29 +$L$_16_blocks_ok_872: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm0,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17{k1}{z},[r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vpxorq zmm0,zmm0,zmm17 + vextracti32x4 xmm11,zmm0,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10]{k1},zmm0 + vmovdqu8 zmm17{k1}{z},zmm17 + vpshufb zmm17,zmm17,zmm29 + vextracti32x4 xmm7,zmm17,3 + sub r13,16 * (4 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_873 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_873 +$L$_small_initial_partial_block_873: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_873: + + or r13,r13 + je NEAR $L$_after_reduction_873 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_873: + jmp NEAR $L$_last_blocks_done_865 +$L$_last_num_blocks_is_5_865: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,251 + jae NEAR $L$_16_blocks_overflow_874 + vpaddd zmm0,zmm2,zmm28 + vpaddd xmm3,xmm0,xmm27 + jmp NEAR $L$_16_blocks_ok_874 + +$L$_16_blocks_overflow_874: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb xmm3,xmm3,xmm29 +$L$_16_blocks_ok_874: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm3,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 xmm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast xmm3,xmm3,xmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq xmm3,xmm3,xmm19 + vextracti32x4 xmm11,zmm3,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 XMMWORD[64+r11*1+r10]{k1},xmm3 + vmovdqu8 zmm19{k1}{z},zmm19 + vpshufb zmm17,zmm17,zmm29 + vpshufb xmm19,xmm19,xmm29 + vextracti32x4 xmm7,zmm19,0 + sub r13,16 * (5 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_875 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm19,xmm1,0x01 + vpclmulqdq xmm5,xmm19,xmm1,0x10 + vpclmulqdq xmm0,xmm19,xmm1,0x11 + vpclmulqdq xmm3,xmm19,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_875 +$L$_small_initial_partial_block_875: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_875: + + or r13,r13 + je NEAR $L$_after_reduction_875 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_875: + jmp NEAR $L$_last_blocks_done_865 +$L$_last_num_blocks_is_6_865: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,250 + jae NEAR $L$_16_blocks_overflow_876 + vpaddd zmm0,zmm2,zmm28 + vpaddd ymm3,ymm0,ymm27 + jmp NEAR $L$_16_blocks_ok_876 + +$L$_16_blocks_overflow_876: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb ymm3,ymm3,ymm29 +$L$_16_blocks_ok_876: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm3,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 ymm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast ymm3,ymm3,ymm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm11,zmm3,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 YMMWORD[64+r11*1+r10]{k1},ymm3 + vmovdqu8 zmm19{k1}{z},zmm19 + vpshufb zmm17,zmm17,zmm29 + vpshufb ymm19,ymm19,ymm29 + vextracti32x4 xmm7,zmm19,1 + sub r13,16 * (6 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_877 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm19,ymm1,0x01 + vpclmulqdq ymm5,ymm19,ymm1,0x10 + vpclmulqdq ymm0,ymm19,ymm1,0x11 + vpclmulqdq ymm3,ymm19,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_877 +$L$_small_initial_partial_block_877: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm19,xmm1,0x01 + vpclmulqdq xmm5,xmm19,xmm1,0x10 + vpclmulqdq xmm0,xmm19,xmm1,0x11 + vpclmulqdq xmm3,xmm19,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_877: + + or r13,r13 + je NEAR $L$_after_reduction_877 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_877: + jmp NEAR $L$_last_blocks_done_865 +$L$_last_num_blocks_is_7_865: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,249 + jae NEAR $L$_16_blocks_overflow_878 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + jmp NEAR $L$_16_blocks_ok_878 + +$L$_16_blocks_overflow_878: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 +$L$_16_blocks_ok_878: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm3,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti32x4 xmm11,zmm3,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10]{k1},zmm3 + vmovdqu8 zmm19{k1}{z},zmm19 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vextracti32x4 xmm7,zmm19,2 + sub r13,16 * (7 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_879 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm19,zmm1,0x01 + vpclmulqdq zmm5,zmm19,zmm1,0x10 + vpclmulqdq zmm0,zmm19,zmm1,0x11 + vpclmulqdq zmm3,zmm19,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_879 +$L$_small_initial_partial_block_879: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm19,ymm1,0x01 + vpclmulqdq ymm5,ymm19,ymm1,0x10 + vpclmulqdq ymm0,ymm19,ymm1,0x11 + vpclmulqdq ymm3,ymm19,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_879: + + or r13,r13 + je NEAR $L$_after_reduction_879 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_879: + jmp NEAR $L$_last_blocks_done_865 +$L$_last_num_blocks_is_8_865: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,248 + jae NEAR $L$_16_blocks_overflow_880 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + jmp NEAR $L$_16_blocks_ok_880 + +$L$_16_blocks_overflow_880: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 +$L$_16_blocks_ok_880: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm3,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti32x4 xmm11,zmm3,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10]{k1},zmm3 + vmovdqu8 zmm19{k1}{z},zmm19 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vextracti32x4 xmm7,zmm19,3 + sub r13,16 * (8 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_881 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_881 +$L$_small_initial_partial_block_881: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm19,zmm1,0x01 + vpclmulqdq zmm5,zmm19,zmm1,0x10 + vpclmulqdq zmm0,zmm19,zmm1,0x11 + vpclmulqdq zmm3,zmm19,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_881: + + or r13,r13 + je NEAR $L$_after_reduction_881 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_881: + jmp NEAR $L$_last_blocks_done_865 +$L$_last_num_blocks_is_9_865: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,247 + jae NEAR $L$_16_blocks_overflow_882 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd xmm4,xmm3,xmm27 + jmp NEAR $L$_16_blocks_ok_882 + +$L$_16_blocks_overflow_882: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb xmm4,xmm4,xmm29 +$L$_16_blocks_ok_882: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm4,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 xmm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast xmm4,xmm4,xmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq xmm4,xmm4,xmm20 + vextracti32x4 xmm11,zmm4,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 XMMWORD[128+r11*1+r10]{k1},xmm4 + vmovdqu8 zmm20{k1}{z},zmm20 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb xmm20,xmm20,xmm29 + vextracti32x4 xmm7,zmm20,0 + sub r13,16 * (9 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_883 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm20,xmm1,0x01 + vpclmulqdq xmm5,xmm20,xmm1,0x10 + vpclmulqdq xmm0,xmm20,xmm1,0x11 + vpclmulqdq xmm3,xmm20,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_883 +$L$_small_initial_partial_block_883: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_883: + + or r13,r13 + je NEAR $L$_after_reduction_883 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_883: + jmp NEAR $L$_last_blocks_done_865 +$L$_last_num_blocks_is_10_865: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,246 + jae NEAR $L$_16_blocks_overflow_884 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd ymm4,ymm3,ymm27 + jmp NEAR $L$_16_blocks_ok_884 + +$L$_16_blocks_overflow_884: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb ymm4,ymm4,ymm29 +$L$_16_blocks_ok_884: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm4,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 ymm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast ymm4,ymm4,ymm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq ymm4,ymm4,ymm20 + vextracti32x4 xmm11,zmm4,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 YMMWORD[128+r11*1+r10]{k1},ymm4 + vmovdqu8 zmm20{k1}{z},zmm20 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb ymm20,ymm20,ymm29 + vextracti32x4 xmm7,zmm20,1 + sub r13,16 * (10 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_885 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm20,ymm1,0x01 + vpclmulqdq ymm5,ymm20,ymm1,0x10 + vpclmulqdq ymm0,ymm20,ymm1,0x11 + vpclmulqdq ymm3,ymm20,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_885 +$L$_small_initial_partial_block_885: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm20,xmm1,0x01 + vpclmulqdq xmm5,xmm20,xmm1,0x10 + vpclmulqdq xmm0,xmm20,xmm1,0x11 + vpclmulqdq xmm3,xmm20,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_885: + + or r13,r13 + je NEAR $L$_after_reduction_885 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_885: + jmp NEAR $L$_last_blocks_done_865 +$L$_last_num_blocks_is_11_865: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,245 + jae NEAR $L$_16_blocks_overflow_886 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + jmp NEAR $L$_16_blocks_ok_886 + +$L$_16_blocks_overflow_886: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 +$L$_16_blocks_ok_886: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm4,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vextracti32x4 xmm11,zmm4,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10]{k1},zmm4 + vmovdqu8 zmm20{k1}{z},zmm20 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb zmm20,zmm20,zmm29 + vextracti32x4 xmm7,zmm20,2 + sub r13,16 * (11 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_887 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm20,zmm1,0x01 + vpclmulqdq zmm5,zmm20,zmm1,0x10 + vpclmulqdq zmm0,zmm20,zmm1,0x11 + vpclmulqdq zmm3,zmm20,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_887 +$L$_small_initial_partial_block_887: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm20,ymm1,0x01 + vpclmulqdq ymm5,ymm20,ymm1,0x10 + vpclmulqdq ymm0,ymm20,ymm1,0x11 + vpclmulqdq ymm3,ymm20,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_887: + + or r13,r13 + je NEAR $L$_after_reduction_887 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_887: + jmp NEAR $L$_last_blocks_done_865 +$L$_last_num_blocks_is_12_865: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,244 + jae NEAR $L$_16_blocks_overflow_888 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + jmp NEAR $L$_16_blocks_ok_888 + +$L$_16_blocks_overflow_888: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 +$L$_16_blocks_ok_888: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm4,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vextracti32x4 xmm11,zmm4,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10]{k1},zmm4 + vmovdqu8 zmm20{k1}{z},zmm20 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb zmm20,zmm20,zmm29 + vextracti32x4 xmm7,zmm20,3 + sub r13,16 * (12 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_889 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[160+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_889 +$L$_small_initial_partial_block_889: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm20,zmm1,0x01 + vpclmulqdq zmm5,zmm20,zmm1,0x10 + vpclmulqdq zmm0,zmm20,zmm1,0x11 + vpclmulqdq zmm3,zmm20,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_889: + + or r13,r13 + je NEAR $L$_after_reduction_889 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_889: + jmp NEAR $L$_last_blocks_done_865 +$L$_last_num_blocks_is_13_865: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,243 + jae NEAR $L$_16_blocks_overflow_890 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd xmm5,xmm4,xmm27 + jmp NEAR $L$_16_blocks_ok_890 + +$L$_16_blocks_overflow_890: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb xmm5,xmm5,xmm29 +$L$_16_blocks_ok_890: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm5,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 xmm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast xmm5,xmm5,xmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq xmm5,xmm5,xmm21 + vextracti32x4 xmm11,zmm5,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 XMMWORD[192+r11*1+r10]{k1},xmm5 + vmovdqu8 zmm21{k1}{z},zmm21 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb zmm20,zmm20,zmm29 + vpshufb xmm21,xmm21,xmm29 + vextracti32x4 xmm7,zmm21,0 + sub r13,16 * (13 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_891 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[144+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm21,xmm1,0x01 + vpclmulqdq xmm5,xmm21,xmm1,0x10 + vpclmulqdq xmm0,xmm21,xmm1,0x11 + vpclmulqdq xmm3,xmm21,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_891 +$L$_small_initial_partial_block_891: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[160+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_891: + + or r13,r13 + je NEAR $L$_after_reduction_891 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_891: + jmp NEAR $L$_last_blocks_done_865 +$L$_last_num_blocks_is_14_865: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,242 + jae NEAR $L$_16_blocks_overflow_892 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd ymm5,ymm4,ymm27 + jmp NEAR $L$_16_blocks_ok_892 + +$L$_16_blocks_overflow_892: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb ymm5,ymm5,ymm29 +$L$_16_blocks_ok_892: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm5,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 ymm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast ymm5,ymm5,ymm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq ymm5,ymm5,ymm21 + vextracti32x4 xmm11,zmm5,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 YMMWORD[192+r11*1+r10]{k1},ymm5 + vmovdqu8 zmm21{k1}{z},zmm21 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb zmm20,zmm20,zmm29 + vpshufb ymm21,ymm21,ymm29 + vextracti32x4 xmm7,zmm21,1 + sub r13,16 * (14 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_893 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[128+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm21,ymm1,0x01 + vpclmulqdq ymm5,ymm21,ymm1,0x10 + vpclmulqdq ymm0,ymm21,ymm1,0x11 + vpclmulqdq ymm3,ymm21,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_893 +$L$_small_initial_partial_block_893: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[144+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm21,xmm1,0x01 + vpclmulqdq xmm5,xmm21,xmm1,0x10 + vpclmulqdq xmm0,xmm21,xmm1,0x11 + vpclmulqdq xmm3,xmm21,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_893: + + or r13,r13 + je NEAR $L$_after_reduction_893 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_893: + jmp NEAR $L$_last_blocks_done_865 +$L$_last_num_blocks_is_15_865: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,241 + jae NEAR $L$_16_blocks_overflow_894 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_894 + +$L$_16_blocks_overflow_894: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_894: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm5,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + vextracti32x4 xmm11,zmm5,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[192+r11*1+r10]{k1},zmm5 + vmovdqu8 zmm21{k1}{z},zmm21 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb zmm20,zmm20,zmm29 + vpshufb zmm21,zmm21,zmm29 + vextracti32x4 xmm7,zmm21,2 + sub r13,16 * (15 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_895 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[112+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm21,zmm1,0x01 + vpclmulqdq zmm5,zmm21,zmm1,0x10 + vpclmulqdq zmm0,zmm21,zmm1,0x11 + vpclmulqdq zmm3,zmm21,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_895 +$L$_small_initial_partial_block_895: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[128+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm21,ymm1,0x01 + vpclmulqdq ymm5,ymm21,ymm1,0x10 + vpclmulqdq ymm0,ymm21,ymm1,0x11 + vpclmulqdq ymm3,ymm21,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_895: + + or r13,r13 + je NEAR $L$_after_reduction_895 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_895: + jmp NEAR $L$_last_blocks_done_865 +$L$_last_num_blocks_is_16_865: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,240 + jae NEAR $L$_16_blocks_overflow_896 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_896 + +$L$_16_blocks_overflow_896: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_896: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm5,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + vextracti32x4 xmm11,zmm5,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[192+r11*1+r10]{k1},zmm5 + vmovdqu8 zmm21{k1}{z},zmm21 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb zmm20,zmm20,zmm29 + vpshufb zmm21,zmm21,zmm29 + vextracti32x4 xmm7,zmm21,3 + sub r13,16 * (16 - 1) +$L$_small_initial_partial_block_897: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[112+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm21,zmm1,0x01 + vpclmulqdq zmm5,zmm21,zmm1,0x10 + vpclmulqdq zmm0,zmm21,zmm1,0x11 + vpclmulqdq zmm3,zmm21,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_897: + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_897: + jmp NEAR $L$_last_blocks_done_865 +$L$_last_num_blocks_is_0_865: + vmovdqa64 zmm13,ZMMWORD[768+rsp] + vpxorq zmm13,zmm13,zmm14 + vmovdqu64 zmm12,ZMMWORD[rbx*1+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[832+rsp] + vmovdqu64 zmm12,ZMMWORD[64+rbx*1+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + vpxorq zmm26,zmm4,zmm10 + vpxorq zmm24,zmm0,zmm6 + vpxorq zmm25,zmm3,zmm7 + vpternlogq zmm26,zmm5,zmm11,0x96 + vmovdqa64 zmm13,ZMMWORD[896+rsp] + vmovdqu64 zmm12,ZMMWORD[128+rbx*1+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[960+rsp] + vmovdqu64 zmm12,ZMMWORD[192+rbx*1+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + + vpternlogq zmm26,zmm4,zmm10,0x96 + vpternlogq zmm24,zmm0,zmm6,0x96 + vpternlogq zmm25,zmm3,zmm7,0x96 + vpternlogq zmm26,zmm5,zmm11,0x96 + + vpsrldq zmm0,zmm26,8 + vpslldq zmm3,zmm26,8 + vpxorq zmm24,zmm24,zmm0 + vpxorq zmm25,zmm25,zmm3 + vextracti64x4 ymm0,zmm24,1 + vpxorq ymm24,ymm24,ymm0 + vextracti32x4 xmm0,ymm24,1 + vpxorq xmm24,xmm24,xmm0 + vextracti64x4 ymm3,zmm25,1 + vpxorq ymm25,ymm25,ymm3 + vextracti32x4 xmm3,ymm25,1 + vpxorq xmm25,xmm25,xmm3 + vmovdqa64 xmm4,XMMWORD[POLY2] + + + vpclmulqdq xmm0,xmm4,xmm25,0x01 + vpslldq xmm0,xmm0,8 + vpxorq xmm0,xmm25,xmm0 + + + vpclmulqdq xmm3,xmm4,xmm0,0x00 + vpsrldq xmm3,xmm3,4 + vpclmulqdq xmm14,xmm4,xmm0,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm3,xmm24,0x96 + +$L$_last_blocks_done_865: + vpshufb xmm2,xmm2,xmm29 + jmp NEAR $L$_ghash_done_821 +$L$_encrypt_16_blocks_821: + cmp r15b,240 + jae NEAR $L$_16_blocks_overflow_898 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_898 +$L$_16_blocks_overflow_898: + vpshufb zmm2,zmm2,zmm29 + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_898: + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rsp] + + + + + vshufi64x2 zmm2,zmm5,zmm5,255 + add r15b,16 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + + + + + + + + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + + vpclmulqdq zmm6,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + + vpternlogq zmm6,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + + + + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm21,ZMMWORD[192+r11*1+r9] + + + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm26,zmm10,zmm15 + vpxorq zmm24,zmm6,zmm12 + vpxorq zmm25,zmm7,zmm13 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + + + + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + + + + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[192+r11*1+r10],zmm5 + vpshufb zmm0,zmm17,zmm29 + vpshufb zmm3,zmm19,zmm29 + vpshufb zmm4,zmm20,zmm29 + vpshufb zmm5,zmm21,zmm29 + vmovdqa64 ZMMWORD[1280+rsp],zmm0 + vmovdqa64 ZMMWORD[1344+rsp],zmm3 + vmovdqa64 ZMMWORD[1408+rsp],zmm4 + vmovdqa64 ZMMWORD[1472+rsp],zmm5 + vmovdqa64 zmm13,ZMMWORD[1024+rsp] + vmovdqu64 zmm12,ZMMWORD[256+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[1088+rsp] + vmovdqu64 zmm12,ZMMWORD[320+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + vpternlogq zmm26,zmm4,zmm10,0x96 + vpternlogq zmm24,zmm0,zmm6,0x96 + vpternlogq zmm25,zmm3,zmm7,0x96 + vpternlogq zmm26,zmm5,zmm11,0x96 + vmovdqa64 zmm13,ZMMWORD[1152+rsp] + vmovdqu64 zmm12,ZMMWORD[384+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[1216+rsp] + vmovdqu64 zmm12,ZMMWORD[448+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + + vpternlogq zmm26,zmm4,zmm10,0x96 + vpternlogq zmm24,zmm0,zmm6,0x96 + vpternlogq zmm25,zmm3,zmm7,0x96 + vpternlogq zmm26,zmm5,zmm11,0x96 + sub r13,256 + add r11,256 + mov r10d,r13d + add r10d,15 + shr r10d,4 + je NEAR $L$_last_num_blocks_is_0_899 + + cmp r10d,8 + je NEAR $L$_last_num_blocks_is_8_899 + jb NEAR $L$_last_num_blocks_is_7_1_899 + + + cmp r10d,12 + je NEAR $L$_last_num_blocks_is_12_899 + jb NEAR $L$_last_num_blocks_is_11_9_899 + + + cmp r10d,15 + je NEAR $L$_last_num_blocks_is_15_899 + ja NEAR $L$_last_num_blocks_is_16_899 + cmp r10d,14 + je NEAR $L$_last_num_blocks_is_14_899 + jmp NEAR $L$_last_num_blocks_is_13_899 + +$L$_last_num_blocks_is_11_9_899: + + cmp r10d,10 + je NEAR $L$_last_num_blocks_is_10_899 + ja NEAR $L$_last_num_blocks_is_11_899 + jmp NEAR $L$_last_num_blocks_is_9_899 + +$L$_last_num_blocks_is_7_1_899: + cmp r10d,4 + je NEAR $L$_last_num_blocks_is_4_899 + jb NEAR $L$_last_num_blocks_is_3_1_899 + + cmp r10d,6 + ja NEAR $L$_last_num_blocks_is_7_899 + je NEAR $L$_last_num_blocks_is_6_899 + jmp NEAR $L$_last_num_blocks_is_5_899 + +$L$_last_num_blocks_is_3_1_899: + + cmp r10d,2 + ja NEAR $L$_last_num_blocks_is_3_899 + je NEAR $L$_last_num_blocks_is_2_899 +$L$_last_num_blocks_is_1_899: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,255 + jae NEAR $L$_16_blocks_overflow_900 + vpaddd xmm0,xmm2,xmm28 + jmp NEAR $L$_16_blocks_ok_900 + +$L$_16_blocks_overflow_900: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb xmm0,xmm0,xmm29 +$L$_16_blocks_ok_900: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm0,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 xmm17{k1}{z},[r11*1+r9] + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc xmm0,xmm0,xmm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc xmm0,xmm0,xmm31 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast xmm0,xmm0,xmm30 + vpxorq xmm0,xmm0,xmm17 + vextracti32x4 xmm11,zmm0,0 + mov r10,QWORD[120+rbp] + vmovdqu8 XMMWORD[r11*1+r10]{k1},xmm0 + vmovdqu8 zmm17{k1}{z},zmm17 + vpshufb xmm17,xmm17,xmm29 + vextracti32x4 xmm7,zmm17,0 + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_901 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm17,xmm1,0x01 + vpclmulqdq xmm5,xmm17,xmm1,0x10 + vpclmulqdq xmm0,xmm17,xmm1,0x11 + vpclmulqdq xmm3,xmm17,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_901 +$L$_small_initial_partial_block_901: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + + + + + + + + + + + + vpxorq xmm14,xmm14,xmm7 + + jmp NEAR $L$_after_reduction_901 +$L$_small_initial_compute_done_901: +$L$_after_reduction_901: + jmp NEAR $L$_last_blocks_done_899 +$L$_last_num_blocks_is_2_899: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,254 + jae NEAR $L$_16_blocks_overflow_902 + vpaddd ymm0,ymm2,ymm28 + jmp NEAR $L$_16_blocks_ok_902 + +$L$_16_blocks_overflow_902: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb ymm0,ymm0,ymm29 +$L$_16_blocks_ok_902: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm0,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 ymm17{k1}{z},[r11*1+r9] + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc ymm0,ymm0,ymm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc ymm0,ymm0,ymm31 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast ymm0,ymm0,ymm30 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm11,zmm0,1 + mov r10,QWORD[120+rbp] + vmovdqu8 YMMWORD[r11*1+r10]{k1},ymm0 + vmovdqu8 zmm17{k1}{z},zmm17 + vpshufb ymm17,ymm17,ymm29 + vextracti32x4 xmm7,zmm17,1 + sub r13,16 * (2 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_903 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm17,ymm1,0x01 + vpclmulqdq ymm5,ymm17,ymm1,0x10 + vpclmulqdq ymm0,ymm17,ymm1,0x11 + vpclmulqdq ymm3,ymm17,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_903 +$L$_small_initial_partial_block_903: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm17,xmm1,0x01 + vpclmulqdq xmm5,xmm17,xmm1,0x10 + vpclmulqdq xmm0,xmm17,xmm1,0x11 + vpclmulqdq xmm3,xmm17,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_903: + + or r13,r13 + je NEAR $L$_after_reduction_903 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_903: + jmp NEAR $L$_last_blocks_done_899 +$L$_last_num_blocks_is_3_899: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,253 + jae NEAR $L$_16_blocks_overflow_904 + vpaddd zmm0,zmm2,zmm28 + jmp NEAR $L$_16_blocks_ok_904 + +$L$_16_blocks_overflow_904: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb zmm0,zmm0,zmm29 +$L$_16_blocks_ok_904: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm0,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17{k1}{z},[r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vpxorq zmm0,zmm0,zmm17 + vextracti32x4 xmm11,zmm0,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10]{k1},zmm0 + vmovdqu8 zmm17{k1}{z},zmm17 + vpshufb zmm17,zmm17,zmm29 + vextracti32x4 xmm7,zmm17,2 + sub r13,16 * (3 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_905 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_905 +$L$_small_initial_partial_block_905: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm17,ymm1,0x01 + vpclmulqdq ymm5,ymm17,ymm1,0x10 + vpclmulqdq ymm0,ymm17,ymm1,0x11 + vpclmulqdq ymm3,ymm17,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_905: + + or r13,r13 + je NEAR $L$_after_reduction_905 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_905: + jmp NEAR $L$_last_blocks_done_899 +$L$_last_num_blocks_is_4_899: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,252 + jae NEAR $L$_16_blocks_overflow_906 + vpaddd zmm0,zmm2,zmm28 + jmp NEAR $L$_16_blocks_ok_906 + +$L$_16_blocks_overflow_906: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb zmm0,zmm0,zmm29 +$L$_16_blocks_ok_906: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm0,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17{k1}{z},[r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vpxorq zmm0,zmm0,zmm17 + vextracti32x4 xmm11,zmm0,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10]{k1},zmm0 + vmovdqu8 zmm17{k1}{z},zmm17 + vpshufb zmm17,zmm17,zmm29 + vextracti32x4 xmm7,zmm17,3 + sub r13,16 * (4 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_907 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_907 +$L$_small_initial_partial_block_907: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_907: + + or r13,r13 + je NEAR $L$_after_reduction_907 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_907: + jmp NEAR $L$_last_blocks_done_899 +$L$_last_num_blocks_is_5_899: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,251 + jae NEAR $L$_16_blocks_overflow_908 + vpaddd zmm0,zmm2,zmm28 + vpaddd xmm3,xmm0,xmm27 + jmp NEAR $L$_16_blocks_ok_908 + +$L$_16_blocks_overflow_908: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb xmm3,xmm3,xmm29 +$L$_16_blocks_ok_908: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm3,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 xmm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast xmm3,xmm3,xmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq xmm3,xmm3,xmm19 + vextracti32x4 xmm11,zmm3,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 XMMWORD[64+r11*1+r10]{k1},xmm3 + vmovdqu8 zmm19{k1}{z},zmm19 + vpshufb zmm17,zmm17,zmm29 + vpshufb xmm19,xmm19,xmm29 + vextracti32x4 xmm7,zmm19,0 + sub r13,16 * (5 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_909 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm19,xmm1,0x01 + vpclmulqdq xmm5,xmm19,xmm1,0x10 + vpclmulqdq xmm0,xmm19,xmm1,0x11 + vpclmulqdq xmm3,xmm19,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_909 +$L$_small_initial_partial_block_909: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_909: + + or r13,r13 + je NEAR $L$_after_reduction_909 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_909: + jmp NEAR $L$_last_blocks_done_899 +$L$_last_num_blocks_is_6_899: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,250 + jae NEAR $L$_16_blocks_overflow_910 + vpaddd zmm0,zmm2,zmm28 + vpaddd ymm3,ymm0,ymm27 + jmp NEAR $L$_16_blocks_ok_910 + +$L$_16_blocks_overflow_910: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb ymm3,ymm3,ymm29 +$L$_16_blocks_ok_910: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm3,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 ymm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast ymm3,ymm3,ymm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm11,zmm3,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 YMMWORD[64+r11*1+r10]{k1},ymm3 + vmovdqu8 zmm19{k1}{z},zmm19 + vpshufb zmm17,zmm17,zmm29 + vpshufb ymm19,ymm19,ymm29 + vextracti32x4 xmm7,zmm19,1 + sub r13,16 * (6 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_911 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm19,ymm1,0x01 + vpclmulqdq ymm5,ymm19,ymm1,0x10 + vpclmulqdq ymm0,ymm19,ymm1,0x11 + vpclmulqdq ymm3,ymm19,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_911 +$L$_small_initial_partial_block_911: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm19,xmm1,0x01 + vpclmulqdq xmm5,xmm19,xmm1,0x10 + vpclmulqdq xmm0,xmm19,xmm1,0x11 + vpclmulqdq xmm3,xmm19,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_911: + + or r13,r13 + je NEAR $L$_after_reduction_911 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_911: + jmp NEAR $L$_last_blocks_done_899 +$L$_last_num_blocks_is_7_899: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,249 + jae NEAR $L$_16_blocks_overflow_912 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + jmp NEAR $L$_16_blocks_ok_912 + +$L$_16_blocks_overflow_912: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 +$L$_16_blocks_ok_912: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm3,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti32x4 xmm11,zmm3,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10]{k1},zmm3 + vmovdqu8 zmm19{k1}{z},zmm19 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vextracti32x4 xmm7,zmm19,2 + sub r13,16 * (7 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_913 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm19,zmm1,0x01 + vpclmulqdq zmm5,zmm19,zmm1,0x10 + vpclmulqdq zmm0,zmm19,zmm1,0x11 + vpclmulqdq zmm3,zmm19,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_913 +$L$_small_initial_partial_block_913: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm19,ymm1,0x01 + vpclmulqdq ymm5,ymm19,ymm1,0x10 + vpclmulqdq ymm0,ymm19,ymm1,0x11 + vpclmulqdq ymm3,ymm19,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_913: + + or r13,r13 + je NEAR $L$_after_reduction_913 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_913: + jmp NEAR $L$_last_blocks_done_899 +$L$_last_num_blocks_is_8_899: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,248 + jae NEAR $L$_16_blocks_overflow_914 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + jmp NEAR $L$_16_blocks_ok_914 + +$L$_16_blocks_overflow_914: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 +$L$_16_blocks_ok_914: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm3,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti32x4 xmm11,zmm3,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10]{k1},zmm3 + vmovdqu8 zmm19{k1}{z},zmm19 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vextracti32x4 xmm7,zmm19,3 + sub r13,16 * (8 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_915 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_915 +$L$_small_initial_partial_block_915: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm19,zmm1,0x01 + vpclmulqdq zmm5,zmm19,zmm1,0x10 + vpclmulqdq zmm0,zmm19,zmm1,0x11 + vpclmulqdq zmm3,zmm19,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_915: + + or r13,r13 + je NEAR $L$_after_reduction_915 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_915: + jmp NEAR $L$_last_blocks_done_899 +$L$_last_num_blocks_is_9_899: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,247 + jae NEAR $L$_16_blocks_overflow_916 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd xmm4,xmm3,xmm27 + jmp NEAR $L$_16_blocks_ok_916 + +$L$_16_blocks_overflow_916: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb xmm4,xmm4,xmm29 +$L$_16_blocks_ok_916: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm4,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 xmm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast xmm4,xmm4,xmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq xmm4,xmm4,xmm20 + vextracti32x4 xmm11,zmm4,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 XMMWORD[128+r11*1+r10]{k1},xmm4 + vmovdqu8 zmm20{k1}{z},zmm20 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb xmm20,xmm20,xmm29 + vextracti32x4 xmm7,zmm20,0 + sub r13,16 * (9 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_917 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm20,xmm1,0x01 + vpclmulqdq xmm5,xmm20,xmm1,0x10 + vpclmulqdq xmm0,xmm20,xmm1,0x11 + vpclmulqdq xmm3,xmm20,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_917 +$L$_small_initial_partial_block_917: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_917: + + or r13,r13 + je NEAR $L$_after_reduction_917 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_917: + jmp NEAR $L$_last_blocks_done_899 +$L$_last_num_blocks_is_10_899: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,246 + jae NEAR $L$_16_blocks_overflow_918 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd ymm4,ymm3,ymm27 + jmp NEAR $L$_16_blocks_ok_918 + +$L$_16_blocks_overflow_918: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb ymm4,ymm4,ymm29 +$L$_16_blocks_ok_918: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm4,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 ymm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast ymm4,ymm4,ymm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq ymm4,ymm4,ymm20 + vextracti32x4 xmm11,zmm4,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 YMMWORD[128+r11*1+r10]{k1},ymm4 + vmovdqu8 zmm20{k1}{z},zmm20 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb ymm20,ymm20,ymm29 + vextracti32x4 xmm7,zmm20,1 + sub r13,16 * (10 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_919 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm20,ymm1,0x01 + vpclmulqdq ymm5,ymm20,ymm1,0x10 + vpclmulqdq ymm0,ymm20,ymm1,0x11 + vpclmulqdq ymm3,ymm20,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_919 +$L$_small_initial_partial_block_919: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm20,xmm1,0x01 + vpclmulqdq xmm5,xmm20,xmm1,0x10 + vpclmulqdq xmm0,xmm20,xmm1,0x11 + vpclmulqdq xmm3,xmm20,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_919: + + or r13,r13 + je NEAR $L$_after_reduction_919 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_919: + jmp NEAR $L$_last_blocks_done_899 +$L$_last_num_blocks_is_11_899: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,245 + jae NEAR $L$_16_blocks_overflow_920 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + jmp NEAR $L$_16_blocks_ok_920 + +$L$_16_blocks_overflow_920: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 +$L$_16_blocks_ok_920: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm4,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vextracti32x4 xmm11,zmm4,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10]{k1},zmm4 + vmovdqu8 zmm20{k1}{z},zmm20 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb zmm20,zmm20,zmm29 + vextracti32x4 xmm7,zmm20,2 + sub r13,16 * (11 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_921 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm20,zmm1,0x01 + vpclmulqdq zmm5,zmm20,zmm1,0x10 + vpclmulqdq zmm0,zmm20,zmm1,0x11 + vpclmulqdq zmm3,zmm20,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_921 +$L$_small_initial_partial_block_921: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm20,ymm1,0x01 + vpclmulqdq ymm5,ymm20,ymm1,0x10 + vpclmulqdq ymm0,ymm20,ymm1,0x11 + vpclmulqdq ymm3,ymm20,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_921: + + or r13,r13 + je NEAR $L$_after_reduction_921 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_921: + jmp NEAR $L$_last_blocks_done_899 +$L$_last_num_blocks_is_12_899: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,244 + jae NEAR $L$_16_blocks_overflow_922 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + jmp NEAR $L$_16_blocks_ok_922 + +$L$_16_blocks_overflow_922: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 +$L$_16_blocks_ok_922: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm4,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vextracti32x4 xmm11,zmm4,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10]{k1},zmm4 + vmovdqu8 zmm20{k1}{z},zmm20 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb zmm20,zmm20,zmm29 + vextracti32x4 xmm7,zmm20,3 + sub r13,16 * (12 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_923 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[160+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_923 +$L$_small_initial_partial_block_923: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm20,zmm1,0x01 + vpclmulqdq zmm5,zmm20,zmm1,0x10 + vpclmulqdq zmm0,zmm20,zmm1,0x11 + vpclmulqdq zmm3,zmm20,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_923: + + or r13,r13 + je NEAR $L$_after_reduction_923 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_923: + jmp NEAR $L$_last_blocks_done_899 +$L$_last_num_blocks_is_13_899: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,243 + jae NEAR $L$_16_blocks_overflow_924 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd xmm5,xmm4,xmm27 + jmp NEAR $L$_16_blocks_ok_924 + +$L$_16_blocks_overflow_924: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb xmm5,xmm5,xmm29 +$L$_16_blocks_ok_924: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm5,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 xmm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast xmm5,xmm5,xmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq xmm5,xmm5,xmm21 + vextracti32x4 xmm11,zmm5,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 XMMWORD[192+r11*1+r10]{k1},xmm5 + vmovdqu8 zmm21{k1}{z},zmm21 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb zmm20,zmm20,zmm29 + vpshufb xmm21,xmm21,xmm29 + vextracti32x4 xmm7,zmm21,0 + sub r13,16 * (13 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_925 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[144+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm21,xmm1,0x01 + vpclmulqdq xmm5,xmm21,xmm1,0x10 + vpclmulqdq xmm0,xmm21,xmm1,0x11 + vpclmulqdq xmm3,xmm21,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_925 +$L$_small_initial_partial_block_925: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[160+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_925: + + or r13,r13 + je NEAR $L$_after_reduction_925 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_925: + jmp NEAR $L$_last_blocks_done_899 +$L$_last_num_blocks_is_14_899: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,242 + jae NEAR $L$_16_blocks_overflow_926 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd ymm5,ymm4,ymm27 + jmp NEAR $L$_16_blocks_ok_926 + +$L$_16_blocks_overflow_926: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb ymm5,ymm5,ymm29 +$L$_16_blocks_ok_926: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm5,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 ymm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast ymm5,ymm5,ymm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq ymm5,ymm5,ymm21 + vextracti32x4 xmm11,zmm5,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 YMMWORD[192+r11*1+r10]{k1},ymm5 + vmovdqu8 zmm21{k1}{z},zmm21 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb zmm20,zmm20,zmm29 + vpshufb ymm21,ymm21,ymm29 + vextracti32x4 xmm7,zmm21,1 + sub r13,16 * (14 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_927 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[128+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm21,ymm1,0x01 + vpclmulqdq ymm5,ymm21,ymm1,0x10 + vpclmulqdq ymm0,ymm21,ymm1,0x11 + vpclmulqdq ymm3,ymm21,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_927 +$L$_small_initial_partial_block_927: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[144+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm21,xmm1,0x01 + vpclmulqdq xmm5,xmm21,xmm1,0x10 + vpclmulqdq xmm0,xmm21,xmm1,0x11 + vpclmulqdq xmm3,xmm21,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_927: + + or r13,r13 + je NEAR $L$_after_reduction_927 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_927: + jmp NEAR $L$_last_blocks_done_899 +$L$_last_num_blocks_is_15_899: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,241 + jae NEAR $L$_16_blocks_overflow_928 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_928 + +$L$_16_blocks_overflow_928: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_928: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm5,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + vextracti32x4 xmm11,zmm5,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[192+r11*1+r10]{k1},zmm5 + vmovdqu8 zmm21{k1}{z},zmm21 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb zmm20,zmm20,zmm29 + vpshufb zmm21,zmm21,zmm29 + vextracti32x4 xmm7,zmm21,2 + sub r13,16 * (15 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_929 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[112+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm21,zmm1,0x01 + vpclmulqdq zmm5,zmm21,zmm1,0x10 + vpclmulqdq zmm0,zmm21,zmm1,0x11 + vpclmulqdq zmm3,zmm21,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_929 +$L$_small_initial_partial_block_929: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[128+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm21,ymm1,0x01 + vpclmulqdq ymm5,ymm21,ymm1,0x10 + vpclmulqdq ymm0,ymm21,ymm1,0x11 + vpclmulqdq ymm3,ymm21,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_929: + + or r13,r13 + je NEAR $L$_after_reduction_929 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_929: + jmp NEAR $L$_last_blocks_done_899 +$L$_last_num_blocks_is_16_899: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,240 + jae NEAR $L$_16_blocks_overflow_930 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_930 + +$L$_16_blocks_overflow_930: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_930: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vmovdqa64 zmm8,ZMMWORD[1280+rsp] + vmovdqu64 zmm1,ZMMWORD[512+rsp] + vextracti32x4 xmm2,zmm5,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[576+rsp] + vmovdqa64 zmm22,ZMMWORD[1344+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[640+rsp] + vmovdqa64 zmm8,ZMMWORD[1408+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[704+rsp] + vmovdqa64 zmm22,ZMMWORD[1472+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpternlogq zmm14,zmm24,zmm12,0x96 + vpternlogq zmm7,zmm25,zmm13,0x96 + vpternlogq zmm10,zmm26,zmm15,0x96 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vpsrldq zmm15,zmm10,8 + vpslldq zmm10,zmm10,8 + + vmovdqa64 xmm16,XMMWORD[POLY2] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vpxorq zmm14,zmm14,zmm15 + vpxorq zmm7,zmm7,zmm10 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vextracti64x4 ymm12,zmm14,1 + vpxorq ymm14,ymm14,ymm12 + vextracti32x4 xmm12,ymm14,1 + vpxorq xmm14,xmm14,xmm12 + vextracti64x4 ymm13,zmm7,1 + vpxorq ymm7,ymm7,ymm13 + vextracti32x4 xmm13,ymm7,1 + vpxorq xmm7,xmm7,xmm13 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vpclmulqdq xmm13,xmm16,xmm7,0x01 + vpslldq xmm13,xmm13,8 + vpxorq xmm13,xmm7,xmm13 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vpclmulqdq xmm12,xmm16,xmm13,0x00 + vpsrldq xmm12,xmm12,4 + vpclmulqdq xmm15,xmm16,xmm13,0x10 + vpslldq xmm15,xmm15,4 + + vpternlogq xmm14,xmm15,xmm12,0x96 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + vextracti32x4 xmm11,zmm5,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[192+r11*1+r10]{k1},zmm5 + vmovdqu8 zmm21{k1}{z},zmm21 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb zmm20,zmm20,zmm29 + vpshufb zmm21,zmm21,zmm29 + vextracti32x4 xmm7,zmm21,3 + sub r13,16 * (16 - 1) +$L$_small_initial_partial_block_931: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vpxorq zmm17,zmm17,zmm14 + vmovdqu64 zmm1,ZMMWORD[112+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm21,zmm1,0x01 + vpclmulqdq zmm5,zmm21,zmm1,0x10 + vpclmulqdq zmm0,zmm21,zmm1,0x11 + vpclmulqdq zmm3,zmm21,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm31 + vpxorq zmm0,zmm0,zmm8 + vpxorq zmm3,zmm3,zmm22 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_931: + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_931: + jmp NEAR $L$_last_blocks_done_899 +$L$_last_num_blocks_is_0_899: + vmovdqa64 zmm13,ZMMWORD[1280+rsp] + vmovdqu64 zmm12,ZMMWORD[512+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[1344+rsp] + vmovdqu64 zmm12,ZMMWORD[576+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + vpternlogq zmm26,zmm4,zmm10,0x96 + vpternlogq zmm24,zmm0,zmm6,0x96 + vpternlogq zmm25,zmm3,zmm7,0x96 + vpternlogq zmm26,zmm5,zmm11,0x96 + vmovdqa64 zmm13,ZMMWORD[1408+rsp] + vmovdqu64 zmm12,ZMMWORD[640+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[1472+rsp] + vmovdqu64 zmm12,ZMMWORD[704+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + + vpternlogq zmm26,zmm4,zmm10,0x96 + vpternlogq zmm24,zmm0,zmm6,0x96 + vpternlogq zmm25,zmm3,zmm7,0x96 + vpternlogq zmm26,zmm5,zmm11,0x96 + + vpsrldq zmm0,zmm26,8 + vpslldq zmm3,zmm26,8 + vpxorq zmm24,zmm24,zmm0 + vpxorq zmm25,zmm25,zmm3 + vextracti64x4 ymm0,zmm24,1 + vpxorq ymm24,ymm24,ymm0 + vextracti32x4 xmm0,ymm24,1 + vpxorq xmm24,xmm24,xmm0 + vextracti64x4 ymm3,zmm25,1 + vpxorq ymm25,ymm25,ymm3 + vextracti32x4 xmm3,ymm25,1 + vpxorq xmm25,xmm25,xmm3 + vmovdqa64 xmm4,XMMWORD[POLY2] + + + vpclmulqdq xmm0,xmm4,xmm25,0x01 + vpslldq xmm0,xmm0,8 + vpxorq xmm0,xmm25,xmm0 + + + vpclmulqdq xmm3,xmm4,xmm0,0x00 + vpsrldq xmm3,xmm3,4 + vpclmulqdq xmm14,xmm4,xmm0,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm3,xmm24,0x96 + +$L$_last_blocks_done_899: + vpshufb xmm2,xmm2,xmm29 + jmp NEAR $L$_ghash_done_821 + +$L$_message_below_32_blocks_821: + + + sub r13,256 + add r11,256 + mov r10d,r13d + test r14,r14 + jnz NEAR $L$_skip_hkeys_precomputation_932 + vmovdqu64 zmm3,ZMMWORD[640+rsp] + + + vshufi64x2 zmm3,zmm3,zmm3,0x00 + + vmovdqu64 zmm4,ZMMWORD[576+rsp] + vmovdqu64 zmm5,ZMMWORD[512+rsp] + + vpclmulqdq zmm6,zmm4,zmm3,0x11 + vpclmulqdq zmm7,zmm4,zmm3,0x00 + vpclmulqdq zmm10,zmm4,zmm3,0x01 + vpclmulqdq zmm4,zmm4,zmm3,0x10 + vpxorq zmm4,zmm4,zmm10 + + vpsrldq zmm10,zmm4,8 + vpslldq zmm4,zmm4,8 + vpxorq zmm6,zmm6,zmm10 + vpxorq zmm4,zmm4,zmm7 + + + + vmovdqu64 zmm10,ZMMWORD[POLY2] + + vpclmulqdq zmm7,zmm10,zmm4,0x01 + vpslldq zmm7,zmm7,8 + vpxorq zmm4,zmm4,zmm7 + + + + vpclmulqdq zmm7,zmm10,zmm4,0x00 + vpsrldq zmm7,zmm7,4 + vpclmulqdq zmm4,zmm10,zmm4,0x10 + vpslldq zmm4,zmm4,4 + + vpternlogq zmm4,zmm6,zmm7,0x96 + + vmovdqu64 ZMMWORD[448+rsp],zmm4 + + vpclmulqdq zmm6,zmm5,zmm3,0x11 + vpclmulqdq zmm7,zmm5,zmm3,0x00 + vpclmulqdq zmm10,zmm5,zmm3,0x01 + vpclmulqdq zmm5,zmm5,zmm3,0x10 + vpxorq zmm5,zmm5,zmm10 + + vpsrldq zmm10,zmm5,8 + vpslldq zmm5,zmm5,8 + vpxorq zmm6,zmm6,zmm10 + vpxorq zmm5,zmm5,zmm7 + + + + vmovdqu64 zmm10,ZMMWORD[POLY2] + + vpclmulqdq zmm7,zmm10,zmm5,0x01 + vpslldq zmm7,zmm7,8 + vpxorq zmm5,zmm5,zmm7 + + + + vpclmulqdq zmm7,zmm10,zmm5,0x00 + vpsrldq zmm7,zmm7,4 + vpclmulqdq zmm5,zmm10,zmm5,0x10 + vpslldq zmm5,zmm5,4 + + vpternlogq zmm5,zmm6,zmm7,0x96 + + vmovdqu64 ZMMWORD[384+rsp],zmm5 + + vpclmulqdq zmm6,zmm4,zmm3,0x11 + vpclmulqdq zmm7,zmm4,zmm3,0x00 + vpclmulqdq zmm10,zmm4,zmm3,0x01 + vpclmulqdq zmm4,zmm4,zmm3,0x10 + vpxorq zmm4,zmm4,zmm10 + + vpsrldq zmm10,zmm4,8 + vpslldq zmm4,zmm4,8 + vpxorq zmm6,zmm6,zmm10 + vpxorq zmm4,zmm4,zmm7 + + + + vmovdqu64 zmm10,ZMMWORD[POLY2] + + vpclmulqdq zmm7,zmm10,zmm4,0x01 + vpslldq zmm7,zmm7,8 + vpxorq zmm4,zmm4,zmm7 + + + + vpclmulqdq zmm7,zmm10,zmm4,0x00 + vpsrldq zmm7,zmm7,4 + vpclmulqdq zmm4,zmm10,zmm4,0x10 + vpslldq zmm4,zmm4,4 + + vpternlogq zmm4,zmm6,zmm7,0x96 + + vmovdqu64 ZMMWORD[320+rsp],zmm4 + + vpclmulqdq zmm6,zmm5,zmm3,0x11 + vpclmulqdq zmm7,zmm5,zmm3,0x00 + vpclmulqdq zmm10,zmm5,zmm3,0x01 + vpclmulqdq zmm5,zmm5,zmm3,0x10 + vpxorq zmm5,zmm5,zmm10 + + vpsrldq zmm10,zmm5,8 + vpslldq zmm5,zmm5,8 + vpxorq zmm6,zmm6,zmm10 + vpxorq zmm5,zmm5,zmm7 + + + + vmovdqu64 zmm10,ZMMWORD[POLY2] + + vpclmulqdq zmm7,zmm10,zmm5,0x01 + vpslldq zmm7,zmm7,8 + vpxorq zmm5,zmm5,zmm7 + + + + vpclmulqdq zmm7,zmm10,zmm5,0x00 + vpsrldq zmm7,zmm7,4 + vpclmulqdq zmm5,zmm10,zmm5,0x10 + vpslldq zmm5,zmm5,4 + + vpternlogq zmm5,zmm6,zmm7,0x96 + + vmovdqu64 ZMMWORD[256+rsp],zmm5 +$L$_skip_hkeys_precomputation_932: + mov r14,1 + and r10d,~15 + mov ebx,512 + sub ebx,r10d + mov r10d,r13d + add r10d,15 + shr r10d,4 + je NEAR $L$_last_num_blocks_is_0_933 + + cmp r10d,8 + je NEAR $L$_last_num_blocks_is_8_933 + jb NEAR $L$_last_num_blocks_is_7_1_933 + + + cmp r10d,12 + je NEAR $L$_last_num_blocks_is_12_933 + jb NEAR $L$_last_num_blocks_is_11_9_933 + + + cmp r10d,15 + je NEAR $L$_last_num_blocks_is_15_933 + ja NEAR $L$_last_num_blocks_is_16_933 + cmp r10d,14 + je NEAR $L$_last_num_blocks_is_14_933 + jmp NEAR $L$_last_num_blocks_is_13_933 + +$L$_last_num_blocks_is_11_9_933: + + cmp r10d,10 + je NEAR $L$_last_num_blocks_is_10_933 + ja NEAR $L$_last_num_blocks_is_11_933 + jmp NEAR $L$_last_num_blocks_is_9_933 + +$L$_last_num_blocks_is_7_1_933: + cmp r10d,4 + je NEAR $L$_last_num_blocks_is_4_933 + jb NEAR $L$_last_num_blocks_is_3_1_933 + + cmp r10d,6 + ja NEAR $L$_last_num_blocks_is_7_933 + je NEAR $L$_last_num_blocks_is_6_933 + jmp NEAR $L$_last_num_blocks_is_5_933 + +$L$_last_num_blocks_is_3_1_933: + + cmp r10d,2 + ja NEAR $L$_last_num_blocks_is_3_933 + je NEAR $L$_last_num_blocks_is_2_933 +$L$_last_num_blocks_is_1_933: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,255 + jae NEAR $L$_16_blocks_overflow_934 + vpaddd xmm0,xmm2,xmm28 + jmp NEAR $L$_16_blocks_ok_934 + +$L$_16_blocks_overflow_934: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb xmm0,xmm0,xmm29 +$L$_16_blocks_ok_934: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm0,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 xmm17{k1}{z},[r11*1+r9] + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc xmm0,xmm0,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc xmm0,xmm0,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc xmm0,xmm0,xmm31 + vaesenclast xmm0,xmm0,xmm30 + vpxorq xmm0,xmm0,xmm17 + vextracti32x4 xmm11,zmm0,0 + mov r10,QWORD[120+rbp] + vmovdqu8 XMMWORD[r11*1+r10]{k1},xmm0 + vmovdqu8 zmm17{k1}{z},zmm17 + vpshufb xmm17,xmm17,xmm29 + vextracti32x4 xmm7,zmm17,0 + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_935 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm17,xmm1,0x01 + vpclmulqdq xmm5,xmm17,xmm1,0x10 + vpclmulqdq xmm0,xmm17,xmm1,0x11 + vpclmulqdq xmm3,xmm17,xmm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_935 +$L$_small_initial_partial_block_935: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + + + vpsrldq zmm0,zmm26,8 + vpslldq zmm3,zmm26,8 + vpxorq zmm24,zmm24,zmm0 + vpxorq zmm25,zmm25,zmm3 + vextracti64x4 ymm0,zmm24,1 + vpxorq ymm24,ymm24,ymm0 + vextracti32x4 xmm0,ymm24,1 + vpxorq xmm24,xmm24,xmm0 + vextracti64x4 ymm3,zmm25,1 + vpxorq ymm25,ymm25,ymm3 + vextracti32x4 xmm3,ymm25,1 + vpxorq xmm25,xmm25,xmm3 + vmovdqa64 xmm0,XMMWORD[POLY2] + + + vpclmulqdq xmm3,xmm0,xmm25,0x01 + vpslldq xmm3,xmm3,8 + vpxorq xmm3,xmm25,xmm3 + + + vpclmulqdq xmm4,xmm0,xmm3,0x00 + vpsrldq xmm4,xmm4,4 + vpclmulqdq xmm14,xmm0,xmm3,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm4,xmm24,0x96 + + + + + + + + + + + + + vpxorq xmm14,xmm14,xmm7 + + jmp NEAR $L$_after_reduction_935 +$L$_small_initial_compute_done_935: +$L$_after_reduction_935: + jmp NEAR $L$_last_blocks_done_933 +$L$_last_num_blocks_is_2_933: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,254 + jae NEAR $L$_16_blocks_overflow_936 + vpaddd ymm0,ymm2,ymm28 + jmp NEAR $L$_16_blocks_ok_936 + +$L$_16_blocks_overflow_936: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb ymm0,ymm0,ymm29 +$L$_16_blocks_ok_936: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm0,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 ymm17{k1}{z},[r11*1+r9] + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc ymm0,ymm0,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc ymm0,ymm0,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc ymm0,ymm0,ymm31 + vaesenclast ymm0,ymm0,ymm30 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm11,zmm0,1 + mov r10,QWORD[120+rbp] + vmovdqu8 YMMWORD[r11*1+r10]{k1},ymm0 + vmovdqu8 zmm17{k1}{z},zmm17 + vpshufb ymm17,ymm17,ymm29 + vextracti32x4 xmm7,zmm17,1 + sub r13,16 * (2 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_937 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm17,ymm1,0x01 + vpclmulqdq ymm5,ymm17,ymm1,0x10 + vpclmulqdq ymm0,ymm17,ymm1,0x11 + vpclmulqdq ymm3,ymm17,ymm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_937 +$L$_small_initial_partial_block_937: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm17,xmm1,0x01 + vpclmulqdq xmm5,xmm17,xmm1,0x10 + vpclmulqdq xmm0,xmm17,xmm1,0x11 + vpclmulqdq xmm3,xmm17,xmm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_937: + + or r13,r13 + je NEAR $L$_after_reduction_937 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_937: + jmp NEAR $L$_last_blocks_done_933 +$L$_last_num_blocks_is_3_933: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,253 + jae NEAR $L$_16_blocks_overflow_938 + vpaddd zmm0,zmm2,zmm28 + jmp NEAR $L$_16_blocks_ok_938 + +$L$_16_blocks_overflow_938: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb zmm0,zmm0,zmm29 +$L$_16_blocks_ok_938: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm0,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17{k1}{z},[r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vpxorq zmm0,zmm0,zmm17 + vextracti32x4 xmm11,zmm0,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10]{k1},zmm0 + vmovdqu8 zmm17{k1}{z},zmm17 + vpshufb zmm17,zmm17,zmm29 + vextracti32x4 xmm7,zmm17,2 + sub r13,16 * (3 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_939 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_939 +$L$_small_initial_partial_block_939: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm17,ymm1,0x01 + vpclmulqdq ymm5,ymm17,ymm1,0x10 + vpclmulqdq ymm0,ymm17,ymm1,0x11 + vpclmulqdq ymm3,ymm17,ymm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_939: + + or r13,r13 + je NEAR $L$_after_reduction_939 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_939: + jmp NEAR $L$_last_blocks_done_933 +$L$_last_num_blocks_is_4_933: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + kmovq k1,[rax*8+r10] + cmp r15d,252 + jae NEAR $L$_16_blocks_overflow_940 + vpaddd zmm0,zmm2,zmm28 + jmp NEAR $L$_16_blocks_ok_940 + +$L$_16_blocks_overflow_940: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpshufb zmm0,zmm0,zmm29 +$L$_16_blocks_ok_940: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm0,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17{k1}{z},[r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vpxorq zmm0,zmm0,zmm17 + vextracti32x4 xmm11,zmm0,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10]{k1},zmm0 + vmovdqu8 zmm17{k1}{z},zmm17 + vpshufb zmm17,zmm17,zmm29 + vextracti32x4 xmm7,zmm17,3 + sub r13,16 * (4 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_941 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_941 +$L$_small_initial_partial_block_941: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpxorq zmm4,zmm4,zmm26 + vpxorq zmm0,zmm0,zmm24 + vpxorq zmm3,zmm3,zmm25 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_941: + + or r13,r13 + je NEAR $L$_after_reduction_941 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_941: + jmp NEAR $L$_last_blocks_done_933 +$L$_last_num_blocks_is_5_933: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,251 + jae NEAR $L$_16_blocks_overflow_942 + vpaddd zmm0,zmm2,zmm28 + vpaddd xmm3,xmm0,xmm27 + jmp NEAR $L$_16_blocks_ok_942 + +$L$_16_blocks_overflow_942: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb xmm3,xmm3,xmm29 +$L$_16_blocks_ok_942: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm3,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 xmm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc xmm3,xmm3,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc xmm3,xmm3,xmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast xmm3,xmm3,xmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq xmm3,xmm3,xmm19 + vextracti32x4 xmm11,zmm3,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 XMMWORD[64+r11*1+r10]{k1},xmm3 + vmovdqu8 zmm19{k1}{z},zmm19 + vpshufb zmm17,zmm17,zmm29 + vpshufb xmm19,xmm19,xmm29 + vextracti32x4 xmm7,zmm19,0 + sub r13,16 * (5 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_943 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm19,xmm1,0x01 + vpclmulqdq xmm5,xmm19,xmm1,0x10 + vpclmulqdq xmm0,xmm19,xmm1,0x11 + vpclmulqdq xmm3,xmm19,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_943 +$L$_small_initial_partial_block_943: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_943: + + or r13,r13 + je NEAR $L$_after_reduction_943 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_943: + jmp NEAR $L$_last_blocks_done_933 +$L$_last_num_blocks_is_6_933: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,250 + jae NEAR $L$_16_blocks_overflow_944 + vpaddd zmm0,zmm2,zmm28 + vpaddd ymm3,ymm0,ymm27 + jmp NEAR $L$_16_blocks_ok_944 + +$L$_16_blocks_overflow_944: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb ymm3,ymm3,ymm29 +$L$_16_blocks_ok_944: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm3,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 ymm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc ymm3,ymm3,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc ymm3,ymm3,ymm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast ymm3,ymm3,ymm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm11,zmm3,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 YMMWORD[64+r11*1+r10]{k1},ymm3 + vmovdqu8 zmm19{k1}{z},zmm19 + vpshufb zmm17,zmm17,zmm29 + vpshufb ymm19,ymm19,ymm29 + vextracti32x4 xmm7,zmm19,1 + sub r13,16 * (6 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_945 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm19,ymm1,0x01 + vpclmulqdq ymm5,ymm19,ymm1,0x10 + vpclmulqdq ymm0,ymm19,ymm1,0x11 + vpclmulqdq ymm3,ymm19,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_945 +$L$_small_initial_partial_block_945: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm19,xmm1,0x01 + vpclmulqdq xmm5,xmm19,xmm1,0x10 + vpclmulqdq xmm0,xmm19,xmm1,0x11 + vpclmulqdq xmm3,xmm19,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_945: + + or r13,r13 + je NEAR $L$_after_reduction_945 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_945: + jmp NEAR $L$_last_blocks_done_933 +$L$_last_num_blocks_is_7_933: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,249 + jae NEAR $L$_16_blocks_overflow_946 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + jmp NEAR $L$_16_blocks_ok_946 + +$L$_16_blocks_overflow_946: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 +$L$_16_blocks_ok_946: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm3,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti32x4 xmm11,zmm3,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10]{k1},zmm3 + vmovdqu8 zmm19{k1}{z},zmm19 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vextracti32x4 xmm7,zmm19,2 + sub r13,16 * (7 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_947 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm19,zmm1,0x01 + vpclmulqdq zmm5,zmm19,zmm1,0x10 + vpclmulqdq zmm0,zmm19,zmm1,0x11 + vpclmulqdq zmm3,zmm19,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_947 +$L$_small_initial_partial_block_947: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm19,ymm1,0x01 + vpclmulqdq ymm5,ymm19,ymm1,0x10 + vpclmulqdq ymm0,ymm19,ymm1,0x11 + vpclmulqdq ymm3,ymm19,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_947: + + or r13,r13 + je NEAR $L$_after_reduction_947 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_947: + jmp NEAR $L$_last_blocks_done_933 +$L$_last_num_blocks_is_8_933: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,64 + kmovq k1,[rax*8+r10] + cmp r15d,248 + jae NEAR $L$_16_blocks_overflow_948 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + jmp NEAR $L$_16_blocks_ok_948 + +$L$_16_blocks_overflow_948: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 +$L$_16_blocks_ok_948: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm3,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19{k1}{z},[64+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti32x4 xmm11,zmm3,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10]{k1},zmm3 + vmovdqu8 zmm19{k1}{z},zmm19 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vextracti32x4 xmm7,zmm19,3 + sub r13,16 * (8 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_949 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_949 +$L$_small_initial_partial_block_949: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm17,zmm1,0x11 + vpclmulqdq zmm22,zmm17,zmm1,0x00 + vpclmulqdq zmm30,zmm17,zmm1,0x01 + vpclmulqdq zmm31,zmm17,zmm1,0x10 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm19,zmm1,0x01 + vpclmulqdq zmm5,zmm19,zmm1,0x10 + vpclmulqdq zmm0,zmm19,zmm1,0x11 + vpclmulqdq zmm3,zmm19,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_949: + + or r13,r13 + je NEAR $L$_after_reduction_949 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_949: + jmp NEAR $L$_last_blocks_done_933 +$L$_last_num_blocks_is_9_933: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,247 + jae NEAR $L$_16_blocks_overflow_950 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd xmm4,xmm3,xmm27 + jmp NEAR $L$_16_blocks_ok_950 + +$L$_16_blocks_overflow_950: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb xmm4,xmm4,xmm29 +$L$_16_blocks_ok_950: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm4,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 xmm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc xmm4,xmm4,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc xmm4,xmm4,xmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast xmm4,xmm4,xmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq xmm4,xmm4,xmm20 + vextracti32x4 xmm11,zmm4,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 XMMWORD[128+r11*1+r10]{k1},xmm4 + vmovdqu8 zmm20{k1}{z},zmm20 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb xmm20,xmm20,xmm29 + vextracti32x4 xmm7,zmm20,0 + sub r13,16 * (9 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_951 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm20,xmm1,0x01 + vpclmulqdq xmm5,xmm20,xmm1,0x10 + vpclmulqdq xmm0,xmm20,xmm1,0x11 + vpclmulqdq xmm3,xmm20,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_951 +$L$_small_initial_partial_block_951: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_951: + + or r13,r13 + je NEAR $L$_after_reduction_951 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_951: + jmp NEAR $L$_last_blocks_done_933 +$L$_last_num_blocks_is_10_933: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,246 + jae NEAR $L$_16_blocks_overflow_952 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd ymm4,ymm3,ymm27 + jmp NEAR $L$_16_blocks_ok_952 + +$L$_16_blocks_overflow_952: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb ymm4,ymm4,ymm29 +$L$_16_blocks_ok_952: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm4,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 ymm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc ymm4,ymm4,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc ymm4,ymm4,ymm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast ymm4,ymm4,ymm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq ymm4,ymm4,ymm20 + vextracti32x4 xmm11,zmm4,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 YMMWORD[128+r11*1+r10]{k1},ymm4 + vmovdqu8 zmm20{k1}{z},zmm20 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb ymm20,ymm20,ymm29 + vextracti32x4 xmm7,zmm20,1 + sub r13,16 * (10 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_953 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm20,ymm1,0x01 + vpclmulqdq ymm5,ymm20,ymm1,0x10 + vpclmulqdq ymm0,ymm20,ymm1,0x11 + vpclmulqdq ymm3,ymm20,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_953 +$L$_small_initial_partial_block_953: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm20,xmm1,0x01 + vpclmulqdq xmm5,xmm20,xmm1,0x10 + vpclmulqdq xmm0,xmm20,xmm1,0x11 + vpclmulqdq xmm3,xmm20,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_953: + + or r13,r13 + je NEAR $L$_after_reduction_953 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_953: + jmp NEAR $L$_last_blocks_done_933 +$L$_last_num_blocks_is_11_933: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,245 + jae NEAR $L$_16_blocks_overflow_954 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + jmp NEAR $L$_16_blocks_ok_954 + +$L$_16_blocks_overflow_954: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 +$L$_16_blocks_ok_954: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm4,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vextracti32x4 xmm11,zmm4,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10]{k1},zmm4 + vmovdqu8 zmm20{k1}{z},zmm20 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb zmm20,zmm20,zmm29 + vextracti32x4 xmm7,zmm20,2 + sub r13,16 * (11 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_955 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm20,zmm1,0x01 + vpclmulqdq zmm5,zmm20,zmm1,0x10 + vpclmulqdq zmm0,zmm20,zmm1,0x11 + vpclmulqdq zmm3,zmm20,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_955 +$L$_small_initial_partial_block_955: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm20,ymm1,0x01 + vpclmulqdq ymm5,ymm20,ymm1,0x10 + vpclmulqdq ymm0,ymm20,ymm1,0x11 + vpclmulqdq ymm3,ymm20,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_955: + + or r13,r13 + je NEAR $L$_after_reduction_955 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_955: + jmp NEAR $L$_last_blocks_done_933 +$L$_last_num_blocks_is_12_933: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,128 + kmovq k1,[rax*8+r10] + cmp r15d,244 + jae NEAR $L$_16_blocks_overflow_956 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + jmp NEAR $L$_16_blocks_ok_956 + +$L$_16_blocks_overflow_956: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 +$L$_16_blocks_ok_956: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm4,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20{k1}{z},[128+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vextracti32x4 xmm11,zmm4,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10]{k1},zmm4 + vmovdqu8 zmm20{k1}{z},zmm20 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb zmm20,zmm20,zmm29 + vextracti32x4 xmm7,zmm20,3 + sub r13,16 * (12 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_957 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[160+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_957 +$L$_small_initial_partial_block_957: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vpxorq zmm8,zmm0,zmm8 + vpxorq zmm22,zmm3,zmm22 + vpxorq zmm30,zmm4,zmm30 + vpxorq zmm31,zmm5,zmm31 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm20,zmm1,0x01 + vpclmulqdq zmm5,zmm20,zmm1,0x10 + vpclmulqdq zmm0,zmm20,zmm1,0x11 + vpclmulqdq zmm3,zmm20,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_957: + + or r13,r13 + je NEAR $L$_after_reduction_957 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_957: + jmp NEAR $L$_last_blocks_done_933 +$L$_last_num_blocks_is_13_933: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,243 + jae NEAR $L$_16_blocks_overflow_958 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd xmm5,xmm4,xmm27 + jmp NEAR $L$_16_blocks_ok_958 + +$L$_16_blocks_overflow_958: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb xmm5,xmm5,xmm29 +$L$_16_blocks_ok_958: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm5,0 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 xmm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc xmm5,xmm5,xmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc xmm5,xmm5,xmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast xmm5,xmm5,xmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq xmm5,xmm5,xmm21 + vextracti32x4 xmm11,zmm5,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 XMMWORD[192+r11*1+r10]{k1},xmm5 + vmovdqu8 zmm21{k1}{z},zmm21 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb zmm20,zmm20,zmm29 + vpshufb xmm21,xmm21,xmm29 + vextracti32x4 xmm7,zmm21,0 + sub r13,16 * (13 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_959 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[144+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm21,xmm1,0x01 + vpclmulqdq xmm5,xmm21,xmm1,0x10 + vpclmulqdq xmm0,xmm21,xmm1,0x11 + vpclmulqdq xmm3,xmm21,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_959 +$L$_small_initial_partial_block_959: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[160+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[224+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[288+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + + vpxorq zmm30,zmm30,zmm26 + vpxorq zmm8,zmm8,zmm24 + vpxorq zmm22,zmm22,zmm25 + + vpxorq zmm30,zmm30,zmm31 + vpsrldq zmm4,zmm30,8 + vpslldq zmm5,zmm30,8 + vpxorq zmm0,zmm8,zmm4 + vpxorq zmm3,zmm22,zmm5 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_959: + + or r13,r13 + je NEAR $L$_after_reduction_959 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_959: + jmp NEAR $L$_last_blocks_done_933 +$L$_last_num_blocks_is_14_933: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,242 + jae NEAR $L$_16_blocks_overflow_960 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd ymm5,ymm4,ymm27 + jmp NEAR $L$_16_blocks_ok_960 + +$L$_16_blocks_overflow_960: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb ymm5,ymm5,ymm29 +$L$_16_blocks_ok_960: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm5,1 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 ymm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc ymm5,ymm5,ymm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc ymm5,ymm5,ymm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast ymm5,ymm5,ymm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq ymm5,ymm5,ymm21 + vextracti32x4 xmm11,zmm5,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 YMMWORD[192+r11*1+r10]{k1},ymm5 + vmovdqu8 zmm21{k1}{z},zmm21 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb zmm20,zmm20,zmm29 + vpshufb ymm21,ymm21,ymm29 + vextracti32x4 xmm7,zmm21,1 + sub r13,16 * (14 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_961 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[128+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm21,ymm1,0x01 + vpclmulqdq ymm5,ymm21,ymm1,0x10 + vpclmulqdq ymm0,ymm21,ymm1,0x11 + vpclmulqdq ymm3,ymm21,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_961 +$L$_small_initial_partial_block_961: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[144+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[208+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[272+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 xmm1,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm21,xmm1,0x01 + vpclmulqdq xmm5,xmm21,xmm1,0x10 + vpclmulqdq xmm0,xmm21,xmm1,0x11 + vpclmulqdq xmm3,xmm21,xmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_961: + + or r13,r13 + je NEAR $L$_after_reduction_961 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_961: + jmp NEAR $L$_last_blocks_done_933 +$L$_last_num_blocks_is_15_933: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,241 + jae NEAR $L$_16_blocks_overflow_962 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_962 + +$L$_16_blocks_overflow_962: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_962: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm5,2 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + vextracti32x4 xmm11,zmm5,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[192+r11*1+r10]{k1},zmm5 + vmovdqu8 zmm21{k1}{z},zmm21 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb zmm20,zmm20,zmm29 + vpshufb zmm21,zmm21,zmm29 + vextracti32x4 xmm7,zmm21,2 + sub r13,16 * (15 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_963 + + + + + + sub r13,16 + mov QWORD[r8],0 + vmovdqu64 zmm1,ZMMWORD[112+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm21,zmm1,0x01 + vpclmulqdq zmm5,zmm21,zmm1,0x10 + vpclmulqdq zmm0,zmm21,zmm1,0x11 + vpclmulqdq zmm3,zmm21,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_963 +$L$_small_initial_partial_block_963: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[128+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[192+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[256+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm21,ymm1,0x01 + vpclmulqdq ymm5,ymm21,ymm1,0x10 + vpclmulqdq ymm0,ymm21,ymm1,0x11 + vpclmulqdq ymm3,ymm21,ymm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_963: + + or r13,r13 + je NEAR $L$_after_reduction_963 + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_963: + jmp NEAR $L$_last_blocks_done_933 +$L$_last_num_blocks_is_16_933: + lea r10,[byte64_len_to_mask_table] + mov rax,r13 + sub rax,192 + kmovq k1,[rax*8+r10] + cmp r15d,240 + jae NEAR $L$_16_blocks_overflow_964 + vpaddd zmm0,zmm2,zmm28 + vpaddd zmm3,zmm0,zmm27 + vpaddd zmm4,zmm3,zmm27 + vpaddd zmm5,zmm4,zmm27 + jmp NEAR $L$_16_blocks_ok_964 + +$L$_16_blocks_overflow_964: + vpshufb zmm2,zmm2,zmm29 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vmovdqa64 zmm5,ZMMWORD[ddq_add_4444] + vpaddd zmm3,zmm0,zmm5 + vpaddd zmm4,zmm3,zmm5 + vpaddd zmm5,zmm4,zmm5 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 +$L$_16_blocks_ok_964: + + + + + vbroadcastf64x2 zmm30,ZMMWORD[rcx] + vpxorq zmm8,zmm14,ZMMWORD[768+rsp] + vmovdqu64 zmm1,ZMMWORD[rbx*1+rsp] + vextracti32x4 xmm2,zmm5,3 + vshufi64x2 zmm2,zmm2,zmm2,0 + + + vbroadcastf64x2 zmm31,ZMMWORD[16+rcx] + vmovdqu64 zmm18,ZMMWORD[64+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[832+rsp] + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm30 + vpxorq zmm4,zmm4,zmm30 + vpxorq zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[32+rcx] + + + vpclmulqdq zmm14,zmm8,zmm1,0x11 + vpclmulqdq zmm7,zmm8,zmm1,0x00 + vpclmulqdq zmm10,zmm8,zmm1,0x01 + vpclmulqdq zmm11,zmm8,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[128+rbx*1+rsp] + vmovdqa64 zmm8,ZMMWORD[896+rsp] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[48+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vmovdqu64 zmm18,ZMMWORD[192+rbx*1+rsp] + vmovdqa64 zmm22,ZMMWORD[960+rsp] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[64+rcx] + + + vpclmulqdq zmm20,zmm8,zmm1,0x10 + vpclmulqdq zmm21,zmm8,zmm1,0x01 + vpclmulqdq zmm17,zmm8,zmm1,0x11 + vpclmulqdq zmm19,zmm8,zmm1,0x00 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[80+rcx] + + + vpternlogq zmm14,zmm12,zmm17,0x96 + vpternlogq zmm7,zmm13,zmm19,0x96 + vpternlogq zmm11,zmm16,zmm21,0x96 + vpternlogq zmm10,zmm15,zmm20,0x96 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[96+rcx] + vmovdqu8 zmm17,ZMMWORD[r11*1+r9] + vmovdqu8 zmm19,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm20,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm21{k1}{z},[192+r11*1+r9] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[112+rcx] + + + vpclmulqdq zmm15,zmm22,zmm18,0x10 + vpclmulqdq zmm16,zmm22,zmm18,0x01 + vpclmulqdq zmm12,zmm22,zmm18,0x11 + vpclmulqdq zmm13,zmm22,zmm18,0x00 + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[128+rcx] + vpternlogq zmm10,zmm11,zmm16,0x96 + vpxorq zmm24,zmm14,zmm12 + vpxorq zmm25,zmm7,zmm13 + vpxorq zmm26,zmm10,zmm15 + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vbroadcastf64x2 zmm31,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm30 + vaesenc zmm3,zmm3,zmm30 + vaesenc zmm4,zmm4,zmm30 + vaesenc zmm5,zmm5,zmm30 + vbroadcastf64x2 zmm30,ZMMWORD[224+rcx] + vaesenc zmm0,zmm0,zmm31 + vaesenc zmm3,zmm3,zmm31 + vaesenc zmm4,zmm4,zmm31 + vaesenc zmm5,zmm5,zmm31 + vaesenclast zmm0,zmm0,zmm30 + vaesenclast zmm3,zmm3,zmm30 + vaesenclast zmm4,zmm4,zmm30 + vaesenclast zmm5,zmm5,zmm30 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vpxorq zmm4,zmm4,zmm20 + vpxorq zmm5,zmm5,zmm21 + vextracti32x4 xmm11,zmm5,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[192+r11*1+r10]{k1},zmm5 + vmovdqu8 zmm21{k1}{z},zmm21 + vpshufb zmm17,zmm17,zmm29 + vpshufb zmm19,zmm19,zmm29 + vpshufb zmm20,zmm20,zmm29 + vpshufb zmm21,zmm21,zmm29 + vextracti32x4 xmm7,zmm21,3 + sub r13,16 * (16 - 1) +$L$_small_initial_partial_block_965: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm11 + vmovdqu64 zmm1,ZMMWORD[112+rdx] + vpclmulqdq zmm0,zmm17,zmm1,0x11 + vpclmulqdq zmm3,zmm17,zmm1,0x00 + vpclmulqdq zmm4,zmm17,zmm1,0x01 + vpclmulqdq zmm5,zmm17,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[176+rdx] + vpclmulqdq zmm8,zmm19,zmm1,0x11 + vpclmulqdq zmm22,zmm19,zmm1,0x00 + vpclmulqdq zmm30,zmm19,zmm1,0x01 + vpclmulqdq zmm31,zmm19,zmm1,0x10 + vmovdqu64 zmm1,ZMMWORD[240+rdx] + vpclmulqdq zmm17,zmm20,zmm1,0x11 + vpclmulqdq zmm19,zmm20,zmm1,0x00 + vpternlogq zmm8,zmm17,zmm0,0x96 + vpternlogq zmm22,zmm19,zmm3,0x96 + vpclmulqdq zmm17,zmm20,zmm1,0x01 + vpclmulqdq zmm19,zmm20,zmm1,0x10 + vpternlogq zmm30,zmm17,zmm4,0x96 + vpternlogq zmm31,zmm19,zmm5,0x96 + vmovdqu64 ymm1,YMMWORD[304+rdx] + vinserti64x2 zmm1,zmm1,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm21,zmm1,0x01 + vpclmulqdq zmm5,zmm21,zmm1,0x10 + vpclmulqdq zmm0,zmm21,zmm1,0x11 + vpclmulqdq zmm3,zmm21,zmm1,0x00 + + vpxorq zmm4,zmm4,zmm30 + vpternlogq zmm5,zmm26,zmm31,0x96 + vpternlogq zmm0,zmm24,zmm8,0x96 + vpternlogq zmm3,zmm25,zmm22,0x96 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm30,zmm4,8 + vpslldq zmm31,zmm4,8 + vpxorq zmm0,zmm0,zmm30 + vpxorq zmm3,zmm3,zmm31 + vextracti64x4 ymm30,zmm0,1 + vpxorq ymm0,ymm0,ymm30 + vextracti32x4 xmm30,ymm0,1 + vpxorq xmm0,xmm0,xmm30 + vextracti64x4 ymm31,zmm3,1 + vpxorq ymm3,ymm3,ymm31 + vextracti32x4 xmm31,ymm3,1 + vpxorq xmm3,xmm3,xmm31 + vmovdqa64 xmm1,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm1,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm1,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm1,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_965: + vpxorq xmm14,xmm14,xmm7 +$L$_after_reduction_965: + jmp NEAR $L$_last_blocks_done_933 +$L$_last_num_blocks_is_0_933: + vmovdqa64 zmm13,ZMMWORD[768+rsp] + vpxorq zmm13,zmm13,zmm14 + vmovdqu64 zmm12,ZMMWORD[rbx*1+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[832+rsp] + vmovdqu64 zmm12,ZMMWORD[64+rbx*1+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + vpxorq zmm26,zmm4,zmm10 + vpxorq zmm24,zmm0,zmm6 + vpxorq zmm25,zmm3,zmm7 + vpternlogq zmm26,zmm5,zmm11,0x96 + vmovdqa64 zmm13,ZMMWORD[896+rsp] + vmovdqu64 zmm12,ZMMWORD[128+rbx*1+rsp] + vpclmulqdq zmm0,zmm13,zmm12,0x11 + vpclmulqdq zmm3,zmm13,zmm12,0x00 + vpclmulqdq zmm4,zmm13,zmm12,0x01 + vpclmulqdq zmm5,zmm13,zmm12,0x10 + vmovdqa64 zmm13,ZMMWORD[960+rsp] + vmovdqu64 zmm12,ZMMWORD[192+rbx*1+rsp] + vpclmulqdq zmm6,zmm13,zmm12,0x11 + vpclmulqdq zmm7,zmm13,zmm12,0x00 + vpclmulqdq zmm10,zmm13,zmm12,0x01 + vpclmulqdq zmm11,zmm13,zmm12,0x10 + + vpternlogq zmm26,zmm4,zmm10,0x96 + vpternlogq zmm24,zmm0,zmm6,0x96 + vpternlogq zmm25,zmm3,zmm7,0x96 + vpternlogq zmm26,zmm5,zmm11,0x96 + + vpsrldq zmm0,zmm26,8 + vpslldq zmm3,zmm26,8 + vpxorq zmm24,zmm24,zmm0 + vpxorq zmm25,zmm25,zmm3 + vextracti64x4 ymm0,zmm24,1 + vpxorq ymm24,ymm24,ymm0 + vextracti32x4 xmm0,ymm24,1 + vpxorq xmm24,xmm24,xmm0 + vextracti64x4 ymm3,zmm25,1 + vpxorq ymm25,ymm25,ymm3 + vextracti32x4 xmm3,ymm25,1 + vpxorq xmm25,xmm25,xmm3 + vmovdqa64 xmm4,XMMWORD[POLY2] + + + vpclmulqdq xmm0,xmm4,xmm25,0x01 + vpslldq xmm0,xmm0,8 + vpxorq xmm0,xmm25,xmm0 + + + vpclmulqdq xmm3,xmm4,xmm0,0x00 + vpsrldq xmm3,xmm3,4 + vpclmulqdq xmm14,xmm4,xmm0,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm3,xmm24,0x96 + +$L$_last_blocks_done_933: + vpshufb xmm2,xmm2,xmm29 + jmp NEAR $L$_ghash_done_821 + +$L$_message_below_equal_16_blocks_821: + + + mov r12d,r13d + add r12d,15 + shr r12d,4 + cmp r12,8 + je NEAR $L$_small_initial_num_blocks_is_8_966 + jl NEAR $L$_small_initial_num_blocks_is_7_1_966 + + + cmp r12,12 + je NEAR $L$_small_initial_num_blocks_is_12_966 + jl NEAR $L$_small_initial_num_blocks_is_11_9_966 + + + cmp r12,16 + je NEAR $L$_small_initial_num_blocks_is_16_966 + cmp r12,15 + je NEAR $L$_small_initial_num_blocks_is_15_966 + cmp r12,14 + je NEAR $L$_small_initial_num_blocks_is_14_966 + jmp NEAR $L$_small_initial_num_blocks_is_13_966 + +$L$_small_initial_num_blocks_is_11_9_966: + + cmp r12,11 + je NEAR $L$_small_initial_num_blocks_is_11_966 + cmp r12,10 + je NEAR $L$_small_initial_num_blocks_is_10_966 + jmp NEAR $L$_small_initial_num_blocks_is_9_966 + +$L$_small_initial_num_blocks_is_7_1_966: + cmp r12,4 + je NEAR $L$_small_initial_num_blocks_is_4_966 + jl NEAR $L$_small_initial_num_blocks_is_3_1_966 + + cmp r12,7 + je NEAR $L$_small_initial_num_blocks_is_7_966 + cmp r12,6 + je NEAR $L$_small_initial_num_blocks_is_6_966 + jmp NEAR $L$_small_initial_num_blocks_is_5_966 + +$L$_small_initial_num_blocks_is_3_1_966: + + cmp r12,3 + je NEAR $L$_small_initial_num_blocks_is_3_966 + cmp r12,2 + je NEAR $L$_small_initial_num_blocks_is_2_966 + + + + + +$L$_small_initial_num_blocks_is_1_966: + vmovdqa64 xmm29,XMMWORD[SHUF_MASK] + vpaddd xmm0,xmm2,XMMWORD[ONE] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm0,0 + vpshufb xmm0,xmm0,xmm29 + vmovdqu8 xmm6{k1}{z},[r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq xmm0,xmm0,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc xmm0,xmm0,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc xmm0,xmm0,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc xmm0,xmm0,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc xmm0,xmm0,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc xmm0,xmm0,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc xmm0,xmm0,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc xmm0,xmm0,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc xmm0,xmm0,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc xmm0,xmm0,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenc xmm0,xmm0,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[176+rcx] + vaesenc xmm0,xmm0,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[192+rcx] + vaesenc xmm0,xmm0,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[208+rcx] + vaesenc xmm0,xmm0,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[224+rcx] + vaesenclast xmm0,xmm0,xmm15 + vpxorq xmm0,xmm0,xmm6 + vextracti32x4 xmm12,zmm0,0 + mov r10,QWORD[120+rbp] + vmovdqu8 XMMWORD[r11*1+r10]{k1},xmm0 + vmovdqu8 zmm0{k1}{z},zmm0 + vpshufb xmm6,xmm6,xmm29 + vextracti32x4 xmm13,zmm6,0 + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_967 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 xmm20,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm6,xmm20,0x01 + vpclmulqdq xmm5,xmm6,xmm20,0x10 + vpclmulqdq xmm0,xmm6,xmm20,0x11 + vpclmulqdq xmm3,xmm6,xmm20,0x00 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_967 +$L$_small_initial_partial_block_967: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + + + + + + + + + + + + vpxorq xmm14,xmm14,xmm13 + + jmp NEAR $L$_after_reduction_967 +$L$_small_initial_compute_done_967: +$L$_after_reduction_967: + jmp NEAR $L$_small_initial_blocks_encrypted_966 +$L$_small_initial_num_blocks_is_2_966: + vmovdqa64 ymm29,YMMWORD[SHUF_MASK] + vshufi64x2 ymm0,ymm2,ymm2,0 + vpaddd ymm0,ymm0,YMMWORD[ddq_add_1234] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm0,1 + vpshufb ymm0,ymm0,ymm29 + vmovdqu8 ymm6{k1}{z},[r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq ymm0,ymm0,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc ymm0,ymm0,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc ymm0,ymm0,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc ymm0,ymm0,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc ymm0,ymm0,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc ymm0,ymm0,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc ymm0,ymm0,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc ymm0,ymm0,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc ymm0,ymm0,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc ymm0,ymm0,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenc ymm0,ymm0,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[176+rcx] + vaesenc ymm0,ymm0,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[192+rcx] + vaesenc ymm0,ymm0,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[208+rcx] + vaesenc ymm0,ymm0,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[224+rcx] + vaesenclast ymm0,ymm0,ymm15 + vpxorq ymm0,ymm0,ymm6 + vextracti32x4 xmm12,zmm0,1 + mov r10,QWORD[120+rbp] + vmovdqu8 YMMWORD[r11*1+r10]{k1},ymm0 + vmovdqu8 zmm0{k1}{z},zmm0 + vpshufb ymm6,ymm6,ymm29 + vextracti32x4 xmm13,zmm6,1 + sub r13,16 * (2 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_968 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 ymm20,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm6,ymm20,0x01 + vpclmulqdq ymm5,ymm6,ymm20,0x10 + vpclmulqdq ymm0,ymm6,ymm20,0x11 + vpclmulqdq ymm3,ymm6,ymm20,0x00 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_968 +$L$_small_initial_partial_block_968: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 xmm20,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm6,xmm20,0x01 + vpclmulqdq xmm5,xmm6,xmm20,0x10 + vpclmulqdq xmm0,xmm6,xmm20,0x11 + vpclmulqdq xmm3,xmm6,xmm20,0x00 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_968: + + or r13,r13 + je NEAR $L$_after_reduction_968 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_968: + jmp NEAR $L$_small_initial_blocks_encrypted_966 +$L$_small_initial_num_blocks_is_3_966: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm0,2 + vpshufb zmm0,zmm0,zmm29 + vmovdqu8 zmm6{k1}{z},[r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[224+rcx] + vaesenclast zmm0,zmm0,zmm15 + vpxorq zmm0,zmm0,zmm6 + vextracti32x4 xmm12,zmm0,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10]{k1},zmm0 + vmovdqu8 zmm0{k1}{z},zmm0 + vpshufb zmm6,zmm6,zmm29 + vextracti32x4 xmm13,zmm6,2 + sub r13,16 * (3 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_969 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 ymm20,YMMWORD[304+rdx] + vinserti64x2 zmm20,zmm20,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_969 +$L$_small_initial_partial_block_969: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 ymm20,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm6,ymm20,0x01 + vpclmulqdq ymm5,ymm6,ymm20,0x10 + vpclmulqdq ymm0,ymm6,ymm20,0x11 + vpclmulqdq ymm3,ymm6,ymm20,0x00 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_969: + + or r13,r13 + je NEAR $L$_after_reduction_969 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_969: + jmp NEAR $L$_small_initial_blocks_encrypted_966 +$L$_small_initial_num_blocks_is_4_966: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm0,3 + vpshufb zmm0,zmm0,zmm29 + vmovdqu8 zmm6{k1}{z},[r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[224+rcx] + vaesenclast zmm0,zmm0,zmm15 + vpxorq zmm0,zmm0,zmm6 + vextracti32x4 xmm12,zmm0,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10]{k1},zmm0 + vmovdqu8 zmm0{k1}{z},zmm0 + vpshufb zmm6,zmm6,zmm29 + vextracti32x4 xmm13,zmm6,3 + sub r13,16 * (4 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_970 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[288+rdx] + vpclmulqdq zmm15,zmm6,zmm20,0x11 + vpclmulqdq zmm16,zmm6,zmm20,0x00 + vpclmulqdq zmm17,zmm6,zmm20,0x01 + vpclmulqdq zmm19,zmm6,zmm20,0x10 + + vpxorq zmm17,zmm17,zmm19 + vpsrldq zmm4,zmm17,8 + vpslldq zmm5,zmm17,8 + vpxorq zmm0,zmm15,zmm4 + vpxorq zmm3,zmm16,zmm5 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_970 +$L$_small_initial_partial_block_970: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 ymm20,YMMWORD[304+rdx] + vinserti64x2 zmm20,zmm20,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_970: + + or r13,r13 + je NEAR $L$_after_reduction_970 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_970: + jmp NEAR $L$_small_initial_blocks_encrypted_966 +$L$_small_initial_num_blocks_is_5_966: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm2,ZMMWORD[ddq_add_5678] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + sub r15,64 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm3,0 + vpshufb zmm0,zmm0,zmm29 + vpshufb xmm3,xmm3,xmm29 + vmovdqu8 zmm6,ZMMWORD[r11*1+r9] + vmovdqu8 xmm7{k1}{z},[64+r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vpxorq xmm3,xmm3,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc xmm3,xmm3,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc xmm3,xmm3,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc xmm3,xmm3,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc xmm3,xmm3,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc xmm3,xmm3,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc xmm3,xmm3,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc xmm3,xmm3,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc xmm3,xmm3,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc xmm3,xmm3,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc xmm3,xmm3,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc xmm3,xmm3,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc xmm3,xmm3,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc xmm3,xmm3,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[224+rcx] + vaesenclast zmm0,zmm0,zmm15 + vaesenclast xmm3,xmm3,xmm15 + vpxorq zmm0,zmm0,zmm6 + vpxorq xmm3,xmm3,xmm7 + vextracti32x4 xmm12,zmm3,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 XMMWORD[64+r11*1+r10]{k1},xmm3 + vmovdqu8 zmm3{k1}{z},zmm3 + vpshufb zmm6,zmm6,zmm29 + vpshufb xmm7,xmm7,xmm29 + vextracti32x4 xmm13,zmm7,0 + sub r13,16 * (5 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_971 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[272+rdx] + vpclmulqdq zmm15,zmm6,zmm20,0x11 + vpclmulqdq zmm16,zmm6,zmm20,0x00 + vpclmulqdq zmm17,zmm6,zmm20,0x01 + vpclmulqdq zmm19,zmm6,zmm20,0x10 + vmovdqu64 xmm20,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm7,xmm20,0x01 + vpclmulqdq xmm5,xmm7,xmm20,0x10 + vpclmulqdq xmm0,xmm7,xmm20,0x11 + vpclmulqdq xmm3,xmm7,xmm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_971 +$L$_small_initial_partial_block_971: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[288+rdx] + vpclmulqdq zmm15,zmm6,zmm20,0x11 + vpclmulqdq zmm16,zmm6,zmm20,0x00 + vpclmulqdq zmm17,zmm6,zmm20,0x01 + vpclmulqdq zmm19,zmm6,zmm20,0x10 + + vpxorq zmm17,zmm17,zmm19 + vpsrldq zmm4,zmm17,8 + vpslldq zmm5,zmm17,8 + vpxorq zmm0,zmm15,zmm4 + vpxorq zmm3,zmm16,zmm5 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_971: + + or r13,r13 + je NEAR $L$_after_reduction_971 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_971: + jmp NEAR $L$_small_initial_blocks_encrypted_966 +$L$_small_initial_num_blocks_is_6_966: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm2,ZMMWORD[ddq_add_5678] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + sub r15,64 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm3,1 + vpshufb zmm0,zmm0,zmm29 + vpshufb ymm3,ymm3,ymm29 + vmovdqu8 zmm6,ZMMWORD[r11*1+r9] + vmovdqu8 ymm7{k1}{z},[64+r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vpxorq ymm3,ymm3,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc ymm3,ymm3,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc ymm3,ymm3,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc ymm3,ymm3,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc ymm3,ymm3,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc ymm3,ymm3,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc ymm3,ymm3,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc ymm3,ymm3,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc ymm3,ymm3,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc ymm3,ymm3,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc ymm3,ymm3,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc ymm3,ymm3,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc ymm3,ymm3,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc ymm3,ymm3,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[224+rcx] + vaesenclast zmm0,zmm0,zmm15 + vaesenclast ymm3,ymm3,ymm15 + vpxorq zmm0,zmm0,zmm6 + vpxorq ymm3,ymm3,ymm7 + vextracti32x4 xmm12,zmm3,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 YMMWORD[64+r11*1+r10]{k1},ymm3 + vmovdqu8 zmm3{k1}{z},zmm3 + vpshufb zmm6,zmm6,zmm29 + vpshufb ymm7,ymm7,ymm29 + vextracti32x4 xmm13,zmm7,1 + sub r13,16 * (6 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_972 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[256+rdx] + vpclmulqdq zmm15,zmm6,zmm20,0x11 + vpclmulqdq zmm16,zmm6,zmm20,0x00 + vpclmulqdq zmm17,zmm6,zmm20,0x01 + vpclmulqdq zmm19,zmm6,zmm20,0x10 + vmovdqu64 ymm20,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm7,ymm20,0x01 + vpclmulqdq ymm5,ymm7,ymm20,0x10 + vpclmulqdq ymm0,ymm7,ymm20,0x11 + vpclmulqdq ymm3,ymm7,ymm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_972 +$L$_small_initial_partial_block_972: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[272+rdx] + vpclmulqdq zmm15,zmm6,zmm20,0x11 + vpclmulqdq zmm16,zmm6,zmm20,0x00 + vpclmulqdq zmm17,zmm6,zmm20,0x01 + vpclmulqdq zmm19,zmm6,zmm20,0x10 + vmovdqu64 xmm20,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm7,xmm20,0x01 + vpclmulqdq xmm5,xmm7,xmm20,0x10 + vpclmulqdq xmm0,xmm7,xmm20,0x11 + vpclmulqdq xmm3,xmm7,xmm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_972: + + or r13,r13 + je NEAR $L$_after_reduction_972 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_972: + jmp NEAR $L$_small_initial_blocks_encrypted_966 +$L$_small_initial_num_blocks_is_7_966: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm2,ZMMWORD[ddq_add_5678] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + sub r15,64 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm3,2 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vmovdqu8 zmm6,ZMMWORD[r11*1+r9] + vmovdqu8 zmm7{k1}{z},[64+r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[224+rcx] + vaesenclast zmm0,zmm0,zmm15 + vaesenclast zmm3,zmm3,zmm15 + vpxorq zmm0,zmm0,zmm6 + vpxorq zmm3,zmm3,zmm7 + vextracti32x4 xmm12,zmm3,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10]{k1},zmm3 + vmovdqu8 zmm3{k1}{z},zmm3 + vpshufb zmm6,zmm6,zmm29 + vpshufb zmm7,zmm7,zmm29 + vextracti32x4 xmm13,zmm7,2 + sub r13,16 * (7 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_973 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[240+rdx] + vpclmulqdq zmm15,zmm6,zmm20,0x11 + vpclmulqdq zmm16,zmm6,zmm20,0x00 + vpclmulqdq zmm17,zmm6,zmm20,0x01 + vpclmulqdq zmm19,zmm6,zmm20,0x10 + vmovdqu64 ymm20,YMMWORD[304+rdx] + vinserti64x2 zmm20,zmm20,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm7,zmm20,0x01 + vpclmulqdq zmm5,zmm7,zmm20,0x10 + vpclmulqdq zmm0,zmm7,zmm20,0x11 + vpclmulqdq zmm3,zmm7,zmm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_973 +$L$_small_initial_partial_block_973: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[256+rdx] + vpclmulqdq zmm15,zmm6,zmm20,0x11 + vpclmulqdq zmm16,zmm6,zmm20,0x00 + vpclmulqdq zmm17,zmm6,zmm20,0x01 + vpclmulqdq zmm19,zmm6,zmm20,0x10 + vmovdqu64 ymm20,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm7,ymm20,0x01 + vpclmulqdq ymm5,ymm7,ymm20,0x10 + vpclmulqdq ymm0,ymm7,ymm20,0x11 + vpclmulqdq ymm3,ymm7,ymm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_973: + + or r13,r13 + je NEAR $L$_after_reduction_973 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_973: + jmp NEAR $L$_small_initial_blocks_encrypted_966 +$L$_small_initial_num_blocks_is_8_966: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm2,ZMMWORD[ddq_add_5678] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + sub r15,64 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm3,3 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vmovdqu8 zmm6,ZMMWORD[r11*1+r9] + vmovdqu8 zmm7{k1}{z},[64+r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[224+rcx] + vaesenclast zmm0,zmm0,zmm15 + vaesenclast zmm3,zmm3,zmm15 + vpxorq zmm0,zmm0,zmm6 + vpxorq zmm3,zmm3,zmm7 + vextracti32x4 xmm12,zmm3,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10]{k1},zmm3 + vmovdqu8 zmm3{k1}{z},zmm3 + vpshufb zmm6,zmm6,zmm29 + vpshufb zmm7,zmm7,zmm29 + vextracti32x4 xmm13,zmm7,3 + sub r13,16 * (8 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_974 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[224+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[288+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vpxorq zmm15,zmm0,zmm15 + vpxorq zmm16,zmm3,zmm16 + vpxorq zmm17,zmm4,zmm17 + vpxorq zmm19,zmm5,zmm19 + + vpxorq zmm17,zmm17,zmm19 + vpsrldq zmm4,zmm17,8 + vpslldq zmm5,zmm17,8 + vpxorq zmm0,zmm15,zmm4 + vpxorq zmm3,zmm16,zmm5 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_974 +$L$_small_initial_partial_block_974: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[240+rdx] + vpclmulqdq zmm15,zmm6,zmm20,0x11 + vpclmulqdq zmm16,zmm6,zmm20,0x00 + vpclmulqdq zmm17,zmm6,zmm20,0x01 + vpclmulqdq zmm19,zmm6,zmm20,0x10 + vmovdqu64 ymm20,YMMWORD[304+rdx] + vinserti64x2 zmm20,zmm20,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm7,zmm20,0x01 + vpclmulqdq zmm5,zmm7,zmm20,0x10 + vpclmulqdq zmm0,zmm7,zmm20,0x11 + vpclmulqdq zmm3,zmm7,zmm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_974: + + or r13,r13 + je NEAR $L$_after_reduction_974 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_974: + jmp NEAR $L$_small_initial_blocks_encrypted_966 +$L$_small_initial_num_blocks_is_9_966: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm2,ZMMWORD[ddq_add_5678] + vpaddd zmm4,zmm0,ZMMWORD[ddq_add_8888] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + sub r15,128 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm4,0 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb xmm4,xmm4,xmm29 + vmovdqu8 zmm6,ZMMWORD[r11*1+r9] + vmovdqu8 zmm7,ZMMWORD[64+r11*1+r9] + vmovdqu8 xmm10{k1}{z},[128+r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm15 + vpxorq xmm4,xmm4,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc xmm4,xmm4,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc xmm4,xmm4,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc xmm4,xmm4,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc xmm4,xmm4,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc xmm4,xmm4,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc xmm4,xmm4,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc xmm4,xmm4,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc xmm4,xmm4,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc xmm4,xmm4,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc xmm4,xmm4,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc xmm4,xmm4,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc xmm4,xmm4,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc xmm4,xmm4,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[224+rcx] + vaesenclast zmm0,zmm0,zmm15 + vaesenclast zmm3,zmm3,zmm15 + vaesenclast xmm4,xmm4,xmm15 + vpxorq zmm0,zmm0,zmm6 + vpxorq zmm3,zmm3,zmm7 + vpxorq xmm4,xmm4,xmm10 + vextracti32x4 xmm12,zmm4,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 XMMWORD[128+r11*1+r10]{k1},xmm4 + vmovdqu8 zmm4{k1}{z},zmm4 + vpshufb zmm6,zmm6,zmm29 + vpshufb zmm7,zmm7,zmm29 + vpshufb xmm10,xmm10,xmm29 + vextracti32x4 xmm13,zmm10,0 + sub r13,16 * (9 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_975 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[208+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[272+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vpxorq zmm15,zmm0,zmm15 + vpxorq zmm16,zmm3,zmm16 + vpxorq zmm17,zmm4,zmm17 + vpxorq zmm19,zmm5,zmm19 + vmovdqu64 xmm20,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm10,xmm20,0x01 + vpclmulqdq xmm5,xmm10,xmm20,0x10 + vpclmulqdq xmm0,xmm10,xmm20,0x11 + vpclmulqdq xmm3,xmm10,xmm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_975 +$L$_small_initial_partial_block_975: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[224+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[288+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vpxorq zmm15,zmm0,zmm15 + vpxorq zmm16,zmm3,zmm16 + vpxorq zmm17,zmm4,zmm17 + vpxorq zmm19,zmm5,zmm19 + + vpxorq zmm17,zmm17,zmm19 + vpsrldq zmm4,zmm17,8 + vpslldq zmm5,zmm17,8 + vpxorq zmm0,zmm15,zmm4 + vpxorq zmm3,zmm16,zmm5 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_975: + + or r13,r13 + je NEAR $L$_after_reduction_975 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_975: + jmp NEAR $L$_small_initial_blocks_encrypted_966 +$L$_small_initial_num_blocks_is_10_966: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm2,ZMMWORD[ddq_add_5678] + vpaddd zmm4,zmm0,ZMMWORD[ddq_add_8888] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + sub r15,128 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm4,1 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb ymm4,ymm4,ymm29 + vmovdqu8 zmm6,ZMMWORD[r11*1+r9] + vmovdqu8 zmm7,ZMMWORD[64+r11*1+r9] + vmovdqu8 ymm10{k1}{z},[128+r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm15 + vpxorq ymm4,ymm4,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc ymm4,ymm4,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc ymm4,ymm4,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc ymm4,ymm4,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc ymm4,ymm4,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc ymm4,ymm4,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc ymm4,ymm4,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc ymm4,ymm4,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc ymm4,ymm4,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc ymm4,ymm4,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc ymm4,ymm4,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc ymm4,ymm4,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc ymm4,ymm4,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc ymm4,ymm4,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[224+rcx] + vaesenclast zmm0,zmm0,zmm15 + vaesenclast zmm3,zmm3,zmm15 + vaesenclast ymm4,ymm4,ymm15 + vpxorq zmm0,zmm0,zmm6 + vpxorq zmm3,zmm3,zmm7 + vpxorq ymm4,ymm4,ymm10 + vextracti32x4 xmm12,zmm4,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 YMMWORD[128+r11*1+r10]{k1},ymm4 + vmovdqu8 zmm4{k1}{z},zmm4 + vpshufb zmm6,zmm6,zmm29 + vpshufb zmm7,zmm7,zmm29 + vpshufb ymm10,ymm10,ymm29 + vextracti32x4 xmm13,zmm10,1 + sub r13,16 * (10 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_976 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[192+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[256+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vpxorq zmm15,zmm0,zmm15 + vpxorq zmm16,zmm3,zmm16 + vpxorq zmm17,zmm4,zmm17 + vpxorq zmm19,zmm5,zmm19 + vmovdqu64 ymm20,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm10,ymm20,0x01 + vpclmulqdq ymm5,ymm10,ymm20,0x10 + vpclmulqdq ymm0,ymm10,ymm20,0x11 + vpclmulqdq ymm3,ymm10,ymm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_976 +$L$_small_initial_partial_block_976: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[208+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[272+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vpxorq zmm15,zmm0,zmm15 + vpxorq zmm16,zmm3,zmm16 + vpxorq zmm17,zmm4,zmm17 + vpxorq zmm19,zmm5,zmm19 + vmovdqu64 xmm20,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm10,xmm20,0x01 + vpclmulqdq xmm5,xmm10,xmm20,0x10 + vpclmulqdq xmm0,xmm10,xmm20,0x11 + vpclmulqdq xmm3,xmm10,xmm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_976: + + or r13,r13 + je NEAR $L$_after_reduction_976 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_976: + jmp NEAR $L$_small_initial_blocks_encrypted_966 +$L$_small_initial_num_blocks_is_11_966: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm2,ZMMWORD[ddq_add_5678] + vpaddd zmm4,zmm0,ZMMWORD[ddq_add_8888] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + sub r15,128 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm4,2 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vmovdqu8 zmm6,ZMMWORD[r11*1+r9] + vmovdqu8 zmm7,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm10{k1}{z},[128+r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm15 + vpxorq zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[224+rcx] + vaesenclast zmm0,zmm0,zmm15 + vaesenclast zmm3,zmm3,zmm15 + vaesenclast zmm4,zmm4,zmm15 + vpxorq zmm0,zmm0,zmm6 + vpxorq zmm3,zmm3,zmm7 + vpxorq zmm4,zmm4,zmm10 + vextracti32x4 xmm12,zmm4,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10]{k1},zmm4 + vmovdqu8 zmm4{k1}{z},zmm4 + vpshufb zmm6,zmm6,zmm29 + vpshufb zmm7,zmm7,zmm29 + vpshufb zmm10,zmm10,zmm29 + vextracti32x4 xmm13,zmm10,2 + sub r13,16 * (11 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_977 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[176+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[240+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vpxorq zmm15,zmm0,zmm15 + vpxorq zmm16,zmm3,zmm16 + vpxorq zmm17,zmm4,zmm17 + vpxorq zmm19,zmm5,zmm19 + vmovdqu64 ymm20,YMMWORD[304+rdx] + vinserti64x2 zmm20,zmm20,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm10,zmm20,0x01 + vpclmulqdq zmm5,zmm10,zmm20,0x10 + vpclmulqdq zmm0,zmm10,zmm20,0x11 + vpclmulqdq zmm3,zmm10,zmm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_977 +$L$_small_initial_partial_block_977: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[192+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[256+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vpxorq zmm15,zmm0,zmm15 + vpxorq zmm16,zmm3,zmm16 + vpxorq zmm17,zmm4,zmm17 + vpxorq zmm19,zmm5,zmm19 + vmovdqu64 ymm20,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm10,ymm20,0x01 + vpclmulqdq ymm5,ymm10,ymm20,0x10 + vpclmulqdq ymm0,ymm10,ymm20,0x11 + vpclmulqdq ymm3,ymm10,ymm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_977: + + or r13,r13 + je NEAR $L$_after_reduction_977 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_977: + jmp NEAR $L$_small_initial_blocks_encrypted_966 +$L$_small_initial_num_blocks_is_12_966: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm2,ZMMWORD[ddq_add_5678] + vpaddd zmm4,zmm0,ZMMWORD[ddq_add_8888] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + sub r15,128 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm4,3 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vmovdqu8 zmm6,ZMMWORD[r11*1+r9] + vmovdqu8 zmm7,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm10{k1}{z},[128+r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm15 + vpxorq zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[224+rcx] + vaesenclast zmm0,zmm0,zmm15 + vaesenclast zmm3,zmm3,zmm15 + vaesenclast zmm4,zmm4,zmm15 + vpxorq zmm0,zmm0,zmm6 + vpxorq zmm3,zmm3,zmm7 + vpxorq zmm4,zmm4,zmm10 + vextracti32x4 xmm12,zmm4,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10]{k1},zmm4 + vmovdqu8 zmm4{k1}{z},zmm4 + vpshufb zmm6,zmm6,zmm29 + vpshufb zmm7,zmm7,zmm29 + vpshufb zmm10,zmm10,zmm29 + vextracti32x4 xmm13,zmm10,3 + sub r13,16 * (12 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_978 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[160+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[224+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[288+rdx] + vpclmulqdq zmm6,zmm10,zmm20,0x11 + vpclmulqdq zmm7,zmm10,zmm20,0x00 + vpternlogq zmm15,zmm6,zmm0,0x96 + vpternlogq zmm16,zmm7,zmm3,0x96 + vpclmulqdq zmm6,zmm10,zmm20,0x01 + vpclmulqdq zmm7,zmm10,zmm20,0x10 + vpternlogq zmm17,zmm6,zmm4,0x96 + vpternlogq zmm19,zmm7,zmm5,0x96 + + vpxorq zmm17,zmm17,zmm19 + vpsrldq zmm4,zmm17,8 + vpslldq zmm5,zmm17,8 + vpxorq zmm0,zmm15,zmm4 + vpxorq zmm3,zmm16,zmm5 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_978 +$L$_small_initial_partial_block_978: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[176+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[240+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vpxorq zmm15,zmm0,zmm15 + vpxorq zmm16,zmm3,zmm16 + vpxorq zmm17,zmm4,zmm17 + vpxorq zmm19,zmm5,zmm19 + vmovdqu64 ymm20,YMMWORD[304+rdx] + vinserti64x2 zmm20,zmm20,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm10,zmm20,0x01 + vpclmulqdq zmm5,zmm10,zmm20,0x10 + vpclmulqdq zmm0,zmm10,zmm20,0x11 + vpclmulqdq zmm3,zmm10,zmm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_978: + + or r13,r13 + je NEAR $L$_after_reduction_978 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_978: + jmp NEAR $L$_small_initial_blocks_encrypted_966 +$L$_small_initial_num_blocks_is_13_966: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm2,ZMMWORD[ddq_add_5678] + vpaddd zmm4,zmm0,ZMMWORD[ddq_add_8888] + vpaddd zmm5,zmm3,ZMMWORD[ddq_add_8888] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + sub r15,192 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm5,0 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb xmm5,xmm5,xmm29 + vmovdqu8 zmm6,ZMMWORD[r11*1+r9] + vmovdqu8 zmm7,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm10,ZMMWORD[128+r11*1+r9] + vmovdqu8 xmm11{k1}{z},[192+r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm15 + vpxorq zmm4,zmm4,zmm15 + vpxorq xmm5,xmm5,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc xmm5,xmm5,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc xmm5,xmm5,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc xmm5,xmm5,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc xmm5,xmm5,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc xmm5,xmm5,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc xmm5,xmm5,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc xmm5,xmm5,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc xmm5,xmm5,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc xmm5,xmm5,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc xmm5,xmm5,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc xmm5,xmm5,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc xmm5,xmm5,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc xmm5,xmm5,xmm15 + vbroadcastf64x2 zmm15,ZMMWORD[224+rcx] + vaesenclast zmm0,zmm0,zmm15 + vaesenclast zmm3,zmm3,zmm15 + vaesenclast zmm4,zmm4,zmm15 + vaesenclast xmm5,xmm5,xmm15 + vpxorq zmm0,zmm0,zmm6 + vpxorq zmm3,zmm3,zmm7 + vpxorq zmm4,zmm4,zmm10 + vpxorq xmm5,xmm5,xmm11 + vextracti32x4 xmm12,zmm5,0 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 XMMWORD[192+r11*1+r10]{k1},xmm5 + vmovdqu8 zmm5{k1}{z},zmm5 + vpshufb zmm6,zmm6,zmm29 + vpshufb zmm7,zmm7,zmm29 + vpshufb zmm10,zmm10,zmm29 + vpshufb xmm11,xmm11,xmm29 + vextracti32x4 xmm13,zmm11,0 + sub r13,16 * (13 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_979 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[144+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[208+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[272+rdx] + vpclmulqdq zmm6,zmm10,zmm20,0x11 + vpclmulqdq zmm7,zmm10,zmm20,0x00 + vpternlogq zmm15,zmm6,zmm0,0x96 + vpternlogq zmm16,zmm7,zmm3,0x96 + vpclmulqdq zmm6,zmm10,zmm20,0x01 + vpclmulqdq zmm7,zmm10,zmm20,0x10 + vpternlogq zmm17,zmm6,zmm4,0x96 + vpternlogq zmm19,zmm7,zmm5,0x96 + vmovdqu64 xmm20,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm11,xmm20,0x01 + vpclmulqdq xmm5,xmm11,xmm20,0x10 + vpclmulqdq xmm0,xmm11,xmm20,0x11 + vpclmulqdq xmm3,xmm11,xmm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_979 +$L$_small_initial_partial_block_979: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[160+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[224+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[288+rdx] + vpclmulqdq zmm6,zmm10,zmm20,0x11 + vpclmulqdq zmm7,zmm10,zmm20,0x00 + vpternlogq zmm15,zmm6,zmm0,0x96 + vpternlogq zmm16,zmm7,zmm3,0x96 + vpclmulqdq zmm6,zmm10,zmm20,0x01 + vpclmulqdq zmm7,zmm10,zmm20,0x10 + vpternlogq zmm17,zmm6,zmm4,0x96 + vpternlogq zmm19,zmm7,zmm5,0x96 + + vpxorq zmm17,zmm17,zmm19 + vpsrldq zmm4,zmm17,8 + vpslldq zmm5,zmm17,8 + vpxorq zmm0,zmm15,zmm4 + vpxorq zmm3,zmm16,zmm5 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_979: + + or r13,r13 + je NEAR $L$_after_reduction_979 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_979: + jmp NEAR $L$_small_initial_blocks_encrypted_966 +$L$_small_initial_num_blocks_is_14_966: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm2,ZMMWORD[ddq_add_5678] + vpaddd zmm4,zmm0,ZMMWORD[ddq_add_8888] + vpaddd zmm5,zmm3,ZMMWORD[ddq_add_8888] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + sub r15,192 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm5,1 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb ymm5,ymm5,ymm29 + vmovdqu8 zmm6,ZMMWORD[r11*1+r9] + vmovdqu8 zmm7,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm10,ZMMWORD[128+r11*1+r9] + vmovdqu8 ymm11{k1}{z},[192+r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm15 + vpxorq zmm4,zmm4,zmm15 + vpxorq ymm5,ymm5,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc ymm5,ymm5,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc ymm5,ymm5,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc ymm5,ymm5,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc ymm5,ymm5,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc ymm5,ymm5,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc ymm5,ymm5,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc ymm5,ymm5,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc ymm5,ymm5,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc ymm5,ymm5,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc ymm5,ymm5,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc ymm5,ymm5,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc ymm5,ymm5,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc ymm5,ymm5,ymm15 + vbroadcastf64x2 zmm15,ZMMWORD[224+rcx] + vaesenclast zmm0,zmm0,zmm15 + vaesenclast zmm3,zmm3,zmm15 + vaesenclast zmm4,zmm4,zmm15 + vaesenclast ymm5,ymm5,ymm15 + vpxorq zmm0,zmm0,zmm6 + vpxorq zmm3,zmm3,zmm7 + vpxorq zmm4,zmm4,zmm10 + vpxorq ymm5,ymm5,ymm11 + vextracti32x4 xmm12,zmm5,1 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 YMMWORD[192+r11*1+r10]{k1},ymm5 + vmovdqu8 zmm5{k1}{z},zmm5 + vpshufb zmm6,zmm6,zmm29 + vpshufb zmm7,zmm7,zmm29 + vpshufb zmm10,zmm10,zmm29 + vpshufb ymm11,ymm11,ymm29 + vextracti32x4 xmm13,zmm11,1 + sub r13,16 * (14 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_980 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[128+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[192+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[256+rdx] + vpclmulqdq zmm6,zmm10,zmm20,0x11 + vpclmulqdq zmm7,zmm10,zmm20,0x00 + vpternlogq zmm15,zmm6,zmm0,0x96 + vpternlogq zmm16,zmm7,zmm3,0x96 + vpclmulqdq zmm6,zmm10,zmm20,0x01 + vpclmulqdq zmm7,zmm10,zmm20,0x10 + vpternlogq zmm17,zmm6,zmm4,0x96 + vpternlogq zmm19,zmm7,zmm5,0x96 + vmovdqu64 ymm20,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm11,ymm20,0x01 + vpclmulqdq ymm5,ymm11,ymm20,0x10 + vpclmulqdq ymm0,ymm11,ymm20,0x11 + vpclmulqdq ymm3,ymm11,ymm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_980 +$L$_small_initial_partial_block_980: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[144+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[208+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[272+rdx] + vpclmulqdq zmm6,zmm10,zmm20,0x11 + vpclmulqdq zmm7,zmm10,zmm20,0x00 + vpternlogq zmm15,zmm6,zmm0,0x96 + vpternlogq zmm16,zmm7,zmm3,0x96 + vpclmulqdq zmm6,zmm10,zmm20,0x01 + vpclmulqdq zmm7,zmm10,zmm20,0x10 + vpternlogq zmm17,zmm6,zmm4,0x96 + vpternlogq zmm19,zmm7,zmm5,0x96 + vmovdqu64 xmm20,XMMWORD[336+rdx] + vpclmulqdq xmm4,xmm11,xmm20,0x01 + vpclmulqdq xmm5,xmm11,xmm20,0x10 + vpclmulqdq xmm0,xmm11,xmm20,0x11 + vpclmulqdq xmm3,xmm11,xmm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_980: + + or r13,r13 + je NEAR $L$_after_reduction_980 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_980: + jmp NEAR $L$_small_initial_blocks_encrypted_966 +$L$_small_initial_num_blocks_is_15_966: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm2,ZMMWORD[ddq_add_5678] + vpaddd zmm4,zmm0,ZMMWORD[ddq_add_8888] + vpaddd zmm5,zmm3,ZMMWORD[ddq_add_8888] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + sub r15,192 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm5,2 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 + vmovdqu8 zmm6,ZMMWORD[r11*1+r9] + vmovdqu8 zmm7,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm10,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm11{k1}{z},[192+r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm15 + vpxorq zmm4,zmm4,zmm15 + vpxorq zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[224+rcx] + vaesenclast zmm0,zmm0,zmm15 + vaesenclast zmm3,zmm3,zmm15 + vaesenclast zmm4,zmm4,zmm15 + vaesenclast zmm5,zmm5,zmm15 + vpxorq zmm0,zmm0,zmm6 + vpxorq zmm3,zmm3,zmm7 + vpxorq zmm4,zmm4,zmm10 + vpxorq zmm5,zmm5,zmm11 + vextracti32x4 xmm12,zmm5,2 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[192+r11*1+r10]{k1},zmm5 + vmovdqu8 zmm5{k1}{z},zmm5 + vpshufb zmm6,zmm6,zmm29 + vpshufb zmm7,zmm7,zmm29 + vpshufb zmm10,zmm10,zmm29 + vpshufb zmm11,zmm11,zmm29 + vextracti32x4 xmm13,zmm11,2 + sub r13,16 * (15 - 1) + + + cmp r13,16 + jl NEAR $L$_small_initial_partial_block_981 + + + + + + sub r13,16 + mov QWORD[r8],0 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[112+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[176+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[240+rdx] + vpclmulqdq zmm6,zmm10,zmm20,0x11 + vpclmulqdq zmm7,zmm10,zmm20,0x00 + vpternlogq zmm15,zmm6,zmm0,0x96 + vpternlogq zmm16,zmm7,zmm3,0x96 + vpclmulqdq zmm6,zmm10,zmm20,0x01 + vpclmulqdq zmm7,zmm10,zmm20,0x10 + vpternlogq zmm17,zmm6,zmm4,0x96 + vpternlogq zmm19,zmm7,zmm5,0x96 + vmovdqu64 ymm20,YMMWORD[304+rdx] + vinserti64x2 zmm20,zmm20,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm11,zmm20,0x01 + vpclmulqdq zmm5,zmm11,zmm20,0x10 + vpclmulqdq zmm0,zmm11,zmm20,0x11 + vpclmulqdq zmm3,zmm11,zmm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + + jmp NEAR $L$_small_initial_compute_done_981 +$L$_small_initial_partial_block_981: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[128+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[192+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[256+rdx] + vpclmulqdq zmm6,zmm10,zmm20,0x11 + vpclmulqdq zmm7,zmm10,zmm20,0x00 + vpternlogq zmm15,zmm6,zmm0,0x96 + vpternlogq zmm16,zmm7,zmm3,0x96 + vpclmulqdq zmm6,zmm10,zmm20,0x01 + vpclmulqdq zmm7,zmm10,zmm20,0x10 + vpternlogq zmm17,zmm6,zmm4,0x96 + vpternlogq zmm19,zmm7,zmm5,0x96 + vmovdqu64 ymm20,YMMWORD[320+rdx] + vpclmulqdq ymm4,ymm11,ymm20,0x01 + vpclmulqdq ymm5,ymm11,ymm20,0x10 + vpclmulqdq ymm0,ymm11,ymm20,0x11 + vpclmulqdq ymm3,ymm11,ymm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_981: + + or r13,r13 + je NEAR $L$_after_reduction_981 + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_981: + jmp NEAR $L$_small_initial_blocks_encrypted_966 +$L$_small_initial_num_blocks_is_16_966: + vmovdqa64 zmm29,ZMMWORD[SHUF_MASK] + vshufi64x2 zmm2,zmm2,zmm2,0 + vpaddd zmm0,zmm2,ZMMWORD[ddq_add_1234] + vpaddd zmm3,zmm2,ZMMWORD[ddq_add_5678] + vpaddd zmm4,zmm0,ZMMWORD[ddq_add_8888] + vpaddd zmm5,zmm3,ZMMWORD[ddq_add_8888] + lea r10,[byte64_len_to_mask_table] + mov r15,r13 + sub r15,192 + kmovq k1,[r15*8+r10] + vextracti32x4 xmm2,zmm5,3 + vpshufb zmm0,zmm0,zmm29 + vpshufb zmm3,zmm3,zmm29 + vpshufb zmm4,zmm4,zmm29 + vpshufb zmm5,zmm5,zmm29 + vmovdqu8 zmm6,ZMMWORD[r11*1+r9] + vmovdqu8 zmm7,ZMMWORD[64+r11*1+r9] + vmovdqu8 zmm10,ZMMWORD[128+r11*1+r9] + vmovdqu8 zmm11{k1}{z},[192+r11*1+r9] + vbroadcastf64x2 zmm15,ZMMWORD[rcx] + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm15 + vpxorq zmm4,zmm4,zmm15 + vpxorq zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[16+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[32+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[48+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[64+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[80+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[96+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[112+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[128+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[144+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[160+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[176+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[192+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[208+rcx] + vaesenc zmm0,zmm0,zmm15 + vaesenc zmm3,zmm3,zmm15 + vaesenc zmm4,zmm4,zmm15 + vaesenc zmm5,zmm5,zmm15 + vbroadcastf64x2 zmm15,ZMMWORD[224+rcx] + vaesenclast zmm0,zmm0,zmm15 + vaesenclast zmm3,zmm3,zmm15 + vaesenclast zmm4,zmm4,zmm15 + vaesenclast zmm5,zmm5,zmm15 + vpxorq zmm0,zmm0,zmm6 + vpxorq zmm3,zmm3,zmm7 + vpxorq zmm4,zmm4,zmm10 + vpxorq zmm5,zmm5,zmm11 + vextracti32x4 xmm12,zmm5,3 + mov r10,QWORD[120+rbp] + vmovdqu8 ZMMWORD[r11*1+r10],zmm0 + vmovdqu8 ZMMWORD[64+r11*1+r10],zmm3 + vmovdqu8 ZMMWORD[128+r11*1+r10],zmm4 + vmovdqu8 ZMMWORD[192+r11*1+r10]{k1},zmm5 + vmovdqu8 zmm5{k1}{z},zmm5 + vpshufb zmm6,zmm6,zmm29 + vpshufb zmm7,zmm7,zmm29 + vpshufb zmm10,zmm10,zmm29 + vpshufb zmm11,zmm11,zmm29 + vextracti32x4 xmm13,zmm11,3 + sub r13,16 * (16 - 1) +$L$_small_initial_partial_block_982: + + + + + + + + + mov QWORD[r8],r13 + vmovdqu64 XMMWORD[16+rdx],xmm12 + vpxorq zmm6,zmm6,zmm14 + vmovdqu64 zmm20,ZMMWORD[112+rdx] + vpclmulqdq zmm0,zmm6,zmm20,0x11 + vpclmulqdq zmm3,zmm6,zmm20,0x00 + vpclmulqdq zmm4,zmm6,zmm20,0x01 + vpclmulqdq zmm5,zmm6,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[176+rdx] + vpclmulqdq zmm15,zmm7,zmm20,0x11 + vpclmulqdq zmm16,zmm7,zmm20,0x00 + vpclmulqdq zmm17,zmm7,zmm20,0x01 + vpclmulqdq zmm19,zmm7,zmm20,0x10 + vmovdqu64 zmm20,ZMMWORD[240+rdx] + vpclmulqdq zmm6,zmm10,zmm20,0x11 + vpclmulqdq zmm7,zmm10,zmm20,0x00 + vpternlogq zmm15,zmm6,zmm0,0x96 + vpternlogq zmm16,zmm7,zmm3,0x96 + vpclmulqdq zmm6,zmm10,zmm20,0x01 + vpclmulqdq zmm7,zmm10,zmm20,0x10 + vpternlogq zmm17,zmm6,zmm4,0x96 + vpternlogq zmm19,zmm7,zmm5,0x96 + vmovdqu64 ymm20,YMMWORD[304+rdx] + vinserti64x2 zmm20,zmm20,ZMMWORD[336+rdx],2 + vpclmulqdq zmm4,zmm11,zmm20,0x01 + vpclmulqdq zmm5,zmm11,zmm20,0x10 + vpclmulqdq zmm0,zmm11,zmm20,0x11 + vpclmulqdq zmm3,zmm11,zmm20,0x00 + + vpxorq zmm4,zmm4,zmm17 + vpxorq zmm5,zmm5,zmm19 + vpxorq zmm0,zmm0,zmm15 + vpxorq zmm3,zmm3,zmm16 + + vpxorq zmm4,zmm4,zmm5 + vpsrldq zmm17,zmm4,8 + vpslldq zmm19,zmm4,8 + vpxorq zmm0,zmm0,zmm17 + vpxorq zmm3,zmm3,zmm19 + vextracti64x4 ymm17,zmm0,1 + vpxorq ymm0,ymm0,ymm17 + vextracti32x4 xmm17,ymm0,1 + vpxorq xmm0,xmm0,xmm17 + vextracti64x4 ymm19,zmm3,1 + vpxorq ymm3,ymm3,ymm19 + vextracti32x4 xmm19,ymm3,1 + vpxorq xmm3,xmm3,xmm19 + vmovdqa64 xmm20,XMMWORD[POLY2] + + + vpclmulqdq xmm4,xmm20,xmm3,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm4,xmm3,xmm4 + + + vpclmulqdq xmm5,xmm20,xmm4,0x00 + vpsrldq xmm5,xmm5,4 + vpclmulqdq xmm14,xmm20,xmm4,0x10 + vpslldq xmm14,xmm14,4 + vpternlogq xmm14,xmm5,xmm0,0x96 + +$L$_small_initial_compute_done_982: + vpxorq xmm14,xmm14,xmm13 +$L$_after_reduction_982: +$L$_small_initial_blocks_encrypted_966: +$L$_ghash_done_821: + vmovdqu64 XMMWORD[rdx],xmm2 + vmovdqu64 XMMWORD[64+rdx],xmm14 +$L$_enc_dec_done_821: + jmp NEAR $L$exit_gcm_decrypt +$L$exit_gcm_decrypt: + cmp QWORD[112+rbp],256 + jbe NEAR $L$skip_hkeys_cleanup_983 + vpxor xmm0,xmm0,xmm0 + vmovdqa64 ZMMWORD[rsp],zmm0 + vmovdqa64 ZMMWORD[64+rsp],zmm0 + vmovdqa64 ZMMWORD[128+rsp],zmm0 + vmovdqa64 ZMMWORD[192+rsp],zmm0 + vmovdqa64 ZMMWORD[256+rsp],zmm0 + vmovdqa64 ZMMWORD[320+rsp],zmm0 + vmovdqa64 ZMMWORD[384+rsp],zmm0 + vmovdqa64 ZMMWORD[448+rsp],zmm0 + vmovdqa64 ZMMWORD[512+rsp],zmm0 + vmovdqa64 ZMMWORD[576+rsp],zmm0 + vmovdqa64 ZMMWORD[640+rsp],zmm0 + vmovdqa64 ZMMWORD[704+rsp],zmm0 +$L$skip_hkeys_cleanup_983: + vzeroupper + vmovdqu xmm15,XMMWORD[((-16))+rbp] + vmovdqu xmm14,XMMWORD[((-32))+rbp] + vmovdqu xmm13,XMMWORD[((-48))+rbp] + vmovdqu xmm12,XMMWORD[((-64))+rbp] + vmovdqu xmm11,XMMWORD[((-80))+rbp] + vmovdqu xmm10,XMMWORD[((-96))+rbp] + vmovdqu xmm9,XMMWORD[((-112))+rbp] + vmovdqu xmm8,XMMWORD[((-128))+rbp] + vmovdqu xmm7,XMMWORD[((-144))+rbp] + vmovdqu xmm6,XMMWORD[((-160))+rbp] + lea rsp,[8+rbp] + pop rsi + + pop rdi + + pop r15 + + pop r14 + + pop r13 + + pop r12 + + pop rbp + + pop rbx + + DB 0F3h,0C3h ;repret +$L$decrypt_seh_end: + + +global ossl_aes_gcm_finalize_avx512 + +ALIGN 32 +ossl_aes_gcm_finalize_avx512: + +DB 243,15,30,250 + vmovdqu xmm2,XMMWORD[336+rcx] + vmovdqu xmm3,XMMWORD[32+rcx] + vmovdqu xmm4,XMMWORD[64+rcx] + + + cmp rdx,0 + je NEAR $L$_partial_done_984 + + vpclmulqdq xmm0,xmm4,xmm2,0x11 + vpclmulqdq xmm16,xmm4,xmm2,0x00 + vpclmulqdq xmm17,xmm4,xmm2,0x01 + vpclmulqdq xmm4,xmm4,xmm2,0x10 + vpxorq xmm4,xmm4,xmm17 + + vpsrldq xmm17,xmm4,8 + vpslldq xmm4,xmm4,8 + vpxorq xmm0,xmm0,xmm17 + vpxorq xmm4,xmm4,xmm16 + + + + vmovdqu64 xmm17,XMMWORD[POLY2] + + vpclmulqdq xmm16,xmm17,xmm4,0x01 + vpslldq xmm16,xmm16,8 + vpxorq xmm4,xmm4,xmm16 + + + + vpclmulqdq xmm16,xmm17,xmm4,0x00 + vpsrldq xmm16,xmm16,4 + vpclmulqdq xmm4,xmm17,xmm4,0x10 + vpslldq xmm4,xmm4,4 + + vpternlogq xmm4,xmm0,xmm16,0x96 + +$L$_partial_done_984: + vmovq xmm5,QWORD[56+rcx] + vpinsrq xmm5,xmm5,QWORD[48+rcx],1 + vpsllq xmm5,xmm5,3 + + vpxor xmm4,xmm4,xmm5 + + vpclmulqdq xmm0,xmm4,xmm2,0x11 + vpclmulqdq xmm16,xmm4,xmm2,0x00 + vpclmulqdq xmm17,xmm4,xmm2,0x01 + vpclmulqdq xmm4,xmm4,xmm2,0x10 + vpxorq xmm4,xmm4,xmm17 + + vpsrldq xmm17,xmm4,8 + vpslldq xmm4,xmm4,8 + vpxorq xmm0,xmm0,xmm17 + vpxorq xmm4,xmm4,xmm16 + + + + vmovdqu64 xmm17,XMMWORD[POLY2] + + vpclmulqdq xmm16,xmm17,xmm4,0x01 + vpslldq xmm16,xmm16,8 + vpxorq xmm4,xmm4,xmm16 + + + + vpclmulqdq xmm16,xmm17,xmm4,0x00 + vpsrldq xmm16,xmm16,4 + vpclmulqdq xmm4,xmm17,xmm4,0x10 + vpslldq xmm4,xmm4,4 + + vpternlogq xmm4,xmm0,xmm16,0x96 + + vpshufb xmm4,xmm4,XMMWORD[SHUF_MASK] + vpxor xmm3,xmm3,xmm4 + +$L$_return_T_984: + vmovdqu XMMWORD[64+rcx],xmm3 +$L$abort_finalize: + DB 0F3h,0C3h ;repret + + +global ossl_gcm_gmult_avx512 + + +ALIGN 32 +ossl_gcm_gmult_avx512: + +DB 243,15,30,250 + vmovdqu64 xmm1,XMMWORD[rcx] + vmovdqu64 xmm2,XMMWORD[336+rdx] + + vpclmulqdq xmm3,xmm1,xmm2,0x11 + vpclmulqdq xmm4,xmm1,xmm2,0x00 + vpclmulqdq xmm5,xmm1,xmm2,0x01 + vpclmulqdq xmm1,xmm1,xmm2,0x10 + vpxorq xmm1,xmm1,xmm5 + + vpsrldq xmm5,xmm1,8 + vpslldq xmm1,xmm1,8 + vpxorq xmm3,xmm3,xmm5 + vpxorq xmm1,xmm1,xmm4 + + + + vmovdqu64 xmm5,XMMWORD[POLY2] + + vpclmulqdq xmm4,xmm5,xmm1,0x01 + vpslldq xmm4,xmm4,8 + vpxorq xmm1,xmm1,xmm4 + + + + vpclmulqdq xmm4,xmm5,xmm1,0x00 + vpsrldq xmm4,xmm4,4 + vpclmulqdq xmm1,xmm5,xmm1,0x10 + vpslldq xmm1,xmm1,4 + + vpternlogq xmm1,xmm3,xmm4,0x96 + + vmovdqu64 XMMWORD[rcx],xmm1 + vzeroupper +$L$abort_gmult: + DB 0F3h,0C3h ;repret + + +section .pdata rdata align=4 +ALIGN 4 + DD $L$setiv_seh_begin wrt ..imagebase + DD $L$setiv_seh_end wrt ..imagebase + DD $L$setiv_seh_info wrt ..imagebase + + DD $L$ghash_seh_begin wrt ..imagebase + DD $L$ghash_seh_end wrt ..imagebase + DD $L$ghash_seh_info wrt ..imagebase + + DD $L$encrypt_seh_begin wrt ..imagebase + DD $L$encrypt_seh_end wrt ..imagebase + DD $L$encrypt_seh_info wrt ..imagebase + + DD $L$decrypt_seh_begin wrt ..imagebase + DD $L$decrypt_seh_end wrt ..imagebase + DD $L$decrypt_seh_info wrt ..imagebase + +section .xdata rdata align=8 +ALIGN 8 +$L$setiv_seh_info: +DB 1 +DB $L$setiv_seh_prolog_end-$L$setiv_seh_begin +DB 31 + +DB 165 +DB $L$setiv_seh_save_xmm15-$L$setiv_seh_begin +DB 248 + DW 9 +DB $L$setiv_seh_save_xmm14-$L$setiv_seh_begin +DB 232 + DW 8 +DB $L$setiv_seh_save_xmm13-$L$setiv_seh_begin +DB 216 + DW 7 +DB $L$setiv_seh_save_xmm12-$L$setiv_seh_begin +DB 200 + DW 6 +DB $L$setiv_seh_save_xmm11-$L$setiv_seh_begin +DB 184 + DW 5 +DB $L$setiv_seh_save_xmm10-$L$setiv_seh_begin +DB 168 + DW 4 +DB $L$setiv_seh_save_xmm9-$L$setiv_seh_begin +DB 152 + DW 3 +DB $L$setiv_seh_save_xmm8-$L$setiv_seh_begin +DB 136 + DW 2 +DB $L$setiv_seh_save_xmm7-$L$setiv_seh_begin +DB 120 + DW 1 +DB $L$setiv_seh_save_xmm6-$L$setiv_seh_begin +DB 104 + DW 0 + +DB $L$setiv_seh_setfp-$L$setiv_seh_begin +DB 3 + + +DB $L$setiv_seh_allocstack_xmm-$L$setiv_seh_begin +DB 1 + DW 21 +DB $L$setiv_seh_push_rsi-$L$setiv_seh_begin +DB 96 +DB $L$setiv_seh_push_rdi-$L$setiv_seh_begin +DB 112 +DB $L$setiv_seh_push_r15-$L$setiv_seh_begin +DB 240 +DB $L$setiv_seh_push_r14-$L$setiv_seh_begin +DB 224 +DB $L$setiv_seh_push_r13-$L$setiv_seh_begin +DB 208 +DB $L$setiv_seh_push_r12-$L$setiv_seh_begin +DB 192 +DB $L$setiv_seh_push_rbp-$L$setiv_seh_begin +DB 80 +DB $L$setiv_seh_push_rbx-$L$setiv_seh_begin +DB 48 +ALIGN 8 +$L$ghash_seh_info: +DB 1 +DB $L$ghash_seh_prolog_end-$L$ghash_seh_begin +DB 31 + +DB 165 +DB $L$ghash_seh_save_xmm15-$L$ghash_seh_begin +DB 248 + DW 9 +DB $L$ghash_seh_save_xmm14-$L$ghash_seh_begin +DB 232 + DW 8 +DB $L$ghash_seh_save_xmm13-$L$ghash_seh_begin +DB 216 + DW 7 +DB $L$ghash_seh_save_xmm12-$L$ghash_seh_begin +DB 200 + DW 6 +DB $L$ghash_seh_save_xmm11-$L$ghash_seh_begin +DB 184 + DW 5 +DB $L$ghash_seh_save_xmm10-$L$ghash_seh_begin +DB 168 + DW 4 +DB $L$ghash_seh_save_xmm9-$L$ghash_seh_begin +DB 152 + DW 3 +DB $L$ghash_seh_save_xmm8-$L$ghash_seh_begin +DB 136 + DW 2 +DB $L$ghash_seh_save_xmm7-$L$ghash_seh_begin +DB 120 + DW 1 +DB $L$ghash_seh_save_xmm6-$L$ghash_seh_begin +DB 104 + DW 0 + +DB $L$ghash_seh_setfp-$L$ghash_seh_begin +DB 3 + + +DB $L$ghash_seh_allocstack_xmm-$L$ghash_seh_begin +DB 1 + DW 21 +DB $L$ghash_seh_push_rsi-$L$ghash_seh_begin +DB 96 +DB $L$ghash_seh_push_rdi-$L$ghash_seh_begin +DB 112 +DB $L$ghash_seh_push_r15-$L$ghash_seh_begin +DB 240 +DB $L$ghash_seh_push_r14-$L$ghash_seh_begin +DB 224 +DB $L$ghash_seh_push_r13-$L$ghash_seh_begin +DB 208 +DB $L$ghash_seh_push_r12-$L$ghash_seh_begin +DB 192 +DB $L$ghash_seh_push_rbp-$L$ghash_seh_begin +DB 80 +DB $L$ghash_seh_push_rbx-$L$ghash_seh_begin +DB 48 +ALIGN 8 +$L$encrypt_seh_info: +DB 1 +DB $L$encrypt_seh_prolog_end-$L$encrypt_seh_begin +DB 31 + +DB 165 +DB $L$encrypt_seh_save_xmm15-$L$encrypt_seh_begin +DB 248 + DW 9 +DB $L$encrypt_seh_save_xmm14-$L$encrypt_seh_begin +DB 232 + DW 8 +DB $L$encrypt_seh_save_xmm13-$L$encrypt_seh_begin +DB 216 + DW 7 +DB $L$encrypt_seh_save_xmm12-$L$encrypt_seh_begin +DB 200 + DW 6 +DB $L$encrypt_seh_save_xmm11-$L$encrypt_seh_begin +DB 184 + DW 5 +DB $L$encrypt_seh_save_xmm10-$L$encrypt_seh_begin +DB 168 + DW 4 +DB $L$encrypt_seh_save_xmm9-$L$encrypt_seh_begin +DB 152 + DW 3 +DB $L$encrypt_seh_save_xmm8-$L$encrypt_seh_begin +DB 136 + DW 2 +DB $L$encrypt_seh_save_xmm7-$L$encrypt_seh_begin +DB 120 + DW 1 +DB $L$encrypt_seh_save_xmm6-$L$encrypt_seh_begin +DB 104 + DW 0 + +DB $L$encrypt_seh_setfp-$L$encrypt_seh_begin +DB 3 + + +DB $L$encrypt_seh_allocstack_xmm-$L$encrypt_seh_begin +DB 1 + DW 21 +DB $L$encrypt_seh_push_rsi-$L$encrypt_seh_begin +DB 96 +DB $L$encrypt_seh_push_rdi-$L$encrypt_seh_begin +DB 112 +DB $L$encrypt_seh_push_r15-$L$encrypt_seh_begin +DB 240 +DB $L$encrypt_seh_push_r14-$L$encrypt_seh_begin +DB 224 +DB $L$encrypt_seh_push_r13-$L$encrypt_seh_begin +DB 208 +DB $L$encrypt_seh_push_r12-$L$encrypt_seh_begin +DB 192 +DB $L$encrypt_seh_push_rbp-$L$encrypt_seh_begin +DB 80 +DB $L$encrypt_seh_push_rbx-$L$encrypt_seh_begin +DB 48 +ALIGN 8 +$L$decrypt_seh_info: +DB 1 +DB $L$decrypt_seh_prolog_end-$L$decrypt_seh_begin +DB 31 + +DB 165 +DB $L$decrypt_seh_save_xmm15-$L$decrypt_seh_begin +DB 248 + DW 9 +DB $L$decrypt_seh_save_xmm14-$L$decrypt_seh_begin +DB 232 + DW 8 +DB $L$decrypt_seh_save_xmm13-$L$decrypt_seh_begin +DB 216 + DW 7 +DB $L$decrypt_seh_save_xmm12-$L$decrypt_seh_begin +DB 200 + DW 6 +DB $L$decrypt_seh_save_xmm11-$L$decrypt_seh_begin +DB 184 + DW 5 +DB $L$decrypt_seh_save_xmm10-$L$decrypt_seh_begin +DB 168 + DW 4 +DB $L$decrypt_seh_save_xmm9-$L$decrypt_seh_begin +DB 152 + DW 3 +DB $L$decrypt_seh_save_xmm8-$L$decrypt_seh_begin +DB 136 + DW 2 +DB $L$decrypt_seh_save_xmm7-$L$decrypt_seh_begin +DB 120 + DW 1 +DB $L$decrypt_seh_save_xmm6-$L$decrypt_seh_begin +DB 104 + DW 0 + +DB $L$decrypt_seh_setfp-$L$decrypt_seh_begin +DB 3 + + +DB $L$decrypt_seh_allocstack_xmm-$L$decrypt_seh_begin +DB 1 + DW 21 +DB $L$decrypt_seh_push_rsi-$L$decrypt_seh_begin +DB 96 +DB $L$decrypt_seh_push_rdi-$L$decrypt_seh_begin +DB 112 +DB $L$decrypt_seh_push_r15-$L$decrypt_seh_begin +DB 240 +DB $L$decrypt_seh_push_r14-$L$decrypt_seh_begin +DB 224 +DB $L$decrypt_seh_push_r13-$L$decrypt_seh_begin +DB 208 +DB $L$decrypt_seh_push_r12-$L$decrypt_seh_begin +DB 192 +DB $L$decrypt_seh_push_rbp-$L$decrypt_seh_begin +DB 80 +DB $L$decrypt_seh_push_rbx-$L$decrypt_seh_begin +DB 48 +section .rdata rdata align=16 +ALIGN 16 +POLY: DQ 0x0000000000000001,0xC200000000000000 + +ALIGN 64 +POLY2: + DQ 0x00000001C2000000,0xC200000000000000 + DQ 0x00000001C2000000,0xC200000000000000 + DQ 0x00000001C2000000,0xC200000000000000 + DQ 0x00000001C2000000,0xC200000000000000 + +ALIGN 16 +TWOONE: DQ 0x0000000000000001,0x0000000100000000 + + + +ALIGN 64 +SHUF_MASK: + DQ 0x08090A0B0C0D0E0F,0x0001020304050607 + DQ 0x08090A0B0C0D0E0F,0x0001020304050607 + DQ 0x08090A0B0C0D0E0F,0x0001020304050607 + DQ 0x08090A0B0C0D0E0F,0x0001020304050607 + +ALIGN 16 +SHIFT_MASK: + DQ 0x0706050403020100,0x0f0e0d0c0b0a0908 + +ALL_F: + DQ 0xffffffffffffffff,0xffffffffffffffff + +ZERO: + DQ 0x0000000000000000,0x0000000000000000 + +ALIGN 16 +ONE: + DQ 0x0000000000000001,0x0000000000000000 + +ALIGN 16 +ONEf: + DQ 0x0000000000000000,0x0100000000000000 + +ALIGN 64 +ddq_add_1234: + DQ 0x0000000000000001,0x0000000000000000 + DQ 0x0000000000000002,0x0000000000000000 + DQ 0x0000000000000003,0x0000000000000000 + DQ 0x0000000000000004,0x0000000000000000 + +ALIGN 64 +ddq_add_5678: + DQ 0x0000000000000005,0x0000000000000000 + DQ 0x0000000000000006,0x0000000000000000 + DQ 0x0000000000000007,0x0000000000000000 + DQ 0x0000000000000008,0x0000000000000000 + +ALIGN 64 +ddq_add_4444: + DQ 0x0000000000000004,0x0000000000000000 + DQ 0x0000000000000004,0x0000000000000000 + DQ 0x0000000000000004,0x0000000000000000 + DQ 0x0000000000000004,0x0000000000000000 + +ALIGN 64 +ddq_add_8888: + DQ 0x0000000000000008,0x0000000000000000 + DQ 0x0000000000000008,0x0000000000000000 + DQ 0x0000000000000008,0x0000000000000000 + DQ 0x0000000000000008,0x0000000000000000 + +ALIGN 64 +ddq_addbe_1234: + DQ 0x0000000000000000,0x0100000000000000 + DQ 0x0000000000000000,0x0200000000000000 + DQ 0x0000000000000000,0x0300000000000000 + DQ 0x0000000000000000,0x0400000000000000 + +ALIGN 64 +ddq_addbe_4444: + DQ 0x0000000000000000,0x0400000000000000 + DQ 0x0000000000000000,0x0400000000000000 + DQ 0x0000000000000000,0x0400000000000000 + DQ 0x0000000000000000,0x0400000000000000 + +ALIGN 64 +byte_len_to_mask_table: + DW 0x0000,0x0001,0x0003,0x0007 + DW 0x000f,0x001f,0x003f,0x007f + DW 0x00ff,0x01ff,0x03ff,0x07ff + DW 0x0fff,0x1fff,0x3fff,0x7fff + DW 0xffff + +ALIGN 64 +byte64_len_to_mask_table: + DQ 0x0000000000000000,0x0000000000000001 + DQ 0x0000000000000003,0x0000000000000007 + DQ 0x000000000000000f,0x000000000000001f + DQ 0x000000000000003f,0x000000000000007f + DQ 0x00000000000000ff,0x00000000000001ff + DQ 0x00000000000003ff,0x00000000000007ff + DQ 0x0000000000000fff,0x0000000000001fff + DQ 0x0000000000003fff,0x0000000000007fff + DQ 0x000000000000ffff,0x000000000001ffff + DQ 0x000000000003ffff,0x000000000007ffff + DQ 0x00000000000fffff,0x00000000001fffff + DQ 0x00000000003fffff,0x00000000007fffff + DQ 0x0000000000ffffff,0x0000000001ffffff + DQ 0x0000000003ffffff,0x0000000007ffffff + DQ 0x000000000fffffff,0x000000001fffffff + DQ 0x000000003fffffff,0x000000007fffffff + DQ 0x00000000ffffffff,0x00000001ffffffff + DQ 0x00000003ffffffff,0x00000007ffffffff + DQ 0x0000000fffffffff,0x0000001fffffffff + DQ 0x0000003fffffffff,0x0000007fffffffff + DQ 0x000000ffffffffff,0x000001ffffffffff + DQ 0x000003ffffffffff,0x000007ffffffffff + DQ 0x00000fffffffffff,0x00001fffffffffff + DQ 0x00003fffffffffff,0x00007fffffffffff + DQ 0x0000ffffffffffff,0x0001ffffffffffff + DQ 0x0003ffffffffffff,0x0007ffffffffffff + DQ 0x000fffffffffffff,0x001fffffffffffff + DQ 0x003fffffffffffff,0x007fffffffffffff + DQ 0x00ffffffffffffff,0x01ffffffffffffff + DQ 0x03ffffffffffffff,0x07ffffffffffffff + DQ 0x0fffffffffffffff,0x1fffffffffffffff + DQ 0x3fffffffffffffff,0x7fffffffffffffff + DQ 0xffffffffffffffff diff --git a/deps/openssl/config/archs/VC-WIN64A/asm_avx2/crypto/modes/aesni-gcm-x86_64.asm b/deps/openssl/config/archs/VC-WIN64A/asm_avx2/crypto/modes/aesni-gcm-x86_64.asm index 9fba32b883a6ba..b9b1b5256142ad 100644 --- a/deps/openssl/config/archs/VC-WIN64A/asm_avx2/crypto/modes/aesni-gcm-x86_64.asm +++ b/deps/openssl/config/archs/VC-WIN64A/asm_avx2/crypto/modes/aesni-gcm-x86_64.asm @@ -851,6 +851,7 @@ $L$gcm_enc_abort: DB 0F3h,0C3h ;repret $L$SEH_end_aesni_gcm_encrypt: +section .rdata rdata align=64 ALIGN 64 $L$bswap_mask: DB 15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0 @@ -866,6 +867,7 @@ DB 65,69,83,45,78,73,32,71,67,77,32,109,111,100,117,108 DB 101,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82 DB 89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112 DB 114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 +section .text ALIGN 64 EXTERN __imp_RtlVirtualUnwind diff --git a/deps/openssl/config/archs/VC-WIN64A/asm_avx2/crypto/modes/ghash-x86_64.asm b/deps/openssl/config/archs/VC-WIN64A/asm_avx2/crypto/modes/ghash-x86_64.asm index 639672d87b00b4..e68d6e5228e7b8 100644 --- a/deps/openssl/config/archs/VC-WIN64A/asm_avx2/crypto/modes/ghash-x86_64.asm +++ b/deps/openssl/config/archs/VC-WIN64A/asm_avx2/crypto/modes/ghash-x86_64.asm @@ -723,6 +723,7 @@ global gcm_init_clmul ALIGN 16 gcm_init_clmul: +DB 243,15,30,250 $L$_init_clmul: $L$SEH_begin_gcm_init_clmul: @@ -1354,6 +1355,7 @@ global gcm_init_avx ALIGN 32 gcm_init_avx: +DB 243,15,30,250 $L$SEH_begin_gcm_init_avx: DB 0x48,0x83,0xec,0x18 @@ -1879,6 +1881,7 @@ $L$SEH_end_gcm_ghash_avx: DB 0F3h,0C3h ;repret +section .rdata rdata align=64 ALIGN 64 $L$bswap_mask: DB 15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0 @@ -1935,6 +1938,7 @@ DB 44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32 DB 60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111 DB 114,103,62,0 ALIGN 64 +section .text EXTERN __imp_RtlVirtualUnwind ALIGN 16 diff --git a/deps/openssl/config/archs/VC-WIN64A/asm_avx2/crypto/params_idx.c b/deps/openssl/config/archs/VC-WIN64A/asm_avx2/crypto/params_idx.c new file mode 100644 index 00000000000000..874125eb57a17c --- /dev/null +++ b/deps/openssl/config/archs/VC-WIN64A/asm_avx2/crypto/params_idx.c @@ -0,0 +1,3366 @@ +/* + * WARNING: do not edit! + * Generated by makefile from crypto/params_idx.c.in + * + * Copyright 2023 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + +#include "internal/e_os.h" +#include "internal/param_names.h" +#include + +/* Machine generated TRIE -- generated by util/perl/OpenSSL/paramnames.pm */ +int ossl_param_find_pidx(const char *s) +{ + switch(s[0]) { + default: + break; + case 'a': + switch(s[1]) { + default: + break; + case 'c': + if (strcmp("vp-info", s + 2) == 0) + return PIDX_KDF_PARAM_X942_ACVPINFO; + break; + case 'd': + switch(s[2]) { + default: + break; + case 'd': + if (strcmp("itional-random", s + 3) == 0) + return PIDX_SIGNATURE_PARAM_ADD_RANDOM; + break; + case '\0': + return PIDX_KDF_PARAM_ARGON2_AD; + } + break; + case 'e': + if (strcmp("ad", s + 2) == 0) + return PIDX_CIPHER_PARAM_AEAD; + break; + case 'l': + switch(s[2]) { + default: + break; + case 'g': + switch(s[3]) { + default: + break; + case '_': + if (strcmp("id_param", s + 4) == 0) + return PIDX_CIPHER_PARAM_ALGORITHM_ID_PARAMS_OLD; + break; + case 'i': + if (strcmp("d-absent", s + 4) == 0) + return PIDX_DIGEST_PARAM_ALGID_ABSENT; + break; + case 'o': + switch(s[4]) { + default: + break; + case 'r': + switch(s[5]) { + default: + break; + case 'i': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case 'h': + switch(s[8]) { + default: + break; + case 'm': + switch(s[9]) { + default: + break; + case '-': + switch(s[10]) { + default: + break; + case 'i': + switch(s[11]) { + default: + break; + case 'd': + switch(s[12]) { + default: + break; + case '-': + if (strcmp("params", s + 13) == 0) + return PIDX_ALG_PARAM_ALGORITHM_ID_PARAMS; + break; + case '\0': + return PIDX_ALG_PARAM_ALGORITHM_ID; + } + } + } + } + } + } + } + } + } + } + break; + case 'i': + if (strcmp("as", s + 3) == 0) + return PIDX_STORE_PARAM_ALIAS; + } + break; + case '\0': + return PIDX_PKEY_PARAM_EC_A; + } + break; + case 'b': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("sis-type", s + 2) == 0) + return PIDX_PKEY_PARAM_EC_CHAR2_TYPE; + break; + case 'i': + if (strcmp("ts", s + 2) == 0) + return PIDX_PKEY_PARAM_BITS; + break; + case 'l': + switch(s[2]) { + default: + break; + case 'o': + switch(s[3]) { + default: + break; + case 'c': + switch(s[4]) { + default: + break; + case 'k': + switch(s[5]) { + default: + break; + case '-': + if (strcmp("size", s + 6) == 0) + return PIDX_MAC_PARAM_BLOCK_SIZE; + break; + case '_': + if (strcmp("padding", s + 6) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_BLOCK_PADDING; + break; + case 's': + if (strcmp("ize", s + 6) == 0) + return PIDX_DIGEST_PARAM_BLOCK_SIZE; + } + } + } + } + break; + case 'u': + if (strcmp("ildinfo", s + 2) == 0) + return PIDX_PROV_PARAM_BUILDINFO; + break; + case '\0': + return PIDX_PKEY_PARAM_EC_B; + } + break; + case 'c': + switch(s[1]) { + default: + break; + case '-': + if (strcmp("rounds", s + 2) == 0) + return PIDX_MAC_PARAM_C_ROUNDS; + break; + case 'e': + if (strcmp("kalg", s + 2) == 0) + return PIDX_KDF_PARAM_CEK_ALG; + break; + case 'i': + if (strcmp("pher", s + 2) == 0) + return PIDX_ALG_PARAM_CIPHER; + break; + case 'o': + switch(s[2]) { + default: + break; + case 'f': + if (strcmp("actor", s + 3) == 0) + return PIDX_PKEY_PARAM_EC_COFACTOR; + break; + case 'n': + switch(s[3]) { + default: + break; + case 's': + if (strcmp("tant", s + 4) == 0) + return PIDX_KDF_PARAM_CONSTANT; + break; + case 't': + if (strcmp("ext-string", s + 4) == 0) + return PIDX_SIGNATURE_PARAM_CONTEXT_STRING; + } + } + break; + case 't': + switch(s[2]) { + default: + break; + case 's': + switch(s[3]) { + default: + break; + case '_': + if (strcmp("mode", s + 4) == 0) + return PIDX_CIPHER_PARAM_CTS_MODE; + break; + case '\0': + return PIDX_CIPHER_PARAM_CTS; + } + } + break; + case 'u': + switch(s[2]) { + default: + break; + case 's': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case 'o': + switch(s[5]) { + default: + break; + case 'm': + switch(s[6]) { + default: + break; + case '-': + if (strcmp("iv", s + 7) == 0) + return PIDX_CIPHER_PARAM_CUSTOM_IV; + break; + case '\0': + return PIDX_MAC_PARAM_CUSTOM; + } + } + } + } + } + } + break; + case 'd': + switch(s[1]) { + default: + break; + case '-': + if (strcmp("rounds", s + 2) == 0) + return PIDX_MAC_PARAM_D_ROUNDS; + break; + case 'a': + switch(s[2]) { + default: + break; + case 't': + switch(s[3]) { + default: + break; + case 'a': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 's': + if (strcmp("tructure", s + 6) == 0) + return PIDX_OBJECT_PARAM_DATA_STRUCTURE; + break; + case 't': + if (strcmp("ype", s + 6) == 0) + return PIDX_OBJECT_PARAM_DATA_TYPE; + } + break; + case '\0': + return PIDX_OBJECT_PARAM_DATA; + } + } + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'c': + switch(s[3]) { + default: + break; + case 'o': + if (strcmp("ded-from-explicit", s + 4) == 0) + return PIDX_PKEY_PARAM_EC_DECODED_FROM_EXPLICIT_PARAMS; + break; + case 'r': + if (strcmp("ypt-only", s + 4) == 0) + return PIDX_CIPHER_PARAM_DECRYPT_ONLY; + } + break; + case 'f': + if (strcmp("ault-digest", s + 3) == 0) + return PIDX_PKEY_PARAM_DEFAULT_DIGEST; + break; + case 's': + if (strcmp("c", s + 3) == 0) + return PIDX_OBJECT_PARAM_DESC; + break; + case 't': + if (strcmp("erministic", s + 3) == 0) + return PIDX_SIGNATURE_PARAM_DETERMINISTIC; + } + break; + case 'h': + if (strcmp("kem-ikm", s + 2) == 0) + return PIDX_PKEY_PARAM_DHKEM_IKM; + break; + case 'i': + switch(s[2]) { + default: + break; + case 'g': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case 's': + switch(s[5]) { + default: + break; + case 't': + switch(s[6]) { + default: + break; + case '-': + switch(s[7]) { + default: + break; + case 'c': + if (strcmp("heck", s + 8) == 0) + return PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK; + break; + case 'n': + if (strcmp("oinit", s + 8) == 0) + return PIDX_MAC_PARAM_DIGEST_NOINIT; + break; + case 'o': + if (strcmp("neshot", s + 8) == 0) + return PIDX_MAC_PARAM_DIGEST_ONESHOT; + break; + case 'p': + if (strcmp("rops", s + 8) == 0) + return PIDX_ASYM_CIPHER_PARAM_OAEP_DIGEST_PROPS; + break; + case 's': + if (strcmp("ize", s + 8) == 0) + return PIDX_PKEY_PARAM_DIGEST_SIZE; + } + break; + case '\0': + return PIDX_STORE_PARAM_DIGEST; + } + } + } + } + break; + case 's': + if (strcmp("tid", s + 3) == 0) + return PIDX_PKEY_PARAM_DIST_ID; + } + break; + case 'r': + if (strcmp("bg-no-trunc-md", s + 2) == 0) + return PIDX_PROV_PARAM_DRBG_TRUNC_DIGEST; + break; + case 's': + if (strcmp("a-sign-disabled", s + 2) == 0) + return PIDX_PROV_PARAM_DSA_SIGN_DISABLED; + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_D; + } + break; + case 'e': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("rly_clean", s + 2) == 0) + return PIDX_KDF_PARAM_EARLY_CLEAN; + break; + case 'c': + switch(s[2]) { + default: + break; + case 'd': + switch(s[3]) { + default: + break; + case 'h': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'c': + switch(s[6]) { + default: + break; + case 'o': + switch(s[7]) { + default: + break; + case 'f': + switch(s[8]) { + default: + break; + case 'a': + switch(s[9]) { + default: + break; + case 'c': + switch(s[10]) { + default: + break; + case 't': + switch(s[11]) { + default: + break; + case 'o': + switch(s[12]) { + default: + break; + case 'r': + switch(s[13]) { + default: + break; + case '-': + switch(s[14]) { + default: + break; + case 'c': + if (strcmp("heck", s + 15) == 0) + return PIDX_PROV_PARAM_ECDH_COFACTOR_CHECK; + break; + case 'm': + if (strcmp("ode", s + 15) == 0) + return PIDX_EXCHANGE_PARAM_EC_ECDH_COFACTOR_MODE; + } + } + } + } + } + } + } + } + } + } + } + } + } + break; + case 'm': + if (strcmp("s_check", s + 2) == 0) + return PIDX_KDF_PARAM_FIPS_EMS_CHECK; + break; + case 'n': + switch(s[2]) { + default: + break; + case 'c': + switch(s[3]) { + default: + break; + case 'o': + switch(s[4]) { + default: + break; + case 'd': + switch(s[5]) { + default: + break; + case 'e': + if (strcmp("d-pub-key", s + 6) == 0) + return PIDX_PKEY_PARAM_ENCODED_PUBLIC_KEY; + break; + case 'i': + if (strcmp("ng", s + 6) == 0) + return PIDX_PKEY_PARAM_EC_ENCODING; + } + } + break; + case 'r': + switch(s[4]) { + default: + break; + case 'y': + switch(s[5]) { + default: + break; + case 'p': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case '-': + switch(s[8]) { + default: + break; + case 'c': + if (strcmp("heck", s + 9) == 0) + return PIDX_CIPHER_PARAM_FIPS_ENCRYPT_CHECK; + break; + case 'l': + if (strcmp("evel", s + 9) == 0) + return PIDX_ENCODER_PARAM_ENCRYPT_LEVEL; + } + } + } + } + } + } + break; + case 'g': + if (strcmp("ine", s + 3) == 0) + return PIDX_ALG_PARAM_ENGINE; + break; + case 't': + switch(s[3]) { + default: + break; + case 'r': + switch(s[4]) { + default: + break; + case 'o': + switch(s[5]) { + default: + break; + case 'p': + switch(s[6]) { + default: + break; + case 'y': + switch(s[7]) { + default: + break; + case '_': + if (strcmp("required", s + 8) == 0) + return PIDX_DRBG_PARAM_ENTROPY_REQUIRED; + break; + case '\0': + return PIDX_KDF_PARAM_HMACDRBG_ENTROPY; + } + } + } + } + } + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_E; + break; + case 'x': + if (strcmp("pect", s + 2) == 0) + return PIDX_STORE_PARAM_EXPECT; + } + break; + case 'f': + switch(s[1]) { + default: + break; + case 'i': + switch(s[2]) { + default: + break; + case 'e': + if (strcmp("ld-type", s + 3) == 0) + return PIDX_PKEY_PARAM_EC_FIELD_TYPE; + break; + case 'n': + if (strcmp("gerprint", s + 3) == 0) + return PIDX_STORE_PARAM_FINGERPRINT; + break; + case 'p': + if (strcmp("s-indicator", s + 3) == 0) + return PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR; + } + } + break; + case 'g': + switch(s[1]) { + default: + break; + case 'e': + switch(s[2]) { + default: + break; + case 'n': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case 'r': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case 'e': + switch(s[8]) { + default: + break; + case '\0': + return PIDX_RAND_PARAM_GENERATE; + } + break; + case 'o': + if (strcmp("r", s + 8) == 0) + return PIDX_PKEY_PARAM_EC_GENERATOR; + } + } + } + } + } + } + break; + case 'i': + if (strcmp("ndex", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_GINDEX; + break; + case 'r': + switch(s[2]) { + default: + break; + case 'o': + switch(s[3]) { + default: + break; + case 'u': + switch(s[4]) { + default: + break; + case 'p': + switch(s[5]) { + default: + break; + case '-': + if (strcmp("check", s + 6) == 0) + return PIDX_PKEY_PARAM_EC_GROUP_CHECK_TYPE; + break; + case '\0': + return PIDX_PKEY_PARAM_GROUP_NAME; + } + } + } + } + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_G; + } + break; + case 'h': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("s-randkey", s + 2) == 0) + return PIDX_CIPHER_PARAM_HAS_RAND_KEY; + break; + case 'i': + if (strcmp("ndex", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_H; + break; + case 'k': + switch(s[2]) { + default: + break; + case 'd': + switch(s[3]) { + default: + break; + case 'f': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 6) == 0) + return PIDX_PROV_PARAM_HKDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 6) == 0) + return PIDX_PROV_PARAM_HKDF_KEY_CHECK; + } + } + } + } + break; + case 'm': + if (strcmp("ac-key-check", s + 2) == 0) + return PIDX_PROV_PARAM_HMAC_KEY_CHECK; + break; + case 's': + if (strcmp("_padding", s + 2) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_HS_PADDING; + } + break; + case 'i': + switch(s[1]) { + default: + break; + case 'd': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_KDF_PARAM_PKCS12_ID; + } + break; + case 'k': + if (strcmp("me", s + 2) == 0) + return PIDX_KEM_PARAM_IKME; + break; + case 'm': + if (strcmp("plicit-rejection", s + 2) == 0) + return PIDX_PKEY_PARAM_IMPLICIT_REJECTION; + break; + case 'n': + switch(s[2]) { + default: + break; + case 'c': + if (strcmp("lude-public", s + 3) == 0) + return PIDX_PKEY_PARAM_EC_INCLUDE_PUBLIC; + break; + case 'f': + if (strcmp("o", s + 3) == 0) + return PIDX_PASSPHRASE_PARAM_INFO; + break; + case 'p': + if (strcmp("ut-type", s + 3) == 0) + return PIDX_STORE_PARAM_INPUT_TYPE; + break; + case 's': + if (strcmp("tance", s + 3) == 0) + return PIDX_SIGNATURE_PARAM_INSTANCE; + } + break; + case 't': + switch(s[2]) { + default: + break; + case 'e': + switch(s[3]) { + default: + break; + case 'r': + switch(s[4]) { + default: + break; + case 'a': + if (strcmp("tion", s + 5) == 0) + return PIDX_GEN_PARAM_ITERATION; + break; + case '\0': + return PIDX_KDF_PARAM_ITER; + } + } + } + break; + case 'v': + switch(s[2]) { + default: + break; + case '-': + if (strcmp("generated", s + 3) == 0) + return PIDX_CIPHER_PARAM_AEAD_IV_GENERATED; + break; + case 'l': + if (strcmp("en", s + 3) == 0) + return PIDX_CIPHER_PARAM_IVLEN; + break; + case '\0': + return PIDX_MAC_PARAM_IV; + } + } + break; + case 'j': + switch(s[1]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_COFACTOR; + } + break; + case 'k': + switch(s[1]) { + default: + break; + case '1': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_PP_K1; + } + break; + case '2': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_PP_K2; + } + break; + case '3': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_PP_K3; + } + break; + case 'a': + if (strcmp("t", s + 2) == 0) + return PIDX_SIGNATURE_PARAM_KAT; + break; + case 'b': + if (strcmp("kdf-key-check", s + 2) == 0) + return PIDX_PROV_PARAM_KBKDF_KEY_CHECK; + break; + case 'd': + switch(s[2]) { + default: + break; + case 'f': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'd': + switch(s[5]) { + default: + break; + case 'i': + switch(s[6]) { + default: + break; + case 'g': + switch(s[7]) { + default: + break; + case 'e': + switch(s[8]) { + default: + break; + case 's': + switch(s[9]) { + default: + break; + case 't': + switch(s[10]) { + default: + break; + case '-': + if (strcmp("props", s + 11) == 0) + return PIDX_EXCHANGE_PARAM_KDF_DIGEST_PROPS; + break; + case '\0': + return PIDX_EXCHANGE_PARAM_KDF_DIGEST; + } + } + } + } + } + } + break; + case 'o': + if (strcmp("utlen", s + 5) == 0) + return PIDX_EXCHANGE_PARAM_KDF_OUTLEN; + break; + case 't': + if (strcmp("ype", s + 5) == 0) + return PIDX_EXCHANGE_PARAM_KDF_TYPE; + break; + case 'u': + if (strcmp("km", s + 5) == 0) + return PIDX_EXCHANGE_PARAM_KDF_UKM; + } + } + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'y': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'c': + if (strcmp("heck", s + 5) == 0) + return PIDX_PKEY_PARAM_FIPS_KEY_CHECK; + break; + case 'l': + if (strcmp("ength", s + 5) == 0) + return PIDX_SKEY_PARAM_KEY_LENGTH; + } + break; + case 'b': + if (strcmp("its", s + 4) == 0) + return PIDX_CIPHER_PARAM_RC2_KEYBITS; + break; + case 'l': + if (strcmp("en", s + 4) == 0) + return PIDX_CIPHER_PARAM_KEYLEN; + break; + case '\0': + return PIDX_MAC_PARAM_KEY; + } + } + break; + case 'm': + if (strcmp("ac-key-check", s + 2) == 0) + return PIDX_PROV_PARAM_KMAC_KEY_CHECK; + } + break; + case 'l': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'b': + if (strcmp("el", s + 3) == 0) + return PIDX_KDF_PARAM_LABEL; + break; + case 'n': + if (strcmp("es", s + 3) == 0) + return PIDX_KDF_PARAM_ARGON2_LANES; + } + } + break; + case 'm': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'c': + switch(s[3]) { + default: + break; + case 'k': + if (strcmp("ey", s + 4) == 0) + return PIDX_CIPHER_PARAM_AEAD_MAC_KEY; + break; + case 'l': + if (strcmp("en", s + 4) == 0) + return PIDX_KDF_PARAM_MAC_SIZE; + break; + case '\0': + return PIDX_ALG_PARAM_MAC; + } + break; + case 'n': + if (strcmp("datory-digest", s + 3) == 0) + return PIDX_PKEY_PARAM_MANDATORY_DIGEST; + break; + case 'x': + switch(s[3]) { + default: + break; + case '-': + if (strcmp("size", s + 4) == 0) + return PIDX_PKEY_PARAM_MAX_SIZE; + break; + case '_': + switch(s[4]) { + default: + break; + case 'a': + if (strcmp("dinlen", s + 5) == 0) + return PIDX_DRBG_PARAM_MAX_ADINLEN; + break; + case 'e': + switch(s[5]) { + default: + break; + case 'a': + if (strcmp("rly_data", s + 6) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_MAX_EARLY_DATA; + break; + case 'n': + if (strcmp("tropylen", s + 6) == 0) + return PIDX_DRBG_PARAM_MAX_ENTROPYLEN; + } + break; + case 'f': + if (strcmp("rag_len", s + 5) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_MAX_FRAG_LEN; + break; + case 'n': + if (strcmp("oncelen", s + 5) == 0) + return PIDX_DRBG_PARAM_MAX_NONCELEN; + break; + case 'p': + if (strcmp("erslen", s + 5) == 0) + return PIDX_DRBG_PARAM_MAX_PERSLEN; + break; + case 'r': + if (strcmp("equest", s + 5) == 0) + return PIDX_RAND_PARAM_MAX_REQUEST; + } + break; + case 'i': + if (strcmp("um_length", s + 4) == 0) + return PIDX_DRBG_PARAM_MAX_LENGTH; + break; + case 'm': + if (strcmp("em_bytes", s + 4) == 0) + return PIDX_KDF_PARAM_SCRYPT_MAXMEM; + } + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'm': + if (strcmp("cost", s + 3) == 0) + return PIDX_KDF_PARAM_ARGON2_MEMCOST; + break; + case 's': + if (strcmp("sage-encoding", s + 3) == 0) + return PIDX_SIGNATURE_PARAM_MESSAGE_ENCODING; + } + break; + case 'g': + switch(s[2]) { + default: + break; + case 'f': + switch(s[3]) { + default: + break; + case '1': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'd': + if (strcmp("igest", s + 6) == 0) + return PIDX_PKEY_PARAM_MGF1_DIGEST; + break; + case 'p': + if (strcmp("roperties", s + 6) == 0) + return PIDX_PKEY_PARAM_MGF1_PROPERTIES; + } + } + break; + case '\0': + return PIDX_PKEY_PARAM_MASKGENFUNC; + } + } + break; + case 'i': + switch(s[2]) { + default: + break; + case 'c': + if (strcmp("alg", s + 3) == 0) + return PIDX_DIGEST_PARAM_MICALG; + break; + case 'n': + switch(s[3]) { + default: + break; + case '_': + switch(s[4]) { + default: + break; + case 'e': + if (strcmp("ntropylen", s + 5) == 0) + return PIDX_DRBG_PARAM_MIN_ENTROPYLEN; + break; + case 'n': + if (strcmp("oncelen", s + 5) == 0) + return PIDX_DRBG_PARAM_MIN_NONCELEN; + } + break; + case 'i': + if (strcmp("um_length", s + 4) == 0) + return PIDX_DRBG_PARAM_MIN_LENGTH; + } + } + break; + case 'l': + switch(s[2]) { + default: + break; + case '-': + switch(s[3]) { + default: + break; + case 'd': + switch(s[4]) { + default: + break; + case 's': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case '.': + switch(s[7]) { + default: + break; + case 'i': + if (strcmp("nput_formats", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_DSA_INPUT_FORMATS; + break; + case 'o': + if (strcmp("utput_formats", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_DSA_OUTPUT_FORMATS; + break; + case 'p': + if (strcmp("refer_seed", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_DSA_PREFER_SEED; + break; + case 'r': + if (strcmp("etain_seed", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_DSA_RETAIN_SEED; + } + } + } + } + break; + case 'k': + switch(s[4]) { + default: + break; + case 'e': + switch(s[5]) { + default: + break; + case 'm': + switch(s[6]) { + default: + break; + case '.': + switch(s[7]) { + default: + break; + case 'i': + switch(s[8]) { + default: + break; + case 'm': + if (strcmp("port_pct_type", s + 9) == 0) + return PIDX_PKEY_PARAM_ML_KEM_IMPORT_PCT_TYPE; + break; + case 'n': + if (strcmp("put_formats", s + 9) == 0) + return PIDX_PKEY_PARAM_ML_KEM_INPUT_FORMATS; + } + break; + case 'o': + if (strcmp("utput_formats", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_KEM_OUTPUT_FORMATS; + break; + case 'p': + if (strcmp("refer_seed", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_KEM_PREFER_SEED; + break; + case 'r': + if (strcmp("etain_seed", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_KEM_RETAIN_SEED; + } + } + } + } + } + } + break; + case 'o': + switch(s[2]) { + default: + break; + case 'd': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case '\0': + return PIDX_LIBSSL_RECORD_LAYER_PARAM_MODE; + } + break; + case 'u': + if (strcmp("le-filename", s + 4) == 0) + return PIDX_PROV_PARAM_CORE_MODULE_FILENAME; + } + } + break; + case 'u': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_SIGNATURE_PARAM_MU; + } + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_M; + } + break; + case 'n': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("me", s + 2) == 0) + return PIDX_STORE_PARAM_ISSUER; + break; + case 'o': + switch(s[2]) { + default: + break; + case '-': + if (strcmp("short-mac", s + 3) == 0) + return PIDX_PROV_PARAM_NO_SHORT_MAC; + break; + case 'n': + switch(s[3]) { + default: + break; + case 'c': + switch(s[4]) { + default: + break; + case 'e': + switch(s[5]) { + default: + break; + case '-': + if (strcmp("type", s + 6) == 0) + return PIDX_SIGNATURE_PARAM_NONCE_TYPE; + break; + case '\0': + return PIDX_KDF_PARAM_HMACDRBG_NONCE; + } + } + } + } + break; + case 'u': + if (strcmp("m", s + 2) == 0) + return PIDX_CIPHER_PARAM_NUM; + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_N; + } + break; + case 'o': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("ep-label", s + 2) == 0) + return PIDX_ASYM_CIPHER_PARAM_OAEP_LABEL; + break; + case 'p': + switch(s[2]) { + default: + break; + case 'e': + switch(s[3]) { + default: + break; + case 'n': + if (strcmp("ssl-version", s + 4) == 0) + return PIDX_PROV_PARAM_CORE_VERSION; + break; + case 'r': + if (strcmp("ation", s + 4) == 0) + return PIDX_KEM_PARAM_OPERATION; + } + break; + case 't': + if (strcmp("ions", s + 3) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_OPTIONS; + } + break; + case 'r': + if (strcmp("der", s + 2) == 0) + return PIDX_PKEY_PARAM_EC_ORDER; + } + break; + case 'p': + switch(s[1]) { + default: + break; + case '1': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_P1; + } + break; + case '2': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_P2; + } + break; + case 'a': + switch(s[2]) { + default: + break; + case 'd': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'm': + if (strcmp("ode", s + 5) == 0) + return PIDX_PKEY_PARAM_PAD_MODE; + break; + case 't': + if (strcmp("ype", s + 5) == 0) + return PIDX_DIGEST_PARAM_PAD_TYPE; + } + break; + case 'd': + if (strcmp("ing", s + 4) == 0) + return PIDX_CIPHER_PARAM_PADDING; + break; + case '\0': + return PIDX_EXCHANGE_PARAM_PAD; + } + break; + case 'r': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case 'y': + switch(s[5]) { + default: + break; + case 'u': + if (strcmp("-info", s + 6) == 0) + return PIDX_KDF_PARAM_X942_PARTYUINFO; + break; + case 'v': + if (strcmp("-info", s + 6) == 0) + return PIDX_KDF_PARAM_X942_PARTYVINFO; + } + } + } + break; + case 's': + if (strcmp("s", s + 3) == 0) + return PIDX_KDF_PARAM_PASSWORD; + } + break; + case 'b': + switch(s[2]) { + default: + break; + case 'i': + if (strcmp("ts", s + 3) == 0) + return PIDX_PKEY_PARAM_FFC_PBITS; + break; + case 'k': + if (strcmp("df2-lower-bound-check", s + 3) == 0) + return PIDX_PROV_PARAM_PBKDF2_LOWER_BOUND_CHECK; + } + break; + case 'c': + if (strcmp("ounter", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_PCOUNTER; + break; + case 'i': + if (strcmp("peline-tag", s + 2) == 0) + return PIDX_CIPHER_PARAM_PIPELINE_AEAD_TAG; + break; + case 'k': + if (strcmp("cs5", s + 2) == 0) + return PIDX_KDF_PARAM_PKCS5; + break; + case 'o': + switch(s[2]) { + default: + break; + case 'i': + if (strcmp("nt-format", s + 3) == 0) + return PIDX_PKEY_PARAM_EC_POINT_CONVERSION_FORMAT; + break; + case 't': + if (strcmp("ential", s + 3) == 0) + return PIDX_GEN_PARAM_POTENTIAL; + } + break; + case 'r': + switch(s[2]) { + default: + break; + case 'e': + switch(s[3]) { + default: + break; + case 'd': + if (strcmp("iction_resistance", s + 4) == 0) + return PIDX_DRBG_PARAM_PREDICTION_RESISTANCE; + break; + case 'f': + if (strcmp("ix", s + 4) == 0) + return PIDX_KDF_PARAM_PREFIX; + } + break; + case 'i': + switch(s[3]) { + default: + break; + case 'm': + if (strcmp("es", s + 4) == 0) + return PIDX_PKEY_PARAM_RSA_PRIMES; + break; + case 'v': + switch(s[4]) { + default: + break; + case '_': + if (strcmp("len", s + 5) == 0) + return PIDX_PKEY_PARAM_DH_PRIV_LEN; + break; + case '\0': + return PIDX_PKEY_PARAM_PRIV_KEY; + } + } + break; + case 'o': + switch(s[3]) { + default: + break; + case 'p': + if (strcmp("erties", s + 4) == 0) + return PIDX_STORE_PARAM_PROPERTIES; + break; + case 'v': + if (strcmp("ider-name", s + 4) == 0) + return PIDX_PROV_PARAM_CORE_PROV_NAME; + } + } + break; + case 'u': + if (strcmp("b", s + 2) == 0) + return PIDX_PKEY_PARAM_PUB_KEY; + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_P; + } + break; + case 'q': + switch(s[1]) { + default: + break; + case '1': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_Q1; + } + break; + case '2': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_Q2; + } + break; + case 'b': + if (strcmp("its", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_QBITS; + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_Q; + break; + case 'x': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_PUB_X; + } + break; + case 'y': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_PUB_Y; + } + } + break; + case 'r': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'n': + switch(s[3]) { + default: + break; + case 'd': + switch(s[4]) { + default: + break; + case 'k': + if (strcmp("ey", s + 5) == 0) + return PIDX_CIPHER_PARAM_RANDOM_KEY; + break; + case 'o': + if (strcmp("m_data", s + 5) == 0) + return PIDX_DRBG_PARAM_RANDOM_DATA; + } + } + break; + case 'w': + if (strcmp("-bytes", s + 3) == 0) + return PIDX_SKEY_PARAM_RAW_BYTES; + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'a': + switch(s[3]) { + default: + break; + case 'd': + switch(s[4]) { + default: + break; + case '_': + switch(s[5]) { + default: + break; + case 'a': + if (strcmp("head", s + 6) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_READ_AHEAD; + break; + case 'b': + if (strcmp("uffer_len", s + 6) == 0) + return PIDX_LIBSSL_RECORD_LAYER_READ_BUFFER_LEN; + } + } + } + break; + case 'f': + if (strcmp("erence", s + 3) == 0) + return PIDX_OBJECT_PARAM_REFERENCE; + break; + case 's': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case 'e': + switch(s[5]) { + default: + break; + case 'd': + switch(s[6]) { + default: + break; + case '_': + switch(s[7]) { + default: + break; + case 'c': + if (strcmp("ounter", s + 8) == 0) + return PIDX_DRBG_PARAM_RESEED_COUNTER; + break; + case 'r': + if (strcmp("equests", s + 8) == 0) + return PIDX_DRBG_PARAM_RESEED_REQUESTS; + break; + case 't': + switch(s[8]) { + default: + break; + case 'i': + switch(s[9]) { + default: + break; + case 'm': + switch(s[10]) { + default: + break; + case 'e': + switch(s[11]) { + default: + break; + case '_': + if (strcmp("interval", s + 12) == 0) + return PIDX_DRBG_PARAM_RESEED_TIME_INTERVAL; + break; + case '\0': + return PIDX_DRBG_PARAM_RESEED_TIME; + } + } + } + } + } + } + } + } + } + } + break; + case 'o': + if (strcmp("unds", s + 2) == 0) + return PIDX_CIPHER_PARAM_ROUNDS; + break; + case 's': + switch(s[2]) { + default: + break; + case 'a': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'c': + switch(s[5]) { + default: + break; + case 'o': + switch(s[6]) { + default: + break; + case 'e': + switch(s[7]) { + default: + break; + case 'f': + switch(s[8]) { + default: + break; + case 'f': + switch(s[9]) { + default: + break; + case 'i': + switch(s[10]) { + default: + break; + case 'c': + switch(s[11]) { + default: + break; + case 'i': + switch(s[12]) { + default: + break; + case 'e': + switch(s[13]) { + default: + break; + case 'n': + switch(s[14]) { + default: + break; + case 't': + switch(s[15]) { + default: + break; + case '1': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT1; + } + break; + case '2': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT2; + } + break; + case '3': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT3; + } + break; + case '4': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT4; + } + break; + case '5': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT5; + } + break; + case '6': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT6; + } + break; + case '7': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT7; + } + break; + case '8': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT8; + } + break; + case '9': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT9; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT; + } + } + } + } + } + } + } + } + } + } + } + break; + case 'd': + if (strcmp("erive-from-pq", s + 5) == 0) + return PIDX_PKEY_PARAM_RSA_DERIVE_FROM_PQ; + break; + case 'e': + switch(s[5]) { + default: + break; + case 'x': + switch(s[6]) { + default: + break; + case 'p': + switch(s[7]) { + default: + break; + case 'o': + switch(s[8]) { + default: + break; + case 'n': + switch(s[9]) { + default: + break; + case 'e': + switch(s[10]) { + default: + break; + case 'n': + switch(s[11]) { + default: + break; + case 't': + switch(s[12]) { + default: + break; + case '1': + switch(s[13]) { + default: + break; + case '0': + switch(s[14]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT10; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT1; + } + break; + case '2': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT2; + } + break; + case '3': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT3; + } + break; + case '4': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT4; + } + break; + case '5': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT5; + } + break; + case '6': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT6; + } + break; + case '7': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT7; + } + break; + case '8': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT8; + } + break; + case '9': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT9; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT; + } + } + } + } + } + } + } + } + break; + case 'f': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case 'c': + switch(s[7]) { + default: + break; + case 't': + switch(s[8]) { + default: + break; + case 'o': + switch(s[9]) { + default: + break; + case 'r': + switch(s[10]) { + default: + break; + case '1': + switch(s[11]) { + default: + break; + case '0': + switch(s[12]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR10; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR1; + } + break; + case '2': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR2; + } + break; + case '3': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR3; + } + break; + case '4': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR4; + } + break; + case '5': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR5; + } + break; + case '6': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR6; + } + break; + case '7': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR7; + } + break; + case '8': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR8; + } + break; + case '9': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR9; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR; + } + } + } + } + } + } + break; + case 'p': + switch(s[5]) { + default: + break; + case 'k': + if (strcmp("cs15-pad-disabled", s + 6) == 0) + return PIDX_PROV_PARAM_RSA_PKCS15_PAD_DISABLED; + break; + case 's': + if (strcmp("s-saltlen-check", s + 6) == 0) + return PIDX_SIGNATURE_PARAM_FIPS_RSA_PSS_SALTLEN_CHECK; + } + break; + case 's': + if (strcmp("ign-x931-pad-disabled", s + 5) == 0) + return PIDX_PROV_PARAM_RSA_SIGN_X931_PAD_DISABLED; + } + } + } + break; + case '\0': + return PIDX_KDF_PARAM_SCRYPT_R; + } + break; + case 's': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'f': + if (strcmp("eprime-generator", s + 3) == 0) + return PIDX_PKEY_PARAM_DH_GENERATOR; + break; + case 'l': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case 'l': + if (strcmp("en", s + 5) == 0) + return PIDX_SIGNATURE_PARAM_PSS_SALTLEN; + break; + case '\0': + return PIDX_MAC_PARAM_SALT; + } + } + break; + case 'v': + if (strcmp("e-parameters", s + 3) == 0) + return PIDX_ENCODER_PARAM_SAVE_PARAMETERS; + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'c': + switch(s[3]) { + default: + break; + case 'r': + if (strcmp("et", s + 4) == 0) + return PIDX_KDF_PARAM_SECRET; + break; + case 'u': + switch(s[4]) { + default: + break; + case 'r': + switch(s[5]) { + default: + break; + case 'i': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case 'y': + switch(s[8]) { + default: + break; + case '-': + switch(s[9]) { + default: + break; + case 'b': + if (strcmp("its", s + 10) == 0) + return PIDX_PKEY_PARAM_SECURITY_BITS; + break; + case 'c': + if (strcmp("hecks", s + 10) == 0) + return PIDX_PROV_PARAM_SECURITY_CHECKS; + } + } + } + } + } + } + } + break; + case 'e': + if (strcmp("d", s + 3) == 0) + return PIDX_PKEY_PARAM_SLH_DSA_SEED; + break; + case 'r': + if (strcmp("ial", s + 3) == 0) + return PIDX_STORE_PARAM_SERIAL; + break; + case 's': + if (strcmp("sion_id", s + 3) == 0) + return PIDX_KDF_PARAM_SSHKDF_SESSION_ID; + } + break; + case 'i': + switch(s[2]) { + default: + break; + case 'g': + switch(s[3]) { + default: + break; + case 'n': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'c': + if (strcmp("heck", s + 6) == 0) + return PIDX_PKEY_PARAM_FIPS_SIGN_CHECK; + break; + case 'x': + if (strcmp("931-pad-check", s + 6) == 0) + return PIDX_SIGNATURE_PARAM_FIPS_SIGN_X931_PAD_CHECK; + } + break; + case 'a': + switch(s[5]) { + default: + break; + case 't': + switch(s[6]) { + default: + break; + case 'u': + switch(s[7]) { + default: + break; + case 'r': + switch(s[8]) { + default: + break; + case 'e': + switch(s[9]) { + default: + break; + case '-': + if (strcmp("digest-check", s + 10) == 0) + return PIDX_PROV_PARAM_SIGNATURE_DIGEST_CHECK; + break; + case '\0': + return PIDX_SIGNATURE_PARAM_SIGNATURE; + } + } + } + } + } + } + } + break; + case 'z': + if (strcmp("e", s + 3) == 0) + return PIDX_MAC_PARAM_SIZE; + } + break; + case 'p': + if (strcmp("eed", s + 2) == 0) + return PIDX_CIPHER_PARAM_SPEED; + break; + case 's': + switch(s[2]) { + default: + break; + case 'h': + switch(s[3]) { + default: + break; + case 'k': + switch(s[4]) { + default: + break; + case 'd': + switch(s[5]) { + default: + break; + case 'f': + switch(s[6]) { + default: + break; + case '-': + switch(s[7]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 8) == 0) + return PIDX_PROV_PARAM_SSHKDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 8) == 0) + return PIDX_PROV_PARAM_SSHKDF_KEY_CHECK; + } + } + } + } + } + break; + case 'k': + switch(s[3]) { + default: + break; + case 'd': + switch(s[4]) { + default: + break; + case 'f': + switch(s[5]) { + default: + break; + case '-': + switch(s[6]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 7) == 0) + return PIDX_PROV_PARAM_SSKDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 7) == 0) + return PIDX_PROV_PARAM_SSKDF_KEY_CHECK; + } + } + } + } + break; + case 'l': + if (strcmp("3-ms", s + 3) == 0) + return PIDX_DIGEST_PARAM_SSL3_MS; + } + break; + case 't': + switch(s[2]) { + default: + break; + case '-': + switch(s[3]) { + default: + break; + case 'd': + if (strcmp("esc", s + 4) == 0) + return PIDX_PROV_PARAM_SELF_TEST_DESC; + break; + case 'p': + if (strcmp("hase", s + 4) == 0) + return PIDX_PROV_PARAM_SELF_TEST_PHASE; + break; + case 't': + if (strcmp("ype", s + 4) == 0) + return PIDX_PROV_PARAM_SELF_TEST_TYPE; + } + break; + case 'a': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case 'e': + switch(s[5]) { + default: + break; + case '\0': + return PIDX_RAND_PARAM_STATE; + } + break; + case 'u': + if (strcmp("s", s + 5) == 0) + return PIDX_PROV_PARAM_STATUS; + } + } + break; + case 'r': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case 'a': + if (strcmp("m_mac", s + 5) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_STREAM_MAC; + break; + case 'n': + if (strcmp("gth", s + 5) == 0) + return PIDX_RAND_PARAM_STRENGTH; + } + } + } + break; + case 'u': + switch(s[2]) { + default: + break; + case 'b': + if (strcmp("ject", s + 3) == 0) + return PIDX_STORE_PARAM_SUBJECT; + break; + case 'p': + switch(s[3]) { + default: + break; + case 'p': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'p': + switch(s[6]) { + default: + break; + case 'r': + if (strcmp("ivinfo", s + 7) == 0) + return PIDX_KDF_PARAM_X942_SUPP_PRIVINFO; + break; + case 'u': + if (strcmp("binfo", s + 7) == 0) + return PIDX_KDF_PARAM_X942_SUPP_PUBINFO; + } + } + } + } + } + } + break; + case 't': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'g': + switch(s[3]) { + default: + break; + case 'l': + if (strcmp("en", s + 4) == 0) + return PIDX_CIPHER_PARAM_AEAD_TAGLEN; + break; + case '\0': + return PIDX_CIPHER_PARAM_AEAD_TAG; + } + } + break; + case 'd': + if (strcmp("es-encrypt-disabled", s + 2) == 0) + return PIDX_PROV_PARAM_TDES_ENCRYPT_DISABLED; + break; + case 'e': + switch(s[2]) { + default: + break; + case 's': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case '-': + if (strcmp("entropy", s + 5) == 0) + return PIDX_SIGNATURE_PARAM_TEST_ENTROPY; + break; + case '_': + switch(s[5]) { + default: + break; + case 'e': + if (strcmp("ntropy", s + 6) == 0) + return PIDX_RAND_PARAM_TEST_ENTROPY; + break; + case 'n': + if (strcmp("once", s + 6) == 0) + return PIDX_RAND_PARAM_TEST_NONCE; + } + } + } + } + break; + case 'h': + if (strcmp("reads", s + 2) == 0) + return PIDX_KDF_PARAM_THREADS; + break; + case 'l': + switch(s[2]) { + default: + break; + case 's': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'c': + if (strcmp("lient-version", s + 5) == 0) + return PIDX_ASYM_CIPHER_PARAM_TLS_CLIENT_VERSION; + break; + case 'd': + if (strcmp("ata-size", s + 5) == 0) + return PIDX_MAC_PARAM_TLS_DATA_SIZE; + break; + case 'g': + switch(s[5]) { + default: + break; + case 'r': + switch(s[6]) { + default: + break; + case 'o': + switch(s[7]) { + default: + break; + case 'u': + switch(s[8]) { + default: + break; + case 'p': + switch(s[9]) { + default: + break; + case '-': + switch(s[10]) { + default: + break; + case 'a': + if (strcmp("lg", s + 11) == 0) + return PIDX_CAPABILITY_TLS_GROUP_ALG; + break; + case 'i': + switch(s[11]) { + default: + break; + case 'd': + switch(s[12]) { + default: + break; + case '\0': + return PIDX_CAPABILITY_TLS_GROUP_ID; + } + break; + case 's': + if (strcmp("-kem", s + 12) == 0) + return PIDX_CAPABILITY_TLS_GROUP_IS_KEM; + } + break; + case 'n': + switch(s[11]) { + default: + break; + case 'a': + switch(s[12]) { + default: + break; + case 'm': + switch(s[13]) { + default: + break; + case 'e': + switch(s[14]) { + default: + break; + case '-': + if (strcmp("internal", s + 15) == 0) + return PIDX_CAPABILITY_TLS_GROUP_NAME_INTERNAL; + break; + case '\0': + return PIDX_CAPABILITY_TLS_GROUP_NAME; + } + } + } + } + break; + case 's': + if (strcmp("ec-bits", s + 11) == 0) + return PIDX_CAPABILITY_TLS_GROUP_SECURITY_BITS; + } + } + } + } + } + } + break; + case 'm': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case 'c': + switch(s[7]) { + default: + break; + case '-': + if (strcmp("size", s + 8) == 0) + return PIDX_CIPHER_PARAM_TLS_MAC_SIZE; + break; + case '\0': + return PIDX_CIPHER_PARAM_TLS_MAC; + } + break; + case 'x': + switch(s[7]) { + default: + break; + case '-': + switch(s[8]) { + default: + break; + case 'd': + if (strcmp("tls", s + 9) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_MAX_DTLS; + break; + case 't': + if (strcmp("ls", s + 9) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_MAX_TLS; + } + } + } + break; + case 'i': + switch(s[6]) { + default: + break; + case 'n': + switch(s[7]) { + default: + break; + case '-': + switch(s[8]) { + default: + break; + case 'd': + if (strcmp("tls", s + 9) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_MIN_DTLS; + break; + case 't': + if (strcmp("ls", s + 9) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_MIN_TLS; + } + } + } + break; + case 'u': + if (strcmp("lti", s + 6) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK; + } + break; + case 'n': + if (strcmp("egotiated-version", s + 5) == 0) + return PIDX_ASYM_CIPHER_PARAM_TLS_NEGOTIATED_VERSION; + break; + case 's': + switch(s[5]) { + default: + break; + case 'i': + switch(s[6]) { + default: + break; + case 'g': + switch(s[7]) { + default: + break; + case 'a': + switch(s[8]) { + default: + break; + case 'l': + switch(s[9]) { + default: + break; + case 'g': + switch(s[10]) { + default: + break; + case '-': + switch(s[11]) { + default: + break; + case 'c': + if (strcmp("ode-point", s + 12) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_CODE_POINT; + break; + case 'h': + switch(s[12]) { + default: + break; + case 'a': + switch(s[13]) { + default: + break; + case 's': + switch(s[14]) { + default: + break; + case 'h': + switch(s[15]) { + default: + break; + case '-': + switch(s[16]) { + default: + break; + case 'n': + if (strcmp("ame", s + 17) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_HASH_NAME; + break; + case 'o': + if (strcmp("id", s + 17) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_HASH_OID; + } + } + } + } + } + break; + case 'i': + if (strcmp("ana-name", s + 12) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_IANA_NAME; + break; + case 'k': + switch(s[12]) { + default: + break; + case 'e': + switch(s[13]) { + default: + break; + case 'y': + switch(s[14]) { + default: + break; + case 't': + switch(s[15]) { + default: + break; + case 'y': + switch(s[16]) { + default: + break; + case 'p': + switch(s[17]) { + default: + break; + case 'e': + switch(s[18]) { + default: + break; + case '-': + if (strcmp("oid", s + 19) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_KEYTYPE_OID; + break; + case '\0': + return PIDX_CAPABILITY_TLS_SIGALG_KEYTYPE; + } + } + } + } + } + } + } + break; + case 'n': + if (strcmp("ame", s + 12) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_NAME; + break; + case 'o': + if (strcmp("id", s + 12) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_OID; + break; + case 's': + switch(s[12]) { + default: + break; + case 'e': + if (strcmp("c-bits", s + 13) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_SECURITY_BITS; + break; + case 'i': + switch(s[13]) { + default: + break; + case 'g': + switch(s[14]) { + default: + break; + case '-': + switch(s[15]) { + default: + break; + case 'n': + if (strcmp("ame", s + 16) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_SIG_NAME; + break; + case 'o': + if (strcmp("id", s + 16) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_SIG_OID; + } + } + } + } + } + } + } + } + } + } + } + break; + case 'v': + if (strcmp("ersion", s + 5) == 0) + return PIDX_CIPHER_PARAM_TLS_VERSION; + } + break; + case '1': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'p': + switch(s[6]) { + default: + break; + case 'r': + switch(s[7]) { + default: + break; + case 'f': + switch(s[8]) { + default: + break; + case '-': + switch(s[9]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 10) == 0) + return PIDX_PROV_PARAM_TLS1_PRF_DIGEST_CHECK; + break; + case 'e': + if (strcmp("ms-check", s + 10) == 0) + return PIDX_PROV_PARAM_TLS1_PRF_EMS_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 10) == 0) + return PIDX_PROV_PARAM_TLS1_PRF_KEY_CHECK; + } + } + } + } + } + break; + case '3': + switch(s[5]) { + default: + break; + case '-': + switch(s[6]) { + default: + break; + case 'k': + switch(s[7]) { + default: + break; + case 'd': + switch(s[8]) { + default: + break; + case 'f': + switch(s[9]) { + default: + break; + case '-': + switch(s[10]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 11) == 0) + return PIDX_PROV_PARAM_TLS13_KDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 11) == 0) + return PIDX_PROV_PARAM_TLS13_KDF_KEY_CHECK; + } + } + } + } + } + } + break; + case 'm': + switch(s[5]) { + default: + break; + case 'u': + switch(s[6]) { + default: + break; + case 'l': + switch(s[7]) { + default: + break; + case 't': + switch(s[8]) { + default: + break; + case 'i': + switch(s[9]) { + default: + break; + case '_': + switch(s[10]) { + default: + break; + case 'a': + switch(s[11]) { + default: + break; + case 'a': + switch(s[12]) { + default: + break; + case 'd': + switch(s[13]) { + default: + break; + case 'p': + if (strcmp("acklen", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD_PACKLEN; + break; + case '\0': + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD; + } + } + } + break; + case 'e': + switch(s[11]) { + default: + break; + case 'n': + switch(s[12]) { + default: + break; + case 'c': + switch(s[13]) { + default: + break; + case 'i': + if (strcmp("n", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_IN; + break; + case 'l': + if (strcmp("en", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_LEN; + break; + case '\0': + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC; + } + } + } + break; + case 'i': + if (strcmp("nterleave", s + 11) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_INTERLEAVE; + break; + case 'm': + switch(s[11]) { + default: + break; + case 'a': + switch(s[12]) { + default: + break; + case 'x': + switch(s[13]) { + default: + break; + case 'b': + if (strcmp("ufsz", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_BUFSIZE; + break; + case 's': + if (strcmp("ndfrag", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_SEND_FRAGMENT; + } + } + } + } + } + } + } + } + } + } + break; + case 'a': + switch(s[4]) { + default: + break; + case 'a': + switch(s[5]) { + default: + break; + case 'd': + switch(s[6]) { + default: + break; + case 'p': + if (strcmp("ad", s + 7) == 0) + return PIDX_CIPHER_PARAM_AEAD_TLS1_AAD_PAD; + break; + case '\0': + return PIDX_CIPHER_PARAM_AEAD_TLS1_AAD; + } + } + } + break; + case 'i': + switch(s[4]) { + default: + break; + case 'v': + switch(s[5]) { + default: + break; + case 'f': + if (strcmp("ixed", s + 6) == 0) + return PIDX_CIPHER_PARAM_AEAD_TLS1_IV_FIXED; + break; + case 'g': + if (strcmp("en", s + 6) == 0) + return PIDX_CIPHER_PARAM_AEAD_TLS1_GET_IV_GEN; + break; + case 'i': + if (strcmp("nv", s + 6) == 0) + return PIDX_CIPHER_PARAM_AEAD_TLS1_SET_IV_INV; + } + } + break; + case 't': + if (strcmp("ree", s + 4) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_TLSTREE; + } + } + break; + case 'p': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_TP_BASIS; + } + break; + case 'y': + if (strcmp("pe", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_TYPE; + } + break; + case 'u': + switch(s[1]) { + default: + break; + case 'k': + if (strcmp("m", s + 2) == 0) + return PIDX_KDF_PARAM_UKM; + break; + case 'p': + if (strcmp("dated-iv", s + 2) == 0) + return PIDX_CIPHER_PARAM_UPDATED_IV; + break; + case 's': + switch(s[2]) { + default: + break; + case 'e': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'b': + if (strcmp("its", s + 5) == 0) + return PIDX_CIPHER_PARAM_USE_BITS; + break; + case 'c': + if (strcmp("ofactor-flag", s + 5) == 0) + return PIDX_PKEY_PARAM_USE_COFACTOR_FLAG; + break; + case 'k': + if (strcmp("eybits", s + 5) == 0) + return PIDX_KDF_PARAM_X942_USE_KEYBITS; + break; + case 'l': + switch(s[5]) { + default: + break; + case '\0': + return PIDX_KDF_PARAM_KBKDF_USE_L; + } + break; + case 's': + if (strcmp("eparator", s + 5) == 0) + return PIDX_KDF_PARAM_KBKDF_USE_SEPARATOR; + } + break; + case '_': + switch(s[4]) { + default: + break; + case 'd': + if (strcmp("erivation_function", s + 5) == 0) + return PIDX_DRBG_PARAM_USE_DF; + break; + case 'e': + if (strcmp("tm", s + 5) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_USE_ETM; + } + } + } + } + break; + case 'v': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'l': + switch(s[3]) { + default: + break; + case 'i': + switch(s[4]) { + default: + break; + case 'd': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case 'e': + switch(s[8]) { + default: + break; + case '-': + switch(s[9]) { + default: + break; + case 'g': + switch(s[10]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_VALIDATE_G; + } + break; + case 'l': + if (strcmp("egacy", s + 10) == 0) + return PIDX_PKEY_PARAM_FFC_VALIDATE_LEGACY; + break; + case 'p': + if (strcmp("q", s + 10) == 0) + return PIDX_PKEY_PARAM_FFC_VALIDATE_PQ; + } + } + } + } + } + } + } + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'r': + switch(s[3]) { + default: + break; + case 'i': + if (strcmp("fy-message", s + 4) == 0) + return PIDX_SIGNATURE_PARAM_FIPS_VERIFY_MESSAGE; + break; + case 's': + if (strcmp("ion", s + 4) == 0) + return PIDX_PROV_PARAM_VERSION; + } + } + } + break; + case 'x': + switch(s[1]) { + default: + break; + case '9': + switch(s[2]) { + default: + break; + case '4': + if (strcmp("2kdf-key-check", s + 3) == 0) + return PIDX_PROV_PARAM_X942KDF_KEY_CHECK; + break; + case '6': + switch(s[3]) { + default: + break; + case '3': + switch(s[4]) { + default: + break; + case 'k': + switch(s[5]) { + default: + break; + case 'd': + switch(s[6]) { + default: + break; + case 'f': + switch(s[7]) { + default: + break; + case '-': + switch(s[8]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 9) == 0) + return PIDX_PROV_PARAM_X963KDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 9) == 0) + return PIDX_PROV_PARAM_X963KDF_KEY_CHECK; + } + } + } + } + } + } + } + break; + case 'c': + if (strcmp("ghash", s + 2) == 0) + return PIDX_KDF_PARAM_SSHKDF_XCGHASH; + break; + case 'o': + switch(s[2]) { + default: + break; + case 'f': + switch(s[3]) { + default: + break; + case 'l': + if (strcmp("en", s + 4) == 0) + return PIDX_DIGEST_PARAM_XOFLEN; + break; + case '\0': + return PIDX_MAC_PARAM_XOF; + } + } + break; + case 'p': + switch(s[2]) { + default: + break; + case '1': + switch(s[3]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XP1; + } + break; + case '2': + switch(s[3]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XP2; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XP; + } + break; + case 'q': + switch(s[2]) { + default: + break; + case '1': + switch(s[3]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XQ1; + } + break; + case '2': + switch(s[3]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XQ2; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XQ; + } + break; + case 't': + if (strcmp("s_standard", s + 2) == 0) + return PIDX_CIPHER_PARAM_XTS_STANDARD; + } + } + return -1; +} + +/* End of TRIE */ diff --git a/deps/openssl/config/archs/VC-WIN64A/asm_avx2/crypto/poly1305/poly1305-x86_64.asm b/deps/openssl/config/archs/VC-WIN64A/asm_avx2/crypto/poly1305/poly1305-x86_64.asm index fb3823608c949b..9b026665fe1e89 100644 --- a/deps/openssl/config/archs/VC-WIN64A/asm_avx2/crypto/poly1305/poly1305-x86_64.asm +++ b/deps/openssl/config/archs/VC-WIN64A/asm_avx2/crypto/poly1305/poly1305-x86_64.asm @@ -76,6 +76,7 @@ $L$SEH_begin_poly1305_blocks: +DB 243,15,30,250 $L$blocks: shr rdx,4 jz NEAR $L$no_data @@ -196,6 +197,7 @@ $L$SEH_begin_poly1305_emit: +DB 243,15,30,250 $L$emit: mov r8,QWORD[rdi] mov r9,QWORD[8+rdi] @@ -444,6 +446,7 @@ $L$SEH_begin_poly1305_blocks_avx: +DB 243,15,30,250 mov r8d,DWORD[20+rdi] cmp rdx,128 jae NEAR $L$blocks_avx @@ -1300,6 +1303,7 @@ $L$SEH_begin_poly1305_emit_avx: +DB 243,15,30,250 cmp DWORD[20+rdi],0 je NEAR $L$emit @@ -1368,6 +1372,7 @@ $L$SEH_begin_poly1305_blocks_avx2: +DB 243,15,30,250 mov r8d,DWORD[20+rdi] cmp rdx,128 jae NEAR $L$blocks_avx2 @@ -2040,6 +2045,7 @@ $L$SEH_begin_poly1305_blocks_avx512: +DB 243,15,30,250 $L$blocks_avx512: mov eax,15 kmovw k2,eax @@ -2600,6 +2606,7 @@ $L$do_avx512_epilogue: DB 0F3h,0C3h ;repret $L$SEH_end_poly1305_blocks_avx512: +section .rdata rdata align=64 ALIGN 64 $L$const: $L$mask24: @@ -2631,6 +2638,7 @@ $L$x_mask44: $L$x_mask42: DQ 0x3ffffffffff,0x3ffffffffff,0x3ffffffffff,0x3ffffffffff DQ 0x3ffffffffff,0x3ffffffffff,0x3ffffffffff,0x3ffffffffff +section .text DB 80,111,108,121,49,51,48,53,32,102,111,114,32,120,56,54 DB 95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32 DB 98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115 diff --git a/deps/openssl/config/archs/VC-WIN64A/asm_avx2/crypto/sha/keccak1600-x86_64.asm b/deps/openssl/config/archs/VC-WIN64A/asm_avx2/crypto/sha/keccak1600-x86_64.asm index fdab35d95c2f29..69c5eea5b16e80 100644 --- a/deps/openssl/config/archs/VC-WIN64A/asm_avx2/crypto/sha/keccak1600-x86_64.asm +++ b/deps/openssl/config/archs/VC-WIN64A/asm_avx2/crypto/sha/keccak1600-x86_64.asm @@ -436,6 +436,7 @@ $L$SEH_begin_SHA3_squeeze: mov rsi,rdx mov rdx,r8 mov rcx,r9 + mov r8,QWORD[40+rsp] @@ -447,10 +448,12 @@ $L$SEH_begin_SHA3_squeeze: shr rcx,3 - mov r8,rdi + mov r9,rdi mov r12,rsi mov r13,rdx mov r14,rcx + bt r8d,0 + jc NEAR $L$next_block jmp NEAR $L$oop_squeeze ALIGN 32 @@ -458,8 +461,8 @@ $L$oop_squeeze: cmp r13,8 jb NEAR $L$tail_squeeze - mov rax,QWORD[r8] - lea r8,[8+r8] + mov rax,QWORD[r9] + lea r9,[8+r9] mov QWORD[r12],rax lea r12,[8+r12] sub r13,8 @@ -467,14 +470,14 @@ $L$oop_squeeze: sub rcx,1 jnz NEAR $L$oop_squeeze - +$L$next_block: call KeccakF1600 - mov r8,rdi + mov r9,rdi mov rcx,r14 jmp NEAR $L$oop_squeeze $L$tail_squeeze: - mov rsi,r8 + mov rsi,r9 mov rdi,r12 mov rcx,r13 DB 0xf3,0xa4 @@ -491,6 +494,7 @@ $L$done_squeeze: DB 0F3h,0C3h ;repret $L$SEH_end_SHA3_squeeze: +section .rdata rdata align=256 ALIGN 256 DQ 0,0,0,0,0,0,0,0 diff --git a/deps/openssl/config/archs/VC-WIN64A/asm_avx2/crypto/sha/sha1-mb-x86_64.asm b/deps/openssl/config/archs/VC-WIN64A/asm_avx2/crypto/sha/sha1-mb-x86_64.asm index 49e6a41c9ce87e..266be0f957c718 100644 --- a/deps/openssl/config/archs/VC-WIN64A/asm_avx2/crypto/sha/sha1-mb-x86_64.asm +++ b/deps/openssl/config/archs/VC-WIN64A/asm_avx2/crypto/sha/sha1-mb-x86_64.asm @@ -7419,7 +7419,7 @@ $L$epilogue_avx2: DB 0F3h,0C3h ;repret $L$SEH_end_sha1_multi_block_avx2: - +section .rdata rdata align=256 ALIGN 256 DD 0x5a827999,0x5a827999,0x5a827999,0x5a827999 DD 0x5a827999,0x5a827999,0x5a827999,0x5a827999 @@ -7438,6 +7438,7 @@ DB 32,116,114,97,110,115,102,111,114,109,32,102,111,114,32,120 DB 56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77 DB 83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110 DB 115,115,108,46,111,114,103,62,0 +section .text EXTERN __imp_RtlVirtualUnwind ALIGN 16 diff --git a/deps/openssl/config/archs/VC-WIN64A/asm_avx2/crypto/sha/sha1-x86_64.asm b/deps/openssl/config/archs/VC-WIN64A/asm_avx2/crypto/sha/sha1-x86_64.asm index 1b60a7ce75cae0..37fa9a8ee866de 100644 --- a/deps/openssl/config/archs/VC-WIN64A/asm_avx2/crypto/sha/sha1-x86_64.asm +++ b/deps/openssl/config/archs/VC-WIN64A/asm_avx2/crypto/sha/sha1-x86_64.asm @@ -5545,6 +5545,7 @@ $L$epilogue_avx2: DB 0F3h,0C3h ;repret $L$SEH_end_sha1_block_data_order_avx2: +section .rdata rdata align=64 ALIGN 64 K_XX_XX: DD 0x5a827999,0x5a827999,0x5a827999,0x5a827999 @@ -5558,6 +5559,7 @@ K_XX_XX: DD 0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f DD 0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f DB 0xf,0xe,0xd,0xc,0xb,0xa,0x9,0x8,0x7,0x6,0x5,0x4,0x3,0x2,0x1,0x0 +section .text DB 83,72,65,49,32,98,108,111,99,107,32,116,114,97,110,115 DB 102,111,114,109,32,102,111,114,32,120,56,54,95,54,52,44 DB 32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60 diff --git a/deps/openssl/config/archs/VC-WIN64A/asm_avx2/crypto/sha/sha256-mb-x86_64.asm b/deps/openssl/config/archs/VC-WIN64A/asm_avx2/crypto/sha/sha256-mb-x86_64.asm index 201994b04ca970..bbdbac6b65e1c6 100644 --- a/deps/openssl/config/archs/VC-WIN64A/asm_avx2/crypto/sha/sha256-mb-x86_64.asm +++ b/deps/openssl/config/archs/VC-WIN64A/asm_avx2/crypto/sha/sha256-mb-x86_64.asm @@ -7964,6 +7964,7 @@ $L$epilogue_avx2: DB 0F3h,0C3h ;repret $L$SEH_end_sha256_multi_block_avx2: +section .rdata rdata align=256 ALIGN 256 K256: DD 1116352408,1116352408,1116352408,1116352408 @@ -8119,6 +8120,7 @@ DB 99,107,32,116,114,97,110,115,102,111,114,109,32,102,111,114 DB 32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71 DB 65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112 DB 101,110,115,115,108,46,111,114,103,62,0 +section .text EXTERN __imp_RtlVirtualUnwind ALIGN 16 diff --git a/deps/openssl/config/archs/VC-WIN64A/asm_avx2/crypto/sha/sha256-x86_64.asm b/deps/openssl/config/archs/VC-WIN64A/asm_avx2/crypto/sha/sha256-x86_64.asm index 9ff3cbb92b5df1..b4a869f67ba116 100644 --- a/deps/openssl/config/archs/VC-WIN64A/asm_avx2/crypto/sha/sha256-x86_64.asm +++ b/deps/openssl/config/archs/VC-WIN64A/asm_avx2/crypto/sha/sha256-x86_64.asm @@ -1744,6 +1744,7 @@ $L$epilogue: DB 0F3h,0C3h ;repret $L$SEH_end_sha256_block_data_order: +section .rdata rdata align=64 ALIGN 64 K256: @@ -1791,6 +1792,7 @@ DB 110,115,102,111,114,109,32,102,111,114,32,120,56,54,95,54 DB 52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121 DB 32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46 DB 111,114,103,62,0 +section .text ALIGN 64 sha256_block_data_order_shaext: diff --git a/deps/openssl/config/archs/VC-WIN64A/asm_avx2/crypto/sha/sha512-x86_64.asm b/deps/openssl/config/archs/VC-WIN64A/asm_avx2/crypto/sha/sha512-x86_64.asm index fc2269c8435930..30f1640b5e5d8d 100644 --- a/deps/openssl/config/archs/VC-WIN64A/asm_avx2/crypto/sha/sha512-x86_64.asm +++ b/deps/openssl/config/archs/VC-WIN64A/asm_avx2/crypto/sha/sha512-x86_64.asm @@ -1742,6 +1742,7 @@ $L$epilogue: DB 0F3h,0C3h ;repret $L$SEH_end_sha512_block_data_order: +section .rdata rdata align=64 ALIGN 64 K512: @@ -1833,6 +1834,7 @@ DB 110,115,102,111,114,109,32,102,111,114,32,120,56,54,95,54 DB 52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121 DB 32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46 DB 111,114,103,62,0 +section .text ALIGN 64 sha512_block_data_order_xop: diff --git a/deps/openssl/config/archs/VC-WIN64A/asm_avx2/crypto/whrlpool/wp-x86_64.asm b/deps/openssl/config/archs/VC-WIN64A/asm_avx2/crypto/whrlpool/wp-x86_64.asm index 76f7b07678a7ef..6f64ab15115884 100644 --- a/deps/openssl/config/archs/VC-WIN64A/asm_avx2/crypto/whrlpool/wp-x86_64.asm +++ b/deps/openssl/config/archs/VC-WIN64A/asm_avx2/crypto/whrlpool/wp-x86_64.asm @@ -624,6 +624,7 @@ $L$epilogue: $L$SEH_end_whirlpool_block: +section .rdata rdata align=64 ALIGN 64 $L$table: diff --git a/deps/openssl/config/archs/VC-WIN64A/asm_avx2/crypto/x86_64cpuid.asm b/deps/openssl/config/archs/VC-WIN64A/asm_avx2/crypto/x86_64cpuid.asm index d929065b02cbe9..1b15ab48f01cc6 100644 --- a/deps/openssl/config/archs/VC-WIN64A/asm_avx2/crypto/x86_64cpuid.asm +++ b/deps/openssl/config/archs/VC-WIN64A/asm_avx2/crypto/x86_64cpuid.asm @@ -2,14 +2,14 @@ default rel %define XMMWORD %define YMMWORD %define ZMMWORD + EXTERN OPENSSL_cpuid_setup section .CRT$XCU rdata align=8 DQ OPENSSL_cpuid_setup -common OPENSSL_ia32cap_P 16 - +common OPENSSL_ia32cap_P 40 section .text code align=64 @@ -175,6 +175,7 @@ $L$generic: mov eax,7 xor ecx,ecx cpuid + movd xmm1,eax bt r9d,26 jc NEAR $L$notknights and ebx,0xfff7ffff @@ -185,9 +186,31 @@ $L$notknights: jne NEAR $L$notskylakex and ebx,0xfffeffff + $L$notskylakex: mov DWORD[8+rdi],ebx mov DWORD[12+rdi],ecx + mov DWORD[16+rdi],edx + + movd eax,xmm1 + cmp eax,0x1 + jb NEAR $L$no_extended_info + mov eax,0x7 + mov ecx,0x1 + cpuid + mov DWORD[20+rdi],eax + mov DWORD[24+rdi],edx + mov DWORD[28+rdi],ebx + mov DWORD[32+rdi],ecx + + and edx,0x80000 + cmp edx,0x0 + je NEAR $L$no_extended_info + mov eax,0x24 + mov ecx,0x0 + cpuid + mov DWORD[36+rdi],ebx + $L$no_extended_info: bt r9d,27 @@ -206,6 +229,9 @@ DB 0x0f,0x01,0xd0 cmp eax,6 je NEAR $L$done $L$clear_avx: + and DWORD[20+rdi],0xff7fffff + + mov eax,0xefffe7ff and r9d,eax mov eax,0x3fdeffdf diff --git a/deps/openssl/config/archs/VC-WIN64A/asm_avx2/include/internal/param_names.h b/deps/openssl/config/archs/VC-WIN64A/asm_avx2/include/internal/param_names.h new file mode 100644 index 00000000000000..ec5bff6e31c126 --- /dev/null +++ b/deps/openssl/config/archs/VC-WIN64A/asm_avx2/include/internal/param_names.h @@ -0,0 +1,469 @@ +/* + * WARNING: do not edit! + * Generated by makefile from include/internal/param_names.h.in + * + * Copyright 2023 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + +int ossl_param_find_pidx(const char *s); + +/* Parameter name definitions - generated by util/perl/OpenSSL/paramnames.pm */ +#define NUM_PIDX 346 + +#define PIDX_ALG_PARAM_ALGORITHM_ID 0 +#define PIDX_ALG_PARAM_ALGORITHM_ID_PARAMS 1 +#define PIDX_ALG_PARAM_CIPHER 2 +#define PIDX_ALG_PARAM_DIGEST 3 +#define PIDX_ALG_PARAM_ENGINE 4 +#define PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR 5 +#define PIDX_ALG_PARAM_MAC 6 +#define PIDX_ALG_PARAM_PROPERTIES 7 +#define PIDX_ASYM_CIPHER_PARAM_DIGEST PIDX_PKEY_PARAM_DIGEST +#define PIDX_ASYM_CIPHER_PARAM_ENGINE PIDX_PKEY_PARAM_ENGINE +#define PIDX_ASYM_CIPHER_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_ASYM_CIPHER_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_ASYM_CIPHER_PARAM_FIPS_RSA_PKCS15_PAD_DISABLED PIDX_PROV_PARAM_RSA_PKCS15_PAD_DISABLED +#define PIDX_ASYM_CIPHER_PARAM_IMPLICIT_REJECTION 8 +#define PIDX_ASYM_CIPHER_PARAM_MGF1_DIGEST PIDX_PKEY_PARAM_MGF1_DIGEST +#define PIDX_ASYM_CIPHER_PARAM_MGF1_DIGEST_PROPS PIDX_PKEY_PARAM_MGF1_PROPERTIES +#define PIDX_ASYM_CIPHER_PARAM_OAEP_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_ASYM_CIPHER_PARAM_OAEP_DIGEST_PROPS 9 +#define PIDX_ASYM_CIPHER_PARAM_OAEP_LABEL 10 +#define PIDX_ASYM_CIPHER_PARAM_PAD_MODE PIDX_PKEY_PARAM_PAD_MODE +#define PIDX_ASYM_CIPHER_PARAM_PROPERTIES PIDX_PKEY_PARAM_PROPERTIES +#define PIDX_ASYM_CIPHER_PARAM_TLS_CLIENT_VERSION 11 +#define PIDX_ASYM_CIPHER_PARAM_TLS_NEGOTIATED_VERSION 12 +#define PIDX_CAPABILITY_TLS_GROUP_ALG 13 +#define PIDX_CAPABILITY_TLS_GROUP_ID 14 +#define PIDX_CAPABILITY_TLS_GROUP_IS_KEM 15 +#define PIDX_CAPABILITY_TLS_GROUP_MAX_DTLS 16 +#define PIDX_CAPABILITY_TLS_GROUP_MAX_TLS 17 +#define PIDX_CAPABILITY_TLS_GROUP_MIN_DTLS 18 +#define PIDX_CAPABILITY_TLS_GROUP_MIN_TLS 19 +#define PIDX_CAPABILITY_TLS_GROUP_NAME 20 +#define PIDX_CAPABILITY_TLS_GROUP_NAME_INTERNAL 21 +#define PIDX_CAPABILITY_TLS_GROUP_SECURITY_BITS 22 +#define PIDX_CAPABILITY_TLS_SIGALG_CODE_POINT 23 +#define PIDX_CAPABILITY_TLS_SIGALG_HASH_NAME 24 +#define PIDX_CAPABILITY_TLS_SIGALG_HASH_OID 25 +#define PIDX_CAPABILITY_TLS_SIGALG_IANA_NAME 26 +#define PIDX_CAPABILITY_TLS_SIGALG_KEYTYPE 27 +#define PIDX_CAPABILITY_TLS_SIGALG_KEYTYPE_OID 28 +#define PIDX_CAPABILITY_TLS_SIGALG_MAX_DTLS 16 +#define PIDX_CAPABILITY_TLS_SIGALG_MAX_TLS 17 +#define PIDX_CAPABILITY_TLS_SIGALG_MIN_DTLS 18 +#define PIDX_CAPABILITY_TLS_SIGALG_MIN_TLS 19 +#define PIDX_CAPABILITY_TLS_SIGALG_NAME 29 +#define PIDX_CAPABILITY_TLS_SIGALG_OID 30 +#define PIDX_CAPABILITY_TLS_SIGALG_SECURITY_BITS 31 +#define PIDX_CAPABILITY_TLS_SIGALG_SIG_NAME 32 +#define PIDX_CAPABILITY_TLS_SIGALG_SIG_OID 33 +#define PIDX_CIPHER_PARAM_AEAD 34 +#define PIDX_CIPHER_PARAM_AEAD_IVLEN PIDX_CIPHER_PARAM_IVLEN +#define PIDX_CIPHER_PARAM_AEAD_IV_GENERATED 35 +#define PIDX_CIPHER_PARAM_AEAD_MAC_KEY 36 +#define PIDX_CIPHER_PARAM_AEAD_TAG 37 +#define PIDX_CIPHER_PARAM_AEAD_TAGLEN 38 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_AAD 39 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_AAD_PAD 40 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_GET_IV_GEN 41 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_IV_FIXED 42 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_SET_IV_INV 43 +#define PIDX_CIPHER_PARAM_ALGORITHM_ID PIDX_ALG_PARAM_ALGORITHM_ID +#define PIDX_CIPHER_PARAM_ALGORITHM_ID_PARAMS PIDX_ALG_PARAM_ALGORITHM_ID_PARAMS +#define PIDX_CIPHER_PARAM_ALGORITHM_ID_PARAMS_OLD 44 +#define PIDX_CIPHER_PARAM_BLOCK_SIZE 45 +#define PIDX_CIPHER_PARAM_CTS 46 +#define PIDX_CIPHER_PARAM_CTS_MODE 47 +#define PIDX_CIPHER_PARAM_CUSTOM_IV 48 +#define PIDX_CIPHER_PARAM_DECRYPT_ONLY 49 +#define PIDX_CIPHER_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_CIPHER_PARAM_FIPS_ENCRYPT_CHECK 50 +#define PIDX_CIPHER_PARAM_HAS_RAND_KEY 51 +#define PIDX_CIPHER_PARAM_IV 52 +#define PIDX_CIPHER_PARAM_IVLEN 53 +#define PIDX_CIPHER_PARAM_KEYLEN 54 +#define PIDX_CIPHER_PARAM_MODE 55 +#define PIDX_CIPHER_PARAM_NUM 56 +#define PIDX_CIPHER_PARAM_PADDING 57 +#define PIDX_CIPHER_PARAM_PIPELINE_AEAD_TAG 58 +#define PIDX_CIPHER_PARAM_RANDOM_KEY 59 +#define PIDX_CIPHER_PARAM_RC2_KEYBITS 60 +#define PIDX_CIPHER_PARAM_ROUNDS 61 +#define PIDX_CIPHER_PARAM_SPEED 62 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK 63 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD 64 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD_PACKLEN 65 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC 66 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_IN 67 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_LEN 68 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_INTERLEAVE 69 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_BUFSIZE 70 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_SEND_FRAGMENT 71 +#define PIDX_CIPHER_PARAM_TLS_MAC 72 +#define PIDX_CIPHER_PARAM_TLS_MAC_SIZE 73 +#define PIDX_CIPHER_PARAM_TLS_VERSION 74 +#define PIDX_CIPHER_PARAM_UPDATED_IV 75 +#define PIDX_CIPHER_PARAM_USE_BITS 76 +#define PIDX_CIPHER_PARAM_XTS_STANDARD 77 +#define PIDX_DECODER_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_DIGEST_PARAM_ALGID_ABSENT 78 +#define PIDX_DIGEST_PARAM_BLOCK_SIZE 45 +#define PIDX_DIGEST_PARAM_MICALG 79 +#define PIDX_DIGEST_PARAM_PAD_TYPE 80 +#define PIDX_DIGEST_PARAM_SIZE 81 +#define PIDX_DIGEST_PARAM_SSL3_MS 82 +#define PIDX_DIGEST_PARAM_XOF 83 +#define PIDX_DIGEST_PARAM_XOFLEN 84 +#define PIDX_DRBG_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_DRBG_PARAM_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_DRBG_PARAM_ENTROPY_REQUIRED 85 +#define PIDX_DRBG_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_DRBG_PARAM_FIPS_DIGEST_CHECK PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK +#define PIDX_DRBG_PARAM_MAC PIDX_ALG_PARAM_MAC +#define PIDX_DRBG_PARAM_MAX_ADINLEN 86 +#define PIDX_DRBG_PARAM_MAX_ENTROPYLEN 87 +#define PIDX_DRBG_PARAM_MAX_LENGTH 88 +#define PIDX_DRBG_PARAM_MAX_NONCELEN 89 +#define PIDX_DRBG_PARAM_MAX_PERSLEN 90 +#define PIDX_DRBG_PARAM_MIN_ENTROPYLEN 91 +#define PIDX_DRBG_PARAM_MIN_LENGTH 92 +#define PIDX_DRBG_PARAM_MIN_NONCELEN 93 +#define PIDX_DRBG_PARAM_PREDICTION_RESISTANCE 94 +#define PIDX_DRBG_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_DRBG_PARAM_RANDOM_DATA 95 +#define PIDX_DRBG_PARAM_RESEED_COUNTER 96 +#define PIDX_DRBG_PARAM_RESEED_REQUESTS 97 +#define PIDX_DRBG_PARAM_RESEED_TIME 98 +#define PIDX_DRBG_PARAM_RESEED_TIME_INTERVAL 99 +#define PIDX_DRBG_PARAM_SIZE 81 +#define PIDX_DRBG_PARAM_USE_DF 100 +#define PIDX_ENCODER_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_ENCODER_PARAM_ENCRYPT_LEVEL 101 +#define PIDX_ENCODER_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_ENCODER_PARAM_SAVE_PARAMETERS 102 +#define PIDX_EXCHANGE_PARAM_EC_ECDH_COFACTOR_MODE 103 +#define PIDX_EXCHANGE_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_EXCHANGE_PARAM_FIPS_DIGEST_CHECK PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK +#define PIDX_EXCHANGE_PARAM_FIPS_ECDH_COFACTOR_CHECK PIDX_PROV_PARAM_ECDH_COFACTOR_CHECK +#define PIDX_EXCHANGE_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_EXCHANGE_PARAM_KDF_DIGEST 104 +#define PIDX_EXCHANGE_PARAM_KDF_DIGEST_PROPS 105 +#define PIDX_EXCHANGE_PARAM_KDF_OUTLEN 106 +#define PIDX_EXCHANGE_PARAM_KDF_TYPE 107 +#define PIDX_EXCHANGE_PARAM_KDF_UKM 108 +#define PIDX_EXCHANGE_PARAM_PAD 109 +#define PIDX_GEN_PARAM_ITERATION 110 +#define PIDX_GEN_PARAM_POTENTIAL 111 +#define PIDX_KDF_PARAM_ARGON2_AD 112 +#define PIDX_KDF_PARAM_ARGON2_LANES 113 +#define PIDX_KDF_PARAM_ARGON2_MEMCOST 114 +#define PIDX_KDF_PARAM_ARGON2_VERSION 115 +#define PIDX_KDF_PARAM_CEK_ALG 116 +#define PIDX_KDF_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_KDF_PARAM_CONSTANT 117 +#define PIDX_KDF_PARAM_DATA 118 +#define PIDX_KDF_PARAM_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_KDF_PARAM_EARLY_CLEAN 119 +#define PIDX_KDF_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_KDF_PARAM_FIPS_DIGEST_CHECK PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK +#define PIDX_KDF_PARAM_FIPS_EMS_CHECK 120 +#define PIDX_KDF_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_KDF_PARAM_HMACDRBG_ENTROPY 121 +#define PIDX_KDF_PARAM_HMACDRBG_NONCE 122 +#define PIDX_KDF_PARAM_INFO 123 +#define PIDX_KDF_PARAM_ITER 124 +#define PIDX_KDF_PARAM_KBKDF_R 125 +#define PIDX_KDF_PARAM_KBKDF_USE_L 126 +#define PIDX_KDF_PARAM_KBKDF_USE_SEPARATOR 127 +#define PIDX_KDF_PARAM_KEY 128 +#define PIDX_KDF_PARAM_LABEL 129 +#define PIDX_KDF_PARAM_MAC PIDX_ALG_PARAM_MAC +#define PIDX_KDF_PARAM_MAC_SIZE 130 +#define PIDX_KDF_PARAM_MODE 55 +#define PIDX_KDF_PARAM_PASSWORD 131 +#define PIDX_KDF_PARAM_PKCS12_ID 132 +#define PIDX_KDF_PARAM_PKCS5 133 +#define PIDX_KDF_PARAM_PREFIX 134 +#define PIDX_KDF_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_KDF_PARAM_SALT 135 +#define PIDX_KDF_PARAM_SCRYPT_MAXMEM 136 +#define PIDX_KDF_PARAM_SCRYPT_N 137 +#define PIDX_KDF_PARAM_SCRYPT_P 138 +#define PIDX_KDF_PARAM_SCRYPT_R 125 +#define PIDX_KDF_PARAM_SECRET 139 +#define PIDX_KDF_PARAM_SEED 140 +#define PIDX_KDF_PARAM_SIZE 81 +#define PIDX_KDF_PARAM_SSHKDF_SESSION_ID 141 +#define PIDX_KDF_PARAM_SSHKDF_TYPE 142 +#define PIDX_KDF_PARAM_SSHKDF_XCGHASH 143 +#define PIDX_KDF_PARAM_THREADS 144 +#define PIDX_KDF_PARAM_UKM 145 +#define PIDX_KDF_PARAM_X942_ACVPINFO 146 +#define PIDX_KDF_PARAM_X942_PARTYUINFO 147 +#define PIDX_KDF_PARAM_X942_PARTYVINFO 148 +#define PIDX_KDF_PARAM_X942_SUPP_PRIVINFO 149 +#define PIDX_KDF_PARAM_X942_SUPP_PUBINFO 150 +#define PIDX_KDF_PARAM_X942_USE_KEYBITS 151 +#define PIDX_KEM_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_KEM_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_KEM_PARAM_IKME 152 +#define PIDX_KEM_PARAM_OPERATION 153 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_BLOCK_PADDING 154 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_HS_PADDING 155 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_MAX_EARLY_DATA 156 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_MAX_FRAG_LEN 157 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_MODE 55 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_OPTIONS 158 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_READ_AHEAD 159 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_STREAM_MAC 160 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_TLSTREE 161 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_USE_ETM 162 +#define PIDX_LIBSSL_RECORD_LAYER_READ_BUFFER_LEN 163 +#define PIDX_MAC_PARAM_BLOCK_SIZE 164 +#define PIDX_MAC_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_MAC_PARAM_CUSTOM 165 +#define PIDX_MAC_PARAM_C_ROUNDS 166 +#define PIDX_MAC_PARAM_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_MAC_PARAM_DIGEST_NOINIT 167 +#define PIDX_MAC_PARAM_DIGEST_ONESHOT 168 +#define PIDX_MAC_PARAM_D_ROUNDS 169 +#define PIDX_MAC_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_MAC_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_MAC_PARAM_FIPS_NO_SHORT_MAC PIDX_PROV_PARAM_NO_SHORT_MAC +#define PIDX_MAC_PARAM_IV 52 +#define PIDX_MAC_PARAM_KEY 128 +#define PIDX_MAC_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_MAC_PARAM_SALT 135 +#define PIDX_MAC_PARAM_SIZE 81 +#define PIDX_MAC_PARAM_TLS_DATA_SIZE 170 +#define PIDX_MAC_PARAM_XOF 83 +#define PIDX_OBJECT_PARAM_DATA 118 +#define PIDX_OBJECT_PARAM_DATA_STRUCTURE 171 +#define PIDX_OBJECT_PARAM_DATA_TYPE 172 +#define PIDX_OBJECT_PARAM_DESC 173 +#define PIDX_OBJECT_PARAM_INPUT_TYPE 174 +#define PIDX_OBJECT_PARAM_REFERENCE 175 +#define PIDX_OBJECT_PARAM_TYPE 142 +#define PIDX_PASSPHRASE_PARAM_INFO 123 +#define PIDX_PKEY_PARAM_ALGORITHM_ID PIDX_ALG_PARAM_ALGORITHM_ID +#define PIDX_PKEY_PARAM_ALGORITHM_ID_PARAMS PIDX_ALG_PARAM_ALGORITHM_ID_PARAMS +#define PIDX_PKEY_PARAM_BITS 176 +#define PIDX_PKEY_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_PKEY_PARAM_DEFAULT_DIGEST 177 +#define PIDX_PKEY_PARAM_DHKEM_IKM 178 +#define PIDX_PKEY_PARAM_DH_GENERATOR 179 +#define PIDX_PKEY_PARAM_DH_PRIV_LEN 180 +#define PIDX_PKEY_PARAM_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_PKEY_PARAM_DIGEST_SIZE 181 +#define PIDX_PKEY_PARAM_DIST_ID 182 +#define PIDX_PKEY_PARAM_EC_A 183 +#define PIDX_PKEY_PARAM_EC_B 184 +#define PIDX_PKEY_PARAM_EC_CHAR2_M 185 +#define PIDX_PKEY_PARAM_EC_CHAR2_PP_K1 186 +#define PIDX_PKEY_PARAM_EC_CHAR2_PP_K2 187 +#define PIDX_PKEY_PARAM_EC_CHAR2_PP_K3 188 +#define PIDX_PKEY_PARAM_EC_CHAR2_TP_BASIS 189 +#define PIDX_PKEY_PARAM_EC_CHAR2_TYPE 190 +#define PIDX_PKEY_PARAM_EC_COFACTOR 191 +#define PIDX_PKEY_PARAM_EC_DECODED_FROM_EXPLICIT_PARAMS 192 +#define PIDX_PKEY_PARAM_EC_ENCODING 193 +#define PIDX_PKEY_PARAM_EC_FIELD_TYPE 194 +#define PIDX_PKEY_PARAM_EC_GENERATOR 195 +#define PIDX_PKEY_PARAM_EC_GROUP_CHECK_TYPE 196 +#define PIDX_PKEY_PARAM_EC_INCLUDE_PUBLIC 197 +#define PIDX_PKEY_PARAM_EC_ORDER 198 +#define PIDX_PKEY_PARAM_EC_P 138 +#define PIDX_PKEY_PARAM_EC_POINT_CONVERSION_FORMAT 199 +#define PIDX_PKEY_PARAM_EC_PUB_X 200 +#define PIDX_PKEY_PARAM_EC_PUB_Y 201 +#define PIDX_PKEY_PARAM_EC_SEED 140 +#define PIDX_PKEY_PARAM_ENCODED_PUBLIC_KEY 202 +#define PIDX_PKEY_PARAM_ENGINE PIDX_ALG_PARAM_ENGINE +#define PIDX_PKEY_PARAM_FFC_COFACTOR 203 +#define PIDX_PKEY_PARAM_FFC_DIGEST PIDX_PKEY_PARAM_DIGEST +#define PIDX_PKEY_PARAM_FFC_DIGEST_PROPS PIDX_PKEY_PARAM_PROPERTIES +#define PIDX_PKEY_PARAM_FFC_G 204 +#define PIDX_PKEY_PARAM_FFC_GINDEX 205 +#define PIDX_PKEY_PARAM_FFC_H 206 +#define PIDX_PKEY_PARAM_FFC_P 138 +#define PIDX_PKEY_PARAM_FFC_PBITS 207 +#define PIDX_PKEY_PARAM_FFC_PCOUNTER 208 +#define PIDX_PKEY_PARAM_FFC_Q 209 +#define PIDX_PKEY_PARAM_FFC_QBITS 210 +#define PIDX_PKEY_PARAM_FFC_SEED 140 +#define PIDX_PKEY_PARAM_FFC_TYPE 142 +#define PIDX_PKEY_PARAM_FFC_VALIDATE_G 211 +#define PIDX_PKEY_PARAM_FFC_VALIDATE_LEGACY 212 +#define PIDX_PKEY_PARAM_FFC_VALIDATE_PQ 213 +#define PIDX_PKEY_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK 214 +#define PIDX_PKEY_PARAM_FIPS_KEY_CHECK 215 +#define PIDX_PKEY_PARAM_FIPS_SIGN_CHECK 216 +#define PIDX_PKEY_PARAM_GROUP_NAME 217 +#define PIDX_PKEY_PARAM_IMPLICIT_REJECTION 8 +#define PIDX_PKEY_PARAM_MANDATORY_DIGEST 218 +#define PIDX_PKEY_PARAM_MASKGENFUNC 219 +#define PIDX_PKEY_PARAM_MAX_SIZE 220 +#define PIDX_PKEY_PARAM_MGF1_DIGEST 221 +#define PIDX_PKEY_PARAM_MGF1_PROPERTIES 222 +#define PIDX_PKEY_PARAM_ML_DSA_INPUT_FORMATS 223 +#define PIDX_PKEY_PARAM_ML_DSA_OUTPUT_FORMATS 224 +#define PIDX_PKEY_PARAM_ML_DSA_PREFER_SEED 225 +#define PIDX_PKEY_PARAM_ML_DSA_RETAIN_SEED 226 +#define PIDX_PKEY_PARAM_ML_DSA_SEED 140 +#define PIDX_PKEY_PARAM_ML_KEM_IMPORT_PCT_TYPE 227 +#define PIDX_PKEY_PARAM_ML_KEM_INPUT_FORMATS 228 +#define PIDX_PKEY_PARAM_ML_KEM_OUTPUT_FORMATS 229 +#define PIDX_PKEY_PARAM_ML_KEM_PREFER_SEED 230 +#define PIDX_PKEY_PARAM_ML_KEM_RETAIN_SEED 231 +#define PIDX_PKEY_PARAM_ML_KEM_SEED 140 +#define PIDX_PKEY_PARAM_PAD_MODE 232 +#define PIDX_PKEY_PARAM_PRIV_KEY 233 +#define PIDX_PKEY_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_PKEY_PARAM_PUB_KEY 234 +#define PIDX_PKEY_PARAM_RSA_BITS PIDX_PKEY_PARAM_BITS +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT 235 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT1 236 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT2 237 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT3 238 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT4 239 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT5 240 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT6 241 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT7 242 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT8 243 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT9 244 +#define PIDX_PKEY_PARAM_RSA_D 245 +#define PIDX_PKEY_PARAM_RSA_DERIVE_FROM_PQ 246 +#define PIDX_PKEY_PARAM_RSA_DIGEST PIDX_PKEY_PARAM_DIGEST +#define PIDX_PKEY_PARAM_RSA_DIGEST_PROPS PIDX_PKEY_PARAM_PROPERTIES +#define PIDX_PKEY_PARAM_RSA_E 247 +#define PIDX_PKEY_PARAM_RSA_EXPONENT 248 +#define PIDX_PKEY_PARAM_RSA_EXPONENT1 249 +#define PIDX_PKEY_PARAM_RSA_EXPONENT10 250 +#define PIDX_PKEY_PARAM_RSA_EXPONENT2 251 +#define PIDX_PKEY_PARAM_RSA_EXPONENT3 252 +#define PIDX_PKEY_PARAM_RSA_EXPONENT4 253 +#define PIDX_PKEY_PARAM_RSA_EXPONENT5 254 +#define PIDX_PKEY_PARAM_RSA_EXPONENT6 255 +#define PIDX_PKEY_PARAM_RSA_EXPONENT7 256 +#define PIDX_PKEY_PARAM_RSA_EXPONENT8 257 +#define PIDX_PKEY_PARAM_RSA_EXPONENT9 258 +#define PIDX_PKEY_PARAM_RSA_FACTOR 259 +#define PIDX_PKEY_PARAM_RSA_FACTOR1 260 +#define PIDX_PKEY_PARAM_RSA_FACTOR10 261 +#define PIDX_PKEY_PARAM_RSA_FACTOR2 262 +#define PIDX_PKEY_PARAM_RSA_FACTOR3 263 +#define PIDX_PKEY_PARAM_RSA_FACTOR4 264 +#define PIDX_PKEY_PARAM_RSA_FACTOR5 265 +#define PIDX_PKEY_PARAM_RSA_FACTOR6 266 +#define PIDX_PKEY_PARAM_RSA_FACTOR7 267 +#define PIDX_PKEY_PARAM_RSA_FACTOR8 268 +#define PIDX_PKEY_PARAM_RSA_FACTOR9 269 +#define PIDX_PKEY_PARAM_RSA_MASKGENFUNC PIDX_PKEY_PARAM_MASKGENFUNC +#define PIDX_PKEY_PARAM_RSA_MGF1_DIGEST PIDX_PKEY_PARAM_MGF1_DIGEST +#define PIDX_PKEY_PARAM_RSA_N 137 +#define PIDX_PKEY_PARAM_RSA_PRIMES 270 +#define PIDX_PKEY_PARAM_RSA_PSS_SALTLEN 271 +#define PIDX_PKEY_PARAM_RSA_TEST_P1 272 +#define PIDX_PKEY_PARAM_RSA_TEST_P2 273 +#define PIDX_PKEY_PARAM_RSA_TEST_Q1 274 +#define PIDX_PKEY_PARAM_RSA_TEST_Q2 275 +#define PIDX_PKEY_PARAM_RSA_TEST_XP 276 +#define PIDX_PKEY_PARAM_RSA_TEST_XP1 277 +#define PIDX_PKEY_PARAM_RSA_TEST_XP2 278 +#define PIDX_PKEY_PARAM_RSA_TEST_XQ 279 +#define PIDX_PKEY_PARAM_RSA_TEST_XQ1 280 +#define PIDX_PKEY_PARAM_RSA_TEST_XQ2 281 +#define PIDX_PKEY_PARAM_SECURITY_BITS 282 +#define PIDX_PKEY_PARAM_SLH_DSA_SEED 140 +#define PIDX_PKEY_PARAM_USE_COFACTOR_ECDH PIDX_PKEY_PARAM_USE_COFACTOR_FLAG +#define PIDX_PKEY_PARAM_USE_COFACTOR_FLAG 283 +#define PIDX_PROV_PARAM_BUILDINFO 284 +#define PIDX_PROV_PARAM_CORE_MODULE_FILENAME 285 +#define PIDX_PROV_PARAM_CORE_PROV_NAME 286 +#define PIDX_PROV_PARAM_CORE_VERSION 287 +#define PIDX_PROV_PARAM_DRBG_TRUNC_DIGEST 288 +#define PIDX_PROV_PARAM_DSA_SIGN_DISABLED 289 +#define PIDX_PROV_PARAM_ECDH_COFACTOR_CHECK 290 +#define PIDX_PROV_PARAM_HKDF_DIGEST_CHECK 291 +#define PIDX_PROV_PARAM_HKDF_KEY_CHECK 292 +#define PIDX_PROV_PARAM_HMAC_KEY_CHECK 293 +#define PIDX_PROV_PARAM_KBKDF_KEY_CHECK 294 +#define PIDX_PROV_PARAM_KMAC_KEY_CHECK 295 +#define PIDX_PROV_PARAM_NAME 296 +#define PIDX_PROV_PARAM_NO_SHORT_MAC 297 +#define PIDX_PROV_PARAM_PBKDF2_LOWER_BOUND_CHECK 298 +#define PIDX_PROV_PARAM_RSA_PKCS15_PAD_DISABLED 299 +#define PIDX_PROV_PARAM_RSA_PSS_SALTLEN_CHECK 300 +#define PIDX_PROV_PARAM_RSA_SIGN_X931_PAD_DISABLED 301 +#define PIDX_PROV_PARAM_SECURITY_CHECKS 302 +#define PIDX_PROV_PARAM_SELF_TEST_DESC 303 +#define PIDX_PROV_PARAM_SELF_TEST_PHASE 304 +#define PIDX_PROV_PARAM_SELF_TEST_TYPE 305 +#define PIDX_PROV_PARAM_SIGNATURE_DIGEST_CHECK 306 +#define PIDX_PROV_PARAM_SSHKDF_DIGEST_CHECK 307 +#define PIDX_PROV_PARAM_SSHKDF_KEY_CHECK 308 +#define PIDX_PROV_PARAM_SSKDF_DIGEST_CHECK 309 +#define PIDX_PROV_PARAM_SSKDF_KEY_CHECK 310 +#define PIDX_PROV_PARAM_STATUS 311 +#define PIDX_PROV_PARAM_TDES_ENCRYPT_DISABLED 312 +#define PIDX_PROV_PARAM_TLS13_KDF_DIGEST_CHECK 313 +#define PIDX_PROV_PARAM_TLS13_KDF_KEY_CHECK 314 +#define PIDX_PROV_PARAM_TLS1_PRF_DIGEST_CHECK 315 +#define PIDX_PROV_PARAM_TLS1_PRF_EMS_CHECK 316 +#define PIDX_PROV_PARAM_TLS1_PRF_KEY_CHECK 317 +#define PIDX_PROV_PARAM_VERSION 115 +#define PIDX_PROV_PARAM_X942KDF_KEY_CHECK 318 +#define PIDX_PROV_PARAM_X963KDF_DIGEST_CHECK 319 +#define PIDX_PROV_PARAM_X963KDF_KEY_CHECK 320 +#define PIDX_RAND_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_RAND_PARAM_GENERATE 321 +#define PIDX_RAND_PARAM_MAX_REQUEST 322 +#define PIDX_RAND_PARAM_STATE 323 +#define PIDX_RAND_PARAM_STRENGTH 324 +#define PIDX_RAND_PARAM_TEST_ENTROPY 325 +#define PIDX_RAND_PARAM_TEST_NONCE 326 +#define PIDX_SIGNATURE_PARAM_ADD_RANDOM 327 +#define PIDX_SIGNATURE_PARAM_ALGORITHM_ID PIDX_PKEY_PARAM_ALGORITHM_ID +#define PIDX_SIGNATURE_PARAM_ALGORITHM_ID_PARAMS PIDX_PKEY_PARAM_ALGORITHM_ID_PARAMS +#define PIDX_SIGNATURE_PARAM_CONTEXT_STRING 328 +#define PIDX_SIGNATURE_PARAM_DETERMINISTIC 329 +#define PIDX_SIGNATURE_PARAM_DIGEST PIDX_PKEY_PARAM_DIGEST +#define PIDX_SIGNATURE_PARAM_DIGEST_SIZE PIDX_PKEY_PARAM_DIGEST_SIZE +#define PIDX_SIGNATURE_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_SIGNATURE_PARAM_FIPS_DIGEST_CHECK PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK +#define PIDX_SIGNATURE_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_SIGNATURE_PARAM_FIPS_RSA_PSS_SALTLEN_CHECK 300 +#define PIDX_SIGNATURE_PARAM_FIPS_SIGN_CHECK PIDX_PKEY_PARAM_FIPS_SIGN_CHECK +#define PIDX_SIGNATURE_PARAM_FIPS_SIGN_X931_PAD_CHECK 330 +#define PIDX_SIGNATURE_PARAM_FIPS_VERIFY_MESSAGE 331 +#define PIDX_SIGNATURE_PARAM_INSTANCE 332 +#define PIDX_SIGNATURE_PARAM_KAT 333 +#define PIDX_SIGNATURE_PARAM_MESSAGE_ENCODING 334 +#define PIDX_SIGNATURE_PARAM_MGF1_DIGEST PIDX_PKEY_PARAM_MGF1_DIGEST +#define PIDX_SIGNATURE_PARAM_MGF1_PROPERTIES PIDX_PKEY_PARAM_MGF1_PROPERTIES +#define PIDX_SIGNATURE_PARAM_MU 335 +#define PIDX_SIGNATURE_PARAM_NONCE_TYPE 336 +#define PIDX_SIGNATURE_PARAM_PAD_MODE PIDX_PKEY_PARAM_PAD_MODE +#define PIDX_SIGNATURE_PARAM_PROPERTIES PIDX_PKEY_PARAM_PROPERTIES +#define PIDX_SIGNATURE_PARAM_PSS_SALTLEN 271 +#define PIDX_SIGNATURE_PARAM_SIGNATURE 337 +#define PIDX_SIGNATURE_PARAM_TEST_ENTROPY 338 +#define PIDX_SKEY_PARAM_KEY_LENGTH 339 +#define PIDX_SKEY_PARAM_RAW_BYTES 340 +#define PIDX_STORE_PARAM_ALIAS 341 +#define PIDX_STORE_PARAM_DIGEST 3 +#define PIDX_STORE_PARAM_EXPECT 342 +#define PIDX_STORE_PARAM_FINGERPRINT 343 +#define PIDX_STORE_PARAM_INPUT_TYPE 174 +#define PIDX_STORE_PARAM_ISSUER 296 +#define PIDX_STORE_PARAM_PROPERTIES 7 +#define PIDX_STORE_PARAM_SERIAL 344 +#define PIDX_STORE_PARAM_SUBJECT 345 diff --git a/deps/openssl/config/archs/VC-WIN64A/asm_avx2/include/openssl/asn1.h b/deps/openssl/config/archs/VC-WIN64A/asm_avx2/include/openssl/asn1.h index e28efbbb718e2b..5129217b2e0977 100644 --- a/deps/openssl/config/archs/VC-WIN64A/asm_avx2/include/openssl/asn1.h +++ b/deps/openssl/config/archs/VC-WIN64A/asm_avx2/include/openssl/asn1.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by makefile from include/openssl/asn1.h.in * - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -21,6 +21,9 @@ # define HEADER_ASN1_H # endif +# ifndef OPENSSL_NO_STDIO +# include +# endif # include # include # include @@ -50,14 +53,14 @@ extern "C" { # define V_ASN1_PRIMITIVE_TAG 0x1f # define V_ASN1_PRIMATIVE_TAG /*compat*/ V_ASN1_PRIMITIVE_TAG -# define V_ASN1_APP_CHOOSE -2/* let the recipient choose */ -# define V_ASN1_OTHER -3/* used in ASN1_TYPE */ -# define V_ASN1_ANY -4/* used in ASN1 template code */ +# define V_ASN1_APP_CHOOSE -2 /* let the recipient choose */ +# define V_ASN1_OTHER -3 /* used in ASN1_TYPE */ +# define V_ASN1_ANY -4 /* used in ASN1 template code */ # define V_ASN1_UNDEF -1 /* ASN.1 tag values */ # define V_ASN1_EOC 0 -# define V_ASN1_BOOLEAN 1 /**/ +# define V_ASN1_BOOLEAN 1 # define V_ASN1_INTEGER 2 # define V_ASN1_BIT_STRING 3 # define V_ASN1_OCTET_STRING 4 @@ -70,19 +73,19 @@ extern "C" { # define V_ASN1_UTF8STRING 12 # define V_ASN1_SEQUENCE 16 # define V_ASN1_SET 17 -# define V_ASN1_NUMERICSTRING 18 /**/ +# define V_ASN1_NUMERICSTRING 18 # define V_ASN1_PRINTABLESTRING 19 # define V_ASN1_T61STRING 20 -# define V_ASN1_TELETEXSTRING 20/* alias */ -# define V_ASN1_VIDEOTEXSTRING 21 /**/ +# define V_ASN1_TELETEXSTRING 20 /* alias */ +# define V_ASN1_VIDEOTEXSTRING 21 # define V_ASN1_IA5STRING 22 # define V_ASN1_UTCTIME 23 -# define V_ASN1_GENERALIZEDTIME 24 /**/ -# define V_ASN1_GRAPHICSTRING 25 /**/ -# define V_ASN1_ISO64STRING 26 /**/ -# define V_ASN1_VISIBLESTRING 26/* alias */ -# define V_ASN1_GENERALSTRING 27 /**/ -# define V_ASN1_UNIVERSALSTRING 28 /**/ +# define V_ASN1_GENERALIZEDTIME 24 +# define V_ASN1_GRAPHICSTRING 25 +# define V_ASN1_ISO64STRING 26 +# define V_ASN1_VISIBLESTRING 26 /* alias */ +# define V_ASN1_GENERALSTRING 27 +# define V_ASN1_UNIVERSALSTRING 28 # define V_ASN1_BMPSTRING 30 /* @@ -155,7 +158,7 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_ALGOR, X509_ALGOR, X509_ALGOR) -# define ASN1_STRING_FLAG_BITS_LEFT 0x08/* Set if 0x07 has bits left value */ +# define ASN1_STRING_FLAG_BITS_LEFT 0x08 /* Set if 0x07 has bits left value */ /* * This indicates that the ASN1_STRING is not a real value but just a place * holder for the location where indefinite length constructed data should be @@ -275,7 +278,7 @@ typedef struct ASN1_TLC_st ASN1_TLC; /* This is just an opaque pointer */ typedef struct ASN1_VALUE_st ASN1_VALUE; -/* Declare ASN1 functions: the implement macro in in asn1t.h */ +/* Declare ASN1 functions: the implement macro is in asn1t.h */ /* * The mysterious 'extern' that's passed to some macros is innocuous, @@ -368,6 +371,7 @@ typedef struct ASN1_VALUE_st ASN1_VALUE; typedef void *d2i_of_void(void **, const unsigned char **, long); typedef int i2d_of_void(const void *, unsigned char **); +typedef int OSSL_i2d_of_void_ctx(const void *, unsigned char **, void *vctx); /*- * The following macros and typedefs allow an ASN1_ITEM @@ -996,6 +1000,8 @@ int ASN1_TYPE_get_int_octetstring(const ASN1_TYPE *a, long *num, unsigned char *data, int max_len); void *ASN1_item_unpack(const ASN1_STRING *oct, const ASN1_ITEM *it); +void *ASN1_item_unpack_ex(const ASN1_STRING *oct, const ASN1_ITEM *it, + OSSL_LIB_CTX *libctx, const char *propq); ASN1_STRING *ASN1_item_pack(void *obj, const ASN1_ITEM *it, ASN1_OCTET_STRING **oct); diff --git a/deps/openssl/config/archs/VC-WIN64A/asm_avx2/include/openssl/bio.h b/deps/openssl/config/archs/VC-WIN64A/asm_avx2/include/openssl/bio.h index d094af47b73f1c..be24d086a54013 100644 --- a/deps/openssl/config/archs/VC-WIN64A/asm_avx2/include/openssl/bio.h +++ b/deps/openssl/config/archs/VC-WIN64A/asm_avx2/include/openssl/bio.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by makefile from include/openssl/bio.h.in * - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -67,8 +67,13 @@ extern "C" { # define BIO_TYPE_DGRAM_SCTP (24|BIO_TYPE_SOURCE_SINK|BIO_TYPE_DESCRIPTOR) # endif # define BIO_TYPE_CORE_TO_PROV (25|BIO_TYPE_SOURCE_SINK) +# define BIO_TYPE_DGRAM_PAIR (26|BIO_TYPE_SOURCE_SINK) +# define BIO_TYPE_DGRAM_MEM (27|BIO_TYPE_SOURCE_SINK) +/* Custom type starting index returned by BIO_get_new_index() */ #define BIO_TYPE_START 128 +/* Custom type maximum index that can be returned by BIO_get_new_index() */ +#define BIO_TYPE_MASK 0xFF /* * BIO_FILENAME_READ|BIO_CLOSE to open or close on free. @@ -171,6 +176,31 @@ extern "C" { # define BIO_CTRL_SET_INDENT 80 # define BIO_CTRL_GET_INDENT 81 +# define BIO_CTRL_DGRAM_GET_LOCAL_ADDR_CAP 82 +# define BIO_CTRL_DGRAM_GET_LOCAL_ADDR_ENABLE 83 +# define BIO_CTRL_DGRAM_SET_LOCAL_ADDR_ENABLE 84 +# define BIO_CTRL_DGRAM_GET_EFFECTIVE_CAPS 85 +# define BIO_CTRL_DGRAM_GET_CAPS 86 +# define BIO_CTRL_DGRAM_SET_CAPS 87 +# define BIO_CTRL_DGRAM_GET_NO_TRUNC 88 +# define BIO_CTRL_DGRAM_SET_NO_TRUNC 89 + +/* + * internal BIO: + * # define BIO_CTRL_SET_KTLS_TX_ZEROCOPY_SENDFILE 90 + */ + +# define BIO_CTRL_GET_RPOLL_DESCRIPTOR 91 +# define BIO_CTRL_GET_WPOLL_DESCRIPTOR 92 +# define BIO_CTRL_DGRAM_DETECT_PEER_ADDR 93 +# define BIO_CTRL_DGRAM_SET0_LOCAL_ADDR 94 + +# define BIO_DGRAM_CAP_NONE 0U +# define BIO_DGRAM_CAP_HANDLES_SRC_ADDR (1U << 0) +# define BIO_DGRAM_CAP_HANDLES_DST_ADDR (1U << 1) +# define BIO_DGRAM_CAP_PROVIDES_SRC_ADDR (1U << 2) +# define BIO_DGRAM_CAP_PROVIDES_DST_ADDR (1U << 3) + # ifndef OPENSSL_NO_KTLS # define BIO_get_ktls_send(b) \ (BIO_ctrl(b, BIO_CTRL_GET_KTLS_SEND, 0, NULL) > 0) @@ -208,7 +238,7 @@ extern "C" { # define BIO_FLAGS_NONCLEAR_RST 0x400 # define BIO_FLAGS_IN_EOF 0x800 -/* the BIO FLAGS values 0x1000 to 0x4000 are reserved for internal KTLS flags */ +/* the BIO FLAGS values 0x1000 to 0x8000 are reserved for internal KTLS flags */ typedef union bio_addr_st BIO_ADDR; typedef struct bio_addrinfo_st BIO_ADDRINFO; @@ -256,12 +286,14 @@ void BIO_clear_flags(BIO *b, int flags); # define BIO_RR_ACCEPT 0x03 /* These are passed by the BIO callback */ -# define BIO_CB_FREE 0x01 -# define BIO_CB_READ 0x02 -# define BIO_CB_WRITE 0x03 -# define BIO_CB_PUTS 0x04 -# define BIO_CB_GETS 0x05 -# define BIO_CB_CTRL 0x06 +# define BIO_CB_FREE 0x01 +# define BIO_CB_READ 0x02 +# define BIO_CB_WRITE 0x03 +# define BIO_CB_PUTS 0x04 +# define BIO_CB_GETS 0x05 +# define BIO_CB_CTRL 0x06 +# define BIO_CB_RECVMMSG 0x07 +# define BIO_CB_SENDMMSG 0x08 /* * The callback is called before and after the underling operation, The @@ -362,6 +394,36 @@ struct bio_dgram_sctp_prinfo { }; # endif +/* BIO_sendmmsg/BIO_recvmmsg-related definitions */ +typedef struct bio_msg_st { + void *data; + size_t data_len; + BIO_ADDR *peer, *local; + uint64_t flags; +} BIO_MSG; + +typedef struct bio_mmsg_cb_args_st { + BIO_MSG *msg; + size_t stride, num_msg; + uint64_t flags; + size_t *msgs_processed; +} BIO_MMSG_CB_ARGS; + +#define BIO_POLL_DESCRIPTOR_TYPE_NONE 0 +#define BIO_POLL_DESCRIPTOR_TYPE_SOCK_FD 1 +#define BIO_POLL_DESCRIPTOR_TYPE_SSL 2 +#define BIO_POLL_DESCRIPTOR_CUSTOM_START 8192 + +typedef struct bio_poll_descriptor_st { + uint32_t type; + union { + int fd; + void *custom; + uintptr_t custom_ui; + SSL *ssl; + } value; +} BIO_POLL_DESCRIPTOR; + /* * #define BIO_CONN_get_param_hostname BIO_ctrl */ @@ -428,10 +490,17 @@ struct bio_dgram_sctp_prinfo { # define BIO_C_SET_CONNECT_MODE 155 +# define BIO_C_SET_TFO 156 /* like BIO_C_SET_NBIO */ + +# define BIO_C_SET_SOCK_TYPE 157 +# define BIO_C_GET_SOCK_TYPE 158 +# define BIO_C_GET_DGRAM_BIO 159 + # define BIO_set_app_data(s,arg) BIO_set_ex_data(s,0,arg) # define BIO_get_app_data(s) BIO_get_ex_data(s,0) -# define BIO_set_nbio(b,n) BIO_ctrl(b,BIO_C_SET_NBIO,(n),NULL) +# define BIO_set_nbio(b,n) BIO_ctrl(b,BIO_C_SET_NBIO,(n),NULL) +# define BIO_set_tfo(b,n) BIO_ctrl(b,BIO_C_SET_TFO,(n),NULL) # ifndef OPENSSL_NO_SOCK /* IP families we support, for BIO_s_connect() and BIO_s_accept() */ @@ -452,7 +521,11 @@ struct bio_dgram_sctp_prinfo { # define BIO_get_conn_port(b) ((const char *)BIO_ptr_ctrl(b,BIO_C_GET_CONNECT,1)) # define BIO_get_conn_address(b) ((const BIO_ADDR *)BIO_ptr_ctrl(b,BIO_C_GET_CONNECT,2)) # define BIO_get_conn_ip_family(b) BIO_ctrl(b,BIO_C_GET_CONNECT,3,NULL) +# define BIO_get_conn_mode(b) BIO_ctrl(b,BIO_C_GET_CONNECT,4,NULL) # define BIO_set_conn_mode(b,n) BIO_ctrl(b,BIO_C_SET_CONNECT_MODE,(n),NULL) +# define BIO_set_sock_type(b,t) BIO_ctrl(b,BIO_C_SET_SOCK_TYPE,(t),NULL) +# define BIO_get_sock_type(b) BIO_ctrl(b,BIO_C_GET_SOCK_TYPE,0,NULL) +# define BIO_get0_dgram_bio(b, p) BIO_ctrl(b,BIO_C_GET_DGRAM_BIO,0,(void *)(BIO **)(p)) /* BIO_s_accept() */ # define BIO_set_accept_name(b,name) BIO_ctrl(b,BIO_C_SET_ACCEPT,0, \ @@ -469,6 +542,7 @@ struct bio_dgram_sctp_prinfo { (char *)(bio)) # define BIO_set_accept_ip_family(b,f) BIO_int_ctrl(b,BIO_C_SET_ACCEPT,4,f) # define BIO_get_accept_ip_family(b) BIO_ctrl(b,BIO_C_GET_ACCEPT,4,NULL) +# define BIO_set_tfo_accept(b,n) BIO_ctrl(b,BIO_C_SET_ACCEPT,5,(n)?(void *)"a":NULL) /* Aliases kept for backward compatibility */ # define BIO_BIND_NORMAL 0 @@ -596,8 +670,32 @@ int BIO_ctrl_reset_read_request(BIO *b); (int)BIO_ctrl(b, BIO_CTRL_DGRAM_GET_PEER, 0, (char *)(peer)) # define BIO_dgram_set_peer(b,peer) \ (int)BIO_ctrl(b, BIO_CTRL_DGRAM_SET_PEER, 0, (char *)(peer)) +# define BIO_dgram_detect_peer_addr(b,peer) \ + (int)BIO_ctrl(b, BIO_CTRL_DGRAM_DETECT_PEER_ADDR, 0, (char *)(peer)) # define BIO_dgram_get_mtu_overhead(b) \ (unsigned int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_MTU_OVERHEAD, 0, NULL) +# define BIO_dgram_get_local_addr_cap(b) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_LOCAL_ADDR_CAP, 0, NULL) +# define BIO_dgram_get_local_addr_enable(b, penable) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_LOCAL_ADDR_ENABLE, 0, (char *)(penable)) +# define BIO_dgram_set_local_addr_enable(b, enable) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET_LOCAL_ADDR_ENABLE, (enable), NULL) +# define BIO_dgram_get_effective_caps(b) \ + (uint32_t)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_EFFECTIVE_CAPS, 0, NULL) +# define BIO_dgram_get_caps(b) \ + (uint32_t)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_CAPS, 0, NULL) +# define BIO_dgram_set_caps(b, caps) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET_CAPS, (long)(caps), NULL) +# define BIO_dgram_get_no_trunc(b) \ + (unsigned int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_NO_TRUNC, 0, NULL) +# define BIO_dgram_set_no_trunc(b, enable) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET_NO_TRUNC, (enable), NULL) +# define BIO_dgram_get_mtu(b) \ + (unsigned int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_MTU, 0, NULL) +# define BIO_dgram_set_mtu(b, mtu) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET_MTU, (mtu), NULL) +# define BIO_dgram_set0_local_addr(b, addr) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET0_LOCAL_ADDR, 0, (addr)) /* ctrl macros for BIO_f_prefix */ # define BIO_set_prefix(b,p) BIO_ctrl((b), BIO_CTRL_SET_PREFIX, 0, (void *)(p)) @@ -640,10 +738,18 @@ void BIO_vfree(BIO *a); int BIO_up_ref(BIO *a); int BIO_read(BIO *b, void *data, int dlen); int BIO_read_ex(BIO *b, void *data, size_t dlen, size_t *readbytes); +__owur int BIO_recvmmsg(BIO *b, BIO_MSG *msg, + size_t stride, size_t num_msg, uint64_t flags, + size_t *msgs_processed); int BIO_gets(BIO *bp, char *buf, int size); int BIO_get_line(BIO *bio, char *buf, int size); int BIO_write(BIO *b, const void *data, int dlen); int BIO_write_ex(BIO *b, const void *data, size_t dlen, size_t *written); +__owur int BIO_sendmmsg(BIO *b, BIO_MSG *msg, + size_t stride, size_t num_msg, uint64_t flags, + size_t *msgs_processed); +__owur int BIO_get_rpoll_descriptor(BIO *b, BIO_POLL_DESCRIPTOR *desc); +__owur int BIO_get_wpoll_descriptor(BIO *b, BIO_POLL_DESCRIPTOR *desc); int BIO_puts(BIO *bp, const char *buf); int BIO_indent(BIO *b, int indent, int max); long BIO_ctrl(BIO *bp, int cmd, long larg, void *parg); @@ -667,6 +773,9 @@ int BIO_nwrite0(BIO *bio, char **buf); int BIO_nwrite(BIO *bio, char **buf, int num); const BIO_METHOD *BIO_s_mem(void); +# ifndef OPENSSL_NO_DGRAM +const BIO_METHOD *BIO_s_dgram_mem(void); +# endif const BIO_METHOD *BIO_s_secmem(void); BIO *BIO_new_mem_buf(const void *buf, int len); # ifndef OPENSSL_NO_SOCK @@ -686,6 +795,7 @@ const BIO_METHOD *BIO_f_nbio_test(void); const BIO_METHOD *BIO_f_prefix(void); const BIO_METHOD *BIO_s_core(void); # ifndef OPENSSL_NO_DGRAM +const BIO_METHOD *BIO_s_dgram_pair(void); const BIO_METHOD *BIO_s_datagram(void); int BIO_dgram_non_fatal_error(int error); BIO *BIO_new_dgram(int fd, int close_flag); @@ -704,6 +814,7 @@ int BIO_dgram_sctp_msg_waiting(BIO *b); # ifndef OPENSSL_NO_SOCK int BIO_sock_should_retry(int i); int BIO_sock_non_fatal_error(int error); +int BIO_err_is_non_fatal(unsigned int errcode); int BIO_socket_wait(int fd, int for_read, time_t max_time); # endif int BIO_wait(BIO *bio, time_t max_time, unsigned int nap_milliseconds); @@ -726,6 +837,8 @@ int BIO_hex_string(BIO *out, int indent, int width, const void *data, # ifndef OPENSSL_NO_SOCK BIO_ADDR *BIO_ADDR_new(void); +int BIO_ADDR_copy(BIO_ADDR *dst, const BIO_ADDR *src); +BIO_ADDR *BIO_ADDR_dup(const BIO_ADDR *ap); int BIO_ADDR_rawmake(BIO_ADDR *ap, int family, const void *where, size_t wherelen, unsigned short port); void BIO_ADDR_free(BIO_ADDR *); @@ -788,6 +901,7 @@ int BIO_sock_info(int sock, # define BIO_SOCK_KEEPALIVE 0x04 # define BIO_SOCK_NONBLOCK 0x08 # define BIO_SOCK_NODELAY 0x10 +# define BIO_SOCK_TFO 0x20 int BIO_socket(int domain, int socktype, int protocol, int options); int BIO_connect(int sock, const BIO_ADDR *addr, int options); @@ -805,6 +919,11 @@ BIO *BIO_new_fd(int fd, int close_flag); int BIO_new_bio_pair(BIO **bio1, size_t writebuf1, BIO **bio2, size_t writebuf2); +# ifndef OPENSSL_NO_DGRAM +int BIO_new_bio_dgram_pair(BIO **bio1, size_t writebuf1, + BIO **bio2, size_t writebuf2); +# endif + /* * If successful, returns 1 and in *bio1, *bio2 two BIO pair endpoints. * Otherwise returns 0 and sets *bio1 and *bio2 to NULL. Size 0 uses default @@ -849,38 +968,54 @@ ossl_bio__attr__((__format__(ossl_bio__printf__, 3, 0))); BIO_METHOD *BIO_meth_new(int type, const char *name); void BIO_meth_free(BIO_METHOD *biom); -int (*BIO_meth_get_write(const BIO_METHOD *biom)) (BIO *, const char *, int); -int (*BIO_meth_get_write_ex(const BIO_METHOD *biom)) (BIO *, const char *, size_t, - size_t *); int BIO_meth_set_write(BIO_METHOD *biom, int (*write) (BIO *, const char *, int)); int BIO_meth_set_write_ex(BIO_METHOD *biom, int (*bwrite) (BIO *, const char *, size_t, size_t *)); -int (*BIO_meth_get_read(const BIO_METHOD *biom)) (BIO *, char *, int); -int (*BIO_meth_get_read_ex(const BIO_METHOD *biom)) (BIO *, char *, size_t, size_t *); +int BIO_meth_set_sendmmsg(BIO_METHOD *biom, + int (*f) (BIO *, BIO_MSG *, size_t, size_t, + uint64_t, size_t *)); int BIO_meth_set_read(BIO_METHOD *biom, int (*read) (BIO *, char *, int)); int BIO_meth_set_read_ex(BIO_METHOD *biom, int (*bread) (BIO *, char *, size_t, size_t *)); -int (*BIO_meth_get_puts(const BIO_METHOD *biom)) (BIO *, const char *); +int BIO_meth_set_recvmmsg(BIO_METHOD *biom, + int (*f) (BIO *, BIO_MSG *, size_t, size_t, + uint64_t, size_t *)); int BIO_meth_set_puts(BIO_METHOD *biom, int (*puts) (BIO *, const char *)); -int (*BIO_meth_get_gets(const BIO_METHOD *biom)) (BIO *, char *, int); int BIO_meth_set_gets(BIO_METHOD *biom, int (*ossl_gets) (BIO *, char *, int)); -long (*BIO_meth_get_ctrl(const BIO_METHOD *biom)) (BIO *, int, long, void *); int BIO_meth_set_ctrl(BIO_METHOD *biom, long (*ctrl) (BIO *, int, long, void *)); -int (*BIO_meth_get_create(const BIO_METHOD *bion)) (BIO *); int BIO_meth_set_create(BIO_METHOD *biom, int (*create) (BIO *)); -int (*BIO_meth_get_destroy(const BIO_METHOD *biom)) (BIO *); int BIO_meth_set_destroy(BIO_METHOD *biom, int (*destroy) (BIO *)); -long (*BIO_meth_get_callback_ctrl(const BIO_METHOD *biom)) - (BIO *, int, BIO_info_cb *); int BIO_meth_set_callback_ctrl(BIO_METHOD *biom, long (*callback_ctrl) (BIO *, int, BIO_info_cb *)); - +# ifndef OPENSSL_NO_DEPRECATED_3_5 +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_write(const BIO_METHOD *biom)) (BIO *, const char *, + int); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_write_ex(const BIO_METHOD *biom)) (BIO *, const char *, + size_t, size_t *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_sendmmsg(const BIO_METHOD *biom))(BIO *, BIO_MSG *, + size_t, size_t, + uint64_t, size_t *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_read(const BIO_METHOD *biom)) (BIO *, char *, int); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_read_ex(const BIO_METHOD *biom)) (BIO *, char *, + size_t, size_t *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_recvmmsg(const BIO_METHOD *biom))(BIO *, BIO_MSG *, + size_t, size_t, + uint64_t, size_t *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_puts(const BIO_METHOD *biom)) (BIO *, const char *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_gets(const BIO_METHOD *biom)) (BIO *, char *, int); +OSSL_DEPRECATEDIN_3_5 long (*BIO_meth_get_ctrl(const BIO_METHOD *biom)) (BIO *, int, + long, void *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_create(const BIO_METHOD *bion)) (BIO *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_destroy(const BIO_METHOD *biom)) (BIO *); +OSSL_DEPRECATEDIN_3_5 long (*BIO_meth_get_callback_ctrl(const BIO_METHOD *biom)) (BIO *, int, + BIO_info_cb *); +# endif # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/VC-WIN64A/asm_avx2/include/openssl/cmp.h b/deps/openssl/config/archs/VC-WIN64A/asm_avx2/include/openssl/cmp.h index f0e768e01baacd..ded2dd2905f756 100644 --- a/deps/openssl/config/archs/VC-WIN64A/asm_avx2/include/openssl/cmp.h +++ b/deps/openssl/config/archs/VC-WIN64A/asm_avx2/include/openssl/cmp.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by makefile from include/openssl/cmp.h.in * - * Copyright 2007-2023 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2007-2024 The OpenSSL Project Authors. All Rights Reserved. * Copyright Nokia 2007-2019 * Copyright Siemens AG 2015-2019 * @@ -35,7 +35,9 @@ extern "C" { # endif -# define OSSL_CMP_PVNO 2 +# define OSSL_CMP_PVNO_2 2 +# define OSSL_CMP_PVNO_3 3 +# define OSSL_CMP_PVNO OSSL_CMP_PVNO_2 /* v2 is the default */ /*- * PKIFailureInfo ::= BIT STRING { @@ -137,7 +139,6 @@ extern "C" { # if OSSL_CMP_PKIFAILUREINFO_MAX_BIT_PATTERN > INT_MAX # error CMP_PKIFAILUREINFO_MAX bit pattern does not fit in type int # endif - typedef ASN1_BIT_STRING OSSL_CMP_PKIFAILUREINFO; # define OSSL_CMP_CTX_FAILINFO_badAlg (1 << 0) @@ -203,8 +204,8 @@ typedef ASN1_BIT_STRING OSSL_CMP_PKIFAILUREINFO; # define OSSL_CMP_PKISTATUS_revocationWarning 4 # define OSSL_CMP_PKISTATUS_revocationNotification 5 # define OSSL_CMP_PKISTATUS_keyUpdateWarning 6 - typedef ASN1_INTEGER OSSL_CMP_PKISTATUS; + DECLARE_ASN1_ITEM(OSSL_CMP_PKISTATUS) # define OSSL_CMP_CERTORENCCERT_CERTIFICATE 0 @@ -274,6 +275,46 @@ SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CMP_ITAV, OSSL_CMP_ITAV, OSSL_CMP_ITAV) #define sk_OSSL_CMP_ITAV_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_CMP_ITAV) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_CMP_ITAV_sk_type(sk), ossl_check_OSSL_CMP_ITAV_copyfunc_type(copyfunc), ossl_check_OSSL_CMP_ITAV_freefunc_type(freefunc))) #define sk_OSSL_CMP_ITAV_set_cmp_func(sk, cmp) ((sk_OSSL_CMP_ITAV_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CMP_ITAV_sk_type(sk), ossl_check_OSSL_CMP_ITAV_compfunc_type(cmp))) + +typedef struct ossl_cmp_crlstatus_st OSSL_CMP_CRLSTATUS; +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CMP_CRLSTATUS, OSSL_CMP_CRLSTATUS, OSSL_CMP_CRLSTATUS) +#define sk_OSSL_CMP_CRLSTATUS_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_value(sk, idx) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_value(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk), (idx))) +#define sk_OSSL_CMP_CRLSTATUS_new(cmp) ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_new(ossl_check_OSSL_CMP_CRLSTATUS_compfunc_type(cmp))) +#define sk_OSSL_CMP_CRLSTATUS_new_null() ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_new_null()) +#define sk_OSSL_CMP_CRLSTATUS_new_reserve(cmp, n) ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_CMP_CRLSTATUS_compfunc_type(cmp), (n))) +#define sk_OSSL_CMP_CRLSTATUS_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), (n)) +#define sk_OSSL_CMP_CRLSTATUS_free(sk) OPENSSL_sk_free(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_delete(sk, i) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_delete(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), (i))) +#define sk_OSSL_CMP_CRLSTATUS_delete_ptr(sk, ptr) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr))) +#define sk_OSSL_CMP_CRLSTATUS_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr)) +#define sk_OSSL_CMP_CRLSTATUS_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr)) +#define sk_OSSL_CMP_CRLSTATUS_pop(sk) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_pop(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk))) +#define sk_OSSL_CMP_CRLSTATUS_shift(sk) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_shift(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk))) +#define sk_OSSL_CMP_CRLSTATUS_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk),ossl_check_OSSL_CMP_CRLSTATUS_freefunc_type(freefunc)) +#define sk_OSSL_CMP_CRLSTATUS_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr), (idx)) +#define sk_OSSL_CMP_CRLSTATUS_set(sk, idx, ptr) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_set(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), (idx), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr))) +#define sk_OSSL_CMP_CRLSTATUS_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr)) +#define sk_OSSL_CMP_CRLSTATUS_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr)) +#define sk_OSSL_CMP_CRLSTATUS_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr), pnum) +#define sk_OSSL_CMP_CRLSTATUS_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_dup(sk) ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_dup(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk))) +#define sk_OSSL_CMP_CRLSTATUS_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_copyfunc_type(copyfunc), ossl_check_OSSL_CMP_CRLSTATUS_freefunc_type(freefunc))) +#define sk_OSSL_CMP_CRLSTATUS_set_cmp_func(sk, cmp) ((sk_OSSL_CMP_CRLSTATUS_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_compfunc_type(cmp))) + + +typedef OSSL_CRMF_ATTRIBUTETYPEANDVALUE OSSL_CMP_ATAV; +# define OSSL_CMP_ATAV_free OSSL_CRMF_ATTRIBUTETYPEANDVALUE_free +typedef STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) OSSL_CMP_ATAVS; +DECLARE_ASN1_FUNCTIONS(OSSL_CMP_ATAVS) +# define stack_st_OSSL_CMP_ATAV stack_st_OSSL_CRMF_ATTRIBUTETYPEANDVALUE +# define sk_OSSL_CMP_ATAV_num sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_num +# define sk_OSSL_CMP_ATAV_value sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_value +# define sk_OSSL_CMP_ATAV_push sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_push +# define sk_OSSL_CMP_ATAV_pop_free sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_pop_free + typedef struct ossl_cmp_revrepcontent_st OSSL_CMP_REVREPCONTENT; typedef struct ossl_cmp_pkisi_st OSSL_CMP_PKISI; DECLARE_ASN1_FUNCTIONS(OSSL_CMP_PKISI) @@ -375,21 +416,75 @@ void OSSL_CMP_ITAV_set0(OSSL_CMP_ITAV *itav, ASN1_OBJECT *type, ASN1_TYPE *value); ASN1_OBJECT *OSSL_CMP_ITAV_get0_type(const OSSL_CMP_ITAV *itav); ASN1_TYPE *OSSL_CMP_ITAV_get0_value(const OSSL_CMP_ITAV *itav); -int OSSL_CMP_ITAV_push0_stack_item(STACK_OF(OSSL_CMP_ITAV) **itav_sk_p, +int OSSL_CMP_ITAV_push0_stack_item(STACK_OF(OSSL_CMP_ITAV) **sk_p, OSSL_CMP_ITAV *itav); void OSSL_CMP_ITAV_free(OSSL_CMP_ITAV *itav); + +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new0_certProfile(STACK_OF(ASN1_UTF8STRING) + *certProfile); +int OSSL_CMP_ITAV_get0_certProfile(const OSSL_CMP_ITAV *itav, + STACK_OF(ASN1_UTF8STRING) **out); +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new_caCerts(const STACK_OF(X509) *caCerts); +int OSSL_CMP_ITAV_get0_caCerts(const OSSL_CMP_ITAV *itav, STACK_OF(X509) **out); + +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new_rootCaCert(const X509 *rootCaCert); +int OSSL_CMP_ITAV_get0_rootCaCert(const OSSL_CMP_ITAV *itav, X509 **out); +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new_rootCaKeyUpdate(const X509 *newWithNew, + const X509 *newWithOld, + const X509 *oldWithNew); +int OSSL_CMP_ITAV_get0_rootCaKeyUpdate(const OSSL_CMP_ITAV *itav, + X509 **newWithNew, + X509 **newWithOld, + X509 **oldWithNew); + +OSSL_CMP_CRLSTATUS *OSSL_CMP_CRLSTATUS_create(const X509_CRL *crl, + const X509 *cert, int only_DN); +OSSL_CMP_CRLSTATUS *OSSL_CMP_CRLSTATUS_new1(const DIST_POINT_NAME *dpn, + const GENERAL_NAMES *issuer, + const ASN1_TIME *thisUpdate); +int OSSL_CMP_CRLSTATUS_get0(const OSSL_CMP_CRLSTATUS *crlstatus, + DIST_POINT_NAME **dpn, GENERAL_NAMES **issuer, + ASN1_TIME **thisUpdate); +void OSSL_CMP_CRLSTATUS_free(OSSL_CMP_CRLSTATUS *crlstatus); +OSSL_CMP_ITAV +*OSSL_CMP_ITAV_new0_crlStatusList(STACK_OF(OSSL_CMP_CRLSTATUS) *crlStatusList); +int OSSL_CMP_ITAV_get0_crlStatusList(const OSSL_CMP_ITAV *itav, + STACK_OF(OSSL_CMP_CRLSTATUS) **out); +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new_crls(const X509_CRL *crls); +int OSSL_CMP_ITAV_get0_crls(const OSSL_CMP_ITAV *it, STACK_OF(X509_CRL) **out); +OSSL_CMP_ITAV +*OSSL_CMP_ITAV_new0_certReqTemplate(OSSL_CRMF_CERTTEMPLATE *certTemplate, + OSSL_CMP_ATAVS *keySpec); +int OSSL_CMP_ITAV_get1_certReqTemplate(const OSSL_CMP_ITAV *itav, + OSSL_CRMF_CERTTEMPLATE **certTemplate, + OSSL_CMP_ATAVS **keySpec); + +OSSL_CMP_ATAV *OSSL_CMP_ATAV_create(ASN1_OBJECT *type, ASN1_TYPE *value); +void OSSL_CMP_ATAV_set0(OSSL_CMP_ATAV *itav, ASN1_OBJECT *type, + ASN1_TYPE *value); +ASN1_OBJECT *OSSL_CMP_ATAV_get0_type(const OSSL_CMP_ATAV *itav); +ASN1_TYPE *OSSL_CMP_ATAV_get0_value(const OSSL_CMP_ATAV *itav); +OSSL_CMP_ATAV *OSSL_CMP_ATAV_new_algId(const X509_ALGOR *alg); +X509_ALGOR *OSSL_CMP_ATAV_get0_algId(const OSSL_CMP_ATAV *atav); +OSSL_CMP_ATAV *OSSL_CMP_ATAV_new_rsaKeyLen(int len); +int OSSL_CMP_ATAV_get_rsaKeyLen(const OSSL_CMP_ATAV *atav); +int OSSL_CMP_ATAV_push1(OSSL_CMP_ATAVS **sk_p, const OSSL_CMP_ATAV *atav); + void OSSL_CMP_MSG_free(OSSL_CMP_MSG *msg); /* from cmp_ctx.c */ OSSL_CMP_CTX *OSSL_CMP_CTX_new(OSSL_LIB_CTX *libctx, const char *propq); void OSSL_CMP_CTX_free(OSSL_CMP_CTX *ctx); int OSSL_CMP_CTX_reinit(OSSL_CMP_CTX *ctx); +OSSL_LIB_CTX *OSSL_CMP_CTX_get0_libctx(const OSSL_CMP_CTX *ctx); +const char *OSSL_CMP_CTX_get0_propq(const OSSL_CMP_CTX *ctx); /* CMP general options: */ # define OSSL_CMP_OPT_LOG_VERBOSITY 0 /* CMP transfer options: */ -# define OSSL_CMP_OPT_KEEP_ALIVE 10 -# define OSSL_CMP_OPT_MSG_TIMEOUT 11 +# define OSSL_CMP_OPT_KEEP_ALIVE 10 +# define OSSL_CMP_OPT_MSG_TIMEOUT 11 # define OSSL_CMP_OPT_TOTAL_TIMEOUT 12 +# define OSSL_CMP_OPT_USE_TLS 13 /* CMP request options: */ # define OSSL_CMP_OPT_VALIDITY_DAYS 20 # define OSSL_CMP_OPT_SUBJECTALTNAME_NODEFAULT 21 @@ -407,6 +502,7 @@ int OSSL_CMP_CTX_reinit(OSSL_CMP_CTX *ctx); # define OSSL_CMP_OPT_DIGEST_ALGNID 34 # define OSSL_CMP_OPT_IGNORE_KEYUSAGE 35 # define OSSL_CMP_OPT_PERMIT_TA_IN_EXTRACERTS_FOR_IR 36 +# define OSSL_CMP_OPT_NO_CACHE_EXTRACERTS 37 int OSSL_CMP_CTX_set_option(OSSL_CMP_CTX *ctx, int opt, int val); int OSSL_CMP_CTX_get_option(const OSSL_CMP_CTX *ctx, int opt); /* CMP-specific callback for logging and outputting the error queue: */ @@ -420,9 +516,11 @@ int OSSL_CMP_CTX_set1_server(OSSL_CMP_CTX *ctx, const char *address); int OSSL_CMP_CTX_set_serverPort(OSSL_CMP_CTX *ctx, int port); int OSSL_CMP_CTX_set1_proxy(OSSL_CMP_CTX *ctx, const char *name); int OSSL_CMP_CTX_set1_no_proxy(OSSL_CMP_CTX *ctx, const char *names); +# ifndef OPENSSL_NO_HTTP int OSSL_CMP_CTX_set_http_cb(OSSL_CMP_CTX *ctx, OSSL_HTTP_bio_cb_t cb); int OSSL_CMP_CTX_set_http_cb_arg(OSSL_CMP_CTX *ctx, void *arg); void *OSSL_CMP_CTX_get_http_cb_arg(const OSSL_CMP_CTX *ctx); +# endif typedef OSSL_CMP_MSG *(*OSSL_CMP_transfer_cb_t) (OSSL_CMP_CTX *ctx, const OSSL_CMP_MSG *req); int OSSL_CMP_CTX_set_transfer_cb(OSSL_CMP_CTX *ctx, OSSL_CMP_transfer_cb_t cb); @@ -432,7 +530,9 @@ void *OSSL_CMP_CTX_get_transfer_cb_arg(const OSSL_CMP_CTX *ctx); int OSSL_CMP_CTX_set1_srvCert(OSSL_CMP_CTX *ctx, X509 *cert); int OSSL_CMP_CTX_set1_expected_sender(OSSL_CMP_CTX *ctx, const X509_NAME *name); int OSSL_CMP_CTX_set0_trustedStore(OSSL_CMP_CTX *ctx, X509_STORE *store); +# define OSSL_CMP_CTX_set0_trusted OSSL_CMP_CTX_set0_trustedStore X509_STORE *OSSL_CMP_CTX_get0_trustedStore(const OSSL_CMP_CTX *ctx); +# define OSSL_CMP_CTX_get0_trusted OSSL_CMP_CTX_get0_trustedStore int OSSL_CMP_CTX_set1_untrusted(OSSL_CMP_CTX *ctx, STACK_OF(X509) *certs); STACK_OF(X509) *OSSL_CMP_CTX_get0_untrusted(const OSSL_CMP_CTX *ctx); /* client authentication: */ @@ -448,12 +548,15 @@ int OSSL_CMP_CTX_set1_secretValue(OSSL_CMP_CTX *ctx, int OSSL_CMP_CTX_set1_recipient(OSSL_CMP_CTX *ctx, const X509_NAME *name); int OSSL_CMP_CTX_push0_geninfo_ITAV(OSSL_CMP_CTX *ctx, OSSL_CMP_ITAV *itav); int OSSL_CMP_CTX_reset_geninfo_ITAVs(OSSL_CMP_CTX *ctx); +STACK_OF(OSSL_CMP_ITAV) + *OSSL_CMP_CTX_get0_geninfo_ITAVs(const OSSL_CMP_CTX *ctx); int OSSL_CMP_CTX_set1_extraCertsOut(OSSL_CMP_CTX *ctx, STACK_OF(X509) *extraCertsOut); /* certificate template: */ int OSSL_CMP_CTX_set0_newPkey(OSSL_CMP_CTX *ctx, int priv, EVP_PKEY *pkey); EVP_PKEY *OSSL_CMP_CTX_get0_newPkey(const OSSL_CMP_CTX *ctx, int priv); int OSSL_CMP_CTX_set1_issuer(OSSL_CMP_CTX *ctx, const X509_NAME *name); +int OSSL_CMP_CTX_set1_serialNumber(OSSL_CMP_CTX *ctx, const ASN1_INTEGER *sn); int OSSL_CMP_CTX_set1_subjectName(OSSL_CMP_CTX *ctx, const X509_NAME *name); int OSSL_CMP_CTX_push1_subjectAltName(OSSL_CMP_CTX *ctx, const GENERAL_NAME *name); @@ -477,6 +580,7 @@ int OSSL_CMP_CTX_get_status(const OSSL_CMP_CTX *ctx); OSSL_CMP_PKIFREETEXT *OSSL_CMP_CTX_get0_statusString(const OSSL_CMP_CTX *ctx); int OSSL_CMP_CTX_get_failInfoCode(const OSSL_CMP_CTX *ctx); # define OSSL_CMP_PKISI_BUFLEN 1024 +X509 *OSSL_CMP_CTX_get0_validatedSrvCert(const OSSL_CMP_CTX *ctx); X509 *OSSL_CMP_CTX_get0_newCert(const OSSL_CMP_CTX *ctx); STACK_OF(X509) *OSSL_CMP_CTX_get1_newChain(const OSSL_CMP_CTX *ctx); STACK_OF(X509) *OSSL_CMP_CTX_get1_caPubs(const OSSL_CMP_CTX *ctx); @@ -498,10 +602,13 @@ OSSL_CMP_STATUSINFO_new(int status, int fail_info, const char *text); ASN1_OCTET_STRING *OSSL_CMP_HDR_get0_transactionID(const OSSL_CMP_PKIHEADER *hdr); ASN1_OCTET_STRING *OSSL_CMP_HDR_get0_recipNonce(const OSSL_CMP_PKIHEADER *hdr); +STACK_OF(OSSL_CMP_ITAV) + *OSSL_CMP_HDR_get0_geninfo_ITAVs(const OSSL_CMP_PKIHEADER *hdr); /* from cmp_msg.c */ OSSL_CMP_PKIHEADER *OSSL_CMP_MSG_get0_header(const OSSL_CMP_MSG *msg); int OSSL_CMP_MSG_get_bodytype(const OSSL_CMP_MSG *msg); +X509_PUBKEY *OSSL_CMP_MSG_get0_certreq_publickey(const OSSL_CMP_MSG *msg); int OSSL_CMP_MSG_update_transactionID(OSSL_CMP_CTX *ctx, OSSL_CMP_MSG *msg); int OSSL_CMP_MSG_update_recipNonce(OSSL_CMP_CTX *ctx, OSSL_CMP_MSG *msg); OSSL_CRMF_MSG *OSSL_CMP_CTX_setup_CRM(OSSL_CMP_CTX *ctx, int for_KUR, int rid); @@ -517,8 +624,10 @@ int OSSL_CMP_validate_cert_path(const OSSL_CMP_CTX *ctx, X509_STORE *trusted_store, X509 *cert); /* from cmp_http.c */ +# ifndef OPENSSL_NO_HTTP OSSL_CMP_MSG *OSSL_CMP_MSG_http_perform(OSSL_CMP_CTX *ctx, const OSSL_CMP_MSG *req); +# endif /* from cmp_server.c */ typedef struct ossl_cmp_srv_ctx_st OSSL_CMP_SRV_CTX; @@ -561,6 +670,13 @@ int OSSL_CMP_SRV_CTX_init(OSSL_CMP_SRV_CTX *srv_ctx, void *custom_ctx, OSSL_CMP_SRV_error_cb_t process_error, OSSL_CMP_SRV_certConf_cb_t process_certConf, OSSL_CMP_SRV_pollReq_cb_t process_pollReq); +typedef int (*OSSL_CMP_SRV_delayed_delivery_cb_t)(OSSL_CMP_SRV_CTX *srv_ctx, + const OSSL_CMP_MSG *req); +typedef int (*OSSL_CMP_SRV_clean_transaction_cb_t)(OSSL_CMP_SRV_CTX *srv_ctx, + const ASN1_OCTET_STRING *id); +int OSSL_CMP_SRV_CTX_init_trans(OSSL_CMP_SRV_CTX *srv_ctx, + OSSL_CMP_SRV_delayed_delivery_cb_t delay, + OSSL_CMP_SRV_clean_transaction_cb_t clean); OSSL_CMP_CTX *OSSL_CMP_SRV_CTX_get0_cmp_ctx(const OSSL_CMP_SRV_CTX *srv_ctx); void *OSSL_CMP_SRV_CTX_get0_custom_ctx(const OSSL_CMP_SRV_CTX *srv_ctx); int OSSL_CMP_SRV_CTX_set_send_unprotected_errors(OSSL_CMP_SRV_CTX *srv_ctx, @@ -577,6 +693,8 @@ X509 *OSSL_CMP_exec_certreq(OSSL_CMP_CTX *ctx, int req_type, # define OSSL_CMP_CR 2 # define OSSL_CMP_P10CR 4 # define OSSL_CMP_KUR 7 +# define OSSL_CMP_GENM 21 +# define OSSL_CMP_ERROR 23 # define OSSL_CMP_exec_IR_ses(ctx) \ OSSL_CMP_exec_certreq(ctx, OSSL_CMP_IR, NULL) # define OSSL_CMP_exec_CR_ses(ctx) \ @@ -590,6 +708,18 @@ int OSSL_CMP_try_certreq(OSSL_CMP_CTX *ctx, int req_type, int OSSL_CMP_exec_RR_ses(OSSL_CMP_CTX *ctx); STACK_OF(OSSL_CMP_ITAV) *OSSL_CMP_exec_GENM_ses(OSSL_CMP_CTX *ctx); +/* from cmp_genm.c */ +int OSSL_CMP_get1_caCerts(OSSL_CMP_CTX *ctx, STACK_OF(X509) **out); +int OSSL_CMP_get1_rootCaKeyUpdate(OSSL_CMP_CTX *ctx, + const X509 *oldWithOld, X509 **newWithNew, + X509 **newWithOld, X509 **oldWithNew); +int OSSL_CMP_get1_crlUpdate(OSSL_CMP_CTX *ctx, const X509 *crlcert, + const X509_CRL *last_crl, + X509_CRL **crl); +int OSSL_CMP_get1_certReqTemplate(OSSL_CMP_CTX *ctx, + OSSL_CRMF_CERTTEMPLATE **certTemplate, + OSSL_CMP_ATAVS **keySpec); + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/VC-WIN64A/asm_avx2/include/openssl/cms.h b/deps/openssl/config/archs/VC-WIN64A/asm_avx2/include/openssl/cms.h index 03ce6ab07aac44..1a51921256fea4 100644 --- a/deps/openssl/config/archs/VC-WIN64A/asm_avx2/include/openssl/cms.h +++ b/deps/openssl/config/archs/VC-WIN64A/asm_avx2/include/openssl/cms.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by makefile from include/openssl/cms.h.in * - * Copyright 2008-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2008-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -31,8 +31,10 @@ extern "C" { # endif +typedef struct CMS_EnvelopedData_st CMS_EnvelopedData; typedef struct CMS_ContentInfo_st CMS_ContentInfo; typedef struct CMS_SignerInfo_st CMS_SignerInfo; +typedef struct CMS_SignedData_st CMS_SignedData; typedef struct CMS_CertificateChoices CMS_CertificateChoices; typedef struct CMS_RevocationInfoChoice_st CMS_RevocationInfoChoice; typedef struct CMS_RecipientInfo_st CMS_RecipientInfo; @@ -147,10 +149,14 @@ SKM_DEFINE_STACK_OF_INTERNAL(CMS_RevocationInfoChoice, CMS_RevocationInfoChoice, #define sk_CMS_RevocationInfoChoice_set_cmp_func(sk, cmp) ((sk_CMS_RevocationInfoChoice_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_CMS_RevocationInfoChoice_sk_type(sk), ossl_check_CMS_RevocationInfoChoice_compfunc_type(cmp))) +DECLARE_ASN1_ITEM(CMS_EnvelopedData) +DECLARE_ASN1_ALLOC_FUNCTIONS(CMS_SignedData) DECLARE_ASN1_FUNCTIONS(CMS_ContentInfo) DECLARE_ASN1_FUNCTIONS(CMS_ReceiptRequest) DECLARE_ASN1_PRINT_FUNCTION(CMS_ContentInfo) +DECLARE_ASN1_DUP_FUNCTION(CMS_EnvelopedData) + CMS_ContentInfo *CMS_ContentInfo_new_ex(OSSL_LIB_CTX *libctx, const char *propq); # define CMS_SIGNERINFO_ISSUER_SERIAL 0 @@ -190,6 +196,7 @@ CMS_ContentInfo *CMS_ContentInfo_new_ex(OSSL_LIB_CTX *libctx, const char *propq) # define CMS_ASCIICRLF 0x80000 # define CMS_CADES 0x100000 # define CMS_USE_ORIGINATOR_KEYID 0x200000 +# define CMS_NO_SIGNING_TIME 0x400000 const ASN1_OBJECT *CMS_get0_type(const CMS_ContentInfo *cms); @@ -217,13 +224,16 @@ int SMIME_write_CMS(BIO *bio, CMS_ContentInfo *cms, BIO *data, int flags); int CMS_final(CMS_ContentInfo *cms, BIO *data, BIO *dcont, unsigned int flags); +int CMS_final_digest(CMS_ContentInfo *cms, + const unsigned char *md, unsigned int mdlen, BIO *dcont, + unsigned int flags); CMS_ContentInfo *CMS_sign(X509 *signcert, EVP_PKEY *pkey, STACK_OF(X509) *certs, BIO *data, unsigned int flags); CMS_ContentInfo *CMS_sign_ex(X509 *signcert, EVP_PKEY *pkey, STACK_OF(X509) *certs, BIO *data, - unsigned int flags, OSSL_LIB_CTX *ctx, + unsigned int flags, OSSL_LIB_CTX *libctx, const char *propq); CMS_ContentInfo *CMS_sign_receipt(CMS_SignerInfo *si, @@ -233,27 +243,26 @@ CMS_ContentInfo *CMS_sign_receipt(CMS_SignerInfo *si, int CMS_data(CMS_ContentInfo *cms, BIO *out, unsigned int flags); CMS_ContentInfo *CMS_data_create(BIO *in, unsigned int flags); CMS_ContentInfo *CMS_data_create_ex(BIO *in, unsigned int flags, - OSSL_LIB_CTX *ctx, const char *propq); + OSSL_LIB_CTX *libctx, const char *propq); int CMS_digest_verify(CMS_ContentInfo *cms, BIO *dcont, BIO *out, unsigned int flags); CMS_ContentInfo *CMS_digest_create(BIO *in, const EVP_MD *md, unsigned int flags); CMS_ContentInfo *CMS_digest_create_ex(BIO *in, const EVP_MD *md, - unsigned int flags, OSSL_LIB_CTX *ctx, + unsigned int flags, OSSL_LIB_CTX *libctx, const char *propq); int CMS_EncryptedData_decrypt(CMS_ContentInfo *cms, const unsigned char *key, size_t keylen, BIO *dcont, BIO *out, unsigned int flags); - CMS_ContentInfo *CMS_EncryptedData_encrypt(BIO *in, const EVP_CIPHER *cipher, const unsigned char *key, size_t keylen, unsigned int flags); CMS_ContentInfo *CMS_EncryptedData_encrypt_ex(BIO *in, const EVP_CIPHER *cipher, const unsigned char *key, size_t keylen, unsigned int flags, - OSSL_LIB_CTX *ctx, + OSSL_LIB_CTX *libctx, const char *propq); int CMS_EncryptedData_set1_key(CMS_ContentInfo *cms, const EVP_CIPHER *ciph, @@ -272,7 +281,7 @@ CMS_ContentInfo *CMS_encrypt(STACK_OF(X509) *certs, BIO *in, const EVP_CIPHER *cipher, unsigned int flags); CMS_ContentInfo *CMS_encrypt_ex(STACK_OF(X509) *certs, BIO *in, const EVP_CIPHER *cipher, unsigned int flags, - OSSL_LIB_CTX *ctx, const char *propq); + OSSL_LIB_CTX *libctx, const char *propq); int CMS_decrypt(CMS_ContentInfo *cms, EVP_PKEY *pkey, X509 *cert, BIO *dcont, BIO *out, unsigned int flags); @@ -291,12 +300,16 @@ int CMS_RecipientInfo_type(CMS_RecipientInfo *ri); EVP_PKEY_CTX *CMS_RecipientInfo_get0_pkey_ctx(CMS_RecipientInfo *ri); CMS_ContentInfo *CMS_AuthEnvelopedData_create(const EVP_CIPHER *cipher); CMS_ContentInfo * -CMS_AuthEnvelopedData_create_ex(const EVP_CIPHER *cipher, OSSL_LIB_CTX *ctx, +CMS_AuthEnvelopedData_create_ex(const EVP_CIPHER *cipher, OSSL_LIB_CTX *libctx, const char *propq); CMS_ContentInfo *CMS_EnvelopedData_create(const EVP_CIPHER *cipher); CMS_ContentInfo *CMS_EnvelopedData_create_ex(const EVP_CIPHER *cipher, - OSSL_LIB_CTX *ctx, + OSSL_LIB_CTX *libctx, const char *propq); +BIO *CMS_EnvelopedData_decrypt(CMS_EnvelopedData *env, BIO *detached_data, + EVP_PKEY *pkey, X509 *cert, + ASN1_OCTET_STRING *secret, unsigned int flags, + OSSL_LIB_CTX *libctx, const char *propq); CMS_RecipientInfo *CMS_add1_recipient_cert(CMS_ContentInfo *cms, X509 *recip, unsigned int flags); @@ -385,6 +398,11 @@ ASN1_OCTET_STRING *CMS_SignerInfo_get0_signature(CMS_SignerInfo *si); int CMS_SignerInfo_sign(CMS_SignerInfo *si); int CMS_SignerInfo_verify(CMS_SignerInfo *si); int CMS_SignerInfo_verify_content(CMS_SignerInfo *si, BIO *chain); +BIO *CMS_SignedData_verify(CMS_SignedData *sd, BIO *detached_data, + STACK_OF(X509) *scerts, X509_STORE *store, + STACK_OF(X509) *extra, STACK_OF(X509_CRL) *crls, + unsigned int flags, + OSSL_LIB_CTX *libctx, const char *propq); int CMS_add_smimecap(CMS_SignerInfo *si, STACK_OF(X509_ALGOR) *algs); int CMS_add_simple_smimecap(STACK_OF(X509_ALGOR) **algs, @@ -441,7 +459,7 @@ CMS_ReceiptRequest *CMS_ReceiptRequest_create0_ex( unsigned char *id, int idlen, int allorfirst, STACK_OF(GENERAL_NAMES) *receiptList, STACK_OF(GENERAL_NAMES) *receiptsTo, - OSSL_LIB_CTX *ctx); + OSSL_LIB_CTX *libctx); int CMS_add1_ReceiptRequest(CMS_SignerInfo *si, CMS_ReceiptRequest *rr); void CMS_ReceiptRequest_get0_values(CMS_ReceiptRequest *rr, diff --git a/deps/openssl/config/archs/VC-WIN64A/asm_avx2/include/openssl/comp.h b/deps/openssl/config/archs/VC-WIN64A/asm_avx2/include/openssl/comp.h new file mode 100644 index 00000000000000..90e39511fe8d28 --- /dev/null +++ b/deps/openssl/config/archs/VC-WIN64A/asm_avx2/include/openssl/comp.h @@ -0,0 +1,98 @@ +/* + * Copyright 2015-2024 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + + +#ifndef OPENSSL_COMP_H +# define OPENSSL_COMP_H +# pragma once + +# include +# ifndef OPENSSL_NO_DEPRECATED_3_0 +# define HEADER_COMP_H +# endif + +# include + +# include +# include +# ifdef __cplusplus +extern "C" { +# endif + + + +# ifndef OPENSSL_NO_COMP + +COMP_CTX *COMP_CTX_new(COMP_METHOD *meth); +const COMP_METHOD *COMP_CTX_get_method(const COMP_CTX *ctx); +int COMP_CTX_get_type(const COMP_CTX* comp); +int COMP_get_type(const COMP_METHOD *meth); +const char *COMP_get_name(const COMP_METHOD *meth); +void COMP_CTX_free(COMP_CTX *ctx); + +int COMP_compress_block(COMP_CTX *ctx, unsigned char *out, int olen, + unsigned char *in, int ilen); +int COMP_expand_block(COMP_CTX *ctx, unsigned char *out, int olen, + unsigned char *in, int ilen); + +COMP_METHOD *COMP_zlib(void); +COMP_METHOD *COMP_zlib_oneshot(void); +COMP_METHOD *COMP_brotli(void); +COMP_METHOD *COMP_brotli_oneshot(void); +COMP_METHOD *COMP_zstd(void); +COMP_METHOD *COMP_zstd_oneshot(void); + +# ifndef OPENSSL_NO_DEPRECATED_1_1_0 +# define COMP_zlib_cleanup() while(0) continue +# endif + +# ifdef OPENSSL_BIO_H +const BIO_METHOD *BIO_f_zlib(void); +const BIO_METHOD *BIO_f_brotli(void); +const BIO_METHOD *BIO_f_zstd(void); +# endif + +# endif + +typedef struct ssl_comp_st SSL_COMP; + +SKM_DEFINE_STACK_OF_INTERNAL(SSL_COMP, SSL_COMP, SSL_COMP) +#define sk_SSL_COMP_num(sk) OPENSSL_sk_num(ossl_check_const_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_value(sk, idx) ((SSL_COMP *)OPENSSL_sk_value(ossl_check_const_SSL_COMP_sk_type(sk), (idx))) +#define sk_SSL_COMP_new(cmp) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new(ossl_check_SSL_COMP_compfunc_type(cmp))) +#define sk_SSL_COMP_new_null() ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new_null()) +#define sk_SSL_COMP_new_reserve(cmp, n) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new_reserve(ossl_check_SSL_COMP_compfunc_type(cmp), (n))) +#define sk_SSL_COMP_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_SSL_COMP_sk_type(sk), (n)) +#define sk_SSL_COMP_free(sk) OPENSSL_sk_free(ossl_check_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_zero(sk) OPENSSL_sk_zero(ossl_check_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_delete(sk, i) ((SSL_COMP *)OPENSSL_sk_delete(ossl_check_SSL_COMP_sk_type(sk), (i))) +#define sk_SSL_COMP_delete_ptr(sk, ptr) ((SSL_COMP *)OPENSSL_sk_delete_ptr(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr))) +#define sk_SSL_COMP_push(sk, ptr) OPENSSL_sk_push(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) +#define sk_SSL_COMP_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) +#define sk_SSL_COMP_pop(sk) ((SSL_COMP *)OPENSSL_sk_pop(ossl_check_SSL_COMP_sk_type(sk))) +#define sk_SSL_COMP_shift(sk) ((SSL_COMP *)OPENSSL_sk_shift(ossl_check_SSL_COMP_sk_type(sk))) +#define sk_SSL_COMP_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_SSL_COMP_sk_type(sk),ossl_check_SSL_COMP_freefunc_type(freefunc)) +#define sk_SSL_COMP_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr), (idx)) +#define sk_SSL_COMP_set(sk, idx, ptr) ((SSL_COMP *)OPENSSL_sk_set(ossl_check_SSL_COMP_sk_type(sk), (idx), ossl_check_SSL_COMP_type(ptr))) +#define sk_SSL_COMP_find(sk, ptr) OPENSSL_sk_find(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) +#define sk_SSL_COMP_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) +#define sk_SSL_COMP_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr), pnum) +#define sk_SSL_COMP_sort(sk) OPENSSL_sk_sort(ossl_check_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_dup(sk) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_dup(ossl_check_const_SSL_COMP_sk_type(sk))) +#define sk_SSL_COMP_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_deep_copy(ossl_check_const_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_copyfunc_type(copyfunc), ossl_check_SSL_COMP_freefunc_type(freefunc))) +#define sk_SSL_COMP_set_cmp_func(sk, cmp) ((sk_SSL_COMP_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_compfunc_type(cmp))) + + + +# ifdef __cplusplus +} +# endif +#endif diff --git a/deps/openssl/config/archs/VC-WIN64A/asm_avx2/include/openssl/conf.h b/deps/openssl/config/archs/VC-WIN64A/asm_avx2/include/openssl/conf.h index 994e573a957435..ffa9ced71e8b26 100644 --- a/deps/openssl/config/archs/VC-WIN64A/asm_avx2/include/openssl/conf.h +++ b/deps/openssl/config/archs/VC-WIN64A/asm_avx2/include/openssl/conf.h @@ -27,6 +27,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -65,7 +68,7 @@ SKM_DEFINE_STACK_OF_INTERNAL(CONF_VALUE, CONF_VALUE, CONF_VALUE) #define sk_CONF_VALUE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(CONF_VALUE) *)OPENSSL_sk_deep_copy(ossl_check_const_CONF_VALUE_sk_type(sk), ossl_check_CONF_VALUE_copyfunc_type(copyfunc), ossl_check_CONF_VALUE_freefunc_type(freefunc))) #define sk_CONF_VALUE_set_cmp_func(sk, cmp) ((sk_CONF_VALUE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_CONF_VALUE_sk_type(sk), ossl_check_CONF_VALUE_compfunc_type(cmp))) DEFINE_LHASH_OF_INTERNAL(CONF_VALUE); -#define lh_CONF_VALUE_new(hfn, cmp) ((LHASH_OF(CONF_VALUE) *)OPENSSL_LH_new(ossl_check_CONF_VALUE_lh_hashfunc_type(hfn), ossl_check_CONF_VALUE_lh_compfunc_type(cmp))) +#define lh_CONF_VALUE_new(hfn, cmp) ((LHASH_OF(CONF_VALUE) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new(ossl_check_CONF_VALUE_lh_hashfunc_type(hfn), ossl_check_CONF_VALUE_lh_compfunc_type(cmp)), lh_CONF_VALUE_hash_thunk, lh_CONF_VALUE_comp_thunk, lh_CONF_VALUE_doall_thunk, lh_CONF_VALUE_doall_arg_thunk)) #define lh_CONF_VALUE_free(lh) OPENSSL_LH_free(ossl_check_CONF_VALUE_lh_type(lh)) #define lh_CONF_VALUE_flush(lh) OPENSSL_LH_flush(ossl_check_CONF_VALUE_lh_type(lh)) #define lh_CONF_VALUE_insert(lh, ptr) ((CONF_VALUE *)OPENSSL_LH_insert(ossl_check_CONF_VALUE_lh_type(lh), ossl_check_CONF_VALUE_lh_plain_type(ptr))) diff --git a/deps/openssl/config/archs/VC-WIN64A/asm_avx2/include/openssl/configuration.h b/deps/openssl/config/archs/VC-WIN64A/asm_avx2/include/openssl/configuration.h index 6a413341de2587..c3090e2efeff08 100644 --- a/deps/openssl/config/archs/VC-WIN64A/asm_avx2/include/openssl/configuration.h +++ b/deps/openssl/config/archs/VC-WIN64A/asm_avx2/include/openssl/configuration.h @@ -29,7 +29,7 @@ extern "C" { # ifndef OPENSSL_SYS_WIN64A # define OPENSSL_SYS_WIN64A 1 # endif -# define OPENSSL_CONFIGURED_API 30000 +# define OPENSSL_CONFIGURED_API 30500 # ifndef OPENSSL_RAND_SEED_OS # define OPENSSL_RAND_SEED_OS # endif @@ -42,6 +42,12 @@ extern "C" { # ifndef OPENSSL_NO_ASAN # define OPENSSL_NO_ASAN # endif +# ifndef OPENSSL_NO_BROTLI +# define OPENSSL_NO_BROTLI +# endif +# ifndef OPENSSL_NO_BROTLI_DYNAMIC +# define OPENSSL_NO_BROTLI_DYNAMIC +# endif # ifndef OPENSSL_NO_COMP # define OPENSSL_NO_COMP # endif @@ -51,6 +57,9 @@ extern "C" { # ifndef OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE # define OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE # endif +# ifndef OPENSSL_NO_DEMOS +# define OPENSSL_NO_DEMOS +# endif # ifndef OPENSSL_NO_DEVCRYPTOENG # define OPENSSL_NO_DEVCRYPTOENG # endif @@ -63,12 +72,24 @@ extern "C" { # ifndef OPENSSL_NO_EXTERNAL_TESTS # define OPENSSL_NO_EXTERNAL_TESTS # endif +# ifndef OPENSSL_NO_FIPS_JITTER +# define OPENSSL_NO_FIPS_JITTER +# endif # ifndef OPENSSL_NO_FUZZ_AFL # define OPENSSL_NO_FUZZ_AFL # endif # ifndef OPENSSL_NO_FUZZ_LIBFUZZER # define OPENSSL_NO_FUZZ_LIBFUZZER # endif +# ifndef OPENSSL_NO_H3DEMO +# define OPENSSL_NO_H3DEMO +# endif +# ifndef OPENSSL_NO_HQINTEROP +# define OPENSSL_NO_HQINTEROP +# endif +# ifndef OPENSSL_NO_JITTER +# define OPENSSL_NO_JITTER +# endif # ifndef OPENSSL_NO_KTLS # define OPENSSL_NO_KTLS # endif @@ -81,6 +102,9 @@ extern "C" { # ifndef OPENSSL_NO_MSAN # define OPENSSL_NO_MSAN # endif +# ifndef OPENSSL_NO_PIE +# define OPENSSL_NO_PIE +# endif # ifndef OPENSSL_NO_RC5 # define OPENSSL_NO_RC5 # endif @@ -93,6 +117,12 @@ extern "C" { # ifndef OPENSSL_NO_SSL3_METHOD # define OPENSSL_NO_SSL3_METHOD # endif +# ifndef OPENSSL_NO_SSLKEYLOG +# define OPENSSL_NO_SSLKEYLOG +# endif +# ifndef OPENSSL_NO_TFO +# define OPENSSL_NO_TFO +# endif # ifndef OPENSSL_NO_TRACE # define OPENSSL_NO_TRACE # endif @@ -108,6 +138,18 @@ extern "C" { # ifndef OPENSSL_NO_WEAK_SSL_CIPHERS # define OPENSSL_NO_WEAK_SSL_CIPHERS # endif +# ifndef OPENSSL_NO_ZLIB +# define OPENSSL_NO_ZLIB +# endif +# ifndef OPENSSL_NO_ZLIB_DYNAMIC +# define OPENSSL_NO_ZLIB_DYNAMIC +# endif +# ifndef OPENSSL_NO_ZSTD +# define OPENSSL_NO_ZSTD +# endif +# ifndef OPENSSL_NO_ZSTD_DYNAMIC +# define OPENSSL_NO_ZSTD_DYNAMIC +# endif # ifndef OPENSSL_NO_DYNAMIC_ENGINE # define OPENSSL_NO_DYNAMIC_ENGINE # endif @@ -129,6 +171,12 @@ extern "C" { # define RC4_INT unsigned int +# if defined(OPENSSL_NO_COMP) || (defined(OPENSSL_NO_BROTLI) && defined(OPENSSL_NO_ZSTD) && defined(OPENSSL_NO_ZLIB)) +# define OPENSSL_NO_COMP_ALG +# else +# undef OPENSSL_NO_COMP_ALG +# endif + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/VC-WIN64A/asm_avx2/include/openssl/core_names.h b/deps/openssl/config/archs/VC-WIN64A/asm_avx2/include/openssl/core_names.h new file mode 100644 index 00000000000000..aaca6051c81b53 --- /dev/null +++ b/deps/openssl/config/archs/VC-WIN64A/asm_avx2/include/openssl/core_names.h @@ -0,0 +1,575 @@ +/* + * WARNING: do not edit! + * Generated by makefile from include/openssl/core_names.h.in + * + * Copyright 2019-2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + +#ifndef OPENSSL_CORE_NAMES_H +# define OPENSSL_CORE_NAMES_H +# pragma once + +# ifdef __cplusplus +extern "C" { +# endif + +/* OSSL_CIPHER_PARAM_CTS_MODE Values */ +# define OSSL_CIPHER_CTS_MODE_CS1 "CS1" +# define OSSL_CIPHER_CTS_MODE_CS2 "CS2" +# define OSSL_CIPHER_CTS_MODE_CS3 "CS3" + +/* Known CIPHER names (not a complete list) */ +# define OSSL_CIPHER_NAME_AES_128_GCM_SIV "AES-128-GCM-SIV" +# define OSSL_CIPHER_NAME_AES_192_GCM_SIV "AES-192-GCM-SIV" +# define OSSL_CIPHER_NAME_AES_256_GCM_SIV "AES-256-GCM-SIV" + +/* Known DIGEST names (not a complete list) */ +# define OSSL_DIGEST_NAME_MD5 "MD5" +# define OSSL_DIGEST_NAME_MD5_SHA1 "MD5-SHA1" +# define OSSL_DIGEST_NAME_SHA1 "SHA1" +# define OSSL_DIGEST_NAME_SHA2_224 "SHA2-224" +# define OSSL_DIGEST_NAME_SHA2_256 "SHA2-256" +# define OSSL_DIGEST_NAME_SHA2_256_192 "SHA2-256/192" +# define OSSL_DIGEST_NAME_SHA2_384 "SHA2-384" +# define OSSL_DIGEST_NAME_SHA2_512 "SHA2-512" +# define OSSL_DIGEST_NAME_SHA2_512_224 "SHA2-512/224" +# define OSSL_DIGEST_NAME_SHA2_512_256 "SHA2-512/256" +# define OSSL_DIGEST_NAME_MD2 "MD2" +# define OSSL_DIGEST_NAME_MD4 "MD4" +# define OSSL_DIGEST_NAME_MDC2 "MDC2" +# define OSSL_DIGEST_NAME_RIPEMD160 "RIPEMD160" +# define OSSL_DIGEST_NAME_SHA3_224 "SHA3-224" +# define OSSL_DIGEST_NAME_SHA3_256 "SHA3-256" +# define OSSL_DIGEST_NAME_SHA3_384 "SHA3-384" +# define OSSL_DIGEST_NAME_SHA3_512 "SHA3-512" +# define OSSL_DIGEST_NAME_KECCAK_KMAC128 "KECCAK-KMAC-128" +# define OSSL_DIGEST_NAME_KECCAK_KMAC256 "KECCAK-KMAC-256" +# define OSSL_DIGEST_NAME_SM3 "SM3" + +/* Known MAC names */ +# define OSSL_MAC_NAME_BLAKE2BMAC "BLAKE2BMAC" +# define OSSL_MAC_NAME_BLAKE2SMAC "BLAKE2SMAC" +# define OSSL_MAC_NAME_CMAC "CMAC" +# define OSSL_MAC_NAME_GMAC "GMAC" +# define OSSL_MAC_NAME_HMAC "HMAC" +# define OSSL_MAC_NAME_KMAC128 "KMAC128" +# define OSSL_MAC_NAME_KMAC256 "KMAC256" +# define OSSL_MAC_NAME_POLY1305 "POLY1305" +# define OSSL_MAC_NAME_SIPHASH "SIPHASH" + +/* Known KDF names */ +# define OSSL_KDF_NAME_HKDF "HKDF" +# define OSSL_KDF_NAME_TLS1_3_KDF "TLS13-KDF" +# define OSSL_KDF_NAME_PBKDF1 "PBKDF1" +# define OSSL_KDF_NAME_PBKDF2 "PBKDF2" +# define OSSL_KDF_NAME_SCRYPT "SCRYPT" +# define OSSL_KDF_NAME_SSHKDF "SSHKDF" +# define OSSL_KDF_NAME_SSKDF "SSKDF" +# define OSSL_KDF_NAME_TLS1_PRF "TLS1-PRF" +# define OSSL_KDF_NAME_X942KDF_ASN1 "X942KDF-ASN1" +# define OSSL_KDF_NAME_X942KDF_CONCAT "X942KDF-CONCAT" +# define OSSL_KDF_NAME_X963KDF "X963KDF" +# define OSSL_KDF_NAME_KBKDF "KBKDF" +# define OSSL_KDF_NAME_KRB5KDF "KRB5KDF" +# define OSSL_KDF_NAME_HMACDRBGKDF "HMAC-DRBG-KDF" + +/* RSA padding modes */ +# define OSSL_PKEY_RSA_PAD_MODE_NONE "none" +# define OSSL_PKEY_RSA_PAD_MODE_PKCSV15 "pkcs1" +# define OSSL_PKEY_RSA_PAD_MODE_OAEP "oaep" +# define OSSL_PKEY_RSA_PAD_MODE_X931 "x931" +# define OSSL_PKEY_RSA_PAD_MODE_PSS "pss" + +/* RSA pss padding salt length */ +# define OSSL_PKEY_RSA_PSS_SALT_LEN_DIGEST "digest" +# define OSSL_PKEY_RSA_PSS_SALT_LEN_MAX "max" +# define OSSL_PKEY_RSA_PSS_SALT_LEN_AUTO "auto" +# define OSSL_PKEY_RSA_PSS_SALT_LEN_AUTO_DIGEST_MAX "auto-digestmax" + +/* OSSL_PKEY_PARAM_EC_ENCODING values */ +# define OSSL_PKEY_EC_ENCODING_EXPLICIT "explicit" +# define OSSL_PKEY_EC_ENCODING_GROUP "named_curve" + +# define OSSL_PKEY_EC_POINT_CONVERSION_FORMAT_UNCOMPRESSED "uncompressed" +# define OSSL_PKEY_EC_POINT_CONVERSION_FORMAT_COMPRESSED "compressed" +# define OSSL_PKEY_EC_POINT_CONVERSION_FORMAT_HYBRID "hybrid" + +# define OSSL_PKEY_EC_GROUP_CHECK_DEFAULT "default" +# define OSSL_PKEY_EC_GROUP_CHECK_NAMED "named" +# define OSSL_PKEY_EC_GROUP_CHECK_NAMED_NIST "named-nist" + +/* PROV_SKEY well known key types */ +# define OSSL_SKEY_TYPE_GENERIC "GENERIC-SECRET" +# define OSSL_SKEY_TYPE_AES "AES" + +/* OSSL_KEM_PARAM_OPERATION values */ +#define OSSL_KEM_PARAM_OPERATION_RSASVE "RSASVE" +#define OSSL_KEM_PARAM_OPERATION_DHKEM "DHKEM" + +/* Provider configuration variables */ +#define OSSL_PKEY_RETAIN_SEED "pkey_retain_seed" + +/* Parameter name definitions - generated by util/perl/OpenSSL/paramnames.pm */ +# define OSSL_ALG_PARAM_ALGORITHM_ID "algorithm-id" +# define OSSL_ALG_PARAM_ALGORITHM_ID_PARAMS "algorithm-id-params" +# define OSSL_ALG_PARAM_CIPHER "cipher" +# define OSSL_ALG_PARAM_DIGEST "digest" +# define OSSL_ALG_PARAM_ENGINE "engine" +# define OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR "fips-indicator" +# define OSSL_ALG_PARAM_MAC "mac" +# define OSSL_ALG_PARAM_PROPERTIES "properties" +# define OSSL_ASYM_CIPHER_PARAM_DIGEST OSSL_PKEY_PARAM_DIGEST +# define OSSL_ASYM_CIPHER_PARAM_ENGINE OSSL_PKEY_PARAM_ENGINE +# define OSSL_ASYM_CIPHER_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_ASYM_CIPHER_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_ASYM_CIPHER_PARAM_FIPS_RSA_PKCS15_PAD_DISABLED OSSL_PROV_PARAM_RSA_PKCS15_PAD_DISABLED +# define OSSL_ASYM_CIPHER_PARAM_IMPLICIT_REJECTION "implicit-rejection" +# define OSSL_ASYM_CIPHER_PARAM_MGF1_DIGEST OSSL_PKEY_PARAM_MGF1_DIGEST +# define OSSL_ASYM_CIPHER_PARAM_MGF1_DIGEST_PROPS OSSL_PKEY_PARAM_MGF1_PROPERTIES +# define OSSL_ASYM_CIPHER_PARAM_OAEP_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_ASYM_CIPHER_PARAM_OAEP_DIGEST_PROPS "digest-props" +# define OSSL_ASYM_CIPHER_PARAM_OAEP_LABEL "oaep-label" +# define OSSL_ASYM_CIPHER_PARAM_PAD_MODE OSSL_PKEY_PARAM_PAD_MODE +# define OSSL_ASYM_CIPHER_PARAM_PROPERTIES OSSL_PKEY_PARAM_PROPERTIES +# define OSSL_ASYM_CIPHER_PARAM_TLS_CLIENT_VERSION "tls-client-version" +# define OSSL_ASYM_CIPHER_PARAM_TLS_NEGOTIATED_VERSION "tls-negotiated-version" +# define OSSL_CAPABILITY_TLS_GROUP_ALG "tls-group-alg" +# define OSSL_CAPABILITY_TLS_GROUP_ID "tls-group-id" +# define OSSL_CAPABILITY_TLS_GROUP_IS_KEM "tls-group-is-kem" +# define OSSL_CAPABILITY_TLS_GROUP_MAX_DTLS "tls-max-dtls" +# define OSSL_CAPABILITY_TLS_GROUP_MAX_TLS "tls-max-tls" +# define OSSL_CAPABILITY_TLS_GROUP_MIN_DTLS "tls-min-dtls" +# define OSSL_CAPABILITY_TLS_GROUP_MIN_TLS "tls-min-tls" +# define OSSL_CAPABILITY_TLS_GROUP_NAME "tls-group-name" +# define OSSL_CAPABILITY_TLS_GROUP_NAME_INTERNAL "tls-group-name-internal" +# define OSSL_CAPABILITY_TLS_GROUP_SECURITY_BITS "tls-group-sec-bits" +# define OSSL_CAPABILITY_TLS_SIGALG_CODE_POINT "tls-sigalg-code-point" +# define OSSL_CAPABILITY_TLS_SIGALG_HASH_NAME "tls-sigalg-hash-name" +# define OSSL_CAPABILITY_TLS_SIGALG_HASH_OID "tls-sigalg-hash-oid" +# define OSSL_CAPABILITY_TLS_SIGALG_IANA_NAME "tls-sigalg-iana-name" +# define OSSL_CAPABILITY_TLS_SIGALG_KEYTYPE "tls-sigalg-keytype" +# define OSSL_CAPABILITY_TLS_SIGALG_KEYTYPE_OID "tls-sigalg-keytype-oid" +# define OSSL_CAPABILITY_TLS_SIGALG_MAX_DTLS "tls-max-dtls" +# define OSSL_CAPABILITY_TLS_SIGALG_MAX_TLS "tls-max-tls" +# define OSSL_CAPABILITY_TLS_SIGALG_MIN_DTLS "tls-min-dtls" +# define OSSL_CAPABILITY_TLS_SIGALG_MIN_TLS "tls-min-tls" +# define OSSL_CAPABILITY_TLS_SIGALG_NAME "tls-sigalg-name" +# define OSSL_CAPABILITY_TLS_SIGALG_OID "tls-sigalg-oid" +# define OSSL_CAPABILITY_TLS_SIGALG_SECURITY_BITS "tls-sigalg-sec-bits" +# define OSSL_CAPABILITY_TLS_SIGALG_SIG_NAME "tls-sigalg-sig-name" +# define OSSL_CAPABILITY_TLS_SIGALG_SIG_OID "tls-sigalg-sig-oid" +# define OSSL_CIPHER_PARAM_AEAD "aead" +# define OSSL_CIPHER_PARAM_AEAD_IVLEN OSSL_CIPHER_PARAM_IVLEN +# define OSSL_CIPHER_PARAM_AEAD_IV_GENERATED "iv-generated" +# define OSSL_CIPHER_PARAM_AEAD_MAC_KEY "mackey" +# define OSSL_CIPHER_PARAM_AEAD_TAG "tag" +# define OSSL_CIPHER_PARAM_AEAD_TAGLEN "taglen" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_AAD "tlsaad" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_AAD_PAD "tlsaadpad" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_GET_IV_GEN "tlsivgen" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_IV_FIXED "tlsivfixed" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_SET_IV_INV "tlsivinv" +# define OSSL_CIPHER_PARAM_ALGORITHM_ID OSSL_ALG_PARAM_ALGORITHM_ID +# define OSSL_CIPHER_PARAM_ALGORITHM_ID_PARAMS OSSL_ALG_PARAM_ALGORITHM_ID_PARAMS +# define OSSL_CIPHER_PARAM_ALGORITHM_ID_PARAMS_OLD "alg_id_param" +# define OSSL_CIPHER_PARAM_BLOCK_SIZE "blocksize" +# define OSSL_CIPHER_PARAM_CTS "cts" +# define OSSL_CIPHER_PARAM_CTS_MODE "cts_mode" +# define OSSL_CIPHER_PARAM_CUSTOM_IV "custom-iv" +# define OSSL_CIPHER_PARAM_DECRYPT_ONLY "decrypt-only" +# define OSSL_CIPHER_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_CIPHER_PARAM_FIPS_ENCRYPT_CHECK "encrypt-check" +# define OSSL_CIPHER_PARAM_HAS_RAND_KEY "has-randkey" +# define OSSL_CIPHER_PARAM_IV "iv" +# define OSSL_CIPHER_PARAM_IVLEN "ivlen" +# define OSSL_CIPHER_PARAM_KEYLEN "keylen" +# define OSSL_CIPHER_PARAM_MODE "mode" +# define OSSL_CIPHER_PARAM_NUM "num" +# define OSSL_CIPHER_PARAM_PADDING "padding" +# define OSSL_CIPHER_PARAM_PIPELINE_AEAD_TAG "pipeline-tag" +# define OSSL_CIPHER_PARAM_RANDOM_KEY "randkey" +# define OSSL_CIPHER_PARAM_RC2_KEYBITS "keybits" +# define OSSL_CIPHER_PARAM_ROUNDS "rounds" +# define OSSL_CIPHER_PARAM_SPEED "speed" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK "tls-multi" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD "tls1multi_aad" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD_PACKLEN "tls1multi_aadpacklen" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC "tls1multi_enc" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_IN "tls1multi_encin" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_LEN "tls1multi_enclen" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_INTERLEAVE "tls1multi_interleave" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_BUFSIZE "tls1multi_maxbufsz" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_SEND_FRAGMENT "tls1multi_maxsndfrag" +# define OSSL_CIPHER_PARAM_TLS_MAC "tls-mac" +# define OSSL_CIPHER_PARAM_TLS_MAC_SIZE "tls-mac-size" +# define OSSL_CIPHER_PARAM_TLS_VERSION "tls-version" +# define OSSL_CIPHER_PARAM_UPDATED_IV "updated-iv" +# define OSSL_CIPHER_PARAM_USE_BITS "use-bits" +# define OSSL_CIPHER_PARAM_XTS_STANDARD "xts_standard" +# define OSSL_DECODER_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_DIGEST_PARAM_ALGID_ABSENT "algid-absent" +# define OSSL_DIGEST_PARAM_BLOCK_SIZE "blocksize" +# define OSSL_DIGEST_PARAM_MICALG "micalg" +# define OSSL_DIGEST_PARAM_PAD_TYPE "pad-type" +# define OSSL_DIGEST_PARAM_SIZE "size" +# define OSSL_DIGEST_PARAM_SSL3_MS "ssl3-ms" +# define OSSL_DIGEST_PARAM_XOF "xof" +# define OSSL_DIGEST_PARAM_XOFLEN "xoflen" +# define OSSL_DRBG_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_DRBG_PARAM_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_DRBG_PARAM_ENTROPY_REQUIRED "entropy_required" +# define OSSL_DRBG_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_DRBG_PARAM_FIPS_DIGEST_CHECK OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK +# define OSSL_DRBG_PARAM_MAC OSSL_ALG_PARAM_MAC +# define OSSL_DRBG_PARAM_MAX_ADINLEN "max_adinlen" +# define OSSL_DRBG_PARAM_MAX_ENTROPYLEN "max_entropylen" +# define OSSL_DRBG_PARAM_MAX_LENGTH "maxium_length" +# define OSSL_DRBG_PARAM_MAX_NONCELEN "max_noncelen" +# define OSSL_DRBG_PARAM_MAX_PERSLEN "max_perslen" +# define OSSL_DRBG_PARAM_MIN_ENTROPYLEN "min_entropylen" +# define OSSL_DRBG_PARAM_MIN_LENGTH "minium_length" +# define OSSL_DRBG_PARAM_MIN_NONCELEN "min_noncelen" +# define OSSL_DRBG_PARAM_PREDICTION_RESISTANCE "prediction_resistance" +# define OSSL_DRBG_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_DRBG_PARAM_RANDOM_DATA "random_data" +# define OSSL_DRBG_PARAM_RESEED_COUNTER "reseed_counter" +# define OSSL_DRBG_PARAM_RESEED_REQUESTS "reseed_requests" +# define OSSL_DRBG_PARAM_RESEED_TIME "reseed_time" +# define OSSL_DRBG_PARAM_RESEED_TIME_INTERVAL "reseed_time_interval" +# define OSSL_DRBG_PARAM_SIZE "size" +# define OSSL_DRBG_PARAM_USE_DF "use_derivation_function" +# define OSSL_ENCODER_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_ENCODER_PARAM_ENCRYPT_LEVEL "encrypt-level" +# define OSSL_ENCODER_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_ENCODER_PARAM_SAVE_PARAMETERS "save-parameters" +# define OSSL_EXCHANGE_PARAM_EC_ECDH_COFACTOR_MODE "ecdh-cofactor-mode" +# define OSSL_EXCHANGE_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_EXCHANGE_PARAM_FIPS_DIGEST_CHECK OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK +# define OSSL_EXCHANGE_PARAM_FIPS_ECDH_COFACTOR_CHECK OSSL_PROV_PARAM_ECDH_COFACTOR_CHECK +# define OSSL_EXCHANGE_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_EXCHANGE_PARAM_KDF_DIGEST "kdf-digest" +# define OSSL_EXCHANGE_PARAM_KDF_DIGEST_PROPS "kdf-digest-props" +# define OSSL_EXCHANGE_PARAM_KDF_OUTLEN "kdf-outlen" +# define OSSL_EXCHANGE_PARAM_KDF_TYPE "kdf-type" +# define OSSL_EXCHANGE_PARAM_KDF_UKM "kdf-ukm" +# define OSSL_EXCHANGE_PARAM_PAD "pad" +# define OSSL_GEN_PARAM_ITERATION "iteration" +# define OSSL_GEN_PARAM_POTENTIAL "potential" +# define OSSL_KDF_PARAM_ARGON2_AD "ad" +# define OSSL_KDF_PARAM_ARGON2_LANES "lanes" +# define OSSL_KDF_PARAM_ARGON2_MEMCOST "memcost" +# define OSSL_KDF_PARAM_ARGON2_VERSION "version" +# define OSSL_KDF_PARAM_CEK_ALG "cekalg" +# define OSSL_KDF_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_KDF_PARAM_CONSTANT "constant" +# define OSSL_KDF_PARAM_DATA "data" +# define OSSL_KDF_PARAM_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_KDF_PARAM_EARLY_CLEAN "early_clean" +# define OSSL_KDF_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_KDF_PARAM_FIPS_DIGEST_CHECK OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK +# define OSSL_KDF_PARAM_FIPS_EMS_CHECK "ems_check" +# define OSSL_KDF_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_KDF_PARAM_HMACDRBG_ENTROPY "entropy" +# define OSSL_KDF_PARAM_HMACDRBG_NONCE "nonce" +# define OSSL_KDF_PARAM_INFO "info" +# define OSSL_KDF_PARAM_ITER "iter" +# define OSSL_KDF_PARAM_KBKDF_R "r" +# define OSSL_KDF_PARAM_KBKDF_USE_L "use-l" +# define OSSL_KDF_PARAM_KBKDF_USE_SEPARATOR "use-separator" +# define OSSL_KDF_PARAM_KEY "key" +# define OSSL_KDF_PARAM_LABEL "label" +# define OSSL_KDF_PARAM_MAC OSSL_ALG_PARAM_MAC +# define OSSL_KDF_PARAM_MAC_SIZE "maclen" +# define OSSL_KDF_PARAM_MODE "mode" +# define OSSL_KDF_PARAM_PASSWORD "pass" +# define OSSL_KDF_PARAM_PKCS12_ID "id" +# define OSSL_KDF_PARAM_PKCS5 "pkcs5" +# define OSSL_KDF_PARAM_PREFIX "prefix" +# define OSSL_KDF_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_KDF_PARAM_SALT "salt" +# define OSSL_KDF_PARAM_SCRYPT_MAXMEM "maxmem_bytes" +# define OSSL_KDF_PARAM_SCRYPT_N "n" +# define OSSL_KDF_PARAM_SCRYPT_P "p" +# define OSSL_KDF_PARAM_SCRYPT_R "r" +# define OSSL_KDF_PARAM_SECRET "secret" +# define OSSL_KDF_PARAM_SEED "seed" +# define OSSL_KDF_PARAM_SIZE "size" +# define OSSL_KDF_PARAM_SSHKDF_SESSION_ID "session_id" +# define OSSL_KDF_PARAM_SSHKDF_TYPE "type" +# define OSSL_KDF_PARAM_SSHKDF_XCGHASH "xcghash" +# define OSSL_KDF_PARAM_THREADS "threads" +# define OSSL_KDF_PARAM_UKM "ukm" +# define OSSL_KDF_PARAM_X942_ACVPINFO "acvp-info" +# define OSSL_KDF_PARAM_X942_PARTYUINFO "partyu-info" +# define OSSL_KDF_PARAM_X942_PARTYVINFO "partyv-info" +# define OSSL_KDF_PARAM_X942_SUPP_PRIVINFO "supp-privinfo" +# define OSSL_KDF_PARAM_X942_SUPP_PUBINFO "supp-pubinfo" +# define OSSL_KDF_PARAM_X942_USE_KEYBITS "use-keybits" +# define OSSL_KEM_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_KEM_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_KEM_PARAM_IKME "ikme" +# define OSSL_KEM_PARAM_OPERATION "operation" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_BLOCK_PADDING "block_padding" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_HS_PADDING "hs_padding" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_MAX_EARLY_DATA "max_early_data" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_MAX_FRAG_LEN "max_frag_len" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_MODE "mode" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_OPTIONS "options" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_READ_AHEAD "read_ahead" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_STREAM_MAC "stream_mac" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_TLSTREE "tlstree" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_USE_ETM "use_etm" +# define OSSL_LIBSSL_RECORD_LAYER_READ_BUFFER_LEN "read_buffer_len" +# define OSSL_MAC_PARAM_BLOCK_SIZE "block-size" +# define OSSL_MAC_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_MAC_PARAM_CUSTOM "custom" +# define OSSL_MAC_PARAM_C_ROUNDS "c-rounds" +# define OSSL_MAC_PARAM_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_MAC_PARAM_DIGEST_NOINIT "digest-noinit" +# define OSSL_MAC_PARAM_DIGEST_ONESHOT "digest-oneshot" +# define OSSL_MAC_PARAM_D_ROUNDS "d-rounds" +# define OSSL_MAC_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_MAC_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_MAC_PARAM_FIPS_NO_SHORT_MAC OSSL_PROV_PARAM_NO_SHORT_MAC +# define OSSL_MAC_PARAM_IV "iv" +# define OSSL_MAC_PARAM_KEY "key" +# define OSSL_MAC_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_MAC_PARAM_SALT "salt" +# define OSSL_MAC_PARAM_SIZE "size" +# define OSSL_MAC_PARAM_TLS_DATA_SIZE "tls-data-size" +# define OSSL_MAC_PARAM_XOF "xof" +# define OSSL_OBJECT_PARAM_DATA "data" +# define OSSL_OBJECT_PARAM_DATA_STRUCTURE "data-structure" +# define OSSL_OBJECT_PARAM_DATA_TYPE "data-type" +# define OSSL_OBJECT_PARAM_DESC "desc" +# define OSSL_OBJECT_PARAM_INPUT_TYPE "input-type" +# define OSSL_OBJECT_PARAM_REFERENCE "reference" +# define OSSL_OBJECT_PARAM_TYPE "type" +# define OSSL_PASSPHRASE_PARAM_INFO "info" +# define OSSL_PKEY_PARAM_ALGORITHM_ID OSSL_ALG_PARAM_ALGORITHM_ID +# define OSSL_PKEY_PARAM_ALGORITHM_ID_PARAMS OSSL_ALG_PARAM_ALGORITHM_ID_PARAMS +# define OSSL_PKEY_PARAM_BITS "bits" +# define OSSL_PKEY_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_PKEY_PARAM_DEFAULT_DIGEST "default-digest" +# define OSSL_PKEY_PARAM_DHKEM_IKM "dhkem-ikm" +# define OSSL_PKEY_PARAM_DH_GENERATOR "safeprime-generator" +# define OSSL_PKEY_PARAM_DH_PRIV_LEN "priv_len" +# define OSSL_PKEY_PARAM_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_PKEY_PARAM_DIGEST_SIZE "digest-size" +# define OSSL_PKEY_PARAM_DIST_ID "distid" +# define OSSL_PKEY_PARAM_EC_A "a" +# define OSSL_PKEY_PARAM_EC_B "b" +# define OSSL_PKEY_PARAM_EC_CHAR2_M "m" +# define OSSL_PKEY_PARAM_EC_CHAR2_PP_K1 "k1" +# define OSSL_PKEY_PARAM_EC_CHAR2_PP_K2 "k2" +# define OSSL_PKEY_PARAM_EC_CHAR2_PP_K3 "k3" +# define OSSL_PKEY_PARAM_EC_CHAR2_TP_BASIS "tp" +# define OSSL_PKEY_PARAM_EC_CHAR2_TYPE "basis-type" +# define OSSL_PKEY_PARAM_EC_COFACTOR "cofactor" +# define OSSL_PKEY_PARAM_EC_DECODED_FROM_EXPLICIT_PARAMS "decoded-from-explicit" +# define OSSL_PKEY_PARAM_EC_ENCODING "encoding" +# define OSSL_PKEY_PARAM_EC_FIELD_TYPE "field-type" +# define OSSL_PKEY_PARAM_EC_GENERATOR "generator" +# define OSSL_PKEY_PARAM_EC_GROUP_CHECK_TYPE "group-check" +# define OSSL_PKEY_PARAM_EC_INCLUDE_PUBLIC "include-public" +# define OSSL_PKEY_PARAM_EC_ORDER "order" +# define OSSL_PKEY_PARAM_EC_P "p" +# define OSSL_PKEY_PARAM_EC_POINT_CONVERSION_FORMAT "point-format" +# define OSSL_PKEY_PARAM_EC_PUB_X "qx" +# define OSSL_PKEY_PARAM_EC_PUB_Y "qy" +# define OSSL_PKEY_PARAM_EC_SEED "seed" +# define OSSL_PKEY_PARAM_ENCODED_PUBLIC_KEY "encoded-pub-key" +# define OSSL_PKEY_PARAM_ENGINE OSSL_ALG_PARAM_ENGINE +# define OSSL_PKEY_PARAM_FFC_COFACTOR "j" +# define OSSL_PKEY_PARAM_FFC_DIGEST OSSL_PKEY_PARAM_DIGEST +# define OSSL_PKEY_PARAM_FFC_DIGEST_PROPS OSSL_PKEY_PARAM_PROPERTIES +# define OSSL_PKEY_PARAM_FFC_G "g" +# define OSSL_PKEY_PARAM_FFC_GINDEX "gindex" +# define OSSL_PKEY_PARAM_FFC_H "hindex" +# define OSSL_PKEY_PARAM_FFC_P "p" +# define OSSL_PKEY_PARAM_FFC_PBITS "pbits" +# define OSSL_PKEY_PARAM_FFC_PCOUNTER "pcounter" +# define OSSL_PKEY_PARAM_FFC_Q "q" +# define OSSL_PKEY_PARAM_FFC_QBITS "qbits" +# define OSSL_PKEY_PARAM_FFC_SEED "seed" +# define OSSL_PKEY_PARAM_FFC_TYPE "type" +# define OSSL_PKEY_PARAM_FFC_VALIDATE_G "validate-g" +# define OSSL_PKEY_PARAM_FFC_VALIDATE_LEGACY "validate-legacy" +# define OSSL_PKEY_PARAM_FFC_VALIDATE_PQ "validate-pq" +# define OSSL_PKEY_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK "digest-check" +# define OSSL_PKEY_PARAM_FIPS_KEY_CHECK "key-check" +# define OSSL_PKEY_PARAM_FIPS_SIGN_CHECK "sign-check" +# define OSSL_PKEY_PARAM_GROUP_NAME "group" +# define OSSL_PKEY_PARAM_IMPLICIT_REJECTION "implicit-rejection" +# define OSSL_PKEY_PARAM_MANDATORY_DIGEST "mandatory-digest" +# define OSSL_PKEY_PARAM_MASKGENFUNC "mgf" +# define OSSL_PKEY_PARAM_MAX_SIZE "max-size" +# define OSSL_PKEY_PARAM_MGF1_DIGEST "mgf1-digest" +# define OSSL_PKEY_PARAM_MGF1_PROPERTIES "mgf1-properties" +# define OSSL_PKEY_PARAM_ML_DSA_INPUT_FORMATS "ml-dsa.input_formats" +# define OSSL_PKEY_PARAM_ML_DSA_OUTPUT_FORMATS "ml-dsa.output_formats" +# define OSSL_PKEY_PARAM_ML_DSA_PREFER_SEED "ml-dsa.prefer_seed" +# define OSSL_PKEY_PARAM_ML_DSA_RETAIN_SEED "ml-dsa.retain_seed" +# define OSSL_PKEY_PARAM_ML_DSA_SEED "seed" +# define OSSL_PKEY_PARAM_ML_KEM_IMPORT_PCT_TYPE "ml-kem.import_pct_type" +# define OSSL_PKEY_PARAM_ML_KEM_INPUT_FORMATS "ml-kem.input_formats" +# define OSSL_PKEY_PARAM_ML_KEM_OUTPUT_FORMATS "ml-kem.output_formats" +# define OSSL_PKEY_PARAM_ML_KEM_PREFER_SEED "ml-kem.prefer_seed" +# define OSSL_PKEY_PARAM_ML_KEM_RETAIN_SEED "ml-kem.retain_seed" +# define OSSL_PKEY_PARAM_ML_KEM_SEED "seed" +# define OSSL_PKEY_PARAM_PAD_MODE "pad-mode" +# define OSSL_PKEY_PARAM_PRIV_KEY "priv" +# define OSSL_PKEY_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_PKEY_PARAM_PUB_KEY "pub" +# define OSSL_PKEY_PARAM_RSA_BITS OSSL_PKEY_PARAM_BITS +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT "rsa-coefficient" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT1 "rsa-coefficient1" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT2 "rsa-coefficient2" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT3 "rsa-coefficient3" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT4 "rsa-coefficient4" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT5 "rsa-coefficient5" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT6 "rsa-coefficient6" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT7 "rsa-coefficient7" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT8 "rsa-coefficient8" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT9 "rsa-coefficient9" +# define OSSL_PKEY_PARAM_RSA_D "d" +# define OSSL_PKEY_PARAM_RSA_DERIVE_FROM_PQ "rsa-derive-from-pq" +# define OSSL_PKEY_PARAM_RSA_DIGEST OSSL_PKEY_PARAM_DIGEST +# define OSSL_PKEY_PARAM_RSA_DIGEST_PROPS OSSL_PKEY_PARAM_PROPERTIES +# define OSSL_PKEY_PARAM_RSA_E "e" +# define OSSL_PKEY_PARAM_RSA_EXPONENT "rsa-exponent" +# define OSSL_PKEY_PARAM_RSA_EXPONENT1 "rsa-exponent1" +# define OSSL_PKEY_PARAM_RSA_EXPONENT10 "rsa-exponent10" +# define OSSL_PKEY_PARAM_RSA_EXPONENT2 "rsa-exponent2" +# define OSSL_PKEY_PARAM_RSA_EXPONENT3 "rsa-exponent3" +# define OSSL_PKEY_PARAM_RSA_EXPONENT4 "rsa-exponent4" +# define OSSL_PKEY_PARAM_RSA_EXPONENT5 "rsa-exponent5" +# define OSSL_PKEY_PARAM_RSA_EXPONENT6 "rsa-exponent6" +# define OSSL_PKEY_PARAM_RSA_EXPONENT7 "rsa-exponent7" +# define OSSL_PKEY_PARAM_RSA_EXPONENT8 "rsa-exponent8" +# define OSSL_PKEY_PARAM_RSA_EXPONENT9 "rsa-exponent9" +# define OSSL_PKEY_PARAM_RSA_FACTOR "rsa-factor" +# define OSSL_PKEY_PARAM_RSA_FACTOR1 "rsa-factor1" +# define OSSL_PKEY_PARAM_RSA_FACTOR10 "rsa-factor10" +# define OSSL_PKEY_PARAM_RSA_FACTOR2 "rsa-factor2" +# define OSSL_PKEY_PARAM_RSA_FACTOR3 "rsa-factor3" +# define OSSL_PKEY_PARAM_RSA_FACTOR4 "rsa-factor4" +# define OSSL_PKEY_PARAM_RSA_FACTOR5 "rsa-factor5" +# define OSSL_PKEY_PARAM_RSA_FACTOR6 "rsa-factor6" +# define OSSL_PKEY_PARAM_RSA_FACTOR7 "rsa-factor7" +# define OSSL_PKEY_PARAM_RSA_FACTOR8 "rsa-factor8" +# define OSSL_PKEY_PARAM_RSA_FACTOR9 "rsa-factor9" +# define OSSL_PKEY_PARAM_RSA_MASKGENFUNC OSSL_PKEY_PARAM_MASKGENFUNC +# define OSSL_PKEY_PARAM_RSA_MGF1_DIGEST OSSL_PKEY_PARAM_MGF1_DIGEST +# define OSSL_PKEY_PARAM_RSA_N "n" +# define OSSL_PKEY_PARAM_RSA_PRIMES "primes" +# define OSSL_PKEY_PARAM_RSA_PSS_SALTLEN "saltlen" +# define OSSL_PKEY_PARAM_RSA_TEST_P1 "p1" +# define OSSL_PKEY_PARAM_RSA_TEST_P2 "p2" +# define OSSL_PKEY_PARAM_RSA_TEST_Q1 "q1" +# define OSSL_PKEY_PARAM_RSA_TEST_Q2 "q2" +# define OSSL_PKEY_PARAM_RSA_TEST_XP "xp" +# define OSSL_PKEY_PARAM_RSA_TEST_XP1 "xp1" +# define OSSL_PKEY_PARAM_RSA_TEST_XP2 "xp2" +# define OSSL_PKEY_PARAM_RSA_TEST_XQ "xq" +# define OSSL_PKEY_PARAM_RSA_TEST_XQ1 "xq1" +# define OSSL_PKEY_PARAM_RSA_TEST_XQ2 "xq2" +# define OSSL_PKEY_PARAM_SECURITY_BITS "security-bits" +# define OSSL_PKEY_PARAM_SLH_DSA_SEED "seed" +# define OSSL_PKEY_PARAM_USE_COFACTOR_ECDH OSSL_PKEY_PARAM_USE_COFACTOR_FLAG +# define OSSL_PKEY_PARAM_USE_COFACTOR_FLAG "use-cofactor-flag" +# define OSSL_PROV_PARAM_BUILDINFO "buildinfo" +# define OSSL_PROV_PARAM_CORE_MODULE_FILENAME "module-filename" +# define OSSL_PROV_PARAM_CORE_PROV_NAME "provider-name" +# define OSSL_PROV_PARAM_CORE_VERSION "openssl-version" +# define OSSL_PROV_PARAM_DRBG_TRUNC_DIGEST "drbg-no-trunc-md" +# define OSSL_PROV_PARAM_DSA_SIGN_DISABLED "dsa-sign-disabled" +# define OSSL_PROV_PARAM_ECDH_COFACTOR_CHECK "ecdh-cofactor-check" +# define OSSL_PROV_PARAM_HKDF_DIGEST_CHECK "hkdf-digest-check" +# define OSSL_PROV_PARAM_HKDF_KEY_CHECK "hkdf-key-check" +# define OSSL_PROV_PARAM_HMAC_KEY_CHECK "hmac-key-check" +# define OSSL_PROV_PARAM_KBKDF_KEY_CHECK "kbkdf-key-check" +# define OSSL_PROV_PARAM_KMAC_KEY_CHECK "kmac-key-check" +# define OSSL_PROV_PARAM_NAME "name" +# define OSSL_PROV_PARAM_NO_SHORT_MAC "no-short-mac" +# define OSSL_PROV_PARAM_PBKDF2_LOWER_BOUND_CHECK "pbkdf2-lower-bound-check" +# define OSSL_PROV_PARAM_RSA_PKCS15_PAD_DISABLED "rsa-pkcs15-pad-disabled" +# define OSSL_PROV_PARAM_RSA_PSS_SALTLEN_CHECK "rsa-pss-saltlen-check" +# define OSSL_PROV_PARAM_RSA_SIGN_X931_PAD_DISABLED "rsa-sign-x931-pad-disabled" +# define OSSL_PROV_PARAM_SECURITY_CHECKS "security-checks" +# define OSSL_PROV_PARAM_SELF_TEST_DESC "st-desc" +# define OSSL_PROV_PARAM_SELF_TEST_PHASE "st-phase" +# define OSSL_PROV_PARAM_SELF_TEST_TYPE "st-type" +# define OSSL_PROV_PARAM_SIGNATURE_DIGEST_CHECK "signature-digest-check" +# define OSSL_PROV_PARAM_SSHKDF_DIGEST_CHECK "sshkdf-digest-check" +# define OSSL_PROV_PARAM_SSHKDF_KEY_CHECK "sshkdf-key-check" +# define OSSL_PROV_PARAM_SSKDF_DIGEST_CHECK "sskdf-digest-check" +# define OSSL_PROV_PARAM_SSKDF_KEY_CHECK "sskdf-key-check" +# define OSSL_PROV_PARAM_STATUS "status" +# define OSSL_PROV_PARAM_TDES_ENCRYPT_DISABLED "tdes-encrypt-disabled" +# define OSSL_PROV_PARAM_TLS13_KDF_DIGEST_CHECK "tls13-kdf-digest-check" +# define OSSL_PROV_PARAM_TLS13_KDF_KEY_CHECK "tls13-kdf-key-check" +# define OSSL_PROV_PARAM_TLS1_PRF_DIGEST_CHECK "tls1-prf-digest-check" +# define OSSL_PROV_PARAM_TLS1_PRF_EMS_CHECK "tls1-prf-ems-check" +# define OSSL_PROV_PARAM_TLS1_PRF_KEY_CHECK "tls1-prf-key-check" +# define OSSL_PROV_PARAM_VERSION "version" +# define OSSL_PROV_PARAM_X942KDF_KEY_CHECK "x942kdf-key-check" +# define OSSL_PROV_PARAM_X963KDF_DIGEST_CHECK "x963kdf-digest-check" +# define OSSL_PROV_PARAM_X963KDF_KEY_CHECK "x963kdf-key-check" +# define OSSL_RAND_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_RAND_PARAM_GENERATE "generate" +# define OSSL_RAND_PARAM_MAX_REQUEST "max_request" +# define OSSL_RAND_PARAM_STATE "state" +# define OSSL_RAND_PARAM_STRENGTH "strength" +# define OSSL_RAND_PARAM_TEST_ENTROPY "test_entropy" +# define OSSL_RAND_PARAM_TEST_NONCE "test_nonce" +# define OSSL_SIGNATURE_PARAM_ADD_RANDOM "additional-random" +# define OSSL_SIGNATURE_PARAM_ALGORITHM_ID OSSL_PKEY_PARAM_ALGORITHM_ID +# define OSSL_SIGNATURE_PARAM_ALGORITHM_ID_PARAMS OSSL_PKEY_PARAM_ALGORITHM_ID_PARAMS +# define OSSL_SIGNATURE_PARAM_CONTEXT_STRING "context-string" +# define OSSL_SIGNATURE_PARAM_DETERMINISTIC "deterministic" +# define OSSL_SIGNATURE_PARAM_DIGEST OSSL_PKEY_PARAM_DIGEST +# define OSSL_SIGNATURE_PARAM_DIGEST_SIZE OSSL_PKEY_PARAM_DIGEST_SIZE +# define OSSL_SIGNATURE_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_SIGNATURE_PARAM_FIPS_DIGEST_CHECK OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK +# define OSSL_SIGNATURE_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_SIGNATURE_PARAM_FIPS_RSA_PSS_SALTLEN_CHECK "rsa-pss-saltlen-check" +# define OSSL_SIGNATURE_PARAM_FIPS_SIGN_CHECK OSSL_PKEY_PARAM_FIPS_SIGN_CHECK +# define OSSL_SIGNATURE_PARAM_FIPS_SIGN_X931_PAD_CHECK "sign-x931-pad-check" +# define OSSL_SIGNATURE_PARAM_FIPS_VERIFY_MESSAGE "verify-message" +# define OSSL_SIGNATURE_PARAM_INSTANCE "instance" +# define OSSL_SIGNATURE_PARAM_KAT "kat" +# define OSSL_SIGNATURE_PARAM_MESSAGE_ENCODING "message-encoding" +# define OSSL_SIGNATURE_PARAM_MGF1_DIGEST OSSL_PKEY_PARAM_MGF1_DIGEST +# define OSSL_SIGNATURE_PARAM_MGF1_PROPERTIES OSSL_PKEY_PARAM_MGF1_PROPERTIES +# define OSSL_SIGNATURE_PARAM_MU "mu" +# define OSSL_SIGNATURE_PARAM_NONCE_TYPE "nonce-type" +# define OSSL_SIGNATURE_PARAM_PAD_MODE OSSL_PKEY_PARAM_PAD_MODE +# define OSSL_SIGNATURE_PARAM_PROPERTIES OSSL_PKEY_PARAM_PROPERTIES +# define OSSL_SIGNATURE_PARAM_PSS_SALTLEN "saltlen" +# define OSSL_SIGNATURE_PARAM_SIGNATURE "signature" +# define OSSL_SIGNATURE_PARAM_TEST_ENTROPY "test-entropy" +# define OSSL_SKEY_PARAM_KEY_LENGTH "key-length" +# define OSSL_SKEY_PARAM_RAW_BYTES "raw-bytes" +# define OSSL_STORE_PARAM_ALIAS "alias" +# define OSSL_STORE_PARAM_DIGEST "digest" +# define OSSL_STORE_PARAM_EXPECT "expect" +# define OSSL_STORE_PARAM_FINGERPRINT "fingerprint" +# define OSSL_STORE_PARAM_INPUT_TYPE "input-type" +# define OSSL_STORE_PARAM_ISSUER "name" +# define OSSL_STORE_PARAM_PROPERTIES "properties" +# define OSSL_STORE_PARAM_SERIAL "serial" +# define OSSL_STORE_PARAM_SUBJECT "subject" + +# ifdef __cplusplus +} +# endif + +#endif diff --git a/deps/openssl/config/archs/VC-WIN64A/asm_avx2/include/openssl/crmf.h b/deps/openssl/config/archs/VC-WIN64A/asm_avx2/include/openssl/crmf.h index 0419170bb99974..9b6f13fac240b2 100644 --- a/deps/openssl/config/archs/VC-WIN64A/asm_avx2/include/openssl/crmf.h +++ b/deps/openssl/config/archs/VC-WIN64A/asm_avx2/include/openssl/crmf.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by makefile from include/openssl/crmf.h.in * - * Copyright 2007-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2007-2025 The OpenSSL Project Authors. All Rights Reserved. * Copyright Nokia 2007-2019 * Copyright Siemens AG 2015-2019 * @@ -26,6 +26,7 @@ # include # include # include /* for GENERAL_NAME etc. */ +# include /* explicit #includes not strictly needed since implied by the above: */ # include @@ -43,9 +44,12 @@ extern "C" { # define OSSL_CRMF_SUBSEQUENTMESSAGE_ENCRCERT 0 # define OSSL_CRMF_SUBSEQUENTMESSAGE_CHALLENGERESP 1 - typedef struct ossl_crmf_encryptedvalue_st OSSL_CRMF_ENCRYPTEDVALUE; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_ENCRYPTEDVALUE) + +typedef struct ossl_crmf_encryptedkey_st OSSL_CRMF_ENCRYPTEDKEY; +DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_ENCRYPTEDKEY) + typedef struct ossl_crmf_msg_st OSSL_CRMF_MSG; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_MSG) DECLARE_ASN1_DUP_FUNCTION(OSSL_CRMF_MSG) @@ -77,6 +81,36 @@ SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CRMF_MSG, OSSL_CRMF_MSG, OSSL_CRMF_MSG) #define sk_OSSL_CRMF_MSG_set_cmp_func(sk, cmp) ((sk_OSSL_CRMF_MSG_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CRMF_MSG_sk_type(sk), ossl_check_OSSL_CRMF_MSG_compfunc_type(cmp))) typedef struct ossl_crmf_attributetypeandvalue_st OSSL_CRMF_ATTRIBUTETYPEANDVALUE; +void OSSL_CRMF_ATTRIBUTETYPEANDVALUE_free(OSSL_CRMF_ATTRIBUTETYPEANDVALUE *v); +DECLARE_ASN1_DUP_FUNCTION(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CRMF_ATTRIBUTETYPEANDVALUE, OSSL_CRMF_ATTRIBUTETYPEANDVALUE, OSSL_CRMF_ATTRIBUTETYPEANDVALUE) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_value(sk, idx) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_value(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), (idx))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_new(cmp) ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_new(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_compfunc_type(cmp))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_new_null() ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_new_null()) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_new_reserve(cmp, n) ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_compfunc_type(cmp), (n))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), (n)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_free(sk) OPENSSL_sk_free(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_delete(sk, i) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_delete(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), (i))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_delete_ptr(sk, ptr) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_pop(sk) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_pop(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_shift(sk) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_shift(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk),ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_freefunc_type(freefunc)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr), (idx)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_set(sk, idx, ptr) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_set(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), (idx), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr), pnum) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_dup(sk) ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_dup(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_copyfunc_type(copyfunc), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_freefunc_type(freefunc))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_set_cmp_func(sk, cmp) ((sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_compfunc_type(cmp))) + + typedef struct ossl_crmf_pbmparameter_st OSSL_CRMF_PBMPARAMETER; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_PBMPARAMETER) typedef struct ossl_crmf_poposigningkey_st OSSL_CRMF_POPOSIGNINGKEY; @@ -118,6 +152,7 @@ typedef struct ossl_crmf_singlepubinfo_st OSSL_CRMF_SINGLEPUBINFO; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_SINGLEPUBINFO) typedef struct ossl_crmf_certtemplate_st OSSL_CRMF_CERTTEMPLATE; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_CERTTEMPLATE) +DECLARE_ASN1_DUP_FUNCTION(OSSL_CRMF_CERTTEMPLATE) typedef STACK_OF(OSSL_CRMF_MSG) OSSL_CRMF_MSGS; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_MSGS) @@ -198,12 +233,14 @@ int OSSL_CRMF_MSGS_verify_popo(const OSSL_CRMF_MSGS *reqs, int rid, int acceptRAVerified, OSSL_LIB_CTX *libctx, const char *propq); OSSL_CRMF_CERTTEMPLATE *OSSL_CRMF_MSG_get0_tmpl(const OSSL_CRMF_MSG *crm); -const ASN1_INTEGER -*OSSL_CRMF_CERTTEMPLATE_get0_serialNumber(const OSSL_CRMF_CERTTEMPLATE *tmpl); +X509_PUBKEY +*OSSL_CRMF_CERTTEMPLATE_get0_publicKey(const OSSL_CRMF_CERTTEMPLATE *tmpl); const X509_NAME *OSSL_CRMF_CERTTEMPLATE_get0_subject(const OSSL_CRMF_CERTTEMPLATE *tmpl); const X509_NAME *OSSL_CRMF_CERTTEMPLATE_get0_issuer(const OSSL_CRMF_CERTTEMPLATE *tmpl); +const ASN1_INTEGER +*OSSL_CRMF_CERTTEMPLATE_get0_serialNumber(const OSSL_CRMF_CERTTEMPLATE *tmpl); X509_EXTENSIONS *OSSL_CRMF_CERTTEMPLATE_get0_extensions(const OSSL_CRMF_CERTTEMPLATE *tmpl); const X509_NAME @@ -215,10 +252,24 @@ int OSSL_CRMF_CERTTEMPLATE_fill(OSSL_CRMF_CERTTEMPLATE *tmpl, const X509_NAME *subject, const X509_NAME *issuer, const ASN1_INTEGER *serial); -X509 -*OSSL_CRMF_ENCRYPTEDVALUE_get1_encCert(const OSSL_CRMF_ENCRYPTEDVALUE *ecert, - OSSL_LIB_CTX *libctx, const char *propq, - EVP_PKEY *pkey); +X509 *OSSL_CRMF_ENCRYPTEDVALUE_get1_encCert(const OSSL_CRMF_ENCRYPTEDVALUE *ecert, + OSSL_LIB_CTX *libctx, const char *propq, + EVP_PKEY *pkey); +X509 *OSSL_CRMF_ENCRYPTEDKEY_get1_encCert(const OSSL_CRMF_ENCRYPTEDKEY *ecert, + OSSL_LIB_CTX *libctx, const char *propq, + EVP_PKEY *pkey, unsigned int flags); +unsigned char +*OSSL_CRMF_ENCRYPTEDVALUE_decrypt(const OSSL_CRMF_ENCRYPTEDVALUE *enc, + OSSL_LIB_CTX *libctx, const char *propq, + EVP_PKEY *pkey, int *outlen); +EVP_PKEY *OSSL_CRMF_ENCRYPTEDKEY_get1_pkey(const OSSL_CRMF_ENCRYPTEDKEY *encryptedKey, + X509_STORE *ts, STACK_OF(X509) *extra, EVP_PKEY *pkey, + X509 *cert, ASN1_OCTET_STRING *secret, + OSSL_LIB_CTX *libctx, const char *propq); +int OSSL_CRMF_MSG_centralkeygen_requested(const OSSL_CRMF_MSG *crm, const X509_REQ *p10cr); +# ifndef OPENSSL_NO_CMS +OSSL_CRMF_ENCRYPTEDKEY *OSSL_CRMF_ENCRYPTEDKEY_init_envdata(CMS_EnvelopedData *envdata); +# endif # ifdef __cplusplus } diff --git a/deps/openssl/config/archs/VC-WIN64A/asm_avx2/include/openssl/crypto.h b/deps/openssl/config/archs/VC-WIN64A/asm_avx2/include/openssl/crypto.h index 668c52cfee1f15..2a825986bf3a55 100644 --- a/deps/openssl/config/archs/VC-WIN64A/asm_avx2/include/openssl/crypto.h +++ b/deps/openssl/config/archs/VC-WIN64A/asm_avx2/include/openssl/crypto.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by makefile from include/openssl/crypto.h.in * - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2024 The OpenSSL Project Authors. All Rights Reserved. * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved * * Licensed under the Apache License 2.0 (the "License"). You may not use @@ -85,9 +85,15 @@ int CRYPTO_THREAD_unlock(CRYPTO_RWLOCK *lock); void CRYPTO_THREAD_lock_free(CRYPTO_RWLOCK *lock); int CRYPTO_atomic_add(int *val, int amount, int *ret, CRYPTO_RWLOCK *lock); +int CRYPTO_atomic_add64(uint64_t *val, uint64_t op, uint64_t *ret, + CRYPTO_RWLOCK *lock); +int CRYPTO_atomic_and(uint64_t *val, uint64_t op, uint64_t *ret, + CRYPTO_RWLOCK *lock); int CRYPTO_atomic_or(uint64_t *val, uint64_t op, uint64_t *ret, CRYPTO_RWLOCK *lock); int CRYPTO_atomic_load(uint64_t *val, uint64_t *ret, CRYPTO_RWLOCK *lock); +int CRYPTO_atomic_load_int(int *val, int *ret, CRYPTO_RWLOCK *lock); +int CRYPTO_atomic_store(uint64_t *dst, uint64_t val, CRYPTO_RWLOCK *lock); /* No longer needed, so this is a no-op */ #define OPENSSL_malloc_init() while(0) continue @@ -96,6 +102,9 @@ int CRYPTO_atomic_load(uint64_t *val, uint64_t *ret, CRYPTO_RWLOCK *lock); CRYPTO_malloc(num, OPENSSL_FILE, OPENSSL_LINE) # define OPENSSL_zalloc(num) \ CRYPTO_zalloc(num, OPENSSL_FILE, OPENSSL_LINE) +# define OPENSSL_aligned_alloc(num, alignment, freeptr) \ + CRYPTO_aligned_alloc(num, alignment, freeptr, \ + OPENSSL_FILE, OPENSSL_LINE) # define OPENSSL_realloc(addr, num) \ CRYPTO_realloc(addr, num, OPENSSL_FILE, OPENSSL_LINE) # define OPENSSL_clear_realloc(addr, old_num, num) \ @@ -124,6 +133,7 @@ int CRYPTO_atomic_load(uint64_t *val, uint64_t *ret, CRYPTO_RWLOCK *lock); size_t OPENSSL_strlcpy(char *dst, const char *src, size_t siz); size_t OPENSSL_strlcat(char *dst, const char *src, size_t siz); size_t OPENSSL_strnlen(const char *str, size_t maxlen); +int OPENSSL_strtoul(const char *str, char **endptr, int base, unsigned long *num); int OPENSSL_buf2hexstr_ex(char *str, size_t str_n, size_t *strlength, const unsigned char *buf, size_t buflen, const char sep); @@ -160,6 +170,7 @@ const char *OpenSSL_version(int type); # define OPENSSL_FULL_VERSION_STRING 7 # define OPENSSL_MODULES_DIR 8 # define OPENSSL_CPU_INFO 9 +# define OPENSSL_WINCTX 10 const char *OPENSSL_info(int type); /* @@ -174,6 +185,7 @@ const char *OPENSSL_info(int type); # define OPENSSL_INFO_LIST_SEPARATOR 1006 # define OPENSSL_INFO_SEED_SOURCE 1007 # define OPENSSL_INFO_CPU_SETTINGS 1008 +# define OPENSSL_INFO_WINDOWS_CONTEXT 1009 int OPENSSL_issetugid(void); @@ -341,11 +353,14 @@ void CRYPTO_get_mem_functions(CRYPTO_malloc_fn *malloc_fn, CRYPTO_realloc_fn *realloc_fn, CRYPTO_free_fn *free_fn); -void *CRYPTO_malloc(size_t num, const char *file, int line); -void *CRYPTO_zalloc(size_t num, const char *file, int line); -void *CRYPTO_memdup(const void *str, size_t siz, const char *file, int line); -char *CRYPTO_strdup(const char *str, const char *file, int line); -char *CRYPTO_strndup(const char *str, size_t s, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_malloc(size_t num, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_zalloc(size_t num, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_aligned_alloc(size_t num, size_t align, + void **freeptr, const char *file, + int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_memdup(const void *str, size_t siz, const char *file, int line); +OSSL_CRYPTO_ALLOC char *CRYPTO_strdup(const char *str, const char *file, int line); +OSSL_CRYPTO_ALLOC char *CRYPTO_strndup(const char *str, size_t s, const char *file, int line); void CRYPTO_free(void *ptr, const char *file, int line); void CRYPTO_clear_free(void *ptr, size_t num, const char *file, int line); void *CRYPTO_realloc(void *addr, size_t num, const char *file, int line); @@ -354,8 +369,8 @@ void *CRYPTO_clear_realloc(void *addr, size_t old_num, size_t num, int CRYPTO_secure_malloc_init(size_t sz, size_t minsize); int CRYPTO_secure_malloc_done(void); -void *CRYPTO_secure_malloc(size_t num, const char *file, int line); -void *CRYPTO_secure_zalloc(size_t num, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_secure_malloc(size_t num, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_secure_zalloc(size_t num, const char *file, int line); void CRYPTO_secure_free(void *ptr, const char *file, int line); void CRYPTO_secure_clear_free(void *ptr, size_t num, const char *file, int line); @@ -376,6 +391,9 @@ void OPENSSL_cleanse(void *ptr, size_t len); # define CRYPTO_MEM_CHECK_ENABLE 0x2 /* Control and mode bit */ # define CRYPTO_MEM_CHECK_DISABLE 0x3 /* Control only */ +/* max allowed length for value of OPENSSL_MALLOC_FAILURES env var. */ +# define CRYPTO_MEM_CHECK_MAX_FS 256 + void CRYPTO_get_alloc_counts(int *mcount, int *rcount, int *fcount); # ifndef OPENSSL_NO_DEPRECATED_3_0 # define OPENSSL_mem_debug_push(info) \ @@ -551,6 +569,13 @@ int OSSL_LIB_CTX_load_config(OSSL_LIB_CTX *ctx, const char *config_file); void OSSL_LIB_CTX_free(OSSL_LIB_CTX *); OSSL_LIB_CTX *OSSL_LIB_CTX_get0_global_default(void); OSSL_LIB_CTX *OSSL_LIB_CTX_set0_default(OSSL_LIB_CTX *libctx); +int OSSL_LIB_CTX_get_conf_diagnostics(OSSL_LIB_CTX *ctx); +void OSSL_LIB_CTX_set_conf_diagnostics(OSSL_LIB_CTX *ctx, int value); + +void OSSL_sleep(uint64_t millis); + + +void *OSSL_LIB_CTX_get_data(OSSL_LIB_CTX *ctx, int index); # ifdef __cplusplus } diff --git a/deps/openssl/config/archs/VC-WIN64A/asm_avx2/include/openssl/ct.h b/deps/openssl/config/archs/VC-WIN64A/asm_avx2/include/openssl/ct.h index 15a276e33ff7ca..d29dbc78997c0b 100644 --- a/deps/openssl/config/archs/VC-WIN64A/asm_avx2/include/openssl/ct.h +++ b/deps/openssl/config/archs/VC-WIN64A/asm_avx2/include/openssl/ct.h @@ -133,7 +133,7 @@ typedef enum { */ CT_POLICY_EVAL_CTX *CT_POLICY_EVAL_CTX_new_ex(OSSL_LIB_CTX *libctx, const char *propq); - + /* * The same as CT_POLICY_EVAL_CTX_new_ex() but the default library * context and property query string is used. diff --git a/deps/openssl/config/archs/VC-WIN64A/asm_avx2/include/openssl/err.h b/deps/openssl/config/archs/VC-WIN64A/asm_avx2/include/openssl/err.h index 2abf2483488181..daca18e7b757b0 100644 --- a/deps/openssl/config/archs/VC-WIN64A/asm_avx2/include/openssl/err.h +++ b/deps/openssl/config/archs/VC-WIN64A/asm_avx2/include/openssl/err.h @@ -1,5 +1,5 @@ /* - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -372,7 +372,7 @@ typedef struct ERR_string_data_st { } ERR_STRING_DATA; DEFINE_LHASH_OF_INTERNAL(ERR_STRING_DATA); -#define lh_ERR_STRING_DATA_new(hfn, cmp) ((LHASH_OF(ERR_STRING_DATA) *)OPENSSL_LH_new(ossl_check_ERR_STRING_DATA_lh_hashfunc_type(hfn), ossl_check_ERR_STRING_DATA_lh_compfunc_type(cmp))) +#define lh_ERR_STRING_DATA_new(hfn, cmp) ((LHASH_OF(ERR_STRING_DATA) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new(ossl_check_ERR_STRING_DATA_lh_hashfunc_type(hfn), ossl_check_ERR_STRING_DATA_lh_compfunc_type(cmp)), lh_ERR_STRING_DATA_hash_thunk, lh_ERR_STRING_DATA_comp_thunk, lh_ERR_STRING_DATA_doall_thunk, lh_ERR_STRING_DATA_doall_arg_thunk)) #define lh_ERR_STRING_DATA_free(lh) OPENSSL_LH_free(ossl_check_ERR_STRING_DATA_lh_type(lh)) #define lh_ERR_STRING_DATA_flush(lh) OPENSSL_LH_flush(ossl_check_ERR_STRING_DATA_lh_type(lh)) #define lh_ERR_STRING_DATA_insert(lh, ptr) ((ERR_STRING_DATA *)OPENSSL_LH_insert(ossl_check_ERR_STRING_DATA_lh_type(lh), ossl_check_ERR_STRING_DATA_lh_plain_type(ptr))) @@ -496,6 +496,14 @@ int ERR_get_next_error_library(void); int ERR_set_mark(void); int ERR_pop_to_mark(void); int ERR_clear_last_mark(void); +int ERR_count_to_mark(void); +int ERR_pop(void); + +ERR_STATE *OSSL_ERR_STATE_new(void); +void OSSL_ERR_STATE_save(ERR_STATE *es); +void OSSL_ERR_STATE_save_to_mark(ERR_STATE *es); +void OSSL_ERR_STATE_restore(const ERR_STATE *es); +void OSSL_ERR_STATE_free(ERR_STATE *es); #ifdef __cplusplus } diff --git a/deps/openssl/config/archs/VC-WIN64A/asm_avx2/include/openssl/fipskey.h b/deps/openssl/config/archs/VC-WIN64A/asm_avx2/include/openssl/fipskey.h index bf03682482fdd5..6939fd3c55ba6e 100644 --- a/deps/openssl/config/archs/VC-WIN64A/asm_avx2/include/openssl/fipskey.h +++ b/deps/openssl/config/archs/VC-WIN64A/asm_avx2/include/openssl/fipskey.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by makefile from include/openssl/fipskey.h.in * - * Copyright 2020-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2020-2024 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -29,6 +29,11 @@ extern "C" { */ #define FIPS_KEY_STRING "f4556650ac31d35461610bac4ed81b1a181b2d8a43ea2854cbae22ca74560813" +/* + * The FIPS provider vendor name, as a string. + */ +#define FIPS_VENDOR "OpenSSL FIPS Provider" + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/VC-WIN64A/asm_avx2/include/openssl/lhash.h b/deps/openssl/config/archs/VC-WIN64A/asm_avx2/include/openssl/lhash.h index 39dd6254acdeb6..62c55b20fd9716 100644 --- a/deps/openssl/config/archs/VC-WIN64A/asm_avx2/include/openssl/lhash.h +++ b/deps/openssl/config/archs/VC-WIN64A/asm_avx2/include/openssl/lhash.h @@ -1,5 +1,5 @@ /* - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2024 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -24,6 +24,9 @@ # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -31,9 +34,13 @@ extern "C" { typedef struct lhash_node_st OPENSSL_LH_NODE; typedef int (*OPENSSL_LH_COMPFUNC) (const void *, const void *); +typedef int (*OPENSSL_LH_COMPFUNCTHUNK) (const void *, const void *, OPENSSL_LH_COMPFUNC cfn); typedef unsigned long (*OPENSSL_LH_HASHFUNC) (const void *); +typedef unsigned long (*OPENSSL_LH_HASHFUNCTHUNK) (const void *, OPENSSL_LH_HASHFUNC hfn); typedef void (*OPENSSL_LH_DOALL_FUNC) (void *); +typedef void (*OPENSSL_LH_DOALL_FUNC_THUNK) (void *, OPENSSL_LH_DOALL_FUNC doall); typedef void (*OPENSSL_LH_DOALL_FUNCARG) (void *, void *); +typedef void (*OPENSSL_LH_DOALL_FUNCARG_THUNK) (void *, void *, OPENSSL_LH_DOALL_FUNCARG doall); typedef struct lhash_st OPENSSL_LHASH; /* @@ -79,26 +86,40 @@ typedef struct lhash_st OPENSSL_LHASH; int OPENSSL_LH_error(OPENSSL_LHASH *lh); OPENSSL_LHASH *OPENSSL_LH_new(OPENSSL_LH_HASHFUNC h, OPENSSL_LH_COMPFUNC c); +OPENSSL_LHASH *OPENSSL_LH_set_thunks(OPENSSL_LHASH *lh, + OPENSSL_LH_HASHFUNCTHUNK hw, + OPENSSL_LH_COMPFUNCTHUNK cw, + OPENSSL_LH_DOALL_FUNC_THUNK daw, + OPENSSL_LH_DOALL_FUNCARG_THUNK daaw); void OPENSSL_LH_free(OPENSSL_LHASH *lh); void OPENSSL_LH_flush(OPENSSL_LHASH *lh); void *OPENSSL_LH_insert(OPENSSL_LHASH *lh, void *data); void *OPENSSL_LH_delete(OPENSSL_LHASH *lh, const void *data); void *OPENSSL_LH_retrieve(OPENSSL_LHASH *lh, const void *data); void OPENSSL_LH_doall(OPENSSL_LHASH *lh, OPENSSL_LH_DOALL_FUNC func); -void OPENSSL_LH_doall_arg(OPENSSL_LHASH *lh, OPENSSL_LH_DOALL_FUNCARG func, void *arg); +void OPENSSL_LH_doall_arg(OPENSSL_LHASH *lh, + OPENSSL_LH_DOALL_FUNCARG func, void *arg); +void OPENSSL_LH_doall_arg_thunk(OPENSSL_LHASH *lh, + OPENSSL_LH_DOALL_FUNCARG_THUNK daaw, + OPENSSL_LH_DOALL_FUNCARG fn, void *arg); + unsigned long OPENSSL_LH_strhash(const char *c); unsigned long OPENSSL_LH_num_items(const OPENSSL_LHASH *lh); unsigned long OPENSSL_LH_get_down_load(const OPENSSL_LHASH *lh); void OPENSSL_LH_set_down_load(OPENSSL_LHASH *lh, unsigned long down_load); # ifndef OPENSSL_NO_STDIO -void OPENSSL_LH_stats(const OPENSSL_LHASH *lh, FILE *fp); -void OPENSSL_LH_node_stats(const OPENSSL_LHASH *lh, FILE *fp); -void OPENSSL_LH_node_usage_stats(const OPENSSL_LHASH *lh, FILE *fp); +# ifndef OPENSSL_NO_DEPRECATED_3_1 +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_stats(const OPENSSL_LHASH *lh, FILE *fp); +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_node_stats(const OPENSSL_LHASH *lh, FILE *fp); +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_node_usage_stats(const OPENSSL_LHASH *lh, FILE *fp); +# endif +# endif +# ifndef OPENSSL_NO_DEPRECATED_3_1 +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_stats_bio(const OPENSSL_LHASH *lh, BIO *out); +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_node_stats_bio(const OPENSSL_LHASH *lh, BIO *out); +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_node_usage_stats_bio(const OPENSSL_LHASH *lh, BIO *out); # endif -void OPENSSL_LH_stats_bio(const OPENSSL_LHASH *lh, BIO *out); -void OPENSSL_LH_node_stats_bio(const OPENSSL_LHASH *lh, BIO *out); -void OPENSSL_LH_node_usage_stats_bio(const OPENSSL_LHASH *lh, BIO *out); # ifndef OPENSSL_NO_DEPRECATED_1_1_0 # define _LHASH OPENSSL_LHASH @@ -129,110 +150,190 @@ void OPENSSL_LH_node_usage_stats_bio(const OPENSSL_LHASH *lh, BIO *out); /* Helper macro for internal use */ # define DEFINE_LHASH_OF_INTERNAL(type) \ - LHASH_OF(type) { union lh_##type##_dummy { void* d1; unsigned long d2; int d3; } dummy; }; \ + LHASH_OF(type) { \ + union lh_##type##_dummy { void* d1; unsigned long d2; int d3; } dummy; \ + }; \ typedef int (*lh_##type##_compfunc)(const type *a, const type *b); \ typedef unsigned long (*lh_##type##_hashfunc)(const type *a); \ typedef void (*lh_##type##_doallfunc)(type *a); \ - static ossl_unused ossl_inline type *ossl_check_##type##_lh_plain_type(type *ptr) \ + static ossl_inline unsigned long lh_##type##_hash_thunk(const void *data, OPENSSL_LH_HASHFUNC hfn) \ + { \ + unsigned long (*hfn_conv)(const type *) = (unsigned long (*)(const type *))hfn; \ + return hfn_conv((const type *)data); \ + } \ + static ossl_inline int lh_##type##_comp_thunk(const void *da, const void *db, OPENSSL_LH_COMPFUNC cfn) \ + { \ + int (*cfn_conv)(const type *, const type *) = (int (*)(const type *, const type *))cfn; \ + return cfn_conv((const type *)da, (const type *)db); \ + } \ + static ossl_inline void lh_##type##_doall_thunk(void *node, OPENSSL_LH_DOALL_FUNC doall) \ + { \ + void (*doall_conv)(type *) = (void (*)(type *))doall; \ + doall_conv((type *)node); \ + } \ + static ossl_inline void lh_##type##_doall_arg_thunk(void *node, void *arg, OPENSSL_LH_DOALL_FUNCARG doall) \ + { \ + void (*doall_conv)(type *, void *) = (void (*)(type *, void *))doall; \ + doall_conv((type *)node, arg); \ + } \ + static ossl_unused ossl_inline type *\ + ossl_check_##type##_lh_plain_type(type *ptr) \ { \ return ptr; \ } \ - static ossl_unused ossl_inline const type *ossl_check_const_##type##_lh_plain_type(const type *ptr) \ + static ossl_unused ossl_inline const type * \ + ossl_check_const_##type##_lh_plain_type(const type *ptr) \ { \ return ptr; \ } \ - static ossl_unused ossl_inline const OPENSSL_LHASH *ossl_check_const_##type##_lh_type(const LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline const OPENSSL_LHASH * \ + ossl_check_const_##type##_lh_type(const LHASH_OF(type) *lh) \ { \ return (const OPENSSL_LHASH *)lh; \ } \ - static ossl_unused ossl_inline OPENSSL_LHASH *ossl_check_##type##_lh_type(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline OPENSSL_LHASH * \ + ossl_check_##type##_lh_type(LHASH_OF(type) *lh) \ { \ return (OPENSSL_LHASH *)lh; \ } \ - static ossl_unused ossl_inline OPENSSL_LH_COMPFUNC ossl_check_##type##_lh_compfunc_type(lh_##type##_compfunc cmp) \ + static ossl_unused ossl_inline OPENSSL_LH_COMPFUNC \ + ossl_check_##type##_lh_compfunc_type(lh_##type##_compfunc cmp) \ { \ return (OPENSSL_LH_COMPFUNC)cmp; \ } \ - static ossl_unused ossl_inline OPENSSL_LH_HASHFUNC ossl_check_##type##_lh_hashfunc_type(lh_##type##_hashfunc hfn) \ + static ossl_unused ossl_inline OPENSSL_LH_HASHFUNC \ + ossl_check_##type##_lh_hashfunc_type(lh_##type##_hashfunc hfn) \ { \ return (OPENSSL_LH_HASHFUNC)hfn; \ } \ - static ossl_unused ossl_inline OPENSSL_LH_DOALL_FUNC ossl_check_##type##_lh_doallfunc_type(lh_##type##_doallfunc dfn) \ + static ossl_unused ossl_inline OPENSSL_LH_DOALL_FUNC \ + ossl_check_##type##_lh_doallfunc_type(lh_##type##_doallfunc dfn) \ { \ return (OPENSSL_LH_DOALL_FUNC)dfn; \ } \ LHASH_OF(type) -# define DEFINE_LHASH_OF(type) \ - LHASH_OF(type) { union lh_##type##_dummy { void* d1; unsigned long d2; int d3; } dummy; }; \ - static ossl_unused ossl_inline LHASH_OF(type) *lh_##type##_new(unsigned long (*hfn)(const type *), \ - int (*cfn)(const type *, const type *)) \ +# ifndef OPENSSL_NO_DEPRECATED_3_1 +# define DEFINE_LHASH_OF_DEPRECATED(type) \ + static ossl_unused ossl_inline void \ + lh_##type##_node_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ { \ - return (LHASH_OF(type) *) \ - OPENSSL_LH_new((OPENSSL_LH_HASHFUNC)hfn, (OPENSSL_LH_COMPFUNC)cfn); \ + OPENSSL_LH_node_stats_bio((const OPENSSL_LHASH *)lh, out); \ } \ - static ossl_unused ossl_inline void lh_##type##_free(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline void \ + lh_##type##_node_usage_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + { \ + OPENSSL_LH_node_usage_stats_bio((const OPENSSL_LHASH *)lh, out); \ + } \ + static ossl_unused ossl_inline void \ + lh_##type##_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + { \ + OPENSSL_LH_stats_bio((const OPENSSL_LHASH *)lh, out); \ + } +# else +# define DEFINE_LHASH_OF_DEPRECATED(type) +# endif + +# define DEFINE_LHASH_OF_EX(type) \ + LHASH_OF(type) { \ + union lh_##type##_dummy { void* d1; unsigned long d2; int d3; } dummy; \ + }; \ + static unsigned long \ + lh_##type##_hfn_thunk(const void *data, OPENSSL_LH_HASHFUNC hfn) \ + { \ + unsigned long (*hfn_conv)(const type *) = (unsigned long (*)(const type *))hfn; \ + return hfn_conv((const type *)data); \ + } \ + static int lh_##type##_cfn_thunk(const void *da, const void *db, OPENSSL_LH_COMPFUNC cfn) \ + { \ + int (*cfn_conv)(const type *, const type *) = (int (*)(const type *, const type *))cfn; \ + return cfn_conv((const type *)da, (const type *)db); \ + } \ + static ossl_unused ossl_inline void \ + lh_##type##_free(LHASH_OF(type) *lh) \ { \ OPENSSL_LH_free((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline void lh_##type##_flush(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline void \ + lh_##type##_flush(LHASH_OF(type) *lh) \ { \ OPENSSL_LH_flush((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline type *lh_##type##_insert(LHASH_OF(type) *lh, type *d) \ + static ossl_unused ossl_inline type * \ + lh_##type##_insert(LHASH_OF(type) *lh, type *d) \ { \ return (type *)OPENSSL_LH_insert((OPENSSL_LHASH *)lh, d); \ } \ - static ossl_unused ossl_inline type *lh_##type##_delete(LHASH_OF(type) *lh, const type *d) \ + static ossl_unused ossl_inline type * \ + lh_##type##_delete(LHASH_OF(type) *lh, const type *d) \ { \ return (type *)OPENSSL_LH_delete((OPENSSL_LHASH *)lh, d); \ } \ - static ossl_unused ossl_inline type *lh_##type##_retrieve(LHASH_OF(type) *lh, const type *d) \ + static ossl_unused ossl_inline type * \ + lh_##type##_retrieve(LHASH_OF(type) *lh, const type *d) \ { \ return (type *)OPENSSL_LH_retrieve((OPENSSL_LHASH *)lh, d); \ } \ - static ossl_unused ossl_inline int lh_##type##_error(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline int \ + lh_##type##_error(LHASH_OF(type) *lh) \ { \ return OPENSSL_LH_error((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline unsigned long lh_##type##_num_items(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline unsigned long \ + lh_##type##_num_items(LHASH_OF(type) *lh) \ { \ return OPENSSL_LH_num_items((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline void lh_##type##_node_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + static ossl_unused ossl_inline unsigned long \ + lh_##type##_get_down_load(LHASH_OF(type) *lh) \ { \ - OPENSSL_LH_node_stats_bio((const OPENSSL_LHASH *)lh, out); \ + return OPENSSL_LH_get_down_load((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline void lh_##type##_node_usage_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + static ossl_unused ossl_inline void \ + lh_##type##_set_down_load(LHASH_OF(type) *lh, unsigned long dl) \ { \ - OPENSSL_LH_node_usage_stats_bio((const OPENSSL_LHASH *)lh, out); \ + OPENSSL_LH_set_down_load((OPENSSL_LHASH *)lh, dl); \ } \ - static ossl_unused ossl_inline void lh_##type##_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall_thunk(void *node, OPENSSL_LH_DOALL_FUNC doall) \ { \ - OPENSSL_LH_stats_bio((const OPENSSL_LHASH *)lh, out); \ + void (*doall_conv)(type *) = (void (*)(type *))doall; \ + doall_conv((type *)node); \ } \ - static ossl_unused ossl_inline unsigned long lh_##type##_get_down_load(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall_arg_thunk(void *node, void *arg, OPENSSL_LH_DOALL_FUNCARG doall) \ { \ - return OPENSSL_LH_get_down_load((OPENSSL_LHASH *)lh); \ + void (*doall_conv)(type *, void *) = (void (*)(type *, void *))doall; \ + doall_conv((type *)node, arg); \ } \ - static ossl_unused ossl_inline void lh_##type##_set_down_load(LHASH_OF(type) *lh, unsigned long dl) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall(LHASH_OF(type) *lh, void (*doall)(type *)) \ { \ - OPENSSL_LH_set_down_load((OPENSSL_LHASH *)lh, dl); \ + OPENSSL_LH_doall((OPENSSL_LHASH *)lh, (OPENSSL_LH_DOALL_FUNC)doall); \ } \ - static ossl_unused ossl_inline void lh_##type##_doall(LHASH_OF(type) *lh, \ - void (*doall)(type *)) \ + static ossl_unused ossl_inline LHASH_OF(type) * \ + lh_##type##_new(unsigned long (*hfn)(const type *), \ + int (*cfn)(const type *, const type *)) \ { \ - OPENSSL_LH_doall((OPENSSL_LHASH *)lh, (OPENSSL_LH_DOALL_FUNC)doall); \ + return (LHASH_OF(type) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new((OPENSSL_LH_HASHFUNC)hfn, (OPENSSL_LH_COMPFUNC)cfn), \ + lh_##type##_hfn_thunk, lh_##type##_cfn_thunk, \ + lh_##type##_doall_thunk, \ + lh_##type##_doall_arg_thunk); \ } \ - static ossl_unused ossl_inline void lh_##type##_doall_arg(LHASH_OF(type) *lh, \ - void (*doallarg)(type *, void *), \ - void *arg) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall_arg(LHASH_OF(type) *lh, \ + void (*doallarg)(type *, void *), void *arg) \ { \ OPENSSL_LH_doall_arg((OPENSSL_LHASH *)lh, \ (OPENSSL_LH_DOALL_FUNCARG)doallarg, arg); \ } \ LHASH_OF(type) +# define DEFINE_LHASH_OF(type) \ + DEFINE_LHASH_OF_EX(type); \ + DEFINE_LHASH_OF_DEPRECATED(type) \ + LHASH_OF(type) + #define IMPLEMENT_LHASH_DOALL_ARG_CONST(type, argtype) \ int_implement_lhash_doall(type, argtype, const type) @@ -240,17 +341,26 @@ void OPENSSL_LH_node_usage_stats_bio(const OPENSSL_LHASH *lh, BIO *out); int_implement_lhash_doall(type, argtype, type) #define int_implement_lhash_doall(type, argtype, cbargtype) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall_##argtype##_thunk(void *node, void *arg, OPENSSL_LH_DOALL_FUNCARG fn) \ + { \ + void (*fn_conv)(cbargtype *, argtype *) = (void (*)(cbargtype *, argtype *))fn; \ + fn_conv((cbargtype *)node, (argtype *)arg); \ + } \ static ossl_unused ossl_inline void \ lh_##type##_doall_##argtype(LHASH_OF(type) *lh, \ void (*fn)(cbargtype *, argtype *), \ argtype *arg) \ { \ - OPENSSL_LH_doall_arg((OPENSSL_LHASH *)lh, (OPENSSL_LH_DOALL_FUNCARG)fn, (void *)arg); \ + OPENSSL_LH_doall_arg_thunk((OPENSSL_LHASH *)lh, \ + lh_##type##_doall_##argtype##_thunk, \ + (OPENSSL_LH_DOALL_FUNCARG)fn, \ + (void *)arg); \ } \ LHASH_OF(type) DEFINE_LHASH_OF_INTERNAL(OPENSSL_STRING); -#define lh_OPENSSL_STRING_new(hfn, cmp) ((LHASH_OF(OPENSSL_STRING) *)OPENSSL_LH_new(ossl_check_OPENSSL_STRING_lh_hashfunc_type(hfn), ossl_check_OPENSSL_STRING_lh_compfunc_type(cmp))) +#define lh_OPENSSL_STRING_new(hfn, cmp) ((LHASH_OF(OPENSSL_STRING) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new(ossl_check_OPENSSL_STRING_lh_hashfunc_type(hfn), ossl_check_OPENSSL_STRING_lh_compfunc_type(cmp)), lh_OPENSSL_STRING_hash_thunk, lh_OPENSSL_STRING_comp_thunk, lh_OPENSSL_STRING_doall_thunk, lh_OPENSSL_STRING_doall_arg_thunk)) #define lh_OPENSSL_STRING_free(lh) OPENSSL_LH_free(ossl_check_OPENSSL_STRING_lh_type(lh)) #define lh_OPENSSL_STRING_flush(lh) OPENSSL_LH_flush(ossl_check_OPENSSL_STRING_lh_type(lh)) #define lh_OPENSSL_STRING_insert(lh, ptr) ((OPENSSL_STRING *)OPENSSL_LH_insert(ossl_check_OPENSSL_STRING_lh_type(lh), ossl_check_OPENSSL_STRING_lh_plain_type(ptr))) @@ -265,7 +375,7 @@ DEFINE_LHASH_OF_INTERNAL(OPENSSL_STRING); #define lh_OPENSSL_STRING_set_down_load(lh, dl) OPENSSL_LH_set_down_load(ossl_check_OPENSSL_STRING_lh_type(lh), dl) #define lh_OPENSSL_STRING_doall(lh, dfn) OPENSSL_LH_doall(ossl_check_OPENSSL_STRING_lh_type(lh), ossl_check_OPENSSL_STRING_lh_doallfunc_type(dfn)) DEFINE_LHASH_OF_INTERNAL(OPENSSL_CSTRING); -#define lh_OPENSSL_CSTRING_new(hfn, cmp) ((LHASH_OF(OPENSSL_CSTRING) *)OPENSSL_LH_new(ossl_check_OPENSSL_CSTRING_lh_hashfunc_type(hfn), ossl_check_OPENSSL_CSTRING_lh_compfunc_type(cmp))) +#define lh_OPENSSL_CSTRING_new(hfn, cmp) ((LHASH_OF(OPENSSL_CSTRING) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new(ossl_check_OPENSSL_CSTRING_lh_hashfunc_type(hfn), ossl_check_OPENSSL_CSTRING_lh_compfunc_type(cmp)), lh_OPENSSL_CSTRING_hash_thunk, lh_OPENSSL_CSTRING_comp_thunk, lh_OPENSSL_CSTRING_doall_thunk, lh_OPENSSL_CSTRING_doall_arg_thunk)) #define lh_OPENSSL_CSTRING_free(lh) OPENSSL_LH_free(ossl_check_OPENSSL_CSTRING_lh_type(lh)) #define lh_OPENSSL_CSTRING_flush(lh) OPENSSL_LH_flush(ossl_check_OPENSSL_CSTRING_lh_type(lh)) #define lh_OPENSSL_CSTRING_insert(lh, ptr) ((OPENSSL_CSTRING *)OPENSSL_LH_insert(ossl_check_OPENSSL_CSTRING_lh_type(lh), ossl_check_OPENSSL_CSTRING_lh_plain_type(ptr))) diff --git a/deps/openssl/config/archs/VC-WIN64A/asm_avx2/include/openssl/opensslv.h b/deps/openssl/config/archs/VC-WIN64A/asm_avx2/include/openssl/opensslv.h index 94f44daf376f8e..a26d4e609af1b7 100644 --- a/deps/openssl/config/archs/VC-WIN64A/asm_avx2/include/openssl/opensslv.h +++ b/deps/openssl/config/archs/VC-WIN64A/asm_avx2/include/openssl/opensslv.h @@ -28,8 +28,8 @@ extern "C" { * These macros express version number MAJOR.MINOR.PATCH exactly */ # define OPENSSL_VERSION_MAJOR 3 -# define OPENSSL_VERSION_MINOR 0 -# define OPENSSL_VERSION_PATCH 17 +# define OPENSSL_VERSION_MINOR 5 +# define OPENSSL_VERSION_PATCH 1 /* * Additional version information @@ -74,8 +74,8 @@ extern "C" { * longer variant with OPENSSL_VERSION_PRE_RELEASE_STR and * OPENSSL_VERSION_BUILD_METADATA_STR appended. */ -# define OPENSSL_VERSION_STR "3.0.17" -# define OPENSSL_FULL_VERSION_STR "3.0.17" +# define OPENSSL_VERSION_STR "3.5.1" +# define OPENSSL_FULL_VERSION_STR "3.5.1" /* * SECTION 3: ADDITIONAL METADATA @@ -88,7 +88,7 @@ extern "C" { * SECTION 4: BACKWARD COMPATIBILITY */ -# define OPENSSL_VERSION_TEXT "OpenSSL 3.0.17 1 Jul 2025" +# define OPENSSL_VERSION_TEXT "OpenSSL 3.5.1 1 Jul 2025" /* Synthesize OPENSSL_VERSION_NUMBER with the layout 0xMNN00PPSL */ # ifdef OPENSSL_VERSION_PRE_RELEASE diff --git a/deps/openssl/config/archs/VC-WIN64A/asm_avx2/include/openssl/pkcs12.h b/deps/openssl/config/archs/VC-WIN64A/asm_avx2/include/openssl/pkcs12.h index 80369818c8ecdc..35d04f039366ce 100644 --- a/deps/openssl/config/archs/VC-WIN64A/asm_avx2/include/openssl/pkcs12.h +++ b/deps/openssl/config/archs/VC-WIN64A/asm_avx2/include/openssl/pkcs12.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by makefile from include/openssl/pkcs12.h.in * - * Copyright 1999-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1999-2024 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -25,6 +25,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -41,6 +44,7 @@ extern "C" { # define PKCS12_MAC_KEY_LENGTH 20 +/* The macro is expected to be used only internally. Kept for backwards compatibility. */ # define PKCS12_SALT_LEN 8 /* It's not clear if these are actually needed... */ @@ -130,7 +134,9 @@ int PKCS12_SAFEBAG_get_bag_nid(const PKCS12_SAFEBAG *bag); const ASN1_TYPE *PKCS12_SAFEBAG_get0_bag_obj(const PKCS12_SAFEBAG *bag); const ASN1_OBJECT *PKCS12_SAFEBAG_get0_bag_type(const PKCS12_SAFEBAG *bag); +X509 *PKCS12_SAFEBAG_get1_cert_ex(const PKCS12_SAFEBAG *bag, OSSL_LIB_CTX *libctx, const char *propq); X509 *PKCS12_SAFEBAG_get1_cert(const PKCS12_SAFEBAG *bag); +X509_CRL *PKCS12_SAFEBAG_get1_crl_ex(const PKCS12_SAFEBAG *bag, OSSL_LIB_CTX *libctx, const char *propq); X509_CRL *PKCS12_SAFEBAG_get1_crl(const PKCS12_SAFEBAG *bag); const STACK_OF(PKCS12_SAFEBAG) * PKCS12_SAFEBAG_get0_safes(const PKCS12_SAFEBAG *bag); @@ -218,6 +224,7 @@ ASN1_TYPE *PKCS12_get_attr_gen(const STACK_OF(X509_ATTRIBUTE) *attrs, char *PKCS12_get_friendlyname(PKCS12_SAFEBAG *bag); const STACK_OF(X509_ATTRIBUTE) * PKCS12_SAFEBAG_get0_attrs(const PKCS12_SAFEBAG *bag); +void PKCS12_SAFEBAG_set0_attrs(PKCS12_SAFEBAG *bag, STACK_OF(X509_ATTRIBUTE) *attrs); unsigned char *PKCS12_pbe_crypt(const X509_ALGOR *algor, const char *pass, int passlen, const unsigned char *in, int inlen, @@ -285,6 +292,9 @@ int PKCS12_verify_mac(PKCS12 *p12, const char *pass, int passlen); int PKCS12_set_mac(PKCS12 *p12, const char *pass, int passlen, unsigned char *salt, int saltlen, int iter, const EVP_MD *md_type); +int PKCS12_set_pbmac1_pbkdf2(PKCS12 *p12, const char *pass, int passlen, + unsigned char *salt, int saltlen, int iter, + const EVP_MD *md_type, const char *prf_md_name); int PKCS12_setup_mac(PKCS12 *p12, int iter, unsigned char *salt, int saltlen, const EVP_MD *md_type); unsigned char *OPENSSL_asc2uni(const char *asc, int asclen, @@ -305,6 +315,7 @@ DECLARE_ASN1_ITEM(PKCS12_AUTHSAFES) void PKCS12_PBE_add(void); int PKCS12_parse(PKCS12 *p12, const char *pass, EVP_PKEY **pkey, X509 **cert, STACK_OF(X509) **ca); +typedef int PKCS12_create_cb(PKCS12_SAFEBAG *bag, void *cbarg); PKCS12 *PKCS12_create(const char *pass, const char *name, EVP_PKEY *pkey, X509 *cert, STACK_OF(X509) *ca, int nid_key, int nid_cert, int iter, int mac_iter, int keytype); @@ -312,6 +323,11 @@ PKCS12 *PKCS12_create_ex(const char *pass, const char *name, EVP_PKEY *pkey, X509 *cert, STACK_OF(X509) *ca, int nid_key, int nid_cert, int iter, int mac_iter, int keytype, OSSL_LIB_CTX *ctx, const char *propq); +PKCS12 *PKCS12_create_ex2(const char *pass, const char *name, EVP_PKEY *pkey, + X509 *cert, STACK_OF(X509) *ca, int nid_key, int nid_cert, + int iter, int mac_iter, int keytype, + OSSL_LIB_CTX *ctx, const char *propq, + PKCS12_create_cb *cb, void *cbarg); PKCS12_SAFEBAG *PKCS12_add_cert(STACK_OF(PKCS12_SAFEBAG) **pbags, X509 *cert); PKCS12_SAFEBAG *PKCS12_add_key(STACK_OF(PKCS12_SAFEBAG) **pbags, diff --git a/deps/openssl/config/archs/VC-WIN64A/asm_avx2/include/openssl/pkcs7.h b/deps/openssl/config/archs/VC-WIN64A/asm_avx2/include/openssl/pkcs7.h index 0a95a93e59e262..641d9411a47354 100644 --- a/deps/openssl/config/archs/VC-WIN64A/asm_avx2/include/openssl/pkcs7.h +++ b/deps/openssl/config/archs/VC-WIN64A/asm_avx2/include/openssl/pkcs7.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by makefile from include/openssl/pkcs7.h.in * - * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -28,6 +28,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -131,8 +134,8 @@ SKM_DEFINE_STACK_OF_INTERNAL(PKCS7_RECIP_INFO, PKCS7_RECIP_INFO, PKCS7_RECIP_INF typedef struct pkcs7_signed_st { ASN1_INTEGER *version; /* version 1 */ STACK_OF(X509_ALGOR) *md_algs; /* md used */ - STACK_OF(X509) *cert; /* [ 0 ] */ - STACK_OF(X509_CRL) *crl; /* [ 1 ] */ + STACK_OF(X509) *cert; /* [ 0 ] */ /* name should be 'certificates' */ + STACK_OF(X509_CRL) *crl; /* [ 1 ] */ /* name should be 'crls' */ STACK_OF(PKCS7_SIGNER_INFO) *signer_info; struct pkcs7_st *contents; } PKCS7_SIGNED; @@ -158,8 +161,8 @@ typedef struct pkcs7_enveloped_st { typedef struct pkcs7_signedandenveloped_st { ASN1_INTEGER *version; /* version 1 */ STACK_OF(X509_ALGOR) *md_algs; /* md used */ - STACK_OF(X509) *cert; /* [ 0 ] */ - STACK_OF(X509_CRL) *crl; /* [ 1 ] */ + STACK_OF(X509) *cert; /* [ 0 ] */ /* name should be 'certificates' */ + STACK_OF(X509_CRL) *crl; /* [ 1 ] */ /* name should be 'crls' */ STACK_OF(PKCS7_SIGNER_INFO) *signer_info; PKCS7_ENC_CONTENT *enc_data; STACK_OF(PKCS7_RECIP_INFO) *recipientinfo; @@ -200,7 +203,7 @@ typedef struct pkcs7_st { /* NID_pkcs7_data */ ASN1_OCTET_STRING *data; /* NID_pkcs7_signed */ - PKCS7_SIGNED *sign; + PKCS7_SIGNED *sign; /* field name 'signed' would clash with C keyword */ /* NID_pkcs7_enveloped */ PKCS7_ENVELOPE *enveloped; /* NID_pkcs7_signedAndEnveloped */ @@ -341,13 +344,13 @@ int PKCS7_SIGNER_INFO_set(PKCS7_SIGNER_INFO *p7i, X509 *x509, EVP_PKEY *pkey, const EVP_MD *dgst); int PKCS7_SIGNER_INFO_sign(PKCS7_SIGNER_INFO *si); int PKCS7_add_signer(PKCS7 *p7, PKCS7_SIGNER_INFO *p7i); -int PKCS7_add_certificate(PKCS7 *p7, X509 *x509); -int PKCS7_add_crl(PKCS7 *p7, X509_CRL *x509); +int PKCS7_add_certificate(PKCS7 *p7, X509 *cert); +int PKCS7_add_crl(PKCS7 *p7, X509_CRL *crl); int PKCS7_content_new(PKCS7 *p7, int nid); int PKCS7_dataVerify(X509_STORE *cert_store, X509_STORE_CTX *ctx, BIO *bio, PKCS7 *p7, PKCS7_SIGNER_INFO *si); int PKCS7_signatureVerify(BIO *bio, PKCS7 *p7, PKCS7_SIGNER_INFO *si, - X509 *x509); + X509 *signer); BIO *PKCS7_dataInit(PKCS7 *p7, BIO *bio); int PKCS7_dataFinal(PKCS7 *p7, BIO *bio); diff --git a/deps/openssl/config/archs/VC-WIN64A/asm_avx2/include/openssl/ssl.h b/deps/openssl/config/archs/VC-WIN64A/asm_avx2/include/openssl/ssl.h index 7e9ca09bbf39f0..6396681867d76c 100644 --- a/deps/openssl/config/archs/VC-WIN64A/asm_avx2/include/openssl/ssl.h +++ b/deps/openssl/config/archs/VC-WIN64A/asm_avx2/include/openssl/ssl.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by makefile from include/openssl/ssl.h.in * - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved * Copyright 2005 Nokia. All rights reserved. * @@ -24,6 +24,7 @@ # endif # include +# include # include # include # include @@ -42,6 +43,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -231,10 +235,8 @@ typedef struct ssl_cipher_st SSL_CIPHER; typedef struct ssl_session_st SSL_SESSION; typedef struct tls_sigalgs_st TLS_SIGALGS; typedef struct ssl_conf_ctx_st SSL_CONF_CTX; -typedef struct ssl_comp_st SSL_COMP; STACK_OF(SSL_CIPHER); -STACK_OF(SSL_COMP); /* SRTP protection profiles for use with the use_srtp extension (RFC 5764)*/ typedef struct srtp_protection_profile_st { @@ -278,28 +280,31 @@ typedef int (*tls_session_secret_cb_fn)(SSL *s, void *secret, int *secret_len, /* Extension context codes */ /* This extension is only allowed in TLS */ -#define SSL_EXT_TLS_ONLY 0x0001 +#define SSL_EXT_TLS_ONLY 0x00001 /* This extension is only allowed in DTLS */ -#define SSL_EXT_DTLS_ONLY 0x0002 +#define SSL_EXT_DTLS_ONLY 0x00002 /* Some extensions may be allowed in DTLS but we don't implement them for it */ -#define SSL_EXT_TLS_IMPLEMENTATION_ONLY 0x0004 +#define SSL_EXT_TLS_IMPLEMENTATION_ONLY 0x00004 /* Most extensions are not defined for SSLv3 but EXT_TYPE_renegotiate is */ -#define SSL_EXT_SSL3_ALLOWED 0x0008 +#define SSL_EXT_SSL3_ALLOWED 0x00008 /* Extension is only defined for TLS1.2 and below */ -#define SSL_EXT_TLS1_2_AND_BELOW_ONLY 0x0010 +#define SSL_EXT_TLS1_2_AND_BELOW_ONLY 0x00010 /* Extension is only defined for TLS1.3 and above */ -#define SSL_EXT_TLS1_3_ONLY 0x0020 +#define SSL_EXT_TLS1_3_ONLY 0x00020 /* Ignore this extension during parsing if we are resuming */ -#define SSL_EXT_IGNORE_ON_RESUMPTION 0x0040 -#define SSL_EXT_CLIENT_HELLO 0x0080 +#define SSL_EXT_IGNORE_ON_RESUMPTION 0x00040 +#define SSL_EXT_CLIENT_HELLO 0x00080 /* Really means TLS1.2 or below */ -#define SSL_EXT_TLS1_2_SERVER_HELLO 0x0100 -#define SSL_EXT_TLS1_3_SERVER_HELLO 0x0200 -#define SSL_EXT_TLS1_3_ENCRYPTED_EXTENSIONS 0x0400 -#define SSL_EXT_TLS1_3_HELLO_RETRY_REQUEST 0x0800 -#define SSL_EXT_TLS1_3_CERTIFICATE 0x1000 -#define SSL_EXT_TLS1_3_NEW_SESSION_TICKET 0x2000 -#define SSL_EXT_TLS1_3_CERTIFICATE_REQUEST 0x4000 +#define SSL_EXT_TLS1_2_SERVER_HELLO 0x00100 +#define SSL_EXT_TLS1_3_SERVER_HELLO 0x00200 +#define SSL_EXT_TLS1_3_ENCRYPTED_EXTENSIONS 0x00400 +#define SSL_EXT_TLS1_3_HELLO_RETRY_REQUEST 0x00800 +#define SSL_EXT_TLS1_3_CERTIFICATE 0x01000 +#define SSL_EXT_TLS1_3_NEW_SESSION_TICKET 0x02000 +#define SSL_EXT_TLS1_3_CERTIFICATE_REQUEST 0x04000 +#define SSL_EXT_TLS1_3_CERTIFICATE_COMPRESSION 0x08000 +/* When sending a raw public key in a certificate message */ +#define SSL_EXT_TLS1_3_RAW_PUBLIC_KEY 0x10000 /* Typedefs for handling custom extensions */ @@ -404,7 +409,7 @@ typedef int (*SSL_async_callback_fn)(SSL *s, void *arg); */ # define SSL_OP_CIPHER_SERVER_PREFERENCE SSL_OP_BIT(22) /* - * If set, a server will allow a client to issue a SSLv3.0 version + * If set, a server will allow a client to issue an SSLv3.0 version * number as latest version supported in the premaster secret, even when * TLSv1.0 (version 3.1) was announced in the client hello. Normally * this is forbidden to prevent version rollback attacks. @@ -430,6 +435,19 @@ typedef int (*SSL_async_callback_fn)(SSL *s, void *arg); * interoperability with CryptoPro CSP 3.x */ # define SSL_OP_CRYPTOPRO_TLSEXT_BUG SSL_OP_BIT(31) +/* + * Disable RFC8879 certificate compression + * SSL_OP_NO_TX_CERTIFICATE_COMPRESSION: don't send compressed certificates, + * and ignore the extension when received. + * SSL_OP_NO_RX_CERTIFICATE_COMPRESSION: don't send the extension, and + * subsequently indicating that receiving is not supported + */ +# define SSL_OP_NO_TX_CERTIFICATE_COMPRESSION SSL_OP_BIT(32) +# define SSL_OP_NO_RX_CERTIFICATE_COMPRESSION SSL_OP_BIT(33) + /* Enable KTLS TX zerocopy on Linux */ +# define SSL_OP_ENABLE_KTLS_TX_ZEROCOPY_SENDFILE SSL_OP_BIT(34) + +#define SSL_OP_PREFER_NO_DHE_KEX SSL_OP_BIT(35) /* * Option "collections." @@ -574,6 +592,8 @@ typedef int (*SSL_async_callback_fn)(SSL *s, void *arg); # define CERT_PKEY_CERT_TYPE 0x400 /* Cert chain suitable to Suite B */ # define CERT_PKEY_SUITEB 0x800 +/* Cert pkey valid for raw public key use */ +# define CERT_PKEY_RPK 0x1000 # define SSL_CONF_FLAG_CMDLINE 0x1 # define SSL_CONF_FLAG_FILE 0x2 @@ -965,6 +985,7 @@ uint32_t SSL_get_recv_max_early_data(const SSL *s); # include /* This is mostly sslv3 with a few tweaks */ # include /* Datagram TLS */ # include /* Support for the use_srtp extension */ +# include #ifdef __cplusplus extern "C" { @@ -1000,32 +1021,6 @@ SKM_DEFINE_STACK_OF_INTERNAL(SSL_CIPHER, const SSL_CIPHER, SSL_CIPHER) #define sk_SSL_CIPHER_dup(sk) ((STACK_OF(SSL_CIPHER) *)OPENSSL_sk_dup(ossl_check_const_SSL_CIPHER_sk_type(sk))) #define sk_SSL_CIPHER_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(SSL_CIPHER) *)OPENSSL_sk_deep_copy(ossl_check_const_SSL_CIPHER_sk_type(sk), ossl_check_SSL_CIPHER_copyfunc_type(copyfunc), ossl_check_SSL_CIPHER_freefunc_type(freefunc))) #define sk_SSL_CIPHER_set_cmp_func(sk, cmp) ((sk_SSL_CIPHER_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_SSL_CIPHER_sk_type(sk), ossl_check_SSL_CIPHER_compfunc_type(cmp))) -SKM_DEFINE_STACK_OF_INTERNAL(SSL_COMP, SSL_COMP, SSL_COMP) -#define sk_SSL_COMP_num(sk) OPENSSL_sk_num(ossl_check_const_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_value(sk, idx) ((SSL_COMP *)OPENSSL_sk_value(ossl_check_const_SSL_COMP_sk_type(sk), (idx))) -#define sk_SSL_COMP_new(cmp) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new(ossl_check_SSL_COMP_compfunc_type(cmp))) -#define sk_SSL_COMP_new_null() ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new_null()) -#define sk_SSL_COMP_new_reserve(cmp, n) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new_reserve(ossl_check_SSL_COMP_compfunc_type(cmp), (n))) -#define sk_SSL_COMP_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_SSL_COMP_sk_type(sk), (n)) -#define sk_SSL_COMP_free(sk) OPENSSL_sk_free(ossl_check_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_zero(sk) OPENSSL_sk_zero(ossl_check_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_delete(sk, i) ((SSL_COMP *)OPENSSL_sk_delete(ossl_check_SSL_COMP_sk_type(sk), (i))) -#define sk_SSL_COMP_delete_ptr(sk, ptr) ((SSL_COMP *)OPENSSL_sk_delete_ptr(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr))) -#define sk_SSL_COMP_push(sk, ptr) OPENSSL_sk_push(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) -#define sk_SSL_COMP_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) -#define sk_SSL_COMP_pop(sk) ((SSL_COMP *)OPENSSL_sk_pop(ossl_check_SSL_COMP_sk_type(sk))) -#define sk_SSL_COMP_shift(sk) ((SSL_COMP *)OPENSSL_sk_shift(ossl_check_SSL_COMP_sk_type(sk))) -#define sk_SSL_COMP_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_SSL_COMP_sk_type(sk),ossl_check_SSL_COMP_freefunc_type(freefunc)) -#define sk_SSL_COMP_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr), (idx)) -#define sk_SSL_COMP_set(sk, idx, ptr) ((SSL_COMP *)OPENSSL_sk_set(ossl_check_SSL_COMP_sk_type(sk), (idx), ossl_check_SSL_COMP_type(ptr))) -#define sk_SSL_COMP_find(sk, ptr) OPENSSL_sk_find(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) -#define sk_SSL_COMP_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) -#define sk_SSL_COMP_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr), pnum) -#define sk_SSL_COMP_sort(sk) OPENSSL_sk_sort(ossl_check_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_dup(sk) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_dup(ossl_check_const_SSL_COMP_sk_type(sk))) -#define sk_SSL_COMP_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_deep_copy(ossl_check_const_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_copyfunc_type(copyfunc), ossl_check_SSL_COMP_freefunc_type(freefunc))) -#define sk_SSL_COMP_set_cmp_func(sk, cmp) ((sk_SSL_COMP_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_compfunc_type(cmp))) /* compatibility */ @@ -1066,6 +1061,7 @@ typedef enum { DTLS_ST_CR_HELLO_VERIFY_REQUEST, TLS_ST_CR_SRVR_HELLO, TLS_ST_CR_CERT, + TLS_ST_CR_COMP_CERT, TLS_ST_CR_CERT_STATUS, TLS_ST_CR_KEY_EXCH, TLS_ST_CR_CERT_REQ, @@ -1075,6 +1071,7 @@ typedef enum { TLS_ST_CR_FINISHED, TLS_ST_CW_CLNT_HELLO, TLS_ST_CW_CERT, + TLS_ST_CW_COMP_CERT, TLS_ST_CW_KEY_EXCH, TLS_ST_CW_CERT_VRFY, TLS_ST_CW_CHANGE, @@ -1085,10 +1082,12 @@ typedef enum { DTLS_ST_SW_HELLO_VERIFY_REQUEST, TLS_ST_SW_SRVR_HELLO, TLS_ST_SW_CERT, + TLS_ST_SW_COMP_CERT, TLS_ST_SW_KEY_EXCH, TLS_ST_SW_CERT_REQ, TLS_ST_SW_SRVR_DONE, TLS_ST_SR_CERT, + TLS_ST_SR_COMP_CERT, TLS_ST_SR_KEY_EXCH, TLS_ST_SR_CERT_VRFY, TLS_ST_SR_NEXT_PROTO, @@ -1380,9 +1379,13 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) # define SSL_CTRL_GET_SIGNATURE_NID 132 # define SSL_CTRL_GET_TMP_KEY 133 # define SSL_CTRL_GET_NEGOTIATED_GROUP 134 +# define SSL_CTRL_GET_IANA_GROUPS 135 # define SSL_CTRL_SET_RETRY_VERIFY 136 # define SSL_CTRL_GET_VERIFY_CERT_STORE 137 # define SSL_CTRL_GET_CHAIN_CERT_STORE 138 +# define SSL_CTRL_GET0_IMPLEMENTED_GROUPS 139 +# define SSL_CTRL_GET_SIGNATURE_NAME 140 +# define SSL_CTRL_GET_PEER_SIGNATURE_NAME 141 # define SSL_CERT_SET_FIRST 1 # define SSL_CERT_SET_NEXT 2 # define SSL_CERT_SET_SERVER 3 @@ -1485,10 +1488,15 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) # define SSL_get1_groups(s, glist) \ SSL_ctrl(s,SSL_CTRL_GET_GROUPS,0,(int*)(glist)) +# define SSL_get0_iana_groups(s, plst) \ + SSL_ctrl(s,SSL_CTRL_GET_IANA_GROUPS,0,(uint16_t **)(plst)) # define SSL_CTX_set1_groups(ctx, glist, glistlen) \ SSL_CTX_ctrl(ctx,SSL_CTRL_SET_GROUPS,glistlen,(int *)(glist)) # define SSL_CTX_set1_groups_list(ctx, s) \ SSL_CTX_ctrl(ctx,SSL_CTRL_SET_GROUPS_LIST,0,(char *)(s)) +# define SSL_CTX_get0_implemented_groups(ctx, all, out) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_GET0_IMPLEMENTED_GROUPS, all, \ + (STACK_OF(OPENSSL_CSTRING) *)(out)) # define SSL_set1_groups(s, glist, glistlen) \ SSL_ctrl(s,SSL_CTRL_SET_GROUPS,glistlen,(char *)(glist)) # define SSL_set1_groups_list(s, str) \ @@ -1520,8 +1528,12 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) (char *)(clist)) # define SSL_set1_client_certificate_types(s, clist, clistlen) \ SSL_ctrl(s,SSL_CTRL_SET_CLIENT_CERT_TYPES,clistlen,(char *)(clist)) +# define SSL_get0_signature_name(s, str) \ + SSL_ctrl(s,SSL_CTRL_GET_SIGNATURE_NAME,0,(1?(str):(const char **)NULL)) # define SSL_get_signature_nid(s, pn) \ SSL_ctrl(s,SSL_CTRL_GET_SIGNATURE_NID,0,pn) +# define SSL_get0_peer_signature_name(s, str) \ + SSL_ctrl(s,SSL_CTRL_GET_PEER_SIGNATURE_NAME,0,(1?(str):(const char **)NULL)) # define SSL_get_peer_signature_nid(s, pn) \ SSL_ctrl(s,SSL_CTRL_GET_PEER_SIGNATURE_NID,0,pn) # define SSL_get_peer_tmp_key(s, pk) \ @@ -1549,6 +1561,7 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) # define SSL_get_max_proto_version(s) \ SSL_ctrl(s, SSL_CTRL_GET_MAX_PROTO_VERSION, 0, NULL) +const char *SSL_get0_group_name(SSL *s); const char *SSL_group_to_name(SSL *s, int id); /* Backwards compatibility, original 1.1.0 names */ @@ -1613,7 +1626,11 @@ void SSL_CTX_set1_cert_store(SSL_CTX *, X509_STORE *); __owur int SSL_want(const SSL *s); __owur int SSL_clear(SSL *s); +#ifndef OPENSSL_NO_DEPRECATED_3_4 +OSSL_DEPRECATEDIN_3_4_FOR("not Y2038-safe, replace with SSL_CTX_flush_sessions_ex()") void SSL_CTX_flush_sessions(SSL_CTX *ctx, long tm); +#endif +void SSL_CTX_flush_sessions_ex(SSL_CTX *ctx, time_t tm); __owur const SSL_CIPHER *SSL_get_current_cipher(const SSL *s); __owur const SSL_CIPHER *SSL_get_pending_cipher(const SSL *s); @@ -1725,13 +1742,21 @@ __owur const char *SSL_state_string(const SSL *s); __owur const char *SSL_rstate_string(const SSL *s); __owur const char *SSL_state_string_long(const SSL *s); __owur const char *SSL_rstate_string_long(const SSL *s); + +#ifndef OPENSSL_NO_DEPRECATED_3_4 +OSSL_DEPRECATEDIN_3_4_FOR("not Y2038-safe, replace with SSL_SESSION_get_time_ex()") __owur long SSL_SESSION_get_time(const SSL_SESSION *s); +OSSL_DEPRECATEDIN_3_4_FOR("not Y2038-safe, replace with SSL_SESSION_set_time_ex()") __owur long SSL_SESSION_set_time(SSL_SESSION *s, long t); +#endif __owur long SSL_SESSION_get_timeout(const SSL_SESSION *s); __owur long SSL_SESSION_set_timeout(SSL_SESSION *s, long t); __owur int SSL_SESSION_get_protocol_version(const SSL_SESSION *s); __owur int SSL_SESSION_set_protocol_version(SSL_SESSION *s, int version); +__owur time_t SSL_SESSION_get_time_ex(const SSL_SESSION *s); +__owur time_t SSL_SESSION_set_time_ex(SSL_SESSION *s, time_t t); + __owur const char *SSL_SESSION_get0_hostname(const SSL_SESSION *s); __owur int SSL_SESSION_set1_hostname(SSL_SESSION *s, const char *hostname); void SSL_SESSION_get0_alpn_selected(const SSL_SESSION *s, @@ -1783,6 +1808,9 @@ __owur int SSL_has_matching_session_id(const SSL *s, unsigned int id_len); SSL_SESSION *d2i_SSL_SESSION(SSL_SESSION **a, const unsigned char **pp, long length); +SSL_SESSION *d2i_SSL_SESSION_ex(SSL_SESSION **a, const unsigned char **pp, + long length, OSSL_LIB_CTX *libctx, + const char *propq); # ifdef OPENSSL_X509_H __owur X509 *SSL_get0_peer_certificate(const SSL *s); @@ -1840,6 +1868,8 @@ __owur int SSL_CTX_set_session_id_context(SSL_CTX *ctx, SSL *SSL_new(SSL_CTX *ctx); int SSL_up_ref(SSL *s); int SSL_is_dtls(const SSL *s); +int SSL_is_tls(const SSL *s); +int SSL_is_quic(const SSL *s); __owur int SSL_set_session_id_context(SSL *ssl, const unsigned char *sid_ctx, unsigned int sid_ctx_len); @@ -1848,8 +1878,8 @@ __owur int SSL_set_purpose(SSL *ssl, int purpose); __owur int SSL_CTX_set_trust(SSL_CTX *ctx, int trust); __owur int SSL_set_trust(SSL *ssl, int trust); -__owur int SSL_set1_host(SSL *s, const char *hostname); -__owur int SSL_add1_host(SSL *s, const char *hostname); +__owur int SSL_set1_host(SSL *s, const char *host); +__owur int SSL_add1_host(SSL *s, const char *host); __owur const char *SSL_get0_peername(SSL *s); void SSL_set_hostflags(SSL *s, unsigned int flags); @@ -1924,6 +1954,11 @@ OSSL_DEPRECATEDIN_3_0 __owur char *SSL_get_srp_userinfo(SSL *s); typedef int (*SSL_client_hello_cb_fn) (SSL *s, int *al, void *arg); void SSL_CTX_set_client_hello_cb(SSL_CTX *c, SSL_client_hello_cb_fn cb, void *arg); +typedef int (*SSL_new_pending_conn_cb_fn) (SSL_CTX *ctx, SSL *new_ssl, + void *arg); +void SSL_CTX_set_new_pending_conn_cb(SSL_CTX *c, SSL_new_pending_conn_cb_fn cb, + void *arg); + int SSL_client_hello_isv2(SSL *s); unsigned int SSL_client_hello_get0_legacy_version(SSL *s); size_t SSL_client_hello_get0_random(SSL *s, const unsigned char **out); @@ -1932,6 +1967,8 @@ size_t SSL_client_hello_get0_ciphers(SSL *s, const unsigned char **out); size_t SSL_client_hello_get0_compression_methods(SSL *s, const unsigned char **out); int SSL_client_hello_get1_extensions_present(SSL *s, int **out, size_t *outlen); +int SSL_client_hello_get_extension_order(SSL *s, uint16_t *exts, + size_t *num_exts); int SSL_client_hello_get0_ext(SSL *s, unsigned int type, const unsigned char **out, size_t *outlen); @@ -1978,6 +2015,12 @@ long SSL_callback_ctrl(SSL *, int, void (*)(void)); long SSL_CTX_ctrl(SSL_CTX *ctx, int cmd, long larg, void *parg); long SSL_CTX_callback_ctrl(SSL_CTX *, int, void (*)(void)); +# define SSL_WRITE_FLAG_CONCLUDE (1U << 0) + +__owur int SSL_write_ex2(SSL *s, const void *buf, size_t num, + uint64_t flags, + size_t *written); + # define SSL_EARLY_DATA_NOT_SENT 0 # define SSL_EARLY_DATA_REJECTED 1 # define SSL_EARLY_DATA_ACCEPTED 2 @@ -1986,6 +2029,7 @@ __owur int SSL_get_early_data_status(const SSL *s); __owur int SSL_get_error(const SSL *s, int ret_code); __owur const char *SSL_get_version(const SSL *s); +__owur int SSL_get_handshake_rtt(const SSL *s, uint64_t *rtt); /* This sets the 'default' SSL version that SSL_new() will create */ # ifndef OPENSSL_NO_DEPRECATED_3_0 @@ -2281,6 +2325,8 @@ void SSL_CTX_set_record_padding_callback(SSL_CTX *ctx, void SSL_CTX_set_record_padding_callback_arg(SSL_CTX *ctx, void *arg); void *SSL_CTX_get_record_padding_callback_arg(const SSL_CTX *ctx); int SSL_CTX_set_block_padding(SSL_CTX *ctx, size_t block_size); +int SSL_CTX_set_block_padding_ex(SSL_CTX *ctx, size_t app_block_size, + size_t hs_block_size); int SSL_set_record_padding_callback(SSL *ssl, size_t (*cb) (SSL *ssl, int type, @@ -2288,12 +2334,255 @@ int SSL_set_record_padding_callback(SSL *ssl, void SSL_set_record_padding_callback_arg(SSL *ssl, void *arg); void *SSL_get_record_padding_callback_arg(const SSL *ssl); int SSL_set_block_padding(SSL *ssl, size_t block_size); - +int SSL_set_block_padding_ex(SSL *ssl, size_t app_block_size, + size_t hs_block_size); int SSL_set_num_tickets(SSL *s, size_t num_tickets); size_t SSL_get_num_tickets(const SSL *s); int SSL_CTX_set_num_tickets(SSL_CTX *ctx, size_t num_tickets); size_t SSL_CTX_get_num_tickets(const SSL_CTX *ctx); +/* QUIC support */ +int SSL_handle_events(SSL *s); +__owur int SSL_get_event_timeout(SSL *s, struct timeval *tv, int *is_infinite); +__owur int SSL_get_rpoll_descriptor(SSL *s, BIO_POLL_DESCRIPTOR *desc); +__owur int SSL_get_wpoll_descriptor(SSL *s, BIO_POLL_DESCRIPTOR *desc); +__owur int SSL_net_read_desired(SSL *s); +__owur int SSL_net_write_desired(SSL *s); +__owur int SSL_set_blocking_mode(SSL *s, int blocking); +__owur int SSL_get_blocking_mode(SSL *s); +__owur int SSL_set1_initial_peer_addr(SSL *s, const BIO_ADDR *peer_addr); +__owur SSL *SSL_get0_connection(SSL *s); +__owur int SSL_is_connection(SSL *s); + +__owur int SSL_is_listener(SSL *ssl); +__owur SSL *SSL_get0_listener(SSL *s); +#define SSL_LISTENER_FLAG_NO_VALIDATE (1UL << 1) +__owur SSL *SSL_new_listener(SSL_CTX *ctx, uint64_t flags); +__owur SSL *SSL_new_listener_from(SSL *ssl, uint64_t flags); +__owur SSL *SSL_new_from_listener(SSL *ssl, uint64_t flags); +#define SSL_ACCEPT_CONNECTION_NO_BLOCK (1UL << 0) +__owur SSL *SSL_accept_connection(SSL *ssl, uint64_t flags); +__owur size_t SSL_get_accept_connection_queue_len(SSL *ssl); +__owur int SSL_listen(SSL *ssl); + +__owur int SSL_is_domain(SSL *s); +__owur SSL *SSL_get0_domain(SSL *s); +__owur SSL *SSL_new_domain(SSL_CTX *ctx, uint64_t flags); + +#define SSL_DOMAIN_FLAG_SINGLE_THREAD (1U << 0) +#define SSL_DOMAIN_FLAG_MULTI_THREAD (1U << 1) +#define SSL_DOMAIN_FLAG_THREAD_ASSISTED (1U << 2) +#define SSL_DOMAIN_FLAG_BLOCKING (1U << 3) +#define SSL_DOMAIN_FLAG_LEGACY_BLOCKING (1U << 4) + +__owur int SSL_CTX_set_domain_flags(SSL_CTX *ctx, uint64_t domain_flags); +__owur int SSL_CTX_get_domain_flags(const SSL_CTX *ctx, uint64_t *domain_flags); +__owur int SSL_get_domain_flags(const SSL *ssl, uint64_t *domain_flags); + +#define SSL_STREAM_TYPE_NONE 0 +#define SSL_STREAM_TYPE_READ (1U << 0) +#define SSL_STREAM_TYPE_WRITE (1U << 1) +#define SSL_STREAM_TYPE_BIDI (SSL_STREAM_TYPE_READ | SSL_STREAM_TYPE_WRITE) +__owur int SSL_get_stream_type(SSL *s); + +__owur uint64_t SSL_get_stream_id(SSL *s); +__owur int SSL_is_stream_local(SSL *s); + +#define SSL_DEFAULT_STREAM_MODE_NONE 0 +#define SSL_DEFAULT_STREAM_MODE_AUTO_BIDI 1 +#define SSL_DEFAULT_STREAM_MODE_AUTO_UNI 2 +__owur int SSL_set_default_stream_mode(SSL *s, uint32_t mode); + +#define SSL_STREAM_FLAG_UNI (1U << 0) +#define SSL_STREAM_FLAG_NO_BLOCK (1U << 1) +#define SSL_STREAM_FLAG_ADVANCE (1U << 2) +__owur SSL *SSL_new_stream(SSL *s, uint64_t flags); + +#define SSL_INCOMING_STREAM_POLICY_AUTO 0 +#define SSL_INCOMING_STREAM_POLICY_ACCEPT 1 +#define SSL_INCOMING_STREAM_POLICY_REJECT 2 +__owur int SSL_set_incoming_stream_policy(SSL *s, int policy, uint64_t aec); + +#define SSL_ACCEPT_STREAM_NO_BLOCK (1U << 0) +__owur SSL *SSL_accept_stream(SSL *s, uint64_t flags); +__owur size_t SSL_get_accept_stream_queue_len(SSL *s); + +# ifndef OPENSSL_NO_QUIC +__owur int SSL_inject_net_dgram(SSL *s, const unsigned char *buf, + size_t buf_len, + const BIO_ADDR *peer, + const BIO_ADDR *local); +# endif + +typedef struct ssl_shutdown_ex_args_st { + uint64_t quic_error_code; + const char *quic_reason; +} SSL_SHUTDOWN_EX_ARGS; + +#define SSL_SHUTDOWN_FLAG_RAPID (1U << 0) +#define SSL_SHUTDOWN_FLAG_NO_STREAM_FLUSH (1U << 1) +#define SSL_SHUTDOWN_FLAG_NO_BLOCK (1U << 2) +#define SSL_SHUTDOWN_FLAG_WAIT_PEER (1U << 3) + +__owur int SSL_shutdown_ex(SSL *ssl, uint64_t flags, + const SSL_SHUTDOWN_EX_ARGS *args, + size_t args_len); + +__owur int SSL_stream_conclude(SSL *ssl, uint64_t flags); + +typedef struct ssl_stream_reset_args_st { + uint64_t quic_error_code; +} SSL_STREAM_RESET_ARGS; + +__owur int SSL_stream_reset(SSL *ssl, + const SSL_STREAM_RESET_ARGS *args, + size_t args_len); + +#define SSL_STREAM_STATE_NONE 0 +#define SSL_STREAM_STATE_OK 1 +#define SSL_STREAM_STATE_WRONG_DIR 2 +#define SSL_STREAM_STATE_FINISHED 3 +#define SSL_STREAM_STATE_RESET_LOCAL 4 +#define SSL_STREAM_STATE_RESET_REMOTE 5 +#define SSL_STREAM_STATE_CONN_CLOSED 6 +__owur int SSL_get_stream_read_state(SSL *ssl); +__owur int SSL_get_stream_write_state(SSL *ssl); + +__owur int SSL_get_stream_read_error_code(SSL *ssl, uint64_t *app_error_code); +__owur int SSL_get_stream_write_error_code(SSL *ssl, uint64_t *app_error_code); + +#define SSL_CONN_CLOSE_FLAG_LOCAL (1U << 0) +#define SSL_CONN_CLOSE_FLAG_TRANSPORT (1U << 1) + +typedef struct ssl_conn_close_info_st { + uint64_t error_code, frame_type; + const char *reason; + size_t reason_len; + uint32_t flags; +} SSL_CONN_CLOSE_INFO; + +__owur int SSL_get_conn_close_info(SSL *ssl, + SSL_CONN_CLOSE_INFO *info, + size_t info_len); + +# define SSL_VALUE_CLASS_GENERIC 0 +# define SSL_VALUE_CLASS_FEATURE_REQUEST 1 +# define SSL_VALUE_CLASS_FEATURE_PEER_REQUEST 2 +# define SSL_VALUE_CLASS_FEATURE_NEGOTIATED 3 + +# define SSL_VALUE_NONE 0 +# define SSL_VALUE_QUIC_STREAM_BIDI_LOCAL_AVAIL 1 +# define SSL_VALUE_QUIC_STREAM_BIDI_REMOTE_AVAIL 2 +# define SSL_VALUE_QUIC_STREAM_UNI_LOCAL_AVAIL 3 +# define SSL_VALUE_QUIC_STREAM_UNI_REMOTE_AVAIL 4 +# define SSL_VALUE_QUIC_IDLE_TIMEOUT 5 +# define SSL_VALUE_EVENT_HANDLING_MODE 6 +# define SSL_VALUE_STREAM_WRITE_BUF_SIZE 7 +# define SSL_VALUE_STREAM_WRITE_BUF_USED 8 +# define SSL_VALUE_STREAM_WRITE_BUF_AVAIL 9 + +# define SSL_VALUE_EVENT_HANDLING_MODE_INHERIT 0 +# define SSL_VALUE_EVENT_HANDLING_MODE_IMPLICIT 1 +# define SSL_VALUE_EVENT_HANDLING_MODE_EXPLICIT 2 + +int SSL_get_value_uint(SSL *s, uint32_t class_, uint32_t id, uint64_t *v); +int SSL_set_value_uint(SSL *s, uint32_t class_, uint32_t id, uint64_t v); + +# define SSL_get_generic_value_uint(ssl, id, v) \ + SSL_get_value_uint((ssl), SSL_VALUE_CLASS_GENERIC, (id), (v)) +# define SSL_set_generic_value_uint(ssl, id, v) \ + SSL_set_value_uint((ssl), SSL_VALUE_CLASS_GENERIC, (id), (v)) +# define SSL_get_feature_request_uint(ssl, id, v) \ + SSL_get_value_uint((ssl), SSL_VALUE_CLASS_FEATURE_REQUEST, (id), (v)) +# define SSL_set_feature_request_uint(ssl, id, v) \ + SSL_set_value_uint((ssl), SSL_VALUE_CLASS_FEATURE_REQUEST, (id), (v)) +# define SSL_get_feature_peer_request_uint(ssl, id, v) \ + SSL_get_value_uint((ssl), SSL_VALUE_CLASS_FEATURE_PEER_REQUEST, (id), (v)) +# define SSL_get_feature_negotiated_uint(ssl, id, v) \ + SSL_get_value_uint((ssl), SSL_VALUE_CLASS_FEATURE_NEGOTIATED, (id), (v)) + +# define SSL_get_quic_stream_bidi_local_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_QUIC_STREAM_BIDI_LOCAL_AVAIL, \ + (value)) +# define SSL_get_quic_stream_bidi_remote_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_QUIC_STREAM_BIDI_REMOTE_AVAIL, \ + (value)) +# define SSL_get_quic_stream_uni_local_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_QUIC_STREAM_UNI_LOCAL_AVAIL, \ + (value)) +# define SSL_get_quic_stream_uni_remote_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_QUIC_STREAM_UNI_REMOTE_AVAIL, \ + (value)) + +# define SSL_get_event_handling_mode(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_EVENT_HANDLING_MODE, \ + (value)) +# define SSL_set_event_handling_mode(ssl, value) \ + SSL_set_generic_value_uint((ssl), SSL_VALUE_EVENT_HANDLING_MODE, \ + (value)) + +# define SSL_get_stream_write_buf_size(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_STREAM_WRITE_BUF_SIZE, \ + (value)) +# define SSL_get_stream_write_buf_used(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_STREAM_WRITE_BUF_USED, \ + (value)) +# define SSL_get_stream_write_buf_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_STREAM_WRITE_BUF_AVAIL, \ + (value)) + +# define SSL_POLL_EVENT_NONE 0 + +# define SSL_POLL_EVENT_F (1U << 0) /* F (Failure) */ +# define SSL_POLL_EVENT_EL (1U << 1) /* EL (Exception on Listener) */ +# define SSL_POLL_EVENT_EC (1U << 2) /* EC (Exception on Conn) */ +# define SSL_POLL_EVENT_ECD (1U << 3) /* ECD (Exception on Conn Drained) */ +# define SSL_POLL_EVENT_ER (1U << 4) /* ER (Exception on Read) */ +# define SSL_POLL_EVENT_EW (1U << 5) /* EW (Exception on Write) */ +# define SSL_POLL_EVENT_R (1U << 6) /* R (Readable) */ +# define SSL_POLL_EVENT_W (1U << 7) /* W (Writable) */ +# define SSL_POLL_EVENT_IC (1U << 8) /* IC (Incoming Connection) */ +# define SSL_POLL_EVENT_ISB (1U << 9) /* ISB (Incoming Stream: Bidi) */ +# define SSL_POLL_EVENT_ISU (1U << 10) /* ISU (Incoming Stream: Uni) */ +# define SSL_POLL_EVENT_OSB (1U << 11) /* OSB (Outgoing Stream: Bidi) */ +# define SSL_POLL_EVENT_OSU (1U << 12) /* OSU (Outgoing Stream: Uni) */ + +# define SSL_POLL_EVENT_RW (SSL_POLL_EVENT_R | SSL_POLL_EVENT_W) +# define SSL_POLL_EVENT_RE (SSL_POLL_EVENT_R | SSL_POLL_EVENT_ER) +# define SSL_POLL_EVENT_WE (SSL_POLL_EVENT_W | SSL_POLL_EVENT_EW) +# define SSL_POLL_EVENT_RWE (SSL_POLL_EVENT_RE | SSL_POLL_EVENT_WE) +# define SSL_POLL_EVENT_E (SSL_POLL_EVENT_EL | SSL_POLL_EVENT_EC \ + | SSL_POLL_EVENT_ER | SSL_POLL_EVENT_EW) +# define SSL_POLL_EVENT_IS (SSL_POLL_EVENT_ISB | SSL_POLL_EVENT_ISU) +# define SSL_POLL_EVENT_ISE (SSL_POLL_EVENT_IS | SSL_POLL_EVENT_EC) +# define SSL_POLL_EVENT_I (SSL_POLL_EVENT_IS | SSL_POLL_EVENT_IC) +# define SSL_POLL_EVENT_OS (SSL_POLL_EVENT_OSB | SSL_POLL_EVENT_OSU) +# define SSL_POLL_EVENT_OSE (SSL_POLL_EVENT_OS | SSL_POLL_EVENT_EC) + +typedef struct ssl_poll_item_st { + BIO_POLL_DESCRIPTOR desc; + uint64_t events, revents; +} SSL_POLL_ITEM; + +# define SSL_POLL_FLAG_NO_HANDLE_EVENTS (1U << 0) + +__owur int SSL_poll(SSL_POLL_ITEM *items, + size_t num_items, + size_t stride, + const struct timeval *timeout, + uint64_t flags, + size_t *result_count); + +static ossl_inline ossl_unused BIO_POLL_DESCRIPTOR +SSL_as_poll_descriptor(SSL *s) +{ + BIO_POLL_DESCRIPTOR d; + + d.type = BIO_POLL_DESCRIPTOR_TYPE_SSL; + d.value.ssl = s; + return d; +} + # ifndef OPENSSL_NO_DEPRECATED_1_1_0 # define SSL_cache_hit(s) SSL_session_reused(s) # endif @@ -2593,6 +2882,51 @@ void SSL_set_allow_early_data_cb(SSL *s, const char *OSSL_default_cipher_list(void); const char *OSSL_default_ciphersuites(void); +/* RFC8879 Certificate compression APIs */ + +int SSL_CTX_compress_certs(SSL_CTX *ctx, int alg); +int SSL_compress_certs(SSL *ssl, int alg); + +int SSL_CTX_set1_cert_comp_preference(SSL_CTX *ctx, int *algs, size_t len); +int SSL_set1_cert_comp_preference(SSL *ssl, int *algs, size_t len); + +int SSL_CTX_set1_compressed_cert(SSL_CTX *ctx, int algorithm, unsigned char *comp_data, + size_t comp_length, size_t orig_length); +int SSL_set1_compressed_cert(SSL *ssl, int algorithm, unsigned char *comp_data, + size_t comp_length, size_t orig_length); +size_t SSL_CTX_get1_compressed_cert(SSL_CTX *ctx, int alg, unsigned char **data, size_t *orig_len); +size_t SSL_get1_compressed_cert(SSL *ssl, int alg, unsigned char **data, size_t *orig_len); + +__owur int SSL_add_expected_rpk(SSL *s, EVP_PKEY *rpk); +__owur EVP_PKEY *SSL_get0_peer_rpk(const SSL *s); +__owur EVP_PKEY *SSL_SESSION_get0_peer_rpk(SSL_SESSION *s); +__owur int SSL_get_negotiated_client_cert_type(const SSL *s); +__owur int SSL_get_negotiated_server_cert_type(const SSL *s); + +__owur int SSL_set1_client_cert_type(SSL *s, const unsigned char *val, size_t len); +__owur int SSL_set1_server_cert_type(SSL *s, const unsigned char *val, size_t len); +__owur int SSL_CTX_set1_client_cert_type(SSL_CTX *ctx, const unsigned char *val, size_t len); +__owur int SSL_CTX_set1_server_cert_type(SSL_CTX *ctx, const unsigned char *val, size_t len); +__owur int SSL_get0_client_cert_type(const SSL *s, unsigned char **t, size_t *len); +__owur int SSL_get0_server_cert_type(const SSL *s, unsigned char **t, size_t *len); +__owur int SSL_CTX_get0_client_cert_type(const SSL_CTX *ctx, unsigned char **t, size_t *len); +__owur int SSL_CTX_get0_server_cert_type(const SSL_CTX *s, unsigned char **t, size_t *len); + +/* + * Protection level. For <= TLSv1.2 only "NONE" and "APPLICATION" are used. + */ +# define OSSL_RECORD_PROTECTION_LEVEL_NONE 0 +# define OSSL_RECORD_PROTECTION_LEVEL_EARLY 1 +# define OSSL_RECORD_PROTECTION_LEVEL_HANDSHAKE 2 +# define OSSL_RECORD_PROTECTION_LEVEL_APPLICATION 3 + +int SSL_set_quic_tls_cbs(SSL *s, const OSSL_DISPATCH *qtdis, void *arg); +int SSL_set_quic_tls_transport_params(SSL *s, + const unsigned char *params, + size_t params_len); + +int SSL_set_quic_tls_early_data_enabled(SSL *s, int enabled); + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/VC-WIN64A/asm_avx2/include/openssl/x509.h b/deps/openssl/config/archs/VC-WIN64A/asm_avx2/include/openssl/x509.h index 0f2353c821aa9b..5e9c548c48d65b 100644 --- a/deps/openssl/config/archs/VC-WIN64A/asm_avx2/include/openssl/x509.h +++ b/deps/openssl/config/archs/VC-WIN64A/asm_avx2/include/openssl/x509.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by makefile from include/openssl/x509.h.in * - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2024 The OpenSSL Project Authors. All Rights Reserved. * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved * * Licensed under the Apache License 2.0 (the "License"). You may not use @@ -40,6 +40,9 @@ # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -162,16 +165,24 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_CRL, X509_CRL, X509_CRL) # define X509_FILETYPE_ASN1 2 # define X509_FILETYPE_DEFAULT 3 -# define X509v3_KU_DIGITAL_SIGNATURE 0x0080 -# define X509v3_KU_NON_REPUDIATION 0x0040 -# define X509v3_KU_KEY_ENCIPHERMENT 0x0020 -# define X509v3_KU_DATA_ENCIPHERMENT 0x0010 -# define X509v3_KU_KEY_AGREEMENT 0x0008 -# define X509v3_KU_KEY_CERT_SIGN 0x0004 -# define X509v3_KU_CRL_SIGN 0x0002 -# define X509v3_KU_ENCIPHER_ONLY 0x0001 -# define X509v3_KU_DECIPHER_ONLY 0x8000 -# define X509v3_KU_UNDEF 0xffff +/*- + * : + * The KeyUsage BITSTRING is treated as a little-endian integer, hence bit `0` + * is 0x80, while bit `7` is 0x01 (the LSB of the integer value), bit `8` is + * then the MSB of the second octet, or 0x8000. + */ +# define X509v3_KU_DIGITAL_SIGNATURE 0x0080 /* (0) */ +# define X509v3_KU_NON_REPUDIATION 0x0040 /* (1) */ +# define X509v3_KU_KEY_ENCIPHERMENT 0x0020 /* (2) */ +# define X509v3_KU_DATA_ENCIPHERMENT 0x0010 /* (3) */ +# define X509v3_KU_KEY_AGREEMENT 0x0008 /* (4) */ +# define X509v3_KU_KEY_CERT_SIGN 0x0004 /* (5) */ +# define X509v3_KU_CRL_SIGN 0x0002 /* (6) */ +# define X509v3_KU_ENCIPHER_ONLY 0x0001 /* (7) */ +# define X509v3_KU_DECIPHER_ONLY 0x8000 /* (8) */ +# ifndef OPENSSL_NO_DEPRECATED_3_4 +# define X509v3_KU_UNDEF 0xffff /* vestigial, not used */ +# endif struct X509_algor_st { ASN1_OBJECT *algorithm; @@ -462,7 +473,12 @@ typedef struct PBKDF2PARAM_st { X509_ALGOR *prf; } PBKDF2PARAM; -#ifndef OPENSSL_NO_SCRYPT +typedef struct { + X509_ALGOR *keyDerivationFunc; + X509_ALGOR *messageAuthScheme; +} PBMAC1PARAM; + +# ifndef OPENSSL_NO_SCRYPT typedef struct SCRYPT_PARAMS_st { ASN1_OCTET_STRING *salt; ASN1_INTEGER *costParameter; @@ -470,7 +486,7 @@ typedef struct SCRYPT_PARAMS_st { ASN1_INTEGER *parallelizationParameter; ASN1_INTEGER *keyLength; } SCRYPT_PARAMS; -#endif +# endif #ifdef __cplusplus } @@ -603,6 +619,8 @@ EVP_PKEY *d2i_PrivateKey_ex_fp(FILE *fp, EVP_PKEY **a, OSSL_LIB_CTX *libctx, const char *propq); EVP_PKEY *d2i_PrivateKey_fp(FILE *fp, EVP_PKEY **a); int i2d_PUBKEY_fp(FILE *fp, const EVP_PKEY *pkey); +EVP_PKEY *d2i_PUBKEY_ex_fp(FILE *fp, EVP_PKEY **a, OSSL_LIB_CTX *libctx, + const char *propq); EVP_PKEY *d2i_PUBKEY_fp(FILE *fp, EVP_PKEY **a); # endif @@ -651,6 +669,8 @@ EVP_PKEY *d2i_PrivateKey_ex_bio(BIO *bp, EVP_PKEY **a, OSSL_LIB_CTX *libctx, const char *propq); EVP_PKEY *d2i_PrivateKey_bio(BIO *bp, EVP_PKEY **a); int i2d_PUBKEY_bio(BIO *bp, const EVP_PKEY *pkey); +EVP_PKEY *d2i_PUBKEY_ex_bio(BIO *bp, EVP_PKEY **a, OSSL_LIB_CTX *libctx, + const char *propq); EVP_PKEY *d2i_PUBKEY_bio(BIO *bp, EVP_PKEY **a); DECLARE_ASN1_DUP_FUNCTION(X509) @@ -884,12 +904,12 @@ int X509_REQ_get_signature_nid(const X509_REQ *req); int i2d_re_X509_REQ_tbs(X509_REQ *req, unsigned char **pp); int X509_REQ_set_pubkey(X509_REQ *x, EVP_PKEY *pkey); EVP_PKEY *X509_REQ_get_pubkey(X509_REQ *req); -EVP_PKEY *X509_REQ_get0_pubkey(X509_REQ *req); +EVP_PKEY *X509_REQ_get0_pubkey(const X509_REQ *req); X509_PUBKEY *X509_REQ_get_X509_PUBKEY(X509_REQ *req); int X509_REQ_extension_nid(int nid); int *X509_REQ_get_extension_nids(void); void X509_REQ_set_extension_nids(int *nids); -STACK_OF(X509_EXTENSION) *X509_REQ_get_extensions(X509_REQ *req); +STACK_OF(X509_EXTENSION) *X509_REQ_get_extensions(OSSL_FUTURE_CONST X509_REQ *req); int X509_REQ_add_extensions_nid(X509_REQ *req, const STACK_OF(X509_EXTENSION) *exts, int nid); int X509_REQ_add_extensions(X509_REQ *req, const STACK_OF(X509_EXTENSION) *ext); @@ -950,13 +970,14 @@ X509_REVOKED_get0_extensions(const X509_REVOKED *r); X509_CRL *X509_CRL_diff(X509_CRL *base, X509_CRL *newer, EVP_PKEY *skey, const EVP_MD *md, unsigned int flags); -int X509_REQ_check_private_key(X509_REQ *x509, EVP_PKEY *pkey); +int X509_REQ_check_private_key(const X509_REQ *req, EVP_PKEY *pkey); -int X509_check_private_key(const X509 *x509, const EVP_PKEY *pkey); +int X509_check_private_key(const X509 *cert, const EVP_PKEY *pkey); int X509_chain_check_suiteb(int *perror_depth, X509 *x, STACK_OF(X509) *chain, unsigned long flags); int X509_CRL_check_suiteb(X509_CRL *crl, EVP_PKEY *pk, unsigned long flags); +void OSSL_STACK_OF_X509_free(STACK_OF(X509) *certs); STACK_OF(X509) *X509_chain_up_ref(STACK_OF(X509) *chain); int X509_issuer_and_serial_cmp(const X509 *a, const X509 *b); @@ -1077,6 +1098,8 @@ X509_EXTENSION *X509v3_get_ext(const STACK_OF(X509_EXTENSION) *x, int loc); X509_EXTENSION *X509v3_delete_ext(STACK_OF(X509_EXTENSION) *x, int loc); STACK_OF(X509_EXTENSION) *X509v3_add_ext(STACK_OF(X509_EXTENSION) **x, X509_EXTENSION *ex, int loc); +STACK_OF(X509_EXTENSION) *X509v3_add_extensions(STACK_OF(X509_EXTENSION) **target, + const STACK_OF(X509_EXTENSION) *exts); int X509_get_ext_count(const X509 *x); int X509_get_ext_by_NID(const X509 *x, int nid, int lastpos); @@ -1198,9 +1221,10 @@ X509 *X509_find_by_subject(STACK_OF(X509) *sk, const X509_NAME *name); DECLARE_ASN1_FUNCTIONS(PBEPARAM) DECLARE_ASN1_FUNCTIONS(PBE2PARAM) DECLARE_ASN1_FUNCTIONS(PBKDF2PARAM) -#ifndef OPENSSL_NO_SCRYPT +DECLARE_ASN1_FUNCTIONS(PBMAC1PARAM) +# ifndef OPENSSL_NO_SCRYPT DECLARE_ASN1_FUNCTIONS(SCRYPT_PARAMS) -#endif +# endif int PKCS5_pbe_set0_algor(X509_ALGOR *algor, int alg, int iter, const unsigned char *salt, int saltlen); @@ -1237,6 +1261,7 @@ X509_ALGOR *PKCS5_pbkdf2_set_ex(int iter, unsigned char *salt, int saltlen, int prf_nid, int keylen, OSSL_LIB_CTX *libctx); +PBKDF2PARAM *PBMAC1_get1_pbkdf2_param(const X509_ALGOR *macalg); /* PKCS#8 utilities */ DECLARE_ASN1_FUNCTIONS(PKCS8_PRIV_KEY_INFO) @@ -1262,6 +1287,8 @@ int PKCS8_pkey_add1_attr_by_OBJ(PKCS8_PRIV_KEY_INFO *p8, const ASN1_OBJECT *obj, int type, const unsigned char *bytes, int len); +void X509_PUBKEY_set0_public_key(X509_PUBKEY *pub, + unsigned char *penc, int penclen); int X509_PUBKEY_set0_param(X509_PUBKEY *pub, ASN1_OBJECT *aobj, int ptype, void *pval, unsigned char *penc, int penclen); diff --git a/deps/openssl/config/archs/VC-WIN64A/asm_avx2/include/openssl/x509_acert.h b/deps/openssl/config/archs/VC-WIN64A/asm_avx2/include/openssl/x509_acert.h new file mode 100644 index 00000000000000..efae82c8f6b635 --- /dev/null +++ b/deps/openssl/config/archs/VC-WIN64A/asm_avx2/include/openssl/x509_acert.h @@ -0,0 +1,294 @@ +/* + * WARNING: do not edit! + * Generated by makefile from include/openssl/x509_acert.h.in + * + * Copyright 2022-2024 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + + +#ifndef OPENSSL_X509_ACERT_H +# define OPENSSL_X509_ACERT_H +# pragma once + +# include +# include +# include + +typedef struct X509_acert_st X509_ACERT; +typedef struct X509_acert_info_st X509_ACERT_INFO; +typedef struct ossl_object_digest_info_st OSSL_OBJECT_DIGEST_INFO; +typedef struct ossl_issuer_serial_st OSSL_ISSUER_SERIAL; +typedef struct X509_acert_issuer_v2form_st X509_ACERT_ISSUER_V2FORM; + +DECLARE_ASN1_FUNCTIONS(X509_ACERT) +DECLARE_ASN1_DUP_FUNCTION(X509_ACERT) +DECLARE_ASN1_ITEM(X509_ACERT_INFO) +DECLARE_ASN1_ALLOC_FUNCTIONS(X509_ACERT_INFO) +DECLARE_ASN1_ALLOC_FUNCTIONS(OSSL_OBJECT_DIGEST_INFO) +DECLARE_ASN1_ALLOC_FUNCTIONS(OSSL_ISSUER_SERIAL) +DECLARE_ASN1_ALLOC_FUNCTIONS(X509_ACERT_ISSUER_V2FORM) + +# ifndef OPENSSL_NO_STDIO +X509_ACERT *d2i_X509_ACERT_fp(FILE *fp, X509_ACERT **acert); +int i2d_X509_ACERT_fp(FILE *fp, const X509_ACERT *acert); +# endif + +DECLARE_PEM_rw(X509_ACERT, X509_ACERT) + +X509_ACERT *d2i_X509_ACERT_bio(BIO *bp, X509_ACERT **acert); +int i2d_X509_ACERT_bio(BIO *bp, const X509_ACERT *acert); + +int X509_ACERT_sign(X509_ACERT *x, EVP_PKEY *pkey, const EVP_MD *md); +int X509_ACERT_sign_ctx(X509_ACERT *x, EVP_MD_CTX *ctx); +int X509_ACERT_verify(X509_ACERT *a, EVP_PKEY *r); + +# define X509_ACERT_VERSION_2 1 + +const GENERAL_NAMES *X509_ACERT_get0_holder_entityName(const X509_ACERT *x); +const OSSL_ISSUER_SERIAL *X509_ACERT_get0_holder_baseCertId(const X509_ACERT *x); +const OSSL_OBJECT_DIGEST_INFO * X509_ACERT_get0_holder_digest(const X509_ACERT *x); +const X509_NAME *X509_ACERT_get0_issuerName(const X509_ACERT *x); +long X509_ACERT_get_version(const X509_ACERT *x); +void X509_ACERT_get0_signature(const X509_ACERT *x, + const ASN1_BIT_STRING **psig, + const X509_ALGOR **palg); +int X509_ACERT_get_signature_nid(const X509_ACERT *x); +const X509_ALGOR *X509_ACERT_get0_info_sigalg(const X509_ACERT *x); +const ASN1_INTEGER *X509_ACERT_get0_serialNumber(const X509_ACERT *x); +const ASN1_TIME *X509_ACERT_get0_notBefore(const X509_ACERT *x); +const ASN1_TIME *X509_ACERT_get0_notAfter(const X509_ACERT *x); +const ASN1_BIT_STRING *X509_ACERT_get0_issuerUID(const X509_ACERT *x); + +int X509_ACERT_print(BIO *bp, X509_ACERT *x); +int X509_ACERT_print_ex(BIO *bp, X509_ACERT *x, unsigned long nmflags, + unsigned long cflag); + +int X509_ACERT_get_attr_count(const X509_ACERT *x); +int X509_ACERT_get_attr_by_NID(const X509_ACERT *x, int nid, int lastpos); +int X509_ACERT_get_attr_by_OBJ(const X509_ACERT *x, const ASN1_OBJECT *obj, + int lastpos); +X509_ATTRIBUTE *X509_ACERT_get_attr(const X509_ACERT *x, int loc); +X509_ATTRIBUTE *X509_ACERT_delete_attr(X509_ACERT *x, int loc); + +void *X509_ACERT_get_ext_d2i(const X509_ACERT *x, int nid, int *crit, int *idx); +int X509_ACERT_add1_ext_i2d(X509_ACERT *x, int nid, void *value, int crit, + unsigned long flags); +const STACK_OF(X509_EXTENSION) *X509_ACERT_get0_extensions(const X509_ACERT *x); + +# define OSSL_OBJECT_DIGEST_INFO_PUBLIC_KEY 0 +# define OSSL_OBJECT_DIGEST_INFO_PUBLIC_KEY_CERT 1 +# define OSSL_OBJECT_DIGEST_INFO_OTHER 2 /* must not be used in RFC 5755 profile */ +int X509_ACERT_set_version(X509_ACERT *x, long version); +void X509_ACERT_set0_holder_entityName(X509_ACERT *x, GENERAL_NAMES *name); +void X509_ACERT_set0_holder_baseCertId(X509_ACERT *x, OSSL_ISSUER_SERIAL *isss); +void X509_ACERT_set0_holder_digest(X509_ACERT *x, + OSSL_OBJECT_DIGEST_INFO *dinfo); + +int X509_ACERT_add1_attr(X509_ACERT *x, X509_ATTRIBUTE *attr); +int X509_ACERT_add1_attr_by_OBJ(X509_ACERT *x, const ASN1_OBJECT *obj, + int type, const void *bytes, int len); +int X509_ACERT_add1_attr_by_NID(X509_ACERT *x, int nid, int type, + const void *bytes, int len); +int X509_ACERT_add1_attr_by_txt(X509_ACERT *x, const char *attrname, int type, + const unsigned char *bytes, int len); +int X509_ACERT_add_attr_nconf(CONF *conf, const char *section, + X509_ACERT *acert); + +int X509_ACERT_set1_issuerName(X509_ACERT *x, const X509_NAME *name); +int X509_ACERT_set1_serialNumber(X509_ACERT *x, const ASN1_INTEGER *serial); +int X509_ACERT_set1_notBefore(X509_ACERT *x, const ASN1_GENERALIZEDTIME *time); +int X509_ACERT_set1_notAfter(X509_ACERT *x, const ASN1_GENERALIZEDTIME *time); + +void OSSL_OBJECT_DIGEST_INFO_get0_digest(const OSSL_OBJECT_DIGEST_INFO *o, + int *digestedObjectType, + const X509_ALGOR **digestAlgorithm, + const ASN1_BIT_STRING **digest); + +int OSSL_OBJECT_DIGEST_INFO_set1_digest(OSSL_OBJECT_DIGEST_INFO *o, + int digestedObjectType, + X509_ALGOR *digestAlgorithm, + ASN1_BIT_STRING *digest); + +const X509_NAME *OSSL_ISSUER_SERIAL_get0_issuer(const OSSL_ISSUER_SERIAL *isss); +const ASN1_INTEGER *OSSL_ISSUER_SERIAL_get0_serial(const OSSL_ISSUER_SERIAL *isss); +const ASN1_BIT_STRING *OSSL_ISSUER_SERIAL_get0_issuerUID(const OSSL_ISSUER_SERIAL *isss); + +int OSSL_ISSUER_SERIAL_set1_issuer(OSSL_ISSUER_SERIAL *isss, + const X509_NAME *issuer); +int OSSL_ISSUER_SERIAL_set1_serial(OSSL_ISSUER_SERIAL *isss, + const ASN1_INTEGER *serial); +int OSSL_ISSUER_SERIAL_set1_issuerUID(OSSL_ISSUER_SERIAL *isss, + const ASN1_BIT_STRING *uid); + +# define OSSL_IETFAS_OCTETS 0 +# define OSSL_IETFAS_OID 1 +# define OSSL_IETFAS_STRING 2 + +typedef struct OSSL_IETF_ATTR_SYNTAX_VALUE_st OSSL_IETF_ATTR_SYNTAX_VALUE; +typedef struct OSSL_IETF_ATTR_SYNTAX_st OSSL_IETF_ATTR_SYNTAX; +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_IETF_ATTR_SYNTAX_VALUE, OSSL_IETF_ATTR_SYNTAX_VALUE, OSSL_IETF_ATTR_SYNTAX_VALUE) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_value(sk, idx) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_value(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), (idx))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_new(cmp) ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_new(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_compfunc_type(cmp))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_new_null() ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_new_null()) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_new_reserve(cmp, n) ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_compfunc_type(cmp), (n))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), (n)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_free(sk) OPENSSL_sk_free(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_delete(sk, i) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_delete(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), (i))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_delete_ptr(sk, ptr) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_pop(sk) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_pop(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_shift(sk) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_shift(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk),ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_freefunc_type(freefunc)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr), (idx)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_set(sk, idx, ptr) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_set(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), (idx), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr), pnum) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_dup(sk) ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_dup(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_copyfunc_type(copyfunc), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_freefunc_type(freefunc))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_set_cmp_func(sk, cmp) ((sk_OSSL_IETF_ATTR_SYNTAX_VALUE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_compfunc_type(cmp))) + + +DECLARE_ASN1_ITEM(OSSL_IETF_ATTR_SYNTAX_VALUE) +DECLARE_ASN1_ALLOC_FUNCTIONS(OSSL_IETF_ATTR_SYNTAX_VALUE) +DECLARE_ASN1_FUNCTIONS(OSSL_IETF_ATTR_SYNTAX) + +const GENERAL_NAMES * +OSSL_IETF_ATTR_SYNTAX_get0_policyAuthority(const OSSL_IETF_ATTR_SYNTAX *a); +void OSSL_IETF_ATTR_SYNTAX_set0_policyAuthority(OSSL_IETF_ATTR_SYNTAX *a, + GENERAL_NAMES *names); + +int OSSL_IETF_ATTR_SYNTAX_get_value_num(const OSSL_IETF_ATTR_SYNTAX *a); +void *OSSL_IETF_ATTR_SYNTAX_get0_value(const OSSL_IETF_ATTR_SYNTAX *a, + int ind, int *type); +int OSSL_IETF_ATTR_SYNTAX_add1_value(OSSL_IETF_ATTR_SYNTAX *a, int type, + void *data); +int OSSL_IETF_ATTR_SYNTAX_print(BIO *bp, OSSL_IETF_ATTR_SYNTAX *a, int indent); + +struct TARGET_CERT_st { + OSSL_ISSUER_SERIAL *targetCertificate; + GENERAL_NAME *targetName; + OSSL_OBJECT_DIGEST_INFO *certDigestInfo; +}; + +typedef struct TARGET_CERT_st OSSL_TARGET_CERT; + +# define OSSL_TGT_TARGET_NAME 0 +# define OSSL_TGT_TARGET_GROUP 1 +# define OSSL_TGT_TARGET_CERT 2 + +typedef struct TARGET_st { + int type; + union { + GENERAL_NAME *targetName; + GENERAL_NAME *targetGroup; + OSSL_TARGET_CERT *targetCert; + } choice; +} OSSL_TARGET; + +typedef STACK_OF(OSSL_TARGET) OSSL_TARGETS; +typedef STACK_OF(OSSL_TARGETS) OSSL_TARGETING_INFORMATION; + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_TARGET, OSSL_TARGET, OSSL_TARGET) +#define sk_OSSL_TARGET_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_value(sk, idx) ((OSSL_TARGET *)OPENSSL_sk_value(ossl_check_const_OSSL_TARGET_sk_type(sk), (idx))) +#define sk_OSSL_TARGET_new(cmp) ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_new(ossl_check_OSSL_TARGET_compfunc_type(cmp))) +#define sk_OSSL_TARGET_new_null() ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_new_null()) +#define sk_OSSL_TARGET_new_reserve(cmp, n) ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_TARGET_compfunc_type(cmp), (n))) +#define sk_OSSL_TARGET_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_TARGET_sk_type(sk), (n)) +#define sk_OSSL_TARGET_free(sk) OPENSSL_sk_free(ossl_check_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_delete(sk, i) ((OSSL_TARGET *)OPENSSL_sk_delete(ossl_check_OSSL_TARGET_sk_type(sk), (i))) +#define sk_OSSL_TARGET_delete_ptr(sk, ptr) ((OSSL_TARGET *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr))) +#define sk_OSSL_TARGET_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr)) +#define sk_OSSL_TARGET_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr)) +#define sk_OSSL_TARGET_pop(sk) ((OSSL_TARGET *)OPENSSL_sk_pop(ossl_check_OSSL_TARGET_sk_type(sk))) +#define sk_OSSL_TARGET_shift(sk) ((OSSL_TARGET *)OPENSSL_sk_shift(ossl_check_OSSL_TARGET_sk_type(sk))) +#define sk_OSSL_TARGET_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_TARGET_sk_type(sk),ossl_check_OSSL_TARGET_freefunc_type(freefunc)) +#define sk_OSSL_TARGET_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr), (idx)) +#define sk_OSSL_TARGET_set(sk, idx, ptr) ((OSSL_TARGET *)OPENSSL_sk_set(ossl_check_OSSL_TARGET_sk_type(sk), (idx), ossl_check_OSSL_TARGET_type(ptr))) +#define sk_OSSL_TARGET_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr)) +#define sk_OSSL_TARGET_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr)) +#define sk_OSSL_TARGET_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr), pnum) +#define sk_OSSL_TARGET_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_dup(sk) ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_dup(ossl_check_const_OSSL_TARGET_sk_type(sk))) +#define sk_OSSL_TARGET_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_copyfunc_type(copyfunc), ossl_check_OSSL_TARGET_freefunc_type(freefunc))) +#define sk_OSSL_TARGET_set_cmp_func(sk, cmp) ((sk_OSSL_TARGET_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_compfunc_type(cmp))) + + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_TARGETS, OSSL_TARGETS, OSSL_TARGETS) +#define sk_OSSL_TARGETS_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_value(sk, idx) ((OSSL_TARGETS *)OPENSSL_sk_value(ossl_check_const_OSSL_TARGETS_sk_type(sk), (idx))) +#define sk_OSSL_TARGETS_new(cmp) ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_new(ossl_check_OSSL_TARGETS_compfunc_type(cmp))) +#define sk_OSSL_TARGETS_new_null() ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_new_null()) +#define sk_OSSL_TARGETS_new_reserve(cmp, n) ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_TARGETS_compfunc_type(cmp), (n))) +#define sk_OSSL_TARGETS_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_TARGETS_sk_type(sk), (n)) +#define sk_OSSL_TARGETS_free(sk) OPENSSL_sk_free(ossl_check_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_delete(sk, i) ((OSSL_TARGETS *)OPENSSL_sk_delete(ossl_check_OSSL_TARGETS_sk_type(sk), (i))) +#define sk_OSSL_TARGETS_delete_ptr(sk, ptr) ((OSSL_TARGETS *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr))) +#define sk_OSSL_TARGETS_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr)) +#define sk_OSSL_TARGETS_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr)) +#define sk_OSSL_TARGETS_pop(sk) ((OSSL_TARGETS *)OPENSSL_sk_pop(ossl_check_OSSL_TARGETS_sk_type(sk))) +#define sk_OSSL_TARGETS_shift(sk) ((OSSL_TARGETS *)OPENSSL_sk_shift(ossl_check_OSSL_TARGETS_sk_type(sk))) +#define sk_OSSL_TARGETS_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_TARGETS_sk_type(sk),ossl_check_OSSL_TARGETS_freefunc_type(freefunc)) +#define sk_OSSL_TARGETS_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr), (idx)) +#define sk_OSSL_TARGETS_set(sk, idx, ptr) ((OSSL_TARGETS *)OPENSSL_sk_set(ossl_check_OSSL_TARGETS_sk_type(sk), (idx), ossl_check_OSSL_TARGETS_type(ptr))) +#define sk_OSSL_TARGETS_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr)) +#define sk_OSSL_TARGETS_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr)) +#define sk_OSSL_TARGETS_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr), pnum) +#define sk_OSSL_TARGETS_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_dup(sk) ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_dup(ossl_check_const_OSSL_TARGETS_sk_type(sk))) +#define sk_OSSL_TARGETS_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_copyfunc_type(copyfunc), ossl_check_OSSL_TARGETS_freefunc_type(freefunc))) +#define sk_OSSL_TARGETS_set_cmp_func(sk, cmp) ((sk_OSSL_TARGETS_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_compfunc_type(cmp))) + + +DECLARE_ASN1_FUNCTIONS(OSSL_TARGET) +DECLARE_ASN1_FUNCTIONS(OSSL_TARGETS) +DECLARE_ASN1_FUNCTIONS(OSSL_TARGETING_INFORMATION) + +typedef STACK_OF(OSSL_ISSUER_SERIAL) OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX; +DECLARE_ASN1_FUNCTIONS(OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ISSUER_SERIAL, OSSL_ISSUER_SERIAL, OSSL_ISSUER_SERIAL) +#define sk_OSSL_ISSUER_SERIAL_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_value(sk, idx) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_value(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk), (idx))) +#define sk_OSSL_ISSUER_SERIAL_new(cmp) ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_new(ossl_check_OSSL_ISSUER_SERIAL_compfunc_type(cmp))) +#define sk_OSSL_ISSUER_SERIAL_new_null() ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ISSUER_SERIAL_new_reserve(cmp, n) ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ISSUER_SERIAL_compfunc_type(cmp), (n))) +#define sk_OSSL_ISSUER_SERIAL_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), (n)) +#define sk_OSSL_ISSUER_SERIAL_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_delete(sk, i) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_delete(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), (i))) +#define sk_OSSL_ISSUER_SERIAL_delete_ptr(sk, ptr) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr))) +#define sk_OSSL_ISSUER_SERIAL_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr)) +#define sk_OSSL_ISSUER_SERIAL_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr)) +#define sk_OSSL_ISSUER_SERIAL_pop(sk) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_pop(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk))) +#define sk_OSSL_ISSUER_SERIAL_shift(sk) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_shift(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk))) +#define sk_OSSL_ISSUER_SERIAL_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk),ossl_check_OSSL_ISSUER_SERIAL_freefunc_type(freefunc)) +#define sk_OSSL_ISSUER_SERIAL_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr), (idx)) +#define sk_OSSL_ISSUER_SERIAL_set(sk, idx, ptr) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_set(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), (idx), ossl_check_OSSL_ISSUER_SERIAL_type(ptr))) +#define sk_OSSL_ISSUER_SERIAL_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr)) +#define sk_OSSL_ISSUER_SERIAL_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr)) +#define sk_OSSL_ISSUER_SERIAL_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr), pnum) +#define sk_OSSL_ISSUER_SERIAL_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_dup(sk) ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk))) +#define sk_OSSL_ISSUER_SERIAL_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_copyfunc_type(copyfunc), ossl_check_OSSL_ISSUER_SERIAL_freefunc_type(freefunc))) +#define sk_OSSL_ISSUER_SERIAL_set_cmp_func(sk, cmp) ((sk_OSSL_ISSUER_SERIAL_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_compfunc_type(cmp))) + + +#endif diff --git a/deps/openssl/config/archs/VC-WIN64A/asm_avx2/include/openssl/x509_vfy.h b/deps/openssl/config/archs/VC-WIN64A/asm_avx2/include/openssl/x509_vfy.h index f571187265cfc9..f08a134b17b7db 100644 --- a/deps/openssl/config/archs/VC-WIN64A/asm_avx2/include/openssl/x509_vfy.h +++ b/deps/openssl/config/archs/VC-WIN64A/asm_avx2/include/openssl/x509_vfy.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by makefile from include/openssl/x509_vfy.h.in * - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -411,6 +411,7 @@ X509_LOOKUP_ctrl_ex((x), X509_L_ADD_STORE, (name), 0, NULL, \ # define X509_V_ERR_CA_CERT_MISSING_KEY_USAGE 92 # define X509_V_ERR_EXTENSIONS_REQUIRE_VERSION_3 93 # define X509_V_ERR_EC_KEY_EXPLICIT_PARAMS 94 +# define X509_V_ERR_RPK_UNTRUSTED 95 /* Certificate verify flags */ # ifndef OPENSSL_NO_DEPRECATED_1_1_0 @@ -491,71 +492,72 @@ int X509_OBJECT_set1_X509(X509_OBJECT *a, X509 *obj); X509_CRL *X509_OBJECT_get0_X509_CRL(const X509_OBJECT *a); int X509_OBJECT_set1_X509_CRL(X509_OBJECT *a, X509_CRL *obj); X509_STORE *X509_STORE_new(void); -void X509_STORE_free(X509_STORE *v); -int X509_STORE_lock(X509_STORE *ctx); -int X509_STORE_unlock(X509_STORE *ctx); -int X509_STORE_up_ref(X509_STORE *v); -STACK_OF(X509_OBJECT) *X509_STORE_get0_objects(const X509_STORE *v); -STACK_OF(X509) *X509_STORE_get1_all_certs(X509_STORE *st); -STACK_OF(X509) *X509_STORE_CTX_get1_certs(X509_STORE_CTX *st, +void X509_STORE_free(X509_STORE *xs); +int X509_STORE_lock(X509_STORE *xs); +int X509_STORE_unlock(X509_STORE *xs); +int X509_STORE_up_ref(X509_STORE *xs); +STACK_OF(X509_OBJECT) *X509_STORE_get0_objects(const X509_STORE *xs); +STACK_OF(X509_OBJECT) *X509_STORE_get1_objects(X509_STORE *xs); +STACK_OF(X509) *X509_STORE_get1_all_certs(X509_STORE *xs); +STACK_OF(X509) *X509_STORE_CTX_get1_certs(X509_STORE_CTX *xs, const X509_NAME *nm); STACK_OF(X509_CRL) *X509_STORE_CTX_get1_crls(const X509_STORE_CTX *st, const X509_NAME *nm); -int X509_STORE_set_flags(X509_STORE *ctx, unsigned long flags); -int X509_STORE_set_purpose(X509_STORE *ctx, int purpose); -int X509_STORE_set_trust(X509_STORE *ctx, int trust); -int X509_STORE_set1_param(X509_STORE *ctx, const X509_VERIFY_PARAM *pm); -X509_VERIFY_PARAM *X509_STORE_get0_param(const X509_STORE *ctx); +int X509_STORE_set_flags(X509_STORE *xs, unsigned long flags); +int X509_STORE_set_purpose(X509_STORE *xs, int purpose); +int X509_STORE_set_trust(X509_STORE *xs, int trust); +int X509_STORE_set1_param(X509_STORE *xs, const X509_VERIFY_PARAM *pm); +X509_VERIFY_PARAM *X509_STORE_get0_param(const X509_STORE *xs); -void X509_STORE_set_verify(X509_STORE *ctx, X509_STORE_CTX_verify_fn verify); +void X509_STORE_set_verify(X509_STORE *xs, X509_STORE_CTX_verify_fn verify); #define X509_STORE_set_verify_func(ctx, func) \ X509_STORE_set_verify((ctx),(func)) void X509_STORE_CTX_set_verify(X509_STORE_CTX *ctx, X509_STORE_CTX_verify_fn verify); -X509_STORE_CTX_verify_fn X509_STORE_get_verify(const X509_STORE *ctx); -void X509_STORE_set_verify_cb(X509_STORE *ctx, +X509_STORE_CTX_verify_fn X509_STORE_get_verify(const X509_STORE *xs); +void X509_STORE_set_verify_cb(X509_STORE *xs, X509_STORE_CTX_verify_cb verify_cb); # define X509_STORE_set_verify_cb_func(ctx,func) \ X509_STORE_set_verify_cb((ctx),(func)) -X509_STORE_CTX_verify_cb X509_STORE_get_verify_cb(const X509_STORE *ctx); -void X509_STORE_set_get_issuer(X509_STORE *ctx, +X509_STORE_CTX_verify_cb X509_STORE_get_verify_cb(const X509_STORE *xs); +void X509_STORE_set_get_issuer(X509_STORE *xs, X509_STORE_CTX_get_issuer_fn get_issuer); -X509_STORE_CTX_get_issuer_fn X509_STORE_get_get_issuer(const X509_STORE *ctx); -void X509_STORE_set_check_issued(X509_STORE *ctx, +X509_STORE_CTX_get_issuer_fn X509_STORE_get_get_issuer(const X509_STORE *xs); +void X509_STORE_set_check_issued(X509_STORE *xs, X509_STORE_CTX_check_issued_fn check_issued); -X509_STORE_CTX_check_issued_fn X509_STORE_get_check_issued(const X509_STORE *ctx); -void X509_STORE_set_check_revocation(X509_STORE *ctx, +X509_STORE_CTX_check_issued_fn X509_STORE_get_check_issued(const X509_STORE *s); +void X509_STORE_set_check_revocation(X509_STORE *xs, X509_STORE_CTX_check_revocation_fn check_revocation); X509_STORE_CTX_check_revocation_fn - X509_STORE_get_check_revocation(const X509_STORE *ctx); -void X509_STORE_set_get_crl(X509_STORE *ctx, + X509_STORE_get_check_revocation(const X509_STORE *xs); +void X509_STORE_set_get_crl(X509_STORE *xs, X509_STORE_CTX_get_crl_fn get_crl); -X509_STORE_CTX_get_crl_fn X509_STORE_get_get_crl(const X509_STORE *ctx); -void X509_STORE_set_check_crl(X509_STORE *ctx, +X509_STORE_CTX_get_crl_fn X509_STORE_get_get_crl(const X509_STORE *xs); +void X509_STORE_set_check_crl(X509_STORE *xs, X509_STORE_CTX_check_crl_fn check_crl); -X509_STORE_CTX_check_crl_fn X509_STORE_get_check_crl(const X509_STORE *ctx); -void X509_STORE_set_cert_crl(X509_STORE *ctx, +X509_STORE_CTX_check_crl_fn X509_STORE_get_check_crl(const X509_STORE *xs); +void X509_STORE_set_cert_crl(X509_STORE *xs, X509_STORE_CTX_cert_crl_fn cert_crl); -X509_STORE_CTX_cert_crl_fn X509_STORE_get_cert_crl(const X509_STORE *ctx); -void X509_STORE_set_check_policy(X509_STORE *ctx, +X509_STORE_CTX_cert_crl_fn X509_STORE_get_cert_crl(const X509_STORE *xs); +void X509_STORE_set_check_policy(X509_STORE *xs, X509_STORE_CTX_check_policy_fn check_policy); -X509_STORE_CTX_check_policy_fn X509_STORE_get_check_policy(const X509_STORE *ctx); -void X509_STORE_set_lookup_certs(X509_STORE *ctx, +X509_STORE_CTX_check_policy_fn X509_STORE_get_check_policy(const X509_STORE *s); +void X509_STORE_set_lookup_certs(X509_STORE *xs, X509_STORE_CTX_lookup_certs_fn lookup_certs); -X509_STORE_CTX_lookup_certs_fn X509_STORE_get_lookup_certs(const X509_STORE *ctx); -void X509_STORE_set_lookup_crls(X509_STORE *ctx, +X509_STORE_CTX_lookup_certs_fn X509_STORE_get_lookup_certs(const X509_STORE *s); +void X509_STORE_set_lookup_crls(X509_STORE *xs, X509_STORE_CTX_lookup_crls_fn lookup_crls); #define X509_STORE_set_lookup_crls_cb(ctx, func) \ X509_STORE_set_lookup_crls((ctx), (func)) -X509_STORE_CTX_lookup_crls_fn X509_STORE_get_lookup_crls(const X509_STORE *ctx); -void X509_STORE_set_cleanup(X509_STORE *ctx, +X509_STORE_CTX_lookup_crls_fn X509_STORE_get_lookup_crls(const X509_STORE *xs); +void X509_STORE_set_cleanup(X509_STORE *xs, X509_STORE_CTX_cleanup_fn cleanup); -X509_STORE_CTX_cleanup_fn X509_STORE_get_cleanup(const X509_STORE *ctx); +X509_STORE_CTX_cleanup_fn X509_STORE_get_cleanup(const X509_STORE *xs); #define X509_STORE_get_ex_new_index(l, p, newf, dupf, freef) \ CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_X509_STORE, l, p, newf, dupf, freef) -int X509_STORE_set_ex_data(X509_STORE *ctx, int idx, void *data); -void *X509_STORE_get_ex_data(const X509_STORE *ctx, int idx); +int X509_STORE_set_ex_data(X509_STORE *xs, int idx, void *data); +void *X509_STORE_get_ex_data(const X509_STORE *xs, int idx); X509_STORE_CTX *X509_STORE_CTX_new_ex(OSSL_LIB_CTX *libctx, const char *propq); X509_STORE_CTX *X509_STORE_CTX_new(void); @@ -565,11 +567,14 @@ int X509_STORE_CTX_get1_issuer(X509 **issuer, X509_STORE_CTX *ctx, X509 *x); void X509_STORE_CTX_free(X509_STORE_CTX *ctx); int X509_STORE_CTX_init(X509_STORE_CTX *ctx, X509_STORE *trust_store, X509 *target, STACK_OF(X509) *untrusted); +int X509_STORE_CTX_init_rpk(X509_STORE_CTX *ctx, X509_STORE *trust_store, + EVP_PKEY* rpk); void X509_STORE_CTX_set0_trusted_stack(X509_STORE_CTX *ctx, STACK_OF(X509) *sk); void X509_STORE_CTX_cleanup(X509_STORE_CTX *ctx); X509_STORE *X509_STORE_CTX_get0_store(const X509_STORE_CTX *ctx); X509 *X509_STORE_CTX_get0_cert(const X509_STORE_CTX *ctx); +EVP_PKEY *X509_STORE_CTX_get0_rpk(const X509_STORE_CTX *ctx); STACK_OF(X509)* X509_STORE_CTX_get0_untrusted(const X509_STORE_CTX *ctx); void X509_STORE_CTX_set0_untrusted(X509_STORE_CTX *ctx, STACK_OF(X509) *sk); void X509_STORE_CTX_set_verify_cb(X509_STORE_CTX *ctx, @@ -579,6 +584,8 @@ X509_STORE_CTX_verify_fn X509_STORE_CTX_get_verify(const X509_STORE_CTX *ctx); X509_STORE_CTX_get_issuer_fn X509_STORE_CTX_get_get_issuer(const X509_STORE_CTX *ctx); X509_STORE_CTX_check_issued_fn X509_STORE_CTX_get_check_issued(const X509_STORE_CTX *ctx); X509_STORE_CTX_check_revocation_fn X509_STORE_CTX_get_check_revocation(const X509_STORE_CTX *ctx); +void X509_STORE_CTX_set_get_crl(X509_STORE_CTX *ctx, + X509_STORE_CTX_get_crl_fn get_crl); X509_STORE_CTX_get_crl_fn X509_STORE_CTX_get_get_crl(const X509_STORE_CTX *ctx); X509_STORE_CTX_check_crl_fn X509_STORE_CTX_get_check_crl(const X509_STORE_CTX *ctx); X509_STORE_CTX_cert_crl_fn X509_STORE_CTX_get_cert_crl(const X509_STORE_CTX *ctx); @@ -600,7 +607,7 @@ X509_STORE_CTX_cleanup_fn X509_STORE_CTX_get_cleanup(const X509_STORE_CTX *ctx); # define X509_STORE_get1_crl X509_STORE_CTX_get1_crls #endif -X509_LOOKUP *X509_STORE_add_lookup(X509_STORE *v, X509_LOOKUP_METHOD *m); +X509_LOOKUP *X509_STORE_add_lookup(X509_STORE *xs, X509_LOOKUP_METHOD *m); X509_LOOKUP_METHOD *X509_LOOKUP_hash_dir(void); X509_LOOKUP_METHOD *X509_LOOKUP_file(void); X509_LOOKUP_METHOD *X509_LOOKUP_store(void); @@ -685,8 +692,8 @@ X509_LOOKUP_get_by_alias_fn X509_LOOKUP_meth_get_get_by_alias( const X509_LOOKUP_METHOD *method); -int X509_STORE_add_cert(X509_STORE *ctx, X509 *x); -int X509_STORE_add_crl(X509_STORE *ctx, X509_CRL *x); +int X509_STORE_add_cert(X509_STORE *xs, X509 *x); +int X509_STORE_add_crl(X509_STORE *xs, X509_CRL *x); int X509_STORE_CTX_get_by_subject(const X509_STORE_CTX *vs, X509_LOOKUP_TYPE type, @@ -730,23 +737,21 @@ void *X509_LOOKUP_get_method_data(const X509_LOOKUP *ctx); X509_STORE *X509_LOOKUP_get_store(const X509_LOOKUP *ctx); int X509_LOOKUP_shutdown(X509_LOOKUP *ctx); -int X509_STORE_load_file(X509_STORE *ctx, const char *file); -int X509_STORE_load_path(X509_STORE *ctx, const char *path); -int X509_STORE_load_store(X509_STORE *ctx, const char *store); -int X509_STORE_load_locations(X509_STORE *ctx, - const char *file, - const char *dir); -int X509_STORE_set_default_paths(X509_STORE *ctx); +int X509_STORE_load_file(X509_STORE *xs, const char *file); +int X509_STORE_load_path(X509_STORE *xs, const char *path); +int X509_STORE_load_store(X509_STORE *xs, const char *store); +int X509_STORE_load_locations(X509_STORE *s, const char *file, const char *dir); +int X509_STORE_set_default_paths(X509_STORE *xs); -int X509_STORE_load_file_ex(X509_STORE *ctx, const char *file, +int X509_STORE_load_file_ex(X509_STORE *xs, const char *file, OSSL_LIB_CTX *libctx, const char *propq); -int X509_STORE_load_store_ex(X509_STORE *ctx, const char *store, +int X509_STORE_load_store_ex(X509_STORE *xs, const char *store, OSSL_LIB_CTX *libctx, const char *propq); -int X509_STORE_load_locations_ex(X509_STORE *ctx, const char *file, - const char *dir, OSSL_LIB_CTX *libctx, - const char *propq); -int X509_STORE_set_default_paths_ex(X509_STORE *ctx, OSSL_LIB_CTX *libctx, - const char *propq); +int X509_STORE_load_locations_ex(X509_STORE *xs, + const char *file, const char *dir, + OSSL_LIB_CTX *libctx, const char *propq); +int X509_STORE_set_default_paths_ex(X509_STORE *xs, + OSSL_LIB_CTX *libctx, const char *propq); #define X509_STORE_CTX_get_ex_new_index(l, p, newf, dupf, freef) \ CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_X509_STORE_CTX, l, p, newf, dupf, freef) @@ -764,6 +769,7 @@ X509_STORE_CTX *X509_STORE_CTX_get0_parent_ctx(const X509_STORE_CTX *ctx); STACK_OF(X509) *X509_STORE_CTX_get0_chain(const X509_STORE_CTX *ctx); STACK_OF(X509) *X509_STORE_CTX_get1_chain(const X509_STORE_CTX *ctx); void X509_STORE_CTX_set_cert(X509_STORE_CTX *ctx, X509 *target); +void X509_STORE_CTX_set0_rpk(X509_STORE_CTX *ctx, EVP_PKEY *target); void X509_STORE_CTX_set0_verified_chain(X509_STORE_CTX *c, STACK_OF(X509) *sk); void X509_STORE_CTX_set0_crls(X509_STORE_CTX *ctx, STACK_OF(X509_CRL) *sk); int X509_STORE_CTX_set_purpose(X509_STORE_CTX *ctx, int purpose); @@ -773,6 +779,8 @@ int X509_STORE_CTX_purpose_inherit(X509_STORE_CTX *ctx, int def_purpose, void X509_STORE_CTX_set_flags(X509_STORE_CTX *ctx, unsigned long flags); void X509_STORE_CTX_set_time(X509_STORE_CTX *ctx, unsigned long flags, time_t t); +void X509_STORE_CTX_set_current_reasons(X509_STORE_CTX *ctx, + unsigned int current_reasons); X509_POLICY_TREE *X509_STORE_CTX_get0_policy_tree(const X509_STORE_CTX *ctx); int X509_STORE_CTX_get_explicit_policy(const X509_STORE_CTX *ctx); @@ -804,6 +812,7 @@ int X509_VERIFY_PARAM_clear_flags(X509_VERIFY_PARAM *param, unsigned long flags); unsigned long X509_VERIFY_PARAM_get_flags(const X509_VERIFY_PARAM *param); int X509_VERIFY_PARAM_set_purpose(X509_VERIFY_PARAM *param, int purpose); +int X509_VERIFY_PARAM_get_purpose(const X509_VERIFY_PARAM *param); int X509_VERIFY_PARAM_set_trust(X509_VERIFY_PARAM *param, int trust); void X509_VERIFY_PARAM_set_depth(X509_VERIFY_PARAM *param, int depth); void X509_VERIFY_PARAM_set_auth_level(X509_VERIFY_PARAM *param, int auth_level); diff --git a/deps/openssl/config/archs/VC-WIN64A/asm_avx2/include/openssl/x509v3.h b/deps/openssl/config/archs/VC-WIN64A/asm_avx2/include/openssl/x509v3.h index ed08a546f9813d..362ce3fb4387f7 100644 --- a/deps/openssl/config/archs/VC-WIN64A/asm_avx2/include/openssl/x509v3.h +++ b/deps/openssl/config/archs/VC-WIN64A/asm_avx2/include/openssl/x509v3.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by makefile from include/openssl/x509v3.h.in * - * Copyright 1999-2023 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1999-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -25,6 +25,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -146,6 +149,11 @@ typedef struct BASIC_CONSTRAINTS_st { ASN1_INTEGER *pathlen; } BASIC_CONSTRAINTS; +typedef struct OSSL_BASIC_ATTR_CONSTRAINTS_st { + int authority; + ASN1_INTEGER *pathlen; +} OSSL_BASIC_ATTR_CONSTRAINTS; + typedef struct PKEY_USAGE_PERIOD_st { ASN1_GENERALIZEDTIME *notBefore; ASN1_GENERALIZEDTIME *notAfter; @@ -198,6 +206,8 @@ typedef struct ACCESS_DESCRIPTION_st { GENERAL_NAME *location; } ACCESS_DESCRIPTION; +int GENERAL_NAME_set1_X509_NAME(GENERAL_NAME **tgt, const X509_NAME *src); + SKM_DEFINE_STACK_OF_INTERNAL(ACCESS_DESCRIPTION, ACCESS_DESCRIPTION, ACCESS_DESCRIPTION) #define sk_ACCESS_DESCRIPTION_num(sk) OPENSSL_sk_num(ossl_check_const_ACCESS_DESCRIPTION_sk_type(sk)) #define sk_ACCESS_DESCRIPTION_value(sk, idx) ((ACCESS_DESCRIPTION *)OPENSSL_sk_value(ossl_check_const_ACCESS_DESCRIPTION_sk_type(sk), (idx))) @@ -294,6 +304,7 @@ typedef struct DIST_POINT_NAME_st { /* If relativename then this contains the full distribution point name */ X509_NAME *dpname; } DIST_POINT_NAME; +DECLARE_ASN1_DUP_FUNCTION(DIST_POINT_NAME) /* All existing reasons */ # define CRLDP_ALL_REASONS 0x807f @@ -659,15 +670,16 @@ struct ISSUING_DIST_POINT_st { # define EXFLAG_SAN_CRITICAL 0x80000 # define EXFLAG_NO_FINGERPRINT 0x100000 -# define KU_DIGITAL_SIGNATURE 0x0080 -# define KU_NON_REPUDIATION 0x0040 -# define KU_KEY_ENCIPHERMENT 0x0020 -# define KU_DATA_ENCIPHERMENT 0x0010 -# define KU_KEY_AGREEMENT 0x0008 -# define KU_KEY_CERT_SIGN 0x0004 -# define KU_CRL_SIGN 0x0002 -# define KU_ENCIPHER_ONLY 0x0001 -# define KU_DECIPHER_ONLY 0x8000 +/* https://datatracker.ietf.org/doc/html/rfc5280#section-4.2.1.3 */ +# define KU_DIGITAL_SIGNATURE X509v3_KU_DIGITAL_SIGNATURE +# define KU_NON_REPUDIATION X509v3_KU_NON_REPUDIATION +# define KU_KEY_ENCIPHERMENT X509v3_KU_KEY_ENCIPHERMENT +# define KU_DATA_ENCIPHERMENT X509v3_KU_DATA_ENCIPHERMENT +# define KU_KEY_AGREEMENT X509v3_KU_KEY_AGREEMENT +# define KU_KEY_CERT_SIGN X509v3_KU_KEY_CERT_SIGN +# define KU_CRL_SIGN X509v3_KU_CRL_SIGN +# define KU_ENCIPHER_ONLY X509v3_KU_ENCIPHER_ONLY +# define KU_DECIPHER_ONLY X509v3_KU_DECIPHER_ONLY # define NS_SSL_CLIENT 0x80 # define NS_SSL_SERVER 0x40 @@ -729,7 +741,7 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_PURPOSE, X509_PURPOSE, X509_PURPOSE) #define sk_X509_PURPOSE_set_cmp_func(sk, cmp) ((sk_X509_PURPOSE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_X509_PURPOSE_sk_type(sk), ossl_check_X509_PURPOSE_compfunc_type(cmp))) - +# define X509_PURPOSE_DEFAULT_ANY 0 # define X509_PURPOSE_SSL_CLIENT 1 # define X509_PURPOSE_SSL_SERVER 2 # define X509_PURPOSE_NS_SSL_SERVER 3 @@ -739,9 +751,10 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_PURPOSE, X509_PURPOSE, X509_PURPOSE) # define X509_PURPOSE_ANY 7 # define X509_PURPOSE_OCSP_HELPER 8 # define X509_PURPOSE_TIMESTAMP_SIGN 9 +# define X509_PURPOSE_CODE_SIGN 10 # define X509_PURPOSE_MIN 1 -# define X509_PURPOSE_MAX 9 +# define X509_PURPOSE_MAX 10 /* Flags for X509V3_EXT_print() */ @@ -767,6 +780,7 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_PURPOSE, X509_PURPOSE, X509_PURPOSE) # define X509V3_ADD_SILENT 0x10 DECLARE_ASN1_FUNCTIONS(BASIC_CONSTRAINTS) +DECLARE_ASN1_FUNCTIONS(OSSL_BASIC_ATTR_CONSTRAINTS) DECLARE_ASN1_FUNCTIONS(SXNET) DECLARE_ASN1_FUNCTIONS(SXNETID) @@ -976,7 +990,6 @@ int X509V3_extensions_print(BIO *out, const char *title, int X509_check_ca(X509 *x); int X509_check_purpose(X509 *x, int id, int ca); int X509_supported_extension(X509_EXTENSION *ex); -int X509_PURPOSE_set(int *p, int purpose); int X509_check_issued(X509 *issuer, X509 *subject); int X509_check_akid(const X509 *issuer, const AUTHORITY_KEYID *akid); void X509_set_proxy_flag(X509 *x); @@ -992,22 +1005,26 @@ const GENERAL_NAMES *X509_get0_authority_issuer(X509 *x); const ASN1_INTEGER *X509_get0_authority_serial(X509 *x); int X509_PURPOSE_get_count(void); -X509_PURPOSE *X509_PURPOSE_get0(int idx); +int X509_PURPOSE_get_unused_id(OSSL_LIB_CTX *libctx); int X509_PURPOSE_get_by_sname(const char *sname); int X509_PURPOSE_get_by_id(int id); int X509_PURPOSE_add(int id, int trust, int flags, int (*ck) (const X509_PURPOSE *, const X509 *, int), const char *name, const char *sname, void *arg); +void X509_PURPOSE_cleanup(void); + +X509_PURPOSE *X509_PURPOSE_get0(int idx); +int X509_PURPOSE_get_id(const X509_PURPOSE *); char *X509_PURPOSE_get0_name(const X509_PURPOSE *xp); char *X509_PURPOSE_get0_sname(const X509_PURPOSE *xp); int X509_PURPOSE_get_trust(const X509_PURPOSE *xp); -void X509_PURPOSE_cleanup(void); -int X509_PURPOSE_get_id(const X509_PURPOSE *); +int X509_PURPOSE_set(int *p, int purpose); STACK_OF(OPENSSL_STRING) *X509_get1_email(X509 *x); STACK_OF(OPENSSL_STRING) *X509_REQ_get1_email(X509_REQ *x); void X509_email_free(STACK_OF(OPENSSL_STRING) *sk); STACK_OF(OPENSSL_STRING) *X509_get1_ocsp(X509 *x); + /* Flags for X509_check_* functions */ /* @@ -1444,6 +1461,507 @@ const ASN1_PRINTABLESTRING *PROFESSION_INFO_get0_registrationNumber( void PROFESSION_INFO_set0_registrationNumber( PROFESSION_INFO *pi, ASN1_PRINTABLESTRING *rn); +int OSSL_GENERAL_NAMES_print(BIO *out, GENERAL_NAMES *gens, int indent); + +typedef STACK_OF(X509_ATTRIBUTE) OSSL_ATTRIBUTES_SYNTAX; +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTES_SYNTAX) + +typedef STACK_OF(USERNOTICE) OSSL_USER_NOTICE_SYNTAX; +DECLARE_ASN1_FUNCTIONS(OSSL_USER_NOTICE_SYNTAX) + +SKM_DEFINE_STACK_OF_INTERNAL(USERNOTICE, USERNOTICE, USERNOTICE) +#define sk_USERNOTICE_num(sk) OPENSSL_sk_num(ossl_check_const_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_value(sk, idx) ((USERNOTICE *)OPENSSL_sk_value(ossl_check_const_USERNOTICE_sk_type(sk), (idx))) +#define sk_USERNOTICE_new(cmp) ((STACK_OF(USERNOTICE) *)OPENSSL_sk_new(ossl_check_USERNOTICE_compfunc_type(cmp))) +#define sk_USERNOTICE_new_null() ((STACK_OF(USERNOTICE) *)OPENSSL_sk_new_null()) +#define sk_USERNOTICE_new_reserve(cmp, n) ((STACK_OF(USERNOTICE) *)OPENSSL_sk_new_reserve(ossl_check_USERNOTICE_compfunc_type(cmp), (n))) +#define sk_USERNOTICE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_USERNOTICE_sk_type(sk), (n)) +#define sk_USERNOTICE_free(sk) OPENSSL_sk_free(ossl_check_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_zero(sk) OPENSSL_sk_zero(ossl_check_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_delete(sk, i) ((USERNOTICE *)OPENSSL_sk_delete(ossl_check_USERNOTICE_sk_type(sk), (i))) +#define sk_USERNOTICE_delete_ptr(sk, ptr) ((USERNOTICE *)OPENSSL_sk_delete_ptr(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr))) +#define sk_USERNOTICE_push(sk, ptr) OPENSSL_sk_push(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr)) +#define sk_USERNOTICE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr)) +#define sk_USERNOTICE_pop(sk) ((USERNOTICE *)OPENSSL_sk_pop(ossl_check_USERNOTICE_sk_type(sk))) +#define sk_USERNOTICE_shift(sk) ((USERNOTICE *)OPENSSL_sk_shift(ossl_check_USERNOTICE_sk_type(sk))) +#define sk_USERNOTICE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_USERNOTICE_sk_type(sk),ossl_check_USERNOTICE_freefunc_type(freefunc)) +#define sk_USERNOTICE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr), (idx)) +#define sk_USERNOTICE_set(sk, idx, ptr) ((USERNOTICE *)OPENSSL_sk_set(ossl_check_USERNOTICE_sk_type(sk), (idx), ossl_check_USERNOTICE_type(ptr))) +#define sk_USERNOTICE_find(sk, ptr) OPENSSL_sk_find(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr)) +#define sk_USERNOTICE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr)) +#define sk_USERNOTICE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr), pnum) +#define sk_USERNOTICE_sort(sk) OPENSSL_sk_sort(ossl_check_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_dup(sk) ((STACK_OF(USERNOTICE) *)OPENSSL_sk_dup(ossl_check_const_USERNOTICE_sk_type(sk))) +#define sk_USERNOTICE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(USERNOTICE) *)OPENSSL_sk_deep_copy(ossl_check_const_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_copyfunc_type(copyfunc), ossl_check_USERNOTICE_freefunc_type(freefunc))) +#define sk_USERNOTICE_set_cmp_func(sk, cmp) ((sk_USERNOTICE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_compfunc_type(cmp))) + + +typedef struct OSSL_ROLE_SPEC_CERT_ID_st { + GENERAL_NAME *roleName; + GENERAL_NAME *roleCertIssuer; + ASN1_INTEGER *roleCertSerialNumber; + GENERAL_NAMES *roleCertLocator; +} OSSL_ROLE_SPEC_CERT_ID; + +DECLARE_ASN1_FUNCTIONS(OSSL_ROLE_SPEC_CERT_ID) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ROLE_SPEC_CERT_ID, OSSL_ROLE_SPEC_CERT_ID, OSSL_ROLE_SPEC_CERT_ID) +#define sk_OSSL_ROLE_SPEC_CERT_ID_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_value(sk, idx) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_value(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), (idx))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_new(cmp) ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_new(ossl_check_OSSL_ROLE_SPEC_CERT_ID_compfunc_type(cmp))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_new_null() ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ROLE_SPEC_CERT_ID_new_reserve(cmp, n) ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ROLE_SPEC_CERT_ID_compfunc_type(cmp), (n))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), (n)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_delete(sk, i) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_delete(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), (i))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_delete_ptr(sk, ptr) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_pop(sk) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_pop(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_shift(sk) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_shift(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk),ossl_check_OSSL_ROLE_SPEC_CERT_ID_freefunc_type(freefunc)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr), (idx)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_set(sk, idx, ptr) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_set(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), (idx), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr), pnum) +#define sk_OSSL_ROLE_SPEC_CERT_ID_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_dup(sk) ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_copyfunc_type(copyfunc), ossl_check_OSSL_ROLE_SPEC_CERT_ID_freefunc_type(freefunc))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_set_cmp_func(sk, cmp) ((sk_OSSL_ROLE_SPEC_CERT_ID_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_compfunc_type(cmp))) + + +typedef STACK_OF(OSSL_ROLE_SPEC_CERT_ID) OSSL_ROLE_SPEC_CERT_ID_SYNTAX; + +DECLARE_ASN1_FUNCTIONS(OSSL_ROLE_SPEC_CERT_ID_SYNTAX) +typedef struct OSSL_HASH_st { + X509_ALGOR *algorithmIdentifier; + ASN1_BIT_STRING *hashValue; +} OSSL_HASH; + +typedef struct OSSL_INFO_SYNTAX_POINTER_st { + GENERAL_NAMES *name; + OSSL_HASH *hash; +} OSSL_INFO_SYNTAX_POINTER; + +# define OSSL_INFO_SYNTAX_TYPE_CONTENT 0 +# define OSSL_INFO_SYNTAX_TYPE_POINTER 1 + +typedef struct OSSL_INFO_SYNTAX_st { + int type; + union { + ASN1_STRING *content; + OSSL_INFO_SYNTAX_POINTER *pointer; + } choice; +} OSSL_INFO_SYNTAX; + +typedef struct OSSL_PRIVILEGE_POLICY_ID_st { + ASN1_OBJECT *privilegePolicy; + OSSL_INFO_SYNTAX *privPolSyntax; +} OSSL_PRIVILEGE_POLICY_ID; + +typedef struct OSSL_ATTRIBUTE_DESCRIPTOR_st { + ASN1_OBJECT *identifier; + ASN1_STRING *attributeSyntax; + ASN1_UTF8STRING *name; + ASN1_UTF8STRING *description; + OSSL_PRIVILEGE_POLICY_ID *dominationRule; +} OSSL_ATTRIBUTE_DESCRIPTOR; + +DECLARE_ASN1_FUNCTIONS(OSSL_HASH) +DECLARE_ASN1_FUNCTIONS(OSSL_INFO_SYNTAX) +DECLARE_ASN1_FUNCTIONS(OSSL_INFO_SYNTAX_POINTER) +DECLARE_ASN1_FUNCTIONS(OSSL_PRIVILEGE_POLICY_ID) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_DESCRIPTOR) + +typedef struct OSSL_TIME_SPEC_ABSOLUTE_st { + ASN1_GENERALIZEDTIME *startTime; + ASN1_GENERALIZEDTIME *endTime; +} OSSL_TIME_SPEC_ABSOLUTE; + +typedef struct OSSL_DAY_TIME_st { + ASN1_INTEGER *hour; + ASN1_INTEGER *minute; + ASN1_INTEGER *second; +} OSSL_DAY_TIME; + +typedef struct OSSL_DAY_TIME_BAND_st { + OSSL_DAY_TIME *startDayTime; + OSSL_DAY_TIME *endDayTime; +} OSSL_DAY_TIME_BAND; + +# define OSSL_NAMED_DAY_TYPE_INT 0 +# define OSSL_NAMED_DAY_TYPE_BIT 1 +# define OSSL_NAMED_DAY_INT_SUN 1 +# define OSSL_NAMED_DAY_INT_MON 2 +# define OSSL_NAMED_DAY_INT_TUE 3 +# define OSSL_NAMED_DAY_INT_WED 4 +# define OSSL_NAMED_DAY_INT_THU 5 +# define OSSL_NAMED_DAY_INT_FRI 6 +# define OSSL_NAMED_DAY_INT_SAT 7 +# define OSSL_NAMED_DAY_BIT_SUN 0 +# define OSSL_NAMED_DAY_BIT_MON 1 +# define OSSL_NAMED_DAY_BIT_TUE 2 +# define OSSL_NAMED_DAY_BIT_WED 3 +# define OSSL_NAMED_DAY_BIT_THU 4 +# define OSSL_NAMED_DAY_BIT_FRI 5 +# define OSSL_NAMED_DAY_BIT_SAT 6 + +typedef struct OSSL_NAMED_DAY_st { + int type; + union { + ASN1_INTEGER *intNamedDays; + ASN1_BIT_STRING *bitNamedDays; + } choice; +} OSSL_NAMED_DAY; + +# define OSSL_TIME_SPEC_X_DAY_OF_FIRST 0 +# define OSSL_TIME_SPEC_X_DAY_OF_SECOND 1 +# define OSSL_TIME_SPEC_X_DAY_OF_THIRD 2 +# define OSSL_TIME_SPEC_X_DAY_OF_FOURTH 3 +# define OSSL_TIME_SPEC_X_DAY_OF_FIFTH 4 + +typedef struct OSSL_TIME_SPEC_X_DAY_OF_st { + int type; + union { + OSSL_NAMED_DAY *first; + OSSL_NAMED_DAY *second; + OSSL_NAMED_DAY *third; + OSSL_NAMED_DAY *fourth; + OSSL_NAMED_DAY *fifth; + } choice; +} OSSL_TIME_SPEC_X_DAY_OF; + +# define OSSL_TIME_SPEC_DAY_TYPE_INT 0 +# define OSSL_TIME_SPEC_DAY_TYPE_BIT 1 +# define OSSL_TIME_SPEC_DAY_TYPE_DAY_OF 2 +# define OSSL_TIME_SPEC_DAY_BIT_SUN 0 +# define OSSL_TIME_SPEC_DAY_BIT_MON 1 +# define OSSL_TIME_SPEC_DAY_BIT_TUE 2 +# define OSSL_TIME_SPEC_DAY_BIT_WED 3 +# define OSSL_TIME_SPEC_DAY_BIT_THU 4 +# define OSSL_TIME_SPEC_DAY_BIT_FRI 5 +# define OSSL_TIME_SPEC_DAY_BIT_SAT 6 +# define OSSL_TIME_SPEC_DAY_INT_SUN 1 +# define OSSL_TIME_SPEC_DAY_INT_MON 2 +# define OSSL_TIME_SPEC_DAY_INT_TUE 3 +# define OSSL_TIME_SPEC_DAY_INT_WED 4 +# define OSSL_TIME_SPEC_DAY_INT_THU 5 +# define OSSL_TIME_SPEC_DAY_INT_FRI 6 +# define OSSL_TIME_SPEC_DAY_INT_SAT 7 + +typedef struct OSSL_TIME_SPEC_DAY_st { + int type; + union { + STACK_OF(ASN1_INTEGER) *intDay; + ASN1_BIT_STRING *bitDay; + OSSL_TIME_SPEC_X_DAY_OF *dayOf; + } choice; +} OSSL_TIME_SPEC_DAY; + +# define OSSL_TIME_SPEC_WEEKS_TYPE_ALL 0 +# define OSSL_TIME_SPEC_WEEKS_TYPE_INT 1 +# define OSSL_TIME_SPEC_WEEKS_TYPE_BIT 2 +# define OSSL_TIME_SPEC_BIT_WEEKS_1 0 +# define OSSL_TIME_SPEC_BIT_WEEKS_2 1 +# define OSSL_TIME_SPEC_BIT_WEEKS_3 2 +# define OSSL_TIME_SPEC_BIT_WEEKS_4 3 +# define OSSL_TIME_SPEC_BIT_WEEKS_5 4 + +typedef struct OSSL_TIME_SPEC_WEEKS_st { + int type; + union { + ASN1_NULL *allWeeks; + STACK_OF(ASN1_INTEGER) *intWeek; + ASN1_BIT_STRING *bitWeek; + } choice; +} OSSL_TIME_SPEC_WEEKS; + +# define OSSL_TIME_SPEC_MONTH_TYPE_ALL 0 +# define OSSL_TIME_SPEC_MONTH_TYPE_INT 1 +# define OSSL_TIME_SPEC_MONTH_TYPE_BIT 2 +# define OSSL_TIME_SPEC_INT_MONTH_JAN 1 +# define OSSL_TIME_SPEC_INT_MONTH_FEB 2 +# define OSSL_TIME_SPEC_INT_MONTH_MAR 3 +# define OSSL_TIME_SPEC_INT_MONTH_APR 4 +# define OSSL_TIME_SPEC_INT_MONTH_MAY 5 +# define OSSL_TIME_SPEC_INT_MONTH_JUN 6 +# define OSSL_TIME_SPEC_INT_MONTH_JUL 7 +# define OSSL_TIME_SPEC_INT_MONTH_AUG 8 +# define OSSL_TIME_SPEC_INT_MONTH_SEP 9 +# define OSSL_TIME_SPEC_INT_MONTH_OCT 10 +# define OSSL_TIME_SPEC_INT_MONTH_NOV 11 +# define OSSL_TIME_SPEC_INT_MONTH_DEC 12 +# define OSSL_TIME_SPEC_BIT_MONTH_JAN 0 +# define OSSL_TIME_SPEC_BIT_MONTH_FEB 1 +# define OSSL_TIME_SPEC_BIT_MONTH_MAR 2 +# define OSSL_TIME_SPEC_BIT_MONTH_APR 3 +# define OSSL_TIME_SPEC_BIT_MONTH_MAY 4 +# define OSSL_TIME_SPEC_BIT_MONTH_JUN 5 +# define OSSL_TIME_SPEC_BIT_MONTH_JUL 6 +# define OSSL_TIME_SPEC_BIT_MONTH_AUG 7 +# define OSSL_TIME_SPEC_BIT_MONTH_SEP 8 +# define OSSL_TIME_SPEC_BIT_MONTH_OCT 9 +# define OSSL_TIME_SPEC_BIT_MONTH_NOV 10 +# define OSSL_TIME_SPEC_BIT_MONTH_DEC 11 + +typedef struct OSSL_TIME_SPEC_MONTH_st { + int type; + union { + ASN1_NULL *allMonths; + STACK_OF(ASN1_INTEGER) *intMonth; + ASN1_BIT_STRING *bitMonth; + } choice; +} OSSL_TIME_SPEC_MONTH; + +typedef struct OSSL_TIME_PERIOD_st { + STACK_OF(OSSL_DAY_TIME_BAND) *timesOfDay; + OSSL_TIME_SPEC_DAY *days; + OSSL_TIME_SPEC_WEEKS *weeks; + OSSL_TIME_SPEC_MONTH *months; + STACK_OF(ASN1_INTEGER) *years; +} OSSL_TIME_PERIOD; + +# define OSSL_TIME_SPEC_TIME_TYPE_ABSOLUTE 0 +# define OSSL_TIME_SPEC_TIME_TYPE_PERIODIC 1 + +typedef struct OSSL_TIME_SPEC_TIME_st { + int type; + union { + OSSL_TIME_SPEC_ABSOLUTE *absolute; + STACK_OF(OSSL_TIME_PERIOD) *periodic; + } choice; +} OSSL_TIME_SPEC_TIME; + +typedef struct OSSL_TIME_SPEC_st { + OSSL_TIME_SPEC_TIME *time; + ASN1_BOOLEAN notThisTime; + ASN1_INTEGER *timeZone; +} OSSL_TIME_SPEC; + +DECLARE_ASN1_FUNCTIONS(OSSL_DAY_TIME) +DECLARE_ASN1_FUNCTIONS(OSSL_DAY_TIME_BAND) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_DAY) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_WEEKS) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_MONTH) +DECLARE_ASN1_FUNCTIONS(OSSL_NAMED_DAY) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_X_DAY_OF) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_ABSOLUTE) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_TIME) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_PERIOD) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_TIME_PERIOD, OSSL_TIME_PERIOD, OSSL_TIME_PERIOD) +#define sk_OSSL_TIME_PERIOD_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_value(sk, idx) ((OSSL_TIME_PERIOD *)OPENSSL_sk_value(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk), (idx))) +#define sk_OSSL_TIME_PERIOD_new(cmp) ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_new(ossl_check_OSSL_TIME_PERIOD_compfunc_type(cmp))) +#define sk_OSSL_TIME_PERIOD_new_null() ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_new_null()) +#define sk_OSSL_TIME_PERIOD_new_reserve(cmp, n) ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_TIME_PERIOD_compfunc_type(cmp), (n))) +#define sk_OSSL_TIME_PERIOD_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), (n)) +#define sk_OSSL_TIME_PERIOD_free(sk) OPENSSL_sk_free(ossl_check_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_delete(sk, i) ((OSSL_TIME_PERIOD *)OPENSSL_sk_delete(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), (i))) +#define sk_OSSL_TIME_PERIOD_delete_ptr(sk, ptr) ((OSSL_TIME_PERIOD *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr))) +#define sk_OSSL_TIME_PERIOD_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr)) +#define sk_OSSL_TIME_PERIOD_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr)) +#define sk_OSSL_TIME_PERIOD_pop(sk) ((OSSL_TIME_PERIOD *)OPENSSL_sk_pop(ossl_check_OSSL_TIME_PERIOD_sk_type(sk))) +#define sk_OSSL_TIME_PERIOD_shift(sk) ((OSSL_TIME_PERIOD *)OPENSSL_sk_shift(ossl_check_OSSL_TIME_PERIOD_sk_type(sk))) +#define sk_OSSL_TIME_PERIOD_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_TIME_PERIOD_sk_type(sk),ossl_check_OSSL_TIME_PERIOD_freefunc_type(freefunc)) +#define sk_OSSL_TIME_PERIOD_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr), (idx)) +#define sk_OSSL_TIME_PERIOD_set(sk, idx, ptr) ((OSSL_TIME_PERIOD *)OPENSSL_sk_set(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), (idx), ossl_check_OSSL_TIME_PERIOD_type(ptr))) +#define sk_OSSL_TIME_PERIOD_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr)) +#define sk_OSSL_TIME_PERIOD_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr)) +#define sk_OSSL_TIME_PERIOD_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr), pnum) +#define sk_OSSL_TIME_PERIOD_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_dup(sk) ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_dup(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk))) +#define sk_OSSL_TIME_PERIOD_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_copyfunc_type(copyfunc), ossl_check_OSSL_TIME_PERIOD_freefunc_type(freefunc))) +#define sk_OSSL_TIME_PERIOD_set_cmp_func(sk, cmp) ((sk_OSSL_TIME_PERIOD_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_compfunc_type(cmp))) + + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_DAY_TIME_BAND, OSSL_DAY_TIME_BAND, OSSL_DAY_TIME_BAND) +#define sk_OSSL_DAY_TIME_BAND_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_value(sk, idx) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_value(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk), (idx))) +#define sk_OSSL_DAY_TIME_BAND_new(cmp) ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_new(ossl_check_OSSL_DAY_TIME_BAND_compfunc_type(cmp))) +#define sk_OSSL_DAY_TIME_BAND_new_null() ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_new_null()) +#define sk_OSSL_DAY_TIME_BAND_new_reserve(cmp, n) ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_DAY_TIME_BAND_compfunc_type(cmp), (n))) +#define sk_OSSL_DAY_TIME_BAND_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), (n)) +#define sk_OSSL_DAY_TIME_BAND_free(sk) OPENSSL_sk_free(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_delete(sk, i) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_delete(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), (i))) +#define sk_OSSL_DAY_TIME_BAND_delete_ptr(sk, ptr) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr))) +#define sk_OSSL_DAY_TIME_BAND_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr)) +#define sk_OSSL_DAY_TIME_BAND_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr)) +#define sk_OSSL_DAY_TIME_BAND_pop(sk) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_pop(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk))) +#define sk_OSSL_DAY_TIME_BAND_shift(sk) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_shift(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk))) +#define sk_OSSL_DAY_TIME_BAND_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk),ossl_check_OSSL_DAY_TIME_BAND_freefunc_type(freefunc)) +#define sk_OSSL_DAY_TIME_BAND_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr), (idx)) +#define sk_OSSL_DAY_TIME_BAND_set(sk, idx, ptr) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_set(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), (idx), ossl_check_OSSL_DAY_TIME_BAND_type(ptr))) +#define sk_OSSL_DAY_TIME_BAND_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr)) +#define sk_OSSL_DAY_TIME_BAND_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr)) +#define sk_OSSL_DAY_TIME_BAND_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr), pnum) +#define sk_OSSL_DAY_TIME_BAND_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_dup(sk) ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_dup(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk))) +#define sk_OSSL_DAY_TIME_BAND_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_copyfunc_type(copyfunc), ossl_check_OSSL_DAY_TIME_BAND_freefunc_type(freefunc))) +#define sk_OSSL_DAY_TIME_BAND_set_cmp_func(sk, cmp) ((sk_OSSL_DAY_TIME_BAND_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_compfunc_type(cmp))) + + +/* Attribute Type and Value */ +typedef struct atav_st { + ASN1_OBJECT *type; + ASN1_TYPE *value; +} OSSL_ATAV; + +typedef struct ATTRIBUTE_TYPE_MAPPING_st { + ASN1_OBJECT *local; + ASN1_OBJECT *remote; +} OSSL_ATTRIBUTE_TYPE_MAPPING; + +typedef struct ATTRIBUTE_VALUE_MAPPING_st { + OSSL_ATAV *local; + OSSL_ATAV *remote; +} OSSL_ATTRIBUTE_VALUE_MAPPING; + +# define OSSL_ATTR_MAP_TYPE 0 +# define OSSL_ATTR_MAP_VALUE 1 + +typedef struct ATTRIBUTE_MAPPING_st { + int type; + union { + OSSL_ATTRIBUTE_TYPE_MAPPING *typeMappings; + OSSL_ATTRIBUTE_VALUE_MAPPING *typeValueMappings; + } choice; +} OSSL_ATTRIBUTE_MAPPING; + +typedef STACK_OF(OSSL_ATTRIBUTE_MAPPING) OSSL_ATTRIBUTE_MAPPINGS; +DECLARE_ASN1_FUNCTIONS(OSSL_ATAV) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_TYPE_MAPPING) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_VALUE_MAPPING) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_MAPPING) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_MAPPINGS) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ATTRIBUTE_MAPPING, OSSL_ATTRIBUTE_MAPPING, OSSL_ATTRIBUTE_MAPPING) +#define sk_OSSL_ATTRIBUTE_MAPPING_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_value(sk, idx) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_value(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), (idx))) +#define sk_OSSL_ATTRIBUTE_MAPPING_new(cmp) ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_new(ossl_check_OSSL_ATTRIBUTE_MAPPING_compfunc_type(cmp))) +#define sk_OSSL_ATTRIBUTE_MAPPING_new_null() ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ATTRIBUTE_MAPPING_new_reserve(cmp, n) ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ATTRIBUTE_MAPPING_compfunc_type(cmp), (n))) +#define sk_OSSL_ATTRIBUTE_MAPPING_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), (n)) +#define sk_OSSL_ATTRIBUTE_MAPPING_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_delete(sk, i) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_delete(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), (i))) +#define sk_OSSL_ATTRIBUTE_MAPPING_delete_ptr(sk, ptr) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr))) +#define sk_OSSL_ATTRIBUTE_MAPPING_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr)) +#define sk_OSSL_ATTRIBUTE_MAPPING_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr)) +#define sk_OSSL_ATTRIBUTE_MAPPING_pop(sk) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_pop(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk))) +#define sk_OSSL_ATTRIBUTE_MAPPING_shift(sk) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_shift(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk))) +#define sk_OSSL_ATTRIBUTE_MAPPING_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk),ossl_check_OSSL_ATTRIBUTE_MAPPING_freefunc_type(freefunc)) +#define sk_OSSL_ATTRIBUTE_MAPPING_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr), (idx)) +#define sk_OSSL_ATTRIBUTE_MAPPING_set(sk, idx, ptr) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_set(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), (idx), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr))) +#define sk_OSSL_ATTRIBUTE_MAPPING_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr)) +#define sk_OSSL_ATTRIBUTE_MAPPING_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr)) +#define sk_OSSL_ATTRIBUTE_MAPPING_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr), pnum) +#define sk_OSSL_ATTRIBUTE_MAPPING_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_dup(sk) ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk))) +#define sk_OSSL_ATTRIBUTE_MAPPING_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_copyfunc_type(copyfunc), ossl_check_OSSL_ATTRIBUTE_MAPPING_freefunc_type(freefunc))) +#define sk_OSSL_ATTRIBUTE_MAPPING_set_cmp_func(sk, cmp) ((sk_OSSL_ATTRIBUTE_MAPPING_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_compfunc_type(cmp))) + + +# define OSSL_AAA_ATTRIBUTE_TYPE 0 +# define OSSL_AAA_ATTRIBUTE_VALUES 1 + +typedef struct ALLOWED_ATTRIBUTES_CHOICE_st { + int type; + union { + ASN1_OBJECT *attributeType; + X509_ATTRIBUTE *attributeTypeandValues; + } choice; +} OSSL_ALLOWED_ATTRIBUTES_CHOICE; + +typedef struct ALLOWED_ATTRIBUTES_ITEM_st { + STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *attributes; + GENERAL_NAME *holderDomain; +} OSSL_ALLOWED_ATTRIBUTES_ITEM; + +typedef STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) OSSL_ALLOWED_ATTRIBUTES_SYNTAX; + +DECLARE_ASN1_FUNCTIONS(OSSL_ALLOWED_ATTRIBUTES_CHOICE) +DECLARE_ASN1_FUNCTIONS(OSSL_ALLOWED_ATTRIBUTES_ITEM) +DECLARE_ASN1_FUNCTIONS(OSSL_ALLOWED_ATTRIBUTES_SYNTAX) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ALLOWED_ATTRIBUTES_CHOICE, OSSL_ALLOWED_ATTRIBUTES_CHOICE, OSSL_ALLOWED_ATTRIBUTES_CHOICE) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_value(sk, idx) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_value(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), (idx))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_new(cmp) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_new(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_compfunc_type(cmp))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_new_null() ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_new_reserve(cmp, n) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_compfunc_type(cmp), (n))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), (n)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_delete(sk, i) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_delete(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), (i))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_delete_ptr(sk, ptr) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_pop(sk) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_pop(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_shift(sk) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_shift(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk),ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_freefunc_type(freefunc)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr), (idx)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_set(sk, idx, ptr) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_set(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), (idx), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr), pnum) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_dup(sk) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_copyfunc_type(copyfunc), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_freefunc_type(freefunc))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_set_cmp_func(sk, cmp) ((sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_compfunc_type(cmp))) + + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ALLOWED_ATTRIBUTES_ITEM, OSSL_ALLOWED_ATTRIBUTES_ITEM, OSSL_ALLOWED_ATTRIBUTES_ITEM) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_value(sk, idx) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_value(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), (idx))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_new(cmp) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_new(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_compfunc_type(cmp))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_new_null() ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_new_reserve(cmp, n) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_compfunc_type(cmp), (n))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), (n)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_delete(sk, i) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_delete(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), (i))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_delete_ptr(sk, ptr) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_pop(sk) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_pop(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_shift(sk) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_shift(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk),ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_freefunc_type(freefunc)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr), (idx)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_set(sk, idx, ptr) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_set(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), (idx), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr), pnum) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_dup(sk) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_copyfunc_type(copyfunc), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_freefunc_type(freefunc))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_set_cmp_func(sk, cmp) ((sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_compfunc_type(cmp))) + + +typedef struct AA_DIST_POINT_st { + DIST_POINT_NAME *distpoint; + ASN1_BIT_STRING *reasons; + int dp_reasons; + ASN1_BOOLEAN indirectCRL; + ASN1_BOOLEAN containsUserAttributeCerts; + ASN1_BOOLEAN containsAACerts; + ASN1_BOOLEAN containsSOAPublicKeyCerts; +} OSSL_AA_DIST_POINT; + +DECLARE_ASN1_FUNCTIONS(OSSL_AA_DIST_POINT) + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/VC-WIN64A/asm_avx2/include/progs.h b/deps/openssl/config/archs/VC-WIN64A/asm_avx2/include/progs.h index be55f61503d405..1b62ec37dec130 100644 --- a/deps/openssl/config/archs/VC-WIN64A/asm_avx2/include/progs.h +++ b/deps/openssl/config/archs/VC-WIN64A/asm_avx2/include/progs.h @@ -56,6 +56,7 @@ extern int s_client_main(int argc, char *argv[]); extern int s_server_main(int argc, char *argv[]); extern int s_time_main(int argc, char *argv[]); extern int sess_id_main(int argc, char *argv[]); +extern int skeyutl_main(int argc, char *argv[]); extern int smime_main(int argc, char *argv[]); extern int speed_main(int argc, char *argv[]); extern int spkac_main(int argc, char *argv[]); @@ -110,6 +111,7 @@ extern const OPTIONS s_client_options[]; extern const OPTIONS s_server_options[]; extern const OPTIONS s_time_options[]; extern const OPTIONS sess_id_options[]; +extern const OPTIONS skeyutl_options[]; extern const OPTIONS smime_options[]; extern const OPTIONS speed_options[]; extern const OPTIONS spkac_options[]; diff --git a/deps/openssl/config/archs/VC-WIN64A/asm_avx2/openssl-cl.gypi b/deps/openssl/config/archs/VC-WIN64A/asm_avx2/openssl-cl.gypi index 5eafa74db33530..b157348b51b406 100644 --- a/deps/openssl/config/archs/VC-WIN64A/asm_avx2/openssl-cl.gypi +++ b/deps/openssl/config/archs/VC-WIN64A/asm_avx2/openssl-cl.gypi @@ -88,6 +88,7 @@ 'openssl/apps/s_server.c', 'openssl/apps/s_time.c', 'openssl/apps/sess_id.c', + 'openssl/apps/skeyutl.c', 'openssl/apps/smime.c', 'openssl/apps/speed.c', 'openssl/apps/spkac.c', @@ -103,12 +104,14 @@ 'openssl/apps/lib/app_rand.c', 'openssl/apps/lib/app_x509.c', 'openssl/apps/lib/apps.c', + 'openssl/apps/lib/apps_opt_printf.c', 'openssl/apps/lib/apps_ui.c', 'openssl/apps/lib/columns.c', 'openssl/apps/lib/engine.c', 'openssl/apps/lib/engine_loader.c', 'openssl/apps/lib/fmt.c', 'openssl/apps/lib/http_server.c', + 'openssl/apps/lib/log.c', 'openssl/apps/lib/names.c', 'openssl/apps/lib/opt.c', 'openssl/apps/lib/s_cb.c', diff --git a/deps/openssl/config/archs/VC-WIN64A/asm_avx2/openssl-fips.gypi b/deps/openssl/config/archs/VC-WIN64A/asm_avx2/openssl-fips.gypi index 205df43d3ce86a..b7d8cbbfab1747 100644 --- a/deps/openssl/config/archs/VC-WIN64A/asm_avx2/openssl-fips.gypi +++ b/deps/openssl/config/archs/VC-WIN64A/asm_avx2/openssl-fips.gypi @@ -101,14 +101,15 @@ 'openssl/crypto/evp/kem.c', 'openssl/crypto/evp/keymgmt_lib.c', 'openssl/crypto/evp/keymgmt_meth.c', - 'openssl/crypto/evp/m_sigver.c', 'openssl/crypto/evp/mac_lib.c', 'openssl/crypto/evp/mac_meth.c', 'openssl/crypto/evp/p_lib.c', 'openssl/crypto/evp/pmeth_check.c', 'openssl/crypto/evp/pmeth_gn.c', 'openssl/crypto/evp/pmeth_lib.c', + 'openssl/crypto/evp/s_lib.c', 'openssl/crypto/evp/signature.c', + 'openssl/crypto/evp/skeymgmt_meth.c', 'openssl/crypto/ffc/ffc_backend.c', 'openssl/crypto/ffc/ffc_dh.c', 'openssl/crypto/ffc/ffc_key_generate.c', @@ -116,6 +117,8 @@ 'openssl/crypto/ffc/ffc_params.c', 'openssl/crypto/ffc/ffc_params_generate.c', 'openssl/crypto/ffc/ffc_params_validate.c', + 'openssl/crypto/hashtable/hashfunc.c', + 'openssl/crypto/hashtable/hashtable.c', 'openssl/crypto/hmac/hmac.c', 'openssl/crypto/lhash/lhash.c', 'openssl/crypto/asn1_dsa.c', @@ -145,6 +148,16 @@ 'openssl/crypto/threads_none.c', 'openssl/crypto/threads_pthread.c', 'openssl/crypto/threads_win.c', + 'openssl/crypto/time.c', + 'openssl/crypto/ml_dsa/ml_dsa_encoders.c', + 'openssl/crypto/ml_dsa/ml_dsa_key.c', + 'openssl/crypto/ml_dsa/ml_dsa_key_compress.c', + 'openssl/crypto/ml_dsa/ml_dsa_matrix.c', + 'openssl/crypto/ml_dsa/ml_dsa_ntt.c', + 'openssl/crypto/ml_dsa/ml_dsa_params.c', + 'openssl/crypto/ml_dsa/ml_dsa_sample.c', + 'openssl/crypto/ml_dsa/ml_dsa_sign.c', + 'openssl/crypto/ml_kem/ml_kem.c', 'openssl/crypto/modes/cbc128.c', 'openssl/crypto/modes/ccm128.c', 'openssl/crypto/modes/cfb128.c', @@ -153,6 +166,7 @@ 'openssl/crypto/modes/ofb128.c', 'openssl/crypto/modes/wrap128.c', 'openssl/crypto/modes/xts128.c', + 'openssl/crypto/modes/xts128gb.c', 'openssl/crypto/property/defn_cache.c', 'openssl/crypto/property/property.c', 'openssl/crypto/property/property_parse.c', @@ -180,7 +194,23 @@ 'openssl/crypto/sha/sha256.c', 'openssl/crypto/sha/sha3.c', 'openssl/crypto/sha/sha512.c', + 'openssl/crypto/slh_dsa/slh_adrs.c', + 'openssl/crypto/slh_dsa/slh_dsa.c', + 'openssl/crypto/slh_dsa/slh_dsa_hash_ctx.c', + 'openssl/crypto/slh_dsa/slh_dsa_key.c', + 'openssl/crypto/slh_dsa/slh_fors.c', + 'openssl/crypto/slh_dsa/slh_hash.c', + 'openssl/crypto/slh_dsa/slh_hypertree.c', + 'openssl/crypto/slh_dsa/slh_params.c', + 'openssl/crypto/slh_dsa/slh_wots.c', + 'openssl/crypto/slh_dsa/slh_xmss.c', 'openssl/crypto/stack/stack.c', + 'openssl/crypto/thread/arch/thread_none.c', + 'openssl/crypto/thread/arch/thread_posix.c', + 'openssl/crypto/thread/arch/thread_win.c', + 'openssl/crypto/thread/api.c', + 'openssl/crypto/thread/arch.c', + 'openssl/crypto/thread/internal.c', 'openssl/providers/common/der/der_rsa_sig.c', 'openssl/providers/common/bio_prov.c', 'openssl/providers/common/capabilities.c', @@ -189,6 +219,7 @@ 'openssl/providers/common/provider_util.c', 'openssl/providers/common/securitycheck.c', 'openssl/providers/common/securitycheck_fips.c', + 'openssl/providers/fips/fipsindicator.c', 'openssl/providers/fips/fipsprov.c', 'openssl/providers/fips/self_test.c', 'openssl/providers/fips/self_test_kats.c', @@ -226,6 +257,8 @@ 'openssl/providers/implementations/kdfs/sskdf.c', 'openssl/providers/implementations/kdfs/tls1_prf.c', 'openssl/providers/implementations/kdfs/x942kdf.c', + 'openssl/providers/implementations/kem/ml_kem_kem.c', + 'openssl/providers/implementations/kem/mlx_kem.c', 'openssl/providers/implementations/kem/rsa_kem.c', 'openssl/providers/implementations/keymgmt/dh_kmgmt.c', 'openssl/providers/implementations/keymgmt/dsa_kmgmt.c', @@ -233,29 +266,39 @@ 'openssl/providers/implementations/keymgmt/ecx_kmgmt.c', 'openssl/providers/implementations/keymgmt/kdf_legacy_kmgmt.c', 'openssl/providers/implementations/keymgmt/mac_legacy_kmgmt.c', + 'openssl/providers/implementations/keymgmt/ml_dsa_kmgmt.c', + 'openssl/providers/implementations/keymgmt/ml_kem_kmgmt.c', + 'openssl/providers/implementations/keymgmt/mlx_kmgmt.c', 'openssl/providers/implementations/keymgmt/rsa_kmgmt.c', + 'openssl/providers/implementations/keymgmt/slh_dsa_kmgmt.c', 'openssl/providers/implementations/macs/cmac_prov.c', 'openssl/providers/implementations/macs/gmac_prov.c', 'openssl/providers/implementations/macs/hmac_prov.c', 'openssl/providers/implementations/macs/kmac_prov.c', - 'openssl/providers/implementations/rands/crngt.c', 'openssl/providers/implementations/rands/drbg.c', 'openssl/providers/implementations/rands/drbg_ctr.c', 'openssl/providers/implementations/rands/drbg_hash.c', 'openssl/providers/implementations/rands/drbg_hmac.c', + 'openssl/providers/implementations/rands/fips_crng_test.c', 'openssl/providers/implementations/rands/test_rng.c', 'openssl/providers/implementations/signature/dsa_sig.c', 'openssl/providers/implementations/signature/ecdsa_sig.c', 'openssl/providers/implementations/signature/eddsa_sig.c', 'openssl/providers/implementations/signature/mac_legacy_sig.c', + 'openssl/providers/implementations/signature/ml_dsa_sig.c', 'openssl/providers/implementations/signature/rsa_sig.c', - 'openssl/ssl/s3_cbc.c', + 'openssl/providers/implementations/signature/slh_dsa_sig.c', + 'openssl/providers/implementations/skeymgmt/aes_skmgmt.c', + 'openssl/providers/implementations/skeymgmt/generic.c', + 'openssl/ssl/record/methods/ssl3_cbc.c', 'openssl/providers/common/der/der_dsa_key.c', 'openssl/providers/common/der/der_dsa_sig.c', 'openssl/providers/common/der/der_ec_key.c', 'openssl/providers/common/der/der_ec_sig.c', 'openssl/providers/common/der/der_ecx_key.c', + 'openssl/providers/common/der/der_ml_dsa_key.c', 'openssl/providers/common/der/der_rsa_key.c', + 'openssl/providers/common/der/der_slh_dsa_key.c', 'openssl/providers/common/provider_ctx.c', 'openssl/providers/common/provider_err.c', 'openssl/providers/implementations/ciphers/ciphercommon.c', @@ -266,7 +309,7 @@ 'openssl/providers/implementations/ciphers/ciphercommon_gcm_hw.c', 'openssl/providers/implementations/ciphers/ciphercommon_hw.c', 'openssl/providers/implementations/digests/digestcommon.c', - 'openssl/ssl/record/tls_pad.c', + 'openssl/ssl/record/methods/tls_pad.c', 'openssl/providers/fips/fips_entry.c', ], @@ -276,10 +319,16 @@ './config/archs/VC-WIN64A/asm_avx2/crypto/aes/aesni-sha1-x86_64.asm', './config/archs/VC-WIN64A/asm_avx2/crypto/aes/aesni-sha256-x86_64.asm', './config/archs/VC-WIN64A/asm_avx2/crypto/aes/aesni-x86_64.asm', + './config/archs/VC-WIN64A/asm_avx2/crypto/aes/aesni-xts-avx512.asm', './config/archs/VC-WIN64A/asm_avx2/crypto/aes/bsaes-x86_64.asm', './config/archs/VC-WIN64A/asm_avx2/crypto/aes/vpaes-x86_64.asm', + './config/archs/VC-WIN64A/asm_avx2/crypto/bn/rsaz-2k-avx512.asm', + './config/archs/VC-WIN64A/asm_avx2/crypto/bn/rsaz-2k-avxifma.asm', + './config/archs/VC-WIN64A/asm_avx2/crypto/bn/rsaz-3k-avx512.asm', + './config/archs/VC-WIN64A/asm_avx2/crypto/bn/rsaz-3k-avxifma.asm', + './config/archs/VC-WIN64A/asm_avx2/crypto/bn/rsaz-4k-avx512.asm', + './config/archs/VC-WIN64A/asm_avx2/crypto/bn/rsaz-4k-avxifma.asm', './config/archs/VC-WIN64A/asm_avx2/crypto/bn/rsaz-avx2.asm', - './config/archs/VC-WIN64A/asm_avx2/crypto/bn/rsaz-avx512.asm', './config/archs/VC-WIN64A/asm_avx2/crypto/bn/rsaz-x86_64.asm', './config/archs/VC-WIN64A/asm_avx2/crypto/bn/x86_64-gf2m.asm', './config/archs/VC-WIN64A/asm_avx2/crypto/bn/x86_64-mont.asm', @@ -288,8 +337,10 @@ './config/archs/VC-WIN64A/asm_avx2/crypto/chacha/chacha-x86_64.asm', './config/archs/VC-WIN64A/asm_avx2/crypto/ec/ecp_nistz256-x86_64.asm', './config/archs/VC-WIN64A/asm_avx2/crypto/ec/x25519-x86_64.asm', + './config/archs/VC-WIN64A/asm_avx2/crypto/params_idx.c', './config/archs/VC-WIN64A/asm_avx2/crypto/x86_64cpuid.asm', './config/archs/VC-WIN64A/asm_avx2/crypto/md5/md5-x86_64.asm', + './config/archs/VC-WIN64A/asm_avx2/crypto/modes/aes-gcm-avx512.asm', './config/archs/VC-WIN64A/asm_avx2/crypto/modes/aesni-gcm-x86_64.asm', './config/archs/VC-WIN64A/asm_avx2/crypto/modes/ghash-x86_64.asm', './config/archs/VC-WIN64A/asm_avx2/crypto/poly1305/poly1305-x86_64.asm', @@ -308,7 +359,9 @@ './config/archs/VC-WIN64A/asm_avx2/providers/common/der/der_dsa_gen.c', './config/archs/VC-WIN64A/asm_avx2/providers/common/der/der_ec_gen.c', './config/archs/VC-WIN64A/asm_avx2/providers/common/der/der_ecx_gen.c', + './config/archs/VC-WIN64A/asm_avx2/providers/common/der/der_ml_dsa_gen.c', './config/archs/VC-WIN64A/asm_avx2/providers/common/der/der_rsa_gen.c', + './config/archs/VC-WIN64A/asm_avx2/providers/common/der/der_slh_dsa_gen.c', './config/archs/VC-WIN64A/asm_avx2/providers/common/der/der_wrap_gen.c', ], diff --git a/deps/openssl/config/archs/VC-WIN64A/asm_avx2/openssl.gypi b/deps/openssl/config/archs/VC-WIN64A/asm_avx2/openssl.gypi index 89b4bcd47f1180..ad55f0a83204fe 100644 --- a/deps/openssl/config/archs/VC-WIN64A/asm_avx2/openssl.gypi +++ b/deps/openssl/config/archs/VC-WIN64A/asm_avx2/openssl.gypi @@ -7,14 +7,15 @@ 'openssl/ssl/d1_srtp.c', 'openssl/ssl/methods.c', 'openssl/ssl/pqueue.c', + 'openssl/ssl/priority_queue.c', 'openssl/ssl/s3_enc.c', 'openssl/ssl/s3_lib.c', 'openssl/ssl/s3_msg.c', 'openssl/ssl/ssl_asn1.c', 'openssl/ssl/ssl_cert.c', + 'openssl/ssl/ssl_cert_comp.c', 'openssl/ssl/ssl_ciph.c', 'openssl/ssl/ssl_conf.c', - 'openssl/ssl/ssl_err.c', 'openssl/ssl/ssl_err_legacy.c', 'openssl/ssl/ssl_init.c', 'openssl/ssl/ssl_lib.c', @@ -31,12 +32,60 @@ 'openssl/ssl/tls13_enc.c', 'openssl/ssl/tls_depr.c', 'openssl/ssl/tls_srp.c', - 'openssl/ssl/record/dtls1_bitmap.c', + 'openssl/ssl/quic/cc_newreno.c', + 'openssl/ssl/quic/json_enc.c', + 'openssl/ssl/quic/qlog.c', + 'openssl/ssl/quic/qlog_event_helpers.c', + 'openssl/ssl/quic/quic_ackm.c', + 'openssl/ssl/quic/quic_cfq.c', + 'openssl/ssl/quic/quic_channel.c', + 'openssl/ssl/quic/quic_demux.c', + 'openssl/ssl/quic/quic_engine.c', + 'openssl/ssl/quic/quic_fc.c', + 'openssl/ssl/quic/quic_fifd.c', + 'openssl/ssl/quic/quic_impl.c', + 'openssl/ssl/quic/quic_lcidm.c', + 'openssl/ssl/quic/quic_method.c', + 'openssl/ssl/quic/quic_obj.c', + 'openssl/ssl/quic/quic_port.c', + 'openssl/ssl/quic/quic_rcidm.c', + 'openssl/ssl/quic/quic_reactor.c', + 'openssl/ssl/quic/quic_reactor_wait_ctx.c', + 'openssl/ssl/quic/quic_record_rx.c', + 'openssl/ssl/quic/quic_record_shared.c', + 'openssl/ssl/quic/quic_record_tx.c', + 'openssl/ssl/quic/quic_record_util.c', + 'openssl/ssl/quic/quic_rstream.c', + 'openssl/ssl/quic/quic_rx_depack.c', + 'openssl/ssl/quic/quic_sf_list.c', + 'openssl/ssl/quic/quic_srt_gen.c', + 'openssl/ssl/quic/quic_srtm.c', + 'openssl/ssl/quic/quic_sstream.c', + 'openssl/ssl/quic/quic_statm.c', + 'openssl/ssl/quic/quic_stream_map.c', + 'openssl/ssl/quic/quic_thread_assist.c', + 'openssl/ssl/quic/quic_tls.c', + 'openssl/ssl/quic/quic_tls_api.c', + 'openssl/ssl/quic/quic_trace.c', + 'openssl/ssl/quic/quic_tserver.c', + 'openssl/ssl/quic/quic_txp.c', + 'openssl/ssl/quic/quic_txpim.c', + 'openssl/ssl/quic/quic_types.c', + 'openssl/ssl/quic/quic_wire.c', + 'openssl/ssl/quic/quic_wire_pkt.c', + 'openssl/ssl/quic/uint_set.c', 'openssl/ssl/record/rec_layer_d1.c', 'openssl/ssl/record/rec_layer_s3.c', - 'openssl/ssl/record/ssl3_buffer.c', - 'openssl/ssl/record/ssl3_record.c', - 'openssl/ssl/record/ssl3_record_tls13.c', + 'openssl/ssl/record/methods/dtls_meth.c', + 'openssl/ssl/record/methods/ssl3_meth.c', + 'openssl/ssl/record/methods/tls13_meth.c', + 'openssl/ssl/record/methods/tls1_meth.c', + 'openssl/ssl/record/methods/tls_common.c', + 'openssl/ssl/record/methods/tls_multib.c', + 'openssl/ssl/record/methods/tlsany_meth.c', + 'openssl/ssl/rio/poll_builder.c', + 'openssl/ssl/rio/poll_immediate.c', + 'openssl/ssl/rio/rio_notifier.c', 'openssl/ssl/statem/extensions.c', 'openssl/ssl/statem/extensions_clnt.c', 'openssl/ssl/statem/extensions_cust.c', @@ -148,6 +197,7 @@ 'openssl/crypto/bio/bss_conn.c', 'openssl/crypto/bio/bss_core.c', 'openssl/crypto/bio/bss_dgram.c', + 'openssl/crypto/bio/bss_dgram_pair.c', 'openssl/crypto/bio/bss_fd.c', 'openssl/crypto/bio/bss_file.c', 'openssl/crypto/bio/bss_log.c', @@ -207,6 +257,7 @@ 'openssl/crypto/cmp/cmp_client.c', 'openssl/crypto/cmp/cmp_ctx.c', 'openssl/crypto/cmp/cmp_err.c', + 'openssl/crypto/cmp/cmp_genm.c', 'openssl/crypto/cmp/cmp_hdr.c', 'openssl/crypto/cmp/cmp_http.c', 'openssl/crypto/cmp/cmp_msg.c', @@ -383,7 +434,9 @@ 'openssl/crypto/err/err_all.c', 'openssl/crypto/err/err_all_legacy.c', 'openssl/crypto/err/err_blocks.c', + 'openssl/crypto/err/err_mark.c', 'openssl/crypto/err/err_prn.c', + 'openssl/crypto/err/err_save.c', 'openssl/crypto/ess/ess_asn1.c', 'openssl/crypto/ess/ess_err.c', 'openssl/crypto/ess/ess_lib.c', @@ -466,7 +519,9 @@ 'openssl/crypto/evp/pmeth_check.c', 'openssl/crypto/evp/pmeth_gn.c', 'openssl/crypto/evp/pmeth_lib.c', + 'openssl/crypto/evp/s_lib.c', 'openssl/crypto/evp/signature.c', + 'openssl/crypto/evp/skeymgmt_meth.c', 'openssl/crypto/ffc/ffc_backend.c', 'openssl/crypto/ffc/ffc_dh.c', 'openssl/crypto/ffc/ffc_key_generate.c', @@ -474,7 +529,11 @@ 'openssl/crypto/ffc/ffc_params.c', 'openssl/crypto/ffc/ffc_params_generate.c', 'openssl/crypto/ffc/ffc_params_validate.c', + 'openssl/crypto/hashtable/hashfunc.c', + 'openssl/crypto/hashtable/hashtable.c', 'openssl/crypto/hmac/hmac.c', + 'openssl/crypto/hpke/hpke.c', + 'openssl/crypto/hpke/hpke_util.c', 'openssl/crypto/http/http_client.c', 'openssl/crypto/http/http_err.c', 'openssl/crypto/http/http_lib.c', @@ -488,6 +547,7 @@ 'openssl/crypto/lhash/lhash.c', 'openssl/crypto/asn1_dsa.c', 'openssl/crypto/bsearch.c', + 'openssl/crypto/comp_methods.c', 'openssl/crypto/context.c', 'openssl/crypto/core_algorithm.c', 'openssl/crypto/core_fetch.c', @@ -497,10 +557,13 @@ 'openssl/crypto/cryptlib.c', 'openssl/crypto/ctype.c', 'openssl/crypto/cversion.c', + 'openssl/crypto/defaults.c', 'openssl/crypto/der_writer.c', + 'openssl/crypto/deterministic_nonce.c', 'openssl/crypto/ebcdic.c', 'openssl/crypto/ex_data.c', 'openssl/crypto/getenv.c', + 'openssl/crypto/indicator_core.c', 'openssl/crypto/info.c', 'openssl/crypto/init.c', 'openssl/crypto/initthread.c', @@ -524,12 +587,16 @@ 'openssl/crypto/provider_core.c', 'openssl/crypto/provider_predefined.c', 'openssl/crypto/punycode.c', + 'openssl/crypto/quic_vlint.c', 'openssl/crypto/self_test_core.c', + 'openssl/crypto/sleep.c', 'openssl/crypto/sparse_array.c', + 'openssl/crypto/ssl_err.c', 'openssl/crypto/threads_lib.c', 'openssl/crypto/threads_none.c', 'openssl/crypto/threads_pthread.c', 'openssl/crypto/threads_win.c', + 'openssl/crypto/time.c', 'openssl/crypto/trace.c', 'openssl/crypto/uid.c', 'openssl/crypto/md4/md4_dgst.c', @@ -539,6 +606,15 @@ 'openssl/crypto/md5/md5_sha1.c', 'openssl/crypto/mdc2/mdc2_one.c', 'openssl/crypto/mdc2/mdc2dgst.c', + 'openssl/crypto/ml_dsa/ml_dsa_encoders.c', + 'openssl/crypto/ml_dsa/ml_dsa_key.c', + 'openssl/crypto/ml_dsa/ml_dsa_key_compress.c', + 'openssl/crypto/ml_dsa/ml_dsa_matrix.c', + 'openssl/crypto/ml_dsa/ml_dsa_ntt.c', + 'openssl/crypto/ml_dsa/ml_dsa_params.c', + 'openssl/crypto/ml_dsa/ml_dsa_sample.c', + 'openssl/crypto/ml_dsa/ml_dsa_sign.c', + 'openssl/crypto/ml_kem/ml_kem.c', 'openssl/crypto/modes/cbc128.c', 'openssl/crypto/modes/ccm128.c', 'openssl/crypto/modes/cfb128.c', @@ -550,6 +626,7 @@ 'openssl/crypto/modes/siv128.c', 'openssl/crypto/modes/wrap128.c', 'openssl/crypto/modes/xts128.c', + 'openssl/crypto/modes/xts128gb.c', 'openssl/crypto/objects/o_names.c', 'openssl/crypto/objects/obj_dat.c', 'openssl/crypto/objects/obj_err.c', @@ -613,6 +690,7 @@ 'openssl/crypto/rand/rand_lib.c', 'openssl/crypto/rand/rand_meth.c', 'openssl/crypto/rand/rand_pool.c', + 'openssl/crypto/rand/rand_uniform.c', 'openssl/crypto/rand/randfile.c', 'openssl/crypto/rc2/rc2_cbc.c', 'openssl/crypto/rc2/rc2_ecb.c', @@ -658,6 +736,16 @@ 'openssl/crypto/sha/sha3.c', 'openssl/crypto/sha/sha512.c', 'openssl/crypto/siphash/siphash.c', + 'openssl/crypto/slh_dsa/slh_adrs.c', + 'openssl/crypto/slh_dsa/slh_dsa.c', + 'openssl/crypto/slh_dsa/slh_dsa_hash_ctx.c', + 'openssl/crypto/slh_dsa/slh_dsa_key.c', + 'openssl/crypto/slh_dsa/slh_fors.c', + 'openssl/crypto/slh_dsa/slh_hash.c', + 'openssl/crypto/slh_dsa/slh_hypertree.c', + 'openssl/crypto/slh_dsa/slh_params.c', + 'openssl/crypto/slh_dsa/slh_wots.c', + 'openssl/crypto/slh_dsa/slh_xmss.c', 'openssl/crypto/sm2/sm2_crypt.c', 'openssl/crypto/sm2/sm2_err.c', 'openssl/crypto/sm2/sm2_key.c', @@ -675,6 +763,12 @@ 'openssl/crypto/store/store_register.c', 'openssl/crypto/store/store_result.c', 'openssl/crypto/store/store_strings.c', + 'openssl/crypto/thread/arch/thread_none.c', + 'openssl/crypto/thread/arch/thread_posix.c', + 'openssl/crypto/thread/arch/thread_win.c', + 'openssl/crypto/thread/api.c', + 'openssl/crypto/thread/arch.c', + 'openssl/crypto/thread/internal.c', 'openssl/crypto/ts/ts_asn1.c', 'openssl/crypto/ts/ts_conf.c', 'openssl/crypto/ts/ts_err.c', @@ -702,14 +796,22 @@ 'openssl/crypto/x509/pcy_map.c', 'openssl/crypto/x509/pcy_node.c', 'openssl/crypto/x509/pcy_tree.c', + 'openssl/crypto/x509/t_acert.c', 'openssl/crypto/x509/t_crl.c', 'openssl/crypto/x509/t_req.c', 'openssl/crypto/x509/t_x509.c', + 'openssl/crypto/x509/v3_aaa.c', + 'openssl/crypto/x509/v3_ac_tgt.c', 'openssl/crypto/x509/v3_addr.c', 'openssl/crypto/x509/v3_admis.c', 'openssl/crypto/x509/v3_akeya.c', 'openssl/crypto/x509/v3_akid.c', 'openssl/crypto/x509/v3_asid.c', + 'openssl/crypto/x509/v3_attrdesc.c', + 'openssl/crypto/x509/v3_attrmap.c', + 'openssl/crypto/x509/v3_audit_id.c', + 'openssl/crypto/x509/v3_authattid.c', + 'openssl/crypto/x509/v3_battcons.c', 'openssl/crypto/x509/v3_bcons.c', 'openssl/crypto/x509/v3_bitst.c', 'openssl/crypto/x509/v3_conf.c', @@ -718,12 +820,17 @@ 'openssl/crypto/x509/v3_enum.c', 'openssl/crypto/x509/v3_extku.c', 'openssl/crypto/x509/v3_genn.c', + 'openssl/crypto/x509/v3_group_ac.c', 'openssl/crypto/x509/v3_ia5.c', + 'openssl/crypto/x509/v3_ind_iss.c', 'openssl/crypto/x509/v3_info.c', 'openssl/crypto/x509/v3_int.c', + 'openssl/crypto/x509/v3_iobo.c', 'openssl/crypto/x509/v3_ist.c', 'openssl/crypto/x509/v3_lib.c', 'openssl/crypto/x509/v3_ncons.c', + 'openssl/crypto/x509/v3_no_ass.c', + 'openssl/crypto/x509/v3_no_rev_avail.c', 'openssl/crypto/x509/v3_pci.c', 'openssl/crypto/x509/v3_pcia.c', 'openssl/crypto/x509/v3_pcons.c', @@ -731,13 +838,20 @@ 'openssl/crypto/x509/v3_pmaps.c', 'openssl/crypto/x509/v3_prn.c', 'openssl/crypto/x509/v3_purp.c', + 'openssl/crypto/x509/v3_rolespec.c', 'openssl/crypto/x509/v3_san.c', + 'openssl/crypto/x509/v3_sda.c', + 'openssl/crypto/x509/v3_single_use.c', 'openssl/crypto/x509/v3_skid.c', + 'openssl/crypto/x509/v3_soa_id.c', 'openssl/crypto/x509/v3_sxnet.c', + 'openssl/crypto/x509/v3_timespec.c', 'openssl/crypto/x509/v3_tlsf.c', + 'openssl/crypto/x509/v3_usernotice.c', 'openssl/crypto/x509/v3_utf8.c', 'openssl/crypto/x509/v3_utl.c', 'openssl/crypto/x509/v3err.c', + 'openssl/crypto/x509/x509_acert.c', 'openssl/crypto/x509/x509_att.c', 'openssl/crypto/x509/x509_cmp.c', 'openssl/crypto/x509/x509_d2.c', @@ -755,6 +869,7 @@ 'openssl/crypto/x509/x509_v3.c', 'openssl/crypto/x509/x509_vfy.c', 'openssl/crypto/x509/x509_vpm.c', + 'openssl/crypto/x509/x509aset.c', 'openssl/crypto/x509/x509cset.c', 'openssl/crypto/x509/x509name.c', 'openssl/crypto/x509/x509rset.c', @@ -764,6 +879,7 @@ 'openssl/crypto/x509/x_attrib.c', 'openssl/crypto/x509/x_crl.c', 'openssl/crypto/x509/x_exten.c', + 'openssl/crypto/x509/x_ietfatt.c', 'openssl/crypto/x509/x_name.c', 'openssl/crypto/x509/x_pubkey.c', 'openssl/crypto/x509/x_req.c', @@ -795,6 +911,9 @@ 'openssl/providers/implementations/ciphers/cipher_aes_ccm_hw.c', 'openssl/providers/implementations/ciphers/cipher_aes_gcm.c', 'openssl/providers/implementations/ciphers/cipher_aes_gcm_hw.c', + 'openssl/providers/implementations/ciphers/cipher_aes_gcm_siv.c', + 'openssl/providers/implementations/ciphers/cipher_aes_gcm_siv_hw.c', + 'openssl/providers/implementations/ciphers/cipher_aes_gcm_siv_polyval.c', 'openssl/providers/implementations/ciphers/cipher_aes_hw.c', 'openssl/providers/implementations/ciphers/cipher_aes_ocb.c', 'openssl/providers/implementations/ciphers/cipher_aes_ocb_hw.c', @@ -819,7 +938,13 @@ 'openssl/providers/implementations/ciphers/cipher_cts.c', 'openssl/providers/implementations/ciphers/cipher_null.c', 'openssl/providers/implementations/ciphers/cipher_sm4.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_ccm.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_ccm_hw.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_gcm.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_gcm_hw.c', 'openssl/providers/implementations/ciphers/cipher_sm4_hw.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_xts.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_xts_hw.c', 'openssl/providers/implementations/ciphers/cipher_tdes.c', 'openssl/providers/implementations/ciphers/cipher_tdes_common.c', 'openssl/providers/implementations/ciphers/cipher_tdes_default.c', @@ -848,11 +973,16 @@ 'openssl/providers/implementations/encode_decode/encode_key2ms.c', 'openssl/providers/implementations/encode_decode/encode_key2text.c', 'openssl/providers/implementations/encode_decode/endecoder_common.c', + 'openssl/providers/implementations/encode_decode/ml_common_codecs.c', + 'openssl/providers/implementations/encode_decode/ml_dsa_codecs.c', + 'openssl/providers/implementations/encode_decode/ml_kem_codecs.c', 'openssl/providers/implementations/exchange/dh_exch.c', 'openssl/providers/implementations/exchange/ecdh_exch.c', 'openssl/providers/implementations/exchange/ecx_exch.c', 'openssl/providers/implementations/exchange/kdf_exch.c', + 'openssl/providers/implementations/kdfs/argon2.c', 'openssl/providers/implementations/kdfs/hkdf.c', + 'openssl/providers/implementations/kdfs/hmacdrbg_kdf.c', 'openssl/providers/implementations/kdfs/kbkdf.c', 'openssl/providers/implementations/kdfs/krb5kdf.c', 'openssl/providers/implementations/kdfs/pbkdf2.c', @@ -863,6 +993,11 @@ 'openssl/providers/implementations/kdfs/sskdf.c', 'openssl/providers/implementations/kdfs/tls1_prf.c', 'openssl/providers/implementations/kdfs/x942kdf.c', + 'openssl/providers/implementations/kem/ec_kem.c', + 'openssl/providers/implementations/kem/ecx_kem.c', + 'openssl/providers/implementations/kem/kem_util.c', + 'openssl/providers/implementations/kem/ml_kem_kem.c', + 'openssl/providers/implementations/kem/mlx_kem.c', 'openssl/providers/implementations/kem/rsa_kem.c', 'openssl/providers/implementations/keymgmt/dh_kmgmt.c', 'openssl/providers/implementations/keymgmt/dsa_kmgmt.c', @@ -870,7 +1005,11 @@ 'openssl/providers/implementations/keymgmt/ecx_kmgmt.c', 'openssl/providers/implementations/keymgmt/kdf_legacy_kmgmt.c', 'openssl/providers/implementations/keymgmt/mac_legacy_kmgmt.c', + 'openssl/providers/implementations/keymgmt/ml_dsa_kmgmt.c', + 'openssl/providers/implementations/keymgmt/ml_kem_kmgmt.c', + 'openssl/providers/implementations/keymgmt/mlx_kmgmt.c', 'openssl/providers/implementations/keymgmt/rsa_kmgmt.c', + 'openssl/providers/implementations/keymgmt/slh_dsa_kmgmt.c', 'openssl/providers/implementations/macs/blake2b_mac.c', 'openssl/providers/implementations/macs/blake2s_mac.c', 'openssl/providers/implementations/macs/cmac_prov.c', @@ -879,12 +1018,12 @@ 'openssl/providers/implementations/macs/kmac_prov.c', 'openssl/providers/implementations/macs/poly1305_prov.c', 'openssl/providers/implementations/macs/siphash_prov.c', - 'openssl/providers/implementations/rands/crngt.c', 'openssl/providers/implementations/rands/drbg.c', 'openssl/providers/implementations/rands/drbg_ctr.c', 'openssl/providers/implementations/rands/drbg_hash.c', 'openssl/providers/implementations/rands/drbg_hmac.c', 'openssl/providers/implementations/rands/seed_src.c', + 'openssl/providers/implementations/rands/seed_src_jitter.c', 'openssl/providers/implementations/rands/test_rng.c', 'openssl/providers/implementations/rands/seeding/rand_cpu_x86.c', 'openssl/providers/implementations/rands/seeding/rand_tsc.c', @@ -894,17 +1033,24 @@ 'openssl/providers/implementations/signature/ecdsa_sig.c', 'openssl/providers/implementations/signature/eddsa_sig.c', 'openssl/providers/implementations/signature/mac_legacy_sig.c', + 'openssl/providers/implementations/signature/ml_dsa_sig.c', 'openssl/providers/implementations/signature/rsa_sig.c', + 'openssl/providers/implementations/signature/slh_dsa_sig.c', 'openssl/providers/implementations/signature/sm2_sig.c', + 'openssl/providers/implementations/skeymgmt/aes_skmgmt.c', + 'openssl/providers/implementations/skeymgmt/generic.c', 'openssl/providers/implementations/storemgmt/file_store.c', 'openssl/providers/implementations/storemgmt/file_store_any2obj.c', - 'openssl/ssl/s3_cbc.c', + 'openssl/providers/implementations/storemgmt/winstore_store.c', + 'openssl/ssl/record/methods/ssl3_cbc.c', 'openssl/providers/common/der/der_dsa_key.c', 'openssl/providers/common/der/der_dsa_sig.c', 'openssl/providers/common/der/der_ec_key.c', 'openssl/providers/common/der/der_ec_sig.c', 'openssl/providers/common/der/der_ecx_key.c', + 'openssl/providers/common/der/der_ml_dsa_key.c', 'openssl/providers/common/der/der_rsa_key.c', + 'openssl/providers/common/der/der_slh_dsa_key.c', 'openssl/providers/common/provider_ctx.c', 'openssl/providers/common/provider_err.c', 'openssl/providers/implementations/ciphers/ciphercommon.c', @@ -915,7 +1061,7 @@ 'openssl/providers/implementations/ciphers/ciphercommon_gcm_hw.c', 'openssl/providers/implementations/ciphers/ciphercommon_hw.c', 'openssl/providers/implementations/digests/digestcommon.c', - 'openssl/ssl/record/tls_pad.c', + 'openssl/ssl/record/methods/tls_pad.c', 'openssl/providers/implementations/ciphers/cipher_blowfish.c', 'openssl/providers/implementations/ciphers/cipher_blowfish_hw.c', 'openssl/providers/implementations/ciphers/cipher_cast5.c', @@ -940,6 +1086,7 @@ 'openssl/providers/implementations/digests/ripemd_prov.c', 'openssl/providers/implementations/digests/wp_prov.c', 'openssl/providers/implementations/kdfs/pbkdf1.c', + 'openssl/providers/implementations/kdfs/pvkkdf.c', 'openssl/providers/prov_running.c', 'openssl/providers/legacyprov.c', ], @@ -949,10 +1096,16 @@ './config/archs/VC-WIN64A/asm_avx2/crypto/aes/aesni-sha1-x86_64.asm', './config/archs/VC-WIN64A/asm_avx2/crypto/aes/aesni-sha256-x86_64.asm', './config/archs/VC-WIN64A/asm_avx2/crypto/aes/aesni-x86_64.asm', + './config/archs/VC-WIN64A/asm_avx2/crypto/aes/aesni-xts-avx512.asm', './config/archs/VC-WIN64A/asm_avx2/crypto/aes/bsaes-x86_64.asm', './config/archs/VC-WIN64A/asm_avx2/crypto/aes/vpaes-x86_64.asm', + './config/archs/VC-WIN64A/asm_avx2/crypto/bn/rsaz-2k-avx512.asm', + './config/archs/VC-WIN64A/asm_avx2/crypto/bn/rsaz-2k-avxifma.asm', + './config/archs/VC-WIN64A/asm_avx2/crypto/bn/rsaz-3k-avx512.asm', + './config/archs/VC-WIN64A/asm_avx2/crypto/bn/rsaz-3k-avxifma.asm', + './config/archs/VC-WIN64A/asm_avx2/crypto/bn/rsaz-4k-avx512.asm', + './config/archs/VC-WIN64A/asm_avx2/crypto/bn/rsaz-4k-avxifma.asm', './config/archs/VC-WIN64A/asm_avx2/crypto/bn/rsaz-avx2.asm', - './config/archs/VC-WIN64A/asm_avx2/crypto/bn/rsaz-avx512.asm', './config/archs/VC-WIN64A/asm_avx2/crypto/bn/rsaz-x86_64.asm', './config/archs/VC-WIN64A/asm_avx2/crypto/bn/x86_64-gf2m.asm', './config/archs/VC-WIN64A/asm_avx2/crypto/bn/x86_64-mont.asm', @@ -961,8 +1114,10 @@ './config/archs/VC-WIN64A/asm_avx2/crypto/chacha/chacha-x86_64.asm', './config/archs/VC-WIN64A/asm_avx2/crypto/ec/ecp_nistz256-x86_64.asm', './config/archs/VC-WIN64A/asm_avx2/crypto/ec/x25519-x86_64.asm', + './config/archs/VC-WIN64A/asm_avx2/crypto/params_idx.c', './config/archs/VC-WIN64A/asm_avx2/crypto/x86_64cpuid.asm', './config/archs/VC-WIN64A/asm_avx2/crypto/md5/md5-x86_64.asm', + './config/archs/VC-WIN64A/asm_avx2/crypto/modes/aes-gcm-avx512.asm', './config/archs/VC-WIN64A/asm_avx2/crypto/modes/aesni-gcm-x86_64.asm', './config/archs/VC-WIN64A/asm_avx2/crypto/modes/ghash-x86_64.asm', './config/archs/VC-WIN64A/asm_avx2/crypto/poly1305/poly1305-x86_64.asm', @@ -981,7 +1136,9 @@ './config/archs/VC-WIN64A/asm_avx2/providers/common/der/der_dsa_gen.c', './config/archs/VC-WIN64A/asm_avx2/providers/common/der/der_ec_gen.c', './config/archs/VC-WIN64A/asm_avx2/providers/common/der/der_ecx_gen.c', + './config/archs/VC-WIN64A/asm_avx2/providers/common/der/der_ml_dsa_gen.c', './config/archs/VC-WIN64A/asm_avx2/providers/common/der/der_rsa_gen.c', + './config/archs/VC-WIN64A/asm_avx2/providers/common/der/der_slh_dsa_gen.c', './config/archs/VC-WIN64A/asm_avx2/providers/common/der/der_wrap_gen.c', ], 'openssl_defines_VC-WIN64A': [ diff --git a/deps/openssl/config/archs/VC-WIN64A/asm_avx2/providers/common/der/der_ml_dsa_gen.c b/deps/openssl/config/archs/VC-WIN64A/asm_avx2/providers/common/der/der_ml_dsa_gen.c new file mode 100644 index 00000000000000..4a8a113a268578 --- /dev/null +++ b/deps/openssl/config/archs/VC-WIN64A/asm_avx2/providers/common/der/der_ml_dsa_gen.c @@ -0,0 +1,37 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from providers/common/der/der_ml_dsa_gen.c.in + * + * Copyright 2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include "prov/der_ml_dsa.h" + +/* Well known OIDs precompiled */ + +/* + * id-ml-dsa-44 OBJECT IDENTIFIER ::= { sigAlgs 17 } + */ +const unsigned char ossl_der_oid_id_ml_dsa_44[DER_OID_SZ_id_ml_dsa_44] = { + DER_OID_V_id_ml_dsa_44 +}; + +/* + * id-ml-dsa-65 OBJECT IDENTIFIER ::= { sigAlgs 18 } + */ +const unsigned char ossl_der_oid_id_ml_dsa_65[DER_OID_SZ_id_ml_dsa_65] = { + DER_OID_V_id_ml_dsa_65 +}; + +/* + * id-ml-dsa-87 OBJECT IDENTIFIER ::= { sigAlgs 19 } + */ +const unsigned char ossl_der_oid_id_ml_dsa_87[DER_OID_SZ_id_ml_dsa_87] = { + DER_OID_V_id_ml_dsa_87 +}; + diff --git a/deps/openssl/config/archs/VC-WIN64A/asm_avx2/providers/common/der/der_slh_dsa_gen.c b/deps/openssl/config/archs/VC-WIN64A/asm_avx2/providers/common/der/der_slh_dsa_gen.c new file mode 100644 index 00000000000000..1419a9515097dd --- /dev/null +++ b/deps/openssl/config/archs/VC-WIN64A/asm_avx2/providers/common/der/der_slh_dsa_gen.c @@ -0,0 +1,100 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from providers/common/der/der_slh_dsa_gen.c.in + * + * Copyright 2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include "prov/der_slh_dsa.h" + +/* Well known OIDs precompiled */ + +/* + * id-slh-dsa-sha2-128s OBJECT IDENTIFIER ::= { sigAlgs 20 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_128s[DER_OID_SZ_id_slh_dsa_sha2_128s] = { + DER_OID_V_id_slh_dsa_sha2_128s +}; + +/* + * id-slh-dsa-sha2-128f OBJECT IDENTIFIER ::= { sigAlgs 21 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_128f[DER_OID_SZ_id_slh_dsa_sha2_128f] = { + DER_OID_V_id_slh_dsa_sha2_128f +}; + +/* + * id-slh-dsa-sha2-192s OBJECT IDENTIFIER ::= { sigAlgs 22 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_192s[DER_OID_SZ_id_slh_dsa_sha2_192s] = { + DER_OID_V_id_slh_dsa_sha2_192s +}; + +/* + * id-slh-dsa-sha2-192f OBJECT IDENTIFIER ::= { sigAlgs 23 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_192f[DER_OID_SZ_id_slh_dsa_sha2_192f] = { + DER_OID_V_id_slh_dsa_sha2_192f +}; + +/* + * id-slh-dsa-sha2-256s OBJECT IDENTIFIER ::= { sigAlgs 24 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_256s[DER_OID_SZ_id_slh_dsa_sha2_256s] = { + DER_OID_V_id_slh_dsa_sha2_256s +}; + +/* + * id-slh-dsa-sha2-256f OBJECT IDENTIFIER ::= { sigAlgs 25 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_256f[DER_OID_SZ_id_slh_dsa_sha2_256f] = { + DER_OID_V_id_slh_dsa_sha2_256f +}; + +/* + * id-slh-dsa-shake-128s OBJECT IDENTIFIER ::= { sigAlgs 26 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_128s[DER_OID_SZ_id_slh_dsa_shake_128s] = { + DER_OID_V_id_slh_dsa_shake_128s +}; + +/* + * id-slh-dsa-shake-128f OBJECT IDENTIFIER ::= { sigAlgs 27 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_128f[DER_OID_SZ_id_slh_dsa_shake_128f] = { + DER_OID_V_id_slh_dsa_shake_128f +}; + +/* + * id-slh-dsa-shake-192s OBJECT IDENTIFIER ::= { sigAlgs 28 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_192s[DER_OID_SZ_id_slh_dsa_shake_192s] = { + DER_OID_V_id_slh_dsa_shake_192s +}; + +/* + * id-slh-dsa-shake-192f OBJECT IDENTIFIER ::= { sigAlgs 29 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_192f[DER_OID_SZ_id_slh_dsa_shake_192f] = { + DER_OID_V_id_slh_dsa_shake_192f +}; + +/* + * id-slh-dsa-shake-256s OBJECT IDENTIFIER ::= { sigAlgs 30 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_256s[DER_OID_SZ_id_slh_dsa_shake_256s] = { + DER_OID_V_id_slh_dsa_shake_256s +}; + +/* + * id-slh-dsa-shake-256f OBJECT IDENTIFIER ::= { sigAlgs 31 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_256f[DER_OID_SZ_id_slh_dsa_shake_256f] = { + DER_OID_V_id_slh_dsa_shake_256f +}; + diff --git a/deps/openssl/config/archs/VC-WIN64A/asm_avx2/providers/common/include/prov/der_ml_dsa.h b/deps/openssl/config/archs/VC-WIN64A/asm_avx2/providers/common/include/prov/der_ml_dsa.h new file mode 100644 index 00000000000000..c55f780ab4527c --- /dev/null +++ b/deps/openssl/config/archs/VC-WIN64A/asm_avx2/providers/common/include/prov/der_ml_dsa.h @@ -0,0 +1,40 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from providers/common/include/prov/der_ml_dsa.h.in + * + * Copyright 2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include "internal/der.h" +#include "crypto/ml_dsa.h" + +/* Well known OIDs precompiled */ + +/* + * id-ml-dsa-44 OBJECT IDENTIFIER ::= { sigAlgs 17 } + */ +#define DER_OID_V_id_ml_dsa_44 DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x11 +#define DER_OID_SZ_id_ml_dsa_44 11 +extern const unsigned char ossl_der_oid_id_ml_dsa_44[DER_OID_SZ_id_ml_dsa_44]; + +/* + * id-ml-dsa-65 OBJECT IDENTIFIER ::= { sigAlgs 18 } + */ +#define DER_OID_V_id_ml_dsa_65 DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x12 +#define DER_OID_SZ_id_ml_dsa_65 11 +extern const unsigned char ossl_der_oid_id_ml_dsa_65[DER_OID_SZ_id_ml_dsa_65]; + +/* + * id-ml-dsa-87 OBJECT IDENTIFIER ::= { sigAlgs 19 } + */ +#define DER_OID_V_id_ml_dsa_87 DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x13 +#define DER_OID_SZ_id_ml_dsa_87 11 +extern const unsigned char ossl_der_oid_id_ml_dsa_87[DER_OID_SZ_id_ml_dsa_87]; + + +int ossl_DER_w_algorithmIdentifier_ML_DSA(WPACKET *pkt, int tag, ML_DSA_KEY *key); diff --git a/deps/openssl/config/archs/VC-WIN64A/asm_avx2/providers/common/include/prov/der_slh_dsa.h b/deps/openssl/config/archs/VC-WIN64A/asm_avx2/providers/common/include/prov/der_slh_dsa.h new file mode 100644 index 00000000000000..760f8e7699be72 --- /dev/null +++ b/deps/openssl/config/archs/VC-WIN64A/asm_avx2/providers/common/include/prov/der_slh_dsa.h @@ -0,0 +1,103 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from providers/common/include/prov/der_slh_dsa.h.in + * + * Copyright 2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include "internal/der.h" +#include "crypto/slh_dsa.h" + +/* Well known OIDs precompiled */ + +/* + * id-slh-dsa-sha2-128s OBJECT IDENTIFIER ::= { sigAlgs 20 } + */ +#define DER_OID_V_id_slh_dsa_sha2_128s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x14 +#define DER_OID_SZ_id_slh_dsa_sha2_128s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_128s[DER_OID_SZ_id_slh_dsa_sha2_128s]; + +/* + * id-slh-dsa-sha2-128f OBJECT IDENTIFIER ::= { sigAlgs 21 } + */ +#define DER_OID_V_id_slh_dsa_sha2_128f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x15 +#define DER_OID_SZ_id_slh_dsa_sha2_128f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_128f[DER_OID_SZ_id_slh_dsa_sha2_128f]; + +/* + * id-slh-dsa-sha2-192s OBJECT IDENTIFIER ::= { sigAlgs 22 } + */ +#define DER_OID_V_id_slh_dsa_sha2_192s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x16 +#define DER_OID_SZ_id_slh_dsa_sha2_192s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_192s[DER_OID_SZ_id_slh_dsa_sha2_192s]; + +/* + * id-slh-dsa-sha2-192f OBJECT IDENTIFIER ::= { sigAlgs 23 } + */ +#define DER_OID_V_id_slh_dsa_sha2_192f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x17 +#define DER_OID_SZ_id_slh_dsa_sha2_192f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_192f[DER_OID_SZ_id_slh_dsa_sha2_192f]; + +/* + * id-slh-dsa-sha2-256s OBJECT IDENTIFIER ::= { sigAlgs 24 } + */ +#define DER_OID_V_id_slh_dsa_sha2_256s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x18 +#define DER_OID_SZ_id_slh_dsa_sha2_256s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_256s[DER_OID_SZ_id_slh_dsa_sha2_256s]; + +/* + * id-slh-dsa-sha2-256f OBJECT IDENTIFIER ::= { sigAlgs 25 } + */ +#define DER_OID_V_id_slh_dsa_sha2_256f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x19 +#define DER_OID_SZ_id_slh_dsa_sha2_256f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_256f[DER_OID_SZ_id_slh_dsa_sha2_256f]; + +/* + * id-slh-dsa-shake-128s OBJECT IDENTIFIER ::= { sigAlgs 26 } + */ +#define DER_OID_V_id_slh_dsa_shake_128s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1A +#define DER_OID_SZ_id_slh_dsa_shake_128s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_128s[DER_OID_SZ_id_slh_dsa_shake_128s]; + +/* + * id-slh-dsa-shake-128f OBJECT IDENTIFIER ::= { sigAlgs 27 } + */ +#define DER_OID_V_id_slh_dsa_shake_128f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1B +#define DER_OID_SZ_id_slh_dsa_shake_128f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_128f[DER_OID_SZ_id_slh_dsa_shake_128f]; + +/* + * id-slh-dsa-shake-192s OBJECT IDENTIFIER ::= { sigAlgs 28 } + */ +#define DER_OID_V_id_slh_dsa_shake_192s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1C +#define DER_OID_SZ_id_slh_dsa_shake_192s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_192s[DER_OID_SZ_id_slh_dsa_shake_192s]; + +/* + * id-slh-dsa-shake-192f OBJECT IDENTIFIER ::= { sigAlgs 29 } + */ +#define DER_OID_V_id_slh_dsa_shake_192f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1D +#define DER_OID_SZ_id_slh_dsa_shake_192f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_192f[DER_OID_SZ_id_slh_dsa_shake_192f]; + +/* + * id-slh-dsa-shake-256s OBJECT IDENTIFIER ::= { sigAlgs 30 } + */ +#define DER_OID_V_id_slh_dsa_shake_256s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1E +#define DER_OID_SZ_id_slh_dsa_shake_256s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_256s[DER_OID_SZ_id_slh_dsa_shake_256s]; + +/* + * id-slh-dsa-shake-256f OBJECT IDENTIFIER ::= { sigAlgs 31 } + */ +#define DER_OID_V_id_slh_dsa_shake_256f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1F +#define DER_OID_SZ_id_slh_dsa_shake_256f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_256f[DER_OID_SZ_id_slh_dsa_shake_256f]; + + +int ossl_DER_w_algorithmIdentifier_SLH_DSA(WPACKET *pkt, int tag, SLH_DSA_KEY *key); diff --git a/deps/openssl/config/archs/VC-WIN64A/no-asm/apps/progs.c b/deps/openssl/config/archs/VC-WIN64A/no-asm/apps/progs.c index 43cef00799b86e..acc204a3e6e781 100644 --- a/deps/openssl/config/archs/VC-WIN64A/no-asm/apps/progs.c +++ b/deps/openssl/config/archs/VC-WIN64A/no-asm/apps/progs.c @@ -89,6 +89,7 @@ FUNCTION functions[] = { {FT_general, "s_time", s_time_main, s_time_options, NULL, NULL}, #endif {FT_general, "sess_id", sess_id_main, sess_id_options, NULL, NULL}, + {FT_general, "skeyutl", skeyutl_main, skeyutl_options, NULL, NULL}, {FT_general, "smime", smime_main, smime_options, NULL, NULL}, {FT_general, "speed", speed_main, speed_options, NULL, NULL}, {FT_general, "spkac", spkac_main, spkac_options, NULL, NULL}, @@ -225,9 +226,15 @@ FUNCTION functions[] = { {FT_cipher, "camellia-256-ecb", enc_main, enc_options, NULL}, #endif {FT_cipher, "base64", enc_main, enc_options, NULL}, -#ifdef ZLIB +#ifndef OPENSSL_NO_ZLIB {FT_cipher, "zlib", enc_main, enc_options, NULL}, #endif +#ifndef OPENSSL_NO_BROTLI + {FT_cipher, "brotli", enc_main, enc_options, NULL}, +#endif +#ifndef OPENSSL_NO_ZSTD + {FT_cipher, "zstd", enc_main, enc_options, NULL}, +#endif #ifndef OPENSSL_NO_DES {FT_cipher, "des", enc_main, enc_options, NULL}, #endif diff --git a/deps/openssl/config/archs/VC-WIN64A/no-asm/configdata.pm b/deps/openssl/config/archs/VC-WIN64A/no-asm/configdata.pm index 854195aa427b28..aba14ccb65b60b 100644 --- a/deps/openssl/config/archs/VC-WIN64A/no-asm/configdata.pm +++ b/deps/openssl/config/archs/VC-WIN64A/no-asm/configdata.pm @@ -32,6 +32,7 @@ our %config = ( "CPPINCLUDES" => [], "CXXFLAGS" => [], "FIPSKEY" => "f4556650ac31d35461610bac4ed81b1a181b2d8a43ea2854cbae22ca74560813", + "FIPS_VENDOR" => "OpenSSL FIPS Provider", "HASHBANGPERL" => "/usr/bin/env perl", "LD" => "link", "LDFLAGS" => [ @@ -46,7 +47,7 @@ our %config = ( "RANLIB" => "ranlib", "RC" => "rc", "RCFLAGS" => [], - "api" => "30000", + "api" => "30500", "b32" => "0", "b64" => "1", "b64l" => "0", @@ -68,11 +69,13 @@ our %config = ( "doc/build.info", "test/build.info", "engines/build.info", + "exporters/build.info", "crypto/objects/build.info", "crypto/buffer/build.info", "crypto/bio/build.info", "crypto/stack/build.info", "crypto/lhash/build.info", + "crypto/hashtable/build.info", "crypto/rand/build.info", "crypto/evp/build.info", "crypto/asn1/build.info", @@ -90,6 +93,7 @@ our %config = ( "crypto/md5/build.info", "crypto/sha/build.info", "crypto/mdc2/build.info", + "crypto/ml_kem/build.info", "crypto/hmac/build.info", "crypto/ripemd/build.info", "crypto/whrlpool/build.info", @@ -131,11 +135,19 @@ our %config = ( "crypto/cmp/build.info", "crypto/encode_decode/build.info", "crypto/ffc/build.info", + "crypto/hpke/build.info", + "crypto/thread/build.info", + "crypto/ml_dsa/build.info", + "crypto/slh_dsa/build.info", + "ssl/record/build.info", + "ssl/rio/build.info", + "ssl/quic/build.info", "apps/lib/build.info", "providers/common/build.info", "providers/implementations/build.info", "providers/fips/build.info", "doc/man1/build.info", + "ssl/record/methods/build.info", "providers/common/der/build.info", "providers/implementations/digests/build.info", "providers/implementations/ciphers/build.info", @@ -149,6 +161,7 @@ our %config = ( "providers/implementations/encode_decode/build.info", "providers/implementations/storemgmt/build.info", "providers/implementations/kem/build.info", + "providers/implementations/skeymgmt/build.info", "providers/implementations/rands/seeding/build.info" ], "build_metadata" => "", @@ -166,7 +179,7 @@ our %config = ( ], "dynamic_engines" => "0", "ex_libs" => [], - "full_version" => "3.0.17", + "full_version" => "3.5.1", "includes" => [], "lflags" => [], "lib_defines" => [ @@ -176,9 +189,9 @@ our %config = ( "major" => "3", "makedep_scheme" => "VC", "makedepcmd" => "\$(CC) /Zs /showIncludes", - "minor" => "0", + "minor" => "5", "openssl_api_defines" => [ - "OPENSSL_CONFIGURED_API=30000" + "OPENSSL_CONFIGURED_API=30500" ], "openssl_feature_defines" => [ "OPENSSL_RAND_SEED_OS", @@ -186,28 +199,42 @@ our %config = ( "OPENSSL_NO_AFALGENG", "OPENSSL_NO_ASAN", "OPENSSL_NO_ASM", + "OPENSSL_NO_BROTLI", + "OPENSSL_NO_BROTLI_DYNAMIC", "OPENSSL_NO_COMP", "OPENSSL_NO_CRYPTO_MDEBUG", "OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE", + "OPENSSL_NO_DEMOS", "OPENSSL_NO_DEVCRYPTOENG", "OPENSSL_NO_EC_NISTP_64_GCC_128", "OPENSSL_NO_EGD", "OPENSSL_NO_EXTERNAL_TESTS", + "OPENSSL_NO_FIPS_JITTER", "OPENSSL_NO_FUZZ_AFL", "OPENSSL_NO_FUZZ_LIBFUZZER", + "OPENSSL_NO_H3DEMO", + "OPENSSL_NO_HQINTEROP", + "OPENSSL_NO_JITTER", "OPENSSL_NO_KTLS", "OPENSSL_NO_LOADERENG", "OPENSSL_NO_MD2", "OPENSSL_NO_MSAN", + "OPENSSL_NO_PIE", "OPENSSL_NO_RC5", "OPENSSL_NO_SCTP", "OPENSSL_NO_SSL3", "OPENSSL_NO_SSL3_METHOD", + "OPENSSL_NO_SSLKEYLOG", + "OPENSSL_NO_TFO", "OPENSSL_NO_TRACE", "OPENSSL_NO_UBSAN", "OPENSSL_NO_UNIT_TEST", "OPENSSL_NO_UPLINK", "OPENSSL_NO_WEAK_SSL_CIPHERS", + "OPENSSL_NO_ZLIB", + "OPENSSL_NO_ZLIB_DYNAMIC", + "OPENSSL_NO_ZSTD", + "OPENSSL_NO_ZSTD_DYNAMIC", "OPENSSL_NO_DYNAMIC_ENGINE" ], "openssl_other_defines" => [ @@ -217,11 +244,11 @@ our %config = ( "OPENSSL_SYS_WIN64A" ], "openssldir" => "", - "options" => "enable-ssl-trace enable-fips no-afalgeng no-asan no-asm no-buildtest-c++ no-comp no-crypto-mdebug no-crypto-mdebug-backtrace no-devcryptoeng no-dynamic-engine no-ec_nistp_64_gcc_128 no-egd no-external-tests no-fuzz-afl no-fuzz-libfuzzer no-ktls no-loadereng no-md2 no-msan no-rc5 no-sctp no-shared no-ssl3 no-ssl3-method no-trace no-ubsan no-unit-test no-uplink no-weak-ssl-ciphers no-zlib no-zlib-dynamic", - "patch" => "17", + "options" => "enable-ssl-trace enable-fips no-afalgeng no-asan no-asm no-brotli no-brotli-dynamic no-buildtest-c++ no-comp no-crypto-mdebug no-crypto-mdebug-backtrace no-demos no-devcryptoeng no-dynamic-engine no-ec_nistp_64_gcc_128 no-egd no-external-tests no-fips-jitter no-fuzz-afl no-fuzz-libfuzzer no-h3demo no-hqinterop no-jitter no-ktls no-loadereng no-md2 no-msan no-pie no-rc5 no-sctp no-shared no-ssl3 no-ssl3-method no-sslkeylog no-tfo no-trace no-ubsan no-unit-test no-uplink no-weak-ssl-ciphers no-zlib no-zlib-dynamic no-zstd no-zstd-dynamic", + "patch" => "1", "perl_archname" => "x86_64-linux-gnu-thread-multi", "perl_cmd" => "/usr/bin/perl", - "perl_version" => "5.38.2", + "perl_version" => "5.34.0", "perlargv" => [ "no-comp", "no-shared", @@ -252,6 +279,7 @@ our %config = ( "LDLIBS" => undef, "MT" => undef, "MTFLAGS" => undef, + "OBJCOPY" => undef, "OPENSSL_LOCAL_CONFIG_DIR" => undef, "PERL" => undef, "RANLIB" => undef, @@ -275,7 +303,7 @@ our %config = ( "shlib_version" => "3", "sourcedir" => ".", "target" => "VC-WIN64A", - "version" => "3.0.17" + "version" => "3.5.1" ); our %target = ( "AR" => "lib", @@ -290,7 +318,7 @@ our %target = ( "LDFLAGS" => "/nologo /debug", "MT" => "mt", "MTFLAGS" => "-nologo", - "RANLIB" => "CODE(0x562f363ed508)", + "RANLIB" => "CODE(0x562964a84f60)", "RC" => "rc", "_conf_fname_int" => [ "Configurations/00-base-templates.conf", @@ -374,6 +402,8 @@ our %target = ( our @disablables = ( "acvp-tests", "afalgeng", + "apps", + "argon2", "aria", "asan", "asm", @@ -384,11 +414,14 @@ our @disablables = ( "autoload-config", "bf", "blake2", + "brotli", + "brotli-dynamic", "buildtest-c++", "bulk", "cached-fetch", "camellia", "capieng", + "winstore", "cast", "chacha", "cmac", @@ -397,11 +430,16 @@ our @disablables = ( "comp", "crypto-mdebug", "ct", + "default-thread-pool", + "demos", + "h3demo", + "hqinterop", "deprecated", "des", "devcryptoeng", "dgram", "dh", + "docs", "dsa", "dso", "dtls", @@ -411,6 +449,7 @@ our @disablables = ( "ec_nistp_64_gcc_128", "ecdh", "ecdsa", + "ecx", "egd", "engine", "err", @@ -418,10 +457,15 @@ our @disablables = ( "filenames", "fips", "fips-securitychecks", + "fips-post", + "fips-jitter", "fuzz-afl", "fuzz-libfuzzer", "gost", + "http", "idea", + "integrity-only-ciphers", + "jitter", "ktls", "legacy", "loadereng", @@ -429,6 +473,8 @@ our @disablables = ( "md2", "md4", "mdc2", + "ml-dsa", + "ml-kem", "module", "msan", "multiblock", @@ -437,10 +483,13 @@ our @disablables = ( "ocsp", "padlockeng", "pic", + "pie", "pinshared", "poly1305", "posix-io", "psk", + "quic", + "unstable-qlog", "rc2", "rc4", "rc5", @@ -454,7 +503,9 @@ our @disablables = ( "shared", "siphash", "siv", + "slh-dsa", "sm2", + "sm2-precomp", "sm3", "sm4", "sock", @@ -465,9 +516,13 @@ our @disablables = ( "ssl-trace", "static-engine", "stdio", + "sslkeylog", "tests", + "tfo", + "thread-pool", "threads", "tls", + "tls-deprecated-ec", "trace", "ts", "ubsan", @@ -478,6 +533,8 @@ our @disablables = ( "whirlpool", "zlib", "zlib-dynamic", + "zstd", + "zstd-dynamic", "ssl3", "ssl3-method", "tls1", @@ -499,33 +556,45 @@ our %disabled = ( "afalgeng" => "option", "asan" => "default", "asm" => "option", + "brotli" => "default", + "brotli-dynamic" => "default", "buildtest-c++" => "default", "comp" => "option", "crypto-mdebug" => "default", "crypto-mdebug-backtrace" => "default", + "demos" => "default", "devcryptoeng" => "default", "dynamic-engine" => "cascade", "ec_nistp_64_gcc_128" => "default", "egd" => "default", "external-tests" => "default", + "fips-jitter" => "default", "fuzz-afl" => "default", "fuzz-libfuzzer" => "default", + "h3demo" => "default", + "hqinterop" => "default", + "jitter" => "default", "ktls" => "default", "loadereng" => "cascade", "md2" => "default", "msan" => "default", + "pie" => "default", "rc5" => "default", "sctp" => "default", "shared" => "option", "ssl3" => "default", "ssl3-method" => "default", + "sslkeylog" => "default", + "tfo" => "default", "trace" => "default", "ubsan" => "default", "unit-test" => "default", "uplink" => "cascade", "weak-ssl-ciphers" => "default", "zlib" => "default", - "zlib-dynamic" => "default" + "zlib-dynamic" => "default", + "zstd" => "default", + "zstd-dynamic" => "default" ); our %withargs = (); our %unified_info = ( @@ -751,6 +820,11 @@ our %unified_info = ( "pod" => "1" } }, + "doc/man1/openssl-skeyutl.pod" => { + "doc/man1/openssl-skeyutl.pod.in" => { + "pod" => "1" + } + }, "doc/man1/openssl-smime.pod" => { "doc/man1/openssl-smime.pod.in" => { "pod" => "1" @@ -808,6 +882,21 @@ our %unified_info = ( } }, "generate" => { + "exporters/OpenSSLConfig.cmake" => { + "exporter" => "cmake" + }, + "exporters/OpenSSLConfigVersion.cmake" => { + "exporter" => "cmake" + }, + "exporters/libcrypto.pc" => { + "exporter" => "pkg-config" + }, + "exporters/libssl.pc" => { + "exporter" => "pkg-config" + }, + "exporters/openssl.pc" => { + "exporter" => "pkg-config" + }, "include/openssl/configuration.h" => { "skip" => "1" } @@ -828,6 +917,9 @@ our %unified_info = ( "providers/liblegacy.a" => { "noinst" => "1" }, + "providers/libtemplate.a" => { + "noinst" => "1" + }, "test/libtestutil.a" => { "has_main" => "1", "noinst" => "1" @@ -845,6 +937,9 @@ our %unified_info = ( } }, "programs" => { + "fuzz/acert-test" => { + "noinst" => "1" + }, "fuzz/asn1-test" => { "noinst" => "1" }, @@ -875,9 +970,60 @@ our %unified_info = ( "fuzz/ct-test" => { "noinst" => "1" }, + "fuzz/decoder-test" => { + "noinst" => "1" + }, + "fuzz/dtlsclient-test" => { + "noinst" => "1" + }, + "fuzz/dtlsserver-test" => { + "noinst" => "1" + }, + "fuzz/hashtable-test" => { + "noinst" => "1" + }, + "fuzz/ml-dsa-test" => { + "noinst" => "1" + }, + "fuzz/ml-kem-test" => { + "noinst" => "1" + }, + "fuzz/pem-test" => { + "noinst" => "1" + }, + "fuzz/provider-test" => { + "noinst" => "1" + }, + "fuzz/punycode-test" => { + "noinst" => "1" + }, + "fuzz/quic-client-test" => { + "noinst" => "1" + }, + "fuzz/quic-lcidm-test" => { + "noinst" => "1" + }, + "fuzz/quic-rcidm-test" => { + "noinst" => "1" + }, + "fuzz/quic-server-test" => { + "noinst" => "1" + }, + "fuzz/quic-srtm-test" => { + "noinst" => "1" + }, "fuzz/server-test" => { "noinst" => "1" }, + "fuzz/slh-dsa-test" => { + "noinst" => "1" + }, + "fuzz/smime-test" => { + "noinst" => "1" + }, + "fuzz/v3name-test" => { + "noinst" => "1" + }, "fuzz/x509-test" => { "noinst" => "1" }, @@ -929,18 +1075,30 @@ our %unified_info = ( "test/bftest" => { "noinst" => "1" }, + "test/bio_addr_test" => { + "noinst" => "1" + }, + "test/bio_base64_test" => { + "noinst" => "1" + }, "test/bio_callback_test" => { "noinst" => "1" }, "test/bio_core_test" => { "noinst" => "1" }, + "test/bio_dgram_test" => { + "noinst" => "1" + }, "test/bio_enc_test" => { "noinst" => "1" }, "test/bio_memleak_test" => { "noinst" => "1" }, + "test/bio_meth_test" => { + "noinst" => "1" + }, "test/bio_prefix_text" => { "noinst" => "1" }, @@ -950,6 +1108,9 @@ our %unified_info = ( "test/bio_readbuffer_test" => { "noinst" => "1" }, + "test/bio_tfo_test" => { + "noinst" => "1" + }, "test/bioprinttest" => { "noinst" => "1" }, @@ -959,6 +1120,9 @@ our %unified_info = ( "test/bntest" => { "noinst" => "1" }, + "test/build_wincrypt_test" => { + "noinst" => "1" + }, "test/buildtest_c_aes" => { "noinst" => "1" }, @@ -974,6 +1138,9 @@ our %unified_info = ( "test/buildtest_c_buffer" => { "noinst" => "1" }, + "test/buildtest_c_byteorder" => { + "noinst" => "1" + }, "test/buildtest_c_camellia" => { "noinst" => "1" }, @@ -998,9 +1165,6 @@ our %unified_info = ( "test/buildtest_c_core_dispatch" => { "noinst" => "1" }, - "test/buildtest_c_core_names" => { - "noinst" => "1" - }, "test/buildtest_c_core_object" => { "noinst" => "1" }, @@ -1025,6 +1189,9 @@ our %unified_info = ( "test/buildtest_c_e_os2" => { "noinst" => "1" }, + "test/buildtest_c_e_ostime" => { + "noinst" => "1" + }, "test/buildtest_c_ebcdic" => { "noinst" => "1" }, @@ -1052,12 +1219,18 @@ our %unified_info = ( "test/buildtest_c_hmac" => { "noinst" => "1" }, + "test/buildtest_c_hpke" => { + "noinst" => "1" + }, "test/buildtest_c_http" => { "noinst" => "1" }, "test/buildtest_c_idea" => { "noinst" => "1" }, + "test/buildtest_c_indicator" => { + "noinst" => "1" + }, "test/buildtest_c_kdf" => { "noinst" => "1" }, @@ -1073,6 +1246,9 @@ our %unified_info = ( "test/buildtest_c_mdc2" => { "noinst" => "1" }, + "test/buildtest_c_ml_kem" => { + "noinst" => "1" + }, "test/buildtest_c_modes" => { "noinst" => "1" }, @@ -1103,6 +1279,9 @@ our %unified_info = ( "test/buildtest_c_provider" => { "noinst" => "1" }, + "test/buildtest_c_quic" => { + "noinst" => "1" + }, "test/buildtest_c_rand" => { "noinst" => "1" }, @@ -1145,6 +1324,9 @@ our %unified_info = ( "test/buildtest_c_symhacks" => { "noinst" => "1" }, + "test/buildtest_c_thread" => { + "noinst" => "1" + }, "test/buildtest_c_tls1" => { "noinst" => "1" }, @@ -1160,6 +1342,12 @@ our %unified_info = ( "test/buildtest_c_whrlpool" => { "noinst" => "1" }, + "test/byteorder_test" => { + "noinst" => "1" + }, + "test/ca_internals_test" => { + "noinst" => "1" + }, "test/casttest" => { "noinst" => "1" }, @@ -1244,6 +1432,9 @@ our %unified_info = ( "test/danetest" => { "noinst" => "1" }, + "test/decoder_propq_test" => { + "noinst" => "1" + }, "test/defltfips_test" => { "noinst" => "1" }, @@ -1316,15 +1507,24 @@ our %unified_info = ( "test/evp_pkey_ctx_new_from_name" => { "noinst" => "1" }, + "test/evp_pkey_dhkem_test" => { + "noinst" => "1" + }, "test/evp_pkey_dparams_test" => { "noinst" => "1" }, "test/evp_pkey_provided_test" => { "noinst" => "1" }, + "test/evp_skey_test" => { + "noinst" => "1" + }, "test/evp_test" => { "noinst" => "1" }, + "test/evp_xof_test" => { + "noinst" => "1" + }, "test/exdatatest" => { "noinst" => "1" }, @@ -1352,6 +1552,9 @@ our %unified_info = ( "test/hmactest" => { "noinst" => "1" }, + "test/hpke_test" => { + "noinst" => "1" + }, "test/http_test" => { "noinst" => "1" }, @@ -1361,12 +1564,18 @@ our %unified_info = ( "test/igetest" => { "noinst" => "1" }, + "test/json_test" => { + "noinst" => "1" + }, "test/keymgmt_internal_test" => { "noinst" => "1" }, "test/lhash_test" => { "noinst" => "1" }, + "test/list_test" => { + "noinst" => "1" + }, "test/localetest" => { "noinst" => "1" }, @@ -1376,9 +1585,21 @@ our %unified_info = ( "test/mdc2test" => { "noinst" => "1" }, + "test/membio_test" => { + "noinst" => "1" + }, "test/memleaktest" => { "noinst" => "1" }, + "test/ml_dsa_test" => { + "noinst" => "1" + }, + "test/ml_kem_evp_extra_test" => { + "noinst" => "1" + }, + "test/ml_kem_internal_test" => { + "noinst" => "1" + }, "test/modes_internal_test" => { "noinst" => "1" }, @@ -1397,6 +1618,9 @@ our %unified_info = ( "test/packettest" => { "noinst" => "1" }, + "test/pairwise_fail_test" => { + "noinst" => "1" + }, "test/param_build_test" => { "noinst" => "1" }, @@ -1421,6 +1645,9 @@ our %unified_info = ( "test/pemtest" => { "noinst" => "1" }, + "test/pkcs12_api_test" => { + "noinst" => "1" + }, "test/pkcs12_format_test" => { "noinst" => "1" }, @@ -1436,6 +1663,9 @@ our %unified_info = ( "test/poly1305_internal_test" => { "noinst" => "1" }, + "test/priority_queue_test" => { + "noinst" => "1" + }, "test/property_test" => { "noinst" => "1" }, @@ -1445,6 +1675,9 @@ our %unified_info = ( "test/provfetchtest" => { "noinst" => "1" }, + "test/provider_default_search_path_test" => { + "noinst" => "1" + }, "test/provider_fallback_test" => { "noinst" => "1" }, @@ -1463,6 +1696,72 @@ our %unified_info = ( "test/punycode_test" => { "noinst" => "1" }, + "test/quic_ackm_test" => { + "noinst" => "1" + }, + "test/quic_cc_test" => { + "noinst" => "1" + }, + "test/quic_cfq_test" => { + "noinst" => "1" + }, + "test/quic_client_test" => { + "noinst" => "1" + }, + "test/quic_fc_test" => { + "noinst" => "1" + }, + "test/quic_fifd_test" => { + "noinst" => "1" + }, + "test/quic_lcidm_test" => { + "noinst" => "1" + }, + "test/quic_multistream_test" => { + "noinst" => "1" + }, + "test/quic_newcid_test" => { + "noinst" => "1" + }, + "test/quic_qlog_test" => { + "noinst" => "1" + }, + "test/quic_radix_test" => { + "noinst" => "1" + }, + "test/quic_rcidm_test" => { + "noinst" => "1" + }, + "test/quic_record_test" => { + "noinst" => "1" + }, + "test/quic_srt_gen_test" => { + "noinst" => "1" + }, + "test/quic_srtm_test" => { + "noinst" => "1" + }, + "test/quic_stream_test" => { + "noinst" => "1" + }, + "test/quic_tserver_test" => { + "noinst" => "1" + }, + "test/quic_txp_test" => { + "noinst" => "1" + }, + "test/quic_txpim_test" => { + "noinst" => "1" + }, + "test/quic_wire_test" => { + "noinst" => "1" + }, + "test/quicapitest" => { + "noinst" => "1" + }, + "test/quicfaultstest" => { + "noinst" => "1" + }, "test/rand_status_test" => { "noinst" => "1" }, @@ -1478,12 +1777,15 @@ our %unified_info = ( "test/rc5test" => { "noinst" => "1" }, - "test/rdrand_sanitytest" => { + "test/rdcpu_sanitytest" => { "noinst" => "1" }, "test/recordlentest" => { "noinst" => "1" }, + "test/rpktest" => { + "noinst" => "1" + }, "test/rsa_complex" => { "noinst" => "1" }, @@ -1496,6 +1798,12 @@ our %unified_info = ( "test/rsa_test" => { "noinst" => "1" }, + "test/rsa_x931_test" => { + "noinst" => "1" + }, + "test/safe_math_test" => { + "noinst" => "1" + }, "test/sanitytest" => { "noinst" => "1" }, @@ -1511,6 +1819,9 @@ our %unified_info = ( "test/siphash_internal_test" => { "noinst" => "1" }, + "test/slh_dsa_test" => { + "noinst" => "1" + }, "test/sm2_internal_test" => { "noinst" => "1" }, @@ -1532,6 +1843,9 @@ our %unified_info = ( "test/ssl_ctx_test" => { "noinst" => "1" }, + "test/ssl_handshake_rtt_test" => { + "noinst" => "1" + }, "test/ssl_old_test" => { "noinst" => "1" }, @@ -1553,12 +1867,18 @@ our %unified_info = ( "test/stack_test" => { "noinst" => "1" }, + "test/strtoultest" => { + "noinst" => "1" + }, "test/sysdefaulttest" => { "noinst" => "1" }, "test/test_test" => { "noinst" => "1" }, + "test/threadpool_test" => { + "noinst" => "1" + }, "test/threadstest" => { "noinst" => "1" }, @@ -1568,12 +1888,18 @@ our %unified_info = ( "test/time_offset_test" => { "noinst" => "1" }, + "test/time_test" => { + "noinst" => "1" + }, "test/tls13ccstest" => { "noinst" => "1" }, "test/tls13encryptiontest" => { "noinst" => "1" }, + "test/tls13groupselection_test" => { + "noinst" => "1" + }, "test/trace_api_test" => { "noinst" => "1" }, @@ -1601,6 +1927,9 @@ our %unified_info = ( "test/wpackettest" => { "noinst" => "1" }, + "test/x509_acert_test" => { + "noinst" => "1" + }, "test/x509_check_cert_pkey_test" => { "noinst" => "1" }, @@ -1610,6 +1939,15 @@ our %unified_info = ( "test/x509_internal_test" => { "noinst" => "1" }, + "test/x509_load_cert_file_test" => { + "noinst" => "1" + }, + "test/x509_req_test" => { + "noinst" => "1" + }, + "test/x509_test" => { + "noinst" => "1" + }, "test/x509_time_test" => { "noinst" => "1" }, @@ -1650,6 +1988,9 @@ our %unified_info = ( "providers/libfips.a" => [ "FIPS_MODULE" ], + "test/endecode_test" => [ + "STATIC_LEGACY" + ], "test/evp_extra_test" => [ "STATIC_LEGACY" ], @@ -1662,14 +2003,21 @@ our %unified_info = ( }, "depends" => { "" => [ + "OpenSSLConfigVersion.cmake", + "crypto/params_idx.c", + "exporters/OpenSSLConfigVersion.cmake", + "exporters/openssl.pc", "include/crypto/bn_conf.h", "include/crypto/dso_conf.h", + "include/internal/param_names.h", "include/openssl/asn1.h", "include/openssl/asn1t.h", "include/openssl/bio.h", "include/openssl/cmp.h", "include/openssl/cms.h", + "include/openssl/comp.h", "include/openssl/conf.h", + "include/openssl/core_names.h", "include/openssl/crmf.h", "include/openssl/crypto.h", "include/openssl/ct.h", @@ -1686,10 +2034,22 @@ our %unified_info = ( "include/openssl/ssl.h", "include/openssl/ui.h", "include/openssl/x509.h", + "include/openssl/x509_acert.h", "include/openssl/x509_vfy.h", "include/openssl/x509v3.h", + "openssl.pc", "test/provider_internal_test.cnf" ], + "OpenSSLConfig.cmake" => [ + "builddata.pm" + ], + "OpenSSLConfigVersion.cmake" => [ + "OpenSSLConfig.cmake", + "builddata.pm" + ], + "apps/ca_internals_test-bin-ca.o" => [ + "apps/progs.h" + ], "apps/lib/cmp_client_test-bin-cmp_mock_srv.o" => [ "apps/progs.h" ], @@ -1835,6 +2195,9 @@ our %unified_info = ( "apps/openssl-bin-sess_id.o" => [ "apps/progs.h" ], + "apps/openssl-bin-skeyutl.o" => [ + "apps/progs.h" + ], "apps/openssl-bin-smime.o" => [ "apps/progs.h" ], @@ -1923,6 +2286,9 @@ our %unified_info = ( "crypto/libcrypto-lib-info.o" => [ "crypto/buildinf.h" ], + "crypto/params_idx.c" => [ + "util/perl|OpenSSL/paramnames.pm" + ], "crypto/rc4/rc4-586.S" => [ "crypto/perlasm/x86asm.pl" ], @@ -2088,6 +2454,9 @@ our %unified_info = ( "doc/html/man1/openssl-sess_id.html" => [ "doc/man1/openssl-sess_id.pod" ], + "doc/html/man1/openssl-skeyutl.html" => [ + "doc/man1/openssl-skeyutl.pod" + ], "doc/html/man1/openssl-smime.html" => [ "doc/man1/openssl-smime.pod" ], @@ -2229,6 +2598,9 @@ our %unified_info = ( "doc/html/man3/BIO_get_ex_new_index.html" => [ "doc/man3/BIO_get_ex_new_index.pod" ], + "doc/html/man3/BIO_get_rpoll_descriptor.html" => [ + "doc/man3/BIO_get_rpoll_descriptor.pod" + ], "doc/html/man3/BIO_meth_new.html" => [ "doc/man3/BIO_meth_new.pod" ], @@ -2265,6 +2637,9 @@ our %unified_info = ( "doc/html/man3/BIO_s_datagram.html" => [ "doc/man3/BIO_s_datagram.pod" ], + "doc/html/man3/BIO_s_dgram_pair.html" => [ + "doc/man3/BIO_s_dgram_pair.pod" + ], "doc/html/man3/BIO_s_fd.html" => [ "doc/man3/BIO_s_fd.pod" ], @@ -2280,6 +2655,9 @@ our %unified_info = ( "doc/html/man3/BIO_s_socket.html" => [ "doc/man3/BIO_s_socket.pod" ], + "doc/html/man3/BIO_sendmmsg.html" => [ + "doc/man3/BIO_sendmmsg.pod" + ], "doc/html/man3/BIO_set_callback.html" => [ "doc/man3/BIO_set_callback.pod" ], @@ -2352,6 +2730,9 @@ our %unified_info = ( "doc/html/man3/BUF_MEM_new.html" => [ "doc/man3/BUF_MEM_new.pod" ], + "doc/html/man3/CMAC_CTX.html" => [ + "doc/man3/CMAC_CTX.pod" + ], "doc/html/man3/CMS_EncryptedData_decrypt.html" => [ "doc/man3/CMS_EncryptedData_decrypt.pod" ], @@ -2418,6 +2799,9 @@ our %unified_info = ( "doc/html/man3/CMS_verify_receipt.html" => [ "doc/man3/CMS_verify_receipt.pod" ], + "doc/html/man3/COMP_CTX_new.html" => [ + "doc/man3/COMP_CTX_new.pod" + ], "doc/html/man3/CONF_modules_free.html" => [ "doc/man3/CONF_modules_free.pod" ], @@ -2517,6 +2901,12 @@ our %unified_info = ( "doc/html/man3/DTLS_set_timer_cb.html" => [ "doc/man3/DTLS_set_timer_cb.pod" ], + "doc/html/man3/DTLSv1_get_timeout.html" => [ + "doc/man3/DTLSv1_get_timeout.pod" + ], + "doc/html/man3/DTLSv1_handle_timeout.html" => [ + "doc/man3/DTLSv1_handle_timeout.pod" + ], "doc/html/man3/DTLSv1_listen.html" => [ "doc/man3/DTLSv1_listen.pod" ], @@ -2655,6 +3045,9 @@ our %unified_info = ( "doc/html/man3/EVP_PKEY_CTX_get0_pkey.html" => [ "doc/man3/EVP_PKEY_CTX_get0_pkey.pod" ], + "doc/html/man3/EVP_PKEY_CTX_get_algor.html" => [ + "doc/man3/EVP_PKEY_CTX_get_algor.pod" + ], "doc/html/man3/EVP_PKEY_CTX_new.html" => [ "doc/man3/EVP_PKEY_CTX_new.pod" ], @@ -2772,6 +3165,12 @@ our %unified_info = ( "doc/html/man3/EVP_SIGNATURE.html" => [ "doc/man3/EVP_SIGNATURE.pod" ], + "doc/html/man3/EVP_SKEY.html" => [ + "doc/man3/EVP_SKEY.pod" + ], + "doc/html/man3/EVP_SKEYMGMT.html" => [ + "doc/man3/EVP_SKEYMGMT.pod" + ], "doc/html/man3/EVP_SealInit.html" => [ "doc/man3/EVP_SealInit.pod" ], @@ -2859,6 +3258,9 @@ our %unified_info = ( "doc/html/man3/EVP_whirlpool.html" => [ "doc/man3/EVP_whirlpool.pod" ], + "doc/html/man3/GENERAL_NAME.html" => [ + "doc/man3/GENERAL_NAME.pod" + ], "doc/html/man3/HMAC.html" => [ "doc/man3/HMAC.pod" ], @@ -2931,9 +3333,15 @@ our %unified_info = ( "doc/html/man3/OPENSSL_load_builtin_modules.html" => [ "doc/man3/OPENSSL_load_builtin_modules.pod" ], + "doc/html/man3/OPENSSL_load_u16_le.html" => [ + "doc/man3/OPENSSL_load_u16_le.pod" + ], "doc/html/man3/OPENSSL_malloc.html" => [ "doc/man3/OPENSSL_malloc.pod" ], + "doc/html/man3/OPENSSL_riscvcap.html" => [ + "doc/man3/OPENSSL_riscvcap.pod" + ], "doc/html/man3/OPENSSL_s390xcap.html" => [ "doc/man3/OPENSSL_s390xcap.pod" ], @@ -2949,12 +3357,18 @@ our %unified_info = ( "doc/html/man3/OSSL_CALLBACK.html" => [ "doc/man3/OSSL_CALLBACK.pod" ], + "doc/html/man3/OSSL_CMP_ATAV_set0.html" => [ + "doc/man3/OSSL_CMP_ATAV_set0.pod" + ], "doc/html/man3/OSSL_CMP_CTX_new.html" => [ "doc/man3/OSSL_CMP_CTX_new.pod" ], "doc/html/man3/OSSL_CMP_HDR_get0_transactionID.html" => [ "doc/man3/OSSL_CMP_HDR_get0_transactionID.pod" ], + "doc/html/man3/OSSL_CMP_ITAV_new_caCerts.html" => [ + "doc/man3/OSSL_CMP_ITAV_new_caCerts.pod" + ], "doc/html/man3/OSSL_CMP_ITAV_set0.html" => [ "doc/man3/OSSL_CMP_ITAV_set0.pod" ], @@ -3024,9 +3438,18 @@ our %unified_info = ( "doc/html/man3/OSSL_ENCODER_to_bio.html" => [ "doc/man3/OSSL_ENCODER_to_bio.pod" ], + "doc/html/man3/OSSL_ERR_STATE_save.html" => [ + "doc/man3/OSSL_ERR_STATE_save.pod" + ], "doc/html/man3/OSSL_ESS_check_signing_certs.html" => [ "doc/man3/OSSL_ESS_check_signing_certs.pod" ], + "doc/html/man3/OSSL_GENERAL_NAMES_print.html" => [ + "doc/man3/OSSL_GENERAL_NAMES_print.pod" + ], + "doc/html/man3/OSSL_HPKE_CTX_new.html" => [ + "doc/man3/OSSL_HPKE_CTX_new.pod" + ], "doc/html/man3/OSSL_HTTP_REQ_CTX.html" => [ "doc/man3/OSSL_HTTP_REQ_CTX.pod" ], @@ -3036,12 +3459,24 @@ our %unified_info = ( "doc/html/man3/OSSL_HTTP_transfer.html" => [ "doc/man3/OSSL_HTTP_transfer.pod" ], + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX.html" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX.pod" + ], + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX_print.html" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX_print.pod" + ], + "doc/html/man3/OSSL_INDICATOR_set_callback.html" => [ + "doc/man3/OSSL_INDICATOR_set_callback.pod" + ], "doc/html/man3/OSSL_ITEM.html" => [ "doc/man3/OSSL_ITEM.pod" ], "doc/html/man3/OSSL_LIB_CTX.html" => [ "doc/man3/OSSL_LIB_CTX.pod" ], + "doc/html/man3/OSSL_LIB_CTX_set_conf_diagnostics.html" => [ + "doc/man3/OSSL_LIB_CTX_set_conf_diagnostics.pod" + ], "doc/html/man3/OSSL_PARAM.html" => [ "doc/man3/OSSL_PARAM.pod" ], @@ -3057,9 +3492,15 @@ our %unified_info = ( "doc/html/man3/OSSL_PARAM_int.html" => [ "doc/man3/OSSL_PARAM_int.pod" ], + "doc/html/man3/OSSL_PARAM_print_to_bio.html" => [ + "doc/man3/OSSL_PARAM_print_to_bio.pod" + ], "doc/html/man3/OSSL_PROVIDER.html" => [ "doc/man3/OSSL_PROVIDER.pod" ], + "doc/html/man3/OSSL_QUIC_client_method.html" => [ + "doc/man3/OSSL_QUIC_client_method.pod" + ], "doc/html/man3/OSSL_SELF_TEST_new.html" => [ "doc/man3/OSSL_SELF_TEST_new.pod" ], @@ -3084,6 +3525,9 @@ our %unified_info = ( "doc/html/man3/OSSL_STORE_open.html" => [ "doc/man3/OSSL_STORE_open.pod" ], + "doc/html/man3/OSSL_sleep.html" => [ + "doc/man3/OSSL_sleep.pod" + ], "doc/html/man3/OSSL_trace_enabled.html" => [ "doc/man3/OSSL_trace_enabled.pod" ], @@ -3099,6 +3543,9 @@ our %unified_info = ( "doc/html/man3/OpenSSL_version.html" => [ "doc/man3/OpenSSL_version.pod" ], + "doc/html/man3/PBMAC1_get1_pbkdf2_param.html" => [ + "doc/man3/PBMAC1_get1_pbkdf2_param.pod" + ], "doc/html/man3/PEM_X509_INFO_read_bio_ex.html" => [ "doc/man3/PEM_X509_INFO_read_bio_ex.pod" ], @@ -3135,6 +3582,9 @@ our %unified_info = ( "doc/html/man3/PKCS12_SAFEBAG_get1_cert.html" => [ "doc/man3/PKCS12_SAFEBAG_get1_cert.pod" ], + "doc/html/man3/PKCS12_SAFEBAG_set0_attrs.html" => [ + "doc/man3/PKCS12_SAFEBAG_set0_attrs.pod" + ], "doc/html/man3/PKCS12_add1_attr_by_NID.html" => [ "doc/man3/PKCS12_add1_attr_by_NID.pod" ], @@ -3408,6 +3858,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set0_CA_list.html" => [ "doc/man3/SSL_CTX_set0_CA_list.pod" ], + "doc/html/man3/SSL_CTX_set1_cert_comp_preference.html" => [ + "doc/man3/SSL_CTX_set1_cert_comp_preference.pod" + ], "doc/html/man3/SSL_CTX_set1_curves.html" => [ "doc/man3/SSL_CTX_set1_curves.pod" ], @@ -3447,6 +3900,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_default_passwd_cb.html" => [ "doc/man3/SSL_CTX_set_default_passwd_cb.pod" ], + "doc/html/man3/SSL_CTX_set_domain_flags.html" => [ + "doc/man3/SSL_CTX_set_domain_flags.pod" + ], "doc/html/man3/SSL_CTX_set_generate_session_id.html" => [ "doc/man3/SSL_CTX_set_generate_session_id.pod" ], @@ -3468,6 +3924,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_msg_callback.html" => [ "doc/man3/SSL_CTX_set_msg_callback.pod" ], + "doc/html/man3/SSL_CTX_set_new_pending_conn_cb.html" => [ + "doc/man3/SSL_CTX_set_new_pending_conn_cb.pod" + ], "doc/html/man3/SSL_CTX_set_num_tickets.html" => [ "doc/man3/SSL_CTX_set_num_tickets.pod" ], @@ -3582,6 +4041,9 @@ our %unified_info = ( "doc/html/man3/SSL_accept.html" => [ "doc/man3/SSL_accept.pod" ], + "doc/html/man3/SSL_accept_stream.html" => [ + "doc/man3/SSL_accept_stream.pod" + ], "doc/html/man3/SSL_alert_type_string.html" => [ "doc/man3/SSL_alert_type_string.pod" ], @@ -3609,9 +4071,21 @@ our %unified_info = ( "doc/html/man3/SSL_free.html" => [ "doc/man3/SSL_free.pod" ], + "doc/html/man3/SSL_get0_connection.html" => [ + "doc/man3/SSL_get0_connection.pod" + ], + "doc/html/man3/SSL_get0_group_name.html" => [ + "doc/man3/SSL_get0_group_name.pod" + ], + "doc/html/man3/SSL_get0_peer_rpk.html" => [ + "doc/man3/SSL_get0_peer_rpk.pod" + ], "doc/html/man3/SSL_get0_peer_scts.html" => [ "doc/man3/SSL_get0_peer_scts.pod" ], + "doc/html/man3/SSL_get1_builtin_sigalgs.html" => [ + "doc/man3/SSL_get1_builtin_sigalgs.pod" + ], "doc/html/man3/SSL_get_SSL_CTX.html" => [ "doc/man3/SSL_get_SSL_CTX.pod" ], @@ -3627,6 +4101,9 @@ our %unified_info = ( "doc/html/man3/SSL_get_client_random.html" => [ "doc/man3/SSL_get_client_random.pod" ], + "doc/html/man3/SSL_get_conn_close_info.html" => [ + "doc/man3/SSL_get_conn_close_info.pod" + ], "doc/html/man3/SSL_get_current_cipher.html" => [ "doc/man3/SSL_get_current_cipher.pod" ], @@ -3636,12 +4113,18 @@ our %unified_info = ( "doc/html/man3/SSL_get_error.html" => [ "doc/man3/SSL_get_error.pod" ], + "doc/html/man3/SSL_get_event_timeout.html" => [ + "doc/man3/SSL_get_event_timeout.pod" + ], "doc/html/man3/SSL_get_extms_support.html" => [ "doc/man3/SSL_get_extms_support.pod" ], "doc/html/man3/SSL_get_fd.html" => [ "doc/man3/SSL_get_fd.pod" ], + "doc/html/man3/SSL_get_handshake_rtt.html" => [ + "doc/man3/SSL_get_handshake_rtt.pod" + ], "doc/html/man3/SSL_get_peer_cert_chain.html" => [ "doc/man3/SSL_get_peer_cert_chain.pod" ], @@ -3660,12 +4143,24 @@ our %unified_info = ( "doc/html/man3/SSL_get_rbio.html" => [ "doc/man3/SSL_get_rbio.pod" ], + "doc/html/man3/SSL_get_rpoll_descriptor.html" => [ + "doc/man3/SSL_get_rpoll_descriptor.pod" + ], "doc/html/man3/SSL_get_session.html" => [ "doc/man3/SSL_get_session.pod" ], "doc/html/man3/SSL_get_shared_sigalgs.html" => [ "doc/man3/SSL_get_shared_sigalgs.pod" ], + "doc/html/man3/SSL_get_stream_id.html" => [ + "doc/man3/SSL_get_stream_id.pod" + ], + "doc/html/man3/SSL_get_stream_read_state.html" => [ + "doc/man3/SSL_get_stream_read_state.pod" + ], + "doc/html/man3/SSL_get_value_uint.html" => [ + "doc/man3/SSL_get_value_uint.pod" + ], "doc/html/man3/SSL_get_verify_result.html" => [ "doc/man3/SSL_get_verify_result.pod" ], @@ -3675,9 +4170,15 @@ our %unified_info = ( "doc/html/man3/SSL_group_to_name.html" => [ "doc/man3/SSL_group_to_name.pod" ], + "doc/html/man3/SSL_handle_events.html" => [ + "doc/man3/SSL_handle_events.pod" + ], "doc/html/man3/SSL_in_init.html" => [ "doc/man3/SSL_in_init.pod" ], + "doc/html/man3/SSL_inject_net_dgram.html" => [ + "doc/man3/SSL_inject_net_dgram.pod" + ], "doc/html/man3/SSL_key_update.html" => [ "doc/man3/SSL_key_update.pod" ], @@ -3690,9 +4191,21 @@ our %unified_info = ( "doc/html/man3/SSL_new.html" => [ "doc/man3/SSL_new.pod" ], + "doc/html/man3/SSL_new_domain.html" => [ + "doc/man3/SSL_new_domain.pod" + ], + "doc/html/man3/SSL_new_listener.html" => [ + "doc/man3/SSL_new_listener.pod" + ], + "doc/html/man3/SSL_new_stream.html" => [ + "doc/man3/SSL_new_stream.pod" + ], "doc/html/man3/SSL_pending.html" => [ "doc/man3/SSL_pending.pod" ], + "doc/html/man3/SSL_poll.html" => [ + "doc/man3/SSL_poll.pod" + ], "doc/html/man3/SSL_read.html" => [ "doc/man3/SSL_read.pod" ], @@ -3708,24 +4221,45 @@ our %unified_info = ( "doc/html/man3/SSL_set1_host.html" => [ "doc/man3/SSL_set1_host.pod" ], + "doc/html/man3/SSL_set1_initial_peer_addr.html" => [ + "doc/man3/SSL_set1_initial_peer_addr.pod" + ], + "doc/html/man3/SSL_set1_server_cert_type.html" => [ + "doc/man3/SSL_set1_server_cert_type.pod" + ], "doc/html/man3/SSL_set_async_callback.html" => [ "doc/man3/SSL_set_async_callback.pod" ], "doc/html/man3/SSL_set_bio.html" => [ "doc/man3/SSL_set_bio.pod" ], + "doc/html/man3/SSL_set_blocking_mode.html" => [ + "doc/man3/SSL_set_blocking_mode.pod" + ], "doc/html/man3/SSL_set_connect_state.html" => [ "doc/man3/SSL_set_connect_state.pod" ], + "doc/html/man3/SSL_set_default_stream_mode.html" => [ + "doc/man3/SSL_set_default_stream_mode.pod" + ], "doc/html/man3/SSL_set_fd.html" => [ "doc/man3/SSL_set_fd.pod" ], + "doc/html/man3/SSL_set_incoming_stream_policy.html" => [ + "doc/man3/SSL_set_incoming_stream_policy.pod" + ], + "doc/html/man3/SSL_set_quic_tls_cbs.html" => [ + "doc/man3/SSL_set_quic_tls_cbs.pod" + ], "doc/html/man3/SSL_set_retry_verify.html" => [ "doc/man3/SSL_set_retry_verify.pod" ], "doc/html/man3/SSL_set_session.html" => [ "doc/man3/SSL_set_session.pod" ], + "doc/html/man3/SSL_set_session_secret_cb.html" => [ + "doc/man3/SSL_set_session_secret_cb.pod" + ], "doc/html/man3/SSL_set_shutdown.html" => [ "doc/man3/SSL_set_shutdown.pod" ], @@ -3738,6 +4272,12 @@ our %unified_info = ( "doc/html/man3/SSL_state_string.html" => [ "doc/man3/SSL_state_string.pod" ], + "doc/html/man3/SSL_stream_conclude.html" => [ + "doc/man3/SSL_stream_conclude.pod" + ], + "doc/html/man3/SSL_stream_reset.html" => [ + "doc/man3/SSL_stream_reset.pod" + ], "doc/html/man3/SSL_want.html" => [ "doc/man3/SSL_want.pod" ], @@ -3747,8 +4287,8 @@ our %unified_info = ( "doc/html/man3/TS_RESP_CTX_new.html" => [ "doc/man3/TS_RESP_CTX_new.pod" ], - "doc/html/man3/TS_VERIFY_CTX_set_certs.html" => [ - "doc/man3/TS_VERIFY_CTX_set_certs.pod" + "doc/html/man3/TS_VERIFY_CTX.html" => [ + "doc/man3/TS_VERIFY_CTX.pod" ], "doc/html/man3/UI_STRING.html" => [ "doc/man3/UI_STRING.pod" @@ -3768,6 +4308,21 @@ our %unified_info = ( "doc/html/man3/X509V3_set_ctx.html" => [ "doc/man3/X509V3_set_ctx.pod" ], + "doc/html/man3/X509_ACERT_add1_attr.html" => [ + "doc/man3/X509_ACERT_add1_attr.pod" + ], + "doc/html/man3/X509_ACERT_add_attr_nconf.html" => [ + "doc/man3/X509_ACERT_add_attr_nconf.pod" + ], + "doc/html/man3/X509_ACERT_get0_holder_baseCertId.html" => [ + "doc/man3/X509_ACERT_get0_holder_baseCertId.pod" + ], + "doc/html/man3/X509_ACERT_get_attr.html" => [ + "doc/man3/X509_ACERT_get_attr.pod" + ], + "doc/html/man3/X509_ACERT_print_ex.html" => [ + "doc/man3/X509_ACERT_print_ex.pod" + ], "doc/html/man3/X509_ALGOR_dup.html" => [ "doc/man3/X509_ALGOR_dup.pod" ], @@ -3816,6 +4371,9 @@ our %unified_info = ( "doc/html/man3/X509_SIG_get0.html" => [ "doc/man3/X509_SIG_get0.pod" ], + "doc/html/man3/X509_STORE_CTX_get_by_subject.html" => [ + "doc/man3/X509_STORE_CTX_get_by_subject.pod" + ], "doc/html/man3/X509_STORE_CTX_get_error.html" => [ "doc/man3/X509_STORE_CTX_get_error.pod" ], @@ -3882,6 +4440,9 @@ our %unified_info = ( "doc/html/man3/X509_get0_uids.html" => [ "doc/man3/X509_get0_uids.pod" ], + "doc/html/man3/X509_get_default_cert_file.html" => [ + "doc/man3/X509_get_default_cert_file.pod" + ], "doc/html/man3/X509_get_extension_flags.html" => [ "doc/man3/X509_get_extension_flags.pod" ], @@ -4005,9 +4566,15 @@ our %unified_info = ( "doc/html/man7/EVP_CIPHER-SM4.html" => [ "doc/man7/EVP_CIPHER-SM4.pod" ], + "doc/html/man7/EVP_KDF-ARGON2.html" => [ + "doc/man7/EVP_KDF-ARGON2.pod" + ], "doc/html/man7/EVP_KDF-HKDF.html" => [ "doc/man7/EVP_KDF-HKDF.pod" ], + "doc/html/man7/EVP_KDF-HMAC-DRBG.html" => [ + "doc/man7/EVP_KDF-HMAC-DRBG.pod" + ], "doc/html/man7/EVP_KDF-KB.html" => [ "doc/man7/EVP_KDF-KB.pod" ], @@ -4023,6 +4590,9 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-PKCS12KDF.html" => [ "doc/man7/EVP_KDF-PKCS12KDF.pod" ], + "doc/html/man7/EVP_KDF-PVKKDF.html" => [ + "doc/man7/EVP_KDF-PVKKDF.pod" + ], "doc/html/man7/EVP_KDF-SCRYPT.html" => [ "doc/man7/EVP_KDF-SCRYPT.pod" ], @@ -4047,9 +4617,18 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-X963.html" => [ "doc/man7/EVP_KDF-X963.pod" ], + "doc/html/man7/EVP_KEM-EC.html" => [ + "doc/man7/EVP_KEM-EC.pod" + ], + "doc/html/man7/EVP_KEM-ML-KEM.html" => [ + "doc/man7/EVP_KEM-ML-KEM.pod" + ], "doc/html/man7/EVP_KEM-RSA.html" => [ "doc/man7/EVP_KEM-RSA.pod" ], + "doc/html/man7/EVP_KEM-X25519.html" => [ + "doc/man7/EVP_KEM-X25519.pod" + ], "doc/html/man7/EVP_KEYEXCH-DH.html" => [ "doc/man7/EVP_KEYEXCH-DH.pod" ], @@ -4083,6 +4662,9 @@ our %unified_info = ( "doc/html/man7/EVP_MD-BLAKE2.html" => [ "doc/man7/EVP_MD-BLAKE2.pod" ], + "doc/html/man7/EVP_MD-KECCAK.html" => [ + "doc/man7/EVP_MD-KECCAK.pod" + ], "doc/html/man7/EVP_MD-MD2.html" => [ "doc/man7/EVP_MD-MD2.pod" ], @@ -4140,15 +4722,27 @@ our %unified_info = ( "doc/html/man7/EVP_PKEY-HMAC.html" => [ "doc/man7/EVP_PKEY-HMAC.pod" ], + "doc/html/man7/EVP_PKEY-ML-DSA.html" => [ + "doc/man7/EVP_PKEY-ML-DSA.pod" + ], + "doc/html/man7/EVP_PKEY-ML-KEM.html" => [ + "doc/man7/EVP_PKEY-ML-KEM.pod" + ], "doc/html/man7/EVP_PKEY-RSA.html" => [ "doc/man7/EVP_PKEY-RSA.pod" ], + "doc/html/man7/EVP_PKEY-SLH-DSA.html" => [ + "doc/man7/EVP_PKEY-SLH-DSA.pod" + ], "doc/html/man7/EVP_PKEY-SM2.html" => [ "doc/man7/EVP_PKEY-SM2.pod" ], "doc/html/man7/EVP_PKEY-X25519.html" => [ "doc/man7/EVP_PKEY-X25519.pod" ], + "doc/html/man7/EVP_RAND-CRNG-TEST.html" => [ + "doc/man7/EVP_RAND-CRNG-TEST.pod" + ], "doc/html/man7/EVP_RAND-CTR-DRBG.html" => [ "doc/man7/EVP_RAND-CTR-DRBG.pod" ], @@ -4158,6 +4752,9 @@ our %unified_info = ( "doc/html/man7/EVP_RAND-HMAC-DRBG.html" => [ "doc/man7/EVP_RAND-HMAC-DRBG.pod" ], + "doc/html/man7/EVP_RAND-JITTER.html" => [ + "doc/man7/EVP_RAND-JITTER.pod" + ], "doc/html/man7/EVP_RAND-SEED-SRC.html" => [ "doc/man7/EVP_RAND-SEED-SRC.pod" ], @@ -4179,9 +4776,15 @@ our %unified_info = ( "doc/html/man7/EVP_SIGNATURE-HMAC.html" => [ "doc/man7/EVP_SIGNATURE-HMAC.pod" ], + "doc/html/man7/EVP_SIGNATURE-ML-DSA.html" => [ + "doc/man7/EVP_SIGNATURE-ML-DSA.pod" + ], "doc/html/man7/EVP_SIGNATURE-RSA.html" => [ "doc/man7/EVP_SIGNATURE-RSA.pod" ], + "doc/html/man7/EVP_SIGNATURE-SLH-DSA.html" => [ + "doc/man7/EVP_SIGNATURE-SLH-DSA.pod" + ], "doc/html/man7/OSSL_PROVIDER-FIPS.html" => [ "doc/man7/OSSL_PROVIDER-FIPS.pod" ], @@ -4197,6 +4800,9 @@ our %unified_info = ( "doc/html/man7/OSSL_PROVIDER-null.html" => [ "doc/man7/OSSL_PROVIDER-null.pod" ], + "doc/html/man7/OSSL_STORE-winstore.html" => [ + "doc/man7/OSSL_STORE-winstore.pod" + ], "doc/html/man7/RAND.html" => [ "doc/man7/RAND.pod" ], @@ -4209,9 +4815,6 @@ our %unified_info = ( "doc/html/man7/bio.html" => [ "doc/man7/bio.pod" ], - "doc/html/man7/crypto.html" => [ - "doc/man7/crypto.pod" - ], "doc/html/man7/ct.html" => [ "doc/man7/ct.pod" ], @@ -4242,9 +4845,6 @@ our %unified_info = ( "doc/html/man7/life_cycle-rand.html" => [ "doc/man7/life_cycle-rand.pod" ], - "doc/html/man7/migration_guide.html" => [ - "doc/man7/migration_guide.pod" - ], "doc/html/man7/openssl-core.h.html" => [ "doc/man7/openssl-core.h.pod" ], @@ -4260,12 +4860,66 @@ our %unified_info = ( "doc/html/man7/openssl-glossary.html" => [ "doc/man7/openssl-glossary.pod" ], + "doc/html/man7/openssl-qlog.html" => [ + "doc/man7/openssl-qlog.pod" + ], + "doc/html/man7/openssl-quic-concurrency.html" => [ + "doc/man7/openssl-quic-concurrency.pod" + ], + "doc/html/man7/openssl-quic.html" => [ + "doc/man7/openssl-quic.pod" + ], "doc/html/man7/openssl-threads.html" => [ "doc/man7/openssl-threads.pod" ], "doc/html/man7/openssl_user_macros.html" => [ "doc/man7/openssl_user_macros.pod" ], + "doc/html/man7/ossl-guide-introduction.html" => [ + "doc/man7/ossl-guide-introduction.pod" + ], + "doc/html/man7/ossl-guide-libcrypto-introduction.html" => [ + "doc/man7/ossl-guide-libcrypto-introduction.pod" + ], + "doc/html/man7/ossl-guide-libraries-introduction.html" => [ + "doc/man7/ossl-guide-libraries-introduction.pod" + ], + "doc/html/man7/ossl-guide-libssl-introduction.html" => [ + "doc/man7/ossl-guide-libssl-introduction.pod" + ], + "doc/html/man7/ossl-guide-migration.html" => [ + "doc/man7/ossl-guide-migration.pod" + ], + "doc/html/man7/ossl-guide-quic-client-block.html" => [ + "doc/man7/ossl-guide-quic-client-block.pod" + ], + "doc/html/man7/ossl-guide-quic-client-non-block.html" => [ + "doc/man7/ossl-guide-quic-client-non-block.pod" + ], + "doc/html/man7/ossl-guide-quic-introduction.html" => [ + "doc/man7/ossl-guide-quic-introduction.pod" + ], + "doc/html/man7/ossl-guide-quic-multi-stream.html" => [ + "doc/man7/ossl-guide-quic-multi-stream.pod" + ], + "doc/html/man7/ossl-guide-quic-server-block.html" => [ + "doc/man7/ossl-guide-quic-server-block.pod" + ], + "doc/html/man7/ossl-guide-quic-server-non-block.html" => [ + "doc/man7/ossl-guide-quic-server-non-block.pod" + ], + "doc/html/man7/ossl-guide-tls-client-block.html" => [ + "doc/man7/ossl-guide-tls-client-block.pod" + ], + "doc/html/man7/ossl-guide-tls-client-non-block.html" => [ + "doc/man7/ossl-guide-tls-client-non-block.pod" + ], + "doc/html/man7/ossl-guide-tls-introduction.html" => [ + "doc/man7/ossl-guide-tls-introduction.pod" + ], + "doc/html/man7/ossl-guide-tls-server-block.html" => [ + "doc/man7/ossl-guide-tls-server-block.pod" + ], "doc/html/man7/ossl_store-file.html" => [ "doc/man7/ossl_store-file.pod" ], @@ -4320,6 +4974,9 @@ our %unified_info = ( "doc/html/man7/provider-signature.html" => [ "doc/man7/provider-signature.pod" ], + "doc/html/man7/provider-skeymgmt.html" => [ + "doc/man7/provider-skeymgmt.pod" + ], "doc/html/man7/provider-storemgmt.html" => [ "doc/man7/provider-storemgmt.pod" ], @@ -4329,9 +4986,6 @@ our %unified_info = ( "doc/html/man7/proxy-certificates.html" => [ "doc/man7/proxy-certificates.pod" ], - "doc/html/man7/ssl.html" => [ - "doc/man7/ssl.pod" - ], "doc/html/man7/x509.html" => [ "doc/man7/x509.pod" ], @@ -4479,6 +5133,9 @@ our %unified_info = ( "doc/man/man1/openssl-sess_id.1" => [ "doc/man1/openssl-sess_id.pod" ], + "doc/man/man1/openssl-skeyutl.1" => [ + "doc/man1/openssl-skeyutl.pod" + ], "doc/man/man1/openssl-smime.1" => [ "doc/man1/openssl-smime.pod" ], @@ -4620,6 +5277,9 @@ our %unified_info = ( "doc/man/man3/BIO_get_ex_new_index.3" => [ "doc/man3/BIO_get_ex_new_index.pod" ], + "doc/man/man3/BIO_get_rpoll_descriptor.3" => [ + "doc/man3/BIO_get_rpoll_descriptor.pod" + ], "doc/man/man3/BIO_meth_new.3" => [ "doc/man3/BIO_meth_new.pod" ], @@ -4656,6 +5316,9 @@ our %unified_info = ( "doc/man/man3/BIO_s_datagram.3" => [ "doc/man3/BIO_s_datagram.pod" ], + "doc/man/man3/BIO_s_dgram_pair.3" => [ + "doc/man3/BIO_s_dgram_pair.pod" + ], "doc/man/man3/BIO_s_fd.3" => [ "doc/man3/BIO_s_fd.pod" ], @@ -4671,6 +5334,9 @@ our %unified_info = ( "doc/man/man3/BIO_s_socket.3" => [ "doc/man3/BIO_s_socket.pod" ], + "doc/man/man3/BIO_sendmmsg.3" => [ + "doc/man3/BIO_sendmmsg.pod" + ], "doc/man/man3/BIO_set_callback.3" => [ "doc/man3/BIO_set_callback.pod" ], @@ -4743,6 +5409,9 @@ our %unified_info = ( "doc/man/man3/BUF_MEM_new.3" => [ "doc/man3/BUF_MEM_new.pod" ], + "doc/man/man3/CMAC_CTX.3" => [ + "doc/man3/CMAC_CTX.pod" + ], "doc/man/man3/CMS_EncryptedData_decrypt.3" => [ "doc/man3/CMS_EncryptedData_decrypt.pod" ], @@ -4809,6 +5478,9 @@ our %unified_info = ( "doc/man/man3/CMS_verify_receipt.3" => [ "doc/man3/CMS_verify_receipt.pod" ], + "doc/man/man3/COMP_CTX_new.3" => [ + "doc/man3/COMP_CTX_new.pod" + ], "doc/man/man3/CONF_modules_free.3" => [ "doc/man3/CONF_modules_free.pod" ], @@ -4908,6 +5580,12 @@ our %unified_info = ( "doc/man/man3/DTLS_set_timer_cb.3" => [ "doc/man3/DTLS_set_timer_cb.pod" ], + "doc/man/man3/DTLSv1_get_timeout.3" => [ + "doc/man3/DTLSv1_get_timeout.pod" + ], + "doc/man/man3/DTLSv1_handle_timeout.3" => [ + "doc/man3/DTLSv1_handle_timeout.pod" + ], "doc/man/man3/DTLSv1_listen.3" => [ "doc/man3/DTLSv1_listen.pod" ], @@ -5046,6 +5724,9 @@ our %unified_info = ( "doc/man/man3/EVP_PKEY_CTX_get0_pkey.3" => [ "doc/man3/EVP_PKEY_CTX_get0_pkey.pod" ], + "doc/man/man3/EVP_PKEY_CTX_get_algor.3" => [ + "doc/man3/EVP_PKEY_CTX_get_algor.pod" + ], "doc/man/man3/EVP_PKEY_CTX_new.3" => [ "doc/man3/EVP_PKEY_CTX_new.pod" ], @@ -5163,6 +5844,12 @@ our %unified_info = ( "doc/man/man3/EVP_SIGNATURE.3" => [ "doc/man3/EVP_SIGNATURE.pod" ], + "doc/man/man3/EVP_SKEY.3" => [ + "doc/man3/EVP_SKEY.pod" + ], + "doc/man/man3/EVP_SKEYMGMT.3" => [ + "doc/man3/EVP_SKEYMGMT.pod" + ], "doc/man/man3/EVP_SealInit.3" => [ "doc/man3/EVP_SealInit.pod" ], @@ -5250,6 +5937,9 @@ our %unified_info = ( "doc/man/man3/EVP_whirlpool.3" => [ "doc/man3/EVP_whirlpool.pod" ], + "doc/man/man3/GENERAL_NAME.3" => [ + "doc/man3/GENERAL_NAME.pod" + ], "doc/man/man3/HMAC.3" => [ "doc/man3/HMAC.pod" ], @@ -5322,9 +6012,15 @@ our %unified_info = ( "doc/man/man3/OPENSSL_load_builtin_modules.3" => [ "doc/man3/OPENSSL_load_builtin_modules.pod" ], + "doc/man/man3/OPENSSL_load_u16_le.3" => [ + "doc/man3/OPENSSL_load_u16_le.pod" + ], "doc/man/man3/OPENSSL_malloc.3" => [ "doc/man3/OPENSSL_malloc.pod" ], + "doc/man/man3/OPENSSL_riscvcap.3" => [ + "doc/man3/OPENSSL_riscvcap.pod" + ], "doc/man/man3/OPENSSL_s390xcap.3" => [ "doc/man3/OPENSSL_s390xcap.pod" ], @@ -5340,12 +6036,18 @@ our %unified_info = ( "doc/man/man3/OSSL_CALLBACK.3" => [ "doc/man3/OSSL_CALLBACK.pod" ], + "doc/man/man3/OSSL_CMP_ATAV_set0.3" => [ + "doc/man3/OSSL_CMP_ATAV_set0.pod" + ], "doc/man/man3/OSSL_CMP_CTX_new.3" => [ "doc/man3/OSSL_CMP_CTX_new.pod" ], "doc/man/man3/OSSL_CMP_HDR_get0_transactionID.3" => [ "doc/man3/OSSL_CMP_HDR_get0_transactionID.pod" ], + "doc/man/man3/OSSL_CMP_ITAV_new_caCerts.3" => [ + "doc/man3/OSSL_CMP_ITAV_new_caCerts.pod" + ], "doc/man/man3/OSSL_CMP_ITAV_set0.3" => [ "doc/man3/OSSL_CMP_ITAV_set0.pod" ], @@ -5415,9 +6117,18 @@ our %unified_info = ( "doc/man/man3/OSSL_ENCODER_to_bio.3" => [ "doc/man3/OSSL_ENCODER_to_bio.pod" ], + "doc/man/man3/OSSL_ERR_STATE_save.3" => [ + "doc/man3/OSSL_ERR_STATE_save.pod" + ], "doc/man/man3/OSSL_ESS_check_signing_certs.3" => [ "doc/man3/OSSL_ESS_check_signing_certs.pod" ], + "doc/man/man3/OSSL_GENERAL_NAMES_print.3" => [ + "doc/man3/OSSL_GENERAL_NAMES_print.pod" + ], + "doc/man/man3/OSSL_HPKE_CTX_new.3" => [ + "doc/man3/OSSL_HPKE_CTX_new.pod" + ], "doc/man/man3/OSSL_HTTP_REQ_CTX.3" => [ "doc/man3/OSSL_HTTP_REQ_CTX.pod" ], @@ -5427,12 +6138,24 @@ our %unified_info = ( "doc/man/man3/OSSL_HTTP_transfer.3" => [ "doc/man3/OSSL_HTTP_transfer.pod" ], + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX.3" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX.pod" + ], + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX_print.3" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX_print.pod" + ], + "doc/man/man3/OSSL_INDICATOR_set_callback.3" => [ + "doc/man3/OSSL_INDICATOR_set_callback.pod" + ], "doc/man/man3/OSSL_ITEM.3" => [ "doc/man3/OSSL_ITEM.pod" ], "doc/man/man3/OSSL_LIB_CTX.3" => [ "doc/man3/OSSL_LIB_CTX.pod" ], + "doc/man/man3/OSSL_LIB_CTX_set_conf_diagnostics.3" => [ + "doc/man3/OSSL_LIB_CTX_set_conf_diagnostics.pod" + ], "doc/man/man3/OSSL_PARAM.3" => [ "doc/man3/OSSL_PARAM.pod" ], @@ -5448,9 +6171,15 @@ our %unified_info = ( "doc/man/man3/OSSL_PARAM_int.3" => [ "doc/man3/OSSL_PARAM_int.pod" ], + "doc/man/man3/OSSL_PARAM_print_to_bio.3" => [ + "doc/man3/OSSL_PARAM_print_to_bio.pod" + ], "doc/man/man3/OSSL_PROVIDER.3" => [ "doc/man3/OSSL_PROVIDER.pod" ], + "doc/man/man3/OSSL_QUIC_client_method.3" => [ + "doc/man3/OSSL_QUIC_client_method.pod" + ], "doc/man/man3/OSSL_SELF_TEST_new.3" => [ "doc/man3/OSSL_SELF_TEST_new.pod" ], @@ -5475,6 +6204,9 @@ our %unified_info = ( "doc/man/man3/OSSL_STORE_open.3" => [ "doc/man3/OSSL_STORE_open.pod" ], + "doc/man/man3/OSSL_sleep.3" => [ + "doc/man3/OSSL_sleep.pod" + ], "doc/man/man3/OSSL_trace_enabled.3" => [ "doc/man3/OSSL_trace_enabled.pod" ], @@ -5490,6 +6222,9 @@ our %unified_info = ( "doc/man/man3/OpenSSL_version.3" => [ "doc/man3/OpenSSL_version.pod" ], + "doc/man/man3/PBMAC1_get1_pbkdf2_param.3" => [ + "doc/man3/PBMAC1_get1_pbkdf2_param.pod" + ], "doc/man/man3/PEM_X509_INFO_read_bio_ex.3" => [ "doc/man3/PEM_X509_INFO_read_bio_ex.pod" ], @@ -5526,6 +6261,9 @@ our %unified_info = ( "doc/man/man3/PKCS12_SAFEBAG_get1_cert.3" => [ "doc/man3/PKCS12_SAFEBAG_get1_cert.pod" ], + "doc/man/man3/PKCS12_SAFEBAG_set0_attrs.3" => [ + "doc/man3/PKCS12_SAFEBAG_set0_attrs.pod" + ], "doc/man/man3/PKCS12_add1_attr_by_NID.3" => [ "doc/man3/PKCS12_add1_attr_by_NID.pod" ], @@ -5799,6 +6537,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set0_CA_list.3" => [ "doc/man3/SSL_CTX_set0_CA_list.pod" ], + "doc/man/man3/SSL_CTX_set1_cert_comp_preference.3" => [ + "doc/man3/SSL_CTX_set1_cert_comp_preference.pod" + ], "doc/man/man3/SSL_CTX_set1_curves.3" => [ "doc/man3/SSL_CTX_set1_curves.pod" ], @@ -5838,6 +6579,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_default_passwd_cb.3" => [ "doc/man3/SSL_CTX_set_default_passwd_cb.pod" ], + "doc/man/man3/SSL_CTX_set_domain_flags.3" => [ + "doc/man3/SSL_CTX_set_domain_flags.pod" + ], "doc/man/man3/SSL_CTX_set_generate_session_id.3" => [ "doc/man3/SSL_CTX_set_generate_session_id.pod" ], @@ -5859,6 +6603,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_msg_callback.3" => [ "doc/man3/SSL_CTX_set_msg_callback.pod" ], + "doc/man/man3/SSL_CTX_set_new_pending_conn_cb.3" => [ + "doc/man3/SSL_CTX_set_new_pending_conn_cb.pod" + ], "doc/man/man3/SSL_CTX_set_num_tickets.3" => [ "doc/man3/SSL_CTX_set_num_tickets.pod" ], @@ -5973,6 +6720,9 @@ our %unified_info = ( "doc/man/man3/SSL_accept.3" => [ "doc/man3/SSL_accept.pod" ], + "doc/man/man3/SSL_accept_stream.3" => [ + "doc/man3/SSL_accept_stream.pod" + ], "doc/man/man3/SSL_alert_type_string.3" => [ "doc/man3/SSL_alert_type_string.pod" ], @@ -6000,9 +6750,21 @@ our %unified_info = ( "doc/man/man3/SSL_free.3" => [ "doc/man3/SSL_free.pod" ], + "doc/man/man3/SSL_get0_connection.3" => [ + "doc/man3/SSL_get0_connection.pod" + ], + "doc/man/man3/SSL_get0_group_name.3" => [ + "doc/man3/SSL_get0_group_name.pod" + ], + "doc/man/man3/SSL_get0_peer_rpk.3" => [ + "doc/man3/SSL_get0_peer_rpk.pod" + ], "doc/man/man3/SSL_get0_peer_scts.3" => [ "doc/man3/SSL_get0_peer_scts.pod" ], + "doc/man/man3/SSL_get1_builtin_sigalgs.3" => [ + "doc/man3/SSL_get1_builtin_sigalgs.pod" + ], "doc/man/man3/SSL_get_SSL_CTX.3" => [ "doc/man3/SSL_get_SSL_CTX.pod" ], @@ -6018,6 +6780,9 @@ our %unified_info = ( "doc/man/man3/SSL_get_client_random.3" => [ "doc/man3/SSL_get_client_random.pod" ], + "doc/man/man3/SSL_get_conn_close_info.3" => [ + "doc/man3/SSL_get_conn_close_info.pod" + ], "doc/man/man3/SSL_get_current_cipher.3" => [ "doc/man3/SSL_get_current_cipher.pod" ], @@ -6027,12 +6792,18 @@ our %unified_info = ( "doc/man/man3/SSL_get_error.3" => [ "doc/man3/SSL_get_error.pod" ], + "doc/man/man3/SSL_get_event_timeout.3" => [ + "doc/man3/SSL_get_event_timeout.pod" + ], "doc/man/man3/SSL_get_extms_support.3" => [ "doc/man3/SSL_get_extms_support.pod" ], "doc/man/man3/SSL_get_fd.3" => [ "doc/man3/SSL_get_fd.pod" ], + "doc/man/man3/SSL_get_handshake_rtt.3" => [ + "doc/man3/SSL_get_handshake_rtt.pod" + ], "doc/man/man3/SSL_get_peer_cert_chain.3" => [ "doc/man3/SSL_get_peer_cert_chain.pod" ], @@ -6051,12 +6822,24 @@ our %unified_info = ( "doc/man/man3/SSL_get_rbio.3" => [ "doc/man3/SSL_get_rbio.pod" ], + "doc/man/man3/SSL_get_rpoll_descriptor.3" => [ + "doc/man3/SSL_get_rpoll_descriptor.pod" + ], "doc/man/man3/SSL_get_session.3" => [ "doc/man3/SSL_get_session.pod" ], "doc/man/man3/SSL_get_shared_sigalgs.3" => [ "doc/man3/SSL_get_shared_sigalgs.pod" ], + "doc/man/man3/SSL_get_stream_id.3" => [ + "doc/man3/SSL_get_stream_id.pod" + ], + "doc/man/man3/SSL_get_stream_read_state.3" => [ + "doc/man3/SSL_get_stream_read_state.pod" + ], + "doc/man/man3/SSL_get_value_uint.3" => [ + "doc/man3/SSL_get_value_uint.pod" + ], "doc/man/man3/SSL_get_verify_result.3" => [ "doc/man3/SSL_get_verify_result.pod" ], @@ -6066,9 +6849,15 @@ our %unified_info = ( "doc/man/man3/SSL_group_to_name.3" => [ "doc/man3/SSL_group_to_name.pod" ], + "doc/man/man3/SSL_handle_events.3" => [ + "doc/man3/SSL_handle_events.pod" + ], "doc/man/man3/SSL_in_init.3" => [ "doc/man3/SSL_in_init.pod" ], + "doc/man/man3/SSL_inject_net_dgram.3" => [ + "doc/man3/SSL_inject_net_dgram.pod" + ], "doc/man/man3/SSL_key_update.3" => [ "doc/man3/SSL_key_update.pod" ], @@ -6081,9 +6870,21 @@ our %unified_info = ( "doc/man/man3/SSL_new.3" => [ "doc/man3/SSL_new.pod" ], + "doc/man/man3/SSL_new_domain.3" => [ + "doc/man3/SSL_new_domain.pod" + ], + "doc/man/man3/SSL_new_listener.3" => [ + "doc/man3/SSL_new_listener.pod" + ], + "doc/man/man3/SSL_new_stream.3" => [ + "doc/man3/SSL_new_stream.pod" + ], "doc/man/man3/SSL_pending.3" => [ "doc/man3/SSL_pending.pod" ], + "doc/man/man3/SSL_poll.3" => [ + "doc/man3/SSL_poll.pod" + ], "doc/man/man3/SSL_read.3" => [ "doc/man3/SSL_read.pod" ], @@ -6099,24 +6900,45 @@ our %unified_info = ( "doc/man/man3/SSL_set1_host.3" => [ "doc/man3/SSL_set1_host.pod" ], + "doc/man/man3/SSL_set1_initial_peer_addr.3" => [ + "doc/man3/SSL_set1_initial_peer_addr.pod" + ], + "doc/man/man3/SSL_set1_server_cert_type.3" => [ + "doc/man3/SSL_set1_server_cert_type.pod" + ], "doc/man/man3/SSL_set_async_callback.3" => [ "doc/man3/SSL_set_async_callback.pod" ], "doc/man/man3/SSL_set_bio.3" => [ "doc/man3/SSL_set_bio.pod" ], + "doc/man/man3/SSL_set_blocking_mode.3" => [ + "doc/man3/SSL_set_blocking_mode.pod" + ], "doc/man/man3/SSL_set_connect_state.3" => [ "doc/man3/SSL_set_connect_state.pod" ], + "doc/man/man3/SSL_set_default_stream_mode.3" => [ + "doc/man3/SSL_set_default_stream_mode.pod" + ], "doc/man/man3/SSL_set_fd.3" => [ "doc/man3/SSL_set_fd.pod" ], + "doc/man/man3/SSL_set_incoming_stream_policy.3" => [ + "doc/man3/SSL_set_incoming_stream_policy.pod" + ], + "doc/man/man3/SSL_set_quic_tls_cbs.3" => [ + "doc/man3/SSL_set_quic_tls_cbs.pod" + ], "doc/man/man3/SSL_set_retry_verify.3" => [ "doc/man3/SSL_set_retry_verify.pod" ], "doc/man/man3/SSL_set_session.3" => [ "doc/man3/SSL_set_session.pod" ], + "doc/man/man3/SSL_set_session_secret_cb.3" => [ + "doc/man3/SSL_set_session_secret_cb.pod" + ], "doc/man/man3/SSL_set_shutdown.3" => [ "doc/man3/SSL_set_shutdown.pod" ], @@ -6129,6 +6951,12 @@ our %unified_info = ( "doc/man/man3/SSL_state_string.3" => [ "doc/man3/SSL_state_string.pod" ], + "doc/man/man3/SSL_stream_conclude.3" => [ + "doc/man3/SSL_stream_conclude.pod" + ], + "doc/man/man3/SSL_stream_reset.3" => [ + "doc/man3/SSL_stream_reset.pod" + ], "doc/man/man3/SSL_want.3" => [ "doc/man3/SSL_want.pod" ], @@ -6138,8 +6966,8 @@ our %unified_info = ( "doc/man/man3/TS_RESP_CTX_new.3" => [ "doc/man3/TS_RESP_CTX_new.pod" ], - "doc/man/man3/TS_VERIFY_CTX_set_certs.3" => [ - "doc/man3/TS_VERIFY_CTX_set_certs.pod" + "doc/man/man3/TS_VERIFY_CTX.3" => [ + "doc/man3/TS_VERIFY_CTX.pod" ], "doc/man/man3/UI_STRING.3" => [ "doc/man3/UI_STRING.pod" @@ -6159,6 +6987,21 @@ our %unified_info = ( "doc/man/man3/X509V3_set_ctx.3" => [ "doc/man3/X509V3_set_ctx.pod" ], + "doc/man/man3/X509_ACERT_add1_attr.3" => [ + "doc/man3/X509_ACERT_add1_attr.pod" + ], + "doc/man/man3/X509_ACERT_add_attr_nconf.3" => [ + "doc/man3/X509_ACERT_add_attr_nconf.pod" + ], + "doc/man/man3/X509_ACERT_get0_holder_baseCertId.3" => [ + "doc/man3/X509_ACERT_get0_holder_baseCertId.pod" + ], + "doc/man/man3/X509_ACERT_get_attr.3" => [ + "doc/man3/X509_ACERT_get_attr.pod" + ], + "doc/man/man3/X509_ACERT_print_ex.3" => [ + "doc/man3/X509_ACERT_print_ex.pod" + ], "doc/man/man3/X509_ALGOR_dup.3" => [ "doc/man3/X509_ALGOR_dup.pod" ], @@ -6207,6 +7050,9 @@ our %unified_info = ( "doc/man/man3/X509_SIG_get0.3" => [ "doc/man3/X509_SIG_get0.pod" ], + "doc/man/man3/X509_STORE_CTX_get_by_subject.3" => [ + "doc/man3/X509_STORE_CTX_get_by_subject.pod" + ], "doc/man/man3/X509_STORE_CTX_get_error.3" => [ "doc/man3/X509_STORE_CTX_get_error.pod" ], @@ -6273,6 +7119,9 @@ our %unified_info = ( "doc/man/man3/X509_get0_uids.3" => [ "doc/man3/X509_get0_uids.pod" ], + "doc/man/man3/X509_get_default_cert_file.3" => [ + "doc/man3/X509_get_default_cert_file.pod" + ], "doc/man/man3/X509_get_extension_flags.3" => [ "doc/man3/X509_get_extension_flags.pod" ], @@ -6396,9 +7245,15 @@ our %unified_info = ( "doc/man/man7/EVP_CIPHER-SM4.7" => [ "doc/man7/EVP_CIPHER-SM4.pod" ], + "doc/man/man7/EVP_KDF-ARGON2.7" => [ + "doc/man7/EVP_KDF-ARGON2.pod" + ], "doc/man/man7/EVP_KDF-HKDF.7" => [ "doc/man7/EVP_KDF-HKDF.pod" ], + "doc/man/man7/EVP_KDF-HMAC-DRBG.7" => [ + "doc/man7/EVP_KDF-HMAC-DRBG.pod" + ], "doc/man/man7/EVP_KDF-KB.7" => [ "doc/man7/EVP_KDF-KB.pod" ], @@ -6414,6 +7269,9 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-PKCS12KDF.7" => [ "doc/man7/EVP_KDF-PKCS12KDF.pod" ], + "doc/man/man7/EVP_KDF-PVKKDF.7" => [ + "doc/man7/EVP_KDF-PVKKDF.pod" + ], "doc/man/man7/EVP_KDF-SCRYPT.7" => [ "doc/man7/EVP_KDF-SCRYPT.pod" ], @@ -6438,9 +7296,18 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-X963.7" => [ "doc/man7/EVP_KDF-X963.pod" ], + "doc/man/man7/EVP_KEM-EC.7" => [ + "doc/man7/EVP_KEM-EC.pod" + ], + "doc/man/man7/EVP_KEM-ML-KEM.7" => [ + "doc/man7/EVP_KEM-ML-KEM.pod" + ], "doc/man/man7/EVP_KEM-RSA.7" => [ "doc/man7/EVP_KEM-RSA.pod" ], + "doc/man/man7/EVP_KEM-X25519.7" => [ + "doc/man7/EVP_KEM-X25519.pod" + ], "doc/man/man7/EVP_KEYEXCH-DH.7" => [ "doc/man7/EVP_KEYEXCH-DH.pod" ], @@ -6474,6 +7341,9 @@ our %unified_info = ( "doc/man/man7/EVP_MD-BLAKE2.7" => [ "doc/man7/EVP_MD-BLAKE2.pod" ], + "doc/man/man7/EVP_MD-KECCAK.7" => [ + "doc/man7/EVP_MD-KECCAK.pod" + ], "doc/man/man7/EVP_MD-MD2.7" => [ "doc/man7/EVP_MD-MD2.pod" ], @@ -6531,15 +7401,27 @@ our %unified_info = ( "doc/man/man7/EVP_PKEY-HMAC.7" => [ "doc/man7/EVP_PKEY-HMAC.pod" ], + "doc/man/man7/EVP_PKEY-ML-DSA.7" => [ + "doc/man7/EVP_PKEY-ML-DSA.pod" + ], + "doc/man/man7/EVP_PKEY-ML-KEM.7" => [ + "doc/man7/EVP_PKEY-ML-KEM.pod" + ], "doc/man/man7/EVP_PKEY-RSA.7" => [ "doc/man7/EVP_PKEY-RSA.pod" ], + "doc/man/man7/EVP_PKEY-SLH-DSA.7" => [ + "doc/man7/EVP_PKEY-SLH-DSA.pod" + ], "doc/man/man7/EVP_PKEY-SM2.7" => [ "doc/man7/EVP_PKEY-SM2.pod" ], "doc/man/man7/EVP_PKEY-X25519.7" => [ "doc/man7/EVP_PKEY-X25519.pod" ], + "doc/man/man7/EVP_RAND-CRNG-TEST.7" => [ + "doc/man7/EVP_RAND-CRNG-TEST.pod" + ], "doc/man/man7/EVP_RAND-CTR-DRBG.7" => [ "doc/man7/EVP_RAND-CTR-DRBG.pod" ], @@ -6549,6 +7431,9 @@ our %unified_info = ( "doc/man/man7/EVP_RAND-HMAC-DRBG.7" => [ "doc/man7/EVP_RAND-HMAC-DRBG.pod" ], + "doc/man/man7/EVP_RAND-JITTER.7" => [ + "doc/man7/EVP_RAND-JITTER.pod" + ], "doc/man/man7/EVP_RAND-SEED-SRC.7" => [ "doc/man7/EVP_RAND-SEED-SRC.pod" ], @@ -6570,9 +7455,15 @@ our %unified_info = ( "doc/man/man7/EVP_SIGNATURE-HMAC.7" => [ "doc/man7/EVP_SIGNATURE-HMAC.pod" ], + "doc/man/man7/EVP_SIGNATURE-ML-DSA.7" => [ + "doc/man7/EVP_SIGNATURE-ML-DSA.pod" + ], "doc/man/man7/EVP_SIGNATURE-RSA.7" => [ "doc/man7/EVP_SIGNATURE-RSA.pod" ], + "doc/man/man7/EVP_SIGNATURE-SLH-DSA.7" => [ + "doc/man7/EVP_SIGNATURE-SLH-DSA.pod" + ], "doc/man/man7/OSSL_PROVIDER-FIPS.7" => [ "doc/man7/OSSL_PROVIDER-FIPS.pod" ], @@ -6588,6 +7479,9 @@ our %unified_info = ( "doc/man/man7/OSSL_PROVIDER-null.7" => [ "doc/man7/OSSL_PROVIDER-null.pod" ], + "doc/man/man7/OSSL_STORE-winstore.7" => [ + "doc/man7/OSSL_STORE-winstore.pod" + ], "doc/man/man7/RAND.7" => [ "doc/man7/RAND.pod" ], @@ -6600,9 +7494,6 @@ our %unified_info = ( "doc/man/man7/bio.7" => [ "doc/man7/bio.pod" ], - "doc/man/man7/crypto.7" => [ - "doc/man7/crypto.pod" - ], "doc/man/man7/ct.7" => [ "doc/man7/ct.pod" ], @@ -6633,9 +7524,6 @@ our %unified_info = ( "doc/man/man7/life_cycle-rand.7" => [ "doc/man7/life_cycle-rand.pod" ], - "doc/man/man7/migration_guide.7" => [ - "doc/man7/migration_guide.pod" - ], "doc/man/man7/openssl-core.h.7" => [ "doc/man7/openssl-core.h.pod" ], @@ -6651,12 +7539,66 @@ our %unified_info = ( "doc/man/man7/openssl-glossary.7" => [ "doc/man7/openssl-glossary.pod" ], + "doc/man/man7/openssl-qlog.7" => [ + "doc/man7/openssl-qlog.pod" + ], + "doc/man/man7/openssl-quic-concurrency.7" => [ + "doc/man7/openssl-quic-concurrency.pod" + ], + "doc/man/man7/openssl-quic.7" => [ + "doc/man7/openssl-quic.pod" + ], "doc/man/man7/openssl-threads.7" => [ "doc/man7/openssl-threads.pod" ], "doc/man/man7/openssl_user_macros.7" => [ "doc/man7/openssl_user_macros.pod" ], + "doc/man/man7/ossl-guide-introduction.7" => [ + "doc/man7/ossl-guide-introduction.pod" + ], + "doc/man/man7/ossl-guide-libcrypto-introduction.7" => [ + "doc/man7/ossl-guide-libcrypto-introduction.pod" + ], + "doc/man/man7/ossl-guide-libraries-introduction.7" => [ + "doc/man7/ossl-guide-libraries-introduction.pod" + ], + "doc/man/man7/ossl-guide-libssl-introduction.7" => [ + "doc/man7/ossl-guide-libssl-introduction.pod" + ], + "doc/man/man7/ossl-guide-migration.7" => [ + "doc/man7/ossl-guide-migration.pod" + ], + "doc/man/man7/ossl-guide-quic-client-block.7" => [ + "doc/man7/ossl-guide-quic-client-block.pod" + ], + "doc/man/man7/ossl-guide-quic-client-non-block.7" => [ + "doc/man7/ossl-guide-quic-client-non-block.pod" + ], + "doc/man/man7/ossl-guide-quic-introduction.7" => [ + "doc/man7/ossl-guide-quic-introduction.pod" + ], + "doc/man/man7/ossl-guide-quic-multi-stream.7" => [ + "doc/man7/ossl-guide-quic-multi-stream.pod" + ], + "doc/man/man7/ossl-guide-quic-server-block.7" => [ + "doc/man7/ossl-guide-quic-server-block.pod" + ], + "doc/man/man7/ossl-guide-quic-server-non-block.7" => [ + "doc/man7/ossl-guide-quic-server-non-block.pod" + ], + "doc/man/man7/ossl-guide-tls-client-block.7" => [ + "doc/man7/ossl-guide-tls-client-block.pod" + ], + "doc/man/man7/ossl-guide-tls-client-non-block.7" => [ + "doc/man7/ossl-guide-tls-client-non-block.pod" + ], + "doc/man/man7/ossl-guide-tls-introduction.7" => [ + "doc/man7/ossl-guide-tls-introduction.pod" + ], + "doc/man/man7/ossl-guide-tls-server-block.7" => [ + "doc/man7/ossl-guide-tls-server-block.pod" + ], "doc/man/man7/ossl_store-file.7" => [ "doc/man7/ossl_store-file.pod" ], @@ -6711,6 +7653,9 @@ our %unified_info = ( "doc/man/man7/provider-signature.7" => [ "doc/man7/provider-signature.pod" ], + "doc/man/man7/provider-skeymgmt.7" => [ + "doc/man7/provider-skeymgmt.pod" + ], "doc/man/man7/provider-storemgmt.7" => [ "doc/man7/provider-storemgmt.pod" ], @@ -6720,9 +7665,6 @@ our %unified_info = ( "doc/man/man7/proxy-certificates.7" => [ "doc/man7/proxy-certificates.pod" ], - "doc/man/man7/ssl.7" => [ - "doc/man7/ssl.pod" - ], "doc/man/man7/x509.7" => [ "doc/man7/x509.pod" ], @@ -6902,6 +7844,10 @@ our %unified_info = ( "doc/man1/openssl-sess_id.pod.in", "doc/perlvars.pm" ], + "doc/man1/openssl-skeyutl.pod" => [ + "doc/man1/openssl-skeyutl.pod.in", + "doc/perlvars.pm" + ], "doc/man1/openssl-smime.pod" => [ "doc/man1/openssl-smime.pod.in", "doc/perlvars.pm" @@ -6941,6 +7887,27 @@ our %unified_info = ( "doc/man7/openssl_user_macros.pod" => [ "doc/man7/openssl_user_macros.pod.in" ], + "exporters/OpenSSLConfig.cmake" => [ + "installdata.pm" + ], + "exporters/OpenSSLConfigVersion.cmake" => [ + "exporters/OpenSSLConfig.cmake", + "installdata.pm" + ], + "exporters/libcrypto.pc" => [ + "installdata.pm" + ], + "exporters/libssl.pc" => [ + "installdata.pm" + ], + "exporters/openssl.pc" => [ + "exporters/libcrypto.pc", + "exporters/libssl.pc", + "installdata.pm" + ], + "fuzz/acert-test" => [ + "libcrypto" + ], "fuzz/asn1-test" => [ "libcrypto", "libssl" @@ -6973,17 +7940,85 @@ our %unified_info = ( "fuzz/ct-test" => [ "libcrypto" ], + "fuzz/decoder-test" => [ + "libcrypto" + ], + "fuzz/dtlsclient-test" => [ + "libcrypto", + "libssl" + ], + "fuzz/dtlsserver-test" => [ + "libcrypto", + "libssl" + ], + "fuzz/hashtable-test" => [ + "libcrypto.a" + ], + "fuzz/ml-dsa-test" => [ + "libcrypto.a" + ], + "fuzz/ml-kem-test" => [ + "libcrypto.a" + ], + "fuzz/pem-test" => [ + "libcrypto.a" + ], + "fuzz/provider-test" => [ + "libcrypto" + ], + "fuzz/punycode-test" => [ + "libcrypto.a" + ], + "fuzz/quic-client-test" => [ + "libcrypto.a", + "libssl.a" + ], + "fuzz/quic-lcidm-test" => [ + "libcrypto.a", + "libssl.a" + ], + "fuzz/quic-rcidm-test" => [ + "libcrypto.a", + "libssl.a" + ], + "fuzz/quic-server-test" => [ + "libcrypto.a", + "libssl.a" + ], + "fuzz/quic-srtm-test" => [ + "libcrypto.a", + "libssl.a" + ], "fuzz/server-test" => [ "libcrypto", "libssl" ], + "fuzz/slh-dsa-test" => [ + "libcrypto.a" + ], + "fuzz/smime-test" => [ + "libcrypto", + "libssl" + ], + "fuzz/v3name-test" => [ + "libcrypto.a" + ], "fuzz/x509-test" => [ "libcrypto" ], + "include/internal/param_names.h" => [ + "util/perl|OpenSSL/paramnames.pm" + ], + "include/openssl/core_names.h" => [ + "util/perl|OpenSSL/paramnames.pm" + ], "libcrypto.ld" => [ "configdata.pm", "util/perl/OpenSSL/Ordinals.pm" ], + "libcrypto.pc" => [ + "builddata.pm" + ], "libcrypto.rc" => [ "configdata.pm" ], @@ -6994,9 +8029,17 @@ our %unified_info = ( "configdata.pm", "util/perl/OpenSSL/Ordinals.pm" ], + "libssl.pc" => [ + "builddata.pm" + ], "libssl.rc" => [ "configdata.pm" ], + "openssl.pc" => [ + "builddata.pm", + "libcrypto.pc", + "libssl.pc" + ], "providers/common/der/der_digests_gen.c" => [ "providers/common/der/DIGESTS.asn1", "providers/common/der/NIST.asn1", @@ -7014,11 +8057,19 @@ our %unified_info = ( "providers/common/der/ECX.asn1", "providers/common/der/oids_to_c.pm" ], + "providers/common/der/der_ml_dsa_gen.c" => [ + "providers/common/der/ML_DSA.asn1", + "providers/common/der/oids_to_c.pm" + ], "providers/common/der/der_rsa_gen.c" => [ "providers/common/der/NIST.asn1", "providers/common/der/RSA.asn1", "providers/common/der/oids_to_c.pm" ], + "providers/common/der/der_slh_dsa_gen.c" => [ + "providers/common/der/SLH_DSA.asn1", + "providers/common/der/oids_to_c.pm" + ], "providers/common/der/der_sm2_gen.c" => [ "providers/common/der/SM2.asn1", "providers/common/der/oids_to_c.pm" @@ -7058,6 +8109,12 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ecx_key.o" => [ "providers/common/include/prov/der_ecx.h" ], + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o" => [ + "providers/common/include/prov/der_ml_dsa.h" + ], + "providers/common/der/libcommon-lib-der_ml_dsa_key.o" => [ + "providers/common/include/prov/der_ml_dsa.h" + ], "providers/common/der/libcommon-lib-der_rsa_gen.o" => [ "providers/common/include/prov/der_rsa.h" ], @@ -7065,6 +8122,12 @@ our %unified_info = ( "providers/common/include/prov/der_digests.h", "providers/common/include/prov/der_rsa.h" ], + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o" => [ + "providers/common/include/prov/der_slh_dsa.h" + ], + "providers/common/der/libcommon-lib-der_slh_dsa_key.o" => [ + "providers/common/include/prov/der_slh_dsa.h" + ], "providers/common/der/libcommon-lib-der_wrap_gen.o" => [ "providers/common/include/prov/der_wrap.h" ], @@ -7104,11 +8167,19 @@ our %unified_info = ( "providers/common/der/ECX.asn1", "providers/common/der/oids_to_c.pm" ], + "providers/common/include/prov/der_ml_dsa.h" => [ + "providers/common/der/ML_DSA.asn1", + "providers/common/der/oids_to_c.pm" + ], "providers/common/include/prov/der_rsa.h" => [ "providers/common/der/NIST.asn1", "providers/common/der/RSA.asn1", "providers/common/der/oids_to_c.pm" ], + "providers/common/include/prov/der_slh_dsa.h" => [ + "providers/common/der/SLH_DSA.asn1", + "providers/common/der/oids_to_c.pm" + ], "providers/common/include/prov/der_sm2.h" => [ "providers/common/der/SM2.asn1", "providers/common/der/oids_to_c.pm" @@ -7141,9 +8212,15 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-eddsa_sig.o" => [ "providers/common/include/prov/der_ecx.h" ], + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o" => [ + "providers/common/include/prov/der_ml_dsa.h" + ], "providers/implementations/signature/libdefault-lib-rsa_sig.o" => [ "providers/common/include/prov/der_rsa.h" ], + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o" => [ + "providers/common/include/prov/der_slh_dsa.h" + ], "providers/implementations/signature/libdefault-lib-sm2_sig.o" => [ "providers/common/include/prov/der_sm2.h" ], @@ -7156,9 +8233,15 @@ our %unified_info = ( "providers/implementations/signature/libfips-lib-eddsa_sig.o" => [ "providers/common/include/prov/der_ecx.h" ], + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o" => [ + "providers/common/include/prov/der_ml_dsa.h" + ], "providers/implementations/signature/libfips-lib-rsa_sig.o" => [ "providers/common/include/prov/der_rsa.h" ], + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o" => [ + "providers/common/include/prov/der_slh_dsa.h" + ], "providers/legacy" => [ "libcrypto", "providers/liblegacy.a" @@ -7236,6 +8319,14 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/bio_addr_test" => [ + "libcrypto", + "test/libtestutil.a" + ], + "test/bio_base64_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/bio_callback_test" => [ "libcrypto", "test/libtestutil.a" @@ -7244,6 +8335,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/bio_dgram_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/bio_enc_test" => [ "libcrypto", "test/libtestutil.a" @@ -7252,6 +8347,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/bio_meth_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/bio_prefix_text" => [ "libcrypto", "test/libtestutil.a" @@ -7264,6 +8363,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/bio_tfo_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/bioprinttest" => [ "libcrypto", "test/libtestutil.a" @@ -7276,6 +8379,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/build_wincrypt_test" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_aes" => [ "libcrypto", "libssl" @@ -7296,6 +8403,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_byteorder" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_camellia" => [ "libcrypto", "libssl" @@ -7328,10 +8439,6 @@ our %unified_info = ( "libcrypto", "libssl" ], - "test/buildtest_c_core_names" => [ - "libcrypto", - "libssl" - ], "test/buildtest_c_core_object" => [ "libcrypto", "libssl" @@ -7364,6 +8471,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_e_ostime" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_ebcdic" => [ "libcrypto", "libssl" @@ -7400,6 +8511,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_hpke" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_http" => [ "libcrypto", "libssl" @@ -7408,6 +8523,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_indicator" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_kdf" => [ "libcrypto", "libssl" @@ -7428,6 +8547,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_ml_kem" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_modes" => [ "libcrypto", "libssl" @@ -7468,6 +8591,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_quic" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_rand" => [ "libcrypto", "libssl" @@ -7524,6 +8651,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_thread" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_tls1" => [ "libcrypto", "libssl" @@ -7544,10 +8675,23 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/byteorder_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], + "test/ca_internals_test" => [ + "libssl", + "test/libtestutil.a" + ], "test/casttest" => [ "libcrypto", "test/libtestutil.a" ], + "test/cert_comp_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], "test/chacha_internal_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -7661,7 +8805,11 @@ our %unified_info = ( "libssl", "test/libtestutil.a" ], - "test/defltfips_test" => [ + "test/decoder_propq_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], + "test/defltfips_test" => [ "libcrypto", "test/libtestutil.a" ], @@ -7717,6 +8865,8 @@ our %unified_info = ( ], "test/endecode_test" => [ "libcrypto.a", + "providers/libcommon.a", + "providers/liblegacy.a", "test/libtestutil.a" ], "test/endecoder_legacy_test" => [ @@ -7760,6 +8910,10 @@ our %unified_info = ( "test/evp_pkey_ctx_new_from_name" => [ "libcrypto" ], + "test/evp_pkey_dhkem_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/evp_pkey_dparams_test" => [ "libcrypto", "test/libtestutil.a" @@ -7768,10 +8922,18 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/evp_skey_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/evp_test" => [ "libcrypto", "test/libtestutil.a" ], + "test/evp_xof_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/exdatatest" => [ "libcrypto", "test/libtestutil.a" @@ -7810,6 +8972,10 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/hpke_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/http_test" => [ "libcrypto", "test/libtestutil.a" @@ -7822,17 +8988,25 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/json_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], "test/keymgmt_internal_test" => [ "libcrypto.a", "test/libtestutil.a" ], "test/lhash_test" => [ - "libcrypto", + "libcrypto.a", "test/libtestutil.a" ], "test/libtestutil.a" => [ "libcrypto" ], + "test/list_test" => [ + "test/libtestutil.a" + ], "test/localetest" => [ "libcrypto", "test/libtestutil.a" @@ -7845,10 +9019,26 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/membio_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/memleaktest" => [ "libcrypto", "test/libtestutil.a" ], + "test/ml_dsa_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], + "test/ml_kem_evp_extra_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], + "test/ml_kem_internal_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/modes_internal_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -7873,6 +9063,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/pairwise_fail_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/param_build_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -7905,6 +9099,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/pkcs12_api_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/pkcs12_format_test" => [ "libcrypto", "test/libtestutil.a" @@ -7925,6 +9123,11 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/priority_queue_test" => [ + "libcrypto", + "libssl.a", + "test/libtestutil.a" + ], "test/property_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -7937,6 +9140,10 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/provider_default_search_path_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/provider_fallback_test" => [ "libcrypto", "test/libtestutil.a" @@ -7961,12 +9168,122 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/quic_ackm_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_cc_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_cfq_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_client_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_fc_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_fifd_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_lcidm_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_multistream_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_newcid_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_qlog_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_radix_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_rcidm_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_record_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_srt_gen_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_srtm_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_stream_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_tserver_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_txp_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_txpim_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_wire_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quicapitest" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quicfaultstest" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], "test/rand_status_test" => [ "libcrypto", "test/libtestutil.a" ], "test/rand_test" => [ - "libcrypto", + "libcrypto.a", "test/libtestutil.a" ], "test/rc2test" => [ @@ -7981,7 +9298,7 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], - "test/rdrand_sanitytest" => [ + "test/rdcpu_sanitytest" => [ "libcrypto.a", "test/libtestutil.a" ], @@ -7990,6 +9307,11 @@ our %unified_info = ( "libssl", "test/libtestutil.a" ], + "test/rpktest" => [ + "libcrypto", + "libssl", + "test/libtestutil.a" + ], "test/rsa_mp_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -8002,10 +9324,18 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], - "test/sanitytest" => [ + "test/rsa_x931_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], + "test/safe_math_test" => [ "libcrypto", "test/libtestutil.a" ], + "test/sanitytest" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/secmemtest" => [ "libcrypto", "test/libtestutil.a" @@ -8023,6 +9353,10 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/slh_dsa_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/sm2_internal_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -8052,6 +9386,11 @@ our %unified_info = ( "libssl", "test/libtestutil.a" ], + "test/ssl_handshake_rtt_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], "test/ssl_old_test" => [ "libcrypto.a", "libssl.a", @@ -8068,8 +9407,8 @@ our %unified_info = ( "test/libtestutil.a" ], "test/sslapitest" => [ - "libcrypto", - "libssl", + "libcrypto.a", + "libssl.a", "test/libtestutil.a" ], "test/sslbuffertest" => [ @@ -8086,6 +9425,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/strtoultest" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/sysdefaulttest" => [ "libcrypto", "libssl", @@ -8095,8 +9438,12 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/threadpool_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/threadstest" => [ - "libcrypto", + "libcrypto.a", "test/libtestutil.a" ], "test/threadstest_fips" => [ @@ -8107,6 +9454,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/time_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/tls13ccstest" => [ "libcrypto", "libssl", @@ -8117,6 +9468,11 @@ our %unified_info = ( "libssl.a", "test/libtestutil.a" ], + "test/tls13groupselection_test" => [ + "libcrypto", + "libssl", + "test/libtestutil.a" + ], "test/trace_api_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -8154,6 +9510,10 @@ our %unified_info = ( "libssl.a", "test/libtestutil.a" ], + "test/x509_acert_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/x509_check_cert_pkey_test" => [ "libcrypto", "test/libtestutil.a" @@ -8166,6 +9526,18 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/x509_load_cert_file_test" => [ + "libcrypto", + "test/libtestutil.a" + ], + "test/x509_req_test" => [ + "libcrypto", + "test/libtestutil.a" + ], + "test/x509_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/x509_time_test" => [ "libcrypto", "test/libtestutil.a" @@ -8180,9 +9552,13 @@ our %unified_info = ( }, "dirinfo" => { "apps" => { + "deps" => [ + "apps/ca_internals_test-bin-ca.o" + ], "products" => { "bin" => [ - "apps/openssl" + "apps/openssl", + "test/ca_internals_test" ], "script" => [ "apps/CA.pl", @@ -8193,6 +9569,14 @@ our %unified_info = ( "apps/lib" => { "deps" => [ "apps/lib/openssl-bin-cmp_mock_srv.o", + "apps/lib/ca_internals_test-bin-app_libctx.o", + "apps/lib/ca_internals_test-bin-app_provider.o", + "apps/lib/ca_internals_test-bin-app_rand.o", + "apps/lib/ca_internals_test-bin-app_x509.o", + "apps/lib/ca_internals_test-bin-apps.o", + "apps/lib/ca_internals_test-bin-apps_ui.o", + "apps/lib/ca_internals_test-bin-engine.o", + "apps/lib/ca_internals_test-bin-fmt.o", "apps/lib/cmp_client_test-bin-cmp_mock_srv.o", "apps/lib/uitest-bin-apps_ui.o", "apps/lib/libapps-lib-app_libctx.o", @@ -8201,12 +9585,14 @@ our %unified_info = ( "apps/lib/libapps-lib-app_rand.o", "apps/lib/libapps-lib-app_x509.o", "apps/lib/libapps-lib-apps.o", + "apps/lib/libapps-lib-apps_opt_printf.o", "apps/lib/libapps-lib-apps_ui.o", "apps/lib/libapps-lib-columns.o", "apps/lib/libapps-lib-engine.o", "apps/lib/libapps-lib-engine_loader.o", "apps/lib/libapps-lib-fmt.o", "apps/lib/libapps-lib-http_server.o", + "apps/lib/libapps-lib-log.o", "apps/lib/libapps-lib-names.o", "apps/lib/libapps-lib-opt.o", "apps/lib/libapps-lib-s_cb.o", @@ -8219,6 +9605,7 @@ our %unified_info = ( "products" => { "bin" => [ "apps/openssl", + "test/ca_internals_test", "test/cmp_client_test", "test/uitest" ], @@ -8230,8 +9617,12 @@ our %unified_info = ( }, "crypto" => { "deps" => [ + "crypto/asn1_time_test-bin-ctype.o", + "crypto/ca_internals_test-bin-ctype.o", + "crypto/packettest-bin-quic_vlint.o", "crypto/libcrypto-lib-asn1_dsa.o", "crypto/libcrypto-lib-bsearch.o", + "crypto/libcrypto-lib-comp_methods.o", "crypto/libcrypto-lib-context.o", "crypto/libcrypto-lib-core_algorithm.o", "crypto/libcrypto-lib-core_fetch.o", @@ -8241,10 +9632,13 @@ our %unified_info = ( "crypto/libcrypto-lib-cryptlib.o", "crypto/libcrypto-lib-ctype.o", "crypto/libcrypto-lib-cversion.o", + "crypto/libcrypto-lib-defaults.o", "crypto/libcrypto-lib-der_writer.o", + "crypto/libcrypto-lib-deterministic_nonce.o", "crypto/libcrypto-lib-ebcdic.o", "crypto/libcrypto-lib-ex_data.o", "crypto/libcrypto-lib-getenv.o", + "crypto/libcrypto-lib-indicator_core.o", "crypto/libcrypto-lib-info.o", "crypto/libcrypto-lib-init.o", "crypto/libcrypto-lib-initthread.o", @@ -8262,6 +9656,7 @@ our %unified_info = ( "crypto/libcrypto-lib-params.o", "crypto/libcrypto-lib-params_dup.o", "crypto/libcrypto-lib-params_from_text.o", + "crypto/libcrypto-lib-params_idx.o", "crypto/libcrypto-lib-passphrase.o", "crypto/libcrypto-lib-provider.o", "crypto/libcrypto-lib-provider_child.o", @@ -8269,12 +9664,16 @@ our %unified_info = ( "crypto/libcrypto-lib-provider_core.o", "crypto/libcrypto-lib-provider_predefined.o", "crypto/libcrypto-lib-punycode.o", + "crypto/libcrypto-lib-quic_vlint.o", "crypto/libcrypto-lib-self_test_core.o", + "crypto/libcrypto-lib-sleep.o", "crypto/libcrypto-lib-sparse_array.o", + "crypto/libcrypto-lib-ssl_err.o", "crypto/libcrypto-lib-threads_lib.o", "crypto/libcrypto-lib-threads_none.o", "crypto/libcrypto-lib-threads_pthread.o", "crypto/libcrypto-lib-threads_win.o", + "crypto/libcrypto-lib-time.o", "crypto/libcrypto-lib-trace.o", "crypto/libcrypto-lib-uid.o", "crypto/libfips-lib-asn1_dsa.o", @@ -8297,6 +9696,7 @@ our %unified_info = ( "crypto/libfips-lib-params.o", "crypto/libfips-lib-params_dup.o", "crypto/libfips-lib-params_from_text.o", + "crypto/libfips-lib-params_idx.o", "crypto/libfips-lib-provider_core.o", "crypto/libfips-lib-provider_predefined.o", "crypto/libfips-lib-self_test_core.o", @@ -8304,9 +9704,15 @@ our %unified_info = ( "crypto/libfips-lib-threads_lib.o", "crypto/libfips-lib-threads_none.o", "crypto/libfips-lib-threads_pthread.o", - "crypto/libfips-lib-threads_win.o" + "crypto/libfips-lib-threads_win.o", + "crypto/libfips-lib-time.o" ], "products" => { + "bin" => [ + "test/asn1_time_test", + "test/ca_internals_test", + "test/packettest" + ], "lib" => [ "libcrypto", "providers/libfips.a" @@ -8347,6 +9753,8 @@ our %unified_info = ( }, "crypto/asn1" => { "deps" => [ + "crypto/asn1/asn1_time_test-bin-a_time.o", + "crypto/asn1/ca_internals_test-bin-a_time.o", "crypto/asn1/libcrypto-lib-a_bitstr.o", "crypto/asn1/libcrypto-lib-a_d2i_fp.o", "crypto/asn1/libcrypto-lib-a_digest.o", @@ -8413,6 +9821,10 @@ our %unified_info = ( "crypto/asn1/libcrypto-lib-x_val.o" ], "products" => { + "bin" => [ + "test/asn1_time_test", + "test/ca_internals_test" + ], "lib" => [ "libcrypto" ] @@ -8478,6 +9890,7 @@ our %unified_info = ( "crypto/bio/libcrypto-lib-bss_conn.o", "crypto/bio/libcrypto-lib-bss_core.o", "crypto/bio/libcrypto-lib-bss_dgram.o", + "crypto/bio/libcrypto-lib-bss_dgram_pair.o", "crypto/bio/libcrypto-lib-bss_fd.o", "crypto/bio/libcrypto-lib-bss_file.o", "crypto/bio/libcrypto-lib-bss_log.o", @@ -8634,6 +10047,7 @@ our %unified_info = ( "crypto/cmp/libcrypto-lib-cmp_client.o", "crypto/cmp/libcrypto-lib-cmp_ctx.o", "crypto/cmp/libcrypto-lib-cmp_err.o", + "crypto/cmp/libcrypto-lib-cmp_genm.o", "crypto/cmp/libcrypto-lib-cmp_hdr.o", "crypto/cmp/libcrypto-lib-cmp_http.o", "crypto/cmp/libcrypto-lib-cmp_msg.o", @@ -9001,7 +10415,9 @@ our %unified_info = ( "crypto/err/libcrypto-lib-err_all.o", "crypto/err/libcrypto-lib-err_all_legacy.o", "crypto/err/libcrypto-lib-err_blocks.o", - "crypto/err/libcrypto-lib-err_prn.o" + "crypto/err/libcrypto-lib-err_mark.o", + "crypto/err/libcrypto-lib-err_prn.o", + "crypto/err/libcrypto-lib-err_save.o" ], "products" => { "lib" => [ @@ -9102,7 +10518,9 @@ our %unified_info = ( "crypto/evp/libcrypto-lib-pmeth_check.o", "crypto/evp/libcrypto-lib-pmeth_gn.o", "crypto/evp/libcrypto-lib-pmeth_lib.o", + "crypto/evp/libcrypto-lib-s_lib.o", "crypto/evp/libcrypto-lib-signature.o", + "crypto/evp/libcrypto-lib-skeymgmt_meth.o", "crypto/evp/libfips-lib-asymcipher.o", "crypto/evp/libfips-lib-dh_support.o", "crypto/evp/libfips-lib-digest.o", @@ -9118,14 +10536,15 @@ our %unified_info = ( "crypto/evp/libfips-lib-kem.o", "crypto/evp/libfips-lib-keymgmt_lib.o", "crypto/evp/libfips-lib-keymgmt_meth.o", - "crypto/evp/libfips-lib-m_sigver.o", "crypto/evp/libfips-lib-mac_lib.o", "crypto/evp/libfips-lib-mac_meth.o", "crypto/evp/libfips-lib-p_lib.o", "crypto/evp/libfips-lib-pmeth_check.o", "crypto/evp/libfips-lib-pmeth_gn.o", "crypto/evp/libfips-lib-pmeth_lib.o", - "crypto/evp/libfips-lib-signature.o" + "crypto/evp/libfips-lib-s_lib.o", + "crypto/evp/libfips-lib-signature.o", + "crypto/evp/libfips-lib-skeymgmt_meth.o" ], "products" => { "lib" => [ @@ -9158,6 +10577,20 @@ our %unified_info = ( ] } }, + "crypto/hashtable" => { + "deps" => [ + "crypto/hashtable/libcrypto-lib-hashfunc.o", + "crypto/hashtable/libcrypto-lib-hashtable.o", + "crypto/hashtable/libfips-lib-hashfunc.o", + "crypto/hashtable/libfips-lib-hashtable.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, "crypto/hmac" => { "deps" => [ "crypto/hmac/libcrypto-lib-hmac.o", @@ -9170,6 +10603,17 @@ our %unified_info = ( ] } }, + "crypto/hpke" => { + "deps" => [ + "crypto/hpke/libcrypto-lib-hpke.o", + "crypto/hpke/libcrypto-lib-hpke_util.o" + ], + "products" => { + "lib" => [ + "libcrypto" + ] + } + }, "crypto/http" => { "deps" => [ "crypto/http/libcrypto-lib-http_client.o", @@ -9253,6 +10697,44 @@ our %unified_info = ( ] } }, + "crypto/ml_dsa" => { + "deps" => [ + "crypto/ml_dsa/libcrypto-lib-ml_dsa_encoders.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key_compress.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_matrix.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_ntt.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_params.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sample.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sign.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_encoders.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_key.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_key_compress.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_matrix.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_ntt.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_params.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_sample.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_sign.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, + "crypto/ml_kem" => { + "deps" => [ + "crypto/ml_kem/libcrypto-lib-ml_kem.o", + "crypto/ml_kem/libfips-lib-ml_kem.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, "crypto/modes" => { "deps" => [ "crypto/modes/libcrypto-lib-cbc128.o", @@ -9266,6 +10748,7 @@ our %unified_info = ( "crypto/modes/libcrypto-lib-siv128.o", "crypto/modes/libcrypto-lib-wrap128.o", "crypto/modes/libcrypto-lib-xts128.o", + "crypto/modes/libcrypto-lib-xts128gb.o", "crypto/modes/libfips-lib-cbc128.o", "crypto/modes/libfips-lib-ccm128.o", "crypto/modes/libfips-lib-cfb128.o", @@ -9273,7 +10756,8 @@ our %unified_info = ( "crypto/modes/libfips-lib-gcm128.o", "crypto/modes/libfips-lib-ofb128.o", "crypto/modes/libfips-lib-wrap128.o", - "crypto/modes/libfips-lib-xts128.o" + "crypto/modes/libfips-lib-xts128.o", + "crypto/modes/libfips-lib-xts128gb.o" ], "products" => { "lib" => [ @@ -9416,6 +10900,7 @@ our %unified_info = ( "crypto/rand/libcrypto-lib-rand_lib.o", "crypto/rand/libcrypto-lib-rand_meth.o", "crypto/rand/libcrypto-lib-rand_pool.o", + "crypto/rand/libcrypto-lib-rand_uniform.o", "crypto/rand/libcrypto-lib-randfile.o", "crypto/rand/libfips-lib-rand_lib.o" ], @@ -9560,6 +11045,36 @@ our %unified_info = ( ] } }, + "crypto/slh_dsa" => { + "deps" => [ + "crypto/slh_dsa/libcrypto-lib-slh_adrs.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa_hash_ctx.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa_key.o", + "crypto/slh_dsa/libcrypto-lib-slh_fors.o", + "crypto/slh_dsa/libcrypto-lib-slh_hash.o", + "crypto/slh_dsa/libcrypto-lib-slh_hypertree.o", + "crypto/slh_dsa/libcrypto-lib-slh_params.o", + "crypto/slh_dsa/libcrypto-lib-slh_wots.o", + "crypto/slh_dsa/libcrypto-lib-slh_xmss.o", + "crypto/slh_dsa/libfips-lib-slh_adrs.o", + "crypto/slh_dsa/libfips-lib-slh_dsa.o", + "crypto/slh_dsa/libfips-lib-slh_dsa_hash_ctx.o", + "crypto/slh_dsa/libfips-lib-slh_dsa_key.o", + "crypto/slh_dsa/libfips-lib-slh_fors.o", + "crypto/slh_dsa/libfips-lib-slh_hash.o", + "crypto/slh_dsa/libfips-lib-slh_hypertree.o", + "crypto/slh_dsa/libfips-lib-slh_params.o", + "crypto/slh_dsa/libfips-lib-slh_wots.o", + "crypto/slh_dsa/libfips-lib-slh_xmss.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, "crypto/sm2" => { "deps" => [ "crypto/sm2/libcrypto-lib-sm2_crypt.o", @@ -9633,6 +11148,38 @@ our %unified_info = ( ] } }, + "crypto/thread" => { + "deps" => [ + "crypto/thread/libcrypto-lib-api.o", + "crypto/thread/libcrypto-lib-arch.o", + "crypto/thread/libcrypto-lib-internal.o", + "crypto/thread/libfips-lib-api.o", + "crypto/thread/libfips-lib-arch.o", + "crypto/thread/libfips-lib-internal.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, + "crypto/thread/arch" => { + "deps" => [ + "crypto/thread/arch/libcrypto-lib-thread_none.o", + "crypto/thread/arch/libcrypto-lib-thread_posix.o", + "crypto/thread/arch/libcrypto-lib-thread_win.o", + "crypto/thread/arch/libfips-lib-thread_none.o", + "crypto/thread/arch/libfips-lib-thread_posix.o", + "crypto/thread/arch/libfips-lib-thread_win.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, "crypto/ts" => { "deps" => [ "crypto/ts/libcrypto-lib-ts_asn1.o", @@ -9699,14 +11246,22 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-pcy_map.o", "crypto/x509/libcrypto-lib-pcy_node.o", "crypto/x509/libcrypto-lib-pcy_tree.o", + "crypto/x509/libcrypto-lib-t_acert.o", "crypto/x509/libcrypto-lib-t_crl.o", "crypto/x509/libcrypto-lib-t_req.o", "crypto/x509/libcrypto-lib-t_x509.o", + "crypto/x509/libcrypto-lib-v3_aaa.o", + "crypto/x509/libcrypto-lib-v3_ac_tgt.o", "crypto/x509/libcrypto-lib-v3_addr.o", "crypto/x509/libcrypto-lib-v3_admis.o", "crypto/x509/libcrypto-lib-v3_akeya.o", "crypto/x509/libcrypto-lib-v3_akid.o", "crypto/x509/libcrypto-lib-v3_asid.o", + "crypto/x509/libcrypto-lib-v3_attrdesc.o", + "crypto/x509/libcrypto-lib-v3_attrmap.o", + "crypto/x509/libcrypto-lib-v3_audit_id.o", + "crypto/x509/libcrypto-lib-v3_authattid.o", + "crypto/x509/libcrypto-lib-v3_battcons.o", "crypto/x509/libcrypto-lib-v3_bcons.o", "crypto/x509/libcrypto-lib-v3_bitst.o", "crypto/x509/libcrypto-lib-v3_conf.o", @@ -9715,12 +11270,17 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_enum.o", "crypto/x509/libcrypto-lib-v3_extku.o", "crypto/x509/libcrypto-lib-v3_genn.o", + "crypto/x509/libcrypto-lib-v3_group_ac.o", "crypto/x509/libcrypto-lib-v3_ia5.o", + "crypto/x509/libcrypto-lib-v3_ind_iss.o", "crypto/x509/libcrypto-lib-v3_info.o", "crypto/x509/libcrypto-lib-v3_int.o", + "crypto/x509/libcrypto-lib-v3_iobo.o", "crypto/x509/libcrypto-lib-v3_ist.o", "crypto/x509/libcrypto-lib-v3_lib.o", "crypto/x509/libcrypto-lib-v3_ncons.o", + "crypto/x509/libcrypto-lib-v3_no_ass.o", + "crypto/x509/libcrypto-lib-v3_no_rev_avail.o", "crypto/x509/libcrypto-lib-v3_pci.o", "crypto/x509/libcrypto-lib-v3_pcia.o", "crypto/x509/libcrypto-lib-v3_pcons.o", @@ -9728,13 +11288,20 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_pmaps.o", "crypto/x509/libcrypto-lib-v3_prn.o", "crypto/x509/libcrypto-lib-v3_purp.o", + "crypto/x509/libcrypto-lib-v3_rolespec.o", "crypto/x509/libcrypto-lib-v3_san.o", + "crypto/x509/libcrypto-lib-v3_sda.o", + "crypto/x509/libcrypto-lib-v3_single_use.o", "crypto/x509/libcrypto-lib-v3_skid.o", + "crypto/x509/libcrypto-lib-v3_soa_id.o", "crypto/x509/libcrypto-lib-v3_sxnet.o", + "crypto/x509/libcrypto-lib-v3_timespec.o", "crypto/x509/libcrypto-lib-v3_tlsf.o", + "crypto/x509/libcrypto-lib-v3_usernotice.o", "crypto/x509/libcrypto-lib-v3_utf8.o", "crypto/x509/libcrypto-lib-v3_utl.o", "crypto/x509/libcrypto-lib-v3err.o", + "crypto/x509/libcrypto-lib-x509_acert.o", "crypto/x509/libcrypto-lib-x509_att.o", "crypto/x509/libcrypto-lib-x509_cmp.o", "crypto/x509/libcrypto-lib-x509_d2.o", @@ -9752,6 +11319,7 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x509_v3.o", "crypto/x509/libcrypto-lib-x509_vfy.o", "crypto/x509/libcrypto-lib-x509_vpm.o", + "crypto/x509/libcrypto-lib-x509aset.o", "crypto/x509/libcrypto-lib-x509cset.o", "crypto/x509/libcrypto-lib-x509name.o", "crypto/x509/libcrypto-lib-x509rset.o", @@ -9761,6 +11329,7 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x_attrib.o", "crypto/x509/libcrypto-lib-x_crl.o", "crypto/x509/libcrypto-lib-x_exten.o", + "crypto/x509/libcrypto-lib-x_ietfatt.o", "crypto/x509/libcrypto-lib-x_name.o", "crypto/x509/libcrypto-lib-x_pubkey.o", "crypto/x509/libcrypto-lib-x_req.o", @@ -9787,6 +11356,7 @@ our %unified_info = ( "fuzz" => { "products" => { "bin" => [ + "fuzz/acert-test", "fuzz/asn1-test", "fuzz/asn1parse-test", "fuzz/bignum-test", @@ -9797,13 +11367,31 @@ our %unified_info = ( "fuzz/conf-test", "fuzz/crl-test", "fuzz/ct-test", + "fuzz/decoder-test", + "fuzz/dtlsclient-test", + "fuzz/dtlsserver-test", + "fuzz/hashtable-test", + "fuzz/ml-dsa-test", + "fuzz/ml-kem-test", + "fuzz/pem-test", + "fuzz/provider-test", + "fuzz/punycode-test", + "fuzz/quic-client-test", + "fuzz/quic-lcidm-test", + "fuzz/quic-rcidm-test", + "fuzz/quic-server-test", + "fuzz/quic-srtm-test", "fuzz/server-test", + "fuzz/slh-dsa-test", + "fuzz/smime-test", + "fuzz/v3name-test", "fuzz/x509-test" ] } }, "providers" => { "deps" => [ + "providers/endecode_test-bin-legacyprov.o", "providers/evp_extra_test-bin-legacyprov.o", "providers/libcrypto-lib-baseprov.o", "providers/libcrypto-lib-defltprov.o", @@ -9813,6 +11401,7 @@ our %unified_info = ( ], "products" => { "bin" => [ + "test/endecode_test", "test/evp_extra_test" ], "dso" => [ @@ -9864,8 +11453,12 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ec_sig.o", "providers/common/der/libcommon-lib-der_ecx_gen.o", "providers/common/der/libcommon-lib-der_ecx_key.o", + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o", + "providers/common/der/libcommon-lib-der_ml_dsa_key.o", "providers/common/der/libcommon-lib-der_rsa_gen.o", "providers/common/der/libcommon-lib-der_rsa_key.o", + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o", + "providers/common/der/libcommon-lib-der_slh_dsa_key.o", "providers/common/der/libcommon-lib-der_wrap_gen.o", "providers/common/der/libdefault-lib-der_rsa_sig.o", "providers/common/der/libdefault-lib-der_sm2_gen.o", @@ -9884,6 +11477,7 @@ our %unified_info = ( "providers/fips" => { "deps" => [ "providers/fips/fips-dso-fips_entry.o", + "providers/fips/libfips-lib-fipsindicator.o", "providers/fips/libfips-lib-fipsprov.o", "providers/fips/libfips-lib-self_test.o", "providers/fips/libfips-lib-self_test_kats.o" @@ -9927,6 +11521,9 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_aes_ccm_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_polyval.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_ocb.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_ocb_hw.o", @@ -9951,7 +11548,13 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_cts.o", "providers/implementations/ciphers/libdefault-lib-cipher_null.o", "providers/implementations/ciphers/libdefault-lib-cipher_sm4.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_sm4_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes_common.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes_default.o", @@ -10048,7 +11651,10 @@ our %unified_info = ( "providers/implementations/encode_decode/libdefault-lib-encode_key2blob.o", "providers/implementations/encode_decode/libdefault-lib-encode_key2ms.o", "providers/implementations/encode_decode/libdefault-lib-encode_key2text.o", - "providers/implementations/encode_decode/libdefault-lib-endecoder_common.o" + "providers/implementations/encode_decode/libdefault-lib-endecoder_common.o", + "providers/implementations/encode_decode/libdefault-lib-ml_common_codecs.o", + "providers/implementations/encode_decode/libdefault-lib-ml_dsa_codecs.o", + "providers/implementations/encode_decode/libdefault-lib-ml_kem_codecs.o" ], "products" => { "lib" => [ @@ -10076,7 +11682,9 @@ our %unified_info = ( }, "providers/implementations/kdfs" => { "deps" => [ + "providers/implementations/kdfs/libdefault-lib-argon2.o", "providers/implementations/kdfs/libdefault-lib-hkdf.o", + "providers/implementations/kdfs/libdefault-lib-hmacdrbg_kdf.o", "providers/implementations/kdfs/libdefault-lib-kbkdf.o", "providers/implementations/kdfs/libdefault-lib-krb5kdf.o", "providers/implementations/kdfs/libdefault-lib-pbkdf2.o", @@ -10095,7 +11703,8 @@ our %unified_info = ( "providers/implementations/kdfs/libfips-lib-sskdf.o", "providers/implementations/kdfs/libfips-lib-tls1_prf.o", "providers/implementations/kdfs/libfips-lib-x942kdf.o", - "providers/implementations/kdfs/liblegacy-lib-pbkdf1.o" + "providers/implementations/kdfs/liblegacy-lib-pbkdf1.o", + "providers/implementations/kdfs/liblegacy-lib-pvkkdf.o" ], "products" => { "lib" => [ @@ -10107,13 +11716,22 @@ our %unified_info = ( }, "providers/implementations/kem" => { "deps" => [ + "providers/implementations/kem/libdefault-lib-ec_kem.o", + "providers/implementations/kem/libdefault-lib-ecx_kem.o", + "providers/implementations/kem/libdefault-lib-kem_util.o", + "providers/implementations/kem/libdefault-lib-ml_kem_kem.o", + "providers/implementations/kem/libdefault-lib-mlx_kem.o", "providers/implementations/kem/libdefault-lib-rsa_kem.o", - "providers/implementations/kem/libfips-lib-rsa_kem.o" + "providers/implementations/kem/libfips-lib-ml_kem_kem.o", + "providers/implementations/kem/libfips-lib-mlx_kem.o", + "providers/implementations/kem/libfips-lib-rsa_kem.o", + "providers/implementations/kem/libtemplate-lib-template_kem.o" ], "products" => { "lib" => [ "providers/libdefault.a", - "providers/libfips.a" + "providers/libfips.a", + "providers/libtemplate.a" ] } }, @@ -10125,19 +11743,29 @@ our %unified_info = ( "providers/implementations/keymgmt/libdefault-lib-ecx_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-kdf_legacy_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-mac_legacy_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-ml_dsa_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-ml_kem_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-mlx_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-rsa_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-slh_dsa_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-dh_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-dsa_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-ec_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-ecx_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-kdf_legacy_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-mac_legacy_kmgmt.o", - "providers/implementations/keymgmt/libfips-lib-rsa_kmgmt.o" + "providers/implementations/keymgmt/libfips-lib-ml_dsa_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-ml_kem_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-mlx_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-rsa_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-slh_dsa_kmgmt.o", + "providers/implementations/keymgmt/libtemplate-lib-template_kmgmt.o" ], "products" => { "lib" => [ "providers/libdefault.a", - "providers/libfips.a" + "providers/libfips.a", + "providers/libtemplate.a" ] } }, @@ -10165,18 +11793,18 @@ our %unified_info = ( }, "providers/implementations/rands" => { "deps" => [ - "providers/implementations/rands/libdefault-lib-crngt.o", "providers/implementations/rands/libdefault-lib-drbg.o", "providers/implementations/rands/libdefault-lib-drbg_ctr.o", "providers/implementations/rands/libdefault-lib-drbg_hash.o", "providers/implementations/rands/libdefault-lib-drbg_hmac.o", "providers/implementations/rands/libdefault-lib-seed_src.o", + "providers/implementations/rands/libdefault-lib-seed_src_jitter.o", "providers/implementations/rands/libdefault-lib-test_rng.o", - "providers/implementations/rands/libfips-lib-crngt.o", "providers/implementations/rands/libfips-lib-drbg.o", "providers/implementations/rands/libfips-lib-drbg_ctr.o", "providers/implementations/rands/libfips-lib-drbg_hash.o", "providers/implementations/rands/libfips-lib-drbg_hmac.o", + "providers/implementations/rands/libfips-lib-fips_crng_test.o", "providers/implementations/rands/libfips-lib-test_rng.o" ], "products" => { @@ -10205,13 +11833,31 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-ecdsa_sig.o", "providers/implementations/signature/libdefault-lib-eddsa_sig.o", "providers/implementations/signature/libdefault-lib-mac_legacy_sig.o", + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o", "providers/implementations/signature/libdefault-lib-rsa_sig.o", + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o", "providers/implementations/signature/libdefault-lib-sm2_sig.o", "providers/implementations/signature/libfips-lib-dsa_sig.o", "providers/implementations/signature/libfips-lib-ecdsa_sig.o", "providers/implementations/signature/libfips-lib-eddsa_sig.o", "providers/implementations/signature/libfips-lib-mac_legacy_sig.o", - "providers/implementations/signature/libfips-lib-rsa_sig.o" + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o", + "providers/implementations/signature/libfips-lib-rsa_sig.o", + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o" + ], + "products" => { + "lib" => [ + "providers/libdefault.a", + "providers/libfips.a" + ] + } + }, + "providers/implementations/skeymgmt" => { + "deps" => [ + "providers/implementations/skeymgmt/libdefault-lib-aes_skmgmt.o", + "providers/implementations/skeymgmt/libdefault-lib-generic.o", + "providers/implementations/skeymgmt/libfips-lib-aes_skmgmt.o", + "providers/implementations/skeymgmt/libfips-lib-generic.o" ], "products" => { "lib" => [ @@ -10223,7 +11869,8 @@ our %unified_info = ( "providers/implementations/storemgmt" => { "deps" => [ "providers/implementations/storemgmt/libdefault-lib-file_store.o", - "providers/implementations/storemgmt/libdefault-lib-file_store_any2obj.o" + "providers/implementations/storemgmt/libdefault-lib-file_store_any2obj.o", + "providers/implementations/storemgmt/libdefault-lib-winstore_store.o" ], "products" => { "lib" => [ @@ -10239,14 +11886,15 @@ our %unified_info = ( "ssl/libssl-lib-d1_srtp.o", "ssl/libssl-lib-methods.o", "ssl/libssl-lib-pqueue.o", + "ssl/libssl-lib-priority_queue.o", "ssl/libssl-lib-s3_enc.o", "ssl/libssl-lib-s3_lib.o", "ssl/libssl-lib-s3_msg.o", "ssl/libssl-lib-ssl_asn1.o", "ssl/libssl-lib-ssl_cert.o", + "ssl/libssl-lib-ssl_cert_comp.o", "ssl/libssl-lib-ssl_ciph.o", "ssl/libssl-lib-ssl_conf.o", - "ssl/libssl-lib-ssl_err.o", "ssl/libssl-lib-ssl_err_legacy.o", "ssl/libssl-lib-ssl_init.o", "ssl/libssl-lib-ssl_lib.o", @@ -10262,32 +11910,107 @@ our %unified_info = ( "ssl/libssl-lib-t1_trce.o", "ssl/libssl-lib-tls13_enc.o", "ssl/libssl-lib-tls_depr.o", - "ssl/libssl-lib-tls_srp.o", - "ssl/libdefault-lib-s3_cbc.o", - "ssl/libfips-lib-s3_cbc.o" + "ssl/libssl-lib-tls_srp.o" ], "products" => { "lib" => [ - "libssl", - "providers/libdefault.a", - "providers/libfips.a" + "libssl" + ] + } + }, + "ssl/quic" => { + "deps" => [ + "ssl/quic/libssl-lib-cc_newreno.o", + "ssl/quic/libssl-lib-json_enc.o", + "ssl/quic/libssl-lib-qlog.o", + "ssl/quic/libssl-lib-qlog_event_helpers.o", + "ssl/quic/libssl-lib-quic_ackm.o", + "ssl/quic/libssl-lib-quic_cfq.o", + "ssl/quic/libssl-lib-quic_channel.o", + "ssl/quic/libssl-lib-quic_demux.o", + "ssl/quic/libssl-lib-quic_engine.o", + "ssl/quic/libssl-lib-quic_fc.o", + "ssl/quic/libssl-lib-quic_fifd.o", + "ssl/quic/libssl-lib-quic_impl.o", + "ssl/quic/libssl-lib-quic_lcidm.o", + "ssl/quic/libssl-lib-quic_method.o", + "ssl/quic/libssl-lib-quic_obj.o", + "ssl/quic/libssl-lib-quic_port.o", + "ssl/quic/libssl-lib-quic_rcidm.o", + "ssl/quic/libssl-lib-quic_reactor.o", + "ssl/quic/libssl-lib-quic_reactor_wait_ctx.o", + "ssl/quic/libssl-lib-quic_record_rx.o", + "ssl/quic/libssl-lib-quic_record_shared.o", + "ssl/quic/libssl-lib-quic_record_tx.o", + "ssl/quic/libssl-lib-quic_record_util.o", + "ssl/quic/libssl-lib-quic_rstream.o", + "ssl/quic/libssl-lib-quic_rx_depack.o", + "ssl/quic/libssl-lib-quic_sf_list.o", + "ssl/quic/libssl-lib-quic_srt_gen.o", + "ssl/quic/libssl-lib-quic_srtm.o", + "ssl/quic/libssl-lib-quic_sstream.o", + "ssl/quic/libssl-lib-quic_statm.o", + "ssl/quic/libssl-lib-quic_stream_map.o", + "ssl/quic/libssl-lib-quic_thread_assist.o", + "ssl/quic/libssl-lib-quic_tls.o", + "ssl/quic/libssl-lib-quic_tls_api.o", + "ssl/quic/libssl-lib-quic_trace.o", + "ssl/quic/libssl-lib-quic_tserver.o", + "ssl/quic/libssl-lib-quic_txp.o", + "ssl/quic/libssl-lib-quic_txpim.o", + "ssl/quic/libssl-lib-quic_types.o", + "ssl/quic/libssl-lib-quic_wire.o", + "ssl/quic/libssl-lib-quic_wire_pkt.o", + "ssl/quic/libssl-lib-uint_set.o" + ], + "products" => { + "lib" => [ + "libssl" ] } }, "ssl/record" => { "deps" => [ - "ssl/record/libssl-lib-dtls1_bitmap.o", "ssl/record/libssl-lib-rec_layer_d1.o", - "ssl/record/libssl-lib-rec_layer_s3.o", - "ssl/record/libssl-lib-ssl3_buffer.o", - "ssl/record/libssl-lib-ssl3_record.o", - "ssl/record/libssl-lib-ssl3_record_tls13.o", - "ssl/record/libcommon-lib-tls_pad.o" + "ssl/record/libssl-lib-rec_layer_s3.o" + ], + "products" => { + "lib" => [ + "libssl" + ] + } + }, + "ssl/record/methods" => { + "deps" => [ + "ssl/record/methods/libssl-lib-dtls_meth.o", + "ssl/record/methods/libssl-lib-ssl3_meth.o", + "ssl/record/methods/libssl-lib-tls13_meth.o", + "ssl/record/methods/libssl-lib-tls1_meth.o", + "ssl/record/methods/libssl-lib-tls_common.o", + "ssl/record/methods/libssl-lib-tls_multib.o", + "ssl/record/methods/libssl-lib-tlsany_meth.o", + "ssl/record/methods/libcommon-lib-tls_pad.o", + "ssl/record/methods/libdefault-lib-ssl3_cbc.o", + "ssl/record/methods/libfips-lib-ssl3_cbc.o" ], "products" => { "lib" => [ "libssl", - "providers/libcommon.a" + "providers/libcommon.a", + "providers/libdefault.a", + "providers/libfips.a" + ] + } + }, + "ssl/rio" => { + "deps" => [ + "ssl/rio/libssl-lib-poll_builder.o", + "ssl/rio/libssl-lib-poll_immediate.o", + "ssl/rio/libssl-lib-rio_notifier.o" + ], + "products" => { + "lib" => [ + "libssl" ] } }, @@ -10325,9 +12048,40 @@ our %unified_info = ( "test/helpers/dtlstest-bin-ssltestlib.o", "test/helpers/endecode_test-bin-predefined_dhparams.o", "test/helpers/fatalerrtest-bin-ssltestlib.o", + "test/helpers/json_test-bin-noisydgrambio.o", + "test/helpers/json_test-bin-pktsplitbio.o", + "test/helpers/json_test-bin-quictestlib.o", + "test/helpers/json_test-bin-ssltestlib.o", + "test/helpers/pkcs12_api_test-bin-pkcs12.o", "test/helpers/pkcs12_format_test-bin-pkcs12.o", + "test/helpers/quic_multistream_test-bin-noisydgrambio.o", + "test/helpers/quic_multistream_test-bin-pktsplitbio.o", + "test/helpers/quic_multistream_test-bin-quictestlib.o", + "test/helpers/quic_multistream_test-bin-ssltestlib.o", + "test/helpers/quic_newcid_test-bin-noisydgrambio.o", + "test/helpers/quic_newcid_test-bin-pktsplitbio.o", + "test/helpers/quic_newcid_test-bin-quictestlib.o", + "test/helpers/quic_newcid_test-bin-ssltestlib.o", + "test/helpers/quic_radix_test-bin-noisydgrambio.o", + "test/helpers/quic_radix_test-bin-pktsplitbio.o", + "test/helpers/quic_radix_test-bin-quictestlib.o", + "test/helpers/quic_radix_test-bin-ssltestlib.o", + "test/helpers/quic_srt_gen_test-bin-noisydgrambio.o", + "test/helpers/quic_srt_gen_test-bin-pktsplitbio.o", + "test/helpers/quic_srt_gen_test-bin-quictestlib.o", + "test/helpers/quic_srt_gen_test-bin-ssltestlib.o", + "test/helpers/quicapitest-bin-noisydgrambio.o", + "test/helpers/quicapitest-bin-pktsplitbio.o", + "test/helpers/quicapitest-bin-quictestlib.o", + "test/helpers/quicapitest-bin-ssltestlib.o", + "test/helpers/quicfaultstest-bin-noisydgrambio.o", + "test/helpers/quicfaultstest-bin-pktsplitbio.o", + "test/helpers/quicfaultstest-bin-quictestlib.o", + "test/helpers/quicfaultstest-bin-ssltestlib.o", "test/helpers/recordlentest-bin-ssltestlib.o", + "test/helpers/rpktest-bin-ssltestlib.o", "test/helpers/servername_test-bin-ssltestlib.o", + "test/helpers/ssl_handshake_rtt_test-bin-ssltestlib.o", "test/helpers/ssl_old_test-bin-predefined_dhparams.o", "test/helpers/ssl_test-bin-handshake.o", "test/helpers/ssl_test-bin-handshake_srp.o", @@ -10336,7 +12090,8 @@ our %unified_info = ( "test/helpers/sslapitest-bin-ssltestlib.o", "test/helpers/sslbuffertest-bin-ssltestlib.o", "test/helpers/sslcorrupttest-bin-ssltestlib.o", - "test/helpers/tls13ccstest-bin-ssltestlib.o" + "test/helpers/tls13ccstest-bin-ssltestlib.o", + "test/helpers/tls13groupselection_test-bin-ssltestlib.o" ], "products" => { "bin" => [ @@ -10354,16 +12109,37 @@ our %unified_info = ( "test/dtlstest", "test/endecode_test", "test/fatalerrtest", + "test/json_test", + "test/pkcs12_api_test", "test/pkcs12_format_test", + "test/quic_multistream_test", + "test/quic_newcid_test", + "test/quic_radix_test", + "test/quic_srt_gen_test", + "test/quicapitest", + "test/quicfaultstest", "test/recordlentest", + "test/rpktest", "test/servername_test", + "test/ssl_handshake_rtt_test", "test/ssl_old_test", "test/ssl_test", "test/ssl_test_ctx_test", "test/sslapitest", "test/sslbuffertest", "test/sslcorrupttest", - "test/tls13ccstest" + "test/tls13ccstest", + "test/tls13groupselection_test" + ] + } + }, + "test/radix" => { + "deps" => [ + "test/radix/quic_radix_test-bin-quic_radix.o" + ], + "products" => { + "bin" => [ + "test/quic_radix_test" ] } }, @@ -10375,6 +12151,7 @@ our %unified_info = ( "test/testutil/libtestutil-lib-driver.o", "test/testutil/libtestutil-lib-fake_random.o", "test/testutil/libtestutil-lib-format_output.o", + "test/testutil/libtestutil-lib-helper.o", "test/testutil/libtestutil-lib-load.o", "test/testutil/libtestutil-lib-main.o", "test/testutil/libtestutil-lib-options.o", @@ -10409,6 +12186,12 @@ our %unified_info = ( } }, "generate" => { + "OpenSSLConfig.cmake" => [ + "exporters/cmake/OpenSSLConfig.cmake.in" + ], + "OpenSSLConfigVersion.cmake" => [ + "exporters/cmake/OpenSSLConfigVersion.cmake.in" + ], "apps/openssl.rc" => [ "util/mkrc.pl", "openssl" @@ -10423,6 +12206,19 @@ our %unified_info = ( "\"-H\"", "\$(APPS_OPENSSL)" ], + "builddata.pm" => [ + "util/mkinstallvars.pl", + "PREFIX=.", + "BINDIR=apps", + "APPLINKDIR=ms", + "LIBDIR=", + "INCLUDEDIR=include", + "\"INCLUDEDIR=\$(SRCDIR)/include\"", + "ENGINESDIR=engines", + "MODULESDIR=providers", + "\"VERSION=\$(VERSION)\"", + "\"LDLIBS=\$(LIB_EX_LIBS)\"" + ], "crypto/aes/aes-586.S" => [ "crypto/aes/asm/aes-586.pl" ], @@ -10444,6 +12240,24 @@ our %unified_info = ( "crypto/aes/aes-ppc.s" => [ "crypto/aes/asm/aes-ppc.pl" ], + "crypto/aes/aes-riscv32-zkn.s" => [ + "crypto/aes/asm/aes-riscv32-zkn.pl" + ], + "crypto/aes/aes-riscv64-zkn.s" => [ + "crypto/aes/asm/aes-riscv64-zkn.pl" + ], + "crypto/aes/aes-riscv64-zvbb-zvkg-zvkned.s" => [ + "crypto/aes/asm/aes-riscv64-zvbb-zvkg-zvkned.pl" + ], + "crypto/aes/aes-riscv64-zvkb-zvkned.s" => [ + "crypto/aes/asm/aes-riscv64-zvkb-zvkned.pl" + ], + "crypto/aes/aes-riscv64-zvkned.s" => [ + "crypto/aes/asm/aes-riscv64-zvkned.pl" + ], + "crypto/aes/aes-riscv64.s" => [ + "crypto/aes/asm/aes-riscv64.pl" + ], "crypto/aes/aes-s390x.S" => [ "crypto/aes/asm/aes-s390x.pl" ], @@ -10471,6 +12285,9 @@ our %unified_info = ( "crypto/aes/aesni-x86_64.s" => [ "crypto/aes/asm/aesni-x86_64.pl" ], + "crypto/aes/aesni-xts-avx512.s" => [ + "crypto/aes/asm/aesni-xts-avx512.pl" + ], "crypto/aes/aesp8-ppc.s" => [ "crypto/aes/asm/aesp8-ppc.pl" ], @@ -10483,12 +12300,18 @@ our %unified_info = ( "crypto/aes/bsaes-armv7.S" => [ "crypto/aes/asm/bsaes-armv7.pl" ], + "crypto/aes/bsaes-armv8.S" => [ + "crypto/aes/asm/bsaes-armv8.pl" + ], "crypto/aes/bsaes-x86_64.s" => [ "crypto/aes/asm/bsaes-x86_64.pl" ], "crypto/aes/vpaes-armv8.S" => [ "crypto/aes/asm/vpaes-armv8.pl" ], + "crypto/aes/vpaes-loongarch64.S" => [ + "crypto/aes/asm/vpaes-loongarch64.pl" + ], "crypto/aes/vpaes-ppc.s" => [ "crypto/aes/asm/vpaes-ppc.pl" ], @@ -10549,15 +12372,33 @@ our %unified_info = ( "crypto/bn/ppc-mont.s" => [ "crypto/bn/asm/ppc-mont.pl" ], + "crypto/bn/ppc64-mont-fixed.s" => [ + "crypto/bn/asm/ppc64-mont-fixed.pl" + ], "crypto/bn/ppc64-mont.s" => [ "crypto/bn/asm/ppc64-mont.pl" ], + "crypto/bn/rsaz-2k-avx512.s" => [ + "crypto/bn/asm/rsaz-2k-avx512.pl" + ], + "crypto/bn/rsaz-2k-avxifma.s" => [ + "crypto/bn/asm/rsaz-2k-avxifma.pl" + ], + "crypto/bn/rsaz-3k-avx512.s" => [ + "crypto/bn/asm/rsaz-3k-avx512.pl" + ], + "crypto/bn/rsaz-3k-avxifma.s" => [ + "crypto/bn/asm/rsaz-3k-avxifma.pl" + ], + "crypto/bn/rsaz-4k-avx512.s" => [ + "crypto/bn/asm/rsaz-4k-avx512.pl" + ], + "crypto/bn/rsaz-4k-avxifma.s" => [ + "crypto/bn/asm/rsaz-4k-avxifma.pl" + ], "crypto/bn/rsaz-avx2.s" => [ "crypto/bn/asm/rsaz-avx2.pl" ], - "crypto/bn/rsaz-avx512.s" => [ - "crypto/bn/asm/rsaz-avx512.pl" - ], "crypto/bn/rsaz-x86_64.s" => [ "crypto/bn/asm/rsaz-x86_64.pl" ], @@ -10619,6 +12460,9 @@ our %unified_info = ( "crypto/chacha/chacha-armv4.S" => [ "crypto/chacha/asm/chacha-armv4.pl" ], + "crypto/chacha/chacha-armv8-sve.S" => [ + "crypto/chacha/asm/chacha-armv8-sve.pl" + ], "crypto/chacha/chacha-armv8.S" => [ "crypto/chacha/asm/chacha-armv8.pl" ], @@ -10631,9 +12475,19 @@ our %unified_info = ( "crypto/chacha/chacha-ia64.s" => [ "crypto/chacha/chacha-ia64.S" ], + "crypto/chacha/chacha-loongarch64.S" => [ + "crypto/chacha/asm/chacha-loongarch64.pl" + ], "crypto/chacha/chacha-ppc.s" => [ "crypto/chacha/asm/chacha-ppc.pl" ], + "crypto/chacha/chacha-riscv64-v-zbb-zvkb.s" => [ + "crypto/chacha/asm/chacha-riscv64-v-zbb.pl", + "zvkb" + ], + "crypto/chacha/chacha-riscv64-v-zbb.s" => [ + "crypto/chacha/asm/chacha-riscv64-v-zbb.pl" + ], "crypto/chacha/chacha-s390x.S" => [ "crypto/chacha/asm/chacha-s390x.pl" ], @@ -10643,6 +12497,9 @@ our %unified_info = ( "crypto/chacha/chacha-x86_64.s" => [ "crypto/chacha/asm/chacha-x86_64.pl" ], + "crypto/chacha/chachap10-ppc.s" => [ + "crypto/chacha/asm/chachap10-ppc.pl" + ], "crypto/des/crypt586.S" => [ "crypto/des/asm/crypt586.pl" ], @@ -10655,6 +12512,9 @@ our %unified_info = ( "crypto/des/dest4-sparcv9.S" => [ "crypto/des/asm/dest4-sparcv9.pl" ], + "crypto/ec/ecp_nistp384-ppc64.s" => [ + "crypto/ec/asm/ecp_nistp384-ppc64.pl" + ], "crypto/ec/ecp_nistp521-ppc64.s" => [ "crypto/ec/asm/ecp_nistp521-ppc64.pl" ], @@ -10679,6 +12539,9 @@ our %unified_info = ( "crypto/ec/ecp_nistz256-x86_64.s" => [ "crypto/ec/asm/ecp_nistz256-x86_64.pl" ], + "crypto/ec/ecp_sm2p256-armv8.S" => [ + "crypto/ec/asm/ecp_sm2p256-armv8.pl" + ], "crypto/ec/x25519-ppc64.s" => [ "crypto/ec/asm/x25519-ppc64.pl" ], @@ -10688,18 +12551,39 @@ our %unified_info = ( "crypto/ia64cpuid.s" => [ "crypto/ia64cpuid.S" ], + "crypto/loongarch64cpuid.s" => [ + "crypto/loongarch64cpuid.pl" + ], "crypto/md5/md5-586.S" => [ "crypto/md5/asm/md5-586.pl" ], + "crypto/md5/md5-aarch64.S" => [ + "crypto/md5/asm/md5-aarch64.pl" + ], + "crypto/md5/md5-loongarch64.S" => [ + "crypto/md5/asm/md5-loongarch64.pl" + ], "crypto/md5/md5-sparcv9.S" => [ "crypto/md5/asm/md5-sparcv9.pl" ], "crypto/md5/md5-x86_64.s" => [ "crypto/md5/asm/md5-x86_64.pl" ], + "crypto/modes/aes-gcm-armv8-unroll8_64.S" => [ + "crypto/modes/asm/aes-gcm-armv8-unroll8_64.pl" + ], "crypto/modes/aes-gcm-armv8_64.S" => [ "crypto/modes/asm/aes-gcm-armv8_64.pl" ], + "crypto/modes/aes-gcm-avx512.s" => [ + "crypto/modes/asm/aes-gcm-avx512.pl" + ], + "crypto/modes/aes-gcm-ppc.s" => [ + "crypto/modes/asm/aes-gcm-ppc.pl" + ], + "crypto/modes/aes-gcm-riscv64-zvkb-zvkg-zvkned.s" => [ + "crypto/modes/asm/aes-gcm-riscv64-zvkb-zvkg-zvkned.pl" + ], "crypto/modes/aesni-gcm-x86_64.s" => [ "crypto/modes/asm/aesni-gcm-x86_64.pl" ], @@ -10718,6 +12602,15 @@ our %unified_info = ( "crypto/modes/ghash-parisc.s" => [ "crypto/modes/asm/ghash-parisc.pl" ], + "crypto/modes/ghash-riscv64-zvkb-zvbc.s" => [ + "crypto/modes/asm/ghash-riscv64-zvkb-zvbc.pl" + ], + "crypto/modes/ghash-riscv64-zvkg.s" => [ + "crypto/modes/asm/ghash-riscv64-zvkg.pl" + ], + "crypto/modes/ghash-riscv64.s" => [ + "crypto/modes/asm/ghash-riscv64.pl" + ], "crypto/modes/ghash-s390x.S" => [ "crypto/modes/asm/ghash-s390x.pl" ], @@ -10736,6 +12629,9 @@ our %unified_info = ( "crypto/modes/ghashv8-armx.S" => [ "crypto/modes/asm/ghashv8-armx.pl" ], + "crypto/params_idx.c" => [ + "crypto/params_idx.c.in" + ], "crypto/pariscid.s" => [ "crypto/pariscid.pl" ], @@ -10796,6 +12692,12 @@ our %unified_info = ( "crypto/ripemd/rmd-586.S" => [ "crypto/ripemd/asm/rmd-586.pl" ], + "crypto/riscv32cpuid.s" => [ + "crypto/riscv32cpuid.pl" + ], + "crypto/riscv64cpuid.s" => [ + "crypto/riscv64cpuid.pl" + ], "crypto/s390xcpuid.S" => [ "crypto/s390xcpuid.pl" ], @@ -10904,6 +12806,9 @@ our %unified_info = ( "crypto/sha/sha256-ppc.s" => [ "crypto/sha/asm/sha512-ppc.pl" ], + "crypto/sha/sha256-riscv64-zvkb-zvknha_or_zvknhb.S" => [ + "crypto/sha/asm/sha256-riscv64-zvkb-zvknha_or_zvknhb.pl" + ], "crypto/sha/sha256-s390x.S" => [ "crypto/sha/asm/sha512-s390x.pl" ], @@ -10940,6 +12845,9 @@ our %unified_info = ( "crypto/sha/sha512-ppc.s" => [ "crypto/sha/asm/sha512-ppc.pl" ], + "crypto/sha/sha512-riscv64-zvkb-zvknhb.S" => [ + "crypto/sha/asm/sha512-riscv64-zvkb-zvknhb.pl" + ], "crypto/sha/sha512-s390x.S" => [ "crypto/sha/asm/sha512-s390x.pl" ], @@ -10952,6 +12860,24 @@ our %unified_info = ( "crypto/sha/sha512p8-ppc.s" => [ "crypto/sha/asm/sha512p8-ppc.pl" ], + "crypto/sm3/sm3-armv8.S" => [ + "crypto/sm3/asm/sm3-armv8.pl" + ], + "crypto/sm3/sm3-riscv64-zvksh.S" => [ + "crypto/sm3/asm/sm3-riscv64-zvksh.pl" + ], + "crypto/sm4/sm4-armv8.S" => [ + "crypto/sm4/asm/sm4-armv8.pl" + ], + "crypto/sm4/sm4-riscv64-zvksed.s" => [ + "crypto/sm4/asm/sm4-riscv64-zvksed.pl" + ], + "crypto/sm4/vpsm4-armv8.S" => [ + "crypto/sm4/asm/vpsm4-armv8.pl" + ], + "crypto/sm4/vpsm4_ex-armv8.S" => [ + "crypto/sm4/asm/vpsm4_ex-armv8.pl" + ], "crypto/uplink-ia64.s" => [ "ms/uplink-ia64.pl" ], @@ -11117,6 +13043,9 @@ our %unified_info = ( "doc/html/man1/openssl-sess_id.html" => [ "doc/man1/openssl-sess_id.pod" ], + "doc/html/man1/openssl-skeyutl.html" => [ + "doc/man1/openssl-skeyutl.pod" + ], "doc/html/man1/openssl-smime.html" => [ "doc/man1/openssl-smime.pod" ], @@ -11258,6 +13187,9 @@ our %unified_info = ( "doc/html/man3/BIO_get_ex_new_index.html" => [ "doc/man3/BIO_get_ex_new_index.pod" ], + "doc/html/man3/BIO_get_rpoll_descriptor.html" => [ + "doc/man3/BIO_get_rpoll_descriptor.pod" + ], "doc/html/man3/BIO_meth_new.html" => [ "doc/man3/BIO_meth_new.pod" ], @@ -11294,6 +13226,9 @@ our %unified_info = ( "doc/html/man3/BIO_s_datagram.html" => [ "doc/man3/BIO_s_datagram.pod" ], + "doc/html/man3/BIO_s_dgram_pair.html" => [ + "doc/man3/BIO_s_dgram_pair.pod" + ], "doc/html/man3/BIO_s_fd.html" => [ "doc/man3/BIO_s_fd.pod" ], @@ -11309,6 +13244,9 @@ our %unified_info = ( "doc/html/man3/BIO_s_socket.html" => [ "doc/man3/BIO_s_socket.pod" ], + "doc/html/man3/BIO_sendmmsg.html" => [ + "doc/man3/BIO_sendmmsg.pod" + ], "doc/html/man3/BIO_set_callback.html" => [ "doc/man3/BIO_set_callback.pod" ], @@ -11381,6 +13319,9 @@ our %unified_info = ( "doc/html/man3/BUF_MEM_new.html" => [ "doc/man3/BUF_MEM_new.pod" ], + "doc/html/man3/CMAC_CTX.html" => [ + "doc/man3/CMAC_CTX.pod" + ], "doc/html/man3/CMS_EncryptedData_decrypt.html" => [ "doc/man3/CMS_EncryptedData_decrypt.pod" ], @@ -11447,6 +13388,9 @@ our %unified_info = ( "doc/html/man3/CMS_verify_receipt.html" => [ "doc/man3/CMS_verify_receipt.pod" ], + "doc/html/man3/COMP_CTX_new.html" => [ + "doc/man3/COMP_CTX_new.pod" + ], "doc/html/man3/CONF_modules_free.html" => [ "doc/man3/CONF_modules_free.pod" ], @@ -11546,6 +13490,12 @@ our %unified_info = ( "doc/html/man3/DTLS_set_timer_cb.html" => [ "doc/man3/DTLS_set_timer_cb.pod" ], + "doc/html/man3/DTLSv1_get_timeout.html" => [ + "doc/man3/DTLSv1_get_timeout.pod" + ], + "doc/html/man3/DTLSv1_handle_timeout.html" => [ + "doc/man3/DTLSv1_handle_timeout.pod" + ], "doc/html/man3/DTLSv1_listen.html" => [ "doc/man3/DTLSv1_listen.pod" ], @@ -11684,6 +13634,9 @@ our %unified_info = ( "doc/html/man3/EVP_PKEY_CTX_get0_pkey.html" => [ "doc/man3/EVP_PKEY_CTX_get0_pkey.pod" ], + "doc/html/man3/EVP_PKEY_CTX_get_algor.html" => [ + "doc/man3/EVP_PKEY_CTX_get_algor.pod" + ], "doc/html/man3/EVP_PKEY_CTX_new.html" => [ "doc/man3/EVP_PKEY_CTX_new.pod" ], @@ -11801,6 +13754,12 @@ our %unified_info = ( "doc/html/man3/EVP_SIGNATURE.html" => [ "doc/man3/EVP_SIGNATURE.pod" ], + "doc/html/man3/EVP_SKEY.html" => [ + "doc/man3/EVP_SKEY.pod" + ], + "doc/html/man3/EVP_SKEYMGMT.html" => [ + "doc/man3/EVP_SKEYMGMT.pod" + ], "doc/html/man3/EVP_SealInit.html" => [ "doc/man3/EVP_SealInit.pod" ], @@ -11888,6 +13847,9 @@ our %unified_info = ( "doc/html/man3/EVP_whirlpool.html" => [ "doc/man3/EVP_whirlpool.pod" ], + "doc/html/man3/GENERAL_NAME.html" => [ + "doc/man3/GENERAL_NAME.pod" + ], "doc/html/man3/HMAC.html" => [ "doc/man3/HMAC.pod" ], @@ -11960,9 +13922,15 @@ our %unified_info = ( "doc/html/man3/OPENSSL_load_builtin_modules.html" => [ "doc/man3/OPENSSL_load_builtin_modules.pod" ], + "doc/html/man3/OPENSSL_load_u16_le.html" => [ + "doc/man3/OPENSSL_load_u16_le.pod" + ], "doc/html/man3/OPENSSL_malloc.html" => [ "doc/man3/OPENSSL_malloc.pod" ], + "doc/html/man3/OPENSSL_riscvcap.html" => [ + "doc/man3/OPENSSL_riscvcap.pod" + ], "doc/html/man3/OPENSSL_s390xcap.html" => [ "doc/man3/OPENSSL_s390xcap.pod" ], @@ -11978,12 +13946,18 @@ our %unified_info = ( "doc/html/man3/OSSL_CALLBACK.html" => [ "doc/man3/OSSL_CALLBACK.pod" ], + "doc/html/man3/OSSL_CMP_ATAV_set0.html" => [ + "doc/man3/OSSL_CMP_ATAV_set0.pod" + ], "doc/html/man3/OSSL_CMP_CTX_new.html" => [ "doc/man3/OSSL_CMP_CTX_new.pod" ], "doc/html/man3/OSSL_CMP_HDR_get0_transactionID.html" => [ "doc/man3/OSSL_CMP_HDR_get0_transactionID.pod" ], + "doc/html/man3/OSSL_CMP_ITAV_new_caCerts.html" => [ + "doc/man3/OSSL_CMP_ITAV_new_caCerts.pod" + ], "doc/html/man3/OSSL_CMP_ITAV_set0.html" => [ "doc/man3/OSSL_CMP_ITAV_set0.pod" ], @@ -12053,9 +14027,18 @@ our %unified_info = ( "doc/html/man3/OSSL_ENCODER_to_bio.html" => [ "doc/man3/OSSL_ENCODER_to_bio.pod" ], + "doc/html/man3/OSSL_ERR_STATE_save.html" => [ + "doc/man3/OSSL_ERR_STATE_save.pod" + ], "doc/html/man3/OSSL_ESS_check_signing_certs.html" => [ "doc/man3/OSSL_ESS_check_signing_certs.pod" ], + "doc/html/man3/OSSL_GENERAL_NAMES_print.html" => [ + "doc/man3/OSSL_GENERAL_NAMES_print.pod" + ], + "doc/html/man3/OSSL_HPKE_CTX_new.html" => [ + "doc/man3/OSSL_HPKE_CTX_new.pod" + ], "doc/html/man3/OSSL_HTTP_REQ_CTX.html" => [ "doc/man3/OSSL_HTTP_REQ_CTX.pod" ], @@ -12065,12 +14048,24 @@ our %unified_info = ( "doc/html/man3/OSSL_HTTP_transfer.html" => [ "doc/man3/OSSL_HTTP_transfer.pod" ], + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX.html" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX.pod" + ], + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX_print.html" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX_print.pod" + ], + "doc/html/man3/OSSL_INDICATOR_set_callback.html" => [ + "doc/man3/OSSL_INDICATOR_set_callback.pod" + ], "doc/html/man3/OSSL_ITEM.html" => [ "doc/man3/OSSL_ITEM.pod" ], "doc/html/man3/OSSL_LIB_CTX.html" => [ "doc/man3/OSSL_LIB_CTX.pod" ], + "doc/html/man3/OSSL_LIB_CTX_set_conf_diagnostics.html" => [ + "doc/man3/OSSL_LIB_CTX_set_conf_diagnostics.pod" + ], "doc/html/man3/OSSL_PARAM.html" => [ "doc/man3/OSSL_PARAM.pod" ], @@ -12086,9 +14081,15 @@ our %unified_info = ( "doc/html/man3/OSSL_PARAM_int.html" => [ "doc/man3/OSSL_PARAM_int.pod" ], + "doc/html/man3/OSSL_PARAM_print_to_bio.html" => [ + "doc/man3/OSSL_PARAM_print_to_bio.pod" + ], "doc/html/man3/OSSL_PROVIDER.html" => [ "doc/man3/OSSL_PROVIDER.pod" ], + "doc/html/man3/OSSL_QUIC_client_method.html" => [ + "doc/man3/OSSL_QUIC_client_method.pod" + ], "doc/html/man3/OSSL_SELF_TEST_new.html" => [ "doc/man3/OSSL_SELF_TEST_new.pod" ], @@ -12113,6 +14114,9 @@ our %unified_info = ( "doc/html/man3/OSSL_STORE_open.html" => [ "doc/man3/OSSL_STORE_open.pod" ], + "doc/html/man3/OSSL_sleep.html" => [ + "doc/man3/OSSL_sleep.pod" + ], "doc/html/man3/OSSL_trace_enabled.html" => [ "doc/man3/OSSL_trace_enabled.pod" ], @@ -12128,6 +14132,9 @@ our %unified_info = ( "doc/html/man3/OpenSSL_version.html" => [ "doc/man3/OpenSSL_version.pod" ], + "doc/html/man3/PBMAC1_get1_pbkdf2_param.html" => [ + "doc/man3/PBMAC1_get1_pbkdf2_param.pod" + ], "doc/html/man3/PEM_X509_INFO_read_bio_ex.html" => [ "doc/man3/PEM_X509_INFO_read_bio_ex.pod" ], @@ -12164,6 +14171,9 @@ our %unified_info = ( "doc/html/man3/PKCS12_SAFEBAG_get1_cert.html" => [ "doc/man3/PKCS12_SAFEBAG_get1_cert.pod" ], + "doc/html/man3/PKCS12_SAFEBAG_set0_attrs.html" => [ + "doc/man3/PKCS12_SAFEBAG_set0_attrs.pod" + ], "doc/html/man3/PKCS12_add1_attr_by_NID.html" => [ "doc/man3/PKCS12_add1_attr_by_NID.pod" ], @@ -12437,6 +14447,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set0_CA_list.html" => [ "doc/man3/SSL_CTX_set0_CA_list.pod" ], + "doc/html/man3/SSL_CTX_set1_cert_comp_preference.html" => [ + "doc/man3/SSL_CTX_set1_cert_comp_preference.pod" + ], "doc/html/man3/SSL_CTX_set1_curves.html" => [ "doc/man3/SSL_CTX_set1_curves.pod" ], @@ -12476,6 +14489,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_default_passwd_cb.html" => [ "doc/man3/SSL_CTX_set_default_passwd_cb.pod" ], + "doc/html/man3/SSL_CTX_set_domain_flags.html" => [ + "doc/man3/SSL_CTX_set_domain_flags.pod" + ], "doc/html/man3/SSL_CTX_set_generate_session_id.html" => [ "doc/man3/SSL_CTX_set_generate_session_id.pod" ], @@ -12497,6 +14513,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_msg_callback.html" => [ "doc/man3/SSL_CTX_set_msg_callback.pod" ], + "doc/html/man3/SSL_CTX_set_new_pending_conn_cb.html" => [ + "doc/man3/SSL_CTX_set_new_pending_conn_cb.pod" + ], "doc/html/man3/SSL_CTX_set_num_tickets.html" => [ "doc/man3/SSL_CTX_set_num_tickets.pod" ], @@ -12611,6 +14630,9 @@ our %unified_info = ( "doc/html/man3/SSL_accept.html" => [ "doc/man3/SSL_accept.pod" ], + "doc/html/man3/SSL_accept_stream.html" => [ + "doc/man3/SSL_accept_stream.pod" + ], "doc/html/man3/SSL_alert_type_string.html" => [ "doc/man3/SSL_alert_type_string.pod" ], @@ -12638,9 +14660,21 @@ our %unified_info = ( "doc/html/man3/SSL_free.html" => [ "doc/man3/SSL_free.pod" ], + "doc/html/man3/SSL_get0_connection.html" => [ + "doc/man3/SSL_get0_connection.pod" + ], + "doc/html/man3/SSL_get0_group_name.html" => [ + "doc/man3/SSL_get0_group_name.pod" + ], + "doc/html/man3/SSL_get0_peer_rpk.html" => [ + "doc/man3/SSL_get0_peer_rpk.pod" + ], "doc/html/man3/SSL_get0_peer_scts.html" => [ "doc/man3/SSL_get0_peer_scts.pod" ], + "doc/html/man3/SSL_get1_builtin_sigalgs.html" => [ + "doc/man3/SSL_get1_builtin_sigalgs.pod" + ], "doc/html/man3/SSL_get_SSL_CTX.html" => [ "doc/man3/SSL_get_SSL_CTX.pod" ], @@ -12656,6 +14690,9 @@ our %unified_info = ( "doc/html/man3/SSL_get_client_random.html" => [ "doc/man3/SSL_get_client_random.pod" ], + "doc/html/man3/SSL_get_conn_close_info.html" => [ + "doc/man3/SSL_get_conn_close_info.pod" + ], "doc/html/man3/SSL_get_current_cipher.html" => [ "doc/man3/SSL_get_current_cipher.pod" ], @@ -12665,12 +14702,18 @@ our %unified_info = ( "doc/html/man3/SSL_get_error.html" => [ "doc/man3/SSL_get_error.pod" ], + "doc/html/man3/SSL_get_event_timeout.html" => [ + "doc/man3/SSL_get_event_timeout.pod" + ], "doc/html/man3/SSL_get_extms_support.html" => [ "doc/man3/SSL_get_extms_support.pod" ], "doc/html/man3/SSL_get_fd.html" => [ "doc/man3/SSL_get_fd.pod" ], + "doc/html/man3/SSL_get_handshake_rtt.html" => [ + "doc/man3/SSL_get_handshake_rtt.pod" + ], "doc/html/man3/SSL_get_peer_cert_chain.html" => [ "doc/man3/SSL_get_peer_cert_chain.pod" ], @@ -12689,12 +14732,24 @@ our %unified_info = ( "doc/html/man3/SSL_get_rbio.html" => [ "doc/man3/SSL_get_rbio.pod" ], + "doc/html/man3/SSL_get_rpoll_descriptor.html" => [ + "doc/man3/SSL_get_rpoll_descriptor.pod" + ], "doc/html/man3/SSL_get_session.html" => [ "doc/man3/SSL_get_session.pod" ], "doc/html/man3/SSL_get_shared_sigalgs.html" => [ "doc/man3/SSL_get_shared_sigalgs.pod" ], + "doc/html/man3/SSL_get_stream_id.html" => [ + "doc/man3/SSL_get_stream_id.pod" + ], + "doc/html/man3/SSL_get_stream_read_state.html" => [ + "doc/man3/SSL_get_stream_read_state.pod" + ], + "doc/html/man3/SSL_get_value_uint.html" => [ + "doc/man3/SSL_get_value_uint.pod" + ], "doc/html/man3/SSL_get_verify_result.html" => [ "doc/man3/SSL_get_verify_result.pod" ], @@ -12704,9 +14759,15 @@ our %unified_info = ( "doc/html/man3/SSL_group_to_name.html" => [ "doc/man3/SSL_group_to_name.pod" ], + "doc/html/man3/SSL_handle_events.html" => [ + "doc/man3/SSL_handle_events.pod" + ], "doc/html/man3/SSL_in_init.html" => [ "doc/man3/SSL_in_init.pod" ], + "doc/html/man3/SSL_inject_net_dgram.html" => [ + "doc/man3/SSL_inject_net_dgram.pod" + ], "doc/html/man3/SSL_key_update.html" => [ "doc/man3/SSL_key_update.pod" ], @@ -12719,9 +14780,21 @@ our %unified_info = ( "doc/html/man3/SSL_new.html" => [ "doc/man3/SSL_new.pod" ], + "doc/html/man3/SSL_new_domain.html" => [ + "doc/man3/SSL_new_domain.pod" + ], + "doc/html/man3/SSL_new_listener.html" => [ + "doc/man3/SSL_new_listener.pod" + ], + "doc/html/man3/SSL_new_stream.html" => [ + "doc/man3/SSL_new_stream.pod" + ], "doc/html/man3/SSL_pending.html" => [ "doc/man3/SSL_pending.pod" ], + "doc/html/man3/SSL_poll.html" => [ + "doc/man3/SSL_poll.pod" + ], "doc/html/man3/SSL_read.html" => [ "doc/man3/SSL_read.pod" ], @@ -12737,24 +14810,45 @@ our %unified_info = ( "doc/html/man3/SSL_set1_host.html" => [ "doc/man3/SSL_set1_host.pod" ], + "doc/html/man3/SSL_set1_initial_peer_addr.html" => [ + "doc/man3/SSL_set1_initial_peer_addr.pod" + ], + "doc/html/man3/SSL_set1_server_cert_type.html" => [ + "doc/man3/SSL_set1_server_cert_type.pod" + ], "doc/html/man3/SSL_set_async_callback.html" => [ "doc/man3/SSL_set_async_callback.pod" ], "doc/html/man3/SSL_set_bio.html" => [ "doc/man3/SSL_set_bio.pod" ], + "doc/html/man3/SSL_set_blocking_mode.html" => [ + "doc/man3/SSL_set_blocking_mode.pod" + ], "doc/html/man3/SSL_set_connect_state.html" => [ "doc/man3/SSL_set_connect_state.pod" ], + "doc/html/man3/SSL_set_default_stream_mode.html" => [ + "doc/man3/SSL_set_default_stream_mode.pod" + ], "doc/html/man3/SSL_set_fd.html" => [ "doc/man3/SSL_set_fd.pod" ], + "doc/html/man3/SSL_set_incoming_stream_policy.html" => [ + "doc/man3/SSL_set_incoming_stream_policy.pod" + ], + "doc/html/man3/SSL_set_quic_tls_cbs.html" => [ + "doc/man3/SSL_set_quic_tls_cbs.pod" + ], "doc/html/man3/SSL_set_retry_verify.html" => [ "doc/man3/SSL_set_retry_verify.pod" ], "doc/html/man3/SSL_set_session.html" => [ "doc/man3/SSL_set_session.pod" ], + "doc/html/man3/SSL_set_session_secret_cb.html" => [ + "doc/man3/SSL_set_session_secret_cb.pod" + ], "doc/html/man3/SSL_set_shutdown.html" => [ "doc/man3/SSL_set_shutdown.pod" ], @@ -12767,6 +14861,12 @@ our %unified_info = ( "doc/html/man3/SSL_state_string.html" => [ "doc/man3/SSL_state_string.pod" ], + "doc/html/man3/SSL_stream_conclude.html" => [ + "doc/man3/SSL_stream_conclude.pod" + ], + "doc/html/man3/SSL_stream_reset.html" => [ + "doc/man3/SSL_stream_reset.pod" + ], "doc/html/man3/SSL_want.html" => [ "doc/man3/SSL_want.pod" ], @@ -12776,8 +14876,8 @@ our %unified_info = ( "doc/html/man3/TS_RESP_CTX_new.html" => [ "doc/man3/TS_RESP_CTX_new.pod" ], - "doc/html/man3/TS_VERIFY_CTX_set_certs.html" => [ - "doc/man3/TS_VERIFY_CTX_set_certs.pod" + "doc/html/man3/TS_VERIFY_CTX.html" => [ + "doc/man3/TS_VERIFY_CTX.pod" ], "doc/html/man3/UI_STRING.html" => [ "doc/man3/UI_STRING.pod" @@ -12797,6 +14897,21 @@ our %unified_info = ( "doc/html/man3/X509V3_set_ctx.html" => [ "doc/man3/X509V3_set_ctx.pod" ], + "doc/html/man3/X509_ACERT_add1_attr.html" => [ + "doc/man3/X509_ACERT_add1_attr.pod" + ], + "doc/html/man3/X509_ACERT_add_attr_nconf.html" => [ + "doc/man3/X509_ACERT_add_attr_nconf.pod" + ], + "doc/html/man3/X509_ACERT_get0_holder_baseCertId.html" => [ + "doc/man3/X509_ACERT_get0_holder_baseCertId.pod" + ], + "doc/html/man3/X509_ACERT_get_attr.html" => [ + "doc/man3/X509_ACERT_get_attr.pod" + ], + "doc/html/man3/X509_ACERT_print_ex.html" => [ + "doc/man3/X509_ACERT_print_ex.pod" + ], "doc/html/man3/X509_ALGOR_dup.html" => [ "doc/man3/X509_ALGOR_dup.pod" ], @@ -12845,6 +14960,9 @@ our %unified_info = ( "doc/html/man3/X509_SIG_get0.html" => [ "doc/man3/X509_SIG_get0.pod" ], + "doc/html/man3/X509_STORE_CTX_get_by_subject.html" => [ + "doc/man3/X509_STORE_CTX_get_by_subject.pod" + ], "doc/html/man3/X509_STORE_CTX_get_error.html" => [ "doc/man3/X509_STORE_CTX_get_error.pod" ], @@ -12911,6 +15029,9 @@ our %unified_info = ( "doc/html/man3/X509_get0_uids.html" => [ "doc/man3/X509_get0_uids.pod" ], + "doc/html/man3/X509_get_default_cert_file.html" => [ + "doc/man3/X509_get_default_cert_file.pod" + ], "doc/html/man3/X509_get_extension_flags.html" => [ "doc/man3/X509_get_extension_flags.pod" ], @@ -13034,9 +15155,15 @@ our %unified_info = ( "doc/html/man7/EVP_CIPHER-SM4.html" => [ "doc/man7/EVP_CIPHER-SM4.pod" ], + "doc/html/man7/EVP_KDF-ARGON2.html" => [ + "doc/man7/EVP_KDF-ARGON2.pod" + ], "doc/html/man7/EVP_KDF-HKDF.html" => [ "doc/man7/EVP_KDF-HKDF.pod" ], + "doc/html/man7/EVP_KDF-HMAC-DRBG.html" => [ + "doc/man7/EVP_KDF-HMAC-DRBG.pod" + ], "doc/html/man7/EVP_KDF-KB.html" => [ "doc/man7/EVP_KDF-KB.pod" ], @@ -13052,6 +15179,9 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-PKCS12KDF.html" => [ "doc/man7/EVP_KDF-PKCS12KDF.pod" ], + "doc/html/man7/EVP_KDF-PVKKDF.html" => [ + "doc/man7/EVP_KDF-PVKKDF.pod" + ], "doc/html/man7/EVP_KDF-SCRYPT.html" => [ "doc/man7/EVP_KDF-SCRYPT.pod" ], @@ -13076,9 +15206,18 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-X963.html" => [ "doc/man7/EVP_KDF-X963.pod" ], + "doc/html/man7/EVP_KEM-EC.html" => [ + "doc/man7/EVP_KEM-EC.pod" + ], + "doc/html/man7/EVP_KEM-ML-KEM.html" => [ + "doc/man7/EVP_KEM-ML-KEM.pod" + ], "doc/html/man7/EVP_KEM-RSA.html" => [ "doc/man7/EVP_KEM-RSA.pod" ], + "doc/html/man7/EVP_KEM-X25519.html" => [ + "doc/man7/EVP_KEM-X25519.pod" + ], "doc/html/man7/EVP_KEYEXCH-DH.html" => [ "doc/man7/EVP_KEYEXCH-DH.pod" ], @@ -13112,6 +15251,9 @@ our %unified_info = ( "doc/html/man7/EVP_MD-BLAKE2.html" => [ "doc/man7/EVP_MD-BLAKE2.pod" ], + "doc/html/man7/EVP_MD-KECCAK.html" => [ + "doc/man7/EVP_MD-KECCAK.pod" + ], "doc/html/man7/EVP_MD-MD2.html" => [ "doc/man7/EVP_MD-MD2.pod" ], @@ -13169,15 +15311,27 @@ our %unified_info = ( "doc/html/man7/EVP_PKEY-HMAC.html" => [ "doc/man7/EVP_PKEY-HMAC.pod" ], + "doc/html/man7/EVP_PKEY-ML-DSA.html" => [ + "doc/man7/EVP_PKEY-ML-DSA.pod" + ], + "doc/html/man7/EVP_PKEY-ML-KEM.html" => [ + "doc/man7/EVP_PKEY-ML-KEM.pod" + ], "doc/html/man7/EVP_PKEY-RSA.html" => [ "doc/man7/EVP_PKEY-RSA.pod" ], + "doc/html/man7/EVP_PKEY-SLH-DSA.html" => [ + "doc/man7/EVP_PKEY-SLH-DSA.pod" + ], "doc/html/man7/EVP_PKEY-SM2.html" => [ "doc/man7/EVP_PKEY-SM2.pod" ], "doc/html/man7/EVP_PKEY-X25519.html" => [ "doc/man7/EVP_PKEY-X25519.pod" ], + "doc/html/man7/EVP_RAND-CRNG-TEST.html" => [ + "doc/man7/EVP_RAND-CRNG-TEST.pod" + ], "doc/html/man7/EVP_RAND-CTR-DRBG.html" => [ "doc/man7/EVP_RAND-CTR-DRBG.pod" ], @@ -13187,6 +15341,9 @@ our %unified_info = ( "doc/html/man7/EVP_RAND-HMAC-DRBG.html" => [ "doc/man7/EVP_RAND-HMAC-DRBG.pod" ], + "doc/html/man7/EVP_RAND-JITTER.html" => [ + "doc/man7/EVP_RAND-JITTER.pod" + ], "doc/html/man7/EVP_RAND-SEED-SRC.html" => [ "doc/man7/EVP_RAND-SEED-SRC.pod" ], @@ -13208,9 +15365,15 @@ our %unified_info = ( "doc/html/man7/EVP_SIGNATURE-HMAC.html" => [ "doc/man7/EVP_SIGNATURE-HMAC.pod" ], + "doc/html/man7/EVP_SIGNATURE-ML-DSA.html" => [ + "doc/man7/EVP_SIGNATURE-ML-DSA.pod" + ], "doc/html/man7/EVP_SIGNATURE-RSA.html" => [ "doc/man7/EVP_SIGNATURE-RSA.pod" ], + "doc/html/man7/EVP_SIGNATURE-SLH-DSA.html" => [ + "doc/man7/EVP_SIGNATURE-SLH-DSA.pod" + ], "doc/html/man7/OSSL_PROVIDER-FIPS.html" => [ "doc/man7/OSSL_PROVIDER-FIPS.pod" ], @@ -13226,6 +15389,9 @@ our %unified_info = ( "doc/html/man7/OSSL_PROVIDER-null.html" => [ "doc/man7/OSSL_PROVIDER-null.pod" ], + "doc/html/man7/OSSL_STORE-winstore.html" => [ + "doc/man7/OSSL_STORE-winstore.pod" + ], "doc/html/man7/RAND.html" => [ "doc/man7/RAND.pod" ], @@ -13238,9 +15404,6 @@ our %unified_info = ( "doc/html/man7/bio.html" => [ "doc/man7/bio.pod" ], - "doc/html/man7/crypto.html" => [ - "doc/man7/crypto.pod" - ], "doc/html/man7/ct.html" => [ "doc/man7/ct.pod" ], @@ -13271,9 +15434,6 @@ our %unified_info = ( "doc/html/man7/life_cycle-rand.html" => [ "doc/man7/life_cycle-rand.pod" ], - "doc/html/man7/migration_guide.html" => [ - "doc/man7/migration_guide.pod" - ], "doc/html/man7/openssl-core.h.html" => [ "doc/man7/openssl-core.h.pod" ], @@ -13289,12 +15449,66 @@ our %unified_info = ( "doc/html/man7/openssl-glossary.html" => [ "doc/man7/openssl-glossary.pod" ], + "doc/html/man7/openssl-qlog.html" => [ + "doc/man7/openssl-qlog.pod" + ], + "doc/html/man7/openssl-quic-concurrency.html" => [ + "doc/man7/openssl-quic-concurrency.pod" + ], + "doc/html/man7/openssl-quic.html" => [ + "doc/man7/openssl-quic.pod" + ], "doc/html/man7/openssl-threads.html" => [ "doc/man7/openssl-threads.pod" ], "doc/html/man7/openssl_user_macros.html" => [ "doc/man7/openssl_user_macros.pod" ], + "doc/html/man7/ossl-guide-introduction.html" => [ + "doc/man7/ossl-guide-introduction.pod" + ], + "doc/html/man7/ossl-guide-libcrypto-introduction.html" => [ + "doc/man7/ossl-guide-libcrypto-introduction.pod" + ], + "doc/html/man7/ossl-guide-libraries-introduction.html" => [ + "doc/man7/ossl-guide-libraries-introduction.pod" + ], + "doc/html/man7/ossl-guide-libssl-introduction.html" => [ + "doc/man7/ossl-guide-libssl-introduction.pod" + ], + "doc/html/man7/ossl-guide-migration.html" => [ + "doc/man7/ossl-guide-migration.pod" + ], + "doc/html/man7/ossl-guide-quic-client-block.html" => [ + "doc/man7/ossl-guide-quic-client-block.pod" + ], + "doc/html/man7/ossl-guide-quic-client-non-block.html" => [ + "doc/man7/ossl-guide-quic-client-non-block.pod" + ], + "doc/html/man7/ossl-guide-quic-introduction.html" => [ + "doc/man7/ossl-guide-quic-introduction.pod" + ], + "doc/html/man7/ossl-guide-quic-multi-stream.html" => [ + "doc/man7/ossl-guide-quic-multi-stream.pod" + ], + "doc/html/man7/ossl-guide-quic-server-block.html" => [ + "doc/man7/ossl-guide-quic-server-block.pod" + ], + "doc/html/man7/ossl-guide-quic-server-non-block.html" => [ + "doc/man7/ossl-guide-quic-server-non-block.pod" + ], + "doc/html/man7/ossl-guide-tls-client-block.html" => [ + "doc/man7/ossl-guide-tls-client-block.pod" + ], + "doc/html/man7/ossl-guide-tls-client-non-block.html" => [ + "doc/man7/ossl-guide-tls-client-non-block.pod" + ], + "doc/html/man7/ossl-guide-tls-introduction.html" => [ + "doc/man7/ossl-guide-tls-introduction.pod" + ], + "doc/html/man7/ossl-guide-tls-server-block.html" => [ + "doc/man7/ossl-guide-tls-server-block.pod" + ], "doc/html/man7/ossl_store-file.html" => [ "doc/man7/ossl_store-file.pod" ], @@ -13349,6 +15563,9 @@ our %unified_info = ( "doc/html/man7/provider-signature.html" => [ "doc/man7/provider-signature.pod" ], + "doc/html/man7/provider-skeymgmt.html" => [ + "doc/man7/provider-skeymgmt.pod" + ], "doc/html/man7/provider-storemgmt.html" => [ "doc/man7/provider-storemgmt.pod" ], @@ -13358,9 +15575,6 @@ our %unified_info = ( "doc/html/man7/proxy-certificates.html" => [ "doc/man7/proxy-certificates.pod" ], - "doc/html/man7/ssl.html" => [ - "doc/man7/ssl.pod" - ], "doc/html/man7/x509.html" => [ "doc/man7/x509.pod" ], @@ -13508,6 +15722,9 @@ our %unified_info = ( "doc/man/man1/openssl-sess_id.1" => [ "doc/man1/openssl-sess_id.pod" ], + "doc/man/man1/openssl-skeyutl.1" => [ + "doc/man1/openssl-skeyutl.pod" + ], "doc/man/man1/openssl-smime.1" => [ "doc/man1/openssl-smime.pod" ], @@ -13649,6 +15866,9 @@ our %unified_info = ( "doc/man/man3/BIO_get_ex_new_index.3" => [ "doc/man3/BIO_get_ex_new_index.pod" ], + "doc/man/man3/BIO_get_rpoll_descriptor.3" => [ + "doc/man3/BIO_get_rpoll_descriptor.pod" + ], "doc/man/man3/BIO_meth_new.3" => [ "doc/man3/BIO_meth_new.pod" ], @@ -13685,6 +15905,9 @@ our %unified_info = ( "doc/man/man3/BIO_s_datagram.3" => [ "doc/man3/BIO_s_datagram.pod" ], + "doc/man/man3/BIO_s_dgram_pair.3" => [ + "doc/man3/BIO_s_dgram_pair.pod" + ], "doc/man/man3/BIO_s_fd.3" => [ "doc/man3/BIO_s_fd.pod" ], @@ -13700,6 +15923,9 @@ our %unified_info = ( "doc/man/man3/BIO_s_socket.3" => [ "doc/man3/BIO_s_socket.pod" ], + "doc/man/man3/BIO_sendmmsg.3" => [ + "doc/man3/BIO_sendmmsg.pod" + ], "doc/man/man3/BIO_set_callback.3" => [ "doc/man3/BIO_set_callback.pod" ], @@ -13772,6 +15998,9 @@ our %unified_info = ( "doc/man/man3/BUF_MEM_new.3" => [ "doc/man3/BUF_MEM_new.pod" ], + "doc/man/man3/CMAC_CTX.3" => [ + "doc/man3/CMAC_CTX.pod" + ], "doc/man/man3/CMS_EncryptedData_decrypt.3" => [ "doc/man3/CMS_EncryptedData_decrypt.pod" ], @@ -13838,6 +16067,9 @@ our %unified_info = ( "doc/man/man3/CMS_verify_receipt.3" => [ "doc/man3/CMS_verify_receipt.pod" ], + "doc/man/man3/COMP_CTX_new.3" => [ + "doc/man3/COMP_CTX_new.pod" + ], "doc/man/man3/CONF_modules_free.3" => [ "doc/man3/CONF_modules_free.pod" ], @@ -13937,6 +16169,12 @@ our %unified_info = ( "doc/man/man3/DTLS_set_timer_cb.3" => [ "doc/man3/DTLS_set_timer_cb.pod" ], + "doc/man/man3/DTLSv1_get_timeout.3" => [ + "doc/man3/DTLSv1_get_timeout.pod" + ], + "doc/man/man3/DTLSv1_handle_timeout.3" => [ + "doc/man3/DTLSv1_handle_timeout.pod" + ], "doc/man/man3/DTLSv1_listen.3" => [ "doc/man3/DTLSv1_listen.pod" ], @@ -14075,6 +16313,9 @@ our %unified_info = ( "doc/man/man3/EVP_PKEY_CTX_get0_pkey.3" => [ "doc/man3/EVP_PKEY_CTX_get0_pkey.pod" ], + "doc/man/man3/EVP_PKEY_CTX_get_algor.3" => [ + "doc/man3/EVP_PKEY_CTX_get_algor.pod" + ], "doc/man/man3/EVP_PKEY_CTX_new.3" => [ "doc/man3/EVP_PKEY_CTX_new.pod" ], @@ -14192,6 +16433,12 @@ our %unified_info = ( "doc/man/man3/EVP_SIGNATURE.3" => [ "doc/man3/EVP_SIGNATURE.pod" ], + "doc/man/man3/EVP_SKEY.3" => [ + "doc/man3/EVP_SKEY.pod" + ], + "doc/man/man3/EVP_SKEYMGMT.3" => [ + "doc/man3/EVP_SKEYMGMT.pod" + ], "doc/man/man3/EVP_SealInit.3" => [ "doc/man3/EVP_SealInit.pod" ], @@ -14279,6 +16526,9 @@ our %unified_info = ( "doc/man/man3/EVP_whirlpool.3" => [ "doc/man3/EVP_whirlpool.pod" ], + "doc/man/man3/GENERAL_NAME.3" => [ + "doc/man3/GENERAL_NAME.pod" + ], "doc/man/man3/HMAC.3" => [ "doc/man3/HMAC.pod" ], @@ -14351,9 +16601,15 @@ our %unified_info = ( "doc/man/man3/OPENSSL_load_builtin_modules.3" => [ "doc/man3/OPENSSL_load_builtin_modules.pod" ], + "doc/man/man3/OPENSSL_load_u16_le.3" => [ + "doc/man3/OPENSSL_load_u16_le.pod" + ], "doc/man/man3/OPENSSL_malloc.3" => [ "doc/man3/OPENSSL_malloc.pod" ], + "doc/man/man3/OPENSSL_riscvcap.3" => [ + "doc/man3/OPENSSL_riscvcap.pod" + ], "doc/man/man3/OPENSSL_s390xcap.3" => [ "doc/man3/OPENSSL_s390xcap.pod" ], @@ -14369,12 +16625,18 @@ our %unified_info = ( "doc/man/man3/OSSL_CALLBACK.3" => [ "doc/man3/OSSL_CALLBACK.pod" ], + "doc/man/man3/OSSL_CMP_ATAV_set0.3" => [ + "doc/man3/OSSL_CMP_ATAV_set0.pod" + ], "doc/man/man3/OSSL_CMP_CTX_new.3" => [ "doc/man3/OSSL_CMP_CTX_new.pod" ], "doc/man/man3/OSSL_CMP_HDR_get0_transactionID.3" => [ "doc/man3/OSSL_CMP_HDR_get0_transactionID.pod" ], + "doc/man/man3/OSSL_CMP_ITAV_new_caCerts.3" => [ + "doc/man3/OSSL_CMP_ITAV_new_caCerts.pod" + ], "doc/man/man3/OSSL_CMP_ITAV_set0.3" => [ "doc/man3/OSSL_CMP_ITAV_set0.pod" ], @@ -14444,9 +16706,18 @@ our %unified_info = ( "doc/man/man3/OSSL_ENCODER_to_bio.3" => [ "doc/man3/OSSL_ENCODER_to_bio.pod" ], + "doc/man/man3/OSSL_ERR_STATE_save.3" => [ + "doc/man3/OSSL_ERR_STATE_save.pod" + ], "doc/man/man3/OSSL_ESS_check_signing_certs.3" => [ "doc/man3/OSSL_ESS_check_signing_certs.pod" ], + "doc/man/man3/OSSL_GENERAL_NAMES_print.3" => [ + "doc/man3/OSSL_GENERAL_NAMES_print.pod" + ], + "doc/man/man3/OSSL_HPKE_CTX_new.3" => [ + "doc/man3/OSSL_HPKE_CTX_new.pod" + ], "doc/man/man3/OSSL_HTTP_REQ_CTX.3" => [ "doc/man3/OSSL_HTTP_REQ_CTX.pod" ], @@ -14456,12 +16727,24 @@ our %unified_info = ( "doc/man/man3/OSSL_HTTP_transfer.3" => [ "doc/man3/OSSL_HTTP_transfer.pod" ], + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX.3" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX.pod" + ], + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX_print.3" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX_print.pod" + ], + "doc/man/man3/OSSL_INDICATOR_set_callback.3" => [ + "doc/man3/OSSL_INDICATOR_set_callback.pod" + ], "doc/man/man3/OSSL_ITEM.3" => [ "doc/man3/OSSL_ITEM.pod" ], "doc/man/man3/OSSL_LIB_CTX.3" => [ "doc/man3/OSSL_LIB_CTX.pod" ], + "doc/man/man3/OSSL_LIB_CTX_set_conf_diagnostics.3" => [ + "doc/man3/OSSL_LIB_CTX_set_conf_diagnostics.pod" + ], "doc/man/man3/OSSL_PARAM.3" => [ "doc/man3/OSSL_PARAM.pod" ], @@ -14477,9 +16760,15 @@ our %unified_info = ( "doc/man/man3/OSSL_PARAM_int.3" => [ "doc/man3/OSSL_PARAM_int.pod" ], + "doc/man/man3/OSSL_PARAM_print_to_bio.3" => [ + "doc/man3/OSSL_PARAM_print_to_bio.pod" + ], "doc/man/man3/OSSL_PROVIDER.3" => [ "doc/man3/OSSL_PROVIDER.pod" ], + "doc/man/man3/OSSL_QUIC_client_method.3" => [ + "doc/man3/OSSL_QUIC_client_method.pod" + ], "doc/man/man3/OSSL_SELF_TEST_new.3" => [ "doc/man3/OSSL_SELF_TEST_new.pod" ], @@ -14504,6 +16793,9 @@ our %unified_info = ( "doc/man/man3/OSSL_STORE_open.3" => [ "doc/man3/OSSL_STORE_open.pod" ], + "doc/man/man3/OSSL_sleep.3" => [ + "doc/man3/OSSL_sleep.pod" + ], "doc/man/man3/OSSL_trace_enabled.3" => [ "doc/man3/OSSL_trace_enabled.pod" ], @@ -14519,6 +16811,9 @@ our %unified_info = ( "doc/man/man3/OpenSSL_version.3" => [ "doc/man3/OpenSSL_version.pod" ], + "doc/man/man3/PBMAC1_get1_pbkdf2_param.3" => [ + "doc/man3/PBMAC1_get1_pbkdf2_param.pod" + ], "doc/man/man3/PEM_X509_INFO_read_bio_ex.3" => [ "doc/man3/PEM_X509_INFO_read_bio_ex.pod" ], @@ -14555,6 +16850,9 @@ our %unified_info = ( "doc/man/man3/PKCS12_SAFEBAG_get1_cert.3" => [ "doc/man3/PKCS12_SAFEBAG_get1_cert.pod" ], + "doc/man/man3/PKCS12_SAFEBAG_set0_attrs.3" => [ + "doc/man3/PKCS12_SAFEBAG_set0_attrs.pod" + ], "doc/man/man3/PKCS12_add1_attr_by_NID.3" => [ "doc/man3/PKCS12_add1_attr_by_NID.pod" ], @@ -14828,6 +17126,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set0_CA_list.3" => [ "doc/man3/SSL_CTX_set0_CA_list.pod" ], + "doc/man/man3/SSL_CTX_set1_cert_comp_preference.3" => [ + "doc/man3/SSL_CTX_set1_cert_comp_preference.pod" + ], "doc/man/man3/SSL_CTX_set1_curves.3" => [ "doc/man3/SSL_CTX_set1_curves.pod" ], @@ -14867,6 +17168,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_default_passwd_cb.3" => [ "doc/man3/SSL_CTX_set_default_passwd_cb.pod" ], + "doc/man/man3/SSL_CTX_set_domain_flags.3" => [ + "doc/man3/SSL_CTX_set_domain_flags.pod" + ], "doc/man/man3/SSL_CTX_set_generate_session_id.3" => [ "doc/man3/SSL_CTX_set_generate_session_id.pod" ], @@ -14888,6 +17192,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_msg_callback.3" => [ "doc/man3/SSL_CTX_set_msg_callback.pod" ], + "doc/man/man3/SSL_CTX_set_new_pending_conn_cb.3" => [ + "doc/man3/SSL_CTX_set_new_pending_conn_cb.pod" + ], "doc/man/man3/SSL_CTX_set_num_tickets.3" => [ "doc/man3/SSL_CTX_set_num_tickets.pod" ], @@ -15002,6 +17309,9 @@ our %unified_info = ( "doc/man/man3/SSL_accept.3" => [ "doc/man3/SSL_accept.pod" ], + "doc/man/man3/SSL_accept_stream.3" => [ + "doc/man3/SSL_accept_stream.pod" + ], "doc/man/man3/SSL_alert_type_string.3" => [ "doc/man3/SSL_alert_type_string.pod" ], @@ -15029,9 +17339,21 @@ our %unified_info = ( "doc/man/man3/SSL_free.3" => [ "doc/man3/SSL_free.pod" ], + "doc/man/man3/SSL_get0_connection.3" => [ + "doc/man3/SSL_get0_connection.pod" + ], + "doc/man/man3/SSL_get0_group_name.3" => [ + "doc/man3/SSL_get0_group_name.pod" + ], + "doc/man/man3/SSL_get0_peer_rpk.3" => [ + "doc/man3/SSL_get0_peer_rpk.pod" + ], "doc/man/man3/SSL_get0_peer_scts.3" => [ "doc/man3/SSL_get0_peer_scts.pod" ], + "doc/man/man3/SSL_get1_builtin_sigalgs.3" => [ + "doc/man3/SSL_get1_builtin_sigalgs.pod" + ], "doc/man/man3/SSL_get_SSL_CTX.3" => [ "doc/man3/SSL_get_SSL_CTX.pod" ], @@ -15047,6 +17369,9 @@ our %unified_info = ( "doc/man/man3/SSL_get_client_random.3" => [ "doc/man3/SSL_get_client_random.pod" ], + "doc/man/man3/SSL_get_conn_close_info.3" => [ + "doc/man3/SSL_get_conn_close_info.pod" + ], "doc/man/man3/SSL_get_current_cipher.3" => [ "doc/man3/SSL_get_current_cipher.pod" ], @@ -15056,12 +17381,18 @@ our %unified_info = ( "doc/man/man3/SSL_get_error.3" => [ "doc/man3/SSL_get_error.pod" ], + "doc/man/man3/SSL_get_event_timeout.3" => [ + "doc/man3/SSL_get_event_timeout.pod" + ], "doc/man/man3/SSL_get_extms_support.3" => [ "doc/man3/SSL_get_extms_support.pod" ], "doc/man/man3/SSL_get_fd.3" => [ "doc/man3/SSL_get_fd.pod" ], + "doc/man/man3/SSL_get_handshake_rtt.3" => [ + "doc/man3/SSL_get_handshake_rtt.pod" + ], "doc/man/man3/SSL_get_peer_cert_chain.3" => [ "doc/man3/SSL_get_peer_cert_chain.pod" ], @@ -15080,11 +17411,23 @@ our %unified_info = ( "doc/man/man3/SSL_get_rbio.3" => [ "doc/man3/SSL_get_rbio.pod" ], + "doc/man/man3/SSL_get_rpoll_descriptor.3" => [ + "doc/man3/SSL_get_rpoll_descriptor.pod" + ], "doc/man/man3/SSL_get_session.3" => [ "doc/man3/SSL_get_session.pod" ], - "doc/man/man3/SSL_get_shared_sigalgs.3" => [ - "doc/man3/SSL_get_shared_sigalgs.pod" + "doc/man/man3/SSL_get_shared_sigalgs.3" => [ + "doc/man3/SSL_get_shared_sigalgs.pod" + ], + "doc/man/man3/SSL_get_stream_id.3" => [ + "doc/man3/SSL_get_stream_id.pod" + ], + "doc/man/man3/SSL_get_stream_read_state.3" => [ + "doc/man3/SSL_get_stream_read_state.pod" + ], + "doc/man/man3/SSL_get_value_uint.3" => [ + "doc/man3/SSL_get_value_uint.pod" ], "doc/man/man3/SSL_get_verify_result.3" => [ "doc/man3/SSL_get_verify_result.pod" @@ -15095,9 +17438,15 @@ our %unified_info = ( "doc/man/man3/SSL_group_to_name.3" => [ "doc/man3/SSL_group_to_name.pod" ], + "doc/man/man3/SSL_handle_events.3" => [ + "doc/man3/SSL_handle_events.pod" + ], "doc/man/man3/SSL_in_init.3" => [ "doc/man3/SSL_in_init.pod" ], + "doc/man/man3/SSL_inject_net_dgram.3" => [ + "doc/man3/SSL_inject_net_dgram.pod" + ], "doc/man/man3/SSL_key_update.3" => [ "doc/man3/SSL_key_update.pod" ], @@ -15110,9 +17459,21 @@ our %unified_info = ( "doc/man/man3/SSL_new.3" => [ "doc/man3/SSL_new.pod" ], + "doc/man/man3/SSL_new_domain.3" => [ + "doc/man3/SSL_new_domain.pod" + ], + "doc/man/man3/SSL_new_listener.3" => [ + "doc/man3/SSL_new_listener.pod" + ], + "doc/man/man3/SSL_new_stream.3" => [ + "doc/man3/SSL_new_stream.pod" + ], "doc/man/man3/SSL_pending.3" => [ "doc/man3/SSL_pending.pod" ], + "doc/man/man3/SSL_poll.3" => [ + "doc/man3/SSL_poll.pod" + ], "doc/man/man3/SSL_read.3" => [ "doc/man3/SSL_read.pod" ], @@ -15128,24 +17489,45 @@ our %unified_info = ( "doc/man/man3/SSL_set1_host.3" => [ "doc/man3/SSL_set1_host.pod" ], + "doc/man/man3/SSL_set1_initial_peer_addr.3" => [ + "doc/man3/SSL_set1_initial_peer_addr.pod" + ], + "doc/man/man3/SSL_set1_server_cert_type.3" => [ + "doc/man3/SSL_set1_server_cert_type.pod" + ], "doc/man/man3/SSL_set_async_callback.3" => [ "doc/man3/SSL_set_async_callback.pod" ], "doc/man/man3/SSL_set_bio.3" => [ "doc/man3/SSL_set_bio.pod" ], + "doc/man/man3/SSL_set_blocking_mode.3" => [ + "doc/man3/SSL_set_blocking_mode.pod" + ], "doc/man/man3/SSL_set_connect_state.3" => [ "doc/man3/SSL_set_connect_state.pod" ], + "doc/man/man3/SSL_set_default_stream_mode.3" => [ + "doc/man3/SSL_set_default_stream_mode.pod" + ], "doc/man/man3/SSL_set_fd.3" => [ "doc/man3/SSL_set_fd.pod" ], + "doc/man/man3/SSL_set_incoming_stream_policy.3" => [ + "doc/man3/SSL_set_incoming_stream_policy.pod" + ], + "doc/man/man3/SSL_set_quic_tls_cbs.3" => [ + "doc/man3/SSL_set_quic_tls_cbs.pod" + ], "doc/man/man3/SSL_set_retry_verify.3" => [ "doc/man3/SSL_set_retry_verify.pod" ], "doc/man/man3/SSL_set_session.3" => [ "doc/man3/SSL_set_session.pod" ], + "doc/man/man3/SSL_set_session_secret_cb.3" => [ + "doc/man3/SSL_set_session_secret_cb.pod" + ], "doc/man/man3/SSL_set_shutdown.3" => [ "doc/man3/SSL_set_shutdown.pod" ], @@ -15158,6 +17540,12 @@ our %unified_info = ( "doc/man/man3/SSL_state_string.3" => [ "doc/man3/SSL_state_string.pod" ], + "doc/man/man3/SSL_stream_conclude.3" => [ + "doc/man3/SSL_stream_conclude.pod" + ], + "doc/man/man3/SSL_stream_reset.3" => [ + "doc/man3/SSL_stream_reset.pod" + ], "doc/man/man3/SSL_want.3" => [ "doc/man3/SSL_want.pod" ], @@ -15167,8 +17555,8 @@ our %unified_info = ( "doc/man/man3/TS_RESP_CTX_new.3" => [ "doc/man3/TS_RESP_CTX_new.pod" ], - "doc/man/man3/TS_VERIFY_CTX_set_certs.3" => [ - "doc/man3/TS_VERIFY_CTX_set_certs.pod" + "doc/man/man3/TS_VERIFY_CTX.3" => [ + "doc/man3/TS_VERIFY_CTX.pod" ], "doc/man/man3/UI_STRING.3" => [ "doc/man3/UI_STRING.pod" @@ -15188,6 +17576,21 @@ our %unified_info = ( "doc/man/man3/X509V3_set_ctx.3" => [ "doc/man3/X509V3_set_ctx.pod" ], + "doc/man/man3/X509_ACERT_add1_attr.3" => [ + "doc/man3/X509_ACERT_add1_attr.pod" + ], + "doc/man/man3/X509_ACERT_add_attr_nconf.3" => [ + "doc/man3/X509_ACERT_add_attr_nconf.pod" + ], + "doc/man/man3/X509_ACERT_get0_holder_baseCertId.3" => [ + "doc/man3/X509_ACERT_get0_holder_baseCertId.pod" + ], + "doc/man/man3/X509_ACERT_get_attr.3" => [ + "doc/man3/X509_ACERT_get_attr.pod" + ], + "doc/man/man3/X509_ACERT_print_ex.3" => [ + "doc/man3/X509_ACERT_print_ex.pod" + ], "doc/man/man3/X509_ALGOR_dup.3" => [ "doc/man3/X509_ALGOR_dup.pod" ], @@ -15236,6 +17639,9 @@ our %unified_info = ( "doc/man/man3/X509_SIG_get0.3" => [ "doc/man3/X509_SIG_get0.pod" ], + "doc/man/man3/X509_STORE_CTX_get_by_subject.3" => [ + "doc/man3/X509_STORE_CTX_get_by_subject.pod" + ], "doc/man/man3/X509_STORE_CTX_get_error.3" => [ "doc/man3/X509_STORE_CTX_get_error.pod" ], @@ -15302,6 +17708,9 @@ our %unified_info = ( "doc/man/man3/X509_get0_uids.3" => [ "doc/man3/X509_get0_uids.pod" ], + "doc/man/man3/X509_get_default_cert_file.3" => [ + "doc/man3/X509_get_default_cert_file.pod" + ], "doc/man/man3/X509_get_extension_flags.3" => [ "doc/man3/X509_get_extension_flags.pod" ], @@ -15425,9 +17834,15 @@ our %unified_info = ( "doc/man/man7/EVP_CIPHER-SM4.7" => [ "doc/man7/EVP_CIPHER-SM4.pod" ], + "doc/man/man7/EVP_KDF-ARGON2.7" => [ + "doc/man7/EVP_KDF-ARGON2.pod" + ], "doc/man/man7/EVP_KDF-HKDF.7" => [ "doc/man7/EVP_KDF-HKDF.pod" ], + "doc/man/man7/EVP_KDF-HMAC-DRBG.7" => [ + "doc/man7/EVP_KDF-HMAC-DRBG.pod" + ], "doc/man/man7/EVP_KDF-KB.7" => [ "doc/man7/EVP_KDF-KB.pod" ], @@ -15443,6 +17858,9 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-PKCS12KDF.7" => [ "doc/man7/EVP_KDF-PKCS12KDF.pod" ], + "doc/man/man7/EVP_KDF-PVKKDF.7" => [ + "doc/man7/EVP_KDF-PVKKDF.pod" + ], "doc/man/man7/EVP_KDF-SCRYPT.7" => [ "doc/man7/EVP_KDF-SCRYPT.pod" ], @@ -15467,9 +17885,18 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-X963.7" => [ "doc/man7/EVP_KDF-X963.pod" ], + "doc/man/man7/EVP_KEM-EC.7" => [ + "doc/man7/EVP_KEM-EC.pod" + ], + "doc/man/man7/EVP_KEM-ML-KEM.7" => [ + "doc/man7/EVP_KEM-ML-KEM.pod" + ], "doc/man/man7/EVP_KEM-RSA.7" => [ "doc/man7/EVP_KEM-RSA.pod" ], + "doc/man/man7/EVP_KEM-X25519.7" => [ + "doc/man7/EVP_KEM-X25519.pod" + ], "doc/man/man7/EVP_KEYEXCH-DH.7" => [ "doc/man7/EVP_KEYEXCH-DH.pod" ], @@ -15503,6 +17930,9 @@ our %unified_info = ( "doc/man/man7/EVP_MD-BLAKE2.7" => [ "doc/man7/EVP_MD-BLAKE2.pod" ], + "doc/man/man7/EVP_MD-KECCAK.7" => [ + "doc/man7/EVP_MD-KECCAK.pod" + ], "doc/man/man7/EVP_MD-MD2.7" => [ "doc/man7/EVP_MD-MD2.pod" ], @@ -15560,15 +17990,27 @@ our %unified_info = ( "doc/man/man7/EVP_PKEY-HMAC.7" => [ "doc/man7/EVP_PKEY-HMAC.pod" ], + "doc/man/man7/EVP_PKEY-ML-DSA.7" => [ + "doc/man7/EVP_PKEY-ML-DSA.pod" + ], + "doc/man/man7/EVP_PKEY-ML-KEM.7" => [ + "doc/man7/EVP_PKEY-ML-KEM.pod" + ], "doc/man/man7/EVP_PKEY-RSA.7" => [ "doc/man7/EVP_PKEY-RSA.pod" ], + "doc/man/man7/EVP_PKEY-SLH-DSA.7" => [ + "doc/man7/EVP_PKEY-SLH-DSA.pod" + ], "doc/man/man7/EVP_PKEY-SM2.7" => [ "doc/man7/EVP_PKEY-SM2.pod" ], "doc/man/man7/EVP_PKEY-X25519.7" => [ "doc/man7/EVP_PKEY-X25519.pod" ], + "doc/man/man7/EVP_RAND-CRNG-TEST.7" => [ + "doc/man7/EVP_RAND-CRNG-TEST.pod" + ], "doc/man/man7/EVP_RAND-CTR-DRBG.7" => [ "doc/man7/EVP_RAND-CTR-DRBG.pod" ], @@ -15578,6 +18020,9 @@ our %unified_info = ( "doc/man/man7/EVP_RAND-HMAC-DRBG.7" => [ "doc/man7/EVP_RAND-HMAC-DRBG.pod" ], + "doc/man/man7/EVP_RAND-JITTER.7" => [ + "doc/man7/EVP_RAND-JITTER.pod" + ], "doc/man/man7/EVP_RAND-SEED-SRC.7" => [ "doc/man7/EVP_RAND-SEED-SRC.pod" ], @@ -15599,9 +18044,15 @@ our %unified_info = ( "doc/man/man7/EVP_SIGNATURE-HMAC.7" => [ "doc/man7/EVP_SIGNATURE-HMAC.pod" ], + "doc/man/man7/EVP_SIGNATURE-ML-DSA.7" => [ + "doc/man7/EVP_SIGNATURE-ML-DSA.pod" + ], "doc/man/man7/EVP_SIGNATURE-RSA.7" => [ "doc/man7/EVP_SIGNATURE-RSA.pod" ], + "doc/man/man7/EVP_SIGNATURE-SLH-DSA.7" => [ + "doc/man7/EVP_SIGNATURE-SLH-DSA.pod" + ], "doc/man/man7/OSSL_PROVIDER-FIPS.7" => [ "doc/man7/OSSL_PROVIDER-FIPS.pod" ], @@ -15617,6 +18068,9 @@ our %unified_info = ( "doc/man/man7/OSSL_PROVIDER-null.7" => [ "doc/man7/OSSL_PROVIDER-null.pod" ], + "doc/man/man7/OSSL_STORE-winstore.7" => [ + "doc/man7/OSSL_STORE-winstore.pod" + ], "doc/man/man7/RAND.7" => [ "doc/man7/RAND.pod" ], @@ -15629,9 +18083,6 @@ our %unified_info = ( "doc/man/man7/bio.7" => [ "doc/man7/bio.pod" ], - "doc/man/man7/crypto.7" => [ - "doc/man7/crypto.pod" - ], "doc/man/man7/ct.7" => [ "doc/man7/ct.pod" ], @@ -15662,9 +18113,6 @@ our %unified_info = ( "doc/man/man7/life_cycle-rand.7" => [ "doc/man7/life_cycle-rand.pod" ], - "doc/man/man7/migration_guide.7" => [ - "doc/man7/migration_guide.pod" - ], "doc/man/man7/openssl-core.h.7" => [ "doc/man7/openssl-core.h.pod" ], @@ -15680,12 +18128,66 @@ our %unified_info = ( "doc/man/man7/openssl-glossary.7" => [ "doc/man7/openssl-glossary.pod" ], + "doc/man/man7/openssl-qlog.7" => [ + "doc/man7/openssl-qlog.pod" + ], + "doc/man/man7/openssl-quic-concurrency.7" => [ + "doc/man7/openssl-quic-concurrency.pod" + ], + "doc/man/man7/openssl-quic.7" => [ + "doc/man7/openssl-quic.pod" + ], "doc/man/man7/openssl-threads.7" => [ "doc/man7/openssl-threads.pod" ], "doc/man/man7/openssl_user_macros.7" => [ "doc/man7/openssl_user_macros.pod" ], + "doc/man/man7/ossl-guide-introduction.7" => [ + "doc/man7/ossl-guide-introduction.pod" + ], + "doc/man/man7/ossl-guide-libcrypto-introduction.7" => [ + "doc/man7/ossl-guide-libcrypto-introduction.pod" + ], + "doc/man/man7/ossl-guide-libraries-introduction.7" => [ + "doc/man7/ossl-guide-libraries-introduction.pod" + ], + "doc/man/man7/ossl-guide-libssl-introduction.7" => [ + "doc/man7/ossl-guide-libssl-introduction.pod" + ], + "doc/man/man7/ossl-guide-migration.7" => [ + "doc/man7/ossl-guide-migration.pod" + ], + "doc/man/man7/ossl-guide-quic-client-block.7" => [ + "doc/man7/ossl-guide-quic-client-block.pod" + ], + "doc/man/man7/ossl-guide-quic-client-non-block.7" => [ + "doc/man7/ossl-guide-quic-client-non-block.pod" + ], + "doc/man/man7/ossl-guide-quic-introduction.7" => [ + "doc/man7/ossl-guide-quic-introduction.pod" + ], + "doc/man/man7/ossl-guide-quic-multi-stream.7" => [ + "doc/man7/ossl-guide-quic-multi-stream.pod" + ], + "doc/man/man7/ossl-guide-quic-server-block.7" => [ + "doc/man7/ossl-guide-quic-server-block.pod" + ], + "doc/man/man7/ossl-guide-quic-server-non-block.7" => [ + "doc/man7/ossl-guide-quic-server-non-block.pod" + ], + "doc/man/man7/ossl-guide-tls-client-block.7" => [ + "doc/man7/ossl-guide-tls-client-block.pod" + ], + "doc/man/man7/ossl-guide-tls-client-non-block.7" => [ + "doc/man7/ossl-guide-tls-client-non-block.pod" + ], + "doc/man/man7/ossl-guide-tls-introduction.7" => [ + "doc/man7/ossl-guide-tls-introduction.pod" + ], + "doc/man/man7/ossl-guide-tls-server-block.7" => [ + "doc/man7/ossl-guide-tls-server-block.pod" + ], "doc/man/man7/ossl_store-file.7" => [ "doc/man7/ossl_store-file.pod" ], @@ -15740,6 +18242,9 @@ our %unified_info = ( "doc/man/man7/provider-signature.7" => [ "doc/man7/provider-signature.pod" ], + "doc/man/man7/provider-skeymgmt.7" => [ + "doc/man7/provider-skeymgmt.pod" + ], "doc/man/man7/provider-storemgmt.7" => [ "doc/man7/provider-storemgmt.pod" ], @@ -15749,9 +18254,6 @@ our %unified_info = ( "doc/man/man7/proxy-certificates.7" => [ "doc/man7/proxy-certificates.pod" ], - "doc/man/man7/ssl.7" => [ - "doc/man7/ssl.pod" - ], "doc/man/man7/x509.7" => [ "doc/man7/x509.pod" ], @@ -15887,6 +18389,9 @@ our %unified_info = ( "doc/man1/openssl-sess_id.pod" => [ "doc/man1/openssl-sess_id.pod.in" ], + "doc/man1/openssl-skeyutl.pod" => [ + "doc/man1/openssl-skeyutl.pod.in" + ], "doc/man1/openssl-smime.pod" => [ "doc/man1/openssl-smime.pod.in" ], @@ -15923,12 +18428,30 @@ our %unified_info = ( "engines/e_padlock-x86_64.s" => [ "engines/asm/e_padlock-x86_64.pl" ], + "exporters/OpenSSLConfig.cmake" => [ + "exporters/cmake/OpenSSLConfig.cmake.in" + ], + "exporters/OpenSSLConfigVersion.cmake" => [ + "exporters/cmake/OpenSSLConfigVersion.cmake.in" + ], + "exporters/libcrypto.pc" => [ + "exporters/pkg-config/libcrypto.pc.in" + ], + "exporters/libssl.pc" => [ + "exporters/pkg-config/libssl.pc.in" + ], + "exporters/openssl.pc" => [ + "exporters/pkg-config/openssl.pc.in" + ], "include/crypto/bn_conf.h" => [ "include/crypto/bn_conf.h.in" ], "include/crypto/dso_conf.h" => [ "include/crypto/dso_conf.h.in" ], + "include/internal/param_names.h" => [ + "include/internal/param_names.h.in" + ], "include/openssl/asn1.h" => [ "include/openssl/asn1.h.in" ], @@ -15944,12 +18467,18 @@ our %unified_info = ( "include/openssl/cms.h" => [ "include/openssl/cms.h.in" ], + "include/openssl/comp.h" => [ + "include/openssl/comp.h.in" + ], "include/openssl/conf.h" => [ "include/openssl/conf.h.in" ], "include/openssl/configuration.h" => [ "include/openssl/configuration.h.in" ], + "include/openssl/core_names.h" => [ + "include/openssl/core_names.h.in" + ], "include/openssl/crmf.h" => [ "include/openssl/crmf.h.in" ], @@ -15998,16 +18527,37 @@ our %unified_info = ( "include/openssl/x509.h" => [ "include/openssl/x509.h.in" ], + "include/openssl/x509_acert.h" => [ + "include/openssl/x509_acert.h.in" + ], "include/openssl/x509_vfy.h" => [ "include/openssl/x509_vfy.h.in" ], "include/openssl/x509v3.h" => [ "include/openssl/x509v3.h.in" ], + "installdata.pm" => [ + "util/mkinstallvars.pl", + "\"PREFIX=\$(INSTALLTOP)\"", + "BINDIR=bin", + "\"LIBDIR=\$(LIBDIR)\"", + "\"libdir=\$(libdir)\"", + "INCLUDEDIR=include", + "APPLINKDIR=include/openssl", + "\"ENGINESDIR=\$(ENGINESDIR)\"", + "\"MODULESDIR=\$(MODULESDIR)\"", + "\"PKGCONFIGDIR=\$(PKGCONFIGDIR)\"", + "\"CMAKECONFIGDIR=\$(CMAKECONFIGDIR)\"", + "\"LDLIBS=\$(LIB_EX_LIBS)\"", + "\"VERSION=\$(VERSION)\"" + ], "libcrypto.ld" => [ "util/libcrypto.num", "libcrypto" ], + "libcrypto.pc" => [ + "exporters/pkg-config/libcrypto.pc.in" + ], "libcrypto.rc" => [ "util/mkrc.pl", "libcrypto" @@ -16016,10 +18566,16 @@ our %unified_info = ( "util/libssl.num", "libssl" ], + "libssl.pc" => [ + "exporters/pkg-config/libssl.pc.in" + ], "libssl.rc" => [ "util/mkrc.pl", "libssl" ], + "openssl.pc" => [ + "exporters/pkg-config/openssl.pc.in" + ], "providers/common/der/der_digests_gen.c" => [ "providers/common/der/der_digests_gen.c.in" ], @@ -16032,9 +18588,15 @@ our %unified_info = ( "providers/common/der/der_ecx_gen.c" => [ "providers/common/der/der_ecx_gen.c.in" ], + "providers/common/der/der_ml_dsa_gen.c" => [ + "providers/common/der/der_ml_dsa_gen.c.in" + ], "providers/common/der/der_rsa_gen.c" => [ "providers/common/der/der_rsa_gen.c.in" ], + "providers/common/der/der_slh_dsa_gen.c" => [ + "providers/common/der/der_slh_dsa_gen.c.in" + ], "providers/common/der/der_sm2_gen.c" => [ "providers/common/der/der_sm2_gen.c.in" ], @@ -16053,9 +18615,15 @@ our %unified_info = ( "providers/common/include/prov/der_ecx.h" => [ "providers/common/include/prov/der_ecx.h.in" ], + "providers/common/include/prov/der_ml_dsa.h" => [ + "providers/common/include/prov/der_ml_dsa.h.in" + ], "providers/common/include/prov/der_rsa.h" => [ "providers/common/include/prov/der_rsa.h.in" ], + "providers/common/include/prov/der_slh_dsa.h" => [ + "providers/common/include/prov/der_slh_dsa.h.in" + ], "providers/common/include/prov/der_sm2.h" => [ "providers/common/include/prov/der_sm2.h.in" ], @@ -16105,6 +18673,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "buffer" ], + "test/buildtest_byteorder.c" => [ + "test/generate_buildtest.pl", + "byteorder" + ], "test/buildtest_camellia.c" => [ "test/generate_buildtest.pl", "camellia" @@ -16137,10 +18709,6 @@ our %unified_info = ( "test/generate_buildtest.pl", "core_dispatch" ], - "test/buildtest_core_names.c" => [ - "test/generate_buildtest.pl", - "core_names" - ], "test/buildtest_core_object.c" => [ "test/generate_buildtest.pl", "core_object" @@ -16173,6 +18741,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "e_os2" ], + "test/buildtest_e_ostime.c" => [ + "test/generate_buildtest.pl", + "e_ostime" + ], "test/buildtest_ebcdic.c" => [ "test/generate_buildtest.pl", "ebcdic" @@ -16209,6 +18781,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "hmac" ], + "test/buildtest_hpke.c" => [ + "test/generate_buildtest.pl", + "hpke" + ], "test/buildtest_http.c" => [ "test/generate_buildtest.pl", "http" @@ -16217,6 +18793,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "idea" ], + "test/buildtest_indicator.c" => [ + "test/generate_buildtest.pl", + "indicator" + ], "test/buildtest_kdf.c" => [ "test/generate_buildtest.pl", "kdf" @@ -16237,6 +18817,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "mdc2" ], + "test/buildtest_ml_kem.c" => [ + "test/generate_buildtest.pl", + "ml_kem" + ], "test/buildtest_modes.c" => [ "test/generate_buildtest.pl", "modes" @@ -16277,6 +18861,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "provider" ], + "test/buildtest_quic.c" => [ + "test/generate_buildtest.pl", + "quic" + ], "test/buildtest_rand.c" => [ "test/generate_buildtest.pl", "rand" @@ -16333,6 +18921,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "symhacks" ], + "test/buildtest_thread.c" => [ + "test/generate_buildtest.pl", + "thread" + ], "test/buildtest_tls1.c" => [ "test/generate_buildtest.pl", "tls1" @@ -16413,6 +19005,7 @@ our %unified_info = ( "doc/html/man1/openssl-s_server.html", "doc/html/man1/openssl-s_time.html", "doc/html/man1/openssl-sess_id.html", + "doc/html/man1/openssl-skeyutl.html", "doc/html/man1/openssl-smime.html", "doc/html/man1/openssl-speed.html", "doc/html/man1/openssl-spkac.html", @@ -16462,6 +19055,7 @@ our %unified_info = ( "doc/html/man3/BIO_find_type.html", "doc/html/man3/BIO_get_data.html", "doc/html/man3/BIO_get_ex_new_index.html", + "doc/html/man3/BIO_get_rpoll_descriptor.html", "doc/html/man3/BIO_meth_new.html", "doc/html/man3/BIO_new.html", "doc/html/man3/BIO_new_CMS.html", @@ -16474,11 +19068,13 @@ our %unified_info = ( "doc/html/man3/BIO_s_connect.html", "doc/html/man3/BIO_s_core.html", "doc/html/man3/BIO_s_datagram.html", + "doc/html/man3/BIO_s_dgram_pair.html", "doc/html/man3/BIO_s_fd.html", "doc/html/man3/BIO_s_file.html", "doc/html/man3/BIO_s_mem.html", "doc/html/man3/BIO_s_null.html", "doc/html/man3/BIO_s_socket.html", + "doc/html/man3/BIO_sendmmsg.html", "doc/html/man3/BIO_set_callback.html", "doc/html/man3/BIO_should_retry.html", "doc/html/man3/BIO_socket_wait.html", @@ -16503,6 +19099,7 @@ our %unified_info = ( "doc/html/man3/BN_swap.html", "doc/html/man3/BN_zero.html", "doc/html/man3/BUF_MEM_new.html", + "doc/html/man3/CMAC_CTX.html", "doc/html/man3/CMS_EncryptedData_decrypt.html", "doc/html/man3/CMS_EncryptedData_encrypt.html", "doc/html/man3/CMS_EnvelopedData_create.html", @@ -16525,6 +19122,7 @@ our %unified_info = ( "doc/html/man3/CMS_uncompress.html", "doc/html/man3/CMS_verify.html", "doc/html/man3/CMS_verify_receipt.html", + "doc/html/man3/COMP_CTX_new.html", "doc/html/man3/CONF_modules_free.html", "doc/html/man3/CONF_modules_load_file.html", "doc/html/man3/CRYPTO_THREAD_run_once.html", @@ -16558,6 +19156,8 @@ our %unified_info = ( "doc/html/man3/DSA_size.html", "doc/html/man3/DTLS_get_data_mtu.html", "doc/html/man3/DTLS_set_timer_cb.html", + "doc/html/man3/DTLSv1_get_timeout.html", + "doc/html/man3/DTLSv1_handle_timeout.html", "doc/html/man3/DTLSv1_listen.html", "doc/html/man3/ECDSA_SIG_new.html", "doc/html/man3/ECDSA_sign.html", @@ -16604,6 +19204,7 @@ our %unified_info = ( "doc/html/man3/EVP_PKEY_CTX_ctrl.html", "doc/html/man3/EVP_PKEY_CTX_get0_libctx.html", "doc/html/man3/EVP_PKEY_CTX_get0_pkey.html", + "doc/html/man3/EVP_PKEY_CTX_get_algor.html", "doc/html/man3/EVP_PKEY_CTX_new.html", "doc/html/man3/EVP_PKEY_CTX_set1_pbe_pass.html", "doc/html/man3/EVP_PKEY_CTX_set_hkdf_md.html", @@ -16643,6 +19244,8 @@ our %unified_info = ( "doc/html/man3/EVP_PKEY_verify_recover.html", "doc/html/man3/EVP_RAND.html", "doc/html/man3/EVP_SIGNATURE.html", + "doc/html/man3/EVP_SKEY.html", + "doc/html/man3/EVP_SKEYMGMT.html", "doc/html/man3/EVP_SealInit.html", "doc/html/man3/EVP_SignInit.html", "doc/html/man3/EVP_VerifyInit.html", @@ -16672,6 +19275,7 @@ our %unified_info = ( "doc/html/man3/EVP_sm3.html", "doc/html/man3/EVP_sm4_cbc.html", "doc/html/man3/EVP_whirlpool.html", + "doc/html/man3/GENERAL_NAME.html", "doc/html/man3/HMAC.html", "doc/html/man3/MD5.html", "doc/html/man3/MDC2_Init.html", @@ -16696,14 +19300,18 @@ our %unified_info = ( "doc/html/man3/OPENSSL_init_ssl.html", "doc/html/man3/OPENSSL_instrument_bus.html", "doc/html/man3/OPENSSL_load_builtin_modules.html", + "doc/html/man3/OPENSSL_load_u16_le.html", "doc/html/man3/OPENSSL_malloc.html", + "doc/html/man3/OPENSSL_riscvcap.html", "doc/html/man3/OPENSSL_s390xcap.html", "doc/html/man3/OPENSSL_secure_malloc.html", "doc/html/man3/OPENSSL_strcasecmp.html", "doc/html/man3/OSSL_ALGORITHM.html", "doc/html/man3/OSSL_CALLBACK.html", + "doc/html/man3/OSSL_CMP_ATAV_set0.html", "doc/html/man3/OSSL_CMP_CTX_new.html", "doc/html/man3/OSSL_CMP_HDR_get0_transactionID.html", + "doc/html/man3/OSSL_CMP_ITAV_new_caCerts.html", "doc/html/man3/OSSL_CMP_ITAV_set0.html", "doc/html/man3/OSSL_CMP_MSG_get0_header.html", "doc/html/man3/OSSL_CMP_MSG_http_perform.html", @@ -16727,18 +19335,27 @@ our %unified_info = ( "doc/html/man3/OSSL_ENCODER_CTX.html", "doc/html/man3/OSSL_ENCODER_CTX_new_for_pkey.html", "doc/html/man3/OSSL_ENCODER_to_bio.html", + "doc/html/man3/OSSL_ERR_STATE_save.html", "doc/html/man3/OSSL_ESS_check_signing_certs.html", + "doc/html/man3/OSSL_GENERAL_NAMES_print.html", + "doc/html/man3/OSSL_HPKE_CTX_new.html", "doc/html/man3/OSSL_HTTP_REQ_CTX.html", "doc/html/man3/OSSL_HTTP_parse_url.html", "doc/html/man3/OSSL_HTTP_transfer.html", + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX.html", + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX_print.html", + "doc/html/man3/OSSL_INDICATOR_set_callback.html", "doc/html/man3/OSSL_ITEM.html", "doc/html/man3/OSSL_LIB_CTX.html", + "doc/html/man3/OSSL_LIB_CTX_set_conf_diagnostics.html", "doc/html/man3/OSSL_PARAM.html", "doc/html/man3/OSSL_PARAM_BLD.html", "doc/html/man3/OSSL_PARAM_allocate_from_text.html", "doc/html/man3/OSSL_PARAM_dup.html", "doc/html/man3/OSSL_PARAM_int.html", + "doc/html/man3/OSSL_PARAM_print_to_bio.html", "doc/html/man3/OSSL_PROVIDER.html", + "doc/html/man3/OSSL_QUIC_client_method.html", "doc/html/man3/OSSL_SELF_TEST_new.html", "doc/html/man3/OSSL_SELF_TEST_set_callback.html", "doc/html/man3/OSSL_STORE_INFO.html", @@ -16747,11 +19364,13 @@ our %unified_info = ( "doc/html/man3/OSSL_STORE_attach.html", "doc/html/man3/OSSL_STORE_expect.html", "doc/html/man3/OSSL_STORE_open.html", + "doc/html/man3/OSSL_sleep.html", "doc/html/man3/OSSL_trace_enabled.html", "doc/html/man3/OSSL_trace_get_category_num.html", "doc/html/man3/OSSL_trace_set_channel.html", "doc/html/man3/OpenSSL_add_all_algorithms.html", "doc/html/man3/OpenSSL_version.html", + "doc/html/man3/PBMAC1_get1_pbkdf2_param.html", "doc/html/man3/PEM_X509_INFO_read_bio_ex.html", "doc/html/man3/PEM_bytes_read_bio.html", "doc/html/man3/PEM_read.html", @@ -16764,6 +19383,7 @@ our %unified_info = ( "doc/html/man3/PKCS12_SAFEBAG_create_cert.html", "doc/html/man3/PKCS12_SAFEBAG_get0_attrs.html", "doc/html/man3/PKCS12_SAFEBAG_get1_cert.html", + "doc/html/man3/PKCS12_SAFEBAG_set0_attrs.html", "doc/html/man3/PKCS12_add1_attr_by_NID.html", "doc/html/man3/PKCS12_add_CSPName_asc.html", "doc/html/man3/PKCS12_add_cert.html", @@ -16855,6 +19475,7 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_sess_set_get_cb.html", "doc/html/man3/SSL_CTX_sessions.html", "doc/html/man3/SSL_CTX_set0_CA_list.html", + "doc/html/man3/SSL_CTX_set1_cert_comp_preference.html", "doc/html/man3/SSL_CTX_set1_curves.html", "doc/html/man3/SSL_CTX_set1_sigalgs.html", "doc/html/man3/SSL_CTX_set1_verify_cert_store.html", @@ -16868,6 +19489,7 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_ct_validation_callback.html", "doc/html/man3/SSL_CTX_set_ctlog_list_file.html", "doc/html/man3/SSL_CTX_set_default_passwd_cb.html", + "doc/html/man3/SSL_CTX_set_domain_flags.html", "doc/html/man3/SSL_CTX_set_generate_session_id.html", "doc/html/man3/SSL_CTX_set_info_callback.html", "doc/html/man3/SSL_CTX_set_keylog_callback.html", @@ -16875,6 +19497,7 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_min_proto_version.html", "doc/html/man3/SSL_CTX_set_mode.html", "doc/html/man3/SSL_CTX_set_msg_callback.html", + "doc/html/man3/SSL_CTX_set_new_pending_conn_cb.html", "doc/html/man3/SSL_CTX_set_num_tickets.html", "doc/html/man3/SSL_CTX_set_options.html", "doc/html/man3/SSL_CTX_set_psk_client_callback.html", @@ -16913,6 +19536,7 @@ our %unified_info = ( "doc/html/man3/SSL_SESSION_print.html", "doc/html/man3/SSL_SESSION_set1_id.html", "doc/html/man3/SSL_accept.html", + "doc/html/man3/SSL_accept_stream.html", "doc/html/man3/SSL_alert_type_string.html", "doc/html/man3/SSL_alloc_buffers.html", "doc/html/man3/SSL_check_chain.html", @@ -16922,59 +19546,90 @@ our %unified_info = ( "doc/html/man3/SSL_export_keying_material.html", "doc/html/man3/SSL_extension_supported.html", "doc/html/man3/SSL_free.html", + "doc/html/man3/SSL_get0_connection.html", + "doc/html/man3/SSL_get0_group_name.html", + "doc/html/man3/SSL_get0_peer_rpk.html", "doc/html/man3/SSL_get0_peer_scts.html", + "doc/html/man3/SSL_get1_builtin_sigalgs.html", "doc/html/man3/SSL_get_SSL_CTX.html", "doc/html/man3/SSL_get_all_async_fds.html", "doc/html/man3/SSL_get_certificate.html", "doc/html/man3/SSL_get_ciphers.html", "doc/html/man3/SSL_get_client_random.html", + "doc/html/man3/SSL_get_conn_close_info.html", "doc/html/man3/SSL_get_current_cipher.html", "doc/html/man3/SSL_get_default_timeout.html", "doc/html/man3/SSL_get_error.html", + "doc/html/man3/SSL_get_event_timeout.html", "doc/html/man3/SSL_get_extms_support.html", "doc/html/man3/SSL_get_fd.html", + "doc/html/man3/SSL_get_handshake_rtt.html", "doc/html/man3/SSL_get_peer_cert_chain.html", "doc/html/man3/SSL_get_peer_certificate.html", "doc/html/man3/SSL_get_peer_signature_nid.html", "doc/html/man3/SSL_get_peer_tmp_key.html", "doc/html/man3/SSL_get_psk_identity.html", "doc/html/man3/SSL_get_rbio.html", + "doc/html/man3/SSL_get_rpoll_descriptor.html", "doc/html/man3/SSL_get_session.html", "doc/html/man3/SSL_get_shared_sigalgs.html", + "doc/html/man3/SSL_get_stream_id.html", + "doc/html/man3/SSL_get_stream_read_state.html", + "doc/html/man3/SSL_get_value_uint.html", "doc/html/man3/SSL_get_verify_result.html", "doc/html/man3/SSL_get_version.html", "doc/html/man3/SSL_group_to_name.html", + "doc/html/man3/SSL_handle_events.html", "doc/html/man3/SSL_in_init.html", + "doc/html/man3/SSL_inject_net_dgram.html", "doc/html/man3/SSL_key_update.html", "doc/html/man3/SSL_library_init.html", "doc/html/man3/SSL_load_client_CA_file.html", "doc/html/man3/SSL_new.html", + "doc/html/man3/SSL_new_domain.html", + "doc/html/man3/SSL_new_listener.html", + "doc/html/man3/SSL_new_stream.html", "doc/html/man3/SSL_pending.html", + "doc/html/man3/SSL_poll.html", "doc/html/man3/SSL_read.html", "doc/html/man3/SSL_read_early_data.html", "doc/html/man3/SSL_rstate_string.html", "doc/html/man3/SSL_session_reused.html", "doc/html/man3/SSL_set1_host.html", + "doc/html/man3/SSL_set1_initial_peer_addr.html", + "doc/html/man3/SSL_set1_server_cert_type.html", "doc/html/man3/SSL_set_async_callback.html", "doc/html/man3/SSL_set_bio.html", + "doc/html/man3/SSL_set_blocking_mode.html", "doc/html/man3/SSL_set_connect_state.html", + "doc/html/man3/SSL_set_default_stream_mode.html", "doc/html/man3/SSL_set_fd.html", + "doc/html/man3/SSL_set_incoming_stream_policy.html", + "doc/html/man3/SSL_set_quic_tls_cbs.html", "doc/html/man3/SSL_set_retry_verify.html", "doc/html/man3/SSL_set_session.html", + "doc/html/man3/SSL_set_session_secret_cb.html", "doc/html/man3/SSL_set_shutdown.html", "doc/html/man3/SSL_set_verify_result.html", "doc/html/man3/SSL_shutdown.html", "doc/html/man3/SSL_state_string.html", + "doc/html/man3/SSL_stream_conclude.html", + "doc/html/man3/SSL_stream_reset.html", "doc/html/man3/SSL_want.html", "doc/html/man3/SSL_write.html", "doc/html/man3/TS_RESP_CTX_new.html", - "doc/html/man3/TS_VERIFY_CTX_set_certs.html", + "doc/html/man3/TS_VERIFY_CTX.html", "doc/html/man3/UI_STRING.html", "doc/html/man3/UI_UTIL_read_pw.html", "doc/html/man3/UI_create_method.html", "doc/html/man3/UI_new.html", "doc/html/man3/X509V3_get_d2i.html", "doc/html/man3/X509V3_set_ctx.html", + "doc/html/man3/X509_ACERT_add1_attr.html", + "doc/html/man3/X509_ACERT_add_attr_nconf.html", + "doc/html/man3/X509_ACERT_get0_holder_baseCertId.html", + "doc/html/man3/X509_ACERT_get_attr.html", + "doc/html/man3/X509_ACERT_print_ex.html", "doc/html/man3/X509_ALGOR_dup.html", "doc/html/man3/X509_ATTRIBUTE.html", "doc/html/man3/X509_CRL_get0_by_serial.html", @@ -16991,6 +19646,7 @@ our %unified_info = ( "doc/html/man3/X509_REQ_get_attr.html", "doc/html/man3/X509_REQ_get_extensions.html", "doc/html/man3/X509_SIG_get0.html", + "doc/html/man3/X509_STORE_CTX_get_by_subject.html", "doc/html/man3/X509_STORE_CTX_get_error.html", "doc/html/man3/X509_STORE_CTX_new.html", "doc/html/man3/X509_STORE_CTX_set_verify_cb.html", @@ -17013,6 +19669,7 @@ our %unified_info = ( "doc/html/man3/X509_get0_notBefore.html", "doc/html/man3/X509_get0_signature.html", "doc/html/man3/X509_get0_uids.html", + "doc/html/man3/X509_get_default_cert_file.html", "doc/html/man3/X509_get_extension_flags.html", "doc/html/man3/X509_get_pubkey.html", "doc/html/man3/X509_get_serialNumber.html", @@ -17058,12 +19715,15 @@ our %unified_info = ( "doc/html/man7/EVP_CIPHER-RC5.html", "doc/html/man7/EVP_CIPHER-SEED.html", "doc/html/man7/EVP_CIPHER-SM4.html", + "doc/html/man7/EVP_KDF-ARGON2.html", "doc/html/man7/EVP_KDF-HKDF.html", + "doc/html/man7/EVP_KDF-HMAC-DRBG.html", "doc/html/man7/EVP_KDF-KB.html", "doc/html/man7/EVP_KDF-KRB5KDF.html", "doc/html/man7/EVP_KDF-PBKDF1.html", "doc/html/man7/EVP_KDF-PBKDF2.html", "doc/html/man7/EVP_KDF-PKCS12KDF.html", + "doc/html/man7/EVP_KDF-PVKKDF.html", "doc/html/man7/EVP_KDF-SCRYPT.html", "doc/html/man7/EVP_KDF-SS.html", "doc/html/man7/EVP_KDF-SSHKDF.html", @@ -17072,7 +19732,10 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-X942-ASN1.html", "doc/html/man7/EVP_KDF-X942-CONCAT.html", "doc/html/man7/EVP_KDF-X963.html", + "doc/html/man7/EVP_KEM-EC.html", + "doc/html/man7/EVP_KEM-ML-KEM.html", "doc/html/man7/EVP_KEM-RSA.html", + "doc/html/man7/EVP_KEM-X25519.html", "doc/html/man7/EVP_KEYEXCH-DH.html", "doc/html/man7/EVP_KEYEXCH-ECDH.html", "doc/html/man7/EVP_KEYEXCH-X25519.html", @@ -17084,6 +19747,7 @@ our %unified_info = ( "doc/html/man7/EVP_MAC-Poly1305.html", "doc/html/man7/EVP_MAC-Siphash.html", "doc/html/man7/EVP_MD-BLAKE2.html", + "doc/html/man7/EVP_MD-KECCAK.html", "doc/html/man7/EVP_MD-MD2.html", "doc/html/man7/EVP_MD-MD4.html", "doc/html/man7/EVP_MD-MD5-SHA1.html", @@ -17103,12 +19767,17 @@ our %unified_info = ( "doc/html/man7/EVP_PKEY-EC.html", "doc/html/man7/EVP_PKEY-FFC.html", "doc/html/man7/EVP_PKEY-HMAC.html", + "doc/html/man7/EVP_PKEY-ML-DSA.html", + "doc/html/man7/EVP_PKEY-ML-KEM.html", "doc/html/man7/EVP_PKEY-RSA.html", + "doc/html/man7/EVP_PKEY-SLH-DSA.html", "doc/html/man7/EVP_PKEY-SM2.html", "doc/html/man7/EVP_PKEY-X25519.html", + "doc/html/man7/EVP_RAND-CRNG-TEST.html", "doc/html/man7/EVP_RAND-CTR-DRBG.html", "doc/html/man7/EVP_RAND-HASH-DRBG.html", "doc/html/man7/EVP_RAND-HMAC-DRBG.html", + "doc/html/man7/EVP_RAND-JITTER.html", "doc/html/man7/EVP_RAND-SEED-SRC.html", "doc/html/man7/EVP_RAND-TEST-RAND.html", "doc/html/man7/EVP_RAND.html", @@ -17116,17 +19785,19 @@ our %unified_info = ( "doc/html/man7/EVP_SIGNATURE-ECDSA.html", "doc/html/man7/EVP_SIGNATURE-ED25519.html", "doc/html/man7/EVP_SIGNATURE-HMAC.html", + "doc/html/man7/EVP_SIGNATURE-ML-DSA.html", "doc/html/man7/EVP_SIGNATURE-RSA.html", + "doc/html/man7/EVP_SIGNATURE-SLH-DSA.html", "doc/html/man7/OSSL_PROVIDER-FIPS.html", "doc/html/man7/OSSL_PROVIDER-base.html", "doc/html/man7/OSSL_PROVIDER-default.html", "doc/html/man7/OSSL_PROVIDER-legacy.html", "doc/html/man7/OSSL_PROVIDER-null.html", + "doc/html/man7/OSSL_STORE-winstore.html", "doc/html/man7/RAND.html", "doc/html/man7/RSA-PSS.html", "doc/html/man7/X25519.html", "doc/html/man7/bio.html", - "doc/html/man7/crypto.html", "doc/html/man7/ct.html", "doc/html/man7/des_modes.html", "doc/html/man7/evp.html", @@ -17137,14 +19808,31 @@ our %unified_info = ( "doc/html/man7/life_cycle-mac.html", "doc/html/man7/life_cycle-pkey.html", "doc/html/man7/life_cycle-rand.html", - "doc/html/man7/migration_guide.html", "doc/html/man7/openssl-core.h.html", "doc/html/man7/openssl-core_dispatch.h.html", "doc/html/man7/openssl-core_names.h.html", "doc/html/man7/openssl-env.html", "doc/html/man7/openssl-glossary.html", + "doc/html/man7/openssl-qlog.html", + "doc/html/man7/openssl-quic-concurrency.html", + "doc/html/man7/openssl-quic.html", "doc/html/man7/openssl-threads.html", "doc/html/man7/openssl_user_macros.html", + "doc/html/man7/ossl-guide-introduction.html", + "doc/html/man7/ossl-guide-libcrypto-introduction.html", + "doc/html/man7/ossl-guide-libraries-introduction.html", + "doc/html/man7/ossl-guide-libssl-introduction.html", + "doc/html/man7/ossl-guide-migration.html", + "doc/html/man7/ossl-guide-quic-client-block.html", + "doc/html/man7/ossl-guide-quic-client-non-block.html", + "doc/html/man7/ossl-guide-quic-introduction.html", + "doc/html/man7/ossl-guide-quic-multi-stream.html", + "doc/html/man7/ossl-guide-quic-server-block.html", + "doc/html/man7/ossl-guide-quic-server-non-block.html", + "doc/html/man7/ossl-guide-tls-client-block.html", + "doc/html/man7/ossl-guide-tls-client-non-block.html", + "doc/html/man7/ossl-guide-tls-introduction.html", + "doc/html/man7/ossl-guide-tls-server-block.html", "doc/html/man7/ossl_store-file.html", "doc/html/man7/ossl_store.html", "doc/html/man7/passphrase-encoding.html", @@ -17163,10 +19851,10 @@ our %unified_info = ( "doc/html/man7/provider-object.html", "doc/html/man7/provider-rand.html", "doc/html/man7/provider-signature.html", + "doc/html/man7/provider-skeymgmt.html", "doc/html/man7/provider-storemgmt.html", "doc/html/man7/provider.html", "doc/html/man7/proxy-certificates.html", - "doc/html/man7/ssl.html", "doc/html/man7/x509.html" ] }, @@ -17181,12 +19869,21 @@ our %unified_info = ( ] }, "includes" => { + "OpenSSLConfig.cmake" => [ + "." + ], + "OpenSSLConfigVersion.cmake" => [ + "." + ], "apps/asn1parse.o" => [ "apps" ], "apps/ca.o" => [ "apps" ], + "apps/ca_internals_test-bin-ca.o" => [ + "apps" + ], "apps/ciphers.o" => [ "apps" ], @@ -17413,6 +20110,9 @@ our %unified_info = ( "apps/openssl-bin-sess_id.o" => [ "apps" ], + "apps/openssl-bin-skeyutl.o" => [ + "apps" + ], "apps/openssl-bin-smime.o" => [ "apps" ], @@ -17500,6 +20200,9 @@ our %unified_info = ( "apps/sess_id.o" => [ "apps" ], + "apps/skeyutl.o" => [ + "apps" + ], "apps/smime.o" => [ "apps" ], @@ -17551,6 +20254,12 @@ our %unified_info = ( "crypto/aes/bsaes-armv7.o" => [ "crypto" ], + "crypto/aes/vpaes-armv8.o" => [ + "crypto" + ], + "crypto/aes/vpaes-loongarch64.o" => [ + "crypto" + ], "crypto/arm64cpuid.o" => [ "crypto" ], @@ -17602,9 +20311,15 @@ our %unified_info = ( "crypto/chacha/chacha-armv4.o" => [ "crypto" ], + "crypto/chacha/chacha-armv8-sve.o" => [ + "crypto" + ], "crypto/chacha/chacha-armv8.o" => [ "crypto" ], + "crypto/chacha/chacha-loongarch64.o" => [ + "crypto" + ], "crypto/chacha/chacha-s390x.o" => [ "crypto" ], @@ -17629,15 +20344,24 @@ our %unified_info = ( "crypto/ec/ecp_s390x_nistp.o" => [ "crypto" ], + "crypto/ec/ecp_sm2p256-armv8.o" => [ + "crypto" + ], + "crypto/ec/ecx_key.o" => [ + "crypto" + ], "crypto/ec/ecx_meth.o" => [ "crypto" ], - "crypto/ec/ecx_s390x.o" => [ + "crypto/ec/libcrypto-lib-ecx_key.o" => [ "crypto" ], "crypto/ec/libcrypto-lib-ecx_meth.o" => [ "crypto" ], + "crypto/ec/libfips-lib-ecx_key.o" => [ + "crypto" + ], "crypto/evp/e_aes.o" => [ "crypto", "crypto/modes" @@ -17709,9 +20433,18 @@ our %unified_info = ( "crypto/libfips-lib-cpuid.o" => [ "." ], + "crypto/md5/md5-aarch64.o" => [ + "crypto" + ], + "crypto/md5/md5-loongarch64.o" => [ + "crypto" + ], "crypto/md5/md5-sparcv9.o" => [ "crypto" ], + "crypto/modes/aes-gcm-armv8-unroll8_64.o" => [ + "crypto" + ], "crypto/modes/aes-gcm-armv8_64.o" => [ "crypto" ], @@ -17736,6 +20469,9 @@ our %unified_info = ( "crypto/modes/libfips-lib-gcm128.o" => [ "crypto" ], + "crypto/params_idx.c" => [ + "util/perl" + ], "crypto/poly1305/poly1305-armv4.o" => [ "crypto" ], @@ -17757,6 +20493,9 @@ our %unified_info = ( "crypto/sha/keccak1600-armv4.o" => [ "crypto" ], + "crypto/sha/keccak1600-armv8.o" => [ + "crypto" + ], "crypto/sha/sha1-armv4-large.o" => [ "crypto" ], @@ -17802,6 +20541,18 @@ our %unified_info = ( "crypto/sha/sha512-sparcv9.o" => [ "crypto" ], + "crypto/sm3/sm3-armv8.o" => [ + "crypto" + ], + "crypto/sm4/sm4-armv8.o" => [ + "crypto" + ], + "crypto/sm4/vpsm4-armv8.o" => [ + "crypto" + ], + "crypto/sm4/vpsm4_ex-armv8.o" => [ + "crypto" + ], "doc/man1/openssl-asn1parse.pod" => [ "doc" ], @@ -17934,6 +20685,9 @@ our %unified_info = ( "doc/man1/openssl-sess_id.pod" => [ "doc" ], + "doc/man1/openssl-skeyutl.pod" => [ + "doc" + ], "doc/man1/openssl-smime.pod" => [ "doc" ], @@ -17961,6 +20715,24 @@ our %unified_info = ( "doc/man1/openssl-x509.pod" => [ "doc" ], + "exporters/OpenSSLConfig.cmake" => [ + "." + ], + "exporters/OpenSSLConfigVersion.cmake" => [ + "." + ], + "exporters/libcrypto.pc" => [ + "." + ], + "exporters/libssl.pc" => [ + "." + ], + "exporters/openssl.pc" => [ + "." + ], + "fuzz/acert-test" => [ + "include" + ], "fuzz/asn1-test" => [ "include" ], @@ -17991,12 +20763,69 @@ our %unified_info = ( "fuzz/ct-test" => [ "include" ], + "fuzz/decoder-test" => [ + "include" + ], + "fuzz/dtlsclient-test" => [ + "include" + ], + "fuzz/dtlsserver-test" => [ + "include" + ], + "fuzz/hashtable-test" => [ + "include" + ], + "fuzz/ml-dsa-test" => [ + "include" + ], + "fuzz/ml-kem-test" => [ + "include" + ], + "fuzz/pem-test" => [ + "include" + ], + "fuzz/provider-test" => [ + "include" + ], + "fuzz/punycode-test" => [ + "include" + ], + "fuzz/quic-client-test" => [ + "include" + ], + "fuzz/quic-lcidm-test" => [ + "include" + ], + "fuzz/quic-rcidm-test" => [ + "include" + ], + "fuzz/quic-server-test" => [ + "include" + ], + "fuzz/quic-srtm-test" => [ + "include" + ], "fuzz/server-test" => [ "include" ], + "fuzz/slh-dsa-test" => [ + "include" + ], + "fuzz/smime-test" => [ + "include" + ], + "fuzz/v3name-test" => [ + "include" + ], "fuzz/x509-test" => [ "include" ], + "include/internal/param_names.h" => [ + "util/perl" + ], + "include/openssl/core_names.h" => [ + "util/perl" + ], "libcrypto" => [ ".", "include", @@ -18007,6 +20836,9 @@ our %unified_info = ( ".", "util/perl/OpenSSL" ], + "libcrypto.pc" => [ + "." + ], "libcrypto.rc" => [ "." ], @@ -18018,9 +20850,15 @@ our %unified_info = ( ".", "util/perl/OpenSSL" ], + "libssl.pc" => [ + "." + ], "libssl.rc" => [ "." ], + "openssl.pc" => [ + "." + ], "providers/common/der/der_digests_gen.c" => [ "providers/common/der" ], @@ -18060,6 +20898,15 @@ our %unified_info = ( "providers/common/der/der_ecx_key.o" => [ "providers/common/include/prov" ], + "providers/common/der/der_ml_dsa_gen.c" => [ + "providers/common/der" + ], + "providers/common/der/der_ml_dsa_gen.o" => [ + "providers/common/include/prov" + ], + "providers/common/der/der_ml_dsa_key.o" => [ + "providers/common/include/prov" + ], "providers/common/der/der_rsa_gen.c" => [ "providers/common/der" ], @@ -18072,6 +20919,15 @@ our %unified_info = ( "providers/common/der/der_rsa_sig.o" => [ "providers/common/include/prov" ], + "providers/common/der/der_slh_dsa_gen.c" => [ + "providers/common/der" + ], + "providers/common/der/der_slh_dsa_gen.o" => [ + "providers/common/include/prov" + ], + "providers/common/der/der_slh_dsa_key.o" => [ + "providers/common/include/prov" + ], "providers/common/der/der_sm2_gen.c" => [ "providers/common/der" ], @@ -18117,12 +20973,24 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ecx_key.o" => [ "providers/common/include/prov" ], + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o" => [ + "providers/common/include/prov" + ], + "providers/common/der/libcommon-lib-der_ml_dsa_key.o" => [ + "providers/common/include/prov" + ], "providers/common/der/libcommon-lib-der_rsa_gen.o" => [ "providers/common/include/prov" ], "providers/common/der/libcommon-lib-der_rsa_key.o" => [ "providers/common/include/prov" ], + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o" => [ + "providers/common/include/prov" + ], + "providers/common/der/libcommon-lib-der_slh_dsa_key.o" => [ + "providers/common/include/prov" + ], "providers/common/der/libcommon-lib-der_wrap_gen.o" => [ "providers/common/include/prov" ], @@ -18153,9 +21021,15 @@ our %unified_info = ( "providers/common/include/prov/der_ecx.h" => [ "providers/common/der" ], + "providers/common/include/prov/der_ml_dsa.h" => [ + "providers/common/der" + ], "providers/common/include/prov/der_rsa.h" => [ "providers/common/der" ], + "providers/common/include/prov/der_slh_dsa.h" => [ + "providers/common/der" + ], "providers/common/include/prov/der_sm2.h" => [ "providers/common/der" ], @@ -18198,9 +21072,15 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-eddsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/libdefault-lib-rsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/libdefault-lib-sm2_sig.o" => [ "providers/common/include/prov" ], @@ -18213,12 +21093,24 @@ our %unified_info = ( "providers/implementations/signature/libfips-lib-eddsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/libfips-lib-rsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o" => [ + "providers/common/include/prov" + ], + "providers/implementations/signature/ml_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/rsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/slh_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/sm2_sig.o" => [ "providers/common/include/prov" ], @@ -18231,28 +21123,39 @@ our %unified_info = ( "crypto", "include", "providers/implementations/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" ], "providers/libdefault.a" => [ ".", "crypto", "include", "providers/implementations/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" ], "providers/libfips.a" => [ ".", "crypto", "include", "providers/implementations/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" ], "providers/liblegacy.a" => [ ".", "crypto", "include", "providers/implementations/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" + ], + "providers/libtemplate.a" => [ + "crypto", + "include", + "providers/implementations/include", + "providers/common/include", + "providers/fips/include" ], "test/aborttest" => [ "include", @@ -18321,6 +21224,14 @@ our %unified_info = ( "include", "apps/include" ], + "test/bio_addr_test" => [ + "include", + "apps/include" + ], + "test/bio_base64_test" => [ + "include", + "apps/include" + ], "test/bio_callback_test" => [ "include", "apps/include" @@ -18329,11 +21240,20 @@ our %unified_info = ( "include", "apps/include" ], + "test/bio_dgram_test" => [ + "include", + "apps/include", + "." + ], "test/bio_enc_test" => [ "include", "apps/include" ], - "test/bio_memleak_test" => [ + "test/bio_memleak_test" => [ + "include", + "apps/include" + ], + "test/bio_meth_test" => [ "include", "apps/include" ], @@ -18350,6 +21270,11 @@ our %unified_info = ( "include", "apps/include" ], + "test/bio_tfo_test" => [ + "include", + "apps/include", + "." + ], "test/bioprinttest" => [ "include", "apps/include" @@ -18364,6 +21289,9 @@ our %unified_info = ( "include", "apps/include" ], + "test/build_wincrypt_test" => [ + "include" + ], "test/buildtest_c_aes" => [ "include" ], @@ -18379,6 +21307,9 @@ our %unified_info = ( "test/buildtest_c_buffer" => [ "include" ], + "test/buildtest_c_byteorder" => [ + "include" + ], "test/buildtest_c_camellia" => [ "include" ], @@ -18403,9 +21334,6 @@ our %unified_info = ( "test/buildtest_c_core_dispatch" => [ "include" ], - "test/buildtest_c_core_names" => [ - "include" - ], "test/buildtest_c_core_object" => [ "include" ], @@ -18430,6 +21358,9 @@ our %unified_info = ( "test/buildtest_c_e_os2" => [ "include" ], + "test/buildtest_c_e_ostime" => [ + "include" + ], "test/buildtest_c_ebcdic" => [ "include" ], @@ -18457,12 +21388,18 @@ our %unified_info = ( "test/buildtest_c_hmac" => [ "include" ], + "test/buildtest_c_hpke" => [ + "include" + ], "test/buildtest_c_http" => [ "include" ], "test/buildtest_c_idea" => [ "include" ], + "test/buildtest_c_indicator" => [ + "include" + ], "test/buildtest_c_kdf" => [ "include" ], @@ -18478,6 +21415,9 @@ our %unified_info = ( "test/buildtest_c_mdc2" => [ "include" ], + "test/buildtest_c_ml_kem" => [ + "include" + ], "test/buildtest_c_modes" => [ "include" ], @@ -18508,6 +21448,9 @@ our %unified_info = ( "test/buildtest_c_provider" => [ "include" ], + "test/buildtest_c_quic" => [ + "include" + ], "test/buildtest_c_rand" => [ "include" ], @@ -18550,6 +21493,9 @@ our %unified_info = ( "test/buildtest_c_symhacks" => [ "include" ], + "test/buildtest_c_thread" => [ + "include" + ], "test/buildtest_c_tls1" => [ "include" ], @@ -18565,10 +21511,24 @@ our %unified_info = ( "test/buildtest_c_whrlpool" => [ "include" ], + "test/byteorder_test" => [ + "include", + "apps/include" + ], + "test/ca_internals_test" => [ + ".", + "include", + "apps/include" + ], "test/casttest" => [ "include", "apps/include" ], + "test/cert_comp_test" => [ + "include", + "apps/include", + "." + ], "test/chacha_internal_test" => [ ".", "include", @@ -18692,6 +21652,11 @@ our %unified_info = ( "include", "apps/include" ], + "test/decoder_propq_test" => [ + ".", + "include", + "apps/include" + ], "test/defltfips_test" => [ "include", "apps/include" @@ -18707,7 +21672,8 @@ our %unified_info = ( "test/drbgtest" => [ "include", "apps/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" ], "test/dsa_no_digest_size_test" => [ "include", @@ -18750,7 +21716,9 @@ our %unified_info = ( "test/endecode_test" => [ ".", "include", - "apps/include" + "apps/include", + "providers/common/include", + "providers/implementations/include" ], "test/endecoder_legacy_test" => [ ".", @@ -18795,6 +21763,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/evp_pkey_dhkem_test" => [ + "include", + "apps/include" + ], "test/evp_pkey_dparams_test" => [ "include", "apps/include" @@ -18803,10 +21775,18 @@ our %unified_info = ( "include", "apps/include" ], + "test/evp_skey_test" => [ + "include", + "apps/include" + ], "test/evp_test" => [ "include", "apps/include" ], + "test/evp_xof_test" => [ + "include", + "apps/include" + ], "test/exdatatest" => [ "include", "apps/include" @@ -18907,22 +21887,62 @@ our %unified_info = ( ".", "include" ], + "test/helpers/json_test-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/helpers/pkcs12.o" => [ ".", "include" ], + "test/helpers/pkcs12_api_test-bin-pkcs12.o" => [ + ".", + "include" + ], "test/helpers/pkcs12_format_test-bin-pkcs12.o" => [ ".", "include" ], + "test/helpers/quic_multistream_test-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quic_newcid_test-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quic_radix_test-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quic_srt_gen_test-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quicapitest-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quicfaultstest-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/helpers/recordlentest-bin-ssltestlib.o" => [ ".", "include" ], + "test/helpers/rpktest-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/helpers/servername_test-bin-ssltestlib.o" => [ ".", "include" ], + "test/helpers/ssl_handshake_rtt_test-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/helpers/ssl_test-bin-handshake.o" => [ ".", "include" @@ -18956,6 +21976,10 @@ our %unified_info = ( ".", "include" ], + "test/helpers/tls13groupselection_test-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/hexstr_test" => [ ".", "include", @@ -18965,6 +21989,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/hpke_test" => [ + "include", + "apps/include" + ], "test/http_test" => [ "include", "apps/include" @@ -18977,6 +22005,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/json_test" => [ + "include", + "apps/include" + ], "test/keymgmt_internal_test" => [ ".", "include", @@ -18991,6 +22023,10 @@ our %unified_info = ( "apps/include", "." ], + "test/list_test" => [ + "include", + "apps/include" + ], "test/localetest" => [ "include", "apps/include" @@ -19004,10 +22040,27 @@ our %unified_info = ( "include", "apps/include" ], + "test/membio_test" => [ + "include", + "apps/include", + "." + ], "test/memleaktest" => [ "include", "apps/include" ], + "test/ml_dsa_test" => [ + "include", + "apps/include" + ], + "test/ml_kem_evp_extra_test" => [ + "include", + "apps/include" + ], + "test/ml_kem_internal_test" => [ + "include", + "apps/include" + ], "test/modes_internal_test" => [ ".", "include", @@ -19042,6 +22095,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/pairwise_fail_test" => [ + "include", + "apps/include" + ], "test/param_build_test" => [ "include", "apps/include" @@ -19075,6 +22132,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/pkcs12_api_test" => [ + "include", + "apps/include" + ], "test/pkcs12_format_test" => [ "include", "apps/include" @@ -19096,6 +22157,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/priority_queue_test" => [ + "include", + "apps/include" + ], "test/property_test" => [ ".", "include", @@ -19109,6 +22174,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/provider_default_search_path_test" => [ + "include", + "apps/include" + ], "test/provider_fallback_test" => [ "include", "apps/include" @@ -19135,6 +22204,97 @@ our %unified_info = ( "include", "apps/include" ], + "test/quic_ackm_test" => [ + "include", + "apps/include" + ], + "test/quic_cc_test" => [ + "include", + "apps/include" + ], + "test/quic_cfq_test" => [ + "include", + "apps/include" + ], + "test/quic_client_test" => [ + "include", + "apps/include" + ], + "test/quic_fc_test" => [ + "include", + "apps/include" + ], + "test/quic_fifd_test" => [ + "include", + "apps/include" + ], + "test/quic_lcidm_test" => [ + "include", + "apps/include" + ], + "test/quic_multistream_test" => [ + "include", + "apps/include" + ], + "test/quic_newcid_test" => [ + "include", + "apps/include", + "." + ], + "test/quic_qlog_test" => [ + "include", + "apps/include" + ], + "test/quic_radix_test" => [ + "include", + "apps/include" + ], + "test/quic_rcidm_test" => [ + "include", + "apps/include" + ], + "test/quic_record_test" => [ + "include", + "apps/include" + ], + "test/quic_srt_gen_test" => [ + "include", + "apps/include", + "." + ], + "test/quic_srtm_test" => [ + "include", + "apps/include" + ], + "test/quic_stream_test" => [ + "include", + "apps/include" + ], + "test/quic_tserver_test" => [ + "include", + "apps/include" + ], + "test/quic_txp_test" => [ + "include", + "apps/include" + ], + "test/quic_txpim_test" => [ + "include", + "apps/include" + ], + "test/quic_wire_test" => [ + "include", + "apps/include" + ], + "test/quicapitest" => [ + "include", + "apps/include" + ], + "test/quicfaultstest" => [ + "include", + "apps/include", + "." + ], "test/rand_status_test" => [ "include", "apps/include" @@ -19155,14 +22315,20 @@ our %unified_info = ( "include", "apps/include" ], - "test/rdrand_sanitytest" => [ + "test/rdcpu_sanitytest" => [ "include", - "apps/include" + "apps/include", + "crypto" ], "test/recordlentest" => [ "include", "apps/include" ], + "test/rpktest" => [ + "include", + "apps/include", + "." + ], "test/rsa_complex" => [ "include", "apps/include" @@ -19181,6 +22347,15 @@ our %unified_info = ( "include", "apps/include" ], + "test/rsa_x931_test" => [ + ".", + "include", + "apps/include" + ], + "test/safe_math_test" => [ + "include", + "apps/include" + ], "test/sanitytest" => [ "include", "apps/include" @@ -19202,6 +22377,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/slh_dsa_test" => [ + "include", + "apps/include" + ], "test/sm2_internal_test" => [ "include", "apps/include" @@ -19232,6 +22411,11 @@ our %unified_info = ( "include", "apps/include" ], + "test/ssl_handshake_rtt_test" => [ + "include", + "apps/include", + "." + ], "test/ssl_old_test" => [ ".", "include", @@ -19248,6 +22432,7 @@ our %unified_info = ( "test/sslapitest" => [ "include", "apps/include", + "providers/common/include", "." ], "test/sslbuffertest" => [ @@ -19262,6 +22447,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/strtoultest" => [ + "include", + "apps/include" + ], "test/sysdefaulttest" => [ "include", "apps/include" @@ -19270,7 +22459,13 @@ our %unified_info = ( "include", "apps/include" ], + "test/threadpool_test" => [ + ".", + "include", + "apps/include" + ], "test/threadstest" => [ + ".", "include", "apps/include" ], @@ -19282,6 +22477,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/time_test" => [ + "include", + "apps/include" + ], "test/tls13ccstest" => [ "include", "apps/include" @@ -19291,6 +22490,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/tls13groupselection_test" => [ + "include", + "apps/include" + ], "test/trace_api_test" => [ ".", "include", @@ -19329,6 +22532,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/x509_acert_test" => [ + "include", + "apps/include" + ], "test/x509_check_cert_pkey_test" => [ "include", "apps/include" @@ -19342,6 +22549,18 @@ our %unified_info = ( "include", "apps/include" ], + "test/x509_load_cert_file_test" => [ + "include", + "apps/include" + ], + "test/x509_req_test" => [ + "include", + "apps/include" + ], + "test/x509_test" => [ + "include", + "apps/include" + ], "test/x509_time_test" => [ "include", "apps/include" @@ -19363,6 +22582,7 @@ our %unified_info = ( "providers/libdefault.a", "providers/libfips.a", "providers/liblegacy.a", + "providers/libtemplate.a", "test/libtestutil.a" ], "mandocs" => { @@ -19415,6 +22635,7 @@ our %unified_info = ( "doc/man/man1/openssl-s_server.1", "doc/man/man1/openssl-s_time.1", "doc/man/man1/openssl-sess_id.1", + "doc/man/man1/openssl-skeyutl.1", "doc/man/man1/openssl-smime.1", "doc/man/man1/openssl-speed.1", "doc/man/man1/openssl-spkac.1", @@ -19464,6 +22685,7 @@ our %unified_info = ( "doc/man/man3/BIO_find_type.3", "doc/man/man3/BIO_get_data.3", "doc/man/man3/BIO_get_ex_new_index.3", + "doc/man/man3/BIO_get_rpoll_descriptor.3", "doc/man/man3/BIO_meth_new.3", "doc/man/man3/BIO_new.3", "doc/man/man3/BIO_new_CMS.3", @@ -19476,11 +22698,13 @@ our %unified_info = ( "doc/man/man3/BIO_s_connect.3", "doc/man/man3/BIO_s_core.3", "doc/man/man3/BIO_s_datagram.3", + "doc/man/man3/BIO_s_dgram_pair.3", "doc/man/man3/BIO_s_fd.3", "doc/man/man3/BIO_s_file.3", "doc/man/man3/BIO_s_mem.3", "doc/man/man3/BIO_s_null.3", "doc/man/man3/BIO_s_socket.3", + "doc/man/man3/BIO_sendmmsg.3", "doc/man/man3/BIO_set_callback.3", "doc/man/man3/BIO_should_retry.3", "doc/man/man3/BIO_socket_wait.3", @@ -19505,6 +22729,7 @@ our %unified_info = ( "doc/man/man3/BN_swap.3", "doc/man/man3/BN_zero.3", "doc/man/man3/BUF_MEM_new.3", + "doc/man/man3/CMAC_CTX.3", "doc/man/man3/CMS_EncryptedData_decrypt.3", "doc/man/man3/CMS_EncryptedData_encrypt.3", "doc/man/man3/CMS_EnvelopedData_create.3", @@ -19527,6 +22752,7 @@ our %unified_info = ( "doc/man/man3/CMS_uncompress.3", "doc/man/man3/CMS_verify.3", "doc/man/man3/CMS_verify_receipt.3", + "doc/man/man3/COMP_CTX_new.3", "doc/man/man3/CONF_modules_free.3", "doc/man/man3/CONF_modules_load_file.3", "doc/man/man3/CRYPTO_THREAD_run_once.3", @@ -19560,6 +22786,8 @@ our %unified_info = ( "doc/man/man3/DSA_size.3", "doc/man/man3/DTLS_get_data_mtu.3", "doc/man/man3/DTLS_set_timer_cb.3", + "doc/man/man3/DTLSv1_get_timeout.3", + "doc/man/man3/DTLSv1_handle_timeout.3", "doc/man/man3/DTLSv1_listen.3", "doc/man/man3/ECDSA_SIG_new.3", "doc/man/man3/ECDSA_sign.3", @@ -19606,6 +22834,7 @@ our %unified_info = ( "doc/man/man3/EVP_PKEY_CTX_ctrl.3", "doc/man/man3/EVP_PKEY_CTX_get0_libctx.3", "doc/man/man3/EVP_PKEY_CTX_get0_pkey.3", + "doc/man/man3/EVP_PKEY_CTX_get_algor.3", "doc/man/man3/EVP_PKEY_CTX_new.3", "doc/man/man3/EVP_PKEY_CTX_set1_pbe_pass.3", "doc/man/man3/EVP_PKEY_CTX_set_hkdf_md.3", @@ -19645,6 +22874,8 @@ our %unified_info = ( "doc/man/man3/EVP_PKEY_verify_recover.3", "doc/man/man3/EVP_RAND.3", "doc/man/man3/EVP_SIGNATURE.3", + "doc/man/man3/EVP_SKEY.3", + "doc/man/man3/EVP_SKEYMGMT.3", "doc/man/man3/EVP_SealInit.3", "doc/man/man3/EVP_SignInit.3", "doc/man/man3/EVP_VerifyInit.3", @@ -19674,6 +22905,7 @@ our %unified_info = ( "doc/man/man3/EVP_sm3.3", "doc/man/man3/EVP_sm4_cbc.3", "doc/man/man3/EVP_whirlpool.3", + "doc/man/man3/GENERAL_NAME.3", "doc/man/man3/HMAC.3", "doc/man/man3/MD5.3", "doc/man/man3/MDC2_Init.3", @@ -19698,14 +22930,18 @@ our %unified_info = ( "doc/man/man3/OPENSSL_init_ssl.3", "doc/man/man3/OPENSSL_instrument_bus.3", "doc/man/man3/OPENSSL_load_builtin_modules.3", + "doc/man/man3/OPENSSL_load_u16_le.3", "doc/man/man3/OPENSSL_malloc.3", + "doc/man/man3/OPENSSL_riscvcap.3", "doc/man/man3/OPENSSL_s390xcap.3", "doc/man/man3/OPENSSL_secure_malloc.3", "doc/man/man3/OPENSSL_strcasecmp.3", "doc/man/man3/OSSL_ALGORITHM.3", "doc/man/man3/OSSL_CALLBACK.3", + "doc/man/man3/OSSL_CMP_ATAV_set0.3", "doc/man/man3/OSSL_CMP_CTX_new.3", "doc/man/man3/OSSL_CMP_HDR_get0_transactionID.3", + "doc/man/man3/OSSL_CMP_ITAV_new_caCerts.3", "doc/man/man3/OSSL_CMP_ITAV_set0.3", "doc/man/man3/OSSL_CMP_MSG_get0_header.3", "doc/man/man3/OSSL_CMP_MSG_http_perform.3", @@ -19729,18 +22965,27 @@ our %unified_info = ( "doc/man/man3/OSSL_ENCODER_CTX.3", "doc/man/man3/OSSL_ENCODER_CTX_new_for_pkey.3", "doc/man/man3/OSSL_ENCODER_to_bio.3", + "doc/man/man3/OSSL_ERR_STATE_save.3", "doc/man/man3/OSSL_ESS_check_signing_certs.3", + "doc/man/man3/OSSL_GENERAL_NAMES_print.3", + "doc/man/man3/OSSL_HPKE_CTX_new.3", "doc/man/man3/OSSL_HTTP_REQ_CTX.3", "doc/man/man3/OSSL_HTTP_parse_url.3", "doc/man/man3/OSSL_HTTP_transfer.3", + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX.3", + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX_print.3", + "doc/man/man3/OSSL_INDICATOR_set_callback.3", "doc/man/man3/OSSL_ITEM.3", "doc/man/man3/OSSL_LIB_CTX.3", + "doc/man/man3/OSSL_LIB_CTX_set_conf_diagnostics.3", "doc/man/man3/OSSL_PARAM.3", "doc/man/man3/OSSL_PARAM_BLD.3", "doc/man/man3/OSSL_PARAM_allocate_from_text.3", "doc/man/man3/OSSL_PARAM_dup.3", "doc/man/man3/OSSL_PARAM_int.3", + "doc/man/man3/OSSL_PARAM_print_to_bio.3", "doc/man/man3/OSSL_PROVIDER.3", + "doc/man/man3/OSSL_QUIC_client_method.3", "doc/man/man3/OSSL_SELF_TEST_new.3", "doc/man/man3/OSSL_SELF_TEST_set_callback.3", "doc/man/man3/OSSL_STORE_INFO.3", @@ -19749,11 +22994,13 @@ our %unified_info = ( "doc/man/man3/OSSL_STORE_attach.3", "doc/man/man3/OSSL_STORE_expect.3", "doc/man/man3/OSSL_STORE_open.3", + "doc/man/man3/OSSL_sleep.3", "doc/man/man3/OSSL_trace_enabled.3", "doc/man/man3/OSSL_trace_get_category_num.3", "doc/man/man3/OSSL_trace_set_channel.3", "doc/man/man3/OpenSSL_add_all_algorithms.3", "doc/man/man3/OpenSSL_version.3", + "doc/man/man3/PBMAC1_get1_pbkdf2_param.3", "doc/man/man3/PEM_X509_INFO_read_bio_ex.3", "doc/man/man3/PEM_bytes_read_bio.3", "doc/man/man3/PEM_read.3", @@ -19766,6 +23013,7 @@ our %unified_info = ( "doc/man/man3/PKCS12_SAFEBAG_create_cert.3", "doc/man/man3/PKCS12_SAFEBAG_get0_attrs.3", "doc/man/man3/PKCS12_SAFEBAG_get1_cert.3", + "doc/man/man3/PKCS12_SAFEBAG_set0_attrs.3", "doc/man/man3/PKCS12_add1_attr_by_NID.3", "doc/man/man3/PKCS12_add_CSPName_asc.3", "doc/man/man3/PKCS12_add_cert.3", @@ -19857,6 +23105,7 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_sess_set_get_cb.3", "doc/man/man3/SSL_CTX_sessions.3", "doc/man/man3/SSL_CTX_set0_CA_list.3", + "doc/man/man3/SSL_CTX_set1_cert_comp_preference.3", "doc/man/man3/SSL_CTX_set1_curves.3", "doc/man/man3/SSL_CTX_set1_sigalgs.3", "doc/man/man3/SSL_CTX_set1_verify_cert_store.3", @@ -19870,6 +23119,7 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_ct_validation_callback.3", "doc/man/man3/SSL_CTX_set_ctlog_list_file.3", "doc/man/man3/SSL_CTX_set_default_passwd_cb.3", + "doc/man/man3/SSL_CTX_set_domain_flags.3", "doc/man/man3/SSL_CTX_set_generate_session_id.3", "doc/man/man3/SSL_CTX_set_info_callback.3", "doc/man/man3/SSL_CTX_set_keylog_callback.3", @@ -19877,6 +23127,7 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_min_proto_version.3", "doc/man/man3/SSL_CTX_set_mode.3", "doc/man/man3/SSL_CTX_set_msg_callback.3", + "doc/man/man3/SSL_CTX_set_new_pending_conn_cb.3", "doc/man/man3/SSL_CTX_set_num_tickets.3", "doc/man/man3/SSL_CTX_set_options.3", "doc/man/man3/SSL_CTX_set_psk_client_callback.3", @@ -19915,6 +23166,7 @@ our %unified_info = ( "doc/man/man3/SSL_SESSION_print.3", "doc/man/man3/SSL_SESSION_set1_id.3", "doc/man/man3/SSL_accept.3", + "doc/man/man3/SSL_accept_stream.3", "doc/man/man3/SSL_alert_type_string.3", "doc/man/man3/SSL_alloc_buffers.3", "doc/man/man3/SSL_check_chain.3", @@ -19924,59 +23176,90 @@ our %unified_info = ( "doc/man/man3/SSL_export_keying_material.3", "doc/man/man3/SSL_extension_supported.3", "doc/man/man3/SSL_free.3", + "doc/man/man3/SSL_get0_connection.3", + "doc/man/man3/SSL_get0_group_name.3", + "doc/man/man3/SSL_get0_peer_rpk.3", "doc/man/man3/SSL_get0_peer_scts.3", + "doc/man/man3/SSL_get1_builtin_sigalgs.3", "doc/man/man3/SSL_get_SSL_CTX.3", "doc/man/man3/SSL_get_all_async_fds.3", "doc/man/man3/SSL_get_certificate.3", "doc/man/man3/SSL_get_ciphers.3", "doc/man/man3/SSL_get_client_random.3", + "doc/man/man3/SSL_get_conn_close_info.3", "doc/man/man3/SSL_get_current_cipher.3", "doc/man/man3/SSL_get_default_timeout.3", "doc/man/man3/SSL_get_error.3", + "doc/man/man3/SSL_get_event_timeout.3", "doc/man/man3/SSL_get_extms_support.3", "doc/man/man3/SSL_get_fd.3", + "doc/man/man3/SSL_get_handshake_rtt.3", "doc/man/man3/SSL_get_peer_cert_chain.3", "doc/man/man3/SSL_get_peer_certificate.3", "doc/man/man3/SSL_get_peer_signature_nid.3", "doc/man/man3/SSL_get_peer_tmp_key.3", "doc/man/man3/SSL_get_psk_identity.3", "doc/man/man3/SSL_get_rbio.3", + "doc/man/man3/SSL_get_rpoll_descriptor.3", "doc/man/man3/SSL_get_session.3", "doc/man/man3/SSL_get_shared_sigalgs.3", + "doc/man/man3/SSL_get_stream_id.3", + "doc/man/man3/SSL_get_stream_read_state.3", + "doc/man/man3/SSL_get_value_uint.3", "doc/man/man3/SSL_get_verify_result.3", "doc/man/man3/SSL_get_version.3", "doc/man/man3/SSL_group_to_name.3", + "doc/man/man3/SSL_handle_events.3", "doc/man/man3/SSL_in_init.3", + "doc/man/man3/SSL_inject_net_dgram.3", "doc/man/man3/SSL_key_update.3", "doc/man/man3/SSL_library_init.3", "doc/man/man3/SSL_load_client_CA_file.3", "doc/man/man3/SSL_new.3", + "doc/man/man3/SSL_new_domain.3", + "doc/man/man3/SSL_new_listener.3", + "doc/man/man3/SSL_new_stream.3", "doc/man/man3/SSL_pending.3", + "doc/man/man3/SSL_poll.3", "doc/man/man3/SSL_read.3", "doc/man/man3/SSL_read_early_data.3", "doc/man/man3/SSL_rstate_string.3", "doc/man/man3/SSL_session_reused.3", "doc/man/man3/SSL_set1_host.3", + "doc/man/man3/SSL_set1_initial_peer_addr.3", + "doc/man/man3/SSL_set1_server_cert_type.3", "doc/man/man3/SSL_set_async_callback.3", "doc/man/man3/SSL_set_bio.3", + "doc/man/man3/SSL_set_blocking_mode.3", "doc/man/man3/SSL_set_connect_state.3", + "doc/man/man3/SSL_set_default_stream_mode.3", "doc/man/man3/SSL_set_fd.3", + "doc/man/man3/SSL_set_incoming_stream_policy.3", + "doc/man/man3/SSL_set_quic_tls_cbs.3", "doc/man/man3/SSL_set_retry_verify.3", "doc/man/man3/SSL_set_session.3", + "doc/man/man3/SSL_set_session_secret_cb.3", "doc/man/man3/SSL_set_shutdown.3", "doc/man/man3/SSL_set_verify_result.3", "doc/man/man3/SSL_shutdown.3", "doc/man/man3/SSL_state_string.3", + "doc/man/man3/SSL_stream_conclude.3", + "doc/man/man3/SSL_stream_reset.3", "doc/man/man3/SSL_want.3", "doc/man/man3/SSL_write.3", "doc/man/man3/TS_RESP_CTX_new.3", - "doc/man/man3/TS_VERIFY_CTX_set_certs.3", + "doc/man/man3/TS_VERIFY_CTX.3", "doc/man/man3/UI_STRING.3", "doc/man/man3/UI_UTIL_read_pw.3", "doc/man/man3/UI_create_method.3", "doc/man/man3/UI_new.3", "doc/man/man3/X509V3_get_d2i.3", "doc/man/man3/X509V3_set_ctx.3", + "doc/man/man3/X509_ACERT_add1_attr.3", + "doc/man/man3/X509_ACERT_add_attr_nconf.3", + "doc/man/man3/X509_ACERT_get0_holder_baseCertId.3", + "doc/man/man3/X509_ACERT_get_attr.3", + "doc/man/man3/X509_ACERT_print_ex.3", "doc/man/man3/X509_ALGOR_dup.3", "doc/man/man3/X509_ATTRIBUTE.3", "doc/man/man3/X509_CRL_get0_by_serial.3", @@ -19993,6 +23276,7 @@ our %unified_info = ( "doc/man/man3/X509_REQ_get_attr.3", "doc/man/man3/X509_REQ_get_extensions.3", "doc/man/man3/X509_SIG_get0.3", + "doc/man/man3/X509_STORE_CTX_get_by_subject.3", "doc/man/man3/X509_STORE_CTX_get_error.3", "doc/man/man3/X509_STORE_CTX_new.3", "doc/man/man3/X509_STORE_CTX_set_verify_cb.3", @@ -20015,6 +23299,7 @@ our %unified_info = ( "doc/man/man3/X509_get0_notBefore.3", "doc/man/man3/X509_get0_signature.3", "doc/man/man3/X509_get0_uids.3", + "doc/man/man3/X509_get_default_cert_file.3", "doc/man/man3/X509_get_extension_flags.3", "doc/man/man3/X509_get_pubkey.3", "doc/man/man3/X509_get_serialNumber.3", @@ -20060,12 +23345,15 @@ our %unified_info = ( "doc/man/man7/EVP_CIPHER-RC5.7", "doc/man/man7/EVP_CIPHER-SEED.7", "doc/man/man7/EVP_CIPHER-SM4.7", + "doc/man/man7/EVP_KDF-ARGON2.7", "doc/man/man7/EVP_KDF-HKDF.7", + "doc/man/man7/EVP_KDF-HMAC-DRBG.7", "doc/man/man7/EVP_KDF-KB.7", "doc/man/man7/EVP_KDF-KRB5KDF.7", "doc/man/man7/EVP_KDF-PBKDF1.7", "doc/man/man7/EVP_KDF-PBKDF2.7", "doc/man/man7/EVP_KDF-PKCS12KDF.7", + "doc/man/man7/EVP_KDF-PVKKDF.7", "doc/man/man7/EVP_KDF-SCRYPT.7", "doc/man/man7/EVP_KDF-SS.7", "doc/man/man7/EVP_KDF-SSHKDF.7", @@ -20074,7 +23362,10 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-X942-ASN1.7", "doc/man/man7/EVP_KDF-X942-CONCAT.7", "doc/man/man7/EVP_KDF-X963.7", + "doc/man/man7/EVP_KEM-EC.7", + "doc/man/man7/EVP_KEM-ML-KEM.7", "doc/man/man7/EVP_KEM-RSA.7", + "doc/man/man7/EVP_KEM-X25519.7", "doc/man/man7/EVP_KEYEXCH-DH.7", "doc/man/man7/EVP_KEYEXCH-ECDH.7", "doc/man/man7/EVP_KEYEXCH-X25519.7", @@ -20086,6 +23377,7 @@ our %unified_info = ( "doc/man/man7/EVP_MAC-Poly1305.7", "doc/man/man7/EVP_MAC-Siphash.7", "doc/man/man7/EVP_MD-BLAKE2.7", + "doc/man/man7/EVP_MD-KECCAK.7", "doc/man/man7/EVP_MD-MD2.7", "doc/man/man7/EVP_MD-MD4.7", "doc/man/man7/EVP_MD-MD5-SHA1.7", @@ -20105,12 +23397,17 @@ our %unified_info = ( "doc/man/man7/EVP_PKEY-EC.7", "doc/man/man7/EVP_PKEY-FFC.7", "doc/man/man7/EVP_PKEY-HMAC.7", + "doc/man/man7/EVP_PKEY-ML-DSA.7", + "doc/man/man7/EVP_PKEY-ML-KEM.7", "doc/man/man7/EVP_PKEY-RSA.7", + "doc/man/man7/EVP_PKEY-SLH-DSA.7", "doc/man/man7/EVP_PKEY-SM2.7", "doc/man/man7/EVP_PKEY-X25519.7", + "doc/man/man7/EVP_RAND-CRNG-TEST.7", "doc/man/man7/EVP_RAND-CTR-DRBG.7", "doc/man/man7/EVP_RAND-HASH-DRBG.7", "doc/man/man7/EVP_RAND-HMAC-DRBG.7", + "doc/man/man7/EVP_RAND-JITTER.7", "doc/man/man7/EVP_RAND-SEED-SRC.7", "doc/man/man7/EVP_RAND-TEST-RAND.7", "doc/man/man7/EVP_RAND.7", @@ -20118,17 +23415,19 @@ our %unified_info = ( "doc/man/man7/EVP_SIGNATURE-ECDSA.7", "doc/man/man7/EVP_SIGNATURE-ED25519.7", "doc/man/man7/EVP_SIGNATURE-HMAC.7", + "doc/man/man7/EVP_SIGNATURE-ML-DSA.7", "doc/man/man7/EVP_SIGNATURE-RSA.7", + "doc/man/man7/EVP_SIGNATURE-SLH-DSA.7", "doc/man/man7/OSSL_PROVIDER-FIPS.7", "doc/man/man7/OSSL_PROVIDER-base.7", "doc/man/man7/OSSL_PROVIDER-default.7", "doc/man/man7/OSSL_PROVIDER-legacy.7", "doc/man/man7/OSSL_PROVIDER-null.7", + "doc/man/man7/OSSL_STORE-winstore.7", "doc/man/man7/RAND.7", "doc/man/man7/RSA-PSS.7", "doc/man/man7/X25519.7", "doc/man/man7/bio.7", - "doc/man/man7/crypto.7", "doc/man/man7/ct.7", "doc/man/man7/des_modes.7", "doc/man/man7/evp.7", @@ -20139,14 +23438,31 @@ our %unified_info = ( "doc/man/man7/life_cycle-mac.7", "doc/man/man7/life_cycle-pkey.7", "doc/man/man7/life_cycle-rand.7", - "doc/man/man7/migration_guide.7", "doc/man/man7/openssl-core.h.7", "doc/man/man7/openssl-core_dispatch.h.7", "doc/man/man7/openssl-core_names.h.7", "doc/man/man7/openssl-env.7", "doc/man/man7/openssl-glossary.7", + "doc/man/man7/openssl-qlog.7", + "doc/man/man7/openssl-quic-concurrency.7", + "doc/man/man7/openssl-quic.7", "doc/man/man7/openssl-threads.7", "doc/man/man7/openssl_user_macros.7", + "doc/man/man7/ossl-guide-introduction.7", + "doc/man/man7/ossl-guide-libcrypto-introduction.7", + "doc/man/man7/ossl-guide-libraries-introduction.7", + "doc/man/man7/ossl-guide-libssl-introduction.7", + "doc/man/man7/ossl-guide-migration.7", + "doc/man/man7/ossl-guide-quic-client-block.7", + "doc/man/man7/ossl-guide-quic-client-non-block.7", + "doc/man/man7/ossl-guide-quic-introduction.7", + "doc/man/man7/ossl-guide-quic-multi-stream.7", + "doc/man/man7/ossl-guide-quic-server-block.7", + "doc/man/man7/ossl-guide-quic-server-non-block.7", + "doc/man/man7/ossl-guide-tls-client-block.7", + "doc/man/man7/ossl-guide-tls-client-non-block.7", + "doc/man/man7/ossl-guide-tls-introduction.7", + "doc/man/man7/ossl-guide-tls-server-block.7", "doc/man/man7/ossl_store-file.7", "doc/man/man7/ossl_store.7", "doc/man/man7/passphrase-encoding.7", @@ -20165,10 +23481,10 @@ our %unified_info = ( "doc/man/man7/provider-object.7", "doc/man/man7/provider-rand.7", "doc/man/man7/provider-signature.7", + "doc/man/man7/provider-skeymgmt.7", "doc/man/man7/provider-storemgmt.7", "doc/man/man7/provider.7", "doc/man/man7/proxy-certificates.7", - "doc/man/man7/ssl.7", "doc/man/man7/x509.7" ] }, @@ -20180,6 +23496,7 @@ our %unified_info = ( ], "programs" => [ "apps/openssl", + "fuzz/acert-test", "fuzz/asn1-test", "fuzz/asn1parse-test", "fuzz/bignum-test", @@ -20190,7 +23507,24 @@ our %unified_info = ( "fuzz/conf-test", "fuzz/crl-test", "fuzz/ct-test", + "fuzz/decoder-test", + "fuzz/dtlsclient-test", + "fuzz/dtlsserver-test", + "fuzz/hashtable-test", + "fuzz/ml-dsa-test", + "fuzz/ml-kem-test", + "fuzz/pem-test", + "fuzz/provider-test", + "fuzz/punycode-test", + "fuzz/quic-client-test", + "fuzz/quic-lcidm-test", + "fuzz/quic-rcidm-test", + "fuzz/quic-server-test", + "fuzz/quic-srtm-test", "fuzz/server-test", + "fuzz/slh-dsa-test", + "fuzz/smime-test", + "fuzz/v3name-test", "fuzz/x509-test", "test/aborttest", "test/acvp_test", @@ -20208,21 +23542,28 @@ our %unified_info = ( "test/asynctest", "test/bad_dtls_test", "test/bftest", + "test/bio_addr_test", + "test/bio_base64_test", "test/bio_callback_test", "test/bio_core_test", + "test/bio_dgram_test", "test/bio_enc_test", "test/bio_memleak_test", + "test/bio_meth_test", "test/bio_prefix_text", "test/bio_pw_callback_test", "test/bio_readbuffer_test", + "test/bio_tfo_test", "test/bioprinttest", "test/bn_internal_test", "test/bntest", + "test/build_wincrypt_test", "test/buildtest_c_aes", "test/buildtest_c_async", "test/buildtest_c_blowfish", "test/buildtest_c_bn", "test/buildtest_c_buffer", + "test/buildtest_c_byteorder", "test/buildtest_c_camellia", "test/buildtest_c_cast", "test/buildtest_c_cmac", @@ -20231,7 +23572,6 @@ our %unified_info = ( "test/buildtest_c_conftypes", "test/buildtest_c_core", "test/buildtest_c_core_dispatch", - "test/buildtest_c_core_names", "test/buildtest_c_core_object", "test/buildtest_c_cryptoerr_legacy", "test/buildtest_c_decoder", @@ -20240,6 +23580,7 @@ our %unified_info = ( "test/buildtest_c_dsa", "test/buildtest_c_dtls1", "test/buildtest_c_e_os2", + "test/buildtest_c_e_ostime", "test/buildtest_c_ebcdic", "test/buildtest_c_ec", "test/buildtest_c_ecdh", @@ -20249,13 +23590,16 @@ our %unified_info = ( "test/buildtest_c_evp", "test/buildtest_c_fips_names", "test/buildtest_c_hmac", + "test/buildtest_c_hpke", "test/buildtest_c_http", "test/buildtest_c_idea", + "test/buildtest_c_indicator", "test/buildtest_c_kdf", "test/buildtest_c_macros", "test/buildtest_c_md4", "test/buildtest_c_md5", "test/buildtest_c_mdc2", + "test/buildtest_c_ml_kem", "test/buildtest_c_modes", "test/buildtest_c_obj_mac", "test/buildtest_c_objects", @@ -20266,6 +23610,7 @@ our %unified_info = ( "test/buildtest_c_pem2", "test/buildtest_c_prov_ssl", "test/buildtest_c_provider", + "test/buildtest_c_quic", "test/buildtest_c_rand", "test/buildtest_c_rc2", "test/buildtest_c_rc4", @@ -20280,11 +23625,14 @@ our %unified_info = ( "test/buildtest_c_stack", "test/buildtest_c_store", "test/buildtest_c_symhacks", + "test/buildtest_c_thread", "test/buildtest_c_tls1", "test/buildtest_c_ts", "test/buildtest_c_txt_db", "test/buildtest_c_types", "test/buildtest_c_whrlpool", + "test/byteorder_test", + "test/ca_internals_test", "test/casttest", "test/chacha_internal_test", "test/cipher_overhead_test", @@ -20313,6 +23661,7 @@ our %unified_info = ( "test/curve448_internal_test", "test/d2i_test", "test/danetest", + "test/decoder_propq_test", "test/defltfips_test", "test/destest", "test/dhtest", @@ -20337,9 +23686,12 @@ our %unified_info = ( "test/evp_kdf_test", "test/evp_libctx_test", "test/evp_pkey_ctx_new_from_name", + "test/evp_pkey_dhkem_test", "test/evp_pkey_dparams_test", "test/evp_pkey_provided_test", + "test/evp_skey_test", "test/evp_test", + "test/evp_xof_test", "test/exdatatest", "test/exptest", "test/ext_internal_test", @@ -20349,21 +23701,29 @@ our %unified_info = ( "test/gmdifftest", "test/hexstr_test", "test/hmactest", + "test/hpke_test", "test/http_test", "test/ideatest", "test/igetest", + "test/json_test", "test/keymgmt_internal_test", "test/lhash_test", + "test/list_test", "test/localetest", "test/mdc2_internal_test", "test/mdc2test", + "test/membio_test", "test/memleaktest", + "test/ml_dsa_test", + "test/ml_kem_evp_extra_test", + "test/ml_kem_internal_test", "test/modes_internal_test", "test/namemap_internal_test", "test/nodefltctxtest", "test/ocspapitest", "test/ossl_store_test", "test/packettest", + "test/pairwise_fail_test", "test/param_build_test", "test/params_api_test", "test/params_conversion_test", @@ -20372,36 +23732,65 @@ our %unified_info = ( "test/pbetest", "test/pem_read_depr_test", "test/pemtest", + "test/pkcs12_api_test", "test/pkcs12_format_test", "test/pkcs7_test", "test/pkey_meth_kdf_test", "test/pkey_meth_test", "test/poly1305_internal_test", + "test/priority_queue_test", "test/property_test", "test/prov_config_test", "test/provfetchtest", + "test/provider_default_search_path_test", "test/provider_fallback_test", "test/provider_internal_test", "test/provider_pkey_test", "test/provider_status_test", "test/provider_test", "test/punycode_test", + "test/quic_ackm_test", + "test/quic_cc_test", + "test/quic_cfq_test", + "test/quic_client_test", + "test/quic_fc_test", + "test/quic_fifd_test", + "test/quic_lcidm_test", + "test/quic_multistream_test", + "test/quic_newcid_test", + "test/quic_qlog_test", + "test/quic_radix_test", + "test/quic_rcidm_test", + "test/quic_record_test", + "test/quic_srt_gen_test", + "test/quic_srtm_test", + "test/quic_stream_test", + "test/quic_tserver_test", + "test/quic_txp_test", + "test/quic_txpim_test", + "test/quic_wire_test", + "test/quicapitest", + "test/quicfaultstest", "test/rand_status_test", "test/rand_test", "test/rc2test", "test/rc4test", "test/rc5test", - "test/rdrand_sanitytest", + "test/rdcpu_sanitytest", "test/recordlentest", + "test/rpktest", "test/rsa_complex", "test/rsa_mp_test", "test/rsa_sp800_56b_test", "test/rsa_test", + "test/rsa_x931_test", + "test/safe_math_test", "test/sanitytest", "test/secmemtest", "test/servername_test", "test/sha_test", "test/siphash_internal_test", + "test/slh_dsa_test", "test/sm2_internal_test", "test/sm3_internal_test", "test/sm4_internal_test", @@ -20409,6 +23798,7 @@ our %unified_info = ( "test/srptest", "test/ssl_cert_table_internal_test", "test/ssl_ctx_test", + "test/ssl_handshake_rtt_test", "test/ssl_old_test", "test/ssl_test", "test/ssl_test_ctx_test", @@ -20416,13 +23806,17 @@ our %unified_info = ( "test/sslbuffertest", "test/sslcorrupttest", "test/stack_test", + "test/strtoultest", "test/sysdefaulttest", "test/test_test", + "test/threadpool_test", "test/threadstest", "test/threadstest_fips", "test/time_offset_test", + "test/time_test", "test/tls13ccstest", "test/tls13encryptiontest", + "test/tls13groupselection_test", "test/trace_api_test", "test/uitest", "test/upcallstest", @@ -20432,9 +23826,13 @@ our %unified_info = ( "test/verify_extra_test", "test/versions", "test/wpackettest", + "test/x509_acert_test", "test/x509_check_cert_pkey_test", "test/x509_dup_cert_test", "test/x509_internal_test", + "test/x509_load_cert_file_test", + "test/x509_req_test", + "test/x509_test", "test/x509_time_test", "test/x509aux" ], @@ -20449,6 +23847,33 @@ our %unified_info = ( "apps/CA.pl" => [ "apps/CA.pl.in" ], + "apps/ca_internals_test-bin-ca.o" => [ + "apps/ca.c" + ], + "apps/lib/ca_internals_test-bin-app_libctx.o" => [ + "apps/lib/app_libctx.c" + ], + "apps/lib/ca_internals_test-bin-app_provider.o" => [ + "apps/lib/app_provider.c" + ], + "apps/lib/ca_internals_test-bin-app_rand.o" => [ + "apps/lib/app_rand.c" + ], + "apps/lib/ca_internals_test-bin-app_x509.o" => [ + "apps/lib/app_x509.c" + ], + "apps/lib/ca_internals_test-bin-apps.o" => [ + "apps/lib/apps.c" + ], + "apps/lib/ca_internals_test-bin-apps_ui.o" => [ + "apps/lib/apps_ui.c" + ], + "apps/lib/ca_internals_test-bin-engine.o" => [ + "apps/lib/engine.c" + ], + "apps/lib/ca_internals_test-bin-fmt.o" => [ + "apps/lib/fmt.c" + ], "apps/lib/cmp_client_test-bin-cmp_mock_srv.o" => [ "apps/lib/cmp_mock_srv.c" ], @@ -20470,6 +23895,9 @@ our %unified_info = ( "apps/lib/libapps-lib-apps.o" => [ "apps/lib/apps.c" ], + "apps/lib/libapps-lib-apps_opt_printf.o" => [ + "apps/lib/apps_opt_printf.c" + ], "apps/lib/libapps-lib-apps_ui.o" => [ "apps/lib/apps_ui.c" ], @@ -20488,6 +23916,9 @@ our %unified_info = ( "apps/lib/libapps-lib-http_server.o" => [ "apps/lib/http_server.c" ], + "apps/lib/libapps-lib-log.o" => [ + "apps/lib/log.c" + ], "apps/lib/libapps-lib-names.o" => [ "apps/lib/names.c" ], @@ -20525,12 +23956,14 @@ our %unified_info = ( "apps/lib/libapps-lib-app_rand.o", "apps/lib/libapps-lib-app_x509.o", "apps/lib/libapps-lib-apps.o", + "apps/lib/libapps-lib-apps_opt_printf.o", "apps/lib/libapps-lib-apps_ui.o", "apps/lib/libapps-lib-columns.o", "apps/lib/libapps-lib-engine.o", "apps/lib/libapps-lib-engine_loader.o", "apps/lib/libapps-lib-fmt.o", "apps/lib/libapps-lib-http_server.o", + "apps/lib/libapps-lib-log.o", "apps/lib/libapps-lib-names.o", "apps/lib/libapps-lib-opt.o", "apps/lib/libapps-lib-s_cb.o", @@ -20586,6 +24019,7 @@ our %unified_info = ( "apps/openssl-bin-s_server.o", "apps/openssl-bin-s_time.o", "apps/openssl-bin-sess_id.o", + "apps/openssl-bin-skeyutl.o", "apps/openssl-bin-smime.o", "apps/openssl-bin-speed.o", "apps/openssl-bin-spkac.o", @@ -20734,6 +24168,9 @@ our %unified_info = ( "apps/openssl-bin-sess_id.o" => [ "apps/sess_id.c" ], + "apps/openssl-bin-skeyutl.o" => [ + "apps/skeyutl.c" + ], "apps/openssl-bin-smime.o" => [ "apps/smime.c" ], @@ -20803,6 +24240,12 @@ our %unified_info = ( "crypto/aria/libcrypto-lib-aria.o" => [ "crypto/aria/aria.c" ], + "crypto/asn1/asn1_time_test-bin-a_time.o" => [ + "crypto/asn1/a_time.c" + ], + "crypto/asn1/ca_internals_test-bin-a_time.o" => [ + "crypto/asn1/a_time.c" + ], "crypto/asn1/libcrypto-lib-a_bitstr.o" => [ "crypto/asn1/a_bitstr.c" ], @@ -20995,6 +24438,9 @@ our %unified_info = ( "crypto/asn1/libcrypto-lib-x_val.o" => [ "crypto/asn1/x_val.c" ], + "crypto/asn1_time_test-bin-ctype.o" => [ + "crypto/ctype.c" + ], "crypto/async/arch/libcrypto-lib-async_null.o" => [ "crypto/async/arch/async_null.c" ], @@ -21088,6 +24534,9 @@ our %unified_info = ( "crypto/bio/libcrypto-lib-bss_dgram.o" => [ "crypto/bio/bss_dgram.c" ], + "crypto/bio/libcrypto-lib-bss_dgram_pair.o" => [ + "crypto/bio/bss_dgram_pair.c" + ], "crypto/bio/libcrypto-lib-bss_fd.o" => [ "crypto/bio/bss_fd.c" ], @@ -21301,6 +24750,9 @@ our %unified_info = ( "crypto/buffer/libfips-lib-buffer.o" => [ "crypto/buffer/buffer.c" ], + "crypto/ca_internals_test-bin-ctype.o" => [ + "crypto/ctype.c" + ], "crypto/camellia/libcrypto-lib-camellia.o" => [ "crypto/camellia/camellia.c" ], @@ -21358,6 +24810,9 @@ our %unified_info = ( "crypto/cmp/libcrypto-lib-cmp_err.o" => [ "crypto/cmp/cmp_err.c" ], + "crypto/cmp/libcrypto-lib-cmp_genm.o" => [ + "crypto/cmp/cmp_genm.c" + ], "crypto/cmp/libcrypto-lib-cmp_hdr.o" => [ "crypto/cmp/cmp_hdr.c" ], @@ -22033,9 +25488,15 @@ our %unified_info = ( "crypto/err/libcrypto-lib-err_blocks.o" => [ "crypto/err/err_blocks.c" ], + "crypto/err/libcrypto-lib-err_mark.o" => [ + "crypto/err/err_mark.c" + ], "crypto/err/libcrypto-lib-err_prn.o" => [ "crypto/err/err_prn.c" ], + "crypto/err/libcrypto-lib-err_save.o" => [ + "crypto/err/err_save.c" + ], "crypto/ess/libcrypto-lib-ess_asn1.o" => [ "crypto/ess/ess_asn1.c" ], @@ -22282,9 +25743,15 @@ our %unified_info = ( "crypto/evp/libcrypto-lib-pmeth_lib.o" => [ "crypto/evp/pmeth_lib.c" ], + "crypto/evp/libcrypto-lib-s_lib.o" => [ + "crypto/evp/s_lib.c" + ], "crypto/evp/libcrypto-lib-signature.o" => [ "crypto/evp/signature.c" ], + "crypto/evp/libcrypto-lib-skeymgmt_meth.o" => [ + "crypto/evp/skeymgmt_meth.c" + ], "crypto/evp/libfips-lib-asymcipher.o" => [ "crypto/evp/asymcipher.c" ], @@ -22330,9 +25797,6 @@ our %unified_info = ( "crypto/evp/libfips-lib-keymgmt_meth.o" => [ "crypto/evp/keymgmt_meth.c" ], - "crypto/evp/libfips-lib-m_sigver.o" => [ - "crypto/evp/m_sigver.c" - ], "crypto/evp/libfips-lib-mac_lib.o" => [ "crypto/evp/mac_lib.c" ], @@ -22351,9 +25815,15 @@ our %unified_info = ( "crypto/evp/libfips-lib-pmeth_lib.o" => [ "crypto/evp/pmeth_lib.c" ], + "crypto/evp/libfips-lib-s_lib.o" => [ + "crypto/evp/s_lib.c" + ], "crypto/evp/libfips-lib-signature.o" => [ "crypto/evp/signature.c" ], + "crypto/evp/libfips-lib-skeymgmt_meth.o" => [ + "crypto/evp/skeymgmt_meth.c" + ], "crypto/ffc/libcrypto-lib-ffc_backend.o" => [ "crypto/ffc/ffc_backend.c" ], @@ -22396,12 +25866,30 @@ our %unified_info = ( "crypto/ffc/libfips-lib-ffc_params_validate.o" => [ "crypto/ffc/ffc_params_validate.c" ], + "crypto/hashtable/libcrypto-lib-hashfunc.o" => [ + "crypto/hashtable/hashfunc.c" + ], + "crypto/hashtable/libcrypto-lib-hashtable.o" => [ + "crypto/hashtable/hashtable.c" + ], + "crypto/hashtable/libfips-lib-hashfunc.o" => [ + "crypto/hashtable/hashfunc.c" + ], + "crypto/hashtable/libfips-lib-hashtable.o" => [ + "crypto/hashtable/hashtable.c" + ], "crypto/hmac/libcrypto-lib-hmac.o" => [ "crypto/hmac/hmac.c" ], "crypto/hmac/libfips-lib-hmac.o" => [ "crypto/hmac/hmac.c" ], + "crypto/hpke/libcrypto-lib-hpke.o" => [ + "crypto/hpke/hpke.c" + ], + "crypto/hpke/libcrypto-lib-hpke_util.o" => [ + "crypto/hpke/hpke_util.c" + ], "crypto/http/libcrypto-lib-http_client.o" => [ "crypto/http/http_client.c" ], @@ -22444,6 +25932,9 @@ our %unified_info = ( "crypto/libcrypto-lib-bsearch.o" => [ "crypto/bsearch.c" ], + "crypto/libcrypto-lib-comp_methods.o" => [ + "crypto/comp_methods.c" + ], "crypto/libcrypto-lib-context.o" => [ "crypto/context.c" ], @@ -22471,9 +25962,15 @@ our %unified_info = ( "crypto/libcrypto-lib-cversion.o" => [ "crypto/cversion.c" ], + "crypto/libcrypto-lib-defaults.o" => [ + "crypto/defaults.c" + ], "crypto/libcrypto-lib-der_writer.o" => [ "crypto/der_writer.c" ], + "crypto/libcrypto-lib-deterministic_nonce.o" => [ + "crypto/deterministic_nonce.c" + ], "crypto/libcrypto-lib-ebcdic.o" => [ "crypto/ebcdic.c" ], @@ -22483,6 +25980,9 @@ our %unified_info = ( "crypto/libcrypto-lib-getenv.o" => [ "crypto/getenv.c" ], + "crypto/libcrypto-lib-indicator_core.o" => [ + "crypto/indicator_core.c" + ], "crypto/libcrypto-lib-info.o" => [ "crypto/info.c" ], @@ -22534,6 +26034,9 @@ our %unified_info = ( "crypto/libcrypto-lib-params_from_text.o" => [ "crypto/params_from_text.c" ], + "crypto/libcrypto-lib-params_idx.o" => [ + "crypto/params_idx.c" + ], "crypto/libcrypto-lib-passphrase.o" => [ "crypto/passphrase.c" ], @@ -22555,12 +26058,21 @@ our %unified_info = ( "crypto/libcrypto-lib-punycode.o" => [ "crypto/punycode.c" ], + "crypto/libcrypto-lib-quic_vlint.o" => [ + "crypto/quic_vlint.c" + ], "crypto/libcrypto-lib-self_test_core.o" => [ "crypto/self_test_core.c" ], + "crypto/libcrypto-lib-sleep.o" => [ + "crypto/sleep.c" + ], "crypto/libcrypto-lib-sparse_array.o" => [ "crypto/sparse_array.c" ], + "crypto/libcrypto-lib-ssl_err.o" => [ + "crypto/ssl_err.c" + ], "crypto/libcrypto-lib-threads_lib.o" => [ "crypto/threads_lib.c" ], @@ -22573,6 +26085,9 @@ our %unified_info = ( "crypto/libcrypto-lib-threads_win.o" => [ "crypto/threads_win.c" ], + "crypto/libcrypto-lib-time.o" => [ + "crypto/time.c" + ], "crypto/libcrypto-lib-trace.o" => [ "crypto/trace.c" ], @@ -22639,6 +26154,9 @@ our %unified_info = ( "crypto/libfips-lib-params_from_text.o" => [ "crypto/params_from_text.c" ], + "crypto/libfips-lib-params_idx.o" => [ + "crypto/params_idx.c" + ], "crypto/libfips-lib-provider_core.o" => [ "crypto/provider_core.c" ], @@ -22663,6 +26181,9 @@ our %unified_info = ( "crypto/libfips-lib-threads_win.o" => [ "crypto/threads_win.c" ], + "crypto/libfips-lib-time.o" => [ + "crypto/time.c" + ], "crypto/md4/libcrypto-lib-md4_dgst.o" => [ "crypto/md4/md4_dgst.c" ], @@ -22684,6 +26205,60 @@ our %unified_info = ( "crypto/mdc2/libcrypto-lib-mdc2dgst.o" => [ "crypto/mdc2/mdc2dgst.c" ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_encoders.o" => [ + "crypto/ml_dsa/ml_dsa_encoders.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key.o" => [ + "crypto/ml_dsa/ml_dsa_key.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key_compress.o" => [ + "crypto/ml_dsa/ml_dsa_key_compress.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_matrix.o" => [ + "crypto/ml_dsa/ml_dsa_matrix.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_ntt.o" => [ + "crypto/ml_dsa/ml_dsa_ntt.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_params.o" => [ + "crypto/ml_dsa/ml_dsa_params.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sample.o" => [ + "crypto/ml_dsa/ml_dsa_sample.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sign.o" => [ + "crypto/ml_dsa/ml_dsa_sign.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_encoders.o" => [ + "crypto/ml_dsa/ml_dsa_encoders.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_key.o" => [ + "crypto/ml_dsa/ml_dsa_key.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_key_compress.o" => [ + "crypto/ml_dsa/ml_dsa_key_compress.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_matrix.o" => [ + "crypto/ml_dsa/ml_dsa_matrix.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_ntt.o" => [ + "crypto/ml_dsa/ml_dsa_ntt.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_params.o" => [ + "crypto/ml_dsa/ml_dsa_params.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_sample.o" => [ + "crypto/ml_dsa/ml_dsa_sample.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_sign.o" => [ + "crypto/ml_dsa/ml_dsa_sign.c" + ], + "crypto/ml_kem/libcrypto-lib-ml_kem.o" => [ + "crypto/ml_kem/ml_kem.c" + ], + "crypto/ml_kem/libfips-lib-ml_kem.o" => [ + "crypto/ml_kem/ml_kem.c" + ], "crypto/modes/libcrypto-lib-cbc128.o" => [ "crypto/modes/cbc128.c" ], @@ -22717,6 +26292,9 @@ our %unified_info = ( "crypto/modes/libcrypto-lib-xts128.o" => [ "crypto/modes/xts128.c" ], + "crypto/modes/libcrypto-lib-xts128gb.o" => [ + "crypto/modes/xts128gb.c" + ], "crypto/modes/libfips-lib-cbc128.o" => [ "crypto/modes/cbc128.c" ], @@ -22741,6 +26319,9 @@ our %unified_info = ( "crypto/modes/libfips-lib-xts128.o" => [ "crypto/modes/xts128.c" ], + "crypto/modes/libfips-lib-xts128gb.o" => [ + "crypto/modes/xts128gb.c" + ], "crypto/objects/libcrypto-lib-o_names.o" => [ "crypto/objects/o_names.c" ], @@ -22786,6 +26367,9 @@ our %unified_info = ( "crypto/ocsp/libcrypto-lib-v3_ocsp.o" => [ "crypto/ocsp/v3_ocsp.c" ], + "crypto/packettest-bin-quic_vlint.o" => [ + "crypto/quic_vlint.c" + ], "crypto/pem/libcrypto-lib-pem_all.o" => [ "crypto/pem/pem_all.c" ], @@ -22945,6 +26529,9 @@ our %unified_info = ( "crypto/rand/libcrypto-lib-rand_pool.o" => [ "crypto/rand/rand_pool.c" ], + "crypto/rand/libcrypto-lib-rand_uniform.o" => [ + "crypto/rand/rand_uniform.c" + ], "crypto/rand/libcrypto-lib-randfile.o" => [ "crypto/rand/randfile.c" ], @@ -23158,6 +26745,66 @@ our %unified_info = ( "crypto/siphash/libcrypto-lib-siphash.o" => [ "crypto/siphash/siphash.c" ], + "crypto/slh_dsa/libcrypto-lib-slh_adrs.o" => [ + "crypto/slh_dsa/slh_adrs.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_dsa.o" => [ + "crypto/slh_dsa/slh_dsa.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_dsa_hash_ctx.o" => [ + "crypto/slh_dsa/slh_dsa_hash_ctx.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_dsa_key.o" => [ + "crypto/slh_dsa/slh_dsa_key.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_fors.o" => [ + "crypto/slh_dsa/slh_fors.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_hash.o" => [ + "crypto/slh_dsa/slh_hash.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_hypertree.o" => [ + "crypto/slh_dsa/slh_hypertree.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_params.o" => [ + "crypto/slh_dsa/slh_params.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_wots.o" => [ + "crypto/slh_dsa/slh_wots.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_xmss.o" => [ + "crypto/slh_dsa/slh_xmss.c" + ], + "crypto/slh_dsa/libfips-lib-slh_adrs.o" => [ + "crypto/slh_dsa/slh_adrs.c" + ], + "crypto/slh_dsa/libfips-lib-slh_dsa.o" => [ + "crypto/slh_dsa/slh_dsa.c" + ], + "crypto/slh_dsa/libfips-lib-slh_dsa_hash_ctx.o" => [ + "crypto/slh_dsa/slh_dsa_hash_ctx.c" + ], + "crypto/slh_dsa/libfips-lib-slh_dsa_key.o" => [ + "crypto/slh_dsa/slh_dsa_key.c" + ], + "crypto/slh_dsa/libfips-lib-slh_fors.o" => [ + "crypto/slh_dsa/slh_fors.c" + ], + "crypto/slh_dsa/libfips-lib-slh_hash.o" => [ + "crypto/slh_dsa/slh_hash.c" + ], + "crypto/slh_dsa/libfips-lib-slh_hypertree.o" => [ + "crypto/slh_dsa/slh_hypertree.c" + ], + "crypto/slh_dsa/libfips-lib-slh_params.o" => [ + "crypto/slh_dsa/slh_params.c" + ], + "crypto/slh_dsa/libfips-lib-slh_wots.o" => [ + "crypto/slh_dsa/slh_wots.c" + ], + "crypto/slh_dsa/libfips-lib-slh_xmss.o" => [ + "crypto/slh_dsa/slh_xmss.c" + ], "crypto/sm2/libcrypto-lib-sm2_crypt.o" => [ "crypto/sm2/sm2_crypt.c" ], @@ -23212,6 +26859,42 @@ our %unified_info = ( "crypto/store/libcrypto-lib-store_strings.o" => [ "crypto/store/store_strings.c" ], + "crypto/thread/arch/libcrypto-lib-thread_none.o" => [ + "crypto/thread/arch/thread_none.c" + ], + "crypto/thread/arch/libcrypto-lib-thread_posix.o" => [ + "crypto/thread/arch/thread_posix.c" + ], + "crypto/thread/arch/libcrypto-lib-thread_win.o" => [ + "crypto/thread/arch/thread_win.c" + ], + "crypto/thread/arch/libfips-lib-thread_none.o" => [ + "crypto/thread/arch/thread_none.c" + ], + "crypto/thread/arch/libfips-lib-thread_posix.o" => [ + "crypto/thread/arch/thread_posix.c" + ], + "crypto/thread/arch/libfips-lib-thread_win.o" => [ + "crypto/thread/arch/thread_win.c" + ], + "crypto/thread/libcrypto-lib-api.o" => [ + "crypto/thread/api.c" + ], + "crypto/thread/libcrypto-lib-arch.o" => [ + "crypto/thread/arch.c" + ], + "crypto/thread/libcrypto-lib-internal.o" => [ + "crypto/thread/internal.c" + ], + "crypto/thread/libfips-lib-api.o" => [ + "crypto/thread/api.c" + ], + "crypto/thread/libfips-lib-arch.o" => [ + "crypto/thread/arch.c" + ], + "crypto/thread/libfips-lib-internal.o" => [ + "crypto/thread/internal.c" + ], "crypto/ts/libcrypto-lib-ts_asn1.o" => [ "crypto/ts/ts_asn1.c" ], @@ -23296,6 +26979,9 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-pcy_tree.o" => [ "crypto/x509/pcy_tree.c" ], + "crypto/x509/libcrypto-lib-t_acert.o" => [ + "crypto/x509/t_acert.c" + ], "crypto/x509/libcrypto-lib-t_crl.o" => [ "crypto/x509/t_crl.c" ], @@ -23305,6 +26991,12 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-t_x509.o" => [ "crypto/x509/t_x509.c" ], + "crypto/x509/libcrypto-lib-v3_aaa.o" => [ + "crypto/x509/v3_aaa.c" + ], + "crypto/x509/libcrypto-lib-v3_ac_tgt.o" => [ + "crypto/x509/v3_ac_tgt.c" + ], "crypto/x509/libcrypto-lib-v3_addr.o" => [ "crypto/x509/v3_addr.c" ], @@ -23320,6 +27012,21 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_asid.o" => [ "crypto/x509/v3_asid.c" ], + "crypto/x509/libcrypto-lib-v3_attrdesc.o" => [ + "crypto/x509/v3_attrdesc.c" + ], + "crypto/x509/libcrypto-lib-v3_attrmap.o" => [ + "crypto/x509/v3_attrmap.c" + ], + "crypto/x509/libcrypto-lib-v3_audit_id.o" => [ + "crypto/x509/v3_audit_id.c" + ], + "crypto/x509/libcrypto-lib-v3_authattid.o" => [ + "crypto/x509/v3_authattid.c" + ], + "crypto/x509/libcrypto-lib-v3_battcons.o" => [ + "crypto/x509/v3_battcons.c" + ], "crypto/x509/libcrypto-lib-v3_bcons.o" => [ "crypto/x509/v3_bcons.c" ], @@ -23344,15 +27051,24 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_genn.o" => [ "crypto/x509/v3_genn.c" ], + "crypto/x509/libcrypto-lib-v3_group_ac.o" => [ + "crypto/x509/v3_group_ac.c" + ], "crypto/x509/libcrypto-lib-v3_ia5.o" => [ "crypto/x509/v3_ia5.c" ], + "crypto/x509/libcrypto-lib-v3_ind_iss.o" => [ + "crypto/x509/v3_ind_iss.c" + ], "crypto/x509/libcrypto-lib-v3_info.o" => [ "crypto/x509/v3_info.c" ], "crypto/x509/libcrypto-lib-v3_int.o" => [ "crypto/x509/v3_int.c" ], + "crypto/x509/libcrypto-lib-v3_iobo.o" => [ + "crypto/x509/v3_iobo.c" + ], "crypto/x509/libcrypto-lib-v3_ist.o" => [ "crypto/x509/v3_ist.c" ], @@ -23362,6 +27078,12 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_ncons.o" => [ "crypto/x509/v3_ncons.c" ], + "crypto/x509/libcrypto-lib-v3_no_ass.o" => [ + "crypto/x509/v3_no_ass.c" + ], + "crypto/x509/libcrypto-lib-v3_no_rev_avail.o" => [ + "crypto/x509/v3_no_rev_avail.c" + ], "crypto/x509/libcrypto-lib-v3_pci.o" => [ "crypto/x509/v3_pci.c" ], @@ -23383,18 +27105,36 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_purp.o" => [ "crypto/x509/v3_purp.c" ], + "crypto/x509/libcrypto-lib-v3_rolespec.o" => [ + "crypto/x509/v3_rolespec.c" + ], "crypto/x509/libcrypto-lib-v3_san.o" => [ "crypto/x509/v3_san.c" ], + "crypto/x509/libcrypto-lib-v3_sda.o" => [ + "crypto/x509/v3_sda.c" + ], + "crypto/x509/libcrypto-lib-v3_single_use.o" => [ + "crypto/x509/v3_single_use.c" + ], "crypto/x509/libcrypto-lib-v3_skid.o" => [ "crypto/x509/v3_skid.c" ], + "crypto/x509/libcrypto-lib-v3_soa_id.o" => [ + "crypto/x509/v3_soa_id.c" + ], "crypto/x509/libcrypto-lib-v3_sxnet.o" => [ "crypto/x509/v3_sxnet.c" ], + "crypto/x509/libcrypto-lib-v3_timespec.o" => [ + "crypto/x509/v3_timespec.c" + ], "crypto/x509/libcrypto-lib-v3_tlsf.o" => [ "crypto/x509/v3_tlsf.c" ], + "crypto/x509/libcrypto-lib-v3_usernotice.o" => [ + "crypto/x509/v3_usernotice.c" + ], "crypto/x509/libcrypto-lib-v3_utf8.o" => [ "crypto/x509/v3_utf8.c" ], @@ -23404,6 +27144,9 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3err.o" => [ "crypto/x509/v3err.c" ], + "crypto/x509/libcrypto-lib-x509_acert.o" => [ + "crypto/x509/x509_acert.c" + ], "crypto/x509/libcrypto-lib-x509_att.o" => [ "crypto/x509/x509_att.c" ], @@ -23455,6 +27198,9 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x509_vpm.o" => [ "crypto/x509/x509_vpm.c" ], + "crypto/x509/libcrypto-lib-x509aset.o" => [ + "crypto/x509/x509aset.c" + ], "crypto/x509/libcrypto-lib-x509cset.o" => [ "crypto/x509/x509cset.c" ], @@ -23482,6 +27228,9 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x_exten.o" => [ "crypto/x509/x_exten.c" ], + "crypto/x509/libcrypto-lib-x_ietfatt.o" => [ + "crypto/x509/x_ietfatt.c" + ], "crypto/x509/libcrypto-lib-x_name.o" => [ "crypto/x509/x_name.c" ], @@ -23503,6 +27252,16 @@ our %unified_info = ( "engines/libcrypto-lib-e_padlock.o" => [ "engines/e_padlock.c" ], + "fuzz/acert-test" => [ + "fuzz/acert-test-bin-acert.o", + "fuzz/acert-test-bin-test-corpus.o" + ], + "fuzz/acert-test-bin-acert.o" => [ + "fuzz/acert.c" + ], + "fuzz/acert-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], "fuzz/asn1-test" => [ "fuzz/asn1-test-bin-asn1.o", "fuzz/asn1-test-bin-fuzz_rand.o", @@ -23615,6 +27374,190 @@ our %unified_info = ( "fuzz/ct-test-bin-test-corpus.o" => [ "fuzz/test-corpus.c" ], + "fuzz/decoder-test" => [ + "fuzz/decoder-test-bin-decoder.o", + "fuzz/decoder-test-bin-fuzz_rand.o", + "fuzz/decoder-test-bin-test-corpus.o" + ], + "fuzz/decoder-test-bin-decoder.o" => [ + "fuzz/decoder.c" + ], + "fuzz/decoder-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/decoder-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/dtlsclient-test" => [ + "fuzz/dtlsclient-test-bin-dtlsclient.o", + "fuzz/dtlsclient-test-bin-fuzz_rand.o", + "fuzz/dtlsclient-test-bin-test-corpus.o" + ], + "fuzz/dtlsclient-test-bin-dtlsclient.o" => [ + "fuzz/dtlsclient.c" + ], + "fuzz/dtlsclient-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/dtlsclient-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/dtlsserver-test" => [ + "fuzz/dtlsserver-test-bin-dtlsserver.o", + "fuzz/dtlsserver-test-bin-fuzz_rand.o", + "fuzz/dtlsserver-test-bin-test-corpus.o" + ], + "fuzz/dtlsserver-test-bin-dtlsserver.o" => [ + "fuzz/dtlsserver.c" + ], + "fuzz/dtlsserver-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/dtlsserver-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/hashtable-test" => [ + "fuzz/hashtable-test-bin-fuzz_rand.o", + "fuzz/hashtable-test-bin-hashtable.o", + "fuzz/hashtable-test-bin-test-corpus.o" + ], + "fuzz/hashtable-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/hashtable-test-bin-hashtable.o" => [ + "fuzz/hashtable.c" + ], + "fuzz/hashtable-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/ml-dsa-test" => [ + "fuzz/ml-dsa-test-bin-fuzz_rand.o", + "fuzz/ml-dsa-test-bin-ml-dsa.o", + "fuzz/ml-dsa-test-bin-test-corpus.o" + ], + "fuzz/ml-dsa-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/ml-dsa-test-bin-ml-dsa.o" => [ + "fuzz/ml-dsa.c" + ], + "fuzz/ml-dsa-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/ml-kem-test" => [ + "fuzz/ml-kem-test-bin-fuzz_rand.o", + "fuzz/ml-kem-test-bin-ml-kem.o", + "fuzz/ml-kem-test-bin-test-corpus.o" + ], + "fuzz/ml-kem-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/ml-kem-test-bin-ml-kem.o" => [ + "fuzz/ml-kem.c" + ], + "fuzz/ml-kem-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/pem-test" => [ + "fuzz/pem-test-bin-pem.o", + "fuzz/pem-test-bin-test-corpus.o" + ], + "fuzz/pem-test-bin-pem.o" => [ + "fuzz/pem.c" + ], + "fuzz/pem-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/provider-test" => [ + "fuzz/provider-test-bin-provider.o", + "fuzz/provider-test-bin-test-corpus.o" + ], + "fuzz/provider-test-bin-provider.o" => [ + "fuzz/provider.c" + ], + "fuzz/provider-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/punycode-test" => [ + "fuzz/punycode-test-bin-punycode.o", + "fuzz/punycode-test-bin-test-corpus.o" + ], + "fuzz/punycode-test-bin-punycode.o" => [ + "fuzz/punycode.c" + ], + "fuzz/punycode-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-client-test" => [ + "fuzz/quic-client-test-bin-fuzz_rand.o", + "fuzz/quic-client-test-bin-quic-client.o", + "fuzz/quic-client-test-bin-test-corpus.o" + ], + "fuzz/quic-client-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-client-test-bin-quic-client.o" => [ + "fuzz/quic-client.c" + ], + "fuzz/quic-client-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-lcidm-test" => [ + "fuzz/quic-lcidm-test-bin-fuzz_rand.o", + "fuzz/quic-lcidm-test-bin-quic-lcidm.o", + "fuzz/quic-lcidm-test-bin-test-corpus.o" + ], + "fuzz/quic-lcidm-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-lcidm-test-bin-quic-lcidm.o" => [ + "fuzz/quic-lcidm.c" + ], + "fuzz/quic-lcidm-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-rcidm-test" => [ + "fuzz/quic-rcidm-test-bin-fuzz_rand.o", + "fuzz/quic-rcidm-test-bin-quic-rcidm.o", + "fuzz/quic-rcidm-test-bin-test-corpus.o" + ], + "fuzz/quic-rcidm-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-rcidm-test-bin-quic-rcidm.o" => [ + "fuzz/quic-rcidm.c" + ], + "fuzz/quic-rcidm-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-server-test" => [ + "fuzz/quic-server-test-bin-fuzz_rand.o", + "fuzz/quic-server-test-bin-quic-server.o", + "fuzz/quic-server-test-bin-test-corpus.o" + ], + "fuzz/quic-server-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-server-test-bin-quic-server.o" => [ + "fuzz/quic-server.c" + ], + "fuzz/quic-server-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-srtm-test" => [ + "fuzz/quic-srtm-test-bin-fuzz_rand.o", + "fuzz/quic-srtm-test-bin-quic-srtm.o", + "fuzz/quic-srtm-test-bin-test-corpus.o" + ], + "fuzz/quic-srtm-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-srtm-test-bin-quic-srtm.o" => [ + "fuzz/quic-srtm.c" + ], + "fuzz/quic-srtm-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], "fuzz/server-test" => [ "fuzz/server-test-bin-fuzz_rand.o", "fuzz/server-test-bin-server.o", @@ -23629,6 +27572,40 @@ our %unified_info = ( "fuzz/server-test-bin-test-corpus.o" => [ "fuzz/test-corpus.c" ], + "fuzz/slh-dsa-test" => [ + "fuzz/slh-dsa-test-bin-fuzz_rand.o", + "fuzz/slh-dsa-test-bin-slh-dsa.o", + "fuzz/slh-dsa-test-bin-test-corpus.o" + ], + "fuzz/slh-dsa-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/slh-dsa-test-bin-slh-dsa.o" => [ + "fuzz/slh-dsa.c" + ], + "fuzz/slh-dsa-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/smime-test" => [ + "fuzz/smime-test-bin-smime.o", + "fuzz/smime-test-bin-test-corpus.o" + ], + "fuzz/smime-test-bin-smime.o" => [ + "fuzz/smime.c" + ], + "fuzz/smime-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/v3name-test" => [ + "fuzz/v3name-test-bin-test-corpus.o", + "fuzz/v3name-test-bin-v3name.o" + ], + "fuzz/v3name-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/v3name-test-bin-v3name.o" => [ + "fuzz/v3name.c" + ], "fuzz/x509-test" => [ "fuzz/x509-test-bin-fuzz_rand.o", "fuzz/x509-test-bin-test-corpus.o", @@ -23748,6 +27725,7 @@ our %unified_info = ( "crypto/bio/libcrypto-lib-bss_conn.o", "crypto/bio/libcrypto-lib-bss_core.o", "crypto/bio/libcrypto-lib-bss_dgram.o", + "crypto/bio/libcrypto-lib-bss_dgram_pair.o", "crypto/bio/libcrypto-lib-bss_fd.o", "crypto/bio/libcrypto-lib-bss_file.o", "crypto/bio/libcrypto-lib-bss_log.o", @@ -23808,6 +27786,7 @@ our %unified_info = ( "crypto/cmp/libcrypto-lib-cmp_client.o", "crypto/cmp/libcrypto-lib-cmp_ctx.o", "crypto/cmp/libcrypto-lib-cmp_err.o", + "crypto/cmp/libcrypto-lib-cmp_genm.o", "crypto/cmp/libcrypto-lib-cmp_hdr.o", "crypto/cmp/libcrypto-lib-cmp_http.o", "crypto/cmp/libcrypto-lib-cmp_msg.o", @@ -23983,7 +27962,9 @@ our %unified_info = ( "crypto/err/libcrypto-lib-err_all.o", "crypto/err/libcrypto-lib-err_all_legacy.o", "crypto/err/libcrypto-lib-err_blocks.o", + "crypto/err/libcrypto-lib-err_mark.o", "crypto/err/libcrypto-lib-err_prn.o", + "crypto/err/libcrypto-lib-err_save.o", "crypto/ess/libcrypto-lib-ess_asn1.o", "crypto/ess/libcrypto-lib-ess_err.o", "crypto/ess/libcrypto-lib-ess_lib.o", @@ -24066,7 +28047,9 @@ our %unified_info = ( "crypto/evp/libcrypto-lib-pmeth_check.o", "crypto/evp/libcrypto-lib-pmeth_gn.o", "crypto/evp/libcrypto-lib-pmeth_lib.o", + "crypto/evp/libcrypto-lib-s_lib.o", "crypto/evp/libcrypto-lib-signature.o", + "crypto/evp/libcrypto-lib-skeymgmt_meth.o", "crypto/ffc/libcrypto-lib-ffc_backend.o", "crypto/ffc/libcrypto-lib-ffc_dh.o", "crypto/ffc/libcrypto-lib-ffc_key_generate.o", @@ -24074,7 +28057,11 @@ our %unified_info = ( "crypto/ffc/libcrypto-lib-ffc_params.o", "crypto/ffc/libcrypto-lib-ffc_params_generate.o", "crypto/ffc/libcrypto-lib-ffc_params_validate.o", + "crypto/hashtable/libcrypto-lib-hashfunc.o", + "crypto/hashtable/libcrypto-lib-hashtable.o", "crypto/hmac/libcrypto-lib-hmac.o", + "crypto/hpke/libcrypto-lib-hpke.o", + "crypto/hpke/libcrypto-lib-hpke_util.o", "crypto/http/libcrypto-lib-http_client.o", "crypto/http/libcrypto-lib-http_err.o", "crypto/http/libcrypto-lib-http_lib.o", @@ -24088,6 +28075,7 @@ our %unified_info = ( "crypto/lhash/libcrypto-lib-lhash.o", "crypto/libcrypto-lib-asn1_dsa.o", "crypto/libcrypto-lib-bsearch.o", + "crypto/libcrypto-lib-comp_methods.o", "crypto/libcrypto-lib-context.o", "crypto/libcrypto-lib-core_algorithm.o", "crypto/libcrypto-lib-core_fetch.o", @@ -24097,10 +28085,13 @@ our %unified_info = ( "crypto/libcrypto-lib-cryptlib.o", "crypto/libcrypto-lib-ctype.o", "crypto/libcrypto-lib-cversion.o", + "crypto/libcrypto-lib-defaults.o", "crypto/libcrypto-lib-der_writer.o", + "crypto/libcrypto-lib-deterministic_nonce.o", "crypto/libcrypto-lib-ebcdic.o", "crypto/libcrypto-lib-ex_data.o", "crypto/libcrypto-lib-getenv.o", + "crypto/libcrypto-lib-indicator_core.o", "crypto/libcrypto-lib-info.o", "crypto/libcrypto-lib-init.o", "crypto/libcrypto-lib-initthread.o", @@ -24118,6 +28109,7 @@ our %unified_info = ( "crypto/libcrypto-lib-params.o", "crypto/libcrypto-lib-params_dup.o", "crypto/libcrypto-lib-params_from_text.o", + "crypto/libcrypto-lib-params_idx.o", "crypto/libcrypto-lib-passphrase.o", "crypto/libcrypto-lib-provider.o", "crypto/libcrypto-lib-provider_child.o", @@ -24125,12 +28117,16 @@ our %unified_info = ( "crypto/libcrypto-lib-provider_core.o", "crypto/libcrypto-lib-provider_predefined.o", "crypto/libcrypto-lib-punycode.o", + "crypto/libcrypto-lib-quic_vlint.o", "crypto/libcrypto-lib-self_test_core.o", + "crypto/libcrypto-lib-sleep.o", "crypto/libcrypto-lib-sparse_array.o", + "crypto/libcrypto-lib-ssl_err.o", "crypto/libcrypto-lib-threads_lib.o", "crypto/libcrypto-lib-threads_none.o", "crypto/libcrypto-lib-threads_pthread.o", "crypto/libcrypto-lib-threads_win.o", + "crypto/libcrypto-lib-time.o", "crypto/libcrypto-lib-trace.o", "crypto/libcrypto-lib-uid.o", "crypto/md4/libcrypto-lib-md4_dgst.o", @@ -24140,6 +28136,15 @@ our %unified_info = ( "crypto/md5/libcrypto-lib-md5_sha1.o", "crypto/mdc2/libcrypto-lib-mdc2_one.o", "crypto/mdc2/libcrypto-lib-mdc2dgst.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_encoders.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key_compress.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_matrix.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_ntt.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_params.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sample.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sign.o", + "crypto/ml_kem/libcrypto-lib-ml_kem.o", "crypto/modes/libcrypto-lib-cbc128.o", "crypto/modes/libcrypto-lib-ccm128.o", "crypto/modes/libcrypto-lib-cfb128.o", @@ -24151,6 +28156,7 @@ our %unified_info = ( "crypto/modes/libcrypto-lib-siv128.o", "crypto/modes/libcrypto-lib-wrap128.o", "crypto/modes/libcrypto-lib-xts128.o", + "crypto/modes/libcrypto-lib-xts128gb.o", "crypto/objects/libcrypto-lib-o_names.o", "crypto/objects/libcrypto-lib-obj_dat.o", "crypto/objects/libcrypto-lib-obj_err.o", @@ -24214,6 +28220,7 @@ our %unified_info = ( "crypto/rand/libcrypto-lib-rand_lib.o", "crypto/rand/libcrypto-lib-rand_meth.o", "crypto/rand/libcrypto-lib-rand_pool.o", + "crypto/rand/libcrypto-lib-rand_uniform.o", "crypto/rand/libcrypto-lib-randfile.o", "crypto/rc2/libcrypto-lib-rc2_cbc.o", "crypto/rc2/libcrypto-lib-rc2_ecb.o", @@ -24262,6 +28269,16 @@ our %unified_info = ( "crypto/sha/libcrypto-lib-sha3.o", "crypto/sha/libcrypto-lib-sha512.o", "crypto/siphash/libcrypto-lib-siphash.o", + "crypto/slh_dsa/libcrypto-lib-slh_adrs.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa_hash_ctx.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa_key.o", + "crypto/slh_dsa/libcrypto-lib-slh_fors.o", + "crypto/slh_dsa/libcrypto-lib-slh_hash.o", + "crypto/slh_dsa/libcrypto-lib-slh_hypertree.o", + "crypto/slh_dsa/libcrypto-lib-slh_params.o", + "crypto/slh_dsa/libcrypto-lib-slh_wots.o", + "crypto/slh_dsa/libcrypto-lib-slh_xmss.o", "crypto/sm2/libcrypto-lib-sm2_crypt.o", "crypto/sm2/libcrypto-lib-sm2_err.o", "crypto/sm2/libcrypto-lib-sm2_key.o", @@ -24279,6 +28296,12 @@ our %unified_info = ( "crypto/store/libcrypto-lib-store_register.o", "crypto/store/libcrypto-lib-store_result.o", "crypto/store/libcrypto-lib-store_strings.o", + "crypto/thread/arch/libcrypto-lib-thread_none.o", + "crypto/thread/arch/libcrypto-lib-thread_posix.o", + "crypto/thread/arch/libcrypto-lib-thread_win.o", + "crypto/thread/libcrypto-lib-api.o", + "crypto/thread/libcrypto-lib-arch.o", + "crypto/thread/libcrypto-lib-internal.o", "crypto/ts/libcrypto-lib-ts_asn1.o", "crypto/ts/libcrypto-lib-ts_conf.o", "crypto/ts/libcrypto-lib-ts_err.o", @@ -24307,14 +28330,22 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-pcy_map.o", "crypto/x509/libcrypto-lib-pcy_node.o", "crypto/x509/libcrypto-lib-pcy_tree.o", + "crypto/x509/libcrypto-lib-t_acert.o", "crypto/x509/libcrypto-lib-t_crl.o", "crypto/x509/libcrypto-lib-t_req.o", "crypto/x509/libcrypto-lib-t_x509.o", + "crypto/x509/libcrypto-lib-v3_aaa.o", + "crypto/x509/libcrypto-lib-v3_ac_tgt.o", "crypto/x509/libcrypto-lib-v3_addr.o", "crypto/x509/libcrypto-lib-v3_admis.o", "crypto/x509/libcrypto-lib-v3_akeya.o", "crypto/x509/libcrypto-lib-v3_akid.o", "crypto/x509/libcrypto-lib-v3_asid.o", + "crypto/x509/libcrypto-lib-v3_attrdesc.o", + "crypto/x509/libcrypto-lib-v3_attrmap.o", + "crypto/x509/libcrypto-lib-v3_audit_id.o", + "crypto/x509/libcrypto-lib-v3_authattid.o", + "crypto/x509/libcrypto-lib-v3_battcons.o", "crypto/x509/libcrypto-lib-v3_bcons.o", "crypto/x509/libcrypto-lib-v3_bitst.o", "crypto/x509/libcrypto-lib-v3_conf.o", @@ -24323,12 +28354,17 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_enum.o", "crypto/x509/libcrypto-lib-v3_extku.o", "crypto/x509/libcrypto-lib-v3_genn.o", + "crypto/x509/libcrypto-lib-v3_group_ac.o", "crypto/x509/libcrypto-lib-v3_ia5.o", + "crypto/x509/libcrypto-lib-v3_ind_iss.o", "crypto/x509/libcrypto-lib-v3_info.o", "crypto/x509/libcrypto-lib-v3_int.o", + "crypto/x509/libcrypto-lib-v3_iobo.o", "crypto/x509/libcrypto-lib-v3_ist.o", "crypto/x509/libcrypto-lib-v3_lib.o", "crypto/x509/libcrypto-lib-v3_ncons.o", + "crypto/x509/libcrypto-lib-v3_no_ass.o", + "crypto/x509/libcrypto-lib-v3_no_rev_avail.o", "crypto/x509/libcrypto-lib-v3_pci.o", "crypto/x509/libcrypto-lib-v3_pcia.o", "crypto/x509/libcrypto-lib-v3_pcons.o", @@ -24336,13 +28372,20 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_pmaps.o", "crypto/x509/libcrypto-lib-v3_prn.o", "crypto/x509/libcrypto-lib-v3_purp.o", + "crypto/x509/libcrypto-lib-v3_rolespec.o", "crypto/x509/libcrypto-lib-v3_san.o", + "crypto/x509/libcrypto-lib-v3_sda.o", + "crypto/x509/libcrypto-lib-v3_single_use.o", "crypto/x509/libcrypto-lib-v3_skid.o", + "crypto/x509/libcrypto-lib-v3_soa_id.o", "crypto/x509/libcrypto-lib-v3_sxnet.o", + "crypto/x509/libcrypto-lib-v3_timespec.o", "crypto/x509/libcrypto-lib-v3_tlsf.o", + "crypto/x509/libcrypto-lib-v3_usernotice.o", "crypto/x509/libcrypto-lib-v3_utf8.o", "crypto/x509/libcrypto-lib-v3_utl.o", "crypto/x509/libcrypto-lib-v3err.o", + "crypto/x509/libcrypto-lib-x509_acert.o", "crypto/x509/libcrypto-lib-x509_att.o", "crypto/x509/libcrypto-lib-x509_cmp.o", "crypto/x509/libcrypto-lib-x509_d2.o", @@ -24360,6 +28403,7 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x509_v3.o", "crypto/x509/libcrypto-lib-x509_vfy.o", "crypto/x509/libcrypto-lib-x509_vpm.o", + "crypto/x509/libcrypto-lib-x509aset.o", "crypto/x509/libcrypto-lib-x509cset.o", "crypto/x509/libcrypto-lib-x509name.o", "crypto/x509/libcrypto-lib-x509rset.o", @@ -24369,6 +28413,7 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x_attrib.o", "crypto/x509/libcrypto-lib-x_crl.o", "crypto/x509/libcrypto-lib-x_exten.o", + "crypto/x509/libcrypto-lib-x_ietfatt.o", "crypto/x509/libcrypto-lib-x_name.o", "crypto/x509/libcrypto-lib-x_pubkey.o", "crypto/x509/libcrypto-lib-x_req.o", @@ -24389,14 +28434,15 @@ our %unified_info = ( "ssl/libssl-lib-d1_srtp.o", "ssl/libssl-lib-methods.o", "ssl/libssl-lib-pqueue.o", + "ssl/libssl-lib-priority_queue.o", "ssl/libssl-lib-s3_enc.o", "ssl/libssl-lib-s3_lib.o", "ssl/libssl-lib-s3_msg.o", "ssl/libssl-lib-ssl_asn1.o", "ssl/libssl-lib-ssl_cert.o", + "ssl/libssl-lib-ssl_cert_comp.o", "ssl/libssl-lib-ssl_ciph.o", "ssl/libssl-lib-ssl_conf.o", - "ssl/libssl-lib-ssl_err.o", "ssl/libssl-lib-ssl_err_legacy.o", "ssl/libssl-lib-ssl_init.o", "ssl/libssl-lib-ssl_lib.o", @@ -24413,12 +28459,60 @@ our %unified_info = ( "ssl/libssl-lib-tls13_enc.o", "ssl/libssl-lib-tls_depr.o", "ssl/libssl-lib-tls_srp.o", - "ssl/record/libssl-lib-dtls1_bitmap.o", + "ssl/quic/libssl-lib-cc_newreno.o", + "ssl/quic/libssl-lib-json_enc.o", + "ssl/quic/libssl-lib-qlog.o", + "ssl/quic/libssl-lib-qlog_event_helpers.o", + "ssl/quic/libssl-lib-quic_ackm.o", + "ssl/quic/libssl-lib-quic_cfq.o", + "ssl/quic/libssl-lib-quic_channel.o", + "ssl/quic/libssl-lib-quic_demux.o", + "ssl/quic/libssl-lib-quic_engine.o", + "ssl/quic/libssl-lib-quic_fc.o", + "ssl/quic/libssl-lib-quic_fifd.o", + "ssl/quic/libssl-lib-quic_impl.o", + "ssl/quic/libssl-lib-quic_lcidm.o", + "ssl/quic/libssl-lib-quic_method.o", + "ssl/quic/libssl-lib-quic_obj.o", + "ssl/quic/libssl-lib-quic_port.o", + "ssl/quic/libssl-lib-quic_rcidm.o", + "ssl/quic/libssl-lib-quic_reactor.o", + "ssl/quic/libssl-lib-quic_reactor_wait_ctx.o", + "ssl/quic/libssl-lib-quic_record_rx.o", + "ssl/quic/libssl-lib-quic_record_shared.o", + "ssl/quic/libssl-lib-quic_record_tx.o", + "ssl/quic/libssl-lib-quic_record_util.o", + "ssl/quic/libssl-lib-quic_rstream.o", + "ssl/quic/libssl-lib-quic_rx_depack.o", + "ssl/quic/libssl-lib-quic_sf_list.o", + "ssl/quic/libssl-lib-quic_srt_gen.o", + "ssl/quic/libssl-lib-quic_srtm.o", + "ssl/quic/libssl-lib-quic_sstream.o", + "ssl/quic/libssl-lib-quic_statm.o", + "ssl/quic/libssl-lib-quic_stream_map.o", + "ssl/quic/libssl-lib-quic_thread_assist.o", + "ssl/quic/libssl-lib-quic_tls.o", + "ssl/quic/libssl-lib-quic_tls_api.o", + "ssl/quic/libssl-lib-quic_trace.o", + "ssl/quic/libssl-lib-quic_tserver.o", + "ssl/quic/libssl-lib-quic_txp.o", + "ssl/quic/libssl-lib-quic_txpim.o", + "ssl/quic/libssl-lib-quic_types.o", + "ssl/quic/libssl-lib-quic_wire.o", + "ssl/quic/libssl-lib-quic_wire_pkt.o", + "ssl/quic/libssl-lib-uint_set.o", "ssl/record/libssl-lib-rec_layer_d1.o", "ssl/record/libssl-lib-rec_layer_s3.o", - "ssl/record/libssl-lib-ssl3_buffer.o", - "ssl/record/libssl-lib-ssl3_record.o", - "ssl/record/libssl-lib-ssl3_record_tls13.o", + "ssl/record/methods/libssl-lib-dtls_meth.o", + "ssl/record/methods/libssl-lib-ssl3_meth.o", + "ssl/record/methods/libssl-lib-tls13_meth.o", + "ssl/record/methods/libssl-lib-tls1_meth.o", + "ssl/record/methods/libssl-lib-tls_common.o", + "ssl/record/methods/libssl-lib-tls_multib.o", + "ssl/record/methods/libssl-lib-tlsany_meth.o", + "ssl/rio/libssl-lib-poll_builder.o", + "ssl/rio/libssl-lib-poll_immediate.o", + "ssl/rio/libssl-lib-rio_notifier.o", "ssl/statem/libssl-lib-extensions.o", "ssl/statem/libssl-lib-extensions_clnt.o", "ssl/statem/libssl-lib-extensions_cust.o", @@ -24456,12 +28550,24 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ecx_key.o" => [ "providers/common/der/der_ecx_key.c" ], + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o" => [ + "providers/common/der/der_ml_dsa_gen.c" + ], + "providers/common/der/libcommon-lib-der_ml_dsa_key.o" => [ + "providers/common/der/der_ml_dsa_key.c" + ], "providers/common/der/libcommon-lib-der_rsa_gen.o" => [ "providers/common/der/der_rsa_gen.c" ], "providers/common/der/libcommon-lib-der_rsa_key.o" => [ "providers/common/der/der_rsa_key.c" ], + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o" => [ + "providers/common/der/der_slh_dsa_gen.c" + ], + "providers/common/der/libcommon-lib-der_slh_dsa_key.o" => [ + "providers/common/der/der_slh_dsa_key.c" + ], "providers/common/der/libcommon-lib-der_wrap_gen.o" => [ "providers/common/der/der_wrap_gen.c" ], @@ -24528,6 +28634,9 @@ our %unified_info = ( "providers/common/libfips-lib-securitycheck_fips.o" => [ "providers/common/securitycheck_fips.c" ], + "providers/endecode_test-bin-legacyprov.o" => [ + "providers/legacyprov.c" + ], "providers/evp_extra_test-bin-legacyprov.o" => [ "providers/legacyprov.c" ], @@ -24542,6 +28651,9 @@ our %unified_info = ( "providers/fips/fips-dso-fips_entry.o" => [ "providers/fips/fips_entry.c" ], + "providers/fips/libfips-lib-fipsindicator.o" => [ + "providers/fips/fipsindicator.c" + ], "providers/fips/libfips-lib-fipsprov.o" => [ "providers/fips/fipsprov.c" ], @@ -24605,6 +28717,15 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_hw.o" => [ "providers/implementations/ciphers/cipher_aes_gcm_hw.c" ], + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv.o" => [ + "providers/implementations/ciphers/cipher_aes_gcm_siv.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_hw.o" => [ + "providers/implementations/ciphers/cipher_aes_gcm_siv_hw.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_polyval.o" => [ + "providers/implementations/ciphers/cipher_aes_gcm_siv_polyval.c" + ], "providers/implementations/ciphers/libdefault-lib-cipher_aes_hw.o" => [ "providers/implementations/ciphers/cipher_aes_hw.c" ], @@ -24677,9 +28798,27 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_sm4.o" => [ "providers/implementations/ciphers/cipher_sm4.c" ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm.o" => [ + "providers/implementations/ciphers/cipher_sm4_ccm.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm_hw.o" => [ + "providers/implementations/ciphers/cipher_sm4_ccm_hw.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm.o" => [ + "providers/implementations/ciphers/cipher_sm4_gcm.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm_hw.o" => [ + "providers/implementations/ciphers/cipher_sm4_gcm_hw.c" + ], "providers/implementations/ciphers/libdefault-lib-cipher_sm4_hw.o" => [ "providers/implementations/ciphers/cipher_sm4_hw.c" ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts.o" => [ + "providers/implementations/ciphers/cipher_sm4_xts.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts_hw.o" => [ + "providers/implementations/ciphers/cipher_sm4_xts_hw.c" + ], "providers/implementations/ciphers/libdefault-lib-cipher_tdes.o" => [ "providers/implementations/ciphers/cipher_tdes.c" ], @@ -24899,6 +29038,15 @@ our %unified_info = ( "providers/implementations/encode_decode/libdefault-lib-endecoder_common.o" => [ "providers/implementations/encode_decode/endecoder_common.c" ], + "providers/implementations/encode_decode/libdefault-lib-ml_common_codecs.o" => [ + "providers/implementations/encode_decode/ml_common_codecs.c" + ], + "providers/implementations/encode_decode/libdefault-lib-ml_dsa_codecs.o" => [ + "providers/implementations/encode_decode/ml_dsa_codecs.c" + ], + "providers/implementations/encode_decode/libdefault-lib-ml_kem_codecs.o" => [ + "providers/implementations/encode_decode/ml_kem_codecs.c" + ], "providers/implementations/exchange/libdefault-lib-dh_exch.o" => [ "providers/implementations/exchange/dh_exch.c" ], @@ -24923,9 +29071,15 @@ our %unified_info = ( "providers/implementations/exchange/libfips-lib-kdf_exch.o" => [ "providers/implementations/exchange/kdf_exch.c" ], + "providers/implementations/kdfs/libdefault-lib-argon2.o" => [ + "providers/implementations/kdfs/argon2.c" + ], "providers/implementations/kdfs/libdefault-lib-hkdf.o" => [ "providers/implementations/kdfs/hkdf.c" ], + "providers/implementations/kdfs/libdefault-lib-hmacdrbg_kdf.o" => [ + "providers/implementations/kdfs/hmacdrbg_kdf.c" + ], "providers/implementations/kdfs/libdefault-lib-kbkdf.o" => [ "providers/implementations/kdfs/kbkdf.c" ], @@ -24983,12 +29137,39 @@ our %unified_info = ( "providers/implementations/kdfs/liblegacy-lib-pbkdf1.o" => [ "providers/implementations/kdfs/pbkdf1.c" ], + "providers/implementations/kdfs/liblegacy-lib-pvkkdf.o" => [ + "providers/implementations/kdfs/pvkkdf.c" + ], + "providers/implementations/kem/libdefault-lib-ec_kem.o" => [ + "providers/implementations/kem/ec_kem.c" + ], + "providers/implementations/kem/libdefault-lib-ecx_kem.o" => [ + "providers/implementations/kem/ecx_kem.c" + ], + "providers/implementations/kem/libdefault-lib-kem_util.o" => [ + "providers/implementations/kem/kem_util.c" + ], + "providers/implementations/kem/libdefault-lib-ml_kem_kem.o" => [ + "providers/implementations/kem/ml_kem_kem.c" + ], + "providers/implementations/kem/libdefault-lib-mlx_kem.o" => [ + "providers/implementations/kem/mlx_kem.c" + ], "providers/implementations/kem/libdefault-lib-rsa_kem.o" => [ "providers/implementations/kem/rsa_kem.c" ], + "providers/implementations/kem/libfips-lib-ml_kem_kem.o" => [ + "providers/implementations/kem/ml_kem_kem.c" + ], + "providers/implementations/kem/libfips-lib-mlx_kem.o" => [ + "providers/implementations/kem/mlx_kem.c" + ], "providers/implementations/kem/libfips-lib-rsa_kem.o" => [ "providers/implementations/kem/rsa_kem.c" ], + "providers/implementations/kem/libtemplate-lib-template_kem.o" => [ + "providers/implementations/kem/template_kem.c" + ], "providers/implementations/keymgmt/libdefault-lib-dh_kmgmt.o" => [ "providers/implementations/keymgmt/dh_kmgmt.c" ], @@ -25007,9 +29188,21 @@ our %unified_info = ( "providers/implementations/keymgmt/libdefault-lib-mac_legacy_kmgmt.o" => [ "providers/implementations/keymgmt/mac_legacy_kmgmt.c" ], + "providers/implementations/keymgmt/libdefault-lib-ml_dsa_kmgmt.o" => [ + "providers/implementations/keymgmt/ml_dsa_kmgmt.c" + ], + "providers/implementations/keymgmt/libdefault-lib-ml_kem_kmgmt.o" => [ + "providers/implementations/keymgmt/ml_kem_kmgmt.c" + ], + "providers/implementations/keymgmt/libdefault-lib-mlx_kmgmt.o" => [ + "providers/implementations/keymgmt/mlx_kmgmt.c" + ], "providers/implementations/keymgmt/libdefault-lib-rsa_kmgmt.o" => [ "providers/implementations/keymgmt/rsa_kmgmt.c" ], + "providers/implementations/keymgmt/libdefault-lib-slh_dsa_kmgmt.o" => [ + "providers/implementations/keymgmt/slh_dsa_kmgmt.c" + ], "providers/implementations/keymgmt/libfips-lib-dh_kmgmt.o" => [ "providers/implementations/keymgmt/dh_kmgmt.c" ], @@ -25028,9 +29221,24 @@ our %unified_info = ( "providers/implementations/keymgmt/libfips-lib-mac_legacy_kmgmt.o" => [ "providers/implementations/keymgmt/mac_legacy_kmgmt.c" ], + "providers/implementations/keymgmt/libfips-lib-ml_dsa_kmgmt.o" => [ + "providers/implementations/keymgmt/ml_dsa_kmgmt.c" + ], + "providers/implementations/keymgmt/libfips-lib-ml_kem_kmgmt.o" => [ + "providers/implementations/keymgmt/ml_kem_kmgmt.c" + ], + "providers/implementations/keymgmt/libfips-lib-mlx_kmgmt.o" => [ + "providers/implementations/keymgmt/mlx_kmgmt.c" + ], "providers/implementations/keymgmt/libfips-lib-rsa_kmgmt.o" => [ "providers/implementations/keymgmt/rsa_kmgmt.c" ], + "providers/implementations/keymgmt/libfips-lib-slh_dsa_kmgmt.o" => [ + "providers/implementations/keymgmt/slh_dsa_kmgmt.c" + ], + "providers/implementations/keymgmt/libtemplate-lib-template_kmgmt.o" => [ + "providers/implementations/keymgmt/template_kmgmt.c" + ], "providers/implementations/macs/libdefault-lib-blake2b_mac.o" => [ "providers/implementations/macs/blake2b_mac.c" ], @@ -25067,9 +29275,6 @@ our %unified_info = ( "providers/implementations/macs/libfips-lib-kmac_prov.o" => [ "providers/implementations/macs/kmac_prov.c" ], - "providers/implementations/rands/libdefault-lib-crngt.o" => [ - "providers/implementations/rands/crngt.c" - ], "providers/implementations/rands/libdefault-lib-drbg.o" => [ "providers/implementations/rands/drbg.c" ], @@ -25085,12 +29290,12 @@ our %unified_info = ( "providers/implementations/rands/libdefault-lib-seed_src.o" => [ "providers/implementations/rands/seed_src.c" ], + "providers/implementations/rands/libdefault-lib-seed_src_jitter.o" => [ + "providers/implementations/rands/seed_src_jitter.c" + ], "providers/implementations/rands/libdefault-lib-test_rng.o" => [ "providers/implementations/rands/test_rng.c" ], - "providers/implementations/rands/libfips-lib-crngt.o" => [ - "providers/implementations/rands/crngt.c" - ], "providers/implementations/rands/libfips-lib-drbg.o" => [ "providers/implementations/rands/drbg.c" ], @@ -25103,6 +29308,9 @@ our %unified_info = ( "providers/implementations/rands/libfips-lib-drbg_hmac.o" => [ "providers/implementations/rands/drbg_hmac.c" ], + "providers/implementations/rands/libfips-lib-fips_crng_test.o" => [ + "providers/implementations/rands/fips_crng_test.c" + ], "providers/implementations/rands/libfips-lib-test_rng.o" => [ "providers/implementations/rands/test_rng.c" ], @@ -25130,9 +29338,15 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-mac_legacy_sig.o" => [ "providers/implementations/signature/mac_legacy_sig.c" ], + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o" => [ + "providers/implementations/signature/ml_dsa_sig.c" + ], "providers/implementations/signature/libdefault-lib-rsa_sig.o" => [ "providers/implementations/signature/rsa_sig.c" ], + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o" => [ + "providers/implementations/signature/slh_dsa_sig.c" + ], "providers/implementations/signature/libdefault-lib-sm2_sig.o" => [ "providers/implementations/signature/sm2_sig.c" ], @@ -25148,15 +29362,36 @@ our %unified_info = ( "providers/implementations/signature/libfips-lib-mac_legacy_sig.o" => [ "providers/implementations/signature/mac_legacy_sig.c" ], + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o" => [ + "providers/implementations/signature/ml_dsa_sig.c" + ], "providers/implementations/signature/libfips-lib-rsa_sig.o" => [ "providers/implementations/signature/rsa_sig.c" ], + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o" => [ + "providers/implementations/signature/slh_dsa_sig.c" + ], + "providers/implementations/skeymgmt/libdefault-lib-aes_skmgmt.o" => [ + "providers/implementations/skeymgmt/aes_skmgmt.c" + ], + "providers/implementations/skeymgmt/libdefault-lib-generic.o" => [ + "providers/implementations/skeymgmt/generic.c" + ], + "providers/implementations/skeymgmt/libfips-lib-aes_skmgmt.o" => [ + "providers/implementations/skeymgmt/aes_skmgmt.c" + ], + "providers/implementations/skeymgmt/libfips-lib-generic.o" => [ + "providers/implementations/skeymgmt/generic.c" + ], "providers/implementations/storemgmt/libdefault-lib-file_store.o" => [ "providers/implementations/storemgmt/file_store.c" ], "providers/implementations/storemgmt/libdefault-lib-file_store_any2obj.o" => [ "providers/implementations/storemgmt/file_store_any2obj.c" ], + "providers/implementations/storemgmt/libdefault-lib-winstore_store.o" => [ + "providers/implementations/storemgmt/winstore_store.c" + ], "providers/legacy" => [ "providers/legacy-dso-legacy.res", "providers/legacy-dso-legacyprov.o", @@ -25178,8 +29413,12 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ec_sig.o", "providers/common/der/libcommon-lib-der_ecx_gen.o", "providers/common/der/libcommon-lib-der_ecx_key.o", + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o", + "providers/common/der/libcommon-lib-der_ml_dsa_key.o", "providers/common/der/libcommon-lib-der_rsa_gen.o", "providers/common/der/libcommon-lib-der_rsa_key.o", + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o", + "providers/common/der/libcommon-lib-der_slh_dsa_key.o", "providers/common/der/libcommon-lib-der_wrap_gen.o", "providers/common/libcommon-lib-provider_ctx.o", "providers/common/libcommon-lib-provider_err.o", @@ -25191,7 +29430,7 @@ our %unified_info = ( "providers/implementations/ciphers/libcommon-lib-ciphercommon_gcm_hw.o", "providers/implementations/ciphers/libcommon-lib-ciphercommon_hw.o", "providers/implementations/digests/libcommon-lib-digestcommon.o", - "ssl/record/libcommon-lib-tls_pad.o" + "ssl/record/methods/libcommon-lib-tls_pad.o" ], "providers/libcrypto-lib-baseprov.o" => [ "providers/baseprov.c" @@ -25227,6 +29466,9 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_aes_ccm_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_polyval.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_ocb.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_ocb_hw.o", @@ -25251,7 +29493,13 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_cts.o", "providers/implementations/ciphers/libdefault-lib-cipher_null.o", "providers/implementations/ciphers/libdefault-lib-cipher_sm4.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_sm4_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes_common.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes_default.o", @@ -25280,11 +29528,16 @@ our %unified_info = ( "providers/implementations/encode_decode/libdefault-lib-encode_key2ms.o", "providers/implementations/encode_decode/libdefault-lib-encode_key2text.o", "providers/implementations/encode_decode/libdefault-lib-endecoder_common.o", + "providers/implementations/encode_decode/libdefault-lib-ml_common_codecs.o", + "providers/implementations/encode_decode/libdefault-lib-ml_dsa_codecs.o", + "providers/implementations/encode_decode/libdefault-lib-ml_kem_codecs.o", "providers/implementations/exchange/libdefault-lib-dh_exch.o", "providers/implementations/exchange/libdefault-lib-ecdh_exch.o", "providers/implementations/exchange/libdefault-lib-ecx_exch.o", "providers/implementations/exchange/libdefault-lib-kdf_exch.o", + "providers/implementations/kdfs/libdefault-lib-argon2.o", "providers/implementations/kdfs/libdefault-lib-hkdf.o", + "providers/implementations/kdfs/libdefault-lib-hmacdrbg_kdf.o", "providers/implementations/kdfs/libdefault-lib-kbkdf.o", "providers/implementations/kdfs/libdefault-lib-krb5kdf.o", "providers/implementations/kdfs/libdefault-lib-pbkdf2.o", @@ -25295,6 +29548,11 @@ our %unified_info = ( "providers/implementations/kdfs/libdefault-lib-sskdf.o", "providers/implementations/kdfs/libdefault-lib-tls1_prf.o", "providers/implementations/kdfs/libdefault-lib-x942kdf.o", + "providers/implementations/kem/libdefault-lib-ec_kem.o", + "providers/implementations/kem/libdefault-lib-ecx_kem.o", + "providers/implementations/kem/libdefault-lib-kem_util.o", + "providers/implementations/kem/libdefault-lib-ml_kem_kem.o", + "providers/implementations/kem/libdefault-lib-mlx_kem.o", "providers/implementations/kem/libdefault-lib-rsa_kem.o", "providers/implementations/keymgmt/libdefault-lib-dh_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-dsa_kmgmt.o", @@ -25302,7 +29560,11 @@ our %unified_info = ( "providers/implementations/keymgmt/libdefault-lib-ecx_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-kdf_legacy_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-mac_legacy_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-ml_dsa_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-ml_kem_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-mlx_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-rsa_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-slh_dsa_kmgmt.o", "providers/implementations/macs/libdefault-lib-blake2b_mac.o", "providers/implementations/macs/libdefault-lib-blake2s_mac.o", "providers/implementations/macs/libdefault-lib-cmac_prov.o", @@ -25311,12 +29573,12 @@ our %unified_info = ( "providers/implementations/macs/libdefault-lib-kmac_prov.o", "providers/implementations/macs/libdefault-lib-poly1305_prov.o", "providers/implementations/macs/libdefault-lib-siphash_prov.o", - "providers/implementations/rands/libdefault-lib-crngt.o", "providers/implementations/rands/libdefault-lib-drbg.o", "providers/implementations/rands/libdefault-lib-drbg_ctr.o", "providers/implementations/rands/libdefault-lib-drbg_hash.o", "providers/implementations/rands/libdefault-lib-drbg_hmac.o", "providers/implementations/rands/libdefault-lib-seed_src.o", + "providers/implementations/rands/libdefault-lib-seed_src_jitter.o", "providers/implementations/rands/libdefault-lib-test_rng.o", "providers/implementations/rands/seeding/libdefault-lib-rand_cpu_x86.o", "providers/implementations/rands/seeding/libdefault-lib-rand_tsc.o", @@ -25326,11 +29588,16 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-ecdsa_sig.o", "providers/implementations/signature/libdefault-lib-eddsa_sig.o", "providers/implementations/signature/libdefault-lib-mac_legacy_sig.o", + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o", "providers/implementations/signature/libdefault-lib-rsa_sig.o", + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o", "providers/implementations/signature/libdefault-lib-sm2_sig.o", + "providers/implementations/skeymgmt/libdefault-lib-aes_skmgmt.o", + "providers/implementations/skeymgmt/libdefault-lib-generic.o", "providers/implementations/storemgmt/libdefault-lib-file_store.o", "providers/implementations/storemgmt/libdefault-lib-file_store_any2obj.o", - "ssl/libdefault-lib-s3_cbc.o" + "providers/implementations/storemgmt/libdefault-lib-winstore_store.o", + "ssl/record/methods/libdefault-lib-ssl3_cbc.o" ], "providers/libfips.a" => [ "crypto/aes/libfips-lib-aes_cbc.o", @@ -25432,14 +29699,15 @@ our %unified_info = ( "crypto/evp/libfips-lib-kem.o", "crypto/evp/libfips-lib-keymgmt_lib.o", "crypto/evp/libfips-lib-keymgmt_meth.o", - "crypto/evp/libfips-lib-m_sigver.o", "crypto/evp/libfips-lib-mac_lib.o", "crypto/evp/libfips-lib-mac_meth.o", "crypto/evp/libfips-lib-p_lib.o", "crypto/evp/libfips-lib-pmeth_check.o", "crypto/evp/libfips-lib-pmeth_gn.o", "crypto/evp/libfips-lib-pmeth_lib.o", + "crypto/evp/libfips-lib-s_lib.o", "crypto/evp/libfips-lib-signature.o", + "crypto/evp/libfips-lib-skeymgmt_meth.o", "crypto/ffc/libfips-lib-ffc_backend.o", "crypto/ffc/libfips-lib-ffc_dh.o", "crypto/ffc/libfips-lib-ffc_key_generate.o", @@ -25447,6 +29715,8 @@ our %unified_info = ( "crypto/ffc/libfips-lib-ffc_params.o", "crypto/ffc/libfips-lib-ffc_params_generate.o", "crypto/ffc/libfips-lib-ffc_params_validate.o", + "crypto/hashtable/libfips-lib-hashfunc.o", + "crypto/hashtable/libfips-lib-hashtable.o", "crypto/hmac/libfips-lib-hmac.o", "crypto/lhash/libfips-lib-lhash.o", "crypto/libfips-lib-asn1_dsa.o", @@ -25469,6 +29739,7 @@ our %unified_info = ( "crypto/libfips-lib-params.o", "crypto/libfips-lib-params_dup.o", "crypto/libfips-lib-params_from_text.o", + "crypto/libfips-lib-params_idx.o", "crypto/libfips-lib-provider_core.o", "crypto/libfips-lib-provider_predefined.o", "crypto/libfips-lib-self_test_core.o", @@ -25477,6 +29748,16 @@ our %unified_info = ( "crypto/libfips-lib-threads_none.o", "crypto/libfips-lib-threads_pthread.o", "crypto/libfips-lib-threads_win.o", + "crypto/libfips-lib-time.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_encoders.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_key.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_key_compress.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_matrix.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_ntt.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_params.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_sample.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_sign.o", + "crypto/ml_kem/libfips-lib-ml_kem.o", "crypto/modes/libfips-lib-cbc128.o", "crypto/modes/libfips-lib-ccm128.o", "crypto/modes/libfips-lib-cfb128.o", @@ -25485,6 +29766,7 @@ our %unified_info = ( "crypto/modes/libfips-lib-ofb128.o", "crypto/modes/libfips-lib-wrap128.o", "crypto/modes/libfips-lib-xts128.o", + "crypto/modes/libfips-lib-xts128gb.o", "crypto/property/libfips-lib-defn_cache.o", "crypto/property/libfips-lib-property.o", "crypto/property/libfips-lib-property_parse.o", @@ -25513,7 +29795,23 @@ our %unified_info = ( "crypto/sha/libfips-lib-sha256.o", "crypto/sha/libfips-lib-sha3.o", "crypto/sha/libfips-lib-sha512.o", + "crypto/slh_dsa/libfips-lib-slh_adrs.o", + "crypto/slh_dsa/libfips-lib-slh_dsa.o", + "crypto/slh_dsa/libfips-lib-slh_dsa_hash_ctx.o", + "crypto/slh_dsa/libfips-lib-slh_dsa_key.o", + "crypto/slh_dsa/libfips-lib-slh_fors.o", + "crypto/slh_dsa/libfips-lib-slh_hash.o", + "crypto/slh_dsa/libfips-lib-slh_hypertree.o", + "crypto/slh_dsa/libfips-lib-slh_params.o", + "crypto/slh_dsa/libfips-lib-slh_wots.o", + "crypto/slh_dsa/libfips-lib-slh_xmss.o", "crypto/stack/libfips-lib-stack.o", + "crypto/thread/arch/libfips-lib-thread_none.o", + "crypto/thread/arch/libfips-lib-thread_posix.o", + "crypto/thread/arch/libfips-lib-thread_win.o", + "crypto/thread/libfips-lib-api.o", + "crypto/thread/libfips-lib-arch.o", + "crypto/thread/libfips-lib-internal.o", "providers/common/der/libfips-lib-der_rsa_sig.o", "providers/common/libfips-lib-bio_prov.o", "providers/common/libfips-lib-capabilities.o", @@ -25522,6 +29820,7 @@ our %unified_info = ( "providers/common/libfips-lib-provider_util.o", "providers/common/libfips-lib-securitycheck.o", "providers/common/libfips-lib-securitycheck_fips.o", + "providers/fips/libfips-lib-fipsindicator.o", "providers/fips/libfips-lib-fipsprov.o", "providers/fips/libfips-lib-self_test.o", "providers/fips/libfips-lib-self_test_kats.o", @@ -25559,6 +29858,8 @@ our %unified_info = ( "providers/implementations/kdfs/libfips-lib-sskdf.o", "providers/implementations/kdfs/libfips-lib-tls1_prf.o", "providers/implementations/kdfs/libfips-lib-x942kdf.o", + "providers/implementations/kem/libfips-lib-ml_kem_kem.o", + "providers/implementations/kem/libfips-lib-mlx_kem.o", "providers/implementations/kem/libfips-lib-rsa_kem.o", "providers/implementations/keymgmt/libfips-lib-dh_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-dsa_kmgmt.o", @@ -25566,24 +29867,32 @@ our %unified_info = ( "providers/implementations/keymgmt/libfips-lib-ecx_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-kdf_legacy_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-mac_legacy_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-ml_dsa_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-ml_kem_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-mlx_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-rsa_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-slh_dsa_kmgmt.o", "providers/implementations/macs/libfips-lib-cmac_prov.o", "providers/implementations/macs/libfips-lib-gmac_prov.o", "providers/implementations/macs/libfips-lib-hmac_prov.o", "providers/implementations/macs/libfips-lib-kmac_prov.o", - "providers/implementations/rands/libfips-lib-crngt.o", "providers/implementations/rands/libfips-lib-drbg.o", "providers/implementations/rands/libfips-lib-drbg_ctr.o", "providers/implementations/rands/libfips-lib-drbg_hash.o", "providers/implementations/rands/libfips-lib-drbg_hmac.o", + "providers/implementations/rands/libfips-lib-fips_crng_test.o", "providers/implementations/rands/libfips-lib-test_rng.o", "providers/implementations/signature/libfips-lib-dsa_sig.o", "providers/implementations/signature/libfips-lib-ecdsa_sig.o", "providers/implementations/signature/libfips-lib-eddsa_sig.o", "providers/implementations/signature/libfips-lib-mac_legacy_sig.o", + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o", "providers/implementations/signature/libfips-lib-rsa_sig.o", + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o", + "providers/implementations/skeymgmt/libfips-lib-aes_skmgmt.o", + "providers/implementations/skeymgmt/libfips-lib-generic.o", "providers/libcommon.a", - "ssl/libfips-lib-s3_cbc.o" + "ssl/record/methods/libfips-lib-ssl3_cbc.o" ], "providers/liblegacy-lib-prov_running.o" => [ "providers/prov_running.c" @@ -25613,13 +29922,12 @@ our %unified_info = ( "providers/implementations/digests/liblegacy-lib-ripemd_prov.o", "providers/implementations/digests/liblegacy-lib-wp_prov.o", "providers/implementations/kdfs/liblegacy-lib-pbkdf1.o", + "providers/implementations/kdfs/liblegacy-lib-pvkkdf.o", "providers/liblegacy-lib-prov_running.o" ], - "ssl/libdefault-lib-s3_cbc.o" => [ - "ssl/s3_cbc.c" - ], - "ssl/libfips-lib-s3_cbc.o" => [ - "ssl/s3_cbc.c" + "providers/libtemplate.a" => [ + "providers/implementations/kem/libtemplate-lib-template_kem.o", + "providers/implementations/keymgmt/libtemplate-lib-template_kmgmt.o" ], "ssl/libssl-lib-bio_ssl.o" => [ "ssl/bio_ssl.c" @@ -25639,6 +29947,9 @@ our %unified_info = ( "ssl/libssl-lib-pqueue.o" => [ "ssl/pqueue.c" ], + "ssl/libssl-lib-priority_queue.o" => [ + "ssl/priority_queue.c" + ], "ssl/libssl-lib-s3_enc.o" => [ "ssl/s3_enc.c" ], @@ -25654,15 +29965,15 @@ our %unified_info = ( "ssl/libssl-lib-ssl_cert.o" => [ "ssl/ssl_cert.c" ], + "ssl/libssl-lib-ssl_cert_comp.o" => [ + "ssl/ssl_cert_comp.c" + ], "ssl/libssl-lib-ssl_ciph.o" => [ "ssl/ssl_ciph.c" ], "ssl/libssl-lib-ssl_conf.o" => [ "ssl/ssl_conf.c" ], - "ssl/libssl-lib-ssl_err.o" => [ - "ssl/ssl_err.c" - ], "ssl/libssl-lib-ssl_err_legacy.o" => [ "ssl/ssl_err_legacy.c" ], @@ -25711,11 +30022,131 @@ our %unified_info = ( "ssl/libssl-lib-tls_srp.o" => [ "ssl/tls_srp.c" ], - "ssl/record/libcommon-lib-tls_pad.o" => [ - "ssl/record/tls_pad.c" + "ssl/quic/libssl-lib-cc_newreno.o" => [ + "ssl/quic/cc_newreno.c" + ], + "ssl/quic/libssl-lib-json_enc.o" => [ + "ssl/quic/json_enc.c" + ], + "ssl/quic/libssl-lib-qlog.o" => [ + "ssl/quic/qlog.c" + ], + "ssl/quic/libssl-lib-qlog_event_helpers.o" => [ + "ssl/quic/qlog_event_helpers.c" + ], + "ssl/quic/libssl-lib-quic_ackm.o" => [ + "ssl/quic/quic_ackm.c" + ], + "ssl/quic/libssl-lib-quic_cfq.o" => [ + "ssl/quic/quic_cfq.c" + ], + "ssl/quic/libssl-lib-quic_channel.o" => [ + "ssl/quic/quic_channel.c" + ], + "ssl/quic/libssl-lib-quic_demux.o" => [ + "ssl/quic/quic_demux.c" + ], + "ssl/quic/libssl-lib-quic_engine.o" => [ + "ssl/quic/quic_engine.c" + ], + "ssl/quic/libssl-lib-quic_fc.o" => [ + "ssl/quic/quic_fc.c" + ], + "ssl/quic/libssl-lib-quic_fifd.o" => [ + "ssl/quic/quic_fifd.c" + ], + "ssl/quic/libssl-lib-quic_impl.o" => [ + "ssl/quic/quic_impl.c" + ], + "ssl/quic/libssl-lib-quic_lcidm.o" => [ + "ssl/quic/quic_lcidm.c" + ], + "ssl/quic/libssl-lib-quic_method.o" => [ + "ssl/quic/quic_method.c" + ], + "ssl/quic/libssl-lib-quic_obj.o" => [ + "ssl/quic/quic_obj.c" + ], + "ssl/quic/libssl-lib-quic_port.o" => [ + "ssl/quic/quic_port.c" + ], + "ssl/quic/libssl-lib-quic_rcidm.o" => [ + "ssl/quic/quic_rcidm.c" + ], + "ssl/quic/libssl-lib-quic_reactor.o" => [ + "ssl/quic/quic_reactor.c" + ], + "ssl/quic/libssl-lib-quic_reactor_wait_ctx.o" => [ + "ssl/quic/quic_reactor_wait_ctx.c" + ], + "ssl/quic/libssl-lib-quic_record_rx.o" => [ + "ssl/quic/quic_record_rx.c" + ], + "ssl/quic/libssl-lib-quic_record_shared.o" => [ + "ssl/quic/quic_record_shared.c" + ], + "ssl/quic/libssl-lib-quic_record_tx.o" => [ + "ssl/quic/quic_record_tx.c" + ], + "ssl/quic/libssl-lib-quic_record_util.o" => [ + "ssl/quic/quic_record_util.c" ], - "ssl/record/libssl-lib-dtls1_bitmap.o" => [ - "ssl/record/dtls1_bitmap.c" + "ssl/quic/libssl-lib-quic_rstream.o" => [ + "ssl/quic/quic_rstream.c" + ], + "ssl/quic/libssl-lib-quic_rx_depack.o" => [ + "ssl/quic/quic_rx_depack.c" + ], + "ssl/quic/libssl-lib-quic_sf_list.o" => [ + "ssl/quic/quic_sf_list.c" + ], + "ssl/quic/libssl-lib-quic_srt_gen.o" => [ + "ssl/quic/quic_srt_gen.c" + ], + "ssl/quic/libssl-lib-quic_srtm.o" => [ + "ssl/quic/quic_srtm.c" + ], + "ssl/quic/libssl-lib-quic_sstream.o" => [ + "ssl/quic/quic_sstream.c" + ], + "ssl/quic/libssl-lib-quic_statm.o" => [ + "ssl/quic/quic_statm.c" + ], + "ssl/quic/libssl-lib-quic_stream_map.o" => [ + "ssl/quic/quic_stream_map.c" + ], + "ssl/quic/libssl-lib-quic_thread_assist.o" => [ + "ssl/quic/quic_thread_assist.c" + ], + "ssl/quic/libssl-lib-quic_tls.o" => [ + "ssl/quic/quic_tls.c" + ], + "ssl/quic/libssl-lib-quic_tls_api.o" => [ + "ssl/quic/quic_tls_api.c" + ], + "ssl/quic/libssl-lib-quic_trace.o" => [ + "ssl/quic/quic_trace.c" + ], + "ssl/quic/libssl-lib-quic_tserver.o" => [ + "ssl/quic/quic_tserver.c" + ], + "ssl/quic/libssl-lib-quic_txp.o" => [ + "ssl/quic/quic_txp.c" + ], + "ssl/quic/libssl-lib-quic_txpim.o" => [ + "ssl/quic/quic_txpim.c" + ], + "ssl/quic/libssl-lib-quic_types.o" => [ + "ssl/quic/quic_types.c" + ], + "ssl/quic/libssl-lib-quic_wire.o" => [ + "ssl/quic/quic_wire.c" + ], + "ssl/quic/libssl-lib-quic_wire_pkt.o" => [ + "ssl/quic/quic_wire_pkt.c" + ], + "ssl/quic/libssl-lib-uint_set.o" => [ + "ssl/quic/uint_set.c" ], "ssl/record/libssl-lib-rec_layer_d1.o" => [ "ssl/record/rec_layer_d1.c" @@ -25723,14 +30154,44 @@ our %unified_info = ( "ssl/record/libssl-lib-rec_layer_s3.o" => [ "ssl/record/rec_layer_s3.c" ], - "ssl/record/libssl-lib-ssl3_buffer.o" => [ - "ssl/record/ssl3_buffer.c" + "ssl/record/methods/libcommon-lib-tls_pad.o" => [ + "ssl/record/methods/tls_pad.c" + ], + "ssl/record/methods/libdefault-lib-ssl3_cbc.o" => [ + "ssl/record/methods/ssl3_cbc.c" + ], + "ssl/record/methods/libfips-lib-ssl3_cbc.o" => [ + "ssl/record/methods/ssl3_cbc.c" + ], + "ssl/record/methods/libssl-lib-dtls_meth.o" => [ + "ssl/record/methods/dtls_meth.c" + ], + "ssl/record/methods/libssl-lib-ssl3_meth.o" => [ + "ssl/record/methods/ssl3_meth.c" + ], + "ssl/record/methods/libssl-lib-tls13_meth.o" => [ + "ssl/record/methods/tls13_meth.c" + ], + "ssl/record/methods/libssl-lib-tls1_meth.o" => [ + "ssl/record/methods/tls1_meth.c" ], - "ssl/record/libssl-lib-ssl3_record.o" => [ - "ssl/record/ssl3_record.c" + "ssl/record/methods/libssl-lib-tls_common.o" => [ + "ssl/record/methods/tls_common.c" ], - "ssl/record/libssl-lib-ssl3_record_tls13.o" => [ - "ssl/record/ssl3_record_tls13.c" + "ssl/record/methods/libssl-lib-tls_multib.o" => [ + "ssl/record/methods/tls_multib.c" + ], + "ssl/record/methods/libssl-lib-tlsany_meth.o" => [ + "ssl/record/methods/tlsany_meth.c" + ], + "ssl/rio/libssl-lib-poll_builder.o" => [ + "ssl/rio/poll_builder.c" + ], + "ssl/rio/libssl-lib-poll_immediate.o" => [ + "ssl/rio/poll_immediate.c" + ], + "ssl/rio/libssl-lib-rio_notifier.o" => [ + "ssl/rio/rio_notifier.c" ], "ssl/statem/libssl-lib-extensions.o" => [ "ssl/statem/extensions.c" @@ -25826,6 +30287,8 @@ our %unified_info = ( "test/asn1_string_table_test.c" ], "test/asn1_time_test" => [ + "crypto/asn1/asn1_time_test-bin-a_time.o", + "crypto/asn1_time_test-bin-ctype.o", "test/asn1_time_test-bin-asn1_time_test.o" ], "test/asn1_time_test-bin-asn1_time_test.o" => [ @@ -25856,6 +30319,18 @@ our %unified_info = ( "test/bftest-bin-bftest.o" => [ "test/bftest.c" ], + "test/bio_addr_test" => [ + "test/bio_addr_test-bin-bio_addr_test.o" + ], + "test/bio_addr_test-bin-bio_addr_test.o" => [ + "test/bio_addr_test.c" + ], + "test/bio_base64_test" => [ + "test/bio_base64_test-bin-bio_base64_test.o" + ], + "test/bio_base64_test-bin-bio_base64_test.o" => [ + "test/bio_base64_test.c" + ], "test/bio_callback_test" => [ "test/bio_callback_test-bin-bio_callback_test.o" ], @@ -25868,6 +30343,12 @@ our %unified_info = ( "test/bio_core_test-bin-bio_core_test.o" => [ "test/bio_core_test.c" ], + "test/bio_dgram_test" => [ + "test/bio_dgram_test-bin-bio_dgram_test.o" + ], + "test/bio_dgram_test-bin-bio_dgram_test.o" => [ + "test/bio_dgram_test.c" + ], "test/bio_enc_test" => [ "test/bio_enc_test-bin-bio_enc_test.o" ], @@ -25880,6 +30361,12 @@ our %unified_info = ( "test/bio_memleak_test-bin-bio_memleak_test.o" => [ "test/bio_memleak_test.c" ], + "test/bio_meth_test" => [ + "test/bio_meth_test-bin-bio_meth_test.o" + ], + "test/bio_meth_test-bin-bio_meth_test.o" => [ + "test/bio_meth_test.c" + ], "test/bio_prefix_text" => [ "test/bio_prefix_text-bin-bio_prefix_text.o" ], @@ -25898,6 +30385,12 @@ our %unified_info = ( "test/bio_readbuffer_test-bin-bio_readbuffer_test.o" => [ "test/bio_readbuffer_test.c" ], + "test/bio_tfo_test" => [ + "test/bio_tfo_test-bin-bio_tfo_test.o" + ], + "test/bio_tfo_test-bin-bio_tfo_test.o" => [ + "test/bio_tfo_test.c" + ], "test/bioprinttest" => [ "test/bioprinttest-bin-bioprinttest.o" ], @@ -25916,6 +30409,12 @@ our %unified_info = ( "test/bntest-bin-bntest.o" => [ "test/bntest.c" ], + "test/build_wincrypt_test" => [ + "test/build_wincrypt_test-bin-build_wincrypt_test.o" + ], + "test/build_wincrypt_test-bin-build_wincrypt_test.o" => [ + "test/build_wincrypt_test.c" + ], "test/buildtest_c_aes" => [ "test/buildtest_c_aes-bin-buildtest_aes.o" ], @@ -25946,6 +30445,12 @@ our %unified_info = ( "test/buildtest_c_buffer-bin-buildtest_buffer.o" => [ "test/buildtest_buffer.c" ], + "test/buildtest_c_byteorder" => [ + "test/buildtest_c_byteorder-bin-buildtest_byteorder.o" + ], + "test/buildtest_c_byteorder-bin-buildtest_byteorder.o" => [ + "test/buildtest_byteorder.c" + ], "test/buildtest_c_camellia" => [ "test/buildtest_c_camellia-bin-buildtest_camellia.o" ], @@ -25994,12 +30499,6 @@ our %unified_info = ( "test/buildtest_c_core_dispatch-bin-buildtest_core_dispatch.o" => [ "test/buildtest_core_dispatch.c" ], - "test/buildtest_c_core_names" => [ - "test/buildtest_c_core_names-bin-buildtest_core_names.o" - ], - "test/buildtest_c_core_names-bin-buildtest_core_names.o" => [ - "test/buildtest_core_names.c" - ], "test/buildtest_c_core_object" => [ "test/buildtest_c_core_object-bin-buildtest_core_object.o" ], @@ -26048,6 +30547,12 @@ our %unified_info = ( "test/buildtest_c_e_os2-bin-buildtest_e_os2.o" => [ "test/buildtest_e_os2.c" ], + "test/buildtest_c_e_ostime" => [ + "test/buildtest_c_e_ostime-bin-buildtest_e_ostime.o" + ], + "test/buildtest_c_e_ostime-bin-buildtest_e_ostime.o" => [ + "test/buildtest_e_ostime.c" + ], "test/buildtest_c_ebcdic" => [ "test/buildtest_c_ebcdic-bin-buildtest_ebcdic.o" ], @@ -26102,6 +30607,12 @@ our %unified_info = ( "test/buildtest_c_hmac-bin-buildtest_hmac.o" => [ "test/buildtest_hmac.c" ], + "test/buildtest_c_hpke" => [ + "test/buildtest_c_hpke-bin-buildtest_hpke.o" + ], + "test/buildtest_c_hpke-bin-buildtest_hpke.o" => [ + "test/buildtest_hpke.c" + ], "test/buildtest_c_http" => [ "test/buildtest_c_http-bin-buildtest_http.o" ], @@ -26114,6 +30625,12 @@ our %unified_info = ( "test/buildtest_c_idea-bin-buildtest_idea.o" => [ "test/buildtest_idea.c" ], + "test/buildtest_c_indicator" => [ + "test/buildtest_c_indicator-bin-buildtest_indicator.o" + ], + "test/buildtest_c_indicator-bin-buildtest_indicator.o" => [ + "test/buildtest_indicator.c" + ], "test/buildtest_c_kdf" => [ "test/buildtest_c_kdf-bin-buildtest_kdf.o" ], @@ -26144,6 +30661,12 @@ our %unified_info = ( "test/buildtest_c_mdc2-bin-buildtest_mdc2.o" => [ "test/buildtest_mdc2.c" ], + "test/buildtest_c_ml_kem" => [ + "test/buildtest_c_ml_kem-bin-buildtest_ml_kem.o" + ], + "test/buildtest_c_ml_kem-bin-buildtest_ml_kem.o" => [ + "test/buildtest_ml_kem.c" + ], "test/buildtest_c_modes" => [ "test/buildtest_c_modes-bin-buildtest_modes.o" ], @@ -26204,6 +30727,12 @@ our %unified_info = ( "test/buildtest_c_provider-bin-buildtest_provider.o" => [ "test/buildtest_provider.c" ], + "test/buildtest_c_quic" => [ + "test/buildtest_c_quic-bin-buildtest_quic.o" + ], + "test/buildtest_c_quic-bin-buildtest_quic.o" => [ + "test/buildtest_quic.c" + ], "test/buildtest_c_rand" => [ "test/buildtest_c_rand-bin-buildtest_rand.o" ], @@ -26288,6 +30817,12 @@ our %unified_info = ( "test/buildtest_c_symhacks-bin-buildtest_symhacks.o" => [ "test/buildtest_symhacks.c" ], + "test/buildtest_c_thread" => [ + "test/buildtest_c_thread-bin-buildtest_thread.o" + ], + "test/buildtest_c_thread-bin-buildtest_thread.o" => [ + "test/buildtest_thread.c" + ], "test/buildtest_c_tls1" => [ "test/buildtest_c_tls1-bin-buildtest_tls1.o" ], @@ -26318,6 +30853,29 @@ our %unified_info = ( "test/buildtest_c_whrlpool-bin-buildtest_whrlpool.o" => [ "test/buildtest_whrlpool.c" ], + "test/byteorder_test" => [ + "test/byteorder_test-bin-byteorder_test.o" + ], + "test/byteorder_test-bin-byteorder_test.o" => [ + "test/byteorder_test.c" + ], + "test/ca_internals_test" => [ + "apps/ca_internals_test-bin-ca.o", + "apps/lib/ca_internals_test-bin-app_libctx.o", + "apps/lib/ca_internals_test-bin-app_provider.o", + "apps/lib/ca_internals_test-bin-app_rand.o", + "apps/lib/ca_internals_test-bin-app_x509.o", + "apps/lib/ca_internals_test-bin-apps.o", + "apps/lib/ca_internals_test-bin-apps_ui.o", + "apps/lib/ca_internals_test-bin-engine.o", + "apps/lib/ca_internals_test-bin-fmt.o", + "crypto/asn1/ca_internals_test-bin-a_time.o", + "crypto/ca_internals_test-bin-ctype.o", + "test/ca_internals_test-bin-ca_internals_test.o" + ], + "test/ca_internals_test-bin-ca_internals_test.o" => [ + "test/ca_internals_test.c" + ], "test/casttest" => [ "test/casttest-bin-casttest.o" ], @@ -26496,6 +31054,12 @@ our %unified_info = ( "test/danetest-bin-danetest.o" => [ "test/danetest.c" ], + "test/decoder_propq_test" => [ + "test/decoder_propq_test-bin-decoder_propq_test.o" + ], + "test/decoder_propq_test-bin-decoder_propq_test.o" => [ + "test/decoder_propq_test.c" + ], "test/defltfips_test" => [ "test/defltfips_test-bin-defltfips_test.o" ], @@ -26577,6 +31141,7 @@ our %unified_info = ( "test/ectest.c" ], "test/endecode_test" => [ + "providers/endecode_test-bin-legacyprov.o", "test/endecode_test-bin-endecode_test.o", "test/helpers/endecode_test-bin-predefined_dhparams.o" ], @@ -26609,17 +31174,29 @@ our %unified_info = ( ], "test/evp_extra_test" => [ "providers/evp_extra_test-bin-legacyprov.o", - "test/evp_extra_test-bin-evp_extra_test.o" + "test/evp_extra_test-bin-evp_extra_test.o", + "test/evp_extra_test-bin-fake_pipelineprov.o", + "test/evp_extra_test-bin-fake_rsaprov.o" ], "test/evp_extra_test-bin-evp_extra_test.o" => [ "test/evp_extra_test.c" ], + "test/evp_extra_test-bin-fake_pipelineprov.o" => [ + "test/fake_pipelineprov.c" + ], + "test/evp_extra_test-bin-fake_rsaprov.o" => [ + "test/fake_rsaprov.c" + ], "test/evp_extra_test2" => [ - "test/evp_extra_test2-bin-evp_extra_test2.o" + "test/evp_extra_test2-bin-evp_extra_test2.o", + "test/evp_extra_test2-bin-tls-provider.o" ], "test/evp_extra_test2-bin-evp_extra_test2.o" => [ "test/evp_extra_test2.c" ], + "test/evp_extra_test2-bin-tls-provider.o" => [ + "test/tls-provider.c" + ], "test/evp_fetch_prov_test" => [ "test/evp_fetch_prov_test-bin-evp_fetch_prov_test.o" ], @@ -26644,6 +31221,12 @@ our %unified_info = ( "test/evp_pkey_ctx_new_from_name-bin-evp_pkey_ctx_new_from_name.o" => [ "test/evp_pkey_ctx_new_from_name.c" ], + "test/evp_pkey_dhkem_test" => [ + "test/evp_pkey_dhkem_test-bin-evp_pkey_dhkem_test.o" + ], + "test/evp_pkey_dhkem_test-bin-evp_pkey_dhkem_test.o" => [ + "test/evp_pkey_dhkem_test.c" + ], "test/evp_pkey_dparams_test" => [ "test/evp_pkey_dparams_test-bin-evp_pkey_dparams_test.o" ], @@ -26656,12 +31239,28 @@ our %unified_info = ( "test/evp_pkey_provided_test-bin-evp_pkey_provided_test.o" => [ "test/evp_pkey_provided_test.c" ], + "test/evp_skey_test" => [ + "test/evp_skey_test-bin-evp_skey_test.o", + "test/evp_skey_test-bin-fake_cipherprov.o" + ], + "test/evp_skey_test-bin-evp_skey_test.o" => [ + "test/evp_skey_test.c" + ], + "test/evp_skey_test-bin-fake_cipherprov.o" => [ + "test/fake_cipherprov.c" + ], "test/evp_test" => [ "test/evp_test-bin-evp_test.o" ], "test/evp_test-bin-evp_test.o" => [ "test/evp_test.c" ], + "test/evp_xof_test" => [ + "test/evp_xof_test-bin-evp_xof_test.o" + ], + "test/evp_xof_test-bin-evp_xof_test.o" => [ + "test/evp_xof_test.c" + ], "test/exdatatest" => [ "test/exdatatest-bin-exdatatest.o" ], @@ -26747,15 +31346,108 @@ our %unified_info = ( "test/helpers/fatalerrtest-bin-ssltestlib.o" => [ "test/helpers/ssltestlib.c" ], + "test/helpers/json_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/json_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/json_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/json_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/pkcs12_api_test-bin-pkcs12.o" => [ + "test/helpers/pkcs12.c" + ], "test/helpers/pkcs12_format_test-bin-pkcs12.o" => [ "test/helpers/pkcs12.c" ], + "test/helpers/quic_multistream_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quic_multistream_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quic_multistream_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quic_multistream_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quic_newcid_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quic_newcid_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quic_newcid_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quic_newcid_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quic_radix_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quic_radix_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quic_radix_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quic_radix_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quic_srt_gen_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quic_srt_gen_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quic_srt_gen_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quic_srt_gen_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quicapitest-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quicapitest-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quicapitest-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quicapitest-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quicfaultstest-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quicfaultstest-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quicfaultstest-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quicfaultstest-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], "test/helpers/recordlentest-bin-ssltestlib.o" => [ "test/helpers/ssltestlib.c" ], + "test/helpers/rpktest-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], "test/helpers/servername_test-bin-ssltestlib.o" => [ "test/helpers/ssltestlib.c" ], + "test/helpers/ssl_handshake_rtt_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], "test/helpers/ssl_old_test-bin-predefined_dhparams.o" => [ "test/helpers/predefined_dhparams.c" ], @@ -26783,6 +31475,9 @@ our %unified_info = ( "test/helpers/tls13ccstest-bin-ssltestlib.o" => [ "test/helpers/ssltestlib.c" ], + "test/helpers/tls13groupselection_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], "test/hexstr_test" => [ "test/hexstr_test-bin-hexstr_test.o" ], @@ -26795,6 +31490,12 @@ our %unified_info = ( "test/hmactest-bin-hmactest.o" => [ "test/hmactest.c" ], + "test/hpke_test" => [ + "test/hpke_test-bin-hpke_test.o" + ], + "test/hpke_test-bin-hpke_test.o" => [ + "test/hpke_test.c" + ], "test/http_test" => [ "test/http_test-bin-http_test.o" ], @@ -26813,6 +31514,16 @@ our %unified_info = ( "test/igetest-bin-igetest.o" => [ "test/igetest.c" ], + "test/json_test" => [ + "test/helpers/json_test-bin-noisydgrambio.o", + "test/helpers/json_test-bin-pktsplitbio.o", + "test/helpers/json_test-bin-quictestlib.o", + "test/helpers/json_test-bin-ssltestlib.o", + "test/json_test-bin-json_test.o" + ], + "test/json_test-bin-json_test.o" => [ + "test/json_test.c" + ], "test/keymgmt_internal_test" => [ "test/keymgmt_internal_test-bin-keymgmt_internal_test.o" ], @@ -26834,6 +31545,7 @@ our %unified_info = ( "test/testutil/libtestutil-lib-driver.o", "test/testutil/libtestutil-lib-fake_random.o", "test/testutil/libtestutil-lib-format_output.o", + "test/testutil/libtestutil-lib-helper.o", "test/testutil/libtestutil-lib-load.o", "test/testutil/libtestutil-lib-main.o", "test/testutil/libtestutil-lib-options.o", @@ -26846,6 +31558,12 @@ our %unified_info = ( "test/testutil/libtestutil-lib-tests.o", "test/testutil/libtestutil-lib-testutil_init.o" ], + "test/list_test" => [ + "test/list_test-bin-list_test.o" + ], + "test/list_test-bin-list_test.o" => [ + "test/list_test.c" + ], "test/localetest" => [ "test/localetest-bin-localetest.o" ], @@ -26864,12 +31582,36 @@ our %unified_info = ( "test/mdc2test-bin-mdc2test.o" => [ "test/mdc2test.c" ], + "test/membio_test" => [ + "test/membio_test-bin-membio_test.o" + ], + "test/membio_test-bin-membio_test.o" => [ + "test/membio_test.c" + ], "test/memleaktest" => [ "test/memleaktest-bin-memleaktest.o" ], "test/memleaktest-bin-memleaktest.o" => [ "test/memleaktest.c" ], + "test/ml_dsa_test" => [ + "test/ml_dsa_test-bin-ml_dsa_test.o" + ], + "test/ml_dsa_test-bin-ml_dsa_test.o" => [ + "test/ml_dsa_test.c" + ], + "test/ml_kem_evp_extra_test" => [ + "test/ml_kem_evp_extra_test-bin-ml_kem_evp_extra_test.o" + ], + "test/ml_kem_evp_extra_test-bin-ml_kem_evp_extra_test.o" => [ + "test/ml_kem_evp_extra_test.c" + ], + "test/ml_kem_internal_test" => [ + "test/ml_kem_internal_test-bin-ml_kem_internal_test.o" + ], + "test/ml_kem_internal_test-bin-ml_kem_internal_test.o" => [ + "test/ml_kem_internal_test.c" + ], "test/modes_internal_test" => [ "test/modes_internal_test-bin-modes_internal_test.o" ], @@ -26915,11 +31657,18 @@ our %unified_info = ( "test/p_test.c" ], "test/packettest" => [ + "crypto/packettest-bin-quic_vlint.o", "test/packettest-bin-packettest.o" ], "test/packettest-bin-packettest.o" => [ "test/packettest.c" ], + "test/pairwise_fail_test" => [ + "test/pairwise_fail_test-bin-pairwise_fail_test.o" + ], + "test/pairwise_fail_test-bin-pairwise_fail_test.o" => [ + "test/pairwise_fail_test.c" + ], "test/param_build_test" => [ "test/param_build_test-bin-param_build_test.o" ], @@ -26968,6 +31717,13 @@ our %unified_info = ( "test/pemtest-bin-pemtest.o" => [ "test/pemtest.c" ], + "test/pkcs12_api_test" => [ + "test/helpers/pkcs12_api_test-bin-pkcs12.o", + "test/pkcs12_api_test-bin-pkcs12_api_test.o" + ], + "test/pkcs12_api_test-bin-pkcs12_api_test.o" => [ + "test/pkcs12_api_test.c" + ], "test/pkcs12_format_test" => [ "test/helpers/pkcs12_format_test-bin-pkcs12.o", "test/pkcs12_format_test-bin-pkcs12_format_test.o" @@ -26999,6 +31755,12 @@ our %unified_info = ( "test/poly1305_internal_test-bin-poly1305_internal_test.o" => [ "test/poly1305_internal_test.c" ], + "test/priority_queue_test" => [ + "test/priority_queue_test-bin-priority_queue_test.o" + ], + "test/priority_queue_test-bin-priority_queue_test.o" => [ + "test/priority_queue_test.c" + ], "test/property_test" => [ "test/property_test-bin-property_test.o" ], @@ -27017,6 +31779,12 @@ our %unified_info = ( "test/provfetchtest-bin-provfetchtest.o" => [ "test/provfetchtest.c" ], + "test/provider_default_search_path_test" => [ + "test/provider_default_search_path_test-bin-provider_default_search_path_test.o" + ], + "test/provider_default_search_path_test-bin-provider_default_search_path_test.o" => [ + "test/provider_default_search_path_test.c" + ], "test/provider_fallback_test" => [ "test/provider_fallback_test-bin-provider_fallback_test.o" ], @@ -27065,6 +31833,174 @@ our %unified_info = ( "test/punycode_test-bin-punycode_test.o" => [ "test/punycode_test.c" ], + "test/quic_ackm_test" => [ + "test/quic_ackm_test-bin-cc_dummy.o", + "test/quic_ackm_test-bin-quic_ackm_test.o" + ], + "test/quic_ackm_test-bin-cc_dummy.o" => [ + "test/cc_dummy.c" + ], + "test/quic_ackm_test-bin-quic_ackm_test.o" => [ + "test/quic_ackm_test.c" + ], + "test/quic_cc_test" => [ + "test/quic_cc_test-bin-quic_cc_test.o" + ], + "test/quic_cc_test-bin-quic_cc_test.o" => [ + "test/quic_cc_test.c" + ], + "test/quic_cfq_test" => [ + "test/quic_cfq_test-bin-quic_cfq_test.o" + ], + "test/quic_cfq_test-bin-quic_cfq_test.o" => [ + "test/quic_cfq_test.c" + ], + "test/quic_client_test" => [ + "test/quic_client_test-bin-quic_client_test.o" + ], + "test/quic_client_test-bin-quic_client_test.o" => [ + "test/quic_client_test.c" + ], + "test/quic_fc_test" => [ + "test/quic_fc_test-bin-quic_fc_test.o" + ], + "test/quic_fc_test-bin-quic_fc_test.o" => [ + "test/quic_fc_test.c" + ], + "test/quic_fifd_test" => [ + "test/quic_fifd_test-bin-cc_dummy.o", + "test/quic_fifd_test-bin-quic_fifd_test.o" + ], + "test/quic_fifd_test-bin-cc_dummy.o" => [ + "test/cc_dummy.c" + ], + "test/quic_fifd_test-bin-quic_fifd_test.o" => [ + "test/quic_fifd_test.c" + ], + "test/quic_lcidm_test" => [ + "test/quic_lcidm_test-bin-quic_lcidm_test.o" + ], + "test/quic_lcidm_test-bin-quic_lcidm_test.o" => [ + "test/quic_lcidm_test.c" + ], + "test/quic_multistream_test" => [ + "test/helpers/quic_multistream_test-bin-noisydgrambio.o", + "test/helpers/quic_multistream_test-bin-pktsplitbio.o", + "test/helpers/quic_multistream_test-bin-quictestlib.o", + "test/helpers/quic_multistream_test-bin-ssltestlib.o", + "test/quic_multistream_test-bin-quic_multistream_test.o" + ], + "test/quic_multistream_test-bin-quic_multistream_test.o" => [ + "test/quic_multistream_test.c" + ], + "test/quic_newcid_test" => [ + "test/helpers/quic_newcid_test-bin-noisydgrambio.o", + "test/helpers/quic_newcid_test-bin-pktsplitbio.o", + "test/helpers/quic_newcid_test-bin-quictestlib.o", + "test/helpers/quic_newcid_test-bin-ssltestlib.o", + "test/quic_newcid_test-bin-quic_newcid_test.o" + ], + "test/quic_newcid_test-bin-quic_newcid_test.o" => [ + "test/quic_newcid_test.c" + ], + "test/quic_qlog_test" => [ + "test/quic_qlog_test-bin-quic_qlog_test.o" + ], + "test/quic_qlog_test-bin-quic_qlog_test.o" => [ + "test/quic_qlog_test.c" + ], + "test/quic_radix_test" => [ + "test/helpers/quic_radix_test-bin-noisydgrambio.o", + "test/helpers/quic_radix_test-bin-pktsplitbio.o", + "test/helpers/quic_radix_test-bin-quictestlib.o", + "test/helpers/quic_radix_test-bin-ssltestlib.o", + "test/radix/quic_radix_test-bin-quic_radix.o" + ], + "test/quic_rcidm_test" => [ + "test/quic_rcidm_test-bin-quic_rcidm_test.o" + ], + "test/quic_rcidm_test-bin-quic_rcidm_test.o" => [ + "test/quic_rcidm_test.c" + ], + "test/quic_record_test" => [ + "test/quic_record_test-bin-quic_record_test.o" + ], + "test/quic_record_test-bin-quic_record_test.o" => [ + "test/quic_record_test.c" + ], + "test/quic_srt_gen_test" => [ + "test/helpers/quic_srt_gen_test-bin-noisydgrambio.o", + "test/helpers/quic_srt_gen_test-bin-pktsplitbio.o", + "test/helpers/quic_srt_gen_test-bin-quictestlib.o", + "test/helpers/quic_srt_gen_test-bin-ssltestlib.o", + "test/quic_srt_gen_test-bin-quic_srt_gen_test.o" + ], + "test/quic_srt_gen_test-bin-quic_srt_gen_test.o" => [ + "test/quic_srt_gen_test.c" + ], + "test/quic_srtm_test" => [ + "test/quic_srtm_test-bin-quic_srtm_test.o" + ], + "test/quic_srtm_test-bin-quic_srtm_test.o" => [ + "test/quic_srtm_test.c" + ], + "test/quic_stream_test" => [ + "test/quic_stream_test-bin-quic_stream_test.o" + ], + "test/quic_stream_test-bin-quic_stream_test.o" => [ + "test/quic_stream_test.c" + ], + "test/quic_tserver_test" => [ + "test/quic_tserver_test-bin-quic_tserver_test.o" + ], + "test/quic_tserver_test-bin-quic_tserver_test.o" => [ + "test/quic_tserver_test.c" + ], + "test/quic_txp_test" => [ + "test/quic_txp_test-bin-cc_dummy.o", + "test/quic_txp_test-bin-quic_txp_test.o" + ], + "test/quic_txp_test-bin-cc_dummy.o" => [ + "test/cc_dummy.c" + ], + "test/quic_txp_test-bin-quic_txp_test.o" => [ + "test/quic_txp_test.c" + ], + "test/quic_txpim_test" => [ + "test/quic_txpim_test-bin-quic_txpim_test.o" + ], + "test/quic_txpim_test-bin-quic_txpim_test.o" => [ + "test/quic_txpim_test.c" + ], + "test/quic_wire_test" => [ + "test/quic_wire_test-bin-quic_wire_test.o" + ], + "test/quic_wire_test-bin-quic_wire_test.o" => [ + "test/quic_wire_test.c" + ], + "test/quicapitest" => [ + "test/helpers/quicapitest-bin-noisydgrambio.o", + "test/helpers/quicapitest-bin-pktsplitbio.o", + "test/helpers/quicapitest-bin-quictestlib.o", + "test/helpers/quicapitest-bin-ssltestlib.o", + "test/quicapitest-bin-quicapitest.o" + ], + "test/quicapitest-bin-quicapitest.o" => [ + "test/quicapitest.c" + ], + "test/quicfaultstest" => [ + "test/helpers/quicfaultstest-bin-noisydgrambio.o", + "test/helpers/quicfaultstest-bin-pktsplitbio.o", + "test/helpers/quicfaultstest-bin-quictestlib.o", + "test/helpers/quicfaultstest-bin-ssltestlib.o", + "test/quicfaultstest-bin-quicfaultstest.o" + ], + "test/quicfaultstest-bin-quicfaultstest.o" => [ + "test/quicfaultstest.c" + ], + "test/radix/quic_radix_test-bin-quic_radix.o" => [ + "test/radix/quic_radix.c" + ], "test/rand_status_test" => [ "test/rand_status_test-bin-rand_status_test.o" ], @@ -27095,11 +32031,11 @@ our %unified_info = ( "test/rc5test-bin-rc5test.o" => [ "test/rc5test.c" ], - "test/rdrand_sanitytest" => [ - "test/rdrand_sanitytest-bin-rdrand_sanitytest.o" + "test/rdcpu_sanitytest" => [ + "test/rdcpu_sanitytest-bin-rdcpu_sanitytest.o" ], - "test/rdrand_sanitytest-bin-rdrand_sanitytest.o" => [ - "test/rdrand_sanitytest.c" + "test/rdcpu_sanitytest-bin-rdcpu_sanitytest.o" => [ + "test/rdcpu_sanitytest.c" ], "test/recordlentest" => [ "test/helpers/recordlentest-bin-ssltestlib.o", @@ -27108,6 +32044,13 @@ our %unified_info = ( "test/recordlentest-bin-recordlentest.o" => [ "test/recordlentest.c" ], + "test/rpktest" => [ + "test/helpers/rpktest-bin-ssltestlib.o", + "test/rpktest-bin-rpktest.o" + ], + "test/rpktest-bin-rpktest.o" => [ + "test/rpktest.c" + ], "test/rsa_complex" => [ "test/rsa_complex-bin-rsa_complex.o" ], @@ -27132,6 +32075,18 @@ our %unified_info = ( "test/rsa_test-bin-rsa_test.o" => [ "test/rsa_test.c" ], + "test/rsa_x931_test" => [ + "test/rsa_x931_test-bin-rsa_x931_test.o" + ], + "test/rsa_x931_test-bin-rsa_x931_test.o" => [ + "test/rsa_x931_test.c" + ], + "test/safe_math_test" => [ + "test/safe_math_test-bin-safe_math_test.o" + ], + "test/safe_math_test-bin-safe_math_test.o" => [ + "test/safe_math_test.c" + ], "test/sanitytest" => [ "test/sanitytest-bin-sanitytest.o" ], @@ -27163,6 +32118,12 @@ our %unified_info = ( "test/siphash_internal_test-bin-siphash_internal_test.o" => [ "test/siphash_internal_test.c" ], + "test/slh_dsa_test" => [ + "test/slh_dsa_test-bin-slh_dsa_test.o" + ], + "test/slh_dsa_test-bin-slh_dsa_test.o" => [ + "test/slh_dsa_test.c" + ], "test/sm2_internal_test" => [ "test/sm2_internal_test-bin-sm2_internal_test.o" ], @@ -27205,6 +32166,13 @@ our %unified_info = ( "test/ssl_ctx_test-bin-ssl_ctx_test.o" => [ "test/ssl_ctx_test.c" ], + "test/ssl_handshake_rtt_test" => [ + "test/helpers/ssl_handshake_rtt_test-bin-ssltestlib.o", + "test/ssl_handshake_rtt_test-bin-ssl_handshake_rtt_test.o" + ], + "test/ssl_handshake_rtt_test-bin-ssl_handshake_rtt_test.o" => [ + "test/ssl_handshake_rtt_test.c" + ], "test/ssl_old_test" => [ "test/helpers/ssl_old_test-bin-predefined_dhparams.o", "test/ssl_old_test-bin-ssl_old_test.o" @@ -27263,6 +32231,12 @@ our %unified_info = ( "test/stack_test-bin-stack_test.o" => [ "test/stack_test.c" ], + "test/strtoultest" => [ + "test/strtoultest-bin-strtoultest.o" + ], + "test/strtoultest-bin-strtoultest.o" => [ + "test/strtoultest.c" + ], "test/sysdefaulttest" => [ "test/sysdefaulttest-bin-sysdefaulttest.o" ], @@ -27293,6 +32267,9 @@ our %unified_info = ( "test/testutil/libtestutil-lib-format_output.o" => [ "test/testutil/format_output.c" ], + "test/testutil/libtestutil-lib-helper.o" => [ + "test/testutil/helper.c" + ], "test/testutil/libtestutil-lib-load.o" => [ "test/testutil/load.c" ], @@ -27326,6 +32303,12 @@ our %unified_info = ( "test/testutil/libtestutil-lib-testutil_init.o" => [ "test/testutil/testutil_init.c" ], + "test/threadpool_test" => [ + "test/threadpool_test-bin-threadpool_test.o" + ], + "test/threadpool_test-bin-threadpool_test.o" => [ + "test/threadpool_test.c" + ], "test/threadstest" => [ "test/threadstest-bin-threadstest.o" ], @@ -27344,6 +32327,12 @@ our %unified_info = ( "test/time_offset_test-bin-time_offset_test.o" => [ "test/time_offset_test.c" ], + "test/time_test" => [ + "test/time_test-bin-time_test.o" + ], + "test/time_test-bin-time_test.o" => [ + "test/time_test.c" + ], "test/tls13ccstest" => [ "test/helpers/tls13ccstest-bin-ssltestlib.o", "test/tls13ccstest-bin-tls13ccstest.o" @@ -27357,6 +32346,13 @@ our %unified_info = ( "test/tls13encryptiontest-bin-tls13encryptiontest.o" => [ "test/tls13encryptiontest.c" ], + "test/tls13groupselection_test" => [ + "test/helpers/tls13groupselection_test-bin-ssltestlib.o", + "test/tls13groupselection_test-bin-tls13groupselection_test.o" + ], + "test/tls13groupselection_test-bin-tls13groupselection_test.o" => [ + "test/tls13groupselection_test.c" + ], "test/trace_api_test" => [ "test/trace_api_test-bin-trace_api_test.o" ], @@ -27412,6 +32408,12 @@ our %unified_info = ( "test/wpackettest-bin-wpackettest.o" => [ "test/wpackettest.c" ], + "test/x509_acert_test" => [ + "test/x509_acert_test-bin-x509_acert_test.o" + ], + "test/x509_acert_test-bin-x509_acert_test.o" => [ + "test/x509_acert_test.c" + ], "test/x509_check_cert_pkey_test" => [ "test/x509_check_cert_pkey_test-bin-x509_check_cert_pkey_test.o" ], @@ -27430,6 +32432,24 @@ our %unified_info = ( "test/x509_internal_test-bin-x509_internal_test.o" => [ "test/x509_internal_test.c" ], + "test/x509_load_cert_file_test" => [ + "test/x509_load_cert_file_test-bin-x509_load_cert_file_test.o" + ], + "test/x509_load_cert_file_test-bin-x509_load_cert_file_test.o" => [ + "test/x509_load_cert_file_test.c" + ], + "test/x509_req_test" => [ + "test/x509_req_test-bin-x509_req_test.o" + ], + "test/x509_req_test-bin-x509_req_test.o" => [ + "test/x509_req_test.c" + ], + "test/x509_test" => [ + "test/x509_test-bin-x509_test.o" + ], + "test/x509_test-bin-x509_test.o" => [ + "test/x509_test.c" + ], "test/x509_time_test" => [ "test/x509_time_test-bin-x509_time_test.o" ], @@ -27490,6 +32510,7 @@ my @makevars = ( "LDLIBS", "MT", "MTFLAGS", + "OBJCOPY", "PERL", "RANLIB", "RC", @@ -27506,6 +32527,12 @@ my %disabled_info = ( "asm" => { "macro" => "OPENSSL_NO_ASM" }, + "brotli" => { + "macro" => "OPENSSL_NO_BROTLI" + }, + "brotli-dynamic" => { + "macro" => "OPENSSL_NO_BROTLI_DYNAMIC" + }, "comp" => { "macro" => "OPENSSL_NO_COMP", "skipped" => [ @@ -27518,6 +32545,9 @@ my %disabled_info = ( "crypto-mdebug-backtrace" => { "macro" => "OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE" }, + "demos" => { + "macro" => "OPENSSL_NO_DEMOS" + }, "devcryptoeng" => { "macro" => "OPENSSL_NO_DEVCRYPTOENG" }, @@ -27530,12 +32560,24 @@ my %disabled_info = ( "external-tests" => { "macro" => "OPENSSL_NO_EXTERNAL_TESTS" }, + "fips-jitter" => { + "macro" => "OPENSSL_NO_FIPS_JITTER" + }, "fuzz-afl" => { "macro" => "OPENSSL_NO_FUZZ_AFL" }, "fuzz-libfuzzer" => { "macro" => "OPENSSL_NO_FUZZ_LIBFUZZER" }, + "h3demo" => { + "macro" => "OPENSSL_NO_H3DEMO" + }, + "hqinterop" => { + "macro" => "OPENSSL_NO_HQINTEROP" + }, + "jitter" => { + "macro" => "OPENSSL_NO_JITTER" + }, "ktls" => { "macro" => "OPENSSL_NO_KTLS" }, @@ -27551,6 +32593,9 @@ my %disabled_info = ( "msan" => { "macro" => "OPENSSL_NO_MSAN" }, + "pie" => { + "macro" => "OPENSSL_NO_PIE" + }, "rc5" => { "macro" => "OPENSSL_NO_RC5", "skipped" => [ @@ -27566,6 +32611,12 @@ my %disabled_info = ( "ssl3-method" => { "macro" => "OPENSSL_NO_SSL3_METHOD" }, + "sslkeylog" => { + "macro" => "OPENSSL_NO_SSLKEYLOG" + }, + "tfo" => { + "macro" => "OPENSSL_NO_TFO" + }, "trace" => { "macro" => "OPENSSL_NO_TRACE" }, @@ -27580,6 +32631,18 @@ my %disabled_info = ( }, "weak-ssl-ciphers" => { "macro" => "OPENSSL_NO_WEAK_SSL_CIPHERS" + }, + "zlib" => { + "macro" => "OPENSSL_NO_ZLIB" + }, + "zlib-dynamic" => { + "macro" => "OPENSSL_NO_ZLIB_DYNAMIC" + }, + "zstd" => { + "macro" => "OPENSSL_NO_ZSTD" + }, + "zstd-dynamic" => { + "macro" => "OPENSSL_NO_ZSTD_DYNAMIC" } ); my @user_crossable = qw( AR AS CC CXX CPP LD MT RANLIB RC ); @@ -27593,15 +32656,15 @@ unless (caller) { use File::Copy; use Pod::Usage; - use lib '/home/runner/work/node/node/deps/openssl/openssl/util/perl'; - use OpenSSL::fallback '/home/runner/work/node/node/deps/openssl/openssl/external/perl/MODULES.txt'; + use lib '/node/deps/openssl/openssl/util/perl'; + use OpenSSL::fallback '/node/deps/openssl/openssl/external/perl/MODULES.txt'; my $here = dirname($0); if (scalar @ARGV == 0) { # With no arguments, re-create the build file # We do that in two steps, where the first step emits perl - # snipets. + # snippets. my $buildfile = $config{build_file}; my $buildfile_template = "$buildfile.in"; @@ -27621,7 +32684,7 @@ unless (caller) { ); use lib '.'; - use lib '/home/runner/work/node/node/deps/openssl/openssl/Configurations'; + use lib '/node/deps/openssl/openssl/Configurations'; use gentemplate; open my $buildfile_template_fh, ">$buildfile_template" @@ -27638,8 +32701,8 @@ unless (caller) { my $prepend = <<'_____'; use File::Spec::Functions; -use lib '/home/runner/work/node/node/deps/openssl/openssl/util/perl'; -use lib '/home/runner/work/node/node/deps/openssl/openssl/Configurations'; +use lib '/node/deps/openssl/openssl/util/perl'; +use lib '/node/deps/openssl/openssl/Configurations'; use lib '.'; use platform; _____ diff --git a/deps/openssl/config/archs/VC-WIN64A/no-asm/crypto/buildinf.h b/deps/openssl/config/archs/VC-WIN64A/no-asm/crypto/buildinf.h index 2c32ce450f283c..5acc8754e019ea 100644 --- a/deps/openssl/config/archs/VC-WIN64A/no-asm/crypto/buildinf.h +++ b/deps/openssl/config/archs/VC-WIN64A/no-asm/crypto/buildinf.h @@ -11,7 +11,7 @@ */ #define PLATFORM "platform: " -#define DATE "built on: Sun Jul 20 00:55:41 2025 UTC" +#define DATE "built on: Sun Jul 27 00:59:24 2025 UTC" /* * Generate compiler_flags as an array of individual characters. This is a diff --git a/deps/openssl/config/archs/VC-WIN64A/no-asm/crypto/params_idx.c b/deps/openssl/config/archs/VC-WIN64A/no-asm/crypto/params_idx.c new file mode 100644 index 00000000000000..874125eb57a17c --- /dev/null +++ b/deps/openssl/config/archs/VC-WIN64A/no-asm/crypto/params_idx.c @@ -0,0 +1,3366 @@ +/* + * WARNING: do not edit! + * Generated by makefile from crypto/params_idx.c.in + * + * Copyright 2023 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + +#include "internal/e_os.h" +#include "internal/param_names.h" +#include + +/* Machine generated TRIE -- generated by util/perl/OpenSSL/paramnames.pm */ +int ossl_param_find_pidx(const char *s) +{ + switch(s[0]) { + default: + break; + case 'a': + switch(s[1]) { + default: + break; + case 'c': + if (strcmp("vp-info", s + 2) == 0) + return PIDX_KDF_PARAM_X942_ACVPINFO; + break; + case 'd': + switch(s[2]) { + default: + break; + case 'd': + if (strcmp("itional-random", s + 3) == 0) + return PIDX_SIGNATURE_PARAM_ADD_RANDOM; + break; + case '\0': + return PIDX_KDF_PARAM_ARGON2_AD; + } + break; + case 'e': + if (strcmp("ad", s + 2) == 0) + return PIDX_CIPHER_PARAM_AEAD; + break; + case 'l': + switch(s[2]) { + default: + break; + case 'g': + switch(s[3]) { + default: + break; + case '_': + if (strcmp("id_param", s + 4) == 0) + return PIDX_CIPHER_PARAM_ALGORITHM_ID_PARAMS_OLD; + break; + case 'i': + if (strcmp("d-absent", s + 4) == 0) + return PIDX_DIGEST_PARAM_ALGID_ABSENT; + break; + case 'o': + switch(s[4]) { + default: + break; + case 'r': + switch(s[5]) { + default: + break; + case 'i': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case 'h': + switch(s[8]) { + default: + break; + case 'm': + switch(s[9]) { + default: + break; + case '-': + switch(s[10]) { + default: + break; + case 'i': + switch(s[11]) { + default: + break; + case 'd': + switch(s[12]) { + default: + break; + case '-': + if (strcmp("params", s + 13) == 0) + return PIDX_ALG_PARAM_ALGORITHM_ID_PARAMS; + break; + case '\0': + return PIDX_ALG_PARAM_ALGORITHM_ID; + } + } + } + } + } + } + } + } + } + } + break; + case 'i': + if (strcmp("as", s + 3) == 0) + return PIDX_STORE_PARAM_ALIAS; + } + break; + case '\0': + return PIDX_PKEY_PARAM_EC_A; + } + break; + case 'b': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("sis-type", s + 2) == 0) + return PIDX_PKEY_PARAM_EC_CHAR2_TYPE; + break; + case 'i': + if (strcmp("ts", s + 2) == 0) + return PIDX_PKEY_PARAM_BITS; + break; + case 'l': + switch(s[2]) { + default: + break; + case 'o': + switch(s[3]) { + default: + break; + case 'c': + switch(s[4]) { + default: + break; + case 'k': + switch(s[5]) { + default: + break; + case '-': + if (strcmp("size", s + 6) == 0) + return PIDX_MAC_PARAM_BLOCK_SIZE; + break; + case '_': + if (strcmp("padding", s + 6) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_BLOCK_PADDING; + break; + case 's': + if (strcmp("ize", s + 6) == 0) + return PIDX_DIGEST_PARAM_BLOCK_SIZE; + } + } + } + } + break; + case 'u': + if (strcmp("ildinfo", s + 2) == 0) + return PIDX_PROV_PARAM_BUILDINFO; + break; + case '\0': + return PIDX_PKEY_PARAM_EC_B; + } + break; + case 'c': + switch(s[1]) { + default: + break; + case '-': + if (strcmp("rounds", s + 2) == 0) + return PIDX_MAC_PARAM_C_ROUNDS; + break; + case 'e': + if (strcmp("kalg", s + 2) == 0) + return PIDX_KDF_PARAM_CEK_ALG; + break; + case 'i': + if (strcmp("pher", s + 2) == 0) + return PIDX_ALG_PARAM_CIPHER; + break; + case 'o': + switch(s[2]) { + default: + break; + case 'f': + if (strcmp("actor", s + 3) == 0) + return PIDX_PKEY_PARAM_EC_COFACTOR; + break; + case 'n': + switch(s[3]) { + default: + break; + case 's': + if (strcmp("tant", s + 4) == 0) + return PIDX_KDF_PARAM_CONSTANT; + break; + case 't': + if (strcmp("ext-string", s + 4) == 0) + return PIDX_SIGNATURE_PARAM_CONTEXT_STRING; + } + } + break; + case 't': + switch(s[2]) { + default: + break; + case 's': + switch(s[3]) { + default: + break; + case '_': + if (strcmp("mode", s + 4) == 0) + return PIDX_CIPHER_PARAM_CTS_MODE; + break; + case '\0': + return PIDX_CIPHER_PARAM_CTS; + } + } + break; + case 'u': + switch(s[2]) { + default: + break; + case 's': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case 'o': + switch(s[5]) { + default: + break; + case 'm': + switch(s[6]) { + default: + break; + case '-': + if (strcmp("iv", s + 7) == 0) + return PIDX_CIPHER_PARAM_CUSTOM_IV; + break; + case '\0': + return PIDX_MAC_PARAM_CUSTOM; + } + } + } + } + } + } + break; + case 'd': + switch(s[1]) { + default: + break; + case '-': + if (strcmp("rounds", s + 2) == 0) + return PIDX_MAC_PARAM_D_ROUNDS; + break; + case 'a': + switch(s[2]) { + default: + break; + case 't': + switch(s[3]) { + default: + break; + case 'a': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 's': + if (strcmp("tructure", s + 6) == 0) + return PIDX_OBJECT_PARAM_DATA_STRUCTURE; + break; + case 't': + if (strcmp("ype", s + 6) == 0) + return PIDX_OBJECT_PARAM_DATA_TYPE; + } + break; + case '\0': + return PIDX_OBJECT_PARAM_DATA; + } + } + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'c': + switch(s[3]) { + default: + break; + case 'o': + if (strcmp("ded-from-explicit", s + 4) == 0) + return PIDX_PKEY_PARAM_EC_DECODED_FROM_EXPLICIT_PARAMS; + break; + case 'r': + if (strcmp("ypt-only", s + 4) == 0) + return PIDX_CIPHER_PARAM_DECRYPT_ONLY; + } + break; + case 'f': + if (strcmp("ault-digest", s + 3) == 0) + return PIDX_PKEY_PARAM_DEFAULT_DIGEST; + break; + case 's': + if (strcmp("c", s + 3) == 0) + return PIDX_OBJECT_PARAM_DESC; + break; + case 't': + if (strcmp("erministic", s + 3) == 0) + return PIDX_SIGNATURE_PARAM_DETERMINISTIC; + } + break; + case 'h': + if (strcmp("kem-ikm", s + 2) == 0) + return PIDX_PKEY_PARAM_DHKEM_IKM; + break; + case 'i': + switch(s[2]) { + default: + break; + case 'g': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case 's': + switch(s[5]) { + default: + break; + case 't': + switch(s[6]) { + default: + break; + case '-': + switch(s[7]) { + default: + break; + case 'c': + if (strcmp("heck", s + 8) == 0) + return PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK; + break; + case 'n': + if (strcmp("oinit", s + 8) == 0) + return PIDX_MAC_PARAM_DIGEST_NOINIT; + break; + case 'o': + if (strcmp("neshot", s + 8) == 0) + return PIDX_MAC_PARAM_DIGEST_ONESHOT; + break; + case 'p': + if (strcmp("rops", s + 8) == 0) + return PIDX_ASYM_CIPHER_PARAM_OAEP_DIGEST_PROPS; + break; + case 's': + if (strcmp("ize", s + 8) == 0) + return PIDX_PKEY_PARAM_DIGEST_SIZE; + } + break; + case '\0': + return PIDX_STORE_PARAM_DIGEST; + } + } + } + } + break; + case 's': + if (strcmp("tid", s + 3) == 0) + return PIDX_PKEY_PARAM_DIST_ID; + } + break; + case 'r': + if (strcmp("bg-no-trunc-md", s + 2) == 0) + return PIDX_PROV_PARAM_DRBG_TRUNC_DIGEST; + break; + case 's': + if (strcmp("a-sign-disabled", s + 2) == 0) + return PIDX_PROV_PARAM_DSA_SIGN_DISABLED; + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_D; + } + break; + case 'e': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("rly_clean", s + 2) == 0) + return PIDX_KDF_PARAM_EARLY_CLEAN; + break; + case 'c': + switch(s[2]) { + default: + break; + case 'd': + switch(s[3]) { + default: + break; + case 'h': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'c': + switch(s[6]) { + default: + break; + case 'o': + switch(s[7]) { + default: + break; + case 'f': + switch(s[8]) { + default: + break; + case 'a': + switch(s[9]) { + default: + break; + case 'c': + switch(s[10]) { + default: + break; + case 't': + switch(s[11]) { + default: + break; + case 'o': + switch(s[12]) { + default: + break; + case 'r': + switch(s[13]) { + default: + break; + case '-': + switch(s[14]) { + default: + break; + case 'c': + if (strcmp("heck", s + 15) == 0) + return PIDX_PROV_PARAM_ECDH_COFACTOR_CHECK; + break; + case 'm': + if (strcmp("ode", s + 15) == 0) + return PIDX_EXCHANGE_PARAM_EC_ECDH_COFACTOR_MODE; + } + } + } + } + } + } + } + } + } + } + } + } + } + break; + case 'm': + if (strcmp("s_check", s + 2) == 0) + return PIDX_KDF_PARAM_FIPS_EMS_CHECK; + break; + case 'n': + switch(s[2]) { + default: + break; + case 'c': + switch(s[3]) { + default: + break; + case 'o': + switch(s[4]) { + default: + break; + case 'd': + switch(s[5]) { + default: + break; + case 'e': + if (strcmp("d-pub-key", s + 6) == 0) + return PIDX_PKEY_PARAM_ENCODED_PUBLIC_KEY; + break; + case 'i': + if (strcmp("ng", s + 6) == 0) + return PIDX_PKEY_PARAM_EC_ENCODING; + } + } + break; + case 'r': + switch(s[4]) { + default: + break; + case 'y': + switch(s[5]) { + default: + break; + case 'p': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case '-': + switch(s[8]) { + default: + break; + case 'c': + if (strcmp("heck", s + 9) == 0) + return PIDX_CIPHER_PARAM_FIPS_ENCRYPT_CHECK; + break; + case 'l': + if (strcmp("evel", s + 9) == 0) + return PIDX_ENCODER_PARAM_ENCRYPT_LEVEL; + } + } + } + } + } + } + break; + case 'g': + if (strcmp("ine", s + 3) == 0) + return PIDX_ALG_PARAM_ENGINE; + break; + case 't': + switch(s[3]) { + default: + break; + case 'r': + switch(s[4]) { + default: + break; + case 'o': + switch(s[5]) { + default: + break; + case 'p': + switch(s[6]) { + default: + break; + case 'y': + switch(s[7]) { + default: + break; + case '_': + if (strcmp("required", s + 8) == 0) + return PIDX_DRBG_PARAM_ENTROPY_REQUIRED; + break; + case '\0': + return PIDX_KDF_PARAM_HMACDRBG_ENTROPY; + } + } + } + } + } + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_E; + break; + case 'x': + if (strcmp("pect", s + 2) == 0) + return PIDX_STORE_PARAM_EXPECT; + } + break; + case 'f': + switch(s[1]) { + default: + break; + case 'i': + switch(s[2]) { + default: + break; + case 'e': + if (strcmp("ld-type", s + 3) == 0) + return PIDX_PKEY_PARAM_EC_FIELD_TYPE; + break; + case 'n': + if (strcmp("gerprint", s + 3) == 0) + return PIDX_STORE_PARAM_FINGERPRINT; + break; + case 'p': + if (strcmp("s-indicator", s + 3) == 0) + return PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR; + } + } + break; + case 'g': + switch(s[1]) { + default: + break; + case 'e': + switch(s[2]) { + default: + break; + case 'n': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case 'r': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case 'e': + switch(s[8]) { + default: + break; + case '\0': + return PIDX_RAND_PARAM_GENERATE; + } + break; + case 'o': + if (strcmp("r", s + 8) == 0) + return PIDX_PKEY_PARAM_EC_GENERATOR; + } + } + } + } + } + } + break; + case 'i': + if (strcmp("ndex", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_GINDEX; + break; + case 'r': + switch(s[2]) { + default: + break; + case 'o': + switch(s[3]) { + default: + break; + case 'u': + switch(s[4]) { + default: + break; + case 'p': + switch(s[5]) { + default: + break; + case '-': + if (strcmp("check", s + 6) == 0) + return PIDX_PKEY_PARAM_EC_GROUP_CHECK_TYPE; + break; + case '\0': + return PIDX_PKEY_PARAM_GROUP_NAME; + } + } + } + } + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_G; + } + break; + case 'h': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("s-randkey", s + 2) == 0) + return PIDX_CIPHER_PARAM_HAS_RAND_KEY; + break; + case 'i': + if (strcmp("ndex", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_H; + break; + case 'k': + switch(s[2]) { + default: + break; + case 'd': + switch(s[3]) { + default: + break; + case 'f': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 6) == 0) + return PIDX_PROV_PARAM_HKDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 6) == 0) + return PIDX_PROV_PARAM_HKDF_KEY_CHECK; + } + } + } + } + break; + case 'm': + if (strcmp("ac-key-check", s + 2) == 0) + return PIDX_PROV_PARAM_HMAC_KEY_CHECK; + break; + case 's': + if (strcmp("_padding", s + 2) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_HS_PADDING; + } + break; + case 'i': + switch(s[1]) { + default: + break; + case 'd': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_KDF_PARAM_PKCS12_ID; + } + break; + case 'k': + if (strcmp("me", s + 2) == 0) + return PIDX_KEM_PARAM_IKME; + break; + case 'm': + if (strcmp("plicit-rejection", s + 2) == 0) + return PIDX_PKEY_PARAM_IMPLICIT_REJECTION; + break; + case 'n': + switch(s[2]) { + default: + break; + case 'c': + if (strcmp("lude-public", s + 3) == 0) + return PIDX_PKEY_PARAM_EC_INCLUDE_PUBLIC; + break; + case 'f': + if (strcmp("o", s + 3) == 0) + return PIDX_PASSPHRASE_PARAM_INFO; + break; + case 'p': + if (strcmp("ut-type", s + 3) == 0) + return PIDX_STORE_PARAM_INPUT_TYPE; + break; + case 's': + if (strcmp("tance", s + 3) == 0) + return PIDX_SIGNATURE_PARAM_INSTANCE; + } + break; + case 't': + switch(s[2]) { + default: + break; + case 'e': + switch(s[3]) { + default: + break; + case 'r': + switch(s[4]) { + default: + break; + case 'a': + if (strcmp("tion", s + 5) == 0) + return PIDX_GEN_PARAM_ITERATION; + break; + case '\0': + return PIDX_KDF_PARAM_ITER; + } + } + } + break; + case 'v': + switch(s[2]) { + default: + break; + case '-': + if (strcmp("generated", s + 3) == 0) + return PIDX_CIPHER_PARAM_AEAD_IV_GENERATED; + break; + case 'l': + if (strcmp("en", s + 3) == 0) + return PIDX_CIPHER_PARAM_IVLEN; + break; + case '\0': + return PIDX_MAC_PARAM_IV; + } + } + break; + case 'j': + switch(s[1]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_COFACTOR; + } + break; + case 'k': + switch(s[1]) { + default: + break; + case '1': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_PP_K1; + } + break; + case '2': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_PP_K2; + } + break; + case '3': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_PP_K3; + } + break; + case 'a': + if (strcmp("t", s + 2) == 0) + return PIDX_SIGNATURE_PARAM_KAT; + break; + case 'b': + if (strcmp("kdf-key-check", s + 2) == 0) + return PIDX_PROV_PARAM_KBKDF_KEY_CHECK; + break; + case 'd': + switch(s[2]) { + default: + break; + case 'f': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'd': + switch(s[5]) { + default: + break; + case 'i': + switch(s[6]) { + default: + break; + case 'g': + switch(s[7]) { + default: + break; + case 'e': + switch(s[8]) { + default: + break; + case 's': + switch(s[9]) { + default: + break; + case 't': + switch(s[10]) { + default: + break; + case '-': + if (strcmp("props", s + 11) == 0) + return PIDX_EXCHANGE_PARAM_KDF_DIGEST_PROPS; + break; + case '\0': + return PIDX_EXCHANGE_PARAM_KDF_DIGEST; + } + } + } + } + } + } + break; + case 'o': + if (strcmp("utlen", s + 5) == 0) + return PIDX_EXCHANGE_PARAM_KDF_OUTLEN; + break; + case 't': + if (strcmp("ype", s + 5) == 0) + return PIDX_EXCHANGE_PARAM_KDF_TYPE; + break; + case 'u': + if (strcmp("km", s + 5) == 0) + return PIDX_EXCHANGE_PARAM_KDF_UKM; + } + } + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'y': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'c': + if (strcmp("heck", s + 5) == 0) + return PIDX_PKEY_PARAM_FIPS_KEY_CHECK; + break; + case 'l': + if (strcmp("ength", s + 5) == 0) + return PIDX_SKEY_PARAM_KEY_LENGTH; + } + break; + case 'b': + if (strcmp("its", s + 4) == 0) + return PIDX_CIPHER_PARAM_RC2_KEYBITS; + break; + case 'l': + if (strcmp("en", s + 4) == 0) + return PIDX_CIPHER_PARAM_KEYLEN; + break; + case '\0': + return PIDX_MAC_PARAM_KEY; + } + } + break; + case 'm': + if (strcmp("ac-key-check", s + 2) == 0) + return PIDX_PROV_PARAM_KMAC_KEY_CHECK; + } + break; + case 'l': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'b': + if (strcmp("el", s + 3) == 0) + return PIDX_KDF_PARAM_LABEL; + break; + case 'n': + if (strcmp("es", s + 3) == 0) + return PIDX_KDF_PARAM_ARGON2_LANES; + } + } + break; + case 'm': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'c': + switch(s[3]) { + default: + break; + case 'k': + if (strcmp("ey", s + 4) == 0) + return PIDX_CIPHER_PARAM_AEAD_MAC_KEY; + break; + case 'l': + if (strcmp("en", s + 4) == 0) + return PIDX_KDF_PARAM_MAC_SIZE; + break; + case '\0': + return PIDX_ALG_PARAM_MAC; + } + break; + case 'n': + if (strcmp("datory-digest", s + 3) == 0) + return PIDX_PKEY_PARAM_MANDATORY_DIGEST; + break; + case 'x': + switch(s[3]) { + default: + break; + case '-': + if (strcmp("size", s + 4) == 0) + return PIDX_PKEY_PARAM_MAX_SIZE; + break; + case '_': + switch(s[4]) { + default: + break; + case 'a': + if (strcmp("dinlen", s + 5) == 0) + return PIDX_DRBG_PARAM_MAX_ADINLEN; + break; + case 'e': + switch(s[5]) { + default: + break; + case 'a': + if (strcmp("rly_data", s + 6) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_MAX_EARLY_DATA; + break; + case 'n': + if (strcmp("tropylen", s + 6) == 0) + return PIDX_DRBG_PARAM_MAX_ENTROPYLEN; + } + break; + case 'f': + if (strcmp("rag_len", s + 5) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_MAX_FRAG_LEN; + break; + case 'n': + if (strcmp("oncelen", s + 5) == 0) + return PIDX_DRBG_PARAM_MAX_NONCELEN; + break; + case 'p': + if (strcmp("erslen", s + 5) == 0) + return PIDX_DRBG_PARAM_MAX_PERSLEN; + break; + case 'r': + if (strcmp("equest", s + 5) == 0) + return PIDX_RAND_PARAM_MAX_REQUEST; + } + break; + case 'i': + if (strcmp("um_length", s + 4) == 0) + return PIDX_DRBG_PARAM_MAX_LENGTH; + break; + case 'm': + if (strcmp("em_bytes", s + 4) == 0) + return PIDX_KDF_PARAM_SCRYPT_MAXMEM; + } + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'm': + if (strcmp("cost", s + 3) == 0) + return PIDX_KDF_PARAM_ARGON2_MEMCOST; + break; + case 's': + if (strcmp("sage-encoding", s + 3) == 0) + return PIDX_SIGNATURE_PARAM_MESSAGE_ENCODING; + } + break; + case 'g': + switch(s[2]) { + default: + break; + case 'f': + switch(s[3]) { + default: + break; + case '1': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'd': + if (strcmp("igest", s + 6) == 0) + return PIDX_PKEY_PARAM_MGF1_DIGEST; + break; + case 'p': + if (strcmp("roperties", s + 6) == 0) + return PIDX_PKEY_PARAM_MGF1_PROPERTIES; + } + } + break; + case '\0': + return PIDX_PKEY_PARAM_MASKGENFUNC; + } + } + break; + case 'i': + switch(s[2]) { + default: + break; + case 'c': + if (strcmp("alg", s + 3) == 0) + return PIDX_DIGEST_PARAM_MICALG; + break; + case 'n': + switch(s[3]) { + default: + break; + case '_': + switch(s[4]) { + default: + break; + case 'e': + if (strcmp("ntropylen", s + 5) == 0) + return PIDX_DRBG_PARAM_MIN_ENTROPYLEN; + break; + case 'n': + if (strcmp("oncelen", s + 5) == 0) + return PIDX_DRBG_PARAM_MIN_NONCELEN; + } + break; + case 'i': + if (strcmp("um_length", s + 4) == 0) + return PIDX_DRBG_PARAM_MIN_LENGTH; + } + } + break; + case 'l': + switch(s[2]) { + default: + break; + case '-': + switch(s[3]) { + default: + break; + case 'd': + switch(s[4]) { + default: + break; + case 's': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case '.': + switch(s[7]) { + default: + break; + case 'i': + if (strcmp("nput_formats", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_DSA_INPUT_FORMATS; + break; + case 'o': + if (strcmp("utput_formats", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_DSA_OUTPUT_FORMATS; + break; + case 'p': + if (strcmp("refer_seed", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_DSA_PREFER_SEED; + break; + case 'r': + if (strcmp("etain_seed", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_DSA_RETAIN_SEED; + } + } + } + } + break; + case 'k': + switch(s[4]) { + default: + break; + case 'e': + switch(s[5]) { + default: + break; + case 'm': + switch(s[6]) { + default: + break; + case '.': + switch(s[7]) { + default: + break; + case 'i': + switch(s[8]) { + default: + break; + case 'm': + if (strcmp("port_pct_type", s + 9) == 0) + return PIDX_PKEY_PARAM_ML_KEM_IMPORT_PCT_TYPE; + break; + case 'n': + if (strcmp("put_formats", s + 9) == 0) + return PIDX_PKEY_PARAM_ML_KEM_INPUT_FORMATS; + } + break; + case 'o': + if (strcmp("utput_formats", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_KEM_OUTPUT_FORMATS; + break; + case 'p': + if (strcmp("refer_seed", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_KEM_PREFER_SEED; + break; + case 'r': + if (strcmp("etain_seed", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_KEM_RETAIN_SEED; + } + } + } + } + } + } + break; + case 'o': + switch(s[2]) { + default: + break; + case 'd': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case '\0': + return PIDX_LIBSSL_RECORD_LAYER_PARAM_MODE; + } + break; + case 'u': + if (strcmp("le-filename", s + 4) == 0) + return PIDX_PROV_PARAM_CORE_MODULE_FILENAME; + } + } + break; + case 'u': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_SIGNATURE_PARAM_MU; + } + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_M; + } + break; + case 'n': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("me", s + 2) == 0) + return PIDX_STORE_PARAM_ISSUER; + break; + case 'o': + switch(s[2]) { + default: + break; + case '-': + if (strcmp("short-mac", s + 3) == 0) + return PIDX_PROV_PARAM_NO_SHORT_MAC; + break; + case 'n': + switch(s[3]) { + default: + break; + case 'c': + switch(s[4]) { + default: + break; + case 'e': + switch(s[5]) { + default: + break; + case '-': + if (strcmp("type", s + 6) == 0) + return PIDX_SIGNATURE_PARAM_NONCE_TYPE; + break; + case '\0': + return PIDX_KDF_PARAM_HMACDRBG_NONCE; + } + } + } + } + break; + case 'u': + if (strcmp("m", s + 2) == 0) + return PIDX_CIPHER_PARAM_NUM; + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_N; + } + break; + case 'o': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("ep-label", s + 2) == 0) + return PIDX_ASYM_CIPHER_PARAM_OAEP_LABEL; + break; + case 'p': + switch(s[2]) { + default: + break; + case 'e': + switch(s[3]) { + default: + break; + case 'n': + if (strcmp("ssl-version", s + 4) == 0) + return PIDX_PROV_PARAM_CORE_VERSION; + break; + case 'r': + if (strcmp("ation", s + 4) == 0) + return PIDX_KEM_PARAM_OPERATION; + } + break; + case 't': + if (strcmp("ions", s + 3) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_OPTIONS; + } + break; + case 'r': + if (strcmp("der", s + 2) == 0) + return PIDX_PKEY_PARAM_EC_ORDER; + } + break; + case 'p': + switch(s[1]) { + default: + break; + case '1': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_P1; + } + break; + case '2': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_P2; + } + break; + case 'a': + switch(s[2]) { + default: + break; + case 'd': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'm': + if (strcmp("ode", s + 5) == 0) + return PIDX_PKEY_PARAM_PAD_MODE; + break; + case 't': + if (strcmp("ype", s + 5) == 0) + return PIDX_DIGEST_PARAM_PAD_TYPE; + } + break; + case 'd': + if (strcmp("ing", s + 4) == 0) + return PIDX_CIPHER_PARAM_PADDING; + break; + case '\0': + return PIDX_EXCHANGE_PARAM_PAD; + } + break; + case 'r': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case 'y': + switch(s[5]) { + default: + break; + case 'u': + if (strcmp("-info", s + 6) == 0) + return PIDX_KDF_PARAM_X942_PARTYUINFO; + break; + case 'v': + if (strcmp("-info", s + 6) == 0) + return PIDX_KDF_PARAM_X942_PARTYVINFO; + } + } + } + break; + case 's': + if (strcmp("s", s + 3) == 0) + return PIDX_KDF_PARAM_PASSWORD; + } + break; + case 'b': + switch(s[2]) { + default: + break; + case 'i': + if (strcmp("ts", s + 3) == 0) + return PIDX_PKEY_PARAM_FFC_PBITS; + break; + case 'k': + if (strcmp("df2-lower-bound-check", s + 3) == 0) + return PIDX_PROV_PARAM_PBKDF2_LOWER_BOUND_CHECK; + } + break; + case 'c': + if (strcmp("ounter", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_PCOUNTER; + break; + case 'i': + if (strcmp("peline-tag", s + 2) == 0) + return PIDX_CIPHER_PARAM_PIPELINE_AEAD_TAG; + break; + case 'k': + if (strcmp("cs5", s + 2) == 0) + return PIDX_KDF_PARAM_PKCS5; + break; + case 'o': + switch(s[2]) { + default: + break; + case 'i': + if (strcmp("nt-format", s + 3) == 0) + return PIDX_PKEY_PARAM_EC_POINT_CONVERSION_FORMAT; + break; + case 't': + if (strcmp("ential", s + 3) == 0) + return PIDX_GEN_PARAM_POTENTIAL; + } + break; + case 'r': + switch(s[2]) { + default: + break; + case 'e': + switch(s[3]) { + default: + break; + case 'd': + if (strcmp("iction_resistance", s + 4) == 0) + return PIDX_DRBG_PARAM_PREDICTION_RESISTANCE; + break; + case 'f': + if (strcmp("ix", s + 4) == 0) + return PIDX_KDF_PARAM_PREFIX; + } + break; + case 'i': + switch(s[3]) { + default: + break; + case 'm': + if (strcmp("es", s + 4) == 0) + return PIDX_PKEY_PARAM_RSA_PRIMES; + break; + case 'v': + switch(s[4]) { + default: + break; + case '_': + if (strcmp("len", s + 5) == 0) + return PIDX_PKEY_PARAM_DH_PRIV_LEN; + break; + case '\0': + return PIDX_PKEY_PARAM_PRIV_KEY; + } + } + break; + case 'o': + switch(s[3]) { + default: + break; + case 'p': + if (strcmp("erties", s + 4) == 0) + return PIDX_STORE_PARAM_PROPERTIES; + break; + case 'v': + if (strcmp("ider-name", s + 4) == 0) + return PIDX_PROV_PARAM_CORE_PROV_NAME; + } + } + break; + case 'u': + if (strcmp("b", s + 2) == 0) + return PIDX_PKEY_PARAM_PUB_KEY; + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_P; + } + break; + case 'q': + switch(s[1]) { + default: + break; + case '1': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_Q1; + } + break; + case '2': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_Q2; + } + break; + case 'b': + if (strcmp("its", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_QBITS; + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_Q; + break; + case 'x': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_PUB_X; + } + break; + case 'y': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_PUB_Y; + } + } + break; + case 'r': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'n': + switch(s[3]) { + default: + break; + case 'd': + switch(s[4]) { + default: + break; + case 'k': + if (strcmp("ey", s + 5) == 0) + return PIDX_CIPHER_PARAM_RANDOM_KEY; + break; + case 'o': + if (strcmp("m_data", s + 5) == 0) + return PIDX_DRBG_PARAM_RANDOM_DATA; + } + } + break; + case 'w': + if (strcmp("-bytes", s + 3) == 0) + return PIDX_SKEY_PARAM_RAW_BYTES; + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'a': + switch(s[3]) { + default: + break; + case 'd': + switch(s[4]) { + default: + break; + case '_': + switch(s[5]) { + default: + break; + case 'a': + if (strcmp("head", s + 6) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_READ_AHEAD; + break; + case 'b': + if (strcmp("uffer_len", s + 6) == 0) + return PIDX_LIBSSL_RECORD_LAYER_READ_BUFFER_LEN; + } + } + } + break; + case 'f': + if (strcmp("erence", s + 3) == 0) + return PIDX_OBJECT_PARAM_REFERENCE; + break; + case 's': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case 'e': + switch(s[5]) { + default: + break; + case 'd': + switch(s[6]) { + default: + break; + case '_': + switch(s[7]) { + default: + break; + case 'c': + if (strcmp("ounter", s + 8) == 0) + return PIDX_DRBG_PARAM_RESEED_COUNTER; + break; + case 'r': + if (strcmp("equests", s + 8) == 0) + return PIDX_DRBG_PARAM_RESEED_REQUESTS; + break; + case 't': + switch(s[8]) { + default: + break; + case 'i': + switch(s[9]) { + default: + break; + case 'm': + switch(s[10]) { + default: + break; + case 'e': + switch(s[11]) { + default: + break; + case '_': + if (strcmp("interval", s + 12) == 0) + return PIDX_DRBG_PARAM_RESEED_TIME_INTERVAL; + break; + case '\0': + return PIDX_DRBG_PARAM_RESEED_TIME; + } + } + } + } + } + } + } + } + } + } + break; + case 'o': + if (strcmp("unds", s + 2) == 0) + return PIDX_CIPHER_PARAM_ROUNDS; + break; + case 's': + switch(s[2]) { + default: + break; + case 'a': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'c': + switch(s[5]) { + default: + break; + case 'o': + switch(s[6]) { + default: + break; + case 'e': + switch(s[7]) { + default: + break; + case 'f': + switch(s[8]) { + default: + break; + case 'f': + switch(s[9]) { + default: + break; + case 'i': + switch(s[10]) { + default: + break; + case 'c': + switch(s[11]) { + default: + break; + case 'i': + switch(s[12]) { + default: + break; + case 'e': + switch(s[13]) { + default: + break; + case 'n': + switch(s[14]) { + default: + break; + case 't': + switch(s[15]) { + default: + break; + case '1': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT1; + } + break; + case '2': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT2; + } + break; + case '3': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT3; + } + break; + case '4': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT4; + } + break; + case '5': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT5; + } + break; + case '6': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT6; + } + break; + case '7': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT7; + } + break; + case '8': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT8; + } + break; + case '9': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT9; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT; + } + } + } + } + } + } + } + } + } + } + } + break; + case 'd': + if (strcmp("erive-from-pq", s + 5) == 0) + return PIDX_PKEY_PARAM_RSA_DERIVE_FROM_PQ; + break; + case 'e': + switch(s[5]) { + default: + break; + case 'x': + switch(s[6]) { + default: + break; + case 'p': + switch(s[7]) { + default: + break; + case 'o': + switch(s[8]) { + default: + break; + case 'n': + switch(s[9]) { + default: + break; + case 'e': + switch(s[10]) { + default: + break; + case 'n': + switch(s[11]) { + default: + break; + case 't': + switch(s[12]) { + default: + break; + case '1': + switch(s[13]) { + default: + break; + case '0': + switch(s[14]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT10; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT1; + } + break; + case '2': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT2; + } + break; + case '3': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT3; + } + break; + case '4': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT4; + } + break; + case '5': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT5; + } + break; + case '6': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT6; + } + break; + case '7': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT7; + } + break; + case '8': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT8; + } + break; + case '9': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT9; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT; + } + } + } + } + } + } + } + } + break; + case 'f': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case 'c': + switch(s[7]) { + default: + break; + case 't': + switch(s[8]) { + default: + break; + case 'o': + switch(s[9]) { + default: + break; + case 'r': + switch(s[10]) { + default: + break; + case '1': + switch(s[11]) { + default: + break; + case '0': + switch(s[12]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR10; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR1; + } + break; + case '2': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR2; + } + break; + case '3': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR3; + } + break; + case '4': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR4; + } + break; + case '5': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR5; + } + break; + case '6': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR6; + } + break; + case '7': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR7; + } + break; + case '8': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR8; + } + break; + case '9': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR9; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR; + } + } + } + } + } + } + break; + case 'p': + switch(s[5]) { + default: + break; + case 'k': + if (strcmp("cs15-pad-disabled", s + 6) == 0) + return PIDX_PROV_PARAM_RSA_PKCS15_PAD_DISABLED; + break; + case 's': + if (strcmp("s-saltlen-check", s + 6) == 0) + return PIDX_SIGNATURE_PARAM_FIPS_RSA_PSS_SALTLEN_CHECK; + } + break; + case 's': + if (strcmp("ign-x931-pad-disabled", s + 5) == 0) + return PIDX_PROV_PARAM_RSA_SIGN_X931_PAD_DISABLED; + } + } + } + break; + case '\0': + return PIDX_KDF_PARAM_SCRYPT_R; + } + break; + case 's': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'f': + if (strcmp("eprime-generator", s + 3) == 0) + return PIDX_PKEY_PARAM_DH_GENERATOR; + break; + case 'l': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case 'l': + if (strcmp("en", s + 5) == 0) + return PIDX_SIGNATURE_PARAM_PSS_SALTLEN; + break; + case '\0': + return PIDX_MAC_PARAM_SALT; + } + } + break; + case 'v': + if (strcmp("e-parameters", s + 3) == 0) + return PIDX_ENCODER_PARAM_SAVE_PARAMETERS; + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'c': + switch(s[3]) { + default: + break; + case 'r': + if (strcmp("et", s + 4) == 0) + return PIDX_KDF_PARAM_SECRET; + break; + case 'u': + switch(s[4]) { + default: + break; + case 'r': + switch(s[5]) { + default: + break; + case 'i': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case 'y': + switch(s[8]) { + default: + break; + case '-': + switch(s[9]) { + default: + break; + case 'b': + if (strcmp("its", s + 10) == 0) + return PIDX_PKEY_PARAM_SECURITY_BITS; + break; + case 'c': + if (strcmp("hecks", s + 10) == 0) + return PIDX_PROV_PARAM_SECURITY_CHECKS; + } + } + } + } + } + } + } + break; + case 'e': + if (strcmp("d", s + 3) == 0) + return PIDX_PKEY_PARAM_SLH_DSA_SEED; + break; + case 'r': + if (strcmp("ial", s + 3) == 0) + return PIDX_STORE_PARAM_SERIAL; + break; + case 's': + if (strcmp("sion_id", s + 3) == 0) + return PIDX_KDF_PARAM_SSHKDF_SESSION_ID; + } + break; + case 'i': + switch(s[2]) { + default: + break; + case 'g': + switch(s[3]) { + default: + break; + case 'n': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'c': + if (strcmp("heck", s + 6) == 0) + return PIDX_PKEY_PARAM_FIPS_SIGN_CHECK; + break; + case 'x': + if (strcmp("931-pad-check", s + 6) == 0) + return PIDX_SIGNATURE_PARAM_FIPS_SIGN_X931_PAD_CHECK; + } + break; + case 'a': + switch(s[5]) { + default: + break; + case 't': + switch(s[6]) { + default: + break; + case 'u': + switch(s[7]) { + default: + break; + case 'r': + switch(s[8]) { + default: + break; + case 'e': + switch(s[9]) { + default: + break; + case '-': + if (strcmp("digest-check", s + 10) == 0) + return PIDX_PROV_PARAM_SIGNATURE_DIGEST_CHECK; + break; + case '\0': + return PIDX_SIGNATURE_PARAM_SIGNATURE; + } + } + } + } + } + } + } + break; + case 'z': + if (strcmp("e", s + 3) == 0) + return PIDX_MAC_PARAM_SIZE; + } + break; + case 'p': + if (strcmp("eed", s + 2) == 0) + return PIDX_CIPHER_PARAM_SPEED; + break; + case 's': + switch(s[2]) { + default: + break; + case 'h': + switch(s[3]) { + default: + break; + case 'k': + switch(s[4]) { + default: + break; + case 'd': + switch(s[5]) { + default: + break; + case 'f': + switch(s[6]) { + default: + break; + case '-': + switch(s[7]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 8) == 0) + return PIDX_PROV_PARAM_SSHKDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 8) == 0) + return PIDX_PROV_PARAM_SSHKDF_KEY_CHECK; + } + } + } + } + } + break; + case 'k': + switch(s[3]) { + default: + break; + case 'd': + switch(s[4]) { + default: + break; + case 'f': + switch(s[5]) { + default: + break; + case '-': + switch(s[6]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 7) == 0) + return PIDX_PROV_PARAM_SSKDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 7) == 0) + return PIDX_PROV_PARAM_SSKDF_KEY_CHECK; + } + } + } + } + break; + case 'l': + if (strcmp("3-ms", s + 3) == 0) + return PIDX_DIGEST_PARAM_SSL3_MS; + } + break; + case 't': + switch(s[2]) { + default: + break; + case '-': + switch(s[3]) { + default: + break; + case 'd': + if (strcmp("esc", s + 4) == 0) + return PIDX_PROV_PARAM_SELF_TEST_DESC; + break; + case 'p': + if (strcmp("hase", s + 4) == 0) + return PIDX_PROV_PARAM_SELF_TEST_PHASE; + break; + case 't': + if (strcmp("ype", s + 4) == 0) + return PIDX_PROV_PARAM_SELF_TEST_TYPE; + } + break; + case 'a': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case 'e': + switch(s[5]) { + default: + break; + case '\0': + return PIDX_RAND_PARAM_STATE; + } + break; + case 'u': + if (strcmp("s", s + 5) == 0) + return PIDX_PROV_PARAM_STATUS; + } + } + break; + case 'r': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case 'a': + if (strcmp("m_mac", s + 5) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_STREAM_MAC; + break; + case 'n': + if (strcmp("gth", s + 5) == 0) + return PIDX_RAND_PARAM_STRENGTH; + } + } + } + break; + case 'u': + switch(s[2]) { + default: + break; + case 'b': + if (strcmp("ject", s + 3) == 0) + return PIDX_STORE_PARAM_SUBJECT; + break; + case 'p': + switch(s[3]) { + default: + break; + case 'p': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'p': + switch(s[6]) { + default: + break; + case 'r': + if (strcmp("ivinfo", s + 7) == 0) + return PIDX_KDF_PARAM_X942_SUPP_PRIVINFO; + break; + case 'u': + if (strcmp("binfo", s + 7) == 0) + return PIDX_KDF_PARAM_X942_SUPP_PUBINFO; + } + } + } + } + } + } + break; + case 't': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'g': + switch(s[3]) { + default: + break; + case 'l': + if (strcmp("en", s + 4) == 0) + return PIDX_CIPHER_PARAM_AEAD_TAGLEN; + break; + case '\0': + return PIDX_CIPHER_PARAM_AEAD_TAG; + } + } + break; + case 'd': + if (strcmp("es-encrypt-disabled", s + 2) == 0) + return PIDX_PROV_PARAM_TDES_ENCRYPT_DISABLED; + break; + case 'e': + switch(s[2]) { + default: + break; + case 's': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case '-': + if (strcmp("entropy", s + 5) == 0) + return PIDX_SIGNATURE_PARAM_TEST_ENTROPY; + break; + case '_': + switch(s[5]) { + default: + break; + case 'e': + if (strcmp("ntropy", s + 6) == 0) + return PIDX_RAND_PARAM_TEST_ENTROPY; + break; + case 'n': + if (strcmp("once", s + 6) == 0) + return PIDX_RAND_PARAM_TEST_NONCE; + } + } + } + } + break; + case 'h': + if (strcmp("reads", s + 2) == 0) + return PIDX_KDF_PARAM_THREADS; + break; + case 'l': + switch(s[2]) { + default: + break; + case 's': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'c': + if (strcmp("lient-version", s + 5) == 0) + return PIDX_ASYM_CIPHER_PARAM_TLS_CLIENT_VERSION; + break; + case 'd': + if (strcmp("ata-size", s + 5) == 0) + return PIDX_MAC_PARAM_TLS_DATA_SIZE; + break; + case 'g': + switch(s[5]) { + default: + break; + case 'r': + switch(s[6]) { + default: + break; + case 'o': + switch(s[7]) { + default: + break; + case 'u': + switch(s[8]) { + default: + break; + case 'p': + switch(s[9]) { + default: + break; + case '-': + switch(s[10]) { + default: + break; + case 'a': + if (strcmp("lg", s + 11) == 0) + return PIDX_CAPABILITY_TLS_GROUP_ALG; + break; + case 'i': + switch(s[11]) { + default: + break; + case 'd': + switch(s[12]) { + default: + break; + case '\0': + return PIDX_CAPABILITY_TLS_GROUP_ID; + } + break; + case 's': + if (strcmp("-kem", s + 12) == 0) + return PIDX_CAPABILITY_TLS_GROUP_IS_KEM; + } + break; + case 'n': + switch(s[11]) { + default: + break; + case 'a': + switch(s[12]) { + default: + break; + case 'm': + switch(s[13]) { + default: + break; + case 'e': + switch(s[14]) { + default: + break; + case '-': + if (strcmp("internal", s + 15) == 0) + return PIDX_CAPABILITY_TLS_GROUP_NAME_INTERNAL; + break; + case '\0': + return PIDX_CAPABILITY_TLS_GROUP_NAME; + } + } + } + } + break; + case 's': + if (strcmp("ec-bits", s + 11) == 0) + return PIDX_CAPABILITY_TLS_GROUP_SECURITY_BITS; + } + } + } + } + } + } + break; + case 'm': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case 'c': + switch(s[7]) { + default: + break; + case '-': + if (strcmp("size", s + 8) == 0) + return PIDX_CIPHER_PARAM_TLS_MAC_SIZE; + break; + case '\0': + return PIDX_CIPHER_PARAM_TLS_MAC; + } + break; + case 'x': + switch(s[7]) { + default: + break; + case '-': + switch(s[8]) { + default: + break; + case 'd': + if (strcmp("tls", s + 9) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_MAX_DTLS; + break; + case 't': + if (strcmp("ls", s + 9) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_MAX_TLS; + } + } + } + break; + case 'i': + switch(s[6]) { + default: + break; + case 'n': + switch(s[7]) { + default: + break; + case '-': + switch(s[8]) { + default: + break; + case 'd': + if (strcmp("tls", s + 9) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_MIN_DTLS; + break; + case 't': + if (strcmp("ls", s + 9) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_MIN_TLS; + } + } + } + break; + case 'u': + if (strcmp("lti", s + 6) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK; + } + break; + case 'n': + if (strcmp("egotiated-version", s + 5) == 0) + return PIDX_ASYM_CIPHER_PARAM_TLS_NEGOTIATED_VERSION; + break; + case 's': + switch(s[5]) { + default: + break; + case 'i': + switch(s[6]) { + default: + break; + case 'g': + switch(s[7]) { + default: + break; + case 'a': + switch(s[8]) { + default: + break; + case 'l': + switch(s[9]) { + default: + break; + case 'g': + switch(s[10]) { + default: + break; + case '-': + switch(s[11]) { + default: + break; + case 'c': + if (strcmp("ode-point", s + 12) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_CODE_POINT; + break; + case 'h': + switch(s[12]) { + default: + break; + case 'a': + switch(s[13]) { + default: + break; + case 's': + switch(s[14]) { + default: + break; + case 'h': + switch(s[15]) { + default: + break; + case '-': + switch(s[16]) { + default: + break; + case 'n': + if (strcmp("ame", s + 17) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_HASH_NAME; + break; + case 'o': + if (strcmp("id", s + 17) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_HASH_OID; + } + } + } + } + } + break; + case 'i': + if (strcmp("ana-name", s + 12) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_IANA_NAME; + break; + case 'k': + switch(s[12]) { + default: + break; + case 'e': + switch(s[13]) { + default: + break; + case 'y': + switch(s[14]) { + default: + break; + case 't': + switch(s[15]) { + default: + break; + case 'y': + switch(s[16]) { + default: + break; + case 'p': + switch(s[17]) { + default: + break; + case 'e': + switch(s[18]) { + default: + break; + case '-': + if (strcmp("oid", s + 19) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_KEYTYPE_OID; + break; + case '\0': + return PIDX_CAPABILITY_TLS_SIGALG_KEYTYPE; + } + } + } + } + } + } + } + break; + case 'n': + if (strcmp("ame", s + 12) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_NAME; + break; + case 'o': + if (strcmp("id", s + 12) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_OID; + break; + case 's': + switch(s[12]) { + default: + break; + case 'e': + if (strcmp("c-bits", s + 13) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_SECURITY_BITS; + break; + case 'i': + switch(s[13]) { + default: + break; + case 'g': + switch(s[14]) { + default: + break; + case '-': + switch(s[15]) { + default: + break; + case 'n': + if (strcmp("ame", s + 16) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_SIG_NAME; + break; + case 'o': + if (strcmp("id", s + 16) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_SIG_OID; + } + } + } + } + } + } + } + } + } + } + } + break; + case 'v': + if (strcmp("ersion", s + 5) == 0) + return PIDX_CIPHER_PARAM_TLS_VERSION; + } + break; + case '1': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'p': + switch(s[6]) { + default: + break; + case 'r': + switch(s[7]) { + default: + break; + case 'f': + switch(s[8]) { + default: + break; + case '-': + switch(s[9]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 10) == 0) + return PIDX_PROV_PARAM_TLS1_PRF_DIGEST_CHECK; + break; + case 'e': + if (strcmp("ms-check", s + 10) == 0) + return PIDX_PROV_PARAM_TLS1_PRF_EMS_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 10) == 0) + return PIDX_PROV_PARAM_TLS1_PRF_KEY_CHECK; + } + } + } + } + } + break; + case '3': + switch(s[5]) { + default: + break; + case '-': + switch(s[6]) { + default: + break; + case 'k': + switch(s[7]) { + default: + break; + case 'd': + switch(s[8]) { + default: + break; + case 'f': + switch(s[9]) { + default: + break; + case '-': + switch(s[10]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 11) == 0) + return PIDX_PROV_PARAM_TLS13_KDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 11) == 0) + return PIDX_PROV_PARAM_TLS13_KDF_KEY_CHECK; + } + } + } + } + } + } + break; + case 'm': + switch(s[5]) { + default: + break; + case 'u': + switch(s[6]) { + default: + break; + case 'l': + switch(s[7]) { + default: + break; + case 't': + switch(s[8]) { + default: + break; + case 'i': + switch(s[9]) { + default: + break; + case '_': + switch(s[10]) { + default: + break; + case 'a': + switch(s[11]) { + default: + break; + case 'a': + switch(s[12]) { + default: + break; + case 'd': + switch(s[13]) { + default: + break; + case 'p': + if (strcmp("acklen", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD_PACKLEN; + break; + case '\0': + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD; + } + } + } + break; + case 'e': + switch(s[11]) { + default: + break; + case 'n': + switch(s[12]) { + default: + break; + case 'c': + switch(s[13]) { + default: + break; + case 'i': + if (strcmp("n", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_IN; + break; + case 'l': + if (strcmp("en", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_LEN; + break; + case '\0': + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC; + } + } + } + break; + case 'i': + if (strcmp("nterleave", s + 11) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_INTERLEAVE; + break; + case 'm': + switch(s[11]) { + default: + break; + case 'a': + switch(s[12]) { + default: + break; + case 'x': + switch(s[13]) { + default: + break; + case 'b': + if (strcmp("ufsz", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_BUFSIZE; + break; + case 's': + if (strcmp("ndfrag", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_SEND_FRAGMENT; + } + } + } + } + } + } + } + } + } + } + break; + case 'a': + switch(s[4]) { + default: + break; + case 'a': + switch(s[5]) { + default: + break; + case 'd': + switch(s[6]) { + default: + break; + case 'p': + if (strcmp("ad", s + 7) == 0) + return PIDX_CIPHER_PARAM_AEAD_TLS1_AAD_PAD; + break; + case '\0': + return PIDX_CIPHER_PARAM_AEAD_TLS1_AAD; + } + } + } + break; + case 'i': + switch(s[4]) { + default: + break; + case 'v': + switch(s[5]) { + default: + break; + case 'f': + if (strcmp("ixed", s + 6) == 0) + return PIDX_CIPHER_PARAM_AEAD_TLS1_IV_FIXED; + break; + case 'g': + if (strcmp("en", s + 6) == 0) + return PIDX_CIPHER_PARAM_AEAD_TLS1_GET_IV_GEN; + break; + case 'i': + if (strcmp("nv", s + 6) == 0) + return PIDX_CIPHER_PARAM_AEAD_TLS1_SET_IV_INV; + } + } + break; + case 't': + if (strcmp("ree", s + 4) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_TLSTREE; + } + } + break; + case 'p': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_TP_BASIS; + } + break; + case 'y': + if (strcmp("pe", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_TYPE; + } + break; + case 'u': + switch(s[1]) { + default: + break; + case 'k': + if (strcmp("m", s + 2) == 0) + return PIDX_KDF_PARAM_UKM; + break; + case 'p': + if (strcmp("dated-iv", s + 2) == 0) + return PIDX_CIPHER_PARAM_UPDATED_IV; + break; + case 's': + switch(s[2]) { + default: + break; + case 'e': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'b': + if (strcmp("its", s + 5) == 0) + return PIDX_CIPHER_PARAM_USE_BITS; + break; + case 'c': + if (strcmp("ofactor-flag", s + 5) == 0) + return PIDX_PKEY_PARAM_USE_COFACTOR_FLAG; + break; + case 'k': + if (strcmp("eybits", s + 5) == 0) + return PIDX_KDF_PARAM_X942_USE_KEYBITS; + break; + case 'l': + switch(s[5]) { + default: + break; + case '\0': + return PIDX_KDF_PARAM_KBKDF_USE_L; + } + break; + case 's': + if (strcmp("eparator", s + 5) == 0) + return PIDX_KDF_PARAM_KBKDF_USE_SEPARATOR; + } + break; + case '_': + switch(s[4]) { + default: + break; + case 'd': + if (strcmp("erivation_function", s + 5) == 0) + return PIDX_DRBG_PARAM_USE_DF; + break; + case 'e': + if (strcmp("tm", s + 5) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_USE_ETM; + } + } + } + } + break; + case 'v': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'l': + switch(s[3]) { + default: + break; + case 'i': + switch(s[4]) { + default: + break; + case 'd': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case 'e': + switch(s[8]) { + default: + break; + case '-': + switch(s[9]) { + default: + break; + case 'g': + switch(s[10]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_VALIDATE_G; + } + break; + case 'l': + if (strcmp("egacy", s + 10) == 0) + return PIDX_PKEY_PARAM_FFC_VALIDATE_LEGACY; + break; + case 'p': + if (strcmp("q", s + 10) == 0) + return PIDX_PKEY_PARAM_FFC_VALIDATE_PQ; + } + } + } + } + } + } + } + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'r': + switch(s[3]) { + default: + break; + case 'i': + if (strcmp("fy-message", s + 4) == 0) + return PIDX_SIGNATURE_PARAM_FIPS_VERIFY_MESSAGE; + break; + case 's': + if (strcmp("ion", s + 4) == 0) + return PIDX_PROV_PARAM_VERSION; + } + } + } + break; + case 'x': + switch(s[1]) { + default: + break; + case '9': + switch(s[2]) { + default: + break; + case '4': + if (strcmp("2kdf-key-check", s + 3) == 0) + return PIDX_PROV_PARAM_X942KDF_KEY_CHECK; + break; + case '6': + switch(s[3]) { + default: + break; + case '3': + switch(s[4]) { + default: + break; + case 'k': + switch(s[5]) { + default: + break; + case 'd': + switch(s[6]) { + default: + break; + case 'f': + switch(s[7]) { + default: + break; + case '-': + switch(s[8]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 9) == 0) + return PIDX_PROV_PARAM_X963KDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 9) == 0) + return PIDX_PROV_PARAM_X963KDF_KEY_CHECK; + } + } + } + } + } + } + } + break; + case 'c': + if (strcmp("ghash", s + 2) == 0) + return PIDX_KDF_PARAM_SSHKDF_XCGHASH; + break; + case 'o': + switch(s[2]) { + default: + break; + case 'f': + switch(s[3]) { + default: + break; + case 'l': + if (strcmp("en", s + 4) == 0) + return PIDX_DIGEST_PARAM_XOFLEN; + break; + case '\0': + return PIDX_MAC_PARAM_XOF; + } + } + break; + case 'p': + switch(s[2]) { + default: + break; + case '1': + switch(s[3]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XP1; + } + break; + case '2': + switch(s[3]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XP2; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XP; + } + break; + case 'q': + switch(s[2]) { + default: + break; + case '1': + switch(s[3]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XQ1; + } + break; + case '2': + switch(s[3]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XQ2; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XQ; + } + break; + case 't': + if (strcmp("s_standard", s + 2) == 0) + return PIDX_CIPHER_PARAM_XTS_STANDARD; + } + } + return -1; +} + +/* End of TRIE */ diff --git a/deps/openssl/config/archs/VC-WIN64A/no-asm/include/internal/param_names.h b/deps/openssl/config/archs/VC-WIN64A/no-asm/include/internal/param_names.h new file mode 100644 index 00000000000000..ec5bff6e31c126 --- /dev/null +++ b/deps/openssl/config/archs/VC-WIN64A/no-asm/include/internal/param_names.h @@ -0,0 +1,469 @@ +/* + * WARNING: do not edit! + * Generated by makefile from include/internal/param_names.h.in + * + * Copyright 2023 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + +int ossl_param_find_pidx(const char *s); + +/* Parameter name definitions - generated by util/perl/OpenSSL/paramnames.pm */ +#define NUM_PIDX 346 + +#define PIDX_ALG_PARAM_ALGORITHM_ID 0 +#define PIDX_ALG_PARAM_ALGORITHM_ID_PARAMS 1 +#define PIDX_ALG_PARAM_CIPHER 2 +#define PIDX_ALG_PARAM_DIGEST 3 +#define PIDX_ALG_PARAM_ENGINE 4 +#define PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR 5 +#define PIDX_ALG_PARAM_MAC 6 +#define PIDX_ALG_PARAM_PROPERTIES 7 +#define PIDX_ASYM_CIPHER_PARAM_DIGEST PIDX_PKEY_PARAM_DIGEST +#define PIDX_ASYM_CIPHER_PARAM_ENGINE PIDX_PKEY_PARAM_ENGINE +#define PIDX_ASYM_CIPHER_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_ASYM_CIPHER_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_ASYM_CIPHER_PARAM_FIPS_RSA_PKCS15_PAD_DISABLED PIDX_PROV_PARAM_RSA_PKCS15_PAD_DISABLED +#define PIDX_ASYM_CIPHER_PARAM_IMPLICIT_REJECTION 8 +#define PIDX_ASYM_CIPHER_PARAM_MGF1_DIGEST PIDX_PKEY_PARAM_MGF1_DIGEST +#define PIDX_ASYM_CIPHER_PARAM_MGF1_DIGEST_PROPS PIDX_PKEY_PARAM_MGF1_PROPERTIES +#define PIDX_ASYM_CIPHER_PARAM_OAEP_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_ASYM_CIPHER_PARAM_OAEP_DIGEST_PROPS 9 +#define PIDX_ASYM_CIPHER_PARAM_OAEP_LABEL 10 +#define PIDX_ASYM_CIPHER_PARAM_PAD_MODE PIDX_PKEY_PARAM_PAD_MODE +#define PIDX_ASYM_CIPHER_PARAM_PROPERTIES PIDX_PKEY_PARAM_PROPERTIES +#define PIDX_ASYM_CIPHER_PARAM_TLS_CLIENT_VERSION 11 +#define PIDX_ASYM_CIPHER_PARAM_TLS_NEGOTIATED_VERSION 12 +#define PIDX_CAPABILITY_TLS_GROUP_ALG 13 +#define PIDX_CAPABILITY_TLS_GROUP_ID 14 +#define PIDX_CAPABILITY_TLS_GROUP_IS_KEM 15 +#define PIDX_CAPABILITY_TLS_GROUP_MAX_DTLS 16 +#define PIDX_CAPABILITY_TLS_GROUP_MAX_TLS 17 +#define PIDX_CAPABILITY_TLS_GROUP_MIN_DTLS 18 +#define PIDX_CAPABILITY_TLS_GROUP_MIN_TLS 19 +#define PIDX_CAPABILITY_TLS_GROUP_NAME 20 +#define PIDX_CAPABILITY_TLS_GROUP_NAME_INTERNAL 21 +#define PIDX_CAPABILITY_TLS_GROUP_SECURITY_BITS 22 +#define PIDX_CAPABILITY_TLS_SIGALG_CODE_POINT 23 +#define PIDX_CAPABILITY_TLS_SIGALG_HASH_NAME 24 +#define PIDX_CAPABILITY_TLS_SIGALG_HASH_OID 25 +#define PIDX_CAPABILITY_TLS_SIGALG_IANA_NAME 26 +#define PIDX_CAPABILITY_TLS_SIGALG_KEYTYPE 27 +#define PIDX_CAPABILITY_TLS_SIGALG_KEYTYPE_OID 28 +#define PIDX_CAPABILITY_TLS_SIGALG_MAX_DTLS 16 +#define PIDX_CAPABILITY_TLS_SIGALG_MAX_TLS 17 +#define PIDX_CAPABILITY_TLS_SIGALG_MIN_DTLS 18 +#define PIDX_CAPABILITY_TLS_SIGALG_MIN_TLS 19 +#define PIDX_CAPABILITY_TLS_SIGALG_NAME 29 +#define PIDX_CAPABILITY_TLS_SIGALG_OID 30 +#define PIDX_CAPABILITY_TLS_SIGALG_SECURITY_BITS 31 +#define PIDX_CAPABILITY_TLS_SIGALG_SIG_NAME 32 +#define PIDX_CAPABILITY_TLS_SIGALG_SIG_OID 33 +#define PIDX_CIPHER_PARAM_AEAD 34 +#define PIDX_CIPHER_PARAM_AEAD_IVLEN PIDX_CIPHER_PARAM_IVLEN +#define PIDX_CIPHER_PARAM_AEAD_IV_GENERATED 35 +#define PIDX_CIPHER_PARAM_AEAD_MAC_KEY 36 +#define PIDX_CIPHER_PARAM_AEAD_TAG 37 +#define PIDX_CIPHER_PARAM_AEAD_TAGLEN 38 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_AAD 39 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_AAD_PAD 40 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_GET_IV_GEN 41 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_IV_FIXED 42 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_SET_IV_INV 43 +#define PIDX_CIPHER_PARAM_ALGORITHM_ID PIDX_ALG_PARAM_ALGORITHM_ID +#define PIDX_CIPHER_PARAM_ALGORITHM_ID_PARAMS PIDX_ALG_PARAM_ALGORITHM_ID_PARAMS +#define PIDX_CIPHER_PARAM_ALGORITHM_ID_PARAMS_OLD 44 +#define PIDX_CIPHER_PARAM_BLOCK_SIZE 45 +#define PIDX_CIPHER_PARAM_CTS 46 +#define PIDX_CIPHER_PARAM_CTS_MODE 47 +#define PIDX_CIPHER_PARAM_CUSTOM_IV 48 +#define PIDX_CIPHER_PARAM_DECRYPT_ONLY 49 +#define PIDX_CIPHER_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_CIPHER_PARAM_FIPS_ENCRYPT_CHECK 50 +#define PIDX_CIPHER_PARAM_HAS_RAND_KEY 51 +#define PIDX_CIPHER_PARAM_IV 52 +#define PIDX_CIPHER_PARAM_IVLEN 53 +#define PIDX_CIPHER_PARAM_KEYLEN 54 +#define PIDX_CIPHER_PARAM_MODE 55 +#define PIDX_CIPHER_PARAM_NUM 56 +#define PIDX_CIPHER_PARAM_PADDING 57 +#define PIDX_CIPHER_PARAM_PIPELINE_AEAD_TAG 58 +#define PIDX_CIPHER_PARAM_RANDOM_KEY 59 +#define PIDX_CIPHER_PARAM_RC2_KEYBITS 60 +#define PIDX_CIPHER_PARAM_ROUNDS 61 +#define PIDX_CIPHER_PARAM_SPEED 62 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK 63 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD 64 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD_PACKLEN 65 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC 66 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_IN 67 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_LEN 68 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_INTERLEAVE 69 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_BUFSIZE 70 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_SEND_FRAGMENT 71 +#define PIDX_CIPHER_PARAM_TLS_MAC 72 +#define PIDX_CIPHER_PARAM_TLS_MAC_SIZE 73 +#define PIDX_CIPHER_PARAM_TLS_VERSION 74 +#define PIDX_CIPHER_PARAM_UPDATED_IV 75 +#define PIDX_CIPHER_PARAM_USE_BITS 76 +#define PIDX_CIPHER_PARAM_XTS_STANDARD 77 +#define PIDX_DECODER_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_DIGEST_PARAM_ALGID_ABSENT 78 +#define PIDX_DIGEST_PARAM_BLOCK_SIZE 45 +#define PIDX_DIGEST_PARAM_MICALG 79 +#define PIDX_DIGEST_PARAM_PAD_TYPE 80 +#define PIDX_DIGEST_PARAM_SIZE 81 +#define PIDX_DIGEST_PARAM_SSL3_MS 82 +#define PIDX_DIGEST_PARAM_XOF 83 +#define PIDX_DIGEST_PARAM_XOFLEN 84 +#define PIDX_DRBG_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_DRBG_PARAM_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_DRBG_PARAM_ENTROPY_REQUIRED 85 +#define PIDX_DRBG_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_DRBG_PARAM_FIPS_DIGEST_CHECK PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK +#define PIDX_DRBG_PARAM_MAC PIDX_ALG_PARAM_MAC +#define PIDX_DRBG_PARAM_MAX_ADINLEN 86 +#define PIDX_DRBG_PARAM_MAX_ENTROPYLEN 87 +#define PIDX_DRBG_PARAM_MAX_LENGTH 88 +#define PIDX_DRBG_PARAM_MAX_NONCELEN 89 +#define PIDX_DRBG_PARAM_MAX_PERSLEN 90 +#define PIDX_DRBG_PARAM_MIN_ENTROPYLEN 91 +#define PIDX_DRBG_PARAM_MIN_LENGTH 92 +#define PIDX_DRBG_PARAM_MIN_NONCELEN 93 +#define PIDX_DRBG_PARAM_PREDICTION_RESISTANCE 94 +#define PIDX_DRBG_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_DRBG_PARAM_RANDOM_DATA 95 +#define PIDX_DRBG_PARAM_RESEED_COUNTER 96 +#define PIDX_DRBG_PARAM_RESEED_REQUESTS 97 +#define PIDX_DRBG_PARAM_RESEED_TIME 98 +#define PIDX_DRBG_PARAM_RESEED_TIME_INTERVAL 99 +#define PIDX_DRBG_PARAM_SIZE 81 +#define PIDX_DRBG_PARAM_USE_DF 100 +#define PIDX_ENCODER_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_ENCODER_PARAM_ENCRYPT_LEVEL 101 +#define PIDX_ENCODER_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_ENCODER_PARAM_SAVE_PARAMETERS 102 +#define PIDX_EXCHANGE_PARAM_EC_ECDH_COFACTOR_MODE 103 +#define PIDX_EXCHANGE_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_EXCHANGE_PARAM_FIPS_DIGEST_CHECK PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK +#define PIDX_EXCHANGE_PARAM_FIPS_ECDH_COFACTOR_CHECK PIDX_PROV_PARAM_ECDH_COFACTOR_CHECK +#define PIDX_EXCHANGE_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_EXCHANGE_PARAM_KDF_DIGEST 104 +#define PIDX_EXCHANGE_PARAM_KDF_DIGEST_PROPS 105 +#define PIDX_EXCHANGE_PARAM_KDF_OUTLEN 106 +#define PIDX_EXCHANGE_PARAM_KDF_TYPE 107 +#define PIDX_EXCHANGE_PARAM_KDF_UKM 108 +#define PIDX_EXCHANGE_PARAM_PAD 109 +#define PIDX_GEN_PARAM_ITERATION 110 +#define PIDX_GEN_PARAM_POTENTIAL 111 +#define PIDX_KDF_PARAM_ARGON2_AD 112 +#define PIDX_KDF_PARAM_ARGON2_LANES 113 +#define PIDX_KDF_PARAM_ARGON2_MEMCOST 114 +#define PIDX_KDF_PARAM_ARGON2_VERSION 115 +#define PIDX_KDF_PARAM_CEK_ALG 116 +#define PIDX_KDF_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_KDF_PARAM_CONSTANT 117 +#define PIDX_KDF_PARAM_DATA 118 +#define PIDX_KDF_PARAM_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_KDF_PARAM_EARLY_CLEAN 119 +#define PIDX_KDF_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_KDF_PARAM_FIPS_DIGEST_CHECK PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK +#define PIDX_KDF_PARAM_FIPS_EMS_CHECK 120 +#define PIDX_KDF_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_KDF_PARAM_HMACDRBG_ENTROPY 121 +#define PIDX_KDF_PARAM_HMACDRBG_NONCE 122 +#define PIDX_KDF_PARAM_INFO 123 +#define PIDX_KDF_PARAM_ITER 124 +#define PIDX_KDF_PARAM_KBKDF_R 125 +#define PIDX_KDF_PARAM_KBKDF_USE_L 126 +#define PIDX_KDF_PARAM_KBKDF_USE_SEPARATOR 127 +#define PIDX_KDF_PARAM_KEY 128 +#define PIDX_KDF_PARAM_LABEL 129 +#define PIDX_KDF_PARAM_MAC PIDX_ALG_PARAM_MAC +#define PIDX_KDF_PARAM_MAC_SIZE 130 +#define PIDX_KDF_PARAM_MODE 55 +#define PIDX_KDF_PARAM_PASSWORD 131 +#define PIDX_KDF_PARAM_PKCS12_ID 132 +#define PIDX_KDF_PARAM_PKCS5 133 +#define PIDX_KDF_PARAM_PREFIX 134 +#define PIDX_KDF_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_KDF_PARAM_SALT 135 +#define PIDX_KDF_PARAM_SCRYPT_MAXMEM 136 +#define PIDX_KDF_PARAM_SCRYPT_N 137 +#define PIDX_KDF_PARAM_SCRYPT_P 138 +#define PIDX_KDF_PARAM_SCRYPT_R 125 +#define PIDX_KDF_PARAM_SECRET 139 +#define PIDX_KDF_PARAM_SEED 140 +#define PIDX_KDF_PARAM_SIZE 81 +#define PIDX_KDF_PARAM_SSHKDF_SESSION_ID 141 +#define PIDX_KDF_PARAM_SSHKDF_TYPE 142 +#define PIDX_KDF_PARAM_SSHKDF_XCGHASH 143 +#define PIDX_KDF_PARAM_THREADS 144 +#define PIDX_KDF_PARAM_UKM 145 +#define PIDX_KDF_PARAM_X942_ACVPINFO 146 +#define PIDX_KDF_PARAM_X942_PARTYUINFO 147 +#define PIDX_KDF_PARAM_X942_PARTYVINFO 148 +#define PIDX_KDF_PARAM_X942_SUPP_PRIVINFO 149 +#define PIDX_KDF_PARAM_X942_SUPP_PUBINFO 150 +#define PIDX_KDF_PARAM_X942_USE_KEYBITS 151 +#define PIDX_KEM_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_KEM_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_KEM_PARAM_IKME 152 +#define PIDX_KEM_PARAM_OPERATION 153 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_BLOCK_PADDING 154 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_HS_PADDING 155 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_MAX_EARLY_DATA 156 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_MAX_FRAG_LEN 157 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_MODE 55 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_OPTIONS 158 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_READ_AHEAD 159 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_STREAM_MAC 160 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_TLSTREE 161 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_USE_ETM 162 +#define PIDX_LIBSSL_RECORD_LAYER_READ_BUFFER_LEN 163 +#define PIDX_MAC_PARAM_BLOCK_SIZE 164 +#define PIDX_MAC_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_MAC_PARAM_CUSTOM 165 +#define PIDX_MAC_PARAM_C_ROUNDS 166 +#define PIDX_MAC_PARAM_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_MAC_PARAM_DIGEST_NOINIT 167 +#define PIDX_MAC_PARAM_DIGEST_ONESHOT 168 +#define PIDX_MAC_PARAM_D_ROUNDS 169 +#define PIDX_MAC_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_MAC_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_MAC_PARAM_FIPS_NO_SHORT_MAC PIDX_PROV_PARAM_NO_SHORT_MAC +#define PIDX_MAC_PARAM_IV 52 +#define PIDX_MAC_PARAM_KEY 128 +#define PIDX_MAC_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_MAC_PARAM_SALT 135 +#define PIDX_MAC_PARAM_SIZE 81 +#define PIDX_MAC_PARAM_TLS_DATA_SIZE 170 +#define PIDX_MAC_PARAM_XOF 83 +#define PIDX_OBJECT_PARAM_DATA 118 +#define PIDX_OBJECT_PARAM_DATA_STRUCTURE 171 +#define PIDX_OBJECT_PARAM_DATA_TYPE 172 +#define PIDX_OBJECT_PARAM_DESC 173 +#define PIDX_OBJECT_PARAM_INPUT_TYPE 174 +#define PIDX_OBJECT_PARAM_REFERENCE 175 +#define PIDX_OBJECT_PARAM_TYPE 142 +#define PIDX_PASSPHRASE_PARAM_INFO 123 +#define PIDX_PKEY_PARAM_ALGORITHM_ID PIDX_ALG_PARAM_ALGORITHM_ID +#define PIDX_PKEY_PARAM_ALGORITHM_ID_PARAMS PIDX_ALG_PARAM_ALGORITHM_ID_PARAMS +#define PIDX_PKEY_PARAM_BITS 176 +#define PIDX_PKEY_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_PKEY_PARAM_DEFAULT_DIGEST 177 +#define PIDX_PKEY_PARAM_DHKEM_IKM 178 +#define PIDX_PKEY_PARAM_DH_GENERATOR 179 +#define PIDX_PKEY_PARAM_DH_PRIV_LEN 180 +#define PIDX_PKEY_PARAM_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_PKEY_PARAM_DIGEST_SIZE 181 +#define PIDX_PKEY_PARAM_DIST_ID 182 +#define PIDX_PKEY_PARAM_EC_A 183 +#define PIDX_PKEY_PARAM_EC_B 184 +#define PIDX_PKEY_PARAM_EC_CHAR2_M 185 +#define PIDX_PKEY_PARAM_EC_CHAR2_PP_K1 186 +#define PIDX_PKEY_PARAM_EC_CHAR2_PP_K2 187 +#define PIDX_PKEY_PARAM_EC_CHAR2_PP_K3 188 +#define PIDX_PKEY_PARAM_EC_CHAR2_TP_BASIS 189 +#define PIDX_PKEY_PARAM_EC_CHAR2_TYPE 190 +#define PIDX_PKEY_PARAM_EC_COFACTOR 191 +#define PIDX_PKEY_PARAM_EC_DECODED_FROM_EXPLICIT_PARAMS 192 +#define PIDX_PKEY_PARAM_EC_ENCODING 193 +#define PIDX_PKEY_PARAM_EC_FIELD_TYPE 194 +#define PIDX_PKEY_PARAM_EC_GENERATOR 195 +#define PIDX_PKEY_PARAM_EC_GROUP_CHECK_TYPE 196 +#define PIDX_PKEY_PARAM_EC_INCLUDE_PUBLIC 197 +#define PIDX_PKEY_PARAM_EC_ORDER 198 +#define PIDX_PKEY_PARAM_EC_P 138 +#define PIDX_PKEY_PARAM_EC_POINT_CONVERSION_FORMAT 199 +#define PIDX_PKEY_PARAM_EC_PUB_X 200 +#define PIDX_PKEY_PARAM_EC_PUB_Y 201 +#define PIDX_PKEY_PARAM_EC_SEED 140 +#define PIDX_PKEY_PARAM_ENCODED_PUBLIC_KEY 202 +#define PIDX_PKEY_PARAM_ENGINE PIDX_ALG_PARAM_ENGINE +#define PIDX_PKEY_PARAM_FFC_COFACTOR 203 +#define PIDX_PKEY_PARAM_FFC_DIGEST PIDX_PKEY_PARAM_DIGEST +#define PIDX_PKEY_PARAM_FFC_DIGEST_PROPS PIDX_PKEY_PARAM_PROPERTIES +#define PIDX_PKEY_PARAM_FFC_G 204 +#define PIDX_PKEY_PARAM_FFC_GINDEX 205 +#define PIDX_PKEY_PARAM_FFC_H 206 +#define PIDX_PKEY_PARAM_FFC_P 138 +#define PIDX_PKEY_PARAM_FFC_PBITS 207 +#define PIDX_PKEY_PARAM_FFC_PCOUNTER 208 +#define PIDX_PKEY_PARAM_FFC_Q 209 +#define PIDX_PKEY_PARAM_FFC_QBITS 210 +#define PIDX_PKEY_PARAM_FFC_SEED 140 +#define PIDX_PKEY_PARAM_FFC_TYPE 142 +#define PIDX_PKEY_PARAM_FFC_VALIDATE_G 211 +#define PIDX_PKEY_PARAM_FFC_VALIDATE_LEGACY 212 +#define PIDX_PKEY_PARAM_FFC_VALIDATE_PQ 213 +#define PIDX_PKEY_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK 214 +#define PIDX_PKEY_PARAM_FIPS_KEY_CHECK 215 +#define PIDX_PKEY_PARAM_FIPS_SIGN_CHECK 216 +#define PIDX_PKEY_PARAM_GROUP_NAME 217 +#define PIDX_PKEY_PARAM_IMPLICIT_REJECTION 8 +#define PIDX_PKEY_PARAM_MANDATORY_DIGEST 218 +#define PIDX_PKEY_PARAM_MASKGENFUNC 219 +#define PIDX_PKEY_PARAM_MAX_SIZE 220 +#define PIDX_PKEY_PARAM_MGF1_DIGEST 221 +#define PIDX_PKEY_PARAM_MGF1_PROPERTIES 222 +#define PIDX_PKEY_PARAM_ML_DSA_INPUT_FORMATS 223 +#define PIDX_PKEY_PARAM_ML_DSA_OUTPUT_FORMATS 224 +#define PIDX_PKEY_PARAM_ML_DSA_PREFER_SEED 225 +#define PIDX_PKEY_PARAM_ML_DSA_RETAIN_SEED 226 +#define PIDX_PKEY_PARAM_ML_DSA_SEED 140 +#define PIDX_PKEY_PARAM_ML_KEM_IMPORT_PCT_TYPE 227 +#define PIDX_PKEY_PARAM_ML_KEM_INPUT_FORMATS 228 +#define PIDX_PKEY_PARAM_ML_KEM_OUTPUT_FORMATS 229 +#define PIDX_PKEY_PARAM_ML_KEM_PREFER_SEED 230 +#define PIDX_PKEY_PARAM_ML_KEM_RETAIN_SEED 231 +#define PIDX_PKEY_PARAM_ML_KEM_SEED 140 +#define PIDX_PKEY_PARAM_PAD_MODE 232 +#define PIDX_PKEY_PARAM_PRIV_KEY 233 +#define PIDX_PKEY_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_PKEY_PARAM_PUB_KEY 234 +#define PIDX_PKEY_PARAM_RSA_BITS PIDX_PKEY_PARAM_BITS +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT 235 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT1 236 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT2 237 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT3 238 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT4 239 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT5 240 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT6 241 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT7 242 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT8 243 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT9 244 +#define PIDX_PKEY_PARAM_RSA_D 245 +#define PIDX_PKEY_PARAM_RSA_DERIVE_FROM_PQ 246 +#define PIDX_PKEY_PARAM_RSA_DIGEST PIDX_PKEY_PARAM_DIGEST +#define PIDX_PKEY_PARAM_RSA_DIGEST_PROPS PIDX_PKEY_PARAM_PROPERTIES +#define PIDX_PKEY_PARAM_RSA_E 247 +#define PIDX_PKEY_PARAM_RSA_EXPONENT 248 +#define PIDX_PKEY_PARAM_RSA_EXPONENT1 249 +#define PIDX_PKEY_PARAM_RSA_EXPONENT10 250 +#define PIDX_PKEY_PARAM_RSA_EXPONENT2 251 +#define PIDX_PKEY_PARAM_RSA_EXPONENT3 252 +#define PIDX_PKEY_PARAM_RSA_EXPONENT4 253 +#define PIDX_PKEY_PARAM_RSA_EXPONENT5 254 +#define PIDX_PKEY_PARAM_RSA_EXPONENT6 255 +#define PIDX_PKEY_PARAM_RSA_EXPONENT7 256 +#define PIDX_PKEY_PARAM_RSA_EXPONENT8 257 +#define PIDX_PKEY_PARAM_RSA_EXPONENT9 258 +#define PIDX_PKEY_PARAM_RSA_FACTOR 259 +#define PIDX_PKEY_PARAM_RSA_FACTOR1 260 +#define PIDX_PKEY_PARAM_RSA_FACTOR10 261 +#define PIDX_PKEY_PARAM_RSA_FACTOR2 262 +#define PIDX_PKEY_PARAM_RSA_FACTOR3 263 +#define PIDX_PKEY_PARAM_RSA_FACTOR4 264 +#define PIDX_PKEY_PARAM_RSA_FACTOR5 265 +#define PIDX_PKEY_PARAM_RSA_FACTOR6 266 +#define PIDX_PKEY_PARAM_RSA_FACTOR7 267 +#define PIDX_PKEY_PARAM_RSA_FACTOR8 268 +#define PIDX_PKEY_PARAM_RSA_FACTOR9 269 +#define PIDX_PKEY_PARAM_RSA_MASKGENFUNC PIDX_PKEY_PARAM_MASKGENFUNC +#define PIDX_PKEY_PARAM_RSA_MGF1_DIGEST PIDX_PKEY_PARAM_MGF1_DIGEST +#define PIDX_PKEY_PARAM_RSA_N 137 +#define PIDX_PKEY_PARAM_RSA_PRIMES 270 +#define PIDX_PKEY_PARAM_RSA_PSS_SALTLEN 271 +#define PIDX_PKEY_PARAM_RSA_TEST_P1 272 +#define PIDX_PKEY_PARAM_RSA_TEST_P2 273 +#define PIDX_PKEY_PARAM_RSA_TEST_Q1 274 +#define PIDX_PKEY_PARAM_RSA_TEST_Q2 275 +#define PIDX_PKEY_PARAM_RSA_TEST_XP 276 +#define PIDX_PKEY_PARAM_RSA_TEST_XP1 277 +#define PIDX_PKEY_PARAM_RSA_TEST_XP2 278 +#define PIDX_PKEY_PARAM_RSA_TEST_XQ 279 +#define PIDX_PKEY_PARAM_RSA_TEST_XQ1 280 +#define PIDX_PKEY_PARAM_RSA_TEST_XQ2 281 +#define PIDX_PKEY_PARAM_SECURITY_BITS 282 +#define PIDX_PKEY_PARAM_SLH_DSA_SEED 140 +#define PIDX_PKEY_PARAM_USE_COFACTOR_ECDH PIDX_PKEY_PARAM_USE_COFACTOR_FLAG +#define PIDX_PKEY_PARAM_USE_COFACTOR_FLAG 283 +#define PIDX_PROV_PARAM_BUILDINFO 284 +#define PIDX_PROV_PARAM_CORE_MODULE_FILENAME 285 +#define PIDX_PROV_PARAM_CORE_PROV_NAME 286 +#define PIDX_PROV_PARAM_CORE_VERSION 287 +#define PIDX_PROV_PARAM_DRBG_TRUNC_DIGEST 288 +#define PIDX_PROV_PARAM_DSA_SIGN_DISABLED 289 +#define PIDX_PROV_PARAM_ECDH_COFACTOR_CHECK 290 +#define PIDX_PROV_PARAM_HKDF_DIGEST_CHECK 291 +#define PIDX_PROV_PARAM_HKDF_KEY_CHECK 292 +#define PIDX_PROV_PARAM_HMAC_KEY_CHECK 293 +#define PIDX_PROV_PARAM_KBKDF_KEY_CHECK 294 +#define PIDX_PROV_PARAM_KMAC_KEY_CHECK 295 +#define PIDX_PROV_PARAM_NAME 296 +#define PIDX_PROV_PARAM_NO_SHORT_MAC 297 +#define PIDX_PROV_PARAM_PBKDF2_LOWER_BOUND_CHECK 298 +#define PIDX_PROV_PARAM_RSA_PKCS15_PAD_DISABLED 299 +#define PIDX_PROV_PARAM_RSA_PSS_SALTLEN_CHECK 300 +#define PIDX_PROV_PARAM_RSA_SIGN_X931_PAD_DISABLED 301 +#define PIDX_PROV_PARAM_SECURITY_CHECKS 302 +#define PIDX_PROV_PARAM_SELF_TEST_DESC 303 +#define PIDX_PROV_PARAM_SELF_TEST_PHASE 304 +#define PIDX_PROV_PARAM_SELF_TEST_TYPE 305 +#define PIDX_PROV_PARAM_SIGNATURE_DIGEST_CHECK 306 +#define PIDX_PROV_PARAM_SSHKDF_DIGEST_CHECK 307 +#define PIDX_PROV_PARAM_SSHKDF_KEY_CHECK 308 +#define PIDX_PROV_PARAM_SSKDF_DIGEST_CHECK 309 +#define PIDX_PROV_PARAM_SSKDF_KEY_CHECK 310 +#define PIDX_PROV_PARAM_STATUS 311 +#define PIDX_PROV_PARAM_TDES_ENCRYPT_DISABLED 312 +#define PIDX_PROV_PARAM_TLS13_KDF_DIGEST_CHECK 313 +#define PIDX_PROV_PARAM_TLS13_KDF_KEY_CHECK 314 +#define PIDX_PROV_PARAM_TLS1_PRF_DIGEST_CHECK 315 +#define PIDX_PROV_PARAM_TLS1_PRF_EMS_CHECK 316 +#define PIDX_PROV_PARAM_TLS1_PRF_KEY_CHECK 317 +#define PIDX_PROV_PARAM_VERSION 115 +#define PIDX_PROV_PARAM_X942KDF_KEY_CHECK 318 +#define PIDX_PROV_PARAM_X963KDF_DIGEST_CHECK 319 +#define PIDX_PROV_PARAM_X963KDF_KEY_CHECK 320 +#define PIDX_RAND_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_RAND_PARAM_GENERATE 321 +#define PIDX_RAND_PARAM_MAX_REQUEST 322 +#define PIDX_RAND_PARAM_STATE 323 +#define PIDX_RAND_PARAM_STRENGTH 324 +#define PIDX_RAND_PARAM_TEST_ENTROPY 325 +#define PIDX_RAND_PARAM_TEST_NONCE 326 +#define PIDX_SIGNATURE_PARAM_ADD_RANDOM 327 +#define PIDX_SIGNATURE_PARAM_ALGORITHM_ID PIDX_PKEY_PARAM_ALGORITHM_ID +#define PIDX_SIGNATURE_PARAM_ALGORITHM_ID_PARAMS PIDX_PKEY_PARAM_ALGORITHM_ID_PARAMS +#define PIDX_SIGNATURE_PARAM_CONTEXT_STRING 328 +#define PIDX_SIGNATURE_PARAM_DETERMINISTIC 329 +#define PIDX_SIGNATURE_PARAM_DIGEST PIDX_PKEY_PARAM_DIGEST +#define PIDX_SIGNATURE_PARAM_DIGEST_SIZE PIDX_PKEY_PARAM_DIGEST_SIZE +#define PIDX_SIGNATURE_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_SIGNATURE_PARAM_FIPS_DIGEST_CHECK PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK +#define PIDX_SIGNATURE_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_SIGNATURE_PARAM_FIPS_RSA_PSS_SALTLEN_CHECK 300 +#define PIDX_SIGNATURE_PARAM_FIPS_SIGN_CHECK PIDX_PKEY_PARAM_FIPS_SIGN_CHECK +#define PIDX_SIGNATURE_PARAM_FIPS_SIGN_X931_PAD_CHECK 330 +#define PIDX_SIGNATURE_PARAM_FIPS_VERIFY_MESSAGE 331 +#define PIDX_SIGNATURE_PARAM_INSTANCE 332 +#define PIDX_SIGNATURE_PARAM_KAT 333 +#define PIDX_SIGNATURE_PARAM_MESSAGE_ENCODING 334 +#define PIDX_SIGNATURE_PARAM_MGF1_DIGEST PIDX_PKEY_PARAM_MGF1_DIGEST +#define PIDX_SIGNATURE_PARAM_MGF1_PROPERTIES PIDX_PKEY_PARAM_MGF1_PROPERTIES +#define PIDX_SIGNATURE_PARAM_MU 335 +#define PIDX_SIGNATURE_PARAM_NONCE_TYPE 336 +#define PIDX_SIGNATURE_PARAM_PAD_MODE PIDX_PKEY_PARAM_PAD_MODE +#define PIDX_SIGNATURE_PARAM_PROPERTIES PIDX_PKEY_PARAM_PROPERTIES +#define PIDX_SIGNATURE_PARAM_PSS_SALTLEN 271 +#define PIDX_SIGNATURE_PARAM_SIGNATURE 337 +#define PIDX_SIGNATURE_PARAM_TEST_ENTROPY 338 +#define PIDX_SKEY_PARAM_KEY_LENGTH 339 +#define PIDX_SKEY_PARAM_RAW_BYTES 340 +#define PIDX_STORE_PARAM_ALIAS 341 +#define PIDX_STORE_PARAM_DIGEST 3 +#define PIDX_STORE_PARAM_EXPECT 342 +#define PIDX_STORE_PARAM_FINGERPRINT 343 +#define PIDX_STORE_PARAM_INPUT_TYPE 174 +#define PIDX_STORE_PARAM_ISSUER 296 +#define PIDX_STORE_PARAM_PROPERTIES 7 +#define PIDX_STORE_PARAM_SERIAL 344 +#define PIDX_STORE_PARAM_SUBJECT 345 diff --git a/deps/openssl/config/archs/VC-WIN64A/no-asm/include/openssl/asn1.h b/deps/openssl/config/archs/VC-WIN64A/no-asm/include/openssl/asn1.h index e28efbbb718e2b..5129217b2e0977 100644 --- a/deps/openssl/config/archs/VC-WIN64A/no-asm/include/openssl/asn1.h +++ b/deps/openssl/config/archs/VC-WIN64A/no-asm/include/openssl/asn1.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by makefile from include/openssl/asn1.h.in * - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -21,6 +21,9 @@ # define HEADER_ASN1_H # endif +# ifndef OPENSSL_NO_STDIO +# include +# endif # include # include # include @@ -50,14 +53,14 @@ extern "C" { # define V_ASN1_PRIMITIVE_TAG 0x1f # define V_ASN1_PRIMATIVE_TAG /*compat*/ V_ASN1_PRIMITIVE_TAG -# define V_ASN1_APP_CHOOSE -2/* let the recipient choose */ -# define V_ASN1_OTHER -3/* used in ASN1_TYPE */ -# define V_ASN1_ANY -4/* used in ASN1 template code */ +# define V_ASN1_APP_CHOOSE -2 /* let the recipient choose */ +# define V_ASN1_OTHER -3 /* used in ASN1_TYPE */ +# define V_ASN1_ANY -4 /* used in ASN1 template code */ # define V_ASN1_UNDEF -1 /* ASN.1 tag values */ # define V_ASN1_EOC 0 -# define V_ASN1_BOOLEAN 1 /**/ +# define V_ASN1_BOOLEAN 1 # define V_ASN1_INTEGER 2 # define V_ASN1_BIT_STRING 3 # define V_ASN1_OCTET_STRING 4 @@ -70,19 +73,19 @@ extern "C" { # define V_ASN1_UTF8STRING 12 # define V_ASN1_SEQUENCE 16 # define V_ASN1_SET 17 -# define V_ASN1_NUMERICSTRING 18 /**/ +# define V_ASN1_NUMERICSTRING 18 # define V_ASN1_PRINTABLESTRING 19 # define V_ASN1_T61STRING 20 -# define V_ASN1_TELETEXSTRING 20/* alias */ -# define V_ASN1_VIDEOTEXSTRING 21 /**/ +# define V_ASN1_TELETEXSTRING 20 /* alias */ +# define V_ASN1_VIDEOTEXSTRING 21 # define V_ASN1_IA5STRING 22 # define V_ASN1_UTCTIME 23 -# define V_ASN1_GENERALIZEDTIME 24 /**/ -# define V_ASN1_GRAPHICSTRING 25 /**/ -# define V_ASN1_ISO64STRING 26 /**/ -# define V_ASN1_VISIBLESTRING 26/* alias */ -# define V_ASN1_GENERALSTRING 27 /**/ -# define V_ASN1_UNIVERSALSTRING 28 /**/ +# define V_ASN1_GENERALIZEDTIME 24 +# define V_ASN1_GRAPHICSTRING 25 +# define V_ASN1_ISO64STRING 26 +# define V_ASN1_VISIBLESTRING 26 /* alias */ +# define V_ASN1_GENERALSTRING 27 +# define V_ASN1_UNIVERSALSTRING 28 # define V_ASN1_BMPSTRING 30 /* @@ -155,7 +158,7 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_ALGOR, X509_ALGOR, X509_ALGOR) -# define ASN1_STRING_FLAG_BITS_LEFT 0x08/* Set if 0x07 has bits left value */ +# define ASN1_STRING_FLAG_BITS_LEFT 0x08 /* Set if 0x07 has bits left value */ /* * This indicates that the ASN1_STRING is not a real value but just a place * holder for the location where indefinite length constructed data should be @@ -275,7 +278,7 @@ typedef struct ASN1_TLC_st ASN1_TLC; /* This is just an opaque pointer */ typedef struct ASN1_VALUE_st ASN1_VALUE; -/* Declare ASN1 functions: the implement macro in in asn1t.h */ +/* Declare ASN1 functions: the implement macro is in asn1t.h */ /* * The mysterious 'extern' that's passed to some macros is innocuous, @@ -368,6 +371,7 @@ typedef struct ASN1_VALUE_st ASN1_VALUE; typedef void *d2i_of_void(void **, const unsigned char **, long); typedef int i2d_of_void(const void *, unsigned char **); +typedef int OSSL_i2d_of_void_ctx(const void *, unsigned char **, void *vctx); /*- * The following macros and typedefs allow an ASN1_ITEM @@ -996,6 +1000,8 @@ int ASN1_TYPE_get_int_octetstring(const ASN1_TYPE *a, long *num, unsigned char *data, int max_len); void *ASN1_item_unpack(const ASN1_STRING *oct, const ASN1_ITEM *it); +void *ASN1_item_unpack_ex(const ASN1_STRING *oct, const ASN1_ITEM *it, + OSSL_LIB_CTX *libctx, const char *propq); ASN1_STRING *ASN1_item_pack(void *obj, const ASN1_ITEM *it, ASN1_OCTET_STRING **oct); diff --git a/deps/openssl/config/archs/VC-WIN64A/no-asm/include/openssl/bio.h b/deps/openssl/config/archs/VC-WIN64A/no-asm/include/openssl/bio.h index d094af47b73f1c..be24d086a54013 100644 --- a/deps/openssl/config/archs/VC-WIN64A/no-asm/include/openssl/bio.h +++ b/deps/openssl/config/archs/VC-WIN64A/no-asm/include/openssl/bio.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by makefile from include/openssl/bio.h.in * - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -67,8 +67,13 @@ extern "C" { # define BIO_TYPE_DGRAM_SCTP (24|BIO_TYPE_SOURCE_SINK|BIO_TYPE_DESCRIPTOR) # endif # define BIO_TYPE_CORE_TO_PROV (25|BIO_TYPE_SOURCE_SINK) +# define BIO_TYPE_DGRAM_PAIR (26|BIO_TYPE_SOURCE_SINK) +# define BIO_TYPE_DGRAM_MEM (27|BIO_TYPE_SOURCE_SINK) +/* Custom type starting index returned by BIO_get_new_index() */ #define BIO_TYPE_START 128 +/* Custom type maximum index that can be returned by BIO_get_new_index() */ +#define BIO_TYPE_MASK 0xFF /* * BIO_FILENAME_READ|BIO_CLOSE to open or close on free. @@ -171,6 +176,31 @@ extern "C" { # define BIO_CTRL_SET_INDENT 80 # define BIO_CTRL_GET_INDENT 81 +# define BIO_CTRL_DGRAM_GET_LOCAL_ADDR_CAP 82 +# define BIO_CTRL_DGRAM_GET_LOCAL_ADDR_ENABLE 83 +# define BIO_CTRL_DGRAM_SET_LOCAL_ADDR_ENABLE 84 +# define BIO_CTRL_DGRAM_GET_EFFECTIVE_CAPS 85 +# define BIO_CTRL_DGRAM_GET_CAPS 86 +# define BIO_CTRL_DGRAM_SET_CAPS 87 +# define BIO_CTRL_DGRAM_GET_NO_TRUNC 88 +# define BIO_CTRL_DGRAM_SET_NO_TRUNC 89 + +/* + * internal BIO: + * # define BIO_CTRL_SET_KTLS_TX_ZEROCOPY_SENDFILE 90 + */ + +# define BIO_CTRL_GET_RPOLL_DESCRIPTOR 91 +# define BIO_CTRL_GET_WPOLL_DESCRIPTOR 92 +# define BIO_CTRL_DGRAM_DETECT_PEER_ADDR 93 +# define BIO_CTRL_DGRAM_SET0_LOCAL_ADDR 94 + +# define BIO_DGRAM_CAP_NONE 0U +# define BIO_DGRAM_CAP_HANDLES_SRC_ADDR (1U << 0) +# define BIO_DGRAM_CAP_HANDLES_DST_ADDR (1U << 1) +# define BIO_DGRAM_CAP_PROVIDES_SRC_ADDR (1U << 2) +# define BIO_DGRAM_CAP_PROVIDES_DST_ADDR (1U << 3) + # ifndef OPENSSL_NO_KTLS # define BIO_get_ktls_send(b) \ (BIO_ctrl(b, BIO_CTRL_GET_KTLS_SEND, 0, NULL) > 0) @@ -208,7 +238,7 @@ extern "C" { # define BIO_FLAGS_NONCLEAR_RST 0x400 # define BIO_FLAGS_IN_EOF 0x800 -/* the BIO FLAGS values 0x1000 to 0x4000 are reserved for internal KTLS flags */ +/* the BIO FLAGS values 0x1000 to 0x8000 are reserved for internal KTLS flags */ typedef union bio_addr_st BIO_ADDR; typedef struct bio_addrinfo_st BIO_ADDRINFO; @@ -256,12 +286,14 @@ void BIO_clear_flags(BIO *b, int flags); # define BIO_RR_ACCEPT 0x03 /* These are passed by the BIO callback */ -# define BIO_CB_FREE 0x01 -# define BIO_CB_READ 0x02 -# define BIO_CB_WRITE 0x03 -# define BIO_CB_PUTS 0x04 -# define BIO_CB_GETS 0x05 -# define BIO_CB_CTRL 0x06 +# define BIO_CB_FREE 0x01 +# define BIO_CB_READ 0x02 +# define BIO_CB_WRITE 0x03 +# define BIO_CB_PUTS 0x04 +# define BIO_CB_GETS 0x05 +# define BIO_CB_CTRL 0x06 +# define BIO_CB_RECVMMSG 0x07 +# define BIO_CB_SENDMMSG 0x08 /* * The callback is called before and after the underling operation, The @@ -362,6 +394,36 @@ struct bio_dgram_sctp_prinfo { }; # endif +/* BIO_sendmmsg/BIO_recvmmsg-related definitions */ +typedef struct bio_msg_st { + void *data; + size_t data_len; + BIO_ADDR *peer, *local; + uint64_t flags; +} BIO_MSG; + +typedef struct bio_mmsg_cb_args_st { + BIO_MSG *msg; + size_t stride, num_msg; + uint64_t flags; + size_t *msgs_processed; +} BIO_MMSG_CB_ARGS; + +#define BIO_POLL_DESCRIPTOR_TYPE_NONE 0 +#define BIO_POLL_DESCRIPTOR_TYPE_SOCK_FD 1 +#define BIO_POLL_DESCRIPTOR_TYPE_SSL 2 +#define BIO_POLL_DESCRIPTOR_CUSTOM_START 8192 + +typedef struct bio_poll_descriptor_st { + uint32_t type; + union { + int fd; + void *custom; + uintptr_t custom_ui; + SSL *ssl; + } value; +} BIO_POLL_DESCRIPTOR; + /* * #define BIO_CONN_get_param_hostname BIO_ctrl */ @@ -428,10 +490,17 @@ struct bio_dgram_sctp_prinfo { # define BIO_C_SET_CONNECT_MODE 155 +# define BIO_C_SET_TFO 156 /* like BIO_C_SET_NBIO */ + +# define BIO_C_SET_SOCK_TYPE 157 +# define BIO_C_GET_SOCK_TYPE 158 +# define BIO_C_GET_DGRAM_BIO 159 + # define BIO_set_app_data(s,arg) BIO_set_ex_data(s,0,arg) # define BIO_get_app_data(s) BIO_get_ex_data(s,0) -# define BIO_set_nbio(b,n) BIO_ctrl(b,BIO_C_SET_NBIO,(n),NULL) +# define BIO_set_nbio(b,n) BIO_ctrl(b,BIO_C_SET_NBIO,(n),NULL) +# define BIO_set_tfo(b,n) BIO_ctrl(b,BIO_C_SET_TFO,(n),NULL) # ifndef OPENSSL_NO_SOCK /* IP families we support, for BIO_s_connect() and BIO_s_accept() */ @@ -452,7 +521,11 @@ struct bio_dgram_sctp_prinfo { # define BIO_get_conn_port(b) ((const char *)BIO_ptr_ctrl(b,BIO_C_GET_CONNECT,1)) # define BIO_get_conn_address(b) ((const BIO_ADDR *)BIO_ptr_ctrl(b,BIO_C_GET_CONNECT,2)) # define BIO_get_conn_ip_family(b) BIO_ctrl(b,BIO_C_GET_CONNECT,3,NULL) +# define BIO_get_conn_mode(b) BIO_ctrl(b,BIO_C_GET_CONNECT,4,NULL) # define BIO_set_conn_mode(b,n) BIO_ctrl(b,BIO_C_SET_CONNECT_MODE,(n),NULL) +# define BIO_set_sock_type(b,t) BIO_ctrl(b,BIO_C_SET_SOCK_TYPE,(t),NULL) +# define BIO_get_sock_type(b) BIO_ctrl(b,BIO_C_GET_SOCK_TYPE,0,NULL) +# define BIO_get0_dgram_bio(b, p) BIO_ctrl(b,BIO_C_GET_DGRAM_BIO,0,(void *)(BIO **)(p)) /* BIO_s_accept() */ # define BIO_set_accept_name(b,name) BIO_ctrl(b,BIO_C_SET_ACCEPT,0, \ @@ -469,6 +542,7 @@ struct bio_dgram_sctp_prinfo { (char *)(bio)) # define BIO_set_accept_ip_family(b,f) BIO_int_ctrl(b,BIO_C_SET_ACCEPT,4,f) # define BIO_get_accept_ip_family(b) BIO_ctrl(b,BIO_C_GET_ACCEPT,4,NULL) +# define BIO_set_tfo_accept(b,n) BIO_ctrl(b,BIO_C_SET_ACCEPT,5,(n)?(void *)"a":NULL) /* Aliases kept for backward compatibility */ # define BIO_BIND_NORMAL 0 @@ -596,8 +670,32 @@ int BIO_ctrl_reset_read_request(BIO *b); (int)BIO_ctrl(b, BIO_CTRL_DGRAM_GET_PEER, 0, (char *)(peer)) # define BIO_dgram_set_peer(b,peer) \ (int)BIO_ctrl(b, BIO_CTRL_DGRAM_SET_PEER, 0, (char *)(peer)) +# define BIO_dgram_detect_peer_addr(b,peer) \ + (int)BIO_ctrl(b, BIO_CTRL_DGRAM_DETECT_PEER_ADDR, 0, (char *)(peer)) # define BIO_dgram_get_mtu_overhead(b) \ (unsigned int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_MTU_OVERHEAD, 0, NULL) +# define BIO_dgram_get_local_addr_cap(b) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_LOCAL_ADDR_CAP, 0, NULL) +# define BIO_dgram_get_local_addr_enable(b, penable) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_LOCAL_ADDR_ENABLE, 0, (char *)(penable)) +# define BIO_dgram_set_local_addr_enable(b, enable) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET_LOCAL_ADDR_ENABLE, (enable), NULL) +# define BIO_dgram_get_effective_caps(b) \ + (uint32_t)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_EFFECTIVE_CAPS, 0, NULL) +# define BIO_dgram_get_caps(b) \ + (uint32_t)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_CAPS, 0, NULL) +# define BIO_dgram_set_caps(b, caps) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET_CAPS, (long)(caps), NULL) +# define BIO_dgram_get_no_trunc(b) \ + (unsigned int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_NO_TRUNC, 0, NULL) +# define BIO_dgram_set_no_trunc(b, enable) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET_NO_TRUNC, (enable), NULL) +# define BIO_dgram_get_mtu(b) \ + (unsigned int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_MTU, 0, NULL) +# define BIO_dgram_set_mtu(b, mtu) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET_MTU, (mtu), NULL) +# define BIO_dgram_set0_local_addr(b, addr) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET0_LOCAL_ADDR, 0, (addr)) /* ctrl macros for BIO_f_prefix */ # define BIO_set_prefix(b,p) BIO_ctrl((b), BIO_CTRL_SET_PREFIX, 0, (void *)(p)) @@ -640,10 +738,18 @@ void BIO_vfree(BIO *a); int BIO_up_ref(BIO *a); int BIO_read(BIO *b, void *data, int dlen); int BIO_read_ex(BIO *b, void *data, size_t dlen, size_t *readbytes); +__owur int BIO_recvmmsg(BIO *b, BIO_MSG *msg, + size_t stride, size_t num_msg, uint64_t flags, + size_t *msgs_processed); int BIO_gets(BIO *bp, char *buf, int size); int BIO_get_line(BIO *bio, char *buf, int size); int BIO_write(BIO *b, const void *data, int dlen); int BIO_write_ex(BIO *b, const void *data, size_t dlen, size_t *written); +__owur int BIO_sendmmsg(BIO *b, BIO_MSG *msg, + size_t stride, size_t num_msg, uint64_t flags, + size_t *msgs_processed); +__owur int BIO_get_rpoll_descriptor(BIO *b, BIO_POLL_DESCRIPTOR *desc); +__owur int BIO_get_wpoll_descriptor(BIO *b, BIO_POLL_DESCRIPTOR *desc); int BIO_puts(BIO *bp, const char *buf); int BIO_indent(BIO *b, int indent, int max); long BIO_ctrl(BIO *bp, int cmd, long larg, void *parg); @@ -667,6 +773,9 @@ int BIO_nwrite0(BIO *bio, char **buf); int BIO_nwrite(BIO *bio, char **buf, int num); const BIO_METHOD *BIO_s_mem(void); +# ifndef OPENSSL_NO_DGRAM +const BIO_METHOD *BIO_s_dgram_mem(void); +# endif const BIO_METHOD *BIO_s_secmem(void); BIO *BIO_new_mem_buf(const void *buf, int len); # ifndef OPENSSL_NO_SOCK @@ -686,6 +795,7 @@ const BIO_METHOD *BIO_f_nbio_test(void); const BIO_METHOD *BIO_f_prefix(void); const BIO_METHOD *BIO_s_core(void); # ifndef OPENSSL_NO_DGRAM +const BIO_METHOD *BIO_s_dgram_pair(void); const BIO_METHOD *BIO_s_datagram(void); int BIO_dgram_non_fatal_error(int error); BIO *BIO_new_dgram(int fd, int close_flag); @@ -704,6 +814,7 @@ int BIO_dgram_sctp_msg_waiting(BIO *b); # ifndef OPENSSL_NO_SOCK int BIO_sock_should_retry(int i); int BIO_sock_non_fatal_error(int error); +int BIO_err_is_non_fatal(unsigned int errcode); int BIO_socket_wait(int fd, int for_read, time_t max_time); # endif int BIO_wait(BIO *bio, time_t max_time, unsigned int nap_milliseconds); @@ -726,6 +837,8 @@ int BIO_hex_string(BIO *out, int indent, int width, const void *data, # ifndef OPENSSL_NO_SOCK BIO_ADDR *BIO_ADDR_new(void); +int BIO_ADDR_copy(BIO_ADDR *dst, const BIO_ADDR *src); +BIO_ADDR *BIO_ADDR_dup(const BIO_ADDR *ap); int BIO_ADDR_rawmake(BIO_ADDR *ap, int family, const void *where, size_t wherelen, unsigned short port); void BIO_ADDR_free(BIO_ADDR *); @@ -788,6 +901,7 @@ int BIO_sock_info(int sock, # define BIO_SOCK_KEEPALIVE 0x04 # define BIO_SOCK_NONBLOCK 0x08 # define BIO_SOCK_NODELAY 0x10 +# define BIO_SOCK_TFO 0x20 int BIO_socket(int domain, int socktype, int protocol, int options); int BIO_connect(int sock, const BIO_ADDR *addr, int options); @@ -805,6 +919,11 @@ BIO *BIO_new_fd(int fd, int close_flag); int BIO_new_bio_pair(BIO **bio1, size_t writebuf1, BIO **bio2, size_t writebuf2); +# ifndef OPENSSL_NO_DGRAM +int BIO_new_bio_dgram_pair(BIO **bio1, size_t writebuf1, + BIO **bio2, size_t writebuf2); +# endif + /* * If successful, returns 1 and in *bio1, *bio2 two BIO pair endpoints. * Otherwise returns 0 and sets *bio1 and *bio2 to NULL. Size 0 uses default @@ -849,38 +968,54 @@ ossl_bio__attr__((__format__(ossl_bio__printf__, 3, 0))); BIO_METHOD *BIO_meth_new(int type, const char *name); void BIO_meth_free(BIO_METHOD *biom); -int (*BIO_meth_get_write(const BIO_METHOD *biom)) (BIO *, const char *, int); -int (*BIO_meth_get_write_ex(const BIO_METHOD *biom)) (BIO *, const char *, size_t, - size_t *); int BIO_meth_set_write(BIO_METHOD *biom, int (*write) (BIO *, const char *, int)); int BIO_meth_set_write_ex(BIO_METHOD *biom, int (*bwrite) (BIO *, const char *, size_t, size_t *)); -int (*BIO_meth_get_read(const BIO_METHOD *biom)) (BIO *, char *, int); -int (*BIO_meth_get_read_ex(const BIO_METHOD *biom)) (BIO *, char *, size_t, size_t *); +int BIO_meth_set_sendmmsg(BIO_METHOD *biom, + int (*f) (BIO *, BIO_MSG *, size_t, size_t, + uint64_t, size_t *)); int BIO_meth_set_read(BIO_METHOD *biom, int (*read) (BIO *, char *, int)); int BIO_meth_set_read_ex(BIO_METHOD *biom, int (*bread) (BIO *, char *, size_t, size_t *)); -int (*BIO_meth_get_puts(const BIO_METHOD *biom)) (BIO *, const char *); +int BIO_meth_set_recvmmsg(BIO_METHOD *biom, + int (*f) (BIO *, BIO_MSG *, size_t, size_t, + uint64_t, size_t *)); int BIO_meth_set_puts(BIO_METHOD *biom, int (*puts) (BIO *, const char *)); -int (*BIO_meth_get_gets(const BIO_METHOD *biom)) (BIO *, char *, int); int BIO_meth_set_gets(BIO_METHOD *biom, int (*ossl_gets) (BIO *, char *, int)); -long (*BIO_meth_get_ctrl(const BIO_METHOD *biom)) (BIO *, int, long, void *); int BIO_meth_set_ctrl(BIO_METHOD *biom, long (*ctrl) (BIO *, int, long, void *)); -int (*BIO_meth_get_create(const BIO_METHOD *bion)) (BIO *); int BIO_meth_set_create(BIO_METHOD *biom, int (*create) (BIO *)); -int (*BIO_meth_get_destroy(const BIO_METHOD *biom)) (BIO *); int BIO_meth_set_destroy(BIO_METHOD *biom, int (*destroy) (BIO *)); -long (*BIO_meth_get_callback_ctrl(const BIO_METHOD *biom)) - (BIO *, int, BIO_info_cb *); int BIO_meth_set_callback_ctrl(BIO_METHOD *biom, long (*callback_ctrl) (BIO *, int, BIO_info_cb *)); - +# ifndef OPENSSL_NO_DEPRECATED_3_5 +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_write(const BIO_METHOD *biom)) (BIO *, const char *, + int); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_write_ex(const BIO_METHOD *biom)) (BIO *, const char *, + size_t, size_t *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_sendmmsg(const BIO_METHOD *biom))(BIO *, BIO_MSG *, + size_t, size_t, + uint64_t, size_t *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_read(const BIO_METHOD *biom)) (BIO *, char *, int); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_read_ex(const BIO_METHOD *biom)) (BIO *, char *, + size_t, size_t *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_recvmmsg(const BIO_METHOD *biom))(BIO *, BIO_MSG *, + size_t, size_t, + uint64_t, size_t *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_puts(const BIO_METHOD *biom)) (BIO *, const char *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_gets(const BIO_METHOD *biom)) (BIO *, char *, int); +OSSL_DEPRECATEDIN_3_5 long (*BIO_meth_get_ctrl(const BIO_METHOD *biom)) (BIO *, int, + long, void *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_create(const BIO_METHOD *bion)) (BIO *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_destroy(const BIO_METHOD *biom)) (BIO *); +OSSL_DEPRECATEDIN_3_5 long (*BIO_meth_get_callback_ctrl(const BIO_METHOD *biom)) (BIO *, int, + BIO_info_cb *); +# endif # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/VC-WIN64A/no-asm/include/openssl/cmp.h b/deps/openssl/config/archs/VC-WIN64A/no-asm/include/openssl/cmp.h index f0e768e01baacd..ded2dd2905f756 100644 --- a/deps/openssl/config/archs/VC-WIN64A/no-asm/include/openssl/cmp.h +++ b/deps/openssl/config/archs/VC-WIN64A/no-asm/include/openssl/cmp.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by makefile from include/openssl/cmp.h.in * - * Copyright 2007-2023 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2007-2024 The OpenSSL Project Authors. All Rights Reserved. * Copyright Nokia 2007-2019 * Copyright Siemens AG 2015-2019 * @@ -35,7 +35,9 @@ extern "C" { # endif -# define OSSL_CMP_PVNO 2 +# define OSSL_CMP_PVNO_2 2 +# define OSSL_CMP_PVNO_3 3 +# define OSSL_CMP_PVNO OSSL_CMP_PVNO_2 /* v2 is the default */ /*- * PKIFailureInfo ::= BIT STRING { @@ -137,7 +139,6 @@ extern "C" { # if OSSL_CMP_PKIFAILUREINFO_MAX_BIT_PATTERN > INT_MAX # error CMP_PKIFAILUREINFO_MAX bit pattern does not fit in type int # endif - typedef ASN1_BIT_STRING OSSL_CMP_PKIFAILUREINFO; # define OSSL_CMP_CTX_FAILINFO_badAlg (1 << 0) @@ -203,8 +204,8 @@ typedef ASN1_BIT_STRING OSSL_CMP_PKIFAILUREINFO; # define OSSL_CMP_PKISTATUS_revocationWarning 4 # define OSSL_CMP_PKISTATUS_revocationNotification 5 # define OSSL_CMP_PKISTATUS_keyUpdateWarning 6 - typedef ASN1_INTEGER OSSL_CMP_PKISTATUS; + DECLARE_ASN1_ITEM(OSSL_CMP_PKISTATUS) # define OSSL_CMP_CERTORENCCERT_CERTIFICATE 0 @@ -274,6 +275,46 @@ SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CMP_ITAV, OSSL_CMP_ITAV, OSSL_CMP_ITAV) #define sk_OSSL_CMP_ITAV_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_CMP_ITAV) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_CMP_ITAV_sk_type(sk), ossl_check_OSSL_CMP_ITAV_copyfunc_type(copyfunc), ossl_check_OSSL_CMP_ITAV_freefunc_type(freefunc))) #define sk_OSSL_CMP_ITAV_set_cmp_func(sk, cmp) ((sk_OSSL_CMP_ITAV_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CMP_ITAV_sk_type(sk), ossl_check_OSSL_CMP_ITAV_compfunc_type(cmp))) + +typedef struct ossl_cmp_crlstatus_st OSSL_CMP_CRLSTATUS; +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CMP_CRLSTATUS, OSSL_CMP_CRLSTATUS, OSSL_CMP_CRLSTATUS) +#define sk_OSSL_CMP_CRLSTATUS_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_value(sk, idx) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_value(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk), (idx))) +#define sk_OSSL_CMP_CRLSTATUS_new(cmp) ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_new(ossl_check_OSSL_CMP_CRLSTATUS_compfunc_type(cmp))) +#define sk_OSSL_CMP_CRLSTATUS_new_null() ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_new_null()) +#define sk_OSSL_CMP_CRLSTATUS_new_reserve(cmp, n) ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_CMP_CRLSTATUS_compfunc_type(cmp), (n))) +#define sk_OSSL_CMP_CRLSTATUS_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), (n)) +#define sk_OSSL_CMP_CRLSTATUS_free(sk) OPENSSL_sk_free(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_delete(sk, i) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_delete(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), (i))) +#define sk_OSSL_CMP_CRLSTATUS_delete_ptr(sk, ptr) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr))) +#define sk_OSSL_CMP_CRLSTATUS_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr)) +#define sk_OSSL_CMP_CRLSTATUS_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr)) +#define sk_OSSL_CMP_CRLSTATUS_pop(sk) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_pop(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk))) +#define sk_OSSL_CMP_CRLSTATUS_shift(sk) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_shift(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk))) +#define sk_OSSL_CMP_CRLSTATUS_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk),ossl_check_OSSL_CMP_CRLSTATUS_freefunc_type(freefunc)) +#define sk_OSSL_CMP_CRLSTATUS_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr), (idx)) +#define sk_OSSL_CMP_CRLSTATUS_set(sk, idx, ptr) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_set(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), (idx), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr))) +#define sk_OSSL_CMP_CRLSTATUS_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr)) +#define sk_OSSL_CMP_CRLSTATUS_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr)) +#define sk_OSSL_CMP_CRLSTATUS_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr), pnum) +#define sk_OSSL_CMP_CRLSTATUS_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_dup(sk) ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_dup(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk))) +#define sk_OSSL_CMP_CRLSTATUS_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_copyfunc_type(copyfunc), ossl_check_OSSL_CMP_CRLSTATUS_freefunc_type(freefunc))) +#define sk_OSSL_CMP_CRLSTATUS_set_cmp_func(sk, cmp) ((sk_OSSL_CMP_CRLSTATUS_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_compfunc_type(cmp))) + + +typedef OSSL_CRMF_ATTRIBUTETYPEANDVALUE OSSL_CMP_ATAV; +# define OSSL_CMP_ATAV_free OSSL_CRMF_ATTRIBUTETYPEANDVALUE_free +typedef STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) OSSL_CMP_ATAVS; +DECLARE_ASN1_FUNCTIONS(OSSL_CMP_ATAVS) +# define stack_st_OSSL_CMP_ATAV stack_st_OSSL_CRMF_ATTRIBUTETYPEANDVALUE +# define sk_OSSL_CMP_ATAV_num sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_num +# define sk_OSSL_CMP_ATAV_value sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_value +# define sk_OSSL_CMP_ATAV_push sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_push +# define sk_OSSL_CMP_ATAV_pop_free sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_pop_free + typedef struct ossl_cmp_revrepcontent_st OSSL_CMP_REVREPCONTENT; typedef struct ossl_cmp_pkisi_st OSSL_CMP_PKISI; DECLARE_ASN1_FUNCTIONS(OSSL_CMP_PKISI) @@ -375,21 +416,75 @@ void OSSL_CMP_ITAV_set0(OSSL_CMP_ITAV *itav, ASN1_OBJECT *type, ASN1_TYPE *value); ASN1_OBJECT *OSSL_CMP_ITAV_get0_type(const OSSL_CMP_ITAV *itav); ASN1_TYPE *OSSL_CMP_ITAV_get0_value(const OSSL_CMP_ITAV *itav); -int OSSL_CMP_ITAV_push0_stack_item(STACK_OF(OSSL_CMP_ITAV) **itav_sk_p, +int OSSL_CMP_ITAV_push0_stack_item(STACK_OF(OSSL_CMP_ITAV) **sk_p, OSSL_CMP_ITAV *itav); void OSSL_CMP_ITAV_free(OSSL_CMP_ITAV *itav); + +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new0_certProfile(STACK_OF(ASN1_UTF8STRING) + *certProfile); +int OSSL_CMP_ITAV_get0_certProfile(const OSSL_CMP_ITAV *itav, + STACK_OF(ASN1_UTF8STRING) **out); +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new_caCerts(const STACK_OF(X509) *caCerts); +int OSSL_CMP_ITAV_get0_caCerts(const OSSL_CMP_ITAV *itav, STACK_OF(X509) **out); + +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new_rootCaCert(const X509 *rootCaCert); +int OSSL_CMP_ITAV_get0_rootCaCert(const OSSL_CMP_ITAV *itav, X509 **out); +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new_rootCaKeyUpdate(const X509 *newWithNew, + const X509 *newWithOld, + const X509 *oldWithNew); +int OSSL_CMP_ITAV_get0_rootCaKeyUpdate(const OSSL_CMP_ITAV *itav, + X509 **newWithNew, + X509 **newWithOld, + X509 **oldWithNew); + +OSSL_CMP_CRLSTATUS *OSSL_CMP_CRLSTATUS_create(const X509_CRL *crl, + const X509 *cert, int only_DN); +OSSL_CMP_CRLSTATUS *OSSL_CMP_CRLSTATUS_new1(const DIST_POINT_NAME *dpn, + const GENERAL_NAMES *issuer, + const ASN1_TIME *thisUpdate); +int OSSL_CMP_CRLSTATUS_get0(const OSSL_CMP_CRLSTATUS *crlstatus, + DIST_POINT_NAME **dpn, GENERAL_NAMES **issuer, + ASN1_TIME **thisUpdate); +void OSSL_CMP_CRLSTATUS_free(OSSL_CMP_CRLSTATUS *crlstatus); +OSSL_CMP_ITAV +*OSSL_CMP_ITAV_new0_crlStatusList(STACK_OF(OSSL_CMP_CRLSTATUS) *crlStatusList); +int OSSL_CMP_ITAV_get0_crlStatusList(const OSSL_CMP_ITAV *itav, + STACK_OF(OSSL_CMP_CRLSTATUS) **out); +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new_crls(const X509_CRL *crls); +int OSSL_CMP_ITAV_get0_crls(const OSSL_CMP_ITAV *it, STACK_OF(X509_CRL) **out); +OSSL_CMP_ITAV +*OSSL_CMP_ITAV_new0_certReqTemplate(OSSL_CRMF_CERTTEMPLATE *certTemplate, + OSSL_CMP_ATAVS *keySpec); +int OSSL_CMP_ITAV_get1_certReqTemplate(const OSSL_CMP_ITAV *itav, + OSSL_CRMF_CERTTEMPLATE **certTemplate, + OSSL_CMP_ATAVS **keySpec); + +OSSL_CMP_ATAV *OSSL_CMP_ATAV_create(ASN1_OBJECT *type, ASN1_TYPE *value); +void OSSL_CMP_ATAV_set0(OSSL_CMP_ATAV *itav, ASN1_OBJECT *type, + ASN1_TYPE *value); +ASN1_OBJECT *OSSL_CMP_ATAV_get0_type(const OSSL_CMP_ATAV *itav); +ASN1_TYPE *OSSL_CMP_ATAV_get0_value(const OSSL_CMP_ATAV *itav); +OSSL_CMP_ATAV *OSSL_CMP_ATAV_new_algId(const X509_ALGOR *alg); +X509_ALGOR *OSSL_CMP_ATAV_get0_algId(const OSSL_CMP_ATAV *atav); +OSSL_CMP_ATAV *OSSL_CMP_ATAV_new_rsaKeyLen(int len); +int OSSL_CMP_ATAV_get_rsaKeyLen(const OSSL_CMP_ATAV *atav); +int OSSL_CMP_ATAV_push1(OSSL_CMP_ATAVS **sk_p, const OSSL_CMP_ATAV *atav); + void OSSL_CMP_MSG_free(OSSL_CMP_MSG *msg); /* from cmp_ctx.c */ OSSL_CMP_CTX *OSSL_CMP_CTX_new(OSSL_LIB_CTX *libctx, const char *propq); void OSSL_CMP_CTX_free(OSSL_CMP_CTX *ctx); int OSSL_CMP_CTX_reinit(OSSL_CMP_CTX *ctx); +OSSL_LIB_CTX *OSSL_CMP_CTX_get0_libctx(const OSSL_CMP_CTX *ctx); +const char *OSSL_CMP_CTX_get0_propq(const OSSL_CMP_CTX *ctx); /* CMP general options: */ # define OSSL_CMP_OPT_LOG_VERBOSITY 0 /* CMP transfer options: */ -# define OSSL_CMP_OPT_KEEP_ALIVE 10 -# define OSSL_CMP_OPT_MSG_TIMEOUT 11 +# define OSSL_CMP_OPT_KEEP_ALIVE 10 +# define OSSL_CMP_OPT_MSG_TIMEOUT 11 # define OSSL_CMP_OPT_TOTAL_TIMEOUT 12 +# define OSSL_CMP_OPT_USE_TLS 13 /* CMP request options: */ # define OSSL_CMP_OPT_VALIDITY_DAYS 20 # define OSSL_CMP_OPT_SUBJECTALTNAME_NODEFAULT 21 @@ -407,6 +502,7 @@ int OSSL_CMP_CTX_reinit(OSSL_CMP_CTX *ctx); # define OSSL_CMP_OPT_DIGEST_ALGNID 34 # define OSSL_CMP_OPT_IGNORE_KEYUSAGE 35 # define OSSL_CMP_OPT_PERMIT_TA_IN_EXTRACERTS_FOR_IR 36 +# define OSSL_CMP_OPT_NO_CACHE_EXTRACERTS 37 int OSSL_CMP_CTX_set_option(OSSL_CMP_CTX *ctx, int opt, int val); int OSSL_CMP_CTX_get_option(const OSSL_CMP_CTX *ctx, int opt); /* CMP-specific callback for logging and outputting the error queue: */ @@ -420,9 +516,11 @@ int OSSL_CMP_CTX_set1_server(OSSL_CMP_CTX *ctx, const char *address); int OSSL_CMP_CTX_set_serverPort(OSSL_CMP_CTX *ctx, int port); int OSSL_CMP_CTX_set1_proxy(OSSL_CMP_CTX *ctx, const char *name); int OSSL_CMP_CTX_set1_no_proxy(OSSL_CMP_CTX *ctx, const char *names); +# ifndef OPENSSL_NO_HTTP int OSSL_CMP_CTX_set_http_cb(OSSL_CMP_CTX *ctx, OSSL_HTTP_bio_cb_t cb); int OSSL_CMP_CTX_set_http_cb_arg(OSSL_CMP_CTX *ctx, void *arg); void *OSSL_CMP_CTX_get_http_cb_arg(const OSSL_CMP_CTX *ctx); +# endif typedef OSSL_CMP_MSG *(*OSSL_CMP_transfer_cb_t) (OSSL_CMP_CTX *ctx, const OSSL_CMP_MSG *req); int OSSL_CMP_CTX_set_transfer_cb(OSSL_CMP_CTX *ctx, OSSL_CMP_transfer_cb_t cb); @@ -432,7 +530,9 @@ void *OSSL_CMP_CTX_get_transfer_cb_arg(const OSSL_CMP_CTX *ctx); int OSSL_CMP_CTX_set1_srvCert(OSSL_CMP_CTX *ctx, X509 *cert); int OSSL_CMP_CTX_set1_expected_sender(OSSL_CMP_CTX *ctx, const X509_NAME *name); int OSSL_CMP_CTX_set0_trustedStore(OSSL_CMP_CTX *ctx, X509_STORE *store); +# define OSSL_CMP_CTX_set0_trusted OSSL_CMP_CTX_set0_trustedStore X509_STORE *OSSL_CMP_CTX_get0_trustedStore(const OSSL_CMP_CTX *ctx); +# define OSSL_CMP_CTX_get0_trusted OSSL_CMP_CTX_get0_trustedStore int OSSL_CMP_CTX_set1_untrusted(OSSL_CMP_CTX *ctx, STACK_OF(X509) *certs); STACK_OF(X509) *OSSL_CMP_CTX_get0_untrusted(const OSSL_CMP_CTX *ctx); /* client authentication: */ @@ -448,12 +548,15 @@ int OSSL_CMP_CTX_set1_secretValue(OSSL_CMP_CTX *ctx, int OSSL_CMP_CTX_set1_recipient(OSSL_CMP_CTX *ctx, const X509_NAME *name); int OSSL_CMP_CTX_push0_geninfo_ITAV(OSSL_CMP_CTX *ctx, OSSL_CMP_ITAV *itav); int OSSL_CMP_CTX_reset_geninfo_ITAVs(OSSL_CMP_CTX *ctx); +STACK_OF(OSSL_CMP_ITAV) + *OSSL_CMP_CTX_get0_geninfo_ITAVs(const OSSL_CMP_CTX *ctx); int OSSL_CMP_CTX_set1_extraCertsOut(OSSL_CMP_CTX *ctx, STACK_OF(X509) *extraCertsOut); /* certificate template: */ int OSSL_CMP_CTX_set0_newPkey(OSSL_CMP_CTX *ctx, int priv, EVP_PKEY *pkey); EVP_PKEY *OSSL_CMP_CTX_get0_newPkey(const OSSL_CMP_CTX *ctx, int priv); int OSSL_CMP_CTX_set1_issuer(OSSL_CMP_CTX *ctx, const X509_NAME *name); +int OSSL_CMP_CTX_set1_serialNumber(OSSL_CMP_CTX *ctx, const ASN1_INTEGER *sn); int OSSL_CMP_CTX_set1_subjectName(OSSL_CMP_CTX *ctx, const X509_NAME *name); int OSSL_CMP_CTX_push1_subjectAltName(OSSL_CMP_CTX *ctx, const GENERAL_NAME *name); @@ -477,6 +580,7 @@ int OSSL_CMP_CTX_get_status(const OSSL_CMP_CTX *ctx); OSSL_CMP_PKIFREETEXT *OSSL_CMP_CTX_get0_statusString(const OSSL_CMP_CTX *ctx); int OSSL_CMP_CTX_get_failInfoCode(const OSSL_CMP_CTX *ctx); # define OSSL_CMP_PKISI_BUFLEN 1024 +X509 *OSSL_CMP_CTX_get0_validatedSrvCert(const OSSL_CMP_CTX *ctx); X509 *OSSL_CMP_CTX_get0_newCert(const OSSL_CMP_CTX *ctx); STACK_OF(X509) *OSSL_CMP_CTX_get1_newChain(const OSSL_CMP_CTX *ctx); STACK_OF(X509) *OSSL_CMP_CTX_get1_caPubs(const OSSL_CMP_CTX *ctx); @@ -498,10 +602,13 @@ OSSL_CMP_STATUSINFO_new(int status, int fail_info, const char *text); ASN1_OCTET_STRING *OSSL_CMP_HDR_get0_transactionID(const OSSL_CMP_PKIHEADER *hdr); ASN1_OCTET_STRING *OSSL_CMP_HDR_get0_recipNonce(const OSSL_CMP_PKIHEADER *hdr); +STACK_OF(OSSL_CMP_ITAV) + *OSSL_CMP_HDR_get0_geninfo_ITAVs(const OSSL_CMP_PKIHEADER *hdr); /* from cmp_msg.c */ OSSL_CMP_PKIHEADER *OSSL_CMP_MSG_get0_header(const OSSL_CMP_MSG *msg); int OSSL_CMP_MSG_get_bodytype(const OSSL_CMP_MSG *msg); +X509_PUBKEY *OSSL_CMP_MSG_get0_certreq_publickey(const OSSL_CMP_MSG *msg); int OSSL_CMP_MSG_update_transactionID(OSSL_CMP_CTX *ctx, OSSL_CMP_MSG *msg); int OSSL_CMP_MSG_update_recipNonce(OSSL_CMP_CTX *ctx, OSSL_CMP_MSG *msg); OSSL_CRMF_MSG *OSSL_CMP_CTX_setup_CRM(OSSL_CMP_CTX *ctx, int for_KUR, int rid); @@ -517,8 +624,10 @@ int OSSL_CMP_validate_cert_path(const OSSL_CMP_CTX *ctx, X509_STORE *trusted_store, X509 *cert); /* from cmp_http.c */ +# ifndef OPENSSL_NO_HTTP OSSL_CMP_MSG *OSSL_CMP_MSG_http_perform(OSSL_CMP_CTX *ctx, const OSSL_CMP_MSG *req); +# endif /* from cmp_server.c */ typedef struct ossl_cmp_srv_ctx_st OSSL_CMP_SRV_CTX; @@ -561,6 +670,13 @@ int OSSL_CMP_SRV_CTX_init(OSSL_CMP_SRV_CTX *srv_ctx, void *custom_ctx, OSSL_CMP_SRV_error_cb_t process_error, OSSL_CMP_SRV_certConf_cb_t process_certConf, OSSL_CMP_SRV_pollReq_cb_t process_pollReq); +typedef int (*OSSL_CMP_SRV_delayed_delivery_cb_t)(OSSL_CMP_SRV_CTX *srv_ctx, + const OSSL_CMP_MSG *req); +typedef int (*OSSL_CMP_SRV_clean_transaction_cb_t)(OSSL_CMP_SRV_CTX *srv_ctx, + const ASN1_OCTET_STRING *id); +int OSSL_CMP_SRV_CTX_init_trans(OSSL_CMP_SRV_CTX *srv_ctx, + OSSL_CMP_SRV_delayed_delivery_cb_t delay, + OSSL_CMP_SRV_clean_transaction_cb_t clean); OSSL_CMP_CTX *OSSL_CMP_SRV_CTX_get0_cmp_ctx(const OSSL_CMP_SRV_CTX *srv_ctx); void *OSSL_CMP_SRV_CTX_get0_custom_ctx(const OSSL_CMP_SRV_CTX *srv_ctx); int OSSL_CMP_SRV_CTX_set_send_unprotected_errors(OSSL_CMP_SRV_CTX *srv_ctx, @@ -577,6 +693,8 @@ X509 *OSSL_CMP_exec_certreq(OSSL_CMP_CTX *ctx, int req_type, # define OSSL_CMP_CR 2 # define OSSL_CMP_P10CR 4 # define OSSL_CMP_KUR 7 +# define OSSL_CMP_GENM 21 +# define OSSL_CMP_ERROR 23 # define OSSL_CMP_exec_IR_ses(ctx) \ OSSL_CMP_exec_certreq(ctx, OSSL_CMP_IR, NULL) # define OSSL_CMP_exec_CR_ses(ctx) \ @@ -590,6 +708,18 @@ int OSSL_CMP_try_certreq(OSSL_CMP_CTX *ctx, int req_type, int OSSL_CMP_exec_RR_ses(OSSL_CMP_CTX *ctx); STACK_OF(OSSL_CMP_ITAV) *OSSL_CMP_exec_GENM_ses(OSSL_CMP_CTX *ctx); +/* from cmp_genm.c */ +int OSSL_CMP_get1_caCerts(OSSL_CMP_CTX *ctx, STACK_OF(X509) **out); +int OSSL_CMP_get1_rootCaKeyUpdate(OSSL_CMP_CTX *ctx, + const X509 *oldWithOld, X509 **newWithNew, + X509 **newWithOld, X509 **oldWithNew); +int OSSL_CMP_get1_crlUpdate(OSSL_CMP_CTX *ctx, const X509 *crlcert, + const X509_CRL *last_crl, + X509_CRL **crl); +int OSSL_CMP_get1_certReqTemplate(OSSL_CMP_CTX *ctx, + OSSL_CRMF_CERTTEMPLATE **certTemplate, + OSSL_CMP_ATAVS **keySpec); + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/VC-WIN64A/no-asm/include/openssl/cms.h b/deps/openssl/config/archs/VC-WIN64A/no-asm/include/openssl/cms.h index 03ce6ab07aac44..1a51921256fea4 100644 --- a/deps/openssl/config/archs/VC-WIN64A/no-asm/include/openssl/cms.h +++ b/deps/openssl/config/archs/VC-WIN64A/no-asm/include/openssl/cms.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by makefile from include/openssl/cms.h.in * - * Copyright 2008-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2008-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -31,8 +31,10 @@ extern "C" { # endif +typedef struct CMS_EnvelopedData_st CMS_EnvelopedData; typedef struct CMS_ContentInfo_st CMS_ContentInfo; typedef struct CMS_SignerInfo_st CMS_SignerInfo; +typedef struct CMS_SignedData_st CMS_SignedData; typedef struct CMS_CertificateChoices CMS_CertificateChoices; typedef struct CMS_RevocationInfoChoice_st CMS_RevocationInfoChoice; typedef struct CMS_RecipientInfo_st CMS_RecipientInfo; @@ -147,10 +149,14 @@ SKM_DEFINE_STACK_OF_INTERNAL(CMS_RevocationInfoChoice, CMS_RevocationInfoChoice, #define sk_CMS_RevocationInfoChoice_set_cmp_func(sk, cmp) ((sk_CMS_RevocationInfoChoice_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_CMS_RevocationInfoChoice_sk_type(sk), ossl_check_CMS_RevocationInfoChoice_compfunc_type(cmp))) +DECLARE_ASN1_ITEM(CMS_EnvelopedData) +DECLARE_ASN1_ALLOC_FUNCTIONS(CMS_SignedData) DECLARE_ASN1_FUNCTIONS(CMS_ContentInfo) DECLARE_ASN1_FUNCTIONS(CMS_ReceiptRequest) DECLARE_ASN1_PRINT_FUNCTION(CMS_ContentInfo) +DECLARE_ASN1_DUP_FUNCTION(CMS_EnvelopedData) + CMS_ContentInfo *CMS_ContentInfo_new_ex(OSSL_LIB_CTX *libctx, const char *propq); # define CMS_SIGNERINFO_ISSUER_SERIAL 0 @@ -190,6 +196,7 @@ CMS_ContentInfo *CMS_ContentInfo_new_ex(OSSL_LIB_CTX *libctx, const char *propq) # define CMS_ASCIICRLF 0x80000 # define CMS_CADES 0x100000 # define CMS_USE_ORIGINATOR_KEYID 0x200000 +# define CMS_NO_SIGNING_TIME 0x400000 const ASN1_OBJECT *CMS_get0_type(const CMS_ContentInfo *cms); @@ -217,13 +224,16 @@ int SMIME_write_CMS(BIO *bio, CMS_ContentInfo *cms, BIO *data, int flags); int CMS_final(CMS_ContentInfo *cms, BIO *data, BIO *dcont, unsigned int flags); +int CMS_final_digest(CMS_ContentInfo *cms, + const unsigned char *md, unsigned int mdlen, BIO *dcont, + unsigned int flags); CMS_ContentInfo *CMS_sign(X509 *signcert, EVP_PKEY *pkey, STACK_OF(X509) *certs, BIO *data, unsigned int flags); CMS_ContentInfo *CMS_sign_ex(X509 *signcert, EVP_PKEY *pkey, STACK_OF(X509) *certs, BIO *data, - unsigned int flags, OSSL_LIB_CTX *ctx, + unsigned int flags, OSSL_LIB_CTX *libctx, const char *propq); CMS_ContentInfo *CMS_sign_receipt(CMS_SignerInfo *si, @@ -233,27 +243,26 @@ CMS_ContentInfo *CMS_sign_receipt(CMS_SignerInfo *si, int CMS_data(CMS_ContentInfo *cms, BIO *out, unsigned int flags); CMS_ContentInfo *CMS_data_create(BIO *in, unsigned int flags); CMS_ContentInfo *CMS_data_create_ex(BIO *in, unsigned int flags, - OSSL_LIB_CTX *ctx, const char *propq); + OSSL_LIB_CTX *libctx, const char *propq); int CMS_digest_verify(CMS_ContentInfo *cms, BIO *dcont, BIO *out, unsigned int flags); CMS_ContentInfo *CMS_digest_create(BIO *in, const EVP_MD *md, unsigned int flags); CMS_ContentInfo *CMS_digest_create_ex(BIO *in, const EVP_MD *md, - unsigned int flags, OSSL_LIB_CTX *ctx, + unsigned int flags, OSSL_LIB_CTX *libctx, const char *propq); int CMS_EncryptedData_decrypt(CMS_ContentInfo *cms, const unsigned char *key, size_t keylen, BIO *dcont, BIO *out, unsigned int flags); - CMS_ContentInfo *CMS_EncryptedData_encrypt(BIO *in, const EVP_CIPHER *cipher, const unsigned char *key, size_t keylen, unsigned int flags); CMS_ContentInfo *CMS_EncryptedData_encrypt_ex(BIO *in, const EVP_CIPHER *cipher, const unsigned char *key, size_t keylen, unsigned int flags, - OSSL_LIB_CTX *ctx, + OSSL_LIB_CTX *libctx, const char *propq); int CMS_EncryptedData_set1_key(CMS_ContentInfo *cms, const EVP_CIPHER *ciph, @@ -272,7 +281,7 @@ CMS_ContentInfo *CMS_encrypt(STACK_OF(X509) *certs, BIO *in, const EVP_CIPHER *cipher, unsigned int flags); CMS_ContentInfo *CMS_encrypt_ex(STACK_OF(X509) *certs, BIO *in, const EVP_CIPHER *cipher, unsigned int flags, - OSSL_LIB_CTX *ctx, const char *propq); + OSSL_LIB_CTX *libctx, const char *propq); int CMS_decrypt(CMS_ContentInfo *cms, EVP_PKEY *pkey, X509 *cert, BIO *dcont, BIO *out, unsigned int flags); @@ -291,12 +300,16 @@ int CMS_RecipientInfo_type(CMS_RecipientInfo *ri); EVP_PKEY_CTX *CMS_RecipientInfo_get0_pkey_ctx(CMS_RecipientInfo *ri); CMS_ContentInfo *CMS_AuthEnvelopedData_create(const EVP_CIPHER *cipher); CMS_ContentInfo * -CMS_AuthEnvelopedData_create_ex(const EVP_CIPHER *cipher, OSSL_LIB_CTX *ctx, +CMS_AuthEnvelopedData_create_ex(const EVP_CIPHER *cipher, OSSL_LIB_CTX *libctx, const char *propq); CMS_ContentInfo *CMS_EnvelopedData_create(const EVP_CIPHER *cipher); CMS_ContentInfo *CMS_EnvelopedData_create_ex(const EVP_CIPHER *cipher, - OSSL_LIB_CTX *ctx, + OSSL_LIB_CTX *libctx, const char *propq); +BIO *CMS_EnvelopedData_decrypt(CMS_EnvelopedData *env, BIO *detached_data, + EVP_PKEY *pkey, X509 *cert, + ASN1_OCTET_STRING *secret, unsigned int flags, + OSSL_LIB_CTX *libctx, const char *propq); CMS_RecipientInfo *CMS_add1_recipient_cert(CMS_ContentInfo *cms, X509 *recip, unsigned int flags); @@ -385,6 +398,11 @@ ASN1_OCTET_STRING *CMS_SignerInfo_get0_signature(CMS_SignerInfo *si); int CMS_SignerInfo_sign(CMS_SignerInfo *si); int CMS_SignerInfo_verify(CMS_SignerInfo *si); int CMS_SignerInfo_verify_content(CMS_SignerInfo *si, BIO *chain); +BIO *CMS_SignedData_verify(CMS_SignedData *sd, BIO *detached_data, + STACK_OF(X509) *scerts, X509_STORE *store, + STACK_OF(X509) *extra, STACK_OF(X509_CRL) *crls, + unsigned int flags, + OSSL_LIB_CTX *libctx, const char *propq); int CMS_add_smimecap(CMS_SignerInfo *si, STACK_OF(X509_ALGOR) *algs); int CMS_add_simple_smimecap(STACK_OF(X509_ALGOR) **algs, @@ -441,7 +459,7 @@ CMS_ReceiptRequest *CMS_ReceiptRequest_create0_ex( unsigned char *id, int idlen, int allorfirst, STACK_OF(GENERAL_NAMES) *receiptList, STACK_OF(GENERAL_NAMES) *receiptsTo, - OSSL_LIB_CTX *ctx); + OSSL_LIB_CTX *libctx); int CMS_add1_ReceiptRequest(CMS_SignerInfo *si, CMS_ReceiptRequest *rr); void CMS_ReceiptRequest_get0_values(CMS_ReceiptRequest *rr, diff --git a/deps/openssl/config/archs/VC-WIN64A/no-asm/include/openssl/comp.h b/deps/openssl/config/archs/VC-WIN64A/no-asm/include/openssl/comp.h new file mode 100644 index 00000000000000..90e39511fe8d28 --- /dev/null +++ b/deps/openssl/config/archs/VC-WIN64A/no-asm/include/openssl/comp.h @@ -0,0 +1,98 @@ +/* + * Copyright 2015-2024 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + + +#ifndef OPENSSL_COMP_H +# define OPENSSL_COMP_H +# pragma once + +# include +# ifndef OPENSSL_NO_DEPRECATED_3_0 +# define HEADER_COMP_H +# endif + +# include + +# include +# include +# ifdef __cplusplus +extern "C" { +# endif + + + +# ifndef OPENSSL_NO_COMP + +COMP_CTX *COMP_CTX_new(COMP_METHOD *meth); +const COMP_METHOD *COMP_CTX_get_method(const COMP_CTX *ctx); +int COMP_CTX_get_type(const COMP_CTX* comp); +int COMP_get_type(const COMP_METHOD *meth); +const char *COMP_get_name(const COMP_METHOD *meth); +void COMP_CTX_free(COMP_CTX *ctx); + +int COMP_compress_block(COMP_CTX *ctx, unsigned char *out, int olen, + unsigned char *in, int ilen); +int COMP_expand_block(COMP_CTX *ctx, unsigned char *out, int olen, + unsigned char *in, int ilen); + +COMP_METHOD *COMP_zlib(void); +COMP_METHOD *COMP_zlib_oneshot(void); +COMP_METHOD *COMP_brotli(void); +COMP_METHOD *COMP_brotli_oneshot(void); +COMP_METHOD *COMP_zstd(void); +COMP_METHOD *COMP_zstd_oneshot(void); + +# ifndef OPENSSL_NO_DEPRECATED_1_1_0 +# define COMP_zlib_cleanup() while(0) continue +# endif + +# ifdef OPENSSL_BIO_H +const BIO_METHOD *BIO_f_zlib(void); +const BIO_METHOD *BIO_f_brotli(void); +const BIO_METHOD *BIO_f_zstd(void); +# endif + +# endif + +typedef struct ssl_comp_st SSL_COMP; + +SKM_DEFINE_STACK_OF_INTERNAL(SSL_COMP, SSL_COMP, SSL_COMP) +#define sk_SSL_COMP_num(sk) OPENSSL_sk_num(ossl_check_const_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_value(sk, idx) ((SSL_COMP *)OPENSSL_sk_value(ossl_check_const_SSL_COMP_sk_type(sk), (idx))) +#define sk_SSL_COMP_new(cmp) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new(ossl_check_SSL_COMP_compfunc_type(cmp))) +#define sk_SSL_COMP_new_null() ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new_null()) +#define sk_SSL_COMP_new_reserve(cmp, n) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new_reserve(ossl_check_SSL_COMP_compfunc_type(cmp), (n))) +#define sk_SSL_COMP_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_SSL_COMP_sk_type(sk), (n)) +#define sk_SSL_COMP_free(sk) OPENSSL_sk_free(ossl_check_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_zero(sk) OPENSSL_sk_zero(ossl_check_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_delete(sk, i) ((SSL_COMP *)OPENSSL_sk_delete(ossl_check_SSL_COMP_sk_type(sk), (i))) +#define sk_SSL_COMP_delete_ptr(sk, ptr) ((SSL_COMP *)OPENSSL_sk_delete_ptr(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr))) +#define sk_SSL_COMP_push(sk, ptr) OPENSSL_sk_push(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) +#define sk_SSL_COMP_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) +#define sk_SSL_COMP_pop(sk) ((SSL_COMP *)OPENSSL_sk_pop(ossl_check_SSL_COMP_sk_type(sk))) +#define sk_SSL_COMP_shift(sk) ((SSL_COMP *)OPENSSL_sk_shift(ossl_check_SSL_COMP_sk_type(sk))) +#define sk_SSL_COMP_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_SSL_COMP_sk_type(sk),ossl_check_SSL_COMP_freefunc_type(freefunc)) +#define sk_SSL_COMP_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr), (idx)) +#define sk_SSL_COMP_set(sk, idx, ptr) ((SSL_COMP *)OPENSSL_sk_set(ossl_check_SSL_COMP_sk_type(sk), (idx), ossl_check_SSL_COMP_type(ptr))) +#define sk_SSL_COMP_find(sk, ptr) OPENSSL_sk_find(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) +#define sk_SSL_COMP_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) +#define sk_SSL_COMP_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr), pnum) +#define sk_SSL_COMP_sort(sk) OPENSSL_sk_sort(ossl_check_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_dup(sk) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_dup(ossl_check_const_SSL_COMP_sk_type(sk))) +#define sk_SSL_COMP_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_deep_copy(ossl_check_const_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_copyfunc_type(copyfunc), ossl_check_SSL_COMP_freefunc_type(freefunc))) +#define sk_SSL_COMP_set_cmp_func(sk, cmp) ((sk_SSL_COMP_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_compfunc_type(cmp))) + + + +# ifdef __cplusplus +} +# endif +#endif diff --git a/deps/openssl/config/archs/VC-WIN64A/no-asm/include/openssl/conf.h b/deps/openssl/config/archs/VC-WIN64A/no-asm/include/openssl/conf.h index 994e573a957435..ffa9ced71e8b26 100644 --- a/deps/openssl/config/archs/VC-WIN64A/no-asm/include/openssl/conf.h +++ b/deps/openssl/config/archs/VC-WIN64A/no-asm/include/openssl/conf.h @@ -27,6 +27,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -65,7 +68,7 @@ SKM_DEFINE_STACK_OF_INTERNAL(CONF_VALUE, CONF_VALUE, CONF_VALUE) #define sk_CONF_VALUE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(CONF_VALUE) *)OPENSSL_sk_deep_copy(ossl_check_const_CONF_VALUE_sk_type(sk), ossl_check_CONF_VALUE_copyfunc_type(copyfunc), ossl_check_CONF_VALUE_freefunc_type(freefunc))) #define sk_CONF_VALUE_set_cmp_func(sk, cmp) ((sk_CONF_VALUE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_CONF_VALUE_sk_type(sk), ossl_check_CONF_VALUE_compfunc_type(cmp))) DEFINE_LHASH_OF_INTERNAL(CONF_VALUE); -#define lh_CONF_VALUE_new(hfn, cmp) ((LHASH_OF(CONF_VALUE) *)OPENSSL_LH_new(ossl_check_CONF_VALUE_lh_hashfunc_type(hfn), ossl_check_CONF_VALUE_lh_compfunc_type(cmp))) +#define lh_CONF_VALUE_new(hfn, cmp) ((LHASH_OF(CONF_VALUE) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new(ossl_check_CONF_VALUE_lh_hashfunc_type(hfn), ossl_check_CONF_VALUE_lh_compfunc_type(cmp)), lh_CONF_VALUE_hash_thunk, lh_CONF_VALUE_comp_thunk, lh_CONF_VALUE_doall_thunk, lh_CONF_VALUE_doall_arg_thunk)) #define lh_CONF_VALUE_free(lh) OPENSSL_LH_free(ossl_check_CONF_VALUE_lh_type(lh)) #define lh_CONF_VALUE_flush(lh) OPENSSL_LH_flush(ossl_check_CONF_VALUE_lh_type(lh)) #define lh_CONF_VALUE_insert(lh, ptr) ((CONF_VALUE *)OPENSSL_LH_insert(ossl_check_CONF_VALUE_lh_type(lh), ossl_check_CONF_VALUE_lh_plain_type(ptr))) diff --git a/deps/openssl/config/archs/VC-WIN64A/no-asm/include/openssl/configuration.h b/deps/openssl/config/archs/VC-WIN64A/no-asm/include/openssl/configuration.h index 46b2c1e7028f3d..cf1dc32122280e 100644 --- a/deps/openssl/config/archs/VC-WIN64A/no-asm/include/openssl/configuration.h +++ b/deps/openssl/config/archs/VC-WIN64A/no-asm/include/openssl/configuration.h @@ -29,7 +29,7 @@ extern "C" { # ifndef OPENSSL_SYS_WIN64A # define OPENSSL_SYS_WIN64A 1 # endif -# define OPENSSL_CONFIGURED_API 30000 +# define OPENSSL_CONFIGURED_API 30500 # ifndef OPENSSL_RAND_SEED_OS # define OPENSSL_RAND_SEED_OS # endif @@ -45,6 +45,12 @@ extern "C" { # ifndef OPENSSL_NO_ASM # define OPENSSL_NO_ASM # endif +# ifndef OPENSSL_NO_BROTLI +# define OPENSSL_NO_BROTLI +# endif +# ifndef OPENSSL_NO_BROTLI_DYNAMIC +# define OPENSSL_NO_BROTLI_DYNAMIC +# endif # ifndef OPENSSL_NO_COMP # define OPENSSL_NO_COMP # endif @@ -54,6 +60,9 @@ extern "C" { # ifndef OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE # define OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE # endif +# ifndef OPENSSL_NO_DEMOS +# define OPENSSL_NO_DEMOS +# endif # ifndef OPENSSL_NO_DEVCRYPTOENG # define OPENSSL_NO_DEVCRYPTOENG # endif @@ -66,12 +75,24 @@ extern "C" { # ifndef OPENSSL_NO_EXTERNAL_TESTS # define OPENSSL_NO_EXTERNAL_TESTS # endif +# ifndef OPENSSL_NO_FIPS_JITTER +# define OPENSSL_NO_FIPS_JITTER +# endif # ifndef OPENSSL_NO_FUZZ_AFL # define OPENSSL_NO_FUZZ_AFL # endif # ifndef OPENSSL_NO_FUZZ_LIBFUZZER # define OPENSSL_NO_FUZZ_LIBFUZZER # endif +# ifndef OPENSSL_NO_H3DEMO +# define OPENSSL_NO_H3DEMO +# endif +# ifndef OPENSSL_NO_HQINTEROP +# define OPENSSL_NO_HQINTEROP +# endif +# ifndef OPENSSL_NO_JITTER +# define OPENSSL_NO_JITTER +# endif # ifndef OPENSSL_NO_KTLS # define OPENSSL_NO_KTLS # endif @@ -84,6 +105,9 @@ extern "C" { # ifndef OPENSSL_NO_MSAN # define OPENSSL_NO_MSAN # endif +# ifndef OPENSSL_NO_PIE +# define OPENSSL_NO_PIE +# endif # ifndef OPENSSL_NO_RC5 # define OPENSSL_NO_RC5 # endif @@ -96,6 +120,12 @@ extern "C" { # ifndef OPENSSL_NO_SSL3_METHOD # define OPENSSL_NO_SSL3_METHOD # endif +# ifndef OPENSSL_NO_SSLKEYLOG +# define OPENSSL_NO_SSLKEYLOG +# endif +# ifndef OPENSSL_NO_TFO +# define OPENSSL_NO_TFO +# endif # ifndef OPENSSL_NO_TRACE # define OPENSSL_NO_TRACE # endif @@ -111,6 +141,18 @@ extern "C" { # ifndef OPENSSL_NO_WEAK_SSL_CIPHERS # define OPENSSL_NO_WEAK_SSL_CIPHERS # endif +# ifndef OPENSSL_NO_ZLIB +# define OPENSSL_NO_ZLIB +# endif +# ifndef OPENSSL_NO_ZLIB_DYNAMIC +# define OPENSSL_NO_ZLIB_DYNAMIC +# endif +# ifndef OPENSSL_NO_ZSTD +# define OPENSSL_NO_ZSTD +# endif +# ifndef OPENSSL_NO_ZSTD_DYNAMIC +# define OPENSSL_NO_ZSTD_DYNAMIC +# endif # ifndef OPENSSL_NO_DYNAMIC_ENGINE # define OPENSSL_NO_DYNAMIC_ENGINE # endif @@ -132,6 +174,12 @@ extern "C" { # define RC4_INT unsigned int +# if defined(OPENSSL_NO_COMP) || (defined(OPENSSL_NO_BROTLI) && defined(OPENSSL_NO_ZSTD) && defined(OPENSSL_NO_ZLIB)) +# define OPENSSL_NO_COMP_ALG +# else +# undef OPENSSL_NO_COMP_ALG +# endif + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/VC-WIN64A/no-asm/include/openssl/core_names.h b/deps/openssl/config/archs/VC-WIN64A/no-asm/include/openssl/core_names.h new file mode 100644 index 00000000000000..aaca6051c81b53 --- /dev/null +++ b/deps/openssl/config/archs/VC-WIN64A/no-asm/include/openssl/core_names.h @@ -0,0 +1,575 @@ +/* + * WARNING: do not edit! + * Generated by makefile from include/openssl/core_names.h.in + * + * Copyright 2019-2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + +#ifndef OPENSSL_CORE_NAMES_H +# define OPENSSL_CORE_NAMES_H +# pragma once + +# ifdef __cplusplus +extern "C" { +# endif + +/* OSSL_CIPHER_PARAM_CTS_MODE Values */ +# define OSSL_CIPHER_CTS_MODE_CS1 "CS1" +# define OSSL_CIPHER_CTS_MODE_CS2 "CS2" +# define OSSL_CIPHER_CTS_MODE_CS3 "CS3" + +/* Known CIPHER names (not a complete list) */ +# define OSSL_CIPHER_NAME_AES_128_GCM_SIV "AES-128-GCM-SIV" +# define OSSL_CIPHER_NAME_AES_192_GCM_SIV "AES-192-GCM-SIV" +# define OSSL_CIPHER_NAME_AES_256_GCM_SIV "AES-256-GCM-SIV" + +/* Known DIGEST names (not a complete list) */ +# define OSSL_DIGEST_NAME_MD5 "MD5" +# define OSSL_DIGEST_NAME_MD5_SHA1 "MD5-SHA1" +# define OSSL_DIGEST_NAME_SHA1 "SHA1" +# define OSSL_DIGEST_NAME_SHA2_224 "SHA2-224" +# define OSSL_DIGEST_NAME_SHA2_256 "SHA2-256" +# define OSSL_DIGEST_NAME_SHA2_256_192 "SHA2-256/192" +# define OSSL_DIGEST_NAME_SHA2_384 "SHA2-384" +# define OSSL_DIGEST_NAME_SHA2_512 "SHA2-512" +# define OSSL_DIGEST_NAME_SHA2_512_224 "SHA2-512/224" +# define OSSL_DIGEST_NAME_SHA2_512_256 "SHA2-512/256" +# define OSSL_DIGEST_NAME_MD2 "MD2" +# define OSSL_DIGEST_NAME_MD4 "MD4" +# define OSSL_DIGEST_NAME_MDC2 "MDC2" +# define OSSL_DIGEST_NAME_RIPEMD160 "RIPEMD160" +# define OSSL_DIGEST_NAME_SHA3_224 "SHA3-224" +# define OSSL_DIGEST_NAME_SHA3_256 "SHA3-256" +# define OSSL_DIGEST_NAME_SHA3_384 "SHA3-384" +# define OSSL_DIGEST_NAME_SHA3_512 "SHA3-512" +# define OSSL_DIGEST_NAME_KECCAK_KMAC128 "KECCAK-KMAC-128" +# define OSSL_DIGEST_NAME_KECCAK_KMAC256 "KECCAK-KMAC-256" +# define OSSL_DIGEST_NAME_SM3 "SM3" + +/* Known MAC names */ +# define OSSL_MAC_NAME_BLAKE2BMAC "BLAKE2BMAC" +# define OSSL_MAC_NAME_BLAKE2SMAC "BLAKE2SMAC" +# define OSSL_MAC_NAME_CMAC "CMAC" +# define OSSL_MAC_NAME_GMAC "GMAC" +# define OSSL_MAC_NAME_HMAC "HMAC" +# define OSSL_MAC_NAME_KMAC128 "KMAC128" +# define OSSL_MAC_NAME_KMAC256 "KMAC256" +# define OSSL_MAC_NAME_POLY1305 "POLY1305" +# define OSSL_MAC_NAME_SIPHASH "SIPHASH" + +/* Known KDF names */ +# define OSSL_KDF_NAME_HKDF "HKDF" +# define OSSL_KDF_NAME_TLS1_3_KDF "TLS13-KDF" +# define OSSL_KDF_NAME_PBKDF1 "PBKDF1" +# define OSSL_KDF_NAME_PBKDF2 "PBKDF2" +# define OSSL_KDF_NAME_SCRYPT "SCRYPT" +# define OSSL_KDF_NAME_SSHKDF "SSHKDF" +# define OSSL_KDF_NAME_SSKDF "SSKDF" +# define OSSL_KDF_NAME_TLS1_PRF "TLS1-PRF" +# define OSSL_KDF_NAME_X942KDF_ASN1 "X942KDF-ASN1" +# define OSSL_KDF_NAME_X942KDF_CONCAT "X942KDF-CONCAT" +# define OSSL_KDF_NAME_X963KDF "X963KDF" +# define OSSL_KDF_NAME_KBKDF "KBKDF" +# define OSSL_KDF_NAME_KRB5KDF "KRB5KDF" +# define OSSL_KDF_NAME_HMACDRBGKDF "HMAC-DRBG-KDF" + +/* RSA padding modes */ +# define OSSL_PKEY_RSA_PAD_MODE_NONE "none" +# define OSSL_PKEY_RSA_PAD_MODE_PKCSV15 "pkcs1" +# define OSSL_PKEY_RSA_PAD_MODE_OAEP "oaep" +# define OSSL_PKEY_RSA_PAD_MODE_X931 "x931" +# define OSSL_PKEY_RSA_PAD_MODE_PSS "pss" + +/* RSA pss padding salt length */ +# define OSSL_PKEY_RSA_PSS_SALT_LEN_DIGEST "digest" +# define OSSL_PKEY_RSA_PSS_SALT_LEN_MAX "max" +# define OSSL_PKEY_RSA_PSS_SALT_LEN_AUTO "auto" +# define OSSL_PKEY_RSA_PSS_SALT_LEN_AUTO_DIGEST_MAX "auto-digestmax" + +/* OSSL_PKEY_PARAM_EC_ENCODING values */ +# define OSSL_PKEY_EC_ENCODING_EXPLICIT "explicit" +# define OSSL_PKEY_EC_ENCODING_GROUP "named_curve" + +# define OSSL_PKEY_EC_POINT_CONVERSION_FORMAT_UNCOMPRESSED "uncompressed" +# define OSSL_PKEY_EC_POINT_CONVERSION_FORMAT_COMPRESSED "compressed" +# define OSSL_PKEY_EC_POINT_CONVERSION_FORMAT_HYBRID "hybrid" + +# define OSSL_PKEY_EC_GROUP_CHECK_DEFAULT "default" +# define OSSL_PKEY_EC_GROUP_CHECK_NAMED "named" +# define OSSL_PKEY_EC_GROUP_CHECK_NAMED_NIST "named-nist" + +/* PROV_SKEY well known key types */ +# define OSSL_SKEY_TYPE_GENERIC "GENERIC-SECRET" +# define OSSL_SKEY_TYPE_AES "AES" + +/* OSSL_KEM_PARAM_OPERATION values */ +#define OSSL_KEM_PARAM_OPERATION_RSASVE "RSASVE" +#define OSSL_KEM_PARAM_OPERATION_DHKEM "DHKEM" + +/* Provider configuration variables */ +#define OSSL_PKEY_RETAIN_SEED "pkey_retain_seed" + +/* Parameter name definitions - generated by util/perl/OpenSSL/paramnames.pm */ +# define OSSL_ALG_PARAM_ALGORITHM_ID "algorithm-id" +# define OSSL_ALG_PARAM_ALGORITHM_ID_PARAMS "algorithm-id-params" +# define OSSL_ALG_PARAM_CIPHER "cipher" +# define OSSL_ALG_PARAM_DIGEST "digest" +# define OSSL_ALG_PARAM_ENGINE "engine" +# define OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR "fips-indicator" +# define OSSL_ALG_PARAM_MAC "mac" +# define OSSL_ALG_PARAM_PROPERTIES "properties" +# define OSSL_ASYM_CIPHER_PARAM_DIGEST OSSL_PKEY_PARAM_DIGEST +# define OSSL_ASYM_CIPHER_PARAM_ENGINE OSSL_PKEY_PARAM_ENGINE +# define OSSL_ASYM_CIPHER_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_ASYM_CIPHER_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_ASYM_CIPHER_PARAM_FIPS_RSA_PKCS15_PAD_DISABLED OSSL_PROV_PARAM_RSA_PKCS15_PAD_DISABLED +# define OSSL_ASYM_CIPHER_PARAM_IMPLICIT_REJECTION "implicit-rejection" +# define OSSL_ASYM_CIPHER_PARAM_MGF1_DIGEST OSSL_PKEY_PARAM_MGF1_DIGEST +# define OSSL_ASYM_CIPHER_PARAM_MGF1_DIGEST_PROPS OSSL_PKEY_PARAM_MGF1_PROPERTIES +# define OSSL_ASYM_CIPHER_PARAM_OAEP_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_ASYM_CIPHER_PARAM_OAEP_DIGEST_PROPS "digest-props" +# define OSSL_ASYM_CIPHER_PARAM_OAEP_LABEL "oaep-label" +# define OSSL_ASYM_CIPHER_PARAM_PAD_MODE OSSL_PKEY_PARAM_PAD_MODE +# define OSSL_ASYM_CIPHER_PARAM_PROPERTIES OSSL_PKEY_PARAM_PROPERTIES +# define OSSL_ASYM_CIPHER_PARAM_TLS_CLIENT_VERSION "tls-client-version" +# define OSSL_ASYM_CIPHER_PARAM_TLS_NEGOTIATED_VERSION "tls-negotiated-version" +# define OSSL_CAPABILITY_TLS_GROUP_ALG "tls-group-alg" +# define OSSL_CAPABILITY_TLS_GROUP_ID "tls-group-id" +# define OSSL_CAPABILITY_TLS_GROUP_IS_KEM "tls-group-is-kem" +# define OSSL_CAPABILITY_TLS_GROUP_MAX_DTLS "tls-max-dtls" +# define OSSL_CAPABILITY_TLS_GROUP_MAX_TLS "tls-max-tls" +# define OSSL_CAPABILITY_TLS_GROUP_MIN_DTLS "tls-min-dtls" +# define OSSL_CAPABILITY_TLS_GROUP_MIN_TLS "tls-min-tls" +# define OSSL_CAPABILITY_TLS_GROUP_NAME "tls-group-name" +# define OSSL_CAPABILITY_TLS_GROUP_NAME_INTERNAL "tls-group-name-internal" +# define OSSL_CAPABILITY_TLS_GROUP_SECURITY_BITS "tls-group-sec-bits" +# define OSSL_CAPABILITY_TLS_SIGALG_CODE_POINT "tls-sigalg-code-point" +# define OSSL_CAPABILITY_TLS_SIGALG_HASH_NAME "tls-sigalg-hash-name" +# define OSSL_CAPABILITY_TLS_SIGALG_HASH_OID "tls-sigalg-hash-oid" +# define OSSL_CAPABILITY_TLS_SIGALG_IANA_NAME "tls-sigalg-iana-name" +# define OSSL_CAPABILITY_TLS_SIGALG_KEYTYPE "tls-sigalg-keytype" +# define OSSL_CAPABILITY_TLS_SIGALG_KEYTYPE_OID "tls-sigalg-keytype-oid" +# define OSSL_CAPABILITY_TLS_SIGALG_MAX_DTLS "tls-max-dtls" +# define OSSL_CAPABILITY_TLS_SIGALG_MAX_TLS "tls-max-tls" +# define OSSL_CAPABILITY_TLS_SIGALG_MIN_DTLS "tls-min-dtls" +# define OSSL_CAPABILITY_TLS_SIGALG_MIN_TLS "tls-min-tls" +# define OSSL_CAPABILITY_TLS_SIGALG_NAME "tls-sigalg-name" +# define OSSL_CAPABILITY_TLS_SIGALG_OID "tls-sigalg-oid" +# define OSSL_CAPABILITY_TLS_SIGALG_SECURITY_BITS "tls-sigalg-sec-bits" +# define OSSL_CAPABILITY_TLS_SIGALG_SIG_NAME "tls-sigalg-sig-name" +# define OSSL_CAPABILITY_TLS_SIGALG_SIG_OID "tls-sigalg-sig-oid" +# define OSSL_CIPHER_PARAM_AEAD "aead" +# define OSSL_CIPHER_PARAM_AEAD_IVLEN OSSL_CIPHER_PARAM_IVLEN +# define OSSL_CIPHER_PARAM_AEAD_IV_GENERATED "iv-generated" +# define OSSL_CIPHER_PARAM_AEAD_MAC_KEY "mackey" +# define OSSL_CIPHER_PARAM_AEAD_TAG "tag" +# define OSSL_CIPHER_PARAM_AEAD_TAGLEN "taglen" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_AAD "tlsaad" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_AAD_PAD "tlsaadpad" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_GET_IV_GEN "tlsivgen" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_IV_FIXED "tlsivfixed" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_SET_IV_INV "tlsivinv" +# define OSSL_CIPHER_PARAM_ALGORITHM_ID OSSL_ALG_PARAM_ALGORITHM_ID +# define OSSL_CIPHER_PARAM_ALGORITHM_ID_PARAMS OSSL_ALG_PARAM_ALGORITHM_ID_PARAMS +# define OSSL_CIPHER_PARAM_ALGORITHM_ID_PARAMS_OLD "alg_id_param" +# define OSSL_CIPHER_PARAM_BLOCK_SIZE "blocksize" +# define OSSL_CIPHER_PARAM_CTS "cts" +# define OSSL_CIPHER_PARAM_CTS_MODE "cts_mode" +# define OSSL_CIPHER_PARAM_CUSTOM_IV "custom-iv" +# define OSSL_CIPHER_PARAM_DECRYPT_ONLY "decrypt-only" +# define OSSL_CIPHER_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_CIPHER_PARAM_FIPS_ENCRYPT_CHECK "encrypt-check" +# define OSSL_CIPHER_PARAM_HAS_RAND_KEY "has-randkey" +# define OSSL_CIPHER_PARAM_IV "iv" +# define OSSL_CIPHER_PARAM_IVLEN "ivlen" +# define OSSL_CIPHER_PARAM_KEYLEN "keylen" +# define OSSL_CIPHER_PARAM_MODE "mode" +# define OSSL_CIPHER_PARAM_NUM "num" +# define OSSL_CIPHER_PARAM_PADDING "padding" +# define OSSL_CIPHER_PARAM_PIPELINE_AEAD_TAG "pipeline-tag" +# define OSSL_CIPHER_PARAM_RANDOM_KEY "randkey" +# define OSSL_CIPHER_PARAM_RC2_KEYBITS "keybits" +# define OSSL_CIPHER_PARAM_ROUNDS "rounds" +# define OSSL_CIPHER_PARAM_SPEED "speed" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK "tls-multi" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD "tls1multi_aad" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD_PACKLEN "tls1multi_aadpacklen" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC "tls1multi_enc" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_IN "tls1multi_encin" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_LEN "tls1multi_enclen" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_INTERLEAVE "tls1multi_interleave" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_BUFSIZE "tls1multi_maxbufsz" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_SEND_FRAGMENT "tls1multi_maxsndfrag" +# define OSSL_CIPHER_PARAM_TLS_MAC "tls-mac" +# define OSSL_CIPHER_PARAM_TLS_MAC_SIZE "tls-mac-size" +# define OSSL_CIPHER_PARAM_TLS_VERSION "tls-version" +# define OSSL_CIPHER_PARAM_UPDATED_IV "updated-iv" +# define OSSL_CIPHER_PARAM_USE_BITS "use-bits" +# define OSSL_CIPHER_PARAM_XTS_STANDARD "xts_standard" +# define OSSL_DECODER_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_DIGEST_PARAM_ALGID_ABSENT "algid-absent" +# define OSSL_DIGEST_PARAM_BLOCK_SIZE "blocksize" +# define OSSL_DIGEST_PARAM_MICALG "micalg" +# define OSSL_DIGEST_PARAM_PAD_TYPE "pad-type" +# define OSSL_DIGEST_PARAM_SIZE "size" +# define OSSL_DIGEST_PARAM_SSL3_MS "ssl3-ms" +# define OSSL_DIGEST_PARAM_XOF "xof" +# define OSSL_DIGEST_PARAM_XOFLEN "xoflen" +# define OSSL_DRBG_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_DRBG_PARAM_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_DRBG_PARAM_ENTROPY_REQUIRED "entropy_required" +# define OSSL_DRBG_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_DRBG_PARAM_FIPS_DIGEST_CHECK OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK +# define OSSL_DRBG_PARAM_MAC OSSL_ALG_PARAM_MAC +# define OSSL_DRBG_PARAM_MAX_ADINLEN "max_adinlen" +# define OSSL_DRBG_PARAM_MAX_ENTROPYLEN "max_entropylen" +# define OSSL_DRBG_PARAM_MAX_LENGTH "maxium_length" +# define OSSL_DRBG_PARAM_MAX_NONCELEN "max_noncelen" +# define OSSL_DRBG_PARAM_MAX_PERSLEN "max_perslen" +# define OSSL_DRBG_PARAM_MIN_ENTROPYLEN "min_entropylen" +# define OSSL_DRBG_PARAM_MIN_LENGTH "minium_length" +# define OSSL_DRBG_PARAM_MIN_NONCELEN "min_noncelen" +# define OSSL_DRBG_PARAM_PREDICTION_RESISTANCE "prediction_resistance" +# define OSSL_DRBG_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_DRBG_PARAM_RANDOM_DATA "random_data" +# define OSSL_DRBG_PARAM_RESEED_COUNTER "reseed_counter" +# define OSSL_DRBG_PARAM_RESEED_REQUESTS "reseed_requests" +# define OSSL_DRBG_PARAM_RESEED_TIME "reseed_time" +# define OSSL_DRBG_PARAM_RESEED_TIME_INTERVAL "reseed_time_interval" +# define OSSL_DRBG_PARAM_SIZE "size" +# define OSSL_DRBG_PARAM_USE_DF "use_derivation_function" +# define OSSL_ENCODER_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_ENCODER_PARAM_ENCRYPT_LEVEL "encrypt-level" +# define OSSL_ENCODER_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_ENCODER_PARAM_SAVE_PARAMETERS "save-parameters" +# define OSSL_EXCHANGE_PARAM_EC_ECDH_COFACTOR_MODE "ecdh-cofactor-mode" +# define OSSL_EXCHANGE_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_EXCHANGE_PARAM_FIPS_DIGEST_CHECK OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK +# define OSSL_EXCHANGE_PARAM_FIPS_ECDH_COFACTOR_CHECK OSSL_PROV_PARAM_ECDH_COFACTOR_CHECK +# define OSSL_EXCHANGE_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_EXCHANGE_PARAM_KDF_DIGEST "kdf-digest" +# define OSSL_EXCHANGE_PARAM_KDF_DIGEST_PROPS "kdf-digest-props" +# define OSSL_EXCHANGE_PARAM_KDF_OUTLEN "kdf-outlen" +# define OSSL_EXCHANGE_PARAM_KDF_TYPE "kdf-type" +# define OSSL_EXCHANGE_PARAM_KDF_UKM "kdf-ukm" +# define OSSL_EXCHANGE_PARAM_PAD "pad" +# define OSSL_GEN_PARAM_ITERATION "iteration" +# define OSSL_GEN_PARAM_POTENTIAL "potential" +# define OSSL_KDF_PARAM_ARGON2_AD "ad" +# define OSSL_KDF_PARAM_ARGON2_LANES "lanes" +# define OSSL_KDF_PARAM_ARGON2_MEMCOST "memcost" +# define OSSL_KDF_PARAM_ARGON2_VERSION "version" +# define OSSL_KDF_PARAM_CEK_ALG "cekalg" +# define OSSL_KDF_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_KDF_PARAM_CONSTANT "constant" +# define OSSL_KDF_PARAM_DATA "data" +# define OSSL_KDF_PARAM_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_KDF_PARAM_EARLY_CLEAN "early_clean" +# define OSSL_KDF_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_KDF_PARAM_FIPS_DIGEST_CHECK OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK +# define OSSL_KDF_PARAM_FIPS_EMS_CHECK "ems_check" +# define OSSL_KDF_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_KDF_PARAM_HMACDRBG_ENTROPY "entropy" +# define OSSL_KDF_PARAM_HMACDRBG_NONCE "nonce" +# define OSSL_KDF_PARAM_INFO "info" +# define OSSL_KDF_PARAM_ITER "iter" +# define OSSL_KDF_PARAM_KBKDF_R "r" +# define OSSL_KDF_PARAM_KBKDF_USE_L "use-l" +# define OSSL_KDF_PARAM_KBKDF_USE_SEPARATOR "use-separator" +# define OSSL_KDF_PARAM_KEY "key" +# define OSSL_KDF_PARAM_LABEL "label" +# define OSSL_KDF_PARAM_MAC OSSL_ALG_PARAM_MAC +# define OSSL_KDF_PARAM_MAC_SIZE "maclen" +# define OSSL_KDF_PARAM_MODE "mode" +# define OSSL_KDF_PARAM_PASSWORD "pass" +# define OSSL_KDF_PARAM_PKCS12_ID "id" +# define OSSL_KDF_PARAM_PKCS5 "pkcs5" +# define OSSL_KDF_PARAM_PREFIX "prefix" +# define OSSL_KDF_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_KDF_PARAM_SALT "salt" +# define OSSL_KDF_PARAM_SCRYPT_MAXMEM "maxmem_bytes" +# define OSSL_KDF_PARAM_SCRYPT_N "n" +# define OSSL_KDF_PARAM_SCRYPT_P "p" +# define OSSL_KDF_PARAM_SCRYPT_R "r" +# define OSSL_KDF_PARAM_SECRET "secret" +# define OSSL_KDF_PARAM_SEED "seed" +# define OSSL_KDF_PARAM_SIZE "size" +# define OSSL_KDF_PARAM_SSHKDF_SESSION_ID "session_id" +# define OSSL_KDF_PARAM_SSHKDF_TYPE "type" +# define OSSL_KDF_PARAM_SSHKDF_XCGHASH "xcghash" +# define OSSL_KDF_PARAM_THREADS "threads" +# define OSSL_KDF_PARAM_UKM "ukm" +# define OSSL_KDF_PARAM_X942_ACVPINFO "acvp-info" +# define OSSL_KDF_PARAM_X942_PARTYUINFO "partyu-info" +# define OSSL_KDF_PARAM_X942_PARTYVINFO "partyv-info" +# define OSSL_KDF_PARAM_X942_SUPP_PRIVINFO "supp-privinfo" +# define OSSL_KDF_PARAM_X942_SUPP_PUBINFO "supp-pubinfo" +# define OSSL_KDF_PARAM_X942_USE_KEYBITS "use-keybits" +# define OSSL_KEM_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_KEM_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_KEM_PARAM_IKME "ikme" +# define OSSL_KEM_PARAM_OPERATION "operation" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_BLOCK_PADDING "block_padding" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_HS_PADDING "hs_padding" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_MAX_EARLY_DATA "max_early_data" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_MAX_FRAG_LEN "max_frag_len" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_MODE "mode" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_OPTIONS "options" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_READ_AHEAD "read_ahead" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_STREAM_MAC "stream_mac" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_TLSTREE "tlstree" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_USE_ETM "use_etm" +# define OSSL_LIBSSL_RECORD_LAYER_READ_BUFFER_LEN "read_buffer_len" +# define OSSL_MAC_PARAM_BLOCK_SIZE "block-size" +# define OSSL_MAC_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_MAC_PARAM_CUSTOM "custom" +# define OSSL_MAC_PARAM_C_ROUNDS "c-rounds" +# define OSSL_MAC_PARAM_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_MAC_PARAM_DIGEST_NOINIT "digest-noinit" +# define OSSL_MAC_PARAM_DIGEST_ONESHOT "digest-oneshot" +# define OSSL_MAC_PARAM_D_ROUNDS "d-rounds" +# define OSSL_MAC_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_MAC_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_MAC_PARAM_FIPS_NO_SHORT_MAC OSSL_PROV_PARAM_NO_SHORT_MAC +# define OSSL_MAC_PARAM_IV "iv" +# define OSSL_MAC_PARAM_KEY "key" +# define OSSL_MAC_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_MAC_PARAM_SALT "salt" +# define OSSL_MAC_PARAM_SIZE "size" +# define OSSL_MAC_PARAM_TLS_DATA_SIZE "tls-data-size" +# define OSSL_MAC_PARAM_XOF "xof" +# define OSSL_OBJECT_PARAM_DATA "data" +# define OSSL_OBJECT_PARAM_DATA_STRUCTURE "data-structure" +# define OSSL_OBJECT_PARAM_DATA_TYPE "data-type" +# define OSSL_OBJECT_PARAM_DESC "desc" +# define OSSL_OBJECT_PARAM_INPUT_TYPE "input-type" +# define OSSL_OBJECT_PARAM_REFERENCE "reference" +# define OSSL_OBJECT_PARAM_TYPE "type" +# define OSSL_PASSPHRASE_PARAM_INFO "info" +# define OSSL_PKEY_PARAM_ALGORITHM_ID OSSL_ALG_PARAM_ALGORITHM_ID +# define OSSL_PKEY_PARAM_ALGORITHM_ID_PARAMS OSSL_ALG_PARAM_ALGORITHM_ID_PARAMS +# define OSSL_PKEY_PARAM_BITS "bits" +# define OSSL_PKEY_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_PKEY_PARAM_DEFAULT_DIGEST "default-digest" +# define OSSL_PKEY_PARAM_DHKEM_IKM "dhkem-ikm" +# define OSSL_PKEY_PARAM_DH_GENERATOR "safeprime-generator" +# define OSSL_PKEY_PARAM_DH_PRIV_LEN "priv_len" +# define OSSL_PKEY_PARAM_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_PKEY_PARAM_DIGEST_SIZE "digest-size" +# define OSSL_PKEY_PARAM_DIST_ID "distid" +# define OSSL_PKEY_PARAM_EC_A "a" +# define OSSL_PKEY_PARAM_EC_B "b" +# define OSSL_PKEY_PARAM_EC_CHAR2_M "m" +# define OSSL_PKEY_PARAM_EC_CHAR2_PP_K1 "k1" +# define OSSL_PKEY_PARAM_EC_CHAR2_PP_K2 "k2" +# define OSSL_PKEY_PARAM_EC_CHAR2_PP_K3 "k3" +# define OSSL_PKEY_PARAM_EC_CHAR2_TP_BASIS "tp" +# define OSSL_PKEY_PARAM_EC_CHAR2_TYPE "basis-type" +# define OSSL_PKEY_PARAM_EC_COFACTOR "cofactor" +# define OSSL_PKEY_PARAM_EC_DECODED_FROM_EXPLICIT_PARAMS "decoded-from-explicit" +# define OSSL_PKEY_PARAM_EC_ENCODING "encoding" +# define OSSL_PKEY_PARAM_EC_FIELD_TYPE "field-type" +# define OSSL_PKEY_PARAM_EC_GENERATOR "generator" +# define OSSL_PKEY_PARAM_EC_GROUP_CHECK_TYPE "group-check" +# define OSSL_PKEY_PARAM_EC_INCLUDE_PUBLIC "include-public" +# define OSSL_PKEY_PARAM_EC_ORDER "order" +# define OSSL_PKEY_PARAM_EC_P "p" +# define OSSL_PKEY_PARAM_EC_POINT_CONVERSION_FORMAT "point-format" +# define OSSL_PKEY_PARAM_EC_PUB_X "qx" +# define OSSL_PKEY_PARAM_EC_PUB_Y "qy" +# define OSSL_PKEY_PARAM_EC_SEED "seed" +# define OSSL_PKEY_PARAM_ENCODED_PUBLIC_KEY "encoded-pub-key" +# define OSSL_PKEY_PARAM_ENGINE OSSL_ALG_PARAM_ENGINE +# define OSSL_PKEY_PARAM_FFC_COFACTOR "j" +# define OSSL_PKEY_PARAM_FFC_DIGEST OSSL_PKEY_PARAM_DIGEST +# define OSSL_PKEY_PARAM_FFC_DIGEST_PROPS OSSL_PKEY_PARAM_PROPERTIES +# define OSSL_PKEY_PARAM_FFC_G "g" +# define OSSL_PKEY_PARAM_FFC_GINDEX "gindex" +# define OSSL_PKEY_PARAM_FFC_H "hindex" +# define OSSL_PKEY_PARAM_FFC_P "p" +# define OSSL_PKEY_PARAM_FFC_PBITS "pbits" +# define OSSL_PKEY_PARAM_FFC_PCOUNTER "pcounter" +# define OSSL_PKEY_PARAM_FFC_Q "q" +# define OSSL_PKEY_PARAM_FFC_QBITS "qbits" +# define OSSL_PKEY_PARAM_FFC_SEED "seed" +# define OSSL_PKEY_PARAM_FFC_TYPE "type" +# define OSSL_PKEY_PARAM_FFC_VALIDATE_G "validate-g" +# define OSSL_PKEY_PARAM_FFC_VALIDATE_LEGACY "validate-legacy" +# define OSSL_PKEY_PARAM_FFC_VALIDATE_PQ "validate-pq" +# define OSSL_PKEY_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK "digest-check" +# define OSSL_PKEY_PARAM_FIPS_KEY_CHECK "key-check" +# define OSSL_PKEY_PARAM_FIPS_SIGN_CHECK "sign-check" +# define OSSL_PKEY_PARAM_GROUP_NAME "group" +# define OSSL_PKEY_PARAM_IMPLICIT_REJECTION "implicit-rejection" +# define OSSL_PKEY_PARAM_MANDATORY_DIGEST "mandatory-digest" +# define OSSL_PKEY_PARAM_MASKGENFUNC "mgf" +# define OSSL_PKEY_PARAM_MAX_SIZE "max-size" +# define OSSL_PKEY_PARAM_MGF1_DIGEST "mgf1-digest" +# define OSSL_PKEY_PARAM_MGF1_PROPERTIES "mgf1-properties" +# define OSSL_PKEY_PARAM_ML_DSA_INPUT_FORMATS "ml-dsa.input_formats" +# define OSSL_PKEY_PARAM_ML_DSA_OUTPUT_FORMATS "ml-dsa.output_formats" +# define OSSL_PKEY_PARAM_ML_DSA_PREFER_SEED "ml-dsa.prefer_seed" +# define OSSL_PKEY_PARAM_ML_DSA_RETAIN_SEED "ml-dsa.retain_seed" +# define OSSL_PKEY_PARAM_ML_DSA_SEED "seed" +# define OSSL_PKEY_PARAM_ML_KEM_IMPORT_PCT_TYPE "ml-kem.import_pct_type" +# define OSSL_PKEY_PARAM_ML_KEM_INPUT_FORMATS "ml-kem.input_formats" +# define OSSL_PKEY_PARAM_ML_KEM_OUTPUT_FORMATS "ml-kem.output_formats" +# define OSSL_PKEY_PARAM_ML_KEM_PREFER_SEED "ml-kem.prefer_seed" +# define OSSL_PKEY_PARAM_ML_KEM_RETAIN_SEED "ml-kem.retain_seed" +# define OSSL_PKEY_PARAM_ML_KEM_SEED "seed" +# define OSSL_PKEY_PARAM_PAD_MODE "pad-mode" +# define OSSL_PKEY_PARAM_PRIV_KEY "priv" +# define OSSL_PKEY_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_PKEY_PARAM_PUB_KEY "pub" +# define OSSL_PKEY_PARAM_RSA_BITS OSSL_PKEY_PARAM_BITS +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT "rsa-coefficient" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT1 "rsa-coefficient1" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT2 "rsa-coefficient2" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT3 "rsa-coefficient3" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT4 "rsa-coefficient4" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT5 "rsa-coefficient5" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT6 "rsa-coefficient6" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT7 "rsa-coefficient7" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT8 "rsa-coefficient8" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT9 "rsa-coefficient9" +# define OSSL_PKEY_PARAM_RSA_D "d" +# define OSSL_PKEY_PARAM_RSA_DERIVE_FROM_PQ "rsa-derive-from-pq" +# define OSSL_PKEY_PARAM_RSA_DIGEST OSSL_PKEY_PARAM_DIGEST +# define OSSL_PKEY_PARAM_RSA_DIGEST_PROPS OSSL_PKEY_PARAM_PROPERTIES +# define OSSL_PKEY_PARAM_RSA_E "e" +# define OSSL_PKEY_PARAM_RSA_EXPONENT "rsa-exponent" +# define OSSL_PKEY_PARAM_RSA_EXPONENT1 "rsa-exponent1" +# define OSSL_PKEY_PARAM_RSA_EXPONENT10 "rsa-exponent10" +# define OSSL_PKEY_PARAM_RSA_EXPONENT2 "rsa-exponent2" +# define OSSL_PKEY_PARAM_RSA_EXPONENT3 "rsa-exponent3" +# define OSSL_PKEY_PARAM_RSA_EXPONENT4 "rsa-exponent4" +# define OSSL_PKEY_PARAM_RSA_EXPONENT5 "rsa-exponent5" +# define OSSL_PKEY_PARAM_RSA_EXPONENT6 "rsa-exponent6" +# define OSSL_PKEY_PARAM_RSA_EXPONENT7 "rsa-exponent7" +# define OSSL_PKEY_PARAM_RSA_EXPONENT8 "rsa-exponent8" +# define OSSL_PKEY_PARAM_RSA_EXPONENT9 "rsa-exponent9" +# define OSSL_PKEY_PARAM_RSA_FACTOR "rsa-factor" +# define OSSL_PKEY_PARAM_RSA_FACTOR1 "rsa-factor1" +# define OSSL_PKEY_PARAM_RSA_FACTOR10 "rsa-factor10" +# define OSSL_PKEY_PARAM_RSA_FACTOR2 "rsa-factor2" +# define OSSL_PKEY_PARAM_RSA_FACTOR3 "rsa-factor3" +# define OSSL_PKEY_PARAM_RSA_FACTOR4 "rsa-factor4" +# define OSSL_PKEY_PARAM_RSA_FACTOR5 "rsa-factor5" +# define OSSL_PKEY_PARAM_RSA_FACTOR6 "rsa-factor6" +# define OSSL_PKEY_PARAM_RSA_FACTOR7 "rsa-factor7" +# define OSSL_PKEY_PARAM_RSA_FACTOR8 "rsa-factor8" +# define OSSL_PKEY_PARAM_RSA_FACTOR9 "rsa-factor9" +# define OSSL_PKEY_PARAM_RSA_MASKGENFUNC OSSL_PKEY_PARAM_MASKGENFUNC +# define OSSL_PKEY_PARAM_RSA_MGF1_DIGEST OSSL_PKEY_PARAM_MGF1_DIGEST +# define OSSL_PKEY_PARAM_RSA_N "n" +# define OSSL_PKEY_PARAM_RSA_PRIMES "primes" +# define OSSL_PKEY_PARAM_RSA_PSS_SALTLEN "saltlen" +# define OSSL_PKEY_PARAM_RSA_TEST_P1 "p1" +# define OSSL_PKEY_PARAM_RSA_TEST_P2 "p2" +# define OSSL_PKEY_PARAM_RSA_TEST_Q1 "q1" +# define OSSL_PKEY_PARAM_RSA_TEST_Q2 "q2" +# define OSSL_PKEY_PARAM_RSA_TEST_XP "xp" +# define OSSL_PKEY_PARAM_RSA_TEST_XP1 "xp1" +# define OSSL_PKEY_PARAM_RSA_TEST_XP2 "xp2" +# define OSSL_PKEY_PARAM_RSA_TEST_XQ "xq" +# define OSSL_PKEY_PARAM_RSA_TEST_XQ1 "xq1" +# define OSSL_PKEY_PARAM_RSA_TEST_XQ2 "xq2" +# define OSSL_PKEY_PARAM_SECURITY_BITS "security-bits" +# define OSSL_PKEY_PARAM_SLH_DSA_SEED "seed" +# define OSSL_PKEY_PARAM_USE_COFACTOR_ECDH OSSL_PKEY_PARAM_USE_COFACTOR_FLAG +# define OSSL_PKEY_PARAM_USE_COFACTOR_FLAG "use-cofactor-flag" +# define OSSL_PROV_PARAM_BUILDINFO "buildinfo" +# define OSSL_PROV_PARAM_CORE_MODULE_FILENAME "module-filename" +# define OSSL_PROV_PARAM_CORE_PROV_NAME "provider-name" +# define OSSL_PROV_PARAM_CORE_VERSION "openssl-version" +# define OSSL_PROV_PARAM_DRBG_TRUNC_DIGEST "drbg-no-trunc-md" +# define OSSL_PROV_PARAM_DSA_SIGN_DISABLED "dsa-sign-disabled" +# define OSSL_PROV_PARAM_ECDH_COFACTOR_CHECK "ecdh-cofactor-check" +# define OSSL_PROV_PARAM_HKDF_DIGEST_CHECK "hkdf-digest-check" +# define OSSL_PROV_PARAM_HKDF_KEY_CHECK "hkdf-key-check" +# define OSSL_PROV_PARAM_HMAC_KEY_CHECK "hmac-key-check" +# define OSSL_PROV_PARAM_KBKDF_KEY_CHECK "kbkdf-key-check" +# define OSSL_PROV_PARAM_KMAC_KEY_CHECK "kmac-key-check" +# define OSSL_PROV_PARAM_NAME "name" +# define OSSL_PROV_PARAM_NO_SHORT_MAC "no-short-mac" +# define OSSL_PROV_PARAM_PBKDF2_LOWER_BOUND_CHECK "pbkdf2-lower-bound-check" +# define OSSL_PROV_PARAM_RSA_PKCS15_PAD_DISABLED "rsa-pkcs15-pad-disabled" +# define OSSL_PROV_PARAM_RSA_PSS_SALTLEN_CHECK "rsa-pss-saltlen-check" +# define OSSL_PROV_PARAM_RSA_SIGN_X931_PAD_DISABLED "rsa-sign-x931-pad-disabled" +# define OSSL_PROV_PARAM_SECURITY_CHECKS "security-checks" +# define OSSL_PROV_PARAM_SELF_TEST_DESC "st-desc" +# define OSSL_PROV_PARAM_SELF_TEST_PHASE "st-phase" +# define OSSL_PROV_PARAM_SELF_TEST_TYPE "st-type" +# define OSSL_PROV_PARAM_SIGNATURE_DIGEST_CHECK "signature-digest-check" +# define OSSL_PROV_PARAM_SSHKDF_DIGEST_CHECK "sshkdf-digest-check" +# define OSSL_PROV_PARAM_SSHKDF_KEY_CHECK "sshkdf-key-check" +# define OSSL_PROV_PARAM_SSKDF_DIGEST_CHECK "sskdf-digest-check" +# define OSSL_PROV_PARAM_SSKDF_KEY_CHECK "sskdf-key-check" +# define OSSL_PROV_PARAM_STATUS "status" +# define OSSL_PROV_PARAM_TDES_ENCRYPT_DISABLED "tdes-encrypt-disabled" +# define OSSL_PROV_PARAM_TLS13_KDF_DIGEST_CHECK "tls13-kdf-digest-check" +# define OSSL_PROV_PARAM_TLS13_KDF_KEY_CHECK "tls13-kdf-key-check" +# define OSSL_PROV_PARAM_TLS1_PRF_DIGEST_CHECK "tls1-prf-digest-check" +# define OSSL_PROV_PARAM_TLS1_PRF_EMS_CHECK "tls1-prf-ems-check" +# define OSSL_PROV_PARAM_TLS1_PRF_KEY_CHECK "tls1-prf-key-check" +# define OSSL_PROV_PARAM_VERSION "version" +# define OSSL_PROV_PARAM_X942KDF_KEY_CHECK "x942kdf-key-check" +# define OSSL_PROV_PARAM_X963KDF_DIGEST_CHECK "x963kdf-digest-check" +# define OSSL_PROV_PARAM_X963KDF_KEY_CHECK "x963kdf-key-check" +# define OSSL_RAND_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_RAND_PARAM_GENERATE "generate" +# define OSSL_RAND_PARAM_MAX_REQUEST "max_request" +# define OSSL_RAND_PARAM_STATE "state" +# define OSSL_RAND_PARAM_STRENGTH "strength" +# define OSSL_RAND_PARAM_TEST_ENTROPY "test_entropy" +# define OSSL_RAND_PARAM_TEST_NONCE "test_nonce" +# define OSSL_SIGNATURE_PARAM_ADD_RANDOM "additional-random" +# define OSSL_SIGNATURE_PARAM_ALGORITHM_ID OSSL_PKEY_PARAM_ALGORITHM_ID +# define OSSL_SIGNATURE_PARAM_ALGORITHM_ID_PARAMS OSSL_PKEY_PARAM_ALGORITHM_ID_PARAMS +# define OSSL_SIGNATURE_PARAM_CONTEXT_STRING "context-string" +# define OSSL_SIGNATURE_PARAM_DETERMINISTIC "deterministic" +# define OSSL_SIGNATURE_PARAM_DIGEST OSSL_PKEY_PARAM_DIGEST +# define OSSL_SIGNATURE_PARAM_DIGEST_SIZE OSSL_PKEY_PARAM_DIGEST_SIZE +# define OSSL_SIGNATURE_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_SIGNATURE_PARAM_FIPS_DIGEST_CHECK OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK +# define OSSL_SIGNATURE_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_SIGNATURE_PARAM_FIPS_RSA_PSS_SALTLEN_CHECK "rsa-pss-saltlen-check" +# define OSSL_SIGNATURE_PARAM_FIPS_SIGN_CHECK OSSL_PKEY_PARAM_FIPS_SIGN_CHECK +# define OSSL_SIGNATURE_PARAM_FIPS_SIGN_X931_PAD_CHECK "sign-x931-pad-check" +# define OSSL_SIGNATURE_PARAM_FIPS_VERIFY_MESSAGE "verify-message" +# define OSSL_SIGNATURE_PARAM_INSTANCE "instance" +# define OSSL_SIGNATURE_PARAM_KAT "kat" +# define OSSL_SIGNATURE_PARAM_MESSAGE_ENCODING "message-encoding" +# define OSSL_SIGNATURE_PARAM_MGF1_DIGEST OSSL_PKEY_PARAM_MGF1_DIGEST +# define OSSL_SIGNATURE_PARAM_MGF1_PROPERTIES OSSL_PKEY_PARAM_MGF1_PROPERTIES +# define OSSL_SIGNATURE_PARAM_MU "mu" +# define OSSL_SIGNATURE_PARAM_NONCE_TYPE "nonce-type" +# define OSSL_SIGNATURE_PARAM_PAD_MODE OSSL_PKEY_PARAM_PAD_MODE +# define OSSL_SIGNATURE_PARAM_PROPERTIES OSSL_PKEY_PARAM_PROPERTIES +# define OSSL_SIGNATURE_PARAM_PSS_SALTLEN "saltlen" +# define OSSL_SIGNATURE_PARAM_SIGNATURE "signature" +# define OSSL_SIGNATURE_PARAM_TEST_ENTROPY "test-entropy" +# define OSSL_SKEY_PARAM_KEY_LENGTH "key-length" +# define OSSL_SKEY_PARAM_RAW_BYTES "raw-bytes" +# define OSSL_STORE_PARAM_ALIAS "alias" +# define OSSL_STORE_PARAM_DIGEST "digest" +# define OSSL_STORE_PARAM_EXPECT "expect" +# define OSSL_STORE_PARAM_FINGERPRINT "fingerprint" +# define OSSL_STORE_PARAM_INPUT_TYPE "input-type" +# define OSSL_STORE_PARAM_ISSUER "name" +# define OSSL_STORE_PARAM_PROPERTIES "properties" +# define OSSL_STORE_PARAM_SERIAL "serial" +# define OSSL_STORE_PARAM_SUBJECT "subject" + +# ifdef __cplusplus +} +# endif + +#endif diff --git a/deps/openssl/config/archs/VC-WIN64A/no-asm/include/openssl/crmf.h b/deps/openssl/config/archs/VC-WIN64A/no-asm/include/openssl/crmf.h index 0419170bb99974..9b6f13fac240b2 100644 --- a/deps/openssl/config/archs/VC-WIN64A/no-asm/include/openssl/crmf.h +++ b/deps/openssl/config/archs/VC-WIN64A/no-asm/include/openssl/crmf.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by makefile from include/openssl/crmf.h.in * - * Copyright 2007-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2007-2025 The OpenSSL Project Authors. All Rights Reserved. * Copyright Nokia 2007-2019 * Copyright Siemens AG 2015-2019 * @@ -26,6 +26,7 @@ # include # include # include /* for GENERAL_NAME etc. */ +# include /* explicit #includes not strictly needed since implied by the above: */ # include @@ -43,9 +44,12 @@ extern "C" { # define OSSL_CRMF_SUBSEQUENTMESSAGE_ENCRCERT 0 # define OSSL_CRMF_SUBSEQUENTMESSAGE_CHALLENGERESP 1 - typedef struct ossl_crmf_encryptedvalue_st OSSL_CRMF_ENCRYPTEDVALUE; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_ENCRYPTEDVALUE) + +typedef struct ossl_crmf_encryptedkey_st OSSL_CRMF_ENCRYPTEDKEY; +DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_ENCRYPTEDKEY) + typedef struct ossl_crmf_msg_st OSSL_CRMF_MSG; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_MSG) DECLARE_ASN1_DUP_FUNCTION(OSSL_CRMF_MSG) @@ -77,6 +81,36 @@ SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CRMF_MSG, OSSL_CRMF_MSG, OSSL_CRMF_MSG) #define sk_OSSL_CRMF_MSG_set_cmp_func(sk, cmp) ((sk_OSSL_CRMF_MSG_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CRMF_MSG_sk_type(sk), ossl_check_OSSL_CRMF_MSG_compfunc_type(cmp))) typedef struct ossl_crmf_attributetypeandvalue_st OSSL_CRMF_ATTRIBUTETYPEANDVALUE; +void OSSL_CRMF_ATTRIBUTETYPEANDVALUE_free(OSSL_CRMF_ATTRIBUTETYPEANDVALUE *v); +DECLARE_ASN1_DUP_FUNCTION(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CRMF_ATTRIBUTETYPEANDVALUE, OSSL_CRMF_ATTRIBUTETYPEANDVALUE, OSSL_CRMF_ATTRIBUTETYPEANDVALUE) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_value(sk, idx) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_value(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), (idx))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_new(cmp) ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_new(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_compfunc_type(cmp))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_new_null() ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_new_null()) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_new_reserve(cmp, n) ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_compfunc_type(cmp), (n))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), (n)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_free(sk) OPENSSL_sk_free(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_delete(sk, i) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_delete(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), (i))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_delete_ptr(sk, ptr) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_pop(sk) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_pop(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_shift(sk) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_shift(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk),ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_freefunc_type(freefunc)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr), (idx)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_set(sk, idx, ptr) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_set(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), (idx), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr), pnum) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_dup(sk) ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_dup(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_copyfunc_type(copyfunc), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_freefunc_type(freefunc))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_set_cmp_func(sk, cmp) ((sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_compfunc_type(cmp))) + + typedef struct ossl_crmf_pbmparameter_st OSSL_CRMF_PBMPARAMETER; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_PBMPARAMETER) typedef struct ossl_crmf_poposigningkey_st OSSL_CRMF_POPOSIGNINGKEY; @@ -118,6 +152,7 @@ typedef struct ossl_crmf_singlepubinfo_st OSSL_CRMF_SINGLEPUBINFO; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_SINGLEPUBINFO) typedef struct ossl_crmf_certtemplate_st OSSL_CRMF_CERTTEMPLATE; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_CERTTEMPLATE) +DECLARE_ASN1_DUP_FUNCTION(OSSL_CRMF_CERTTEMPLATE) typedef STACK_OF(OSSL_CRMF_MSG) OSSL_CRMF_MSGS; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_MSGS) @@ -198,12 +233,14 @@ int OSSL_CRMF_MSGS_verify_popo(const OSSL_CRMF_MSGS *reqs, int rid, int acceptRAVerified, OSSL_LIB_CTX *libctx, const char *propq); OSSL_CRMF_CERTTEMPLATE *OSSL_CRMF_MSG_get0_tmpl(const OSSL_CRMF_MSG *crm); -const ASN1_INTEGER -*OSSL_CRMF_CERTTEMPLATE_get0_serialNumber(const OSSL_CRMF_CERTTEMPLATE *tmpl); +X509_PUBKEY +*OSSL_CRMF_CERTTEMPLATE_get0_publicKey(const OSSL_CRMF_CERTTEMPLATE *tmpl); const X509_NAME *OSSL_CRMF_CERTTEMPLATE_get0_subject(const OSSL_CRMF_CERTTEMPLATE *tmpl); const X509_NAME *OSSL_CRMF_CERTTEMPLATE_get0_issuer(const OSSL_CRMF_CERTTEMPLATE *tmpl); +const ASN1_INTEGER +*OSSL_CRMF_CERTTEMPLATE_get0_serialNumber(const OSSL_CRMF_CERTTEMPLATE *tmpl); X509_EXTENSIONS *OSSL_CRMF_CERTTEMPLATE_get0_extensions(const OSSL_CRMF_CERTTEMPLATE *tmpl); const X509_NAME @@ -215,10 +252,24 @@ int OSSL_CRMF_CERTTEMPLATE_fill(OSSL_CRMF_CERTTEMPLATE *tmpl, const X509_NAME *subject, const X509_NAME *issuer, const ASN1_INTEGER *serial); -X509 -*OSSL_CRMF_ENCRYPTEDVALUE_get1_encCert(const OSSL_CRMF_ENCRYPTEDVALUE *ecert, - OSSL_LIB_CTX *libctx, const char *propq, - EVP_PKEY *pkey); +X509 *OSSL_CRMF_ENCRYPTEDVALUE_get1_encCert(const OSSL_CRMF_ENCRYPTEDVALUE *ecert, + OSSL_LIB_CTX *libctx, const char *propq, + EVP_PKEY *pkey); +X509 *OSSL_CRMF_ENCRYPTEDKEY_get1_encCert(const OSSL_CRMF_ENCRYPTEDKEY *ecert, + OSSL_LIB_CTX *libctx, const char *propq, + EVP_PKEY *pkey, unsigned int flags); +unsigned char +*OSSL_CRMF_ENCRYPTEDVALUE_decrypt(const OSSL_CRMF_ENCRYPTEDVALUE *enc, + OSSL_LIB_CTX *libctx, const char *propq, + EVP_PKEY *pkey, int *outlen); +EVP_PKEY *OSSL_CRMF_ENCRYPTEDKEY_get1_pkey(const OSSL_CRMF_ENCRYPTEDKEY *encryptedKey, + X509_STORE *ts, STACK_OF(X509) *extra, EVP_PKEY *pkey, + X509 *cert, ASN1_OCTET_STRING *secret, + OSSL_LIB_CTX *libctx, const char *propq); +int OSSL_CRMF_MSG_centralkeygen_requested(const OSSL_CRMF_MSG *crm, const X509_REQ *p10cr); +# ifndef OPENSSL_NO_CMS +OSSL_CRMF_ENCRYPTEDKEY *OSSL_CRMF_ENCRYPTEDKEY_init_envdata(CMS_EnvelopedData *envdata); +# endif # ifdef __cplusplus } diff --git a/deps/openssl/config/archs/VC-WIN64A/no-asm/include/openssl/crypto.h b/deps/openssl/config/archs/VC-WIN64A/no-asm/include/openssl/crypto.h index 668c52cfee1f15..2a825986bf3a55 100644 --- a/deps/openssl/config/archs/VC-WIN64A/no-asm/include/openssl/crypto.h +++ b/deps/openssl/config/archs/VC-WIN64A/no-asm/include/openssl/crypto.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by makefile from include/openssl/crypto.h.in * - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2024 The OpenSSL Project Authors. All Rights Reserved. * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved * * Licensed under the Apache License 2.0 (the "License"). You may not use @@ -85,9 +85,15 @@ int CRYPTO_THREAD_unlock(CRYPTO_RWLOCK *lock); void CRYPTO_THREAD_lock_free(CRYPTO_RWLOCK *lock); int CRYPTO_atomic_add(int *val, int amount, int *ret, CRYPTO_RWLOCK *lock); +int CRYPTO_atomic_add64(uint64_t *val, uint64_t op, uint64_t *ret, + CRYPTO_RWLOCK *lock); +int CRYPTO_atomic_and(uint64_t *val, uint64_t op, uint64_t *ret, + CRYPTO_RWLOCK *lock); int CRYPTO_atomic_or(uint64_t *val, uint64_t op, uint64_t *ret, CRYPTO_RWLOCK *lock); int CRYPTO_atomic_load(uint64_t *val, uint64_t *ret, CRYPTO_RWLOCK *lock); +int CRYPTO_atomic_load_int(int *val, int *ret, CRYPTO_RWLOCK *lock); +int CRYPTO_atomic_store(uint64_t *dst, uint64_t val, CRYPTO_RWLOCK *lock); /* No longer needed, so this is a no-op */ #define OPENSSL_malloc_init() while(0) continue @@ -96,6 +102,9 @@ int CRYPTO_atomic_load(uint64_t *val, uint64_t *ret, CRYPTO_RWLOCK *lock); CRYPTO_malloc(num, OPENSSL_FILE, OPENSSL_LINE) # define OPENSSL_zalloc(num) \ CRYPTO_zalloc(num, OPENSSL_FILE, OPENSSL_LINE) +# define OPENSSL_aligned_alloc(num, alignment, freeptr) \ + CRYPTO_aligned_alloc(num, alignment, freeptr, \ + OPENSSL_FILE, OPENSSL_LINE) # define OPENSSL_realloc(addr, num) \ CRYPTO_realloc(addr, num, OPENSSL_FILE, OPENSSL_LINE) # define OPENSSL_clear_realloc(addr, old_num, num) \ @@ -124,6 +133,7 @@ int CRYPTO_atomic_load(uint64_t *val, uint64_t *ret, CRYPTO_RWLOCK *lock); size_t OPENSSL_strlcpy(char *dst, const char *src, size_t siz); size_t OPENSSL_strlcat(char *dst, const char *src, size_t siz); size_t OPENSSL_strnlen(const char *str, size_t maxlen); +int OPENSSL_strtoul(const char *str, char **endptr, int base, unsigned long *num); int OPENSSL_buf2hexstr_ex(char *str, size_t str_n, size_t *strlength, const unsigned char *buf, size_t buflen, const char sep); @@ -160,6 +170,7 @@ const char *OpenSSL_version(int type); # define OPENSSL_FULL_VERSION_STRING 7 # define OPENSSL_MODULES_DIR 8 # define OPENSSL_CPU_INFO 9 +# define OPENSSL_WINCTX 10 const char *OPENSSL_info(int type); /* @@ -174,6 +185,7 @@ const char *OPENSSL_info(int type); # define OPENSSL_INFO_LIST_SEPARATOR 1006 # define OPENSSL_INFO_SEED_SOURCE 1007 # define OPENSSL_INFO_CPU_SETTINGS 1008 +# define OPENSSL_INFO_WINDOWS_CONTEXT 1009 int OPENSSL_issetugid(void); @@ -341,11 +353,14 @@ void CRYPTO_get_mem_functions(CRYPTO_malloc_fn *malloc_fn, CRYPTO_realloc_fn *realloc_fn, CRYPTO_free_fn *free_fn); -void *CRYPTO_malloc(size_t num, const char *file, int line); -void *CRYPTO_zalloc(size_t num, const char *file, int line); -void *CRYPTO_memdup(const void *str, size_t siz, const char *file, int line); -char *CRYPTO_strdup(const char *str, const char *file, int line); -char *CRYPTO_strndup(const char *str, size_t s, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_malloc(size_t num, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_zalloc(size_t num, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_aligned_alloc(size_t num, size_t align, + void **freeptr, const char *file, + int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_memdup(const void *str, size_t siz, const char *file, int line); +OSSL_CRYPTO_ALLOC char *CRYPTO_strdup(const char *str, const char *file, int line); +OSSL_CRYPTO_ALLOC char *CRYPTO_strndup(const char *str, size_t s, const char *file, int line); void CRYPTO_free(void *ptr, const char *file, int line); void CRYPTO_clear_free(void *ptr, size_t num, const char *file, int line); void *CRYPTO_realloc(void *addr, size_t num, const char *file, int line); @@ -354,8 +369,8 @@ void *CRYPTO_clear_realloc(void *addr, size_t old_num, size_t num, int CRYPTO_secure_malloc_init(size_t sz, size_t minsize); int CRYPTO_secure_malloc_done(void); -void *CRYPTO_secure_malloc(size_t num, const char *file, int line); -void *CRYPTO_secure_zalloc(size_t num, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_secure_malloc(size_t num, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_secure_zalloc(size_t num, const char *file, int line); void CRYPTO_secure_free(void *ptr, const char *file, int line); void CRYPTO_secure_clear_free(void *ptr, size_t num, const char *file, int line); @@ -376,6 +391,9 @@ void OPENSSL_cleanse(void *ptr, size_t len); # define CRYPTO_MEM_CHECK_ENABLE 0x2 /* Control and mode bit */ # define CRYPTO_MEM_CHECK_DISABLE 0x3 /* Control only */ +/* max allowed length for value of OPENSSL_MALLOC_FAILURES env var. */ +# define CRYPTO_MEM_CHECK_MAX_FS 256 + void CRYPTO_get_alloc_counts(int *mcount, int *rcount, int *fcount); # ifndef OPENSSL_NO_DEPRECATED_3_0 # define OPENSSL_mem_debug_push(info) \ @@ -551,6 +569,13 @@ int OSSL_LIB_CTX_load_config(OSSL_LIB_CTX *ctx, const char *config_file); void OSSL_LIB_CTX_free(OSSL_LIB_CTX *); OSSL_LIB_CTX *OSSL_LIB_CTX_get0_global_default(void); OSSL_LIB_CTX *OSSL_LIB_CTX_set0_default(OSSL_LIB_CTX *libctx); +int OSSL_LIB_CTX_get_conf_diagnostics(OSSL_LIB_CTX *ctx); +void OSSL_LIB_CTX_set_conf_diagnostics(OSSL_LIB_CTX *ctx, int value); + +void OSSL_sleep(uint64_t millis); + + +void *OSSL_LIB_CTX_get_data(OSSL_LIB_CTX *ctx, int index); # ifdef __cplusplus } diff --git a/deps/openssl/config/archs/VC-WIN64A/no-asm/include/openssl/ct.h b/deps/openssl/config/archs/VC-WIN64A/no-asm/include/openssl/ct.h index 15a276e33ff7ca..d29dbc78997c0b 100644 --- a/deps/openssl/config/archs/VC-WIN64A/no-asm/include/openssl/ct.h +++ b/deps/openssl/config/archs/VC-WIN64A/no-asm/include/openssl/ct.h @@ -133,7 +133,7 @@ typedef enum { */ CT_POLICY_EVAL_CTX *CT_POLICY_EVAL_CTX_new_ex(OSSL_LIB_CTX *libctx, const char *propq); - + /* * The same as CT_POLICY_EVAL_CTX_new_ex() but the default library * context and property query string is used. diff --git a/deps/openssl/config/archs/VC-WIN64A/no-asm/include/openssl/err.h b/deps/openssl/config/archs/VC-WIN64A/no-asm/include/openssl/err.h index 2abf2483488181..daca18e7b757b0 100644 --- a/deps/openssl/config/archs/VC-WIN64A/no-asm/include/openssl/err.h +++ b/deps/openssl/config/archs/VC-WIN64A/no-asm/include/openssl/err.h @@ -1,5 +1,5 @@ /* - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -372,7 +372,7 @@ typedef struct ERR_string_data_st { } ERR_STRING_DATA; DEFINE_LHASH_OF_INTERNAL(ERR_STRING_DATA); -#define lh_ERR_STRING_DATA_new(hfn, cmp) ((LHASH_OF(ERR_STRING_DATA) *)OPENSSL_LH_new(ossl_check_ERR_STRING_DATA_lh_hashfunc_type(hfn), ossl_check_ERR_STRING_DATA_lh_compfunc_type(cmp))) +#define lh_ERR_STRING_DATA_new(hfn, cmp) ((LHASH_OF(ERR_STRING_DATA) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new(ossl_check_ERR_STRING_DATA_lh_hashfunc_type(hfn), ossl_check_ERR_STRING_DATA_lh_compfunc_type(cmp)), lh_ERR_STRING_DATA_hash_thunk, lh_ERR_STRING_DATA_comp_thunk, lh_ERR_STRING_DATA_doall_thunk, lh_ERR_STRING_DATA_doall_arg_thunk)) #define lh_ERR_STRING_DATA_free(lh) OPENSSL_LH_free(ossl_check_ERR_STRING_DATA_lh_type(lh)) #define lh_ERR_STRING_DATA_flush(lh) OPENSSL_LH_flush(ossl_check_ERR_STRING_DATA_lh_type(lh)) #define lh_ERR_STRING_DATA_insert(lh, ptr) ((ERR_STRING_DATA *)OPENSSL_LH_insert(ossl_check_ERR_STRING_DATA_lh_type(lh), ossl_check_ERR_STRING_DATA_lh_plain_type(ptr))) @@ -496,6 +496,14 @@ int ERR_get_next_error_library(void); int ERR_set_mark(void); int ERR_pop_to_mark(void); int ERR_clear_last_mark(void); +int ERR_count_to_mark(void); +int ERR_pop(void); + +ERR_STATE *OSSL_ERR_STATE_new(void); +void OSSL_ERR_STATE_save(ERR_STATE *es); +void OSSL_ERR_STATE_save_to_mark(ERR_STATE *es); +void OSSL_ERR_STATE_restore(const ERR_STATE *es); +void OSSL_ERR_STATE_free(ERR_STATE *es); #ifdef __cplusplus } diff --git a/deps/openssl/config/archs/VC-WIN64A/no-asm/include/openssl/fipskey.h b/deps/openssl/config/archs/VC-WIN64A/no-asm/include/openssl/fipskey.h index bf03682482fdd5..6939fd3c55ba6e 100644 --- a/deps/openssl/config/archs/VC-WIN64A/no-asm/include/openssl/fipskey.h +++ b/deps/openssl/config/archs/VC-WIN64A/no-asm/include/openssl/fipskey.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by makefile from include/openssl/fipskey.h.in * - * Copyright 2020-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2020-2024 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -29,6 +29,11 @@ extern "C" { */ #define FIPS_KEY_STRING "f4556650ac31d35461610bac4ed81b1a181b2d8a43ea2854cbae22ca74560813" +/* + * The FIPS provider vendor name, as a string. + */ +#define FIPS_VENDOR "OpenSSL FIPS Provider" + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/VC-WIN64A/no-asm/include/openssl/lhash.h b/deps/openssl/config/archs/VC-WIN64A/no-asm/include/openssl/lhash.h index 39dd6254acdeb6..62c55b20fd9716 100644 --- a/deps/openssl/config/archs/VC-WIN64A/no-asm/include/openssl/lhash.h +++ b/deps/openssl/config/archs/VC-WIN64A/no-asm/include/openssl/lhash.h @@ -1,5 +1,5 @@ /* - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2024 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -24,6 +24,9 @@ # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -31,9 +34,13 @@ extern "C" { typedef struct lhash_node_st OPENSSL_LH_NODE; typedef int (*OPENSSL_LH_COMPFUNC) (const void *, const void *); +typedef int (*OPENSSL_LH_COMPFUNCTHUNK) (const void *, const void *, OPENSSL_LH_COMPFUNC cfn); typedef unsigned long (*OPENSSL_LH_HASHFUNC) (const void *); +typedef unsigned long (*OPENSSL_LH_HASHFUNCTHUNK) (const void *, OPENSSL_LH_HASHFUNC hfn); typedef void (*OPENSSL_LH_DOALL_FUNC) (void *); +typedef void (*OPENSSL_LH_DOALL_FUNC_THUNK) (void *, OPENSSL_LH_DOALL_FUNC doall); typedef void (*OPENSSL_LH_DOALL_FUNCARG) (void *, void *); +typedef void (*OPENSSL_LH_DOALL_FUNCARG_THUNK) (void *, void *, OPENSSL_LH_DOALL_FUNCARG doall); typedef struct lhash_st OPENSSL_LHASH; /* @@ -79,26 +86,40 @@ typedef struct lhash_st OPENSSL_LHASH; int OPENSSL_LH_error(OPENSSL_LHASH *lh); OPENSSL_LHASH *OPENSSL_LH_new(OPENSSL_LH_HASHFUNC h, OPENSSL_LH_COMPFUNC c); +OPENSSL_LHASH *OPENSSL_LH_set_thunks(OPENSSL_LHASH *lh, + OPENSSL_LH_HASHFUNCTHUNK hw, + OPENSSL_LH_COMPFUNCTHUNK cw, + OPENSSL_LH_DOALL_FUNC_THUNK daw, + OPENSSL_LH_DOALL_FUNCARG_THUNK daaw); void OPENSSL_LH_free(OPENSSL_LHASH *lh); void OPENSSL_LH_flush(OPENSSL_LHASH *lh); void *OPENSSL_LH_insert(OPENSSL_LHASH *lh, void *data); void *OPENSSL_LH_delete(OPENSSL_LHASH *lh, const void *data); void *OPENSSL_LH_retrieve(OPENSSL_LHASH *lh, const void *data); void OPENSSL_LH_doall(OPENSSL_LHASH *lh, OPENSSL_LH_DOALL_FUNC func); -void OPENSSL_LH_doall_arg(OPENSSL_LHASH *lh, OPENSSL_LH_DOALL_FUNCARG func, void *arg); +void OPENSSL_LH_doall_arg(OPENSSL_LHASH *lh, + OPENSSL_LH_DOALL_FUNCARG func, void *arg); +void OPENSSL_LH_doall_arg_thunk(OPENSSL_LHASH *lh, + OPENSSL_LH_DOALL_FUNCARG_THUNK daaw, + OPENSSL_LH_DOALL_FUNCARG fn, void *arg); + unsigned long OPENSSL_LH_strhash(const char *c); unsigned long OPENSSL_LH_num_items(const OPENSSL_LHASH *lh); unsigned long OPENSSL_LH_get_down_load(const OPENSSL_LHASH *lh); void OPENSSL_LH_set_down_load(OPENSSL_LHASH *lh, unsigned long down_load); # ifndef OPENSSL_NO_STDIO -void OPENSSL_LH_stats(const OPENSSL_LHASH *lh, FILE *fp); -void OPENSSL_LH_node_stats(const OPENSSL_LHASH *lh, FILE *fp); -void OPENSSL_LH_node_usage_stats(const OPENSSL_LHASH *lh, FILE *fp); +# ifndef OPENSSL_NO_DEPRECATED_3_1 +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_stats(const OPENSSL_LHASH *lh, FILE *fp); +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_node_stats(const OPENSSL_LHASH *lh, FILE *fp); +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_node_usage_stats(const OPENSSL_LHASH *lh, FILE *fp); +# endif +# endif +# ifndef OPENSSL_NO_DEPRECATED_3_1 +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_stats_bio(const OPENSSL_LHASH *lh, BIO *out); +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_node_stats_bio(const OPENSSL_LHASH *lh, BIO *out); +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_node_usage_stats_bio(const OPENSSL_LHASH *lh, BIO *out); # endif -void OPENSSL_LH_stats_bio(const OPENSSL_LHASH *lh, BIO *out); -void OPENSSL_LH_node_stats_bio(const OPENSSL_LHASH *lh, BIO *out); -void OPENSSL_LH_node_usage_stats_bio(const OPENSSL_LHASH *lh, BIO *out); # ifndef OPENSSL_NO_DEPRECATED_1_1_0 # define _LHASH OPENSSL_LHASH @@ -129,110 +150,190 @@ void OPENSSL_LH_node_usage_stats_bio(const OPENSSL_LHASH *lh, BIO *out); /* Helper macro for internal use */ # define DEFINE_LHASH_OF_INTERNAL(type) \ - LHASH_OF(type) { union lh_##type##_dummy { void* d1; unsigned long d2; int d3; } dummy; }; \ + LHASH_OF(type) { \ + union lh_##type##_dummy { void* d1; unsigned long d2; int d3; } dummy; \ + }; \ typedef int (*lh_##type##_compfunc)(const type *a, const type *b); \ typedef unsigned long (*lh_##type##_hashfunc)(const type *a); \ typedef void (*lh_##type##_doallfunc)(type *a); \ - static ossl_unused ossl_inline type *ossl_check_##type##_lh_plain_type(type *ptr) \ + static ossl_inline unsigned long lh_##type##_hash_thunk(const void *data, OPENSSL_LH_HASHFUNC hfn) \ + { \ + unsigned long (*hfn_conv)(const type *) = (unsigned long (*)(const type *))hfn; \ + return hfn_conv((const type *)data); \ + } \ + static ossl_inline int lh_##type##_comp_thunk(const void *da, const void *db, OPENSSL_LH_COMPFUNC cfn) \ + { \ + int (*cfn_conv)(const type *, const type *) = (int (*)(const type *, const type *))cfn; \ + return cfn_conv((const type *)da, (const type *)db); \ + } \ + static ossl_inline void lh_##type##_doall_thunk(void *node, OPENSSL_LH_DOALL_FUNC doall) \ + { \ + void (*doall_conv)(type *) = (void (*)(type *))doall; \ + doall_conv((type *)node); \ + } \ + static ossl_inline void lh_##type##_doall_arg_thunk(void *node, void *arg, OPENSSL_LH_DOALL_FUNCARG doall) \ + { \ + void (*doall_conv)(type *, void *) = (void (*)(type *, void *))doall; \ + doall_conv((type *)node, arg); \ + } \ + static ossl_unused ossl_inline type *\ + ossl_check_##type##_lh_plain_type(type *ptr) \ { \ return ptr; \ } \ - static ossl_unused ossl_inline const type *ossl_check_const_##type##_lh_plain_type(const type *ptr) \ + static ossl_unused ossl_inline const type * \ + ossl_check_const_##type##_lh_plain_type(const type *ptr) \ { \ return ptr; \ } \ - static ossl_unused ossl_inline const OPENSSL_LHASH *ossl_check_const_##type##_lh_type(const LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline const OPENSSL_LHASH * \ + ossl_check_const_##type##_lh_type(const LHASH_OF(type) *lh) \ { \ return (const OPENSSL_LHASH *)lh; \ } \ - static ossl_unused ossl_inline OPENSSL_LHASH *ossl_check_##type##_lh_type(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline OPENSSL_LHASH * \ + ossl_check_##type##_lh_type(LHASH_OF(type) *lh) \ { \ return (OPENSSL_LHASH *)lh; \ } \ - static ossl_unused ossl_inline OPENSSL_LH_COMPFUNC ossl_check_##type##_lh_compfunc_type(lh_##type##_compfunc cmp) \ + static ossl_unused ossl_inline OPENSSL_LH_COMPFUNC \ + ossl_check_##type##_lh_compfunc_type(lh_##type##_compfunc cmp) \ { \ return (OPENSSL_LH_COMPFUNC)cmp; \ } \ - static ossl_unused ossl_inline OPENSSL_LH_HASHFUNC ossl_check_##type##_lh_hashfunc_type(lh_##type##_hashfunc hfn) \ + static ossl_unused ossl_inline OPENSSL_LH_HASHFUNC \ + ossl_check_##type##_lh_hashfunc_type(lh_##type##_hashfunc hfn) \ { \ return (OPENSSL_LH_HASHFUNC)hfn; \ } \ - static ossl_unused ossl_inline OPENSSL_LH_DOALL_FUNC ossl_check_##type##_lh_doallfunc_type(lh_##type##_doallfunc dfn) \ + static ossl_unused ossl_inline OPENSSL_LH_DOALL_FUNC \ + ossl_check_##type##_lh_doallfunc_type(lh_##type##_doallfunc dfn) \ { \ return (OPENSSL_LH_DOALL_FUNC)dfn; \ } \ LHASH_OF(type) -# define DEFINE_LHASH_OF(type) \ - LHASH_OF(type) { union lh_##type##_dummy { void* d1; unsigned long d2; int d3; } dummy; }; \ - static ossl_unused ossl_inline LHASH_OF(type) *lh_##type##_new(unsigned long (*hfn)(const type *), \ - int (*cfn)(const type *, const type *)) \ +# ifndef OPENSSL_NO_DEPRECATED_3_1 +# define DEFINE_LHASH_OF_DEPRECATED(type) \ + static ossl_unused ossl_inline void \ + lh_##type##_node_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ { \ - return (LHASH_OF(type) *) \ - OPENSSL_LH_new((OPENSSL_LH_HASHFUNC)hfn, (OPENSSL_LH_COMPFUNC)cfn); \ + OPENSSL_LH_node_stats_bio((const OPENSSL_LHASH *)lh, out); \ } \ - static ossl_unused ossl_inline void lh_##type##_free(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline void \ + lh_##type##_node_usage_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + { \ + OPENSSL_LH_node_usage_stats_bio((const OPENSSL_LHASH *)lh, out); \ + } \ + static ossl_unused ossl_inline void \ + lh_##type##_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + { \ + OPENSSL_LH_stats_bio((const OPENSSL_LHASH *)lh, out); \ + } +# else +# define DEFINE_LHASH_OF_DEPRECATED(type) +# endif + +# define DEFINE_LHASH_OF_EX(type) \ + LHASH_OF(type) { \ + union lh_##type##_dummy { void* d1; unsigned long d2; int d3; } dummy; \ + }; \ + static unsigned long \ + lh_##type##_hfn_thunk(const void *data, OPENSSL_LH_HASHFUNC hfn) \ + { \ + unsigned long (*hfn_conv)(const type *) = (unsigned long (*)(const type *))hfn; \ + return hfn_conv((const type *)data); \ + } \ + static int lh_##type##_cfn_thunk(const void *da, const void *db, OPENSSL_LH_COMPFUNC cfn) \ + { \ + int (*cfn_conv)(const type *, const type *) = (int (*)(const type *, const type *))cfn; \ + return cfn_conv((const type *)da, (const type *)db); \ + } \ + static ossl_unused ossl_inline void \ + lh_##type##_free(LHASH_OF(type) *lh) \ { \ OPENSSL_LH_free((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline void lh_##type##_flush(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline void \ + lh_##type##_flush(LHASH_OF(type) *lh) \ { \ OPENSSL_LH_flush((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline type *lh_##type##_insert(LHASH_OF(type) *lh, type *d) \ + static ossl_unused ossl_inline type * \ + lh_##type##_insert(LHASH_OF(type) *lh, type *d) \ { \ return (type *)OPENSSL_LH_insert((OPENSSL_LHASH *)lh, d); \ } \ - static ossl_unused ossl_inline type *lh_##type##_delete(LHASH_OF(type) *lh, const type *d) \ + static ossl_unused ossl_inline type * \ + lh_##type##_delete(LHASH_OF(type) *lh, const type *d) \ { \ return (type *)OPENSSL_LH_delete((OPENSSL_LHASH *)lh, d); \ } \ - static ossl_unused ossl_inline type *lh_##type##_retrieve(LHASH_OF(type) *lh, const type *d) \ + static ossl_unused ossl_inline type * \ + lh_##type##_retrieve(LHASH_OF(type) *lh, const type *d) \ { \ return (type *)OPENSSL_LH_retrieve((OPENSSL_LHASH *)lh, d); \ } \ - static ossl_unused ossl_inline int lh_##type##_error(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline int \ + lh_##type##_error(LHASH_OF(type) *lh) \ { \ return OPENSSL_LH_error((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline unsigned long lh_##type##_num_items(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline unsigned long \ + lh_##type##_num_items(LHASH_OF(type) *lh) \ { \ return OPENSSL_LH_num_items((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline void lh_##type##_node_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + static ossl_unused ossl_inline unsigned long \ + lh_##type##_get_down_load(LHASH_OF(type) *lh) \ { \ - OPENSSL_LH_node_stats_bio((const OPENSSL_LHASH *)lh, out); \ + return OPENSSL_LH_get_down_load((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline void lh_##type##_node_usage_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + static ossl_unused ossl_inline void \ + lh_##type##_set_down_load(LHASH_OF(type) *lh, unsigned long dl) \ { \ - OPENSSL_LH_node_usage_stats_bio((const OPENSSL_LHASH *)lh, out); \ + OPENSSL_LH_set_down_load((OPENSSL_LHASH *)lh, dl); \ } \ - static ossl_unused ossl_inline void lh_##type##_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall_thunk(void *node, OPENSSL_LH_DOALL_FUNC doall) \ { \ - OPENSSL_LH_stats_bio((const OPENSSL_LHASH *)lh, out); \ + void (*doall_conv)(type *) = (void (*)(type *))doall; \ + doall_conv((type *)node); \ } \ - static ossl_unused ossl_inline unsigned long lh_##type##_get_down_load(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall_arg_thunk(void *node, void *arg, OPENSSL_LH_DOALL_FUNCARG doall) \ { \ - return OPENSSL_LH_get_down_load((OPENSSL_LHASH *)lh); \ + void (*doall_conv)(type *, void *) = (void (*)(type *, void *))doall; \ + doall_conv((type *)node, arg); \ } \ - static ossl_unused ossl_inline void lh_##type##_set_down_load(LHASH_OF(type) *lh, unsigned long dl) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall(LHASH_OF(type) *lh, void (*doall)(type *)) \ { \ - OPENSSL_LH_set_down_load((OPENSSL_LHASH *)lh, dl); \ + OPENSSL_LH_doall((OPENSSL_LHASH *)lh, (OPENSSL_LH_DOALL_FUNC)doall); \ } \ - static ossl_unused ossl_inline void lh_##type##_doall(LHASH_OF(type) *lh, \ - void (*doall)(type *)) \ + static ossl_unused ossl_inline LHASH_OF(type) * \ + lh_##type##_new(unsigned long (*hfn)(const type *), \ + int (*cfn)(const type *, const type *)) \ { \ - OPENSSL_LH_doall((OPENSSL_LHASH *)lh, (OPENSSL_LH_DOALL_FUNC)doall); \ + return (LHASH_OF(type) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new((OPENSSL_LH_HASHFUNC)hfn, (OPENSSL_LH_COMPFUNC)cfn), \ + lh_##type##_hfn_thunk, lh_##type##_cfn_thunk, \ + lh_##type##_doall_thunk, \ + lh_##type##_doall_arg_thunk); \ } \ - static ossl_unused ossl_inline void lh_##type##_doall_arg(LHASH_OF(type) *lh, \ - void (*doallarg)(type *, void *), \ - void *arg) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall_arg(LHASH_OF(type) *lh, \ + void (*doallarg)(type *, void *), void *arg) \ { \ OPENSSL_LH_doall_arg((OPENSSL_LHASH *)lh, \ (OPENSSL_LH_DOALL_FUNCARG)doallarg, arg); \ } \ LHASH_OF(type) +# define DEFINE_LHASH_OF(type) \ + DEFINE_LHASH_OF_EX(type); \ + DEFINE_LHASH_OF_DEPRECATED(type) \ + LHASH_OF(type) + #define IMPLEMENT_LHASH_DOALL_ARG_CONST(type, argtype) \ int_implement_lhash_doall(type, argtype, const type) @@ -240,17 +341,26 @@ void OPENSSL_LH_node_usage_stats_bio(const OPENSSL_LHASH *lh, BIO *out); int_implement_lhash_doall(type, argtype, type) #define int_implement_lhash_doall(type, argtype, cbargtype) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall_##argtype##_thunk(void *node, void *arg, OPENSSL_LH_DOALL_FUNCARG fn) \ + { \ + void (*fn_conv)(cbargtype *, argtype *) = (void (*)(cbargtype *, argtype *))fn; \ + fn_conv((cbargtype *)node, (argtype *)arg); \ + } \ static ossl_unused ossl_inline void \ lh_##type##_doall_##argtype(LHASH_OF(type) *lh, \ void (*fn)(cbargtype *, argtype *), \ argtype *arg) \ { \ - OPENSSL_LH_doall_arg((OPENSSL_LHASH *)lh, (OPENSSL_LH_DOALL_FUNCARG)fn, (void *)arg); \ + OPENSSL_LH_doall_arg_thunk((OPENSSL_LHASH *)lh, \ + lh_##type##_doall_##argtype##_thunk, \ + (OPENSSL_LH_DOALL_FUNCARG)fn, \ + (void *)arg); \ } \ LHASH_OF(type) DEFINE_LHASH_OF_INTERNAL(OPENSSL_STRING); -#define lh_OPENSSL_STRING_new(hfn, cmp) ((LHASH_OF(OPENSSL_STRING) *)OPENSSL_LH_new(ossl_check_OPENSSL_STRING_lh_hashfunc_type(hfn), ossl_check_OPENSSL_STRING_lh_compfunc_type(cmp))) +#define lh_OPENSSL_STRING_new(hfn, cmp) ((LHASH_OF(OPENSSL_STRING) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new(ossl_check_OPENSSL_STRING_lh_hashfunc_type(hfn), ossl_check_OPENSSL_STRING_lh_compfunc_type(cmp)), lh_OPENSSL_STRING_hash_thunk, lh_OPENSSL_STRING_comp_thunk, lh_OPENSSL_STRING_doall_thunk, lh_OPENSSL_STRING_doall_arg_thunk)) #define lh_OPENSSL_STRING_free(lh) OPENSSL_LH_free(ossl_check_OPENSSL_STRING_lh_type(lh)) #define lh_OPENSSL_STRING_flush(lh) OPENSSL_LH_flush(ossl_check_OPENSSL_STRING_lh_type(lh)) #define lh_OPENSSL_STRING_insert(lh, ptr) ((OPENSSL_STRING *)OPENSSL_LH_insert(ossl_check_OPENSSL_STRING_lh_type(lh), ossl_check_OPENSSL_STRING_lh_plain_type(ptr))) @@ -265,7 +375,7 @@ DEFINE_LHASH_OF_INTERNAL(OPENSSL_STRING); #define lh_OPENSSL_STRING_set_down_load(lh, dl) OPENSSL_LH_set_down_load(ossl_check_OPENSSL_STRING_lh_type(lh), dl) #define lh_OPENSSL_STRING_doall(lh, dfn) OPENSSL_LH_doall(ossl_check_OPENSSL_STRING_lh_type(lh), ossl_check_OPENSSL_STRING_lh_doallfunc_type(dfn)) DEFINE_LHASH_OF_INTERNAL(OPENSSL_CSTRING); -#define lh_OPENSSL_CSTRING_new(hfn, cmp) ((LHASH_OF(OPENSSL_CSTRING) *)OPENSSL_LH_new(ossl_check_OPENSSL_CSTRING_lh_hashfunc_type(hfn), ossl_check_OPENSSL_CSTRING_lh_compfunc_type(cmp))) +#define lh_OPENSSL_CSTRING_new(hfn, cmp) ((LHASH_OF(OPENSSL_CSTRING) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new(ossl_check_OPENSSL_CSTRING_lh_hashfunc_type(hfn), ossl_check_OPENSSL_CSTRING_lh_compfunc_type(cmp)), lh_OPENSSL_CSTRING_hash_thunk, lh_OPENSSL_CSTRING_comp_thunk, lh_OPENSSL_CSTRING_doall_thunk, lh_OPENSSL_CSTRING_doall_arg_thunk)) #define lh_OPENSSL_CSTRING_free(lh) OPENSSL_LH_free(ossl_check_OPENSSL_CSTRING_lh_type(lh)) #define lh_OPENSSL_CSTRING_flush(lh) OPENSSL_LH_flush(ossl_check_OPENSSL_CSTRING_lh_type(lh)) #define lh_OPENSSL_CSTRING_insert(lh, ptr) ((OPENSSL_CSTRING *)OPENSSL_LH_insert(ossl_check_OPENSSL_CSTRING_lh_type(lh), ossl_check_OPENSSL_CSTRING_lh_plain_type(ptr))) diff --git a/deps/openssl/config/archs/VC-WIN64A/no-asm/include/openssl/opensslv.h b/deps/openssl/config/archs/VC-WIN64A/no-asm/include/openssl/opensslv.h index 94f44daf376f8e..a26d4e609af1b7 100644 --- a/deps/openssl/config/archs/VC-WIN64A/no-asm/include/openssl/opensslv.h +++ b/deps/openssl/config/archs/VC-WIN64A/no-asm/include/openssl/opensslv.h @@ -28,8 +28,8 @@ extern "C" { * These macros express version number MAJOR.MINOR.PATCH exactly */ # define OPENSSL_VERSION_MAJOR 3 -# define OPENSSL_VERSION_MINOR 0 -# define OPENSSL_VERSION_PATCH 17 +# define OPENSSL_VERSION_MINOR 5 +# define OPENSSL_VERSION_PATCH 1 /* * Additional version information @@ -74,8 +74,8 @@ extern "C" { * longer variant with OPENSSL_VERSION_PRE_RELEASE_STR and * OPENSSL_VERSION_BUILD_METADATA_STR appended. */ -# define OPENSSL_VERSION_STR "3.0.17" -# define OPENSSL_FULL_VERSION_STR "3.0.17" +# define OPENSSL_VERSION_STR "3.5.1" +# define OPENSSL_FULL_VERSION_STR "3.5.1" /* * SECTION 3: ADDITIONAL METADATA @@ -88,7 +88,7 @@ extern "C" { * SECTION 4: BACKWARD COMPATIBILITY */ -# define OPENSSL_VERSION_TEXT "OpenSSL 3.0.17 1 Jul 2025" +# define OPENSSL_VERSION_TEXT "OpenSSL 3.5.1 1 Jul 2025" /* Synthesize OPENSSL_VERSION_NUMBER with the layout 0xMNN00PPSL */ # ifdef OPENSSL_VERSION_PRE_RELEASE diff --git a/deps/openssl/config/archs/VC-WIN64A/no-asm/include/openssl/pkcs12.h b/deps/openssl/config/archs/VC-WIN64A/no-asm/include/openssl/pkcs12.h index 80369818c8ecdc..35d04f039366ce 100644 --- a/deps/openssl/config/archs/VC-WIN64A/no-asm/include/openssl/pkcs12.h +++ b/deps/openssl/config/archs/VC-WIN64A/no-asm/include/openssl/pkcs12.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by makefile from include/openssl/pkcs12.h.in * - * Copyright 1999-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1999-2024 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -25,6 +25,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -41,6 +44,7 @@ extern "C" { # define PKCS12_MAC_KEY_LENGTH 20 +/* The macro is expected to be used only internally. Kept for backwards compatibility. */ # define PKCS12_SALT_LEN 8 /* It's not clear if these are actually needed... */ @@ -130,7 +134,9 @@ int PKCS12_SAFEBAG_get_bag_nid(const PKCS12_SAFEBAG *bag); const ASN1_TYPE *PKCS12_SAFEBAG_get0_bag_obj(const PKCS12_SAFEBAG *bag); const ASN1_OBJECT *PKCS12_SAFEBAG_get0_bag_type(const PKCS12_SAFEBAG *bag); +X509 *PKCS12_SAFEBAG_get1_cert_ex(const PKCS12_SAFEBAG *bag, OSSL_LIB_CTX *libctx, const char *propq); X509 *PKCS12_SAFEBAG_get1_cert(const PKCS12_SAFEBAG *bag); +X509_CRL *PKCS12_SAFEBAG_get1_crl_ex(const PKCS12_SAFEBAG *bag, OSSL_LIB_CTX *libctx, const char *propq); X509_CRL *PKCS12_SAFEBAG_get1_crl(const PKCS12_SAFEBAG *bag); const STACK_OF(PKCS12_SAFEBAG) * PKCS12_SAFEBAG_get0_safes(const PKCS12_SAFEBAG *bag); @@ -218,6 +224,7 @@ ASN1_TYPE *PKCS12_get_attr_gen(const STACK_OF(X509_ATTRIBUTE) *attrs, char *PKCS12_get_friendlyname(PKCS12_SAFEBAG *bag); const STACK_OF(X509_ATTRIBUTE) * PKCS12_SAFEBAG_get0_attrs(const PKCS12_SAFEBAG *bag); +void PKCS12_SAFEBAG_set0_attrs(PKCS12_SAFEBAG *bag, STACK_OF(X509_ATTRIBUTE) *attrs); unsigned char *PKCS12_pbe_crypt(const X509_ALGOR *algor, const char *pass, int passlen, const unsigned char *in, int inlen, @@ -285,6 +292,9 @@ int PKCS12_verify_mac(PKCS12 *p12, const char *pass, int passlen); int PKCS12_set_mac(PKCS12 *p12, const char *pass, int passlen, unsigned char *salt, int saltlen, int iter, const EVP_MD *md_type); +int PKCS12_set_pbmac1_pbkdf2(PKCS12 *p12, const char *pass, int passlen, + unsigned char *salt, int saltlen, int iter, + const EVP_MD *md_type, const char *prf_md_name); int PKCS12_setup_mac(PKCS12 *p12, int iter, unsigned char *salt, int saltlen, const EVP_MD *md_type); unsigned char *OPENSSL_asc2uni(const char *asc, int asclen, @@ -305,6 +315,7 @@ DECLARE_ASN1_ITEM(PKCS12_AUTHSAFES) void PKCS12_PBE_add(void); int PKCS12_parse(PKCS12 *p12, const char *pass, EVP_PKEY **pkey, X509 **cert, STACK_OF(X509) **ca); +typedef int PKCS12_create_cb(PKCS12_SAFEBAG *bag, void *cbarg); PKCS12 *PKCS12_create(const char *pass, const char *name, EVP_PKEY *pkey, X509 *cert, STACK_OF(X509) *ca, int nid_key, int nid_cert, int iter, int mac_iter, int keytype); @@ -312,6 +323,11 @@ PKCS12 *PKCS12_create_ex(const char *pass, const char *name, EVP_PKEY *pkey, X509 *cert, STACK_OF(X509) *ca, int nid_key, int nid_cert, int iter, int mac_iter, int keytype, OSSL_LIB_CTX *ctx, const char *propq); +PKCS12 *PKCS12_create_ex2(const char *pass, const char *name, EVP_PKEY *pkey, + X509 *cert, STACK_OF(X509) *ca, int nid_key, int nid_cert, + int iter, int mac_iter, int keytype, + OSSL_LIB_CTX *ctx, const char *propq, + PKCS12_create_cb *cb, void *cbarg); PKCS12_SAFEBAG *PKCS12_add_cert(STACK_OF(PKCS12_SAFEBAG) **pbags, X509 *cert); PKCS12_SAFEBAG *PKCS12_add_key(STACK_OF(PKCS12_SAFEBAG) **pbags, diff --git a/deps/openssl/config/archs/VC-WIN64A/no-asm/include/openssl/pkcs7.h b/deps/openssl/config/archs/VC-WIN64A/no-asm/include/openssl/pkcs7.h index 0a95a93e59e262..641d9411a47354 100644 --- a/deps/openssl/config/archs/VC-WIN64A/no-asm/include/openssl/pkcs7.h +++ b/deps/openssl/config/archs/VC-WIN64A/no-asm/include/openssl/pkcs7.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by makefile from include/openssl/pkcs7.h.in * - * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -28,6 +28,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -131,8 +134,8 @@ SKM_DEFINE_STACK_OF_INTERNAL(PKCS7_RECIP_INFO, PKCS7_RECIP_INFO, PKCS7_RECIP_INF typedef struct pkcs7_signed_st { ASN1_INTEGER *version; /* version 1 */ STACK_OF(X509_ALGOR) *md_algs; /* md used */ - STACK_OF(X509) *cert; /* [ 0 ] */ - STACK_OF(X509_CRL) *crl; /* [ 1 ] */ + STACK_OF(X509) *cert; /* [ 0 ] */ /* name should be 'certificates' */ + STACK_OF(X509_CRL) *crl; /* [ 1 ] */ /* name should be 'crls' */ STACK_OF(PKCS7_SIGNER_INFO) *signer_info; struct pkcs7_st *contents; } PKCS7_SIGNED; @@ -158,8 +161,8 @@ typedef struct pkcs7_enveloped_st { typedef struct pkcs7_signedandenveloped_st { ASN1_INTEGER *version; /* version 1 */ STACK_OF(X509_ALGOR) *md_algs; /* md used */ - STACK_OF(X509) *cert; /* [ 0 ] */ - STACK_OF(X509_CRL) *crl; /* [ 1 ] */ + STACK_OF(X509) *cert; /* [ 0 ] */ /* name should be 'certificates' */ + STACK_OF(X509_CRL) *crl; /* [ 1 ] */ /* name should be 'crls' */ STACK_OF(PKCS7_SIGNER_INFO) *signer_info; PKCS7_ENC_CONTENT *enc_data; STACK_OF(PKCS7_RECIP_INFO) *recipientinfo; @@ -200,7 +203,7 @@ typedef struct pkcs7_st { /* NID_pkcs7_data */ ASN1_OCTET_STRING *data; /* NID_pkcs7_signed */ - PKCS7_SIGNED *sign; + PKCS7_SIGNED *sign; /* field name 'signed' would clash with C keyword */ /* NID_pkcs7_enveloped */ PKCS7_ENVELOPE *enveloped; /* NID_pkcs7_signedAndEnveloped */ @@ -341,13 +344,13 @@ int PKCS7_SIGNER_INFO_set(PKCS7_SIGNER_INFO *p7i, X509 *x509, EVP_PKEY *pkey, const EVP_MD *dgst); int PKCS7_SIGNER_INFO_sign(PKCS7_SIGNER_INFO *si); int PKCS7_add_signer(PKCS7 *p7, PKCS7_SIGNER_INFO *p7i); -int PKCS7_add_certificate(PKCS7 *p7, X509 *x509); -int PKCS7_add_crl(PKCS7 *p7, X509_CRL *x509); +int PKCS7_add_certificate(PKCS7 *p7, X509 *cert); +int PKCS7_add_crl(PKCS7 *p7, X509_CRL *crl); int PKCS7_content_new(PKCS7 *p7, int nid); int PKCS7_dataVerify(X509_STORE *cert_store, X509_STORE_CTX *ctx, BIO *bio, PKCS7 *p7, PKCS7_SIGNER_INFO *si); int PKCS7_signatureVerify(BIO *bio, PKCS7 *p7, PKCS7_SIGNER_INFO *si, - X509 *x509); + X509 *signer); BIO *PKCS7_dataInit(PKCS7 *p7, BIO *bio); int PKCS7_dataFinal(PKCS7 *p7, BIO *bio); diff --git a/deps/openssl/config/archs/VC-WIN64A/no-asm/include/openssl/ssl.h b/deps/openssl/config/archs/VC-WIN64A/no-asm/include/openssl/ssl.h index 7e9ca09bbf39f0..6396681867d76c 100644 --- a/deps/openssl/config/archs/VC-WIN64A/no-asm/include/openssl/ssl.h +++ b/deps/openssl/config/archs/VC-WIN64A/no-asm/include/openssl/ssl.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by makefile from include/openssl/ssl.h.in * - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved * Copyright 2005 Nokia. All rights reserved. * @@ -24,6 +24,7 @@ # endif # include +# include # include # include # include @@ -42,6 +43,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -231,10 +235,8 @@ typedef struct ssl_cipher_st SSL_CIPHER; typedef struct ssl_session_st SSL_SESSION; typedef struct tls_sigalgs_st TLS_SIGALGS; typedef struct ssl_conf_ctx_st SSL_CONF_CTX; -typedef struct ssl_comp_st SSL_COMP; STACK_OF(SSL_CIPHER); -STACK_OF(SSL_COMP); /* SRTP protection profiles for use with the use_srtp extension (RFC 5764)*/ typedef struct srtp_protection_profile_st { @@ -278,28 +280,31 @@ typedef int (*tls_session_secret_cb_fn)(SSL *s, void *secret, int *secret_len, /* Extension context codes */ /* This extension is only allowed in TLS */ -#define SSL_EXT_TLS_ONLY 0x0001 +#define SSL_EXT_TLS_ONLY 0x00001 /* This extension is only allowed in DTLS */ -#define SSL_EXT_DTLS_ONLY 0x0002 +#define SSL_EXT_DTLS_ONLY 0x00002 /* Some extensions may be allowed in DTLS but we don't implement them for it */ -#define SSL_EXT_TLS_IMPLEMENTATION_ONLY 0x0004 +#define SSL_EXT_TLS_IMPLEMENTATION_ONLY 0x00004 /* Most extensions are not defined for SSLv3 but EXT_TYPE_renegotiate is */ -#define SSL_EXT_SSL3_ALLOWED 0x0008 +#define SSL_EXT_SSL3_ALLOWED 0x00008 /* Extension is only defined for TLS1.2 and below */ -#define SSL_EXT_TLS1_2_AND_BELOW_ONLY 0x0010 +#define SSL_EXT_TLS1_2_AND_BELOW_ONLY 0x00010 /* Extension is only defined for TLS1.3 and above */ -#define SSL_EXT_TLS1_3_ONLY 0x0020 +#define SSL_EXT_TLS1_3_ONLY 0x00020 /* Ignore this extension during parsing if we are resuming */ -#define SSL_EXT_IGNORE_ON_RESUMPTION 0x0040 -#define SSL_EXT_CLIENT_HELLO 0x0080 +#define SSL_EXT_IGNORE_ON_RESUMPTION 0x00040 +#define SSL_EXT_CLIENT_HELLO 0x00080 /* Really means TLS1.2 or below */ -#define SSL_EXT_TLS1_2_SERVER_HELLO 0x0100 -#define SSL_EXT_TLS1_3_SERVER_HELLO 0x0200 -#define SSL_EXT_TLS1_3_ENCRYPTED_EXTENSIONS 0x0400 -#define SSL_EXT_TLS1_3_HELLO_RETRY_REQUEST 0x0800 -#define SSL_EXT_TLS1_3_CERTIFICATE 0x1000 -#define SSL_EXT_TLS1_3_NEW_SESSION_TICKET 0x2000 -#define SSL_EXT_TLS1_3_CERTIFICATE_REQUEST 0x4000 +#define SSL_EXT_TLS1_2_SERVER_HELLO 0x00100 +#define SSL_EXT_TLS1_3_SERVER_HELLO 0x00200 +#define SSL_EXT_TLS1_3_ENCRYPTED_EXTENSIONS 0x00400 +#define SSL_EXT_TLS1_3_HELLO_RETRY_REQUEST 0x00800 +#define SSL_EXT_TLS1_3_CERTIFICATE 0x01000 +#define SSL_EXT_TLS1_3_NEW_SESSION_TICKET 0x02000 +#define SSL_EXT_TLS1_3_CERTIFICATE_REQUEST 0x04000 +#define SSL_EXT_TLS1_3_CERTIFICATE_COMPRESSION 0x08000 +/* When sending a raw public key in a certificate message */ +#define SSL_EXT_TLS1_3_RAW_PUBLIC_KEY 0x10000 /* Typedefs for handling custom extensions */ @@ -404,7 +409,7 @@ typedef int (*SSL_async_callback_fn)(SSL *s, void *arg); */ # define SSL_OP_CIPHER_SERVER_PREFERENCE SSL_OP_BIT(22) /* - * If set, a server will allow a client to issue a SSLv3.0 version + * If set, a server will allow a client to issue an SSLv3.0 version * number as latest version supported in the premaster secret, even when * TLSv1.0 (version 3.1) was announced in the client hello. Normally * this is forbidden to prevent version rollback attacks. @@ -430,6 +435,19 @@ typedef int (*SSL_async_callback_fn)(SSL *s, void *arg); * interoperability with CryptoPro CSP 3.x */ # define SSL_OP_CRYPTOPRO_TLSEXT_BUG SSL_OP_BIT(31) +/* + * Disable RFC8879 certificate compression + * SSL_OP_NO_TX_CERTIFICATE_COMPRESSION: don't send compressed certificates, + * and ignore the extension when received. + * SSL_OP_NO_RX_CERTIFICATE_COMPRESSION: don't send the extension, and + * subsequently indicating that receiving is not supported + */ +# define SSL_OP_NO_TX_CERTIFICATE_COMPRESSION SSL_OP_BIT(32) +# define SSL_OP_NO_RX_CERTIFICATE_COMPRESSION SSL_OP_BIT(33) + /* Enable KTLS TX zerocopy on Linux */ +# define SSL_OP_ENABLE_KTLS_TX_ZEROCOPY_SENDFILE SSL_OP_BIT(34) + +#define SSL_OP_PREFER_NO_DHE_KEX SSL_OP_BIT(35) /* * Option "collections." @@ -574,6 +592,8 @@ typedef int (*SSL_async_callback_fn)(SSL *s, void *arg); # define CERT_PKEY_CERT_TYPE 0x400 /* Cert chain suitable to Suite B */ # define CERT_PKEY_SUITEB 0x800 +/* Cert pkey valid for raw public key use */ +# define CERT_PKEY_RPK 0x1000 # define SSL_CONF_FLAG_CMDLINE 0x1 # define SSL_CONF_FLAG_FILE 0x2 @@ -965,6 +985,7 @@ uint32_t SSL_get_recv_max_early_data(const SSL *s); # include /* This is mostly sslv3 with a few tweaks */ # include /* Datagram TLS */ # include /* Support for the use_srtp extension */ +# include #ifdef __cplusplus extern "C" { @@ -1000,32 +1021,6 @@ SKM_DEFINE_STACK_OF_INTERNAL(SSL_CIPHER, const SSL_CIPHER, SSL_CIPHER) #define sk_SSL_CIPHER_dup(sk) ((STACK_OF(SSL_CIPHER) *)OPENSSL_sk_dup(ossl_check_const_SSL_CIPHER_sk_type(sk))) #define sk_SSL_CIPHER_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(SSL_CIPHER) *)OPENSSL_sk_deep_copy(ossl_check_const_SSL_CIPHER_sk_type(sk), ossl_check_SSL_CIPHER_copyfunc_type(copyfunc), ossl_check_SSL_CIPHER_freefunc_type(freefunc))) #define sk_SSL_CIPHER_set_cmp_func(sk, cmp) ((sk_SSL_CIPHER_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_SSL_CIPHER_sk_type(sk), ossl_check_SSL_CIPHER_compfunc_type(cmp))) -SKM_DEFINE_STACK_OF_INTERNAL(SSL_COMP, SSL_COMP, SSL_COMP) -#define sk_SSL_COMP_num(sk) OPENSSL_sk_num(ossl_check_const_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_value(sk, idx) ((SSL_COMP *)OPENSSL_sk_value(ossl_check_const_SSL_COMP_sk_type(sk), (idx))) -#define sk_SSL_COMP_new(cmp) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new(ossl_check_SSL_COMP_compfunc_type(cmp))) -#define sk_SSL_COMP_new_null() ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new_null()) -#define sk_SSL_COMP_new_reserve(cmp, n) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new_reserve(ossl_check_SSL_COMP_compfunc_type(cmp), (n))) -#define sk_SSL_COMP_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_SSL_COMP_sk_type(sk), (n)) -#define sk_SSL_COMP_free(sk) OPENSSL_sk_free(ossl_check_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_zero(sk) OPENSSL_sk_zero(ossl_check_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_delete(sk, i) ((SSL_COMP *)OPENSSL_sk_delete(ossl_check_SSL_COMP_sk_type(sk), (i))) -#define sk_SSL_COMP_delete_ptr(sk, ptr) ((SSL_COMP *)OPENSSL_sk_delete_ptr(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr))) -#define sk_SSL_COMP_push(sk, ptr) OPENSSL_sk_push(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) -#define sk_SSL_COMP_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) -#define sk_SSL_COMP_pop(sk) ((SSL_COMP *)OPENSSL_sk_pop(ossl_check_SSL_COMP_sk_type(sk))) -#define sk_SSL_COMP_shift(sk) ((SSL_COMP *)OPENSSL_sk_shift(ossl_check_SSL_COMP_sk_type(sk))) -#define sk_SSL_COMP_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_SSL_COMP_sk_type(sk),ossl_check_SSL_COMP_freefunc_type(freefunc)) -#define sk_SSL_COMP_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr), (idx)) -#define sk_SSL_COMP_set(sk, idx, ptr) ((SSL_COMP *)OPENSSL_sk_set(ossl_check_SSL_COMP_sk_type(sk), (idx), ossl_check_SSL_COMP_type(ptr))) -#define sk_SSL_COMP_find(sk, ptr) OPENSSL_sk_find(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) -#define sk_SSL_COMP_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) -#define sk_SSL_COMP_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr), pnum) -#define sk_SSL_COMP_sort(sk) OPENSSL_sk_sort(ossl_check_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_dup(sk) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_dup(ossl_check_const_SSL_COMP_sk_type(sk))) -#define sk_SSL_COMP_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_deep_copy(ossl_check_const_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_copyfunc_type(copyfunc), ossl_check_SSL_COMP_freefunc_type(freefunc))) -#define sk_SSL_COMP_set_cmp_func(sk, cmp) ((sk_SSL_COMP_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_compfunc_type(cmp))) /* compatibility */ @@ -1066,6 +1061,7 @@ typedef enum { DTLS_ST_CR_HELLO_VERIFY_REQUEST, TLS_ST_CR_SRVR_HELLO, TLS_ST_CR_CERT, + TLS_ST_CR_COMP_CERT, TLS_ST_CR_CERT_STATUS, TLS_ST_CR_KEY_EXCH, TLS_ST_CR_CERT_REQ, @@ -1075,6 +1071,7 @@ typedef enum { TLS_ST_CR_FINISHED, TLS_ST_CW_CLNT_HELLO, TLS_ST_CW_CERT, + TLS_ST_CW_COMP_CERT, TLS_ST_CW_KEY_EXCH, TLS_ST_CW_CERT_VRFY, TLS_ST_CW_CHANGE, @@ -1085,10 +1082,12 @@ typedef enum { DTLS_ST_SW_HELLO_VERIFY_REQUEST, TLS_ST_SW_SRVR_HELLO, TLS_ST_SW_CERT, + TLS_ST_SW_COMP_CERT, TLS_ST_SW_KEY_EXCH, TLS_ST_SW_CERT_REQ, TLS_ST_SW_SRVR_DONE, TLS_ST_SR_CERT, + TLS_ST_SR_COMP_CERT, TLS_ST_SR_KEY_EXCH, TLS_ST_SR_CERT_VRFY, TLS_ST_SR_NEXT_PROTO, @@ -1380,9 +1379,13 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) # define SSL_CTRL_GET_SIGNATURE_NID 132 # define SSL_CTRL_GET_TMP_KEY 133 # define SSL_CTRL_GET_NEGOTIATED_GROUP 134 +# define SSL_CTRL_GET_IANA_GROUPS 135 # define SSL_CTRL_SET_RETRY_VERIFY 136 # define SSL_CTRL_GET_VERIFY_CERT_STORE 137 # define SSL_CTRL_GET_CHAIN_CERT_STORE 138 +# define SSL_CTRL_GET0_IMPLEMENTED_GROUPS 139 +# define SSL_CTRL_GET_SIGNATURE_NAME 140 +# define SSL_CTRL_GET_PEER_SIGNATURE_NAME 141 # define SSL_CERT_SET_FIRST 1 # define SSL_CERT_SET_NEXT 2 # define SSL_CERT_SET_SERVER 3 @@ -1485,10 +1488,15 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) # define SSL_get1_groups(s, glist) \ SSL_ctrl(s,SSL_CTRL_GET_GROUPS,0,(int*)(glist)) +# define SSL_get0_iana_groups(s, plst) \ + SSL_ctrl(s,SSL_CTRL_GET_IANA_GROUPS,0,(uint16_t **)(plst)) # define SSL_CTX_set1_groups(ctx, glist, glistlen) \ SSL_CTX_ctrl(ctx,SSL_CTRL_SET_GROUPS,glistlen,(int *)(glist)) # define SSL_CTX_set1_groups_list(ctx, s) \ SSL_CTX_ctrl(ctx,SSL_CTRL_SET_GROUPS_LIST,0,(char *)(s)) +# define SSL_CTX_get0_implemented_groups(ctx, all, out) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_GET0_IMPLEMENTED_GROUPS, all, \ + (STACK_OF(OPENSSL_CSTRING) *)(out)) # define SSL_set1_groups(s, glist, glistlen) \ SSL_ctrl(s,SSL_CTRL_SET_GROUPS,glistlen,(char *)(glist)) # define SSL_set1_groups_list(s, str) \ @@ -1520,8 +1528,12 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) (char *)(clist)) # define SSL_set1_client_certificate_types(s, clist, clistlen) \ SSL_ctrl(s,SSL_CTRL_SET_CLIENT_CERT_TYPES,clistlen,(char *)(clist)) +# define SSL_get0_signature_name(s, str) \ + SSL_ctrl(s,SSL_CTRL_GET_SIGNATURE_NAME,0,(1?(str):(const char **)NULL)) # define SSL_get_signature_nid(s, pn) \ SSL_ctrl(s,SSL_CTRL_GET_SIGNATURE_NID,0,pn) +# define SSL_get0_peer_signature_name(s, str) \ + SSL_ctrl(s,SSL_CTRL_GET_PEER_SIGNATURE_NAME,0,(1?(str):(const char **)NULL)) # define SSL_get_peer_signature_nid(s, pn) \ SSL_ctrl(s,SSL_CTRL_GET_PEER_SIGNATURE_NID,0,pn) # define SSL_get_peer_tmp_key(s, pk) \ @@ -1549,6 +1561,7 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) # define SSL_get_max_proto_version(s) \ SSL_ctrl(s, SSL_CTRL_GET_MAX_PROTO_VERSION, 0, NULL) +const char *SSL_get0_group_name(SSL *s); const char *SSL_group_to_name(SSL *s, int id); /* Backwards compatibility, original 1.1.0 names */ @@ -1613,7 +1626,11 @@ void SSL_CTX_set1_cert_store(SSL_CTX *, X509_STORE *); __owur int SSL_want(const SSL *s); __owur int SSL_clear(SSL *s); +#ifndef OPENSSL_NO_DEPRECATED_3_4 +OSSL_DEPRECATEDIN_3_4_FOR("not Y2038-safe, replace with SSL_CTX_flush_sessions_ex()") void SSL_CTX_flush_sessions(SSL_CTX *ctx, long tm); +#endif +void SSL_CTX_flush_sessions_ex(SSL_CTX *ctx, time_t tm); __owur const SSL_CIPHER *SSL_get_current_cipher(const SSL *s); __owur const SSL_CIPHER *SSL_get_pending_cipher(const SSL *s); @@ -1725,13 +1742,21 @@ __owur const char *SSL_state_string(const SSL *s); __owur const char *SSL_rstate_string(const SSL *s); __owur const char *SSL_state_string_long(const SSL *s); __owur const char *SSL_rstate_string_long(const SSL *s); + +#ifndef OPENSSL_NO_DEPRECATED_3_4 +OSSL_DEPRECATEDIN_3_4_FOR("not Y2038-safe, replace with SSL_SESSION_get_time_ex()") __owur long SSL_SESSION_get_time(const SSL_SESSION *s); +OSSL_DEPRECATEDIN_3_4_FOR("not Y2038-safe, replace with SSL_SESSION_set_time_ex()") __owur long SSL_SESSION_set_time(SSL_SESSION *s, long t); +#endif __owur long SSL_SESSION_get_timeout(const SSL_SESSION *s); __owur long SSL_SESSION_set_timeout(SSL_SESSION *s, long t); __owur int SSL_SESSION_get_protocol_version(const SSL_SESSION *s); __owur int SSL_SESSION_set_protocol_version(SSL_SESSION *s, int version); +__owur time_t SSL_SESSION_get_time_ex(const SSL_SESSION *s); +__owur time_t SSL_SESSION_set_time_ex(SSL_SESSION *s, time_t t); + __owur const char *SSL_SESSION_get0_hostname(const SSL_SESSION *s); __owur int SSL_SESSION_set1_hostname(SSL_SESSION *s, const char *hostname); void SSL_SESSION_get0_alpn_selected(const SSL_SESSION *s, @@ -1783,6 +1808,9 @@ __owur int SSL_has_matching_session_id(const SSL *s, unsigned int id_len); SSL_SESSION *d2i_SSL_SESSION(SSL_SESSION **a, const unsigned char **pp, long length); +SSL_SESSION *d2i_SSL_SESSION_ex(SSL_SESSION **a, const unsigned char **pp, + long length, OSSL_LIB_CTX *libctx, + const char *propq); # ifdef OPENSSL_X509_H __owur X509 *SSL_get0_peer_certificate(const SSL *s); @@ -1840,6 +1868,8 @@ __owur int SSL_CTX_set_session_id_context(SSL_CTX *ctx, SSL *SSL_new(SSL_CTX *ctx); int SSL_up_ref(SSL *s); int SSL_is_dtls(const SSL *s); +int SSL_is_tls(const SSL *s); +int SSL_is_quic(const SSL *s); __owur int SSL_set_session_id_context(SSL *ssl, const unsigned char *sid_ctx, unsigned int sid_ctx_len); @@ -1848,8 +1878,8 @@ __owur int SSL_set_purpose(SSL *ssl, int purpose); __owur int SSL_CTX_set_trust(SSL_CTX *ctx, int trust); __owur int SSL_set_trust(SSL *ssl, int trust); -__owur int SSL_set1_host(SSL *s, const char *hostname); -__owur int SSL_add1_host(SSL *s, const char *hostname); +__owur int SSL_set1_host(SSL *s, const char *host); +__owur int SSL_add1_host(SSL *s, const char *host); __owur const char *SSL_get0_peername(SSL *s); void SSL_set_hostflags(SSL *s, unsigned int flags); @@ -1924,6 +1954,11 @@ OSSL_DEPRECATEDIN_3_0 __owur char *SSL_get_srp_userinfo(SSL *s); typedef int (*SSL_client_hello_cb_fn) (SSL *s, int *al, void *arg); void SSL_CTX_set_client_hello_cb(SSL_CTX *c, SSL_client_hello_cb_fn cb, void *arg); +typedef int (*SSL_new_pending_conn_cb_fn) (SSL_CTX *ctx, SSL *new_ssl, + void *arg); +void SSL_CTX_set_new_pending_conn_cb(SSL_CTX *c, SSL_new_pending_conn_cb_fn cb, + void *arg); + int SSL_client_hello_isv2(SSL *s); unsigned int SSL_client_hello_get0_legacy_version(SSL *s); size_t SSL_client_hello_get0_random(SSL *s, const unsigned char **out); @@ -1932,6 +1967,8 @@ size_t SSL_client_hello_get0_ciphers(SSL *s, const unsigned char **out); size_t SSL_client_hello_get0_compression_methods(SSL *s, const unsigned char **out); int SSL_client_hello_get1_extensions_present(SSL *s, int **out, size_t *outlen); +int SSL_client_hello_get_extension_order(SSL *s, uint16_t *exts, + size_t *num_exts); int SSL_client_hello_get0_ext(SSL *s, unsigned int type, const unsigned char **out, size_t *outlen); @@ -1978,6 +2015,12 @@ long SSL_callback_ctrl(SSL *, int, void (*)(void)); long SSL_CTX_ctrl(SSL_CTX *ctx, int cmd, long larg, void *parg); long SSL_CTX_callback_ctrl(SSL_CTX *, int, void (*)(void)); +# define SSL_WRITE_FLAG_CONCLUDE (1U << 0) + +__owur int SSL_write_ex2(SSL *s, const void *buf, size_t num, + uint64_t flags, + size_t *written); + # define SSL_EARLY_DATA_NOT_SENT 0 # define SSL_EARLY_DATA_REJECTED 1 # define SSL_EARLY_DATA_ACCEPTED 2 @@ -1986,6 +2029,7 @@ __owur int SSL_get_early_data_status(const SSL *s); __owur int SSL_get_error(const SSL *s, int ret_code); __owur const char *SSL_get_version(const SSL *s); +__owur int SSL_get_handshake_rtt(const SSL *s, uint64_t *rtt); /* This sets the 'default' SSL version that SSL_new() will create */ # ifndef OPENSSL_NO_DEPRECATED_3_0 @@ -2281,6 +2325,8 @@ void SSL_CTX_set_record_padding_callback(SSL_CTX *ctx, void SSL_CTX_set_record_padding_callback_arg(SSL_CTX *ctx, void *arg); void *SSL_CTX_get_record_padding_callback_arg(const SSL_CTX *ctx); int SSL_CTX_set_block_padding(SSL_CTX *ctx, size_t block_size); +int SSL_CTX_set_block_padding_ex(SSL_CTX *ctx, size_t app_block_size, + size_t hs_block_size); int SSL_set_record_padding_callback(SSL *ssl, size_t (*cb) (SSL *ssl, int type, @@ -2288,12 +2334,255 @@ int SSL_set_record_padding_callback(SSL *ssl, void SSL_set_record_padding_callback_arg(SSL *ssl, void *arg); void *SSL_get_record_padding_callback_arg(const SSL *ssl); int SSL_set_block_padding(SSL *ssl, size_t block_size); - +int SSL_set_block_padding_ex(SSL *ssl, size_t app_block_size, + size_t hs_block_size); int SSL_set_num_tickets(SSL *s, size_t num_tickets); size_t SSL_get_num_tickets(const SSL *s); int SSL_CTX_set_num_tickets(SSL_CTX *ctx, size_t num_tickets); size_t SSL_CTX_get_num_tickets(const SSL_CTX *ctx); +/* QUIC support */ +int SSL_handle_events(SSL *s); +__owur int SSL_get_event_timeout(SSL *s, struct timeval *tv, int *is_infinite); +__owur int SSL_get_rpoll_descriptor(SSL *s, BIO_POLL_DESCRIPTOR *desc); +__owur int SSL_get_wpoll_descriptor(SSL *s, BIO_POLL_DESCRIPTOR *desc); +__owur int SSL_net_read_desired(SSL *s); +__owur int SSL_net_write_desired(SSL *s); +__owur int SSL_set_blocking_mode(SSL *s, int blocking); +__owur int SSL_get_blocking_mode(SSL *s); +__owur int SSL_set1_initial_peer_addr(SSL *s, const BIO_ADDR *peer_addr); +__owur SSL *SSL_get0_connection(SSL *s); +__owur int SSL_is_connection(SSL *s); + +__owur int SSL_is_listener(SSL *ssl); +__owur SSL *SSL_get0_listener(SSL *s); +#define SSL_LISTENER_FLAG_NO_VALIDATE (1UL << 1) +__owur SSL *SSL_new_listener(SSL_CTX *ctx, uint64_t flags); +__owur SSL *SSL_new_listener_from(SSL *ssl, uint64_t flags); +__owur SSL *SSL_new_from_listener(SSL *ssl, uint64_t flags); +#define SSL_ACCEPT_CONNECTION_NO_BLOCK (1UL << 0) +__owur SSL *SSL_accept_connection(SSL *ssl, uint64_t flags); +__owur size_t SSL_get_accept_connection_queue_len(SSL *ssl); +__owur int SSL_listen(SSL *ssl); + +__owur int SSL_is_domain(SSL *s); +__owur SSL *SSL_get0_domain(SSL *s); +__owur SSL *SSL_new_domain(SSL_CTX *ctx, uint64_t flags); + +#define SSL_DOMAIN_FLAG_SINGLE_THREAD (1U << 0) +#define SSL_DOMAIN_FLAG_MULTI_THREAD (1U << 1) +#define SSL_DOMAIN_FLAG_THREAD_ASSISTED (1U << 2) +#define SSL_DOMAIN_FLAG_BLOCKING (1U << 3) +#define SSL_DOMAIN_FLAG_LEGACY_BLOCKING (1U << 4) + +__owur int SSL_CTX_set_domain_flags(SSL_CTX *ctx, uint64_t domain_flags); +__owur int SSL_CTX_get_domain_flags(const SSL_CTX *ctx, uint64_t *domain_flags); +__owur int SSL_get_domain_flags(const SSL *ssl, uint64_t *domain_flags); + +#define SSL_STREAM_TYPE_NONE 0 +#define SSL_STREAM_TYPE_READ (1U << 0) +#define SSL_STREAM_TYPE_WRITE (1U << 1) +#define SSL_STREAM_TYPE_BIDI (SSL_STREAM_TYPE_READ | SSL_STREAM_TYPE_WRITE) +__owur int SSL_get_stream_type(SSL *s); + +__owur uint64_t SSL_get_stream_id(SSL *s); +__owur int SSL_is_stream_local(SSL *s); + +#define SSL_DEFAULT_STREAM_MODE_NONE 0 +#define SSL_DEFAULT_STREAM_MODE_AUTO_BIDI 1 +#define SSL_DEFAULT_STREAM_MODE_AUTO_UNI 2 +__owur int SSL_set_default_stream_mode(SSL *s, uint32_t mode); + +#define SSL_STREAM_FLAG_UNI (1U << 0) +#define SSL_STREAM_FLAG_NO_BLOCK (1U << 1) +#define SSL_STREAM_FLAG_ADVANCE (1U << 2) +__owur SSL *SSL_new_stream(SSL *s, uint64_t flags); + +#define SSL_INCOMING_STREAM_POLICY_AUTO 0 +#define SSL_INCOMING_STREAM_POLICY_ACCEPT 1 +#define SSL_INCOMING_STREAM_POLICY_REJECT 2 +__owur int SSL_set_incoming_stream_policy(SSL *s, int policy, uint64_t aec); + +#define SSL_ACCEPT_STREAM_NO_BLOCK (1U << 0) +__owur SSL *SSL_accept_stream(SSL *s, uint64_t flags); +__owur size_t SSL_get_accept_stream_queue_len(SSL *s); + +# ifndef OPENSSL_NO_QUIC +__owur int SSL_inject_net_dgram(SSL *s, const unsigned char *buf, + size_t buf_len, + const BIO_ADDR *peer, + const BIO_ADDR *local); +# endif + +typedef struct ssl_shutdown_ex_args_st { + uint64_t quic_error_code; + const char *quic_reason; +} SSL_SHUTDOWN_EX_ARGS; + +#define SSL_SHUTDOWN_FLAG_RAPID (1U << 0) +#define SSL_SHUTDOWN_FLAG_NO_STREAM_FLUSH (1U << 1) +#define SSL_SHUTDOWN_FLAG_NO_BLOCK (1U << 2) +#define SSL_SHUTDOWN_FLAG_WAIT_PEER (1U << 3) + +__owur int SSL_shutdown_ex(SSL *ssl, uint64_t flags, + const SSL_SHUTDOWN_EX_ARGS *args, + size_t args_len); + +__owur int SSL_stream_conclude(SSL *ssl, uint64_t flags); + +typedef struct ssl_stream_reset_args_st { + uint64_t quic_error_code; +} SSL_STREAM_RESET_ARGS; + +__owur int SSL_stream_reset(SSL *ssl, + const SSL_STREAM_RESET_ARGS *args, + size_t args_len); + +#define SSL_STREAM_STATE_NONE 0 +#define SSL_STREAM_STATE_OK 1 +#define SSL_STREAM_STATE_WRONG_DIR 2 +#define SSL_STREAM_STATE_FINISHED 3 +#define SSL_STREAM_STATE_RESET_LOCAL 4 +#define SSL_STREAM_STATE_RESET_REMOTE 5 +#define SSL_STREAM_STATE_CONN_CLOSED 6 +__owur int SSL_get_stream_read_state(SSL *ssl); +__owur int SSL_get_stream_write_state(SSL *ssl); + +__owur int SSL_get_stream_read_error_code(SSL *ssl, uint64_t *app_error_code); +__owur int SSL_get_stream_write_error_code(SSL *ssl, uint64_t *app_error_code); + +#define SSL_CONN_CLOSE_FLAG_LOCAL (1U << 0) +#define SSL_CONN_CLOSE_FLAG_TRANSPORT (1U << 1) + +typedef struct ssl_conn_close_info_st { + uint64_t error_code, frame_type; + const char *reason; + size_t reason_len; + uint32_t flags; +} SSL_CONN_CLOSE_INFO; + +__owur int SSL_get_conn_close_info(SSL *ssl, + SSL_CONN_CLOSE_INFO *info, + size_t info_len); + +# define SSL_VALUE_CLASS_GENERIC 0 +# define SSL_VALUE_CLASS_FEATURE_REQUEST 1 +# define SSL_VALUE_CLASS_FEATURE_PEER_REQUEST 2 +# define SSL_VALUE_CLASS_FEATURE_NEGOTIATED 3 + +# define SSL_VALUE_NONE 0 +# define SSL_VALUE_QUIC_STREAM_BIDI_LOCAL_AVAIL 1 +# define SSL_VALUE_QUIC_STREAM_BIDI_REMOTE_AVAIL 2 +# define SSL_VALUE_QUIC_STREAM_UNI_LOCAL_AVAIL 3 +# define SSL_VALUE_QUIC_STREAM_UNI_REMOTE_AVAIL 4 +# define SSL_VALUE_QUIC_IDLE_TIMEOUT 5 +# define SSL_VALUE_EVENT_HANDLING_MODE 6 +# define SSL_VALUE_STREAM_WRITE_BUF_SIZE 7 +# define SSL_VALUE_STREAM_WRITE_BUF_USED 8 +# define SSL_VALUE_STREAM_WRITE_BUF_AVAIL 9 + +# define SSL_VALUE_EVENT_HANDLING_MODE_INHERIT 0 +# define SSL_VALUE_EVENT_HANDLING_MODE_IMPLICIT 1 +# define SSL_VALUE_EVENT_HANDLING_MODE_EXPLICIT 2 + +int SSL_get_value_uint(SSL *s, uint32_t class_, uint32_t id, uint64_t *v); +int SSL_set_value_uint(SSL *s, uint32_t class_, uint32_t id, uint64_t v); + +# define SSL_get_generic_value_uint(ssl, id, v) \ + SSL_get_value_uint((ssl), SSL_VALUE_CLASS_GENERIC, (id), (v)) +# define SSL_set_generic_value_uint(ssl, id, v) \ + SSL_set_value_uint((ssl), SSL_VALUE_CLASS_GENERIC, (id), (v)) +# define SSL_get_feature_request_uint(ssl, id, v) \ + SSL_get_value_uint((ssl), SSL_VALUE_CLASS_FEATURE_REQUEST, (id), (v)) +# define SSL_set_feature_request_uint(ssl, id, v) \ + SSL_set_value_uint((ssl), SSL_VALUE_CLASS_FEATURE_REQUEST, (id), (v)) +# define SSL_get_feature_peer_request_uint(ssl, id, v) \ + SSL_get_value_uint((ssl), SSL_VALUE_CLASS_FEATURE_PEER_REQUEST, (id), (v)) +# define SSL_get_feature_negotiated_uint(ssl, id, v) \ + SSL_get_value_uint((ssl), SSL_VALUE_CLASS_FEATURE_NEGOTIATED, (id), (v)) + +# define SSL_get_quic_stream_bidi_local_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_QUIC_STREAM_BIDI_LOCAL_AVAIL, \ + (value)) +# define SSL_get_quic_stream_bidi_remote_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_QUIC_STREAM_BIDI_REMOTE_AVAIL, \ + (value)) +# define SSL_get_quic_stream_uni_local_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_QUIC_STREAM_UNI_LOCAL_AVAIL, \ + (value)) +# define SSL_get_quic_stream_uni_remote_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_QUIC_STREAM_UNI_REMOTE_AVAIL, \ + (value)) + +# define SSL_get_event_handling_mode(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_EVENT_HANDLING_MODE, \ + (value)) +# define SSL_set_event_handling_mode(ssl, value) \ + SSL_set_generic_value_uint((ssl), SSL_VALUE_EVENT_HANDLING_MODE, \ + (value)) + +# define SSL_get_stream_write_buf_size(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_STREAM_WRITE_BUF_SIZE, \ + (value)) +# define SSL_get_stream_write_buf_used(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_STREAM_WRITE_BUF_USED, \ + (value)) +# define SSL_get_stream_write_buf_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_STREAM_WRITE_BUF_AVAIL, \ + (value)) + +# define SSL_POLL_EVENT_NONE 0 + +# define SSL_POLL_EVENT_F (1U << 0) /* F (Failure) */ +# define SSL_POLL_EVENT_EL (1U << 1) /* EL (Exception on Listener) */ +# define SSL_POLL_EVENT_EC (1U << 2) /* EC (Exception on Conn) */ +# define SSL_POLL_EVENT_ECD (1U << 3) /* ECD (Exception on Conn Drained) */ +# define SSL_POLL_EVENT_ER (1U << 4) /* ER (Exception on Read) */ +# define SSL_POLL_EVENT_EW (1U << 5) /* EW (Exception on Write) */ +# define SSL_POLL_EVENT_R (1U << 6) /* R (Readable) */ +# define SSL_POLL_EVENT_W (1U << 7) /* W (Writable) */ +# define SSL_POLL_EVENT_IC (1U << 8) /* IC (Incoming Connection) */ +# define SSL_POLL_EVENT_ISB (1U << 9) /* ISB (Incoming Stream: Bidi) */ +# define SSL_POLL_EVENT_ISU (1U << 10) /* ISU (Incoming Stream: Uni) */ +# define SSL_POLL_EVENT_OSB (1U << 11) /* OSB (Outgoing Stream: Bidi) */ +# define SSL_POLL_EVENT_OSU (1U << 12) /* OSU (Outgoing Stream: Uni) */ + +# define SSL_POLL_EVENT_RW (SSL_POLL_EVENT_R | SSL_POLL_EVENT_W) +# define SSL_POLL_EVENT_RE (SSL_POLL_EVENT_R | SSL_POLL_EVENT_ER) +# define SSL_POLL_EVENT_WE (SSL_POLL_EVENT_W | SSL_POLL_EVENT_EW) +# define SSL_POLL_EVENT_RWE (SSL_POLL_EVENT_RE | SSL_POLL_EVENT_WE) +# define SSL_POLL_EVENT_E (SSL_POLL_EVENT_EL | SSL_POLL_EVENT_EC \ + | SSL_POLL_EVENT_ER | SSL_POLL_EVENT_EW) +# define SSL_POLL_EVENT_IS (SSL_POLL_EVENT_ISB | SSL_POLL_EVENT_ISU) +# define SSL_POLL_EVENT_ISE (SSL_POLL_EVENT_IS | SSL_POLL_EVENT_EC) +# define SSL_POLL_EVENT_I (SSL_POLL_EVENT_IS | SSL_POLL_EVENT_IC) +# define SSL_POLL_EVENT_OS (SSL_POLL_EVENT_OSB | SSL_POLL_EVENT_OSU) +# define SSL_POLL_EVENT_OSE (SSL_POLL_EVENT_OS | SSL_POLL_EVENT_EC) + +typedef struct ssl_poll_item_st { + BIO_POLL_DESCRIPTOR desc; + uint64_t events, revents; +} SSL_POLL_ITEM; + +# define SSL_POLL_FLAG_NO_HANDLE_EVENTS (1U << 0) + +__owur int SSL_poll(SSL_POLL_ITEM *items, + size_t num_items, + size_t stride, + const struct timeval *timeout, + uint64_t flags, + size_t *result_count); + +static ossl_inline ossl_unused BIO_POLL_DESCRIPTOR +SSL_as_poll_descriptor(SSL *s) +{ + BIO_POLL_DESCRIPTOR d; + + d.type = BIO_POLL_DESCRIPTOR_TYPE_SSL; + d.value.ssl = s; + return d; +} + # ifndef OPENSSL_NO_DEPRECATED_1_1_0 # define SSL_cache_hit(s) SSL_session_reused(s) # endif @@ -2593,6 +2882,51 @@ void SSL_set_allow_early_data_cb(SSL *s, const char *OSSL_default_cipher_list(void); const char *OSSL_default_ciphersuites(void); +/* RFC8879 Certificate compression APIs */ + +int SSL_CTX_compress_certs(SSL_CTX *ctx, int alg); +int SSL_compress_certs(SSL *ssl, int alg); + +int SSL_CTX_set1_cert_comp_preference(SSL_CTX *ctx, int *algs, size_t len); +int SSL_set1_cert_comp_preference(SSL *ssl, int *algs, size_t len); + +int SSL_CTX_set1_compressed_cert(SSL_CTX *ctx, int algorithm, unsigned char *comp_data, + size_t comp_length, size_t orig_length); +int SSL_set1_compressed_cert(SSL *ssl, int algorithm, unsigned char *comp_data, + size_t comp_length, size_t orig_length); +size_t SSL_CTX_get1_compressed_cert(SSL_CTX *ctx, int alg, unsigned char **data, size_t *orig_len); +size_t SSL_get1_compressed_cert(SSL *ssl, int alg, unsigned char **data, size_t *orig_len); + +__owur int SSL_add_expected_rpk(SSL *s, EVP_PKEY *rpk); +__owur EVP_PKEY *SSL_get0_peer_rpk(const SSL *s); +__owur EVP_PKEY *SSL_SESSION_get0_peer_rpk(SSL_SESSION *s); +__owur int SSL_get_negotiated_client_cert_type(const SSL *s); +__owur int SSL_get_negotiated_server_cert_type(const SSL *s); + +__owur int SSL_set1_client_cert_type(SSL *s, const unsigned char *val, size_t len); +__owur int SSL_set1_server_cert_type(SSL *s, const unsigned char *val, size_t len); +__owur int SSL_CTX_set1_client_cert_type(SSL_CTX *ctx, const unsigned char *val, size_t len); +__owur int SSL_CTX_set1_server_cert_type(SSL_CTX *ctx, const unsigned char *val, size_t len); +__owur int SSL_get0_client_cert_type(const SSL *s, unsigned char **t, size_t *len); +__owur int SSL_get0_server_cert_type(const SSL *s, unsigned char **t, size_t *len); +__owur int SSL_CTX_get0_client_cert_type(const SSL_CTX *ctx, unsigned char **t, size_t *len); +__owur int SSL_CTX_get0_server_cert_type(const SSL_CTX *s, unsigned char **t, size_t *len); + +/* + * Protection level. For <= TLSv1.2 only "NONE" and "APPLICATION" are used. + */ +# define OSSL_RECORD_PROTECTION_LEVEL_NONE 0 +# define OSSL_RECORD_PROTECTION_LEVEL_EARLY 1 +# define OSSL_RECORD_PROTECTION_LEVEL_HANDSHAKE 2 +# define OSSL_RECORD_PROTECTION_LEVEL_APPLICATION 3 + +int SSL_set_quic_tls_cbs(SSL *s, const OSSL_DISPATCH *qtdis, void *arg); +int SSL_set_quic_tls_transport_params(SSL *s, + const unsigned char *params, + size_t params_len); + +int SSL_set_quic_tls_early_data_enabled(SSL *s, int enabled); + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/VC-WIN64A/no-asm/include/openssl/x509.h b/deps/openssl/config/archs/VC-WIN64A/no-asm/include/openssl/x509.h index 0f2353c821aa9b..5e9c548c48d65b 100644 --- a/deps/openssl/config/archs/VC-WIN64A/no-asm/include/openssl/x509.h +++ b/deps/openssl/config/archs/VC-WIN64A/no-asm/include/openssl/x509.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by makefile from include/openssl/x509.h.in * - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2024 The OpenSSL Project Authors. All Rights Reserved. * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved * * Licensed under the Apache License 2.0 (the "License"). You may not use @@ -40,6 +40,9 @@ # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -162,16 +165,24 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_CRL, X509_CRL, X509_CRL) # define X509_FILETYPE_ASN1 2 # define X509_FILETYPE_DEFAULT 3 -# define X509v3_KU_DIGITAL_SIGNATURE 0x0080 -# define X509v3_KU_NON_REPUDIATION 0x0040 -# define X509v3_KU_KEY_ENCIPHERMENT 0x0020 -# define X509v3_KU_DATA_ENCIPHERMENT 0x0010 -# define X509v3_KU_KEY_AGREEMENT 0x0008 -# define X509v3_KU_KEY_CERT_SIGN 0x0004 -# define X509v3_KU_CRL_SIGN 0x0002 -# define X509v3_KU_ENCIPHER_ONLY 0x0001 -# define X509v3_KU_DECIPHER_ONLY 0x8000 -# define X509v3_KU_UNDEF 0xffff +/*- + * : + * The KeyUsage BITSTRING is treated as a little-endian integer, hence bit `0` + * is 0x80, while bit `7` is 0x01 (the LSB of the integer value), bit `8` is + * then the MSB of the second octet, or 0x8000. + */ +# define X509v3_KU_DIGITAL_SIGNATURE 0x0080 /* (0) */ +# define X509v3_KU_NON_REPUDIATION 0x0040 /* (1) */ +# define X509v3_KU_KEY_ENCIPHERMENT 0x0020 /* (2) */ +# define X509v3_KU_DATA_ENCIPHERMENT 0x0010 /* (3) */ +# define X509v3_KU_KEY_AGREEMENT 0x0008 /* (4) */ +# define X509v3_KU_KEY_CERT_SIGN 0x0004 /* (5) */ +# define X509v3_KU_CRL_SIGN 0x0002 /* (6) */ +# define X509v3_KU_ENCIPHER_ONLY 0x0001 /* (7) */ +# define X509v3_KU_DECIPHER_ONLY 0x8000 /* (8) */ +# ifndef OPENSSL_NO_DEPRECATED_3_4 +# define X509v3_KU_UNDEF 0xffff /* vestigial, not used */ +# endif struct X509_algor_st { ASN1_OBJECT *algorithm; @@ -462,7 +473,12 @@ typedef struct PBKDF2PARAM_st { X509_ALGOR *prf; } PBKDF2PARAM; -#ifndef OPENSSL_NO_SCRYPT +typedef struct { + X509_ALGOR *keyDerivationFunc; + X509_ALGOR *messageAuthScheme; +} PBMAC1PARAM; + +# ifndef OPENSSL_NO_SCRYPT typedef struct SCRYPT_PARAMS_st { ASN1_OCTET_STRING *salt; ASN1_INTEGER *costParameter; @@ -470,7 +486,7 @@ typedef struct SCRYPT_PARAMS_st { ASN1_INTEGER *parallelizationParameter; ASN1_INTEGER *keyLength; } SCRYPT_PARAMS; -#endif +# endif #ifdef __cplusplus } @@ -603,6 +619,8 @@ EVP_PKEY *d2i_PrivateKey_ex_fp(FILE *fp, EVP_PKEY **a, OSSL_LIB_CTX *libctx, const char *propq); EVP_PKEY *d2i_PrivateKey_fp(FILE *fp, EVP_PKEY **a); int i2d_PUBKEY_fp(FILE *fp, const EVP_PKEY *pkey); +EVP_PKEY *d2i_PUBKEY_ex_fp(FILE *fp, EVP_PKEY **a, OSSL_LIB_CTX *libctx, + const char *propq); EVP_PKEY *d2i_PUBKEY_fp(FILE *fp, EVP_PKEY **a); # endif @@ -651,6 +669,8 @@ EVP_PKEY *d2i_PrivateKey_ex_bio(BIO *bp, EVP_PKEY **a, OSSL_LIB_CTX *libctx, const char *propq); EVP_PKEY *d2i_PrivateKey_bio(BIO *bp, EVP_PKEY **a); int i2d_PUBKEY_bio(BIO *bp, const EVP_PKEY *pkey); +EVP_PKEY *d2i_PUBKEY_ex_bio(BIO *bp, EVP_PKEY **a, OSSL_LIB_CTX *libctx, + const char *propq); EVP_PKEY *d2i_PUBKEY_bio(BIO *bp, EVP_PKEY **a); DECLARE_ASN1_DUP_FUNCTION(X509) @@ -884,12 +904,12 @@ int X509_REQ_get_signature_nid(const X509_REQ *req); int i2d_re_X509_REQ_tbs(X509_REQ *req, unsigned char **pp); int X509_REQ_set_pubkey(X509_REQ *x, EVP_PKEY *pkey); EVP_PKEY *X509_REQ_get_pubkey(X509_REQ *req); -EVP_PKEY *X509_REQ_get0_pubkey(X509_REQ *req); +EVP_PKEY *X509_REQ_get0_pubkey(const X509_REQ *req); X509_PUBKEY *X509_REQ_get_X509_PUBKEY(X509_REQ *req); int X509_REQ_extension_nid(int nid); int *X509_REQ_get_extension_nids(void); void X509_REQ_set_extension_nids(int *nids); -STACK_OF(X509_EXTENSION) *X509_REQ_get_extensions(X509_REQ *req); +STACK_OF(X509_EXTENSION) *X509_REQ_get_extensions(OSSL_FUTURE_CONST X509_REQ *req); int X509_REQ_add_extensions_nid(X509_REQ *req, const STACK_OF(X509_EXTENSION) *exts, int nid); int X509_REQ_add_extensions(X509_REQ *req, const STACK_OF(X509_EXTENSION) *ext); @@ -950,13 +970,14 @@ X509_REVOKED_get0_extensions(const X509_REVOKED *r); X509_CRL *X509_CRL_diff(X509_CRL *base, X509_CRL *newer, EVP_PKEY *skey, const EVP_MD *md, unsigned int flags); -int X509_REQ_check_private_key(X509_REQ *x509, EVP_PKEY *pkey); +int X509_REQ_check_private_key(const X509_REQ *req, EVP_PKEY *pkey); -int X509_check_private_key(const X509 *x509, const EVP_PKEY *pkey); +int X509_check_private_key(const X509 *cert, const EVP_PKEY *pkey); int X509_chain_check_suiteb(int *perror_depth, X509 *x, STACK_OF(X509) *chain, unsigned long flags); int X509_CRL_check_suiteb(X509_CRL *crl, EVP_PKEY *pk, unsigned long flags); +void OSSL_STACK_OF_X509_free(STACK_OF(X509) *certs); STACK_OF(X509) *X509_chain_up_ref(STACK_OF(X509) *chain); int X509_issuer_and_serial_cmp(const X509 *a, const X509 *b); @@ -1077,6 +1098,8 @@ X509_EXTENSION *X509v3_get_ext(const STACK_OF(X509_EXTENSION) *x, int loc); X509_EXTENSION *X509v3_delete_ext(STACK_OF(X509_EXTENSION) *x, int loc); STACK_OF(X509_EXTENSION) *X509v3_add_ext(STACK_OF(X509_EXTENSION) **x, X509_EXTENSION *ex, int loc); +STACK_OF(X509_EXTENSION) *X509v3_add_extensions(STACK_OF(X509_EXTENSION) **target, + const STACK_OF(X509_EXTENSION) *exts); int X509_get_ext_count(const X509 *x); int X509_get_ext_by_NID(const X509 *x, int nid, int lastpos); @@ -1198,9 +1221,10 @@ X509 *X509_find_by_subject(STACK_OF(X509) *sk, const X509_NAME *name); DECLARE_ASN1_FUNCTIONS(PBEPARAM) DECLARE_ASN1_FUNCTIONS(PBE2PARAM) DECLARE_ASN1_FUNCTIONS(PBKDF2PARAM) -#ifndef OPENSSL_NO_SCRYPT +DECLARE_ASN1_FUNCTIONS(PBMAC1PARAM) +# ifndef OPENSSL_NO_SCRYPT DECLARE_ASN1_FUNCTIONS(SCRYPT_PARAMS) -#endif +# endif int PKCS5_pbe_set0_algor(X509_ALGOR *algor, int alg, int iter, const unsigned char *salt, int saltlen); @@ -1237,6 +1261,7 @@ X509_ALGOR *PKCS5_pbkdf2_set_ex(int iter, unsigned char *salt, int saltlen, int prf_nid, int keylen, OSSL_LIB_CTX *libctx); +PBKDF2PARAM *PBMAC1_get1_pbkdf2_param(const X509_ALGOR *macalg); /* PKCS#8 utilities */ DECLARE_ASN1_FUNCTIONS(PKCS8_PRIV_KEY_INFO) @@ -1262,6 +1287,8 @@ int PKCS8_pkey_add1_attr_by_OBJ(PKCS8_PRIV_KEY_INFO *p8, const ASN1_OBJECT *obj, int type, const unsigned char *bytes, int len); +void X509_PUBKEY_set0_public_key(X509_PUBKEY *pub, + unsigned char *penc, int penclen); int X509_PUBKEY_set0_param(X509_PUBKEY *pub, ASN1_OBJECT *aobj, int ptype, void *pval, unsigned char *penc, int penclen); diff --git a/deps/openssl/config/archs/VC-WIN64A/no-asm/include/openssl/x509_acert.h b/deps/openssl/config/archs/VC-WIN64A/no-asm/include/openssl/x509_acert.h new file mode 100644 index 00000000000000..efae82c8f6b635 --- /dev/null +++ b/deps/openssl/config/archs/VC-WIN64A/no-asm/include/openssl/x509_acert.h @@ -0,0 +1,294 @@ +/* + * WARNING: do not edit! + * Generated by makefile from include/openssl/x509_acert.h.in + * + * Copyright 2022-2024 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + + +#ifndef OPENSSL_X509_ACERT_H +# define OPENSSL_X509_ACERT_H +# pragma once + +# include +# include +# include + +typedef struct X509_acert_st X509_ACERT; +typedef struct X509_acert_info_st X509_ACERT_INFO; +typedef struct ossl_object_digest_info_st OSSL_OBJECT_DIGEST_INFO; +typedef struct ossl_issuer_serial_st OSSL_ISSUER_SERIAL; +typedef struct X509_acert_issuer_v2form_st X509_ACERT_ISSUER_V2FORM; + +DECLARE_ASN1_FUNCTIONS(X509_ACERT) +DECLARE_ASN1_DUP_FUNCTION(X509_ACERT) +DECLARE_ASN1_ITEM(X509_ACERT_INFO) +DECLARE_ASN1_ALLOC_FUNCTIONS(X509_ACERT_INFO) +DECLARE_ASN1_ALLOC_FUNCTIONS(OSSL_OBJECT_DIGEST_INFO) +DECLARE_ASN1_ALLOC_FUNCTIONS(OSSL_ISSUER_SERIAL) +DECLARE_ASN1_ALLOC_FUNCTIONS(X509_ACERT_ISSUER_V2FORM) + +# ifndef OPENSSL_NO_STDIO +X509_ACERT *d2i_X509_ACERT_fp(FILE *fp, X509_ACERT **acert); +int i2d_X509_ACERT_fp(FILE *fp, const X509_ACERT *acert); +# endif + +DECLARE_PEM_rw(X509_ACERT, X509_ACERT) + +X509_ACERT *d2i_X509_ACERT_bio(BIO *bp, X509_ACERT **acert); +int i2d_X509_ACERT_bio(BIO *bp, const X509_ACERT *acert); + +int X509_ACERT_sign(X509_ACERT *x, EVP_PKEY *pkey, const EVP_MD *md); +int X509_ACERT_sign_ctx(X509_ACERT *x, EVP_MD_CTX *ctx); +int X509_ACERT_verify(X509_ACERT *a, EVP_PKEY *r); + +# define X509_ACERT_VERSION_2 1 + +const GENERAL_NAMES *X509_ACERT_get0_holder_entityName(const X509_ACERT *x); +const OSSL_ISSUER_SERIAL *X509_ACERT_get0_holder_baseCertId(const X509_ACERT *x); +const OSSL_OBJECT_DIGEST_INFO * X509_ACERT_get0_holder_digest(const X509_ACERT *x); +const X509_NAME *X509_ACERT_get0_issuerName(const X509_ACERT *x); +long X509_ACERT_get_version(const X509_ACERT *x); +void X509_ACERT_get0_signature(const X509_ACERT *x, + const ASN1_BIT_STRING **psig, + const X509_ALGOR **palg); +int X509_ACERT_get_signature_nid(const X509_ACERT *x); +const X509_ALGOR *X509_ACERT_get0_info_sigalg(const X509_ACERT *x); +const ASN1_INTEGER *X509_ACERT_get0_serialNumber(const X509_ACERT *x); +const ASN1_TIME *X509_ACERT_get0_notBefore(const X509_ACERT *x); +const ASN1_TIME *X509_ACERT_get0_notAfter(const X509_ACERT *x); +const ASN1_BIT_STRING *X509_ACERT_get0_issuerUID(const X509_ACERT *x); + +int X509_ACERT_print(BIO *bp, X509_ACERT *x); +int X509_ACERT_print_ex(BIO *bp, X509_ACERT *x, unsigned long nmflags, + unsigned long cflag); + +int X509_ACERT_get_attr_count(const X509_ACERT *x); +int X509_ACERT_get_attr_by_NID(const X509_ACERT *x, int nid, int lastpos); +int X509_ACERT_get_attr_by_OBJ(const X509_ACERT *x, const ASN1_OBJECT *obj, + int lastpos); +X509_ATTRIBUTE *X509_ACERT_get_attr(const X509_ACERT *x, int loc); +X509_ATTRIBUTE *X509_ACERT_delete_attr(X509_ACERT *x, int loc); + +void *X509_ACERT_get_ext_d2i(const X509_ACERT *x, int nid, int *crit, int *idx); +int X509_ACERT_add1_ext_i2d(X509_ACERT *x, int nid, void *value, int crit, + unsigned long flags); +const STACK_OF(X509_EXTENSION) *X509_ACERT_get0_extensions(const X509_ACERT *x); + +# define OSSL_OBJECT_DIGEST_INFO_PUBLIC_KEY 0 +# define OSSL_OBJECT_DIGEST_INFO_PUBLIC_KEY_CERT 1 +# define OSSL_OBJECT_DIGEST_INFO_OTHER 2 /* must not be used in RFC 5755 profile */ +int X509_ACERT_set_version(X509_ACERT *x, long version); +void X509_ACERT_set0_holder_entityName(X509_ACERT *x, GENERAL_NAMES *name); +void X509_ACERT_set0_holder_baseCertId(X509_ACERT *x, OSSL_ISSUER_SERIAL *isss); +void X509_ACERT_set0_holder_digest(X509_ACERT *x, + OSSL_OBJECT_DIGEST_INFO *dinfo); + +int X509_ACERT_add1_attr(X509_ACERT *x, X509_ATTRIBUTE *attr); +int X509_ACERT_add1_attr_by_OBJ(X509_ACERT *x, const ASN1_OBJECT *obj, + int type, const void *bytes, int len); +int X509_ACERT_add1_attr_by_NID(X509_ACERT *x, int nid, int type, + const void *bytes, int len); +int X509_ACERT_add1_attr_by_txt(X509_ACERT *x, const char *attrname, int type, + const unsigned char *bytes, int len); +int X509_ACERT_add_attr_nconf(CONF *conf, const char *section, + X509_ACERT *acert); + +int X509_ACERT_set1_issuerName(X509_ACERT *x, const X509_NAME *name); +int X509_ACERT_set1_serialNumber(X509_ACERT *x, const ASN1_INTEGER *serial); +int X509_ACERT_set1_notBefore(X509_ACERT *x, const ASN1_GENERALIZEDTIME *time); +int X509_ACERT_set1_notAfter(X509_ACERT *x, const ASN1_GENERALIZEDTIME *time); + +void OSSL_OBJECT_DIGEST_INFO_get0_digest(const OSSL_OBJECT_DIGEST_INFO *o, + int *digestedObjectType, + const X509_ALGOR **digestAlgorithm, + const ASN1_BIT_STRING **digest); + +int OSSL_OBJECT_DIGEST_INFO_set1_digest(OSSL_OBJECT_DIGEST_INFO *o, + int digestedObjectType, + X509_ALGOR *digestAlgorithm, + ASN1_BIT_STRING *digest); + +const X509_NAME *OSSL_ISSUER_SERIAL_get0_issuer(const OSSL_ISSUER_SERIAL *isss); +const ASN1_INTEGER *OSSL_ISSUER_SERIAL_get0_serial(const OSSL_ISSUER_SERIAL *isss); +const ASN1_BIT_STRING *OSSL_ISSUER_SERIAL_get0_issuerUID(const OSSL_ISSUER_SERIAL *isss); + +int OSSL_ISSUER_SERIAL_set1_issuer(OSSL_ISSUER_SERIAL *isss, + const X509_NAME *issuer); +int OSSL_ISSUER_SERIAL_set1_serial(OSSL_ISSUER_SERIAL *isss, + const ASN1_INTEGER *serial); +int OSSL_ISSUER_SERIAL_set1_issuerUID(OSSL_ISSUER_SERIAL *isss, + const ASN1_BIT_STRING *uid); + +# define OSSL_IETFAS_OCTETS 0 +# define OSSL_IETFAS_OID 1 +# define OSSL_IETFAS_STRING 2 + +typedef struct OSSL_IETF_ATTR_SYNTAX_VALUE_st OSSL_IETF_ATTR_SYNTAX_VALUE; +typedef struct OSSL_IETF_ATTR_SYNTAX_st OSSL_IETF_ATTR_SYNTAX; +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_IETF_ATTR_SYNTAX_VALUE, OSSL_IETF_ATTR_SYNTAX_VALUE, OSSL_IETF_ATTR_SYNTAX_VALUE) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_value(sk, idx) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_value(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), (idx))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_new(cmp) ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_new(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_compfunc_type(cmp))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_new_null() ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_new_null()) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_new_reserve(cmp, n) ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_compfunc_type(cmp), (n))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), (n)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_free(sk) OPENSSL_sk_free(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_delete(sk, i) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_delete(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), (i))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_delete_ptr(sk, ptr) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_pop(sk) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_pop(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_shift(sk) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_shift(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk),ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_freefunc_type(freefunc)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr), (idx)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_set(sk, idx, ptr) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_set(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), (idx), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr), pnum) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_dup(sk) ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_dup(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_copyfunc_type(copyfunc), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_freefunc_type(freefunc))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_set_cmp_func(sk, cmp) ((sk_OSSL_IETF_ATTR_SYNTAX_VALUE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_compfunc_type(cmp))) + + +DECLARE_ASN1_ITEM(OSSL_IETF_ATTR_SYNTAX_VALUE) +DECLARE_ASN1_ALLOC_FUNCTIONS(OSSL_IETF_ATTR_SYNTAX_VALUE) +DECLARE_ASN1_FUNCTIONS(OSSL_IETF_ATTR_SYNTAX) + +const GENERAL_NAMES * +OSSL_IETF_ATTR_SYNTAX_get0_policyAuthority(const OSSL_IETF_ATTR_SYNTAX *a); +void OSSL_IETF_ATTR_SYNTAX_set0_policyAuthority(OSSL_IETF_ATTR_SYNTAX *a, + GENERAL_NAMES *names); + +int OSSL_IETF_ATTR_SYNTAX_get_value_num(const OSSL_IETF_ATTR_SYNTAX *a); +void *OSSL_IETF_ATTR_SYNTAX_get0_value(const OSSL_IETF_ATTR_SYNTAX *a, + int ind, int *type); +int OSSL_IETF_ATTR_SYNTAX_add1_value(OSSL_IETF_ATTR_SYNTAX *a, int type, + void *data); +int OSSL_IETF_ATTR_SYNTAX_print(BIO *bp, OSSL_IETF_ATTR_SYNTAX *a, int indent); + +struct TARGET_CERT_st { + OSSL_ISSUER_SERIAL *targetCertificate; + GENERAL_NAME *targetName; + OSSL_OBJECT_DIGEST_INFO *certDigestInfo; +}; + +typedef struct TARGET_CERT_st OSSL_TARGET_CERT; + +# define OSSL_TGT_TARGET_NAME 0 +# define OSSL_TGT_TARGET_GROUP 1 +# define OSSL_TGT_TARGET_CERT 2 + +typedef struct TARGET_st { + int type; + union { + GENERAL_NAME *targetName; + GENERAL_NAME *targetGroup; + OSSL_TARGET_CERT *targetCert; + } choice; +} OSSL_TARGET; + +typedef STACK_OF(OSSL_TARGET) OSSL_TARGETS; +typedef STACK_OF(OSSL_TARGETS) OSSL_TARGETING_INFORMATION; + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_TARGET, OSSL_TARGET, OSSL_TARGET) +#define sk_OSSL_TARGET_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_value(sk, idx) ((OSSL_TARGET *)OPENSSL_sk_value(ossl_check_const_OSSL_TARGET_sk_type(sk), (idx))) +#define sk_OSSL_TARGET_new(cmp) ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_new(ossl_check_OSSL_TARGET_compfunc_type(cmp))) +#define sk_OSSL_TARGET_new_null() ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_new_null()) +#define sk_OSSL_TARGET_new_reserve(cmp, n) ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_TARGET_compfunc_type(cmp), (n))) +#define sk_OSSL_TARGET_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_TARGET_sk_type(sk), (n)) +#define sk_OSSL_TARGET_free(sk) OPENSSL_sk_free(ossl_check_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_delete(sk, i) ((OSSL_TARGET *)OPENSSL_sk_delete(ossl_check_OSSL_TARGET_sk_type(sk), (i))) +#define sk_OSSL_TARGET_delete_ptr(sk, ptr) ((OSSL_TARGET *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr))) +#define sk_OSSL_TARGET_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr)) +#define sk_OSSL_TARGET_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr)) +#define sk_OSSL_TARGET_pop(sk) ((OSSL_TARGET *)OPENSSL_sk_pop(ossl_check_OSSL_TARGET_sk_type(sk))) +#define sk_OSSL_TARGET_shift(sk) ((OSSL_TARGET *)OPENSSL_sk_shift(ossl_check_OSSL_TARGET_sk_type(sk))) +#define sk_OSSL_TARGET_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_TARGET_sk_type(sk),ossl_check_OSSL_TARGET_freefunc_type(freefunc)) +#define sk_OSSL_TARGET_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr), (idx)) +#define sk_OSSL_TARGET_set(sk, idx, ptr) ((OSSL_TARGET *)OPENSSL_sk_set(ossl_check_OSSL_TARGET_sk_type(sk), (idx), ossl_check_OSSL_TARGET_type(ptr))) +#define sk_OSSL_TARGET_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr)) +#define sk_OSSL_TARGET_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr)) +#define sk_OSSL_TARGET_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr), pnum) +#define sk_OSSL_TARGET_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_dup(sk) ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_dup(ossl_check_const_OSSL_TARGET_sk_type(sk))) +#define sk_OSSL_TARGET_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_copyfunc_type(copyfunc), ossl_check_OSSL_TARGET_freefunc_type(freefunc))) +#define sk_OSSL_TARGET_set_cmp_func(sk, cmp) ((sk_OSSL_TARGET_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_compfunc_type(cmp))) + + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_TARGETS, OSSL_TARGETS, OSSL_TARGETS) +#define sk_OSSL_TARGETS_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_value(sk, idx) ((OSSL_TARGETS *)OPENSSL_sk_value(ossl_check_const_OSSL_TARGETS_sk_type(sk), (idx))) +#define sk_OSSL_TARGETS_new(cmp) ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_new(ossl_check_OSSL_TARGETS_compfunc_type(cmp))) +#define sk_OSSL_TARGETS_new_null() ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_new_null()) +#define sk_OSSL_TARGETS_new_reserve(cmp, n) ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_TARGETS_compfunc_type(cmp), (n))) +#define sk_OSSL_TARGETS_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_TARGETS_sk_type(sk), (n)) +#define sk_OSSL_TARGETS_free(sk) OPENSSL_sk_free(ossl_check_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_delete(sk, i) ((OSSL_TARGETS *)OPENSSL_sk_delete(ossl_check_OSSL_TARGETS_sk_type(sk), (i))) +#define sk_OSSL_TARGETS_delete_ptr(sk, ptr) ((OSSL_TARGETS *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr))) +#define sk_OSSL_TARGETS_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr)) +#define sk_OSSL_TARGETS_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr)) +#define sk_OSSL_TARGETS_pop(sk) ((OSSL_TARGETS *)OPENSSL_sk_pop(ossl_check_OSSL_TARGETS_sk_type(sk))) +#define sk_OSSL_TARGETS_shift(sk) ((OSSL_TARGETS *)OPENSSL_sk_shift(ossl_check_OSSL_TARGETS_sk_type(sk))) +#define sk_OSSL_TARGETS_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_TARGETS_sk_type(sk),ossl_check_OSSL_TARGETS_freefunc_type(freefunc)) +#define sk_OSSL_TARGETS_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr), (idx)) +#define sk_OSSL_TARGETS_set(sk, idx, ptr) ((OSSL_TARGETS *)OPENSSL_sk_set(ossl_check_OSSL_TARGETS_sk_type(sk), (idx), ossl_check_OSSL_TARGETS_type(ptr))) +#define sk_OSSL_TARGETS_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr)) +#define sk_OSSL_TARGETS_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr)) +#define sk_OSSL_TARGETS_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr), pnum) +#define sk_OSSL_TARGETS_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_dup(sk) ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_dup(ossl_check_const_OSSL_TARGETS_sk_type(sk))) +#define sk_OSSL_TARGETS_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_copyfunc_type(copyfunc), ossl_check_OSSL_TARGETS_freefunc_type(freefunc))) +#define sk_OSSL_TARGETS_set_cmp_func(sk, cmp) ((sk_OSSL_TARGETS_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_compfunc_type(cmp))) + + +DECLARE_ASN1_FUNCTIONS(OSSL_TARGET) +DECLARE_ASN1_FUNCTIONS(OSSL_TARGETS) +DECLARE_ASN1_FUNCTIONS(OSSL_TARGETING_INFORMATION) + +typedef STACK_OF(OSSL_ISSUER_SERIAL) OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX; +DECLARE_ASN1_FUNCTIONS(OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ISSUER_SERIAL, OSSL_ISSUER_SERIAL, OSSL_ISSUER_SERIAL) +#define sk_OSSL_ISSUER_SERIAL_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_value(sk, idx) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_value(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk), (idx))) +#define sk_OSSL_ISSUER_SERIAL_new(cmp) ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_new(ossl_check_OSSL_ISSUER_SERIAL_compfunc_type(cmp))) +#define sk_OSSL_ISSUER_SERIAL_new_null() ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ISSUER_SERIAL_new_reserve(cmp, n) ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ISSUER_SERIAL_compfunc_type(cmp), (n))) +#define sk_OSSL_ISSUER_SERIAL_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), (n)) +#define sk_OSSL_ISSUER_SERIAL_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_delete(sk, i) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_delete(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), (i))) +#define sk_OSSL_ISSUER_SERIAL_delete_ptr(sk, ptr) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr))) +#define sk_OSSL_ISSUER_SERIAL_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr)) +#define sk_OSSL_ISSUER_SERIAL_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr)) +#define sk_OSSL_ISSUER_SERIAL_pop(sk) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_pop(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk))) +#define sk_OSSL_ISSUER_SERIAL_shift(sk) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_shift(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk))) +#define sk_OSSL_ISSUER_SERIAL_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk),ossl_check_OSSL_ISSUER_SERIAL_freefunc_type(freefunc)) +#define sk_OSSL_ISSUER_SERIAL_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr), (idx)) +#define sk_OSSL_ISSUER_SERIAL_set(sk, idx, ptr) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_set(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), (idx), ossl_check_OSSL_ISSUER_SERIAL_type(ptr))) +#define sk_OSSL_ISSUER_SERIAL_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr)) +#define sk_OSSL_ISSUER_SERIAL_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr)) +#define sk_OSSL_ISSUER_SERIAL_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr), pnum) +#define sk_OSSL_ISSUER_SERIAL_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_dup(sk) ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk))) +#define sk_OSSL_ISSUER_SERIAL_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_copyfunc_type(copyfunc), ossl_check_OSSL_ISSUER_SERIAL_freefunc_type(freefunc))) +#define sk_OSSL_ISSUER_SERIAL_set_cmp_func(sk, cmp) ((sk_OSSL_ISSUER_SERIAL_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_compfunc_type(cmp))) + + +#endif diff --git a/deps/openssl/config/archs/VC-WIN64A/no-asm/include/openssl/x509_vfy.h b/deps/openssl/config/archs/VC-WIN64A/no-asm/include/openssl/x509_vfy.h index f571187265cfc9..f08a134b17b7db 100644 --- a/deps/openssl/config/archs/VC-WIN64A/no-asm/include/openssl/x509_vfy.h +++ b/deps/openssl/config/archs/VC-WIN64A/no-asm/include/openssl/x509_vfy.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by makefile from include/openssl/x509_vfy.h.in * - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -411,6 +411,7 @@ X509_LOOKUP_ctrl_ex((x), X509_L_ADD_STORE, (name), 0, NULL, \ # define X509_V_ERR_CA_CERT_MISSING_KEY_USAGE 92 # define X509_V_ERR_EXTENSIONS_REQUIRE_VERSION_3 93 # define X509_V_ERR_EC_KEY_EXPLICIT_PARAMS 94 +# define X509_V_ERR_RPK_UNTRUSTED 95 /* Certificate verify flags */ # ifndef OPENSSL_NO_DEPRECATED_1_1_0 @@ -491,71 +492,72 @@ int X509_OBJECT_set1_X509(X509_OBJECT *a, X509 *obj); X509_CRL *X509_OBJECT_get0_X509_CRL(const X509_OBJECT *a); int X509_OBJECT_set1_X509_CRL(X509_OBJECT *a, X509_CRL *obj); X509_STORE *X509_STORE_new(void); -void X509_STORE_free(X509_STORE *v); -int X509_STORE_lock(X509_STORE *ctx); -int X509_STORE_unlock(X509_STORE *ctx); -int X509_STORE_up_ref(X509_STORE *v); -STACK_OF(X509_OBJECT) *X509_STORE_get0_objects(const X509_STORE *v); -STACK_OF(X509) *X509_STORE_get1_all_certs(X509_STORE *st); -STACK_OF(X509) *X509_STORE_CTX_get1_certs(X509_STORE_CTX *st, +void X509_STORE_free(X509_STORE *xs); +int X509_STORE_lock(X509_STORE *xs); +int X509_STORE_unlock(X509_STORE *xs); +int X509_STORE_up_ref(X509_STORE *xs); +STACK_OF(X509_OBJECT) *X509_STORE_get0_objects(const X509_STORE *xs); +STACK_OF(X509_OBJECT) *X509_STORE_get1_objects(X509_STORE *xs); +STACK_OF(X509) *X509_STORE_get1_all_certs(X509_STORE *xs); +STACK_OF(X509) *X509_STORE_CTX_get1_certs(X509_STORE_CTX *xs, const X509_NAME *nm); STACK_OF(X509_CRL) *X509_STORE_CTX_get1_crls(const X509_STORE_CTX *st, const X509_NAME *nm); -int X509_STORE_set_flags(X509_STORE *ctx, unsigned long flags); -int X509_STORE_set_purpose(X509_STORE *ctx, int purpose); -int X509_STORE_set_trust(X509_STORE *ctx, int trust); -int X509_STORE_set1_param(X509_STORE *ctx, const X509_VERIFY_PARAM *pm); -X509_VERIFY_PARAM *X509_STORE_get0_param(const X509_STORE *ctx); +int X509_STORE_set_flags(X509_STORE *xs, unsigned long flags); +int X509_STORE_set_purpose(X509_STORE *xs, int purpose); +int X509_STORE_set_trust(X509_STORE *xs, int trust); +int X509_STORE_set1_param(X509_STORE *xs, const X509_VERIFY_PARAM *pm); +X509_VERIFY_PARAM *X509_STORE_get0_param(const X509_STORE *xs); -void X509_STORE_set_verify(X509_STORE *ctx, X509_STORE_CTX_verify_fn verify); +void X509_STORE_set_verify(X509_STORE *xs, X509_STORE_CTX_verify_fn verify); #define X509_STORE_set_verify_func(ctx, func) \ X509_STORE_set_verify((ctx),(func)) void X509_STORE_CTX_set_verify(X509_STORE_CTX *ctx, X509_STORE_CTX_verify_fn verify); -X509_STORE_CTX_verify_fn X509_STORE_get_verify(const X509_STORE *ctx); -void X509_STORE_set_verify_cb(X509_STORE *ctx, +X509_STORE_CTX_verify_fn X509_STORE_get_verify(const X509_STORE *xs); +void X509_STORE_set_verify_cb(X509_STORE *xs, X509_STORE_CTX_verify_cb verify_cb); # define X509_STORE_set_verify_cb_func(ctx,func) \ X509_STORE_set_verify_cb((ctx),(func)) -X509_STORE_CTX_verify_cb X509_STORE_get_verify_cb(const X509_STORE *ctx); -void X509_STORE_set_get_issuer(X509_STORE *ctx, +X509_STORE_CTX_verify_cb X509_STORE_get_verify_cb(const X509_STORE *xs); +void X509_STORE_set_get_issuer(X509_STORE *xs, X509_STORE_CTX_get_issuer_fn get_issuer); -X509_STORE_CTX_get_issuer_fn X509_STORE_get_get_issuer(const X509_STORE *ctx); -void X509_STORE_set_check_issued(X509_STORE *ctx, +X509_STORE_CTX_get_issuer_fn X509_STORE_get_get_issuer(const X509_STORE *xs); +void X509_STORE_set_check_issued(X509_STORE *xs, X509_STORE_CTX_check_issued_fn check_issued); -X509_STORE_CTX_check_issued_fn X509_STORE_get_check_issued(const X509_STORE *ctx); -void X509_STORE_set_check_revocation(X509_STORE *ctx, +X509_STORE_CTX_check_issued_fn X509_STORE_get_check_issued(const X509_STORE *s); +void X509_STORE_set_check_revocation(X509_STORE *xs, X509_STORE_CTX_check_revocation_fn check_revocation); X509_STORE_CTX_check_revocation_fn - X509_STORE_get_check_revocation(const X509_STORE *ctx); -void X509_STORE_set_get_crl(X509_STORE *ctx, + X509_STORE_get_check_revocation(const X509_STORE *xs); +void X509_STORE_set_get_crl(X509_STORE *xs, X509_STORE_CTX_get_crl_fn get_crl); -X509_STORE_CTX_get_crl_fn X509_STORE_get_get_crl(const X509_STORE *ctx); -void X509_STORE_set_check_crl(X509_STORE *ctx, +X509_STORE_CTX_get_crl_fn X509_STORE_get_get_crl(const X509_STORE *xs); +void X509_STORE_set_check_crl(X509_STORE *xs, X509_STORE_CTX_check_crl_fn check_crl); -X509_STORE_CTX_check_crl_fn X509_STORE_get_check_crl(const X509_STORE *ctx); -void X509_STORE_set_cert_crl(X509_STORE *ctx, +X509_STORE_CTX_check_crl_fn X509_STORE_get_check_crl(const X509_STORE *xs); +void X509_STORE_set_cert_crl(X509_STORE *xs, X509_STORE_CTX_cert_crl_fn cert_crl); -X509_STORE_CTX_cert_crl_fn X509_STORE_get_cert_crl(const X509_STORE *ctx); -void X509_STORE_set_check_policy(X509_STORE *ctx, +X509_STORE_CTX_cert_crl_fn X509_STORE_get_cert_crl(const X509_STORE *xs); +void X509_STORE_set_check_policy(X509_STORE *xs, X509_STORE_CTX_check_policy_fn check_policy); -X509_STORE_CTX_check_policy_fn X509_STORE_get_check_policy(const X509_STORE *ctx); -void X509_STORE_set_lookup_certs(X509_STORE *ctx, +X509_STORE_CTX_check_policy_fn X509_STORE_get_check_policy(const X509_STORE *s); +void X509_STORE_set_lookup_certs(X509_STORE *xs, X509_STORE_CTX_lookup_certs_fn lookup_certs); -X509_STORE_CTX_lookup_certs_fn X509_STORE_get_lookup_certs(const X509_STORE *ctx); -void X509_STORE_set_lookup_crls(X509_STORE *ctx, +X509_STORE_CTX_lookup_certs_fn X509_STORE_get_lookup_certs(const X509_STORE *s); +void X509_STORE_set_lookup_crls(X509_STORE *xs, X509_STORE_CTX_lookup_crls_fn lookup_crls); #define X509_STORE_set_lookup_crls_cb(ctx, func) \ X509_STORE_set_lookup_crls((ctx), (func)) -X509_STORE_CTX_lookup_crls_fn X509_STORE_get_lookup_crls(const X509_STORE *ctx); -void X509_STORE_set_cleanup(X509_STORE *ctx, +X509_STORE_CTX_lookup_crls_fn X509_STORE_get_lookup_crls(const X509_STORE *xs); +void X509_STORE_set_cleanup(X509_STORE *xs, X509_STORE_CTX_cleanup_fn cleanup); -X509_STORE_CTX_cleanup_fn X509_STORE_get_cleanup(const X509_STORE *ctx); +X509_STORE_CTX_cleanup_fn X509_STORE_get_cleanup(const X509_STORE *xs); #define X509_STORE_get_ex_new_index(l, p, newf, dupf, freef) \ CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_X509_STORE, l, p, newf, dupf, freef) -int X509_STORE_set_ex_data(X509_STORE *ctx, int idx, void *data); -void *X509_STORE_get_ex_data(const X509_STORE *ctx, int idx); +int X509_STORE_set_ex_data(X509_STORE *xs, int idx, void *data); +void *X509_STORE_get_ex_data(const X509_STORE *xs, int idx); X509_STORE_CTX *X509_STORE_CTX_new_ex(OSSL_LIB_CTX *libctx, const char *propq); X509_STORE_CTX *X509_STORE_CTX_new(void); @@ -565,11 +567,14 @@ int X509_STORE_CTX_get1_issuer(X509 **issuer, X509_STORE_CTX *ctx, X509 *x); void X509_STORE_CTX_free(X509_STORE_CTX *ctx); int X509_STORE_CTX_init(X509_STORE_CTX *ctx, X509_STORE *trust_store, X509 *target, STACK_OF(X509) *untrusted); +int X509_STORE_CTX_init_rpk(X509_STORE_CTX *ctx, X509_STORE *trust_store, + EVP_PKEY* rpk); void X509_STORE_CTX_set0_trusted_stack(X509_STORE_CTX *ctx, STACK_OF(X509) *sk); void X509_STORE_CTX_cleanup(X509_STORE_CTX *ctx); X509_STORE *X509_STORE_CTX_get0_store(const X509_STORE_CTX *ctx); X509 *X509_STORE_CTX_get0_cert(const X509_STORE_CTX *ctx); +EVP_PKEY *X509_STORE_CTX_get0_rpk(const X509_STORE_CTX *ctx); STACK_OF(X509)* X509_STORE_CTX_get0_untrusted(const X509_STORE_CTX *ctx); void X509_STORE_CTX_set0_untrusted(X509_STORE_CTX *ctx, STACK_OF(X509) *sk); void X509_STORE_CTX_set_verify_cb(X509_STORE_CTX *ctx, @@ -579,6 +584,8 @@ X509_STORE_CTX_verify_fn X509_STORE_CTX_get_verify(const X509_STORE_CTX *ctx); X509_STORE_CTX_get_issuer_fn X509_STORE_CTX_get_get_issuer(const X509_STORE_CTX *ctx); X509_STORE_CTX_check_issued_fn X509_STORE_CTX_get_check_issued(const X509_STORE_CTX *ctx); X509_STORE_CTX_check_revocation_fn X509_STORE_CTX_get_check_revocation(const X509_STORE_CTX *ctx); +void X509_STORE_CTX_set_get_crl(X509_STORE_CTX *ctx, + X509_STORE_CTX_get_crl_fn get_crl); X509_STORE_CTX_get_crl_fn X509_STORE_CTX_get_get_crl(const X509_STORE_CTX *ctx); X509_STORE_CTX_check_crl_fn X509_STORE_CTX_get_check_crl(const X509_STORE_CTX *ctx); X509_STORE_CTX_cert_crl_fn X509_STORE_CTX_get_cert_crl(const X509_STORE_CTX *ctx); @@ -600,7 +607,7 @@ X509_STORE_CTX_cleanup_fn X509_STORE_CTX_get_cleanup(const X509_STORE_CTX *ctx); # define X509_STORE_get1_crl X509_STORE_CTX_get1_crls #endif -X509_LOOKUP *X509_STORE_add_lookup(X509_STORE *v, X509_LOOKUP_METHOD *m); +X509_LOOKUP *X509_STORE_add_lookup(X509_STORE *xs, X509_LOOKUP_METHOD *m); X509_LOOKUP_METHOD *X509_LOOKUP_hash_dir(void); X509_LOOKUP_METHOD *X509_LOOKUP_file(void); X509_LOOKUP_METHOD *X509_LOOKUP_store(void); @@ -685,8 +692,8 @@ X509_LOOKUP_get_by_alias_fn X509_LOOKUP_meth_get_get_by_alias( const X509_LOOKUP_METHOD *method); -int X509_STORE_add_cert(X509_STORE *ctx, X509 *x); -int X509_STORE_add_crl(X509_STORE *ctx, X509_CRL *x); +int X509_STORE_add_cert(X509_STORE *xs, X509 *x); +int X509_STORE_add_crl(X509_STORE *xs, X509_CRL *x); int X509_STORE_CTX_get_by_subject(const X509_STORE_CTX *vs, X509_LOOKUP_TYPE type, @@ -730,23 +737,21 @@ void *X509_LOOKUP_get_method_data(const X509_LOOKUP *ctx); X509_STORE *X509_LOOKUP_get_store(const X509_LOOKUP *ctx); int X509_LOOKUP_shutdown(X509_LOOKUP *ctx); -int X509_STORE_load_file(X509_STORE *ctx, const char *file); -int X509_STORE_load_path(X509_STORE *ctx, const char *path); -int X509_STORE_load_store(X509_STORE *ctx, const char *store); -int X509_STORE_load_locations(X509_STORE *ctx, - const char *file, - const char *dir); -int X509_STORE_set_default_paths(X509_STORE *ctx); +int X509_STORE_load_file(X509_STORE *xs, const char *file); +int X509_STORE_load_path(X509_STORE *xs, const char *path); +int X509_STORE_load_store(X509_STORE *xs, const char *store); +int X509_STORE_load_locations(X509_STORE *s, const char *file, const char *dir); +int X509_STORE_set_default_paths(X509_STORE *xs); -int X509_STORE_load_file_ex(X509_STORE *ctx, const char *file, +int X509_STORE_load_file_ex(X509_STORE *xs, const char *file, OSSL_LIB_CTX *libctx, const char *propq); -int X509_STORE_load_store_ex(X509_STORE *ctx, const char *store, +int X509_STORE_load_store_ex(X509_STORE *xs, const char *store, OSSL_LIB_CTX *libctx, const char *propq); -int X509_STORE_load_locations_ex(X509_STORE *ctx, const char *file, - const char *dir, OSSL_LIB_CTX *libctx, - const char *propq); -int X509_STORE_set_default_paths_ex(X509_STORE *ctx, OSSL_LIB_CTX *libctx, - const char *propq); +int X509_STORE_load_locations_ex(X509_STORE *xs, + const char *file, const char *dir, + OSSL_LIB_CTX *libctx, const char *propq); +int X509_STORE_set_default_paths_ex(X509_STORE *xs, + OSSL_LIB_CTX *libctx, const char *propq); #define X509_STORE_CTX_get_ex_new_index(l, p, newf, dupf, freef) \ CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_X509_STORE_CTX, l, p, newf, dupf, freef) @@ -764,6 +769,7 @@ X509_STORE_CTX *X509_STORE_CTX_get0_parent_ctx(const X509_STORE_CTX *ctx); STACK_OF(X509) *X509_STORE_CTX_get0_chain(const X509_STORE_CTX *ctx); STACK_OF(X509) *X509_STORE_CTX_get1_chain(const X509_STORE_CTX *ctx); void X509_STORE_CTX_set_cert(X509_STORE_CTX *ctx, X509 *target); +void X509_STORE_CTX_set0_rpk(X509_STORE_CTX *ctx, EVP_PKEY *target); void X509_STORE_CTX_set0_verified_chain(X509_STORE_CTX *c, STACK_OF(X509) *sk); void X509_STORE_CTX_set0_crls(X509_STORE_CTX *ctx, STACK_OF(X509_CRL) *sk); int X509_STORE_CTX_set_purpose(X509_STORE_CTX *ctx, int purpose); @@ -773,6 +779,8 @@ int X509_STORE_CTX_purpose_inherit(X509_STORE_CTX *ctx, int def_purpose, void X509_STORE_CTX_set_flags(X509_STORE_CTX *ctx, unsigned long flags); void X509_STORE_CTX_set_time(X509_STORE_CTX *ctx, unsigned long flags, time_t t); +void X509_STORE_CTX_set_current_reasons(X509_STORE_CTX *ctx, + unsigned int current_reasons); X509_POLICY_TREE *X509_STORE_CTX_get0_policy_tree(const X509_STORE_CTX *ctx); int X509_STORE_CTX_get_explicit_policy(const X509_STORE_CTX *ctx); @@ -804,6 +812,7 @@ int X509_VERIFY_PARAM_clear_flags(X509_VERIFY_PARAM *param, unsigned long flags); unsigned long X509_VERIFY_PARAM_get_flags(const X509_VERIFY_PARAM *param); int X509_VERIFY_PARAM_set_purpose(X509_VERIFY_PARAM *param, int purpose); +int X509_VERIFY_PARAM_get_purpose(const X509_VERIFY_PARAM *param); int X509_VERIFY_PARAM_set_trust(X509_VERIFY_PARAM *param, int trust); void X509_VERIFY_PARAM_set_depth(X509_VERIFY_PARAM *param, int depth); void X509_VERIFY_PARAM_set_auth_level(X509_VERIFY_PARAM *param, int auth_level); diff --git a/deps/openssl/config/archs/VC-WIN64A/no-asm/include/openssl/x509v3.h b/deps/openssl/config/archs/VC-WIN64A/no-asm/include/openssl/x509v3.h index ed08a546f9813d..362ce3fb4387f7 100644 --- a/deps/openssl/config/archs/VC-WIN64A/no-asm/include/openssl/x509v3.h +++ b/deps/openssl/config/archs/VC-WIN64A/no-asm/include/openssl/x509v3.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by makefile from include/openssl/x509v3.h.in * - * Copyright 1999-2023 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1999-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -25,6 +25,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -146,6 +149,11 @@ typedef struct BASIC_CONSTRAINTS_st { ASN1_INTEGER *pathlen; } BASIC_CONSTRAINTS; +typedef struct OSSL_BASIC_ATTR_CONSTRAINTS_st { + int authority; + ASN1_INTEGER *pathlen; +} OSSL_BASIC_ATTR_CONSTRAINTS; + typedef struct PKEY_USAGE_PERIOD_st { ASN1_GENERALIZEDTIME *notBefore; ASN1_GENERALIZEDTIME *notAfter; @@ -198,6 +206,8 @@ typedef struct ACCESS_DESCRIPTION_st { GENERAL_NAME *location; } ACCESS_DESCRIPTION; +int GENERAL_NAME_set1_X509_NAME(GENERAL_NAME **tgt, const X509_NAME *src); + SKM_DEFINE_STACK_OF_INTERNAL(ACCESS_DESCRIPTION, ACCESS_DESCRIPTION, ACCESS_DESCRIPTION) #define sk_ACCESS_DESCRIPTION_num(sk) OPENSSL_sk_num(ossl_check_const_ACCESS_DESCRIPTION_sk_type(sk)) #define sk_ACCESS_DESCRIPTION_value(sk, idx) ((ACCESS_DESCRIPTION *)OPENSSL_sk_value(ossl_check_const_ACCESS_DESCRIPTION_sk_type(sk), (idx))) @@ -294,6 +304,7 @@ typedef struct DIST_POINT_NAME_st { /* If relativename then this contains the full distribution point name */ X509_NAME *dpname; } DIST_POINT_NAME; +DECLARE_ASN1_DUP_FUNCTION(DIST_POINT_NAME) /* All existing reasons */ # define CRLDP_ALL_REASONS 0x807f @@ -659,15 +670,16 @@ struct ISSUING_DIST_POINT_st { # define EXFLAG_SAN_CRITICAL 0x80000 # define EXFLAG_NO_FINGERPRINT 0x100000 -# define KU_DIGITAL_SIGNATURE 0x0080 -# define KU_NON_REPUDIATION 0x0040 -# define KU_KEY_ENCIPHERMENT 0x0020 -# define KU_DATA_ENCIPHERMENT 0x0010 -# define KU_KEY_AGREEMENT 0x0008 -# define KU_KEY_CERT_SIGN 0x0004 -# define KU_CRL_SIGN 0x0002 -# define KU_ENCIPHER_ONLY 0x0001 -# define KU_DECIPHER_ONLY 0x8000 +/* https://datatracker.ietf.org/doc/html/rfc5280#section-4.2.1.3 */ +# define KU_DIGITAL_SIGNATURE X509v3_KU_DIGITAL_SIGNATURE +# define KU_NON_REPUDIATION X509v3_KU_NON_REPUDIATION +# define KU_KEY_ENCIPHERMENT X509v3_KU_KEY_ENCIPHERMENT +# define KU_DATA_ENCIPHERMENT X509v3_KU_DATA_ENCIPHERMENT +# define KU_KEY_AGREEMENT X509v3_KU_KEY_AGREEMENT +# define KU_KEY_CERT_SIGN X509v3_KU_KEY_CERT_SIGN +# define KU_CRL_SIGN X509v3_KU_CRL_SIGN +# define KU_ENCIPHER_ONLY X509v3_KU_ENCIPHER_ONLY +# define KU_DECIPHER_ONLY X509v3_KU_DECIPHER_ONLY # define NS_SSL_CLIENT 0x80 # define NS_SSL_SERVER 0x40 @@ -729,7 +741,7 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_PURPOSE, X509_PURPOSE, X509_PURPOSE) #define sk_X509_PURPOSE_set_cmp_func(sk, cmp) ((sk_X509_PURPOSE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_X509_PURPOSE_sk_type(sk), ossl_check_X509_PURPOSE_compfunc_type(cmp))) - +# define X509_PURPOSE_DEFAULT_ANY 0 # define X509_PURPOSE_SSL_CLIENT 1 # define X509_PURPOSE_SSL_SERVER 2 # define X509_PURPOSE_NS_SSL_SERVER 3 @@ -739,9 +751,10 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_PURPOSE, X509_PURPOSE, X509_PURPOSE) # define X509_PURPOSE_ANY 7 # define X509_PURPOSE_OCSP_HELPER 8 # define X509_PURPOSE_TIMESTAMP_SIGN 9 +# define X509_PURPOSE_CODE_SIGN 10 # define X509_PURPOSE_MIN 1 -# define X509_PURPOSE_MAX 9 +# define X509_PURPOSE_MAX 10 /* Flags for X509V3_EXT_print() */ @@ -767,6 +780,7 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_PURPOSE, X509_PURPOSE, X509_PURPOSE) # define X509V3_ADD_SILENT 0x10 DECLARE_ASN1_FUNCTIONS(BASIC_CONSTRAINTS) +DECLARE_ASN1_FUNCTIONS(OSSL_BASIC_ATTR_CONSTRAINTS) DECLARE_ASN1_FUNCTIONS(SXNET) DECLARE_ASN1_FUNCTIONS(SXNETID) @@ -976,7 +990,6 @@ int X509V3_extensions_print(BIO *out, const char *title, int X509_check_ca(X509 *x); int X509_check_purpose(X509 *x, int id, int ca); int X509_supported_extension(X509_EXTENSION *ex); -int X509_PURPOSE_set(int *p, int purpose); int X509_check_issued(X509 *issuer, X509 *subject); int X509_check_akid(const X509 *issuer, const AUTHORITY_KEYID *akid); void X509_set_proxy_flag(X509 *x); @@ -992,22 +1005,26 @@ const GENERAL_NAMES *X509_get0_authority_issuer(X509 *x); const ASN1_INTEGER *X509_get0_authority_serial(X509 *x); int X509_PURPOSE_get_count(void); -X509_PURPOSE *X509_PURPOSE_get0(int idx); +int X509_PURPOSE_get_unused_id(OSSL_LIB_CTX *libctx); int X509_PURPOSE_get_by_sname(const char *sname); int X509_PURPOSE_get_by_id(int id); int X509_PURPOSE_add(int id, int trust, int flags, int (*ck) (const X509_PURPOSE *, const X509 *, int), const char *name, const char *sname, void *arg); +void X509_PURPOSE_cleanup(void); + +X509_PURPOSE *X509_PURPOSE_get0(int idx); +int X509_PURPOSE_get_id(const X509_PURPOSE *); char *X509_PURPOSE_get0_name(const X509_PURPOSE *xp); char *X509_PURPOSE_get0_sname(const X509_PURPOSE *xp); int X509_PURPOSE_get_trust(const X509_PURPOSE *xp); -void X509_PURPOSE_cleanup(void); -int X509_PURPOSE_get_id(const X509_PURPOSE *); +int X509_PURPOSE_set(int *p, int purpose); STACK_OF(OPENSSL_STRING) *X509_get1_email(X509 *x); STACK_OF(OPENSSL_STRING) *X509_REQ_get1_email(X509_REQ *x); void X509_email_free(STACK_OF(OPENSSL_STRING) *sk); STACK_OF(OPENSSL_STRING) *X509_get1_ocsp(X509 *x); + /* Flags for X509_check_* functions */ /* @@ -1444,6 +1461,507 @@ const ASN1_PRINTABLESTRING *PROFESSION_INFO_get0_registrationNumber( void PROFESSION_INFO_set0_registrationNumber( PROFESSION_INFO *pi, ASN1_PRINTABLESTRING *rn); +int OSSL_GENERAL_NAMES_print(BIO *out, GENERAL_NAMES *gens, int indent); + +typedef STACK_OF(X509_ATTRIBUTE) OSSL_ATTRIBUTES_SYNTAX; +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTES_SYNTAX) + +typedef STACK_OF(USERNOTICE) OSSL_USER_NOTICE_SYNTAX; +DECLARE_ASN1_FUNCTIONS(OSSL_USER_NOTICE_SYNTAX) + +SKM_DEFINE_STACK_OF_INTERNAL(USERNOTICE, USERNOTICE, USERNOTICE) +#define sk_USERNOTICE_num(sk) OPENSSL_sk_num(ossl_check_const_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_value(sk, idx) ((USERNOTICE *)OPENSSL_sk_value(ossl_check_const_USERNOTICE_sk_type(sk), (idx))) +#define sk_USERNOTICE_new(cmp) ((STACK_OF(USERNOTICE) *)OPENSSL_sk_new(ossl_check_USERNOTICE_compfunc_type(cmp))) +#define sk_USERNOTICE_new_null() ((STACK_OF(USERNOTICE) *)OPENSSL_sk_new_null()) +#define sk_USERNOTICE_new_reserve(cmp, n) ((STACK_OF(USERNOTICE) *)OPENSSL_sk_new_reserve(ossl_check_USERNOTICE_compfunc_type(cmp), (n))) +#define sk_USERNOTICE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_USERNOTICE_sk_type(sk), (n)) +#define sk_USERNOTICE_free(sk) OPENSSL_sk_free(ossl_check_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_zero(sk) OPENSSL_sk_zero(ossl_check_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_delete(sk, i) ((USERNOTICE *)OPENSSL_sk_delete(ossl_check_USERNOTICE_sk_type(sk), (i))) +#define sk_USERNOTICE_delete_ptr(sk, ptr) ((USERNOTICE *)OPENSSL_sk_delete_ptr(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr))) +#define sk_USERNOTICE_push(sk, ptr) OPENSSL_sk_push(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr)) +#define sk_USERNOTICE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr)) +#define sk_USERNOTICE_pop(sk) ((USERNOTICE *)OPENSSL_sk_pop(ossl_check_USERNOTICE_sk_type(sk))) +#define sk_USERNOTICE_shift(sk) ((USERNOTICE *)OPENSSL_sk_shift(ossl_check_USERNOTICE_sk_type(sk))) +#define sk_USERNOTICE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_USERNOTICE_sk_type(sk),ossl_check_USERNOTICE_freefunc_type(freefunc)) +#define sk_USERNOTICE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr), (idx)) +#define sk_USERNOTICE_set(sk, idx, ptr) ((USERNOTICE *)OPENSSL_sk_set(ossl_check_USERNOTICE_sk_type(sk), (idx), ossl_check_USERNOTICE_type(ptr))) +#define sk_USERNOTICE_find(sk, ptr) OPENSSL_sk_find(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr)) +#define sk_USERNOTICE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr)) +#define sk_USERNOTICE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr), pnum) +#define sk_USERNOTICE_sort(sk) OPENSSL_sk_sort(ossl_check_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_dup(sk) ((STACK_OF(USERNOTICE) *)OPENSSL_sk_dup(ossl_check_const_USERNOTICE_sk_type(sk))) +#define sk_USERNOTICE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(USERNOTICE) *)OPENSSL_sk_deep_copy(ossl_check_const_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_copyfunc_type(copyfunc), ossl_check_USERNOTICE_freefunc_type(freefunc))) +#define sk_USERNOTICE_set_cmp_func(sk, cmp) ((sk_USERNOTICE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_compfunc_type(cmp))) + + +typedef struct OSSL_ROLE_SPEC_CERT_ID_st { + GENERAL_NAME *roleName; + GENERAL_NAME *roleCertIssuer; + ASN1_INTEGER *roleCertSerialNumber; + GENERAL_NAMES *roleCertLocator; +} OSSL_ROLE_SPEC_CERT_ID; + +DECLARE_ASN1_FUNCTIONS(OSSL_ROLE_SPEC_CERT_ID) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ROLE_SPEC_CERT_ID, OSSL_ROLE_SPEC_CERT_ID, OSSL_ROLE_SPEC_CERT_ID) +#define sk_OSSL_ROLE_SPEC_CERT_ID_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_value(sk, idx) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_value(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), (idx))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_new(cmp) ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_new(ossl_check_OSSL_ROLE_SPEC_CERT_ID_compfunc_type(cmp))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_new_null() ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ROLE_SPEC_CERT_ID_new_reserve(cmp, n) ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ROLE_SPEC_CERT_ID_compfunc_type(cmp), (n))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), (n)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_delete(sk, i) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_delete(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), (i))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_delete_ptr(sk, ptr) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_pop(sk) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_pop(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_shift(sk) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_shift(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk),ossl_check_OSSL_ROLE_SPEC_CERT_ID_freefunc_type(freefunc)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr), (idx)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_set(sk, idx, ptr) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_set(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), (idx), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr), pnum) +#define sk_OSSL_ROLE_SPEC_CERT_ID_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_dup(sk) ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_copyfunc_type(copyfunc), ossl_check_OSSL_ROLE_SPEC_CERT_ID_freefunc_type(freefunc))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_set_cmp_func(sk, cmp) ((sk_OSSL_ROLE_SPEC_CERT_ID_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_compfunc_type(cmp))) + + +typedef STACK_OF(OSSL_ROLE_SPEC_CERT_ID) OSSL_ROLE_SPEC_CERT_ID_SYNTAX; + +DECLARE_ASN1_FUNCTIONS(OSSL_ROLE_SPEC_CERT_ID_SYNTAX) +typedef struct OSSL_HASH_st { + X509_ALGOR *algorithmIdentifier; + ASN1_BIT_STRING *hashValue; +} OSSL_HASH; + +typedef struct OSSL_INFO_SYNTAX_POINTER_st { + GENERAL_NAMES *name; + OSSL_HASH *hash; +} OSSL_INFO_SYNTAX_POINTER; + +# define OSSL_INFO_SYNTAX_TYPE_CONTENT 0 +# define OSSL_INFO_SYNTAX_TYPE_POINTER 1 + +typedef struct OSSL_INFO_SYNTAX_st { + int type; + union { + ASN1_STRING *content; + OSSL_INFO_SYNTAX_POINTER *pointer; + } choice; +} OSSL_INFO_SYNTAX; + +typedef struct OSSL_PRIVILEGE_POLICY_ID_st { + ASN1_OBJECT *privilegePolicy; + OSSL_INFO_SYNTAX *privPolSyntax; +} OSSL_PRIVILEGE_POLICY_ID; + +typedef struct OSSL_ATTRIBUTE_DESCRIPTOR_st { + ASN1_OBJECT *identifier; + ASN1_STRING *attributeSyntax; + ASN1_UTF8STRING *name; + ASN1_UTF8STRING *description; + OSSL_PRIVILEGE_POLICY_ID *dominationRule; +} OSSL_ATTRIBUTE_DESCRIPTOR; + +DECLARE_ASN1_FUNCTIONS(OSSL_HASH) +DECLARE_ASN1_FUNCTIONS(OSSL_INFO_SYNTAX) +DECLARE_ASN1_FUNCTIONS(OSSL_INFO_SYNTAX_POINTER) +DECLARE_ASN1_FUNCTIONS(OSSL_PRIVILEGE_POLICY_ID) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_DESCRIPTOR) + +typedef struct OSSL_TIME_SPEC_ABSOLUTE_st { + ASN1_GENERALIZEDTIME *startTime; + ASN1_GENERALIZEDTIME *endTime; +} OSSL_TIME_SPEC_ABSOLUTE; + +typedef struct OSSL_DAY_TIME_st { + ASN1_INTEGER *hour; + ASN1_INTEGER *minute; + ASN1_INTEGER *second; +} OSSL_DAY_TIME; + +typedef struct OSSL_DAY_TIME_BAND_st { + OSSL_DAY_TIME *startDayTime; + OSSL_DAY_TIME *endDayTime; +} OSSL_DAY_TIME_BAND; + +# define OSSL_NAMED_DAY_TYPE_INT 0 +# define OSSL_NAMED_DAY_TYPE_BIT 1 +# define OSSL_NAMED_DAY_INT_SUN 1 +# define OSSL_NAMED_DAY_INT_MON 2 +# define OSSL_NAMED_DAY_INT_TUE 3 +# define OSSL_NAMED_DAY_INT_WED 4 +# define OSSL_NAMED_DAY_INT_THU 5 +# define OSSL_NAMED_DAY_INT_FRI 6 +# define OSSL_NAMED_DAY_INT_SAT 7 +# define OSSL_NAMED_DAY_BIT_SUN 0 +# define OSSL_NAMED_DAY_BIT_MON 1 +# define OSSL_NAMED_DAY_BIT_TUE 2 +# define OSSL_NAMED_DAY_BIT_WED 3 +# define OSSL_NAMED_DAY_BIT_THU 4 +# define OSSL_NAMED_DAY_BIT_FRI 5 +# define OSSL_NAMED_DAY_BIT_SAT 6 + +typedef struct OSSL_NAMED_DAY_st { + int type; + union { + ASN1_INTEGER *intNamedDays; + ASN1_BIT_STRING *bitNamedDays; + } choice; +} OSSL_NAMED_DAY; + +# define OSSL_TIME_SPEC_X_DAY_OF_FIRST 0 +# define OSSL_TIME_SPEC_X_DAY_OF_SECOND 1 +# define OSSL_TIME_SPEC_X_DAY_OF_THIRD 2 +# define OSSL_TIME_SPEC_X_DAY_OF_FOURTH 3 +# define OSSL_TIME_SPEC_X_DAY_OF_FIFTH 4 + +typedef struct OSSL_TIME_SPEC_X_DAY_OF_st { + int type; + union { + OSSL_NAMED_DAY *first; + OSSL_NAMED_DAY *second; + OSSL_NAMED_DAY *third; + OSSL_NAMED_DAY *fourth; + OSSL_NAMED_DAY *fifth; + } choice; +} OSSL_TIME_SPEC_X_DAY_OF; + +# define OSSL_TIME_SPEC_DAY_TYPE_INT 0 +# define OSSL_TIME_SPEC_DAY_TYPE_BIT 1 +# define OSSL_TIME_SPEC_DAY_TYPE_DAY_OF 2 +# define OSSL_TIME_SPEC_DAY_BIT_SUN 0 +# define OSSL_TIME_SPEC_DAY_BIT_MON 1 +# define OSSL_TIME_SPEC_DAY_BIT_TUE 2 +# define OSSL_TIME_SPEC_DAY_BIT_WED 3 +# define OSSL_TIME_SPEC_DAY_BIT_THU 4 +# define OSSL_TIME_SPEC_DAY_BIT_FRI 5 +# define OSSL_TIME_SPEC_DAY_BIT_SAT 6 +# define OSSL_TIME_SPEC_DAY_INT_SUN 1 +# define OSSL_TIME_SPEC_DAY_INT_MON 2 +# define OSSL_TIME_SPEC_DAY_INT_TUE 3 +# define OSSL_TIME_SPEC_DAY_INT_WED 4 +# define OSSL_TIME_SPEC_DAY_INT_THU 5 +# define OSSL_TIME_SPEC_DAY_INT_FRI 6 +# define OSSL_TIME_SPEC_DAY_INT_SAT 7 + +typedef struct OSSL_TIME_SPEC_DAY_st { + int type; + union { + STACK_OF(ASN1_INTEGER) *intDay; + ASN1_BIT_STRING *bitDay; + OSSL_TIME_SPEC_X_DAY_OF *dayOf; + } choice; +} OSSL_TIME_SPEC_DAY; + +# define OSSL_TIME_SPEC_WEEKS_TYPE_ALL 0 +# define OSSL_TIME_SPEC_WEEKS_TYPE_INT 1 +# define OSSL_TIME_SPEC_WEEKS_TYPE_BIT 2 +# define OSSL_TIME_SPEC_BIT_WEEKS_1 0 +# define OSSL_TIME_SPEC_BIT_WEEKS_2 1 +# define OSSL_TIME_SPEC_BIT_WEEKS_3 2 +# define OSSL_TIME_SPEC_BIT_WEEKS_4 3 +# define OSSL_TIME_SPEC_BIT_WEEKS_5 4 + +typedef struct OSSL_TIME_SPEC_WEEKS_st { + int type; + union { + ASN1_NULL *allWeeks; + STACK_OF(ASN1_INTEGER) *intWeek; + ASN1_BIT_STRING *bitWeek; + } choice; +} OSSL_TIME_SPEC_WEEKS; + +# define OSSL_TIME_SPEC_MONTH_TYPE_ALL 0 +# define OSSL_TIME_SPEC_MONTH_TYPE_INT 1 +# define OSSL_TIME_SPEC_MONTH_TYPE_BIT 2 +# define OSSL_TIME_SPEC_INT_MONTH_JAN 1 +# define OSSL_TIME_SPEC_INT_MONTH_FEB 2 +# define OSSL_TIME_SPEC_INT_MONTH_MAR 3 +# define OSSL_TIME_SPEC_INT_MONTH_APR 4 +# define OSSL_TIME_SPEC_INT_MONTH_MAY 5 +# define OSSL_TIME_SPEC_INT_MONTH_JUN 6 +# define OSSL_TIME_SPEC_INT_MONTH_JUL 7 +# define OSSL_TIME_SPEC_INT_MONTH_AUG 8 +# define OSSL_TIME_SPEC_INT_MONTH_SEP 9 +# define OSSL_TIME_SPEC_INT_MONTH_OCT 10 +# define OSSL_TIME_SPEC_INT_MONTH_NOV 11 +# define OSSL_TIME_SPEC_INT_MONTH_DEC 12 +# define OSSL_TIME_SPEC_BIT_MONTH_JAN 0 +# define OSSL_TIME_SPEC_BIT_MONTH_FEB 1 +# define OSSL_TIME_SPEC_BIT_MONTH_MAR 2 +# define OSSL_TIME_SPEC_BIT_MONTH_APR 3 +# define OSSL_TIME_SPEC_BIT_MONTH_MAY 4 +# define OSSL_TIME_SPEC_BIT_MONTH_JUN 5 +# define OSSL_TIME_SPEC_BIT_MONTH_JUL 6 +# define OSSL_TIME_SPEC_BIT_MONTH_AUG 7 +# define OSSL_TIME_SPEC_BIT_MONTH_SEP 8 +# define OSSL_TIME_SPEC_BIT_MONTH_OCT 9 +# define OSSL_TIME_SPEC_BIT_MONTH_NOV 10 +# define OSSL_TIME_SPEC_BIT_MONTH_DEC 11 + +typedef struct OSSL_TIME_SPEC_MONTH_st { + int type; + union { + ASN1_NULL *allMonths; + STACK_OF(ASN1_INTEGER) *intMonth; + ASN1_BIT_STRING *bitMonth; + } choice; +} OSSL_TIME_SPEC_MONTH; + +typedef struct OSSL_TIME_PERIOD_st { + STACK_OF(OSSL_DAY_TIME_BAND) *timesOfDay; + OSSL_TIME_SPEC_DAY *days; + OSSL_TIME_SPEC_WEEKS *weeks; + OSSL_TIME_SPEC_MONTH *months; + STACK_OF(ASN1_INTEGER) *years; +} OSSL_TIME_PERIOD; + +# define OSSL_TIME_SPEC_TIME_TYPE_ABSOLUTE 0 +# define OSSL_TIME_SPEC_TIME_TYPE_PERIODIC 1 + +typedef struct OSSL_TIME_SPEC_TIME_st { + int type; + union { + OSSL_TIME_SPEC_ABSOLUTE *absolute; + STACK_OF(OSSL_TIME_PERIOD) *periodic; + } choice; +} OSSL_TIME_SPEC_TIME; + +typedef struct OSSL_TIME_SPEC_st { + OSSL_TIME_SPEC_TIME *time; + ASN1_BOOLEAN notThisTime; + ASN1_INTEGER *timeZone; +} OSSL_TIME_SPEC; + +DECLARE_ASN1_FUNCTIONS(OSSL_DAY_TIME) +DECLARE_ASN1_FUNCTIONS(OSSL_DAY_TIME_BAND) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_DAY) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_WEEKS) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_MONTH) +DECLARE_ASN1_FUNCTIONS(OSSL_NAMED_DAY) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_X_DAY_OF) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_ABSOLUTE) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_TIME) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_PERIOD) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_TIME_PERIOD, OSSL_TIME_PERIOD, OSSL_TIME_PERIOD) +#define sk_OSSL_TIME_PERIOD_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_value(sk, idx) ((OSSL_TIME_PERIOD *)OPENSSL_sk_value(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk), (idx))) +#define sk_OSSL_TIME_PERIOD_new(cmp) ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_new(ossl_check_OSSL_TIME_PERIOD_compfunc_type(cmp))) +#define sk_OSSL_TIME_PERIOD_new_null() ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_new_null()) +#define sk_OSSL_TIME_PERIOD_new_reserve(cmp, n) ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_TIME_PERIOD_compfunc_type(cmp), (n))) +#define sk_OSSL_TIME_PERIOD_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), (n)) +#define sk_OSSL_TIME_PERIOD_free(sk) OPENSSL_sk_free(ossl_check_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_delete(sk, i) ((OSSL_TIME_PERIOD *)OPENSSL_sk_delete(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), (i))) +#define sk_OSSL_TIME_PERIOD_delete_ptr(sk, ptr) ((OSSL_TIME_PERIOD *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr))) +#define sk_OSSL_TIME_PERIOD_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr)) +#define sk_OSSL_TIME_PERIOD_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr)) +#define sk_OSSL_TIME_PERIOD_pop(sk) ((OSSL_TIME_PERIOD *)OPENSSL_sk_pop(ossl_check_OSSL_TIME_PERIOD_sk_type(sk))) +#define sk_OSSL_TIME_PERIOD_shift(sk) ((OSSL_TIME_PERIOD *)OPENSSL_sk_shift(ossl_check_OSSL_TIME_PERIOD_sk_type(sk))) +#define sk_OSSL_TIME_PERIOD_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_TIME_PERIOD_sk_type(sk),ossl_check_OSSL_TIME_PERIOD_freefunc_type(freefunc)) +#define sk_OSSL_TIME_PERIOD_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr), (idx)) +#define sk_OSSL_TIME_PERIOD_set(sk, idx, ptr) ((OSSL_TIME_PERIOD *)OPENSSL_sk_set(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), (idx), ossl_check_OSSL_TIME_PERIOD_type(ptr))) +#define sk_OSSL_TIME_PERIOD_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr)) +#define sk_OSSL_TIME_PERIOD_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr)) +#define sk_OSSL_TIME_PERIOD_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr), pnum) +#define sk_OSSL_TIME_PERIOD_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_dup(sk) ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_dup(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk))) +#define sk_OSSL_TIME_PERIOD_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_copyfunc_type(copyfunc), ossl_check_OSSL_TIME_PERIOD_freefunc_type(freefunc))) +#define sk_OSSL_TIME_PERIOD_set_cmp_func(sk, cmp) ((sk_OSSL_TIME_PERIOD_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_compfunc_type(cmp))) + + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_DAY_TIME_BAND, OSSL_DAY_TIME_BAND, OSSL_DAY_TIME_BAND) +#define sk_OSSL_DAY_TIME_BAND_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_value(sk, idx) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_value(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk), (idx))) +#define sk_OSSL_DAY_TIME_BAND_new(cmp) ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_new(ossl_check_OSSL_DAY_TIME_BAND_compfunc_type(cmp))) +#define sk_OSSL_DAY_TIME_BAND_new_null() ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_new_null()) +#define sk_OSSL_DAY_TIME_BAND_new_reserve(cmp, n) ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_DAY_TIME_BAND_compfunc_type(cmp), (n))) +#define sk_OSSL_DAY_TIME_BAND_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), (n)) +#define sk_OSSL_DAY_TIME_BAND_free(sk) OPENSSL_sk_free(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_delete(sk, i) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_delete(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), (i))) +#define sk_OSSL_DAY_TIME_BAND_delete_ptr(sk, ptr) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr))) +#define sk_OSSL_DAY_TIME_BAND_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr)) +#define sk_OSSL_DAY_TIME_BAND_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr)) +#define sk_OSSL_DAY_TIME_BAND_pop(sk) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_pop(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk))) +#define sk_OSSL_DAY_TIME_BAND_shift(sk) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_shift(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk))) +#define sk_OSSL_DAY_TIME_BAND_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk),ossl_check_OSSL_DAY_TIME_BAND_freefunc_type(freefunc)) +#define sk_OSSL_DAY_TIME_BAND_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr), (idx)) +#define sk_OSSL_DAY_TIME_BAND_set(sk, idx, ptr) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_set(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), (idx), ossl_check_OSSL_DAY_TIME_BAND_type(ptr))) +#define sk_OSSL_DAY_TIME_BAND_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr)) +#define sk_OSSL_DAY_TIME_BAND_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr)) +#define sk_OSSL_DAY_TIME_BAND_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr), pnum) +#define sk_OSSL_DAY_TIME_BAND_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_dup(sk) ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_dup(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk))) +#define sk_OSSL_DAY_TIME_BAND_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_copyfunc_type(copyfunc), ossl_check_OSSL_DAY_TIME_BAND_freefunc_type(freefunc))) +#define sk_OSSL_DAY_TIME_BAND_set_cmp_func(sk, cmp) ((sk_OSSL_DAY_TIME_BAND_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_compfunc_type(cmp))) + + +/* Attribute Type and Value */ +typedef struct atav_st { + ASN1_OBJECT *type; + ASN1_TYPE *value; +} OSSL_ATAV; + +typedef struct ATTRIBUTE_TYPE_MAPPING_st { + ASN1_OBJECT *local; + ASN1_OBJECT *remote; +} OSSL_ATTRIBUTE_TYPE_MAPPING; + +typedef struct ATTRIBUTE_VALUE_MAPPING_st { + OSSL_ATAV *local; + OSSL_ATAV *remote; +} OSSL_ATTRIBUTE_VALUE_MAPPING; + +# define OSSL_ATTR_MAP_TYPE 0 +# define OSSL_ATTR_MAP_VALUE 1 + +typedef struct ATTRIBUTE_MAPPING_st { + int type; + union { + OSSL_ATTRIBUTE_TYPE_MAPPING *typeMappings; + OSSL_ATTRIBUTE_VALUE_MAPPING *typeValueMappings; + } choice; +} OSSL_ATTRIBUTE_MAPPING; + +typedef STACK_OF(OSSL_ATTRIBUTE_MAPPING) OSSL_ATTRIBUTE_MAPPINGS; +DECLARE_ASN1_FUNCTIONS(OSSL_ATAV) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_TYPE_MAPPING) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_VALUE_MAPPING) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_MAPPING) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_MAPPINGS) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ATTRIBUTE_MAPPING, OSSL_ATTRIBUTE_MAPPING, OSSL_ATTRIBUTE_MAPPING) +#define sk_OSSL_ATTRIBUTE_MAPPING_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_value(sk, idx) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_value(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), (idx))) +#define sk_OSSL_ATTRIBUTE_MAPPING_new(cmp) ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_new(ossl_check_OSSL_ATTRIBUTE_MAPPING_compfunc_type(cmp))) +#define sk_OSSL_ATTRIBUTE_MAPPING_new_null() ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ATTRIBUTE_MAPPING_new_reserve(cmp, n) ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ATTRIBUTE_MAPPING_compfunc_type(cmp), (n))) +#define sk_OSSL_ATTRIBUTE_MAPPING_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), (n)) +#define sk_OSSL_ATTRIBUTE_MAPPING_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_delete(sk, i) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_delete(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), (i))) +#define sk_OSSL_ATTRIBUTE_MAPPING_delete_ptr(sk, ptr) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr))) +#define sk_OSSL_ATTRIBUTE_MAPPING_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr)) +#define sk_OSSL_ATTRIBUTE_MAPPING_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr)) +#define sk_OSSL_ATTRIBUTE_MAPPING_pop(sk) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_pop(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk))) +#define sk_OSSL_ATTRIBUTE_MAPPING_shift(sk) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_shift(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk))) +#define sk_OSSL_ATTRIBUTE_MAPPING_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk),ossl_check_OSSL_ATTRIBUTE_MAPPING_freefunc_type(freefunc)) +#define sk_OSSL_ATTRIBUTE_MAPPING_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr), (idx)) +#define sk_OSSL_ATTRIBUTE_MAPPING_set(sk, idx, ptr) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_set(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), (idx), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr))) +#define sk_OSSL_ATTRIBUTE_MAPPING_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr)) +#define sk_OSSL_ATTRIBUTE_MAPPING_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr)) +#define sk_OSSL_ATTRIBUTE_MAPPING_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr), pnum) +#define sk_OSSL_ATTRIBUTE_MAPPING_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_dup(sk) ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk))) +#define sk_OSSL_ATTRIBUTE_MAPPING_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_copyfunc_type(copyfunc), ossl_check_OSSL_ATTRIBUTE_MAPPING_freefunc_type(freefunc))) +#define sk_OSSL_ATTRIBUTE_MAPPING_set_cmp_func(sk, cmp) ((sk_OSSL_ATTRIBUTE_MAPPING_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_compfunc_type(cmp))) + + +# define OSSL_AAA_ATTRIBUTE_TYPE 0 +# define OSSL_AAA_ATTRIBUTE_VALUES 1 + +typedef struct ALLOWED_ATTRIBUTES_CHOICE_st { + int type; + union { + ASN1_OBJECT *attributeType; + X509_ATTRIBUTE *attributeTypeandValues; + } choice; +} OSSL_ALLOWED_ATTRIBUTES_CHOICE; + +typedef struct ALLOWED_ATTRIBUTES_ITEM_st { + STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *attributes; + GENERAL_NAME *holderDomain; +} OSSL_ALLOWED_ATTRIBUTES_ITEM; + +typedef STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) OSSL_ALLOWED_ATTRIBUTES_SYNTAX; + +DECLARE_ASN1_FUNCTIONS(OSSL_ALLOWED_ATTRIBUTES_CHOICE) +DECLARE_ASN1_FUNCTIONS(OSSL_ALLOWED_ATTRIBUTES_ITEM) +DECLARE_ASN1_FUNCTIONS(OSSL_ALLOWED_ATTRIBUTES_SYNTAX) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ALLOWED_ATTRIBUTES_CHOICE, OSSL_ALLOWED_ATTRIBUTES_CHOICE, OSSL_ALLOWED_ATTRIBUTES_CHOICE) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_value(sk, idx) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_value(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), (idx))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_new(cmp) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_new(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_compfunc_type(cmp))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_new_null() ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_new_reserve(cmp, n) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_compfunc_type(cmp), (n))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), (n)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_delete(sk, i) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_delete(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), (i))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_delete_ptr(sk, ptr) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_pop(sk) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_pop(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_shift(sk) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_shift(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk),ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_freefunc_type(freefunc)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr), (idx)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_set(sk, idx, ptr) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_set(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), (idx), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr), pnum) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_dup(sk) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_copyfunc_type(copyfunc), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_freefunc_type(freefunc))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_set_cmp_func(sk, cmp) ((sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_compfunc_type(cmp))) + + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ALLOWED_ATTRIBUTES_ITEM, OSSL_ALLOWED_ATTRIBUTES_ITEM, OSSL_ALLOWED_ATTRIBUTES_ITEM) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_value(sk, idx) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_value(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), (idx))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_new(cmp) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_new(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_compfunc_type(cmp))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_new_null() ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_new_reserve(cmp, n) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_compfunc_type(cmp), (n))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), (n)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_delete(sk, i) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_delete(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), (i))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_delete_ptr(sk, ptr) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_pop(sk) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_pop(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_shift(sk) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_shift(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk),ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_freefunc_type(freefunc)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr), (idx)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_set(sk, idx, ptr) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_set(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), (idx), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr), pnum) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_dup(sk) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_copyfunc_type(copyfunc), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_freefunc_type(freefunc))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_set_cmp_func(sk, cmp) ((sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_compfunc_type(cmp))) + + +typedef struct AA_DIST_POINT_st { + DIST_POINT_NAME *distpoint; + ASN1_BIT_STRING *reasons; + int dp_reasons; + ASN1_BOOLEAN indirectCRL; + ASN1_BOOLEAN containsUserAttributeCerts; + ASN1_BOOLEAN containsAACerts; + ASN1_BOOLEAN containsSOAPublicKeyCerts; +} OSSL_AA_DIST_POINT; + +DECLARE_ASN1_FUNCTIONS(OSSL_AA_DIST_POINT) + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/VC-WIN64A/no-asm/include/progs.h b/deps/openssl/config/archs/VC-WIN64A/no-asm/include/progs.h index be55f61503d405..1b62ec37dec130 100644 --- a/deps/openssl/config/archs/VC-WIN64A/no-asm/include/progs.h +++ b/deps/openssl/config/archs/VC-WIN64A/no-asm/include/progs.h @@ -56,6 +56,7 @@ extern int s_client_main(int argc, char *argv[]); extern int s_server_main(int argc, char *argv[]); extern int s_time_main(int argc, char *argv[]); extern int sess_id_main(int argc, char *argv[]); +extern int skeyutl_main(int argc, char *argv[]); extern int smime_main(int argc, char *argv[]); extern int speed_main(int argc, char *argv[]); extern int spkac_main(int argc, char *argv[]); @@ -110,6 +111,7 @@ extern const OPTIONS s_client_options[]; extern const OPTIONS s_server_options[]; extern const OPTIONS s_time_options[]; extern const OPTIONS sess_id_options[]; +extern const OPTIONS skeyutl_options[]; extern const OPTIONS smime_options[]; extern const OPTIONS speed_options[]; extern const OPTIONS spkac_options[]; diff --git a/deps/openssl/config/archs/VC-WIN64A/no-asm/openssl-cl.gypi b/deps/openssl/config/archs/VC-WIN64A/no-asm/openssl-cl.gypi index 51ab6b0ed07ddd..ff7f1a59ed7849 100644 --- a/deps/openssl/config/archs/VC-WIN64A/no-asm/openssl-cl.gypi +++ b/deps/openssl/config/archs/VC-WIN64A/no-asm/openssl-cl.gypi @@ -66,6 +66,7 @@ 'openssl/apps/s_server.c', 'openssl/apps/s_time.c', 'openssl/apps/sess_id.c', + 'openssl/apps/skeyutl.c', 'openssl/apps/smime.c', 'openssl/apps/speed.c', 'openssl/apps/spkac.c', @@ -81,12 +82,14 @@ 'openssl/apps/lib/app_rand.c', 'openssl/apps/lib/app_x509.c', 'openssl/apps/lib/apps.c', + 'openssl/apps/lib/apps_opt_printf.c', 'openssl/apps/lib/apps_ui.c', 'openssl/apps/lib/columns.c', 'openssl/apps/lib/engine.c', 'openssl/apps/lib/engine_loader.c', 'openssl/apps/lib/fmt.c', 'openssl/apps/lib/http_server.c', + 'openssl/apps/lib/log.c', 'openssl/apps/lib/names.c', 'openssl/apps/lib/opt.c', 'openssl/apps/lib/s_cb.c', diff --git a/deps/openssl/config/archs/VC-WIN64A/no-asm/openssl-fips.gypi b/deps/openssl/config/archs/VC-WIN64A/no-asm/openssl-fips.gypi index 8da150aab54f0c..b55a20cd59d795 100644 --- a/deps/openssl/config/archs/VC-WIN64A/no-asm/openssl-fips.gypi +++ b/deps/openssl/config/archs/VC-WIN64A/no-asm/openssl-fips.gypi @@ -100,14 +100,15 @@ 'openssl/crypto/evp/kem.c', 'openssl/crypto/evp/keymgmt_lib.c', 'openssl/crypto/evp/keymgmt_meth.c', - 'openssl/crypto/evp/m_sigver.c', 'openssl/crypto/evp/mac_lib.c', 'openssl/crypto/evp/mac_meth.c', 'openssl/crypto/evp/p_lib.c', 'openssl/crypto/evp/pmeth_check.c', 'openssl/crypto/evp/pmeth_gn.c', 'openssl/crypto/evp/pmeth_lib.c', + 'openssl/crypto/evp/s_lib.c', 'openssl/crypto/evp/signature.c', + 'openssl/crypto/evp/skeymgmt_meth.c', 'openssl/crypto/ffc/ffc_backend.c', 'openssl/crypto/ffc/ffc_dh.c', 'openssl/crypto/ffc/ffc_key_generate.c', @@ -115,6 +116,8 @@ 'openssl/crypto/ffc/ffc_params.c', 'openssl/crypto/ffc/ffc_params_generate.c', 'openssl/crypto/ffc/ffc_params_validate.c', + 'openssl/crypto/hashtable/hashfunc.c', + 'openssl/crypto/hashtable/hashtable.c', 'openssl/crypto/hmac/hmac.c', 'openssl/crypto/lhash/lhash.c', 'openssl/crypto/asn1_dsa.c', @@ -145,6 +148,16 @@ 'openssl/crypto/threads_none.c', 'openssl/crypto/threads_pthread.c', 'openssl/crypto/threads_win.c', + 'openssl/crypto/time.c', + 'openssl/crypto/ml_dsa/ml_dsa_encoders.c', + 'openssl/crypto/ml_dsa/ml_dsa_key.c', + 'openssl/crypto/ml_dsa/ml_dsa_key_compress.c', + 'openssl/crypto/ml_dsa/ml_dsa_matrix.c', + 'openssl/crypto/ml_dsa/ml_dsa_ntt.c', + 'openssl/crypto/ml_dsa/ml_dsa_params.c', + 'openssl/crypto/ml_dsa/ml_dsa_sample.c', + 'openssl/crypto/ml_dsa/ml_dsa_sign.c', + 'openssl/crypto/ml_kem/ml_kem.c', 'openssl/crypto/modes/cbc128.c', 'openssl/crypto/modes/ccm128.c', 'openssl/crypto/modes/cfb128.c', @@ -153,6 +166,7 @@ 'openssl/crypto/modes/ofb128.c', 'openssl/crypto/modes/wrap128.c', 'openssl/crypto/modes/xts128.c', + 'openssl/crypto/modes/xts128gb.c', 'openssl/crypto/property/defn_cache.c', 'openssl/crypto/property/property.c', 'openssl/crypto/property/property_parse.c', @@ -181,7 +195,23 @@ 'openssl/crypto/sha/sha256.c', 'openssl/crypto/sha/sha3.c', 'openssl/crypto/sha/sha512.c', + 'openssl/crypto/slh_dsa/slh_adrs.c', + 'openssl/crypto/slh_dsa/slh_dsa.c', + 'openssl/crypto/slh_dsa/slh_dsa_hash_ctx.c', + 'openssl/crypto/slh_dsa/slh_dsa_key.c', + 'openssl/crypto/slh_dsa/slh_fors.c', + 'openssl/crypto/slh_dsa/slh_hash.c', + 'openssl/crypto/slh_dsa/slh_hypertree.c', + 'openssl/crypto/slh_dsa/slh_params.c', + 'openssl/crypto/slh_dsa/slh_wots.c', + 'openssl/crypto/slh_dsa/slh_xmss.c', 'openssl/crypto/stack/stack.c', + 'openssl/crypto/thread/arch/thread_none.c', + 'openssl/crypto/thread/arch/thread_posix.c', + 'openssl/crypto/thread/arch/thread_win.c', + 'openssl/crypto/thread/api.c', + 'openssl/crypto/thread/arch.c', + 'openssl/crypto/thread/internal.c', 'openssl/providers/common/der/der_rsa_sig.c', 'openssl/providers/common/bio_prov.c', 'openssl/providers/common/capabilities.c', @@ -190,6 +220,7 @@ 'openssl/providers/common/provider_util.c', 'openssl/providers/common/securitycheck.c', 'openssl/providers/common/securitycheck_fips.c', + 'openssl/providers/fips/fipsindicator.c', 'openssl/providers/fips/fipsprov.c', 'openssl/providers/fips/self_test.c', 'openssl/providers/fips/self_test_kats.c', @@ -227,6 +258,8 @@ 'openssl/providers/implementations/kdfs/sskdf.c', 'openssl/providers/implementations/kdfs/tls1_prf.c', 'openssl/providers/implementations/kdfs/x942kdf.c', + 'openssl/providers/implementations/kem/ml_kem_kem.c', + 'openssl/providers/implementations/kem/mlx_kem.c', 'openssl/providers/implementations/kem/rsa_kem.c', 'openssl/providers/implementations/keymgmt/dh_kmgmt.c', 'openssl/providers/implementations/keymgmt/dsa_kmgmt.c', @@ -234,29 +267,39 @@ 'openssl/providers/implementations/keymgmt/ecx_kmgmt.c', 'openssl/providers/implementations/keymgmt/kdf_legacy_kmgmt.c', 'openssl/providers/implementations/keymgmt/mac_legacy_kmgmt.c', + 'openssl/providers/implementations/keymgmt/ml_dsa_kmgmt.c', + 'openssl/providers/implementations/keymgmt/ml_kem_kmgmt.c', + 'openssl/providers/implementations/keymgmt/mlx_kmgmt.c', 'openssl/providers/implementations/keymgmt/rsa_kmgmt.c', + 'openssl/providers/implementations/keymgmt/slh_dsa_kmgmt.c', 'openssl/providers/implementations/macs/cmac_prov.c', 'openssl/providers/implementations/macs/gmac_prov.c', 'openssl/providers/implementations/macs/hmac_prov.c', 'openssl/providers/implementations/macs/kmac_prov.c', - 'openssl/providers/implementations/rands/crngt.c', 'openssl/providers/implementations/rands/drbg.c', 'openssl/providers/implementations/rands/drbg_ctr.c', 'openssl/providers/implementations/rands/drbg_hash.c', 'openssl/providers/implementations/rands/drbg_hmac.c', + 'openssl/providers/implementations/rands/fips_crng_test.c', 'openssl/providers/implementations/rands/test_rng.c', 'openssl/providers/implementations/signature/dsa_sig.c', 'openssl/providers/implementations/signature/ecdsa_sig.c', 'openssl/providers/implementations/signature/eddsa_sig.c', 'openssl/providers/implementations/signature/mac_legacy_sig.c', + 'openssl/providers/implementations/signature/ml_dsa_sig.c', 'openssl/providers/implementations/signature/rsa_sig.c', - 'openssl/ssl/s3_cbc.c', + 'openssl/providers/implementations/signature/slh_dsa_sig.c', + 'openssl/providers/implementations/skeymgmt/aes_skmgmt.c', + 'openssl/providers/implementations/skeymgmt/generic.c', + 'openssl/ssl/record/methods/ssl3_cbc.c', 'openssl/providers/common/der/der_dsa_key.c', 'openssl/providers/common/der/der_dsa_sig.c', 'openssl/providers/common/der/der_ec_key.c', 'openssl/providers/common/der/der_ec_sig.c', 'openssl/providers/common/der/der_ecx_key.c', + 'openssl/providers/common/der/der_ml_dsa_key.c', 'openssl/providers/common/der/der_rsa_key.c', + 'openssl/providers/common/der/der_slh_dsa_key.c', 'openssl/providers/common/provider_ctx.c', 'openssl/providers/common/provider_err.c', 'openssl/providers/implementations/ciphers/ciphercommon.c', @@ -267,17 +310,20 @@ 'openssl/providers/implementations/ciphers/ciphercommon_gcm_hw.c', 'openssl/providers/implementations/ciphers/ciphercommon_hw.c', 'openssl/providers/implementations/digests/digestcommon.c', - 'openssl/ssl/record/tls_pad.c', + 'openssl/ssl/record/methods/tls_pad.c', 'openssl/providers/fips/fips_entry.c', ], 'openssl_sources_VC-WIN64A': [ + './config/archs/VC-WIN64A/no-asm/crypto/params_idx.c', './config/archs/VC-WIN64A/no-asm/providers/common/der/der_sm2_gen.c', './config/archs/VC-WIN64A/no-asm/providers/common/der/der_digests_gen.c', './config/archs/VC-WIN64A/no-asm/providers/common/der/der_dsa_gen.c', './config/archs/VC-WIN64A/no-asm/providers/common/der/der_ec_gen.c', './config/archs/VC-WIN64A/no-asm/providers/common/der/der_ecx_gen.c', + './config/archs/VC-WIN64A/no-asm/providers/common/der/der_ml_dsa_gen.c', './config/archs/VC-WIN64A/no-asm/providers/common/der/der_rsa_gen.c', + './config/archs/VC-WIN64A/no-asm/providers/common/der/der_slh_dsa_gen.c', './config/archs/VC-WIN64A/no-asm/providers/common/der/der_wrap_gen.c', ], diff --git a/deps/openssl/config/archs/VC-WIN64A/no-asm/openssl.gypi b/deps/openssl/config/archs/VC-WIN64A/no-asm/openssl.gypi index 3cdefe6bdde202..7a39f9337fe074 100644 --- a/deps/openssl/config/archs/VC-WIN64A/no-asm/openssl.gypi +++ b/deps/openssl/config/archs/VC-WIN64A/no-asm/openssl.gypi @@ -7,14 +7,15 @@ 'openssl/ssl/d1_srtp.c', 'openssl/ssl/methods.c', 'openssl/ssl/pqueue.c', + 'openssl/ssl/priority_queue.c', 'openssl/ssl/s3_enc.c', 'openssl/ssl/s3_lib.c', 'openssl/ssl/s3_msg.c', 'openssl/ssl/ssl_asn1.c', 'openssl/ssl/ssl_cert.c', + 'openssl/ssl/ssl_cert_comp.c', 'openssl/ssl/ssl_ciph.c', 'openssl/ssl/ssl_conf.c', - 'openssl/ssl/ssl_err.c', 'openssl/ssl/ssl_err_legacy.c', 'openssl/ssl/ssl_init.c', 'openssl/ssl/ssl_lib.c', @@ -31,12 +32,60 @@ 'openssl/ssl/tls13_enc.c', 'openssl/ssl/tls_depr.c', 'openssl/ssl/tls_srp.c', - 'openssl/ssl/record/dtls1_bitmap.c', + 'openssl/ssl/quic/cc_newreno.c', + 'openssl/ssl/quic/json_enc.c', + 'openssl/ssl/quic/qlog.c', + 'openssl/ssl/quic/qlog_event_helpers.c', + 'openssl/ssl/quic/quic_ackm.c', + 'openssl/ssl/quic/quic_cfq.c', + 'openssl/ssl/quic/quic_channel.c', + 'openssl/ssl/quic/quic_demux.c', + 'openssl/ssl/quic/quic_engine.c', + 'openssl/ssl/quic/quic_fc.c', + 'openssl/ssl/quic/quic_fifd.c', + 'openssl/ssl/quic/quic_impl.c', + 'openssl/ssl/quic/quic_lcidm.c', + 'openssl/ssl/quic/quic_method.c', + 'openssl/ssl/quic/quic_obj.c', + 'openssl/ssl/quic/quic_port.c', + 'openssl/ssl/quic/quic_rcidm.c', + 'openssl/ssl/quic/quic_reactor.c', + 'openssl/ssl/quic/quic_reactor_wait_ctx.c', + 'openssl/ssl/quic/quic_record_rx.c', + 'openssl/ssl/quic/quic_record_shared.c', + 'openssl/ssl/quic/quic_record_tx.c', + 'openssl/ssl/quic/quic_record_util.c', + 'openssl/ssl/quic/quic_rstream.c', + 'openssl/ssl/quic/quic_rx_depack.c', + 'openssl/ssl/quic/quic_sf_list.c', + 'openssl/ssl/quic/quic_srt_gen.c', + 'openssl/ssl/quic/quic_srtm.c', + 'openssl/ssl/quic/quic_sstream.c', + 'openssl/ssl/quic/quic_statm.c', + 'openssl/ssl/quic/quic_stream_map.c', + 'openssl/ssl/quic/quic_thread_assist.c', + 'openssl/ssl/quic/quic_tls.c', + 'openssl/ssl/quic/quic_tls_api.c', + 'openssl/ssl/quic/quic_trace.c', + 'openssl/ssl/quic/quic_tserver.c', + 'openssl/ssl/quic/quic_txp.c', + 'openssl/ssl/quic/quic_txpim.c', + 'openssl/ssl/quic/quic_types.c', + 'openssl/ssl/quic/quic_wire.c', + 'openssl/ssl/quic/quic_wire_pkt.c', + 'openssl/ssl/quic/uint_set.c', 'openssl/ssl/record/rec_layer_d1.c', 'openssl/ssl/record/rec_layer_s3.c', - 'openssl/ssl/record/ssl3_buffer.c', - 'openssl/ssl/record/ssl3_record.c', - 'openssl/ssl/record/ssl3_record_tls13.c', + 'openssl/ssl/record/methods/dtls_meth.c', + 'openssl/ssl/record/methods/ssl3_meth.c', + 'openssl/ssl/record/methods/tls13_meth.c', + 'openssl/ssl/record/methods/tls1_meth.c', + 'openssl/ssl/record/methods/tls_common.c', + 'openssl/ssl/record/methods/tls_multib.c', + 'openssl/ssl/record/methods/tlsany_meth.c', + 'openssl/ssl/rio/poll_builder.c', + 'openssl/ssl/rio/poll_immediate.c', + 'openssl/ssl/rio/rio_notifier.c', 'openssl/ssl/statem/extensions.c', 'openssl/ssl/statem/extensions_clnt.c', 'openssl/ssl/statem/extensions_cust.c', @@ -150,6 +199,7 @@ 'openssl/crypto/bio/bss_conn.c', 'openssl/crypto/bio/bss_core.c', 'openssl/crypto/bio/bss_dgram.c', + 'openssl/crypto/bio/bss_dgram_pair.c', 'openssl/crypto/bio/bss_fd.c', 'openssl/crypto/bio/bss_file.c', 'openssl/crypto/bio/bss_log.c', @@ -210,6 +260,7 @@ 'openssl/crypto/cmp/cmp_client.c', 'openssl/crypto/cmp/cmp_ctx.c', 'openssl/crypto/cmp/cmp_err.c', + 'openssl/crypto/cmp/cmp_genm.c', 'openssl/crypto/cmp/cmp_hdr.c', 'openssl/crypto/cmp/cmp_http.c', 'openssl/crypto/cmp/cmp_msg.c', @@ -385,7 +436,9 @@ 'openssl/crypto/err/err_all.c', 'openssl/crypto/err/err_all_legacy.c', 'openssl/crypto/err/err_blocks.c', + 'openssl/crypto/err/err_mark.c', 'openssl/crypto/err/err_prn.c', + 'openssl/crypto/err/err_save.c', 'openssl/crypto/ess/ess_asn1.c', 'openssl/crypto/ess/ess_err.c', 'openssl/crypto/ess/ess_lib.c', @@ -468,7 +521,9 @@ 'openssl/crypto/evp/pmeth_check.c', 'openssl/crypto/evp/pmeth_gn.c', 'openssl/crypto/evp/pmeth_lib.c', + 'openssl/crypto/evp/s_lib.c', 'openssl/crypto/evp/signature.c', + 'openssl/crypto/evp/skeymgmt_meth.c', 'openssl/crypto/ffc/ffc_backend.c', 'openssl/crypto/ffc/ffc_dh.c', 'openssl/crypto/ffc/ffc_key_generate.c', @@ -476,7 +531,11 @@ 'openssl/crypto/ffc/ffc_params.c', 'openssl/crypto/ffc/ffc_params_generate.c', 'openssl/crypto/ffc/ffc_params_validate.c', + 'openssl/crypto/hashtable/hashfunc.c', + 'openssl/crypto/hashtable/hashtable.c', 'openssl/crypto/hmac/hmac.c', + 'openssl/crypto/hpke/hpke.c', + 'openssl/crypto/hpke/hpke_util.c', 'openssl/crypto/http/http_client.c', 'openssl/crypto/http/http_err.c', 'openssl/crypto/http/http_lib.c', @@ -490,6 +549,7 @@ 'openssl/crypto/lhash/lhash.c', 'openssl/crypto/asn1_dsa.c', 'openssl/crypto/bsearch.c', + 'openssl/crypto/comp_methods.c', 'openssl/crypto/context.c', 'openssl/crypto/core_algorithm.c', 'openssl/crypto/core_fetch.c', @@ -499,10 +559,13 @@ 'openssl/crypto/cryptlib.c', 'openssl/crypto/ctype.c', 'openssl/crypto/cversion.c', + 'openssl/crypto/defaults.c', 'openssl/crypto/der_writer.c', + 'openssl/crypto/deterministic_nonce.c', 'openssl/crypto/ebcdic.c', 'openssl/crypto/ex_data.c', 'openssl/crypto/getenv.c', + 'openssl/crypto/indicator_core.c', 'openssl/crypto/info.c', 'openssl/crypto/init.c', 'openssl/crypto/initthread.c', @@ -527,12 +590,16 @@ 'openssl/crypto/provider_core.c', 'openssl/crypto/provider_predefined.c', 'openssl/crypto/punycode.c', + 'openssl/crypto/quic_vlint.c', 'openssl/crypto/self_test_core.c', + 'openssl/crypto/sleep.c', 'openssl/crypto/sparse_array.c', + 'openssl/crypto/ssl_err.c', 'openssl/crypto/threads_lib.c', 'openssl/crypto/threads_none.c', 'openssl/crypto/threads_pthread.c', 'openssl/crypto/threads_win.c', + 'openssl/crypto/time.c', 'openssl/crypto/trace.c', 'openssl/crypto/uid.c', 'openssl/crypto/md4/md4_dgst.c', @@ -542,6 +609,15 @@ 'openssl/crypto/md5/md5_sha1.c', 'openssl/crypto/mdc2/mdc2_one.c', 'openssl/crypto/mdc2/mdc2dgst.c', + 'openssl/crypto/ml_dsa/ml_dsa_encoders.c', + 'openssl/crypto/ml_dsa/ml_dsa_key.c', + 'openssl/crypto/ml_dsa/ml_dsa_key_compress.c', + 'openssl/crypto/ml_dsa/ml_dsa_matrix.c', + 'openssl/crypto/ml_dsa/ml_dsa_ntt.c', + 'openssl/crypto/ml_dsa/ml_dsa_params.c', + 'openssl/crypto/ml_dsa/ml_dsa_sample.c', + 'openssl/crypto/ml_dsa/ml_dsa_sign.c', + 'openssl/crypto/ml_kem/ml_kem.c', 'openssl/crypto/modes/cbc128.c', 'openssl/crypto/modes/ccm128.c', 'openssl/crypto/modes/cfb128.c', @@ -553,6 +629,7 @@ 'openssl/crypto/modes/siv128.c', 'openssl/crypto/modes/wrap128.c', 'openssl/crypto/modes/xts128.c', + 'openssl/crypto/modes/xts128gb.c', 'openssl/crypto/objects/o_names.c', 'openssl/crypto/objects/obj_dat.c', 'openssl/crypto/objects/obj_err.c', @@ -616,6 +693,7 @@ 'openssl/crypto/rand/rand_lib.c', 'openssl/crypto/rand/rand_meth.c', 'openssl/crypto/rand/rand_pool.c', + 'openssl/crypto/rand/rand_uniform.c', 'openssl/crypto/rand/randfile.c', 'openssl/crypto/rc2/rc2_cbc.c', 'openssl/crypto/rc2/rc2_ecb.c', @@ -664,6 +742,16 @@ 'openssl/crypto/sha/sha3.c', 'openssl/crypto/sha/sha512.c', 'openssl/crypto/siphash/siphash.c', + 'openssl/crypto/slh_dsa/slh_adrs.c', + 'openssl/crypto/slh_dsa/slh_dsa.c', + 'openssl/crypto/slh_dsa/slh_dsa_hash_ctx.c', + 'openssl/crypto/slh_dsa/slh_dsa_key.c', + 'openssl/crypto/slh_dsa/slh_fors.c', + 'openssl/crypto/slh_dsa/slh_hash.c', + 'openssl/crypto/slh_dsa/slh_hypertree.c', + 'openssl/crypto/slh_dsa/slh_params.c', + 'openssl/crypto/slh_dsa/slh_wots.c', + 'openssl/crypto/slh_dsa/slh_xmss.c', 'openssl/crypto/sm2/sm2_crypt.c', 'openssl/crypto/sm2/sm2_err.c', 'openssl/crypto/sm2/sm2_key.c', @@ -681,6 +769,12 @@ 'openssl/crypto/store/store_register.c', 'openssl/crypto/store/store_result.c', 'openssl/crypto/store/store_strings.c', + 'openssl/crypto/thread/arch/thread_none.c', + 'openssl/crypto/thread/arch/thread_posix.c', + 'openssl/crypto/thread/arch/thread_win.c', + 'openssl/crypto/thread/api.c', + 'openssl/crypto/thread/arch.c', + 'openssl/crypto/thread/internal.c', 'openssl/crypto/ts/ts_asn1.c', 'openssl/crypto/ts/ts_conf.c', 'openssl/crypto/ts/ts_err.c', @@ -709,14 +803,22 @@ 'openssl/crypto/x509/pcy_map.c', 'openssl/crypto/x509/pcy_node.c', 'openssl/crypto/x509/pcy_tree.c', + 'openssl/crypto/x509/t_acert.c', 'openssl/crypto/x509/t_crl.c', 'openssl/crypto/x509/t_req.c', 'openssl/crypto/x509/t_x509.c', + 'openssl/crypto/x509/v3_aaa.c', + 'openssl/crypto/x509/v3_ac_tgt.c', 'openssl/crypto/x509/v3_addr.c', 'openssl/crypto/x509/v3_admis.c', 'openssl/crypto/x509/v3_akeya.c', 'openssl/crypto/x509/v3_akid.c', 'openssl/crypto/x509/v3_asid.c', + 'openssl/crypto/x509/v3_attrdesc.c', + 'openssl/crypto/x509/v3_attrmap.c', + 'openssl/crypto/x509/v3_audit_id.c', + 'openssl/crypto/x509/v3_authattid.c', + 'openssl/crypto/x509/v3_battcons.c', 'openssl/crypto/x509/v3_bcons.c', 'openssl/crypto/x509/v3_bitst.c', 'openssl/crypto/x509/v3_conf.c', @@ -725,12 +827,17 @@ 'openssl/crypto/x509/v3_enum.c', 'openssl/crypto/x509/v3_extku.c', 'openssl/crypto/x509/v3_genn.c', + 'openssl/crypto/x509/v3_group_ac.c', 'openssl/crypto/x509/v3_ia5.c', + 'openssl/crypto/x509/v3_ind_iss.c', 'openssl/crypto/x509/v3_info.c', 'openssl/crypto/x509/v3_int.c', + 'openssl/crypto/x509/v3_iobo.c', 'openssl/crypto/x509/v3_ist.c', 'openssl/crypto/x509/v3_lib.c', 'openssl/crypto/x509/v3_ncons.c', + 'openssl/crypto/x509/v3_no_ass.c', + 'openssl/crypto/x509/v3_no_rev_avail.c', 'openssl/crypto/x509/v3_pci.c', 'openssl/crypto/x509/v3_pcia.c', 'openssl/crypto/x509/v3_pcons.c', @@ -738,13 +845,20 @@ 'openssl/crypto/x509/v3_pmaps.c', 'openssl/crypto/x509/v3_prn.c', 'openssl/crypto/x509/v3_purp.c', + 'openssl/crypto/x509/v3_rolespec.c', 'openssl/crypto/x509/v3_san.c', + 'openssl/crypto/x509/v3_sda.c', + 'openssl/crypto/x509/v3_single_use.c', 'openssl/crypto/x509/v3_skid.c', + 'openssl/crypto/x509/v3_soa_id.c', 'openssl/crypto/x509/v3_sxnet.c', + 'openssl/crypto/x509/v3_timespec.c', 'openssl/crypto/x509/v3_tlsf.c', + 'openssl/crypto/x509/v3_usernotice.c', 'openssl/crypto/x509/v3_utf8.c', 'openssl/crypto/x509/v3_utl.c', 'openssl/crypto/x509/v3err.c', + 'openssl/crypto/x509/x509_acert.c', 'openssl/crypto/x509/x509_att.c', 'openssl/crypto/x509/x509_cmp.c', 'openssl/crypto/x509/x509_d2.c', @@ -762,6 +876,7 @@ 'openssl/crypto/x509/x509_v3.c', 'openssl/crypto/x509/x509_vfy.c', 'openssl/crypto/x509/x509_vpm.c', + 'openssl/crypto/x509/x509aset.c', 'openssl/crypto/x509/x509cset.c', 'openssl/crypto/x509/x509name.c', 'openssl/crypto/x509/x509rset.c', @@ -771,6 +886,7 @@ 'openssl/crypto/x509/x_attrib.c', 'openssl/crypto/x509/x_crl.c', 'openssl/crypto/x509/x_exten.c', + 'openssl/crypto/x509/x_ietfatt.c', 'openssl/crypto/x509/x_name.c', 'openssl/crypto/x509/x_pubkey.c', 'openssl/crypto/x509/x_req.c', @@ -802,6 +918,9 @@ 'openssl/providers/implementations/ciphers/cipher_aes_ccm_hw.c', 'openssl/providers/implementations/ciphers/cipher_aes_gcm.c', 'openssl/providers/implementations/ciphers/cipher_aes_gcm_hw.c', + 'openssl/providers/implementations/ciphers/cipher_aes_gcm_siv.c', + 'openssl/providers/implementations/ciphers/cipher_aes_gcm_siv_hw.c', + 'openssl/providers/implementations/ciphers/cipher_aes_gcm_siv_polyval.c', 'openssl/providers/implementations/ciphers/cipher_aes_hw.c', 'openssl/providers/implementations/ciphers/cipher_aes_ocb.c', 'openssl/providers/implementations/ciphers/cipher_aes_ocb_hw.c', @@ -826,7 +945,13 @@ 'openssl/providers/implementations/ciphers/cipher_cts.c', 'openssl/providers/implementations/ciphers/cipher_null.c', 'openssl/providers/implementations/ciphers/cipher_sm4.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_ccm.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_ccm_hw.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_gcm.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_gcm_hw.c', 'openssl/providers/implementations/ciphers/cipher_sm4_hw.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_xts.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_xts_hw.c', 'openssl/providers/implementations/ciphers/cipher_tdes.c', 'openssl/providers/implementations/ciphers/cipher_tdes_common.c', 'openssl/providers/implementations/ciphers/cipher_tdes_default.c', @@ -855,11 +980,16 @@ 'openssl/providers/implementations/encode_decode/encode_key2ms.c', 'openssl/providers/implementations/encode_decode/encode_key2text.c', 'openssl/providers/implementations/encode_decode/endecoder_common.c', + 'openssl/providers/implementations/encode_decode/ml_common_codecs.c', + 'openssl/providers/implementations/encode_decode/ml_dsa_codecs.c', + 'openssl/providers/implementations/encode_decode/ml_kem_codecs.c', 'openssl/providers/implementations/exchange/dh_exch.c', 'openssl/providers/implementations/exchange/ecdh_exch.c', 'openssl/providers/implementations/exchange/ecx_exch.c', 'openssl/providers/implementations/exchange/kdf_exch.c', + 'openssl/providers/implementations/kdfs/argon2.c', 'openssl/providers/implementations/kdfs/hkdf.c', + 'openssl/providers/implementations/kdfs/hmacdrbg_kdf.c', 'openssl/providers/implementations/kdfs/kbkdf.c', 'openssl/providers/implementations/kdfs/krb5kdf.c', 'openssl/providers/implementations/kdfs/pbkdf2.c', @@ -870,6 +1000,11 @@ 'openssl/providers/implementations/kdfs/sskdf.c', 'openssl/providers/implementations/kdfs/tls1_prf.c', 'openssl/providers/implementations/kdfs/x942kdf.c', + 'openssl/providers/implementations/kem/ec_kem.c', + 'openssl/providers/implementations/kem/ecx_kem.c', + 'openssl/providers/implementations/kem/kem_util.c', + 'openssl/providers/implementations/kem/ml_kem_kem.c', + 'openssl/providers/implementations/kem/mlx_kem.c', 'openssl/providers/implementations/kem/rsa_kem.c', 'openssl/providers/implementations/keymgmt/dh_kmgmt.c', 'openssl/providers/implementations/keymgmt/dsa_kmgmt.c', @@ -877,7 +1012,11 @@ 'openssl/providers/implementations/keymgmt/ecx_kmgmt.c', 'openssl/providers/implementations/keymgmt/kdf_legacy_kmgmt.c', 'openssl/providers/implementations/keymgmt/mac_legacy_kmgmt.c', + 'openssl/providers/implementations/keymgmt/ml_dsa_kmgmt.c', + 'openssl/providers/implementations/keymgmt/ml_kem_kmgmt.c', + 'openssl/providers/implementations/keymgmt/mlx_kmgmt.c', 'openssl/providers/implementations/keymgmt/rsa_kmgmt.c', + 'openssl/providers/implementations/keymgmt/slh_dsa_kmgmt.c', 'openssl/providers/implementations/macs/blake2b_mac.c', 'openssl/providers/implementations/macs/blake2s_mac.c', 'openssl/providers/implementations/macs/cmac_prov.c', @@ -886,12 +1025,12 @@ 'openssl/providers/implementations/macs/kmac_prov.c', 'openssl/providers/implementations/macs/poly1305_prov.c', 'openssl/providers/implementations/macs/siphash_prov.c', - 'openssl/providers/implementations/rands/crngt.c', 'openssl/providers/implementations/rands/drbg.c', 'openssl/providers/implementations/rands/drbg_ctr.c', 'openssl/providers/implementations/rands/drbg_hash.c', 'openssl/providers/implementations/rands/drbg_hmac.c', 'openssl/providers/implementations/rands/seed_src.c', + 'openssl/providers/implementations/rands/seed_src_jitter.c', 'openssl/providers/implementations/rands/test_rng.c', 'openssl/providers/implementations/rands/seeding/rand_cpu_x86.c', 'openssl/providers/implementations/rands/seeding/rand_tsc.c', @@ -901,17 +1040,24 @@ 'openssl/providers/implementations/signature/ecdsa_sig.c', 'openssl/providers/implementations/signature/eddsa_sig.c', 'openssl/providers/implementations/signature/mac_legacy_sig.c', + 'openssl/providers/implementations/signature/ml_dsa_sig.c', 'openssl/providers/implementations/signature/rsa_sig.c', + 'openssl/providers/implementations/signature/slh_dsa_sig.c', 'openssl/providers/implementations/signature/sm2_sig.c', + 'openssl/providers/implementations/skeymgmt/aes_skmgmt.c', + 'openssl/providers/implementations/skeymgmt/generic.c', 'openssl/providers/implementations/storemgmt/file_store.c', 'openssl/providers/implementations/storemgmt/file_store_any2obj.c', - 'openssl/ssl/s3_cbc.c', + 'openssl/providers/implementations/storemgmt/winstore_store.c', + 'openssl/ssl/record/methods/ssl3_cbc.c', 'openssl/providers/common/der/der_dsa_key.c', 'openssl/providers/common/der/der_dsa_sig.c', 'openssl/providers/common/der/der_ec_key.c', 'openssl/providers/common/der/der_ec_sig.c', 'openssl/providers/common/der/der_ecx_key.c', + 'openssl/providers/common/der/der_ml_dsa_key.c', 'openssl/providers/common/der/der_rsa_key.c', + 'openssl/providers/common/der/der_slh_dsa_key.c', 'openssl/providers/common/provider_ctx.c', 'openssl/providers/common/provider_err.c', 'openssl/providers/implementations/ciphers/ciphercommon.c', @@ -922,7 +1068,7 @@ 'openssl/providers/implementations/ciphers/ciphercommon_gcm_hw.c', 'openssl/providers/implementations/ciphers/ciphercommon_hw.c', 'openssl/providers/implementations/digests/digestcommon.c', - 'openssl/ssl/record/tls_pad.c', + 'openssl/ssl/record/methods/tls_pad.c', 'openssl/providers/implementations/ciphers/cipher_blowfish.c', 'openssl/providers/implementations/ciphers/cipher_blowfish_hw.c', 'openssl/providers/implementations/ciphers/cipher_cast5.c', @@ -947,16 +1093,20 @@ 'openssl/providers/implementations/digests/ripemd_prov.c', 'openssl/providers/implementations/digests/wp_prov.c', 'openssl/providers/implementations/kdfs/pbkdf1.c', + 'openssl/providers/implementations/kdfs/pvkkdf.c', 'openssl/providers/prov_running.c', 'openssl/providers/legacyprov.c', ], 'openssl_sources_VC-WIN64A': [ + './config/archs/VC-WIN64A/no-asm/crypto/params_idx.c', './config/archs/VC-WIN64A/no-asm/providers/common/der/der_sm2_gen.c', './config/archs/VC-WIN64A/no-asm/providers/common/der/der_digests_gen.c', './config/archs/VC-WIN64A/no-asm/providers/common/der/der_dsa_gen.c', './config/archs/VC-WIN64A/no-asm/providers/common/der/der_ec_gen.c', './config/archs/VC-WIN64A/no-asm/providers/common/der/der_ecx_gen.c', + './config/archs/VC-WIN64A/no-asm/providers/common/der/der_ml_dsa_gen.c', './config/archs/VC-WIN64A/no-asm/providers/common/der/der_rsa_gen.c', + './config/archs/VC-WIN64A/no-asm/providers/common/der/der_slh_dsa_gen.c', './config/archs/VC-WIN64A/no-asm/providers/common/der/der_wrap_gen.c', ], 'openssl_defines_VC-WIN64A': [ diff --git a/deps/openssl/config/archs/VC-WIN64A/no-asm/providers/common/der/der_ml_dsa_gen.c b/deps/openssl/config/archs/VC-WIN64A/no-asm/providers/common/der/der_ml_dsa_gen.c new file mode 100644 index 00000000000000..4a8a113a268578 --- /dev/null +++ b/deps/openssl/config/archs/VC-WIN64A/no-asm/providers/common/der/der_ml_dsa_gen.c @@ -0,0 +1,37 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from providers/common/der/der_ml_dsa_gen.c.in + * + * Copyright 2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include "prov/der_ml_dsa.h" + +/* Well known OIDs precompiled */ + +/* + * id-ml-dsa-44 OBJECT IDENTIFIER ::= { sigAlgs 17 } + */ +const unsigned char ossl_der_oid_id_ml_dsa_44[DER_OID_SZ_id_ml_dsa_44] = { + DER_OID_V_id_ml_dsa_44 +}; + +/* + * id-ml-dsa-65 OBJECT IDENTIFIER ::= { sigAlgs 18 } + */ +const unsigned char ossl_der_oid_id_ml_dsa_65[DER_OID_SZ_id_ml_dsa_65] = { + DER_OID_V_id_ml_dsa_65 +}; + +/* + * id-ml-dsa-87 OBJECT IDENTIFIER ::= { sigAlgs 19 } + */ +const unsigned char ossl_der_oid_id_ml_dsa_87[DER_OID_SZ_id_ml_dsa_87] = { + DER_OID_V_id_ml_dsa_87 +}; + diff --git a/deps/openssl/config/archs/VC-WIN64A/no-asm/providers/common/der/der_slh_dsa_gen.c b/deps/openssl/config/archs/VC-WIN64A/no-asm/providers/common/der/der_slh_dsa_gen.c new file mode 100644 index 00000000000000..1419a9515097dd --- /dev/null +++ b/deps/openssl/config/archs/VC-WIN64A/no-asm/providers/common/der/der_slh_dsa_gen.c @@ -0,0 +1,100 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from providers/common/der/der_slh_dsa_gen.c.in + * + * Copyright 2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include "prov/der_slh_dsa.h" + +/* Well known OIDs precompiled */ + +/* + * id-slh-dsa-sha2-128s OBJECT IDENTIFIER ::= { sigAlgs 20 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_128s[DER_OID_SZ_id_slh_dsa_sha2_128s] = { + DER_OID_V_id_slh_dsa_sha2_128s +}; + +/* + * id-slh-dsa-sha2-128f OBJECT IDENTIFIER ::= { sigAlgs 21 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_128f[DER_OID_SZ_id_slh_dsa_sha2_128f] = { + DER_OID_V_id_slh_dsa_sha2_128f +}; + +/* + * id-slh-dsa-sha2-192s OBJECT IDENTIFIER ::= { sigAlgs 22 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_192s[DER_OID_SZ_id_slh_dsa_sha2_192s] = { + DER_OID_V_id_slh_dsa_sha2_192s +}; + +/* + * id-slh-dsa-sha2-192f OBJECT IDENTIFIER ::= { sigAlgs 23 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_192f[DER_OID_SZ_id_slh_dsa_sha2_192f] = { + DER_OID_V_id_slh_dsa_sha2_192f +}; + +/* + * id-slh-dsa-sha2-256s OBJECT IDENTIFIER ::= { sigAlgs 24 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_256s[DER_OID_SZ_id_slh_dsa_sha2_256s] = { + DER_OID_V_id_slh_dsa_sha2_256s +}; + +/* + * id-slh-dsa-sha2-256f OBJECT IDENTIFIER ::= { sigAlgs 25 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_256f[DER_OID_SZ_id_slh_dsa_sha2_256f] = { + DER_OID_V_id_slh_dsa_sha2_256f +}; + +/* + * id-slh-dsa-shake-128s OBJECT IDENTIFIER ::= { sigAlgs 26 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_128s[DER_OID_SZ_id_slh_dsa_shake_128s] = { + DER_OID_V_id_slh_dsa_shake_128s +}; + +/* + * id-slh-dsa-shake-128f OBJECT IDENTIFIER ::= { sigAlgs 27 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_128f[DER_OID_SZ_id_slh_dsa_shake_128f] = { + DER_OID_V_id_slh_dsa_shake_128f +}; + +/* + * id-slh-dsa-shake-192s OBJECT IDENTIFIER ::= { sigAlgs 28 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_192s[DER_OID_SZ_id_slh_dsa_shake_192s] = { + DER_OID_V_id_slh_dsa_shake_192s +}; + +/* + * id-slh-dsa-shake-192f OBJECT IDENTIFIER ::= { sigAlgs 29 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_192f[DER_OID_SZ_id_slh_dsa_shake_192f] = { + DER_OID_V_id_slh_dsa_shake_192f +}; + +/* + * id-slh-dsa-shake-256s OBJECT IDENTIFIER ::= { sigAlgs 30 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_256s[DER_OID_SZ_id_slh_dsa_shake_256s] = { + DER_OID_V_id_slh_dsa_shake_256s +}; + +/* + * id-slh-dsa-shake-256f OBJECT IDENTIFIER ::= { sigAlgs 31 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_256f[DER_OID_SZ_id_slh_dsa_shake_256f] = { + DER_OID_V_id_slh_dsa_shake_256f +}; + diff --git a/deps/openssl/config/archs/VC-WIN64A/no-asm/providers/common/include/prov/der_ml_dsa.h b/deps/openssl/config/archs/VC-WIN64A/no-asm/providers/common/include/prov/der_ml_dsa.h new file mode 100644 index 00000000000000..c55f780ab4527c --- /dev/null +++ b/deps/openssl/config/archs/VC-WIN64A/no-asm/providers/common/include/prov/der_ml_dsa.h @@ -0,0 +1,40 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from providers/common/include/prov/der_ml_dsa.h.in + * + * Copyright 2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include "internal/der.h" +#include "crypto/ml_dsa.h" + +/* Well known OIDs precompiled */ + +/* + * id-ml-dsa-44 OBJECT IDENTIFIER ::= { sigAlgs 17 } + */ +#define DER_OID_V_id_ml_dsa_44 DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x11 +#define DER_OID_SZ_id_ml_dsa_44 11 +extern const unsigned char ossl_der_oid_id_ml_dsa_44[DER_OID_SZ_id_ml_dsa_44]; + +/* + * id-ml-dsa-65 OBJECT IDENTIFIER ::= { sigAlgs 18 } + */ +#define DER_OID_V_id_ml_dsa_65 DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x12 +#define DER_OID_SZ_id_ml_dsa_65 11 +extern const unsigned char ossl_der_oid_id_ml_dsa_65[DER_OID_SZ_id_ml_dsa_65]; + +/* + * id-ml-dsa-87 OBJECT IDENTIFIER ::= { sigAlgs 19 } + */ +#define DER_OID_V_id_ml_dsa_87 DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x13 +#define DER_OID_SZ_id_ml_dsa_87 11 +extern const unsigned char ossl_der_oid_id_ml_dsa_87[DER_OID_SZ_id_ml_dsa_87]; + + +int ossl_DER_w_algorithmIdentifier_ML_DSA(WPACKET *pkt, int tag, ML_DSA_KEY *key); diff --git a/deps/openssl/config/archs/VC-WIN64A/no-asm/providers/common/include/prov/der_slh_dsa.h b/deps/openssl/config/archs/VC-WIN64A/no-asm/providers/common/include/prov/der_slh_dsa.h new file mode 100644 index 00000000000000..760f8e7699be72 --- /dev/null +++ b/deps/openssl/config/archs/VC-WIN64A/no-asm/providers/common/include/prov/der_slh_dsa.h @@ -0,0 +1,103 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from providers/common/include/prov/der_slh_dsa.h.in + * + * Copyright 2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include "internal/der.h" +#include "crypto/slh_dsa.h" + +/* Well known OIDs precompiled */ + +/* + * id-slh-dsa-sha2-128s OBJECT IDENTIFIER ::= { sigAlgs 20 } + */ +#define DER_OID_V_id_slh_dsa_sha2_128s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x14 +#define DER_OID_SZ_id_slh_dsa_sha2_128s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_128s[DER_OID_SZ_id_slh_dsa_sha2_128s]; + +/* + * id-slh-dsa-sha2-128f OBJECT IDENTIFIER ::= { sigAlgs 21 } + */ +#define DER_OID_V_id_slh_dsa_sha2_128f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x15 +#define DER_OID_SZ_id_slh_dsa_sha2_128f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_128f[DER_OID_SZ_id_slh_dsa_sha2_128f]; + +/* + * id-slh-dsa-sha2-192s OBJECT IDENTIFIER ::= { sigAlgs 22 } + */ +#define DER_OID_V_id_slh_dsa_sha2_192s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x16 +#define DER_OID_SZ_id_slh_dsa_sha2_192s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_192s[DER_OID_SZ_id_slh_dsa_sha2_192s]; + +/* + * id-slh-dsa-sha2-192f OBJECT IDENTIFIER ::= { sigAlgs 23 } + */ +#define DER_OID_V_id_slh_dsa_sha2_192f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x17 +#define DER_OID_SZ_id_slh_dsa_sha2_192f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_192f[DER_OID_SZ_id_slh_dsa_sha2_192f]; + +/* + * id-slh-dsa-sha2-256s OBJECT IDENTIFIER ::= { sigAlgs 24 } + */ +#define DER_OID_V_id_slh_dsa_sha2_256s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x18 +#define DER_OID_SZ_id_slh_dsa_sha2_256s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_256s[DER_OID_SZ_id_slh_dsa_sha2_256s]; + +/* + * id-slh-dsa-sha2-256f OBJECT IDENTIFIER ::= { sigAlgs 25 } + */ +#define DER_OID_V_id_slh_dsa_sha2_256f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x19 +#define DER_OID_SZ_id_slh_dsa_sha2_256f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_256f[DER_OID_SZ_id_slh_dsa_sha2_256f]; + +/* + * id-slh-dsa-shake-128s OBJECT IDENTIFIER ::= { sigAlgs 26 } + */ +#define DER_OID_V_id_slh_dsa_shake_128s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1A +#define DER_OID_SZ_id_slh_dsa_shake_128s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_128s[DER_OID_SZ_id_slh_dsa_shake_128s]; + +/* + * id-slh-dsa-shake-128f OBJECT IDENTIFIER ::= { sigAlgs 27 } + */ +#define DER_OID_V_id_slh_dsa_shake_128f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1B +#define DER_OID_SZ_id_slh_dsa_shake_128f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_128f[DER_OID_SZ_id_slh_dsa_shake_128f]; + +/* + * id-slh-dsa-shake-192s OBJECT IDENTIFIER ::= { sigAlgs 28 } + */ +#define DER_OID_V_id_slh_dsa_shake_192s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1C +#define DER_OID_SZ_id_slh_dsa_shake_192s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_192s[DER_OID_SZ_id_slh_dsa_shake_192s]; + +/* + * id-slh-dsa-shake-192f OBJECT IDENTIFIER ::= { sigAlgs 29 } + */ +#define DER_OID_V_id_slh_dsa_shake_192f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1D +#define DER_OID_SZ_id_slh_dsa_shake_192f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_192f[DER_OID_SZ_id_slh_dsa_shake_192f]; + +/* + * id-slh-dsa-shake-256s OBJECT IDENTIFIER ::= { sigAlgs 30 } + */ +#define DER_OID_V_id_slh_dsa_shake_256s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1E +#define DER_OID_SZ_id_slh_dsa_shake_256s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_256s[DER_OID_SZ_id_slh_dsa_shake_256s]; + +/* + * id-slh-dsa-shake-256f OBJECT IDENTIFIER ::= { sigAlgs 31 } + */ +#define DER_OID_V_id_slh_dsa_shake_256f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1F +#define DER_OID_SZ_id_slh_dsa_shake_256f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_256f[DER_OID_SZ_id_slh_dsa_shake_256f]; + + +int ossl_DER_w_algorithmIdentifier_SLH_DSA(WPACKET *pkt, int tag, SLH_DSA_KEY *key); diff --git a/deps/openssl/config/archs/aix64-gcc-as/asm/apps/progs.c b/deps/openssl/config/archs/aix64-gcc-as/asm/apps/progs.c index 43cef00799b86e..acc204a3e6e781 100644 --- a/deps/openssl/config/archs/aix64-gcc-as/asm/apps/progs.c +++ b/deps/openssl/config/archs/aix64-gcc-as/asm/apps/progs.c @@ -89,6 +89,7 @@ FUNCTION functions[] = { {FT_general, "s_time", s_time_main, s_time_options, NULL, NULL}, #endif {FT_general, "sess_id", sess_id_main, sess_id_options, NULL, NULL}, + {FT_general, "skeyutl", skeyutl_main, skeyutl_options, NULL, NULL}, {FT_general, "smime", smime_main, smime_options, NULL, NULL}, {FT_general, "speed", speed_main, speed_options, NULL, NULL}, {FT_general, "spkac", spkac_main, spkac_options, NULL, NULL}, @@ -225,9 +226,15 @@ FUNCTION functions[] = { {FT_cipher, "camellia-256-ecb", enc_main, enc_options, NULL}, #endif {FT_cipher, "base64", enc_main, enc_options, NULL}, -#ifdef ZLIB +#ifndef OPENSSL_NO_ZLIB {FT_cipher, "zlib", enc_main, enc_options, NULL}, #endif +#ifndef OPENSSL_NO_BROTLI + {FT_cipher, "brotli", enc_main, enc_options, NULL}, +#endif +#ifndef OPENSSL_NO_ZSTD + {FT_cipher, "zstd", enc_main, enc_options, NULL}, +#endif #ifndef OPENSSL_NO_DES {FT_cipher, "des", enc_main, enc_options, NULL}, #endif diff --git a/deps/openssl/config/archs/aix64-gcc-as/asm/configdata.pm b/deps/openssl/config/archs/aix64-gcc-as/asm/configdata.pm index 400d206fd0c3f7..7e3ff35591cdc9 100644 --- a/deps/openssl/config/archs/aix64-gcc-as/asm/configdata.pm +++ b/deps/openssl/config/archs/aix64-gcc-as/asm/configdata.pm @@ -18,6 +18,7 @@ our %config = ( "ARFLAGS" => [ "qc" ], + "ASFLAGS" => [], "CC" => "gcc", "CFLAGS" => [ "-O" @@ -27,14 +28,16 @@ our %config = ( "CPPINCLUDES" => [], "CXXFLAGS" => [], "FIPSKEY" => "f4556650ac31d35461610bac4ed81b1a181b2d8a43ea2854cbae22ca74560813", + "FIPS_VENDOR" => "OpenSSL FIPS Provider", "HASHBANGPERL" => "/usr/bin/env perl", "LDFLAGS" => [], "LDLIBS" => [], + "OBJCOPY" => "objcopy", "PERL" => "/usr/bin/perl", "RANLIB" => "ranlib -X64", "RC" => "windres", "RCFLAGS" => [], - "api" => "30000", + "api" => "30500", "b32" => "0", "b64" => "0", "b64l" => "1", @@ -56,11 +59,13 @@ our %config = ( "doc/build.info", "test/build.info", "engines/build.info", + "exporters/build.info", "crypto/objects/build.info", "crypto/buffer/build.info", "crypto/bio/build.info", "crypto/stack/build.info", "crypto/lhash/build.info", + "crypto/hashtable/build.info", "crypto/rand/build.info", "crypto/evp/build.info", "crypto/asn1/build.info", @@ -78,6 +83,7 @@ our %config = ( "crypto/md5/build.info", "crypto/sha/build.info", "crypto/mdc2/build.info", + "crypto/ml_kem/build.info", "crypto/hmac/build.info", "crypto/ripemd/build.info", "crypto/whrlpool/build.info", @@ -119,11 +125,19 @@ our %config = ( "crypto/cmp/build.info", "crypto/encode_decode/build.info", "crypto/ffc/build.info", + "crypto/hpke/build.info", + "crypto/thread/build.info", + "crypto/ml_dsa/build.info", + "crypto/slh_dsa/build.info", + "ssl/record/build.info", + "ssl/rio/build.info", + "ssl/quic/build.info", "apps/lib/build.info", "providers/common/build.info", "providers/implementations/build.info", "providers/fips/build.info", "doc/man1/build.info", + "ssl/record/methods/build.info", "providers/common/der/build.info", "providers/implementations/digests/build.info", "providers/implementations/ciphers/build.info", @@ -137,6 +151,7 @@ our %config = ( "providers/implementations/encode_decode/build.info", "providers/implementations/storemgmt/build.info", "providers/implementations/kem/build.info", + "providers/implementations/skeymgmt/build.info", "providers/implementations/rands/seeding/build.info" ], "build_metadata" => "", @@ -156,7 +171,7 @@ our %config = ( ], "dynamic_engines" => "0", "ex_libs" => [], - "full_version" => "3.0.17", + "full_version" => "3.5.1", "includes" => [], "lflags" => [], "lib_defines" => [ @@ -165,37 +180,52 @@ our %config = ( "libdir" => "", "major" => "3", "makedep_scheme" => "gcc", - "minor" => "0", + "minor" => "5", "openssl_api_defines" => [ - "OPENSSL_CONFIGURED_API=30000" + "OPENSSL_CONFIGURED_API=30500" ], "openssl_feature_defines" => [ "OPENSSL_RAND_SEED_OS", "OPENSSL_THREADS", "OPENSSL_NO_AFALGENG", "OPENSSL_NO_ASAN", + "OPENSSL_NO_BROTLI", + "OPENSSL_NO_BROTLI_DYNAMIC", "OPENSSL_NO_COMP", "OPENSSL_NO_CRYPTO_MDEBUG", "OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE", + "OPENSSL_NO_DEMOS", "OPENSSL_NO_DEVCRYPTOENG", "OPENSSL_NO_EC_NISTP_64_GCC_128", "OPENSSL_NO_EGD", "OPENSSL_NO_EXTERNAL_TESTS", + "OPENSSL_NO_FIPS_JITTER", "OPENSSL_NO_FUZZ_AFL", "OPENSSL_NO_FUZZ_LIBFUZZER", + "OPENSSL_NO_H3DEMO", + "OPENSSL_NO_HQINTEROP", + "OPENSSL_NO_JITTER", "OPENSSL_NO_KTLS", "OPENSSL_NO_LOADERENG", "OPENSSL_NO_MD2", "OPENSSL_NO_MSAN", + "OPENSSL_NO_PIE", "OPENSSL_NO_RC5", "OPENSSL_NO_SCTP", "OPENSSL_NO_SSL3", "OPENSSL_NO_SSL3_METHOD", + "OPENSSL_NO_SSLKEYLOG", + "OPENSSL_NO_TFO", "OPENSSL_NO_TRACE", "OPENSSL_NO_UBSAN", "OPENSSL_NO_UNIT_TEST", "OPENSSL_NO_UPLINK", "OPENSSL_NO_WEAK_SSL_CIPHERS", + "OPENSSL_NO_WINSTORE", + "OPENSSL_NO_ZLIB", + "OPENSSL_NO_ZLIB_DYNAMIC", + "OPENSSL_NO_ZSTD", + "OPENSSL_NO_ZSTD_DYNAMIC", "OPENSSL_NO_DYNAMIC_ENGINE" ], "openssl_other_defines" => [ @@ -205,11 +235,11 @@ our %config = ( "OPENSSL_SYS_AIX" ], "openssldir" => "", - "options" => "enable-ssl-trace enable-fips no-afalgeng no-asan no-buildtest-c++ no-comp no-crypto-mdebug no-crypto-mdebug-backtrace no-devcryptoeng no-dynamic-engine no-ec_nistp_64_gcc_128 no-egd no-external-tests no-fuzz-afl no-fuzz-libfuzzer no-ktls no-loadereng no-md2 no-msan no-rc5 no-sctp no-shared no-ssl3 no-ssl3-method no-trace no-ubsan no-unit-test no-uplink no-weak-ssl-ciphers no-zlib no-zlib-dynamic", - "patch" => "17", + "options" => "enable-ssl-trace enable-fips no-afalgeng no-asan no-brotli no-brotli-dynamic no-buildtest-c++ no-comp no-crypto-mdebug no-crypto-mdebug-backtrace no-demos no-devcryptoeng no-dynamic-engine no-ec_nistp_64_gcc_128 no-egd no-external-tests no-fips-jitter no-fuzz-afl no-fuzz-libfuzzer no-h3demo no-hqinterop no-jitter no-ktls no-loadereng no-md2 no-msan no-pie no-rc5 no-sctp no-shared no-ssl3 no-ssl3-method no-sslkeylog no-tfo no-trace no-ubsan no-unit-test no-uplink no-weak-ssl-ciphers no-winstore no-zlib no-zlib-dynamic no-zstd no-zstd-dynamic", + "patch" => "1", "perl_archname" => "x86_64-linux-gnu-thread-multi", "perl_cmd" => "/usr/bin/perl", - "perl_version" => "5.38.2", + "perl_version" => "5.34.0", "perlargv" => [ "no-comp", "no-shared", @@ -239,6 +269,7 @@ our %config = ( "LDLIBS" => undef, "MT" => undef, "MTFLAGS" => undef, + "OBJCOPY" => undef, "OPENSSL_LOCAL_CONFIG_DIR" => undef, "PERL" => undef, "RANLIB" => undef, @@ -262,7 +293,7 @@ our %config = ( "shlib_version" => "3", "sourcedir" => ".", "target" => "aix64-gcc-as", - "version" => "3.0.17" + "version" => "3.5.1" ); our %target = ( "AR" => "ar -X64", @@ -270,6 +301,7 @@ our %target = ( "CC" => "gcc", "CFLAGS" => "-O", "HASHBANGPERL" => "/usr/bin/env perl", + "OBJCOPY" => "objcopy", "RANLIB" => "ranlib -X64", "RC" => "windres", "_conf_fname_int" => [ @@ -281,6 +313,8 @@ our %target = ( "Configurations/shared-info.pl" ], "asm_arch" => "ppc64", + "bin_cflags" => "", + "bin_lflags" => "", "bn_ops" => "SIXTY_FOUR_BIT_LONG RC4_CHAR", "build_file" => "Makefile", "build_scheme" => [ @@ -323,6 +357,8 @@ our %target = ( our @disablables = ( "acvp-tests", "afalgeng", + "apps", + "argon2", "aria", "asan", "asm", @@ -333,11 +369,14 @@ our @disablables = ( "autoload-config", "bf", "blake2", + "brotli", + "brotli-dynamic", "buildtest-c++", "bulk", "cached-fetch", "camellia", "capieng", + "winstore", "cast", "chacha", "cmac", @@ -346,11 +385,16 @@ our @disablables = ( "comp", "crypto-mdebug", "ct", + "default-thread-pool", + "demos", + "h3demo", + "hqinterop", "deprecated", "des", "devcryptoeng", "dgram", "dh", + "docs", "dsa", "dso", "dtls", @@ -360,6 +404,7 @@ our @disablables = ( "ec_nistp_64_gcc_128", "ecdh", "ecdsa", + "ecx", "egd", "engine", "err", @@ -367,10 +412,15 @@ our @disablables = ( "filenames", "fips", "fips-securitychecks", + "fips-post", + "fips-jitter", "fuzz-afl", "fuzz-libfuzzer", "gost", + "http", "idea", + "integrity-only-ciphers", + "jitter", "ktls", "legacy", "loadereng", @@ -378,6 +428,8 @@ our @disablables = ( "md2", "md4", "mdc2", + "ml-dsa", + "ml-kem", "module", "msan", "multiblock", @@ -386,10 +438,13 @@ our @disablables = ( "ocsp", "padlockeng", "pic", + "pie", "pinshared", "poly1305", "posix-io", "psk", + "quic", + "unstable-qlog", "rc2", "rc4", "rc5", @@ -403,7 +458,9 @@ our @disablables = ( "shared", "siphash", "siv", + "slh-dsa", "sm2", + "sm2-precomp", "sm3", "sm4", "sock", @@ -414,9 +471,13 @@ our @disablables = ( "ssl-trace", "static-engine", "stdio", + "sslkeylog", "tests", + "tfo", + "thread-pool", "threads", "tls", + "tls-deprecated-ec", "trace", "ts", "ubsan", @@ -427,6 +488,8 @@ our @disablables = ( "whirlpool", "zlib", "zlib-dynamic", + "zstd", + "zstd-dynamic", "ssl3", "ssl3-method", "tls1", @@ -447,33 +510,46 @@ our @disablables_int = ( our %disabled = ( "afalgeng" => "option", "asan" => "default", + "brotli" => "default", + "brotli-dynamic" => "default", "buildtest-c++" => "default", "comp" => "option", "crypto-mdebug" => "default", "crypto-mdebug-backtrace" => "default", + "demos" => "default", "devcryptoeng" => "default", "dynamic-engine" => "cascade", "ec_nistp_64_gcc_128" => "default", "egd" => "default", "external-tests" => "default", + "fips-jitter" => "default", "fuzz-afl" => "default", "fuzz-libfuzzer" => "default", + "h3demo" => "default", + "hqinterop" => "default", + "jitter" => "default", "ktls" => "default", "loadereng" => "cascade", "md2" => "default", "msan" => "default", + "pie" => "default", "rc5" => "default", "sctp" => "default", "shared" => "option", "ssl3" => "default", "ssl3-method" => "default", + "sslkeylog" => "default", + "tfo" => "default", "trace" => "default", "ubsan" => "default", "unit-test" => "default", "uplink" => "no uplink_arch", "weak-ssl-ciphers" => "default", + "winstore" => "not-windows", "zlib" => "default", - "zlib-dynamic" => "default" + "zlib-dynamic" => "default", + "zstd" => "default", + "zstd-dynamic" => "default" ); our %withargs = (); our %unified_info = ( @@ -699,6 +775,11 @@ our %unified_info = ( "pod" => "1" } }, + "doc/man1/openssl-skeyutl.pod" => { + "doc/man1/openssl-skeyutl.pod.in" => { + "pod" => "1" + } + }, "doc/man1/openssl-smime.pod" => { "doc/man1/openssl-smime.pod.in" => { "pod" => "1" @@ -756,6 +837,21 @@ our %unified_info = ( } }, "generate" => { + "exporters/OpenSSLConfig.cmake" => { + "exporter" => "cmake" + }, + "exporters/OpenSSLConfigVersion.cmake" => { + "exporter" => "cmake" + }, + "exporters/libcrypto.pc" => { + "exporter" => "pkg-config" + }, + "exporters/libssl.pc" => { + "exporter" => "pkg-config" + }, + "exporters/openssl.pc" => { + "exporter" => "pkg-config" + }, "include/openssl/configuration.h" => { "skip" => "1" } @@ -776,6 +872,9 @@ our %unified_info = ( "providers/liblegacy.a" => { "noinst" => "1" }, + "providers/libtemplate.a" => { + "noinst" => "1" + }, "test/libtestutil.a" => { "has_main" => "1", "noinst" => "1" @@ -793,6 +892,9 @@ our %unified_info = ( } }, "programs" => { + "fuzz/acert-test" => { + "noinst" => "1" + }, "fuzz/asn1-test" => { "noinst" => "1" }, @@ -823,9 +925,60 @@ our %unified_info = ( "fuzz/ct-test" => { "noinst" => "1" }, + "fuzz/decoder-test" => { + "noinst" => "1" + }, + "fuzz/dtlsclient-test" => { + "noinst" => "1" + }, + "fuzz/dtlsserver-test" => { + "noinst" => "1" + }, + "fuzz/hashtable-test" => { + "noinst" => "1" + }, + "fuzz/ml-dsa-test" => { + "noinst" => "1" + }, + "fuzz/ml-kem-test" => { + "noinst" => "1" + }, + "fuzz/pem-test" => { + "noinst" => "1" + }, + "fuzz/provider-test" => { + "noinst" => "1" + }, + "fuzz/punycode-test" => { + "noinst" => "1" + }, + "fuzz/quic-client-test" => { + "noinst" => "1" + }, + "fuzz/quic-lcidm-test" => { + "noinst" => "1" + }, + "fuzz/quic-rcidm-test" => { + "noinst" => "1" + }, + "fuzz/quic-server-test" => { + "noinst" => "1" + }, + "fuzz/quic-srtm-test" => { + "noinst" => "1" + }, "fuzz/server-test" => { "noinst" => "1" }, + "fuzz/slh-dsa-test" => { + "noinst" => "1" + }, + "fuzz/smime-test" => { + "noinst" => "1" + }, + "fuzz/v3name-test" => { + "noinst" => "1" + }, "fuzz/x509-test" => { "noinst" => "1" }, @@ -877,18 +1030,30 @@ our %unified_info = ( "test/bftest" => { "noinst" => "1" }, + "test/bio_addr_test" => { + "noinst" => "1" + }, + "test/bio_base64_test" => { + "noinst" => "1" + }, "test/bio_callback_test" => { "noinst" => "1" }, "test/bio_core_test" => { "noinst" => "1" }, + "test/bio_dgram_test" => { + "noinst" => "1" + }, "test/bio_enc_test" => { "noinst" => "1" }, "test/bio_memleak_test" => { "noinst" => "1" }, + "test/bio_meth_test" => { + "noinst" => "1" + }, "test/bio_prefix_text" => { "noinst" => "1" }, @@ -898,6 +1063,9 @@ our %unified_info = ( "test/bio_readbuffer_test" => { "noinst" => "1" }, + "test/bio_tfo_test" => { + "noinst" => "1" + }, "test/bioprinttest" => { "noinst" => "1" }, @@ -907,6 +1075,9 @@ our %unified_info = ( "test/bntest" => { "noinst" => "1" }, + "test/build_wincrypt_test" => { + "noinst" => "1" + }, "test/buildtest_c_aes" => { "noinst" => "1" }, @@ -922,6 +1093,9 @@ our %unified_info = ( "test/buildtest_c_buffer" => { "noinst" => "1" }, + "test/buildtest_c_byteorder" => { + "noinst" => "1" + }, "test/buildtest_c_camellia" => { "noinst" => "1" }, @@ -946,9 +1120,6 @@ our %unified_info = ( "test/buildtest_c_core_dispatch" => { "noinst" => "1" }, - "test/buildtest_c_core_names" => { - "noinst" => "1" - }, "test/buildtest_c_core_object" => { "noinst" => "1" }, @@ -973,6 +1144,9 @@ our %unified_info = ( "test/buildtest_c_e_os2" => { "noinst" => "1" }, + "test/buildtest_c_e_ostime" => { + "noinst" => "1" + }, "test/buildtest_c_ebcdic" => { "noinst" => "1" }, @@ -1000,12 +1174,18 @@ our %unified_info = ( "test/buildtest_c_hmac" => { "noinst" => "1" }, + "test/buildtest_c_hpke" => { + "noinst" => "1" + }, "test/buildtest_c_http" => { "noinst" => "1" }, "test/buildtest_c_idea" => { "noinst" => "1" }, + "test/buildtest_c_indicator" => { + "noinst" => "1" + }, "test/buildtest_c_kdf" => { "noinst" => "1" }, @@ -1021,6 +1201,9 @@ our %unified_info = ( "test/buildtest_c_mdc2" => { "noinst" => "1" }, + "test/buildtest_c_ml_kem" => { + "noinst" => "1" + }, "test/buildtest_c_modes" => { "noinst" => "1" }, @@ -1051,6 +1234,9 @@ our %unified_info = ( "test/buildtest_c_provider" => { "noinst" => "1" }, + "test/buildtest_c_quic" => { + "noinst" => "1" + }, "test/buildtest_c_rand" => { "noinst" => "1" }, @@ -1093,6 +1279,9 @@ our %unified_info = ( "test/buildtest_c_symhacks" => { "noinst" => "1" }, + "test/buildtest_c_thread" => { + "noinst" => "1" + }, "test/buildtest_c_tls1" => { "noinst" => "1" }, @@ -1108,6 +1297,12 @@ our %unified_info = ( "test/buildtest_c_whrlpool" => { "noinst" => "1" }, + "test/byteorder_test" => { + "noinst" => "1" + }, + "test/ca_internals_test" => { + "noinst" => "1" + }, "test/casttest" => { "noinst" => "1" }, @@ -1192,6 +1387,9 @@ our %unified_info = ( "test/danetest" => { "noinst" => "1" }, + "test/decoder_propq_test" => { + "noinst" => "1" + }, "test/defltfips_test" => { "noinst" => "1" }, @@ -1264,15 +1462,24 @@ our %unified_info = ( "test/evp_pkey_ctx_new_from_name" => { "noinst" => "1" }, + "test/evp_pkey_dhkem_test" => { + "noinst" => "1" + }, "test/evp_pkey_dparams_test" => { "noinst" => "1" }, "test/evp_pkey_provided_test" => { "noinst" => "1" }, + "test/evp_skey_test" => { + "noinst" => "1" + }, "test/evp_test" => { "noinst" => "1" }, + "test/evp_xof_test" => { + "noinst" => "1" + }, "test/exdatatest" => { "noinst" => "1" }, @@ -1300,6 +1507,9 @@ our %unified_info = ( "test/hmactest" => { "noinst" => "1" }, + "test/hpke_test" => { + "noinst" => "1" + }, "test/http_test" => { "noinst" => "1" }, @@ -1309,12 +1519,18 @@ our %unified_info = ( "test/igetest" => { "noinst" => "1" }, + "test/json_test" => { + "noinst" => "1" + }, "test/keymgmt_internal_test" => { "noinst" => "1" }, "test/lhash_test" => { "noinst" => "1" }, + "test/list_test" => { + "noinst" => "1" + }, "test/localetest" => { "noinst" => "1" }, @@ -1324,9 +1540,21 @@ our %unified_info = ( "test/mdc2test" => { "noinst" => "1" }, + "test/membio_test" => { + "noinst" => "1" + }, "test/memleaktest" => { "noinst" => "1" }, + "test/ml_dsa_test" => { + "noinst" => "1" + }, + "test/ml_kem_evp_extra_test" => { + "noinst" => "1" + }, + "test/ml_kem_internal_test" => { + "noinst" => "1" + }, "test/modes_internal_test" => { "noinst" => "1" }, @@ -1345,6 +1573,9 @@ our %unified_info = ( "test/packettest" => { "noinst" => "1" }, + "test/pairwise_fail_test" => { + "noinst" => "1" + }, "test/param_build_test" => { "noinst" => "1" }, @@ -1369,6 +1600,9 @@ our %unified_info = ( "test/pemtest" => { "noinst" => "1" }, + "test/pkcs12_api_test" => { + "noinst" => "1" + }, "test/pkcs12_format_test" => { "noinst" => "1" }, @@ -1384,6 +1618,9 @@ our %unified_info = ( "test/poly1305_internal_test" => { "noinst" => "1" }, + "test/priority_queue_test" => { + "noinst" => "1" + }, "test/property_test" => { "noinst" => "1" }, @@ -1393,6 +1630,9 @@ our %unified_info = ( "test/provfetchtest" => { "noinst" => "1" }, + "test/provider_default_search_path_test" => { + "noinst" => "1" + }, "test/provider_fallback_test" => { "noinst" => "1" }, @@ -1411,6 +1651,72 @@ our %unified_info = ( "test/punycode_test" => { "noinst" => "1" }, + "test/quic_ackm_test" => { + "noinst" => "1" + }, + "test/quic_cc_test" => { + "noinst" => "1" + }, + "test/quic_cfq_test" => { + "noinst" => "1" + }, + "test/quic_client_test" => { + "noinst" => "1" + }, + "test/quic_fc_test" => { + "noinst" => "1" + }, + "test/quic_fifd_test" => { + "noinst" => "1" + }, + "test/quic_lcidm_test" => { + "noinst" => "1" + }, + "test/quic_multistream_test" => { + "noinst" => "1" + }, + "test/quic_newcid_test" => { + "noinst" => "1" + }, + "test/quic_qlog_test" => { + "noinst" => "1" + }, + "test/quic_radix_test" => { + "noinst" => "1" + }, + "test/quic_rcidm_test" => { + "noinst" => "1" + }, + "test/quic_record_test" => { + "noinst" => "1" + }, + "test/quic_srt_gen_test" => { + "noinst" => "1" + }, + "test/quic_srtm_test" => { + "noinst" => "1" + }, + "test/quic_stream_test" => { + "noinst" => "1" + }, + "test/quic_tserver_test" => { + "noinst" => "1" + }, + "test/quic_txp_test" => { + "noinst" => "1" + }, + "test/quic_txpim_test" => { + "noinst" => "1" + }, + "test/quic_wire_test" => { + "noinst" => "1" + }, + "test/quicapitest" => { + "noinst" => "1" + }, + "test/quicfaultstest" => { + "noinst" => "1" + }, "test/rand_status_test" => { "noinst" => "1" }, @@ -1426,12 +1732,15 @@ our %unified_info = ( "test/rc5test" => { "noinst" => "1" }, - "test/rdrand_sanitytest" => { + "test/rdcpu_sanitytest" => { "noinst" => "1" }, "test/recordlentest" => { "noinst" => "1" }, + "test/rpktest" => { + "noinst" => "1" + }, "test/rsa_complex" => { "noinst" => "1" }, @@ -1444,6 +1753,12 @@ our %unified_info = ( "test/rsa_test" => { "noinst" => "1" }, + "test/rsa_x931_test" => { + "noinst" => "1" + }, + "test/safe_math_test" => { + "noinst" => "1" + }, "test/sanitytest" => { "noinst" => "1" }, @@ -1459,6 +1774,9 @@ our %unified_info = ( "test/siphash_internal_test" => { "noinst" => "1" }, + "test/slh_dsa_test" => { + "noinst" => "1" + }, "test/sm2_internal_test" => { "noinst" => "1" }, @@ -1480,6 +1798,9 @@ our %unified_info = ( "test/ssl_ctx_test" => { "noinst" => "1" }, + "test/ssl_handshake_rtt_test" => { + "noinst" => "1" + }, "test/ssl_old_test" => { "noinst" => "1" }, @@ -1501,12 +1822,18 @@ our %unified_info = ( "test/stack_test" => { "noinst" => "1" }, + "test/strtoultest" => { + "noinst" => "1" + }, "test/sysdefaulttest" => { "noinst" => "1" }, "test/test_test" => { "noinst" => "1" }, + "test/threadpool_test" => { + "noinst" => "1" + }, "test/threadstest" => { "noinst" => "1" }, @@ -1516,12 +1843,18 @@ our %unified_info = ( "test/time_offset_test" => { "noinst" => "1" }, + "test/time_test" => { + "noinst" => "1" + }, "test/tls13ccstest" => { "noinst" => "1" }, "test/tls13encryptiontest" => { "noinst" => "1" }, + "test/tls13groupselection_test" => { + "noinst" => "1" + }, "test/trace_api_test" => { "noinst" => "1" }, @@ -1549,6 +1882,9 @@ our %unified_info = ( "test/wpackettest" => { "noinst" => "1" }, + "test/x509_acert_test" => { + "noinst" => "1" + }, "test/x509_check_cert_pkey_test" => { "noinst" => "1" }, @@ -1558,6 +1894,15 @@ our %unified_info = ( "test/x509_internal_test" => { "noinst" => "1" }, + "test/x509_load_cert_file_test" => { + "noinst" => "1" + }, + "test/x509_req_test" => { + "noinst" => "1" + }, + "test/x509_test" => { + "noinst" => "1" + }, "test/x509_time_test" => { "noinst" => "1" }, @@ -1639,6 +1984,9 @@ our %unified_info = ( "VPAES_ASM", "X25519_ASM" ], + "test/endecode_test" => [ + "STATIC_LEGACY" + ], "test/evp_extra_test" => [ "STATIC_LEGACY" ], @@ -1651,14 +1999,21 @@ our %unified_info = ( }, "depends" => { "" => [ + "OpenSSLConfigVersion.cmake", + "crypto/params_idx.c", + "exporters/OpenSSLConfigVersion.cmake", + "exporters/openssl.pc", "include/crypto/bn_conf.h", "include/crypto/dso_conf.h", + "include/internal/param_names.h", "include/openssl/asn1.h", "include/openssl/asn1t.h", "include/openssl/bio.h", "include/openssl/cmp.h", "include/openssl/cms.h", + "include/openssl/comp.h", "include/openssl/conf.h", + "include/openssl/core_names.h", "include/openssl/crmf.h", "include/openssl/crypto.h", "include/openssl/ct.h", @@ -1675,10 +2030,22 @@ our %unified_info = ( "include/openssl/ssl.h", "include/openssl/ui.h", "include/openssl/x509.h", + "include/openssl/x509_acert.h", "include/openssl/x509_vfy.h", "include/openssl/x509v3.h", + "openssl.pc", "test/provider_internal_test.cnf" ], + "OpenSSLConfig.cmake" => [ + "builddata.pm" + ], + "OpenSSLConfigVersion.cmake" => [ + "OpenSSLConfig.cmake", + "builddata.pm" + ], + "apps/ca_internals_test-bin-ca.o" => [ + "apps/progs.h" + ], "apps/lib/cmp_client_test-bin-cmp_mock_srv.o" => [ "apps/progs.h" ], @@ -1824,6 +2191,9 @@ our %unified_info = ( "apps/openssl-bin-sess_id.o" => [ "apps/progs.h" ], + "apps/openssl-bin-skeyutl.o" => [ + "apps/progs.h" + ], "apps/openssl-bin-smime.o" => [ "apps/progs.h" ], @@ -1912,6 +2282,9 @@ our %unified_info = ( "crypto/libcrypto-lib-info.o" => [ "crypto/buildinf.h" ], + "crypto/params_idx.c" => [ + "util/perl|OpenSSL/paramnames.pm" + ], "crypto/rc4/rc4-586.S" => [ "crypto/perlasm/x86asm.pl" ], @@ -2077,6 +2450,9 @@ our %unified_info = ( "doc/html/man1/openssl-sess_id.html" => [ "doc/man1/openssl-sess_id.pod" ], + "doc/html/man1/openssl-skeyutl.html" => [ + "doc/man1/openssl-skeyutl.pod" + ], "doc/html/man1/openssl-smime.html" => [ "doc/man1/openssl-smime.pod" ], @@ -2218,6 +2594,9 @@ our %unified_info = ( "doc/html/man3/BIO_get_ex_new_index.html" => [ "doc/man3/BIO_get_ex_new_index.pod" ], + "doc/html/man3/BIO_get_rpoll_descriptor.html" => [ + "doc/man3/BIO_get_rpoll_descriptor.pod" + ], "doc/html/man3/BIO_meth_new.html" => [ "doc/man3/BIO_meth_new.pod" ], @@ -2254,6 +2633,9 @@ our %unified_info = ( "doc/html/man3/BIO_s_datagram.html" => [ "doc/man3/BIO_s_datagram.pod" ], + "doc/html/man3/BIO_s_dgram_pair.html" => [ + "doc/man3/BIO_s_dgram_pair.pod" + ], "doc/html/man3/BIO_s_fd.html" => [ "doc/man3/BIO_s_fd.pod" ], @@ -2269,6 +2651,9 @@ our %unified_info = ( "doc/html/man3/BIO_s_socket.html" => [ "doc/man3/BIO_s_socket.pod" ], + "doc/html/man3/BIO_sendmmsg.html" => [ + "doc/man3/BIO_sendmmsg.pod" + ], "doc/html/man3/BIO_set_callback.html" => [ "doc/man3/BIO_set_callback.pod" ], @@ -2341,6 +2726,9 @@ our %unified_info = ( "doc/html/man3/BUF_MEM_new.html" => [ "doc/man3/BUF_MEM_new.pod" ], + "doc/html/man3/CMAC_CTX.html" => [ + "doc/man3/CMAC_CTX.pod" + ], "doc/html/man3/CMS_EncryptedData_decrypt.html" => [ "doc/man3/CMS_EncryptedData_decrypt.pod" ], @@ -2407,6 +2795,9 @@ our %unified_info = ( "doc/html/man3/CMS_verify_receipt.html" => [ "doc/man3/CMS_verify_receipt.pod" ], + "doc/html/man3/COMP_CTX_new.html" => [ + "doc/man3/COMP_CTX_new.pod" + ], "doc/html/man3/CONF_modules_free.html" => [ "doc/man3/CONF_modules_free.pod" ], @@ -2506,6 +2897,12 @@ our %unified_info = ( "doc/html/man3/DTLS_set_timer_cb.html" => [ "doc/man3/DTLS_set_timer_cb.pod" ], + "doc/html/man3/DTLSv1_get_timeout.html" => [ + "doc/man3/DTLSv1_get_timeout.pod" + ], + "doc/html/man3/DTLSv1_handle_timeout.html" => [ + "doc/man3/DTLSv1_handle_timeout.pod" + ], "doc/html/man3/DTLSv1_listen.html" => [ "doc/man3/DTLSv1_listen.pod" ], @@ -2644,6 +3041,9 @@ our %unified_info = ( "doc/html/man3/EVP_PKEY_CTX_get0_pkey.html" => [ "doc/man3/EVP_PKEY_CTX_get0_pkey.pod" ], + "doc/html/man3/EVP_PKEY_CTX_get_algor.html" => [ + "doc/man3/EVP_PKEY_CTX_get_algor.pod" + ], "doc/html/man3/EVP_PKEY_CTX_new.html" => [ "doc/man3/EVP_PKEY_CTX_new.pod" ], @@ -2761,6 +3161,12 @@ our %unified_info = ( "doc/html/man3/EVP_SIGNATURE.html" => [ "doc/man3/EVP_SIGNATURE.pod" ], + "doc/html/man3/EVP_SKEY.html" => [ + "doc/man3/EVP_SKEY.pod" + ], + "doc/html/man3/EVP_SKEYMGMT.html" => [ + "doc/man3/EVP_SKEYMGMT.pod" + ], "doc/html/man3/EVP_SealInit.html" => [ "doc/man3/EVP_SealInit.pod" ], @@ -2848,6 +3254,9 @@ our %unified_info = ( "doc/html/man3/EVP_whirlpool.html" => [ "doc/man3/EVP_whirlpool.pod" ], + "doc/html/man3/GENERAL_NAME.html" => [ + "doc/man3/GENERAL_NAME.pod" + ], "doc/html/man3/HMAC.html" => [ "doc/man3/HMAC.pod" ], @@ -2920,9 +3329,15 @@ our %unified_info = ( "doc/html/man3/OPENSSL_load_builtin_modules.html" => [ "doc/man3/OPENSSL_load_builtin_modules.pod" ], + "doc/html/man3/OPENSSL_load_u16_le.html" => [ + "doc/man3/OPENSSL_load_u16_le.pod" + ], "doc/html/man3/OPENSSL_malloc.html" => [ "doc/man3/OPENSSL_malloc.pod" ], + "doc/html/man3/OPENSSL_riscvcap.html" => [ + "doc/man3/OPENSSL_riscvcap.pod" + ], "doc/html/man3/OPENSSL_s390xcap.html" => [ "doc/man3/OPENSSL_s390xcap.pod" ], @@ -2938,12 +3353,18 @@ our %unified_info = ( "doc/html/man3/OSSL_CALLBACK.html" => [ "doc/man3/OSSL_CALLBACK.pod" ], + "doc/html/man3/OSSL_CMP_ATAV_set0.html" => [ + "doc/man3/OSSL_CMP_ATAV_set0.pod" + ], "doc/html/man3/OSSL_CMP_CTX_new.html" => [ "doc/man3/OSSL_CMP_CTX_new.pod" ], "doc/html/man3/OSSL_CMP_HDR_get0_transactionID.html" => [ "doc/man3/OSSL_CMP_HDR_get0_transactionID.pod" ], + "doc/html/man3/OSSL_CMP_ITAV_new_caCerts.html" => [ + "doc/man3/OSSL_CMP_ITAV_new_caCerts.pod" + ], "doc/html/man3/OSSL_CMP_ITAV_set0.html" => [ "doc/man3/OSSL_CMP_ITAV_set0.pod" ], @@ -3013,9 +3434,18 @@ our %unified_info = ( "doc/html/man3/OSSL_ENCODER_to_bio.html" => [ "doc/man3/OSSL_ENCODER_to_bio.pod" ], + "doc/html/man3/OSSL_ERR_STATE_save.html" => [ + "doc/man3/OSSL_ERR_STATE_save.pod" + ], "doc/html/man3/OSSL_ESS_check_signing_certs.html" => [ "doc/man3/OSSL_ESS_check_signing_certs.pod" ], + "doc/html/man3/OSSL_GENERAL_NAMES_print.html" => [ + "doc/man3/OSSL_GENERAL_NAMES_print.pod" + ], + "doc/html/man3/OSSL_HPKE_CTX_new.html" => [ + "doc/man3/OSSL_HPKE_CTX_new.pod" + ], "doc/html/man3/OSSL_HTTP_REQ_CTX.html" => [ "doc/man3/OSSL_HTTP_REQ_CTX.pod" ], @@ -3025,12 +3455,24 @@ our %unified_info = ( "doc/html/man3/OSSL_HTTP_transfer.html" => [ "doc/man3/OSSL_HTTP_transfer.pod" ], + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX.html" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX.pod" + ], + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX_print.html" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX_print.pod" + ], + "doc/html/man3/OSSL_INDICATOR_set_callback.html" => [ + "doc/man3/OSSL_INDICATOR_set_callback.pod" + ], "doc/html/man3/OSSL_ITEM.html" => [ "doc/man3/OSSL_ITEM.pod" ], "doc/html/man3/OSSL_LIB_CTX.html" => [ "doc/man3/OSSL_LIB_CTX.pod" ], + "doc/html/man3/OSSL_LIB_CTX_set_conf_diagnostics.html" => [ + "doc/man3/OSSL_LIB_CTX_set_conf_diagnostics.pod" + ], "doc/html/man3/OSSL_PARAM.html" => [ "doc/man3/OSSL_PARAM.pod" ], @@ -3046,9 +3488,15 @@ our %unified_info = ( "doc/html/man3/OSSL_PARAM_int.html" => [ "doc/man3/OSSL_PARAM_int.pod" ], + "doc/html/man3/OSSL_PARAM_print_to_bio.html" => [ + "doc/man3/OSSL_PARAM_print_to_bio.pod" + ], "doc/html/man3/OSSL_PROVIDER.html" => [ "doc/man3/OSSL_PROVIDER.pod" ], + "doc/html/man3/OSSL_QUIC_client_method.html" => [ + "doc/man3/OSSL_QUIC_client_method.pod" + ], "doc/html/man3/OSSL_SELF_TEST_new.html" => [ "doc/man3/OSSL_SELF_TEST_new.pod" ], @@ -3073,6 +3521,9 @@ our %unified_info = ( "doc/html/man3/OSSL_STORE_open.html" => [ "doc/man3/OSSL_STORE_open.pod" ], + "doc/html/man3/OSSL_sleep.html" => [ + "doc/man3/OSSL_sleep.pod" + ], "doc/html/man3/OSSL_trace_enabled.html" => [ "doc/man3/OSSL_trace_enabled.pod" ], @@ -3088,6 +3539,9 @@ our %unified_info = ( "doc/html/man3/OpenSSL_version.html" => [ "doc/man3/OpenSSL_version.pod" ], + "doc/html/man3/PBMAC1_get1_pbkdf2_param.html" => [ + "doc/man3/PBMAC1_get1_pbkdf2_param.pod" + ], "doc/html/man3/PEM_X509_INFO_read_bio_ex.html" => [ "doc/man3/PEM_X509_INFO_read_bio_ex.pod" ], @@ -3124,6 +3578,9 @@ our %unified_info = ( "doc/html/man3/PKCS12_SAFEBAG_get1_cert.html" => [ "doc/man3/PKCS12_SAFEBAG_get1_cert.pod" ], + "doc/html/man3/PKCS12_SAFEBAG_set0_attrs.html" => [ + "doc/man3/PKCS12_SAFEBAG_set0_attrs.pod" + ], "doc/html/man3/PKCS12_add1_attr_by_NID.html" => [ "doc/man3/PKCS12_add1_attr_by_NID.pod" ], @@ -3397,6 +3854,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set0_CA_list.html" => [ "doc/man3/SSL_CTX_set0_CA_list.pod" ], + "doc/html/man3/SSL_CTX_set1_cert_comp_preference.html" => [ + "doc/man3/SSL_CTX_set1_cert_comp_preference.pod" + ], "doc/html/man3/SSL_CTX_set1_curves.html" => [ "doc/man3/SSL_CTX_set1_curves.pod" ], @@ -3436,6 +3896,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_default_passwd_cb.html" => [ "doc/man3/SSL_CTX_set_default_passwd_cb.pod" ], + "doc/html/man3/SSL_CTX_set_domain_flags.html" => [ + "doc/man3/SSL_CTX_set_domain_flags.pod" + ], "doc/html/man3/SSL_CTX_set_generate_session_id.html" => [ "doc/man3/SSL_CTX_set_generate_session_id.pod" ], @@ -3457,6 +3920,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_msg_callback.html" => [ "doc/man3/SSL_CTX_set_msg_callback.pod" ], + "doc/html/man3/SSL_CTX_set_new_pending_conn_cb.html" => [ + "doc/man3/SSL_CTX_set_new_pending_conn_cb.pod" + ], "doc/html/man3/SSL_CTX_set_num_tickets.html" => [ "doc/man3/SSL_CTX_set_num_tickets.pod" ], @@ -3571,6 +4037,9 @@ our %unified_info = ( "doc/html/man3/SSL_accept.html" => [ "doc/man3/SSL_accept.pod" ], + "doc/html/man3/SSL_accept_stream.html" => [ + "doc/man3/SSL_accept_stream.pod" + ], "doc/html/man3/SSL_alert_type_string.html" => [ "doc/man3/SSL_alert_type_string.pod" ], @@ -3598,9 +4067,21 @@ our %unified_info = ( "doc/html/man3/SSL_free.html" => [ "doc/man3/SSL_free.pod" ], + "doc/html/man3/SSL_get0_connection.html" => [ + "doc/man3/SSL_get0_connection.pod" + ], + "doc/html/man3/SSL_get0_group_name.html" => [ + "doc/man3/SSL_get0_group_name.pod" + ], + "doc/html/man3/SSL_get0_peer_rpk.html" => [ + "doc/man3/SSL_get0_peer_rpk.pod" + ], "doc/html/man3/SSL_get0_peer_scts.html" => [ "doc/man3/SSL_get0_peer_scts.pod" ], + "doc/html/man3/SSL_get1_builtin_sigalgs.html" => [ + "doc/man3/SSL_get1_builtin_sigalgs.pod" + ], "doc/html/man3/SSL_get_SSL_CTX.html" => [ "doc/man3/SSL_get_SSL_CTX.pod" ], @@ -3616,6 +4097,9 @@ our %unified_info = ( "doc/html/man3/SSL_get_client_random.html" => [ "doc/man3/SSL_get_client_random.pod" ], + "doc/html/man3/SSL_get_conn_close_info.html" => [ + "doc/man3/SSL_get_conn_close_info.pod" + ], "doc/html/man3/SSL_get_current_cipher.html" => [ "doc/man3/SSL_get_current_cipher.pod" ], @@ -3625,12 +4109,18 @@ our %unified_info = ( "doc/html/man3/SSL_get_error.html" => [ "doc/man3/SSL_get_error.pod" ], + "doc/html/man3/SSL_get_event_timeout.html" => [ + "doc/man3/SSL_get_event_timeout.pod" + ], "doc/html/man3/SSL_get_extms_support.html" => [ "doc/man3/SSL_get_extms_support.pod" ], "doc/html/man3/SSL_get_fd.html" => [ "doc/man3/SSL_get_fd.pod" ], + "doc/html/man3/SSL_get_handshake_rtt.html" => [ + "doc/man3/SSL_get_handshake_rtt.pod" + ], "doc/html/man3/SSL_get_peer_cert_chain.html" => [ "doc/man3/SSL_get_peer_cert_chain.pod" ], @@ -3649,12 +4139,24 @@ our %unified_info = ( "doc/html/man3/SSL_get_rbio.html" => [ "doc/man3/SSL_get_rbio.pod" ], + "doc/html/man3/SSL_get_rpoll_descriptor.html" => [ + "doc/man3/SSL_get_rpoll_descriptor.pod" + ], "doc/html/man3/SSL_get_session.html" => [ "doc/man3/SSL_get_session.pod" ], "doc/html/man3/SSL_get_shared_sigalgs.html" => [ "doc/man3/SSL_get_shared_sigalgs.pod" ], + "doc/html/man3/SSL_get_stream_id.html" => [ + "doc/man3/SSL_get_stream_id.pod" + ], + "doc/html/man3/SSL_get_stream_read_state.html" => [ + "doc/man3/SSL_get_stream_read_state.pod" + ], + "doc/html/man3/SSL_get_value_uint.html" => [ + "doc/man3/SSL_get_value_uint.pod" + ], "doc/html/man3/SSL_get_verify_result.html" => [ "doc/man3/SSL_get_verify_result.pod" ], @@ -3664,9 +4166,15 @@ our %unified_info = ( "doc/html/man3/SSL_group_to_name.html" => [ "doc/man3/SSL_group_to_name.pod" ], + "doc/html/man3/SSL_handle_events.html" => [ + "doc/man3/SSL_handle_events.pod" + ], "doc/html/man3/SSL_in_init.html" => [ "doc/man3/SSL_in_init.pod" ], + "doc/html/man3/SSL_inject_net_dgram.html" => [ + "doc/man3/SSL_inject_net_dgram.pod" + ], "doc/html/man3/SSL_key_update.html" => [ "doc/man3/SSL_key_update.pod" ], @@ -3679,9 +4187,21 @@ our %unified_info = ( "doc/html/man3/SSL_new.html" => [ "doc/man3/SSL_new.pod" ], + "doc/html/man3/SSL_new_domain.html" => [ + "doc/man3/SSL_new_domain.pod" + ], + "doc/html/man3/SSL_new_listener.html" => [ + "doc/man3/SSL_new_listener.pod" + ], + "doc/html/man3/SSL_new_stream.html" => [ + "doc/man3/SSL_new_stream.pod" + ], "doc/html/man3/SSL_pending.html" => [ "doc/man3/SSL_pending.pod" ], + "doc/html/man3/SSL_poll.html" => [ + "doc/man3/SSL_poll.pod" + ], "doc/html/man3/SSL_read.html" => [ "doc/man3/SSL_read.pod" ], @@ -3697,24 +4217,45 @@ our %unified_info = ( "doc/html/man3/SSL_set1_host.html" => [ "doc/man3/SSL_set1_host.pod" ], + "doc/html/man3/SSL_set1_initial_peer_addr.html" => [ + "doc/man3/SSL_set1_initial_peer_addr.pod" + ], + "doc/html/man3/SSL_set1_server_cert_type.html" => [ + "doc/man3/SSL_set1_server_cert_type.pod" + ], "doc/html/man3/SSL_set_async_callback.html" => [ "doc/man3/SSL_set_async_callback.pod" ], "doc/html/man3/SSL_set_bio.html" => [ "doc/man3/SSL_set_bio.pod" ], + "doc/html/man3/SSL_set_blocking_mode.html" => [ + "doc/man3/SSL_set_blocking_mode.pod" + ], "doc/html/man3/SSL_set_connect_state.html" => [ "doc/man3/SSL_set_connect_state.pod" ], + "doc/html/man3/SSL_set_default_stream_mode.html" => [ + "doc/man3/SSL_set_default_stream_mode.pod" + ], "doc/html/man3/SSL_set_fd.html" => [ "doc/man3/SSL_set_fd.pod" ], + "doc/html/man3/SSL_set_incoming_stream_policy.html" => [ + "doc/man3/SSL_set_incoming_stream_policy.pod" + ], + "doc/html/man3/SSL_set_quic_tls_cbs.html" => [ + "doc/man3/SSL_set_quic_tls_cbs.pod" + ], "doc/html/man3/SSL_set_retry_verify.html" => [ "doc/man3/SSL_set_retry_verify.pod" ], "doc/html/man3/SSL_set_session.html" => [ "doc/man3/SSL_set_session.pod" ], + "doc/html/man3/SSL_set_session_secret_cb.html" => [ + "doc/man3/SSL_set_session_secret_cb.pod" + ], "doc/html/man3/SSL_set_shutdown.html" => [ "doc/man3/SSL_set_shutdown.pod" ], @@ -3727,6 +4268,12 @@ our %unified_info = ( "doc/html/man3/SSL_state_string.html" => [ "doc/man3/SSL_state_string.pod" ], + "doc/html/man3/SSL_stream_conclude.html" => [ + "doc/man3/SSL_stream_conclude.pod" + ], + "doc/html/man3/SSL_stream_reset.html" => [ + "doc/man3/SSL_stream_reset.pod" + ], "doc/html/man3/SSL_want.html" => [ "doc/man3/SSL_want.pod" ], @@ -3736,8 +4283,8 @@ our %unified_info = ( "doc/html/man3/TS_RESP_CTX_new.html" => [ "doc/man3/TS_RESP_CTX_new.pod" ], - "doc/html/man3/TS_VERIFY_CTX_set_certs.html" => [ - "doc/man3/TS_VERIFY_CTX_set_certs.pod" + "doc/html/man3/TS_VERIFY_CTX.html" => [ + "doc/man3/TS_VERIFY_CTX.pod" ], "doc/html/man3/UI_STRING.html" => [ "doc/man3/UI_STRING.pod" @@ -3757,6 +4304,21 @@ our %unified_info = ( "doc/html/man3/X509V3_set_ctx.html" => [ "doc/man3/X509V3_set_ctx.pod" ], + "doc/html/man3/X509_ACERT_add1_attr.html" => [ + "doc/man3/X509_ACERT_add1_attr.pod" + ], + "doc/html/man3/X509_ACERT_add_attr_nconf.html" => [ + "doc/man3/X509_ACERT_add_attr_nconf.pod" + ], + "doc/html/man3/X509_ACERT_get0_holder_baseCertId.html" => [ + "doc/man3/X509_ACERT_get0_holder_baseCertId.pod" + ], + "doc/html/man3/X509_ACERT_get_attr.html" => [ + "doc/man3/X509_ACERT_get_attr.pod" + ], + "doc/html/man3/X509_ACERT_print_ex.html" => [ + "doc/man3/X509_ACERT_print_ex.pod" + ], "doc/html/man3/X509_ALGOR_dup.html" => [ "doc/man3/X509_ALGOR_dup.pod" ], @@ -3805,6 +4367,9 @@ our %unified_info = ( "doc/html/man3/X509_SIG_get0.html" => [ "doc/man3/X509_SIG_get0.pod" ], + "doc/html/man3/X509_STORE_CTX_get_by_subject.html" => [ + "doc/man3/X509_STORE_CTX_get_by_subject.pod" + ], "doc/html/man3/X509_STORE_CTX_get_error.html" => [ "doc/man3/X509_STORE_CTX_get_error.pod" ], @@ -3871,6 +4436,9 @@ our %unified_info = ( "doc/html/man3/X509_get0_uids.html" => [ "doc/man3/X509_get0_uids.pod" ], + "doc/html/man3/X509_get_default_cert_file.html" => [ + "doc/man3/X509_get_default_cert_file.pod" + ], "doc/html/man3/X509_get_extension_flags.html" => [ "doc/man3/X509_get_extension_flags.pod" ], @@ -3994,9 +4562,15 @@ our %unified_info = ( "doc/html/man7/EVP_CIPHER-SM4.html" => [ "doc/man7/EVP_CIPHER-SM4.pod" ], + "doc/html/man7/EVP_KDF-ARGON2.html" => [ + "doc/man7/EVP_KDF-ARGON2.pod" + ], "doc/html/man7/EVP_KDF-HKDF.html" => [ "doc/man7/EVP_KDF-HKDF.pod" ], + "doc/html/man7/EVP_KDF-HMAC-DRBG.html" => [ + "doc/man7/EVP_KDF-HMAC-DRBG.pod" + ], "doc/html/man7/EVP_KDF-KB.html" => [ "doc/man7/EVP_KDF-KB.pod" ], @@ -4012,6 +4586,9 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-PKCS12KDF.html" => [ "doc/man7/EVP_KDF-PKCS12KDF.pod" ], + "doc/html/man7/EVP_KDF-PVKKDF.html" => [ + "doc/man7/EVP_KDF-PVKKDF.pod" + ], "doc/html/man7/EVP_KDF-SCRYPT.html" => [ "doc/man7/EVP_KDF-SCRYPT.pod" ], @@ -4036,9 +4613,18 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-X963.html" => [ "doc/man7/EVP_KDF-X963.pod" ], + "doc/html/man7/EVP_KEM-EC.html" => [ + "doc/man7/EVP_KEM-EC.pod" + ], + "doc/html/man7/EVP_KEM-ML-KEM.html" => [ + "doc/man7/EVP_KEM-ML-KEM.pod" + ], "doc/html/man7/EVP_KEM-RSA.html" => [ "doc/man7/EVP_KEM-RSA.pod" ], + "doc/html/man7/EVP_KEM-X25519.html" => [ + "doc/man7/EVP_KEM-X25519.pod" + ], "doc/html/man7/EVP_KEYEXCH-DH.html" => [ "doc/man7/EVP_KEYEXCH-DH.pod" ], @@ -4072,6 +4658,9 @@ our %unified_info = ( "doc/html/man7/EVP_MD-BLAKE2.html" => [ "doc/man7/EVP_MD-BLAKE2.pod" ], + "doc/html/man7/EVP_MD-KECCAK.html" => [ + "doc/man7/EVP_MD-KECCAK.pod" + ], "doc/html/man7/EVP_MD-MD2.html" => [ "doc/man7/EVP_MD-MD2.pod" ], @@ -4129,15 +4718,27 @@ our %unified_info = ( "doc/html/man7/EVP_PKEY-HMAC.html" => [ "doc/man7/EVP_PKEY-HMAC.pod" ], + "doc/html/man7/EVP_PKEY-ML-DSA.html" => [ + "doc/man7/EVP_PKEY-ML-DSA.pod" + ], + "doc/html/man7/EVP_PKEY-ML-KEM.html" => [ + "doc/man7/EVP_PKEY-ML-KEM.pod" + ], "doc/html/man7/EVP_PKEY-RSA.html" => [ "doc/man7/EVP_PKEY-RSA.pod" ], + "doc/html/man7/EVP_PKEY-SLH-DSA.html" => [ + "doc/man7/EVP_PKEY-SLH-DSA.pod" + ], "doc/html/man7/EVP_PKEY-SM2.html" => [ "doc/man7/EVP_PKEY-SM2.pod" ], "doc/html/man7/EVP_PKEY-X25519.html" => [ "doc/man7/EVP_PKEY-X25519.pod" ], + "doc/html/man7/EVP_RAND-CRNG-TEST.html" => [ + "doc/man7/EVP_RAND-CRNG-TEST.pod" + ], "doc/html/man7/EVP_RAND-CTR-DRBG.html" => [ "doc/man7/EVP_RAND-CTR-DRBG.pod" ], @@ -4147,6 +4748,9 @@ our %unified_info = ( "doc/html/man7/EVP_RAND-HMAC-DRBG.html" => [ "doc/man7/EVP_RAND-HMAC-DRBG.pod" ], + "doc/html/man7/EVP_RAND-JITTER.html" => [ + "doc/man7/EVP_RAND-JITTER.pod" + ], "doc/html/man7/EVP_RAND-SEED-SRC.html" => [ "doc/man7/EVP_RAND-SEED-SRC.pod" ], @@ -4168,9 +4772,15 @@ our %unified_info = ( "doc/html/man7/EVP_SIGNATURE-HMAC.html" => [ "doc/man7/EVP_SIGNATURE-HMAC.pod" ], + "doc/html/man7/EVP_SIGNATURE-ML-DSA.html" => [ + "doc/man7/EVP_SIGNATURE-ML-DSA.pod" + ], "doc/html/man7/EVP_SIGNATURE-RSA.html" => [ "doc/man7/EVP_SIGNATURE-RSA.pod" ], + "doc/html/man7/EVP_SIGNATURE-SLH-DSA.html" => [ + "doc/man7/EVP_SIGNATURE-SLH-DSA.pod" + ], "doc/html/man7/OSSL_PROVIDER-FIPS.html" => [ "doc/man7/OSSL_PROVIDER-FIPS.pod" ], @@ -4186,6 +4796,9 @@ our %unified_info = ( "doc/html/man7/OSSL_PROVIDER-null.html" => [ "doc/man7/OSSL_PROVIDER-null.pod" ], + "doc/html/man7/OSSL_STORE-winstore.html" => [ + "doc/man7/OSSL_STORE-winstore.pod" + ], "doc/html/man7/RAND.html" => [ "doc/man7/RAND.pod" ], @@ -4198,9 +4811,6 @@ our %unified_info = ( "doc/html/man7/bio.html" => [ "doc/man7/bio.pod" ], - "doc/html/man7/crypto.html" => [ - "doc/man7/crypto.pod" - ], "doc/html/man7/ct.html" => [ "doc/man7/ct.pod" ], @@ -4231,9 +4841,6 @@ our %unified_info = ( "doc/html/man7/life_cycle-rand.html" => [ "doc/man7/life_cycle-rand.pod" ], - "doc/html/man7/migration_guide.html" => [ - "doc/man7/migration_guide.pod" - ], "doc/html/man7/openssl-core.h.html" => [ "doc/man7/openssl-core.h.pod" ], @@ -4249,12 +4856,66 @@ our %unified_info = ( "doc/html/man7/openssl-glossary.html" => [ "doc/man7/openssl-glossary.pod" ], + "doc/html/man7/openssl-qlog.html" => [ + "doc/man7/openssl-qlog.pod" + ], + "doc/html/man7/openssl-quic-concurrency.html" => [ + "doc/man7/openssl-quic-concurrency.pod" + ], + "doc/html/man7/openssl-quic.html" => [ + "doc/man7/openssl-quic.pod" + ], "doc/html/man7/openssl-threads.html" => [ "doc/man7/openssl-threads.pod" ], "doc/html/man7/openssl_user_macros.html" => [ "doc/man7/openssl_user_macros.pod" ], + "doc/html/man7/ossl-guide-introduction.html" => [ + "doc/man7/ossl-guide-introduction.pod" + ], + "doc/html/man7/ossl-guide-libcrypto-introduction.html" => [ + "doc/man7/ossl-guide-libcrypto-introduction.pod" + ], + "doc/html/man7/ossl-guide-libraries-introduction.html" => [ + "doc/man7/ossl-guide-libraries-introduction.pod" + ], + "doc/html/man7/ossl-guide-libssl-introduction.html" => [ + "doc/man7/ossl-guide-libssl-introduction.pod" + ], + "doc/html/man7/ossl-guide-migration.html" => [ + "doc/man7/ossl-guide-migration.pod" + ], + "doc/html/man7/ossl-guide-quic-client-block.html" => [ + "doc/man7/ossl-guide-quic-client-block.pod" + ], + "doc/html/man7/ossl-guide-quic-client-non-block.html" => [ + "doc/man7/ossl-guide-quic-client-non-block.pod" + ], + "doc/html/man7/ossl-guide-quic-introduction.html" => [ + "doc/man7/ossl-guide-quic-introduction.pod" + ], + "doc/html/man7/ossl-guide-quic-multi-stream.html" => [ + "doc/man7/ossl-guide-quic-multi-stream.pod" + ], + "doc/html/man7/ossl-guide-quic-server-block.html" => [ + "doc/man7/ossl-guide-quic-server-block.pod" + ], + "doc/html/man7/ossl-guide-quic-server-non-block.html" => [ + "doc/man7/ossl-guide-quic-server-non-block.pod" + ], + "doc/html/man7/ossl-guide-tls-client-block.html" => [ + "doc/man7/ossl-guide-tls-client-block.pod" + ], + "doc/html/man7/ossl-guide-tls-client-non-block.html" => [ + "doc/man7/ossl-guide-tls-client-non-block.pod" + ], + "doc/html/man7/ossl-guide-tls-introduction.html" => [ + "doc/man7/ossl-guide-tls-introduction.pod" + ], + "doc/html/man7/ossl-guide-tls-server-block.html" => [ + "doc/man7/ossl-guide-tls-server-block.pod" + ], "doc/html/man7/ossl_store-file.html" => [ "doc/man7/ossl_store-file.pod" ], @@ -4309,6 +4970,9 @@ our %unified_info = ( "doc/html/man7/provider-signature.html" => [ "doc/man7/provider-signature.pod" ], + "doc/html/man7/provider-skeymgmt.html" => [ + "doc/man7/provider-skeymgmt.pod" + ], "doc/html/man7/provider-storemgmt.html" => [ "doc/man7/provider-storemgmt.pod" ], @@ -4318,9 +4982,6 @@ our %unified_info = ( "doc/html/man7/proxy-certificates.html" => [ "doc/man7/proxy-certificates.pod" ], - "doc/html/man7/ssl.html" => [ - "doc/man7/ssl.pod" - ], "doc/html/man7/x509.html" => [ "doc/man7/x509.pod" ], @@ -4468,6 +5129,9 @@ our %unified_info = ( "doc/man/man1/openssl-sess_id.1" => [ "doc/man1/openssl-sess_id.pod" ], + "doc/man/man1/openssl-skeyutl.1" => [ + "doc/man1/openssl-skeyutl.pod" + ], "doc/man/man1/openssl-smime.1" => [ "doc/man1/openssl-smime.pod" ], @@ -4609,6 +5273,9 @@ our %unified_info = ( "doc/man/man3/BIO_get_ex_new_index.3" => [ "doc/man3/BIO_get_ex_new_index.pod" ], + "doc/man/man3/BIO_get_rpoll_descriptor.3" => [ + "doc/man3/BIO_get_rpoll_descriptor.pod" + ], "doc/man/man3/BIO_meth_new.3" => [ "doc/man3/BIO_meth_new.pod" ], @@ -4645,6 +5312,9 @@ our %unified_info = ( "doc/man/man3/BIO_s_datagram.3" => [ "doc/man3/BIO_s_datagram.pod" ], + "doc/man/man3/BIO_s_dgram_pair.3" => [ + "doc/man3/BIO_s_dgram_pair.pod" + ], "doc/man/man3/BIO_s_fd.3" => [ "doc/man3/BIO_s_fd.pod" ], @@ -4660,6 +5330,9 @@ our %unified_info = ( "doc/man/man3/BIO_s_socket.3" => [ "doc/man3/BIO_s_socket.pod" ], + "doc/man/man3/BIO_sendmmsg.3" => [ + "doc/man3/BIO_sendmmsg.pod" + ], "doc/man/man3/BIO_set_callback.3" => [ "doc/man3/BIO_set_callback.pod" ], @@ -4732,6 +5405,9 @@ our %unified_info = ( "doc/man/man3/BUF_MEM_new.3" => [ "doc/man3/BUF_MEM_new.pod" ], + "doc/man/man3/CMAC_CTX.3" => [ + "doc/man3/CMAC_CTX.pod" + ], "doc/man/man3/CMS_EncryptedData_decrypt.3" => [ "doc/man3/CMS_EncryptedData_decrypt.pod" ], @@ -4798,6 +5474,9 @@ our %unified_info = ( "doc/man/man3/CMS_verify_receipt.3" => [ "doc/man3/CMS_verify_receipt.pod" ], + "doc/man/man3/COMP_CTX_new.3" => [ + "doc/man3/COMP_CTX_new.pod" + ], "doc/man/man3/CONF_modules_free.3" => [ "doc/man3/CONF_modules_free.pod" ], @@ -4897,6 +5576,12 @@ our %unified_info = ( "doc/man/man3/DTLS_set_timer_cb.3" => [ "doc/man3/DTLS_set_timer_cb.pod" ], + "doc/man/man3/DTLSv1_get_timeout.3" => [ + "doc/man3/DTLSv1_get_timeout.pod" + ], + "doc/man/man3/DTLSv1_handle_timeout.3" => [ + "doc/man3/DTLSv1_handle_timeout.pod" + ], "doc/man/man3/DTLSv1_listen.3" => [ "doc/man3/DTLSv1_listen.pod" ], @@ -5035,6 +5720,9 @@ our %unified_info = ( "doc/man/man3/EVP_PKEY_CTX_get0_pkey.3" => [ "doc/man3/EVP_PKEY_CTX_get0_pkey.pod" ], + "doc/man/man3/EVP_PKEY_CTX_get_algor.3" => [ + "doc/man3/EVP_PKEY_CTX_get_algor.pod" + ], "doc/man/man3/EVP_PKEY_CTX_new.3" => [ "doc/man3/EVP_PKEY_CTX_new.pod" ], @@ -5152,6 +5840,12 @@ our %unified_info = ( "doc/man/man3/EVP_SIGNATURE.3" => [ "doc/man3/EVP_SIGNATURE.pod" ], + "doc/man/man3/EVP_SKEY.3" => [ + "doc/man3/EVP_SKEY.pod" + ], + "doc/man/man3/EVP_SKEYMGMT.3" => [ + "doc/man3/EVP_SKEYMGMT.pod" + ], "doc/man/man3/EVP_SealInit.3" => [ "doc/man3/EVP_SealInit.pod" ], @@ -5239,6 +5933,9 @@ our %unified_info = ( "doc/man/man3/EVP_whirlpool.3" => [ "doc/man3/EVP_whirlpool.pod" ], + "doc/man/man3/GENERAL_NAME.3" => [ + "doc/man3/GENERAL_NAME.pod" + ], "doc/man/man3/HMAC.3" => [ "doc/man3/HMAC.pod" ], @@ -5311,9 +6008,15 @@ our %unified_info = ( "doc/man/man3/OPENSSL_load_builtin_modules.3" => [ "doc/man3/OPENSSL_load_builtin_modules.pod" ], + "doc/man/man3/OPENSSL_load_u16_le.3" => [ + "doc/man3/OPENSSL_load_u16_le.pod" + ], "doc/man/man3/OPENSSL_malloc.3" => [ "doc/man3/OPENSSL_malloc.pod" ], + "doc/man/man3/OPENSSL_riscvcap.3" => [ + "doc/man3/OPENSSL_riscvcap.pod" + ], "doc/man/man3/OPENSSL_s390xcap.3" => [ "doc/man3/OPENSSL_s390xcap.pod" ], @@ -5329,12 +6032,18 @@ our %unified_info = ( "doc/man/man3/OSSL_CALLBACK.3" => [ "doc/man3/OSSL_CALLBACK.pod" ], + "doc/man/man3/OSSL_CMP_ATAV_set0.3" => [ + "doc/man3/OSSL_CMP_ATAV_set0.pod" + ], "doc/man/man3/OSSL_CMP_CTX_new.3" => [ "doc/man3/OSSL_CMP_CTX_new.pod" ], "doc/man/man3/OSSL_CMP_HDR_get0_transactionID.3" => [ "doc/man3/OSSL_CMP_HDR_get0_transactionID.pod" ], + "doc/man/man3/OSSL_CMP_ITAV_new_caCerts.3" => [ + "doc/man3/OSSL_CMP_ITAV_new_caCerts.pod" + ], "doc/man/man3/OSSL_CMP_ITAV_set0.3" => [ "doc/man3/OSSL_CMP_ITAV_set0.pod" ], @@ -5404,9 +6113,18 @@ our %unified_info = ( "doc/man/man3/OSSL_ENCODER_to_bio.3" => [ "doc/man3/OSSL_ENCODER_to_bio.pod" ], + "doc/man/man3/OSSL_ERR_STATE_save.3" => [ + "doc/man3/OSSL_ERR_STATE_save.pod" + ], "doc/man/man3/OSSL_ESS_check_signing_certs.3" => [ "doc/man3/OSSL_ESS_check_signing_certs.pod" ], + "doc/man/man3/OSSL_GENERAL_NAMES_print.3" => [ + "doc/man3/OSSL_GENERAL_NAMES_print.pod" + ], + "doc/man/man3/OSSL_HPKE_CTX_new.3" => [ + "doc/man3/OSSL_HPKE_CTX_new.pod" + ], "doc/man/man3/OSSL_HTTP_REQ_CTX.3" => [ "doc/man3/OSSL_HTTP_REQ_CTX.pod" ], @@ -5416,12 +6134,24 @@ our %unified_info = ( "doc/man/man3/OSSL_HTTP_transfer.3" => [ "doc/man3/OSSL_HTTP_transfer.pod" ], + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX.3" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX.pod" + ], + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX_print.3" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX_print.pod" + ], + "doc/man/man3/OSSL_INDICATOR_set_callback.3" => [ + "doc/man3/OSSL_INDICATOR_set_callback.pod" + ], "doc/man/man3/OSSL_ITEM.3" => [ "doc/man3/OSSL_ITEM.pod" ], "doc/man/man3/OSSL_LIB_CTX.3" => [ "doc/man3/OSSL_LIB_CTX.pod" ], + "doc/man/man3/OSSL_LIB_CTX_set_conf_diagnostics.3" => [ + "doc/man3/OSSL_LIB_CTX_set_conf_diagnostics.pod" + ], "doc/man/man3/OSSL_PARAM.3" => [ "doc/man3/OSSL_PARAM.pod" ], @@ -5437,9 +6167,15 @@ our %unified_info = ( "doc/man/man3/OSSL_PARAM_int.3" => [ "doc/man3/OSSL_PARAM_int.pod" ], + "doc/man/man3/OSSL_PARAM_print_to_bio.3" => [ + "doc/man3/OSSL_PARAM_print_to_bio.pod" + ], "doc/man/man3/OSSL_PROVIDER.3" => [ "doc/man3/OSSL_PROVIDER.pod" ], + "doc/man/man3/OSSL_QUIC_client_method.3" => [ + "doc/man3/OSSL_QUIC_client_method.pod" + ], "doc/man/man3/OSSL_SELF_TEST_new.3" => [ "doc/man3/OSSL_SELF_TEST_new.pod" ], @@ -5464,6 +6200,9 @@ our %unified_info = ( "doc/man/man3/OSSL_STORE_open.3" => [ "doc/man3/OSSL_STORE_open.pod" ], + "doc/man/man3/OSSL_sleep.3" => [ + "doc/man3/OSSL_sleep.pod" + ], "doc/man/man3/OSSL_trace_enabled.3" => [ "doc/man3/OSSL_trace_enabled.pod" ], @@ -5479,6 +6218,9 @@ our %unified_info = ( "doc/man/man3/OpenSSL_version.3" => [ "doc/man3/OpenSSL_version.pod" ], + "doc/man/man3/PBMAC1_get1_pbkdf2_param.3" => [ + "doc/man3/PBMAC1_get1_pbkdf2_param.pod" + ], "doc/man/man3/PEM_X509_INFO_read_bio_ex.3" => [ "doc/man3/PEM_X509_INFO_read_bio_ex.pod" ], @@ -5515,6 +6257,9 @@ our %unified_info = ( "doc/man/man3/PKCS12_SAFEBAG_get1_cert.3" => [ "doc/man3/PKCS12_SAFEBAG_get1_cert.pod" ], + "doc/man/man3/PKCS12_SAFEBAG_set0_attrs.3" => [ + "doc/man3/PKCS12_SAFEBAG_set0_attrs.pod" + ], "doc/man/man3/PKCS12_add1_attr_by_NID.3" => [ "doc/man3/PKCS12_add1_attr_by_NID.pod" ], @@ -5788,6 +6533,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set0_CA_list.3" => [ "doc/man3/SSL_CTX_set0_CA_list.pod" ], + "doc/man/man3/SSL_CTX_set1_cert_comp_preference.3" => [ + "doc/man3/SSL_CTX_set1_cert_comp_preference.pod" + ], "doc/man/man3/SSL_CTX_set1_curves.3" => [ "doc/man3/SSL_CTX_set1_curves.pod" ], @@ -5827,6 +6575,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_default_passwd_cb.3" => [ "doc/man3/SSL_CTX_set_default_passwd_cb.pod" ], + "doc/man/man3/SSL_CTX_set_domain_flags.3" => [ + "doc/man3/SSL_CTX_set_domain_flags.pod" + ], "doc/man/man3/SSL_CTX_set_generate_session_id.3" => [ "doc/man3/SSL_CTX_set_generate_session_id.pod" ], @@ -5848,6 +6599,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_msg_callback.3" => [ "doc/man3/SSL_CTX_set_msg_callback.pod" ], + "doc/man/man3/SSL_CTX_set_new_pending_conn_cb.3" => [ + "doc/man3/SSL_CTX_set_new_pending_conn_cb.pod" + ], "doc/man/man3/SSL_CTX_set_num_tickets.3" => [ "doc/man3/SSL_CTX_set_num_tickets.pod" ], @@ -5962,6 +6716,9 @@ our %unified_info = ( "doc/man/man3/SSL_accept.3" => [ "doc/man3/SSL_accept.pod" ], + "doc/man/man3/SSL_accept_stream.3" => [ + "doc/man3/SSL_accept_stream.pod" + ], "doc/man/man3/SSL_alert_type_string.3" => [ "doc/man3/SSL_alert_type_string.pod" ], @@ -5989,9 +6746,21 @@ our %unified_info = ( "doc/man/man3/SSL_free.3" => [ "doc/man3/SSL_free.pod" ], + "doc/man/man3/SSL_get0_connection.3" => [ + "doc/man3/SSL_get0_connection.pod" + ], + "doc/man/man3/SSL_get0_group_name.3" => [ + "doc/man3/SSL_get0_group_name.pod" + ], + "doc/man/man3/SSL_get0_peer_rpk.3" => [ + "doc/man3/SSL_get0_peer_rpk.pod" + ], "doc/man/man3/SSL_get0_peer_scts.3" => [ "doc/man3/SSL_get0_peer_scts.pod" ], + "doc/man/man3/SSL_get1_builtin_sigalgs.3" => [ + "doc/man3/SSL_get1_builtin_sigalgs.pod" + ], "doc/man/man3/SSL_get_SSL_CTX.3" => [ "doc/man3/SSL_get_SSL_CTX.pod" ], @@ -6007,6 +6776,9 @@ our %unified_info = ( "doc/man/man3/SSL_get_client_random.3" => [ "doc/man3/SSL_get_client_random.pod" ], + "doc/man/man3/SSL_get_conn_close_info.3" => [ + "doc/man3/SSL_get_conn_close_info.pod" + ], "doc/man/man3/SSL_get_current_cipher.3" => [ "doc/man3/SSL_get_current_cipher.pod" ], @@ -6016,12 +6788,18 @@ our %unified_info = ( "doc/man/man3/SSL_get_error.3" => [ "doc/man3/SSL_get_error.pod" ], + "doc/man/man3/SSL_get_event_timeout.3" => [ + "doc/man3/SSL_get_event_timeout.pod" + ], "doc/man/man3/SSL_get_extms_support.3" => [ "doc/man3/SSL_get_extms_support.pod" ], "doc/man/man3/SSL_get_fd.3" => [ "doc/man3/SSL_get_fd.pod" ], + "doc/man/man3/SSL_get_handshake_rtt.3" => [ + "doc/man3/SSL_get_handshake_rtt.pod" + ], "doc/man/man3/SSL_get_peer_cert_chain.3" => [ "doc/man3/SSL_get_peer_cert_chain.pod" ], @@ -6040,12 +6818,24 @@ our %unified_info = ( "doc/man/man3/SSL_get_rbio.3" => [ "doc/man3/SSL_get_rbio.pod" ], + "doc/man/man3/SSL_get_rpoll_descriptor.3" => [ + "doc/man3/SSL_get_rpoll_descriptor.pod" + ], "doc/man/man3/SSL_get_session.3" => [ "doc/man3/SSL_get_session.pod" ], "doc/man/man3/SSL_get_shared_sigalgs.3" => [ "doc/man3/SSL_get_shared_sigalgs.pod" ], + "doc/man/man3/SSL_get_stream_id.3" => [ + "doc/man3/SSL_get_stream_id.pod" + ], + "doc/man/man3/SSL_get_stream_read_state.3" => [ + "doc/man3/SSL_get_stream_read_state.pod" + ], + "doc/man/man3/SSL_get_value_uint.3" => [ + "doc/man3/SSL_get_value_uint.pod" + ], "doc/man/man3/SSL_get_verify_result.3" => [ "doc/man3/SSL_get_verify_result.pod" ], @@ -6055,9 +6845,15 @@ our %unified_info = ( "doc/man/man3/SSL_group_to_name.3" => [ "doc/man3/SSL_group_to_name.pod" ], + "doc/man/man3/SSL_handle_events.3" => [ + "doc/man3/SSL_handle_events.pod" + ], "doc/man/man3/SSL_in_init.3" => [ "doc/man3/SSL_in_init.pod" ], + "doc/man/man3/SSL_inject_net_dgram.3" => [ + "doc/man3/SSL_inject_net_dgram.pod" + ], "doc/man/man3/SSL_key_update.3" => [ "doc/man3/SSL_key_update.pod" ], @@ -6070,9 +6866,21 @@ our %unified_info = ( "doc/man/man3/SSL_new.3" => [ "doc/man3/SSL_new.pod" ], + "doc/man/man3/SSL_new_domain.3" => [ + "doc/man3/SSL_new_domain.pod" + ], + "doc/man/man3/SSL_new_listener.3" => [ + "doc/man3/SSL_new_listener.pod" + ], + "doc/man/man3/SSL_new_stream.3" => [ + "doc/man3/SSL_new_stream.pod" + ], "doc/man/man3/SSL_pending.3" => [ "doc/man3/SSL_pending.pod" ], + "doc/man/man3/SSL_poll.3" => [ + "doc/man3/SSL_poll.pod" + ], "doc/man/man3/SSL_read.3" => [ "doc/man3/SSL_read.pod" ], @@ -6088,24 +6896,45 @@ our %unified_info = ( "doc/man/man3/SSL_set1_host.3" => [ "doc/man3/SSL_set1_host.pod" ], + "doc/man/man3/SSL_set1_initial_peer_addr.3" => [ + "doc/man3/SSL_set1_initial_peer_addr.pod" + ], + "doc/man/man3/SSL_set1_server_cert_type.3" => [ + "doc/man3/SSL_set1_server_cert_type.pod" + ], "doc/man/man3/SSL_set_async_callback.3" => [ "doc/man3/SSL_set_async_callback.pod" ], "doc/man/man3/SSL_set_bio.3" => [ "doc/man3/SSL_set_bio.pod" ], + "doc/man/man3/SSL_set_blocking_mode.3" => [ + "doc/man3/SSL_set_blocking_mode.pod" + ], "doc/man/man3/SSL_set_connect_state.3" => [ "doc/man3/SSL_set_connect_state.pod" ], + "doc/man/man3/SSL_set_default_stream_mode.3" => [ + "doc/man3/SSL_set_default_stream_mode.pod" + ], "doc/man/man3/SSL_set_fd.3" => [ "doc/man3/SSL_set_fd.pod" ], + "doc/man/man3/SSL_set_incoming_stream_policy.3" => [ + "doc/man3/SSL_set_incoming_stream_policy.pod" + ], + "doc/man/man3/SSL_set_quic_tls_cbs.3" => [ + "doc/man3/SSL_set_quic_tls_cbs.pod" + ], "doc/man/man3/SSL_set_retry_verify.3" => [ "doc/man3/SSL_set_retry_verify.pod" ], "doc/man/man3/SSL_set_session.3" => [ "doc/man3/SSL_set_session.pod" ], + "doc/man/man3/SSL_set_session_secret_cb.3" => [ + "doc/man3/SSL_set_session_secret_cb.pod" + ], "doc/man/man3/SSL_set_shutdown.3" => [ "doc/man3/SSL_set_shutdown.pod" ], @@ -6118,6 +6947,12 @@ our %unified_info = ( "doc/man/man3/SSL_state_string.3" => [ "doc/man3/SSL_state_string.pod" ], + "doc/man/man3/SSL_stream_conclude.3" => [ + "doc/man3/SSL_stream_conclude.pod" + ], + "doc/man/man3/SSL_stream_reset.3" => [ + "doc/man3/SSL_stream_reset.pod" + ], "doc/man/man3/SSL_want.3" => [ "doc/man3/SSL_want.pod" ], @@ -6127,8 +6962,8 @@ our %unified_info = ( "doc/man/man3/TS_RESP_CTX_new.3" => [ "doc/man3/TS_RESP_CTX_new.pod" ], - "doc/man/man3/TS_VERIFY_CTX_set_certs.3" => [ - "doc/man3/TS_VERIFY_CTX_set_certs.pod" + "doc/man/man3/TS_VERIFY_CTX.3" => [ + "doc/man3/TS_VERIFY_CTX.pod" ], "doc/man/man3/UI_STRING.3" => [ "doc/man3/UI_STRING.pod" @@ -6148,6 +6983,21 @@ our %unified_info = ( "doc/man/man3/X509V3_set_ctx.3" => [ "doc/man3/X509V3_set_ctx.pod" ], + "doc/man/man3/X509_ACERT_add1_attr.3" => [ + "doc/man3/X509_ACERT_add1_attr.pod" + ], + "doc/man/man3/X509_ACERT_add_attr_nconf.3" => [ + "doc/man3/X509_ACERT_add_attr_nconf.pod" + ], + "doc/man/man3/X509_ACERT_get0_holder_baseCertId.3" => [ + "doc/man3/X509_ACERT_get0_holder_baseCertId.pod" + ], + "doc/man/man3/X509_ACERT_get_attr.3" => [ + "doc/man3/X509_ACERT_get_attr.pod" + ], + "doc/man/man3/X509_ACERT_print_ex.3" => [ + "doc/man3/X509_ACERT_print_ex.pod" + ], "doc/man/man3/X509_ALGOR_dup.3" => [ "doc/man3/X509_ALGOR_dup.pod" ], @@ -6196,6 +7046,9 @@ our %unified_info = ( "doc/man/man3/X509_SIG_get0.3" => [ "doc/man3/X509_SIG_get0.pod" ], + "doc/man/man3/X509_STORE_CTX_get_by_subject.3" => [ + "doc/man3/X509_STORE_CTX_get_by_subject.pod" + ], "doc/man/man3/X509_STORE_CTX_get_error.3" => [ "doc/man3/X509_STORE_CTX_get_error.pod" ], @@ -6262,6 +7115,9 @@ our %unified_info = ( "doc/man/man3/X509_get0_uids.3" => [ "doc/man3/X509_get0_uids.pod" ], + "doc/man/man3/X509_get_default_cert_file.3" => [ + "doc/man3/X509_get_default_cert_file.pod" + ], "doc/man/man3/X509_get_extension_flags.3" => [ "doc/man3/X509_get_extension_flags.pod" ], @@ -6385,9 +7241,15 @@ our %unified_info = ( "doc/man/man7/EVP_CIPHER-SM4.7" => [ "doc/man7/EVP_CIPHER-SM4.pod" ], + "doc/man/man7/EVP_KDF-ARGON2.7" => [ + "doc/man7/EVP_KDF-ARGON2.pod" + ], "doc/man/man7/EVP_KDF-HKDF.7" => [ "doc/man7/EVP_KDF-HKDF.pod" ], + "doc/man/man7/EVP_KDF-HMAC-DRBG.7" => [ + "doc/man7/EVP_KDF-HMAC-DRBG.pod" + ], "doc/man/man7/EVP_KDF-KB.7" => [ "doc/man7/EVP_KDF-KB.pod" ], @@ -6403,6 +7265,9 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-PKCS12KDF.7" => [ "doc/man7/EVP_KDF-PKCS12KDF.pod" ], + "doc/man/man7/EVP_KDF-PVKKDF.7" => [ + "doc/man7/EVP_KDF-PVKKDF.pod" + ], "doc/man/man7/EVP_KDF-SCRYPT.7" => [ "doc/man7/EVP_KDF-SCRYPT.pod" ], @@ -6427,9 +7292,18 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-X963.7" => [ "doc/man7/EVP_KDF-X963.pod" ], + "doc/man/man7/EVP_KEM-EC.7" => [ + "doc/man7/EVP_KEM-EC.pod" + ], + "doc/man/man7/EVP_KEM-ML-KEM.7" => [ + "doc/man7/EVP_KEM-ML-KEM.pod" + ], "doc/man/man7/EVP_KEM-RSA.7" => [ "doc/man7/EVP_KEM-RSA.pod" ], + "doc/man/man7/EVP_KEM-X25519.7" => [ + "doc/man7/EVP_KEM-X25519.pod" + ], "doc/man/man7/EVP_KEYEXCH-DH.7" => [ "doc/man7/EVP_KEYEXCH-DH.pod" ], @@ -6463,6 +7337,9 @@ our %unified_info = ( "doc/man/man7/EVP_MD-BLAKE2.7" => [ "doc/man7/EVP_MD-BLAKE2.pod" ], + "doc/man/man7/EVP_MD-KECCAK.7" => [ + "doc/man7/EVP_MD-KECCAK.pod" + ], "doc/man/man7/EVP_MD-MD2.7" => [ "doc/man7/EVP_MD-MD2.pod" ], @@ -6520,15 +7397,27 @@ our %unified_info = ( "doc/man/man7/EVP_PKEY-HMAC.7" => [ "doc/man7/EVP_PKEY-HMAC.pod" ], + "doc/man/man7/EVP_PKEY-ML-DSA.7" => [ + "doc/man7/EVP_PKEY-ML-DSA.pod" + ], + "doc/man/man7/EVP_PKEY-ML-KEM.7" => [ + "doc/man7/EVP_PKEY-ML-KEM.pod" + ], "doc/man/man7/EVP_PKEY-RSA.7" => [ "doc/man7/EVP_PKEY-RSA.pod" ], + "doc/man/man7/EVP_PKEY-SLH-DSA.7" => [ + "doc/man7/EVP_PKEY-SLH-DSA.pod" + ], "doc/man/man7/EVP_PKEY-SM2.7" => [ "doc/man7/EVP_PKEY-SM2.pod" ], "doc/man/man7/EVP_PKEY-X25519.7" => [ "doc/man7/EVP_PKEY-X25519.pod" ], + "doc/man/man7/EVP_RAND-CRNG-TEST.7" => [ + "doc/man7/EVP_RAND-CRNG-TEST.pod" + ], "doc/man/man7/EVP_RAND-CTR-DRBG.7" => [ "doc/man7/EVP_RAND-CTR-DRBG.pod" ], @@ -6538,6 +7427,9 @@ our %unified_info = ( "doc/man/man7/EVP_RAND-HMAC-DRBG.7" => [ "doc/man7/EVP_RAND-HMAC-DRBG.pod" ], + "doc/man/man7/EVP_RAND-JITTER.7" => [ + "doc/man7/EVP_RAND-JITTER.pod" + ], "doc/man/man7/EVP_RAND-SEED-SRC.7" => [ "doc/man7/EVP_RAND-SEED-SRC.pod" ], @@ -6559,9 +7451,15 @@ our %unified_info = ( "doc/man/man7/EVP_SIGNATURE-HMAC.7" => [ "doc/man7/EVP_SIGNATURE-HMAC.pod" ], + "doc/man/man7/EVP_SIGNATURE-ML-DSA.7" => [ + "doc/man7/EVP_SIGNATURE-ML-DSA.pod" + ], "doc/man/man7/EVP_SIGNATURE-RSA.7" => [ "doc/man7/EVP_SIGNATURE-RSA.pod" ], + "doc/man/man7/EVP_SIGNATURE-SLH-DSA.7" => [ + "doc/man7/EVP_SIGNATURE-SLH-DSA.pod" + ], "doc/man/man7/OSSL_PROVIDER-FIPS.7" => [ "doc/man7/OSSL_PROVIDER-FIPS.pod" ], @@ -6577,6 +7475,9 @@ our %unified_info = ( "doc/man/man7/OSSL_PROVIDER-null.7" => [ "doc/man7/OSSL_PROVIDER-null.pod" ], + "doc/man/man7/OSSL_STORE-winstore.7" => [ + "doc/man7/OSSL_STORE-winstore.pod" + ], "doc/man/man7/RAND.7" => [ "doc/man7/RAND.pod" ], @@ -6589,9 +7490,6 @@ our %unified_info = ( "doc/man/man7/bio.7" => [ "doc/man7/bio.pod" ], - "doc/man/man7/crypto.7" => [ - "doc/man7/crypto.pod" - ], "doc/man/man7/ct.7" => [ "doc/man7/ct.pod" ], @@ -6622,9 +7520,6 @@ our %unified_info = ( "doc/man/man7/life_cycle-rand.7" => [ "doc/man7/life_cycle-rand.pod" ], - "doc/man/man7/migration_guide.7" => [ - "doc/man7/migration_guide.pod" - ], "doc/man/man7/openssl-core.h.7" => [ "doc/man7/openssl-core.h.pod" ], @@ -6640,12 +7535,66 @@ our %unified_info = ( "doc/man/man7/openssl-glossary.7" => [ "doc/man7/openssl-glossary.pod" ], + "doc/man/man7/openssl-qlog.7" => [ + "doc/man7/openssl-qlog.pod" + ], + "doc/man/man7/openssl-quic-concurrency.7" => [ + "doc/man7/openssl-quic-concurrency.pod" + ], + "doc/man/man7/openssl-quic.7" => [ + "doc/man7/openssl-quic.pod" + ], "doc/man/man7/openssl-threads.7" => [ "doc/man7/openssl-threads.pod" ], "doc/man/man7/openssl_user_macros.7" => [ "doc/man7/openssl_user_macros.pod" ], + "doc/man/man7/ossl-guide-introduction.7" => [ + "doc/man7/ossl-guide-introduction.pod" + ], + "doc/man/man7/ossl-guide-libcrypto-introduction.7" => [ + "doc/man7/ossl-guide-libcrypto-introduction.pod" + ], + "doc/man/man7/ossl-guide-libraries-introduction.7" => [ + "doc/man7/ossl-guide-libraries-introduction.pod" + ], + "doc/man/man7/ossl-guide-libssl-introduction.7" => [ + "doc/man7/ossl-guide-libssl-introduction.pod" + ], + "doc/man/man7/ossl-guide-migration.7" => [ + "doc/man7/ossl-guide-migration.pod" + ], + "doc/man/man7/ossl-guide-quic-client-block.7" => [ + "doc/man7/ossl-guide-quic-client-block.pod" + ], + "doc/man/man7/ossl-guide-quic-client-non-block.7" => [ + "doc/man7/ossl-guide-quic-client-non-block.pod" + ], + "doc/man/man7/ossl-guide-quic-introduction.7" => [ + "doc/man7/ossl-guide-quic-introduction.pod" + ], + "doc/man/man7/ossl-guide-quic-multi-stream.7" => [ + "doc/man7/ossl-guide-quic-multi-stream.pod" + ], + "doc/man/man7/ossl-guide-quic-server-block.7" => [ + "doc/man7/ossl-guide-quic-server-block.pod" + ], + "doc/man/man7/ossl-guide-quic-server-non-block.7" => [ + "doc/man7/ossl-guide-quic-server-non-block.pod" + ], + "doc/man/man7/ossl-guide-tls-client-block.7" => [ + "doc/man7/ossl-guide-tls-client-block.pod" + ], + "doc/man/man7/ossl-guide-tls-client-non-block.7" => [ + "doc/man7/ossl-guide-tls-client-non-block.pod" + ], + "doc/man/man7/ossl-guide-tls-introduction.7" => [ + "doc/man7/ossl-guide-tls-introduction.pod" + ], + "doc/man/man7/ossl-guide-tls-server-block.7" => [ + "doc/man7/ossl-guide-tls-server-block.pod" + ], "doc/man/man7/ossl_store-file.7" => [ "doc/man7/ossl_store-file.pod" ], @@ -6700,6 +7649,9 @@ our %unified_info = ( "doc/man/man7/provider-signature.7" => [ "doc/man7/provider-signature.pod" ], + "doc/man/man7/provider-skeymgmt.7" => [ + "doc/man7/provider-skeymgmt.pod" + ], "doc/man/man7/provider-storemgmt.7" => [ "doc/man7/provider-storemgmt.pod" ], @@ -6709,9 +7661,6 @@ our %unified_info = ( "doc/man/man7/proxy-certificates.7" => [ "doc/man7/proxy-certificates.pod" ], - "doc/man/man7/ssl.7" => [ - "doc/man7/ssl.pod" - ], "doc/man/man7/x509.7" => [ "doc/man7/x509.pod" ], @@ -6891,6 +7840,10 @@ our %unified_info = ( "doc/man1/openssl-sess_id.pod.in", "doc/perlvars.pm" ], + "doc/man1/openssl-skeyutl.pod" => [ + "doc/man1/openssl-skeyutl.pod.in", + "doc/perlvars.pm" + ], "doc/man1/openssl-smime.pod" => [ "doc/man1/openssl-smime.pod.in", "doc/perlvars.pm" @@ -6930,6 +7883,27 @@ our %unified_info = ( "doc/man7/openssl_user_macros.pod" => [ "doc/man7/openssl_user_macros.pod.in" ], + "exporters/OpenSSLConfig.cmake" => [ + "installdata.pm" + ], + "exporters/OpenSSLConfigVersion.cmake" => [ + "exporters/OpenSSLConfig.cmake", + "installdata.pm" + ], + "exporters/libcrypto.pc" => [ + "installdata.pm" + ], + "exporters/libssl.pc" => [ + "installdata.pm" + ], + "exporters/openssl.pc" => [ + "exporters/libcrypto.pc", + "exporters/libssl.pc", + "installdata.pm" + ], + "fuzz/acert-test" => [ + "libcrypto" + ], "fuzz/asn1-test" => [ "libcrypto", "libssl" @@ -6962,17 +7936,85 @@ our %unified_info = ( "fuzz/ct-test" => [ "libcrypto" ], + "fuzz/decoder-test" => [ + "libcrypto" + ], + "fuzz/dtlsclient-test" => [ + "libcrypto", + "libssl" + ], + "fuzz/dtlsserver-test" => [ + "libcrypto", + "libssl" + ], + "fuzz/hashtable-test" => [ + "libcrypto.a" + ], + "fuzz/ml-dsa-test" => [ + "libcrypto.a" + ], + "fuzz/ml-kem-test" => [ + "libcrypto.a" + ], + "fuzz/pem-test" => [ + "libcrypto.a" + ], + "fuzz/provider-test" => [ + "libcrypto" + ], + "fuzz/punycode-test" => [ + "libcrypto.a" + ], + "fuzz/quic-client-test" => [ + "libcrypto.a", + "libssl.a" + ], + "fuzz/quic-lcidm-test" => [ + "libcrypto.a", + "libssl.a" + ], + "fuzz/quic-rcidm-test" => [ + "libcrypto.a", + "libssl.a" + ], + "fuzz/quic-server-test" => [ + "libcrypto.a", + "libssl.a" + ], + "fuzz/quic-srtm-test" => [ + "libcrypto.a", + "libssl.a" + ], "fuzz/server-test" => [ "libcrypto", "libssl" ], + "fuzz/slh-dsa-test" => [ + "libcrypto.a" + ], + "fuzz/smime-test" => [ + "libcrypto", + "libssl" + ], + "fuzz/v3name-test" => [ + "libcrypto.a" + ], "fuzz/x509-test" => [ "libcrypto" ], + "include/internal/param_names.h" => [ + "util/perl|OpenSSL/paramnames.pm" + ], + "include/openssl/core_names.h" => [ + "util/perl|OpenSSL/paramnames.pm" + ], "libcrypto.ld" => [ "configdata.pm", "util/perl/OpenSSL/Ordinals.pm" ], + "libcrypto.pc" => [ + "builddata.pm" + ], "libssl" => [ "libcrypto" ], @@ -6980,6 +8022,14 @@ our %unified_info = ( "configdata.pm", "util/perl/OpenSSL/Ordinals.pm" ], + "libssl.pc" => [ + "builddata.pm" + ], + "openssl.pc" => [ + "builddata.pm", + "libcrypto.pc", + "libssl.pc" + ], "providers/common/der/der_digests_gen.c" => [ "providers/common/der/DIGESTS.asn1", "providers/common/der/NIST.asn1", @@ -6997,11 +8047,19 @@ our %unified_info = ( "providers/common/der/ECX.asn1", "providers/common/der/oids_to_c.pm" ], + "providers/common/der/der_ml_dsa_gen.c" => [ + "providers/common/der/ML_DSA.asn1", + "providers/common/der/oids_to_c.pm" + ], "providers/common/der/der_rsa_gen.c" => [ "providers/common/der/NIST.asn1", "providers/common/der/RSA.asn1", "providers/common/der/oids_to_c.pm" ], + "providers/common/der/der_slh_dsa_gen.c" => [ + "providers/common/der/SLH_DSA.asn1", + "providers/common/der/oids_to_c.pm" + ], "providers/common/der/der_sm2_gen.c" => [ "providers/common/der/SM2.asn1", "providers/common/der/oids_to_c.pm" @@ -7041,6 +8099,12 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ecx_key.o" => [ "providers/common/include/prov/der_ecx.h" ], + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o" => [ + "providers/common/include/prov/der_ml_dsa.h" + ], + "providers/common/der/libcommon-lib-der_ml_dsa_key.o" => [ + "providers/common/include/prov/der_ml_dsa.h" + ], "providers/common/der/libcommon-lib-der_rsa_gen.o" => [ "providers/common/include/prov/der_rsa.h" ], @@ -7048,6 +8112,12 @@ our %unified_info = ( "providers/common/include/prov/der_digests.h", "providers/common/include/prov/der_rsa.h" ], + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o" => [ + "providers/common/include/prov/der_slh_dsa.h" + ], + "providers/common/der/libcommon-lib-der_slh_dsa_key.o" => [ + "providers/common/include/prov/der_slh_dsa.h" + ], "providers/common/der/libcommon-lib-der_wrap_gen.o" => [ "providers/common/include/prov/der_wrap.h" ], @@ -7087,11 +8157,19 @@ our %unified_info = ( "providers/common/der/ECX.asn1", "providers/common/der/oids_to_c.pm" ], + "providers/common/include/prov/der_ml_dsa.h" => [ + "providers/common/der/ML_DSA.asn1", + "providers/common/der/oids_to_c.pm" + ], "providers/common/include/prov/der_rsa.h" => [ "providers/common/der/NIST.asn1", "providers/common/der/RSA.asn1", "providers/common/der/oids_to_c.pm" ], + "providers/common/include/prov/der_slh_dsa.h" => [ + "providers/common/der/SLH_DSA.asn1", + "providers/common/der/oids_to_c.pm" + ], "providers/common/include/prov/der_sm2.h" => [ "providers/common/der/SM2.asn1", "providers/common/der/oids_to_c.pm" @@ -7124,9 +8202,15 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-eddsa_sig.o" => [ "providers/common/include/prov/der_ecx.h" ], + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o" => [ + "providers/common/include/prov/der_ml_dsa.h" + ], "providers/implementations/signature/libdefault-lib-rsa_sig.o" => [ "providers/common/include/prov/der_rsa.h" ], + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o" => [ + "providers/common/include/prov/der_slh_dsa.h" + ], "providers/implementations/signature/libdefault-lib-sm2_sig.o" => [ "providers/common/include/prov/der_sm2.h" ], @@ -7139,9 +8223,15 @@ our %unified_info = ( "providers/implementations/signature/libfips-lib-eddsa_sig.o" => [ "providers/common/include/prov/der_ecx.h" ], + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o" => [ + "providers/common/include/prov/der_ml_dsa.h" + ], "providers/implementations/signature/libfips-lib-rsa_sig.o" => [ "providers/common/include/prov/der_rsa.h" ], + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o" => [ + "providers/common/include/prov/der_slh_dsa.h" + ], "providers/legacy" => [ "libcrypto", "providers/liblegacy.a" @@ -7219,6 +8309,14 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/bio_addr_test" => [ + "libcrypto", + "test/libtestutil.a" + ], + "test/bio_base64_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/bio_callback_test" => [ "libcrypto", "test/libtestutil.a" @@ -7227,6 +8325,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/bio_dgram_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/bio_enc_test" => [ "libcrypto", "test/libtestutil.a" @@ -7235,6 +8337,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/bio_meth_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/bio_prefix_text" => [ "libcrypto", "test/libtestutil.a" @@ -7247,6 +8353,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/bio_tfo_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/bioprinttest" => [ "libcrypto", "test/libtestutil.a" @@ -7259,6 +8369,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/build_wincrypt_test" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_aes" => [ "libcrypto", "libssl" @@ -7279,6 +8393,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_byteorder" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_camellia" => [ "libcrypto", "libssl" @@ -7311,10 +8429,6 @@ our %unified_info = ( "libcrypto", "libssl" ], - "test/buildtest_c_core_names" => [ - "libcrypto", - "libssl" - ], "test/buildtest_c_core_object" => [ "libcrypto", "libssl" @@ -7347,6 +8461,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_e_ostime" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_ebcdic" => [ "libcrypto", "libssl" @@ -7383,6 +8501,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_hpke" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_http" => [ "libcrypto", "libssl" @@ -7391,6 +8513,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_indicator" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_kdf" => [ "libcrypto", "libssl" @@ -7411,6 +8537,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_ml_kem" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_modes" => [ "libcrypto", "libssl" @@ -7451,6 +8581,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_quic" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_rand" => [ "libcrypto", "libssl" @@ -7507,6 +8641,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_thread" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_tls1" => [ "libcrypto", "libssl" @@ -7527,10 +8665,23 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/byteorder_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], + "test/ca_internals_test" => [ + "libssl", + "test/libtestutil.a" + ], "test/casttest" => [ "libcrypto", "test/libtestutil.a" ], + "test/cert_comp_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], "test/chacha_internal_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -7644,7 +8795,11 @@ our %unified_info = ( "libssl", "test/libtestutil.a" ], - "test/defltfips_test" => [ + "test/decoder_propq_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], + "test/defltfips_test" => [ "libcrypto", "test/libtestutil.a" ], @@ -7700,6 +8855,8 @@ our %unified_info = ( ], "test/endecode_test" => [ "libcrypto.a", + "providers/libcommon.a", + "providers/liblegacy.a", "test/libtestutil.a" ], "test/endecoder_legacy_test" => [ @@ -7743,6 +8900,10 @@ our %unified_info = ( "test/evp_pkey_ctx_new_from_name" => [ "libcrypto" ], + "test/evp_pkey_dhkem_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/evp_pkey_dparams_test" => [ "libcrypto", "test/libtestutil.a" @@ -7751,10 +8912,18 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/evp_skey_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/evp_test" => [ "libcrypto", "test/libtestutil.a" ], + "test/evp_xof_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/exdatatest" => [ "libcrypto", "test/libtestutil.a" @@ -7793,6 +8962,10 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/hpke_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/http_test" => [ "libcrypto", "test/libtestutil.a" @@ -7805,17 +8978,25 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/json_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], "test/keymgmt_internal_test" => [ "libcrypto.a", "test/libtestutil.a" ], "test/lhash_test" => [ - "libcrypto", + "libcrypto.a", "test/libtestutil.a" ], "test/libtestutil.a" => [ "libcrypto" ], + "test/list_test" => [ + "test/libtestutil.a" + ], "test/localetest" => [ "libcrypto", "test/libtestutil.a" @@ -7828,10 +9009,26 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/membio_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/memleaktest" => [ "libcrypto", "test/libtestutil.a" ], + "test/ml_dsa_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], + "test/ml_kem_evp_extra_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], + "test/ml_kem_internal_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/modes_internal_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -7856,6 +9053,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/pairwise_fail_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/param_build_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -7888,6 +9089,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/pkcs12_api_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/pkcs12_format_test" => [ "libcrypto", "test/libtestutil.a" @@ -7908,6 +9113,11 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/priority_queue_test" => [ + "libcrypto", + "libssl.a", + "test/libtestutil.a" + ], "test/property_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -7920,6 +9130,10 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/provider_default_search_path_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/provider_fallback_test" => [ "libcrypto", "test/libtestutil.a" @@ -7944,12 +9158,122 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/quic_ackm_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_cc_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_cfq_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_client_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_fc_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_fifd_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_lcidm_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_multistream_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_newcid_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_qlog_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_radix_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_rcidm_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_record_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_srt_gen_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_srtm_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_stream_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_tserver_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_txp_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_txpim_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_wire_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quicapitest" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quicfaultstest" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], "test/rand_status_test" => [ "libcrypto", "test/libtestutil.a" ], "test/rand_test" => [ - "libcrypto", + "libcrypto.a", "test/libtestutil.a" ], "test/rc2test" => [ @@ -7964,7 +9288,7 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], - "test/rdrand_sanitytest" => [ + "test/rdcpu_sanitytest" => [ "libcrypto.a", "test/libtestutil.a" ], @@ -7973,6 +9297,11 @@ our %unified_info = ( "libssl", "test/libtestutil.a" ], + "test/rpktest" => [ + "libcrypto", + "libssl", + "test/libtestutil.a" + ], "test/rsa_mp_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -7985,10 +9314,18 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], - "test/sanitytest" => [ + "test/rsa_x931_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], + "test/safe_math_test" => [ "libcrypto", "test/libtestutil.a" ], + "test/sanitytest" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/secmemtest" => [ "libcrypto", "test/libtestutil.a" @@ -8006,6 +9343,10 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/slh_dsa_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/sm2_internal_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -8035,6 +9376,11 @@ our %unified_info = ( "libssl", "test/libtestutil.a" ], + "test/ssl_handshake_rtt_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], "test/ssl_old_test" => [ "libcrypto.a", "libssl.a", @@ -8051,8 +9397,8 @@ our %unified_info = ( "test/libtestutil.a" ], "test/sslapitest" => [ - "libcrypto", - "libssl", + "libcrypto.a", + "libssl.a", "test/libtestutil.a" ], "test/sslbuffertest" => [ @@ -8069,6 +9415,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/strtoultest" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/sysdefaulttest" => [ "libcrypto", "libssl", @@ -8078,8 +9428,12 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/threadpool_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/threadstest" => [ - "libcrypto", + "libcrypto.a", "test/libtestutil.a" ], "test/threadstest_fips" => [ @@ -8090,6 +9444,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/time_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/tls13ccstest" => [ "libcrypto", "libssl", @@ -8100,6 +9458,11 @@ our %unified_info = ( "libssl.a", "test/libtestutil.a" ], + "test/tls13groupselection_test" => [ + "libcrypto", + "libssl", + "test/libtestutil.a" + ], "test/trace_api_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -8137,6 +9500,10 @@ our %unified_info = ( "libssl.a", "test/libtestutil.a" ], + "test/x509_acert_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/x509_check_cert_pkey_test" => [ "libcrypto", "test/libtestutil.a" @@ -8149,6 +9516,18 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/x509_load_cert_file_test" => [ + "libcrypto", + "test/libtestutil.a" + ], + "test/x509_req_test" => [ + "libcrypto", + "test/libtestutil.a" + ], + "test/x509_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/x509_time_test" => [ "libcrypto", "test/libtestutil.a" @@ -8163,9 +9542,13 @@ our %unified_info = ( }, "dirinfo" => { "apps" => { + "deps" => [ + "apps/ca_internals_test-bin-ca.o" + ], "products" => { "bin" => [ - "apps/openssl" + "apps/openssl", + "test/ca_internals_test" ], "script" => [ "apps/CA.pl", @@ -8176,6 +9559,14 @@ our %unified_info = ( "apps/lib" => { "deps" => [ "apps/lib/openssl-bin-cmp_mock_srv.o", + "apps/lib/ca_internals_test-bin-app_libctx.o", + "apps/lib/ca_internals_test-bin-app_provider.o", + "apps/lib/ca_internals_test-bin-app_rand.o", + "apps/lib/ca_internals_test-bin-app_x509.o", + "apps/lib/ca_internals_test-bin-apps.o", + "apps/lib/ca_internals_test-bin-apps_ui.o", + "apps/lib/ca_internals_test-bin-engine.o", + "apps/lib/ca_internals_test-bin-fmt.o", "apps/lib/cmp_client_test-bin-cmp_mock_srv.o", "apps/lib/uitest-bin-apps_ui.o", "apps/lib/libapps-lib-app_libctx.o", @@ -8184,12 +9575,14 @@ our %unified_info = ( "apps/lib/libapps-lib-app_rand.o", "apps/lib/libapps-lib-app_x509.o", "apps/lib/libapps-lib-apps.o", + "apps/lib/libapps-lib-apps_opt_printf.o", "apps/lib/libapps-lib-apps_ui.o", "apps/lib/libapps-lib-columns.o", "apps/lib/libapps-lib-engine.o", "apps/lib/libapps-lib-engine_loader.o", "apps/lib/libapps-lib-fmt.o", "apps/lib/libapps-lib-http_server.o", + "apps/lib/libapps-lib-log.o", "apps/lib/libapps-lib-names.o", "apps/lib/libapps-lib-opt.o", "apps/lib/libapps-lib-s_cb.o", @@ -8200,6 +9593,7 @@ our %unified_info = ( "products" => { "bin" => [ "apps/openssl", + "test/ca_internals_test", "test/cmp_client_test", "test/uitest" ], @@ -8211,8 +9605,12 @@ our %unified_info = ( }, "crypto" => { "deps" => [ + "crypto/asn1_time_test-bin-ctype.o", + "crypto/ca_internals_test-bin-ctype.o", + "crypto/packettest-bin-quic_vlint.o", "crypto/libcrypto-lib-asn1_dsa.o", "crypto/libcrypto-lib-bsearch.o", + "crypto/libcrypto-lib-comp_methods.o", "crypto/libcrypto-lib-context.o", "crypto/libcrypto-lib-core_algorithm.o", "crypto/libcrypto-lib-core_fetch.o", @@ -8222,10 +9620,13 @@ our %unified_info = ( "crypto/libcrypto-lib-cryptlib.o", "crypto/libcrypto-lib-ctype.o", "crypto/libcrypto-lib-cversion.o", + "crypto/libcrypto-lib-defaults.o", "crypto/libcrypto-lib-der_writer.o", + "crypto/libcrypto-lib-deterministic_nonce.o", "crypto/libcrypto-lib-ebcdic.o", "crypto/libcrypto-lib-ex_data.o", "crypto/libcrypto-lib-getenv.o", + "crypto/libcrypto-lib-indicator_core.o", "crypto/libcrypto-lib-info.o", "crypto/libcrypto-lib-init.o", "crypto/libcrypto-lib-initthread.o", @@ -8242,6 +9643,7 @@ our %unified_info = ( "crypto/libcrypto-lib-params.o", "crypto/libcrypto-lib-params_dup.o", "crypto/libcrypto-lib-params_from_text.o", + "crypto/libcrypto-lib-params_idx.o", "crypto/libcrypto-lib-passphrase.o", "crypto/libcrypto-lib-ppccap.o", "crypto/libcrypto-lib-ppccpuid.o", @@ -8251,12 +9653,16 @@ our %unified_info = ( "crypto/libcrypto-lib-provider_core.o", "crypto/libcrypto-lib-provider_predefined.o", "crypto/libcrypto-lib-punycode.o", + "crypto/libcrypto-lib-quic_vlint.o", "crypto/libcrypto-lib-self_test_core.o", + "crypto/libcrypto-lib-sleep.o", "crypto/libcrypto-lib-sparse_array.o", + "crypto/libcrypto-lib-ssl_err.o", "crypto/libcrypto-lib-threads_lib.o", "crypto/libcrypto-lib-threads_none.o", "crypto/libcrypto-lib-threads_pthread.o", "crypto/libcrypto-lib-threads_win.o", + "crypto/libcrypto-lib-time.o", "crypto/libcrypto-lib-trace.o", "crypto/libcrypto-lib-uid.o", "crypto/libfips-lib-asn1_dsa.o", @@ -8278,6 +9684,7 @@ our %unified_info = ( "crypto/libfips-lib-params.o", "crypto/libfips-lib-params_dup.o", "crypto/libfips-lib-params_from_text.o", + "crypto/libfips-lib-params_idx.o", "crypto/libfips-lib-ppccap.o", "crypto/libfips-lib-ppccpuid.o", "crypto/libfips-lib-provider_core.o", @@ -8287,9 +9694,15 @@ our %unified_info = ( "crypto/libfips-lib-threads_lib.o", "crypto/libfips-lib-threads_none.o", "crypto/libfips-lib-threads_pthread.o", - "crypto/libfips-lib-threads_win.o" + "crypto/libfips-lib-threads_win.o", + "crypto/libfips-lib-time.o" ], "products" => { + "bin" => [ + "test/asn1_time_test", + "test/ca_internals_test", + "test/packettest" + ], "lib" => [ "libcrypto", "providers/libfips.a" @@ -8336,6 +9749,8 @@ our %unified_info = ( }, "crypto/asn1" => { "deps" => [ + "crypto/asn1/asn1_time_test-bin-a_time.o", + "crypto/asn1/ca_internals_test-bin-a_time.o", "crypto/asn1/libcrypto-lib-a_bitstr.o", "crypto/asn1/libcrypto-lib-a_d2i_fp.o", "crypto/asn1/libcrypto-lib-a_digest.o", @@ -8402,6 +9817,10 @@ our %unified_info = ( "crypto/asn1/libcrypto-lib-x_val.o" ], "products" => { + "bin" => [ + "test/asn1_time_test", + "test/ca_internals_test" + ], "lib" => [ "libcrypto" ] @@ -8467,6 +9886,7 @@ our %unified_info = ( "crypto/bio/libcrypto-lib-bss_conn.o", "crypto/bio/libcrypto-lib-bss_core.o", "crypto/bio/libcrypto-lib-bss_dgram.o", + "crypto/bio/libcrypto-lib-bss_dgram_pair.o", "crypto/bio/libcrypto-lib-bss_fd.o", "crypto/bio/libcrypto-lib-bss_file.o", "crypto/bio/libcrypto-lib-bss_log.o", @@ -8518,6 +9938,7 @@ our %unified_info = ( "crypto/bn/libcrypto-lib-bn_word.o", "crypto/bn/libcrypto-lib-bn_x931p.o", "crypto/bn/libcrypto-lib-ppc-mont.o", + "crypto/bn/libcrypto-lib-ppc64-mont-fixed.o", "crypto/bn/libfips-lib-bn-ppc.o", "crypto/bn/libfips-lib-bn_add.o", "crypto/bn/libfips-lib-bn_blind.o", @@ -8547,7 +9968,8 @@ our %unified_info = ( "crypto/bn/libfips-lib-bn_sqr.o", "crypto/bn/libfips-lib-bn_sqrt.o", "crypto/bn/libfips-lib-bn_word.o", - "crypto/bn/libfips-lib-ppc-mont.o" + "crypto/bn/libfips-lib-ppc-mont.o", + "crypto/bn/libfips-lib-ppc64-mont-fixed.o" ], "products" => { "lib" => [ @@ -8628,6 +10050,7 @@ our %unified_info = ( "crypto/cmp/libcrypto-lib-cmp_client.o", "crypto/cmp/libcrypto-lib-cmp_ctx.o", "crypto/cmp/libcrypto-lib-cmp_err.o", + "crypto/cmp/libcrypto-lib-cmp_genm.o", "crypto/cmp/libcrypto-lib-cmp_hdr.o", "crypto/cmp/libcrypto-lib-cmp_http.o", "crypto/cmp/libcrypto-lib-cmp_msg.o", @@ -9003,7 +10426,9 @@ our %unified_info = ( "crypto/err/libcrypto-lib-err_all.o", "crypto/err/libcrypto-lib-err_all_legacy.o", "crypto/err/libcrypto-lib-err_blocks.o", - "crypto/err/libcrypto-lib-err_prn.o" + "crypto/err/libcrypto-lib-err_mark.o", + "crypto/err/libcrypto-lib-err_prn.o", + "crypto/err/libcrypto-lib-err_save.o" ], "products" => { "lib" => [ @@ -9104,7 +10529,9 @@ our %unified_info = ( "crypto/evp/libcrypto-lib-pmeth_check.o", "crypto/evp/libcrypto-lib-pmeth_gn.o", "crypto/evp/libcrypto-lib-pmeth_lib.o", + "crypto/evp/libcrypto-lib-s_lib.o", "crypto/evp/libcrypto-lib-signature.o", + "crypto/evp/libcrypto-lib-skeymgmt_meth.o", "crypto/evp/libfips-lib-asymcipher.o", "crypto/evp/libfips-lib-dh_support.o", "crypto/evp/libfips-lib-digest.o", @@ -9120,14 +10547,15 @@ our %unified_info = ( "crypto/evp/libfips-lib-kem.o", "crypto/evp/libfips-lib-keymgmt_lib.o", "crypto/evp/libfips-lib-keymgmt_meth.o", - "crypto/evp/libfips-lib-m_sigver.o", "crypto/evp/libfips-lib-mac_lib.o", "crypto/evp/libfips-lib-mac_meth.o", "crypto/evp/libfips-lib-p_lib.o", "crypto/evp/libfips-lib-pmeth_check.o", "crypto/evp/libfips-lib-pmeth_gn.o", "crypto/evp/libfips-lib-pmeth_lib.o", - "crypto/evp/libfips-lib-signature.o" + "crypto/evp/libfips-lib-s_lib.o", + "crypto/evp/libfips-lib-signature.o", + "crypto/evp/libfips-lib-skeymgmt_meth.o" ], "products" => { "lib" => [ @@ -9160,6 +10588,20 @@ our %unified_info = ( ] } }, + "crypto/hashtable" => { + "deps" => [ + "crypto/hashtable/libcrypto-lib-hashfunc.o", + "crypto/hashtable/libcrypto-lib-hashtable.o", + "crypto/hashtable/libfips-lib-hashfunc.o", + "crypto/hashtable/libfips-lib-hashtable.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, "crypto/hmac" => { "deps" => [ "crypto/hmac/libcrypto-lib-hmac.o", @@ -9172,6 +10614,17 @@ our %unified_info = ( ] } }, + "crypto/hpke" => { + "deps" => [ + "crypto/hpke/libcrypto-lib-hpke.o", + "crypto/hpke/libcrypto-lib-hpke_util.o" + ], + "products" => { + "lib" => [ + "libcrypto" + ] + } + }, "crypto/http" => { "deps" => [ "crypto/http/libcrypto-lib-http_client.o", @@ -9255,6 +10708,44 @@ our %unified_info = ( ] } }, + "crypto/ml_dsa" => { + "deps" => [ + "crypto/ml_dsa/libcrypto-lib-ml_dsa_encoders.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key_compress.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_matrix.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_ntt.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_params.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sample.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sign.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_encoders.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_key.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_key_compress.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_matrix.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_ntt.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_params.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_sample.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_sign.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, + "crypto/ml_kem" => { + "deps" => [ + "crypto/ml_kem/libcrypto-lib-ml_kem.o", + "crypto/ml_kem/libfips-lib-ml_kem.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, "crypto/modes" => { "deps" => [ "crypto/modes/libcrypto-lib-cbc128.o", @@ -9269,6 +10760,7 @@ our %unified_info = ( "crypto/modes/libcrypto-lib-siv128.o", "crypto/modes/libcrypto-lib-wrap128.o", "crypto/modes/libcrypto-lib-xts128.o", + "crypto/modes/libcrypto-lib-xts128gb.o", "crypto/modes/libfips-lib-cbc128.o", "crypto/modes/libfips-lib-ccm128.o", "crypto/modes/libfips-lib-cfb128.o", @@ -9277,7 +10769,8 @@ our %unified_info = ( "crypto/modes/libfips-lib-ghashp8-ppc.o", "crypto/modes/libfips-lib-ofb128.o", "crypto/modes/libfips-lib-wrap128.o", - "crypto/modes/libfips-lib-xts128.o" + "crypto/modes/libfips-lib-xts128.o", + "crypto/modes/libfips-lib-xts128gb.o" ], "products" => { "lib" => [ @@ -9423,6 +10916,7 @@ our %unified_info = ( "crypto/rand/libcrypto-lib-rand_lib.o", "crypto/rand/libcrypto-lib-rand_meth.o", "crypto/rand/libcrypto-lib-rand_pool.o", + "crypto/rand/libcrypto-lib-rand_uniform.o", "crypto/rand/libcrypto-lib-randfile.o", "crypto/rand/libfips-lib-rand_lib.o" ], @@ -9579,6 +11073,36 @@ our %unified_info = ( ] } }, + "crypto/slh_dsa" => { + "deps" => [ + "crypto/slh_dsa/libcrypto-lib-slh_adrs.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa_hash_ctx.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa_key.o", + "crypto/slh_dsa/libcrypto-lib-slh_fors.o", + "crypto/slh_dsa/libcrypto-lib-slh_hash.o", + "crypto/slh_dsa/libcrypto-lib-slh_hypertree.o", + "crypto/slh_dsa/libcrypto-lib-slh_params.o", + "crypto/slh_dsa/libcrypto-lib-slh_wots.o", + "crypto/slh_dsa/libcrypto-lib-slh_xmss.o", + "crypto/slh_dsa/libfips-lib-slh_adrs.o", + "crypto/slh_dsa/libfips-lib-slh_dsa.o", + "crypto/slh_dsa/libfips-lib-slh_dsa_hash_ctx.o", + "crypto/slh_dsa/libfips-lib-slh_dsa_key.o", + "crypto/slh_dsa/libfips-lib-slh_fors.o", + "crypto/slh_dsa/libfips-lib-slh_hash.o", + "crypto/slh_dsa/libfips-lib-slh_hypertree.o", + "crypto/slh_dsa/libfips-lib-slh_params.o", + "crypto/slh_dsa/libfips-lib-slh_wots.o", + "crypto/slh_dsa/libfips-lib-slh_xmss.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, "crypto/sm2" => { "deps" => [ "crypto/sm2/libcrypto-lib-sm2_crypt.o", @@ -9652,6 +11176,38 @@ our %unified_info = ( ] } }, + "crypto/thread" => { + "deps" => [ + "crypto/thread/libcrypto-lib-api.o", + "crypto/thread/libcrypto-lib-arch.o", + "crypto/thread/libcrypto-lib-internal.o", + "crypto/thread/libfips-lib-api.o", + "crypto/thread/libfips-lib-arch.o", + "crypto/thread/libfips-lib-internal.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, + "crypto/thread/arch" => { + "deps" => [ + "crypto/thread/arch/libcrypto-lib-thread_none.o", + "crypto/thread/arch/libcrypto-lib-thread_posix.o", + "crypto/thread/arch/libcrypto-lib-thread_win.o", + "crypto/thread/arch/libfips-lib-thread_none.o", + "crypto/thread/arch/libfips-lib-thread_posix.o", + "crypto/thread/arch/libfips-lib-thread_win.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, "crypto/ts" => { "deps" => [ "crypto/ts/libcrypto-lib-ts_asn1.o", @@ -9718,14 +11274,22 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-pcy_map.o", "crypto/x509/libcrypto-lib-pcy_node.o", "crypto/x509/libcrypto-lib-pcy_tree.o", + "crypto/x509/libcrypto-lib-t_acert.o", "crypto/x509/libcrypto-lib-t_crl.o", "crypto/x509/libcrypto-lib-t_req.o", "crypto/x509/libcrypto-lib-t_x509.o", + "crypto/x509/libcrypto-lib-v3_aaa.o", + "crypto/x509/libcrypto-lib-v3_ac_tgt.o", "crypto/x509/libcrypto-lib-v3_addr.o", "crypto/x509/libcrypto-lib-v3_admis.o", "crypto/x509/libcrypto-lib-v3_akeya.o", "crypto/x509/libcrypto-lib-v3_akid.o", "crypto/x509/libcrypto-lib-v3_asid.o", + "crypto/x509/libcrypto-lib-v3_attrdesc.o", + "crypto/x509/libcrypto-lib-v3_attrmap.o", + "crypto/x509/libcrypto-lib-v3_audit_id.o", + "crypto/x509/libcrypto-lib-v3_authattid.o", + "crypto/x509/libcrypto-lib-v3_battcons.o", "crypto/x509/libcrypto-lib-v3_bcons.o", "crypto/x509/libcrypto-lib-v3_bitst.o", "crypto/x509/libcrypto-lib-v3_conf.o", @@ -9734,12 +11298,17 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_enum.o", "crypto/x509/libcrypto-lib-v3_extku.o", "crypto/x509/libcrypto-lib-v3_genn.o", + "crypto/x509/libcrypto-lib-v3_group_ac.o", "crypto/x509/libcrypto-lib-v3_ia5.o", + "crypto/x509/libcrypto-lib-v3_ind_iss.o", "crypto/x509/libcrypto-lib-v3_info.o", "crypto/x509/libcrypto-lib-v3_int.o", + "crypto/x509/libcrypto-lib-v3_iobo.o", "crypto/x509/libcrypto-lib-v3_ist.o", "crypto/x509/libcrypto-lib-v3_lib.o", "crypto/x509/libcrypto-lib-v3_ncons.o", + "crypto/x509/libcrypto-lib-v3_no_ass.o", + "crypto/x509/libcrypto-lib-v3_no_rev_avail.o", "crypto/x509/libcrypto-lib-v3_pci.o", "crypto/x509/libcrypto-lib-v3_pcia.o", "crypto/x509/libcrypto-lib-v3_pcons.o", @@ -9747,13 +11316,20 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_pmaps.o", "crypto/x509/libcrypto-lib-v3_prn.o", "crypto/x509/libcrypto-lib-v3_purp.o", + "crypto/x509/libcrypto-lib-v3_rolespec.o", "crypto/x509/libcrypto-lib-v3_san.o", + "crypto/x509/libcrypto-lib-v3_sda.o", + "crypto/x509/libcrypto-lib-v3_single_use.o", "crypto/x509/libcrypto-lib-v3_skid.o", + "crypto/x509/libcrypto-lib-v3_soa_id.o", "crypto/x509/libcrypto-lib-v3_sxnet.o", + "crypto/x509/libcrypto-lib-v3_timespec.o", "crypto/x509/libcrypto-lib-v3_tlsf.o", + "crypto/x509/libcrypto-lib-v3_usernotice.o", "crypto/x509/libcrypto-lib-v3_utf8.o", "crypto/x509/libcrypto-lib-v3_utl.o", "crypto/x509/libcrypto-lib-v3err.o", + "crypto/x509/libcrypto-lib-x509_acert.o", "crypto/x509/libcrypto-lib-x509_att.o", "crypto/x509/libcrypto-lib-x509_cmp.o", "crypto/x509/libcrypto-lib-x509_d2.o", @@ -9771,6 +11347,7 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x509_v3.o", "crypto/x509/libcrypto-lib-x509_vfy.o", "crypto/x509/libcrypto-lib-x509_vpm.o", + "crypto/x509/libcrypto-lib-x509aset.o", "crypto/x509/libcrypto-lib-x509cset.o", "crypto/x509/libcrypto-lib-x509name.o", "crypto/x509/libcrypto-lib-x509rset.o", @@ -9780,6 +11357,7 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x_attrib.o", "crypto/x509/libcrypto-lib-x_crl.o", "crypto/x509/libcrypto-lib-x_exten.o", + "crypto/x509/libcrypto-lib-x_ietfatt.o", "crypto/x509/libcrypto-lib-x_name.o", "crypto/x509/libcrypto-lib-x_pubkey.o", "crypto/x509/libcrypto-lib-x_req.o", @@ -9806,6 +11384,7 @@ our %unified_info = ( "fuzz" => { "products" => { "bin" => [ + "fuzz/acert-test", "fuzz/asn1-test", "fuzz/asn1parse-test", "fuzz/bignum-test", @@ -9816,13 +11395,31 @@ our %unified_info = ( "fuzz/conf-test", "fuzz/crl-test", "fuzz/ct-test", + "fuzz/decoder-test", + "fuzz/dtlsclient-test", + "fuzz/dtlsserver-test", + "fuzz/hashtable-test", + "fuzz/ml-dsa-test", + "fuzz/ml-kem-test", + "fuzz/pem-test", + "fuzz/provider-test", + "fuzz/punycode-test", + "fuzz/quic-client-test", + "fuzz/quic-lcidm-test", + "fuzz/quic-rcidm-test", + "fuzz/quic-server-test", + "fuzz/quic-srtm-test", "fuzz/server-test", + "fuzz/slh-dsa-test", + "fuzz/smime-test", + "fuzz/v3name-test", "fuzz/x509-test" ] } }, "providers" => { "deps" => [ + "providers/endecode_test-bin-legacyprov.o", "providers/evp_extra_test-bin-legacyprov.o", "providers/libcrypto-lib-baseprov.o", "providers/libcrypto-lib-defltprov.o", @@ -9832,6 +11429,7 @@ our %unified_info = ( ], "products" => { "bin" => [ + "test/endecode_test", "test/evp_extra_test" ], "dso" => [ @@ -9883,8 +11481,12 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ec_sig.o", "providers/common/der/libcommon-lib-der_ecx_gen.o", "providers/common/der/libcommon-lib-der_ecx_key.o", + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o", + "providers/common/der/libcommon-lib-der_ml_dsa_key.o", "providers/common/der/libcommon-lib-der_rsa_gen.o", "providers/common/der/libcommon-lib-der_rsa_key.o", + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o", + "providers/common/der/libcommon-lib-der_slh_dsa_key.o", "providers/common/der/libcommon-lib-der_wrap_gen.o", "providers/common/der/libdefault-lib-der_rsa_sig.o", "providers/common/der/libdefault-lib-der_sm2_gen.o", @@ -9903,6 +11505,7 @@ our %unified_info = ( "providers/fips" => { "deps" => [ "providers/fips/fips-dso-fips_entry.o", + "providers/fips/libfips-lib-fipsindicator.o", "providers/fips/libfips-lib-fipsprov.o", "providers/fips/libfips-lib-self_test.o", "providers/fips/libfips-lib-self_test_kats.o" @@ -9946,6 +11549,9 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_aes_ccm_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_polyval.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_ocb.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_ocb_hw.o", @@ -9970,7 +11576,13 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_cts.o", "providers/implementations/ciphers/libdefault-lib-cipher_null.o", "providers/implementations/ciphers/libdefault-lib-cipher_sm4.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_sm4_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes_common.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes_default.o", @@ -10067,7 +11679,10 @@ our %unified_info = ( "providers/implementations/encode_decode/libdefault-lib-encode_key2blob.o", "providers/implementations/encode_decode/libdefault-lib-encode_key2ms.o", "providers/implementations/encode_decode/libdefault-lib-encode_key2text.o", - "providers/implementations/encode_decode/libdefault-lib-endecoder_common.o" + "providers/implementations/encode_decode/libdefault-lib-endecoder_common.o", + "providers/implementations/encode_decode/libdefault-lib-ml_common_codecs.o", + "providers/implementations/encode_decode/libdefault-lib-ml_dsa_codecs.o", + "providers/implementations/encode_decode/libdefault-lib-ml_kem_codecs.o" ], "products" => { "lib" => [ @@ -10095,7 +11710,9 @@ our %unified_info = ( }, "providers/implementations/kdfs" => { "deps" => [ + "providers/implementations/kdfs/libdefault-lib-argon2.o", "providers/implementations/kdfs/libdefault-lib-hkdf.o", + "providers/implementations/kdfs/libdefault-lib-hmacdrbg_kdf.o", "providers/implementations/kdfs/libdefault-lib-kbkdf.o", "providers/implementations/kdfs/libdefault-lib-krb5kdf.o", "providers/implementations/kdfs/libdefault-lib-pbkdf2.o", @@ -10114,7 +11731,8 @@ our %unified_info = ( "providers/implementations/kdfs/libfips-lib-sskdf.o", "providers/implementations/kdfs/libfips-lib-tls1_prf.o", "providers/implementations/kdfs/libfips-lib-x942kdf.o", - "providers/implementations/kdfs/liblegacy-lib-pbkdf1.o" + "providers/implementations/kdfs/liblegacy-lib-pbkdf1.o", + "providers/implementations/kdfs/liblegacy-lib-pvkkdf.o" ], "products" => { "lib" => [ @@ -10126,13 +11744,22 @@ our %unified_info = ( }, "providers/implementations/kem" => { "deps" => [ + "providers/implementations/kem/libdefault-lib-ec_kem.o", + "providers/implementations/kem/libdefault-lib-ecx_kem.o", + "providers/implementations/kem/libdefault-lib-kem_util.o", + "providers/implementations/kem/libdefault-lib-ml_kem_kem.o", + "providers/implementations/kem/libdefault-lib-mlx_kem.o", "providers/implementations/kem/libdefault-lib-rsa_kem.o", - "providers/implementations/kem/libfips-lib-rsa_kem.o" + "providers/implementations/kem/libfips-lib-ml_kem_kem.o", + "providers/implementations/kem/libfips-lib-mlx_kem.o", + "providers/implementations/kem/libfips-lib-rsa_kem.o", + "providers/implementations/kem/libtemplate-lib-template_kem.o" ], "products" => { "lib" => [ "providers/libdefault.a", - "providers/libfips.a" + "providers/libfips.a", + "providers/libtemplate.a" ] } }, @@ -10144,19 +11771,29 @@ our %unified_info = ( "providers/implementations/keymgmt/libdefault-lib-ecx_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-kdf_legacy_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-mac_legacy_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-ml_dsa_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-ml_kem_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-mlx_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-rsa_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-slh_dsa_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-dh_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-dsa_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-ec_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-ecx_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-kdf_legacy_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-mac_legacy_kmgmt.o", - "providers/implementations/keymgmt/libfips-lib-rsa_kmgmt.o" + "providers/implementations/keymgmt/libfips-lib-ml_dsa_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-ml_kem_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-mlx_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-rsa_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-slh_dsa_kmgmt.o", + "providers/implementations/keymgmt/libtemplate-lib-template_kmgmt.o" ], "products" => { "lib" => [ "providers/libdefault.a", - "providers/libfips.a" + "providers/libfips.a", + "providers/libtemplate.a" ] } }, @@ -10184,18 +11821,18 @@ our %unified_info = ( }, "providers/implementations/rands" => { "deps" => [ - "providers/implementations/rands/libdefault-lib-crngt.o", "providers/implementations/rands/libdefault-lib-drbg.o", "providers/implementations/rands/libdefault-lib-drbg_ctr.o", "providers/implementations/rands/libdefault-lib-drbg_hash.o", "providers/implementations/rands/libdefault-lib-drbg_hmac.o", "providers/implementations/rands/libdefault-lib-seed_src.o", + "providers/implementations/rands/libdefault-lib-seed_src_jitter.o", "providers/implementations/rands/libdefault-lib-test_rng.o", - "providers/implementations/rands/libfips-lib-crngt.o", "providers/implementations/rands/libfips-lib-drbg.o", "providers/implementations/rands/libfips-lib-drbg_ctr.o", "providers/implementations/rands/libfips-lib-drbg_hash.o", "providers/implementations/rands/libfips-lib-drbg_hmac.o", + "providers/implementations/rands/libfips-lib-fips_crng_test.o", "providers/implementations/rands/libfips-lib-test_rng.o" ], "products" => { @@ -10224,13 +11861,31 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-ecdsa_sig.o", "providers/implementations/signature/libdefault-lib-eddsa_sig.o", "providers/implementations/signature/libdefault-lib-mac_legacy_sig.o", + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o", "providers/implementations/signature/libdefault-lib-rsa_sig.o", + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o", "providers/implementations/signature/libdefault-lib-sm2_sig.o", "providers/implementations/signature/libfips-lib-dsa_sig.o", "providers/implementations/signature/libfips-lib-ecdsa_sig.o", "providers/implementations/signature/libfips-lib-eddsa_sig.o", "providers/implementations/signature/libfips-lib-mac_legacy_sig.o", - "providers/implementations/signature/libfips-lib-rsa_sig.o" + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o", + "providers/implementations/signature/libfips-lib-rsa_sig.o", + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o" + ], + "products" => { + "lib" => [ + "providers/libdefault.a", + "providers/libfips.a" + ] + } + }, + "providers/implementations/skeymgmt" => { + "deps" => [ + "providers/implementations/skeymgmt/libdefault-lib-aes_skmgmt.o", + "providers/implementations/skeymgmt/libdefault-lib-generic.o", + "providers/implementations/skeymgmt/libfips-lib-aes_skmgmt.o", + "providers/implementations/skeymgmt/libfips-lib-generic.o" ], "products" => { "lib" => [ @@ -10258,14 +11913,15 @@ our %unified_info = ( "ssl/libssl-lib-d1_srtp.o", "ssl/libssl-lib-methods.o", "ssl/libssl-lib-pqueue.o", + "ssl/libssl-lib-priority_queue.o", "ssl/libssl-lib-s3_enc.o", "ssl/libssl-lib-s3_lib.o", "ssl/libssl-lib-s3_msg.o", "ssl/libssl-lib-ssl_asn1.o", "ssl/libssl-lib-ssl_cert.o", + "ssl/libssl-lib-ssl_cert_comp.o", "ssl/libssl-lib-ssl_ciph.o", "ssl/libssl-lib-ssl_conf.o", - "ssl/libssl-lib-ssl_err.o", "ssl/libssl-lib-ssl_err_legacy.o", "ssl/libssl-lib-ssl_init.o", "ssl/libssl-lib-ssl_lib.o", @@ -10281,32 +11937,107 @@ our %unified_info = ( "ssl/libssl-lib-t1_trce.o", "ssl/libssl-lib-tls13_enc.o", "ssl/libssl-lib-tls_depr.o", - "ssl/libssl-lib-tls_srp.o", - "ssl/libdefault-lib-s3_cbc.o", - "ssl/libfips-lib-s3_cbc.o" + "ssl/libssl-lib-tls_srp.o" ], "products" => { "lib" => [ - "libssl", - "providers/libdefault.a", - "providers/libfips.a" + "libssl" + ] + } + }, + "ssl/quic" => { + "deps" => [ + "ssl/quic/libssl-lib-cc_newreno.o", + "ssl/quic/libssl-lib-json_enc.o", + "ssl/quic/libssl-lib-qlog.o", + "ssl/quic/libssl-lib-qlog_event_helpers.o", + "ssl/quic/libssl-lib-quic_ackm.o", + "ssl/quic/libssl-lib-quic_cfq.o", + "ssl/quic/libssl-lib-quic_channel.o", + "ssl/quic/libssl-lib-quic_demux.o", + "ssl/quic/libssl-lib-quic_engine.o", + "ssl/quic/libssl-lib-quic_fc.o", + "ssl/quic/libssl-lib-quic_fifd.o", + "ssl/quic/libssl-lib-quic_impl.o", + "ssl/quic/libssl-lib-quic_lcidm.o", + "ssl/quic/libssl-lib-quic_method.o", + "ssl/quic/libssl-lib-quic_obj.o", + "ssl/quic/libssl-lib-quic_port.o", + "ssl/quic/libssl-lib-quic_rcidm.o", + "ssl/quic/libssl-lib-quic_reactor.o", + "ssl/quic/libssl-lib-quic_reactor_wait_ctx.o", + "ssl/quic/libssl-lib-quic_record_rx.o", + "ssl/quic/libssl-lib-quic_record_shared.o", + "ssl/quic/libssl-lib-quic_record_tx.o", + "ssl/quic/libssl-lib-quic_record_util.o", + "ssl/quic/libssl-lib-quic_rstream.o", + "ssl/quic/libssl-lib-quic_rx_depack.o", + "ssl/quic/libssl-lib-quic_sf_list.o", + "ssl/quic/libssl-lib-quic_srt_gen.o", + "ssl/quic/libssl-lib-quic_srtm.o", + "ssl/quic/libssl-lib-quic_sstream.o", + "ssl/quic/libssl-lib-quic_statm.o", + "ssl/quic/libssl-lib-quic_stream_map.o", + "ssl/quic/libssl-lib-quic_thread_assist.o", + "ssl/quic/libssl-lib-quic_tls.o", + "ssl/quic/libssl-lib-quic_tls_api.o", + "ssl/quic/libssl-lib-quic_trace.o", + "ssl/quic/libssl-lib-quic_tserver.o", + "ssl/quic/libssl-lib-quic_txp.o", + "ssl/quic/libssl-lib-quic_txpim.o", + "ssl/quic/libssl-lib-quic_types.o", + "ssl/quic/libssl-lib-quic_wire.o", + "ssl/quic/libssl-lib-quic_wire_pkt.o", + "ssl/quic/libssl-lib-uint_set.o" + ], + "products" => { + "lib" => [ + "libssl" ] } }, "ssl/record" => { "deps" => [ - "ssl/record/libssl-lib-dtls1_bitmap.o", "ssl/record/libssl-lib-rec_layer_d1.o", - "ssl/record/libssl-lib-rec_layer_s3.o", - "ssl/record/libssl-lib-ssl3_buffer.o", - "ssl/record/libssl-lib-ssl3_record.o", - "ssl/record/libssl-lib-ssl3_record_tls13.o", - "ssl/record/libcommon-lib-tls_pad.o" + "ssl/record/libssl-lib-rec_layer_s3.o" + ], + "products" => { + "lib" => [ + "libssl" + ] + } + }, + "ssl/record/methods" => { + "deps" => [ + "ssl/record/methods/libssl-lib-dtls_meth.o", + "ssl/record/methods/libssl-lib-ssl3_meth.o", + "ssl/record/methods/libssl-lib-tls13_meth.o", + "ssl/record/methods/libssl-lib-tls1_meth.o", + "ssl/record/methods/libssl-lib-tls_common.o", + "ssl/record/methods/libssl-lib-tls_multib.o", + "ssl/record/methods/libssl-lib-tlsany_meth.o", + "ssl/record/methods/libcommon-lib-tls_pad.o", + "ssl/record/methods/libdefault-lib-ssl3_cbc.o", + "ssl/record/methods/libfips-lib-ssl3_cbc.o" ], "products" => { "lib" => [ "libssl", - "providers/libcommon.a" + "providers/libcommon.a", + "providers/libdefault.a", + "providers/libfips.a" + ] + } + }, + "ssl/rio" => { + "deps" => [ + "ssl/rio/libssl-lib-poll_builder.o", + "ssl/rio/libssl-lib-poll_immediate.o", + "ssl/rio/libssl-lib-rio_notifier.o" + ], + "products" => { + "lib" => [ + "libssl" ] } }, @@ -10344,9 +12075,40 @@ our %unified_info = ( "test/helpers/dtlstest-bin-ssltestlib.o", "test/helpers/endecode_test-bin-predefined_dhparams.o", "test/helpers/fatalerrtest-bin-ssltestlib.o", + "test/helpers/json_test-bin-noisydgrambio.o", + "test/helpers/json_test-bin-pktsplitbio.o", + "test/helpers/json_test-bin-quictestlib.o", + "test/helpers/json_test-bin-ssltestlib.o", + "test/helpers/pkcs12_api_test-bin-pkcs12.o", "test/helpers/pkcs12_format_test-bin-pkcs12.o", + "test/helpers/quic_multistream_test-bin-noisydgrambio.o", + "test/helpers/quic_multistream_test-bin-pktsplitbio.o", + "test/helpers/quic_multistream_test-bin-quictestlib.o", + "test/helpers/quic_multistream_test-bin-ssltestlib.o", + "test/helpers/quic_newcid_test-bin-noisydgrambio.o", + "test/helpers/quic_newcid_test-bin-pktsplitbio.o", + "test/helpers/quic_newcid_test-bin-quictestlib.o", + "test/helpers/quic_newcid_test-bin-ssltestlib.o", + "test/helpers/quic_radix_test-bin-noisydgrambio.o", + "test/helpers/quic_radix_test-bin-pktsplitbio.o", + "test/helpers/quic_radix_test-bin-quictestlib.o", + "test/helpers/quic_radix_test-bin-ssltestlib.o", + "test/helpers/quic_srt_gen_test-bin-noisydgrambio.o", + "test/helpers/quic_srt_gen_test-bin-pktsplitbio.o", + "test/helpers/quic_srt_gen_test-bin-quictestlib.o", + "test/helpers/quic_srt_gen_test-bin-ssltestlib.o", + "test/helpers/quicapitest-bin-noisydgrambio.o", + "test/helpers/quicapitest-bin-pktsplitbio.o", + "test/helpers/quicapitest-bin-quictestlib.o", + "test/helpers/quicapitest-bin-ssltestlib.o", + "test/helpers/quicfaultstest-bin-noisydgrambio.o", + "test/helpers/quicfaultstest-bin-pktsplitbio.o", + "test/helpers/quicfaultstest-bin-quictestlib.o", + "test/helpers/quicfaultstest-bin-ssltestlib.o", "test/helpers/recordlentest-bin-ssltestlib.o", + "test/helpers/rpktest-bin-ssltestlib.o", "test/helpers/servername_test-bin-ssltestlib.o", + "test/helpers/ssl_handshake_rtt_test-bin-ssltestlib.o", "test/helpers/ssl_old_test-bin-predefined_dhparams.o", "test/helpers/ssl_test-bin-handshake.o", "test/helpers/ssl_test-bin-handshake_srp.o", @@ -10355,7 +12117,8 @@ our %unified_info = ( "test/helpers/sslapitest-bin-ssltestlib.o", "test/helpers/sslbuffertest-bin-ssltestlib.o", "test/helpers/sslcorrupttest-bin-ssltestlib.o", - "test/helpers/tls13ccstest-bin-ssltestlib.o" + "test/helpers/tls13ccstest-bin-ssltestlib.o", + "test/helpers/tls13groupselection_test-bin-ssltestlib.o" ], "products" => { "bin" => [ @@ -10373,16 +12136,37 @@ our %unified_info = ( "test/dtlstest", "test/endecode_test", "test/fatalerrtest", + "test/json_test", + "test/pkcs12_api_test", "test/pkcs12_format_test", + "test/quic_multistream_test", + "test/quic_newcid_test", + "test/quic_radix_test", + "test/quic_srt_gen_test", + "test/quicapitest", + "test/quicfaultstest", "test/recordlentest", + "test/rpktest", "test/servername_test", + "test/ssl_handshake_rtt_test", "test/ssl_old_test", "test/ssl_test", "test/ssl_test_ctx_test", "test/sslapitest", "test/sslbuffertest", "test/sslcorrupttest", - "test/tls13ccstest" + "test/tls13ccstest", + "test/tls13groupselection_test" + ] + } + }, + "test/radix" => { + "deps" => [ + "test/radix/quic_radix_test-bin-quic_radix.o" + ], + "products" => { + "bin" => [ + "test/quic_radix_test" ] } }, @@ -10394,6 +12178,7 @@ our %unified_info = ( "test/testutil/libtestutil-lib-driver.o", "test/testutil/libtestutil-lib-fake_random.o", "test/testutil/libtestutil-lib-format_output.o", + "test/testutil/libtestutil-lib-helper.o", "test/testutil/libtestutil-lib-load.o", "test/testutil/libtestutil-lib-main.o", "test/testutil/libtestutil-lib-options.o", @@ -10429,6 +12214,12 @@ our %unified_info = ( } }, "generate" => { + "OpenSSLConfig.cmake" => [ + "exporters/cmake/OpenSSLConfig.cmake.in" + ], + "OpenSSLConfigVersion.cmake" => [ + "exporters/cmake/OpenSSLConfigVersion.cmake.in" + ], "apps/progs.c" => [ "apps/progs.pl", "\"-C\"", @@ -10439,6 +12230,19 @@ our %unified_info = ( "\"-H\"", "\$(APPS_OPENSSL)" ], + "builddata.pm" => [ + "util/mkinstallvars.pl", + "PREFIX=.", + "BINDIR=apps", + "APPLINKDIR=ms", + "LIBDIR=", + "INCLUDEDIR=include", + "\"INCLUDEDIR=\$(SRCDIR)/include\"", + "ENGINESDIR=engines", + "MODULESDIR=providers", + "\"VERSION=\$(VERSION)\"", + "\"LDLIBS=\$(LIB_EX_LIBS)\"" + ], "crypto/aes/aes-586.S" => [ "crypto/aes/asm/aes-586.pl" ], @@ -10460,6 +12264,24 @@ our %unified_info = ( "crypto/aes/aes-ppc.s" => [ "crypto/aes/asm/aes-ppc.pl" ], + "crypto/aes/aes-riscv32-zkn.s" => [ + "crypto/aes/asm/aes-riscv32-zkn.pl" + ], + "crypto/aes/aes-riscv64-zkn.s" => [ + "crypto/aes/asm/aes-riscv64-zkn.pl" + ], + "crypto/aes/aes-riscv64-zvbb-zvkg-zvkned.s" => [ + "crypto/aes/asm/aes-riscv64-zvbb-zvkg-zvkned.pl" + ], + "crypto/aes/aes-riscv64-zvkb-zvkned.s" => [ + "crypto/aes/asm/aes-riscv64-zvkb-zvkned.pl" + ], + "crypto/aes/aes-riscv64-zvkned.s" => [ + "crypto/aes/asm/aes-riscv64-zvkned.pl" + ], + "crypto/aes/aes-riscv64.s" => [ + "crypto/aes/asm/aes-riscv64.pl" + ], "crypto/aes/aes-s390x.S" => [ "crypto/aes/asm/aes-s390x.pl" ], @@ -10487,6 +12309,9 @@ our %unified_info = ( "crypto/aes/aesni-x86_64.s" => [ "crypto/aes/asm/aesni-x86_64.pl" ], + "crypto/aes/aesni-xts-avx512.s" => [ + "crypto/aes/asm/aesni-xts-avx512.pl" + ], "crypto/aes/aesp8-ppc.s" => [ "crypto/aes/asm/aesp8-ppc.pl" ], @@ -10499,12 +12324,18 @@ our %unified_info = ( "crypto/aes/bsaes-armv7.S" => [ "crypto/aes/asm/bsaes-armv7.pl" ], + "crypto/aes/bsaes-armv8.S" => [ + "crypto/aes/asm/bsaes-armv8.pl" + ], "crypto/aes/bsaes-x86_64.s" => [ "crypto/aes/asm/bsaes-x86_64.pl" ], "crypto/aes/vpaes-armv8.S" => [ "crypto/aes/asm/vpaes-armv8.pl" ], + "crypto/aes/vpaes-loongarch64.S" => [ + "crypto/aes/asm/vpaes-loongarch64.pl" + ], "crypto/aes/vpaes-ppc.s" => [ "crypto/aes/asm/vpaes-ppc.pl" ], @@ -10565,15 +12396,33 @@ our %unified_info = ( "crypto/bn/ppc-mont.s" => [ "crypto/bn/asm/ppc-mont.pl" ], + "crypto/bn/ppc64-mont-fixed.s" => [ + "crypto/bn/asm/ppc64-mont-fixed.pl" + ], "crypto/bn/ppc64-mont.s" => [ "crypto/bn/asm/ppc64-mont.pl" ], + "crypto/bn/rsaz-2k-avx512.s" => [ + "crypto/bn/asm/rsaz-2k-avx512.pl" + ], + "crypto/bn/rsaz-2k-avxifma.s" => [ + "crypto/bn/asm/rsaz-2k-avxifma.pl" + ], + "crypto/bn/rsaz-3k-avx512.s" => [ + "crypto/bn/asm/rsaz-3k-avx512.pl" + ], + "crypto/bn/rsaz-3k-avxifma.s" => [ + "crypto/bn/asm/rsaz-3k-avxifma.pl" + ], + "crypto/bn/rsaz-4k-avx512.s" => [ + "crypto/bn/asm/rsaz-4k-avx512.pl" + ], + "crypto/bn/rsaz-4k-avxifma.s" => [ + "crypto/bn/asm/rsaz-4k-avxifma.pl" + ], "crypto/bn/rsaz-avx2.s" => [ "crypto/bn/asm/rsaz-avx2.pl" ], - "crypto/bn/rsaz-avx512.s" => [ - "crypto/bn/asm/rsaz-avx512.pl" - ], "crypto/bn/rsaz-x86_64.s" => [ "crypto/bn/asm/rsaz-x86_64.pl" ], @@ -10635,6 +12484,9 @@ our %unified_info = ( "crypto/chacha/chacha-armv4.S" => [ "crypto/chacha/asm/chacha-armv4.pl" ], + "crypto/chacha/chacha-armv8-sve.S" => [ + "crypto/chacha/asm/chacha-armv8-sve.pl" + ], "crypto/chacha/chacha-armv8.S" => [ "crypto/chacha/asm/chacha-armv8.pl" ], @@ -10647,9 +12499,19 @@ our %unified_info = ( "crypto/chacha/chacha-ia64.s" => [ "crypto/chacha/chacha-ia64.S" ], + "crypto/chacha/chacha-loongarch64.S" => [ + "crypto/chacha/asm/chacha-loongarch64.pl" + ], "crypto/chacha/chacha-ppc.s" => [ "crypto/chacha/asm/chacha-ppc.pl" ], + "crypto/chacha/chacha-riscv64-v-zbb-zvkb.s" => [ + "crypto/chacha/asm/chacha-riscv64-v-zbb.pl", + "zvkb" + ], + "crypto/chacha/chacha-riscv64-v-zbb.s" => [ + "crypto/chacha/asm/chacha-riscv64-v-zbb.pl" + ], "crypto/chacha/chacha-s390x.S" => [ "crypto/chacha/asm/chacha-s390x.pl" ], @@ -10659,6 +12521,9 @@ our %unified_info = ( "crypto/chacha/chacha-x86_64.s" => [ "crypto/chacha/asm/chacha-x86_64.pl" ], + "crypto/chacha/chachap10-ppc.s" => [ + "crypto/chacha/asm/chachap10-ppc.pl" + ], "crypto/des/crypt586.S" => [ "crypto/des/asm/crypt586.pl" ], @@ -10671,6 +12536,9 @@ our %unified_info = ( "crypto/des/dest4-sparcv9.S" => [ "crypto/des/asm/dest4-sparcv9.pl" ], + "crypto/ec/ecp_nistp384-ppc64.s" => [ + "crypto/ec/asm/ecp_nistp384-ppc64.pl" + ], "crypto/ec/ecp_nistp521-ppc64.s" => [ "crypto/ec/asm/ecp_nistp521-ppc64.pl" ], @@ -10695,6 +12563,9 @@ our %unified_info = ( "crypto/ec/ecp_nistz256-x86_64.s" => [ "crypto/ec/asm/ecp_nistz256-x86_64.pl" ], + "crypto/ec/ecp_sm2p256-armv8.S" => [ + "crypto/ec/asm/ecp_sm2p256-armv8.pl" + ], "crypto/ec/x25519-ppc64.s" => [ "crypto/ec/asm/x25519-ppc64.pl" ], @@ -10704,18 +12575,39 @@ our %unified_info = ( "crypto/ia64cpuid.s" => [ "crypto/ia64cpuid.S" ], + "crypto/loongarch64cpuid.s" => [ + "crypto/loongarch64cpuid.pl" + ], "crypto/md5/md5-586.S" => [ "crypto/md5/asm/md5-586.pl" ], + "crypto/md5/md5-aarch64.S" => [ + "crypto/md5/asm/md5-aarch64.pl" + ], + "crypto/md5/md5-loongarch64.S" => [ + "crypto/md5/asm/md5-loongarch64.pl" + ], "crypto/md5/md5-sparcv9.S" => [ "crypto/md5/asm/md5-sparcv9.pl" ], "crypto/md5/md5-x86_64.s" => [ "crypto/md5/asm/md5-x86_64.pl" ], + "crypto/modes/aes-gcm-armv8-unroll8_64.S" => [ + "crypto/modes/asm/aes-gcm-armv8-unroll8_64.pl" + ], "crypto/modes/aes-gcm-armv8_64.S" => [ "crypto/modes/asm/aes-gcm-armv8_64.pl" ], + "crypto/modes/aes-gcm-avx512.s" => [ + "crypto/modes/asm/aes-gcm-avx512.pl" + ], + "crypto/modes/aes-gcm-ppc.s" => [ + "crypto/modes/asm/aes-gcm-ppc.pl" + ], + "crypto/modes/aes-gcm-riscv64-zvkb-zvkg-zvkned.s" => [ + "crypto/modes/asm/aes-gcm-riscv64-zvkb-zvkg-zvkned.pl" + ], "crypto/modes/aesni-gcm-x86_64.s" => [ "crypto/modes/asm/aesni-gcm-x86_64.pl" ], @@ -10734,6 +12626,15 @@ our %unified_info = ( "crypto/modes/ghash-parisc.s" => [ "crypto/modes/asm/ghash-parisc.pl" ], + "crypto/modes/ghash-riscv64-zvkb-zvbc.s" => [ + "crypto/modes/asm/ghash-riscv64-zvkb-zvbc.pl" + ], + "crypto/modes/ghash-riscv64-zvkg.s" => [ + "crypto/modes/asm/ghash-riscv64-zvkg.pl" + ], + "crypto/modes/ghash-riscv64.s" => [ + "crypto/modes/asm/ghash-riscv64.pl" + ], "crypto/modes/ghash-s390x.S" => [ "crypto/modes/asm/ghash-s390x.pl" ], @@ -10752,6 +12653,9 @@ our %unified_info = ( "crypto/modes/ghashv8-armx.S" => [ "crypto/modes/asm/ghashv8-armx.pl" ], + "crypto/params_idx.c" => [ + "crypto/params_idx.c.in" + ], "crypto/pariscid.s" => [ "crypto/pariscid.pl" ], @@ -10812,6 +12716,12 @@ our %unified_info = ( "crypto/ripemd/rmd-586.S" => [ "crypto/ripemd/asm/rmd-586.pl" ], + "crypto/riscv32cpuid.s" => [ + "crypto/riscv32cpuid.pl" + ], + "crypto/riscv64cpuid.s" => [ + "crypto/riscv64cpuid.pl" + ], "crypto/s390xcpuid.S" => [ "crypto/s390xcpuid.pl" ], @@ -10920,6 +12830,9 @@ our %unified_info = ( "crypto/sha/sha256-ppc.s" => [ "crypto/sha/asm/sha512-ppc.pl" ], + "crypto/sha/sha256-riscv64-zvkb-zvknha_or_zvknhb.S" => [ + "crypto/sha/asm/sha256-riscv64-zvkb-zvknha_or_zvknhb.pl" + ], "crypto/sha/sha256-s390x.S" => [ "crypto/sha/asm/sha512-s390x.pl" ], @@ -10956,6 +12869,9 @@ our %unified_info = ( "crypto/sha/sha512-ppc.s" => [ "crypto/sha/asm/sha512-ppc.pl" ], + "crypto/sha/sha512-riscv64-zvkb-zvknhb.S" => [ + "crypto/sha/asm/sha512-riscv64-zvkb-zvknhb.pl" + ], "crypto/sha/sha512-s390x.S" => [ "crypto/sha/asm/sha512-s390x.pl" ], @@ -10968,6 +12884,24 @@ our %unified_info = ( "crypto/sha/sha512p8-ppc.s" => [ "crypto/sha/asm/sha512p8-ppc.pl" ], + "crypto/sm3/sm3-armv8.S" => [ + "crypto/sm3/asm/sm3-armv8.pl" + ], + "crypto/sm3/sm3-riscv64-zvksh.S" => [ + "crypto/sm3/asm/sm3-riscv64-zvksh.pl" + ], + "crypto/sm4/sm4-armv8.S" => [ + "crypto/sm4/asm/sm4-armv8.pl" + ], + "crypto/sm4/sm4-riscv64-zvksed.s" => [ + "crypto/sm4/asm/sm4-riscv64-zvksed.pl" + ], + "crypto/sm4/vpsm4-armv8.S" => [ + "crypto/sm4/asm/vpsm4-armv8.pl" + ], + "crypto/sm4/vpsm4_ex-armv8.S" => [ + "crypto/sm4/asm/vpsm4_ex-armv8.pl" + ], "crypto/uplink-ia64.s" => [ "ms/uplink-ia64.pl" ], @@ -11133,6 +13067,9 @@ our %unified_info = ( "doc/html/man1/openssl-sess_id.html" => [ "doc/man1/openssl-sess_id.pod" ], + "doc/html/man1/openssl-skeyutl.html" => [ + "doc/man1/openssl-skeyutl.pod" + ], "doc/html/man1/openssl-smime.html" => [ "doc/man1/openssl-smime.pod" ], @@ -11274,6 +13211,9 @@ our %unified_info = ( "doc/html/man3/BIO_get_ex_new_index.html" => [ "doc/man3/BIO_get_ex_new_index.pod" ], + "doc/html/man3/BIO_get_rpoll_descriptor.html" => [ + "doc/man3/BIO_get_rpoll_descriptor.pod" + ], "doc/html/man3/BIO_meth_new.html" => [ "doc/man3/BIO_meth_new.pod" ], @@ -11310,6 +13250,9 @@ our %unified_info = ( "doc/html/man3/BIO_s_datagram.html" => [ "doc/man3/BIO_s_datagram.pod" ], + "doc/html/man3/BIO_s_dgram_pair.html" => [ + "doc/man3/BIO_s_dgram_pair.pod" + ], "doc/html/man3/BIO_s_fd.html" => [ "doc/man3/BIO_s_fd.pod" ], @@ -11325,6 +13268,9 @@ our %unified_info = ( "doc/html/man3/BIO_s_socket.html" => [ "doc/man3/BIO_s_socket.pod" ], + "doc/html/man3/BIO_sendmmsg.html" => [ + "doc/man3/BIO_sendmmsg.pod" + ], "doc/html/man3/BIO_set_callback.html" => [ "doc/man3/BIO_set_callback.pod" ], @@ -11397,6 +13343,9 @@ our %unified_info = ( "doc/html/man3/BUF_MEM_new.html" => [ "doc/man3/BUF_MEM_new.pod" ], + "doc/html/man3/CMAC_CTX.html" => [ + "doc/man3/CMAC_CTX.pod" + ], "doc/html/man3/CMS_EncryptedData_decrypt.html" => [ "doc/man3/CMS_EncryptedData_decrypt.pod" ], @@ -11463,6 +13412,9 @@ our %unified_info = ( "doc/html/man3/CMS_verify_receipt.html" => [ "doc/man3/CMS_verify_receipt.pod" ], + "doc/html/man3/COMP_CTX_new.html" => [ + "doc/man3/COMP_CTX_new.pod" + ], "doc/html/man3/CONF_modules_free.html" => [ "doc/man3/CONF_modules_free.pod" ], @@ -11562,6 +13514,12 @@ our %unified_info = ( "doc/html/man3/DTLS_set_timer_cb.html" => [ "doc/man3/DTLS_set_timer_cb.pod" ], + "doc/html/man3/DTLSv1_get_timeout.html" => [ + "doc/man3/DTLSv1_get_timeout.pod" + ], + "doc/html/man3/DTLSv1_handle_timeout.html" => [ + "doc/man3/DTLSv1_handle_timeout.pod" + ], "doc/html/man3/DTLSv1_listen.html" => [ "doc/man3/DTLSv1_listen.pod" ], @@ -11700,6 +13658,9 @@ our %unified_info = ( "doc/html/man3/EVP_PKEY_CTX_get0_pkey.html" => [ "doc/man3/EVP_PKEY_CTX_get0_pkey.pod" ], + "doc/html/man3/EVP_PKEY_CTX_get_algor.html" => [ + "doc/man3/EVP_PKEY_CTX_get_algor.pod" + ], "doc/html/man3/EVP_PKEY_CTX_new.html" => [ "doc/man3/EVP_PKEY_CTX_new.pod" ], @@ -11817,6 +13778,12 @@ our %unified_info = ( "doc/html/man3/EVP_SIGNATURE.html" => [ "doc/man3/EVP_SIGNATURE.pod" ], + "doc/html/man3/EVP_SKEY.html" => [ + "doc/man3/EVP_SKEY.pod" + ], + "doc/html/man3/EVP_SKEYMGMT.html" => [ + "doc/man3/EVP_SKEYMGMT.pod" + ], "doc/html/man3/EVP_SealInit.html" => [ "doc/man3/EVP_SealInit.pod" ], @@ -11904,6 +13871,9 @@ our %unified_info = ( "doc/html/man3/EVP_whirlpool.html" => [ "doc/man3/EVP_whirlpool.pod" ], + "doc/html/man3/GENERAL_NAME.html" => [ + "doc/man3/GENERAL_NAME.pod" + ], "doc/html/man3/HMAC.html" => [ "doc/man3/HMAC.pod" ], @@ -11976,9 +13946,15 @@ our %unified_info = ( "doc/html/man3/OPENSSL_load_builtin_modules.html" => [ "doc/man3/OPENSSL_load_builtin_modules.pod" ], + "doc/html/man3/OPENSSL_load_u16_le.html" => [ + "doc/man3/OPENSSL_load_u16_le.pod" + ], "doc/html/man3/OPENSSL_malloc.html" => [ "doc/man3/OPENSSL_malloc.pod" ], + "doc/html/man3/OPENSSL_riscvcap.html" => [ + "doc/man3/OPENSSL_riscvcap.pod" + ], "doc/html/man3/OPENSSL_s390xcap.html" => [ "doc/man3/OPENSSL_s390xcap.pod" ], @@ -11994,12 +13970,18 @@ our %unified_info = ( "doc/html/man3/OSSL_CALLBACK.html" => [ "doc/man3/OSSL_CALLBACK.pod" ], + "doc/html/man3/OSSL_CMP_ATAV_set0.html" => [ + "doc/man3/OSSL_CMP_ATAV_set0.pod" + ], "doc/html/man3/OSSL_CMP_CTX_new.html" => [ "doc/man3/OSSL_CMP_CTX_new.pod" ], "doc/html/man3/OSSL_CMP_HDR_get0_transactionID.html" => [ "doc/man3/OSSL_CMP_HDR_get0_transactionID.pod" ], + "doc/html/man3/OSSL_CMP_ITAV_new_caCerts.html" => [ + "doc/man3/OSSL_CMP_ITAV_new_caCerts.pod" + ], "doc/html/man3/OSSL_CMP_ITAV_set0.html" => [ "doc/man3/OSSL_CMP_ITAV_set0.pod" ], @@ -12069,9 +14051,18 @@ our %unified_info = ( "doc/html/man3/OSSL_ENCODER_to_bio.html" => [ "doc/man3/OSSL_ENCODER_to_bio.pod" ], + "doc/html/man3/OSSL_ERR_STATE_save.html" => [ + "doc/man3/OSSL_ERR_STATE_save.pod" + ], "doc/html/man3/OSSL_ESS_check_signing_certs.html" => [ "doc/man3/OSSL_ESS_check_signing_certs.pod" ], + "doc/html/man3/OSSL_GENERAL_NAMES_print.html" => [ + "doc/man3/OSSL_GENERAL_NAMES_print.pod" + ], + "doc/html/man3/OSSL_HPKE_CTX_new.html" => [ + "doc/man3/OSSL_HPKE_CTX_new.pod" + ], "doc/html/man3/OSSL_HTTP_REQ_CTX.html" => [ "doc/man3/OSSL_HTTP_REQ_CTX.pod" ], @@ -12081,12 +14072,24 @@ our %unified_info = ( "doc/html/man3/OSSL_HTTP_transfer.html" => [ "doc/man3/OSSL_HTTP_transfer.pod" ], + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX.html" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX.pod" + ], + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX_print.html" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX_print.pod" + ], + "doc/html/man3/OSSL_INDICATOR_set_callback.html" => [ + "doc/man3/OSSL_INDICATOR_set_callback.pod" + ], "doc/html/man3/OSSL_ITEM.html" => [ "doc/man3/OSSL_ITEM.pod" ], "doc/html/man3/OSSL_LIB_CTX.html" => [ "doc/man3/OSSL_LIB_CTX.pod" ], + "doc/html/man3/OSSL_LIB_CTX_set_conf_diagnostics.html" => [ + "doc/man3/OSSL_LIB_CTX_set_conf_diagnostics.pod" + ], "doc/html/man3/OSSL_PARAM.html" => [ "doc/man3/OSSL_PARAM.pod" ], @@ -12102,9 +14105,15 @@ our %unified_info = ( "doc/html/man3/OSSL_PARAM_int.html" => [ "doc/man3/OSSL_PARAM_int.pod" ], + "doc/html/man3/OSSL_PARAM_print_to_bio.html" => [ + "doc/man3/OSSL_PARAM_print_to_bio.pod" + ], "doc/html/man3/OSSL_PROVIDER.html" => [ "doc/man3/OSSL_PROVIDER.pod" ], + "doc/html/man3/OSSL_QUIC_client_method.html" => [ + "doc/man3/OSSL_QUIC_client_method.pod" + ], "doc/html/man3/OSSL_SELF_TEST_new.html" => [ "doc/man3/OSSL_SELF_TEST_new.pod" ], @@ -12129,6 +14138,9 @@ our %unified_info = ( "doc/html/man3/OSSL_STORE_open.html" => [ "doc/man3/OSSL_STORE_open.pod" ], + "doc/html/man3/OSSL_sleep.html" => [ + "doc/man3/OSSL_sleep.pod" + ], "doc/html/man3/OSSL_trace_enabled.html" => [ "doc/man3/OSSL_trace_enabled.pod" ], @@ -12144,6 +14156,9 @@ our %unified_info = ( "doc/html/man3/OpenSSL_version.html" => [ "doc/man3/OpenSSL_version.pod" ], + "doc/html/man3/PBMAC1_get1_pbkdf2_param.html" => [ + "doc/man3/PBMAC1_get1_pbkdf2_param.pod" + ], "doc/html/man3/PEM_X509_INFO_read_bio_ex.html" => [ "doc/man3/PEM_X509_INFO_read_bio_ex.pod" ], @@ -12180,6 +14195,9 @@ our %unified_info = ( "doc/html/man3/PKCS12_SAFEBAG_get1_cert.html" => [ "doc/man3/PKCS12_SAFEBAG_get1_cert.pod" ], + "doc/html/man3/PKCS12_SAFEBAG_set0_attrs.html" => [ + "doc/man3/PKCS12_SAFEBAG_set0_attrs.pod" + ], "doc/html/man3/PKCS12_add1_attr_by_NID.html" => [ "doc/man3/PKCS12_add1_attr_by_NID.pod" ], @@ -12453,6 +14471,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set0_CA_list.html" => [ "doc/man3/SSL_CTX_set0_CA_list.pod" ], + "doc/html/man3/SSL_CTX_set1_cert_comp_preference.html" => [ + "doc/man3/SSL_CTX_set1_cert_comp_preference.pod" + ], "doc/html/man3/SSL_CTX_set1_curves.html" => [ "doc/man3/SSL_CTX_set1_curves.pod" ], @@ -12492,6 +14513,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_default_passwd_cb.html" => [ "doc/man3/SSL_CTX_set_default_passwd_cb.pod" ], + "doc/html/man3/SSL_CTX_set_domain_flags.html" => [ + "doc/man3/SSL_CTX_set_domain_flags.pod" + ], "doc/html/man3/SSL_CTX_set_generate_session_id.html" => [ "doc/man3/SSL_CTX_set_generate_session_id.pod" ], @@ -12513,6 +14537,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_msg_callback.html" => [ "doc/man3/SSL_CTX_set_msg_callback.pod" ], + "doc/html/man3/SSL_CTX_set_new_pending_conn_cb.html" => [ + "doc/man3/SSL_CTX_set_new_pending_conn_cb.pod" + ], "doc/html/man3/SSL_CTX_set_num_tickets.html" => [ "doc/man3/SSL_CTX_set_num_tickets.pod" ], @@ -12627,6 +14654,9 @@ our %unified_info = ( "doc/html/man3/SSL_accept.html" => [ "doc/man3/SSL_accept.pod" ], + "doc/html/man3/SSL_accept_stream.html" => [ + "doc/man3/SSL_accept_stream.pod" + ], "doc/html/man3/SSL_alert_type_string.html" => [ "doc/man3/SSL_alert_type_string.pod" ], @@ -12654,9 +14684,21 @@ our %unified_info = ( "doc/html/man3/SSL_free.html" => [ "doc/man3/SSL_free.pod" ], + "doc/html/man3/SSL_get0_connection.html" => [ + "doc/man3/SSL_get0_connection.pod" + ], + "doc/html/man3/SSL_get0_group_name.html" => [ + "doc/man3/SSL_get0_group_name.pod" + ], + "doc/html/man3/SSL_get0_peer_rpk.html" => [ + "doc/man3/SSL_get0_peer_rpk.pod" + ], "doc/html/man3/SSL_get0_peer_scts.html" => [ "doc/man3/SSL_get0_peer_scts.pod" ], + "doc/html/man3/SSL_get1_builtin_sigalgs.html" => [ + "doc/man3/SSL_get1_builtin_sigalgs.pod" + ], "doc/html/man3/SSL_get_SSL_CTX.html" => [ "doc/man3/SSL_get_SSL_CTX.pod" ], @@ -12672,6 +14714,9 @@ our %unified_info = ( "doc/html/man3/SSL_get_client_random.html" => [ "doc/man3/SSL_get_client_random.pod" ], + "doc/html/man3/SSL_get_conn_close_info.html" => [ + "doc/man3/SSL_get_conn_close_info.pod" + ], "doc/html/man3/SSL_get_current_cipher.html" => [ "doc/man3/SSL_get_current_cipher.pod" ], @@ -12681,12 +14726,18 @@ our %unified_info = ( "doc/html/man3/SSL_get_error.html" => [ "doc/man3/SSL_get_error.pod" ], + "doc/html/man3/SSL_get_event_timeout.html" => [ + "doc/man3/SSL_get_event_timeout.pod" + ], "doc/html/man3/SSL_get_extms_support.html" => [ "doc/man3/SSL_get_extms_support.pod" ], "doc/html/man3/SSL_get_fd.html" => [ "doc/man3/SSL_get_fd.pod" ], + "doc/html/man3/SSL_get_handshake_rtt.html" => [ + "doc/man3/SSL_get_handshake_rtt.pod" + ], "doc/html/man3/SSL_get_peer_cert_chain.html" => [ "doc/man3/SSL_get_peer_cert_chain.pod" ], @@ -12705,12 +14756,24 @@ our %unified_info = ( "doc/html/man3/SSL_get_rbio.html" => [ "doc/man3/SSL_get_rbio.pod" ], + "doc/html/man3/SSL_get_rpoll_descriptor.html" => [ + "doc/man3/SSL_get_rpoll_descriptor.pod" + ], "doc/html/man3/SSL_get_session.html" => [ "doc/man3/SSL_get_session.pod" ], "doc/html/man3/SSL_get_shared_sigalgs.html" => [ "doc/man3/SSL_get_shared_sigalgs.pod" ], + "doc/html/man3/SSL_get_stream_id.html" => [ + "doc/man3/SSL_get_stream_id.pod" + ], + "doc/html/man3/SSL_get_stream_read_state.html" => [ + "doc/man3/SSL_get_stream_read_state.pod" + ], + "doc/html/man3/SSL_get_value_uint.html" => [ + "doc/man3/SSL_get_value_uint.pod" + ], "doc/html/man3/SSL_get_verify_result.html" => [ "doc/man3/SSL_get_verify_result.pod" ], @@ -12720,9 +14783,15 @@ our %unified_info = ( "doc/html/man3/SSL_group_to_name.html" => [ "doc/man3/SSL_group_to_name.pod" ], + "doc/html/man3/SSL_handle_events.html" => [ + "doc/man3/SSL_handle_events.pod" + ], "doc/html/man3/SSL_in_init.html" => [ "doc/man3/SSL_in_init.pod" ], + "doc/html/man3/SSL_inject_net_dgram.html" => [ + "doc/man3/SSL_inject_net_dgram.pod" + ], "doc/html/man3/SSL_key_update.html" => [ "doc/man3/SSL_key_update.pod" ], @@ -12735,9 +14804,21 @@ our %unified_info = ( "doc/html/man3/SSL_new.html" => [ "doc/man3/SSL_new.pod" ], + "doc/html/man3/SSL_new_domain.html" => [ + "doc/man3/SSL_new_domain.pod" + ], + "doc/html/man3/SSL_new_listener.html" => [ + "doc/man3/SSL_new_listener.pod" + ], + "doc/html/man3/SSL_new_stream.html" => [ + "doc/man3/SSL_new_stream.pod" + ], "doc/html/man3/SSL_pending.html" => [ "doc/man3/SSL_pending.pod" ], + "doc/html/man3/SSL_poll.html" => [ + "doc/man3/SSL_poll.pod" + ], "doc/html/man3/SSL_read.html" => [ "doc/man3/SSL_read.pod" ], @@ -12753,24 +14834,45 @@ our %unified_info = ( "doc/html/man3/SSL_set1_host.html" => [ "doc/man3/SSL_set1_host.pod" ], + "doc/html/man3/SSL_set1_initial_peer_addr.html" => [ + "doc/man3/SSL_set1_initial_peer_addr.pod" + ], + "doc/html/man3/SSL_set1_server_cert_type.html" => [ + "doc/man3/SSL_set1_server_cert_type.pod" + ], "doc/html/man3/SSL_set_async_callback.html" => [ "doc/man3/SSL_set_async_callback.pod" ], "doc/html/man3/SSL_set_bio.html" => [ "doc/man3/SSL_set_bio.pod" ], + "doc/html/man3/SSL_set_blocking_mode.html" => [ + "doc/man3/SSL_set_blocking_mode.pod" + ], "doc/html/man3/SSL_set_connect_state.html" => [ "doc/man3/SSL_set_connect_state.pod" ], + "doc/html/man3/SSL_set_default_stream_mode.html" => [ + "doc/man3/SSL_set_default_stream_mode.pod" + ], "doc/html/man3/SSL_set_fd.html" => [ "doc/man3/SSL_set_fd.pod" ], + "doc/html/man3/SSL_set_incoming_stream_policy.html" => [ + "doc/man3/SSL_set_incoming_stream_policy.pod" + ], + "doc/html/man3/SSL_set_quic_tls_cbs.html" => [ + "doc/man3/SSL_set_quic_tls_cbs.pod" + ], "doc/html/man3/SSL_set_retry_verify.html" => [ "doc/man3/SSL_set_retry_verify.pod" ], "doc/html/man3/SSL_set_session.html" => [ "doc/man3/SSL_set_session.pod" ], + "doc/html/man3/SSL_set_session_secret_cb.html" => [ + "doc/man3/SSL_set_session_secret_cb.pod" + ], "doc/html/man3/SSL_set_shutdown.html" => [ "doc/man3/SSL_set_shutdown.pod" ], @@ -12783,6 +14885,12 @@ our %unified_info = ( "doc/html/man3/SSL_state_string.html" => [ "doc/man3/SSL_state_string.pod" ], + "doc/html/man3/SSL_stream_conclude.html" => [ + "doc/man3/SSL_stream_conclude.pod" + ], + "doc/html/man3/SSL_stream_reset.html" => [ + "doc/man3/SSL_stream_reset.pod" + ], "doc/html/man3/SSL_want.html" => [ "doc/man3/SSL_want.pod" ], @@ -12792,8 +14900,8 @@ our %unified_info = ( "doc/html/man3/TS_RESP_CTX_new.html" => [ "doc/man3/TS_RESP_CTX_new.pod" ], - "doc/html/man3/TS_VERIFY_CTX_set_certs.html" => [ - "doc/man3/TS_VERIFY_CTX_set_certs.pod" + "doc/html/man3/TS_VERIFY_CTX.html" => [ + "doc/man3/TS_VERIFY_CTX.pod" ], "doc/html/man3/UI_STRING.html" => [ "doc/man3/UI_STRING.pod" @@ -12813,6 +14921,21 @@ our %unified_info = ( "doc/html/man3/X509V3_set_ctx.html" => [ "doc/man3/X509V3_set_ctx.pod" ], + "doc/html/man3/X509_ACERT_add1_attr.html" => [ + "doc/man3/X509_ACERT_add1_attr.pod" + ], + "doc/html/man3/X509_ACERT_add_attr_nconf.html" => [ + "doc/man3/X509_ACERT_add_attr_nconf.pod" + ], + "doc/html/man3/X509_ACERT_get0_holder_baseCertId.html" => [ + "doc/man3/X509_ACERT_get0_holder_baseCertId.pod" + ], + "doc/html/man3/X509_ACERT_get_attr.html" => [ + "doc/man3/X509_ACERT_get_attr.pod" + ], + "doc/html/man3/X509_ACERT_print_ex.html" => [ + "doc/man3/X509_ACERT_print_ex.pod" + ], "doc/html/man3/X509_ALGOR_dup.html" => [ "doc/man3/X509_ALGOR_dup.pod" ], @@ -12861,6 +14984,9 @@ our %unified_info = ( "doc/html/man3/X509_SIG_get0.html" => [ "doc/man3/X509_SIG_get0.pod" ], + "doc/html/man3/X509_STORE_CTX_get_by_subject.html" => [ + "doc/man3/X509_STORE_CTX_get_by_subject.pod" + ], "doc/html/man3/X509_STORE_CTX_get_error.html" => [ "doc/man3/X509_STORE_CTX_get_error.pod" ], @@ -12927,6 +15053,9 @@ our %unified_info = ( "doc/html/man3/X509_get0_uids.html" => [ "doc/man3/X509_get0_uids.pod" ], + "doc/html/man3/X509_get_default_cert_file.html" => [ + "doc/man3/X509_get_default_cert_file.pod" + ], "doc/html/man3/X509_get_extension_flags.html" => [ "doc/man3/X509_get_extension_flags.pod" ], @@ -13050,9 +15179,15 @@ our %unified_info = ( "doc/html/man7/EVP_CIPHER-SM4.html" => [ "doc/man7/EVP_CIPHER-SM4.pod" ], + "doc/html/man7/EVP_KDF-ARGON2.html" => [ + "doc/man7/EVP_KDF-ARGON2.pod" + ], "doc/html/man7/EVP_KDF-HKDF.html" => [ "doc/man7/EVP_KDF-HKDF.pod" ], + "doc/html/man7/EVP_KDF-HMAC-DRBG.html" => [ + "doc/man7/EVP_KDF-HMAC-DRBG.pod" + ], "doc/html/man7/EVP_KDF-KB.html" => [ "doc/man7/EVP_KDF-KB.pod" ], @@ -13068,6 +15203,9 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-PKCS12KDF.html" => [ "doc/man7/EVP_KDF-PKCS12KDF.pod" ], + "doc/html/man7/EVP_KDF-PVKKDF.html" => [ + "doc/man7/EVP_KDF-PVKKDF.pod" + ], "doc/html/man7/EVP_KDF-SCRYPT.html" => [ "doc/man7/EVP_KDF-SCRYPT.pod" ], @@ -13092,9 +15230,18 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-X963.html" => [ "doc/man7/EVP_KDF-X963.pod" ], + "doc/html/man7/EVP_KEM-EC.html" => [ + "doc/man7/EVP_KEM-EC.pod" + ], + "doc/html/man7/EVP_KEM-ML-KEM.html" => [ + "doc/man7/EVP_KEM-ML-KEM.pod" + ], "doc/html/man7/EVP_KEM-RSA.html" => [ "doc/man7/EVP_KEM-RSA.pod" ], + "doc/html/man7/EVP_KEM-X25519.html" => [ + "doc/man7/EVP_KEM-X25519.pod" + ], "doc/html/man7/EVP_KEYEXCH-DH.html" => [ "doc/man7/EVP_KEYEXCH-DH.pod" ], @@ -13128,6 +15275,9 @@ our %unified_info = ( "doc/html/man7/EVP_MD-BLAKE2.html" => [ "doc/man7/EVP_MD-BLAKE2.pod" ], + "doc/html/man7/EVP_MD-KECCAK.html" => [ + "doc/man7/EVP_MD-KECCAK.pod" + ], "doc/html/man7/EVP_MD-MD2.html" => [ "doc/man7/EVP_MD-MD2.pod" ], @@ -13185,15 +15335,27 @@ our %unified_info = ( "doc/html/man7/EVP_PKEY-HMAC.html" => [ "doc/man7/EVP_PKEY-HMAC.pod" ], + "doc/html/man7/EVP_PKEY-ML-DSA.html" => [ + "doc/man7/EVP_PKEY-ML-DSA.pod" + ], + "doc/html/man7/EVP_PKEY-ML-KEM.html" => [ + "doc/man7/EVP_PKEY-ML-KEM.pod" + ], "doc/html/man7/EVP_PKEY-RSA.html" => [ "doc/man7/EVP_PKEY-RSA.pod" ], + "doc/html/man7/EVP_PKEY-SLH-DSA.html" => [ + "doc/man7/EVP_PKEY-SLH-DSA.pod" + ], "doc/html/man7/EVP_PKEY-SM2.html" => [ "doc/man7/EVP_PKEY-SM2.pod" ], "doc/html/man7/EVP_PKEY-X25519.html" => [ "doc/man7/EVP_PKEY-X25519.pod" ], + "doc/html/man7/EVP_RAND-CRNG-TEST.html" => [ + "doc/man7/EVP_RAND-CRNG-TEST.pod" + ], "doc/html/man7/EVP_RAND-CTR-DRBG.html" => [ "doc/man7/EVP_RAND-CTR-DRBG.pod" ], @@ -13203,6 +15365,9 @@ our %unified_info = ( "doc/html/man7/EVP_RAND-HMAC-DRBG.html" => [ "doc/man7/EVP_RAND-HMAC-DRBG.pod" ], + "doc/html/man7/EVP_RAND-JITTER.html" => [ + "doc/man7/EVP_RAND-JITTER.pod" + ], "doc/html/man7/EVP_RAND-SEED-SRC.html" => [ "doc/man7/EVP_RAND-SEED-SRC.pod" ], @@ -13224,9 +15389,15 @@ our %unified_info = ( "doc/html/man7/EVP_SIGNATURE-HMAC.html" => [ "doc/man7/EVP_SIGNATURE-HMAC.pod" ], + "doc/html/man7/EVP_SIGNATURE-ML-DSA.html" => [ + "doc/man7/EVP_SIGNATURE-ML-DSA.pod" + ], "doc/html/man7/EVP_SIGNATURE-RSA.html" => [ "doc/man7/EVP_SIGNATURE-RSA.pod" ], + "doc/html/man7/EVP_SIGNATURE-SLH-DSA.html" => [ + "doc/man7/EVP_SIGNATURE-SLH-DSA.pod" + ], "doc/html/man7/OSSL_PROVIDER-FIPS.html" => [ "doc/man7/OSSL_PROVIDER-FIPS.pod" ], @@ -13242,6 +15413,9 @@ our %unified_info = ( "doc/html/man7/OSSL_PROVIDER-null.html" => [ "doc/man7/OSSL_PROVIDER-null.pod" ], + "doc/html/man7/OSSL_STORE-winstore.html" => [ + "doc/man7/OSSL_STORE-winstore.pod" + ], "doc/html/man7/RAND.html" => [ "doc/man7/RAND.pod" ], @@ -13254,9 +15428,6 @@ our %unified_info = ( "doc/html/man7/bio.html" => [ "doc/man7/bio.pod" ], - "doc/html/man7/crypto.html" => [ - "doc/man7/crypto.pod" - ], "doc/html/man7/ct.html" => [ "doc/man7/ct.pod" ], @@ -13287,9 +15458,6 @@ our %unified_info = ( "doc/html/man7/life_cycle-rand.html" => [ "doc/man7/life_cycle-rand.pod" ], - "doc/html/man7/migration_guide.html" => [ - "doc/man7/migration_guide.pod" - ], "doc/html/man7/openssl-core.h.html" => [ "doc/man7/openssl-core.h.pod" ], @@ -13305,12 +15473,66 @@ our %unified_info = ( "doc/html/man7/openssl-glossary.html" => [ "doc/man7/openssl-glossary.pod" ], + "doc/html/man7/openssl-qlog.html" => [ + "doc/man7/openssl-qlog.pod" + ], + "doc/html/man7/openssl-quic-concurrency.html" => [ + "doc/man7/openssl-quic-concurrency.pod" + ], + "doc/html/man7/openssl-quic.html" => [ + "doc/man7/openssl-quic.pod" + ], "doc/html/man7/openssl-threads.html" => [ "doc/man7/openssl-threads.pod" ], "doc/html/man7/openssl_user_macros.html" => [ "doc/man7/openssl_user_macros.pod" ], + "doc/html/man7/ossl-guide-introduction.html" => [ + "doc/man7/ossl-guide-introduction.pod" + ], + "doc/html/man7/ossl-guide-libcrypto-introduction.html" => [ + "doc/man7/ossl-guide-libcrypto-introduction.pod" + ], + "doc/html/man7/ossl-guide-libraries-introduction.html" => [ + "doc/man7/ossl-guide-libraries-introduction.pod" + ], + "doc/html/man7/ossl-guide-libssl-introduction.html" => [ + "doc/man7/ossl-guide-libssl-introduction.pod" + ], + "doc/html/man7/ossl-guide-migration.html" => [ + "doc/man7/ossl-guide-migration.pod" + ], + "doc/html/man7/ossl-guide-quic-client-block.html" => [ + "doc/man7/ossl-guide-quic-client-block.pod" + ], + "doc/html/man7/ossl-guide-quic-client-non-block.html" => [ + "doc/man7/ossl-guide-quic-client-non-block.pod" + ], + "doc/html/man7/ossl-guide-quic-introduction.html" => [ + "doc/man7/ossl-guide-quic-introduction.pod" + ], + "doc/html/man7/ossl-guide-quic-multi-stream.html" => [ + "doc/man7/ossl-guide-quic-multi-stream.pod" + ], + "doc/html/man7/ossl-guide-quic-server-block.html" => [ + "doc/man7/ossl-guide-quic-server-block.pod" + ], + "doc/html/man7/ossl-guide-quic-server-non-block.html" => [ + "doc/man7/ossl-guide-quic-server-non-block.pod" + ], + "doc/html/man7/ossl-guide-tls-client-block.html" => [ + "doc/man7/ossl-guide-tls-client-block.pod" + ], + "doc/html/man7/ossl-guide-tls-client-non-block.html" => [ + "doc/man7/ossl-guide-tls-client-non-block.pod" + ], + "doc/html/man7/ossl-guide-tls-introduction.html" => [ + "doc/man7/ossl-guide-tls-introduction.pod" + ], + "doc/html/man7/ossl-guide-tls-server-block.html" => [ + "doc/man7/ossl-guide-tls-server-block.pod" + ], "doc/html/man7/ossl_store-file.html" => [ "doc/man7/ossl_store-file.pod" ], @@ -13365,6 +15587,9 @@ our %unified_info = ( "doc/html/man7/provider-signature.html" => [ "doc/man7/provider-signature.pod" ], + "doc/html/man7/provider-skeymgmt.html" => [ + "doc/man7/provider-skeymgmt.pod" + ], "doc/html/man7/provider-storemgmt.html" => [ "doc/man7/provider-storemgmt.pod" ], @@ -13374,9 +15599,6 @@ our %unified_info = ( "doc/html/man7/proxy-certificates.html" => [ "doc/man7/proxy-certificates.pod" ], - "doc/html/man7/ssl.html" => [ - "doc/man7/ssl.pod" - ], "doc/html/man7/x509.html" => [ "doc/man7/x509.pod" ], @@ -13524,6 +15746,9 @@ our %unified_info = ( "doc/man/man1/openssl-sess_id.1" => [ "doc/man1/openssl-sess_id.pod" ], + "doc/man/man1/openssl-skeyutl.1" => [ + "doc/man1/openssl-skeyutl.pod" + ], "doc/man/man1/openssl-smime.1" => [ "doc/man1/openssl-smime.pod" ], @@ -13665,6 +15890,9 @@ our %unified_info = ( "doc/man/man3/BIO_get_ex_new_index.3" => [ "doc/man3/BIO_get_ex_new_index.pod" ], + "doc/man/man3/BIO_get_rpoll_descriptor.3" => [ + "doc/man3/BIO_get_rpoll_descriptor.pod" + ], "doc/man/man3/BIO_meth_new.3" => [ "doc/man3/BIO_meth_new.pod" ], @@ -13701,6 +15929,9 @@ our %unified_info = ( "doc/man/man3/BIO_s_datagram.3" => [ "doc/man3/BIO_s_datagram.pod" ], + "doc/man/man3/BIO_s_dgram_pair.3" => [ + "doc/man3/BIO_s_dgram_pair.pod" + ], "doc/man/man3/BIO_s_fd.3" => [ "doc/man3/BIO_s_fd.pod" ], @@ -13716,6 +15947,9 @@ our %unified_info = ( "doc/man/man3/BIO_s_socket.3" => [ "doc/man3/BIO_s_socket.pod" ], + "doc/man/man3/BIO_sendmmsg.3" => [ + "doc/man3/BIO_sendmmsg.pod" + ], "doc/man/man3/BIO_set_callback.3" => [ "doc/man3/BIO_set_callback.pod" ], @@ -13788,6 +16022,9 @@ our %unified_info = ( "doc/man/man3/BUF_MEM_new.3" => [ "doc/man3/BUF_MEM_new.pod" ], + "doc/man/man3/CMAC_CTX.3" => [ + "doc/man3/CMAC_CTX.pod" + ], "doc/man/man3/CMS_EncryptedData_decrypt.3" => [ "doc/man3/CMS_EncryptedData_decrypt.pod" ], @@ -13854,6 +16091,9 @@ our %unified_info = ( "doc/man/man3/CMS_verify_receipt.3" => [ "doc/man3/CMS_verify_receipt.pod" ], + "doc/man/man3/COMP_CTX_new.3" => [ + "doc/man3/COMP_CTX_new.pod" + ], "doc/man/man3/CONF_modules_free.3" => [ "doc/man3/CONF_modules_free.pod" ], @@ -13953,6 +16193,12 @@ our %unified_info = ( "doc/man/man3/DTLS_set_timer_cb.3" => [ "doc/man3/DTLS_set_timer_cb.pod" ], + "doc/man/man3/DTLSv1_get_timeout.3" => [ + "doc/man3/DTLSv1_get_timeout.pod" + ], + "doc/man/man3/DTLSv1_handle_timeout.3" => [ + "doc/man3/DTLSv1_handle_timeout.pod" + ], "doc/man/man3/DTLSv1_listen.3" => [ "doc/man3/DTLSv1_listen.pod" ], @@ -14091,6 +16337,9 @@ our %unified_info = ( "doc/man/man3/EVP_PKEY_CTX_get0_pkey.3" => [ "doc/man3/EVP_PKEY_CTX_get0_pkey.pod" ], + "doc/man/man3/EVP_PKEY_CTX_get_algor.3" => [ + "doc/man3/EVP_PKEY_CTX_get_algor.pod" + ], "doc/man/man3/EVP_PKEY_CTX_new.3" => [ "doc/man3/EVP_PKEY_CTX_new.pod" ], @@ -14208,6 +16457,12 @@ our %unified_info = ( "doc/man/man3/EVP_SIGNATURE.3" => [ "doc/man3/EVP_SIGNATURE.pod" ], + "doc/man/man3/EVP_SKEY.3" => [ + "doc/man3/EVP_SKEY.pod" + ], + "doc/man/man3/EVP_SKEYMGMT.3" => [ + "doc/man3/EVP_SKEYMGMT.pod" + ], "doc/man/man3/EVP_SealInit.3" => [ "doc/man3/EVP_SealInit.pod" ], @@ -14295,6 +16550,9 @@ our %unified_info = ( "doc/man/man3/EVP_whirlpool.3" => [ "doc/man3/EVP_whirlpool.pod" ], + "doc/man/man3/GENERAL_NAME.3" => [ + "doc/man3/GENERAL_NAME.pod" + ], "doc/man/man3/HMAC.3" => [ "doc/man3/HMAC.pod" ], @@ -14367,9 +16625,15 @@ our %unified_info = ( "doc/man/man3/OPENSSL_load_builtin_modules.3" => [ "doc/man3/OPENSSL_load_builtin_modules.pod" ], + "doc/man/man3/OPENSSL_load_u16_le.3" => [ + "doc/man3/OPENSSL_load_u16_le.pod" + ], "doc/man/man3/OPENSSL_malloc.3" => [ "doc/man3/OPENSSL_malloc.pod" ], + "doc/man/man3/OPENSSL_riscvcap.3" => [ + "doc/man3/OPENSSL_riscvcap.pod" + ], "doc/man/man3/OPENSSL_s390xcap.3" => [ "doc/man3/OPENSSL_s390xcap.pod" ], @@ -14385,12 +16649,18 @@ our %unified_info = ( "doc/man/man3/OSSL_CALLBACK.3" => [ "doc/man3/OSSL_CALLBACK.pod" ], + "doc/man/man3/OSSL_CMP_ATAV_set0.3" => [ + "doc/man3/OSSL_CMP_ATAV_set0.pod" + ], "doc/man/man3/OSSL_CMP_CTX_new.3" => [ "doc/man3/OSSL_CMP_CTX_new.pod" ], "doc/man/man3/OSSL_CMP_HDR_get0_transactionID.3" => [ "doc/man3/OSSL_CMP_HDR_get0_transactionID.pod" ], + "doc/man/man3/OSSL_CMP_ITAV_new_caCerts.3" => [ + "doc/man3/OSSL_CMP_ITAV_new_caCerts.pod" + ], "doc/man/man3/OSSL_CMP_ITAV_set0.3" => [ "doc/man3/OSSL_CMP_ITAV_set0.pod" ], @@ -14460,9 +16730,18 @@ our %unified_info = ( "doc/man/man3/OSSL_ENCODER_to_bio.3" => [ "doc/man3/OSSL_ENCODER_to_bio.pod" ], + "doc/man/man3/OSSL_ERR_STATE_save.3" => [ + "doc/man3/OSSL_ERR_STATE_save.pod" + ], "doc/man/man3/OSSL_ESS_check_signing_certs.3" => [ "doc/man3/OSSL_ESS_check_signing_certs.pod" ], + "doc/man/man3/OSSL_GENERAL_NAMES_print.3" => [ + "doc/man3/OSSL_GENERAL_NAMES_print.pod" + ], + "doc/man/man3/OSSL_HPKE_CTX_new.3" => [ + "doc/man3/OSSL_HPKE_CTX_new.pod" + ], "doc/man/man3/OSSL_HTTP_REQ_CTX.3" => [ "doc/man3/OSSL_HTTP_REQ_CTX.pod" ], @@ -14472,12 +16751,24 @@ our %unified_info = ( "doc/man/man3/OSSL_HTTP_transfer.3" => [ "doc/man3/OSSL_HTTP_transfer.pod" ], + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX.3" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX.pod" + ], + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX_print.3" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX_print.pod" + ], + "doc/man/man3/OSSL_INDICATOR_set_callback.3" => [ + "doc/man3/OSSL_INDICATOR_set_callback.pod" + ], "doc/man/man3/OSSL_ITEM.3" => [ "doc/man3/OSSL_ITEM.pod" ], "doc/man/man3/OSSL_LIB_CTX.3" => [ "doc/man3/OSSL_LIB_CTX.pod" ], + "doc/man/man3/OSSL_LIB_CTX_set_conf_diagnostics.3" => [ + "doc/man3/OSSL_LIB_CTX_set_conf_diagnostics.pod" + ], "doc/man/man3/OSSL_PARAM.3" => [ "doc/man3/OSSL_PARAM.pod" ], @@ -14493,9 +16784,15 @@ our %unified_info = ( "doc/man/man3/OSSL_PARAM_int.3" => [ "doc/man3/OSSL_PARAM_int.pod" ], + "doc/man/man3/OSSL_PARAM_print_to_bio.3" => [ + "doc/man3/OSSL_PARAM_print_to_bio.pod" + ], "doc/man/man3/OSSL_PROVIDER.3" => [ "doc/man3/OSSL_PROVIDER.pod" ], + "doc/man/man3/OSSL_QUIC_client_method.3" => [ + "doc/man3/OSSL_QUIC_client_method.pod" + ], "doc/man/man3/OSSL_SELF_TEST_new.3" => [ "doc/man3/OSSL_SELF_TEST_new.pod" ], @@ -14520,6 +16817,9 @@ our %unified_info = ( "doc/man/man3/OSSL_STORE_open.3" => [ "doc/man3/OSSL_STORE_open.pod" ], + "doc/man/man3/OSSL_sleep.3" => [ + "doc/man3/OSSL_sleep.pod" + ], "doc/man/man3/OSSL_trace_enabled.3" => [ "doc/man3/OSSL_trace_enabled.pod" ], @@ -14535,6 +16835,9 @@ our %unified_info = ( "doc/man/man3/OpenSSL_version.3" => [ "doc/man3/OpenSSL_version.pod" ], + "doc/man/man3/PBMAC1_get1_pbkdf2_param.3" => [ + "doc/man3/PBMAC1_get1_pbkdf2_param.pod" + ], "doc/man/man3/PEM_X509_INFO_read_bio_ex.3" => [ "doc/man3/PEM_X509_INFO_read_bio_ex.pod" ], @@ -14571,6 +16874,9 @@ our %unified_info = ( "doc/man/man3/PKCS12_SAFEBAG_get1_cert.3" => [ "doc/man3/PKCS12_SAFEBAG_get1_cert.pod" ], + "doc/man/man3/PKCS12_SAFEBAG_set0_attrs.3" => [ + "doc/man3/PKCS12_SAFEBAG_set0_attrs.pod" + ], "doc/man/man3/PKCS12_add1_attr_by_NID.3" => [ "doc/man3/PKCS12_add1_attr_by_NID.pod" ], @@ -14844,6 +17150,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set0_CA_list.3" => [ "doc/man3/SSL_CTX_set0_CA_list.pod" ], + "doc/man/man3/SSL_CTX_set1_cert_comp_preference.3" => [ + "doc/man3/SSL_CTX_set1_cert_comp_preference.pod" + ], "doc/man/man3/SSL_CTX_set1_curves.3" => [ "doc/man3/SSL_CTX_set1_curves.pod" ], @@ -14883,6 +17192,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_default_passwd_cb.3" => [ "doc/man3/SSL_CTX_set_default_passwd_cb.pod" ], + "doc/man/man3/SSL_CTX_set_domain_flags.3" => [ + "doc/man3/SSL_CTX_set_domain_flags.pod" + ], "doc/man/man3/SSL_CTX_set_generate_session_id.3" => [ "doc/man3/SSL_CTX_set_generate_session_id.pod" ], @@ -14904,6 +17216,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_msg_callback.3" => [ "doc/man3/SSL_CTX_set_msg_callback.pod" ], + "doc/man/man3/SSL_CTX_set_new_pending_conn_cb.3" => [ + "doc/man3/SSL_CTX_set_new_pending_conn_cb.pod" + ], "doc/man/man3/SSL_CTX_set_num_tickets.3" => [ "doc/man3/SSL_CTX_set_num_tickets.pod" ], @@ -15018,6 +17333,9 @@ our %unified_info = ( "doc/man/man3/SSL_accept.3" => [ "doc/man3/SSL_accept.pod" ], + "doc/man/man3/SSL_accept_stream.3" => [ + "doc/man3/SSL_accept_stream.pod" + ], "doc/man/man3/SSL_alert_type_string.3" => [ "doc/man3/SSL_alert_type_string.pod" ], @@ -15045,9 +17363,21 @@ our %unified_info = ( "doc/man/man3/SSL_free.3" => [ "doc/man3/SSL_free.pod" ], + "doc/man/man3/SSL_get0_connection.3" => [ + "doc/man3/SSL_get0_connection.pod" + ], + "doc/man/man3/SSL_get0_group_name.3" => [ + "doc/man3/SSL_get0_group_name.pod" + ], + "doc/man/man3/SSL_get0_peer_rpk.3" => [ + "doc/man3/SSL_get0_peer_rpk.pod" + ], "doc/man/man3/SSL_get0_peer_scts.3" => [ "doc/man3/SSL_get0_peer_scts.pod" ], + "doc/man/man3/SSL_get1_builtin_sigalgs.3" => [ + "doc/man3/SSL_get1_builtin_sigalgs.pod" + ], "doc/man/man3/SSL_get_SSL_CTX.3" => [ "doc/man3/SSL_get_SSL_CTX.pod" ], @@ -15063,6 +17393,9 @@ our %unified_info = ( "doc/man/man3/SSL_get_client_random.3" => [ "doc/man3/SSL_get_client_random.pod" ], + "doc/man/man3/SSL_get_conn_close_info.3" => [ + "doc/man3/SSL_get_conn_close_info.pod" + ], "doc/man/man3/SSL_get_current_cipher.3" => [ "doc/man3/SSL_get_current_cipher.pod" ], @@ -15072,12 +17405,18 @@ our %unified_info = ( "doc/man/man3/SSL_get_error.3" => [ "doc/man3/SSL_get_error.pod" ], + "doc/man/man3/SSL_get_event_timeout.3" => [ + "doc/man3/SSL_get_event_timeout.pod" + ], "doc/man/man3/SSL_get_extms_support.3" => [ "doc/man3/SSL_get_extms_support.pod" ], "doc/man/man3/SSL_get_fd.3" => [ "doc/man3/SSL_get_fd.pod" ], + "doc/man/man3/SSL_get_handshake_rtt.3" => [ + "doc/man3/SSL_get_handshake_rtt.pod" + ], "doc/man/man3/SSL_get_peer_cert_chain.3" => [ "doc/man3/SSL_get_peer_cert_chain.pod" ], @@ -15096,12 +17435,24 @@ our %unified_info = ( "doc/man/man3/SSL_get_rbio.3" => [ "doc/man3/SSL_get_rbio.pod" ], + "doc/man/man3/SSL_get_rpoll_descriptor.3" => [ + "doc/man3/SSL_get_rpoll_descriptor.pod" + ], "doc/man/man3/SSL_get_session.3" => [ "doc/man3/SSL_get_session.pod" ], "doc/man/man3/SSL_get_shared_sigalgs.3" => [ "doc/man3/SSL_get_shared_sigalgs.pod" ], + "doc/man/man3/SSL_get_stream_id.3" => [ + "doc/man3/SSL_get_stream_id.pod" + ], + "doc/man/man3/SSL_get_stream_read_state.3" => [ + "doc/man3/SSL_get_stream_read_state.pod" + ], + "doc/man/man3/SSL_get_value_uint.3" => [ + "doc/man3/SSL_get_value_uint.pod" + ], "doc/man/man3/SSL_get_verify_result.3" => [ "doc/man3/SSL_get_verify_result.pod" ], @@ -15111,9 +17462,15 @@ our %unified_info = ( "doc/man/man3/SSL_group_to_name.3" => [ "doc/man3/SSL_group_to_name.pod" ], + "doc/man/man3/SSL_handle_events.3" => [ + "doc/man3/SSL_handle_events.pod" + ], "doc/man/man3/SSL_in_init.3" => [ "doc/man3/SSL_in_init.pod" ], + "doc/man/man3/SSL_inject_net_dgram.3" => [ + "doc/man3/SSL_inject_net_dgram.pod" + ], "doc/man/man3/SSL_key_update.3" => [ "doc/man3/SSL_key_update.pod" ], @@ -15126,9 +17483,21 @@ our %unified_info = ( "doc/man/man3/SSL_new.3" => [ "doc/man3/SSL_new.pod" ], + "doc/man/man3/SSL_new_domain.3" => [ + "doc/man3/SSL_new_domain.pod" + ], + "doc/man/man3/SSL_new_listener.3" => [ + "doc/man3/SSL_new_listener.pod" + ], + "doc/man/man3/SSL_new_stream.3" => [ + "doc/man3/SSL_new_stream.pod" + ], "doc/man/man3/SSL_pending.3" => [ "doc/man3/SSL_pending.pod" ], + "doc/man/man3/SSL_poll.3" => [ + "doc/man3/SSL_poll.pod" + ], "doc/man/man3/SSL_read.3" => [ "doc/man3/SSL_read.pod" ], @@ -15144,24 +17513,45 @@ our %unified_info = ( "doc/man/man3/SSL_set1_host.3" => [ "doc/man3/SSL_set1_host.pod" ], + "doc/man/man3/SSL_set1_initial_peer_addr.3" => [ + "doc/man3/SSL_set1_initial_peer_addr.pod" + ], + "doc/man/man3/SSL_set1_server_cert_type.3" => [ + "doc/man3/SSL_set1_server_cert_type.pod" + ], "doc/man/man3/SSL_set_async_callback.3" => [ "doc/man3/SSL_set_async_callback.pod" ], "doc/man/man3/SSL_set_bio.3" => [ "doc/man3/SSL_set_bio.pod" ], + "doc/man/man3/SSL_set_blocking_mode.3" => [ + "doc/man3/SSL_set_blocking_mode.pod" + ], "doc/man/man3/SSL_set_connect_state.3" => [ "doc/man3/SSL_set_connect_state.pod" ], + "doc/man/man3/SSL_set_default_stream_mode.3" => [ + "doc/man3/SSL_set_default_stream_mode.pod" + ], "doc/man/man3/SSL_set_fd.3" => [ "doc/man3/SSL_set_fd.pod" ], + "doc/man/man3/SSL_set_incoming_stream_policy.3" => [ + "doc/man3/SSL_set_incoming_stream_policy.pod" + ], + "doc/man/man3/SSL_set_quic_tls_cbs.3" => [ + "doc/man3/SSL_set_quic_tls_cbs.pod" + ], "doc/man/man3/SSL_set_retry_verify.3" => [ "doc/man3/SSL_set_retry_verify.pod" ], "doc/man/man3/SSL_set_session.3" => [ "doc/man3/SSL_set_session.pod" ], + "doc/man/man3/SSL_set_session_secret_cb.3" => [ + "doc/man3/SSL_set_session_secret_cb.pod" + ], "doc/man/man3/SSL_set_shutdown.3" => [ "doc/man3/SSL_set_shutdown.pod" ], @@ -15174,6 +17564,12 @@ our %unified_info = ( "doc/man/man3/SSL_state_string.3" => [ "doc/man3/SSL_state_string.pod" ], + "doc/man/man3/SSL_stream_conclude.3" => [ + "doc/man3/SSL_stream_conclude.pod" + ], + "doc/man/man3/SSL_stream_reset.3" => [ + "doc/man3/SSL_stream_reset.pod" + ], "doc/man/man3/SSL_want.3" => [ "doc/man3/SSL_want.pod" ], @@ -15183,8 +17579,8 @@ our %unified_info = ( "doc/man/man3/TS_RESP_CTX_new.3" => [ "doc/man3/TS_RESP_CTX_new.pod" ], - "doc/man/man3/TS_VERIFY_CTX_set_certs.3" => [ - "doc/man3/TS_VERIFY_CTX_set_certs.pod" + "doc/man/man3/TS_VERIFY_CTX.3" => [ + "doc/man3/TS_VERIFY_CTX.pod" ], "doc/man/man3/UI_STRING.3" => [ "doc/man3/UI_STRING.pod" @@ -15204,6 +17600,21 @@ our %unified_info = ( "doc/man/man3/X509V3_set_ctx.3" => [ "doc/man3/X509V3_set_ctx.pod" ], + "doc/man/man3/X509_ACERT_add1_attr.3" => [ + "doc/man3/X509_ACERT_add1_attr.pod" + ], + "doc/man/man3/X509_ACERT_add_attr_nconf.3" => [ + "doc/man3/X509_ACERT_add_attr_nconf.pod" + ], + "doc/man/man3/X509_ACERT_get0_holder_baseCertId.3" => [ + "doc/man3/X509_ACERT_get0_holder_baseCertId.pod" + ], + "doc/man/man3/X509_ACERT_get_attr.3" => [ + "doc/man3/X509_ACERT_get_attr.pod" + ], + "doc/man/man3/X509_ACERT_print_ex.3" => [ + "doc/man3/X509_ACERT_print_ex.pod" + ], "doc/man/man3/X509_ALGOR_dup.3" => [ "doc/man3/X509_ALGOR_dup.pod" ], @@ -15252,6 +17663,9 @@ our %unified_info = ( "doc/man/man3/X509_SIG_get0.3" => [ "doc/man3/X509_SIG_get0.pod" ], + "doc/man/man3/X509_STORE_CTX_get_by_subject.3" => [ + "doc/man3/X509_STORE_CTX_get_by_subject.pod" + ], "doc/man/man3/X509_STORE_CTX_get_error.3" => [ "doc/man3/X509_STORE_CTX_get_error.pod" ], @@ -15318,6 +17732,9 @@ our %unified_info = ( "doc/man/man3/X509_get0_uids.3" => [ "doc/man3/X509_get0_uids.pod" ], + "doc/man/man3/X509_get_default_cert_file.3" => [ + "doc/man3/X509_get_default_cert_file.pod" + ], "doc/man/man3/X509_get_extension_flags.3" => [ "doc/man3/X509_get_extension_flags.pod" ], @@ -15441,9 +17858,15 @@ our %unified_info = ( "doc/man/man7/EVP_CIPHER-SM4.7" => [ "doc/man7/EVP_CIPHER-SM4.pod" ], + "doc/man/man7/EVP_KDF-ARGON2.7" => [ + "doc/man7/EVP_KDF-ARGON2.pod" + ], "doc/man/man7/EVP_KDF-HKDF.7" => [ "doc/man7/EVP_KDF-HKDF.pod" ], + "doc/man/man7/EVP_KDF-HMAC-DRBG.7" => [ + "doc/man7/EVP_KDF-HMAC-DRBG.pod" + ], "doc/man/man7/EVP_KDF-KB.7" => [ "doc/man7/EVP_KDF-KB.pod" ], @@ -15459,6 +17882,9 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-PKCS12KDF.7" => [ "doc/man7/EVP_KDF-PKCS12KDF.pod" ], + "doc/man/man7/EVP_KDF-PVKKDF.7" => [ + "doc/man7/EVP_KDF-PVKKDF.pod" + ], "doc/man/man7/EVP_KDF-SCRYPT.7" => [ "doc/man7/EVP_KDF-SCRYPT.pod" ], @@ -15483,9 +17909,18 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-X963.7" => [ "doc/man7/EVP_KDF-X963.pod" ], + "doc/man/man7/EVP_KEM-EC.7" => [ + "doc/man7/EVP_KEM-EC.pod" + ], + "doc/man/man7/EVP_KEM-ML-KEM.7" => [ + "doc/man7/EVP_KEM-ML-KEM.pod" + ], "doc/man/man7/EVP_KEM-RSA.7" => [ "doc/man7/EVP_KEM-RSA.pod" ], + "doc/man/man7/EVP_KEM-X25519.7" => [ + "doc/man7/EVP_KEM-X25519.pod" + ], "doc/man/man7/EVP_KEYEXCH-DH.7" => [ "doc/man7/EVP_KEYEXCH-DH.pod" ], @@ -15519,6 +17954,9 @@ our %unified_info = ( "doc/man/man7/EVP_MD-BLAKE2.7" => [ "doc/man7/EVP_MD-BLAKE2.pod" ], + "doc/man/man7/EVP_MD-KECCAK.7" => [ + "doc/man7/EVP_MD-KECCAK.pod" + ], "doc/man/man7/EVP_MD-MD2.7" => [ "doc/man7/EVP_MD-MD2.pod" ], @@ -15576,15 +18014,27 @@ our %unified_info = ( "doc/man/man7/EVP_PKEY-HMAC.7" => [ "doc/man7/EVP_PKEY-HMAC.pod" ], + "doc/man/man7/EVP_PKEY-ML-DSA.7" => [ + "doc/man7/EVP_PKEY-ML-DSA.pod" + ], + "doc/man/man7/EVP_PKEY-ML-KEM.7" => [ + "doc/man7/EVP_PKEY-ML-KEM.pod" + ], "doc/man/man7/EVP_PKEY-RSA.7" => [ "doc/man7/EVP_PKEY-RSA.pod" ], + "doc/man/man7/EVP_PKEY-SLH-DSA.7" => [ + "doc/man7/EVP_PKEY-SLH-DSA.pod" + ], "doc/man/man7/EVP_PKEY-SM2.7" => [ "doc/man7/EVP_PKEY-SM2.pod" ], "doc/man/man7/EVP_PKEY-X25519.7" => [ "doc/man7/EVP_PKEY-X25519.pod" ], + "doc/man/man7/EVP_RAND-CRNG-TEST.7" => [ + "doc/man7/EVP_RAND-CRNG-TEST.pod" + ], "doc/man/man7/EVP_RAND-CTR-DRBG.7" => [ "doc/man7/EVP_RAND-CTR-DRBG.pod" ], @@ -15594,6 +18044,9 @@ our %unified_info = ( "doc/man/man7/EVP_RAND-HMAC-DRBG.7" => [ "doc/man7/EVP_RAND-HMAC-DRBG.pod" ], + "doc/man/man7/EVP_RAND-JITTER.7" => [ + "doc/man7/EVP_RAND-JITTER.pod" + ], "doc/man/man7/EVP_RAND-SEED-SRC.7" => [ "doc/man7/EVP_RAND-SEED-SRC.pod" ], @@ -15615,9 +18068,15 @@ our %unified_info = ( "doc/man/man7/EVP_SIGNATURE-HMAC.7" => [ "doc/man7/EVP_SIGNATURE-HMAC.pod" ], + "doc/man/man7/EVP_SIGNATURE-ML-DSA.7" => [ + "doc/man7/EVP_SIGNATURE-ML-DSA.pod" + ], "doc/man/man7/EVP_SIGNATURE-RSA.7" => [ "doc/man7/EVP_SIGNATURE-RSA.pod" ], + "doc/man/man7/EVP_SIGNATURE-SLH-DSA.7" => [ + "doc/man7/EVP_SIGNATURE-SLH-DSA.pod" + ], "doc/man/man7/OSSL_PROVIDER-FIPS.7" => [ "doc/man7/OSSL_PROVIDER-FIPS.pod" ], @@ -15633,6 +18092,9 @@ our %unified_info = ( "doc/man/man7/OSSL_PROVIDER-null.7" => [ "doc/man7/OSSL_PROVIDER-null.pod" ], + "doc/man/man7/OSSL_STORE-winstore.7" => [ + "doc/man7/OSSL_STORE-winstore.pod" + ], "doc/man/man7/RAND.7" => [ "doc/man7/RAND.pod" ], @@ -15645,9 +18107,6 @@ our %unified_info = ( "doc/man/man7/bio.7" => [ "doc/man7/bio.pod" ], - "doc/man/man7/crypto.7" => [ - "doc/man7/crypto.pod" - ], "doc/man/man7/ct.7" => [ "doc/man7/ct.pod" ], @@ -15678,9 +18137,6 @@ our %unified_info = ( "doc/man/man7/life_cycle-rand.7" => [ "doc/man7/life_cycle-rand.pod" ], - "doc/man/man7/migration_guide.7" => [ - "doc/man7/migration_guide.pod" - ], "doc/man/man7/openssl-core.h.7" => [ "doc/man7/openssl-core.h.pod" ], @@ -15696,12 +18152,66 @@ our %unified_info = ( "doc/man/man7/openssl-glossary.7" => [ "doc/man7/openssl-glossary.pod" ], + "doc/man/man7/openssl-qlog.7" => [ + "doc/man7/openssl-qlog.pod" + ], + "doc/man/man7/openssl-quic-concurrency.7" => [ + "doc/man7/openssl-quic-concurrency.pod" + ], + "doc/man/man7/openssl-quic.7" => [ + "doc/man7/openssl-quic.pod" + ], "doc/man/man7/openssl-threads.7" => [ "doc/man7/openssl-threads.pod" ], "doc/man/man7/openssl_user_macros.7" => [ "doc/man7/openssl_user_macros.pod" ], + "doc/man/man7/ossl-guide-introduction.7" => [ + "doc/man7/ossl-guide-introduction.pod" + ], + "doc/man/man7/ossl-guide-libcrypto-introduction.7" => [ + "doc/man7/ossl-guide-libcrypto-introduction.pod" + ], + "doc/man/man7/ossl-guide-libraries-introduction.7" => [ + "doc/man7/ossl-guide-libraries-introduction.pod" + ], + "doc/man/man7/ossl-guide-libssl-introduction.7" => [ + "doc/man7/ossl-guide-libssl-introduction.pod" + ], + "doc/man/man7/ossl-guide-migration.7" => [ + "doc/man7/ossl-guide-migration.pod" + ], + "doc/man/man7/ossl-guide-quic-client-block.7" => [ + "doc/man7/ossl-guide-quic-client-block.pod" + ], + "doc/man/man7/ossl-guide-quic-client-non-block.7" => [ + "doc/man7/ossl-guide-quic-client-non-block.pod" + ], + "doc/man/man7/ossl-guide-quic-introduction.7" => [ + "doc/man7/ossl-guide-quic-introduction.pod" + ], + "doc/man/man7/ossl-guide-quic-multi-stream.7" => [ + "doc/man7/ossl-guide-quic-multi-stream.pod" + ], + "doc/man/man7/ossl-guide-quic-server-block.7" => [ + "doc/man7/ossl-guide-quic-server-block.pod" + ], + "doc/man/man7/ossl-guide-quic-server-non-block.7" => [ + "doc/man7/ossl-guide-quic-server-non-block.pod" + ], + "doc/man/man7/ossl-guide-tls-client-block.7" => [ + "doc/man7/ossl-guide-tls-client-block.pod" + ], + "doc/man/man7/ossl-guide-tls-client-non-block.7" => [ + "doc/man7/ossl-guide-tls-client-non-block.pod" + ], + "doc/man/man7/ossl-guide-tls-introduction.7" => [ + "doc/man7/ossl-guide-tls-introduction.pod" + ], + "doc/man/man7/ossl-guide-tls-server-block.7" => [ + "doc/man7/ossl-guide-tls-server-block.pod" + ], "doc/man/man7/ossl_store-file.7" => [ "doc/man7/ossl_store-file.pod" ], @@ -15756,6 +18266,9 @@ our %unified_info = ( "doc/man/man7/provider-signature.7" => [ "doc/man7/provider-signature.pod" ], + "doc/man/man7/provider-skeymgmt.7" => [ + "doc/man7/provider-skeymgmt.pod" + ], "doc/man/man7/provider-storemgmt.7" => [ "doc/man7/provider-storemgmt.pod" ], @@ -15765,9 +18278,6 @@ our %unified_info = ( "doc/man/man7/proxy-certificates.7" => [ "doc/man7/proxy-certificates.pod" ], - "doc/man/man7/ssl.7" => [ - "doc/man7/ssl.pod" - ], "doc/man/man7/x509.7" => [ "doc/man7/x509.pod" ], @@ -15903,6 +18413,9 @@ our %unified_info = ( "doc/man1/openssl-sess_id.pod" => [ "doc/man1/openssl-sess_id.pod.in" ], + "doc/man1/openssl-skeyutl.pod" => [ + "doc/man1/openssl-skeyutl.pod.in" + ], "doc/man1/openssl-smime.pod" => [ "doc/man1/openssl-smime.pod.in" ], @@ -15939,12 +18452,30 @@ our %unified_info = ( "engines/e_padlock-x86_64.s" => [ "engines/asm/e_padlock-x86_64.pl" ], + "exporters/OpenSSLConfig.cmake" => [ + "exporters/cmake/OpenSSLConfig.cmake.in" + ], + "exporters/OpenSSLConfigVersion.cmake" => [ + "exporters/cmake/OpenSSLConfigVersion.cmake.in" + ], + "exporters/libcrypto.pc" => [ + "exporters/pkg-config/libcrypto.pc.in" + ], + "exporters/libssl.pc" => [ + "exporters/pkg-config/libssl.pc.in" + ], + "exporters/openssl.pc" => [ + "exporters/pkg-config/openssl.pc.in" + ], "include/crypto/bn_conf.h" => [ "include/crypto/bn_conf.h.in" ], "include/crypto/dso_conf.h" => [ "include/crypto/dso_conf.h.in" ], + "include/internal/param_names.h" => [ + "include/internal/param_names.h.in" + ], "include/openssl/asn1.h" => [ "include/openssl/asn1.h.in" ], @@ -15960,12 +18491,18 @@ our %unified_info = ( "include/openssl/cms.h" => [ "include/openssl/cms.h.in" ], + "include/openssl/comp.h" => [ + "include/openssl/comp.h.in" + ], "include/openssl/conf.h" => [ "include/openssl/conf.h.in" ], "include/openssl/configuration.h" => [ "include/openssl/configuration.h.in" ], + "include/openssl/core_names.h" => [ + "include/openssl/core_names.h.in" + ], "include/openssl/crmf.h" => [ "include/openssl/crmf.h.in" ], @@ -16014,20 +18551,47 @@ our %unified_info = ( "include/openssl/x509.h" => [ "include/openssl/x509.h.in" ], + "include/openssl/x509_acert.h" => [ + "include/openssl/x509_acert.h.in" + ], "include/openssl/x509_vfy.h" => [ "include/openssl/x509_vfy.h.in" ], "include/openssl/x509v3.h" => [ "include/openssl/x509v3.h.in" ], + "installdata.pm" => [ + "util/mkinstallvars.pl", + "\"PREFIX=\$(INSTALLTOP)\"", + "BINDIR=bin", + "\"LIBDIR=\$(LIBDIR)\"", + "\"libdir=\$(libdir)\"", + "INCLUDEDIR=include", + "APPLINKDIR=include/openssl", + "\"ENGINESDIR=\$(ENGINESDIR)\"", + "\"MODULESDIR=\$(MODULESDIR)\"", + "\"PKGCONFIGDIR=\$(PKGCONFIGDIR)\"", + "\"CMAKECONFIGDIR=\$(CMAKECONFIGDIR)\"", + "\"LDLIBS=\$(LIB_EX_LIBS)\"", + "\"VERSION=\$(VERSION)\"" + ], "libcrypto.ld" => [ "util/libcrypto.num", "libcrypto" ], + "libcrypto.pc" => [ + "exporters/pkg-config/libcrypto.pc.in" + ], "libssl.ld" => [ "util/libssl.num", "libssl" ], + "libssl.pc" => [ + "exporters/pkg-config/libssl.pc.in" + ], + "openssl.pc" => [ + "exporters/pkg-config/openssl.pc.in" + ], "providers/common/der/der_digests_gen.c" => [ "providers/common/der/der_digests_gen.c.in" ], @@ -16040,9 +18604,15 @@ our %unified_info = ( "providers/common/der/der_ecx_gen.c" => [ "providers/common/der/der_ecx_gen.c.in" ], + "providers/common/der/der_ml_dsa_gen.c" => [ + "providers/common/der/der_ml_dsa_gen.c.in" + ], "providers/common/der/der_rsa_gen.c" => [ "providers/common/der/der_rsa_gen.c.in" ], + "providers/common/der/der_slh_dsa_gen.c" => [ + "providers/common/der/der_slh_dsa_gen.c.in" + ], "providers/common/der/der_sm2_gen.c" => [ "providers/common/der/der_sm2_gen.c.in" ], @@ -16061,9 +18631,15 @@ our %unified_info = ( "providers/common/include/prov/der_ecx.h" => [ "providers/common/include/prov/der_ecx.h.in" ], + "providers/common/include/prov/der_ml_dsa.h" => [ + "providers/common/include/prov/der_ml_dsa.h.in" + ], "providers/common/include/prov/der_rsa.h" => [ "providers/common/include/prov/der_rsa.h.in" ], + "providers/common/include/prov/der_slh_dsa.h" => [ + "providers/common/include/prov/der_slh_dsa.h.in" + ], "providers/common/include/prov/der_sm2.h" => [ "providers/common/include/prov/der_sm2.h.in" ], @@ -16105,6 +18681,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "buffer" ], + "test/buildtest_byteorder.c" => [ + "test/generate_buildtest.pl", + "byteorder" + ], "test/buildtest_camellia.c" => [ "test/generate_buildtest.pl", "camellia" @@ -16137,10 +18717,6 @@ our %unified_info = ( "test/generate_buildtest.pl", "core_dispatch" ], - "test/buildtest_core_names.c" => [ - "test/generate_buildtest.pl", - "core_names" - ], "test/buildtest_core_object.c" => [ "test/generate_buildtest.pl", "core_object" @@ -16173,6 +18749,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "e_os2" ], + "test/buildtest_e_ostime.c" => [ + "test/generate_buildtest.pl", + "e_ostime" + ], "test/buildtest_ebcdic.c" => [ "test/generate_buildtest.pl", "ebcdic" @@ -16209,6 +18789,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "hmac" ], + "test/buildtest_hpke.c" => [ + "test/generate_buildtest.pl", + "hpke" + ], "test/buildtest_http.c" => [ "test/generate_buildtest.pl", "http" @@ -16217,6 +18801,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "idea" ], + "test/buildtest_indicator.c" => [ + "test/generate_buildtest.pl", + "indicator" + ], "test/buildtest_kdf.c" => [ "test/generate_buildtest.pl", "kdf" @@ -16237,6 +18825,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "mdc2" ], + "test/buildtest_ml_kem.c" => [ + "test/generate_buildtest.pl", + "ml_kem" + ], "test/buildtest_modes.c" => [ "test/generate_buildtest.pl", "modes" @@ -16277,6 +18869,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "provider" ], + "test/buildtest_quic.c" => [ + "test/generate_buildtest.pl", + "quic" + ], "test/buildtest_rand.c" => [ "test/generate_buildtest.pl", "rand" @@ -16333,6 +18929,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "symhacks" ], + "test/buildtest_thread.c" => [ + "test/generate_buildtest.pl", + "thread" + ], "test/buildtest_tls1.c" => [ "test/generate_buildtest.pl", "tls1" @@ -16413,6 +19013,7 @@ our %unified_info = ( "doc/html/man1/openssl-s_server.html", "doc/html/man1/openssl-s_time.html", "doc/html/man1/openssl-sess_id.html", + "doc/html/man1/openssl-skeyutl.html", "doc/html/man1/openssl-smime.html", "doc/html/man1/openssl-speed.html", "doc/html/man1/openssl-spkac.html", @@ -16462,6 +19063,7 @@ our %unified_info = ( "doc/html/man3/BIO_find_type.html", "doc/html/man3/BIO_get_data.html", "doc/html/man3/BIO_get_ex_new_index.html", + "doc/html/man3/BIO_get_rpoll_descriptor.html", "doc/html/man3/BIO_meth_new.html", "doc/html/man3/BIO_new.html", "doc/html/man3/BIO_new_CMS.html", @@ -16474,11 +19076,13 @@ our %unified_info = ( "doc/html/man3/BIO_s_connect.html", "doc/html/man3/BIO_s_core.html", "doc/html/man3/BIO_s_datagram.html", + "doc/html/man3/BIO_s_dgram_pair.html", "doc/html/man3/BIO_s_fd.html", "doc/html/man3/BIO_s_file.html", "doc/html/man3/BIO_s_mem.html", "doc/html/man3/BIO_s_null.html", "doc/html/man3/BIO_s_socket.html", + "doc/html/man3/BIO_sendmmsg.html", "doc/html/man3/BIO_set_callback.html", "doc/html/man3/BIO_should_retry.html", "doc/html/man3/BIO_socket_wait.html", @@ -16503,6 +19107,7 @@ our %unified_info = ( "doc/html/man3/BN_swap.html", "doc/html/man3/BN_zero.html", "doc/html/man3/BUF_MEM_new.html", + "doc/html/man3/CMAC_CTX.html", "doc/html/man3/CMS_EncryptedData_decrypt.html", "doc/html/man3/CMS_EncryptedData_encrypt.html", "doc/html/man3/CMS_EnvelopedData_create.html", @@ -16525,6 +19130,7 @@ our %unified_info = ( "doc/html/man3/CMS_uncompress.html", "doc/html/man3/CMS_verify.html", "doc/html/man3/CMS_verify_receipt.html", + "doc/html/man3/COMP_CTX_new.html", "doc/html/man3/CONF_modules_free.html", "doc/html/man3/CONF_modules_load_file.html", "doc/html/man3/CRYPTO_THREAD_run_once.html", @@ -16558,6 +19164,8 @@ our %unified_info = ( "doc/html/man3/DSA_size.html", "doc/html/man3/DTLS_get_data_mtu.html", "doc/html/man3/DTLS_set_timer_cb.html", + "doc/html/man3/DTLSv1_get_timeout.html", + "doc/html/man3/DTLSv1_handle_timeout.html", "doc/html/man3/DTLSv1_listen.html", "doc/html/man3/ECDSA_SIG_new.html", "doc/html/man3/ECDSA_sign.html", @@ -16604,6 +19212,7 @@ our %unified_info = ( "doc/html/man3/EVP_PKEY_CTX_ctrl.html", "doc/html/man3/EVP_PKEY_CTX_get0_libctx.html", "doc/html/man3/EVP_PKEY_CTX_get0_pkey.html", + "doc/html/man3/EVP_PKEY_CTX_get_algor.html", "doc/html/man3/EVP_PKEY_CTX_new.html", "doc/html/man3/EVP_PKEY_CTX_set1_pbe_pass.html", "doc/html/man3/EVP_PKEY_CTX_set_hkdf_md.html", @@ -16643,6 +19252,8 @@ our %unified_info = ( "doc/html/man3/EVP_PKEY_verify_recover.html", "doc/html/man3/EVP_RAND.html", "doc/html/man3/EVP_SIGNATURE.html", + "doc/html/man3/EVP_SKEY.html", + "doc/html/man3/EVP_SKEYMGMT.html", "doc/html/man3/EVP_SealInit.html", "doc/html/man3/EVP_SignInit.html", "doc/html/man3/EVP_VerifyInit.html", @@ -16672,6 +19283,7 @@ our %unified_info = ( "doc/html/man3/EVP_sm3.html", "doc/html/man3/EVP_sm4_cbc.html", "doc/html/man3/EVP_whirlpool.html", + "doc/html/man3/GENERAL_NAME.html", "doc/html/man3/HMAC.html", "doc/html/man3/MD5.html", "doc/html/man3/MDC2_Init.html", @@ -16696,14 +19308,18 @@ our %unified_info = ( "doc/html/man3/OPENSSL_init_ssl.html", "doc/html/man3/OPENSSL_instrument_bus.html", "doc/html/man3/OPENSSL_load_builtin_modules.html", + "doc/html/man3/OPENSSL_load_u16_le.html", "doc/html/man3/OPENSSL_malloc.html", + "doc/html/man3/OPENSSL_riscvcap.html", "doc/html/man3/OPENSSL_s390xcap.html", "doc/html/man3/OPENSSL_secure_malloc.html", "doc/html/man3/OPENSSL_strcasecmp.html", "doc/html/man3/OSSL_ALGORITHM.html", "doc/html/man3/OSSL_CALLBACK.html", + "doc/html/man3/OSSL_CMP_ATAV_set0.html", "doc/html/man3/OSSL_CMP_CTX_new.html", "doc/html/man3/OSSL_CMP_HDR_get0_transactionID.html", + "doc/html/man3/OSSL_CMP_ITAV_new_caCerts.html", "doc/html/man3/OSSL_CMP_ITAV_set0.html", "doc/html/man3/OSSL_CMP_MSG_get0_header.html", "doc/html/man3/OSSL_CMP_MSG_http_perform.html", @@ -16727,18 +19343,27 @@ our %unified_info = ( "doc/html/man3/OSSL_ENCODER_CTX.html", "doc/html/man3/OSSL_ENCODER_CTX_new_for_pkey.html", "doc/html/man3/OSSL_ENCODER_to_bio.html", + "doc/html/man3/OSSL_ERR_STATE_save.html", "doc/html/man3/OSSL_ESS_check_signing_certs.html", + "doc/html/man3/OSSL_GENERAL_NAMES_print.html", + "doc/html/man3/OSSL_HPKE_CTX_new.html", "doc/html/man3/OSSL_HTTP_REQ_CTX.html", "doc/html/man3/OSSL_HTTP_parse_url.html", "doc/html/man3/OSSL_HTTP_transfer.html", + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX.html", + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX_print.html", + "doc/html/man3/OSSL_INDICATOR_set_callback.html", "doc/html/man3/OSSL_ITEM.html", "doc/html/man3/OSSL_LIB_CTX.html", + "doc/html/man3/OSSL_LIB_CTX_set_conf_diagnostics.html", "doc/html/man3/OSSL_PARAM.html", "doc/html/man3/OSSL_PARAM_BLD.html", "doc/html/man3/OSSL_PARAM_allocate_from_text.html", "doc/html/man3/OSSL_PARAM_dup.html", "doc/html/man3/OSSL_PARAM_int.html", + "doc/html/man3/OSSL_PARAM_print_to_bio.html", "doc/html/man3/OSSL_PROVIDER.html", + "doc/html/man3/OSSL_QUIC_client_method.html", "doc/html/man3/OSSL_SELF_TEST_new.html", "doc/html/man3/OSSL_SELF_TEST_set_callback.html", "doc/html/man3/OSSL_STORE_INFO.html", @@ -16747,11 +19372,13 @@ our %unified_info = ( "doc/html/man3/OSSL_STORE_attach.html", "doc/html/man3/OSSL_STORE_expect.html", "doc/html/man3/OSSL_STORE_open.html", + "doc/html/man3/OSSL_sleep.html", "doc/html/man3/OSSL_trace_enabled.html", "doc/html/man3/OSSL_trace_get_category_num.html", "doc/html/man3/OSSL_trace_set_channel.html", "doc/html/man3/OpenSSL_add_all_algorithms.html", "doc/html/man3/OpenSSL_version.html", + "doc/html/man3/PBMAC1_get1_pbkdf2_param.html", "doc/html/man3/PEM_X509_INFO_read_bio_ex.html", "doc/html/man3/PEM_bytes_read_bio.html", "doc/html/man3/PEM_read.html", @@ -16764,6 +19391,7 @@ our %unified_info = ( "doc/html/man3/PKCS12_SAFEBAG_create_cert.html", "doc/html/man3/PKCS12_SAFEBAG_get0_attrs.html", "doc/html/man3/PKCS12_SAFEBAG_get1_cert.html", + "doc/html/man3/PKCS12_SAFEBAG_set0_attrs.html", "doc/html/man3/PKCS12_add1_attr_by_NID.html", "doc/html/man3/PKCS12_add_CSPName_asc.html", "doc/html/man3/PKCS12_add_cert.html", @@ -16855,6 +19483,7 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_sess_set_get_cb.html", "doc/html/man3/SSL_CTX_sessions.html", "doc/html/man3/SSL_CTX_set0_CA_list.html", + "doc/html/man3/SSL_CTX_set1_cert_comp_preference.html", "doc/html/man3/SSL_CTX_set1_curves.html", "doc/html/man3/SSL_CTX_set1_sigalgs.html", "doc/html/man3/SSL_CTX_set1_verify_cert_store.html", @@ -16868,6 +19497,7 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_ct_validation_callback.html", "doc/html/man3/SSL_CTX_set_ctlog_list_file.html", "doc/html/man3/SSL_CTX_set_default_passwd_cb.html", + "doc/html/man3/SSL_CTX_set_domain_flags.html", "doc/html/man3/SSL_CTX_set_generate_session_id.html", "doc/html/man3/SSL_CTX_set_info_callback.html", "doc/html/man3/SSL_CTX_set_keylog_callback.html", @@ -16875,6 +19505,7 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_min_proto_version.html", "doc/html/man3/SSL_CTX_set_mode.html", "doc/html/man3/SSL_CTX_set_msg_callback.html", + "doc/html/man3/SSL_CTX_set_new_pending_conn_cb.html", "doc/html/man3/SSL_CTX_set_num_tickets.html", "doc/html/man3/SSL_CTX_set_options.html", "doc/html/man3/SSL_CTX_set_psk_client_callback.html", @@ -16913,6 +19544,7 @@ our %unified_info = ( "doc/html/man3/SSL_SESSION_print.html", "doc/html/man3/SSL_SESSION_set1_id.html", "doc/html/man3/SSL_accept.html", + "doc/html/man3/SSL_accept_stream.html", "doc/html/man3/SSL_alert_type_string.html", "doc/html/man3/SSL_alloc_buffers.html", "doc/html/man3/SSL_check_chain.html", @@ -16922,59 +19554,90 @@ our %unified_info = ( "doc/html/man3/SSL_export_keying_material.html", "doc/html/man3/SSL_extension_supported.html", "doc/html/man3/SSL_free.html", + "doc/html/man3/SSL_get0_connection.html", + "doc/html/man3/SSL_get0_group_name.html", + "doc/html/man3/SSL_get0_peer_rpk.html", "doc/html/man3/SSL_get0_peer_scts.html", + "doc/html/man3/SSL_get1_builtin_sigalgs.html", "doc/html/man3/SSL_get_SSL_CTX.html", "doc/html/man3/SSL_get_all_async_fds.html", "doc/html/man3/SSL_get_certificate.html", "doc/html/man3/SSL_get_ciphers.html", "doc/html/man3/SSL_get_client_random.html", + "doc/html/man3/SSL_get_conn_close_info.html", "doc/html/man3/SSL_get_current_cipher.html", "doc/html/man3/SSL_get_default_timeout.html", "doc/html/man3/SSL_get_error.html", + "doc/html/man3/SSL_get_event_timeout.html", "doc/html/man3/SSL_get_extms_support.html", "doc/html/man3/SSL_get_fd.html", + "doc/html/man3/SSL_get_handshake_rtt.html", "doc/html/man3/SSL_get_peer_cert_chain.html", "doc/html/man3/SSL_get_peer_certificate.html", "doc/html/man3/SSL_get_peer_signature_nid.html", "doc/html/man3/SSL_get_peer_tmp_key.html", "doc/html/man3/SSL_get_psk_identity.html", "doc/html/man3/SSL_get_rbio.html", + "doc/html/man3/SSL_get_rpoll_descriptor.html", "doc/html/man3/SSL_get_session.html", "doc/html/man3/SSL_get_shared_sigalgs.html", + "doc/html/man3/SSL_get_stream_id.html", + "doc/html/man3/SSL_get_stream_read_state.html", + "doc/html/man3/SSL_get_value_uint.html", "doc/html/man3/SSL_get_verify_result.html", "doc/html/man3/SSL_get_version.html", "doc/html/man3/SSL_group_to_name.html", + "doc/html/man3/SSL_handle_events.html", "doc/html/man3/SSL_in_init.html", + "doc/html/man3/SSL_inject_net_dgram.html", "doc/html/man3/SSL_key_update.html", "doc/html/man3/SSL_library_init.html", "doc/html/man3/SSL_load_client_CA_file.html", "doc/html/man3/SSL_new.html", + "doc/html/man3/SSL_new_domain.html", + "doc/html/man3/SSL_new_listener.html", + "doc/html/man3/SSL_new_stream.html", "doc/html/man3/SSL_pending.html", + "doc/html/man3/SSL_poll.html", "doc/html/man3/SSL_read.html", "doc/html/man3/SSL_read_early_data.html", "doc/html/man3/SSL_rstate_string.html", "doc/html/man3/SSL_session_reused.html", "doc/html/man3/SSL_set1_host.html", + "doc/html/man3/SSL_set1_initial_peer_addr.html", + "doc/html/man3/SSL_set1_server_cert_type.html", "doc/html/man3/SSL_set_async_callback.html", "doc/html/man3/SSL_set_bio.html", + "doc/html/man3/SSL_set_blocking_mode.html", "doc/html/man3/SSL_set_connect_state.html", + "doc/html/man3/SSL_set_default_stream_mode.html", "doc/html/man3/SSL_set_fd.html", + "doc/html/man3/SSL_set_incoming_stream_policy.html", + "doc/html/man3/SSL_set_quic_tls_cbs.html", "doc/html/man3/SSL_set_retry_verify.html", "doc/html/man3/SSL_set_session.html", + "doc/html/man3/SSL_set_session_secret_cb.html", "doc/html/man3/SSL_set_shutdown.html", "doc/html/man3/SSL_set_verify_result.html", "doc/html/man3/SSL_shutdown.html", "doc/html/man3/SSL_state_string.html", + "doc/html/man3/SSL_stream_conclude.html", + "doc/html/man3/SSL_stream_reset.html", "doc/html/man3/SSL_want.html", "doc/html/man3/SSL_write.html", "doc/html/man3/TS_RESP_CTX_new.html", - "doc/html/man3/TS_VERIFY_CTX_set_certs.html", + "doc/html/man3/TS_VERIFY_CTX.html", "doc/html/man3/UI_STRING.html", "doc/html/man3/UI_UTIL_read_pw.html", "doc/html/man3/UI_create_method.html", "doc/html/man3/UI_new.html", "doc/html/man3/X509V3_get_d2i.html", "doc/html/man3/X509V3_set_ctx.html", + "doc/html/man3/X509_ACERT_add1_attr.html", + "doc/html/man3/X509_ACERT_add_attr_nconf.html", + "doc/html/man3/X509_ACERT_get0_holder_baseCertId.html", + "doc/html/man3/X509_ACERT_get_attr.html", + "doc/html/man3/X509_ACERT_print_ex.html", "doc/html/man3/X509_ALGOR_dup.html", "doc/html/man3/X509_ATTRIBUTE.html", "doc/html/man3/X509_CRL_get0_by_serial.html", @@ -16991,6 +19654,7 @@ our %unified_info = ( "doc/html/man3/X509_REQ_get_attr.html", "doc/html/man3/X509_REQ_get_extensions.html", "doc/html/man3/X509_SIG_get0.html", + "doc/html/man3/X509_STORE_CTX_get_by_subject.html", "doc/html/man3/X509_STORE_CTX_get_error.html", "doc/html/man3/X509_STORE_CTX_new.html", "doc/html/man3/X509_STORE_CTX_set_verify_cb.html", @@ -17013,6 +19677,7 @@ our %unified_info = ( "doc/html/man3/X509_get0_notBefore.html", "doc/html/man3/X509_get0_signature.html", "doc/html/man3/X509_get0_uids.html", + "doc/html/man3/X509_get_default_cert_file.html", "doc/html/man3/X509_get_extension_flags.html", "doc/html/man3/X509_get_pubkey.html", "doc/html/man3/X509_get_serialNumber.html", @@ -17058,12 +19723,15 @@ our %unified_info = ( "doc/html/man7/EVP_CIPHER-RC5.html", "doc/html/man7/EVP_CIPHER-SEED.html", "doc/html/man7/EVP_CIPHER-SM4.html", + "doc/html/man7/EVP_KDF-ARGON2.html", "doc/html/man7/EVP_KDF-HKDF.html", + "doc/html/man7/EVP_KDF-HMAC-DRBG.html", "doc/html/man7/EVP_KDF-KB.html", "doc/html/man7/EVP_KDF-KRB5KDF.html", "doc/html/man7/EVP_KDF-PBKDF1.html", "doc/html/man7/EVP_KDF-PBKDF2.html", "doc/html/man7/EVP_KDF-PKCS12KDF.html", + "doc/html/man7/EVP_KDF-PVKKDF.html", "doc/html/man7/EVP_KDF-SCRYPT.html", "doc/html/man7/EVP_KDF-SS.html", "doc/html/man7/EVP_KDF-SSHKDF.html", @@ -17072,7 +19740,10 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-X942-ASN1.html", "doc/html/man7/EVP_KDF-X942-CONCAT.html", "doc/html/man7/EVP_KDF-X963.html", + "doc/html/man7/EVP_KEM-EC.html", + "doc/html/man7/EVP_KEM-ML-KEM.html", "doc/html/man7/EVP_KEM-RSA.html", + "doc/html/man7/EVP_KEM-X25519.html", "doc/html/man7/EVP_KEYEXCH-DH.html", "doc/html/man7/EVP_KEYEXCH-ECDH.html", "doc/html/man7/EVP_KEYEXCH-X25519.html", @@ -17084,6 +19755,7 @@ our %unified_info = ( "doc/html/man7/EVP_MAC-Poly1305.html", "doc/html/man7/EVP_MAC-Siphash.html", "doc/html/man7/EVP_MD-BLAKE2.html", + "doc/html/man7/EVP_MD-KECCAK.html", "doc/html/man7/EVP_MD-MD2.html", "doc/html/man7/EVP_MD-MD4.html", "doc/html/man7/EVP_MD-MD5-SHA1.html", @@ -17103,12 +19775,17 @@ our %unified_info = ( "doc/html/man7/EVP_PKEY-EC.html", "doc/html/man7/EVP_PKEY-FFC.html", "doc/html/man7/EVP_PKEY-HMAC.html", + "doc/html/man7/EVP_PKEY-ML-DSA.html", + "doc/html/man7/EVP_PKEY-ML-KEM.html", "doc/html/man7/EVP_PKEY-RSA.html", + "doc/html/man7/EVP_PKEY-SLH-DSA.html", "doc/html/man7/EVP_PKEY-SM2.html", "doc/html/man7/EVP_PKEY-X25519.html", + "doc/html/man7/EVP_RAND-CRNG-TEST.html", "doc/html/man7/EVP_RAND-CTR-DRBG.html", "doc/html/man7/EVP_RAND-HASH-DRBG.html", "doc/html/man7/EVP_RAND-HMAC-DRBG.html", + "doc/html/man7/EVP_RAND-JITTER.html", "doc/html/man7/EVP_RAND-SEED-SRC.html", "doc/html/man7/EVP_RAND-TEST-RAND.html", "doc/html/man7/EVP_RAND.html", @@ -17116,17 +19793,19 @@ our %unified_info = ( "doc/html/man7/EVP_SIGNATURE-ECDSA.html", "doc/html/man7/EVP_SIGNATURE-ED25519.html", "doc/html/man7/EVP_SIGNATURE-HMAC.html", + "doc/html/man7/EVP_SIGNATURE-ML-DSA.html", "doc/html/man7/EVP_SIGNATURE-RSA.html", + "doc/html/man7/EVP_SIGNATURE-SLH-DSA.html", "doc/html/man7/OSSL_PROVIDER-FIPS.html", "doc/html/man7/OSSL_PROVIDER-base.html", "doc/html/man7/OSSL_PROVIDER-default.html", "doc/html/man7/OSSL_PROVIDER-legacy.html", "doc/html/man7/OSSL_PROVIDER-null.html", + "doc/html/man7/OSSL_STORE-winstore.html", "doc/html/man7/RAND.html", "doc/html/man7/RSA-PSS.html", "doc/html/man7/X25519.html", "doc/html/man7/bio.html", - "doc/html/man7/crypto.html", "doc/html/man7/ct.html", "doc/html/man7/des_modes.html", "doc/html/man7/evp.html", @@ -17137,14 +19816,31 @@ our %unified_info = ( "doc/html/man7/life_cycle-mac.html", "doc/html/man7/life_cycle-pkey.html", "doc/html/man7/life_cycle-rand.html", - "doc/html/man7/migration_guide.html", "doc/html/man7/openssl-core.h.html", "doc/html/man7/openssl-core_dispatch.h.html", "doc/html/man7/openssl-core_names.h.html", "doc/html/man7/openssl-env.html", "doc/html/man7/openssl-glossary.html", + "doc/html/man7/openssl-qlog.html", + "doc/html/man7/openssl-quic-concurrency.html", + "doc/html/man7/openssl-quic.html", "doc/html/man7/openssl-threads.html", "doc/html/man7/openssl_user_macros.html", + "doc/html/man7/ossl-guide-introduction.html", + "doc/html/man7/ossl-guide-libcrypto-introduction.html", + "doc/html/man7/ossl-guide-libraries-introduction.html", + "doc/html/man7/ossl-guide-libssl-introduction.html", + "doc/html/man7/ossl-guide-migration.html", + "doc/html/man7/ossl-guide-quic-client-block.html", + "doc/html/man7/ossl-guide-quic-client-non-block.html", + "doc/html/man7/ossl-guide-quic-introduction.html", + "doc/html/man7/ossl-guide-quic-multi-stream.html", + "doc/html/man7/ossl-guide-quic-server-block.html", + "doc/html/man7/ossl-guide-quic-server-non-block.html", + "doc/html/man7/ossl-guide-tls-client-block.html", + "doc/html/man7/ossl-guide-tls-client-non-block.html", + "doc/html/man7/ossl-guide-tls-introduction.html", + "doc/html/man7/ossl-guide-tls-server-block.html", "doc/html/man7/ossl_store-file.html", "doc/html/man7/ossl_store.html", "doc/html/man7/passphrase-encoding.html", @@ -17163,10 +19859,10 @@ our %unified_info = ( "doc/html/man7/provider-object.html", "doc/html/man7/provider-rand.html", "doc/html/man7/provider-signature.html", + "doc/html/man7/provider-skeymgmt.html", "doc/html/man7/provider-storemgmt.html", "doc/html/man7/provider.html", "doc/html/man7/proxy-certificates.html", - "doc/html/man7/ssl.html", "doc/html/man7/x509.html" ] }, @@ -17181,12 +19877,21 @@ our %unified_info = ( ] }, "includes" => { + "OpenSSLConfig.cmake" => [ + "." + ], + "OpenSSLConfigVersion.cmake" => [ + "." + ], "apps/asn1parse.o" => [ "apps" ], "apps/ca.o" => [ "apps" ], + "apps/ca_internals_test-bin-ca.o" => [ + "apps" + ], "apps/ciphers.o" => [ "apps" ], @@ -17413,6 +20118,9 @@ our %unified_info = ( "apps/openssl-bin-sess_id.o" => [ "apps" ], + "apps/openssl-bin-skeyutl.o" => [ + "apps" + ], "apps/openssl-bin-smime.o" => [ "apps" ], @@ -17500,6 +20208,9 @@ our %unified_info = ( "apps/sess_id.o" => [ "apps" ], + "apps/skeyutl.o" => [ + "apps" + ], "apps/smime.o" => [ "apps" ], @@ -17551,6 +20262,12 @@ our %unified_info = ( "crypto/aes/bsaes-armv7.o" => [ "crypto" ], + "crypto/aes/vpaes-armv8.o" => [ + "crypto" + ], + "crypto/aes/vpaes-loongarch64.o" => [ + "crypto" + ], "crypto/arm64cpuid.o" => [ "crypto" ], @@ -17602,9 +20319,15 @@ our %unified_info = ( "crypto/chacha/chacha-armv4.o" => [ "crypto" ], + "crypto/chacha/chacha-armv8-sve.o" => [ + "crypto" + ], "crypto/chacha/chacha-armv8.o" => [ "crypto" ], + "crypto/chacha/chacha-loongarch64.o" => [ + "crypto" + ], "crypto/chacha/chacha-s390x.o" => [ "crypto" ], @@ -17629,15 +20352,27 @@ our %unified_info = ( "crypto/ec/ecp_s390x_nistp.o" => [ "crypto" ], + "crypto/ec/ecp_sm2p256-armv8.o" => [ + "crypto" + ], + "crypto/ec/ecx_key.o" => [ + "crypto" + ], "crypto/ec/ecx_meth.o" => [ "crypto" ], "crypto/ec/ecx_s390x.o" => [ "crypto" ], + "crypto/ec/libcrypto-lib-ecx_key.o" => [ + "crypto" + ], "crypto/ec/libcrypto-lib-ecx_meth.o" => [ "crypto" ], + "crypto/ec/libfips-lib-ecx_key.o" => [ + "crypto" + ], "crypto/evp/e_aes.o" => [ "crypto", "crypto/modes" @@ -17709,9 +20444,18 @@ our %unified_info = ( "crypto/libfips-lib-cpuid.o" => [ "." ], + "crypto/md5/md5-aarch64.o" => [ + "crypto" + ], + "crypto/md5/md5-loongarch64.o" => [ + "crypto" + ], "crypto/md5/md5-sparcv9.o" => [ "crypto" ], + "crypto/modes/aes-gcm-armv8-unroll8_64.o" => [ + "crypto" + ], "crypto/modes/aes-gcm-armv8_64.o" => [ "crypto" ], @@ -17736,6 +20480,9 @@ our %unified_info = ( "crypto/modes/libfips-lib-gcm128.o" => [ "crypto" ], + "crypto/params_idx.c" => [ + "util/perl" + ], "crypto/poly1305/poly1305-armv4.o" => [ "crypto" ], @@ -17757,6 +20504,9 @@ our %unified_info = ( "crypto/sha/keccak1600-armv4.o" => [ "crypto" ], + "crypto/sha/keccak1600-armv8.o" => [ + "crypto" + ], "crypto/sha/sha1-armv4-large.o" => [ "crypto" ], @@ -17802,6 +20552,18 @@ our %unified_info = ( "crypto/sha/sha512-sparcv9.o" => [ "crypto" ], + "crypto/sm3/sm3-armv8.o" => [ + "crypto" + ], + "crypto/sm4/sm4-armv8.o" => [ + "crypto" + ], + "crypto/sm4/vpsm4-armv8.o" => [ + "crypto" + ], + "crypto/sm4/vpsm4_ex-armv8.o" => [ + "crypto" + ], "doc/man1/openssl-asn1parse.pod" => [ "doc" ], @@ -17934,6 +20696,9 @@ our %unified_info = ( "doc/man1/openssl-sess_id.pod" => [ "doc" ], + "doc/man1/openssl-skeyutl.pod" => [ + "doc" + ], "doc/man1/openssl-smime.pod" => [ "doc" ], @@ -17961,6 +20726,24 @@ our %unified_info = ( "doc/man1/openssl-x509.pod" => [ "doc" ], + "exporters/OpenSSLConfig.cmake" => [ + "." + ], + "exporters/OpenSSLConfigVersion.cmake" => [ + "." + ], + "exporters/libcrypto.pc" => [ + "." + ], + "exporters/libssl.pc" => [ + "." + ], + "exporters/openssl.pc" => [ + "." + ], + "fuzz/acert-test" => [ + "include" + ], "fuzz/asn1-test" => [ "include" ], @@ -17991,12 +20774,69 @@ our %unified_info = ( "fuzz/ct-test" => [ "include" ], + "fuzz/decoder-test" => [ + "include" + ], + "fuzz/dtlsclient-test" => [ + "include" + ], + "fuzz/dtlsserver-test" => [ + "include" + ], + "fuzz/hashtable-test" => [ + "include" + ], + "fuzz/ml-dsa-test" => [ + "include" + ], + "fuzz/ml-kem-test" => [ + "include" + ], + "fuzz/pem-test" => [ + "include" + ], + "fuzz/provider-test" => [ + "include" + ], + "fuzz/punycode-test" => [ + "include" + ], + "fuzz/quic-client-test" => [ + "include" + ], + "fuzz/quic-lcidm-test" => [ + "include" + ], + "fuzz/quic-rcidm-test" => [ + "include" + ], + "fuzz/quic-server-test" => [ + "include" + ], + "fuzz/quic-srtm-test" => [ + "include" + ], "fuzz/server-test" => [ "include" ], + "fuzz/slh-dsa-test" => [ + "include" + ], + "fuzz/smime-test" => [ + "include" + ], + "fuzz/v3name-test" => [ + "include" + ], "fuzz/x509-test" => [ "include" ], + "include/internal/param_names.h" => [ + "util/perl" + ], + "include/openssl/core_names.h" => [ + "util/perl" + ], "libcrypto" => [ ".", "include", @@ -18007,6 +20847,9 @@ our %unified_info = ( ".", "util/perl/OpenSSL" ], + "libcrypto.pc" => [ + "." + ], "libssl" => [ ".", "include" @@ -18015,6 +20858,12 @@ our %unified_info = ( ".", "util/perl/OpenSSL" ], + "libssl.pc" => [ + "." + ], + "openssl.pc" => [ + "." + ], "providers/common/der/der_digests_gen.c" => [ "providers/common/der" ], @@ -18054,6 +20903,15 @@ our %unified_info = ( "providers/common/der/der_ecx_key.o" => [ "providers/common/include/prov" ], + "providers/common/der/der_ml_dsa_gen.c" => [ + "providers/common/der" + ], + "providers/common/der/der_ml_dsa_gen.o" => [ + "providers/common/include/prov" + ], + "providers/common/der/der_ml_dsa_key.o" => [ + "providers/common/include/prov" + ], "providers/common/der/der_rsa_gen.c" => [ "providers/common/der" ], @@ -18066,6 +20924,15 @@ our %unified_info = ( "providers/common/der/der_rsa_sig.o" => [ "providers/common/include/prov" ], + "providers/common/der/der_slh_dsa_gen.c" => [ + "providers/common/der" + ], + "providers/common/der/der_slh_dsa_gen.o" => [ + "providers/common/include/prov" + ], + "providers/common/der/der_slh_dsa_key.o" => [ + "providers/common/include/prov" + ], "providers/common/der/der_sm2_gen.c" => [ "providers/common/der" ], @@ -18111,12 +20978,24 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ecx_key.o" => [ "providers/common/include/prov" ], + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o" => [ + "providers/common/include/prov" + ], + "providers/common/der/libcommon-lib-der_ml_dsa_key.o" => [ + "providers/common/include/prov" + ], "providers/common/der/libcommon-lib-der_rsa_gen.o" => [ "providers/common/include/prov" ], "providers/common/der/libcommon-lib-der_rsa_key.o" => [ "providers/common/include/prov" ], + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o" => [ + "providers/common/include/prov" + ], + "providers/common/der/libcommon-lib-der_slh_dsa_key.o" => [ + "providers/common/include/prov" + ], "providers/common/der/libcommon-lib-der_wrap_gen.o" => [ "providers/common/include/prov" ], @@ -18147,9 +21026,15 @@ our %unified_info = ( "providers/common/include/prov/der_ecx.h" => [ "providers/common/der" ], + "providers/common/include/prov/der_ml_dsa.h" => [ + "providers/common/der" + ], "providers/common/include/prov/der_rsa.h" => [ "providers/common/der" ], + "providers/common/include/prov/der_slh_dsa.h" => [ + "providers/common/der" + ], "providers/common/include/prov/der_sm2.h" => [ "providers/common/der" ], @@ -18192,9 +21077,15 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-eddsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/libdefault-lib-rsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/libdefault-lib-sm2_sig.o" => [ "providers/common/include/prov" ], @@ -18207,12 +21098,24 @@ our %unified_info = ( "providers/implementations/signature/libfips-lib-eddsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/libfips-lib-rsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o" => [ + "providers/common/include/prov" + ], + "providers/implementations/signature/ml_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/rsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/slh_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/sm2_sig.o" => [ "providers/common/include/prov" ], @@ -18225,28 +21128,39 @@ our %unified_info = ( "crypto", "include", "providers/implementations/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" ], "providers/libdefault.a" => [ ".", "crypto", "include", "providers/implementations/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" ], "providers/libfips.a" => [ ".", "crypto", "include", "providers/implementations/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" ], "providers/liblegacy.a" => [ ".", "crypto", "include", "providers/implementations/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" + ], + "providers/libtemplate.a" => [ + "crypto", + "include", + "providers/implementations/include", + "providers/common/include", + "providers/fips/include" ], "test/aborttest" => [ "include", @@ -18315,6 +21229,14 @@ our %unified_info = ( "include", "apps/include" ], + "test/bio_addr_test" => [ + "include", + "apps/include" + ], + "test/bio_base64_test" => [ + "include", + "apps/include" + ], "test/bio_callback_test" => [ "include", "apps/include" @@ -18323,6 +21245,11 @@ our %unified_info = ( "include", "apps/include" ], + "test/bio_dgram_test" => [ + "include", + "apps/include", + "." + ], "test/bio_enc_test" => [ "include", "apps/include" @@ -18331,6 +21258,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/bio_meth_test" => [ + "include", + "apps/include" + ], "test/bio_prefix_text" => [ ".", "include", @@ -18344,6 +21275,11 @@ our %unified_info = ( "include", "apps/include" ], + "test/bio_tfo_test" => [ + "include", + "apps/include", + "." + ], "test/bioprinttest" => [ "include", "apps/include" @@ -18358,6 +21294,9 @@ our %unified_info = ( "include", "apps/include" ], + "test/build_wincrypt_test" => [ + "include" + ], "test/buildtest_c_aes" => [ "include" ], @@ -18373,6 +21312,9 @@ our %unified_info = ( "test/buildtest_c_buffer" => [ "include" ], + "test/buildtest_c_byteorder" => [ + "include" + ], "test/buildtest_c_camellia" => [ "include" ], @@ -18397,9 +21339,6 @@ our %unified_info = ( "test/buildtest_c_core_dispatch" => [ "include" ], - "test/buildtest_c_core_names" => [ - "include" - ], "test/buildtest_c_core_object" => [ "include" ], @@ -18424,6 +21363,9 @@ our %unified_info = ( "test/buildtest_c_e_os2" => [ "include" ], + "test/buildtest_c_e_ostime" => [ + "include" + ], "test/buildtest_c_ebcdic" => [ "include" ], @@ -18451,12 +21393,18 @@ our %unified_info = ( "test/buildtest_c_hmac" => [ "include" ], + "test/buildtest_c_hpke" => [ + "include" + ], "test/buildtest_c_http" => [ "include" ], "test/buildtest_c_idea" => [ "include" ], + "test/buildtest_c_indicator" => [ + "include" + ], "test/buildtest_c_kdf" => [ "include" ], @@ -18472,6 +21420,9 @@ our %unified_info = ( "test/buildtest_c_mdc2" => [ "include" ], + "test/buildtest_c_ml_kem" => [ + "include" + ], "test/buildtest_c_modes" => [ "include" ], @@ -18502,6 +21453,9 @@ our %unified_info = ( "test/buildtest_c_provider" => [ "include" ], + "test/buildtest_c_quic" => [ + "include" + ], "test/buildtest_c_rand" => [ "include" ], @@ -18544,6 +21498,9 @@ our %unified_info = ( "test/buildtest_c_symhacks" => [ "include" ], + "test/buildtest_c_thread" => [ + "include" + ], "test/buildtest_c_tls1" => [ "include" ], @@ -18559,10 +21516,24 @@ our %unified_info = ( "test/buildtest_c_whrlpool" => [ "include" ], + "test/byteorder_test" => [ + "include", + "apps/include" + ], + "test/ca_internals_test" => [ + ".", + "include", + "apps/include" + ], "test/casttest" => [ "include", "apps/include" ], + "test/cert_comp_test" => [ + "include", + "apps/include", + "." + ], "test/chacha_internal_test" => [ ".", "include", @@ -18686,6 +21657,11 @@ our %unified_info = ( "include", "apps/include" ], + "test/decoder_propq_test" => [ + ".", + "include", + "apps/include" + ], "test/defltfips_test" => [ "include", "apps/include" @@ -18701,7 +21677,8 @@ our %unified_info = ( "test/drbgtest" => [ "include", "apps/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" ], "test/dsa_no_digest_size_test" => [ "include", @@ -18744,7 +21721,9 @@ our %unified_info = ( "test/endecode_test" => [ ".", "include", - "apps/include" + "apps/include", + "providers/common/include", + "providers/implementations/include" ], "test/endecoder_legacy_test" => [ ".", @@ -18789,6 +21768,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/evp_pkey_dhkem_test" => [ + "include", + "apps/include" + ], "test/evp_pkey_dparams_test" => [ "include", "apps/include" @@ -18797,10 +21780,18 @@ our %unified_info = ( "include", "apps/include" ], + "test/evp_skey_test" => [ + "include", + "apps/include" + ], "test/evp_test" => [ "include", "apps/include" ], + "test/evp_xof_test" => [ + "include", + "apps/include" + ], "test/exdatatest" => [ "include", "apps/include" @@ -18901,22 +21892,62 @@ our %unified_info = ( ".", "include" ], + "test/helpers/json_test-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/helpers/pkcs12.o" => [ ".", "include" ], + "test/helpers/pkcs12_api_test-bin-pkcs12.o" => [ + ".", + "include" + ], "test/helpers/pkcs12_format_test-bin-pkcs12.o" => [ ".", "include" ], + "test/helpers/quic_multistream_test-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quic_newcid_test-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quic_radix_test-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quic_srt_gen_test-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quicapitest-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quicfaultstest-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/helpers/recordlentest-bin-ssltestlib.o" => [ ".", "include" ], + "test/helpers/rpktest-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/helpers/servername_test-bin-ssltestlib.o" => [ ".", "include" ], + "test/helpers/ssl_handshake_rtt_test-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/helpers/ssl_test-bin-handshake.o" => [ ".", "include" @@ -18950,6 +21981,10 @@ our %unified_info = ( ".", "include" ], + "test/helpers/tls13groupselection_test-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/hexstr_test" => [ ".", "include", @@ -18959,6 +21994,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/hpke_test" => [ + "include", + "apps/include" + ], "test/http_test" => [ "include", "apps/include" @@ -18971,6 +22010,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/json_test" => [ + "include", + "apps/include" + ], "test/keymgmt_internal_test" => [ ".", "include", @@ -18985,6 +22028,10 @@ our %unified_info = ( "apps/include", "." ], + "test/list_test" => [ + "include", + "apps/include" + ], "test/localetest" => [ "include", "apps/include" @@ -18998,10 +22045,27 @@ our %unified_info = ( "include", "apps/include" ], + "test/membio_test" => [ + "include", + "apps/include", + "." + ], "test/memleaktest" => [ "include", "apps/include" ], + "test/ml_dsa_test" => [ + "include", + "apps/include" + ], + "test/ml_kem_evp_extra_test" => [ + "include", + "apps/include" + ], + "test/ml_kem_internal_test" => [ + "include", + "apps/include" + ], "test/modes_internal_test" => [ ".", "include", @@ -19036,6 +22100,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/pairwise_fail_test" => [ + "include", + "apps/include" + ], "test/param_build_test" => [ "include", "apps/include" @@ -19069,6 +22137,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/pkcs12_api_test" => [ + "include", + "apps/include" + ], "test/pkcs12_format_test" => [ "include", "apps/include" @@ -19090,6 +22162,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/priority_queue_test" => [ + "include", + "apps/include" + ], "test/property_test" => [ ".", "include", @@ -19103,6 +22179,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/provider_default_search_path_test" => [ + "include", + "apps/include" + ], "test/provider_fallback_test" => [ "include", "apps/include" @@ -19129,6 +22209,97 @@ our %unified_info = ( "include", "apps/include" ], + "test/quic_ackm_test" => [ + "include", + "apps/include" + ], + "test/quic_cc_test" => [ + "include", + "apps/include" + ], + "test/quic_cfq_test" => [ + "include", + "apps/include" + ], + "test/quic_client_test" => [ + "include", + "apps/include" + ], + "test/quic_fc_test" => [ + "include", + "apps/include" + ], + "test/quic_fifd_test" => [ + "include", + "apps/include" + ], + "test/quic_lcidm_test" => [ + "include", + "apps/include" + ], + "test/quic_multistream_test" => [ + "include", + "apps/include" + ], + "test/quic_newcid_test" => [ + "include", + "apps/include", + "." + ], + "test/quic_qlog_test" => [ + "include", + "apps/include" + ], + "test/quic_radix_test" => [ + "include", + "apps/include" + ], + "test/quic_rcidm_test" => [ + "include", + "apps/include" + ], + "test/quic_record_test" => [ + "include", + "apps/include" + ], + "test/quic_srt_gen_test" => [ + "include", + "apps/include", + "." + ], + "test/quic_srtm_test" => [ + "include", + "apps/include" + ], + "test/quic_stream_test" => [ + "include", + "apps/include" + ], + "test/quic_tserver_test" => [ + "include", + "apps/include" + ], + "test/quic_txp_test" => [ + "include", + "apps/include" + ], + "test/quic_txpim_test" => [ + "include", + "apps/include" + ], + "test/quic_wire_test" => [ + "include", + "apps/include" + ], + "test/quicapitest" => [ + "include", + "apps/include" + ], + "test/quicfaultstest" => [ + "include", + "apps/include", + "." + ], "test/rand_status_test" => [ "include", "apps/include" @@ -19149,14 +22320,20 @@ our %unified_info = ( "include", "apps/include" ], - "test/rdrand_sanitytest" => [ + "test/rdcpu_sanitytest" => [ "include", - "apps/include" + "apps/include", + "crypto" ], "test/recordlentest" => [ "include", "apps/include" ], + "test/rpktest" => [ + "include", + "apps/include", + "." + ], "test/rsa_complex" => [ "include", "apps/include" @@ -19175,6 +22352,15 @@ our %unified_info = ( "include", "apps/include" ], + "test/rsa_x931_test" => [ + ".", + "include", + "apps/include" + ], + "test/safe_math_test" => [ + "include", + "apps/include" + ], "test/sanitytest" => [ "include", "apps/include" @@ -19196,6 +22382,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/slh_dsa_test" => [ + "include", + "apps/include" + ], "test/sm2_internal_test" => [ "include", "apps/include" @@ -19226,6 +22416,11 @@ our %unified_info = ( "include", "apps/include" ], + "test/ssl_handshake_rtt_test" => [ + "include", + "apps/include", + "." + ], "test/ssl_old_test" => [ ".", "include", @@ -19242,6 +22437,7 @@ our %unified_info = ( "test/sslapitest" => [ "include", "apps/include", + "providers/common/include", "." ], "test/sslbuffertest" => [ @@ -19256,6 +22452,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/strtoultest" => [ + "include", + "apps/include" + ], "test/sysdefaulttest" => [ "include", "apps/include" @@ -19264,7 +22464,13 @@ our %unified_info = ( "include", "apps/include" ], + "test/threadpool_test" => [ + ".", + "include", + "apps/include" + ], "test/threadstest" => [ + ".", "include", "apps/include" ], @@ -19276,6 +22482,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/time_test" => [ + "include", + "apps/include" + ], "test/tls13ccstest" => [ "include", "apps/include" @@ -19285,6 +22495,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/tls13groupselection_test" => [ + "include", + "apps/include" + ], "test/trace_api_test" => [ ".", "include", @@ -19323,6 +22537,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/x509_acert_test" => [ + "include", + "apps/include" + ], "test/x509_check_cert_pkey_test" => [ "include", "apps/include" @@ -19336,6 +22554,18 @@ our %unified_info = ( "include", "apps/include" ], + "test/x509_load_cert_file_test" => [ + "include", + "apps/include" + ], + "test/x509_req_test" => [ + "include", + "apps/include" + ], + "test/x509_test" => [ + "include", + "apps/include" + ], "test/x509_time_test" => [ "include", "apps/include" @@ -19357,6 +22587,7 @@ our %unified_info = ( "providers/libdefault.a", "providers/libfips.a", "providers/liblegacy.a", + "providers/libtemplate.a", "test/libtestutil.a" ], "mandocs" => { @@ -19409,6 +22640,7 @@ our %unified_info = ( "doc/man/man1/openssl-s_server.1", "doc/man/man1/openssl-s_time.1", "doc/man/man1/openssl-sess_id.1", + "doc/man/man1/openssl-skeyutl.1", "doc/man/man1/openssl-smime.1", "doc/man/man1/openssl-speed.1", "doc/man/man1/openssl-spkac.1", @@ -19458,6 +22690,7 @@ our %unified_info = ( "doc/man/man3/BIO_find_type.3", "doc/man/man3/BIO_get_data.3", "doc/man/man3/BIO_get_ex_new_index.3", + "doc/man/man3/BIO_get_rpoll_descriptor.3", "doc/man/man3/BIO_meth_new.3", "doc/man/man3/BIO_new.3", "doc/man/man3/BIO_new_CMS.3", @@ -19470,11 +22703,13 @@ our %unified_info = ( "doc/man/man3/BIO_s_connect.3", "doc/man/man3/BIO_s_core.3", "doc/man/man3/BIO_s_datagram.3", + "doc/man/man3/BIO_s_dgram_pair.3", "doc/man/man3/BIO_s_fd.3", "doc/man/man3/BIO_s_file.3", "doc/man/man3/BIO_s_mem.3", "doc/man/man3/BIO_s_null.3", "doc/man/man3/BIO_s_socket.3", + "doc/man/man3/BIO_sendmmsg.3", "doc/man/man3/BIO_set_callback.3", "doc/man/man3/BIO_should_retry.3", "doc/man/man3/BIO_socket_wait.3", @@ -19499,6 +22734,7 @@ our %unified_info = ( "doc/man/man3/BN_swap.3", "doc/man/man3/BN_zero.3", "doc/man/man3/BUF_MEM_new.3", + "doc/man/man3/CMAC_CTX.3", "doc/man/man3/CMS_EncryptedData_decrypt.3", "doc/man/man3/CMS_EncryptedData_encrypt.3", "doc/man/man3/CMS_EnvelopedData_create.3", @@ -19521,6 +22757,7 @@ our %unified_info = ( "doc/man/man3/CMS_uncompress.3", "doc/man/man3/CMS_verify.3", "doc/man/man3/CMS_verify_receipt.3", + "doc/man/man3/COMP_CTX_new.3", "doc/man/man3/CONF_modules_free.3", "doc/man/man3/CONF_modules_load_file.3", "doc/man/man3/CRYPTO_THREAD_run_once.3", @@ -19554,6 +22791,8 @@ our %unified_info = ( "doc/man/man3/DSA_size.3", "doc/man/man3/DTLS_get_data_mtu.3", "doc/man/man3/DTLS_set_timer_cb.3", + "doc/man/man3/DTLSv1_get_timeout.3", + "doc/man/man3/DTLSv1_handle_timeout.3", "doc/man/man3/DTLSv1_listen.3", "doc/man/man3/ECDSA_SIG_new.3", "doc/man/man3/ECDSA_sign.3", @@ -19600,6 +22839,7 @@ our %unified_info = ( "doc/man/man3/EVP_PKEY_CTX_ctrl.3", "doc/man/man3/EVP_PKEY_CTX_get0_libctx.3", "doc/man/man3/EVP_PKEY_CTX_get0_pkey.3", + "doc/man/man3/EVP_PKEY_CTX_get_algor.3", "doc/man/man3/EVP_PKEY_CTX_new.3", "doc/man/man3/EVP_PKEY_CTX_set1_pbe_pass.3", "doc/man/man3/EVP_PKEY_CTX_set_hkdf_md.3", @@ -19639,6 +22879,8 @@ our %unified_info = ( "doc/man/man3/EVP_PKEY_verify_recover.3", "doc/man/man3/EVP_RAND.3", "doc/man/man3/EVP_SIGNATURE.3", + "doc/man/man3/EVP_SKEY.3", + "doc/man/man3/EVP_SKEYMGMT.3", "doc/man/man3/EVP_SealInit.3", "doc/man/man3/EVP_SignInit.3", "doc/man/man3/EVP_VerifyInit.3", @@ -19668,6 +22910,7 @@ our %unified_info = ( "doc/man/man3/EVP_sm3.3", "doc/man/man3/EVP_sm4_cbc.3", "doc/man/man3/EVP_whirlpool.3", + "doc/man/man3/GENERAL_NAME.3", "doc/man/man3/HMAC.3", "doc/man/man3/MD5.3", "doc/man/man3/MDC2_Init.3", @@ -19692,14 +22935,18 @@ our %unified_info = ( "doc/man/man3/OPENSSL_init_ssl.3", "doc/man/man3/OPENSSL_instrument_bus.3", "doc/man/man3/OPENSSL_load_builtin_modules.3", + "doc/man/man3/OPENSSL_load_u16_le.3", "doc/man/man3/OPENSSL_malloc.3", + "doc/man/man3/OPENSSL_riscvcap.3", "doc/man/man3/OPENSSL_s390xcap.3", "doc/man/man3/OPENSSL_secure_malloc.3", "doc/man/man3/OPENSSL_strcasecmp.3", "doc/man/man3/OSSL_ALGORITHM.3", "doc/man/man3/OSSL_CALLBACK.3", + "doc/man/man3/OSSL_CMP_ATAV_set0.3", "doc/man/man3/OSSL_CMP_CTX_new.3", "doc/man/man3/OSSL_CMP_HDR_get0_transactionID.3", + "doc/man/man3/OSSL_CMP_ITAV_new_caCerts.3", "doc/man/man3/OSSL_CMP_ITAV_set0.3", "doc/man/man3/OSSL_CMP_MSG_get0_header.3", "doc/man/man3/OSSL_CMP_MSG_http_perform.3", @@ -19723,18 +22970,27 @@ our %unified_info = ( "doc/man/man3/OSSL_ENCODER_CTX.3", "doc/man/man3/OSSL_ENCODER_CTX_new_for_pkey.3", "doc/man/man3/OSSL_ENCODER_to_bio.3", + "doc/man/man3/OSSL_ERR_STATE_save.3", "doc/man/man3/OSSL_ESS_check_signing_certs.3", + "doc/man/man3/OSSL_GENERAL_NAMES_print.3", + "doc/man/man3/OSSL_HPKE_CTX_new.3", "doc/man/man3/OSSL_HTTP_REQ_CTX.3", "doc/man/man3/OSSL_HTTP_parse_url.3", "doc/man/man3/OSSL_HTTP_transfer.3", + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX.3", + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX_print.3", + "doc/man/man3/OSSL_INDICATOR_set_callback.3", "doc/man/man3/OSSL_ITEM.3", "doc/man/man3/OSSL_LIB_CTX.3", + "doc/man/man3/OSSL_LIB_CTX_set_conf_diagnostics.3", "doc/man/man3/OSSL_PARAM.3", "doc/man/man3/OSSL_PARAM_BLD.3", "doc/man/man3/OSSL_PARAM_allocate_from_text.3", "doc/man/man3/OSSL_PARAM_dup.3", "doc/man/man3/OSSL_PARAM_int.3", + "doc/man/man3/OSSL_PARAM_print_to_bio.3", "doc/man/man3/OSSL_PROVIDER.3", + "doc/man/man3/OSSL_QUIC_client_method.3", "doc/man/man3/OSSL_SELF_TEST_new.3", "doc/man/man3/OSSL_SELF_TEST_set_callback.3", "doc/man/man3/OSSL_STORE_INFO.3", @@ -19743,11 +22999,13 @@ our %unified_info = ( "doc/man/man3/OSSL_STORE_attach.3", "doc/man/man3/OSSL_STORE_expect.3", "doc/man/man3/OSSL_STORE_open.3", + "doc/man/man3/OSSL_sleep.3", "doc/man/man3/OSSL_trace_enabled.3", "doc/man/man3/OSSL_trace_get_category_num.3", "doc/man/man3/OSSL_trace_set_channel.3", "doc/man/man3/OpenSSL_add_all_algorithms.3", "doc/man/man3/OpenSSL_version.3", + "doc/man/man3/PBMAC1_get1_pbkdf2_param.3", "doc/man/man3/PEM_X509_INFO_read_bio_ex.3", "doc/man/man3/PEM_bytes_read_bio.3", "doc/man/man3/PEM_read.3", @@ -19760,6 +23018,7 @@ our %unified_info = ( "doc/man/man3/PKCS12_SAFEBAG_create_cert.3", "doc/man/man3/PKCS12_SAFEBAG_get0_attrs.3", "doc/man/man3/PKCS12_SAFEBAG_get1_cert.3", + "doc/man/man3/PKCS12_SAFEBAG_set0_attrs.3", "doc/man/man3/PKCS12_add1_attr_by_NID.3", "doc/man/man3/PKCS12_add_CSPName_asc.3", "doc/man/man3/PKCS12_add_cert.3", @@ -19851,6 +23110,7 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_sess_set_get_cb.3", "doc/man/man3/SSL_CTX_sessions.3", "doc/man/man3/SSL_CTX_set0_CA_list.3", + "doc/man/man3/SSL_CTX_set1_cert_comp_preference.3", "doc/man/man3/SSL_CTX_set1_curves.3", "doc/man/man3/SSL_CTX_set1_sigalgs.3", "doc/man/man3/SSL_CTX_set1_verify_cert_store.3", @@ -19864,6 +23124,7 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_ct_validation_callback.3", "doc/man/man3/SSL_CTX_set_ctlog_list_file.3", "doc/man/man3/SSL_CTX_set_default_passwd_cb.3", + "doc/man/man3/SSL_CTX_set_domain_flags.3", "doc/man/man3/SSL_CTX_set_generate_session_id.3", "doc/man/man3/SSL_CTX_set_info_callback.3", "doc/man/man3/SSL_CTX_set_keylog_callback.3", @@ -19871,6 +23132,7 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_min_proto_version.3", "doc/man/man3/SSL_CTX_set_mode.3", "doc/man/man3/SSL_CTX_set_msg_callback.3", + "doc/man/man3/SSL_CTX_set_new_pending_conn_cb.3", "doc/man/man3/SSL_CTX_set_num_tickets.3", "doc/man/man3/SSL_CTX_set_options.3", "doc/man/man3/SSL_CTX_set_psk_client_callback.3", @@ -19909,6 +23171,7 @@ our %unified_info = ( "doc/man/man3/SSL_SESSION_print.3", "doc/man/man3/SSL_SESSION_set1_id.3", "doc/man/man3/SSL_accept.3", + "doc/man/man3/SSL_accept_stream.3", "doc/man/man3/SSL_alert_type_string.3", "doc/man/man3/SSL_alloc_buffers.3", "doc/man/man3/SSL_check_chain.3", @@ -19918,59 +23181,90 @@ our %unified_info = ( "doc/man/man3/SSL_export_keying_material.3", "doc/man/man3/SSL_extension_supported.3", "doc/man/man3/SSL_free.3", + "doc/man/man3/SSL_get0_connection.3", + "doc/man/man3/SSL_get0_group_name.3", + "doc/man/man3/SSL_get0_peer_rpk.3", "doc/man/man3/SSL_get0_peer_scts.3", + "doc/man/man3/SSL_get1_builtin_sigalgs.3", "doc/man/man3/SSL_get_SSL_CTX.3", "doc/man/man3/SSL_get_all_async_fds.3", "doc/man/man3/SSL_get_certificate.3", "doc/man/man3/SSL_get_ciphers.3", "doc/man/man3/SSL_get_client_random.3", + "doc/man/man3/SSL_get_conn_close_info.3", "doc/man/man3/SSL_get_current_cipher.3", "doc/man/man3/SSL_get_default_timeout.3", "doc/man/man3/SSL_get_error.3", + "doc/man/man3/SSL_get_event_timeout.3", "doc/man/man3/SSL_get_extms_support.3", "doc/man/man3/SSL_get_fd.3", + "doc/man/man3/SSL_get_handshake_rtt.3", "doc/man/man3/SSL_get_peer_cert_chain.3", "doc/man/man3/SSL_get_peer_certificate.3", "doc/man/man3/SSL_get_peer_signature_nid.3", "doc/man/man3/SSL_get_peer_tmp_key.3", "doc/man/man3/SSL_get_psk_identity.3", "doc/man/man3/SSL_get_rbio.3", + "doc/man/man3/SSL_get_rpoll_descriptor.3", "doc/man/man3/SSL_get_session.3", "doc/man/man3/SSL_get_shared_sigalgs.3", + "doc/man/man3/SSL_get_stream_id.3", + "doc/man/man3/SSL_get_stream_read_state.3", + "doc/man/man3/SSL_get_value_uint.3", "doc/man/man3/SSL_get_verify_result.3", "doc/man/man3/SSL_get_version.3", "doc/man/man3/SSL_group_to_name.3", + "doc/man/man3/SSL_handle_events.3", "doc/man/man3/SSL_in_init.3", + "doc/man/man3/SSL_inject_net_dgram.3", "doc/man/man3/SSL_key_update.3", "doc/man/man3/SSL_library_init.3", "doc/man/man3/SSL_load_client_CA_file.3", "doc/man/man3/SSL_new.3", + "doc/man/man3/SSL_new_domain.3", + "doc/man/man3/SSL_new_listener.3", + "doc/man/man3/SSL_new_stream.3", "doc/man/man3/SSL_pending.3", + "doc/man/man3/SSL_poll.3", "doc/man/man3/SSL_read.3", "doc/man/man3/SSL_read_early_data.3", "doc/man/man3/SSL_rstate_string.3", "doc/man/man3/SSL_session_reused.3", "doc/man/man3/SSL_set1_host.3", + "doc/man/man3/SSL_set1_initial_peer_addr.3", + "doc/man/man3/SSL_set1_server_cert_type.3", "doc/man/man3/SSL_set_async_callback.3", "doc/man/man3/SSL_set_bio.3", + "doc/man/man3/SSL_set_blocking_mode.3", "doc/man/man3/SSL_set_connect_state.3", + "doc/man/man3/SSL_set_default_stream_mode.3", "doc/man/man3/SSL_set_fd.3", + "doc/man/man3/SSL_set_incoming_stream_policy.3", + "doc/man/man3/SSL_set_quic_tls_cbs.3", "doc/man/man3/SSL_set_retry_verify.3", "doc/man/man3/SSL_set_session.3", + "doc/man/man3/SSL_set_session_secret_cb.3", "doc/man/man3/SSL_set_shutdown.3", "doc/man/man3/SSL_set_verify_result.3", "doc/man/man3/SSL_shutdown.3", "doc/man/man3/SSL_state_string.3", + "doc/man/man3/SSL_stream_conclude.3", + "doc/man/man3/SSL_stream_reset.3", "doc/man/man3/SSL_want.3", "doc/man/man3/SSL_write.3", "doc/man/man3/TS_RESP_CTX_new.3", - "doc/man/man3/TS_VERIFY_CTX_set_certs.3", + "doc/man/man3/TS_VERIFY_CTX.3", "doc/man/man3/UI_STRING.3", "doc/man/man3/UI_UTIL_read_pw.3", "doc/man/man3/UI_create_method.3", "doc/man/man3/UI_new.3", "doc/man/man3/X509V3_get_d2i.3", "doc/man/man3/X509V3_set_ctx.3", + "doc/man/man3/X509_ACERT_add1_attr.3", + "doc/man/man3/X509_ACERT_add_attr_nconf.3", + "doc/man/man3/X509_ACERT_get0_holder_baseCertId.3", + "doc/man/man3/X509_ACERT_get_attr.3", + "doc/man/man3/X509_ACERT_print_ex.3", "doc/man/man3/X509_ALGOR_dup.3", "doc/man/man3/X509_ATTRIBUTE.3", "doc/man/man3/X509_CRL_get0_by_serial.3", @@ -19987,6 +23281,7 @@ our %unified_info = ( "doc/man/man3/X509_REQ_get_attr.3", "doc/man/man3/X509_REQ_get_extensions.3", "doc/man/man3/X509_SIG_get0.3", + "doc/man/man3/X509_STORE_CTX_get_by_subject.3", "doc/man/man3/X509_STORE_CTX_get_error.3", "doc/man/man3/X509_STORE_CTX_new.3", "doc/man/man3/X509_STORE_CTX_set_verify_cb.3", @@ -20009,6 +23304,7 @@ our %unified_info = ( "doc/man/man3/X509_get0_notBefore.3", "doc/man/man3/X509_get0_signature.3", "doc/man/man3/X509_get0_uids.3", + "doc/man/man3/X509_get_default_cert_file.3", "doc/man/man3/X509_get_extension_flags.3", "doc/man/man3/X509_get_pubkey.3", "doc/man/man3/X509_get_serialNumber.3", @@ -20054,12 +23350,15 @@ our %unified_info = ( "doc/man/man7/EVP_CIPHER-RC5.7", "doc/man/man7/EVP_CIPHER-SEED.7", "doc/man/man7/EVP_CIPHER-SM4.7", + "doc/man/man7/EVP_KDF-ARGON2.7", "doc/man/man7/EVP_KDF-HKDF.7", + "doc/man/man7/EVP_KDF-HMAC-DRBG.7", "doc/man/man7/EVP_KDF-KB.7", "doc/man/man7/EVP_KDF-KRB5KDF.7", "doc/man/man7/EVP_KDF-PBKDF1.7", "doc/man/man7/EVP_KDF-PBKDF2.7", "doc/man/man7/EVP_KDF-PKCS12KDF.7", + "doc/man/man7/EVP_KDF-PVKKDF.7", "doc/man/man7/EVP_KDF-SCRYPT.7", "doc/man/man7/EVP_KDF-SS.7", "doc/man/man7/EVP_KDF-SSHKDF.7", @@ -20068,7 +23367,10 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-X942-ASN1.7", "doc/man/man7/EVP_KDF-X942-CONCAT.7", "doc/man/man7/EVP_KDF-X963.7", + "doc/man/man7/EVP_KEM-EC.7", + "doc/man/man7/EVP_KEM-ML-KEM.7", "doc/man/man7/EVP_KEM-RSA.7", + "doc/man/man7/EVP_KEM-X25519.7", "doc/man/man7/EVP_KEYEXCH-DH.7", "doc/man/man7/EVP_KEYEXCH-ECDH.7", "doc/man/man7/EVP_KEYEXCH-X25519.7", @@ -20080,6 +23382,7 @@ our %unified_info = ( "doc/man/man7/EVP_MAC-Poly1305.7", "doc/man/man7/EVP_MAC-Siphash.7", "doc/man/man7/EVP_MD-BLAKE2.7", + "doc/man/man7/EVP_MD-KECCAK.7", "doc/man/man7/EVP_MD-MD2.7", "doc/man/man7/EVP_MD-MD4.7", "doc/man/man7/EVP_MD-MD5-SHA1.7", @@ -20099,12 +23402,17 @@ our %unified_info = ( "doc/man/man7/EVP_PKEY-EC.7", "doc/man/man7/EVP_PKEY-FFC.7", "doc/man/man7/EVP_PKEY-HMAC.7", + "doc/man/man7/EVP_PKEY-ML-DSA.7", + "doc/man/man7/EVP_PKEY-ML-KEM.7", "doc/man/man7/EVP_PKEY-RSA.7", + "doc/man/man7/EVP_PKEY-SLH-DSA.7", "doc/man/man7/EVP_PKEY-SM2.7", "doc/man/man7/EVP_PKEY-X25519.7", + "doc/man/man7/EVP_RAND-CRNG-TEST.7", "doc/man/man7/EVP_RAND-CTR-DRBG.7", "doc/man/man7/EVP_RAND-HASH-DRBG.7", "doc/man/man7/EVP_RAND-HMAC-DRBG.7", + "doc/man/man7/EVP_RAND-JITTER.7", "doc/man/man7/EVP_RAND-SEED-SRC.7", "doc/man/man7/EVP_RAND-TEST-RAND.7", "doc/man/man7/EVP_RAND.7", @@ -20112,17 +23420,19 @@ our %unified_info = ( "doc/man/man7/EVP_SIGNATURE-ECDSA.7", "doc/man/man7/EVP_SIGNATURE-ED25519.7", "doc/man/man7/EVP_SIGNATURE-HMAC.7", + "doc/man/man7/EVP_SIGNATURE-ML-DSA.7", "doc/man/man7/EVP_SIGNATURE-RSA.7", + "doc/man/man7/EVP_SIGNATURE-SLH-DSA.7", "doc/man/man7/OSSL_PROVIDER-FIPS.7", "doc/man/man7/OSSL_PROVIDER-base.7", "doc/man/man7/OSSL_PROVIDER-default.7", "doc/man/man7/OSSL_PROVIDER-legacy.7", "doc/man/man7/OSSL_PROVIDER-null.7", + "doc/man/man7/OSSL_STORE-winstore.7", "doc/man/man7/RAND.7", "doc/man/man7/RSA-PSS.7", "doc/man/man7/X25519.7", "doc/man/man7/bio.7", - "doc/man/man7/crypto.7", "doc/man/man7/ct.7", "doc/man/man7/des_modes.7", "doc/man/man7/evp.7", @@ -20133,14 +23443,31 @@ our %unified_info = ( "doc/man/man7/life_cycle-mac.7", "doc/man/man7/life_cycle-pkey.7", "doc/man/man7/life_cycle-rand.7", - "doc/man/man7/migration_guide.7", "doc/man/man7/openssl-core.h.7", "doc/man/man7/openssl-core_dispatch.h.7", "doc/man/man7/openssl-core_names.h.7", "doc/man/man7/openssl-env.7", "doc/man/man7/openssl-glossary.7", + "doc/man/man7/openssl-qlog.7", + "doc/man/man7/openssl-quic-concurrency.7", + "doc/man/man7/openssl-quic.7", "doc/man/man7/openssl-threads.7", "doc/man/man7/openssl_user_macros.7", + "doc/man/man7/ossl-guide-introduction.7", + "doc/man/man7/ossl-guide-libcrypto-introduction.7", + "doc/man/man7/ossl-guide-libraries-introduction.7", + "doc/man/man7/ossl-guide-libssl-introduction.7", + "doc/man/man7/ossl-guide-migration.7", + "doc/man/man7/ossl-guide-quic-client-block.7", + "doc/man/man7/ossl-guide-quic-client-non-block.7", + "doc/man/man7/ossl-guide-quic-introduction.7", + "doc/man/man7/ossl-guide-quic-multi-stream.7", + "doc/man/man7/ossl-guide-quic-server-block.7", + "doc/man/man7/ossl-guide-quic-server-non-block.7", + "doc/man/man7/ossl-guide-tls-client-block.7", + "doc/man/man7/ossl-guide-tls-client-non-block.7", + "doc/man/man7/ossl-guide-tls-introduction.7", + "doc/man/man7/ossl-guide-tls-server-block.7", "doc/man/man7/ossl_store-file.7", "doc/man/man7/ossl_store.7", "doc/man/man7/passphrase-encoding.7", @@ -20159,10 +23486,10 @@ our %unified_info = ( "doc/man/man7/provider-object.7", "doc/man/man7/provider-rand.7", "doc/man/man7/provider-signature.7", + "doc/man/man7/provider-skeymgmt.7", "doc/man/man7/provider-storemgmt.7", "doc/man/man7/provider.7", "doc/man/man7/proxy-certificates.7", - "doc/man/man7/ssl.7", "doc/man/man7/x509.7" ] }, @@ -20174,6 +23501,7 @@ our %unified_info = ( ], "programs" => [ "apps/openssl", + "fuzz/acert-test", "fuzz/asn1-test", "fuzz/asn1parse-test", "fuzz/bignum-test", @@ -20184,7 +23512,24 @@ our %unified_info = ( "fuzz/conf-test", "fuzz/crl-test", "fuzz/ct-test", + "fuzz/decoder-test", + "fuzz/dtlsclient-test", + "fuzz/dtlsserver-test", + "fuzz/hashtable-test", + "fuzz/ml-dsa-test", + "fuzz/ml-kem-test", + "fuzz/pem-test", + "fuzz/provider-test", + "fuzz/punycode-test", + "fuzz/quic-client-test", + "fuzz/quic-lcidm-test", + "fuzz/quic-rcidm-test", + "fuzz/quic-server-test", + "fuzz/quic-srtm-test", "fuzz/server-test", + "fuzz/slh-dsa-test", + "fuzz/smime-test", + "fuzz/v3name-test", "fuzz/x509-test", "test/aborttest", "test/acvp_test", @@ -20202,21 +23547,28 @@ our %unified_info = ( "test/asynctest", "test/bad_dtls_test", "test/bftest", + "test/bio_addr_test", + "test/bio_base64_test", "test/bio_callback_test", "test/bio_core_test", + "test/bio_dgram_test", "test/bio_enc_test", "test/bio_memleak_test", + "test/bio_meth_test", "test/bio_prefix_text", "test/bio_pw_callback_test", "test/bio_readbuffer_test", + "test/bio_tfo_test", "test/bioprinttest", "test/bn_internal_test", "test/bntest", + "test/build_wincrypt_test", "test/buildtest_c_aes", "test/buildtest_c_async", "test/buildtest_c_blowfish", "test/buildtest_c_bn", "test/buildtest_c_buffer", + "test/buildtest_c_byteorder", "test/buildtest_c_camellia", "test/buildtest_c_cast", "test/buildtest_c_cmac", @@ -20225,7 +23577,6 @@ our %unified_info = ( "test/buildtest_c_conftypes", "test/buildtest_c_core", "test/buildtest_c_core_dispatch", - "test/buildtest_c_core_names", "test/buildtest_c_core_object", "test/buildtest_c_cryptoerr_legacy", "test/buildtest_c_decoder", @@ -20234,6 +23585,7 @@ our %unified_info = ( "test/buildtest_c_dsa", "test/buildtest_c_dtls1", "test/buildtest_c_e_os2", + "test/buildtest_c_e_ostime", "test/buildtest_c_ebcdic", "test/buildtest_c_ec", "test/buildtest_c_ecdh", @@ -20243,13 +23595,16 @@ our %unified_info = ( "test/buildtest_c_evp", "test/buildtest_c_fips_names", "test/buildtest_c_hmac", + "test/buildtest_c_hpke", "test/buildtest_c_http", "test/buildtest_c_idea", + "test/buildtest_c_indicator", "test/buildtest_c_kdf", "test/buildtest_c_macros", "test/buildtest_c_md4", "test/buildtest_c_md5", "test/buildtest_c_mdc2", + "test/buildtest_c_ml_kem", "test/buildtest_c_modes", "test/buildtest_c_obj_mac", "test/buildtest_c_objects", @@ -20260,6 +23615,7 @@ our %unified_info = ( "test/buildtest_c_pem2", "test/buildtest_c_prov_ssl", "test/buildtest_c_provider", + "test/buildtest_c_quic", "test/buildtest_c_rand", "test/buildtest_c_rc2", "test/buildtest_c_rc4", @@ -20274,11 +23630,14 @@ our %unified_info = ( "test/buildtest_c_stack", "test/buildtest_c_store", "test/buildtest_c_symhacks", + "test/buildtest_c_thread", "test/buildtest_c_tls1", "test/buildtest_c_ts", "test/buildtest_c_txt_db", "test/buildtest_c_types", "test/buildtest_c_whrlpool", + "test/byteorder_test", + "test/ca_internals_test", "test/casttest", "test/chacha_internal_test", "test/cipher_overhead_test", @@ -20307,6 +23666,7 @@ our %unified_info = ( "test/curve448_internal_test", "test/d2i_test", "test/danetest", + "test/decoder_propq_test", "test/defltfips_test", "test/destest", "test/dhtest", @@ -20331,9 +23691,12 @@ our %unified_info = ( "test/evp_kdf_test", "test/evp_libctx_test", "test/evp_pkey_ctx_new_from_name", + "test/evp_pkey_dhkem_test", "test/evp_pkey_dparams_test", "test/evp_pkey_provided_test", + "test/evp_skey_test", "test/evp_test", + "test/evp_xof_test", "test/exdatatest", "test/exptest", "test/ext_internal_test", @@ -20343,21 +23706,29 @@ our %unified_info = ( "test/gmdifftest", "test/hexstr_test", "test/hmactest", + "test/hpke_test", "test/http_test", "test/ideatest", "test/igetest", + "test/json_test", "test/keymgmt_internal_test", "test/lhash_test", + "test/list_test", "test/localetest", "test/mdc2_internal_test", "test/mdc2test", + "test/membio_test", "test/memleaktest", + "test/ml_dsa_test", + "test/ml_kem_evp_extra_test", + "test/ml_kem_internal_test", "test/modes_internal_test", "test/namemap_internal_test", "test/nodefltctxtest", "test/ocspapitest", "test/ossl_store_test", "test/packettest", + "test/pairwise_fail_test", "test/param_build_test", "test/params_api_test", "test/params_conversion_test", @@ -20366,36 +23737,65 @@ our %unified_info = ( "test/pbetest", "test/pem_read_depr_test", "test/pemtest", + "test/pkcs12_api_test", "test/pkcs12_format_test", "test/pkcs7_test", "test/pkey_meth_kdf_test", "test/pkey_meth_test", "test/poly1305_internal_test", + "test/priority_queue_test", "test/property_test", "test/prov_config_test", "test/provfetchtest", + "test/provider_default_search_path_test", "test/provider_fallback_test", "test/provider_internal_test", "test/provider_pkey_test", "test/provider_status_test", "test/provider_test", "test/punycode_test", + "test/quic_ackm_test", + "test/quic_cc_test", + "test/quic_cfq_test", + "test/quic_client_test", + "test/quic_fc_test", + "test/quic_fifd_test", + "test/quic_lcidm_test", + "test/quic_multistream_test", + "test/quic_newcid_test", + "test/quic_qlog_test", + "test/quic_radix_test", + "test/quic_rcidm_test", + "test/quic_record_test", + "test/quic_srt_gen_test", + "test/quic_srtm_test", + "test/quic_stream_test", + "test/quic_tserver_test", + "test/quic_txp_test", + "test/quic_txpim_test", + "test/quic_wire_test", + "test/quicapitest", + "test/quicfaultstest", "test/rand_status_test", "test/rand_test", "test/rc2test", "test/rc4test", "test/rc5test", - "test/rdrand_sanitytest", + "test/rdcpu_sanitytest", "test/recordlentest", + "test/rpktest", "test/rsa_complex", "test/rsa_mp_test", "test/rsa_sp800_56b_test", "test/rsa_test", + "test/rsa_x931_test", + "test/safe_math_test", "test/sanitytest", "test/secmemtest", "test/servername_test", "test/sha_test", "test/siphash_internal_test", + "test/slh_dsa_test", "test/sm2_internal_test", "test/sm3_internal_test", "test/sm4_internal_test", @@ -20403,6 +23803,7 @@ our %unified_info = ( "test/srptest", "test/ssl_cert_table_internal_test", "test/ssl_ctx_test", + "test/ssl_handshake_rtt_test", "test/ssl_old_test", "test/ssl_test", "test/ssl_test_ctx_test", @@ -20410,13 +23811,17 @@ our %unified_info = ( "test/sslbuffertest", "test/sslcorrupttest", "test/stack_test", + "test/strtoultest", "test/sysdefaulttest", "test/test_test", + "test/threadpool_test", "test/threadstest", "test/threadstest_fips", "test/time_offset_test", + "test/time_test", "test/tls13ccstest", "test/tls13encryptiontest", + "test/tls13groupselection_test", "test/trace_api_test", "test/uitest", "test/upcallstest", @@ -20426,9 +23831,13 @@ our %unified_info = ( "test/verify_extra_test", "test/versions", "test/wpackettest", + "test/x509_acert_test", "test/x509_check_cert_pkey_test", "test/x509_dup_cert_test", "test/x509_internal_test", + "test/x509_load_cert_file_test", + "test/x509_req_test", + "test/x509_test", "test/x509_time_test", "test/x509aux" ], @@ -20444,6 +23853,33 @@ our %unified_info = ( "apps/CA.pl" => [ "apps/CA.pl.in" ], + "apps/ca_internals_test-bin-ca.o" => [ + "apps/ca.c" + ], + "apps/lib/ca_internals_test-bin-app_libctx.o" => [ + "apps/lib/app_libctx.c" + ], + "apps/lib/ca_internals_test-bin-app_provider.o" => [ + "apps/lib/app_provider.c" + ], + "apps/lib/ca_internals_test-bin-app_rand.o" => [ + "apps/lib/app_rand.c" + ], + "apps/lib/ca_internals_test-bin-app_x509.o" => [ + "apps/lib/app_x509.c" + ], + "apps/lib/ca_internals_test-bin-apps.o" => [ + "apps/lib/apps.c" + ], + "apps/lib/ca_internals_test-bin-apps_ui.o" => [ + "apps/lib/apps_ui.c" + ], + "apps/lib/ca_internals_test-bin-engine.o" => [ + "apps/lib/engine.c" + ], + "apps/lib/ca_internals_test-bin-fmt.o" => [ + "apps/lib/fmt.c" + ], "apps/lib/cmp_client_test-bin-cmp_mock_srv.o" => [ "apps/lib/cmp_mock_srv.c" ], @@ -20465,6 +23901,9 @@ our %unified_info = ( "apps/lib/libapps-lib-apps.o" => [ "apps/lib/apps.c" ], + "apps/lib/libapps-lib-apps_opt_printf.o" => [ + "apps/lib/apps_opt_printf.c" + ], "apps/lib/libapps-lib-apps_ui.o" => [ "apps/lib/apps_ui.c" ], @@ -20483,6 +23922,9 @@ our %unified_info = ( "apps/lib/libapps-lib-http_server.o" => [ "apps/lib/http_server.c" ], + "apps/lib/libapps-lib-log.o" => [ + "apps/lib/log.c" + ], "apps/lib/libapps-lib-names.o" => [ "apps/lib/names.c" ], @@ -20514,12 +23956,14 @@ our %unified_info = ( "apps/lib/libapps-lib-app_rand.o", "apps/lib/libapps-lib-app_x509.o", "apps/lib/libapps-lib-apps.o", + "apps/lib/libapps-lib-apps_opt_printf.o", "apps/lib/libapps-lib-apps_ui.o", "apps/lib/libapps-lib-columns.o", "apps/lib/libapps-lib-engine.o", "apps/lib/libapps-lib-engine_loader.o", "apps/lib/libapps-lib-fmt.o", "apps/lib/libapps-lib-http_server.o", + "apps/lib/libapps-lib-log.o", "apps/lib/libapps-lib-names.o", "apps/lib/libapps-lib-opt.o", "apps/lib/libapps-lib-s_cb.o", @@ -20573,6 +24017,7 @@ our %unified_info = ( "apps/openssl-bin-s_server.o", "apps/openssl-bin-s_time.o", "apps/openssl-bin-sess_id.o", + "apps/openssl-bin-skeyutl.o", "apps/openssl-bin-smime.o", "apps/openssl-bin-speed.o", "apps/openssl-bin-spkac.o", @@ -20718,6 +24163,9 @@ our %unified_info = ( "apps/openssl-bin-sess_id.o" => [ "apps/sess_id.c" ], + "apps/openssl-bin-skeyutl.o" => [ + "apps/skeyutl.c" + ], "apps/openssl-bin-smime.o" => [ "apps/smime.c" ], @@ -20805,6 +24253,12 @@ our %unified_info = ( "crypto/aria/libcrypto-lib-aria.o" => [ "crypto/aria/aria.c" ], + "crypto/asn1/asn1_time_test-bin-a_time.o" => [ + "crypto/asn1/a_time.c" + ], + "crypto/asn1/ca_internals_test-bin-a_time.o" => [ + "crypto/asn1/a_time.c" + ], "crypto/asn1/libcrypto-lib-a_bitstr.o" => [ "crypto/asn1/a_bitstr.c" ], @@ -20997,6 +24451,9 @@ our %unified_info = ( "crypto/asn1/libcrypto-lib-x_val.o" => [ "crypto/asn1/x_val.c" ], + "crypto/asn1_time_test-bin-ctype.o" => [ + "crypto/ctype.c" + ], "crypto/async/arch/libcrypto-lib-async_null.o" => [ "crypto/async/arch/async_null.c" ], @@ -21090,6 +24547,9 @@ our %unified_info = ( "crypto/bio/libcrypto-lib-bss_dgram.o" => [ "crypto/bio/bss_dgram.c" ], + "crypto/bio/libcrypto-lib-bss_dgram_pair.o" => [ + "crypto/bio/bss_dgram_pair.c" + ], "crypto/bio/libcrypto-lib-bss_fd.o" => [ "crypto/bio/bss_fd.c" ], @@ -21216,6 +24676,9 @@ our %unified_info = ( "crypto/bn/libcrypto-lib-ppc-mont.o" => [ "crypto/bn/ppc-mont.s" ], + "crypto/bn/libcrypto-lib-ppc64-mont-fixed.o" => [ + "crypto/bn/ppc64-mont-fixed.s" + ], "crypto/bn/libfips-lib-bn-ppc.o" => [ "crypto/bn/bn-ppc.s" ], @@ -21306,6 +24769,9 @@ our %unified_info = ( "crypto/bn/libfips-lib-ppc-mont.o" => [ "crypto/bn/ppc-mont.s" ], + "crypto/bn/libfips-lib-ppc64-mont-fixed.o" => [ + "crypto/bn/ppc64-mont-fixed.s" + ], "crypto/buffer/libcrypto-lib-buf_err.o" => [ "crypto/buffer/buf_err.c" ], @@ -21315,6 +24781,9 @@ our %unified_info = ( "crypto/buffer/libfips-lib-buffer.o" => [ "crypto/buffer/buffer.c" ], + "crypto/ca_internals_test-bin-ctype.o" => [ + "crypto/ctype.c" + ], "crypto/camellia/libcrypto-lib-camellia.o" => [ "crypto/camellia/camellia.c" ], @@ -21375,6 +24844,9 @@ our %unified_info = ( "crypto/cmp/libcrypto-lib-cmp_err.o" => [ "crypto/cmp/cmp_err.c" ], + "crypto/cmp/libcrypto-lib-cmp_genm.o" => [ + "crypto/cmp/cmp_genm.c" + ], "crypto/cmp/libcrypto-lib-cmp_hdr.o" => [ "crypto/cmp/cmp_hdr.c" ], @@ -22074,9 +25546,15 @@ our %unified_info = ( "crypto/err/libcrypto-lib-err_blocks.o" => [ "crypto/err/err_blocks.c" ], + "crypto/err/libcrypto-lib-err_mark.o" => [ + "crypto/err/err_mark.c" + ], "crypto/err/libcrypto-lib-err_prn.o" => [ "crypto/err/err_prn.c" ], + "crypto/err/libcrypto-lib-err_save.o" => [ + "crypto/err/err_save.c" + ], "crypto/ess/libcrypto-lib-ess_asn1.o" => [ "crypto/ess/ess_asn1.c" ], @@ -22323,9 +25801,15 @@ our %unified_info = ( "crypto/evp/libcrypto-lib-pmeth_lib.o" => [ "crypto/evp/pmeth_lib.c" ], + "crypto/evp/libcrypto-lib-s_lib.o" => [ + "crypto/evp/s_lib.c" + ], "crypto/evp/libcrypto-lib-signature.o" => [ "crypto/evp/signature.c" ], + "crypto/evp/libcrypto-lib-skeymgmt_meth.o" => [ + "crypto/evp/skeymgmt_meth.c" + ], "crypto/evp/libfips-lib-asymcipher.o" => [ "crypto/evp/asymcipher.c" ], @@ -22371,9 +25855,6 @@ our %unified_info = ( "crypto/evp/libfips-lib-keymgmt_meth.o" => [ "crypto/evp/keymgmt_meth.c" ], - "crypto/evp/libfips-lib-m_sigver.o" => [ - "crypto/evp/m_sigver.c" - ], "crypto/evp/libfips-lib-mac_lib.o" => [ "crypto/evp/mac_lib.c" ], @@ -22392,9 +25873,15 @@ our %unified_info = ( "crypto/evp/libfips-lib-pmeth_lib.o" => [ "crypto/evp/pmeth_lib.c" ], + "crypto/evp/libfips-lib-s_lib.o" => [ + "crypto/evp/s_lib.c" + ], "crypto/evp/libfips-lib-signature.o" => [ "crypto/evp/signature.c" ], + "crypto/evp/libfips-lib-skeymgmt_meth.o" => [ + "crypto/evp/skeymgmt_meth.c" + ], "crypto/ffc/libcrypto-lib-ffc_backend.o" => [ "crypto/ffc/ffc_backend.c" ], @@ -22437,12 +25924,30 @@ our %unified_info = ( "crypto/ffc/libfips-lib-ffc_params_validate.o" => [ "crypto/ffc/ffc_params_validate.c" ], + "crypto/hashtable/libcrypto-lib-hashfunc.o" => [ + "crypto/hashtable/hashfunc.c" + ], + "crypto/hashtable/libcrypto-lib-hashtable.o" => [ + "crypto/hashtable/hashtable.c" + ], + "crypto/hashtable/libfips-lib-hashfunc.o" => [ + "crypto/hashtable/hashfunc.c" + ], + "crypto/hashtable/libfips-lib-hashtable.o" => [ + "crypto/hashtable/hashtable.c" + ], "crypto/hmac/libcrypto-lib-hmac.o" => [ "crypto/hmac/hmac.c" ], "crypto/hmac/libfips-lib-hmac.o" => [ "crypto/hmac/hmac.c" ], + "crypto/hpke/libcrypto-lib-hpke.o" => [ + "crypto/hpke/hpke.c" + ], + "crypto/hpke/libcrypto-lib-hpke_util.o" => [ + "crypto/hpke/hpke_util.c" + ], "crypto/http/libcrypto-lib-http_client.o" => [ "crypto/http/http_client.c" ], @@ -22485,6 +25990,9 @@ our %unified_info = ( "crypto/libcrypto-lib-bsearch.o" => [ "crypto/bsearch.c" ], + "crypto/libcrypto-lib-comp_methods.o" => [ + "crypto/comp_methods.c" + ], "crypto/libcrypto-lib-context.o" => [ "crypto/context.c" ], @@ -22512,9 +26020,15 @@ our %unified_info = ( "crypto/libcrypto-lib-cversion.o" => [ "crypto/cversion.c" ], + "crypto/libcrypto-lib-defaults.o" => [ + "crypto/defaults.c" + ], "crypto/libcrypto-lib-der_writer.o" => [ "crypto/der_writer.c" ], + "crypto/libcrypto-lib-deterministic_nonce.o" => [ + "crypto/deterministic_nonce.c" + ], "crypto/libcrypto-lib-ebcdic.o" => [ "crypto/ebcdic.c" ], @@ -22524,6 +26038,9 @@ our %unified_info = ( "crypto/libcrypto-lib-getenv.o" => [ "crypto/getenv.c" ], + "crypto/libcrypto-lib-indicator_core.o" => [ + "crypto/indicator_core.c" + ], "crypto/libcrypto-lib-info.o" => [ "crypto/info.c" ], @@ -22572,6 +26089,9 @@ our %unified_info = ( "crypto/libcrypto-lib-params_from_text.o" => [ "crypto/params_from_text.c" ], + "crypto/libcrypto-lib-params_idx.o" => [ + "crypto/params_idx.c" + ], "crypto/libcrypto-lib-passphrase.o" => [ "crypto/passphrase.c" ], @@ -22599,12 +26119,21 @@ our %unified_info = ( "crypto/libcrypto-lib-punycode.o" => [ "crypto/punycode.c" ], + "crypto/libcrypto-lib-quic_vlint.o" => [ + "crypto/quic_vlint.c" + ], "crypto/libcrypto-lib-self_test_core.o" => [ "crypto/self_test_core.c" ], + "crypto/libcrypto-lib-sleep.o" => [ + "crypto/sleep.c" + ], "crypto/libcrypto-lib-sparse_array.o" => [ "crypto/sparse_array.c" ], + "crypto/libcrypto-lib-ssl_err.o" => [ + "crypto/ssl_err.c" + ], "crypto/libcrypto-lib-threads_lib.o" => [ "crypto/threads_lib.c" ], @@ -22617,6 +26146,9 @@ our %unified_info = ( "crypto/libcrypto-lib-threads_win.o" => [ "crypto/threads_win.c" ], + "crypto/libcrypto-lib-time.o" => [ + "crypto/time.c" + ], "crypto/libcrypto-lib-trace.o" => [ "crypto/trace.c" ], @@ -22680,6 +26212,9 @@ our %unified_info = ( "crypto/libfips-lib-params_from_text.o" => [ "crypto/params_from_text.c" ], + "crypto/libfips-lib-params_idx.o" => [ + "crypto/params_idx.c" + ], "crypto/libfips-lib-ppccap.o" => [ "crypto/ppccap.c" ], @@ -22710,6 +26245,9 @@ our %unified_info = ( "crypto/libfips-lib-threads_win.o" => [ "crypto/threads_win.c" ], + "crypto/libfips-lib-time.o" => [ + "crypto/time.c" + ], "crypto/md4/libcrypto-lib-md4_dgst.o" => [ "crypto/md4/md4_dgst.c" ], @@ -22731,6 +26269,60 @@ our %unified_info = ( "crypto/mdc2/libcrypto-lib-mdc2dgst.o" => [ "crypto/mdc2/mdc2dgst.c" ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_encoders.o" => [ + "crypto/ml_dsa/ml_dsa_encoders.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key.o" => [ + "crypto/ml_dsa/ml_dsa_key.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key_compress.o" => [ + "crypto/ml_dsa/ml_dsa_key_compress.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_matrix.o" => [ + "crypto/ml_dsa/ml_dsa_matrix.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_ntt.o" => [ + "crypto/ml_dsa/ml_dsa_ntt.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_params.o" => [ + "crypto/ml_dsa/ml_dsa_params.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sample.o" => [ + "crypto/ml_dsa/ml_dsa_sample.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sign.o" => [ + "crypto/ml_dsa/ml_dsa_sign.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_encoders.o" => [ + "crypto/ml_dsa/ml_dsa_encoders.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_key.o" => [ + "crypto/ml_dsa/ml_dsa_key.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_key_compress.o" => [ + "crypto/ml_dsa/ml_dsa_key_compress.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_matrix.o" => [ + "crypto/ml_dsa/ml_dsa_matrix.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_ntt.o" => [ + "crypto/ml_dsa/ml_dsa_ntt.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_params.o" => [ + "crypto/ml_dsa/ml_dsa_params.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_sample.o" => [ + "crypto/ml_dsa/ml_dsa_sample.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_sign.o" => [ + "crypto/ml_dsa/ml_dsa_sign.c" + ], + "crypto/ml_kem/libcrypto-lib-ml_kem.o" => [ + "crypto/ml_kem/ml_kem.c" + ], + "crypto/ml_kem/libfips-lib-ml_kem.o" => [ + "crypto/ml_kem/ml_kem.c" + ], "crypto/modes/libcrypto-lib-cbc128.o" => [ "crypto/modes/cbc128.c" ], @@ -22767,6 +26359,9 @@ our %unified_info = ( "crypto/modes/libcrypto-lib-xts128.o" => [ "crypto/modes/xts128.c" ], + "crypto/modes/libcrypto-lib-xts128gb.o" => [ + "crypto/modes/xts128gb.c" + ], "crypto/modes/libfips-lib-cbc128.o" => [ "crypto/modes/cbc128.c" ], @@ -22794,6 +26389,9 @@ our %unified_info = ( "crypto/modes/libfips-lib-xts128.o" => [ "crypto/modes/xts128.c" ], + "crypto/modes/libfips-lib-xts128gb.o" => [ + "crypto/modes/xts128gb.c" + ], "crypto/objects/libcrypto-lib-o_names.o" => [ "crypto/objects/o_names.c" ], @@ -22839,6 +26437,9 @@ our %unified_info = ( "crypto/ocsp/libcrypto-lib-v3_ocsp.o" => [ "crypto/ocsp/v3_ocsp.c" ], + "crypto/packettest-bin-quic_vlint.o" => [ + "crypto/quic_vlint.c" + ], "crypto/pem/libcrypto-lib-pem_all.o" => [ "crypto/pem/pem_all.c" ], @@ -23007,6 +26608,9 @@ our %unified_info = ( "crypto/rand/libcrypto-lib-rand_pool.o" => [ "crypto/rand/rand_pool.c" ], + "crypto/rand/libcrypto-lib-rand_uniform.o" => [ + "crypto/rand/rand_uniform.c" + ], "crypto/rand/libcrypto-lib-randfile.o" => [ "crypto/rand/randfile.c" ], @@ -23256,6 +26860,66 @@ our %unified_info = ( "crypto/siphash/libcrypto-lib-siphash.o" => [ "crypto/siphash/siphash.c" ], + "crypto/slh_dsa/libcrypto-lib-slh_adrs.o" => [ + "crypto/slh_dsa/slh_adrs.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_dsa.o" => [ + "crypto/slh_dsa/slh_dsa.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_dsa_hash_ctx.o" => [ + "crypto/slh_dsa/slh_dsa_hash_ctx.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_dsa_key.o" => [ + "crypto/slh_dsa/slh_dsa_key.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_fors.o" => [ + "crypto/slh_dsa/slh_fors.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_hash.o" => [ + "crypto/slh_dsa/slh_hash.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_hypertree.o" => [ + "crypto/slh_dsa/slh_hypertree.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_params.o" => [ + "crypto/slh_dsa/slh_params.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_wots.o" => [ + "crypto/slh_dsa/slh_wots.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_xmss.o" => [ + "crypto/slh_dsa/slh_xmss.c" + ], + "crypto/slh_dsa/libfips-lib-slh_adrs.o" => [ + "crypto/slh_dsa/slh_adrs.c" + ], + "crypto/slh_dsa/libfips-lib-slh_dsa.o" => [ + "crypto/slh_dsa/slh_dsa.c" + ], + "crypto/slh_dsa/libfips-lib-slh_dsa_hash_ctx.o" => [ + "crypto/slh_dsa/slh_dsa_hash_ctx.c" + ], + "crypto/slh_dsa/libfips-lib-slh_dsa_key.o" => [ + "crypto/slh_dsa/slh_dsa_key.c" + ], + "crypto/slh_dsa/libfips-lib-slh_fors.o" => [ + "crypto/slh_dsa/slh_fors.c" + ], + "crypto/slh_dsa/libfips-lib-slh_hash.o" => [ + "crypto/slh_dsa/slh_hash.c" + ], + "crypto/slh_dsa/libfips-lib-slh_hypertree.o" => [ + "crypto/slh_dsa/slh_hypertree.c" + ], + "crypto/slh_dsa/libfips-lib-slh_params.o" => [ + "crypto/slh_dsa/slh_params.c" + ], + "crypto/slh_dsa/libfips-lib-slh_wots.o" => [ + "crypto/slh_dsa/slh_wots.c" + ], + "crypto/slh_dsa/libfips-lib-slh_xmss.o" => [ + "crypto/slh_dsa/slh_xmss.c" + ], "crypto/sm2/libcrypto-lib-sm2_crypt.o" => [ "crypto/sm2/sm2_crypt.c" ], @@ -23310,6 +26974,42 @@ our %unified_info = ( "crypto/store/libcrypto-lib-store_strings.o" => [ "crypto/store/store_strings.c" ], + "crypto/thread/arch/libcrypto-lib-thread_none.o" => [ + "crypto/thread/arch/thread_none.c" + ], + "crypto/thread/arch/libcrypto-lib-thread_posix.o" => [ + "crypto/thread/arch/thread_posix.c" + ], + "crypto/thread/arch/libcrypto-lib-thread_win.o" => [ + "crypto/thread/arch/thread_win.c" + ], + "crypto/thread/arch/libfips-lib-thread_none.o" => [ + "crypto/thread/arch/thread_none.c" + ], + "crypto/thread/arch/libfips-lib-thread_posix.o" => [ + "crypto/thread/arch/thread_posix.c" + ], + "crypto/thread/arch/libfips-lib-thread_win.o" => [ + "crypto/thread/arch/thread_win.c" + ], + "crypto/thread/libcrypto-lib-api.o" => [ + "crypto/thread/api.c" + ], + "crypto/thread/libcrypto-lib-arch.o" => [ + "crypto/thread/arch.c" + ], + "crypto/thread/libcrypto-lib-internal.o" => [ + "crypto/thread/internal.c" + ], + "crypto/thread/libfips-lib-api.o" => [ + "crypto/thread/api.c" + ], + "crypto/thread/libfips-lib-arch.o" => [ + "crypto/thread/arch.c" + ], + "crypto/thread/libfips-lib-internal.o" => [ + "crypto/thread/internal.c" + ], "crypto/ts/libcrypto-lib-ts_asn1.o" => [ "crypto/ts/ts_asn1.c" ], @@ -23394,6 +27094,9 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-pcy_tree.o" => [ "crypto/x509/pcy_tree.c" ], + "crypto/x509/libcrypto-lib-t_acert.o" => [ + "crypto/x509/t_acert.c" + ], "crypto/x509/libcrypto-lib-t_crl.o" => [ "crypto/x509/t_crl.c" ], @@ -23403,6 +27106,12 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-t_x509.o" => [ "crypto/x509/t_x509.c" ], + "crypto/x509/libcrypto-lib-v3_aaa.o" => [ + "crypto/x509/v3_aaa.c" + ], + "crypto/x509/libcrypto-lib-v3_ac_tgt.o" => [ + "crypto/x509/v3_ac_tgt.c" + ], "crypto/x509/libcrypto-lib-v3_addr.o" => [ "crypto/x509/v3_addr.c" ], @@ -23418,6 +27127,21 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_asid.o" => [ "crypto/x509/v3_asid.c" ], + "crypto/x509/libcrypto-lib-v3_attrdesc.o" => [ + "crypto/x509/v3_attrdesc.c" + ], + "crypto/x509/libcrypto-lib-v3_attrmap.o" => [ + "crypto/x509/v3_attrmap.c" + ], + "crypto/x509/libcrypto-lib-v3_audit_id.o" => [ + "crypto/x509/v3_audit_id.c" + ], + "crypto/x509/libcrypto-lib-v3_authattid.o" => [ + "crypto/x509/v3_authattid.c" + ], + "crypto/x509/libcrypto-lib-v3_battcons.o" => [ + "crypto/x509/v3_battcons.c" + ], "crypto/x509/libcrypto-lib-v3_bcons.o" => [ "crypto/x509/v3_bcons.c" ], @@ -23442,15 +27166,24 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_genn.o" => [ "crypto/x509/v3_genn.c" ], + "crypto/x509/libcrypto-lib-v3_group_ac.o" => [ + "crypto/x509/v3_group_ac.c" + ], "crypto/x509/libcrypto-lib-v3_ia5.o" => [ "crypto/x509/v3_ia5.c" ], + "crypto/x509/libcrypto-lib-v3_ind_iss.o" => [ + "crypto/x509/v3_ind_iss.c" + ], "crypto/x509/libcrypto-lib-v3_info.o" => [ "crypto/x509/v3_info.c" ], "crypto/x509/libcrypto-lib-v3_int.o" => [ "crypto/x509/v3_int.c" ], + "crypto/x509/libcrypto-lib-v3_iobo.o" => [ + "crypto/x509/v3_iobo.c" + ], "crypto/x509/libcrypto-lib-v3_ist.o" => [ "crypto/x509/v3_ist.c" ], @@ -23460,6 +27193,12 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_ncons.o" => [ "crypto/x509/v3_ncons.c" ], + "crypto/x509/libcrypto-lib-v3_no_ass.o" => [ + "crypto/x509/v3_no_ass.c" + ], + "crypto/x509/libcrypto-lib-v3_no_rev_avail.o" => [ + "crypto/x509/v3_no_rev_avail.c" + ], "crypto/x509/libcrypto-lib-v3_pci.o" => [ "crypto/x509/v3_pci.c" ], @@ -23481,18 +27220,36 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_purp.o" => [ "crypto/x509/v3_purp.c" ], + "crypto/x509/libcrypto-lib-v3_rolespec.o" => [ + "crypto/x509/v3_rolespec.c" + ], "crypto/x509/libcrypto-lib-v3_san.o" => [ "crypto/x509/v3_san.c" ], + "crypto/x509/libcrypto-lib-v3_sda.o" => [ + "crypto/x509/v3_sda.c" + ], + "crypto/x509/libcrypto-lib-v3_single_use.o" => [ + "crypto/x509/v3_single_use.c" + ], "crypto/x509/libcrypto-lib-v3_skid.o" => [ "crypto/x509/v3_skid.c" ], + "crypto/x509/libcrypto-lib-v3_soa_id.o" => [ + "crypto/x509/v3_soa_id.c" + ], "crypto/x509/libcrypto-lib-v3_sxnet.o" => [ "crypto/x509/v3_sxnet.c" ], + "crypto/x509/libcrypto-lib-v3_timespec.o" => [ + "crypto/x509/v3_timespec.c" + ], "crypto/x509/libcrypto-lib-v3_tlsf.o" => [ "crypto/x509/v3_tlsf.c" ], + "crypto/x509/libcrypto-lib-v3_usernotice.o" => [ + "crypto/x509/v3_usernotice.c" + ], "crypto/x509/libcrypto-lib-v3_utf8.o" => [ "crypto/x509/v3_utf8.c" ], @@ -23502,6 +27259,9 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3err.o" => [ "crypto/x509/v3err.c" ], + "crypto/x509/libcrypto-lib-x509_acert.o" => [ + "crypto/x509/x509_acert.c" + ], "crypto/x509/libcrypto-lib-x509_att.o" => [ "crypto/x509/x509_att.c" ], @@ -23553,6 +27313,9 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x509_vpm.o" => [ "crypto/x509/x509_vpm.c" ], + "crypto/x509/libcrypto-lib-x509aset.o" => [ + "crypto/x509/x509aset.c" + ], "crypto/x509/libcrypto-lib-x509cset.o" => [ "crypto/x509/x509cset.c" ], @@ -23580,6 +27343,9 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x_exten.o" => [ "crypto/x509/x_exten.c" ], + "crypto/x509/libcrypto-lib-x_ietfatt.o" => [ + "crypto/x509/x_ietfatt.c" + ], "crypto/x509/libcrypto-lib-x_name.o" => [ "crypto/x509/x_name.c" ], @@ -23601,6 +27367,16 @@ our %unified_info = ( "engines/libcrypto-lib-e_padlock.o" => [ "engines/e_padlock.c" ], + "fuzz/acert-test" => [ + "fuzz/acert-test-bin-acert.o", + "fuzz/acert-test-bin-test-corpus.o" + ], + "fuzz/acert-test-bin-acert.o" => [ + "fuzz/acert.c" + ], + "fuzz/acert-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], "fuzz/asn1-test" => [ "fuzz/asn1-test-bin-asn1.o", "fuzz/asn1-test-bin-fuzz_rand.o", @@ -23713,6 +27489,190 @@ our %unified_info = ( "fuzz/ct-test-bin-test-corpus.o" => [ "fuzz/test-corpus.c" ], + "fuzz/decoder-test" => [ + "fuzz/decoder-test-bin-decoder.o", + "fuzz/decoder-test-bin-fuzz_rand.o", + "fuzz/decoder-test-bin-test-corpus.o" + ], + "fuzz/decoder-test-bin-decoder.o" => [ + "fuzz/decoder.c" + ], + "fuzz/decoder-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/decoder-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/dtlsclient-test" => [ + "fuzz/dtlsclient-test-bin-dtlsclient.o", + "fuzz/dtlsclient-test-bin-fuzz_rand.o", + "fuzz/dtlsclient-test-bin-test-corpus.o" + ], + "fuzz/dtlsclient-test-bin-dtlsclient.o" => [ + "fuzz/dtlsclient.c" + ], + "fuzz/dtlsclient-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/dtlsclient-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/dtlsserver-test" => [ + "fuzz/dtlsserver-test-bin-dtlsserver.o", + "fuzz/dtlsserver-test-bin-fuzz_rand.o", + "fuzz/dtlsserver-test-bin-test-corpus.o" + ], + "fuzz/dtlsserver-test-bin-dtlsserver.o" => [ + "fuzz/dtlsserver.c" + ], + "fuzz/dtlsserver-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/dtlsserver-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/hashtable-test" => [ + "fuzz/hashtable-test-bin-fuzz_rand.o", + "fuzz/hashtable-test-bin-hashtable.o", + "fuzz/hashtable-test-bin-test-corpus.o" + ], + "fuzz/hashtable-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/hashtable-test-bin-hashtable.o" => [ + "fuzz/hashtable.c" + ], + "fuzz/hashtable-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/ml-dsa-test" => [ + "fuzz/ml-dsa-test-bin-fuzz_rand.o", + "fuzz/ml-dsa-test-bin-ml-dsa.o", + "fuzz/ml-dsa-test-bin-test-corpus.o" + ], + "fuzz/ml-dsa-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/ml-dsa-test-bin-ml-dsa.o" => [ + "fuzz/ml-dsa.c" + ], + "fuzz/ml-dsa-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/ml-kem-test" => [ + "fuzz/ml-kem-test-bin-fuzz_rand.o", + "fuzz/ml-kem-test-bin-ml-kem.o", + "fuzz/ml-kem-test-bin-test-corpus.o" + ], + "fuzz/ml-kem-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/ml-kem-test-bin-ml-kem.o" => [ + "fuzz/ml-kem.c" + ], + "fuzz/ml-kem-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/pem-test" => [ + "fuzz/pem-test-bin-pem.o", + "fuzz/pem-test-bin-test-corpus.o" + ], + "fuzz/pem-test-bin-pem.o" => [ + "fuzz/pem.c" + ], + "fuzz/pem-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/provider-test" => [ + "fuzz/provider-test-bin-provider.o", + "fuzz/provider-test-bin-test-corpus.o" + ], + "fuzz/provider-test-bin-provider.o" => [ + "fuzz/provider.c" + ], + "fuzz/provider-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/punycode-test" => [ + "fuzz/punycode-test-bin-punycode.o", + "fuzz/punycode-test-bin-test-corpus.o" + ], + "fuzz/punycode-test-bin-punycode.o" => [ + "fuzz/punycode.c" + ], + "fuzz/punycode-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-client-test" => [ + "fuzz/quic-client-test-bin-fuzz_rand.o", + "fuzz/quic-client-test-bin-quic-client.o", + "fuzz/quic-client-test-bin-test-corpus.o" + ], + "fuzz/quic-client-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-client-test-bin-quic-client.o" => [ + "fuzz/quic-client.c" + ], + "fuzz/quic-client-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-lcidm-test" => [ + "fuzz/quic-lcidm-test-bin-fuzz_rand.o", + "fuzz/quic-lcidm-test-bin-quic-lcidm.o", + "fuzz/quic-lcidm-test-bin-test-corpus.o" + ], + "fuzz/quic-lcidm-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-lcidm-test-bin-quic-lcidm.o" => [ + "fuzz/quic-lcidm.c" + ], + "fuzz/quic-lcidm-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-rcidm-test" => [ + "fuzz/quic-rcidm-test-bin-fuzz_rand.o", + "fuzz/quic-rcidm-test-bin-quic-rcidm.o", + "fuzz/quic-rcidm-test-bin-test-corpus.o" + ], + "fuzz/quic-rcidm-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-rcidm-test-bin-quic-rcidm.o" => [ + "fuzz/quic-rcidm.c" + ], + "fuzz/quic-rcidm-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-server-test" => [ + "fuzz/quic-server-test-bin-fuzz_rand.o", + "fuzz/quic-server-test-bin-quic-server.o", + "fuzz/quic-server-test-bin-test-corpus.o" + ], + "fuzz/quic-server-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-server-test-bin-quic-server.o" => [ + "fuzz/quic-server.c" + ], + "fuzz/quic-server-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-srtm-test" => [ + "fuzz/quic-srtm-test-bin-fuzz_rand.o", + "fuzz/quic-srtm-test-bin-quic-srtm.o", + "fuzz/quic-srtm-test-bin-test-corpus.o" + ], + "fuzz/quic-srtm-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-srtm-test-bin-quic-srtm.o" => [ + "fuzz/quic-srtm.c" + ], + "fuzz/quic-srtm-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], "fuzz/server-test" => [ "fuzz/server-test-bin-fuzz_rand.o", "fuzz/server-test-bin-server.o", @@ -23727,6 +27687,40 @@ our %unified_info = ( "fuzz/server-test-bin-test-corpus.o" => [ "fuzz/test-corpus.c" ], + "fuzz/slh-dsa-test" => [ + "fuzz/slh-dsa-test-bin-fuzz_rand.o", + "fuzz/slh-dsa-test-bin-slh-dsa.o", + "fuzz/slh-dsa-test-bin-test-corpus.o" + ], + "fuzz/slh-dsa-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/slh-dsa-test-bin-slh-dsa.o" => [ + "fuzz/slh-dsa.c" + ], + "fuzz/slh-dsa-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/smime-test" => [ + "fuzz/smime-test-bin-smime.o", + "fuzz/smime-test-bin-test-corpus.o" + ], + "fuzz/smime-test-bin-smime.o" => [ + "fuzz/smime.c" + ], + "fuzz/smime-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/v3name-test" => [ + "fuzz/v3name-test-bin-test-corpus.o", + "fuzz/v3name-test-bin-v3name.o" + ], + "fuzz/v3name-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/v3name-test-bin-v3name.o" => [ + "fuzz/v3name.c" + ], "fuzz/x509-test" => [ "fuzz/x509-test-bin-fuzz_rand.o", "fuzz/x509-test-bin-test-corpus.o", @@ -23849,6 +27843,7 @@ our %unified_info = ( "crypto/bio/libcrypto-lib-bss_conn.o", "crypto/bio/libcrypto-lib-bss_core.o", "crypto/bio/libcrypto-lib-bss_dgram.o", + "crypto/bio/libcrypto-lib-bss_dgram_pair.o", "crypto/bio/libcrypto-lib-bss_fd.o", "crypto/bio/libcrypto-lib-bss_file.o", "crypto/bio/libcrypto-lib-bss_log.o", @@ -23891,6 +27886,7 @@ our %unified_info = ( "crypto/bn/libcrypto-lib-bn_word.o", "crypto/bn/libcrypto-lib-bn_x931p.o", "crypto/bn/libcrypto-lib-ppc-mont.o", + "crypto/bn/libcrypto-lib-ppc64-mont-fixed.o", "crypto/buffer/libcrypto-lib-buf_err.o", "crypto/buffer/libcrypto-lib-buffer.o", "crypto/camellia/libcrypto-lib-camellia.o", @@ -23912,6 +27908,7 @@ our %unified_info = ( "crypto/cmp/libcrypto-lib-cmp_client.o", "crypto/cmp/libcrypto-lib-cmp_ctx.o", "crypto/cmp/libcrypto-lib-cmp_err.o", + "crypto/cmp/libcrypto-lib-cmp_genm.o", "crypto/cmp/libcrypto-lib-cmp_hdr.o", "crypto/cmp/libcrypto-lib-cmp_http.o", "crypto/cmp/libcrypto-lib-cmp_msg.o", @@ -24091,7 +28088,9 @@ our %unified_info = ( "crypto/err/libcrypto-lib-err_all.o", "crypto/err/libcrypto-lib-err_all_legacy.o", "crypto/err/libcrypto-lib-err_blocks.o", + "crypto/err/libcrypto-lib-err_mark.o", "crypto/err/libcrypto-lib-err_prn.o", + "crypto/err/libcrypto-lib-err_save.o", "crypto/ess/libcrypto-lib-ess_asn1.o", "crypto/ess/libcrypto-lib-ess_err.o", "crypto/ess/libcrypto-lib-ess_lib.o", @@ -24174,7 +28173,9 @@ our %unified_info = ( "crypto/evp/libcrypto-lib-pmeth_check.o", "crypto/evp/libcrypto-lib-pmeth_gn.o", "crypto/evp/libcrypto-lib-pmeth_lib.o", + "crypto/evp/libcrypto-lib-s_lib.o", "crypto/evp/libcrypto-lib-signature.o", + "crypto/evp/libcrypto-lib-skeymgmt_meth.o", "crypto/ffc/libcrypto-lib-ffc_backend.o", "crypto/ffc/libcrypto-lib-ffc_dh.o", "crypto/ffc/libcrypto-lib-ffc_key_generate.o", @@ -24182,7 +28183,11 @@ our %unified_info = ( "crypto/ffc/libcrypto-lib-ffc_params.o", "crypto/ffc/libcrypto-lib-ffc_params_generate.o", "crypto/ffc/libcrypto-lib-ffc_params_validate.o", + "crypto/hashtable/libcrypto-lib-hashfunc.o", + "crypto/hashtable/libcrypto-lib-hashtable.o", "crypto/hmac/libcrypto-lib-hmac.o", + "crypto/hpke/libcrypto-lib-hpke.o", + "crypto/hpke/libcrypto-lib-hpke_util.o", "crypto/http/libcrypto-lib-http_client.o", "crypto/http/libcrypto-lib-http_err.o", "crypto/http/libcrypto-lib-http_lib.o", @@ -24196,6 +28201,7 @@ our %unified_info = ( "crypto/lhash/libcrypto-lib-lhash.o", "crypto/libcrypto-lib-asn1_dsa.o", "crypto/libcrypto-lib-bsearch.o", + "crypto/libcrypto-lib-comp_methods.o", "crypto/libcrypto-lib-context.o", "crypto/libcrypto-lib-core_algorithm.o", "crypto/libcrypto-lib-core_fetch.o", @@ -24205,10 +28211,13 @@ our %unified_info = ( "crypto/libcrypto-lib-cryptlib.o", "crypto/libcrypto-lib-ctype.o", "crypto/libcrypto-lib-cversion.o", + "crypto/libcrypto-lib-defaults.o", "crypto/libcrypto-lib-der_writer.o", + "crypto/libcrypto-lib-deterministic_nonce.o", "crypto/libcrypto-lib-ebcdic.o", "crypto/libcrypto-lib-ex_data.o", "crypto/libcrypto-lib-getenv.o", + "crypto/libcrypto-lib-indicator_core.o", "crypto/libcrypto-lib-info.o", "crypto/libcrypto-lib-init.o", "crypto/libcrypto-lib-initthread.o", @@ -24225,6 +28234,7 @@ our %unified_info = ( "crypto/libcrypto-lib-params.o", "crypto/libcrypto-lib-params_dup.o", "crypto/libcrypto-lib-params_from_text.o", + "crypto/libcrypto-lib-params_idx.o", "crypto/libcrypto-lib-passphrase.o", "crypto/libcrypto-lib-ppccap.o", "crypto/libcrypto-lib-ppccpuid.o", @@ -24234,12 +28244,16 @@ our %unified_info = ( "crypto/libcrypto-lib-provider_core.o", "crypto/libcrypto-lib-provider_predefined.o", "crypto/libcrypto-lib-punycode.o", + "crypto/libcrypto-lib-quic_vlint.o", "crypto/libcrypto-lib-self_test_core.o", + "crypto/libcrypto-lib-sleep.o", "crypto/libcrypto-lib-sparse_array.o", + "crypto/libcrypto-lib-ssl_err.o", "crypto/libcrypto-lib-threads_lib.o", "crypto/libcrypto-lib-threads_none.o", "crypto/libcrypto-lib-threads_pthread.o", "crypto/libcrypto-lib-threads_win.o", + "crypto/libcrypto-lib-time.o", "crypto/libcrypto-lib-trace.o", "crypto/libcrypto-lib-uid.o", "crypto/md4/libcrypto-lib-md4_dgst.o", @@ -24249,6 +28263,15 @@ our %unified_info = ( "crypto/md5/libcrypto-lib-md5_sha1.o", "crypto/mdc2/libcrypto-lib-mdc2_one.o", "crypto/mdc2/libcrypto-lib-mdc2dgst.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_encoders.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key_compress.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_matrix.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_ntt.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_params.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sample.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sign.o", + "crypto/ml_kem/libcrypto-lib-ml_kem.o", "crypto/modes/libcrypto-lib-cbc128.o", "crypto/modes/libcrypto-lib-ccm128.o", "crypto/modes/libcrypto-lib-cfb128.o", @@ -24261,6 +28284,7 @@ our %unified_info = ( "crypto/modes/libcrypto-lib-siv128.o", "crypto/modes/libcrypto-lib-wrap128.o", "crypto/modes/libcrypto-lib-xts128.o", + "crypto/modes/libcrypto-lib-xts128gb.o", "crypto/objects/libcrypto-lib-o_names.o", "crypto/objects/libcrypto-lib-obj_dat.o", "crypto/objects/libcrypto-lib-obj_err.o", @@ -24327,6 +28351,7 @@ our %unified_info = ( "crypto/rand/libcrypto-lib-rand_lib.o", "crypto/rand/libcrypto-lib-rand_meth.o", "crypto/rand/libcrypto-lib-rand_pool.o", + "crypto/rand/libcrypto-lib-rand_uniform.o", "crypto/rand/libcrypto-lib-randfile.o", "crypto/rc2/libcrypto-lib-rc2_cbc.o", "crypto/rc2/libcrypto-lib-rc2_ecb.o", @@ -24381,6 +28406,16 @@ our %unified_info = ( "crypto/sha/libcrypto-lib-sha512p8-ppc.o", "crypto/sha/libcrypto-lib-sha_ppc.o", "crypto/siphash/libcrypto-lib-siphash.o", + "crypto/slh_dsa/libcrypto-lib-slh_adrs.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa_hash_ctx.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa_key.o", + "crypto/slh_dsa/libcrypto-lib-slh_fors.o", + "crypto/slh_dsa/libcrypto-lib-slh_hash.o", + "crypto/slh_dsa/libcrypto-lib-slh_hypertree.o", + "crypto/slh_dsa/libcrypto-lib-slh_params.o", + "crypto/slh_dsa/libcrypto-lib-slh_wots.o", + "crypto/slh_dsa/libcrypto-lib-slh_xmss.o", "crypto/sm2/libcrypto-lib-sm2_crypt.o", "crypto/sm2/libcrypto-lib-sm2_err.o", "crypto/sm2/libcrypto-lib-sm2_key.o", @@ -24398,6 +28433,12 @@ our %unified_info = ( "crypto/store/libcrypto-lib-store_register.o", "crypto/store/libcrypto-lib-store_result.o", "crypto/store/libcrypto-lib-store_strings.o", + "crypto/thread/arch/libcrypto-lib-thread_none.o", + "crypto/thread/arch/libcrypto-lib-thread_posix.o", + "crypto/thread/arch/libcrypto-lib-thread_win.o", + "crypto/thread/libcrypto-lib-api.o", + "crypto/thread/libcrypto-lib-arch.o", + "crypto/thread/libcrypto-lib-internal.o", "crypto/ts/libcrypto-lib-ts_asn1.o", "crypto/ts/libcrypto-lib-ts_conf.o", "crypto/ts/libcrypto-lib-ts_err.o", @@ -24426,14 +28467,22 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-pcy_map.o", "crypto/x509/libcrypto-lib-pcy_node.o", "crypto/x509/libcrypto-lib-pcy_tree.o", + "crypto/x509/libcrypto-lib-t_acert.o", "crypto/x509/libcrypto-lib-t_crl.o", "crypto/x509/libcrypto-lib-t_req.o", "crypto/x509/libcrypto-lib-t_x509.o", + "crypto/x509/libcrypto-lib-v3_aaa.o", + "crypto/x509/libcrypto-lib-v3_ac_tgt.o", "crypto/x509/libcrypto-lib-v3_addr.o", "crypto/x509/libcrypto-lib-v3_admis.o", "crypto/x509/libcrypto-lib-v3_akeya.o", "crypto/x509/libcrypto-lib-v3_akid.o", "crypto/x509/libcrypto-lib-v3_asid.o", + "crypto/x509/libcrypto-lib-v3_attrdesc.o", + "crypto/x509/libcrypto-lib-v3_attrmap.o", + "crypto/x509/libcrypto-lib-v3_audit_id.o", + "crypto/x509/libcrypto-lib-v3_authattid.o", + "crypto/x509/libcrypto-lib-v3_battcons.o", "crypto/x509/libcrypto-lib-v3_bcons.o", "crypto/x509/libcrypto-lib-v3_bitst.o", "crypto/x509/libcrypto-lib-v3_conf.o", @@ -24442,12 +28491,17 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_enum.o", "crypto/x509/libcrypto-lib-v3_extku.o", "crypto/x509/libcrypto-lib-v3_genn.o", + "crypto/x509/libcrypto-lib-v3_group_ac.o", "crypto/x509/libcrypto-lib-v3_ia5.o", + "crypto/x509/libcrypto-lib-v3_ind_iss.o", "crypto/x509/libcrypto-lib-v3_info.o", "crypto/x509/libcrypto-lib-v3_int.o", + "crypto/x509/libcrypto-lib-v3_iobo.o", "crypto/x509/libcrypto-lib-v3_ist.o", "crypto/x509/libcrypto-lib-v3_lib.o", "crypto/x509/libcrypto-lib-v3_ncons.o", + "crypto/x509/libcrypto-lib-v3_no_ass.o", + "crypto/x509/libcrypto-lib-v3_no_rev_avail.o", "crypto/x509/libcrypto-lib-v3_pci.o", "crypto/x509/libcrypto-lib-v3_pcia.o", "crypto/x509/libcrypto-lib-v3_pcons.o", @@ -24455,13 +28509,20 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_pmaps.o", "crypto/x509/libcrypto-lib-v3_prn.o", "crypto/x509/libcrypto-lib-v3_purp.o", + "crypto/x509/libcrypto-lib-v3_rolespec.o", "crypto/x509/libcrypto-lib-v3_san.o", + "crypto/x509/libcrypto-lib-v3_sda.o", + "crypto/x509/libcrypto-lib-v3_single_use.o", "crypto/x509/libcrypto-lib-v3_skid.o", + "crypto/x509/libcrypto-lib-v3_soa_id.o", "crypto/x509/libcrypto-lib-v3_sxnet.o", + "crypto/x509/libcrypto-lib-v3_timespec.o", "crypto/x509/libcrypto-lib-v3_tlsf.o", + "crypto/x509/libcrypto-lib-v3_usernotice.o", "crypto/x509/libcrypto-lib-v3_utf8.o", "crypto/x509/libcrypto-lib-v3_utl.o", "crypto/x509/libcrypto-lib-v3err.o", + "crypto/x509/libcrypto-lib-x509_acert.o", "crypto/x509/libcrypto-lib-x509_att.o", "crypto/x509/libcrypto-lib-x509_cmp.o", "crypto/x509/libcrypto-lib-x509_d2.o", @@ -24479,6 +28540,7 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x509_v3.o", "crypto/x509/libcrypto-lib-x509_vfy.o", "crypto/x509/libcrypto-lib-x509_vpm.o", + "crypto/x509/libcrypto-lib-x509aset.o", "crypto/x509/libcrypto-lib-x509cset.o", "crypto/x509/libcrypto-lib-x509name.o", "crypto/x509/libcrypto-lib-x509rset.o", @@ -24488,6 +28550,7 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x_attrib.o", "crypto/x509/libcrypto-lib-x_crl.o", "crypto/x509/libcrypto-lib-x_exten.o", + "crypto/x509/libcrypto-lib-x_ietfatt.o", "crypto/x509/libcrypto-lib-x_name.o", "crypto/x509/libcrypto-lib-x_pubkey.o", "crypto/x509/libcrypto-lib-x_req.o", @@ -24508,14 +28571,15 @@ our %unified_info = ( "ssl/libssl-lib-d1_srtp.o", "ssl/libssl-lib-methods.o", "ssl/libssl-lib-pqueue.o", + "ssl/libssl-lib-priority_queue.o", "ssl/libssl-lib-s3_enc.o", "ssl/libssl-lib-s3_lib.o", "ssl/libssl-lib-s3_msg.o", "ssl/libssl-lib-ssl_asn1.o", "ssl/libssl-lib-ssl_cert.o", + "ssl/libssl-lib-ssl_cert_comp.o", "ssl/libssl-lib-ssl_ciph.o", "ssl/libssl-lib-ssl_conf.o", - "ssl/libssl-lib-ssl_err.o", "ssl/libssl-lib-ssl_err_legacy.o", "ssl/libssl-lib-ssl_init.o", "ssl/libssl-lib-ssl_lib.o", @@ -24532,12 +28596,60 @@ our %unified_info = ( "ssl/libssl-lib-tls13_enc.o", "ssl/libssl-lib-tls_depr.o", "ssl/libssl-lib-tls_srp.o", - "ssl/record/libssl-lib-dtls1_bitmap.o", + "ssl/quic/libssl-lib-cc_newreno.o", + "ssl/quic/libssl-lib-json_enc.o", + "ssl/quic/libssl-lib-qlog.o", + "ssl/quic/libssl-lib-qlog_event_helpers.o", + "ssl/quic/libssl-lib-quic_ackm.o", + "ssl/quic/libssl-lib-quic_cfq.o", + "ssl/quic/libssl-lib-quic_channel.o", + "ssl/quic/libssl-lib-quic_demux.o", + "ssl/quic/libssl-lib-quic_engine.o", + "ssl/quic/libssl-lib-quic_fc.o", + "ssl/quic/libssl-lib-quic_fifd.o", + "ssl/quic/libssl-lib-quic_impl.o", + "ssl/quic/libssl-lib-quic_lcidm.o", + "ssl/quic/libssl-lib-quic_method.o", + "ssl/quic/libssl-lib-quic_obj.o", + "ssl/quic/libssl-lib-quic_port.o", + "ssl/quic/libssl-lib-quic_rcidm.o", + "ssl/quic/libssl-lib-quic_reactor.o", + "ssl/quic/libssl-lib-quic_reactor_wait_ctx.o", + "ssl/quic/libssl-lib-quic_record_rx.o", + "ssl/quic/libssl-lib-quic_record_shared.o", + "ssl/quic/libssl-lib-quic_record_tx.o", + "ssl/quic/libssl-lib-quic_record_util.o", + "ssl/quic/libssl-lib-quic_rstream.o", + "ssl/quic/libssl-lib-quic_rx_depack.o", + "ssl/quic/libssl-lib-quic_sf_list.o", + "ssl/quic/libssl-lib-quic_srt_gen.o", + "ssl/quic/libssl-lib-quic_srtm.o", + "ssl/quic/libssl-lib-quic_sstream.o", + "ssl/quic/libssl-lib-quic_statm.o", + "ssl/quic/libssl-lib-quic_stream_map.o", + "ssl/quic/libssl-lib-quic_thread_assist.o", + "ssl/quic/libssl-lib-quic_tls.o", + "ssl/quic/libssl-lib-quic_tls_api.o", + "ssl/quic/libssl-lib-quic_trace.o", + "ssl/quic/libssl-lib-quic_tserver.o", + "ssl/quic/libssl-lib-quic_txp.o", + "ssl/quic/libssl-lib-quic_txpim.o", + "ssl/quic/libssl-lib-quic_types.o", + "ssl/quic/libssl-lib-quic_wire.o", + "ssl/quic/libssl-lib-quic_wire_pkt.o", + "ssl/quic/libssl-lib-uint_set.o", "ssl/record/libssl-lib-rec_layer_d1.o", "ssl/record/libssl-lib-rec_layer_s3.o", - "ssl/record/libssl-lib-ssl3_buffer.o", - "ssl/record/libssl-lib-ssl3_record.o", - "ssl/record/libssl-lib-ssl3_record_tls13.o", + "ssl/record/methods/libssl-lib-dtls_meth.o", + "ssl/record/methods/libssl-lib-ssl3_meth.o", + "ssl/record/methods/libssl-lib-tls13_meth.o", + "ssl/record/methods/libssl-lib-tls1_meth.o", + "ssl/record/methods/libssl-lib-tls_common.o", + "ssl/record/methods/libssl-lib-tls_multib.o", + "ssl/record/methods/libssl-lib-tlsany_meth.o", + "ssl/rio/libssl-lib-poll_builder.o", + "ssl/rio/libssl-lib-poll_immediate.o", + "ssl/rio/libssl-lib-rio_notifier.o", "ssl/statem/libssl-lib-extensions.o", "ssl/statem/libssl-lib-extensions_clnt.o", "ssl/statem/libssl-lib-extensions_cust.o", @@ -24575,12 +28687,24 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ecx_key.o" => [ "providers/common/der/der_ecx_key.c" ], + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o" => [ + "providers/common/der/der_ml_dsa_gen.c" + ], + "providers/common/der/libcommon-lib-der_ml_dsa_key.o" => [ + "providers/common/der/der_ml_dsa_key.c" + ], "providers/common/der/libcommon-lib-der_rsa_gen.o" => [ "providers/common/der/der_rsa_gen.c" ], "providers/common/der/libcommon-lib-der_rsa_key.o" => [ "providers/common/der/der_rsa_key.c" ], + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o" => [ + "providers/common/der/der_slh_dsa_gen.c" + ], + "providers/common/der/libcommon-lib-der_slh_dsa_key.o" => [ + "providers/common/der/der_slh_dsa_key.c" + ], "providers/common/der/libcommon-lib-der_wrap_gen.o" => [ "providers/common/der/der_wrap_gen.c" ], @@ -24647,6 +28771,9 @@ our %unified_info = ( "providers/common/libfips-lib-securitycheck_fips.o" => [ "providers/common/securitycheck_fips.c" ], + "providers/endecode_test-bin-legacyprov.o" => [ + "providers/legacyprov.c" + ], "providers/evp_extra_test-bin-legacyprov.o" => [ "providers/legacyprov.c" ], @@ -24657,6 +28784,9 @@ our %unified_info = ( "providers/fips/fips-dso-fips_entry.o" => [ "providers/fips/fips_entry.c" ], + "providers/fips/libfips-lib-fipsindicator.o" => [ + "providers/fips/fipsindicator.c" + ], "providers/fips/libfips-lib-fipsprov.o" => [ "providers/fips/fipsprov.c" ], @@ -24720,6 +28850,15 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_hw.o" => [ "providers/implementations/ciphers/cipher_aes_gcm_hw.c" ], + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv.o" => [ + "providers/implementations/ciphers/cipher_aes_gcm_siv.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_hw.o" => [ + "providers/implementations/ciphers/cipher_aes_gcm_siv_hw.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_polyval.o" => [ + "providers/implementations/ciphers/cipher_aes_gcm_siv_polyval.c" + ], "providers/implementations/ciphers/libdefault-lib-cipher_aes_hw.o" => [ "providers/implementations/ciphers/cipher_aes_hw.c" ], @@ -24792,9 +28931,27 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_sm4.o" => [ "providers/implementations/ciphers/cipher_sm4.c" ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm.o" => [ + "providers/implementations/ciphers/cipher_sm4_ccm.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm_hw.o" => [ + "providers/implementations/ciphers/cipher_sm4_ccm_hw.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm.o" => [ + "providers/implementations/ciphers/cipher_sm4_gcm.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm_hw.o" => [ + "providers/implementations/ciphers/cipher_sm4_gcm_hw.c" + ], "providers/implementations/ciphers/libdefault-lib-cipher_sm4_hw.o" => [ "providers/implementations/ciphers/cipher_sm4_hw.c" ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts.o" => [ + "providers/implementations/ciphers/cipher_sm4_xts.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts_hw.o" => [ + "providers/implementations/ciphers/cipher_sm4_xts_hw.c" + ], "providers/implementations/ciphers/libdefault-lib-cipher_tdes.o" => [ "providers/implementations/ciphers/cipher_tdes.c" ], @@ -25014,6 +29171,15 @@ our %unified_info = ( "providers/implementations/encode_decode/libdefault-lib-endecoder_common.o" => [ "providers/implementations/encode_decode/endecoder_common.c" ], + "providers/implementations/encode_decode/libdefault-lib-ml_common_codecs.o" => [ + "providers/implementations/encode_decode/ml_common_codecs.c" + ], + "providers/implementations/encode_decode/libdefault-lib-ml_dsa_codecs.o" => [ + "providers/implementations/encode_decode/ml_dsa_codecs.c" + ], + "providers/implementations/encode_decode/libdefault-lib-ml_kem_codecs.o" => [ + "providers/implementations/encode_decode/ml_kem_codecs.c" + ], "providers/implementations/exchange/libdefault-lib-dh_exch.o" => [ "providers/implementations/exchange/dh_exch.c" ], @@ -25038,9 +29204,15 @@ our %unified_info = ( "providers/implementations/exchange/libfips-lib-kdf_exch.o" => [ "providers/implementations/exchange/kdf_exch.c" ], + "providers/implementations/kdfs/libdefault-lib-argon2.o" => [ + "providers/implementations/kdfs/argon2.c" + ], "providers/implementations/kdfs/libdefault-lib-hkdf.o" => [ "providers/implementations/kdfs/hkdf.c" ], + "providers/implementations/kdfs/libdefault-lib-hmacdrbg_kdf.o" => [ + "providers/implementations/kdfs/hmacdrbg_kdf.c" + ], "providers/implementations/kdfs/libdefault-lib-kbkdf.o" => [ "providers/implementations/kdfs/kbkdf.c" ], @@ -25098,12 +29270,39 @@ our %unified_info = ( "providers/implementations/kdfs/liblegacy-lib-pbkdf1.o" => [ "providers/implementations/kdfs/pbkdf1.c" ], + "providers/implementations/kdfs/liblegacy-lib-pvkkdf.o" => [ + "providers/implementations/kdfs/pvkkdf.c" + ], + "providers/implementations/kem/libdefault-lib-ec_kem.o" => [ + "providers/implementations/kem/ec_kem.c" + ], + "providers/implementations/kem/libdefault-lib-ecx_kem.o" => [ + "providers/implementations/kem/ecx_kem.c" + ], + "providers/implementations/kem/libdefault-lib-kem_util.o" => [ + "providers/implementations/kem/kem_util.c" + ], + "providers/implementations/kem/libdefault-lib-ml_kem_kem.o" => [ + "providers/implementations/kem/ml_kem_kem.c" + ], + "providers/implementations/kem/libdefault-lib-mlx_kem.o" => [ + "providers/implementations/kem/mlx_kem.c" + ], "providers/implementations/kem/libdefault-lib-rsa_kem.o" => [ "providers/implementations/kem/rsa_kem.c" ], + "providers/implementations/kem/libfips-lib-ml_kem_kem.o" => [ + "providers/implementations/kem/ml_kem_kem.c" + ], + "providers/implementations/kem/libfips-lib-mlx_kem.o" => [ + "providers/implementations/kem/mlx_kem.c" + ], "providers/implementations/kem/libfips-lib-rsa_kem.o" => [ "providers/implementations/kem/rsa_kem.c" ], + "providers/implementations/kem/libtemplate-lib-template_kem.o" => [ + "providers/implementations/kem/template_kem.c" + ], "providers/implementations/keymgmt/libdefault-lib-dh_kmgmt.o" => [ "providers/implementations/keymgmt/dh_kmgmt.c" ], @@ -25122,9 +29321,21 @@ our %unified_info = ( "providers/implementations/keymgmt/libdefault-lib-mac_legacy_kmgmt.o" => [ "providers/implementations/keymgmt/mac_legacy_kmgmt.c" ], + "providers/implementations/keymgmt/libdefault-lib-ml_dsa_kmgmt.o" => [ + "providers/implementations/keymgmt/ml_dsa_kmgmt.c" + ], + "providers/implementations/keymgmt/libdefault-lib-ml_kem_kmgmt.o" => [ + "providers/implementations/keymgmt/ml_kem_kmgmt.c" + ], + "providers/implementations/keymgmt/libdefault-lib-mlx_kmgmt.o" => [ + "providers/implementations/keymgmt/mlx_kmgmt.c" + ], "providers/implementations/keymgmt/libdefault-lib-rsa_kmgmt.o" => [ "providers/implementations/keymgmt/rsa_kmgmt.c" ], + "providers/implementations/keymgmt/libdefault-lib-slh_dsa_kmgmt.o" => [ + "providers/implementations/keymgmt/slh_dsa_kmgmt.c" + ], "providers/implementations/keymgmt/libfips-lib-dh_kmgmt.o" => [ "providers/implementations/keymgmt/dh_kmgmt.c" ], @@ -25143,9 +29354,24 @@ our %unified_info = ( "providers/implementations/keymgmt/libfips-lib-mac_legacy_kmgmt.o" => [ "providers/implementations/keymgmt/mac_legacy_kmgmt.c" ], + "providers/implementations/keymgmt/libfips-lib-ml_dsa_kmgmt.o" => [ + "providers/implementations/keymgmt/ml_dsa_kmgmt.c" + ], + "providers/implementations/keymgmt/libfips-lib-ml_kem_kmgmt.o" => [ + "providers/implementations/keymgmt/ml_kem_kmgmt.c" + ], + "providers/implementations/keymgmt/libfips-lib-mlx_kmgmt.o" => [ + "providers/implementations/keymgmt/mlx_kmgmt.c" + ], "providers/implementations/keymgmt/libfips-lib-rsa_kmgmt.o" => [ "providers/implementations/keymgmt/rsa_kmgmt.c" ], + "providers/implementations/keymgmt/libfips-lib-slh_dsa_kmgmt.o" => [ + "providers/implementations/keymgmt/slh_dsa_kmgmt.c" + ], + "providers/implementations/keymgmt/libtemplate-lib-template_kmgmt.o" => [ + "providers/implementations/keymgmt/template_kmgmt.c" + ], "providers/implementations/macs/libdefault-lib-blake2b_mac.o" => [ "providers/implementations/macs/blake2b_mac.c" ], @@ -25182,9 +29408,6 @@ our %unified_info = ( "providers/implementations/macs/libfips-lib-kmac_prov.o" => [ "providers/implementations/macs/kmac_prov.c" ], - "providers/implementations/rands/libdefault-lib-crngt.o" => [ - "providers/implementations/rands/crngt.c" - ], "providers/implementations/rands/libdefault-lib-drbg.o" => [ "providers/implementations/rands/drbg.c" ], @@ -25200,12 +29423,12 @@ our %unified_info = ( "providers/implementations/rands/libdefault-lib-seed_src.o" => [ "providers/implementations/rands/seed_src.c" ], + "providers/implementations/rands/libdefault-lib-seed_src_jitter.o" => [ + "providers/implementations/rands/seed_src_jitter.c" + ], "providers/implementations/rands/libdefault-lib-test_rng.o" => [ "providers/implementations/rands/test_rng.c" ], - "providers/implementations/rands/libfips-lib-crngt.o" => [ - "providers/implementations/rands/crngt.c" - ], "providers/implementations/rands/libfips-lib-drbg.o" => [ "providers/implementations/rands/drbg.c" ], @@ -25218,6 +29441,9 @@ our %unified_info = ( "providers/implementations/rands/libfips-lib-drbg_hmac.o" => [ "providers/implementations/rands/drbg_hmac.c" ], + "providers/implementations/rands/libfips-lib-fips_crng_test.o" => [ + "providers/implementations/rands/fips_crng_test.c" + ], "providers/implementations/rands/libfips-lib-test_rng.o" => [ "providers/implementations/rands/test_rng.c" ], @@ -25245,9 +29471,15 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-mac_legacy_sig.o" => [ "providers/implementations/signature/mac_legacy_sig.c" ], + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o" => [ + "providers/implementations/signature/ml_dsa_sig.c" + ], "providers/implementations/signature/libdefault-lib-rsa_sig.o" => [ "providers/implementations/signature/rsa_sig.c" ], + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o" => [ + "providers/implementations/signature/slh_dsa_sig.c" + ], "providers/implementations/signature/libdefault-lib-sm2_sig.o" => [ "providers/implementations/signature/sm2_sig.c" ], @@ -25263,9 +29495,27 @@ our %unified_info = ( "providers/implementations/signature/libfips-lib-mac_legacy_sig.o" => [ "providers/implementations/signature/mac_legacy_sig.c" ], + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o" => [ + "providers/implementations/signature/ml_dsa_sig.c" + ], "providers/implementations/signature/libfips-lib-rsa_sig.o" => [ "providers/implementations/signature/rsa_sig.c" ], + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o" => [ + "providers/implementations/signature/slh_dsa_sig.c" + ], + "providers/implementations/skeymgmt/libdefault-lib-aes_skmgmt.o" => [ + "providers/implementations/skeymgmt/aes_skmgmt.c" + ], + "providers/implementations/skeymgmt/libdefault-lib-generic.o" => [ + "providers/implementations/skeymgmt/generic.c" + ], + "providers/implementations/skeymgmt/libfips-lib-aes_skmgmt.o" => [ + "providers/implementations/skeymgmt/aes_skmgmt.c" + ], + "providers/implementations/skeymgmt/libfips-lib-generic.o" => [ + "providers/implementations/skeymgmt/generic.c" + ], "providers/implementations/storemgmt/libdefault-lib-file_store.o" => [ "providers/implementations/storemgmt/file_store.c" ], @@ -25289,8 +29539,12 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ec_sig.o", "providers/common/der/libcommon-lib-der_ecx_gen.o", "providers/common/der/libcommon-lib-der_ecx_key.o", + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o", + "providers/common/der/libcommon-lib-der_ml_dsa_key.o", "providers/common/der/libcommon-lib-der_rsa_gen.o", "providers/common/der/libcommon-lib-der_rsa_key.o", + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o", + "providers/common/der/libcommon-lib-der_slh_dsa_key.o", "providers/common/der/libcommon-lib-der_wrap_gen.o", "providers/common/libcommon-lib-provider_ctx.o", "providers/common/libcommon-lib-provider_err.o", @@ -25302,7 +29556,7 @@ our %unified_info = ( "providers/implementations/ciphers/libcommon-lib-ciphercommon_gcm_hw.o", "providers/implementations/ciphers/libcommon-lib-ciphercommon_hw.o", "providers/implementations/digests/libcommon-lib-digestcommon.o", - "ssl/record/libcommon-lib-tls_pad.o" + "ssl/record/methods/libcommon-lib-tls_pad.o" ], "providers/libcrypto-lib-baseprov.o" => [ "providers/baseprov.c" @@ -25338,6 +29592,9 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_aes_ccm_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_polyval.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_ocb.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_ocb_hw.o", @@ -25362,7 +29619,13 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_cts.o", "providers/implementations/ciphers/libdefault-lib-cipher_null.o", "providers/implementations/ciphers/libdefault-lib-cipher_sm4.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_sm4_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes_common.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes_default.o", @@ -25391,11 +29654,16 @@ our %unified_info = ( "providers/implementations/encode_decode/libdefault-lib-encode_key2ms.o", "providers/implementations/encode_decode/libdefault-lib-encode_key2text.o", "providers/implementations/encode_decode/libdefault-lib-endecoder_common.o", + "providers/implementations/encode_decode/libdefault-lib-ml_common_codecs.o", + "providers/implementations/encode_decode/libdefault-lib-ml_dsa_codecs.o", + "providers/implementations/encode_decode/libdefault-lib-ml_kem_codecs.o", "providers/implementations/exchange/libdefault-lib-dh_exch.o", "providers/implementations/exchange/libdefault-lib-ecdh_exch.o", "providers/implementations/exchange/libdefault-lib-ecx_exch.o", "providers/implementations/exchange/libdefault-lib-kdf_exch.o", + "providers/implementations/kdfs/libdefault-lib-argon2.o", "providers/implementations/kdfs/libdefault-lib-hkdf.o", + "providers/implementations/kdfs/libdefault-lib-hmacdrbg_kdf.o", "providers/implementations/kdfs/libdefault-lib-kbkdf.o", "providers/implementations/kdfs/libdefault-lib-krb5kdf.o", "providers/implementations/kdfs/libdefault-lib-pbkdf2.o", @@ -25406,6 +29674,11 @@ our %unified_info = ( "providers/implementations/kdfs/libdefault-lib-sskdf.o", "providers/implementations/kdfs/libdefault-lib-tls1_prf.o", "providers/implementations/kdfs/libdefault-lib-x942kdf.o", + "providers/implementations/kem/libdefault-lib-ec_kem.o", + "providers/implementations/kem/libdefault-lib-ecx_kem.o", + "providers/implementations/kem/libdefault-lib-kem_util.o", + "providers/implementations/kem/libdefault-lib-ml_kem_kem.o", + "providers/implementations/kem/libdefault-lib-mlx_kem.o", "providers/implementations/kem/libdefault-lib-rsa_kem.o", "providers/implementations/keymgmt/libdefault-lib-dh_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-dsa_kmgmt.o", @@ -25413,7 +29686,11 @@ our %unified_info = ( "providers/implementations/keymgmt/libdefault-lib-ecx_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-kdf_legacy_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-mac_legacy_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-ml_dsa_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-ml_kem_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-mlx_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-rsa_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-slh_dsa_kmgmt.o", "providers/implementations/macs/libdefault-lib-blake2b_mac.o", "providers/implementations/macs/libdefault-lib-blake2s_mac.o", "providers/implementations/macs/libdefault-lib-cmac_prov.o", @@ -25422,12 +29699,12 @@ our %unified_info = ( "providers/implementations/macs/libdefault-lib-kmac_prov.o", "providers/implementations/macs/libdefault-lib-poly1305_prov.o", "providers/implementations/macs/libdefault-lib-siphash_prov.o", - "providers/implementations/rands/libdefault-lib-crngt.o", "providers/implementations/rands/libdefault-lib-drbg.o", "providers/implementations/rands/libdefault-lib-drbg_ctr.o", "providers/implementations/rands/libdefault-lib-drbg_hash.o", "providers/implementations/rands/libdefault-lib-drbg_hmac.o", "providers/implementations/rands/libdefault-lib-seed_src.o", + "providers/implementations/rands/libdefault-lib-seed_src_jitter.o", "providers/implementations/rands/libdefault-lib-test_rng.o", "providers/implementations/rands/seeding/libdefault-lib-rand_cpu_x86.o", "providers/implementations/rands/seeding/libdefault-lib-rand_tsc.o", @@ -25437,11 +29714,15 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-ecdsa_sig.o", "providers/implementations/signature/libdefault-lib-eddsa_sig.o", "providers/implementations/signature/libdefault-lib-mac_legacy_sig.o", + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o", "providers/implementations/signature/libdefault-lib-rsa_sig.o", + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o", "providers/implementations/signature/libdefault-lib-sm2_sig.o", + "providers/implementations/skeymgmt/libdefault-lib-aes_skmgmt.o", + "providers/implementations/skeymgmt/libdefault-lib-generic.o", "providers/implementations/storemgmt/libdefault-lib-file_store.o", "providers/implementations/storemgmt/libdefault-lib-file_store_any2obj.o", - "ssl/libdefault-lib-s3_cbc.o" + "ssl/record/methods/libdefault-lib-ssl3_cbc.o" ], "providers/libfips.a" => [ "crypto/aes/libfips-lib-aes-ppc.o", @@ -25481,6 +29762,7 @@ our %unified_info = ( "crypto/bn/libfips-lib-bn_sqrt.o", "crypto/bn/libfips-lib-bn_word.o", "crypto/bn/libfips-lib-ppc-mont.o", + "crypto/bn/libfips-lib-ppc64-mont-fixed.o", "crypto/buffer/libfips-lib-buffer.o", "crypto/cmac/libfips-lib-cmac.o", "crypto/des/libfips-lib-des_enc.o", @@ -25552,14 +29834,15 @@ our %unified_info = ( "crypto/evp/libfips-lib-kem.o", "crypto/evp/libfips-lib-keymgmt_lib.o", "crypto/evp/libfips-lib-keymgmt_meth.o", - "crypto/evp/libfips-lib-m_sigver.o", "crypto/evp/libfips-lib-mac_lib.o", "crypto/evp/libfips-lib-mac_meth.o", "crypto/evp/libfips-lib-p_lib.o", "crypto/evp/libfips-lib-pmeth_check.o", "crypto/evp/libfips-lib-pmeth_gn.o", "crypto/evp/libfips-lib-pmeth_lib.o", + "crypto/evp/libfips-lib-s_lib.o", "crypto/evp/libfips-lib-signature.o", + "crypto/evp/libfips-lib-skeymgmt_meth.o", "crypto/ffc/libfips-lib-ffc_backend.o", "crypto/ffc/libfips-lib-ffc_dh.o", "crypto/ffc/libfips-lib-ffc_key_generate.o", @@ -25567,6 +29850,8 @@ our %unified_info = ( "crypto/ffc/libfips-lib-ffc_params.o", "crypto/ffc/libfips-lib-ffc_params_generate.o", "crypto/ffc/libfips-lib-ffc_params_validate.o", + "crypto/hashtable/libfips-lib-hashfunc.o", + "crypto/hashtable/libfips-lib-hashtable.o", "crypto/hmac/libfips-lib-hmac.o", "crypto/lhash/libfips-lib-lhash.o", "crypto/libfips-lib-asn1_dsa.o", @@ -25588,6 +29873,7 @@ our %unified_info = ( "crypto/libfips-lib-params.o", "crypto/libfips-lib-params_dup.o", "crypto/libfips-lib-params_from_text.o", + "crypto/libfips-lib-params_idx.o", "crypto/libfips-lib-ppccap.o", "crypto/libfips-lib-ppccpuid.o", "crypto/libfips-lib-provider_core.o", @@ -25598,6 +29884,16 @@ our %unified_info = ( "crypto/libfips-lib-threads_none.o", "crypto/libfips-lib-threads_pthread.o", "crypto/libfips-lib-threads_win.o", + "crypto/libfips-lib-time.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_encoders.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_key.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_key_compress.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_matrix.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_ntt.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_params.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_sample.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_sign.o", + "crypto/ml_kem/libfips-lib-ml_kem.o", "crypto/modes/libfips-lib-cbc128.o", "crypto/modes/libfips-lib-ccm128.o", "crypto/modes/libfips-lib-cfb128.o", @@ -25607,6 +29903,7 @@ our %unified_info = ( "crypto/modes/libfips-lib-ofb128.o", "crypto/modes/libfips-lib-wrap128.o", "crypto/modes/libfips-lib-xts128.o", + "crypto/modes/libfips-lib-xts128gb.o", "crypto/property/libfips-lib-defn_cache.o", "crypto/property/libfips-lib-property.o", "crypto/property/libfips-lib-property_parse.o", @@ -25641,7 +29938,23 @@ our %unified_info = ( "crypto/sha/libfips-lib-sha512.o", "crypto/sha/libfips-lib-sha512p8-ppc.o", "crypto/sha/libfips-lib-sha_ppc.o", + "crypto/slh_dsa/libfips-lib-slh_adrs.o", + "crypto/slh_dsa/libfips-lib-slh_dsa.o", + "crypto/slh_dsa/libfips-lib-slh_dsa_hash_ctx.o", + "crypto/slh_dsa/libfips-lib-slh_dsa_key.o", + "crypto/slh_dsa/libfips-lib-slh_fors.o", + "crypto/slh_dsa/libfips-lib-slh_hash.o", + "crypto/slh_dsa/libfips-lib-slh_hypertree.o", + "crypto/slh_dsa/libfips-lib-slh_params.o", + "crypto/slh_dsa/libfips-lib-slh_wots.o", + "crypto/slh_dsa/libfips-lib-slh_xmss.o", "crypto/stack/libfips-lib-stack.o", + "crypto/thread/arch/libfips-lib-thread_none.o", + "crypto/thread/arch/libfips-lib-thread_posix.o", + "crypto/thread/arch/libfips-lib-thread_win.o", + "crypto/thread/libfips-lib-api.o", + "crypto/thread/libfips-lib-arch.o", + "crypto/thread/libfips-lib-internal.o", "providers/common/der/libfips-lib-der_rsa_sig.o", "providers/common/libfips-lib-bio_prov.o", "providers/common/libfips-lib-capabilities.o", @@ -25650,6 +29963,7 @@ our %unified_info = ( "providers/common/libfips-lib-provider_util.o", "providers/common/libfips-lib-securitycheck.o", "providers/common/libfips-lib-securitycheck_fips.o", + "providers/fips/libfips-lib-fipsindicator.o", "providers/fips/libfips-lib-fipsprov.o", "providers/fips/libfips-lib-self_test.o", "providers/fips/libfips-lib-self_test_kats.o", @@ -25687,6 +30001,8 @@ our %unified_info = ( "providers/implementations/kdfs/libfips-lib-sskdf.o", "providers/implementations/kdfs/libfips-lib-tls1_prf.o", "providers/implementations/kdfs/libfips-lib-x942kdf.o", + "providers/implementations/kem/libfips-lib-ml_kem_kem.o", + "providers/implementations/kem/libfips-lib-mlx_kem.o", "providers/implementations/kem/libfips-lib-rsa_kem.o", "providers/implementations/keymgmt/libfips-lib-dh_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-dsa_kmgmt.o", @@ -25694,24 +30010,32 @@ our %unified_info = ( "providers/implementations/keymgmt/libfips-lib-ecx_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-kdf_legacy_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-mac_legacy_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-ml_dsa_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-ml_kem_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-mlx_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-rsa_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-slh_dsa_kmgmt.o", "providers/implementations/macs/libfips-lib-cmac_prov.o", "providers/implementations/macs/libfips-lib-gmac_prov.o", "providers/implementations/macs/libfips-lib-hmac_prov.o", "providers/implementations/macs/libfips-lib-kmac_prov.o", - "providers/implementations/rands/libfips-lib-crngt.o", "providers/implementations/rands/libfips-lib-drbg.o", "providers/implementations/rands/libfips-lib-drbg_ctr.o", "providers/implementations/rands/libfips-lib-drbg_hash.o", "providers/implementations/rands/libfips-lib-drbg_hmac.o", + "providers/implementations/rands/libfips-lib-fips_crng_test.o", "providers/implementations/rands/libfips-lib-test_rng.o", "providers/implementations/signature/libfips-lib-dsa_sig.o", "providers/implementations/signature/libfips-lib-ecdsa_sig.o", "providers/implementations/signature/libfips-lib-eddsa_sig.o", "providers/implementations/signature/libfips-lib-mac_legacy_sig.o", + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o", "providers/implementations/signature/libfips-lib-rsa_sig.o", + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o", + "providers/implementations/skeymgmt/libfips-lib-aes_skmgmt.o", + "providers/implementations/skeymgmt/libfips-lib-generic.o", "providers/libcommon.a", - "ssl/libfips-lib-s3_cbc.o" + "ssl/record/methods/libfips-lib-ssl3_cbc.o" ], "providers/liblegacy-lib-prov_running.o" => [ "providers/prov_running.c" @@ -25741,13 +30065,12 @@ our %unified_info = ( "providers/implementations/digests/liblegacy-lib-ripemd_prov.o", "providers/implementations/digests/liblegacy-lib-wp_prov.o", "providers/implementations/kdfs/liblegacy-lib-pbkdf1.o", + "providers/implementations/kdfs/liblegacy-lib-pvkkdf.o", "providers/liblegacy-lib-prov_running.o" ], - "ssl/libdefault-lib-s3_cbc.o" => [ - "ssl/s3_cbc.c" - ], - "ssl/libfips-lib-s3_cbc.o" => [ - "ssl/s3_cbc.c" + "providers/libtemplate.a" => [ + "providers/implementations/kem/libtemplate-lib-template_kem.o", + "providers/implementations/keymgmt/libtemplate-lib-template_kmgmt.o" ], "ssl/libssl-lib-bio_ssl.o" => [ "ssl/bio_ssl.c" @@ -25767,6 +30090,9 @@ our %unified_info = ( "ssl/libssl-lib-pqueue.o" => [ "ssl/pqueue.c" ], + "ssl/libssl-lib-priority_queue.o" => [ + "ssl/priority_queue.c" + ], "ssl/libssl-lib-s3_enc.o" => [ "ssl/s3_enc.c" ], @@ -25782,15 +30108,15 @@ our %unified_info = ( "ssl/libssl-lib-ssl_cert.o" => [ "ssl/ssl_cert.c" ], + "ssl/libssl-lib-ssl_cert_comp.o" => [ + "ssl/ssl_cert_comp.c" + ], "ssl/libssl-lib-ssl_ciph.o" => [ "ssl/ssl_ciph.c" ], "ssl/libssl-lib-ssl_conf.o" => [ "ssl/ssl_conf.c" ], - "ssl/libssl-lib-ssl_err.o" => [ - "ssl/ssl_err.c" - ], "ssl/libssl-lib-ssl_err_legacy.o" => [ "ssl/ssl_err_legacy.c" ], @@ -25839,11 +30165,131 @@ our %unified_info = ( "ssl/libssl-lib-tls_srp.o" => [ "ssl/tls_srp.c" ], - "ssl/record/libcommon-lib-tls_pad.o" => [ - "ssl/record/tls_pad.c" + "ssl/quic/libssl-lib-cc_newreno.o" => [ + "ssl/quic/cc_newreno.c" + ], + "ssl/quic/libssl-lib-json_enc.o" => [ + "ssl/quic/json_enc.c" + ], + "ssl/quic/libssl-lib-qlog.o" => [ + "ssl/quic/qlog.c" + ], + "ssl/quic/libssl-lib-qlog_event_helpers.o" => [ + "ssl/quic/qlog_event_helpers.c" + ], + "ssl/quic/libssl-lib-quic_ackm.o" => [ + "ssl/quic/quic_ackm.c" + ], + "ssl/quic/libssl-lib-quic_cfq.o" => [ + "ssl/quic/quic_cfq.c" + ], + "ssl/quic/libssl-lib-quic_channel.o" => [ + "ssl/quic/quic_channel.c" + ], + "ssl/quic/libssl-lib-quic_demux.o" => [ + "ssl/quic/quic_demux.c" + ], + "ssl/quic/libssl-lib-quic_engine.o" => [ + "ssl/quic/quic_engine.c" + ], + "ssl/quic/libssl-lib-quic_fc.o" => [ + "ssl/quic/quic_fc.c" + ], + "ssl/quic/libssl-lib-quic_fifd.o" => [ + "ssl/quic/quic_fifd.c" + ], + "ssl/quic/libssl-lib-quic_impl.o" => [ + "ssl/quic/quic_impl.c" + ], + "ssl/quic/libssl-lib-quic_lcidm.o" => [ + "ssl/quic/quic_lcidm.c" + ], + "ssl/quic/libssl-lib-quic_method.o" => [ + "ssl/quic/quic_method.c" + ], + "ssl/quic/libssl-lib-quic_obj.o" => [ + "ssl/quic/quic_obj.c" + ], + "ssl/quic/libssl-lib-quic_port.o" => [ + "ssl/quic/quic_port.c" + ], + "ssl/quic/libssl-lib-quic_rcidm.o" => [ + "ssl/quic/quic_rcidm.c" + ], + "ssl/quic/libssl-lib-quic_reactor.o" => [ + "ssl/quic/quic_reactor.c" + ], + "ssl/quic/libssl-lib-quic_reactor_wait_ctx.o" => [ + "ssl/quic/quic_reactor_wait_ctx.c" + ], + "ssl/quic/libssl-lib-quic_record_rx.o" => [ + "ssl/quic/quic_record_rx.c" + ], + "ssl/quic/libssl-lib-quic_record_shared.o" => [ + "ssl/quic/quic_record_shared.c" + ], + "ssl/quic/libssl-lib-quic_record_tx.o" => [ + "ssl/quic/quic_record_tx.c" + ], + "ssl/quic/libssl-lib-quic_record_util.o" => [ + "ssl/quic/quic_record_util.c" + ], + "ssl/quic/libssl-lib-quic_rstream.o" => [ + "ssl/quic/quic_rstream.c" ], - "ssl/record/libssl-lib-dtls1_bitmap.o" => [ - "ssl/record/dtls1_bitmap.c" + "ssl/quic/libssl-lib-quic_rx_depack.o" => [ + "ssl/quic/quic_rx_depack.c" + ], + "ssl/quic/libssl-lib-quic_sf_list.o" => [ + "ssl/quic/quic_sf_list.c" + ], + "ssl/quic/libssl-lib-quic_srt_gen.o" => [ + "ssl/quic/quic_srt_gen.c" + ], + "ssl/quic/libssl-lib-quic_srtm.o" => [ + "ssl/quic/quic_srtm.c" + ], + "ssl/quic/libssl-lib-quic_sstream.o" => [ + "ssl/quic/quic_sstream.c" + ], + "ssl/quic/libssl-lib-quic_statm.o" => [ + "ssl/quic/quic_statm.c" + ], + "ssl/quic/libssl-lib-quic_stream_map.o" => [ + "ssl/quic/quic_stream_map.c" + ], + "ssl/quic/libssl-lib-quic_thread_assist.o" => [ + "ssl/quic/quic_thread_assist.c" + ], + "ssl/quic/libssl-lib-quic_tls.o" => [ + "ssl/quic/quic_tls.c" + ], + "ssl/quic/libssl-lib-quic_tls_api.o" => [ + "ssl/quic/quic_tls_api.c" + ], + "ssl/quic/libssl-lib-quic_trace.o" => [ + "ssl/quic/quic_trace.c" + ], + "ssl/quic/libssl-lib-quic_tserver.o" => [ + "ssl/quic/quic_tserver.c" + ], + "ssl/quic/libssl-lib-quic_txp.o" => [ + "ssl/quic/quic_txp.c" + ], + "ssl/quic/libssl-lib-quic_txpim.o" => [ + "ssl/quic/quic_txpim.c" + ], + "ssl/quic/libssl-lib-quic_types.o" => [ + "ssl/quic/quic_types.c" + ], + "ssl/quic/libssl-lib-quic_wire.o" => [ + "ssl/quic/quic_wire.c" + ], + "ssl/quic/libssl-lib-quic_wire_pkt.o" => [ + "ssl/quic/quic_wire_pkt.c" + ], + "ssl/quic/libssl-lib-uint_set.o" => [ + "ssl/quic/uint_set.c" ], "ssl/record/libssl-lib-rec_layer_d1.o" => [ "ssl/record/rec_layer_d1.c" @@ -25851,14 +30297,44 @@ our %unified_info = ( "ssl/record/libssl-lib-rec_layer_s3.o" => [ "ssl/record/rec_layer_s3.c" ], - "ssl/record/libssl-lib-ssl3_buffer.o" => [ - "ssl/record/ssl3_buffer.c" + "ssl/record/methods/libcommon-lib-tls_pad.o" => [ + "ssl/record/methods/tls_pad.c" + ], + "ssl/record/methods/libdefault-lib-ssl3_cbc.o" => [ + "ssl/record/methods/ssl3_cbc.c" + ], + "ssl/record/methods/libfips-lib-ssl3_cbc.o" => [ + "ssl/record/methods/ssl3_cbc.c" + ], + "ssl/record/methods/libssl-lib-dtls_meth.o" => [ + "ssl/record/methods/dtls_meth.c" + ], + "ssl/record/methods/libssl-lib-ssl3_meth.o" => [ + "ssl/record/methods/ssl3_meth.c" + ], + "ssl/record/methods/libssl-lib-tls13_meth.o" => [ + "ssl/record/methods/tls13_meth.c" + ], + "ssl/record/methods/libssl-lib-tls1_meth.o" => [ + "ssl/record/methods/tls1_meth.c" + ], + "ssl/record/methods/libssl-lib-tls_common.o" => [ + "ssl/record/methods/tls_common.c" ], - "ssl/record/libssl-lib-ssl3_record.o" => [ - "ssl/record/ssl3_record.c" + "ssl/record/methods/libssl-lib-tls_multib.o" => [ + "ssl/record/methods/tls_multib.c" ], - "ssl/record/libssl-lib-ssl3_record_tls13.o" => [ - "ssl/record/ssl3_record_tls13.c" + "ssl/record/methods/libssl-lib-tlsany_meth.o" => [ + "ssl/record/methods/tlsany_meth.c" + ], + "ssl/rio/libssl-lib-poll_builder.o" => [ + "ssl/rio/poll_builder.c" + ], + "ssl/rio/libssl-lib-poll_immediate.o" => [ + "ssl/rio/poll_immediate.c" + ], + "ssl/rio/libssl-lib-rio_notifier.o" => [ + "ssl/rio/rio_notifier.c" ], "ssl/statem/libssl-lib-extensions.o" => [ "ssl/statem/extensions.c" @@ -25954,6 +30430,8 @@ our %unified_info = ( "test/asn1_string_table_test.c" ], "test/asn1_time_test" => [ + "crypto/asn1/asn1_time_test-bin-a_time.o", + "crypto/asn1_time_test-bin-ctype.o", "test/asn1_time_test-bin-asn1_time_test.o" ], "test/asn1_time_test-bin-asn1_time_test.o" => [ @@ -25984,6 +30462,18 @@ our %unified_info = ( "test/bftest-bin-bftest.o" => [ "test/bftest.c" ], + "test/bio_addr_test" => [ + "test/bio_addr_test-bin-bio_addr_test.o" + ], + "test/bio_addr_test-bin-bio_addr_test.o" => [ + "test/bio_addr_test.c" + ], + "test/bio_base64_test" => [ + "test/bio_base64_test-bin-bio_base64_test.o" + ], + "test/bio_base64_test-bin-bio_base64_test.o" => [ + "test/bio_base64_test.c" + ], "test/bio_callback_test" => [ "test/bio_callback_test-bin-bio_callback_test.o" ], @@ -25996,6 +30486,12 @@ our %unified_info = ( "test/bio_core_test-bin-bio_core_test.o" => [ "test/bio_core_test.c" ], + "test/bio_dgram_test" => [ + "test/bio_dgram_test-bin-bio_dgram_test.o" + ], + "test/bio_dgram_test-bin-bio_dgram_test.o" => [ + "test/bio_dgram_test.c" + ], "test/bio_enc_test" => [ "test/bio_enc_test-bin-bio_enc_test.o" ], @@ -26008,6 +30504,12 @@ our %unified_info = ( "test/bio_memleak_test-bin-bio_memleak_test.o" => [ "test/bio_memleak_test.c" ], + "test/bio_meth_test" => [ + "test/bio_meth_test-bin-bio_meth_test.o" + ], + "test/bio_meth_test-bin-bio_meth_test.o" => [ + "test/bio_meth_test.c" + ], "test/bio_prefix_text" => [ "test/bio_prefix_text-bin-bio_prefix_text.o" ], @@ -26026,6 +30528,12 @@ our %unified_info = ( "test/bio_readbuffer_test-bin-bio_readbuffer_test.o" => [ "test/bio_readbuffer_test.c" ], + "test/bio_tfo_test" => [ + "test/bio_tfo_test-bin-bio_tfo_test.o" + ], + "test/bio_tfo_test-bin-bio_tfo_test.o" => [ + "test/bio_tfo_test.c" + ], "test/bioprinttest" => [ "test/bioprinttest-bin-bioprinttest.o" ], @@ -26044,6 +30552,12 @@ our %unified_info = ( "test/bntest-bin-bntest.o" => [ "test/bntest.c" ], + "test/build_wincrypt_test" => [ + "test/build_wincrypt_test-bin-build_wincrypt_test.o" + ], + "test/build_wincrypt_test-bin-build_wincrypt_test.o" => [ + "test/build_wincrypt_test.c" + ], "test/buildtest_c_aes" => [ "test/buildtest_c_aes-bin-buildtest_aes.o" ], @@ -26074,6 +30588,12 @@ our %unified_info = ( "test/buildtest_c_buffer-bin-buildtest_buffer.o" => [ "test/buildtest_buffer.c" ], + "test/buildtest_c_byteorder" => [ + "test/buildtest_c_byteorder-bin-buildtest_byteorder.o" + ], + "test/buildtest_c_byteorder-bin-buildtest_byteorder.o" => [ + "test/buildtest_byteorder.c" + ], "test/buildtest_c_camellia" => [ "test/buildtest_c_camellia-bin-buildtest_camellia.o" ], @@ -26122,12 +30642,6 @@ our %unified_info = ( "test/buildtest_c_core_dispatch-bin-buildtest_core_dispatch.o" => [ "test/buildtest_core_dispatch.c" ], - "test/buildtest_c_core_names" => [ - "test/buildtest_c_core_names-bin-buildtest_core_names.o" - ], - "test/buildtest_c_core_names-bin-buildtest_core_names.o" => [ - "test/buildtest_core_names.c" - ], "test/buildtest_c_core_object" => [ "test/buildtest_c_core_object-bin-buildtest_core_object.o" ], @@ -26176,6 +30690,12 @@ our %unified_info = ( "test/buildtest_c_e_os2-bin-buildtest_e_os2.o" => [ "test/buildtest_e_os2.c" ], + "test/buildtest_c_e_ostime" => [ + "test/buildtest_c_e_ostime-bin-buildtest_e_ostime.o" + ], + "test/buildtest_c_e_ostime-bin-buildtest_e_ostime.o" => [ + "test/buildtest_e_ostime.c" + ], "test/buildtest_c_ebcdic" => [ "test/buildtest_c_ebcdic-bin-buildtest_ebcdic.o" ], @@ -26230,6 +30750,12 @@ our %unified_info = ( "test/buildtest_c_hmac-bin-buildtest_hmac.o" => [ "test/buildtest_hmac.c" ], + "test/buildtest_c_hpke" => [ + "test/buildtest_c_hpke-bin-buildtest_hpke.o" + ], + "test/buildtest_c_hpke-bin-buildtest_hpke.o" => [ + "test/buildtest_hpke.c" + ], "test/buildtest_c_http" => [ "test/buildtest_c_http-bin-buildtest_http.o" ], @@ -26242,6 +30768,12 @@ our %unified_info = ( "test/buildtest_c_idea-bin-buildtest_idea.o" => [ "test/buildtest_idea.c" ], + "test/buildtest_c_indicator" => [ + "test/buildtest_c_indicator-bin-buildtest_indicator.o" + ], + "test/buildtest_c_indicator-bin-buildtest_indicator.o" => [ + "test/buildtest_indicator.c" + ], "test/buildtest_c_kdf" => [ "test/buildtest_c_kdf-bin-buildtest_kdf.o" ], @@ -26272,6 +30804,12 @@ our %unified_info = ( "test/buildtest_c_mdc2-bin-buildtest_mdc2.o" => [ "test/buildtest_mdc2.c" ], + "test/buildtest_c_ml_kem" => [ + "test/buildtest_c_ml_kem-bin-buildtest_ml_kem.o" + ], + "test/buildtest_c_ml_kem-bin-buildtest_ml_kem.o" => [ + "test/buildtest_ml_kem.c" + ], "test/buildtest_c_modes" => [ "test/buildtest_c_modes-bin-buildtest_modes.o" ], @@ -26332,6 +30870,12 @@ our %unified_info = ( "test/buildtest_c_provider-bin-buildtest_provider.o" => [ "test/buildtest_provider.c" ], + "test/buildtest_c_quic" => [ + "test/buildtest_c_quic-bin-buildtest_quic.o" + ], + "test/buildtest_c_quic-bin-buildtest_quic.o" => [ + "test/buildtest_quic.c" + ], "test/buildtest_c_rand" => [ "test/buildtest_c_rand-bin-buildtest_rand.o" ], @@ -26416,6 +30960,12 @@ our %unified_info = ( "test/buildtest_c_symhacks-bin-buildtest_symhacks.o" => [ "test/buildtest_symhacks.c" ], + "test/buildtest_c_thread" => [ + "test/buildtest_c_thread-bin-buildtest_thread.o" + ], + "test/buildtest_c_thread-bin-buildtest_thread.o" => [ + "test/buildtest_thread.c" + ], "test/buildtest_c_tls1" => [ "test/buildtest_c_tls1-bin-buildtest_tls1.o" ], @@ -26446,6 +30996,29 @@ our %unified_info = ( "test/buildtest_c_whrlpool-bin-buildtest_whrlpool.o" => [ "test/buildtest_whrlpool.c" ], + "test/byteorder_test" => [ + "test/byteorder_test-bin-byteorder_test.o" + ], + "test/byteorder_test-bin-byteorder_test.o" => [ + "test/byteorder_test.c" + ], + "test/ca_internals_test" => [ + "apps/ca_internals_test-bin-ca.o", + "apps/lib/ca_internals_test-bin-app_libctx.o", + "apps/lib/ca_internals_test-bin-app_provider.o", + "apps/lib/ca_internals_test-bin-app_rand.o", + "apps/lib/ca_internals_test-bin-app_x509.o", + "apps/lib/ca_internals_test-bin-apps.o", + "apps/lib/ca_internals_test-bin-apps_ui.o", + "apps/lib/ca_internals_test-bin-engine.o", + "apps/lib/ca_internals_test-bin-fmt.o", + "crypto/asn1/ca_internals_test-bin-a_time.o", + "crypto/ca_internals_test-bin-ctype.o", + "test/ca_internals_test-bin-ca_internals_test.o" + ], + "test/ca_internals_test-bin-ca_internals_test.o" => [ + "test/ca_internals_test.c" + ], "test/casttest" => [ "test/casttest-bin-casttest.o" ], @@ -26624,6 +31197,12 @@ our %unified_info = ( "test/danetest-bin-danetest.o" => [ "test/danetest.c" ], + "test/decoder_propq_test" => [ + "test/decoder_propq_test-bin-decoder_propq_test.o" + ], + "test/decoder_propq_test-bin-decoder_propq_test.o" => [ + "test/decoder_propq_test.c" + ], "test/defltfips_test" => [ "test/defltfips_test-bin-defltfips_test.o" ], @@ -26705,6 +31284,7 @@ our %unified_info = ( "test/ectest.c" ], "test/endecode_test" => [ + "providers/endecode_test-bin-legacyprov.o", "test/endecode_test-bin-endecode_test.o", "test/helpers/endecode_test-bin-predefined_dhparams.o" ], @@ -26737,17 +31317,29 @@ our %unified_info = ( ], "test/evp_extra_test" => [ "providers/evp_extra_test-bin-legacyprov.o", - "test/evp_extra_test-bin-evp_extra_test.o" + "test/evp_extra_test-bin-evp_extra_test.o", + "test/evp_extra_test-bin-fake_pipelineprov.o", + "test/evp_extra_test-bin-fake_rsaprov.o" ], "test/evp_extra_test-bin-evp_extra_test.o" => [ "test/evp_extra_test.c" ], + "test/evp_extra_test-bin-fake_pipelineprov.o" => [ + "test/fake_pipelineprov.c" + ], + "test/evp_extra_test-bin-fake_rsaprov.o" => [ + "test/fake_rsaprov.c" + ], "test/evp_extra_test2" => [ - "test/evp_extra_test2-bin-evp_extra_test2.o" + "test/evp_extra_test2-bin-evp_extra_test2.o", + "test/evp_extra_test2-bin-tls-provider.o" ], "test/evp_extra_test2-bin-evp_extra_test2.o" => [ "test/evp_extra_test2.c" ], + "test/evp_extra_test2-bin-tls-provider.o" => [ + "test/tls-provider.c" + ], "test/evp_fetch_prov_test" => [ "test/evp_fetch_prov_test-bin-evp_fetch_prov_test.o" ], @@ -26772,6 +31364,12 @@ our %unified_info = ( "test/evp_pkey_ctx_new_from_name-bin-evp_pkey_ctx_new_from_name.o" => [ "test/evp_pkey_ctx_new_from_name.c" ], + "test/evp_pkey_dhkem_test" => [ + "test/evp_pkey_dhkem_test-bin-evp_pkey_dhkem_test.o" + ], + "test/evp_pkey_dhkem_test-bin-evp_pkey_dhkem_test.o" => [ + "test/evp_pkey_dhkem_test.c" + ], "test/evp_pkey_dparams_test" => [ "test/evp_pkey_dparams_test-bin-evp_pkey_dparams_test.o" ], @@ -26784,12 +31382,28 @@ our %unified_info = ( "test/evp_pkey_provided_test-bin-evp_pkey_provided_test.o" => [ "test/evp_pkey_provided_test.c" ], + "test/evp_skey_test" => [ + "test/evp_skey_test-bin-evp_skey_test.o", + "test/evp_skey_test-bin-fake_cipherprov.o" + ], + "test/evp_skey_test-bin-evp_skey_test.o" => [ + "test/evp_skey_test.c" + ], + "test/evp_skey_test-bin-fake_cipherprov.o" => [ + "test/fake_cipherprov.c" + ], "test/evp_test" => [ "test/evp_test-bin-evp_test.o" ], "test/evp_test-bin-evp_test.o" => [ "test/evp_test.c" ], + "test/evp_xof_test" => [ + "test/evp_xof_test-bin-evp_xof_test.o" + ], + "test/evp_xof_test-bin-evp_xof_test.o" => [ + "test/evp_xof_test.c" + ], "test/exdatatest" => [ "test/exdatatest-bin-exdatatest.o" ], @@ -26875,15 +31489,108 @@ our %unified_info = ( "test/helpers/fatalerrtest-bin-ssltestlib.o" => [ "test/helpers/ssltestlib.c" ], + "test/helpers/json_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/json_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/json_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/json_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/pkcs12_api_test-bin-pkcs12.o" => [ + "test/helpers/pkcs12.c" + ], "test/helpers/pkcs12_format_test-bin-pkcs12.o" => [ "test/helpers/pkcs12.c" ], + "test/helpers/quic_multistream_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quic_multistream_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quic_multistream_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quic_multistream_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quic_newcid_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quic_newcid_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quic_newcid_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quic_newcid_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quic_radix_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quic_radix_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quic_radix_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quic_radix_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quic_srt_gen_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quic_srt_gen_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quic_srt_gen_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quic_srt_gen_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quicapitest-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quicapitest-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quicapitest-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quicapitest-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quicfaultstest-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quicfaultstest-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quicfaultstest-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quicfaultstest-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], "test/helpers/recordlentest-bin-ssltestlib.o" => [ "test/helpers/ssltestlib.c" ], + "test/helpers/rpktest-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], "test/helpers/servername_test-bin-ssltestlib.o" => [ "test/helpers/ssltestlib.c" ], + "test/helpers/ssl_handshake_rtt_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], "test/helpers/ssl_old_test-bin-predefined_dhparams.o" => [ "test/helpers/predefined_dhparams.c" ], @@ -26911,6 +31618,9 @@ our %unified_info = ( "test/helpers/tls13ccstest-bin-ssltestlib.o" => [ "test/helpers/ssltestlib.c" ], + "test/helpers/tls13groupselection_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], "test/hexstr_test" => [ "test/hexstr_test-bin-hexstr_test.o" ], @@ -26923,6 +31633,12 @@ our %unified_info = ( "test/hmactest-bin-hmactest.o" => [ "test/hmactest.c" ], + "test/hpke_test" => [ + "test/hpke_test-bin-hpke_test.o" + ], + "test/hpke_test-bin-hpke_test.o" => [ + "test/hpke_test.c" + ], "test/http_test" => [ "test/http_test-bin-http_test.o" ], @@ -26941,6 +31657,16 @@ our %unified_info = ( "test/igetest-bin-igetest.o" => [ "test/igetest.c" ], + "test/json_test" => [ + "test/helpers/json_test-bin-noisydgrambio.o", + "test/helpers/json_test-bin-pktsplitbio.o", + "test/helpers/json_test-bin-quictestlib.o", + "test/helpers/json_test-bin-ssltestlib.o", + "test/json_test-bin-json_test.o" + ], + "test/json_test-bin-json_test.o" => [ + "test/json_test.c" + ], "test/keymgmt_internal_test" => [ "test/keymgmt_internal_test-bin-keymgmt_internal_test.o" ], @@ -26961,6 +31687,7 @@ our %unified_info = ( "test/testutil/libtestutil-lib-driver.o", "test/testutil/libtestutil-lib-fake_random.o", "test/testutil/libtestutil-lib-format_output.o", + "test/testutil/libtestutil-lib-helper.o", "test/testutil/libtestutil-lib-load.o", "test/testutil/libtestutil-lib-main.o", "test/testutil/libtestutil-lib-options.o", @@ -26973,6 +31700,12 @@ our %unified_info = ( "test/testutil/libtestutil-lib-tests.o", "test/testutil/libtestutil-lib-testutil_init.o" ], + "test/list_test" => [ + "test/list_test-bin-list_test.o" + ], + "test/list_test-bin-list_test.o" => [ + "test/list_test.c" + ], "test/localetest" => [ "test/localetest-bin-localetest.o" ], @@ -26991,12 +31724,36 @@ our %unified_info = ( "test/mdc2test-bin-mdc2test.o" => [ "test/mdc2test.c" ], + "test/membio_test" => [ + "test/membio_test-bin-membio_test.o" + ], + "test/membio_test-bin-membio_test.o" => [ + "test/membio_test.c" + ], "test/memleaktest" => [ "test/memleaktest-bin-memleaktest.o" ], "test/memleaktest-bin-memleaktest.o" => [ "test/memleaktest.c" ], + "test/ml_dsa_test" => [ + "test/ml_dsa_test-bin-ml_dsa_test.o" + ], + "test/ml_dsa_test-bin-ml_dsa_test.o" => [ + "test/ml_dsa_test.c" + ], + "test/ml_kem_evp_extra_test" => [ + "test/ml_kem_evp_extra_test-bin-ml_kem_evp_extra_test.o" + ], + "test/ml_kem_evp_extra_test-bin-ml_kem_evp_extra_test.o" => [ + "test/ml_kem_evp_extra_test.c" + ], + "test/ml_kem_internal_test" => [ + "test/ml_kem_internal_test-bin-ml_kem_internal_test.o" + ], + "test/ml_kem_internal_test-bin-ml_kem_internal_test.o" => [ + "test/ml_kem_internal_test.c" + ], "test/modes_internal_test" => [ "test/modes_internal_test-bin-modes_internal_test.o" ], @@ -27042,11 +31799,18 @@ our %unified_info = ( "test/p_test.c" ], "test/packettest" => [ + "crypto/packettest-bin-quic_vlint.o", "test/packettest-bin-packettest.o" ], "test/packettest-bin-packettest.o" => [ "test/packettest.c" ], + "test/pairwise_fail_test" => [ + "test/pairwise_fail_test-bin-pairwise_fail_test.o" + ], + "test/pairwise_fail_test-bin-pairwise_fail_test.o" => [ + "test/pairwise_fail_test.c" + ], "test/param_build_test" => [ "test/param_build_test-bin-param_build_test.o" ], @@ -27095,6 +31859,13 @@ our %unified_info = ( "test/pemtest-bin-pemtest.o" => [ "test/pemtest.c" ], + "test/pkcs12_api_test" => [ + "test/helpers/pkcs12_api_test-bin-pkcs12.o", + "test/pkcs12_api_test-bin-pkcs12_api_test.o" + ], + "test/pkcs12_api_test-bin-pkcs12_api_test.o" => [ + "test/pkcs12_api_test.c" + ], "test/pkcs12_format_test" => [ "test/helpers/pkcs12_format_test-bin-pkcs12.o", "test/pkcs12_format_test-bin-pkcs12_format_test.o" @@ -27126,6 +31897,12 @@ our %unified_info = ( "test/poly1305_internal_test-bin-poly1305_internal_test.o" => [ "test/poly1305_internal_test.c" ], + "test/priority_queue_test" => [ + "test/priority_queue_test-bin-priority_queue_test.o" + ], + "test/priority_queue_test-bin-priority_queue_test.o" => [ + "test/priority_queue_test.c" + ], "test/property_test" => [ "test/property_test-bin-property_test.o" ], @@ -27144,6 +31921,12 @@ our %unified_info = ( "test/provfetchtest-bin-provfetchtest.o" => [ "test/provfetchtest.c" ], + "test/provider_default_search_path_test" => [ + "test/provider_default_search_path_test-bin-provider_default_search_path_test.o" + ], + "test/provider_default_search_path_test-bin-provider_default_search_path_test.o" => [ + "test/provider_default_search_path_test.c" + ], "test/provider_fallback_test" => [ "test/provider_fallback_test-bin-provider_fallback_test.o" ], @@ -27192,6 +31975,174 @@ our %unified_info = ( "test/punycode_test-bin-punycode_test.o" => [ "test/punycode_test.c" ], + "test/quic_ackm_test" => [ + "test/quic_ackm_test-bin-cc_dummy.o", + "test/quic_ackm_test-bin-quic_ackm_test.o" + ], + "test/quic_ackm_test-bin-cc_dummy.o" => [ + "test/cc_dummy.c" + ], + "test/quic_ackm_test-bin-quic_ackm_test.o" => [ + "test/quic_ackm_test.c" + ], + "test/quic_cc_test" => [ + "test/quic_cc_test-bin-quic_cc_test.o" + ], + "test/quic_cc_test-bin-quic_cc_test.o" => [ + "test/quic_cc_test.c" + ], + "test/quic_cfq_test" => [ + "test/quic_cfq_test-bin-quic_cfq_test.o" + ], + "test/quic_cfq_test-bin-quic_cfq_test.o" => [ + "test/quic_cfq_test.c" + ], + "test/quic_client_test" => [ + "test/quic_client_test-bin-quic_client_test.o" + ], + "test/quic_client_test-bin-quic_client_test.o" => [ + "test/quic_client_test.c" + ], + "test/quic_fc_test" => [ + "test/quic_fc_test-bin-quic_fc_test.o" + ], + "test/quic_fc_test-bin-quic_fc_test.o" => [ + "test/quic_fc_test.c" + ], + "test/quic_fifd_test" => [ + "test/quic_fifd_test-bin-cc_dummy.o", + "test/quic_fifd_test-bin-quic_fifd_test.o" + ], + "test/quic_fifd_test-bin-cc_dummy.o" => [ + "test/cc_dummy.c" + ], + "test/quic_fifd_test-bin-quic_fifd_test.o" => [ + "test/quic_fifd_test.c" + ], + "test/quic_lcidm_test" => [ + "test/quic_lcidm_test-bin-quic_lcidm_test.o" + ], + "test/quic_lcidm_test-bin-quic_lcidm_test.o" => [ + "test/quic_lcidm_test.c" + ], + "test/quic_multistream_test" => [ + "test/helpers/quic_multistream_test-bin-noisydgrambio.o", + "test/helpers/quic_multistream_test-bin-pktsplitbio.o", + "test/helpers/quic_multistream_test-bin-quictestlib.o", + "test/helpers/quic_multistream_test-bin-ssltestlib.o", + "test/quic_multistream_test-bin-quic_multistream_test.o" + ], + "test/quic_multistream_test-bin-quic_multistream_test.o" => [ + "test/quic_multistream_test.c" + ], + "test/quic_newcid_test" => [ + "test/helpers/quic_newcid_test-bin-noisydgrambio.o", + "test/helpers/quic_newcid_test-bin-pktsplitbio.o", + "test/helpers/quic_newcid_test-bin-quictestlib.o", + "test/helpers/quic_newcid_test-bin-ssltestlib.o", + "test/quic_newcid_test-bin-quic_newcid_test.o" + ], + "test/quic_newcid_test-bin-quic_newcid_test.o" => [ + "test/quic_newcid_test.c" + ], + "test/quic_qlog_test" => [ + "test/quic_qlog_test-bin-quic_qlog_test.o" + ], + "test/quic_qlog_test-bin-quic_qlog_test.o" => [ + "test/quic_qlog_test.c" + ], + "test/quic_radix_test" => [ + "test/helpers/quic_radix_test-bin-noisydgrambio.o", + "test/helpers/quic_radix_test-bin-pktsplitbio.o", + "test/helpers/quic_radix_test-bin-quictestlib.o", + "test/helpers/quic_radix_test-bin-ssltestlib.o", + "test/radix/quic_radix_test-bin-quic_radix.o" + ], + "test/quic_rcidm_test" => [ + "test/quic_rcidm_test-bin-quic_rcidm_test.o" + ], + "test/quic_rcidm_test-bin-quic_rcidm_test.o" => [ + "test/quic_rcidm_test.c" + ], + "test/quic_record_test" => [ + "test/quic_record_test-bin-quic_record_test.o" + ], + "test/quic_record_test-bin-quic_record_test.o" => [ + "test/quic_record_test.c" + ], + "test/quic_srt_gen_test" => [ + "test/helpers/quic_srt_gen_test-bin-noisydgrambio.o", + "test/helpers/quic_srt_gen_test-bin-pktsplitbio.o", + "test/helpers/quic_srt_gen_test-bin-quictestlib.o", + "test/helpers/quic_srt_gen_test-bin-ssltestlib.o", + "test/quic_srt_gen_test-bin-quic_srt_gen_test.o" + ], + "test/quic_srt_gen_test-bin-quic_srt_gen_test.o" => [ + "test/quic_srt_gen_test.c" + ], + "test/quic_srtm_test" => [ + "test/quic_srtm_test-bin-quic_srtm_test.o" + ], + "test/quic_srtm_test-bin-quic_srtm_test.o" => [ + "test/quic_srtm_test.c" + ], + "test/quic_stream_test" => [ + "test/quic_stream_test-bin-quic_stream_test.o" + ], + "test/quic_stream_test-bin-quic_stream_test.o" => [ + "test/quic_stream_test.c" + ], + "test/quic_tserver_test" => [ + "test/quic_tserver_test-bin-quic_tserver_test.o" + ], + "test/quic_tserver_test-bin-quic_tserver_test.o" => [ + "test/quic_tserver_test.c" + ], + "test/quic_txp_test" => [ + "test/quic_txp_test-bin-cc_dummy.o", + "test/quic_txp_test-bin-quic_txp_test.o" + ], + "test/quic_txp_test-bin-cc_dummy.o" => [ + "test/cc_dummy.c" + ], + "test/quic_txp_test-bin-quic_txp_test.o" => [ + "test/quic_txp_test.c" + ], + "test/quic_txpim_test" => [ + "test/quic_txpim_test-bin-quic_txpim_test.o" + ], + "test/quic_txpim_test-bin-quic_txpim_test.o" => [ + "test/quic_txpim_test.c" + ], + "test/quic_wire_test" => [ + "test/quic_wire_test-bin-quic_wire_test.o" + ], + "test/quic_wire_test-bin-quic_wire_test.o" => [ + "test/quic_wire_test.c" + ], + "test/quicapitest" => [ + "test/helpers/quicapitest-bin-noisydgrambio.o", + "test/helpers/quicapitest-bin-pktsplitbio.o", + "test/helpers/quicapitest-bin-quictestlib.o", + "test/helpers/quicapitest-bin-ssltestlib.o", + "test/quicapitest-bin-quicapitest.o" + ], + "test/quicapitest-bin-quicapitest.o" => [ + "test/quicapitest.c" + ], + "test/quicfaultstest" => [ + "test/helpers/quicfaultstest-bin-noisydgrambio.o", + "test/helpers/quicfaultstest-bin-pktsplitbio.o", + "test/helpers/quicfaultstest-bin-quictestlib.o", + "test/helpers/quicfaultstest-bin-ssltestlib.o", + "test/quicfaultstest-bin-quicfaultstest.o" + ], + "test/quicfaultstest-bin-quicfaultstest.o" => [ + "test/quicfaultstest.c" + ], + "test/radix/quic_radix_test-bin-quic_radix.o" => [ + "test/radix/quic_radix.c" + ], "test/rand_status_test" => [ "test/rand_status_test-bin-rand_status_test.o" ], @@ -27222,11 +32173,11 @@ our %unified_info = ( "test/rc5test-bin-rc5test.o" => [ "test/rc5test.c" ], - "test/rdrand_sanitytest" => [ - "test/rdrand_sanitytest-bin-rdrand_sanitytest.o" + "test/rdcpu_sanitytest" => [ + "test/rdcpu_sanitytest-bin-rdcpu_sanitytest.o" ], - "test/rdrand_sanitytest-bin-rdrand_sanitytest.o" => [ - "test/rdrand_sanitytest.c" + "test/rdcpu_sanitytest-bin-rdcpu_sanitytest.o" => [ + "test/rdcpu_sanitytest.c" ], "test/recordlentest" => [ "test/helpers/recordlentest-bin-ssltestlib.o", @@ -27235,6 +32186,13 @@ our %unified_info = ( "test/recordlentest-bin-recordlentest.o" => [ "test/recordlentest.c" ], + "test/rpktest" => [ + "test/helpers/rpktest-bin-ssltestlib.o", + "test/rpktest-bin-rpktest.o" + ], + "test/rpktest-bin-rpktest.o" => [ + "test/rpktest.c" + ], "test/rsa_complex" => [ "test/rsa_complex-bin-rsa_complex.o" ], @@ -27259,6 +32217,18 @@ our %unified_info = ( "test/rsa_test-bin-rsa_test.o" => [ "test/rsa_test.c" ], + "test/rsa_x931_test" => [ + "test/rsa_x931_test-bin-rsa_x931_test.o" + ], + "test/rsa_x931_test-bin-rsa_x931_test.o" => [ + "test/rsa_x931_test.c" + ], + "test/safe_math_test" => [ + "test/safe_math_test-bin-safe_math_test.o" + ], + "test/safe_math_test-bin-safe_math_test.o" => [ + "test/safe_math_test.c" + ], "test/sanitytest" => [ "test/sanitytest-bin-sanitytest.o" ], @@ -27290,6 +32260,12 @@ our %unified_info = ( "test/siphash_internal_test-bin-siphash_internal_test.o" => [ "test/siphash_internal_test.c" ], + "test/slh_dsa_test" => [ + "test/slh_dsa_test-bin-slh_dsa_test.o" + ], + "test/slh_dsa_test-bin-slh_dsa_test.o" => [ + "test/slh_dsa_test.c" + ], "test/sm2_internal_test" => [ "test/sm2_internal_test-bin-sm2_internal_test.o" ], @@ -27332,6 +32308,13 @@ our %unified_info = ( "test/ssl_ctx_test-bin-ssl_ctx_test.o" => [ "test/ssl_ctx_test.c" ], + "test/ssl_handshake_rtt_test" => [ + "test/helpers/ssl_handshake_rtt_test-bin-ssltestlib.o", + "test/ssl_handshake_rtt_test-bin-ssl_handshake_rtt_test.o" + ], + "test/ssl_handshake_rtt_test-bin-ssl_handshake_rtt_test.o" => [ + "test/ssl_handshake_rtt_test.c" + ], "test/ssl_old_test" => [ "test/helpers/ssl_old_test-bin-predefined_dhparams.o", "test/ssl_old_test-bin-ssl_old_test.o" @@ -27390,6 +32373,12 @@ our %unified_info = ( "test/stack_test-bin-stack_test.o" => [ "test/stack_test.c" ], + "test/strtoultest" => [ + "test/strtoultest-bin-strtoultest.o" + ], + "test/strtoultest-bin-strtoultest.o" => [ + "test/strtoultest.c" + ], "test/sysdefaulttest" => [ "test/sysdefaulttest-bin-sysdefaulttest.o" ], @@ -27420,6 +32409,9 @@ our %unified_info = ( "test/testutil/libtestutil-lib-format_output.o" => [ "test/testutil/format_output.c" ], + "test/testutil/libtestutil-lib-helper.o" => [ + "test/testutil/helper.c" + ], "test/testutil/libtestutil-lib-load.o" => [ "test/testutil/load.c" ], @@ -27453,6 +32445,12 @@ our %unified_info = ( "test/testutil/libtestutil-lib-testutil_init.o" => [ "test/testutil/testutil_init.c" ], + "test/threadpool_test" => [ + "test/threadpool_test-bin-threadpool_test.o" + ], + "test/threadpool_test-bin-threadpool_test.o" => [ + "test/threadpool_test.c" + ], "test/threadstest" => [ "test/threadstest-bin-threadstest.o" ], @@ -27471,6 +32469,12 @@ our %unified_info = ( "test/time_offset_test-bin-time_offset_test.o" => [ "test/time_offset_test.c" ], + "test/time_test" => [ + "test/time_test-bin-time_test.o" + ], + "test/time_test-bin-time_test.o" => [ + "test/time_test.c" + ], "test/tls13ccstest" => [ "test/helpers/tls13ccstest-bin-ssltestlib.o", "test/tls13ccstest-bin-tls13ccstest.o" @@ -27484,6 +32488,13 @@ our %unified_info = ( "test/tls13encryptiontest-bin-tls13encryptiontest.o" => [ "test/tls13encryptiontest.c" ], + "test/tls13groupselection_test" => [ + "test/helpers/tls13groupselection_test-bin-ssltestlib.o", + "test/tls13groupselection_test-bin-tls13groupselection_test.o" + ], + "test/tls13groupselection_test-bin-tls13groupselection_test.o" => [ + "test/tls13groupselection_test.c" + ], "test/trace_api_test" => [ "test/trace_api_test-bin-trace_api_test.o" ], @@ -27539,6 +32550,12 @@ our %unified_info = ( "test/wpackettest-bin-wpackettest.o" => [ "test/wpackettest.c" ], + "test/x509_acert_test" => [ + "test/x509_acert_test-bin-x509_acert_test.o" + ], + "test/x509_acert_test-bin-x509_acert_test.o" => [ + "test/x509_acert_test.c" + ], "test/x509_check_cert_pkey_test" => [ "test/x509_check_cert_pkey_test-bin-x509_check_cert_pkey_test.o" ], @@ -27557,6 +32574,24 @@ our %unified_info = ( "test/x509_internal_test-bin-x509_internal_test.o" => [ "test/x509_internal_test.c" ], + "test/x509_load_cert_file_test" => [ + "test/x509_load_cert_file_test-bin-x509_load_cert_file_test.o" + ], + "test/x509_load_cert_file_test-bin-x509_load_cert_file_test.o" => [ + "test/x509_load_cert_file_test.c" + ], + "test/x509_req_test" => [ + "test/x509_req_test-bin-x509_req_test.o" + ], + "test/x509_req_test-bin-x509_req_test.o" => [ + "test/x509_req_test.c" + ], + "test/x509_test" => [ + "test/x509_test-bin-x509_test.o" + ], + "test/x509_test-bin-x509_test.o" => [ + "test/x509_test.c" + ], "test/x509_time_test" => [ "test/x509_time_test-bin-x509_time_test.o" ], @@ -27620,6 +32655,7 @@ my @makevars = ( "LDLIBS", "MT", "MTFLAGS", + "OBJCOPY", "PERL", "RANLIB", "RC", @@ -27633,6 +32669,12 @@ my %disabled_info = ( "asan" => { "macro" => "OPENSSL_NO_ASAN" }, + "brotli" => { + "macro" => "OPENSSL_NO_BROTLI" + }, + "brotli-dynamic" => { + "macro" => "OPENSSL_NO_BROTLI_DYNAMIC" + }, "comp" => { "macro" => "OPENSSL_NO_COMP", "skipped" => [ @@ -27645,6 +32687,9 @@ my %disabled_info = ( "crypto-mdebug-backtrace" => { "macro" => "OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE" }, + "demos" => { + "macro" => "OPENSSL_NO_DEMOS" + }, "devcryptoeng" => { "macro" => "OPENSSL_NO_DEVCRYPTOENG" }, @@ -27657,12 +32702,24 @@ my %disabled_info = ( "external-tests" => { "macro" => "OPENSSL_NO_EXTERNAL_TESTS" }, + "fips-jitter" => { + "macro" => "OPENSSL_NO_FIPS_JITTER" + }, "fuzz-afl" => { "macro" => "OPENSSL_NO_FUZZ_AFL" }, "fuzz-libfuzzer" => { "macro" => "OPENSSL_NO_FUZZ_LIBFUZZER" }, + "h3demo" => { + "macro" => "OPENSSL_NO_H3DEMO" + }, + "hqinterop" => { + "macro" => "OPENSSL_NO_HQINTEROP" + }, + "jitter" => { + "macro" => "OPENSSL_NO_JITTER" + }, "ktls" => { "macro" => "OPENSSL_NO_KTLS" }, @@ -27678,6 +32735,9 @@ my %disabled_info = ( "msan" => { "macro" => "OPENSSL_NO_MSAN" }, + "pie" => { + "macro" => "OPENSSL_NO_PIE" + }, "rc5" => { "macro" => "OPENSSL_NO_RC5", "skipped" => [ @@ -27693,6 +32753,12 @@ my %disabled_info = ( "ssl3-method" => { "macro" => "OPENSSL_NO_SSL3_METHOD" }, + "sslkeylog" => { + "macro" => "OPENSSL_NO_SSLKEYLOG" + }, + "tfo" => { + "macro" => "OPENSSL_NO_TFO" + }, "trace" => { "macro" => "OPENSSL_NO_TRACE" }, @@ -27707,6 +32773,21 @@ my %disabled_info = ( }, "weak-ssl-ciphers" => { "macro" => "OPENSSL_NO_WEAK_SSL_CIPHERS" + }, + "winstore" => { + "macro" => "OPENSSL_NO_WINSTORE" + }, + "zlib" => { + "macro" => "OPENSSL_NO_ZLIB" + }, + "zlib-dynamic" => { + "macro" => "OPENSSL_NO_ZLIB_DYNAMIC" + }, + "zstd" => { + "macro" => "OPENSSL_NO_ZSTD" + }, + "zstd-dynamic" => { + "macro" => "OPENSSL_NO_ZSTD_DYNAMIC" } ); my @user_crossable = qw( AR AS CC CXX CPP LD MT RANLIB RC ); @@ -27720,15 +32801,15 @@ unless (caller) { use File::Copy; use Pod::Usage; - use lib '/home/runner/work/node/node/deps/openssl/openssl/util/perl'; - use OpenSSL::fallback '/home/runner/work/node/node/deps/openssl/openssl/external/perl/MODULES.txt'; + use lib '/node/deps/openssl/openssl/util/perl'; + use OpenSSL::fallback '/node/deps/openssl/openssl/external/perl/MODULES.txt'; my $here = dirname($0); if (scalar @ARGV == 0) { # With no arguments, re-create the build file # We do that in two steps, where the first step emits perl - # snipets. + # snippets. my $buildfile = $config{build_file}; my $buildfile_template = "$buildfile.in"; @@ -27748,7 +32829,7 @@ unless (caller) { ); use lib '.'; - use lib '/home/runner/work/node/node/deps/openssl/openssl/Configurations'; + use lib '/node/deps/openssl/openssl/Configurations'; use gentemplate; open my $buildfile_template_fh, ">$buildfile_template" @@ -27765,8 +32846,8 @@ unless (caller) { my $prepend = <<'_____'; use File::Spec::Functions; -use lib '/home/runner/work/node/node/deps/openssl/openssl/util/perl'; -use lib '/home/runner/work/node/node/deps/openssl/openssl/Configurations'; +use lib '/node/deps/openssl/openssl/util/perl'; +use lib '/node/deps/openssl/openssl/Configurations'; use lib '.'; use platform; _____ diff --git a/deps/openssl/config/archs/aix64-gcc-as/asm/crypto/bn/ppc64-mont-fixed.s b/deps/openssl/config/archs/aix64-gcc-as/asm/crypto/bn/ppc64-mont-fixed.s new file mode 100644 index 00000000000000..9c6337035ae184 --- /dev/null +++ b/deps/openssl/config/archs/aix64-gcc-as/asm/crypto/bn/ppc64-mont-fixed.s @@ -0,0 +1,417 @@ +.machine "any" +.csect .text[PR],7 + +.globl .bn_mul_mont_fixed_n6 +.align 5 +.bn_mul_mont_fixed_n6: + + std 14,-8(1) + std 20,-16(1) + std 21,-24(1) + std 22,-32(1) + std 23,-40(1) + std 24,-48(1) + std 25,-56(1) + std 26,-64(1) + std 27,-72(1) + + li 0,0 + ld 7,0(7) + + ld 11,0(5) + + ld 12,0(4) + mulld 20,12,11 + mulhdu 10,12,11 + + ld 12,8(4) + mulld 14,12,11 + addc 21,14,10 + mulhdu 10,12,11 + addze 10,10 + + ld 12,16(4) + mulld 14,12,11 + addc 22,14,10 + mulhdu 10,12,11 + addze 10,10 + + ld 12,24(4) + mulld 14,12,11 + addc 23,14,10 + mulhdu 10,12,11 + addze 10,10 + + ld 12,32(4) + mulld 14,12,11 + addc 24,14,10 + mulhdu 10,12,11 + addze 10,10 + + ld 12,40(4) + mulld 14,12,11 + addc 25,14,10 + mulhdu 10,12,11 + + addze 26,10 + li 27,0 + + li 9,0 + mtctr 8 + b Lenter_6 + +.align 4 +Louter_6: + ldx 11,5,9 + + ld 12,0(4) + mulld 14,12,11 + addc 20,20,14 + mulhdu 10,12,11 + addze 10,10 + + ld 12,8(4) + mulld 14,12,11 + addc 14,14,10 + mulhdu 10,12,11 + addze 10,10 + addc 21,21,14 + addze 10,10 + + ld 12,16(4) + mulld 14,12,11 + addc 14,14,10 + mulhdu 10,12,11 + addze 10,10 + addc 22,22,14 + addze 10,10 + + ld 12,24(4) + mulld 14,12,11 + addc 14,14,10 + mulhdu 10,12,11 + addze 10,10 + addc 23,23,14 + addze 10,10 + + ld 12,32(4) + mulld 14,12,11 + addc 14,14,10 + mulhdu 10,12,11 + addze 10,10 + addc 24,24,14 + addze 10,10 + + ld 12,40(4) + mulld 14,12,11 + addc 14,14,10 + mulhdu 10,12,11 + addze 10,10 + addc 25,25,14 + addze 10,10 + + addc 26,26,10 + addze 27,0 +.align 4 +Lenter_6: + mulld 11,20,7 + + ld 12,0(6) + mulld 14,11,12 + addc 14,20,14 + mulhdu 10,11,12 + addze 10,10 + + ld 12,8(6) + mulld 14,12,11 + addc 14,14,10 + mulhdu 10,12,11 + addze 10,10 + addc 20,21,14 + addze 10,10 + + ld 12,16(6) + mulld 14,12,11 + addc 14,14,10 + mulhdu 10,12,11 + addze 10,10 + addc 21,22,14 + addze 10,10 + + ld 12,24(6) + mulld 14,12,11 + addc 14,14,10 + mulhdu 10,12,11 + addze 10,10 + addc 22,23,14 + addze 10,10 + + ld 12,32(6) + mulld 14,12,11 + addc 14,14,10 + mulhdu 10,12,11 + addze 10,10 + addc 23,24,14 + addze 10,10 + + ld 12,40(6) + mulld 14,12,11 + addc 14,14,10 + mulhdu 10,12,11 + addze 10,10 + addc 24,25,14 + addze 10,10 + + addc 25,26,10 + addze 26,27 + + addi 9,9,8 + bc 16,0,Louter_6 + + and. 26,26,26 + bne Lsub_6 + + cmpld 25,12 + blt Lcopy_6 + +Lsub_6: + ld 11,0(6) + subfc 14,11,20 + std 14,0(3) + + ld 11,8(6) + subfe 14,11,21 + std 14,8(3) + + ld 11,16(6) + subfe 14,11,22 + std 14,16(3) + + ld 11,24(6) + subfe 14,11,23 + std 14,24(3) + + ld 11,32(6) + subfe 14,11,24 + std 14,32(3) + + subfe 14,12,25 + std 14,40(3) + + addme. 26,26 + beq Lend_6 + +Lcopy_6: + std 20,0(3) + std 21,8(3) + std 22,16(3) + std 23,24(3) + std 24,32(3) + std 25,40(3) + +Lend_6: + ld 14,-8(1) + ld 20,-16(1) + ld 21,-24(1) + ld 22,-32(1) + ld 23,-40(1) + ld 24,-48(1) + ld 25,-56(1) + ld 26,-64(1) + ld 27,-72(1) + + li 3,1 + blr + + +.globl .bn_mul_mont_300_fixed_n6 +.align 5 +.bn_mul_mont_300_fixed_n6: + + std 14,-8(1) + std 20,-16(1) + std 21,-24(1) + std 22,-32(1) + std 23,-40(1) + std 24,-48(1) + std 25,-56(1) + std 26,-64(1) + std 27,-72(1) + + li 0,0 + ld 7,0(7) + + ld 11,0(5) + + ld 12,0(4) + mulld 20,12,11 + mulhdu 10,12,11 + + ld 12,8(4) + .long 0x12AC5AB3 + .long 0x114C5AB1 + + ld 12,16(4) + .long 0x12CC5AB3 + .long 0x114C5AB1 + + ld 12,24(4) + .long 0x12EC5AB3 + .long 0x114C5AB1 + + ld 12,32(4) + .long 0x130C5AB3 + .long 0x114C5AB1 + + ld 12,40(4) + .long 0x132C5AB3 + .long 0x134C5AB1 + + li 27,0 + + li 9,0 + mtctr 8 + b Lenter_300_6 + +.align 4 +Louter_300_6: + ldx 11,5,9 + + ld 12,0(4) + .long 0x11CC5D33 + .long 0x114C5D31 + mr 20,14 + + ld 12,8(4) + .long 0x11CC5AB3 + .long 0x114C5AB1 + addc 21,21,14 + addze 10,10 + + ld 12,16(4) + .long 0x11CC5AB3 + .long 0x114C5AB1 + addc 22,22,14 + addze 10,10 + + ld 12,24(4) + .long 0x11CC5AB3 + .long 0x114C5AB1 + addc 23,23,14 + addze 10,10 + + ld 12,32(4) + .long 0x11CC5AB3 + .long 0x114C5AB1 + addc 24,24,14 + addze 10,10 + + ld 12,40(4) + .long 0x11CC5AB3 + .long 0x114C5AB1 + addc 25,25,14 + addze 10,10 + + addc 26,26,10 + addze 27,0 +.align 4 +Lenter_300_6: + mulld 11,20,7 + + ld 12,0(6) + .long 0x11CB6533 + .long 0x114B6531 + + ld 12,8(6) + .long 0x11CC5AB3 + .long 0x114C5AB1 + addc 20,21,14 + addze 10,10 + + ld 12,16(6) + .long 0x11CC5AB3 + .long 0x114C5AB1 + addc 21,22,14 + addze 10,10 + + ld 12,24(6) + .long 0x11CC5AB3 + .long 0x114C5AB1 + addc 22,23,14 + addze 10,10 + + ld 12,32(6) + .long 0x11CC5AB3 + .long 0x114C5AB1 + addc 23,24,14 + addze 10,10 + + ld 12,40(6) + .long 0x11CC5AB3 + .long 0x114C5AB1 + addc 24,25,14 + addze 10,10 + + addc 25,26,10 + addze 26,27 + + addi 9,9,8 + bc 16,0,Louter_300_6 + + and. 26,26,26 + bne Lsub_300_6 + + cmpld 25,12 + blt Lcopy_300_6 + +Lsub_300_6: + ld 11,0(6) + subfc 14,11,20 + std 14,0(3) + + ld 11,8(6) + subfe 14,11,21 + std 14,8(3) + + ld 11,16(6) + subfe 14,11,22 + std 14,16(3) + + ld 11,24(6) + subfe 14,11,23 + std 14,24(3) + + ld 11,32(6) + subfe 14,11,24 + std 14,32(3) + + subfe 14,12,25 + std 14,40(3) + + addme. 26,26 + beq Lend_300_6 + +Lcopy_300_6: + std 20,0(3) + std 21,8(3) + std 22,16(3) + std 23,24(3) + std 24,32(3) + std 25,40(3) + +Lend_300_6: + ld 14,-8(1) + ld 20,-16(1) + ld 21,-24(1) + ld 22,-32(1) + ld 23,-40(1) + ld 24,-48(1) + ld 25,-56(1) + ld 26,-64(1) + ld 27,-72(1) + + li 3,1 + blr + +.byte 77,111,110,116,103,111,109,101,114,121,32,77,117,108,116,105,112,108,105,99,97,116,105,111,110,32,102,111,114,32,80,80,67,32,98,121,32,60,97,109,105,116,97,121,64,111,122,108,97,98,115,46,111,114,103,62,44,60,97,108,97,115,116,97,105,114,64,100,45,115,105,108,118,97,46,111,114,103,62,0 +.align 2 diff --git a/deps/openssl/config/archs/aix64-gcc-as/asm/crypto/buildinf.h b/deps/openssl/config/archs/aix64-gcc-as/asm/crypto/buildinf.h index a4b827fcfdb29d..8c0b5af5ab085b 100644 --- a/deps/openssl/config/archs/aix64-gcc-as/asm/crypto/buildinf.h +++ b/deps/openssl/config/archs/aix64-gcc-as/asm/crypto/buildinf.h @@ -11,7 +11,7 @@ */ #define PLATFORM "platform: aix64-gcc-as" -#define DATE "built on: Sun Jul 20 00:45:04 2025 UTC" +#define DATE "built on: Sun Jul 27 00:44:53 2025 UTC" /* * Generate compiler_flags as an array of individual characters. This is a diff --git a/deps/openssl/config/archs/aix64-gcc-as/asm/crypto/params_idx.c b/deps/openssl/config/archs/aix64-gcc-as/asm/crypto/params_idx.c new file mode 100644 index 00000000000000..9d76ffededc24c --- /dev/null +++ b/deps/openssl/config/archs/aix64-gcc-as/asm/crypto/params_idx.c @@ -0,0 +1,3366 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from crypto/params_idx.c.in + * + * Copyright 2023 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + +#include "internal/e_os.h" +#include "internal/param_names.h" +#include + +/* Machine generated TRIE -- generated by util/perl/OpenSSL/paramnames.pm */ +int ossl_param_find_pidx(const char *s) +{ + switch(s[0]) { + default: + break; + case 'a': + switch(s[1]) { + default: + break; + case 'c': + if (strcmp("vp-info", s + 2) == 0) + return PIDX_KDF_PARAM_X942_ACVPINFO; + break; + case 'd': + switch(s[2]) { + default: + break; + case 'd': + if (strcmp("itional-random", s + 3) == 0) + return PIDX_SIGNATURE_PARAM_ADD_RANDOM; + break; + case '\0': + return PIDX_KDF_PARAM_ARGON2_AD; + } + break; + case 'e': + if (strcmp("ad", s + 2) == 0) + return PIDX_CIPHER_PARAM_AEAD; + break; + case 'l': + switch(s[2]) { + default: + break; + case 'g': + switch(s[3]) { + default: + break; + case '_': + if (strcmp("id_param", s + 4) == 0) + return PIDX_CIPHER_PARAM_ALGORITHM_ID_PARAMS_OLD; + break; + case 'i': + if (strcmp("d-absent", s + 4) == 0) + return PIDX_DIGEST_PARAM_ALGID_ABSENT; + break; + case 'o': + switch(s[4]) { + default: + break; + case 'r': + switch(s[5]) { + default: + break; + case 'i': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case 'h': + switch(s[8]) { + default: + break; + case 'm': + switch(s[9]) { + default: + break; + case '-': + switch(s[10]) { + default: + break; + case 'i': + switch(s[11]) { + default: + break; + case 'd': + switch(s[12]) { + default: + break; + case '-': + if (strcmp("params", s + 13) == 0) + return PIDX_ALG_PARAM_ALGORITHM_ID_PARAMS; + break; + case '\0': + return PIDX_ALG_PARAM_ALGORITHM_ID; + } + } + } + } + } + } + } + } + } + } + break; + case 'i': + if (strcmp("as", s + 3) == 0) + return PIDX_STORE_PARAM_ALIAS; + } + break; + case '\0': + return PIDX_PKEY_PARAM_EC_A; + } + break; + case 'b': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("sis-type", s + 2) == 0) + return PIDX_PKEY_PARAM_EC_CHAR2_TYPE; + break; + case 'i': + if (strcmp("ts", s + 2) == 0) + return PIDX_PKEY_PARAM_BITS; + break; + case 'l': + switch(s[2]) { + default: + break; + case 'o': + switch(s[3]) { + default: + break; + case 'c': + switch(s[4]) { + default: + break; + case 'k': + switch(s[5]) { + default: + break; + case '-': + if (strcmp("size", s + 6) == 0) + return PIDX_MAC_PARAM_BLOCK_SIZE; + break; + case '_': + if (strcmp("padding", s + 6) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_BLOCK_PADDING; + break; + case 's': + if (strcmp("ize", s + 6) == 0) + return PIDX_DIGEST_PARAM_BLOCK_SIZE; + } + } + } + } + break; + case 'u': + if (strcmp("ildinfo", s + 2) == 0) + return PIDX_PROV_PARAM_BUILDINFO; + break; + case '\0': + return PIDX_PKEY_PARAM_EC_B; + } + break; + case 'c': + switch(s[1]) { + default: + break; + case '-': + if (strcmp("rounds", s + 2) == 0) + return PIDX_MAC_PARAM_C_ROUNDS; + break; + case 'e': + if (strcmp("kalg", s + 2) == 0) + return PIDX_KDF_PARAM_CEK_ALG; + break; + case 'i': + if (strcmp("pher", s + 2) == 0) + return PIDX_ALG_PARAM_CIPHER; + break; + case 'o': + switch(s[2]) { + default: + break; + case 'f': + if (strcmp("actor", s + 3) == 0) + return PIDX_PKEY_PARAM_EC_COFACTOR; + break; + case 'n': + switch(s[3]) { + default: + break; + case 's': + if (strcmp("tant", s + 4) == 0) + return PIDX_KDF_PARAM_CONSTANT; + break; + case 't': + if (strcmp("ext-string", s + 4) == 0) + return PIDX_SIGNATURE_PARAM_CONTEXT_STRING; + } + } + break; + case 't': + switch(s[2]) { + default: + break; + case 's': + switch(s[3]) { + default: + break; + case '_': + if (strcmp("mode", s + 4) == 0) + return PIDX_CIPHER_PARAM_CTS_MODE; + break; + case '\0': + return PIDX_CIPHER_PARAM_CTS; + } + } + break; + case 'u': + switch(s[2]) { + default: + break; + case 's': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case 'o': + switch(s[5]) { + default: + break; + case 'm': + switch(s[6]) { + default: + break; + case '-': + if (strcmp("iv", s + 7) == 0) + return PIDX_CIPHER_PARAM_CUSTOM_IV; + break; + case '\0': + return PIDX_MAC_PARAM_CUSTOM; + } + } + } + } + } + } + break; + case 'd': + switch(s[1]) { + default: + break; + case '-': + if (strcmp("rounds", s + 2) == 0) + return PIDX_MAC_PARAM_D_ROUNDS; + break; + case 'a': + switch(s[2]) { + default: + break; + case 't': + switch(s[3]) { + default: + break; + case 'a': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 's': + if (strcmp("tructure", s + 6) == 0) + return PIDX_OBJECT_PARAM_DATA_STRUCTURE; + break; + case 't': + if (strcmp("ype", s + 6) == 0) + return PIDX_OBJECT_PARAM_DATA_TYPE; + } + break; + case '\0': + return PIDX_OBJECT_PARAM_DATA; + } + } + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'c': + switch(s[3]) { + default: + break; + case 'o': + if (strcmp("ded-from-explicit", s + 4) == 0) + return PIDX_PKEY_PARAM_EC_DECODED_FROM_EXPLICIT_PARAMS; + break; + case 'r': + if (strcmp("ypt-only", s + 4) == 0) + return PIDX_CIPHER_PARAM_DECRYPT_ONLY; + } + break; + case 'f': + if (strcmp("ault-digest", s + 3) == 0) + return PIDX_PKEY_PARAM_DEFAULT_DIGEST; + break; + case 's': + if (strcmp("c", s + 3) == 0) + return PIDX_OBJECT_PARAM_DESC; + break; + case 't': + if (strcmp("erministic", s + 3) == 0) + return PIDX_SIGNATURE_PARAM_DETERMINISTIC; + } + break; + case 'h': + if (strcmp("kem-ikm", s + 2) == 0) + return PIDX_PKEY_PARAM_DHKEM_IKM; + break; + case 'i': + switch(s[2]) { + default: + break; + case 'g': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case 's': + switch(s[5]) { + default: + break; + case 't': + switch(s[6]) { + default: + break; + case '-': + switch(s[7]) { + default: + break; + case 'c': + if (strcmp("heck", s + 8) == 0) + return PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK; + break; + case 'n': + if (strcmp("oinit", s + 8) == 0) + return PIDX_MAC_PARAM_DIGEST_NOINIT; + break; + case 'o': + if (strcmp("neshot", s + 8) == 0) + return PIDX_MAC_PARAM_DIGEST_ONESHOT; + break; + case 'p': + if (strcmp("rops", s + 8) == 0) + return PIDX_ASYM_CIPHER_PARAM_OAEP_DIGEST_PROPS; + break; + case 's': + if (strcmp("ize", s + 8) == 0) + return PIDX_PKEY_PARAM_DIGEST_SIZE; + } + break; + case '\0': + return PIDX_STORE_PARAM_DIGEST; + } + } + } + } + break; + case 's': + if (strcmp("tid", s + 3) == 0) + return PIDX_PKEY_PARAM_DIST_ID; + } + break; + case 'r': + if (strcmp("bg-no-trunc-md", s + 2) == 0) + return PIDX_PROV_PARAM_DRBG_TRUNC_DIGEST; + break; + case 's': + if (strcmp("a-sign-disabled", s + 2) == 0) + return PIDX_PROV_PARAM_DSA_SIGN_DISABLED; + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_D; + } + break; + case 'e': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("rly_clean", s + 2) == 0) + return PIDX_KDF_PARAM_EARLY_CLEAN; + break; + case 'c': + switch(s[2]) { + default: + break; + case 'd': + switch(s[3]) { + default: + break; + case 'h': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'c': + switch(s[6]) { + default: + break; + case 'o': + switch(s[7]) { + default: + break; + case 'f': + switch(s[8]) { + default: + break; + case 'a': + switch(s[9]) { + default: + break; + case 'c': + switch(s[10]) { + default: + break; + case 't': + switch(s[11]) { + default: + break; + case 'o': + switch(s[12]) { + default: + break; + case 'r': + switch(s[13]) { + default: + break; + case '-': + switch(s[14]) { + default: + break; + case 'c': + if (strcmp("heck", s + 15) == 0) + return PIDX_PROV_PARAM_ECDH_COFACTOR_CHECK; + break; + case 'm': + if (strcmp("ode", s + 15) == 0) + return PIDX_EXCHANGE_PARAM_EC_ECDH_COFACTOR_MODE; + } + } + } + } + } + } + } + } + } + } + } + } + } + break; + case 'm': + if (strcmp("s_check", s + 2) == 0) + return PIDX_KDF_PARAM_FIPS_EMS_CHECK; + break; + case 'n': + switch(s[2]) { + default: + break; + case 'c': + switch(s[3]) { + default: + break; + case 'o': + switch(s[4]) { + default: + break; + case 'd': + switch(s[5]) { + default: + break; + case 'e': + if (strcmp("d-pub-key", s + 6) == 0) + return PIDX_PKEY_PARAM_ENCODED_PUBLIC_KEY; + break; + case 'i': + if (strcmp("ng", s + 6) == 0) + return PIDX_PKEY_PARAM_EC_ENCODING; + } + } + break; + case 'r': + switch(s[4]) { + default: + break; + case 'y': + switch(s[5]) { + default: + break; + case 'p': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case '-': + switch(s[8]) { + default: + break; + case 'c': + if (strcmp("heck", s + 9) == 0) + return PIDX_CIPHER_PARAM_FIPS_ENCRYPT_CHECK; + break; + case 'l': + if (strcmp("evel", s + 9) == 0) + return PIDX_ENCODER_PARAM_ENCRYPT_LEVEL; + } + } + } + } + } + } + break; + case 'g': + if (strcmp("ine", s + 3) == 0) + return PIDX_ALG_PARAM_ENGINE; + break; + case 't': + switch(s[3]) { + default: + break; + case 'r': + switch(s[4]) { + default: + break; + case 'o': + switch(s[5]) { + default: + break; + case 'p': + switch(s[6]) { + default: + break; + case 'y': + switch(s[7]) { + default: + break; + case '_': + if (strcmp("required", s + 8) == 0) + return PIDX_DRBG_PARAM_ENTROPY_REQUIRED; + break; + case '\0': + return PIDX_KDF_PARAM_HMACDRBG_ENTROPY; + } + } + } + } + } + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_E; + break; + case 'x': + if (strcmp("pect", s + 2) == 0) + return PIDX_STORE_PARAM_EXPECT; + } + break; + case 'f': + switch(s[1]) { + default: + break; + case 'i': + switch(s[2]) { + default: + break; + case 'e': + if (strcmp("ld-type", s + 3) == 0) + return PIDX_PKEY_PARAM_EC_FIELD_TYPE; + break; + case 'n': + if (strcmp("gerprint", s + 3) == 0) + return PIDX_STORE_PARAM_FINGERPRINT; + break; + case 'p': + if (strcmp("s-indicator", s + 3) == 0) + return PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR; + } + } + break; + case 'g': + switch(s[1]) { + default: + break; + case 'e': + switch(s[2]) { + default: + break; + case 'n': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case 'r': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case 'e': + switch(s[8]) { + default: + break; + case '\0': + return PIDX_RAND_PARAM_GENERATE; + } + break; + case 'o': + if (strcmp("r", s + 8) == 0) + return PIDX_PKEY_PARAM_EC_GENERATOR; + } + } + } + } + } + } + break; + case 'i': + if (strcmp("ndex", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_GINDEX; + break; + case 'r': + switch(s[2]) { + default: + break; + case 'o': + switch(s[3]) { + default: + break; + case 'u': + switch(s[4]) { + default: + break; + case 'p': + switch(s[5]) { + default: + break; + case '-': + if (strcmp("check", s + 6) == 0) + return PIDX_PKEY_PARAM_EC_GROUP_CHECK_TYPE; + break; + case '\0': + return PIDX_PKEY_PARAM_GROUP_NAME; + } + } + } + } + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_G; + } + break; + case 'h': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("s-randkey", s + 2) == 0) + return PIDX_CIPHER_PARAM_HAS_RAND_KEY; + break; + case 'i': + if (strcmp("ndex", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_H; + break; + case 'k': + switch(s[2]) { + default: + break; + case 'd': + switch(s[3]) { + default: + break; + case 'f': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 6) == 0) + return PIDX_PROV_PARAM_HKDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 6) == 0) + return PIDX_PROV_PARAM_HKDF_KEY_CHECK; + } + } + } + } + break; + case 'm': + if (strcmp("ac-key-check", s + 2) == 0) + return PIDX_PROV_PARAM_HMAC_KEY_CHECK; + break; + case 's': + if (strcmp("_padding", s + 2) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_HS_PADDING; + } + break; + case 'i': + switch(s[1]) { + default: + break; + case 'd': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_KDF_PARAM_PKCS12_ID; + } + break; + case 'k': + if (strcmp("me", s + 2) == 0) + return PIDX_KEM_PARAM_IKME; + break; + case 'm': + if (strcmp("plicit-rejection", s + 2) == 0) + return PIDX_PKEY_PARAM_IMPLICIT_REJECTION; + break; + case 'n': + switch(s[2]) { + default: + break; + case 'c': + if (strcmp("lude-public", s + 3) == 0) + return PIDX_PKEY_PARAM_EC_INCLUDE_PUBLIC; + break; + case 'f': + if (strcmp("o", s + 3) == 0) + return PIDX_PASSPHRASE_PARAM_INFO; + break; + case 'p': + if (strcmp("ut-type", s + 3) == 0) + return PIDX_STORE_PARAM_INPUT_TYPE; + break; + case 's': + if (strcmp("tance", s + 3) == 0) + return PIDX_SIGNATURE_PARAM_INSTANCE; + } + break; + case 't': + switch(s[2]) { + default: + break; + case 'e': + switch(s[3]) { + default: + break; + case 'r': + switch(s[4]) { + default: + break; + case 'a': + if (strcmp("tion", s + 5) == 0) + return PIDX_GEN_PARAM_ITERATION; + break; + case '\0': + return PIDX_KDF_PARAM_ITER; + } + } + } + break; + case 'v': + switch(s[2]) { + default: + break; + case '-': + if (strcmp("generated", s + 3) == 0) + return PIDX_CIPHER_PARAM_AEAD_IV_GENERATED; + break; + case 'l': + if (strcmp("en", s + 3) == 0) + return PIDX_CIPHER_PARAM_IVLEN; + break; + case '\0': + return PIDX_MAC_PARAM_IV; + } + } + break; + case 'j': + switch(s[1]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_COFACTOR; + } + break; + case 'k': + switch(s[1]) { + default: + break; + case '1': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_PP_K1; + } + break; + case '2': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_PP_K2; + } + break; + case '3': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_PP_K3; + } + break; + case 'a': + if (strcmp("t", s + 2) == 0) + return PIDX_SIGNATURE_PARAM_KAT; + break; + case 'b': + if (strcmp("kdf-key-check", s + 2) == 0) + return PIDX_PROV_PARAM_KBKDF_KEY_CHECK; + break; + case 'd': + switch(s[2]) { + default: + break; + case 'f': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'd': + switch(s[5]) { + default: + break; + case 'i': + switch(s[6]) { + default: + break; + case 'g': + switch(s[7]) { + default: + break; + case 'e': + switch(s[8]) { + default: + break; + case 's': + switch(s[9]) { + default: + break; + case 't': + switch(s[10]) { + default: + break; + case '-': + if (strcmp("props", s + 11) == 0) + return PIDX_EXCHANGE_PARAM_KDF_DIGEST_PROPS; + break; + case '\0': + return PIDX_EXCHANGE_PARAM_KDF_DIGEST; + } + } + } + } + } + } + break; + case 'o': + if (strcmp("utlen", s + 5) == 0) + return PIDX_EXCHANGE_PARAM_KDF_OUTLEN; + break; + case 't': + if (strcmp("ype", s + 5) == 0) + return PIDX_EXCHANGE_PARAM_KDF_TYPE; + break; + case 'u': + if (strcmp("km", s + 5) == 0) + return PIDX_EXCHANGE_PARAM_KDF_UKM; + } + } + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'y': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'c': + if (strcmp("heck", s + 5) == 0) + return PIDX_PKEY_PARAM_FIPS_KEY_CHECK; + break; + case 'l': + if (strcmp("ength", s + 5) == 0) + return PIDX_SKEY_PARAM_KEY_LENGTH; + } + break; + case 'b': + if (strcmp("its", s + 4) == 0) + return PIDX_CIPHER_PARAM_RC2_KEYBITS; + break; + case 'l': + if (strcmp("en", s + 4) == 0) + return PIDX_CIPHER_PARAM_KEYLEN; + break; + case '\0': + return PIDX_MAC_PARAM_KEY; + } + } + break; + case 'm': + if (strcmp("ac-key-check", s + 2) == 0) + return PIDX_PROV_PARAM_KMAC_KEY_CHECK; + } + break; + case 'l': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'b': + if (strcmp("el", s + 3) == 0) + return PIDX_KDF_PARAM_LABEL; + break; + case 'n': + if (strcmp("es", s + 3) == 0) + return PIDX_KDF_PARAM_ARGON2_LANES; + } + } + break; + case 'm': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'c': + switch(s[3]) { + default: + break; + case 'k': + if (strcmp("ey", s + 4) == 0) + return PIDX_CIPHER_PARAM_AEAD_MAC_KEY; + break; + case 'l': + if (strcmp("en", s + 4) == 0) + return PIDX_KDF_PARAM_MAC_SIZE; + break; + case '\0': + return PIDX_ALG_PARAM_MAC; + } + break; + case 'n': + if (strcmp("datory-digest", s + 3) == 0) + return PIDX_PKEY_PARAM_MANDATORY_DIGEST; + break; + case 'x': + switch(s[3]) { + default: + break; + case '-': + if (strcmp("size", s + 4) == 0) + return PIDX_PKEY_PARAM_MAX_SIZE; + break; + case '_': + switch(s[4]) { + default: + break; + case 'a': + if (strcmp("dinlen", s + 5) == 0) + return PIDX_DRBG_PARAM_MAX_ADINLEN; + break; + case 'e': + switch(s[5]) { + default: + break; + case 'a': + if (strcmp("rly_data", s + 6) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_MAX_EARLY_DATA; + break; + case 'n': + if (strcmp("tropylen", s + 6) == 0) + return PIDX_DRBG_PARAM_MAX_ENTROPYLEN; + } + break; + case 'f': + if (strcmp("rag_len", s + 5) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_MAX_FRAG_LEN; + break; + case 'n': + if (strcmp("oncelen", s + 5) == 0) + return PIDX_DRBG_PARAM_MAX_NONCELEN; + break; + case 'p': + if (strcmp("erslen", s + 5) == 0) + return PIDX_DRBG_PARAM_MAX_PERSLEN; + break; + case 'r': + if (strcmp("equest", s + 5) == 0) + return PIDX_RAND_PARAM_MAX_REQUEST; + } + break; + case 'i': + if (strcmp("um_length", s + 4) == 0) + return PIDX_DRBG_PARAM_MAX_LENGTH; + break; + case 'm': + if (strcmp("em_bytes", s + 4) == 0) + return PIDX_KDF_PARAM_SCRYPT_MAXMEM; + } + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'm': + if (strcmp("cost", s + 3) == 0) + return PIDX_KDF_PARAM_ARGON2_MEMCOST; + break; + case 's': + if (strcmp("sage-encoding", s + 3) == 0) + return PIDX_SIGNATURE_PARAM_MESSAGE_ENCODING; + } + break; + case 'g': + switch(s[2]) { + default: + break; + case 'f': + switch(s[3]) { + default: + break; + case '1': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'd': + if (strcmp("igest", s + 6) == 0) + return PIDX_PKEY_PARAM_MGF1_DIGEST; + break; + case 'p': + if (strcmp("roperties", s + 6) == 0) + return PIDX_PKEY_PARAM_MGF1_PROPERTIES; + } + } + break; + case '\0': + return PIDX_PKEY_PARAM_MASKGENFUNC; + } + } + break; + case 'i': + switch(s[2]) { + default: + break; + case 'c': + if (strcmp("alg", s + 3) == 0) + return PIDX_DIGEST_PARAM_MICALG; + break; + case 'n': + switch(s[3]) { + default: + break; + case '_': + switch(s[4]) { + default: + break; + case 'e': + if (strcmp("ntropylen", s + 5) == 0) + return PIDX_DRBG_PARAM_MIN_ENTROPYLEN; + break; + case 'n': + if (strcmp("oncelen", s + 5) == 0) + return PIDX_DRBG_PARAM_MIN_NONCELEN; + } + break; + case 'i': + if (strcmp("um_length", s + 4) == 0) + return PIDX_DRBG_PARAM_MIN_LENGTH; + } + } + break; + case 'l': + switch(s[2]) { + default: + break; + case '-': + switch(s[3]) { + default: + break; + case 'd': + switch(s[4]) { + default: + break; + case 's': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case '.': + switch(s[7]) { + default: + break; + case 'i': + if (strcmp("nput_formats", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_DSA_INPUT_FORMATS; + break; + case 'o': + if (strcmp("utput_formats", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_DSA_OUTPUT_FORMATS; + break; + case 'p': + if (strcmp("refer_seed", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_DSA_PREFER_SEED; + break; + case 'r': + if (strcmp("etain_seed", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_DSA_RETAIN_SEED; + } + } + } + } + break; + case 'k': + switch(s[4]) { + default: + break; + case 'e': + switch(s[5]) { + default: + break; + case 'm': + switch(s[6]) { + default: + break; + case '.': + switch(s[7]) { + default: + break; + case 'i': + switch(s[8]) { + default: + break; + case 'm': + if (strcmp("port_pct_type", s + 9) == 0) + return PIDX_PKEY_PARAM_ML_KEM_IMPORT_PCT_TYPE; + break; + case 'n': + if (strcmp("put_formats", s + 9) == 0) + return PIDX_PKEY_PARAM_ML_KEM_INPUT_FORMATS; + } + break; + case 'o': + if (strcmp("utput_formats", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_KEM_OUTPUT_FORMATS; + break; + case 'p': + if (strcmp("refer_seed", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_KEM_PREFER_SEED; + break; + case 'r': + if (strcmp("etain_seed", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_KEM_RETAIN_SEED; + } + } + } + } + } + } + break; + case 'o': + switch(s[2]) { + default: + break; + case 'd': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case '\0': + return PIDX_LIBSSL_RECORD_LAYER_PARAM_MODE; + } + break; + case 'u': + if (strcmp("le-filename", s + 4) == 0) + return PIDX_PROV_PARAM_CORE_MODULE_FILENAME; + } + } + break; + case 'u': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_SIGNATURE_PARAM_MU; + } + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_M; + } + break; + case 'n': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("me", s + 2) == 0) + return PIDX_STORE_PARAM_ISSUER; + break; + case 'o': + switch(s[2]) { + default: + break; + case '-': + if (strcmp("short-mac", s + 3) == 0) + return PIDX_PROV_PARAM_NO_SHORT_MAC; + break; + case 'n': + switch(s[3]) { + default: + break; + case 'c': + switch(s[4]) { + default: + break; + case 'e': + switch(s[5]) { + default: + break; + case '-': + if (strcmp("type", s + 6) == 0) + return PIDX_SIGNATURE_PARAM_NONCE_TYPE; + break; + case '\0': + return PIDX_KDF_PARAM_HMACDRBG_NONCE; + } + } + } + } + break; + case 'u': + if (strcmp("m", s + 2) == 0) + return PIDX_CIPHER_PARAM_NUM; + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_N; + } + break; + case 'o': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("ep-label", s + 2) == 0) + return PIDX_ASYM_CIPHER_PARAM_OAEP_LABEL; + break; + case 'p': + switch(s[2]) { + default: + break; + case 'e': + switch(s[3]) { + default: + break; + case 'n': + if (strcmp("ssl-version", s + 4) == 0) + return PIDX_PROV_PARAM_CORE_VERSION; + break; + case 'r': + if (strcmp("ation", s + 4) == 0) + return PIDX_KEM_PARAM_OPERATION; + } + break; + case 't': + if (strcmp("ions", s + 3) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_OPTIONS; + } + break; + case 'r': + if (strcmp("der", s + 2) == 0) + return PIDX_PKEY_PARAM_EC_ORDER; + } + break; + case 'p': + switch(s[1]) { + default: + break; + case '1': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_P1; + } + break; + case '2': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_P2; + } + break; + case 'a': + switch(s[2]) { + default: + break; + case 'd': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'm': + if (strcmp("ode", s + 5) == 0) + return PIDX_PKEY_PARAM_PAD_MODE; + break; + case 't': + if (strcmp("ype", s + 5) == 0) + return PIDX_DIGEST_PARAM_PAD_TYPE; + } + break; + case 'd': + if (strcmp("ing", s + 4) == 0) + return PIDX_CIPHER_PARAM_PADDING; + break; + case '\0': + return PIDX_EXCHANGE_PARAM_PAD; + } + break; + case 'r': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case 'y': + switch(s[5]) { + default: + break; + case 'u': + if (strcmp("-info", s + 6) == 0) + return PIDX_KDF_PARAM_X942_PARTYUINFO; + break; + case 'v': + if (strcmp("-info", s + 6) == 0) + return PIDX_KDF_PARAM_X942_PARTYVINFO; + } + } + } + break; + case 's': + if (strcmp("s", s + 3) == 0) + return PIDX_KDF_PARAM_PASSWORD; + } + break; + case 'b': + switch(s[2]) { + default: + break; + case 'i': + if (strcmp("ts", s + 3) == 0) + return PIDX_PKEY_PARAM_FFC_PBITS; + break; + case 'k': + if (strcmp("df2-lower-bound-check", s + 3) == 0) + return PIDX_PROV_PARAM_PBKDF2_LOWER_BOUND_CHECK; + } + break; + case 'c': + if (strcmp("ounter", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_PCOUNTER; + break; + case 'i': + if (strcmp("peline-tag", s + 2) == 0) + return PIDX_CIPHER_PARAM_PIPELINE_AEAD_TAG; + break; + case 'k': + if (strcmp("cs5", s + 2) == 0) + return PIDX_KDF_PARAM_PKCS5; + break; + case 'o': + switch(s[2]) { + default: + break; + case 'i': + if (strcmp("nt-format", s + 3) == 0) + return PIDX_PKEY_PARAM_EC_POINT_CONVERSION_FORMAT; + break; + case 't': + if (strcmp("ential", s + 3) == 0) + return PIDX_GEN_PARAM_POTENTIAL; + } + break; + case 'r': + switch(s[2]) { + default: + break; + case 'e': + switch(s[3]) { + default: + break; + case 'd': + if (strcmp("iction_resistance", s + 4) == 0) + return PIDX_DRBG_PARAM_PREDICTION_RESISTANCE; + break; + case 'f': + if (strcmp("ix", s + 4) == 0) + return PIDX_KDF_PARAM_PREFIX; + } + break; + case 'i': + switch(s[3]) { + default: + break; + case 'm': + if (strcmp("es", s + 4) == 0) + return PIDX_PKEY_PARAM_RSA_PRIMES; + break; + case 'v': + switch(s[4]) { + default: + break; + case '_': + if (strcmp("len", s + 5) == 0) + return PIDX_PKEY_PARAM_DH_PRIV_LEN; + break; + case '\0': + return PIDX_PKEY_PARAM_PRIV_KEY; + } + } + break; + case 'o': + switch(s[3]) { + default: + break; + case 'p': + if (strcmp("erties", s + 4) == 0) + return PIDX_STORE_PARAM_PROPERTIES; + break; + case 'v': + if (strcmp("ider-name", s + 4) == 0) + return PIDX_PROV_PARAM_CORE_PROV_NAME; + } + } + break; + case 'u': + if (strcmp("b", s + 2) == 0) + return PIDX_PKEY_PARAM_PUB_KEY; + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_P; + } + break; + case 'q': + switch(s[1]) { + default: + break; + case '1': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_Q1; + } + break; + case '2': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_Q2; + } + break; + case 'b': + if (strcmp("its", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_QBITS; + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_Q; + break; + case 'x': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_PUB_X; + } + break; + case 'y': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_PUB_Y; + } + } + break; + case 'r': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'n': + switch(s[3]) { + default: + break; + case 'd': + switch(s[4]) { + default: + break; + case 'k': + if (strcmp("ey", s + 5) == 0) + return PIDX_CIPHER_PARAM_RANDOM_KEY; + break; + case 'o': + if (strcmp("m_data", s + 5) == 0) + return PIDX_DRBG_PARAM_RANDOM_DATA; + } + } + break; + case 'w': + if (strcmp("-bytes", s + 3) == 0) + return PIDX_SKEY_PARAM_RAW_BYTES; + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'a': + switch(s[3]) { + default: + break; + case 'd': + switch(s[4]) { + default: + break; + case '_': + switch(s[5]) { + default: + break; + case 'a': + if (strcmp("head", s + 6) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_READ_AHEAD; + break; + case 'b': + if (strcmp("uffer_len", s + 6) == 0) + return PIDX_LIBSSL_RECORD_LAYER_READ_BUFFER_LEN; + } + } + } + break; + case 'f': + if (strcmp("erence", s + 3) == 0) + return PIDX_OBJECT_PARAM_REFERENCE; + break; + case 's': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case 'e': + switch(s[5]) { + default: + break; + case 'd': + switch(s[6]) { + default: + break; + case '_': + switch(s[7]) { + default: + break; + case 'c': + if (strcmp("ounter", s + 8) == 0) + return PIDX_DRBG_PARAM_RESEED_COUNTER; + break; + case 'r': + if (strcmp("equests", s + 8) == 0) + return PIDX_DRBG_PARAM_RESEED_REQUESTS; + break; + case 't': + switch(s[8]) { + default: + break; + case 'i': + switch(s[9]) { + default: + break; + case 'm': + switch(s[10]) { + default: + break; + case 'e': + switch(s[11]) { + default: + break; + case '_': + if (strcmp("interval", s + 12) == 0) + return PIDX_DRBG_PARAM_RESEED_TIME_INTERVAL; + break; + case '\0': + return PIDX_DRBG_PARAM_RESEED_TIME; + } + } + } + } + } + } + } + } + } + } + break; + case 'o': + if (strcmp("unds", s + 2) == 0) + return PIDX_CIPHER_PARAM_ROUNDS; + break; + case 's': + switch(s[2]) { + default: + break; + case 'a': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'c': + switch(s[5]) { + default: + break; + case 'o': + switch(s[6]) { + default: + break; + case 'e': + switch(s[7]) { + default: + break; + case 'f': + switch(s[8]) { + default: + break; + case 'f': + switch(s[9]) { + default: + break; + case 'i': + switch(s[10]) { + default: + break; + case 'c': + switch(s[11]) { + default: + break; + case 'i': + switch(s[12]) { + default: + break; + case 'e': + switch(s[13]) { + default: + break; + case 'n': + switch(s[14]) { + default: + break; + case 't': + switch(s[15]) { + default: + break; + case '1': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT1; + } + break; + case '2': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT2; + } + break; + case '3': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT3; + } + break; + case '4': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT4; + } + break; + case '5': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT5; + } + break; + case '6': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT6; + } + break; + case '7': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT7; + } + break; + case '8': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT8; + } + break; + case '9': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT9; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT; + } + } + } + } + } + } + } + } + } + } + } + break; + case 'd': + if (strcmp("erive-from-pq", s + 5) == 0) + return PIDX_PKEY_PARAM_RSA_DERIVE_FROM_PQ; + break; + case 'e': + switch(s[5]) { + default: + break; + case 'x': + switch(s[6]) { + default: + break; + case 'p': + switch(s[7]) { + default: + break; + case 'o': + switch(s[8]) { + default: + break; + case 'n': + switch(s[9]) { + default: + break; + case 'e': + switch(s[10]) { + default: + break; + case 'n': + switch(s[11]) { + default: + break; + case 't': + switch(s[12]) { + default: + break; + case '1': + switch(s[13]) { + default: + break; + case '0': + switch(s[14]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT10; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT1; + } + break; + case '2': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT2; + } + break; + case '3': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT3; + } + break; + case '4': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT4; + } + break; + case '5': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT5; + } + break; + case '6': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT6; + } + break; + case '7': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT7; + } + break; + case '8': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT8; + } + break; + case '9': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT9; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT; + } + } + } + } + } + } + } + } + break; + case 'f': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case 'c': + switch(s[7]) { + default: + break; + case 't': + switch(s[8]) { + default: + break; + case 'o': + switch(s[9]) { + default: + break; + case 'r': + switch(s[10]) { + default: + break; + case '1': + switch(s[11]) { + default: + break; + case '0': + switch(s[12]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR10; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR1; + } + break; + case '2': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR2; + } + break; + case '3': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR3; + } + break; + case '4': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR4; + } + break; + case '5': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR5; + } + break; + case '6': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR6; + } + break; + case '7': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR7; + } + break; + case '8': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR8; + } + break; + case '9': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR9; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR; + } + } + } + } + } + } + break; + case 'p': + switch(s[5]) { + default: + break; + case 'k': + if (strcmp("cs15-pad-disabled", s + 6) == 0) + return PIDX_PROV_PARAM_RSA_PKCS15_PAD_DISABLED; + break; + case 's': + if (strcmp("s-saltlen-check", s + 6) == 0) + return PIDX_SIGNATURE_PARAM_FIPS_RSA_PSS_SALTLEN_CHECK; + } + break; + case 's': + if (strcmp("ign-x931-pad-disabled", s + 5) == 0) + return PIDX_PROV_PARAM_RSA_SIGN_X931_PAD_DISABLED; + } + } + } + break; + case '\0': + return PIDX_KDF_PARAM_SCRYPT_R; + } + break; + case 's': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'f': + if (strcmp("eprime-generator", s + 3) == 0) + return PIDX_PKEY_PARAM_DH_GENERATOR; + break; + case 'l': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case 'l': + if (strcmp("en", s + 5) == 0) + return PIDX_SIGNATURE_PARAM_PSS_SALTLEN; + break; + case '\0': + return PIDX_MAC_PARAM_SALT; + } + } + break; + case 'v': + if (strcmp("e-parameters", s + 3) == 0) + return PIDX_ENCODER_PARAM_SAVE_PARAMETERS; + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'c': + switch(s[3]) { + default: + break; + case 'r': + if (strcmp("et", s + 4) == 0) + return PIDX_KDF_PARAM_SECRET; + break; + case 'u': + switch(s[4]) { + default: + break; + case 'r': + switch(s[5]) { + default: + break; + case 'i': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case 'y': + switch(s[8]) { + default: + break; + case '-': + switch(s[9]) { + default: + break; + case 'b': + if (strcmp("its", s + 10) == 0) + return PIDX_PKEY_PARAM_SECURITY_BITS; + break; + case 'c': + if (strcmp("hecks", s + 10) == 0) + return PIDX_PROV_PARAM_SECURITY_CHECKS; + } + } + } + } + } + } + } + break; + case 'e': + if (strcmp("d", s + 3) == 0) + return PIDX_PKEY_PARAM_SLH_DSA_SEED; + break; + case 'r': + if (strcmp("ial", s + 3) == 0) + return PIDX_STORE_PARAM_SERIAL; + break; + case 's': + if (strcmp("sion_id", s + 3) == 0) + return PIDX_KDF_PARAM_SSHKDF_SESSION_ID; + } + break; + case 'i': + switch(s[2]) { + default: + break; + case 'g': + switch(s[3]) { + default: + break; + case 'n': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'c': + if (strcmp("heck", s + 6) == 0) + return PIDX_PKEY_PARAM_FIPS_SIGN_CHECK; + break; + case 'x': + if (strcmp("931-pad-check", s + 6) == 0) + return PIDX_SIGNATURE_PARAM_FIPS_SIGN_X931_PAD_CHECK; + } + break; + case 'a': + switch(s[5]) { + default: + break; + case 't': + switch(s[6]) { + default: + break; + case 'u': + switch(s[7]) { + default: + break; + case 'r': + switch(s[8]) { + default: + break; + case 'e': + switch(s[9]) { + default: + break; + case '-': + if (strcmp("digest-check", s + 10) == 0) + return PIDX_PROV_PARAM_SIGNATURE_DIGEST_CHECK; + break; + case '\0': + return PIDX_SIGNATURE_PARAM_SIGNATURE; + } + } + } + } + } + } + } + break; + case 'z': + if (strcmp("e", s + 3) == 0) + return PIDX_MAC_PARAM_SIZE; + } + break; + case 'p': + if (strcmp("eed", s + 2) == 0) + return PIDX_CIPHER_PARAM_SPEED; + break; + case 's': + switch(s[2]) { + default: + break; + case 'h': + switch(s[3]) { + default: + break; + case 'k': + switch(s[4]) { + default: + break; + case 'd': + switch(s[5]) { + default: + break; + case 'f': + switch(s[6]) { + default: + break; + case '-': + switch(s[7]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 8) == 0) + return PIDX_PROV_PARAM_SSHKDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 8) == 0) + return PIDX_PROV_PARAM_SSHKDF_KEY_CHECK; + } + } + } + } + } + break; + case 'k': + switch(s[3]) { + default: + break; + case 'd': + switch(s[4]) { + default: + break; + case 'f': + switch(s[5]) { + default: + break; + case '-': + switch(s[6]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 7) == 0) + return PIDX_PROV_PARAM_SSKDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 7) == 0) + return PIDX_PROV_PARAM_SSKDF_KEY_CHECK; + } + } + } + } + break; + case 'l': + if (strcmp("3-ms", s + 3) == 0) + return PIDX_DIGEST_PARAM_SSL3_MS; + } + break; + case 't': + switch(s[2]) { + default: + break; + case '-': + switch(s[3]) { + default: + break; + case 'd': + if (strcmp("esc", s + 4) == 0) + return PIDX_PROV_PARAM_SELF_TEST_DESC; + break; + case 'p': + if (strcmp("hase", s + 4) == 0) + return PIDX_PROV_PARAM_SELF_TEST_PHASE; + break; + case 't': + if (strcmp("ype", s + 4) == 0) + return PIDX_PROV_PARAM_SELF_TEST_TYPE; + } + break; + case 'a': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case 'e': + switch(s[5]) { + default: + break; + case '\0': + return PIDX_RAND_PARAM_STATE; + } + break; + case 'u': + if (strcmp("s", s + 5) == 0) + return PIDX_PROV_PARAM_STATUS; + } + } + break; + case 'r': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case 'a': + if (strcmp("m_mac", s + 5) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_STREAM_MAC; + break; + case 'n': + if (strcmp("gth", s + 5) == 0) + return PIDX_RAND_PARAM_STRENGTH; + } + } + } + break; + case 'u': + switch(s[2]) { + default: + break; + case 'b': + if (strcmp("ject", s + 3) == 0) + return PIDX_STORE_PARAM_SUBJECT; + break; + case 'p': + switch(s[3]) { + default: + break; + case 'p': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'p': + switch(s[6]) { + default: + break; + case 'r': + if (strcmp("ivinfo", s + 7) == 0) + return PIDX_KDF_PARAM_X942_SUPP_PRIVINFO; + break; + case 'u': + if (strcmp("binfo", s + 7) == 0) + return PIDX_KDF_PARAM_X942_SUPP_PUBINFO; + } + } + } + } + } + } + break; + case 't': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'g': + switch(s[3]) { + default: + break; + case 'l': + if (strcmp("en", s + 4) == 0) + return PIDX_CIPHER_PARAM_AEAD_TAGLEN; + break; + case '\0': + return PIDX_CIPHER_PARAM_AEAD_TAG; + } + } + break; + case 'd': + if (strcmp("es-encrypt-disabled", s + 2) == 0) + return PIDX_PROV_PARAM_TDES_ENCRYPT_DISABLED; + break; + case 'e': + switch(s[2]) { + default: + break; + case 's': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case '-': + if (strcmp("entropy", s + 5) == 0) + return PIDX_SIGNATURE_PARAM_TEST_ENTROPY; + break; + case '_': + switch(s[5]) { + default: + break; + case 'e': + if (strcmp("ntropy", s + 6) == 0) + return PIDX_RAND_PARAM_TEST_ENTROPY; + break; + case 'n': + if (strcmp("once", s + 6) == 0) + return PIDX_RAND_PARAM_TEST_NONCE; + } + } + } + } + break; + case 'h': + if (strcmp("reads", s + 2) == 0) + return PIDX_KDF_PARAM_THREADS; + break; + case 'l': + switch(s[2]) { + default: + break; + case 's': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'c': + if (strcmp("lient-version", s + 5) == 0) + return PIDX_ASYM_CIPHER_PARAM_TLS_CLIENT_VERSION; + break; + case 'd': + if (strcmp("ata-size", s + 5) == 0) + return PIDX_MAC_PARAM_TLS_DATA_SIZE; + break; + case 'g': + switch(s[5]) { + default: + break; + case 'r': + switch(s[6]) { + default: + break; + case 'o': + switch(s[7]) { + default: + break; + case 'u': + switch(s[8]) { + default: + break; + case 'p': + switch(s[9]) { + default: + break; + case '-': + switch(s[10]) { + default: + break; + case 'a': + if (strcmp("lg", s + 11) == 0) + return PIDX_CAPABILITY_TLS_GROUP_ALG; + break; + case 'i': + switch(s[11]) { + default: + break; + case 'd': + switch(s[12]) { + default: + break; + case '\0': + return PIDX_CAPABILITY_TLS_GROUP_ID; + } + break; + case 's': + if (strcmp("-kem", s + 12) == 0) + return PIDX_CAPABILITY_TLS_GROUP_IS_KEM; + } + break; + case 'n': + switch(s[11]) { + default: + break; + case 'a': + switch(s[12]) { + default: + break; + case 'm': + switch(s[13]) { + default: + break; + case 'e': + switch(s[14]) { + default: + break; + case '-': + if (strcmp("internal", s + 15) == 0) + return PIDX_CAPABILITY_TLS_GROUP_NAME_INTERNAL; + break; + case '\0': + return PIDX_CAPABILITY_TLS_GROUP_NAME; + } + } + } + } + break; + case 's': + if (strcmp("ec-bits", s + 11) == 0) + return PIDX_CAPABILITY_TLS_GROUP_SECURITY_BITS; + } + } + } + } + } + } + break; + case 'm': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case 'c': + switch(s[7]) { + default: + break; + case '-': + if (strcmp("size", s + 8) == 0) + return PIDX_CIPHER_PARAM_TLS_MAC_SIZE; + break; + case '\0': + return PIDX_CIPHER_PARAM_TLS_MAC; + } + break; + case 'x': + switch(s[7]) { + default: + break; + case '-': + switch(s[8]) { + default: + break; + case 'd': + if (strcmp("tls", s + 9) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_MAX_DTLS; + break; + case 't': + if (strcmp("ls", s + 9) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_MAX_TLS; + } + } + } + break; + case 'i': + switch(s[6]) { + default: + break; + case 'n': + switch(s[7]) { + default: + break; + case '-': + switch(s[8]) { + default: + break; + case 'd': + if (strcmp("tls", s + 9) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_MIN_DTLS; + break; + case 't': + if (strcmp("ls", s + 9) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_MIN_TLS; + } + } + } + break; + case 'u': + if (strcmp("lti", s + 6) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK; + } + break; + case 'n': + if (strcmp("egotiated-version", s + 5) == 0) + return PIDX_ASYM_CIPHER_PARAM_TLS_NEGOTIATED_VERSION; + break; + case 's': + switch(s[5]) { + default: + break; + case 'i': + switch(s[6]) { + default: + break; + case 'g': + switch(s[7]) { + default: + break; + case 'a': + switch(s[8]) { + default: + break; + case 'l': + switch(s[9]) { + default: + break; + case 'g': + switch(s[10]) { + default: + break; + case '-': + switch(s[11]) { + default: + break; + case 'c': + if (strcmp("ode-point", s + 12) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_CODE_POINT; + break; + case 'h': + switch(s[12]) { + default: + break; + case 'a': + switch(s[13]) { + default: + break; + case 's': + switch(s[14]) { + default: + break; + case 'h': + switch(s[15]) { + default: + break; + case '-': + switch(s[16]) { + default: + break; + case 'n': + if (strcmp("ame", s + 17) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_HASH_NAME; + break; + case 'o': + if (strcmp("id", s + 17) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_HASH_OID; + } + } + } + } + } + break; + case 'i': + if (strcmp("ana-name", s + 12) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_IANA_NAME; + break; + case 'k': + switch(s[12]) { + default: + break; + case 'e': + switch(s[13]) { + default: + break; + case 'y': + switch(s[14]) { + default: + break; + case 't': + switch(s[15]) { + default: + break; + case 'y': + switch(s[16]) { + default: + break; + case 'p': + switch(s[17]) { + default: + break; + case 'e': + switch(s[18]) { + default: + break; + case '-': + if (strcmp("oid", s + 19) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_KEYTYPE_OID; + break; + case '\0': + return PIDX_CAPABILITY_TLS_SIGALG_KEYTYPE; + } + } + } + } + } + } + } + break; + case 'n': + if (strcmp("ame", s + 12) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_NAME; + break; + case 'o': + if (strcmp("id", s + 12) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_OID; + break; + case 's': + switch(s[12]) { + default: + break; + case 'e': + if (strcmp("c-bits", s + 13) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_SECURITY_BITS; + break; + case 'i': + switch(s[13]) { + default: + break; + case 'g': + switch(s[14]) { + default: + break; + case '-': + switch(s[15]) { + default: + break; + case 'n': + if (strcmp("ame", s + 16) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_SIG_NAME; + break; + case 'o': + if (strcmp("id", s + 16) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_SIG_OID; + } + } + } + } + } + } + } + } + } + } + } + break; + case 'v': + if (strcmp("ersion", s + 5) == 0) + return PIDX_CIPHER_PARAM_TLS_VERSION; + } + break; + case '1': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'p': + switch(s[6]) { + default: + break; + case 'r': + switch(s[7]) { + default: + break; + case 'f': + switch(s[8]) { + default: + break; + case '-': + switch(s[9]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 10) == 0) + return PIDX_PROV_PARAM_TLS1_PRF_DIGEST_CHECK; + break; + case 'e': + if (strcmp("ms-check", s + 10) == 0) + return PIDX_PROV_PARAM_TLS1_PRF_EMS_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 10) == 0) + return PIDX_PROV_PARAM_TLS1_PRF_KEY_CHECK; + } + } + } + } + } + break; + case '3': + switch(s[5]) { + default: + break; + case '-': + switch(s[6]) { + default: + break; + case 'k': + switch(s[7]) { + default: + break; + case 'd': + switch(s[8]) { + default: + break; + case 'f': + switch(s[9]) { + default: + break; + case '-': + switch(s[10]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 11) == 0) + return PIDX_PROV_PARAM_TLS13_KDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 11) == 0) + return PIDX_PROV_PARAM_TLS13_KDF_KEY_CHECK; + } + } + } + } + } + } + break; + case 'm': + switch(s[5]) { + default: + break; + case 'u': + switch(s[6]) { + default: + break; + case 'l': + switch(s[7]) { + default: + break; + case 't': + switch(s[8]) { + default: + break; + case 'i': + switch(s[9]) { + default: + break; + case '_': + switch(s[10]) { + default: + break; + case 'a': + switch(s[11]) { + default: + break; + case 'a': + switch(s[12]) { + default: + break; + case 'd': + switch(s[13]) { + default: + break; + case 'p': + if (strcmp("acklen", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD_PACKLEN; + break; + case '\0': + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD; + } + } + } + break; + case 'e': + switch(s[11]) { + default: + break; + case 'n': + switch(s[12]) { + default: + break; + case 'c': + switch(s[13]) { + default: + break; + case 'i': + if (strcmp("n", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_IN; + break; + case 'l': + if (strcmp("en", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_LEN; + break; + case '\0': + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC; + } + } + } + break; + case 'i': + if (strcmp("nterleave", s + 11) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_INTERLEAVE; + break; + case 'm': + switch(s[11]) { + default: + break; + case 'a': + switch(s[12]) { + default: + break; + case 'x': + switch(s[13]) { + default: + break; + case 'b': + if (strcmp("ufsz", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_BUFSIZE; + break; + case 's': + if (strcmp("ndfrag", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_SEND_FRAGMENT; + } + } + } + } + } + } + } + } + } + } + break; + case 'a': + switch(s[4]) { + default: + break; + case 'a': + switch(s[5]) { + default: + break; + case 'd': + switch(s[6]) { + default: + break; + case 'p': + if (strcmp("ad", s + 7) == 0) + return PIDX_CIPHER_PARAM_AEAD_TLS1_AAD_PAD; + break; + case '\0': + return PIDX_CIPHER_PARAM_AEAD_TLS1_AAD; + } + } + } + break; + case 'i': + switch(s[4]) { + default: + break; + case 'v': + switch(s[5]) { + default: + break; + case 'f': + if (strcmp("ixed", s + 6) == 0) + return PIDX_CIPHER_PARAM_AEAD_TLS1_IV_FIXED; + break; + case 'g': + if (strcmp("en", s + 6) == 0) + return PIDX_CIPHER_PARAM_AEAD_TLS1_GET_IV_GEN; + break; + case 'i': + if (strcmp("nv", s + 6) == 0) + return PIDX_CIPHER_PARAM_AEAD_TLS1_SET_IV_INV; + } + } + break; + case 't': + if (strcmp("ree", s + 4) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_TLSTREE; + } + } + break; + case 'p': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_TP_BASIS; + } + break; + case 'y': + if (strcmp("pe", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_TYPE; + } + break; + case 'u': + switch(s[1]) { + default: + break; + case 'k': + if (strcmp("m", s + 2) == 0) + return PIDX_KDF_PARAM_UKM; + break; + case 'p': + if (strcmp("dated-iv", s + 2) == 0) + return PIDX_CIPHER_PARAM_UPDATED_IV; + break; + case 's': + switch(s[2]) { + default: + break; + case 'e': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'b': + if (strcmp("its", s + 5) == 0) + return PIDX_CIPHER_PARAM_USE_BITS; + break; + case 'c': + if (strcmp("ofactor-flag", s + 5) == 0) + return PIDX_PKEY_PARAM_USE_COFACTOR_FLAG; + break; + case 'k': + if (strcmp("eybits", s + 5) == 0) + return PIDX_KDF_PARAM_X942_USE_KEYBITS; + break; + case 'l': + switch(s[5]) { + default: + break; + case '\0': + return PIDX_KDF_PARAM_KBKDF_USE_L; + } + break; + case 's': + if (strcmp("eparator", s + 5) == 0) + return PIDX_KDF_PARAM_KBKDF_USE_SEPARATOR; + } + break; + case '_': + switch(s[4]) { + default: + break; + case 'd': + if (strcmp("erivation_function", s + 5) == 0) + return PIDX_DRBG_PARAM_USE_DF; + break; + case 'e': + if (strcmp("tm", s + 5) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_USE_ETM; + } + } + } + } + break; + case 'v': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'l': + switch(s[3]) { + default: + break; + case 'i': + switch(s[4]) { + default: + break; + case 'd': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case 'e': + switch(s[8]) { + default: + break; + case '-': + switch(s[9]) { + default: + break; + case 'g': + switch(s[10]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_VALIDATE_G; + } + break; + case 'l': + if (strcmp("egacy", s + 10) == 0) + return PIDX_PKEY_PARAM_FFC_VALIDATE_LEGACY; + break; + case 'p': + if (strcmp("q", s + 10) == 0) + return PIDX_PKEY_PARAM_FFC_VALIDATE_PQ; + } + } + } + } + } + } + } + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'r': + switch(s[3]) { + default: + break; + case 'i': + if (strcmp("fy-message", s + 4) == 0) + return PIDX_SIGNATURE_PARAM_FIPS_VERIFY_MESSAGE; + break; + case 's': + if (strcmp("ion", s + 4) == 0) + return PIDX_PROV_PARAM_VERSION; + } + } + } + break; + case 'x': + switch(s[1]) { + default: + break; + case '9': + switch(s[2]) { + default: + break; + case '4': + if (strcmp("2kdf-key-check", s + 3) == 0) + return PIDX_PROV_PARAM_X942KDF_KEY_CHECK; + break; + case '6': + switch(s[3]) { + default: + break; + case '3': + switch(s[4]) { + default: + break; + case 'k': + switch(s[5]) { + default: + break; + case 'd': + switch(s[6]) { + default: + break; + case 'f': + switch(s[7]) { + default: + break; + case '-': + switch(s[8]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 9) == 0) + return PIDX_PROV_PARAM_X963KDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 9) == 0) + return PIDX_PROV_PARAM_X963KDF_KEY_CHECK; + } + } + } + } + } + } + } + break; + case 'c': + if (strcmp("ghash", s + 2) == 0) + return PIDX_KDF_PARAM_SSHKDF_XCGHASH; + break; + case 'o': + switch(s[2]) { + default: + break; + case 'f': + switch(s[3]) { + default: + break; + case 'l': + if (strcmp("en", s + 4) == 0) + return PIDX_DIGEST_PARAM_XOFLEN; + break; + case '\0': + return PIDX_MAC_PARAM_XOF; + } + } + break; + case 'p': + switch(s[2]) { + default: + break; + case '1': + switch(s[3]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XP1; + } + break; + case '2': + switch(s[3]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XP2; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XP; + } + break; + case 'q': + switch(s[2]) { + default: + break; + case '1': + switch(s[3]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XQ1; + } + break; + case '2': + switch(s[3]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XQ2; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XQ; + } + break; + case 't': + if (strcmp("s_standard", s + 2) == 0) + return PIDX_CIPHER_PARAM_XTS_STANDARD; + } + } + return -1; +} + +/* End of TRIE */ diff --git a/deps/openssl/config/archs/aix64-gcc-as/asm/crypto/ppccpuid.s b/deps/openssl/config/archs/aix64-gcc-as/asm/crypto/ppccpuid.s index 63f902770d32de..a75defcc768384 100644 --- a/deps/openssl/config/archs/aix64-gcc-as/asm/crypto/ppccpuid.s +++ b/deps/openssl/config/archs/aix64-gcc-as/asm/crypto/ppccpuid.s @@ -48,6 +48,17 @@ .long 0 .byte 0,12,0x14,0,0,0,0,0 +.globl .OPENSSL_brd31_probe +.align 4 +.OPENSSL_brd31_probe: + xor 0,0,0 + .long 0x7C030176 + blr +.long 0 +.byte 0,12,0x14,0,0,0,0,0 + + + .globl .OPENSSL_wipe_cpu .align 4 .OPENSSL_wipe_cpu: diff --git a/deps/openssl/config/archs/aix64-gcc-as/asm/crypto/sha/keccak1600-ppc64.s b/deps/openssl/config/archs/aix64-gcc-as/asm/crypto/sha/keccak1600-ppc64.s index 28c8e62f664cce..625f8d2ff102dd 100644 --- a/deps/openssl/config/archs/aix64-gcc-as/asm/crypto/sha/keccak1600-ppc64.s +++ b/deps/openssl/config/archs/aix64-gcc-as/asm/crypto/sha/keccak1600-ppc64.s @@ -293,7 +293,6 @@ KeccakF1600: .long 0 - .align 5 dword_le_load: lbz 0,1(3) @@ -316,7 +315,6 @@ dword_le_load: .byte 0,12,0x14,0,0,0,1,0 .long 0 - .globl .SHA3_absorb .align 5 @@ -557,6 +555,8 @@ Labsorbed: subi 29,4,1 mr 30,5 mr 31,6 + cmplwi 7,0 + bne Lnext_block b Loop_squeeze .align 4 @@ -587,6 +587,7 @@ Loop_squeeze: subic. 6,6,8 bgt Loop_squeeze +Lnext_block: mr 3,28 bl KeccakF1600 subi 3,28,8 diff --git a/deps/openssl/config/archs/aix64-gcc-as/asm/include/internal/param_names.h b/deps/openssl/config/archs/aix64-gcc-as/asm/include/internal/param_names.h new file mode 100644 index 00000000000000..0a0404a57e82b9 --- /dev/null +++ b/deps/openssl/config/archs/aix64-gcc-as/asm/include/internal/param_names.h @@ -0,0 +1,469 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from include/internal/param_names.h.in + * + * Copyright 2023 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + +int ossl_param_find_pidx(const char *s); + +/* Parameter name definitions - generated by util/perl/OpenSSL/paramnames.pm */ +#define NUM_PIDX 346 + +#define PIDX_ALG_PARAM_ALGORITHM_ID 0 +#define PIDX_ALG_PARAM_ALGORITHM_ID_PARAMS 1 +#define PIDX_ALG_PARAM_CIPHER 2 +#define PIDX_ALG_PARAM_DIGEST 3 +#define PIDX_ALG_PARAM_ENGINE 4 +#define PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR 5 +#define PIDX_ALG_PARAM_MAC 6 +#define PIDX_ALG_PARAM_PROPERTIES 7 +#define PIDX_ASYM_CIPHER_PARAM_DIGEST PIDX_PKEY_PARAM_DIGEST +#define PIDX_ASYM_CIPHER_PARAM_ENGINE PIDX_PKEY_PARAM_ENGINE +#define PIDX_ASYM_CIPHER_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_ASYM_CIPHER_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_ASYM_CIPHER_PARAM_FIPS_RSA_PKCS15_PAD_DISABLED PIDX_PROV_PARAM_RSA_PKCS15_PAD_DISABLED +#define PIDX_ASYM_CIPHER_PARAM_IMPLICIT_REJECTION 8 +#define PIDX_ASYM_CIPHER_PARAM_MGF1_DIGEST PIDX_PKEY_PARAM_MGF1_DIGEST +#define PIDX_ASYM_CIPHER_PARAM_MGF1_DIGEST_PROPS PIDX_PKEY_PARAM_MGF1_PROPERTIES +#define PIDX_ASYM_CIPHER_PARAM_OAEP_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_ASYM_CIPHER_PARAM_OAEP_DIGEST_PROPS 9 +#define PIDX_ASYM_CIPHER_PARAM_OAEP_LABEL 10 +#define PIDX_ASYM_CIPHER_PARAM_PAD_MODE PIDX_PKEY_PARAM_PAD_MODE +#define PIDX_ASYM_CIPHER_PARAM_PROPERTIES PIDX_PKEY_PARAM_PROPERTIES +#define PIDX_ASYM_CIPHER_PARAM_TLS_CLIENT_VERSION 11 +#define PIDX_ASYM_CIPHER_PARAM_TLS_NEGOTIATED_VERSION 12 +#define PIDX_CAPABILITY_TLS_GROUP_ALG 13 +#define PIDX_CAPABILITY_TLS_GROUP_ID 14 +#define PIDX_CAPABILITY_TLS_GROUP_IS_KEM 15 +#define PIDX_CAPABILITY_TLS_GROUP_MAX_DTLS 16 +#define PIDX_CAPABILITY_TLS_GROUP_MAX_TLS 17 +#define PIDX_CAPABILITY_TLS_GROUP_MIN_DTLS 18 +#define PIDX_CAPABILITY_TLS_GROUP_MIN_TLS 19 +#define PIDX_CAPABILITY_TLS_GROUP_NAME 20 +#define PIDX_CAPABILITY_TLS_GROUP_NAME_INTERNAL 21 +#define PIDX_CAPABILITY_TLS_GROUP_SECURITY_BITS 22 +#define PIDX_CAPABILITY_TLS_SIGALG_CODE_POINT 23 +#define PIDX_CAPABILITY_TLS_SIGALG_HASH_NAME 24 +#define PIDX_CAPABILITY_TLS_SIGALG_HASH_OID 25 +#define PIDX_CAPABILITY_TLS_SIGALG_IANA_NAME 26 +#define PIDX_CAPABILITY_TLS_SIGALG_KEYTYPE 27 +#define PIDX_CAPABILITY_TLS_SIGALG_KEYTYPE_OID 28 +#define PIDX_CAPABILITY_TLS_SIGALG_MAX_DTLS 16 +#define PIDX_CAPABILITY_TLS_SIGALG_MAX_TLS 17 +#define PIDX_CAPABILITY_TLS_SIGALG_MIN_DTLS 18 +#define PIDX_CAPABILITY_TLS_SIGALG_MIN_TLS 19 +#define PIDX_CAPABILITY_TLS_SIGALG_NAME 29 +#define PIDX_CAPABILITY_TLS_SIGALG_OID 30 +#define PIDX_CAPABILITY_TLS_SIGALG_SECURITY_BITS 31 +#define PIDX_CAPABILITY_TLS_SIGALG_SIG_NAME 32 +#define PIDX_CAPABILITY_TLS_SIGALG_SIG_OID 33 +#define PIDX_CIPHER_PARAM_AEAD 34 +#define PIDX_CIPHER_PARAM_AEAD_IVLEN PIDX_CIPHER_PARAM_IVLEN +#define PIDX_CIPHER_PARAM_AEAD_IV_GENERATED 35 +#define PIDX_CIPHER_PARAM_AEAD_MAC_KEY 36 +#define PIDX_CIPHER_PARAM_AEAD_TAG 37 +#define PIDX_CIPHER_PARAM_AEAD_TAGLEN 38 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_AAD 39 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_AAD_PAD 40 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_GET_IV_GEN 41 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_IV_FIXED 42 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_SET_IV_INV 43 +#define PIDX_CIPHER_PARAM_ALGORITHM_ID PIDX_ALG_PARAM_ALGORITHM_ID +#define PIDX_CIPHER_PARAM_ALGORITHM_ID_PARAMS PIDX_ALG_PARAM_ALGORITHM_ID_PARAMS +#define PIDX_CIPHER_PARAM_ALGORITHM_ID_PARAMS_OLD 44 +#define PIDX_CIPHER_PARAM_BLOCK_SIZE 45 +#define PIDX_CIPHER_PARAM_CTS 46 +#define PIDX_CIPHER_PARAM_CTS_MODE 47 +#define PIDX_CIPHER_PARAM_CUSTOM_IV 48 +#define PIDX_CIPHER_PARAM_DECRYPT_ONLY 49 +#define PIDX_CIPHER_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_CIPHER_PARAM_FIPS_ENCRYPT_CHECK 50 +#define PIDX_CIPHER_PARAM_HAS_RAND_KEY 51 +#define PIDX_CIPHER_PARAM_IV 52 +#define PIDX_CIPHER_PARAM_IVLEN 53 +#define PIDX_CIPHER_PARAM_KEYLEN 54 +#define PIDX_CIPHER_PARAM_MODE 55 +#define PIDX_CIPHER_PARAM_NUM 56 +#define PIDX_CIPHER_PARAM_PADDING 57 +#define PIDX_CIPHER_PARAM_PIPELINE_AEAD_TAG 58 +#define PIDX_CIPHER_PARAM_RANDOM_KEY 59 +#define PIDX_CIPHER_PARAM_RC2_KEYBITS 60 +#define PIDX_CIPHER_PARAM_ROUNDS 61 +#define PIDX_CIPHER_PARAM_SPEED 62 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK 63 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD 64 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD_PACKLEN 65 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC 66 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_IN 67 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_LEN 68 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_INTERLEAVE 69 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_BUFSIZE 70 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_SEND_FRAGMENT 71 +#define PIDX_CIPHER_PARAM_TLS_MAC 72 +#define PIDX_CIPHER_PARAM_TLS_MAC_SIZE 73 +#define PIDX_CIPHER_PARAM_TLS_VERSION 74 +#define PIDX_CIPHER_PARAM_UPDATED_IV 75 +#define PIDX_CIPHER_PARAM_USE_BITS 76 +#define PIDX_CIPHER_PARAM_XTS_STANDARD 77 +#define PIDX_DECODER_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_DIGEST_PARAM_ALGID_ABSENT 78 +#define PIDX_DIGEST_PARAM_BLOCK_SIZE 45 +#define PIDX_DIGEST_PARAM_MICALG 79 +#define PIDX_DIGEST_PARAM_PAD_TYPE 80 +#define PIDX_DIGEST_PARAM_SIZE 81 +#define PIDX_DIGEST_PARAM_SSL3_MS 82 +#define PIDX_DIGEST_PARAM_XOF 83 +#define PIDX_DIGEST_PARAM_XOFLEN 84 +#define PIDX_DRBG_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_DRBG_PARAM_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_DRBG_PARAM_ENTROPY_REQUIRED 85 +#define PIDX_DRBG_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_DRBG_PARAM_FIPS_DIGEST_CHECK PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK +#define PIDX_DRBG_PARAM_MAC PIDX_ALG_PARAM_MAC +#define PIDX_DRBG_PARAM_MAX_ADINLEN 86 +#define PIDX_DRBG_PARAM_MAX_ENTROPYLEN 87 +#define PIDX_DRBG_PARAM_MAX_LENGTH 88 +#define PIDX_DRBG_PARAM_MAX_NONCELEN 89 +#define PIDX_DRBG_PARAM_MAX_PERSLEN 90 +#define PIDX_DRBG_PARAM_MIN_ENTROPYLEN 91 +#define PIDX_DRBG_PARAM_MIN_LENGTH 92 +#define PIDX_DRBG_PARAM_MIN_NONCELEN 93 +#define PIDX_DRBG_PARAM_PREDICTION_RESISTANCE 94 +#define PIDX_DRBG_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_DRBG_PARAM_RANDOM_DATA 95 +#define PIDX_DRBG_PARAM_RESEED_COUNTER 96 +#define PIDX_DRBG_PARAM_RESEED_REQUESTS 97 +#define PIDX_DRBG_PARAM_RESEED_TIME 98 +#define PIDX_DRBG_PARAM_RESEED_TIME_INTERVAL 99 +#define PIDX_DRBG_PARAM_SIZE 81 +#define PIDX_DRBG_PARAM_USE_DF 100 +#define PIDX_ENCODER_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_ENCODER_PARAM_ENCRYPT_LEVEL 101 +#define PIDX_ENCODER_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_ENCODER_PARAM_SAVE_PARAMETERS 102 +#define PIDX_EXCHANGE_PARAM_EC_ECDH_COFACTOR_MODE 103 +#define PIDX_EXCHANGE_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_EXCHANGE_PARAM_FIPS_DIGEST_CHECK PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK +#define PIDX_EXCHANGE_PARAM_FIPS_ECDH_COFACTOR_CHECK PIDX_PROV_PARAM_ECDH_COFACTOR_CHECK +#define PIDX_EXCHANGE_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_EXCHANGE_PARAM_KDF_DIGEST 104 +#define PIDX_EXCHANGE_PARAM_KDF_DIGEST_PROPS 105 +#define PIDX_EXCHANGE_PARAM_KDF_OUTLEN 106 +#define PIDX_EXCHANGE_PARAM_KDF_TYPE 107 +#define PIDX_EXCHANGE_PARAM_KDF_UKM 108 +#define PIDX_EXCHANGE_PARAM_PAD 109 +#define PIDX_GEN_PARAM_ITERATION 110 +#define PIDX_GEN_PARAM_POTENTIAL 111 +#define PIDX_KDF_PARAM_ARGON2_AD 112 +#define PIDX_KDF_PARAM_ARGON2_LANES 113 +#define PIDX_KDF_PARAM_ARGON2_MEMCOST 114 +#define PIDX_KDF_PARAM_ARGON2_VERSION 115 +#define PIDX_KDF_PARAM_CEK_ALG 116 +#define PIDX_KDF_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_KDF_PARAM_CONSTANT 117 +#define PIDX_KDF_PARAM_DATA 118 +#define PIDX_KDF_PARAM_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_KDF_PARAM_EARLY_CLEAN 119 +#define PIDX_KDF_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_KDF_PARAM_FIPS_DIGEST_CHECK PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK +#define PIDX_KDF_PARAM_FIPS_EMS_CHECK 120 +#define PIDX_KDF_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_KDF_PARAM_HMACDRBG_ENTROPY 121 +#define PIDX_KDF_PARAM_HMACDRBG_NONCE 122 +#define PIDX_KDF_PARAM_INFO 123 +#define PIDX_KDF_PARAM_ITER 124 +#define PIDX_KDF_PARAM_KBKDF_R 125 +#define PIDX_KDF_PARAM_KBKDF_USE_L 126 +#define PIDX_KDF_PARAM_KBKDF_USE_SEPARATOR 127 +#define PIDX_KDF_PARAM_KEY 128 +#define PIDX_KDF_PARAM_LABEL 129 +#define PIDX_KDF_PARAM_MAC PIDX_ALG_PARAM_MAC +#define PIDX_KDF_PARAM_MAC_SIZE 130 +#define PIDX_KDF_PARAM_MODE 55 +#define PIDX_KDF_PARAM_PASSWORD 131 +#define PIDX_KDF_PARAM_PKCS12_ID 132 +#define PIDX_KDF_PARAM_PKCS5 133 +#define PIDX_KDF_PARAM_PREFIX 134 +#define PIDX_KDF_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_KDF_PARAM_SALT 135 +#define PIDX_KDF_PARAM_SCRYPT_MAXMEM 136 +#define PIDX_KDF_PARAM_SCRYPT_N 137 +#define PIDX_KDF_PARAM_SCRYPT_P 138 +#define PIDX_KDF_PARAM_SCRYPT_R 125 +#define PIDX_KDF_PARAM_SECRET 139 +#define PIDX_KDF_PARAM_SEED 140 +#define PIDX_KDF_PARAM_SIZE 81 +#define PIDX_KDF_PARAM_SSHKDF_SESSION_ID 141 +#define PIDX_KDF_PARAM_SSHKDF_TYPE 142 +#define PIDX_KDF_PARAM_SSHKDF_XCGHASH 143 +#define PIDX_KDF_PARAM_THREADS 144 +#define PIDX_KDF_PARAM_UKM 145 +#define PIDX_KDF_PARAM_X942_ACVPINFO 146 +#define PIDX_KDF_PARAM_X942_PARTYUINFO 147 +#define PIDX_KDF_PARAM_X942_PARTYVINFO 148 +#define PIDX_KDF_PARAM_X942_SUPP_PRIVINFO 149 +#define PIDX_KDF_PARAM_X942_SUPP_PUBINFO 150 +#define PIDX_KDF_PARAM_X942_USE_KEYBITS 151 +#define PIDX_KEM_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_KEM_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_KEM_PARAM_IKME 152 +#define PIDX_KEM_PARAM_OPERATION 153 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_BLOCK_PADDING 154 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_HS_PADDING 155 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_MAX_EARLY_DATA 156 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_MAX_FRAG_LEN 157 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_MODE 55 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_OPTIONS 158 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_READ_AHEAD 159 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_STREAM_MAC 160 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_TLSTREE 161 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_USE_ETM 162 +#define PIDX_LIBSSL_RECORD_LAYER_READ_BUFFER_LEN 163 +#define PIDX_MAC_PARAM_BLOCK_SIZE 164 +#define PIDX_MAC_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_MAC_PARAM_CUSTOM 165 +#define PIDX_MAC_PARAM_C_ROUNDS 166 +#define PIDX_MAC_PARAM_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_MAC_PARAM_DIGEST_NOINIT 167 +#define PIDX_MAC_PARAM_DIGEST_ONESHOT 168 +#define PIDX_MAC_PARAM_D_ROUNDS 169 +#define PIDX_MAC_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_MAC_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_MAC_PARAM_FIPS_NO_SHORT_MAC PIDX_PROV_PARAM_NO_SHORT_MAC +#define PIDX_MAC_PARAM_IV 52 +#define PIDX_MAC_PARAM_KEY 128 +#define PIDX_MAC_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_MAC_PARAM_SALT 135 +#define PIDX_MAC_PARAM_SIZE 81 +#define PIDX_MAC_PARAM_TLS_DATA_SIZE 170 +#define PIDX_MAC_PARAM_XOF 83 +#define PIDX_OBJECT_PARAM_DATA 118 +#define PIDX_OBJECT_PARAM_DATA_STRUCTURE 171 +#define PIDX_OBJECT_PARAM_DATA_TYPE 172 +#define PIDX_OBJECT_PARAM_DESC 173 +#define PIDX_OBJECT_PARAM_INPUT_TYPE 174 +#define PIDX_OBJECT_PARAM_REFERENCE 175 +#define PIDX_OBJECT_PARAM_TYPE 142 +#define PIDX_PASSPHRASE_PARAM_INFO 123 +#define PIDX_PKEY_PARAM_ALGORITHM_ID PIDX_ALG_PARAM_ALGORITHM_ID +#define PIDX_PKEY_PARAM_ALGORITHM_ID_PARAMS PIDX_ALG_PARAM_ALGORITHM_ID_PARAMS +#define PIDX_PKEY_PARAM_BITS 176 +#define PIDX_PKEY_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_PKEY_PARAM_DEFAULT_DIGEST 177 +#define PIDX_PKEY_PARAM_DHKEM_IKM 178 +#define PIDX_PKEY_PARAM_DH_GENERATOR 179 +#define PIDX_PKEY_PARAM_DH_PRIV_LEN 180 +#define PIDX_PKEY_PARAM_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_PKEY_PARAM_DIGEST_SIZE 181 +#define PIDX_PKEY_PARAM_DIST_ID 182 +#define PIDX_PKEY_PARAM_EC_A 183 +#define PIDX_PKEY_PARAM_EC_B 184 +#define PIDX_PKEY_PARAM_EC_CHAR2_M 185 +#define PIDX_PKEY_PARAM_EC_CHAR2_PP_K1 186 +#define PIDX_PKEY_PARAM_EC_CHAR2_PP_K2 187 +#define PIDX_PKEY_PARAM_EC_CHAR2_PP_K3 188 +#define PIDX_PKEY_PARAM_EC_CHAR2_TP_BASIS 189 +#define PIDX_PKEY_PARAM_EC_CHAR2_TYPE 190 +#define PIDX_PKEY_PARAM_EC_COFACTOR 191 +#define PIDX_PKEY_PARAM_EC_DECODED_FROM_EXPLICIT_PARAMS 192 +#define PIDX_PKEY_PARAM_EC_ENCODING 193 +#define PIDX_PKEY_PARAM_EC_FIELD_TYPE 194 +#define PIDX_PKEY_PARAM_EC_GENERATOR 195 +#define PIDX_PKEY_PARAM_EC_GROUP_CHECK_TYPE 196 +#define PIDX_PKEY_PARAM_EC_INCLUDE_PUBLIC 197 +#define PIDX_PKEY_PARAM_EC_ORDER 198 +#define PIDX_PKEY_PARAM_EC_P 138 +#define PIDX_PKEY_PARAM_EC_POINT_CONVERSION_FORMAT 199 +#define PIDX_PKEY_PARAM_EC_PUB_X 200 +#define PIDX_PKEY_PARAM_EC_PUB_Y 201 +#define PIDX_PKEY_PARAM_EC_SEED 140 +#define PIDX_PKEY_PARAM_ENCODED_PUBLIC_KEY 202 +#define PIDX_PKEY_PARAM_ENGINE PIDX_ALG_PARAM_ENGINE +#define PIDX_PKEY_PARAM_FFC_COFACTOR 203 +#define PIDX_PKEY_PARAM_FFC_DIGEST PIDX_PKEY_PARAM_DIGEST +#define PIDX_PKEY_PARAM_FFC_DIGEST_PROPS PIDX_PKEY_PARAM_PROPERTIES +#define PIDX_PKEY_PARAM_FFC_G 204 +#define PIDX_PKEY_PARAM_FFC_GINDEX 205 +#define PIDX_PKEY_PARAM_FFC_H 206 +#define PIDX_PKEY_PARAM_FFC_P 138 +#define PIDX_PKEY_PARAM_FFC_PBITS 207 +#define PIDX_PKEY_PARAM_FFC_PCOUNTER 208 +#define PIDX_PKEY_PARAM_FFC_Q 209 +#define PIDX_PKEY_PARAM_FFC_QBITS 210 +#define PIDX_PKEY_PARAM_FFC_SEED 140 +#define PIDX_PKEY_PARAM_FFC_TYPE 142 +#define PIDX_PKEY_PARAM_FFC_VALIDATE_G 211 +#define PIDX_PKEY_PARAM_FFC_VALIDATE_LEGACY 212 +#define PIDX_PKEY_PARAM_FFC_VALIDATE_PQ 213 +#define PIDX_PKEY_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK 214 +#define PIDX_PKEY_PARAM_FIPS_KEY_CHECK 215 +#define PIDX_PKEY_PARAM_FIPS_SIGN_CHECK 216 +#define PIDX_PKEY_PARAM_GROUP_NAME 217 +#define PIDX_PKEY_PARAM_IMPLICIT_REJECTION 8 +#define PIDX_PKEY_PARAM_MANDATORY_DIGEST 218 +#define PIDX_PKEY_PARAM_MASKGENFUNC 219 +#define PIDX_PKEY_PARAM_MAX_SIZE 220 +#define PIDX_PKEY_PARAM_MGF1_DIGEST 221 +#define PIDX_PKEY_PARAM_MGF1_PROPERTIES 222 +#define PIDX_PKEY_PARAM_ML_DSA_INPUT_FORMATS 223 +#define PIDX_PKEY_PARAM_ML_DSA_OUTPUT_FORMATS 224 +#define PIDX_PKEY_PARAM_ML_DSA_PREFER_SEED 225 +#define PIDX_PKEY_PARAM_ML_DSA_RETAIN_SEED 226 +#define PIDX_PKEY_PARAM_ML_DSA_SEED 140 +#define PIDX_PKEY_PARAM_ML_KEM_IMPORT_PCT_TYPE 227 +#define PIDX_PKEY_PARAM_ML_KEM_INPUT_FORMATS 228 +#define PIDX_PKEY_PARAM_ML_KEM_OUTPUT_FORMATS 229 +#define PIDX_PKEY_PARAM_ML_KEM_PREFER_SEED 230 +#define PIDX_PKEY_PARAM_ML_KEM_RETAIN_SEED 231 +#define PIDX_PKEY_PARAM_ML_KEM_SEED 140 +#define PIDX_PKEY_PARAM_PAD_MODE 232 +#define PIDX_PKEY_PARAM_PRIV_KEY 233 +#define PIDX_PKEY_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_PKEY_PARAM_PUB_KEY 234 +#define PIDX_PKEY_PARAM_RSA_BITS PIDX_PKEY_PARAM_BITS +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT 235 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT1 236 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT2 237 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT3 238 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT4 239 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT5 240 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT6 241 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT7 242 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT8 243 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT9 244 +#define PIDX_PKEY_PARAM_RSA_D 245 +#define PIDX_PKEY_PARAM_RSA_DERIVE_FROM_PQ 246 +#define PIDX_PKEY_PARAM_RSA_DIGEST PIDX_PKEY_PARAM_DIGEST +#define PIDX_PKEY_PARAM_RSA_DIGEST_PROPS PIDX_PKEY_PARAM_PROPERTIES +#define PIDX_PKEY_PARAM_RSA_E 247 +#define PIDX_PKEY_PARAM_RSA_EXPONENT 248 +#define PIDX_PKEY_PARAM_RSA_EXPONENT1 249 +#define PIDX_PKEY_PARAM_RSA_EXPONENT10 250 +#define PIDX_PKEY_PARAM_RSA_EXPONENT2 251 +#define PIDX_PKEY_PARAM_RSA_EXPONENT3 252 +#define PIDX_PKEY_PARAM_RSA_EXPONENT4 253 +#define PIDX_PKEY_PARAM_RSA_EXPONENT5 254 +#define PIDX_PKEY_PARAM_RSA_EXPONENT6 255 +#define PIDX_PKEY_PARAM_RSA_EXPONENT7 256 +#define PIDX_PKEY_PARAM_RSA_EXPONENT8 257 +#define PIDX_PKEY_PARAM_RSA_EXPONENT9 258 +#define PIDX_PKEY_PARAM_RSA_FACTOR 259 +#define PIDX_PKEY_PARAM_RSA_FACTOR1 260 +#define PIDX_PKEY_PARAM_RSA_FACTOR10 261 +#define PIDX_PKEY_PARAM_RSA_FACTOR2 262 +#define PIDX_PKEY_PARAM_RSA_FACTOR3 263 +#define PIDX_PKEY_PARAM_RSA_FACTOR4 264 +#define PIDX_PKEY_PARAM_RSA_FACTOR5 265 +#define PIDX_PKEY_PARAM_RSA_FACTOR6 266 +#define PIDX_PKEY_PARAM_RSA_FACTOR7 267 +#define PIDX_PKEY_PARAM_RSA_FACTOR8 268 +#define PIDX_PKEY_PARAM_RSA_FACTOR9 269 +#define PIDX_PKEY_PARAM_RSA_MASKGENFUNC PIDX_PKEY_PARAM_MASKGENFUNC +#define PIDX_PKEY_PARAM_RSA_MGF1_DIGEST PIDX_PKEY_PARAM_MGF1_DIGEST +#define PIDX_PKEY_PARAM_RSA_N 137 +#define PIDX_PKEY_PARAM_RSA_PRIMES 270 +#define PIDX_PKEY_PARAM_RSA_PSS_SALTLEN 271 +#define PIDX_PKEY_PARAM_RSA_TEST_P1 272 +#define PIDX_PKEY_PARAM_RSA_TEST_P2 273 +#define PIDX_PKEY_PARAM_RSA_TEST_Q1 274 +#define PIDX_PKEY_PARAM_RSA_TEST_Q2 275 +#define PIDX_PKEY_PARAM_RSA_TEST_XP 276 +#define PIDX_PKEY_PARAM_RSA_TEST_XP1 277 +#define PIDX_PKEY_PARAM_RSA_TEST_XP2 278 +#define PIDX_PKEY_PARAM_RSA_TEST_XQ 279 +#define PIDX_PKEY_PARAM_RSA_TEST_XQ1 280 +#define PIDX_PKEY_PARAM_RSA_TEST_XQ2 281 +#define PIDX_PKEY_PARAM_SECURITY_BITS 282 +#define PIDX_PKEY_PARAM_SLH_DSA_SEED 140 +#define PIDX_PKEY_PARAM_USE_COFACTOR_ECDH PIDX_PKEY_PARAM_USE_COFACTOR_FLAG +#define PIDX_PKEY_PARAM_USE_COFACTOR_FLAG 283 +#define PIDX_PROV_PARAM_BUILDINFO 284 +#define PIDX_PROV_PARAM_CORE_MODULE_FILENAME 285 +#define PIDX_PROV_PARAM_CORE_PROV_NAME 286 +#define PIDX_PROV_PARAM_CORE_VERSION 287 +#define PIDX_PROV_PARAM_DRBG_TRUNC_DIGEST 288 +#define PIDX_PROV_PARAM_DSA_SIGN_DISABLED 289 +#define PIDX_PROV_PARAM_ECDH_COFACTOR_CHECK 290 +#define PIDX_PROV_PARAM_HKDF_DIGEST_CHECK 291 +#define PIDX_PROV_PARAM_HKDF_KEY_CHECK 292 +#define PIDX_PROV_PARAM_HMAC_KEY_CHECK 293 +#define PIDX_PROV_PARAM_KBKDF_KEY_CHECK 294 +#define PIDX_PROV_PARAM_KMAC_KEY_CHECK 295 +#define PIDX_PROV_PARAM_NAME 296 +#define PIDX_PROV_PARAM_NO_SHORT_MAC 297 +#define PIDX_PROV_PARAM_PBKDF2_LOWER_BOUND_CHECK 298 +#define PIDX_PROV_PARAM_RSA_PKCS15_PAD_DISABLED 299 +#define PIDX_PROV_PARAM_RSA_PSS_SALTLEN_CHECK 300 +#define PIDX_PROV_PARAM_RSA_SIGN_X931_PAD_DISABLED 301 +#define PIDX_PROV_PARAM_SECURITY_CHECKS 302 +#define PIDX_PROV_PARAM_SELF_TEST_DESC 303 +#define PIDX_PROV_PARAM_SELF_TEST_PHASE 304 +#define PIDX_PROV_PARAM_SELF_TEST_TYPE 305 +#define PIDX_PROV_PARAM_SIGNATURE_DIGEST_CHECK 306 +#define PIDX_PROV_PARAM_SSHKDF_DIGEST_CHECK 307 +#define PIDX_PROV_PARAM_SSHKDF_KEY_CHECK 308 +#define PIDX_PROV_PARAM_SSKDF_DIGEST_CHECK 309 +#define PIDX_PROV_PARAM_SSKDF_KEY_CHECK 310 +#define PIDX_PROV_PARAM_STATUS 311 +#define PIDX_PROV_PARAM_TDES_ENCRYPT_DISABLED 312 +#define PIDX_PROV_PARAM_TLS13_KDF_DIGEST_CHECK 313 +#define PIDX_PROV_PARAM_TLS13_KDF_KEY_CHECK 314 +#define PIDX_PROV_PARAM_TLS1_PRF_DIGEST_CHECK 315 +#define PIDX_PROV_PARAM_TLS1_PRF_EMS_CHECK 316 +#define PIDX_PROV_PARAM_TLS1_PRF_KEY_CHECK 317 +#define PIDX_PROV_PARAM_VERSION 115 +#define PIDX_PROV_PARAM_X942KDF_KEY_CHECK 318 +#define PIDX_PROV_PARAM_X963KDF_DIGEST_CHECK 319 +#define PIDX_PROV_PARAM_X963KDF_KEY_CHECK 320 +#define PIDX_RAND_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_RAND_PARAM_GENERATE 321 +#define PIDX_RAND_PARAM_MAX_REQUEST 322 +#define PIDX_RAND_PARAM_STATE 323 +#define PIDX_RAND_PARAM_STRENGTH 324 +#define PIDX_RAND_PARAM_TEST_ENTROPY 325 +#define PIDX_RAND_PARAM_TEST_NONCE 326 +#define PIDX_SIGNATURE_PARAM_ADD_RANDOM 327 +#define PIDX_SIGNATURE_PARAM_ALGORITHM_ID PIDX_PKEY_PARAM_ALGORITHM_ID +#define PIDX_SIGNATURE_PARAM_ALGORITHM_ID_PARAMS PIDX_PKEY_PARAM_ALGORITHM_ID_PARAMS +#define PIDX_SIGNATURE_PARAM_CONTEXT_STRING 328 +#define PIDX_SIGNATURE_PARAM_DETERMINISTIC 329 +#define PIDX_SIGNATURE_PARAM_DIGEST PIDX_PKEY_PARAM_DIGEST +#define PIDX_SIGNATURE_PARAM_DIGEST_SIZE PIDX_PKEY_PARAM_DIGEST_SIZE +#define PIDX_SIGNATURE_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_SIGNATURE_PARAM_FIPS_DIGEST_CHECK PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK +#define PIDX_SIGNATURE_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_SIGNATURE_PARAM_FIPS_RSA_PSS_SALTLEN_CHECK 300 +#define PIDX_SIGNATURE_PARAM_FIPS_SIGN_CHECK PIDX_PKEY_PARAM_FIPS_SIGN_CHECK +#define PIDX_SIGNATURE_PARAM_FIPS_SIGN_X931_PAD_CHECK 330 +#define PIDX_SIGNATURE_PARAM_FIPS_VERIFY_MESSAGE 331 +#define PIDX_SIGNATURE_PARAM_INSTANCE 332 +#define PIDX_SIGNATURE_PARAM_KAT 333 +#define PIDX_SIGNATURE_PARAM_MESSAGE_ENCODING 334 +#define PIDX_SIGNATURE_PARAM_MGF1_DIGEST PIDX_PKEY_PARAM_MGF1_DIGEST +#define PIDX_SIGNATURE_PARAM_MGF1_PROPERTIES PIDX_PKEY_PARAM_MGF1_PROPERTIES +#define PIDX_SIGNATURE_PARAM_MU 335 +#define PIDX_SIGNATURE_PARAM_NONCE_TYPE 336 +#define PIDX_SIGNATURE_PARAM_PAD_MODE PIDX_PKEY_PARAM_PAD_MODE +#define PIDX_SIGNATURE_PARAM_PROPERTIES PIDX_PKEY_PARAM_PROPERTIES +#define PIDX_SIGNATURE_PARAM_PSS_SALTLEN 271 +#define PIDX_SIGNATURE_PARAM_SIGNATURE 337 +#define PIDX_SIGNATURE_PARAM_TEST_ENTROPY 338 +#define PIDX_SKEY_PARAM_KEY_LENGTH 339 +#define PIDX_SKEY_PARAM_RAW_BYTES 340 +#define PIDX_STORE_PARAM_ALIAS 341 +#define PIDX_STORE_PARAM_DIGEST 3 +#define PIDX_STORE_PARAM_EXPECT 342 +#define PIDX_STORE_PARAM_FINGERPRINT 343 +#define PIDX_STORE_PARAM_INPUT_TYPE 174 +#define PIDX_STORE_PARAM_ISSUER 296 +#define PIDX_STORE_PARAM_PROPERTIES 7 +#define PIDX_STORE_PARAM_SERIAL 344 +#define PIDX_STORE_PARAM_SUBJECT 345 diff --git a/deps/openssl/config/archs/aix64-gcc-as/asm/include/openssl/asn1.h b/deps/openssl/config/archs/aix64-gcc-as/asm/include/openssl/asn1.h index 21ff58e3d803d4..15e9e44674b0f3 100644 --- a/deps/openssl/config/archs/aix64-gcc-as/asm/include/openssl/asn1.h +++ b/deps/openssl/config/archs/aix64-gcc-as/asm/include/openssl/asn1.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/asn1.h.in * - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -21,6 +21,9 @@ # define HEADER_ASN1_H # endif +# ifndef OPENSSL_NO_STDIO +# include +# endif # include # include # include @@ -50,14 +53,14 @@ extern "C" { # define V_ASN1_PRIMITIVE_TAG 0x1f # define V_ASN1_PRIMATIVE_TAG /*compat*/ V_ASN1_PRIMITIVE_TAG -# define V_ASN1_APP_CHOOSE -2/* let the recipient choose */ -# define V_ASN1_OTHER -3/* used in ASN1_TYPE */ -# define V_ASN1_ANY -4/* used in ASN1 template code */ +# define V_ASN1_APP_CHOOSE -2 /* let the recipient choose */ +# define V_ASN1_OTHER -3 /* used in ASN1_TYPE */ +# define V_ASN1_ANY -4 /* used in ASN1 template code */ # define V_ASN1_UNDEF -1 /* ASN.1 tag values */ # define V_ASN1_EOC 0 -# define V_ASN1_BOOLEAN 1 /**/ +# define V_ASN1_BOOLEAN 1 # define V_ASN1_INTEGER 2 # define V_ASN1_BIT_STRING 3 # define V_ASN1_OCTET_STRING 4 @@ -70,19 +73,19 @@ extern "C" { # define V_ASN1_UTF8STRING 12 # define V_ASN1_SEQUENCE 16 # define V_ASN1_SET 17 -# define V_ASN1_NUMERICSTRING 18 /**/ +# define V_ASN1_NUMERICSTRING 18 # define V_ASN1_PRINTABLESTRING 19 # define V_ASN1_T61STRING 20 -# define V_ASN1_TELETEXSTRING 20/* alias */ -# define V_ASN1_VIDEOTEXSTRING 21 /**/ +# define V_ASN1_TELETEXSTRING 20 /* alias */ +# define V_ASN1_VIDEOTEXSTRING 21 # define V_ASN1_IA5STRING 22 # define V_ASN1_UTCTIME 23 -# define V_ASN1_GENERALIZEDTIME 24 /**/ -# define V_ASN1_GRAPHICSTRING 25 /**/ -# define V_ASN1_ISO64STRING 26 /**/ -# define V_ASN1_VISIBLESTRING 26/* alias */ -# define V_ASN1_GENERALSTRING 27 /**/ -# define V_ASN1_UNIVERSALSTRING 28 /**/ +# define V_ASN1_GENERALIZEDTIME 24 +# define V_ASN1_GRAPHICSTRING 25 +# define V_ASN1_ISO64STRING 26 +# define V_ASN1_VISIBLESTRING 26 /* alias */ +# define V_ASN1_GENERALSTRING 27 +# define V_ASN1_UNIVERSALSTRING 28 # define V_ASN1_BMPSTRING 30 /* @@ -155,7 +158,7 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_ALGOR, X509_ALGOR, X509_ALGOR) -# define ASN1_STRING_FLAG_BITS_LEFT 0x08/* Set if 0x07 has bits left value */ +# define ASN1_STRING_FLAG_BITS_LEFT 0x08 /* Set if 0x07 has bits left value */ /* * This indicates that the ASN1_STRING is not a real value but just a place * holder for the location where indefinite length constructed data should be @@ -275,7 +278,7 @@ typedef struct ASN1_TLC_st ASN1_TLC; /* This is just an opaque pointer */ typedef struct ASN1_VALUE_st ASN1_VALUE; -/* Declare ASN1 functions: the implement macro in in asn1t.h */ +/* Declare ASN1 functions: the implement macro is in asn1t.h */ /* * The mysterious 'extern' that's passed to some macros is innocuous, @@ -368,6 +371,7 @@ typedef struct ASN1_VALUE_st ASN1_VALUE; typedef void *d2i_of_void(void **, const unsigned char **, long); typedef int i2d_of_void(const void *, unsigned char **); +typedef int OSSL_i2d_of_void_ctx(const void *, unsigned char **, void *vctx); /*- * The following macros and typedefs allow an ASN1_ITEM @@ -996,6 +1000,8 @@ int ASN1_TYPE_get_int_octetstring(const ASN1_TYPE *a, long *num, unsigned char *data, int max_len); void *ASN1_item_unpack(const ASN1_STRING *oct, const ASN1_ITEM *it); +void *ASN1_item_unpack_ex(const ASN1_STRING *oct, const ASN1_ITEM *it, + OSSL_LIB_CTX *libctx, const char *propq); ASN1_STRING *ASN1_item_pack(void *obj, const ASN1_ITEM *it, ASN1_OCTET_STRING **oct); diff --git a/deps/openssl/config/archs/aix64-gcc-as/asm/include/openssl/bio.h b/deps/openssl/config/archs/aix64-gcc-as/asm/include/openssl/bio.h index f9aa74731c833c..e02f867beb0ec0 100644 --- a/deps/openssl/config/archs/aix64-gcc-as/asm/include/openssl/bio.h +++ b/deps/openssl/config/archs/aix64-gcc-as/asm/include/openssl/bio.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/bio.h.in * - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -67,8 +67,13 @@ extern "C" { # define BIO_TYPE_DGRAM_SCTP (24|BIO_TYPE_SOURCE_SINK|BIO_TYPE_DESCRIPTOR) # endif # define BIO_TYPE_CORE_TO_PROV (25|BIO_TYPE_SOURCE_SINK) +# define BIO_TYPE_DGRAM_PAIR (26|BIO_TYPE_SOURCE_SINK) +# define BIO_TYPE_DGRAM_MEM (27|BIO_TYPE_SOURCE_SINK) +/* Custom type starting index returned by BIO_get_new_index() */ #define BIO_TYPE_START 128 +/* Custom type maximum index that can be returned by BIO_get_new_index() */ +#define BIO_TYPE_MASK 0xFF /* * BIO_FILENAME_READ|BIO_CLOSE to open or close on free. @@ -171,6 +176,31 @@ extern "C" { # define BIO_CTRL_SET_INDENT 80 # define BIO_CTRL_GET_INDENT 81 +# define BIO_CTRL_DGRAM_GET_LOCAL_ADDR_CAP 82 +# define BIO_CTRL_DGRAM_GET_LOCAL_ADDR_ENABLE 83 +# define BIO_CTRL_DGRAM_SET_LOCAL_ADDR_ENABLE 84 +# define BIO_CTRL_DGRAM_GET_EFFECTIVE_CAPS 85 +# define BIO_CTRL_DGRAM_GET_CAPS 86 +# define BIO_CTRL_DGRAM_SET_CAPS 87 +# define BIO_CTRL_DGRAM_GET_NO_TRUNC 88 +# define BIO_CTRL_DGRAM_SET_NO_TRUNC 89 + +/* + * internal BIO: + * # define BIO_CTRL_SET_KTLS_TX_ZEROCOPY_SENDFILE 90 + */ + +# define BIO_CTRL_GET_RPOLL_DESCRIPTOR 91 +# define BIO_CTRL_GET_WPOLL_DESCRIPTOR 92 +# define BIO_CTRL_DGRAM_DETECT_PEER_ADDR 93 +# define BIO_CTRL_DGRAM_SET0_LOCAL_ADDR 94 + +# define BIO_DGRAM_CAP_NONE 0U +# define BIO_DGRAM_CAP_HANDLES_SRC_ADDR (1U << 0) +# define BIO_DGRAM_CAP_HANDLES_DST_ADDR (1U << 1) +# define BIO_DGRAM_CAP_PROVIDES_SRC_ADDR (1U << 2) +# define BIO_DGRAM_CAP_PROVIDES_DST_ADDR (1U << 3) + # ifndef OPENSSL_NO_KTLS # define BIO_get_ktls_send(b) \ (BIO_ctrl(b, BIO_CTRL_GET_KTLS_SEND, 0, NULL) > 0) @@ -208,7 +238,7 @@ extern "C" { # define BIO_FLAGS_NONCLEAR_RST 0x400 # define BIO_FLAGS_IN_EOF 0x800 -/* the BIO FLAGS values 0x1000 to 0x4000 are reserved for internal KTLS flags */ +/* the BIO FLAGS values 0x1000 to 0x8000 are reserved for internal KTLS flags */ typedef union bio_addr_st BIO_ADDR; typedef struct bio_addrinfo_st BIO_ADDRINFO; @@ -256,12 +286,14 @@ void BIO_clear_flags(BIO *b, int flags); # define BIO_RR_ACCEPT 0x03 /* These are passed by the BIO callback */ -# define BIO_CB_FREE 0x01 -# define BIO_CB_READ 0x02 -# define BIO_CB_WRITE 0x03 -# define BIO_CB_PUTS 0x04 -# define BIO_CB_GETS 0x05 -# define BIO_CB_CTRL 0x06 +# define BIO_CB_FREE 0x01 +# define BIO_CB_READ 0x02 +# define BIO_CB_WRITE 0x03 +# define BIO_CB_PUTS 0x04 +# define BIO_CB_GETS 0x05 +# define BIO_CB_CTRL 0x06 +# define BIO_CB_RECVMMSG 0x07 +# define BIO_CB_SENDMMSG 0x08 /* * The callback is called before and after the underling operation, The @@ -362,6 +394,36 @@ struct bio_dgram_sctp_prinfo { }; # endif +/* BIO_sendmmsg/BIO_recvmmsg-related definitions */ +typedef struct bio_msg_st { + void *data; + size_t data_len; + BIO_ADDR *peer, *local; + uint64_t flags; +} BIO_MSG; + +typedef struct bio_mmsg_cb_args_st { + BIO_MSG *msg; + size_t stride, num_msg; + uint64_t flags; + size_t *msgs_processed; +} BIO_MMSG_CB_ARGS; + +#define BIO_POLL_DESCRIPTOR_TYPE_NONE 0 +#define BIO_POLL_DESCRIPTOR_TYPE_SOCK_FD 1 +#define BIO_POLL_DESCRIPTOR_TYPE_SSL 2 +#define BIO_POLL_DESCRIPTOR_CUSTOM_START 8192 + +typedef struct bio_poll_descriptor_st { + uint32_t type; + union { + int fd; + void *custom; + uintptr_t custom_ui; + SSL *ssl; + } value; +} BIO_POLL_DESCRIPTOR; + /* * #define BIO_CONN_get_param_hostname BIO_ctrl */ @@ -428,10 +490,17 @@ struct bio_dgram_sctp_prinfo { # define BIO_C_SET_CONNECT_MODE 155 +# define BIO_C_SET_TFO 156 /* like BIO_C_SET_NBIO */ + +# define BIO_C_SET_SOCK_TYPE 157 +# define BIO_C_GET_SOCK_TYPE 158 +# define BIO_C_GET_DGRAM_BIO 159 + # define BIO_set_app_data(s,arg) BIO_set_ex_data(s,0,arg) # define BIO_get_app_data(s) BIO_get_ex_data(s,0) -# define BIO_set_nbio(b,n) BIO_ctrl(b,BIO_C_SET_NBIO,(n),NULL) +# define BIO_set_nbio(b,n) BIO_ctrl(b,BIO_C_SET_NBIO,(n),NULL) +# define BIO_set_tfo(b,n) BIO_ctrl(b,BIO_C_SET_TFO,(n),NULL) # ifndef OPENSSL_NO_SOCK /* IP families we support, for BIO_s_connect() and BIO_s_accept() */ @@ -452,7 +521,11 @@ struct bio_dgram_sctp_prinfo { # define BIO_get_conn_port(b) ((const char *)BIO_ptr_ctrl(b,BIO_C_GET_CONNECT,1)) # define BIO_get_conn_address(b) ((const BIO_ADDR *)BIO_ptr_ctrl(b,BIO_C_GET_CONNECT,2)) # define BIO_get_conn_ip_family(b) BIO_ctrl(b,BIO_C_GET_CONNECT,3,NULL) +# define BIO_get_conn_mode(b) BIO_ctrl(b,BIO_C_GET_CONNECT,4,NULL) # define BIO_set_conn_mode(b,n) BIO_ctrl(b,BIO_C_SET_CONNECT_MODE,(n),NULL) +# define BIO_set_sock_type(b,t) BIO_ctrl(b,BIO_C_SET_SOCK_TYPE,(t),NULL) +# define BIO_get_sock_type(b) BIO_ctrl(b,BIO_C_GET_SOCK_TYPE,0,NULL) +# define BIO_get0_dgram_bio(b, p) BIO_ctrl(b,BIO_C_GET_DGRAM_BIO,0,(void *)(BIO **)(p)) /* BIO_s_accept() */ # define BIO_set_accept_name(b,name) BIO_ctrl(b,BIO_C_SET_ACCEPT,0, \ @@ -469,6 +542,7 @@ struct bio_dgram_sctp_prinfo { (char *)(bio)) # define BIO_set_accept_ip_family(b,f) BIO_int_ctrl(b,BIO_C_SET_ACCEPT,4,f) # define BIO_get_accept_ip_family(b) BIO_ctrl(b,BIO_C_GET_ACCEPT,4,NULL) +# define BIO_set_tfo_accept(b,n) BIO_ctrl(b,BIO_C_SET_ACCEPT,5,(n)?(void *)"a":NULL) /* Aliases kept for backward compatibility */ # define BIO_BIND_NORMAL 0 @@ -596,8 +670,32 @@ int BIO_ctrl_reset_read_request(BIO *b); (int)BIO_ctrl(b, BIO_CTRL_DGRAM_GET_PEER, 0, (char *)(peer)) # define BIO_dgram_set_peer(b,peer) \ (int)BIO_ctrl(b, BIO_CTRL_DGRAM_SET_PEER, 0, (char *)(peer)) +# define BIO_dgram_detect_peer_addr(b,peer) \ + (int)BIO_ctrl(b, BIO_CTRL_DGRAM_DETECT_PEER_ADDR, 0, (char *)(peer)) # define BIO_dgram_get_mtu_overhead(b) \ (unsigned int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_MTU_OVERHEAD, 0, NULL) +# define BIO_dgram_get_local_addr_cap(b) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_LOCAL_ADDR_CAP, 0, NULL) +# define BIO_dgram_get_local_addr_enable(b, penable) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_LOCAL_ADDR_ENABLE, 0, (char *)(penable)) +# define BIO_dgram_set_local_addr_enable(b, enable) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET_LOCAL_ADDR_ENABLE, (enable), NULL) +# define BIO_dgram_get_effective_caps(b) \ + (uint32_t)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_EFFECTIVE_CAPS, 0, NULL) +# define BIO_dgram_get_caps(b) \ + (uint32_t)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_CAPS, 0, NULL) +# define BIO_dgram_set_caps(b, caps) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET_CAPS, (long)(caps), NULL) +# define BIO_dgram_get_no_trunc(b) \ + (unsigned int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_NO_TRUNC, 0, NULL) +# define BIO_dgram_set_no_trunc(b, enable) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET_NO_TRUNC, (enable), NULL) +# define BIO_dgram_get_mtu(b) \ + (unsigned int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_MTU, 0, NULL) +# define BIO_dgram_set_mtu(b, mtu) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET_MTU, (mtu), NULL) +# define BIO_dgram_set0_local_addr(b, addr) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET0_LOCAL_ADDR, 0, (addr)) /* ctrl macros for BIO_f_prefix */ # define BIO_set_prefix(b,p) BIO_ctrl((b), BIO_CTRL_SET_PREFIX, 0, (void *)(p)) @@ -640,10 +738,18 @@ void BIO_vfree(BIO *a); int BIO_up_ref(BIO *a); int BIO_read(BIO *b, void *data, int dlen); int BIO_read_ex(BIO *b, void *data, size_t dlen, size_t *readbytes); +__owur int BIO_recvmmsg(BIO *b, BIO_MSG *msg, + size_t stride, size_t num_msg, uint64_t flags, + size_t *msgs_processed); int BIO_gets(BIO *bp, char *buf, int size); int BIO_get_line(BIO *bio, char *buf, int size); int BIO_write(BIO *b, const void *data, int dlen); int BIO_write_ex(BIO *b, const void *data, size_t dlen, size_t *written); +__owur int BIO_sendmmsg(BIO *b, BIO_MSG *msg, + size_t stride, size_t num_msg, uint64_t flags, + size_t *msgs_processed); +__owur int BIO_get_rpoll_descriptor(BIO *b, BIO_POLL_DESCRIPTOR *desc); +__owur int BIO_get_wpoll_descriptor(BIO *b, BIO_POLL_DESCRIPTOR *desc); int BIO_puts(BIO *bp, const char *buf); int BIO_indent(BIO *b, int indent, int max); long BIO_ctrl(BIO *bp, int cmd, long larg, void *parg); @@ -667,6 +773,9 @@ int BIO_nwrite0(BIO *bio, char **buf); int BIO_nwrite(BIO *bio, char **buf, int num); const BIO_METHOD *BIO_s_mem(void); +# ifndef OPENSSL_NO_DGRAM +const BIO_METHOD *BIO_s_dgram_mem(void); +# endif const BIO_METHOD *BIO_s_secmem(void); BIO *BIO_new_mem_buf(const void *buf, int len); # ifndef OPENSSL_NO_SOCK @@ -686,6 +795,7 @@ const BIO_METHOD *BIO_f_nbio_test(void); const BIO_METHOD *BIO_f_prefix(void); const BIO_METHOD *BIO_s_core(void); # ifndef OPENSSL_NO_DGRAM +const BIO_METHOD *BIO_s_dgram_pair(void); const BIO_METHOD *BIO_s_datagram(void); int BIO_dgram_non_fatal_error(int error); BIO *BIO_new_dgram(int fd, int close_flag); @@ -704,6 +814,7 @@ int BIO_dgram_sctp_msg_waiting(BIO *b); # ifndef OPENSSL_NO_SOCK int BIO_sock_should_retry(int i); int BIO_sock_non_fatal_error(int error); +int BIO_err_is_non_fatal(unsigned int errcode); int BIO_socket_wait(int fd, int for_read, time_t max_time); # endif int BIO_wait(BIO *bio, time_t max_time, unsigned int nap_milliseconds); @@ -726,6 +837,8 @@ int BIO_hex_string(BIO *out, int indent, int width, const void *data, # ifndef OPENSSL_NO_SOCK BIO_ADDR *BIO_ADDR_new(void); +int BIO_ADDR_copy(BIO_ADDR *dst, const BIO_ADDR *src); +BIO_ADDR *BIO_ADDR_dup(const BIO_ADDR *ap); int BIO_ADDR_rawmake(BIO_ADDR *ap, int family, const void *where, size_t wherelen, unsigned short port); void BIO_ADDR_free(BIO_ADDR *); @@ -788,6 +901,7 @@ int BIO_sock_info(int sock, # define BIO_SOCK_KEEPALIVE 0x04 # define BIO_SOCK_NONBLOCK 0x08 # define BIO_SOCK_NODELAY 0x10 +# define BIO_SOCK_TFO 0x20 int BIO_socket(int domain, int socktype, int protocol, int options); int BIO_connect(int sock, const BIO_ADDR *addr, int options); @@ -805,6 +919,11 @@ BIO *BIO_new_fd(int fd, int close_flag); int BIO_new_bio_pair(BIO **bio1, size_t writebuf1, BIO **bio2, size_t writebuf2); +# ifndef OPENSSL_NO_DGRAM +int BIO_new_bio_dgram_pair(BIO **bio1, size_t writebuf1, + BIO **bio2, size_t writebuf2); +# endif + /* * If successful, returns 1 and in *bio1, *bio2 two BIO pair endpoints. * Otherwise returns 0 and sets *bio1 and *bio2 to NULL. Size 0 uses default @@ -849,38 +968,54 @@ ossl_bio__attr__((__format__(ossl_bio__printf__, 3, 0))); BIO_METHOD *BIO_meth_new(int type, const char *name); void BIO_meth_free(BIO_METHOD *biom); -int (*BIO_meth_get_write(const BIO_METHOD *biom)) (BIO *, const char *, int); -int (*BIO_meth_get_write_ex(const BIO_METHOD *biom)) (BIO *, const char *, size_t, - size_t *); int BIO_meth_set_write(BIO_METHOD *biom, int (*write) (BIO *, const char *, int)); int BIO_meth_set_write_ex(BIO_METHOD *biom, int (*bwrite) (BIO *, const char *, size_t, size_t *)); -int (*BIO_meth_get_read(const BIO_METHOD *biom)) (BIO *, char *, int); -int (*BIO_meth_get_read_ex(const BIO_METHOD *biom)) (BIO *, char *, size_t, size_t *); +int BIO_meth_set_sendmmsg(BIO_METHOD *biom, + int (*f) (BIO *, BIO_MSG *, size_t, size_t, + uint64_t, size_t *)); int BIO_meth_set_read(BIO_METHOD *biom, int (*read) (BIO *, char *, int)); int BIO_meth_set_read_ex(BIO_METHOD *biom, int (*bread) (BIO *, char *, size_t, size_t *)); -int (*BIO_meth_get_puts(const BIO_METHOD *biom)) (BIO *, const char *); +int BIO_meth_set_recvmmsg(BIO_METHOD *biom, + int (*f) (BIO *, BIO_MSG *, size_t, size_t, + uint64_t, size_t *)); int BIO_meth_set_puts(BIO_METHOD *biom, int (*puts) (BIO *, const char *)); -int (*BIO_meth_get_gets(const BIO_METHOD *biom)) (BIO *, char *, int); int BIO_meth_set_gets(BIO_METHOD *biom, int (*ossl_gets) (BIO *, char *, int)); -long (*BIO_meth_get_ctrl(const BIO_METHOD *biom)) (BIO *, int, long, void *); int BIO_meth_set_ctrl(BIO_METHOD *biom, long (*ctrl) (BIO *, int, long, void *)); -int (*BIO_meth_get_create(const BIO_METHOD *bion)) (BIO *); int BIO_meth_set_create(BIO_METHOD *biom, int (*create) (BIO *)); -int (*BIO_meth_get_destroy(const BIO_METHOD *biom)) (BIO *); int BIO_meth_set_destroy(BIO_METHOD *biom, int (*destroy) (BIO *)); -long (*BIO_meth_get_callback_ctrl(const BIO_METHOD *biom)) - (BIO *, int, BIO_info_cb *); int BIO_meth_set_callback_ctrl(BIO_METHOD *biom, long (*callback_ctrl) (BIO *, int, BIO_info_cb *)); - +# ifndef OPENSSL_NO_DEPRECATED_3_5 +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_write(const BIO_METHOD *biom)) (BIO *, const char *, + int); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_write_ex(const BIO_METHOD *biom)) (BIO *, const char *, + size_t, size_t *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_sendmmsg(const BIO_METHOD *biom))(BIO *, BIO_MSG *, + size_t, size_t, + uint64_t, size_t *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_read(const BIO_METHOD *biom)) (BIO *, char *, int); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_read_ex(const BIO_METHOD *biom)) (BIO *, char *, + size_t, size_t *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_recvmmsg(const BIO_METHOD *biom))(BIO *, BIO_MSG *, + size_t, size_t, + uint64_t, size_t *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_puts(const BIO_METHOD *biom)) (BIO *, const char *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_gets(const BIO_METHOD *biom)) (BIO *, char *, int); +OSSL_DEPRECATEDIN_3_5 long (*BIO_meth_get_ctrl(const BIO_METHOD *biom)) (BIO *, int, + long, void *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_create(const BIO_METHOD *bion)) (BIO *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_destroy(const BIO_METHOD *biom)) (BIO *); +OSSL_DEPRECATEDIN_3_5 long (*BIO_meth_get_callback_ctrl(const BIO_METHOD *biom)) (BIO *, int, + BIO_info_cb *); +# endif # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/aix64-gcc-as/asm/include/openssl/cmp.h b/deps/openssl/config/archs/aix64-gcc-as/asm/include/openssl/cmp.h index 49825570d8c303..05aed3029d594c 100644 --- a/deps/openssl/config/archs/aix64-gcc-as/asm/include/openssl/cmp.h +++ b/deps/openssl/config/archs/aix64-gcc-as/asm/include/openssl/cmp.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/cmp.h.in * - * Copyright 2007-2023 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2007-2024 The OpenSSL Project Authors. All Rights Reserved. * Copyright Nokia 2007-2019 * Copyright Siemens AG 2015-2019 * @@ -35,7 +35,9 @@ extern "C" { # endif -# define OSSL_CMP_PVNO 2 +# define OSSL_CMP_PVNO_2 2 +# define OSSL_CMP_PVNO_3 3 +# define OSSL_CMP_PVNO OSSL_CMP_PVNO_2 /* v2 is the default */ /*- * PKIFailureInfo ::= BIT STRING { @@ -137,7 +139,6 @@ extern "C" { # if OSSL_CMP_PKIFAILUREINFO_MAX_BIT_PATTERN > INT_MAX # error CMP_PKIFAILUREINFO_MAX bit pattern does not fit in type int # endif - typedef ASN1_BIT_STRING OSSL_CMP_PKIFAILUREINFO; # define OSSL_CMP_CTX_FAILINFO_badAlg (1 << 0) @@ -203,8 +204,8 @@ typedef ASN1_BIT_STRING OSSL_CMP_PKIFAILUREINFO; # define OSSL_CMP_PKISTATUS_revocationWarning 4 # define OSSL_CMP_PKISTATUS_revocationNotification 5 # define OSSL_CMP_PKISTATUS_keyUpdateWarning 6 - typedef ASN1_INTEGER OSSL_CMP_PKISTATUS; + DECLARE_ASN1_ITEM(OSSL_CMP_PKISTATUS) # define OSSL_CMP_CERTORENCCERT_CERTIFICATE 0 @@ -274,6 +275,46 @@ SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CMP_ITAV, OSSL_CMP_ITAV, OSSL_CMP_ITAV) #define sk_OSSL_CMP_ITAV_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_CMP_ITAV) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_CMP_ITAV_sk_type(sk), ossl_check_OSSL_CMP_ITAV_copyfunc_type(copyfunc), ossl_check_OSSL_CMP_ITAV_freefunc_type(freefunc))) #define sk_OSSL_CMP_ITAV_set_cmp_func(sk, cmp) ((sk_OSSL_CMP_ITAV_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CMP_ITAV_sk_type(sk), ossl_check_OSSL_CMP_ITAV_compfunc_type(cmp))) + +typedef struct ossl_cmp_crlstatus_st OSSL_CMP_CRLSTATUS; +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CMP_CRLSTATUS, OSSL_CMP_CRLSTATUS, OSSL_CMP_CRLSTATUS) +#define sk_OSSL_CMP_CRLSTATUS_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_value(sk, idx) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_value(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk), (idx))) +#define sk_OSSL_CMP_CRLSTATUS_new(cmp) ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_new(ossl_check_OSSL_CMP_CRLSTATUS_compfunc_type(cmp))) +#define sk_OSSL_CMP_CRLSTATUS_new_null() ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_new_null()) +#define sk_OSSL_CMP_CRLSTATUS_new_reserve(cmp, n) ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_CMP_CRLSTATUS_compfunc_type(cmp), (n))) +#define sk_OSSL_CMP_CRLSTATUS_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), (n)) +#define sk_OSSL_CMP_CRLSTATUS_free(sk) OPENSSL_sk_free(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_delete(sk, i) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_delete(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), (i))) +#define sk_OSSL_CMP_CRLSTATUS_delete_ptr(sk, ptr) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr))) +#define sk_OSSL_CMP_CRLSTATUS_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr)) +#define sk_OSSL_CMP_CRLSTATUS_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr)) +#define sk_OSSL_CMP_CRLSTATUS_pop(sk) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_pop(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk))) +#define sk_OSSL_CMP_CRLSTATUS_shift(sk) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_shift(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk))) +#define sk_OSSL_CMP_CRLSTATUS_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk),ossl_check_OSSL_CMP_CRLSTATUS_freefunc_type(freefunc)) +#define sk_OSSL_CMP_CRLSTATUS_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr), (idx)) +#define sk_OSSL_CMP_CRLSTATUS_set(sk, idx, ptr) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_set(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), (idx), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr))) +#define sk_OSSL_CMP_CRLSTATUS_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr)) +#define sk_OSSL_CMP_CRLSTATUS_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr)) +#define sk_OSSL_CMP_CRLSTATUS_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr), pnum) +#define sk_OSSL_CMP_CRLSTATUS_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_dup(sk) ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_dup(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk))) +#define sk_OSSL_CMP_CRLSTATUS_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_copyfunc_type(copyfunc), ossl_check_OSSL_CMP_CRLSTATUS_freefunc_type(freefunc))) +#define sk_OSSL_CMP_CRLSTATUS_set_cmp_func(sk, cmp) ((sk_OSSL_CMP_CRLSTATUS_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_compfunc_type(cmp))) + + +typedef OSSL_CRMF_ATTRIBUTETYPEANDVALUE OSSL_CMP_ATAV; +# define OSSL_CMP_ATAV_free OSSL_CRMF_ATTRIBUTETYPEANDVALUE_free +typedef STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) OSSL_CMP_ATAVS; +DECLARE_ASN1_FUNCTIONS(OSSL_CMP_ATAVS) +# define stack_st_OSSL_CMP_ATAV stack_st_OSSL_CRMF_ATTRIBUTETYPEANDVALUE +# define sk_OSSL_CMP_ATAV_num sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_num +# define sk_OSSL_CMP_ATAV_value sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_value +# define sk_OSSL_CMP_ATAV_push sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_push +# define sk_OSSL_CMP_ATAV_pop_free sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_pop_free + typedef struct ossl_cmp_revrepcontent_st OSSL_CMP_REVREPCONTENT; typedef struct ossl_cmp_pkisi_st OSSL_CMP_PKISI; DECLARE_ASN1_FUNCTIONS(OSSL_CMP_PKISI) @@ -375,21 +416,75 @@ void OSSL_CMP_ITAV_set0(OSSL_CMP_ITAV *itav, ASN1_OBJECT *type, ASN1_TYPE *value); ASN1_OBJECT *OSSL_CMP_ITAV_get0_type(const OSSL_CMP_ITAV *itav); ASN1_TYPE *OSSL_CMP_ITAV_get0_value(const OSSL_CMP_ITAV *itav); -int OSSL_CMP_ITAV_push0_stack_item(STACK_OF(OSSL_CMP_ITAV) **itav_sk_p, +int OSSL_CMP_ITAV_push0_stack_item(STACK_OF(OSSL_CMP_ITAV) **sk_p, OSSL_CMP_ITAV *itav); void OSSL_CMP_ITAV_free(OSSL_CMP_ITAV *itav); + +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new0_certProfile(STACK_OF(ASN1_UTF8STRING) + *certProfile); +int OSSL_CMP_ITAV_get0_certProfile(const OSSL_CMP_ITAV *itav, + STACK_OF(ASN1_UTF8STRING) **out); +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new_caCerts(const STACK_OF(X509) *caCerts); +int OSSL_CMP_ITAV_get0_caCerts(const OSSL_CMP_ITAV *itav, STACK_OF(X509) **out); + +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new_rootCaCert(const X509 *rootCaCert); +int OSSL_CMP_ITAV_get0_rootCaCert(const OSSL_CMP_ITAV *itav, X509 **out); +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new_rootCaKeyUpdate(const X509 *newWithNew, + const X509 *newWithOld, + const X509 *oldWithNew); +int OSSL_CMP_ITAV_get0_rootCaKeyUpdate(const OSSL_CMP_ITAV *itav, + X509 **newWithNew, + X509 **newWithOld, + X509 **oldWithNew); + +OSSL_CMP_CRLSTATUS *OSSL_CMP_CRLSTATUS_create(const X509_CRL *crl, + const X509 *cert, int only_DN); +OSSL_CMP_CRLSTATUS *OSSL_CMP_CRLSTATUS_new1(const DIST_POINT_NAME *dpn, + const GENERAL_NAMES *issuer, + const ASN1_TIME *thisUpdate); +int OSSL_CMP_CRLSTATUS_get0(const OSSL_CMP_CRLSTATUS *crlstatus, + DIST_POINT_NAME **dpn, GENERAL_NAMES **issuer, + ASN1_TIME **thisUpdate); +void OSSL_CMP_CRLSTATUS_free(OSSL_CMP_CRLSTATUS *crlstatus); +OSSL_CMP_ITAV +*OSSL_CMP_ITAV_new0_crlStatusList(STACK_OF(OSSL_CMP_CRLSTATUS) *crlStatusList); +int OSSL_CMP_ITAV_get0_crlStatusList(const OSSL_CMP_ITAV *itav, + STACK_OF(OSSL_CMP_CRLSTATUS) **out); +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new_crls(const X509_CRL *crls); +int OSSL_CMP_ITAV_get0_crls(const OSSL_CMP_ITAV *it, STACK_OF(X509_CRL) **out); +OSSL_CMP_ITAV +*OSSL_CMP_ITAV_new0_certReqTemplate(OSSL_CRMF_CERTTEMPLATE *certTemplate, + OSSL_CMP_ATAVS *keySpec); +int OSSL_CMP_ITAV_get1_certReqTemplate(const OSSL_CMP_ITAV *itav, + OSSL_CRMF_CERTTEMPLATE **certTemplate, + OSSL_CMP_ATAVS **keySpec); + +OSSL_CMP_ATAV *OSSL_CMP_ATAV_create(ASN1_OBJECT *type, ASN1_TYPE *value); +void OSSL_CMP_ATAV_set0(OSSL_CMP_ATAV *itav, ASN1_OBJECT *type, + ASN1_TYPE *value); +ASN1_OBJECT *OSSL_CMP_ATAV_get0_type(const OSSL_CMP_ATAV *itav); +ASN1_TYPE *OSSL_CMP_ATAV_get0_value(const OSSL_CMP_ATAV *itav); +OSSL_CMP_ATAV *OSSL_CMP_ATAV_new_algId(const X509_ALGOR *alg); +X509_ALGOR *OSSL_CMP_ATAV_get0_algId(const OSSL_CMP_ATAV *atav); +OSSL_CMP_ATAV *OSSL_CMP_ATAV_new_rsaKeyLen(int len); +int OSSL_CMP_ATAV_get_rsaKeyLen(const OSSL_CMP_ATAV *atav); +int OSSL_CMP_ATAV_push1(OSSL_CMP_ATAVS **sk_p, const OSSL_CMP_ATAV *atav); + void OSSL_CMP_MSG_free(OSSL_CMP_MSG *msg); /* from cmp_ctx.c */ OSSL_CMP_CTX *OSSL_CMP_CTX_new(OSSL_LIB_CTX *libctx, const char *propq); void OSSL_CMP_CTX_free(OSSL_CMP_CTX *ctx); int OSSL_CMP_CTX_reinit(OSSL_CMP_CTX *ctx); +OSSL_LIB_CTX *OSSL_CMP_CTX_get0_libctx(const OSSL_CMP_CTX *ctx); +const char *OSSL_CMP_CTX_get0_propq(const OSSL_CMP_CTX *ctx); /* CMP general options: */ # define OSSL_CMP_OPT_LOG_VERBOSITY 0 /* CMP transfer options: */ -# define OSSL_CMP_OPT_KEEP_ALIVE 10 -# define OSSL_CMP_OPT_MSG_TIMEOUT 11 +# define OSSL_CMP_OPT_KEEP_ALIVE 10 +# define OSSL_CMP_OPT_MSG_TIMEOUT 11 # define OSSL_CMP_OPT_TOTAL_TIMEOUT 12 +# define OSSL_CMP_OPT_USE_TLS 13 /* CMP request options: */ # define OSSL_CMP_OPT_VALIDITY_DAYS 20 # define OSSL_CMP_OPT_SUBJECTALTNAME_NODEFAULT 21 @@ -407,6 +502,7 @@ int OSSL_CMP_CTX_reinit(OSSL_CMP_CTX *ctx); # define OSSL_CMP_OPT_DIGEST_ALGNID 34 # define OSSL_CMP_OPT_IGNORE_KEYUSAGE 35 # define OSSL_CMP_OPT_PERMIT_TA_IN_EXTRACERTS_FOR_IR 36 +# define OSSL_CMP_OPT_NO_CACHE_EXTRACERTS 37 int OSSL_CMP_CTX_set_option(OSSL_CMP_CTX *ctx, int opt, int val); int OSSL_CMP_CTX_get_option(const OSSL_CMP_CTX *ctx, int opt); /* CMP-specific callback for logging and outputting the error queue: */ @@ -420,9 +516,11 @@ int OSSL_CMP_CTX_set1_server(OSSL_CMP_CTX *ctx, const char *address); int OSSL_CMP_CTX_set_serverPort(OSSL_CMP_CTX *ctx, int port); int OSSL_CMP_CTX_set1_proxy(OSSL_CMP_CTX *ctx, const char *name); int OSSL_CMP_CTX_set1_no_proxy(OSSL_CMP_CTX *ctx, const char *names); +# ifndef OPENSSL_NO_HTTP int OSSL_CMP_CTX_set_http_cb(OSSL_CMP_CTX *ctx, OSSL_HTTP_bio_cb_t cb); int OSSL_CMP_CTX_set_http_cb_arg(OSSL_CMP_CTX *ctx, void *arg); void *OSSL_CMP_CTX_get_http_cb_arg(const OSSL_CMP_CTX *ctx); +# endif typedef OSSL_CMP_MSG *(*OSSL_CMP_transfer_cb_t) (OSSL_CMP_CTX *ctx, const OSSL_CMP_MSG *req); int OSSL_CMP_CTX_set_transfer_cb(OSSL_CMP_CTX *ctx, OSSL_CMP_transfer_cb_t cb); @@ -432,7 +530,9 @@ void *OSSL_CMP_CTX_get_transfer_cb_arg(const OSSL_CMP_CTX *ctx); int OSSL_CMP_CTX_set1_srvCert(OSSL_CMP_CTX *ctx, X509 *cert); int OSSL_CMP_CTX_set1_expected_sender(OSSL_CMP_CTX *ctx, const X509_NAME *name); int OSSL_CMP_CTX_set0_trustedStore(OSSL_CMP_CTX *ctx, X509_STORE *store); +# define OSSL_CMP_CTX_set0_trusted OSSL_CMP_CTX_set0_trustedStore X509_STORE *OSSL_CMP_CTX_get0_trustedStore(const OSSL_CMP_CTX *ctx); +# define OSSL_CMP_CTX_get0_trusted OSSL_CMP_CTX_get0_trustedStore int OSSL_CMP_CTX_set1_untrusted(OSSL_CMP_CTX *ctx, STACK_OF(X509) *certs); STACK_OF(X509) *OSSL_CMP_CTX_get0_untrusted(const OSSL_CMP_CTX *ctx); /* client authentication: */ @@ -448,12 +548,15 @@ int OSSL_CMP_CTX_set1_secretValue(OSSL_CMP_CTX *ctx, int OSSL_CMP_CTX_set1_recipient(OSSL_CMP_CTX *ctx, const X509_NAME *name); int OSSL_CMP_CTX_push0_geninfo_ITAV(OSSL_CMP_CTX *ctx, OSSL_CMP_ITAV *itav); int OSSL_CMP_CTX_reset_geninfo_ITAVs(OSSL_CMP_CTX *ctx); +STACK_OF(OSSL_CMP_ITAV) + *OSSL_CMP_CTX_get0_geninfo_ITAVs(const OSSL_CMP_CTX *ctx); int OSSL_CMP_CTX_set1_extraCertsOut(OSSL_CMP_CTX *ctx, STACK_OF(X509) *extraCertsOut); /* certificate template: */ int OSSL_CMP_CTX_set0_newPkey(OSSL_CMP_CTX *ctx, int priv, EVP_PKEY *pkey); EVP_PKEY *OSSL_CMP_CTX_get0_newPkey(const OSSL_CMP_CTX *ctx, int priv); int OSSL_CMP_CTX_set1_issuer(OSSL_CMP_CTX *ctx, const X509_NAME *name); +int OSSL_CMP_CTX_set1_serialNumber(OSSL_CMP_CTX *ctx, const ASN1_INTEGER *sn); int OSSL_CMP_CTX_set1_subjectName(OSSL_CMP_CTX *ctx, const X509_NAME *name); int OSSL_CMP_CTX_push1_subjectAltName(OSSL_CMP_CTX *ctx, const GENERAL_NAME *name); @@ -477,6 +580,7 @@ int OSSL_CMP_CTX_get_status(const OSSL_CMP_CTX *ctx); OSSL_CMP_PKIFREETEXT *OSSL_CMP_CTX_get0_statusString(const OSSL_CMP_CTX *ctx); int OSSL_CMP_CTX_get_failInfoCode(const OSSL_CMP_CTX *ctx); # define OSSL_CMP_PKISI_BUFLEN 1024 +X509 *OSSL_CMP_CTX_get0_validatedSrvCert(const OSSL_CMP_CTX *ctx); X509 *OSSL_CMP_CTX_get0_newCert(const OSSL_CMP_CTX *ctx); STACK_OF(X509) *OSSL_CMP_CTX_get1_newChain(const OSSL_CMP_CTX *ctx); STACK_OF(X509) *OSSL_CMP_CTX_get1_caPubs(const OSSL_CMP_CTX *ctx); @@ -498,10 +602,13 @@ OSSL_CMP_STATUSINFO_new(int status, int fail_info, const char *text); ASN1_OCTET_STRING *OSSL_CMP_HDR_get0_transactionID(const OSSL_CMP_PKIHEADER *hdr); ASN1_OCTET_STRING *OSSL_CMP_HDR_get0_recipNonce(const OSSL_CMP_PKIHEADER *hdr); +STACK_OF(OSSL_CMP_ITAV) + *OSSL_CMP_HDR_get0_geninfo_ITAVs(const OSSL_CMP_PKIHEADER *hdr); /* from cmp_msg.c */ OSSL_CMP_PKIHEADER *OSSL_CMP_MSG_get0_header(const OSSL_CMP_MSG *msg); int OSSL_CMP_MSG_get_bodytype(const OSSL_CMP_MSG *msg); +X509_PUBKEY *OSSL_CMP_MSG_get0_certreq_publickey(const OSSL_CMP_MSG *msg); int OSSL_CMP_MSG_update_transactionID(OSSL_CMP_CTX *ctx, OSSL_CMP_MSG *msg); int OSSL_CMP_MSG_update_recipNonce(OSSL_CMP_CTX *ctx, OSSL_CMP_MSG *msg); OSSL_CRMF_MSG *OSSL_CMP_CTX_setup_CRM(OSSL_CMP_CTX *ctx, int for_KUR, int rid); @@ -517,8 +624,10 @@ int OSSL_CMP_validate_cert_path(const OSSL_CMP_CTX *ctx, X509_STORE *trusted_store, X509 *cert); /* from cmp_http.c */ +# ifndef OPENSSL_NO_HTTP OSSL_CMP_MSG *OSSL_CMP_MSG_http_perform(OSSL_CMP_CTX *ctx, const OSSL_CMP_MSG *req); +# endif /* from cmp_server.c */ typedef struct ossl_cmp_srv_ctx_st OSSL_CMP_SRV_CTX; @@ -561,6 +670,13 @@ int OSSL_CMP_SRV_CTX_init(OSSL_CMP_SRV_CTX *srv_ctx, void *custom_ctx, OSSL_CMP_SRV_error_cb_t process_error, OSSL_CMP_SRV_certConf_cb_t process_certConf, OSSL_CMP_SRV_pollReq_cb_t process_pollReq); +typedef int (*OSSL_CMP_SRV_delayed_delivery_cb_t)(OSSL_CMP_SRV_CTX *srv_ctx, + const OSSL_CMP_MSG *req); +typedef int (*OSSL_CMP_SRV_clean_transaction_cb_t)(OSSL_CMP_SRV_CTX *srv_ctx, + const ASN1_OCTET_STRING *id); +int OSSL_CMP_SRV_CTX_init_trans(OSSL_CMP_SRV_CTX *srv_ctx, + OSSL_CMP_SRV_delayed_delivery_cb_t delay, + OSSL_CMP_SRV_clean_transaction_cb_t clean); OSSL_CMP_CTX *OSSL_CMP_SRV_CTX_get0_cmp_ctx(const OSSL_CMP_SRV_CTX *srv_ctx); void *OSSL_CMP_SRV_CTX_get0_custom_ctx(const OSSL_CMP_SRV_CTX *srv_ctx); int OSSL_CMP_SRV_CTX_set_send_unprotected_errors(OSSL_CMP_SRV_CTX *srv_ctx, @@ -577,6 +693,8 @@ X509 *OSSL_CMP_exec_certreq(OSSL_CMP_CTX *ctx, int req_type, # define OSSL_CMP_CR 2 # define OSSL_CMP_P10CR 4 # define OSSL_CMP_KUR 7 +# define OSSL_CMP_GENM 21 +# define OSSL_CMP_ERROR 23 # define OSSL_CMP_exec_IR_ses(ctx) \ OSSL_CMP_exec_certreq(ctx, OSSL_CMP_IR, NULL) # define OSSL_CMP_exec_CR_ses(ctx) \ @@ -590,6 +708,18 @@ int OSSL_CMP_try_certreq(OSSL_CMP_CTX *ctx, int req_type, int OSSL_CMP_exec_RR_ses(OSSL_CMP_CTX *ctx); STACK_OF(OSSL_CMP_ITAV) *OSSL_CMP_exec_GENM_ses(OSSL_CMP_CTX *ctx); +/* from cmp_genm.c */ +int OSSL_CMP_get1_caCerts(OSSL_CMP_CTX *ctx, STACK_OF(X509) **out); +int OSSL_CMP_get1_rootCaKeyUpdate(OSSL_CMP_CTX *ctx, + const X509 *oldWithOld, X509 **newWithNew, + X509 **newWithOld, X509 **oldWithNew); +int OSSL_CMP_get1_crlUpdate(OSSL_CMP_CTX *ctx, const X509 *crlcert, + const X509_CRL *last_crl, + X509_CRL **crl); +int OSSL_CMP_get1_certReqTemplate(OSSL_CMP_CTX *ctx, + OSSL_CRMF_CERTTEMPLATE **certTemplate, + OSSL_CMP_ATAVS **keySpec); + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/aix64-gcc-as/asm/include/openssl/cms.h b/deps/openssl/config/archs/aix64-gcc-as/asm/include/openssl/cms.h index 3b453e6a2187a2..63afab563557b0 100644 --- a/deps/openssl/config/archs/aix64-gcc-as/asm/include/openssl/cms.h +++ b/deps/openssl/config/archs/aix64-gcc-as/asm/include/openssl/cms.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/cms.h.in * - * Copyright 2008-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2008-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -31,8 +31,10 @@ extern "C" { # endif +typedef struct CMS_EnvelopedData_st CMS_EnvelopedData; typedef struct CMS_ContentInfo_st CMS_ContentInfo; typedef struct CMS_SignerInfo_st CMS_SignerInfo; +typedef struct CMS_SignedData_st CMS_SignedData; typedef struct CMS_CertificateChoices CMS_CertificateChoices; typedef struct CMS_RevocationInfoChoice_st CMS_RevocationInfoChoice; typedef struct CMS_RecipientInfo_st CMS_RecipientInfo; @@ -147,10 +149,14 @@ SKM_DEFINE_STACK_OF_INTERNAL(CMS_RevocationInfoChoice, CMS_RevocationInfoChoice, #define sk_CMS_RevocationInfoChoice_set_cmp_func(sk, cmp) ((sk_CMS_RevocationInfoChoice_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_CMS_RevocationInfoChoice_sk_type(sk), ossl_check_CMS_RevocationInfoChoice_compfunc_type(cmp))) +DECLARE_ASN1_ITEM(CMS_EnvelopedData) +DECLARE_ASN1_ALLOC_FUNCTIONS(CMS_SignedData) DECLARE_ASN1_FUNCTIONS(CMS_ContentInfo) DECLARE_ASN1_FUNCTIONS(CMS_ReceiptRequest) DECLARE_ASN1_PRINT_FUNCTION(CMS_ContentInfo) +DECLARE_ASN1_DUP_FUNCTION(CMS_EnvelopedData) + CMS_ContentInfo *CMS_ContentInfo_new_ex(OSSL_LIB_CTX *libctx, const char *propq); # define CMS_SIGNERINFO_ISSUER_SERIAL 0 @@ -190,6 +196,7 @@ CMS_ContentInfo *CMS_ContentInfo_new_ex(OSSL_LIB_CTX *libctx, const char *propq) # define CMS_ASCIICRLF 0x80000 # define CMS_CADES 0x100000 # define CMS_USE_ORIGINATOR_KEYID 0x200000 +# define CMS_NO_SIGNING_TIME 0x400000 const ASN1_OBJECT *CMS_get0_type(const CMS_ContentInfo *cms); @@ -217,13 +224,16 @@ int SMIME_write_CMS(BIO *bio, CMS_ContentInfo *cms, BIO *data, int flags); int CMS_final(CMS_ContentInfo *cms, BIO *data, BIO *dcont, unsigned int flags); +int CMS_final_digest(CMS_ContentInfo *cms, + const unsigned char *md, unsigned int mdlen, BIO *dcont, + unsigned int flags); CMS_ContentInfo *CMS_sign(X509 *signcert, EVP_PKEY *pkey, STACK_OF(X509) *certs, BIO *data, unsigned int flags); CMS_ContentInfo *CMS_sign_ex(X509 *signcert, EVP_PKEY *pkey, STACK_OF(X509) *certs, BIO *data, - unsigned int flags, OSSL_LIB_CTX *ctx, + unsigned int flags, OSSL_LIB_CTX *libctx, const char *propq); CMS_ContentInfo *CMS_sign_receipt(CMS_SignerInfo *si, @@ -233,27 +243,26 @@ CMS_ContentInfo *CMS_sign_receipt(CMS_SignerInfo *si, int CMS_data(CMS_ContentInfo *cms, BIO *out, unsigned int flags); CMS_ContentInfo *CMS_data_create(BIO *in, unsigned int flags); CMS_ContentInfo *CMS_data_create_ex(BIO *in, unsigned int flags, - OSSL_LIB_CTX *ctx, const char *propq); + OSSL_LIB_CTX *libctx, const char *propq); int CMS_digest_verify(CMS_ContentInfo *cms, BIO *dcont, BIO *out, unsigned int flags); CMS_ContentInfo *CMS_digest_create(BIO *in, const EVP_MD *md, unsigned int flags); CMS_ContentInfo *CMS_digest_create_ex(BIO *in, const EVP_MD *md, - unsigned int flags, OSSL_LIB_CTX *ctx, + unsigned int flags, OSSL_LIB_CTX *libctx, const char *propq); int CMS_EncryptedData_decrypt(CMS_ContentInfo *cms, const unsigned char *key, size_t keylen, BIO *dcont, BIO *out, unsigned int flags); - CMS_ContentInfo *CMS_EncryptedData_encrypt(BIO *in, const EVP_CIPHER *cipher, const unsigned char *key, size_t keylen, unsigned int flags); CMS_ContentInfo *CMS_EncryptedData_encrypt_ex(BIO *in, const EVP_CIPHER *cipher, const unsigned char *key, size_t keylen, unsigned int flags, - OSSL_LIB_CTX *ctx, + OSSL_LIB_CTX *libctx, const char *propq); int CMS_EncryptedData_set1_key(CMS_ContentInfo *cms, const EVP_CIPHER *ciph, @@ -272,7 +281,7 @@ CMS_ContentInfo *CMS_encrypt(STACK_OF(X509) *certs, BIO *in, const EVP_CIPHER *cipher, unsigned int flags); CMS_ContentInfo *CMS_encrypt_ex(STACK_OF(X509) *certs, BIO *in, const EVP_CIPHER *cipher, unsigned int flags, - OSSL_LIB_CTX *ctx, const char *propq); + OSSL_LIB_CTX *libctx, const char *propq); int CMS_decrypt(CMS_ContentInfo *cms, EVP_PKEY *pkey, X509 *cert, BIO *dcont, BIO *out, unsigned int flags); @@ -291,12 +300,16 @@ int CMS_RecipientInfo_type(CMS_RecipientInfo *ri); EVP_PKEY_CTX *CMS_RecipientInfo_get0_pkey_ctx(CMS_RecipientInfo *ri); CMS_ContentInfo *CMS_AuthEnvelopedData_create(const EVP_CIPHER *cipher); CMS_ContentInfo * -CMS_AuthEnvelopedData_create_ex(const EVP_CIPHER *cipher, OSSL_LIB_CTX *ctx, +CMS_AuthEnvelopedData_create_ex(const EVP_CIPHER *cipher, OSSL_LIB_CTX *libctx, const char *propq); CMS_ContentInfo *CMS_EnvelopedData_create(const EVP_CIPHER *cipher); CMS_ContentInfo *CMS_EnvelopedData_create_ex(const EVP_CIPHER *cipher, - OSSL_LIB_CTX *ctx, + OSSL_LIB_CTX *libctx, const char *propq); +BIO *CMS_EnvelopedData_decrypt(CMS_EnvelopedData *env, BIO *detached_data, + EVP_PKEY *pkey, X509 *cert, + ASN1_OCTET_STRING *secret, unsigned int flags, + OSSL_LIB_CTX *libctx, const char *propq); CMS_RecipientInfo *CMS_add1_recipient_cert(CMS_ContentInfo *cms, X509 *recip, unsigned int flags); @@ -385,6 +398,11 @@ ASN1_OCTET_STRING *CMS_SignerInfo_get0_signature(CMS_SignerInfo *si); int CMS_SignerInfo_sign(CMS_SignerInfo *si); int CMS_SignerInfo_verify(CMS_SignerInfo *si); int CMS_SignerInfo_verify_content(CMS_SignerInfo *si, BIO *chain); +BIO *CMS_SignedData_verify(CMS_SignedData *sd, BIO *detached_data, + STACK_OF(X509) *scerts, X509_STORE *store, + STACK_OF(X509) *extra, STACK_OF(X509_CRL) *crls, + unsigned int flags, + OSSL_LIB_CTX *libctx, const char *propq); int CMS_add_smimecap(CMS_SignerInfo *si, STACK_OF(X509_ALGOR) *algs); int CMS_add_simple_smimecap(STACK_OF(X509_ALGOR) **algs, @@ -441,7 +459,7 @@ CMS_ReceiptRequest *CMS_ReceiptRequest_create0_ex( unsigned char *id, int idlen, int allorfirst, STACK_OF(GENERAL_NAMES) *receiptList, STACK_OF(GENERAL_NAMES) *receiptsTo, - OSSL_LIB_CTX *ctx); + OSSL_LIB_CTX *libctx); int CMS_add1_ReceiptRequest(CMS_SignerInfo *si, CMS_ReceiptRequest *rr); void CMS_ReceiptRequest_get0_values(CMS_ReceiptRequest *rr, diff --git a/deps/openssl/config/archs/aix64-gcc-as/asm/include/openssl/comp.h b/deps/openssl/config/archs/aix64-gcc-as/asm/include/openssl/comp.h new file mode 100644 index 00000000000000..90e39511fe8d28 --- /dev/null +++ b/deps/openssl/config/archs/aix64-gcc-as/asm/include/openssl/comp.h @@ -0,0 +1,98 @@ +/* + * Copyright 2015-2024 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + + +#ifndef OPENSSL_COMP_H +# define OPENSSL_COMP_H +# pragma once + +# include +# ifndef OPENSSL_NO_DEPRECATED_3_0 +# define HEADER_COMP_H +# endif + +# include + +# include +# include +# ifdef __cplusplus +extern "C" { +# endif + + + +# ifndef OPENSSL_NO_COMP + +COMP_CTX *COMP_CTX_new(COMP_METHOD *meth); +const COMP_METHOD *COMP_CTX_get_method(const COMP_CTX *ctx); +int COMP_CTX_get_type(const COMP_CTX* comp); +int COMP_get_type(const COMP_METHOD *meth); +const char *COMP_get_name(const COMP_METHOD *meth); +void COMP_CTX_free(COMP_CTX *ctx); + +int COMP_compress_block(COMP_CTX *ctx, unsigned char *out, int olen, + unsigned char *in, int ilen); +int COMP_expand_block(COMP_CTX *ctx, unsigned char *out, int olen, + unsigned char *in, int ilen); + +COMP_METHOD *COMP_zlib(void); +COMP_METHOD *COMP_zlib_oneshot(void); +COMP_METHOD *COMP_brotli(void); +COMP_METHOD *COMP_brotli_oneshot(void); +COMP_METHOD *COMP_zstd(void); +COMP_METHOD *COMP_zstd_oneshot(void); + +# ifndef OPENSSL_NO_DEPRECATED_1_1_0 +# define COMP_zlib_cleanup() while(0) continue +# endif + +# ifdef OPENSSL_BIO_H +const BIO_METHOD *BIO_f_zlib(void); +const BIO_METHOD *BIO_f_brotli(void); +const BIO_METHOD *BIO_f_zstd(void); +# endif + +# endif + +typedef struct ssl_comp_st SSL_COMP; + +SKM_DEFINE_STACK_OF_INTERNAL(SSL_COMP, SSL_COMP, SSL_COMP) +#define sk_SSL_COMP_num(sk) OPENSSL_sk_num(ossl_check_const_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_value(sk, idx) ((SSL_COMP *)OPENSSL_sk_value(ossl_check_const_SSL_COMP_sk_type(sk), (idx))) +#define sk_SSL_COMP_new(cmp) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new(ossl_check_SSL_COMP_compfunc_type(cmp))) +#define sk_SSL_COMP_new_null() ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new_null()) +#define sk_SSL_COMP_new_reserve(cmp, n) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new_reserve(ossl_check_SSL_COMP_compfunc_type(cmp), (n))) +#define sk_SSL_COMP_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_SSL_COMP_sk_type(sk), (n)) +#define sk_SSL_COMP_free(sk) OPENSSL_sk_free(ossl_check_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_zero(sk) OPENSSL_sk_zero(ossl_check_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_delete(sk, i) ((SSL_COMP *)OPENSSL_sk_delete(ossl_check_SSL_COMP_sk_type(sk), (i))) +#define sk_SSL_COMP_delete_ptr(sk, ptr) ((SSL_COMP *)OPENSSL_sk_delete_ptr(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr))) +#define sk_SSL_COMP_push(sk, ptr) OPENSSL_sk_push(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) +#define sk_SSL_COMP_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) +#define sk_SSL_COMP_pop(sk) ((SSL_COMP *)OPENSSL_sk_pop(ossl_check_SSL_COMP_sk_type(sk))) +#define sk_SSL_COMP_shift(sk) ((SSL_COMP *)OPENSSL_sk_shift(ossl_check_SSL_COMP_sk_type(sk))) +#define sk_SSL_COMP_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_SSL_COMP_sk_type(sk),ossl_check_SSL_COMP_freefunc_type(freefunc)) +#define sk_SSL_COMP_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr), (idx)) +#define sk_SSL_COMP_set(sk, idx, ptr) ((SSL_COMP *)OPENSSL_sk_set(ossl_check_SSL_COMP_sk_type(sk), (idx), ossl_check_SSL_COMP_type(ptr))) +#define sk_SSL_COMP_find(sk, ptr) OPENSSL_sk_find(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) +#define sk_SSL_COMP_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) +#define sk_SSL_COMP_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr), pnum) +#define sk_SSL_COMP_sort(sk) OPENSSL_sk_sort(ossl_check_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_dup(sk) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_dup(ossl_check_const_SSL_COMP_sk_type(sk))) +#define sk_SSL_COMP_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_deep_copy(ossl_check_const_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_copyfunc_type(copyfunc), ossl_check_SSL_COMP_freefunc_type(freefunc))) +#define sk_SSL_COMP_set_cmp_func(sk, cmp) ((sk_SSL_COMP_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_compfunc_type(cmp))) + + + +# ifdef __cplusplus +} +# endif +#endif diff --git a/deps/openssl/config/archs/aix64-gcc-as/asm/include/openssl/conf.h b/deps/openssl/config/archs/aix64-gcc-as/asm/include/openssl/conf.h index 44989929f6c84a..38576290bf641b 100644 --- a/deps/openssl/config/archs/aix64-gcc-as/asm/include/openssl/conf.h +++ b/deps/openssl/config/archs/aix64-gcc-as/asm/include/openssl/conf.h @@ -27,6 +27,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -65,7 +68,7 @@ SKM_DEFINE_STACK_OF_INTERNAL(CONF_VALUE, CONF_VALUE, CONF_VALUE) #define sk_CONF_VALUE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(CONF_VALUE) *)OPENSSL_sk_deep_copy(ossl_check_const_CONF_VALUE_sk_type(sk), ossl_check_CONF_VALUE_copyfunc_type(copyfunc), ossl_check_CONF_VALUE_freefunc_type(freefunc))) #define sk_CONF_VALUE_set_cmp_func(sk, cmp) ((sk_CONF_VALUE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_CONF_VALUE_sk_type(sk), ossl_check_CONF_VALUE_compfunc_type(cmp))) DEFINE_LHASH_OF_INTERNAL(CONF_VALUE); -#define lh_CONF_VALUE_new(hfn, cmp) ((LHASH_OF(CONF_VALUE) *)OPENSSL_LH_new(ossl_check_CONF_VALUE_lh_hashfunc_type(hfn), ossl_check_CONF_VALUE_lh_compfunc_type(cmp))) +#define lh_CONF_VALUE_new(hfn, cmp) ((LHASH_OF(CONF_VALUE) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new(ossl_check_CONF_VALUE_lh_hashfunc_type(hfn), ossl_check_CONF_VALUE_lh_compfunc_type(cmp)), lh_CONF_VALUE_hash_thunk, lh_CONF_VALUE_comp_thunk, lh_CONF_VALUE_doall_thunk, lh_CONF_VALUE_doall_arg_thunk)) #define lh_CONF_VALUE_free(lh) OPENSSL_LH_free(ossl_check_CONF_VALUE_lh_type(lh)) #define lh_CONF_VALUE_flush(lh) OPENSSL_LH_flush(ossl_check_CONF_VALUE_lh_type(lh)) #define lh_CONF_VALUE_insert(lh, ptr) ((CONF_VALUE *)OPENSSL_LH_insert(ossl_check_CONF_VALUE_lh_type(lh), ossl_check_CONF_VALUE_lh_plain_type(ptr))) diff --git a/deps/openssl/config/archs/aix64-gcc-as/asm/include/openssl/configuration.h b/deps/openssl/config/archs/aix64-gcc-as/asm/include/openssl/configuration.h index 0ab00d8834b215..ac8c22a725f3d4 100644 --- a/deps/openssl/config/archs/aix64-gcc-as/asm/include/openssl/configuration.h +++ b/deps/openssl/config/archs/aix64-gcc-as/asm/include/openssl/configuration.h @@ -30,7 +30,7 @@ extern "C" { # ifndef OPENSSL_SYS_AIX # define OPENSSL_SYS_AIX 1 # endif -# define OPENSSL_CONFIGURED_API 30000 +# define OPENSSL_CONFIGURED_API 30500 # ifndef OPENSSL_RAND_SEED_OS # define OPENSSL_RAND_SEED_OS # endif @@ -43,6 +43,12 @@ extern "C" { # ifndef OPENSSL_NO_ASAN # define OPENSSL_NO_ASAN # endif +# ifndef OPENSSL_NO_BROTLI +# define OPENSSL_NO_BROTLI +# endif +# ifndef OPENSSL_NO_BROTLI_DYNAMIC +# define OPENSSL_NO_BROTLI_DYNAMIC +# endif # ifndef OPENSSL_NO_COMP # define OPENSSL_NO_COMP # endif @@ -52,6 +58,9 @@ extern "C" { # ifndef OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE # define OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE # endif +# ifndef OPENSSL_NO_DEMOS +# define OPENSSL_NO_DEMOS +# endif # ifndef OPENSSL_NO_DEVCRYPTOENG # define OPENSSL_NO_DEVCRYPTOENG # endif @@ -64,12 +73,24 @@ extern "C" { # ifndef OPENSSL_NO_EXTERNAL_TESTS # define OPENSSL_NO_EXTERNAL_TESTS # endif +# ifndef OPENSSL_NO_FIPS_JITTER +# define OPENSSL_NO_FIPS_JITTER +# endif # ifndef OPENSSL_NO_FUZZ_AFL # define OPENSSL_NO_FUZZ_AFL # endif # ifndef OPENSSL_NO_FUZZ_LIBFUZZER # define OPENSSL_NO_FUZZ_LIBFUZZER # endif +# ifndef OPENSSL_NO_H3DEMO +# define OPENSSL_NO_H3DEMO +# endif +# ifndef OPENSSL_NO_HQINTEROP +# define OPENSSL_NO_HQINTEROP +# endif +# ifndef OPENSSL_NO_JITTER +# define OPENSSL_NO_JITTER +# endif # ifndef OPENSSL_NO_KTLS # define OPENSSL_NO_KTLS # endif @@ -82,6 +103,9 @@ extern "C" { # ifndef OPENSSL_NO_MSAN # define OPENSSL_NO_MSAN # endif +# ifndef OPENSSL_NO_PIE +# define OPENSSL_NO_PIE +# endif # ifndef OPENSSL_NO_RC5 # define OPENSSL_NO_RC5 # endif @@ -94,6 +118,12 @@ extern "C" { # ifndef OPENSSL_NO_SSL3_METHOD # define OPENSSL_NO_SSL3_METHOD # endif +# ifndef OPENSSL_NO_SSLKEYLOG +# define OPENSSL_NO_SSLKEYLOG +# endif +# ifndef OPENSSL_NO_TFO +# define OPENSSL_NO_TFO +# endif # ifndef OPENSSL_NO_TRACE # define OPENSSL_NO_TRACE # endif @@ -109,6 +139,21 @@ extern "C" { # ifndef OPENSSL_NO_WEAK_SSL_CIPHERS # define OPENSSL_NO_WEAK_SSL_CIPHERS # endif +# ifndef OPENSSL_NO_WINSTORE +# define OPENSSL_NO_WINSTORE +# endif +# ifndef OPENSSL_NO_ZLIB +# define OPENSSL_NO_ZLIB +# endif +# ifndef OPENSSL_NO_ZLIB_DYNAMIC +# define OPENSSL_NO_ZLIB_DYNAMIC +# endif +# ifndef OPENSSL_NO_ZSTD +# define OPENSSL_NO_ZSTD +# endif +# ifndef OPENSSL_NO_ZSTD_DYNAMIC +# define OPENSSL_NO_ZSTD_DYNAMIC +# endif # ifndef OPENSSL_NO_DYNAMIC_ENGINE # define OPENSSL_NO_DYNAMIC_ENGINE # endif @@ -130,6 +175,12 @@ extern "C" { # define RC4_INT unsigned char +# if defined(OPENSSL_NO_COMP) || (defined(OPENSSL_NO_BROTLI) && defined(OPENSSL_NO_ZSTD) && defined(OPENSSL_NO_ZLIB)) +# define OPENSSL_NO_COMP_ALG +# else +# undef OPENSSL_NO_COMP_ALG +# endif + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/aix64-gcc-as/asm/include/openssl/core_names.h b/deps/openssl/config/archs/aix64-gcc-as/asm/include/openssl/core_names.h new file mode 100644 index 00000000000000..e93e79a52bc910 --- /dev/null +++ b/deps/openssl/config/archs/aix64-gcc-as/asm/include/openssl/core_names.h @@ -0,0 +1,575 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from include/openssl/core_names.h.in + * + * Copyright 2019-2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + +#ifndef OPENSSL_CORE_NAMES_H +# define OPENSSL_CORE_NAMES_H +# pragma once + +# ifdef __cplusplus +extern "C" { +# endif + +/* OSSL_CIPHER_PARAM_CTS_MODE Values */ +# define OSSL_CIPHER_CTS_MODE_CS1 "CS1" +# define OSSL_CIPHER_CTS_MODE_CS2 "CS2" +# define OSSL_CIPHER_CTS_MODE_CS3 "CS3" + +/* Known CIPHER names (not a complete list) */ +# define OSSL_CIPHER_NAME_AES_128_GCM_SIV "AES-128-GCM-SIV" +# define OSSL_CIPHER_NAME_AES_192_GCM_SIV "AES-192-GCM-SIV" +# define OSSL_CIPHER_NAME_AES_256_GCM_SIV "AES-256-GCM-SIV" + +/* Known DIGEST names (not a complete list) */ +# define OSSL_DIGEST_NAME_MD5 "MD5" +# define OSSL_DIGEST_NAME_MD5_SHA1 "MD5-SHA1" +# define OSSL_DIGEST_NAME_SHA1 "SHA1" +# define OSSL_DIGEST_NAME_SHA2_224 "SHA2-224" +# define OSSL_DIGEST_NAME_SHA2_256 "SHA2-256" +# define OSSL_DIGEST_NAME_SHA2_256_192 "SHA2-256/192" +# define OSSL_DIGEST_NAME_SHA2_384 "SHA2-384" +# define OSSL_DIGEST_NAME_SHA2_512 "SHA2-512" +# define OSSL_DIGEST_NAME_SHA2_512_224 "SHA2-512/224" +# define OSSL_DIGEST_NAME_SHA2_512_256 "SHA2-512/256" +# define OSSL_DIGEST_NAME_MD2 "MD2" +# define OSSL_DIGEST_NAME_MD4 "MD4" +# define OSSL_DIGEST_NAME_MDC2 "MDC2" +# define OSSL_DIGEST_NAME_RIPEMD160 "RIPEMD160" +# define OSSL_DIGEST_NAME_SHA3_224 "SHA3-224" +# define OSSL_DIGEST_NAME_SHA3_256 "SHA3-256" +# define OSSL_DIGEST_NAME_SHA3_384 "SHA3-384" +# define OSSL_DIGEST_NAME_SHA3_512 "SHA3-512" +# define OSSL_DIGEST_NAME_KECCAK_KMAC128 "KECCAK-KMAC-128" +# define OSSL_DIGEST_NAME_KECCAK_KMAC256 "KECCAK-KMAC-256" +# define OSSL_DIGEST_NAME_SM3 "SM3" + +/* Known MAC names */ +# define OSSL_MAC_NAME_BLAKE2BMAC "BLAKE2BMAC" +# define OSSL_MAC_NAME_BLAKE2SMAC "BLAKE2SMAC" +# define OSSL_MAC_NAME_CMAC "CMAC" +# define OSSL_MAC_NAME_GMAC "GMAC" +# define OSSL_MAC_NAME_HMAC "HMAC" +# define OSSL_MAC_NAME_KMAC128 "KMAC128" +# define OSSL_MAC_NAME_KMAC256 "KMAC256" +# define OSSL_MAC_NAME_POLY1305 "POLY1305" +# define OSSL_MAC_NAME_SIPHASH "SIPHASH" + +/* Known KDF names */ +# define OSSL_KDF_NAME_HKDF "HKDF" +# define OSSL_KDF_NAME_TLS1_3_KDF "TLS13-KDF" +# define OSSL_KDF_NAME_PBKDF1 "PBKDF1" +# define OSSL_KDF_NAME_PBKDF2 "PBKDF2" +# define OSSL_KDF_NAME_SCRYPT "SCRYPT" +# define OSSL_KDF_NAME_SSHKDF "SSHKDF" +# define OSSL_KDF_NAME_SSKDF "SSKDF" +# define OSSL_KDF_NAME_TLS1_PRF "TLS1-PRF" +# define OSSL_KDF_NAME_X942KDF_ASN1 "X942KDF-ASN1" +# define OSSL_KDF_NAME_X942KDF_CONCAT "X942KDF-CONCAT" +# define OSSL_KDF_NAME_X963KDF "X963KDF" +# define OSSL_KDF_NAME_KBKDF "KBKDF" +# define OSSL_KDF_NAME_KRB5KDF "KRB5KDF" +# define OSSL_KDF_NAME_HMACDRBGKDF "HMAC-DRBG-KDF" + +/* RSA padding modes */ +# define OSSL_PKEY_RSA_PAD_MODE_NONE "none" +# define OSSL_PKEY_RSA_PAD_MODE_PKCSV15 "pkcs1" +# define OSSL_PKEY_RSA_PAD_MODE_OAEP "oaep" +# define OSSL_PKEY_RSA_PAD_MODE_X931 "x931" +# define OSSL_PKEY_RSA_PAD_MODE_PSS "pss" + +/* RSA pss padding salt length */ +# define OSSL_PKEY_RSA_PSS_SALT_LEN_DIGEST "digest" +# define OSSL_PKEY_RSA_PSS_SALT_LEN_MAX "max" +# define OSSL_PKEY_RSA_PSS_SALT_LEN_AUTO "auto" +# define OSSL_PKEY_RSA_PSS_SALT_LEN_AUTO_DIGEST_MAX "auto-digestmax" + +/* OSSL_PKEY_PARAM_EC_ENCODING values */ +# define OSSL_PKEY_EC_ENCODING_EXPLICIT "explicit" +# define OSSL_PKEY_EC_ENCODING_GROUP "named_curve" + +# define OSSL_PKEY_EC_POINT_CONVERSION_FORMAT_UNCOMPRESSED "uncompressed" +# define OSSL_PKEY_EC_POINT_CONVERSION_FORMAT_COMPRESSED "compressed" +# define OSSL_PKEY_EC_POINT_CONVERSION_FORMAT_HYBRID "hybrid" + +# define OSSL_PKEY_EC_GROUP_CHECK_DEFAULT "default" +# define OSSL_PKEY_EC_GROUP_CHECK_NAMED "named" +# define OSSL_PKEY_EC_GROUP_CHECK_NAMED_NIST "named-nist" + +/* PROV_SKEY well known key types */ +# define OSSL_SKEY_TYPE_GENERIC "GENERIC-SECRET" +# define OSSL_SKEY_TYPE_AES "AES" + +/* OSSL_KEM_PARAM_OPERATION values */ +#define OSSL_KEM_PARAM_OPERATION_RSASVE "RSASVE" +#define OSSL_KEM_PARAM_OPERATION_DHKEM "DHKEM" + +/* Provider configuration variables */ +#define OSSL_PKEY_RETAIN_SEED "pkey_retain_seed" + +/* Parameter name definitions - generated by util/perl/OpenSSL/paramnames.pm */ +# define OSSL_ALG_PARAM_ALGORITHM_ID "algorithm-id" +# define OSSL_ALG_PARAM_ALGORITHM_ID_PARAMS "algorithm-id-params" +# define OSSL_ALG_PARAM_CIPHER "cipher" +# define OSSL_ALG_PARAM_DIGEST "digest" +# define OSSL_ALG_PARAM_ENGINE "engine" +# define OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR "fips-indicator" +# define OSSL_ALG_PARAM_MAC "mac" +# define OSSL_ALG_PARAM_PROPERTIES "properties" +# define OSSL_ASYM_CIPHER_PARAM_DIGEST OSSL_PKEY_PARAM_DIGEST +# define OSSL_ASYM_CIPHER_PARAM_ENGINE OSSL_PKEY_PARAM_ENGINE +# define OSSL_ASYM_CIPHER_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_ASYM_CIPHER_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_ASYM_CIPHER_PARAM_FIPS_RSA_PKCS15_PAD_DISABLED OSSL_PROV_PARAM_RSA_PKCS15_PAD_DISABLED +# define OSSL_ASYM_CIPHER_PARAM_IMPLICIT_REJECTION "implicit-rejection" +# define OSSL_ASYM_CIPHER_PARAM_MGF1_DIGEST OSSL_PKEY_PARAM_MGF1_DIGEST +# define OSSL_ASYM_CIPHER_PARAM_MGF1_DIGEST_PROPS OSSL_PKEY_PARAM_MGF1_PROPERTIES +# define OSSL_ASYM_CIPHER_PARAM_OAEP_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_ASYM_CIPHER_PARAM_OAEP_DIGEST_PROPS "digest-props" +# define OSSL_ASYM_CIPHER_PARAM_OAEP_LABEL "oaep-label" +# define OSSL_ASYM_CIPHER_PARAM_PAD_MODE OSSL_PKEY_PARAM_PAD_MODE +# define OSSL_ASYM_CIPHER_PARAM_PROPERTIES OSSL_PKEY_PARAM_PROPERTIES +# define OSSL_ASYM_CIPHER_PARAM_TLS_CLIENT_VERSION "tls-client-version" +# define OSSL_ASYM_CIPHER_PARAM_TLS_NEGOTIATED_VERSION "tls-negotiated-version" +# define OSSL_CAPABILITY_TLS_GROUP_ALG "tls-group-alg" +# define OSSL_CAPABILITY_TLS_GROUP_ID "tls-group-id" +# define OSSL_CAPABILITY_TLS_GROUP_IS_KEM "tls-group-is-kem" +# define OSSL_CAPABILITY_TLS_GROUP_MAX_DTLS "tls-max-dtls" +# define OSSL_CAPABILITY_TLS_GROUP_MAX_TLS "tls-max-tls" +# define OSSL_CAPABILITY_TLS_GROUP_MIN_DTLS "tls-min-dtls" +# define OSSL_CAPABILITY_TLS_GROUP_MIN_TLS "tls-min-tls" +# define OSSL_CAPABILITY_TLS_GROUP_NAME "tls-group-name" +# define OSSL_CAPABILITY_TLS_GROUP_NAME_INTERNAL "tls-group-name-internal" +# define OSSL_CAPABILITY_TLS_GROUP_SECURITY_BITS "tls-group-sec-bits" +# define OSSL_CAPABILITY_TLS_SIGALG_CODE_POINT "tls-sigalg-code-point" +# define OSSL_CAPABILITY_TLS_SIGALG_HASH_NAME "tls-sigalg-hash-name" +# define OSSL_CAPABILITY_TLS_SIGALG_HASH_OID "tls-sigalg-hash-oid" +# define OSSL_CAPABILITY_TLS_SIGALG_IANA_NAME "tls-sigalg-iana-name" +# define OSSL_CAPABILITY_TLS_SIGALG_KEYTYPE "tls-sigalg-keytype" +# define OSSL_CAPABILITY_TLS_SIGALG_KEYTYPE_OID "tls-sigalg-keytype-oid" +# define OSSL_CAPABILITY_TLS_SIGALG_MAX_DTLS "tls-max-dtls" +# define OSSL_CAPABILITY_TLS_SIGALG_MAX_TLS "tls-max-tls" +# define OSSL_CAPABILITY_TLS_SIGALG_MIN_DTLS "tls-min-dtls" +# define OSSL_CAPABILITY_TLS_SIGALG_MIN_TLS "tls-min-tls" +# define OSSL_CAPABILITY_TLS_SIGALG_NAME "tls-sigalg-name" +# define OSSL_CAPABILITY_TLS_SIGALG_OID "tls-sigalg-oid" +# define OSSL_CAPABILITY_TLS_SIGALG_SECURITY_BITS "tls-sigalg-sec-bits" +# define OSSL_CAPABILITY_TLS_SIGALG_SIG_NAME "tls-sigalg-sig-name" +# define OSSL_CAPABILITY_TLS_SIGALG_SIG_OID "tls-sigalg-sig-oid" +# define OSSL_CIPHER_PARAM_AEAD "aead" +# define OSSL_CIPHER_PARAM_AEAD_IVLEN OSSL_CIPHER_PARAM_IVLEN +# define OSSL_CIPHER_PARAM_AEAD_IV_GENERATED "iv-generated" +# define OSSL_CIPHER_PARAM_AEAD_MAC_KEY "mackey" +# define OSSL_CIPHER_PARAM_AEAD_TAG "tag" +# define OSSL_CIPHER_PARAM_AEAD_TAGLEN "taglen" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_AAD "tlsaad" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_AAD_PAD "tlsaadpad" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_GET_IV_GEN "tlsivgen" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_IV_FIXED "tlsivfixed" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_SET_IV_INV "tlsivinv" +# define OSSL_CIPHER_PARAM_ALGORITHM_ID OSSL_ALG_PARAM_ALGORITHM_ID +# define OSSL_CIPHER_PARAM_ALGORITHM_ID_PARAMS OSSL_ALG_PARAM_ALGORITHM_ID_PARAMS +# define OSSL_CIPHER_PARAM_ALGORITHM_ID_PARAMS_OLD "alg_id_param" +# define OSSL_CIPHER_PARAM_BLOCK_SIZE "blocksize" +# define OSSL_CIPHER_PARAM_CTS "cts" +# define OSSL_CIPHER_PARAM_CTS_MODE "cts_mode" +# define OSSL_CIPHER_PARAM_CUSTOM_IV "custom-iv" +# define OSSL_CIPHER_PARAM_DECRYPT_ONLY "decrypt-only" +# define OSSL_CIPHER_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_CIPHER_PARAM_FIPS_ENCRYPT_CHECK "encrypt-check" +# define OSSL_CIPHER_PARAM_HAS_RAND_KEY "has-randkey" +# define OSSL_CIPHER_PARAM_IV "iv" +# define OSSL_CIPHER_PARAM_IVLEN "ivlen" +# define OSSL_CIPHER_PARAM_KEYLEN "keylen" +# define OSSL_CIPHER_PARAM_MODE "mode" +# define OSSL_CIPHER_PARAM_NUM "num" +# define OSSL_CIPHER_PARAM_PADDING "padding" +# define OSSL_CIPHER_PARAM_PIPELINE_AEAD_TAG "pipeline-tag" +# define OSSL_CIPHER_PARAM_RANDOM_KEY "randkey" +# define OSSL_CIPHER_PARAM_RC2_KEYBITS "keybits" +# define OSSL_CIPHER_PARAM_ROUNDS "rounds" +# define OSSL_CIPHER_PARAM_SPEED "speed" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK "tls-multi" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD "tls1multi_aad" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD_PACKLEN "tls1multi_aadpacklen" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC "tls1multi_enc" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_IN "tls1multi_encin" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_LEN "tls1multi_enclen" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_INTERLEAVE "tls1multi_interleave" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_BUFSIZE "tls1multi_maxbufsz" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_SEND_FRAGMENT "tls1multi_maxsndfrag" +# define OSSL_CIPHER_PARAM_TLS_MAC "tls-mac" +# define OSSL_CIPHER_PARAM_TLS_MAC_SIZE "tls-mac-size" +# define OSSL_CIPHER_PARAM_TLS_VERSION "tls-version" +# define OSSL_CIPHER_PARAM_UPDATED_IV "updated-iv" +# define OSSL_CIPHER_PARAM_USE_BITS "use-bits" +# define OSSL_CIPHER_PARAM_XTS_STANDARD "xts_standard" +# define OSSL_DECODER_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_DIGEST_PARAM_ALGID_ABSENT "algid-absent" +# define OSSL_DIGEST_PARAM_BLOCK_SIZE "blocksize" +# define OSSL_DIGEST_PARAM_MICALG "micalg" +# define OSSL_DIGEST_PARAM_PAD_TYPE "pad-type" +# define OSSL_DIGEST_PARAM_SIZE "size" +# define OSSL_DIGEST_PARAM_SSL3_MS "ssl3-ms" +# define OSSL_DIGEST_PARAM_XOF "xof" +# define OSSL_DIGEST_PARAM_XOFLEN "xoflen" +# define OSSL_DRBG_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_DRBG_PARAM_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_DRBG_PARAM_ENTROPY_REQUIRED "entropy_required" +# define OSSL_DRBG_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_DRBG_PARAM_FIPS_DIGEST_CHECK OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK +# define OSSL_DRBG_PARAM_MAC OSSL_ALG_PARAM_MAC +# define OSSL_DRBG_PARAM_MAX_ADINLEN "max_adinlen" +# define OSSL_DRBG_PARAM_MAX_ENTROPYLEN "max_entropylen" +# define OSSL_DRBG_PARAM_MAX_LENGTH "maxium_length" +# define OSSL_DRBG_PARAM_MAX_NONCELEN "max_noncelen" +# define OSSL_DRBG_PARAM_MAX_PERSLEN "max_perslen" +# define OSSL_DRBG_PARAM_MIN_ENTROPYLEN "min_entropylen" +# define OSSL_DRBG_PARAM_MIN_LENGTH "minium_length" +# define OSSL_DRBG_PARAM_MIN_NONCELEN "min_noncelen" +# define OSSL_DRBG_PARAM_PREDICTION_RESISTANCE "prediction_resistance" +# define OSSL_DRBG_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_DRBG_PARAM_RANDOM_DATA "random_data" +# define OSSL_DRBG_PARAM_RESEED_COUNTER "reseed_counter" +# define OSSL_DRBG_PARAM_RESEED_REQUESTS "reseed_requests" +# define OSSL_DRBG_PARAM_RESEED_TIME "reseed_time" +# define OSSL_DRBG_PARAM_RESEED_TIME_INTERVAL "reseed_time_interval" +# define OSSL_DRBG_PARAM_SIZE "size" +# define OSSL_DRBG_PARAM_USE_DF "use_derivation_function" +# define OSSL_ENCODER_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_ENCODER_PARAM_ENCRYPT_LEVEL "encrypt-level" +# define OSSL_ENCODER_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_ENCODER_PARAM_SAVE_PARAMETERS "save-parameters" +# define OSSL_EXCHANGE_PARAM_EC_ECDH_COFACTOR_MODE "ecdh-cofactor-mode" +# define OSSL_EXCHANGE_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_EXCHANGE_PARAM_FIPS_DIGEST_CHECK OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK +# define OSSL_EXCHANGE_PARAM_FIPS_ECDH_COFACTOR_CHECK OSSL_PROV_PARAM_ECDH_COFACTOR_CHECK +# define OSSL_EXCHANGE_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_EXCHANGE_PARAM_KDF_DIGEST "kdf-digest" +# define OSSL_EXCHANGE_PARAM_KDF_DIGEST_PROPS "kdf-digest-props" +# define OSSL_EXCHANGE_PARAM_KDF_OUTLEN "kdf-outlen" +# define OSSL_EXCHANGE_PARAM_KDF_TYPE "kdf-type" +# define OSSL_EXCHANGE_PARAM_KDF_UKM "kdf-ukm" +# define OSSL_EXCHANGE_PARAM_PAD "pad" +# define OSSL_GEN_PARAM_ITERATION "iteration" +# define OSSL_GEN_PARAM_POTENTIAL "potential" +# define OSSL_KDF_PARAM_ARGON2_AD "ad" +# define OSSL_KDF_PARAM_ARGON2_LANES "lanes" +# define OSSL_KDF_PARAM_ARGON2_MEMCOST "memcost" +# define OSSL_KDF_PARAM_ARGON2_VERSION "version" +# define OSSL_KDF_PARAM_CEK_ALG "cekalg" +# define OSSL_KDF_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_KDF_PARAM_CONSTANT "constant" +# define OSSL_KDF_PARAM_DATA "data" +# define OSSL_KDF_PARAM_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_KDF_PARAM_EARLY_CLEAN "early_clean" +# define OSSL_KDF_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_KDF_PARAM_FIPS_DIGEST_CHECK OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK +# define OSSL_KDF_PARAM_FIPS_EMS_CHECK "ems_check" +# define OSSL_KDF_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_KDF_PARAM_HMACDRBG_ENTROPY "entropy" +# define OSSL_KDF_PARAM_HMACDRBG_NONCE "nonce" +# define OSSL_KDF_PARAM_INFO "info" +# define OSSL_KDF_PARAM_ITER "iter" +# define OSSL_KDF_PARAM_KBKDF_R "r" +# define OSSL_KDF_PARAM_KBKDF_USE_L "use-l" +# define OSSL_KDF_PARAM_KBKDF_USE_SEPARATOR "use-separator" +# define OSSL_KDF_PARAM_KEY "key" +# define OSSL_KDF_PARAM_LABEL "label" +# define OSSL_KDF_PARAM_MAC OSSL_ALG_PARAM_MAC +# define OSSL_KDF_PARAM_MAC_SIZE "maclen" +# define OSSL_KDF_PARAM_MODE "mode" +# define OSSL_KDF_PARAM_PASSWORD "pass" +# define OSSL_KDF_PARAM_PKCS12_ID "id" +# define OSSL_KDF_PARAM_PKCS5 "pkcs5" +# define OSSL_KDF_PARAM_PREFIX "prefix" +# define OSSL_KDF_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_KDF_PARAM_SALT "salt" +# define OSSL_KDF_PARAM_SCRYPT_MAXMEM "maxmem_bytes" +# define OSSL_KDF_PARAM_SCRYPT_N "n" +# define OSSL_KDF_PARAM_SCRYPT_P "p" +# define OSSL_KDF_PARAM_SCRYPT_R "r" +# define OSSL_KDF_PARAM_SECRET "secret" +# define OSSL_KDF_PARAM_SEED "seed" +# define OSSL_KDF_PARAM_SIZE "size" +# define OSSL_KDF_PARAM_SSHKDF_SESSION_ID "session_id" +# define OSSL_KDF_PARAM_SSHKDF_TYPE "type" +# define OSSL_KDF_PARAM_SSHKDF_XCGHASH "xcghash" +# define OSSL_KDF_PARAM_THREADS "threads" +# define OSSL_KDF_PARAM_UKM "ukm" +# define OSSL_KDF_PARAM_X942_ACVPINFO "acvp-info" +# define OSSL_KDF_PARAM_X942_PARTYUINFO "partyu-info" +# define OSSL_KDF_PARAM_X942_PARTYVINFO "partyv-info" +# define OSSL_KDF_PARAM_X942_SUPP_PRIVINFO "supp-privinfo" +# define OSSL_KDF_PARAM_X942_SUPP_PUBINFO "supp-pubinfo" +# define OSSL_KDF_PARAM_X942_USE_KEYBITS "use-keybits" +# define OSSL_KEM_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_KEM_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_KEM_PARAM_IKME "ikme" +# define OSSL_KEM_PARAM_OPERATION "operation" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_BLOCK_PADDING "block_padding" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_HS_PADDING "hs_padding" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_MAX_EARLY_DATA "max_early_data" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_MAX_FRAG_LEN "max_frag_len" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_MODE "mode" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_OPTIONS "options" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_READ_AHEAD "read_ahead" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_STREAM_MAC "stream_mac" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_TLSTREE "tlstree" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_USE_ETM "use_etm" +# define OSSL_LIBSSL_RECORD_LAYER_READ_BUFFER_LEN "read_buffer_len" +# define OSSL_MAC_PARAM_BLOCK_SIZE "block-size" +# define OSSL_MAC_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_MAC_PARAM_CUSTOM "custom" +# define OSSL_MAC_PARAM_C_ROUNDS "c-rounds" +# define OSSL_MAC_PARAM_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_MAC_PARAM_DIGEST_NOINIT "digest-noinit" +# define OSSL_MAC_PARAM_DIGEST_ONESHOT "digest-oneshot" +# define OSSL_MAC_PARAM_D_ROUNDS "d-rounds" +# define OSSL_MAC_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_MAC_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_MAC_PARAM_FIPS_NO_SHORT_MAC OSSL_PROV_PARAM_NO_SHORT_MAC +# define OSSL_MAC_PARAM_IV "iv" +# define OSSL_MAC_PARAM_KEY "key" +# define OSSL_MAC_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_MAC_PARAM_SALT "salt" +# define OSSL_MAC_PARAM_SIZE "size" +# define OSSL_MAC_PARAM_TLS_DATA_SIZE "tls-data-size" +# define OSSL_MAC_PARAM_XOF "xof" +# define OSSL_OBJECT_PARAM_DATA "data" +# define OSSL_OBJECT_PARAM_DATA_STRUCTURE "data-structure" +# define OSSL_OBJECT_PARAM_DATA_TYPE "data-type" +# define OSSL_OBJECT_PARAM_DESC "desc" +# define OSSL_OBJECT_PARAM_INPUT_TYPE "input-type" +# define OSSL_OBJECT_PARAM_REFERENCE "reference" +# define OSSL_OBJECT_PARAM_TYPE "type" +# define OSSL_PASSPHRASE_PARAM_INFO "info" +# define OSSL_PKEY_PARAM_ALGORITHM_ID OSSL_ALG_PARAM_ALGORITHM_ID +# define OSSL_PKEY_PARAM_ALGORITHM_ID_PARAMS OSSL_ALG_PARAM_ALGORITHM_ID_PARAMS +# define OSSL_PKEY_PARAM_BITS "bits" +# define OSSL_PKEY_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_PKEY_PARAM_DEFAULT_DIGEST "default-digest" +# define OSSL_PKEY_PARAM_DHKEM_IKM "dhkem-ikm" +# define OSSL_PKEY_PARAM_DH_GENERATOR "safeprime-generator" +# define OSSL_PKEY_PARAM_DH_PRIV_LEN "priv_len" +# define OSSL_PKEY_PARAM_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_PKEY_PARAM_DIGEST_SIZE "digest-size" +# define OSSL_PKEY_PARAM_DIST_ID "distid" +# define OSSL_PKEY_PARAM_EC_A "a" +# define OSSL_PKEY_PARAM_EC_B "b" +# define OSSL_PKEY_PARAM_EC_CHAR2_M "m" +# define OSSL_PKEY_PARAM_EC_CHAR2_PP_K1 "k1" +# define OSSL_PKEY_PARAM_EC_CHAR2_PP_K2 "k2" +# define OSSL_PKEY_PARAM_EC_CHAR2_PP_K3 "k3" +# define OSSL_PKEY_PARAM_EC_CHAR2_TP_BASIS "tp" +# define OSSL_PKEY_PARAM_EC_CHAR2_TYPE "basis-type" +# define OSSL_PKEY_PARAM_EC_COFACTOR "cofactor" +# define OSSL_PKEY_PARAM_EC_DECODED_FROM_EXPLICIT_PARAMS "decoded-from-explicit" +# define OSSL_PKEY_PARAM_EC_ENCODING "encoding" +# define OSSL_PKEY_PARAM_EC_FIELD_TYPE "field-type" +# define OSSL_PKEY_PARAM_EC_GENERATOR "generator" +# define OSSL_PKEY_PARAM_EC_GROUP_CHECK_TYPE "group-check" +# define OSSL_PKEY_PARAM_EC_INCLUDE_PUBLIC "include-public" +# define OSSL_PKEY_PARAM_EC_ORDER "order" +# define OSSL_PKEY_PARAM_EC_P "p" +# define OSSL_PKEY_PARAM_EC_POINT_CONVERSION_FORMAT "point-format" +# define OSSL_PKEY_PARAM_EC_PUB_X "qx" +# define OSSL_PKEY_PARAM_EC_PUB_Y "qy" +# define OSSL_PKEY_PARAM_EC_SEED "seed" +# define OSSL_PKEY_PARAM_ENCODED_PUBLIC_KEY "encoded-pub-key" +# define OSSL_PKEY_PARAM_ENGINE OSSL_ALG_PARAM_ENGINE +# define OSSL_PKEY_PARAM_FFC_COFACTOR "j" +# define OSSL_PKEY_PARAM_FFC_DIGEST OSSL_PKEY_PARAM_DIGEST +# define OSSL_PKEY_PARAM_FFC_DIGEST_PROPS OSSL_PKEY_PARAM_PROPERTIES +# define OSSL_PKEY_PARAM_FFC_G "g" +# define OSSL_PKEY_PARAM_FFC_GINDEX "gindex" +# define OSSL_PKEY_PARAM_FFC_H "hindex" +# define OSSL_PKEY_PARAM_FFC_P "p" +# define OSSL_PKEY_PARAM_FFC_PBITS "pbits" +# define OSSL_PKEY_PARAM_FFC_PCOUNTER "pcounter" +# define OSSL_PKEY_PARAM_FFC_Q "q" +# define OSSL_PKEY_PARAM_FFC_QBITS "qbits" +# define OSSL_PKEY_PARAM_FFC_SEED "seed" +# define OSSL_PKEY_PARAM_FFC_TYPE "type" +# define OSSL_PKEY_PARAM_FFC_VALIDATE_G "validate-g" +# define OSSL_PKEY_PARAM_FFC_VALIDATE_LEGACY "validate-legacy" +# define OSSL_PKEY_PARAM_FFC_VALIDATE_PQ "validate-pq" +# define OSSL_PKEY_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK "digest-check" +# define OSSL_PKEY_PARAM_FIPS_KEY_CHECK "key-check" +# define OSSL_PKEY_PARAM_FIPS_SIGN_CHECK "sign-check" +# define OSSL_PKEY_PARAM_GROUP_NAME "group" +# define OSSL_PKEY_PARAM_IMPLICIT_REJECTION "implicit-rejection" +# define OSSL_PKEY_PARAM_MANDATORY_DIGEST "mandatory-digest" +# define OSSL_PKEY_PARAM_MASKGENFUNC "mgf" +# define OSSL_PKEY_PARAM_MAX_SIZE "max-size" +# define OSSL_PKEY_PARAM_MGF1_DIGEST "mgf1-digest" +# define OSSL_PKEY_PARAM_MGF1_PROPERTIES "mgf1-properties" +# define OSSL_PKEY_PARAM_ML_DSA_INPUT_FORMATS "ml-dsa.input_formats" +# define OSSL_PKEY_PARAM_ML_DSA_OUTPUT_FORMATS "ml-dsa.output_formats" +# define OSSL_PKEY_PARAM_ML_DSA_PREFER_SEED "ml-dsa.prefer_seed" +# define OSSL_PKEY_PARAM_ML_DSA_RETAIN_SEED "ml-dsa.retain_seed" +# define OSSL_PKEY_PARAM_ML_DSA_SEED "seed" +# define OSSL_PKEY_PARAM_ML_KEM_IMPORT_PCT_TYPE "ml-kem.import_pct_type" +# define OSSL_PKEY_PARAM_ML_KEM_INPUT_FORMATS "ml-kem.input_formats" +# define OSSL_PKEY_PARAM_ML_KEM_OUTPUT_FORMATS "ml-kem.output_formats" +# define OSSL_PKEY_PARAM_ML_KEM_PREFER_SEED "ml-kem.prefer_seed" +# define OSSL_PKEY_PARAM_ML_KEM_RETAIN_SEED "ml-kem.retain_seed" +# define OSSL_PKEY_PARAM_ML_KEM_SEED "seed" +# define OSSL_PKEY_PARAM_PAD_MODE "pad-mode" +# define OSSL_PKEY_PARAM_PRIV_KEY "priv" +# define OSSL_PKEY_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_PKEY_PARAM_PUB_KEY "pub" +# define OSSL_PKEY_PARAM_RSA_BITS OSSL_PKEY_PARAM_BITS +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT "rsa-coefficient" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT1 "rsa-coefficient1" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT2 "rsa-coefficient2" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT3 "rsa-coefficient3" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT4 "rsa-coefficient4" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT5 "rsa-coefficient5" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT6 "rsa-coefficient6" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT7 "rsa-coefficient7" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT8 "rsa-coefficient8" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT9 "rsa-coefficient9" +# define OSSL_PKEY_PARAM_RSA_D "d" +# define OSSL_PKEY_PARAM_RSA_DERIVE_FROM_PQ "rsa-derive-from-pq" +# define OSSL_PKEY_PARAM_RSA_DIGEST OSSL_PKEY_PARAM_DIGEST +# define OSSL_PKEY_PARAM_RSA_DIGEST_PROPS OSSL_PKEY_PARAM_PROPERTIES +# define OSSL_PKEY_PARAM_RSA_E "e" +# define OSSL_PKEY_PARAM_RSA_EXPONENT "rsa-exponent" +# define OSSL_PKEY_PARAM_RSA_EXPONENT1 "rsa-exponent1" +# define OSSL_PKEY_PARAM_RSA_EXPONENT10 "rsa-exponent10" +# define OSSL_PKEY_PARAM_RSA_EXPONENT2 "rsa-exponent2" +# define OSSL_PKEY_PARAM_RSA_EXPONENT3 "rsa-exponent3" +# define OSSL_PKEY_PARAM_RSA_EXPONENT4 "rsa-exponent4" +# define OSSL_PKEY_PARAM_RSA_EXPONENT5 "rsa-exponent5" +# define OSSL_PKEY_PARAM_RSA_EXPONENT6 "rsa-exponent6" +# define OSSL_PKEY_PARAM_RSA_EXPONENT7 "rsa-exponent7" +# define OSSL_PKEY_PARAM_RSA_EXPONENT8 "rsa-exponent8" +# define OSSL_PKEY_PARAM_RSA_EXPONENT9 "rsa-exponent9" +# define OSSL_PKEY_PARAM_RSA_FACTOR "rsa-factor" +# define OSSL_PKEY_PARAM_RSA_FACTOR1 "rsa-factor1" +# define OSSL_PKEY_PARAM_RSA_FACTOR10 "rsa-factor10" +# define OSSL_PKEY_PARAM_RSA_FACTOR2 "rsa-factor2" +# define OSSL_PKEY_PARAM_RSA_FACTOR3 "rsa-factor3" +# define OSSL_PKEY_PARAM_RSA_FACTOR4 "rsa-factor4" +# define OSSL_PKEY_PARAM_RSA_FACTOR5 "rsa-factor5" +# define OSSL_PKEY_PARAM_RSA_FACTOR6 "rsa-factor6" +# define OSSL_PKEY_PARAM_RSA_FACTOR7 "rsa-factor7" +# define OSSL_PKEY_PARAM_RSA_FACTOR8 "rsa-factor8" +# define OSSL_PKEY_PARAM_RSA_FACTOR9 "rsa-factor9" +# define OSSL_PKEY_PARAM_RSA_MASKGENFUNC OSSL_PKEY_PARAM_MASKGENFUNC +# define OSSL_PKEY_PARAM_RSA_MGF1_DIGEST OSSL_PKEY_PARAM_MGF1_DIGEST +# define OSSL_PKEY_PARAM_RSA_N "n" +# define OSSL_PKEY_PARAM_RSA_PRIMES "primes" +# define OSSL_PKEY_PARAM_RSA_PSS_SALTLEN "saltlen" +# define OSSL_PKEY_PARAM_RSA_TEST_P1 "p1" +# define OSSL_PKEY_PARAM_RSA_TEST_P2 "p2" +# define OSSL_PKEY_PARAM_RSA_TEST_Q1 "q1" +# define OSSL_PKEY_PARAM_RSA_TEST_Q2 "q2" +# define OSSL_PKEY_PARAM_RSA_TEST_XP "xp" +# define OSSL_PKEY_PARAM_RSA_TEST_XP1 "xp1" +# define OSSL_PKEY_PARAM_RSA_TEST_XP2 "xp2" +# define OSSL_PKEY_PARAM_RSA_TEST_XQ "xq" +# define OSSL_PKEY_PARAM_RSA_TEST_XQ1 "xq1" +# define OSSL_PKEY_PARAM_RSA_TEST_XQ2 "xq2" +# define OSSL_PKEY_PARAM_SECURITY_BITS "security-bits" +# define OSSL_PKEY_PARAM_SLH_DSA_SEED "seed" +# define OSSL_PKEY_PARAM_USE_COFACTOR_ECDH OSSL_PKEY_PARAM_USE_COFACTOR_FLAG +# define OSSL_PKEY_PARAM_USE_COFACTOR_FLAG "use-cofactor-flag" +# define OSSL_PROV_PARAM_BUILDINFO "buildinfo" +# define OSSL_PROV_PARAM_CORE_MODULE_FILENAME "module-filename" +# define OSSL_PROV_PARAM_CORE_PROV_NAME "provider-name" +# define OSSL_PROV_PARAM_CORE_VERSION "openssl-version" +# define OSSL_PROV_PARAM_DRBG_TRUNC_DIGEST "drbg-no-trunc-md" +# define OSSL_PROV_PARAM_DSA_SIGN_DISABLED "dsa-sign-disabled" +# define OSSL_PROV_PARAM_ECDH_COFACTOR_CHECK "ecdh-cofactor-check" +# define OSSL_PROV_PARAM_HKDF_DIGEST_CHECK "hkdf-digest-check" +# define OSSL_PROV_PARAM_HKDF_KEY_CHECK "hkdf-key-check" +# define OSSL_PROV_PARAM_HMAC_KEY_CHECK "hmac-key-check" +# define OSSL_PROV_PARAM_KBKDF_KEY_CHECK "kbkdf-key-check" +# define OSSL_PROV_PARAM_KMAC_KEY_CHECK "kmac-key-check" +# define OSSL_PROV_PARAM_NAME "name" +# define OSSL_PROV_PARAM_NO_SHORT_MAC "no-short-mac" +# define OSSL_PROV_PARAM_PBKDF2_LOWER_BOUND_CHECK "pbkdf2-lower-bound-check" +# define OSSL_PROV_PARAM_RSA_PKCS15_PAD_DISABLED "rsa-pkcs15-pad-disabled" +# define OSSL_PROV_PARAM_RSA_PSS_SALTLEN_CHECK "rsa-pss-saltlen-check" +# define OSSL_PROV_PARAM_RSA_SIGN_X931_PAD_DISABLED "rsa-sign-x931-pad-disabled" +# define OSSL_PROV_PARAM_SECURITY_CHECKS "security-checks" +# define OSSL_PROV_PARAM_SELF_TEST_DESC "st-desc" +# define OSSL_PROV_PARAM_SELF_TEST_PHASE "st-phase" +# define OSSL_PROV_PARAM_SELF_TEST_TYPE "st-type" +# define OSSL_PROV_PARAM_SIGNATURE_DIGEST_CHECK "signature-digest-check" +# define OSSL_PROV_PARAM_SSHKDF_DIGEST_CHECK "sshkdf-digest-check" +# define OSSL_PROV_PARAM_SSHKDF_KEY_CHECK "sshkdf-key-check" +# define OSSL_PROV_PARAM_SSKDF_DIGEST_CHECK "sskdf-digest-check" +# define OSSL_PROV_PARAM_SSKDF_KEY_CHECK "sskdf-key-check" +# define OSSL_PROV_PARAM_STATUS "status" +# define OSSL_PROV_PARAM_TDES_ENCRYPT_DISABLED "tdes-encrypt-disabled" +# define OSSL_PROV_PARAM_TLS13_KDF_DIGEST_CHECK "tls13-kdf-digest-check" +# define OSSL_PROV_PARAM_TLS13_KDF_KEY_CHECK "tls13-kdf-key-check" +# define OSSL_PROV_PARAM_TLS1_PRF_DIGEST_CHECK "tls1-prf-digest-check" +# define OSSL_PROV_PARAM_TLS1_PRF_EMS_CHECK "tls1-prf-ems-check" +# define OSSL_PROV_PARAM_TLS1_PRF_KEY_CHECK "tls1-prf-key-check" +# define OSSL_PROV_PARAM_VERSION "version" +# define OSSL_PROV_PARAM_X942KDF_KEY_CHECK "x942kdf-key-check" +# define OSSL_PROV_PARAM_X963KDF_DIGEST_CHECK "x963kdf-digest-check" +# define OSSL_PROV_PARAM_X963KDF_KEY_CHECK "x963kdf-key-check" +# define OSSL_RAND_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_RAND_PARAM_GENERATE "generate" +# define OSSL_RAND_PARAM_MAX_REQUEST "max_request" +# define OSSL_RAND_PARAM_STATE "state" +# define OSSL_RAND_PARAM_STRENGTH "strength" +# define OSSL_RAND_PARAM_TEST_ENTROPY "test_entropy" +# define OSSL_RAND_PARAM_TEST_NONCE "test_nonce" +# define OSSL_SIGNATURE_PARAM_ADD_RANDOM "additional-random" +# define OSSL_SIGNATURE_PARAM_ALGORITHM_ID OSSL_PKEY_PARAM_ALGORITHM_ID +# define OSSL_SIGNATURE_PARAM_ALGORITHM_ID_PARAMS OSSL_PKEY_PARAM_ALGORITHM_ID_PARAMS +# define OSSL_SIGNATURE_PARAM_CONTEXT_STRING "context-string" +# define OSSL_SIGNATURE_PARAM_DETERMINISTIC "deterministic" +# define OSSL_SIGNATURE_PARAM_DIGEST OSSL_PKEY_PARAM_DIGEST +# define OSSL_SIGNATURE_PARAM_DIGEST_SIZE OSSL_PKEY_PARAM_DIGEST_SIZE +# define OSSL_SIGNATURE_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_SIGNATURE_PARAM_FIPS_DIGEST_CHECK OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK +# define OSSL_SIGNATURE_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_SIGNATURE_PARAM_FIPS_RSA_PSS_SALTLEN_CHECK "rsa-pss-saltlen-check" +# define OSSL_SIGNATURE_PARAM_FIPS_SIGN_CHECK OSSL_PKEY_PARAM_FIPS_SIGN_CHECK +# define OSSL_SIGNATURE_PARAM_FIPS_SIGN_X931_PAD_CHECK "sign-x931-pad-check" +# define OSSL_SIGNATURE_PARAM_FIPS_VERIFY_MESSAGE "verify-message" +# define OSSL_SIGNATURE_PARAM_INSTANCE "instance" +# define OSSL_SIGNATURE_PARAM_KAT "kat" +# define OSSL_SIGNATURE_PARAM_MESSAGE_ENCODING "message-encoding" +# define OSSL_SIGNATURE_PARAM_MGF1_DIGEST OSSL_PKEY_PARAM_MGF1_DIGEST +# define OSSL_SIGNATURE_PARAM_MGF1_PROPERTIES OSSL_PKEY_PARAM_MGF1_PROPERTIES +# define OSSL_SIGNATURE_PARAM_MU "mu" +# define OSSL_SIGNATURE_PARAM_NONCE_TYPE "nonce-type" +# define OSSL_SIGNATURE_PARAM_PAD_MODE OSSL_PKEY_PARAM_PAD_MODE +# define OSSL_SIGNATURE_PARAM_PROPERTIES OSSL_PKEY_PARAM_PROPERTIES +# define OSSL_SIGNATURE_PARAM_PSS_SALTLEN "saltlen" +# define OSSL_SIGNATURE_PARAM_SIGNATURE "signature" +# define OSSL_SIGNATURE_PARAM_TEST_ENTROPY "test-entropy" +# define OSSL_SKEY_PARAM_KEY_LENGTH "key-length" +# define OSSL_SKEY_PARAM_RAW_BYTES "raw-bytes" +# define OSSL_STORE_PARAM_ALIAS "alias" +# define OSSL_STORE_PARAM_DIGEST "digest" +# define OSSL_STORE_PARAM_EXPECT "expect" +# define OSSL_STORE_PARAM_FINGERPRINT "fingerprint" +# define OSSL_STORE_PARAM_INPUT_TYPE "input-type" +# define OSSL_STORE_PARAM_ISSUER "name" +# define OSSL_STORE_PARAM_PROPERTIES "properties" +# define OSSL_STORE_PARAM_SERIAL "serial" +# define OSSL_STORE_PARAM_SUBJECT "subject" + +# ifdef __cplusplus +} +# endif + +#endif diff --git a/deps/openssl/config/archs/aix64-gcc-as/asm/include/openssl/crmf.h b/deps/openssl/config/archs/aix64-gcc-as/asm/include/openssl/crmf.h index 71b747ed33d239..4bf550fd47daa9 100644 --- a/deps/openssl/config/archs/aix64-gcc-as/asm/include/openssl/crmf.h +++ b/deps/openssl/config/archs/aix64-gcc-as/asm/include/openssl/crmf.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/crmf.h.in * - * Copyright 2007-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2007-2025 The OpenSSL Project Authors. All Rights Reserved. * Copyright Nokia 2007-2019 * Copyright Siemens AG 2015-2019 * @@ -26,6 +26,7 @@ # include # include # include /* for GENERAL_NAME etc. */ +# include /* explicit #includes not strictly needed since implied by the above: */ # include @@ -43,9 +44,12 @@ extern "C" { # define OSSL_CRMF_SUBSEQUENTMESSAGE_ENCRCERT 0 # define OSSL_CRMF_SUBSEQUENTMESSAGE_CHALLENGERESP 1 - typedef struct ossl_crmf_encryptedvalue_st OSSL_CRMF_ENCRYPTEDVALUE; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_ENCRYPTEDVALUE) + +typedef struct ossl_crmf_encryptedkey_st OSSL_CRMF_ENCRYPTEDKEY; +DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_ENCRYPTEDKEY) + typedef struct ossl_crmf_msg_st OSSL_CRMF_MSG; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_MSG) DECLARE_ASN1_DUP_FUNCTION(OSSL_CRMF_MSG) @@ -77,6 +81,36 @@ SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CRMF_MSG, OSSL_CRMF_MSG, OSSL_CRMF_MSG) #define sk_OSSL_CRMF_MSG_set_cmp_func(sk, cmp) ((sk_OSSL_CRMF_MSG_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CRMF_MSG_sk_type(sk), ossl_check_OSSL_CRMF_MSG_compfunc_type(cmp))) typedef struct ossl_crmf_attributetypeandvalue_st OSSL_CRMF_ATTRIBUTETYPEANDVALUE; +void OSSL_CRMF_ATTRIBUTETYPEANDVALUE_free(OSSL_CRMF_ATTRIBUTETYPEANDVALUE *v); +DECLARE_ASN1_DUP_FUNCTION(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CRMF_ATTRIBUTETYPEANDVALUE, OSSL_CRMF_ATTRIBUTETYPEANDVALUE, OSSL_CRMF_ATTRIBUTETYPEANDVALUE) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_value(sk, idx) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_value(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), (idx))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_new(cmp) ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_new(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_compfunc_type(cmp))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_new_null() ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_new_null()) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_new_reserve(cmp, n) ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_compfunc_type(cmp), (n))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), (n)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_free(sk) OPENSSL_sk_free(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_delete(sk, i) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_delete(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), (i))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_delete_ptr(sk, ptr) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_pop(sk) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_pop(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_shift(sk) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_shift(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk),ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_freefunc_type(freefunc)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr), (idx)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_set(sk, idx, ptr) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_set(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), (idx), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr), pnum) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_dup(sk) ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_dup(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_copyfunc_type(copyfunc), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_freefunc_type(freefunc))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_set_cmp_func(sk, cmp) ((sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_compfunc_type(cmp))) + + typedef struct ossl_crmf_pbmparameter_st OSSL_CRMF_PBMPARAMETER; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_PBMPARAMETER) typedef struct ossl_crmf_poposigningkey_st OSSL_CRMF_POPOSIGNINGKEY; @@ -118,6 +152,7 @@ typedef struct ossl_crmf_singlepubinfo_st OSSL_CRMF_SINGLEPUBINFO; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_SINGLEPUBINFO) typedef struct ossl_crmf_certtemplate_st OSSL_CRMF_CERTTEMPLATE; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_CERTTEMPLATE) +DECLARE_ASN1_DUP_FUNCTION(OSSL_CRMF_CERTTEMPLATE) typedef STACK_OF(OSSL_CRMF_MSG) OSSL_CRMF_MSGS; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_MSGS) @@ -198,12 +233,14 @@ int OSSL_CRMF_MSGS_verify_popo(const OSSL_CRMF_MSGS *reqs, int rid, int acceptRAVerified, OSSL_LIB_CTX *libctx, const char *propq); OSSL_CRMF_CERTTEMPLATE *OSSL_CRMF_MSG_get0_tmpl(const OSSL_CRMF_MSG *crm); -const ASN1_INTEGER -*OSSL_CRMF_CERTTEMPLATE_get0_serialNumber(const OSSL_CRMF_CERTTEMPLATE *tmpl); +X509_PUBKEY +*OSSL_CRMF_CERTTEMPLATE_get0_publicKey(const OSSL_CRMF_CERTTEMPLATE *tmpl); const X509_NAME *OSSL_CRMF_CERTTEMPLATE_get0_subject(const OSSL_CRMF_CERTTEMPLATE *tmpl); const X509_NAME *OSSL_CRMF_CERTTEMPLATE_get0_issuer(const OSSL_CRMF_CERTTEMPLATE *tmpl); +const ASN1_INTEGER +*OSSL_CRMF_CERTTEMPLATE_get0_serialNumber(const OSSL_CRMF_CERTTEMPLATE *tmpl); X509_EXTENSIONS *OSSL_CRMF_CERTTEMPLATE_get0_extensions(const OSSL_CRMF_CERTTEMPLATE *tmpl); const X509_NAME @@ -215,10 +252,24 @@ int OSSL_CRMF_CERTTEMPLATE_fill(OSSL_CRMF_CERTTEMPLATE *tmpl, const X509_NAME *subject, const X509_NAME *issuer, const ASN1_INTEGER *serial); -X509 -*OSSL_CRMF_ENCRYPTEDVALUE_get1_encCert(const OSSL_CRMF_ENCRYPTEDVALUE *ecert, - OSSL_LIB_CTX *libctx, const char *propq, - EVP_PKEY *pkey); +X509 *OSSL_CRMF_ENCRYPTEDVALUE_get1_encCert(const OSSL_CRMF_ENCRYPTEDVALUE *ecert, + OSSL_LIB_CTX *libctx, const char *propq, + EVP_PKEY *pkey); +X509 *OSSL_CRMF_ENCRYPTEDKEY_get1_encCert(const OSSL_CRMF_ENCRYPTEDKEY *ecert, + OSSL_LIB_CTX *libctx, const char *propq, + EVP_PKEY *pkey, unsigned int flags); +unsigned char +*OSSL_CRMF_ENCRYPTEDVALUE_decrypt(const OSSL_CRMF_ENCRYPTEDVALUE *enc, + OSSL_LIB_CTX *libctx, const char *propq, + EVP_PKEY *pkey, int *outlen); +EVP_PKEY *OSSL_CRMF_ENCRYPTEDKEY_get1_pkey(const OSSL_CRMF_ENCRYPTEDKEY *encryptedKey, + X509_STORE *ts, STACK_OF(X509) *extra, EVP_PKEY *pkey, + X509 *cert, ASN1_OCTET_STRING *secret, + OSSL_LIB_CTX *libctx, const char *propq); +int OSSL_CRMF_MSG_centralkeygen_requested(const OSSL_CRMF_MSG *crm, const X509_REQ *p10cr); +# ifndef OPENSSL_NO_CMS +OSSL_CRMF_ENCRYPTEDKEY *OSSL_CRMF_ENCRYPTEDKEY_init_envdata(CMS_EnvelopedData *envdata); +# endif # ifdef __cplusplus } diff --git a/deps/openssl/config/archs/aix64-gcc-as/asm/include/openssl/crypto.h b/deps/openssl/config/archs/aix64-gcc-as/asm/include/openssl/crypto.h index 3f40be6d8c61d5..fd2cfd3e5a9ac4 100644 --- a/deps/openssl/config/archs/aix64-gcc-as/asm/include/openssl/crypto.h +++ b/deps/openssl/config/archs/aix64-gcc-as/asm/include/openssl/crypto.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/crypto.h.in * - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2024 The OpenSSL Project Authors. All Rights Reserved. * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved * * Licensed under the Apache License 2.0 (the "License"). You may not use @@ -85,9 +85,15 @@ int CRYPTO_THREAD_unlock(CRYPTO_RWLOCK *lock); void CRYPTO_THREAD_lock_free(CRYPTO_RWLOCK *lock); int CRYPTO_atomic_add(int *val, int amount, int *ret, CRYPTO_RWLOCK *lock); +int CRYPTO_atomic_add64(uint64_t *val, uint64_t op, uint64_t *ret, + CRYPTO_RWLOCK *lock); +int CRYPTO_atomic_and(uint64_t *val, uint64_t op, uint64_t *ret, + CRYPTO_RWLOCK *lock); int CRYPTO_atomic_or(uint64_t *val, uint64_t op, uint64_t *ret, CRYPTO_RWLOCK *lock); int CRYPTO_atomic_load(uint64_t *val, uint64_t *ret, CRYPTO_RWLOCK *lock); +int CRYPTO_atomic_load_int(int *val, int *ret, CRYPTO_RWLOCK *lock); +int CRYPTO_atomic_store(uint64_t *dst, uint64_t val, CRYPTO_RWLOCK *lock); /* No longer needed, so this is a no-op */ #define OPENSSL_malloc_init() while(0) continue @@ -96,6 +102,9 @@ int CRYPTO_atomic_load(uint64_t *val, uint64_t *ret, CRYPTO_RWLOCK *lock); CRYPTO_malloc(num, OPENSSL_FILE, OPENSSL_LINE) # define OPENSSL_zalloc(num) \ CRYPTO_zalloc(num, OPENSSL_FILE, OPENSSL_LINE) +# define OPENSSL_aligned_alloc(num, alignment, freeptr) \ + CRYPTO_aligned_alloc(num, alignment, freeptr, \ + OPENSSL_FILE, OPENSSL_LINE) # define OPENSSL_realloc(addr, num) \ CRYPTO_realloc(addr, num, OPENSSL_FILE, OPENSSL_LINE) # define OPENSSL_clear_realloc(addr, old_num, num) \ @@ -124,6 +133,7 @@ int CRYPTO_atomic_load(uint64_t *val, uint64_t *ret, CRYPTO_RWLOCK *lock); size_t OPENSSL_strlcpy(char *dst, const char *src, size_t siz); size_t OPENSSL_strlcat(char *dst, const char *src, size_t siz); size_t OPENSSL_strnlen(const char *str, size_t maxlen); +int OPENSSL_strtoul(const char *str, char **endptr, int base, unsigned long *num); int OPENSSL_buf2hexstr_ex(char *str, size_t str_n, size_t *strlength, const unsigned char *buf, size_t buflen, const char sep); @@ -160,6 +170,7 @@ const char *OpenSSL_version(int type); # define OPENSSL_FULL_VERSION_STRING 7 # define OPENSSL_MODULES_DIR 8 # define OPENSSL_CPU_INFO 9 +# define OPENSSL_WINCTX 10 const char *OPENSSL_info(int type); /* @@ -174,6 +185,7 @@ const char *OPENSSL_info(int type); # define OPENSSL_INFO_LIST_SEPARATOR 1006 # define OPENSSL_INFO_SEED_SOURCE 1007 # define OPENSSL_INFO_CPU_SETTINGS 1008 +# define OPENSSL_INFO_WINDOWS_CONTEXT 1009 int OPENSSL_issetugid(void); @@ -341,11 +353,14 @@ void CRYPTO_get_mem_functions(CRYPTO_malloc_fn *malloc_fn, CRYPTO_realloc_fn *realloc_fn, CRYPTO_free_fn *free_fn); -void *CRYPTO_malloc(size_t num, const char *file, int line); -void *CRYPTO_zalloc(size_t num, const char *file, int line); -void *CRYPTO_memdup(const void *str, size_t siz, const char *file, int line); -char *CRYPTO_strdup(const char *str, const char *file, int line); -char *CRYPTO_strndup(const char *str, size_t s, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_malloc(size_t num, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_zalloc(size_t num, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_aligned_alloc(size_t num, size_t align, + void **freeptr, const char *file, + int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_memdup(const void *str, size_t siz, const char *file, int line); +OSSL_CRYPTO_ALLOC char *CRYPTO_strdup(const char *str, const char *file, int line); +OSSL_CRYPTO_ALLOC char *CRYPTO_strndup(const char *str, size_t s, const char *file, int line); void CRYPTO_free(void *ptr, const char *file, int line); void CRYPTO_clear_free(void *ptr, size_t num, const char *file, int line); void *CRYPTO_realloc(void *addr, size_t num, const char *file, int line); @@ -354,8 +369,8 @@ void *CRYPTO_clear_realloc(void *addr, size_t old_num, size_t num, int CRYPTO_secure_malloc_init(size_t sz, size_t minsize); int CRYPTO_secure_malloc_done(void); -void *CRYPTO_secure_malloc(size_t num, const char *file, int line); -void *CRYPTO_secure_zalloc(size_t num, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_secure_malloc(size_t num, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_secure_zalloc(size_t num, const char *file, int line); void CRYPTO_secure_free(void *ptr, const char *file, int line); void CRYPTO_secure_clear_free(void *ptr, size_t num, const char *file, int line); @@ -376,6 +391,9 @@ void OPENSSL_cleanse(void *ptr, size_t len); # define CRYPTO_MEM_CHECK_ENABLE 0x2 /* Control and mode bit */ # define CRYPTO_MEM_CHECK_DISABLE 0x3 /* Control only */ +/* max allowed length for value of OPENSSL_MALLOC_FAILURES env var. */ +# define CRYPTO_MEM_CHECK_MAX_FS 256 + void CRYPTO_get_alloc_counts(int *mcount, int *rcount, int *fcount); # ifndef OPENSSL_NO_DEPRECATED_3_0 # define OPENSSL_mem_debug_push(info) \ @@ -551,6 +569,13 @@ int OSSL_LIB_CTX_load_config(OSSL_LIB_CTX *ctx, const char *config_file); void OSSL_LIB_CTX_free(OSSL_LIB_CTX *); OSSL_LIB_CTX *OSSL_LIB_CTX_get0_global_default(void); OSSL_LIB_CTX *OSSL_LIB_CTX_set0_default(OSSL_LIB_CTX *libctx); +int OSSL_LIB_CTX_get_conf_diagnostics(OSSL_LIB_CTX *ctx); +void OSSL_LIB_CTX_set_conf_diagnostics(OSSL_LIB_CTX *ctx, int value); + +void OSSL_sleep(uint64_t millis); + + +void *OSSL_LIB_CTX_get_data(OSSL_LIB_CTX *ctx, int index); # ifdef __cplusplus } diff --git a/deps/openssl/config/archs/aix64-gcc-as/asm/include/openssl/ct.h b/deps/openssl/config/archs/aix64-gcc-as/asm/include/openssl/ct.h index b6dd8c3547710a..e6dd1192a4e0b3 100644 --- a/deps/openssl/config/archs/aix64-gcc-as/asm/include/openssl/ct.h +++ b/deps/openssl/config/archs/aix64-gcc-as/asm/include/openssl/ct.h @@ -133,7 +133,7 @@ typedef enum { */ CT_POLICY_EVAL_CTX *CT_POLICY_EVAL_CTX_new_ex(OSSL_LIB_CTX *libctx, const char *propq); - + /* * The same as CT_POLICY_EVAL_CTX_new_ex() but the default library * context and property query string is used. diff --git a/deps/openssl/config/archs/aix64-gcc-as/asm/include/openssl/err.h b/deps/openssl/config/archs/aix64-gcc-as/asm/include/openssl/err.h index 2abf2483488181..daca18e7b757b0 100644 --- a/deps/openssl/config/archs/aix64-gcc-as/asm/include/openssl/err.h +++ b/deps/openssl/config/archs/aix64-gcc-as/asm/include/openssl/err.h @@ -1,5 +1,5 @@ /* - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -372,7 +372,7 @@ typedef struct ERR_string_data_st { } ERR_STRING_DATA; DEFINE_LHASH_OF_INTERNAL(ERR_STRING_DATA); -#define lh_ERR_STRING_DATA_new(hfn, cmp) ((LHASH_OF(ERR_STRING_DATA) *)OPENSSL_LH_new(ossl_check_ERR_STRING_DATA_lh_hashfunc_type(hfn), ossl_check_ERR_STRING_DATA_lh_compfunc_type(cmp))) +#define lh_ERR_STRING_DATA_new(hfn, cmp) ((LHASH_OF(ERR_STRING_DATA) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new(ossl_check_ERR_STRING_DATA_lh_hashfunc_type(hfn), ossl_check_ERR_STRING_DATA_lh_compfunc_type(cmp)), lh_ERR_STRING_DATA_hash_thunk, lh_ERR_STRING_DATA_comp_thunk, lh_ERR_STRING_DATA_doall_thunk, lh_ERR_STRING_DATA_doall_arg_thunk)) #define lh_ERR_STRING_DATA_free(lh) OPENSSL_LH_free(ossl_check_ERR_STRING_DATA_lh_type(lh)) #define lh_ERR_STRING_DATA_flush(lh) OPENSSL_LH_flush(ossl_check_ERR_STRING_DATA_lh_type(lh)) #define lh_ERR_STRING_DATA_insert(lh, ptr) ((ERR_STRING_DATA *)OPENSSL_LH_insert(ossl_check_ERR_STRING_DATA_lh_type(lh), ossl_check_ERR_STRING_DATA_lh_plain_type(ptr))) @@ -496,6 +496,14 @@ int ERR_get_next_error_library(void); int ERR_set_mark(void); int ERR_pop_to_mark(void); int ERR_clear_last_mark(void); +int ERR_count_to_mark(void); +int ERR_pop(void); + +ERR_STATE *OSSL_ERR_STATE_new(void); +void OSSL_ERR_STATE_save(ERR_STATE *es); +void OSSL_ERR_STATE_save_to_mark(ERR_STATE *es); +void OSSL_ERR_STATE_restore(const ERR_STATE *es); +void OSSL_ERR_STATE_free(ERR_STATE *es); #ifdef __cplusplus } diff --git a/deps/openssl/config/archs/aix64-gcc-as/asm/include/openssl/fipskey.h b/deps/openssl/config/archs/aix64-gcc-as/asm/include/openssl/fipskey.h index 42ba014b313ba8..929db18c678364 100644 --- a/deps/openssl/config/archs/aix64-gcc-as/asm/include/openssl/fipskey.h +++ b/deps/openssl/config/archs/aix64-gcc-as/asm/include/openssl/fipskey.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/fipskey.h.in * - * Copyright 2020-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2020-2024 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -29,6 +29,11 @@ extern "C" { */ #define FIPS_KEY_STRING "f4556650ac31d35461610bac4ed81b1a181b2d8a43ea2854cbae22ca74560813" +/* + * The FIPS provider vendor name, as a string. + */ +#define FIPS_VENDOR "OpenSSL FIPS Provider" + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/aix64-gcc-as/asm/include/openssl/lhash.h b/deps/openssl/config/archs/aix64-gcc-as/asm/include/openssl/lhash.h index 39dd6254acdeb6..62c55b20fd9716 100644 --- a/deps/openssl/config/archs/aix64-gcc-as/asm/include/openssl/lhash.h +++ b/deps/openssl/config/archs/aix64-gcc-as/asm/include/openssl/lhash.h @@ -1,5 +1,5 @@ /* - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2024 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -24,6 +24,9 @@ # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -31,9 +34,13 @@ extern "C" { typedef struct lhash_node_st OPENSSL_LH_NODE; typedef int (*OPENSSL_LH_COMPFUNC) (const void *, const void *); +typedef int (*OPENSSL_LH_COMPFUNCTHUNK) (const void *, const void *, OPENSSL_LH_COMPFUNC cfn); typedef unsigned long (*OPENSSL_LH_HASHFUNC) (const void *); +typedef unsigned long (*OPENSSL_LH_HASHFUNCTHUNK) (const void *, OPENSSL_LH_HASHFUNC hfn); typedef void (*OPENSSL_LH_DOALL_FUNC) (void *); +typedef void (*OPENSSL_LH_DOALL_FUNC_THUNK) (void *, OPENSSL_LH_DOALL_FUNC doall); typedef void (*OPENSSL_LH_DOALL_FUNCARG) (void *, void *); +typedef void (*OPENSSL_LH_DOALL_FUNCARG_THUNK) (void *, void *, OPENSSL_LH_DOALL_FUNCARG doall); typedef struct lhash_st OPENSSL_LHASH; /* @@ -79,26 +86,40 @@ typedef struct lhash_st OPENSSL_LHASH; int OPENSSL_LH_error(OPENSSL_LHASH *lh); OPENSSL_LHASH *OPENSSL_LH_new(OPENSSL_LH_HASHFUNC h, OPENSSL_LH_COMPFUNC c); +OPENSSL_LHASH *OPENSSL_LH_set_thunks(OPENSSL_LHASH *lh, + OPENSSL_LH_HASHFUNCTHUNK hw, + OPENSSL_LH_COMPFUNCTHUNK cw, + OPENSSL_LH_DOALL_FUNC_THUNK daw, + OPENSSL_LH_DOALL_FUNCARG_THUNK daaw); void OPENSSL_LH_free(OPENSSL_LHASH *lh); void OPENSSL_LH_flush(OPENSSL_LHASH *lh); void *OPENSSL_LH_insert(OPENSSL_LHASH *lh, void *data); void *OPENSSL_LH_delete(OPENSSL_LHASH *lh, const void *data); void *OPENSSL_LH_retrieve(OPENSSL_LHASH *lh, const void *data); void OPENSSL_LH_doall(OPENSSL_LHASH *lh, OPENSSL_LH_DOALL_FUNC func); -void OPENSSL_LH_doall_arg(OPENSSL_LHASH *lh, OPENSSL_LH_DOALL_FUNCARG func, void *arg); +void OPENSSL_LH_doall_arg(OPENSSL_LHASH *lh, + OPENSSL_LH_DOALL_FUNCARG func, void *arg); +void OPENSSL_LH_doall_arg_thunk(OPENSSL_LHASH *lh, + OPENSSL_LH_DOALL_FUNCARG_THUNK daaw, + OPENSSL_LH_DOALL_FUNCARG fn, void *arg); + unsigned long OPENSSL_LH_strhash(const char *c); unsigned long OPENSSL_LH_num_items(const OPENSSL_LHASH *lh); unsigned long OPENSSL_LH_get_down_load(const OPENSSL_LHASH *lh); void OPENSSL_LH_set_down_load(OPENSSL_LHASH *lh, unsigned long down_load); # ifndef OPENSSL_NO_STDIO -void OPENSSL_LH_stats(const OPENSSL_LHASH *lh, FILE *fp); -void OPENSSL_LH_node_stats(const OPENSSL_LHASH *lh, FILE *fp); -void OPENSSL_LH_node_usage_stats(const OPENSSL_LHASH *lh, FILE *fp); +# ifndef OPENSSL_NO_DEPRECATED_3_1 +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_stats(const OPENSSL_LHASH *lh, FILE *fp); +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_node_stats(const OPENSSL_LHASH *lh, FILE *fp); +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_node_usage_stats(const OPENSSL_LHASH *lh, FILE *fp); +# endif +# endif +# ifndef OPENSSL_NO_DEPRECATED_3_1 +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_stats_bio(const OPENSSL_LHASH *lh, BIO *out); +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_node_stats_bio(const OPENSSL_LHASH *lh, BIO *out); +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_node_usage_stats_bio(const OPENSSL_LHASH *lh, BIO *out); # endif -void OPENSSL_LH_stats_bio(const OPENSSL_LHASH *lh, BIO *out); -void OPENSSL_LH_node_stats_bio(const OPENSSL_LHASH *lh, BIO *out); -void OPENSSL_LH_node_usage_stats_bio(const OPENSSL_LHASH *lh, BIO *out); # ifndef OPENSSL_NO_DEPRECATED_1_1_0 # define _LHASH OPENSSL_LHASH @@ -129,110 +150,190 @@ void OPENSSL_LH_node_usage_stats_bio(const OPENSSL_LHASH *lh, BIO *out); /* Helper macro for internal use */ # define DEFINE_LHASH_OF_INTERNAL(type) \ - LHASH_OF(type) { union lh_##type##_dummy { void* d1; unsigned long d2; int d3; } dummy; }; \ + LHASH_OF(type) { \ + union lh_##type##_dummy { void* d1; unsigned long d2; int d3; } dummy; \ + }; \ typedef int (*lh_##type##_compfunc)(const type *a, const type *b); \ typedef unsigned long (*lh_##type##_hashfunc)(const type *a); \ typedef void (*lh_##type##_doallfunc)(type *a); \ - static ossl_unused ossl_inline type *ossl_check_##type##_lh_plain_type(type *ptr) \ + static ossl_inline unsigned long lh_##type##_hash_thunk(const void *data, OPENSSL_LH_HASHFUNC hfn) \ + { \ + unsigned long (*hfn_conv)(const type *) = (unsigned long (*)(const type *))hfn; \ + return hfn_conv((const type *)data); \ + } \ + static ossl_inline int lh_##type##_comp_thunk(const void *da, const void *db, OPENSSL_LH_COMPFUNC cfn) \ + { \ + int (*cfn_conv)(const type *, const type *) = (int (*)(const type *, const type *))cfn; \ + return cfn_conv((const type *)da, (const type *)db); \ + } \ + static ossl_inline void lh_##type##_doall_thunk(void *node, OPENSSL_LH_DOALL_FUNC doall) \ + { \ + void (*doall_conv)(type *) = (void (*)(type *))doall; \ + doall_conv((type *)node); \ + } \ + static ossl_inline void lh_##type##_doall_arg_thunk(void *node, void *arg, OPENSSL_LH_DOALL_FUNCARG doall) \ + { \ + void (*doall_conv)(type *, void *) = (void (*)(type *, void *))doall; \ + doall_conv((type *)node, arg); \ + } \ + static ossl_unused ossl_inline type *\ + ossl_check_##type##_lh_plain_type(type *ptr) \ { \ return ptr; \ } \ - static ossl_unused ossl_inline const type *ossl_check_const_##type##_lh_plain_type(const type *ptr) \ + static ossl_unused ossl_inline const type * \ + ossl_check_const_##type##_lh_plain_type(const type *ptr) \ { \ return ptr; \ } \ - static ossl_unused ossl_inline const OPENSSL_LHASH *ossl_check_const_##type##_lh_type(const LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline const OPENSSL_LHASH * \ + ossl_check_const_##type##_lh_type(const LHASH_OF(type) *lh) \ { \ return (const OPENSSL_LHASH *)lh; \ } \ - static ossl_unused ossl_inline OPENSSL_LHASH *ossl_check_##type##_lh_type(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline OPENSSL_LHASH * \ + ossl_check_##type##_lh_type(LHASH_OF(type) *lh) \ { \ return (OPENSSL_LHASH *)lh; \ } \ - static ossl_unused ossl_inline OPENSSL_LH_COMPFUNC ossl_check_##type##_lh_compfunc_type(lh_##type##_compfunc cmp) \ + static ossl_unused ossl_inline OPENSSL_LH_COMPFUNC \ + ossl_check_##type##_lh_compfunc_type(lh_##type##_compfunc cmp) \ { \ return (OPENSSL_LH_COMPFUNC)cmp; \ } \ - static ossl_unused ossl_inline OPENSSL_LH_HASHFUNC ossl_check_##type##_lh_hashfunc_type(lh_##type##_hashfunc hfn) \ + static ossl_unused ossl_inline OPENSSL_LH_HASHFUNC \ + ossl_check_##type##_lh_hashfunc_type(lh_##type##_hashfunc hfn) \ { \ return (OPENSSL_LH_HASHFUNC)hfn; \ } \ - static ossl_unused ossl_inline OPENSSL_LH_DOALL_FUNC ossl_check_##type##_lh_doallfunc_type(lh_##type##_doallfunc dfn) \ + static ossl_unused ossl_inline OPENSSL_LH_DOALL_FUNC \ + ossl_check_##type##_lh_doallfunc_type(lh_##type##_doallfunc dfn) \ { \ return (OPENSSL_LH_DOALL_FUNC)dfn; \ } \ LHASH_OF(type) -# define DEFINE_LHASH_OF(type) \ - LHASH_OF(type) { union lh_##type##_dummy { void* d1; unsigned long d2; int d3; } dummy; }; \ - static ossl_unused ossl_inline LHASH_OF(type) *lh_##type##_new(unsigned long (*hfn)(const type *), \ - int (*cfn)(const type *, const type *)) \ +# ifndef OPENSSL_NO_DEPRECATED_3_1 +# define DEFINE_LHASH_OF_DEPRECATED(type) \ + static ossl_unused ossl_inline void \ + lh_##type##_node_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ { \ - return (LHASH_OF(type) *) \ - OPENSSL_LH_new((OPENSSL_LH_HASHFUNC)hfn, (OPENSSL_LH_COMPFUNC)cfn); \ + OPENSSL_LH_node_stats_bio((const OPENSSL_LHASH *)lh, out); \ } \ - static ossl_unused ossl_inline void lh_##type##_free(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline void \ + lh_##type##_node_usage_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + { \ + OPENSSL_LH_node_usage_stats_bio((const OPENSSL_LHASH *)lh, out); \ + } \ + static ossl_unused ossl_inline void \ + lh_##type##_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + { \ + OPENSSL_LH_stats_bio((const OPENSSL_LHASH *)lh, out); \ + } +# else +# define DEFINE_LHASH_OF_DEPRECATED(type) +# endif + +# define DEFINE_LHASH_OF_EX(type) \ + LHASH_OF(type) { \ + union lh_##type##_dummy { void* d1; unsigned long d2; int d3; } dummy; \ + }; \ + static unsigned long \ + lh_##type##_hfn_thunk(const void *data, OPENSSL_LH_HASHFUNC hfn) \ + { \ + unsigned long (*hfn_conv)(const type *) = (unsigned long (*)(const type *))hfn; \ + return hfn_conv((const type *)data); \ + } \ + static int lh_##type##_cfn_thunk(const void *da, const void *db, OPENSSL_LH_COMPFUNC cfn) \ + { \ + int (*cfn_conv)(const type *, const type *) = (int (*)(const type *, const type *))cfn; \ + return cfn_conv((const type *)da, (const type *)db); \ + } \ + static ossl_unused ossl_inline void \ + lh_##type##_free(LHASH_OF(type) *lh) \ { \ OPENSSL_LH_free((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline void lh_##type##_flush(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline void \ + lh_##type##_flush(LHASH_OF(type) *lh) \ { \ OPENSSL_LH_flush((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline type *lh_##type##_insert(LHASH_OF(type) *lh, type *d) \ + static ossl_unused ossl_inline type * \ + lh_##type##_insert(LHASH_OF(type) *lh, type *d) \ { \ return (type *)OPENSSL_LH_insert((OPENSSL_LHASH *)lh, d); \ } \ - static ossl_unused ossl_inline type *lh_##type##_delete(LHASH_OF(type) *lh, const type *d) \ + static ossl_unused ossl_inline type * \ + lh_##type##_delete(LHASH_OF(type) *lh, const type *d) \ { \ return (type *)OPENSSL_LH_delete((OPENSSL_LHASH *)lh, d); \ } \ - static ossl_unused ossl_inline type *lh_##type##_retrieve(LHASH_OF(type) *lh, const type *d) \ + static ossl_unused ossl_inline type * \ + lh_##type##_retrieve(LHASH_OF(type) *lh, const type *d) \ { \ return (type *)OPENSSL_LH_retrieve((OPENSSL_LHASH *)lh, d); \ } \ - static ossl_unused ossl_inline int lh_##type##_error(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline int \ + lh_##type##_error(LHASH_OF(type) *lh) \ { \ return OPENSSL_LH_error((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline unsigned long lh_##type##_num_items(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline unsigned long \ + lh_##type##_num_items(LHASH_OF(type) *lh) \ { \ return OPENSSL_LH_num_items((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline void lh_##type##_node_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + static ossl_unused ossl_inline unsigned long \ + lh_##type##_get_down_load(LHASH_OF(type) *lh) \ { \ - OPENSSL_LH_node_stats_bio((const OPENSSL_LHASH *)lh, out); \ + return OPENSSL_LH_get_down_load((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline void lh_##type##_node_usage_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + static ossl_unused ossl_inline void \ + lh_##type##_set_down_load(LHASH_OF(type) *lh, unsigned long dl) \ { \ - OPENSSL_LH_node_usage_stats_bio((const OPENSSL_LHASH *)lh, out); \ + OPENSSL_LH_set_down_load((OPENSSL_LHASH *)lh, dl); \ } \ - static ossl_unused ossl_inline void lh_##type##_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall_thunk(void *node, OPENSSL_LH_DOALL_FUNC doall) \ { \ - OPENSSL_LH_stats_bio((const OPENSSL_LHASH *)lh, out); \ + void (*doall_conv)(type *) = (void (*)(type *))doall; \ + doall_conv((type *)node); \ } \ - static ossl_unused ossl_inline unsigned long lh_##type##_get_down_load(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall_arg_thunk(void *node, void *arg, OPENSSL_LH_DOALL_FUNCARG doall) \ { \ - return OPENSSL_LH_get_down_load((OPENSSL_LHASH *)lh); \ + void (*doall_conv)(type *, void *) = (void (*)(type *, void *))doall; \ + doall_conv((type *)node, arg); \ } \ - static ossl_unused ossl_inline void lh_##type##_set_down_load(LHASH_OF(type) *lh, unsigned long dl) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall(LHASH_OF(type) *lh, void (*doall)(type *)) \ { \ - OPENSSL_LH_set_down_load((OPENSSL_LHASH *)lh, dl); \ + OPENSSL_LH_doall((OPENSSL_LHASH *)lh, (OPENSSL_LH_DOALL_FUNC)doall); \ } \ - static ossl_unused ossl_inline void lh_##type##_doall(LHASH_OF(type) *lh, \ - void (*doall)(type *)) \ + static ossl_unused ossl_inline LHASH_OF(type) * \ + lh_##type##_new(unsigned long (*hfn)(const type *), \ + int (*cfn)(const type *, const type *)) \ { \ - OPENSSL_LH_doall((OPENSSL_LHASH *)lh, (OPENSSL_LH_DOALL_FUNC)doall); \ + return (LHASH_OF(type) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new((OPENSSL_LH_HASHFUNC)hfn, (OPENSSL_LH_COMPFUNC)cfn), \ + lh_##type##_hfn_thunk, lh_##type##_cfn_thunk, \ + lh_##type##_doall_thunk, \ + lh_##type##_doall_arg_thunk); \ } \ - static ossl_unused ossl_inline void lh_##type##_doall_arg(LHASH_OF(type) *lh, \ - void (*doallarg)(type *, void *), \ - void *arg) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall_arg(LHASH_OF(type) *lh, \ + void (*doallarg)(type *, void *), void *arg) \ { \ OPENSSL_LH_doall_arg((OPENSSL_LHASH *)lh, \ (OPENSSL_LH_DOALL_FUNCARG)doallarg, arg); \ } \ LHASH_OF(type) +# define DEFINE_LHASH_OF(type) \ + DEFINE_LHASH_OF_EX(type); \ + DEFINE_LHASH_OF_DEPRECATED(type) \ + LHASH_OF(type) + #define IMPLEMENT_LHASH_DOALL_ARG_CONST(type, argtype) \ int_implement_lhash_doall(type, argtype, const type) @@ -240,17 +341,26 @@ void OPENSSL_LH_node_usage_stats_bio(const OPENSSL_LHASH *lh, BIO *out); int_implement_lhash_doall(type, argtype, type) #define int_implement_lhash_doall(type, argtype, cbargtype) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall_##argtype##_thunk(void *node, void *arg, OPENSSL_LH_DOALL_FUNCARG fn) \ + { \ + void (*fn_conv)(cbargtype *, argtype *) = (void (*)(cbargtype *, argtype *))fn; \ + fn_conv((cbargtype *)node, (argtype *)arg); \ + } \ static ossl_unused ossl_inline void \ lh_##type##_doall_##argtype(LHASH_OF(type) *lh, \ void (*fn)(cbargtype *, argtype *), \ argtype *arg) \ { \ - OPENSSL_LH_doall_arg((OPENSSL_LHASH *)lh, (OPENSSL_LH_DOALL_FUNCARG)fn, (void *)arg); \ + OPENSSL_LH_doall_arg_thunk((OPENSSL_LHASH *)lh, \ + lh_##type##_doall_##argtype##_thunk, \ + (OPENSSL_LH_DOALL_FUNCARG)fn, \ + (void *)arg); \ } \ LHASH_OF(type) DEFINE_LHASH_OF_INTERNAL(OPENSSL_STRING); -#define lh_OPENSSL_STRING_new(hfn, cmp) ((LHASH_OF(OPENSSL_STRING) *)OPENSSL_LH_new(ossl_check_OPENSSL_STRING_lh_hashfunc_type(hfn), ossl_check_OPENSSL_STRING_lh_compfunc_type(cmp))) +#define lh_OPENSSL_STRING_new(hfn, cmp) ((LHASH_OF(OPENSSL_STRING) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new(ossl_check_OPENSSL_STRING_lh_hashfunc_type(hfn), ossl_check_OPENSSL_STRING_lh_compfunc_type(cmp)), lh_OPENSSL_STRING_hash_thunk, lh_OPENSSL_STRING_comp_thunk, lh_OPENSSL_STRING_doall_thunk, lh_OPENSSL_STRING_doall_arg_thunk)) #define lh_OPENSSL_STRING_free(lh) OPENSSL_LH_free(ossl_check_OPENSSL_STRING_lh_type(lh)) #define lh_OPENSSL_STRING_flush(lh) OPENSSL_LH_flush(ossl_check_OPENSSL_STRING_lh_type(lh)) #define lh_OPENSSL_STRING_insert(lh, ptr) ((OPENSSL_STRING *)OPENSSL_LH_insert(ossl_check_OPENSSL_STRING_lh_type(lh), ossl_check_OPENSSL_STRING_lh_plain_type(ptr))) @@ -265,7 +375,7 @@ DEFINE_LHASH_OF_INTERNAL(OPENSSL_STRING); #define lh_OPENSSL_STRING_set_down_load(lh, dl) OPENSSL_LH_set_down_load(ossl_check_OPENSSL_STRING_lh_type(lh), dl) #define lh_OPENSSL_STRING_doall(lh, dfn) OPENSSL_LH_doall(ossl_check_OPENSSL_STRING_lh_type(lh), ossl_check_OPENSSL_STRING_lh_doallfunc_type(dfn)) DEFINE_LHASH_OF_INTERNAL(OPENSSL_CSTRING); -#define lh_OPENSSL_CSTRING_new(hfn, cmp) ((LHASH_OF(OPENSSL_CSTRING) *)OPENSSL_LH_new(ossl_check_OPENSSL_CSTRING_lh_hashfunc_type(hfn), ossl_check_OPENSSL_CSTRING_lh_compfunc_type(cmp))) +#define lh_OPENSSL_CSTRING_new(hfn, cmp) ((LHASH_OF(OPENSSL_CSTRING) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new(ossl_check_OPENSSL_CSTRING_lh_hashfunc_type(hfn), ossl_check_OPENSSL_CSTRING_lh_compfunc_type(cmp)), lh_OPENSSL_CSTRING_hash_thunk, lh_OPENSSL_CSTRING_comp_thunk, lh_OPENSSL_CSTRING_doall_thunk, lh_OPENSSL_CSTRING_doall_arg_thunk)) #define lh_OPENSSL_CSTRING_free(lh) OPENSSL_LH_free(ossl_check_OPENSSL_CSTRING_lh_type(lh)) #define lh_OPENSSL_CSTRING_flush(lh) OPENSSL_LH_flush(ossl_check_OPENSSL_CSTRING_lh_type(lh)) #define lh_OPENSSL_CSTRING_insert(lh, ptr) ((OPENSSL_CSTRING *)OPENSSL_LH_insert(ossl_check_OPENSSL_CSTRING_lh_type(lh), ossl_check_OPENSSL_CSTRING_lh_plain_type(ptr))) diff --git a/deps/openssl/config/archs/aix64-gcc-as/asm/include/openssl/opensslv.h b/deps/openssl/config/archs/aix64-gcc-as/asm/include/openssl/opensslv.h index 5fb5bc63056fe0..dd50d89cb9982d 100644 --- a/deps/openssl/config/archs/aix64-gcc-as/asm/include/openssl/opensslv.h +++ b/deps/openssl/config/archs/aix64-gcc-as/asm/include/openssl/opensslv.h @@ -28,8 +28,8 @@ extern "C" { * These macros express version number MAJOR.MINOR.PATCH exactly */ # define OPENSSL_VERSION_MAJOR 3 -# define OPENSSL_VERSION_MINOR 0 -# define OPENSSL_VERSION_PATCH 17 +# define OPENSSL_VERSION_MINOR 5 +# define OPENSSL_VERSION_PATCH 1 /* * Additional version information @@ -74,8 +74,8 @@ extern "C" { * longer variant with OPENSSL_VERSION_PRE_RELEASE_STR and * OPENSSL_VERSION_BUILD_METADATA_STR appended. */ -# define OPENSSL_VERSION_STR "3.0.17" -# define OPENSSL_FULL_VERSION_STR "3.0.17" +# define OPENSSL_VERSION_STR "3.5.1" +# define OPENSSL_FULL_VERSION_STR "3.5.1" /* * SECTION 3: ADDITIONAL METADATA @@ -88,7 +88,7 @@ extern "C" { * SECTION 4: BACKWARD COMPATIBILITY */ -# define OPENSSL_VERSION_TEXT "OpenSSL 3.0.17 1 Jul 2025" +# define OPENSSL_VERSION_TEXT "OpenSSL 3.5.1 1 Jul 2025" /* Synthesize OPENSSL_VERSION_NUMBER with the layout 0xMNN00PPSL */ # ifdef OPENSSL_VERSION_PRE_RELEASE diff --git a/deps/openssl/config/archs/aix64-gcc-as/asm/include/openssl/pkcs12.h b/deps/openssl/config/archs/aix64-gcc-as/asm/include/openssl/pkcs12.h index c5e0cab06491ec..0809645dad0bbf 100644 --- a/deps/openssl/config/archs/aix64-gcc-as/asm/include/openssl/pkcs12.h +++ b/deps/openssl/config/archs/aix64-gcc-as/asm/include/openssl/pkcs12.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/pkcs12.h.in * - * Copyright 1999-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1999-2024 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -25,6 +25,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -41,6 +44,7 @@ extern "C" { # define PKCS12_MAC_KEY_LENGTH 20 +/* The macro is expected to be used only internally. Kept for backwards compatibility. */ # define PKCS12_SALT_LEN 8 /* It's not clear if these are actually needed... */ @@ -130,7 +134,9 @@ int PKCS12_SAFEBAG_get_bag_nid(const PKCS12_SAFEBAG *bag); const ASN1_TYPE *PKCS12_SAFEBAG_get0_bag_obj(const PKCS12_SAFEBAG *bag); const ASN1_OBJECT *PKCS12_SAFEBAG_get0_bag_type(const PKCS12_SAFEBAG *bag); +X509 *PKCS12_SAFEBAG_get1_cert_ex(const PKCS12_SAFEBAG *bag, OSSL_LIB_CTX *libctx, const char *propq); X509 *PKCS12_SAFEBAG_get1_cert(const PKCS12_SAFEBAG *bag); +X509_CRL *PKCS12_SAFEBAG_get1_crl_ex(const PKCS12_SAFEBAG *bag, OSSL_LIB_CTX *libctx, const char *propq); X509_CRL *PKCS12_SAFEBAG_get1_crl(const PKCS12_SAFEBAG *bag); const STACK_OF(PKCS12_SAFEBAG) * PKCS12_SAFEBAG_get0_safes(const PKCS12_SAFEBAG *bag); @@ -218,6 +224,7 @@ ASN1_TYPE *PKCS12_get_attr_gen(const STACK_OF(X509_ATTRIBUTE) *attrs, char *PKCS12_get_friendlyname(PKCS12_SAFEBAG *bag); const STACK_OF(X509_ATTRIBUTE) * PKCS12_SAFEBAG_get0_attrs(const PKCS12_SAFEBAG *bag); +void PKCS12_SAFEBAG_set0_attrs(PKCS12_SAFEBAG *bag, STACK_OF(X509_ATTRIBUTE) *attrs); unsigned char *PKCS12_pbe_crypt(const X509_ALGOR *algor, const char *pass, int passlen, const unsigned char *in, int inlen, @@ -285,6 +292,9 @@ int PKCS12_verify_mac(PKCS12 *p12, const char *pass, int passlen); int PKCS12_set_mac(PKCS12 *p12, const char *pass, int passlen, unsigned char *salt, int saltlen, int iter, const EVP_MD *md_type); +int PKCS12_set_pbmac1_pbkdf2(PKCS12 *p12, const char *pass, int passlen, + unsigned char *salt, int saltlen, int iter, + const EVP_MD *md_type, const char *prf_md_name); int PKCS12_setup_mac(PKCS12 *p12, int iter, unsigned char *salt, int saltlen, const EVP_MD *md_type); unsigned char *OPENSSL_asc2uni(const char *asc, int asclen, @@ -305,6 +315,7 @@ DECLARE_ASN1_ITEM(PKCS12_AUTHSAFES) void PKCS12_PBE_add(void); int PKCS12_parse(PKCS12 *p12, const char *pass, EVP_PKEY **pkey, X509 **cert, STACK_OF(X509) **ca); +typedef int PKCS12_create_cb(PKCS12_SAFEBAG *bag, void *cbarg); PKCS12 *PKCS12_create(const char *pass, const char *name, EVP_PKEY *pkey, X509 *cert, STACK_OF(X509) *ca, int nid_key, int nid_cert, int iter, int mac_iter, int keytype); @@ -312,6 +323,11 @@ PKCS12 *PKCS12_create_ex(const char *pass, const char *name, EVP_PKEY *pkey, X509 *cert, STACK_OF(X509) *ca, int nid_key, int nid_cert, int iter, int mac_iter, int keytype, OSSL_LIB_CTX *ctx, const char *propq); +PKCS12 *PKCS12_create_ex2(const char *pass, const char *name, EVP_PKEY *pkey, + X509 *cert, STACK_OF(X509) *ca, int nid_key, int nid_cert, + int iter, int mac_iter, int keytype, + OSSL_LIB_CTX *ctx, const char *propq, + PKCS12_create_cb *cb, void *cbarg); PKCS12_SAFEBAG *PKCS12_add_cert(STACK_OF(PKCS12_SAFEBAG) **pbags, X509 *cert); PKCS12_SAFEBAG *PKCS12_add_key(STACK_OF(PKCS12_SAFEBAG) **pbags, diff --git a/deps/openssl/config/archs/aix64-gcc-as/asm/include/openssl/pkcs7.h b/deps/openssl/config/archs/aix64-gcc-as/asm/include/openssl/pkcs7.h index 0ce79bf4fa160e..fa68462aff973b 100644 --- a/deps/openssl/config/archs/aix64-gcc-as/asm/include/openssl/pkcs7.h +++ b/deps/openssl/config/archs/aix64-gcc-as/asm/include/openssl/pkcs7.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/pkcs7.h.in * - * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -28,6 +28,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -131,8 +134,8 @@ SKM_DEFINE_STACK_OF_INTERNAL(PKCS7_RECIP_INFO, PKCS7_RECIP_INFO, PKCS7_RECIP_INF typedef struct pkcs7_signed_st { ASN1_INTEGER *version; /* version 1 */ STACK_OF(X509_ALGOR) *md_algs; /* md used */ - STACK_OF(X509) *cert; /* [ 0 ] */ - STACK_OF(X509_CRL) *crl; /* [ 1 ] */ + STACK_OF(X509) *cert; /* [ 0 ] */ /* name should be 'certificates' */ + STACK_OF(X509_CRL) *crl; /* [ 1 ] */ /* name should be 'crls' */ STACK_OF(PKCS7_SIGNER_INFO) *signer_info; struct pkcs7_st *contents; } PKCS7_SIGNED; @@ -158,8 +161,8 @@ typedef struct pkcs7_enveloped_st { typedef struct pkcs7_signedandenveloped_st { ASN1_INTEGER *version; /* version 1 */ STACK_OF(X509_ALGOR) *md_algs; /* md used */ - STACK_OF(X509) *cert; /* [ 0 ] */ - STACK_OF(X509_CRL) *crl; /* [ 1 ] */ + STACK_OF(X509) *cert; /* [ 0 ] */ /* name should be 'certificates' */ + STACK_OF(X509_CRL) *crl; /* [ 1 ] */ /* name should be 'crls' */ STACK_OF(PKCS7_SIGNER_INFO) *signer_info; PKCS7_ENC_CONTENT *enc_data; STACK_OF(PKCS7_RECIP_INFO) *recipientinfo; @@ -200,7 +203,7 @@ typedef struct pkcs7_st { /* NID_pkcs7_data */ ASN1_OCTET_STRING *data; /* NID_pkcs7_signed */ - PKCS7_SIGNED *sign; + PKCS7_SIGNED *sign; /* field name 'signed' would clash with C keyword */ /* NID_pkcs7_enveloped */ PKCS7_ENVELOPE *enveloped; /* NID_pkcs7_signedAndEnveloped */ @@ -341,13 +344,13 @@ int PKCS7_SIGNER_INFO_set(PKCS7_SIGNER_INFO *p7i, X509 *x509, EVP_PKEY *pkey, const EVP_MD *dgst); int PKCS7_SIGNER_INFO_sign(PKCS7_SIGNER_INFO *si); int PKCS7_add_signer(PKCS7 *p7, PKCS7_SIGNER_INFO *p7i); -int PKCS7_add_certificate(PKCS7 *p7, X509 *x509); -int PKCS7_add_crl(PKCS7 *p7, X509_CRL *x509); +int PKCS7_add_certificate(PKCS7 *p7, X509 *cert); +int PKCS7_add_crl(PKCS7 *p7, X509_CRL *crl); int PKCS7_content_new(PKCS7 *p7, int nid); int PKCS7_dataVerify(X509_STORE *cert_store, X509_STORE_CTX *ctx, BIO *bio, PKCS7 *p7, PKCS7_SIGNER_INFO *si); int PKCS7_signatureVerify(BIO *bio, PKCS7 *p7, PKCS7_SIGNER_INFO *si, - X509 *x509); + X509 *signer); BIO *PKCS7_dataInit(PKCS7 *p7, BIO *bio); int PKCS7_dataFinal(PKCS7 *p7, BIO *bio); diff --git a/deps/openssl/config/archs/aix64-gcc-as/asm/include/openssl/ssl.h b/deps/openssl/config/archs/aix64-gcc-as/asm/include/openssl/ssl.h index 3df725c56d6c5e..7e3d89c7ef3dc9 100644 --- a/deps/openssl/config/archs/aix64-gcc-as/asm/include/openssl/ssl.h +++ b/deps/openssl/config/archs/aix64-gcc-as/asm/include/openssl/ssl.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/ssl.h.in * - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved * Copyright 2005 Nokia. All rights reserved. * @@ -24,6 +24,7 @@ # endif # include +# include # include # include # include @@ -42,6 +43,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -231,10 +235,8 @@ typedef struct ssl_cipher_st SSL_CIPHER; typedef struct ssl_session_st SSL_SESSION; typedef struct tls_sigalgs_st TLS_SIGALGS; typedef struct ssl_conf_ctx_st SSL_CONF_CTX; -typedef struct ssl_comp_st SSL_COMP; STACK_OF(SSL_CIPHER); -STACK_OF(SSL_COMP); /* SRTP protection profiles for use with the use_srtp extension (RFC 5764)*/ typedef struct srtp_protection_profile_st { @@ -278,28 +280,31 @@ typedef int (*tls_session_secret_cb_fn)(SSL *s, void *secret, int *secret_len, /* Extension context codes */ /* This extension is only allowed in TLS */ -#define SSL_EXT_TLS_ONLY 0x0001 +#define SSL_EXT_TLS_ONLY 0x00001 /* This extension is only allowed in DTLS */ -#define SSL_EXT_DTLS_ONLY 0x0002 +#define SSL_EXT_DTLS_ONLY 0x00002 /* Some extensions may be allowed in DTLS but we don't implement them for it */ -#define SSL_EXT_TLS_IMPLEMENTATION_ONLY 0x0004 +#define SSL_EXT_TLS_IMPLEMENTATION_ONLY 0x00004 /* Most extensions are not defined for SSLv3 but EXT_TYPE_renegotiate is */ -#define SSL_EXT_SSL3_ALLOWED 0x0008 +#define SSL_EXT_SSL3_ALLOWED 0x00008 /* Extension is only defined for TLS1.2 and below */ -#define SSL_EXT_TLS1_2_AND_BELOW_ONLY 0x0010 +#define SSL_EXT_TLS1_2_AND_BELOW_ONLY 0x00010 /* Extension is only defined for TLS1.3 and above */ -#define SSL_EXT_TLS1_3_ONLY 0x0020 +#define SSL_EXT_TLS1_3_ONLY 0x00020 /* Ignore this extension during parsing if we are resuming */ -#define SSL_EXT_IGNORE_ON_RESUMPTION 0x0040 -#define SSL_EXT_CLIENT_HELLO 0x0080 +#define SSL_EXT_IGNORE_ON_RESUMPTION 0x00040 +#define SSL_EXT_CLIENT_HELLO 0x00080 /* Really means TLS1.2 or below */ -#define SSL_EXT_TLS1_2_SERVER_HELLO 0x0100 -#define SSL_EXT_TLS1_3_SERVER_HELLO 0x0200 -#define SSL_EXT_TLS1_3_ENCRYPTED_EXTENSIONS 0x0400 -#define SSL_EXT_TLS1_3_HELLO_RETRY_REQUEST 0x0800 -#define SSL_EXT_TLS1_3_CERTIFICATE 0x1000 -#define SSL_EXT_TLS1_3_NEW_SESSION_TICKET 0x2000 -#define SSL_EXT_TLS1_3_CERTIFICATE_REQUEST 0x4000 +#define SSL_EXT_TLS1_2_SERVER_HELLO 0x00100 +#define SSL_EXT_TLS1_3_SERVER_HELLO 0x00200 +#define SSL_EXT_TLS1_3_ENCRYPTED_EXTENSIONS 0x00400 +#define SSL_EXT_TLS1_3_HELLO_RETRY_REQUEST 0x00800 +#define SSL_EXT_TLS1_3_CERTIFICATE 0x01000 +#define SSL_EXT_TLS1_3_NEW_SESSION_TICKET 0x02000 +#define SSL_EXT_TLS1_3_CERTIFICATE_REQUEST 0x04000 +#define SSL_EXT_TLS1_3_CERTIFICATE_COMPRESSION 0x08000 +/* When sending a raw public key in a certificate message */ +#define SSL_EXT_TLS1_3_RAW_PUBLIC_KEY 0x10000 /* Typedefs for handling custom extensions */ @@ -404,7 +409,7 @@ typedef int (*SSL_async_callback_fn)(SSL *s, void *arg); */ # define SSL_OP_CIPHER_SERVER_PREFERENCE SSL_OP_BIT(22) /* - * If set, a server will allow a client to issue a SSLv3.0 version + * If set, a server will allow a client to issue an SSLv3.0 version * number as latest version supported in the premaster secret, even when * TLSv1.0 (version 3.1) was announced in the client hello. Normally * this is forbidden to prevent version rollback attacks. @@ -430,6 +435,19 @@ typedef int (*SSL_async_callback_fn)(SSL *s, void *arg); * interoperability with CryptoPro CSP 3.x */ # define SSL_OP_CRYPTOPRO_TLSEXT_BUG SSL_OP_BIT(31) +/* + * Disable RFC8879 certificate compression + * SSL_OP_NO_TX_CERTIFICATE_COMPRESSION: don't send compressed certificates, + * and ignore the extension when received. + * SSL_OP_NO_RX_CERTIFICATE_COMPRESSION: don't send the extension, and + * subsequently indicating that receiving is not supported + */ +# define SSL_OP_NO_TX_CERTIFICATE_COMPRESSION SSL_OP_BIT(32) +# define SSL_OP_NO_RX_CERTIFICATE_COMPRESSION SSL_OP_BIT(33) + /* Enable KTLS TX zerocopy on Linux */ +# define SSL_OP_ENABLE_KTLS_TX_ZEROCOPY_SENDFILE SSL_OP_BIT(34) + +#define SSL_OP_PREFER_NO_DHE_KEX SSL_OP_BIT(35) /* * Option "collections." @@ -574,6 +592,8 @@ typedef int (*SSL_async_callback_fn)(SSL *s, void *arg); # define CERT_PKEY_CERT_TYPE 0x400 /* Cert chain suitable to Suite B */ # define CERT_PKEY_SUITEB 0x800 +/* Cert pkey valid for raw public key use */ +# define CERT_PKEY_RPK 0x1000 # define SSL_CONF_FLAG_CMDLINE 0x1 # define SSL_CONF_FLAG_FILE 0x2 @@ -965,6 +985,7 @@ uint32_t SSL_get_recv_max_early_data(const SSL *s); # include /* This is mostly sslv3 with a few tweaks */ # include /* Datagram TLS */ # include /* Support for the use_srtp extension */ +# include #ifdef __cplusplus extern "C" { @@ -1000,32 +1021,6 @@ SKM_DEFINE_STACK_OF_INTERNAL(SSL_CIPHER, const SSL_CIPHER, SSL_CIPHER) #define sk_SSL_CIPHER_dup(sk) ((STACK_OF(SSL_CIPHER) *)OPENSSL_sk_dup(ossl_check_const_SSL_CIPHER_sk_type(sk))) #define sk_SSL_CIPHER_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(SSL_CIPHER) *)OPENSSL_sk_deep_copy(ossl_check_const_SSL_CIPHER_sk_type(sk), ossl_check_SSL_CIPHER_copyfunc_type(copyfunc), ossl_check_SSL_CIPHER_freefunc_type(freefunc))) #define sk_SSL_CIPHER_set_cmp_func(sk, cmp) ((sk_SSL_CIPHER_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_SSL_CIPHER_sk_type(sk), ossl_check_SSL_CIPHER_compfunc_type(cmp))) -SKM_DEFINE_STACK_OF_INTERNAL(SSL_COMP, SSL_COMP, SSL_COMP) -#define sk_SSL_COMP_num(sk) OPENSSL_sk_num(ossl_check_const_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_value(sk, idx) ((SSL_COMP *)OPENSSL_sk_value(ossl_check_const_SSL_COMP_sk_type(sk), (idx))) -#define sk_SSL_COMP_new(cmp) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new(ossl_check_SSL_COMP_compfunc_type(cmp))) -#define sk_SSL_COMP_new_null() ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new_null()) -#define sk_SSL_COMP_new_reserve(cmp, n) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new_reserve(ossl_check_SSL_COMP_compfunc_type(cmp), (n))) -#define sk_SSL_COMP_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_SSL_COMP_sk_type(sk), (n)) -#define sk_SSL_COMP_free(sk) OPENSSL_sk_free(ossl_check_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_zero(sk) OPENSSL_sk_zero(ossl_check_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_delete(sk, i) ((SSL_COMP *)OPENSSL_sk_delete(ossl_check_SSL_COMP_sk_type(sk), (i))) -#define sk_SSL_COMP_delete_ptr(sk, ptr) ((SSL_COMP *)OPENSSL_sk_delete_ptr(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr))) -#define sk_SSL_COMP_push(sk, ptr) OPENSSL_sk_push(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) -#define sk_SSL_COMP_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) -#define sk_SSL_COMP_pop(sk) ((SSL_COMP *)OPENSSL_sk_pop(ossl_check_SSL_COMP_sk_type(sk))) -#define sk_SSL_COMP_shift(sk) ((SSL_COMP *)OPENSSL_sk_shift(ossl_check_SSL_COMP_sk_type(sk))) -#define sk_SSL_COMP_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_SSL_COMP_sk_type(sk),ossl_check_SSL_COMP_freefunc_type(freefunc)) -#define sk_SSL_COMP_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr), (idx)) -#define sk_SSL_COMP_set(sk, idx, ptr) ((SSL_COMP *)OPENSSL_sk_set(ossl_check_SSL_COMP_sk_type(sk), (idx), ossl_check_SSL_COMP_type(ptr))) -#define sk_SSL_COMP_find(sk, ptr) OPENSSL_sk_find(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) -#define sk_SSL_COMP_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) -#define sk_SSL_COMP_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr), pnum) -#define sk_SSL_COMP_sort(sk) OPENSSL_sk_sort(ossl_check_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_dup(sk) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_dup(ossl_check_const_SSL_COMP_sk_type(sk))) -#define sk_SSL_COMP_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_deep_copy(ossl_check_const_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_copyfunc_type(copyfunc), ossl_check_SSL_COMP_freefunc_type(freefunc))) -#define sk_SSL_COMP_set_cmp_func(sk, cmp) ((sk_SSL_COMP_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_compfunc_type(cmp))) /* compatibility */ @@ -1066,6 +1061,7 @@ typedef enum { DTLS_ST_CR_HELLO_VERIFY_REQUEST, TLS_ST_CR_SRVR_HELLO, TLS_ST_CR_CERT, + TLS_ST_CR_COMP_CERT, TLS_ST_CR_CERT_STATUS, TLS_ST_CR_KEY_EXCH, TLS_ST_CR_CERT_REQ, @@ -1075,6 +1071,7 @@ typedef enum { TLS_ST_CR_FINISHED, TLS_ST_CW_CLNT_HELLO, TLS_ST_CW_CERT, + TLS_ST_CW_COMP_CERT, TLS_ST_CW_KEY_EXCH, TLS_ST_CW_CERT_VRFY, TLS_ST_CW_CHANGE, @@ -1085,10 +1082,12 @@ typedef enum { DTLS_ST_SW_HELLO_VERIFY_REQUEST, TLS_ST_SW_SRVR_HELLO, TLS_ST_SW_CERT, + TLS_ST_SW_COMP_CERT, TLS_ST_SW_KEY_EXCH, TLS_ST_SW_CERT_REQ, TLS_ST_SW_SRVR_DONE, TLS_ST_SR_CERT, + TLS_ST_SR_COMP_CERT, TLS_ST_SR_KEY_EXCH, TLS_ST_SR_CERT_VRFY, TLS_ST_SR_NEXT_PROTO, @@ -1380,9 +1379,13 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) # define SSL_CTRL_GET_SIGNATURE_NID 132 # define SSL_CTRL_GET_TMP_KEY 133 # define SSL_CTRL_GET_NEGOTIATED_GROUP 134 +# define SSL_CTRL_GET_IANA_GROUPS 135 # define SSL_CTRL_SET_RETRY_VERIFY 136 # define SSL_CTRL_GET_VERIFY_CERT_STORE 137 # define SSL_CTRL_GET_CHAIN_CERT_STORE 138 +# define SSL_CTRL_GET0_IMPLEMENTED_GROUPS 139 +# define SSL_CTRL_GET_SIGNATURE_NAME 140 +# define SSL_CTRL_GET_PEER_SIGNATURE_NAME 141 # define SSL_CERT_SET_FIRST 1 # define SSL_CERT_SET_NEXT 2 # define SSL_CERT_SET_SERVER 3 @@ -1485,10 +1488,15 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) # define SSL_get1_groups(s, glist) \ SSL_ctrl(s,SSL_CTRL_GET_GROUPS,0,(int*)(glist)) +# define SSL_get0_iana_groups(s, plst) \ + SSL_ctrl(s,SSL_CTRL_GET_IANA_GROUPS,0,(uint16_t **)(plst)) # define SSL_CTX_set1_groups(ctx, glist, glistlen) \ SSL_CTX_ctrl(ctx,SSL_CTRL_SET_GROUPS,glistlen,(int *)(glist)) # define SSL_CTX_set1_groups_list(ctx, s) \ SSL_CTX_ctrl(ctx,SSL_CTRL_SET_GROUPS_LIST,0,(char *)(s)) +# define SSL_CTX_get0_implemented_groups(ctx, all, out) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_GET0_IMPLEMENTED_GROUPS, all, \ + (STACK_OF(OPENSSL_CSTRING) *)(out)) # define SSL_set1_groups(s, glist, glistlen) \ SSL_ctrl(s,SSL_CTRL_SET_GROUPS,glistlen,(char *)(glist)) # define SSL_set1_groups_list(s, str) \ @@ -1520,8 +1528,12 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) (char *)(clist)) # define SSL_set1_client_certificate_types(s, clist, clistlen) \ SSL_ctrl(s,SSL_CTRL_SET_CLIENT_CERT_TYPES,clistlen,(char *)(clist)) +# define SSL_get0_signature_name(s, str) \ + SSL_ctrl(s,SSL_CTRL_GET_SIGNATURE_NAME,0,(1?(str):(const char **)NULL)) # define SSL_get_signature_nid(s, pn) \ SSL_ctrl(s,SSL_CTRL_GET_SIGNATURE_NID,0,pn) +# define SSL_get0_peer_signature_name(s, str) \ + SSL_ctrl(s,SSL_CTRL_GET_PEER_SIGNATURE_NAME,0,(1?(str):(const char **)NULL)) # define SSL_get_peer_signature_nid(s, pn) \ SSL_ctrl(s,SSL_CTRL_GET_PEER_SIGNATURE_NID,0,pn) # define SSL_get_peer_tmp_key(s, pk) \ @@ -1549,6 +1561,7 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) # define SSL_get_max_proto_version(s) \ SSL_ctrl(s, SSL_CTRL_GET_MAX_PROTO_VERSION, 0, NULL) +const char *SSL_get0_group_name(SSL *s); const char *SSL_group_to_name(SSL *s, int id); /* Backwards compatibility, original 1.1.0 names */ @@ -1613,7 +1626,11 @@ void SSL_CTX_set1_cert_store(SSL_CTX *, X509_STORE *); __owur int SSL_want(const SSL *s); __owur int SSL_clear(SSL *s); +#ifndef OPENSSL_NO_DEPRECATED_3_4 +OSSL_DEPRECATEDIN_3_4_FOR("not Y2038-safe, replace with SSL_CTX_flush_sessions_ex()") void SSL_CTX_flush_sessions(SSL_CTX *ctx, long tm); +#endif +void SSL_CTX_flush_sessions_ex(SSL_CTX *ctx, time_t tm); __owur const SSL_CIPHER *SSL_get_current_cipher(const SSL *s); __owur const SSL_CIPHER *SSL_get_pending_cipher(const SSL *s); @@ -1725,13 +1742,21 @@ __owur const char *SSL_state_string(const SSL *s); __owur const char *SSL_rstate_string(const SSL *s); __owur const char *SSL_state_string_long(const SSL *s); __owur const char *SSL_rstate_string_long(const SSL *s); + +#ifndef OPENSSL_NO_DEPRECATED_3_4 +OSSL_DEPRECATEDIN_3_4_FOR("not Y2038-safe, replace with SSL_SESSION_get_time_ex()") __owur long SSL_SESSION_get_time(const SSL_SESSION *s); +OSSL_DEPRECATEDIN_3_4_FOR("not Y2038-safe, replace with SSL_SESSION_set_time_ex()") __owur long SSL_SESSION_set_time(SSL_SESSION *s, long t); +#endif __owur long SSL_SESSION_get_timeout(const SSL_SESSION *s); __owur long SSL_SESSION_set_timeout(SSL_SESSION *s, long t); __owur int SSL_SESSION_get_protocol_version(const SSL_SESSION *s); __owur int SSL_SESSION_set_protocol_version(SSL_SESSION *s, int version); +__owur time_t SSL_SESSION_get_time_ex(const SSL_SESSION *s); +__owur time_t SSL_SESSION_set_time_ex(SSL_SESSION *s, time_t t); + __owur const char *SSL_SESSION_get0_hostname(const SSL_SESSION *s); __owur int SSL_SESSION_set1_hostname(SSL_SESSION *s, const char *hostname); void SSL_SESSION_get0_alpn_selected(const SSL_SESSION *s, @@ -1783,6 +1808,9 @@ __owur int SSL_has_matching_session_id(const SSL *s, unsigned int id_len); SSL_SESSION *d2i_SSL_SESSION(SSL_SESSION **a, const unsigned char **pp, long length); +SSL_SESSION *d2i_SSL_SESSION_ex(SSL_SESSION **a, const unsigned char **pp, + long length, OSSL_LIB_CTX *libctx, + const char *propq); # ifdef OPENSSL_X509_H __owur X509 *SSL_get0_peer_certificate(const SSL *s); @@ -1840,6 +1868,8 @@ __owur int SSL_CTX_set_session_id_context(SSL_CTX *ctx, SSL *SSL_new(SSL_CTX *ctx); int SSL_up_ref(SSL *s); int SSL_is_dtls(const SSL *s); +int SSL_is_tls(const SSL *s); +int SSL_is_quic(const SSL *s); __owur int SSL_set_session_id_context(SSL *ssl, const unsigned char *sid_ctx, unsigned int sid_ctx_len); @@ -1848,8 +1878,8 @@ __owur int SSL_set_purpose(SSL *ssl, int purpose); __owur int SSL_CTX_set_trust(SSL_CTX *ctx, int trust); __owur int SSL_set_trust(SSL *ssl, int trust); -__owur int SSL_set1_host(SSL *s, const char *hostname); -__owur int SSL_add1_host(SSL *s, const char *hostname); +__owur int SSL_set1_host(SSL *s, const char *host); +__owur int SSL_add1_host(SSL *s, const char *host); __owur const char *SSL_get0_peername(SSL *s); void SSL_set_hostflags(SSL *s, unsigned int flags); @@ -1924,6 +1954,11 @@ OSSL_DEPRECATEDIN_3_0 __owur char *SSL_get_srp_userinfo(SSL *s); typedef int (*SSL_client_hello_cb_fn) (SSL *s, int *al, void *arg); void SSL_CTX_set_client_hello_cb(SSL_CTX *c, SSL_client_hello_cb_fn cb, void *arg); +typedef int (*SSL_new_pending_conn_cb_fn) (SSL_CTX *ctx, SSL *new_ssl, + void *arg); +void SSL_CTX_set_new_pending_conn_cb(SSL_CTX *c, SSL_new_pending_conn_cb_fn cb, + void *arg); + int SSL_client_hello_isv2(SSL *s); unsigned int SSL_client_hello_get0_legacy_version(SSL *s); size_t SSL_client_hello_get0_random(SSL *s, const unsigned char **out); @@ -1932,6 +1967,8 @@ size_t SSL_client_hello_get0_ciphers(SSL *s, const unsigned char **out); size_t SSL_client_hello_get0_compression_methods(SSL *s, const unsigned char **out); int SSL_client_hello_get1_extensions_present(SSL *s, int **out, size_t *outlen); +int SSL_client_hello_get_extension_order(SSL *s, uint16_t *exts, + size_t *num_exts); int SSL_client_hello_get0_ext(SSL *s, unsigned int type, const unsigned char **out, size_t *outlen); @@ -1978,6 +2015,12 @@ long SSL_callback_ctrl(SSL *, int, void (*)(void)); long SSL_CTX_ctrl(SSL_CTX *ctx, int cmd, long larg, void *parg); long SSL_CTX_callback_ctrl(SSL_CTX *, int, void (*)(void)); +# define SSL_WRITE_FLAG_CONCLUDE (1U << 0) + +__owur int SSL_write_ex2(SSL *s, const void *buf, size_t num, + uint64_t flags, + size_t *written); + # define SSL_EARLY_DATA_NOT_SENT 0 # define SSL_EARLY_DATA_REJECTED 1 # define SSL_EARLY_DATA_ACCEPTED 2 @@ -1986,6 +2029,7 @@ __owur int SSL_get_early_data_status(const SSL *s); __owur int SSL_get_error(const SSL *s, int ret_code); __owur const char *SSL_get_version(const SSL *s); +__owur int SSL_get_handshake_rtt(const SSL *s, uint64_t *rtt); /* This sets the 'default' SSL version that SSL_new() will create */ # ifndef OPENSSL_NO_DEPRECATED_3_0 @@ -2281,6 +2325,8 @@ void SSL_CTX_set_record_padding_callback(SSL_CTX *ctx, void SSL_CTX_set_record_padding_callback_arg(SSL_CTX *ctx, void *arg); void *SSL_CTX_get_record_padding_callback_arg(const SSL_CTX *ctx); int SSL_CTX_set_block_padding(SSL_CTX *ctx, size_t block_size); +int SSL_CTX_set_block_padding_ex(SSL_CTX *ctx, size_t app_block_size, + size_t hs_block_size); int SSL_set_record_padding_callback(SSL *ssl, size_t (*cb) (SSL *ssl, int type, @@ -2288,12 +2334,255 @@ int SSL_set_record_padding_callback(SSL *ssl, void SSL_set_record_padding_callback_arg(SSL *ssl, void *arg); void *SSL_get_record_padding_callback_arg(const SSL *ssl); int SSL_set_block_padding(SSL *ssl, size_t block_size); - +int SSL_set_block_padding_ex(SSL *ssl, size_t app_block_size, + size_t hs_block_size); int SSL_set_num_tickets(SSL *s, size_t num_tickets); size_t SSL_get_num_tickets(const SSL *s); int SSL_CTX_set_num_tickets(SSL_CTX *ctx, size_t num_tickets); size_t SSL_CTX_get_num_tickets(const SSL_CTX *ctx); +/* QUIC support */ +int SSL_handle_events(SSL *s); +__owur int SSL_get_event_timeout(SSL *s, struct timeval *tv, int *is_infinite); +__owur int SSL_get_rpoll_descriptor(SSL *s, BIO_POLL_DESCRIPTOR *desc); +__owur int SSL_get_wpoll_descriptor(SSL *s, BIO_POLL_DESCRIPTOR *desc); +__owur int SSL_net_read_desired(SSL *s); +__owur int SSL_net_write_desired(SSL *s); +__owur int SSL_set_blocking_mode(SSL *s, int blocking); +__owur int SSL_get_blocking_mode(SSL *s); +__owur int SSL_set1_initial_peer_addr(SSL *s, const BIO_ADDR *peer_addr); +__owur SSL *SSL_get0_connection(SSL *s); +__owur int SSL_is_connection(SSL *s); + +__owur int SSL_is_listener(SSL *ssl); +__owur SSL *SSL_get0_listener(SSL *s); +#define SSL_LISTENER_FLAG_NO_VALIDATE (1UL << 1) +__owur SSL *SSL_new_listener(SSL_CTX *ctx, uint64_t flags); +__owur SSL *SSL_new_listener_from(SSL *ssl, uint64_t flags); +__owur SSL *SSL_new_from_listener(SSL *ssl, uint64_t flags); +#define SSL_ACCEPT_CONNECTION_NO_BLOCK (1UL << 0) +__owur SSL *SSL_accept_connection(SSL *ssl, uint64_t flags); +__owur size_t SSL_get_accept_connection_queue_len(SSL *ssl); +__owur int SSL_listen(SSL *ssl); + +__owur int SSL_is_domain(SSL *s); +__owur SSL *SSL_get0_domain(SSL *s); +__owur SSL *SSL_new_domain(SSL_CTX *ctx, uint64_t flags); + +#define SSL_DOMAIN_FLAG_SINGLE_THREAD (1U << 0) +#define SSL_DOMAIN_FLAG_MULTI_THREAD (1U << 1) +#define SSL_DOMAIN_FLAG_THREAD_ASSISTED (1U << 2) +#define SSL_DOMAIN_FLAG_BLOCKING (1U << 3) +#define SSL_DOMAIN_FLAG_LEGACY_BLOCKING (1U << 4) + +__owur int SSL_CTX_set_domain_flags(SSL_CTX *ctx, uint64_t domain_flags); +__owur int SSL_CTX_get_domain_flags(const SSL_CTX *ctx, uint64_t *domain_flags); +__owur int SSL_get_domain_flags(const SSL *ssl, uint64_t *domain_flags); + +#define SSL_STREAM_TYPE_NONE 0 +#define SSL_STREAM_TYPE_READ (1U << 0) +#define SSL_STREAM_TYPE_WRITE (1U << 1) +#define SSL_STREAM_TYPE_BIDI (SSL_STREAM_TYPE_READ | SSL_STREAM_TYPE_WRITE) +__owur int SSL_get_stream_type(SSL *s); + +__owur uint64_t SSL_get_stream_id(SSL *s); +__owur int SSL_is_stream_local(SSL *s); + +#define SSL_DEFAULT_STREAM_MODE_NONE 0 +#define SSL_DEFAULT_STREAM_MODE_AUTO_BIDI 1 +#define SSL_DEFAULT_STREAM_MODE_AUTO_UNI 2 +__owur int SSL_set_default_stream_mode(SSL *s, uint32_t mode); + +#define SSL_STREAM_FLAG_UNI (1U << 0) +#define SSL_STREAM_FLAG_NO_BLOCK (1U << 1) +#define SSL_STREAM_FLAG_ADVANCE (1U << 2) +__owur SSL *SSL_new_stream(SSL *s, uint64_t flags); + +#define SSL_INCOMING_STREAM_POLICY_AUTO 0 +#define SSL_INCOMING_STREAM_POLICY_ACCEPT 1 +#define SSL_INCOMING_STREAM_POLICY_REJECT 2 +__owur int SSL_set_incoming_stream_policy(SSL *s, int policy, uint64_t aec); + +#define SSL_ACCEPT_STREAM_NO_BLOCK (1U << 0) +__owur SSL *SSL_accept_stream(SSL *s, uint64_t flags); +__owur size_t SSL_get_accept_stream_queue_len(SSL *s); + +# ifndef OPENSSL_NO_QUIC +__owur int SSL_inject_net_dgram(SSL *s, const unsigned char *buf, + size_t buf_len, + const BIO_ADDR *peer, + const BIO_ADDR *local); +# endif + +typedef struct ssl_shutdown_ex_args_st { + uint64_t quic_error_code; + const char *quic_reason; +} SSL_SHUTDOWN_EX_ARGS; + +#define SSL_SHUTDOWN_FLAG_RAPID (1U << 0) +#define SSL_SHUTDOWN_FLAG_NO_STREAM_FLUSH (1U << 1) +#define SSL_SHUTDOWN_FLAG_NO_BLOCK (1U << 2) +#define SSL_SHUTDOWN_FLAG_WAIT_PEER (1U << 3) + +__owur int SSL_shutdown_ex(SSL *ssl, uint64_t flags, + const SSL_SHUTDOWN_EX_ARGS *args, + size_t args_len); + +__owur int SSL_stream_conclude(SSL *ssl, uint64_t flags); + +typedef struct ssl_stream_reset_args_st { + uint64_t quic_error_code; +} SSL_STREAM_RESET_ARGS; + +__owur int SSL_stream_reset(SSL *ssl, + const SSL_STREAM_RESET_ARGS *args, + size_t args_len); + +#define SSL_STREAM_STATE_NONE 0 +#define SSL_STREAM_STATE_OK 1 +#define SSL_STREAM_STATE_WRONG_DIR 2 +#define SSL_STREAM_STATE_FINISHED 3 +#define SSL_STREAM_STATE_RESET_LOCAL 4 +#define SSL_STREAM_STATE_RESET_REMOTE 5 +#define SSL_STREAM_STATE_CONN_CLOSED 6 +__owur int SSL_get_stream_read_state(SSL *ssl); +__owur int SSL_get_stream_write_state(SSL *ssl); + +__owur int SSL_get_stream_read_error_code(SSL *ssl, uint64_t *app_error_code); +__owur int SSL_get_stream_write_error_code(SSL *ssl, uint64_t *app_error_code); + +#define SSL_CONN_CLOSE_FLAG_LOCAL (1U << 0) +#define SSL_CONN_CLOSE_FLAG_TRANSPORT (1U << 1) + +typedef struct ssl_conn_close_info_st { + uint64_t error_code, frame_type; + const char *reason; + size_t reason_len; + uint32_t flags; +} SSL_CONN_CLOSE_INFO; + +__owur int SSL_get_conn_close_info(SSL *ssl, + SSL_CONN_CLOSE_INFO *info, + size_t info_len); + +# define SSL_VALUE_CLASS_GENERIC 0 +# define SSL_VALUE_CLASS_FEATURE_REQUEST 1 +# define SSL_VALUE_CLASS_FEATURE_PEER_REQUEST 2 +# define SSL_VALUE_CLASS_FEATURE_NEGOTIATED 3 + +# define SSL_VALUE_NONE 0 +# define SSL_VALUE_QUIC_STREAM_BIDI_LOCAL_AVAIL 1 +# define SSL_VALUE_QUIC_STREAM_BIDI_REMOTE_AVAIL 2 +# define SSL_VALUE_QUIC_STREAM_UNI_LOCAL_AVAIL 3 +# define SSL_VALUE_QUIC_STREAM_UNI_REMOTE_AVAIL 4 +# define SSL_VALUE_QUIC_IDLE_TIMEOUT 5 +# define SSL_VALUE_EVENT_HANDLING_MODE 6 +# define SSL_VALUE_STREAM_WRITE_BUF_SIZE 7 +# define SSL_VALUE_STREAM_WRITE_BUF_USED 8 +# define SSL_VALUE_STREAM_WRITE_BUF_AVAIL 9 + +# define SSL_VALUE_EVENT_HANDLING_MODE_INHERIT 0 +# define SSL_VALUE_EVENT_HANDLING_MODE_IMPLICIT 1 +# define SSL_VALUE_EVENT_HANDLING_MODE_EXPLICIT 2 + +int SSL_get_value_uint(SSL *s, uint32_t class_, uint32_t id, uint64_t *v); +int SSL_set_value_uint(SSL *s, uint32_t class_, uint32_t id, uint64_t v); + +# define SSL_get_generic_value_uint(ssl, id, v) \ + SSL_get_value_uint((ssl), SSL_VALUE_CLASS_GENERIC, (id), (v)) +# define SSL_set_generic_value_uint(ssl, id, v) \ + SSL_set_value_uint((ssl), SSL_VALUE_CLASS_GENERIC, (id), (v)) +# define SSL_get_feature_request_uint(ssl, id, v) \ + SSL_get_value_uint((ssl), SSL_VALUE_CLASS_FEATURE_REQUEST, (id), (v)) +# define SSL_set_feature_request_uint(ssl, id, v) \ + SSL_set_value_uint((ssl), SSL_VALUE_CLASS_FEATURE_REQUEST, (id), (v)) +# define SSL_get_feature_peer_request_uint(ssl, id, v) \ + SSL_get_value_uint((ssl), SSL_VALUE_CLASS_FEATURE_PEER_REQUEST, (id), (v)) +# define SSL_get_feature_negotiated_uint(ssl, id, v) \ + SSL_get_value_uint((ssl), SSL_VALUE_CLASS_FEATURE_NEGOTIATED, (id), (v)) + +# define SSL_get_quic_stream_bidi_local_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_QUIC_STREAM_BIDI_LOCAL_AVAIL, \ + (value)) +# define SSL_get_quic_stream_bidi_remote_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_QUIC_STREAM_BIDI_REMOTE_AVAIL, \ + (value)) +# define SSL_get_quic_stream_uni_local_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_QUIC_STREAM_UNI_LOCAL_AVAIL, \ + (value)) +# define SSL_get_quic_stream_uni_remote_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_QUIC_STREAM_UNI_REMOTE_AVAIL, \ + (value)) + +# define SSL_get_event_handling_mode(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_EVENT_HANDLING_MODE, \ + (value)) +# define SSL_set_event_handling_mode(ssl, value) \ + SSL_set_generic_value_uint((ssl), SSL_VALUE_EVENT_HANDLING_MODE, \ + (value)) + +# define SSL_get_stream_write_buf_size(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_STREAM_WRITE_BUF_SIZE, \ + (value)) +# define SSL_get_stream_write_buf_used(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_STREAM_WRITE_BUF_USED, \ + (value)) +# define SSL_get_stream_write_buf_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_STREAM_WRITE_BUF_AVAIL, \ + (value)) + +# define SSL_POLL_EVENT_NONE 0 + +# define SSL_POLL_EVENT_F (1U << 0) /* F (Failure) */ +# define SSL_POLL_EVENT_EL (1U << 1) /* EL (Exception on Listener) */ +# define SSL_POLL_EVENT_EC (1U << 2) /* EC (Exception on Conn) */ +# define SSL_POLL_EVENT_ECD (1U << 3) /* ECD (Exception on Conn Drained) */ +# define SSL_POLL_EVENT_ER (1U << 4) /* ER (Exception on Read) */ +# define SSL_POLL_EVENT_EW (1U << 5) /* EW (Exception on Write) */ +# define SSL_POLL_EVENT_R (1U << 6) /* R (Readable) */ +# define SSL_POLL_EVENT_W (1U << 7) /* W (Writable) */ +# define SSL_POLL_EVENT_IC (1U << 8) /* IC (Incoming Connection) */ +# define SSL_POLL_EVENT_ISB (1U << 9) /* ISB (Incoming Stream: Bidi) */ +# define SSL_POLL_EVENT_ISU (1U << 10) /* ISU (Incoming Stream: Uni) */ +# define SSL_POLL_EVENT_OSB (1U << 11) /* OSB (Outgoing Stream: Bidi) */ +# define SSL_POLL_EVENT_OSU (1U << 12) /* OSU (Outgoing Stream: Uni) */ + +# define SSL_POLL_EVENT_RW (SSL_POLL_EVENT_R | SSL_POLL_EVENT_W) +# define SSL_POLL_EVENT_RE (SSL_POLL_EVENT_R | SSL_POLL_EVENT_ER) +# define SSL_POLL_EVENT_WE (SSL_POLL_EVENT_W | SSL_POLL_EVENT_EW) +# define SSL_POLL_EVENT_RWE (SSL_POLL_EVENT_RE | SSL_POLL_EVENT_WE) +# define SSL_POLL_EVENT_E (SSL_POLL_EVENT_EL | SSL_POLL_EVENT_EC \ + | SSL_POLL_EVENT_ER | SSL_POLL_EVENT_EW) +# define SSL_POLL_EVENT_IS (SSL_POLL_EVENT_ISB | SSL_POLL_EVENT_ISU) +# define SSL_POLL_EVENT_ISE (SSL_POLL_EVENT_IS | SSL_POLL_EVENT_EC) +# define SSL_POLL_EVENT_I (SSL_POLL_EVENT_IS | SSL_POLL_EVENT_IC) +# define SSL_POLL_EVENT_OS (SSL_POLL_EVENT_OSB | SSL_POLL_EVENT_OSU) +# define SSL_POLL_EVENT_OSE (SSL_POLL_EVENT_OS | SSL_POLL_EVENT_EC) + +typedef struct ssl_poll_item_st { + BIO_POLL_DESCRIPTOR desc; + uint64_t events, revents; +} SSL_POLL_ITEM; + +# define SSL_POLL_FLAG_NO_HANDLE_EVENTS (1U << 0) + +__owur int SSL_poll(SSL_POLL_ITEM *items, + size_t num_items, + size_t stride, + const struct timeval *timeout, + uint64_t flags, + size_t *result_count); + +static ossl_inline ossl_unused BIO_POLL_DESCRIPTOR +SSL_as_poll_descriptor(SSL *s) +{ + BIO_POLL_DESCRIPTOR d; + + d.type = BIO_POLL_DESCRIPTOR_TYPE_SSL; + d.value.ssl = s; + return d; +} + # ifndef OPENSSL_NO_DEPRECATED_1_1_0 # define SSL_cache_hit(s) SSL_session_reused(s) # endif @@ -2593,6 +2882,51 @@ void SSL_set_allow_early_data_cb(SSL *s, const char *OSSL_default_cipher_list(void); const char *OSSL_default_ciphersuites(void); +/* RFC8879 Certificate compression APIs */ + +int SSL_CTX_compress_certs(SSL_CTX *ctx, int alg); +int SSL_compress_certs(SSL *ssl, int alg); + +int SSL_CTX_set1_cert_comp_preference(SSL_CTX *ctx, int *algs, size_t len); +int SSL_set1_cert_comp_preference(SSL *ssl, int *algs, size_t len); + +int SSL_CTX_set1_compressed_cert(SSL_CTX *ctx, int algorithm, unsigned char *comp_data, + size_t comp_length, size_t orig_length); +int SSL_set1_compressed_cert(SSL *ssl, int algorithm, unsigned char *comp_data, + size_t comp_length, size_t orig_length); +size_t SSL_CTX_get1_compressed_cert(SSL_CTX *ctx, int alg, unsigned char **data, size_t *orig_len); +size_t SSL_get1_compressed_cert(SSL *ssl, int alg, unsigned char **data, size_t *orig_len); + +__owur int SSL_add_expected_rpk(SSL *s, EVP_PKEY *rpk); +__owur EVP_PKEY *SSL_get0_peer_rpk(const SSL *s); +__owur EVP_PKEY *SSL_SESSION_get0_peer_rpk(SSL_SESSION *s); +__owur int SSL_get_negotiated_client_cert_type(const SSL *s); +__owur int SSL_get_negotiated_server_cert_type(const SSL *s); + +__owur int SSL_set1_client_cert_type(SSL *s, const unsigned char *val, size_t len); +__owur int SSL_set1_server_cert_type(SSL *s, const unsigned char *val, size_t len); +__owur int SSL_CTX_set1_client_cert_type(SSL_CTX *ctx, const unsigned char *val, size_t len); +__owur int SSL_CTX_set1_server_cert_type(SSL_CTX *ctx, const unsigned char *val, size_t len); +__owur int SSL_get0_client_cert_type(const SSL *s, unsigned char **t, size_t *len); +__owur int SSL_get0_server_cert_type(const SSL *s, unsigned char **t, size_t *len); +__owur int SSL_CTX_get0_client_cert_type(const SSL_CTX *ctx, unsigned char **t, size_t *len); +__owur int SSL_CTX_get0_server_cert_type(const SSL_CTX *s, unsigned char **t, size_t *len); + +/* + * Protection level. For <= TLSv1.2 only "NONE" and "APPLICATION" are used. + */ +# define OSSL_RECORD_PROTECTION_LEVEL_NONE 0 +# define OSSL_RECORD_PROTECTION_LEVEL_EARLY 1 +# define OSSL_RECORD_PROTECTION_LEVEL_HANDSHAKE 2 +# define OSSL_RECORD_PROTECTION_LEVEL_APPLICATION 3 + +int SSL_set_quic_tls_cbs(SSL *s, const OSSL_DISPATCH *qtdis, void *arg); +int SSL_set_quic_tls_transport_params(SSL *s, + const unsigned char *params, + size_t params_len); + +int SSL_set_quic_tls_early_data_enabled(SSL *s, int enabled); + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/aix64-gcc-as/asm/include/openssl/x509.h b/deps/openssl/config/archs/aix64-gcc-as/asm/include/openssl/x509.h index 1f7755e5b69c75..d013458c226461 100644 --- a/deps/openssl/config/archs/aix64-gcc-as/asm/include/openssl/x509.h +++ b/deps/openssl/config/archs/aix64-gcc-as/asm/include/openssl/x509.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/x509.h.in * - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2024 The OpenSSL Project Authors. All Rights Reserved. * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved * * Licensed under the Apache License 2.0 (the "License"). You may not use @@ -40,6 +40,9 @@ # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -162,16 +165,24 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_CRL, X509_CRL, X509_CRL) # define X509_FILETYPE_ASN1 2 # define X509_FILETYPE_DEFAULT 3 -# define X509v3_KU_DIGITAL_SIGNATURE 0x0080 -# define X509v3_KU_NON_REPUDIATION 0x0040 -# define X509v3_KU_KEY_ENCIPHERMENT 0x0020 -# define X509v3_KU_DATA_ENCIPHERMENT 0x0010 -# define X509v3_KU_KEY_AGREEMENT 0x0008 -# define X509v3_KU_KEY_CERT_SIGN 0x0004 -# define X509v3_KU_CRL_SIGN 0x0002 -# define X509v3_KU_ENCIPHER_ONLY 0x0001 -# define X509v3_KU_DECIPHER_ONLY 0x8000 -# define X509v3_KU_UNDEF 0xffff +/*- + * : + * The KeyUsage BITSTRING is treated as a little-endian integer, hence bit `0` + * is 0x80, while bit `7` is 0x01 (the LSB of the integer value), bit `8` is + * then the MSB of the second octet, or 0x8000. + */ +# define X509v3_KU_DIGITAL_SIGNATURE 0x0080 /* (0) */ +# define X509v3_KU_NON_REPUDIATION 0x0040 /* (1) */ +# define X509v3_KU_KEY_ENCIPHERMENT 0x0020 /* (2) */ +# define X509v3_KU_DATA_ENCIPHERMENT 0x0010 /* (3) */ +# define X509v3_KU_KEY_AGREEMENT 0x0008 /* (4) */ +# define X509v3_KU_KEY_CERT_SIGN 0x0004 /* (5) */ +# define X509v3_KU_CRL_SIGN 0x0002 /* (6) */ +# define X509v3_KU_ENCIPHER_ONLY 0x0001 /* (7) */ +# define X509v3_KU_DECIPHER_ONLY 0x8000 /* (8) */ +# ifndef OPENSSL_NO_DEPRECATED_3_4 +# define X509v3_KU_UNDEF 0xffff /* vestigial, not used */ +# endif struct X509_algor_st { ASN1_OBJECT *algorithm; @@ -462,7 +473,12 @@ typedef struct PBKDF2PARAM_st { X509_ALGOR *prf; } PBKDF2PARAM; -#ifndef OPENSSL_NO_SCRYPT +typedef struct { + X509_ALGOR *keyDerivationFunc; + X509_ALGOR *messageAuthScheme; +} PBMAC1PARAM; + +# ifndef OPENSSL_NO_SCRYPT typedef struct SCRYPT_PARAMS_st { ASN1_OCTET_STRING *salt; ASN1_INTEGER *costParameter; @@ -470,7 +486,7 @@ typedef struct SCRYPT_PARAMS_st { ASN1_INTEGER *parallelizationParameter; ASN1_INTEGER *keyLength; } SCRYPT_PARAMS; -#endif +# endif #ifdef __cplusplus } @@ -603,6 +619,8 @@ EVP_PKEY *d2i_PrivateKey_ex_fp(FILE *fp, EVP_PKEY **a, OSSL_LIB_CTX *libctx, const char *propq); EVP_PKEY *d2i_PrivateKey_fp(FILE *fp, EVP_PKEY **a); int i2d_PUBKEY_fp(FILE *fp, const EVP_PKEY *pkey); +EVP_PKEY *d2i_PUBKEY_ex_fp(FILE *fp, EVP_PKEY **a, OSSL_LIB_CTX *libctx, + const char *propq); EVP_PKEY *d2i_PUBKEY_fp(FILE *fp, EVP_PKEY **a); # endif @@ -651,6 +669,8 @@ EVP_PKEY *d2i_PrivateKey_ex_bio(BIO *bp, EVP_PKEY **a, OSSL_LIB_CTX *libctx, const char *propq); EVP_PKEY *d2i_PrivateKey_bio(BIO *bp, EVP_PKEY **a); int i2d_PUBKEY_bio(BIO *bp, const EVP_PKEY *pkey); +EVP_PKEY *d2i_PUBKEY_ex_bio(BIO *bp, EVP_PKEY **a, OSSL_LIB_CTX *libctx, + const char *propq); EVP_PKEY *d2i_PUBKEY_bio(BIO *bp, EVP_PKEY **a); DECLARE_ASN1_DUP_FUNCTION(X509) @@ -884,12 +904,12 @@ int X509_REQ_get_signature_nid(const X509_REQ *req); int i2d_re_X509_REQ_tbs(X509_REQ *req, unsigned char **pp); int X509_REQ_set_pubkey(X509_REQ *x, EVP_PKEY *pkey); EVP_PKEY *X509_REQ_get_pubkey(X509_REQ *req); -EVP_PKEY *X509_REQ_get0_pubkey(X509_REQ *req); +EVP_PKEY *X509_REQ_get0_pubkey(const X509_REQ *req); X509_PUBKEY *X509_REQ_get_X509_PUBKEY(X509_REQ *req); int X509_REQ_extension_nid(int nid); int *X509_REQ_get_extension_nids(void); void X509_REQ_set_extension_nids(int *nids); -STACK_OF(X509_EXTENSION) *X509_REQ_get_extensions(X509_REQ *req); +STACK_OF(X509_EXTENSION) *X509_REQ_get_extensions(OSSL_FUTURE_CONST X509_REQ *req); int X509_REQ_add_extensions_nid(X509_REQ *req, const STACK_OF(X509_EXTENSION) *exts, int nid); int X509_REQ_add_extensions(X509_REQ *req, const STACK_OF(X509_EXTENSION) *ext); @@ -950,13 +970,14 @@ X509_REVOKED_get0_extensions(const X509_REVOKED *r); X509_CRL *X509_CRL_diff(X509_CRL *base, X509_CRL *newer, EVP_PKEY *skey, const EVP_MD *md, unsigned int flags); -int X509_REQ_check_private_key(X509_REQ *x509, EVP_PKEY *pkey); +int X509_REQ_check_private_key(const X509_REQ *req, EVP_PKEY *pkey); -int X509_check_private_key(const X509 *x509, const EVP_PKEY *pkey); +int X509_check_private_key(const X509 *cert, const EVP_PKEY *pkey); int X509_chain_check_suiteb(int *perror_depth, X509 *x, STACK_OF(X509) *chain, unsigned long flags); int X509_CRL_check_suiteb(X509_CRL *crl, EVP_PKEY *pk, unsigned long flags); +void OSSL_STACK_OF_X509_free(STACK_OF(X509) *certs); STACK_OF(X509) *X509_chain_up_ref(STACK_OF(X509) *chain); int X509_issuer_and_serial_cmp(const X509 *a, const X509 *b); @@ -1077,6 +1098,8 @@ X509_EXTENSION *X509v3_get_ext(const STACK_OF(X509_EXTENSION) *x, int loc); X509_EXTENSION *X509v3_delete_ext(STACK_OF(X509_EXTENSION) *x, int loc); STACK_OF(X509_EXTENSION) *X509v3_add_ext(STACK_OF(X509_EXTENSION) **x, X509_EXTENSION *ex, int loc); +STACK_OF(X509_EXTENSION) *X509v3_add_extensions(STACK_OF(X509_EXTENSION) **target, + const STACK_OF(X509_EXTENSION) *exts); int X509_get_ext_count(const X509 *x); int X509_get_ext_by_NID(const X509 *x, int nid, int lastpos); @@ -1198,9 +1221,10 @@ X509 *X509_find_by_subject(STACK_OF(X509) *sk, const X509_NAME *name); DECLARE_ASN1_FUNCTIONS(PBEPARAM) DECLARE_ASN1_FUNCTIONS(PBE2PARAM) DECLARE_ASN1_FUNCTIONS(PBKDF2PARAM) -#ifndef OPENSSL_NO_SCRYPT +DECLARE_ASN1_FUNCTIONS(PBMAC1PARAM) +# ifndef OPENSSL_NO_SCRYPT DECLARE_ASN1_FUNCTIONS(SCRYPT_PARAMS) -#endif +# endif int PKCS5_pbe_set0_algor(X509_ALGOR *algor, int alg, int iter, const unsigned char *salt, int saltlen); @@ -1237,6 +1261,7 @@ X509_ALGOR *PKCS5_pbkdf2_set_ex(int iter, unsigned char *salt, int saltlen, int prf_nid, int keylen, OSSL_LIB_CTX *libctx); +PBKDF2PARAM *PBMAC1_get1_pbkdf2_param(const X509_ALGOR *macalg); /* PKCS#8 utilities */ DECLARE_ASN1_FUNCTIONS(PKCS8_PRIV_KEY_INFO) @@ -1262,6 +1287,8 @@ int PKCS8_pkey_add1_attr_by_OBJ(PKCS8_PRIV_KEY_INFO *p8, const ASN1_OBJECT *obj, int type, const unsigned char *bytes, int len); +void X509_PUBKEY_set0_public_key(X509_PUBKEY *pub, + unsigned char *penc, int penclen); int X509_PUBKEY_set0_param(X509_PUBKEY *pub, ASN1_OBJECT *aobj, int ptype, void *pval, unsigned char *penc, int penclen); diff --git a/deps/openssl/config/archs/aix64-gcc-as/asm/include/openssl/x509_acert.h b/deps/openssl/config/archs/aix64-gcc-as/asm/include/openssl/x509_acert.h new file mode 100644 index 00000000000000..9dde625677f9a9 --- /dev/null +++ b/deps/openssl/config/archs/aix64-gcc-as/asm/include/openssl/x509_acert.h @@ -0,0 +1,294 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from include/openssl/x509_acert.h.in + * + * Copyright 2022-2024 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + + +#ifndef OPENSSL_X509_ACERT_H +# define OPENSSL_X509_ACERT_H +# pragma once + +# include +# include +# include + +typedef struct X509_acert_st X509_ACERT; +typedef struct X509_acert_info_st X509_ACERT_INFO; +typedef struct ossl_object_digest_info_st OSSL_OBJECT_DIGEST_INFO; +typedef struct ossl_issuer_serial_st OSSL_ISSUER_SERIAL; +typedef struct X509_acert_issuer_v2form_st X509_ACERT_ISSUER_V2FORM; + +DECLARE_ASN1_FUNCTIONS(X509_ACERT) +DECLARE_ASN1_DUP_FUNCTION(X509_ACERT) +DECLARE_ASN1_ITEM(X509_ACERT_INFO) +DECLARE_ASN1_ALLOC_FUNCTIONS(X509_ACERT_INFO) +DECLARE_ASN1_ALLOC_FUNCTIONS(OSSL_OBJECT_DIGEST_INFO) +DECLARE_ASN1_ALLOC_FUNCTIONS(OSSL_ISSUER_SERIAL) +DECLARE_ASN1_ALLOC_FUNCTIONS(X509_ACERT_ISSUER_V2FORM) + +# ifndef OPENSSL_NO_STDIO +X509_ACERT *d2i_X509_ACERT_fp(FILE *fp, X509_ACERT **acert); +int i2d_X509_ACERT_fp(FILE *fp, const X509_ACERT *acert); +# endif + +DECLARE_PEM_rw(X509_ACERT, X509_ACERT) + +X509_ACERT *d2i_X509_ACERT_bio(BIO *bp, X509_ACERT **acert); +int i2d_X509_ACERT_bio(BIO *bp, const X509_ACERT *acert); + +int X509_ACERT_sign(X509_ACERT *x, EVP_PKEY *pkey, const EVP_MD *md); +int X509_ACERT_sign_ctx(X509_ACERT *x, EVP_MD_CTX *ctx); +int X509_ACERT_verify(X509_ACERT *a, EVP_PKEY *r); + +# define X509_ACERT_VERSION_2 1 + +const GENERAL_NAMES *X509_ACERT_get0_holder_entityName(const X509_ACERT *x); +const OSSL_ISSUER_SERIAL *X509_ACERT_get0_holder_baseCertId(const X509_ACERT *x); +const OSSL_OBJECT_DIGEST_INFO * X509_ACERT_get0_holder_digest(const X509_ACERT *x); +const X509_NAME *X509_ACERT_get0_issuerName(const X509_ACERT *x); +long X509_ACERT_get_version(const X509_ACERT *x); +void X509_ACERT_get0_signature(const X509_ACERT *x, + const ASN1_BIT_STRING **psig, + const X509_ALGOR **palg); +int X509_ACERT_get_signature_nid(const X509_ACERT *x); +const X509_ALGOR *X509_ACERT_get0_info_sigalg(const X509_ACERT *x); +const ASN1_INTEGER *X509_ACERT_get0_serialNumber(const X509_ACERT *x); +const ASN1_TIME *X509_ACERT_get0_notBefore(const X509_ACERT *x); +const ASN1_TIME *X509_ACERT_get0_notAfter(const X509_ACERT *x); +const ASN1_BIT_STRING *X509_ACERT_get0_issuerUID(const X509_ACERT *x); + +int X509_ACERT_print(BIO *bp, X509_ACERT *x); +int X509_ACERT_print_ex(BIO *bp, X509_ACERT *x, unsigned long nmflags, + unsigned long cflag); + +int X509_ACERT_get_attr_count(const X509_ACERT *x); +int X509_ACERT_get_attr_by_NID(const X509_ACERT *x, int nid, int lastpos); +int X509_ACERT_get_attr_by_OBJ(const X509_ACERT *x, const ASN1_OBJECT *obj, + int lastpos); +X509_ATTRIBUTE *X509_ACERT_get_attr(const X509_ACERT *x, int loc); +X509_ATTRIBUTE *X509_ACERT_delete_attr(X509_ACERT *x, int loc); + +void *X509_ACERT_get_ext_d2i(const X509_ACERT *x, int nid, int *crit, int *idx); +int X509_ACERT_add1_ext_i2d(X509_ACERT *x, int nid, void *value, int crit, + unsigned long flags); +const STACK_OF(X509_EXTENSION) *X509_ACERT_get0_extensions(const X509_ACERT *x); + +# define OSSL_OBJECT_DIGEST_INFO_PUBLIC_KEY 0 +# define OSSL_OBJECT_DIGEST_INFO_PUBLIC_KEY_CERT 1 +# define OSSL_OBJECT_DIGEST_INFO_OTHER 2 /* must not be used in RFC 5755 profile */ +int X509_ACERT_set_version(X509_ACERT *x, long version); +void X509_ACERT_set0_holder_entityName(X509_ACERT *x, GENERAL_NAMES *name); +void X509_ACERT_set0_holder_baseCertId(X509_ACERT *x, OSSL_ISSUER_SERIAL *isss); +void X509_ACERT_set0_holder_digest(X509_ACERT *x, + OSSL_OBJECT_DIGEST_INFO *dinfo); + +int X509_ACERT_add1_attr(X509_ACERT *x, X509_ATTRIBUTE *attr); +int X509_ACERT_add1_attr_by_OBJ(X509_ACERT *x, const ASN1_OBJECT *obj, + int type, const void *bytes, int len); +int X509_ACERT_add1_attr_by_NID(X509_ACERT *x, int nid, int type, + const void *bytes, int len); +int X509_ACERT_add1_attr_by_txt(X509_ACERT *x, const char *attrname, int type, + const unsigned char *bytes, int len); +int X509_ACERT_add_attr_nconf(CONF *conf, const char *section, + X509_ACERT *acert); + +int X509_ACERT_set1_issuerName(X509_ACERT *x, const X509_NAME *name); +int X509_ACERT_set1_serialNumber(X509_ACERT *x, const ASN1_INTEGER *serial); +int X509_ACERT_set1_notBefore(X509_ACERT *x, const ASN1_GENERALIZEDTIME *time); +int X509_ACERT_set1_notAfter(X509_ACERT *x, const ASN1_GENERALIZEDTIME *time); + +void OSSL_OBJECT_DIGEST_INFO_get0_digest(const OSSL_OBJECT_DIGEST_INFO *o, + int *digestedObjectType, + const X509_ALGOR **digestAlgorithm, + const ASN1_BIT_STRING **digest); + +int OSSL_OBJECT_DIGEST_INFO_set1_digest(OSSL_OBJECT_DIGEST_INFO *o, + int digestedObjectType, + X509_ALGOR *digestAlgorithm, + ASN1_BIT_STRING *digest); + +const X509_NAME *OSSL_ISSUER_SERIAL_get0_issuer(const OSSL_ISSUER_SERIAL *isss); +const ASN1_INTEGER *OSSL_ISSUER_SERIAL_get0_serial(const OSSL_ISSUER_SERIAL *isss); +const ASN1_BIT_STRING *OSSL_ISSUER_SERIAL_get0_issuerUID(const OSSL_ISSUER_SERIAL *isss); + +int OSSL_ISSUER_SERIAL_set1_issuer(OSSL_ISSUER_SERIAL *isss, + const X509_NAME *issuer); +int OSSL_ISSUER_SERIAL_set1_serial(OSSL_ISSUER_SERIAL *isss, + const ASN1_INTEGER *serial); +int OSSL_ISSUER_SERIAL_set1_issuerUID(OSSL_ISSUER_SERIAL *isss, + const ASN1_BIT_STRING *uid); + +# define OSSL_IETFAS_OCTETS 0 +# define OSSL_IETFAS_OID 1 +# define OSSL_IETFAS_STRING 2 + +typedef struct OSSL_IETF_ATTR_SYNTAX_VALUE_st OSSL_IETF_ATTR_SYNTAX_VALUE; +typedef struct OSSL_IETF_ATTR_SYNTAX_st OSSL_IETF_ATTR_SYNTAX; +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_IETF_ATTR_SYNTAX_VALUE, OSSL_IETF_ATTR_SYNTAX_VALUE, OSSL_IETF_ATTR_SYNTAX_VALUE) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_value(sk, idx) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_value(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), (idx))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_new(cmp) ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_new(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_compfunc_type(cmp))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_new_null() ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_new_null()) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_new_reserve(cmp, n) ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_compfunc_type(cmp), (n))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), (n)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_free(sk) OPENSSL_sk_free(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_delete(sk, i) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_delete(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), (i))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_delete_ptr(sk, ptr) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_pop(sk) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_pop(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_shift(sk) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_shift(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk),ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_freefunc_type(freefunc)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr), (idx)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_set(sk, idx, ptr) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_set(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), (idx), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr), pnum) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_dup(sk) ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_dup(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_copyfunc_type(copyfunc), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_freefunc_type(freefunc))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_set_cmp_func(sk, cmp) ((sk_OSSL_IETF_ATTR_SYNTAX_VALUE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_compfunc_type(cmp))) + + +DECLARE_ASN1_ITEM(OSSL_IETF_ATTR_SYNTAX_VALUE) +DECLARE_ASN1_ALLOC_FUNCTIONS(OSSL_IETF_ATTR_SYNTAX_VALUE) +DECLARE_ASN1_FUNCTIONS(OSSL_IETF_ATTR_SYNTAX) + +const GENERAL_NAMES * +OSSL_IETF_ATTR_SYNTAX_get0_policyAuthority(const OSSL_IETF_ATTR_SYNTAX *a); +void OSSL_IETF_ATTR_SYNTAX_set0_policyAuthority(OSSL_IETF_ATTR_SYNTAX *a, + GENERAL_NAMES *names); + +int OSSL_IETF_ATTR_SYNTAX_get_value_num(const OSSL_IETF_ATTR_SYNTAX *a); +void *OSSL_IETF_ATTR_SYNTAX_get0_value(const OSSL_IETF_ATTR_SYNTAX *a, + int ind, int *type); +int OSSL_IETF_ATTR_SYNTAX_add1_value(OSSL_IETF_ATTR_SYNTAX *a, int type, + void *data); +int OSSL_IETF_ATTR_SYNTAX_print(BIO *bp, OSSL_IETF_ATTR_SYNTAX *a, int indent); + +struct TARGET_CERT_st { + OSSL_ISSUER_SERIAL *targetCertificate; + GENERAL_NAME *targetName; + OSSL_OBJECT_DIGEST_INFO *certDigestInfo; +}; + +typedef struct TARGET_CERT_st OSSL_TARGET_CERT; + +# define OSSL_TGT_TARGET_NAME 0 +# define OSSL_TGT_TARGET_GROUP 1 +# define OSSL_TGT_TARGET_CERT 2 + +typedef struct TARGET_st { + int type; + union { + GENERAL_NAME *targetName; + GENERAL_NAME *targetGroup; + OSSL_TARGET_CERT *targetCert; + } choice; +} OSSL_TARGET; + +typedef STACK_OF(OSSL_TARGET) OSSL_TARGETS; +typedef STACK_OF(OSSL_TARGETS) OSSL_TARGETING_INFORMATION; + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_TARGET, OSSL_TARGET, OSSL_TARGET) +#define sk_OSSL_TARGET_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_value(sk, idx) ((OSSL_TARGET *)OPENSSL_sk_value(ossl_check_const_OSSL_TARGET_sk_type(sk), (idx))) +#define sk_OSSL_TARGET_new(cmp) ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_new(ossl_check_OSSL_TARGET_compfunc_type(cmp))) +#define sk_OSSL_TARGET_new_null() ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_new_null()) +#define sk_OSSL_TARGET_new_reserve(cmp, n) ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_TARGET_compfunc_type(cmp), (n))) +#define sk_OSSL_TARGET_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_TARGET_sk_type(sk), (n)) +#define sk_OSSL_TARGET_free(sk) OPENSSL_sk_free(ossl_check_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_delete(sk, i) ((OSSL_TARGET *)OPENSSL_sk_delete(ossl_check_OSSL_TARGET_sk_type(sk), (i))) +#define sk_OSSL_TARGET_delete_ptr(sk, ptr) ((OSSL_TARGET *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr))) +#define sk_OSSL_TARGET_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr)) +#define sk_OSSL_TARGET_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr)) +#define sk_OSSL_TARGET_pop(sk) ((OSSL_TARGET *)OPENSSL_sk_pop(ossl_check_OSSL_TARGET_sk_type(sk))) +#define sk_OSSL_TARGET_shift(sk) ((OSSL_TARGET *)OPENSSL_sk_shift(ossl_check_OSSL_TARGET_sk_type(sk))) +#define sk_OSSL_TARGET_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_TARGET_sk_type(sk),ossl_check_OSSL_TARGET_freefunc_type(freefunc)) +#define sk_OSSL_TARGET_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr), (idx)) +#define sk_OSSL_TARGET_set(sk, idx, ptr) ((OSSL_TARGET *)OPENSSL_sk_set(ossl_check_OSSL_TARGET_sk_type(sk), (idx), ossl_check_OSSL_TARGET_type(ptr))) +#define sk_OSSL_TARGET_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr)) +#define sk_OSSL_TARGET_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr)) +#define sk_OSSL_TARGET_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr), pnum) +#define sk_OSSL_TARGET_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_dup(sk) ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_dup(ossl_check_const_OSSL_TARGET_sk_type(sk))) +#define sk_OSSL_TARGET_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_copyfunc_type(copyfunc), ossl_check_OSSL_TARGET_freefunc_type(freefunc))) +#define sk_OSSL_TARGET_set_cmp_func(sk, cmp) ((sk_OSSL_TARGET_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_compfunc_type(cmp))) + + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_TARGETS, OSSL_TARGETS, OSSL_TARGETS) +#define sk_OSSL_TARGETS_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_value(sk, idx) ((OSSL_TARGETS *)OPENSSL_sk_value(ossl_check_const_OSSL_TARGETS_sk_type(sk), (idx))) +#define sk_OSSL_TARGETS_new(cmp) ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_new(ossl_check_OSSL_TARGETS_compfunc_type(cmp))) +#define sk_OSSL_TARGETS_new_null() ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_new_null()) +#define sk_OSSL_TARGETS_new_reserve(cmp, n) ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_TARGETS_compfunc_type(cmp), (n))) +#define sk_OSSL_TARGETS_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_TARGETS_sk_type(sk), (n)) +#define sk_OSSL_TARGETS_free(sk) OPENSSL_sk_free(ossl_check_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_delete(sk, i) ((OSSL_TARGETS *)OPENSSL_sk_delete(ossl_check_OSSL_TARGETS_sk_type(sk), (i))) +#define sk_OSSL_TARGETS_delete_ptr(sk, ptr) ((OSSL_TARGETS *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr))) +#define sk_OSSL_TARGETS_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr)) +#define sk_OSSL_TARGETS_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr)) +#define sk_OSSL_TARGETS_pop(sk) ((OSSL_TARGETS *)OPENSSL_sk_pop(ossl_check_OSSL_TARGETS_sk_type(sk))) +#define sk_OSSL_TARGETS_shift(sk) ((OSSL_TARGETS *)OPENSSL_sk_shift(ossl_check_OSSL_TARGETS_sk_type(sk))) +#define sk_OSSL_TARGETS_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_TARGETS_sk_type(sk),ossl_check_OSSL_TARGETS_freefunc_type(freefunc)) +#define sk_OSSL_TARGETS_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr), (idx)) +#define sk_OSSL_TARGETS_set(sk, idx, ptr) ((OSSL_TARGETS *)OPENSSL_sk_set(ossl_check_OSSL_TARGETS_sk_type(sk), (idx), ossl_check_OSSL_TARGETS_type(ptr))) +#define sk_OSSL_TARGETS_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr)) +#define sk_OSSL_TARGETS_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr)) +#define sk_OSSL_TARGETS_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr), pnum) +#define sk_OSSL_TARGETS_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_dup(sk) ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_dup(ossl_check_const_OSSL_TARGETS_sk_type(sk))) +#define sk_OSSL_TARGETS_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_copyfunc_type(copyfunc), ossl_check_OSSL_TARGETS_freefunc_type(freefunc))) +#define sk_OSSL_TARGETS_set_cmp_func(sk, cmp) ((sk_OSSL_TARGETS_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_compfunc_type(cmp))) + + +DECLARE_ASN1_FUNCTIONS(OSSL_TARGET) +DECLARE_ASN1_FUNCTIONS(OSSL_TARGETS) +DECLARE_ASN1_FUNCTIONS(OSSL_TARGETING_INFORMATION) + +typedef STACK_OF(OSSL_ISSUER_SERIAL) OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX; +DECLARE_ASN1_FUNCTIONS(OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ISSUER_SERIAL, OSSL_ISSUER_SERIAL, OSSL_ISSUER_SERIAL) +#define sk_OSSL_ISSUER_SERIAL_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_value(sk, idx) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_value(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk), (idx))) +#define sk_OSSL_ISSUER_SERIAL_new(cmp) ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_new(ossl_check_OSSL_ISSUER_SERIAL_compfunc_type(cmp))) +#define sk_OSSL_ISSUER_SERIAL_new_null() ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ISSUER_SERIAL_new_reserve(cmp, n) ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ISSUER_SERIAL_compfunc_type(cmp), (n))) +#define sk_OSSL_ISSUER_SERIAL_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), (n)) +#define sk_OSSL_ISSUER_SERIAL_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_delete(sk, i) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_delete(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), (i))) +#define sk_OSSL_ISSUER_SERIAL_delete_ptr(sk, ptr) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr))) +#define sk_OSSL_ISSUER_SERIAL_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr)) +#define sk_OSSL_ISSUER_SERIAL_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr)) +#define sk_OSSL_ISSUER_SERIAL_pop(sk) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_pop(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk))) +#define sk_OSSL_ISSUER_SERIAL_shift(sk) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_shift(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk))) +#define sk_OSSL_ISSUER_SERIAL_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk),ossl_check_OSSL_ISSUER_SERIAL_freefunc_type(freefunc)) +#define sk_OSSL_ISSUER_SERIAL_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr), (idx)) +#define sk_OSSL_ISSUER_SERIAL_set(sk, idx, ptr) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_set(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), (idx), ossl_check_OSSL_ISSUER_SERIAL_type(ptr))) +#define sk_OSSL_ISSUER_SERIAL_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr)) +#define sk_OSSL_ISSUER_SERIAL_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr)) +#define sk_OSSL_ISSUER_SERIAL_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr), pnum) +#define sk_OSSL_ISSUER_SERIAL_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_dup(sk) ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk))) +#define sk_OSSL_ISSUER_SERIAL_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_copyfunc_type(copyfunc), ossl_check_OSSL_ISSUER_SERIAL_freefunc_type(freefunc))) +#define sk_OSSL_ISSUER_SERIAL_set_cmp_func(sk, cmp) ((sk_OSSL_ISSUER_SERIAL_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_compfunc_type(cmp))) + + +#endif diff --git a/deps/openssl/config/archs/aix64-gcc-as/asm/include/openssl/x509_vfy.h b/deps/openssl/config/archs/aix64-gcc-as/asm/include/openssl/x509_vfy.h index 29b0e147adcab1..c9bdc3b39d685d 100644 --- a/deps/openssl/config/archs/aix64-gcc-as/asm/include/openssl/x509_vfy.h +++ b/deps/openssl/config/archs/aix64-gcc-as/asm/include/openssl/x509_vfy.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/x509_vfy.h.in * - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -411,6 +411,7 @@ X509_LOOKUP_ctrl_ex((x), X509_L_ADD_STORE, (name), 0, NULL, \ # define X509_V_ERR_CA_CERT_MISSING_KEY_USAGE 92 # define X509_V_ERR_EXTENSIONS_REQUIRE_VERSION_3 93 # define X509_V_ERR_EC_KEY_EXPLICIT_PARAMS 94 +# define X509_V_ERR_RPK_UNTRUSTED 95 /* Certificate verify flags */ # ifndef OPENSSL_NO_DEPRECATED_1_1_0 @@ -491,71 +492,72 @@ int X509_OBJECT_set1_X509(X509_OBJECT *a, X509 *obj); X509_CRL *X509_OBJECT_get0_X509_CRL(const X509_OBJECT *a); int X509_OBJECT_set1_X509_CRL(X509_OBJECT *a, X509_CRL *obj); X509_STORE *X509_STORE_new(void); -void X509_STORE_free(X509_STORE *v); -int X509_STORE_lock(X509_STORE *ctx); -int X509_STORE_unlock(X509_STORE *ctx); -int X509_STORE_up_ref(X509_STORE *v); -STACK_OF(X509_OBJECT) *X509_STORE_get0_objects(const X509_STORE *v); -STACK_OF(X509) *X509_STORE_get1_all_certs(X509_STORE *st); -STACK_OF(X509) *X509_STORE_CTX_get1_certs(X509_STORE_CTX *st, +void X509_STORE_free(X509_STORE *xs); +int X509_STORE_lock(X509_STORE *xs); +int X509_STORE_unlock(X509_STORE *xs); +int X509_STORE_up_ref(X509_STORE *xs); +STACK_OF(X509_OBJECT) *X509_STORE_get0_objects(const X509_STORE *xs); +STACK_OF(X509_OBJECT) *X509_STORE_get1_objects(X509_STORE *xs); +STACK_OF(X509) *X509_STORE_get1_all_certs(X509_STORE *xs); +STACK_OF(X509) *X509_STORE_CTX_get1_certs(X509_STORE_CTX *xs, const X509_NAME *nm); STACK_OF(X509_CRL) *X509_STORE_CTX_get1_crls(const X509_STORE_CTX *st, const X509_NAME *nm); -int X509_STORE_set_flags(X509_STORE *ctx, unsigned long flags); -int X509_STORE_set_purpose(X509_STORE *ctx, int purpose); -int X509_STORE_set_trust(X509_STORE *ctx, int trust); -int X509_STORE_set1_param(X509_STORE *ctx, const X509_VERIFY_PARAM *pm); -X509_VERIFY_PARAM *X509_STORE_get0_param(const X509_STORE *ctx); +int X509_STORE_set_flags(X509_STORE *xs, unsigned long flags); +int X509_STORE_set_purpose(X509_STORE *xs, int purpose); +int X509_STORE_set_trust(X509_STORE *xs, int trust); +int X509_STORE_set1_param(X509_STORE *xs, const X509_VERIFY_PARAM *pm); +X509_VERIFY_PARAM *X509_STORE_get0_param(const X509_STORE *xs); -void X509_STORE_set_verify(X509_STORE *ctx, X509_STORE_CTX_verify_fn verify); +void X509_STORE_set_verify(X509_STORE *xs, X509_STORE_CTX_verify_fn verify); #define X509_STORE_set_verify_func(ctx, func) \ X509_STORE_set_verify((ctx),(func)) void X509_STORE_CTX_set_verify(X509_STORE_CTX *ctx, X509_STORE_CTX_verify_fn verify); -X509_STORE_CTX_verify_fn X509_STORE_get_verify(const X509_STORE *ctx); -void X509_STORE_set_verify_cb(X509_STORE *ctx, +X509_STORE_CTX_verify_fn X509_STORE_get_verify(const X509_STORE *xs); +void X509_STORE_set_verify_cb(X509_STORE *xs, X509_STORE_CTX_verify_cb verify_cb); # define X509_STORE_set_verify_cb_func(ctx,func) \ X509_STORE_set_verify_cb((ctx),(func)) -X509_STORE_CTX_verify_cb X509_STORE_get_verify_cb(const X509_STORE *ctx); -void X509_STORE_set_get_issuer(X509_STORE *ctx, +X509_STORE_CTX_verify_cb X509_STORE_get_verify_cb(const X509_STORE *xs); +void X509_STORE_set_get_issuer(X509_STORE *xs, X509_STORE_CTX_get_issuer_fn get_issuer); -X509_STORE_CTX_get_issuer_fn X509_STORE_get_get_issuer(const X509_STORE *ctx); -void X509_STORE_set_check_issued(X509_STORE *ctx, +X509_STORE_CTX_get_issuer_fn X509_STORE_get_get_issuer(const X509_STORE *xs); +void X509_STORE_set_check_issued(X509_STORE *xs, X509_STORE_CTX_check_issued_fn check_issued); -X509_STORE_CTX_check_issued_fn X509_STORE_get_check_issued(const X509_STORE *ctx); -void X509_STORE_set_check_revocation(X509_STORE *ctx, +X509_STORE_CTX_check_issued_fn X509_STORE_get_check_issued(const X509_STORE *s); +void X509_STORE_set_check_revocation(X509_STORE *xs, X509_STORE_CTX_check_revocation_fn check_revocation); X509_STORE_CTX_check_revocation_fn - X509_STORE_get_check_revocation(const X509_STORE *ctx); -void X509_STORE_set_get_crl(X509_STORE *ctx, + X509_STORE_get_check_revocation(const X509_STORE *xs); +void X509_STORE_set_get_crl(X509_STORE *xs, X509_STORE_CTX_get_crl_fn get_crl); -X509_STORE_CTX_get_crl_fn X509_STORE_get_get_crl(const X509_STORE *ctx); -void X509_STORE_set_check_crl(X509_STORE *ctx, +X509_STORE_CTX_get_crl_fn X509_STORE_get_get_crl(const X509_STORE *xs); +void X509_STORE_set_check_crl(X509_STORE *xs, X509_STORE_CTX_check_crl_fn check_crl); -X509_STORE_CTX_check_crl_fn X509_STORE_get_check_crl(const X509_STORE *ctx); -void X509_STORE_set_cert_crl(X509_STORE *ctx, +X509_STORE_CTX_check_crl_fn X509_STORE_get_check_crl(const X509_STORE *xs); +void X509_STORE_set_cert_crl(X509_STORE *xs, X509_STORE_CTX_cert_crl_fn cert_crl); -X509_STORE_CTX_cert_crl_fn X509_STORE_get_cert_crl(const X509_STORE *ctx); -void X509_STORE_set_check_policy(X509_STORE *ctx, +X509_STORE_CTX_cert_crl_fn X509_STORE_get_cert_crl(const X509_STORE *xs); +void X509_STORE_set_check_policy(X509_STORE *xs, X509_STORE_CTX_check_policy_fn check_policy); -X509_STORE_CTX_check_policy_fn X509_STORE_get_check_policy(const X509_STORE *ctx); -void X509_STORE_set_lookup_certs(X509_STORE *ctx, +X509_STORE_CTX_check_policy_fn X509_STORE_get_check_policy(const X509_STORE *s); +void X509_STORE_set_lookup_certs(X509_STORE *xs, X509_STORE_CTX_lookup_certs_fn lookup_certs); -X509_STORE_CTX_lookup_certs_fn X509_STORE_get_lookup_certs(const X509_STORE *ctx); -void X509_STORE_set_lookup_crls(X509_STORE *ctx, +X509_STORE_CTX_lookup_certs_fn X509_STORE_get_lookup_certs(const X509_STORE *s); +void X509_STORE_set_lookup_crls(X509_STORE *xs, X509_STORE_CTX_lookup_crls_fn lookup_crls); #define X509_STORE_set_lookup_crls_cb(ctx, func) \ X509_STORE_set_lookup_crls((ctx), (func)) -X509_STORE_CTX_lookup_crls_fn X509_STORE_get_lookup_crls(const X509_STORE *ctx); -void X509_STORE_set_cleanup(X509_STORE *ctx, +X509_STORE_CTX_lookup_crls_fn X509_STORE_get_lookup_crls(const X509_STORE *xs); +void X509_STORE_set_cleanup(X509_STORE *xs, X509_STORE_CTX_cleanup_fn cleanup); -X509_STORE_CTX_cleanup_fn X509_STORE_get_cleanup(const X509_STORE *ctx); +X509_STORE_CTX_cleanup_fn X509_STORE_get_cleanup(const X509_STORE *xs); #define X509_STORE_get_ex_new_index(l, p, newf, dupf, freef) \ CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_X509_STORE, l, p, newf, dupf, freef) -int X509_STORE_set_ex_data(X509_STORE *ctx, int idx, void *data); -void *X509_STORE_get_ex_data(const X509_STORE *ctx, int idx); +int X509_STORE_set_ex_data(X509_STORE *xs, int idx, void *data); +void *X509_STORE_get_ex_data(const X509_STORE *xs, int idx); X509_STORE_CTX *X509_STORE_CTX_new_ex(OSSL_LIB_CTX *libctx, const char *propq); X509_STORE_CTX *X509_STORE_CTX_new(void); @@ -565,11 +567,14 @@ int X509_STORE_CTX_get1_issuer(X509 **issuer, X509_STORE_CTX *ctx, X509 *x); void X509_STORE_CTX_free(X509_STORE_CTX *ctx); int X509_STORE_CTX_init(X509_STORE_CTX *ctx, X509_STORE *trust_store, X509 *target, STACK_OF(X509) *untrusted); +int X509_STORE_CTX_init_rpk(X509_STORE_CTX *ctx, X509_STORE *trust_store, + EVP_PKEY* rpk); void X509_STORE_CTX_set0_trusted_stack(X509_STORE_CTX *ctx, STACK_OF(X509) *sk); void X509_STORE_CTX_cleanup(X509_STORE_CTX *ctx); X509_STORE *X509_STORE_CTX_get0_store(const X509_STORE_CTX *ctx); X509 *X509_STORE_CTX_get0_cert(const X509_STORE_CTX *ctx); +EVP_PKEY *X509_STORE_CTX_get0_rpk(const X509_STORE_CTX *ctx); STACK_OF(X509)* X509_STORE_CTX_get0_untrusted(const X509_STORE_CTX *ctx); void X509_STORE_CTX_set0_untrusted(X509_STORE_CTX *ctx, STACK_OF(X509) *sk); void X509_STORE_CTX_set_verify_cb(X509_STORE_CTX *ctx, @@ -579,6 +584,8 @@ X509_STORE_CTX_verify_fn X509_STORE_CTX_get_verify(const X509_STORE_CTX *ctx); X509_STORE_CTX_get_issuer_fn X509_STORE_CTX_get_get_issuer(const X509_STORE_CTX *ctx); X509_STORE_CTX_check_issued_fn X509_STORE_CTX_get_check_issued(const X509_STORE_CTX *ctx); X509_STORE_CTX_check_revocation_fn X509_STORE_CTX_get_check_revocation(const X509_STORE_CTX *ctx); +void X509_STORE_CTX_set_get_crl(X509_STORE_CTX *ctx, + X509_STORE_CTX_get_crl_fn get_crl); X509_STORE_CTX_get_crl_fn X509_STORE_CTX_get_get_crl(const X509_STORE_CTX *ctx); X509_STORE_CTX_check_crl_fn X509_STORE_CTX_get_check_crl(const X509_STORE_CTX *ctx); X509_STORE_CTX_cert_crl_fn X509_STORE_CTX_get_cert_crl(const X509_STORE_CTX *ctx); @@ -600,7 +607,7 @@ X509_STORE_CTX_cleanup_fn X509_STORE_CTX_get_cleanup(const X509_STORE_CTX *ctx); # define X509_STORE_get1_crl X509_STORE_CTX_get1_crls #endif -X509_LOOKUP *X509_STORE_add_lookup(X509_STORE *v, X509_LOOKUP_METHOD *m); +X509_LOOKUP *X509_STORE_add_lookup(X509_STORE *xs, X509_LOOKUP_METHOD *m); X509_LOOKUP_METHOD *X509_LOOKUP_hash_dir(void); X509_LOOKUP_METHOD *X509_LOOKUP_file(void); X509_LOOKUP_METHOD *X509_LOOKUP_store(void); @@ -685,8 +692,8 @@ X509_LOOKUP_get_by_alias_fn X509_LOOKUP_meth_get_get_by_alias( const X509_LOOKUP_METHOD *method); -int X509_STORE_add_cert(X509_STORE *ctx, X509 *x); -int X509_STORE_add_crl(X509_STORE *ctx, X509_CRL *x); +int X509_STORE_add_cert(X509_STORE *xs, X509 *x); +int X509_STORE_add_crl(X509_STORE *xs, X509_CRL *x); int X509_STORE_CTX_get_by_subject(const X509_STORE_CTX *vs, X509_LOOKUP_TYPE type, @@ -730,23 +737,21 @@ void *X509_LOOKUP_get_method_data(const X509_LOOKUP *ctx); X509_STORE *X509_LOOKUP_get_store(const X509_LOOKUP *ctx); int X509_LOOKUP_shutdown(X509_LOOKUP *ctx); -int X509_STORE_load_file(X509_STORE *ctx, const char *file); -int X509_STORE_load_path(X509_STORE *ctx, const char *path); -int X509_STORE_load_store(X509_STORE *ctx, const char *store); -int X509_STORE_load_locations(X509_STORE *ctx, - const char *file, - const char *dir); -int X509_STORE_set_default_paths(X509_STORE *ctx); +int X509_STORE_load_file(X509_STORE *xs, const char *file); +int X509_STORE_load_path(X509_STORE *xs, const char *path); +int X509_STORE_load_store(X509_STORE *xs, const char *store); +int X509_STORE_load_locations(X509_STORE *s, const char *file, const char *dir); +int X509_STORE_set_default_paths(X509_STORE *xs); -int X509_STORE_load_file_ex(X509_STORE *ctx, const char *file, +int X509_STORE_load_file_ex(X509_STORE *xs, const char *file, OSSL_LIB_CTX *libctx, const char *propq); -int X509_STORE_load_store_ex(X509_STORE *ctx, const char *store, +int X509_STORE_load_store_ex(X509_STORE *xs, const char *store, OSSL_LIB_CTX *libctx, const char *propq); -int X509_STORE_load_locations_ex(X509_STORE *ctx, const char *file, - const char *dir, OSSL_LIB_CTX *libctx, - const char *propq); -int X509_STORE_set_default_paths_ex(X509_STORE *ctx, OSSL_LIB_CTX *libctx, - const char *propq); +int X509_STORE_load_locations_ex(X509_STORE *xs, + const char *file, const char *dir, + OSSL_LIB_CTX *libctx, const char *propq); +int X509_STORE_set_default_paths_ex(X509_STORE *xs, + OSSL_LIB_CTX *libctx, const char *propq); #define X509_STORE_CTX_get_ex_new_index(l, p, newf, dupf, freef) \ CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_X509_STORE_CTX, l, p, newf, dupf, freef) @@ -764,6 +769,7 @@ X509_STORE_CTX *X509_STORE_CTX_get0_parent_ctx(const X509_STORE_CTX *ctx); STACK_OF(X509) *X509_STORE_CTX_get0_chain(const X509_STORE_CTX *ctx); STACK_OF(X509) *X509_STORE_CTX_get1_chain(const X509_STORE_CTX *ctx); void X509_STORE_CTX_set_cert(X509_STORE_CTX *ctx, X509 *target); +void X509_STORE_CTX_set0_rpk(X509_STORE_CTX *ctx, EVP_PKEY *target); void X509_STORE_CTX_set0_verified_chain(X509_STORE_CTX *c, STACK_OF(X509) *sk); void X509_STORE_CTX_set0_crls(X509_STORE_CTX *ctx, STACK_OF(X509_CRL) *sk); int X509_STORE_CTX_set_purpose(X509_STORE_CTX *ctx, int purpose); @@ -773,6 +779,8 @@ int X509_STORE_CTX_purpose_inherit(X509_STORE_CTX *ctx, int def_purpose, void X509_STORE_CTX_set_flags(X509_STORE_CTX *ctx, unsigned long flags); void X509_STORE_CTX_set_time(X509_STORE_CTX *ctx, unsigned long flags, time_t t); +void X509_STORE_CTX_set_current_reasons(X509_STORE_CTX *ctx, + unsigned int current_reasons); X509_POLICY_TREE *X509_STORE_CTX_get0_policy_tree(const X509_STORE_CTX *ctx); int X509_STORE_CTX_get_explicit_policy(const X509_STORE_CTX *ctx); @@ -804,6 +812,7 @@ int X509_VERIFY_PARAM_clear_flags(X509_VERIFY_PARAM *param, unsigned long flags); unsigned long X509_VERIFY_PARAM_get_flags(const X509_VERIFY_PARAM *param); int X509_VERIFY_PARAM_set_purpose(X509_VERIFY_PARAM *param, int purpose); +int X509_VERIFY_PARAM_get_purpose(const X509_VERIFY_PARAM *param); int X509_VERIFY_PARAM_set_trust(X509_VERIFY_PARAM *param, int trust); void X509_VERIFY_PARAM_set_depth(X509_VERIFY_PARAM *param, int depth); void X509_VERIFY_PARAM_set_auth_level(X509_VERIFY_PARAM *param, int auth_level); diff --git a/deps/openssl/config/archs/aix64-gcc-as/asm/include/openssl/x509v3.h b/deps/openssl/config/archs/aix64-gcc-as/asm/include/openssl/x509v3.h index 20b67455f2061d..b8dabac35a4915 100644 --- a/deps/openssl/config/archs/aix64-gcc-as/asm/include/openssl/x509v3.h +++ b/deps/openssl/config/archs/aix64-gcc-as/asm/include/openssl/x509v3.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/x509v3.h.in * - * Copyright 1999-2023 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1999-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -25,6 +25,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -146,6 +149,11 @@ typedef struct BASIC_CONSTRAINTS_st { ASN1_INTEGER *pathlen; } BASIC_CONSTRAINTS; +typedef struct OSSL_BASIC_ATTR_CONSTRAINTS_st { + int authority; + ASN1_INTEGER *pathlen; +} OSSL_BASIC_ATTR_CONSTRAINTS; + typedef struct PKEY_USAGE_PERIOD_st { ASN1_GENERALIZEDTIME *notBefore; ASN1_GENERALIZEDTIME *notAfter; @@ -198,6 +206,8 @@ typedef struct ACCESS_DESCRIPTION_st { GENERAL_NAME *location; } ACCESS_DESCRIPTION; +int GENERAL_NAME_set1_X509_NAME(GENERAL_NAME **tgt, const X509_NAME *src); + SKM_DEFINE_STACK_OF_INTERNAL(ACCESS_DESCRIPTION, ACCESS_DESCRIPTION, ACCESS_DESCRIPTION) #define sk_ACCESS_DESCRIPTION_num(sk) OPENSSL_sk_num(ossl_check_const_ACCESS_DESCRIPTION_sk_type(sk)) #define sk_ACCESS_DESCRIPTION_value(sk, idx) ((ACCESS_DESCRIPTION *)OPENSSL_sk_value(ossl_check_const_ACCESS_DESCRIPTION_sk_type(sk), (idx))) @@ -294,6 +304,7 @@ typedef struct DIST_POINT_NAME_st { /* If relativename then this contains the full distribution point name */ X509_NAME *dpname; } DIST_POINT_NAME; +DECLARE_ASN1_DUP_FUNCTION(DIST_POINT_NAME) /* All existing reasons */ # define CRLDP_ALL_REASONS 0x807f @@ -659,15 +670,16 @@ struct ISSUING_DIST_POINT_st { # define EXFLAG_SAN_CRITICAL 0x80000 # define EXFLAG_NO_FINGERPRINT 0x100000 -# define KU_DIGITAL_SIGNATURE 0x0080 -# define KU_NON_REPUDIATION 0x0040 -# define KU_KEY_ENCIPHERMENT 0x0020 -# define KU_DATA_ENCIPHERMENT 0x0010 -# define KU_KEY_AGREEMENT 0x0008 -# define KU_KEY_CERT_SIGN 0x0004 -# define KU_CRL_SIGN 0x0002 -# define KU_ENCIPHER_ONLY 0x0001 -# define KU_DECIPHER_ONLY 0x8000 +/* https://datatracker.ietf.org/doc/html/rfc5280#section-4.2.1.3 */ +# define KU_DIGITAL_SIGNATURE X509v3_KU_DIGITAL_SIGNATURE +# define KU_NON_REPUDIATION X509v3_KU_NON_REPUDIATION +# define KU_KEY_ENCIPHERMENT X509v3_KU_KEY_ENCIPHERMENT +# define KU_DATA_ENCIPHERMENT X509v3_KU_DATA_ENCIPHERMENT +# define KU_KEY_AGREEMENT X509v3_KU_KEY_AGREEMENT +# define KU_KEY_CERT_SIGN X509v3_KU_KEY_CERT_SIGN +# define KU_CRL_SIGN X509v3_KU_CRL_SIGN +# define KU_ENCIPHER_ONLY X509v3_KU_ENCIPHER_ONLY +# define KU_DECIPHER_ONLY X509v3_KU_DECIPHER_ONLY # define NS_SSL_CLIENT 0x80 # define NS_SSL_SERVER 0x40 @@ -729,7 +741,7 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_PURPOSE, X509_PURPOSE, X509_PURPOSE) #define sk_X509_PURPOSE_set_cmp_func(sk, cmp) ((sk_X509_PURPOSE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_X509_PURPOSE_sk_type(sk), ossl_check_X509_PURPOSE_compfunc_type(cmp))) - +# define X509_PURPOSE_DEFAULT_ANY 0 # define X509_PURPOSE_SSL_CLIENT 1 # define X509_PURPOSE_SSL_SERVER 2 # define X509_PURPOSE_NS_SSL_SERVER 3 @@ -739,9 +751,10 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_PURPOSE, X509_PURPOSE, X509_PURPOSE) # define X509_PURPOSE_ANY 7 # define X509_PURPOSE_OCSP_HELPER 8 # define X509_PURPOSE_TIMESTAMP_SIGN 9 +# define X509_PURPOSE_CODE_SIGN 10 # define X509_PURPOSE_MIN 1 -# define X509_PURPOSE_MAX 9 +# define X509_PURPOSE_MAX 10 /* Flags for X509V3_EXT_print() */ @@ -767,6 +780,7 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_PURPOSE, X509_PURPOSE, X509_PURPOSE) # define X509V3_ADD_SILENT 0x10 DECLARE_ASN1_FUNCTIONS(BASIC_CONSTRAINTS) +DECLARE_ASN1_FUNCTIONS(OSSL_BASIC_ATTR_CONSTRAINTS) DECLARE_ASN1_FUNCTIONS(SXNET) DECLARE_ASN1_FUNCTIONS(SXNETID) @@ -976,7 +990,6 @@ int X509V3_extensions_print(BIO *out, const char *title, int X509_check_ca(X509 *x); int X509_check_purpose(X509 *x, int id, int ca); int X509_supported_extension(X509_EXTENSION *ex); -int X509_PURPOSE_set(int *p, int purpose); int X509_check_issued(X509 *issuer, X509 *subject); int X509_check_akid(const X509 *issuer, const AUTHORITY_KEYID *akid); void X509_set_proxy_flag(X509 *x); @@ -992,22 +1005,26 @@ const GENERAL_NAMES *X509_get0_authority_issuer(X509 *x); const ASN1_INTEGER *X509_get0_authority_serial(X509 *x); int X509_PURPOSE_get_count(void); -X509_PURPOSE *X509_PURPOSE_get0(int idx); +int X509_PURPOSE_get_unused_id(OSSL_LIB_CTX *libctx); int X509_PURPOSE_get_by_sname(const char *sname); int X509_PURPOSE_get_by_id(int id); int X509_PURPOSE_add(int id, int trust, int flags, int (*ck) (const X509_PURPOSE *, const X509 *, int), const char *name, const char *sname, void *arg); +void X509_PURPOSE_cleanup(void); + +X509_PURPOSE *X509_PURPOSE_get0(int idx); +int X509_PURPOSE_get_id(const X509_PURPOSE *); char *X509_PURPOSE_get0_name(const X509_PURPOSE *xp); char *X509_PURPOSE_get0_sname(const X509_PURPOSE *xp); int X509_PURPOSE_get_trust(const X509_PURPOSE *xp); -void X509_PURPOSE_cleanup(void); -int X509_PURPOSE_get_id(const X509_PURPOSE *); +int X509_PURPOSE_set(int *p, int purpose); STACK_OF(OPENSSL_STRING) *X509_get1_email(X509 *x); STACK_OF(OPENSSL_STRING) *X509_REQ_get1_email(X509_REQ *x); void X509_email_free(STACK_OF(OPENSSL_STRING) *sk); STACK_OF(OPENSSL_STRING) *X509_get1_ocsp(X509 *x); + /* Flags for X509_check_* functions */ /* @@ -1444,6 +1461,507 @@ const ASN1_PRINTABLESTRING *PROFESSION_INFO_get0_registrationNumber( void PROFESSION_INFO_set0_registrationNumber( PROFESSION_INFO *pi, ASN1_PRINTABLESTRING *rn); +int OSSL_GENERAL_NAMES_print(BIO *out, GENERAL_NAMES *gens, int indent); + +typedef STACK_OF(X509_ATTRIBUTE) OSSL_ATTRIBUTES_SYNTAX; +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTES_SYNTAX) + +typedef STACK_OF(USERNOTICE) OSSL_USER_NOTICE_SYNTAX; +DECLARE_ASN1_FUNCTIONS(OSSL_USER_NOTICE_SYNTAX) + +SKM_DEFINE_STACK_OF_INTERNAL(USERNOTICE, USERNOTICE, USERNOTICE) +#define sk_USERNOTICE_num(sk) OPENSSL_sk_num(ossl_check_const_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_value(sk, idx) ((USERNOTICE *)OPENSSL_sk_value(ossl_check_const_USERNOTICE_sk_type(sk), (idx))) +#define sk_USERNOTICE_new(cmp) ((STACK_OF(USERNOTICE) *)OPENSSL_sk_new(ossl_check_USERNOTICE_compfunc_type(cmp))) +#define sk_USERNOTICE_new_null() ((STACK_OF(USERNOTICE) *)OPENSSL_sk_new_null()) +#define sk_USERNOTICE_new_reserve(cmp, n) ((STACK_OF(USERNOTICE) *)OPENSSL_sk_new_reserve(ossl_check_USERNOTICE_compfunc_type(cmp), (n))) +#define sk_USERNOTICE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_USERNOTICE_sk_type(sk), (n)) +#define sk_USERNOTICE_free(sk) OPENSSL_sk_free(ossl_check_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_zero(sk) OPENSSL_sk_zero(ossl_check_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_delete(sk, i) ((USERNOTICE *)OPENSSL_sk_delete(ossl_check_USERNOTICE_sk_type(sk), (i))) +#define sk_USERNOTICE_delete_ptr(sk, ptr) ((USERNOTICE *)OPENSSL_sk_delete_ptr(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr))) +#define sk_USERNOTICE_push(sk, ptr) OPENSSL_sk_push(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr)) +#define sk_USERNOTICE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr)) +#define sk_USERNOTICE_pop(sk) ((USERNOTICE *)OPENSSL_sk_pop(ossl_check_USERNOTICE_sk_type(sk))) +#define sk_USERNOTICE_shift(sk) ((USERNOTICE *)OPENSSL_sk_shift(ossl_check_USERNOTICE_sk_type(sk))) +#define sk_USERNOTICE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_USERNOTICE_sk_type(sk),ossl_check_USERNOTICE_freefunc_type(freefunc)) +#define sk_USERNOTICE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr), (idx)) +#define sk_USERNOTICE_set(sk, idx, ptr) ((USERNOTICE *)OPENSSL_sk_set(ossl_check_USERNOTICE_sk_type(sk), (idx), ossl_check_USERNOTICE_type(ptr))) +#define sk_USERNOTICE_find(sk, ptr) OPENSSL_sk_find(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr)) +#define sk_USERNOTICE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr)) +#define sk_USERNOTICE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr), pnum) +#define sk_USERNOTICE_sort(sk) OPENSSL_sk_sort(ossl_check_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_dup(sk) ((STACK_OF(USERNOTICE) *)OPENSSL_sk_dup(ossl_check_const_USERNOTICE_sk_type(sk))) +#define sk_USERNOTICE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(USERNOTICE) *)OPENSSL_sk_deep_copy(ossl_check_const_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_copyfunc_type(copyfunc), ossl_check_USERNOTICE_freefunc_type(freefunc))) +#define sk_USERNOTICE_set_cmp_func(sk, cmp) ((sk_USERNOTICE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_compfunc_type(cmp))) + + +typedef struct OSSL_ROLE_SPEC_CERT_ID_st { + GENERAL_NAME *roleName; + GENERAL_NAME *roleCertIssuer; + ASN1_INTEGER *roleCertSerialNumber; + GENERAL_NAMES *roleCertLocator; +} OSSL_ROLE_SPEC_CERT_ID; + +DECLARE_ASN1_FUNCTIONS(OSSL_ROLE_SPEC_CERT_ID) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ROLE_SPEC_CERT_ID, OSSL_ROLE_SPEC_CERT_ID, OSSL_ROLE_SPEC_CERT_ID) +#define sk_OSSL_ROLE_SPEC_CERT_ID_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_value(sk, idx) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_value(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), (idx))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_new(cmp) ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_new(ossl_check_OSSL_ROLE_SPEC_CERT_ID_compfunc_type(cmp))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_new_null() ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ROLE_SPEC_CERT_ID_new_reserve(cmp, n) ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ROLE_SPEC_CERT_ID_compfunc_type(cmp), (n))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), (n)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_delete(sk, i) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_delete(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), (i))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_delete_ptr(sk, ptr) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_pop(sk) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_pop(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_shift(sk) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_shift(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk),ossl_check_OSSL_ROLE_SPEC_CERT_ID_freefunc_type(freefunc)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr), (idx)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_set(sk, idx, ptr) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_set(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), (idx), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr), pnum) +#define sk_OSSL_ROLE_SPEC_CERT_ID_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_dup(sk) ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_copyfunc_type(copyfunc), ossl_check_OSSL_ROLE_SPEC_CERT_ID_freefunc_type(freefunc))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_set_cmp_func(sk, cmp) ((sk_OSSL_ROLE_SPEC_CERT_ID_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_compfunc_type(cmp))) + + +typedef STACK_OF(OSSL_ROLE_SPEC_CERT_ID) OSSL_ROLE_SPEC_CERT_ID_SYNTAX; + +DECLARE_ASN1_FUNCTIONS(OSSL_ROLE_SPEC_CERT_ID_SYNTAX) +typedef struct OSSL_HASH_st { + X509_ALGOR *algorithmIdentifier; + ASN1_BIT_STRING *hashValue; +} OSSL_HASH; + +typedef struct OSSL_INFO_SYNTAX_POINTER_st { + GENERAL_NAMES *name; + OSSL_HASH *hash; +} OSSL_INFO_SYNTAX_POINTER; + +# define OSSL_INFO_SYNTAX_TYPE_CONTENT 0 +# define OSSL_INFO_SYNTAX_TYPE_POINTER 1 + +typedef struct OSSL_INFO_SYNTAX_st { + int type; + union { + ASN1_STRING *content; + OSSL_INFO_SYNTAX_POINTER *pointer; + } choice; +} OSSL_INFO_SYNTAX; + +typedef struct OSSL_PRIVILEGE_POLICY_ID_st { + ASN1_OBJECT *privilegePolicy; + OSSL_INFO_SYNTAX *privPolSyntax; +} OSSL_PRIVILEGE_POLICY_ID; + +typedef struct OSSL_ATTRIBUTE_DESCRIPTOR_st { + ASN1_OBJECT *identifier; + ASN1_STRING *attributeSyntax; + ASN1_UTF8STRING *name; + ASN1_UTF8STRING *description; + OSSL_PRIVILEGE_POLICY_ID *dominationRule; +} OSSL_ATTRIBUTE_DESCRIPTOR; + +DECLARE_ASN1_FUNCTIONS(OSSL_HASH) +DECLARE_ASN1_FUNCTIONS(OSSL_INFO_SYNTAX) +DECLARE_ASN1_FUNCTIONS(OSSL_INFO_SYNTAX_POINTER) +DECLARE_ASN1_FUNCTIONS(OSSL_PRIVILEGE_POLICY_ID) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_DESCRIPTOR) + +typedef struct OSSL_TIME_SPEC_ABSOLUTE_st { + ASN1_GENERALIZEDTIME *startTime; + ASN1_GENERALIZEDTIME *endTime; +} OSSL_TIME_SPEC_ABSOLUTE; + +typedef struct OSSL_DAY_TIME_st { + ASN1_INTEGER *hour; + ASN1_INTEGER *minute; + ASN1_INTEGER *second; +} OSSL_DAY_TIME; + +typedef struct OSSL_DAY_TIME_BAND_st { + OSSL_DAY_TIME *startDayTime; + OSSL_DAY_TIME *endDayTime; +} OSSL_DAY_TIME_BAND; + +# define OSSL_NAMED_DAY_TYPE_INT 0 +# define OSSL_NAMED_DAY_TYPE_BIT 1 +# define OSSL_NAMED_DAY_INT_SUN 1 +# define OSSL_NAMED_DAY_INT_MON 2 +# define OSSL_NAMED_DAY_INT_TUE 3 +# define OSSL_NAMED_DAY_INT_WED 4 +# define OSSL_NAMED_DAY_INT_THU 5 +# define OSSL_NAMED_DAY_INT_FRI 6 +# define OSSL_NAMED_DAY_INT_SAT 7 +# define OSSL_NAMED_DAY_BIT_SUN 0 +# define OSSL_NAMED_DAY_BIT_MON 1 +# define OSSL_NAMED_DAY_BIT_TUE 2 +# define OSSL_NAMED_DAY_BIT_WED 3 +# define OSSL_NAMED_DAY_BIT_THU 4 +# define OSSL_NAMED_DAY_BIT_FRI 5 +# define OSSL_NAMED_DAY_BIT_SAT 6 + +typedef struct OSSL_NAMED_DAY_st { + int type; + union { + ASN1_INTEGER *intNamedDays; + ASN1_BIT_STRING *bitNamedDays; + } choice; +} OSSL_NAMED_DAY; + +# define OSSL_TIME_SPEC_X_DAY_OF_FIRST 0 +# define OSSL_TIME_SPEC_X_DAY_OF_SECOND 1 +# define OSSL_TIME_SPEC_X_DAY_OF_THIRD 2 +# define OSSL_TIME_SPEC_X_DAY_OF_FOURTH 3 +# define OSSL_TIME_SPEC_X_DAY_OF_FIFTH 4 + +typedef struct OSSL_TIME_SPEC_X_DAY_OF_st { + int type; + union { + OSSL_NAMED_DAY *first; + OSSL_NAMED_DAY *second; + OSSL_NAMED_DAY *third; + OSSL_NAMED_DAY *fourth; + OSSL_NAMED_DAY *fifth; + } choice; +} OSSL_TIME_SPEC_X_DAY_OF; + +# define OSSL_TIME_SPEC_DAY_TYPE_INT 0 +# define OSSL_TIME_SPEC_DAY_TYPE_BIT 1 +# define OSSL_TIME_SPEC_DAY_TYPE_DAY_OF 2 +# define OSSL_TIME_SPEC_DAY_BIT_SUN 0 +# define OSSL_TIME_SPEC_DAY_BIT_MON 1 +# define OSSL_TIME_SPEC_DAY_BIT_TUE 2 +# define OSSL_TIME_SPEC_DAY_BIT_WED 3 +# define OSSL_TIME_SPEC_DAY_BIT_THU 4 +# define OSSL_TIME_SPEC_DAY_BIT_FRI 5 +# define OSSL_TIME_SPEC_DAY_BIT_SAT 6 +# define OSSL_TIME_SPEC_DAY_INT_SUN 1 +# define OSSL_TIME_SPEC_DAY_INT_MON 2 +# define OSSL_TIME_SPEC_DAY_INT_TUE 3 +# define OSSL_TIME_SPEC_DAY_INT_WED 4 +# define OSSL_TIME_SPEC_DAY_INT_THU 5 +# define OSSL_TIME_SPEC_DAY_INT_FRI 6 +# define OSSL_TIME_SPEC_DAY_INT_SAT 7 + +typedef struct OSSL_TIME_SPEC_DAY_st { + int type; + union { + STACK_OF(ASN1_INTEGER) *intDay; + ASN1_BIT_STRING *bitDay; + OSSL_TIME_SPEC_X_DAY_OF *dayOf; + } choice; +} OSSL_TIME_SPEC_DAY; + +# define OSSL_TIME_SPEC_WEEKS_TYPE_ALL 0 +# define OSSL_TIME_SPEC_WEEKS_TYPE_INT 1 +# define OSSL_TIME_SPEC_WEEKS_TYPE_BIT 2 +# define OSSL_TIME_SPEC_BIT_WEEKS_1 0 +# define OSSL_TIME_SPEC_BIT_WEEKS_2 1 +# define OSSL_TIME_SPEC_BIT_WEEKS_3 2 +# define OSSL_TIME_SPEC_BIT_WEEKS_4 3 +# define OSSL_TIME_SPEC_BIT_WEEKS_5 4 + +typedef struct OSSL_TIME_SPEC_WEEKS_st { + int type; + union { + ASN1_NULL *allWeeks; + STACK_OF(ASN1_INTEGER) *intWeek; + ASN1_BIT_STRING *bitWeek; + } choice; +} OSSL_TIME_SPEC_WEEKS; + +# define OSSL_TIME_SPEC_MONTH_TYPE_ALL 0 +# define OSSL_TIME_SPEC_MONTH_TYPE_INT 1 +# define OSSL_TIME_SPEC_MONTH_TYPE_BIT 2 +# define OSSL_TIME_SPEC_INT_MONTH_JAN 1 +# define OSSL_TIME_SPEC_INT_MONTH_FEB 2 +# define OSSL_TIME_SPEC_INT_MONTH_MAR 3 +# define OSSL_TIME_SPEC_INT_MONTH_APR 4 +# define OSSL_TIME_SPEC_INT_MONTH_MAY 5 +# define OSSL_TIME_SPEC_INT_MONTH_JUN 6 +# define OSSL_TIME_SPEC_INT_MONTH_JUL 7 +# define OSSL_TIME_SPEC_INT_MONTH_AUG 8 +# define OSSL_TIME_SPEC_INT_MONTH_SEP 9 +# define OSSL_TIME_SPEC_INT_MONTH_OCT 10 +# define OSSL_TIME_SPEC_INT_MONTH_NOV 11 +# define OSSL_TIME_SPEC_INT_MONTH_DEC 12 +# define OSSL_TIME_SPEC_BIT_MONTH_JAN 0 +# define OSSL_TIME_SPEC_BIT_MONTH_FEB 1 +# define OSSL_TIME_SPEC_BIT_MONTH_MAR 2 +# define OSSL_TIME_SPEC_BIT_MONTH_APR 3 +# define OSSL_TIME_SPEC_BIT_MONTH_MAY 4 +# define OSSL_TIME_SPEC_BIT_MONTH_JUN 5 +# define OSSL_TIME_SPEC_BIT_MONTH_JUL 6 +# define OSSL_TIME_SPEC_BIT_MONTH_AUG 7 +# define OSSL_TIME_SPEC_BIT_MONTH_SEP 8 +# define OSSL_TIME_SPEC_BIT_MONTH_OCT 9 +# define OSSL_TIME_SPEC_BIT_MONTH_NOV 10 +# define OSSL_TIME_SPEC_BIT_MONTH_DEC 11 + +typedef struct OSSL_TIME_SPEC_MONTH_st { + int type; + union { + ASN1_NULL *allMonths; + STACK_OF(ASN1_INTEGER) *intMonth; + ASN1_BIT_STRING *bitMonth; + } choice; +} OSSL_TIME_SPEC_MONTH; + +typedef struct OSSL_TIME_PERIOD_st { + STACK_OF(OSSL_DAY_TIME_BAND) *timesOfDay; + OSSL_TIME_SPEC_DAY *days; + OSSL_TIME_SPEC_WEEKS *weeks; + OSSL_TIME_SPEC_MONTH *months; + STACK_OF(ASN1_INTEGER) *years; +} OSSL_TIME_PERIOD; + +# define OSSL_TIME_SPEC_TIME_TYPE_ABSOLUTE 0 +# define OSSL_TIME_SPEC_TIME_TYPE_PERIODIC 1 + +typedef struct OSSL_TIME_SPEC_TIME_st { + int type; + union { + OSSL_TIME_SPEC_ABSOLUTE *absolute; + STACK_OF(OSSL_TIME_PERIOD) *periodic; + } choice; +} OSSL_TIME_SPEC_TIME; + +typedef struct OSSL_TIME_SPEC_st { + OSSL_TIME_SPEC_TIME *time; + ASN1_BOOLEAN notThisTime; + ASN1_INTEGER *timeZone; +} OSSL_TIME_SPEC; + +DECLARE_ASN1_FUNCTIONS(OSSL_DAY_TIME) +DECLARE_ASN1_FUNCTIONS(OSSL_DAY_TIME_BAND) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_DAY) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_WEEKS) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_MONTH) +DECLARE_ASN1_FUNCTIONS(OSSL_NAMED_DAY) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_X_DAY_OF) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_ABSOLUTE) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_TIME) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_PERIOD) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_TIME_PERIOD, OSSL_TIME_PERIOD, OSSL_TIME_PERIOD) +#define sk_OSSL_TIME_PERIOD_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_value(sk, idx) ((OSSL_TIME_PERIOD *)OPENSSL_sk_value(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk), (idx))) +#define sk_OSSL_TIME_PERIOD_new(cmp) ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_new(ossl_check_OSSL_TIME_PERIOD_compfunc_type(cmp))) +#define sk_OSSL_TIME_PERIOD_new_null() ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_new_null()) +#define sk_OSSL_TIME_PERIOD_new_reserve(cmp, n) ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_TIME_PERIOD_compfunc_type(cmp), (n))) +#define sk_OSSL_TIME_PERIOD_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), (n)) +#define sk_OSSL_TIME_PERIOD_free(sk) OPENSSL_sk_free(ossl_check_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_delete(sk, i) ((OSSL_TIME_PERIOD *)OPENSSL_sk_delete(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), (i))) +#define sk_OSSL_TIME_PERIOD_delete_ptr(sk, ptr) ((OSSL_TIME_PERIOD *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr))) +#define sk_OSSL_TIME_PERIOD_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr)) +#define sk_OSSL_TIME_PERIOD_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr)) +#define sk_OSSL_TIME_PERIOD_pop(sk) ((OSSL_TIME_PERIOD *)OPENSSL_sk_pop(ossl_check_OSSL_TIME_PERIOD_sk_type(sk))) +#define sk_OSSL_TIME_PERIOD_shift(sk) ((OSSL_TIME_PERIOD *)OPENSSL_sk_shift(ossl_check_OSSL_TIME_PERIOD_sk_type(sk))) +#define sk_OSSL_TIME_PERIOD_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_TIME_PERIOD_sk_type(sk),ossl_check_OSSL_TIME_PERIOD_freefunc_type(freefunc)) +#define sk_OSSL_TIME_PERIOD_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr), (idx)) +#define sk_OSSL_TIME_PERIOD_set(sk, idx, ptr) ((OSSL_TIME_PERIOD *)OPENSSL_sk_set(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), (idx), ossl_check_OSSL_TIME_PERIOD_type(ptr))) +#define sk_OSSL_TIME_PERIOD_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr)) +#define sk_OSSL_TIME_PERIOD_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr)) +#define sk_OSSL_TIME_PERIOD_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr), pnum) +#define sk_OSSL_TIME_PERIOD_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_dup(sk) ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_dup(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk))) +#define sk_OSSL_TIME_PERIOD_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_copyfunc_type(copyfunc), ossl_check_OSSL_TIME_PERIOD_freefunc_type(freefunc))) +#define sk_OSSL_TIME_PERIOD_set_cmp_func(sk, cmp) ((sk_OSSL_TIME_PERIOD_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_compfunc_type(cmp))) + + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_DAY_TIME_BAND, OSSL_DAY_TIME_BAND, OSSL_DAY_TIME_BAND) +#define sk_OSSL_DAY_TIME_BAND_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_value(sk, idx) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_value(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk), (idx))) +#define sk_OSSL_DAY_TIME_BAND_new(cmp) ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_new(ossl_check_OSSL_DAY_TIME_BAND_compfunc_type(cmp))) +#define sk_OSSL_DAY_TIME_BAND_new_null() ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_new_null()) +#define sk_OSSL_DAY_TIME_BAND_new_reserve(cmp, n) ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_DAY_TIME_BAND_compfunc_type(cmp), (n))) +#define sk_OSSL_DAY_TIME_BAND_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), (n)) +#define sk_OSSL_DAY_TIME_BAND_free(sk) OPENSSL_sk_free(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_delete(sk, i) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_delete(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), (i))) +#define sk_OSSL_DAY_TIME_BAND_delete_ptr(sk, ptr) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr))) +#define sk_OSSL_DAY_TIME_BAND_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr)) +#define sk_OSSL_DAY_TIME_BAND_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr)) +#define sk_OSSL_DAY_TIME_BAND_pop(sk) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_pop(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk))) +#define sk_OSSL_DAY_TIME_BAND_shift(sk) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_shift(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk))) +#define sk_OSSL_DAY_TIME_BAND_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk),ossl_check_OSSL_DAY_TIME_BAND_freefunc_type(freefunc)) +#define sk_OSSL_DAY_TIME_BAND_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr), (idx)) +#define sk_OSSL_DAY_TIME_BAND_set(sk, idx, ptr) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_set(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), (idx), ossl_check_OSSL_DAY_TIME_BAND_type(ptr))) +#define sk_OSSL_DAY_TIME_BAND_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr)) +#define sk_OSSL_DAY_TIME_BAND_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr)) +#define sk_OSSL_DAY_TIME_BAND_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr), pnum) +#define sk_OSSL_DAY_TIME_BAND_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_dup(sk) ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_dup(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk))) +#define sk_OSSL_DAY_TIME_BAND_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_copyfunc_type(copyfunc), ossl_check_OSSL_DAY_TIME_BAND_freefunc_type(freefunc))) +#define sk_OSSL_DAY_TIME_BAND_set_cmp_func(sk, cmp) ((sk_OSSL_DAY_TIME_BAND_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_compfunc_type(cmp))) + + +/* Attribute Type and Value */ +typedef struct atav_st { + ASN1_OBJECT *type; + ASN1_TYPE *value; +} OSSL_ATAV; + +typedef struct ATTRIBUTE_TYPE_MAPPING_st { + ASN1_OBJECT *local; + ASN1_OBJECT *remote; +} OSSL_ATTRIBUTE_TYPE_MAPPING; + +typedef struct ATTRIBUTE_VALUE_MAPPING_st { + OSSL_ATAV *local; + OSSL_ATAV *remote; +} OSSL_ATTRIBUTE_VALUE_MAPPING; + +# define OSSL_ATTR_MAP_TYPE 0 +# define OSSL_ATTR_MAP_VALUE 1 + +typedef struct ATTRIBUTE_MAPPING_st { + int type; + union { + OSSL_ATTRIBUTE_TYPE_MAPPING *typeMappings; + OSSL_ATTRIBUTE_VALUE_MAPPING *typeValueMappings; + } choice; +} OSSL_ATTRIBUTE_MAPPING; + +typedef STACK_OF(OSSL_ATTRIBUTE_MAPPING) OSSL_ATTRIBUTE_MAPPINGS; +DECLARE_ASN1_FUNCTIONS(OSSL_ATAV) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_TYPE_MAPPING) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_VALUE_MAPPING) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_MAPPING) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_MAPPINGS) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ATTRIBUTE_MAPPING, OSSL_ATTRIBUTE_MAPPING, OSSL_ATTRIBUTE_MAPPING) +#define sk_OSSL_ATTRIBUTE_MAPPING_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_value(sk, idx) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_value(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), (idx))) +#define sk_OSSL_ATTRIBUTE_MAPPING_new(cmp) ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_new(ossl_check_OSSL_ATTRIBUTE_MAPPING_compfunc_type(cmp))) +#define sk_OSSL_ATTRIBUTE_MAPPING_new_null() ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ATTRIBUTE_MAPPING_new_reserve(cmp, n) ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ATTRIBUTE_MAPPING_compfunc_type(cmp), (n))) +#define sk_OSSL_ATTRIBUTE_MAPPING_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), (n)) +#define sk_OSSL_ATTRIBUTE_MAPPING_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_delete(sk, i) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_delete(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), (i))) +#define sk_OSSL_ATTRIBUTE_MAPPING_delete_ptr(sk, ptr) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr))) +#define sk_OSSL_ATTRIBUTE_MAPPING_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr)) +#define sk_OSSL_ATTRIBUTE_MAPPING_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr)) +#define sk_OSSL_ATTRIBUTE_MAPPING_pop(sk) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_pop(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk))) +#define sk_OSSL_ATTRIBUTE_MAPPING_shift(sk) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_shift(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk))) +#define sk_OSSL_ATTRIBUTE_MAPPING_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk),ossl_check_OSSL_ATTRIBUTE_MAPPING_freefunc_type(freefunc)) +#define sk_OSSL_ATTRIBUTE_MAPPING_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr), (idx)) +#define sk_OSSL_ATTRIBUTE_MAPPING_set(sk, idx, ptr) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_set(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), (idx), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr))) +#define sk_OSSL_ATTRIBUTE_MAPPING_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr)) +#define sk_OSSL_ATTRIBUTE_MAPPING_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr)) +#define sk_OSSL_ATTRIBUTE_MAPPING_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr), pnum) +#define sk_OSSL_ATTRIBUTE_MAPPING_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_dup(sk) ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk))) +#define sk_OSSL_ATTRIBUTE_MAPPING_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_copyfunc_type(copyfunc), ossl_check_OSSL_ATTRIBUTE_MAPPING_freefunc_type(freefunc))) +#define sk_OSSL_ATTRIBUTE_MAPPING_set_cmp_func(sk, cmp) ((sk_OSSL_ATTRIBUTE_MAPPING_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_compfunc_type(cmp))) + + +# define OSSL_AAA_ATTRIBUTE_TYPE 0 +# define OSSL_AAA_ATTRIBUTE_VALUES 1 + +typedef struct ALLOWED_ATTRIBUTES_CHOICE_st { + int type; + union { + ASN1_OBJECT *attributeType; + X509_ATTRIBUTE *attributeTypeandValues; + } choice; +} OSSL_ALLOWED_ATTRIBUTES_CHOICE; + +typedef struct ALLOWED_ATTRIBUTES_ITEM_st { + STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *attributes; + GENERAL_NAME *holderDomain; +} OSSL_ALLOWED_ATTRIBUTES_ITEM; + +typedef STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) OSSL_ALLOWED_ATTRIBUTES_SYNTAX; + +DECLARE_ASN1_FUNCTIONS(OSSL_ALLOWED_ATTRIBUTES_CHOICE) +DECLARE_ASN1_FUNCTIONS(OSSL_ALLOWED_ATTRIBUTES_ITEM) +DECLARE_ASN1_FUNCTIONS(OSSL_ALLOWED_ATTRIBUTES_SYNTAX) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ALLOWED_ATTRIBUTES_CHOICE, OSSL_ALLOWED_ATTRIBUTES_CHOICE, OSSL_ALLOWED_ATTRIBUTES_CHOICE) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_value(sk, idx) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_value(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), (idx))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_new(cmp) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_new(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_compfunc_type(cmp))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_new_null() ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_new_reserve(cmp, n) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_compfunc_type(cmp), (n))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), (n)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_delete(sk, i) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_delete(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), (i))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_delete_ptr(sk, ptr) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_pop(sk) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_pop(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_shift(sk) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_shift(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk),ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_freefunc_type(freefunc)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr), (idx)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_set(sk, idx, ptr) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_set(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), (idx), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr), pnum) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_dup(sk) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_copyfunc_type(copyfunc), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_freefunc_type(freefunc))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_set_cmp_func(sk, cmp) ((sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_compfunc_type(cmp))) + + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ALLOWED_ATTRIBUTES_ITEM, OSSL_ALLOWED_ATTRIBUTES_ITEM, OSSL_ALLOWED_ATTRIBUTES_ITEM) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_value(sk, idx) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_value(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), (idx))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_new(cmp) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_new(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_compfunc_type(cmp))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_new_null() ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_new_reserve(cmp, n) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_compfunc_type(cmp), (n))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), (n)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_delete(sk, i) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_delete(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), (i))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_delete_ptr(sk, ptr) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_pop(sk) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_pop(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_shift(sk) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_shift(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk),ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_freefunc_type(freefunc)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr), (idx)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_set(sk, idx, ptr) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_set(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), (idx), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr), pnum) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_dup(sk) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_copyfunc_type(copyfunc), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_freefunc_type(freefunc))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_set_cmp_func(sk, cmp) ((sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_compfunc_type(cmp))) + + +typedef struct AA_DIST_POINT_st { + DIST_POINT_NAME *distpoint; + ASN1_BIT_STRING *reasons; + int dp_reasons; + ASN1_BOOLEAN indirectCRL; + ASN1_BOOLEAN containsUserAttributeCerts; + ASN1_BOOLEAN containsAACerts; + ASN1_BOOLEAN containsSOAPublicKeyCerts; +} OSSL_AA_DIST_POINT; + +DECLARE_ASN1_FUNCTIONS(OSSL_AA_DIST_POINT) + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/aix64-gcc-as/asm/include/progs.h b/deps/openssl/config/archs/aix64-gcc-as/asm/include/progs.h index be55f61503d405..1b62ec37dec130 100644 --- a/deps/openssl/config/archs/aix64-gcc-as/asm/include/progs.h +++ b/deps/openssl/config/archs/aix64-gcc-as/asm/include/progs.h @@ -56,6 +56,7 @@ extern int s_client_main(int argc, char *argv[]); extern int s_server_main(int argc, char *argv[]); extern int s_time_main(int argc, char *argv[]); extern int sess_id_main(int argc, char *argv[]); +extern int skeyutl_main(int argc, char *argv[]); extern int smime_main(int argc, char *argv[]); extern int speed_main(int argc, char *argv[]); extern int spkac_main(int argc, char *argv[]); @@ -110,6 +111,7 @@ extern const OPTIONS s_client_options[]; extern const OPTIONS s_server_options[]; extern const OPTIONS s_time_options[]; extern const OPTIONS sess_id_options[]; +extern const OPTIONS skeyutl_options[]; extern const OPTIONS smime_options[]; extern const OPTIONS speed_options[]; extern const OPTIONS spkac_options[]; diff --git a/deps/openssl/config/archs/aix64-gcc-as/asm/openssl-cl.gypi b/deps/openssl/config/archs/aix64-gcc-as/asm/openssl-cl.gypi index 435cf2453e4c05..6e716704b82718 100644 --- a/deps/openssl/config/archs/aix64-gcc-as/asm/openssl-cl.gypi +++ b/deps/openssl/config/archs/aix64-gcc-as/asm/openssl-cl.gypi @@ -72,6 +72,7 @@ 'openssl/apps/s_server.c', 'openssl/apps/s_time.c', 'openssl/apps/sess_id.c', + 'openssl/apps/skeyutl.c', 'openssl/apps/smime.c', 'openssl/apps/speed.c', 'openssl/apps/spkac.c', @@ -87,12 +88,14 @@ 'openssl/apps/lib/app_rand.c', 'openssl/apps/lib/app_x509.c', 'openssl/apps/lib/apps.c', + 'openssl/apps/lib/apps_opt_printf.c', 'openssl/apps/lib/apps_ui.c', 'openssl/apps/lib/columns.c', 'openssl/apps/lib/engine.c', 'openssl/apps/lib/engine_loader.c', 'openssl/apps/lib/fmt.c', 'openssl/apps/lib/http_server.c', + 'openssl/apps/lib/log.c', 'openssl/apps/lib/names.c', 'openssl/apps/lib/opt.c', 'openssl/apps/lib/s_cb.c', diff --git a/deps/openssl/config/archs/aix64-gcc-as/asm/openssl-fips.gypi b/deps/openssl/config/archs/aix64-gcc-as/asm/openssl-fips.gypi index 834f45768009b6..42565428a601a2 100644 --- a/deps/openssl/config/archs/aix64-gcc-as/asm/openssl-fips.gypi +++ b/deps/openssl/config/archs/aix64-gcc-as/asm/openssl-fips.gypi @@ -102,14 +102,15 @@ 'openssl/crypto/evp/kem.c', 'openssl/crypto/evp/keymgmt_lib.c', 'openssl/crypto/evp/keymgmt_meth.c', - 'openssl/crypto/evp/m_sigver.c', 'openssl/crypto/evp/mac_lib.c', 'openssl/crypto/evp/mac_meth.c', 'openssl/crypto/evp/p_lib.c', 'openssl/crypto/evp/pmeth_check.c', 'openssl/crypto/evp/pmeth_gn.c', 'openssl/crypto/evp/pmeth_lib.c', + 'openssl/crypto/evp/s_lib.c', 'openssl/crypto/evp/signature.c', + 'openssl/crypto/evp/skeymgmt_meth.c', 'openssl/crypto/ffc/ffc_backend.c', 'openssl/crypto/ffc/ffc_dh.c', 'openssl/crypto/ffc/ffc_key_generate.c', @@ -117,6 +118,8 @@ 'openssl/crypto/ffc/ffc_params.c', 'openssl/crypto/ffc/ffc_params_generate.c', 'openssl/crypto/ffc/ffc_params_validate.c', + 'openssl/crypto/hashtable/hashfunc.c', + 'openssl/crypto/hashtable/hashtable.c', 'openssl/crypto/hmac/hmac.c', 'openssl/crypto/lhash/lhash.c', 'openssl/crypto/asn1_dsa.c', @@ -147,6 +150,16 @@ 'openssl/crypto/threads_none.c', 'openssl/crypto/threads_pthread.c', 'openssl/crypto/threads_win.c', + 'openssl/crypto/time.c', + 'openssl/crypto/ml_dsa/ml_dsa_encoders.c', + 'openssl/crypto/ml_dsa/ml_dsa_key.c', + 'openssl/crypto/ml_dsa/ml_dsa_key_compress.c', + 'openssl/crypto/ml_dsa/ml_dsa_matrix.c', + 'openssl/crypto/ml_dsa/ml_dsa_ntt.c', + 'openssl/crypto/ml_dsa/ml_dsa_params.c', + 'openssl/crypto/ml_dsa/ml_dsa_sample.c', + 'openssl/crypto/ml_dsa/ml_dsa_sign.c', + 'openssl/crypto/ml_kem/ml_kem.c', 'openssl/crypto/modes/cbc128.c', 'openssl/crypto/modes/ccm128.c', 'openssl/crypto/modes/cfb128.c', @@ -155,6 +168,7 @@ 'openssl/crypto/modes/ofb128.c', 'openssl/crypto/modes/wrap128.c', 'openssl/crypto/modes/xts128.c', + 'openssl/crypto/modes/xts128gb.c', 'openssl/crypto/property/defn_cache.c', 'openssl/crypto/property/property.c', 'openssl/crypto/property/property_parse.c', @@ -183,7 +197,23 @@ 'openssl/crypto/sha/sha3.c', 'openssl/crypto/sha/sha512.c', 'openssl/crypto/sha/sha_ppc.c', + 'openssl/crypto/slh_dsa/slh_adrs.c', + 'openssl/crypto/slh_dsa/slh_dsa.c', + 'openssl/crypto/slh_dsa/slh_dsa_hash_ctx.c', + 'openssl/crypto/slh_dsa/slh_dsa_key.c', + 'openssl/crypto/slh_dsa/slh_fors.c', + 'openssl/crypto/slh_dsa/slh_hash.c', + 'openssl/crypto/slh_dsa/slh_hypertree.c', + 'openssl/crypto/slh_dsa/slh_params.c', + 'openssl/crypto/slh_dsa/slh_wots.c', + 'openssl/crypto/slh_dsa/slh_xmss.c', 'openssl/crypto/stack/stack.c', + 'openssl/crypto/thread/arch/thread_none.c', + 'openssl/crypto/thread/arch/thread_posix.c', + 'openssl/crypto/thread/arch/thread_win.c', + 'openssl/crypto/thread/api.c', + 'openssl/crypto/thread/arch.c', + 'openssl/crypto/thread/internal.c', 'openssl/providers/common/der/der_rsa_sig.c', 'openssl/providers/common/bio_prov.c', 'openssl/providers/common/capabilities.c', @@ -192,6 +222,7 @@ 'openssl/providers/common/provider_util.c', 'openssl/providers/common/securitycheck.c', 'openssl/providers/common/securitycheck_fips.c', + 'openssl/providers/fips/fipsindicator.c', 'openssl/providers/fips/fipsprov.c', 'openssl/providers/fips/self_test.c', 'openssl/providers/fips/self_test_kats.c', @@ -229,6 +260,8 @@ 'openssl/providers/implementations/kdfs/sskdf.c', 'openssl/providers/implementations/kdfs/tls1_prf.c', 'openssl/providers/implementations/kdfs/x942kdf.c', + 'openssl/providers/implementations/kem/ml_kem_kem.c', + 'openssl/providers/implementations/kem/mlx_kem.c', 'openssl/providers/implementations/kem/rsa_kem.c', 'openssl/providers/implementations/keymgmt/dh_kmgmt.c', 'openssl/providers/implementations/keymgmt/dsa_kmgmt.c', @@ -236,29 +269,39 @@ 'openssl/providers/implementations/keymgmt/ecx_kmgmt.c', 'openssl/providers/implementations/keymgmt/kdf_legacy_kmgmt.c', 'openssl/providers/implementations/keymgmt/mac_legacy_kmgmt.c', + 'openssl/providers/implementations/keymgmt/ml_dsa_kmgmt.c', + 'openssl/providers/implementations/keymgmt/ml_kem_kmgmt.c', + 'openssl/providers/implementations/keymgmt/mlx_kmgmt.c', 'openssl/providers/implementations/keymgmt/rsa_kmgmt.c', + 'openssl/providers/implementations/keymgmt/slh_dsa_kmgmt.c', 'openssl/providers/implementations/macs/cmac_prov.c', 'openssl/providers/implementations/macs/gmac_prov.c', 'openssl/providers/implementations/macs/hmac_prov.c', 'openssl/providers/implementations/macs/kmac_prov.c', - 'openssl/providers/implementations/rands/crngt.c', 'openssl/providers/implementations/rands/drbg.c', 'openssl/providers/implementations/rands/drbg_ctr.c', 'openssl/providers/implementations/rands/drbg_hash.c', 'openssl/providers/implementations/rands/drbg_hmac.c', + 'openssl/providers/implementations/rands/fips_crng_test.c', 'openssl/providers/implementations/rands/test_rng.c', 'openssl/providers/implementations/signature/dsa_sig.c', 'openssl/providers/implementations/signature/ecdsa_sig.c', 'openssl/providers/implementations/signature/eddsa_sig.c', 'openssl/providers/implementations/signature/mac_legacy_sig.c', + 'openssl/providers/implementations/signature/ml_dsa_sig.c', 'openssl/providers/implementations/signature/rsa_sig.c', - 'openssl/ssl/s3_cbc.c', + 'openssl/providers/implementations/signature/slh_dsa_sig.c', + 'openssl/providers/implementations/skeymgmt/aes_skmgmt.c', + 'openssl/providers/implementations/skeymgmt/generic.c', + 'openssl/ssl/record/methods/ssl3_cbc.c', 'openssl/providers/common/der/der_dsa_key.c', 'openssl/providers/common/der/der_dsa_sig.c', 'openssl/providers/common/der/der_ec_key.c', 'openssl/providers/common/der/der_ec_sig.c', 'openssl/providers/common/der/der_ecx_key.c', + 'openssl/providers/common/der/der_ml_dsa_key.c', 'openssl/providers/common/der/der_rsa_key.c', + 'openssl/providers/common/der/der_slh_dsa_key.c', 'openssl/providers/common/provider_ctx.c', 'openssl/providers/common/provider_err.c', 'openssl/providers/implementations/ciphers/ciphercommon.c', @@ -269,7 +312,7 @@ 'openssl/providers/implementations/ciphers/ciphercommon_gcm_hw.c', 'openssl/providers/implementations/ciphers/ciphercommon_hw.c', 'openssl/providers/implementations/digests/digestcommon.c', - 'openssl/ssl/record/tls_pad.c', + 'openssl/ssl/record/methods/tls_pad.c', 'openssl/providers/fips/fips_entry.c', ], @@ -279,9 +322,11 @@ './config/archs/aix64-gcc-as/asm/crypto/aes/vpaes-ppc.s', './config/archs/aix64-gcc-as/asm/crypto/bn/bn-ppc.s', './config/archs/aix64-gcc-as/asm/crypto/bn/ppc-mont.s', + './config/archs/aix64-gcc-as/asm/crypto/bn/ppc64-mont-fixed.s', './config/archs/aix64-gcc-as/asm/crypto/chacha/chacha-ppc.s', './config/archs/aix64-gcc-as/asm/crypto/ec/ecp_nistz256-ppc64.s', './config/archs/aix64-gcc-as/asm/crypto/ec/x25519-ppc64.s', + './config/archs/aix64-gcc-as/asm/crypto/params_idx.c', './config/archs/aix64-gcc-as/asm/crypto/ppccpuid.s', './config/archs/aix64-gcc-as/asm/crypto/modes/ghashp8-ppc.s', './config/archs/aix64-gcc-as/asm/crypto/poly1305/poly1305-ppc.s', @@ -297,7 +342,9 @@ './config/archs/aix64-gcc-as/asm/providers/common/der/der_dsa_gen.c', './config/archs/aix64-gcc-as/asm/providers/common/der/der_ec_gen.c', './config/archs/aix64-gcc-as/asm/providers/common/der/der_ecx_gen.c', + './config/archs/aix64-gcc-as/asm/providers/common/der/der_ml_dsa_gen.c', './config/archs/aix64-gcc-as/asm/providers/common/der/der_rsa_gen.c', + './config/archs/aix64-gcc-as/asm/providers/common/der/der_slh_dsa_gen.c', './config/archs/aix64-gcc-as/asm/providers/common/der/der_wrap_gen.c', './config/archs/aix64-gcc-as/asm/providers/legacy.ld', './config/archs/aix64-gcc-as/asm/providers/fips.ld', diff --git a/deps/openssl/config/archs/aix64-gcc-as/asm/openssl.gypi b/deps/openssl/config/archs/aix64-gcc-as/asm/openssl.gypi index 93acbf01f5373a..2c9de18b950e59 100644 --- a/deps/openssl/config/archs/aix64-gcc-as/asm/openssl.gypi +++ b/deps/openssl/config/archs/aix64-gcc-as/asm/openssl.gypi @@ -7,14 +7,15 @@ 'openssl/ssl/d1_srtp.c', 'openssl/ssl/methods.c', 'openssl/ssl/pqueue.c', + 'openssl/ssl/priority_queue.c', 'openssl/ssl/s3_enc.c', 'openssl/ssl/s3_lib.c', 'openssl/ssl/s3_msg.c', 'openssl/ssl/ssl_asn1.c', 'openssl/ssl/ssl_cert.c', + 'openssl/ssl/ssl_cert_comp.c', 'openssl/ssl/ssl_ciph.c', 'openssl/ssl/ssl_conf.c', - 'openssl/ssl/ssl_err.c', 'openssl/ssl/ssl_err_legacy.c', 'openssl/ssl/ssl_init.c', 'openssl/ssl/ssl_lib.c', @@ -31,12 +32,60 @@ 'openssl/ssl/tls13_enc.c', 'openssl/ssl/tls_depr.c', 'openssl/ssl/tls_srp.c', - 'openssl/ssl/record/dtls1_bitmap.c', + 'openssl/ssl/quic/cc_newreno.c', + 'openssl/ssl/quic/json_enc.c', + 'openssl/ssl/quic/qlog.c', + 'openssl/ssl/quic/qlog_event_helpers.c', + 'openssl/ssl/quic/quic_ackm.c', + 'openssl/ssl/quic/quic_cfq.c', + 'openssl/ssl/quic/quic_channel.c', + 'openssl/ssl/quic/quic_demux.c', + 'openssl/ssl/quic/quic_engine.c', + 'openssl/ssl/quic/quic_fc.c', + 'openssl/ssl/quic/quic_fifd.c', + 'openssl/ssl/quic/quic_impl.c', + 'openssl/ssl/quic/quic_lcidm.c', + 'openssl/ssl/quic/quic_method.c', + 'openssl/ssl/quic/quic_obj.c', + 'openssl/ssl/quic/quic_port.c', + 'openssl/ssl/quic/quic_rcidm.c', + 'openssl/ssl/quic/quic_reactor.c', + 'openssl/ssl/quic/quic_reactor_wait_ctx.c', + 'openssl/ssl/quic/quic_record_rx.c', + 'openssl/ssl/quic/quic_record_shared.c', + 'openssl/ssl/quic/quic_record_tx.c', + 'openssl/ssl/quic/quic_record_util.c', + 'openssl/ssl/quic/quic_rstream.c', + 'openssl/ssl/quic/quic_rx_depack.c', + 'openssl/ssl/quic/quic_sf_list.c', + 'openssl/ssl/quic/quic_srt_gen.c', + 'openssl/ssl/quic/quic_srtm.c', + 'openssl/ssl/quic/quic_sstream.c', + 'openssl/ssl/quic/quic_statm.c', + 'openssl/ssl/quic/quic_stream_map.c', + 'openssl/ssl/quic/quic_thread_assist.c', + 'openssl/ssl/quic/quic_tls.c', + 'openssl/ssl/quic/quic_tls_api.c', + 'openssl/ssl/quic/quic_trace.c', + 'openssl/ssl/quic/quic_tserver.c', + 'openssl/ssl/quic/quic_txp.c', + 'openssl/ssl/quic/quic_txpim.c', + 'openssl/ssl/quic/quic_types.c', + 'openssl/ssl/quic/quic_wire.c', + 'openssl/ssl/quic/quic_wire_pkt.c', + 'openssl/ssl/quic/uint_set.c', 'openssl/ssl/record/rec_layer_d1.c', 'openssl/ssl/record/rec_layer_s3.c', - 'openssl/ssl/record/ssl3_buffer.c', - 'openssl/ssl/record/ssl3_record.c', - 'openssl/ssl/record/ssl3_record_tls13.c', + 'openssl/ssl/record/methods/dtls_meth.c', + 'openssl/ssl/record/methods/ssl3_meth.c', + 'openssl/ssl/record/methods/tls13_meth.c', + 'openssl/ssl/record/methods/tls1_meth.c', + 'openssl/ssl/record/methods/tls_common.c', + 'openssl/ssl/record/methods/tls_multib.c', + 'openssl/ssl/record/methods/tlsany_meth.c', + 'openssl/ssl/rio/poll_builder.c', + 'openssl/ssl/rio/poll_immediate.c', + 'openssl/ssl/rio/rio_notifier.c', 'openssl/ssl/statem/extensions.c', 'openssl/ssl/statem/extensions_clnt.c', 'openssl/ssl/statem/extensions_cust.c', @@ -150,6 +199,7 @@ 'openssl/crypto/bio/bss_conn.c', 'openssl/crypto/bio/bss_core.c', 'openssl/crypto/bio/bss_dgram.c', + 'openssl/crypto/bio/bss_dgram_pair.c', 'openssl/crypto/bio/bss_fd.c', 'openssl/crypto/bio/bss_file.c', 'openssl/crypto/bio/bss_log.c', @@ -210,6 +260,7 @@ 'openssl/crypto/cmp/cmp_client.c', 'openssl/crypto/cmp/cmp_ctx.c', 'openssl/crypto/cmp/cmp_err.c', + 'openssl/crypto/cmp/cmp_genm.c', 'openssl/crypto/cmp/cmp_hdr.c', 'openssl/crypto/cmp/cmp_http.c', 'openssl/crypto/cmp/cmp_msg.c', @@ -387,7 +438,9 @@ 'openssl/crypto/err/err_all.c', 'openssl/crypto/err/err_all_legacy.c', 'openssl/crypto/err/err_blocks.c', + 'openssl/crypto/err/err_mark.c', 'openssl/crypto/err/err_prn.c', + 'openssl/crypto/err/err_save.c', 'openssl/crypto/ess/ess_asn1.c', 'openssl/crypto/ess/ess_err.c', 'openssl/crypto/ess/ess_lib.c', @@ -470,7 +523,9 @@ 'openssl/crypto/evp/pmeth_check.c', 'openssl/crypto/evp/pmeth_gn.c', 'openssl/crypto/evp/pmeth_lib.c', + 'openssl/crypto/evp/s_lib.c', 'openssl/crypto/evp/signature.c', + 'openssl/crypto/evp/skeymgmt_meth.c', 'openssl/crypto/ffc/ffc_backend.c', 'openssl/crypto/ffc/ffc_dh.c', 'openssl/crypto/ffc/ffc_key_generate.c', @@ -478,7 +533,11 @@ 'openssl/crypto/ffc/ffc_params.c', 'openssl/crypto/ffc/ffc_params_generate.c', 'openssl/crypto/ffc/ffc_params_validate.c', + 'openssl/crypto/hashtable/hashfunc.c', + 'openssl/crypto/hashtable/hashtable.c', 'openssl/crypto/hmac/hmac.c', + 'openssl/crypto/hpke/hpke.c', + 'openssl/crypto/hpke/hpke_util.c', 'openssl/crypto/http/http_client.c', 'openssl/crypto/http/http_err.c', 'openssl/crypto/http/http_lib.c', @@ -492,6 +551,7 @@ 'openssl/crypto/lhash/lhash.c', 'openssl/crypto/asn1_dsa.c', 'openssl/crypto/bsearch.c', + 'openssl/crypto/comp_methods.c', 'openssl/crypto/context.c', 'openssl/crypto/core_algorithm.c', 'openssl/crypto/core_fetch.c', @@ -501,10 +561,13 @@ 'openssl/crypto/cryptlib.c', 'openssl/crypto/ctype.c', 'openssl/crypto/cversion.c', + 'openssl/crypto/defaults.c', 'openssl/crypto/der_writer.c', + 'openssl/crypto/deterministic_nonce.c', 'openssl/crypto/ebcdic.c', 'openssl/crypto/ex_data.c', 'openssl/crypto/getenv.c', + 'openssl/crypto/indicator_core.c', 'openssl/crypto/info.c', 'openssl/crypto/init.c', 'openssl/crypto/initthread.c', @@ -529,12 +592,16 @@ 'openssl/crypto/provider_core.c', 'openssl/crypto/provider_predefined.c', 'openssl/crypto/punycode.c', + 'openssl/crypto/quic_vlint.c', 'openssl/crypto/self_test_core.c', + 'openssl/crypto/sleep.c', 'openssl/crypto/sparse_array.c', + 'openssl/crypto/ssl_err.c', 'openssl/crypto/threads_lib.c', 'openssl/crypto/threads_none.c', 'openssl/crypto/threads_pthread.c', 'openssl/crypto/threads_win.c', + 'openssl/crypto/time.c', 'openssl/crypto/trace.c', 'openssl/crypto/uid.c', 'openssl/crypto/md4/md4_dgst.c', @@ -544,6 +611,15 @@ 'openssl/crypto/md5/md5_sha1.c', 'openssl/crypto/mdc2/mdc2_one.c', 'openssl/crypto/mdc2/mdc2dgst.c', + 'openssl/crypto/ml_dsa/ml_dsa_encoders.c', + 'openssl/crypto/ml_dsa/ml_dsa_key.c', + 'openssl/crypto/ml_dsa/ml_dsa_key_compress.c', + 'openssl/crypto/ml_dsa/ml_dsa_matrix.c', + 'openssl/crypto/ml_dsa/ml_dsa_ntt.c', + 'openssl/crypto/ml_dsa/ml_dsa_params.c', + 'openssl/crypto/ml_dsa/ml_dsa_sample.c', + 'openssl/crypto/ml_dsa/ml_dsa_sign.c', + 'openssl/crypto/ml_kem/ml_kem.c', 'openssl/crypto/modes/cbc128.c', 'openssl/crypto/modes/ccm128.c', 'openssl/crypto/modes/cfb128.c', @@ -555,6 +631,7 @@ 'openssl/crypto/modes/siv128.c', 'openssl/crypto/modes/wrap128.c', 'openssl/crypto/modes/xts128.c', + 'openssl/crypto/modes/xts128gb.c', 'openssl/crypto/objects/o_names.c', 'openssl/crypto/objects/obj_dat.c', 'openssl/crypto/objects/obj_err.c', @@ -619,6 +696,7 @@ 'openssl/crypto/rand/rand_lib.c', 'openssl/crypto/rand/rand_meth.c', 'openssl/crypto/rand/rand_pool.c', + 'openssl/crypto/rand/rand_uniform.c', 'openssl/crypto/rand/randfile.c', 'openssl/crypto/rc2/rc2_cbc.c', 'openssl/crypto/rc2/rc2_ecb.c', @@ -667,6 +745,16 @@ 'openssl/crypto/sha/sha512.c', 'openssl/crypto/sha/sha_ppc.c', 'openssl/crypto/siphash/siphash.c', + 'openssl/crypto/slh_dsa/slh_adrs.c', + 'openssl/crypto/slh_dsa/slh_dsa.c', + 'openssl/crypto/slh_dsa/slh_dsa_hash_ctx.c', + 'openssl/crypto/slh_dsa/slh_dsa_key.c', + 'openssl/crypto/slh_dsa/slh_fors.c', + 'openssl/crypto/slh_dsa/slh_hash.c', + 'openssl/crypto/slh_dsa/slh_hypertree.c', + 'openssl/crypto/slh_dsa/slh_params.c', + 'openssl/crypto/slh_dsa/slh_wots.c', + 'openssl/crypto/slh_dsa/slh_xmss.c', 'openssl/crypto/sm2/sm2_crypt.c', 'openssl/crypto/sm2/sm2_err.c', 'openssl/crypto/sm2/sm2_key.c', @@ -684,6 +772,12 @@ 'openssl/crypto/store/store_register.c', 'openssl/crypto/store/store_result.c', 'openssl/crypto/store/store_strings.c', + 'openssl/crypto/thread/arch/thread_none.c', + 'openssl/crypto/thread/arch/thread_posix.c', + 'openssl/crypto/thread/arch/thread_win.c', + 'openssl/crypto/thread/api.c', + 'openssl/crypto/thread/arch.c', + 'openssl/crypto/thread/internal.c', 'openssl/crypto/ts/ts_asn1.c', 'openssl/crypto/ts/ts_conf.c', 'openssl/crypto/ts/ts_err.c', @@ -712,14 +806,22 @@ 'openssl/crypto/x509/pcy_map.c', 'openssl/crypto/x509/pcy_node.c', 'openssl/crypto/x509/pcy_tree.c', + 'openssl/crypto/x509/t_acert.c', 'openssl/crypto/x509/t_crl.c', 'openssl/crypto/x509/t_req.c', 'openssl/crypto/x509/t_x509.c', + 'openssl/crypto/x509/v3_aaa.c', + 'openssl/crypto/x509/v3_ac_tgt.c', 'openssl/crypto/x509/v3_addr.c', 'openssl/crypto/x509/v3_admis.c', 'openssl/crypto/x509/v3_akeya.c', 'openssl/crypto/x509/v3_akid.c', 'openssl/crypto/x509/v3_asid.c', + 'openssl/crypto/x509/v3_attrdesc.c', + 'openssl/crypto/x509/v3_attrmap.c', + 'openssl/crypto/x509/v3_audit_id.c', + 'openssl/crypto/x509/v3_authattid.c', + 'openssl/crypto/x509/v3_battcons.c', 'openssl/crypto/x509/v3_bcons.c', 'openssl/crypto/x509/v3_bitst.c', 'openssl/crypto/x509/v3_conf.c', @@ -728,12 +830,17 @@ 'openssl/crypto/x509/v3_enum.c', 'openssl/crypto/x509/v3_extku.c', 'openssl/crypto/x509/v3_genn.c', + 'openssl/crypto/x509/v3_group_ac.c', 'openssl/crypto/x509/v3_ia5.c', + 'openssl/crypto/x509/v3_ind_iss.c', 'openssl/crypto/x509/v3_info.c', 'openssl/crypto/x509/v3_int.c', + 'openssl/crypto/x509/v3_iobo.c', 'openssl/crypto/x509/v3_ist.c', 'openssl/crypto/x509/v3_lib.c', 'openssl/crypto/x509/v3_ncons.c', + 'openssl/crypto/x509/v3_no_ass.c', + 'openssl/crypto/x509/v3_no_rev_avail.c', 'openssl/crypto/x509/v3_pci.c', 'openssl/crypto/x509/v3_pcia.c', 'openssl/crypto/x509/v3_pcons.c', @@ -741,13 +848,20 @@ 'openssl/crypto/x509/v3_pmaps.c', 'openssl/crypto/x509/v3_prn.c', 'openssl/crypto/x509/v3_purp.c', + 'openssl/crypto/x509/v3_rolespec.c', 'openssl/crypto/x509/v3_san.c', + 'openssl/crypto/x509/v3_sda.c', + 'openssl/crypto/x509/v3_single_use.c', 'openssl/crypto/x509/v3_skid.c', + 'openssl/crypto/x509/v3_soa_id.c', 'openssl/crypto/x509/v3_sxnet.c', + 'openssl/crypto/x509/v3_timespec.c', 'openssl/crypto/x509/v3_tlsf.c', + 'openssl/crypto/x509/v3_usernotice.c', 'openssl/crypto/x509/v3_utf8.c', 'openssl/crypto/x509/v3_utl.c', 'openssl/crypto/x509/v3err.c', + 'openssl/crypto/x509/x509_acert.c', 'openssl/crypto/x509/x509_att.c', 'openssl/crypto/x509/x509_cmp.c', 'openssl/crypto/x509/x509_d2.c', @@ -765,6 +879,7 @@ 'openssl/crypto/x509/x509_v3.c', 'openssl/crypto/x509/x509_vfy.c', 'openssl/crypto/x509/x509_vpm.c', + 'openssl/crypto/x509/x509aset.c', 'openssl/crypto/x509/x509cset.c', 'openssl/crypto/x509/x509name.c', 'openssl/crypto/x509/x509rset.c', @@ -774,6 +889,7 @@ 'openssl/crypto/x509/x_attrib.c', 'openssl/crypto/x509/x_crl.c', 'openssl/crypto/x509/x_exten.c', + 'openssl/crypto/x509/x_ietfatt.c', 'openssl/crypto/x509/x_name.c', 'openssl/crypto/x509/x_pubkey.c', 'openssl/crypto/x509/x_req.c', @@ -805,6 +921,9 @@ 'openssl/providers/implementations/ciphers/cipher_aes_ccm_hw.c', 'openssl/providers/implementations/ciphers/cipher_aes_gcm.c', 'openssl/providers/implementations/ciphers/cipher_aes_gcm_hw.c', + 'openssl/providers/implementations/ciphers/cipher_aes_gcm_siv.c', + 'openssl/providers/implementations/ciphers/cipher_aes_gcm_siv_hw.c', + 'openssl/providers/implementations/ciphers/cipher_aes_gcm_siv_polyval.c', 'openssl/providers/implementations/ciphers/cipher_aes_hw.c', 'openssl/providers/implementations/ciphers/cipher_aes_ocb.c', 'openssl/providers/implementations/ciphers/cipher_aes_ocb_hw.c', @@ -829,7 +948,13 @@ 'openssl/providers/implementations/ciphers/cipher_cts.c', 'openssl/providers/implementations/ciphers/cipher_null.c', 'openssl/providers/implementations/ciphers/cipher_sm4.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_ccm.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_ccm_hw.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_gcm.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_gcm_hw.c', 'openssl/providers/implementations/ciphers/cipher_sm4_hw.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_xts.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_xts_hw.c', 'openssl/providers/implementations/ciphers/cipher_tdes.c', 'openssl/providers/implementations/ciphers/cipher_tdes_common.c', 'openssl/providers/implementations/ciphers/cipher_tdes_default.c', @@ -858,11 +983,16 @@ 'openssl/providers/implementations/encode_decode/encode_key2ms.c', 'openssl/providers/implementations/encode_decode/encode_key2text.c', 'openssl/providers/implementations/encode_decode/endecoder_common.c', + 'openssl/providers/implementations/encode_decode/ml_common_codecs.c', + 'openssl/providers/implementations/encode_decode/ml_dsa_codecs.c', + 'openssl/providers/implementations/encode_decode/ml_kem_codecs.c', 'openssl/providers/implementations/exchange/dh_exch.c', 'openssl/providers/implementations/exchange/ecdh_exch.c', 'openssl/providers/implementations/exchange/ecx_exch.c', 'openssl/providers/implementations/exchange/kdf_exch.c', + 'openssl/providers/implementations/kdfs/argon2.c', 'openssl/providers/implementations/kdfs/hkdf.c', + 'openssl/providers/implementations/kdfs/hmacdrbg_kdf.c', 'openssl/providers/implementations/kdfs/kbkdf.c', 'openssl/providers/implementations/kdfs/krb5kdf.c', 'openssl/providers/implementations/kdfs/pbkdf2.c', @@ -873,6 +1003,11 @@ 'openssl/providers/implementations/kdfs/sskdf.c', 'openssl/providers/implementations/kdfs/tls1_prf.c', 'openssl/providers/implementations/kdfs/x942kdf.c', + 'openssl/providers/implementations/kem/ec_kem.c', + 'openssl/providers/implementations/kem/ecx_kem.c', + 'openssl/providers/implementations/kem/kem_util.c', + 'openssl/providers/implementations/kem/ml_kem_kem.c', + 'openssl/providers/implementations/kem/mlx_kem.c', 'openssl/providers/implementations/kem/rsa_kem.c', 'openssl/providers/implementations/keymgmt/dh_kmgmt.c', 'openssl/providers/implementations/keymgmt/dsa_kmgmt.c', @@ -880,7 +1015,11 @@ 'openssl/providers/implementations/keymgmt/ecx_kmgmt.c', 'openssl/providers/implementations/keymgmt/kdf_legacy_kmgmt.c', 'openssl/providers/implementations/keymgmt/mac_legacy_kmgmt.c', + 'openssl/providers/implementations/keymgmt/ml_dsa_kmgmt.c', + 'openssl/providers/implementations/keymgmt/ml_kem_kmgmt.c', + 'openssl/providers/implementations/keymgmt/mlx_kmgmt.c', 'openssl/providers/implementations/keymgmt/rsa_kmgmt.c', + 'openssl/providers/implementations/keymgmt/slh_dsa_kmgmt.c', 'openssl/providers/implementations/macs/blake2b_mac.c', 'openssl/providers/implementations/macs/blake2s_mac.c', 'openssl/providers/implementations/macs/cmac_prov.c', @@ -889,12 +1028,12 @@ 'openssl/providers/implementations/macs/kmac_prov.c', 'openssl/providers/implementations/macs/poly1305_prov.c', 'openssl/providers/implementations/macs/siphash_prov.c', - 'openssl/providers/implementations/rands/crngt.c', 'openssl/providers/implementations/rands/drbg.c', 'openssl/providers/implementations/rands/drbg_ctr.c', 'openssl/providers/implementations/rands/drbg_hash.c', 'openssl/providers/implementations/rands/drbg_hmac.c', 'openssl/providers/implementations/rands/seed_src.c', + 'openssl/providers/implementations/rands/seed_src_jitter.c', 'openssl/providers/implementations/rands/test_rng.c', 'openssl/providers/implementations/rands/seeding/rand_cpu_x86.c', 'openssl/providers/implementations/rands/seeding/rand_tsc.c', @@ -904,17 +1043,23 @@ 'openssl/providers/implementations/signature/ecdsa_sig.c', 'openssl/providers/implementations/signature/eddsa_sig.c', 'openssl/providers/implementations/signature/mac_legacy_sig.c', + 'openssl/providers/implementations/signature/ml_dsa_sig.c', 'openssl/providers/implementations/signature/rsa_sig.c', + 'openssl/providers/implementations/signature/slh_dsa_sig.c', 'openssl/providers/implementations/signature/sm2_sig.c', + 'openssl/providers/implementations/skeymgmt/aes_skmgmt.c', + 'openssl/providers/implementations/skeymgmt/generic.c', 'openssl/providers/implementations/storemgmt/file_store.c', 'openssl/providers/implementations/storemgmt/file_store_any2obj.c', - 'openssl/ssl/s3_cbc.c', + 'openssl/ssl/record/methods/ssl3_cbc.c', 'openssl/providers/common/der/der_dsa_key.c', 'openssl/providers/common/der/der_dsa_sig.c', 'openssl/providers/common/der/der_ec_key.c', 'openssl/providers/common/der/der_ec_sig.c', 'openssl/providers/common/der/der_ecx_key.c', + 'openssl/providers/common/der/der_ml_dsa_key.c', 'openssl/providers/common/der/der_rsa_key.c', + 'openssl/providers/common/der/der_slh_dsa_key.c', 'openssl/providers/common/provider_ctx.c', 'openssl/providers/common/provider_err.c', 'openssl/providers/implementations/ciphers/ciphercommon.c', @@ -925,7 +1070,7 @@ 'openssl/providers/implementations/ciphers/ciphercommon_gcm_hw.c', 'openssl/providers/implementations/ciphers/ciphercommon_hw.c', 'openssl/providers/implementations/digests/digestcommon.c', - 'openssl/ssl/record/tls_pad.c', + 'openssl/ssl/record/methods/tls_pad.c', 'openssl/providers/implementations/ciphers/cipher_blowfish.c', 'openssl/providers/implementations/ciphers/cipher_blowfish_hw.c', 'openssl/providers/implementations/ciphers/cipher_cast5.c', @@ -950,6 +1095,7 @@ 'openssl/providers/implementations/digests/ripemd_prov.c', 'openssl/providers/implementations/digests/wp_prov.c', 'openssl/providers/implementations/kdfs/pbkdf1.c', + 'openssl/providers/implementations/kdfs/pvkkdf.c', 'openssl/providers/prov_running.c', 'openssl/providers/legacyprov.c', ], @@ -959,9 +1105,11 @@ './config/archs/aix64-gcc-as/asm/crypto/aes/vpaes-ppc.s', './config/archs/aix64-gcc-as/asm/crypto/bn/bn-ppc.s', './config/archs/aix64-gcc-as/asm/crypto/bn/ppc-mont.s', + './config/archs/aix64-gcc-as/asm/crypto/bn/ppc64-mont-fixed.s', './config/archs/aix64-gcc-as/asm/crypto/chacha/chacha-ppc.s', './config/archs/aix64-gcc-as/asm/crypto/ec/ecp_nistz256-ppc64.s', './config/archs/aix64-gcc-as/asm/crypto/ec/x25519-ppc64.s', + './config/archs/aix64-gcc-as/asm/crypto/params_idx.c', './config/archs/aix64-gcc-as/asm/crypto/ppccpuid.s', './config/archs/aix64-gcc-as/asm/crypto/modes/ghashp8-ppc.s', './config/archs/aix64-gcc-as/asm/crypto/poly1305/poly1305-ppc.s', @@ -977,7 +1125,9 @@ './config/archs/aix64-gcc-as/asm/providers/common/der/der_dsa_gen.c', './config/archs/aix64-gcc-as/asm/providers/common/der/der_ec_gen.c', './config/archs/aix64-gcc-as/asm/providers/common/der/der_ecx_gen.c', + './config/archs/aix64-gcc-as/asm/providers/common/der/der_ml_dsa_gen.c', './config/archs/aix64-gcc-as/asm/providers/common/der/der_rsa_gen.c', + './config/archs/aix64-gcc-as/asm/providers/common/der/der_slh_dsa_gen.c', './config/archs/aix64-gcc-as/asm/providers/common/der/der_wrap_gen.c', './config/archs/aix64-gcc-as/asm/providers/legacy.ld', './config/archs/aix64-gcc-as/asm/providers/fips.ld', diff --git a/deps/openssl/config/archs/aix64-gcc-as/asm/providers/common/der/der_ml_dsa_gen.c b/deps/openssl/config/archs/aix64-gcc-as/asm/providers/common/der/der_ml_dsa_gen.c new file mode 100644 index 00000000000000..4a8a113a268578 --- /dev/null +++ b/deps/openssl/config/archs/aix64-gcc-as/asm/providers/common/der/der_ml_dsa_gen.c @@ -0,0 +1,37 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from providers/common/der/der_ml_dsa_gen.c.in + * + * Copyright 2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include "prov/der_ml_dsa.h" + +/* Well known OIDs precompiled */ + +/* + * id-ml-dsa-44 OBJECT IDENTIFIER ::= { sigAlgs 17 } + */ +const unsigned char ossl_der_oid_id_ml_dsa_44[DER_OID_SZ_id_ml_dsa_44] = { + DER_OID_V_id_ml_dsa_44 +}; + +/* + * id-ml-dsa-65 OBJECT IDENTIFIER ::= { sigAlgs 18 } + */ +const unsigned char ossl_der_oid_id_ml_dsa_65[DER_OID_SZ_id_ml_dsa_65] = { + DER_OID_V_id_ml_dsa_65 +}; + +/* + * id-ml-dsa-87 OBJECT IDENTIFIER ::= { sigAlgs 19 } + */ +const unsigned char ossl_der_oid_id_ml_dsa_87[DER_OID_SZ_id_ml_dsa_87] = { + DER_OID_V_id_ml_dsa_87 +}; + diff --git a/deps/openssl/config/archs/aix64-gcc-as/asm/providers/common/der/der_slh_dsa_gen.c b/deps/openssl/config/archs/aix64-gcc-as/asm/providers/common/der/der_slh_dsa_gen.c new file mode 100644 index 00000000000000..1419a9515097dd --- /dev/null +++ b/deps/openssl/config/archs/aix64-gcc-as/asm/providers/common/der/der_slh_dsa_gen.c @@ -0,0 +1,100 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from providers/common/der/der_slh_dsa_gen.c.in + * + * Copyright 2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include "prov/der_slh_dsa.h" + +/* Well known OIDs precompiled */ + +/* + * id-slh-dsa-sha2-128s OBJECT IDENTIFIER ::= { sigAlgs 20 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_128s[DER_OID_SZ_id_slh_dsa_sha2_128s] = { + DER_OID_V_id_slh_dsa_sha2_128s +}; + +/* + * id-slh-dsa-sha2-128f OBJECT IDENTIFIER ::= { sigAlgs 21 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_128f[DER_OID_SZ_id_slh_dsa_sha2_128f] = { + DER_OID_V_id_slh_dsa_sha2_128f +}; + +/* + * id-slh-dsa-sha2-192s OBJECT IDENTIFIER ::= { sigAlgs 22 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_192s[DER_OID_SZ_id_slh_dsa_sha2_192s] = { + DER_OID_V_id_slh_dsa_sha2_192s +}; + +/* + * id-slh-dsa-sha2-192f OBJECT IDENTIFIER ::= { sigAlgs 23 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_192f[DER_OID_SZ_id_slh_dsa_sha2_192f] = { + DER_OID_V_id_slh_dsa_sha2_192f +}; + +/* + * id-slh-dsa-sha2-256s OBJECT IDENTIFIER ::= { sigAlgs 24 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_256s[DER_OID_SZ_id_slh_dsa_sha2_256s] = { + DER_OID_V_id_slh_dsa_sha2_256s +}; + +/* + * id-slh-dsa-sha2-256f OBJECT IDENTIFIER ::= { sigAlgs 25 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_256f[DER_OID_SZ_id_slh_dsa_sha2_256f] = { + DER_OID_V_id_slh_dsa_sha2_256f +}; + +/* + * id-slh-dsa-shake-128s OBJECT IDENTIFIER ::= { sigAlgs 26 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_128s[DER_OID_SZ_id_slh_dsa_shake_128s] = { + DER_OID_V_id_slh_dsa_shake_128s +}; + +/* + * id-slh-dsa-shake-128f OBJECT IDENTIFIER ::= { sigAlgs 27 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_128f[DER_OID_SZ_id_slh_dsa_shake_128f] = { + DER_OID_V_id_slh_dsa_shake_128f +}; + +/* + * id-slh-dsa-shake-192s OBJECT IDENTIFIER ::= { sigAlgs 28 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_192s[DER_OID_SZ_id_slh_dsa_shake_192s] = { + DER_OID_V_id_slh_dsa_shake_192s +}; + +/* + * id-slh-dsa-shake-192f OBJECT IDENTIFIER ::= { sigAlgs 29 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_192f[DER_OID_SZ_id_slh_dsa_shake_192f] = { + DER_OID_V_id_slh_dsa_shake_192f +}; + +/* + * id-slh-dsa-shake-256s OBJECT IDENTIFIER ::= { sigAlgs 30 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_256s[DER_OID_SZ_id_slh_dsa_shake_256s] = { + DER_OID_V_id_slh_dsa_shake_256s +}; + +/* + * id-slh-dsa-shake-256f OBJECT IDENTIFIER ::= { sigAlgs 31 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_256f[DER_OID_SZ_id_slh_dsa_shake_256f] = { + DER_OID_V_id_slh_dsa_shake_256f +}; + diff --git a/deps/openssl/config/archs/aix64-gcc-as/asm/providers/common/include/prov/der_ml_dsa.h b/deps/openssl/config/archs/aix64-gcc-as/asm/providers/common/include/prov/der_ml_dsa.h new file mode 100644 index 00000000000000..c55f780ab4527c --- /dev/null +++ b/deps/openssl/config/archs/aix64-gcc-as/asm/providers/common/include/prov/der_ml_dsa.h @@ -0,0 +1,40 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from providers/common/include/prov/der_ml_dsa.h.in + * + * Copyright 2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include "internal/der.h" +#include "crypto/ml_dsa.h" + +/* Well known OIDs precompiled */ + +/* + * id-ml-dsa-44 OBJECT IDENTIFIER ::= { sigAlgs 17 } + */ +#define DER_OID_V_id_ml_dsa_44 DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x11 +#define DER_OID_SZ_id_ml_dsa_44 11 +extern const unsigned char ossl_der_oid_id_ml_dsa_44[DER_OID_SZ_id_ml_dsa_44]; + +/* + * id-ml-dsa-65 OBJECT IDENTIFIER ::= { sigAlgs 18 } + */ +#define DER_OID_V_id_ml_dsa_65 DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x12 +#define DER_OID_SZ_id_ml_dsa_65 11 +extern const unsigned char ossl_der_oid_id_ml_dsa_65[DER_OID_SZ_id_ml_dsa_65]; + +/* + * id-ml-dsa-87 OBJECT IDENTIFIER ::= { sigAlgs 19 } + */ +#define DER_OID_V_id_ml_dsa_87 DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x13 +#define DER_OID_SZ_id_ml_dsa_87 11 +extern const unsigned char ossl_der_oid_id_ml_dsa_87[DER_OID_SZ_id_ml_dsa_87]; + + +int ossl_DER_w_algorithmIdentifier_ML_DSA(WPACKET *pkt, int tag, ML_DSA_KEY *key); diff --git a/deps/openssl/config/archs/aix64-gcc-as/asm/providers/common/include/prov/der_slh_dsa.h b/deps/openssl/config/archs/aix64-gcc-as/asm/providers/common/include/prov/der_slh_dsa.h new file mode 100644 index 00000000000000..760f8e7699be72 --- /dev/null +++ b/deps/openssl/config/archs/aix64-gcc-as/asm/providers/common/include/prov/der_slh_dsa.h @@ -0,0 +1,103 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from providers/common/include/prov/der_slh_dsa.h.in + * + * Copyright 2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include "internal/der.h" +#include "crypto/slh_dsa.h" + +/* Well known OIDs precompiled */ + +/* + * id-slh-dsa-sha2-128s OBJECT IDENTIFIER ::= { sigAlgs 20 } + */ +#define DER_OID_V_id_slh_dsa_sha2_128s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x14 +#define DER_OID_SZ_id_slh_dsa_sha2_128s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_128s[DER_OID_SZ_id_slh_dsa_sha2_128s]; + +/* + * id-slh-dsa-sha2-128f OBJECT IDENTIFIER ::= { sigAlgs 21 } + */ +#define DER_OID_V_id_slh_dsa_sha2_128f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x15 +#define DER_OID_SZ_id_slh_dsa_sha2_128f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_128f[DER_OID_SZ_id_slh_dsa_sha2_128f]; + +/* + * id-slh-dsa-sha2-192s OBJECT IDENTIFIER ::= { sigAlgs 22 } + */ +#define DER_OID_V_id_slh_dsa_sha2_192s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x16 +#define DER_OID_SZ_id_slh_dsa_sha2_192s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_192s[DER_OID_SZ_id_slh_dsa_sha2_192s]; + +/* + * id-slh-dsa-sha2-192f OBJECT IDENTIFIER ::= { sigAlgs 23 } + */ +#define DER_OID_V_id_slh_dsa_sha2_192f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x17 +#define DER_OID_SZ_id_slh_dsa_sha2_192f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_192f[DER_OID_SZ_id_slh_dsa_sha2_192f]; + +/* + * id-slh-dsa-sha2-256s OBJECT IDENTIFIER ::= { sigAlgs 24 } + */ +#define DER_OID_V_id_slh_dsa_sha2_256s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x18 +#define DER_OID_SZ_id_slh_dsa_sha2_256s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_256s[DER_OID_SZ_id_slh_dsa_sha2_256s]; + +/* + * id-slh-dsa-sha2-256f OBJECT IDENTIFIER ::= { sigAlgs 25 } + */ +#define DER_OID_V_id_slh_dsa_sha2_256f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x19 +#define DER_OID_SZ_id_slh_dsa_sha2_256f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_256f[DER_OID_SZ_id_slh_dsa_sha2_256f]; + +/* + * id-slh-dsa-shake-128s OBJECT IDENTIFIER ::= { sigAlgs 26 } + */ +#define DER_OID_V_id_slh_dsa_shake_128s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1A +#define DER_OID_SZ_id_slh_dsa_shake_128s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_128s[DER_OID_SZ_id_slh_dsa_shake_128s]; + +/* + * id-slh-dsa-shake-128f OBJECT IDENTIFIER ::= { sigAlgs 27 } + */ +#define DER_OID_V_id_slh_dsa_shake_128f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1B +#define DER_OID_SZ_id_slh_dsa_shake_128f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_128f[DER_OID_SZ_id_slh_dsa_shake_128f]; + +/* + * id-slh-dsa-shake-192s OBJECT IDENTIFIER ::= { sigAlgs 28 } + */ +#define DER_OID_V_id_slh_dsa_shake_192s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1C +#define DER_OID_SZ_id_slh_dsa_shake_192s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_192s[DER_OID_SZ_id_slh_dsa_shake_192s]; + +/* + * id-slh-dsa-shake-192f OBJECT IDENTIFIER ::= { sigAlgs 29 } + */ +#define DER_OID_V_id_slh_dsa_shake_192f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1D +#define DER_OID_SZ_id_slh_dsa_shake_192f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_192f[DER_OID_SZ_id_slh_dsa_shake_192f]; + +/* + * id-slh-dsa-shake-256s OBJECT IDENTIFIER ::= { sigAlgs 30 } + */ +#define DER_OID_V_id_slh_dsa_shake_256s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1E +#define DER_OID_SZ_id_slh_dsa_shake_256s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_256s[DER_OID_SZ_id_slh_dsa_shake_256s]; + +/* + * id-slh-dsa-shake-256f OBJECT IDENTIFIER ::= { sigAlgs 31 } + */ +#define DER_OID_V_id_slh_dsa_shake_256f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1F +#define DER_OID_SZ_id_slh_dsa_shake_256f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_256f[DER_OID_SZ_id_slh_dsa_shake_256f]; + + +int ossl_DER_w_algorithmIdentifier_SLH_DSA(WPACKET *pkt, int tag, SLH_DSA_KEY *key); diff --git a/deps/openssl/config/archs/aix64-gcc-as/asm_avx2/apps/progs.c b/deps/openssl/config/archs/aix64-gcc-as/asm_avx2/apps/progs.c index 43cef00799b86e..acc204a3e6e781 100644 --- a/deps/openssl/config/archs/aix64-gcc-as/asm_avx2/apps/progs.c +++ b/deps/openssl/config/archs/aix64-gcc-as/asm_avx2/apps/progs.c @@ -89,6 +89,7 @@ FUNCTION functions[] = { {FT_general, "s_time", s_time_main, s_time_options, NULL, NULL}, #endif {FT_general, "sess_id", sess_id_main, sess_id_options, NULL, NULL}, + {FT_general, "skeyutl", skeyutl_main, skeyutl_options, NULL, NULL}, {FT_general, "smime", smime_main, smime_options, NULL, NULL}, {FT_general, "speed", speed_main, speed_options, NULL, NULL}, {FT_general, "spkac", spkac_main, spkac_options, NULL, NULL}, @@ -225,9 +226,15 @@ FUNCTION functions[] = { {FT_cipher, "camellia-256-ecb", enc_main, enc_options, NULL}, #endif {FT_cipher, "base64", enc_main, enc_options, NULL}, -#ifdef ZLIB +#ifndef OPENSSL_NO_ZLIB {FT_cipher, "zlib", enc_main, enc_options, NULL}, #endif +#ifndef OPENSSL_NO_BROTLI + {FT_cipher, "brotli", enc_main, enc_options, NULL}, +#endif +#ifndef OPENSSL_NO_ZSTD + {FT_cipher, "zstd", enc_main, enc_options, NULL}, +#endif #ifndef OPENSSL_NO_DES {FT_cipher, "des", enc_main, enc_options, NULL}, #endif diff --git a/deps/openssl/config/archs/aix64-gcc-as/asm_avx2/configdata.pm b/deps/openssl/config/archs/aix64-gcc-as/asm_avx2/configdata.pm index 393fad24afa5b7..91c79c77102443 100644 --- a/deps/openssl/config/archs/aix64-gcc-as/asm_avx2/configdata.pm +++ b/deps/openssl/config/archs/aix64-gcc-as/asm_avx2/configdata.pm @@ -18,6 +18,7 @@ our %config = ( "ARFLAGS" => [ "qc" ], + "ASFLAGS" => [], "CC" => "../config/fake_gcc.pl", "CFLAGS" => [ "-O" @@ -27,14 +28,16 @@ our %config = ( "CPPINCLUDES" => [], "CXXFLAGS" => [], "FIPSKEY" => "f4556650ac31d35461610bac4ed81b1a181b2d8a43ea2854cbae22ca74560813", + "FIPS_VENDOR" => "OpenSSL FIPS Provider", "HASHBANGPERL" => "/usr/bin/env perl", "LDFLAGS" => [], "LDLIBS" => [], + "OBJCOPY" => "objcopy", "PERL" => "/usr/bin/perl", "RANLIB" => "ranlib -X64", "RC" => "windres", "RCFLAGS" => [], - "api" => "30000", + "api" => "30500", "b32" => "0", "b64" => "0", "b64l" => "1", @@ -56,11 +59,13 @@ our %config = ( "doc/build.info", "test/build.info", "engines/build.info", + "exporters/build.info", "crypto/objects/build.info", "crypto/buffer/build.info", "crypto/bio/build.info", "crypto/stack/build.info", "crypto/lhash/build.info", + "crypto/hashtable/build.info", "crypto/rand/build.info", "crypto/evp/build.info", "crypto/asn1/build.info", @@ -78,6 +83,7 @@ our %config = ( "crypto/md5/build.info", "crypto/sha/build.info", "crypto/mdc2/build.info", + "crypto/ml_kem/build.info", "crypto/hmac/build.info", "crypto/ripemd/build.info", "crypto/whrlpool/build.info", @@ -119,11 +125,19 @@ our %config = ( "crypto/cmp/build.info", "crypto/encode_decode/build.info", "crypto/ffc/build.info", + "crypto/hpke/build.info", + "crypto/thread/build.info", + "crypto/ml_dsa/build.info", + "crypto/slh_dsa/build.info", + "ssl/record/build.info", + "ssl/rio/build.info", + "ssl/quic/build.info", "apps/lib/build.info", "providers/common/build.info", "providers/implementations/build.info", "providers/fips/build.info", "doc/man1/build.info", + "ssl/record/methods/build.info", "providers/common/der/build.info", "providers/implementations/digests/build.info", "providers/implementations/ciphers/build.info", @@ -137,6 +151,7 @@ our %config = ( "providers/implementations/encode_decode/build.info", "providers/implementations/storemgmt/build.info", "providers/implementations/kem/build.info", + "providers/implementations/skeymgmt/build.info", "providers/implementations/rands/seeding/build.info" ], "build_metadata" => "", @@ -156,7 +171,7 @@ our %config = ( ], "dynamic_engines" => "0", "ex_libs" => [], - "full_version" => "3.0.17", + "full_version" => "3.5.1", "includes" => [], "lflags" => [], "lib_defines" => [ @@ -165,37 +180,52 @@ our %config = ( "libdir" => "", "major" => "3", "makedep_scheme" => "gcc", - "minor" => "0", + "minor" => "5", "openssl_api_defines" => [ - "OPENSSL_CONFIGURED_API=30000" + "OPENSSL_CONFIGURED_API=30500" ], "openssl_feature_defines" => [ "OPENSSL_RAND_SEED_OS", "OPENSSL_THREADS", "OPENSSL_NO_AFALGENG", "OPENSSL_NO_ASAN", + "OPENSSL_NO_BROTLI", + "OPENSSL_NO_BROTLI_DYNAMIC", "OPENSSL_NO_COMP", "OPENSSL_NO_CRYPTO_MDEBUG", "OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE", + "OPENSSL_NO_DEMOS", "OPENSSL_NO_DEVCRYPTOENG", "OPENSSL_NO_EC_NISTP_64_GCC_128", "OPENSSL_NO_EGD", "OPENSSL_NO_EXTERNAL_TESTS", + "OPENSSL_NO_FIPS_JITTER", "OPENSSL_NO_FUZZ_AFL", "OPENSSL_NO_FUZZ_LIBFUZZER", + "OPENSSL_NO_H3DEMO", + "OPENSSL_NO_HQINTEROP", + "OPENSSL_NO_JITTER", "OPENSSL_NO_KTLS", "OPENSSL_NO_LOADERENG", "OPENSSL_NO_MD2", "OPENSSL_NO_MSAN", + "OPENSSL_NO_PIE", "OPENSSL_NO_RC5", "OPENSSL_NO_SCTP", "OPENSSL_NO_SSL3", "OPENSSL_NO_SSL3_METHOD", + "OPENSSL_NO_SSLKEYLOG", + "OPENSSL_NO_TFO", "OPENSSL_NO_TRACE", "OPENSSL_NO_UBSAN", "OPENSSL_NO_UNIT_TEST", "OPENSSL_NO_UPLINK", "OPENSSL_NO_WEAK_SSL_CIPHERS", + "OPENSSL_NO_WINSTORE", + "OPENSSL_NO_ZLIB", + "OPENSSL_NO_ZLIB_DYNAMIC", + "OPENSSL_NO_ZSTD", + "OPENSSL_NO_ZSTD_DYNAMIC", "OPENSSL_NO_DYNAMIC_ENGINE" ], "openssl_other_defines" => [ @@ -205,11 +235,11 @@ our %config = ( "OPENSSL_SYS_AIX" ], "openssldir" => "", - "options" => "enable-ssl-trace enable-fips no-afalgeng no-asan no-buildtest-c++ no-comp no-crypto-mdebug no-crypto-mdebug-backtrace no-devcryptoeng no-dynamic-engine no-ec_nistp_64_gcc_128 no-egd no-external-tests no-fuzz-afl no-fuzz-libfuzzer no-ktls no-loadereng no-md2 no-msan no-rc5 no-sctp no-shared no-ssl3 no-ssl3-method no-trace no-ubsan no-unit-test no-uplink no-weak-ssl-ciphers no-zlib no-zlib-dynamic", - "patch" => "17", + "options" => "enable-ssl-trace enable-fips no-afalgeng no-asan no-brotli no-brotli-dynamic no-buildtest-c++ no-comp no-crypto-mdebug no-crypto-mdebug-backtrace no-demos no-devcryptoeng no-dynamic-engine no-ec_nistp_64_gcc_128 no-egd no-external-tests no-fips-jitter no-fuzz-afl no-fuzz-libfuzzer no-h3demo no-hqinterop no-jitter no-ktls no-loadereng no-md2 no-msan no-pie no-rc5 no-sctp no-shared no-ssl3 no-ssl3-method no-sslkeylog no-tfo no-trace no-ubsan no-unit-test no-uplink no-weak-ssl-ciphers no-winstore no-zlib no-zlib-dynamic no-zstd no-zstd-dynamic", + "patch" => "1", "perl_archname" => "x86_64-linux-gnu-thread-multi", "perl_cmd" => "/usr/bin/perl", - "perl_version" => "5.38.2", + "perl_version" => "5.34.0", "perlargv" => [ "no-comp", "no-shared", @@ -239,6 +269,7 @@ our %config = ( "LDLIBS" => undef, "MT" => undef, "MTFLAGS" => undef, + "OBJCOPY" => undef, "OPENSSL_LOCAL_CONFIG_DIR" => undef, "PERL" => undef, "RANLIB" => undef, @@ -262,7 +293,7 @@ our %config = ( "shlib_version" => "3", "sourcedir" => ".", "target" => "aix64-gcc-as", - "version" => "3.0.17" + "version" => "3.5.1" ); our %target = ( "AR" => "ar -X64", @@ -270,6 +301,7 @@ our %target = ( "CC" => "gcc", "CFLAGS" => "-O", "HASHBANGPERL" => "/usr/bin/env perl", + "OBJCOPY" => "objcopy", "RANLIB" => "ranlib -X64", "RC" => "windres", "_conf_fname_int" => [ @@ -281,6 +313,8 @@ our %target = ( "Configurations/shared-info.pl" ], "asm_arch" => "ppc64", + "bin_cflags" => "", + "bin_lflags" => "", "bn_ops" => "SIXTY_FOUR_BIT_LONG RC4_CHAR", "build_file" => "Makefile", "build_scheme" => [ @@ -323,6 +357,8 @@ our %target = ( our @disablables = ( "acvp-tests", "afalgeng", + "apps", + "argon2", "aria", "asan", "asm", @@ -333,11 +369,14 @@ our @disablables = ( "autoload-config", "bf", "blake2", + "brotli", + "brotli-dynamic", "buildtest-c++", "bulk", "cached-fetch", "camellia", "capieng", + "winstore", "cast", "chacha", "cmac", @@ -346,11 +385,16 @@ our @disablables = ( "comp", "crypto-mdebug", "ct", + "default-thread-pool", + "demos", + "h3demo", + "hqinterop", "deprecated", "des", "devcryptoeng", "dgram", "dh", + "docs", "dsa", "dso", "dtls", @@ -360,6 +404,7 @@ our @disablables = ( "ec_nistp_64_gcc_128", "ecdh", "ecdsa", + "ecx", "egd", "engine", "err", @@ -367,10 +412,15 @@ our @disablables = ( "filenames", "fips", "fips-securitychecks", + "fips-post", + "fips-jitter", "fuzz-afl", "fuzz-libfuzzer", "gost", + "http", "idea", + "integrity-only-ciphers", + "jitter", "ktls", "legacy", "loadereng", @@ -378,6 +428,8 @@ our @disablables = ( "md2", "md4", "mdc2", + "ml-dsa", + "ml-kem", "module", "msan", "multiblock", @@ -386,10 +438,13 @@ our @disablables = ( "ocsp", "padlockeng", "pic", + "pie", "pinshared", "poly1305", "posix-io", "psk", + "quic", + "unstable-qlog", "rc2", "rc4", "rc5", @@ -403,7 +458,9 @@ our @disablables = ( "shared", "siphash", "siv", + "slh-dsa", "sm2", + "sm2-precomp", "sm3", "sm4", "sock", @@ -414,9 +471,13 @@ our @disablables = ( "ssl-trace", "static-engine", "stdio", + "sslkeylog", "tests", + "tfo", + "thread-pool", "threads", "tls", + "tls-deprecated-ec", "trace", "ts", "ubsan", @@ -427,6 +488,8 @@ our @disablables = ( "whirlpool", "zlib", "zlib-dynamic", + "zstd", + "zstd-dynamic", "ssl3", "ssl3-method", "tls1", @@ -447,33 +510,46 @@ our @disablables_int = ( our %disabled = ( "afalgeng" => "option", "asan" => "default", + "brotli" => "default", + "brotli-dynamic" => "default", "buildtest-c++" => "default", "comp" => "option", "crypto-mdebug" => "default", "crypto-mdebug-backtrace" => "default", + "demos" => "default", "devcryptoeng" => "default", "dynamic-engine" => "cascade", "ec_nistp_64_gcc_128" => "default", "egd" => "default", "external-tests" => "default", + "fips-jitter" => "default", "fuzz-afl" => "default", "fuzz-libfuzzer" => "default", + "h3demo" => "default", + "hqinterop" => "default", + "jitter" => "default", "ktls" => "default", "loadereng" => "cascade", "md2" => "default", "msan" => "default", + "pie" => "default", "rc5" => "default", "sctp" => "default", "shared" => "option", "ssl3" => "default", "ssl3-method" => "default", + "sslkeylog" => "default", + "tfo" => "default", "trace" => "default", "ubsan" => "default", "unit-test" => "default", "uplink" => "no uplink_arch", "weak-ssl-ciphers" => "default", + "winstore" => "not-windows", "zlib" => "default", - "zlib-dynamic" => "default" + "zlib-dynamic" => "default", + "zstd" => "default", + "zstd-dynamic" => "default" ); our %withargs = (); our %unified_info = ( @@ -699,6 +775,11 @@ our %unified_info = ( "pod" => "1" } }, + "doc/man1/openssl-skeyutl.pod" => { + "doc/man1/openssl-skeyutl.pod.in" => { + "pod" => "1" + } + }, "doc/man1/openssl-smime.pod" => { "doc/man1/openssl-smime.pod.in" => { "pod" => "1" @@ -756,6 +837,21 @@ our %unified_info = ( } }, "generate" => { + "exporters/OpenSSLConfig.cmake" => { + "exporter" => "cmake" + }, + "exporters/OpenSSLConfigVersion.cmake" => { + "exporter" => "cmake" + }, + "exporters/libcrypto.pc" => { + "exporter" => "pkg-config" + }, + "exporters/libssl.pc" => { + "exporter" => "pkg-config" + }, + "exporters/openssl.pc" => { + "exporter" => "pkg-config" + }, "include/openssl/configuration.h" => { "skip" => "1" } @@ -776,6 +872,9 @@ our %unified_info = ( "providers/liblegacy.a" => { "noinst" => "1" }, + "providers/libtemplate.a" => { + "noinst" => "1" + }, "test/libtestutil.a" => { "has_main" => "1", "noinst" => "1" @@ -793,6 +892,9 @@ our %unified_info = ( } }, "programs" => { + "fuzz/acert-test" => { + "noinst" => "1" + }, "fuzz/asn1-test" => { "noinst" => "1" }, @@ -823,9 +925,60 @@ our %unified_info = ( "fuzz/ct-test" => { "noinst" => "1" }, + "fuzz/decoder-test" => { + "noinst" => "1" + }, + "fuzz/dtlsclient-test" => { + "noinst" => "1" + }, + "fuzz/dtlsserver-test" => { + "noinst" => "1" + }, + "fuzz/hashtable-test" => { + "noinst" => "1" + }, + "fuzz/ml-dsa-test" => { + "noinst" => "1" + }, + "fuzz/ml-kem-test" => { + "noinst" => "1" + }, + "fuzz/pem-test" => { + "noinst" => "1" + }, + "fuzz/provider-test" => { + "noinst" => "1" + }, + "fuzz/punycode-test" => { + "noinst" => "1" + }, + "fuzz/quic-client-test" => { + "noinst" => "1" + }, + "fuzz/quic-lcidm-test" => { + "noinst" => "1" + }, + "fuzz/quic-rcidm-test" => { + "noinst" => "1" + }, + "fuzz/quic-server-test" => { + "noinst" => "1" + }, + "fuzz/quic-srtm-test" => { + "noinst" => "1" + }, "fuzz/server-test" => { "noinst" => "1" }, + "fuzz/slh-dsa-test" => { + "noinst" => "1" + }, + "fuzz/smime-test" => { + "noinst" => "1" + }, + "fuzz/v3name-test" => { + "noinst" => "1" + }, "fuzz/x509-test" => { "noinst" => "1" }, @@ -877,18 +1030,30 @@ our %unified_info = ( "test/bftest" => { "noinst" => "1" }, + "test/bio_addr_test" => { + "noinst" => "1" + }, + "test/bio_base64_test" => { + "noinst" => "1" + }, "test/bio_callback_test" => { "noinst" => "1" }, "test/bio_core_test" => { "noinst" => "1" }, + "test/bio_dgram_test" => { + "noinst" => "1" + }, "test/bio_enc_test" => { "noinst" => "1" }, "test/bio_memleak_test" => { "noinst" => "1" }, + "test/bio_meth_test" => { + "noinst" => "1" + }, "test/bio_prefix_text" => { "noinst" => "1" }, @@ -898,6 +1063,9 @@ our %unified_info = ( "test/bio_readbuffer_test" => { "noinst" => "1" }, + "test/bio_tfo_test" => { + "noinst" => "1" + }, "test/bioprinttest" => { "noinst" => "1" }, @@ -907,6 +1075,9 @@ our %unified_info = ( "test/bntest" => { "noinst" => "1" }, + "test/build_wincrypt_test" => { + "noinst" => "1" + }, "test/buildtest_c_aes" => { "noinst" => "1" }, @@ -922,6 +1093,9 @@ our %unified_info = ( "test/buildtest_c_buffer" => { "noinst" => "1" }, + "test/buildtest_c_byteorder" => { + "noinst" => "1" + }, "test/buildtest_c_camellia" => { "noinst" => "1" }, @@ -946,9 +1120,6 @@ our %unified_info = ( "test/buildtest_c_core_dispatch" => { "noinst" => "1" }, - "test/buildtest_c_core_names" => { - "noinst" => "1" - }, "test/buildtest_c_core_object" => { "noinst" => "1" }, @@ -973,6 +1144,9 @@ our %unified_info = ( "test/buildtest_c_e_os2" => { "noinst" => "1" }, + "test/buildtest_c_e_ostime" => { + "noinst" => "1" + }, "test/buildtest_c_ebcdic" => { "noinst" => "1" }, @@ -1000,12 +1174,18 @@ our %unified_info = ( "test/buildtest_c_hmac" => { "noinst" => "1" }, + "test/buildtest_c_hpke" => { + "noinst" => "1" + }, "test/buildtest_c_http" => { "noinst" => "1" }, "test/buildtest_c_idea" => { "noinst" => "1" }, + "test/buildtest_c_indicator" => { + "noinst" => "1" + }, "test/buildtest_c_kdf" => { "noinst" => "1" }, @@ -1021,6 +1201,9 @@ our %unified_info = ( "test/buildtest_c_mdc2" => { "noinst" => "1" }, + "test/buildtest_c_ml_kem" => { + "noinst" => "1" + }, "test/buildtest_c_modes" => { "noinst" => "1" }, @@ -1051,6 +1234,9 @@ our %unified_info = ( "test/buildtest_c_provider" => { "noinst" => "1" }, + "test/buildtest_c_quic" => { + "noinst" => "1" + }, "test/buildtest_c_rand" => { "noinst" => "1" }, @@ -1093,6 +1279,9 @@ our %unified_info = ( "test/buildtest_c_symhacks" => { "noinst" => "1" }, + "test/buildtest_c_thread" => { + "noinst" => "1" + }, "test/buildtest_c_tls1" => { "noinst" => "1" }, @@ -1108,6 +1297,12 @@ our %unified_info = ( "test/buildtest_c_whrlpool" => { "noinst" => "1" }, + "test/byteorder_test" => { + "noinst" => "1" + }, + "test/ca_internals_test" => { + "noinst" => "1" + }, "test/casttest" => { "noinst" => "1" }, @@ -1192,6 +1387,9 @@ our %unified_info = ( "test/danetest" => { "noinst" => "1" }, + "test/decoder_propq_test" => { + "noinst" => "1" + }, "test/defltfips_test" => { "noinst" => "1" }, @@ -1264,15 +1462,24 @@ our %unified_info = ( "test/evp_pkey_ctx_new_from_name" => { "noinst" => "1" }, + "test/evp_pkey_dhkem_test" => { + "noinst" => "1" + }, "test/evp_pkey_dparams_test" => { "noinst" => "1" }, "test/evp_pkey_provided_test" => { "noinst" => "1" }, + "test/evp_skey_test" => { + "noinst" => "1" + }, "test/evp_test" => { "noinst" => "1" }, + "test/evp_xof_test" => { + "noinst" => "1" + }, "test/exdatatest" => { "noinst" => "1" }, @@ -1300,6 +1507,9 @@ our %unified_info = ( "test/hmactest" => { "noinst" => "1" }, + "test/hpke_test" => { + "noinst" => "1" + }, "test/http_test" => { "noinst" => "1" }, @@ -1309,12 +1519,18 @@ our %unified_info = ( "test/igetest" => { "noinst" => "1" }, + "test/json_test" => { + "noinst" => "1" + }, "test/keymgmt_internal_test" => { "noinst" => "1" }, "test/lhash_test" => { "noinst" => "1" }, + "test/list_test" => { + "noinst" => "1" + }, "test/localetest" => { "noinst" => "1" }, @@ -1324,9 +1540,21 @@ our %unified_info = ( "test/mdc2test" => { "noinst" => "1" }, + "test/membio_test" => { + "noinst" => "1" + }, "test/memleaktest" => { "noinst" => "1" }, + "test/ml_dsa_test" => { + "noinst" => "1" + }, + "test/ml_kem_evp_extra_test" => { + "noinst" => "1" + }, + "test/ml_kem_internal_test" => { + "noinst" => "1" + }, "test/modes_internal_test" => { "noinst" => "1" }, @@ -1345,6 +1573,9 @@ our %unified_info = ( "test/packettest" => { "noinst" => "1" }, + "test/pairwise_fail_test" => { + "noinst" => "1" + }, "test/param_build_test" => { "noinst" => "1" }, @@ -1369,6 +1600,9 @@ our %unified_info = ( "test/pemtest" => { "noinst" => "1" }, + "test/pkcs12_api_test" => { + "noinst" => "1" + }, "test/pkcs12_format_test" => { "noinst" => "1" }, @@ -1384,6 +1618,9 @@ our %unified_info = ( "test/poly1305_internal_test" => { "noinst" => "1" }, + "test/priority_queue_test" => { + "noinst" => "1" + }, "test/property_test" => { "noinst" => "1" }, @@ -1393,6 +1630,9 @@ our %unified_info = ( "test/provfetchtest" => { "noinst" => "1" }, + "test/provider_default_search_path_test" => { + "noinst" => "1" + }, "test/provider_fallback_test" => { "noinst" => "1" }, @@ -1411,6 +1651,72 @@ our %unified_info = ( "test/punycode_test" => { "noinst" => "1" }, + "test/quic_ackm_test" => { + "noinst" => "1" + }, + "test/quic_cc_test" => { + "noinst" => "1" + }, + "test/quic_cfq_test" => { + "noinst" => "1" + }, + "test/quic_client_test" => { + "noinst" => "1" + }, + "test/quic_fc_test" => { + "noinst" => "1" + }, + "test/quic_fifd_test" => { + "noinst" => "1" + }, + "test/quic_lcidm_test" => { + "noinst" => "1" + }, + "test/quic_multistream_test" => { + "noinst" => "1" + }, + "test/quic_newcid_test" => { + "noinst" => "1" + }, + "test/quic_qlog_test" => { + "noinst" => "1" + }, + "test/quic_radix_test" => { + "noinst" => "1" + }, + "test/quic_rcidm_test" => { + "noinst" => "1" + }, + "test/quic_record_test" => { + "noinst" => "1" + }, + "test/quic_srt_gen_test" => { + "noinst" => "1" + }, + "test/quic_srtm_test" => { + "noinst" => "1" + }, + "test/quic_stream_test" => { + "noinst" => "1" + }, + "test/quic_tserver_test" => { + "noinst" => "1" + }, + "test/quic_txp_test" => { + "noinst" => "1" + }, + "test/quic_txpim_test" => { + "noinst" => "1" + }, + "test/quic_wire_test" => { + "noinst" => "1" + }, + "test/quicapitest" => { + "noinst" => "1" + }, + "test/quicfaultstest" => { + "noinst" => "1" + }, "test/rand_status_test" => { "noinst" => "1" }, @@ -1426,12 +1732,15 @@ our %unified_info = ( "test/rc5test" => { "noinst" => "1" }, - "test/rdrand_sanitytest" => { + "test/rdcpu_sanitytest" => { "noinst" => "1" }, "test/recordlentest" => { "noinst" => "1" }, + "test/rpktest" => { + "noinst" => "1" + }, "test/rsa_complex" => { "noinst" => "1" }, @@ -1444,6 +1753,12 @@ our %unified_info = ( "test/rsa_test" => { "noinst" => "1" }, + "test/rsa_x931_test" => { + "noinst" => "1" + }, + "test/safe_math_test" => { + "noinst" => "1" + }, "test/sanitytest" => { "noinst" => "1" }, @@ -1459,6 +1774,9 @@ our %unified_info = ( "test/siphash_internal_test" => { "noinst" => "1" }, + "test/slh_dsa_test" => { + "noinst" => "1" + }, "test/sm2_internal_test" => { "noinst" => "1" }, @@ -1480,6 +1798,9 @@ our %unified_info = ( "test/ssl_ctx_test" => { "noinst" => "1" }, + "test/ssl_handshake_rtt_test" => { + "noinst" => "1" + }, "test/ssl_old_test" => { "noinst" => "1" }, @@ -1501,12 +1822,18 @@ our %unified_info = ( "test/stack_test" => { "noinst" => "1" }, + "test/strtoultest" => { + "noinst" => "1" + }, "test/sysdefaulttest" => { "noinst" => "1" }, "test/test_test" => { "noinst" => "1" }, + "test/threadpool_test" => { + "noinst" => "1" + }, "test/threadstest" => { "noinst" => "1" }, @@ -1516,12 +1843,18 @@ our %unified_info = ( "test/time_offset_test" => { "noinst" => "1" }, + "test/time_test" => { + "noinst" => "1" + }, "test/tls13ccstest" => { "noinst" => "1" }, "test/tls13encryptiontest" => { "noinst" => "1" }, + "test/tls13groupselection_test" => { + "noinst" => "1" + }, "test/trace_api_test" => { "noinst" => "1" }, @@ -1549,6 +1882,9 @@ our %unified_info = ( "test/wpackettest" => { "noinst" => "1" }, + "test/x509_acert_test" => { + "noinst" => "1" + }, "test/x509_check_cert_pkey_test" => { "noinst" => "1" }, @@ -1558,6 +1894,15 @@ our %unified_info = ( "test/x509_internal_test" => { "noinst" => "1" }, + "test/x509_load_cert_file_test" => { + "noinst" => "1" + }, + "test/x509_req_test" => { + "noinst" => "1" + }, + "test/x509_test" => { + "noinst" => "1" + }, "test/x509_time_test" => { "noinst" => "1" }, @@ -1639,6 +1984,9 @@ our %unified_info = ( "VPAES_ASM", "X25519_ASM" ], + "test/endecode_test" => [ + "STATIC_LEGACY" + ], "test/evp_extra_test" => [ "STATIC_LEGACY" ], @@ -1651,14 +1999,21 @@ our %unified_info = ( }, "depends" => { "" => [ + "OpenSSLConfigVersion.cmake", + "crypto/params_idx.c", + "exporters/OpenSSLConfigVersion.cmake", + "exporters/openssl.pc", "include/crypto/bn_conf.h", "include/crypto/dso_conf.h", + "include/internal/param_names.h", "include/openssl/asn1.h", "include/openssl/asn1t.h", "include/openssl/bio.h", "include/openssl/cmp.h", "include/openssl/cms.h", + "include/openssl/comp.h", "include/openssl/conf.h", + "include/openssl/core_names.h", "include/openssl/crmf.h", "include/openssl/crypto.h", "include/openssl/ct.h", @@ -1675,10 +2030,22 @@ our %unified_info = ( "include/openssl/ssl.h", "include/openssl/ui.h", "include/openssl/x509.h", + "include/openssl/x509_acert.h", "include/openssl/x509_vfy.h", "include/openssl/x509v3.h", + "openssl.pc", "test/provider_internal_test.cnf" ], + "OpenSSLConfig.cmake" => [ + "builddata.pm" + ], + "OpenSSLConfigVersion.cmake" => [ + "OpenSSLConfig.cmake", + "builddata.pm" + ], + "apps/ca_internals_test-bin-ca.o" => [ + "apps/progs.h" + ], "apps/lib/cmp_client_test-bin-cmp_mock_srv.o" => [ "apps/progs.h" ], @@ -1824,6 +2191,9 @@ our %unified_info = ( "apps/openssl-bin-sess_id.o" => [ "apps/progs.h" ], + "apps/openssl-bin-skeyutl.o" => [ + "apps/progs.h" + ], "apps/openssl-bin-smime.o" => [ "apps/progs.h" ], @@ -1912,6 +2282,9 @@ our %unified_info = ( "crypto/libcrypto-lib-info.o" => [ "crypto/buildinf.h" ], + "crypto/params_idx.c" => [ + "util/perl|OpenSSL/paramnames.pm" + ], "crypto/rc4/rc4-586.S" => [ "crypto/perlasm/x86asm.pl" ], @@ -2077,6 +2450,9 @@ our %unified_info = ( "doc/html/man1/openssl-sess_id.html" => [ "doc/man1/openssl-sess_id.pod" ], + "doc/html/man1/openssl-skeyutl.html" => [ + "doc/man1/openssl-skeyutl.pod" + ], "doc/html/man1/openssl-smime.html" => [ "doc/man1/openssl-smime.pod" ], @@ -2218,6 +2594,9 @@ our %unified_info = ( "doc/html/man3/BIO_get_ex_new_index.html" => [ "doc/man3/BIO_get_ex_new_index.pod" ], + "doc/html/man3/BIO_get_rpoll_descriptor.html" => [ + "doc/man3/BIO_get_rpoll_descriptor.pod" + ], "doc/html/man3/BIO_meth_new.html" => [ "doc/man3/BIO_meth_new.pod" ], @@ -2254,6 +2633,9 @@ our %unified_info = ( "doc/html/man3/BIO_s_datagram.html" => [ "doc/man3/BIO_s_datagram.pod" ], + "doc/html/man3/BIO_s_dgram_pair.html" => [ + "doc/man3/BIO_s_dgram_pair.pod" + ], "doc/html/man3/BIO_s_fd.html" => [ "doc/man3/BIO_s_fd.pod" ], @@ -2269,6 +2651,9 @@ our %unified_info = ( "doc/html/man3/BIO_s_socket.html" => [ "doc/man3/BIO_s_socket.pod" ], + "doc/html/man3/BIO_sendmmsg.html" => [ + "doc/man3/BIO_sendmmsg.pod" + ], "doc/html/man3/BIO_set_callback.html" => [ "doc/man3/BIO_set_callback.pod" ], @@ -2341,6 +2726,9 @@ our %unified_info = ( "doc/html/man3/BUF_MEM_new.html" => [ "doc/man3/BUF_MEM_new.pod" ], + "doc/html/man3/CMAC_CTX.html" => [ + "doc/man3/CMAC_CTX.pod" + ], "doc/html/man3/CMS_EncryptedData_decrypt.html" => [ "doc/man3/CMS_EncryptedData_decrypt.pod" ], @@ -2407,6 +2795,9 @@ our %unified_info = ( "doc/html/man3/CMS_verify_receipt.html" => [ "doc/man3/CMS_verify_receipt.pod" ], + "doc/html/man3/COMP_CTX_new.html" => [ + "doc/man3/COMP_CTX_new.pod" + ], "doc/html/man3/CONF_modules_free.html" => [ "doc/man3/CONF_modules_free.pod" ], @@ -2506,6 +2897,12 @@ our %unified_info = ( "doc/html/man3/DTLS_set_timer_cb.html" => [ "doc/man3/DTLS_set_timer_cb.pod" ], + "doc/html/man3/DTLSv1_get_timeout.html" => [ + "doc/man3/DTLSv1_get_timeout.pod" + ], + "doc/html/man3/DTLSv1_handle_timeout.html" => [ + "doc/man3/DTLSv1_handle_timeout.pod" + ], "doc/html/man3/DTLSv1_listen.html" => [ "doc/man3/DTLSv1_listen.pod" ], @@ -2644,6 +3041,9 @@ our %unified_info = ( "doc/html/man3/EVP_PKEY_CTX_get0_pkey.html" => [ "doc/man3/EVP_PKEY_CTX_get0_pkey.pod" ], + "doc/html/man3/EVP_PKEY_CTX_get_algor.html" => [ + "doc/man3/EVP_PKEY_CTX_get_algor.pod" + ], "doc/html/man3/EVP_PKEY_CTX_new.html" => [ "doc/man3/EVP_PKEY_CTX_new.pod" ], @@ -2761,6 +3161,12 @@ our %unified_info = ( "doc/html/man3/EVP_SIGNATURE.html" => [ "doc/man3/EVP_SIGNATURE.pod" ], + "doc/html/man3/EVP_SKEY.html" => [ + "doc/man3/EVP_SKEY.pod" + ], + "doc/html/man3/EVP_SKEYMGMT.html" => [ + "doc/man3/EVP_SKEYMGMT.pod" + ], "doc/html/man3/EVP_SealInit.html" => [ "doc/man3/EVP_SealInit.pod" ], @@ -2848,6 +3254,9 @@ our %unified_info = ( "doc/html/man3/EVP_whirlpool.html" => [ "doc/man3/EVP_whirlpool.pod" ], + "doc/html/man3/GENERAL_NAME.html" => [ + "doc/man3/GENERAL_NAME.pod" + ], "doc/html/man3/HMAC.html" => [ "doc/man3/HMAC.pod" ], @@ -2920,9 +3329,15 @@ our %unified_info = ( "doc/html/man3/OPENSSL_load_builtin_modules.html" => [ "doc/man3/OPENSSL_load_builtin_modules.pod" ], + "doc/html/man3/OPENSSL_load_u16_le.html" => [ + "doc/man3/OPENSSL_load_u16_le.pod" + ], "doc/html/man3/OPENSSL_malloc.html" => [ "doc/man3/OPENSSL_malloc.pod" ], + "doc/html/man3/OPENSSL_riscvcap.html" => [ + "doc/man3/OPENSSL_riscvcap.pod" + ], "doc/html/man3/OPENSSL_s390xcap.html" => [ "doc/man3/OPENSSL_s390xcap.pod" ], @@ -2938,12 +3353,18 @@ our %unified_info = ( "doc/html/man3/OSSL_CALLBACK.html" => [ "doc/man3/OSSL_CALLBACK.pod" ], + "doc/html/man3/OSSL_CMP_ATAV_set0.html" => [ + "doc/man3/OSSL_CMP_ATAV_set0.pod" + ], "doc/html/man3/OSSL_CMP_CTX_new.html" => [ "doc/man3/OSSL_CMP_CTX_new.pod" ], "doc/html/man3/OSSL_CMP_HDR_get0_transactionID.html" => [ "doc/man3/OSSL_CMP_HDR_get0_transactionID.pod" ], + "doc/html/man3/OSSL_CMP_ITAV_new_caCerts.html" => [ + "doc/man3/OSSL_CMP_ITAV_new_caCerts.pod" + ], "doc/html/man3/OSSL_CMP_ITAV_set0.html" => [ "doc/man3/OSSL_CMP_ITAV_set0.pod" ], @@ -3013,9 +3434,18 @@ our %unified_info = ( "doc/html/man3/OSSL_ENCODER_to_bio.html" => [ "doc/man3/OSSL_ENCODER_to_bio.pod" ], + "doc/html/man3/OSSL_ERR_STATE_save.html" => [ + "doc/man3/OSSL_ERR_STATE_save.pod" + ], "doc/html/man3/OSSL_ESS_check_signing_certs.html" => [ "doc/man3/OSSL_ESS_check_signing_certs.pod" ], + "doc/html/man3/OSSL_GENERAL_NAMES_print.html" => [ + "doc/man3/OSSL_GENERAL_NAMES_print.pod" + ], + "doc/html/man3/OSSL_HPKE_CTX_new.html" => [ + "doc/man3/OSSL_HPKE_CTX_new.pod" + ], "doc/html/man3/OSSL_HTTP_REQ_CTX.html" => [ "doc/man3/OSSL_HTTP_REQ_CTX.pod" ], @@ -3025,12 +3455,24 @@ our %unified_info = ( "doc/html/man3/OSSL_HTTP_transfer.html" => [ "doc/man3/OSSL_HTTP_transfer.pod" ], + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX.html" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX.pod" + ], + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX_print.html" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX_print.pod" + ], + "doc/html/man3/OSSL_INDICATOR_set_callback.html" => [ + "doc/man3/OSSL_INDICATOR_set_callback.pod" + ], "doc/html/man3/OSSL_ITEM.html" => [ "doc/man3/OSSL_ITEM.pod" ], "doc/html/man3/OSSL_LIB_CTX.html" => [ "doc/man3/OSSL_LIB_CTX.pod" ], + "doc/html/man3/OSSL_LIB_CTX_set_conf_diagnostics.html" => [ + "doc/man3/OSSL_LIB_CTX_set_conf_diagnostics.pod" + ], "doc/html/man3/OSSL_PARAM.html" => [ "doc/man3/OSSL_PARAM.pod" ], @@ -3046,9 +3488,15 @@ our %unified_info = ( "doc/html/man3/OSSL_PARAM_int.html" => [ "doc/man3/OSSL_PARAM_int.pod" ], + "doc/html/man3/OSSL_PARAM_print_to_bio.html" => [ + "doc/man3/OSSL_PARAM_print_to_bio.pod" + ], "doc/html/man3/OSSL_PROVIDER.html" => [ "doc/man3/OSSL_PROVIDER.pod" ], + "doc/html/man3/OSSL_QUIC_client_method.html" => [ + "doc/man3/OSSL_QUIC_client_method.pod" + ], "doc/html/man3/OSSL_SELF_TEST_new.html" => [ "doc/man3/OSSL_SELF_TEST_new.pod" ], @@ -3073,6 +3521,9 @@ our %unified_info = ( "doc/html/man3/OSSL_STORE_open.html" => [ "doc/man3/OSSL_STORE_open.pod" ], + "doc/html/man3/OSSL_sleep.html" => [ + "doc/man3/OSSL_sleep.pod" + ], "doc/html/man3/OSSL_trace_enabled.html" => [ "doc/man3/OSSL_trace_enabled.pod" ], @@ -3088,6 +3539,9 @@ our %unified_info = ( "doc/html/man3/OpenSSL_version.html" => [ "doc/man3/OpenSSL_version.pod" ], + "doc/html/man3/PBMAC1_get1_pbkdf2_param.html" => [ + "doc/man3/PBMAC1_get1_pbkdf2_param.pod" + ], "doc/html/man3/PEM_X509_INFO_read_bio_ex.html" => [ "doc/man3/PEM_X509_INFO_read_bio_ex.pod" ], @@ -3124,6 +3578,9 @@ our %unified_info = ( "doc/html/man3/PKCS12_SAFEBAG_get1_cert.html" => [ "doc/man3/PKCS12_SAFEBAG_get1_cert.pod" ], + "doc/html/man3/PKCS12_SAFEBAG_set0_attrs.html" => [ + "doc/man3/PKCS12_SAFEBAG_set0_attrs.pod" + ], "doc/html/man3/PKCS12_add1_attr_by_NID.html" => [ "doc/man3/PKCS12_add1_attr_by_NID.pod" ], @@ -3397,6 +3854,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set0_CA_list.html" => [ "doc/man3/SSL_CTX_set0_CA_list.pod" ], + "doc/html/man3/SSL_CTX_set1_cert_comp_preference.html" => [ + "doc/man3/SSL_CTX_set1_cert_comp_preference.pod" + ], "doc/html/man3/SSL_CTX_set1_curves.html" => [ "doc/man3/SSL_CTX_set1_curves.pod" ], @@ -3436,6 +3896,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_default_passwd_cb.html" => [ "doc/man3/SSL_CTX_set_default_passwd_cb.pod" ], + "doc/html/man3/SSL_CTX_set_domain_flags.html" => [ + "doc/man3/SSL_CTX_set_domain_flags.pod" + ], "doc/html/man3/SSL_CTX_set_generate_session_id.html" => [ "doc/man3/SSL_CTX_set_generate_session_id.pod" ], @@ -3457,6 +3920,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_msg_callback.html" => [ "doc/man3/SSL_CTX_set_msg_callback.pod" ], + "doc/html/man3/SSL_CTX_set_new_pending_conn_cb.html" => [ + "doc/man3/SSL_CTX_set_new_pending_conn_cb.pod" + ], "doc/html/man3/SSL_CTX_set_num_tickets.html" => [ "doc/man3/SSL_CTX_set_num_tickets.pod" ], @@ -3571,6 +4037,9 @@ our %unified_info = ( "doc/html/man3/SSL_accept.html" => [ "doc/man3/SSL_accept.pod" ], + "doc/html/man3/SSL_accept_stream.html" => [ + "doc/man3/SSL_accept_stream.pod" + ], "doc/html/man3/SSL_alert_type_string.html" => [ "doc/man3/SSL_alert_type_string.pod" ], @@ -3598,9 +4067,21 @@ our %unified_info = ( "doc/html/man3/SSL_free.html" => [ "doc/man3/SSL_free.pod" ], + "doc/html/man3/SSL_get0_connection.html" => [ + "doc/man3/SSL_get0_connection.pod" + ], + "doc/html/man3/SSL_get0_group_name.html" => [ + "doc/man3/SSL_get0_group_name.pod" + ], + "doc/html/man3/SSL_get0_peer_rpk.html" => [ + "doc/man3/SSL_get0_peer_rpk.pod" + ], "doc/html/man3/SSL_get0_peer_scts.html" => [ "doc/man3/SSL_get0_peer_scts.pod" ], + "doc/html/man3/SSL_get1_builtin_sigalgs.html" => [ + "doc/man3/SSL_get1_builtin_sigalgs.pod" + ], "doc/html/man3/SSL_get_SSL_CTX.html" => [ "doc/man3/SSL_get_SSL_CTX.pod" ], @@ -3616,6 +4097,9 @@ our %unified_info = ( "doc/html/man3/SSL_get_client_random.html" => [ "doc/man3/SSL_get_client_random.pod" ], + "doc/html/man3/SSL_get_conn_close_info.html" => [ + "doc/man3/SSL_get_conn_close_info.pod" + ], "doc/html/man3/SSL_get_current_cipher.html" => [ "doc/man3/SSL_get_current_cipher.pod" ], @@ -3625,12 +4109,18 @@ our %unified_info = ( "doc/html/man3/SSL_get_error.html" => [ "doc/man3/SSL_get_error.pod" ], + "doc/html/man3/SSL_get_event_timeout.html" => [ + "doc/man3/SSL_get_event_timeout.pod" + ], "doc/html/man3/SSL_get_extms_support.html" => [ "doc/man3/SSL_get_extms_support.pod" ], "doc/html/man3/SSL_get_fd.html" => [ "doc/man3/SSL_get_fd.pod" ], + "doc/html/man3/SSL_get_handshake_rtt.html" => [ + "doc/man3/SSL_get_handshake_rtt.pod" + ], "doc/html/man3/SSL_get_peer_cert_chain.html" => [ "doc/man3/SSL_get_peer_cert_chain.pod" ], @@ -3649,12 +4139,24 @@ our %unified_info = ( "doc/html/man3/SSL_get_rbio.html" => [ "doc/man3/SSL_get_rbio.pod" ], + "doc/html/man3/SSL_get_rpoll_descriptor.html" => [ + "doc/man3/SSL_get_rpoll_descriptor.pod" + ], "doc/html/man3/SSL_get_session.html" => [ "doc/man3/SSL_get_session.pod" ], "doc/html/man3/SSL_get_shared_sigalgs.html" => [ "doc/man3/SSL_get_shared_sigalgs.pod" ], + "doc/html/man3/SSL_get_stream_id.html" => [ + "doc/man3/SSL_get_stream_id.pod" + ], + "doc/html/man3/SSL_get_stream_read_state.html" => [ + "doc/man3/SSL_get_stream_read_state.pod" + ], + "doc/html/man3/SSL_get_value_uint.html" => [ + "doc/man3/SSL_get_value_uint.pod" + ], "doc/html/man3/SSL_get_verify_result.html" => [ "doc/man3/SSL_get_verify_result.pod" ], @@ -3664,9 +4166,15 @@ our %unified_info = ( "doc/html/man3/SSL_group_to_name.html" => [ "doc/man3/SSL_group_to_name.pod" ], + "doc/html/man3/SSL_handle_events.html" => [ + "doc/man3/SSL_handle_events.pod" + ], "doc/html/man3/SSL_in_init.html" => [ "doc/man3/SSL_in_init.pod" ], + "doc/html/man3/SSL_inject_net_dgram.html" => [ + "doc/man3/SSL_inject_net_dgram.pod" + ], "doc/html/man3/SSL_key_update.html" => [ "doc/man3/SSL_key_update.pod" ], @@ -3679,9 +4187,21 @@ our %unified_info = ( "doc/html/man3/SSL_new.html" => [ "doc/man3/SSL_new.pod" ], + "doc/html/man3/SSL_new_domain.html" => [ + "doc/man3/SSL_new_domain.pod" + ], + "doc/html/man3/SSL_new_listener.html" => [ + "doc/man3/SSL_new_listener.pod" + ], + "doc/html/man3/SSL_new_stream.html" => [ + "doc/man3/SSL_new_stream.pod" + ], "doc/html/man3/SSL_pending.html" => [ "doc/man3/SSL_pending.pod" ], + "doc/html/man3/SSL_poll.html" => [ + "doc/man3/SSL_poll.pod" + ], "doc/html/man3/SSL_read.html" => [ "doc/man3/SSL_read.pod" ], @@ -3697,24 +4217,45 @@ our %unified_info = ( "doc/html/man3/SSL_set1_host.html" => [ "doc/man3/SSL_set1_host.pod" ], + "doc/html/man3/SSL_set1_initial_peer_addr.html" => [ + "doc/man3/SSL_set1_initial_peer_addr.pod" + ], + "doc/html/man3/SSL_set1_server_cert_type.html" => [ + "doc/man3/SSL_set1_server_cert_type.pod" + ], "doc/html/man3/SSL_set_async_callback.html" => [ "doc/man3/SSL_set_async_callback.pod" ], "doc/html/man3/SSL_set_bio.html" => [ "doc/man3/SSL_set_bio.pod" ], + "doc/html/man3/SSL_set_blocking_mode.html" => [ + "doc/man3/SSL_set_blocking_mode.pod" + ], "doc/html/man3/SSL_set_connect_state.html" => [ "doc/man3/SSL_set_connect_state.pod" ], + "doc/html/man3/SSL_set_default_stream_mode.html" => [ + "doc/man3/SSL_set_default_stream_mode.pod" + ], "doc/html/man3/SSL_set_fd.html" => [ "doc/man3/SSL_set_fd.pod" ], + "doc/html/man3/SSL_set_incoming_stream_policy.html" => [ + "doc/man3/SSL_set_incoming_stream_policy.pod" + ], + "doc/html/man3/SSL_set_quic_tls_cbs.html" => [ + "doc/man3/SSL_set_quic_tls_cbs.pod" + ], "doc/html/man3/SSL_set_retry_verify.html" => [ "doc/man3/SSL_set_retry_verify.pod" ], "doc/html/man3/SSL_set_session.html" => [ "doc/man3/SSL_set_session.pod" ], + "doc/html/man3/SSL_set_session_secret_cb.html" => [ + "doc/man3/SSL_set_session_secret_cb.pod" + ], "doc/html/man3/SSL_set_shutdown.html" => [ "doc/man3/SSL_set_shutdown.pod" ], @@ -3727,6 +4268,12 @@ our %unified_info = ( "doc/html/man3/SSL_state_string.html" => [ "doc/man3/SSL_state_string.pod" ], + "doc/html/man3/SSL_stream_conclude.html" => [ + "doc/man3/SSL_stream_conclude.pod" + ], + "doc/html/man3/SSL_stream_reset.html" => [ + "doc/man3/SSL_stream_reset.pod" + ], "doc/html/man3/SSL_want.html" => [ "doc/man3/SSL_want.pod" ], @@ -3736,8 +4283,8 @@ our %unified_info = ( "doc/html/man3/TS_RESP_CTX_new.html" => [ "doc/man3/TS_RESP_CTX_new.pod" ], - "doc/html/man3/TS_VERIFY_CTX_set_certs.html" => [ - "doc/man3/TS_VERIFY_CTX_set_certs.pod" + "doc/html/man3/TS_VERIFY_CTX.html" => [ + "doc/man3/TS_VERIFY_CTX.pod" ], "doc/html/man3/UI_STRING.html" => [ "doc/man3/UI_STRING.pod" @@ -3757,6 +4304,21 @@ our %unified_info = ( "doc/html/man3/X509V3_set_ctx.html" => [ "doc/man3/X509V3_set_ctx.pod" ], + "doc/html/man3/X509_ACERT_add1_attr.html" => [ + "doc/man3/X509_ACERT_add1_attr.pod" + ], + "doc/html/man3/X509_ACERT_add_attr_nconf.html" => [ + "doc/man3/X509_ACERT_add_attr_nconf.pod" + ], + "doc/html/man3/X509_ACERT_get0_holder_baseCertId.html" => [ + "doc/man3/X509_ACERT_get0_holder_baseCertId.pod" + ], + "doc/html/man3/X509_ACERT_get_attr.html" => [ + "doc/man3/X509_ACERT_get_attr.pod" + ], + "doc/html/man3/X509_ACERT_print_ex.html" => [ + "doc/man3/X509_ACERT_print_ex.pod" + ], "doc/html/man3/X509_ALGOR_dup.html" => [ "doc/man3/X509_ALGOR_dup.pod" ], @@ -3805,6 +4367,9 @@ our %unified_info = ( "doc/html/man3/X509_SIG_get0.html" => [ "doc/man3/X509_SIG_get0.pod" ], + "doc/html/man3/X509_STORE_CTX_get_by_subject.html" => [ + "doc/man3/X509_STORE_CTX_get_by_subject.pod" + ], "doc/html/man3/X509_STORE_CTX_get_error.html" => [ "doc/man3/X509_STORE_CTX_get_error.pod" ], @@ -3871,6 +4436,9 @@ our %unified_info = ( "doc/html/man3/X509_get0_uids.html" => [ "doc/man3/X509_get0_uids.pod" ], + "doc/html/man3/X509_get_default_cert_file.html" => [ + "doc/man3/X509_get_default_cert_file.pod" + ], "doc/html/man3/X509_get_extension_flags.html" => [ "doc/man3/X509_get_extension_flags.pod" ], @@ -3994,9 +4562,15 @@ our %unified_info = ( "doc/html/man7/EVP_CIPHER-SM4.html" => [ "doc/man7/EVP_CIPHER-SM4.pod" ], + "doc/html/man7/EVP_KDF-ARGON2.html" => [ + "doc/man7/EVP_KDF-ARGON2.pod" + ], "doc/html/man7/EVP_KDF-HKDF.html" => [ "doc/man7/EVP_KDF-HKDF.pod" ], + "doc/html/man7/EVP_KDF-HMAC-DRBG.html" => [ + "doc/man7/EVP_KDF-HMAC-DRBG.pod" + ], "doc/html/man7/EVP_KDF-KB.html" => [ "doc/man7/EVP_KDF-KB.pod" ], @@ -4012,6 +4586,9 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-PKCS12KDF.html" => [ "doc/man7/EVP_KDF-PKCS12KDF.pod" ], + "doc/html/man7/EVP_KDF-PVKKDF.html" => [ + "doc/man7/EVP_KDF-PVKKDF.pod" + ], "doc/html/man7/EVP_KDF-SCRYPT.html" => [ "doc/man7/EVP_KDF-SCRYPT.pod" ], @@ -4036,9 +4613,18 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-X963.html" => [ "doc/man7/EVP_KDF-X963.pod" ], + "doc/html/man7/EVP_KEM-EC.html" => [ + "doc/man7/EVP_KEM-EC.pod" + ], + "doc/html/man7/EVP_KEM-ML-KEM.html" => [ + "doc/man7/EVP_KEM-ML-KEM.pod" + ], "doc/html/man7/EVP_KEM-RSA.html" => [ "doc/man7/EVP_KEM-RSA.pod" ], + "doc/html/man7/EVP_KEM-X25519.html" => [ + "doc/man7/EVP_KEM-X25519.pod" + ], "doc/html/man7/EVP_KEYEXCH-DH.html" => [ "doc/man7/EVP_KEYEXCH-DH.pod" ], @@ -4072,6 +4658,9 @@ our %unified_info = ( "doc/html/man7/EVP_MD-BLAKE2.html" => [ "doc/man7/EVP_MD-BLAKE2.pod" ], + "doc/html/man7/EVP_MD-KECCAK.html" => [ + "doc/man7/EVP_MD-KECCAK.pod" + ], "doc/html/man7/EVP_MD-MD2.html" => [ "doc/man7/EVP_MD-MD2.pod" ], @@ -4129,15 +4718,27 @@ our %unified_info = ( "doc/html/man7/EVP_PKEY-HMAC.html" => [ "doc/man7/EVP_PKEY-HMAC.pod" ], + "doc/html/man7/EVP_PKEY-ML-DSA.html" => [ + "doc/man7/EVP_PKEY-ML-DSA.pod" + ], + "doc/html/man7/EVP_PKEY-ML-KEM.html" => [ + "doc/man7/EVP_PKEY-ML-KEM.pod" + ], "doc/html/man7/EVP_PKEY-RSA.html" => [ "doc/man7/EVP_PKEY-RSA.pod" ], + "doc/html/man7/EVP_PKEY-SLH-DSA.html" => [ + "doc/man7/EVP_PKEY-SLH-DSA.pod" + ], "doc/html/man7/EVP_PKEY-SM2.html" => [ "doc/man7/EVP_PKEY-SM2.pod" ], "doc/html/man7/EVP_PKEY-X25519.html" => [ "doc/man7/EVP_PKEY-X25519.pod" ], + "doc/html/man7/EVP_RAND-CRNG-TEST.html" => [ + "doc/man7/EVP_RAND-CRNG-TEST.pod" + ], "doc/html/man7/EVP_RAND-CTR-DRBG.html" => [ "doc/man7/EVP_RAND-CTR-DRBG.pod" ], @@ -4147,6 +4748,9 @@ our %unified_info = ( "doc/html/man7/EVP_RAND-HMAC-DRBG.html" => [ "doc/man7/EVP_RAND-HMAC-DRBG.pod" ], + "doc/html/man7/EVP_RAND-JITTER.html" => [ + "doc/man7/EVP_RAND-JITTER.pod" + ], "doc/html/man7/EVP_RAND-SEED-SRC.html" => [ "doc/man7/EVP_RAND-SEED-SRC.pod" ], @@ -4168,9 +4772,15 @@ our %unified_info = ( "doc/html/man7/EVP_SIGNATURE-HMAC.html" => [ "doc/man7/EVP_SIGNATURE-HMAC.pod" ], + "doc/html/man7/EVP_SIGNATURE-ML-DSA.html" => [ + "doc/man7/EVP_SIGNATURE-ML-DSA.pod" + ], "doc/html/man7/EVP_SIGNATURE-RSA.html" => [ "doc/man7/EVP_SIGNATURE-RSA.pod" ], + "doc/html/man7/EVP_SIGNATURE-SLH-DSA.html" => [ + "doc/man7/EVP_SIGNATURE-SLH-DSA.pod" + ], "doc/html/man7/OSSL_PROVIDER-FIPS.html" => [ "doc/man7/OSSL_PROVIDER-FIPS.pod" ], @@ -4186,6 +4796,9 @@ our %unified_info = ( "doc/html/man7/OSSL_PROVIDER-null.html" => [ "doc/man7/OSSL_PROVIDER-null.pod" ], + "doc/html/man7/OSSL_STORE-winstore.html" => [ + "doc/man7/OSSL_STORE-winstore.pod" + ], "doc/html/man7/RAND.html" => [ "doc/man7/RAND.pod" ], @@ -4198,9 +4811,6 @@ our %unified_info = ( "doc/html/man7/bio.html" => [ "doc/man7/bio.pod" ], - "doc/html/man7/crypto.html" => [ - "doc/man7/crypto.pod" - ], "doc/html/man7/ct.html" => [ "doc/man7/ct.pod" ], @@ -4231,9 +4841,6 @@ our %unified_info = ( "doc/html/man7/life_cycle-rand.html" => [ "doc/man7/life_cycle-rand.pod" ], - "doc/html/man7/migration_guide.html" => [ - "doc/man7/migration_guide.pod" - ], "doc/html/man7/openssl-core.h.html" => [ "doc/man7/openssl-core.h.pod" ], @@ -4249,12 +4856,66 @@ our %unified_info = ( "doc/html/man7/openssl-glossary.html" => [ "doc/man7/openssl-glossary.pod" ], + "doc/html/man7/openssl-qlog.html" => [ + "doc/man7/openssl-qlog.pod" + ], + "doc/html/man7/openssl-quic-concurrency.html" => [ + "doc/man7/openssl-quic-concurrency.pod" + ], + "doc/html/man7/openssl-quic.html" => [ + "doc/man7/openssl-quic.pod" + ], "doc/html/man7/openssl-threads.html" => [ "doc/man7/openssl-threads.pod" ], "doc/html/man7/openssl_user_macros.html" => [ "doc/man7/openssl_user_macros.pod" ], + "doc/html/man7/ossl-guide-introduction.html" => [ + "doc/man7/ossl-guide-introduction.pod" + ], + "doc/html/man7/ossl-guide-libcrypto-introduction.html" => [ + "doc/man7/ossl-guide-libcrypto-introduction.pod" + ], + "doc/html/man7/ossl-guide-libraries-introduction.html" => [ + "doc/man7/ossl-guide-libraries-introduction.pod" + ], + "doc/html/man7/ossl-guide-libssl-introduction.html" => [ + "doc/man7/ossl-guide-libssl-introduction.pod" + ], + "doc/html/man7/ossl-guide-migration.html" => [ + "doc/man7/ossl-guide-migration.pod" + ], + "doc/html/man7/ossl-guide-quic-client-block.html" => [ + "doc/man7/ossl-guide-quic-client-block.pod" + ], + "doc/html/man7/ossl-guide-quic-client-non-block.html" => [ + "doc/man7/ossl-guide-quic-client-non-block.pod" + ], + "doc/html/man7/ossl-guide-quic-introduction.html" => [ + "doc/man7/ossl-guide-quic-introduction.pod" + ], + "doc/html/man7/ossl-guide-quic-multi-stream.html" => [ + "doc/man7/ossl-guide-quic-multi-stream.pod" + ], + "doc/html/man7/ossl-guide-quic-server-block.html" => [ + "doc/man7/ossl-guide-quic-server-block.pod" + ], + "doc/html/man7/ossl-guide-quic-server-non-block.html" => [ + "doc/man7/ossl-guide-quic-server-non-block.pod" + ], + "doc/html/man7/ossl-guide-tls-client-block.html" => [ + "doc/man7/ossl-guide-tls-client-block.pod" + ], + "doc/html/man7/ossl-guide-tls-client-non-block.html" => [ + "doc/man7/ossl-guide-tls-client-non-block.pod" + ], + "doc/html/man7/ossl-guide-tls-introduction.html" => [ + "doc/man7/ossl-guide-tls-introduction.pod" + ], + "doc/html/man7/ossl-guide-tls-server-block.html" => [ + "doc/man7/ossl-guide-tls-server-block.pod" + ], "doc/html/man7/ossl_store-file.html" => [ "doc/man7/ossl_store-file.pod" ], @@ -4309,6 +4970,9 @@ our %unified_info = ( "doc/html/man7/provider-signature.html" => [ "doc/man7/provider-signature.pod" ], + "doc/html/man7/provider-skeymgmt.html" => [ + "doc/man7/provider-skeymgmt.pod" + ], "doc/html/man7/provider-storemgmt.html" => [ "doc/man7/provider-storemgmt.pod" ], @@ -4318,9 +4982,6 @@ our %unified_info = ( "doc/html/man7/proxy-certificates.html" => [ "doc/man7/proxy-certificates.pod" ], - "doc/html/man7/ssl.html" => [ - "doc/man7/ssl.pod" - ], "doc/html/man7/x509.html" => [ "doc/man7/x509.pod" ], @@ -4468,6 +5129,9 @@ our %unified_info = ( "doc/man/man1/openssl-sess_id.1" => [ "doc/man1/openssl-sess_id.pod" ], + "doc/man/man1/openssl-skeyutl.1" => [ + "doc/man1/openssl-skeyutl.pod" + ], "doc/man/man1/openssl-smime.1" => [ "doc/man1/openssl-smime.pod" ], @@ -4609,6 +5273,9 @@ our %unified_info = ( "doc/man/man3/BIO_get_ex_new_index.3" => [ "doc/man3/BIO_get_ex_new_index.pod" ], + "doc/man/man3/BIO_get_rpoll_descriptor.3" => [ + "doc/man3/BIO_get_rpoll_descriptor.pod" + ], "doc/man/man3/BIO_meth_new.3" => [ "doc/man3/BIO_meth_new.pod" ], @@ -4645,6 +5312,9 @@ our %unified_info = ( "doc/man/man3/BIO_s_datagram.3" => [ "doc/man3/BIO_s_datagram.pod" ], + "doc/man/man3/BIO_s_dgram_pair.3" => [ + "doc/man3/BIO_s_dgram_pair.pod" + ], "doc/man/man3/BIO_s_fd.3" => [ "doc/man3/BIO_s_fd.pod" ], @@ -4660,6 +5330,9 @@ our %unified_info = ( "doc/man/man3/BIO_s_socket.3" => [ "doc/man3/BIO_s_socket.pod" ], + "doc/man/man3/BIO_sendmmsg.3" => [ + "doc/man3/BIO_sendmmsg.pod" + ], "doc/man/man3/BIO_set_callback.3" => [ "doc/man3/BIO_set_callback.pod" ], @@ -4732,6 +5405,9 @@ our %unified_info = ( "doc/man/man3/BUF_MEM_new.3" => [ "doc/man3/BUF_MEM_new.pod" ], + "doc/man/man3/CMAC_CTX.3" => [ + "doc/man3/CMAC_CTX.pod" + ], "doc/man/man3/CMS_EncryptedData_decrypt.3" => [ "doc/man3/CMS_EncryptedData_decrypt.pod" ], @@ -4798,6 +5474,9 @@ our %unified_info = ( "doc/man/man3/CMS_verify_receipt.3" => [ "doc/man3/CMS_verify_receipt.pod" ], + "doc/man/man3/COMP_CTX_new.3" => [ + "doc/man3/COMP_CTX_new.pod" + ], "doc/man/man3/CONF_modules_free.3" => [ "doc/man3/CONF_modules_free.pod" ], @@ -4897,6 +5576,12 @@ our %unified_info = ( "doc/man/man3/DTLS_set_timer_cb.3" => [ "doc/man3/DTLS_set_timer_cb.pod" ], + "doc/man/man3/DTLSv1_get_timeout.3" => [ + "doc/man3/DTLSv1_get_timeout.pod" + ], + "doc/man/man3/DTLSv1_handle_timeout.3" => [ + "doc/man3/DTLSv1_handle_timeout.pod" + ], "doc/man/man3/DTLSv1_listen.3" => [ "doc/man3/DTLSv1_listen.pod" ], @@ -5035,6 +5720,9 @@ our %unified_info = ( "doc/man/man3/EVP_PKEY_CTX_get0_pkey.3" => [ "doc/man3/EVP_PKEY_CTX_get0_pkey.pod" ], + "doc/man/man3/EVP_PKEY_CTX_get_algor.3" => [ + "doc/man3/EVP_PKEY_CTX_get_algor.pod" + ], "doc/man/man3/EVP_PKEY_CTX_new.3" => [ "doc/man3/EVP_PKEY_CTX_new.pod" ], @@ -5152,6 +5840,12 @@ our %unified_info = ( "doc/man/man3/EVP_SIGNATURE.3" => [ "doc/man3/EVP_SIGNATURE.pod" ], + "doc/man/man3/EVP_SKEY.3" => [ + "doc/man3/EVP_SKEY.pod" + ], + "doc/man/man3/EVP_SKEYMGMT.3" => [ + "doc/man3/EVP_SKEYMGMT.pod" + ], "doc/man/man3/EVP_SealInit.3" => [ "doc/man3/EVP_SealInit.pod" ], @@ -5239,6 +5933,9 @@ our %unified_info = ( "doc/man/man3/EVP_whirlpool.3" => [ "doc/man3/EVP_whirlpool.pod" ], + "doc/man/man3/GENERAL_NAME.3" => [ + "doc/man3/GENERAL_NAME.pod" + ], "doc/man/man3/HMAC.3" => [ "doc/man3/HMAC.pod" ], @@ -5311,9 +6008,15 @@ our %unified_info = ( "doc/man/man3/OPENSSL_load_builtin_modules.3" => [ "doc/man3/OPENSSL_load_builtin_modules.pod" ], + "doc/man/man3/OPENSSL_load_u16_le.3" => [ + "doc/man3/OPENSSL_load_u16_le.pod" + ], "doc/man/man3/OPENSSL_malloc.3" => [ "doc/man3/OPENSSL_malloc.pod" ], + "doc/man/man3/OPENSSL_riscvcap.3" => [ + "doc/man3/OPENSSL_riscvcap.pod" + ], "doc/man/man3/OPENSSL_s390xcap.3" => [ "doc/man3/OPENSSL_s390xcap.pod" ], @@ -5329,12 +6032,18 @@ our %unified_info = ( "doc/man/man3/OSSL_CALLBACK.3" => [ "doc/man3/OSSL_CALLBACK.pod" ], + "doc/man/man3/OSSL_CMP_ATAV_set0.3" => [ + "doc/man3/OSSL_CMP_ATAV_set0.pod" + ], "doc/man/man3/OSSL_CMP_CTX_new.3" => [ "doc/man3/OSSL_CMP_CTX_new.pod" ], "doc/man/man3/OSSL_CMP_HDR_get0_transactionID.3" => [ "doc/man3/OSSL_CMP_HDR_get0_transactionID.pod" ], + "doc/man/man3/OSSL_CMP_ITAV_new_caCerts.3" => [ + "doc/man3/OSSL_CMP_ITAV_new_caCerts.pod" + ], "doc/man/man3/OSSL_CMP_ITAV_set0.3" => [ "doc/man3/OSSL_CMP_ITAV_set0.pod" ], @@ -5404,9 +6113,18 @@ our %unified_info = ( "doc/man/man3/OSSL_ENCODER_to_bio.3" => [ "doc/man3/OSSL_ENCODER_to_bio.pod" ], + "doc/man/man3/OSSL_ERR_STATE_save.3" => [ + "doc/man3/OSSL_ERR_STATE_save.pod" + ], "doc/man/man3/OSSL_ESS_check_signing_certs.3" => [ "doc/man3/OSSL_ESS_check_signing_certs.pod" ], + "doc/man/man3/OSSL_GENERAL_NAMES_print.3" => [ + "doc/man3/OSSL_GENERAL_NAMES_print.pod" + ], + "doc/man/man3/OSSL_HPKE_CTX_new.3" => [ + "doc/man3/OSSL_HPKE_CTX_new.pod" + ], "doc/man/man3/OSSL_HTTP_REQ_CTX.3" => [ "doc/man3/OSSL_HTTP_REQ_CTX.pod" ], @@ -5416,12 +6134,24 @@ our %unified_info = ( "doc/man/man3/OSSL_HTTP_transfer.3" => [ "doc/man3/OSSL_HTTP_transfer.pod" ], + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX.3" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX.pod" + ], + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX_print.3" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX_print.pod" + ], + "doc/man/man3/OSSL_INDICATOR_set_callback.3" => [ + "doc/man3/OSSL_INDICATOR_set_callback.pod" + ], "doc/man/man3/OSSL_ITEM.3" => [ "doc/man3/OSSL_ITEM.pod" ], "doc/man/man3/OSSL_LIB_CTX.3" => [ "doc/man3/OSSL_LIB_CTX.pod" ], + "doc/man/man3/OSSL_LIB_CTX_set_conf_diagnostics.3" => [ + "doc/man3/OSSL_LIB_CTX_set_conf_diagnostics.pod" + ], "doc/man/man3/OSSL_PARAM.3" => [ "doc/man3/OSSL_PARAM.pod" ], @@ -5437,9 +6167,15 @@ our %unified_info = ( "doc/man/man3/OSSL_PARAM_int.3" => [ "doc/man3/OSSL_PARAM_int.pod" ], + "doc/man/man3/OSSL_PARAM_print_to_bio.3" => [ + "doc/man3/OSSL_PARAM_print_to_bio.pod" + ], "doc/man/man3/OSSL_PROVIDER.3" => [ "doc/man3/OSSL_PROVIDER.pod" ], + "doc/man/man3/OSSL_QUIC_client_method.3" => [ + "doc/man3/OSSL_QUIC_client_method.pod" + ], "doc/man/man3/OSSL_SELF_TEST_new.3" => [ "doc/man3/OSSL_SELF_TEST_new.pod" ], @@ -5464,6 +6200,9 @@ our %unified_info = ( "doc/man/man3/OSSL_STORE_open.3" => [ "doc/man3/OSSL_STORE_open.pod" ], + "doc/man/man3/OSSL_sleep.3" => [ + "doc/man3/OSSL_sleep.pod" + ], "doc/man/man3/OSSL_trace_enabled.3" => [ "doc/man3/OSSL_trace_enabled.pod" ], @@ -5479,6 +6218,9 @@ our %unified_info = ( "doc/man/man3/OpenSSL_version.3" => [ "doc/man3/OpenSSL_version.pod" ], + "doc/man/man3/PBMAC1_get1_pbkdf2_param.3" => [ + "doc/man3/PBMAC1_get1_pbkdf2_param.pod" + ], "doc/man/man3/PEM_X509_INFO_read_bio_ex.3" => [ "doc/man3/PEM_X509_INFO_read_bio_ex.pod" ], @@ -5515,6 +6257,9 @@ our %unified_info = ( "doc/man/man3/PKCS12_SAFEBAG_get1_cert.3" => [ "doc/man3/PKCS12_SAFEBAG_get1_cert.pod" ], + "doc/man/man3/PKCS12_SAFEBAG_set0_attrs.3" => [ + "doc/man3/PKCS12_SAFEBAG_set0_attrs.pod" + ], "doc/man/man3/PKCS12_add1_attr_by_NID.3" => [ "doc/man3/PKCS12_add1_attr_by_NID.pod" ], @@ -5788,6 +6533,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set0_CA_list.3" => [ "doc/man3/SSL_CTX_set0_CA_list.pod" ], + "doc/man/man3/SSL_CTX_set1_cert_comp_preference.3" => [ + "doc/man3/SSL_CTX_set1_cert_comp_preference.pod" + ], "doc/man/man3/SSL_CTX_set1_curves.3" => [ "doc/man3/SSL_CTX_set1_curves.pod" ], @@ -5827,6 +6575,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_default_passwd_cb.3" => [ "doc/man3/SSL_CTX_set_default_passwd_cb.pod" ], + "doc/man/man3/SSL_CTX_set_domain_flags.3" => [ + "doc/man3/SSL_CTX_set_domain_flags.pod" + ], "doc/man/man3/SSL_CTX_set_generate_session_id.3" => [ "doc/man3/SSL_CTX_set_generate_session_id.pod" ], @@ -5848,6 +6599,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_msg_callback.3" => [ "doc/man3/SSL_CTX_set_msg_callback.pod" ], + "doc/man/man3/SSL_CTX_set_new_pending_conn_cb.3" => [ + "doc/man3/SSL_CTX_set_new_pending_conn_cb.pod" + ], "doc/man/man3/SSL_CTX_set_num_tickets.3" => [ "doc/man3/SSL_CTX_set_num_tickets.pod" ], @@ -5962,6 +6716,9 @@ our %unified_info = ( "doc/man/man3/SSL_accept.3" => [ "doc/man3/SSL_accept.pod" ], + "doc/man/man3/SSL_accept_stream.3" => [ + "doc/man3/SSL_accept_stream.pod" + ], "doc/man/man3/SSL_alert_type_string.3" => [ "doc/man3/SSL_alert_type_string.pod" ], @@ -5989,9 +6746,21 @@ our %unified_info = ( "doc/man/man3/SSL_free.3" => [ "doc/man3/SSL_free.pod" ], + "doc/man/man3/SSL_get0_connection.3" => [ + "doc/man3/SSL_get0_connection.pod" + ], + "doc/man/man3/SSL_get0_group_name.3" => [ + "doc/man3/SSL_get0_group_name.pod" + ], + "doc/man/man3/SSL_get0_peer_rpk.3" => [ + "doc/man3/SSL_get0_peer_rpk.pod" + ], "doc/man/man3/SSL_get0_peer_scts.3" => [ "doc/man3/SSL_get0_peer_scts.pod" ], + "doc/man/man3/SSL_get1_builtin_sigalgs.3" => [ + "doc/man3/SSL_get1_builtin_sigalgs.pod" + ], "doc/man/man3/SSL_get_SSL_CTX.3" => [ "doc/man3/SSL_get_SSL_CTX.pod" ], @@ -6007,6 +6776,9 @@ our %unified_info = ( "doc/man/man3/SSL_get_client_random.3" => [ "doc/man3/SSL_get_client_random.pod" ], + "doc/man/man3/SSL_get_conn_close_info.3" => [ + "doc/man3/SSL_get_conn_close_info.pod" + ], "doc/man/man3/SSL_get_current_cipher.3" => [ "doc/man3/SSL_get_current_cipher.pod" ], @@ -6016,12 +6788,18 @@ our %unified_info = ( "doc/man/man3/SSL_get_error.3" => [ "doc/man3/SSL_get_error.pod" ], + "doc/man/man3/SSL_get_event_timeout.3" => [ + "doc/man3/SSL_get_event_timeout.pod" + ], "doc/man/man3/SSL_get_extms_support.3" => [ "doc/man3/SSL_get_extms_support.pod" ], "doc/man/man3/SSL_get_fd.3" => [ "doc/man3/SSL_get_fd.pod" ], + "doc/man/man3/SSL_get_handshake_rtt.3" => [ + "doc/man3/SSL_get_handshake_rtt.pod" + ], "doc/man/man3/SSL_get_peer_cert_chain.3" => [ "doc/man3/SSL_get_peer_cert_chain.pod" ], @@ -6040,12 +6818,24 @@ our %unified_info = ( "doc/man/man3/SSL_get_rbio.3" => [ "doc/man3/SSL_get_rbio.pod" ], + "doc/man/man3/SSL_get_rpoll_descriptor.3" => [ + "doc/man3/SSL_get_rpoll_descriptor.pod" + ], "doc/man/man3/SSL_get_session.3" => [ "doc/man3/SSL_get_session.pod" ], "doc/man/man3/SSL_get_shared_sigalgs.3" => [ "doc/man3/SSL_get_shared_sigalgs.pod" ], + "doc/man/man3/SSL_get_stream_id.3" => [ + "doc/man3/SSL_get_stream_id.pod" + ], + "doc/man/man3/SSL_get_stream_read_state.3" => [ + "doc/man3/SSL_get_stream_read_state.pod" + ], + "doc/man/man3/SSL_get_value_uint.3" => [ + "doc/man3/SSL_get_value_uint.pod" + ], "doc/man/man3/SSL_get_verify_result.3" => [ "doc/man3/SSL_get_verify_result.pod" ], @@ -6055,9 +6845,15 @@ our %unified_info = ( "doc/man/man3/SSL_group_to_name.3" => [ "doc/man3/SSL_group_to_name.pod" ], + "doc/man/man3/SSL_handle_events.3" => [ + "doc/man3/SSL_handle_events.pod" + ], "doc/man/man3/SSL_in_init.3" => [ "doc/man3/SSL_in_init.pod" ], + "doc/man/man3/SSL_inject_net_dgram.3" => [ + "doc/man3/SSL_inject_net_dgram.pod" + ], "doc/man/man3/SSL_key_update.3" => [ "doc/man3/SSL_key_update.pod" ], @@ -6070,9 +6866,21 @@ our %unified_info = ( "doc/man/man3/SSL_new.3" => [ "doc/man3/SSL_new.pod" ], + "doc/man/man3/SSL_new_domain.3" => [ + "doc/man3/SSL_new_domain.pod" + ], + "doc/man/man3/SSL_new_listener.3" => [ + "doc/man3/SSL_new_listener.pod" + ], + "doc/man/man3/SSL_new_stream.3" => [ + "doc/man3/SSL_new_stream.pod" + ], "doc/man/man3/SSL_pending.3" => [ "doc/man3/SSL_pending.pod" ], + "doc/man/man3/SSL_poll.3" => [ + "doc/man3/SSL_poll.pod" + ], "doc/man/man3/SSL_read.3" => [ "doc/man3/SSL_read.pod" ], @@ -6088,24 +6896,45 @@ our %unified_info = ( "doc/man/man3/SSL_set1_host.3" => [ "doc/man3/SSL_set1_host.pod" ], + "doc/man/man3/SSL_set1_initial_peer_addr.3" => [ + "doc/man3/SSL_set1_initial_peer_addr.pod" + ], + "doc/man/man3/SSL_set1_server_cert_type.3" => [ + "doc/man3/SSL_set1_server_cert_type.pod" + ], "doc/man/man3/SSL_set_async_callback.3" => [ "doc/man3/SSL_set_async_callback.pod" ], "doc/man/man3/SSL_set_bio.3" => [ "doc/man3/SSL_set_bio.pod" ], + "doc/man/man3/SSL_set_blocking_mode.3" => [ + "doc/man3/SSL_set_blocking_mode.pod" + ], "doc/man/man3/SSL_set_connect_state.3" => [ "doc/man3/SSL_set_connect_state.pod" ], + "doc/man/man3/SSL_set_default_stream_mode.3" => [ + "doc/man3/SSL_set_default_stream_mode.pod" + ], "doc/man/man3/SSL_set_fd.3" => [ "doc/man3/SSL_set_fd.pod" ], + "doc/man/man3/SSL_set_incoming_stream_policy.3" => [ + "doc/man3/SSL_set_incoming_stream_policy.pod" + ], + "doc/man/man3/SSL_set_quic_tls_cbs.3" => [ + "doc/man3/SSL_set_quic_tls_cbs.pod" + ], "doc/man/man3/SSL_set_retry_verify.3" => [ "doc/man3/SSL_set_retry_verify.pod" ], "doc/man/man3/SSL_set_session.3" => [ "doc/man3/SSL_set_session.pod" ], + "doc/man/man3/SSL_set_session_secret_cb.3" => [ + "doc/man3/SSL_set_session_secret_cb.pod" + ], "doc/man/man3/SSL_set_shutdown.3" => [ "doc/man3/SSL_set_shutdown.pod" ], @@ -6118,6 +6947,12 @@ our %unified_info = ( "doc/man/man3/SSL_state_string.3" => [ "doc/man3/SSL_state_string.pod" ], + "doc/man/man3/SSL_stream_conclude.3" => [ + "doc/man3/SSL_stream_conclude.pod" + ], + "doc/man/man3/SSL_stream_reset.3" => [ + "doc/man3/SSL_stream_reset.pod" + ], "doc/man/man3/SSL_want.3" => [ "doc/man3/SSL_want.pod" ], @@ -6127,8 +6962,8 @@ our %unified_info = ( "doc/man/man3/TS_RESP_CTX_new.3" => [ "doc/man3/TS_RESP_CTX_new.pod" ], - "doc/man/man3/TS_VERIFY_CTX_set_certs.3" => [ - "doc/man3/TS_VERIFY_CTX_set_certs.pod" + "doc/man/man3/TS_VERIFY_CTX.3" => [ + "doc/man3/TS_VERIFY_CTX.pod" ], "doc/man/man3/UI_STRING.3" => [ "doc/man3/UI_STRING.pod" @@ -6148,6 +6983,21 @@ our %unified_info = ( "doc/man/man3/X509V3_set_ctx.3" => [ "doc/man3/X509V3_set_ctx.pod" ], + "doc/man/man3/X509_ACERT_add1_attr.3" => [ + "doc/man3/X509_ACERT_add1_attr.pod" + ], + "doc/man/man3/X509_ACERT_add_attr_nconf.3" => [ + "doc/man3/X509_ACERT_add_attr_nconf.pod" + ], + "doc/man/man3/X509_ACERT_get0_holder_baseCertId.3" => [ + "doc/man3/X509_ACERT_get0_holder_baseCertId.pod" + ], + "doc/man/man3/X509_ACERT_get_attr.3" => [ + "doc/man3/X509_ACERT_get_attr.pod" + ], + "doc/man/man3/X509_ACERT_print_ex.3" => [ + "doc/man3/X509_ACERT_print_ex.pod" + ], "doc/man/man3/X509_ALGOR_dup.3" => [ "doc/man3/X509_ALGOR_dup.pod" ], @@ -6196,6 +7046,9 @@ our %unified_info = ( "doc/man/man3/X509_SIG_get0.3" => [ "doc/man3/X509_SIG_get0.pod" ], + "doc/man/man3/X509_STORE_CTX_get_by_subject.3" => [ + "doc/man3/X509_STORE_CTX_get_by_subject.pod" + ], "doc/man/man3/X509_STORE_CTX_get_error.3" => [ "doc/man3/X509_STORE_CTX_get_error.pod" ], @@ -6262,6 +7115,9 @@ our %unified_info = ( "doc/man/man3/X509_get0_uids.3" => [ "doc/man3/X509_get0_uids.pod" ], + "doc/man/man3/X509_get_default_cert_file.3" => [ + "doc/man3/X509_get_default_cert_file.pod" + ], "doc/man/man3/X509_get_extension_flags.3" => [ "doc/man3/X509_get_extension_flags.pod" ], @@ -6385,9 +7241,15 @@ our %unified_info = ( "doc/man/man7/EVP_CIPHER-SM4.7" => [ "doc/man7/EVP_CIPHER-SM4.pod" ], + "doc/man/man7/EVP_KDF-ARGON2.7" => [ + "doc/man7/EVP_KDF-ARGON2.pod" + ], "doc/man/man7/EVP_KDF-HKDF.7" => [ "doc/man7/EVP_KDF-HKDF.pod" ], + "doc/man/man7/EVP_KDF-HMAC-DRBG.7" => [ + "doc/man7/EVP_KDF-HMAC-DRBG.pod" + ], "doc/man/man7/EVP_KDF-KB.7" => [ "doc/man7/EVP_KDF-KB.pod" ], @@ -6403,6 +7265,9 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-PKCS12KDF.7" => [ "doc/man7/EVP_KDF-PKCS12KDF.pod" ], + "doc/man/man7/EVP_KDF-PVKKDF.7" => [ + "doc/man7/EVP_KDF-PVKKDF.pod" + ], "doc/man/man7/EVP_KDF-SCRYPT.7" => [ "doc/man7/EVP_KDF-SCRYPT.pod" ], @@ -6427,9 +7292,18 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-X963.7" => [ "doc/man7/EVP_KDF-X963.pod" ], + "doc/man/man7/EVP_KEM-EC.7" => [ + "doc/man7/EVP_KEM-EC.pod" + ], + "doc/man/man7/EVP_KEM-ML-KEM.7" => [ + "doc/man7/EVP_KEM-ML-KEM.pod" + ], "doc/man/man7/EVP_KEM-RSA.7" => [ "doc/man7/EVP_KEM-RSA.pod" ], + "doc/man/man7/EVP_KEM-X25519.7" => [ + "doc/man7/EVP_KEM-X25519.pod" + ], "doc/man/man7/EVP_KEYEXCH-DH.7" => [ "doc/man7/EVP_KEYEXCH-DH.pod" ], @@ -6463,6 +7337,9 @@ our %unified_info = ( "doc/man/man7/EVP_MD-BLAKE2.7" => [ "doc/man7/EVP_MD-BLAKE2.pod" ], + "doc/man/man7/EVP_MD-KECCAK.7" => [ + "doc/man7/EVP_MD-KECCAK.pod" + ], "doc/man/man7/EVP_MD-MD2.7" => [ "doc/man7/EVP_MD-MD2.pod" ], @@ -6520,15 +7397,27 @@ our %unified_info = ( "doc/man/man7/EVP_PKEY-HMAC.7" => [ "doc/man7/EVP_PKEY-HMAC.pod" ], + "doc/man/man7/EVP_PKEY-ML-DSA.7" => [ + "doc/man7/EVP_PKEY-ML-DSA.pod" + ], + "doc/man/man7/EVP_PKEY-ML-KEM.7" => [ + "doc/man7/EVP_PKEY-ML-KEM.pod" + ], "doc/man/man7/EVP_PKEY-RSA.7" => [ "doc/man7/EVP_PKEY-RSA.pod" ], + "doc/man/man7/EVP_PKEY-SLH-DSA.7" => [ + "doc/man7/EVP_PKEY-SLH-DSA.pod" + ], "doc/man/man7/EVP_PKEY-SM2.7" => [ "doc/man7/EVP_PKEY-SM2.pod" ], "doc/man/man7/EVP_PKEY-X25519.7" => [ "doc/man7/EVP_PKEY-X25519.pod" ], + "doc/man/man7/EVP_RAND-CRNG-TEST.7" => [ + "doc/man7/EVP_RAND-CRNG-TEST.pod" + ], "doc/man/man7/EVP_RAND-CTR-DRBG.7" => [ "doc/man7/EVP_RAND-CTR-DRBG.pod" ], @@ -6538,6 +7427,9 @@ our %unified_info = ( "doc/man/man7/EVP_RAND-HMAC-DRBG.7" => [ "doc/man7/EVP_RAND-HMAC-DRBG.pod" ], + "doc/man/man7/EVP_RAND-JITTER.7" => [ + "doc/man7/EVP_RAND-JITTER.pod" + ], "doc/man/man7/EVP_RAND-SEED-SRC.7" => [ "doc/man7/EVP_RAND-SEED-SRC.pod" ], @@ -6559,9 +7451,15 @@ our %unified_info = ( "doc/man/man7/EVP_SIGNATURE-HMAC.7" => [ "doc/man7/EVP_SIGNATURE-HMAC.pod" ], + "doc/man/man7/EVP_SIGNATURE-ML-DSA.7" => [ + "doc/man7/EVP_SIGNATURE-ML-DSA.pod" + ], "doc/man/man7/EVP_SIGNATURE-RSA.7" => [ "doc/man7/EVP_SIGNATURE-RSA.pod" ], + "doc/man/man7/EVP_SIGNATURE-SLH-DSA.7" => [ + "doc/man7/EVP_SIGNATURE-SLH-DSA.pod" + ], "doc/man/man7/OSSL_PROVIDER-FIPS.7" => [ "doc/man7/OSSL_PROVIDER-FIPS.pod" ], @@ -6577,6 +7475,9 @@ our %unified_info = ( "doc/man/man7/OSSL_PROVIDER-null.7" => [ "doc/man7/OSSL_PROVIDER-null.pod" ], + "doc/man/man7/OSSL_STORE-winstore.7" => [ + "doc/man7/OSSL_STORE-winstore.pod" + ], "doc/man/man7/RAND.7" => [ "doc/man7/RAND.pod" ], @@ -6589,9 +7490,6 @@ our %unified_info = ( "doc/man/man7/bio.7" => [ "doc/man7/bio.pod" ], - "doc/man/man7/crypto.7" => [ - "doc/man7/crypto.pod" - ], "doc/man/man7/ct.7" => [ "doc/man7/ct.pod" ], @@ -6622,9 +7520,6 @@ our %unified_info = ( "doc/man/man7/life_cycle-rand.7" => [ "doc/man7/life_cycle-rand.pod" ], - "doc/man/man7/migration_guide.7" => [ - "doc/man7/migration_guide.pod" - ], "doc/man/man7/openssl-core.h.7" => [ "doc/man7/openssl-core.h.pod" ], @@ -6640,12 +7535,66 @@ our %unified_info = ( "doc/man/man7/openssl-glossary.7" => [ "doc/man7/openssl-glossary.pod" ], + "doc/man/man7/openssl-qlog.7" => [ + "doc/man7/openssl-qlog.pod" + ], + "doc/man/man7/openssl-quic-concurrency.7" => [ + "doc/man7/openssl-quic-concurrency.pod" + ], + "doc/man/man7/openssl-quic.7" => [ + "doc/man7/openssl-quic.pod" + ], "doc/man/man7/openssl-threads.7" => [ "doc/man7/openssl-threads.pod" ], "doc/man/man7/openssl_user_macros.7" => [ "doc/man7/openssl_user_macros.pod" ], + "doc/man/man7/ossl-guide-introduction.7" => [ + "doc/man7/ossl-guide-introduction.pod" + ], + "doc/man/man7/ossl-guide-libcrypto-introduction.7" => [ + "doc/man7/ossl-guide-libcrypto-introduction.pod" + ], + "doc/man/man7/ossl-guide-libraries-introduction.7" => [ + "doc/man7/ossl-guide-libraries-introduction.pod" + ], + "doc/man/man7/ossl-guide-libssl-introduction.7" => [ + "doc/man7/ossl-guide-libssl-introduction.pod" + ], + "doc/man/man7/ossl-guide-migration.7" => [ + "doc/man7/ossl-guide-migration.pod" + ], + "doc/man/man7/ossl-guide-quic-client-block.7" => [ + "doc/man7/ossl-guide-quic-client-block.pod" + ], + "doc/man/man7/ossl-guide-quic-client-non-block.7" => [ + "doc/man7/ossl-guide-quic-client-non-block.pod" + ], + "doc/man/man7/ossl-guide-quic-introduction.7" => [ + "doc/man7/ossl-guide-quic-introduction.pod" + ], + "doc/man/man7/ossl-guide-quic-multi-stream.7" => [ + "doc/man7/ossl-guide-quic-multi-stream.pod" + ], + "doc/man/man7/ossl-guide-quic-server-block.7" => [ + "doc/man7/ossl-guide-quic-server-block.pod" + ], + "doc/man/man7/ossl-guide-quic-server-non-block.7" => [ + "doc/man7/ossl-guide-quic-server-non-block.pod" + ], + "doc/man/man7/ossl-guide-tls-client-block.7" => [ + "doc/man7/ossl-guide-tls-client-block.pod" + ], + "doc/man/man7/ossl-guide-tls-client-non-block.7" => [ + "doc/man7/ossl-guide-tls-client-non-block.pod" + ], + "doc/man/man7/ossl-guide-tls-introduction.7" => [ + "doc/man7/ossl-guide-tls-introduction.pod" + ], + "doc/man/man7/ossl-guide-tls-server-block.7" => [ + "doc/man7/ossl-guide-tls-server-block.pod" + ], "doc/man/man7/ossl_store-file.7" => [ "doc/man7/ossl_store-file.pod" ], @@ -6700,6 +7649,9 @@ our %unified_info = ( "doc/man/man7/provider-signature.7" => [ "doc/man7/provider-signature.pod" ], + "doc/man/man7/provider-skeymgmt.7" => [ + "doc/man7/provider-skeymgmt.pod" + ], "doc/man/man7/provider-storemgmt.7" => [ "doc/man7/provider-storemgmt.pod" ], @@ -6709,9 +7661,6 @@ our %unified_info = ( "doc/man/man7/proxy-certificates.7" => [ "doc/man7/proxy-certificates.pod" ], - "doc/man/man7/ssl.7" => [ - "doc/man7/ssl.pod" - ], "doc/man/man7/x509.7" => [ "doc/man7/x509.pod" ], @@ -6891,6 +7840,10 @@ our %unified_info = ( "doc/man1/openssl-sess_id.pod.in", "doc/perlvars.pm" ], + "doc/man1/openssl-skeyutl.pod" => [ + "doc/man1/openssl-skeyutl.pod.in", + "doc/perlvars.pm" + ], "doc/man1/openssl-smime.pod" => [ "doc/man1/openssl-smime.pod.in", "doc/perlvars.pm" @@ -6930,6 +7883,27 @@ our %unified_info = ( "doc/man7/openssl_user_macros.pod" => [ "doc/man7/openssl_user_macros.pod.in" ], + "exporters/OpenSSLConfig.cmake" => [ + "installdata.pm" + ], + "exporters/OpenSSLConfigVersion.cmake" => [ + "exporters/OpenSSLConfig.cmake", + "installdata.pm" + ], + "exporters/libcrypto.pc" => [ + "installdata.pm" + ], + "exporters/libssl.pc" => [ + "installdata.pm" + ], + "exporters/openssl.pc" => [ + "exporters/libcrypto.pc", + "exporters/libssl.pc", + "installdata.pm" + ], + "fuzz/acert-test" => [ + "libcrypto" + ], "fuzz/asn1-test" => [ "libcrypto", "libssl" @@ -6962,17 +7936,85 @@ our %unified_info = ( "fuzz/ct-test" => [ "libcrypto" ], + "fuzz/decoder-test" => [ + "libcrypto" + ], + "fuzz/dtlsclient-test" => [ + "libcrypto", + "libssl" + ], + "fuzz/dtlsserver-test" => [ + "libcrypto", + "libssl" + ], + "fuzz/hashtable-test" => [ + "libcrypto.a" + ], + "fuzz/ml-dsa-test" => [ + "libcrypto.a" + ], + "fuzz/ml-kem-test" => [ + "libcrypto.a" + ], + "fuzz/pem-test" => [ + "libcrypto.a" + ], + "fuzz/provider-test" => [ + "libcrypto" + ], + "fuzz/punycode-test" => [ + "libcrypto.a" + ], + "fuzz/quic-client-test" => [ + "libcrypto.a", + "libssl.a" + ], + "fuzz/quic-lcidm-test" => [ + "libcrypto.a", + "libssl.a" + ], + "fuzz/quic-rcidm-test" => [ + "libcrypto.a", + "libssl.a" + ], + "fuzz/quic-server-test" => [ + "libcrypto.a", + "libssl.a" + ], + "fuzz/quic-srtm-test" => [ + "libcrypto.a", + "libssl.a" + ], "fuzz/server-test" => [ "libcrypto", "libssl" ], + "fuzz/slh-dsa-test" => [ + "libcrypto.a" + ], + "fuzz/smime-test" => [ + "libcrypto", + "libssl" + ], + "fuzz/v3name-test" => [ + "libcrypto.a" + ], "fuzz/x509-test" => [ "libcrypto" ], + "include/internal/param_names.h" => [ + "util/perl|OpenSSL/paramnames.pm" + ], + "include/openssl/core_names.h" => [ + "util/perl|OpenSSL/paramnames.pm" + ], "libcrypto.ld" => [ "configdata.pm", "util/perl/OpenSSL/Ordinals.pm" ], + "libcrypto.pc" => [ + "builddata.pm" + ], "libssl" => [ "libcrypto" ], @@ -6980,6 +8022,14 @@ our %unified_info = ( "configdata.pm", "util/perl/OpenSSL/Ordinals.pm" ], + "libssl.pc" => [ + "builddata.pm" + ], + "openssl.pc" => [ + "builddata.pm", + "libcrypto.pc", + "libssl.pc" + ], "providers/common/der/der_digests_gen.c" => [ "providers/common/der/DIGESTS.asn1", "providers/common/der/NIST.asn1", @@ -6997,11 +8047,19 @@ our %unified_info = ( "providers/common/der/ECX.asn1", "providers/common/der/oids_to_c.pm" ], + "providers/common/der/der_ml_dsa_gen.c" => [ + "providers/common/der/ML_DSA.asn1", + "providers/common/der/oids_to_c.pm" + ], "providers/common/der/der_rsa_gen.c" => [ "providers/common/der/NIST.asn1", "providers/common/der/RSA.asn1", "providers/common/der/oids_to_c.pm" ], + "providers/common/der/der_slh_dsa_gen.c" => [ + "providers/common/der/SLH_DSA.asn1", + "providers/common/der/oids_to_c.pm" + ], "providers/common/der/der_sm2_gen.c" => [ "providers/common/der/SM2.asn1", "providers/common/der/oids_to_c.pm" @@ -7041,6 +8099,12 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ecx_key.o" => [ "providers/common/include/prov/der_ecx.h" ], + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o" => [ + "providers/common/include/prov/der_ml_dsa.h" + ], + "providers/common/der/libcommon-lib-der_ml_dsa_key.o" => [ + "providers/common/include/prov/der_ml_dsa.h" + ], "providers/common/der/libcommon-lib-der_rsa_gen.o" => [ "providers/common/include/prov/der_rsa.h" ], @@ -7048,6 +8112,12 @@ our %unified_info = ( "providers/common/include/prov/der_digests.h", "providers/common/include/prov/der_rsa.h" ], + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o" => [ + "providers/common/include/prov/der_slh_dsa.h" + ], + "providers/common/der/libcommon-lib-der_slh_dsa_key.o" => [ + "providers/common/include/prov/der_slh_dsa.h" + ], "providers/common/der/libcommon-lib-der_wrap_gen.o" => [ "providers/common/include/prov/der_wrap.h" ], @@ -7087,11 +8157,19 @@ our %unified_info = ( "providers/common/der/ECX.asn1", "providers/common/der/oids_to_c.pm" ], + "providers/common/include/prov/der_ml_dsa.h" => [ + "providers/common/der/ML_DSA.asn1", + "providers/common/der/oids_to_c.pm" + ], "providers/common/include/prov/der_rsa.h" => [ "providers/common/der/NIST.asn1", "providers/common/der/RSA.asn1", "providers/common/der/oids_to_c.pm" ], + "providers/common/include/prov/der_slh_dsa.h" => [ + "providers/common/der/SLH_DSA.asn1", + "providers/common/der/oids_to_c.pm" + ], "providers/common/include/prov/der_sm2.h" => [ "providers/common/der/SM2.asn1", "providers/common/der/oids_to_c.pm" @@ -7124,9 +8202,15 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-eddsa_sig.o" => [ "providers/common/include/prov/der_ecx.h" ], + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o" => [ + "providers/common/include/prov/der_ml_dsa.h" + ], "providers/implementations/signature/libdefault-lib-rsa_sig.o" => [ "providers/common/include/prov/der_rsa.h" ], + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o" => [ + "providers/common/include/prov/der_slh_dsa.h" + ], "providers/implementations/signature/libdefault-lib-sm2_sig.o" => [ "providers/common/include/prov/der_sm2.h" ], @@ -7139,9 +8223,15 @@ our %unified_info = ( "providers/implementations/signature/libfips-lib-eddsa_sig.o" => [ "providers/common/include/prov/der_ecx.h" ], + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o" => [ + "providers/common/include/prov/der_ml_dsa.h" + ], "providers/implementations/signature/libfips-lib-rsa_sig.o" => [ "providers/common/include/prov/der_rsa.h" ], + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o" => [ + "providers/common/include/prov/der_slh_dsa.h" + ], "providers/legacy" => [ "libcrypto", "providers/liblegacy.a" @@ -7219,6 +8309,14 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/bio_addr_test" => [ + "libcrypto", + "test/libtestutil.a" + ], + "test/bio_base64_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/bio_callback_test" => [ "libcrypto", "test/libtestutil.a" @@ -7227,6 +8325,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/bio_dgram_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/bio_enc_test" => [ "libcrypto", "test/libtestutil.a" @@ -7235,6 +8337,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/bio_meth_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/bio_prefix_text" => [ "libcrypto", "test/libtestutil.a" @@ -7247,6 +8353,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/bio_tfo_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/bioprinttest" => [ "libcrypto", "test/libtestutil.a" @@ -7259,6 +8369,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/build_wincrypt_test" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_aes" => [ "libcrypto", "libssl" @@ -7279,6 +8393,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_byteorder" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_camellia" => [ "libcrypto", "libssl" @@ -7311,10 +8429,6 @@ our %unified_info = ( "libcrypto", "libssl" ], - "test/buildtest_c_core_names" => [ - "libcrypto", - "libssl" - ], "test/buildtest_c_core_object" => [ "libcrypto", "libssl" @@ -7347,6 +8461,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_e_ostime" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_ebcdic" => [ "libcrypto", "libssl" @@ -7383,6 +8501,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_hpke" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_http" => [ "libcrypto", "libssl" @@ -7391,6 +8513,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_indicator" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_kdf" => [ "libcrypto", "libssl" @@ -7411,6 +8537,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_ml_kem" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_modes" => [ "libcrypto", "libssl" @@ -7451,6 +8581,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_quic" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_rand" => [ "libcrypto", "libssl" @@ -7507,6 +8641,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_thread" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_tls1" => [ "libcrypto", "libssl" @@ -7527,10 +8665,23 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/byteorder_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], + "test/ca_internals_test" => [ + "libssl", + "test/libtestutil.a" + ], "test/casttest" => [ "libcrypto", "test/libtestutil.a" ], + "test/cert_comp_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], "test/chacha_internal_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -7644,7 +8795,11 @@ our %unified_info = ( "libssl", "test/libtestutil.a" ], - "test/defltfips_test" => [ + "test/decoder_propq_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], + "test/defltfips_test" => [ "libcrypto", "test/libtestutil.a" ], @@ -7700,6 +8855,8 @@ our %unified_info = ( ], "test/endecode_test" => [ "libcrypto.a", + "providers/libcommon.a", + "providers/liblegacy.a", "test/libtestutil.a" ], "test/endecoder_legacy_test" => [ @@ -7743,6 +8900,10 @@ our %unified_info = ( "test/evp_pkey_ctx_new_from_name" => [ "libcrypto" ], + "test/evp_pkey_dhkem_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/evp_pkey_dparams_test" => [ "libcrypto", "test/libtestutil.a" @@ -7751,10 +8912,18 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/evp_skey_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/evp_test" => [ "libcrypto", "test/libtestutil.a" ], + "test/evp_xof_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/exdatatest" => [ "libcrypto", "test/libtestutil.a" @@ -7793,6 +8962,10 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/hpke_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/http_test" => [ "libcrypto", "test/libtestutil.a" @@ -7805,17 +8978,25 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/json_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], "test/keymgmt_internal_test" => [ "libcrypto.a", "test/libtestutil.a" ], "test/lhash_test" => [ - "libcrypto", + "libcrypto.a", "test/libtestutil.a" ], "test/libtestutil.a" => [ "libcrypto" ], + "test/list_test" => [ + "test/libtestutil.a" + ], "test/localetest" => [ "libcrypto", "test/libtestutil.a" @@ -7828,10 +9009,26 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/membio_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/memleaktest" => [ "libcrypto", "test/libtestutil.a" ], + "test/ml_dsa_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], + "test/ml_kem_evp_extra_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], + "test/ml_kem_internal_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/modes_internal_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -7856,6 +9053,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/pairwise_fail_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/param_build_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -7888,6 +9089,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/pkcs12_api_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/pkcs12_format_test" => [ "libcrypto", "test/libtestutil.a" @@ -7908,6 +9113,11 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/priority_queue_test" => [ + "libcrypto", + "libssl.a", + "test/libtestutil.a" + ], "test/property_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -7920,6 +9130,10 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/provider_default_search_path_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/provider_fallback_test" => [ "libcrypto", "test/libtestutil.a" @@ -7944,12 +9158,122 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/quic_ackm_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_cc_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_cfq_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_client_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_fc_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_fifd_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_lcidm_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_multistream_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_newcid_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_qlog_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_radix_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_rcidm_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_record_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_srt_gen_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_srtm_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_stream_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_tserver_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_txp_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_txpim_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_wire_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quicapitest" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quicfaultstest" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], "test/rand_status_test" => [ "libcrypto", "test/libtestutil.a" ], "test/rand_test" => [ - "libcrypto", + "libcrypto.a", "test/libtestutil.a" ], "test/rc2test" => [ @@ -7964,7 +9288,7 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], - "test/rdrand_sanitytest" => [ + "test/rdcpu_sanitytest" => [ "libcrypto.a", "test/libtestutil.a" ], @@ -7973,6 +9297,11 @@ our %unified_info = ( "libssl", "test/libtestutil.a" ], + "test/rpktest" => [ + "libcrypto", + "libssl", + "test/libtestutil.a" + ], "test/rsa_mp_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -7985,10 +9314,18 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], - "test/sanitytest" => [ + "test/rsa_x931_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], + "test/safe_math_test" => [ "libcrypto", "test/libtestutil.a" ], + "test/sanitytest" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/secmemtest" => [ "libcrypto", "test/libtestutil.a" @@ -8006,6 +9343,10 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/slh_dsa_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/sm2_internal_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -8035,6 +9376,11 @@ our %unified_info = ( "libssl", "test/libtestutil.a" ], + "test/ssl_handshake_rtt_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], "test/ssl_old_test" => [ "libcrypto.a", "libssl.a", @@ -8051,8 +9397,8 @@ our %unified_info = ( "test/libtestutil.a" ], "test/sslapitest" => [ - "libcrypto", - "libssl", + "libcrypto.a", + "libssl.a", "test/libtestutil.a" ], "test/sslbuffertest" => [ @@ -8069,6 +9415,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/strtoultest" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/sysdefaulttest" => [ "libcrypto", "libssl", @@ -8078,8 +9428,12 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/threadpool_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/threadstest" => [ - "libcrypto", + "libcrypto.a", "test/libtestutil.a" ], "test/threadstest_fips" => [ @@ -8090,6 +9444,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/time_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/tls13ccstest" => [ "libcrypto", "libssl", @@ -8100,6 +9458,11 @@ our %unified_info = ( "libssl.a", "test/libtestutil.a" ], + "test/tls13groupselection_test" => [ + "libcrypto", + "libssl", + "test/libtestutil.a" + ], "test/trace_api_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -8137,6 +9500,10 @@ our %unified_info = ( "libssl.a", "test/libtestutil.a" ], + "test/x509_acert_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/x509_check_cert_pkey_test" => [ "libcrypto", "test/libtestutil.a" @@ -8149,6 +9516,18 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/x509_load_cert_file_test" => [ + "libcrypto", + "test/libtestutil.a" + ], + "test/x509_req_test" => [ + "libcrypto", + "test/libtestutil.a" + ], + "test/x509_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/x509_time_test" => [ "libcrypto", "test/libtestutil.a" @@ -8163,9 +9542,13 @@ our %unified_info = ( }, "dirinfo" => { "apps" => { + "deps" => [ + "apps/ca_internals_test-bin-ca.o" + ], "products" => { "bin" => [ - "apps/openssl" + "apps/openssl", + "test/ca_internals_test" ], "script" => [ "apps/CA.pl", @@ -8176,6 +9559,14 @@ our %unified_info = ( "apps/lib" => { "deps" => [ "apps/lib/openssl-bin-cmp_mock_srv.o", + "apps/lib/ca_internals_test-bin-app_libctx.o", + "apps/lib/ca_internals_test-bin-app_provider.o", + "apps/lib/ca_internals_test-bin-app_rand.o", + "apps/lib/ca_internals_test-bin-app_x509.o", + "apps/lib/ca_internals_test-bin-apps.o", + "apps/lib/ca_internals_test-bin-apps_ui.o", + "apps/lib/ca_internals_test-bin-engine.o", + "apps/lib/ca_internals_test-bin-fmt.o", "apps/lib/cmp_client_test-bin-cmp_mock_srv.o", "apps/lib/uitest-bin-apps_ui.o", "apps/lib/libapps-lib-app_libctx.o", @@ -8184,12 +9575,14 @@ our %unified_info = ( "apps/lib/libapps-lib-app_rand.o", "apps/lib/libapps-lib-app_x509.o", "apps/lib/libapps-lib-apps.o", + "apps/lib/libapps-lib-apps_opt_printf.o", "apps/lib/libapps-lib-apps_ui.o", "apps/lib/libapps-lib-columns.o", "apps/lib/libapps-lib-engine.o", "apps/lib/libapps-lib-engine_loader.o", "apps/lib/libapps-lib-fmt.o", "apps/lib/libapps-lib-http_server.o", + "apps/lib/libapps-lib-log.o", "apps/lib/libapps-lib-names.o", "apps/lib/libapps-lib-opt.o", "apps/lib/libapps-lib-s_cb.o", @@ -8200,6 +9593,7 @@ our %unified_info = ( "products" => { "bin" => [ "apps/openssl", + "test/ca_internals_test", "test/cmp_client_test", "test/uitest" ], @@ -8211,8 +9605,12 @@ our %unified_info = ( }, "crypto" => { "deps" => [ + "crypto/asn1_time_test-bin-ctype.o", + "crypto/ca_internals_test-bin-ctype.o", + "crypto/packettest-bin-quic_vlint.o", "crypto/libcrypto-lib-asn1_dsa.o", "crypto/libcrypto-lib-bsearch.o", + "crypto/libcrypto-lib-comp_methods.o", "crypto/libcrypto-lib-context.o", "crypto/libcrypto-lib-core_algorithm.o", "crypto/libcrypto-lib-core_fetch.o", @@ -8222,10 +9620,13 @@ our %unified_info = ( "crypto/libcrypto-lib-cryptlib.o", "crypto/libcrypto-lib-ctype.o", "crypto/libcrypto-lib-cversion.o", + "crypto/libcrypto-lib-defaults.o", "crypto/libcrypto-lib-der_writer.o", + "crypto/libcrypto-lib-deterministic_nonce.o", "crypto/libcrypto-lib-ebcdic.o", "crypto/libcrypto-lib-ex_data.o", "crypto/libcrypto-lib-getenv.o", + "crypto/libcrypto-lib-indicator_core.o", "crypto/libcrypto-lib-info.o", "crypto/libcrypto-lib-init.o", "crypto/libcrypto-lib-initthread.o", @@ -8242,6 +9643,7 @@ our %unified_info = ( "crypto/libcrypto-lib-params.o", "crypto/libcrypto-lib-params_dup.o", "crypto/libcrypto-lib-params_from_text.o", + "crypto/libcrypto-lib-params_idx.o", "crypto/libcrypto-lib-passphrase.o", "crypto/libcrypto-lib-ppccap.o", "crypto/libcrypto-lib-ppccpuid.o", @@ -8251,12 +9653,16 @@ our %unified_info = ( "crypto/libcrypto-lib-provider_core.o", "crypto/libcrypto-lib-provider_predefined.o", "crypto/libcrypto-lib-punycode.o", + "crypto/libcrypto-lib-quic_vlint.o", "crypto/libcrypto-lib-self_test_core.o", + "crypto/libcrypto-lib-sleep.o", "crypto/libcrypto-lib-sparse_array.o", + "crypto/libcrypto-lib-ssl_err.o", "crypto/libcrypto-lib-threads_lib.o", "crypto/libcrypto-lib-threads_none.o", "crypto/libcrypto-lib-threads_pthread.o", "crypto/libcrypto-lib-threads_win.o", + "crypto/libcrypto-lib-time.o", "crypto/libcrypto-lib-trace.o", "crypto/libcrypto-lib-uid.o", "crypto/libfips-lib-asn1_dsa.o", @@ -8278,6 +9684,7 @@ our %unified_info = ( "crypto/libfips-lib-params.o", "crypto/libfips-lib-params_dup.o", "crypto/libfips-lib-params_from_text.o", + "crypto/libfips-lib-params_idx.o", "crypto/libfips-lib-ppccap.o", "crypto/libfips-lib-ppccpuid.o", "crypto/libfips-lib-provider_core.o", @@ -8287,9 +9694,15 @@ our %unified_info = ( "crypto/libfips-lib-threads_lib.o", "crypto/libfips-lib-threads_none.o", "crypto/libfips-lib-threads_pthread.o", - "crypto/libfips-lib-threads_win.o" + "crypto/libfips-lib-threads_win.o", + "crypto/libfips-lib-time.o" ], "products" => { + "bin" => [ + "test/asn1_time_test", + "test/ca_internals_test", + "test/packettest" + ], "lib" => [ "libcrypto", "providers/libfips.a" @@ -8336,6 +9749,8 @@ our %unified_info = ( }, "crypto/asn1" => { "deps" => [ + "crypto/asn1/asn1_time_test-bin-a_time.o", + "crypto/asn1/ca_internals_test-bin-a_time.o", "crypto/asn1/libcrypto-lib-a_bitstr.o", "crypto/asn1/libcrypto-lib-a_d2i_fp.o", "crypto/asn1/libcrypto-lib-a_digest.o", @@ -8402,6 +9817,10 @@ our %unified_info = ( "crypto/asn1/libcrypto-lib-x_val.o" ], "products" => { + "bin" => [ + "test/asn1_time_test", + "test/ca_internals_test" + ], "lib" => [ "libcrypto" ] @@ -8467,6 +9886,7 @@ our %unified_info = ( "crypto/bio/libcrypto-lib-bss_conn.o", "crypto/bio/libcrypto-lib-bss_core.o", "crypto/bio/libcrypto-lib-bss_dgram.o", + "crypto/bio/libcrypto-lib-bss_dgram_pair.o", "crypto/bio/libcrypto-lib-bss_fd.o", "crypto/bio/libcrypto-lib-bss_file.o", "crypto/bio/libcrypto-lib-bss_log.o", @@ -8518,6 +9938,7 @@ our %unified_info = ( "crypto/bn/libcrypto-lib-bn_word.o", "crypto/bn/libcrypto-lib-bn_x931p.o", "crypto/bn/libcrypto-lib-ppc-mont.o", + "crypto/bn/libcrypto-lib-ppc64-mont-fixed.o", "crypto/bn/libfips-lib-bn-ppc.o", "crypto/bn/libfips-lib-bn_add.o", "crypto/bn/libfips-lib-bn_blind.o", @@ -8547,7 +9968,8 @@ our %unified_info = ( "crypto/bn/libfips-lib-bn_sqr.o", "crypto/bn/libfips-lib-bn_sqrt.o", "crypto/bn/libfips-lib-bn_word.o", - "crypto/bn/libfips-lib-ppc-mont.o" + "crypto/bn/libfips-lib-ppc-mont.o", + "crypto/bn/libfips-lib-ppc64-mont-fixed.o" ], "products" => { "lib" => [ @@ -8628,6 +10050,7 @@ our %unified_info = ( "crypto/cmp/libcrypto-lib-cmp_client.o", "crypto/cmp/libcrypto-lib-cmp_ctx.o", "crypto/cmp/libcrypto-lib-cmp_err.o", + "crypto/cmp/libcrypto-lib-cmp_genm.o", "crypto/cmp/libcrypto-lib-cmp_hdr.o", "crypto/cmp/libcrypto-lib-cmp_http.o", "crypto/cmp/libcrypto-lib-cmp_msg.o", @@ -9003,7 +10426,9 @@ our %unified_info = ( "crypto/err/libcrypto-lib-err_all.o", "crypto/err/libcrypto-lib-err_all_legacy.o", "crypto/err/libcrypto-lib-err_blocks.o", - "crypto/err/libcrypto-lib-err_prn.o" + "crypto/err/libcrypto-lib-err_mark.o", + "crypto/err/libcrypto-lib-err_prn.o", + "crypto/err/libcrypto-lib-err_save.o" ], "products" => { "lib" => [ @@ -9104,7 +10529,9 @@ our %unified_info = ( "crypto/evp/libcrypto-lib-pmeth_check.o", "crypto/evp/libcrypto-lib-pmeth_gn.o", "crypto/evp/libcrypto-lib-pmeth_lib.o", + "crypto/evp/libcrypto-lib-s_lib.o", "crypto/evp/libcrypto-lib-signature.o", + "crypto/evp/libcrypto-lib-skeymgmt_meth.o", "crypto/evp/libfips-lib-asymcipher.o", "crypto/evp/libfips-lib-dh_support.o", "crypto/evp/libfips-lib-digest.o", @@ -9120,14 +10547,15 @@ our %unified_info = ( "crypto/evp/libfips-lib-kem.o", "crypto/evp/libfips-lib-keymgmt_lib.o", "crypto/evp/libfips-lib-keymgmt_meth.o", - "crypto/evp/libfips-lib-m_sigver.o", "crypto/evp/libfips-lib-mac_lib.o", "crypto/evp/libfips-lib-mac_meth.o", "crypto/evp/libfips-lib-p_lib.o", "crypto/evp/libfips-lib-pmeth_check.o", "crypto/evp/libfips-lib-pmeth_gn.o", "crypto/evp/libfips-lib-pmeth_lib.o", - "crypto/evp/libfips-lib-signature.o" + "crypto/evp/libfips-lib-s_lib.o", + "crypto/evp/libfips-lib-signature.o", + "crypto/evp/libfips-lib-skeymgmt_meth.o" ], "products" => { "lib" => [ @@ -9160,6 +10588,20 @@ our %unified_info = ( ] } }, + "crypto/hashtable" => { + "deps" => [ + "crypto/hashtable/libcrypto-lib-hashfunc.o", + "crypto/hashtable/libcrypto-lib-hashtable.o", + "crypto/hashtable/libfips-lib-hashfunc.o", + "crypto/hashtable/libfips-lib-hashtable.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, "crypto/hmac" => { "deps" => [ "crypto/hmac/libcrypto-lib-hmac.o", @@ -9172,6 +10614,17 @@ our %unified_info = ( ] } }, + "crypto/hpke" => { + "deps" => [ + "crypto/hpke/libcrypto-lib-hpke.o", + "crypto/hpke/libcrypto-lib-hpke_util.o" + ], + "products" => { + "lib" => [ + "libcrypto" + ] + } + }, "crypto/http" => { "deps" => [ "crypto/http/libcrypto-lib-http_client.o", @@ -9255,6 +10708,44 @@ our %unified_info = ( ] } }, + "crypto/ml_dsa" => { + "deps" => [ + "crypto/ml_dsa/libcrypto-lib-ml_dsa_encoders.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key_compress.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_matrix.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_ntt.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_params.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sample.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sign.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_encoders.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_key.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_key_compress.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_matrix.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_ntt.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_params.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_sample.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_sign.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, + "crypto/ml_kem" => { + "deps" => [ + "crypto/ml_kem/libcrypto-lib-ml_kem.o", + "crypto/ml_kem/libfips-lib-ml_kem.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, "crypto/modes" => { "deps" => [ "crypto/modes/libcrypto-lib-cbc128.o", @@ -9269,6 +10760,7 @@ our %unified_info = ( "crypto/modes/libcrypto-lib-siv128.o", "crypto/modes/libcrypto-lib-wrap128.o", "crypto/modes/libcrypto-lib-xts128.o", + "crypto/modes/libcrypto-lib-xts128gb.o", "crypto/modes/libfips-lib-cbc128.o", "crypto/modes/libfips-lib-ccm128.o", "crypto/modes/libfips-lib-cfb128.o", @@ -9277,7 +10769,8 @@ our %unified_info = ( "crypto/modes/libfips-lib-ghashp8-ppc.o", "crypto/modes/libfips-lib-ofb128.o", "crypto/modes/libfips-lib-wrap128.o", - "crypto/modes/libfips-lib-xts128.o" + "crypto/modes/libfips-lib-xts128.o", + "crypto/modes/libfips-lib-xts128gb.o" ], "products" => { "lib" => [ @@ -9423,6 +10916,7 @@ our %unified_info = ( "crypto/rand/libcrypto-lib-rand_lib.o", "crypto/rand/libcrypto-lib-rand_meth.o", "crypto/rand/libcrypto-lib-rand_pool.o", + "crypto/rand/libcrypto-lib-rand_uniform.o", "crypto/rand/libcrypto-lib-randfile.o", "crypto/rand/libfips-lib-rand_lib.o" ], @@ -9579,6 +11073,36 @@ our %unified_info = ( ] } }, + "crypto/slh_dsa" => { + "deps" => [ + "crypto/slh_dsa/libcrypto-lib-slh_adrs.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa_hash_ctx.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa_key.o", + "crypto/slh_dsa/libcrypto-lib-slh_fors.o", + "crypto/slh_dsa/libcrypto-lib-slh_hash.o", + "crypto/slh_dsa/libcrypto-lib-slh_hypertree.o", + "crypto/slh_dsa/libcrypto-lib-slh_params.o", + "crypto/slh_dsa/libcrypto-lib-slh_wots.o", + "crypto/slh_dsa/libcrypto-lib-slh_xmss.o", + "crypto/slh_dsa/libfips-lib-slh_adrs.o", + "crypto/slh_dsa/libfips-lib-slh_dsa.o", + "crypto/slh_dsa/libfips-lib-slh_dsa_hash_ctx.o", + "crypto/slh_dsa/libfips-lib-slh_dsa_key.o", + "crypto/slh_dsa/libfips-lib-slh_fors.o", + "crypto/slh_dsa/libfips-lib-slh_hash.o", + "crypto/slh_dsa/libfips-lib-slh_hypertree.o", + "crypto/slh_dsa/libfips-lib-slh_params.o", + "crypto/slh_dsa/libfips-lib-slh_wots.o", + "crypto/slh_dsa/libfips-lib-slh_xmss.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, "crypto/sm2" => { "deps" => [ "crypto/sm2/libcrypto-lib-sm2_crypt.o", @@ -9652,6 +11176,38 @@ our %unified_info = ( ] } }, + "crypto/thread" => { + "deps" => [ + "crypto/thread/libcrypto-lib-api.o", + "crypto/thread/libcrypto-lib-arch.o", + "crypto/thread/libcrypto-lib-internal.o", + "crypto/thread/libfips-lib-api.o", + "crypto/thread/libfips-lib-arch.o", + "crypto/thread/libfips-lib-internal.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, + "crypto/thread/arch" => { + "deps" => [ + "crypto/thread/arch/libcrypto-lib-thread_none.o", + "crypto/thread/arch/libcrypto-lib-thread_posix.o", + "crypto/thread/arch/libcrypto-lib-thread_win.o", + "crypto/thread/arch/libfips-lib-thread_none.o", + "crypto/thread/arch/libfips-lib-thread_posix.o", + "crypto/thread/arch/libfips-lib-thread_win.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, "crypto/ts" => { "deps" => [ "crypto/ts/libcrypto-lib-ts_asn1.o", @@ -9718,14 +11274,22 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-pcy_map.o", "crypto/x509/libcrypto-lib-pcy_node.o", "crypto/x509/libcrypto-lib-pcy_tree.o", + "crypto/x509/libcrypto-lib-t_acert.o", "crypto/x509/libcrypto-lib-t_crl.o", "crypto/x509/libcrypto-lib-t_req.o", "crypto/x509/libcrypto-lib-t_x509.o", + "crypto/x509/libcrypto-lib-v3_aaa.o", + "crypto/x509/libcrypto-lib-v3_ac_tgt.o", "crypto/x509/libcrypto-lib-v3_addr.o", "crypto/x509/libcrypto-lib-v3_admis.o", "crypto/x509/libcrypto-lib-v3_akeya.o", "crypto/x509/libcrypto-lib-v3_akid.o", "crypto/x509/libcrypto-lib-v3_asid.o", + "crypto/x509/libcrypto-lib-v3_attrdesc.o", + "crypto/x509/libcrypto-lib-v3_attrmap.o", + "crypto/x509/libcrypto-lib-v3_audit_id.o", + "crypto/x509/libcrypto-lib-v3_authattid.o", + "crypto/x509/libcrypto-lib-v3_battcons.o", "crypto/x509/libcrypto-lib-v3_bcons.o", "crypto/x509/libcrypto-lib-v3_bitst.o", "crypto/x509/libcrypto-lib-v3_conf.o", @@ -9734,12 +11298,17 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_enum.o", "crypto/x509/libcrypto-lib-v3_extku.o", "crypto/x509/libcrypto-lib-v3_genn.o", + "crypto/x509/libcrypto-lib-v3_group_ac.o", "crypto/x509/libcrypto-lib-v3_ia5.o", + "crypto/x509/libcrypto-lib-v3_ind_iss.o", "crypto/x509/libcrypto-lib-v3_info.o", "crypto/x509/libcrypto-lib-v3_int.o", + "crypto/x509/libcrypto-lib-v3_iobo.o", "crypto/x509/libcrypto-lib-v3_ist.o", "crypto/x509/libcrypto-lib-v3_lib.o", "crypto/x509/libcrypto-lib-v3_ncons.o", + "crypto/x509/libcrypto-lib-v3_no_ass.o", + "crypto/x509/libcrypto-lib-v3_no_rev_avail.o", "crypto/x509/libcrypto-lib-v3_pci.o", "crypto/x509/libcrypto-lib-v3_pcia.o", "crypto/x509/libcrypto-lib-v3_pcons.o", @@ -9747,13 +11316,20 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_pmaps.o", "crypto/x509/libcrypto-lib-v3_prn.o", "crypto/x509/libcrypto-lib-v3_purp.o", + "crypto/x509/libcrypto-lib-v3_rolespec.o", "crypto/x509/libcrypto-lib-v3_san.o", + "crypto/x509/libcrypto-lib-v3_sda.o", + "crypto/x509/libcrypto-lib-v3_single_use.o", "crypto/x509/libcrypto-lib-v3_skid.o", + "crypto/x509/libcrypto-lib-v3_soa_id.o", "crypto/x509/libcrypto-lib-v3_sxnet.o", + "crypto/x509/libcrypto-lib-v3_timespec.o", "crypto/x509/libcrypto-lib-v3_tlsf.o", + "crypto/x509/libcrypto-lib-v3_usernotice.o", "crypto/x509/libcrypto-lib-v3_utf8.o", "crypto/x509/libcrypto-lib-v3_utl.o", "crypto/x509/libcrypto-lib-v3err.o", + "crypto/x509/libcrypto-lib-x509_acert.o", "crypto/x509/libcrypto-lib-x509_att.o", "crypto/x509/libcrypto-lib-x509_cmp.o", "crypto/x509/libcrypto-lib-x509_d2.o", @@ -9771,6 +11347,7 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x509_v3.o", "crypto/x509/libcrypto-lib-x509_vfy.o", "crypto/x509/libcrypto-lib-x509_vpm.o", + "crypto/x509/libcrypto-lib-x509aset.o", "crypto/x509/libcrypto-lib-x509cset.o", "crypto/x509/libcrypto-lib-x509name.o", "crypto/x509/libcrypto-lib-x509rset.o", @@ -9780,6 +11357,7 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x_attrib.o", "crypto/x509/libcrypto-lib-x_crl.o", "crypto/x509/libcrypto-lib-x_exten.o", + "crypto/x509/libcrypto-lib-x_ietfatt.o", "crypto/x509/libcrypto-lib-x_name.o", "crypto/x509/libcrypto-lib-x_pubkey.o", "crypto/x509/libcrypto-lib-x_req.o", @@ -9806,6 +11384,7 @@ our %unified_info = ( "fuzz" => { "products" => { "bin" => [ + "fuzz/acert-test", "fuzz/asn1-test", "fuzz/asn1parse-test", "fuzz/bignum-test", @@ -9816,13 +11395,31 @@ our %unified_info = ( "fuzz/conf-test", "fuzz/crl-test", "fuzz/ct-test", + "fuzz/decoder-test", + "fuzz/dtlsclient-test", + "fuzz/dtlsserver-test", + "fuzz/hashtable-test", + "fuzz/ml-dsa-test", + "fuzz/ml-kem-test", + "fuzz/pem-test", + "fuzz/provider-test", + "fuzz/punycode-test", + "fuzz/quic-client-test", + "fuzz/quic-lcidm-test", + "fuzz/quic-rcidm-test", + "fuzz/quic-server-test", + "fuzz/quic-srtm-test", "fuzz/server-test", + "fuzz/slh-dsa-test", + "fuzz/smime-test", + "fuzz/v3name-test", "fuzz/x509-test" ] } }, "providers" => { "deps" => [ + "providers/endecode_test-bin-legacyprov.o", "providers/evp_extra_test-bin-legacyprov.o", "providers/libcrypto-lib-baseprov.o", "providers/libcrypto-lib-defltprov.o", @@ -9832,6 +11429,7 @@ our %unified_info = ( ], "products" => { "bin" => [ + "test/endecode_test", "test/evp_extra_test" ], "dso" => [ @@ -9883,8 +11481,12 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ec_sig.o", "providers/common/der/libcommon-lib-der_ecx_gen.o", "providers/common/der/libcommon-lib-der_ecx_key.o", + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o", + "providers/common/der/libcommon-lib-der_ml_dsa_key.o", "providers/common/der/libcommon-lib-der_rsa_gen.o", "providers/common/der/libcommon-lib-der_rsa_key.o", + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o", + "providers/common/der/libcommon-lib-der_slh_dsa_key.o", "providers/common/der/libcommon-lib-der_wrap_gen.o", "providers/common/der/libdefault-lib-der_rsa_sig.o", "providers/common/der/libdefault-lib-der_sm2_gen.o", @@ -9903,6 +11505,7 @@ our %unified_info = ( "providers/fips" => { "deps" => [ "providers/fips/fips-dso-fips_entry.o", + "providers/fips/libfips-lib-fipsindicator.o", "providers/fips/libfips-lib-fipsprov.o", "providers/fips/libfips-lib-self_test.o", "providers/fips/libfips-lib-self_test_kats.o" @@ -9946,6 +11549,9 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_aes_ccm_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_polyval.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_ocb.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_ocb_hw.o", @@ -9970,7 +11576,13 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_cts.o", "providers/implementations/ciphers/libdefault-lib-cipher_null.o", "providers/implementations/ciphers/libdefault-lib-cipher_sm4.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_sm4_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes_common.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes_default.o", @@ -10067,7 +11679,10 @@ our %unified_info = ( "providers/implementations/encode_decode/libdefault-lib-encode_key2blob.o", "providers/implementations/encode_decode/libdefault-lib-encode_key2ms.o", "providers/implementations/encode_decode/libdefault-lib-encode_key2text.o", - "providers/implementations/encode_decode/libdefault-lib-endecoder_common.o" + "providers/implementations/encode_decode/libdefault-lib-endecoder_common.o", + "providers/implementations/encode_decode/libdefault-lib-ml_common_codecs.o", + "providers/implementations/encode_decode/libdefault-lib-ml_dsa_codecs.o", + "providers/implementations/encode_decode/libdefault-lib-ml_kem_codecs.o" ], "products" => { "lib" => [ @@ -10095,7 +11710,9 @@ our %unified_info = ( }, "providers/implementations/kdfs" => { "deps" => [ + "providers/implementations/kdfs/libdefault-lib-argon2.o", "providers/implementations/kdfs/libdefault-lib-hkdf.o", + "providers/implementations/kdfs/libdefault-lib-hmacdrbg_kdf.o", "providers/implementations/kdfs/libdefault-lib-kbkdf.o", "providers/implementations/kdfs/libdefault-lib-krb5kdf.o", "providers/implementations/kdfs/libdefault-lib-pbkdf2.o", @@ -10114,7 +11731,8 @@ our %unified_info = ( "providers/implementations/kdfs/libfips-lib-sskdf.o", "providers/implementations/kdfs/libfips-lib-tls1_prf.o", "providers/implementations/kdfs/libfips-lib-x942kdf.o", - "providers/implementations/kdfs/liblegacy-lib-pbkdf1.o" + "providers/implementations/kdfs/liblegacy-lib-pbkdf1.o", + "providers/implementations/kdfs/liblegacy-lib-pvkkdf.o" ], "products" => { "lib" => [ @@ -10126,13 +11744,22 @@ our %unified_info = ( }, "providers/implementations/kem" => { "deps" => [ + "providers/implementations/kem/libdefault-lib-ec_kem.o", + "providers/implementations/kem/libdefault-lib-ecx_kem.o", + "providers/implementations/kem/libdefault-lib-kem_util.o", + "providers/implementations/kem/libdefault-lib-ml_kem_kem.o", + "providers/implementations/kem/libdefault-lib-mlx_kem.o", "providers/implementations/kem/libdefault-lib-rsa_kem.o", - "providers/implementations/kem/libfips-lib-rsa_kem.o" + "providers/implementations/kem/libfips-lib-ml_kem_kem.o", + "providers/implementations/kem/libfips-lib-mlx_kem.o", + "providers/implementations/kem/libfips-lib-rsa_kem.o", + "providers/implementations/kem/libtemplate-lib-template_kem.o" ], "products" => { "lib" => [ "providers/libdefault.a", - "providers/libfips.a" + "providers/libfips.a", + "providers/libtemplate.a" ] } }, @@ -10144,19 +11771,29 @@ our %unified_info = ( "providers/implementations/keymgmt/libdefault-lib-ecx_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-kdf_legacy_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-mac_legacy_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-ml_dsa_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-ml_kem_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-mlx_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-rsa_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-slh_dsa_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-dh_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-dsa_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-ec_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-ecx_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-kdf_legacy_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-mac_legacy_kmgmt.o", - "providers/implementations/keymgmt/libfips-lib-rsa_kmgmt.o" + "providers/implementations/keymgmt/libfips-lib-ml_dsa_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-ml_kem_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-mlx_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-rsa_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-slh_dsa_kmgmt.o", + "providers/implementations/keymgmt/libtemplate-lib-template_kmgmt.o" ], "products" => { "lib" => [ "providers/libdefault.a", - "providers/libfips.a" + "providers/libfips.a", + "providers/libtemplate.a" ] } }, @@ -10184,18 +11821,18 @@ our %unified_info = ( }, "providers/implementations/rands" => { "deps" => [ - "providers/implementations/rands/libdefault-lib-crngt.o", "providers/implementations/rands/libdefault-lib-drbg.o", "providers/implementations/rands/libdefault-lib-drbg_ctr.o", "providers/implementations/rands/libdefault-lib-drbg_hash.o", "providers/implementations/rands/libdefault-lib-drbg_hmac.o", "providers/implementations/rands/libdefault-lib-seed_src.o", + "providers/implementations/rands/libdefault-lib-seed_src_jitter.o", "providers/implementations/rands/libdefault-lib-test_rng.o", - "providers/implementations/rands/libfips-lib-crngt.o", "providers/implementations/rands/libfips-lib-drbg.o", "providers/implementations/rands/libfips-lib-drbg_ctr.o", "providers/implementations/rands/libfips-lib-drbg_hash.o", "providers/implementations/rands/libfips-lib-drbg_hmac.o", + "providers/implementations/rands/libfips-lib-fips_crng_test.o", "providers/implementations/rands/libfips-lib-test_rng.o" ], "products" => { @@ -10224,13 +11861,31 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-ecdsa_sig.o", "providers/implementations/signature/libdefault-lib-eddsa_sig.o", "providers/implementations/signature/libdefault-lib-mac_legacy_sig.o", + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o", "providers/implementations/signature/libdefault-lib-rsa_sig.o", + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o", "providers/implementations/signature/libdefault-lib-sm2_sig.o", "providers/implementations/signature/libfips-lib-dsa_sig.o", "providers/implementations/signature/libfips-lib-ecdsa_sig.o", "providers/implementations/signature/libfips-lib-eddsa_sig.o", "providers/implementations/signature/libfips-lib-mac_legacy_sig.o", - "providers/implementations/signature/libfips-lib-rsa_sig.o" + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o", + "providers/implementations/signature/libfips-lib-rsa_sig.o", + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o" + ], + "products" => { + "lib" => [ + "providers/libdefault.a", + "providers/libfips.a" + ] + } + }, + "providers/implementations/skeymgmt" => { + "deps" => [ + "providers/implementations/skeymgmt/libdefault-lib-aes_skmgmt.o", + "providers/implementations/skeymgmt/libdefault-lib-generic.o", + "providers/implementations/skeymgmt/libfips-lib-aes_skmgmt.o", + "providers/implementations/skeymgmt/libfips-lib-generic.o" ], "products" => { "lib" => [ @@ -10258,14 +11913,15 @@ our %unified_info = ( "ssl/libssl-lib-d1_srtp.o", "ssl/libssl-lib-methods.o", "ssl/libssl-lib-pqueue.o", + "ssl/libssl-lib-priority_queue.o", "ssl/libssl-lib-s3_enc.o", "ssl/libssl-lib-s3_lib.o", "ssl/libssl-lib-s3_msg.o", "ssl/libssl-lib-ssl_asn1.o", "ssl/libssl-lib-ssl_cert.o", + "ssl/libssl-lib-ssl_cert_comp.o", "ssl/libssl-lib-ssl_ciph.o", "ssl/libssl-lib-ssl_conf.o", - "ssl/libssl-lib-ssl_err.o", "ssl/libssl-lib-ssl_err_legacy.o", "ssl/libssl-lib-ssl_init.o", "ssl/libssl-lib-ssl_lib.o", @@ -10281,32 +11937,107 @@ our %unified_info = ( "ssl/libssl-lib-t1_trce.o", "ssl/libssl-lib-tls13_enc.o", "ssl/libssl-lib-tls_depr.o", - "ssl/libssl-lib-tls_srp.o", - "ssl/libdefault-lib-s3_cbc.o", - "ssl/libfips-lib-s3_cbc.o" + "ssl/libssl-lib-tls_srp.o" ], "products" => { "lib" => [ - "libssl", - "providers/libdefault.a", - "providers/libfips.a" + "libssl" + ] + } + }, + "ssl/quic" => { + "deps" => [ + "ssl/quic/libssl-lib-cc_newreno.o", + "ssl/quic/libssl-lib-json_enc.o", + "ssl/quic/libssl-lib-qlog.o", + "ssl/quic/libssl-lib-qlog_event_helpers.o", + "ssl/quic/libssl-lib-quic_ackm.o", + "ssl/quic/libssl-lib-quic_cfq.o", + "ssl/quic/libssl-lib-quic_channel.o", + "ssl/quic/libssl-lib-quic_demux.o", + "ssl/quic/libssl-lib-quic_engine.o", + "ssl/quic/libssl-lib-quic_fc.o", + "ssl/quic/libssl-lib-quic_fifd.o", + "ssl/quic/libssl-lib-quic_impl.o", + "ssl/quic/libssl-lib-quic_lcidm.o", + "ssl/quic/libssl-lib-quic_method.o", + "ssl/quic/libssl-lib-quic_obj.o", + "ssl/quic/libssl-lib-quic_port.o", + "ssl/quic/libssl-lib-quic_rcidm.o", + "ssl/quic/libssl-lib-quic_reactor.o", + "ssl/quic/libssl-lib-quic_reactor_wait_ctx.o", + "ssl/quic/libssl-lib-quic_record_rx.o", + "ssl/quic/libssl-lib-quic_record_shared.o", + "ssl/quic/libssl-lib-quic_record_tx.o", + "ssl/quic/libssl-lib-quic_record_util.o", + "ssl/quic/libssl-lib-quic_rstream.o", + "ssl/quic/libssl-lib-quic_rx_depack.o", + "ssl/quic/libssl-lib-quic_sf_list.o", + "ssl/quic/libssl-lib-quic_srt_gen.o", + "ssl/quic/libssl-lib-quic_srtm.o", + "ssl/quic/libssl-lib-quic_sstream.o", + "ssl/quic/libssl-lib-quic_statm.o", + "ssl/quic/libssl-lib-quic_stream_map.o", + "ssl/quic/libssl-lib-quic_thread_assist.o", + "ssl/quic/libssl-lib-quic_tls.o", + "ssl/quic/libssl-lib-quic_tls_api.o", + "ssl/quic/libssl-lib-quic_trace.o", + "ssl/quic/libssl-lib-quic_tserver.o", + "ssl/quic/libssl-lib-quic_txp.o", + "ssl/quic/libssl-lib-quic_txpim.o", + "ssl/quic/libssl-lib-quic_types.o", + "ssl/quic/libssl-lib-quic_wire.o", + "ssl/quic/libssl-lib-quic_wire_pkt.o", + "ssl/quic/libssl-lib-uint_set.o" + ], + "products" => { + "lib" => [ + "libssl" ] } }, "ssl/record" => { "deps" => [ - "ssl/record/libssl-lib-dtls1_bitmap.o", "ssl/record/libssl-lib-rec_layer_d1.o", - "ssl/record/libssl-lib-rec_layer_s3.o", - "ssl/record/libssl-lib-ssl3_buffer.o", - "ssl/record/libssl-lib-ssl3_record.o", - "ssl/record/libssl-lib-ssl3_record_tls13.o", - "ssl/record/libcommon-lib-tls_pad.o" + "ssl/record/libssl-lib-rec_layer_s3.o" + ], + "products" => { + "lib" => [ + "libssl" + ] + } + }, + "ssl/record/methods" => { + "deps" => [ + "ssl/record/methods/libssl-lib-dtls_meth.o", + "ssl/record/methods/libssl-lib-ssl3_meth.o", + "ssl/record/methods/libssl-lib-tls13_meth.o", + "ssl/record/methods/libssl-lib-tls1_meth.o", + "ssl/record/methods/libssl-lib-tls_common.o", + "ssl/record/methods/libssl-lib-tls_multib.o", + "ssl/record/methods/libssl-lib-tlsany_meth.o", + "ssl/record/methods/libcommon-lib-tls_pad.o", + "ssl/record/methods/libdefault-lib-ssl3_cbc.o", + "ssl/record/methods/libfips-lib-ssl3_cbc.o" ], "products" => { "lib" => [ "libssl", - "providers/libcommon.a" + "providers/libcommon.a", + "providers/libdefault.a", + "providers/libfips.a" + ] + } + }, + "ssl/rio" => { + "deps" => [ + "ssl/rio/libssl-lib-poll_builder.o", + "ssl/rio/libssl-lib-poll_immediate.o", + "ssl/rio/libssl-lib-rio_notifier.o" + ], + "products" => { + "lib" => [ + "libssl" ] } }, @@ -10344,9 +12075,40 @@ our %unified_info = ( "test/helpers/dtlstest-bin-ssltestlib.o", "test/helpers/endecode_test-bin-predefined_dhparams.o", "test/helpers/fatalerrtest-bin-ssltestlib.o", + "test/helpers/json_test-bin-noisydgrambio.o", + "test/helpers/json_test-bin-pktsplitbio.o", + "test/helpers/json_test-bin-quictestlib.o", + "test/helpers/json_test-bin-ssltestlib.o", + "test/helpers/pkcs12_api_test-bin-pkcs12.o", "test/helpers/pkcs12_format_test-bin-pkcs12.o", + "test/helpers/quic_multistream_test-bin-noisydgrambio.o", + "test/helpers/quic_multistream_test-bin-pktsplitbio.o", + "test/helpers/quic_multistream_test-bin-quictestlib.o", + "test/helpers/quic_multistream_test-bin-ssltestlib.o", + "test/helpers/quic_newcid_test-bin-noisydgrambio.o", + "test/helpers/quic_newcid_test-bin-pktsplitbio.o", + "test/helpers/quic_newcid_test-bin-quictestlib.o", + "test/helpers/quic_newcid_test-bin-ssltestlib.o", + "test/helpers/quic_radix_test-bin-noisydgrambio.o", + "test/helpers/quic_radix_test-bin-pktsplitbio.o", + "test/helpers/quic_radix_test-bin-quictestlib.o", + "test/helpers/quic_radix_test-bin-ssltestlib.o", + "test/helpers/quic_srt_gen_test-bin-noisydgrambio.o", + "test/helpers/quic_srt_gen_test-bin-pktsplitbio.o", + "test/helpers/quic_srt_gen_test-bin-quictestlib.o", + "test/helpers/quic_srt_gen_test-bin-ssltestlib.o", + "test/helpers/quicapitest-bin-noisydgrambio.o", + "test/helpers/quicapitest-bin-pktsplitbio.o", + "test/helpers/quicapitest-bin-quictestlib.o", + "test/helpers/quicapitest-bin-ssltestlib.o", + "test/helpers/quicfaultstest-bin-noisydgrambio.o", + "test/helpers/quicfaultstest-bin-pktsplitbio.o", + "test/helpers/quicfaultstest-bin-quictestlib.o", + "test/helpers/quicfaultstest-bin-ssltestlib.o", "test/helpers/recordlentest-bin-ssltestlib.o", + "test/helpers/rpktest-bin-ssltestlib.o", "test/helpers/servername_test-bin-ssltestlib.o", + "test/helpers/ssl_handshake_rtt_test-bin-ssltestlib.o", "test/helpers/ssl_old_test-bin-predefined_dhparams.o", "test/helpers/ssl_test-bin-handshake.o", "test/helpers/ssl_test-bin-handshake_srp.o", @@ -10355,7 +12117,8 @@ our %unified_info = ( "test/helpers/sslapitest-bin-ssltestlib.o", "test/helpers/sslbuffertest-bin-ssltestlib.o", "test/helpers/sslcorrupttest-bin-ssltestlib.o", - "test/helpers/tls13ccstest-bin-ssltestlib.o" + "test/helpers/tls13ccstest-bin-ssltestlib.o", + "test/helpers/tls13groupselection_test-bin-ssltestlib.o" ], "products" => { "bin" => [ @@ -10373,16 +12136,37 @@ our %unified_info = ( "test/dtlstest", "test/endecode_test", "test/fatalerrtest", + "test/json_test", + "test/pkcs12_api_test", "test/pkcs12_format_test", + "test/quic_multistream_test", + "test/quic_newcid_test", + "test/quic_radix_test", + "test/quic_srt_gen_test", + "test/quicapitest", + "test/quicfaultstest", "test/recordlentest", + "test/rpktest", "test/servername_test", + "test/ssl_handshake_rtt_test", "test/ssl_old_test", "test/ssl_test", "test/ssl_test_ctx_test", "test/sslapitest", "test/sslbuffertest", "test/sslcorrupttest", - "test/tls13ccstest" + "test/tls13ccstest", + "test/tls13groupselection_test" + ] + } + }, + "test/radix" => { + "deps" => [ + "test/radix/quic_radix_test-bin-quic_radix.o" + ], + "products" => { + "bin" => [ + "test/quic_radix_test" ] } }, @@ -10394,6 +12178,7 @@ our %unified_info = ( "test/testutil/libtestutil-lib-driver.o", "test/testutil/libtestutil-lib-fake_random.o", "test/testutil/libtestutil-lib-format_output.o", + "test/testutil/libtestutil-lib-helper.o", "test/testutil/libtestutil-lib-load.o", "test/testutil/libtestutil-lib-main.o", "test/testutil/libtestutil-lib-options.o", @@ -10429,6 +12214,12 @@ our %unified_info = ( } }, "generate" => { + "OpenSSLConfig.cmake" => [ + "exporters/cmake/OpenSSLConfig.cmake.in" + ], + "OpenSSLConfigVersion.cmake" => [ + "exporters/cmake/OpenSSLConfigVersion.cmake.in" + ], "apps/progs.c" => [ "apps/progs.pl", "\"-C\"", @@ -10439,6 +12230,19 @@ our %unified_info = ( "\"-H\"", "\$(APPS_OPENSSL)" ], + "builddata.pm" => [ + "util/mkinstallvars.pl", + "PREFIX=.", + "BINDIR=apps", + "APPLINKDIR=ms", + "LIBDIR=", + "INCLUDEDIR=include", + "\"INCLUDEDIR=\$(SRCDIR)/include\"", + "ENGINESDIR=engines", + "MODULESDIR=providers", + "\"VERSION=\$(VERSION)\"", + "\"LDLIBS=\$(LIB_EX_LIBS)\"" + ], "crypto/aes/aes-586.S" => [ "crypto/aes/asm/aes-586.pl" ], @@ -10460,6 +12264,24 @@ our %unified_info = ( "crypto/aes/aes-ppc.s" => [ "crypto/aes/asm/aes-ppc.pl" ], + "crypto/aes/aes-riscv32-zkn.s" => [ + "crypto/aes/asm/aes-riscv32-zkn.pl" + ], + "crypto/aes/aes-riscv64-zkn.s" => [ + "crypto/aes/asm/aes-riscv64-zkn.pl" + ], + "crypto/aes/aes-riscv64-zvbb-zvkg-zvkned.s" => [ + "crypto/aes/asm/aes-riscv64-zvbb-zvkg-zvkned.pl" + ], + "crypto/aes/aes-riscv64-zvkb-zvkned.s" => [ + "crypto/aes/asm/aes-riscv64-zvkb-zvkned.pl" + ], + "crypto/aes/aes-riscv64-zvkned.s" => [ + "crypto/aes/asm/aes-riscv64-zvkned.pl" + ], + "crypto/aes/aes-riscv64.s" => [ + "crypto/aes/asm/aes-riscv64.pl" + ], "crypto/aes/aes-s390x.S" => [ "crypto/aes/asm/aes-s390x.pl" ], @@ -10487,6 +12309,9 @@ our %unified_info = ( "crypto/aes/aesni-x86_64.s" => [ "crypto/aes/asm/aesni-x86_64.pl" ], + "crypto/aes/aesni-xts-avx512.s" => [ + "crypto/aes/asm/aesni-xts-avx512.pl" + ], "crypto/aes/aesp8-ppc.s" => [ "crypto/aes/asm/aesp8-ppc.pl" ], @@ -10499,12 +12324,18 @@ our %unified_info = ( "crypto/aes/bsaes-armv7.S" => [ "crypto/aes/asm/bsaes-armv7.pl" ], + "crypto/aes/bsaes-armv8.S" => [ + "crypto/aes/asm/bsaes-armv8.pl" + ], "crypto/aes/bsaes-x86_64.s" => [ "crypto/aes/asm/bsaes-x86_64.pl" ], "crypto/aes/vpaes-armv8.S" => [ "crypto/aes/asm/vpaes-armv8.pl" ], + "crypto/aes/vpaes-loongarch64.S" => [ + "crypto/aes/asm/vpaes-loongarch64.pl" + ], "crypto/aes/vpaes-ppc.s" => [ "crypto/aes/asm/vpaes-ppc.pl" ], @@ -10565,15 +12396,33 @@ our %unified_info = ( "crypto/bn/ppc-mont.s" => [ "crypto/bn/asm/ppc-mont.pl" ], + "crypto/bn/ppc64-mont-fixed.s" => [ + "crypto/bn/asm/ppc64-mont-fixed.pl" + ], "crypto/bn/ppc64-mont.s" => [ "crypto/bn/asm/ppc64-mont.pl" ], + "crypto/bn/rsaz-2k-avx512.s" => [ + "crypto/bn/asm/rsaz-2k-avx512.pl" + ], + "crypto/bn/rsaz-2k-avxifma.s" => [ + "crypto/bn/asm/rsaz-2k-avxifma.pl" + ], + "crypto/bn/rsaz-3k-avx512.s" => [ + "crypto/bn/asm/rsaz-3k-avx512.pl" + ], + "crypto/bn/rsaz-3k-avxifma.s" => [ + "crypto/bn/asm/rsaz-3k-avxifma.pl" + ], + "crypto/bn/rsaz-4k-avx512.s" => [ + "crypto/bn/asm/rsaz-4k-avx512.pl" + ], + "crypto/bn/rsaz-4k-avxifma.s" => [ + "crypto/bn/asm/rsaz-4k-avxifma.pl" + ], "crypto/bn/rsaz-avx2.s" => [ "crypto/bn/asm/rsaz-avx2.pl" ], - "crypto/bn/rsaz-avx512.s" => [ - "crypto/bn/asm/rsaz-avx512.pl" - ], "crypto/bn/rsaz-x86_64.s" => [ "crypto/bn/asm/rsaz-x86_64.pl" ], @@ -10635,6 +12484,9 @@ our %unified_info = ( "crypto/chacha/chacha-armv4.S" => [ "crypto/chacha/asm/chacha-armv4.pl" ], + "crypto/chacha/chacha-armv8-sve.S" => [ + "crypto/chacha/asm/chacha-armv8-sve.pl" + ], "crypto/chacha/chacha-armv8.S" => [ "crypto/chacha/asm/chacha-armv8.pl" ], @@ -10647,9 +12499,19 @@ our %unified_info = ( "crypto/chacha/chacha-ia64.s" => [ "crypto/chacha/chacha-ia64.S" ], + "crypto/chacha/chacha-loongarch64.S" => [ + "crypto/chacha/asm/chacha-loongarch64.pl" + ], "crypto/chacha/chacha-ppc.s" => [ "crypto/chacha/asm/chacha-ppc.pl" ], + "crypto/chacha/chacha-riscv64-v-zbb-zvkb.s" => [ + "crypto/chacha/asm/chacha-riscv64-v-zbb.pl", + "zvkb" + ], + "crypto/chacha/chacha-riscv64-v-zbb.s" => [ + "crypto/chacha/asm/chacha-riscv64-v-zbb.pl" + ], "crypto/chacha/chacha-s390x.S" => [ "crypto/chacha/asm/chacha-s390x.pl" ], @@ -10659,6 +12521,9 @@ our %unified_info = ( "crypto/chacha/chacha-x86_64.s" => [ "crypto/chacha/asm/chacha-x86_64.pl" ], + "crypto/chacha/chachap10-ppc.s" => [ + "crypto/chacha/asm/chachap10-ppc.pl" + ], "crypto/des/crypt586.S" => [ "crypto/des/asm/crypt586.pl" ], @@ -10671,6 +12536,9 @@ our %unified_info = ( "crypto/des/dest4-sparcv9.S" => [ "crypto/des/asm/dest4-sparcv9.pl" ], + "crypto/ec/ecp_nistp384-ppc64.s" => [ + "crypto/ec/asm/ecp_nistp384-ppc64.pl" + ], "crypto/ec/ecp_nistp521-ppc64.s" => [ "crypto/ec/asm/ecp_nistp521-ppc64.pl" ], @@ -10695,6 +12563,9 @@ our %unified_info = ( "crypto/ec/ecp_nistz256-x86_64.s" => [ "crypto/ec/asm/ecp_nistz256-x86_64.pl" ], + "crypto/ec/ecp_sm2p256-armv8.S" => [ + "crypto/ec/asm/ecp_sm2p256-armv8.pl" + ], "crypto/ec/x25519-ppc64.s" => [ "crypto/ec/asm/x25519-ppc64.pl" ], @@ -10704,18 +12575,39 @@ our %unified_info = ( "crypto/ia64cpuid.s" => [ "crypto/ia64cpuid.S" ], + "crypto/loongarch64cpuid.s" => [ + "crypto/loongarch64cpuid.pl" + ], "crypto/md5/md5-586.S" => [ "crypto/md5/asm/md5-586.pl" ], + "crypto/md5/md5-aarch64.S" => [ + "crypto/md5/asm/md5-aarch64.pl" + ], + "crypto/md5/md5-loongarch64.S" => [ + "crypto/md5/asm/md5-loongarch64.pl" + ], "crypto/md5/md5-sparcv9.S" => [ "crypto/md5/asm/md5-sparcv9.pl" ], "crypto/md5/md5-x86_64.s" => [ "crypto/md5/asm/md5-x86_64.pl" ], + "crypto/modes/aes-gcm-armv8-unroll8_64.S" => [ + "crypto/modes/asm/aes-gcm-armv8-unroll8_64.pl" + ], "crypto/modes/aes-gcm-armv8_64.S" => [ "crypto/modes/asm/aes-gcm-armv8_64.pl" ], + "crypto/modes/aes-gcm-avx512.s" => [ + "crypto/modes/asm/aes-gcm-avx512.pl" + ], + "crypto/modes/aes-gcm-ppc.s" => [ + "crypto/modes/asm/aes-gcm-ppc.pl" + ], + "crypto/modes/aes-gcm-riscv64-zvkb-zvkg-zvkned.s" => [ + "crypto/modes/asm/aes-gcm-riscv64-zvkb-zvkg-zvkned.pl" + ], "crypto/modes/aesni-gcm-x86_64.s" => [ "crypto/modes/asm/aesni-gcm-x86_64.pl" ], @@ -10734,6 +12626,15 @@ our %unified_info = ( "crypto/modes/ghash-parisc.s" => [ "crypto/modes/asm/ghash-parisc.pl" ], + "crypto/modes/ghash-riscv64-zvkb-zvbc.s" => [ + "crypto/modes/asm/ghash-riscv64-zvkb-zvbc.pl" + ], + "crypto/modes/ghash-riscv64-zvkg.s" => [ + "crypto/modes/asm/ghash-riscv64-zvkg.pl" + ], + "crypto/modes/ghash-riscv64.s" => [ + "crypto/modes/asm/ghash-riscv64.pl" + ], "crypto/modes/ghash-s390x.S" => [ "crypto/modes/asm/ghash-s390x.pl" ], @@ -10752,6 +12653,9 @@ our %unified_info = ( "crypto/modes/ghashv8-armx.S" => [ "crypto/modes/asm/ghashv8-armx.pl" ], + "crypto/params_idx.c" => [ + "crypto/params_idx.c.in" + ], "crypto/pariscid.s" => [ "crypto/pariscid.pl" ], @@ -10812,6 +12716,12 @@ our %unified_info = ( "crypto/ripemd/rmd-586.S" => [ "crypto/ripemd/asm/rmd-586.pl" ], + "crypto/riscv32cpuid.s" => [ + "crypto/riscv32cpuid.pl" + ], + "crypto/riscv64cpuid.s" => [ + "crypto/riscv64cpuid.pl" + ], "crypto/s390xcpuid.S" => [ "crypto/s390xcpuid.pl" ], @@ -10920,6 +12830,9 @@ our %unified_info = ( "crypto/sha/sha256-ppc.s" => [ "crypto/sha/asm/sha512-ppc.pl" ], + "crypto/sha/sha256-riscv64-zvkb-zvknha_or_zvknhb.S" => [ + "crypto/sha/asm/sha256-riscv64-zvkb-zvknha_or_zvknhb.pl" + ], "crypto/sha/sha256-s390x.S" => [ "crypto/sha/asm/sha512-s390x.pl" ], @@ -10956,6 +12869,9 @@ our %unified_info = ( "crypto/sha/sha512-ppc.s" => [ "crypto/sha/asm/sha512-ppc.pl" ], + "crypto/sha/sha512-riscv64-zvkb-zvknhb.S" => [ + "crypto/sha/asm/sha512-riscv64-zvkb-zvknhb.pl" + ], "crypto/sha/sha512-s390x.S" => [ "crypto/sha/asm/sha512-s390x.pl" ], @@ -10968,6 +12884,24 @@ our %unified_info = ( "crypto/sha/sha512p8-ppc.s" => [ "crypto/sha/asm/sha512p8-ppc.pl" ], + "crypto/sm3/sm3-armv8.S" => [ + "crypto/sm3/asm/sm3-armv8.pl" + ], + "crypto/sm3/sm3-riscv64-zvksh.S" => [ + "crypto/sm3/asm/sm3-riscv64-zvksh.pl" + ], + "crypto/sm4/sm4-armv8.S" => [ + "crypto/sm4/asm/sm4-armv8.pl" + ], + "crypto/sm4/sm4-riscv64-zvksed.s" => [ + "crypto/sm4/asm/sm4-riscv64-zvksed.pl" + ], + "crypto/sm4/vpsm4-armv8.S" => [ + "crypto/sm4/asm/vpsm4-armv8.pl" + ], + "crypto/sm4/vpsm4_ex-armv8.S" => [ + "crypto/sm4/asm/vpsm4_ex-armv8.pl" + ], "crypto/uplink-ia64.s" => [ "ms/uplink-ia64.pl" ], @@ -11133,6 +13067,9 @@ our %unified_info = ( "doc/html/man1/openssl-sess_id.html" => [ "doc/man1/openssl-sess_id.pod" ], + "doc/html/man1/openssl-skeyutl.html" => [ + "doc/man1/openssl-skeyutl.pod" + ], "doc/html/man1/openssl-smime.html" => [ "doc/man1/openssl-smime.pod" ], @@ -11274,6 +13211,9 @@ our %unified_info = ( "doc/html/man3/BIO_get_ex_new_index.html" => [ "doc/man3/BIO_get_ex_new_index.pod" ], + "doc/html/man3/BIO_get_rpoll_descriptor.html" => [ + "doc/man3/BIO_get_rpoll_descriptor.pod" + ], "doc/html/man3/BIO_meth_new.html" => [ "doc/man3/BIO_meth_new.pod" ], @@ -11310,6 +13250,9 @@ our %unified_info = ( "doc/html/man3/BIO_s_datagram.html" => [ "doc/man3/BIO_s_datagram.pod" ], + "doc/html/man3/BIO_s_dgram_pair.html" => [ + "doc/man3/BIO_s_dgram_pair.pod" + ], "doc/html/man3/BIO_s_fd.html" => [ "doc/man3/BIO_s_fd.pod" ], @@ -11325,6 +13268,9 @@ our %unified_info = ( "doc/html/man3/BIO_s_socket.html" => [ "doc/man3/BIO_s_socket.pod" ], + "doc/html/man3/BIO_sendmmsg.html" => [ + "doc/man3/BIO_sendmmsg.pod" + ], "doc/html/man3/BIO_set_callback.html" => [ "doc/man3/BIO_set_callback.pod" ], @@ -11397,6 +13343,9 @@ our %unified_info = ( "doc/html/man3/BUF_MEM_new.html" => [ "doc/man3/BUF_MEM_new.pod" ], + "doc/html/man3/CMAC_CTX.html" => [ + "doc/man3/CMAC_CTX.pod" + ], "doc/html/man3/CMS_EncryptedData_decrypt.html" => [ "doc/man3/CMS_EncryptedData_decrypt.pod" ], @@ -11463,6 +13412,9 @@ our %unified_info = ( "doc/html/man3/CMS_verify_receipt.html" => [ "doc/man3/CMS_verify_receipt.pod" ], + "doc/html/man3/COMP_CTX_new.html" => [ + "doc/man3/COMP_CTX_new.pod" + ], "doc/html/man3/CONF_modules_free.html" => [ "doc/man3/CONF_modules_free.pod" ], @@ -11562,6 +13514,12 @@ our %unified_info = ( "doc/html/man3/DTLS_set_timer_cb.html" => [ "doc/man3/DTLS_set_timer_cb.pod" ], + "doc/html/man3/DTLSv1_get_timeout.html" => [ + "doc/man3/DTLSv1_get_timeout.pod" + ], + "doc/html/man3/DTLSv1_handle_timeout.html" => [ + "doc/man3/DTLSv1_handle_timeout.pod" + ], "doc/html/man3/DTLSv1_listen.html" => [ "doc/man3/DTLSv1_listen.pod" ], @@ -11700,6 +13658,9 @@ our %unified_info = ( "doc/html/man3/EVP_PKEY_CTX_get0_pkey.html" => [ "doc/man3/EVP_PKEY_CTX_get0_pkey.pod" ], + "doc/html/man3/EVP_PKEY_CTX_get_algor.html" => [ + "doc/man3/EVP_PKEY_CTX_get_algor.pod" + ], "doc/html/man3/EVP_PKEY_CTX_new.html" => [ "doc/man3/EVP_PKEY_CTX_new.pod" ], @@ -11817,6 +13778,12 @@ our %unified_info = ( "doc/html/man3/EVP_SIGNATURE.html" => [ "doc/man3/EVP_SIGNATURE.pod" ], + "doc/html/man3/EVP_SKEY.html" => [ + "doc/man3/EVP_SKEY.pod" + ], + "doc/html/man3/EVP_SKEYMGMT.html" => [ + "doc/man3/EVP_SKEYMGMT.pod" + ], "doc/html/man3/EVP_SealInit.html" => [ "doc/man3/EVP_SealInit.pod" ], @@ -11904,6 +13871,9 @@ our %unified_info = ( "doc/html/man3/EVP_whirlpool.html" => [ "doc/man3/EVP_whirlpool.pod" ], + "doc/html/man3/GENERAL_NAME.html" => [ + "doc/man3/GENERAL_NAME.pod" + ], "doc/html/man3/HMAC.html" => [ "doc/man3/HMAC.pod" ], @@ -11976,9 +13946,15 @@ our %unified_info = ( "doc/html/man3/OPENSSL_load_builtin_modules.html" => [ "doc/man3/OPENSSL_load_builtin_modules.pod" ], + "doc/html/man3/OPENSSL_load_u16_le.html" => [ + "doc/man3/OPENSSL_load_u16_le.pod" + ], "doc/html/man3/OPENSSL_malloc.html" => [ "doc/man3/OPENSSL_malloc.pod" ], + "doc/html/man3/OPENSSL_riscvcap.html" => [ + "doc/man3/OPENSSL_riscvcap.pod" + ], "doc/html/man3/OPENSSL_s390xcap.html" => [ "doc/man3/OPENSSL_s390xcap.pod" ], @@ -11994,12 +13970,18 @@ our %unified_info = ( "doc/html/man3/OSSL_CALLBACK.html" => [ "doc/man3/OSSL_CALLBACK.pod" ], + "doc/html/man3/OSSL_CMP_ATAV_set0.html" => [ + "doc/man3/OSSL_CMP_ATAV_set0.pod" + ], "doc/html/man3/OSSL_CMP_CTX_new.html" => [ "doc/man3/OSSL_CMP_CTX_new.pod" ], "doc/html/man3/OSSL_CMP_HDR_get0_transactionID.html" => [ "doc/man3/OSSL_CMP_HDR_get0_transactionID.pod" ], + "doc/html/man3/OSSL_CMP_ITAV_new_caCerts.html" => [ + "doc/man3/OSSL_CMP_ITAV_new_caCerts.pod" + ], "doc/html/man3/OSSL_CMP_ITAV_set0.html" => [ "doc/man3/OSSL_CMP_ITAV_set0.pod" ], @@ -12069,9 +14051,18 @@ our %unified_info = ( "doc/html/man3/OSSL_ENCODER_to_bio.html" => [ "doc/man3/OSSL_ENCODER_to_bio.pod" ], + "doc/html/man3/OSSL_ERR_STATE_save.html" => [ + "doc/man3/OSSL_ERR_STATE_save.pod" + ], "doc/html/man3/OSSL_ESS_check_signing_certs.html" => [ "doc/man3/OSSL_ESS_check_signing_certs.pod" ], + "doc/html/man3/OSSL_GENERAL_NAMES_print.html" => [ + "doc/man3/OSSL_GENERAL_NAMES_print.pod" + ], + "doc/html/man3/OSSL_HPKE_CTX_new.html" => [ + "doc/man3/OSSL_HPKE_CTX_new.pod" + ], "doc/html/man3/OSSL_HTTP_REQ_CTX.html" => [ "doc/man3/OSSL_HTTP_REQ_CTX.pod" ], @@ -12081,12 +14072,24 @@ our %unified_info = ( "doc/html/man3/OSSL_HTTP_transfer.html" => [ "doc/man3/OSSL_HTTP_transfer.pod" ], + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX.html" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX.pod" + ], + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX_print.html" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX_print.pod" + ], + "doc/html/man3/OSSL_INDICATOR_set_callback.html" => [ + "doc/man3/OSSL_INDICATOR_set_callback.pod" + ], "doc/html/man3/OSSL_ITEM.html" => [ "doc/man3/OSSL_ITEM.pod" ], "doc/html/man3/OSSL_LIB_CTX.html" => [ "doc/man3/OSSL_LIB_CTX.pod" ], + "doc/html/man3/OSSL_LIB_CTX_set_conf_diagnostics.html" => [ + "doc/man3/OSSL_LIB_CTX_set_conf_diagnostics.pod" + ], "doc/html/man3/OSSL_PARAM.html" => [ "doc/man3/OSSL_PARAM.pod" ], @@ -12102,9 +14105,15 @@ our %unified_info = ( "doc/html/man3/OSSL_PARAM_int.html" => [ "doc/man3/OSSL_PARAM_int.pod" ], + "doc/html/man3/OSSL_PARAM_print_to_bio.html" => [ + "doc/man3/OSSL_PARAM_print_to_bio.pod" + ], "doc/html/man3/OSSL_PROVIDER.html" => [ "doc/man3/OSSL_PROVIDER.pod" ], + "doc/html/man3/OSSL_QUIC_client_method.html" => [ + "doc/man3/OSSL_QUIC_client_method.pod" + ], "doc/html/man3/OSSL_SELF_TEST_new.html" => [ "doc/man3/OSSL_SELF_TEST_new.pod" ], @@ -12129,6 +14138,9 @@ our %unified_info = ( "doc/html/man3/OSSL_STORE_open.html" => [ "doc/man3/OSSL_STORE_open.pod" ], + "doc/html/man3/OSSL_sleep.html" => [ + "doc/man3/OSSL_sleep.pod" + ], "doc/html/man3/OSSL_trace_enabled.html" => [ "doc/man3/OSSL_trace_enabled.pod" ], @@ -12144,6 +14156,9 @@ our %unified_info = ( "doc/html/man3/OpenSSL_version.html" => [ "doc/man3/OpenSSL_version.pod" ], + "doc/html/man3/PBMAC1_get1_pbkdf2_param.html" => [ + "doc/man3/PBMAC1_get1_pbkdf2_param.pod" + ], "doc/html/man3/PEM_X509_INFO_read_bio_ex.html" => [ "doc/man3/PEM_X509_INFO_read_bio_ex.pod" ], @@ -12180,6 +14195,9 @@ our %unified_info = ( "doc/html/man3/PKCS12_SAFEBAG_get1_cert.html" => [ "doc/man3/PKCS12_SAFEBAG_get1_cert.pod" ], + "doc/html/man3/PKCS12_SAFEBAG_set0_attrs.html" => [ + "doc/man3/PKCS12_SAFEBAG_set0_attrs.pod" + ], "doc/html/man3/PKCS12_add1_attr_by_NID.html" => [ "doc/man3/PKCS12_add1_attr_by_NID.pod" ], @@ -12453,6 +14471,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set0_CA_list.html" => [ "doc/man3/SSL_CTX_set0_CA_list.pod" ], + "doc/html/man3/SSL_CTX_set1_cert_comp_preference.html" => [ + "doc/man3/SSL_CTX_set1_cert_comp_preference.pod" + ], "doc/html/man3/SSL_CTX_set1_curves.html" => [ "doc/man3/SSL_CTX_set1_curves.pod" ], @@ -12492,6 +14513,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_default_passwd_cb.html" => [ "doc/man3/SSL_CTX_set_default_passwd_cb.pod" ], + "doc/html/man3/SSL_CTX_set_domain_flags.html" => [ + "doc/man3/SSL_CTX_set_domain_flags.pod" + ], "doc/html/man3/SSL_CTX_set_generate_session_id.html" => [ "doc/man3/SSL_CTX_set_generate_session_id.pod" ], @@ -12513,6 +14537,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_msg_callback.html" => [ "doc/man3/SSL_CTX_set_msg_callback.pod" ], + "doc/html/man3/SSL_CTX_set_new_pending_conn_cb.html" => [ + "doc/man3/SSL_CTX_set_new_pending_conn_cb.pod" + ], "doc/html/man3/SSL_CTX_set_num_tickets.html" => [ "doc/man3/SSL_CTX_set_num_tickets.pod" ], @@ -12627,6 +14654,9 @@ our %unified_info = ( "doc/html/man3/SSL_accept.html" => [ "doc/man3/SSL_accept.pod" ], + "doc/html/man3/SSL_accept_stream.html" => [ + "doc/man3/SSL_accept_stream.pod" + ], "doc/html/man3/SSL_alert_type_string.html" => [ "doc/man3/SSL_alert_type_string.pod" ], @@ -12654,9 +14684,21 @@ our %unified_info = ( "doc/html/man3/SSL_free.html" => [ "doc/man3/SSL_free.pod" ], + "doc/html/man3/SSL_get0_connection.html" => [ + "doc/man3/SSL_get0_connection.pod" + ], + "doc/html/man3/SSL_get0_group_name.html" => [ + "doc/man3/SSL_get0_group_name.pod" + ], + "doc/html/man3/SSL_get0_peer_rpk.html" => [ + "doc/man3/SSL_get0_peer_rpk.pod" + ], "doc/html/man3/SSL_get0_peer_scts.html" => [ "doc/man3/SSL_get0_peer_scts.pod" ], + "doc/html/man3/SSL_get1_builtin_sigalgs.html" => [ + "doc/man3/SSL_get1_builtin_sigalgs.pod" + ], "doc/html/man3/SSL_get_SSL_CTX.html" => [ "doc/man3/SSL_get_SSL_CTX.pod" ], @@ -12672,6 +14714,9 @@ our %unified_info = ( "doc/html/man3/SSL_get_client_random.html" => [ "doc/man3/SSL_get_client_random.pod" ], + "doc/html/man3/SSL_get_conn_close_info.html" => [ + "doc/man3/SSL_get_conn_close_info.pod" + ], "doc/html/man3/SSL_get_current_cipher.html" => [ "doc/man3/SSL_get_current_cipher.pod" ], @@ -12681,12 +14726,18 @@ our %unified_info = ( "doc/html/man3/SSL_get_error.html" => [ "doc/man3/SSL_get_error.pod" ], + "doc/html/man3/SSL_get_event_timeout.html" => [ + "doc/man3/SSL_get_event_timeout.pod" + ], "doc/html/man3/SSL_get_extms_support.html" => [ "doc/man3/SSL_get_extms_support.pod" ], "doc/html/man3/SSL_get_fd.html" => [ "doc/man3/SSL_get_fd.pod" ], + "doc/html/man3/SSL_get_handshake_rtt.html" => [ + "doc/man3/SSL_get_handshake_rtt.pod" + ], "doc/html/man3/SSL_get_peer_cert_chain.html" => [ "doc/man3/SSL_get_peer_cert_chain.pod" ], @@ -12705,12 +14756,24 @@ our %unified_info = ( "doc/html/man3/SSL_get_rbio.html" => [ "doc/man3/SSL_get_rbio.pod" ], + "doc/html/man3/SSL_get_rpoll_descriptor.html" => [ + "doc/man3/SSL_get_rpoll_descriptor.pod" + ], "doc/html/man3/SSL_get_session.html" => [ "doc/man3/SSL_get_session.pod" ], "doc/html/man3/SSL_get_shared_sigalgs.html" => [ "doc/man3/SSL_get_shared_sigalgs.pod" ], + "doc/html/man3/SSL_get_stream_id.html" => [ + "doc/man3/SSL_get_stream_id.pod" + ], + "doc/html/man3/SSL_get_stream_read_state.html" => [ + "doc/man3/SSL_get_stream_read_state.pod" + ], + "doc/html/man3/SSL_get_value_uint.html" => [ + "doc/man3/SSL_get_value_uint.pod" + ], "doc/html/man3/SSL_get_verify_result.html" => [ "doc/man3/SSL_get_verify_result.pod" ], @@ -12720,9 +14783,15 @@ our %unified_info = ( "doc/html/man3/SSL_group_to_name.html" => [ "doc/man3/SSL_group_to_name.pod" ], + "doc/html/man3/SSL_handle_events.html" => [ + "doc/man3/SSL_handle_events.pod" + ], "doc/html/man3/SSL_in_init.html" => [ "doc/man3/SSL_in_init.pod" ], + "doc/html/man3/SSL_inject_net_dgram.html" => [ + "doc/man3/SSL_inject_net_dgram.pod" + ], "doc/html/man3/SSL_key_update.html" => [ "doc/man3/SSL_key_update.pod" ], @@ -12735,9 +14804,21 @@ our %unified_info = ( "doc/html/man3/SSL_new.html" => [ "doc/man3/SSL_new.pod" ], + "doc/html/man3/SSL_new_domain.html" => [ + "doc/man3/SSL_new_domain.pod" + ], + "doc/html/man3/SSL_new_listener.html" => [ + "doc/man3/SSL_new_listener.pod" + ], + "doc/html/man3/SSL_new_stream.html" => [ + "doc/man3/SSL_new_stream.pod" + ], "doc/html/man3/SSL_pending.html" => [ "doc/man3/SSL_pending.pod" ], + "doc/html/man3/SSL_poll.html" => [ + "doc/man3/SSL_poll.pod" + ], "doc/html/man3/SSL_read.html" => [ "doc/man3/SSL_read.pod" ], @@ -12753,24 +14834,45 @@ our %unified_info = ( "doc/html/man3/SSL_set1_host.html" => [ "doc/man3/SSL_set1_host.pod" ], + "doc/html/man3/SSL_set1_initial_peer_addr.html" => [ + "doc/man3/SSL_set1_initial_peer_addr.pod" + ], + "doc/html/man3/SSL_set1_server_cert_type.html" => [ + "doc/man3/SSL_set1_server_cert_type.pod" + ], "doc/html/man3/SSL_set_async_callback.html" => [ "doc/man3/SSL_set_async_callback.pod" ], "doc/html/man3/SSL_set_bio.html" => [ "doc/man3/SSL_set_bio.pod" ], + "doc/html/man3/SSL_set_blocking_mode.html" => [ + "doc/man3/SSL_set_blocking_mode.pod" + ], "doc/html/man3/SSL_set_connect_state.html" => [ "doc/man3/SSL_set_connect_state.pod" ], + "doc/html/man3/SSL_set_default_stream_mode.html" => [ + "doc/man3/SSL_set_default_stream_mode.pod" + ], "doc/html/man3/SSL_set_fd.html" => [ "doc/man3/SSL_set_fd.pod" ], + "doc/html/man3/SSL_set_incoming_stream_policy.html" => [ + "doc/man3/SSL_set_incoming_stream_policy.pod" + ], + "doc/html/man3/SSL_set_quic_tls_cbs.html" => [ + "doc/man3/SSL_set_quic_tls_cbs.pod" + ], "doc/html/man3/SSL_set_retry_verify.html" => [ "doc/man3/SSL_set_retry_verify.pod" ], "doc/html/man3/SSL_set_session.html" => [ "doc/man3/SSL_set_session.pod" ], + "doc/html/man3/SSL_set_session_secret_cb.html" => [ + "doc/man3/SSL_set_session_secret_cb.pod" + ], "doc/html/man3/SSL_set_shutdown.html" => [ "doc/man3/SSL_set_shutdown.pod" ], @@ -12783,6 +14885,12 @@ our %unified_info = ( "doc/html/man3/SSL_state_string.html" => [ "doc/man3/SSL_state_string.pod" ], + "doc/html/man3/SSL_stream_conclude.html" => [ + "doc/man3/SSL_stream_conclude.pod" + ], + "doc/html/man3/SSL_stream_reset.html" => [ + "doc/man3/SSL_stream_reset.pod" + ], "doc/html/man3/SSL_want.html" => [ "doc/man3/SSL_want.pod" ], @@ -12792,8 +14900,8 @@ our %unified_info = ( "doc/html/man3/TS_RESP_CTX_new.html" => [ "doc/man3/TS_RESP_CTX_new.pod" ], - "doc/html/man3/TS_VERIFY_CTX_set_certs.html" => [ - "doc/man3/TS_VERIFY_CTX_set_certs.pod" + "doc/html/man3/TS_VERIFY_CTX.html" => [ + "doc/man3/TS_VERIFY_CTX.pod" ], "doc/html/man3/UI_STRING.html" => [ "doc/man3/UI_STRING.pod" @@ -12813,6 +14921,21 @@ our %unified_info = ( "doc/html/man3/X509V3_set_ctx.html" => [ "doc/man3/X509V3_set_ctx.pod" ], + "doc/html/man3/X509_ACERT_add1_attr.html" => [ + "doc/man3/X509_ACERT_add1_attr.pod" + ], + "doc/html/man3/X509_ACERT_add_attr_nconf.html" => [ + "doc/man3/X509_ACERT_add_attr_nconf.pod" + ], + "doc/html/man3/X509_ACERT_get0_holder_baseCertId.html" => [ + "doc/man3/X509_ACERT_get0_holder_baseCertId.pod" + ], + "doc/html/man3/X509_ACERT_get_attr.html" => [ + "doc/man3/X509_ACERT_get_attr.pod" + ], + "doc/html/man3/X509_ACERT_print_ex.html" => [ + "doc/man3/X509_ACERT_print_ex.pod" + ], "doc/html/man3/X509_ALGOR_dup.html" => [ "doc/man3/X509_ALGOR_dup.pod" ], @@ -12861,6 +14984,9 @@ our %unified_info = ( "doc/html/man3/X509_SIG_get0.html" => [ "doc/man3/X509_SIG_get0.pod" ], + "doc/html/man3/X509_STORE_CTX_get_by_subject.html" => [ + "doc/man3/X509_STORE_CTX_get_by_subject.pod" + ], "doc/html/man3/X509_STORE_CTX_get_error.html" => [ "doc/man3/X509_STORE_CTX_get_error.pod" ], @@ -12927,6 +15053,9 @@ our %unified_info = ( "doc/html/man3/X509_get0_uids.html" => [ "doc/man3/X509_get0_uids.pod" ], + "doc/html/man3/X509_get_default_cert_file.html" => [ + "doc/man3/X509_get_default_cert_file.pod" + ], "doc/html/man3/X509_get_extension_flags.html" => [ "doc/man3/X509_get_extension_flags.pod" ], @@ -13050,9 +15179,15 @@ our %unified_info = ( "doc/html/man7/EVP_CIPHER-SM4.html" => [ "doc/man7/EVP_CIPHER-SM4.pod" ], + "doc/html/man7/EVP_KDF-ARGON2.html" => [ + "doc/man7/EVP_KDF-ARGON2.pod" + ], "doc/html/man7/EVP_KDF-HKDF.html" => [ "doc/man7/EVP_KDF-HKDF.pod" ], + "doc/html/man7/EVP_KDF-HMAC-DRBG.html" => [ + "doc/man7/EVP_KDF-HMAC-DRBG.pod" + ], "doc/html/man7/EVP_KDF-KB.html" => [ "doc/man7/EVP_KDF-KB.pod" ], @@ -13068,6 +15203,9 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-PKCS12KDF.html" => [ "doc/man7/EVP_KDF-PKCS12KDF.pod" ], + "doc/html/man7/EVP_KDF-PVKKDF.html" => [ + "doc/man7/EVP_KDF-PVKKDF.pod" + ], "doc/html/man7/EVP_KDF-SCRYPT.html" => [ "doc/man7/EVP_KDF-SCRYPT.pod" ], @@ -13092,9 +15230,18 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-X963.html" => [ "doc/man7/EVP_KDF-X963.pod" ], + "doc/html/man7/EVP_KEM-EC.html" => [ + "doc/man7/EVP_KEM-EC.pod" + ], + "doc/html/man7/EVP_KEM-ML-KEM.html" => [ + "doc/man7/EVP_KEM-ML-KEM.pod" + ], "doc/html/man7/EVP_KEM-RSA.html" => [ "doc/man7/EVP_KEM-RSA.pod" ], + "doc/html/man7/EVP_KEM-X25519.html" => [ + "doc/man7/EVP_KEM-X25519.pod" + ], "doc/html/man7/EVP_KEYEXCH-DH.html" => [ "doc/man7/EVP_KEYEXCH-DH.pod" ], @@ -13128,6 +15275,9 @@ our %unified_info = ( "doc/html/man7/EVP_MD-BLAKE2.html" => [ "doc/man7/EVP_MD-BLAKE2.pod" ], + "doc/html/man7/EVP_MD-KECCAK.html" => [ + "doc/man7/EVP_MD-KECCAK.pod" + ], "doc/html/man7/EVP_MD-MD2.html" => [ "doc/man7/EVP_MD-MD2.pod" ], @@ -13185,15 +15335,27 @@ our %unified_info = ( "doc/html/man7/EVP_PKEY-HMAC.html" => [ "doc/man7/EVP_PKEY-HMAC.pod" ], + "doc/html/man7/EVP_PKEY-ML-DSA.html" => [ + "doc/man7/EVP_PKEY-ML-DSA.pod" + ], + "doc/html/man7/EVP_PKEY-ML-KEM.html" => [ + "doc/man7/EVP_PKEY-ML-KEM.pod" + ], "doc/html/man7/EVP_PKEY-RSA.html" => [ "doc/man7/EVP_PKEY-RSA.pod" ], + "doc/html/man7/EVP_PKEY-SLH-DSA.html" => [ + "doc/man7/EVP_PKEY-SLH-DSA.pod" + ], "doc/html/man7/EVP_PKEY-SM2.html" => [ "doc/man7/EVP_PKEY-SM2.pod" ], "doc/html/man7/EVP_PKEY-X25519.html" => [ "doc/man7/EVP_PKEY-X25519.pod" ], + "doc/html/man7/EVP_RAND-CRNG-TEST.html" => [ + "doc/man7/EVP_RAND-CRNG-TEST.pod" + ], "doc/html/man7/EVP_RAND-CTR-DRBG.html" => [ "doc/man7/EVP_RAND-CTR-DRBG.pod" ], @@ -13203,6 +15365,9 @@ our %unified_info = ( "doc/html/man7/EVP_RAND-HMAC-DRBG.html" => [ "doc/man7/EVP_RAND-HMAC-DRBG.pod" ], + "doc/html/man7/EVP_RAND-JITTER.html" => [ + "doc/man7/EVP_RAND-JITTER.pod" + ], "doc/html/man7/EVP_RAND-SEED-SRC.html" => [ "doc/man7/EVP_RAND-SEED-SRC.pod" ], @@ -13224,9 +15389,15 @@ our %unified_info = ( "doc/html/man7/EVP_SIGNATURE-HMAC.html" => [ "doc/man7/EVP_SIGNATURE-HMAC.pod" ], + "doc/html/man7/EVP_SIGNATURE-ML-DSA.html" => [ + "doc/man7/EVP_SIGNATURE-ML-DSA.pod" + ], "doc/html/man7/EVP_SIGNATURE-RSA.html" => [ "doc/man7/EVP_SIGNATURE-RSA.pod" ], + "doc/html/man7/EVP_SIGNATURE-SLH-DSA.html" => [ + "doc/man7/EVP_SIGNATURE-SLH-DSA.pod" + ], "doc/html/man7/OSSL_PROVIDER-FIPS.html" => [ "doc/man7/OSSL_PROVIDER-FIPS.pod" ], @@ -13242,6 +15413,9 @@ our %unified_info = ( "doc/html/man7/OSSL_PROVIDER-null.html" => [ "doc/man7/OSSL_PROVIDER-null.pod" ], + "doc/html/man7/OSSL_STORE-winstore.html" => [ + "doc/man7/OSSL_STORE-winstore.pod" + ], "doc/html/man7/RAND.html" => [ "doc/man7/RAND.pod" ], @@ -13254,9 +15428,6 @@ our %unified_info = ( "doc/html/man7/bio.html" => [ "doc/man7/bio.pod" ], - "doc/html/man7/crypto.html" => [ - "doc/man7/crypto.pod" - ], "doc/html/man7/ct.html" => [ "doc/man7/ct.pod" ], @@ -13287,9 +15458,6 @@ our %unified_info = ( "doc/html/man7/life_cycle-rand.html" => [ "doc/man7/life_cycle-rand.pod" ], - "doc/html/man7/migration_guide.html" => [ - "doc/man7/migration_guide.pod" - ], "doc/html/man7/openssl-core.h.html" => [ "doc/man7/openssl-core.h.pod" ], @@ -13305,12 +15473,66 @@ our %unified_info = ( "doc/html/man7/openssl-glossary.html" => [ "doc/man7/openssl-glossary.pod" ], + "doc/html/man7/openssl-qlog.html" => [ + "doc/man7/openssl-qlog.pod" + ], + "doc/html/man7/openssl-quic-concurrency.html" => [ + "doc/man7/openssl-quic-concurrency.pod" + ], + "doc/html/man7/openssl-quic.html" => [ + "doc/man7/openssl-quic.pod" + ], "doc/html/man7/openssl-threads.html" => [ "doc/man7/openssl-threads.pod" ], "doc/html/man7/openssl_user_macros.html" => [ "doc/man7/openssl_user_macros.pod" ], + "doc/html/man7/ossl-guide-introduction.html" => [ + "doc/man7/ossl-guide-introduction.pod" + ], + "doc/html/man7/ossl-guide-libcrypto-introduction.html" => [ + "doc/man7/ossl-guide-libcrypto-introduction.pod" + ], + "doc/html/man7/ossl-guide-libraries-introduction.html" => [ + "doc/man7/ossl-guide-libraries-introduction.pod" + ], + "doc/html/man7/ossl-guide-libssl-introduction.html" => [ + "doc/man7/ossl-guide-libssl-introduction.pod" + ], + "doc/html/man7/ossl-guide-migration.html" => [ + "doc/man7/ossl-guide-migration.pod" + ], + "doc/html/man7/ossl-guide-quic-client-block.html" => [ + "doc/man7/ossl-guide-quic-client-block.pod" + ], + "doc/html/man7/ossl-guide-quic-client-non-block.html" => [ + "doc/man7/ossl-guide-quic-client-non-block.pod" + ], + "doc/html/man7/ossl-guide-quic-introduction.html" => [ + "doc/man7/ossl-guide-quic-introduction.pod" + ], + "doc/html/man7/ossl-guide-quic-multi-stream.html" => [ + "doc/man7/ossl-guide-quic-multi-stream.pod" + ], + "doc/html/man7/ossl-guide-quic-server-block.html" => [ + "doc/man7/ossl-guide-quic-server-block.pod" + ], + "doc/html/man7/ossl-guide-quic-server-non-block.html" => [ + "doc/man7/ossl-guide-quic-server-non-block.pod" + ], + "doc/html/man7/ossl-guide-tls-client-block.html" => [ + "doc/man7/ossl-guide-tls-client-block.pod" + ], + "doc/html/man7/ossl-guide-tls-client-non-block.html" => [ + "doc/man7/ossl-guide-tls-client-non-block.pod" + ], + "doc/html/man7/ossl-guide-tls-introduction.html" => [ + "doc/man7/ossl-guide-tls-introduction.pod" + ], + "doc/html/man7/ossl-guide-tls-server-block.html" => [ + "doc/man7/ossl-guide-tls-server-block.pod" + ], "doc/html/man7/ossl_store-file.html" => [ "doc/man7/ossl_store-file.pod" ], @@ -13365,6 +15587,9 @@ our %unified_info = ( "doc/html/man7/provider-signature.html" => [ "doc/man7/provider-signature.pod" ], + "doc/html/man7/provider-skeymgmt.html" => [ + "doc/man7/provider-skeymgmt.pod" + ], "doc/html/man7/provider-storemgmt.html" => [ "doc/man7/provider-storemgmt.pod" ], @@ -13374,9 +15599,6 @@ our %unified_info = ( "doc/html/man7/proxy-certificates.html" => [ "doc/man7/proxy-certificates.pod" ], - "doc/html/man7/ssl.html" => [ - "doc/man7/ssl.pod" - ], "doc/html/man7/x509.html" => [ "doc/man7/x509.pod" ], @@ -13524,6 +15746,9 @@ our %unified_info = ( "doc/man/man1/openssl-sess_id.1" => [ "doc/man1/openssl-sess_id.pod" ], + "doc/man/man1/openssl-skeyutl.1" => [ + "doc/man1/openssl-skeyutl.pod" + ], "doc/man/man1/openssl-smime.1" => [ "doc/man1/openssl-smime.pod" ], @@ -13665,6 +15890,9 @@ our %unified_info = ( "doc/man/man3/BIO_get_ex_new_index.3" => [ "doc/man3/BIO_get_ex_new_index.pod" ], + "doc/man/man3/BIO_get_rpoll_descriptor.3" => [ + "doc/man3/BIO_get_rpoll_descriptor.pod" + ], "doc/man/man3/BIO_meth_new.3" => [ "doc/man3/BIO_meth_new.pod" ], @@ -13701,6 +15929,9 @@ our %unified_info = ( "doc/man/man3/BIO_s_datagram.3" => [ "doc/man3/BIO_s_datagram.pod" ], + "doc/man/man3/BIO_s_dgram_pair.3" => [ + "doc/man3/BIO_s_dgram_pair.pod" + ], "doc/man/man3/BIO_s_fd.3" => [ "doc/man3/BIO_s_fd.pod" ], @@ -13716,6 +15947,9 @@ our %unified_info = ( "doc/man/man3/BIO_s_socket.3" => [ "doc/man3/BIO_s_socket.pod" ], + "doc/man/man3/BIO_sendmmsg.3" => [ + "doc/man3/BIO_sendmmsg.pod" + ], "doc/man/man3/BIO_set_callback.3" => [ "doc/man3/BIO_set_callback.pod" ], @@ -13788,6 +16022,9 @@ our %unified_info = ( "doc/man/man3/BUF_MEM_new.3" => [ "doc/man3/BUF_MEM_new.pod" ], + "doc/man/man3/CMAC_CTX.3" => [ + "doc/man3/CMAC_CTX.pod" + ], "doc/man/man3/CMS_EncryptedData_decrypt.3" => [ "doc/man3/CMS_EncryptedData_decrypt.pod" ], @@ -13854,6 +16091,9 @@ our %unified_info = ( "doc/man/man3/CMS_verify_receipt.3" => [ "doc/man3/CMS_verify_receipt.pod" ], + "doc/man/man3/COMP_CTX_new.3" => [ + "doc/man3/COMP_CTX_new.pod" + ], "doc/man/man3/CONF_modules_free.3" => [ "doc/man3/CONF_modules_free.pod" ], @@ -13953,6 +16193,12 @@ our %unified_info = ( "doc/man/man3/DTLS_set_timer_cb.3" => [ "doc/man3/DTLS_set_timer_cb.pod" ], + "doc/man/man3/DTLSv1_get_timeout.3" => [ + "doc/man3/DTLSv1_get_timeout.pod" + ], + "doc/man/man3/DTLSv1_handle_timeout.3" => [ + "doc/man3/DTLSv1_handle_timeout.pod" + ], "doc/man/man3/DTLSv1_listen.3" => [ "doc/man3/DTLSv1_listen.pod" ], @@ -14091,6 +16337,9 @@ our %unified_info = ( "doc/man/man3/EVP_PKEY_CTX_get0_pkey.3" => [ "doc/man3/EVP_PKEY_CTX_get0_pkey.pod" ], + "doc/man/man3/EVP_PKEY_CTX_get_algor.3" => [ + "doc/man3/EVP_PKEY_CTX_get_algor.pod" + ], "doc/man/man3/EVP_PKEY_CTX_new.3" => [ "doc/man3/EVP_PKEY_CTX_new.pod" ], @@ -14208,6 +16457,12 @@ our %unified_info = ( "doc/man/man3/EVP_SIGNATURE.3" => [ "doc/man3/EVP_SIGNATURE.pod" ], + "doc/man/man3/EVP_SKEY.3" => [ + "doc/man3/EVP_SKEY.pod" + ], + "doc/man/man3/EVP_SKEYMGMT.3" => [ + "doc/man3/EVP_SKEYMGMT.pod" + ], "doc/man/man3/EVP_SealInit.3" => [ "doc/man3/EVP_SealInit.pod" ], @@ -14295,6 +16550,9 @@ our %unified_info = ( "doc/man/man3/EVP_whirlpool.3" => [ "doc/man3/EVP_whirlpool.pod" ], + "doc/man/man3/GENERAL_NAME.3" => [ + "doc/man3/GENERAL_NAME.pod" + ], "doc/man/man3/HMAC.3" => [ "doc/man3/HMAC.pod" ], @@ -14367,9 +16625,15 @@ our %unified_info = ( "doc/man/man3/OPENSSL_load_builtin_modules.3" => [ "doc/man3/OPENSSL_load_builtin_modules.pod" ], + "doc/man/man3/OPENSSL_load_u16_le.3" => [ + "doc/man3/OPENSSL_load_u16_le.pod" + ], "doc/man/man3/OPENSSL_malloc.3" => [ "doc/man3/OPENSSL_malloc.pod" ], + "doc/man/man3/OPENSSL_riscvcap.3" => [ + "doc/man3/OPENSSL_riscvcap.pod" + ], "doc/man/man3/OPENSSL_s390xcap.3" => [ "doc/man3/OPENSSL_s390xcap.pod" ], @@ -14385,12 +16649,18 @@ our %unified_info = ( "doc/man/man3/OSSL_CALLBACK.3" => [ "doc/man3/OSSL_CALLBACK.pod" ], + "doc/man/man3/OSSL_CMP_ATAV_set0.3" => [ + "doc/man3/OSSL_CMP_ATAV_set0.pod" + ], "doc/man/man3/OSSL_CMP_CTX_new.3" => [ "doc/man3/OSSL_CMP_CTX_new.pod" ], "doc/man/man3/OSSL_CMP_HDR_get0_transactionID.3" => [ "doc/man3/OSSL_CMP_HDR_get0_transactionID.pod" ], + "doc/man/man3/OSSL_CMP_ITAV_new_caCerts.3" => [ + "doc/man3/OSSL_CMP_ITAV_new_caCerts.pod" + ], "doc/man/man3/OSSL_CMP_ITAV_set0.3" => [ "doc/man3/OSSL_CMP_ITAV_set0.pod" ], @@ -14460,9 +16730,18 @@ our %unified_info = ( "doc/man/man3/OSSL_ENCODER_to_bio.3" => [ "doc/man3/OSSL_ENCODER_to_bio.pod" ], + "doc/man/man3/OSSL_ERR_STATE_save.3" => [ + "doc/man3/OSSL_ERR_STATE_save.pod" + ], "doc/man/man3/OSSL_ESS_check_signing_certs.3" => [ "doc/man3/OSSL_ESS_check_signing_certs.pod" ], + "doc/man/man3/OSSL_GENERAL_NAMES_print.3" => [ + "doc/man3/OSSL_GENERAL_NAMES_print.pod" + ], + "doc/man/man3/OSSL_HPKE_CTX_new.3" => [ + "doc/man3/OSSL_HPKE_CTX_new.pod" + ], "doc/man/man3/OSSL_HTTP_REQ_CTX.3" => [ "doc/man3/OSSL_HTTP_REQ_CTX.pod" ], @@ -14472,12 +16751,24 @@ our %unified_info = ( "doc/man/man3/OSSL_HTTP_transfer.3" => [ "doc/man3/OSSL_HTTP_transfer.pod" ], + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX.3" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX.pod" + ], + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX_print.3" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX_print.pod" + ], + "doc/man/man3/OSSL_INDICATOR_set_callback.3" => [ + "doc/man3/OSSL_INDICATOR_set_callback.pod" + ], "doc/man/man3/OSSL_ITEM.3" => [ "doc/man3/OSSL_ITEM.pod" ], "doc/man/man3/OSSL_LIB_CTX.3" => [ "doc/man3/OSSL_LIB_CTX.pod" ], + "doc/man/man3/OSSL_LIB_CTX_set_conf_diagnostics.3" => [ + "doc/man3/OSSL_LIB_CTX_set_conf_diagnostics.pod" + ], "doc/man/man3/OSSL_PARAM.3" => [ "doc/man3/OSSL_PARAM.pod" ], @@ -14493,9 +16784,15 @@ our %unified_info = ( "doc/man/man3/OSSL_PARAM_int.3" => [ "doc/man3/OSSL_PARAM_int.pod" ], + "doc/man/man3/OSSL_PARAM_print_to_bio.3" => [ + "doc/man3/OSSL_PARAM_print_to_bio.pod" + ], "doc/man/man3/OSSL_PROVIDER.3" => [ "doc/man3/OSSL_PROVIDER.pod" ], + "doc/man/man3/OSSL_QUIC_client_method.3" => [ + "doc/man3/OSSL_QUIC_client_method.pod" + ], "doc/man/man3/OSSL_SELF_TEST_new.3" => [ "doc/man3/OSSL_SELF_TEST_new.pod" ], @@ -14520,6 +16817,9 @@ our %unified_info = ( "doc/man/man3/OSSL_STORE_open.3" => [ "doc/man3/OSSL_STORE_open.pod" ], + "doc/man/man3/OSSL_sleep.3" => [ + "doc/man3/OSSL_sleep.pod" + ], "doc/man/man3/OSSL_trace_enabled.3" => [ "doc/man3/OSSL_trace_enabled.pod" ], @@ -14535,6 +16835,9 @@ our %unified_info = ( "doc/man/man3/OpenSSL_version.3" => [ "doc/man3/OpenSSL_version.pod" ], + "doc/man/man3/PBMAC1_get1_pbkdf2_param.3" => [ + "doc/man3/PBMAC1_get1_pbkdf2_param.pod" + ], "doc/man/man3/PEM_X509_INFO_read_bio_ex.3" => [ "doc/man3/PEM_X509_INFO_read_bio_ex.pod" ], @@ -14571,6 +16874,9 @@ our %unified_info = ( "doc/man/man3/PKCS12_SAFEBAG_get1_cert.3" => [ "doc/man3/PKCS12_SAFEBAG_get1_cert.pod" ], + "doc/man/man3/PKCS12_SAFEBAG_set0_attrs.3" => [ + "doc/man3/PKCS12_SAFEBAG_set0_attrs.pod" + ], "doc/man/man3/PKCS12_add1_attr_by_NID.3" => [ "doc/man3/PKCS12_add1_attr_by_NID.pod" ], @@ -14844,6 +17150,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set0_CA_list.3" => [ "doc/man3/SSL_CTX_set0_CA_list.pod" ], + "doc/man/man3/SSL_CTX_set1_cert_comp_preference.3" => [ + "doc/man3/SSL_CTX_set1_cert_comp_preference.pod" + ], "doc/man/man3/SSL_CTX_set1_curves.3" => [ "doc/man3/SSL_CTX_set1_curves.pod" ], @@ -14883,6 +17192,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_default_passwd_cb.3" => [ "doc/man3/SSL_CTX_set_default_passwd_cb.pod" ], + "doc/man/man3/SSL_CTX_set_domain_flags.3" => [ + "doc/man3/SSL_CTX_set_domain_flags.pod" + ], "doc/man/man3/SSL_CTX_set_generate_session_id.3" => [ "doc/man3/SSL_CTX_set_generate_session_id.pod" ], @@ -14904,6 +17216,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_msg_callback.3" => [ "doc/man3/SSL_CTX_set_msg_callback.pod" ], + "doc/man/man3/SSL_CTX_set_new_pending_conn_cb.3" => [ + "doc/man3/SSL_CTX_set_new_pending_conn_cb.pod" + ], "doc/man/man3/SSL_CTX_set_num_tickets.3" => [ "doc/man3/SSL_CTX_set_num_tickets.pod" ], @@ -15018,6 +17333,9 @@ our %unified_info = ( "doc/man/man3/SSL_accept.3" => [ "doc/man3/SSL_accept.pod" ], + "doc/man/man3/SSL_accept_stream.3" => [ + "doc/man3/SSL_accept_stream.pod" + ], "doc/man/man3/SSL_alert_type_string.3" => [ "doc/man3/SSL_alert_type_string.pod" ], @@ -15045,9 +17363,21 @@ our %unified_info = ( "doc/man/man3/SSL_free.3" => [ "doc/man3/SSL_free.pod" ], + "doc/man/man3/SSL_get0_connection.3" => [ + "doc/man3/SSL_get0_connection.pod" + ], + "doc/man/man3/SSL_get0_group_name.3" => [ + "doc/man3/SSL_get0_group_name.pod" + ], + "doc/man/man3/SSL_get0_peer_rpk.3" => [ + "doc/man3/SSL_get0_peer_rpk.pod" + ], "doc/man/man3/SSL_get0_peer_scts.3" => [ "doc/man3/SSL_get0_peer_scts.pod" ], + "doc/man/man3/SSL_get1_builtin_sigalgs.3" => [ + "doc/man3/SSL_get1_builtin_sigalgs.pod" + ], "doc/man/man3/SSL_get_SSL_CTX.3" => [ "doc/man3/SSL_get_SSL_CTX.pod" ], @@ -15063,6 +17393,9 @@ our %unified_info = ( "doc/man/man3/SSL_get_client_random.3" => [ "doc/man3/SSL_get_client_random.pod" ], + "doc/man/man3/SSL_get_conn_close_info.3" => [ + "doc/man3/SSL_get_conn_close_info.pod" + ], "doc/man/man3/SSL_get_current_cipher.3" => [ "doc/man3/SSL_get_current_cipher.pod" ], @@ -15072,12 +17405,18 @@ our %unified_info = ( "doc/man/man3/SSL_get_error.3" => [ "doc/man3/SSL_get_error.pod" ], + "doc/man/man3/SSL_get_event_timeout.3" => [ + "doc/man3/SSL_get_event_timeout.pod" + ], "doc/man/man3/SSL_get_extms_support.3" => [ "doc/man3/SSL_get_extms_support.pod" ], "doc/man/man3/SSL_get_fd.3" => [ "doc/man3/SSL_get_fd.pod" ], + "doc/man/man3/SSL_get_handshake_rtt.3" => [ + "doc/man3/SSL_get_handshake_rtt.pod" + ], "doc/man/man3/SSL_get_peer_cert_chain.3" => [ "doc/man3/SSL_get_peer_cert_chain.pod" ], @@ -15096,12 +17435,24 @@ our %unified_info = ( "doc/man/man3/SSL_get_rbio.3" => [ "doc/man3/SSL_get_rbio.pod" ], + "doc/man/man3/SSL_get_rpoll_descriptor.3" => [ + "doc/man3/SSL_get_rpoll_descriptor.pod" + ], "doc/man/man3/SSL_get_session.3" => [ "doc/man3/SSL_get_session.pod" ], "doc/man/man3/SSL_get_shared_sigalgs.3" => [ "doc/man3/SSL_get_shared_sigalgs.pod" ], + "doc/man/man3/SSL_get_stream_id.3" => [ + "doc/man3/SSL_get_stream_id.pod" + ], + "doc/man/man3/SSL_get_stream_read_state.3" => [ + "doc/man3/SSL_get_stream_read_state.pod" + ], + "doc/man/man3/SSL_get_value_uint.3" => [ + "doc/man3/SSL_get_value_uint.pod" + ], "doc/man/man3/SSL_get_verify_result.3" => [ "doc/man3/SSL_get_verify_result.pod" ], @@ -15111,9 +17462,15 @@ our %unified_info = ( "doc/man/man3/SSL_group_to_name.3" => [ "doc/man3/SSL_group_to_name.pod" ], + "doc/man/man3/SSL_handle_events.3" => [ + "doc/man3/SSL_handle_events.pod" + ], "doc/man/man3/SSL_in_init.3" => [ "doc/man3/SSL_in_init.pod" ], + "doc/man/man3/SSL_inject_net_dgram.3" => [ + "doc/man3/SSL_inject_net_dgram.pod" + ], "doc/man/man3/SSL_key_update.3" => [ "doc/man3/SSL_key_update.pod" ], @@ -15126,9 +17483,21 @@ our %unified_info = ( "doc/man/man3/SSL_new.3" => [ "doc/man3/SSL_new.pod" ], + "doc/man/man3/SSL_new_domain.3" => [ + "doc/man3/SSL_new_domain.pod" + ], + "doc/man/man3/SSL_new_listener.3" => [ + "doc/man3/SSL_new_listener.pod" + ], + "doc/man/man3/SSL_new_stream.3" => [ + "doc/man3/SSL_new_stream.pod" + ], "doc/man/man3/SSL_pending.3" => [ "doc/man3/SSL_pending.pod" ], + "doc/man/man3/SSL_poll.3" => [ + "doc/man3/SSL_poll.pod" + ], "doc/man/man3/SSL_read.3" => [ "doc/man3/SSL_read.pod" ], @@ -15144,24 +17513,45 @@ our %unified_info = ( "doc/man/man3/SSL_set1_host.3" => [ "doc/man3/SSL_set1_host.pod" ], + "doc/man/man3/SSL_set1_initial_peer_addr.3" => [ + "doc/man3/SSL_set1_initial_peer_addr.pod" + ], + "doc/man/man3/SSL_set1_server_cert_type.3" => [ + "doc/man3/SSL_set1_server_cert_type.pod" + ], "doc/man/man3/SSL_set_async_callback.3" => [ "doc/man3/SSL_set_async_callback.pod" ], "doc/man/man3/SSL_set_bio.3" => [ "doc/man3/SSL_set_bio.pod" ], + "doc/man/man3/SSL_set_blocking_mode.3" => [ + "doc/man3/SSL_set_blocking_mode.pod" + ], "doc/man/man3/SSL_set_connect_state.3" => [ "doc/man3/SSL_set_connect_state.pod" ], + "doc/man/man3/SSL_set_default_stream_mode.3" => [ + "doc/man3/SSL_set_default_stream_mode.pod" + ], "doc/man/man3/SSL_set_fd.3" => [ "doc/man3/SSL_set_fd.pod" ], + "doc/man/man3/SSL_set_incoming_stream_policy.3" => [ + "doc/man3/SSL_set_incoming_stream_policy.pod" + ], + "doc/man/man3/SSL_set_quic_tls_cbs.3" => [ + "doc/man3/SSL_set_quic_tls_cbs.pod" + ], "doc/man/man3/SSL_set_retry_verify.3" => [ "doc/man3/SSL_set_retry_verify.pod" ], "doc/man/man3/SSL_set_session.3" => [ "doc/man3/SSL_set_session.pod" ], + "doc/man/man3/SSL_set_session_secret_cb.3" => [ + "doc/man3/SSL_set_session_secret_cb.pod" + ], "doc/man/man3/SSL_set_shutdown.3" => [ "doc/man3/SSL_set_shutdown.pod" ], @@ -15174,6 +17564,12 @@ our %unified_info = ( "doc/man/man3/SSL_state_string.3" => [ "doc/man3/SSL_state_string.pod" ], + "doc/man/man3/SSL_stream_conclude.3" => [ + "doc/man3/SSL_stream_conclude.pod" + ], + "doc/man/man3/SSL_stream_reset.3" => [ + "doc/man3/SSL_stream_reset.pod" + ], "doc/man/man3/SSL_want.3" => [ "doc/man3/SSL_want.pod" ], @@ -15183,8 +17579,8 @@ our %unified_info = ( "doc/man/man3/TS_RESP_CTX_new.3" => [ "doc/man3/TS_RESP_CTX_new.pod" ], - "doc/man/man3/TS_VERIFY_CTX_set_certs.3" => [ - "doc/man3/TS_VERIFY_CTX_set_certs.pod" + "doc/man/man3/TS_VERIFY_CTX.3" => [ + "doc/man3/TS_VERIFY_CTX.pod" ], "doc/man/man3/UI_STRING.3" => [ "doc/man3/UI_STRING.pod" @@ -15204,6 +17600,21 @@ our %unified_info = ( "doc/man/man3/X509V3_set_ctx.3" => [ "doc/man3/X509V3_set_ctx.pod" ], + "doc/man/man3/X509_ACERT_add1_attr.3" => [ + "doc/man3/X509_ACERT_add1_attr.pod" + ], + "doc/man/man3/X509_ACERT_add_attr_nconf.3" => [ + "doc/man3/X509_ACERT_add_attr_nconf.pod" + ], + "doc/man/man3/X509_ACERT_get0_holder_baseCertId.3" => [ + "doc/man3/X509_ACERT_get0_holder_baseCertId.pod" + ], + "doc/man/man3/X509_ACERT_get_attr.3" => [ + "doc/man3/X509_ACERT_get_attr.pod" + ], + "doc/man/man3/X509_ACERT_print_ex.3" => [ + "doc/man3/X509_ACERT_print_ex.pod" + ], "doc/man/man3/X509_ALGOR_dup.3" => [ "doc/man3/X509_ALGOR_dup.pod" ], @@ -15252,6 +17663,9 @@ our %unified_info = ( "doc/man/man3/X509_SIG_get0.3" => [ "doc/man3/X509_SIG_get0.pod" ], + "doc/man/man3/X509_STORE_CTX_get_by_subject.3" => [ + "doc/man3/X509_STORE_CTX_get_by_subject.pod" + ], "doc/man/man3/X509_STORE_CTX_get_error.3" => [ "doc/man3/X509_STORE_CTX_get_error.pod" ], @@ -15318,6 +17732,9 @@ our %unified_info = ( "doc/man/man3/X509_get0_uids.3" => [ "doc/man3/X509_get0_uids.pod" ], + "doc/man/man3/X509_get_default_cert_file.3" => [ + "doc/man3/X509_get_default_cert_file.pod" + ], "doc/man/man3/X509_get_extension_flags.3" => [ "doc/man3/X509_get_extension_flags.pod" ], @@ -15441,9 +17858,15 @@ our %unified_info = ( "doc/man/man7/EVP_CIPHER-SM4.7" => [ "doc/man7/EVP_CIPHER-SM4.pod" ], + "doc/man/man7/EVP_KDF-ARGON2.7" => [ + "doc/man7/EVP_KDF-ARGON2.pod" + ], "doc/man/man7/EVP_KDF-HKDF.7" => [ "doc/man7/EVP_KDF-HKDF.pod" ], + "doc/man/man7/EVP_KDF-HMAC-DRBG.7" => [ + "doc/man7/EVP_KDF-HMAC-DRBG.pod" + ], "doc/man/man7/EVP_KDF-KB.7" => [ "doc/man7/EVP_KDF-KB.pod" ], @@ -15459,6 +17882,9 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-PKCS12KDF.7" => [ "doc/man7/EVP_KDF-PKCS12KDF.pod" ], + "doc/man/man7/EVP_KDF-PVKKDF.7" => [ + "doc/man7/EVP_KDF-PVKKDF.pod" + ], "doc/man/man7/EVP_KDF-SCRYPT.7" => [ "doc/man7/EVP_KDF-SCRYPT.pod" ], @@ -15483,9 +17909,18 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-X963.7" => [ "doc/man7/EVP_KDF-X963.pod" ], + "doc/man/man7/EVP_KEM-EC.7" => [ + "doc/man7/EVP_KEM-EC.pod" + ], + "doc/man/man7/EVP_KEM-ML-KEM.7" => [ + "doc/man7/EVP_KEM-ML-KEM.pod" + ], "doc/man/man7/EVP_KEM-RSA.7" => [ "doc/man7/EVP_KEM-RSA.pod" ], + "doc/man/man7/EVP_KEM-X25519.7" => [ + "doc/man7/EVP_KEM-X25519.pod" + ], "doc/man/man7/EVP_KEYEXCH-DH.7" => [ "doc/man7/EVP_KEYEXCH-DH.pod" ], @@ -15519,6 +17954,9 @@ our %unified_info = ( "doc/man/man7/EVP_MD-BLAKE2.7" => [ "doc/man7/EVP_MD-BLAKE2.pod" ], + "doc/man/man7/EVP_MD-KECCAK.7" => [ + "doc/man7/EVP_MD-KECCAK.pod" + ], "doc/man/man7/EVP_MD-MD2.7" => [ "doc/man7/EVP_MD-MD2.pod" ], @@ -15576,15 +18014,27 @@ our %unified_info = ( "doc/man/man7/EVP_PKEY-HMAC.7" => [ "doc/man7/EVP_PKEY-HMAC.pod" ], + "doc/man/man7/EVP_PKEY-ML-DSA.7" => [ + "doc/man7/EVP_PKEY-ML-DSA.pod" + ], + "doc/man/man7/EVP_PKEY-ML-KEM.7" => [ + "doc/man7/EVP_PKEY-ML-KEM.pod" + ], "doc/man/man7/EVP_PKEY-RSA.7" => [ "doc/man7/EVP_PKEY-RSA.pod" ], + "doc/man/man7/EVP_PKEY-SLH-DSA.7" => [ + "doc/man7/EVP_PKEY-SLH-DSA.pod" + ], "doc/man/man7/EVP_PKEY-SM2.7" => [ "doc/man7/EVP_PKEY-SM2.pod" ], "doc/man/man7/EVP_PKEY-X25519.7" => [ "doc/man7/EVP_PKEY-X25519.pod" ], + "doc/man/man7/EVP_RAND-CRNG-TEST.7" => [ + "doc/man7/EVP_RAND-CRNG-TEST.pod" + ], "doc/man/man7/EVP_RAND-CTR-DRBG.7" => [ "doc/man7/EVP_RAND-CTR-DRBG.pod" ], @@ -15594,6 +18044,9 @@ our %unified_info = ( "doc/man/man7/EVP_RAND-HMAC-DRBG.7" => [ "doc/man7/EVP_RAND-HMAC-DRBG.pod" ], + "doc/man/man7/EVP_RAND-JITTER.7" => [ + "doc/man7/EVP_RAND-JITTER.pod" + ], "doc/man/man7/EVP_RAND-SEED-SRC.7" => [ "doc/man7/EVP_RAND-SEED-SRC.pod" ], @@ -15615,9 +18068,15 @@ our %unified_info = ( "doc/man/man7/EVP_SIGNATURE-HMAC.7" => [ "doc/man7/EVP_SIGNATURE-HMAC.pod" ], + "doc/man/man7/EVP_SIGNATURE-ML-DSA.7" => [ + "doc/man7/EVP_SIGNATURE-ML-DSA.pod" + ], "doc/man/man7/EVP_SIGNATURE-RSA.7" => [ "doc/man7/EVP_SIGNATURE-RSA.pod" ], + "doc/man/man7/EVP_SIGNATURE-SLH-DSA.7" => [ + "doc/man7/EVP_SIGNATURE-SLH-DSA.pod" + ], "doc/man/man7/OSSL_PROVIDER-FIPS.7" => [ "doc/man7/OSSL_PROVIDER-FIPS.pod" ], @@ -15633,6 +18092,9 @@ our %unified_info = ( "doc/man/man7/OSSL_PROVIDER-null.7" => [ "doc/man7/OSSL_PROVIDER-null.pod" ], + "doc/man/man7/OSSL_STORE-winstore.7" => [ + "doc/man7/OSSL_STORE-winstore.pod" + ], "doc/man/man7/RAND.7" => [ "doc/man7/RAND.pod" ], @@ -15645,9 +18107,6 @@ our %unified_info = ( "doc/man/man7/bio.7" => [ "doc/man7/bio.pod" ], - "doc/man/man7/crypto.7" => [ - "doc/man7/crypto.pod" - ], "doc/man/man7/ct.7" => [ "doc/man7/ct.pod" ], @@ -15678,9 +18137,6 @@ our %unified_info = ( "doc/man/man7/life_cycle-rand.7" => [ "doc/man7/life_cycle-rand.pod" ], - "doc/man/man7/migration_guide.7" => [ - "doc/man7/migration_guide.pod" - ], "doc/man/man7/openssl-core.h.7" => [ "doc/man7/openssl-core.h.pod" ], @@ -15696,12 +18152,66 @@ our %unified_info = ( "doc/man/man7/openssl-glossary.7" => [ "doc/man7/openssl-glossary.pod" ], + "doc/man/man7/openssl-qlog.7" => [ + "doc/man7/openssl-qlog.pod" + ], + "doc/man/man7/openssl-quic-concurrency.7" => [ + "doc/man7/openssl-quic-concurrency.pod" + ], + "doc/man/man7/openssl-quic.7" => [ + "doc/man7/openssl-quic.pod" + ], "doc/man/man7/openssl-threads.7" => [ "doc/man7/openssl-threads.pod" ], "doc/man/man7/openssl_user_macros.7" => [ "doc/man7/openssl_user_macros.pod" ], + "doc/man/man7/ossl-guide-introduction.7" => [ + "doc/man7/ossl-guide-introduction.pod" + ], + "doc/man/man7/ossl-guide-libcrypto-introduction.7" => [ + "doc/man7/ossl-guide-libcrypto-introduction.pod" + ], + "doc/man/man7/ossl-guide-libraries-introduction.7" => [ + "doc/man7/ossl-guide-libraries-introduction.pod" + ], + "doc/man/man7/ossl-guide-libssl-introduction.7" => [ + "doc/man7/ossl-guide-libssl-introduction.pod" + ], + "doc/man/man7/ossl-guide-migration.7" => [ + "doc/man7/ossl-guide-migration.pod" + ], + "doc/man/man7/ossl-guide-quic-client-block.7" => [ + "doc/man7/ossl-guide-quic-client-block.pod" + ], + "doc/man/man7/ossl-guide-quic-client-non-block.7" => [ + "doc/man7/ossl-guide-quic-client-non-block.pod" + ], + "doc/man/man7/ossl-guide-quic-introduction.7" => [ + "doc/man7/ossl-guide-quic-introduction.pod" + ], + "doc/man/man7/ossl-guide-quic-multi-stream.7" => [ + "doc/man7/ossl-guide-quic-multi-stream.pod" + ], + "doc/man/man7/ossl-guide-quic-server-block.7" => [ + "doc/man7/ossl-guide-quic-server-block.pod" + ], + "doc/man/man7/ossl-guide-quic-server-non-block.7" => [ + "doc/man7/ossl-guide-quic-server-non-block.pod" + ], + "doc/man/man7/ossl-guide-tls-client-block.7" => [ + "doc/man7/ossl-guide-tls-client-block.pod" + ], + "doc/man/man7/ossl-guide-tls-client-non-block.7" => [ + "doc/man7/ossl-guide-tls-client-non-block.pod" + ], + "doc/man/man7/ossl-guide-tls-introduction.7" => [ + "doc/man7/ossl-guide-tls-introduction.pod" + ], + "doc/man/man7/ossl-guide-tls-server-block.7" => [ + "doc/man7/ossl-guide-tls-server-block.pod" + ], "doc/man/man7/ossl_store-file.7" => [ "doc/man7/ossl_store-file.pod" ], @@ -15756,6 +18266,9 @@ our %unified_info = ( "doc/man/man7/provider-signature.7" => [ "doc/man7/provider-signature.pod" ], + "doc/man/man7/provider-skeymgmt.7" => [ + "doc/man7/provider-skeymgmt.pod" + ], "doc/man/man7/provider-storemgmt.7" => [ "doc/man7/provider-storemgmt.pod" ], @@ -15765,9 +18278,6 @@ our %unified_info = ( "doc/man/man7/proxy-certificates.7" => [ "doc/man7/proxy-certificates.pod" ], - "doc/man/man7/ssl.7" => [ - "doc/man7/ssl.pod" - ], "doc/man/man7/x509.7" => [ "doc/man7/x509.pod" ], @@ -15903,6 +18413,9 @@ our %unified_info = ( "doc/man1/openssl-sess_id.pod" => [ "doc/man1/openssl-sess_id.pod.in" ], + "doc/man1/openssl-skeyutl.pod" => [ + "doc/man1/openssl-skeyutl.pod.in" + ], "doc/man1/openssl-smime.pod" => [ "doc/man1/openssl-smime.pod.in" ], @@ -15939,12 +18452,30 @@ our %unified_info = ( "engines/e_padlock-x86_64.s" => [ "engines/asm/e_padlock-x86_64.pl" ], + "exporters/OpenSSLConfig.cmake" => [ + "exporters/cmake/OpenSSLConfig.cmake.in" + ], + "exporters/OpenSSLConfigVersion.cmake" => [ + "exporters/cmake/OpenSSLConfigVersion.cmake.in" + ], + "exporters/libcrypto.pc" => [ + "exporters/pkg-config/libcrypto.pc.in" + ], + "exporters/libssl.pc" => [ + "exporters/pkg-config/libssl.pc.in" + ], + "exporters/openssl.pc" => [ + "exporters/pkg-config/openssl.pc.in" + ], "include/crypto/bn_conf.h" => [ "include/crypto/bn_conf.h.in" ], "include/crypto/dso_conf.h" => [ "include/crypto/dso_conf.h.in" ], + "include/internal/param_names.h" => [ + "include/internal/param_names.h.in" + ], "include/openssl/asn1.h" => [ "include/openssl/asn1.h.in" ], @@ -15960,12 +18491,18 @@ our %unified_info = ( "include/openssl/cms.h" => [ "include/openssl/cms.h.in" ], + "include/openssl/comp.h" => [ + "include/openssl/comp.h.in" + ], "include/openssl/conf.h" => [ "include/openssl/conf.h.in" ], "include/openssl/configuration.h" => [ "include/openssl/configuration.h.in" ], + "include/openssl/core_names.h" => [ + "include/openssl/core_names.h.in" + ], "include/openssl/crmf.h" => [ "include/openssl/crmf.h.in" ], @@ -16014,20 +18551,47 @@ our %unified_info = ( "include/openssl/x509.h" => [ "include/openssl/x509.h.in" ], + "include/openssl/x509_acert.h" => [ + "include/openssl/x509_acert.h.in" + ], "include/openssl/x509_vfy.h" => [ "include/openssl/x509_vfy.h.in" ], "include/openssl/x509v3.h" => [ "include/openssl/x509v3.h.in" ], + "installdata.pm" => [ + "util/mkinstallvars.pl", + "\"PREFIX=\$(INSTALLTOP)\"", + "BINDIR=bin", + "\"LIBDIR=\$(LIBDIR)\"", + "\"libdir=\$(libdir)\"", + "INCLUDEDIR=include", + "APPLINKDIR=include/openssl", + "\"ENGINESDIR=\$(ENGINESDIR)\"", + "\"MODULESDIR=\$(MODULESDIR)\"", + "\"PKGCONFIGDIR=\$(PKGCONFIGDIR)\"", + "\"CMAKECONFIGDIR=\$(CMAKECONFIGDIR)\"", + "\"LDLIBS=\$(LIB_EX_LIBS)\"", + "\"VERSION=\$(VERSION)\"" + ], "libcrypto.ld" => [ "util/libcrypto.num", "libcrypto" ], + "libcrypto.pc" => [ + "exporters/pkg-config/libcrypto.pc.in" + ], "libssl.ld" => [ "util/libssl.num", "libssl" ], + "libssl.pc" => [ + "exporters/pkg-config/libssl.pc.in" + ], + "openssl.pc" => [ + "exporters/pkg-config/openssl.pc.in" + ], "providers/common/der/der_digests_gen.c" => [ "providers/common/der/der_digests_gen.c.in" ], @@ -16040,9 +18604,15 @@ our %unified_info = ( "providers/common/der/der_ecx_gen.c" => [ "providers/common/der/der_ecx_gen.c.in" ], + "providers/common/der/der_ml_dsa_gen.c" => [ + "providers/common/der/der_ml_dsa_gen.c.in" + ], "providers/common/der/der_rsa_gen.c" => [ "providers/common/der/der_rsa_gen.c.in" ], + "providers/common/der/der_slh_dsa_gen.c" => [ + "providers/common/der/der_slh_dsa_gen.c.in" + ], "providers/common/der/der_sm2_gen.c" => [ "providers/common/der/der_sm2_gen.c.in" ], @@ -16061,9 +18631,15 @@ our %unified_info = ( "providers/common/include/prov/der_ecx.h" => [ "providers/common/include/prov/der_ecx.h.in" ], + "providers/common/include/prov/der_ml_dsa.h" => [ + "providers/common/include/prov/der_ml_dsa.h.in" + ], "providers/common/include/prov/der_rsa.h" => [ "providers/common/include/prov/der_rsa.h.in" ], + "providers/common/include/prov/der_slh_dsa.h" => [ + "providers/common/include/prov/der_slh_dsa.h.in" + ], "providers/common/include/prov/der_sm2.h" => [ "providers/common/include/prov/der_sm2.h.in" ], @@ -16105,6 +18681,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "buffer" ], + "test/buildtest_byteorder.c" => [ + "test/generate_buildtest.pl", + "byteorder" + ], "test/buildtest_camellia.c" => [ "test/generate_buildtest.pl", "camellia" @@ -16137,10 +18717,6 @@ our %unified_info = ( "test/generate_buildtest.pl", "core_dispatch" ], - "test/buildtest_core_names.c" => [ - "test/generate_buildtest.pl", - "core_names" - ], "test/buildtest_core_object.c" => [ "test/generate_buildtest.pl", "core_object" @@ -16173,6 +18749,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "e_os2" ], + "test/buildtest_e_ostime.c" => [ + "test/generate_buildtest.pl", + "e_ostime" + ], "test/buildtest_ebcdic.c" => [ "test/generate_buildtest.pl", "ebcdic" @@ -16209,6 +18789,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "hmac" ], + "test/buildtest_hpke.c" => [ + "test/generate_buildtest.pl", + "hpke" + ], "test/buildtest_http.c" => [ "test/generate_buildtest.pl", "http" @@ -16217,6 +18801,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "idea" ], + "test/buildtest_indicator.c" => [ + "test/generate_buildtest.pl", + "indicator" + ], "test/buildtest_kdf.c" => [ "test/generate_buildtest.pl", "kdf" @@ -16237,6 +18825,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "mdc2" ], + "test/buildtest_ml_kem.c" => [ + "test/generate_buildtest.pl", + "ml_kem" + ], "test/buildtest_modes.c" => [ "test/generate_buildtest.pl", "modes" @@ -16277,6 +18869,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "provider" ], + "test/buildtest_quic.c" => [ + "test/generate_buildtest.pl", + "quic" + ], "test/buildtest_rand.c" => [ "test/generate_buildtest.pl", "rand" @@ -16333,6 +18929,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "symhacks" ], + "test/buildtest_thread.c" => [ + "test/generate_buildtest.pl", + "thread" + ], "test/buildtest_tls1.c" => [ "test/generate_buildtest.pl", "tls1" @@ -16413,6 +19013,7 @@ our %unified_info = ( "doc/html/man1/openssl-s_server.html", "doc/html/man1/openssl-s_time.html", "doc/html/man1/openssl-sess_id.html", + "doc/html/man1/openssl-skeyutl.html", "doc/html/man1/openssl-smime.html", "doc/html/man1/openssl-speed.html", "doc/html/man1/openssl-spkac.html", @@ -16462,6 +19063,7 @@ our %unified_info = ( "doc/html/man3/BIO_find_type.html", "doc/html/man3/BIO_get_data.html", "doc/html/man3/BIO_get_ex_new_index.html", + "doc/html/man3/BIO_get_rpoll_descriptor.html", "doc/html/man3/BIO_meth_new.html", "doc/html/man3/BIO_new.html", "doc/html/man3/BIO_new_CMS.html", @@ -16474,11 +19076,13 @@ our %unified_info = ( "doc/html/man3/BIO_s_connect.html", "doc/html/man3/BIO_s_core.html", "doc/html/man3/BIO_s_datagram.html", + "doc/html/man3/BIO_s_dgram_pair.html", "doc/html/man3/BIO_s_fd.html", "doc/html/man3/BIO_s_file.html", "doc/html/man3/BIO_s_mem.html", "doc/html/man3/BIO_s_null.html", "doc/html/man3/BIO_s_socket.html", + "doc/html/man3/BIO_sendmmsg.html", "doc/html/man3/BIO_set_callback.html", "doc/html/man3/BIO_should_retry.html", "doc/html/man3/BIO_socket_wait.html", @@ -16503,6 +19107,7 @@ our %unified_info = ( "doc/html/man3/BN_swap.html", "doc/html/man3/BN_zero.html", "doc/html/man3/BUF_MEM_new.html", + "doc/html/man3/CMAC_CTX.html", "doc/html/man3/CMS_EncryptedData_decrypt.html", "doc/html/man3/CMS_EncryptedData_encrypt.html", "doc/html/man3/CMS_EnvelopedData_create.html", @@ -16525,6 +19130,7 @@ our %unified_info = ( "doc/html/man3/CMS_uncompress.html", "doc/html/man3/CMS_verify.html", "doc/html/man3/CMS_verify_receipt.html", + "doc/html/man3/COMP_CTX_new.html", "doc/html/man3/CONF_modules_free.html", "doc/html/man3/CONF_modules_load_file.html", "doc/html/man3/CRYPTO_THREAD_run_once.html", @@ -16558,6 +19164,8 @@ our %unified_info = ( "doc/html/man3/DSA_size.html", "doc/html/man3/DTLS_get_data_mtu.html", "doc/html/man3/DTLS_set_timer_cb.html", + "doc/html/man3/DTLSv1_get_timeout.html", + "doc/html/man3/DTLSv1_handle_timeout.html", "doc/html/man3/DTLSv1_listen.html", "doc/html/man3/ECDSA_SIG_new.html", "doc/html/man3/ECDSA_sign.html", @@ -16604,6 +19212,7 @@ our %unified_info = ( "doc/html/man3/EVP_PKEY_CTX_ctrl.html", "doc/html/man3/EVP_PKEY_CTX_get0_libctx.html", "doc/html/man3/EVP_PKEY_CTX_get0_pkey.html", + "doc/html/man3/EVP_PKEY_CTX_get_algor.html", "doc/html/man3/EVP_PKEY_CTX_new.html", "doc/html/man3/EVP_PKEY_CTX_set1_pbe_pass.html", "doc/html/man3/EVP_PKEY_CTX_set_hkdf_md.html", @@ -16643,6 +19252,8 @@ our %unified_info = ( "doc/html/man3/EVP_PKEY_verify_recover.html", "doc/html/man3/EVP_RAND.html", "doc/html/man3/EVP_SIGNATURE.html", + "doc/html/man3/EVP_SKEY.html", + "doc/html/man3/EVP_SKEYMGMT.html", "doc/html/man3/EVP_SealInit.html", "doc/html/man3/EVP_SignInit.html", "doc/html/man3/EVP_VerifyInit.html", @@ -16672,6 +19283,7 @@ our %unified_info = ( "doc/html/man3/EVP_sm3.html", "doc/html/man3/EVP_sm4_cbc.html", "doc/html/man3/EVP_whirlpool.html", + "doc/html/man3/GENERAL_NAME.html", "doc/html/man3/HMAC.html", "doc/html/man3/MD5.html", "doc/html/man3/MDC2_Init.html", @@ -16696,14 +19308,18 @@ our %unified_info = ( "doc/html/man3/OPENSSL_init_ssl.html", "doc/html/man3/OPENSSL_instrument_bus.html", "doc/html/man3/OPENSSL_load_builtin_modules.html", + "doc/html/man3/OPENSSL_load_u16_le.html", "doc/html/man3/OPENSSL_malloc.html", + "doc/html/man3/OPENSSL_riscvcap.html", "doc/html/man3/OPENSSL_s390xcap.html", "doc/html/man3/OPENSSL_secure_malloc.html", "doc/html/man3/OPENSSL_strcasecmp.html", "doc/html/man3/OSSL_ALGORITHM.html", "doc/html/man3/OSSL_CALLBACK.html", + "doc/html/man3/OSSL_CMP_ATAV_set0.html", "doc/html/man3/OSSL_CMP_CTX_new.html", "doc/html/man3/OSSL_CMP_HDR_get0_transactionID.html", + "doc/html/man3/OSSL_CMP_ITAV_new_caCerts.html", "doc/html/man3/OSSL_CMP_ITAV_set0.html", "doc/html/man3/OSSL_CMP_MSG_get0_header.html", "doc/html/man3/OSSL_CMP_MSG_http_perform.html", @@ -16727,18 +19343,27 @@ our %unified_info = ( "doc/html/man3/OSSL_ENCODER_CTX.html", "doc/html/man3/OSSL_ENCODER_CTX_new_for_pkey.html", "doc/html/man3/OSSL_ENCODER_to_bio.html", + "doc/html/man3/OSSL_ERR_STATE_save.html", "doc/html/man3/OSSL_ESS_check_signing_certs.html", + "doc/html/man3/OSSL_GENERAL_NAMES_print.html", + "doc/html/man3/OSSL_HPKE_CTX_new.html", "doc/html/man3/OSSL_HTTP_REQ_CTX.html", "doc/html/man3/OSSL_HTTP_parse_url.html", "doc/html/man3/OSSL_HTTP_transfer.html", + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX.html", + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX_print.html", + "doc/html/man3/OSSL_INDICATOR_set_callback.html", "doc/html/man3/OSSL_ITEM.html", "doc/html/man3/OSSL_LIB_CTX.html", + "doc/html/man3/OSSL_LIB_CTX_set_conf_diagnostics.html", "doc/html/man3/OSSL_PARAM.html", "doc/html/man3/OSSL_PARAM_BLD.html", "doc/html/man3/OSSL_PARAM_allocate_from_text.html", "doc/html/man3/OSSL_PARAM_dup.html", "doc/html/man3/OSSL_PARAM_int.html", + "doc/html/man3/OSSL_PARAM_print_to_bio.html", "doc/html/man3/OSSL_PROVIDER.html", + "doc/html/man3/OSSL_QUIC_client_method.html", "doc/html/man3/OSSL_SELF_TEST_new.html", "doc/html/man3/OSSL_SELF_TEST_set_callback.html", "doc/html/man3/OSSL_STORE_INFO.html", @@ -16747,11 +19372,13 @@ our %unified_info = ( "doc/html/man3/OSSL_STORE_attach.html", "doc/html/man3/OSSL_STORE_expect.html", "doc/html/man3/OSSL_STORE_open.html", + "doc/html/man3/OSSL_sleep.html", "doc/html/man3/OSSL_trace_enabled.html", "doc/html/man3/OSSL_trace_get_category_num.html", "doc/html/man3/OSSL_trace_set_channel.html", "doc/html/man3/OpenSSL_add_all_algorithms.html", "doc/html/man3/OpenSSL_version.html", + "doc/html/man3/PBMAC1_get1_pbkdf2_param.html", "doc/html/man3/PEM_X509_INFO_read_bio_ex.html", "doc/html/man3/PEM_bytes_read_bio.html", "doc/html/man3/PEM_read.html", @@ -16764,6 +19391,7 @@ our %unified_info = ( "doc/html/man3/PKCS12_SAFEBAG_create_cert.html", "doc/html/man3/PKCS12_SAFEBAG_get0_attrs.html", "doc/html/man3/PKCS12_SAFEBAG_get1_cert.html", + "doc/html/man3/PKCS12_SAFEBAG_set0_attrs.html", "doc/html/man3/PKCS12_add1_attr_by_NID.html", "doc/html/man3/PKCS12_add_CSPName_asc.html", "doc/html/man3/PKCS12_add_cert.html", @@ -16855,6 +19483,7 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_sess_set_get_cb.html", "doc/html/man3/SSL_CTX_sessions.html", "doc/html/man3/SSL_CTX_set0_CA_list.html", + "doc/html/man3/SSL_CTX_set1_cert_comp_preference.html", "doc/html/man3/SSL_CTX_set1_curves.html", "doc/html/man3/SSL_CTX_set1_sigalgs.html", "doc/html/man3/SSL_CTX_set1_verify_cert_store.html", @@ -16868,6 +19497,7 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_ct_validation_callback.html", "doc/html/man3/SSL_CTX_set_ctlog_list_file.html", "doc/html/man3/SSL_CTX_set_default_passwd_cb.html", + "doc/html/man3/SSL_CTX_set_domain_flags.html", "doc/html/man3/SSL_CTX_set_generate_session_id.html", "doc/html/man3/SSL_CTX_set_info_callback.html", "doc/html/man3/SSL_CTX_set_keylog_callback.html", @@ -16875,6 +19505,7 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_min_proto_version.html", "doc/html/man3/SSL_CTX_set_mode.html", "doc/html/man3/SSL_CTX_set_msg_callback.html", + "doc/html/man3/SSL_CTX_set_new_pending_conn_cb.html", "doc/html/man3/SSL_CTX_set_num_tickets.html", "doc/html/man3/SSL_CTX_set_options.html", "doc/html/man3/SSL_CTX_set_psk_client_callback.html", @@ -16913,6 +19544,7 @@ our %unified_info = ( "doc/html/man3/SSL_SESSION_print.html", "doc/html/man3/SSL_SESSION_set1_id.html", "doc/html/man3/SSL_accept.html", + "doc/html/man3/SSL_accept_stream.html", "doc/html/man3/SSL_alert_type_string.html", "doc/html/man3/SSL_alloc_buffers.html", "doc/html/man3/SSL_check_chain.html", @@ -16922,59 +19554,90 @@ our %unified_info = ( "doc/html/man3/SSL_export_keying_material.html", "doc/html/man3/SSL_extension_supported.html", "doc/html/man3/SSL_free.html", + "doc/html/man3/SSL_get0_connection.html", + "doc/html/man3/SSL_get0_group_name.html", + "doc/html/man3/SSL_get0_peer_rpk.html", "doc/html/man3/SSL_get0_peer_scts.html", + "doc/html/man3/SSL_get1_builtin_sigalgs.html", "doc/html/man3/SSL_get_SSL_CTX.html", "doc/html/man3/SSL_get_all_async_fds.html", "doc/html/man3/SSL_get_certificate.html", "doc/html/man3/SSL_get_ciphers.html", "doc/html/man3/SSL_get_client_random.html", + "doc/html/man3/SSL_get_conn_close_info.html", "doc/html/man3/SSL_get_current_cipher.html", "doc/html/man3/SSL_get_default_timeout.html", "doc/html/man3/SSL_get_error.html", + "doc/html/man3/SSL_get_event_timeout.html", "doc/html/man3/SSL_get_extms_support.html", "doc/html/man3/SSL_get_fd.html", + "doc/html/man3/SSL_get_handshake_rtt.html", "doc/html/man3/SSL_get_peer_cert_chain.html", "doc/html/man3/SSL_get_peer_certificate.html", "doc/html/man3/SSL_get_peer_signature_nid.html", "doc/html/man3/SSL_get_peer_tmp_key.html", "doc/html/man3/SSL_get_psk_identity.html", "doc/html/man3/SSL_get_rbio.html", + "doc/html/man3/SSL_get_rpoll_descriptor.html", "doc/html/man3/SSL_get_session.html", "doc/html/man3/SSL_get_shared_sigalgs.html", + "doc/html/man3/SSL_get_stream_id.html", + "doc/html/man3/SSL_get_stream_read_state.html", + "doc/html/man3/SSL_get_value_uint.html", "doc/html/man3/SSL_get_verify_result.html", "doc/html/man3/SSL_get_version.html", "doc/html/man3/SSL_group_to_name.html", + "doc/html/man3/SSL_handle_events.html", "doc/html/man3/SSL_in_init.html", + "doc/html/man3/SSL_inject_net_dgram.html", "doc/html/man3/SSL_key_update.html", "doc/html/man3/SSL_library_init.html", "doc/html/man3/SSL_load_client_CA_file.html", "doc/html/man3/SSL_new.html", + "doc/html/man3/SSL_new_domain.html", + "doc/html/man3/SSL_new_listener.html", + "doc/html/man3/SSL_new_stream.html", "doc/html/man3/SSL_pending.html", + "doc/html/man3/SSL_poll.html", "doc/html/man3/SSL_read.html", "doc/html/man3/SSL_read_early_data.html", "doc/html/man3/SSL_rstate_string.html", "doc/html/man3/SSL_session_reused.html", "doc/html/man3/SSL_set1_host.html", + "doc/html/man3/SSL_set1_initial_peer_addr.html", + "doc/html/man3/SSL_set1_server_cert_type.html", "doc/html/man3/SSL_set_async_callback.html", "doc/html/man3/SSL_set_bio.html", + "doc/html/man3/SSL_set_blocking_mode.html", "doc/html/man3/SSL_set_connect_state.html", + "doc/html/man3/SSL_set_default_stream_mode.html", "doc/html/man3/SSL_set_fd.html", + "doc/html/man3/SSL_set_incoming_stream_policy.html", + "doc/html/man3/SSL_set_quic_tls_cbs.html", "doc/html/man3/SSL_set_retry_verify.html", "doc/html/man3/SSL_set_session.html", + "doc/html/man3/SSL_set_session_secret_cb.html", "doc/html/man3/SSL_set_shutdown.html", "doc/html/man3/SSL_set_verify_result.html", "doc/html/man3/SSL_shutdown.html", "doc/html/man3/SSL_state_string.html", + "doc/html/man3/SSL_stream_conclude.html", + "doc/html/man3/SSL_stream_reset.html", "doc/html/man3/SSL_want.html", "doc/html/man3/SSL_write.html", "doc/html/man3/TS_RESP_CTX_new.html", - "doc/html/man3/TS_VERIFY_CTX_set_certs.html", + "doc/html/man3/TS_VERIFY_CTX.html", "doc/html/man3/UI_STRING.html", "doc/html/man3/UI_UTIL_read_pw.html", "doc/html/man3/UI_create_method.html", "doc/html/man3/UI_new.html", "doc/html/man3/X509V3_get_d2i.html", "doc/html/man3/X509V3_set_ctx.html", + "doc/html/man3/X509_ACERT_add1_attr.html", + "doc/html/man3/X509_ACERT_add_attr_nconf.html", + "doc/html/man3/X509_ACERT_get0_holder_baseCertId.html", + "doc/html/man3/X509_ACERT_get_attr.html", + "doc/html/man3/X509_ACERT_print_ex.html", "doc/html/man3/X509_ALGOR_dup.html", "doc/html/man3/X509_ATTRIBUTE.html", "doc/html/man3/X509_CRL_get0_by_serial.html", @@ -16991,6 +19654,7 @@ our %unified_info = ( "doc/html/man3/X509_REQ_get_attr.html", "doc/html/man3/X509_REQ_get_extensions.html", "doc/html/man3/X509_SIG_get0.html", + "doc/html/man3/X509_STORE_CTX_get_by_subject.html", "doc/html/man3/X509_STORE_CTX_get_error.html", "doc/html/man3/X509_STORE_CTX_new.html", "doc/html/man3/X509_STORE_CTX_set_verify_cb.html", @@ -17013,6 +19677,7 @@ our %unified_info = ( "doc/html/man3/X509_get0_notBefore.html", "doc/html/man3/X509_get0_signature.html", "doc/html/man3/X509_get0_uids.html", + "doc/html/man3/X509_get_default_cert_file.html", "doc/html/man3/X509_get_extension_flags.html", "doc/html/man3/X509_get_pubkey.html", "doc/html/man3/X509_get_serialNumber.html", @@ -17058,12 +19723,15 @@ our %unified_info = ( "doc/html/man7/EVP_CIPHER-RC5.html", "doc/html/man7/EVP_CIPHER-SEED.html", "doc/html/man7/EVP_CIPHER-SM4.html", + "doc/html/man7/EVP_KDF-ARGON2.html", "doc/html/man7/EVP_KDF-HKDF.html", + "doc/html/man7/EVP_KDF-HMAC-DRBG.html", "doc/html/man7/EVP_KDF-KB.html", "doc/html/man7/EVP_KDF-KRB5KDF.html", "doc/html/man7/EVP_KDF-PBKDF1.html", "doc/html/man7/EVP_KDF-PBKDF2.html", "doc/html/man7/EVP_KDF-PKCS12KDF.html", + "doc/html/man7/EVP_KDF-PVKKDF.html", "doc/html/man7/EVP_KDF-SCRYPT.html", "doc/html/man7/EVP_KDF-SS.html", "doc/html/man7/EVP_KDF-SSHKDF.html", @@ -17072,7 +19740,10 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-X942-ASN1.html", "doc/html/man7/EVP_KDF-X942-CONCAT.html", "doc/html/man7/EVP_KDF-X963.html", + "doc/html/man7/EVP_KEM-EC.html", + "doc/html/man7/EVP_KEM-ML-KEM.html", "doc/html/man7/EVP_KEM-RSA.html", + "doc/html/man7/EVP_KEM-X25519.html", "doc/html/man7/EVP_KEYEXCH-DH.html", "doc/html/man7/EVP_KEYEXCH-ECDH.html", "doc/html/man7/EVP_KEYEXCH-X25519.html", @@ -17084,6 +19755,7 @@ our %unified_info = ( "doc/html/man7/EVP_MAC-Poly1305.html", "doc/html/man7/EVP_MAC-Siphash.html", "doc/html/man7/EVP_MD-BLAKE2.html", + "doc/html/man7/EVP_MD-KECCAK.html", "doc/html/man7/EVP_MD-MD2.html", "doc/html/man7/EVP_MD-MD4.html", "doc/html/man7/EVP_MD-MD5-SHA1.html", @@ -17103,12 +19775,17 @@ our %unified_info = ( "doc/html/man7/EVP_PKEY-EC.html", "doc/html/man7/EVP_PKEY-FFC.html", "doc/html/man7/EVP_PKEY-HMAC.html", + "doc/html/man7/EVP_PKEY-ML-DSA.html", + "doc/html/man7/EVP_PKEY-ML-KEM.html", "doc/html/man7/EVP_PKEY-RSA.html", + "doc/html/man7/EVP_PKEY-SLH-DSA.html", "doc/html/man7/EVP_PKEY-SM2.html", "doc/html/man7/EVP_PKEY-X25519.html", + "doc/html/man7/EVP_RAND-CRNG-TEST.html", "doc/html/man7/EVP_RAND-CTR-DRBG.html", "doc/html/man7/EVP_RAND-HASH-DRBG.html", "doc/html/man7/EVP_RAND-HMAC-DRBG.html", + "doc/html/man7/EVP_RAND-JITTER.html", "doc/html/man7/EVP_RAND-SEED-SRC.html", "doc/html/man7/EVP_RAND-TEST-RAND.html", "doc/html/man7/EVP_RAND.html", @@ -17116,17 +19793,19 @@ our %unified_info = ( "doc/html/man7/EVP_SIGNATURE-ECDSA.html", "doc/html/man7/EVP_SIGNATURE-ED25519.html", "doc/html/man7/EVP_SIGNATURE-HMAC.html", + "doc/html/man7/EVP_SIGNATURE-ML-DSA.html", "doc/html/man7/EVP_SIGNATURE-RSA.html", + "doc/html/man7/EVP_SIGNATURE-SLH-DSA.html", "doc/html/man7/OSSL_PROVIDER-FIPS.html", "doc/html/man7/OSSL_PROVIDER-base.html", "doc/html/man7/OSSL_PROVIDER-default.html", "doc/html/man7/OSSL_PROVIDER-legacy.html", "doc/html/man7/OSSL_PROVIDER-null.html", + "doc/html/man7/OSSL_STORE-winstore.html", "doc/html/man7/RAND.html", "doc/html/man7/RSA-PSS.html", "doc/html/man7/X25519.html", "doc/html/man7/bio.html", - "doc/html/man7/crypto.html", "doc/html/man7/ct.html", "doc/html/man7/des_modes.html", "doc/html/man7/evp.html", @@ -17137,14 +19816,31 @@ our %unified_info = ( "doc/html/man7/life_cycle-mac.html", "doc/html/man7/life_cycle-pkey.html", "doc/html/man7/life_cycle-rand.html", - "doc/html/man7/migration_guide.html", "doc/html/man7/openssl-core.h.html", "doc/html/man7/openssl-core_dispatch.h.html", "doc/html/man7/openssl-core_names.h.html", "doc/html/man7/openssl-env.html", "doc/html/man7/openssl-glossary.html", + "doc/html/man7/openssl-qlog.html", + "doc/html/man7/openssl-quic-concurrency.html", + "doc/html/man7/openssl-quic.html", "doc/html/man7/openssl-threads.html", "doc/html/man7/openssl_user_macros.html", + "doc/html/man7/ossl-guide-introduction.html", + "doc/html/man7/ossl-guide-libcrypto-introduction.html", + "doc/html/man7/ossl-guide-libraries-introduction.html", + "doc/html/man7/ossl-guide-libssl-introduction.html", + "doc/html/man7/ossl-guide-migration.html", + "doc/html/man7/ossl-guide-quic-client-block.html", + "doc/html/man7/ossl-guide-quic-client-non-block.html", + "doc/html/man7/ossl-guide-quic-introduction.html", + "doc/html/man7/ossl-guide-quic-multi-stream.html", + "doc/html/man7/ossl-guide-quic-server-block.html", + "doc/html/man7/ossl-guide-quic-server-non-block.html", + "doc/html/man7/ossl-guide-tls-client-block.html", + "doc/html/man7/ossl-guide-tls-client-non-block.html", + "doc/html/man7/ossl-guide-tls-introduction.html", + "doc/html/man7/ossl-guide-tls-server-block.html", "doc/html/man7/ossl_store-file.html", "doc/html/man7/ossl_store.html", "doc/html/man7/passphrase-encoding.html", @@ -17163,10 +19859,10 @@ our %unified_info = ( "doc/html/man7/provider-object.html", "doc/html/man7/provider-rand.html", "doc/html/man7/provider-signature.html", + "doc/html/man7/provider-skeymgmt.html", "doc/html/man7/provider-storemgmt.html", "doc/html/man7/provider.html", "doc/html/man7/proxy-certificates.html", - "doc/html/man7/ssl.html", "doc/html/man7/x509.html" ] }, @@ -17181,12 +19877,21 @@ our %unified_info = ( ] }, "includes" => { + "OpenSSLConfig.cmake" => [ + "." + ], + "OpenSSLConfigVersion.cmake" => [ + "." + ], "apps/asn1parse.o" => [ "apps" ], "apps/ca.o" => [ "apps" ], + "apps/ca_internals_test-bin-ca.o" => [ + "apps" + ], "apps/ciphers.o" => [ "apps" ], @@ -17413,6 +20118,9 @@ our %unified_info = ( "apps/openssl-bin-sess_id.o" => [ "apps" ], + "apps/openssl-bin-skeyutl.o" => [ + "apps" + ], "apps/openssl-bin-smime.o" => [ "apps" ], @@ -17500,6 +20208,9 @@ our %unified_info = ( "apps/sess_id.o" => [ "apps" ], + "apps/skeyutl.o" => [ + "apps" + ], "apps/smime.o" => [ "apps" ], @@ -17551,6 +20262,12 @@ our %unified_info = ( "crypto/aes/bsaes-armv7.o" => [ "crypto" ], + "crypto/aes/vpaes-armv8.o" => [ + "crypto" + ], + "crypto/aes/vpaes-loongarch64.o" => [ + "crypto" + ], "crypto/arm64cpuid.o" => [ "crypto" ], @@ -17602,9 +20319,15 @@ our %unified_info = ( "crypto/chacha/chacha-armv4.o" => [ "crypto" ], + "crypto/chacha/chacha-armv8-sve.o" => [ + "crypto" + ], "crypto/chacha/chacha-armv8.o" => [ "crypto" ], + "crypto/chacha/chacha-loongarch64.o" => [ + "crypto" + ], "crypto/chacha/chacha-s390x.o" => [ "crypto" ], @@ -17629,15 +20352,27 @@ our %unified_info = ( "crypto/ec/ecp_s390x_nistp.o" => [ "crypto" ], + "crypto/ec/ecp_sm2p256-armv8.o" => [ + "crypto" + ], + "crypto/ec/ecx_key.o" => [ + "crypto" + ], "crypto/ec/ecx_meth.o" => [ "crypto" ], "crypto/ec/ecx_s390x.o" => [ "crypto" ], + "crypto/ec/libcrypto-lib-ecx_key.o" => [ + "crypto" + ], "crypto/ec/libcrypto-lib-ecx_meth.o" => [ "crypto" ], + "crypto/ec/libfips-lib-ecx_key.o" => [ + "crypto" + ], "crypto/evp/e_aes.o" => [ "crypto", "crypto/modes" @@ -17709,9 +20444,18 @@ our %unified_info = ( "crypto/libfips-lib-cpuid.o" => [ "." ], + "crypto/md5/md5-aarch64.o" => [ + "crypto" + ], + "crypto/md5/md5-loongarch64.o" => [ + "crypto" + ], "crypto/md5/md5-sparcv9.o" => [ "crypto" ], + "crypto/modes/aes-gcm-armv8-unroll8_64.o" => [ + "crypto" + ], "crypto/modes/aes-gcm-armv8_64.o" => [ "crypto" ], @@ -17736,6 +20480,9 @@ our %unified_info = ( "crypto/modes/libfips-lib-gcm128.o" => [ "crypto" ], + "crypto/params_idx.c" => [ + "util/perl" + ], "crypto/poly1305/poly1305-armv4.o" => [ "crypto" ], @@ -17757,6 +20504,9 @@ our %unified_info = ( "crypto/sha/keccak1600-armv4.o" => [ "crypto" ], + "crypto/sha/keccak1600-armv8.o" => [ + "crypto" + ], "crypto/sha/sha1-armv4-large.o" => [ "crypto" ], @@ -17802,6 +20552,18 @@ our %unified_info = ( "crypto/sha/sha512-sparcv9.o" => [ "crypto" ], + "crypto/sm3/sm3-armv8.o" => [ + "crypto" + ], + "crypto/sm4/sm4-armv8.o" => [ + "crypto" + ], + "crypto/sm4/vpsm4-armv8.o" => [ + "crypto" + ], + "crypto/sm4/vpsm4_ex-armv8.o" => [ + "crypto" + ], "doc/man1/openssl-asn1parse.pod" => [ "doc" ], @@ -17934,6 +20696,9 @@ our %unified_info = ( "doc/man1/openssl-sess_id.pod" => [ "doc" ], + "doc/man1/openssl-skeyutl.pod" => [ + "doc" + ], "doc/man1/openssl-smime.pod" => [ "doc" ], @@ -17961,6 +20726,24 @@ our %unified_info = ( "doc/man1/openssl-x509.pod" => [ "doc" ], + "exporters/OpenSSLConfig.cmake" => [ + "." + ], + "exporters/OpenSSLConfigVersion.cmake" => [ + "." + ], + "exporters/libcrypto.pc" => [ + "." + ], + "exporters/libssl.pc" => [ + "." + ], + "exporters/openssl.pc" => [ + "." + ], + "fuzz/acert-test" => [ + "include" + ], "fuzz/asn1-test" => [ "include" ], @@ -17991,12 +20774,69 @@ our %unified_info = ( "fuzz/ct-test" => [ "include" ], + "fuzz/decoder-test" => [ + "include" + ], + "fuzz/dtlsclient-test" => [ + "include" + ], + "fuzz/dtlsserver-test" => [ + "include" + ], + "fuzz/hashtable-test" => [ + "include" + ], + "fuzz/ml-dsa-test" => [ + "include" + ], + "fuzz/ml-kem-test" => [ + "include" + ], + "fuzz/pem-test" => [ + "include" + ], + "fuzz/provider-test" => [ + "include" + ], + "fuzz/punycode-test" => [ + "include" + ], + "fuzz/quic-client-test" => [ + "include" + ], + "fuzz/quic-lcidm-test" => [ + "include" + ], + "fuzz/quic-rcidm-test" => [ + "include" + ], + "fuzz/quic-server-test" => [ + "include" + ], + "fuzz/quic-srtm-test" => [ + "include" + ], "fuzz/server-test" => [ "include" ], + "fuzz/slh-dsa-test" => [ + "include" + ], + "fuzz/smime-test" => [ + "include" + ], + "fuzz/v3name-test" => [ + "include" + ], "fuzz/x509-test" => [ "include" ], + "include/internal/param_names.h" => [ + "util/perl" + ], + "include/openssl/core_names.h" => [ + "util/perl" + ], "libcrypto" => [ ".", "include", @@ -18007,6 +20847,9 @@ our %unified_info = ( ".", "util/perl/OpenSSL" ], + "libcrypto.pc" => [ + "." + ], "libssl" => [ ".", "include" @@ -18015,6 +20858,12 @@ our %unified_info = ( ".", "util/perl/OpenSSL" ], + "libssl.pc" => [ + "." + ], + "openssl.pc" => [ + "." + ], "providers/common/der/der_digests_gen.c" => [ "providers/common/der" ], @@ -18054,6 +20903,15 @@ our %unified_info = ( "providers/common/der/der_ecx_key.o" => [ "providers/common/include/prov" ], + "providers/common/der/der_ml_dsa_gen.c" => [ + "providers/common/der" + ], + "providers/common/der/der_ml_dsa_gen.o" => [ + "providers/common/include/prov" + ], + "providers/common/der/der_ml_dsa_key.o" => [ + "providers/common/include/prov" + ], "providers/common/der/der_rsa_gen.c" => [ "providers/common/der" ], @@ -18066,6 +20924,15 @@ our %unified_info = ( "providers/common/der/der_rsa_sig.o" => [ "providers/common/include/prov" ], + "providers/common/der/der_slh_dsa_gen.c" => [ + "providers/common/der" + ], + "providers/common/der/der_slh_dsa_gen.o" => [ + "providers/common/include/prov" + ], + "providers/common/der/der_slh_dsa_key.o" => [ + "providers/common/include/prov" + ], "providers/common/der/der_sm2_gen.c" => [ "providers/common/der" ], @@ -18111,12 +20978,24 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ecx_key.o" => [ "providers/common/include/prov" ], + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o" => [ + "providers/common/include/prov" + ], + "providers/common/der/libcommon-lib-der_ml_dsa_key.o" => [ + "providers/common/include/prov" + ], "providers/common/der/libcommon-lib-der_rsa_gen.o" => [ "providers/common/include/prov" ], "providers/common/der/libcommon-lib-der_rsa_key.o" => [ "providers/common/include/prov" ], + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o" => [ + "providers/common/include/prov" + ], + "providers/common/der/libcommon-lib-der_slh_dsa_key.o" => [ + "providers/common/include/prov" + ], "providers/common/der/libcommon-lib-der_wrap_gen.o" => [ "providers/common/include/prov" ], @@ -18147,9 +21026,15 @@ our %unified_info = ( "providers/common/include/prov/der_ecx.h" => [ "providers/common/der" ], + "providers/common/include/prov/der_ml_dsa.h" => [ + "providers/common/der" + ], "providers/common/include/prov/der_rsa.h" => [ "providers/common/der" ], + "providers/common/include/prov/der_slh_dsa.h" => [ + "providers/common/der" + ], "providers/common/include/prov/der_sm2.h" => [ "providers/common/der" ], @@ -18192,9 +21077,15 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-eddsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/libdefault-lib-rsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/libdefault-lib-sm2_sig.o" => [ "providers/common/include/prov" ], @@ -18207,12 +21098,24 @@ our %unified_info = ( "providers/implementations/signature/libfips-lib-eddsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/libfips-lib-rsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o" => [ + "providers/common/include/prov" + ], + "providers/implementations/signature/ml_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/rsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/slh_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/sm2_sig.o" => [ "providers/common/include/prov" ], @@ -18225,28 +21128,39 @@ our %unified_info = ( "crypto", "include", "providers/implementations/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" ], "providers/libdefault.a" => [ ".", "crypto", "include", "providers/implementations/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" ], "providers/libfips.a" => [ ".", "crypto", "include", "providers/implementations/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" ], "providers/liblegacy.a" => [ ".", "crypto", "include", "providers/implementations/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" + ], + "providers/libtemplate.a" => [ + "crypto", + "include", + "providers/implementations/include", + "providers/common/include", + "providers/fips/include" ], "test/aborttest" => [ "include", @@ -18315,6 +21229,14 @@ our %unified_info = ( "include", "apps/include" ], + "test/bio_addr_test" => [ + "include", + "apps/include" + ], + "test/bio_base64_test" => [ + "include", + "apps/include" + ], "test/bio_callback_test" => [ "include", "apps/include" @@ -18323,6 +21245,11 @@ our %unified_info = ( "include", "apps/include" ], + "test/bio_dgram_test" => [ + "include", + "apps/include", + "." + ], "test/bio_enc_test" => [ "include", "apps/include" @@ -18331,6 +21258,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/bio_meth_test" => [ + "include", + "apps/include" + ], "test/bio_prefix_text" => [ ".", "include", @@ -18344,6 +21275,11 @@ our %unified_info = ( "include", "apps/include" ], + "test/bio_tfo_test" => [ + "include", + "apps/include", + "." + ], "test/bioprinttest" => [ "include", "apps/include" @@ -18358,6 +21294,9 @@ our %unified_info = ( "include", "apps/include" ], + "test/build_wincrypt_test" => [ + "include" + ], "test/buildtest_c_aes" => [ "include" ], @@ -18373,6 +21312,9 @@ our %unified_info = ( "test/buildtest_c_buffer" => [ "include" ], + "test/buildtest_c_byteorder" => [ + "include" + ], "test/buildtest_c_camellia" => [ "include" ], @@ -18397,9 +21339,6 @@ our %unified_info = ( "test/buildtest_c_core_dispatch" => [ "include" ], - "test/buildtest_c_core_names" => [ - "include" - ], "test/buildtest_c_core_object" => [ "include" ], @@ -18424,6 +21363,9 @@ our %unified_info = ( "test/buildtest_c_e_os2" => [ "include" ], + "test/buildtest_c_e_ostime" => [ + "include" + ], "test/buildtest_c_ebcdic" => [ "include" ], @@ -18451,12 +21393,18 @@ our %unified_info = ( "test/buildtest_c_hmac" => [ "include" ], + "test/buildtest_c_hpke" => [ + "include" + ], "test/buildtest_c_http" => [ "include" ], "test/buildtest_c_idea" => [ "include" ], + "test/buildtest_c_indicator" => [ + "include" + ], "test/buildtest_c_kdf" => [ "include" ], @@ -18472,6 +21420,9 @@ our %unified_info = ( "test/buildtest_c_mdc2" => [ "include" ], + "test/buildtest_c_ml_kem" => [ + "include" + ], "test/buildtest_c_modes" => [ "include" ], @@ -18502,6 +21453,9 @@ our %unified_info = ( "test/buildtest_c_provider" => [ "include" ], + "test/buildtest_c_quic" => [ + "include" + ], "test/buildtest_c_rand" => [ "include" ], @@ -18544,6 +21498,9 @@ our %unified_info = ( "test/buildtest_c_symhacks" => [ "include" ], + "test/buildtest_c_thread" => [ + "include" + ], "test/buildtest_c_tls1" => [ "include" ], @@ -18559,10 +21516,24 @@ our %unified_info = ( "test/buildtest_c_whrlpool" => [ "include" ], + "test/byteorder_test" => [ + "include", + "apps/include" + ], + "test/ca_internals_test" => [ + ".", + "include", + "apps/include" + ], "test/casttest" => [ "include", "apps/include" ], + "test/cert_comp_test" => [ + "include", + "apps/include", + "." + ], "test/chacha_internal_test" => [ ".", "include", @@ -18686,6 +21657,11 @@ our %unified_info = ( "include", "apps/include" ], + "test/decoder_propq_test" => [ + ".", + "include", + "apps/include" + ], "test/defltfips_test" => [ "include", "apps/include" @@ -18701,7 +21677,8 @@ our %unified_info = ( "test/drbgtest" => [ "include", "apps/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" ], "test/dsa_no_digest_size_test" => [ "include", @@ -18744,7 +21721,9 @@ our %unified_info = ( "test/endecode_test" => [ ".", "include", - "apps/include" + "apps/include", + "providers/common/include", + "providers/implementations/include" ], "test/endecoder_legacy_test" => [ ".", @@ -18789,6 +21768,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/evp_pkey_dhkem_test" => [ + "include", + "apps/include" + ], "test/evp_pkey_dparams_test" => [ "include", "apps/include" @@ -18797,10 +21780,18 @@ our %unified_info = ( "include", "apps/include" ], + "test/evp_skey_test" => [ + "include", + "apps/include" + ], "test/evp_test" => [ "include", "apps/include" ], + "test/evp_xof_test" => [ + "include", + "apps/include" + ], "test/exdatatest" => [ "include", "apps/include" @@ -18901,22 +21892,62 @@ our %unified_info = ( ".", "include" ], + "test/helpers/json_test-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/helpers/pkcs12.o" => [ ".", "include" ], + "test/helpers/pkcs12_api_test-bin-pkcs12.o" => [ + ".", + "include" + ], "test/helpers/pkcs12_format_test-bin-pkcs12.o" => [ ".", "include" ], + "test/helpers/quic_multistream_test-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quic_newcid_test-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quic_radix_test-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quic_srt_gen_test-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quicapitest-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quicfaultstest-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/helpers/recordlentest-bin-ssltestlib.o" => [ ".", "include" ], + "test/helpers/rpktest-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/helpers/servername_test-bin-ssltestlib.o" => [ ".", "include" ], + "test/helpers/ssl_handshake_rtt_test-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/helpers/ssl_test-bin-handshake.o" => [ ".", "include" @@ -18950,6 +21981,10 @@ our %unified_info = ( ".", "include" ], + "test/helpers/tls13groupselection_test-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/hexstr_test" => [ ".", "include", @@ -18959,6 +21994,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/hpke_test" => [ + "include", + "apps/include" + ], "test/http_test" => [ "include", "apps/include" @@ -18971,6 +22010,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/json_test" => [ + "include", + "apps/include" + ], "test/keymgmt_internal_test" => [ ".", "include", @@ -18985,6 +22028,10 @@ our %unified_info = ( "apps/include", "." ], + "test/list_test" => [ + "include", + "apps/include" + ], "test/localetest" => [ "include", "apps/include" @@ -18998,10 +22045,27 @@ our %unified_info = ( "include", "apps/include" ], + "test/membio_test" => [ + "include", + "apps/include", + "." + ], "test/memleaktest" => [ "include", "apps/include" ], + "test/ml_dsa_test" => [ + "include", + "apps/include" + ], + "test/ml_kem_evp_extra_test" => [ + "include", + "apps/include" + ], + "test/ml_kem_internal_test" => [ + "include", + "apps/include" + ], "test/modes_internal_test" => [ ".", "include", @@ -19036,6 +22100,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/pairwise_fail_test" => [ + "include", + "apps/include" + ], "test/param_build_test" => [ "include", "apps/include" @@ -19069,6 +22137,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/pkcs12_api_test" => [ + "include", + "apps/include" + ], "test/pkcs12_format_test" => [ "include", "apps/include" @@ -19090,6 +22162,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/priority_queue_test" => [ + "include", + "apps/include" + ], "test/property_test" => [ ".", "include", @@ -19103,6 +22179,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/provider_default_search_path_test" => [ + "include", + "apps/include" + ], "test/provider_fallback_test" => [ "include", "apps/include" @@ -19129,6 +22209,97 @@ our %unified_info = ( "include", "apps/include" ], + "test/quic_ackm_test" => [ + "include", + "apps/include" + ], + "test/quic_cc_test" => [ + "include", + "apps/include" + ], + "test/quic_cfq_test" => [ + "include", + "apps/include" + ], + "test/quic_client_test" => [ + "include", + "apps/include" + ], + "test/quic_fc_test" => [ + "include", + "apps/include" + ], + "test/quic_fifd_test" => [ + "include", + "apps/include" + ], + "test/quic_lcidm_test" => [ + "include", + "apps/include" + ], + "test/quic_multistream_test" => [ + "include", + "apps/include" + ], + "test/quic_newcid_test" => [ + "include", + "apps/include", + "." + ], + "test/quic_qlog_test" => [ + "include", + "apps/include" + ], + "test/quic_radix_test" => [ + "include", + "apps/include" + ], + "test/quic_rcidm_test" => [ + "include", + "apps/include" + ], + "test/quic_record_test" => [ + "include", + "apps/include" + ], + "test/quic_srt_gen_test" => [ + "include", + "apps/include", + "." + ], + "test/quic_srtm_test" => [ + "include", + "apps/include" + ], + "test/quic_stream_test" => [ + "include", + "apps/include" + ], + "test/quic_tserver_test" => [ + "include", + "apps/include" + ], + "test/quic_txp_test" => [ + "include", + "apps/include" + ], + "test/quic_txpim_test" => [ + "include", + "apps/include" + ], + "test/quic_wire_test" => [ + "include", + "apps/include" + ], + "test/quicapitest" => [ + "include", + "apps/include" + ], + "test/quicfaultstest" => [ + "include", + "apps/include", + "." + ], "test/rand_status_test" => [ "include", "apps/include" @@ -19149,14 +22320,20 @@ our %unified_info = ( "include", "apps/include" ], - "test/rdrand_sanitytest" => [ + "test/rdcpu_sanitytest" => [ "include", - "apps/include" + "apps/include", + "crypto" ], "test/recordlentest" => [ "include", "apps/include" ], + "test/rpktest" => [ + "include", + "apps/include", + "." + ], "test/rsa_complex" => [ "include", "apps/include" @@ -19175,6 +22352,15 @@ our %unified_info = ( "include", "apps/include" ], + "test/rsa_x931_test" => [ + ".", + "include", + "apps/include" + ], + "test/safe_math_test" => [ + "include", + "apps/include" + ], "test/sanitytest" => [ "include", "apps/include" @@ -19196,6 +22382,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/slh_dsa_test" => [ + "include", + "apps/include" + ], "test/sm2_internal_test" => [ "include", "apps/include" @@ -19226,6 +22416,11 @@ our %unified_info = ( "include", "apps/include" ], + "test/ssl_handshake_rtt_test" => [ + "include", + "apps/include", + "." + ], "test/ssl_old_test" => [ ".", "include", @@ -19242,6 +22437,7 @@ our %unified_info = ( "test/sslapitest" => [ "include", "apps/include", + "providers/common/include", "." ], "test/sslbuffertest" => [ @@ -19256,6 +22452,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/strtoultest" => [ + "include", + "apps/include" + ], "test/sysdefaulttest" => [ "include", "apps/include" @@ -19264,7 +22464,13 @@ our %unified_info = ( "include", "apps/include" ], + "test/threadpool_test" => [ + ".", + "include", + "apps/include" + ], "test/threadstest" => [ + ".", "include", "apps/include" ], @@ -19276,6 +22482,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/time_test" => [ + "include", + "apps/include" + ], "test/tls13ccstest" => [ "include", "apps/include" @@ -19285,6 +22495,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/tls13groupselection_test" => [ + "include", + "apps/include" + ], "test/trace_api_test" => [ ".", "include", @@ -19323,6 +22537,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/x509_acert_test" => [ + "include", + "apps/include" + ], "test/x509_check_cert_pkey_test" => [ "include", "apps/include" @@ -19336,6 +22554,18 @@ our %unified_info = ( "include", "apps/include" ], + "test/x509_load_cert_file_test" => [ + "include", + "apps/include" + ], + "test/x509_req_test" => [ + "include", + "apps/include" + ], + "test/x509_test" => [ + "include", + "apps/include" + ], "test/x509_time_test" => [ "include", "apps/include" @@ -19357,6 +22587,7 @@ our %unified_info = ( "providers/libdefault.a", "providers/libfips.a", "providers/liblegacy.a", + "providers/libtemplate.a", "test/libtestutil.a" ], "mandocs" => { @@ -19409,6 +22640,7 @@ our %unified_info = ( "doc/man/man1/openssl-s_server.1", "doc/man/man1/openssl-s_time.1", "doc/man/man1/openssl-sess_id.1", + "doc/man/man1/openssl-skeyutl.1", "doc/man/man1/openssl-smime.1", "doc/man/man1/openssl-speed.1", "doc/man/man1/openssl-spkac.1", @@ -19458,6 +22690,7 @@ our %unified_info = ( "doc/man/man3/BIO_find_type.3", "doc/man/man3/BIO_get_data.3", "doc/man/man3/BIO_get_ex_new_index.3", + "doc/man/man3/BIO_get_rpoll_descriptor.3", "doc/man/man3/BIO_meth_new.3", "doc/man/man3/BIO_new.3", "doc/man/man3/BIO_new_CMS.3", @@ -19470,11 +22703,13 @@ our %unified_info = ( "doc/man/man3/BIO_s_connect.3", "doc/man/man3/BIO_s_core.3", "doc/man/man3/BIO_s_datagram.3", + "doc/man/man3/BIO_s_dgram_pair.3", "doc/man/man3/BIO_s_fd.3", "doc/man/man3/BIO_s_file.3", "doc/man/man3/BIO_s_mem.3", "doc/man/man3/BIO_s_null.3", "doc/man/man3/BIO_s_socket.3", + "doc/man/man3/BIO_sendmmsg.3", "doc/man/man3/BIO_set_callback.3", "doc/man/man3/BIO_should_retry.3", "doc/man/man3/BIO_socket_wait.3", @@ -19499,6 +22734,7 @@ our %unified_info = ( "doc/man/man3/BN_swap.3", "doc/man/man3/BN_zero.3", "doc/man/man3/BUF_MEM_new.3", + "doc/man/man3/CMAC_CTX.3", "doc/man/man3/CMS_EncryptedData_decrypt.3", "doc/man/man3/CMS_EncryptedData_encrypt.3", "doc/man/man3/CMS_EnvelopedData_create.3", @@ -19521,6 +22757,7 @@ our %unified_info = ( "doc/man/man3/CMS_uncompress.3", "doc/man/man3/CMS_verify.3", "doc/man/man3/CMS_verify_receipt.3", + "doc/man/man3/COMP_CTX_new.3", "doc/man/man3/CONF_modules_free.3", "doc/man/man3/CONF_modules_load_file.3", "doc/man/man3/CRYPTO_THREAD_run_once.3", @@ -19554,6 +22791,8 @@ our %unified_info = ( "doc/man/man3/DSA_size.3", "doc/man/man3/DTLS_get_data_mtu.3", "doc/man/man3/DTLS_set_timer_cb.3", + "doc/man/man3/DTLSv1_get_timeout.3", + "doc/man/man3/DTLSv1_handle_timeout.3", "doc/man/man3/DTLSv1_listen.3", "doc/man/man3/ECDSA_SIG_new.3", "doc/man/man3/ECDSA_sign.3", @@ -19600,6 +22839,7 @@ our %unified_info = ( "doc/man/man3/EVP_PKEY_CTX_ctrl.3", "doc/man/man3/EVP_PKEY_CTX_get0_libctx.3", "doc/man/man3/EVP_PKEY_CTX_get0_pkey.3", + "doc/man/man3/EVP_PKEY_CTX_get_algor.3", "doc/man/man3/EVP_PKEY_CTX_new.3", "doc/man/man3/EVP_PKEY_CTX_set1_pbe_pass.3", "doc/man/man3/EVP_PKEY_CTX_set_hkdf_md.3", @@ -19639,6 +22879,8 @@ our %unified_info = ( "doc/man/man3/EVP_PKEY_verify_recover.3", "doc/man/man3/EVP_RAND.3", "doc/man/man3/EVP_SIGNATURE.3", + "doc/man/man3/EVP_SKEY.3", + "doc/man/man3/EVP_SKEYMGMT.3", "doc/man/man3/EVP_SealInit.3", "doc/man/man3/EVP_SignInit.3", "doc/man/man3/EVP_VerifyInit.3", @@ -19668,6 +22910,7 @@ our %unified_info = ( "doc/man/man3/EVP_sm3.3", "doc/man/man3/EVP_sm4_cbc.3", "doc/man/man3/EVP_whirlpool.3", + "doc/man/man3/GENERAL_NAME.3", "doc/man/man3/HMAC.3", "doc/man/man3/MD5.3", "doc/man/man3/MDC2_Init.3", @@ -19692,14 +22935,18 @@ our %unified_info = ( "doc/man/man3/OPENSSL_init_ssl.3", "doc/man/man3/OPENSSL_instrument_bus.3", "doc/man/man3/OPENSSL_load_builtin_modules.3", + "doc/man/man3/OPENSSL_load_u16_le.3", "doc/man/man3/OPENSSL_malloc.3", + "doc/man/man3/OPENSSL_riscvcap.3", "doc/man/man3/OPENSSL_s390xcap.3", "doc/man/man3/OPENSSL_secure_malloc.3", "doc/man/man3/OPENSSL_strcasecmp.3", "doc/man/man3/OSSL_ALGORITHM.3", "doc/man/man3/OSSL_CALLBACK.3", + "doc/man/man3/OSSL_CMP_ATAV_set0.3", "doc/man/man3/OSSL_CMP_CTX_new.3", "doc/man/man3/OSSL_CMP_HDR_get0_transactionID.3", + "doc/man/man3/OSSL_CMP_ITAV_new_caCerts.3", "doc/man/man3/OSSL_CMP_ITAV_set0.3", "doc/man/man3/OSSL_CMP_MSG_get0_header.3", "doc/man/man3/OSSL_CMP_MSG_http_perform.3", @@ -19723,18 +22970,27 @@ our %unified_info = ( "doc/man/man3/OSSL_ENCODER_CTX.3", "doc/man/man3/OSSL_ENCODER_CTX_new_for_pkey.3", "doc/man/man3/OSSL_ENCODER_to_bio.3", + "doc/man/man3/OSSL_ERR_STATE_save.3", "doc/man/man3/OSSL_ESS_check_signing_certs.3", + "doc/man/man3/OSSL_GENERAL_NAMES_print.3", + "doc/man/man3/OSSL_HPKE_CTX_new.3", "doc/man/man3/OSSL_HTTP_REQ_CTX.3", "doc/man/man3/OSSL_HTTP_parse_url.3", "doc/man/man3/OSSL_HTTP_transfer.3", + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX.3", + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX_print.3", + "doc/man/man3/OSSL_INDICATOR_set_callback.3", "doc/man/man3/OSSL_ITEM.3", "doc/man/man3/OSSL_LIB_CTX.3", + "doc/man/man3/OSSL_LIB_CTX_set_conf_diagnostics.3", "doc/man/man3/OSSL_PARAM.3", "doc/man/man3/OSSL_PARAM_BLD.3", "doc/man/man3/OSSL_PARAM_allocate_from_text.3", "doc/man/man3/OSSL_PARAM_dup.3", "doc/man/man3/OSSL_PARAM_int.3", + "doc/man/man3/OSSL_PARAM_print_to_bio.3", "doc/man/man3/OSSL_PROVIDER.3", + "doc/man/man3/OSSL_QUIC_client_method.3", "doc/man/man3/OSSL_SELF_TEST_new.3", "doc/man/man3/OSSL_SELF_TEST_set_callback.3", "doc/man/man3/OSSL_STORE_INFO.3", @@ -19743,11 +22999,13 @@ our %unified_info = ( "doc/man/man3/OSSL_STORE_attach.3", "doc/man/man3/OSSL_STORE_expect.3", "doc/man/man3/OSSL_STORE_open.3", + "doc/man/man3/OSSL_sleep.3", "doc/man/man3/OSSL_trace_enabled.3", "doc/man/man3/OSSL_trace_get_category_num.3", "doc/man/man3/OSSL_trace_set_channel.3", "doc/man/man3/OpenSSL_add_all_algorithms.3", "doc/man/man3/OpenSSL_version.3", + "doc/man/man3/PBMAC1_get1_pbkdf2_param.3", "doc/man/man3/PEM_X509_INFO_read_bio_ex.3", "doc/man/man3/PEM_bytes_read_bio.3", "doc/man/man3/PEM_read.3", @@ -19760,6 +23018,7 @@ our %unified_info = ( "doc/man/man3/PKCS12_SAFEBAG_create_cert.3", "doc/man/man3/PKCS12_SAFEBAG_get0_attrs.3", "doc/man/man3/PKCS12_SAFEBAG_get1_cert.3", + "doc/man/man3/PKCS12_SAFEBAG_set0_attrs.3", "doc/man/man3/PKCS12_add1_attr_by_NID.3", "doc/man/man3/PKCS12_add_CSPName_asc.3", "doc/man/man3/PKCS12_add_cert.3", @@ -19851,6 +23110,7 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_sess_set_get_cb.3", "doc/man/man3/SSL_CTX_sessions.3", "doc/man/man3/SSL_CTX_set0_CA_list.3", + "doc/man/man3/SSL_CTX_set1_cert_comp_preference.3", "doc/man/man3/SSL_CTX_set1_curves.3", "doc/man/man3/SSL_CTX_set1_sigalgs.3", "doc/man/man3/SSL_CTX_set1_verify_cert_store.3", @@ -19864,6 +23124,7 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_ct_validation_callback.3", "doc/man/man3/SSL_CTX_set_ctlog_list_file.3", "doc/man/man3/SSL_CTX_set_default_passwd_cb.3", + "doc/man/man3/SSL_CTX_set_domain_flags.3", "doc/man/man3/SSL_CTX_set_generate_session_id.3", "doc/man/man3/SSL_CTX_set_info_callback.3", "doc/man/man3/SSL_CTX_set_keylog_callback.3", @@ -19871,6 +23132,7 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_min_proto_version.3", "doc/man/man3/SSL_CTX_set_mode.3", "doc/man/man3/SSL_CTX_set_msg_callback.3", + "doc/man/man3/SSL_CTX_set_new_pending_conn_cb.3", "doc/man/man3/SSL_CTX_set_num_tickets.3", "doc/man/man3/SSL_CTX_set_options.3", "doc/man/man3/SSL_CTX_set_psk_client_callback.3", @@ -19909,6 +23171,7 @@ our %unified_info = ( "doc/man/man3/SSL_SESSION_print.3", "doc/man/man3/SSL_SESSION_set1_id.3", "doc/man/man3/SSL_accept.3", + "doc/man/man3/SSL_accept_stream.3", "doc/man/man3/SSL_alert_type_string.3", "doc/man/man3/SSL_alloc_buffers.3", "doc/man/man3/SSL_check_chain.3", @@ -19918,59 +23181,90 @@ our %unified_info = ( "doc/man/man3/SSL_export_keying_material.3", "doc/man/man3/SSL_extension_supported.3", "doc/man/man3/SSL_free.3", + "doc/man/man3/SSL_get0_connection.3", + "doc/man/man3/SSL_get0_group_name.3", + "doc/man/man3/SSL_get0_peer_rpk.3", "doc/man/man3/SSL_get0_peer_scts.3", + "doc/man/man3/SSL_get1_builtin_sigalgs.3", "doc/man/man3/SSL_get_SSL_CTX.3", "doc/man/man3/SSL_get_all_async_fds.3", "doc/man/man3/SSL_get_certificate.3", "doc/man/man3/SSL_get_ciphers.3", "doc/man/man3/SSL_get_client_random.3", + "doc/man/man3/SSL_get_conn_close_info.3", "doc/man/man3/SSL_get_current_cipher.3", "doc/man/man3/SSL_get_default_timeout.3", "doc/man/man3/SSL_get_error.3", + "doc/man/man3/SSL_get_event_timeout.3", "doc/man/man3/SSL_get_extms_support.3", "doc/man/man3/SSL_get_fd.3", + "doc/man/man3/SSL_get_handshake_rtt.3", "doc/man/man3/SSL_get_peer_cert_chain.3", "doc/man/man3/SSL_get_peer_certificate.3", "doc/man/man3/SSL_get_peer_signature_nid.3", "doc/man/man3/SSL_get_peer_tmp_key.3", "doc/man/man3/SSL_get_psk_identity.3", "doc/man/man3/SSL_get_rbio.3", + "doc/man/man3/SSL_get_rpoll_descriptor.3", "doc/man/man3/SSL_get_session.3", "doc/man/man3/SSL_get_shared_sigalgs.3", + "doc/man/man3/SSL_get_stream_id.3", + "doc/man/man3/SSL_get_stream_read_state.3", + "doc/man/man3/SSL_get_value_uint.3", "doc/man/man3/SSL_get_verify_result.3", "doc/man/man3/SSL_get_version.3", "doc/man/man3/SSL_group_to_name.3", + "doc/man/man3/SSL_handle_events.3", "doc/man/man3/SSL_in_init.3", + "doc/man/man3/SSL_inject_net_dgram.3", "doc/man/man3/SSL_key_update.3", "doc/man/man3/SSL_library_init.3", "doc/man/man3/SSL_load_client_CA_file.3", "doc/man/man3/SSL_new.3", + "doc/man/man3/SSL_new_domain.3", + "doc/man/man3/SSL_new_listener.3", + "doc/man/man3/SSL_new_stream.3", "doc/man/man3/SSL_pending.3", + "doc/man/man3/SSL_poll.3", "doc/man/man3/SSL_read.3", "doc/man/man3/SSL_read_early_data.3", "doc/man/man3/SSL_rstate_string.3", "doc/man/man3/SSL_session_reused.3", "doc/man/man3/SSL_set1_host.3", + "doc/man/man3/SSL_set1_initial_peer_addr.3", + "doc/man/man3/SSL_set1_server_cert_type.3", "doc/man/man3/SSL_set_async_callback.3", "doc/man/man3/SSL_set_bio.3", + "doc/man/man3/SSL_set_blocking_mode.3", "doc/man/man3/SSL_set_connect_state.3", + "doc/man/man3/SSL_set_default_stream_mode.3", "doc/man/man3/SSL_set_fd.3", + "doc/man/man3/SSL_set_incoming_stream_policy.3", + "doc/man/man3/SSL_set_quic_tls_cbs.3", "doc/man/man3/SSL_set_retry_verify.3", "doc/man/man3/SSL_set_session.3", + "doc/man/man3/SSL_set_session_secret_cb.3", "doc/man/man3/SSL_set_shutdown.3", "doc/man/man3/SSL_set_verify_result.3", "doc/man/man3/SSL_shutdown.3", "doc/man/man3/SSL_state_string.3", + "doc/man/man3/SSL_stream_conclude.3", + "doc/man/man3/SSL_stream_reset.3", "doc/man/man3/SSL_want.3", "doc/man/man3/SSL_write.3", "doc/man/man3/TS_RESP_CTX_new.3", - "doc/man/man3/TS_VERIFY_CTX_set_certs.3", + "doc/man/man3/TS_VERIFY_CTX.3", "doc/man/man3/UI_STRING.3", "doc/man/man3/UI_UTIL_read_pw.3", "doc/man/man3/UI_create_method.3", "doc/man/man3/UI_new.3", "doc/man/man3/X509V3_get_d2i.3", "doc/man/man3/X509V3_set_ctx.3", + "doc/man/man3/X509_ACERT_add1_attr.3", + "doc/man/man3/X509_ACERT_add_attr_nconf.3", + "doc/man/man3/X509_ACERT_get0_holder_baseCertId.3", + "doc/man/man3/X509_ACERT_get_attr.3", + "doc/man/man3/X509_ACERT_print_ex.3", "doc/man/man3/X509_ALGOR_dup.3", "doc/man/man3/X509_ATTRIBUTE.3", "doc/man/man3/X509_CRL_get0_by_serial.3", @@ -19987,6 +23281,7 @@ our %unified_info = ( "doc/man/man3/X509_REQ_get_attr.3", "doc/man/man3/X509_REQ_get_extensions.3", "doc/man/man3/X509_SIG_get0.3", + "doc/man/man3/X509_STORE_CTX_get_by_subject.3", "doc/man/man3/X509_STORE_CTX_get_error.3", "doc/man/man3/X509_STORE_CTX_new.3", "doc/man/man3/X509_STORE_CTX_set_verify_cb.3", @@ -20009,6 +23304,7 @@ our %unified_info = ( "doc/man/man3/X509_get0_notBefore.3", "doc/man/man3/X509_get0_signature.3", "doc/man/man3/X509_get0_uids.3", + "doc/man/man3/X509_get_default_cert_file.3", "doc/man/man3/X509_get_extension_flags.3", "doc/man/man3/X509_get_pubkey.3", "doc/man/man3/X509_get_serialNumber.3", @@ -20054,12 +23350,15 @@ our %unified_info = ( "doc/man/man7/EVP_CIPHER-RC5.7", "doc/man/man7/EVP_CIPHER-SEED.7", "doc/man/man7/EVP_CIPHER-SM4.7", + "doc/man/man7/EVP_KDF-ARGON2.7", "doc/man/man7/EVP_KDF-HKDF.7", + "doc/man/man7/EVP_KDF-HMAC-DRBG.7", "doc/man/man7/EVP_KDF-KB.7", "doc/man/man7/EVP_KDF-KRB5KDF.7", "doc/man/man7/EVP_KDF-PBKDF1.7", "doc/man/man7/EVP_KDF-PBKDF2.7", "doc/man/man7/EVP_KDF-PKCS12KDF.7", + "doc/man/man7/EVP_KDF-PVKKDF.7", "doc/man/man7/EVP_KDF-SCRYPT.7", "doc/man/man7/EVP_KDF-SS.7", "doc/man/man7/EVP_KDF-SSHKDF.7", @@ -20068,7 +23367,10 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-X942-ASN1.7", "doc/man/man7/EVP_KDF-X942-CONCAT.7", "doc/man/man7/EVP_KDF-X963.7", + "doc/man/man7/EVP_KEM-EC.7", + "doc/man/man7/EVP_KEM-ML-KEM.7", "doc/man/man7/EVP_KEM-RSA.7", + "doc/man/man7/EVP_KEM-X25519.7", "doc/man/man7/EVP_KEYEXCH-DH.7", "doc/man/man7/EVP_KEYEXCH-ECDH.7", "doc/man/man7/EVP_KEYEXCH-X25519.7", @@ -20080,6 +23382,7 @@ our %unified_info = ( "doc/man/man7/EVP_MAC-Poly1305.7", "doc/man/man7/EVP_MAC-Siphash.7", "doc/man/man7/EVP_MD-BLAKE2.7", + "doc/man/man7/EVP_MD-KECCAK.7", "doc/man/man7/EVP_MD-MD2.7", "doc/man/man7/EVP_MD-MD4.7", "doc/man/man7/EVP_MD-MD5-SHA1.7", @@ -20099,12 +23402,17 @@ our %unified_info = ( "doc/man/man7/EVP_PKEY-EC.7", "doc/man/man7/EVP_PKEY-FFC.7", "doc/man/man7/EVP_PKEY-HMAC.7", + "doc/man/man7/EVP_PKEY-ML-DSA.7", + "doc/man/man7/EVP_PKEY-ML-KEM.7", "doc/man/man7/EVP_PKEY-RSA.7", + "doc/man/man7/EVP_PKEY-SLH-DSA.7", "doc/man/man7/EVP_PKEY-SM2.7", "doc/man/man7/EVP_PKEY-X25519.7", + "doc/man/man7/EVP_RAND-CRNG-TEST.7", "doc/man/man7/EVP_RAND-CTR-DRBG.7", "doc/man/man7/EVP_RAND-HASH-DRBG.7", "doc/man/man7/EVP_RAND-HMAC-DRBG.7", + "doc/man/man7/EVP_RAND-JITTER.7", "doc/man/man7/EVP_RAND-SEED-SRC.7", "doc/man/man7/EVP_RAND-TEST-RAND.7", "doc/man/man7/EVP_RAND.7", @@ -20112,17 +23420,19 @@ our %unified_info = ( "doc/man/man7/EVP_SIGNATURE-ECDSA.7", "doc/man/man7/EVP_SIGNATURE-ED25519.7", "doc/man/man7/EVP_SIGNATURE-HMAC.7", + "doc/man/man7/EVP_SIGNATURE-ML-DSA.7", "doc/man/man7/EVP_SIGNATURE-RSA.7", + "doc/man/man7/EVP_SIGNATURE-SLH-DSA.7", "doc/man/man7/OSSL_PROVIDER-FIPS.7", "doc/man/man7/OSSL_PROVIDER-base.7", "doc/man/man7/OSSL_PROVIDER-default.7", "doc/man/man7/OSSL_PROVIDER-legacy.7", "doc/man/man7/OSSL_PROVIDER-null.7", + "doc/man/man7/OSSL_STORE-winstore.7", "doc/man/man7/RAND.7", "doc/man/man7/RSA-PSS.7", "doc/man/man7/X25519.7", "doc/man/man7/bio.7", - "doc/man/man7/crypto.7", "doc/man/man7/ct.7", "doc/man/man7/des_modes.7", "doc/man/man7/evp.7", @@ -20133,14 +23443,31 @@ our %unified_info = ( "doc/man/man7/life_cycle-mac.7", "doc/man/man7/life_cycle-pkey.7", "doc/man/man7/life_cycle-rand.7", - "doc/man/man7/migration_guide.7", "doc/man/man7/openssl-core.h.7", "doc/man/man7/openssl-core_dispatch.h.7", "doc/man/man7/openssl-core_names.h.7", "doc/man/man7/openssl-env.7", "doc/man/man7/openssl-glossary.7", + "doc/man/man7/openssl-qlog.7", + "doc/man/man7/openssl-quic-concurrency.7", + "doc/man/man7/openssl-quic.7", "doc/man/man7/openssl-threads.7", "doc/man/man7/openssl_user_macros.7", + "doc/man/man7/ossl-guide-introduction.7", + "doc/man/man7/ossl-guide-libcrypto-introduction.7", + "doc/man/man7/ossl-guide-libraries-introduction.7", + "doc/man/man7/ossl-guide-libssl-introduction.7", + "doc/man/man7/ossl-guide-migration.7", + "doc/man/man7/ossl-guide-quic-client-block.7", + "doc/man/man7/ossl-guide-quic-client-non-block.7", + "doc/man/man7/ossl-guide-quic-introduction.7", + "doc/man/man7/ossl-guide-quic-multi-stream.7", + "doc/man/man7/ossl-guide-quic-server-block.7", + "doc/man/man7/ossl-guide-quic-server-non-block.7", + "doc/man/man7/ossl-guide-tls-client-block.7", + "doc/man/man7/ossl-guide-tls-client-non-block.7", + "doc/man/man7/ossl-guide-tls-introduction.7", + "doc/man/man7/ossl-guide-tls-server-block.7", "doc/man/man7/ossl_store-file.7", "doc/man/man7/ossl_store.7", "doc/man/man7/passphrase-encoding.7", @@ -20159,10 +23486,10 @@ our %unified_info = ( "doc/man/man7/provider-object.7", "doc/man/man7/provider-rand.7", "doc/man/man7/provider-signature.7", + "doc/man/man7/provider-skeymgmt.7", "doc/man/man7/provider-storemgmt.7", "doc/man/man7/provider.7", "doc/man/man7/proxy-certificates.7", - "doc/man/man7/ssl.7", "doc/man/man7/x509.7" ] }, @@ -20174,6 +23501,7 @@ our %unified_info = ( ], "programs" => [ "apps/openssl", + "fuzz/acert-test", "fuzz/asn1-test", "fuzz/asn1parse-test", "fuzz/bignum-test", @@ -20184,7 +23512,24 @@ our %unified_info = ( "fuzz/conf-test", "fuzz/crl-test", "fuzz/ct-test", + "fuzz/decoder-test", + "fuzz/dtlsclient-test", + "fuzz/dtlsserver-test", + "fuzz/hashtable-test", + "fuzz/ml-dsa-test", + "fuzz/ml-kem-test", + "fuzz/pem-test", + "fuzz/provider-test", + "fuzz/punycode-test", + "fuzz/quic-client-test", + "fuzz/quic-lcidm-test", + "fuzz/quic-rcidm-test", + "fuzz/quic-server-test", + "fuzz/quic-srtm-test", "fuzz/server-test", + "fuzz/slh-dsa-test", + "fuzz/smime-test", + "fuzz/v3name-test", "fuzz/x509-test", "test/aborttest", "test/acvp_test", @@ -20202,21 +23547,28 @@ our %unified_info = ( "test/asynctest", "test/bad_dtls_test", "test/bftest", + "test/bio_addr_test", + "test/bio_base64_test", "test/bio_callback_test", "test/bio_core_test", + "test/bio_dgram_test", "test/bio_enc_test", "test/bio_memleak_test", + "test/bio_meth_test", "test/bio_prefix_text", "test/bio_pw_callback_test", "test/bio_readbuffer_test", + "test/bio_tfo_test", "test/bioprinttest", "test/bn_internal_test", "test/bntest", + "test/build_wincrypt_test", "test/buildtest_c_aes", "test/buildtest_c_async", "test/buildtest_c_blowfish", "test/buildtest_c_bn", "test/buildtest_c_buffer", + "test/buildtest_c_byteorder", "test/buildtest_c_camellia", "test/buildtest_c_cast", "test/buildtest_c_cmac", @@ -20225,7 +23577,6 @@ our %unified_info = ( "test/buildtest_c_conftypes", "test/buildtest_c_core", "test/buildtest_c_core_dispatch", - "test/buildtest_c_core_names", "test/buildtest_c_core_object", "test/buildtest_c_cryptoerr_legacy", "test/buildtest_c_decoder", @@ -20234,6 +23585,7 @@ our %unified_info = ( "test/buildtest_c_dsa", "test/buildtest_c_dtls1", "test/buildtest_c_e_os2", + "test/buildtest_c_e_ostime", "test/buildtest_c_ebcdic", "test/buildtest_c_ec", "test/buildtest_c_ecdh", @@ -20243,13 +23595,16 @@ our %unified_info = ( "test/buildtest_c_evp", "test/buildtest_c_fips_names", "test/buildtest_c_hmac", + "test/buildtest_c_hpke", "test/buildtest_c_http", "test/buildtest_c_idea", + "test/buildtest_c_indicator", "test/buildtest_c_kdf", "test/buildtest_c_macros", "test/buildtest_c_md4", "test/buildtest_c_md5", "test/buildtest_c_mdc2", + "test/buildtest_c_ml_kem", "test/buildtest_c_modes", "test/buildtest_c_obj_mac", "test/buildtest_c_objects", @@ -20260,6 +23615,7 @@ our %unified_info = ( "test/buildtest_c_pem2", "test/buildtest_c_prov_ssl", "test/buildtest_c_provider", + "test/buildtest_c_quic", "test/buildtest_c_rand", "test/buildtest_c_rc2", "test/buildtest_c_rc4", @@ -20274,11 +23630,14 @@ our %unified_info = ( "test/buildtest_c_stack", "test/buildtest_c_store", "test/buildtest_c_symhacks", + "test/buildtest_c_thread", "test/buildtest_c_tls1", "test/buildtest_c_ts", "test/buildtest_c_txt_db", "test/buildtest_c_types", "test/buildtest_c_whrlpool", + "test/byteorder_test", + "test/ca_internals_test", "test/casttest", "test/chacha_internal_test", "test/cipher_overhead_test", @@ -20307,6 +23666,7 @@ our %unified_info = ( "test/curve448_internal_test", "test/d2i_test", "test/danetest", + "test/decoder_propq_test", "test/defltfips_test", "test/destest", "test/dhtest", @@ -20331,9 +23691,12 @@ our %unified_info = ( "test/evp_kdf_test", "test/evp_libctx_test", "test/evp_pkey_ctx_new_from_name", + "test/evp_pkey_dhkem_test", "test/evp_pkey_dparams_test", "test/evp_pkey_provided_test", + "test/evp_skey_test", "test/evp_test", + "test/evp_xof_test", "test/exdatatest", "test/exptest", "test/ext_internal_test", @@ -20343,21 +23706,29 @@ our %unified_info = ( "test/gmdifftest", "test/hexstr_test", "test/hmactest", + "test/hpke_test", "test/http_test", "test/ideatest", "test/igetest", + "test/json_test", "test/keymgmt_internal_test", "test/lhash_test", + "test/list_test", "test/localetest", "test/mdc2_internal_test", "test/mdc2test", + "test/membio_test", "test/memleaktest", + "test/ml_dsa_test", + "test/ml_kem_evp_extra_test", + "test/ml_kem_internal_test", "test/modes_internal_test", "test/namemap_internal_test", "test/nodefltctxtest", "test/ocspapitest", "test/ossl_store_test", "test/packettest", + "test/pairwise_fail_test", "test/param_build_test", "test/params_api_test", "test/params_conversion_test", @@ -20366,36 +23737,65 @@ our %unified_info = ( "test/pbetest", "test/pem_read_depr_test", "test/pemtest", + "test/pkcs12_api_test", "test/pkcs12_format_test", "test/pkcs7_test", "test/pkey_meth_kdf_test", "test/pkey_meth_test", "test/poly1305_internal_test", + "test/priority_queue_test", "test/property_test", "test/prov_config_test", "test/provfetchtest", + "test/provider_default_search_path_test", "test/provider_fallback_test", "test/provider_internal_test", "test/provider_pkey_test", "test/provider_status_test", "test/provider_test", "test/punycode_test", + "test/quic_ackm_test", + "test/quic_cc_test", + "test/quic_cfq_test", + "test/quic_client_test", + "test/quic_fc_test", + "test/quic_fifd_test", + "test/quic_lcidm_test", + "test/quic_multistream_test", + "test/quic_newcid_test", + "test/quic_qlog_test", + "test/quic_radix_test", + "test/quic_rcidm_test", + "test/quic_record_test", + "test/quic_srt_gen_test", + "test/quic_srtm_test", + "test/quic_stream_test", + "test/quic_tserver_test", + "test/quic_txp_test", + "test/quic_txpim_test", + "test/quic_wire_test", + "test/quicapitest", + "test/quicfaultstest", "test/rand_status_test", "test/rand_test", "test/rc2test", "test/rc4test", "test/rc5test", - "test/rdrand_sanitytest", + "test/rdcpu_sanitytest", "test/recordlentest", + "test/rpktest", "test/rsa_complex", "test/rsa_mp_test", "test/rsa_sp800_56b_test", "test/rsa_test", + "test/rsa_x931_test", + "test/safe_math_test", "test/sanitytest", "test/secmemtest", "test/servername_test", "test/sha_test", "test/siphash_internal_test", + "test/slh_dsa_test", "test/sm2_internal_test", "test/sm3_internal_test", "test/sm4_internal_test", @@ -20403,6 +23803,7 @@ our %unified_info = ( "test/srptest", "test/ssl_cert_table_internal_test", "test/ssl_ctx_test", + "test/ssl_handshake_rtt_test", "test/ssl_old_test", "test/ssl_test", "test/ssl_test_ctx_test", @@ -20410,13 +23811,17 @@ our %unified_info = ( "test/sslbuffertest", "test/sslcorrupttest", "test/stack_test", + "test/strtoultest", "test/sysdefaulttest", "test/test_test", + "test/threadpool_test", "test/threadstest", "test/threadstest_fips", "test/time_offset_test", + "test/time_test", "test/tls13ccstest", "test/tls13encryptiontest", + "test/tls13groupselection_test", "test/trace_api_test", "test/uitest", "test/upcallstest", @@ -20426,9 +23831,13 @@ our %unified_info = ( "test/verify_extra_test", "test/versions", "test/wpackettest", + "test/x509_acert_test", "test/x509_check_cert_pkey_test", "test/x509_dup_cert_test", "test/x509_internal_test", + "test/x509_load_cert_file_test", + "test/x509_req_test", + "test/x509_test", "test/x509_time_test", "test/x509aux" ], @@ -20444,6 +23853,33 @@ our %unified_info = ( "apps/CA.pl" => [ "apps/CA.pl.in" ], + "apps/ca_internals_test-bin-ca.o" => [ + "apps/ca.c" + ], + "apps/lib/ca_internals_test-bin-app_libctx.o" => [ + "apps/lib/app_libctx.c" + ], + "apps/lib/ca_internals_test-bin-app_provider.o" => [ + "apps/lib/app_provider.c" + ], + "apps/lib/ca_internals_test-bin-app_rand.o" => [ + "apps/lib/app_rand.c" + ], + "apps/lib/ca_internals_test-bin-app_x509.o" => [ + "apps/lib/app_x509.c" + ], + "apps/lib/ca_internals_test-bin-apps.o" => [ + "apps/lib/apps.c" + ], + "apps/lib/ca_internals_test-bin-apps_ui.o" => [ + "apps/lib/apps_ui.c" + ], + "apps/lib/ca_internals_test-bin-engine.o" => [ + "apps/lib/engine.c" + ], + "apps/lib/ca_internals_test-bin-fmt.o" => [ + "apps/lib/fmt.c" + ], "apps/lib/cmp_client_test-bin-cmp_mock_srv.o" => [ "apps/lib/cmp_mock_srv.c" ], @@ -20465,6 +23901,9 @@ our %unified_info = ( "apps/lib/libapps-lib-apps.o" => [ "apps/lib/apps.c" ], + "apps/lib/libapps-lib-apps_opt_printf.o" => [ + "apps/lib/apps_opt_printf.c" + ], "apps/lib/libapps-lib-apps_ui.o" => [ "apps/lib/apps_ui.c" ], @@ -20483,6 +23922,9 @@ our %unified_info = ( "apps/lib/libapps-lib-http_server.o" => [ "apps/lib/http_server.c" ], + "apps/lib/libapps-lib-log.o" => [ + "apps/lib/log.c" + ], "apps/lib/libapps-lib-names.o" => [ "apps/lib/names.c" ], @@ -20514,12 +23956,14 @@ our %unified_info = ( "apps/lib/libapps-lib-app_rand.o", "apps/lib/libapps-lib-app_x509.o", "apps/lib/libapps-lib-apps.o", + "apps/lib/libapps-lib-apps_opt_printf.o", "apps/lib/libapps-lib-apps_ui.o", "apps/lib/libapps-lib-columns.o", "apps/lib/libapps-lib-engine.o", "apps/lib/libapps-lib-engine_loader.o", "apps/lib/libapps-lib-fmt.o", "apps/lib/libapps-lib-http_server.o", + "apps/lib/libapps-lib-log.o", "apps/lib/libapps-lib-names.o", "apps/lib/libapps-lib-opt.o", "apps/lib/libapps-lib-s_cb.o", @@ -20573,6 +24017,7 @@ our %unified_info = ( "apps/openssl-bin-s_server.o", "apps/openssl-bin-s_time.o", "apps/openssl-bin-sess_id.o", + "apps/openssl-bin-skeyutl.o", "apps/openssl-bin-smime.o", "apps/openssl-bin-speed.o", "apps/openssl-bin-spkac.o", @@ -20718,6 +24163,9 @@ our %unified_info = ( "apps/openssl-bin-sess_id.o" => [ "apps/sess_id.c" ], + "apps/openssl-bin-skeyutl.o" => [ + "apps/skeyutl.c" + ], "apps/openssl-bin-smime.o" => [ "apps/smime.c" ], @@ -20805,6 +24253,12 @@ our %unified_info = ( "crypto/aria/libcrypto-lib-aria.o" => [ "crypto/aria/aria.c" ], + "crypto/asn1/asn1_time_test-bin-a_time.o" => [ + "crypto/asn1/a_time.c" + ], + "crypto/asn1/ca_internals_test-bin-a_time.o" => [ + "crypto/asn1/a_time.c" + ], "crypto/asn1/libcrypto-lib-a_bitstr.o" => [ "crypto/asn1/a_bitstr.c" ], @@ -20997,6 +24451,9 @@ our %unified_info = ( "crypto/asn1/libcrypto-lib-x_val.o" => [ "crypto/asn1/x_val.c" ], + "crypto/asn1_time_test-bin-ctype.o" => [ + "crypto/ctype.c" + ], "crypto/async/arch/libcrypto-lib-async_null.o" => [ "crypto/async/arch/async_null.c" ], @@ -21090,6 +24547,9 @@ our %unified_info = ( "crypto/bio/libcrypto-lib-bss_dgram.o" => [ "crypto/bio/bss_dgram.c" ], + "crypto/bio/libcrypto-lib-bss_dgram_pair.o" => [ + "crypto/bio/bss_dgram_pair.c" + ], "crypto/bio/libcrypto-lib-bss_fd.o" => [ "crypto/bio/bss_fd.c" ], @@ -21216,6 +24676,9 @@ our %unified_info = ( "crypto/bn/libcrypto-lib-ppc-mont.o" => [ "crypto/bn/ppc-mont.s" ], + "crypto/bn/libcrypto-lib-ppc64-mont-fixed.o" => [ + "crypto/bn/ppc64-mont-fixed.s" + ], "crypto/bn/libfips-lib-bn-ppc.o" => [ "crypto/bn/bn-ppc.s" ], @@ -21306,6 +24769,9 @@ our %unified_info = ( "crypto/bn/libfips-lib-ppc-mont.o" => [ "crypto/bn/ppc-mont.s" ], + "crypto/bn/libfips-lib-ppc64-mont-fixed.o" => [ + "crypto/bn/ppc64-mont-fixed.s" + ], "crypto/buffer/libcrypto-lib-buf_err.o" => [ "crypto/buffer/buf_err.c" ], @@ -21315,6 +24781,9 @@ our %unified_info = ( "crypto/buffer/libfips-lib-buffer.o" => [ "crypto/buffer/buffer.c" ], + "crypto/ca_internals_test-bin-ctype.o" => [ + "crypto/ctype.c" + ], "crypto/camellia/libcrypto-lib-camellia.o" => [ "crypto/camellia/camellia.c" ], @@ -21375,6 +24844,9 @@ our %unified_info = ( "crypto/cmp/libcrypto-lib-cmp_err.o" => [ "crypto/cmp/cmp_err.c" ], + "crypto/cmp/libcrypto-lib-cmp_genm.o" => [ + "crypto/cmp/cmp_genm.c" + ], "crypto/cmp/libcrypto-lib-cmp_hdr.o" => [ "crypto/cmp/cmp_hdr.c" ], @@ -22074,9 +25546,15 @@ our %unified_info = ( "crypto/err/libcrypto-lib-err_blocks.o" => [ "crypto/err/err_blocks.c" ], + "crypto/err/libcrypto-lib-err_mark.o" => [ + "crypto/err/err_mark.c" + ], "crypto/err/libcrypto-lib-err_prn.o" => [ "crypto/err/err_prn.c" ], + "crypto/err/libcrypto-lib-err_save.o" => [ + "crypto/err/err_save.c" + ], "crypto/ess/libcrypto-lib-ess_asn1.o" => [ "crypto/ess/ess_asn1.c" ], @@ -22323,9 +25801,15 @@ our %unified_info = ( "crypto/evp/libcrypto-lib-pmeth_lib.o" => [ "crypto/evp/pmeth_lib.c" ], + "crypto/evp/libcrypto-lib-s_lib.o" => [ + "crypto/evp/s_lib.c" + ], "crypto/evp/libcrypto-lib-signature.o" => [ "crypto/evp/signature.c" ], + "crypto/evp/libcrypto-lib-skeymgmt_meth.o" => [ + "crypto/evp/skeymgmt_meth.c" + ], "crypto/evp/libfips-lib-asymcipher.o" => [ "crypto/evp/asymcipher.c" ], @@ -22371,9 +25855,6 @@ our %unified_info = ( "crypto/evp/libfips-lib-keymgmt_meth.o" => [ "crypto/evp/keymgmt_meth.c" ], - "crypto/evp/libfips-lib-m_sigver.o" => [ - "crypto/evp/m_sigver.c" - ], "crypto/evp/libfips-lib-mac_lib.o" => [ "crypto/evp/mac_lib.c" ], @@ -22392,9 +25873,15 @@ our %unified_info = ( "crypto/evp/libfips-lib-pmeth_lib.o" => [ "crypto/evp/pmeth_lib.c" ], + "crypto/evp/libfips-lib-s_lib.o" => [ + "crypto/evp/s_lib.c" + ], "crypto/evp/libfips-lib-signature.o" => [ "crypto/evp/signature.c" ], + "crypto/evp/libfips-lib-skeymgmt_meth.o" => [ + "crypto/evp/skeymgmt_meth.c" + ], "crypto/ffc/libcrypto-lib-ffc_backend.o" => [ "crypto/ffc/ffc_backend.c" ], @@ -22437,12 +25924,30 @@ our %unified_info = ( "crypto/ffc/libfips-lib-ffc_params_validate.o" => [ "crypto/ffc/ffc_params_validate.c" ], + "crypto/hashtable/libcrypto-lib-hashfunc.o" => [ + "crypto/hashtable/hashfunc.c" + ], + "crypto/hashtable/libcrypto-lib-hashtable.o" => [ + "crypto/hashtable/hashtable.c" + ], + "crypto/hashtable/libfips-lib-hashfunc.o" => [ + "crypto/hashtable/hashfunc.c" + ], + "crypto/hashtable/libfips-lib-hashtable.o" => [ + "crypto/hashtable/hashtable.c" + ], "crypto/hmac/libcrypto-lib-hmac.o" => [ "crypto/hmac/hmac.c" ], "crypto/hmac/libfips-lib-hmac.o" => [ "crypto/hmac/hmac.c" ], + "crypto/hpke/libcrypto-lib-hpke.o" => [ + "crypto/hpke/hpke.c" + ], + "crypto/hpke/libcrypto-lib-hpke_util.o" => [ + "crypto/hpke/hpke_util.c" + ], "crypto/http/libcrypto-lib-http_client.o" => [ "crypto/http/http_client.c" ], @@ -22485,6 +25990,9 @@ our %unified_info = ( "crypto/libcrypto-lib-bsearch.o" => [ "crypto/bsearch.c" ], + "crypto/libcrypto-lib-comp_methods.o" => [ + "crypto/comp_methods.c" + ], "crypto/libcrypto-lib-context.o" => [ "crypto/context.c" ], @@ -22512,9 +26020,15 @@ our %unified_info = ( "crypto/libcrypto-lib-cversion.o" => [ "crypto/cversion.c" ], + "crypto/libcrypto-lib-defaults.o" => [ + "crypto/defaults.c" + ], "crypto/libcrypto-lib-der_writer.o" => [ "crypto/der_writer.c" ], + "crypto/libcrypto-lib-deterministic_nonce.o" => [ + "crypto/deterministic_nonce.c" + ], "crypto/libcrypto-lib-ebcdic.o" => [ "crypto/ebcdic.c" ], @@ -22524,6 +26038,9 @@ our %unified_info = ( "crypto/libcrypto-lib-getenv.o" => [ "crypto/getenv.c" ], + "crypto/libcrypto-lib-indicator_core.o" => [ + "crypto/indicator_core.c" + ], "crypto/libcrypto-lib-info.o" => [ "crypto/info.c" ], @@ -22572,6 +26089,9 @@ our %unified_info = ( "crypto/libcrypto-lib-params_from_text.o" => [ "crypto/params_from_text.c" ], + "crypto/libcrypto-lib-params_idx.o" => [ + "crypto/params_idx.c" + ], "crypto/libcrypto-lib-passphrase.o" => [ "crypto/passphrase.c" ], @@ -22599,12 +26119,21 @@ our %unified_info = ( "crypto/libcrypto-lib-punycode.o" => [ "crypto/punycode.c" ], + "crypto/libcrypto-lib-quic_vlint.o" => [ + "crypto/quic_vlint.c" + ], "crypto/libcrypto-lib-self_test_core.o" => [ "crypto/self_test_core.c" ], + "crypto/libcrypto-lib-sleep.o" => [ + "crypto/sleep.c" + ], "crypto/libcrypto-lib-sparse_array.o" => [ "crypto/sparse_array.c" ], + "crypto/libcrypto-lib-ssl_err.o" => [ + "crypto/ssl_err.c" + ], "crypto/libcrypto-lib-threads_lib.o" => [ "crypto/threads_lib.c" ], @@ -22617,6 +26146,9 @@ our %unified_info = ( "crypto/libcrypto-lib-threads_win.o" => [ "crypto/threads_win.c" ], + "crypto/libcrypto-lib-time.o" => [ + "crypto/time.c" + ], "crypto/libcrypto-lib-trace.o" => [ "crypto/trace.c" ], @@ -22680,6 +26212,9 @@ our %unified_info = ( "crypto/libfips-lib-params_from_text.o" => [ "crypto/params_from_text.c" ], + "crypto/libfips-lib-params_idx.o" => [ + "crypto/params_idx.c" + ], "crypto/libfips-lib-ppccap.o" => [ "crypto/ppccap.c" ], @@ -22710,6 +26245,9 @@ our %unified_info = ( "crypto/libfips-lib-threads_win.o" => [ "crypto/threads_win.c" ], + "crypto/libfips-lib-time.o" => [ + "crypto/time.c" + ], "crypto/md4/libcrypto-lib-md4_dgst.o" => [ "crypto/md4/md4_dgst.c" ], @@ -22731,6 +26269,60 @@ our %unified_info = ( "crypto/mdc2/libcrypto-lib-mdc2dgst.o" => [ "crypto/mdc2/mdc2dgst.c" ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_encoders.o" => [ + "crypto/ml_dsa/ml_dsa_encoders.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key.o" => [ + "crypto/ml_dsa/ml_dsa_key.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key_compress.o" => [ + "crypto/ml_dsa/ml_dsa_key_compress.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_matrix.o" => [ + "crypto/ml_dsa/ml_dsa_matrix.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_ntt.o" => [ + "crypto/ml_dsa/ml_dsa_ntt.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_params.o" => [ + "crypto/ml_dsa/ml_dsa_params.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sample.o" => [ + "crypto/ml_dsa/ml_dsa_sample.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sign.o" => [ + "crypto/ml_dsa/ml_dsa_sign.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_encoders.o" => [ + "crypto/ml_dsa/ml_dsa_encoders.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_key.o" => [ + "crypto/ml_dsa/ml_dsa_key.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_key_compress.o" => [ + "crypto/ml_dsa/ml_dsa_key_compress.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_matrix.o" => [ + "crypto/ml_dsa/ml_dsa_matrix.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_ntt.o" => [ + "crypto/ml_dsa/ml_dsa_ntt.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_params.o" => [ + "crypto/ml_dsa/ml_dsa_params.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_sample.o" => [ + "crypto/ml_dsa/ml_dsa_sample.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_sign.o" => [ + "crypto/ml_dsa/ml_dsa_sign.c" + ], + "crypto/ml_kem/libcrypto-lib-ml_kem.o" => [ + "crypto/ml_kem/ml_kem.c" + ], + "crypto/ml_kem/libfips-lib-ml_kem.o" => [ + "crypto/ml_kem/ml_kem.c" + ], "crypto/modes/libcrypto-lib-cbc128.o" => [ "crypto/modes/cbc128.c" ], @@ -22767,6 +26359,9 @@ our %unified_info = ( "crypto/modes/libcrypto-lib-xts128.o" => [ "crypto/modes/xts128.c" ], + "crypto/modes/libcrypto-lib-xts128gb.o" => [ + "crypto/modes/xts128gb.c" + ], "crypto/modes/libfips-lib-cbc128.o" => [ "crypto/modes/cbc128.c" ], @@ -22794,6 +26389,9 @@ our %unified_info = ( "crypto/modes/libfips-lib-xts128.o" => [ "crypto/modes/xts128.c" ], + "crypto/modes/libfips-lib-xts128gb.o" => [ + "crypto/modes/xts128gb.c" + ], "crypto/objects/libcrypto-lib-o_names.o" => [ "crypto/objects/o_names.c" ], @@ -22839,6 +26437,9 @@ our %unified_info = ( "crypto/ocsp/libcrypto-lib-v3_ocsp.o" => [ "crypto/ocsp/v3_ocsp.c" ], + "crypto/packettest-bin-quic_vlint.o" => [ + "crypto/quic_vlint.c" + ], "crypto/pem/libcrypto-lib-pem_all.o" => [ "crypto/pem/pem_all.c" ], @@ -23007,6 +26608,9 @@ our %unified_info = ( "crypto/rand/libcrypto-lib-rand_pool.o" => [ "crypto/rand/rand_pool.c" ], + "crypto/rand/libcrypto-lib-rand_uniform.o" => [ + "crypto/rand/rand_uniform.c" + ], "crypto/rand/libcrypto-lib-randfile.o" => [ "crypto/rand/randfile.c" ], @@ -23256,6 +26860,66 @@ our %unified_info = ( "crypto/siphash/libcrypto-lib-siphash.o" => [ "crypto/siphash/siphash.c" ], + "crypto/slh_dsa/libcrypto-lib-slh_adrs.o" => [ + "crypto/slh_dsa/slh_adrs.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_dsa.o" => [ + "crypto/slh_dsa/slh_dsa.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_dsa_hash_ctx.o" => [ + "crypto/slh_dsa/slh_dsa_hash_ctx.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_dsa_key.o" => [ + "crypto/slh_dsa/slh_dsa_key.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_fors.o" => [ + "crypto/slh_dsa/slh_fors.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_hash.o" => [ + "crypto/slh_dsa/slh_hash.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_hypertree.o" => [ + "crypto/slh_dsa/slh_hypertree.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_params.o" => [ + "crypto/slh_dsa/slh_params.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_wots.o" => [ + "crypto/slh_dsa/slh_wots.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_xmss.o" => [ + "crypto/slh_dsa/slh_xmss.c" + ], + "crypto/slh_dsa/libfips-lib-slh_adrs.o" => [ + "crypto/slh_dsa/slh_adrs.c" + ], + "crypto/slh_dsa/libfips-lib-slh_dsa.o" => [ + "crypto/slh_dsa/slh_dsa.c" + ], + "crypto/slh_dsa/libfips-lib-slh_dsa_hash_ctx.o" => [ + "crypto/slh_dsa/slh_dsa_hash_ctx.c" + ], + "crypto/slh_dsa/libfips-lib-slh_dsa_key.o" => [ + "crypto/slh_dsa/slh_dsa_key.c" + ], + "crypto/slh_dsa/libfips-lib-slh_fors.o" => [ + "crypto/slh_dsa/slh_fors.c" + ], + "crypto/slh_dsa/libfips-lib-slh_hash.o" => [ + "crypto/slh_dsa/slh_hash.c" + ], + "crypto/slh_dsa/libfips-lib-slh_hypertree.o" => [ + "crypto/slh_dsa/slh_hypertree.c" + ], + "crypto/slh_dsa/libfips-lib-slh_params.o" => [ + "crypto/slh_dsa/slh_params.c" + ], + "crypto/slh_dsa/libfips-lib-slh_wots.o" => [ + "crypto/slh_dsa/slh_wots.c" + ], + "crypto/slh_dsa/libfips-lib-slh_xmss.o" => [ + "crypto/slh_dsa/slh_xmss.c" + ], "crypto/sm2/libcrypto-lib-sm2_crypt.o" => [ "crypto/sm2/sm2_crypt.c" ], @@ -23310,6 +26974,42 @@ our %unified_info = ( "crypto/store/libcrypto-lib-store_strings.o" => [ "crypto/store/store_strings.c" ], + "crypto/thread/arch/libcrypto-lib-thread_none.o" => [ + "crypto/thread/arch/thread_none.c" + ], + "crypto/thread/arch/libcrypto-lib-thread_posix.o" => [ + "crypto/thread/arch/thread_posix.c" + ], + "crypto/thread/arch/libcrypto-lib-thread_win.o" => [ + "crypto/thread/arch/thread_win.c" + ], + "crypto/thread/arch/libfips-lib-thread_none.o" => [ + "crypto/thread/arch/thread_none.c" + ], + "crypto/thread/arch/libfips-lib-thread_posix.o" => [ + "crypto/thread/arch/thread_posix.c" + ], + "crypto/thread/arch/libfips-lib-thread_win.o" => [ + "crypto/thread/arch/thread_win.c" + ], + "crypto/thread/libcrypto-lib-api.o" => [ + "crypto/thread/api.c" + ], + "crypto/thread/libcrypto-lib-arch.o" => [ + "crypto/thread/arch.c" + ], + "crypto/thread/libcrypto-lib-internal.o" => [ + "crypto/thread/internal.c" + ], + "crypto/thread/libfips-lib-api.o" => [ + "crypto/thread/api.c" + ], + "crypto/thread/libfips-lib-arch.o" => [ + "crypto/thread/arch.c" + ], + "crypto/thread/libfips-lib-internal.o" => [ + "crypto/thread/internal.c" + ], "crypto/ts/libcrypto-lib-ts_asn1.o" => [ "crypto/ts/ts_asn1.c" ], @@ -23394,6 +27094,9 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-pcy_tree.o" => [ "crypto/x509/pcy_tree.c" ], + "crypto/x509/libcrypto-lib-t_acert.o" => [ + "crypto/x509/t_acert.c" + ], "crypto/x509/libcrypto-lib-t_crl.o" => [ "crypto/x509/t_crl.c" ], @@ -23403,6 +27106,12 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-t_x509.o" => [ "crypto/x509/t_x509.c" ], + "crypto/x509/libcrypto-lib-v3_aaa.o" => [ + "crypto/x509/v3_aaa.c" + ], + "crypto/x509/libcrypto-lib-v3_ac_tgt.o" => [ + "crypto/x509/v3_ac_tgt.c" + ], "crypto/x509/libcrypto-lib-v3_addr.o" => [ "crypto/x509/v3_addr.c" ], @@ -23418,6 +27127,21 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_asid.o" => [ "crypto/x509/v3_asid.c" ], + "crypto/x509/libcrypto-lib-v3_attrdesc.o" => [ + "crypto/x509/v3_attrdesc.c" + ], + "crypto/x509/libcrypto-lib-v3_attrmap.o" => [ + "crypto/x509/v3_attrmap.c" + ], + "crypto/x509/libcrypto-lib-v3_audit_id.o" => [ + "crypto/x509/v3_audit_id.c" + ], + "crypto/x509/libcrypto-lib-v3_authattid.o" => [ + "crypto/x509/v3_authattid.c" + ], + "crypto/x509/libcrypto-lib-v3_battcons.o" => [ + "crypto/x509/v3_battcons.c" + ], "crypto/x509/libcrypto-lib-v3_bcons.o" => [ "crypto/x509/v3_bcons.c" ], @@ -23442,15 +27166,24 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_genn.o" => [ "crypto/x509/v3_genn.c" ], + "crypto/x509/libcrypto-lib-v3_group_ac.o" => [ + "crypto/x509/v3_group_ac.c" + ], "crypto/x509/libcrypto-lib-v3_ia5.o" => [ "crypto/x509/v3_ia5.c" ], + "crypto/x509/libcrypto-lib-v3_ind_iss.o" => [ + "crypto/x509/v3_ind_iss.c" + ], "crypto/x509/libcrypto-lib-v3_info.o" => [ "crypto/x509/v3_info.c" ], "crypto/x509/libcrypto-lib-v3_int.o" => [ "crypto/x509/v3_int.c" ], + "crypto/x509/libcrypto-lib-v3_iobo.o" => [ + "crypto/x509/v3_iobo.c" + ], "crypto/x509/libcrypto-lib-v3_ist.o" => [ "crypto/x509/v3_ist.c" ], @@ -23460,6 +27193,12 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_ncons.o" => [ "crypto/x509/v3_ncons.c" ], + "crypto/x509/libcrypto-lib-v3_no_ass.o" => [ + "crypto/x509/v3_no_ass.c" + ], + "crypto/x509/libcrypto-lib-v3_no_rev_avail.o" => [ + "crypto/x509/v3_no_rev_avail.c" + ], "crypto/x509/libcrypto-lib-v3_pci.o" => [ "crypto/x509/v3_pci.c" ], @@ -23481,18 +27220,36 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_purp.o" => [ "crypto/x509/v3_purp.c" ], + "crypto/x509/libcrypto-lib-v3_rolespec.o" => [ + "crypto/x509/v3_rolespec.c" + ], "crypto/x509/libcrypto-lib-v3_san.o" => [ "crypto/x509/v3_san.c" ], + "crypto/x509/libcrypto-lib-v3_sda.o" => [ + "crypto/x509/v3_sda.c" + ], + "crypto/x509/libcrypto-lib-v3_single_use.o" => [ + "crypto/x509/v3_single_use.c" + ], "crypto/x509/libcrypto-lib-v3_skid.o" => [ "crypto/x509/v3_skid.c" ], + "crypto/x509/libcrypto-lib-v3_soa_id.o" => [ + "crypto/x509/v3_soa_id.c" + ], "crypto/x509/libcrypto-lib-v3_sxnet.o" => [ "crypto/x509/v3_sxnet.c" ], + "crypto/x509/libcrypto-lib-v3_timespec.o" => [ + "crypto/x509/v3_timespec.c" + ], "crypto/x509/libcrypto-lib-v3_tlsf.o" => [ "crypto/x509/v3_tlsf.c" ], + "crypto/x509/libcrypto-lib-v3_usernotice.o" => [ + "crypto/x509/v3_usernotice.c" + ], "crypto/x509/libcrypto-lib-v3_utf8.o" => [ "crypto/x509/v3_utf8.c" ], @@ -23502,6 +27259,9 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3err.o" => [ "crypto/x509/v3err.c" ], + "crypto/x509/libcrypto-lib-x509_acert.o" => [ + "crypto/x509/x509_acert.c" + ], "crypto/x509/libcrypto-lib-x509_att.o" => [ "crypto/x509/x509_att.c" ], @@ -23553,6 +27313,9 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x509_vpm.o" => [ "crypto/x509/x509_vpm.c" ], + "crypto/x509/libcrypto-lib-x509aset.o" => [ + "crypto/x509/x509aset.c" + ], "crypto/x509/libcrypto-lib-x509cset.o" => [ "crypto/x509/x509cset.c" ], @@ -23580,6 +27343,9 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x_exten.o" => [ "crypto/x509/x_exten.c" ], + "crypto/x509/libcrypto-lib-x_ietfatt.o" => [ + "crypto/x509/x_ietfatt.c" + ], "crypto/x509/libcrypto-lib-x_name.o" => [ "crypto/x509/x_name.c" ], @@ -23601,6 +27367,16 @@ our %unified_info = ( "engines/libcrypto-lib-e_padlock.o" => [ "engines/e_padlock.c" ], + "fuzz/acert-test" => [ + "fuzz/acert-test-bin-acert.o", + "fuzz/acert-test-bin-test-corpus.o" + ], + "fuzz/acert-test-bin-acert.o" => [ + "fuzz/acert.c" + ], + "fuzz/acert-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], "fuzz/asn1-test" => [ "fuzz/asn1-test-bin-asn1.o", "fuzz/asn1-test-bin-fuzz_rand.o", @@ -23713,6 +27489,190 @@ our %unified_info = ( "fuzz/ct-test-bin-test-corpus.o" => [ "fuzz/test-corpus.c" ], + "fuzz/decoder-test" => [ + "fuzz/decoder-test-bin-decoder.o", + "fuzz/decoder-test-bin-fuzz_rand.o", + "fuzz/decoder-test-bin-test-corpus.o" + ], + "fuzz/decoder-test-bin-decoder.o" => [ + "fuzz/decoder.c" + ], + "fuzz/decoder-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/decoder-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/dtlsclient-test" => [ + "fuzz/dtlsclient-test-bin-dtlsclient.o", + "fuzz/dtlsclient-test-bin-fuzz_rand.o", + "fuzz/dtlsclient-test-bin-test-corpus.o" + ], + "fuzz/dtlsclient-test-bin-dtlsclient.o" => [ + "fuzz/dtlsclient.c" + ], + "fuzz/dtlsclient-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/dtlsclient-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/dtlsserver-test" => [ + "fuzz/dtlsserver-test-bin-dtlsserver.o", + "fuzz/dtlsserver-test-bin-fuzz_rand.o", + "fuzz/dtlsserver-test-bin-test-corpus.o" + ], + "fuzz/dtlsserver-test-bin-dtlsserver.o" => [ + "fuzz/dtlsserver.c" + ], + "fuzz/dtlsserver-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/dtlsserver-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/hashtable-test" => [ + "fuzz/hashtable-test-bin-fuzz_rand.o", + "fuzz/hashtable-test-bin-hashtable.o", + "fuzz/hashtable-test-bin-test-corpus.o" + ], + "fuzz/hashtable-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/hashtable-test-bin-hashtable.o" => [ + "fuzz/hashtable.c" + ], + "fuzz/hashtable-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/ml-dsa-test" => [ + "fuzz/ml-dsa-test-bin-fuzz_rand.o", + "fuzz/ml-dsa-test-bin-ml-dsa.o", + "fuzz/ml-dsa-test-bin-test-corpus.o" + ], + "fuzz/ml-dsa-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/ml-dsa-test-bin-ml-dsa.o" => [ + "fuzz/ml-dsa.c" + ], + "fuzz/ml-dsa-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/ml-kem-test" => [ + "fuzz/ml-kem-test-bin-fuzz_rand.o", + "fuzz/ml-kem-test-bin-ml-kem.o", + "fuzz/ml-kem-test-bin-test-corpus.o" + ], + "fuzz/ml-kem-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/ml-kem-test-bin-ml-kem.o" => [ + "fuzz/ml-kem.c" + ], + "fuzz/ml-kem-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/pem-test" => [ + "fuzz/pem-test-bin-pem.o", + "fuzz/pem-test-bin-test-corpus.o" + ], + "fuzz/pem-test-bin-pem.o" => [ + "fuzz/pem.c" + ], + "fuzz/pem-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/provider-test" => [ + "fuzz/provider-test-bin-provider.o", + "fuzz/provider-test-bin-test-corpus.o" + ], + "fuzz/provider-test-bin-provider.o" => [ + "fuzz/provider.c" + ], + "fuzz/provider-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/punycode-test" => [ + "fuzz/punycode-test-bin-punycode.o", + "fuzz/punycode-test-bin-test-corpus.o" + ], + "fuzz/punycode-test-bin-punycode.o" => [ + "fuzz/punycode.c" + ], + "fuzz/punycode-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-client-test" => [ + "fuzz/quic-client-test-bin-fuzz_rand.o", + "fuzz/quic-client-test-bin-quic-client.o", + "fuzz/quic-client-test-bin-test-corpus.o" + ], + "fuzz/quic-client-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-client-test-bin-quic-client.o" => [ + "fuzz/quic-client.c" + ], + "fuzz/quic-client-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-lcidm-test" => [ + "fuzz/quic-lcidm-test-bin-fuzz_rand.o", + "fuzz/quic-lcidm-test-bin-quic-lcidm.o", + "fuzz/quic-lcidm-test-bin-test-corpus.o" + ], + "fuzz/quic-lcidm-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-lcidm-test-bin-quic-lcidm.o" => [ + "fuzz/quic-lcidm.c" + ], + "fuzz/quic-lcidm-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-rcidm-test" => [ + "fuzz/quic-rcidm-test-bin-fuzz_rand.o", + "fuzz/quic-rcidm-test-bin-quic-rcidm.o", + "fuzz/quic-rcidm-test-bin-test-corpus.o" + ], + "fuzz/quic-rcidm-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-rcidm-test-bin-quic-rcidm.o" => [ + "fuzz/quic-rcidm.c" + ], + "fuzz/quic-rcidm-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-server-test" => [ + "fuzz/quic-server-test-bin-fuzz_rand.o", + "fuzz/quic-server-test-bin-quic-server.o", + "fuzz/quic-server-test-bin-test-corpus.o" + ], + "fuzz/quic-server-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-server-test-bin-quic-server.o" => [ + "fuzz/quic-server.c" + ], + "fuzz/quic-server-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-srtm-test" => [ + "fuzz/quic-srtm-test-bin-fuzz_rand.o", + "fuzz/quic-srtm-test-bin-quic-srtm.o", + "fuzz/quic-srtm-test-bin-test-corpus.o" + ], + "fuzz/quic-srtm-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-srtm-test-bin-quic-srtm.o" => [ + "fuzz/quic-srtm.c" + ], + "fuzz/quic-srtm-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], "fuzz/server-test" => [ "fuzz/server-test-bin-fuzz_rand.o", "fuzz/server-test-bin-server.o", @@ -23727,6 +27687,40 @@ our %unified_info = ( "fuzz/server-test-bin-test-corpus.o" => [ "fuzz/test-corpus.c" ], + "fuzz/slh-dsa-test" => [ + "fuzz/slh-dsa-test-bin-fuzz_rand.o", + "fuzz/slh-dsa-test-bin-slh-dsa.o", + "fuzz/slh-dsa-test-bin-test-corpus.o" + ], + "fuzz/slh-dsa-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/slh-dsa-test-bin-slh-dsa.o" => [ + "fuzz/slh-dsa.c" + ], + "fuzz/slh-dsa-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/smime-test" => [ + "fuzz/smime-test-bin-smime.o", + "fuzz/smime-test-bin-test-corpus.o" + ], + "fuzz/smime-test-bin-smime.o" => [ + "fuzz/smime.c" + ], + "fuzz/smime-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/v3name-test" => [ + "fuzz/v3name-test-bin-test-corpus.o", + "fuzz/v3name-test-bin-v3name.o" + ], + "fuzz/v3name-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/v3name-test-bin-v3name.o" => [ + "fuzz/v3name.c" + ], "fuzz/x509-test" => [ "fuzz/x509-test-bin-fuzz_rand.o", "fuzz/x509-test-bin-test-corpus.o", @@ -23849,6 +27843,7 @@ our %unified_info = ( "crypto/bio/libcrypto-lib-bss_conn.o", "crypto/bio/libcrypto-lib-bss_core.o", "crypto/bio/libcrypto-lib-bss_dgram.o", + "crypto/bio/libcrypto-lib-bss_dgram_pair.o", "crypto/bio/libcrypto-lib-bss_fd.o", "crypto/bio/libcrypto-lib-bss_file.o", "crypto/bio/libcrypto-lib-bss_log.o", @@ -23891,6 +27886,7 @@ our %unified_info = ( "crypto/bn/libcrypto-lib-bn_word.o", "crypto/bn/libcrypto-lib-bn_x931p.o", "crypto/bn/libcrypto-lib-ppc-mont.o", + "crypto/bn/libcrypto-lib-ppc64-mont-fixed.o", "crypto/buffer/libcrypto-lib-buf_err.o", "crypto/buffer/libcrypto-lib-buffer.o", "crypto/camellia/libcrypto-lib-camellia.o", @@ -23912,6 +27908,7 @@ our %unified_info = ( "crypto/cmp/libcrypto-lib-cmp_client.o", "crypto/cmp/libcrypto-lib-cmp_ctx.o", "crypto/cmp/libcrypto-lib-cmp_err.o", + "crypto/cmp/libcrypto-lib-cmp_genm.o", "crypto/cmp/libcrypto-lib-cmp_hdr.o", "crypto/cmp/libcrypto-lib-cmp_http.o", "crypto/cmp/libcrypto-lib-cmp_msg.o", @@ -24091,7 +28088,9 @@ our %unified_info = ( "crypto/err/libcrypto-lib-err_all.o", "crypto/err/libcrypto-lib-err_all_legacy.o", "crypto/err/libcrypto-lib-err_blocks.o", + "crypto/err/libcrypto-lib-err_mark.o", "crypto/err/libcrypto-lib-err_prn.o", + "crypto/err/libcrypto-lib-err_save.o", "crypto/ess/libcrypto-lib-ess_asn1.o", "crypto/ess/libcrypto-lib-ess_err.o", "crypto/ess/libcrypto-lib-ess_lib.o", @@ -24174,7 +28173,9 @@ our %unified_info = ( "crypto/evp/libcrypto-lib-pmeth_check.o", "crypto/evp/libcrypto-lib-pmeth_gn.o", "crypto/evp/libcrypto-lib-pmeth_lib.o", + "crypto/evp/libcrypto-lib-s_lib.o", "crypto/evp/libcrypto-lib-signature.o", + "crypto/evp/libcrypto-lib-skeymgmt_meth.o", "crypto/ffc/libcrypto-lib-ffc_backend.o", "crypto/ffc/libcrypto-lib-ffc_dh.o", "crypto/ffc/libcrypto-lib-ffc_key_generate.o", @@ -24182,7 +28183,11 @@ our %unified_info = ( "crypto/ffc/libcrypto-lib-ffc_params.o", "crypto/ffc/libcrypto-lib-ffc_params_generate.o", "crypto/ffc/libcrypto-lib-ffc_params_validate.o", + "crypto/hashtable/libcrypto-lib-hashfunc.o", + "crypto/hashtable/libcrypto-lib-hashtable.o", "crypto/hmac/libcrypto-lib-hmac.o", + "crypto/hpke/libcrypto-lib-hpke.o", + "crypto/hpke/libcrypto-lib-hpke_util.o", "crypto/http/libcrypto-lib-http_client.o", "crypto/http/libcrypto-lib-http_err.o", "crypto/http/libcrypto-lib-http_lib.o", @@ -24196,6 +28201,7 @@ our %unified_info = ( "crypto/lhash/libcrypto-lib-lhash.o", "crypto/libcrypto-lib-asn1_dsa.o", "crypto/libcrypto-lib-bsearch.o", + "crypto/libcrypto-lib-comp_methods.o", "crypto/libcrypto-lib-context.o", "crypto/libcrypto-lib-core_algorithm.o", "crypto/libcrypto-lib-core_fetch.o", @@ -24205,10 +28211,13 @@ our %unified_info = ( "crypto/libcrypto-lib-cryptlib.o", "crypto/libcrypto-lib-ctype.o", "crypto/libcrypto-lib-cversion.o", + "crypto/libcrypto-lib-defaults.o", "crypto/libcrypto-lib-der_writer.o", + "crypto/libcrypto-lib-deterministic_nonce.o", "crypto/libcrypto-lib-ebcdic.o", "crypto/libcrypto-lib-ex_data.o", "crypto/libcrypto-lib-getenv.o", + "crypto/libcrypto-lib-indicator_core.o", "crypto/libcrypto-lib-info.o", "crypto/libcrypto-lib-init.o", "crypto/libcrypto-lib-initthread.o", @@ -24225,6 +28234,7 @@ our %unified_info = ( "crypto/libcrypto-lib-params.o", "crypto/libcrypto-lib-params_dup.o", "crypto/libcrypto-lib-params_from_text.o", + "crypto/libcrypto-lib-params_idx.o", "crypto/libcrypto-lib-passphrase.o", "crypto/libcrypto-lib-ppccap.o", "crypto/libcrypto-lib-ppccpuid.o", @@ -24234,12 +28244,16 @@ our %unified_info = ( "crypto/libcrypto-lib-provider_core.o", "crypto/libcrypto-lib-provider_predefined.o", "crypto/libcrypto-lib-punycode.o", + "crypto/libcrypto-lib-quic_vlint.o", "crypto/libcrypto-lib-self_test_core.o", + "crypto/libcrypto-lib-sleep.o", "crypto/libcrypto-lib-sparse_array.o", + "crypto/libcrypto-lib-ssl_err.o", "crypto/libcrypto-lib-threads_lib.o", "crypto/libcrypto-lib-threads_none.o", "crypto/libcrypto-lib-threads_pthread.o", "crypto/libcrypto-lib-threads_win.o", + "crypto/libcrypto-lib-time.o", "crypto/libcrypto-lib-trace.o", "crypto/libcrypto-lib-uid.o", "crypto/md4/libcrypto-lib-md4_dgst.o", @@ -24249,6 +28263,15 @@ our %unified_info = ( "crypto/md5/libcrypto-lib-md5_sha1.o", "crypto/mdc2/libcrypto-lib-mdc2_one.o", "crypto/mdc2/libcrypto-lib-mdc2dgst.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_encoders.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key_compress.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_matrix.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_ntt.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_params.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sample.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sign.o", + "crypto/ml_kem/libcrypto-lib-ml_kem.o", "crypto/modes/libcrypto-lib-cbc128.o", "crypto/modes/libcrypto-lib-ccm128.o", "crypto/modes/libcrypto-lib-cfb128.o", @@ -24261,6 +28284,7 @@ our %unified_info = ( "crypto/modes/libcrypto-lib-siv128.o", "crypto/modes/libcrypto-lib-wrap128.o", "crypto/modes/libcrypto-lib-xts128.o", + "crypto/modes/libcrypto-lib-xts128gb.o", "crypto/objects/libcrypto-lib-o_names.o", "crypto/objects/libcrypto-lib-obj_dat.o", "crypto/objects/libcrypto-lib-obj_err.o", @@ -24327,6 +28351,7 @@ our %unified_info = ( "crypto/rand/libcrypto-lib-rand_lib.o", "crypto/rand/libcrypto-lib-rand_meth.o", "crypto/rand/libcrypto-lib-rand_pool.o", + "crypto/rand/libcrypto-lib-rand_uniform.o", "crypto/rand/libcrypto-lib-randfile.o", "crypto/rc2/libcrypto-lib-rc2_cbc.o", "crypto/rc2/libcrypto-lib-rc2_ecb.o", @@ -24381,6 +28406,16 @@ our %unified_info = ( "crypto/sha/libcrypto-lib-sha512p8-ppc.o", "crypto/sha/libcrypto-lib-sha_ppc.o", "crypto/siphash/libcrypto-lib-siphash.o", + "crypto/slh_dsa/libcrypto-lib-slh_adrs.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa_hash_ctx.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa_key.o", + "crypto/slh_dsa/libcrypto-lib-slh_fors.o", + "crypto/slh_dsa/libcrypto-lib-slh_hash.o", + "crypto/slh_dsa/libcrypto-lib-slh_hypertree.o", + "crypto/slh_dsa/libcrypto-lib-slh_params.o", + "crypto/slh_dsa/libcrypto-lib-slh_wots.o", + "crypto/slh_dsa/libcrypto-lib-slh_xmss.o", "crypto/sm2/libcrypto-lib-sm2_crypt.o", "crypto/sm2/libcrypto-lib-sm2_err.o", "crypto/sm2/libcrypto-lib-sm2_key.o", @@ -24398,6 +28433,12 @@ our %unified_info = ( "crypto/store/libcrypto-lib-store_register.o", "crypto/store/libcrypto-lib-store_result.o", "crypto/store/libcrypto-lib-store_strings.o", + "crypto/thread/arch/libcrypto-lib-thread_none.o", + "crypto/thread/arch/libcrypto-lib-thread_posix.o", + "crypto/thread/arch/libcrypto-lib-thread_win.o", + "crypto/thread/libcrypto-lib-api.o", + "crypto/thread/libcrypto-lib-arch.o", + "crypto/thread/libcrypto-lib-internal.o", "crypto/ts/libcrypto-lib-ts_asn1.o", "crypto/ts/libcrypto-lib-ts_conf.o", "crypto/ts/libcrypto-lib-ts_err.o", @@ -24426,14 +28467,22 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-pcy_map.o", "crypto/x509/libcrypto-lib-pcy_node.o", "crypto/x509/libcrypto-lib-pcy_tree.o", + "crypto/x509/libcrypto-lib-t_acert.o", "crypto/x509/libcrypto-lib-t_crl.o", "crypto/x509/libcrypto-lib-t_req.o", "crypto/x509/libcrypto-lib-t_x509.o", + "crypto/x509/libcrypto-lib-v3_aaa.o", + "crypto/x509/libcrypto-lib-v3_ac_tgt.o", "crypto/x509/libcrypto-lib-v3_addr.o", "crypto/x509/libcrypto-lib-v3_admis.o", "crypto/x509/libcrypto-lib-v3_akeya.o", "crypto/x509/libcrypto-lib-v3_akid.o", "crypto/x509/libcrypto-lib-v3_asid.o", + "crypto/x509/libcrypto-lib-v3_attrdesc.o", + "crypto/x509/libcrypto-lib-v3_attrmap.o", + "crypto/x509/libcrypto-lib-v3_audit_id.o", + "crypto/x509/libcrypto-lib-v3_authattid.o", + "crypto/x509/libcrypto-lib-v3_battcons.o", "crypto/x509/libcrypto-lib-v3_bcons.o", "crypto/x509/libcrypto-lib-v3_bitst.o", "crypto/x509/libcrypto-lib-v3_conf.o", @@ -24442,12 +28491,17 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_enum.o", "crypto/x509/libcrypto-lib-v3_extku.o", "crypto/x509/libcrypto-lib-v3_genn.o", + "crypto/x509/libcrypto-lib-v3_group_ac.o", "crypto/x509/libcrypto-lib-v3_ia5.o", + "crypto/x509/libcrypto-lib-v3_ind_iss.o", "crypto/x509/libcrypto-lib-v3_info.o", "crypto/x509/libcrypto-lib-v3_int.o", + "crypto/x509/libcrypto-lib-v3_iobo.o", "crypto/x509/libcrypto-lib-v3_ist.o", "crypto/x509/libcrypto-lib-v3_lib.o", "crypto/x509/libcrypto-lib-v3_ncons.o", + "crypto/x509/libcrypto-lib-v3_no_ass.o", + "crypto/x509/libcrypto-lib-v3_no_rev_avail.o", "crypto/x509/libcrypto-lib-v3_pci.o", "crypto/x509/libcrypto-lib-v3_pcia.o", "crypto/x509/libcrypto-lib-v3_pcons.o", @@ -24455,13 +28509,20 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_pmaps.o", "crypto/x509/libcrypto-lib-v3_prn.o", "crypto/x509/libcrypto-lib-v3_purp.o", + "crypto/x509/libcrypto-lib-v3_rolespec.o", "crypto/x509/libcrypto-lib-v3_san.o", + "crypto/x509/libcrypto-lib-v3_sda.o", + "crypto/x509/libcrypto-lib-v3_single_use.o", "crypto/x509/libcrypto-lib-v3_skid.o", + "crypto/x509/libcrypto-lib-v3_soa_id.o", "crypto/x509/libcrypto-lib-v3_sxnet.o", + "crypto/x509/libcrypto-lib-v3_timespec.o", "crypto/x509/libcrypto-lib-v3_tlsf.o", + "crypto/x509/libcrypto-lib-v3_usernotice.o", "crypto/x509/libcrypto-lib-v3_utf8.o", "crypto/x509/libcrypto-lib-v3_utl.o", "crypto/x509/libcrypto-lib-v3err.o", + "crypto/x509/libcrypto-lib-x509_acert.o", "crypto/x509/libcrypto-lib-x509_att.o", "crypto/x509/libcrypto-lib-x509_cmp.o", "crypto/x509/libcrypto-lib-x509_d2.o", @@ -24479,6 +28540,7 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x509_v3.o", "crypto/x509/libcrypto-lib-x509_vfy.o", "crypto/x509/libcrypto-lib-x509_vpm.o", + "crypto/x509/libcrypto-lib-x509aset.o", "crypto/x509/libcrypto-lib-x509cset.o", "crypto/x509/libcrypto-lib-x509name.o", "crypto/x509/libcrypto-lib-x509rset.o", @@ -24488,6 +28550,7 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x_attrib.o", "crypto/x509/libcrypto-lib-x_crl.o", "crypto/x509/libcrypto-lib-x_exten.o", + "crypto/x509/libcrypto-lib-x_ietfatt.o", "crypto/x509/libcrypto-lib-x_name.o", "crypto/x509/libcrypto-lib-x_pubkey.o", "crypto/x509/libcrypto-lib-x_req.o", @@ -24508,14 +28571,15 @@ our %unified_info = ( "ssl/libssl-lib-d1_srtp.o", "ssl/libssl-lib-methods.o", "ssl/libssl-lib-pqueue.o", + "ssl/libssl-lib-priority_queue.o", "ssl/libssl-lib-s3_enc.o", "ssl/libssl-lib-s3_lib.o", "ssl/libssl-lib-s3_msg.o", "ssl/libssl-lib-ssl_asn1.o", "ssl/libssl-lib-ssl_cert.o", + "ssl/libssl-lib-ssl_cert_comp.o", "ssl/libssl-lib-ssl_ciph.o", "ssl/libssl-lib-ssl_conf.o", - "ssl/libssl-lib-ssl_err.o", "ssl/libssl-lib-ssl_err_legacy.o", "ssl/libssl-lib-ssl_init.o", "ssl/libssl-lib-ssl_lib.o", @@ -24532,12 +28596,60 @@ our %unified_info = ( "ssl/libssl-lib-tls13_enc.o", "ssl/libssl-lib-tls_depr.o", "ssl/libssl-lib-tls_srp.o", - "ssl/record/libssl-lib-dtls1_bitmap.o", + "ssl/quic/libssl-lib-cc_newreno.o", + "ssl/quic/libssl-lib-json_enc.o", + "ssl/quic/libssl-lib-qlog.o", + "ssl/quic/libssl-lib-qlog_event_helpers.o", + "ssl/quic/libssl-lib-quic_ackm.o", + "ssl/quic/libssl-lib-quic_cfq.o", + "ssl/quic/libssl-lib-quic_channel.o", + "ssl/quic/libssl-lib-quic_demux.o", + "ssl/quic/libssl-lib-quic_engine.o", + "ssl/quic/libssl-lib-quic_fc.o", + "ssl/quic/libssl-lib-quic_fifd.o", + "ssl/quic/libssl-lib-quic_impl.o", + "ssl/quic/libssl-lib-quic_lcidm.o", + "ssl/quic/libssl-lib-quic_method.o", + "ssl/quic/libssl-lib-quic_obj.o", + "ssl/quic/libssl-lib-quic_port.o", + "ssl/quic/libssl-lib-quic_rcidm.o", + "ssl/quic/libssl-lib-quic_reactor.o", + "ssl/quic/libssl-lib-quic_reactor_wait_ctx.o", + "ssl/quic/libssl-lib-quic_record_rx.o", + "ssl/quic/libssl-lib-quic_record_shared.o", + "ssl/quic/libssl-lib-quic_record_tx.o", + "ssl/quic/libssl-lib-quic_record_util.o", + "ssl/quic/libssl-lib-quic_rstream.o", + "ssl/quic/libssl-lib-quic_rx_depack.o", + "ssl/quic/libssl-lib-quic_sf_list.o", + "ssl/quic/libssl-lib-quic_srt_gen.o", + "ssl/quic/libssl-lib-quic_srtm.o", + "ssl/quic/libssl-lib-quic_sstream.o", + "ssl/quic/libssl-lib-quic_statm.o", + "ssl/quic/libssl-lib-quic_stream_map.o", + "ssl/quic/libssl-lib-quic_thread_assist.o", + "ssl/quic/libssl-lib-quic_tls.o", + "ssl/quic/libssl-lib-quic_tls_api.o", + "ssl/quic/libssl-lib-quic_trace.o", + "ssl/quic/libssl-lib-quic_tserver.o", + "ssl/quic/libssl-lib-quic_txp.o", + "ssl/quic/libssl-lib-quic_txpim.o", + "ssl/quic/libssl-lib-quic_types.o", + "ssl/quic/libssl-lib-quic_wire.o", + "ssl/quic/libssl-lib-quic_wire_pkt.o", + "ssl/quic/libssl-lib-uint_set.o", "ssl/record/libssl-lib-rec_layer_d1.o", "ssl/record/libssl-lib-rec_layer_s3.o", - "ssl/record/libssl-lib-ssl3_buffer.o", - "ssl/record/libssl-lib-ssl3_record.o", - "ssl/record/libssl-lib-ssl3_record_tls13.o", + "ssl/record/methods/libssl-lib-dtls_meth.o", + "ssl/record/methods/libssl-lib-ssl3_meth.o", + "ssl/record/methods/libssl-lib-tls13_meth.o", + "ssl/record/methods/libssl-lib-tls1_meth.o", + "ssl/record/methods/libssl-lib-tls_common.o", + "ssl/record/methods/libssl-lib-tls_multib.o", + "ssl/record/methods/libssl-lib-tlsany_meth.o", + "ssl/rio/libssl-lib-poll_builder.o", + "ssl/rio/libssl-lib-poll_immediate.o", + "ssl/rio/libssl-lib-rio_notifier.o", "ssl/statem/libssl-lib-extensions.o", "ssl/statem/libssl-lib-extensions_clnt.o", "ssl/statem/libssl-lib-extensions_cust.o", @@ -24575,12 +28687,24 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ecx_key.o" => [ "providers/common/der/der_ecx_key.c" ], + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o" => [ + "providers/common/der/der_ml_dsa_gen.c" + ], + "providers/common/der/libcommon-lib-der_ml_dsa_key.o" => [ + "providers/common/der/der_ml_dsa_key.c" + ], "providers/common/der/libcommon-lib-der_rsa_gen.o" => [ "providers/common/der/der_rsa_gen.c" ], "providers/common/der/libcommon-lib-der_rsa_key.o" => [ "providers/common/der/der_rsa_key.c" ], + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o" => [ + "providers/common/der/der_slh_dsa_gen.c" + ], + "providers/common/der/libcommon-lib-der_slh_dsa_key.o" => [ + "providers/common/der/der_slh_dsa_key.c" + ], "providers/common/der/libcommon-lib-der_wrap_gen.o" => [ "providers/common/der/der_wrap_gen.c" ], @@ -24647,6 +28771,9 @@ our %unified_info = ( "providers/common/libfips-lib-securitycheck_fips.o" => [ "providers/common/securitycheck_fips.c" ], + "providers/endecode_test-bin-legacyprov.o" => [ + "providers/legacyprov.c" + ], "providers/evp_extra_test-bin-legacyprov.o" => [ "providers/legacyprov.c" ], @@ -24657,6 +28784,9 @@ our %unified_info = ( "providers/fips/fips-dso-fips_entry.o" => [ "providers/fips/fips_entry.c" ], + "providers/fips/libfips-lib-fipsindicator.o" => [ + "providers/fips/fipsindicator.c" + ], "providers/fips/libfips-lib-fipsprov.o" => [ "providers/fips/fipsprov.c" ], @@ -24720,6 +28850,15 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_hw.o" => [ "providers/implementations/ciphers/cipher_aes_gcm_hw.c" ], + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv.o" => [ + "providers/implementations/ciphers/cipher_aes_gcm_siv.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_hw.o" => [ + "providers/implementations/ciphers/cipher_aes_gcm_siv_hw.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_polyval.o" => [ + "providers/implementations/ciphers/cipher_aes_gcm_siv_polyval.c" + ], "providers/implementations/ciphers/libdefault-lib-cipher_aes_hw.o" => [ "providers/implementations/ciphers/cipher_aes_hw.c" ], @@ -24792,9 +28931,27 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_sm4.o" => [ "providers/implementations/ciphers/cipher_sm4.c" ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm.o" => [ + "providers/implementations/ciphers/cipher_sm4_ccm.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm_hw.o" => [ + "providers/implementations/ciphers/cipher_sm4_ccm_hw.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm.o" => [ + "providers/implementations/ciphers/cipher_sm4_gcm.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm_hw.o" => [ + "providers/implementations/ciphers/cipher_sm4_gcm_hw.c" + ], "providers/implementations/ciphers/libdefault-lib-cipher_sm4_hw.o" => [ "providers/implementations/ciphers/cipher_sm4_hw.c" ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts.o" => [ + "providers/implementations/ciphers/cipher_sm4_xts.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts_hw.o" => [ + "providers/implementations/ciphers/cipher_sm4_xts_hw.c" + ], "providers/implementations/ciphers/libdefault-lib-cipher_tdes.o" => [ "providers/implementations/ciphers/cipher_tdes.c" ], @@ -25014,6 +29171,15 @@ our %unified_info = ( "providers/implementations/encode_decode/libdefault-lib-endecoder_common.o" => [ "providers/implementations/encode_decode/endecoder_common.c" ], + "providers/implementations/encode_decode/libdefault-lib-ml_common_codecs.o" => [ + "providers/implementations/encode_decode/ml_common_codecs.c" + ], + "providers/implementations/encode_decode/libdefault-lib-ml_dsa_codecs.o" => [ + "providers/implementations/encode_decode/ml_dsa_codecs.c" + ], + "providers/implementations/encode_decode/libdefault-lib-ml_kem_codecs.o" => [ + "providers/implementations/encode_decode/ml_kem_codecs.c" + ], "providers/implementations/exchange/libdefault-lib-dh_exch.o" => [ "providers/implementations/exchange/dh_exch.c" ], @@ -25038,9 +29204,15 @@ our %unified_info = ( "providers/implementations/exchange/libfips-lib-kdf_exch.o" => [ "providers/implementations/exchange/kdf_exch.c" ], + "providers/implementations/kdfs/libdefault-lib-argon2.o" => [ + "providers/implementations/kdfs/argon2.c" + ], "providers/implementations/kdfs/libdefault-lib-hkdf.o" => [ "providers/implementations/kdfs/hkdf.c" ], + "providers/implementations/kdfs/libdefault-lib-hmacdrbg_kdf.o" => [ + "providers/implementations/kdfs/hmacdrbg_kdf.c" + ], "providers/implementations/kdfs/libdefault-lib-kbkdf.o" => [ "providers/implementations/kdfs/kbkdf.c" ], @@ -25098,12 +29270,39 @@ our %unified_info = ( "providers/implementations/kdfs/liblegacy-lib-pbkdf1.o" => [ "providers/implementations/kdfs/pbkdf1.c" ], + "providers/implementations/kdfs/liblegacy-lib-pvkkdf.o" => [ + "providers/implementations/kdfs/pvkkdf.c" + ], + "providers/implementations/kem/libdefault-lib-ec_kem.o" => [ + "providers/implementations/kem/ec_kem.c" + ], + "providers/implementations/kem/libdefault-lib-ecx_kem.o" => [ + "providers/implementations/kem/ecx_kem.c" + ], + "providers/implementations/kem/libdefault-lib-kem_util.o" => [ + "providers/implementations/kem/kem_util.c" + ], + "providers/implementations/kem/libdefault-lib-ml_kem_kem.o" => [ + "providers/implementations/kem/ml_kem_kem.c" + ], + "providers/implementations/kem/libdefault-lib-mlx_kem.o" => [ + "providers/implementations/kem/mlx_kem.c" + ], "providers/implementations/kem/libdefault-lib-rsa_kem.o" => [ "providers/implementations/kem/rsa_kem.c" ], + "providers/implementations/kem/libfips-lib-ml_kem_kem.o" => [ + "providers/implementations/kem/ml_kem_kem.c" + ], + "providers/implementations/kem/libfips-lib-mlx_kem.o" => [ + "providers/implementations/kem/mlx_kem.c" + ], "providers/implementations/kem/libfips-lib-rsa_kem.o" => [ "providers/implementations/kem/rsa_kem.c" ], + "providers/implementations/kem/libtemplate-lib-template_kem.o" => [ + "providers/implementations/kem/template_kem.c" + ], "providers/implementations/keymgmt/libdefault-lib-dh_kmgmt.o" => [ "providers/implementations/keymgmt/dh_kmgmt.c" ], @@ -25122,9 +29321,21 @@ our %unified_info = ( "providers/implementations/keymgmt/libdefault-lib-mac_legacy_kmgmt.o" => [ "providers/implementations/keymgmt/mac_legacy_kmgmt.c" ], + "providers/implementations/keymgmt/libdefault-lib-ml_dsa_kmgmt.o" => [ + "providers/implementations/keymgmt/ml_dsa_kmgmt.c" + ], + "providers/implementations/keymgmt/libdefault-lib-ml_kem_kmgmt.o" => [ + "providers/implementations/keymgmt/ml_kem_kmgmt.c" + ], + "providers/implementations/keymgmt/libdefault-lib-mlx_kmgmt.o" => [ + "providers/implementations/keymgmt/mlx_kmgmt.c" + ], "providers/implementations/keymgmt/libdefault-lib-rsa_kmgmt.o" => [ "providers/implementations/keymgmt/rsa_kmgmt.c" ], + "providers/implementations/keymgmt/libdefault-lib-slh_dsa_kmgmt.o" => [ + "providers/implementations/keymgmt/slh_dsa_kmgmt.c" + ], "providers/implementations/keymgmt/libfips-lib-dh_kmgmt.o" => [ "providers/implementations/keymgmt/dh_kmgmt.c" ], @@ -25143,9 +29354,24 @@ our %unified_info = ( "providers/implementations/keymgmt/libfips-lib-mac_legacy_kmgmt.o" => [ "providers/implementations/keymgmt/mac_legacy_kmgmt.c" ], + "providers/implementations/keymgmt/libfips-lib-ml_dsa_kmgmt.o" => [ + "providers/implementations/keymgmt/ml_dsa_kmgmt.c" + ], + "providers/implementations/keymgmt/libfips-lib-ml_kem_kmgmt.o" => [ + "providers/implementations/keymgmt/ml_kem_kmgmt.c" + ], + "providers/implementations/keymgmt/libfips-lib-mlx_kmgmt.o" => [ + "providers/implementations/keymgmt/mlx_kmgmt.c" + ], "providers/implementations/keymgmt/libfips-lib-rsa_kmgmt.o" => [ "providers/implementations/keymgmt/rsa_kmgmt.c" ], + "providers/implementations/keymgmt/libfips-lib-slh_dsa_kmgmt.o" => [ + "providers/implementations/keymgmt/slh_dsa_kmgmt.c" + ], + "providers/implementations/keymgmt/libtemplate-lib-template_kmgmt.o" => [ + "providers/implementations/keymgmt/template_kmgmt.c" + ], "providers/implementations/macs/libdefault-lib-blake2b_mac.o" => [ "providers/implementations/macs/blake2b_mac.c" ], @@ -25182,9 +29408,6 @@ our %unified_info = ( "providers/implementations/macs/libfips-lib-kmac_prov.o" => [ "providers/implementations/macs/kmac_prov.c" ], - "providers/implementations/rands/libdefault-lib-crngt.o" => [ - "providers/implementations/rands/crngt.c" - ], "providers/implementations/rands/libdefault-lib-drbg.o" => [ "providers/implementations/rands/drbg.c" ], @@ -25200,12 +29423,12 @@ our %unified_info = ( "providers/implementations/rands/libdefault-lib-seed_src.o" => [ "providers/implementations/rands/seed_src.c" ], + "providers/implementations/rands/libdefault-lib-seed_src_jitter.o" => [ + "providers/implementations/rands/seed_src_jitter.c" + ], "providers/implementations/rands/libdefault-lib-test_rng.o" => [ "providers/implementations/rands/test_rng.c" ], - "providers/implementations/rands/libfips-lib-crngt.o" => [ - "providers/implementations/rands/crngt.c" - ], "providers/implementations/rands/libfips-lib-drbg.o" => [ "providers/implementations/rands/drbg.c" ], @@ -25218,6 +29441,9 @@ our %unified_info = ( "providers/implementations/rands/libfips-lib-drbg_hmac.o" => [ "providers/implementations/rands/drbg_hmac.c" ], + "providers/implementations/rands/libfips-lib-fips_crng_test.o" => [ + "providers/implementations/rands/fips_crng_test.c" + ], "providers/implementations/rands/libfips-lib-test_rng.o" => [ "providers/implementations/rands/test_rng.c" ], @@ -25245,9 +29471,15 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-mac_legacy_sig.o" => [ "providers/implementations/signature/mac_legacy_sig.c" ], + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o" => [ + "providers/implementations/signature/ml_dsa_sig.c" + ], "providers/implementations/signature/libdefault-lib-rsa_sig.o" => [ "providers/implementations/signature/rsa_sig.c" ], + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o" => [ + "providers/implementations/signature/slh_dsa_sig.c" + ], "providers/implementations/signature/libdefault-lib-sm2_sig.o" => [ "providers/implementations/signature/sm2_sig.c" ], @@ -25263,9 +29495,27 @@ our %unified_info = ( "providers/implementations/signature/libfips-lib-mac_legacy_sig.o" => [ "providers/implementations/signature/mac_legacy_sig.c" ], + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o" => [ + "providers/implementations/signature/ml_dsa_sig.c" + ], "providers/implementations/signature/libfips-lib-rsa_sig.o" => [ "providers/implementations/signature/rsa_sig.c" ], + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o" => [ + "providers/implementations/signature/slh_dsa_sig.c" + ], + "providers/implementations/skeymgmt/libdefault-lib-aes_skmgmt.o" => [ + "providers/implementations/skeymgmt/aes_skmgmt.c" + ], + "providers/implementations/skeymgmt/libdefault-lib-generic.o" => [ + "providers/implementations/skeymgmt/generic.c" + ], + "providers/implementations/skeymgmt/libfips-lib-aes_skmgmt.o" => [ + "providers/implementations/skeymgmt/aes_skmgmt.c" + ], + "providers/implementations/skeymgmt/libfips-lib-generic.o" => [ + "providers/implementations/skeymgmt/generic.c" + ], "providers/implementations/storemgmt/libdefault-lib-file_store.o" => [ "providers/implementations/storemgmt/file_store.c" ], @@ -25289,8 +29539,12 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ec_sig.o", "providers/common/der/libcommon-lib-der_ecx_gen.o", "providers/common/der/libcommon-lib-der_ecx_key.o", + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o", + "providers/common/der/libcommon-lib-der_ml_dsa_key.o", "providers/common/der/libcommon-lib-der_rsa_gen.o", "providers/common/der/libcommon-lib-der_rsa_key.o", + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o", + "providers/common/der/libcommon-lib-der_slh_dsa_key.o", "providers/common/der/libcommon-lib-der_wrap_gen.o", "providers/common/libcommon-lib-provider_ctx.o", "providers/common/libcommon-lib-provider_err.o", @@ -25302,7 +29556,7 @@ our %unified_info = ( "providers/implementations/ciphers/libcommon-lib-ciphercommon_gcm_hw.o", "providers/implementations/ciphers/libcommon-lib-ciphercommon_hw.o", "providers/implementations/digests/libcommon-lib-digestcommon.o", - "ssl/record/libcommon-lib-tls_pad.o" + "ssl/record/methods/libcommon-lib-tls_pad.o" ], "providers/libcrypto-lib-baseprov.o" => [ "providers/baseprov.c" @@ -25338,6 +29592,9 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_aes_ccm_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_polyval.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_ocb.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_ocb_hw.o", @@ -25362,7 +29619,13 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_cts.o", "providers/implementations/ciphers/libdefault-lib-cipher_null.o", "providers/implementations/ciphers/libdefault-lib-cipher_sm4.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_sm4_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes_common.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes_default.o", @@ -25391,11 +29654,16 @@ our %unified_info = ( "providers/implementations/encode_decode/libdefault-lib-encode_key2ms.o", "providers/implementations/encode_decode/libdefault-lib-encode_key2text.o", "providers/implementations/encode_decode/libdefault-lib-endecoder_common.o", + "providers/implementations/encode_decode/libdefault-lib-ml_common_codecs.o", + "providers/implementations/encode_decode/libdefault-lib-ml_dsa_codecs.o", + "providers/implementations/encode_decode/libdefault-lib-ml_kem_codecs.o", "providers/implementations/exchange/libdefault-lib-dh_exch.o", "providers/implementations/exchange/libdefault-lib-ecdh_exch.o", "providers/implementations/exchange/libdefault-lib-ecx_exch.o", "providers/implementations/exchange/libdefault-lib-kdf_exch.o", + "providers/implementations/kdfs/libdefault-lib-argon2.o", "providers/implementations/kdfs/libdefault-lib-hkdf.o", + "providers/implementations/kdfs/libdefault-lib-hmacdrbg_kdf.o", "providers/implementations/kdfs/libdefault-lib-kbkdf.o", "providers/implementations/kdfs/libdefault-lib-krb5kdf.o", "providers/implementations/kdfs/libdefault-lib-pbkdf2.o", @@ -25406,6 +29674,11 @@ our %unified_info = ( "providers/implementations/kdfs/libdefault-lib-sskdf.o", "providers/implementations/kdfs/libdefault-lib-tls1_prf.o", "providers/implementations/kdfs/libdefault-lib-x942kdf.o", + "providers/implementations/kem/libdefault-lib-ec_kem.o", + "providers/implementations/kem/libdefault-lib-ecx_kem.o", + "providers/implementations/kem/libdefault-lib-kem_util.o", + "providers/implementations/kem/libdefault-lib-ml_kem_kem.o", + "providers/implementations/kem/libdefault-lib-mlx_kem.o", "providers/implementations/kem/libdefault-lib-rsa_kem.o", "providers/implementations/keymgmt/libdefault-lib-dh_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-dsa_kmgmt.o", @@ -25413,7 +29686,11 @@ our %unified_info = ( "providers/implementations/keymgmt/libdefault-lib-ecx_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-kdf_legacy_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-mac_legacy_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-ml_dsa_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-ml_kem_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-mlx_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-rsa_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-slh_dsa_kmgmt.o", "providers/implementations/macs/libdefault-lib-blake2b_mac.o", "providers/implementations/macs/libdefault-lib-blake2s_mac.o", "providers/implementations/macs/libdefault-lib-cmac_prov.o", @@ -25422,12 +29699,12 @@ our %unified_info = ( "providers/implementations/macs/libdefault-lib-kmac_prov.o", "providers/implementations/macs/libdefault-lib-poly1305_prov.o", "providers/implementations/macs/libdefault-lib-siphash_prov.o", - "providers/implementations/rands/libdefault-lib-crngt.o", "providers/implementations/rands/libdefault-lib-drbg.o", "providers/implementations/rands/libdefault-lib-drbg_ctr.o", "providers/implementations/rands/libdefault-lib-drbg_hash.o", "providers/implementations/rands/libdefault-lib-drbg_hmac.o", "providers/implementations/rands/libdefault-lib-seed_src.o", + "providers/implementations/rands/libdefault-lib-seed_src_jitter.o", "providers/implementations/rands/libdefault-lib-test_rng.o", "providers/implementations/rands/seeding/libdefault-lib-rand_cpu_x86.o", "providers/implementations/rands/seeding/libdefault-lib-rand_tsc.o", @@ -25437,11 +29714,15 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-ecdsa_sig.o", "providers/implementations/signature/libdefault-lib-eddsa_sig.o", "providers/implementations/signature/libdefault-lib-mac_legacy_sig.o", + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o", "providers/implementations/signature/libdefault-lib-rsa_sig.o", + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o", "providers/implementations/signature/libdefault-lib-sm2_sig.o", + "providers/implementations/skeymgmt/libdefault-lib-aes_skmgmt.o", + "providers/implementations/skeymgmt/libdefault-lib-generic.o", "providers/implementations/storemgmt/libdefault-lib-file_store.o", "providers/implementations/storemgmt/libdefault-lib-file_store_any2obj.o", - "ssl/libdefault-lib-s3_cbc.o" + "ssl/record/methods/libdefault-lib-ssl3_cbc.o" ], "providers/libfips.a" => [ "crypto/aes/libfips-lib-aes-ppc.o", @@ -25481,6 +29762,7 @@ our %unified_info = ( "crypto/bn/libfips-lib-bn_sqrt.o", "crypto/bn/libfips-lib-bn_word.o", "crypto/bn/libfips-lib-ppc-mont.o", + "crypto/bn/libfips-lib-ppc64-mont-fixed.o", "crypto/buffer/libfips-lib-buffer.o", "crypto/cmac/libfips-lib-cmac.o", "crypto/des/libfips-lib-des_enc.o", @@ -25552,14 +29834,15 @@ our %unified_info = ( "crypto/evp/libfips-lib-kem.o", "crypto/evp/libfips-lib-keymgmt_lib.o", "crypto/evp/libfips-lib-keymgmt_meth.o", - "crypto/evp/libfips-lib-m_sigver.o", "crypto/evp/libfips-lib-mac_lib.o", "crypto/evp/libfips-lib-mac_meth.o", "crypto/evp/libfips-lib-p_lib.o", "crypto/evp/libfips-lib-pmeth_check.o", "crypto/evp/libfips-lib-pmeth_gn.o", "crypto/evp/libfips-lib-pmeth_lib.o", + "crypto/evp/libfips-lib-s_lib.o", "crypto/evp/libfips-lib-signature.o", + "crypto/evp/libfips-lib-skeymgmt_meth.o", "crypto/ffc/libfips-lib-ffc_backend.o", "crypto/ffc/libfips-lib-ffc_dh.o", "crypto/ffc/libfips-lib-ffc_key_generate.o", @@ -25567,6 +29850,8 @@ our %unified_info = ( "crypto/ffc/libfips-lib-ffc_params.o", "crypto/ffc/libfips-lib-ffc_params_generate.o", "crypto/ffc/libfips-lib-ffc_params_validate.o", + "crypto/hashtable/libfips-lib-hashfunc.o", + "crypto/hashtable/libfips-lib-hashtable.o", "crypto/hmac/libfips-lib-hmac.o", "crypto/lhash/libfips-lib-lhash.o", "crypto/libfips-lib-asn1_dsa.o", @@ -25588,6 +29873,7 @@ our %unified_info = ( "crypto/libfips-lib-params.o", "crypto/libfips-lib-params_dup.o", "crypto/libfips-lib-params_from_text.o", + "crypto/libfips-lib-params_idx.o", "crypto/libfips-lib-ppccap.o", "crypto/libfips-lib-ppccpuid.o", "crypto/libfips-lib-provider_core.o", @@ -25598,6 +29884,16 @@ our %unified_info = ( "crypto/libfips-lib-threads_none.o", "crypto/libfips-lib-threads_pthread.o", "crypto/libfips-lib-threads_win.o", + "crypto/libfips-lib-time.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_encoders.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_key.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_key_compress.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_matrix.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_ntt.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_params.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_sample.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_sign.o", + "crypto/ml_kem/libfips-lib-ml_kem.o", "crypto/modes/libfips-lib-cbc128.o", "crypto/modes/libfips-lib-ccm128.o", "crypto/modes/libfips-lib-cfb128.o", @@ -25607,6 +29903,7 @@ our %unified_info = ( "crypto/modes/libfips-lib-ofb128.o", "crypto/modes/libfips-lib-wrap128.o", "crypto/modes/libfips-lib-xts128.o", + "crypto/modes/libfips-lib-xts128gb.o", "crypto/property/libfips-lib-defn_cache.o", "crypto/property/libfips-lib-property.o", "crypto/property/libfips-lib-property_parse.o", @@ -25641,7 +29938,23 @@ our %unified_info = ( "crypto/sha/libfips-lib-sha512.o", "crypto/sha/libfips-lib-sha512p8-ppc.o", "crypto/sha/libfips-lib-sha_ppc.o", + "crypto/slh_dsa/libfips-lib-slh_adrs.o", + "crypto/slh_dsa/libfips-lib-slh_dsa.o", + "crypto/slh_dsa/libfips-lib-slh_dsa_hash_ctx.o", + "crypto/slh_dsa/libfips-lib-slh_dsa_key.o", + "crypto/slh_dsa/libfips-lib-slh_fors.o", + "crypto/slh_dsa/libfips-lib-slh_hash.o", + "crypto/slh_dsa/libfips-lib-slh_hypertree.o", + "crypto/slh_dsa/libfips-lib-slh_params.o", + "crypto/slh_dsa/libfips-lib-slh_wots.o", + "crypto/slh_dsa/libfips-lib-slh_xmss.o", "crypto/stack/libfips-lib-stack.o", + "crypto/thread/arch/libfips-lib-thread_none.o", + "crypto/thread/arch/libfips-lib-thread_posix.o", + "crypto/thread/arch/libfips-lib-thread_win.o", + "crypto/thread/libfips-lib-api.o", + "crypto/thread/libfips-lib-arch.o", + "crypto/thread/libfips-lib-internal.o", "providers/common/der/libfips-lib-der_rsa_sig.o", "providers/common/libfips-lib-bio_prov.o", "providers/common/libfips-lib-capabilities.o", @@ -25650,6 +29963,7 @@ our %unified_info = ( "providers/common/libfips-lib-provider_util.o", "providers/common/libfips-lib-securitycheck.o", "providers/common/libfips-lib-securitycheck_fips.o", + "providers/fips/libfips-lib-fipsindicator.o", "providers/fips/libfips-lib-fipsprov.o", "providers/fips/libfips-lib-self_test.o", "providers/fips/libfips-lib-self_test_kats.o", @@ -25687,6 +30001,8 @@ our %unified_info = ( "providers/implementations/kdfs/libfips-lib-sskdf.o", "providers/implementations/kdfs/libfips-lib-tls1_prf.o", "providers/implementations/kdfs/libfips-lib-x942kdf.o", + "providers/implementations/kem/libfips-lib-ml_kem_kem.o", + "providers/implementations/kem/libfips-lib-mlx_kem.o", "providers/implementations/kem/libfips-lib-rsa_kem.o", "providers/implementations/keymgmt/libfips-lib-dh_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-dsa_kmgmt.o", @@ -25694,24 +30010,32 @@ our %unified_info = ( "providers/implementations/keymgmt/libfips-lib-ecx_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-kdf_legacy_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-mac_legacy_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-ml_dsa_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-ml_kem_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-mlx_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-rsa_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-slh_dsa_kmgmt.o", "providers/implementations/macs/libfips-lib-cmac_prov.o", "providers/implementations/macs/libfips-lib-gmac_prov.o", "providers/implementations/macs/libfips-lib-hmac_prov.o", "providers/implementations/macs/libfips-lib-kmac_prov.o", - "providers/implementations/rands/libfips-lib-crngt.o", "providers/implementations/rands/libfips-lib-drbg.o", "providers/implementations/rands/libfips-lib-drbg_ctr.o", "providers/implementations/rands/libfips-lib-drbg_hash.o", "providers/implementations/rands/libfips-lib-drbg_hmac.o", + "providers/implementations/rands/libfips-lib-fips_crng_test.o", "providers/implementations/rands/libfips-lib-test_rng.o", "providers/implementations/signature/libfips-lib-dsa_sig.o", "providers/implementations/signature/libfips-lib-ecdsa_sig.o", "providers/implementations/signature/libfips-lib-eddsa_sig.o", "providers/implementations/signature/libfips-lib-mac_legacy_sig.o", + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o", "providers/implementations/signature/libfips-lib-rsa_sig.o", + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o", + "providers/implementations/skeymgmt/libfips-lib-aes_skmgmt.o", + "providers/implementations/skeymgmt/libfips-lib-generic.o", "providers/libcommon.a", - "ssl/libfips-lib-s3_cbc.o" + "ssl/record/methods/libfips-lib-ssl3_cbc.o" ], "providers/liblegacy-lib-prov_running.o" => [ "providers/prov_running.c" @@ -25741,13 +30065,12 @@ our %unified_info = ( "providers/implementations/digests/liblegacy-lib-ripemd_prov.o", "providers/implementations/digests/liblegacy-lib-wp_prov.o", "providers/implementations/kdfs/liblegacy-lib-pbkdf1.o", + "providers/implementations/kdfs/liblegacy-lib-pvkkdf.o", "providers/liblegacy-lib-prov_running.o" ], - "ssl/libdefault-lib-s3_cbc.o" => [ - "ssl/s3_cbc.c" - ], - "ssl/libfips-lib-s3_cbc.o" => [ - "ssl/s3_cbc.c" + "providers/libtemplate.a" => [ + "providers/implementations/kem/libtemplate-lib-template_kem.o", + "providers/implementations/keymgmt/libtemplate-lib-template_kmgmt.o" ], "ssl/libssl-lib-bio_ssl.o" => [ "ssl/bio_ssl.c" @@ -25767,6 +30090,9 @@ our %unified_info = ( "ssl/libssl-lib-pqueue.o" => [ "ssl/pqueue.c" ], + "ssl/libssl-lib-priority_queue.o" => [ + "ssl/priority_queue.c" + ], "ssl/libssl-lib-s3_enc.o" => [ "ssl/s3_enc.c" ], @@ -25782,15 +30108,15 @@ our %unified_info = ( "ssl/libssl-lib-ssl_cert.o" => [ "ssl/ssl_cert.c" ], + "ssl/libssl-lib-ssl_cert_comp.o" => [ + "ssl/ssl_cert_comp.c" + ], "ssl/libssl-lib-ssl_ciph.o" => [ "ssl/ssl_ciph.c" ], "ssl/libssl-lib-ssl_conf.o" => [ "ssl/ssl_conf.c" ], - "ssl/libssl-lib-ssl_err.o" => [ - "ssl/ssl_err.c" - ], "ssl/libssl-lib-ssl_err_legacy.o" => [ "ssl/ssl_err_legacy.c" ], @@ -25839,11 +30165,131 @@ our %unified_info = ( "ssl/libssl-lib-tls_srp.o" => [ "ssl/tls_srp.c" ], - "ssl/record/libcommon-lib-tls_pad.o" => [ - "ssl/record/tls_pad.c" + "ssl/quic/libssl-lib-cc_newreno.o" => [ + "ssl/quic/cc_newreno.c" + ], + "ssl/quic/libssl-lib-json_enc.o" => [ + "ssl/quic/json_enc.c" + ], + "ssl/quic/libssl-lib-qlog.o" => [ + "ssl/quic/qlog.c" + ], + "ssl/quic/libssl-lib-qlog_event_helpers.o" => [ + "ssl/quic/qlog_event_helpers.c" + ], + "ssl/quic/libssl-lib-quic_ackm.o" => [ + "ssl/quic/quic_ackm.c" + ], + "ssl/quic/libssl-lib-quic_cfq.o" => [ + "ssl/quic/quic_cfq.c" + ], + "ssl/quic/libssl-lib-quic_channel.o" => [ + "ssl/quic/quic_channel.c" + ], + "ssl/quic/libssl-lib-quic_demux.o" => [ + "ssl/quic/quic_demux.c" + ], + "ssl/quic/libssl-lib-quic_engine.o" => [ + "ssl/quic/quic_engine.c" + ], + "ssl/quic/libssl-lib-quic_fc.o" => [ + "ssl/quic/quic_fc.c" + ], + "ssl/quic/libssl-lib-quic_fifd.o" => [ + "ssl/quic/quic_fifd.c" + ], + "ssl/quic/libssl-lib-quic_impl.o" => [ + "ssl/quic/quic_impl.c" + ], + "ssl/quic/libssl-lib-quic_lcidm.o" => [ + "ssl/quic/quic_lcidm.c" + ], + "ssl/quic/libssl-lib-quic_method.o" => [ + "ssl/quic/quic_method.c" + ], + "ssl/quic/libssl-lib-quic_obj.o" => [ + "ssl/quic/quic_obj.c" + ], + "ssl/quic/libssl-lib-quic_port.o" => [ + "ssl/quic/quic_port.c" + ], + "ssl/quic/libssl-lib-quic_rcidm.o" => [ + "ssl/quic/quic_rcidm.c" + ], + "ssl/quic/libssl-lib-quic_reactor.o" => [ + "ssl/quic/quic_reactor.c" + ], + "ssl/quic/libssl-lib-quic_reactor_wait_ctx.o" => [ + "ssl/quic/quic_reactor_wait_ctx.c" + ], + "ssl/quic/libssl-lib-quic_record_rx.o" => [ + "ssl/quic/quic_record_rx.c" + ], + "ssl/quic/libssl-lib-quic_record_shared.o" => [ + "ssl/quic/quic_record_shared.c" + ], + "ssl/quic/libssl-lib-quic_record_tx.o" => [ + "ssl/quic/quic_record_tx.c" + ], + "ssl/quic/libssl-lib-quic_record_util.o" => [ + "ssl/quic/quic_record_util.c" + ], + "ssl/quic/libssl-lib-quic_rstream.o" => [ + "ssl/quic/quic_rstream.c" ], - "ssl/record/libssl-lib-dtls1_bitmap.o" => [ - "ssl/record/dtls1_bitmap.c" + "ssl/quic/libssl-lib-quic_rx_depack.o" => [ + "ssl/quic/quic_rx_depack.c" + ], + "ssl/quic/libssl-lib-quic_sf_list.o" => [ + "ssl/quic/quic_sf_list.c" + ], + "ssl/quic/libssl-lib-quic_srt_gen.o" => [ + "ssl/quic/quic_srt_gen.c" + ], + "ssl/quic/libssl-lib-quic_srtm.o" => [ + "ssl/quic/quic_srtm.c" + ], + "ssl/quic/libssl-lib-quic_sstream.o" => [ + "ssl/quic/quic_sstream.c" + ], + "ssl/quic/libssl-lib-quic_statm.o" => [ + "ssl/quic/quic_statm.c" + ], + "ssl/quic/libssl-lib-quic_stream_map.o" => [ + "ssl/quic/quic_stream_map.c" + ], + "ssl/quic/libssl-lib-quic_thread_assist.o" => [ + "ssl/quic/quic_thread_assist.c" + ], + "ssl/quic/libssl-lib-quic_tls.o" => [ + "ssl/quic/quic_tls.c" + ], + "ssl/quic/libssl-lib-quic_tls_api.o" => [ + "ssl/quic/quic_tls_api.c" + ], + "ssl/quic/libssl-lib-quic_trace.o" => [ + "ssl/quic/quic_trace.c" + ], + "ssl/quic/libssl-lib-quic_tserver.o" => [ + "ssl/quic/quic_tserver.c" + ], + "ssl/quic/libssl-lib-quic_txp.o" => [ + "ssl/quic/quic_txp.c" + ], + "ssl/quic/libssl-lib-quic_txpim.o" => [ + "ssl/quic/quic_txpim.c" + ], + "ssl/quic/libssl-lib-quic_types.o" => [ + "ssl/quic/quic_types.c" + ], + "ssl/quic/libssl-lib-quic_wire.o" => [ + "ssl/quic/quic_wire.c" + ], + "ssl/quic/libssl-lib-quic_wire_pkt.o" => [ + "ssl/quic/quic_wire_pkt.c" + ], + "ssl/quic/libssl-lib-uint_set.o" => [ + "ssl/quic/uint_set.c" ], "ssl/record/libssl-lib-rec_layer_d1.o" => [ "ssl/record/rec_layer_d1.c" @@ -25851,14 +30297,44 @@ our %unified_info = ( "ssl/record/libssl-lib-rec_layer_s3.o" => [ "ssl/record/rec_layer_s3.c" ], - "ssl/record/libssl-lib-ssl3_buffer.o" => [ - "ssl/record/ssl3_buffer.c" + "ssl/record/methods/libcommon-lib-tls_pad.o" => [ + "ssl/record/methods/tls_pad.c" + ], + "ssl/record/methods/libdefault-lib-ssl3_cbc.o" => [ + "ssl/record/methods/ssl3_cbc.c" + ], + "ssl/record/methods/libfips-lib-ssl3_cbc.o" => [ + "ssl/record/methods/ssl3_cbc.c" + ], + "ssl/record/methods/libssl-lib-dtls_meth.o" => [ + "ssl/record/methods/dtls_meth.c" + ], + "ssl/record/methods/libssl-lib-ssl3_meth.o" => [ + "ssl/record/methods/ssl3_meth.c" + ], + "ssl/record/methods/libssl-lib-tls13_meth.o" => [ + "ssl/record/methods/tls13_meth.c" + ], + "ssl/record/methods/libssl-lib-tls1_meth.o" => [ + "ssl/record/methods/tls1_meth.c" + ], + "ssl/record/methods/libssl-lib-tls_common.o" => [ + "ssl/record/methods/tls_common.c" ], - "ssl/record/libssl-lib-ssl3_record.o" => [ - "ssl/record/ssl3_record.c" + "ssl/record/methods/libssl-lib-tls_multib.o" => [ + "ssl/record/methods/tls_multib.c" ], - "ssl/record/libssl-lib-ssl3_record_tls13.o" => [ - "ssl/record/ssl3_record_tls13.c" + "ssl/record/methods/libssl-lib-tlsany_meth.o" => [ + "ssl/record/methods/tlsany_meth.c" + ], + "ssl/rio/libssl-lib-poll_builder.o" => [ + "ssl/rio/poll_builder.c" + ], + "ssl/rio/libssl-lib-poll_immediate.o" => [ + "ssl/rio/poll_immediate.c" + ], + "ssl/rio/libssl-lib-rio_notifier.o" => [ + "ssl/rio/rio_notifier.c" ], "ssl/statem/libssl-lib-extensions.o" => [ "ssl/statem/extensions.c" @@ -25954,6 +30430,8 @@ our %unified_info = ( "test/asn1_string_table_test.c" ], "test/asn1_time_test" => [ + "crypto/asn1/asn1_time_test-bin-a_time.o", + "crypto/asn1_time_test-bin-ctype.o", "test/asn1_time_test-bin-asn1_time_test.o" ], "test/asn1_time_test-bin-asn1_time_test.o" => [ @@ -25984,6 +30462,18 @@ our %unified_info = ( "test/bftest-bin-bftest.o" => [ "test/bftest.c" ], + "test/bio_addr_test" => [ + "test/bio_addr_test-bin-bio_addr_test.o" + ], + "test/bio_addr_test-bin-bio_addr_test.o" => [ + "test/bio_addr_test.c" + ], + "test/bio_base64_test" => [ + "test/bio_base64_test-bin-bio_base64_test.o" + ], + "test/bio_base64_test-bin-bio_base64_test.o" => [ + "test/bio_base64_test.c" + ], "test/bio_callback_test" => [ "test/bio_callback_test-bin-bio_callback_test.o" ], @@ -25996,6 +30486,12 @@ our %unified_info = ( "test/bio_core_test-bin-bio_core_test.o" => [ "test/bio_core_test.c" ], + "test/bio_dgram_test" => [ + "test/bio_dgram_test-bin-bio_dgram_test.o" + ], + "test/bio_dgram_test-bin-bio_dgram_test.o" => [ + "test/bio_dgram_test.c" + ], "test/bio_enc_test" => [ "test/bio_enc_test-bin-bio_enc_test.o" ], @@ -26008,6 +30504,12 @@ our %unified_info = ( "test/bio_memleak_test-bin-bio_memleak_test.o" => [ "test/bio_memleak_test.c" ], + "test/bio_meth_test" => [ + "test/bio_meth_test-bin-bio_meth_test.o" + ], + "test/bio_meth_test-bin-bio_meth_test.o" => [ + "test/bio_meth_test.c" + ], "test/bio_prefix_text" => [ "test/bio_prefix_text-bin-bio_prefix_text.o" ], @@ -26026,6 +30528,12 @@ our %unified_info = ( "test/bio_readbuffer_test-bin-bio_readbuffer_test.o" => [ "test/bio_readbuffer_test.c" ], + "test/bio_tfo_test" => [ + "test/bio_tfo_test-bin-bio_tfo_test.o" + ], + "test/bio_tfo_test-bin-bio_tfo_test.o" => [ + "test/bio_tfo_test.c" + ], "test/bioprinttest" => [ "test/bioprinttest-bin-bioprinttest.o" ], @@ -26044,6 +30552,12 @@ our %unified_info = ( "test/bntest-bin-bntest.o" => [ "test/bntest.c" ], + "test/build_wincrypt_test" => [ + "test/build_wincrypt_test-bin-build_wincrypt_test.o" + ], + "test/build_wincrypt_test-bin-build_wincrypt_test.o" => [ + "test/build_wincrypt_test.c" + ], "test/buildtest_c_aes" => [ "test/buildtest_c_aes-bin-buildtest_aes.o" ], @@ -26074,6 +30588,12 @@ our %unified_info = ( "test/buildtest_c_buffer-bin-buildtest_buffer.o" => [ "test/buildtest_buffer.c" ], + "test/buildtest_c_byteorder" => [ + "test/buildtest_c_byteorder-bin-buildtest_byteorder.o" + ], + "test/buildtest_c_byteorder-bin-buildtest_byteorder.o" => [ + "test/buildtest_byteorder.c" + ], "test/buildtest_c_camellia" => [ "test/buildtest_c_camellia-bin-buildtest_camellia.o" ], @@ -26122,12 +30642,6 @@ our %unified_info = ( "test/buildtest_c_core_dispatch-bin-buildtest_core_dispatch.o" => [ "test/buildtest_core_dispatch.c" ], - "test/buildtest_c_core_names" => [ - "test/buildtest_c_core_names-bin-buildtest_core_names.o" - ], - "test/buildtest_c_core_names-bin-buildtest_core_names.o" => [ - "test/buildtest_core_names.c" - ], "test/buildtest_c_core_object" => [ "test/buildtest_c_core_object-bin-buildtest_core_object.o" ], @@ -26176,6 +30690,12 @@ our %unified_info = ( "test/buildtest_c_e_os2-bin-buildtest_e_os2.o" => [ "test/buildtest_e_os2.c" ], + "test/buildtest_c_e_ostime" => [ + "test/buildtest_c_e_ostime-bin-buildtest_e_ostime.o" + ], + "test/buildtest_c_e_ostime-bin-buildtest_e_ostime.o" => [ + "test/buildtest_e_ostime.c" + ], "test/buildtest_c_ebcdic" => [ "test/buildtest_c_ebcdic-bin-buildtest_ebcdic.o" ], @@ -26230,6 +30750,12 @@ our %unified_info = ( "test/buildtest_c_hmac-bin-buildtest_hmac.o" => [ "test/buildtest_hmac.c" ], + "test/buildtest_c_hpke" => [ + "test/buildtest_c_hpke-bin-buildtest_hpke.o" + ], + "test/buildtest_c_hpke-bin-buildtest_hpke.o" => [ + "test/buildtest_hpke.c" + ], "test/buildtest_c_http" => [ "test/buildtest_c_http-bin-buildtest_http.o" ], @@ -26242,6 +30768,12 @@ our %unified_info = ( "test/buildtest_c_idea-bin-buildtest_idea.o" => [ "test/buildtest_idea.c" ], + "test/buildtest_c_indicator" => [ + "test/buildtest_c_indicator-bin-buildtest_indicator.o" + ], + "test/buildtest_c_indicator-bin-buildtest_indicator.o" => [ + "test/buildtest_indicator.c" + ], "test/buildtest_c_kdf" => [ "test/buildtest_c_kdf-bin-buildtest_kdf.o" ], @@ -26272,6 +30804,12 @@ our %unified_info = ( "test/buildtest_c_mdc2-bin-buildtest_mdc2.o" => [ "test/buildtest_mdc2.c" ], + "test/buildtest_c_ml_kem" => [ + "test/buildtest_c_ml_kem-bin-buildtest_ml_kem.o" + ], + "test/buildtest_c_ml_kem-bin-buildtest_ml_kem.o" => [ + "test/buildtest_ml_kem.c" + ], "test/buildtest_c_modes" => [ "test/buildtest_c_modes-bin-buildtest_modes.o" ], @@ -26332,6 +30870,12 @@ our %unified_info = ( "test/buildtest_c_provider-bin-buildtest_provider.o" => [ "test/buildtest_provider.c" ], + "test/buildtest_c_quic" => [ + "test/buildtest_c_quic-bin-buildtest_quic.o" + ], + "test/buildtest_c_quic-bin-buildtest_quic.o" => [ + "test/buildtest_quic.c" + ], "test/buildtest_c_rand" => [ "test/buildtest_c_rand-bin-buildtest_rand.o" ], @@ -26416,6 +30960,12 @@ our %unified_info = ( "test/buildtest_c_symhacks-bin-buildtest_symhacks.o" => [ "test/buildtest_symhacks.c" ], + "test/buildtest_c_thread" => [ + "test/buildtest_c_thread-bin-buildtest_thread.o" + ], + "test/buildtest_c_thread-bin-buildtest_thread.o" => [ + "test/buildtest_thread.c" + ], "test/buildtest_c_tls1" => [ "test/buildtest_c_tls1-bin-buildtest_tls1.o" ], @@ -26446,6 +30996,29 @@ our %unified_info = ( "test/buildtest_c_whrlpool-bin-buildtest_whrlpool.o" => [ "test/buildtest_whrlpool.c" ], + "test/byteorder_test" => [ + "test/byteorder_test-bin-byteorder_test.o" + ], + "test/byteorder_test-bin-byteorder_test.o" => [ + "test/byteorder_test.c" + ], + "test/ca_internals_test" => [ + "apps/ca_internals_test-bin-ca.o", + "apps/lib/ca_internals_test-bin-app_libctx.o", + "apps/lib/ca_internals_test-bin-app_provider.o", + "apps/lib/ca_internals_test-bin-app_rand.o", + "apps/lib/ca_internals_test-bin-app_x509.o", + "apps/lib/ca_internals_test-bin-apps.o", + "apps/lib/ca_internals_test-bin-apps_ui.o", + "apps/lib/ca_internals_test-bin-engine.o", + "apps/lib/ca_internals_test-bin-fmt.o", + "crypto/asn1/ca_internals_test-bin-a_time.o", + "crypto/ca_internals_test-bin-ctype.o", + "test/ca_internals_test-bin-ca_internals_test.o" + ], + "test/ca_internals_test-bin-ca_internals_test.o" => [ + "test/ca_internals_test.c" + ], "test/casttest" => [ "test/casttest-bin-casttest.o" ], @@ -26624,6 +31197,12 @@ our %unified_info = ( "test/danetest-bin-danetest.o" => [ "test/danetest.c" ], + "test/decoder_propq_test" => [ + "test/decoder_propq_test-bin-decoder_propq_test.o" + ], + "test/decoder_propq_test-bin-decoder_propq_test.o" => [ + "test/decoder_propq_test.c" + ], "test/defltfips_test" => [ "test/defltfips_test-bin-defltfips_test.o" ], @@ -26705,6 +31284,7 @@ our %unified_info = ( "test/ectest.c" ], "test/endecode_test" => [ + "providers/endecode_test-bin-legacyprov.o", "test/endecode_test-bin-endecode_test.o", "test/helpers/endecode_test-bin-predefined_dhparams.o" ], @@ -26737,17 +31317,29 @@ our %unified_info = ( ], "test/evp_extra_test" => [ "providers/evp_extra_test-bin-legacyprov.o", - "test/evp_extra_test-bin-evp_extra_test.o" + "test/evp_extra_test-bin-evp_extra_test.o", + "test/evp_extra_test-bin-fake_pipelineprov.o", + "test/evp_extra_test-bin-fake_rsaprov.o" ], "test/evp_extra_test-bin-evp_extra_test.o" => [ "test/evp_extra_test.c" ], + "test/evp_extra_test-bin-fake_pipelineprov.o" => [ + "test/fake_pipelineprov.c" + ], + "test/evp_extra_test-bin-fake_rsaprov.o" => [ + "test/fake_rsaprov.c" + ], "test/evp_extra_test2" => [ - "test/evp_extra_test2-bin-evp_extra_test2.o" + "test/evp_extra_test2-bin-evp_extra_test2.o", + "test/evp_extra_test2-bin-tls-provider.o" ], "test/evp_extra_test2-bin-evp_extra_test2.o" => [ "test/evp_extra_test2.c" ], + "test/evp_extra_test2-bin-tls-provider.o" => [ + "test/tls-provider.c" + ], "test/evp_fetch_prov_test" => [ "test/evp_fetch_prov_test-bin-evp_fetch_prov_test.o" ], @@ -26772,6 +31364,12 @@ our %unified_info = ( "test/evp_pkey_ctx_new_from_name-bin-evp_pkey_ctx_new_from_name.o" => [ "test/evp_pkey_ctx_new_from_name.c" ], + "test/evp_pkey_dhkem_test" => [ + "test/evp_pkey_dhkem_test-bin-evp_pkey_dhkem_test.o" + ], + "test/evp_pkey_dhkem_test-bin-evp_pkey_dhkem_test.o" => [ + "test/evp_pkey_dhkem_test.c" + ], "test/evp_pkey_dparams_test" => [ "test/evp_pkey_dparams_test-bin-evp_pkey_dparams_test.o" ], @@ -26784,12 +31382,28 @@ our %unified_info = ( "test/evp_pkey_provided_test-bin-evp_pkey_provided_test.o" => [ "test/evp_pkey_provided_test.c" ], + "test/evp_skey_test" => [ + "test/evp_skey_test-bin-evp_skey_test.o", + "test/evp_skey_test-bin-fake_cipherprov.o" + ], + "test/evp_skey_test-bin-evp_skey_test.o" => [ + "test/evp_skey_test.c" + ], + "test/evp_skey_test-bin-fake_cipherprov.o" => [ + "test/fake_cipherprov.c" + ], "test/evp_test" => [ "test/evp_test-bin-evp_test.o" ], "test/evp_test-bin-evp_test.o" => [ "test/evp_test.c" ], + "test/evp_xof_test" => [ + "test/evp_xof_test-bin-evp_xof_test.o" + ], + "test/evp_xof_test-bin-evp_xof_test.o" => [ + "test/evp_xof_test.c" + ], "test/exdatatest" => [ "test/exdatatest-bin-exdatatest.o" ], @@ -26875,15 +31489,108 @@ our %unified_info = ( "test/helpers/fatalerrtest-bin-ssltestlib.o" => [ "test/helpers/ssltestlib.c" ], + "test/helpers/json_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/json_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/json_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/json_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/pkcs12_api_test-bin-pkcs12.o" => [ + "test/helpers/pkcs12.c" + ], "test/helpers/pkcs12_format_test-bin-pkcs12.o" => [ "test/helpers/pkcs12.c" ], + "test/helpers/quic_multistream_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quic_multistream_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quic_multistream_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quic_multistream_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quic_newcid_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quic_newcid_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quic_newcid_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quic_newcid_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quic_radix_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quic_radix_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quic_radix_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quic_radix_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quic_srt_gen_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quic_srt_gen_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quic_srt_gen_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quic_srt_gen_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quicapitest-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quicapitest-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quicapitest-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quicapitest-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quicfaultstest-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quicfaultstest-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quicfaultstest-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quicfaultstest-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], "test/helpers/recordlentest-bin-ssltestlib.o" => [ "test/helpers/ssltestlib.c" ], + "test/helpers/rpktest-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], "test/helpers/servername_test-bin-ssltestlib.o" => [ "test/helpers/ssltestlib.c" ], + "test/helpers/ssl_handshake_rtt_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], "test/helpers/ssl_old_test-bin-predefined_dhparams.o" => [ "test/helpers/predefined_dhparams.c" ], @@ -26911,6 +31618,9 @@ our %unified_info = ( "test/helpers/tls13ccstest-bin-ssltestlib.o" => [ "test/helpers/ssltestlib.c" ], + "test/helpers/tls13groupselection_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], "test/hexstr_test" => [ "test/hexstr_test-bin-hexstr_test.o" ], @@ -26923,6 +31633,12 @@ our %unified_info = ( "test/hmactest-bin-hmactest.o" => [ "test/hmactest.c" ], + "test/hpke_test" => [ + "test/hpke_test-bin-hpke_test.o" + ], + "test/hpke_test-bin-hpke_test.o" => [ + "test/hpke_test.c" + ], "test/http_test" => [ "test/http_test-bin-http_test.o" ], @@ -26941,6 +31657,16 @@ our %unified_info = ( "test/igetest-bin-igetest.o" => [ "test/igetest.c" ], + "test/json_test" => [ + "test/helpers/json_test-bin-noisydgrambio.o", + "test/helpers/json_test-bin-pktsplitbio.o", + "test/helpers/json_test-bin-quictestlib.o", + "test/helpers/json_test-bin-ssltestlib.o", + "test/json_test-bin-json_test.o" + ], + "test/json_test-bin-json_test.o" => [ + "test/json_test.c" + ], "test/keymgmt_internal_test" => [ "test/keymgmt_internal_test-bin-keymgmt_internal_test.o" ], @@ -26961,6 +31687,7 @@ our %unified_info = ( "test/testutil/libtestutil-lib-driver.o", "test/testutil/libtestutil-lib-fake_random.o", "test/testutil/libtestutil-lib-format_output.o", + "test/testutil/libtestutil-lib-helper.o", "test/testutil/libtestutil-lib-load.o", "test/testutil/libtestutil-lib-main.o", "test/testutil/libtestutil-lib-options.o", @@ -26973,6 +31700,12 @@ our %unified_info = ( "test/testutil/libtestutil-lib-tests.o", "test/testutil/libtestutil-lib-testutil_init.o" ], + "test/list_test" => [ + "test/list_test-bin-list_test.o" + ], + "test/list_test-bin-list_test.o" => [ + "test/list_test.c" + ], "test/localetest" => [ "test/localetest-bin-localetest.o" ], @@ -26991,12 +31724,36 @@ our %unified_info = ( "test/mdc2test-bin-mdc2test.o" => [ "test/mdc2test.c" ], + "test/membio_test" => [ + "test/membio_test-bin-membio_test.o" + ], + "test/membio_test-bin-membio_test.o" => [ + "test/membio_test.c" + ], "test/memleaktest" => [ "test/memleaktest-bin-memleaktest.o" ], "test/memleaktest-bin-memleaktest.o" => [ "test/memleaktest.c" ], + "test/ml_dsa_test" => [ + "test/ml_dsa_test-bin-ml_dsa_test.o" + ], + "test/ml_dsa_test-bin-ml_dsa_test.o" => [ + "test/ml_dsa_test.c" + ], + "test/ml_kem_evp_extra_test" => [ + "test/ml_kem_evp_extra_test-bin-ml_kem_evp_extra_test.o" + ], + "test/ml_kem_evp_extra_test-bin-ml_kem_evp_extra_test.o" => [ + "test/ml_kem_evp_extra_test.c" + ], + "test/ml_kem_internal_test" => [ + "test/ml_kem_internal_test-bin-ml_kem_internal_test.o" + ], + "test/ml_kem_internal_test-bin-ml_kem_internal_test.o" => [ + "test/ml_kem_internal_test.c" + ], "test/modes_internal_test" => [ "test/modes_internal_test-bin-modes_internal_test.o" ], @@ -27042,11 +31799,18 @@ our %unified_info = ( "test/p_test.c" ], "test/packettest" => [ + "crypto/packettest-bin-quic_vlint.o", "test/packettest-bin-packettest.o" ], "test/packettest-bin-packettest.o" => [ "test/packettest.c" ], + "test/pairwise_fail_test" => [ + "test/pairwise_fail_test-bin-pairwise_fail_test.o" + ], + "test/pairwise_fail_test-bin-pairwise_fail_test.o" => [ + "test/pairwise_fail_test.c" + ], "test/param_build_test" => [ "test/param_build_test-bin-param_build_test.o" ], @@ -27095,6 +31859,13 @@ our %unified_info = ( "test/pemtest-bin-pemtest.o" => [ "test/pemtest.c" ], + "test/pkcs12_api_test" => [ + "test/helpers/pkcs12_api_test-bin-pkcs12.o", + "test/pkcs12_api_test-bin-pkcs12_api_test.o" + ], + "test/pkcs12_api_test-bin-pkcs12_api_test.o" => [ + "test/pkcs12_api_test.c" + ], "test/pkcs12_format_test" => [ "test/helpers/pkcs12_format_test-bin-pkcs12.o", "test/pkcs12_format_test-bin-pkcs12_format_test.o" @@ -27126,6 +31897,12 @@ our %unified_info = ( "test/poly1305_internal_test-bin-poly1305_internal_test.o" => [ "test/poly1305_internal_test.c" ], + "test/priority_queue_test" => [ + "test/priority_queue_test-bin-priority_queue_test.o" + ], + "test/priority_queue_test-bin-priority_queue_test.o" => [ + "test/priority_queue_test.c" + ], "test/property_test" => [ "test/property_test-bin-property_test.o" ], @@ -27144,6 +31921,12 @@ our %unified_info = ( "test/provfetchtest-bin-provfetchtest.o" => [ "test/provfetchtest.c" ], + "test/provider_default_search_path_test" => [ + "test/provider_default_search_path_test-bin-provider_default_search_path_test.o" + ], + "test/provider_default_search_path_test-bin-provider_default_search_path_test.o" => [ + "test/provider_default_search_path_test.c" + ], "test/provider_fallback_test" => [ "test/provider_fallback_test-bin-provider_fallback_test.o" ], @@ -27192,6 +31975,174 @@ our %unified_info = ( "test/punycode_test-bin-punycode_test.o" => [ "test/punycode_test.c" ], + "test/quic_ackm_test" => [ + "test/quic_ackm_test-bin-cc_dummy.o", + "test/quic_ackm_test-bin-quic_ackm_test.o" + ], + "test/quic_ackm_test-bin-cc_dummy.o" => [ + "test/cc_dummy.c" + ], + "test/quic_ackm_test-bin-quic_ackm_test.o" => [ + "test/quic_ackm_test.c" + ], + "test/quic_cc_test" => [ + "test/quic_cc_test-bin-quic_cc_test.o" + ], + "test/quic_cc_test-bin-quic_cc_test.o" => [ + "test/quic_cc_test.c" + ], + "test/quic_cfq_test" => [ + "test/quic_cfq_test-bin-quic_cfq_test.o" + ], + "test/quic_cfq_test-bin-quic_cfq_test.o" => [ + "test/quic_cfq_test.c" + ], + "test/quic_client_test" => [ + "test/quic_client_test-bin-quic_client_test.o" + ], + "test/quic_client_test-bin-quic_client_test.o" => [ + "test/quic_client_test.c" + ], + "test/quic_fc_test" => [ + "test/quic_fc_test-bin-quic_fc_test.o" + ], + "test/quic_fc_test-bin-quic_fc_test.o" => [ + "test/quic_fc_test.c" + ], + "test/quic_fifd_test" => [ + "test/quic_fifd_test-bin-cc_dummy.o", + "test/quic_fifd_test-bin-quic_fifd_test.o" + ], + "test/quic_fifd_test-bin-cc_dummy.o" => [ + "test/cc_dummy.c" + ], + "test/quic_fifd_test-bin-quic_fifd_test.o" => [ + "test/quic_fifd_test.c" + ], + "test/quic_lcidm_test" => [ + "test/quic_lcidm_test-bin-quic_lcidm_test.o" + ], + "test/quic_lcidm_test-bin-quic_lcidm_test.o" => [ + "test/quic_lcidm_test.c" + ], + "test/quic_multistream_test" => [ + "test/helpers/quic_multistream_test-bin-noisydgrambio.o", + "test/helpers/quic_multistream_test-bin-pktsplitbio.o", + "test/helpers/quic_multistream_test-bin-quictestlib.o", + "test/helpers/quic_multistream_test-bin-ssltestlib.o", + "test/quic_multistream_test-bin-quic_multistream_test.o" + ], + "test/quic_multistream_test-bin-quic_multistream_test.o" => [ + "test/quic_multistream_test.c" + ], + "test/quic_newcid_test" => [ + "test/helpers/quic_newcid_test-bin-noisydgrambio.o", + "test/helpers/quic_newcid_test-bin-pktsplitbio.o", + "test/helpers/quic_newcid_test-bin-quictestlib.o", + "test/helpers/quic_newcid_test-bin-ssltestlib.o", + "test/quic_newcid_test-bin-quic_newcid_test.o" + ], + "test/quic_newcid_test-bin-quic_newcid_test.o" => [ + "test/quic_newcid_test.c" + ], + "test/quic_qlog_test" => [ + "test/quic_qlog_test-bin-quic_qlog_test.o" + ], + "test/quic_qlog_test-bin-quic_qlog_test.o" => [ + "test/quic_qlog_test.c" + ], + "test/quic_radix_test" => [ + "test/helpers/quic_radix_test-bin-noisydgrambio.o", + "test/helpers/quic_radix_test-bin-pktsplitbio.o", + "test/helpers/quic_radix_test-bin-quictestlib.o", + "test/helpers/quic_radix_test-bin-ssltestlib.o", + "test/radix/quic_radix_test-bin-quic_radix.o" + ], + "test/quic_rcidm_test" => [ + "test/quic_rcidm_test-bin-quic_rcidm_test.o" + ], + "test/quic_rcidm_test-bin-quic_rcidm_test.o" => [ + "test/quic_rcidm_test.c" + ], + "test/quic_record_test" => [ + "test/quic_record_test-bin-quic_record_test.o" + ], + "test/quic_record_test-bin-quic_record_test.o" => [ + "test/quic_record_test.c" + ], + "test/quic_srt_gen_test" => [ + "test/helpers/quic_srt_gen_test-bin-noisydgrambio.o", + "test/helpers/quic_srt_gen_test-bin-pktsplitbio.o", + "test/helpers/quic_srt_gen_test-bin-quictestlib.o", + "test/helpers/quic_srt_gen_test-bin-ssltestlib.o", + "test/quic_srt_gen_test-bin-quic_srt_gen_test.o" + ], + "test/quic_srt_gen_test-bin-quic_srt_gen_test.o" => [ + "test/quic_srt_gen_test.c" + ], + "test/quic_srtm_test" => [ + "test/quic_srtm_test-bin-quic_srtm_test.o" + ], + "test/quic_srtm_test-bin-quic_srtm_test.o" => [ + "test/quic_srtm_test.c" + ], + "test/quic_stream_test" => [ + "test/quic_stream_test-bin-quic_stream_test.o" + ], + "test/quic_stream_test-bin-quic_stream_test.o" => [ + "test/quic_stream_test.c" + ], + "test/quic_tserver_test" => [ + "test/quic_tserver_test-bin-quic_tserver_test.o" + ], + "test/quic_tserver_test-bin-quic_tserver_test.o" => [ + "test/quic_tserver_test.c" + ], + "test/quic_txp_test" => [ + "test/quic_txp_test-bin-cc_dummy.o", + "test/quic_txp_test-bin-quic_txp_test.o" + ], + "test/quic_txp_test-bin-cc_dummy.o" => [ + "test/cc_dummy.c" + ], + "test/quic_txp_test-bin-quic_txp_test.o" => [ + "test/quic_txp_test.c" + ], + "test/quic_txpim_test" => [ + "test/quic_txpim_test-bin-quic_txpim_test.o" + ], + "test/quic_txpim_test-bin-quic_txpim_test.o" => [ + "test/quic_txpim_test.c" + ], + "test/quic_wire_test" => [ + "test/quic_wire_test-bin-quic_wire_test.o" + ], + "test/quic_wire_test-bin-quic_wire_test.o" => [ + "test/quic_wire_test.c" + ], + "test/quicapitest" => [ + "test/helpers/quicapitest-bin-noisydgrambio.o", + "test/helpers/quicapitest-bin-pktsplitbio.o", + "test/helpers/quicapitest-bin-quictestlib.o", + "test/helpers/quicapitest-bin-ssltestlib.o", + "test/quicapitest-bin-quicapitest.o" + ], + "test/quicapitest-bin-quicapitest.o" => [ + "test/quicapitest.c" + ], + "test/quicfaultstest" => [ + "test/helpers/quicfaultstest-bin-noisydgrambio.o", + "test/helpers/quicfaultstest-bin-pktsplitbio.o", + "test/helpers/quicfaultstest-bin-quictestlib.o", + "test/helpers/quicfaultstest-bin-ssltestlib.o", + "test/quicfaultstest-bin-quicfaultstest.o" + ], + "test/quicfaultstest-bin-quicfaultstest.o" => [ + "test/quicfaultstest.c" + ], + "test/radix/quic_radix_test-bin-quic_radix.o" => [ + "test/radix/quic_radix.c" + ], "test/rand_status_test" => [ "test/rand_status_test-bin-rand_status_test.o" ], @@ -27222,11 +32173,11 @@ our %unified_info = ( "test/rc5test-bin-rc5test.o" => [ "test/rc5test.c" ], - "test/rdrand_sanitytest" => [ - "test/rdrand_sanitytest-bin-rdrand_sanitytest.o" + "test/rdcpu_sanitytest" => [ + "test/rdcpu_sanitytest-bin-rdcpu_sanitytest.o" ], - "test/rdrand_sanitytest-bin-rdrand_sanitytest.o" => [ - "test/rdrand_sanitytest.c" + "test/rdcpu_sanitytest-bin-rdcpu_sanitytest.o" => [ + "test/rdcpu_sanitytest.c" ], "test/recordlentest" => [ "test/helpers/recordlentest-bin-ssltestlib.o", @@ -27235,6 +32186,13 @@ our %unified_info = ( "test/recordlentest-bin-recordlentest.o" => [ "test/recordlentest.c" ], + "test/rpktest" => [ + "test/helpers/rpktest-bin-ssltestlib.o", + "test/rpktest-bin-rpktest.o" + ], + "test/rpktest-bin-rpktest.o" => [ + "test/rpktest.c" + ], "test/rsa_complex" => [ "test/rsa_complex-bin-rsa_complex.o" ], @@ -27259,6 +32217,18 @@ our %unified_info = ( "test/rsa_test-bin-rsa_test.o" => [ "test/rsa_test.c" ], + "test/rsa_x931_test" => [ + "test/rsa_x931_test-bin-rsa_x931_test.o" + ], + "test/rsa_x931_test-bin-rsa_x931_test.o" => [ + "test/rsa_x931_test.c" + ], + "test/safe_math_test" => [ + "test/safe_math_test-bin-safe_math_test.o" + ], + "test/safe_math_test-bin-safe_math_test.o" => [ + "test/safe_math_test.c" + ], "test/sanitytest" => [ "test/sanitytest-bin-sanitytest.o" ], @@ -27290,6 +32260,12 @@ our %unified_info = ( "test/siphash_internal_test-bin-siphash_internal_test.o" => [ "test/siphash_internal_test.c" ], + "test/slh_dsa_test" => [ + "test/slh_dsa_test-bin-slh_dsa_test.o" + ], + "test/slh_dsa_test-bin-slh_dsa_test.o" => [ + "test/slh_dsa_test.c" + ], "test/sm2_internal_test" => [ "test/sm2_internal_test-bin-sm2_internal_test.o" ], @@ -27332,6 +32308,13 @@ our %unified_info = ( "test/ssl_ctx_test-bin-ssl_ctx_test.o" => [ "test/ssl_ctx_test.c" ], + "test/ssl_handshake_rtt_test" => [ + "test/helpers/ssl_handshake_rtt_test-bin-ssltestlib.o", + "test/ssl_handshake_rtt_test-bin-ssl_handshake_rtt_test.o" + ], + "test/ssl_handshake_rtt_test-bin-ssl_handshake_rtt_test.o" => [ + "test/ssl_handshake_rtt_test.c" + ], "test/ssl_old_test" => [ "test/helpers/ssl_old_test-bin-predefined_dhparams.o", "test/ssl_old_test-bin-ssl_old_test.o" @@ -27390,6 +32373,12 @@ our %unified_info = ( "test/stack_test-bin-stack_test.o" => [ "test/stack_test.c" ], + "test/strtoultest" => [ + "test/strtoultest-bin-strtoultest.o" + ], + "test/strtoultest-bin-strtoultest.o" => [ + "test/strtoultest.c" + ], "test/sysdefaulttest" => [ "test/sysdefaulttest-bin-sysdefaulttest.o" ], @@ -27420,6 +32409,9 @@ our %unified_info = ( "test/testutil/libtestutil-lib-format_output.o" => [ "test/testutil/format_output.c" ], + "test/testutil/libtestutil-lib-helper.o" => [ + "test/testutil/helper.c" + ], "test/testutil/libtestutil-lib-load.o" => [ "test/testutil/load.c" ], @@ -27453,6 +32445,12 @@ our %unified_info = ( "test/testutil/libtestutil-lib-testutil_init.o" => [ "test/testutil/testutil_init.c" ], + "test/threadpool_test" => [ + "test/threadpool_test-bin-threadpool_test.o" + ], + "test/threadpool_test-bin-threadpool_test.o" => [ + "test/threadpool_test.c" + ], "test/threadstest" => [ "test/threadstest-bin-threadstest.o" ], @@ -27471,6 +32469,12 @@ our %unified_info = ( "test/time_offset_test-bin-time_offset_test.o" => [ "test/time_offset_test.c" ], + "test/time_test" => [ + "test/time_test-bin-time_test.o" + ], + "test/time_test-bin-time_test.o" => [ + "test/time_test.c" + ], "test/tls13ccstest" => [ "test/helpers/tls13ccstest-bin-ssltestlib.o", "test/tls13ccstest-bin-tls13ccstest.o" @@ -27484,6 +32488,13 @@ our %unified_info = ( "test/tls13encryptiontest-bin-tls13encryptiontest.o" => [ "test/tls13encryptiontest.c" ], + "test/tls13groupselection_test" => [ + "test/helpers/tls13groupselection_test-bin-ssltestlib.o", + "test/tls13groupselection_test-bin-tls13groupselection_test.o" + ], + "test/tls13groupselection_test-bin-tls13groupselection_test.o" => [ + "test/tls13groupselection_test.c" + ], "test/trace_api_test" => [ "test/trace_api_test-bin-trace_api_test.o" ], @@ -27539,6 +32550,12 @@ our %unified_info = ( "test/wpackettest-bin-wpackettest.o" => [ "test/wpackettest.c" ], + "test/x509_acert_test" => [ + "test/x509_acert_test-bin-x509_acert_test.o" + ], + "test/x509_acert_test-bin-x509_acert_test.o" => [ + "test/x509_acert_test.c" + ], "test/x509_check_cert_pkey_test" => [ "test/x509_check_cert_pkey_test-bin-x509_check_cert_pkey_test.o" ], @@ -27557,6 +32574,24 @@ our %unified_info = ( "test/x509_internal_test-bin-x509_internal_test.o" => [ "test/x509_internal_test.c" ], + "test/x509_load_cert_file_test" => [ + "test/x509_load_cert_file_test-bin-x509_load_cert_file_test.o" + ], + "test/x509_load_cert_file_test-bin-x509_load_cert_file_test.o" => [ + "test/x509_load_cert_file_test.c" + ], + "test/x509_req_test" => [ + "test/x509_req_test-bin-x509_req_test.o" + ], + "test/x509_req_test-bin-x509_req_test.o" => [ + "test/x509_req_test.c" + ], + "test/x509_test" => [ + "test/x509_test-bin-x509_test.o" + ], + "test/x509_test-bin-x509_test.o" => [ + "test/x509_test.c" + ], "test/x509_time_test" => [ "test/x509_time_test-bin-x509_time_test.o" ], @@ -27620,6 +32655,7 @@ my @makevars = ( "LDLIBS", "MT", "MTFLAGS", + "OBJCOPY", "PERL", "RANLIB", "RC", @@ -27633,6 +32669,12 @@ my %disabled_info = ( "asan" => { "macro" => "OPENSSL_NO_ASAN" }, + "brotli" => { + "macro" => "OPENSSL_NO_BROTLI" + }, + "brotli-dynamic" => { + "macro" => "OPENSSL_NO_BROTLI_DYNAMIC" + }, "comp" => { "macro" => "OPENSSL_NO_COMP", "skipped" => [ @@ -27645,6 +32687,9 @@ my %disabled_info = ( "crypto-mdebug-backtrace" => { "macro" => "OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE" }, + "demos" => { + "macro" => "OPENSSL_NO_DEMOS" + }, "devcryptoeng" => { "macro" => "OPENSSL_NO_DEVCRYPTOENG" }, @@ -27657,12 +32702,24 @@ my %disabled_info = ( "external-tests" => { "macro" => "OPENSSL_NO_EXTERNAL_TESTS" }, + "fips-jitter" => { + "macro" => "OPENSSL_NO_FIPS_JITTER" + }, "fuzz-afl" => { "macro" => "OPENSSL_NO_FUZZ_AFL" }, "fuzz-libfuzzer" => { "macro" => "OPENSSL_NO_FUZZ_LIBFUZZER" }, + "h3demo" => { + "macro" => "OPENSSL_NO_H3DEMO" + }, + "hqinterop" => { + "macro" => "OPENSSL_NO_HQINTEROP" + }, + "jitter" => { + "macro" => "OPENSSL_NO_JITTER" + }, "ktls" => { "macro" => "OPENSSL_NO_KTLS" }, @@ -27678,6 +32735,9 @@ my %disabled_info = ( "msan" => { "macro" => "OPENSSL_NO_MSAN" }, + "pie" => { + "macro" => "OPENSSL_NO_PIE" + }, "rc5" => { "macro" => "OPENSSL_NO_RC5", "skipped" => [ @@ -27693,6 +32753,12 @@ my %disabled_info = ( "ssl3-method" => { "macro" => "OPENSSL_NO_SSL3_METHOD" }, + "sslkeylog" => { + "macro" => "OPENSSL_NO_SSLKEYLOG" + }, + "tfo" => { + "macro" => "OPENSSL_NO_TFO" + }, "trace" => { "macro" => "OPENSSL_NO_TRACE" }, @@ -27707,6 +32773,21 @@ my %disabled_info = ( }, "weak-ssl-ciphers" => { "macro" => "OPENSSL_NO_WEAK_SSL_CIPHERS" + }, + "winstore" => { + "macro" => "OPENSSL_NO_WINSTORE" + }, + "zlib" => { + "macro" => "OPENSSL_NO_ZLIB" + }, + "zlib-dynamic" => { + "macro" => "OPENSSL_NO_ZLIB_DYNAMIC" + }, + "zstd" => { + "macro" => "OPENSSL_NO_ZSTD" + }, + "zstd-dynamic" => { + "macro" => "OPENSSL_NO_ZSTD_DYNAMIC" } ); my @user_crossable = qw( AR AS CC CXX CPP LD MT RANLIB RC ); @@ -27720,15 +32801,15 @@ unless (caller) { use File::Copy; use Pod::Usage; - use lib '/home/runner/work/node/node/deps/openssl/openssl/util/perl'; - use OpenSSL::fallback '/home/runner/work/node/node/deps/openssl/openssl/external/perl/MODULES.txt'; + use lib '/node/deps/openssl/openssl/util/perl'; + use OpenSSL::fallback '/node/deps/openssl/openssl/external/perl/MODULES.txt'; my $here = dirname($0); if (scalar @ARGV == 0) { # With no arguments, re-create the build file # We do that in two steps, where the first step emits perl - # snipets. + # snippets. my $buildfile = $config{build_file}; my $buildfile_template = "$buildfile.in"; @@ -27748,7 +32829,7 @@ unless (caller) { ); use lib '.'; - use lib '/home/runner/work/node/node/deps/openssl/openssl/Configurations'; + use lib '/node/deps/openssl/openssl/Configurations'; use gentemplate; open my $buildfile_template_fh, ">$buildfile_template" @@ -27765,8 +32846,8 @@ unless (caller) { my $prepend = <<'_____'; use File::Spec::Functions; -use lib '/home/runner/work/node/node/deps/openssl/openssl/util/perl'; -use lib '/home/runner/work/node/node/deps/openssl/openssl/Configurations'; +use lib '/node/deps/openssl/openssl/util/perl'; +use lib '/node/deps/openssl/openssl/Configurations'; use lib '.'; use platform; _____ diff --git a/deps/openssl/config/archs/aix64-gcc-as/asm_avx2/crypto/bn/ppc64-mont-fixed.s b/deps/openssl/config/archs/aix64-gcc-as/asm_avx2/crypto/bn/ppc64-mont-fixed.s new file mode 100644 index 00000000000000..9c6337035ae184 --- /dev/null +++ b/deps/openssl/config/archs/aix64-gcc-as/asm_avx2/crypto/bn/ppc64-mont-fixed.s @@ -0,0 +1,417 @@ +.machine "any" +.csect .text[PR],7 + +.globl .bn_mul_mont_fixed_n6 +.align 5 +.bn_mul_mont_fixed_n6: + + std 14,-8(1) + std 20,-16(1) + std 21,-24(1) + std 22,-32(1) + std 23,-40(1) + std 24,-48(1) + std 25,-56(1) + std 26,-64(1) + std 27,-72(1) + + li 0,0 + ld 7,0(7) + + ld 11,0(5) + + ld 12,0(4) + mulld 20,12,11 + mulhdu 10,12,11 + + ld 12,8(4) + mulld 14,12,11 + addc 21,14,10 + mulhdu 10,12,11 + addze 10,10 + + ld 12,16(4) + mulld 14,12,11 + addc 22,14,10 + mulhdu 10,12,11 + addze 10,10 + + ld 12,24(4) + mulld 14,12,11 + addc 23,14,10 + mulhdu 10,12,11 + addze 10,10 + + ld 12,32(4) + mulld 14,12,11 + addc 24,14,10 + mulhdu 10,12,11 + addze 10,10 + + ld 12,40(4) + mulld 14,12,11 + addc 25,14,10 + mulhdu 10,12,11 + + addze 26,10 + li 27,0 + + li 9,0 + mtctr 8 + b Lenter_6 + +.align 4 +Louter_6: + ldx 11,5,9 + + ld 12,0(4) + mulld 14,12,11 + addc 20,20,14 + mulhdu 10,12,11 + addze 10,10 + + ld 12,8(4) + mulld 14,12,11 + addc 14,14,10 + mulhdu 10,12,11 + addze 10,10 + addc 21,21,14 + addze 10,10 + + ld 12,16(4) + mulld 14,12,11 + addc 14,14,10 + mulhdu 10,12,11 + addze 10,10 + addc 22,22,14 + addze 10,10 + + ld 12,24(4) + mulld 14,12,11 + addc 14,14,10 + mulhdu 10,12,11 + addze 10,10 + addc 23,23,14 + addze 10,10 + + ld 12,32(4) + mulld 14,12,11 + addc 14,14,10 + mulhdu 10,12,11 + addze 10,10 + addc 24,24,14 + addze 10,10 + + ld 12,40(4) + mulld 14,12,11 + addc 14,14,10 + mulhdu 10,12,11 + addze 10,10 + addc 25,25,14 + addze 10,10 + + addc 26,26,10 + addze 27,0 +.align 4 +Lenter_6: + mulld 11,20,7 + + ld 12,0(6) + mulld 14,11,12 + addc 14,20,14 + mulhdu 10,11,12 + addze 10,10 + + ld 12,8(6) + mulld 14,12,11 + addc 14,14,10 + mulhdu 10,12,11 + addze 10,10 + addc 20,21,14 + addze 10,10 + + ld 12,16(6) + mulld 14,12,11 + addc 14,14,10 + mulhdu 10,12,11 + addze 10,10 + addc 21,22,14 + addze 10,10 + + ld 12,24(6) + mulld 14,12,11 + addc 14,14,10 + mulhdu 10,12,11 + addze 10,10 + addc 22,23,14 + addze 10,10 + + ld 12,32(6) + mulld 14,12,11 + addc 14,14,10 + mulhdu 10,12,11 + addze 10,10 + addc 23,24,14 + addze 10,10 + + ld 12,40(6) + mulld 14,12,11 + addc 14,14,10 + mulhdu 10,12,11 + addze 10,10 + addc 24,25,14 + addze 10,10 + + addc 25,26,10 + addze 26,27 + + addi 9,9,8 + bc 16,0,Louter_6 + + and. 26,26,26 + bne Lsub_6 + + cmpld 25,12 + blt Lcopy_6 + +Lsub_6: + ld 11,0(6) + subfc 14,11,20 + std 14,0(3) + + ld 11,8(6) + subfe 14,11,21 + std 14,8(3) + + ld 11,16(6) + subfe 14,11,22 + std 14,16(3) + + ld 11,24(6) + subfe 14,11,23 + std 14,24(3) + + ld 11,32(6) + subfe 14,11,24 + std 14,32(3) + + subfe 14,12,25 + std 14,40(3) + + addme. 26,26 + beq Lend_6 + +Lcopy_6: + std 20,0(3) + std 21,8(3) + std 22,16(3) + std 23,24(3) + std 24,32(3) + std 25,40(3) + +Lend_6: + ld 14,-8(1) + ld 20,-16(1) + ld 21,-24(1) + ld 22,-32(1) + ld 23,-40(1) + ld 24,-48(1) + ld 25,-56(1) + ld 26,-64(1) + ld 27,-72(1) + + li 3,1 + blr + + +.globl .bn_mul_mont_300_fixed_n6 +.align 5 +.bn_mul_mont_300_fixed_n6: + + std 14,-8(1) + std 20,-16(1) + std 21,-24(1) + std 22,-32(1) + std 23,-40(1) + std 24,-48(1) + std 25,-56(1) + std 26,-64(1) + std 27,-72(1) + + li 0,0 + ld 7,0(7) + + ld 11,0(5) + + ld 12,0(4) + mulld 20,12,11 + mulhdu 10,12,11 + + ld 12,8(4) + .long 0x12AC5AB3 + .long 0x114C5AB1 + + ld 12,16(4) + .long 0x12CC5AB3 + .long 0x114C5AB1 + + ld 12,24(4) + .long 0x12EC5AB3 + .long 0x114C5AB1 + + ld 12,32(4) + .long 0x130C5AB3 + .long 0x114C5AB1 + + ld 12,40(4) + .long 0x132C5AB3 + .long 0x134C5AB1 + + li 27,0 + + li 9,0 + mtctr 8 + b Lenter_300_6 + +.align 4 +Louter_300_6: + ldx 11,5,9 + + ld 12,0(4) + .long 0x11CC5D33 + .long 0x114C5D31 + mr 20,14 + + ld 12,8(4) + .long 0x11CC5AB3 + .long 0x114C5AB1 + addc 21,21,14 + addze 10,10 + + ld 12,16(4) + .long 0x11CC5AB3 + .long 0x114C5AB1 + addc 22,22,14 + addze 10,10 + + ld 12,24(4) + .long 0x11CC5AB3 + .long 0x114C5AB1 + addc 23,23,14 + addze 10,10 + + ld 12,32(4) + .long 0x11CC5AB3 + .long 0x114C5AB1 + addc 24,24,14 + addze 10,10 + + ld 12,40(4) + .long 0x11CC5AB3 + .long 0x114C5AB1 + addc 25,25,14 + addze 10,10 + + addc 26,26,10 + addze 27,0 +.align 4 +Lenter_300_6: + mulld 11,20,7 + + ld 12,0(6) + .long 0x11CB6533 + .long 0x114B6531 + + ld 12,8(6) + .long 0x11CC5AB3 + .long 0x114C5AB1 + addc 20,21,14 + addze 10,10 + + ld 12,16(6) + .long 0x11CC5AB3 + .long 0x114C5AB1 + addc 21,22,14 + addze 10,10 + + ld 12,24(6) + .long 0x11CC5AB3 + .long 0x114C5AB1 + addc 22,23,14 + addze 10,10 + + ld 12,32(6) + .long 0x11CC5AB3 + .long 0x114C5AB1 + addc 23,24,14 + addze 10,10 + + ld 12,40(6) + .long 0x11CC5AB3 + .long 0x114C5AB1 + addc 24,25,14 + addze 10,10 + + addc 25,26,10 + addze 26,27 + + addi 9,9,8 + bc 16,0,Louter_300_6 + + and. 26,26,26 + bne Lsub_300_6 + + cmpld 25,12 + blt Lcopy_300_6 + +Lsub_300_6: + ld 11,0(6) + subfc 14,11,20 + std 14,0(3) + + ld 11,8(6) + subfe 14,11,21 + std 14,8(3) + + ld 11,16(6) + subfe 14,11,22 + std 14,16(3) + + ld 11,24(6) + subfe 14,11,23 + std 14,24(3) + + ld 11,32(6) + subfe 14,11,24 + std 14,32(3) + + subfe 14,12,25 + std 14,40(3) + + addme. 26,26 + beq Lend_300_6 + +Lcopy_300_6: + std 20,0(3) + std 21,8(3) + std 22,16(3) + std 23,24(3) + std 24,32(3) + std 25,40(3) + +Lend_300_6: + ld 14,-8(1) + ld 20,-16(1) + ld 21,-24(1) + ld 22,-32(1) + ld 23,-40(1) + ld 24,-48(1) + ld 25,-56(1) + ld 26,-64(1) + ld 27,-72(1) + + li 3,1 + blr + +.byte 77,111,110,116,103,111,109,101,114,121,32,77,117,108,116,105,112,108,105,99,97,116,105,111,110,32,102,111,114,32,80,80,67,32,98,121,32,60,97,109,105,116,97,121,64,111,122,108,97,98,115,46,111,114,103,62,44,60,97,108,97,115,116,97,105,114,64,100,45,115,105,108,118,97,46,111,114,103,62,0 +.align 2 diff --git a/deps/openssl/config/archs/aix64-gcc-as/asm_avx2/crypto/buildinf.h b/deps/openssl/config/archs/aix64-gcc-as/asm_avx2/crypto/buildinf.h index 4bf187469f24fe..e052a37e8b38ab 100644 --- a/deps/openssl/config/archs/aix64-gcc-as/asm_avx2/crypto/buildinf.h +++ b/deps/openssl/config/archs/aix64-gcc-as/asm_avx2/crypto/buildinf.h @@ -11,7 +11,7 @@ */ #define PLATFORM "platform: aix64-gcc-as" -#define DATE "built on: Sun Jul 20 00:45:17 2025 UTC" +#define DATE "built on: Sun Jul 27 00:45:10 2025 UTC" /* * Generate compiler_flags as an array of individual characters. This is a diff --git a/deps/openssl/config/archs/aix64-gcc-as/asm_avx2/crypto/params_idx.c b/deps/openssl/config/archs/aix64-gcc-as/asm_avx2/crypto/params_idx.c new file mode 100644 index 00000000000000..9d76ffededc24c --- /dev/null +++ b/deps/openssl/config/archs/aix64-gcc-as/asm_avx2/crypto/params_idx.c @@ -0,0 +1,3366 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from crypto/params_idx.c.in + * + * Copyright 2023 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + +#include "internal/e_os.h" +#include "internal/param_names.h" +#include + +/* Machine generated TRIE -- generated by util/perl/OpenSSL/paramnames.pm */ +int ossl_param_find_pidx(const char *s) +{ + switch(s[0]) { + default: + break; + case 'a': + switch(s[1]) { + default: + break; + case 'c': + if (strcmp("vp-info", s + 2) == 0) + return PIDX_KDF_PARAM_X942_ACVPINFO; + break; + case 'd': + switch(s[2]) { + default: + break; + case 'd': + if (strcmp("itional-random", s + 3) == 0) + return PIDX_SIGNATURE_PARAM_ADD_RANDOM; + break; + case '\0': + return PIDX_KDF_PARAM_ARGON2_AD; + } + break; + case 'e': + if (strcmp("ad", s + 2) == 0) + return PIDX_CIPHER_PARAM_AEAD; + break; + case 'l': + switch(s[2]) { + default: + break; + case 'g': + switch(s[3]) { + default: + break; + case '_': + if (strcmp("id_param", s + 4) == 0) + return PIDX_CIPHER_PARAM_ALGORITHM_ID_PARAMS_OLD; + break; + case 'i': + if (strcmp("d-absent", s + 4) == 0) + return PIDX_DIGEST_PARAM_ALGID_ABSENT; + break; + case 'o': + switch(s[4]) { + default: + break; + case 'r': + switch(s[5]) { + default: + break; + case 'i': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case 'h': + switch(s[8]) { + default: + break; + case 'm': + switch(s[9]) { + default: + break; + case '-': + switch(s[10]) { + default: + break; + case 'i': + switch(s[11]) { + default: + break; + case 'd': + switch(s[12]) { + default: + break; + case '-': + if (strcmp("params", s + 13) == 0) + return PIDX_ALG_PARAM_ALGORITHM_ID_PARAMS; + break; + case '\0': + return PIDX_ALG_PARAM_ALGORITHM_ID; + } + } + } + } + } + } + } + } + } + } + break; + case 'i': + if (strcmp("as", s + 3) == 0) + return PIDX_STORE_PARAM_ALIAS; + } + break; + case '\0': + return PIDX_PKEY_PARAM_EC_A; + } + break; + case 'b': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("sis-type", s + 2) == 0) + return PIDX_PKEY_PARAM_EC_CHAR2_TYPE; + break; + case 'i': + if (strcmp("ts", s + 2) == 0) + return PIDX_PKEY_PARAM_BITS; + break; + case 'l': + switch(s[2]) { + default: + break; + case 'o': + switch(s[3]) { + default: + break; + case 'c': + switch(s[4]) { + default: + break; + case 'k': + switch(s[5]) { + default: + break; + case '-': + if (strcmp("size", s + 6) == 0) + return PIDX_MAC_PARAM_BLOCK_SIZE; + break; + case '_': + if (strcmp("padding", s + 6) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_BLOCK_PADDING; + break; + case 's': + if (strcmp("ize", s + 6) == 0) + return PIDX_DIGEST_PARAM_BLOCK_SIZE; + } + } + } + } + break; + case 'u': + if (strcmp("ildinfo", s + 2) == 0) + return PIDX_PROV_PARAM_BUILDINFO; + break; + case '\0': + return PIDX_PKEY_PARAM_EC_B; + } + break; + case 'c': + switch(s[1]) { + default: + break; + case '-': + if (strcmp("rounds", s + 2) == 0) + return PIDX_MAC_PARAM_C_ROUNDS; + break; + case 'e': + if (strcmp("kalg", s + 2) == 0) + return PIDX_KDF_PARAM_CEK_ALG; + break; + case 'i': + if (strcmp("pher", s + 2) == 0) + return PIDX_ALG_PARAM_CIPHER; + break; + case 'o': + switch(s[2]) { + default: + break; + case 'f': + if (strcmp("actor", s + 3) == 0) + return PIDX_PKEY_PARAM_EC_COFACTOR; + break; + case 'n': + switch(s[3]) { + default: + break; + case 's': + if (strcmp("tant", s + 4) == 0) + return PIDX_KDF_PARAM_CONSTANT; + break; + case 't': + if (strcmp("ext-string", s + 4) == 0) + return PIDX_SIGNATURE_PARAM_CONTEXT_STRING; + } + } + break; + case 't': + switch(s[2]) { + default: + break; + case 's': + switch(s[3]) { + default: + break; + case '_': + if (strcmp("mode", s + 4) == 0) + return PIDX_CIPHER_PARAM_CTS_MODE; + break; + case '\0': + return PIDX_CIPHER_PARAM_CTS; + } + } + break; + case 'u': + switch(s[2]) { + default: + break; + case 's': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case 'o': + switch(s[5]) { + default: + break; + case 'm': + switch(s[6]) { + default: + break; + case '-': + if (strcmp("iv", s + 7) == 0) + return PIDX_CIPHER_PARAM_CUSTOM_IV; + break; + case '\0': + return PIDX_MAC_PARAM_CUSTOM; + } + } + } + } + } + } + break; + case 'd': + switch(s[1]) { + default: + break; + case '-': + if (strcmp("rounds", s + 2) == 0) + return PIDX_MAC_PARAM_D_ROUNDS; + break; + case 'a': + switch(s[2]) { + default: + break; + case 't': + switch(s[3]) { + default: + break; + case 'a': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 's': + if (strcmp("tructure", s + 6) == 0) + return PIDX_OBJECT_PARAM_DATA_STRUCTURE; + break; + case 't': + if (strcmp("ype", s + 6) == 0) + return PIDX_OBJECT_PARAM_DATA_TYPE; + } + break; + case '\0': + return PIDX_OBJECT_PARAM_DATA; + } + } + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'c': + switch(s[3]) { + default: + break; + case 'o': + if (strcmp("ded-from-explicit", s + 4) == 0) + return PIDX_PKEY_PARAM_EC_DECODED_FROM_EXPLICIT_PARAMS; + break; + case 'r': + if (strcmp("ypt-only", s + 4) == 0) + return PIDX_CIPHER_PARAM_DECRYPT_ONLY; + } + break; + case 'f': + if (strcmp("ault-digest", s + 3) == 0) + return PIDX_PKEY_PARAM_DEFAULT_DIGEST; + break; + case 's': + if (strcmp("c", s + 3) == 0) + return PIDX_OBJECT_PARAM_DESC; + break; + case 't': + if (strcmp("erministic", s + 3) == 0) + return PIDX_SIGNATURE_PARAM_DETERMINISTIC; + } + break; + case 'h': + if (strcmp("kem-ikm", s + 2) == 0) + return PIDX_PKEY_PARAM_DHKEM_IKM; + break; + case 'i': + switch(s[2]) { + default: + break; + case 'g': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case 's': + switch(s[5]) { + default: + break; + case 't': + switch(s[6]) { + default: + break; + case '-': + switch(s[7]) { + default: + break; + case 'c': + if (strcmp("heck", s + 8) == 0) + return PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK; + break; + case 'n': + if (strcmp("oinit", s + 8) == 0) + return PIDX_MAC_PARAM_DIGEST_NOINIT; + break; + case 'o': + if (strcmp("neshot", s + 8) == 0) + return PIDX_MAC_PARAM_DIGEST_ONESHOT; + break; + case 'p': + if (strcmp("rops", s + 8) == 0) + return PIDX_ASYM_CIPHER_PARAM_OAEP_DIGEST_PROPS; + break; + case 's': + if (strcmp("ize", s + 8) == 0) + return PIDX_PKEY_PARAM_DIGEST_SIZE; + } + break; + case '\0': + return PIDX_STORE_PARAM_DIGEST; + } + } + } + } + break; + case 's': + if (strcmp("tid", s + 3) == 0) + return PIDX_PKEY_PARAM_DIST_ID; + } + break; + case 'r': + if (strcmp("bg-no-trunc-md", s + 2) == 0) + return PIDX_PROV_PARAM_DRBG_TRUNC_DIGEST; + break; + case 's': + if (strcmp("a-sign-disabled", s + 2) == 0) + return PIDX_PROV_PARAM_DSA_SIGN_DISABLED; + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_D; + } + break; + case 'e': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("rly_clean", s + 2) == 0) + return PIDX_KDF_PARAM_EARLY_CLEAN; + break; + case 'c': + switch(s[2]) { + default: + break; + case 'd': + switch(s[3]) { + default: + break; + case 'h': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'c': + switch(s[6]) { + default: + break; + case 'o': + switch(s[7]) { + default: + break; + case 'f': + switch(s[8]) { + default: + break; + case 'a': + switch(s[9]) { + default: + break; + case 'c': + switch(s[10]) { + default: + break; + case 't': + switch(s[11]) { + default: + break; + case 'o': + switch(s[12]) { + default: + break; + case 'r': + switch(s[13]) { + default: + break; + case '-': + switch(s[14]) { + default: + break; + case 'c': + if (strcmp("heck", s + 15) == 0) + return PIDX_PROV_PARAM_ECDH_COFACTOR_CHECK; + break; + case 'm': + if (strcmp("ode", s + 15) == 0) + return PIDX_EXCHANGE_PARAM_EC_ECDH_COFACTOR_MODE; + } + } + } + } + } + } + } + } + } + } + } + } + } + break; + case 'm': + if (strcmp("s_check", s + 2) == 0) + return PIDX_KDF_PARAM_FIPS_EMS_CHECK; + break; + case 'n': + switch(s[2]) { + default: + break; + case 'c': + switch(s[3]) { + default: + break; + case 'o': + switch(s[4]) { + default: + break; + case 'd': + switch(s[5]) { + default: + break; + case 'e': + if (strcmp("d-pub-key", s + 6) == 0) + return PIDX_PKEY_PARAM_ENCODED_PUBLIC_KEY; + break; + case 'i': + if (strcmp("ng", s + 6) == 0) + return PIDX_PKEY_PARAM_EC_ENCODING; + } + } + break; + case 'r': + switch(s[4]) { + default: + break; + case 'y': + switch(s[5]) { + default: + break; + case 'p': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case '-': + switch(s[8]) { + default: + break; + case 'c': + if (strcmp("heck", s + 9) == 0) + return PIDX_CIPHER_PARAM_FIPS_ENCRYPT_CHECK; + break; + case 'l': + if (strcmp("evel", s + 9) == 0) + return PIDX_ENCODER_PARAM_ENCRYPT_LEVEL; + } + } + } + } + } + } + break; + case 'g': + if (strcmp("ine", s + 3) == 0) + return PIDX_ALG_PARAM_ENGINE; + break; + case 't': + switch(s[3]) { + default: + break; + case 'r': + switch(s[4]) { + default: + break; + case 'o': + switch(s[5]) { + default: + break; + case 'p': + switch(s[6]) { + default: + break; + case 'y': + switch(s[7]) { + default: + break; + case '_': + if (strcmp("required", s + 8) == 0) + return PIDX_DRBG_PARAM_ENTROPY_REQUIRED; + break; + case '\0': + return PIDX_KDF_PARAM_HMACDRBG_ENTROPY; + } + } + } + } + } + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_E; + break; + case 'x': + if (strcmp("pect", s + 2) == 0) + return PIDX_STORE_PARAM_EXPECT; + } + break; + case 'f': + switch(s[1]) { + default: + break; + case 'i': + switch(s[2]) { + default: + break; + case 'e': + if (strcmp("ld-type", s + 3) == 0) + return PIDX_PKEY_PARAM_EC_FIELD_TYPE; + break; + case 'n': + if (strcmp("gerprint", s + 3) == 0) + return PIDX_STORE_PARAM_FINGERPRINT; + break; + case 'p': + if (strcmp("s-indicator", s + 3) == 0) + return PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR; + } + } + break; + case 'g': + switch(s[1]) { + default: + break; + case 'e': + switch(s[2]) { + default: + break; + case 'n': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case 'r': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case 'e': + switch(s[8]) { + default: + break; + case '\0': + return PIDX_RAND_PARAM_GENERATE; + } + break; + case 'o': + if (strcmp("r", s + 8) == 0) + return PIDX_PKEY_PARAM_EC_GENERATOR; + } + } + } + } + } + } + break; + case 'i': + if (strcmp("ndex", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_GINDEX; + break; + case 'r': + switch(s[2]) { + default: + break; + case 'o': + switch(s[3]) { + default: + break; + case 'u': + switch(s[4]) { + default: + break; + case 'p': + switch(s[5]) { + default: + break; + case '-': + if (strcmp("check", s + 6) == 0) + return PIDX_PKEY_PARAM_EC_GROUP_CHECK_TYPE; + break; + case '\0': + return PIDX_PKEY_PARAM_GROUP_NAME; + } + } + } + } + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_G; + } + break; + case 'h': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("s-randkey", s + 2) == 0) + return PIDX_CIPHER_PARAM_HAS_RAND_KEY; + break; + case 'i': + if (strcmp("ndex", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_H; + break; + case 'k': + switch(s[2]) { + default: + break; + case 'd': + switch(s[3]) { + default: + break; + case 'f': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 6) == 0) + return PIDX_PROV_PARAM_HKDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 6) == 0) + return PIDX_PROV_PARAM_HKDF_KEY_CHECK; + } + } + } + } + break; + case 'm': + if (strcmp("ac-key-check", s + 2) == 0) + return PIDX_PROV_PARAM_HMAC_KEY_CHECK; + break; + case 's': + if (strcmp("_padding", s + 2) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_HS_PADDING; + } + break; + case 'i': + switch(s[1]) { + default: + break; + case 'd': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_KDF_PARAM_PKCS12_ID; + } + break; + case 'k': + if (strcmp("me", s + 2) == 0) + return PIDX_KEM_PARAM_IKME; + break; + case 'm': + if (strcmp("plicit-rejection", s + 2) == 0) + return PIDX_PKEY_PARAM_IMPLICIT_REJECTION; + break; + case 'n': + switch(s[2]) { + default: + break; + case 'c': + if (strcmp("lude-public", s + 3) == 0) + return PIDX_PKEY_PARAM_EC_INCLUDE_PUBLIC; + break; + case 'f': + if (strcmp("o", s + 3) == 0) + return PIDX_PASSPHRASE_PARAM_INFO; + break; + case 'p': + if (strcmp("ut-type", s + 3) == 0) + return PIDX_STORE_PARAM_INPUT_TYPE; + break; + case 's': + if (strcmp("tance", s + 3) == 0) + return PIDX_SIGNATURE_PARAM_INSTANCE; + } + break; + case 't': + switch(s[2]) { + default: + break; + case 'e': + switch(s[3]) { + default: + break; + case 'r': + switch(s[4]) { + default: + break; + case 'a': + if (strcmp("tion", s + 5) == 0) + return PIDX_GEN_PARAM_ITERATION; + break; + case '\0': + return PIDX_KDF_PARAM_ITER; + } + } + } + break; + case 'v': + switch(s[2]) { + default: + break; + case '-': + if (strcmp("generated", s + 3) == 0) + return PIDX_CIPHER_PARAM_AEAD_IV_GENERATED; + break; + case 'l': + if (strcmp("en", s + 3) == 0) + return PIDX_CIPHER_PARAM_IVLEN; + break; + case '\0': + return PIDX_MAC_PARAM_IV; + } + } + break; + case 'j': + switch(s[1]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_COFACTOR; + } + break; + case 'k': + switch(s[1]) { + default: + break; + case '1': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_PP_K1; + } + break; + case '2': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_PP_K2; + } + break; + case '3': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_PP_K3; + } + break; + case 'a': + if (strcmp("t", s + 2) == 0) + return PIDX_SIGNATURE_PARAM_KAT; + break; + case 'b': + if (strcmp("kdf-key-check", s + 2) == 0) + return PIDX_PROV_PARAM_KBKDF_KEY_CHECK; + break; + case 'd': + switch(s[2]) { + default: + break; + case 'f': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'd': + switch(s[5]) { + default: + break; + case 'i': + switch(s[6]) { + default: + break; + case 'g': + switch(s[7]) { + default: + break; + case 'e': + switch(s[8]) { + default: + break; + case 's': + switch(s[9]) { + default: + break; + case 't': + switch(s[10]) { + default: + break; + case '-': + if (strcmp("props", s + 11) == 0) + return PIDX_EXCHANGE_PARAM_KDF_DIGEST_PROPS; + break; + case '\0': + return PIDX_EXCHANGE_PARAM_KDF_DIGEST; + } + } + } + } + } + } + break; + case 'o': + if (strcmp("utlen", s + 5) == 0) + return PIDX_EXCHANGE_PARAM_KDF_OUTLEN; + break; + case 't': + if (strcmp("ype", s + 5) == 0) + return PIDX_EXCHANGE_PARAM_KDF_TYPE; + break; + case 'u': + if (strcmp("km", s + 5) == 0) + return PIDX_EXCHANGE_PARAM_KDF_UKM; + } + } + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'y': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'c': + if (strcmp("heck", s + 5) == 0) + return PIDX_PKEY_PARAM_FIPS_KEY_CHECK; + break; + case 'l': + if (strcmp("ength", s + 5) == 0) + return PIDX_SKEY_PARAM_KEY_LENGTH; + } + break; + case 'b': + if (strcmp("its", s + 4) == 0) + return PIDX_CIPHER_PARAM_RC2_KEYBITS; + break; + case 'l': + if (strcmp("en", s + 4) == 0) + return PIDX_CIPHER_PARAM_KEYLEN; + break; + case '\0': + return PIDX_MAC_PARAM_KEY; + } + } + break; + case 'm': + if (strcmp("ac-key-check", s + 2) == 0) + return PIDX_PROV_PARAM_KMAC_KEY_CHECK; + } + break; + case 'l': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'b': + if (strcmp("el", s + 3) == 0) + return PIDX_KDF_PARAM_LABEL; + break; + case 'n': + if (strcmp("es", s + 3) == 0) + return PIDX_KDF_PARAM_ARGON2_LANES; + } + } + break; + case 'm': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'c': + switch(s[3]) { + default: + break; + case 'k': + if (strcmp("ey", s + 4) == 0) + return PIDX_CIPHER_PARAM_AEAD_MAC_KEY; + break; + case 'l': + if (strcmp("en", s + 4) == 0) + return PIDX_KDF_PARAM_MAC_SIZE; + break; + case '\0': + return PIDX_ALG_PARAM_MAC; + } + break; + case 'n': + if (strcmp("datory-digest", s + 3) == 0) + return PIDX_PKEY_PARAM_MANDATORY_DIGEST; + break; + case 'x': + switch(s[3]) { + default: + break; + case '-': + if (strcmp("size", s + 4) == 0) + return PIDX_PKEY_PARAM_MAX_SIZE; + break; + case '_': + switch(s[4]) { + default: + break; + case 'a': + if (strcmp("dinlen", s + 5) == 0) + return PIDX_DRBG_PARAM_MAX_ADINLEN; + break; + case 'e': + switch(s[5]) { + default: + break; + case 'a': + if (strcmp("rly_data", s + 6) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_MAX_EARLY_DATA; + break; + case 'n': + if (strcmp("tropylen", s + 6) == 0) + return PIDX_DRBG_PARAM_MAX_ENTROPYLEN; + } + break; + case 'f': + if (strcmp("rag_len", s + 5) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_MAX_FRAG_LEN; + break; + case 'n': + if (strcmp("oncelen", s + 5) == 0) + return PIDX_DRBG_PARAM_MAX_NONCELEN; + break; + case 'p': + if (strcmp("erslen", s + 5) == 0) + return PIDX_DRBG_PARAM_MAX_PERSLEN; + break; + case 'r': + if (strcmp("equest", s + 5) == 0) + return PIDX_RAND_PARAM_MAX_REQUEST; + } + break; + case 'i': + if (strcmp("um_length", s + 4) == 0) + return PIDX_DRBG_PARAM_MAX_LENGTH; + break; + case 'm': + if (strcmp("em_bytes", s + 4) == 0) + return PIDX_KDF_PARAM_SCRYPT_MAXMEM; + } + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'm': + if (strcmp("cost", s + 3) == 0) + return PIDX_KDF_PARAM_ARGON2_MEMCOST; + break; + case 's': + if (strcmp("sage-encoding", s + 3) == 0) + return PIDX_SIGNATURE_PARAM_MESSAGE_ENCODING; + } + break; + case 'g': + switch(s[2]) { + default: + break; + case 'f': + switch(s[3]) { + default: + break; + case '1': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'd': + if (strcmp("igest", s + 6) == 0) + return PIDX_PKEY_PARAM_MGF1_DIGEST; + break; + case 'p': + if (strcmp("roperties", s + 6) == 0) + return PIDX_PKEY_PARAM_MGF1_PROPERTIES; + } + } + break; + case '\0': + return PIDX_PKEY_PARAM_MASKGENFUNC; + } + } + break; + case 'i': + switch(s[2]) { + default: + break; + case 'c': + if (strcmp("alg", s + 3) == 0) + return PIDX_DIGEST_PARAM_MICALG; + break; + case 'n': + switch(s[3]) { + default: + break; + case '_': + switch(s[4]) { + default: + break; + case 'e': + if (strcmp("ntropylen", s + 5) == 0) + return PIDX_DRBG_PARAM_MIN_ENTROPYLEN; + break; + case 'n': + if (strcmp("oncelen", s + 5) == 0) + return PIDX_DRBG_PARAM_MIN_NONCELEN; + } + break; + case 'i': + if (strcmp("um_length", s + 4) == 0) + return PIDX_DRBG_PARAM_MIN_LENGTH; + } + } + break; + case 'l': + switch(s[2]) { + default: + break; + case '-': + switch(s[3]) { + default: + break; + case 'd': + switch(s[4]) { + default: + break; + case 's': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case '.': + switch(s[7]) { + default: + break; + case 'i': + if (strcmp("nput_formats", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_DSA_INPUT_FORMATS; + break; + case 'o': + if (strcmp("utput_formats", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_DSA_OUTPUT_FORMATS; + break; + case 'p': + if (strcmp("refer_seed", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_DSA_PREFER_SEED; + break; + case 'r': + if (strcmp("etain_seed", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_DSA_RETAIN_SEED; + } + } + } + } + break; + case 'k': + switch(s[4]) { + default: + break; + case 'e': + switch(s[5]) { + default: + break; + case 'm': + switch(s[6]) { + default: + break; + case '.': + switch(s[7]) { + default: + break; + case 'i': + switch(s[8]) { + default: + break; + case 'm': + if (strcmp("port_pct_type", s + 9) == 0) + return PIDX_PKEY_PARAM_ML_KEM_IMPORT_PCT_TYPE; + break; + case 'n': + if (strcmp("put_formats", s + 9) == 0) + return PIDX_PKEY_PARAM_ML_KEM_INPUT_FORMATS; + } + break; + case 'o': + if (strcmp("utput_formats", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_KEM_OUTPUT_FORMATS; + break; + case 'p': + if (strcmp("refer_seed", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_KEM_PREFER_SEED; + break; + case 'r': + if (strcmp("etain_seed", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_KEM_RETAIN_SEED; + } + } + } + } + } + } + break; + case 'o': + switch(s[2]) { + default: + break; + case 'd': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case '\0': + return PIDX_LIBSSL_RECORD_LAYER_PARAM_MODE; + } + break; + case 'u': + if (strcmp("le-filename", s + 4) == 0) + return PIDX_PROV_PARAM_CORE_MODULE_FILENAME; + } + } + break; + case 'u': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_SIGNATURE_PARAM_MU; + } + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_M; + } + break; + case 'n': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("me", s + 2) == 0) + return PIDX_STORE_PARAM_ISSUER; + break; + case 'o': + switch(s[2]) { + default: + break; + case '-': + if (strcmp("short-mac", s + 3) == 0) + return PIDX_PROV_PARAM_NO_SHORT_MAC; + break; + case 'n': + switch(s[3]) { + default: + break; + case 'c': + switch(s[4]) { + default: + break; + case 'e': + switch(s[5]) { + default: + break; + case '-': + if (strcmp("type", s + 6) == 0) + return PIDX_SIGNATURE_PARAM_NONCE_TYPE; + break; + case '\0': + return PIDX_KDF_PARAM_HMACDRBG_NONCE; + } + } + } + } + break; + case 'u': + if (strcmp("m", s + 2) == 0) + return PIDX_CIPHER_PARAM_NUM; + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_N; + } + break; + case 'o': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("ep-label", s + 2) == 0) + return PIDX_ASYM_CIPHER_PARAM_OAEP_LABEL; + break; + case 'p': + switch(s[2]) { + default: + break; + case 'e': + switch(s[3]) { + default: + break; + case 'n': + if (strcmp("ssl-version", s + 4) == 0) + return PIDX_PROV_PARAM_CORE_VERSION; + break; + case 'r': + if (strcmp("ation", s + 4) == 0) + return PIDX_KEM_PARAM_OPERATION; + } + break; + case 't': + if (strcmp("ions", s + 3) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_OPTIONS; + } + break; + case 'r': + if (strcmp("der", s + 2) == 0) + return PIDX_PKEY_PARAM_EC_ORDER; + } + break; + case 'p': + switch(s[1]) { + default: + break; + case '1': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_P1; + } + break; + case '2': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_P2; + } + break; + case 'a': + switch(s[2]) { + default: + break; + case 'd': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'm': + if (strcmp("ode", s + 5) == 0) + return PIDX_PKEY_PARAM_PAD_MODE; + break; + case 't': + if (strcmp("ype", s + 5) == 0) + return PIDX_DIGEST_PARAM_PAD_TYPE; + } + break; + case 'd': + if (strcmp("ing", s + 4) == 0) + return PIDX_CIPHER_PARAM_PADDING; + break; + case '\0': + return PIDX_EXCHANGE_PARAM_PAD; + } + break; + case 'r': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case 'y': + switch(s[5]) { + default: + break; + case 'u': + if (strcmp("-info", s + 6) == 0) + return PIDX_KDF_PARAM_X942_PARTYUINFO; + break; + case 'v': + if (strcmp("-info", s + 6) == 0) + return PIDX_KDF_PARAM_X942_PARTYVINFO; + } + } + } + break; + case 's': + if (strcmp("s", s + 3) == 0) + return PIDX_KDF_PARAM_PASSWORD; + } + break; + case 'b': + switch(s[2]) { + default: + break; + case 'i': + if (strcmp("ts", s + 3) == 0) + return PIDX_PKEY_PARAM_FFC_PBITS; + break; + case 'k': + if (strcmp("df2-lower-bound-check", s + 3) == 0) + return PIDX_PROV_PARAM_PBKDF2_LOWER_BOUND_CHECK; + } + break; + case 'c': + if (strcmp("ounter", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_PCOUNTER; + break; + case 'i': + if (strcmp("peline-tag", s + 2) == 0) + return PIDX_CIPHER_PARAM_PIPELINE_AEAD_TAG; + break; + case 'k': + if (strcmp("cs5", s + 2) == 0) + return PIDX_KDF_PARAM_PKCS5; + break; + case 'o': + switch(s[2]) { + default: + break; + case 'i': + if (strcmp("nt-format", s + 3) == 0) + return PIDX_PKEY_PARAM_EC_POINT_CONVERSION_FORMAT; + break; + case 't': + if (strcmp("ential", s + 3) == 0) + return PIDX_GEN_PARAM_POTENTIAL; + } + break; + case 'r': + switch(s[2]) { + default: + break; + case 'e': + switch(s[3]) { + default: + break; + case 'd': + if (strcmp("iction_resistance", s + 4) == 0) + return PIDX_DRBG_PARAM_PREDICTION_RESISTANCE; + break; + case 'f': + if (strcmp("ix", s + 4) == 0) + return PIDX_KDF_PARAM_PREFIX; + } + break; + case 'i': + switch(s[3]) { + default: + break; + case 'm': + if (strcmp("es", s + 4) == 0) + return PIDX_PKEY_PARAM_RSA_PRIMES; + break; + case 'v': + switch(s[4]) { + default: + break; + case '_': + if (strcmp("len", s + 5) == 0) + return PIDX_PKEY_PARAM_DH_PRIV_LEN; + break; + case '\0': + return PIDX_PKEY_PARAM_PRIV_KEY; + } + } + break; + case 'o': + switch(s[3]) { + default: + break; + case 'p': + if (strcmp("erties", s + 4) == 0) + return PIDX_STORE_PARAM_PROPERTIES; + break; + case 'v': + if (strcmp("ider-name", s + 4) == 0) + return PIDX_PROV_PARAM_CORE_PROV_NAME; + } + } + break; + case 'u': + if (strcmp("b", s + 2) == 0) + return PIDX_PKEY_PARAM_PUB_KEY; + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_P; + } + break; + case 'q': + switch(s[1]) { + default: + break; + case '1': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_Q1; + } + break; + case '2': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_Q2; + } + break; + case 'b': + if (strcmp("its", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_QBITS; + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_Q; + break; + case 'x': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_PUB_X; + } + break; + case 'y': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_PUB_Y; + } + } + break; + case 'r': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'n': + switch(s[3]) { + default: + break; + case 'd': + switch(s[4]) { + default: + break; + case 'k': + if (strcmp("ey", s + 5) == 0) + return PIDX_CIPHER_PARAM_RANDOM_KEY; + break; + case 'o': + if (strcmp("m_data", s + 5) == 0) + return PIDX_DRBG_PARAM_RANDOM_DATA; + } + } + break; + case 'w': + if (strcmp("-bytes", s + 3) == 0) + return PIDX_SKEY_PARAM_RAW_BYTES; + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'a': + switch(s[3]) { + default: + break; + case 'd': + switch(s[4]) { + default: + break; + case '_': + switch(s[5]) { + default: + break; + case 'a': + if (strcmp("head", s + 6) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_READ_AHEAD; + break; + case 'b': + if (strcmp("uffer_len", s + 6) == 0) + return PIDX_LIBSSL_RECORD_LAYER_READ_BUFFER_LEN; + } + } + } + break; + case 'f': + if (strcmp("erence", s + 3) == 0) + return PIDX_OBJECT_PARAM_REFERENCE; + break; + case 's': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case 'e': + switch(s[5]) { + default: + break; + case 'd': + switch(s[6]) { + default: + break; + case '_': + switch(s[7]) { + default: + break; + case 'c': + if (strcmp("ounter", s + 8) == 0) + return PIDX_DRBG_PARAM_RESEED_COUNTER; + break; + case 'r': + if (strcmp("equests", s + 8) == 0) + return PIDX_DRBG_PARAM_RESEED_REQUESTS; + break; + case 't': + switch(s[8]) { + default: + break; + case 'i': + switch(s[9]) { + default: + break; + case 'm': + switch(s[10]) { + default: + break; + case 'e': + switch(s[11]) { + default: + break; + case '_': + if (strcmp("interval", s + 12) == 0) + return PIDX_DRBG_PARAM_RESEED_TIME_INTERVAL; + break; + case '\0': + return PIDX_DRBG_PARAM_RESEED_TIME; + } + } + } + } + } + } + } + } + } + } + break; + case 'o': + if (strcmp("unds", s + 2) == 0) + return PIDX_CIPHER_PARAM_ROUNDS; + break; + case 's': + switch(s[2]) { + default: + break; + case 'a': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'c': + switch(s[5]) { + default: + break; + case 'o': + switch(s[6]) { + default: + break; + case 'e': + switch(s[7]) { + default: + break; + case 'f': + switch(s[8]) { + default: + break; + case 'f': + switch(s[9]) { + default: + break; + case 'i': + switch(s[10]) { + default: + break; + case 'c': + switch(s[11]) { + default: + break; + case 'i': + switch(s[12]) { + default: + break; + case 'e': + switch(s[13]) { + default: + break; + case 'n': + switch(s[14]) { + default: + break; + case 't': + switch(s[15]) { + default: + break; + case '1': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT1; + } + break; + case '2': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT2; + } + break; + case '3': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT3; + } + break; + case '4': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT4; + } + break; + case '5': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT5; + } + break; + case '6': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT6; + } + break; + case '7': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT7; + } + break; + case '8': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT8; + } + break; + case '9': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT9; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT; + } + } + } + } + } + } + } + } + } + } + } + break; + case 'd': + if (strcmp("erive-from-pq", s + 5) == 0) + return PIDX_PKEY_PARAM_RSA_DERIVE_FROM_PQ; + break; + case 'e': + switch(s[5]) { + default: + break; + case 'x': + switch(s[6]) { + default: + break; + case 'p': + switch(s[7]) { + default: + break; + case 'o': + switch(s[8]) { + default: + break; + case 'n': + switch(s[9]) { + default: + break; + case 'e': + switch(s[10]) { + default: + break; + case 'n': + switch(s[11]) { + default: + break; + case 't': + switch(s[12]) { + default: + break; + case '1': + switch(s[13]) { + default: + break; + case '0': + switch(s[14]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT10; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT1; + } + break; + case '2': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT2; + } + break; + case '3': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT3; + } + break; + case '4': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT4; + } + break; + case '5': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT5; + } + break; + case '6': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT6; + } + break; + case '7': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT7; + } + break; + case '8': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT8; + } + break; + case '9': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT9; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT; + } + } + } + } + } + } + } + } + break; + case 'f': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case 'c': + switch(s[7]) { + default: + break; + case 't': + switch(s[8]) { + default: + break; + case 'o': + switch(s[9]) { + default: + break; + case 'r': + switch(s[10]) { + default: + break; + case '1': + switch(s[11]) { + default: + break; + case '0': + switch(s[12]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR10; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR1; + } + break; + case '2': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR2; + } + break; + case '3': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR3; + } + break; + case '4': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR4; + } + break; + case '5': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR5; + } + break; + case '6': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR6; + } + break; + case '7': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR7; + } + break; + case '8': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR8; + } + break; + case '9': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR9; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR; + } + } + } + } + } + } + break; + case 'p': + switch(s[5]) { + default: + break; + case 'k': + if (strcmp("cs15-pad-disabled", s + 6) == 0) + return PIDX_PROV_PARAM_RSA_PKCS15_PAD_DISABLED; + break; + case 's': + if (strcmp("s-saltlen-check", s + 6) == 0) + return PIDX_SIGNATURE_PARAM_FIPS_RSA_PSS_SALTLEN_CHECK; + } + break; + case 's': + if (strcmp("ign-x931-pad-disabled", s + 5) == 0) + return PIDX_PROV_PARAM_RSA_SIGN_X931_PAD_DISABLED; + } + } + } + break; + case '\0': + return PIDX_KDF_PARAM_SCRYPT_R; + } + break; + case 's': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'f': + if (strcmp("eprime-generator", s + 3) == 0) + return PIDX_PKEY_PARAM_DH_GENERATOR; + break; + case 'l': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case 'l': + if (strcmp("en", s + 5) == 0) + return PIDX_SIGNATURE_PARAM_PSS_SALTLEN; + break; + case '\0': + return PIDX_MAC_PARAM_SALT; + } + } + break; + case 'v': + if (strcmp("e-parameters", s + 3) == 0) + return PIDX_ENCODER_PARAM_SAVE_PARAMETERS; + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'c': + switch(s[3]) { + default: + break; + case 'r': + if (strcmp("et", s + 4) == 0) + return PIDX_KDF_PARAM_SECRET; + break; + case 'u': + switch(s[4]) { + default: + break; + case 'r': + switch(s[5]) { + default: + break; + case 'i': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case 'y': + switch(s[8]) { + default: + break; + case '-': + switch(s[9]) { + default: + break; + case 'b': + if (strcmp("its", s + 10) == 0) + return PIDX_PKEY_PARAM_SECURITY_BITS; + break; + case 'c': + if (strcmp("hecks", s + 10) == 0) + return PIDX_PROV_PARAM_SECURITY_CHECKS; + } + } + } + } + } + } + } + break; + case 'e': + if (strcmp("d", s + 3) == 0) + return PIDX_PKEY_PARAM_SLH_DSA_SEED; + break; + case 'r': + if (strcmp("ial", s + 3) == 0) + return PIDX_STORE_PARAM_SERIAL; + break; + case 's': + if (strcmp("sion_id", s + 3) == 0) + return PIDX_KDF_PARAM_SSHKDF_SESSION_ID; + } + break; + case 'i': + switch(s[2]) { + default: + break; + case 'g': + switch(s[3]) { + default: + break; + case 'n': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'c': + if (strcmp("heck", s + 6) == 0) + return PIDX_PKEY_PARAM_FIPS_SIGN_CHECK; + break; + case 'x': + if (strcmp("931-pad-check", s + 6) == 0) + return PIDX_SIGNATURE_PARAM_FIPS_SIGN_X931_PAD_CHECK; + } + break; + case 'a': + switch(s[5]) { + default: + break; + case 't': + switch(s[6]) { + default: + break; + case 'u': + switch(s[7]) { + default: + break; + case 'r': + switch(s[8]) { + default: + break; + case 'e': + switch(s[9]) { + default: + break; + case '-': + if (strcmp("digest-check", s + 10) == 0) + return PIDX_PROV_PARAM_SIGNATURE_DIGEST_CHECK; + break; + case '\0': + return PIDX_SIGNATURE_PARAM_SIGNATURE; + } + } + } + } + } + } + } + break; + case 'z': + if (strcmp("e", s + 3) == 0) + return PIDX_MAC_PARAM_SIZE; + } + break; + case 'p': + if (strcmp("eed", s + 2) == 0) + return PIDX_CIPHER_PARAM_SPEED; + break; + case 's': + switch(s[2]) { + default: + break; + case 'h': + switch(s[3]) { + default: + break; + case 'k': + switch(s[4]) { + default: + break; + case 'd': + switch(s[5]) { + default: + break; + case 'f': + switch(s[6]) { + default: + break; + case '-': + switch(s[7]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 8) == 0) + return PIDX_PROV_PARAM_SSHKDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 8) == 0) + return PIDX_PROV_PARAM_SSHKDF_KEY_CHECK; + } + } + } + } + } + break; + case 'k': + switch(s[3]) { + default: + break; + case 'd': + switch(s[4]) { + default: + break; + case 'f': + switch(s[5]) { + default: + break; + case '-': + switch(s[6]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 7) == 0) + return PIDX_PROV_PARAM_SSKDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 7) == 0) + return PIDX_PROV_PARAM_SSKDF_KEY_CHECK; + } + } + } + } + break; + case 'l': + if (strcmp("3-ms", s + 3) == 0) + return PIDX_DIGEST_PARAM_SSL3_MS; + } + break; + case 't': + switch(s[2]) { + default: + break; + case '-': + switch(s[3]) { + default: + break; + case 'd': + if (strcmp("esc", s + 4) == 0) + return PIDX_PROV_PARAM_SELF_TEST_DESC; + break; + case 'p': + if (strcmp("hase", s + 4) == 0) + return PIDX_PROV_PARAM_SELF_TEST_PHASE; + break; + case 't': + if (strcmp("ype", s + 4) == 0) + return PIDX_PROV_PARAM_SELF_TEST_TYPE; + } + break; + case 'a': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case 'e': + switch(s[5]) { + default: + break; + case '\0': + return PIDX_RAND_PARAM_STATE; + } + break; + case 'u': + if (strcmp("s", s + 5) == 0) + return PIDX_PROV_PARAM_STATUS; + } + } + break; + case 'r': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case 'a': + if (strcmp("m_mac", s + 5) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_STREAM_MAC; + break; + case 'n': + if (strcmp("gth", s + 5) == 0) + return PIDX_RAND_PARAM_STRENGTH; + } + } + } + break; + case 'u': + switch(s[2]) { + default: + break; + case 'b': + if (strcmp("ject", s + 3) == 0) + return PIDX_STORE_PARAM_SUBJECT; + break; + case 'p': + switch(s[3]) { + default: + break; + case 'p': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'p': + switch(s[6]) { + default: + break; + case 'r': + if (strcmp("ivinfo", s + 7) == 0) + return PIDX_KDF_PARAM_X942_SUPP_PRIVINFO; + break; + case 'u': + if (strcmp("binfo", s + 7) == 0) + return PIDX_KDF_PARAM_X942_SUPP_PUBINFO; + } + } + } + } + } + } + break; + case 't': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'g': + switch(s[3]) { + default: + break; + case 'l': + if (strcmp("en", s + 4) == 0) + return PIDX_CIPHER_PARAM_AEAD_TAGLEN; + break; + case '\0': + return PIDX_CIPHER_PARAM_AEAD_TAG; + } + } + break; + case 'd': + if (strcmp("es-encrypt-disabled", s + 2) == 0) + return PIDX_PROV_PARAM_TDES_ENCRYPT_DISABLED; + break; + case 'e': + switch(s[2]) { + default: + break; + case 's': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case '-': + if (strcmp("entropy", s + 5) == 0) + return PIDX_SIGNATURE_PARAM_TEST_ENTROPY; + break; + case '_': + switch(s[5]) { + default: + break; + case 'e': + if (strcmp("ntropy", s + 6) == 0) + return PIDX_RAND_PARAM_TEST_ENTROPY; + break; + case 'n': + if (strcmp("once", s + 6) == 0) + return PIDX_RAND_PARAM_TEST_NONCE; + } + } + } + } + break; + case 'h': + if (strcmp("reads", s + 2) == 0) + return PIDX_KDF_PARAM_THREADS; + break; + case 'l': + switch(s[2]) { + default: + break; + case 's': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'c': + if (strcmp("lient-version", s + 5) == 0) + return PIDX_ASYM_CIPHER_PARAM_TLS_CLIENT_VERSION; + break; + case 'd': + if (strcmp("ata-size", s + 5) == 0) + return PIDX_MAC_PARAM_TLS_DATA_SIZE; + break; + case 'g': + switch(s[5]) { + default: + break; + case 'r': + switch(s[6]) { + default: + break; + case 'o': + switch(s[7]) { + default: + break; + case 'u': + switch(s[8]) { + default: + break; + case 'p': + switch(s[9]) { + default: + break; + case '-': + switch(s[10]) { + default: + break; + case 'a': + if (strcmp("lg", s + 11) == 0) + return PIDX_CAPABILITY_TLS_GROUP_ALG; + break; + case 'i': + switch(s[11]) { + default: + break; + case 'd': + switch(s[12]) { + default: + break; + case '\0': + return PIDX_CAPABILITY_TLS_GROUP_ID; + } + break; + case 's': + if (strcmp("-kem", s + 12) == 0) + return PIDX_CAPABILITY_TLS_GROUP_IS_KEM; + } + break; + case 'n': + switch(s[11]) { + default: + break; + case 'a': + switch(s[12]) { + default: + break; + case 'm': + switch(s[13]) { + default: + break; + case 'e': + switch(s[14]) { + default: + break; + case '-': + if (strcmp("internal", s + 15) == 0) + return PIDX_CAPABILITY_TLS_GROUP_NAME_INTERNAL; + break; + case '\0': + return PIDX_CAPABILITY_TLS_GROUP_NAME; + } + } + } + } + break; + case 's': + if (strcmp("ec-bits", s + 11) == 0) + return PIDX_CAPABILITY_TLS_GROUP_SECURITY_BITS; + } + } + } + } + } + } + break; + case 'm': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case 'c': + switch(s[7]) { + default: + break; + case '-': + if (strcmp("size", s + 8) == 0) + return PIDX_CIPHER_PARAM_TLS_MAC_SIZE; + break; + case '\0': + return PIDX_CIPHER_PARAM_TLS_MAC; + } + break; + case 'x': + switch(s[7]) { + default: + break; + case '-': + switch(s[8]) { + default: + break; + case 'd': + if (strcmp("tls", s + 9) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_MAX_DTLS; + break; + case 't': + if (strcmp("ls", s + 9) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_MAX_TLS; + } + } + } + break; + case 'i': + switch(s[6]) { + default: + break; + case 'n': + switch(s[7]) { + default: + break; + case '-': + switch(s[8]) { + default: + break; + case 'd': + if (strcmp("tls", s + 9) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_MIN_DTLS; + break; + case 't': + if (strcmp("ls", s + 9) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_MIN_TLS; + } + } + } + break; + case 'u': + if (strcmp("lti", s + 6) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK; + } + break; + case 'n': + if (strcmp("egotiated-version", s + 5) == 0) + return PIDX_ASYM_CIPHER_PARAM_TLS_NEGOTIATED_VERSION; + break; + case 's': + switch(s[5]) { + default: + break; + case 'i': + switch(s[6]) { + default: + break; + case 'g': + switch(s[7]) { + default: + break; + case 'a': + switch(s[8]) { + default: + break; + case 'l': + switch(s[9]) { + default: + break; + case 'g': + switch(s[10]) { + default: + break; + case '-': + switch(s[11]) { + default: + break; + case 'c': + if (strcmp("ode-point", s + 12) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_CODE_POINT; + break; + case 'h': + switch(s[12]) { + default: + break; + case 'a': + switch(s[13]) { + default: + break; + case 's': + switch(s[14]) { + default: + break; + case 'h': + switch(s[15]) { + default: + break; + case '-': + switch(s[16]) { + default: + break; + case 'n': + if (strcmp("ame", s + 17) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_HASH_NAME; + break; + case 'o': + if (strcmp("id", s + 17) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_HASH_OID; + } + } + } + } + } + break; + case 'i': + if (strcmp("ana-name", s + 12) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_IANA_NAME; + break; + case 'k': + switch(s[12]) { + default: + break; + case 'e': + switch(s[13]) { + default: + break; + case 'y': + switch(s[14]) { + default: + break; + case 't': + switch(s[15]) { + default: + break; + case 'y': + switch(s[16]) { + default: + break; + case 'p': + switch(s[17]) { + default: + break; + case 'e': + switch(s[18]) { + default: + break; + case '-': + if (strcmp("oid", s + 19) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_KEYTYPE_OID; + break; + case '\0': + return PIDX_CAPABILITY_TLS_SIGALG_KEYTYPE; + } + } + } + } + } + } + } + break; + case 'n': + if (strcmp("ame", s + 12) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_NAME; + break; + case 'o': + if (strcmp("id", s + 12) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_OID; + break; + case 's': + switch(s[12]) { + default: + break; + case 'e': + if (strcmp("c-bits", s + 13) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_SECURITY_BITS; + break; + case 'i': + switch(s[13]) { + default: + break; + case 'g': + switch(s[14]) { + default: + break; + case '-': + switch(s[15]) { + default: + break; + case 'n': + if (strcmp("ame", s + 16) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_SIG_NAME; + break; + case 'o': + if (strcmp("id", s + 16) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_SIG_OID; + } + } + } + } + } + } + } + } + } + } + } + break; + case 'v': + if (strcmp("ersion", s + 5) == 0) + return PIDX_CIPHER_PARAM_TLS_VERSION; + } + break; + case '1': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'p': + switch(s[6]) { + default: + break; + case 'r': + switch(s[7]) { + default: + break; + case 'f': + switch(s[8]) { + default: + break; + case '-': + switch(s[9]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 10) == 0) + return PIDX_PROV_PARAM_TLS1_PRF_DIGEST_CHECK; + break; + case 'e': + if (strcmp("ms-check", s + 10) == 0) + return PIDX_PROV_PARAM_TLS1_PRF_EMS_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 10) == 0) + return PIDX_PROV_PARAM_TLS1_PRF_KEY_CHECK; + } + } + } + } + } + break; + case '3': + switch(s[5]) { + default: + break; + case '-': + switch(s[6]) { + default: + break; + case 'k': + switch(s[7]) { + default: + break; + case 'd': + switch(s[8]) { + default: + break; + case 'f': + switch(s[9]) { + default: + break; + case '-': + switch(s[10]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 11) == 0) + return PIDX_PROV_PARAM_TLS13_KDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 11) == 0) + return PIDX_PROV_PARAM_TLS13_KDF_KEY_CHECK; + } + } + } + } + } + } + break; + case 'm': + switch(s[5]) { + default: + break; + case 'u': + switch(s[6]) { + default: + break; + case 'l': + switch(s[7]) { + default: + break; + case 't': + switch(s[8]) { + default: + break; + case 'i': + switch(s[9]) { + default: + break; + case '_': + switch(s[10]) { + default: + break; + case 'a': + switch(s[11]) { + default: + break; + case 'a': + switch(s[12]) { + default: + break; + case 'd': + switch(s[13]) { + default: + break; + case 'p': + if (strcmp("acklen", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD_PACKLEN; + break; + case '\0': + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD; + } + } + } + break; + case 'e': + switch(s[11]) { + default: + break; + case 'n': + switch(s[12]) { + default: + break; + case 'c': + switch(s[13]) { + default: + break; + case 'i': + if (strcmp("n", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_IN; + break; + case 'l': + if (strcmp("en", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_LEN; + break; + case '\0': + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC; + } + } + } + break; + case 'i': + if (strcmp("nterleave", s + 11) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_INTERLEAVE; + break; + case 'm': + switch(s[11]) { + default: + break; + case 'a': + switch(s[12]) { + default: + break; + case 'x': + switch(s[13]) { + default: + break; + case 'b': + if (strcmp("ufsz", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_BUFSIZE; + break; + case 's': + if (strcmp("ndfrag", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_SEND_FRAGMENT; + } + } + } + } + } + } + } + } + } + } + break; + case 'a': + switch(s[4]) { + default: + break; + case 'a': + switch(s[5]) { + default: + break; + case 'd': + switch(s[6]) { + default: + break; + case 'p': + if (strcmp("ad", s + 7) == 0) + return PIDX_CIPHER_PARAM_AEAD_TLS1_AAD_PAD; + break; + case '\0': + return PIDX_CIPHER_PARAM_AEAD_TLS1_AAD; + } + } + } + break; + case 'i': + switch(s[4]) { + default: + break; + case 'v': + switch(s[5]) { + default: + break; + case 'f': + if (strcmp("ixed", s + 6) == 0) + return PIDX_CIPHER_PARAM_AEAD_TLS1_IV_FIXED; + break; + case 'g': + if (strcmp("en", s + 6) == 0) + return PIDX_CIPHER_PARAM_AEAD_TLS1_GET_IV_GEN; + break; + case 'i': + if (strcmp("nv", s + 6) == 0) + return PIDX_CIPHER_PARAM_AEAD_TLS1_SET_IV_INV; + } + } + break; + case 't': + if (strcmp("ree", s + 4) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_TLSTREE; + } + } + break; + case 'p': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_TP_BASIS; + } + break; + case 'y': + if (strcmp("pe", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_TYPE; + } + break; + case 'u': + switch(s[1]) { + default: + break; + case 'k': + if (strcmp("m", s + 2) == 0) + return PIDX_KDF_PARAM_UKM; + break; + case 'p': + if (strcmp("dated-iv", s + 2) == 0) + return PIDX_CIPHER_PARAM_UPDATED_IV; + break; + case 's': + switch(s[2]) { + default: + break; + case 'e': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'b': + if (strcmp("its", s + 5) == 0) + return PIDX_CIPHER_PARAM_USE_BITS; + break; + case 'c': + if (strcmp("ofactor-flag", s + 5) == 0) + return PIDX_PKEY_PARAM_USE_COFACTOR_FLAG; + break; + case 'k': + if (strcmp("eybits", s + 5) == 0) + return PIDX_KDF_PARAM_X942_USE_KEYBITS; + break; + case 'l': + switch(s[5]) { + default: + break; + case '\0': + return PIDX_KDF_PARAM_KBKDF_USE_L; + } + break; + case 's': + if (strcmp("eparator", s + 5) == 0) + return PIDX_KDF_PARAM_KBKDF_USE_SEPARATOR; + } + break; + case '_': + switch(s[4]) { + default: + break; + case 'd': + if (strcmp("erivation_function", s + 5) == 0) + return PIDX_DRBG_PARAM_USE_DF; + break; + case 'e': + if (strcmp("tm", s + 5) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_USE_ETM; + } + } + } + } + break; + case 'v': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'l': + switch(s[3]) { + default: + break; + case 'i': + switch(s[4]) { + default: + break; + case 'd': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case 'e': + switch(s[8]) { + default: + break; + case '-': + switch(s[9]) { + default: + break; + case 'g': + switch(s[10]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_VALIDATE_G; + } + break; + case 'l': + if (strcmp("egacy", s + 10) == 0) + return PIDX_PKEY_PARAM_FFC_VALIDATE_LEGACY; + break; + case 'p': + if (strcmp("q", s + 10) == 0) + return PIDX_PKEY_PARAM_FFC_VALIDATE_PQ; + } + } + } + } + } + } + } + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'r': + switch(s[3]) { + default: + break; + case 'i': + if (strcmp("fy-message", s + 4) == 0) + return PIDX_SIGNATURE_PARAM_FIPS_VERIFY_MESSAGE; + break; + case 's': + if (strcmp("ion", s + 4) == 0) + return PIDX_PROV_PARAM_VERSION; + } + } + } + break; + case 'x': + switch(s[1]) { + default: + break; + case '9': + switch(s[2]) { + default: + break; + case '4': + if (strcmp("2kdf-key-check", s + 3) == 0) + return PIDX_PROV_PARAM_X942KDF_KEY_CHECK; + break; + case '6': + switch(s[3]) { + default: + break; + case '3': + switch(s[4]) { + default: + break; + case 'k': + switch(s[5]) { + default: + break; + case 'd': + switch(s[6]) { + default: + break; + case 'f': + switch(s[7]) { + default: + break; + case '-': + switch(s[8]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 9) == 0) + return PIDX_PROV_PARAM_X963KDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 9) == 0) + return PIDX_PROV_PARAM_X963KDF_KEY_CHECK; + } + } + } + } + } + } + } + break; + case 'c': + if (strcmp("ghash", s + 2) == 0) + return PIDX_KDF_PARAM_SSHKDF_XCGHASH; + break; + case 'o': + switch(s[2]) { + default: + break; + case 'f': + switch(s[3]) { + default: + break; + case 'l': + if (strcmp("en", s + 4) == 0) + return PIDX_DIGEST_PARAM_XOFLEN; + break; + case '\0': + return PIDX_MAC_PARAM_XOF; + } + } + break; + case 'p': + switch(s[2]) { + default: + break; + case '1': + switch(s[3]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XP1; + } + break; + case '2': + switch(s[3]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XP2; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XP; + } + break; + case 'q': + switch(s[2]) { + default: + break; + case '1': + switch(s[3]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XQ1; + } + break; + case '2': + switch(s[3]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XQ2; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XQ; + } + break; + case 't': + if (strcmp("s_standard", s + 2) == 0) + return PIDX_CIPHER_PARAM_XTS_STANDARD; + } + } + return -1; +} + +/* End of TRIE */ diff --git a/deps/openssl/config/archs/aix64-gcc-as/asm_avx2/crypto/ppccpuid.s b/deps/openssl/config/archs/aix64-gcc-as/asm_avx2/crypto/ppccpuid.s index 63f902770d32de..a75defcc768384 100644 --- a/deps/openssl/config/archs/aix64-gcc-as/asm_avx2/crypto/ppccpuid.s +++ b/deps/openssl/config/archs/aix64-gcc-as/asm_avx2/crypto/ppccpuid.s @@ -48,6 +48,17 @@ .long 0 .byte 0,12,0x14,0,0,0,0,0 +.globl .OPENSSL_brd31_probe +.align 4 +.OPENSSL_brd31_probe: + xor 0,0,0 + .long 0x7C030176 + blr +.long 0 +.byte 0,12,0x14,0,0,0,0,0 + + + .globl .OPENSSL_wipe_cpu .align 4 .OPENSSL_wipe_cpu: diff --git a/deps/openssl/config/archs/aix64-gcc-as/asm_avx2/crypto/sha/keccak1600-ppc64.s b/deps/openssl/config/archs/aix64-gcc-as/asm_avx2/crypto/sha/keccak1600-ppc64.s index 28c8e62f664cce..625f8d2ff102dd 100644 --- a/deps/openssl/config/archs/aix64-gcc-as/asm_avx2/crypto/sha/keccak1600-ppc64.s +++ b/deps/openssl/config/archs/aix64-gcc-as/asm_avx2/crypto/sha/keccak1600-ppc64.s @@ -293,7 +293,6 @@ KeccakF1600: .long 0 - .align 5 dword_le_load: lbz 0,1(3) @@ -316,7 +315,6 @@ dword_le_load: .byte 0,12,0x14,0,0,0,1,0 .long 0 - .globl .SHA3_absorb .align 5 @@ -557,6 +555,8 @@ Labsorbed: subi 29,4,1 mr 30,5 mr 31,6 + cmplwi 7,0 + bne Lnext_block b Loop_squeeze .align 4 @@ -587,6 +587,7 @@ Loop_squeeze: subic. 6,6,8 bgt Loop_squeeze +Lnext_block: mr 3,28 bl KeccakF1600 subi 3,28,8 diff --git a/deps/openssl/config/archs/aix64-gcc-as/asm_avx2/include/internal/param_names.h b/deps/openssl/config/archs/aix64-gcc-as/asm_avx2/include/internal/param_names.h new file mode 100644 index 00000000000000..0a0404a57e82b9 --- /dev/null +++ b/deps/openssl/config/archs/aix64-gcc-as/asm_avx2/include/internal/param_names.h @@ -0,0 +1,469 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from include/internal/param_names.h.in + * + * Copyright 2023 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + +int ossl_param_find_pidx(const char *s); + +/* Parameter name definitions - generated by util/perl/OpenSSL/paramnames.pm */ +#define NUM_PIDX 346 + +#define PIDX_ALG_PARAM_ALGORITHM_ID 0 +#define PIDX_ALG_PARAM_ALGORITHM_ID_PARAMS 1 +#define PIDX_ALG_PARAM_CIPHER 2 +#define PIDX_ALG_PARAM_DIGEST 3 +#define PIDX_ALG_PARAM_ENGINE 4 +#define PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR 5 +#define PIDX_ALG_PARAM_MAC 6 +#define PIDX_ALG_PARAM_PROPERTIES 7 +#define PIDX_ASYM_CIPHER_PARAM_DIGEST PIDX_PKEY_PARAM_DIGEST +#define PIDX_ASYM_CIPHER_PARAM_ENGINE PIDX_PKEY_PARAM_ENGINE +#define PIDX_ASYM_CIPHER_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_ASYM_CIPHER_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_ASYM_CIPHER_PARAM_FIPS_RSA_PKCS15_PAD_DISABLED PIDX_PROV_PARAM_RSA_PKCS15_PAD_DISABLED +#define PIDX_ASYM_CIPHER_PARAM_IMPLICIT_REJECTION 8 +#define PIDX_ASYM_CIPHER_PARAM_MGF1_DIGEST PIDX_PKEY_PARAM_MGF1_DIGEST +#define PIDX_ASYM_CIPHER_PARAM_MGF1_DIGEST_PROPS PIDX_PKEY_PARAM_MGF1_PROPERTIES +#define PIDX_ASYM_CIPHER_PARAM_OAEP_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_ASYM_CIPHER_PARAM_OAEP_DIGEST_PROPS 9 +#define PIDX_ASYM_CIPHER_PARAM_OAEP_LABEL 10 +#define PIDX_ASYM_CIPHER_PARAM_PAD_MODE PIDX_PKEY_PARAM_PAD_MODE +#define PIDX_ASYM_CIPHER_PARAM_PROPERTIES PIDX_PKEY_PARAM_PROPERTIES +#define PIDX_ASYM_CIPHER_PARAM_TLS_CLIENT_VERSION 11 +#define PIDX_ASYM_CIPHER_PARAM_TLS_NEGOTIATED_VERSION 12 +#define PIDX_CAPABILITY_TLS_GROUP_ALG 13 +#define PIDX_CAPABILITY_TLS_GROUP_ID 14 +#define PIDX_CAPABILITY_TLS_GROUP_IS_KEM 15 +#define PIDX_CAPABILITY_TLS_GROUP_MAX_DTLS 16 +#define PIDX_CAPABILITY_TLS_GROUP_MAX_TLS 17 +#define PIDX_CAPABILITY_TLS_GROUP_MIN_DTLS 18 +#define PIDX_CAPABILITY_TLS_GROUP_MIN_TLS 19 +#define PIDX_CAPABILITY_TLS_GROUP_NAME 20 +#define PIDX_CAPABILITY_TLS_GROUP_NAME_INTERNAL 21 +#define PIDX_CAPABILITY_TLS_GROUP_SECURITY_BITS 22 +#define PIDX_CAPABILITY_TLS_SIGALG_CODE_POINT 23 +#define PIDX_CAPABILITY_TLS_SIGALG_HASH_NAME 24 +#define PIDX_CAPABILITY_TLS_SIGALG_HASH_OID 25 +#define PIDX_CAPABILITY_TLS_SIGALG_IANA_NAME 26 +#define PIDX_CAPABILITY_TLS_SIGALG_KEYTYPE 27 +#define PIDX_CAPABILITY_TLS_SIGALG_KEYTYPE_OID 28 +#define PIDX_CAPABILITY_TLS_SIGALG_MAX_DTLS 16 +#define PIDX_CAPABILITY_TLS_SIGALG_MAX_TLS 17 +#define PIDX_CAPABILITY_TLS_SIGALG_MIN_DTLS 18 +#define PIDX_CAPABILITY_TLS_SIGALG_MIN_TLS 19 +#define PIDX_CAPABILITY_TLS_SIGALG_NAME 29 +#define PIDX_CAPABILITY_TLS_SIGALG_OID 30 +#define PIDX_CAPABILITY_TLS_SIGALG_SECURITY_BITS 31 +#define PIDX_CAPABILITY_TLS_SIGALG_SIG_NAME 32 +#define PIDX_CAPABILITY_TLS_SIGALG_SIG_OID 33 +#define PIDX_CIPHER_PARAM_AEAD 34 +#define PIDX_CIPHER_PARAM_AEAD_IVLEN PIDX_CIPHER_PARAM_IVLEN +#define PIDX_CIPHER_PARAM_AEAD_IV_GENERATED 35 +#define PIDX_CIPHER_PARAM_AEAD_MAC_KEY 36 +#define PIDX_CIPHER_PARAM_AEAD_TAG 37 +#define PIDX_CIPHER_PARAM_AEAD_TAGLEN 38 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_AAD 39 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_AAD_PAD 40 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_GET_IV_GEN 41 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_IV_FIXED 42 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_SET_IV_INV 43 +#define PIDX_CIPHER_PARAM_ALGORITHM_ID PIDX_ALG_PARAM_ALGORITHM_ID +#define PIDX_CIPHER_PARAM_ALGORITHM_ID_PARAMS PIDX_ALG_PARAM_ALGORITHM_ID_PARAMS +#define PIDX_CIPHER_PARAM_ALGORITHM_ID_PARAMS_OLD 44 +#define PIDX_CIPHER_PARAM_BLOCK_SIZE 45 +#define PIDX_CIPHER_PARAM_CTS 46 +#define PIDX_CIPHER_PARAM_CTS_MODE 47 +#define PIDX_CIPHER_PARAM_CUSTOM_IV 48 +#define PIDX_CIPHER_PARAM_DECRYPT_ONLY 49 +#define PIDX_CIPHER_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_CIPHER_PARAM_FIPS_ENCRYPT_CHECK 50 +#define PIDX_CIPHER_PARAM_HAS_RAND_KEY 51 +#define PIDX_CIPHER_PARAM_IV 52 +#define PIDX_CIPHER_PARAM_IVLEN 53 +#define PIDX_CIPHER_PARAM_KEYLEN 54 +#define PIDX_CIPHER_PARAM_MODE 55 +#define PIDX_CIPHER_PARAM_NUM 56 +#define PIDX_CIPHER_PARAM_PADDING 57 +#define PIDX_CIPHER_PARAM_PIPELINE_AEAD_TAG 58 +#define PIDX_CIPHER_PARAM_RANDOM_KEY 59 +#define PIDX_CIPHER_PARAM_RC2_KEYBITS 60 +#define PIDX_CIPHER_PARAM_ROUNDS 61 +#define PIDX_CIPHER_PARAM_SPEED 62 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK 63 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD 64 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD_PACKLEN 65 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC 66 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_IN 67 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_LEN 68 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_INTERLEAVE 69 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_BUFSIZE 70 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_SEND_FRAGMENT 71 +#define PIDX_CIPHER_PARAM_TLS_MAC 72 +#define PIDX_CIPHER_PARAM_TLS_MAC_SIZE 73 +#define PIDX_CIPHER_PARAM_TLS_VERSION 74 +#define PIDX_CIPHER_PARAM_UPDATED_IV 75 +#define PIDX_CIPHER_PARAM_USE_BITS 76 +#define PIDX_CIPHER_PARAM_XTS_STANDARD 77 +#define PIDX_DECODER_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_DIGEST_PARAM_ALGID_ABSENT 78 +#define PIDX_DIGEST_PARAM_BLOCK_SIZE 45 +#define PIDX_DIGEST_PARAM_MICALG 79 +#define PIDX_DIGEST_PARAM_PAD_TYPE 80 +#define PIDX_DIGEST_PARAM_SIZE 81 +#define PIDX_DIGEST_PARAM_SSL3_MS 82 +#define PIDX_DIGEST_PARAM_XOF 83 +#define PIDX_DIGEST_PARAM_XOFLEN 84 +#define PIDX_DRBG_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_DRBG_PARAM_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_DRBG_PARAM_ENTROPY_REQUIRED 85 +#define PIDX_DRBG_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_DRBG_PARAM_FIPS_DIGEST_CHECK PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK +#define PIDX_DRBG_PARAM_MAC PIDX_ALG_PARAM_MAC +#define PIDX_DRBG_PARAM_MAX_ADINLEN 86 +#define PIDX_DRBG_PARAM_MAX_ENTROPYLEN 87 +#define PIDX_DRBG_PARAM_MAX_LENGTH 88 +#define PIDX_DRBG_PARAM_MAX_NONCELEN 89 +#define PIDX_DRBG_PARAM_MAX_PERSLEN 90 +#define PIDX_DRBG_PARAM_MIN_ENTROPYLEN 91 +#define PIDX_DRBG_PARAM_MIN_LENGTH 92 +#define PIDX_DRBG_PARAM_MIN_NONCELEN 93 +#define PIDX_DRBG_PARAM_PREDICTION_RESISTANCE 94 +#define PIDX_DRBG_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_DRBG_PARAM_RANDOM_DATA 95 +#define PIDX_DRBG_PARAM_RESEED_COUNTER 96 +#define PIDX_DRBG_PARAM_RESEED_REQUESTS 97 +#define PIDX_DRBG_PARAM_RESEED_TIME 98 +#define PIDX_DRBG_PARAM_RESEED_TIME_INTERVAL 99 +#define PIDX_DRBG_PARAM_SIZE 81 +#define PIDX_DRBG_PARAM_USE_DF 100 +#define PIDX_ENCODER_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_ENCODER_PARAM_ENCRYPT_LEVEL 101 +#define PIDX_ENCODER_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_ENCODER_PARAM_SAVE_PARAMETERS 102 +#define PIDX_EXCHANGE_PARAM_EC_ECDH_COFACTOR_MODE 103 +#define PIDX_EXCHANGE_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_EXCHANGE_PARAM_FIPS_DIGEST_CHECK PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK +#define PIDX_EXCHANGE_PARAM_FIPS_ECDH_COFACTOR_CHECK PIDX_PROV_PARAM_ECDH_COFACTOR_CHECK +#define PIDX_EXCHANGE_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_EXCHANGE_PARAM_KDF_DIGEST 104 +#define PIDX_EXCHANGE_PARAM_KDF_DIGEST_PROPS 105 +#define PIDX_EXCHANGE_PARAM_KDF_OUTLEN 106 +#define PIDX_EXCHANGE_PARAM_KDF_TYPE 107 +#define PIDX_EXCHANGE_PARAM_KDF_UKM 108 +#define PIDX_EXCHANGE_PARAM_PAD 109 +#define PIDX_GEN_PARAM_ITERATION 110 +#define PIDX_GEN_PARAM_POTENTIAL 111 +#define PIDX_KDF_PARAM_ARGON2_AD 112 +#define PIDX_KDF_PARAM_ARGON2_LANES 113 +#define PIDX_KDF_PARAM_ARGON2_MEMCOST 114 +#define PIDX_KDF_PARAM_ARGON2_VERSION 115 +#define PIDX_KDF_PARAM_CEK_ALG 116 +#define PIDX_KDF_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_KDF_PARAM_CONSTANT 117 +#define PIDX_KDF_PARAM_DATA 118 +#define PIDX_KDF_PARAM_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_KDF_PARAM_EARLY_CLEAN 119 +#define PIDX_KDF_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_KDF_PARAM_FIPS_DIGEST_CHECK PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK +#define PIDX_KDF_PARAM_FIPS_EMS_CHECK 120 +#define PIDX_KDF_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_KDF_PARAM_HMACDRBG_ENTROPY 121 +#define PIDX_KDF_PARAM_HMACDRBG_NONCE 122 +#define PIDX_KDF_PARAM_INFO 123 +#define PIDX_KDF_PARAM_ITER 124 +#define PIDX_KDF_PARAM_KBKDF_R 125 +#define PIDX_KDF_PARAM_KBKDF_USE_L 126 +#define PIDX_KDF_PARAM_KBKDF_USE_SEPARATOR 127 +#define PIDX_KDF_PARAM_KEY 128 +#define PIDX_KDF_PARAM_LABEL 129 +#define PIDX_KDF_PARAM_MAC PIDX_ALG_PARAM_MAC +#define PIDX_KDF_PARAM_MAC_SIZE 130 +#define PIDX_KDF_PARAM_MODE 55 +#define PIDX_KDF_PARAM_PASSWORD 131 +#define PIDX_KDF_PARAM_PKCS12_ID 132 +#define PIDX_KDF_PARAM_PKCS5 133 +#define PIDX_KDF_PARAM_PREFIX 134 +#define PIDX_KDF_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_KDF_PARAM_SALT 135 +#define PIDX_KDF_PARAM_SCRYPT_MAXMEM 136 +#define PIDX_KDF_PARAM_SCRYPT_N 137 +#define PIDX_KDF_PARAM_SCRYPT_P 138 +#define PIDX_KDF_PARAM_SCRYPT_R 125 +#define PIDX_KDF_PARAM_SECRET 139 +#define PIDX_KDF_PARAM_SEED 140 +#define PIDX_KDF_PARAM_SIZE 81 +#define PIDX_KDF_PARAM_SSHKDF_SESSION_ID 141 +#define PIDX_KDF_PARAM_SSHKDF_TYPE 142 +#define PIDX_KDF_PARAM_SSHKDF_XCGHASH 143 +#define PIDX_KDF_PARAM_THREADS 144 +#define PIDX_KDF_PARAM_UKM 145 +#define PIDX_KDF_PARAM_X942_ACVPINFO 146 +#define PIDX_KDF_PARAM_X942_PARTYUINFO 147 +#define PIDX_KDF_PARAM_X942_PARTYVINFO 148 +#define PIDX_KDF_PARAM_X942_SUPP_PRIVINFO 149 +#define PIDX_KDF_PARAM_X942_SUPP_PUBINFO 150 +#define PIDX_KDF_PARAM_X942_USE_KEYBITS 151 +#define PIDX_KEM_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_KEM_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_KEM_PARAM_IKME 152 +#define PIDX_KEM_PARAM_OPERATION 153 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_BLOCK_PADDING 154 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_HS_PADDING 155 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_MAX_EARLY_DATA 156 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_MAX_FRAG_LEN 157 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_MODE 55 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_OPTIONS 158 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_READ_AHEAD 159 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_STREAM_MAC 160 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_TLSTREE 161 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_USE_ETM 162 +#define PIDX_LIBSSL_RECORD_LAYER_READ_BUFFER_LEN 163 +#define PIDX_MAC_PARAM_BLOCK_SIZE 164 +#define PIDX_MAC_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_MAC_PARAM_CUSTOM 165 +#define PIDX_MAC_PARAM_C_ROUNDS 166 +#define PIDX_MAC_PARAM_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_MAC_PARAM_DIGEST_NOINIT 167 +#define PIDX_MAC_PARAM_DIGEST_ONESHOT 168 +#define PIDX_MAC_PARAM_D_ROUNDS 169 +#define PIDX_MAC_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_MAC_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_MAC_PARAM_FIPS_NO_SHORT_MAC PIDX_PROV_PARAM_NO_SHORT_MAC +#define PIDX_MAC_PARAM_IV 52 +#define PIDX_MAC_PARAM_KEY 128 +#define PIDX_MAC_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_MAC_PARAM_SALT 135 +#define PIDX_MAC_PARAM_SIZE 81 +#define PIDX_MAC_PARAM_TLS_DATA_SIZE 170 +#define PIDX_MAC_PARAM_XOF 83 +#define PIDX_OBJECT_PARAM_DATA 118 +#define PIDX_OBJECT_PARAM_DATA_STRUCTURE 171 +#define PIDX_OBJECT_PARAM_DATA_TYPE 172 +#define PIDX_OBJECT_PARAM_DESC 173 +#define PIDX_OBJECT_PARAM_INPUT_TYPE 174 +#define PIDX_OBJECT_PARAM_REFERENCE 175 +#define PIDX_OBJECT_PARAM_TYPE 142 +#define PIDX_PASSPHRASE_PARAM_INFO 123 +#define PIDX_PKEY_PARAM_ALGORITHM_ID PIDX_ALG_PARAM_ALGORITHM_ID +#define PIDX_PKEY_PARAM_ALGORITHM_ID_PARAMS PIDX_ALG_PARAM_ALGORITHM_ID_PARAMS +#define PIDX_PKEY_PARAM_BITS 176 +#define PIDX_PKEY_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_PKEY_PARAM_DEFAULT_DIGEST 177 +#define PIDX_PKEY_PARAM_DHKEM_IKM 178 +#define PIDX_PKEY_PARAM_DH_GENERATOR 179 +#define PIDX_PKEY_PARAM_DH_PRIV_LEN 180 +#define PIDX_PKEY_PARAM_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_PKEY_PARAM_DIGEST_SIZE 181 +#define PIDX_PKEY_PARAM_DIST_ID 182 +#define PIDX_PKEY_PARAM_EC_A 183 +#define PIDX_PKEY_PARAM_EC_B 184 +#define PIDX_PKEY_PARAM_EC_CHAR2_M 185 +#define PIDX_PKEY_PARAM_EC_CHAR2_PP_K1 186 +#define PIDX_PKEY_PARAM_EC_CHAR2_PP_K2 187 +#define PIDX_PKEY_PARAM_EC_CHAR2_PP_K3 188 +#define PIDX_PKEY_PARAM_EC_CHAR2_TP_BASIS 189 +#define PIDX_PKEY_PARAM_EC_CHAR2_TYPE 190 +#define PIDX_PKEY_PARAM_EC_COFACTOR 191 +#define PIDX_PKEY_PARAM_EC_DECODED_FROM_EXPLICIT_PARAMS 192 +#define PIDX_PKEY_PARAM_EC_ENCODING 193 +#define PIDX_PKEY_PARAM_EC_FIELD_TYPE 194 +#define PIDX_PKEY_PARAM_EC_GENERATOR 195 +#define PIDX_PKEY_PARAM_EC_GROUP_CHECK_TYPE 196 +#define PIDX_PKEY_PARAM_EC_INCLUDE_PUBLIC 197 +#define PIDX_PKEY_PARAM_EC_ORDER 198 +#define PIDX_PKEY_PARAM_EC_P 138 +#define PIDX_PKEY_PARAM_EC_POINT_CONVERSION_FORMAT 199 +#define PIDX_PKEY_PARAM_EC_PUB_X 200 +#define PIDX_PKEY_PARAM_EC_PUB_Y 201 +#define PIDX_PKEY_PARAM_EC_SEED 140 +#define PIDX_PKEY_PARAM_ENCODED_PUBLIC_KEY 202 +#define PIDX_PKEY_PARAM_ENGINE PIDX_ALG_PARAM_ENGINE +#define PIDX_PKEY_PARAM_FFC_COFACTOR 203 +#define PIDX_PKEY_PARAM_FFC_DIGEST PIDX_PKEY_PARAM_DIGEST +#define PIDX_PKEY_PARAM_FFC_DIGEST_PROPS PIDX_PKEY_PARAM_PROPERTIES +#define PIDX_PKEY_PARAM_FFC_G 204 +#define PIDX_PKEY_PARAM_FFC_GINDEX 205 +#define PIDX_PKEY_PARAM_FFC_H 206 +#define PIDX_PKEY_PARAM_FFC_P 138 +#define PIDX_PKEY_PARAM_FFC_PBITS 207 +#define PIDX_PKEY_PARAM_FFC_PCOUNTER 208 +#define PIDX_PKEY_PARAM_FFC_Q 209 +#define PIDX_PKEY_PARAM_FFC_QBITS 210 +#define PIDX_PKEY_PARAM_FFC_SEED 140 +#define PIDX_PKEY_PARAM_FFC_TYPE 142 +#define PIDX_PKEY_PARAM_FFC_VALIDATE_G 211 +#define PIDX_PKEY_PARAM_FFC_VALIDATE_LEGACY 212 +#define PIDX_PKEY_PARAM_FFC_VALIDATE_PQ 213 +#define PIDX_PKEY_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK 214 +#define PIDX_PKEY_PARAM_FIPS_KEY_CHECK 215 +#define PIDX_PKEY_PARAM_FIPS_SIGN_CHECK 216 +#define PIDX_PKEY_PARAM_GROUP_NAME 217 +#define PIDX_PKEY_PARAM_IMPLICIT_REJECTION 8 +#define PIDX_PKEY_PARAM_MANDATORY_DIGEST 218 +#define PIDX_PKEY_PARAM_MASKGENFUNC 219 +#define PIDX_PKEY_PARAM_MAX_SIZE 220 +#define PIDX_PKEY_PARAM_MGF1_DIGEST 221 +#define PIDX_PKEY_PARAM_MGF1_PROPERTIES 222 +#define PIDX_PKEY_PARAM_ML_DSA_INPUT_FORMATS 223 +#define PIDX_PKEY_PARAM_ML_DSA_OUTPUT_FORMATS 224 +#define PIDX_PKEY_PARAM_ML_DSA_PREFER_SEED 225 +#define PIDX_PKEY_PARAM_ML_DSA_RETAIN_SEED 226 +#define PIDX_PKEY_PARAM_ML_DSA_SEED 140 +#define PIDX_PKEY_PARAM_ML_KEM_IMPORT_PCT_TYPE 227 +#define PIDX_PKEY_PARAM_ML_KEM_INPUT_FORMATS 228 +#define PIDX_PKEY_PARAM_ML_KEM_OUTPUT_FORMATS 229 +#define PIDX_PKEY_PARAM_ML_KEM_PREFER_SEED 230 +#define PIDX_PKEY_PARAM_ML_KEM_RETAIN_SEED 231 +#define PIDX_PKEY_PARAM_ML_KEM_SEED 140 +#define PIDX_PKEY_PARAM_PAD_MODE 232 +#define PIDX_PKEY_PARAM_PRIV_KEY 233 +#define PIDX_PKEY_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_PKEY_PARAM_PUB_KEY 234 +#define PIDX_PKEY_PARAM_RSA_BITS PIDX_PKEY_PARAM_BITS +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT 235 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT1 236 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT2 237 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT3 238 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT4 239 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT5 240 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT6 241 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT7 242 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT8 243 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT9 244 +#define PIDX_PKEY_PARAM_RSA_D 245 +#define PIDX_PKEY_PARAM_RSA_DERIVE_FROM_PQ 246 +#define PIDX_PKEY_PARAM_RSA_DIGEST PIDX_PKEY_PARAM_DIGEST +#define PIDX_PKEY_PARAM_RSA_DIGEST_PROPS PIDX_PKEY_PARAM_PROPERTIES +#define PIDX_PKEY_PARAM_RSA_E 247 +#define PIDX_PKEY_PARAM_RSA_EXPONENT 248 +#define PIDX_PKEY_PARAM_RSA_EXPONENT1 249 +#define PIDX_PKEY_PARAM_RSA_EXPONENT10 250 +#define PIDX_PKEY_PARAM_RSA_EXPONENT2 251 +#define PIDX_PKEY_PARAM_RSA_EXPONENT3 252 +#define PIDX_PKEY_PARAM_RSA_EXPONENT4 253 +#define PIDX_PKEY_PARAM_RSA_EXPONENT5 254 +#define PIDX_PKEY_PARAM_RSA_EXPONENT6 255 +#define PIDX_PKEY_PARAM_RSA_EXPONENT7 256 +#define PIDX_PKEY_PARAM_RSA_EXPONENT8 257 +#define PIDX_PKEY_PARAM_RSA_EXPONENT9 258 +#define PIDX_PKEY_PARAM_RSA_FACTOR 259 +#define PIDX_PKEY_PARAM_RSA_FACTOR1 260 +#define PIDX_PKEY_PARAM_RSA_FACTOR10 261 +#define PIDX_PKEY_PARAM_RSA_FACTOR2 262 +#define PIDX_PKEY_PARAM_RSA_FACTOR3 263 +#define PIDX_PKEY_PARAM_RSA_FACTOR4 264 +#define PIDX_PKEY_PARAM_RSA_FACTOR5 265 +#define PIDX_PKEY_PARAM_RSA_FACTOR6 266 +#define PIDX_PKEY_PARAM_RSA_FACTOR7 267 +#define PIDX_PKEY_PARAM_RSA_FACTOR8 268 +#define PIDX_PKEY_PARAM_RSA_FACTOR9 269 +#define PIDX_PKEY_PARAM_RSA_MASKGENFUNC PIDX_PKEY_PARAM_MASKGENFUNC +#define PIDX_PKEY_PARAM_RSA_MGF1_DIGEST PIDX_PKEY_PARAM_MGF1_DIGEST +#define PIDX_PKEY_PARAM_RSA_N 137 +#define PIDX_PKEY_PARAM_RSA_PRIMES 270 +#define PIDX_PKEY_PARAM_RSA_PSS_SALTLEN 271 +#define PIDX_PKEY_PARAM_RSA_TEST_P1 272 +#define PIDX_PKEY_PARAM_RSA_TEST_P2 273 +#define PIDX_PKEY_PARAM_RSA_TEST_Q1 274 +#define PIDX_PKEY_PARAM_RSA_TEST_Q2 275 +#define PIDX_PKEY_PARAM_RSA_TEST_XP 276 +#define PIDX_PKEY_PARAM_RSA_TEST_XP1 277 +#define PIDX_PKEY_PARAM_RSA_TEST_XP2 278 +#define PIDX_PKEY_PARAM_RSA_TEST_XQ 279 +#define PIDX_PKEY_PARAM_RSA_TEST_XQ1 280 +#define PIDX_PKEY_PARAM_RSA_TEST_XQ2 281 +#define PIDX_PKEY_PARAM_SECURITY_BITS 282 +#define PIDX_PKEY_PARAM_SLH_DSA_SEED 140 +#define PIDX_PKEY_PARAM_USE_COFACTOR_ECDH PIDX_PKEY_PARAM_USE_COFACTOR_FLAG +#define PIDX_PKEY_PARAM_USE_COFACTOR_FLAG 283 +#define PIDX_PROV_PARAM_BUILDINFO 284 +#define PIDX_PROV_PARAM_CORE_MODULE_FILENAME 285 +#define PIDX_PROV_PARAM_CORE_PROV_NAME 286 +#define PIDX_PROV_PARAM_CORE_VERSION 287 +#define PIDX_PROV_PARAM_DRBG_TRUNC_DIGEST 288 +#define PIDX_PROV_PARAM_DSA_SIGN_DISABLED 289 +#define PIDX_PROV_PARAM_ECDH_COFACTOR_CHECK 290 +#define PIDX_PROV_PARAM_HKDF_DIGEST_CHECK 291 +#define PIDX_PROV_PARAM_HKDF_KEY_CHECK 292 +#define PIDX_PROV_PARAM_HMAC_KEY_CHECK 293 +#define PIDX_PROV_PARAM_KBKDF_KEY_CHECK 294 +#define PIDX_PROV_PARAM_KMAC_KEY_CHECK 295 +#define PIDX_PROV_PARAM_NAME 296 +#define PIDX_PROV_PARAM_NO_SHORT_MAC 297 +#define PIDX_PROV_PARAM_PBKDF2_LOWER_BOUND_CHECK 298 +#define PIDX_PROV_PARAM_RSA_PKCS15_PAD_DISABLED 299 +#define PIDX_PROV_PARAM_RSA_PSS_SALTLEN_CHECK 300 +#define PIDX_PROV_PARAM_RSA_SIGN_X931_PAD_DISABLED 301 +#define PIDX_PROV_PARAM_SECURITY_CHECKS 302 +#define PIDX_PROV_PARAM_SELF_TEST_DESC 303 +#define PIDX_PROV_PARAM_SELF_TEST_PHASE 304 +#define PIDX_PROV_PARAM_SELF_TEST_TYPE 305 +#define PIDX_PROV_PARAM_SIGNATURE_DIGEST_CHECK 306 +#define PIDX_PROV_PARAM_SSHKDF_DIGEST_CHECK 307 +#define PIDX_PROV_PARAM_SSHKDF_KEY_CHECK 308 +#define PIDX_PROV_PARAM_SSKDF_DIGEST_CHECK 309 +#define PIDX_PROV_PARAM_SSKDF_KEY_CHECK 310 +#define PIDX_PROV_PARAM_STATUS 311 +#define PIDX_PROV_PARAM_TDES_ENCRYPT_DISABLED 312 +#define PIDX_PROV_PARAM_TLS13_KDF_DIGEST_CHECK 313 +#define PIDX_PROV_PARAM_TLS13_KDF_KEY_CHECK 314 +#define PIDX_PROV_PARAM_TLS1_PRF_DIGEST_CHECK 315 +#define PIDX_PROV_PARAM_TLS1_PRF_EMS_CHECK 316 +#define PIDX_PROV_PARAM_TLS1_PRF_KEY_CHECK 317 +#define PIDX_PROV_PARAM_VERSION 115 +#define PIDX_PROV_PARAM_X942KDF_KEY_CHECK 318 +#define PIDX_PROV_PARAM_X963KDF_DIGEST_CHECK 319 +#define PIDX_PROV_PARAM_X963KDF_KEY_CHECK 320 +#define PIDX_RAND_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_RAND_PARAM_GENERATE 321 +#define PIDX_RAND_PARAM_MAX_REQUEST 322 +#define PIDX_RAND_PARAM_STATE 323 +#define PIDX_RAND_PARAM_STRENGTH 324 +#define PIDX_RAND_PARAM_TEST_ENTROPY 325 +#define PIDX_RAND_PARAM_TEST_NONCE 326 +#define PIDX_SIGNATURE_PARAM_ADD_RANDOM 327 +#define PIDX_SIGNATURE_PARAM_ALGORITHM_ID PIDX_PKEY_PARAM_ALGORITHM_ID +#define PIDX_SIGNATURE_PARAM_ALGORITHM_ID_PARAMS PIDX_PKEY_PARAM_ALGORITHM_ID_PARAMS +#define PIDX_SIGNATURE_PARAM_CONTEXT_STRING 328 +#define PIDX_SIGNATURE_PARAM_DETERMINISTIC 329 +#define PIDX_SIGNATURE_PARAM_DIGEST PIDX_PKEY_PARAM_DIGEST +#define PIDX_SIGNATURE_PARAM_DIGEST_SIZE PIDX_PKEY_PARAM_DIGEST_SIZE +#define PIDX_SIGNATURE_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_SIGNATURE_PARAM_FIPS_DIGEST_CHECK PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK +#define PIDX_SIGNATURE_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_SIGNATURE_PARAM_FIPS_RSA_PSS_SALTLEN_CHECK 300 +#define PIDX_SIGNATURE_PARAM_FIPS_SIGN_CHECK PIDX_PKEY_PARAM_FIPS_SIGN_CHECK +#define PIDX_SIGNATURE_PARAM_FIPS_SIGN_X931_PAD_CHECK 330 +#define PIDX_SIGNATURE_PARAM_FIPS_VERIFY_MESSAGE 331 +#define PIDX_SIGNATURE_PARAM_INSTANCE 332 +#define PIDX_SIGNATURE_PARAM_KAT 333 +#define PIDX_SIGNATURE_PARAM_MESSAGE_ENCODING 334 +#define PIDX_SIGNATURE_PARAM_MGF1_DIGEST PIDX_PKEY_PARAM_MGF1_DIGEST +#define PIDX_SIGNATURE_PARAM_MGF1_PROPERTIES PIDX_PKEY_PARAM_MGF1_PROPERTIES +#define PIDX_SIGNATURE_PARAM_MU 335 +#define PIDX_SIGNATURE_PARAM_NONCE_TYPE 336 +#define PIDX_SIGNATURE_PARAM_PAD_MODE PIDX_PKEY_PARAM_PAD_MODE +#define PIDX_SIGNATURE_PARAM_PROPERTIES PIDX_PKEY_PARAM_PROPERTIES +#define PIDX_SIGNATURE_PARAM_PSS_SALTLEN 271 +#define PIDX_SIGNATURE_PARAM_SIGNATURE 337 +#define PIDX_SIGNATURE_PARAM_TEST_ENTROPY 338 +#define PIDX_SKEY_PARAM_KEY_LENGTH 339 +#define PIDX_SKEY_PARAM_RAW_BYTES 340 +#define PIDX_STORE_PARAM_ALIAS 341 +#define PIDX_STORE_PARAM_DIGEST 3 +#define PIDX_STORE_PARAM_EXPECT 342 +#define PIDX_STORE_PARAM_FINGERPRINT 343 +#define PIDX_STORE_PARAM_INPUT_TYPE 174 +#define PIDX_STORE_PARAM_ISSUER 296 +#define PIDX_STORE_PARAM_PROPERTIES 7 +#define PIDX_STORE_PARAM_SERIAL 344 +#define PIDX_STORE_PARAM_SUBJECT 345 diff --git a/deps/openssl/config/archs/aix64-gcc-as/asm_avx2/include/openssl/asn1.h b/deps/openssl/config/archs/aix64-gcc-as/asm_avx2/include/openssl/asn1.h index 21ff58e3d803d4..15e9e44674b0f3 100644 --- a/deps/openssl/config/archs/aix64-gcc-as/asm_avx2/include/openssl/asn1.h +++ b/deps/openssl/config/archs/aix64-gcc-as/asm_avx2/include/openssl/asn1.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/asn1.h.in * - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -21,6 +21,9 @@ # define HEADER_ASN1_H # endif +# ifndef OPENSSL_NO_STDIO +# include +# endif # include # include # include @@ -50,14 +53,14 @@ extern "C" { # define V_ASN1_PRIMITIVE_TAG 0x1f # define V_ASN1_PRIMATIVE_TAG /*compat*/ V_ASN1_PRIMITIVE_TAG -# define V_ASN1_APP_CHOOSE -2/* let the recipient choose */ -# define V_ASN1_OTHER -3/* used in ASN1_TYPE */ -# define V_ASN1_ANY -4/* used in ASN1 template code */ +# define V_ASN1_APP_CHOOSE -2 /* let the recipient choose */ +# define V_ASN1_OTHER -3 /* used in ASN1_TYPE */ +# define V_ASN1_ANY -4 /* used in ASN1 template code */ # define V_ASN1_UNDEF -1 /* ASN.1 tag values */ # define V_ASN1_EOC 0 -# define V_ASN1_BOOLEAN 1 /**/ +# define V_ASN1_BOOLEAN 1 # define V_ASN1_INTEGER 2 # define V_ASN1_BIT_STRING 3 # define V_ASN1_OCTET_STRING 4 @@ -70,19 +73,19 @@ extern "C" { # define V_ASN1_UTF8STRING 12 # define V_ASN1_SEQUENCE 16 # define V_ASN1_SET 17 -# define V_ASN1_NUMERICSTRING 18 /**/ +# define V_ASN1_NUMERICSTRING 18 # define V_ASN1_PRINTABLESTRING 19 # define V_ASN1_T61STRING 20 -# define V_ASN1_TELETEXSTRING 20/* alias */ -# define V_ASN1_VIDEOTEXSTRING 21 /**/ +# define V_ASN1_TELETEXSTRING 20 /* alias */ +# define V_ASN1_VIDEOTEXSTRING 21 # define V_ASN1_IA5STRING 22 # define V_ASN1_UTCTIME 23 -# define V_ASN1_GENERALIZEDTIME 24 /**/ -# define V_ASN1_GRAPHICSTRING 25 /**/ -# define V_ASN1_ISO64STRING 26 /**/ -# define V_ASN1_VISIBLESTRING 26/* alias */ -# define V_ASN1_GENERALSTRING 27 /**/ -# define V_ASN1_UNIVERSALSTRING 28 /**/ +# define V_ASN1_GENERALIZEDTIME 24 +# define V_ASN1_GRAPHICSTRING 25 +# define V_ASN1_ISO64STRING 26 +# define V_ASN1_VISIBLESTRING 26 /* alias */ +# define V_ASN1_GENERALSTRING 27 +# define V_ASN1_UNIVERSALSTRING 28 # define V_ASN1_BMPSTRING 30 /* @@ -155,7 +158,7 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_ALGOR, X509_ALGOR, X509_ALGOR) -# define ASN1_STRING_FLAG_BITS_LEFT 0x08/* Set if 0x07 has bits left value */ +# define ASN1_STRING_FLAG_BITS_LEFT 0x08 /* Set if 0x07 has bits left value */ /* * This indicates that the ASN1_STRING is not a real value but just a place * holder for the location where indefinite length constructed data should be @@ -275,7 +278,7 @@ typedef struct ASN1_TLC_st ASN1_TLC; /* This is just an opaque pointer */ typedef struct ASN1_VALUE_st ASN1_VALUE; -/* Declare ASN1 functions: the implement macro in in asn1t.h */ +/* Declare ASN1 functions: the implement macro is in asn1t.h */ /* * The mysterious 'extern' that's passed to some macros is innocuous, @@ -368,6 +371,7 @@ typedef struct ASN1_VALUE_st ASN1_VALUE; typedef void *d2i_of_void(void **, const unsigned char **, long); typedef int i2d_of_void(const void *, unsigned char **); +typedef int OSSL_i2d_of_void_ctx(const void *, unsigned char **, void *vctx); /*- * The following macros and typedefs allow an ASN1_ITEM @@ -996,6 +1000,8 @@ int ASN1_TYPE_get_int_octetstring(const ASN1_TYPE *a, long *num, unsigned char *data, int max_len); void *ASN1_item_unpack(const ASN1_STRING *oct, const ASN1_ITEM *it); +void *ASN1_item_unpack_ex(const ASN1_STRING *oct, const ASN1_ITEM *it, + OSSL_LIB_CTX *libctx, const char *propq); ASN1_STRING *ASN1_item_pack(void *obj, const ASN1_ITEM *it, ASN1_OCTET_STRING **oct); diff --git a/deps/openssl/config/archs/aix64-gcc-as/asm_avx2/include/openssl/bio.h b/deps/openssl/config/archs/aix64-gcc-as/asm_avx2/include/openssl/bio.h index f9aa74731c833c..e02f867beb0ec0 100644 --- a/deps/openssl/config/archs/aix64-gcc-as/asm_avx2/include/openssl/bio.h +++ b/deps/openssl/config/archs/aix64-gcc-as/asm_avx2/include/openssl/bio.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/bio.h.in * - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -67,8 +67,13 @@ extern "C" { # define BIO_TYPE_DGRAM_SCTP (24|BIO_TYPE_SOURCE_SINK|BIO_TYPE_DESCRIPTOR) # endif # define BIO_TYPE_CORE_TO_PROV (25|BIO_TYPE_SOURCE_SINK) +# define BIO_TYPE_DGRAM_PAIR (26|BIO_TYPE_SOURCE_SINK) +# define BIO_TYPE_DGRAM_MEM (27|BIO_TYPE_SOURCE_SINK) +/* Custom type starting index returned by BIO_get_new_index() */ #define BIO_TYPE_START 128 +/* Custom type maximum index that can be returned by BIO_get_new_index() */ +#define BIO_TYPE_MASK 0xFF /* * BIO_FILENAME_READ|BIO_CLOSE to open or close on free. @@ -171,6 +176,31 @@ extern "C" { # define BIO_CTRL_SET_INDENT 80 # define BIO_CTRL_GET_INDENT 81 +# define BIO_CTRL_DGRAM_GET_LOCAL_ADDR_CAP 82 +# define BIO_CTRL_DGRAM_GET_LOCAL_ADDR_ENABLE 83 +# define BIO_CTRL_DGRAM_SET_LOCAL_ADDR_ENABLE 84 +# define BIO_CTRL_DGRAM_GET_EFFECTIVE_CAPS 85 +# define BIO_CTRL_DGRAM_GET_CAPS 86 +# define BIO_CTRL_DGRAM_SET_CAPS 87 +# define BIO_CTRL_DGRAM_GET_NO_TRUNC 88 +# define BIO_CTRL_DGRAM_SET_NO_TRUNC 89 + +/* + * internal BIO: + * # define BIO_CTRL_SET_KTLS_TX_ZEROCOPY_SENDFILE 90 + */ + +# define BIO_CTRL_GET_RPOLL_DESCRIPTOR 91 +# define BIO_CTRL_GET_WPOLL_DESCRIPTOR 92 +# define BIO_CTRL_DGRAM_DETECT_PEER_ADDR 93 +# define BIO_CTRL_DGRAM_SET0_LOCAL_ADDR 94 + +# define BIO_DGRAM_CAP_NONE 0U +# define BIO_DGRAM_CAP_HANDLES_SRC_ADDR (1U << 0) +# define BIO_DGRAM_CAP_HANDLES_DST_ADDR (1U << 1) +# define BIO_DGRAM_CAP_PROVIDES_SRC_ADDR (1U << 2) +# define BIO_DGRAM_CAP_PROVIDES_DST_ADDR (1U << 3) + # ifndef OPENSSL_NO_KTLS # define BIO_get_ktls_send(b) \ (BIO_ctrl(b, BIO_CTRL_GET_KTLS_SEND, 0, NULL) > 0) @@ -208,7 +238,7 @@ extern "C" { # define BIO_FLAGS_NONCLEAR_RST 0x400 # define BIO_FLAGS_IN_EOF 0x800 -/* the BIO FLAGS values 0x1000 to 0x4000 are reserved for internal KTLS flags */ +/* the BIO FLAGS values 0x1000 to 0x8000 are reserved for internal KTLS flags */ typedef union bio_addr_st BIO_ADDR; typedef struct bio_addrinfo_st BIO_ADDRINFO; @@ -256,12 +286,14 @@ void BIO_clear_flags(BIO *b, int flags); # define BIO_RR_ACCEPT 0x03 /* These are passed by the BIO callback */ -# define BIO_CB_FREE 0x01 -# define BIO_CB_READ 0x02 -# define BIO_CB_WRITE 0x03 -# define BIO_CB_PUTS 0x04 -# define BIO_CB_GETS 0x05 -# define BIO_CB_CTRL 0x06 +# define BIO_CB_FREE 0x01 +# define BIO_CB_READ 0x02 +# define BIO_CB_WRITE 0x03 +# define BIO_CB_PUTS 0x04 +# define BIO_CB_GETS 0x05 +# define BIO_CB_CTRL 0x06 +# define BIO_CB_RECVMMSG 0x07 +# define BIO_CB_SENDMMSG 0x08 /* * The callback is called before and after the underling operation, The @@ -362,6 +394,36 @@ struct bio_dgram_sctp_prinfo { }; # endif +/* BIO_sendmmsg/BIO_recvmmsg-related definitions */ +typedef struct bio_msg_st { + void *data; + size_t data_len; + BIO_ADDR *peer, *local; + uint64_t flags; +} BIO_MSG; + +typedef struct bio_mmsg_cb_args_st { + BIO_MSG *msg; + size_t stride, num_msg; + uint64_t flags; + size_t *msgs_processed; +} BIO_MMSG_CB_ARGS; + +#define BIO_POLL_DESCRIPTOR_TYPE_NONE 0 +#define BIO_POLL_DESCRIPTOR_TYPE_SOCK_FD 1 +#define BIO_POLL_DESCRIPTOR_TYPE_SSL 2 +#define BIO_POLL_DESCRIPTOR_CUSTOM_START 8192 + +typedef struct bio_poll_descriptor_st { + uint32_t type; + union { + int fd; + void *custom; + uintptr_t custom_ui; + SSL *ssl; + } value; +} BIO_POLL_DESCRIPTOR; + /* * #define BIO_CONN_get_param_hostname BIO_ctrl */ @@ -428,10 +490,17 @@ struct bio_dgram_sctp_prinfo { # define BIO_C_SET_CONNECT_MODE 155 +# define BIO_C_SET_TFO 156 /* like BIO_C_SET_NBIO */ + +# define BIO_C_SET_SOCK_TYPE 157 +# define BIO_C_GET_SOCK_TYPE 158 +# define BIO_C_GET_DGRAM_BIO 159 + # define BIO_set_app_data(s,arg) BIO_set_ex_data(s,0,arg) # define BIO_get_app_data(s) BIO_get_ex_data(s,0) -# define BIO_set_nbio(b,n) BIO_ctrl(b,BIO_C_SET_NBIO,(n),NULL) +# define BIO_set_nbio(b,n) BIO_ctrl(b,BIO_C_SET_NBIO,(n),NULL) +# define BIO_set_tfo(b,n) BIO_ctrl(b,BIO_C_SET_TFO,(n),NULL) # ifndef OPENSSL_NO_SOCK /* IP families we support, for BIO_s_connect() and BIO_s_accept() */ @@ -452,7 +521,11 @@ struct bio_dgram_sctp_prinfo { # define BIO_get_conn_port(b) ((const char *)BIO_ptr_ctrl(b,BIO_C_GET_CONNECT,1)) # define BIO_get_conn_address(b) ((const BIO_ADDR *)BIO_ptr_ctrl(b,BIO_C_GET_CONNECT,2)) # define BIO_get_conn_ip_family(b) BIO_ctrl(b,BIO_C_GET_CONNECT,3,NULL) +# define BIO_get_conn_mode(b) BIO_ctrl(b,BIO_C_GET_CONNECT,4,NULL) # define BIO_set_conn_mode(b,n) BIO_ctrl(b,BIO_C_SET_CONNECT_MODE,(n),NULL) +# define BIO_set_sock_type(b,t) BIO_ctrl(b,BIO_C_SET_SOCK_TYPE,(t),NULL) +# define BIO_get_sock_type(b) BIO_ctrl(b,BIO_C_GET_SOCK_TYPE,0,NULL) +# define BIO_get0_dgram_bio(b, p) BIO_ctrl(b,BIO_C_GET_DGRAM_BIO,0,(void *)(BIO **)(p)) /* BIO_s_accept() */ # define BIO_set_accept_name(b,name) BIO_ctrl(b,BIO_C_SET_ACCEPT,0, \ @@ -469,6 +542,7 @@ struct bio_dgram_sctp_prinfo { (char *)(bio)) # define BIO_set_accept_ip_family(b,f) BIO_int_ctrl(b,BIO_C_SET_ACCEPT,4,f) # define BIO_get_accept_ip_family(b) BIO_ctrl(b,BIO_C_GET_ACCEPT,4,NULL) +# define BIO_set_tfo_accept(b,n) BIO_ctrl(b,BIO_C_SET_ACCEPT,5,(n)?(void *)"a":NULL) /* Aliases kept for backward compatibility */ # define BIO_BIND_NORMAL 0 @@ -596,8 +670,32 @@ int BIO_ctrl_reset_read_request(BIO *b); (int)BIO_ctrl(b, BIO_CTRL_DGRAM_GET_PEER, 0, (char *)(peer)) # define BIO_dgram_set_peer(b,peer) \ (int)BIO_ctrl(b, BIO_CTRL_DGRAM_SET_PEER, 0, (char *)(peer)) +# define BIO_dgram_detect_peer_addr(b,peer) \ + (int)BIO_ctrl(b, BIO_CTRL_DGRAM_DETECT_PEER_ADDR, 0, (char *)(peer)) # define BIO_dgram_get_mtu_overhead(b) \ (unsigned int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_MTU_OVERHEAD, 0, NULL) +# define BIO_dgram_get_local_addr_cap(b) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_LOCAL_ADDR_CAP, 0, NULL) +# define BIO_dgram_get_local_addr_enable(b, penable) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_LOCAL_ADDR_ENABLE, 0, (char *)(penable)) +# define BIO_dgram_set_local_addr_enable(b, enable) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET_LOCAL_ADDR_ENABLE, (enable), NULL) +# define BIO_dgram_get_effective_caps(b) \ + (uint32_t)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_EFFECTIVE_CAPS, 0, NULL) +# define BIO_dgram_get_caps(b) \ + (uint32_t)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_CAPS, 0, NULL) +# define BIO_dgram_set_caps(b, caps) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET_CAPS, (long)(caps), NULL) +# define BIO_dgram_get_no_trunc(b) \ + (unsigned int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_NO_TRUNC, 0, NULL) +# define BIO_dgram_set_no_trunc(b, enable) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET_NO_TRUNC, (enable), NULL) +# define BIO_dgram_get_mtu(b) \ + (unsigned int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_MTU, 0, NULL) +# define BIO_dgram_set_mtu(b, mtu) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET_MTU, (mtu), NULL) +# define BIO_dgram_set0_local_addr(b, addr) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET0_LOCAL_ADDR, 0, (addr)) /* ctrl macros for BIO_f_prefix */ # define BIO_set_prefix(b,p) BIO_ctrl((b), BIO_CTRL_SET_PREFIX, 0, (void *)(p)) @@ -640,10 +738,18 @@ void BIO_vfree(BIO *a); int BIO_up_ref(BIO *a); int BIO_read(BIO *b, void *data, int dlen); int BIO_read_ex(BIO *b, void *data, size_t dlen, size_t *readbytes); +__owur int BIO_recvmmsg(BIO *b, BIO_MSG *msg, + size_t stride, size_t num_msg, uint64_t flags, + size_t *msgs_processed); int BIO_gets(BIO *bp, char *buf, int size); int BIO_get_line(BIO *bio, char *buf, int size); int BIO_write(BIO *b, const void *data, int dlen); int BIO_write_ex(BIO *b, const void *data, size_t dlen, size_t *written); +__owur int BIO_sendmmsg(BIO *b, BIO_MSG *msg, + size_t stride, size_t num_msg, uint64_t flags, + size_t *msgs_processed); +__owur int BIO_get_rpoll_descriptor(BIO *b, BIO_POLL_DESCRIPTOR *desc); +__owur int BIO_get_wpoll_descriptor(BIO *b, BIO_POLL_DESCRIPTOR *desc); int BIO_puts(BIO *bp, const char *buf); int BIO_indent(BIO *b, int indent, int max); long BIO_ctrl(BIO *bp, int cmd, long larg, void *parg); @@ -667,6 +773,9 @@ int BIO_nwrite0(BIO *bio, char **buf); int BIO_nwrite(BIO *bio, char **buf, int num); const BIO_METHOD *BIO_s_mem(void); +# ifndef OPENSSL_NO_DGRAM +const BIO_METHOD *BIO_s_dgram_mem(void); +# endif const BIO_METHOD *BIO_s_secmem(void); BIO *BIO_new_mem_buf(const void *buf, int len); # ifndef OPENSSL_NO_SOCK @@ -686,6 +795,7 @@ const BIO_METHOD *BIO_f_nbio_test(void); const BIO_METHOD *BIO_f_prefix(void); const BIO_METHOD *BIO_s_core(void); # ifndef OPENSSL_NO_DGRAM +const BIO_METHOD *BIO_s_dgram_pair(void); const BIO_METHOD *BIO_s_datagram(void); int BIO_dgram_non_fatal_error(int error); BIO *BIO_new_dgram(int fd, int close_flag); @@ -704,6 +814,7 @@ int BIO_dgram_sctp_msg_waiting(BIO *b); # ifndef OPENSSL_NO_SOCK int BIO_sock_should_retry(int i); int BIO_sock_non_fatal_error(int error); +int BIO_err_is_non_fatal(unsigned int errcode); int BIO_socket_wait(int fd, int for_read, time_t max_time); # endif int BIO_wait(BIO *bio, time_t max_time, unsigned int nap_milliseconds); @@ -726,6 +837,8 @@ int BIO_hex_string(BIO *out, int indent, int width, const void *data, # ifndef OPENSSL_NO_SOCK BIO_ADDR *BIO_ADDR_new(void); +int BIO_ADDR_copy(BIO_ADDR *dst, const BIO_ADDR *src); +BIO_ADDR *BIO_ADDR_dup(const BIO_ADDR *ap); int BIO_ADDR_rawmake(BIO_ADDR *ap, int family, const void *where, size_t wherelen, unsigned short port); void BIO_ADDR_free(BIO_ADDR *); @@ -788,6 +901,7 @@ int BIO_sock_info(int sock, # define BIO_SOCK_KEEPALIVE 0x04 # define BIO_SOCK_NONBLOCK 0x08 # define BIO_SOCK_NODELAY 0x10 +# define BIO_SOCK_TFO 0x20 int BIO_socket(int domain, int socktype, int protocol, int options); int BIO_connect(int sock, const BIO_ADDR *addr, int options); @@ -805,6 +919,11 @@ BIO *BIO_new_fd(int fd, int close_flag); int BIO_new_bio_pair(BIO **bio1, size_t writebuf1, BIO **bio2, size_t writebuf2); +# ifndef OPENSSL_NO_DGRAM +int BIO_new_bio_dgram_pair(BIO **bio1, size_t writebuf1, + BIO **bio2, size_t writebuf2); +# endif + /* * If successful, returns 1 and in *bio1, *bio2 two BIO pair endpoints. * Otherwise returns 0 and sets *bio1 and *bio2 to NULL. Size 0 uses default @@ -849,38 +968,54 @@ ossl_bio__attr__((__format__(ossl_bio__printf__, 3, 0))); BIO_METHOD *BIO_meth_new(int type, const char *name); void BIO_meth_free(BIO_METHOD *biom); -int (*BIO_meth_get_write(const BIO_METHOD *biom)) (BIO *, const char *, int); -int (*BIO_meth_get_write_ex(const BIO_METHOD *biom)) (BIO *, const char *, size_t, - size_t *); int BIO_meth_set_write(BIO_METHOD *biom, int (*write) (BIO *, const char *, int)); int BIO_meth_set_write_ex(BIO_METHOD *biom, int (*bwrite) (BIO *, const char *, size_t, size_t *)); -int (*BIO_meth_get_read(const BIO_METHOD *biom)) (BIO *, char *, int); -int (*BIO_meth_get_read_ex(const BIO_METHOD *biom)) (BIO *, char *, size_t, size_t *); +int BIO_meth_set_sendmmsg(BIO_METHOD *biom, + int (*f) (BIO *, BIO_MSG *, size_t, size_t, + uint64_t, size_t *)); int BIO_meth_set_read(BIO_METHOD *biom, int (*read) (BIO *, char *, int)); int BIO_meth_set_read_ex(BIO_METHOD *biom, int (*bread) (BIO *, char *, size_t, size_t *)); -int (*BIO_meth_get_puts(const BIO_METHOD *biom)) (BIO *, const char *); +int BIO_meth_set_recvmmsg(BIO_METHOD *biom, + int (*f) (BIO *, BIO_MSG *, size_t, size_t, + uint64_t, size_t *)); int BIO_meth_set_puts(BIO_METHOD *biom, int (*puts) (BIO *, const char *)); -int (*BIO_meth_get_gets(const BIO_METHOD *biom)) (BIO *, char *, int); int BIO_meth_set_gets(BIO_METHOD *biom, int (*ossl_gets) (BIO *, char *, int)); -long (*BIO_meth_get_ctrl(const BIO_METHOD *biom)) (BIO *, int, long, void *); int BIO_meth_set_ctrl(BIO_METHOD *biom, long (*ctrl) (BIO *, int, long, void *)); -int (*BIO_meth_get_create(const BIO_METHOD *bion)) (BIO *); int BIO_meth_set_create(BIO_METHOD *biom, int (*create) (BIO *)); -int (*BIO_meth_get_destroy(const BIO_METHOD *biom)) (BIO *); int BIO_meth_set_destroy(BIO_METHOD *biom, int (*destroy) (BIO *)); -long (*BIO_meth_get_callback_ctrl(const BIO_METHOD *biom)) - (BIO *, int, BIO_info_cb *); int BIO_meth_set_callback_ctrl(BIO_METHOD *biom, long (*callback_ctrl) (BIO *, int, BIO_info_cb *)); - +# ifndef OPENSSL_NO_DEPRECATED_3_5 +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_write(const BIO_METHOD *biom)) (BIO *, const char *, + int); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_write_ex(const BIO_METHOD *biom)) (BIO *, const char *, + size_t, size_t *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_sendmmsg(const BIO_METHOD *biom))(BIO *, BIO_MSG *, + size_t, size_t, + uint64_t, size_t *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_read(const BIO_METHOD *biom)) (BIO *, char *, int); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_read_ex(const BIO_METHOD *biom)) (BIO *, char *, + size_t, size_t *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_recvmmsg(const BIO_METHOD *biom))(BIO *, BIO_MSG *, + size_t, size_t, + uint64_t, size_t *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_puts(const BIO_METHOD *biom)) (BIO *, const char *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_gets(const BIO_METHOD *biom)) (BIO *, char *, int); +OSSL_DEPRECATEDIN_3_5 long (*BIO_meth_get_ctrl(const BIO_METHOD *biom)) (BIO *, int, + long, void *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_create(const BIO_METHOD *bion)) (BIO *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_destroy(const BIO_METHOD *biom)) (BIO *); +OSSL_DEPRECATEDIN_3_5 long (*BIO_meth_get_callback_ctrl(const BIO_METHOD *biom)) (BIO *, int, + BIO_info_cb *); +# endif # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/aix64-gcc-as/asm_avx2/include/openssl/cmp.h b/deps/openssl/config/archs/aix64-gcc-as/asm_avx2/include/openssl/cmp.h index 49825570d8c303..05aed3029d594c 100644 --- a/deps/openssl/config/archs/aix64-gcc-as/asm_avx2/include/openssl/cmp.h +++ b/deps/openssl/config/archs/aix64-gcc-as/asm_avx2/include/openssl/cmp.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/cmp.h.in * - * Copyright 2007-2023 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2007-2024 The OpenSSL Project Authors. All Rights Reserved. * Copyright Nokia 2007-2019 * Copyright Siemens AG 2015-2019 * @@ -35,7 +35,9 @@ extern "C" { # endif -# define OSSL_CMP_PVNO 2 +# define OSSL_CMP_PVNO_2 2 +# define OSSL_CMP_PVNO_3 3 +# define OSSL_CMP_PVNO OSSL_CMP_PVNO_2 /* v2 is the default */ /*- * PKIFailureInfo ::= BIT STRING { @@ -137,7 +139,6 @@ extern "C" { # if OSSL_CMP_PKIFAILUREINFO_MAX_BIT_PATTERN > INT_MAX # error CMP_PKIFAILUREINFO_MAX bit pattern does not fit in type int # endif - typedef ASN1_BIT_STRING OSSL_CMP_PKIFAILUREINFO; # define OSSL_CMP_CTX_FAILINFO_badAlg (1 << 0) @@ -203,8 +204,8 @@ typedef ASN1_BIT_STRING OSSL_CMP_PKIFAILUREINFO; # define OSSL_CMP_PKISTATUS_revocationWarning 4 # define OSSL_CMP_PKISTATUS_revocationNotification 5 # define OSSL_CMP_PKISTATUS_keyUpdateWarning 6 - typedef ASN1_INTEGER OSSL_CMP_PKISTATUS; + DECLARE_ASN1_ITEM(OSSL_CMP_PKISTATUS) # define OSSL_CMP_CERTORENCCERT_CERTIFICATE 0 @@ -274,6 +275,46 @@ SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CMP_ITAV, OSSL_CMP_ITAV, OSSL_CMP_ITAV) #define sk_OSSL_CMP_ITAV_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_CMP_ITAV) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_CMP_ITAV_sk_type(sk), ossl_check_OSSL_CMP_ITAV_copyfunc_type(copyfunc), ossl_check_OSSL_CMP_ITAV_freefunc_type(freefunc))) #define sk_OSSL_CMP_ITAV_set_cmp_func(sk, cmp) ((sk_OSSL_CMP_ITAV_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CMP_ITAV_sk_type(sk), ossl_check_OSSL_CMP_ITAV_compfunc_type(cmp))) + +typedef struct ossl_cmp_crlstatus_st OSSL_CMP_CRLSTATUS; +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CMP_CRLSTATUS, OSSL_CMP_CRLSTATUS, OSSL_CMP_CRLSTATUS) +#define sk_OSSL_CMP_CRLSTATUS_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_value(sk, idx) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_value(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk), (idx))) +#define sk_OSSL_CMP_CRLSTATUS_new(cmp) ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_new(ossl_check_OSSL_CMP_CRLSTATUS_compfunc_type(cmp))) +#define sk_OSSL_CMP_CRLSTATUS_new_null() ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_new_null()) +#define sk_OSSL_CMP_CRLSTATUS_new_reserve(cmp, n) ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_CMP_CRLSTATUS_compfunc_type(cmp), (n))) +#define sk_OSSL_CMP_CRLSTATUS_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), (n)) +#define sk_OSSL_CMP_CRLSTATUS_free(sk) OPENSSL_sk_free(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_delete(sk, i) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_delete(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), (i))) +#define sk_OSSL_CMP_CRLSTATUS_delete_ptr(sk, ptr) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr))) +#define sk_OSSL_CMP_CRLSTATUS_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr)) +#define sk_OSSL_CMP_CRLSTATUS_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr)) +#define sk_OSSL_CMP_CRLSTATUS_pop(sk) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_pop(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk))) +#define sk_OSSL_CMP_CRLSTATUS_shift(sk) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_shift(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk))) +#define sk_OSSL_CMP_CRLSTATUS_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk),ossl_check_OSSL_CMP_CRLSTATUS_freefunc_type(freefunc)) +#define sk_OSSL_CMP_CRLSTATUS_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr), (idx)) +#define sk_OSSL_CMP_CRLSTATUS_set(sk, idx, ptr) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_set(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), (idx), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr))) +#define sk_OSSL_CMP_CRLSTATUS_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr)) +#define sk_OSSL_CMP_CRLSTATUS_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr)) +#define sk_OSSL_CMP_CRLSTATUS_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr), pnum) +#define sk_OSSL_CMP_CRLSTATUS_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_dup(sk) ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_dup(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk))) +#define sk_OSSL_CMP_CRLSTATUS_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_copyfunc_type(copyfunc), ossl_check_OSSL_CMP_CRLSTATUS_freefunc_type(freefunc))) +#define sk_OSSL_CMP_CRLSTATUS_set_cmp_func(sk, cmp) ((sk_OSSL_CMP_CRLSTATUS_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_compfunc_type(cmp))) + + +typedef OSSL_CRMF_ATTRIBUTETYPEANDVALUE OSSL_CMP_ATAV; +# define OSSL_CMP_ATAV_free OSSL_CRMF_ATTRIBUTETYPEANDVALUE_free +typedef STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) OSSL_CMP_ATAVS; +DECLARE_ASN1_FUNCTIONS(OSSL_CMP_ATAVS) +# define stack_st_OSSL_CMP_ATAV stack_st_OSSL_CRMF_ATTRIBUTETYPEANDVALUE +# define sk_OSSL_CMP_ATAV_num sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_num +# define sk_OSSL_CMP_ATAV_value sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_value +# define sk_OSSL_CMP_ATAV_push sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_push +# define sk_OSSL_CMP_ATAV_pop_free sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_pop_free + typedef struct ossl_cmp_revrepcontent_st OSSL_CMP_REVREPCONTENT; typedef struct ossl_cmp_pkisi_st OSSL_CMP_PKISI; DECLARE_ASN1_FUNCTIONS(OSSL_CMP_PKISI) @@ -375,21 +416,75 @@ void OSSL_CMP_ITAV_set0(OSSL_CMP_ITAV *itav, ASN1_OBJECT *type, ASN1_TYPE *value); ASN1_OBJECT *OSSL_CMP_ITAV_get0_type(const OSSL_CMP_ITAV *itav); ASN1_TYPE *OSSL_CMP_ITAV_get0_value(const OSSL_CMP_ITAV *itav); -int OSSL_CMP_ITAV_push0_stack_item(STACK_OF(OSSL_CMP_ITAV) **itav_sk_p, +int OSSL_CMP_ITAV_push0_stack_item(STACK_OF(OSSL_CMP_ITAV) **sk_p, OSSL_CMP_ITAV *itav); void OSSL_CMP_ITAV_free(OSSL_CMP_ITAV *itav); + +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new0_certProfile(STACK_OF(ASN1_UTF8STRING) + *certProfile); +int OSSL_CMP_ITAV_get0_certProfile(const OSSL_CMP_ITAV *itav, + STACK_OF(ASN1_UTF8STRING) **out); +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new_caCerts(const STACK_OF(X509) *caCerts); +int OSSL_CMP_ITAV_get0_caCerts(const OSSL_CMP_ITAV *itav, STACK_OF(X509) **out); + +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new_rootCaCert(const X509 *rootCaCert); +int OSSL_CMP_ITAV_get0_rootCaCert(const OSSL_CMP_ITAV *itav, X509 **out); +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new_rootCaKeyUpdate(const X509 *newWithNew, + const X509 *newWithOld, + const X509 *oldWithNew); +int OSSL_CMP_ITAV_get0_rootCaKeyUpdate(const OSSL_CMP_ITAV *itav, + X509 **newWithNew, + X509 **newWithOld, + X509 **oldWithNew); + +OSSL_CMP_CRLSTATUS *OSSL_CMP_CRLSTATUS_create(const X509_CRL *crl, + const X509 *cert, int only_DN); +OSSL_CMP_CRLSTATUS *OSSL_CMP_CRLSTATUS_new1(const DIST_POINT_NAME *dpn, + const GENERAL_NAMES *issuer, + const ASN1_TIME *thisUpdate); +int OSSL_CMP_CRLSTATUS_get0(const OSSL_CMP_CRLSTATUS *crlstatus, + DIST_POINT_NAME **dpn, GENERAL_NAMES **issuer, + ASN1_TIME **thisUpdate); +void OSSL_CMP_CRLSTATUS_free(OSSL_CMP_CRLSTATUS *crlstatus); +OSSL_CMP_ITAV +*OSSL_CMP_ITAV_new0_crlStatusList(STACK_OF(OSSL_CMP_CRLSTATUS) *crlStatusList); +int OSSL_CMP_ITAV_get0_crlStatusList(const OSSL_CMP_ITAV *itav, + STACK_OF(OSSL_CMP_CRLSTATUS) **out); +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new_crls(const X509_CRL *crls); +int OSSL_CMP_ITAV_get0_crls(const OSSL_CMP_ITAV *it, STACK_OF(X509_CRL) **out); +OSSL_CMP_ITAV +*OSSL_CMP_ITAV_new0_certReqTemplate(OSSL_CRMF_CERTTEMPLATE *certTemplate, + OSSL_CMP_ATAVS *keySpec); +int OSSL_CMP_ITAV_get1_certReqTemplate(const OSSL_CMP_ITAV *itav, + OSSL_CRMF_CERTTEMPLATE **certTemplate, + OSSL_CMP_ATAVS **keySpec); + +OSSL_CMP_ATAV *OSSL_CMP_ATAV_create(ASN1_OBJECT *type, ASN1_TYPE *value); +void OSSL_CMP_ATAV_set0(OSSL_CMP_ATAV *itav, ASN1_OBJECT *type, + ASN1_TYPE *value); +ASN1_OBJECT *OSSL_CMP_ATAV_get0_type(const OSSL_CMP_ATAV *itav); +ASN1_TYPE *OSSL_CMP_ATAV_get0_value(const OSSL_CMP_ATAV *itav); +OSSL_CMP_ATAV *OSSL_CMP_ATAV_new_algId(const X509_ALGOR *alg); +X509_ALGOR *OSSL_CMP_ATAV_get0_algId(const OSSL_CMP_ATAV *atav); +OSSL_CMP_ATAV *OSSL_CMP_ATAV_new_rsaKeyLen(int len); +int OSSL_CMP_ATAV_get_rsaKeyLen(const OSSL_CMP_ATAV *atav); +int OSSL_CMP_ATAV_push1(OSSL_CMP_ATAVS **sk_p, const OSSL_CMP_ATAV *atav); + void OSSL_CMP_MSG_free(OSSL_CMP_MSG *msg); /* from cmp_ctx.c */ OSSL_CMP_CTX *OSSL_CMP_CTX_new(OSSL_LIB_CTX *libctx, const char *propq); void OSSL_CMP_CTX_free(OSSL_CMP_CTX *ctx); int OSSL_CMP_CTX_reinit(OSSL_CMP_CTX *ctx); +OSSL_LIB_CTX *OSSL_CMP_CTX_get0_libctx(const OSSL_CMP_CTX *ctx); +const char *OSSL_CMP_CTX_get0_propq(const OSSL_CMP_CTX *ctx); /* CMP general options: */ # define OSSL_CMP_OPT_LOG_VERBOSITY 0 /* CMP transfer options: */ -# define OSSL_CMP_OPT_KEEP_ALIVE 10 -# define OSSL_CMP_OPT_MSG_TIMEOUT 11 +# define OSSL_CMP_OPT_KEEP_ALIVE 10 +# define OSSL_CMP_OPT_MSG_TIMEOUT 11 # define OSSL_CMP_OPT_TOTAL_TIMEOUT 12 +# define OSSL_CMP_OPT_USE_TLS 13 /* CMP request options: */ # define OSSL_CMP_OPT_VALIDITY_DAYS 20 # define OSSL_CMP_OPT_SUBJECTALTNAME_NODEFAULT 21 @@ -407,6 +502,7 @@ int OSSL_CMP_CTX_reinit(OSSL_CMP_CTX *ctx); # define OSSL_CMP_OPT_DIGEST_ALGNID 34 # define OSSL_CMP_OPT_IGNORE_KEYUSAGE 35 # define OSSL_CMP_OPT_PERMIT_TA_IN_EXTRACERTS_FOR_IR 36 +# define OSSL_CMP_OPT_NO_CACHE_EXTRACERTS 37 int OSSL_CMP_CTX_set_option(OSSL_CMP_CTX *ctx, int opt, int val); int OSSL_CMP_CTX_get_option(const OSSL_CMP_CTX *ctx, int opt); /* CMP-specific callback for logging and outputting the error queue: */ @@ -420,9 +516,11 @@ int OSSL_CMP_CTX_set1_server(OSSL_CMP_CTX *ctx, const char *address); int OSSL_CMP_CTX_set_serverPort(OSSL_CMP_CTX *ctx, int port); int OSSL_CMP_CTX_set1_proxy(OSSL_CMP_CTX *ctx, const char *name); int OSSL_CMP_CTX_set1_no_proxy(OSSL_CMP_CTX *ctx, const char *names); +# ifndef OPENSSL_NO_HTTP int OSSL_CMP_CTX_set_http_cb(OSSL_CMP_CTX *ctx, OSSL_HTTP_bio_cb_t cb); int OSSL_CMP_CTX_set_http_cb_arg(OSSL_CMP_CTX *ctx, void *arg); void *OSSL_CMP_CTX_get_http_cb_arg(const OSSL_CMP_CTX *ctx); +# endif typedef OSSL_CMP_MSG *(*OSSL_CMP_transfer_cb_t) (OSSL_CMP_CTX *ctx, const OSSL_CMP_MSG *req); int OSSL_CMP_CTX_set_transfer_cb(OSSL_CMP_CTX *ctx, OSSL_CMP_transfer_cb_t cb); @@ -432,7 +530,9 @@ void *OSSL_CMP_CTX_get_transfer_cb_arg(const OSSL_CMP_CTX *ctx); int OSSL_CMP_CTX_set1_srvCert(OSSL_CMP_CTX *ctx, X509 *cert); int OSSL_CMP_CTX_set1_expected_sender(OSSL_CMP_CTX *ctx, const X509_NAME *name); int OSSL_CMP_CTX_set0_trustedStore(OSSL_CMP_CTX *ctx, X509_STORE *store); +# define OSSL_CMP_CTX_set0_trusted OSSL_CMP_CTX_set0_trustedStore X509_STORE *OSSL_CMP_CTX_get0_trustedStore(const OSSL_CMP_CTX *ctx); +# define OSSL_CMP_CTX_get0_trusted OSSL_CMP_CTX_get0_trustedStore int OSSL_CMP_CTX_set1_untrusted(OSSL_CMP_CTX *ctx, STACK_OF(X509) *certs); STACK_OF(X509) *OSSL_CMP_CTX_get0_untrusted(const OSSL_CMP_CTX *ctx); /* client authentication: */ @@ -448,12 +548,15 @@ int OSSL_CMP_CTX_set1_secretValue(OSSL_CMP_CTX *ctx, int OSSL_CMP_CTX_set1_recipient(OSSL_CMP_CTX *ctx, const X509_NAME *name); int OSSL_CMP_CTX_push0_geninfo_ITAV(OSSL_CMP_CTX *ctx, OSSL_CMP_ITAV *itav); int OSSL_CMP_CTX_reset_geninfo_ITAVs(OSSL_CMP_CTX *ctx); +STACK_OF(OSSL_CMP_ITAV) + *OSSL_CMP_CTX_get0_geninfo_ITAVs(const OSSL_CMP_CTX *ctx); int OSSL_CMP_CTX_set1_extraCertsOut(OSSL_CMP_CTX *ctx, STACK_OF(X509) *extraCertsOut); /* certificate template: */ int OSSL_CMP_CTX_set0_newPkey(OSSL_CMP_CTX *ctx, int priv, EVP_PKEY *pkey); EVP_PKEY *OSSL_CMP_CTX_get0_newPkey(const OSSL_CMP_CTX *ctx, int priv); int OSSL_CMP_CTX_set1_issuer(OSSL_CMP_CTX *ctx, const X509_NAME *name); +int OSSL_CMP_CTX_set1_serialNumber(OSSL_CMP_CTX *ctx, const ASN1_INTEGER *sn); int OSSL_CMP_CTX_set1_subjectName(OSSL_CMP_CTX *ctx, const X509_NAME *name); int OSSL_CMP_CTX_push1_subjectAltName(OSSL_CMP_CTX *ctx, const GENERAL_NAME *name); @@ -477,6 +580,7 @@ int OSSL_CMP_CTX_get_status(const OSSL_CMP_CTX *ctx); OSSL_CMP_PKIFREETEXT *OSSL_CMP_CTX_get0_statusString(const OSSL_CMP_CTX *ctx); int OSSL_CMP_CTX_get_failInfoCode(const OSSL_CMP_CTX *ctx); # define OSSL_CMP_PKISI_BUFLEN 1024 +X509 *OSSL_CMP_CTX_get0_validatedSrvCert(const OSSL_CMP_CTX *ctx); X509 *OSSL_CMP_CTX_get0_newCert(const OSSL_CMP_CTX *ctx); STACK_OF(X509) *OSSL_CMP_CTX_get1_newChain(const OSSL_CMP_CTX *ctx); STACK_OF(X509) *OSSL_CMP_CTX_get1_caPubs(const OSSL_CMP_CTX *ctx); @@ -498,10 +602,13 @@ OSSL_CMP_STATUSINFO_new(int status, int fail_info, const char *text); ASN1_OCTET_STRING *OSSL_CMP_HDR_get0_transactionID(const OSSL_CMP_PKIHEADER *hdr); ASN1_OCTET_STRING *OSSL_CMP_HDR_get0_recipNonce(const OSSL_CMP_PKIHEADER *hdr); +STACK_OF(OSSL_CMP_ITAV) + *OSSL_CMP_HDR_get0_geninfo_ITAVs(const OSSL_CMP_PKIHEADER *hdr); /* from cmp_msg.c */ OSSL_CMP_PKIHEADER *OSSL_CMP_MSG_get0_header(const OSSL_CMP_MSG *msg); int OSSL_CMP_MSG_get_bodytype(const OSSL_CMP_MSG *msg); +X509_PUBKEY *OSSL_CMP_MSG_get0_certreq_publickey(const OSSL_CMP_MSG *msg); int OSSL_CMP_MSG_update_transactionID(OSSL_CMP_CTX *ctx, OSSL_CMP_MSG *msg); int OSSL_CMP_MSG_update_recipNonce(OSSL_CMP_CTX *ctx, OSSL_CMP_MSG *msg); OSSL_CRMF_MSG *OSSL_CMP_CTX_setup_CRM(OSSL_CMP_CTX *ctx, int for_KUR, int rid); @@ -517,8 +624,10 @@ int OSSL_CMP_validate_cert_path(const OSSL_CMP_CTX *ctx, X509_STORE *trusted_store, X509 *cert); /* from cmp_http.c */ +# ifndef OPENSSL_NO_HTTP OSSL_CMP_MSG *OSSL_CMP_MSG_http_perform(OSSL_CMP_CTX *ctx, const OSSL_CMP_MSG *req); +# endif /* from cmp_server.c */ typedef struct ossl_cmp_srv_ctx_st OSSL_CMP_SRV_CTX; @@ -561,6 +670,13 @@ int OSSL_CMP_SRV_CTX_init(OSSL_CMP_SRV_CTX *srv_ctx, void *custom_ctx, OSSL_CMP_SRV_error_cb_t process_error, OSSL_CMP_SRV_certConf_cb_t process_certConf, OSSL_CMP_SRV_pollReq_cb_t process_pollReq); +typedef int (*OSSL_CMP_SRV_delayed_delivery_cb_t)(OSSL_CMP_SRV_CTX *srv_ctx, + const OSSL_CMP_MSG *req); +typedef int (*OSSL_CMP_SRV_clean_transaction_cb_t)(OSSL_CMP_SRV_CTX *srv_ctx, + const ASN1_OCTET_STRING *id); +int OSSL_CMP_SRV_CTX_init_trans(OSSL_CMP_SRV_CTX *srv_ctx, + OSSL_CMP_SRV_delayed_delivery_cb_t delay, + OSSL_CMP_SRV_clean_transaction_cb_t clean); OSSL_CMP_CTX *OSSL_CMP_SRV_CTX_get0_cmp_ctx(const OSSL_CMP_SRV_CTX *srv_ctx); void *OSSL_CMP_SRV_CTX_get0_custom_ctx(const OSSL_CMP_SRV_CTX *srv_ctx); int OSSL_CMP_SRV_CTX_set_send_unprotected_errors(OSSL_CMP_SRV_CTX *srv_ctx, @@ -577,6 +693,8 @@ X509 *OSSL_CMP_exec_certreq(OSSL_CMP_CTX *ctx, int req_type, # define OSSL_CMP_CR 2 # define OSSL_CMP_P10CR 4 # define OSSL_CMP_KUR 7 +# define OSSL_CMP_GENM 21 +# define OSSL_CMP_ERROR 23 # define OSSL_CMP_exec_IR_ses(ctx) \ OSSL_CMP_exec_certreq(ctx, OSSL_CMP_IR, NULL) # define OSSL_CMP_exec_CR_ses(ctx) \ @@ -590,6 +708,18 @@ int OSSL_CMP_try_certreq(OSSL_CMP_CTX *ctx, int req_type, int OSSL_CMP_exec_RR_ses(OSSL_CMP_CTX *ctx); STACK_OF(OSSL_CMP_ITAV) *OSSL_CMP_exec_GENM_ses(OSSL_CMP_CTX *ctx); +/* from cmp_genm.c */ +int OSSL_CMP_get1_caCerts(OSSL_CMP_CTX *ctx, STACK_OF(X509) **out); +int OSSL_CMP_get1_rootCaKeyUpdate(OSSL_CMP_CTX *ctx, + const X509 *oldWithOld, X509 **newWithNew, + X509 **newWithOld, X509 **oldWithNew); +int OSSL_CMP_get1_crlUpdate(OSSL_CMP_CTX *ctx, const X509 *crlcert, + const X509_CRL *last_crl, + X509_CRL **crl); +int OSSL_CMP_get1_certReqTemplate(OSSL_CMP_CTX *ctx, + OSSL_CRMF_CERTTEMPLATE **certTemplate, + OSSL_CMP_ATAVS **keySpec); + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/aix64-gcc-as/asm_avx2/include/openssl/cms.h b/deps/openssl/config/archs/aix64-gcc-as/asm_avx2/include/openssl/cms.h index 3b453e6a2187a2..63afab563557b0 100644 --- a/deps/openssl/config/archs/aix64-gcc-as/asm_avx2/include/openssl/cms.h +++ b/deps/openssl/config/archs/aix64-gcc-as/asm_avx2/include/openssl/cms.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/cms.h.in * - * Copyright 2008-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2008-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -31,8 +31,10 @@ extern "C" { # endif +typedef struct CMS_EnvelopedData_st CMS_EnvelopedData; typedef struct CMS_ContentInfo_st CMS_ContentInfo; typedef struct CMS_SignerInfo_st CMS_SignerInfo; +typedef struct CMS_SignedData_st CMS_SignedData; typedef struct CMS_CertificateChoices CMS_CertificateChoices; typedef struct CMS_RevocationInfoChoice_st CMS_RevocationInfoChoice; typedef struct CMS_RecipientInfo_st CMS_RecipientInfo; @@ -147,10 +149,14 @@ SKM_DEFINE_STACK_OF_INTERNAL(CMS_RevocationInfoChoice, CMS_RevocationInfoChoice, #define sk_CMS_RevocationInfoChoice_set_cmp_func(sk, cmp) ((sk_CMS_RevocationInfoChoice_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_CMS_RevocationInfoChoice_sk_type(sk), ossl_check_CMS_RevocationInfoChoice_compfunc_type(cmp))) +DECLARE_ASN1_ITEM(CMS_EnvelopedData) +DECLARE_ASN1_ALLOC_FUNCTIONS(CMS_SignedData) DECLARE_ASN1_FUNCTIONS(CMS_ContentInfo) DECLARE_ASN1_FUNCTIONS(CMS_ReceiptRequest) DECLARE_ASN1_PRINT_FUNCTION(CMS_ContentInfo) +DECLARE_ASN1_DUP_FUNCTION(CMS_EnvelopedData) + CMS_ContentInfo *CMS_ContentInfo_new_ex(OSSL_LIB_CTX *libctx, const char *propq); # define CMS_SIGNERINFO_ISSUER_SERIAL 0 @@ -190,6 +196,7 @@ CMS_ContentInfo *CMS_ContentInfo_new_ex(OSSL_LIB_CTX *libctx, const char *propq) # define CMS_ASCIICRLF 0x80000 # define CMS_CADES 0x100000 # define CMS_USE_ORIGINATOR_KEYID 0x200000 +# define CMS_NO_SIGNING_TIME 0x400000 const ASN1_OBJECT *CMS_get0_type(const CMS_ContentInfo *cms); @@ -217,13 +224,16 @@ int SMIME_write_CMS(BIO *bio, CMS_ContentInfo *cms, BIO *data, int flags); int CMS_final(CMS_ContentInfo *cms, BIO *data, BIO *dcont, unsigned int flags); +int CMS_final_digest(CMS_ContentInfo *cms, + const unsigned char *md, unsigned int mdlen, BIO *dcont, + unsigned int flags); CMS_ContentInfo *CMS_sign(X509 *signcert, EVP_PKEY *pkey, STACK_OF(X509) *certs, BIO *data, unsigned int flags); CMS_ContentInfo *CMS_sign_ex(X509 *signcert, EVP_PKEY *pkey, STACK_OF(X509) *certs, BIO *data, - unsigned int flags, OSSL_LIB_CTX *ctx, + unsigned int flags, OSSL_LIB_CTX *libctx, const char *propq); CMS_ContentInfo *CMS_sign_receipt(CMS_SignerInfo *si, @@ -233,27 +243,26 @@ CMS_ContentInfo *CMS_sign_receipt(CMS_SignerInfo *si, int CMS_data(CMS_ContentInfo *cms, BIO *out, unsigned int flags); CMS_ContentInfo *CMS_data_create(BIO *in, unsigned int flags); CMS_ContentInfo *CMS_data_create_ex(BIO *in, unsigned int flags, - OSSL_LIB_CTX *ctx, const char *propq); + OSSL_LIB_CTX *libctx, const char *propq); int CMS_digest_verify(CMS_ContentInfo *cms, BIO *dcont, BIO *out, unsigned int flags); CMS_ContentInfo *CMS_digest_create(BIO *in, const EVP_MD *md, unsigned int flags); CMS_ContentInfo *CMS_digest_create_ex(BIO *in, const EVP_MD *md, - unsigned int flags, OSSL_LIB_CTX *ctx, + unsigned int flags, OSSL_LIB_CTX *libctx, const char *propq); int CMS_EncryptedData_decrypt(CMS_ContentInfo *cms, const unsigned char *key, size_t keylen, BIO *dcont, BIO *out, unsigned int flags); - CMS_ContentInfo *CMS_EncryptedData_encrypt(BIO *in, const EVP_CIPHER *cipher, const unsigned char *key, size_t keylen, unsigned int flags); CMS_ContentInfo *CMS_EncryptedData_encrypt_ex(BIO *in, const EVP_CIPHER *cipher, const unsigned char *key, size_t keylen, unsigned int flags, - OSSL_LIB_CTX *ctx, + OSSL_LIB_CTX *libctx, const char *propq); int CMS_EncryptedData_set1_key(CMS_ContentInfo *cms, const EVP_CIPHER *ciph, @@ -272,7 +281,7 @@ CMS_ContentInfo *CMS_encrypt(STACK_OF(X509) *certs, BIO *in, const EVP_CIPHER *cipher, unsigned int flags); CMS_ContentInfo *CMS_encrypt_ex(STACK_OF(X509) *certs, BIO *in, const EVP_CIPHER *cipher, unsigned int flags, - OSSL_LIB_CTX *ctx, const char *propq); + OSSL_LIB_CTX *libctx, const char *propq); int CMS_decrypt(CMS_ContentInfo *cms, EVP_PKEY *pkey, X509 *cert, BIO *dcont, BIO *out, unsigned int flags); @@ -291,12 +300,16 @@ int CMS_RecipientInfo_type(CMS_RecipientInfo *ri); EVP_PKEY_CTX *CMS_RecipientInfo_get0_pkey_ctx(CMS_RecipientInfo *ri); CMS_ContentInfo *CMS_AuthEnvelopedData_create(const EVP_CIPHER *cipher); CMS_ContentInfo * -CMS_AuthEnvelopedData_create_ex(const EVP_CIPHER *cipher, OSSL_LIB_CTX *ctx, +CMS_AuthEnvelopedData_create_ex(const EVP_CIPHER *cipher, OSSL_LIB_CTX *libctx, const char *propq); CMS_ContentInfo *CMS_EnvelopedData_create(const EVP_CIPHER *cipher); CMS_ContentInfo *CMS_EnvelopedData_create_ex(const EVP_CIPHER *cipher, - OSSL_LIB_CTX *ctx, + OSSL_LIB_CTX *libctx, const char *propq); +BIO *CMS_EnvelopedData_decrypt(CMS_EnvelopedData *env, BIO *detached_data, + EVP_PKEY *pkey, X509 *cert, + ASN1_OCTET_STRING *secret, unsigned int flags, + OSSL_LIB_CTX *libctx, const char *propq); CMS_RecipientInfo *CMS_add1_recipient_cert(CMS_ContentInfo *cms, X509 *recip, unsigned int flags); @@ -385,6 +398,11 @@ ASN1_OCTET_STRING *CMS_SignerInfo_get0_signature(CMS_SignerInfo *si); int CMS_SignerInfo_sign(CMS_SignerInfo *si); int CMS_SignerInfo_verify(CMS_SignerInfo *si); int CMS_SignerInfo_verify_content(CMS_SignerInfo *si, BIO *chain); +BIO *CMS_SignedData_verify(CMS_SignedData *sd, BIO *detached_data, + STACK_OF(X509) *scerts, X509_STORE *store, + STACK_OF(X509) *extra, STACK_OF(X509_CRL) *crls, + unsigned int flags, + OSSL_LIB_CTX *libctx, const char *propq); int CMS_add_smimecap(CMS_SignerInfo *si, STACK_OF(X509_ALGOR) *algs); int CMS_add_simple_smimecap(STACK_OF(X509_ALGOR) **algs, @@ -441,7 +459,7 @@ CMS_ReceiptRequest *CMS_ReceiptRequest_create0_ex( unsigned char *id, int idlen, int allorfirst, STACK_OF(GENERAL_NAMES) *receiptList, STACK_OF(GENERAL_NAMES) *receiptsTo, - OSSL_LIB_CTX *ctx); + OSSL_LIB_CTX *libctx); int CMS_add1_ReceiptRequest(CMS_SignerInfo *si, CMS_ReceiptRequest *rr); void CMS_ReceiptRequest_get0_values(CMS_ReceiptRequest *rr, diff --git a/deps/openssl/config/archs/aix64-gcc-as/asm_avx2/include/openssl/comp.h b/deps/openssl/config/archs/aix64-gcc-as/asm_avx2/include/openssl/comp.h new file mode 100644 index 00000000000000..90e39511fe8d28 --- /dev/null +++ b/deps/openssl/config/archs/aix64-gcc-as/asm_avx2/include/openssl/comp.h @@ -0,0 +1,98 @@ +/* + * Copyright 2015-2024 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + + +#ifndef OPENSSL_COMP_H +# define OPENSSL_COMP_H +# pragma once + +# include +# ifndef OPENSSL_NO_DEPRECATED_3_0 +# define HEADER_COMP_H +# endif + +# include + +# include +# include +# ifdef __cplusplus +extern "C" { +# endif + + + +# ifndef OPENSSL_NO_COMP + +COMP_CTX *COMP_CTX_new(COMP_METHOD *meth); +const COMP_METHOD *COMP_CTX_get_method(const COMP_CTX *ctx); +int COMP_CTX_get_type(const COMP_CTX* comp); +int COMP_get_type(const COMP_METHOD *meth); +const char *COMP_get_name(const COMP_METHOD *meth); +void COMP_CTX_free(COMP_CTX *ctx); + +int COMP_compress_block(COMP_CTX *ctx, unsigned char *out, int olen, + unsigned char *in, int ilen); +int COMP_expand_block(COMP_CTX *ctx, unsigned char *out, int olen, + unsigned char *in, int ilen); + +COMP_METHOD *COMP_zlib(void); +COMP_METHOD *COMP_zlib_oneshot(void); +COMP_METHOD *COMP_brotli(void); +COMP_METHOD *COMP_brotli_oneshot(void); +COMP_METHOD *COMP_zstd(void); +COMP_METHOD *COMP_zstd_oneshot(void); + +# ifndef OPENSSL_NO_DEPRECATED_1_1_0 +# define COMP_zlib_cleanup() while(0) continue +# endif + +# ifdef OPENSSL_BIO_H +const BIO_METHOD *BIO_f_zlib(void); +const BIO_METHOD *BIO_f_brotli(void); +const BIO_METHOD *BIO_f_zstd(void); +# endif + +# endif + +typedef struct ssl_comp_st SSL_COMP; + +SKM_DEFINE_STACK_OF_INTERNAL(SSL_COMP, SSL_COMP, SSL_COMP) +#define sk_SSL_COMP_num(sk) OPENSSL_sk_num(ossl_check_const_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_value(sk, idx) ((SSL_COMP *)OPENSSL_sk_value(ossl_check_const_SSL_COMP_sk_type(sk), (idx))) +#define sk_SSL_COMP_new(cmp) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new(ossl_check_SSL_COMP_compfunc_type(cmp))) +#define sk_SSL_COMP_new_null() ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new_null()) +#define sk_SSL_COMP_new_reserve(cmp, n) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new_reserve(ossl_check_SSL_COMP_compfunc_type(cmp), (n))) +#define sk_SSL_COMP_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_SSL_COMP_sk_type(sk), (n)) +#define sk_SSL_COMP_free(sk) OPENSSL_sk_free(ossl_check_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_zero(sk) OPENSSL_sk_zero(ossl_check_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_delete(sk, i) ((SSL_COMP *)OPENSSL_sk_delete(ossl_check_SSL_COMP_sk_type(sk), (i))) +#define sk_SSL_COMP_delete_ptr(sk, ptr) ((SSL_COMP *)OPENSSL_sk_delete_ptr(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr))) +#define sk_SSL_COMP_push(sk, ptr) OPENSSL_sk_push(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) +#define sk_SSL_COMP_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) +#define sk_SSL_COMP_pop(sk) ((SSL_COMP *)OPENSSL_sk_pop(ossl_check_SSL_COMP_sk_type(sk))) +#define sk_SSL_COMP_shift(sk) ((SSL_COMP *)OPENSSL_sk_shift(ossl_check_SSL_COMP_sk_type(sk))) +#define sk_SSL_COMP_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_SSL_COMP_sk_type(sk),ossl_check_SSL_COMP_freefunc_type(freefunc)) +#define sk_SSL_COMP_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr), (idx)) +#define sk_SSL_COMP_set(sk, idx, ptr) ((SSL_COMP *)OPENSSL_sk_set(ossl_check_SSL_COMP_sk_type(sk), (idx), ossl_check_SSL_COMP_type(ptr))) +#define sk_SSL_COMP_find(sk, ptr) OPENSSL_sk_find(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) +#define sk_SSL_COMP_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) +#define sk_SSL_COMP_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr), pnum) +#define sk_SSL_COMP_sort(sk) OPENSSL_sk_sort(ossl_check_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_dup(sk) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_dup(ossl_check_const_SSL_COMP_sk_type(sk))) +#define sk_SSL_COMP_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_deep_copy(ossl_check_const_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_copyfunc_type(copyfunc), ossl_check_SSL_COMP_freefunc_type(freefunc))) +#define sk_SSL_COMP_set_cmp_func(sk, cmp) ((sk_SSL_COMP_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_compfunc_type(cmp))) + + + +# ifdef __cplusplus +} +# endif +#endif diff --git a/deps/openssl/config/archs/aix64-gcc-as/asm_avx2/include/openssl/conf.h b/deps/openssl/config/archs/aix64-gcc-as/asm_avx2/include/openssl/conf.h index 44989929f6c84a..38576290bf641b 100644 --- a/deps/openssl/config/archs/aix64-gcc-as/asm_avx2/include/openssl/conf.h +++ b/deps/openssl/config/archs/aix64-gcc-as/asm_avx2/include/openssl/conf.h @@ -27,6 +27,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -65,7 +68,7 @@ SKM_DEFINE_STACK_OF_INTERNAL(CONF_VALUE, CONF_VALUE, CONF_VALUE) #define sk_CONF_VALUE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(CONF_VALUE) *)OPENSSL_sk_deep_copy(ossl_check_const_CONF_VALUE_sk_type(sk), ossl_check_CONF_VALUE_copyfunc_type(copyfunc), ossl_check_CONF_VALUE_freefunc_type(freefunc))) #define sk_CONF_VALUE_set_cmp_func(sk, cmp) ((sk_CONF_VALUE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_CONF_VALUE_sk_type(sk), ossl_check_CONF_VALUE_compfunc_type(cmp))) DEFINE_LHASH_OF_INTERNAL(CONF_VALUE); -#define lh_CONF_VALUE_new(hfn, cmp) ((LHASH_OF(CONF_VALUE) *)OPENSSL_LH_new(ossl_check_CONF_VALUE_lh_hashfunc_type(hfn), ossl_check_CONF_VALUE_lh_compfunc_type(cmp))) +#define lh_CONF_VALUE_new(hfn, cmp) ((LHASH_OF(CONF_VALUE) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new(ossl_check_CONF_VALUE_lh_hashfunc_type(hfn), ossl_check_CONF_VALUE_lh_compfunc_type(cmp)), lh_CONF_VALUE_hash_thunk, lh_CONF_VALUE_comp_thunk, lh_CONF_VALUE_doall_thunk, lh_CONF_VALUE_doall_arg_thunk)) #define lh_CONF_VALUE_free(lh) OPENSSL_LH_free(ossl_check_CONF_VALUE_lh_type(lh)) #define lh_CONF_VALUE_flush(lh) OPENSSL_LH_flush(ossl_check_CONF_VALUE_lh_type(lh)) #define lh_CONF_VALUE_insert(lh, ptr) ((CONF_VALUE *)OPENSSL_LH_insert(ossl_check_CONF_VALUE_lh_type(lh), ossl_check_CONF_VALUE_lh_plain_type(ptr))) diff --git a/deps/openssl/config/archs/aix64-gcc-as/asm_avx2/include/openssl/configuration.h b/deps/openssl/config/archs/aix64-gcc-as/asm_avx2/include/openssl/configuration.h index 0ab00d8834b215..ac8c22a725f3d4 100644 --- a/deps/openssl/config/archs/aix64-gcc-as/asm_avx2/include/openssl/configuration.h +++ b/deps/openssl/config/archs/aix64-gcc-as/asm_avx2/include/openssl/configuration.h @@ -30,7 +30,7 @@ extern "C" { # ifndef OPENSSL_SYS_AIX # define OPENSSL_SYS_AIX 1 # endif -# define OPENSSL_CONFIGURED_API 30000 +# define OPENSSL_CONFIGURED_API 30500 # ifndef OPENSSL_RAND_SEED_OS # define OPENSSL_RAND_SEED_OS # endif @@ -43,6 +43,12 @@ extern "C" { # ifndef OPENSSL_NO_ASAN # define OPENSSL_NO_ASAN # endif +# ifndef OPENSSL_NO_BROTLI +# define OPENSSL_NO_BROTLI +# endif +# ifndef OPENSSL_NO_BROTLI_DYNAMIC +# define OPENSSL_NO_BROTLI_DYNAMIC +# endif # ifndef OPENSSL_NO_COMP # define OPENSSL_NO_COMP # endif @@ -52,6 +58,9 @@ extern "C" { # ifndef OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE # define OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE # endif +# ifndef OPENSSL_NO_DEMOS +# define OPENSSL_NO_DEMOS +# endif # ifndef OPENSSL_NO_DEVCRYPTOENG # define OPENSSL_NO_DEVCRYPTOENG # endif @@ -64,12 +73,24 @@ extern "C" { # ifndef OPENSSL_NO_EXTERNAL_TESTS # define OPENSSL_NO_EXTERNAL_TESTS # endif +# ifndef OPENSSL_NO_FIPS_JITTER +# define OPENSSL_NO_FIPS_JITTER +# endif # ifndef OPENSSL_NO_FUZZ_AFL # define OPENSSL_NO_FUZZ_AFL # endif # ifndef OPENSSL_NO_FUZZ_LIBFUZZER # define OPENSSL_NO_FUZZ_LIBFUZZER # endif +# ifndef OPENSSL_NO_H3DEMO +# define OPENSSL_NO_H3DEMO +# endif +# ifndef OPENSSL_NO_HQINTEROP +# define OPENSSL_NO_HQINTEROP +# endif +# ifndef OPENSSL_NO_JITTER +# define OPENSSL_NO_JITTER +# endif # ifndef OPENSSL_NO_KTLS # define OPENSSL_NO_KTLS # endif @@ -82,6 +103,9 @@ extern "C" { # ifndef OPENSSL_NO_MSAN # define OPENSSL_NO_MSAN # endif +# ifndef OPENSSL_NO_PIE +# define OPENSSL_NO_PIE +# endif # ifndef OPENSSL_NO_RC5 # define OPENSSL_NO_RC5 # endif @@ -94,6 +118,12 @@ extern "C" { # ifndef OPENSSL_NO_SSL3_METHOD # define OPENSSL_NO_SSL3_METHOD # endif +# ifndef OPENSSL_NO_SSLKEYLOG +# define OPENSSL_NO_SSLKEYLOG +# endif +# ifndef OPENSSL_NO_TFO +# define OPENSSL_NO_TFO +# endif # ifndef OPENSSL_NO_TRACE # define OPENSSL_NO_TRACE # endif @@ -109,6 +139,21 @@ extern "C" { # ifndef OPENSSL_NO_WEAK_SSL_CIPHERS # define OPENSSL_NO_WEAK_SSL_CIPHERS # endif +# ifndef OPENSSL_NO_WINSTORE +# define OPENSSL_NO_WINSTORE +# endif +# ifndef OPENSSL_NO_ZLIB +# define OPENSSL_NO_ZLIB +# endif +# ifndef OPENSSL_NO_ZLIB_DYNAMIC +# define OPENSSL_NO_ZLIB_DYNAMIC +# endif +# ifndef OPENSSL_NO_ZSTD +# define OPENSSL_NO_ZSTD +# endif +# ifndef OPENSSL_NO_ZSTD_DYNAMIC +# define OPENSSL_NO_ZSTD_DYNAMIC +# endif # ifndef OPENSSL_NO_DYNAMIC_ENGINE # define OPENSSL_NO_DYNAMIC_ENGINE # endif @@ -130,6 +175,12 @@ extern "C" { # define RC4_INT unsigned char +# if defined(OPENSSL_NO_COMP) || (defined(OPENSSL_NO_BROTLI) && defined(OPENSSL_NO_ZSTD) && defined(OPENSSL_NO_ZLIB)) +# define OPENSSL_NO_COMP_ALG +# else +# undef OPENSSL_NO_COMP_ALG +# endif + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/aix64-gcc-as/asm_avx2/include/openssl/core_names.h b/deps/openssl/config/archs/aix64-gcc-as/asm_avx2/include/openssl/core_names.h new file mode 100644 index 00000000000000..e93e79a52bc910 --- /dev/null +++ b/deps/openssl/config/archs/aix64-gcc-as/asm_avx2/include/openssl/core_names.h @@ -0,0 +1,575 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from include/openssl/core_names.h.in + * + * Copyright 2019-2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + +#ifndef OPENSSL_CORE_NAMES_H +# define OPENSSL_CORE_NAMES_H +# pragma once + +# ifdef __cplusplus +extern "C" { +# endif + +/* OSSL_CIPHER_PARAM_CTS_MODE Values */ +# define OSSL_CIPHER_CTS_MODE_CS1 "CS1" +# define OSSL_CIPHER_CTS_MODE_CS2 "CS2" +# define OSSL_CIPHER_CTS_MODE_CS3 "CS3" + +/* Known CIPHER names (not a complete list) */ +# define OSSL_CIPHER_NAME_AES_128_GCM_SIV "AES-128-GCM-SIV" +# define OSSL_CIPHER_NAME_AES_192_GCM_SIV "AES-192-GCM-SIV" +# define OSSL_CIPHER_NAME_AES_256_GCM_SIV "AES-256-GCM-SIV" + +/* Known DIGEST names (not a complete list) */ +# define OSSL_DIGEST_NAME_MD5 "MD5" +# define OSSL_DIGEST_NAME_MD5_SHA1 "MD5-SHA1" +# define OSSL_DIGEST_NAME_SHA1 "SHA1" +# define OSSL_DIGEST_NAME_SHA2_224 "SHA2-224" +# define OSSL_DIGEST_NAME_SHA2_256 "SHA2-256" +# define OSSL_DIGEST_NAME_SHA2_256_192 "SHA2-256/192" +# define OSSL_DIGEST_NAME_SHA2_384 "SHA2-384" +# define OSSL_DIGEST_NAME_SHA2_512 "SHA2-512" +# define OSSL_DIGEST_NAME_SHA2_512_224 "SHA2-512/224" +# define OSSL_DIGEST_NAME_SHA2_512_256 "SHA2-512/256" +# define OSSL_DIGEST_NAME_MD2 "MD2" +# define OSSL_DIGEST_NAME_MD4 "MD4" +# define OSSL_DIGEST_NAME_MDC2 "MDC2" +# define OSSL_DIGEST_NAME_RIPEMD160 "RIPEMD160" +# define OSSL_DIGEST_NAME_SHA3_224 "SHA3-224" +# define OSSL_DIGEST_NAME_SHA3_256 "SHA3-256" +# define OSSL_DIGEST_NAME_SHA3_384 "SHA3-384" +# define OSSL_DIGEST_NAME_SHA3_512 "SHA3-512" +# define OSSL_DIGEST_NAME_KECCAK_KMAC128 "KECCAK-KMAC-128" +# define OSSL_DIGEST_NAME_KECCAK_KMAC256 "KECCAK-KMAC-256" +# define OSSL_DIGEST_NAME_SM3 "SM3" + +/* Known MAC names */ +# define OSSL_MAC_NAME_BLAKE2BMAC "BLAKE2BMAC" +# define OSSL_MAC_NAME_BLAKE2SMAC "BLAKE2SMAC" +# define OSSL_MAC_NAME_CMAC "CMAC" +# define OSSL_MAC_NAME_GMAC "GMAC" +# define OSSL_MAC_NAME_HMAC "HMAC" +# define OSSL_MAC_NAME_KMAC128 "KMAC128" +# define OSSL_MAC_NAME_KMAC256 "KMAC256" +# define OSSL_MAC_NAME_POLY1305 "POLY1305" +# define OSSL_MAC_NAME_SIPHASH "SIPHASH" + +/* Known KDF names */ +# define OSSL_KDF_NAME_HKDF "HKDF" +# define OSSL_KDF_NAME_TLS1_3_KDF "TLS13-KDF" +# define OSSL_KDF_NAME_PBKDF1 "PBKDF1" +# define OSSL_KDF_NAME_PBKDF2 "PBKDF2" +# define OSSL_KDF_NAME_SCRYPT "SCRYPT" +# define OSSL_KDF_NAME_SSHKDF "SSHKDF" +# define OSSL_KDF_NAME_SSKDF "SSKDF" +# define OSSL_KDF_NAME_TLS1_PRF "TLS1-PRF" +# define OSSL_KDF_NAME_X942KDF_ASN1 "X942KDF-ASN1" +# define OSSL_KDF_NAME_X942KDF_CONCAT "X942KDF-CONCAT" +# define OSSL_KDF_NAME_X963KDF "X963KDF" +# define OSSL_KDF_NAME_KBKDF "KBKDF" +# define OSSL_KDF_NAME_KRB5KDF "KRB5KDF" +# define OSSL_KDF_NAME_HMACDRBGKDF "HMAC-DRBG-KDF" + +/* RSA padding modes */ +# define OSSL_PKEY_RSA_PAD_MODE_NONE "none" +# define OSSL_PKEY_RSA_PAD_MODE_PKCSV15 "pkcs1" +# define OSSL_PKEY_RSA_PAD_MODE_OAEP "oaep" +# define OSSL_PKEY_RSA_PAD_MODE_X931 "x931" +# define OSSL_PKEY_RSA_PAD_MODE_PSS "pss" + +/* RSA pss padding salt length */ +# define OSSL_PKEY_RSA_PSS_SALT_LEN_DIGEST "digest" +# define OSSL_PKEY_RSA_PSS_SALT_LEN_MAX "max" +# define OSSL_PKEY_RSA_PSS_SALT_LEN_AUTO "auto" +# define OSSL_PKEY_RSA_PSS_SALT_LEN_AUTO_DIGEST_MAX "auto-digestmax" + +/* OSSL_PKEY_PARAM_EC_ENCODING values */ +# define OSSL_PKEY_EC_ENCODING_EXPLICIT "explicit" +# define OSSL_PKEY_EC_ENCODING_GROUP "named_curve" + +# define OSSL_PKEY_EC_POINT_CONVERSION_FORMAT_UNCOMPRESSED "uncompressed" +# define OSSL_PKEY_EC_POINT_CONVERSION_FORMAT_COMPRESSED "compressed" +# define OSSL_PKEY_EC_POINT_CONVERSION_FORMAT_HYBRID "hybrid" + +# define OSSL_PKEY_EC_GROUP_CHECK_DEFAULT "default" +# define OSSL_PKEY_EC_GROUP_CHECK_NAMED "named" +# define OSSL_PKEY_EC_GROUP_CHECK_NAMED_NIST "named-nist" + +/* PROV_SKEY well known key types */ +# define OSSL_SKEY_TYPE_GENERIC "GENERIC-SECRET" +# define OSSL_SKEY_TYPE_AES "AES" + +/* OSSL_KEM_PARAM_OPERATION values */ +#define OSSL_KEM_PARAM_OPERATION_RSASVE "RSASVE" +#define OSSL_KEM_PARAM_OPERATION_DHKEM "DHKEM" + +/* Provider configuration variables */ +#define OSSL_PKEY_RETAIN_SEED "pkey_retain_seed" + +/* Parameter name definitions - generated by util/perl/OpenSSL/paramnames.pm */ +# define OSSL_ALG_PARAM_ALGORITHM_ID "algorithm-id" +# define OSSL_ALG_PARAM_ALGORITHM_ID_PARAMS "algorithm-id-params" +# define OSSL_ALG_PARAM_CIPHER "cipher" +# define OSSL_ALG_PARAM_DIGEST "digest" +# define OSSL_ALG_PARAM_ENGINE "engine" +# define OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR "fips-indicator" +# define OSSL_ALG_PARAM_MAC "mac" +# define OSSL_ALG_PARAM_PROPERTIES "properties" +# define OSSL_ASYM_CIPHER_PARAM_DIGEST OSSL_PKEY_PARAM_DIGEST +# define OSSL_ASYM_CIPHER_PARAM_ENGINE OSSL_PKEY_PARAM_ENGINE +# define OSSL_ASYM_CIPHER_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_ASYM_CIPHER_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_ASYM_CIPHER_PARAM_FIPS_RSA_PKCS15_PAD_DISABLED OSSL_PROV_PARAM_RSA_PKCS15_PAD_DISABLED +# define OSSL_ASYM_CIPHER_PARAM_IMPLICIT_REJECTION "implicit-rejection" +# define OSSL_ASYM_CIPHER_PARAM_MGF1_DIGEST OSSL_PKEY_PARAM_MGF1_DIGEST +# define OSSL_ASYM_CIPHER_PARAM_MGF1_DIGEST_PROPS OSSL_PKEY_PARAM_MGF1_PROPERTIES +# define OSSL_ASYM_CIPHER_PARAM_OAEP_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_ASYM_CIPHER_PARAM_OAEP_DIGEST_PROPS "digest-props" +# define OSSL_ASYM_CIPHER_PARAM_OAEP_LABEL "oaep-label" +# define OSSL_ASYM_CIPHER_PARAM_PAD_MODE OSSL_PKEY_PARAM_PAD_MODE +# define OSSL_ASYM_CIPHER_PARAM_PROPERTIES OSSL_PKEY_PARAM_PROPERTIES +# define OSSL_ASYM_CIPHER_PARAM_TLS_CLIENT_VERSION "tls-client-version" +# define OSSL_ASYM_CIPHER_PARAM_TLS_NEGOTIATED_VERSION "tls-negotiated-version" +# define OSSL_CAPABILITY_TLS_GROUP_ALG "tls-group-alg" +# define OSSL_CAPABILITY_TLS_GROUP_ID "tls-group-id" +# define OSSL_CAPABILITY_TLS_GROUP_IS_KEM "tls-group-is-kem" +# define OSSL_CAPABILITY_TLS_GROUP_MAX_DTLS "tls-max-dtls" +# define OSSL_CAPABILITY_TLS_GROUP_MAX_TLS "tls-max-tls" +# define OSSL_CAPABILITY_TLS_GROUP_MIN_DTLS "tls-min-dtls" +# define OSSL_CAPABILITY_TLS_GROUP_MIN_TLS "tls-min-tls" +# define OSSL_CAPABILITY_TLS_GROUP_NAME "tls-group-name" +# define OSSL_CAPABILITY_TLS_GROUP_NAME_INTERNAL "tls-group-name-internal" +# define OSSL_CAPABILITY_TLS_GROUP_SECURITY_BITS "tls-group-sec-bits" +# define OSSL_CAPABILITY_TLS_SIGALG_CODE_POINT "tls-sigalg-code-point" +# define OSSL_CAPABILITY_TLS_SIGALG_HASH_NAME "tls-sigalg-hash-name" +# define OSSL_CAPABILITY_TLS_SIGALG_HASH_OID "tls-sigalg-hash-oid" +# define OSSL_CAPABILITY_TLS_SIGALG_IANA_NAME "tls-sigalg-iana-name" +# define OSSL_CAPABILITY_TLS_SIGALG_KEYTYPE "tls-sigalg-keytype" +# define OSSL_CAPABILITY_TLS_SIGALG_KEYTYPE_OID "tls-sigalg-keytype-oid" +# define OSSL_CAPABILITY_TLS_SIGALG_MAX_DTLS "tls-max-dtls" +# define OSSL_CAPABILITY_TLS_SIGALG_MAX_TLS "tls-max-tls" +# define OSSL_CAPABILITY_TLS_SIGALG_MIN_DTLS "tls-min-dtls" +# define OSSL_CAPABILITY_TLS_SIGALG_MIN_TLS "tls-min-tls" +# define OSSL_CAPABILITY_TLS_SIGALG_NAME "tls-sigalg-name" +# define OSSL_CAPABILITY_TLS_SIGALG_OID "tls-sigalg-oid" +# define OSSL_CAPABILITY_TLS_SIGALG_SECURITY_BITS "tls-sigalg-sec-bits" +# define OSSL_CAPABILITY_TLS_SIGALG_SIG_NAME "tls-sigalg-sig-name" +# define OSSL_CAPABILITY_TLS_SIGALG_SIG_OID "tls-sigalg-sig-oid" +# define OSSL_CIPHER_PARAM_AEAD "aead" +# define OSSL_CIPHER_PARAM_AEAD_IVLEN OSSL_CIPHER_PARAM_IVLEN +# define OSSL_CIPHER_PARAM_AEAD_IV_GENERATED "iv-generated" +# define OSSL_CIPHER_PARAM_AEAD_MAC_KEY "mackey" +# define OSSL_CIPHER_PARAM_AEAD_TAG "tag" +# define OSSL_CIPHER_PARAM_AEAD_TAGLEN "taglen" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_AAD "tlsaad" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_AAD_PAD "tlsaadpad" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_GET_IV_GEN "tlsivgen" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_IV_FIXED "tlsivfixed" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_SET_IV_INV "tlsivinv" +# define OSSL_CIPHER_PARAM_ALGORITHM_ID OSSL_ALG_PARAM_ALGORITHM_ID +# define OSSL_CIPHER_PARAM_ALGORITHM_ID_PARAMS OSSL_ALG_PARAM_ALGORITHM_ID_PARAMS +# define OSSL_CIPHER_PARAM_ALGORITHM_ID_PARAMS_OLD "alg_id_param" +# define OSSL_CIPHER_PARAM_BLOCK_SIZE "blocksize" +# define OSSL_CIPHER_PARAM_CTS "cts" +# define OSSL_CIPHER_PARAM_CTS_MODE "cts_mode" +# define OSSL_CIPHER_PARAM_CUSTOM_IV "custom-iv" +# define OSSL_CIPHER_PARAM_DECRYPT_ONLY "decrypt-only" +# define OSSL_CIPHER_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_CIPHER_PARAM_FIPS_ENCRYPT_CHECK "encrypt-check" +# define OSSL_CIPHER_PARAM_HAS_RAND_KEY "has-randkey" +# define OSSL_CIPHER_PARAM_IV "iv" +# define OSSL_CIPHER_PARAM_IVLEN "ivlen" +# define OSSL_CIPHER_PARAM_KEYLEN "keylen" +# define OSSL_CIPHER_PARAM_MODE "mode" +# define OSSL_CIPHER_PARAM_NUM "num" +# define OSSL_CIPHER_PARAM_PADDING "padding" +# define OSSL_CIPHER_PARAM_PIPELINE_AEAD_TAG "pipeline-tag" +# define OSSL_CIPHER_PARAM_RANDOM_KEY "randkey" +# define OSSL_CIPHER_PARAM_RC2_KEYBITS "keybits" +# define OSSL_CIPHER_PARAM_ROUNDS "rounds" +# define OSSL_CIPHER_PARAM_SPEED "speed" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK "tls-multi" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD "tls1multi_aad" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD_PACKLEN "tls1multi_aadpacklen" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC "tls1multi_enc" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_IN "tls1multi_encin" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_LEN "tls1multi_enclen" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_INTERLEAVE "tls1multi_interleave" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_BUFSIZE "tls1multi_maxbufsz" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_SEND_FRAGMENT "tls1multi_maxsndfrag" +# define OSSL_CIPHER_PARAM_TLS_MAC "tls-mac" +# define OSSL_CIPHER_PARAM_TLS_MAC_SIZE "tls-mac-size" +# define OSSL_CIPHER_PARAM_TLS_VERSION "tls-version" +# define OSSL_CIPHER_PARAM_UPDATED_IV "updated-iv" +# define OSSL_CIPHER_PARAM_USE_BITS "use-bits" +# define OSSL_CIPHER_PARAM_XTS_STANDARD "xts_standard" +# define OSSL_DECODER_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_DIGEST_PARAM_ALGID_ABSENT "algid-absent" +# define OSSL_DIGEST_PARAM_BLOCK_SIZE "blocksize" +# define OSSL_DIGEST_PARAM_MICALG "micalg" +# define OSSL_DIGEST_PARAM_PAD_TYPE "pad-type" +# define OSSL_DIGEST_PARAM_SIZE "size" +# define OSSL_DIGEST_PARAM_SSL3_MS "ssl3-ms" +# define OSSL_DIGEST_PARAM_XOF "xof" +# define OSSL_DIGEST_PARAM_XOFLEN "xoflen" +# define OSSL_DRBG_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_DRBG_PARAM_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_DRBG_PARAM_ENTROPY_REQUIRED "entropy_required" +# define OSSL_DRBG_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_DRBG_PARAM_FIPS_DIGEST_CHECK OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK +# define OSSL_DRBG_PARAM_MAC OSSL_ALG_PARAM_MAC +# define OSSL_DRBG_PARAM_MAX_ADINLEN "max_adinlen" +# define OSSL_DRBG_PARAM_MAX_ENTROPYLEN "max_entropylen" +# define OSSL_DRBG_PARAM_MAX_LENGTH "maxium_length" +# define OSSL_DRBG_PARAM_MAX_NONCELEN "max_noncelen" +# define OSSL_DRBG_PARAM_MAX_PERSLEN "max_perslen" +# define OSSL_DRBG_PARAM_MIN_ENTROPYLEN "min_entropylen" +# define OSSL_DRBG_PARAM_MIN_LENGTH "minium_length" +# define OSSL_DRBG_PARAM_MIN_NONCELEN "min_noncelen" +# define OSSL_DRBG_PARAM_PREDICTION_RESISTANCE "prediction_resistance" +# define OSSL_DRBG_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_DRBG_PARAM_RANDOM_DATA "random_data" +# define OSSL_DRBG_PARAM_RESEED_COUNTER "reseed_counter" +# define OSSL_DRBG_PARAM_RESEED_REQUESTS "reseed_requests" +# define OSSL_DRBG_PARAM_RESEED_TIME "reseed_time" +# define OSSL_DRBG_PARAM_RESEED_TIME_INTERVAL "reseed_time_interval" +# define OSSL_DRBG_PARAM_SIZE "size" +# define OSSL_DRBG_PARAM_USE_DF "use_derivation_function" +# define OSSL_ENCODER_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_ENCODER_PARAM_ENCRYPT_LEVEL "encrypt-level" +# define OSSL_ENCODER_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_ENCODER_PARAM_SAVE_PARAMETERS "save-parameters" +# define OSSL_EXCHANGE_PARAM_EC_ECDH_COFACTOR_MODE "ecdh-cofactor-mode" +# define OSSL_EXCHANGE_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_EXCHANGE_PARAM_FIPS_DIGEST_CHECK OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK +# define OSSL_EXCHANGE_PARAM_FIPS_ECDH_COFACTOR_CHECK OSSL_PROV_PARAM_ECDH_COFACTOR_CHECK +# define OSSL_EXCHANGE_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_EXCHANGE_PARAM_KDF_DIGEST "kdf-digest" +# define OSSL_EXCHANGE_PARAM_KDF_DIGEST_PROPS "kdf-digest-props" +# define OSSL_EXCHANGE_PARAM_KDF_OUTLEN "kdf-outlen" +# define OSSL_EXCHANGE_PARAM_KDF_TYPE "kdf-type" +# define OSSL_EXCHANGE_PARAM_KDF_UKM "kdf-ukm" +# define OSSL_EXCHANGE_PARAM_PAD "pad" +# define OSSL_GEN_PARAM_ITERATION "iteration" +# define OSSL_GEN_PARAM_POTENTIAL "potential" +# define OSSL_KDF_PARAM_ARGON2_AD "ad" +# define OSSL_KDF_PARAM_ARGON2_LANES "lanes" +# define OSSL_KDF_PARAM_ARGON2_MEMCOST "memcost" +# define OSSL_KDF_PARAM_ARGON2_VERSION "version" +# define OSSL_KDF_PARAM_CEK_ALG "cekalg" +# define OSSL_KDF_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_KDF_PARAM_CONSTANT "constant" +# define OSSL_KDF_PARAM_DATA "data" +# define OSSL_KDF_PARAM_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_KDF_PARAM_EARLY_CLEAN "early_clean" +# define OSSL_KDF_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_KDF_PARAM_FIPS_DIGEST_CHECK OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK +# define OSSL_KDF_PARAM_FIPS_EMS_CHECK "ems_check" +# define OSSL_KDF_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_KDF_PARAM_HMACDRBG_ENTROPY "entropy" +# define OSSL_KDF_PARAM_HMACDRBG_NONCE "nonce" +# define OSSL_KDF_PARAM_INFO "info" +# define OSSL_KDF_PARAM_ITER "iter" +# define OSSL_KDF_PARAM_KBKDF_R "r" +# define OSSL_KDF_PARAM_KBKDF_USE_L "use-l" +# define OSSL_KDF_PARAM_KBKDF_USE_SEPARATOR "use-separator" +# define OSSL_KDF_PARAM_KEY "key" +# define OSSL_KDF_PARAM_LABEL "label" +# define OSSL_KDF_PARAM_MAC OSSL_ALG_PARAM_MAC +# define OSSL_KDF_PARAM_MAC_SIZE "maclen" +# define OSSL_KDF_PARAM_MODE "mode" +# define OSSL_KDF_PARAM_PASSWORD "pass" +# define OSSL_KDF_PARAM_PKCS12_ID "id" +# define OSSL_KDF_PARAM_PKCS5 "pkcs5" +# define OSSL_KDF_PARAM_PREFIX "prefix" +# define OSSL_KDF_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_KDF_PARAM_SALT "salt" +# define OSSL_KDF_PARAM_SCRYPT_MAXMEM "maxmem_bytes" +# define OSSL_KDF_PARAM_SCRYPT_N "n" +# define OSSL_KDF_PARAM_SCRYPT_P "p" +# define OSSL_KDF_PARAM_SCRYPT_R "r" +# define OSSL_KDF_PARAM_SECRET "secret" +# define OSSL_KDF_PARAM_SEED "seed" +# define OSSL_KDF_PARAM_SIZE "size" +# define OSSL_KDF_PARAM_SSHKDF_SESSION_ID "session_id" +# define OSSL_KDF_PARAM_SSHKDF_TYPE "type" +# define OSSL_KDF_PARAM_SSHKDF_XCGHASH "xcghash" +# define OSSL_KDF_PARAM_THREADS "threads" +# define OSSL_KDF_PARAM_UKM "ukm" +# define OSSL_KDF_PARAM_X942_ACVPINFO "acvp-info" +# define OSSL_KDF_PARAM_X942_PARTYUINFO "partyu-info" +# define OSSL_KDF_PARAM_X942_PARTYVINFO "partyv-info" +# define OSSL_KDF_PARAM_X942_SUPP_PRIVINFO "supp-privinfo" +# define OSSL_KDF_PARAM_X942_SUPP_PUBINFO "supp-pubinfo" +# define OSSL_KDF_PARAM_X942_USE_KEYBITS "use-keybits" +# define OSSL_KEM_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_KEM_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_KEM_PARAM_IKME "ikme" +# define OSSL_KEM_PARAM_OPERATION "operation" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_BLOCK_PADDING "block_padding" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_HS_PADDING "hs_padding" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_MAX_EARLY_DATA "max_early_data" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_MAX_FRAG_LEN "max_frag_len" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_MODE "mode" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_OPTIONS "options" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_READ_AHEAD "read_ahead" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_STREAM_MAC "stream_mac" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_TLSTREE "tlstree" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_USE_ETM "use_etm" +# define OSSL_LIBSSL_RECORD_LAYER_READ_BUFFER_LEN "read_buffer_len" +# define OSSL_MAC_PARAM_BLOCK_SIZE "block-size" +# define OSSL_MAC_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_MAC_PARAM_CUSTOM "custom" +# define OSSL_MAC_PARAM_C_ROUNDS "c-rounds" +# define OSSL_MAC_PARAM_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_MAC_PARAM_DIGEST_NOINIT "digest-noinit" +# define OSSL_MAC_PARAM_DIGEST_ONESHOT "digest-oneshot" +# define OSSL_MAC_PARAM_D_ROUNDS "d-rounds" +# define OSSL_MAC_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_MAC_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_MAC_PARAM_FIPS_NO_SHORT_MAC OSSL_PROV_PARAM_NO_SHORT_MAC +# define OSSL_MAC_PARAM_IV "iv" +# define OSSL_MAC_PARAM_KEY "key" +# define OSSL_MAC_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_MAC_PARAM_SALT "salt" +# define OSSL_MAC_PARAM_SIZE "size" +# define OSSL_MAC_PARAM_TLS_DATA_SIZE "tls-data-size" +# define OSSL_MAC_PARAM_XOF "xof" +# define OSSL_OBJECT_PARAM_DATA "data" +# define OSSL_OBJECT_PARAM_DATA_STRUCTURE "data-structure" +# define OSSL_OBJECT_PARAM_DATA_TYPE "data-type" +# define OSSL_OBJECT_PARAM_DESC "desc" +# define OSSL_OBJECT_PARAM_INPUT_TYPE "input-type" +# define OSSL_OBJECT_PARAM_REFERENCE "reference" +# define OSSL_OBJECT_PARAM_TYPE "type" +# define OSSL_PASSPHRASE_PARAM_INFO "info" +# define OSSL_PKEY_PARAM_ALGORITHM_ID OSSL_ALG_PARAM_ALGORITHM_ID +# define OSSL_PKEY_PARAM_ALGORITHM_ID_PARAMS OSSL_ALG_PARAM_ALGORITHM_ID_PARAMS +# define OSSL_PKEY_PARAM_BITS "bits" +# define OSSL_PKEY_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_PKEY_PARAM_DEFAULT_DIGEST "default-digest" +# define OSSL_PKEY_PARAM_DHKEM_IKM "dhkem-ikm" +# define OSSL_PKEY_PARAM_DH_GENERATOR "safeprime-generator" +# define OSSL_PKEY_PARAM_DH_PRIV_LEN "priv_len" +# define OSSL_PKEY_PARAM_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_PKEY_PARAM_DIGEST_SIZE "digest-size" +# define OSSL_PKEY_PARAM_DIST_ID "distid" +# define OSSL_PKEY_PARAM_EC_A "a" +# define OSSL_PKEY_PARAM_EC_B "b" +# define OSSL_PKEY_PARAM_EC_CHAR2_M "m" +# define OSSL_PKEY_PARAM_EC_CHAR2_PP_K1 "k1" +# define OSSL_PKEY_PARAM_EC_CHAR2_PP_K2 "k2" +# define OSSL_PKEY_PARAM_EC_CHAR2_PP_K3 "k3" +# define OSSL_PKEY_PARAM_EC_CHAR2_TP_BASIS "tp" +# define OSSL_PKEY_PARAM_EC_CHAR2_TYPE "basis-type" +# define OSSL_PKEY_PARAM_EC_COFACTOR "cofactor" +# define OSSL_PKEY_PARAM_EC_DECODED_FROM_EXPLICIT_PARAMS "decoded-from-explicit" +# define OSSL_PKEY_PARAM_EC_ENCODING "encoding" +# define OSSL_PKEY_PARAM_EC_FIELD_TYPE "field-type" +# define OSSL_PKEY_PARAM_EC_GENERATOR "generator" +# define OSSL_PKEY_PARAM_EC_GROUP_CHECK_TYPE "group-check" +# define OSSL_PKEY_PARAM_EC_INCLUDE_PUBLIC "include-public" +# define OSSL_PKEY_PARAM_EC_ORDER "order" +# define OSSL_PKEY_PARAM_EC_P "p" +# define OSSL_PKEY_PARAM_EC_POINT_CONVERSION_FORMAT "point-format" +# define OSSL_PKEY_PARAM_EC_PUB_X "qx" +# define OSSL_PKEY_PARAM_EC_PUB_Y "qy" +# define OSSL_PKEY_PARAM_EC_SEED "seed" +# define OSSL_PKEY_PARAM_ENCODED_PUBLIC_KEY "encoded-pub-key" +# define OSSL_PKEY_PARAM_ENGINE OSSL_ALG_PARAM_ENGINE +# define OSSL_PKEY_PARAM_FFC_COFACTOR "j" +# define OSSL_PKEY_PARAM_FFC_DIGEST OSSL_PKEY_PARAM_DIGEST +# define OSSL_PKEY_PARAM_FFC_DIGEST_PROPS OSSL_PKEY_PARAM_PROPERTIES +# define OSSL_PKEY_PARAM_FFC_G "g" +# define OSSL_PKEY_PARAM_FFC_GINDEX "gindex" +# define OSSL_PKEY_PARAM_FFC_H "hindex" +# define OSSL_PKEY_PARAM_FFC_P "p" +# define OSSL_PKEY_PARAM_FFC_PBITS "pbits" +# define OSSL_PKEY_PARAM_FFC_PCOUNTER "pcounter" +# define OSSL_PKEY_PARAM_FFC_Q "q" +# define OSSL_PKEY_PARAM_FFC_QBITS "qbits" +# define OSSL_PKEY_PARAM_FFC_SEED "seed" +# define OSSL_PKEY_PARAM_FFC_TYPE "type" +# define OSSL_PKEY_PARAM_FFC_VALIDATE_G "validate-g" +# define OSSL_PKEY_PARAM_FFC_VALIDATE_LEGACY "validate-legacy" +# define OSSL_PKEY_PARAM_FFC_VALIDATE_PQ "validate-pq" +# define OSSL_PKEY_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK "digest-check" +# define OSSL_PKEY_PARAM_FIPS_KEY_CHECK "key-check" +# define OSSL_PKEY_PARAM_FIPS_SIGN_CHECK "sign-check" +# define OSSL_PKEY_PARAM_GROUP_NAME "group" +# define OSSL_PKEY_PARAM_IMPLICIT_REJECTION "implicit-rejection" +# define OSSL_PKEY_PARAM_MANDATORY_DIGEST "mandatory-digest" +# define OSSL_PKEY_PARAM_MASKGENFUNC "mgf" +# define OSSL_PKEY_PARAM_MAX_SIZE "max-size" +# define OSSL_PKEY_PARAM_MGF1_DIGEST "mgf1-digest" +# define OSSL_PKEY_PARAM_MGF1_PROPERTIES "mgf1-properties" +# define OSSL_PKEY_PARAM_ML_DSA_INPUT_FORMATS "ml-dsa.input_formats" +# define OSSL_PKEY_PARAM_ML_DSA_OUTPUT_FORMATS "ml-dsa.output_formats" +# define OSSL_PKEY_PARAM_ML_DSA_PREFER_SEED "ml-dsa.prefer_seed" +# define OSSL_PKEY_PARAM_ML_DSA_RETAIN_SEED "ml-dsa.retain_seed" +# define OSSL_PKEY_PARAM_ML_DSA_SEED "seed" +# define OSSL_PKEY_PARAM_ML_KEM_IMPORT_PCT_TYPE "ml-kem.import_pct_type" +# define OSSL_PKEY_PARAM_ML_KEM_INPUT_FORMATS "ml-kem.input_formats" +# define OSSL_PKEY_PARAM_ML_KEM_OUTPUT_FORMATS "ml-kem.output_formats" +# define OSSL_PKEY_PARAM_ML_KEM_PREFER_SEED "ml-kem.prefer_seed" +# define OSSL_PKEY_PARAM_ML_KEM_RETAIN_SEED "ml-kem.retain_seed" +# define OSSL_PKEY_PARAM_ML_KEM_SEED "seed" +# define OSSL_PKEY_PARAM_PAD_MODE "pad-mode" +# define OSSL_PKEY_PARAM_PRIV_KEY "priv" +# define OSSL_PKEY_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_PKEY_PARAM_PUB_KEY "pub" +# define OSSL_PKEY_PARAM_RSA_BITS OSSL_PKEY_PARAM_BITS +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT "rsa-coefficient" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT1 "rsa-coefficient1" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT2 "rsa-coefficient2" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT3 "rsa-coefficient3" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT4 "rsa-coefficient4" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT5 "rsa-coefficient5" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT6 "rsa-coefficient6" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT7 "rsa-coefficient7" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT8 "rsa-coefficient8" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT9 "rsa-coefficient9" +# define OSSL_PKEY_PARAM_RSA_D "d" +# define OSSL_PKEY_PARAM_RSA_DERIVE_FROM_PQ "rsa-derive-from-pq" +# define OSSL_PKEY_PARAM_RSA_DIGEST OSSL_PKEY_PARAM_DIGEST +# define OSSL_PKEY_PARAM_RSA_DIGEST_PROPS OSSL_PKEY_PARAM_PROPERTIES +# define OSSL_PKEY_PARAM_RSA_E "e" +# define OSSL_PKEY_PARAM_RSA_EXPONENT "rsa-exponent" +# define OSSL_PKEY_PARAM_RSA_EXPONENT1 "rsa-exponent1" +# define OSSL_PKEY_PARAM_RSA_EXPONENT10 "rsa-exponent10" +# define OSSL_PKEY_PARAM_RSA_EXPONENT2 "rsa-exponent2" +# define OSSL_PKEY_PARAM_RSA_EXPONENT3 "rsa-exponent3" +# define OSSL_PKEY_PARAM_RSA_EXPONENT4 "rsa-exponent4" +# define OSSL_PKEY_PARAM_RSA_EXPONENT5 "rsa-exponent5" +# define OSSL_PKEY_PARAM_RSA_EXPONENT6 "rsa-exponent6" +# define OSSL_PKEY_PARAM_RSA_EXPONENT7 "rsa-exponent7" +# define OSSL_PKEY_PARAM_RSA_EXPONENT8 "rsa-exponent8" +# define OSSL_PKEY_PARAM_RSA_EXPONENT9 "rsa-exponent9" +# define OSSL_PKEY_PARAM_RSA_FACTOR "rsa-factor" +# define OSSL_PKEY_PARAM_RSA_FACTOR1 "rsa-factor1" +# define OSSL_PKEY_PARAM_RSA_FACTOR10 "rsa-factor10" +# define OSSL_PKEY_PARAM_RSA_FACTOR2 "rsa-factor2" +# define OSSL_PKEY_PARAM_RSA_FACTOR3 "rsa-factor3" +# define OSSL_PKEY_PARAM_RSA_FACTOR4 "rsa-factor4" +# define OSSL_PKEY_PARAM_RSA_FACTOR5 "rsa-factor5" +# define OSSL_PKEY_PARAM_RSA_FACTOR6 "rsa-factor6" +# define OSSL_PKEY_PARAM_RSA_FACTOR7 "rsa-factor7" +# define OSSL_PKEY_PARAM_RSA_FACTOR8 "rsa-factor8" +# define OSSL_PKEY_PARAM_RSA_FACTOR9 "rsa-factor9" +# define OSSL_PKEY_PARAM_RSA_MASKGENFUNC OSSL_PKEY_PARAM_MASKGENFUNC +# define OSSL_PKEY_PARAM_RSA_MGF1_DIGEST OSSL_PKEY_PARAM_MGF1_DIGEST +# define OSSL_PKEY_PARAM_RSA_N "n" +# define OSSL_PKEY_PARAM_RSA_PRIMES "primes" +# define OSSL_PKEY_PARAM_RSA_PSS_SALTLEN "saltlen" +# define OSSL_PKEY_PARAM_RSA_TEST_P1 "p1" +# define OSSL_PKEY_PARAM_RSA_TEST_P2 "p2" +# define OSSL_PKEY_PARAM_RSA_TEST_Q1 "q1" +# define OSSL_PKEY_PARAM_RSA_TEST_Q2 "q2" +# define OSSL_PKEY_PARAM_RSA_TEST_XP "xp" +# define OSSL_PKEY_PARAM_RSA_TEST_XP1 "xp1" +# define OSSL_PKEY_PARAM_RSA_TEST_XP2 "xp2" +# define OSSL_PKEY_PARAM_RSA_TEST_XQ "xq" +# define OSSL_PKEY_PARAM_RSA_TEST_XQ1 "xq1" +# define OSSL_PKEY_PARAM_RSA_TEST_XQ2 "xq2" +# define OSSL_PKEY_PARAM_SECURITY_BITS "security-bits" +# define OSSL_PKEY_PARAM_SLH_DSA_SEED "seed" +# define OSSL_PKEY_PARAM_USE_COFACTOR_ECDH OSSL_PKEY_PARAM_USE_COFACTOR_FLAG +# define OSSL_PKEY_PARAM_USE_COFACTOR_FLAG "use-cofactor-flag" +# define OSSL_PROV_PARAM_BUILDINFO "buildinfo" +# define OSSL_PROV_PARAM_CORE_MODULE_FILENAME "module-filename" +# define OSSL_PROV_PARAM_CORE_PROV_NAME "provider-name" +# define OSSL_PROV_PARAM_CORE_VERSION "openssl-version" +# define OSSL_PROV_PARAM_DRBG_TRUNC_DIGEST "drbg-no-trunc-md" +# define OSSL_PROV_PARAM_DSA_SIGN_DISABLED "dsa-sign-disabled" +# define OSSL_PROV_PARAM_ECDH_COFACTOR_CHECK "ecdh-cofactor-check" +# define OSSL_PROV_PARAM_HKDF_DIGEST_CHECK "hkdf-digest-check" +# define OSSL_PROV_PARAM_HKDF_KEY_CHECK "hkdf-key-check" +# define OSSL_PROV_PARAM_HMAC_KEY_CHECK "hmac-key-check" +# define OSSL_PROV_PARAM_KBKDF_KEY_CHECK "kbkdf-key-check" +# define OSSL_PROV_PARAM_KMAC_KEY_CHECK "kmac-key-check" +# define OSSL_PROV_PARAM_NAME "name" +# define OSSL_PROV_PARAM_NO_SHORT_MAC "no-short-mac" +# define OSSL_PROV_PARAM_PBKDF2_LOWER_BOUND_CHECK "pbkdf2-lower-bound-check" +# define OSSL_PROV_PARAM_RSA_PKCS15_PAD_DISABLED "rsa-pkcs15-pad-disabled" +# define OSSL_PROV_PARAM_RSA_PSS_SALTLEN_CHECK "rsa-pss-saltlen-check" +# define OSSL_PROV_PARAM_RSA_SIGN_X931_PAD_DISABLED "rsa-sign-x931-pad-disabled" +# define OSSL_PROV_PARAM_SECURITY_CHECKS "security-checks" +# define OSSL_PROV_PARAM_SELF_TEST_DESC "st-desc" +# define OSSL_PROV_PARAM_SELF_TEST_PHASE "st-phase" +# define OSSL_PROV_PARAM_SELF_TEST_TYPE "st-type" +# define OSSL_PROV_PARAM_SIGNATURE_DIGEST_CHECK "signature-digest-check" +# define OSSL_PROV_PARAM_SSHKDF_DIGEST_CHECK "sshkdf-digest-check" +# define OSSL_PROV_PARAM_SSHKDF_KEY_CHECK "sshkdf-key-check" +# define OSSL_PROV_PARAM_SSKDF_DIGEST_CHECK "sskdf-digest-check" +# define OSSL_PROV_PARAM_SSKDF_KEY_CHECK "sskdf-key-check" +# define OSSL_PROV_PARAM_STATUS "status" +# define OSSL_PROV_PARAM_TDES_ENCRYPT_DISABLED "tdes-encrypt-disabled" +# define OSSL_PROV_PARAM_TLS13_KDF_DIGEST_CHECK "tls13-kdf-digest-check" +# define OSSL_PROV_PARAM_TLS13_KDF_KEY_CHECK "tls13-kdf-key-check" +# define OSSL_PROV_PARAM_TLS1_PRF_DIGEST_CHECK "tls1-prf-digest-check" +# define OSSL_PROV_PARAM_TLS1_PRF_EMS_CHECK "tls1-prf-ems-check" +# define OSSL_PROV_PARAM_TLS1_PRF_KEY_CHECK "tls1-prf-key-check" +# define OSSL_PROV_PARAM_VERSION "version" +# define OSSL_PROV_PARAM_X942KDF_KEY_CHECK "x942kdf-key-check" +# define OSSL_PROV_PARAM_X963KDF_DIGEST_CHECK "x963kdf-digest-check" +# define OSSL_PROV_PARAM_X963KDF_KEY_CHECK "x963kdf-key-check" +# define OSSL_RAND_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_RAND_PARAM_GENERATE "generate" +# define OSSL_RAND_PARAM_MAX_REQUEST "max_request" +# define OSSL_RAND_PARAM_STATE "state" +# define OSSL_RAND_PARAM_STRENGTH "strength" +# define OSSL_RAND_PARAM_TEST_ENTROPY "test_entropy" +# define OSSL_RAND_PARAM_TEST_NONCE "test_nonce" +# define OSSL_SIGNATURE_PARAM_ADD_RANDOM "additional-random" +# define OSSL_SIGNATURE_PARAM_ALGORITHM_ID OSSL_PKEY_PARAM_ALGORITHM_ID +# define OSSL_SIGNATURE_PARAM_ALGORITHM_ID_PARAMS OSSL_PKEY_PARAM_ALGORITHM_ID_PARAMS +# define OSSL_SIGNATURE_PARAM_CONTEXT_STRING "context-string" +# define OSSL_SIGNATURE_PARAM_DETERMINISTIC "deterministic" +# define OSSL_SIGNATURE_PARAM_DIGEST OSSL_PKEY_PARAM_DIGEST +# define OSSL_SIGNATURE_PARAM_DIGEST_SIZE OSSL_PKEY_PARAM_DIGEST_SIZE +# define OSSL_SIGNATURE_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_SIGNATURE_PARAM_FIPS_DIGEST_CHECK OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK +# define OSSL_SIGNATURE_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_SIGNATURE_PARAM_FIPS_RSA_PSS_SALTLEN_CHECK "rsa-pss-saltlen-check" +# define OSSL_SIGNATURE_PARAM_FIPS_SIGN_CHECK OSSL_PKEY_PARAM_FIPS_SIGN_CHECK +# define OSSL_SIGNATURE_PARAM_FIPS_SIGN_X931_PAD_CHECK "sign-x931-pad-check" +# define OSSL_SIGNATURE_PARAM_FIPS_VERIFY_MESSAGE "verify-message" +# define OSSL_SIGNATURE_PARAM_INSTANCE "instance" +# define OSSL_SIGNATURE_PARAM_KAT "kat" +# define OSSL_SIGNATURE_PARAM_MESSAGE_ENCODING "message-encoding" +# define OSSL_SIGNATURE_PARAM_MGF1_DIGEST OSSL_PKEY_PARAM_MGF1_DIGEST +# define OSSL_SIGNATURE_PARAM_MGF1_PROPERTIES OSSL_PKEY_PARAM_MGF1_PROPERTIES +# define OSSL_SIGNATURE_PARAM_MU "mu" +# define OSSL_SIGNATURE_PARAM_NONCE_TYPE "nonce-type" +# define OSSL_SIGNATURE_PARAM_PAD_MODE OSSL_PKEY_PARAM_PAD_MODE +# define OSSL_SIGNATURE_PARAM_PROPERTIES OSSL_PKEY_PARAM_PROPERTIES +# define OSSL_SIGNATURE_PARAM_PSS_SALTLEN "saltlen" +# define OSSL_SIGNATURE_PARAM_SIGNATURE "signature" +# define OSSL_SIGNATURE_PARAM_TEST_ENTROPY "test-entropy" +# define OSSL_SKEY_PARAM_KEY_LENGTH "key-length" +# define OSSL_SKEY_PARAM_RAW_BYTES "raw-bytes" +# define OSSL_STORE_PARAM_ALIAS "alias" +# define OSSL_STORE_PARAM_DIGEST "digest" +# define OSSL_STORE_PARAM_EXPECT "expect" +# define OSSL_STORE_PARAM_FINGERPRINT "fingerprint" +# define OSSL_STORE_PARAM_INPUT_TYPE "input-type" +# define OSSL_STORE_PARAM_ISSUER "name" +# define OSSL_STORE_PARAM_PROPERTIES "properties" +# define OSSL_STORE_PARAM_SERIAL "serial" +# define OSSL_STORE_PARAM_SUBJECT "subject" + +# ifdef __cplusplus +} +# endif + +#endif diff --git a/deps/openssl/config/archs/aix64-gcc-as/asm_avx2/include/openssl/crmf.h b/deps/openssl/config/archs/aix64-gcc-as/asm_avx2/include/openssl/crmf.h index 71b747ed33d239..4bf550fd47daa9 100644 --- a/deps/openssl/config/archs/aix64-gcc-as/asm_avx2/include/openssl/crmf.h +++ b/deps/openssl/config/archs/aix64-gcc-as/asm_avx2/include/openssl/crmf.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/crmf.h.in * - * Copyright 2007-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2007-2025 The OpenSSL Project Authors. All Rights Reserved. * Copyright Nokia 2007-2019 * Copyright Siemens AG 2015-2019 * @@ -26,6 +26,7 @@ # include # include # include /* for GENERAL_NAME etc. */ +# include /* explicit #includes not strictly needed since implied by the above: */ # include @@ -43,9 +44,12 @@ extern "C" { # define OSSL_CRMF_SUBSEQUENTMESSAGE_ENCRCERT 0 # define OSSL_CRMF_SUBSEQUENTMESSAGE_CHALLENGERESP 1 - typedef struct ossl_crmf_encryptedvalue_st OSSL_CRMF_ENCRYPTEDVALUE; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_ENCRYPTEDVALUE) + +typedef struct ossl_crmf_encryptedkey_st OSSL_CRMF_ENCRYPTEDKEY; +DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_ENCRYPTEDKEY) + typedef struct ossl_crmf_msg_st OSSL_CRMF_MSG; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_MSG) DECLARE_ASN1_DUP_FUNCTION(OSSL_CRMF_MSG) @@ -77,6 +81,36 @@ SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CRMF_MSG, OSSL_CRMF_MSG, OSSL_CRMF_MSG) #define sk_OSSL_CRMF_MSG_set_cmp_func(sk, cmp) ((sk_OSSL_CRMF_MSG_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CRMF_MSG_sk_type(sk), ossl_check_OSSL_CRMF_MSG_compfunc_type(cmp))) typedef struct ossl_crmf_attributetypeandvalue_st OSSL_CRMF_ATTRIBUTETYPEANDVALUE; +void OSSL_CRMF_ATTRIBUTETYPEANDVALUE_free(OSSL_CRMF_ATTRIBUTETYPEANDVALUE *v); +DECLARE_ASN1_DUP_FUNCTION(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CRMF_ATTRIBUTETYPEANDVALUE, OSSL_CRMF_ATTRIBUTETYPEANDVALUE, OSSL_CRMF_ATTRIBUTETYPEANDVALUE) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_value(sk, idx) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_value(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), (idx))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_new(cmp) ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_new(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_compfunc_type(cmp))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_new_null() ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_new_null()) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_new_reserve(cmp, n) ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_compfunc_type(cmp), (n))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), (n)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_free(sk) OPENSSL_sk_free(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_delete(sk, i) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_delete(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), (i))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_delete_ptr(sk, ptr) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_pop(sk) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_pop(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_shift(sk) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_shift(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk),ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_freefunc_type(freefunc)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr), (idx)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_set(sk, idx, ptr) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_set(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), (idx), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr), pnum) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_dup(sk) ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_dup(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_copyfunc_type(copyfunc), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_freefunc_type(freefunc))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_set_cmp_func(sk, cmp) ((sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_compfunc_type(cmp))) + + typedef struct ossl_crmf_pbmparameter_st OSSL_CRMF_PBMPARAMETER; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_PBMPARAMETER) typedef struct ossl_crmf_poposigningkey_st OSSL_CRMF_POPOSIGNINGKEY; @@ -118,6 +152,7 @@ typedef struct ossl_crmf_singlepubinfo_st OSSL_CRMF_SINGLEPUBINFO; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_SINGLEPUBINFO) typedef struct ossl_crmf_certtemplate_st OSSL_CRMF_CERTTEMPLATE; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_CERTTEMPLATE) +DECLARE_ASN1_DUP_FUNCTION(OSSL_CRMF_CERTTEMPLATE) typedef STACK_OF(OSSL_CRMF_MSG) OSSL_CRMF_MSGS; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_MSGS) @@ -198,12 +233,14 @@ int OSSL_CRMF_MSGS_verify_popo(const OSSL_CRMF_MSGS *reqs, int rid, int acceptRAVerified, OSSL_LIB_CTX *libctx, const char *propq); OSSL_CRMF_CERTTEMPLATE *OSSL_CRMF_MSG_get0_tmpl(const OSSL_CRMF_MSG *crm); -const ASN1_INTEGER -*OSSL_CRMF_CERTTEMPLATE_get0_serialNumber(const OSSL_CRMF_CERTTEMPLATE *tmpl); +X509_PUBKEY +*OSSL_CRMF_CERTTEMPLATE_get0_publicKey(const OSSL_CRMF_CERTTEMPLATE *tmpl); const X509_NAME *OSSL_CRMF_CERTTEMPLATE_get0_subject(const OSSL_CRMF_CERTTEMPLATE *tmpl); const X509_NAME *OSSL_CRMF_CERTTEMPLATE_get0_issuer(const OSSL_CRMF_CERTTEMPLATE *tmpl); +const ASN1_INTEGER +*OSSL_CRMF_CERTTEMPLATE_get0_serialNumber(const OSSL_CRMF_CERTTEMPLATE *tmpl); X509_EXTENSIONS *OSSL_CRMF_CERTTEMPLATE_get0_extensions(const OSSL_CRMF_CERTTEMPLATE *tmpl); const X509_NAME @@ -215,10 +252,24 @@ int OSSL_CRMF_CERTTEMPLATE_fill(OSSL_CRMF_CERTTEMPLATE *tmpl, const X509_NAME *subject, const X509_NAME *issuer, const ASN1_INTEGER *serial); -X509 -*OSSL_CRMF_ENCRYPTEDVALUE_get1_encCert(const OSSL_CRMF_ENCRYPTEDVALUE *ecert, - OSSL_LIB_CTX *libctx, const char *propq, - EVP_PKEY *pkey); +X509 *OSSL_CRMF_ENCRYPTEDVALUE_get1_encCert(const OSSL_CRMF_ENCRYPTEDVALUE *ecert, + OSSL_LIB_CTX *libctx, const char *propq, + EVP_PKEY *pkey); +X509 *OSSL_CRMF_ENCRYPTEDKEY_get1_encCert(const OSSL_CRMF_ENCRYPTEDKEY *ecert, + OSSL_LIB_CTX *libctx, const char *propq, + EVP_PKEY *pkey, unsigned int flags); +unsigned char +*OSSL_CRMF_ENCRYPTEDVALUE_decrypt(const OSSL_CRMF_ENCRYPTEDVALUE *enc, + OSSL_LIB_CTX *libctx, const char *propq, + EVP_PKEY *pkey, int *outlen); +EVP_PKEY *OSSL_CRMF_ENCRYPTEDKEY_get1_pkey(const OSSL_CRMF_ENCRYPTEDKEY *encryptedKey, + X509_STORE *ts, STACK_OF(X509) *extra, EVP_PKEY *pkey, + X509 *cert, ASN1_OCTET_STRING *secret, + OSSL_LIB_CTX *libctx, const char *propq); +int OSSL_CRMF_MSG_centralkeygen_requested(const OSSL_CRMF_MSG *crm, const X509_REQ *p10cr); +# ifndef OPENSSL_NO_CMS +OSSL_CRMF_ENCRYPTEDKEY *OSSL_CRMF_ENCRYPTEDKEY_init_envdata(CMS_EnvelopedData *envdata); +# endif # ifdef __cplusplus } diff --git a/deps/openssl/config/archs/aix64-gcc-as/asm_avx2/include/openssl/crypto.h b/deps/openssl/config/archs/aix64-gcc-as/asm_avx2/include/openssl/crypto.h index 3f40be6d8c61d5..fd2cfd3e5a9ac4 100644 --- a/deps/openssl/config/archs/aix64-gcc-as/asm_avx2/include/openssl/crypto.h +++ b/deps/openssl/config/archs/aix64-gcc-as/asm_avx2/include/openssl/crypto.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/crypto.h.in * - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2024 The OpenSSL Project Authors. All Rights Reserved. * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved * * Licensed under the Apache License 2.0 (the "License"). You may not use @@ -85,9 +85,15 @@ int CRYPTO_THREAD_unlock(CRYPTO_RWLOCK *lock); void CRYPTO_THREAD_lock_free(CRYPTO_RWLOCK *lock); int CRYPTO_atomic_add(int *val, int amount, int *ret, CRYPTO_RWLOCK *lock); +int CRYPTO_atomic_add64(uint64_t *val, uint64_t op, uint64_t *ret, + CRYPTO_RWLOCK *lock); +int CRYPTO_atomic_and(uint64_t *val, uint64_t op, uint64_t *ret, + CRYPTO_RWLOCK *lock); int CRYPTO_atomic_or(uint64_t *val, uint64_t op, uint64_t *ret, CRYPTO_RWLOCK *lock); int CRYPTO_atomic_load(uint64_t *val, uint64_t *ret, CRYPTO_RWLOCK *lock); +int CRYPTO_atomic_load_int(int *val, int *ret, CRYPTO_RWLOCK *lock); +int CRYPTO_atomic_store(uint64_t *dst, uint64_t val, CRYPTO_RWLOCK *lock); /* No longer needed, so this is a no-op */ #define OPENSSL_malloc_init() while(0) continue @@ -96,6 +102,9 @@ int CRYPTO_atomic_load(uint64_t *val, uint64_t *ret, CRYPTO_RWLOCK *lock); CRYPTO_malloc(num, OPENSSL_FILE, OPENSSL_LINE) # define OPENSSL_zalloc(num) \ CRYPTO_zalloc(num, OPENSSL_FILE, OPENSSL_LINE) +# define OPENSSL_aligned_alloc(num, alignment, freeptr) \ + CRYPTO_aligned_alloc(num, alignment, freeptr, \ + OPENSSL_FILE, OPENSSL_LINE) # define OPENSSL_realloc(addr, num) \ CRYPTO_realloc(addr, num, OPENSSL_FILE, OPENSSL_LINE) # define OPENSSL_clear_realloc(addr, old_num, num) \ @@ -124,6 +133,7 @@ int CRYPTO_atomic_load(uint64_t *val, uint64_t *ret, CRYPTO_RWLOCK *lock); size_t OPENSSL_strlcpy(char *dst, const char *src, size_t siz); size_t OPENSSL_strlcat(char *dst, const char *src, size_t siz); size_t OPENSSL_strnlen(const char *str, size_t maxlen); +int OPENSSL_strtoul(const char *str, char **endptr, int base, unsigned long *num); int OPENSSL_buf2hexstr_ex(char *str, size_t str_n, size_t *strlength, const unsigned char *buf, size_t buflen, const char sep); @@ -160,6 +170,7 @@ const char *OpenSSL_version(int type); # define OPENSSL_FULL_VERSION_STRING 7 # define OPENSSL_MODULES_DIR 8 # define OPENSSL_CPU_INFO 9 +# define OPENSSL_WINCTX 10 const char *OPENSSL_info(int type); /* @@ -174,6 +185,7 @@ const char *OPENSSL_info(int type); # define OPENSSL_INFO_LIST_SEPARATOR 1006 # define OPENSSL_INFO_SEED_SOURCE 1007 # define OPENSSL_INFO_CPU_SETTINGS 1008 +# define OPENSSL_INFO_WINDOWS_CONTEXT 1009 int OPENSSL_issetugid(void); @@ -341,11 +353,14 @@ void CRYPTO_get_mem_functions(CRYPTO_malloc_fn *malloc_fn, CRYPTO_realloc_fn *realloc_fn, CRYPTO_free_fn *free_fn); -void *CRYPTO_malloc(size_t num, const char *file, int line); -void *CRYPTO_zalloc(size_t num, const char *file, int line); -void *CRYPTO_memdup(const void *str, size_t siz, const char *file, int line); -char *CRYPTO_strdup(const char *str, const char *file, int line); -char *CRYPTO_strndup(const char *str, size_t s, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_malloc(size_t num, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_zalloc(size_t num, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_aligned_alloc(size_t num, size_t align, + void **freeptr, const char *file, + int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_memdup(const void *str, size_t siz, const char *file, int line); +OSSL_CRYPTO_ALLOC char *CRYPTO_strdup(const char *str, const char *file, int line); +OSSL_CRYPTO_ALLOC char *CRYPTO_strndup(const char *str, size_t s, const char *file, int line); void CRYPTO_free(void *ptr, const char *file, int line); void CRYPTO_clear_free(void *ptr, size_t num, const char *file, int line); void *CRYPTO_realloc(void *addr, size_t num, const char *file, int line); @@ -354,8 +369,8 @@ void *CRYPTO_clear_realloc(void *addr, size_t old_num, size_t num, int CRYPTO_secure_malloc_init(size_t sz, size_t minsize); int CRYPTO_secure_malloc_done(void); -void *CRYPTO_secure_malloc(size_t num, const char *file, int line); -void *CRYPTO_secure_zalloc(size_t num, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_secure_malloc(size_t num, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_secure_zalloc(size_t num, const char *file, int line); void CRYPTO_secure_free(void *ptr, const char *file, int line); void CRYPTO_secure_clear_free(void *ptr, size_t num, const char *file, int line); @@ -376,6 +391,9 @@ void OPENSSL_cleanse(void *ptr, size_t len); # define CRYPTO_MEM_CHECK_ENABLE 0x2 /* Control and mode bit */ # define CRYPTO_MEM_CHECK_DISABLE 0x3 /* Control only */ +/* max allowed length for value of OPENSSL_MALLOC_FAILURES env var. */ +# define CRYPTO_MEM_CHECK_MAX_FS 256 + void CRYPTO_get_alloc_counts(int *mcount, int *rcount, int *fcount); # ifndef OPENSSL_NO_DEPRECATED_3_0 # define OPENSSL_mem_debug_push(info) \ @@ -551,6 +569,13 @@ int OSSL_LIB_CTX_load_config(OSSL_LIB_CTX *ctx, const char *config_file); void OSSL_LIB_CTX_free(OSSL_LIB_CTX *); OSSL_LIB_CTX *OSSL_LIB_CTX_get0_global_default(void); OSSL_LIB_CTX *OSSL_LIB_CTX_set0_default(OSSL_LIB_CTX *libctx); +int OSSL_LIB_CTX_get_conf_diagnostics(OSSL_LIB_CTX *ctx); +void OSSL_LIB_CTX_set_conf_diagnostics(OSSL_LIB_CTX *ctx, int value); + +void OSSL_sleep(uint64_t millis); + + +void *OSSL_LIB_CTX_get_data(OSSL_LIB_CTX *ctx, int index); # ifdef __cplusplus } diff --git a/deps/openssl/config/archs/aix64-gcc-as/asm_avx2/include/openssl/ct.h b/deps/openssl/config/archs/aix64-gcc-as/asm_avx2/include/openssl/ct.h index b6dd8c3547710a..e6dd1192a4e0b3 100644 --- a/deps/openssl/config/archs/aix64-gcc-as/asm_avx2/include/openssl/ct.h +++ b/deps/openssl/config/archs/aix64-gcc-as/asm_avx2/include/openssl/ct.h @@ -133,7 +133,7 @@ typedef enum { */ CT_POLICY_EVAL_CTX *CT_POLICY_EVAL_CTX_new_ex(OSSL_LIB_CTX *libctx, const char *propq); - + /* * The same as CT_POLICY_EVAL_CTX_new_ex() but the default library * context and property query string is used. diff --git a/deps/openssl/config/archs/aix64-gcc-as/asm_avx2/include/openssl/err.h b/deps/openssl/config/archs/aix64-gcc-as/asm_avx2/include/openssl/err.h index 2abf2483488181..daca18e7b757b0 100644 --- a/deps/openssl/config/archs/aix64-gcc-as/asm_avx2/include/openssl/err.h +++ b/deps/openssl/config/archs/aix64-gcc-as/asm_avx2/include/openssl/err.h @@ -1,5 +1,5 @@ /* - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -372,7 +372,7 @@ typedef struct ERR_string_data_st { } ERR_STRING_DATA; DEFINE_LHASH_OF_INTERNAL(ERR_STRING_DATA); -#define lh_ERR_STRING_DATA_new(hfn, cmp) ((LHASH_OF(ERR_STRING_DATA) *)OPENSSL_LH_new(ossl_check_ERR_STRING_DATA_lh_hashfunc_type(hfn), ossl_check_ERR_STRING_DATA_lh_compfunc_type(cmp))) +#define lh_ERR_STRING_DATA_new(hfn, cmp) ((LHASH_OF(ERR_STRING_DATA) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new(ossl_check_ERR_STRING_DATA_lh_hashfunc_type(hfn), ossl_check_ERR_STRING_DATA_lh_compfunc_type(cmp)), lh_ERR_STRING_DATA_hash_thunk, lh_ERR_STRING_DATA_comp_thunk, lh_ERR_STRING_DATA_doall_thunk, lh_ERR_STRING_DATA_doall_arg_thunk)) #define lh_ERR_STRING_DATA_free(lh) OPENSSL_LH_free(ossl_check_ERR_STRING_DATA_lh_type(lh)) #define lh_ERR_STRING_DATA_flush(lh) OPENSSL_LH_flush(ossl_check_ERR_STRING_DATA_lh_type(lh)) #define lh_ERR_STRING_DATA_insert(lh, ptr) ((ERR_STRING_DATA *)OPENSSL_LH_insert(ossl_check_ERR_STRING_DATA_lh_type(lh), ossl_check_ERR_STRING_DATA_lh_plain_type(ptr))) @@ -496,6 +496,14 @@ int ERR_get_next_error_library(void); int ERR_set_mark(void); int ERR_pop_to_mark(void); int ERR_clear_last_mark(void); +int ERR_count_to_mark(void); +int ERR_pop(void); + +ERR_STATE *OSSL_ERR_STATE_new(void); +void OSSL_ERR_STATE_save(ERR_STATE *es); +void OSSL_ERR_STATE_save_to_mark(ERR_STATE *es); +void OSSL_ERR_STATE_restore(const ERR_STATE *es); +void OSSL_ERR_STATE_free(ERR_STATE *es); #ifdef __cplusplus } diff --git a/deps/openssl/config/archs/aix64-gcc-as/asm_avx2/include/openssl/fipskey.h b/deps/openssl/config/archs/aix64-gcc-as/asm_avx2/include/openssl/fipskey.h index 42ba014b313ba8..929db18c678364 100644 --- a/deps/openssl/config/archs/aix64-gcc-as/asm_avx2/include/openssl/fipskey.h +++ b/deps/openssl/config/archs/aix64-gcc-as/asm_avx2/include/openssl/fipskey.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/fipskey.h.in * - * Copyright 2020-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2020-2024 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -29,6 +29,11 @@ extern "C" { */ #define FIPS_KEY_STRING "f4556650ac31d35461610bac4ed81b1a181b2d8a43ea2854cbae22ca74560813" +/* + * The FIPS provider vendor name, as a string. + */ +#define FIPS_VENDOR "OpenSSL FIPS Provider" + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/aix64-gcc-as/asm_avx2/include/openssl/lhash.h b/deps/openssl/config/archs/aix64-gcc-as/asm_avx2/include/openssl/lhash.h index 39dd6254acdeb6..62c55b20fd9716 100644 --- a/deps/openssl/config/archs/aix64-gcc-as/asm_avx2/include/openssl/lhash.h +++ b/deps/openssl/config/archs/aix64-gcc-as/asm_avx2/include/openssl/lhash.h @@ -1,5 +1,5 @@ /* - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2024 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -24,6 +24,9 @@ # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -31,9 +34,13 @@ extern "C" { typedef struct lhash_node_st OPENSSL_LH_NODE; typedef int (*OPENSSL_LH_COMPFUNC) (const void *, const void *); +typedef int (*OPENSSL_LH_COMPFUNCTHUNK) (const void *, const void *, OPENSSL_LH_COMPFUNC cfn); typedef unsigned long (*OPENSSL_LH_HASHFUNC) (const void *); +typedef unsigned long (*OPENSSL_LH_HASHFUNCTHUNK) (const void *, OPENSSL_LH_HASHFUNC hfn); typedef void (*OPENSSL_LH_DOALL_FUNC) (void *); +typedef void (*OPENSSL_LH_DOALL_FUNC_THUNK) (void *, OPENSSL_LH_DOALL_FUNC doall); typedef void (*OPENSSL_LH_DOALL_FUNCARG) (void *, void *); +typedef void (*OPENSSL_LH_DOALL_FUNCARG_THUNK) (void *, void *, OPENSSL_LH_DOALL_FUNCARG doall); typedef struct lhash_st OPENSSL_LHASH; /* @@ -79,26 +86,40 @@ typedef struct lhash_st OPENSSL_LHASH; int OPENSSL_LH_error(OPENSSL_LHASH *lh); OPENSSL_LHASH *OPENSSL_LH_new(OPENSSL_LH_HASHFUNC h, OPENSSL_LH_COMPFUNC c); +OPENSSL_LHASH *OPENSSL_LH_set_thunks(OPENSSL_LHASH *lh, + OPENSSL_LH_HASHFUNCTHUNK hw, + OPENSSL_LH_COMPFUNCTHUNK cw, + OPENSSL_LH_DOALL_FUNC_THUNK daw, + OPENSSL_LH_DOALL_FUNCARG_THUNK daaw); void OPENSSL_LH_free(OPENSSL_LHASH *lh); void OPENSSL_LH_flush(OPENSSL_LHASH *lh); void *OPENSSL_LH_insert(OPENSSL_LHASH *lh, void *data); void *OPENSSL_LH_delete(OPENSSL_LHASH *lh, const void *data); void *OPENSSL_LH_retrieve(OPENSSL_LHASH *lh, const void *data); void OPENSSL_LH_doall(OPENSSL_LHASH *lh, OPENSSL_LH_DOALL_FUNC func); -void OPENSSL_LH_doall_arg(OPENSSL_LHASH *lh, OPENSSL_LH_DOALL_FUNCARG func, void *arg); +void OPENSSL_LH_doall_arg(OPENSSL_LHASH *lh, + OPENSSL_LH_DOALL_FUNCARG func, void *arg); +void OPENSSL_LH_doall_arg_thunk(OPENSSL_LHASH *lh, + OPENSSL_LH_DOALL_FUNCARG_THUNK daaw, + OPENSSL_LH_DOALL_FUNCARG fn, void *arg); + unsigned long OPENSSL_LH_strhash(const char *c); unsigned long OPENSSL_LH_num_items(const OPENSSL_LHASH *lh); unsigned long OPENSSL_LH_get_down_load(const OPENSSL_LHASH *lh); void OPENSSL_LH_set_down_load(OPENSSL_LHASH *lh, unsigned long down_load); # ifndef OPENSSL_NO_STDIO -void OPENSSL_LH_stats(const OPENSSL_LHASH *lh, FILE *fp); -void OPENSSL_LH_node_stats(const OPENSSL_LHASH *lh, FILE *fp); -void OPENSSL_LH_node_usage_stats(const OPENSSL_LHASH *lh, FILE *fp); +# ifndef OPENSSL_NO_DEPRECATED_3_1 +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_stats(const OPENSSL_LHASH *lh, FILE *fp); +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_node_stats(const OPENSSL_LHASH *lh, FILE *fp); +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_node_usage_stats(const OPENSSL_LHASH *lh, FILE *fp); +# endif +# endif +# ifndef OPENSSL_NO_DEPRECATED_3_1 +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_stats_bio(const OPENSSL_LHASH *lh, BIO *out); +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_node_stats_bio(const OPENSSL_LHASH *lh, BIO *out); +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_node_usage_stats_bio(const OPENSSL_LHASH *lh, BIO *out); # endif -void OPENSSL_LH_stats_bio(const OPENSSL_LHASH *lh, BIO *out); -void OPENSSL_LH_node_stats_bio(const OPENSSL_LHASH *lh, BIO *out); -void OPENSSL_LH_node_usage_stats_bio(const OPENSSL_LHASH *lh, BIO *out); # ifndef OPENSSL_NO_DEPRECATED_1_1_0 # define _LHASH OPENSSL_LHASH @@ -129,110 +150,190 @@ void OPENSSL_LH_node_usage_stats_bio(const OPENSSL_LHASH *lh, BIO *out); /* Helper macro for internal use */ # define DEFINE_LHASH_OF_INTERNAL(type) \ - LHASH_OF(type) { union lh_##type##_dummy { void* d1; unsigned long d2; int d3; } dummy; }; \ + LHASH_OF(type) { \ + union lh_##type##_dummy { void* d1; unsigned long d2; int d3; } dummy; \ + }; \ typedef int (*lh_##type##_compfunc)(const type *a, const type *b); \ typedef unsigned long (*lh_##type##_hashfunc)(const type *a); \ typedef void (*lh_##type##_doallfunc)(type *a); \ - static ossl_unused ossl_inline type *ossl_check_##type##_lh_plain_type(type *ptr) \ + static ossl_inline unsigned long lh_##type##_hash_thunk(const void *data, OPENSSL_LH_HASHFUNC hfn) \ + { \ + unsigned long (*hfn_conv)(const type *) = (unsigned long (*)(const type *))hfn; \ + return hfn_conv((const type *)data); \ + } \ + static ossl_inline int lh_##type##_comp_thunk(const void *da, const void *db, OPENSSL_LH_COMPFUNC cfn) \ + { \ + int (*cfn_conv)(const type *, const type *) = (int (*)(const type *, const type *))cfn; \ + return cfn_conv((const type *)da, (const type *)db); \ + } \ + static ossl_inline void lh_##type##_doall_thunk(void *node, OPENSSL_LH_DOALL_FUNC doall) \ + { \ + void (*doall_conv)(type *) = (void (*)(type *))doall; \ + doall_conv((type *)node); \ + } \ + static ossl_inline void lh_##type##_doall_arg_thunk(void *node, void *arg, OPENSSL_LH_DOALL_FUNCARG doall) \ + { \ + void (*doall_conv)(type *, void *) = (void (*)(type *, void *))doall; \ + doall_conv((type *)node, arg); \ + } \ + static ossl_unused ossl_inline type *\ + ossl_check_##type##_lh_plain_type(type *ptr) \ { \ return ptr; \ } \ - static ossl_unused ossl_inline const type *ossl_check_const_##type##_lh_plain_type(const type *ptr) \ + static ossl_unused ossl_inline const type * \ + ossl_check_const_##type##_lh_plain_type(const type *ptr) \ { \ return ptr; \ } \ - static ossl_unused ossl_inline const OPENSSL_LHASH *ossl_check_const_##type##_lh_type(const LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline const OPENSSL_LHASH * \ + ossl_check_const_##type##_lh_type(const LHASH_OF(type) *lh) \ { \ return (const OPENSSL_LHASH *)lh; \ } \ - static ossl_unused ossl_inline OPENSSL_LHASH *ossl_check_##type##_lh_type(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline OPENSSL_LHASH * \ + ossl_check_##type##_lh_type(LHASH_OF(type) *lh) \ { \ return (OPENSSL_LHASH *)lh; \ } \ - static ossl_unused ossl_inline OPENSSL_LH_COMPFUNC ossl_check_##type##_lh_compfunc_type(lh_##type##_compfunc cmp) \ + static ossl_unused ossl_inline OPENSSL_LH_COMPFUNC \ + ossl_check_##type##_lh_compfunc_type(lh_##type##_compfunc cmp) \ { \ return (OPENSSL_LH_COMPFUNC)cmp; \ } \ - static ossl_unused ossl_inline OPENSSL_LH_HASHFUNC ossl_check_##type##_lh_hashfunc_type(lh_##type##_hashfunc hfn) \ + static ossl_unused ossl_inline OPENSSL_LH_HASHFUNC \ + ossl_check_##type##_lh_hashfunc_type(lh_##type##_hashfunc hfn) \ { \ return (OPENSSL_LH_HASHFUNC)hfn; \ } \ - static ossl_unused ossl_inline OPENSSL_LH_DOALL_FUNC ossl_check_##type##_lh_doallfunc_type(lh_##type##_doallfunc dfn) \ + static ossl_unused ossl_inline OPENSSL_LH_DOALL_FUNC \ + ossl_check_##type##_lh_doallfunc_type(lh_##type##_doallfunc dfn) \ { \ return (OPENSSL_LH_DOALL_FUNC)dfn; \ } \ LHASH_OF(type) -# define DEFINE_LHASH_OF(type) \ - LHASH_OF(type) { union lh_##type##_dummy { void* d1; unsigned long d2; int d3; } dummy; }; \ - static ossl_unused ossl_inline LHASH_OF(type) *lh_##type##_new(unsigned long (*hfn)(const type *), \ - int (*cfn)(const type *, const type *)) \ +# ifndef OPENSSL_NO_DEPRECATED_3_1 +# define DEFINE_LHASH_OF_DEPRECATED(type) \ + static ossl_unused ossl_inline void \ + lh_##type##_node_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ { \ - return (LHASH_OF(type) *) \ - OPENSSL_LH_new((OPENSSL_LH_HASHFUNC)hfn, (OPENSSL_LH_COMPFUNC)cfn); \ + OPENSSL_LH_node_stats_bio((const OPENSSL_LHASH *)lh, out); \ } \ - static ossl_unused ossl_inline void lh_##type##_free(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline void \ + lh_##type##_node_usage_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + { \ + OPENSSL_LH_node_usage_stats_bio((const OPENSSL_LHASH *)lh, out); \ + } \ + static ossl_unused ossl_inline void \ + lh_##type##_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + { \ + OPENSSL_LH_stats_bio((const OPENSSL_LHASH *)lh, out); \ + } +# else +# define DEFINE_LHASH_OF_DEPRECATED(type) +# endif + +# define DEFINE_LHASH_OF_EX(type) \ + LHASH_OF(type) { \ + union lh_##type##_dummy { void* d1; unsigned long d2; int d3; } dummy; \ + }; \ + static unsigned long \ + lh_##type##_hfn_thunk(const void *data, OPENSSL_LH_HASHFUNC hfn) \ + { \ + unsigned long (*hfn_conv)(const type *) = (unsigned long (*)(const type *))hfn; \ + return hfn_conv((const type *)data); \ + } \ + static int lh_##type##_cfn_thunk(const void *da, const void *db, OPENSSL_LH_COMPFUNC cfn) \ + { \ + int (*cfn_conv)(const type *, const type *) = (int (*)(const type *, const type *))cfn; \ + return cfn_conv((const type *)da, (const type *)db); \ + } \ + static ossl_unused ossl_inline void \ + lh_##type##_free(LHASH_OF(type) *lh) \ { \ OPENSSL_LH_free((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline void lh_##type##_flush(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline void \ + lh_##type##_flush(LHASH_OF(type) *lh) \ { \ OPENSSL_LH_flush((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline type *lh_##type##_insert(LHASH_OF(type) *lh, type *d) \ + static ossl_unused ossl_inline type * \ + lh_##type##_insert(LHASH_OF(type) *lh, type *d) \ { \ return (type *)OPENSSL_LH_insert((OPENSSL_LHASH *)lh, d); \ } \ - static ossl_unused ossl_inline type *lh_##type##_delete(LHASH_OF(type) *lh, const type *d) \ + static ossl_unused ossl_inline type * \ + lh_##type##_delete(LHASH_OF(type) *lh, const type *d) \ { \ return (type *)OPENSSL_LH_delete((OPENSSL_LHASH *)lh, d); \ } \ - static ossl_unused ossl_inline type *lh_##type##_retrieve(LHASH_OF(type) *lh, const type *d) \ + static ossl_unused ossl_inline type * \ + lh_##type##_retrieve(LHASH_OF(type) *lh, const type *d) \ { \ return (type *)OPENSSL_LH_retrieve((OPENSSL_LHASH *)lh, d); \ } \ - static ossl_unused ossl_inline int lh_##type##_error(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline int \ + lh_##type##_error(LHASH_OF(type) *lh) \ { \ return OPENSSL_LH_error((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline unsigned long lh_##type##_num_items(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline unsigned long \ + lh_##type##_num_items(LHASH_OF(type) *lh) \ { \ return OPENSSL_LH_num_items((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline void lh_##type##_node_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + static ossl_unused ossl_inline unsigned long \ + lh_##type##_get_down_load(LHASH_OF(type) *lh) \ { \ - OPENSSL_LH_node_stats_bio((const OPENSSL_LHASH *)lh, out); \ + return OPENSSL_LH_get_down_load((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline void lh_##type##_node_usage_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + static ossl_unused ossl_inline void \ + lh_##type##_set_down_load(LHASH_OF(type) *lh, unsigned long dl) \ { \ - OPENSSL_LH_node_usage_stats_bio((const OPENSSL_LHASH *)lh, out); \ + OPENSSL_LH_set_down_load((OPENSSL_LHASH *)lh, dl); \ } \ - static ossl_unused ossl_inline void lh_##type##_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall_thunk(void *node, OPENSSL_LH_DOALL_FUNC doall) \ { \ - OPENSSL_LH_stats_bio((const OPENSSL_LHASH *)lh, out); \ + void (*doall_conv)(type *) = (void (*)(type *))doall; \ + doall_conv((type *)node); \ } \ - static ossl_unused ossl_inline unsigned long lh_##type##_get_down_load(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall_arg_thunk(void *node, void *arg, OPENSSL_LH_DOALL_FUNCARG doall) \ { \ - return OPENSSL_LH_get_down_load((OPENSSL_LHASH *)lh); \ + void (*doall_conv)(type *, void *) = (void (*)(type *, void *))doall; \ + doall_conv((type *)node, arg); \ } \ - static ossl_unused ossl_inline void lh_##type##_set_down_load(LHASH_OF(type) *lh, unsigned long dl) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall(LHASH_OF(type) *lh, void (*doall)(type *)) \ { \ - OPENSSL_LH_set_down_load((OPENSSL_LHASH *)lh, dl); \ + OPENSSL_LH_doall((OPENSSL_LHASH *)lh, (OPENSSL_LH_DOALL_FUNC)doall); \ } \ - static ossl_unused ossl_inline void lh_##type##_doall(LHASH_OF(type) *lh, \ - void (*doall)(type *)) \ + static ossl_unused ossl_inline LHASH_OF(type) * \ + lh_##type##_new(unsigned long (*hfn)(const type *), \ + int (*cfn)(const type *, const type *)) \ { \ - OPENSSL_LH_doall((OPENSSL_LHASH *)lh, (OPENSSL_LH_DOALL_FUNC)doall); \ + return (LHASH_OF(type) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new((OPENSSL_LH_HASHFUNC)hfn, (OPENSSL_LH_COMPFUNC)cfn), \ + lh_##type##_hfn_thunk, lh_##type##_cfn_thunk, \ + lh_##type##_doall_thunk, \ + lh_##type##_doall_arg_thunk); \ } \ - static ossl_unused ossl_inline void lh_##type##_doall_arg(LHASH_OF(type) *lh, \ - void (*doallarg)(type *, void *), \ - void *arg) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall_arg(LHASH_OF(type) *lh, \ + void (*doallarg)(type *, void *), void *arg) \ { \ OPENSSL_LH_doall_arg((OPENSSL_LHASH *)lh, \ (OPENSSL_LH_DOALL_FUNCARG)doallarg, arg); \ } \ LHASH_OF(type) +# define DEFINE_LHASH_OF(type) \ + DEFINE_LHASH_OF_EX(type); \ + DEFINE_LHASH_OF_DEPRECATED(type) \ + LHASH_OF(type) + #define IMPLEMENT_LHASH_DOALL_ARG_CONST(type, argtype) \ int_implement_lhash_doall(type, argtype, const type) @@ -240,17 +341,26 @@ void OPENSSL_LH_node_usage_stats_bio(const OPENSSL_LHASH *lh, BIO *out); int_implement_lhash_doall(type, argtype, type) #define int_implement_lhash_doall(type, argtype, cbargtype) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall_##argtype##_thunk(void *node, void *arg, OPENSSL_LH_DOALL_FUNCARG fn) \ + { \ + void (*fn_conv)(cbargtype *, argtype *) = (void (*)(cbargtype *, argtype *))fn; \ + fn_conv((cbargtype *)node, (argtype *)arg); \ + } \ static ossl_unused ossl_inline void \ lh_##type##_doall_##argtype(LHASH_OF(type) *lh, \ void (*fn)(cbargtype *, argtype *), \ argtype *arg) \ { \ - OPENSSL_LH_doall_arg((OPENSSL_LHASH *)lh, (OPENSSL_LH_DOALL_FUNCARG)fn, (void *)arg); \ + OPENSSL_LH_doall_arg_thunk((OPENSSL_LHASH *)lh, \ + lh_##type##_doall_##argtype##_thunk, \ + (OPENSSL_LH_DOALL_FUNCARG)fn, \ + (void *)arg); \ } \ LHASH_OF(type) DEFINE_LHASH_OF_INTERNAL(OPENSSL_STRING); -#define lh_OPENSSL_STRING_new(hfn, cmp) ((LHASH_OF(OPENSSL_STRING) *)OPENSSL_LH_new(ossl_check_OPENSSL_STRING_lh_hashfunc_type(hfn), ossl_check_OPENSSL_STRING_lh_compfunc_type(cmp))) +#define lh_OPENSSL_STRING_new(hfn, cmp) ((LHASH_OF(OPENSSL_STRING) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new(ossl_check_OPENSSL_STRING_lh_hashfunc_type(hfn), ossl_check_OPENSSL_STRING_lh_compfunc_type(cmp)), lh_OPENSSL_STRING_hash_thunk, lh_OPENSSL_STRING_comp_thunk, lh_OPENSSL_STRING_doall_thunk, lh_OPENSSL_STRING_doall_arg_thunk)) #define lh_OPENSSL_STRING_free(lh) OPENSSL_LH_free(ossl_check_OPENSSL_STRING_lh_type(lh)) #define lh_OPENSSL_STRING_flush(lh) OPENSSL_LH_flush(ossl_check_OPENSSL_STRING_lh_type(lh)) #define lh_OPENSSL_STRING_insert(lh, ptr) ((OPENSSL_STRING *)OPENSSL_LH_insert(ossl_check_OPENSSL_STRING_lh_type(lh), ossl_check_OPENSSL_STRING_lh_plain_type(ptr))) @@ -265,7 +375,7 @@ DEFINE_LHASH_OF_INTERNAL(OPENSSL_STRING); #define lh_OPENSSL_STRING_set_down_load(lh, dl) OPENSSL_LH_set_down_load(ossl_check_OPENSSL_STRING_lh_type(lh), dl) #define lh_OPENSSL_STRING_doall(lh, dfn) OPENSSL_LH_doall(ossl_check_OPENSSL_STRING_lh_type(lh), ossl_check_OPENSSL_STRING_lh_doallfunc_type(dfn)) DEFINE_LHASH_OF_INTERNAL(OPENSSL_CSTRING); -#define lh_OPENSSL_CSTRING_new(hfn, cmp) ((LHASH_OF(OPENSSL_CSTRING) *)OPENSSL_LH_new(ossl_check_OPENSSL_CSTRING_lh_hashfunc_type(hfn), ossl_check_OPENSSL_CSTRING_lh_compfunc_type(cmp))) +#define lh_OPENSSL_CSTRING_new(hfn, cmp) ((LHASH_OF(OPENSSL_CSTRING) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new(ossl_check_OPENSSL_CSTRING_lh_hashfunc_type(hfn), ossl_check_OPENSSL_CSTRING_lh_compfunc_type(cmp)), lh_OPENSSL_CSTRING_hash_thunk, lh_OPENSSL_CSTRING_comp_thunk, lh_OPENSSL_CSTRING_doall_thunk, lh_OPENSSL_CSTRING_doall_arg_thunk)) #define lh_OPENSSL_CSTRING_free(lh) OPENSSL_LH_free(ossl_check_OPENSSL_CSTRING_lh_type(lh)) #define lh_OPENSSL_CSTRING_flush(lh) OPENSSL_LH_flush(ossl_check_OPENSSL_CSTRING_lh_type(lh)) #define lh_OPENSSL_CSTRING_insert(lh, ptr) ((OPENSSL_CSTRING *)OPENSSL_LH_insert(ossl_check_OPENSSL_CSTRING_lh_type(lh), ossl_check_OPENSSL_CSTRING_lh_plain_type(ptr))) diff --git a/deps/openssl/config/archs/aix64-gcc-as/asm_avx2/include/openssl/opensslv.h b/deps/openssl/config/archs/aix64-gcc-as/asm_avx2/include/openssl/opensslv.h index 5fb5bc63056fe0..dd50d89cb9982d 100644 --- a/deps/openssl/config/archs/aix64-gcc-as/asm_avx2/include/openssl/opensslv.h +++ b/deps/openssl/config/archs/aix64-gcc-as/asm_avx2/include/openssl/opensslv.h @@ -28,8 +28,8 @@ extern "C" { * These macros express version number MAJOR.MINOR.PATCH exactly */ # define OPENSSL_VERSION_MAJOR 3 -# define OPENSSL_VERSION_MINOR 0 -# define OPENSSL_VERSION_PATCH 17 +# define OPENSSL_VERSION_MINOR 5 +# define OPENSSL_VERSION_PATCH 1 /* * Additional version information @@ -74,8 +74,8 @@ extern "C" { * longer variant with OPENSSL_VERSION_PRE_RELEASE_STR and * OPENSSL_VERSION_BUILD_METADATA_STR appended. */ -# define OPENSSL_VERSION_STR "3.0.17" -# define OPENSSL_FULL_VERSION_STR "3.0.17" +# define OPENSSL_VERSION_STR "3.5.1" +# define OPENSSL_FULL_VERSION_STR "3.5.1" /* * SECTION 3: ADDITIONAL METADATA @@ -88,7 +88,7 @@ extern "C" { * SECTION 4: BACKWARD COMPATIBILITY */ -# define OPENSSL_VERSION_TEXT "OpenSSL 3.0.17 1 Jul 2025" +# define OPENSSL_VERSION_TEXT "OpenSSL 3.5.1 1 Jul 2025" /* Synthesize OPENSSL_VERSION_NUMBER with the layout 0xMNN00PPSL */ # ifdef OPENSSL_VERSION_PRE_RELEASE diff --git a/deps/openssl/config/archs/aix64-gcc-as/asm_avx2/include/openssl/pkcs12.h b/deps/openssl/config/archs/aix64-gcc-as/asm_avx2/include/openssl/pkcs12.h index c5e0cab06491ec..0809645dad0bbf 100644 --- a/deps/openssl/config/archs/aix64-gcc-as/asm_avx2/include/openssl/pkcs12.h +++ b/deps/openssl/config/archs/aix64-gcc-as/asm_avx2/include/openssl/pkcs12.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/pkcs12.h.in * - * Copyright 1999-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1999-2024 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -25,6 +25,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -41,6 +44,7 @@ extern "C" { # define PKCS12_MAC_KEY_LENGTH 20 +/* The macro is expected to be used only internally. Kept for backwards compatibility. */ # define PKCS12_SALT_LEN 8 /* It's not clear if these are actually needed... */ @@ -130,7 +134,9 @@ int PKCS12_SAFEBAG_get_bag_nid(const PKCS12_SAFEBAG *bag); const ASN1_TYPE *PKCS12_SAFEBAG_get0_bag_obj(const PKCS12_SAFEBAG *bag); const ASN1_OBJECT *PKCS12_SAFEBAG_get0_bag_type(const PKCS12_SAFEBAG *bag); +X509 *PKCS12_SAFEBAG_get1_cert_ex(const PKCS12_SAFEBAG *bag, OSSL_LIB_CTX *libctx, const char *propq); X509 *PKCS12_SAFEBAG_get1_cert(const PKCS12_SAFEBAG *bag); +X509_CRL *PKCS12_SAFEBAG_get1_crl_ex(const PKCS12_SAFEBAG *bag, OSSL_LIB_CTX *libctx, const char *propq); X509_CRL *PKCS12_SAFEBAG_get1_crl(const PKCS12_SAFEBAG *bag); const STACK_OF(PKCS12_SAFEBAG) * PKCS12_SAFEBAG_get0_safes(const PKCS12_SAFEBAG *bag); @@ -218,6 +224,7 @@ ASN1_TYPE *PKCS12_get_attr_gen(const STACK_OF(X509_ATTRIBUTE) *attrs, char *PKCS12_get_friendlyname(PKCS12_SAFEBAG *bag); const STACK_OF(X509_ATTRIBUTE) * PKCS12_SAFEBAG_get0_attrs(const PKCS12_SAFEBAG *bag); +void PKCS12_SAFEBAG_set0_attrs(PKCS12_SAFEBAG *bag, STACK_OF(X509_ATTRIBUTE) *attrs); unsigned char *PKCS12_pbe_crypt(const X509_ALGOR *algor, const char *pass, int passlen, const unsigned char *in, int inlen, @@ -285,6 +292,9 @@ int PKCS12_verify_mac(PKCS12 *p12, const char *pass, int passlen); int PKCS12_set_mac(PKCS12 *p12, const char *pass, int passlen, unsigned char *salt, int saltlen, int iter, const EVP_MD *md_type); +int PKCS12_set_pbmac1_pbkdf2(PKCS12 *p12, const char *pass, int passlen, + unsigned char *salt, int saltlen, int iter, + const EVP_MD *md_type, const char *prf_md_name); int PKCS12_setup_mac(PKCS12 *p12, int iter, unsigned char *salt, int saltlen, const EVP_MD *md_type); unsigned char *OPENSSL_asc2uni(const char *asc, int asclen, @@ -305,6 +315,7 @@ DECLARE_ASN1_ITEM(PKCS12_AUTHSAFES) void PKCS12_PBE_add(void); int PKCS12_parse(PKCS12 *p12, const char *pass, EVP_PKEY **pkey, X509 **cert, STACK_OF(X509) **ca); +typedef int PKCS12_create_cb(PKCS12_SAFEBAG *bag, void *cbarg); PKCS12 *PKCS12_create(const char *pass, const char *name, EVP_PKEY *pkey, X509 *cert, STACK_OF(X509) *ca, int nid_key, int nid_cert, int iter, int mac_iter, int keytype); @@ -312,6 +323,11 @@ PKCS12 *PKCS12_create_ex(const char *pass, const char *name, EVP_PKEY *pkey, X509 *cert, STACK_OF(X509) *ca, int nid_key, int nid_cert, int iter, int mac_iter, int keytype, OSSL_LIB_CTX *ctx, const char *propq); +PKCS12 *PKCS12_create_ex2(const char *pass, const char *name, EVP_PKEY *pkey, + X509 *cert, STACK_OF(X509) *ca, int nid_key, int nid_cert, + int iter, int mac_iter, int keytype, + OSSL_LIB_CTX *ctx, const char *propq, + PKCS12_create_cb *cb, void *cbarg); PKCS12_SAFEBAG *PKCS12_add_cert(STACK_OF(PKCS12_SAFEBAG) **pbags, X509 *cert); PKCS12_SAFEBAG *PKCS12_add_key(STACK_OF(PKCS12_SAFEBAG) **pbags, diff --git a/deps/openssl/config/archs/aix64-gcc-as/asm_avx2/include/openssl/pkcs7.h b/deps/openssl/config/archs/aix64-gcc-as/asm_avx2/include/openssl/pkcs7.h index 0ce79bf4fa160e..fa68462aff973b 100644 --- a/deps/openssl/config/archs/aix64-gcc-as/asm_avx2/include/openssl/pkcs7.h +++ b/deps/openssl/config/archs/aix64-gcc-as/asm_avx2/include/openssl/pkcs7.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/pkcs7.h.in * - * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -28,6 +28,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -131,8 +134,8 @@ SKM_DEFINE_STACK_OF_INTERNAL(PKCS7_RECIP_INFO, PKCS7_RECIP_INFO, PKCS7_RECIP_INF typedef struct pkcs7_signed_st { ASN1_INTEGER *version; /* version 1 */ STACK_OF(X509_ALGOR) *md_algs; /* md used */ - STACK_OF(X509) *cert; /* [ 0 ] */ - STACK_OF(X509_CRL) *crl; /* [ 1 ] */ + STACK_OF(X509) *cert; /* [ 0 ] */ /* name should be 'certificates' */ + STACK_OF(X509_CRL) *crl; /* [ 1 ] */ /* name should be 'crls' */ STACK_OF(PKCS7_SIGNER_INFO) *signer_info; struct pkcs7_st *contents; } PKCS7_SIGNED; @@ -158,8 +161,8 @@ typedef struct pkcs7_enveloped_st { typedef struct pkcs7_signedandenveloped_st { ASN1_INTEGER *version; /* version 1 */ STACK_OF(X509_ALGOR) *md_algs; /* md used */ - STACK_OF(X509) *cert; /* [ 0 ] */ - STACK_OF(X509_CRL) *crl; /* [ 1 ] */ + STACK_OF(X509) *cert; /* [ 0 ] */ /* name should be 'certificates' */ + STACK_OF(X509_CRL) *crl; /* [ 1 ] */ /* name should be 'crls' */ STACK_OF(PKCS7_SIGNER_INFO) *signer_info; PKCS7_ENC_CONTENT *enc_data; STACK_OF(PKCS7_RECIP_INFO) *recipientinfo; @@ -200,7 +203,7 @@ typedef struct pkcs7_st { /* NID_pkcs7_data */ ASN1_OCTET_STRING *data; /* NID_pkcs7_signed */ - PKCS7_SIGNED *sign; + PKCS7_SIGNED *sign; /* field name 'signed' would clash with C keyword */ /* NID_pkcs7_enveloped */ PKCS7_ENVELOPE *enveloped; /* NID_pkcs7_signedAndEnveloped */ @@ -341,13 +344,13 @@ int PKCS7_SIGNER_INFO_set(PKCS7_SIGNER_INFO *p7i, X509 *x509, EVP_PKEY *pkey, const EVP_MD *dgst); int PKCS7_SIGNER_INFO_sign(PKCS7_SIGNER_INFO *si); int PKCS7_add_signer(PKCS7 *p7, PKCS7_SIGNER_INFO *p7i); -int PKCS7_add_certificate(PKCS7 *p7, X509 *x509); -int PKCS7_add_crl(PKCS7 *p7, X509_CRL *x509); +int PKCS7_add_certificate(PKCS7 *p7, X509 *cert); +int PKCS7_add_crl(PKCS7 *p7, X509_CRL *crl); int PKCS7_content_new(PKCS7 *p7, int nid); int PKCS7_dataVerify(X509_STORE *cert_store, X509_STORE_CTX *ctx, BIO *bio, PKCS7 *p7, PKCS7_SIGNER_INFO *si); int PKCS7_signatureVerify(BIO *bio, PKCS7 *p7, PKCS7_SIGNER_INFO *si, - X509 *x509); + X509 *signer); BIO *PKCS7_dataInit(PKCS7 *p7, BIO *bio); int PKCS7_dataFinal(PKCS7 *p7, BIO *bio); diff --git a/deps/openssl/config/archs/aix64-gcc-as/asm_avx2/include/openssl/ssl.h b/deps/openssl/config/archs/aix64-gcc-as/asm_avx2/include/openssl/ssl.h index 3df725c56d6c5e..7e3d89c7ef3dc9 100644 --- a/deps/openssl/config/archs/aix64-gcc-as/asm_avx2/include/openssl/ssl.h +++ b/deps/openssl/config/archs/aix64-gcc-as/asm_avx2/include/openssl/ssl.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/ssl.h.in * - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved * Copyright 2005 Nokia. All rights reserved. * @@ -24,6 +24,7 @@ # endif # include +# include # include # include # include @@ -42,6 +43,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -231,10 +235,8 @@ typedef struct ssl_cipher_st SSL_CIPHER; typedef struct ssl_session_st SSL_SESSION; typedef struct tls_sigalgs_st TLS_SIGALGS; typedef struct ssl_conf_ctx_st SSL_CONF_CTX; -typedef struct ssl_comp_st SSL_COMP; STACK_OF(SSL_CIPHER); -STACK_OF(SSL_COMP); /* SRTP protection profiles for use with the use_srtp extension (RFC 5764)*/ typedef struct srtp_protection_profile_st { @@ -278,28 +280,31 @@ typedef int (*tls_session_secret_cb_fn)(SSL *s, void *secret, int *secret_len, /* Extension context codes */ /* This extension is only allowed in TLS */ -#define SSL_EXT_TLS_ONLY 0x0001 +#define SSL_EXT_TLS_ONLY 0x00001 /* This extension is only allowed in DTLS */ -#define SSL_EXT_DTLS_ONLY 0x0002 +#define SSL_EXT_DTLS_ONLY 0x00002 /* Some extensions may be allowed in DTLS but we don't implement them for it */ -#define SSL_EXT_TLS_IMPLEMENTATION_ONLY 0x0004 +#define SSL_EXT_TLS_IMPLEMENTATION_ONLY 0x00004 /* Most extensions are not defined for SSLv3 but EXT_TYPE_renegotiate is */ -#define SSL_EXT_SSL3_ALLOWED 0x0008 +#define SSL_EXT_SSL3_ALLOWED 0x00008 /* Extension is only defined for TLS1.2 and below */ -#define SSL_EXT_TLS1_2_AND_BELOW_ONLY 0x0010 +#define SSL_EXT_TLS1_2_AND_BELOW_ONLY 0x00010 /* Extension is only defined for TLS1.3 and above */ -#define SSL_EXT_TLS1_3_ONLY 0x0020 +#define SSL_EXT_TLS1_3_ONLY 0x00020 /* Ignore this extension during parsing if we are resuming */ -#define SSL_EXT_IGNORE_ON_RESUMPTION 0x0040 -#define SSL_EXT_CLIENT_HELLO 0x0080 +#define SSL_EXT_IGNORE_ON_RESUMPTION 0x00040 +#define SSL_EXT_CLIENT_HELLO 0x00080 /* Really means TLS1.2 or below */ -#define SSL_EXT_TLS1_2_SERVER_HELLO 0x0100 -#define SSL_EXT_TLS1_3_SERVER_HELLO 0x0200 -#define SSL_EXT_TLS1_3_ENCRYPTED_EXTENSIONS 0x0400 -#define SSL_EXT_TLS1_3_HELLO_RETRY_REQUEST 0x0800 -#define SSL_EXT_TLS1_3_CERTIFICATE 0x1000 -#define SSL_EXT_TLS1_3_NEW_SESSION_TICKET 0x2000 -#define SSL_EXT_TLS1_3_CERTIFICATE_REQUEST 0x4000 +#define SSL_EXT_TLS1_2_SERVER_HELLO 0x00100 +#define SSL_EXT_TLS1_3_SERVER_HELLO 0x00200 +#define SSL_EXT_TLS1_3_ENCRYPTED_EXTENSIONS 0x00400 +#define SSL_EXT_TLS1_3_HELLO_RETRY_REQUEST 0x00800 +#define SSL_EXT_TLS1_3_CERTIFICATE 0x01000 +#define SSL_EXT_TLS1_3_NEW_SESSION_TICKET 0x02000 +#define SSL_EXT_TLS1_3_CERTIFICATE_REQUEST 0x04000 +#define SSL_EXT_TLS1_3_CERTIFICATE_COMPRESSION 0x08000 +/* When sending a raw public key in a certificate message */ +#define SSL_EXT_TLS1_3_RAW_PUBLIC_KEY 0x10000 /* Typedefs for handling custom extensions */ @@ -404,7 +409,7 @@ typedef int (*SSL_async_callback_fn)(SSL *s, void *arg); */ # define SSL_OP_CIPHER_SERVER_PREFERENCE SSL_OP_BIT(22) /* - * If set, a server will allow a client to issue a SSLv3.0 version + * If set, a server will allow a client to issue an SSLv3.0 version * number as latest version supported in the premaster secret, even when * TLSv1.0 (version 3.1) was announced in the client hello. Normally * this is forbidden to prevent version rollback attacks. @@ -430,6 +435,19 @@ typedef int (*SSL_async_callback_fn)(SSL *s, void *arg); * interoperability with CryptoPro CSP 3.x */ # define SSL_OP_CRYPTOPRO_TLSEXT_BUG SSL_OP_BIT(31) +/* + * Disable RFC8879 certificate compression + * SSL_OP_NO_TX_CERTIFICATE_COMPRESSION: don't send compressed certificates, + * and ignore the extension when received. + * SSL_OP_NO_RX_CERTIFICATE_COMPRESSION: don't send the extension, and + * subsequently indicating that receiving is not supported + */ +# define SSL_OP_NO_TX_CERTIFICATE_COMPRESSION SSL_OP_BIT(32) +# define SSL_OP_NO_RX_CERTIFICATE_COMPRESSION SSL_OP_BIT(33) + /* Enable KTLS TX zerocopy on Linux */ +# define SSL_OP_ENABLE_KTLS_TX_ZEROCOPY_SENDFILE SSL_OP_BIT(34) + +#define SSL_OP_PREFER_NO_DHE_KEX SSL_OP_BIT(35) /* * Option "collections." @@ -574,6 +592,8 @@ typedef int (*SSL_async_callback_fn)(SSL *s, void *arg); # define CERT_PKEY_CERT_TYPE 0x400 /* Cert chain suitable to Suite B */ # define CERT_PKEY_SUITEB 0x800 +/* Cert pkey valid for raw public key use */ +# define CERT_PKEY_RPK 0x1000 # define SSL_CONF_FLAG_CMDLINE 0x1 # define SSL_CONF_FLAG_FILE 0x2 @@ -965,6 +985,7 @@ uint32_t SSL_get_recv_max_early_data(const SSL *s); # include /* This is mostly sslv3 with a few tweaks */ # include /* Datagram TLS */ # include /* Support for the use_srtp extension */ +# include #ifdef __cplusplus extern "C" { @@ -1000,32 +1021,6 @@ SKM_DEFINE_STACK_OF_INTERNAL(SSL_CIPHER, const SSL_CIPHER, SSL_CIPHER) #define sk_SSL_CIPHER_dup(sk) ((STACK_OF(SSL_CIPHER) *)OPENSSL_sk_dup(ossl_check_const_SSL_CIPHER_sk_type(sk))) #define sk_SSL_CIPHER_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(SSL_CIPHER) *)OPENSSL_sk_deep_copy(ossl_check_const_SSL_CIPHER_sk_type(sk), ossl_check_SSL_CIPHER_copyfunc_type(copyfunc), ossl_check_SSL_CIPHER_freefunc_type(freefunc))) #define sk_SSL_CIPHER_set_cmp_func(sk, cmp) ((sk_SSL_CIPHER_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_SSL_CIPHER_sk_type(sk), ossl_check_SSL_CIPHER_compfunc_type(cmp))) -SKM_DEFINE_STACK_OF_INTERNAL(SSL_COMP, SSL_COMP, SSL_COMP) -#define sk_SSL_COMP_num(sk) OPENSSL_sk_num(ossl_check_const_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_value(sk, idx) ((SSL_COMP *)OPENSSL_sk_value(ossl_check_const_SSL_COMP_sk_type(sk), (idx))) -#define sk_SSL_COMP_new(cmp) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new(ossl_check_SSL_COMP_compfunc_type(cmp))) -#define sk_SSL_COMP_new_null() ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new_null()) -#define sk_SSL_COMP_new_reserve(cmp, n) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new_reserve(ossl_check_SSL_COMP_compfunc_type(cmp), (n))) -#define sk_SSL_COMP_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_SSL_COMP_sk_type(sk), (n)) -#define sk_SSL_COMP_free(sk) OPENSSL_sk_free(ossl_check_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_zero(sk) OPENSSL_sk_zero(ossl_check_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_delete(sk, i) ((SSL_COMP *)OPENSSL_sk_delete(ossl_check_SSL_COMP_sk_type(sk), (i))) -#define sk_SSL_COMP_delete_ptr(sk, ptr) ((SSL_COMP *)OPENSSL_sk_delete_ptr(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr))) -#define sk_SSL_COMP_push(sk, ptr) OPENSSL_sk_push(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) -#define sk_SSL_COMP_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) -#define sk_SSL_COMP_pop(sk) ((SSL_COMP *)OPENSSL_sk_pop(ossl_check_SSL_COMP_sk_type(sk))) -#define sk_SSL_COMP_shift(sk) ((SSL_COMP *)OPENSSL_sk_shift(ossl_check_SSL_COMP_sk_type(sk))) -#define sk_SSL_COMP_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_SSL_COMP_sk_type(sk),ossl_check_SSL_COMP_freefunc_type(freefunc)) -#define sk_SSL_COMP_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr), (idx)) -#define sk_SSL_COMP_set(sk, idx, ptr) ((SSL_COMP *)OPENSSL_sk_set(ossl_check_SSL_COMP_sk_type(sk), (idx), ossl_check_SSL_COMP_type(ptr))) -#define sk_SSL_COMP_find(sk, ptr) OPENSSL_sk_find(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) -#define sk_SSL_COMP_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) -#define sk_SSL_COMP_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr), pnum) -#define sk_SSL_COMP_sort(sk) OPENSSL_sk_sort(ossl_check_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_dup(sk) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_dup(ossl_check_const_SSL_COMP_sk_type(sk))) -#define sk_SSL_COMP_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_deep_copy(ossl_check_const_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_copyfunc_type(copyfunc), ossl_check_SSL_COMP_freefunc_type(freefunc))) -#define sk_SSL_COMP_set_cmp_func(sk, cmp) ((sk_SSL_COMP_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_compfunc_type(cmp))) /* compatibility */ @@ -1066,6 +1061,7 @@ typedef enum { DTLS_ST_CR_HELLO_VERIFY_REQUEST, TLS_ST_CR_SRVR_HELLO, TLS_ST_CR_CERT, + TLS_ST_CR_COMP_CERT, TLS_ST_CR_CERT_STATUS, TLS_ST_CR_KEY_EXCH, TLS_ST_CR_CERT_REQ, @@ -1075,6 +1071,7 @@ typedef enum { TLS_ST_CR_FINISHED, TLS_ST_CW_CLNT_HELLO, TLS_ST_CW_CERT, + TLS_ST_CW_COMP_CERT, TLS_ST_CW_KEY_EXCH, TLS_ST_CW_CERT_VRFY, TLS_ST_CW_CHANGE, @@ -1085,10 +1082,12 @@ typedef enum { DTLS_ST_SW_HELLO_VERIFY_REQUEST, TLS_ST_SW_SRVR_HELLO, TLS_ST_SW_CERT, + TLS_ST_SW_COMP_CERT, TLS_ST_SW_KEY_EXCH, TLS_ST_SW_CERT_REQ, TLS_ST_SW_SRVR_DONE, TLS_ST_SR_CERT, + TLS_ST_SR_COMP_CERT, TLS_ST_SR_KEY_EXCH, TLS_ST_SR_CERT_VRFY, TLS_ST_SR_NEXT_PROTO, @@ -1380,9 +1379,13 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) # define SSL_CTRL_GET_SIGNATURE_NID 132 # define SSL_CTRL_GET_TMP_KEY 133 # define SSL_CTRL_GET_NEGOTIATED_GROUP 134 +# define SSL_CTRL_GET_IANA_GROUPS 135 # define SSL_CTRL_SET_RETRY_VERIFY 136 # define SSL_CTRL_GET_VERIFY_CERT_STORE 137 # define SSL_CTRL_GET_CHAIN_CERT_STORE 138 +# define SSL_CTRL_GET0_IMPLEMENTED_GROUPS 139 +# define SSL_CTRL_GET_SIGNATURE_NAME 140 +# define SSL_CTRL_GET_PEER_SIGNATURE_NAME 141 # define SSL_CERT_SET_FIRST 1 # define SSL_CERT_SET_NEXT 2 # define SSL_CERT_SET_SERVER 3 @@ -1485,10 +1488,15 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) # define SSL_get1_groups(s, glist) \ SSL_ctrl(s,SSL_CTRL_GET_GROUPS,0,(int*)(glist)) +# define SSL_get0_iana_groups(s, plst) \ + SSL_ctrl(s,SSL_CTRL_GET_IANA_GROUPS,0,(uint16_t **)(plst)) # define SSL_CTX_set1_groups(ctx, glist, glistlen) \ SSL_CTX_ctrl(ctx,SSL_CTRL_SET_GROUPS,glistlen,(int *)(glist)) # define SSL_CTX_set1_groups_list(ctx, s) \ SSL_CTX_ctrl(ctx,SSL_CTRL_SET_GROUPS_LIST,0,(char *)(s)) +# define SSL_CTX_get0_implemented_groups(ctx, all, out) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_GET0_IMPLEMENTED_GROUPS, all, \ + (STACK_OF(OPENSSL_CSTRING) *)(out)) # define SSL_set1_groups(s, glist, glistlen) \ SSL_ctrl(s,SSL_CTRL_SET_GROUPS,glistlen,(char *)(glist)) # define SSL_set1_groups_list(s, str) \ @@ -1520,8 +1528,12 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) (char *)(clist)) # define SSL_set1_client_certificate_types(s, clist, clistlen) \ SSL_ctrl(s,SSL_CTRL_SET_CLIENT_CERT_TYPES,clistlen,(char *)(clist)) +# define SSL_get0_signature_name(s, str) \ + SSL_ctrl(s,SSL_CTRL_GET_SIGNATURE_NAME,0,(1?(str):(const char **)NULL)) # define SSL_get_signature_nid(s, pn) \ SSL_ctrl(s,SSL_CTRL_GET_SIGNATURE_NID,0,pn) +# define SSL_get0_peer_signature_name(s, str) \ + SSL_ctrl(s,SSL_CTRL_GET_PEER_SIGNATURE_NAME,0,(1?(str):(const char **)NULL)) # define SSL_get_peer_signature_nid(s, pn) \ SSL_ctrl(s,SSL_CTRL_GET_PEER_SIGNATURE_NID,0,pn) # define SSL_get_peer_tmp_key(s, pk) \ @@ -1549,6 +1561,7 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) # define SSL_get_max_proto_version(s) \ SSL_ctrl(s, SSL_CTRL_GET_MAX_PROTO_VERSION, 0, NULL) +const char *SSL_get0_group_name(SSL *s); const char *SSL_group_to_name(SSL *s, int id); /* Backwards compatibility, original 1.1.0 names */ @@ -1613,7 +1626,11 @@ void SSL_CTX_set1_cert_store(SSL_CTX *, X509_STORE *); __owur int SSL_want(const SSL *s); __owur int SSL_clear(SSL *s); +#ifndef OPENSSL_NO_DEPRECATED_3_4 +OSSL_DEPRECATEDIN_3_4_FOR("not Y2038-safe, replace with SSL_CTX_flush_sessions_ex()") void SSL_CTX_flush_sessions(SSL_CTX *ctx, long tm); +#endif +void SSL_CTX_flush_sessions_ex(SSL_CTX *ctx, time_t tm); __owur const SSL_CIPHER *SSL_get_current_cipher(const SSL *s); __owur const SSL_CIPHER *SSL_get_pending_cipher(const SSL *s); @@ -1725,13 +1742,21 @@ __owur const char *SSL_state_string(const SSL *s); __owur const char *SSL_rstate_string(const SSL *s); __owur const char *SSL_state_string_long(const SSL *s); __owur const char *SSL_rstate_string_long(const SSL *s); + +#ifndef OPENSSL_NO_DEPRECATED_3_4 +OSSL_DEPRECATEDIN_3_4_FOR("not Y2038-safe, replace with SSL_SESSION_get_time_ex()") __owur long SSL_SESSION_get_time(const SSL_SESSION *s); +OSSL_DEPRECATEDIN_3_4_FOR("not Y2038-safe, replace with SSL_SESSION_set_time_ex()") __owur long SSL_SESSION_set_time(SSL_SESSION *s, long t); +#endif __owur long SSL_SESSION_get_timeout(const SSL_SESSION *s); __owur long SSL_SESSION_set_timeout(SSL_SESSION *s, long t); __owur int SSL_SESSION_get_protocol_version(const SSL_SESSION *s); __owur int SSL_SESSION_set_protocol_version(SSL_SESSION *s, int version); +__owur time_t SSL_SESSION_get_time_ex(const SSL_SESSION *s); +__owur time_t SSL_SESSION_set_time_ex(SSL_SESSION *s, time_t t); + __owur const char *SSL_SESSION_get0_hostname(const SSL_SESSION *s); __owur int SSL_SESSION_set1_hostname(SSL_SESSION *s, const char *hostname); void SSL_SESSION_get0_alpn_selected(const SSL_SESSION *s, @@ -1783,6 +1808,9 @@ __owur int SSL_has_matching_session_id(const SSL *s, unsigned int id_len); SSL_SESSION *d2i_SSL_SESSION(SSL_SESSION **a, const unsigned char **pp, long length); +SSL_SESSION *d2i_SSL_SESSION_ex(SSL_SESSION **a, const unsigned char **pp, + long length, OSSL_LIB_CTX *libctx, + const char *propq); # ifdef OPENSSL_X509_H __owur X509 *SSL_get0_peer_certificate(const SSL *s); @@ -1840,6 +1868,8 @@ __owur int SSL_CTX_set_session_id_context(SSL_CTX *ctx, SSL *SSL_new(SSL_CTX *ctx); int SSL_up_ref(SSL *s); int SSL_is_dtls(const SSL *s); +int SSL_is_tls(const SSL *s); +int SSL_is_quic(const SSL *s); __owur int SSL_set_session_id_context(SSL *ssl, const unsigned char *sid_ctx, unsigned int sid_ctx_len); @@ -1848,8 +1878,8 @@ __owur int SSL_set_purpose(SSL *ssl, int purpose); __owur int SSL_CTX_set_trust(SSL_CTX *ctx, int trust); __owur int SSL_set_trust(SSL *ssl, int trust); -__owur int SSL_set1_host(SSL *s, const char *hostname); -__owur int SSL_add1_host(SSL *s, const char *hostname); +__owur int SSL_set1_host(SSL *s, const char *host); +__owur int SSL_add1_host(SSL *s, const char *host); __owur const char *SSL_get0_peername(SSL *s); void SSL_set_hostflags(SSL *s, unsigned int flags); @@ -1924,6 +1954,11 @@ OSSL_DEPRECATEDIN_3_0 __owur char *SSL_get_srp_userinfo(SSL *s); typedef int (*SSL_client_hello_cb_fn) (SSL *s, int *al, void *arg); void SSL_CTX_set_client_hello_cb(SSL_CTX *c, SSL_client_hello_cb_fn cb, void *arg); +typedef int (*SSL_new_pending_conn_cb_fn) (SSL_CTX *ctx, SSL *new_ssl, + void *arg); +void SSL_CTX_set_new_pending_conn_cb(SSL_CTX *c, SSL_new_pending_conn_cb_fn cb, + void *arg); + int SSL_client_hello_isv2(SSL *s); unsigned int SSL_client_hello_get0_legacy_version(SSL *s); size_t SSL_client_hello_get0_random(SSL *s, const unsigned char **out); @@ -1932,6 +1967,8 @@ size_t SSL_client_hello_get0_ciphers(SSL *s, const unsigned char **out); size_t SSL_client_hello_get0_compression_methods(SSL *s, const unsigned char **out); int SSL_client_hello_get1_extensions_present(SSL *s, int **out, size_t *outlen); +int SSL_client_hello_get_extension_order(SSL *s, uint16_t *exts, + size_t *num_exts); int SSL_client_hello_get0_ext(SSL *s, unsigned int type, const unsigned char **out, size_t *outlen); @@ -1978,6 +2015,12 @@ long SSL_callback_ctrl(SSL *, int, void (*)(void)); long SSL_CTX_ctrl(SSL_CTX *ctx, int cmd, long larg, void *parg); long SSL_CTX_callback_ctrl(SSL_CTX *, int, void (*)(void)); +# define SSL_WRITE_FLAG_CONCLUDE (1U << 0) + +__owur int SSL_write_ex2(SSL *s, const void *buf, size_t num, + uint64_t flags, + size_t *written); + # define SSL_EARLY_DATA_NOT_SENT 0 # define SSL_EARLY_DATA_REJECTED 1 # define SSL_EARLY_DATA_ACCEPTED 2 @@ -1986,6 +2029,7 @@ __owur int SSL_get_early_data_status(const SSL *s); __owur int SSL_get_error(const SSL *s, int ret_code); __owur const char *SSL_get_version(const SSL *s); +__owur int SSL_get_handshake_rtt(const SSL *s, uint64_t *rtt); /* This sets the 'default' SSL version that SSL_new() will create */ # ifndef OPENSSL_NO_DEPRECATED_3_0 @@ -2281,6 +2325,8 @@ void SSL_CTX_set_record_padding_callback(SSL_CTX *ctx, void SSL_CTX_set_record_padding_callback_arg(SSL_CTX *ctx, void *arg); void *SSL_CTX_get_record_padding_callback_arg(const SSL_CTX *ctx); int SSL_CTX_set_block_padding(SSL_CTX *ctx, size_t block_size); +int SSL_CTX_set_block_padding_ex(SSL_CTX *ctx, size_t app_block_size, + size_t hs_block_size); int SSL_set_record_padding_callback(SSL *ssl, size_t (*cb) (SSL *ssl, int type, @@ -2288,12 +2334,255 @@ int SSL_set_record_padding_callback(SSL *ssl, void SSL_set_record_padding_callback_arg(SSL *ssl, void *arg); void *SSL_get_record_padding_callback_arg(const SSL *ssl); int SSL_set_block_padding(SSL *ssl, size_t block_size); - +int SSL_set_block_padding_ex(SSL *ssl, size_t app_block_size, + size_t hs_block_size); int SSL_set_num_tickets(SSL *s, size_t num_tickets); size_t SSL_get_num_tickets(const SSL *s); int SSL_CTX_set_num_tickets(SSL_CTX *ctx, size_t num_tickets); size_t SSL_CTX_get_num_tickets(const SSL_CTX *ctx); +/* QUIC support */ +int SSL_handle_events(SSL *s); +__owur int SSL_get_event_timeout(SSL *s, struct timeval *tv, int *is_infinite); +__owur int SSL_get_rpoll_descriptor(SSL *s, BIO_POLL_DESCRIPTOR *desc); +__owur int SSL_get_wpoll_descriptor(SSL *s, BIO_POLL_DESCRIPTOR *desc); +__owur int SSL_net_read_desired(SSL *s); +__owur int SSL_net_write_desired(SSL *s); +__owur int SSL_set_blocking_mode(SSL *s, int blocking); +__owur int SSL_get_blocking_mode(SSL *s); +__owur int SSL_set1_initial_peer_addr(SSL *s, const BIO_ADDR *peer_addr); +__owur SSL *SSL_get0_connection(SSL *s); +__owur int SSL_is_connection(SSL *s); + +__owur int SSL_is_listener(SSL *ssl); +__owur SSL *SSL_get0_listener(SSL *s); +#define SSL_LISTENER_FLAG_NO_VALIDATE (1UL << 1) +__owur SSL *SSL_new_listener(SSL_CTX *ctx, uint64_t flags); +__owur SSL *SSL_new_listener_from(SSL *ssl, uint64_t flags); +__owur SSL *SSL_new_from_listener(SSL *ssl, uint64_t flags); +#define SSL_ACCEPT_CONNECTION_NO_BLOCK (1UL << 0) +__owur SSL *SSL_accept_connection(SSL *ssl, uint64_t flags); +__owur size_t SSL_get_accept_connection_queue_len(SSL *ssl); +__owur int SSL_listen(SSL *ssl); + +__owur int SSL_is_domain(SSL *s); +__owur SSL *SSL_get0_domain(SSL *s); +__owur SSL *SSL_new_domain(SSL_CTX *ctx, uint64_t flags); + +#define SSL_DOMAIN_FLAG_SINGLE_THREAD (1U << 0) +#define SSL_DOMAIN_FLAG_MULTI_THREAD (1U << 1) +#define SSL_DOMAIN_FLAG_THREAD_ASSISTED (1U << 2) +#define SSL_DOMAIN_FLAG_BLOCKING (1U << 3) +#define SSL_DOMAIN_FLAG_LEGACY_BLOCKING (1U << 4) + +__owur int SSL_CTX_set_domain_flags(SSL_CTX *ctx, uint64_t domain_flags); +__owur int SSL_CTX_get_domain_flags(const SSL_CTX *ctx, uint64_t *domain_flags); +__owur int SSL_get_domain_flags(const SSL *ssl, uint64_t *domain_flags); + +#define SSL_STREAM_TYPE_NONE 0 +#define SSL_STREAM_TYPE_READ (1U << 0) +#define SSL_STREAM_TYPE_WRITE (1U << 1) +#define SSL_STREAM_TYPE_BIDI (SSL_STREAM_TYPE_READ | SSL_STREAM_TYPE_WRITE) +__owur int SSL_get_stream_type(SSL *s); + +__owur uint64_t SSL_get_stream_id(SSL *s); +__owur int SSL_is_stream_local(SSL *s); + +#define SSL_DEFAULT_STREAM_MODE_NONE 0 +#define SSL_DEFAULT_STREAM_MODE_AUTO_BIDI 1 +#define SSL_DEFAULT_STREAM_MODE_AUTO_UNI 2 +__owur int SSL_set_default_stream_mode(SSL *s, uint32_t mode); + +#define SSL_STREAM_FLAG_UNI (1U << 0) +#define SSL_STREAM_FLAG_NO_BLOCK (1U << 1) +#define SSL_STREAM_FLAG_ADVANCE (1U << 2) +__owur SSL *SSL_new_stream(SSL *s, uint64_t flags); + +#define SSL_INCOMING_STREAM_POLICY_AUTO 0 +#define SSL_INCOMING_STREAM_POLICY_ACCEPT 1 +#define SSL_INCOMING_STREAM_POLICY_REJECT 2 +__owur int SSL_set_incoming_stream_policy(SSL *s, int policy, uint64_t aec); + +#define SSL_ACCEPT_STREAM_NO_BLOCK (1U << 0) +__owur SSL *SSL_accept_stream(SSL *s, uint64_t flags); +__owur size_t SSL_get_accept_stream_queue_len(SSL *s); + +# ifndef OPENSSL_NO_QUIC +__owur int SSL_inject_net_dgram(SSL *s, const unsigned char *buf, + size_t buf_len, + const BIO_ADDR *peer, + const BIO_ADDR *local); +# endif + +typedef struct ssl_shutdown_ex_args_st { + uint64_t quic_error_code; + const char *quic_reason; +} SSL_SHUTDOWN_EX_ARGS; + +#define SSL_SHUTDOWN_FLAG_RAPID (1U << 0) +#define SSL_SHUTDOWN_FLAG_NO_STREAM_FLUSH (1U << 1) +#define SSL_SHUTDOWN_FLAG_NO_BLOCK (1U << 2) +#define SSL_SHUTDOWN_FLAG_WAIT_PEER (1U << 3) + +__owur int SSL_shutdown_ex(SSL *ssl, uint64_t flags, + const SSL_SHUTDOWN_EX_ARGS *args, + size_t args_len); + +__owur int SSL_stream_conclude(SSL *ssl, uint64_t flags); + +typedef struct ssl_stream_reset_args_st { + uint64_t quic_error_code; +} SSL_STREAM_RESET_ARGS; + +__owur int SSL_stream_reset(SSL *ssl, + const SSL_STREAM_RESET_ARGS *args, + size_t args_len); + +#define SSL_STREAM_STATE_NONE 0 +#define SSL_STREAM_STATE_OK 1 +#define SSL_STREAM_STATE_WRONG_DIR 2 +#define SSL_STREAM_STATE_FINISHED 3 +#define SSL_STREAM_STATE_RESET_LOCAL 4 +#define SSL_STREAM_STATE_RESET_REMOTE 5 +#define SSL_STREAM_STATE_CONN_CLOSED 6 +__owur int SSL_get_stream_read_state(SSL *ssl); +__owur int SSL_get_stream_write_state(SSL *ssl); + +__owur int SSL_get_stream_read_error_code(SSL *ssl, uint64_t *app_error_code); +__owur int SSL_get_stream_write_error_code(SSL *ssl, uint64_t *app_error_code); + +#define SSL_CONN_CLOSE_FLAG_LOCAL (1U << 0) +#define SSL_CONN_CLOSE_FLAG_TRANSPORT (1U << 1) + +typedef struct ssl_conn_close_info_st { + uint64_t error_code, frame_type; + const char *reason; + size_t reason_len; + uint32_t flags; +} SSL_CONN_CLOSE_INFO; + +__owur int SSL_get_conn_close_info(SSL *ssl, + SSL_CONN_CLOSE_INFO *info, + size_t info_len); + +# define SSL_VALUE_CLASS_GENERIC 0 +# define SSL_VALUE_CLASS_FEATURE_REQUEST 1 +# define SSL_VALUE_CLASS_FEATURE_PEER_REQUEST 2 +# define SSL_VALUE_CLASS_FEATURE_NEGOTIATED 3 + +# define SSL_VALUE_NONE 0 +# define SSL_VALUE_QUIC_STREAM_BIDI_LOCAL_AVAIL 1 +# define SSL_VALUE_QUIC_STREAM_BIDI_REMOTE_AVAIL 2 +# define SSL_VALUE_QUIC_STREAM_UNI_LOCAL_AVAIL 3 +# define SSL_VALUE_QUIC_STREAM_UNI_REMOTE_AVAIL 4 +# define SSL_VALUE_QUIC_IDLE_TIMEOUT 5 +# define SSL_VALUE_EVENT_HANDLING_MODE 6 +# define SSL_VALUE_STREAM_WRITE_BUF_SIZE 7 +# define SSL_VALUE_STREAM_WRITE_BUF_USED 8 +# define SSL_VALUE_STREAM_WRITE_BUF_AVAIL 9 + +# define SSL_VALUE_EVENT_HANDLING_MODE_INHERIT 0 +# define SSL_VALUE_EVENT_HANDLING_MODE_IMPLICIT 1 +# define SSL_VALUE_EVENT_HANDLING_MODE_EXPLICIT 2 + +int SSL_get_value_uint(SSL *s, uint32_t class_, uint32_t id, uint64_t *v); +int SSL_set_value_uint(SSL *s, uint32_t class_, uint32_t id, uint64_t v); + +# define SSL_get_generic_value_uint(ssl, id, v) \ + SSL_get_value_uint((ssl), SSL_VALUE_CLASS_GENERIC, (id), (v)) +# define SSL_set_generic_value_uint(ssl, id, v) \ + SSL_set_value_uint((ssl), SSL_VALUE_CLASS_GENERIC, (id), (v)) +# define SSL_get_feature_request_uint(ssl, id, v) \ + SSL_get_value_uint((ssl), SSL_VALUE_CLASS_FEATURE_REQUEST, (id), (v)) +# define SSL_set_feature_request_uint(ssl, id, v) \ + SSL_set_value_uint((ssl), SSL_VALUE_CLASS_FEATURE_REQUEST, (id), (v)) +# define SSL_get_feature_peer_request_uint(ssl, id, v) \ + SSL_get_value_uint((ssl), SSL_VALUE_CLASS_FEATURE_PEER_REQUEST, (id), (v)) +# define SSL_get_feature_negotiated_uint(ssl, id, v) \ + SSL_get_value_uint((ssl), SSL_VALUE_CLASS_FEATURE_NEGOTIATED, (id), (v)) + +# define SSL_get_quic_stream_bidi_local_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_QUIC_STREAM_BIDI_LOCAL_AVAIL, \ + (value)) +# define SSL_get_quic_stream_bidi_remote_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_QUIC_STREAM_BIDI_REMOTE_AVAIL, \ + (value)) +# define SSL_get_quic_stream_uni_local_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_QUIC_STREAM_UNI_LOCAL_AVAIL, \ + (value)) +# define SSL_get_quic_stream_uni_remote_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_QUIC_STREAM_UNI_REMOTE_AVAIL, \ + (value)) + +# define SSL_get_event_handling_mode(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_EVENT_HANDLING_MODE, \ + (value)) +# define SSL_set_event_handling_mode(ssl, value) \ + SSL_set_generic_value_uint((ssl), SSL_VALUE_EVENT_HANDLING_MODE, \ + (value)) + +# define SSL_get_stream_write_buf_size(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_STREAM_WRITE_BUF_SIZE, \ + (value)) +# define SSL_get_stream_write_buf_used(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_STREAM_WRITE_BUF_USED, \ + (value)) +# define SSL_get_stream_write_buf_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_STREAM_WRITE_BUF_AVAIL, \ + (value)) + +# define SSL_POLL_EVENT_NONE 0 + +# define SSL_POLL_EVENT_F (1U << 0) /* F (Failure) */ +# define SSL_POLL_EVENT_EL (1U << 1) /* EL (Exception on Listener) */ +# define SSL_POLL_EVENT_EC (1U << 2) /* EC (Exception on Conn) */ +# define SSL_POLL_EVENT_ECD (1U << 3) /* ECD (Exception on Conn Drained) */ +# define SSL_POLL_EVENT_ER (1U << 4) /* ER (Exception on Read) */ +# define SSL_POLL_EVENT_EW (1U << 5) /* EW (Exception on Write) */ +# define SSL_POLL_EVENT_R (1U << 6) /* R (Readable) */ +# define SSL_POLL_EVENT_W (1U << 7) /* W (Writable) */ +# define SSL_POLL_EVENT_IC (1U << 8) /* IC (Incoming Connection) */ +# define SSL_POLL_EVENT_ISB (1U << 9) /* ISB (Incoming Stream: Bidi) */ +# define SSL_POLL_EVENT_ISU (1U << 10) /* ISU (Incoming Stream: Uni) */ +# define SSL_POLL_EVENT_OSB (1U << 11) /* OSB (Outgoing Stream: Bidi) */ +# define SSL_POLL_EVENT_OSU (1U << 12) /* OSU (Outgoing Stream: Uni) */ + +# define SSL_POLL_EVENT_RW (SSL_POLL_EVENT_R | SSL_POLL_EVENT_W) +# define SSL_POLL_EVENT_RE (SSL_POLL_EVENT_R | SSL_POLL_EVENT_ER) +# define SSL_POLL_EVENT_WE (SSL_POLL_EVENT_W | SSL_POLL_EVENT_EW) +# define SSL_POLL_EVENT_RWE (SSL_POLL_EVENT_RE | SSL_POLL_EVENT_WE) +# define SSL_POLL_EVENT_E (SSL_POLL_EVENT_EL | SSL_POLL_EVENT_EC \ + | SSL_POLL_EVENT_ER | SSL_POLL_EVENT_EW) +# define SSL_POLL_EVENT_IS (SSL_POLL_EVENT_ISB | SSL_POLL_EVENT_ISU) +# define SSL_POLL_EVENT_ISE (SSL_POLL_EVENT_IS | SSL_POLL_EVENT_EC) +# define SSL_POLL_EVENT_I (SSL_POLL_EVENT_IS | SSL_POLL_EVENT_IC) +# define SSL_POLL_EVENT_OS (SSL_POLL_EVENT_OSB | SSL_POLL_EVENT_OSU) +# define SSL_POLL_EVENT_OSE (SSL_POLL_EVENT_OS | SSL_POLL_EVENT_EC) + +typedef struct ssl_poll_item_st { + BIO_POLL_DESCRIPTOR desc; + uint64_t events, revents; +} SSL_POLL_ITEM; + +# define SSL_POLL_FLAG_NO_HANDLE_EVENTS (1U << 0) + +__owur int SSL_poll(SSL_POLL_ITEM *items, + size_t num_items, + size_t stride, + const struct timeval *timeout, + uint64_t flags, + size_t *result_count); + +static ossl_inline ossl_unused BIO_POLL_DESCRIPTOR +SSL_as_poll_descriptor(SSL *s) +{ + BIO_POLL_DESCRIPTOR d; + + d.type = BIO_POLL_DESCRIPTOR_TYPE_SSL; + d.value.ssl = s; + return d; +} + # ifndef OPENSSL_NO_DEPRECATED_1_1_0 # define SSL_cache_hit(s) SSL_session_reused(s) # endif @@ -2593,6 +2882,51 @@ void SSL_set_allow_early_data_cb(SSL *s, const char *OSSL_default_cipher_list(void); const char *OSSL_default_ciphersuites(void); +/* RFC8879 Certificate compression APIs */ + +int SSL_CTX_compress_certs(SSL_CTX *ctx, int alg); +int SSL_compress_certs(SSL *ssl, int alg); + +int SSL_CTX_set1_cert_comp_preference(SSL_CTX *ctx, int *algs, size_t len); +int SSL_set1_cert_comp_preference(SSL *ssl, int *algs, size_t len); + +int SSL_CTX_set1_compressed_cert(SSL_CTX *ctx, int algorithm, unsigned char *comp_data, + size_t comp_length, size_t orig_length); +int SSL_set1_compressed_cert(SSL *ssl, int algorithm, unsigned char *comp_data, + size_t comp_length, size_t orig_length); +size_t SSL_CTX_get1_compressed_cert(SSL_CTX *ctx, int alg, unsigned char **data, size_t *orig_len); +size_t SSL_get1_compressed_cert(SSL *ssl, int alg, unsigned char **data, size_t *orig_len); + +__owur int SSL_add_expected_rpk(SSL *s, EVP_PKEY *rpk); +__owur EVP_PKEY *SSL_get0_peer_rpk(const SSL *s); +__owur EVP_PKEY *SSL_SESSION_get0_peer_rpk(SSL_SESSION *s); +__owur int SSL_get_negotiated_client_cert_type(const SSL *s); +__owur int SSL_get_negotiated_server_cert_type(const SSL *s); + +__owur int SSL_set1_client_cert_type(SSL *s, const unsigned char *val, size_t len); +__owur int SSL_set1_server_cert_type(SSL *s, const unsigned char *val, size_t len); +__owur int SSL_CTX_set1_client_cert_type(SSL_CTX *ctx, const unsigned char *val, size_t len); +__owur int SSL_CTX_set1_server_cert_type(SSL_CTX *ctx, const unsigned char *val, size_t len); +__owur int SSL_get0_client_cert_type(const SSL *s, unsigned char **t, size_t *len); +__owur int SSL_get0_server_cert_type(const SSL *s, unsigned char **t, size_t *len); +__owur int SSL_CTX_get0_client_cert_type(const SSL_CTX *ctx, unsigned char **t, size_t *len); +__owur int SSL_CTX_get0_server_cert_type(const SSL_CTX *s, unsigned char **t, size_t *len); + +/* + * Protection level. For <= TLSv1.2 only "NONE" and "APPLICATION" are used. + */ +# define OSSL_RECORD_PROTECTION_LEVEL_NONE 0 +# define OSSL_RECORD_PROTECTION_LEVEL_EARLY 1 +# define OSSL_RECORD_PROTECTION_LEVEL_HANDSHAKE 2 +# define OSSL_RECORD_PROTECTION_LEVEL_APPLICATION 3 + +int SSL_set_quic_tls_cbs(SSL *s, const OSSL_DISPATCH *qtdis, void *arg); +int SSL_set_quic_tls_transport_params(SSL *s, + const unsigned char *params, + size_t params_len); + +int SSL_set_quic_tls_early_data_enabled(SSL *s, int enabled); + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/aix64-gcc-as/asm_avx2/include/openssl/x509.h b/deps/openssl/config/archs/aix64-gcc-as/asm_avx2/include/openssl/x509.h index 1f7755e5b69c75..d013458c226461 100644 --- a/deps/openssl/config/archs/aix64-gcc-as/asm_avx2/include/openssl/x509.h +++ b/deps/openssl/config/archs/aix64-gcc-as/asm_avx2/include/openssl/x509.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/x509.h.in * - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2024 The OpenSSL Project Authors. All Rights Reserved. * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved * * Licensed under the Apache License 2.0 (the "License"). You may not use @@ -40,6 +40,9 @@ # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -162,16 +165,24 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_CRL, X509_CRL, X509_CRL) # define X509_FILETYPE_ASN1 2 # define X509_FILETYPE_DEFAULT 3 -# define X509v3_KU_DIGITAL_SIGNATURE 0x0080 -# define X509v3_KU_NON_REPUDIATION 0x0040 -# define X509v3_KU_KEY_ENCIPHERMENT 0x0020 -# define X509v3_KU_DATA_ENCIPHERMENT 0x0010 -# define X509v3_KU_KEY_AGREEMENT 0x0008 -# define X509v3_KU_KEY_CERT_SIGN 0x0004 -# define X509v3_KU_CRL_SIGN 0x0002 -# define X509v3_KU_ENCIPHER_ONLY 0x0001 -# define X509v3_KU_DECIPHER_ONLY 0x8000 -# define X509v3_KU_UNDEF 0xffff +/*- + * : + * The KeyUsage BITSTRING is treated as a little-endian integer, hence bit `0` + * is 0x80, while bit `7` is 0x01 (the LSB of the integer value), bit `8` is + * then the MSB of the second octet, or 0x8000. + */ +# define X509v3_KU_DIGITAL_SIGNATURE 0x0080 /* (0) */ +# define X509v3_KU_NON_REPUDIATION 0x0040 /* (1) */ +# define X509v3_KU_KEY_ENCIPHERMENT 0x0020 /* (2) */ +# define X509v3_KU_DATA_ENCIPHERMENT 0x0010 /* (3) */ +# define X509v3_KU_KEY_AGREEMENT 0x0008 /* (4) */ +# define X509v3_KU_KEY_CERT_SIGN 0x0004 /* (5) */ +# define X509v3_KU_CRL_SIGN 0x0002 /* (6) */ +# define X509v3_KU_ENCIPHER_ONLY 0x0001 /* (7) */ +# define X509v3_KU_DECIPHER_ONLY 0x8000 /* (8) */ +# ifndef OPENSSL_NO_DEPRECATED_3_4 +# define X509v3_KU_UNDEF 0xffff /* vestigial, not used */ +# endif struct X509_algor_st { ASN1_OBJECT *algorithm; @@ -462,7 +473,12 @@ typedef struct PBKDF2PARAM_st { X509_ALGOR *prf; } PBKDF2PARAM; -#ifndef OPENSSL_NO_SCRYPT +typedef struct { + X509_ALGOR *keyDerivationFunc; + X509_ALGOR *messageAuthScheme; +} PBMAC1PARAM; + +# ifndef OPENSSL_NO_SCRYPT typedef struct SCRYPT_PARAMS_st { ASN1_OCTET_STRING *salt; ASN1_INTEGER *costParameter; @@ -470,7 +486,7 @@ typedef struct SCRYPT_PARAMS_st { ASN1_INTEGER *parallelizationParameter; ASN1_INTEGER *keyLength; } SCRYPT_PARAMS; -#endif +# endif #ifdef __cplusplus } @@ -603,6 +619,8 @@ EVP_PKEY *d2i_PrivateKey_ex_fp(FILE *fp, EVP_PKEY **a, OSSL_LIB_CTX *libctx, const char *propq); EVP_PKEY *d2i_PrivateKey_fp(FILE *fp, EVP_PKEY **a); int i2d_PUBKEY_fp(FILE *fp, const EVP_PKEY *pkey); +EVP_PKEY *d2i_PUBKEY_ex_fp(FILE *fp, EVP_PKEY **a, OSSL_LIB_CTX *libctx, + const char *propq); EVP_PKEY *d2i_PUBKEY_fp(FILE *fp, EVP_PKEY **a); # endif @@ -651,6 +669,8 @@ EVP_PKEY *d2i_PrivateKey_ex_bio(BIO *bp, EVP_PKEY **a, OSSL_LIB_CTX *libctx, const char *propq); EVP_PKEY *d2i_PrivateKey_bio(BIO *bp, EVP_PKEY **a); int i2d_PUBKEY_bio(BIO *bp, const EVP_PKEY *pkey); +EVP_PKEY *d2i_PUBKEY_ex_bio(BIO *bp, EVP_PKEY **a, OSSL_LIB_CTX *libctx, + const char *propq); EVP_PKEY *d2i_PUBKEY_bio(BIO *bp, EVP_PKEY **a); DECLARE_ASN1_DUP_FUNCTION(X509) @@ -884,12 +904,12 @@ int X509_REQ_get_signature_nid(const X509_REQ *req); int i2d_re_X509_REQ_tbs(X509_REQ *req, unsigned char **pp); int X509_REQ_set_pubkey(X509_REQ *x, EVP_PKEY *pkey); EVP_PKEY *X509_REQ_get_pubkey(X509_REQ *req); -EVP_PKEY *X509_REQ_get0_pubkey(X509_REQ *req); +EVP_PKEY *X509_REQ_get0_pubkey(const X509_REQ *req); X509_PUBKEY *X509_REQ_get_X509_PUBKEY(X509_REQ *req); int X509_REQ_extension_nid(int nid); int *X509_REQ_get_extension_nids(void); void X509_REQ_set_extension_nids(int *nids); -STACK_OF(X509_EXTENSION) *X509_REQ_get_extensions(X509_REQ *req); +STACK_OF(X509_EXTENSION) *X509_REQ_get_extensions(OSSL_FUTURE_CONST X509_REQ *req); int X509_REQ_add_extensions_nid(X509_REQ *req, const STACK_OF(X509_EXTENSION) *exts, int nid); int X509_REQ_add_extensions(X509_REQ *req, const STACK_OF(X509_EXTENSION) *ext); @@ -950,13 +970,14 @@ X509_REVOKED_get0_extensions(const X509_REVOKED *r); X509_CRL *X509_CRL_diff(X509_CRL *base, X509_CRL *newer, EVP_PKEY *skey, const EVP_MD *md, unsigned int flags); -int X509_REQ_check_private_key(X509_REQ *x509, EVP_PKEY *pkey); +int X509_REQ_check_private_key(const X509_REQ *req, EVP_PKEY *pkey); -int X509_check_private_key(const X509 *x509, const EVP_PKEY *pkey); +int X509_check_private_key(const X509 *cert, const EVP_PKEY *pkey); int X509_chain_check_suiteb(int *perror_depth, X509 *x, STACK_OF(X509) *chain, unsigned long flags); int X509_CRL_check_suiteb(X509_CRL *crl, EVP_PKEY *pk, unsigned long flags); +void OSSL_STACK_OF_X509_free(STACK_OF(X509) *certs); STACK_OF(X509) *X509_chain_up_ref(STACK_OF(X509) *chain); int X509_issuer_and_serial_cmp(const X509 *a, const X509 *b); @@ -1077,6 +1098,8 @@ X509_EXTENSION *X509v3_get_ext(const STACK_OF(X509_EXTENSION) *x, int loc); X509_EXTENSION *X509v3_delete_ext(STACK_OF(X509_EXTENSION) *x, int loc); STACK_OF(X509_EXTENSION) *X509v3_add_ext(STACK_OF(X509_EXTENSION) **x, X509_EXTENSION *ex, int loc); +STACK_OF(X509_EXTENSION) *X509v3_add_extensions(STACK_OF(X509_EXTENSION) **target, + const STACK_OF(X509_EXTENSION) *exts); int X509_get_ext_count(const X509 *x); int X509_get_ext_by_NID(const X509 *x, int nid, int lastpos); @@ -1198,9 +1221,10 @@ X509 *X509_find_by_subject(STACK_OF(X509) *sk, const X509_NAME *name); DECLARE_ASN1_FUNCTIONS(PBEPARAM) DECLARE_ASN1_FUNCTIONS(PBE2PARAM) DECLARE_ASN1_FUNCTIONS(PBKDF2PARAM) -#ifndef OPENSSL_NO_SCRYPT +DECLARE_ASN1_FUNCTIONS(PBMAC1PARAM) +# ifndef OPENSSL_NO_SCRYPT DECLARE_ASN1_FUNCTIONS(SCRYPT_PARAMS) -#endif +# endif int PKCS5_pbe_set0_algor(X509_ALGOR *algor, int alg, int iter, const unsigned char *salt, int saltlen); @@ -1237,6 +1261,7 @@ X509_ALGOR *PKCS5_pbkdf2_set_ex(int iter, unsigned char *salt, int saltlen, int prf_nid, int keylen, OSSL_LIB_CTX *libctx); +PBKDF2PARAM *PBMAC1_get1_pbkdf2_param(const X509_ALGOR *macalg); /* PKCS#8 utilities */ DECLARE_ASN1_FUNCTIONS(PKCS8_PRIV_KEY_INFO) @@ -1262,6 +1287,8 @@ int PKCS8_pkey_add1_attr_by_OBJ(PKCS8_PRIV_KEY_INFO *p8, const ASN1_OBJECT *obj, int type, const unsigned char *bytes, int len); +void X509_PUBKEY_set0_public_key(X509_PUBKEY *pub, + unsigned char *penc, int penclen); int X509_PUBKEY_set0_param(X509_PUBKEY *pub, ASN1_OBJECT *aobj, int ptype, void *pval, unsigned char *penc, int penclen); diff --git a/deps/openssl/config/archs/aix64-gcc-as/asm_avx2/include/openssl/x509_acert.h b/deps/openssl/config/archs/aix64-gcc-as/asm_avx2/include/openssl/x509_acert.h new file mode 100644 index 00000000000000..9dde625677f9a9 --- /dev/null +++ b/deps/openssl/config/archs/aix64-gcc-as/asm_avx2/include/openssl/x509_acert.h @@ -0,0 +1,294 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from include/openssl/x509_acert.h.in + * + * Copyright 2022-2024 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + + +#ifndef OPENSSL_X509_ACERT_H +# define OPENSSL_X509_ACERT_H +# pragma once + +# include +# include +# include + +typedef struct X509_acert_st X509_ACERT; +typedef struct X509_acert_info_st X509_ACERT_INFO; +typedef struct ossl_object_digest_info_st OSSL_OBJECT_DIGEST_INFO; +typedef struct ossl_issuer_serial_st OSSL_ISSUER_SERIAL; +typedef struct X509_acert_issuer_v2form_st X509_ACERT_ISSUER_V2FORM; + +DECLARE_ASN1_FUNCTIONS(X509_ACERT) +DECLARE_ASN1_DUP_FUNCTION(X509_ACERT) +DECLARE_ASN1_ITEM(X509_ACERT_INFO) +DECLARE_ASN1_ALLOC_FUNCTIONS(X509_ACERT_INFO) +DECLARE_ASN1_ALLOC_FUNCTIONS(OSSL_OBJECT_DIGEST_INFO) +DECLARE_ASN1_ALLOC_FUNCTIONS(OSSL_ISSUER_SERIAL) +DECLARE_ASN1_ALLOC_FUNCTIONS(X509_ACERT_ISSUER_V2FORM) + +# ifndef OPENSSL_NO_STDIO +X509_ACERT *d2i_X509_ACERT_fp(FILE *fp, X509_ACERT **acert); +int i2d_X509_ACERT_fp(FILE *fp, const X509_ACERT *acert); +# endif + +DECLARE_PEM_rw(X509_ACERT, X509_ACERT) + +X509_ACERT *d2i_X509_ACERT_bio(BIO *bp, X509_ACERT **acert); +int i2d_X509_ACERT_bio(BIO *bp, const X509_ACERT *acert); + +int X509_ACERT_sign(X509_ACERT *x, EVP_PKEY *pkey, const EVP_MD *md); +int X509_ACERT_sign_ctx(X509_ACERT *x, EVP_MD_CTX *ctx); +int X509_ACERT_verify(X509_ACERT *a, EVP_PKEY *r); + +# define X509_ACERT_VERSION_2 1 + +const GENERAL_NAMES *X509_ACERT_get0_holder_entityName(const X509_ACERT *x); +const OSSL_ISSUER_SERIAL *X509_ACERT_get0_holder_baseCertId(const X509_ACERT *x); +const OSSL_OBJECT_DIGEST_INFO * X509_ACERT_get0_holder_digest(const X509_ACERT *x); +const X509_NAME *X509_ACERT_get0_issuerName(const X509_ACERT *x); +long X509_ACERT_get_version(const X509_ACERT *x); +void X509_ACERT_get0_signature(const X509_ACERT *x, + const ASN1_BIT_STRING **psig, + const X509_ALGOR **palg); +int X509_ACERT_get_signature_nid(const X509_ACERT *x); +const X509_ALGOR *X509_ACERT_get0_info_sigalg(const X509_ACERT *x); +const ASN1_INTEGER *X509_ACERT_get0_serialNumber(const X509_ACERT *x); +const ASN1_TIME *X509_ACERT_get0_notBefore(const X509_ACERT *x); +const ASN1_TIME *X509_ACERT_get0_notAfter(const X509_ACERT *x); +const ASN1_BIT_STRING *X509_ACERT_get0_issuerUID(const X509_ACERT *x); + +int X509_ACERT_print(BIO *bp, X509_ACERT *x); +int X509_ACERT_print_ex(BIO *bp, X509_ACERT *x, unsigned long nmflags, + unsigned long cflag); + +int X509_ACERT_get_attr_count(const X509_ACERT *x); +int X509_ACERT_get_attr_by_NID(const X509_ACERT *x, int nid, int lastpos); +int X509_ACERT_get_attr_by_OBJ(const X509_ACERT *x, const ASN1_OBJECT *obj, + int lastpos); +X509_ATTRIBUTE *X509_ACERT_get_attr(const X509_ACERT *x, int loc); +X509_ATTRIBUTE *X509_ACERT_delete_attr(X509_ACERT *x, int loc); + +void *X509_ACERT_get_ext_d2i(const X509_ACERT *x, int nid, int *crit, int *idx); +int X509_ACERT_add1_ext_i2d(X509_ACERT *x, int nid, void *value, int crit, + unsigned long flags); +const STACK_OF(X509_EXTENSION) *X509_ACERT_get0_extensions(const X509_ACERT *x); + +# define OSSL_OBJECT_DIGEST_INFO_PUBLIC_KEY 0 +# define OSSL_OBJECT_DIGEST_INFO_PUBLIC_KEY_CERT 1 +# define OSSL_OBJECT_DIGEST_INFO_OTHER 2 /* must not be used in RFC 5755 profile */ +int X509_ACERT_set_version(X509_ACERT *x, long version); +void X509_ACERT_set0_holder_entityName(X509_ACERT *x, GENERAL_NAMES *name); +void X509_ACERT_set0_holder_baseCertId(X509_ACERT *x, OSSL_ISSUER_SERIAL *isss); +void X509_ACERT_set0_holder_digest(X509_ACERT *x, + OSSL_OBJECT_DIGEST_INFO *dinfo); + +int X509_ACERT_add1_attr(X509_ACERT *x, X509_ATTRIBUTE *attr); +int X509_ACERT_add1_attr_by_OBJ(X509_ACERT *x, const ASN1_OBJECT *obj, + int type, const void *bytes, int len); +int X509_ACERT_add1_attr_by_NID(X509_ACERT *x, int nid, int type, + const void *bytes, int len); +int X509_ACERT_add1_attr_by_txt(X509_ACERT *x, const char *attrname, int type, + const unsigned char *bytes, int len); +int X509_ACERT_add_attr_nconf(CONF *conf, const char *section, + X509_ACERT *acert); + +int X509_ACERT_set1_issuerName(X509_ACERT *x, const X509_NAME *name); +int X509_ACERT_set1_serialNumber(X509_ACERT *x, const ASN1_INTEGER *serial); +int X509_ACERT_set1_notBefore(X509_ACERT *x, const ASN1_GENERALIZEDTIME *time); +int X509_ACERT_set1_notAfter(X509_ACERT *x, const ASN1_GENERALIZEDTIME *time); + +void OSSL_OBJECT_DIGEST_INFO_get0_digest(const OSSL_OBJECT_DIGEST_INFO *o, + int *digestedObjectType, + const X509_ALGOR **digestAlgorithm, + const ASN1_BIT_STRING **digest); + +int OSSL_OBJECT_DIGEST_INFO_set1_digest(OSSL_OBJECT_DIGEST_INFO *o, + int digestedObjectType, + X509_ALGOR *digestAlgorithm, + ASN1_BIT_STRING *digest); + +const X509_NAME *OSSL_ISSUER_SERIAL_get0_issuer(const OSSL_ISSUER_SERIAL *isss); +const ASN1_INTEGER *OSSL_ISSUER_SERIAL_get0_serial(const OSSL_ISSUER_SERIAL *isss); +const ASN1_BIT_STRING *OSSL_ISSUER_SERIAL_get0_issuerUID(const OSSL_ISSUER_SERIAL *isss); + +int OSSL_ISSUER_SERIAL_set1_issuer(OSSL_ISSUER_SERIAL *isss, + const X509_NAME *issuer); +int OSSL_ISSUER_SERIAL_set1_serial(OSSL_ISSUER_SERIAL *isss, + const ASN1_INTEGER *serial); +int OSSL_ISSUER_SERIAL_set1_issuerUID(OSSL_ISSUER_SERIAL *isss, + const ASN1_BIT_STRING *uid); + +# define OSSL_IETFAS_OCTETS 0 +# define OSSL_IETFAS_OID 1 +# define OSSL_IETFAS_STRING 2 + +typedef struct OSSL_IETF_ATTR_SYNTAX_VALUE_st OSSL_IETF_ATTR_SYNTAX_VALUE; +typedef struct OSSL_IETF_ATTR_SYNTAX_st OSSL_IETF_ATTR_SYNTAX; +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_IETF_ATTR_SYNTAX_VALUE, OSSL_IETF_ATTR_SYNTAX_VALUE, OSSL_IETF_ATTR_SYNTAX_VALUE) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_value(sk, idx) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_value(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), (idx))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_new(cmp) ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_new(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_compfunc_type(cmp))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_new_null() ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_new_null()) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_new_reserve(cmp, n) ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_compfunc_type(cmp), (n))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), (n)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_free(sk) OPENSSL_sk_free(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_delete(sk, i) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_delete(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), (i))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_delete_ptr(sk, ptr) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_pop(sk) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_pop(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_shift(sk) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_shift(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk),ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_freefunc_type(freefunc)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr), (idx)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_set(sk, idx, ptr) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_set(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), (idx), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr), pnum) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_dup(sk) ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_dup(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_copyfunc_type(copyfunc), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_freefunc_type(freefunc))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_set_cmp_func(sk, cmp) ((sk_OSSL_IETF_ATTR_SYNTAX_VALUE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_compfunc_type(cmp))) + + +DECLARE_ASN1_ITEM(OSSL_IETF_ATTR_SYNTAX_VALUE) +DECLARE_ASN1_ALLOC_FUNCTIONS(OSSL_IETF_ATTR_SYNTAX_VALUE) +DECLARE_ASN1_FUNCTIONS(OSSL_IETF_ATTR_SYNTAX) + +const GENERAL_NAMES * +OSSL_IETF_ATTR_SYNTAX_get0_policyAuthority(const OSSL_IETF_ATTR_SYNTAX *a); +void OSSL_IETF_ATTR_SYNTAX_set0_policyAuthority(OSSL_IETF_ATTR_SYNTAX *a, + GENERAL_NAMES *names); + +int OSSL_IETF_ATTR_SYNTAX_get_value_num(const OSSL_IETF_ATTR_SYNTAX *a); +void *OSSL_IETF_ATTR_SYNTAX_get0_value(const OSSL_IETF_ATTR_SYNTAX *a, + int ind, int *type); +int OSSL_IETF_ATTR_SYNTAX_add1_value(OSSL_IETF_ATTR_SYNTAX *a, int type, + void *data); +int OSSL_IETF_ATTR_SYNTAX_print(BIO *bp, OSSL_IETF_ATTR_SYNTAX *a, int indent); + +struct TARGET_CERT_st { + OSSL_ISSUER_SERIAL *targetCertificate; + GENERAL_NAME *targetName; + OSSL_OBJECT_DIGEST_INFO *certDigestInfo; +}; + +typedef struct TARGET_CERT_st OSSL_TARGET_CERT; + +# define OSSL_TGT_TARGET_NAME 0 +# define OSSL_TGT_TARGET_GROUP 1 +# define OSSL_TGT_TARGET_CERT 2 + +typedef struct TARGET_st { + int type; + union { + GENERAL_NAME *targetName; + GENERAL_NAME *targetGroup; + OSSL_TARGET_CERT *targetCert; + } choice; +} OSSL_TARGET; + +typedef STACK_OF(OSSL_TARGET) OSSL_TARGETS; +typedef STACK_OF(OSSL_TARGETS) OSSL_TARGETING_INFORMATION; + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_TARGET, OSSL_TARGET, OSSL_TARGET) +#define sk_OSSL_TARGET_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_value(sk, idx) ((OSSL_TARGET *)OPENSSL_sk_value(ossl_check_const_OSSL_TARGET_sk_type(sk), (idx))) +#define sk_OSSL_TARGET_new(cmp) ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_new(ossl_check_OSSL_TARGET_compfunc_type(cmp))) +#define sk_OSSL_TARGET_new_null() ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_new_null()) +#define sk_OSSL_TARGET_new_reserve(cmp, n) ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_TARGET_compfunc_type(cmp), (n))) +#define sk_OSSL_TARGET_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_TARGET_sk_type(sk), (n)) +#define sk_OSSL_TARGET_free(sk) OPENSSL_sk_free(ossl_check_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_delete(sk, i) ((OSSL_TARGET *)OPENSSL_sk_delete(ossl_check_OSSL_TARGET_sk_type(sk), (i))) +#define sk_OSSL_TARGET_delete_ptr(sk, ptr) ((OSSL_TARGET *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr))) +#define sk_OSSL_TARGET_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr)) +#define sk_OSSL_TARGET_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr)) +#define sk_OSSL_TARGET_pop(sk) ((OSSL_TARGET *)OPENSSL_sk_pop(ossl_check_OSSL_TARGET_sk_type(sk))) +#define sk_OSSL_TARGET_shift(sk) ((OSSL_TARGET *)OPENSSL_sk_shift(ossl_check_OSSL_TARGET_sk_type(sk))) +#define sk_OSSL_TARGET_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_TARGET_sk_type(sk),ossl_check_OSSL_TARGET_freefunc_type(freefunc)) +#define sk_OSSL_TARGET_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr), (idx)) +#define sk_OSSL_TARGET_set(sk, idx, ptr) ((OSSL_TARGET *)OPENSSL_sk_set(ossl_check_OSSL_TARGET_sk_type(sk), (idx), ossl_check_OSSL_TARGET_type(ptr))) +#define sk_OSSL_TARGET_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr)) +#define sk_OSSL_TARGET_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr)) +#define sk_OSSL_TARGET_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr), pnum) +#define sk_OSSL_TARGET_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_dup(sk) ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_dup(ossl_check_const_OSSL_TARGET_sk_type(sk))) +#define sk_OSSL_TARGET_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_copyfunc_type(copyfunc), ossl_check_OSSL_TARGET_freefunc_type(freefunc))) +#define sk_OSSL_TARGET_set_cmp_func(sk, cmp) ((sk_OSSL_TARGET_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_compfunc_type(cmp))) + + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_TARGETS, OSSL_TARGETS, OSSL_TARGETS) +#define sk_OSSL_TARGETS_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_value(sk, idx) ((OSSL_TARGETS *)OPENSSL_sk_value(ossl_check_const_OSSL_TARGETS_sk_type(sk), (idx))) +#define sk_OSSL_TARGETS_new(cmp) ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_new(ossl_check_OSSL_TARGETS_compfunc_type(cmp))) +#define sk_OSSL_TARGETS_new_null() ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_new_null()) +#define sk_OSSL_TARGETS_new_reserve(cmp, n) ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_TARGETS_compfunc_type(cmp), (n))) +#define sk_OSSL_TARGETS_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_TARGETS_sk_type(sk), (n)) +#define sk_OSSL_TARGETS_free(sk) OPENSSL_sk_free(ossl_check_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_delete(sk, i) ((OSSL_TARGETS *)OPENSSL_sk_delete(ossl_check_OSSL_TARGETS_sk_type(sk), (i))) +#define sk_OSSL_TARGETS_delete_ptr(sk, ptr) ((OSSL_TARGETS *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr))) +#define sk_OSSL_TARGETS_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr)) +#define sk_OSSL_TARGETS_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr)) +#define sk_OSSL_TARGETS_pop(sk) ((OSSL_TARGETS *)OPENSSL_sk_pop(ossl_check_OSSL_TARGETS_sk_type(sk))) +#define sk_OSSL_TARGETS_shift(sk) ((OSSL_TARGETS *)OPENSSL_sk_shift(ossl_check_OSSL_TARGETS_sk_type(sk))) +#define sk_OSSL_TARGETS_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_TARGETS_sk_type(sk),ossl_check_OSSL_TARGETS_freefunc_type(freefunc)) +#define sk_OSSL_TARGETS_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr), (idx)) +#define sk_OSSL_TARGETS_set(sk, idx, ptr) ((OSSL_TARGETS *)OPENSSL_sk_set(ossl_check_OSSL_TARGETS_sk_type(sk), (idx), ossl_check_OSSL_TARGETS_type(ptr))) +#define sk_OSSL_TARGETS_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr)) +#define sk_OSSL_TARGETS_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr)) +#define sk_OSSL_TARGETS_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr), pnum) +#define sk_OSSL_TARGETS_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_dup(sk) ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_dup(ossl_check_const_OSSL_TARGETS_sk_type(sk))) +#define sk_OSSL_TARGETS_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_copyfunc_type(copyfunc), ossl_check_OSSL_TARGETS_freefunc_type(freefunc))) +#define sk_OSSL_TARGETS_set_cmp_func(sk, cmp) ((sk_OSSL_TARGETS_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_compfunc_type(cmp))) + + +DECLARE_ASN1_FUNCTIONS(OSSL_TARGET) +DECLARE_ASN1_FUNCTIONS(OSSL_TARGETS) +DECLARE_ASN1_FUNCTIONS(OSSL_TARGETING_INFORMATION) + +typedef STACK_OF(OSSL_ISSUER_SERIAL) OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX; +DECLARE_ASN1_FUNCTIONS(OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ISSUER_SERIAL, OSSL_ISSUER_SERIAL, OSSL_ISSUER_SERIAL) +#define sk_OSSL_ISSUER_SERIAL_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_value(sk, idx) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_value(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk), (idx))) +#define sk_OSSL_ISSUER_SERIAL_new(cmp) ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_new(ossl_check_OSSL_ISSUER_SERIAL_compfunc_type(cmp))) +#define sk_OSSL_ISSUER_SERIAL_new_null() ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ISSUER_SERIAL_new_reserve(cmp, n) ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ISSUER_SERIAL_compfunc_type(cmp), (n))) +#define sk_OSSL_ISSUER_SERIAL_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), (n)) +#define sk_OSSL_ISSUER_SERIAL_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_delete(sk, i) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_delete(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), (i))) +#define sk_OSSL_ISSUER_SERIAL_delete_ptr(sk, ptr) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr))) +#define sk_OSSL_ISSUER_SERIAL_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr)) +#define sk_OSSL_ISSUER_SERIAL_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr)) +#define sk_OSSL_ISSUER_SERIAL_pop(sk) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_pop(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk))) +#define sk_OSSL_ISSUER_SERIAL_shift(sk) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_shift(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk))) +#define sk_OSSL_ISSUER_SERIAL_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk),ossl_check_OSSL_ISSUER_SERIAL_freefunc_type(freefunc)) +#define sk_OSSL_ISSUER_SERIAL_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr), (idx)) +#define sk_OSSL_ISSUER_SERIAL_set(sk, idx, ptr) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_set(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), (idx), ossl_check_OSSL_ISSUER_SERIAL_type(ptr))) +#define sk_OSSL_ISSUER_SERIAL_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr)) +#define sk_OSSL_ISSUER_SERIAL_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr)) +#define sk_OSSL_ISSUER_SERIAL_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr), pnum) +#define sk_OSSL_ISSUER_SERIAL_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_dup(sk) ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk))) +#define sk_OSSL_ISSUER_SERIAL_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_copyfunc_type(copyfunc), ossl_check_OSSL_ISSUER_SERIAL_freefunc_type(freefunc))) +#define sk_OSSL_ISSUER_SERIAL_set_cmp_func(sk, cmp) ((sk_OSSL_ISSUER_SERIAL_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_compfunc_type(cmp))) + + +#endif diff --git a/deps/openssl/config/archs/aix64-gcc-as/asm_avx2/include/openssl/x509_vfy.h b/deps/openssl/config/archs/aix64-gcc-as/asm_avx2/include/openssl/x509_vfy.h index 29b0e147adcab1..c9bdc3b39d685d 100644 --- a/deps/openssl/config/archs/aix64-gcc-as/asm_avx2/include/openssl/x509_vfy.h +++ b/deps/openssl/config/archs/aix64-gcc-as/asm_avx2/include/openssl/x509_vfy.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/x509_vfy.h.in * - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -411,6 +411,7 @@ X509_LOOKUP_ctrl_ex((x), X509_L_ADD_STORE, (name), 0, NULL, \ # define X509_V_ERR_CA_CERT_MISSING_KEY_USAGE 92 # define X509_V_ERR_EXTENSIONS_REQUIRE_VERSION_3 93 # define X509_V_ERR_EC_KEY_EXPLICIT_PARAMS 94 +# define X509_V_ERR_RPK_UNTRUSTED 95 /* Certificate verify flags */ # ifndef OPENSSL_NO_DEPRECATED_1_1_0 @@ -491,71 +492,72 @@ int X509_OBJECT_set1_X509(X509_OBJECT *a, X509 *obj); X509_CRL *X509_OBJECT_get0_X509_CRL(const X509_OBJECT *a); int X509_OBJECT_set1_X509_CRL(X509_OBJECT *a, X509_CRL *obj); X509_STORE *X509_STORE_new(void); -void X509_STORE_free(X509_STORE *v); -int X509_STORE_lock(X509_STORE *ctx); -int X509_STORE_unlock(X509_STORE *ctx); -int X509_STORE_up_ref(X509_STORE *v); -STACK_OF(X509_OBJECT) *X509_STORE_get0_objects(const X509_STORE *v); -STACK_OF(X509) *X509_STORE_get1_all_certs(X509_STORE *st); -STACK_OF(X509) *X509_STORE_CTX_get1_certs(X509_STORE_CTX *st, +void X509_STORE_free(X509_STORE *xs); +int X509_STORE_lock(X509_STORE *xs); +int X509_STORE_unlock(X509_STORE *xs); +int X509_STORE_up_ref(X509_STORE *xs); +STACK_OF(X509_OBJECT) *X509_STORE_get0_objects(const X509_STORE *xs); +STACK_OF(X509_OBJECT) *X509_STORE_get1_objects(X509_STORE *xs); +STACK_OF(X509) *X509_STORE_get1_all_certs(X509_STORE *xs); +STACK_OF(X509) *X509_STORE_CTX_get1_certs(X509_STORE_CTX *xs, const X509_NAME *nm); STACK_OF(X509_CRL) *X509_STORE_CTX_get1_crls(const X509_STORE_CTX *st, const X509_NAME *nm); -int X509_STORE_set_flags(X509_STORE *ctx, unsigned long flags); -int X509_STORE_set_purpose(X509_STORE *ctx, int purpose); -int X509_STORE_set_trust(X509_STORE *ctx, int trust); -int X509_STORE_set1_param(X509_STORE *ctx, const X509_VERIFY_PARAM *pm); -X509_VERIFY_PARAM *X509_STORE_get0_param(const X509_STORE *ctx); +int X509_STORE_set_flags(X509_STORE *xs, unsigned long flags); +int X509_STORE_set_purpose(X509_STORE *xs, int purpose); +int X509_STORE_set_trust(X509_STORE *xs, int trust); +int X509_STORE_set1_param(X509_STORE *xs, const X509_VERIFY_PARAM *pm); +X509_VERIFY_PARAM *X509_STORE_get0_param(const X509_STORE *xs); -void X509_STORE_set_verify(X509_STORE *ctx, X509_STORE_CTX_verify_fn verify); +void X509_STORE_set_verify(X509_STORE *xs, X509_STORE_CTX_verify_fn verify); #define X509_STORE_set_verify_func(ctx, func) \ X509_STORE_set_verify((ctx),(func)) void X509_STORE_CTX_set_verify(X509_STORE_CTX *ctx, X509_STORE_CTX_verify_fn verify); -X509_STORE_CTX_verify_fn X509_STORE_get_verify(const X509_STORE *ctx); -void X509_STORE_set_verify_cb(X509_STORE *ctx, +X509_STORE_CTX_verify_fn X509_STORE_get_verify(const X509_STORE *xs); +void X509_STORE_set_verify_cb(X509_STORE *xs, X509_STORE_CTX_verify_cb verify_cb); # define X509_STORE_set_verify_cb_func(ctx,func) \ X509_STORE_set_verify_cb((ctx),(func)) -X509_STORE_CTX_verify_cb X509_STORE_get_verify_cb(const X509_STORE *ctx); -void X509_STORE_set_get_issuer(X509_STORE *ctx, +X509_STORE_CTX_verify_cb X509_STORE_get_verify_cb(const X509_STORE *xs); +void X509_STORE_set_get_issuer(X509_STORE *xs, X509_STORE_CTX_get_issuer_fn get_issuer); -X509_STORE_CTX_get_issuer_fn X509_STORE_get_get_issuer(const X509_STORE *ctx); -void X509_STORE_set_check_issued(X509_STORE *ctx, +X509_STORE_CTX_get_issuer_fn X509_STORE_get_get_issuer(const X509_STORE *xs); +void X509_STORE_set_check_issued(X509_STORE *xs, X509_STORE_CTX_check_issued_fn check_issued); -X509_STORE_CTX_check_issued_fn X509_STORE_get_check_issued(const X509_STORE *ctx); -void X509_STORE_set_check_revocation(X509_STORE *ctx, +X509_STORE_CTX_check_issued_fn X509_STORE_get_check_issued(const X509_STORE *s); +void X509_STORE_set_check_revocation(X509_STORE *xs, X509_STORE_CTX_check_revocation_fn check_revocation); X509_STORE_CTX_check_revocation_fn - X509_STORE_get_check_revocation(const X509_STORE *ctx); -void X509_STORE_set_get_crl(X509_STORE *ctx, + X509_STORE_get_check_revocation(const X509_STORE *xs); +void X509_STORE_set_get_crl(X509_STORE *xs, X509_STORE_CTX_get_crl_fn get_crl); -X509_STORE_CTX_get_crl_fn X509_STORE_get_get_crl(const X509_STORE *ctx); -void X509_STORE_set_check_crl(X509_STORE *ctx, +X509_STORE_CTX_get_crl_fn X509_STORE_get_get_crl(const X509_STORE *xs); +void X509_STORE_set_check_crl(X509_STORE *xs, X509_STORE_CTX_check_crl_fn check_crl); -X509_STORE_CTX_check_crl_fn X509_STORE_get_check_crl(const X509_STORE *ctx); -void X509_STORE_set_cert_crl(X509_STORE *ctx, +X509_STORE_CTX_check_crl_fn X509_STORE_get_check_crl(const X509_STORE *xs); +void X509_STORE_set_cert_crl(X509_STORE *xs, X509_STORE_CTX_cert_crl_fn cert_crl); -X509_STORE_CTX_cert_crl_fn X509_STORE_get_cert_crl(const X509_STORE *ctx); -void X509_STORE_set_check_policy(X509_STORE *ctx, +X509_STORE_CTX_cert_crl_fn X509_STORE_get_cert_crl(const X509_STORE *xs); +void X509_STORE_set_check_policy(X509_STORE *xs, X509_STORE_CTX_check_policy_fn check_policy); -X509_STORE_CTX_check_policy_fn X509_STORE_get_check_policy(const X509_STORE *ctx); -void X509_STORE_set_lookup_certs(X509_STORE *ctx, +X509_STORE_CTX_check_policy_fn X509_STORE_get_check_policy(const X509_STORE *s); +void X509_STORE_set_lookup_certs(X509_STORE *xs, X509_STORE_CTX_lookup_certs_fn lookup_certs); -X509_STORE_CTX_lookup_certs_fn X509_STORE_get_lookup_certs(const X509_STORE *ctx); -void X509_STORE_set_lookup_crls(X509_STORE *ctx, +X509_STORE_CTX_lookup_certs_fn X509_STORE_get_lookup_certs(const X509_STORE *s); +void X509_STORE_set_lookup_crls(X509_STORE *xs, X509_STORE_CTX_lookup_crls_fn lookup_crls); #define X509_STORE_set_lookup_crls_cb(ctx, func) \ X509_STORE_set_lookup_crls((ctx), (func)) -X509_STORE_CTX_lookup_crls_fn X509_STORE_get_lookup_crls(const X509_STORE *ctx); -void X509_STORE_set_cleanup(X509_STORE *ctx, +X509_STORE_CTX_lookup_crls_fn X509_STORE_get_lookup_crls(const X509_STORE *xs); +void X509_STORE_set_cleanup(X509_STORE *xs, X509_STORE_CTX_cleanup_fn cleanup); -X509_STORE_CTX_cleanup_fn X509_STORE_get_cleanup(const X509_STORE *ctx); +X509_STORE_CTX_cleanup_fn X509_STORE_get_cleanup(const X509_STORE *xs); #define X509_STORE_get_ex_new_index(l, p, newf, dupf, freef) \ CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_X509_STORE, l, p, newf, dupf, freef) -int X509_STORE_set_ex_data(X509_STORE *ctx, int idx, void *data); -void *X509_STORE_get_ex_data(const X509_STORE *ctx, int idx); +int X509_STORE_set_ex_data(X509_STORE *xs, int idx, void *data); +void *X509_STORE_get_ex_data(const X509_STORE *xs, int idx); X509_STORE_CTX *X509_STORE_CTX_new_ex(OSSL_LIB_CTX *libctx, const char *propq); X509_STORE_CTX *X509_STORE_CTX_new(void); @@ -565,11 +567,14 @@ int X509_STORE_CTX_get1_issuer(X509 **issuer, X509_STORE_CTX *ctx, X509 *x); void X509_STORE_CTX_free(X509_STORE_CTX *ctx); int X509_STORE_CTX_init(X509_STORE_CTX *ctx, X509_STORE *trust_store, X509 *target, STACK_OF(X509) *untrusted); +int X509_STORE_CTX_init_rpk(X509_STORE_CTX *ctx, X509_STORE *trust_store, + EVP_PKEY* rpk); void X509_STORE_CTX_set0_trusted_stack(X509_STORE_CTX *ctx, STACK_OF(X509) *sk); void X509_STORE_CTX_cleanup(X509_STORE_CTX *ctx); X509_STORE *X509_STORE_CTX_get0_store(const X509_STORE_CTX *ctx); X509 *X509_STORE_CTX_get0_cert(const X509_STORE_CTX *ctx); +EVP_PKEY *X509_STORE_CTX_get0_rpk(const X509_STORE_CTX *ctx); STACK_OF(X509)* X509_STORE_CTX_get0_untrusted(const X509_STORE_CTX *ctx); void X509_STORE_CTX_set0_untrusted(X509_STORE_CTX *ctx, STACK_OF(X509) *sk); void X509_STORE_CTX_set_verify_cb(X509_STORE_CTX *ctx, @@ -579,6 +584,8 @@ X509_STORE_CTX_verify_fn X509_STORE_CTX_get_verify(const X509_STORE_CTX *ctx); X509_STORE_CTX_get_issuer_fn X509_STORE_CTX_get_get_issuer(const X509_STORE_CTX *ctx); X509_STORE_CTX_check_issued_fn X509_STORE_CTX_get_check_issued(const X509_STORE_CTX *ctx); X509_STORE_CTX_check_revocation_fn X509_STORE_CTX_get_check_revocation(const X509_STORE_CTX *ctx); +void X509_STORE_CTX_set_get_crl(X509_STORE_CTX *ctx, + X509_STORE_CTX_get_crl_fn get_crl); X509_STORE_CTX_get_crl_fn X509_STORE_CTX_get_get_crl(const X509_STORE_CTX *ctx); X509_STORE_CTX_check_crl_fn X509_STORE_CTX_get_check_crl(const X509_STORE_CTX *ctx); X509_STORE_CTX_cert_crl_fn X509_STORE_CTX_get_cert_crl(const X509_STORE_CTX *ctx); @@ -600,7 +607,7 @@ X509_STORE_CTX_cleanup_fn X509_STORE_CTX_get_cleanup(const X509_STORE_CTX *ctx); # define X509_STORE_get1_crl X509_STORE_CTX_get1_crls #endif -X509_LOOKUP *X509_STORE_add_lookup(X509_STORE *v, X509_LOOKUP_METHOD *m); +X509_LOOKUP *X509_STORE_add_lookup(X509_STORE *xs, X509_LOOKUP_METHOD *m); X509_LOOKUP_METHOD *X509_LOOKUP_hash_dir(void); X509_LOOKUP_METHOD *X509_LOOKUP_file(void); X509_LOOKUP_METHOD *X509_LOOKUP_store(void); @@ -685,8 +692,8 @@ X509_LOOKUP_get_by_alias_fn X509_LOOKUP_meth_get_get_by_alias( const X509_LOOKUP_METHOD *method); -int X509_STORE_add_cert(X509_STORE *ctx, X509 *x); -int X509_STORE_add_crl(X509_STORE *ctx, X509_CRL *x); +int X509_STORE_add_cert(X509_STORE *xs, X509 *x); +int X509_STORE_add_crl(X509_STORE *xs, X509_CRL *x); int X509_STORE_CTX_get_by_subject(const X509_STORE_CTX *vs, X509_LOOKUP_TYPE type, @@ -730,23 +737,21 @@ void *X509_LOOKUP_get_method_data(const X509_LOOKUP *ctx); X509_STORE *X509_LOOKUP_get_store(const X509_LOOKUP *ctx); int X509_LOOKUP_shutdown(X509_LOOKUP *ctx); -int X509_STORE_load_file(X509_STORE *ctx, const char *file); -int X509_STORE_load_path(X509_STORE *ctx, const char *path); -int X509_STORE_load_store(X509_STORE *ctx, const char *store); -int X509_STORE_load_locations(X509_STORE *ctx, - const char *file, - const char *dir); -int X509_STORE_set_default_paths(X509_STORE *ctx); +int X509_STORE_load_file(X509_STORE *xs, const char *file); +int X509_STORE_load_path(X509_STORE *xs, const char *path); +int X509_STORE_load_store(X509_STORE *xs, const char *store); +int X509_STORE_load_locations(X509_STORE *s, const char *file, const char *dir); +int X509_STORE_set_default_paths(X509_STORE *xs); -int X509_STORE_load_file_ex(X509_STORE *ctx, const char *file, +int X509_STORE_load_file_ex(X509_STORE *xs, const char *file, OSSL_LIB_CTX *libctx, const char *propq); -int X509_STORE_load_store_ex(X509_STORE *ctx, const char *store, +int X509_STORE_load_store_ex(X509_STORE *xs, const char *store, OSSL_LIB_CTX *libctx, const char *propq); -int X509_STORE_load_locations_ex(X509_STORE *ctx, const char *file, - const char *dir, OSSL_LIB_CTX *libctx, - const char *propq); -int X509_STORE_set_default_paths_ex(X509_STORE *ctx, OSSL_LIB_CTX *libctx, - const char *propq); +int X509_STORE_load_locations_ex(X509_STORE *xs, + const char *file, const char *dir, + OSSL_LIB_CTX *libctx, const char *propq); +int X509_STORE_set_default_paths_ex(X509_STORE *xs, + OSSL_LIB_CTX *libctx, const char *propq); #define X509_STORE_CTX_get_ex_new_index(l, p, newf, dupf, freef) \ CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_X509_STORE_CTX, l, p, newf, dupf, freef) @@ -764,6 +769,7 @@ X509_STORE_CTX *X509_STORE_CTX_get0_parent_ctx(const X509_STORE_CTX *ctx); STACK_OF(X509) *X509_STORE_CTX_get0_chain(const X509_STORE_CTX *ctx); STACK_OF(X509) *X509_STORE_CTX_get1_chain(const X509_STORE_CTX *ctx); void X509_STORE_CTX_set_cert(X509_STORE_CTX *ctx, X509 *target); +void X509_STORE_CTX_set0_rpk(X509_STORE_CTX *ctx, EVP_PKEY *target); void X509_STORE_CTX_set0_verified_chain(X509_STORE_CTX *c, STACK_OF(X509) *sk); void X509_STORE_CTX_set0_crls(X509_STORE_CTX *ctx, STACK_OF(X509_CRL) *sk); int X509_STORE_CTX_set_purpose(X509_STORE_CTX *ctx, int purpose); @@ -773,6 +779,8 @@ int X509_STORE_CTX_purpose_inherit(X509_STORE_CTX *ctx, int def_purpose, void X509_STORE_CTX_set_flags(X509_STORE_CTX *ctx, unsigned long flags); void X509_STORE_CTX_set_time(X509_STORE_CTX *ctx, unsigned long flags, time_t t); +void X509_STORE_CTX_set_current_reasons(X509_STORE_CTX *ctx, + unsigned int current_reasons); X509_POLICY_TREE *X509_STORE_CTX_get0_policy_tree(const X509_STORE_CTX *ctx); int X509_STORE_CTX_get_explicit_policy(const X509_STORE_CTX *ctx); @@ -804,6 +812,7 @@ int X509_VERIFY_PARAM_clear_flags(X509_VERIFY_PARAM *param, unsigned long flags); unsigned long X509_VERIFY_PARAM_get_flags(const X509_VERIFY_PARAM *param); int X509_VERIFY_PARAM_set_purpose(X509_VERIFY_PARAM *param, int purpose); +int X509_VERIFY_PARAM_get_purpose(const X509_VERIFY_PARAM *param); int X509_VERIFY_PARAM_set_trust(X509_VERIFY_PARAM *param, int trust); void X509_VERIFY_PARAM_set_depth(X509_VERIFY_PARAM *param, int depth); void X509_VERIFY_PARAM_set_auth_level(X509_VERIFY_PARAM *param, int auth_level); diff --git a/deps/openssl/config/archs/aix64-gcc-as/asm_avx2/include/openssl/x509v3.h b/deps/openssl/config/archs/aix64-gcc-as/asm_avx2/include/openssl/x509v3.h index 20b67455f2061d..b8dabac35a4915 100644 --- a/deps/openssl/config/archs/aix64-gcc-as/asm_avx2/include/openssl/x509v3.h +++ b/deps/openssl/config/archs/aix64-gcc-as/asm_avx2/include/openssl/x509v3.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/x509v3.h.in * - * Copyright 1999-2023 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1999-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -25,6 +25,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -146,6 +149,11 @@ typedef struct BASIC_CONSTRAINTS_st { ASN1_INTEGER *pathlen; } BASIC_CONSTRAINTS; +typedef struct OSSL_BASIC_ATTR_CONSTRAINTS_st { + int authority; + ASN1_INTEGER *pathlen; +} OSSL_BASIC_ATTR_CONSTRAINTS; + typedef struct PKEY_USAGE_PERIOD_st { ASN1_GENERALIZEDTIME *notBefore; ASN1_GENERALIZEDTIME *notAfter; @@ -198,6 +206,8 @@ typedef struct ACCESS_DESCRIPTION_st { GENERAL_NAME *location; } ACCESS_DESCRIPTION; +int GENERAL_NAME_set1_X509_NAME(GENERAL_NAME **tgt, const X509_NAME *src); + SKM_DEFINE_STACK_OF_INTERNAL(ACCESS_DESCRIPTION, ACCESS_DESCRIPTION, ACCESS_DESCRIPTION) #define sk_ACCESS_DESCRIPTION_num(sk) OPENSSL_sk_num(ossl_check_const_ACCESS_DESCRIPTION_sk_type(sk)) #define sk_ACCESS_DESCRIPTION_value(sk, idx) ((ACCESS_DESCRIPTION *)OPENSSL_sk_value(ossl_check_const_ACCESS_DESCRIPTION_sk_type(sk), (idx))) @@ -294,6 +304,7 @@ typedef struct DIST_POINT_NAME_st { /* If relativename then this contains the full distribution point name */ X509_NAME *dpname; } DIST_POINT_NAME; +DECLARE_ASN1_DUP_FUNCTION(DIST_POINT_NAME) /* All existing reasons */ # define CRLDP_ALL_REASONS 0x807f @@ -659,15 +670,16 @@ struct ISSUING_DIST_POINT_st { # define EXFLAG_SAN_CRITICAL 0x80000 # define EXFLAG_NO_FINGERPRINT 0x100000 -# define KU_DIGITAL_SIGNATURE 0x0080 -# define KU_NON_REPUDIATION 0x0040 -# define KU_KEY_ENCIPHERMENT 0x0020 -# define KU_DATA_ENCIPHERMENT 0x0010 -# define KU_KEY_AGREEMENT 0x0008 -# define KU_KEY_CERT_SIGN 0x0004 -# define KU_CRL_SIGN 0x0002 -# define KU_ENCIPHER_ONLY 0x0001 -# define KU_DECIPHER_ONLY 0x8000 +/* https://datatracker.ietf.org/doc/html/rfc5280#section-4.2.1.3 */ +# define KU_DIGITAL_SIGNATURE X509v3_KU_DIGITAL_SIGNATURE +# define KU_NON_REPUDIATION X509v3_KU_NON_REPUDIATION +# define KU_KEY_ENCIPHERMENT X509v3_KU_KEY_ENCIPHERMENT +# define KU_DATA_ENCIPHERMENT X509v3_KU_DATA_ENCIPHERMENT +# define KU_KEY_AGREEMENT X509v3_KU_KEY_AGREEMENT +# define KU_KEY_CERT_SIGN X509v3_KU_KEY_CERT_SIGN +# define KU_CRL_SIGN X509v3_KU_CRL_SIGN +# define KU_ENCIPHER_ONLY X509v3_KU_ENCIPHER_ONLY +# define KU_DECIPHER_ONLY X509v3_KU_DECIPHER_ONLY # define NS_SSL_CLIENT 0x80 # define NS_SSL_SERVER 0x40 @@ -729,7 +741,7 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_PURPOSE, X509_PURPOSE, X509_PURPOSE) #define sk_X509_PURPOSE_set_cmp_func(sk, cmp) ((sk_X509_PURPOSE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_X509_PURPOSE_sk_type(sk), ossl_check_X509_PURPOSE_compfunc_type(cmp))) - +# define X509_PURPOSE_DEFAULT_ANY 0 # define X509_PURPOSE_SSL_CLIENT 1 # define X509_PURPOSE_SSL_SERVER 2 # define X509_PURPOSE_NS_SSL_SERVER 3 @@ -739,9 +751,10 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_PURPOSE, X509_PURPOSE, X509_PURPOSE) # define X509_PURPOSE_ANY 7 # define X509_PURPOSE_OCSP_HELPER 8 # define X509_PURPOSE_TIMESTAMP_SIGN 9 +# define X509_PURPOSE_CODE_SIGN 10 # define X509_PURPOSE_MIN 1 -# define X509_PURPOSE_MAX 9 +# define X509_PURPOSE_MAX 10 /* Flags for X509V3_EXT_print() */ @@ -767,6 +780,7 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_PURPOSE, X509_PURPOSE, X509_PURPOSE) # define X509V3_ADD_SILENT 0x10 DECLARE_ASN1_FUNCTIONS(BASIC_CONSTRAINTS) +DECLARE_ASN1_FUNCTIONS(OSSL_BASIC_ATTR_CONSTRAINTS) DECLARE_ASN1_FUNCTIONS(SXNET) DECLARE_ASN1_FUNCTIONS(SXNETID) @@ -976,7 +990,6 @@ int X509V3_extensions_print(BIO *out, const char *title, int X509_check_ca(X509 *x); int X509_check_purpose(X509 *x, int id, int ca); int X509_supported_extension(X509_EXTENSION *ex); -int X509_PURPOSE_set(int *p, int purpose); int X509_check_issued(X509 *issuer, X509 *subject); int X509_check_akid(const X509 *issuer, const AUTHORITY_KEYID *akid); void X509_set_proxy_flag(X509 *x); @@ -992,22 +1005,26 @@ const GENERAL_NAMES *X509_get0_authority_issuer(X509 *x); const ASN1_INTEGER *X509_get0_authority_serial(X509 *x); int X509_PURPOSE_get_count(void); -X509_PURPOSE *X509_PURPOSE_get0(int idx); +int X509_PURPOSE_get_unused_id(OSSL_LIB_CTX *libctx); int X509_PURPOSE_get_by_sname(const char *sname); int X509_PURPOSE_get_by_id(int id); int X509_PURPOSE_add(int id, int trust, int flags, int (*ck) (const X509_PURPOSE *, const X509 *, int), const char *name, const char *sname, void *arg); +void X509_PURPOSE_cleanup(void); + +X509_PURPOSE *X509_PURPOSE_get0(int idx); +int X509_PURPOSE_get_id(const X509_PURPOSE *); char *X509_PURPOSE_get0_name(const X509_PURPOSE *xp); char *X509_PURPOSE_get0_sname(const X509_PURPOSE *xp); int X509_PURPOSE_get_trust(const X509_PURPOSE *xp); -void X509_PURPOSE_cleanup(void); -int X509_PURPOSE_get_id(const X509_PURPOSE *); +int X509_PURPOSE_set(int *p, int purpose); STACK_OF(OPENSSL_STRING) *X509_get1_email(X509 *x); STACK_OF(OPENSSL_STRING) *X509_REQ_get1_email(X509_REQ *x); void X509_email_free(STACK_OF(OPENSSL_STRING) *sk); STACK_OF(OPENSSL_STRING) *X509_get1_ocsp(X509 *x); + /* Flags for X509_check_* functions */ /* @@ -1444,6 +1461,507 @@ const ASN1_PRINTABLESTRING *PROFESSION_INFO_get0_registrationNumber( void PROFESSION_INFO_set0_registrationNumber( PROFESSION_INFO *pi, ASN1_PRINTABLESTRING *rn); +int OSSL_GENERAL_NAMES_print(BIO *out, GENERAL_NAMES *gens, int indent); + +typedef STACK_OF(X509_ATTRIBUTE) OSSL_ATTRIBUTES_SYNTAX; +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTES_SYNTAX) + +typedef STACK_OF(USERNOTICE) OSSL_USER_NOTICE_SYNTAX; +DECLARE_ASN1_FUNCTIONS(OSSL_USER_NOTICE_SYNTAX) + +SKM_DEFINE_STACK_OF_INTERNAL(USERNOTICE, USERNOTICE, USERNOTICE) +#define sk_USERNOTICE_num(sk) OPENSSL_sk_num(ossl_check_const_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_value(sk, idx) ((USERNOTICE *)OPENSSL_sk_value(ossl_check_const_USERNOTICE_sk_type(sk), (idx))) +#define sk_USERNOTICE_new(cmp) ((STACK_OF(USERNOTICE) *)OPENSSL_sk_new(ossl_check_USERNOTICE_compfunc_type(cmp))) +#define sk_USERNOTICE_new_null() ((STACK_OF(USERNOTICE) *)OPENSSL_sk_new_null()) +#define sk_USERNOTICE_new_reserve(cmp, n) ((STACK_OF(USERNOTICE) *)OPENSSL_sk_new_reserve(ossl_check_USERNOTICE_compfunc_type(cmp), (n))) +#define sk_USERNOTICE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_USERNOTICE_sk_type(sk), (n)) +#define sk_USERNOTICE_free(sk) OPENSSL_sk_free(ossl_check_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_zero(sk) OPENSSL_sk_zero(ossl_check_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_delete(sk, i) ((USERNOTICE *)OPENSSL_sk_delete(ossl_check_USERNOTICE_sk_type(sk), (i))) +#define sk_USERNOTICE_delete_ptr(sk, ptr) ((USERNOTICE *)OPENSSL_sk_delete_ptr(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr))) +#define sk_USERNOTICE_push(sk, ptr) OPENSSL_sk_push(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr)) +#define sk_USERNOTICE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr)) +#define sk_USERNOTICE_pop(sk) ((USERNOTICE *)OPENSSL_sk_pop(ossl_check_USERNOTICE_sk_type(sk))) +#define sk_USERNOTICE_shift(sk) ((USERNOTICE *)OPENSSL_sk_shift(ossl_check_USERNOTICE_sk_type(sk))) +#define sk_USERNOTICE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_USERNOTICE_sk_type(sk),ossl_check_USERNOTICE_freefunc_type(freefunc)) +#define sk_USERNOTICE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr), (idx)) +#define sk_USERNOTICE_set(sk, idx, ptr) ((USERNOTICE *)OPENSSL_sk_set(ossl_check_USERNOTICE_sk_type(sk), (idx), ossl_check_USERNOTICE_type(ptr))) +#define sk_USERNOTICE_find(sk, ptr) OPENSSL_sk_find(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr)) +#define sk_USERNOTICE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr)) +#define sk_USERNOTICE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr), pnum) +#define sk_USERNOTICE_sort(sk) OPENSSL_sk_sort(ossl_check_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_dup(sk) ((STACK_OF(USERNOTICE) *)OPENSSL_sk_dup(ossl_check_const_USERNOTICE_sk_type(sk))) +#define sk_USERNOTICE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(USERNOTICE) *)OPENSSL_sk_deep_copy(ossl_check_const_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_copyfunc_type(copyfunc), ossl_check_USERNOTICE_freefunc_type(freefunc))) +#define sk_USERNOTICE_set_cmp_func(sk, cmp) ((sk_USERNOTICE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_compfunc_type(cmp))) + + +typedef struct OSSL_ROLE_SPEC_CERT_ID_st { + GENERAL_NAME *roleName; + GENERAL_NAME *roleCertIssuer; + ASN1_INTEGER *roleCertSerialNumber; + GENERAL_NAMES *roleCertLocator; +} OSSL_ROLE_SPEC_CERT_ID; + +DECLARE_ASN1_FUNCTIONS(OSSL_ROLE_SPEC_CERT_ID) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ROLE_SPEC_CERT_ID, OSSL_ROLE_SPEC_CERT_ID, OSSL_ROLE_SPEC_CERT_ID) +#define sk_OSSL_ROLE_SPEC_CERT_ID_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_value(sk, idx) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_value(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), (idx))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_new(cmp) ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_new(ossl_check_OSSL_ROLE_SPEC_CERT_ID_compfunc_type(cmp))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_new_null() ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ROLE_SPEC_CERT_ID_new_reserve(cmp, n) ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ROLE_SPEC_CERT_ID_compfunc_type(cmp), (n))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), (n)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_delete(sk, i) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_delete(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), (i))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_delete_ptr(sk, ptr) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_pop(sk) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_pop(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_shift(sk) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_shift(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk),ossl_check_OSSL_ROLE_SPEC_CERT_ID_freefunc_type(freefunc)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr), (idx)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_set(sk, idx, ptr) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_set(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), (idx), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr), pnum) +#define sk_OSSL_ROLE_SPEC_CERT_ID_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_dup(sk) ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_copyfunc_type(copyfunc), ossl_check_OSSL_ROLE_SPEC_CERT_ID_freefunc_type(freefunc))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_set_cmp_func(sk, cmp) ((sk_OSSL_ROLE_SPEC_CERT_ID_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_compfunc_type(cmp))) + + +typedef STACK_OF(OSSL_ROLE_SPEC_CERT_ID) OSSL_ROLE_SPEC_CERT_ID_SYNTAX; + +DECLARE_ASN1_FUNCTIONS(OSSL_ROLE_SPEC_CERT_ID_SYNTAX) +typedef struct OSSL_HASH_st { + X509_ALGOR *algorithmIdentifier; + ASN1_BIT_STRING *hashValue; +} OSSL_HASH; + +typedef struct OSSL_INFO_SYNTAX_POINTER_st { + GENERAL_NAMES *name; + OSSL_HASH *hash; +} OSSL_INFO_SYNTAX_POINTER; + +# define OSSL_INFO_SYNTAX_TYPE_CONTENT 0 +# define OSSL_INFO_SYNTAX_TYPE_POINTER 1 + +typedef struct OSSL_INFO_SYNTAX_st { + int type; + union { + ASN1_STRING *content; + OSSL_INFO_SYNTAX_POINTER *pointer; + } choice; +} OSSL_INFO_SYNTAX; + +typedef struct OSSL_PRIVILEGE_POLICY_ID_st { + ASN1_OBJECT *privilegePolicy; + OSSL_INFO_SYNTAX *privPolSyntax; +} OSSL_PRIVILEGE_POLICY_ID; + +typedef struct OSSL_ATTRIBUTE_DESCRIPTOR_st { + ASN1_OBJECT *identifier; + ASN1_STRING *attributeSyntax; + ASN1_UTF8STRING *name; + ASN1_UTF8STRING *description; + OSSL_PRIVILEGE_POLICY_ID *dominationRule; +} OSSL_ATTRIBUTE_DESCRIPTOR; + +DECLARE_ASN1_FUNCTIONS(OSSL_HASH) +DECLARE_ASN1_FUNCTIONS(OSSL_INFO_SYNTAX) +DECLARE_ASN1_FUNCTIONS(OSSL_INFO_SYNTAX_POINTER) +DECLARE_ASN1_FUNCTIONS(OSSL_PRIVILEGE_POLICY_ID) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_DESCRIPTOR) + +typedef struct OSSL_TIME_SPEC_ABSOLUTE_st { + ASN1_GENERALIZEDTIME *startTime; + ASN1_GENERALIZEDTIME *endTime; +} OSSL_TIME_SPEC_ABSOLUTE; + +typedef struct OSSL_DAY_TIME_st { + ASN1_INTEGER *hour; + ASN1_INTEGER *minute; + ASN1_INTEGER *second; +} OSSL_DAY_TIME; + +typedef struct OSSL_DAY_TIME_BAND_st { + OSSL_DAY_TIME *startDayTime; + OSSL_DAY_TIME *endDayTime; +} OSSL_DAY_TIME_BAND; + +# define OSSL_NAMED_DAY_TYPE_INT 0 +# define OSSL_NAMED_DAY_TYPE_BIT 1 +# define OSSL_NAMED_DAY_INT_SUN 1 +# define OSSL_NAMED_DAY_INT_MON 2 +# define OSSL_NAMED_DAY_INT_TUE 3 +# define OSSL_NAMED_DAY_INT_WED 4 +# define OSSL_NAMED_DAY_INT_THU 5 +# define OSSL_NAMED_DAY_INT_FRI 6 +# define OSSL_NAMED_DAY_INT_SAT 7 +# define OSSL_NAMED_DAY_BIT_SUN 0 +# define OSSL_NAMED_DAY_BIT_MON 1 +# define OSSL_NAMED_DAY_BIT_TUE 2 +# define OSSL_NAMED_DAY_BIT_WED 3 +# define OSSL_NAMED_DAY_BIT_THU 4 +# define OSSL_NAMED_DAY_BIT_FRI 5 +# define OSSL_NAMED_DAY_BIT_SAT 6 + +typedef struct OSSL_NAMED_DAY_st { + int type; + union { + ASN1_INTEGER *intNamedDays; + ASN1_BIT_STRING *bitNamedDays; + } choice; +} OSSL_NAMED_DAY; + +# define OSSL_TIME_SPEC_X_DAY_OF_FIRST 0 +# define OSSL_TIME_SPEC_X_DAY_OF_SECOND 1 +# define OSSL_TIME_SPEC_X_DAY_OF_THIRD 2 +# define OSSL_TIME_SPEC_X_DAY_OF_FOURTH 3 +# define OSSL_TIME_SPEC_X_DAY_OF_FIFTH 4 + +typedef struct OSSL_TIME_SPEC_X_DAY_OF_st { + int type; + union { + OSSL_NAMED_DAY *first; + OSSL_NAMED_DAY *second; + OSSL_NAMED_DAY *third; + OSSL_NAMED_DAY *fourth; + OSSL_NAMED_DAY *fifth; + } choice; +} OSSL_TIME_SPEC_X_DAY_OF; + +# define OSSL_TIME_SPEC_DAY_TYPE_INT 0 +# define OSSL_TIME_SPEC_DAY_TYPE_BIT 1 +# define OSSL_TIME_SPEC_DAY_TYPE_DAY_OF 2 +# define OSSL_TIME_SPEC_DAY_BIT_SUN 0 +# define OSSL_TIME_SPEC_DAY_BIT_MON 1 +# define OSSL_TIME_SPEC_DAY_BIT_TUE 2 +# define OSSL_TIME_SPEC_DAY_BIT_WED 3 +# define OSSL_TIME_SPEC_DAY_BIT_THU 4 +# define OSSL_TIME_SPEC_DAY_BIT_FRI 5 +# define OSSL_TIME_SPEC_DAY_BIT_SAT 6 +# define OSSL_TIME_SPEC_DAY_INT_SUN 1 +# define OSSL_TIME_SPEC_DAY_INT_MON 2 +# define OSSL_TIME_SPEC_DAY_INT_TUE 3 +# define OSSL_TIME_SPEC_DAY_INT_WED 4 +# define OSSL_TIME_SPEC_DAY_INT_THU 5 +# define OSSL_TIME_SPEC_DAY_INT_FRI 6 +# define OSSL_TIME_SPEC_DAY_INT_SAT 7 + +typedef struct OSSL_TIME_SPEC_DAY_st { + int type; + union { + STACK_OF(ASN1_INTEGER) *intDay; + ASN1_BIT_STRING *bitDay; + OSSL_TIME_SPEC_X_DAY_OF *dayOf; + } choice; +} OSSL_TIME_SPEC_DAY; + +# define OSSL_TIME_SPEC_WEEKS_TYPE_ALL 0 +# define OSSL_TIME_SPEC_WEEKS_TYPE_INT 1 +# define OSSL_TIME_SPEC_WEEKS_TYPE_BIT 2 +# define OSSL_TIME_SPEC_BIT_WEEKS_1 0 +# define OSSL_TIME_SPEC_BIT_WEEKS_2 1 +# define OSSL_TIME_SPEC_BIT_WEEKS_3 2 +# define OSSL_TIME_SPEC_BIT_WEEKS_4 3 +# define OSSL_TIME_SPEC_BIT_WEEKS_5 4 + +typedef struct OSSL_TIME_SPEC_WEEKS_st { + int type; + union { + ASN1_NULL *allWeeks; + STACK_OF(ASN1_INTEGER) *intWeek; + ASN1_BIT_STRING *bitWeek; + } choice; +} OSSL_TIME_SPEC_WEEKS; + +# define OSSL_TIME_SPEC_MONTH_TYPE_ALL 0 +# define OSSL_TIME_SPEC_MONTH_TYPE_INT 1 +# define OSSL_TIME_SPEC_MONTH_TYPE_BIT 2 +# define OSSL_TIME_SPEC_INT_MONTH_JAN 1 +# define OSSL_TIME_SPEC_INT_MONTH_FEB 2 +# define OSSL_TIME_SPEC_INT_MONTH_MAR 3 +# define OSSL_TIME_SPEC_INT_MONTH_APR 4 +# define OSSL_TIME_SPEC_INT_MONTH_MAY 5 +# define OSSL_TIME_SPEC_INT_MONTH_JUN 6 +# define OSSL_TIME_SPEC_INT_MONTH_JUL 7 +# define OSSL_TIME_SPEC_INT_MONTH_AUG 8 +# define OSSL_TIME_SPEC_INT_MONTH_SEP 9 +# define OSSL_TIME_SPEC_INT_MONTH_OCT 10 +# define OSSL_TIME_SPEC_INT_MONTH_NOV 11 +# define OSSL_TIME_SPEC_INT_MONTH_DEC 12 +# define OSSL_TIME_SPEC_BIT_MONTH_JAN 0 +# define OSSL_TIME_SPEC_BIT_MONTH_FEB 1 +# define OSSL_TIME_SPEC_BIT_MONTH_MAR 2 +# define OSSL_TIME_SPEC_BIT_MONTH_APR 3 +# define OSSL_TIME_SPEC_BIT_MONTH_MAY 4 +# define OSSL_TIME_SPEC_BIT_MONTH_JUN 5 +# define OSSL_TIME_SPEC_BIT_MONTH_JUL 6 +# define OSSL_TIME_SPEC_BIT_MONTH_AUG 7 +# define OSSL_TIME_SPEC_BIT_MONTH_SEP 8 +# define OSSL_TIME_SPEC_BIT_MONTH_OCT 9 +# define OSSL_TIME_SPEC_BIT_MONTH_NOV 10 +# define OSSL_TIME_SPEC_BIT_MONTH_DEC 11 + +typedef struct OSSL_TIME_SPEC_MONTH_st { + int type; + union { + ASN1_NULL *allMonths; + STACK_OF(ASN1_INTEGER) *intMonth; + ASN1_BIT_STRING *bitMonth; + } choice; +} OSSL_TIME_SPEC_MONTH; + +typedef struct OSSL_TIME_PERIOD_st { + STACK_OF(OSSL_DAY_TIME_BAND) *timesOfDay; + OSSL_TIME_SPEC_DAY *days; + OSSL_TIME_SPEC_WEEKS *weeks; + OSSL_TIME_SPEC_MONTH *months; + STACK_OF(ASN1_INTEGER) *years; +} OSSL_TIME_PERIOD; + +# define OSSL_TIME_SPEC_TIME_TYPE_ABSOLUTE 0 +# define OSSL_TIME_SPEC_TIME_TYPE_PERIODIC 1 + +typedef struct OSSL_TIME_SPEC_TIME_st { + int type; + union { + OSSL_TIME_SPEC_ABSOLUTE *absolute; + STACK_OF(OSSL_TIME_PERIOD) *periodic; + } choice; +} OSSL_TIME_SPEC_TIME; + +typedef struct OSSL_TIME_SPEC_st { + OSSL_TIME_SPEC_TIME *time; + ASN1_BOOLEAN notThisTime; + ASN1_INTEGER *timeZone; +} OSSL_TIME_SPEC; + +DECLARE_ASN1_FUNCTIONS(OSSL_DAY_TIME) +DECLARE_ASN1_FUNCTIONS(OSSL_DAY_TIME_BAND) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_DAY) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_WEEKS) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_MONTH) +DECLARE_ASN1_FUNCTIONS(OSSL_NAMED_DAY) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_X_DAY_OF) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_ABSOLUTE) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_TIME) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_PERIOD) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_TIME_PERIOD, OSSL_TIME_PERIOD, OSSL_TIME_PERIOD) +#define sk_OSSL_TIME_PERIOD_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_value(sk, idx) ((OSSL_TIME_PERIOD *)OPENSSL_sk_value(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk), (idx))) +#define sk_OSSL_TIME_PERIOD_new(cmp) ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_new(ossl_check_OSSL_TIME_PERIOD_compfunc_type(cmp))) +#define sk_OSSL_TIME_PERIOD_new_null() ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_new_null()) +#define sk_OSSL_TIME_PERIOD_new_reserve(cmp, n) ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_TIME_PERIOD_compfunc_type(cmp), (n))) +#define sk_OSSL_TIME_PERIOD_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), (n)) +#define sk_OSSL_TIME_PERIOD_free(sk) OPENSSL_sk_free(ossl_check_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_delete(sk, i) ((OSSL_TIME_PERIOD *)OPENSSL_sk_delete(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), (i))) +#define sk_OSSL_TIME_PERIOD_delete_ptr(sk, ptr) ((OSSL_TIME_PERIOD *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr))) +#define sk_OSSL_TIME_PERIOD_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr)) +#define sk_OSSL_TIME_PERIOD_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr)) +#define sk_OSSL_TIME_PERIOD_pop(sk) ((OSSL_TIME_PERIOD *)OPENSSL_sk_pop(ossl_check_OSSL_TIME_PERIOD_sk_type(sk))) +#define sk_OSSL_TIME_PERIOD_shift(sk) ((OSSL_TIME_PERIOD *)OPENSSL_sk_shift(ossl_check_OSSL_TIME_PERIOD_sk_type(sk))) +#define sk_OSSL_TIME_PERIOD_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_TIME_PERIOD_sk_type(sk),ossl_check_OSSL_TIME_PERIOD_freefunc_type(freefunc)) +#define sk_OSSL_TIME_PERIOD_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr), (idx)) +#define sk_OSSL_TIME_PERIOD_set(sk, idx, ptr) ((OSSL_TIME_PERIOD *)OPENSSL_sk_set(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), (idx), ossl_check_OSSL_TIME_PERIOD_type(ptr))) +#define sk_OSSL_TIME_PERIOD_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr)) +#define sk_OSSL_TIME_PERIOD_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr)) +#define sk_OSSL_TIME_PERIOD_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr), pnum) +#define sk_OSSL_TIME_PERIOD_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_dup(sk) ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_dup(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk))) +#define sk_OSSL_TIME_PERIOD_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_copyfunc_type(copyfunc), ossl_check_OSSL_TIME_PERIOD_freefunc_type(freefunc))) +#define sk_OSSL_TIME_PERIOD_set_cmp_func(sk, cmp) ((sk_OSSL_TIME_PERIOD_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_compfunc_type(cmp))) + + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_DAY_TIME_BAND, OSSL_DAY_TIME_BAND, OSSL_DAY_TIME_BAND) +#define sk_OSSL_DAY_TIME_BAND_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_value(sk, idx) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_value(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk), (idx))) +#define sk_OSSL_DAY_TIME_BAND_new(cmp) ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_new(ossl_check_OSSL_DAY_TIME_BAND_compfunc_type(cmp))) +#define sk_OSSL_DAY_TIME_BAND_new_null() ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_new_null()) +#define sk_OSSL_DAY_TIME_BAND_new_reserve(cmp, n) ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_DAY_TIME_BAND_compfunc_type(cmp), (n))) +#define sk_OSSL_DAY_TIME_BAND_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), (n)) +#define sk_OSSL_DAY_TIME_BAND_free(sk) OPENSSL_sk_free(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_delete(sk, i) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_delete(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), (i))) +#define sk_OSSL_DAY_TIME_BAND_delete_ptr(sk, ptr) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr))) +#define sk_OSSL_DAY_TIME_BAND_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr)) +#define sk_OSSL_DAY_TIME_BAND_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr)) +#define sk_OSSL_DAY_TIME_BAND_pop(sk) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_pop(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk))) +#define sk_OSSL_DAY_TIME_BAND_shift(sk) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_shift(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk))) +#define sk_OSSL_DAY_TIME_BAND_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk),ossl_check_OSSL_DAY_TIME_BAND_freefunc_type(freefunc)) +#define sk_OSSL_DAY_TIME_BAND_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr), (idx)) +#define sk_OSSL_DAY_TIME_BAND_set(sk, idx, ptr) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_set(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), (idx), ossl_check_OSSL_DAY_TIME_BAND_type(ptr))) +#define sk_OSSL_DAY_TIME_BAND_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr)) +#define sk_OSSL_DAY_TIME_BAND_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr)) +#define sk_OSSL_DAY_TIME_BAND_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr), pnum) +#define sk_OSSL_DAY_TIME_BAND_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_dup(sk) ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_dup(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk))) +#define sk_OSSL_DAY_TIME_BAND_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_copyfunc_type(copyfunc), ossl_check_OSSL_DAY_TIME_BAND_freefunc_type(freefunc))) +#define sk_OSSL_DAY_TIME_BAND_set_cmp_func(sk, cmp) ((sk_OSSL_DAY_TIME_BAND_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_compfunc_type(cmp))) + + +/* Attribute Type and Value */ +typedef struct atav_st { + ASN1_OBJECT *type; + ASN1_TYPE *value; +} OSSL_ATAV; + +typedef struct ATTRIBUTE_TYPE_MAPPING_st { + ASN1_OBJECT *local; + ASN1_OBJECT *remote; +} OSSL_ATTRIBUTE_TYPE_MAPPING; + +typedef struct ATTRIBUTE_VALUE_MAPPING_st { + OSSL_ATAV *local; + OSSL_ATAV *remote; +} OSSL_ATTRIBUTE_VALUE_MAPPING; + +# define OSSL_ATTR_MAP_TYPE 0 +# define OSSL_ATTR_MAP_VALUE 1 + +typedef struct ATTRIBUTE_MAPPING_st { + int type; + union { + OSSL_ATTRIBUTE_TYPE_MAPPING *typeMappings; + OSSL_ATTRIBUTE_VALUE_MAPPING *typeValueMappings; + } choice; +} OSSL_ATTRIBUTE_MAPPING; + +typedef STACK_OF(OSSL_ATTRIBUTE_MAPPING) OSSL_ATTRIBUTE_MAPPINGS; +DECLARE_ASN1_FUNCTIONS(OSSL_ATAV) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_TYPE_MAPPING) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_VALUE_MAPPING) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_MAPPING) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_MAPPINGS) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ATTRIBUTE_MAPPING, OSSL_ATTRIBUTE_MAPPING, OSSL_ATTRIBUTE_MAPPING) +#define sk_OSSL_ATTRIBUTE_MAPPING_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_value(sk, idx) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_value(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), (idx))) +#define sk_OSSL_ATTRIBUTE_MAPPING_new(cmp) ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_new(ossl_check_OSSL_ATTRIBUTE_MAPPING_compfunc_type(cmp))) +#define sk_OSSL_ATTRIBUTE_MAPPING_new_null() ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ATTRIBUTE_MAPPING_new_reserve(cmp, n) ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ATTRIBUTE_MAPPING_compfunc_type(cmp), (n))) +#define sk_OSSL_ATTRIBUTE_MAPPING_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), (n)) +#define sk_OSSL_ATTRIBUTE_MAPPING_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_delete(sk, i) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_delete(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), (i))) +#define sk_OSSL_ATTRIBUTE_MAPPING_delete_ptr(sk, ptr) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr))) +#define sk_OSSL_ATTRIBUTE_MAPPING_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr)) +#define sk_OSSL_ATTRIBUTE_MAPPING_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr)) +#define sk_OSSL_ATTRIBUTE_MAPPING_pop(sk) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_pop(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk))) +#define sk_OSSL_ATTRIBUTE_MAPPING_shift(sk) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_shift(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk))) +#define sk_OSSL_ATTRIBUTE_MAPPING_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk),ossl_check_OSSL_ATTRIBUTE_MAPPING_freefunc_type(freefunc)) +#define sk_OSSL_ATTRIBUTE_MAPPING_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr), (idx)) +#define sk_OSSL_ATTRIBUTE_MAPPING_set(sk, idx, ptr) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_set(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), (idx), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr))) +#define sk_OSSL_ATTRIBUTE_MAPPING_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr)) +#define sk_OSSL_ATTRIBUTE_MAPPING_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr)) +#define sk_OSSL_ATTRIBUTE_MAPPING_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr), pnum) +#define sk_OSSL_ATTRIBUTE_MAPPING_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_dup(sk) ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk))) +#define sk_OSSL_ATTRIBUTE_MAPPING_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_copyfunc_type(copyfunc), ossl_check_OSSL_ATTRIBUTE_MAPPING_freefunc_type(freefunc))) +#define sk_OSSL_ATTRIBUTE_MAPPING_set_cmp_func(sk, cmp) ((sk_OSSL_ATTRIBUTE_MAPPING_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_compfunc_type(cmp))) + + +# define OSSL_AAA_ATTRIBUTE_TYPE 0 +# define OSSL_AAA_ATTRIBUTE_VALUES 1 + +typedef struct ALLOWED_ATTRIBUTES_CHOICE_st { + int type; + union { + ASN1_OBJECT *attributeType; + X509_ATTRIBUTE *attributeTypeandValues; + } choice; +} OSSL_ALLOWED_ATTRIBUTES_CHOICE; + +typedef struct ALLOWED_ATTRIBUTES_ITEM_st { + STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *attributes; + GENERAL_NAME *holderDomain; +} OSSL_ALLOWED_ATTRIBUTES_ITEM; + +typedef STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) OSSL_ALLOWED_ATTRIBUTES_SYNTAX; + +DECLARE_ASN1_FUNCTIONS(OSSL_ALLOWED_ATTRIBUTES_CHOICE) +DECLARE_ASN1_FUNCTIONS(OSSL_ALLOWED_ATTRIBUTES_ITEM) +DECLARE_ASN1_FUNCTIONS(OSSL_ALLOWED_ATTRIBUTES_SYNTAX) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ALLOWED_ATTRIBUTES_CHOICE, OSSL_ALLOWED_ATTRIBUTES_CHOICE, OSSL_ALLOWED_ATTRIBUTES_CHOICE) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_value(sk, idx) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_value(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), (idx))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_new(cmp) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_new(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_compfunc_type(cmp))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_new_null() ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_new_reserve(cmp, n) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_compfunc_type(cmp), (n))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), (n)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_delete(sk, i) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_delete(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), (i))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_delete_ptr(sk, ptr) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_pop(sk) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_pop(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_shift(sk) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_shift(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk),ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_freefunc_type(freefunc)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr), (idx)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_set(sk, idx, ptr) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_set(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), (idx), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr), pnum) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_dup(sk) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_copyfunc_type(copyfunc), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_freefunc_type(freefunc))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_set_cmp_func(sk, cmp) ((sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_compfunc_type(cmp))) + + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ALLOWED_ATTRIBUTES_ITEM, OSSL_ALLOWED_ATTRIBUTES_ITEM, OSSL_ALLOWED_ATTRIBUTES_ITEM) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_value(sk, idx) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_value(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), (idx))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_new(cmp) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_new(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_compfunc_type(cmp))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_new_null() ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_new_reserve(cmp, n) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_compfunc_type(cmp), (n))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), (n)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_delete(sk, i) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_delete(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), (i))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_delete_ptr(sk, ptr) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_pop(sk) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_pop(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_shift(sk) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_shift(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk),ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_freefunc_type(freefunc)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr), (idx)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_set(sk, idx, ptr) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_set(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), (idx), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr), pnum) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_dup(sk) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_copyfunc_type(copyfunc), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_freefunc_type(freefunc))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_set_cmp_func(sk, cmp) ((sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_compfunc_type(cmp))) + + +typedef struct AA_DIST_POINT_st { + DIST_POINT_NAME *distpoint; + ASN1_BIT_STRING *reasons; + int dp_reasons; + ASN1_BOOLEAN indirectCRL; + ASN1_BOOLEAN containsUserAttributeCerts; + ASN1_BOOLEAN containsAACerts; + ASN1_BOOLEAN containsSOAPublicKeyCerts; +} OSSL_AA_DIST_POINT; + +DECLARE_ASN1_FUNCTIONS(OSSL_AA_DIST_POINT) + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/aix64-gcc-as/asm_avx2/include/progs.h b/deps/openssl/config/archs/aix64-gcc-as/asm_avx2/include/progs.h index be55f61503d405..1b62ec37dec130 100644 --- a/deps/openssl/config/archs/aix64-gcc-as/asm_avx2/include/progs.h +++ b/deps/openssl/config/archs/aix64-gcc-as/asm_avx2/include/progs.h @@ -56,6 +56,7 @@ extern int s_client_main(int argc, char *argv[]); extern int s_server_main(int argc, char *argv[]); extern int s_time_main(int argc, char *argv[]); extern int sess_id_main(int argc, char *argv[]); +extern int skeyutl_main(int argc, char *argv[]); extern int smime_main(int argc, char *argv[]); extern int speed_main(int argc, char *argv[]); extern int spkac_main(int argc, char *argv[]); @@ -110,6 +111,7 @@ extern const OPTIONS s_client_options[]; extern const OPTIONS s_server_options[]; extern const OPTIONS s_time_options[]; extern const OPTIONS sess_id_options[]; +extern const OPTIONS skeyutl_options[]; extern const OPTIONS smime_options[]; extern const OPTIONS speed_options[]; extern const OPTIONS spkac_options[]; diff --git a/deps/openssl/config/archs/aix64-gcc-as/asm_avx2/openssl-cl.gypi b/deps/openssl/config/archs/aix64-gcc-as/asm_avx2/openssl-cl.gypi index 0a8c078a8c59ba..81147b9497d640 100644 --- a/deps/openssl/config/archs/aix64-gcc-as/asm_avx2/openssl-cl.gypi +++ b/deps/openssl/config/archs/aix64-gcc-as/asm_avx2/openssl-cl.gypi @@ -72,6 +72,7 @@ 'openssl/apps/s_server.c', 'openssl/apps/s_time.c', 'openssl/apps/sess_id.c', + 'openssl/apps/skeyutl.c', 'openssl/apps/smime.c', 'openssl/apps/speed.c', 'openssl/apps/spkac.c', @@ -87,12 +88,14 @@ 'openssl/apps/lib/app_rand.c', 'openssl/apps/lib/app_x509.c', 'openssl/apps/lib/apps.c', + 'openssl/apps/lib/apps_opt_printf.c', 'openssl/apps/lib/apps_ui.c', 'openssl/apps/lib/columns.c', 'openssl/apps/lib/engine.c', 'openssl/apps/lib/engine_loader.c', 'openssl/apps/lib/fmt.c', 'openssl/apps/lib/http_server.c', + 'openssl/apps/lib/log.c', 'openssl/apps/lib/names.c', 'openssl/apps/lib/opt.c', 'openssl/apps/lib/s_cb.c', diff --git a/deps/openssl/config/archs/aix64-gcc-as/asm_avx2/openssl-fips.gypi b/deps/openssl/config/archs/aix64-gcc-as/asm_avx2/openssl-fips.gypi index 275d88b584e7a5..cc4851d83f0c9d 100644 --- a/deps/openssl/config/archs/aix64-gcc-as/asm_avx2/openssl-fips.gypi +++ b/deps/openssl/config/archs/aix64-gcc-as/asm_avx2/openssl-fips.gypi @@ -102,14 +102,15 @@ 'openssl/crypto/evp/kem.c', 'openssl/crypto/evp/keymgmt_lib.c', 'openssl/crypto/evp/keymgmt_meth.c', - 'openssl/crypto/evp/m_sigver.c', 'openssl/crypto/evp/mac_lib.c', 'openssl/crypto/evp/mac_meth.c', 'openssl/crypto/evp/p_lib.c', 'openssl/crypto/evp/pmeth_check.c', 'openssl/crypto/evp/pmeth_gn.c', 'openssl/crypto/evp/pmeth_lib.c', + 'openssl/crypto/evp/s_lib.c', 'openssl/crypto/evp/signature.c', + 'openssl/crypto/evp/skeymgmt_meth.c', 'openssl/crypto/ffc/ffc_backend.c', 'openssl/crypto/ffc/ffc_dh.c', 'openssl/crypto/ffc/ffc_key_generate.c', @@ -117,6 +118,8 @@ 'openssl/crypto/ffc/ffc_params.c', 'openssl/crypto/ffc/ffc_params_generate.c', 'openssl/crypto/ffc/ffc_params_validate.c', + 'openssl/crypto/hashtable/hashfunc.c', + 'openssl/crypto/hashtable/hashtable.c', 'openssl/crypto/hmac/hmac.c', 'openssl/crypto/lhash/lhash.c', 'openssl/crypto/asn1_dsa.c', @@ -147,6 +150,16 @@ 'openssl/crypto/threads_none.c', 'openssl/crypto/threads_pthread.c', 'openssl/crypto/threads_win.c', + 'openssl/crypto/time.c', + 'openssl/crypto/ml_dsa/ml_dsa_encoders.c', + 'openssl/crypto/ml_dsa/ml_dsa_key.c', + 'openssl/crypto/ml_dsa/ml_dsa_key_compress.c', + 'openssl/crypto/ml_dsa/ml_dsa_matrix.c', + 'openssl/crypto/ml_dsa/ml_dsa_ntt.c', + 'openssl/crypto/ml_dsa/ml_dsa_params.c', + 'openssl/crypto/ml_dsa/ml_dsa_sample.c', + 'openssl/crypto/ml_dsa/ml_dsa_sign.c', + 'openssl/crypto/ml_kem/ml_kem.c', 'openssl/crypto/modes/cbc128.c', 'openssl/crypto/modes/ccm128.c', 'openssl/crypto/modes/cfb128.c', @@ -155,6 +168,7 @@ 'openssl/crypto/modes/ofb128.c', 'openssl/crypto/modes/wrap128.c', 'openssl/crypto/modes/xts128.c', + 'openssl/crypto/modes/xts128gb.c', 'openssl/crypto/property/defn_cache.c', 'openssl/crypto/property/property.c', 'openssl/crypto/property/property_parse.c', @@ -183,7 +197,23 @@ 'openssl/crypto/sha/sha3.c', 'openssl/crypto/sha/sha512.c', 'openssl/crypto/sha/sha_ppc.c', + 'openssl/crypto/slh_dsa/slh_adrs.c', + 'openssl/crypto/slh_dsa/slh_dsa.c', + 'openssl/crypto/slh_dsa/slh_dsa_hash_ctx.c', + 'openssl/crypto/slh_dsa/slh_dsa_key.c', + 'openssl/crypto/slh_dsa/slh_fors.c', + 'openssl/crypto/slh_dsa/slh_hash.c', + 'openssl/crypto/slh_dsa/slh_hypertree.c', + 'openssl/crypto/slh_dsa/slh_params.c', + 'openssl/crypto/slh_dsa/slh_wots.c', + 'openssl/crypto/slh_dsa/slh_xmss.c', 'openssl/crypto/stack/stack.c', + 'openssl/crypto/thread/arch/thread_none.c', + 'openssl/crypto/thread/arch/thread_posix.c', + 'openssl/crypto/thread/arch/thread_win.c', + 'openssl/crypto/thread/api.c', + 'openssl/crypto/thread/arch.c', + 'openssl/crypto/thread/internal.c', 'openssl/providers/common/der/der_rsa_sig.c', 'openssl/providers/common/bio_prov.c', 'openssl/providers/common/capabilities.c', @@ -192,6 +222,7 @@ 'openssl/providers/common/provider_util.c', 'openssl/providers/common/securitycheck.c', 'openssl/providers/common/securitycheck_fips.c', + 'openssl/providers/fips/fipsindicator.c', 'openssl/providers/fips/fipsprov.c', 'openssl/providers/fips/self_test.c', 'openssl/providers/fips/self_test_kats.c', @@ -229,6 +260,8 @@ 'openssl/providers/implementations/kdfs/sskdf.c', 'openssl/providers/implementations/kdfs/tls1_prf.c', 'openssl/providers/implementations/kdfs/x942kdf.c', + 'openssl/providers/implementations/kem/ml_kem_kem.c', + 'openssl/providers/implementations/kem/mlx_kem.c', 'openssl/providers/implementations/kem/rsa_kem.c', 'openssl/providers/implementations/keymgmt/dh_kmgmt.c', 'openssl/providers/implementations/keymgmt/dsa_kmgmt.c', @@ -236,29 +269,39 @@ 'openssl/providers/implementations/keymgmt/ecx_kmgmt.c', 'openssl/providers/implementations/keymgmt/kdf_legacy_kmgmt.c', 'openssl/providers/implementations/keymgmt/mac_legacy_kmgmt.c', + 'openssl/providers/implementations/keymgmt/ml_dsa_kmgmt.c', + 'openssl/providers/implementations/keymgmt/ml_kem_kmgmt.c', + 'openssl/providers/implementations/keymgmt/mlx_kmgmt.c', 'openssl/providers/implementations/keymgmt/rsa_kmgmt.c', + 'openssl/providers/implementations/keymgmt/slh_dsa_kmgmt.c', 'openssl/providers/implementations/macs/cmac_prov.c', 'openssl/providers/implementations/macs/gmac_prov.c', 'openssl/providers/implementations/macs/hmac_prov.c', 'openssl/providers/implementations/macs/kmac_prov.c', - 'openssl/providers/implementations/rands/crngt.c', 'openssl/providers/implementations/rands/drbg.c', 'openssl/providers/implementations/rands/drbg_ctr.c', 'openssl/providers/implementations/rands/drbg_hash.c', 'openssl/providers/implementations/rands/drbg_hmac.c', + 'openssl/providers/implementations/rands/fips_crng_test.c', 'openssl/providers/implementations/rands/test_rng.c', 'openssl/providers/implementations/signature/dsa_sig.c', 'openssl/providers/implementations/signature/ecdsa_sig.c', 'openssl/providers/implementations/signature/eddsa_sig.c', 'openssl/providers/implementations/signature/mac_legacy_sig.c', + 'openssl/providers/implementations/signature/ml_dsa_sig.c', 'openssl/providers/implementations/signature/rsa_sig.c', - 'openssl/ssl/s3_cbc.c', + 'openssl/providers/implementations/signature/slh_dsa_sig.c', + 'openssl/providers/implementations/skeymgmt/aes_skmgmt.c', + 'openssl/providers/implementations/skeymgmt/generic.c', + 'openssl/ssl/record/methods/ssl3_cbc.c', 'openssl/providers/common/der/der_dsa_key.c', 'openssl/providers/common/der/der_dsa_sig.c', 'openssl/providers/common/der/der_ec_key.c', 'openssl/providers/common/der/der_ec_sig.c', 'openssl/providers/common/der/der_ecx_key.c', + 'openssl/providers/common/der/der_ml_dsa_key.c', 'openssl/providers/common/der/der_rsa_key.c', + 'openssl/providers/common/der/der_slh_dsa_key.c', 'openssl/providers/common/provider_ctx.c', 'openssl/providers/common/provider_err.c', 'openssl/providers/implementations/ciphers/ciphercommon.c', @@ -269,7 +312,7 @@ 'openssl/providers/implementations/ciphers/ciphercommon_gcm_hw.c', 'openssl/providers/implementations/ciphers/ciphercommon_hw.c', 'openssl/providers/implementations/digests/digestcommon.c', - 'openssl/ssl/record/tls_pad.c', + 'openssl/ssl/record/methods/tls_pad.c', 'openssl/providers/fips/fips_entry.c', ], @@ -279,9 +322,11 @@ './config/archs/aix64-gcc-as/asm_avx2/crypto/aes/vpaes-ppc.s', './config/archs/aix64-gcc-as/asm_avx2/crypto/bn/bn-ppc.s', './config/archs/aix64-gcc-as/asm_avx2/crypto/bn/ppc-mont.s', + './config/archs/aix64-gcc-as/asm_avx2/crypto/bn/ppc64-mont-fixed.s', './config/archs/aix64-gcc-as/asm_avx2/crypto/chacha/chacha-ppc.s', './config/archs/aix64-gcc-as/asm_avx2/crypto/ec/ecp_nistz256-ppc64.s', './config/archs/aix64-gcc-as/asm_avx2/crypto/ec/x25519-ppc64.s', + './config/archs/aix64-gcc-as/asm_avx2/crypto/params_idx.c', './config/archs/aix64-gcc-as/asm_avx2/crypto/ppccpuid.s', './config/archs/aix64-gcc-as/asm_avx2/crypto/modes/ghashp8-ppc.s', './config/archs/aix64-gcc-as/asm_avx2/crypto/poly1305/poly1305-ppc.s', @@ -297,7 +342,9 @@ './config/archs/aix64-gcc-as/asm_avx2/providers/common/der/der_dsa_gen.c', './config/archs/aix64-gcc-as/asm_avx2/providers/common/der/der_ec_gen.c', './config/archs/aix64-gcc-as/asm_avx2/providers/common/der/der_ecx_gen.c', + './config/archs/aix64-gcc-as/asm_avx2/providers/common/der/der_ml_dsa_gen.c', './config/archs/aix64-gcc-as/asm_avx2/providers/common/der/der_rsa_gen.c', + './config/archs/aix64-gcc-as/asm_avx2/providers/common/der/der_slh_dsa_gen.c', './config/archs/aix64-gcc-as/asm_avx2/providers/common/der/der_wrap_gen.c', './config/archs/aix64-gcc-as/asm_avx2/providers/legacy.ld', './config/archs/aix64-gcc-as/asm_avx2/providers/fips.ld', diff --git a/deps/openssl/config/archs/aix64-gcc-as/asm_avx2/openssl.gypi b/deps/openssl/config/archs/aix64-gcc-as/asm_avx2/openssl.gypi index 912a5ae1d06017..e600553fcedaa7 100644 --- a/deps/openssl/config/archs/aix64-gcc-as/asm_avx2/openssl.gypi +++ b/deps/openssl/config/archs/aix64-gcc-as/asm_avx2/openssl.gypi @@ -7,14 +7,15 @@ 'openssl/ssl/d1_srtp.c', 'openssl/ssl/methods.c', 'openssl/ssl/pqueue.c', + 'openssl/ssl/priority_queue.c', 'openssl/ssl/s3_enc.c', 'openssl/ssl/s3_lib.c', 'openssl/ssl/s3_msg.c', 'openssl/ssl/ssl_asn1.c', 'openssl/ssl/ssl_cert.c', + 'openssl/ssl/ssl_cert_comp.c', 'openssl/ssl/ssl_ciph.c', 'openssl/ssl/ssl_conf.c', - 'openssl/ssl/ssl_err.c', 'openssl/ssl/ssl_err_legacy.c', 'openssl/ssl/ssl_init.c', 'openssl/ssl/ssl_lib.c', @@ -31,12 +32,60 @@ 'openssl/ssl/tls13_enc.c', 'openssl/ssl/tls_depr.c', 'openssl/ssl/tls_srp.c', - 'openssl/ssl/record/dtls1_bitmap.c', + 'openssl/ssl/quic/cc_newreno.c', + 'openssl/ssl/quic/json_enc.c', + 'openssl/ssl/quic/qlog.c', + 'openssl/ssl/quic/qlog_event_helpers.c', + 'openssl/ssl/quic/quic_ackm.c', + 'openssl/ssl/quic/quic_cfq.c', + 'openssl/ssl/quic/quic_channel.c', + 'openssl/ssl/quic/quic_demux.c', + 'openssl/ssl/quic/quic_engine.c', + 'openssl/ssl/quic/quic_fc.c', + 'openssl/ssl/quic/quic_fifd.c', + 'openssl/ssl/quic/quic_impl.c', + 'openssl/ssl/quic/quic_lcidm.c', + 'openssl/ssl/quic/quic_method.c', + 'openssl/ssl/quic/quic_obj.c', + 'openssl/ssl/quic/quic_port.c', + 'openssl/ssl/quic/quic_rcidm.c', + 'openssl/ssl/quic/quic_reactor.c', + 'openssl/ssl/quic/quic_reactor_wait_ctx.c', + 'openssl/ssl/quic/quic_record_rx.c', + 'openssl/ssl/quic/quic_record_shared.c', + 'openssl/ssl/quic/quic_record_tx.c', + 'openssl/ssl/quic/quic_record_util.c', + 'openssl/ssl/quic/quic_rstream.c', + 'openssl/ssl/quic/quic_rx_depack.c', + 'openssl/ssl/quic/quic_sf_list.c', + 'openssl/ssl/quic/quic_srt_gen.c', + 'openssl/ssl/quic/quic_srtm.c', + 'openssl/ssl/quic/quic_sstream.c', + 'openssl/ssl/quic/quic_statm.c', + 'openssl/ssl/quic/quic_stream_map.c', + 'openssl/ssl/quic/quic_thread_assist.c', + 'openssl/ssl/quic/quic_tls.c', + 'openssl/ssl/quic/quic_tls_api.c', + 'openssl/ssl/quic/quic_trace.c', + 'openssl/ssl/quic/quic_tserver.c', + 'openssl/ssl/quic/quic_txp.c', + 'openssl/ssl/quic/quic_txpim.c', + 'openssl/ssl/quic/quic_types.c', + 'openssl/ssl/quic/quic_wire.c', + 'openssl/ssl/quic/quic_wire_pkt.c', + 'openssl/ssl/quic/uint_set.c', 'openssl/ssl/record/rec_layer_d1.c', 'openssl/ssl/record/rec_layer_s3.c', - 'openssl/ssl/record/ssl3_buffer.c', - 'openssl/ssl/record/ssl3_record.c', - 'openssl/ssl/record/ssl3_record_tls13.c', + 'openssl/ssl/record/methods/dtls_meth.c', + 'openssl/ssl/record/methods/ssl3_meth.c', + 'openssl/ssl/record/methods/tls13_meth.c', + 'openssl/ssl/record/methods/tls1_meth.c', + 'openssl/ssl/record/methods/tls_common.c', + 'openssl/ssl/record/methods/tls_multib.c', + 'openssl/ssl/record/methods/tlsany_meth.c', + 'openssl/ssl/rio/poll_builder.c', + 'openssl/ssl/rio/poll_immediate.c', + 'openssl/ssl/rio/rio_notifier.c', 'openssl/ssl/statem/extensions.c', 'openssl/ssl/statem/extensions_clnt.c', 'openssl/ssl/statem/extensions_cust.c', @@ -150,6 +199,7 @@ 'openssl/crypto/bio/bss_conn.c', 'openssl/crypto/bio/bss_core.c', 'openssl/crypto/bio/bss_dgram.c', + 'openssl/crypto/bio/bss_dgram_pair.c', 'openssl/crypto/bio/bss_fd.c', 'openssl/crypto/bio/bss_file.c', 'openssl/crypto/bio/bss_log.c', @@ -210,6 +260,7 @@ 'openssl/crypto/cmp/cmp_client.c', 'openssl/crypto/cmp/cmp_ctx.c', 'openssl/crypto/cmp/cmp_err.c', + 'openssl/crypto/cmp/cmp_genm.c', 'openssl/crypto/cmp/cmp_hdr.c', 'openssl/crypto/cmp/cmp_http.c', 'openssl/crypto/cmp/cmp_msg.c', @@ -387,7 +438,9 @@ 'openssl/crypto/err/err_all.c', 'openssl/crypto/err/err_all_legacy.c', 'openssl/crypto/err/err_blocks.c', + 'openssl/crypto/err/err_mark.c', 'openssl/crypto/err/err_prn.c', + 'openssl/crypto/err/err_save.c', 'openssl/crypto/ess/ess_asn1.c', 'openssl/crypto/ess/ess_err.c', 'openssl/crypto/ess/ess_lib.c', @@ -470,7 +523,9 @@ 'openssl/crypto/evp/pmeth_check.c', 'openssl/crypto/evp/pmeth_gn.c', 'openssl/crypto/evp/pmeth_lib.c', + 'openssl/crypto/evp/s_lib.c', 'openssl/crypto/evp/signature.c', + 'openssl/crypto/evp/skeymgmt_meth.c', 'openssl/crypto/ffc/ffc_backend.c', 'openssl/crypto/ffc/ffc_dh.c', 'openssl/crypto/ffc/ffc_key_generate.c', @@ -478,7 +533,11 @@ 'openssl/crypto/ffc/ffc_params.c', 'openssl/crypto/ffc/ffc_params_generate.c', 'openssl/crypto/ffc/ffc_params_validate.c', + 'openssl/crypto/hashtable/hashfunc.c', + 'openssl/crypto/hashtable/hashtable.c', 'openssl/crypto/hmac/hmac.c', + 'openssl/crypto/hpke/hpke.c', + 'openssl/crypto/hpke/hpke_util.c', 'openssl/crypto/http/http_client.c', 'openssl/crypto/http/http_err.c', 'openssl/crypto/http/http_lib.c', @@ -492,6 +551,7 @@ 'openssl/crypto/lhash/lhash.c', 'openssl/crypto/asn1_dsa.c', 'openssl/crypto/bsearch.c', + 'openssl/crypto/comp_methods.c', 'openssl/crypto/context.c', 'openssl/crypto/core_algorithm.c', 'openssl/crypto/core_fetch.c', @@ -501,10 +561,13 @@ 'openssl/crypto/cryptlib.c', 'openssl/crypto/ctype.c', 'openssl/crypto/cversion.c', + 'openssl/crypto/defaults.c', 'openssl/crypto/der_writer.c', + 'openssl/crypto/deterministic_nonce.c', 'openssl/crypto/ebcdic.c', 'openssl/crypto/ex_data.c', 'openssl/crypto/getenv.c', + 'openssl/crypto/indicator_core.c', 'openssl/crypto/info.c', 'openssl/crypto/init.c', 'openssl/crypto/initthread.c', @@ -529,12 +592,16 @@ 'openssl/crypto/provider_core.c', 'openssl/crypto/provider_predefined.c', 'openssl/crypto/punycode.c', + 'openssl/crypto/quic_vlint.c', 'openssl/crypto/self_test_core.c', + 'openssl/crypto/sleep.c', 'openssl/crypto/sparse_array.c', + 'openssl/crypto/ssl_err.c', 'openssl/crypto/threads_lib.c', 'openssl/crypto/threads_none.c', 'openssl/crypto/threads_pthread.c', 'openssl/crypto/threads_win.c', + 'openssl/crypto/time.c', 'openssl/crypto/trace.c', 'openssl/crypto/uid.c', 'openssl/crypto/md4/md4_dgst.c', @@ -544,6 +611,15 @@ 'openssl/crypto/md5/md5_sha1.c', 'openssl/crypto/mdc2/mdc2_one.c', 'openssl/crypto/mdc2/mdc2dgst.c', + 'openssl/crypto/ml_dsa/ml_dsa_encoders.c', + 'openssl/crypto/ml_dsa/ml_dsa_key.c', + 'openssl/crypto/ml_dsa/ml_dsa_key_compress.c', + 'openssl/crypto/ml_dsa/ml_dsa_matrix.c', + 'openssl/crypto/ml_dsa/ml_dsa_ntt.c', + 'openssl/crypto/ml_dsa/ml_dsa_params.c', + 'openssl/crypto/ml_dsa/ml_dsa_sample.c', + 'openssl/crypto/ml_dsa/ml_dsa_sign.c', + 'openssl/crypto/ml_kem/ml_kem.c', 'openssl/crypto/modes/cbc128.c', 'openssl/crypto/modes/ccm128.c', 'openssl/crypto/modes/cfb128.c', @@ -555,6 +631,7 @@ 'openssl/crypto/modes/siv128.c', 'openssl/crypto/modes/wrap128.c', 'openssl/crypto/modes/xts128.c', + 'openssl/crypto/modes/xts128gb.c', 'openssl/crypto/objects/o_names.c', 'openssl/crypto/objects/obj_dat.c', 'openssl/crypto/objects/obj_err.c', @@ -619,6 +696,7 @@ 'openssl/crypto/rand/rand_lib.c', 'openssl/crypto/rand/rand_meth.c', 'openssl/crypto/rand/rand_pool.c', + 'openssl/crypto/rand/rand_uniform.c', 'openssl/crypto/rand/randfile.c', 'openssl/crypto/rc2/rc2_cbc.c', 'openssl/crypto/rc2/rc2_ecb.c', @@ -667,6 +745,16 @@ 'openssl/crypto/sha/sha512.c', 'openssl/crypto/sha/sha_ppc.c', 'openssl/crypto/siphash/siphash.c', + 'openssl/crypto/slh_dsa/slh_adrs.c', + 'openssl/crypto/slh_dsa/slh_dsa.c', + 'openssl/crypto/slh_dsa/slh_dsa_hash_ctx.c', + 'openssl/crypto/slh_dsa/slh_dsa_key.c', + 'openssl/crypto/slh_dsa/slh_fors.c', + 'openssl/crypto/slh_dsa/slh_hash.c', + 'openssl/crypto/slh_dsa/slh_hypertree.c', + 'openssl/crypto/slh_dsa/slh_params.c', + 'openssl/crypto/slh_dsa/slh_wots.c', + 'openssl/crypto/slh_dsa/slh_xmss.c', 'openssl/crypto/sm2/sm2_crypt.c', 'openssl/crypto/sm2/sm2_err.c', 'openssl/crypto/sm2/sm2_key.c', @@ -684,6 +772,12 @@ 'openssl/crypto/store/store_register.c', 'openssl/crypto/store/store_result.c', 'openssl/crypto/store/store_strings.c', + 'openssl/crypto/thread/arch/thread_none.c', + 'openssl/crypto/thread/arch/thread_posix.c', + 'openssl/crypto/thread/arch/thread_win.c', + 'openssl/crypto/thread/api.c', + 'openssl/crypto/thread/arch.c', + 'openssl/crypto/thread/internal.c', 'openssl/crypto/ts/ts_asn1.c', 'openssl/crypto/ts/ts_conf.c', 'openssl/crypto/ts/ts_err.c', @@ -712,14 +806,22 @@ 'openssl/crypto/x509/pcy_map.c', 'openssl/crypto/x509/pcy_node.c', 'openssl/crypto/x509/pcy_tree.c', + 'openssl/crypto/x509/t_acert.c', 'openssl/crypto/x509/t_crl.c', 'openssl/crypto/x509/t_req.c', 'openssl/crypto/x509/t_x509.c', + 'openssl/crypto/x509/v3_aaa.c', + 'openssl/crypto/x509/v3_ac_tgt.c', 'openssl/crypto/x509/v3_addr.c', 'openssl/crypto/x509/v3_admis.c', 'openssl/crypto/x509/v3_akeya.c', 'openssl/crypto/x509/v3_akid.c', 'openssl/crypto/x509/v3_asid.c', + 'openssl/crypto/x509/v3_attrdesc.c', + 'openssl/crypto/x509/v3_attrmap.c', + 'openssl/crypto/x509/v3_audit_id.c', + 'openssl/crypto/x509/v3_authattid.c', + 'openssl/crypto/x509/v3_battcons.c', 'openssl/crypto/x509/v3_bcons.c', 'openssl/crypto/x509/v3_bitst.c', 'openssl/crypto/x509/v3_conf.c', @@ -728,12 +830,17 @@ 'openssl/crypto/x509/v3_enum.c', 'openssl/crypto/x509/v3_extku.c', 'openssl/crypto/x509/v3_genn.c', + 'openssl/crypto/x509/v3_group_ac.c', 'openssl/crypto/x509/v3_ia5.c', + 'openssl/crypto/x509/v3_ind_iss.c', 'openssl/crypto/x509/v3_info.c', 'openssl/crypto/x509/v3_int.c', + 'openssl/crypto/x509/v3_iobo.c', 'openssl/crypto/x509/v3_ist.c', 'openssl/crypto/x509/v3_lib.c', 'openssl/crypto/x509/v3_ncons.c', + 'openssl/crypto/x509/v3_no_ass.c', + 'openssl/crypto/x509/v3_no_rev_avail.c', 'openssl/crypto/x509/v3_pci.c', 'openssl/crypto/x509/v3_pcia.c', 'openssl/crypto/x509/v3_pcons.c', @@ -741,13 +848,20 @@ 'openssl/crypto/x509/v3_pmaps.c', 'openssl/crypto/x509/v3_prn.c', 'openssl/crypto/x509/v3_purp.c', + 'openssl/crypto/x509/v3_rolespec.c', 'openssl/crypto/x509/v3_san.c', + 'openssl/crypto/x509/v3_sda.c', + 'openssl/crypto/x509/v3_single_use.c', 'openssl/crypto/x509/v3_skid.c', + 'openssl/crypto/x509/v3_soa_id.c', 'openssl/crypto/x509/v3_sxnet.c', + 'openssl/crypto/x509/v3_timespec.c', 'openssl/crypto/x509/v3_tlsf.c', + 'openssl/crypto/x509/v3_usernotice.c', 'openssl/crypto/x509/v3_utf8.c', 'openssl/crypto/x509/v3_utl.c', 'openssl/crypto/x509/v3err.c', + 'openssl/crypto/x509/x509_acert.c', 'openssl/crypto/x509/x509_att.c', 'openssl/crypto/x509/x509_cmp.c', 'openssl/crypto/x509/x509_d2.c', @@ -765,6 +879,7 @@ 'openssl/crypto/x509/x509_v3.c', 'openssl/crypto/x509/x509_vfy.c', 'openssl/crypto/x509/x509_vpm.c', + 'openssl/crypto/x509/x509aset.c', 'openssl/crypto/x509/x509cset.c', 'openssl/crypto/x509/x509name.c', 'openssl/crypto/x509/x509rset.c', @@ -774,6 +889,7 @@ 'openssl/crypto/x509/x_attrib.c', 'openssl/crypto/x509/x_crl.c', 'openssl/crypto/x509/x_exten.c', + 'openssl/crypto/x509/x_ietfatt.c', 'openssl/crypto/x509/x_name.c', 'openssl/crypto/x509/x_pubkey.c', 'openssl/crypto/x509/x_req.c', @@ -805,6 +921,9 @@ 'openssl/providers/implementations/ciphers/cipher_aes_ccm_hw.c', 'openssl/providers/implementations/ciphers/cipher_aes_gcm.c', 'openssl/providers/implementations/ciphers/cipher_aes_gcm_hw.c', + 'openssl/providers/implementations/ciphers/cipher_aes_gcm_siv.c', + 'openssl/providers/implementations/ciphers/cipher_aes_gcm_siv_hw.c', + 'openssl/providers/implementations/ciphers/cipher_aes_gcm_siv_polyval.c', 'openssl/providers/implementations/ciphers/cipher_aes_hw.c', 'openssl/providers/implementations/ciphers/cipher_aes_ocb.c', 'openssl/providers/implementations/ciphers/cipher_aes_ocb_hw.c', @@ -829,7 +948,13 @@ 'openssl/providers/implementations/ciphers/cipher_cts.c', 'openssl/providers/implementations/ciphers/cipher_null.c', 'openssl/providers/implementations/ciphers/cipher_sm4.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_ccm.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_ccm_hw.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_gcm.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_gcm_hw.c', 'openssl/providers/implementations/ciphers/cipher_sm4_hw.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_xts.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_xts_hw.c', 'openssl/providers/implementations/ciphers/cipher_tdes.c', 'openssl/providers/implementations/ciphers/cipher_tdes_common.c', 'openssl/providers/implementations/ciphers/cipher_tdes_default.c', @@ -858,11 +983,16 @@ 'openssl/providers/implementations/encode_decode/encode_key2ms.c', 'openssl/providers/implementations/encode_decode/encode_key2text.c', 'openssl/providers/implementations/encode_decode/endecoder_common.c', + 'openssl/providers/implementations/encode_decode/ml_common_codecs.c', + 'openssl/providers/implementations/encode_decode/ml_dsa_codecs.c', + 'openssl/providers/implementations/encode_decode/ml_kem_codecs.c', 'openssl/providers/implementations/exchange/dh_exch.c', 'openssl/providers/implementations/exchange/ecdh_exch.c', 'openssl/providers/implementations/exchange/ecx_exch.c', 'openssl/providers/implementations/exchange/kdf_exch.c', + 'openssl/providers/implementations/kdfs/argon2.c', 'openssl/providers/implementations/kdfs/hkdf.c', + 'openssl/providers/implementations/kdfs/hmacdrbg_kdf.c', 'openssl/providers/implementations/kdfs/kbkdf.c', 'openssl/providers/implementations/kdfs/krb5kdf.c', 'openssl/providers/implementations/kdfs/pbkdf2.c', @@ -873,6 +1003,11 @@ 'openssl/providers/implementations/kdfs/sskdf.c', 'openssl/providers/implementations/kdfs/tls1_prf.c', 'openssl/providers/implementations/kdfs/x942kdf.c', + 'openssl/providers/implementations/kem/ec_kem.c', + 'openssl/providers/implementations/kem/ecx_kem.c', + 'openssl/providers/implementations/kem/kem_util.c', + 'openssl/providers/implementations/kem/ml_kem_kem.c', + 'openssl/providers/implementations/kem/mlx_kem.c', 'openssl/providers/implementations/kem/rsa_kem.c', 'openssl/providers/implementations/keymgmt/dh_kmgmt.c', 'openssl/providers/implementations/keymgmt/dsa_kmgmt.c', @@ -880,7 +1015,11 @@ 'openssl/providers/implementations/keymgmt/ecx_kmgmt.c', 'openssl/providers/implementations/keymgmt/kdf_legacy_kmgmt.c', 'openssl/providers/implementations/keymgmt/mac_legacy_kmgmt.c', + 'openssl/providers/implementations/keymgmt/ml_dsa_kmgmt.c', + 'openssl/providers/implementations/keymgmt/ml_kem_kmgmt.c', + 'openssl/providers/implementations/keymgmt/mlx_kmgmt.c', 'openssl/providers/implementations/keymgmt/rsa_kmgmt.c', + 'openssl/providers/implementations/keymgmt/slh_dsa_kmgmt.c', 'openssl/providers/implementations/macs/blake2b_mac.c', 'openssl/providers/implementations/macs/blake2s_mac.c', 'openssl/providers/implementations/macs/cmac_prov.c', @@ -889,12 +1028,12 @@ 'openssl/providers/implementations/macs/kmac_prov.c', 'openssl/providers/implementations/macs/poly1305_prov.c', 'openssl/providers/implementations/macs/siphash_prov.c', - 'openssl/providers/implementations/rands/crngt.c', 'openssl/providers/implementations/rands/drbg.c', 'openssl/providers/implementations/rands/drbg_ctr.c', 'openssl/providers/implementations/rands/drbg_hash.c', 'openssl/providers/implementations/rands/drbg_hmac.c', 'openssl/providers/implementations/rands/seed_src.c', + 'openssl/providers/implementations/rands/seed_src_jitter.c', 'openssl/providers/implementations/rands/test_rng.c', 'openssl/providers/implementations/rands/seeding/rand_cpu_x86.c', 'openssl/providers/implementations/rands/seeding/rand_tsc.c', @@ -904,17 +1043,23 @@ 'openssl/providers/implementations/signature/ecdsa_sig.c', 'openssl/providers/implementations/signature/eddsa_sig.c', 'openssl/providers/implementations/signature/mac_legacy_sig.c', + 'openssl/providers/implementations/signature/ml_dsa_sig.c', 'openssl/providers/implementations/signature/rsa_sig.c', + 'openssl/providers/implementations/signature/slh_dsa_sig.c', 'openssl/providers/implementations/signature/sm2_sig.c', + 'openssl/providers/implementations/skeymgmt/aes_skmgmt.c', + 'openssl/providers/implementations/skeymgmt/generic.c', 'openssl/providers/implementations/storemgmt/file_store.c', 'openssl/providers/implementations/storemgmt/file_store_any2obj.c', - 'openssl/ssl/s3_cbc.c', + 'openssl/ssl/record/methods/ssl3_cbc.c', 'openssl/providers/common/der/der_dsa_key.c', 'openssl/providers/common/der/der_dsa_sig.c', 'openssl/providers/common/der/der_ec_key.c', 'openssl/providers/common/der/der_ec_sig.c', 'openssl/providers/common/der/der_ecx_key.c', + 'openssl/providers/common/der/der_ml_dsa_key.c', 'openssl/providers/common/der/der_rsa_key.c', + 'openssl/providers/common/der/der_slh_dsa_key.c', 'openssl/providers/common/provider_ctx.c', 'openssl/providers/common/provider_err.c', 'openssl/providers/implementations/ciphers/ciphercommon.c', @@ -925,7 +1070,7 @@ 'openssl/providers/implementations/ciphers/ciphercommon_gcm_hw.c', 'openssl/providers/implementations/ciphers/ciphercommon_hw.c', 'openssl/providers/implementations/digests/digestcommon.c', - 'openssl/ssl/record/tls_pad.c', + 'openssl/ssl/record/methods/tls_pad.c', 'openssl/providers/implementations/ciphers/cipher_blowfish.c', 'openssl/providers/implementations/ciphers/cipher_blowfish_hw.c', 'openssl/providers/implementations/ciphers/cipher_cast5.c', @@ -950,6 +1095,7 @@ 'openssl/providers/implementations/digests/ripemd_prov.c', 'openssl/providers/implementations/digests/wp_prov.c', 'openssl/providers/implementations/kdfs/pbkdf1.c', + 'openssl/providers/implementations/kdfs/pvkkdf.c', 'openssl/providers/prov_running.c', 'openssl/providers/legacyprov.c', ], @@ -959,9 +1105,11 @@ './config/archs/aix64-gcc-as/asm_avx2/crypto/aes/vpaes-ppc.s', './config/archs/aix64-gcc-as/asm_avx2/crypto/bn/bn-ppc.s', './config/archs/aix64-gcc-as/asm_avx2/crypto/bn/ppc-mont.s', + './config/archs/aix64-gcc-as/asm_avx2/crypto/bn/ppc64-mont-fixed.s', './config/archs/aix64-gcc-as/asm_avx2/crypto/chacha/chacha-ppc.s', './config/archs/aix64-gcc-as/asm_avx2/crypto/ec/ecp_nistz256-ppc64.s', './config/archs/aix64-gcc-as/asm_avx2/crypto/ec/x25519-ppc64.s', + './config/archs/aix64-gcc-as/asm_avx2/crypto/params_idx.c', './config/archs/aix64-gcc-as/asm_avx2/crypto/ppccpuid.s', './config/archs/aix64-gcc-as/asm_avx2/crypto/modes/ghashp8-ppc.s', './config/archs/aix64-gcc-as/asm_avx2/crypto/poly1305/poly1305-ppc.s', @@ -977,7 +1125,9 @@ './config/archs/aix64-gcc-as/asm_avx2/providers/common/der/der_dsa_gen.c', './config/archs/aix64-gcc-as/asm_avx2/providers/common/der/der_ec_gen.c', './config/archs/aix64-gcc-as/asm_avx2/providers/common/der/der_ecx_gen.c', + './config/archs/aix64-gcc-as/asm_avx2/providers/common/der/der_ml_dsa_gen.c', './config/archs/aix64-gcc-as/asm_avx2/providers/common/der/der_rsa_gen.c', + './config/archs/aix64-gcc-as/asm_avx2/providers/common/der/der_slh_dsa_gen.c', './config/archs/aix64-gcc-as/asm_avx2/providers/common/der/der_wrap_gen.c', './config/archs/aix64-gcc-as/asm_avx2/providers/legacy.ld', './config/archs/aix64-gcc-as/asm_avx2/providers/fips.ld', diff --git a/deps/openssl/config/archs/aix64-gcc-as/asm_avx2/providers/common/der/der_ml_dsa_gen.c b/deps/openssl/config/archs/aix64-gcc-as/asm_avx2/providers/common/der/der_ml_dsa_gen.c new file mode 100644 index 00000000000000..4a8a113a268578 --- /dev/null +++ b/deps/openssl/config/archs/aix64-gcc-as/asm_avx2/providers/common/der/der_ml_dsa_gen.c @@ -0,0 +1,37 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from providers/common/der/der_ml_dsa_gen.c.in + * + * Copyright 2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include "prov/der_ml_dsa.h" + +/* Well known OIDs precompiled */ + +/* + * id-ml-dsa-44 OBJECT IDENTIFIER ::= { sigAlgs 17 } + */ +const unsigned char ossl_der_oid_id_ml_dsa_44[DER_OID_SZ_id_ml_dsa_44] = { + DER_OID_V_id_ml_dsa_44 +}; + +/* + * id-ml-dsa-65 OBJECT IDENTIFIER ::= { sigAlgs 18 } + */ +const unsigned char ossl_der_oid_id_ml_dsa_65[DER_OID_SZ_id_ml_dsa_65] = { + DER_OID_V_id_ml_dsa_65 +}; + +/* + * id-ml-dsa-87 OBJECT IDENTIFIER ::= { sigAlgs 19 } + */ +const unsigned char ossl_der_oid_id_ml_dsa_87[DER_OID_SZ_id_ml_dsa_87] = { + DER_OID_V_id_ml_dsa_87 +}; + diff --git a/deps/openssl/config/archs/aix64-gcc-as/asm_avx2/providers/common/der/der_slh_dsa_gen.c b/deps/openssl/config/archs/aix64-gcc-as/asm_avx2/providers/common/der/der_slh_dsa_gen.c new file mode 100644 index 00000000000000..1419a9515097dd --- /dev/null +++ b/deps/openssl/config/archs/aix64-gcc-as/asm_avx2/providers/common/der/der_slh_dsa_gen.c @@ -0,0 +1,100 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from providers/common/der/der_slh_dsa_gen.c.in + * + * Copyright 2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include "prov/der_slh_dsa.h" + +/* Well known OIDs precompiled */ + +/* + * id-slh-dsa-sha2-128s OBJECT IDENTIFIER ::= { sigAlgs 20 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_128s[DER_OID_SZ_id_slh_dsa_sha2_128s] = { + DER_OID_V_id_slh_dsa_sha2_128s +}; + +/* + * id-slh-dsa-sha2-128f OBJECT IDENTIFIER ::= { sigAlgs 21 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_128f[DER_OID_SZ_id_slh_dsa_sha2_128f] = { + DER_OID_V_id_slh_dsa_sha2_128f +}; + +/* + * id-slh-dsa-sha2-192s OBJECT IDENTIFIER ::= { sigAlgs 22 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_192s[DER_OID_SZ_id_slh_dsa_sha2_192s] = { + DER_OID_V_id_slh_dsa_sha2_192s +}; + +/* + * id-slh-dsa-sha2-192f OBJECT IDENTIFIER ::= { sigAlgs 23 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_192f[DER_OID_SZ_id_slh_dsa_sha2_192f] = { + DER_OID_V_id_slh_dsa_sha2_192f +}; + +/* + * id-slh-dsa-sha2-256s OBJECT IDENTIFIER ::= { sigAlgs 24 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_256s[DER_OID_SZ_id_slh_dsa_sha2_256s] = { + DER_OID_V_id_slh_dsa_sha2_256s +}; + +/* + * id-slh-dsa-sha2-256f OBJECT IDENTIFIER ::= { sigAlgs 25 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_256f[DER_OID_SZ_id_slh_dsa_sha2_256f] = { + DER_OID_V_id_slh_dsa_sha2_256f +}; + +/* + * id-slh-dsa-shake-128s OBJECT IDENTIFIER ::= { sigAlgs 26 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_128s[DER_OID_SZ_id_slh_dsa_shake_128s] = { + DER_OID_V_id_slh_dsa_shake_128s +}; + +/* + * id-slh-dsa-shake-128f OBJECT IDENTIFIER ::= { sigAlgs 27 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_128f[DER_OID_SZ_id_slh_dsa_shake_128f] = { + DER_OID_V_id_slh_dsa_shake_128f +}; + +/* + * id-slh-dsa-shake-192s OBJECT IDENTIFIER ::= { sigAlgs 28 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_192s[DER_OID_SZ_id_slh_dsa_shake_192s] = { + DER_OID_V_id_slh_dsa_shake_192s +}; + +/* + * id-slh-dsa-shake-192f OBJECT IDENTIFIER ::= { sigAlgs 29 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_192f[DER_OID_SZ_id_slh_dsa_shake_192f] = { + DER_OID_V_id_slh_dsa_shake_192f +}; + +/* + * id-slh-dsa-shake-256s OBJECT IDENTIFIER ::= { sigAlgs 30 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_256s[DER_OID_SZ_id_slh_dsa_shake_256s] = { + DER_OID_V_id_slh_dsa_shake_256s +}; + +/* + * id-slh-dsa-shake-256f OBJECT IDENTIFIER ::= { sigAlgs 31 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_256f[DER_OID_SZ_id_slh_dsa_shake_256f] = { + DER_OID_V_id_slh_dsa_shake_256f +}; + diff --git a/deps/openssl/config/archs/aix64-gcc-as/asm_avx2/providers/common/include/prov/der_ml_dsa.h b/deps/openssl/config/archs/aix64-gcc-as/asm_avx2/providers/common/include/prov/der_ml_dsa.h new file mode 100644 index 00000000000000..c55f780ab4527c --- /dev/null +++ b/deps/openssl/config/archs/aix64-gcc-as/asm_avx2/providers/common/include/prov/der_ml_dsa.h @@ -0,0 +1,40 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from providers/common/include/prov/der_ml_dsa.h.in + * + * Copyright 2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include "internal/der.h" +#include "crypto/ml_dsa.h" + +/* Well known OIDs precompiled */ + +/* + * id-ml-dsa-44 OBJECT IDENTIFIER ::= { sigAlgs 17 } + */ +#define DER_OID_V_id_ml_dsa_44 DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x11 +#define DER_OID_SZ_id_ml_dsa_44 11 +extern const unsigned char ossl_der_oid_id_ml_dsa_44[DER_OID_SZ_id_ml_dsa_44]; + +/* + * id-ml-dsa-65 OBJECT IDENTIFIER ::= { sigAlgs 18 } + */ +#define DER_OID_V_id_ml_dsa_65 DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x12 +#define DER_OID_SZ_id_ml_dsa_65 11 +extern const unsigned char ossl_der_oid_id_ml_dsa_65[DER_OID_SZ_id_ml_dsa_65]; + +/* + * id-ml-dsa-87 OBJECT IDENTIFIER ::= { sigAlgs 19 } + */ +#define DER_OID_V_id_ml_dsa_87 DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x13 +#define DER_OID_SZ_id_ml_dsa_87 11 +extern const unsigned char ossl_der_oid_id_ml_dsa_87[DER_OID_SZ_id_ml_dsa_87]; + + +int ossl_DER_w_algorithmIdentifier_ML_DSA(WPACKET *pkt, int tag, ML_DSA_KEY *key); diff --git a/deps/openssl/config/archs/aix64-gcc-as/asm_avx2/providers/common/include/prov/der_slh_dsa.h b/deps/openssl/config/archs/aix64-gcc-as/asm_avx2/providers/common/include/prov/der_slh_dsa.h new file mode 100644 index 00000000000000..760f8e7699be72 --- /dev/null +++ b/deps/openssl/config/archs/aix64-gcc-as/asm_avx2/providers/common/include/prov/der_slh_dsa.h @@ -0,0 +1,103 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from providers/common/include/prov/der_slh_dsa.h.in + * + * Copyright 2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include "internal/der.h" +#include "crypto/slh_dsa.h" + +/* Well known OIDs precompiled */ + +/* + * id-slh-dsa-sha2-128s OBJECT IDENTIFIER ::= { sigAlgs 20 } + */ +#define DER_OID_V_id_slh_dsa_sha2_128s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x14 +#define DER_OID_SZ_id_slh_dsa_sha2_128s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_128s[DER_OID_SZ_id_slh_dsa_sha2_128s]; + +/* + * id-slh-dsa-sha2-128f OBJECT IDENTIFIER ::= { sigAlgs 21 } + */ +#define DER_OID_V_id_slh_dsa_sha2_128f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x15 +#define DER_OID_SZ_id_slh_dsa_sha2_128f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_128f[DER_OID_SZ_id_slh_dsa_sha2_128f]; + +/* + * id-slh-dsa-sha2-192s OBJECT IDENTIFIER ::= { sigAlgs 22 } + */ +#define DER_OID_V_id_slh_dsa_sha2_192s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x16 +#define DER_OID_SZ_id_slh_dsa_sha2_192s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_192s[DER_OID_SZ_id_slh_dsa_sha2_192s]; + +/* + * id-slh-dsa-sha2-192f OBJECT IDENTIFIER ::= { sigAlgs 23 } + */ +#define DER_OID_V_id_slh_dsa_sha2_192f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x17 +#define DER_OID_SZ_id_slh_dsa_sha2_192f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_192f[DER_OID_SZ_id_slh_dsa_sha2_192f]; + +/* + * id-slh-dsa-sha2-256s OBJECT IDENTIFIER ::= { sigAlgs 24 } + */ +#define DER_OID_V_id_slh_dsa_sha2_256s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x18 +#define DER_OID_SZ_id_slh_dsa_sha2_256s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_256s[DER_OID_SZ_id_slh_dsa_sha2_256s]; + +/* + * id-slh-dsa-sha2-256f OBJECT IDENTIFIER ::= { sigAlgs 25 } + */ +#define DER_OID_V_id_slh_dsa_sha2_256f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x19 +#define DER_OID_SZ_id_slh_dsa_sha2_256f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_256f[DER_OID_SZ_id_slh_dsa_sha2_256f]; + +/* + * id-slh-dsa-shake-128s OBJECT IDENTIFIER ::= { sigAlgs 26 } + */ +#define DER_OID_V_id_slh_dsa_shake_128s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1A +#define DER_OID_SZ_id_slh_dsa_shake_128s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_128s[DER_OID_SZ_id_slh_dsa_shake_128s]; + +/* + * id-slh-dsa-shake-128f OBJECT IDENTIFIER ::= { sigAlgs 27 } + */ +#define DER_OID_V_id_slh_dsa_shake_128f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1B +#define DER_OID_SZ_id_slh_dsa_shake_128f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_128f[DER_OID_SZ_id_slh_dsa_shake_128f]; + +/* + * id-slh-dsa-shake-192s OBJECT IDENTIFIER ::= { sigAlgs 28 } + */ +#define DER_OID_V_id_slh_dsa_shake_192s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1C +#define DER_OID_SZ_id_slh_dsa_shake_192s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_192s[DER_OID_SZ_id_slh_dsa_shake_192s]; + +/* + * id-slh-dsa-shake-192f OBJECT IDENTIFIER ::= { sigAlgs 29 } + */ +#define DER_OID_V_id_slh_dsa_shake_192f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1D +#define DER_OID_SZ_id_slh_dsa_shake_192f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_192f[DER_OID_SZ_id_slh_dsa_shake_192f]; + +/* + * id-slh-dsa-shake-256s OBJECT IDENTIFIER ::= { sigAlgs 30 } + */ +#define DER_OID_V_id_slh_dsa_shake_256s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1E +#define DER_OID_SZ_id_slh_dsa_shake_256s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_256s[DER_OID_SZ_id_slh_dsa_shake_256s]; + +/* + * id-slh-dsa-shake-256f OBJECT IDENTIFIER ::= { sigAlgs 31 } + */ +#define DER_OID_V_id_slh_dsa_shake_256f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1F +#define DER_OID_SZ_id_slh_dsa_shake_256f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_256f[DER_OID_SZ_id_slh_dsa_shake_256f]; + + +int ossl_DER_w_algorithmIdentifier_SLH_DSA(WPACKET *pkt, int tag, SLH_DSA_KEY *key); diff --git a/deps/openssl/config/archs/aix64-gcc-as/no-asm/apps/progs.c b/deps/openssl/config/archs/aix64-gcc-as/no-asm/apps/progs.c index 43cef00799b86e..acc204a3e6e781 100644 --- a/deps/openssl/config/archs/aix64-gcc-as/no-asm/apps/progs.c +++ b/deps/openssl/config/archs/aix64-gcc-as/no-asm/apps/progs.c @@ -89,6 +89,7 @@ FUNCTION functions[] = { {FT_general, "s_time", s_time_main, s_time_options, NULL, NULL}, #endif {FT_general, "sess_id", sess_id_main, sess_id_options, NULL, NULL}, + {FT_general, "skeyutl", skeyutl_main, skeyutl_options, NULL, NULL}, {FT_general, "smime", smime_main, smime_options, NULL, NULL}, {FT_general, "speed", speed_main, speed_options, NULL, NULL}, {FT_general, "spkac", spkac_main, spkac_options, NULL, NULL}, @@ -225,9 +226,15 @@ FUNCTION functions[] = { {FT_cipher, "camellia-256-ecb", enc_main, enc_options, NULL}, #endif {FT_cipher, "base64", enc_main, enc_options, NULL}, -#ifdef ZLIB +#ifndef OPENSSL_NO_ZLIB {FT_cipher, "zlib", enc_main, enc_options, NULL}, #endif +#ifndef OPENSSL_NO_BROTLI + {FT_cipher, "brotli", enc_main, enc_options, NULL}, +#endif +#ifndef OPENSSL_NO_ZSTD + {FT_cipher, "zstd", enc_main, enc_options, NULL}, +#endif #ifndef OPENSSL_NO_DES {FT_cipher, "des", enc_main, enc_options, NULL}, #endif diff --git a/deps/openssl/config/archs/aix64-gcc-as/no-asm/configdata.pm b/deps/openssl/config/archs/aix64-gcc-as/no-asm/configdata.pm index c291a8d8d7550a..b4835de765edcc 100644 --- a/deps/openssl/config/archs/aix64-gcc-as/no-asm/configdata.pm +++ b/deps/openssl/config/archs/aix64-gcc-as/no-asm/configdata.pm @@ -18,6 +18,7 @@ our %config = ( "ARFLAGS" => [ "qc" ], + "ASFLAGS" => [], "CC" => "gcc", "CFLAGS" => [ "-O" @@ -27,14 +28,16 @@ our %config = ( "CPPINCLUDES" => [], "CXXFLAGS" => [], "FIPSKEY" => "f4556650ac31d35461610bac4ed81b1a181b2d8a43ea2854cbae22ca74560813", + "FIPS_VENDOR" => "OpenSSL FIPS Provider", "HASHBANGPERL" => "/usr/bin/env perl", "LDFLAGS" => [], "LDLIBS" => [], + "OBJCOPY" => "objcopy", "PERL" => "/usr/bin/perl", "RANLIB" => "ranlib -X64", "RC" => "windres", "RCFLAGS" => [], - "api" => "30000", + "api" => "30500", "b32" => "0", "b64" => "0", "b64l" => "1", @@ -56,11 +59,13 @@ our %config = ( "doc/build.info", "test/build.info", "engines/build.info", + "exporters/build.info", "crypto/objects/build.info", "crypto/buffer/build.info", "crypto/bio/build.info", "crypto/stack/build.info", "crypto/lhash/build.info", + "crypto/hashtable/build.info", "crypto/rand/build.info", "crypto/evp/build.info", "crypto/asn1/build.info", @@ -78,6 +83,7 @@ our %config = ( "crypto/md5/build.info", "crypto/sha/build.info", "crypto/mdc2/build.info", + "crypto/ml_kem/build.info", "crypto/hmac/build.info", "crypto/ripemd/build.info", "crypto/whrlpool/build.info", @@ -119,11 +125,19 @@ our %config = ( "crypto/cmp/build.info", "crypto/encode_decode/build.info", "crypto/ffc/build.info", + "crypto/hpke/build.info", + "crypto/thread/build.info", + "crypto/ml_dsa/build.info", + "crypto/slh_dsa/build.info", + "ssl/record/build.info", + "ssl/rio/build.info", + "ssl/quic/build.info", "apps/lib/build.info", "providers/common/build.info", "providers/implementations/build.info", "providers/fips/build.info", "doc/man1/build.info", + "ssl/record/methods/build.info", "providers/common/der/build.info", "providers/implementations/digests/build.info", "providers/implementations/ciphers/build.info", @@ -137,6 +151,7 @@ our %config = ( "providers/implementations/encode_decode/build.info", "providers/implementations/storemgmt/build.info", "providers/implementations/kem/build.info", + "providers/implementations/skeymgmt/build.info", "providers/implementations/rands/seeding/build.info" ], "build_metadata" => "", @@ -154,7 +169,7 @@ our %config = ( ], "dynamic_engines" => "0", "ex_libs" => [], - "full_version" => "3.0.17", + "full_version" => "3.5.1", "includes" => [], "lflags" => [], "lib_defines" => [ @@ -163,9 +178,9 @@ our %config = ( "libdir" => "", "major" => "3", "makedep_scheme" => "gcc", - "minor" => "0", + "minor" => "5", "openssl_api_defines" => [ - "OPENSSL_CONFIGURED_API=30000" + "OPENSSL_CONFIGURED_API=30500" ], "openssl_feature_defines" => [ "OPENSSL_RAND_SEED_OS", @@ -173,28 +188,43 @@ our %config = ( "OPENSSL_NO_AFALGENG", "OPENSSL_NO_ASAN", "OPENSSL_NO_ASM", + "OPENSSL_NO_BROTLI", + "OPENSSL_NO_BROTLI_DYNAMIC", "OPENSSL_NO_COMP", "OPENSSL_NO_CRYPTO_MDEBUG", "OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE", + "OPENSSL_NO_DEMOS", "OPENSSL_NO_DEVCRYPTOENG", "OPENSSL_NO_EC_NISTP_64_GCC_128", "OPENSSL_NO_EGD", "OPENSSL_NO_EXTERNAL_TESTS", + "OPENSSL_NO_FIPS_JITTER", "OPENSSL_NO_FUZZ_AFL", "OPENSSL_NO_FUZZ_LIBFUZZER", + "OPENSSL_NO_H3DEMO", + "OPENSSL_NO_HQINTEROP", + "OPENSSL_NO_JITTER", "OPENSSL_NO_KTLS", "OPENSSL_NO_LOADERENG", "OPENSSL_NO_MD2", "OPENSSL_NO_MSAN", + "OPENSSL_NO_PIE", "OPENSSL_NO_RC5", "OPENSSL_NO_SCTP", "OPENSSL_NO_SSL3", "OPENSSL_NO_SSL3_METHOD", + "OPENSSL_NO_SSLKEYLOG", + "OPENSSL_NO_TFO", "OPENSSL_NO_TRACE", "OPENSSL_NO_UBSAN", "OPENSSL_NO_UNIT_TEST", "OPENSSL_NO_UPLINK", "OPENSSL_NO_WEAK_SSL_CIPHERS", + "OPENSSL_NO_WINSTORE", + "OPENSSL_NO_ZLIB", + "OPENSSL_NO_ZLIB_DYNAMIC", + "OPENSSL_NO_ZSTD", + "OPENSSL_NO_ZSTD_DYNAMIC", "OPENSSL_NO_DYNAMIC_ENGINE" ], "openssl_other_defines" => [ @@ -204,11 +234,11 @@ our %config = ( "OPENSSL_SYS_AIX" ], "openssldir" => "", - "options" => "enable-ssl-trace enable-fips no-afalgeng no-asan no-asm no-buildtest-c++ no-comp no-crypto-mdebug no-crypto-mdebug-backtrace no-devcryptoeng no-dynamic-engine no-ec_nistp_64_gcc_128 no-egd no-external-tests no-fuzz-afl no-fuzz-libfuzzer no-ktls no-loadereng no-md2 no-msan no-rc5 no-sctp no-shared no-ssl3 no-ssl3-method no-trace no-ubsan no-unit-test no-uplink no-weak-ssl-ciphers no-zlib no-zlib-dynamic", - "patch" => "17", + "options" => "enable-ssl-trace enable-fips no-afalgeng no-asan no-asm no-brotli no-brotli-dynamic no-buildtest-c++ no-comp no-crypto-mdebug no-crypto-mdebug-backtrace no-demos no-devcryptoeng no-dynamic-engine no-ec_nistp_64_gcc_128 no-egd no-external-tests no-fips-jitter no-fuzz-afl no-fuzz-libfuzzer no-h3demo no-hqinterop no-jitter no-ktls no-loadereng no-md2 no-msan no-pie no-rc5 no-sctp no-shared no-ssl3 no-ssl3-method no-sslkeylog no-tfo no-trace no-ubsan no-unit-test no-uplink no-weak-ssl-ciphers no-winstore no-zlib no-zlib-dynamic no-zstd no-zstd-dynamic", + "patch" => "1", "perl_archname" => "x86_64-linux-gnu-thread-multi", "perl_cmd" => "/usr/bin/perl", - "perl_version" => "5.38.2", + "perl_version" => "5.34.0", "perlargv" => [ "no-comp", "no-shared", @@ -239,6 +269,7 @@ our %config = ( "LDLIBS" => undef, "MT" => undef, "MTFLAGS" => undef, + "OBJCOPY" => undef, "OPENSSL_LOCAL_CONFIG_DIR" => undef, "PERL" => undef, "RANLIB" => undef, @@ -262,7 +293,7 @@ our %config = ( "shlib_version" => "3", "sourcedir" => ".", "target" => "aix64-gcc-as", - "version" => "3.0.17" + "version" => "3.5.1" ); our %target = ( "AR" => "ar -X64", @@ -270,6 +301,7 @@ our %target = ( "CC" => "gcc", "CFLAGS" => "-O", "HASHBANGPERL" => "/usr/bin/env perl", + "OBJCOPY" => "objcopy", "RANLIB" => "ranlib -X64", "RC" => "windres", "_conf_fname_int" => [ @@ -281,6 +313,8 @@ our %target = ( "Configurations/shared-info.pl" ], "asm_arch" => "ppc64", + "bin_cflags" => "", + "bin_lflags" => "", "bn_ops" => "SIXTY_FOUR_BIT_LONG RC4_CHAR", "build_file" => "Makefile", "build_scheme" => [ @@ -323,6 +357,8 @@ our %target = ( our @disablables = ( "acvp-tests", "afalgeng", + "apps", + "argon2", "aria", "asan", "asm", @@ -333,11 +369,14 @@ our @disablables = ( "autoload-config", "bf", "blake2", + "brotli", + "brotli-dynamic", "buildtest-c++", "bulk", "cached-fetch", "camellia", "capieng", + "winstore", "cast", "chacha", "cmac", @@ -346,11 +385,16 @@ our @disablables = ( "comp", "crypto-mdebug", "ct", + "default-thread-pool", + "demos", + "h3demo", + "hqinterop", "deprecated", "des", "devcryptoeng", "dgram", "dh", + "docs", "dsa", "dso", "dtls", @@ -360,6 +404,7 @@ our @disablables = ( "ec_nistp_64_gcc_128", "ecdh", "ecdsa", + "ecx", "egd", "engine", "err", @@ -367,10 +412,15 @@ our @disablables = ( "filenames", "fips", "fips-securitychecks", + "fips-post", + "fips-jitter", "fuzz-afl", "fuzz-libfuzzer", "gost", + "http", "idea", + "integrity-only-ciphers", + "jitter", "ktls", "legacy", "loadereng", @@ -378,6 +428,8 @@ our @disablables = ( "md2", "md4", "mdc2", + "ml-dsa", + "ml-kem", "module", "msan", "multiblock", @@ -386,10 +438,13 @@ our @disablables = ( "ocsp", "padlockeng", "pic", + "pie", "pinshared", "poly1305", "posix-io", "psk", + "quic", + "unstable-qlog", "rc2", "rc4", "rc5", @@ -403,7 +458,9 @@ our @disablables = ( "shared", "siphash", "siv", + "slh-dsa", "sm2", + "sm2-precomp", "sm3", "sm4", "sock", @@ -414,9 +471,13 @@ our @disablables = ( "ssl-trace", "static-engine", "stdio", + "sslkeylog", "tests", + "tfo", + "thread-pool", "threads", "tls", + "tls-deprecated-ec", "trace", "ts", "ubsan", @@ -427,6 +488,8 @@ our @disablables = ( "whirlpool", "zlib", "zlib-dynamic", + "zstd", + "zstd-dynamic", "ssl3", "ssl3-method", "tls1", @@ -448,33 +511,46 @@ our %disabled = ( "afalgeng" => "option", "asan" => "default", "asm" => "option", + "brotli" => "default", + "brotli-dynamic" => "default", "buildtest-c++" => "default", "comp" => "option", "crypto-mdebug" => "default", "crypto-mdebug-backtrace" => "default", + "demos" => "default", "devcryptoeng" => "default", "dynamic-engine" => "cascade", "ec_nistp_64_gcc_128" => "default", "egd" => "default", "external-tests" => "default", + "fips-jitter" => "default", "fuzz-afl" => "default", "fuzz-libfuzzer" => "default", + "h3demo" => "default", + "hqinterop" => "default", + "jitter" => "default", "ktls" => "default", "loadereng" => "cascade", "md2" => "default", "msan" => "default", + "pie" => "default", "rc5" => "default", "sctp" => "default", "shared" => "option", "ssl3" => "default", "ssl3-method" => "default", + "sslkeylog" => "default", + "tfo" => "default", "trace" => "default", "ubsan" => "default", "unit-test" => "default", "uplink" => "no uplink_arch", "weak-ssl-ciphers" => "default", + "winstore" => "not-windows", "zlib" => "default", - "zlib-dynamic" => "default" + "zlib-dynamic" => "default", + "zstd" => "default", + "zstd-dynamic" => "default" ); our %withargs = (); our %unified_info = ( @@ -700,6 +776,11 @@ our %unified_info = ( "pod" => "1" } }, + "doc/man1/openssl-skeyutl.pod" => { + "doc/man1/openssl-skeyutl.pod.in" => { + "pod" => "1" + } + }, "doc/man1/openssl-smime.pod" => { "doc/man1/openssl-smime.pod.in" => { "pod" => "1" @@ -757,6 +838,21 @@ our %unified_info = ( } }, "generate" => { + "exporters/OpenSSLConfig.cmake" => { + "exporter" => "cmake" + }, + "exporters/OpenSSLConfigVersion.cmake" => { + "exporter" => "cmake" + }, + "exporters/libcrypto.pc" => { + "exporter" => "pkg-config" + }, + "exporters/libssl.pc" => { + "exporter" => "pkg-config" + }, + "exporters/openssl.pc" => { + "exporter" => "pkg-config" + }, "include/openssl/configuration.h" => { "skip" => "1" } @@ -777,6 +873,9 @@ our %unified_info = ( "providers/liblegacy.a" => { "noinst" => "1" }, + "providers/libtemplate.a" => { + "noinst" => "1" + }, "test/libtestutil.a" => { "has_main" => "1", "noinst" => "1" @@ -794,6 +893,9 @@ our %unified_info = ( } }, "programs" => { + "fuzz/acert-test" => { + "noinst" => "1" + }, "fuzz/asn1-test" => { "noinst" => "1" }, @@ -824,9 +926,60 @@ our %unified_info = ( "fuzz/ct-test" => { "noinst" => "1" }, + "fuzz/decoder-test" => { + "noinst" => "1" + }, + "fuzz/dtlsclient-test" => { + "noinst" => "1" + }, + "fuzz/dtlsserver-test" => { + "noinst" => "1" + }, + "fuzz/hashtable-test" => { + "noinst" => "1" + }, + "fuzz/ml-dsa-test" => { + "noinst" => "1" + }, + "fuzz/ml-kem-test" => { + "noinst" => "1" + }, + "fuzz/pem-test" => { + "noinst" => "1" + }, + "fuzz/provider-test" => { + "noinst" => "1" + }, + "fuzz/punycode-test" => { + "noinst" => "1" + }, + "fuzz/quic-client-test" => { + "noinst" => "1" + }, + "fuzz/quic-lcidm-test" => { + "noinst" => "1" + }, + "fuzz/quic-rcidm-test" => { + "noinst" => "1" + }, + "fuzz/quic-server-test" => { + "noinst" => "1" + }, + "fuzz/quic-srtm-test" => { + "noinst" => "1" + }, "fuzz/server-test" => { "noinst" => "1" }, + "fuzz/slh-dsa-test" => { + "noinst" => "1" + }, + "fuzz/smime-test" => { + "noinst" => "1" + }, + "fuzz/v3name-test" => { + "noinst" => "1" + }, "fuzz/x509-test" => { "noinst" => "1" }, @@ -878,18 +1031,30 @@ our %unified_info = ( "test/bftest" => { "noinst" => "1" }, + "test/bio_addr_test" => { + "noinst" => "1" + }, + "test/bio_base64_test" => { + "noinst" => "1" + }, "test/bio_callback_test" => { "noinst" => "1" }, "test/bio_core_test" => { "noinst" => "1" }, + "test/bio_dgram_test" => { + "noinst" => "1" + }, "test/bio_enc_test" => { "noinst" => "1" }, "test/bio_memleak_test" => { "noinst" => "1" }, + "test/bio_meth_test" => { + "noinst" => "1" + }, "test/bio_prefix_text" => { "noinst" => "1" }, @@ -899,6 +1064,9 @@ our %unified_info = ( "test/bio_readbuffer_test" => { "noinst" => "1" }, + "test/bio_tfo_test" => { + "noinst" => "1" + }, "test/bioprinttest" => { "noinst" => "1" }, @@ -908,6 +1076,9 @@ our %unified_info = ( "test/bntest" => { "noinst" => "1" }, + "test/build_wincrypt_test" => { + "noinst" => "1" + }, "test/buildtest_c_aes" => { "noinst" => "1" }, @@ -923,6 +1094,9 @@ our %unified_info = ( "test/buildtest_c_buffer" => { "noinst" => "1" }, + "test/buildtest_c_byteorder" => { + "noinst" => "1" + }, "test/buildtest_c_camellia" => { "noinst" => "1" }, @@ -947,9 +1121,6 @@ our %unified_info = ( "test/buildtest_c_core_dispatch" => { "noinst" => "1" }, - "test/buildtest_c_core_names" => { - "noinst" => "1" - }, "test/buildtest_c_core_object" => { "noinst" => "1" }, @@ -974,6 +1145,9 @@ our %unified_info = ( "test/buildtest_c_e_os2" => { "noinst" => "1" }, + "test/buildtest_c_e_ostime" => { + "noinst" => "1" + }, "test/buildtest_c_ebcdic" => { "noinst" => "1" }, @@ -1001,12 +1175,18 @@ our %unified_info = ( "test/buildtest_c_hmac" => { "noinst" => "1" }, + "test/buildtest_c_hpke" => { + "noinst" => "1" + }, "test/buildtest_c_http" => { "noinst" => "1" }, "test/buildtest_c_idea" => { "noinst" => "1" }, + "test/buildtest_c_indicator" => { + "noinst" => "1" + }, "test/buildtest_c_kdf" => { "noinst" => "1" }, @@ -1022,6 +1202,9 @@ our %unified_info = ( "test/buildtest_c_mdc2" => { "noinst" => "1" }, + "test/buildtest_c_ml_kem" => { + "noinst" => "1" + }, "test/buildtest_c_modes" => { "noinst" => "1" }, @@ -1052,6 +1235,9 @@ our %unified_info = ( "test/buildtest_c_provider" => { "noinst" => "1" }, + "test/buildtest_c_quic" => { + "noinst" => "1" + }, "test/buildtest_c_rand" => { "noinst" => "1" }, @@ -1094,6 +1280,9 @@ our %unified_info = ( "test/buildtest_c_symhacks" => { "noinst" => "1" }, + "test/buildtest_c_thread" => { + "noinst" => "1" + }, "test/buildtest_c_tls1" => { "noinst" => "1" }, @@ -1109,6 +1298,12 @@ our %unified_info = ( "test/buildtest_c_whrlpool" => { "noinst" => "1" }, + "test/byteorder_test" => { + "noinst" => "1" + }, + "test/ca_internals_test" => { + "noinst" => "1" + }, "test/casttest" => { "noinst" => "1" }, @@ -1193,6 +1388,9 @@ our %unified_info = ( "test/danetest" => { "noinst" => "1" }, + "test/decoder_propq_test" => { + "noinst" => "1" + }, "test/defltfips_test" => { "noinst" => "1" }, @@ -1265,15 +1463,24 @@ our %unified_info = ( "test/evp_pkey_ctx_new_from_name" => { "noinst" => "1" }, + "test/evp_pkey_dhkem_test" => { + "noinst" => "1" + }, "test/evp_pkey_dparams_test" => { "noinst" => "1" }, "test/evp_pkey_provided_test" => { "noinst" => "1" }, + "test/evp_skey_test" => { + "noinst" => "1" + }, "test/evp_test" => { "noinst" => "1" }, + "test/evp_xof_test" => { + "noinst" => "1" + }, "test/exdatatest" => { "noinst" => "1" }, @@ -1301,6 +1508,9 @@ our %unified_info = ( "test/hmactest" => { "noinst" => "1" }, + "test/hpke_test" => { + "noinst" => "1" + }, "test/http_test" => { "noinst" => "1" }, @@ -1310,12 +1520,18 @@ our %unified_info = ( "test/igetest" => { "noinst" => "1" }, + "test/json_test" => { + "noinst" => "1" + }, "test/keymgmt_internal_test" => { "noinst" => "1" }, "test/lhash_test" => { "noinst" => "1" }, + "test/list_test" => { + "noinst" => "1" + }, "test/localetest" => { "noinst" => "1" }, @@ -1325,9 +1541,21 @@ our %unified_info = ( "test/mdc2test" => { "noinst" => "1" }, + "test/membio_test" => { + "noinst" => "1" + }, "test/memleaktest" => { "noinst" => "1" }, + "test/ml_dsa_test" => { + "noinst" => "1" + }, + "test/ml_kem_evp_extra_test" => { + "noinst" => "1" + }, + "test/ml_kem_internal_test" => { + "noinst" => "1" + }, "test/modes_internal_test" => { "noinst" => "1" }, @@ -1346,6 +1574,9 @@ our %unified_info = ( "test/packettest" => { "noinst" => "1" }, + "test/pairwise_fail_test" => { + "noinst" => "1" + }, "test/param_build_test" => { "noinst" => "1" }, @@ -1370,6 +1601,9 @@ our %unified_info = ( "test/pemtest" => { "noinst" => "1" }, + "test/pkcs12_api_test" => { + "noinst" => "1" + }, "test/pkcs12_format_test" => { "noinst" => "1" }, @@ -1385,6 +1619,9 @@ our %unified_info = ( "test/poly1305_internal_test" => { "noinst" => "1" }, + "test/priority_queue_test" => { + "noinst" => "1" + }, "test/property_test" => { "noinst" => "1" }, @@ -1394,6 +1631,9 @@ our %unified_info = ( "test/provfetchtest" => { "noinst" => "1" }, + "test/provider_default_search_path_test" => { + "noinst" => "1" + }, "test/provider_fallback_test" => { "noinst" => "1" }, @@ -1412,6 +1652,72 @@ our %unified_info = ( "test/punycode_test" => { "noinst" => "1" }, + "test/quic_ackm_test" => { + "noinst" => "1" + }, + "test/quic_cc_test" => { + "noinst" => "1" + }, + "test/quic_cfq_test" => { + "noinst" => "1" + }, + "test/quic_client_test" => { + "noinst" => "1" + }, + "test/quic_fc_test" => { + "noinst" => "1" + }, + "test/quic_fifd_test" => { + "noinst" => "1" + }, + "test/quic_lcidm_test" => { + "noinst" => "1" + }, + "test/quic_multistream_test" => { + "noinst" => "1" + }, + "test/quic_newcid_test" => { + "noinst" => "1" + }, + "test/quic_qlog_test" => { + "noinst" => "1" + }, + "test/quic_radix_test" => { + "noinst" => "1" + }, + "test/quic_rcidm_test" => { + "noinst" => "1" + }, + "test/quic_record_test" => { + "noinst" => "1" + }, + "test/quic_srt_gen_test" => { + "noinst" => "1" + }, + "test/quic_srtm_test" => { + "noinst" => "1" + }, + "test/quic_stream_test" => { + "noinst" => "1" + }, + "test/quic_tserver_test" => { + "noinst" => "1" + }, + "test/quic_txp_test" => { + "noinst" => "1" + }, + "test/quic_txpim_test" => { + "noinst" => "1" + }, + "test/quic_wire_test" => { + "noinst" => "1" + }, + "test/quicapitest" => { + "noinst" => "1" + }, + "test/quicfaultstest" => { + "noinst" => "1" + }, "test/rand_status_test" => { "noinst" => "1" }, @@ -1427,12 +1733,15 @@ our %unified_info = ( "test/rc5test" => { "noinst" => "1" }, - "test/rdrand_sanitytest" => { + "test/rdcpu_sanitytest" => { "noinst" => "1" }, "test/recordlentest" => { "noinst" => "1" }, + "test/rpktest" => { + "noinst" => "1" + }, "test/rsa_complex" => { "noinst" => "1" }, @@ -1445,6 +1754,12 @@ our %unified_info = ( "test/rsa_test" => { "noinst" => "1" }, + "test/rsa_x931_test" => { + "noinst" => "1" + }, + "test/safe_math_test" => { + "noinst" => "1" + }, "test/sanitytest" => { "noinst" => "1" }, @@ -1460,6 +1775,9 @@ our %unified_info = ( "test/siphash_internal_test" => { "noinst" => "1" }, + "test/slh_dsa_test" => { + "noinst" => "1" + }, "test/sm2_internal_test" => { "noinst" => "1" }, @@ -1481,6 +1799,9 @@ our %unified_info = ( "test/ssl_ctx_test" => { "noinst" => "1" }, + "test/ssl_handshake_rtt_test" => { + "noinst" => "1" + }, "test/ssl_old_test" => { "noinst" => "1" }, @@ -1502,12 +1823,18 @@ our %unified_info = ( "test/stack_test" => { "noinst" => "1" }, + "test/strtoultest" => { + "noinst" => "1" + }, "test/sysdefaulttest" => { "noinst" => "1" }, "test/test_test" => { "noinst" => "1" }, + "test/threadpool_test" => { + "noinst" => "1" + }, "test/threadstest" => { "noinst" => "1" }, @@ -1517,12 +1844,18 @@ our %unified_info = ( "test/time_offset_test" => { "noinst" => "1" }, + "test/time_test" => { + "noinst" => "1" + }, "test/tls13ccstest" => { "noinst" => "1" }, "test/tls13encryptiontest" => { "noinst" => "1" }, + "test/tls13groupselection_test" => { + "noinst" => "1" + }, "test/trace_api_test" => { "noinst" => "1" }, @@ -1550,6 +1883,9 @@ our %unified_info = ( "test/wpackettest" => { "noinst" => "1" }, + "test/x509_acert_test" => { + "noinst" => "1" + }, "test/x509_check_cert_pkey_test" => { "noinst" => "1" }, @@ -1559,6 +1895,15 @@ our %unified_info = ( "test/x509_internal_test" => { "noinst" => "1" }, + "test/x509_load_cert_file_test" => { + "noinst" => "1" + }, + "test/x509_req_test" => { + "noinst" => "1" + }, + "test/x509_test" => { + "noinst" => "1" + }, "test/x509_time_test" => { "noinst" => "1" }, @@ -1602,6 +1947,9 @@ our %unified_info = ( "providers/libfips.a" => [ "FIPS_MODULE" ], + "test/endecode_test" => [ + "STATIC_LEGACY" + ], "test/evp_extra_test" => [ "STATIC_LEGACY" ], @@ -1614,14 +1962,21 @@ our %unified_info = ( }, "depends" => { "" => [ + "OpenSSLConfigVersion.cmake", + "crypto/params_idx.c", + "exporters/OpenSSLConfigVersion.cmake", + "exporters/openssl.pc", "include/crypto/bn_conf.h", "include/crypto/dso_conf.h", + "include/internal/param_names.h", "include/openssl/asn1.h", "include/openssl/asn1t.h", "include/openssl/bio.h", "include/openssl/cmp.h", "include/openssl/cms.h", + "include/openssl/comp.h", "include/openssl/conf.h", + "include/openssl/core_names.h", "include/openssl/crmf.h", "include/openssl/crypto.h", "include/openssl/ct.h", @@ -1638,10 +1993,22 @@ our %unified_info = ( "include/openssl/ssl.h", "include/openssl/ui.h", "include/openssl/x509.h", + "include/openssl/x509_acert.h", "include/openssl/x509_vfy.h", "include/openssl/x509v3.h", + "openssl.pc", "test/provider_internal_test.cnf" ], + "OpenSSLConfig.cmake" => [ + "builddata.pm" + ], + "OpenSSLConfigVersion.cmake" => [ + "OpenSSLConfig.cmake", + "builddata.pm" + ], + "apps/ca_internals_test-bin-ca.o" => [ + "apps/progs.h" + ], "apps/lib/cmp_client_test-bin-cmp_mock_srv.o" => [ "apps/progs.h" ], @@ -1787,6 +2154,9 @@ our %unified_info = ( "apps/openssl-bin-sess_id.o" => [ "apps/progs.h" ], + "apps/openssl-bin-skeyutl.o" => [ + "apps/progs.h" + ], "apps/openssl-bin-smime.o" => [ "apps/progs.h" ], @@ -1875,6 +2245,9 @@ our %unified_info = ( "crypto/libcrypto-lib-info.o" => [ "crypto/buildinf.h" ], + "crypto/params_idx.c" => [ + "util/perl|OpenSSL/paramnames.pm" + ], "crypto/rc4/rc4-586.S" => [ "crypto/perlasm/x86asm.pl" ], @@ -2040,6 +2413,9 @@ our %unified_info = ( "doc/html/man1/openssl-sess_id.html" => [ "doc/man1/openssl-sess_id.pod" ], + "doc/html/man1/openssl-skeyutl.html" => [ + "doc/man1/openssl-skeyutl.pod" + ], "doc/html/man1/openssl-smime.html" => [ "doc/man1/openssl-smime.pod" ], @@ -2181,6 +2557,9 @@ our %unified_info = ( "doc/html/man3/BIO_get_ex_new_index.html" => [ "doc/man3/BIO_get_ex_new_index.pod" ], + "doc/html/man3/BIO_get_rpoll_descriptor.html" => [ + "doc/man3/BIO_get_rpoll_descriptor.pod" + ], "doc/html/man3/BIO_meth_new.html" => [ "doc/man3/BIO_meth_new.pod" ], @@ -2217,6 +2596,9 @@ our %unified_info = ( "doc/html/man3/BIO_s_datagram.html" => [ "doc/man3/BIO_s_datagram.pod" ], + "doc/html/man3/BIO_s_dgram_pair.html" => [ + "doc/man3/BIO_s_dgram_pair.pod" + ], "doc/html/man3/BIO_s_fd.html" => [ "doc/man3/BIO_s_fd.pod" ], @@ -2232,6 +2614,9 @@ our %unified_info = ( "doc/html/man3/BIO_s_socket.html" => [ "doc/man3/BIO_s_socket.pod" ], + "doc/html/man3/BIO_sendmmsg.html" => [ + "doc/man3/BIO_sendmmsg.pod" + ], "doc/html/man3/BIO_set_callback.html" => [ "doc/man3/BIO_set_callback.pod" ], @@ -2304,6 +2689,9 @@ our %unified_info = ( "doc/html/man3/BUF_MEM_new.html" => [ "doc/man3/BUF_MEM_new.pod" ], + "doc/html/man3/CMAC_CTX.html" => [ + "doc/man3/CMAC_CTX.pod" + ], "doc/html/man3/CMS_EncryptedData_decrypt.html" => [ "doc/man3/CMS_EncryptedData_decrypt.pod" ], @@ -2370,6 +2758,9 @@ our %unified_info = ( "doc/html/man3/CMS_verify_receipt.html" => [ "doc/man3/CMS_verify_receipt.pod" ], + "doc/html/man3/COMP_CTX_new.html" => [ + "doc/man3/COMP_CTX_new.pod" + ], "doc/html/man3/CONF_modules_free.html" => [ "doc/man3/CONF_modules_free.pod" ], @@ -2469,6 +2860,12 @@ our %unified_info = ( "doc/html/man3/DTLS_set_timer_cb.html" => [ "doc/man3/DTLS_set_timer_cb.pod" ], + "doc/html/man3/DTLSv1_get_timeout.html" => [ + "doc/man3/DTLSv1_get_timeout.pod" + ], + "doc/html/man3/DTLSv1_handle_timeout.html" => [ + "doc/man3/DTLSv1_handle_timeout.pod" + ], "doc/html/man3/DTLSv1_listen.html" => [ "doc/man3/DTLSv1_listen.pod" ], @@ -2607,6 +3004,9 @@ our %unified_info = ( "doc/html/man3/EVP_PKEY_CTX_get0_pkey.html" => [ "doc/man3/EVP_PKEY_CTX_get0_pkey.pod" ], + "doc/html/man3/EVP_PKEY_CTX_get_algor.html" => [ + "doc/man3/EVP_PKEY_CTX_get_algor.pod" + ], "doc/html/man3/EVP_PKEY_CTX_new.html" => [ "doc/man3/EVP_PKEY_CTX_new.pod" ], @@ -2724,6 +3124,12 @@ our %unified_info = ( "doc/html/man3/EVP_SIGNATURE.html" => [ "doc/man3/EVP_SIGNATURE.pod" ], + "doc/html/man3/EVP_SKEY.html" => [ + "doc/man3/EVP_SKEY.pod" + ], + "doc/html/man3/EVP_SKEYMGMT.html" => [ + "doc/man3/EVP_SKEYMGMT.pod" + ], "doc/html/man3/EVP_SealInit.html" => [ "doc/man3/EVP_SealInit.pod" ], @@ -2811,6 +3217,9 @@ our %unified_info = ( "doc/html/man3/EVP_whirlpool.html" => [ "doc/man3/EVP_whirlpool.pod" ], + "doc/html/man3/GENERAL_NAME.html" => [ + "doc/man3/GENERAL_NAME.pod" + ], "doc/html/man3/HMAC.html" => [ "doc/man3/HMAC.pod" ], @@ -2883,9 +3292,15 @@ our %unified_info = ( "doc/html/man3/OPENSSL_load_builtin_modules.html" => [ "doc/man3/OPENSSL_load_builtin_modules.pod" ], + "doc/html/man3/OPENSSL_load_u16_le.html" => [ + "doc/man3/OPENSSL_load_u16_le.pod" + ], "doc/html/man3/OPENSSL_malloc.html" => [ "doc/man3/OPENSSL_malloc.pod" ], + "doc/html/man3/OPENSSL_riscvcap.html" => [ + "doc/man3/OPENSSL_riscvcap.pod" + ], "doc/html/man3/OPENSSL_s390xcap.html" => [ "doc/man3/OPENSSL_s390xcap.pod" ], @@ -2901,12 +3316,18 @@ our %unified_info = ( "doc/html/man3/OSSL_CALLBACK.html" => [ "doc/man3/OSSL_CALLBACK.pod" ], + "doc/html/man3/OSSL_CMP_ATAV_set0.html" => [ + "doc/man3/OSSL_CMP_ATAV_set0.pod" + ], "doc/html/man3/OSSL_CMP_CTX_new.html" => [ "doc/man3/OSSL_CMP_CTX_new.pod" ], "doc/html/man3/OSSL_CMP_HDR_get0_transactionID.html" => [ "doc/man3/OSSL_CMP_HDR_get0_transactionID.pod" ], + "doc/html/man3/OSSL_CMP_ITAV_new_caCerts.html" => [ + "doc/man3/OSSL_CMP_ITAV_new_caCerts.pod" + ], "doc/html/man3/OSSL_CMP_ITAV_set0.html" => [ "doc/man3/OSSL_CMP_ITAV_set0.pod" ], @@ -2976,9 +3397,18 @@ our %unified_info = ( "doc/html/man3/OSSL_ENCODER_to_bio.html" => [ "doc/man3/OSSL_ENCODER_to_bio.pod" ], + "doc/html/man3/OSSL_ERR_STATE_save.html" => [ + "doc/man3/OSSL_ERR_STATE_save.pod" + ], "doc/html/man3/OSSL_ESS_check_signing_certs.html" => [ "doc/man3/OSSL_ESS_check_signing_certs.pod" ], + "doc/html/man3/OSSL_GENERAL_NAMES_print.html" => [ + "doc/man3/OSSL_GENERAL_NAMES_print.pod" + ], + "doc/html/man3/OSSL_HPKE_CTX_new.html" => [ + "doc/man3/OSSL_HPKE_CTX_new.pod" + ], "doc/html/man3/OSSL_HTTP_REQ_CTX.html" => [ "doc/man3/OSSL_HTTP_REQ_CTX.pod" ], @@ -2988,12 +3418,24 @@ our %unified_info = ( "doc/html/man3/OSSL_HTTP_transfer.html" => [ "doc/man3/OSSL_HTTP_transfer.pod" ], + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX.html" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX.pod" + ], + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX_print.html" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX_print.pod" + ], + "doc/html/man3/OSSL_INDICATOR_set_callback.html" => [ + "doc/man3/OSSL_INDICATOR_set_callback.pod" + ], "doc/html/man3/OSSL_ITEM.html" => [ "doc/man3/OSSL_ITEM.pod" ], "doc/html/man3/OSSL_LIB_CTX.html" => [ "doc/man3/OSSL_LIB_CTX.pod" ], + "doc/html/man3/OSSL_LIB_CTX_set_conf_diagnostics.html" => [ + "doc/man3/OSSL_LIB_CTX_set_conf_diagnostics.pod" + ], "doc/html/man3/OSSL_PARAM.html" => [ "doc/man3/OSSL_PARAM.pod" ], @@ -3009,9 +3451,15 @@ our %unified_info = ( "doc/html/man3/OSSL_PARAM_int.html" => [ "doc/man3/OSSL_PARAM_int.pod" ], + "doc/html/man3/OSSL_PARAM_print_to_bio.html" => [ + "doc/man3/OSSL_PARAM_print_to_bio.pod" + ], "doc/html/man3/OSSL_PROVIDER.html" => [ "doc/man3/OSSL_PROVIDER.pod" ], + "doc/html/man3/OSSL_QUIC_client_method.html" => [ + "doc/man3/OSSL_QUIC_client_method.pod" + ], "doc/html/man3/OSSL_SELF_TEST_new.html" => [ "doc/man3/OSSL_SELF_TEST_new.pod" ], @@ -3036,6 +3484,9 @@ our %unified_info = ( "doc/html/man3/OSSL_STORE_open.html" => [ "doc/man3/OSSL_STORE_open.pod" ], + "doc/html/man3/OSSL_sleep.html" => [ + "doc/man3/OSSL_sleep.pod" + ], "doc/html/man3/OSSL_trace_enabled.html" => [ "doc/man3/OSSL_trace_enabled.pod" ], @@ -3051,6 +3502,9 @@ our %unified_info = ( "doc/html/man3/OpenSSL_version.html" => [ "doc/man3/OpenSSL_version.pod" ], + "doc/html/man3/PBMAC1_get1_pbkdf2_param.html" => [ + "doc/man3/PBMAC1_get1_pbkdf2_param.pod" + ], "doc/html/man3/PEM_X509_INFO_read_bio_ex.html" => [ "doc/man3/PEM_X509_INFO_read_bio_ex.pod" ], @@ -3087,6 +3541,9 @@ our %unified_info = ( "doc/html/man3/PKCS12_SAFEBAG_get1_cert.html" => [ "doc/man3/PKCS12_SAFEBAG_get1_cert.pod" ], + "doc/html/man3/PKCS12_SAFEBAG_set0_attrs.html" => [ + "doc/man3/PKCS12_SAFEBAG_set0_attrs.pod" + ], "doc/html/man3/PKCS12_add1_attr_by_NID.html" => [ "doc/man3/PKCS12_add1_attr_by_NID.pod" ], @@ -3360,6 +3817,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set0_CA_list.html" => [ "doc/man3/SSL_CTX_set0_CA_list.pod" ], + "doc/html/man3/SSL_CTX_set1_cert_comp_preference.html" => [ + "doc/man3/SSL_CTX_set1_cert_comp_preference.pod" + ], "doc/html/man3/SSL_CTX_set1_curves.html" => [ "doc/man3/SSL_CTX_set1_curves.pod" ], @@ -3399,6 +3859,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_default_passwd_cb.html" => [ "doc/man3/SSL_CTX_set_default_passwd_cb.pod" ], + "doc/html/man3/SSL_CTX_set_domain_flags.html" => [ + "doc/man3/SSL_CTX_set_domain_flags.pod" + ], "doc/html/man3/SSL_CTX_set_generate_session_id.html" => [ "doc/man3/SSL_CTX_set_generate_session_id.pod" ], @@ -3420,6 +3883,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_msg_callback.html" => [ "doc/man3/SSL_CTX_set_msg_callback.pod" ], + "doc/html/man3/SSL_CTX_set_new_pending_conn_cb.html" => [ + "doc/man3/SSL_CTX_set_new_pending_conn_cb.pod" + ], "doc/html/man3/SSL_CTX_set_num_tickets.html" => [ "doc/man3/SSL_CTX_set_num_tickets.pod" ], @@ -3534,6 +4000,9 @@ our %unified_info = ( "doc/html/man3/SSL_accept.html" => [ "doc/man3/SSL_accept.pod" ], + "doc/html/man3/SSL_accept_stream.html" => [ + "doc/man3/SSL_accept_stream.pod" + ], "doc/html/man3/SSL_alert_type_string.html" => [ "doc/man3/SSL_alert_type_string.pod" ], @@ -3561,9 +4030,21 @@ our %unified_info = ( "doc/html/man3/SSL_free.html" => [ "doc/man3/SSL_free.pod" ], + "doc/html/man3/SSL_get0_connection.html" => [ + "doc/man3/SSL_get0_connection.pod" + ], + "doc/html/man3/SSL_get0_group_name.html" => [ + "doc/man3/SSL_get0_group_name.pod" + ], + "doc/html/man3/SSL_get0_peer_rpk.html" => [ + "doc/man3/SSL_get0_peer_rpk.pod" + ], "doc/html/man3/SSL_get0_peer_scts.html" => [ "doc/man3/SSL_get0_peer_scts.pod" ], + "doc/html/man3/SSL_get1_builtin_sigalgs.html" => [ + "doc/man3/SSL_get1_builtin_sigalgs.pod" + ], "doc/html/man3/SSL_get_SSL_CTX.html" => [ "doc/man3/SSL_get_SSL_CTX.pod" ], @@ -3579,6 +4060,9 @@ our %unified_info = ( "doc/html/man3/SSL_get_client_random.html" => [ "doc/man3/SSL_get_client_random.pod" ], + "doc/html/man3/SSL_get_conn_close_info.html" => [ + "doc/man3/SSL_get_conn_close_info.pod" + ], "doc/html/man3/SSL_get_current_cipher.html" => [ "doc/man3/SSL_get_current_cipher.pod" ], @@ -3588,12 +4072,18 @@ our %unified_info = ( "doc/html/man3/SSL_get_error.html" => [ "doc/man3/SSL_get_error.pod" ], + "doc/html/man3/SSL_get_event_timeout.html" => [ + "doc/man3/SSL_get_event_timeout.pod" + ], "doc/html/man3/SSL_get_extms_support.html" => [ "doc/man3/SSL_get_extms_support.pod" ], "doc/html/man3/SSL_get_fd.html" => [ "doc/man3/SSL_get_fd.pod" ], + "doc/html/man3/SSL_get_handshake_rtt.html" => [ + "doc/man3/SSL_get_handshake_rtt.pod" + ], "doc/html/man3/SSL_get_peer_cert_chain.html" => [ "doc/man3/SSL_get_peer_cert_chain.pod" ], @@ -3612,12 +4102,24 @@ our %unified_info = ( "doc/html/man3/SSL_get_rbio.html" => [ "doc/man3/SSL_get_rbio.pod" ], + "doc/html/man3/SSL_get_rpoll_descriptor.html" => [ + "doc/man3/SSL_get_rpoll_descriptor.pod" + ], "doc/html/man3/SSL_get_session.html" => [ "doc/man3/SSL_get_session.pod" ], "doc/html/man3/SSL_get_shared_sigalgs.html" => [ "doc/man3/SSL_get_shared_sigalgs.pod" ], + "doc/html/man3/SSL_get_stream_id.html" => [ + "doc/man3/SSL_get_stream_id.pod" + ], + "doc/html/man3/SSL_get_stream_read_state.html" => [ + "doc/man3/SSL_get_stream_read_state.pod" + ], + "doc/html/man3/SSL_get_value_uint.html" => [ + "doc/man3/SSL_get_value_uint.pod" + ], "doc/html/man3/SSL_get_verify_result.html" => [ "doc/man3/SSL_get_verify_result.pod" ], @@ -3627,9 +4129,15 @@ our %unified_info = ( "doc/html/man3/SSL_group_to_name.html" => [ "doc/man3/SSL_group_to_name.pod" ], + "doc/html/man3/SSL_handle_events.html" => [ + "doc/man3/SSL_handle_events.pod" + ], "doc/html/man3/SSL_in_init.html" => [ "doc/man3/SSL_in_init.pod" ], + "doc/html/man3/SSL_inject_net_dgram.html" => [ + "doc/man3/SSL_inject_net_dgram.pod" + ], "doc/html/man3/SSL_key_update.html" => [ "doc/man3/SSL_key_update.pod" ], @@ -3642,9 +4150,21 @@ our %unified_info = ( "doc/html/man3/SSL_new.html" => [ "doc/man3/SSL_new.pod" ], + "doc/html/man3/SSL_new_domain.html" => [ + "doc/man3/SSL_new_domain.pod" + ], + "doc/html/man3/SSL_new_listener.html" => [ + "doc/man3/SSL_new_listener.pod" + ], + "doc/html/man3/SSL_new_stream.html" => [ + "doc/man3/SSL_new_stream.pod" + ], "doc/html/man3/SSL_pending.html" => [ "doc/man3/SSL_pending.pod" ], + "doc/html/man3/SSL_poll.html" => [ + "doc/man3/SSL_poll.pod" + ], "doc/html/man3/SSL_read.html" => [ "doc/man3/SSL_read.pod" ], @@ -3660,24 +4180,45 @@ our %unified_info = ( "doc/html/man3/SSL_set1_host.html" => [ "doc/man3/SSL_set1_host.pod" ], + "doc/html/man3/SSL_set1_initial_peer_addr.html" => [ + "doc/man3/SSL_set1_initial_peer_addr.pod" + ], + "doc/html/man3/SSL_set1_server_cert_type.html" => [ + "doc/man3/SSL_set1_server_cert_type.pod" + ], "doc/html/man3/SSL_set_async_callback.html" => [ "doc/man3/SSL_set_async_callback.pod" ], "doc/html/man3/SSL_set_bio.html" => [ "doc/man3/SSL_set_bio.pod" ], + "doc/html/man3/SSL_set_blocking_mode.html" => [ + "doc/man3/SSL_set_blocking_mode.pod" + ], "doc/html/man3/SSL_set_connect_state.html" => [ "doc/man3/SSL_set_connect_state.pod" ], + "doc/html/man3/SSL_set_default_stream_mode.html" => [ + "doc/man3/SSL_set_default_stream_mode.pod" + ], "doc/html/man3/SSL_set_fd.html" => [ "doc/man3/SSL_set_fd.pod" ], + "doc/html/man3/SSL_set_incoming_stream_policy.html" => [ + "doc/man3/SSL_set_incoming_stream_policy.pod" + ], + "doc/html/man3/SSL_set_quic_tls_cbs.html" => [ + "doc/man3/SSL_set_quic_tls_cbs.pod" + ], "doc/html/man3/SSL_set_retry_verify.html" => [ "doc/man3/SSL_set_retry_verify.pod" ], "doc/html/man3/SSL_set_session.html" => [ "doc/man3/SSL_set_session.pod" ], + "doc/html/man3/SSL_set_session_secret_cb.html" => [ + "doc/man3/SSL_set_session_secret_cb.pod" + ], "doc/html/man3/SSL_set_shutdown.html" => [ "doc/man3/SSL_set_shutdown.pod" ], @@ -3690,6 +4231,12 @@ our %unified_info = ( "doc/html/man3/SSL_state_string.html" => [ "doc/man3/SSL_state_string.pod" ], + "doc/html/man3/SSL_stream_conclude.html" => [ + "doc/man3/SSL_stream_conclude.pod" + ], + "doc/html/man3/SSL_stream_reset.html" => [ + "doc/man3/SSL_stream_reset.pod" + ], "doc/html/man3/SSL_want.html" => [ "doc/man3/SSL_want.pod" ], @@ -3699,8 +4246,8 @@ our %unified_info = ( "doc/html/man3/TS_RESP_CTX_new.html" => [ "doc/man3/TS_RESP_CTX_new.pod" ], - "doc/html/man3/TS_VERIFY_CTX_set_certs.html" => [ - "doc/man3/TS_VERIFY_CTX_set_certs.pod" + "doc/html/man3/TS_VERIFY_CTX.html" => [ + "doc/man3/TS_VERIFY_CTX.pod" ], "doc/html/man3/UI_STRING.html" => [ "doc/man3/UI_STRING.pod" @@ -3720,6 +4267,21 @@ our %unified_info = ( "doc/html/man3/X509V3_set_ctx.html" => [ "doc/man3/X509V3_set_ctx.pod" ], + "doc/html/man3/X509_ACERT_add1_attr.html" => [ + "doc/man3/X509_ACERT_add1_attr.pod" + ], + "doc/html/man3/X509_ACERT_add_attr_nconf.html" => [ + "doc/man3/X509_ACERT_add_attr_nconf.pod" + ], + "doc/html/man3/X509_ACERT_get0_holder_baseCertId.html" => [ + "doc/man3/X509_ACERT_get0_holder_baseCertId.pod" + ], + "doc/html/man3/X509_ACERT_get_attr.html" => [ + "doc/man3/X509_ACERT_get_attr.pod" + ], + "doc/html/man3/X509_ACERT_print_ex.html" => [ + "doc/man3/X509_ACERT_print_ex.pod" + ], "doc/html/man3/X509_ALGOR_dup.html" => [ "doc/man3/X509_ALGOR_dup.pod" ], @@ -3768,6 +4330,9 @@ our %unified_info = ( "doc/html/man3/X509_SIG_get0.html" => [ "doc/man3/X509_SIG_get0.pod" ], + "doc/html/man3/X509_STORE_CTX_get_by_subject.html" => [ + "doc/man3/X509_STORE_CTX_get_by_subject.pod" + ], "doc/html/man3/X509_STORE_CTX_get_error.html" => [ "doc/man3/X509_STORE_CTX_get_error.pod" ], @@ -3834,6 +4399,9 @@ our %unified_info = ( "doc/html/man3/X509_get0_uids.html" => [ "doc/man3/X509_get0_uids.pod" ], + "doc/html/man3/X509_get_default_cert_file.html" => [ + "doc/man3/X509_get_default_cert_file.pod" + ], "doc/html/man3/X509_get_extension_flags.html" => [ "doc/man3/X509_get_extension_flags.pod" ], @@ -3957,9 +4525,15 @@ our %unified_info = ( "doc/html/man7/EVP_CIPHER-SM4.html" => [ "doc/man7/EVP_CIPHER-SM4.pod" ], + "doc/html/man7/EVP_KDF-ARGON2.html" => [ + "doc/man7/EVP_KDF-ARGON2.pod" + ], "doc/html/man7/EVP_KDF-HKDF.html" => [ "doc/man7/EVP_KDF-HKDF.pod" ], + "doc/html/man7/EVP_KDF-HMAC-DRBG.html" => [ + "doc/man7/EVP_KDF-HMAC-DRBG.pod" + ], "doc/html/man7/EVP_KDF-KB.html" => [ "doc/man7/EVP_KDF-KB.pod" ], @@ -3975,6 +4549,9 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-PKCS12KDF.html" => [ "doc/man7/EVP_KDF-PKCS12KDF.pod" ], + "doc/html/man7/EVP_KDF-PVKKDF.html" => [ + "doc/man7/EVP_KDF-PVKKDF.pod" + ], "doc/html/man7/EVP_KDF-SCRYPT.html" => [ "doc/man7/EVP_KDF-SCRYPT.pod" ], @@ -3999,9 +4576,18 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-X963.html" => [ "doc/man7/EVP_KDF-X963.pod" ], + "doc/html/man7/EVP_KEM-EC.html" => [ + "doc/man7/EVP_KEM-EC.pod" + ], + "doc/html/man7/EVP_KEM-ML-KEM.html" => [ + "doc/man7/EVP_KEM-ML-KEM.pod" + ], "doc/html/man7/EVP_KEM-RSA.html" => [ "doc/man7/EVP_KEM-RSA.pod" ], + "doc/html/man7/EVP_KEM-X25519.html" => [ + "doc/man7/EVP_KEM-X25519.pod" + ], "doc/html/man7/EVP_KEYEXCH-DH.html" => [ "doc/man7/EVP_KEYEXCH-DH.pod" ], @@ -4035,6 +4621,9 @@ our %unified_info = ( "doc/html/man7/EVP_MD-BLAKE2.html" => [ "doc/man7/EVP_MD-BLAKE2.pod" ], + "doc/html/man7/EVP_MD-KECCAK.html" => [ + "doc/man7/EVP_MD-KECCAK.pod" + ], "doc/html/man7/EVP_MD-MD2.html" => [ "doc/man7/EVP_MD-MD2.pod" ], @@ -4092,15 +4681,27 @@ our %unified_info = ( "doc/html/man7/EVP_PKEY-HMAC.html" => [ "doc/man7/EVP_PKEY-HMAC.pod" ], + "doc/html/man7/EVP_PKEY-ML-DSA.html" => [ + "doc/man7/EVP_PKEY-ML-DSA.pod" + ], + "doc/html/man7/EVP_PKEY-ML-KEM.html" => [ + "doc/man7/EVP_PKEY-ML-KEM.pod" + ], "doc/html/man7/EVP_PKEY-RSA.html" => [ "doc/man7/EVP_PKEY-RSA.pod" ], + "doc/html/man7/EVP_PKEY-SLH-DSA.html" => [ + "doc/man7/EVP_PKEY-SLH-DSA.pod" + ], "doc/html/man7/EVP_PKEY-SM2.html" => [ "doc/man7/EVP_PKEY-SM2.pod" ], "doc/html/man7/EVP_PKEY-X25519.html" => [ "doc/man7/EVP_PKEY-X25519.pod" ], + "doc/html/man7/EVP_RAND-CRNG-TEST.html" => [ + "doc/man7/EVP_RAND-CRNG-TEST.pod" + ], "doc/html/man7/EVP_RAND-CTR-DRBG.html" => [ "doc/man7/EVP_RAND-CTR-DRBG.pod" ], @@ -4110,6 +4711,9 @@ our %unified_info = ( "doc/html/man7/EVP_RAND-HMAC-DRBG.html" => [ "doc/man7/EVP_RAND-HMAC-DRBG.pod" ], + "doc/html/man7/EVP_RAND-JITTER.html" => [ + "doc/man7/EVP_RAND-JITTER.pod" + ], "doc/html/man7/EVP_RAND-SEED-SRC.html" => [ "doc/man7/EVP_RAND-SEED-SRC.pod" ], @@ -4131,9 +4735,15 @@ our %unified_info = ( "doc/html/man7/EVP_SIGNATURE-HMAC.html" => [ "doc/man7/EVP_SIGNATURE-HMAC.pod" ], + "doc/html/man7/EVP_SIGNATURE-ML-DSA.html" => [ + "doc/man7/EVP_SIGNATURE-ML-DSA.pod" + ], "doc/html/man7/EVP_SIGNATURE-RSA.html" => [ "doc/man7/EVP_SIGNATURE-RSA.pod" ], + "doc/html/man7/EVP_SIGNATURE-SLH-DSA.html" => [ + "doc/man7/EVP_SIGNATURE-SLH-DSA.pod" + ], "doc/html/man7/OSSL_PROVIDER-FIPS.html" => [ "doc/man7/OSSL_PROVIDER-FIPS.pod" ], @@ -4149,6 +4759,9 @@ our %unified_info = ( "doc/html/man7/OSSL_PROVIDER-null.html" => [ "doc/man7/OSSL_PROVIDER-null.pod" ], + "doc/html/man7/OSSL_STORE-winstore.html" => [ + "doc/man7/OSSL_STORE-winstore.pod" + ], "doc/html/man7/RAND.html" => [ "doc/man7/RAND.pod" ], @@ -4161,9 +4774,6 @@ our %unified_info = ( "doc/html/man7/bio.html" => [ "doc/man7/bio.pod" ], - "doc/html/man7/crypto.html" => [ - "doc/man7/crypto.pod" - ], "doc/html/man7/ct.html" => [ "doc/man7/ct.pod" ], @@ -4194,9 +4804,6 @@ our %unified_info = ( "doc/html/man7/life_cycle-rand.html" => [ "doc/man7/life_cycle-rand.pod" ], - "doc/html/man7/migration_guide.html" => [ - "doc/man7/migration_guide.pod" - ], "doc/html/man7/openssl-core.h.html" => [ "doc/man7/openssl-core.h.pod" ], @@ -4212,12 +4819,66 @@ our %unified_info = ( "doc/html/man7/openssl-glossary.html" => [ "doc/man7/openssl-glossary.pod" ], + "doc/html/man7/openssl-qlog.html" => [ + "doc/man7/openssl-qlog.pod" + ], + "doc/html/man7/openssl-quic-concurrency.html" => [ + "doc/man7/openssl-quic-concurrency.pod" + ], + "doc/html/man7/openssl-quic.html" => [ + "doc/man7/openssl-quic.pod" + ], "doc/html/man7/openssl-threads.html" => [ "doc/man7/openssl-threads.pod" ], "doc/html/man7/openssl_user_macros.html" => [ "doc/man7/openssl_user_macros.pod" ], + "doc/html/man7/ossl-guide-introduction.html" => [ + "doc/man7/ossl-guide-introduction.pod" + ], + "doc/html/man7/ossl-guide-libcrypto-introduction.html" => [ + "doc/man7/ossl-guide-libcrypto-introduction.pod" + ], + "doc/html/man7/ossl-guide-libraries-introduction.html" => [ + "doc/man7/ossl-guide-libraries-introduction.pod" + ], + "doc/html/man7/ossl-guide-libssl-introduction.html" => [ + "doc/man7/ossl-guide-libssl-introduction.pod" + ], + "doc/html/man7/ossl-guide-migration.html" => [ + "doc/man7/ossl-guide-migration.pod" + ], + "doc/html/man7/ossl-guide-quic-client-block.html" => [ + "doc/man7/ossl-guide-quic-client-block.pod" + ], + "doc/html/man7/ossl-guide-quic-client-non-block.html" => [ + "doc/man7/ossl-guide-quic-client-non-block.pod" + ], + "doc/html/man7/ossl-guide-quic-introduction.html" => [ + "doc/man7/ossl-guide-quic-introduction.pod" + ], + "doc/html/man7/ossl-guide-quic-multi-stream.html" => [ + "doc/man7/ossl-guide-quic-multi-stream.pod" + ], + "doc/html/man7/ossl-guide-quic-server-block.html" => [ + "doc/man7/ossl-guide-quic-server-block.pod" + ], + "doc/html/man7/ossl-guide-quic-server-non-block.html" => [ + "doc/man7/ossl-guide-quic-server-non-block.pod" + ], + "doc/html/man7/ossl-guide-tls-client-block.html" => [ + "doc/man7/ossl-guide-tls-client-block.pod" + ], + "doc/html/man7/ossl-guide-tls-client-non-block.html" => [ + "doc/man7/ossl-guide-tls-client-non-block.pod" + ], + "doc/html/man7/ossl-guide-tls-introduction.html" => [ + "doc/man7/ossl-guide-tls-introduction.pod" + ], + "doc/html/man7/ossl-guide-tls-server-block.html" => [ + "doc/man7/ossl-guide-tls-server-block.pod" + ], "doc/html/man7/ossl_store-file.html" => [ "doc/man7/ossl_store-file.pod" ], @@ -4272,6 +4933,9 @@ our %unified_info = ( "doc/html/man7/provider-signature.html" => [ "doc/man7/provider-signature.pod" ], + "doc/html/man7/provider-skeymgmt.html" => [ + "doc/man7/provider-skeymgmt.pod" + ], "doc/html/man7/provider-storemgmt.html" => [ "doc/man7/provider-storemgmt.pod" ], @@ -4281,9 +4945,6 @@ our %unified_info = ( "doc/html/man7/proxy-certificates.html" => [ "doc/man7/proxy-certificates.pod" ], - "doc/html/man7/ssl.html" => [ - "doc/man7/ssl.pod" - ], "doc/html/man7/x509.html" => [ "doc/man7/x509.pod" ], @@ -4431,6 +5092,9 @@ our %unified_info = ( "doc/man/man1/openssl-sess_id.1" => [ "doc/man1/openssl-sess_id.pod" ], + "doc/man/man1/openssl-skeyutl.1" => [ + "doc/man1/openssl-skeyutl.pod" + ], "doc/man/man1/openssl-smime.1" => [ "doc/man1/openssl-smime.pod" ], @@ -4572,6 +5236,9 @@ our %unified_info = ( "doc/man/man3/BIO_get_ex_new_index.3" => [ "doc/man3/BIO_get_ex_new_index.pod" ], + "doc/man/man3/BIO_get_rpoll_descriptor.3" => [ + "doc/man3/BIO_get_rpoll_descriptor.pod" + ], "doc/man/man3/BIO_meth_new.3" => [ "doc/man3/BIO_meth_new.pod" ], @@ -4608,6 +5275,9 @@ our %unified_info = ( "doc/man/man3/BIO_s_datagram.3" => [ "doc/man3/BIO_s_datagram.pod" ], + "doc/man/man3/BIO_s_dgram_pair.3" => [ + "doc/man3/BIO_s_dgram_pair.pod" + ], "doc/man/man3/BIO_s_fd.3" => [ "doc/man3/BIO_s_fd.pod" ], @@ -4623,6 +5293,9 @@ our %unified_info = ( "doc/man/man3/BIO_s_socket.3" => [ "doc/man3/BIO_s_socket.pod" ], + "doc/man/man3/BIO_sendmmsg.3" => [ + "doc/man3/BIO_sendmmsg.pod" + ], "doc/man/man3/BIO_set_callback.3" => [ "doc/man3/BIO_set_callback.pod" ], @@ -4695,6 +5368,9 @@ our %unified_info = ( "doc/man/man3/BUF_MEM_new.3" => [ "doc/man3/BUF_MEM_new.pod" ], + "doc/man/man3/CMAC_CTX.3" => [ + "doc/man3/CMAC_CTX.pod" + ], "doc/man/man3/CMS_EncryptedData_decrypt.3" => [ "doc/man3/CMS_EncryptedData_decrypt.pod" ], @@ -4761,6 +5437,9 @@ our %unified_info = ( "doc/man/man3/CMS_verify_receipt.3" => [ "doc/man3/CMS_verify_receipt.pod" ], + "doc/man/man3/COMP_CTX_new.3" => [ + "doc/man3/COMP_CTX_new.pod" + ], "doc/man/man3/CONF_modules_free.3" => [ "doc/man3/CONF_modules_free.pod" ], @@ -4860,6 +5539,12 @@ our %unified_info = ( "doc/man/man3/DTLS_set_timer_cb.3" => [ "doc/man3/DTLS_set_timer_cb.pod" ], + "doc/man/man3/DTLSv1_get_timeout.3" => [ + "doc/man3/DTLSv1_get_timeout.pod" + ], + "doc/man/man3/DTLSv1_handle_timeout.3" => [ + "doc/man3/DTLSv1_handle_timeout.pod" + ], "doc/man/man3/DTLSv1_listen.3" => [ "doc/man3/DTLSv1_listen.pod" ], @@ -4998,6 +5683,9 @@ our %unified_info = ( "doc/man/man3/EVP_PKEY_CTX_get0_pkey.3" => [ "doc/man3/EVP_PKEY_CTX_get0_pkey.pod" ], + "doc/man/man3/EVP_PKEY_CTX_get_algor.3" => [ + "doc/man3/EVP_PKEY_CTX_get_algor.pod" + ], "doc/man/man3/EVP_PKEY_CTX_new.3" => [ "doc/man3/EVP_PKEY_CTX_new.pod" ], @@ -5115,6 +5803,12 @@ our %unified_info = ( "doc/man/man3/EVP_SIGNATURE.3" => [ "doc/man3/EVP_SIGNATURE.pod" ], + "doc/man/man3/EVP_SKEY.3" => [ + "doc/man3/EVP_SKEY.pod" + ], + "doc/man/man3/EVP_SKEYMGMT.3" => [ + "doc/man3/EVP_SKEYMGMT.pod" + ], "doc/man/man3/EVP_SealInit.3" => [ "doc/man3/EVP_SealInit.pod" ], @@ -5202,6 +5896,9 @@ our %unified_info = ( "doc/man/man3/EVP_whirlpool.3" => [ "doc/man3/EVP_whirlpool.pod" ], + "doc/man/man3/GENERAL_NAME.3" => [ + "doc/man3/GENERAL_NAME.pod" + ], "doc/man/man3/HMAC.3" => [ "doc/man3/HMAC.pod" ], @@ -5274,9 +5971,15 @@ our %unified_info = ( "doc/man/man3/OPENSSL_load_builtin_modules.3" => [ "doc/man3/OPENSSL_load_builtin_modules.pod" ], + "doc/man/man3/OPENSSL_load_u16_le.3" => [ + "doc/man3/OPENSSL_load_u16_le.pod" + ], "doc/man/man3/OPENSSL_malloc.3" => [ "doc/man3/OPENSSL_malloc.pod" ], + "doc/man/man3/OPENSSL_riscvcap.3" => [ + "doc/man3/OPENSSL_riscvcap.pod" + ], "doc/man/man3/OPENSSL_s390xcap.3" => [ "doc/man3/OPENSSL_s390xcap.pod" ], @@ -5292,12 +5995,18 @@ our %unified_info = ( "doc/man/man3/OSSL_CALLBACK.3" => [ "doc/man3/OSSL_CALLBACK.pod" ], + "doc/man/man3/OSSL_CMP_ATAV_set0.3" => [ + "doc/man3/OSSL_CMP_ATAV_set0.pod" + ], "doc/man/man3/OSSL_CMP_CTX_new.3" => [ "doc/man3/OSSL_CMP_CTX_new.pod" ], "doc/man/man3/OSSL_CMP_HDR_get0_transactionID.3" => [ "doc/man3/OSSL_CMP_HDR_get0_transactionID.pod" ], + "doc/man/man3/OSSL_CMP_ITAV_new_caCerts.3" => [ + "doc/man3/OSSL_CMP_ITAV_new_caCerts.pod" + ], "doc/man/man3/OSSL_CMP_ITAV_set0.3" => [ "doc/man3/OSSL_CMP_ITAV_set0.pod" ], @@ -5367,9 +6076,18 @@ our %unified_info = ( "doc/man/man3/OSSL_ENCODER_to_bio.3" => [ "doc/man3/OSSL_ENCODER_to_bio.pod" ], + "doc/man/man3/OSSL_ERR_STATE_save.3" => [ + "doc/man3/OSSL_ERR_STATE_save.pod" + ], "doc/man/man3/OSSL_ESS_check_signing_certs.3" => [ "doc/man3/OSSL_ESS_check_signing_certs.pod" ], + "doc/man/man3/OSSL_GENERAL_NAMES_print.3" => [ + "doc/man3/OSSL_GENERAL_NAMES_print.pod" + ], + "doc/man/man3/OSSL_HPKE_CTX_new.3" => [ + "doc/man3/OSSL_HPKE_CTX_new.pod" + ], "doc/man/man3/OSSL_HTTP_REQ_CTX.3" => [ "doc/man3/OSSL_HTTP_REQ_CTX.pod" ], @@ -5379,12 +6097,24 @@ our %unified_info = ( "doc/man/man3/OSSL_HTTP_transfer.3" => [ "doc/man3/OSSL_HTTP_transfer.pod" ], + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX.3" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX.pod" + ], + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX_print.3" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX_print.pod" + ], + "doc/man/man3/OSSL_INDICATOR_set_callback.3" => [ + "doc/man3/OSSL_INDICATOR_set_callback.pod" + ], "doc/man/man3/OSSL_ITEM.3" => [ "doc/man3/OSSL_ITEM.pod" ], "doc/man/man3/OSSL_LIB_CTX.3" => [ "doc/man3/OSSL_LIB_CTX.pod" ], + "doc/man/man3/OSSL_LIB_CTX_set_conf_diagnostics.3" => [ + "doc/man3/OSSL_LIB_CTX_set_conf_diagnostics.pod" + ], "doc/man/man3/OSSL_PARAM.3" => [ "doc/man3/OSSL_PARAM.pod" ], @@ -5400,9 +6130,15 @@ our %unified_info = ( "doc/man/man3/OSSL_PARAM_int.3" => [ "doc/man3/OSSL_PARAM_int.pod" ], + "doc/man/man3/OSSL_PARAM_print_to_bio.3" => [ + "doc/man3/OSSL_PARAM_print_to_bio.pod" + ], "doc/man/man3/OSSL_PROVIDER.3" => [ "doc/man3/OSSL_PROVIDER.pod" ], + "doc/man/man3/OSSL_QUIC_client_method.3" => [ + "doc/man3/OSSL_QUIC_client_method.pod" + ], "doc/man/man3/OSSL_SELF_TEST_new.3" => [ "doc/man3/OSSL_SELF_TEST_new.pod" ], @@ -5427,6 +6163,9 @@ our %unified_info = ( "doc/man/man3/OSSL_STORE_open.3" => [ "doc/man3/OSSL_STORE_open.pod" ], + "doc/man/man3/OSSL_sleep.3" => [ + "doc/man3/OSSL_sleep.pod" + ], "doc/man/man3/OSSL_trace_enabled.3" => [ "doc/man3/OSSL_trace_enabled.pod" ], @@ -5442,6 +6181,9 @@ our %unified_info = ( "doc/man/man3/OpenSSL_version.3" => [ "doc/man3/OpenSSL_version.pod" ], + "doc/man/man3/PBMAC1_get1_pbkdf2_param.3" => [ + "doc/man3/PBMAC1_get1_pbkdf2_param.pod" + ], "doc/man/man3/PEM_X509_INFO_read_bio_ex.3" => [ "doc/man3/PEM_X509_INFO_read_bio_ex.pod" ], @@ -5478,6 +6220,9 @@ our %unified_info = ( "doc/man/man3/PKCS12_SAFEBAG_get1_cert.3" => [ "doc/man3/PKCS12_SAFEBAG_get1_cert.pod" ], + "doc/man/man3/PKCS12_SAFEBAG_set0_attrs.3" => [ + "doc/man3/PKCS12_SAFEBAG_set0_attrs.pod" + ], "doc/man/man3/PKCS12_add1_attr_by_NID.3" => [ "doc/man3/PKCS12_add1_attr_by_NID.pod" ], @@ -5751,6 +6496,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set0_CA_list.3" => [ "doc/man3/SSL_CTX_set0_CA_list.pod" ], + "doc/man/man3/SSL_CTX_set1_cert_comp_preference.3" => [ + "doc/man3/SSL_CTX_set1_cert_comp_preference.pod" + ], "doc/man/man3/SSL_CTX_set1_curves.3" => [ "doc/man3/SSL_CTX_set1_curves.pod" ], @@ -5790,6 +6538,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_default_passwd_cb.3" => [ "doc/man3/SSL_CTX_set_default_passwd_cb.pod" ], + "doc/man/man3/SSL_CTX_set_domain_flags.3" => [ + "doc/man3/SSL_CTX_set_domain_flags.pod" + ], "doc/man/man3/SSL_CTX_set_generate_session_id.3" => [ "doc/man3/SSL_CTX_set_generate_session_id.pod" ], @@ -5811,6 +6562,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_msg_callback.3" => [ "doc/man3/SSL_CTX_set_msg_callback.pod" ], + "doc/man/man3/SSL_CTX_set_new_pending_conn_cb.3" => [ + "doc/man3/SSL_CTX_set_new_pending_conn_cb.pod" + ], "doc/man/man3/SSL_CTX_set_num_tickets.3" => [ "doc/man3/SSL_CTX_set_num_tickets.pod" ], @@ -5925,6 +6679,9 @@ our %unified_info = ( "doc/man/man3/SSL_accept.3" => [ "doc/man3/SSL_accept.pod" ], + "doc/man/man3/SSL_accept_stream.3" => [ + "doc/man3/SSL_accept_stream.pod" + ], "doc/man/man3/SSL_alert_type_string.3" => [ "doc/man3/SSL_alert_type_string.pod" ], @@ -5952,9 +6709,21 @@ our %unified_info = ( "doc/man/man3/SSL_free.3" => [ "doc/man3/SSL_free.pod" ], + "doc/man/man3/SSL_get0_connection.3" => [ + "doc/man3/SSL_get0_connection.pod" + ], + "doc/man/man3/SSL_get0_group_name.3" => [ + "doc/man3/SSL_get0_group_name.pod" + ], + "doc/man/man3/SSL_get0_peer_rpk.3" => [ + "doc/man3/SSL_get0_peer_rpk.pod" + ], "doc/man/man3/SSL_get0_peer_scts.3" => [ "doc/man3/SSL_get0_peer_scts.pod" ], + "doc/man/man3/SSL_get1_builtin_sigalgs.3" => [ + "doc/man3/SSL_get1_builtin_sigalgs.pod" + ], "doc/man/man3/SSL_get_SSL_CTX.3" => [ "doc/man3/SSL_get_SSL_CTX.pod" ], @@ -5970,6 +6739,9 @@ our %unified_info = ( "doc/man/man3/SSL_get_client_random.3" => [ "doc/man3/SSL_get_client_random.pod" ], + "doc/man/man3/SSL_get_conn_close_info.3" => [ + "doc/man3/SSL_get_conn_close_info.pod" + ], "doc/man/man3/SSL_get_current_cipher.3" => [ "doc/man3/SSL_get_current_cipher.pod" ], @@ -5979,12 +6751,18 @@ our %unified_info = ( "doc/man/man3/SSL_get_error.3" => [ "doc/man3/SSL_get_error.pod" ], + "doc/man/man3/SSL_get_event_timeout.3" => [ + "doc/man3/SSL_get_event_timeout.pod" + ], "doc/man/man3/SSL_get_extms_support.3" => [ "doc/man3/SSL_get_extms_support.pod" ], "doc/man/man3/SSL_get_fd.3" => [ "doc/man3/SSL_get_fd.pod" ], + "doc/man/man3/SSL_get_handshake_rtt.3" => [ + "doc/man3/SSL_get_handshake_rtt.pod" + ], "doc/man/man3/SSL_get_peer_cert_chain.3" => [ "doc/man3/SSL_get_peer_cert_chain.pod" ], @@ -6003,12 +6781,24 @@ our %unified_info = ( "doc/man/man3/SSL_get_rbio.3" => [ "doc/man3/SSL_get_rbio.pod" ], + "doc/man/man3/SSL_get_rpoll_descriptor.3" => [ + "doc/man3/SSL_get_rpoll_descriptor.pod" + ], "doc/man/man3/SSL_get_session.3" => [ "doc/man3/SSL_get_session.pod" ], "doc/man/man3/SSL_get_shared_sigalgs.3" => [ "doc/man3/SSL_get_shared_sigalgs.pod" ], + "doc/man/man3/SSL_get_stream_id.3" => [ + "doc/man3/SSL_get_stream_id.pod" + ], + "doc/man/man3/SSL_get_stream_read_state.3" => [ + "doc/man3/SSL_get_stream_read_state.pod" + ], + "doc/man/man3/SSL_get_value_uint.3" => [ + "doc/man3/SSL_get_value_uint.pod" + ], "doc/man/man3/SSL_get_verify_result.3" => [ "doc/man3/SSL_get_verify_result.pod" ], @@ -6018,9 +6808,15 @@ our %unified_info = ( "doc/man/man3/SSL_group_to_name.3" => [ "doc/man3/SSL_group_to_name.pod" ], + "doc/man/man3/SSL_handle_events.3" => [ + "doc/man3/SSL_handle_events.pod" + ], "doc/man/man3/SSL_in_init.3" => [ "doc/man3/SSL_in_init.pod" ], + "doc/man/man3/SSL_inject_net_dgram.3" => [ + "doc/man3/SSL_inject_net_dgram.pod" + ], "doc/man/man3/SSL_key_update.3" => [ "doc/man3/SSL_key_update.pod" ], @@ -6033,9 +6829,21 @@ our %unified_info = ( "doc/man/man3/SSL_new.3" => [ "doc/man3/SSL_new.pod" ], + "doc/man/man3/SSL_new_domain.3" => [ + "doc/man3/SSL_new_domain.pod" + ], + "doc/man/man3/SSL_new_listener.3" => [ + "doc/man3/SSL_new_listener.pod" + ], + "doc/man/man3/SSL_new_stream.3" => [ + "doc/man3/SSL_new_stream.pod" + ], "doc/man/man3/SSL_pending.3" => [ "doc/man3/SSL_pending.pod" ], + "doc/man/man3/SSL_poll.3" => [ + "doc/man3/SSL_poll.pod" + ], "doc/man/man3/SSL_read.3" => [ "doc/man3/SSL_read.pod" ], @@ -6051,24 +6859,45 @@ our %unified_info = ( "doc/man/man3/SSL_set1_host.3" => [ "doc/man3/SSL_set1_host.pod" ], + "doc/man/man3/SSL_set1_initial_peer_addr.3" => [ + "doc/man3/SSL_set1_initial_peer_addr.pod" + ], + "doc/man/man3/SSL_set1_server_cert_type.3" => [ + "doc/man3/SSL_set1_server_cert_type.pod" + ], "doc/man/man3/SSL_set_async_callback.3" => [ "doc/man3/SSL_set_async_callback.pod" ], "doc/man/man3/SSL_set_bio.3" => [ "doc/man3/SSL_set_bio.pod" ], + "doc/man/man3/SSL_set_blocking_mode.3" => [ + "doc/man3/SSL_set_blocking_mode.pod" + ], "doc/man/man3/SSL_set_connect_state.3" => [ "doc/man3/SSL_set_connect_state.pod" ], + "doc/man/man3/SSL_set_default_stream_mode.3" => [ + "doc/man3/SSL_set_default_stream_mode.pod" + ], "doc/man/man3/SSL_set_fd.3" => [ "doc/man3/SSL_set_fd.pod" ], + "doc/man/man3/SSL_set_incoming_stream_policy.3" => [ + "doc/man3/SSL_set_incoming_stream_policy.pod" + ], + "doc/man/man3/SSL_set_quic_tls_cbs.3" => [ + "doc/man3/SSL_set_quic_tls_cbs.pod" + ], "doc/man/man3/SSL_set_retry_verify.3" => [ "doc/man3/SSL_set_retry_verify.pod" ], "doc/man/man3/SSL_set_session.3" => [ "doc/man3/SSL_set_session.pod" ], + "doc/man/man3/SSL_set_session_secret_cb.3" => [ + "doc/man3/SSL_set_session_secret_cb.pod" + ], "doc/man/man3/SSL_set_shutdown.3" => [ "doc/man3/SSL_set_shutdown.pod" ], @@ -6081,6 +6910,12 @@ our %unified_info = ( "doc/man/man3/SSL_state_string.3" => [ "doc/man3/SSL_state_string.pod" ], + "doc/man/man3/SSL_stream_conclude.3" => [ + "doc/man3/SSL_stream_conclude.pod" + ], + "doc/man/man3/SSL_stream_reset.3" => [ + "doc/man3/SSL_stream_reset.pod" + ], "doc/man/man3/SSL_want.3" => [ "doc/man3/SSL_want.pod" ], @@ -6090,8 +6925,8 @@ our %unified_info = ( "doc/man/man3/TS_RESP_CTX_new.3" => [ "doc/man3/TS_RESP_CTX_new.pod" ], - "doc/man/man3/TS_VERIFY_CTX_set_certs.3" => [ - "doc/man3/TS_VERIFY_CTX_set_certs.pod" + "doc/man/man3/TS_VERIFY_CTX.3" => [ + "doc/man3/TS_VERIFY_CTX.pod" ], "doc/man/man3/UI_STRING.3" => [ "doc/man3/UI_STRING.pod" @@ -6111,6 +6946,21 @@ our %unified_info = ( "doc/man/man3/X509V3_set_ctx.3" => [ "doc/man3/X509V3_set_ctx.pod" ], + "doc/man/man3/X509_ACERT_add1_attr.3" => [ + "doc/man3/X509_ACERT_add1_attr.pod" + ], + "doc/man/man3/X509_ACERT_add_attr_nconf.3" => [ + "doc/man3/X509_ACERT_add_attr_nconf.pod" + ], + "doc/man/man3/X509_ACERT_get0_holder_baseCertId.3" => [ + "doc/man3/X509_ACERT_get0_holder_baseCertId.pod" + ], + "doc/man/man3/X509_ACERT_get_attr.3" => [ + "doc/man3/X509_ACERT_get_attr.pod" + ], + "doc/man/man3/X509_ACERT_print_ex.3" => [ + "doc/man3/X509_ACERT_print_ex.pod" + ], "doc/man/man3/X509_ALGOR_dup.3" => [ "doc/man3/X509_ALGOR_dup.pod" ], @@ -6159,6 +7009,9 @@ our %unified_info = ( "doc/man/man3/X509_SIG_get0.3" => [ "doc/man3/X509_SIG_get0.pod" ], + "doc/man/man3/X509_STORE_CTX_get_by_subject.3" => [ + "doc/man3/X509_STORE_CTX_get_by_subject.pod" + ], "doc/man/man3/X509_STORE_CTX_get_error.3" => [ "doc/man3/X509_STORE_CTX_get_error.pod" ], @@ -6225,6 +7078,9 @@ our %unified_info = ( "doc/man/man3/X509_get0_uids.3" => [ "doc/man3/X509_get0_uids.pod" ], + "doc/man/man3/X509_get_default_cert_file.3" => [ + "doc/man3/X509_get_default_cert_file.pod" + ], "doc/man/man3/X509_get_extension_flags.3" => [ "doc/man3/X509_get_extension_flags.pod" ], @@ -6348,9 +7204,15 @@ our %unified_info = ( "doc/man/man7/EVP_CIPHER-SM4.7" => [ "doc/man7/EVP_CIPHER-SM4.pod" ], + "doc/man/man7/EVP_KDF-ARGON2.7" => [ + "doc/man7/EVP_KDF-ARGON2.pod" + ], "doc/man/man7/EVP_KDF-HKDF.7" => [ "doc/man7/EVP_KDF-HKDF.pod" ], + "doc/man/man7/EVP_KDF-HMAC-DRBG.7" => [ + "doc/man7/EVP_KDF-HMAC-DRBG.pod" + ], "doc/man/man7/EVP_KDF-KB.7" => [ "doc/man7/EVP_KDF-KB.pod" ], @@ -6366,6 +7228,9 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-PKCS12KDF.7" => [ "doc/man7/EVP_KDF-PKCS12KDF.pod" ], + "doc/man/man7/EVP_KDF-PVKKDF.7" => [ + "doc/man7/EVP_KDF-PVKKDF.pod" + ], "doc/man/man7/EVP_KDF-SCRYPT.7" => [ "doc/man7/EVP_KDF-SCRYPT.pod" ], @@ -6390,9 +7255,18 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-X963.7" => [ "doc/man7/EVP_KDF-X963.pod" ], + "doc/man/man7/EVP_KEM-EC.7" => [ + "doc/man7/EVP_KEM-EC.pod" + ], + "doc/man/man7/EVP_KEM-ML-KEM.7" => [ + "doc/man7/EVP_KEM-ML-KEM.pod" + ], "doc/man/man7/EVP_KEM-RSA.7" => [ "doc/man7/EVP_KEM-RSA.pod" ], + "doc/man/man7/EVP_KEM-X25519.7" => [ + "doc/man7/EVP_KEM-X25519.pod" + ], "doc/man/man7/EVP_KEYEXCH-DH.7" => [ "doc/man7/EVP_KEYEXCH-DH.pod" ], @@ -6426,6 +7300,9 @@ our %unified_info = ( "doc/man/man7/EVP_MD-BLAKE2.7" => [ "doc/man7/EVP_MD-BLAKE2.pod" ], + "doc/man/man7/EVP_MD-KECCAK.7" => [ + "doc/man7/EVP_MD-KECCAK.pod" + ], "doc/man/man7/EVP_MD-MD2.7" => [ "doc/man7/EVP_MD-MD2.pod" ], @@ -6483,15 +7360,27 @@ our %unified_info = ( "doc/man/man7/EVP_PKEY-HMAC.7" => [ "doc/man7/EVP_PKEY-HMAC.pod" ], + "doc/man/man7/EVP_PKEY-ML-DSA.7" => [ + "doc/man7/EVP_PKEY-ML-DSA.pod" + ], + "doc/man/man7/EVP_PKEY-ML-KEM.7" => [ + "doc/man7/EVP_PKEY-ML-KEM.pod" + ], "doc/man/man7/EVP_PKEY-RSA.7" => [ "doc/man7/EVP_PKEY-RSA.pod" ], + "doc/man/man7/EVP_PKEY-SLH-DSA.7" => [ + "doc/man7/EVP_PKEY-SLH-DSA.pod" + ], "doc/man/man7/EVP_PKEY-SM2.7" => [ "doc/man7/EVP_PKEY-SM2.pod" ], "doc/man/man7/EVP_PKEY-X25519.7" => [ "doc/man7/EVP_PKEY-X25519.pod" ], + "doc/man/man7/EVP_RAND-CRNG-TEST.7" => [ + "doc/man7/EVP_RAND-CRNG-TEST.pod" + ], "doc/man/man7/EVP_RAND-CTR-DRBG.7" => [ "doc/man7/EVP_RAND-CTR-DRBG.pod" ], @@ -6501,6 +7390,9 @@ our %unified_info = ( "doc/man/man7/EVP_RAND-HMAC-DRBG.7" => [ "doc/man7/EVP_RAND-HMAC-DRBG.pod" ], + "doc/man/man7/EVP_RAND-JITTER.7" => [ + "doc/man7/EVP_RAND-JITTER.pod" + ], "doc/man/man7/EVP_RAND-SEED-SRC.7" => [ "doc/man7/EVP_RAND-SEED-SRC.pod" ], @@ -6522,9 +7414,15 @@ our %unified_info = ( "doc/man/man7/EVP_SIGNATURE-HMAC.7" => [ "doc/man7/EVP_SIGNATURE-HMAC.pod" ], + "doc/man/man7/EVP_SIGNATURE-ML-DSA.7" => [ + "doc/man7/EVP_SIGNATURE-ML-DSA.pod" + ], "doc/man/man7/EVP_SIGNATURE-RSA.7" => [ "doc/man7/EVP_SIGNATURE-RSA.pod" ], + "doc/man/man7/EVP_SIGNATURE-SLH-DSA.7" => [ + "doc/man7/EVP_SIGNATURE-SLH-DSA.pod" + ], "doc/man/man7/OSSL_PROVIDER-FIPS.7" => [ "doc/man7/OSSL_PROVIDER-FIPS.pod" ], @@ -6540,6 +7438,9 @@ our %unified_info = ( "doc/man/man7/OSSL_PROVIDER-null.7" => [ "doc/man7/OSSL_PROVIDER-null.pod" ], + "doc/man/man7/OSSL_STORE-winstore.7" => [ + "doc/man7/OSSL_STORE-winstore.pod" + ], "doc/man/man7/RAND.7" => [ "doc/man7/RAND.pod" ], @@ -6552,9 +7453,6 @@ our %unified_info = ( "doc/man/man7/bio.7" => [ "doc/man7/bio.pod" ], - "doc/man/man7/crypto.7" => [ - "doc/man7/crypto.pod" - ], "doc/man/man7/ct.7" => [ "doc/man7/ct.pod" ], @@ -6585,9 +7483,6 @@ our %unified_info = ( "doc/man/man7/life_cycle-rand.7" => [ "doc/man7/life_cycle-rand.pod" ], - "doc/man/man7/migration_guide.7" => [ - "doc/man7/migration_guide.pod" - ], "doc/man/man7/openssl-core.h.7" => [ "doc/man7/openssl-core.h.pod" ], @@ -6603,12 +7498,66 @@ our %unified_info = ( "doc/man/man7/openssl-glossary.7" => [ "doc/man7/openssl-glossary.pod" ], + "doc/man/man7/openssl-qlog.7" => [ + "doc/man7/openssl-qlog.pod" + ], + "doc/man/man7/openssl-quic-concurrency.7" => [ + "doc/man7/openssl-quic-concurrency.pod" + ], + "doc/man/man7/openssl-quic.7" => [ + "doc/man7/openssl-quic.pod" + ], "doc/man/man7/openssl-threads.7" => [ "doc/man7/openssl-threads.pod" ], "doc/man/man7/openssl_user_macros.7" => [ "doc/man7/openssl_user_macros.pod" ], + "doc/man/man7/ossl-guide-introduction.7" => [ + "doc/man7/ossl-guide-introduction.pod" + ], + "doc/man/man7/ossl-guide-libcrypto-introduction.7" => [ + "doc/man7/ossl-guide-libcrypto-introduction.pod" + ], + "doc/man/man7/ossl-guide-libraries-introduction.7" => [ + "doc/man7/ossl-guide-libraries-introduction.pod" + ], + "doc/man/man7/ossl-guide-libssl-introduction.7" => [ + "doc/man7/ossl-guide-libssl-introduction.pod" + ], + "doc/man/man7/ossl-guide-migration.7" => [ + "doc/man7/ossl-guide-migration.pod" + ], + "doc/man/man7/ossl-guide-quic-client-block.7" => [ + "doc/man7/ossl-guide-quic-client-block.pod" + ], + "doc/man/man7/ossl-guide-quic-client-non-block.7" => [ + "doc/man7/ossl-guide-quic-client-non-block.pod" + ], + "doc/man/man7/ossl-guide-quic-introduction.7" => [ + "doc/man7/ossl-guide-quic-introduction.pod" + ], + "doc/man/man7/ossl-guide-quic-multi-stream.7" => [ + "doc/man7/ossl-guide-quic-multi-stream.pod" + ], + "doc/man/man7/ossl-guide-quic-server-block.7" => [ + "doc/man7/ossl-guide-quic-server-block.pod" + ], + "doc/man/man7/ossl-guide-quic-server-non-block.7" => [ + "doc/man7/ossl-guide-quic-server-non-block.pod" + ], + "doc/man/man7/ossl-guide-tls-client-block.7" => [ + "doc/man7/ossl-guide-tls-client-block.pod" + ], + "doc/man/man7/ossl-guide-tls-client-non-block.7" => [ + "doc/man7/ossl-guide-tls-client-non-block.pod" + ], + "doc/man/man7/ossl-guide-tls-introduction.7" => [ + "doc/man7/ossl-guide-tls-introduction.pod" + ], + "doc/man/man7/ossl-guide-tls-server-block.7" => [ + "doc/man7/ossl-guide-tls-server-block.pod" + ], "doc/man/man7/ossl_store-file.7" => [ "doc/man7/ossl_store-file.pod" ], @@ -6663,6 +7612,9 @@ our %unified_info = ( "doc/man/man7/provider-signature.7" => [ "doc/man7/provider-signature.pod" ], + "doc/man/man7/provider-skeymgmt.7" => [ + "doc/man7/provider-skeymgmt.pod" + ], "doc/man/man7/provider-storemgmt.7" => [ "doc/man7/provider-storemgmt.pod" ], @@ -6672,9 +7624,6 @@ our %unified_info = ( "doc/man/man7/proxy-certificates.7" => [ "doc/man7/proxy-certificates.pod" ], - "doc/man/man7/ssl.7" => [ - "doc/man7/ssl.pod" - ], "doc/man/man7/x509.7" => [ "doc/man7/x509.pod" ], @@ -6854,6 +7803,10 @@ our %unified_info = ( "doc/man1/openssl-sess_id.pod.in", "doc/perlvars.pm" ], + "doc/man1/openssl-skeyutl.pod" => [ + "doc/man1/openssl-skeyutl.pod.in", + "doc/perlvars.pm" + ], "doc/man1/openssl-smime.pod" => [ "doc/man1/openssl-smime.pod.in", "doc/perlvars.pm" @@ -6893,6 +7846,27 @@ our %unified_info = ( "doc/man7/openssl_user_macros.pod" => [ "doc/man7/openssl_user_macros.pod.in" ], + "exporters/OpenSSLConfig.cmake" => [ + "installdata.pm" + ], + "exporters/OpenSSLConfigVersion.cmake" => [ + "exporters/OpenSSLConfig.cmake", + "installdata.pm" + ], + "exporters/libcrypto.pc" => [ + "installdata.pm" + ], + "exporters/libssl.pc" => [ + "installdata.pm" + ], + "exporters/openssl.pc" => [ + "exporters/libcrypto.pc", + "exporters/libssl.pc", + "installdata.pm" + ], + "fuzz/acert-test" => [ + "libcrypto" + ], "fuzz/asn1-test" => [ "libcrypto", "libssl" @@ -6925,17 +7899,85 @@ our %unified_info = ( "fuzz/ct-test" => [ "libcrypto" ], + "fuzz/decoder-test" => [ + "libcrypto" + ], + "fuzz/dtlsclient-test" => [ + "libcrypto", + "libssl" + ], + "fuzz/dtlsserver-test" => [ + "libcrypto", + "libssl" + ], + "fuzz/hashtable-test" => [ + "libcrypto.a" + ], + "fuzz/ml-dsa-test" => [ + "libcrypto.a" + ], + "fuzz/ml-kem-test" => [ + "libcrypto.a" + ], + "fuzz/pem-test" => [ + "libcrypto.a" + ], + "fuzz/provider-test" => [ + "libcrypto" + ], + "fuzz/punycode-test" => [ + "libcrypto.a" + ], + "fuzz/quic-client-test" => [ + "libcrypto.a", + "libssl.a" + ], + "fuzz/quic-lcidm-test" => [ + "libcrypto.a", + "libssl.a" + ], + "fuzz/quic-rcidm-test" => [ + "libcrypto.a", + "libssl.a" + ], + "fuzz/quic-server-test" => [ + "libcrypto.a", + "libssl.a" + ], + "fuzz/quic-srtm-test" => [ + "libcrypto.a", + "libssl.a" + ], "fuzz/server-test" => [ "libcrypto", "libssl" ], + "fuzz/slh-dsa-test" => [ + "libcrypto.a" + ], + "fuzz/smime-test" => [ + "libcrypto", + "libssl" + ], + "fuzz/v3name-test" => [ + "libcrypto.a" + ], "fuzz/x509-test" => [ "libcrypto" ], + "include/internal/param_names.h" => [ + "util/perl|OpenSSL/paramnames.pm" + ], + "include/openssl/core_names.h" => [ + "util/perl|OpenSSL/paramnames.pm" + ], "libcrypto.ld" => [ "configdata.pm", "util/perl/OpenSSL/Ordinals.pm" ], + "libcrypto.pc" => [ + "builddata.pm" + ], "libssl" => [ "libcrypto" ], @@ -6943,6 +7985,14 @@ our %unified_info = ( "configdata.pm", "util/perl/OpenSSL/Ordinals.pm" ], + "libssl.pc" => [ + "builddata.pm" + ], + "openssl.pc" => [ + "builddata.pm", + "libcrypto.pc", + "libssl.pc" + ], "providers/common/der/der_digests_gen.c" => [ "providers/common/der/DIGESTS.asn1", "providers/common/der/NIST.asn1", @@ -6960,11 +8010,19 @@ our %unified_info = ( "providers/common/der/ECX.asn1", "providers/common/der/oids_to_c.pm" ], + "providers/common/der/der_ml_dsa_gen.c" => [ + "providers/common/der/ML_DSA.asn1", + "providers/common/der/oids_to_c.pm" + ], "providers/common/der/der_rsa_gen.c" => [ "providers/common/der/NIST.asn1", "providers/common/der/RSA.asn1", "providers/common/der/oids_to_c.pm" ], + "providers/common/der/der_slh_dsa_gen.c" => [ + "providers/common/der/SLH_DSA.asn1", + "providers/common/der/oids_to_c.pm" + ], "providers/common/der/der_sm2_gen.c" => [ "providers/common/der/SM2.asn1", "providers/common/der/oids_to_c.pm" @@ -7004,6 +8062,12 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ecx_key.o" => [ "providers/common/include/prov/der_ecx.h" ], + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o" => [ + "providers/common/include/prov/der_ml_dsa.h" + ], + "providers/common/der/libcommon-lib-der_ml_dsa_key.o" => [ + "providers/common/include/prov/der_ml_dsa.h" + ], "providers/common/der/libcommon-lib-der_rsa_gen.o" => [ "providers/common/include/prov/der_rsa.h" ], @@ -7011,6 +8075,12 @@ our %unified_info = ( "providers/common/include/prov/der_digests.h", "providers/common/include/prov/der_rsa.h" ], + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o" => [ + "providers/common/include/prov/der_slh_dsa.h" + ], + "providers/common/der/libcommon-lib-der_slh_dsa_key.o" => [ + "providers/common/include/prov/der_slh_dsa.h" + ], "providers/common/der/libcommon-lib-der_wrap_gen.o" => [ "providers/common/include/prov/der_wrap.h" ], @@ -7050,11 +8120,19 @@ our %unified_info = ( "providers/common/der/ECX.asn1", "providers/common/der/oids_to_c.pm" ], + "providers/common/include/prov/der_ml_dsa.h" => [ + "providers/common/der/ML_DSA.asn1", + "providers/common/der/oids_to_c.pm" + ], "providers/common/include/prov/der_rsa.h" => [ "providers/common/der/NIST.asn1", "providers/common/der/RSA.asn1", "providers/common/der/oids_to_c.pm" ], + "providers/common/include/prov/der_slh_dsa.h" => [ + "providers/common/der/SLH_DSA.asn1", + "providers/common/der/oids_to_c.pm" + ], "providers/common/include/prov/der_sm2.h" => [ "providers/common/der/SM2.asn1", "providers/common/der/oids_to_c.pm" @@ -7087,9 +8165,15 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-eddsa_sig.o" => [ "providers/common/include/prov/der_ecx.h" ], + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o" => [ + "providers/common/include/prov/der_ml_dsa.h" + ], "providers/implementations/signature/libdefault-lib-rsa_sig.o" => [ "providers/common/include/prov/der_rsa.h" ], + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o" => [ + "providers/common/include/prov/der_slh_dsa.h" + ], "providers/implementations/signature/libdefault-lib-sm2_sig.o" => [ "providers/common/include/prov/der_sm2.h" ], @@ -7102,9 +8186,15 @@ our %unified_info = ( "providers/implementations/signature/libfips-lib-eddsa_sig.o" => [ "providers/common/include/prov/der_ecx.h" ], + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o" => [ + "providers/common/include/prov/der_ml_dsa.h" + ], "providers/implementations/signature/libfips-lib-rsa_sig.o" => [ "providers/common/include/prov/der_rsa.h" ], + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o" => [ + "providers/common/include/prov/der_slh_dsa.h" + ], "providers/legacy" => [ "libcrypto", "providers/liblegacy.a" @@ -7182,6 +8272,14 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/bio_addr_test" => [ + "libcrypto", + "test/libtestutil.a" + ], + "test/bio_base64_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/bio_callback_test" => [ "libcrypto", "test/libtestutil.a" @@ -7190,6 +8288,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/bio_dgram_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/bio_enc_test" => [ "libcrypto", "test/libtestutil.a" @@ -7198,6 +8300,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/bio_meth_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/bio_prefix_text" => [ "libcrypto", "test/libtestutil.a" @@ -7210,6 +8316,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/bio_tfo_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/bioprinttest" => [ "libcrypto", "test/libtestutil.a" @@ -7222,6 +8332,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/build_wincrypt_test" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_aes" => [ "libcrypto", "libssl" @@ -7242,6 +8356,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_byteorder" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_camellia" => [ "libcrypto", "libssl" @@ -7274,10 +8392,6 @@ our %unified_info = ( "libcrypto", "libssl" ], - "test/buildtest_c_core_names" => [ - "libcrypto", - "libssl" - ], "test/buildtest_c_core_object" => [ "libcrypto", "libssl" @@ -7310,6 +8424,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_e_ostime" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_ebcdic" => [ "libcrypto", "libssl" @@ -7346,6 +8464,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_hpke" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_http" => [ "libcrypto", "libssl" @@ -7354,6 +8476,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_indicator" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_kdf" => [ "libcrypto", "libssl" @@ -7374,6 +8500,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_ml_kem" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_modes" => [ "libcrypto", "libssl" @@ -7414,6 +8544,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_quic" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_rand" => [ "libcrypto", "libssl" @@ -7470,6 +8604,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_thread" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_tls1" => [ "libcrypto", "libssl" @@ -7490,10 +8628,23 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/byteorder_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], + "test/ca_internals_test" => [ + "libssl", + "test/libtestutil.a" + ], "test/casttest" => [ "libcrypto", "test/libtestutil.a" ], + "test/cert_comp_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], "test/chacha_internal_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -7607,7 +8758,11 @@ our %unified_info = ( "libssl", "test/libtestutil.a" ], - "test/defltfips_test" => [ + "test/decoder_propq_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], + "test/defltfips_test" => [ "libcrypto", "test/libtestutil.a" ], @@ -7663,6 +8818,8 @@ our %unified_info = ( ], "test/endecode_test" => [ "libcrypto.a", + "providers/libcommon.a", + "providers/liblegacy.a", "test/libtestutil.a" ], "test/endecoder_legacy_test" => [ @@ -7706,6 +8863,10 @@ our %unified_info = ( "test/evp_pkey_ctx_new_from_name" => [ "libcrypto" ], + "test/evp_pkey_dhkem_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/evp_pkey_dparams_test" => [ "libcrypto", "test/libtestutil.a" @@ -7714,10 +8875,18 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/evp_skey_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/evp_test" => [ "libcrypto", "test/libtestutil.a" ], + "test/evp_xof_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/exdatatest" => [ "libcrypto", "test/libtestutil.a" @@ -7756,6 +8925,10 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/hpke_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/http_test" => [ "libcrypto", "test/libtestutil.a" @@ -7768,17 +8941,25 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/json_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], "test/keymgmt_internal_test" => [ "libcrypto.a", "test/libtestutil.a" ], "test/lhash_test" => [ - "libcrypto", + "libcrypto.a", "test/libtestutil.a" ], "test/libtestutil.a" => [ "libcrypto" ], + "test/list_test" => [ + "test/libtestutil.a" + ], "test/localetest" => [ "libcrypto", "test/libtestutil.a" @@ -7791,10 +8972,26 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/membio_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/memleaktest" => [ "libcrypto", "test/libtestutil.a" ], + "test/ml_dsa_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], + "test/ml_kem_evp_extra_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], + "test/ml_kem_internal_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/modes_internal_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -7819,6 +9016,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/pairwise_fail_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/param_build_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -7851,6 +9052,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/pkcs12_api_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/pkcs12_format_test" => [ "libcrypto", "test/libtestutil.a" @@ -7871,6 +9076,11 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/priority_queue_test" => [ + "libcrypto", + "libssl.a", + "test/libtestutil.a" + ], "test/property_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -7883,6 +9093,10 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/provider_default_search_path_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/provider_fallback_test" => [ "libcrypto", "test/libtestutil.a" @@ -7907,12 +9121,122 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/quic_ackm_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_cc_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_cfq_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_client_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_fc_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_fifd_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_lcidm_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_multistream_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_newcid_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_qlog_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_radix_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_rcidm_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_record_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_srt_gen_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_srtm_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_stream_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_tserver_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_txp_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_txpim_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_wire_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quicapitest" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quicfaultstest" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], "test/rand_status_test" => [ "libcrypto", "test/libtestutil.a" ], "test/rand_test" => [ - "libcrypto", + "libcrypto.a", "test/libtestutil.a" ], "test/rc2test" => [ @@ -7927,7 +9251,7 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], - "test/rdrand_sanitytest" => [ + "test/rdcpu_sanitytest" => [ "libcrypto.a", "test/libtestutil.a" ], @@ -7936,6 +9260,11 @@ our %unified_info = ( "libssl", "test/libtestutil.a" ], + "test/rpktest" => [ + "libcrypto", + "libssl", + "test/libtestutil.a" + ], "test/rsa_mp_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -7948,10 +9277,18 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], - "test/sanitytest" => [ + "test/rsa_x931_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], + "test/safe_math_test" => [ "libcrypto", "test/libtestutil.a" ], + "test/sanitytest" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/secmemtest" => [ "libcrypto", "test/libtestutil.a" @@ -7969,6 +9306,10 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/slh_dsa_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/sm2_internal_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -7998,6 +9339,11 @@ our %unified_info = ( "libssl", "test/libtestutil.a" ], + "test/ssl_handshake_rtt_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], "test/ssl_old_test" => [ "libcrypto.a", "libssl.a", @@ -8014,8 +9360,8 @@ our %unified_info = ( "test/libtestutil.a" ], "test/sslapitest" => [ - "libcrypto", - "libssl", + "libcrypto.a", + "libssl.a", "test/libtestutil.a" ], "test/sslbuffertest" => [ @@ -8032,6 +9378,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/strtoultest" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/sysdefaulttest" => [ "libcrypto", "libssl", @@ -8041,8 +9391,12 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/threadpool_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/threadstest" => [ - "libcrypto", + "libcrypto.a", "test/libtestutil.a" ], "test/threadstest_fips" => [ @@ -8053,6 +9407,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/time_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/tls13ccstest" => [ "libcrypto", "libssl", @@ -8063,6 +9421,11 @@ our %unified_info = ( "libssl.a", "test/libtestutil.a" ], + "test/tls13groupselection_test" => [ + "libcrypto", + "libssl", + "test/libtestutil.a" + ], "test/trace_api_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -8100,6 +9463,10 @@ our %unified_info = ( "libssl.a", "test/libtestutil.a" ], + "test/x509_acert_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/x509_check_cert_pkey_test" => [ "libcrypto", "test/libtestutil.a" @@ -8112,6 +9479,18 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/x509_load_cert_file_test" => [ + "libcrypto", + "test/libtestutil.a" + ], + "test/x509_req_test" => [ + "libcrypto", + "test/libtestutil.a" + ], + "test/x509_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/x509_time_test" => [ "libcrypto", "test/libtestutil.a" @@ -8126,9 +9505,13 @@ our %unified_info = ( }, "dirinfo" => { "apps" => { + "deps" => [ + "apps/ca_internals_test-bin-ca.o" + ], "products" => { "bin" => [ - "apps/openssl" + "apps/openssl", + "test/ca_internals_test" ], "script" => [ "apps/CA.pl", @@ -8139,6 +9522,14 @@ our %unified_info = ( "apps/lib" => { "deps" => [ "apps/lib/openssl-bin-cmp_mock_srv.o", + "apps/lib/ca_internals_test-bin-app_libctx.o", + "apps/lib/ca_internals_test-bin-app_provider.o", + "apps/lib/ca_internals_test-bin-app_rand.o", + "apps/lib/ca_internals_test-bin-app_x509.o", + "apps/lib/ca_internals_test-bin-apps.o", + "apps/lib/ca_internals_test-bin-apps_ui.o", + "apps/lib/ca_internals_test-bin-engine.o", + "apps/lib/ca_internals_test-bin-fmt.o", "apps/lib/cmp_client_test-bin-cmp_mock_srv.o", "apps/lib/uitest-bin-apps_ui.o", "apps/lib/libapps-lib-app_libctx.o", @@ -8147,12 +9538,14 @@ our %unified_info = ( "apps/lib/libapps-lib-app_rand.o", "apps/lib/libapps-lib-app_x509.o", "apps/lib/libapps-lib-apps.o", + "apps/lib/libapps-lib-apps_opt_printf.o", "apps/lib/libapps-lib-apps_ui.o", "apps/lib/libapps-lib-columns.o", "apps/lib/libapps-lib-engine.o", "apps/lib/libapps-lib-engine_loader.o", "apps/lib/libapps-lib-fmt.o", "apps/lib/libapps-lib-http_server.o", + "apps/lib/libapps-lib-log.o", "apps/lib/libapps-lib-names.o", "apps/lib/libapps-lib-opt.o", "apps/lib/libapps-lib-s_cb.o", @@ -8163,6 +9556,7 @@ our %unified_info = ( "products" => { "bin" => [ "apps/openssl", + "test/ca_internals_test", "test/cmp_client_test", "test/uitest" ], @@ -8174,8 +9568,12 @@ our %unified_info = ( }, "crypto" => { "deps" => [ + "crypto/asn1_time_test-bin-ctype.o", + "crypto/ca_internals_test-bin-ctype.o", + "crypto/packettest-bin-quic_vlint.o", "crypto/libcrypto-lib-asn1_dsa.o", "crypto/libcrypto-lib-bsearch.o", + "crypto/libcrypto-lib-comp_methods.o", "crypto/libcrypto-lib-context.o", "crypto/libcrypto-lib-core_algorithm.o", "crypto/libcrypto-lib-core_fetch.o", @@ -8185,10 +9583,13 @@ our %unified_info = ( "crypto/libcrypto-lib-cryptlib.o", "crypto/libcrypto-lib-ctype.o", "crypto/libcrypto-lib-cversion.o", + "crypto/libcrypto-lib-defaults.o", "crypto/libcrypto-lib-der_writer.o", + "crypto/libcrypto-lib-deterministic_nonce.o", "crypto/libcrypto-lib-ebcdic.o", "crypto/libcrypto-lib-ex_data.o", "crypto/libcrypto-lib-getenv.o", + "crypto/libcrypto-lib-indicator_core.o", "crypto/libcrypto-lib-info.o", "crypto/libcrypto-lib-init.o", "crypto/libcrypto-lib-initthread.o", @@ -8206,6 +9607,7 @@ our %unified_info = ( "crypto/libcrypto-lib-params.o", "crypto/libcrypto-lib-params_dup.o", "crypto/libcrypto-lib-params_from_text.o", + "crypto/libcrypto-lib-params_idx.o", "crypto/libcrypto-lib-passphrase.o", "crypto/libcrypto-lib-provider.o", "crypto/libcrypto-lib-provider_child.o", @@ -8213,12 +9615,16 @@ our %unified_info = ( "crypto/libcrypto-lib-provider_core.o", "crypto/libcrypto-lib-provider_predefined.o", "crypto/libcrypto-lib-punycode.o", + "crypto/libcrypto-lib-quic_vlint.o", "crypto/libcrypto-lib-self_test_core.o", + "crypto/libcrypto-lib-sleep.o", "crypto/libcrypto-lib-sparse_array.o", + "crypto/libcrypto-lib-ssl_err.o", "crypto/libcrypto-lib-threads_lib.o", "crypto/libcrypto-lib-threads_none.o", "crypto/libcrypto-lib-threads_pthread.o", "crypto/libcrypto-lib-threads_win.o", + "crypto/libcrypto-lib-time.o", "crypto/libcrypto-lib-trace.o", "crypto/libcrypto-lib-uid.o", "crypto/libfips-lib-asn1_dsa.o", @@ -8241,6 +9647,7 @@ our %unified_info = ( "crypto/libfips-lib-params.o", "crypto/libfips-lib-params_dup.o", "crypto/libfips-lib-params_from_text.o", + "crypto/libfips-lib-params_idx.o", "crypto/libfips-lib-provider_core.o", "crypto/libfips-lib-provider_predefined.o", "crypto/libfips-lib-self_test_core.o", @@ -8248,9 +9655,15 @@ our %unified_info = ( "crypto/libfips-lib-threads_lib.o", "crypto/libfips-lib-threads_none.o", "crypto/libfips-lib-threads_pthread.o", - "crypto/libfips-lib-threads_win.o" + "crypto/libfips-lib-threads_win.o", + "crypto/libfips-lib-time.o" ], "products" => { + "bin" => [ + "test/asn1_time_test", + "test/ca_internals_test", + "test/packettest" + ], "lib" => [ "libcrypto", "providers/libfips.a" @@ -8291,6 +9704,8 @@ our %unified_info = ( }, "crypto/asn1" => { "deps" => [ + "crypto/asn1/asn1_time_test-bin-a_time.o", + "crypto/asn1/ca_internals_test-bin-a_time.o", "crypto/asn1/libcrypto-lib-a_bitstr.o", "crypto/asn1/libcrypto-lib-a_d2i_fp.o", "crypto/asn1/libcrypto-lib-a_digest.o", @@ -8357,6 +9772,10 @@ our %unified_info = ( "crypto/asn1/libcrypto-lib-x_val.o" ], "products" => { + "bin" => [ + "test/asn1_time_test", + "test/ca_internals_test" + ], "lib" => [ "libcrypto" ] @@ -8422,6 +9841,7 @@ our %unified_info = ( "crypto/bio/libcrypto-lib-bss_conn.o", "crypto/bio/libcrypto-lib-bss_core.o", "crypto/bio/libcrypto-lib-bss_dgram.o", + "crypto/bio/libcrypto-lib-bss_dgram_pair.o", "crypto/bio/libcrypto-lib-bss_fd.o", "crypto/bio/libcrypto-lib-bss_file.o", "crypto/bio/libcrypto-lib-bss_log.o", @@ -8578,6 +9998,7 @@ our %unified_info = ( "crypto/cmp/libcrypto-lib-cmp_client.o", "crypto/cmp/libcrypto-lib-cmp_ctx.o", "crypto/cmp/libcrypto-lib-cmp_err.o", + "crypto/cmp/libcrypto-lib-cmp_genm.o", "crypto/cmp/libcrypto-lib-cmp_hdr.o", "crypto/cmp/libcrypto-lib-cmp_http.o", "crypto/cmp/libcrypto-lib-cmp_msg.o", @@ -8945,7 +10366,9 @@ our %unified_info = ( "crypto/err/libcrypto-lib-err_all.o", "crypto/err/libcrypto-lib-err_all_legacy.o", "crypto/err/libcrypto-lib-err_blocks.o", - "crypto/err/libcrypto-lib-err_prn.o" + "crypto/err/libcrypto-lib-err_mark.o", + "crypto/err/libcrypto-lib-err_prn.o", + "crypto/err/libcrypto-lib-err_save.o" ], "products" => { "lib" => [ @@ -9046,7 +10469,9 @@ our %unified_info = ( "crypto/evp/libcrypto-lib-pmeth_check.o", "crypto/evp/libcrypto-lib-pmeth_gn.o", "crypto/evp/libcrypto-lib-pmeth_lib.o", + "crypto/evp/libcrypto-lib-s_lib.o", "crypto/evp/libcrypto-lib-signature.o", + "crypto/evp/libcrypto-lib-skeymgmt_meth.o", "crypto/evp/libfips-lib-asymcipher.o", "crypto/evp/libfips-lib-dh_support.o", "crypto/evp/libfips-lib-digest.o", @@ -9062,14 +10487,15 @@ our %unified_info = ( "crypto/evp/libfips-lib-kem.o", "crypto/evp/libfips-lib-keymgmt_lib.o", "crypto/evp/libfips-lib-keymgmt_meth.o", - "crypto/evp/libfips-lib-m_sigver.o", "crypto/evp/libfips-lib-mac_lib.o", "crypto/evp/libfips-lib-mac_meth.o", "crypto/evp/libfips-lib-p_lib.o", "crypto/evp/libfips-lib-pmeth_check.o", "crypto/evp/libfips-lib-pmeth_gn.o", "crypto/evp/libfips-lib-pmeth_lib.o", - "crypto/evp/libfips-lib-signature.o" + "crypto/evp/libfips-lib-s_lib.o", + "crypto/evp/libfips-lib-signature.o", + "crypto/evp/libfips-lib-skeymgmt_meth.o" ], "products" => { "lib" => [ @@ -9102,6 +10528,20 @@ our %unified_info = ( ] } }, + "crypto/hashtable" => { + "deps" => [ + "crypto/hashtable/libcrypto-lib-hashfunc.o", + "crypto/hashtable/libcrypto-lib-hashtable.o", + "crypto/hashtable/libfips-lib-hashfunc.o", + "crypto/hashtable/libfips-lib-hashtable.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, "crypto/hmac" => { "deps" => [ "crypto/hmac/libcrypto-lib-hmac.o", @@ -9114,6 +10554,17 @@ our %unified_info = ( ] } }, + "crypto/hpke" => { + "deps" => [ + "crypto/hpke/libcrypto-lib-hpke.o", + "crypto/hpke/libcrypto-lib-hpke_util.o" + ], + "products" => { + "lib" => [ + "libcrypto" + ] + } + }, "crypto/http" => { "deps" => [ "crypto/http/libcrypto-lib-http_client.o", @@ -9197,6 +10648,44 @@ our %unified_info = ( ] } }, + "crypto/ml_dsa" => { + "deps" => [ + "crypto/ml_dsa/libcrypto-lib-ml_dsa_encoders.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key_compress.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_matrix.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_ntt.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_params.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sample.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sign.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_encoders.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_key.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_key_compress.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_matrix.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_ntt.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_params.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_sample.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_sign.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, + "crypto/ml_kem" => { + "deps" => [ + "crypto/ml_kem/libcrypto-lib-ml_kem.o", + "crypto/ml_kem/libfips-lib-ml_kem.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, "crypto/modes" => { "deps" => [ "crypto/modes/libcrypto-lib-cbc128.o", @@ -9210,6 +10699,7 @@ our %unified_info = ( "crypto/modes/libcrypto-lib-siv128.o", "crypto/modes/libcrypto-lib-wrap128.o", "crypto/modes/libcrypto-lib-xts128.o", + "crypto/modes/libcrypto-lib-xts128gb.o", "crypto/modes/libfips-lib-cbc128.o", "crypto/modes/libfips-lib-ccm128.o", "crypto/modes/libfips-lib-cfb128.o", @@ -9217,7 +10707,8 @@ our %unified_info = ( "crypto/modes/libfips-lib-gcm128.o", "crypto/modes/libfips-lib-ofb128.o", "crypto/modes/libfips-lib-wrap128.o", - "crypto/modes/libfips-lib-xts128.o" + "crypto/modes/libfips-lib-xts128.o", + "crypto/modes/libfips-lib-xts128gb.o" ], "products" => { "lib" => [ @@ -9360,6 +10851,7 @@ our %unified_info = ( "crypto/rand/libcrypto-lib-rand_lib.o", "crypto/rand/libcrypto-lib-rand_meth.o", "crypto/rand/libcrypto-lib-rand_pool.o", + "crypto/rand/libcrypto-lib-rand_uniform.o", "crypto/rand/libcrypto-lib-randfile.o", "crypto/rand/libfips-lib-rand_lib.o" ], @@ -9504,6 +10996,36 @@ our %unified_info = ( ] } }, + "crypto/slh_dsa" => { + "deps" => [ + "crypto/slh_dsa/libcrypto-lib-slh_adrs.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa_hash_ctx.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa_key.o", + "crypto/slh_dsa/libcrypto-lib-slh_fors.o", + "crypto/slh_dsa/libcrypto-lib-slh_hash.o", + "crypto/slh_dsa/libcrypto-lib-slh_hypertree.o", + "crypto/slh_dsa/libcrypto-lib-slh_params.o", + "crypto/slh_dsa/libcrypto-lib-slh_wots.o", + "crypto/slh_dsa/libcrypto-lib-slh_xmss.o", + "crypto/slh_dsa/libfips-lib-slh_adrs.o", + "crypto/slh_dsa/libfips-lib-slh_dsa.o", + "crypto/slh_dsa/libfips-lib-slh_dsa_hash_ctx.o", + "crypto/slh_dsa/libfips-lib-slh_dsa_key.o", + "crypto/slh_dsa/libfips-lib-slh_fors.o", + "crypto/slh_dsa/libfips-lib-slh_hash.o", + "crypto/slh_dsa/libfips-lib-slh_hypertree.o", + "crypto/slh_dsa/libfips-lib-slh_params.o", + "crypto/slh_dsa/libfips-lib-slh_wots.o", + "crypto/slh_dsa/libfips-lib-slh_xmss.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, "crypto/sm2" => { "deps" => [ "crypto/sm2/libcrypto-lib-sm2_crypt.o", @@ -9577,6 +11099,38 @@ our %unified_info = ( ] } }, + "crypto/thread" => { + "deps" => [ + "crypto/thread/libcrypto-lib-api.o", + "crypto/thread/libcrypto-lib-arch.o", + "crypto/thread/libcrypto-lib-internal.o", + "crypto/thread/libfips-lib-api.o", + "crypto/thread/libfips-lib-arch.o", + "crypto/thread/libfips-lib-internal.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, + "crypto/thread/arch" => { + "deps" => [ + "crypto/thread/arch/libcrypto-lib-thread_none.o", + "crypto/thread/arch/libcrypto-lib-thread_posix.o", + "crypto/thread/arch/libcrypto-lib-thread_win.o", + "crypto/thread/arch/libfips-lib-thread_none.o", + "crypto/thread/arch/libfips-lib-thread_posix.o", + "crypto/thread/arch/libfips-lib-thread_win.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, "crypto/ts" => { "deps" => [ "crypto/ts/libcrypto-lib-ts_asn1.o", @@ -9643,14 +11197,22 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-pcy_map.o", "crypto/x509/libcrypto-lib-pcy_node.o", "crypto/x509/libcrypto-lib-pcy_tree.o", + "crypto/x509/libcrypto-lib-t_acert.o", "crypto/x509/libcrypto-lib-t_crl.o", "crypto/x509/libcrypto-lib-t_req.o", "crypto/x509/libcrypto-lib-t_x509.o", + "crypto/x509/libcrypto-lib-v3_aaa.o", + "crypto/x509/libcrypto-lib-v3_ac_tgt.o", "crypto/x509/libcrypto-lib-v3_addr.o", "crypto/x509/libcrypto-lib-v3_admis.o", "crypto/x509/libcrypto-lib-v3_akeya.o", "crypto/x509/libcrypto-lib-v3_akid.o", "crypto/x509/libcrypto-lib-v3_asid.o", + "crypto/x509/libcrypto-lib-v3_attrdesc.o", + "crypto/x509/libcrypto-lib-v3_attrmap.o", + "crypto/x509/libcrypto-lib-v3_audit_id.o", + "crypto/x509/libcrypto-lib-v3_authattid.o", + "crypto/x509/libcrypto-lib-v3_battcons.o", "crypto/x509/libcrypto-lib-v3_bcons.o", "crypto/x509/libcrypto-lib-v3_bitst.o", "crypto/x509/libcrypto-lib-v3_conf.o", @@ -9659,12 +11221,17 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_enum.o", "crypto/x509/libcrypto-lib-v3_extku.o", "crypto/x509/libcrypto-lib-v3_genn.o", + "crypto/x509/libcrypto-lib-v3_group_ac.o", "crypto/x509/libcrypto-lib-v3_ia5.o", + "crypto/x509/libcrypto-lib-v3_ind_iss.o", "crypto/x509/libcrypto-lib-v3_info.o", "crypto/x509/libcrypto-lib-v3_int.o", + "crypto/x509/libcrypto-lib-v3_iobo.o", "crypto/x509/libcrypto-lib-v3_ist.o", "crypto/x509/libcrypto-lib-v3_lib.o", "crypto/x509/libcrypto-lib-v3_ncons.o", + "crypto/x509/libcrypto-lib-v3_no_ass.o", + "crypto/x509/libcrypto-lib-v3_no_rev_avail.o", "crypto/x509/libcrypto-lib-v3_pci.o", "crypto/x509/libcrypto-lib-v3_pcia.o", "crypto/x509/libcrypto-lib-v3_pcons.o", @@ -9672,13 +11239,20 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_pmaps.o", "crypto/x509/libcrypto-lib-v3_prn.o", "crypto/x509/libcrypto-lib-v3_purp.o", + "crypto/x509/libcrypto-lib-v3_rolespec.o", "crypto/x509/libcrypto-lib-v3_san.o", + "crypto/x509/libcrypto-lib-v3_sda.o", + "crypto/x509/libcrypto-lib-v3_single_use.o", "crypto/x509/libcrypto-lib-v3_skid.o", + "crypto/x509/libcrypto-lib-v3_soa_id.o", "crypto/x509/libcrypto-lib-v3_sxnet.o", + "crypto/x509/libcrypto-lib-v3_timespec.o", "crypto/x509/libcrypto-lib-v3_tlsf.o", + "crypto/x509/libcrypto-lib-v3_usernotice.o", "crypto/x509/libcrypto-lib-v3_utf8.o", "crypto/x509/libcrypto-lib-v3_utl.o", "crypto/x509/libcrypto-lib-v3err.o", + "crypto/x509/libcrypto-lib-x509_acert.o", "crypto/x509/libcrypto-lib-x509_att.o", "crypto/x509/libcrypto-lib-x509_cmp.o", "crypto/x509/libcrypto-lib-x509_d2.o", @@ -9696,6 +11270,7 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x509_v3.o", "crypto/x509/libcrypto-lib-x509_vfy.o", "crypto/x509/libcrypto-lib-x509_vpm.o", + "crypto/x509/libcrypto-lib-x509aset.o", "crypto/x509/libcrypto-lib-x509cset.o", "crypto/x509/libcrypto-lib-x509name.o", "crypto/x509/libcrypto-lib-x509rset.o", @@ -9705,6 +11280,7 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x_attrib.o", "crypto/x509/libcrypto-lib-x_crl.o", "crypto/x509/libcrypto-lib-x_exten.o", + "crypto/x509/libcrypto-lib-x_ietfatt.o", "crypto/x509/libcrypto-lib-x_name.o", "crypto/x509/libcrypto-lib-x_pubkey.o", "crypto/x509/libcrypto-lib-x_req.o", @@ -9731,6 +11307,7 @@ our %unified_info = ( "fuzz" => { "products" => { "bin" => [ + "fuzz/acert-test", "fuzz/asn1-test", "fuzz/asn1parse-test", "fuzz/bignum-test", @@ -9741,13 +11318,31 @@ our %unified_info = ( "fuzz/conf-test", "fuzz/crl-test", "fuzz/ct-test", + "fuzz/decoder-test", + "fuzz/dtlsclient-test", + "fuzz/dtlsserver-test", + "fuzz/hashtable-test", + "fuzz/ml-dsa-test", + "fuzz/ml-kem-test", + "fuzz/pem-test", + "fuzz/provider-test", + "fuzz/punycode-test", + "fuzz/quic-client-test", + "fuzz/quic-lcidm-test", + "fuzz/quic-rcidm-test", + "fuzz/quic-server-test", + "fuzz/quic-srtm-test", "fuzz/server-test", + "fuzz/slh-dsa-test", + "fuzz/smime-test", + "fuzz/v3name-test", "fuzz/x509-test" ] } }, "providers" => { "deps" => [ + "providers/endecode_test-bin-legacyprov.o", "providers/evp_extra_test-bin-legacyprov.o", "providers/libcrypto-lib-baseprov.o", "providers/libcrypto-lib-defltprov.o", @@ -9757,6 +11352,7 @@ our %unified_info = ( ], "products" => { "bin" => [ + "test/endecode_test", "test/evp_extra_test" ], "dso" => [ @@ -9808,8 +11404,12 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ec_sig.o", "providers/common/der/libcommon-lib-der_ecx_gen.o", "providers/common/der/libcommon-lib-der_ecx_key.o", + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o", + "providers/common/der/libcommon-lib-der_ml_dsa_key.o", "providers/common/der/libcommon-lib-der_rsa_gen.o", "providers/common/der/libcommon-lib-der_rsa_key.o", + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o", + "providers/common/der/libcommon-lib-der_slh_dsa_key.o", "providers/common/der/libcommon-lib-der_wrap_gen.o", "providers/common/der/libdefault-lib-der_rsa_sig.o", "providers/common/der/libdefault-lib-der_sm2_gen.o", @@ -9828,6 +11428,7 @@ our %unified_info = ( "providers/fips" => { "deps" => [ "providers/fips/fips-dso-fips_entry.o", + "providers/fips/libfips-lib-fipsindicator.o", "providers/fips/libfips-lib-fipsprov.o", "providers/fips/libfips-lib-self_test.o", "providers/fips/libfips-lib-self_test_kats.o" @@ -9871,6 +11472,9 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_aes_ccm_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_polyval.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_ocb.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_ocb_hw.o", @@ -9895,7 +11499,13 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_cts.o", "providers/implementations/ciphers/libdefault-lib-cipher_null.o", "providers/implementations/ciphers/libdefault-lib-cipher_sm4.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_sm4_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes_common.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes_default.o", @@ -9992,7 +11602,10 @@ our %unified_info = ( "providers/implementations/encode_decode/libdefault-lib-encode_key2blob.o", "providers/implementations/encode_decode/libdefault-lib-encode_key2ms.o", "providers/implementations/encode_decode/libdefault-lib-encode_key2text.o", - "providers/implementations/encode_decode/libdefault-lib-endecoder_common.o" + "providers/implementations/encode_decode/libdefault-lib-endecoder_common.o", + "providers/implementations/encode_decode/libdefault-lib-ml_common_codecs.o", + "providers/implementations/encode_decode/libdefault-lib-ml_dsa_codecs.o", + "providers/implementations/encode_decode/libdefault-lib-ml_kem_codecs.o" ], "products" => { "lib" => [ @@ -10020,7 +11633,9 @@ our %unified_info = ( }, "providers/implementations/kdfs" => { "deps" => [ + "providers/implementations/kdfs/libdefault-lib-argon2.o", "providers/implementations/kdfs/libdefault-lib-hkdf.o", + "providers/implementations/kdfs/libdefault-lib-hmacdrbg_kdf.o", "providers/implementations/kdfs/libdefault-lib-kbkdf.o", "providers/implementations/kdfs/libdefault-lib-krb5kdf.o", "providers/implementations/kdfs/libdefault-lib-pbkdf2.o", @@ -10039,7 +11654,8 @@ our %unified_info = ( "providers/implementations/kdfs/libfips-lib-sskdf.o", "providers/implementations/kdfs/libfips-lib-tls1_prf.o", "providers/implementations/kdfs/libfips-lib-x942kdf.o", - "providers/implementations/kdfs/liblegacy-lib-pbkdf1.o" + "providers/implementations/kdfs/liblegacy-lib-pbkdf1.o", + "providers/implementations/kdfs/liblegacy-lib-pvkkdf.o" ], "products" => { "lib" => [ @@ -10051,13 +11667,22 @@ our %unified_info = ( }, "providers/implementations/kem" => { "deps" => [ + "providers/implementations/kem/libdefault-lib-ec_kem.o", + "providers/implementations/kem/libdefault-lib-ecx_kem.o", + "providers/implementations/kem/libdefault-lib-kem_util.o", + "providers/implementations/kem/libdefault-lib-ml_kem_kem.o", + "providers/implementations/kem/libdefault-lib-mlx_kem.o", "providers/implementations/kem/libdefault-lib-rsa_kem.o", - "providers/implementations/kem/libfips-lib-rsa_kem.o" + "providers/implementations/kem/libfips-lib-ml_kem_kem.o", + "providers/implementations/kem/libfips-lib-mlx_kem.o", + "providers/implementations/kem/libfips-lib-rsa_kem.o", + "providers/implementations/kem/libtemplate-lib-template_kem.o" ], "products" => { "lib" => [ "providers/libdefault.a", - "providers/libfips.a" + "providers/libfips.a", + "providers/libtemplate.a" ] } }, @@ -10069,19 +11694,29 @@ our %unified_info = ( "providers/implementations/keymgmt/libdefault-lib-ecx_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-kdf_legacy_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-mac_legacy_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-ml_dsa_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-ml_kem_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-mlx_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-rsa_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-slh_dsa_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-dh_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-dsa_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-ec_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-ecx_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-kdf_legacy_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-mac_legacy_kmgmt.o", - "providers/implementations/keymgmt/libfips-lib-rsa_kmgmt.o" + "providers/implementations/keymgmt/libfips-lib-ml_dsa_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-ml_kem_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-mlx_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-rsa_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-slh_dsa_kmgmt.o", + "providers/implementations/keymgmt/libtemplate-lib-template_kmgmt.o" ], "products" => { "lib" => [ "providers/libdefault.a", - "providers/libfips.a" + "providers/libfips.a", + "providers/libtemplate.a" ] } }, @@ -10109,18 +11744,18 @@ our %unified_info = ( }, "providers/implementations/rands" => { "deps" => [ - "providers/implementations/rands/libdefault-lib-crngt.o", "providers/implementations/rands/libdefault-lib-drbg.o", "providers/implementations/rands/libdefault-lib-drbg_ctr.o", "providers/implementations/rands/libdefault-lib-drbg_hash.o", "providers/implementations/rands/libdefault-lib-drbg_hmac.o", "providers/implementations/rands/libdefault-lib-seed_src.o", + "providers/implementations/rands/libdefault-lib-seed_src_jitter.o", "providers/implementations/rands/libdefault-lib-test_rng.o", - "providers/implementations/rands/libfips-lib-crngt.o", "providers/implementations/rands/libfips-lib-drbg.o", "providers/implementations/rands/libfips-lib-drbg_ctr.o", "providers/implementations/rands/libfips-lib-drbg_hash.o", "providers/implementations/rands/libfips-lib-drbg_hmac.o", + "providers/implementations/rands/libfips-lib-fips_crng_test.o", "providers/implementations/rands/libfips-lib-test_rng.o" ], "products" => { @@ -10149,13 +11784,31 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-ecdsa_sig.o", "providers/implementations/signature/libdefault-lib-eddsa_sig.o", "providers/implementations/signature/libdefault-lib-mac_legacy_sig.o", + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o", "providers/implementations/signature/libdefault-lib-rsa_sig.o", + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o", "providers/implementations/signature/libdefault-lib-sm2_sig.o", "providers/implementations/signature/libfips-lib-dsa_sig.o", "providers/implementations/signature/libfips-lib-ecdsa_sig.o", "providers/implementations/signature/libfips-lib-eddsa_sig.o", "providers/implementations/signature/libfips-lib-mac_legacy_sig.o", - "providers/implementations/signature/libfips-lib-rsa_sig.o" + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o", + "providers/implementations/signature/libfips-lib-rsa_sig.o", + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o" + ], + "products" => { + "lib" => [ + "providers/libdefault.a", + "providers/libfips.a" + ] + } + }, + "providers/implementations/skeymgmt" => { + "deps" => [ + "providers/implementations/skeymgmt/libdefault-lib-aes_skmgmt.o", + "providers/implementations/skeymgmt/libdefault-lib-generic.o", + "providers/implementations/skeymgmt/libfips-lib-aes_skmgmt.o", + "providers/implementations/skeymgmt/libfips-lib-generic.o" ], "products" => { "lib" => [ @@ -10183,14 +11836,15 @@ our %unified_info = ( "ssl/libssl-lib-d1_srtp.o", "ssl/libssl-lib-methods.o", "ssl/libssl-lib-pqueue.o", + "ssl/libssl-lib-priority_queue.o", "ssl/libssl-lib-s3_enc.o", "ssl/libssl-lib-s3_lib.o", "ssl/libssl-lib-s3_msg.o", "ssl/libssl-lib-ssl_asn1.o", "ssl/libssl-lib-ssl_cert.o", + "ssl/libssl-lib-ssl_cert_comp.o", "ssl/libssl-lib-ssl_ciph.o", "ssl/libssl-lib-ssl_conf.o", - "ssl/libssl-lib-ssl_err.o", "ssl/libssl-lib-ssl_err_legacy.o", "ssl/libssl-lib-ssl_init.o", "ssl/libssl-lib-ssl_lib.o", @@ -10206,32 +11860,107 @@ our %unified_info = ( "ssl/libssl-lib-t1_trce.o", "ssl/libssl-lib-tls13_enc.o", "ssl/libssl-lib-tls_depr.o", - "ssl/libssl-lib-tls_srp.o", - "ssl/libdefault-lib-s3_cbc.o", - "ssl/libfips-lib-s3_cbc.o" + "ssl/libssl-lib-tls_srp.o" ], "products" => { "lib" => [ - "libssl", - "providers/libdefault.a", - "providers/libfips.a" + "libssl" + ] + } + }, + "ssl/quic" => { + "deps" => [ + "ssl/quic/libssl-lib-cc_newreno.o", + "ssl/quic/libssl-lib-json_enc.o", + "ssl/quic/libssl-lib-qlog.o", + "ssl/quic/libssl-lib-qlog_event_helpers.o", + "ssl/quic/libssl-lib-quic_ackm.o", + "ssl/quic/libssl-lib-quic_cfq.o", + "ssl/quic/libssl-lib-quic_channel.o", + "ssl/quic/libssl-lib-quic_demux.o", + "ssl/quic/libssl-lib-quic_engine.o", + "ssl/quic/libssl-lib-quic_fc.o", + "ssl/quic/libssl-lib-quic_fifd.o", + "ssl/quic/libssl-lib-quic_impl.o", + "ssl/quic/libssl-lib-quic_lcidm.o", + "ssl/quic/libssl-lib-quic_method.o", + "ssl/quic/libssl-lib-quic_obj.o", + "ssl/quic/libssl-lib-quic_port.o", + "ssl/quic/libssl-lib-quic_rcidm.o", + "ssl/quic/libssl-lib-quic_reactor.o", + "ssl/quic/libssl-lib-quic_reactor_wait_ctx.o", + "ssl/quic/libssl-lib-quic_record_rx.o", + "ssl/quic/libssl-lib-quic_record_shared.o", + "ssl/quic/libssl-lib-quic_record_tx.o", + "ssl/quic/libssl-lib-quic_record_util.o", + "ssl/quic/libssl-lib-quic_rstream.o", + "ssl/quic/libssl-lib-quic_rx_depack.o", + "ssl/quic/libssl-lib-quic_sf_list.o", + "ssl/quic/libssl-lib-quic_srt_gen.o", + "ssl/quic/libssl-lib-quic_srtm.o", + "ssl/quic/libssl-lib-quic_sstream.o", + "ssl/quic/libssl-lib-quic_statm.o", + "ssl/quic/libssl-lib-quic_stream_map.o", + "ssl/quic/libssl-lib-quic_thread_assist.o", + "ssl/quic/libssl-lib-quic_tls.o", + "ssl/quic/libssl-lib-quic_tls_api.o", + "ssl/quic/libssl-lib-quic_trace.o", + "ssl/quic/libssl-lib-quic_tserver.o", + "ssl/quic/libssl-lib-quic_txp.o", + "ssl/quic/libssl-lib-quic_txpim.o", + "ssl/quic/libssl-lib-quic_types.o", + "ssl/quic/libssl-lib-quic_wire.o", + "ssl/quic/libssl-lib-quic_wire_pkt.o", + "ssl/quic/libssl-lib-uint_set.o" + ], + "products" => { + "lib" => [ + "libssl" ] } }, "ssl/record" => { "deps" => [ - "ssl/record/libssl-lib-dtls1_bitmap.o", "ssl/record/libssl-lib-rec_layer_d1.o", - "ssl/record/libssl-lib-rec_layer_s3.o", - "ssl/record/libssl-lib-ssl3_buffer.o", - "ssl/record/libssl-lib-ssl3_record.o", - "ssl/record/libssl-lib-ssl3_record_tls13.o", - "ssl/record/libcommon-lib-tls_pad.o" + "ssl/record/libssl-lib-rec_layer_s3.o" + ], + "products" => { + "lib" => [ + "libssl" + ] + } + }, + "ssl/record/methods" => { + "deps" => [ + "ssl/record/methods/libssl-lib-dtls_meth.o", + "ssl/record/methods/libssl-lib-ssl3_meth.o", + "ssl/record/methods/libssl-lib-tls13_meth.o", + "ssl/record/methods/libssl-lib-tls1_meth.o", + "ssl/record/methods/libssl-lib-tls_common.o", + "ssl/record/methods/libssl-lib-tls_multib.o", + "ssl/record/methods/libssl-lib-tlsany_meth.o", + "ssl/record/methods/libcommon-lib-tls_pad.o", + "ssl/record/methods/libdefault-lib-ssl3_cbc.o", + "ssl/record/methods/libfips-lib-ssl3_cbc.o" ], "products" => { "lib" => [ "libssl", - "providers/libcommon.a" + "providers/libcommon.a", + "providers/libdefault.a", + "providers/libfips.a" + ] + } + }, + "ssl/rio" => { + "deps" => [ + "ssl/rio/libssl-lib-poll_builder.o", + "ssl/rio/libssl-lib-poll_immediate.o", + "ssl/rio/libssl-lib-rio_notifier.o" + ], + "products" => { + "lib" => [ + "libssl" ] } }, @@ -10269,9 +11998,40 @@ our %unified_info = ( "test/helpers/dtlstest-bin-ssltestlib.o", "test/helpers/endecode_test-bin-predefined_dhparams.o", "test/helpers/fatalerrtest-bin-ssltestlib.o", + "test/helpers/json_test-bin-noisydgrambio.o", + "test/helpers/json_test-bin-pktsplitbio.o", + "test/helpers/json_test-bin-quictestlib.o", + "test/helpers/json_test-bin-ssltestlib.o", + "test/helpers/pkcs12_api_test-bin-pkcs12.o", "test/helpers/pkcs12_format_test-bin-pkcs12.o", + "test/helpers/quic_multistream_test-bin-noisydgrambio.o", + "test/helpers/quic_multistream_test-bin-pktsplitbio.o", + "test/helpers/quic_multistream_test-bin-quictestlib.o", + "test/helpers/quic_multistream_test-bin-ssltestlib.o", + "test/helpers/quic_newcid_test-bin-noisydgrambio.o", + "test/helpers/quic_newcid_test-bin-pktsplitbio.o", + "test/helpers/quic_newcid_test-bin-quictestlib.o", + "test/helpers/quic_newcid_test-bin-ssltestlib.o", + "test/helpers/quic_radix_test-bin-noisydgrambio.o", + "test/helpers/quic_radix_test-bin-pktsplitbio.o", + "test/helpers/quic_radix_test-bin-quictestlib.o", + "test/helpers/quic_radix_test-bin-ssltestlib.o", + "test/helpers/quic_srt_gen_test-bin-noisydgrambio.o", + "test/helpers/quic_srt_gen_test-bin-pktsplitbio.o", + "test/helpers/quic_srt_gen_test-bin-quictestlib.o", + "test/helpers/quic_srt_gen_test-bin-ssltestlib.o", + "test/helpers/quicapitest-bin-noisydgrambio.o", + "test/helpers/quicapitest-bin-pktsplitbio.o", + "test/helpers/quicapitest-bin-quictestlib.o", + "test/helpers/quicapitest-bin-ssltestlib.o", + "test/helpers/quicfaultstest-bin-noisydgrambio.o", + "test/helpers/quicfaultstest-bin-pktsplitbio.o", + "test/helpers/quicfaultstest-bin-quictestlib.o", + "test/helpers/quicfaultstest-bin-ssltestlib.o", "test/helpers/recordlentest-bin-ssltestlib.o", + "test/helpers/rpktest-bin-ssltestlib.o", "test/helpers/servername_test-bin-ssltestlib.o", + "test/helpers/ssl_handshake_rtt_test-bin-ssltestlib.o", "test/helpers/ssl_old_test-bin-predefined_dhparams.o", "test/helpers/ssl_test-bin-handshake.o", "test/helpers/ssl_test-bin-handshake_srp.o", @@ -10280,7 +12040,8 @@ our %unified_info = ( "test/helpers/sslapitest-bin-ssltestlib.o", "test/helpers/sslbuffertest-bin-ssltestlib.o", "test/helpers/sslcorrupttest-bin-ssltestlib.o", - "test/helpers/tls13ccstest-bin-ssltestlib.o" + "test/helpers/tls13ccstest-bin-ssltestlib.o", + "test/helpers/tls13groupselection_test-bin-ssltestlib.o" ], "products" => { "bin" => [ @@ -10298,16 +12059,37 @@ our %unified_info = ( "test/dtlstest", "test/endecode_test", "test/fatalerrtest", + "test/json_test", + "test/pkcs12_api_test", "test/pkcs12_format_test", + "test/quic_multistream_test", + "test/quic_newcid_test", + "test/quic_radix_test", + "test/quic_srt_gen_test", + "test/quicapitest", + "test/quicfaultstest", "test/recordlentest", + "test/rpktest", "test/servername_test", + "test/ssl_handshake_rtt_test", "test/ssl_old_test", "test/ssl_test", "test/ssl_test_ctx_test", "test/sslapitest", "test/sslbuffertest", "test/sslcorrupttest", - "test/tls13ccstest" + "test/tls13ccstest", + "test/tls13groupselection_test" + ] + } + }, + "test/radix" => { + "deps" => [ + "test/radix/quic_radix_test-bin-quic_radix.o" + ], + "products" => { + "bin" => [ + "test/quic_radix_test" ] } }, @@ -10319,6 +12101,7 @@ our %unified_info = ( "test/testutil/libtestutil-lib-driver.o", "test/testutil/libtestutil-lib-fake_random.o", "test/testutil/libtestutil-lib-format_output.o", + "test/testutil/libtestutil-lib-helper.o", "test/testutil/libtestutil-lib-load.o", "test/testutil/libtestutil-lib-main.o", "test/testutil/libtestutil-lib-options.o", @@ -10354,6 +12137,12 @@ our %unified_info = ( } }, "generate" => { + "OpenSSLConfig.cmake" => [ + "exporters/cmake/OpenSSLConfig.cmake.in" + ], + "OpenSSLConfigVersion.cmake" => [ + "exporters/cmake/OpenSSLConfigVersion.cmake.in" + ], "apps/progs.c" => [ "apps/progs.pl", "\"-C\"", @@ -10364,6 +12153,19 @@ our %unified_info = ( "\"-H\"", "\$(APPS_OPENSSL)" ], + "builddata.pm" => [ + "util/mkinstallvars.pl", + "PREFIX=.", + "BINDIR=apps", + "APPLINKDIR=ms", + "LIBDIR=", + "INCLUDEDIR=include", + "\"INCLUDEDIR=\$(SRCDIR)/include\"", + "ENGINESDIR=engines", + "MODULESDIR=providers", + "\"VERSION=\$(VERSION)\"", + "\"LDLIBS=\$(LIB_EX_LIBS)\"" + ], "crypto/aes/aes-586.S" => [ "crypto/aes/asm/aes-586.pl" ], @@ -10385,6 +12187,24 @@ our %unified_info = ( "crypto/aes/aes-ppc.s" => [ "crypto/aes/asm/aes-ppc.pl" ], + "crypto/aes/aes-riscv32-zkn.s" => [ + "crypto/aes/asm/aes-riscv32-zkn.pl" + ], + "crypto/aes/aes-riscv64-zkn.s" => [ + "crypto/aes/asm/aes-riscv64-zkn.pl" + ], + "crypto/aes/aes-riscv64-zvbb-zvkg-zvkned.s" => [ + "crypto/aes/asm/aes-riscv64-zvbb-zvkg-zvkned.pl" + ], + "crypto/aes/aes-riscv64-zvkb-zvkned.s" => [ + "crypto/aes/asm/aes-riscv64-zvkb-zvkned.pl" + ], + "crypto/aes/aes-riscv64-zvkned.s" => [ + "crypto/aes/asm/aes-riscv64-zvkned.pl" + ], + "crypto/aes/aes-riscv64.s" => [ + "crypto/aes/asm/aes-riscv64.pl" + ], "crypto/aes/aes-s390x.S" => [ "crypto/aes/asm/aes-s390x.pl" ], @@ -10412,6 +12232,9 @@ our %unified_info = ( "crypto/aes/aesni-x86_64.s" => [ "crypto/aes/asm/aesni-x86_64.pl" ], + "crypto/aes/aesni-xts-avx512.s" => [ + "crypto/aes/asm/aesni-xts-avx512.pl" + ], "crypto/aes/aesp8-ppc.s" => [ "crypto/aes/asm/aesp8-ppc.pl" ], @@ -10424,12 +12247,18 @@ our %unified_info = ( "crypto/aes/bsaes-armv7.S" => [ "crypto/aes/asm/bsaes-armv7.pl" ], + "crypto/aes/bsaes-armv8.S" => [ + "crypto/aes/asm/bsaes-armv8.pl" + ], "crypto/aes/bsaes-x86_64.s" => [ "crypto/aes/asm/bsaes-x86_64.pl" ], "crypto/aes/vpaes-armv8.S" => [ "crypto/aes/asm/vpaes-armv8.pl" ], + "crypto/aes/vpaes-loongarch64.S" => [ + "crypto/aes/asm/vpaes-loongarch64.pl" + ], "crypto/aes/vpaes-ppc.s" => [ "crypto/aes/asm/vpaes-ppc.pl" ], @@ -10490,15 +12319,33 @@ our %unified_info = ( "crypto/bn/ppc-mont.s" => [ "crypto/bn/asm/ppc-mont.pl" ], + "crypto/bn/ppc64-mont-fixed.s" => [ + "crypto/bn/asm/ppc64-mont-fixed.pl" + ], "crypto/bn/ppc64-mont.s" => [ "crypto/bn/asm/ppc64-mont.pl" ], + "crypto/bn/rsaz-2k-avx512.s" => [ + "crypto/bn/asm/rsaz-2k-avx512.pl" + ], + "crypto/bn/rsaz-2k-avxifma.s" => [ + "crypto/bn/asm/rsaz-2k-avxifma.pl" + ], + "crypto/bn/rsaz-3k-avx512.s" => [ + "crypto/bn/asm/rsaz-3k-avx512.pl" + ], + "crypto/bn/rsaz-3k-avxifma.s" => [ + "crypto/bn/asm/rsaz-3k-avxifma.pl" + ], + "crypto/bn/rsaz-4k-avx512.s" => [ + "crypto/bn/asm/rsaz-4k-avx512.pl" + ], + "crypto/bn/rsaz-4k-avxifma.s" => [ + "crypto/bn/asm/rsaz-4k-avxifma.pl" + ], "crypto/bn/rsaz-avx2.s" => [ "crypto/bn/asm/rsaz-avx2.pl" ], - "crypto/bn/rsaz-avx512.s" => [ - "crypto/bn/asm/rsaz-avx512.pl" - ], "crypto/bn/rsaz-x86_64.s" => [ "crypto/bn/asm/rsaz-x86_64.pl" ], @@ -10560,6 +12407,9 @@ our %unified_info = ( "crypto/chacha/chacha-armv4.S" => [ "crypto/chacha/asm/chacha-armv4.pl" ], + "crypto/chacha/chacha-armv8-sve.S" => [ + "crypto/chacha/asm/chacha-armv8-sve.pl" + ], "crypto/chacha/chacha-armv8.S" => [ "crypto/chacha/asm/chacha-armv8.pl" ], @@ -10572,9 +12422,19 @@ our %unified_info = ( "crypto/chacha/chacha-ia64.s" => [ "crypto/chacha/chacha-ia64.S" ], + "crypto/chacha/chacha-loongarch64.S" => [ + "crypto/chacha/asm/chacha-loongarch64.pl" + ], "crypto/chacha/chacha-ppc.s" => [ "crypto/chacha/asm/chacha-ppc.pl" ], + "crypto/chacha/chacha-riscv64-v-zbb-zvkb.s" => [ + "crypto/chacha/asm/chacha-riscv64-v-zbb.pl", + "zvkb" + ], + "crypto/chacha/chacha-riscv64-v-zbb.s" => [ + "crypto/chacha/asm/chacha-riscv64-v-zbb.pl" + ], "crypto/chacha/chacha-s390x.S" => [ "crypto/chacha/asm/chacha-s390x.pl" ], @@ -10584,6 +12444,9 @@ our %unified_info = ( "crypto/chacha/chacha-x86_64.s" => [ "crypto/chacha/asm/chacha-x86_64.pl" ], + "crypto/chacha/chachap10-ppc.s" => [ + "crypto/chacha/asm/chachap10-ppc.pl" + ], "crypto/des/crypt586.S" => [ "crypto/des/asm/crypt586.pl" ], @@ -10596,6 +12459,9 @@ our %unified_info = ( "crypto/des/dest4-sparcv9.S" => [ "crypto/des/asm/dest4-sparcv9.pl" ], + "crypto/ec/ecp_nistp384-ppc64.s" => [ + "crypto/ec/asm/ecp_nistp384-ppc64.pl" + ], "crypto/ec/ecp_nistp521-ppc64.s" => [ "crypto/ec/asm/ecp_nistp521-ppc64.pl" ], @@ -10620,6 +12486,9 @@ our %unified_info = ( "crypto/ec/ecp_nistz256-x86_64.s" => [ "crypto/ec/asm/ecp_nistz256-x86_64.pl" ], + "crypto/ec/ecp_sm2p256-armv8.S" => [ + "crypto/ec/asm/ecp_sm2p256-armv8.pl" + ], "crypto/ec/x25519-ppc64.s" => [ "crypto/ec/asm/x25519-ppc64.pl" ], @@ -10629,18 +12498,39 @@ our %unified_info = ( "crypto/ia64cpuid.s" => [ "crypto/ia64cpuid.S" ], + "crypto/loongarch64cpuid.s" => [ + "crypto/loongarch64cpuid.pl" + ], "crypto/md5/md5-586.S" => [ "crypto/md5/asm/md5-586.pl" ], + "crypto/md5/md5-aarch64.S" => [ + "crypto/md5/asm/md5-aarch64.pl" + ], + "crypto/md5/md5-loongarch64.S" => [ + "crypto/md5/asm/md5-loongarch64.pl" + ], "crypto/md5/md5-sparcv9.S" => [ "crypto/md5/asm/md5-sparcv9.pl" ], "crypto/md5/md5-x86_64.s" => [ "crypto/md5/asm/md5-x86_64.pl" ], + "crypto/modes/aes-gcm-armv8-unroll8_64.S" => [ + "crypto/modes/asm/aes-gcm-armv8-unroll8_64.pl" + ], "crypto/modes/aes-gcm-armv8_64.S" => [ "crypto/modes/asm/aes-gcm-armv8_64.pl" ], + "crypto/modes/aes-gcm-avx512.s" => [ + "crypto/modes/asm/aes-gcm-avx512.pl" + ], + "crypto/modes/aes-gcm-ppc.s" => [ + "crypto/modes/asm/aes-gcm-ppc.pl" + ], + "crypto/modes/aes-gcm-riscv64-zvkb-zvkg-zvkned.s" => [ + "crypto/modes/asm/aes-gcm-riscv64-zvkb-zvkg-zvkned.pl" + ], "crypto/modes/aesni-gcm-x86_64.s" => [ "crypto/modes/asm/aesni-gcm-x86_64.pl" ], @@ -10659,6 +12549,15 @@ our %unified_info = ( "crypto/modes/ghash-parisc.s" => [ "crypto/modes/asm/ghash-parisc.pl" ], + "crypto/modes/ghash-riscv64-zvkb-zvbc.s" => [ + "crypto/modes/asm/ghash-riscv64-zvkb-zvbc.pl" + ], + "crypto/modes/ghash-riscv64-zvkg.s" => [ + "crypto/modes/asm/ghash-riscv64-zvkg.pl" + ], + "crypto/modes/ghash-riscv64.s" => [ + "crypto/modes/asm/ghash-riscv64.pl" + ], "crypto/modes/ghash-s390x.S" => [ "crypto/modes/asm/ghash-s390x.pl" ], @@ -10677,6 +12576,9 @@ our %unified_info = ( "crypto/modes/ghashv8-armx.S" => [ "crypto/modes/asm/ghashv8-armx.pl" ], + "crypto/params_idx.c" => [ + "crypto/params_idx.c.in" + ], "crypto/pariscid.s" => [ "crypto/pariscid.pl" ], @@ -10737,6 +12639,12 @@ our %unified_info = ( "crypto/ripemd/rmd-586.S" => [ "crypto/ripemd/asm/rmd-586.pl" ], + "crypto/riscv32cpuid.s" => [ + "crypto/riscv32cpuid.pl" + ], + "crypto/riscv64cpuid.s" => [ + "crypto/riscv64cpuid.pl" + ], "crypto/s390xcpuid.S" => [ "crypto/s390xcpuid.pl" ], @@ -10845,6 +12753,9 @@ our %unified_info = ( "crypto/sha/sha256-ppc.s" => [ "crypto/sha/asm/sha512-ppc.pl" ], + "crypto/sha/sha256-riscv64-zvkb-zvknha_or_zvknhb.S" => [ + "crypto/sha/asm/sha256-riscv64-zvkb-zvknha_or_zvknhb.pl" + ], "crypto/sha/sha256-s390x.S" => [ "crypto/sha/asm/sha512-s390x.pl" ], @@ -10881,6 +12792,9 @@ our %unified_info = ( "crypto/sha/sha512-ppc.s" => [ "crypto/sha/asm/sha512-ppc.pl" ], + "crypto/sha/sha512-riscv64-zvkb-zvknhb.S" => [ + "crypto/sha/asm/sha512-riscv64-zvkb-zvknhb.pl" + ], "crypto/sha/sha512-s390x.S" => [ "crypto/sha/asm/sha512-s390x.pl" ], @@ -10893,6 +12807,24 @@ our %unified_info = ( "crypto/sha/sha512p8-ppc.s" => [ "crypto/sha/asm/sha512p8-ppc.pl" ], + "crypto/sm3/sm3-armv8.S" => [ + "crypto/sm3/asm/sm3-armv8.pl" + ], + "crypto/sm3/sm3-riscv64-zvksh.S" => [ + "crypto/sm3/asm/sm3-riscv64-zvksh.pl" + ], + "crypto/sm4/sm4-armv8.S" => [ + "crypto/sm4/asm/sm4-armv8.pl" + ], + "crypto/sm4/sm4-riscv64-zvksed.s" => [ + "crypto/sm4/asm/sm4-riscv64-zvksed.pl" + ], + "crypto/sm4/vpsm4-armv8.S" => [ + "crypto/sm4/asm/vpsm4-armv8.pl" + ], + "crypto/sm4/vpsm4_ex-armv8.S" => [ + "crypto/sm4/asm/vpsm4_ex-armv8.pl" + ], "crypto/uplink-ia64.s" => [ "ms/uplink-ia64.pl" ], @@ -11058,6 +12990,9 @@ our %unified_info = ( "doc/html/man1/openssl-sess_id.html" => [ "doc/man1/openssl-sess_id.pod" ], + "doc/html/man1/openssl-skeyutl.html" => [ + "doc/man1/openssl-skeyutl.pod" + ], "doc/html/man1/openssl-smime.html" => [ "doc/man1/openssl-smime.pod" ], @@ -11199,6 +13134,9 @@ our %unified_info = ( "doc/html/man3/BIO_get_ex_new_index.html" => [ "doc/man3/BIO_get_ex_new_index.pod" ], + "doc/html/man3/BIO_get_rpoll_descriptor.html" => [ + "doc/man3/BIO_get_rpoll_descriptor.pod" + ], "doc/html/man3/BIO_meth_new.html" => [ "doc/man3/BIO_meth_new.pod" ], @@ -11235,6 +13173,9 @@ our %unified_info = ( "doc/html/man3/BIO_s_datagram.html" => [ "doc/man3/BIO_s_datagram.pod" ], + "doc/html/man3/BIO_s_dgram_pair.html" => [ + "doc/man3/BIO_s_dgram_pair.pod" + ], "doc/html/man3/BIO_s_fd.html" => [ "doc/man3/BIO_s_fd.pod" ], @@ -11250,6 +13191,9 @@ our %unified_info = ( "doc/html/man3/BIO_s_socket.html" => [ "doc/man3/BIO_s_socket.pod" ], + "doc/html/man3/BIO_sendmmsg.html" => [ + "doc/man3/BIO_sendmmsg.pod" + ], "doc/html/man3/BIO_set_callback.html" => [ "doc/man3/BIO_set_callback.pod" ], @@ -11322,6 +13266,9 @@ our %unified_info = ( "doc/html/man3/BUF_MEM_new.html" => [ "doc/man3/BUF_MEM_new.pod" ], + "doc/html/man3/CMAC_CTX.html" => [ + "doc/man3/CMAC_CTX.pod" + ], "doc/html/man3/CMS_EncryptedData_decrypt.html" => [ "doc/man3/CMS_EncryptedData_decrypt.pod" ], @@ -11388,6 +13335,9 @@ our %unified_info = ( "doc/html/man3/CMS_verify_receipt.html" => [ "doc/man3/CMS_verify_receipt.pod" ], + "doc/html/man3/COMP_CTX_new.html" => [ + "doc/man3/COMP_CTX_new.pod" + ], "doc/html/man3/CONF_modules_free.html" => [ "doc/man3/CONF_modules_free.pod" ], @@ -11487,6 +13437,12 @@ our %unified_info = ( "doc/html/man3/DTLS_set_timer_cb.html" => [ "doc/man3/DTLS_set_timer_cb.pod" ], + "doc/html/man3/DTLSv1_get_timeout.html" => [ + "doc/man3/DTLSv1_get_timeout.pod" + ], + "doc/html/man3/DTLSv1_handle_timeout.html" => [ + "doc/man3/DTLSv1_handle_timeout.pod" + ], "doc/html/man3/DTLSv1_listen.html" => [ "doc/man3/DTLSv1_listen.pod" ], @@ -11625,6 +13581,9 @@ our %unified_info = ( "doc/html/man3/EVP_PKEY_CTX_get0_pkey.html" => [ "doc/man3/EVP_PKEY_CTX_get0_pkey.pod" ], + "doc/html/man3/EVP_PKEY_CTX_get_algor.html" => [ + "doc/man3/EVP_PKEY_CTX_get_algor.pod" + ], "doc/html/man3/EVP_PKEY_CTX_new.html" => [ "doc/man3/EVP_PKEY_CTX_new.pod" ], @@ -11742,6 +13701,12 @@ our %unified_info = ( "doc/html/man3/EVP_SIGNATURE.html" => [ "doc/man3/EVP_SIGNATURE.pod" ], + "doc/html/man3/EVP_SKEY.html" => [ + "doc/man3/EVP_SKEY.pod" + ], + "doc/html/man3/EVP_SKEYMGMT.html" => [ + "doc/man3/EVP_SKEYMGMT.pod" + ], "doc/html/man3/EVP_SealInit.html" => [ "doc/man3/EVP_SealInit.pod" ], @@ -11829,6 +13794,9 @@ our %unified_info = ( "doc/html/man3/EVP_whirlpool.html" => [ "doc/man3/EVP_whirlpool.pod" ], + "doc/html/man3/GENERAL_NAME.html" => [ + "doc/man3/GENERAL_NAME.pod" + ], "doc/html/man3/HMAC.html" => [ "doc/man3/HMAC.pod" ], @@ -11901,9 +13869,15 @@ our %unified_info = ( "doc/html/man3/OPENSSL_load_builtin_modules.html" => [ "doc/man3/OPENSSL_load_builtin_modules.pod" ], + "doc/html/man3/OPENSSL_load_u16_le.html" => [ + "doc/man3/OPENSSL_load_u16_le.pod" + ], "doc/html/man3/OPENSSL_malloc.html" => [ "doc/man3/OPENSSL_malloc.pod" ], + "doc/html/man3/OPENSSL_riscvcap.html" => [ + "doc/man3/OPENSSL_riscvcap.pod" + ], "doc/html/man3/OPENSSL_s390xcap.html" => [ "doc/man3/OPENSSL_s390xcap.pod" ], @@ -11919,12 +13893,18 @@ our %unified_info = ( "doc/html/man3/OSSL_CALLBACK.html" => [ "doc/man3/OSSL_CALLBACK.pod" ], + "doc/html/man3/OSSL_CMP_ATAV_set0.html" => [ + "doc/man3/OSSL_CMP_ATAV_set0.pod" + ], "doc/html/man3/OSSL_CMP_CTX_new.html" => [ "doc/man3/OSSL_CMP_CTX_new.pod" ], "doc/html/man3/OSSL_CMP_HDR_get0_transactionID.html" => [ "doc/man3/OSSL_CMP_HDR_get0_transactionID.pod" ], + "doc/html/man3/OSSL_CMP_ITAV_new_caCerts.html" => [ + "doc/man3/OSSL_CMP_ITAV_new_caCerts.pod" + ], "doc/html/man3/OSSL_CMP_ITAV_set0.html" => [ "doc/man3/OSSL_CMP_ITAV_set0.pod" ], @@ -11994,9 +13974,18 @@ our %unified_info = ( "doc/html/man3/OSSL_ENCODER_to_bio.html" => [ "doc/man3/OSSL_ENCODER_to_bio.pod" ], + "doc/html/man3/OSSL_ERR_STATE_save.html" => [ + "doc/man3/OSSL_ERR_STATE_save.pod" + ], "doc/html/man3/OSSL_ESS_check_signing_certs.html" => [ "doc/man3/OSSL_ESS_check_signing_certs.pod" ], + "doc/html/man3/OSSL_GENERAL_NAMES_print.html" => [ + "doc/man3/OSSL_GENERAL_NAMES_print.pod" + ], + "doc/html/man3/OSSL_HPKE_CTX_new.html" => [ + "doc/man3/OSSL_HPKE_CTX_new.pod" + ], "doc/html/man3/OSSL_HTTP_REQ_CTX.html" => [ "doc/man3/OSSL_HTTP_REQ_CTX.pod" ], @@ -12006,12 +13995,24 @@ our %unified_info = ( "doc/html/man3/OSSL_HTTP_transfer.html" => [ "doc/man3/OSSL_HTTP_transfer.pod" ], + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX.html" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX.pod" + ], + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX_print.html" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX_print.pod" + ], + "doc/html/man3/OSSL_INDICATOR_set_callback.html" => [ + "doc/man3/OSSL_INDICATOR_set_callback.pod" + ], "doc/html/man3/OSSL_ITEM.html" => [ "doc/man3/OSSL_ITEM.pod" ], "doc/html/man3/OSSL_LIB_CTX.html" => [ "doc/man3/OSSL_LIB_CTX.pod" ], + "doc/html/man3/OSSL_LIB_CTX_set_conf_diagnostics.html" => [ + "doc/man3/OSSL_LIB_CTX_set_conf_diagnostics.pod" + ], "doc/html/man3/OSSL_PARAM.html" => [ "doc/man3/OSSL_PARAM.pod" ], @@ -12027,9 +14028,15 @@ our %unified_info = ( "doc/html/man3/OSSL_PARAM_int.html" => [ "doc/man3/OSSL_PARAM_int.pod" ], + "doc/html/man3/OSSL_PARAM_print_to_bio.html" => [ + "doc/man3/OSSL_PARAM_print_to_bio.pod" + ], "doc/html/man3/OSSL_PROVIDER.html" => [ "doc/man3/OSSL_PROVIDER.pod" ], + "doc/html/man3/OSSL_QUIC_client_method.html" => [ + "doc/man3/OSSL_QUIC_client_method.pod" + ], "doc/html/man3/OSSL_SELF_TEST_new.html" => [ "doc/man3/OSSL_SELF_TEST_new.pod" ], @@ -12054,6 +14061,9 @@ our %unified_info = ( "doc/html/man3/OSSL_STORE_open.html" => [ "doc/man3/OSSL_STORE_open.pod" ], + "doc/html/man3/OSSL_sleep.html" => [ + "doc/man3/OSSL_sleep.pod" + ], "doc/html/man3/OSSL_trace_enabled.html" => [ "doc/man3/OSSL_trace_enabled.pod" ], @@ -12069,6 +14079,9 @@ our %unified_info = ( "doc/html/man3/OpenSSL_version.html" => [ "doc/man3/OpenSSL_version.pod" ], + "doc/html/man3/PBMAC1_get1_pbkdf2_param.html" => [ + "doc/man3/PBMAC1_get1_pbkdf2_param.pod" + ], "doc/html/man3/PEM_X509_INFO_read_bio_ex.html" => [ "doc/man3/PEM_X509_INFO_read_bio_ex.pod" ], @@ -12105,6 +14118,9 @@ our %unified_info = ( "doc/html/man3/PKCS12_SAFEBAG_get1_cert.html" => [ "doc/man3/PKCS12_SAFEBAG_get1_cert.pod" ], + "doc/html/man3/PKCS12_SAFEBAG_set0_attrs.html" => [ + "doc/man3/PKCS12_SAFEBAG_set0_attrs.pod" + ], "doc/html/man3/PKCS12_add1_attr_by_NID.html" => [ "doc/man3/PKCS12_add1_attr_by_NID.pod" ], @@ -12378,6 +14394,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set0_CA_list.html" => [ "doc/man3/SSL_CTX_set0_CA_list.pod" ], + "doc/html/man3/SSL_CTX_set1_cert_comp_preference.html" => [ + "doc/man3/SSL_CTX_set1_cert_comp_preference.pod" + ], "doc/html/man3/SSL_CTX_set1_curves.html" => [ "doc/man3/SSL_CTX_set1_curves.pod" ], @@ -12417,6 +14436,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_default_passwd_cb.html" => [ "doc/man3/SSL_CTX_set_default_passwd_cb.pod" ], + "doc/html/man3/SSL_CTX_set_domain_flags.html" => [ + "doc/man3/SSL_CTX_set_domain_flags.pod" + ], "doc/html/man3/SSL_CTX_set_generate_session_id.html" => [ "doc/man3/SSL_CTX_set_generate_session_id.pod" ], @@ -12438,6 +14460,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_msg_callback.html" => [ "doc/man3/SSL_CTX_set_msg_callback.pod" ], + "doc/html/man3/SSL_CTX_set_new_pending_conn_cb.html" => [ + "doc/man3/SSL_CTX_set_new_pending_conn_cb.pod" + ], "doc/html/man3/SSL_CTX_set_num_tickets.html" => [ "doc/man3/SSL_CTX_set_num_tickets.pod" ], @@ -12552,6 +14577,9 @@ our %unified_info = ( "doc/html/man3/SSL_accept.html" => [ "doc/man3/SSL_accept.pod" ], + "doc/html/man3/SSL_accept_stream.html" => [ + "doc/man3/SSL_accept_stream.pod" + ], "doc/html/man3/SSL_alert_type_string.html" => [ "doc/man3/SSL_alert_type_string.pod" ], @@ -12579,9 +14607,21 @@ our %unified_info = ( "doc/html/man3/SSL_free.html" => [ "doc/man3/SSL_free.pod" ], + "doc/html/man3/SSL_get0_connection.html" => [ + "doc/man3/SSL_get0_connection.pod" + ], + "doc/html/man3/SSL_get0_group_name.html" => [ + "doc/man3/SSL_get0_group_name.pod" + ], + "doc/html/man3/SSL_get0_peer_rpk.html" => [ + "doc/man3/SSL_get0_peer_rpk.pod" + ], "doc/html/man3/SSL_get0_peer_scts.html" => [ "doc/man3/SSL_get0_peer_scts.pod" ], + "doc/html/man3/SSL_get1_builtin_sigalgs.html" => [ + "doc/man3/SSL_get1_builtin_sigalgs.pod" + ], "doc/html/man3/SSL_get_SSL_CTX.html" => [ "doc/man3/SSL_get_SSL_CTX.pod" ], @@ -12597,6 +14637,9 @@ our %unified_info = ( "doc/html/man3/SSL_get_client_random.html" => [ "doc/man3/SSL_get_client_random.pod" ], + "doc/html/man3/SSL_get_conn_close_info.html" => [ + "doc/man3/SSL_get_conn_close_info.pod" + ], "doc/html/man3/SSL_get_current_cipher.html" => [ "doc/man3/SSL_get_current_cipher.pod" ], @@ -12606,12 +14649,18 @@ our %unified_info = ( "doc/html/man3/SSL_get_error.html" => [ "doc/man3/SSL_get_error.pod" ], + "doc/html/man3/SSL_get_event_timeout.html" => [ + "doc/man3/SSL_get_event_timeout.pod" + ], "doc/html/man3/SSL_get_extms_support.html" => [ "doc/man3/SSL_get_extms_support.pod" ], "doc/html/man3/SSL_get_fd.html" => [ "doc/man3/SSL_get_fd.pod" ], + "doc/html/man3/SSL_get_handshake_rtt.html" => [ + "doc/man3/SSL_get_handshake_rtt.pod" + ], "doc/html/man3/SSL_get_peer_cert_chain.html" => [ "doc/man3/SSL_get_peer_cert_chain.pod" ], @@ -12630,12 +14679,24 @@ our %unified_info = ( "doc/html/man3/SSL_get_rbio.html" => [ "doc/man3/SSL_get_rbio.pod" ], + "doc/html/man3/SSL_get_rpoll_descriptor.html" => [ + "doc/man3/SSL_get_rpoll_descriptor.pod" + ], "doc/html/man3/SSL_get_session.html" => [ "doc/man3/SSL_get_session.pod" ], "doc/html/man3/SSL_get_shared_sigalgs.html" => [ "doc/man3/SSL_get_shared_sigalgs.pod" ], + "doc/html/man3/SSL_get_stream_id.html" => [ + "doc/man3/SSL_get_stream_id.pod" + ], + "doc/html/man3/SSL_get_stream_read_state.html" => [ + "doc/man3/SSL_get_stream_read_state.pod" + ], + "doc/html/man3/SSL_get_value_uint.html" => [ + "doc/man3/SSL_get_value_uint.pod" + ], "doc/html/man3/SSL_get_verify_result.html" => [ "doc/man3/SSL_get_verify_result.pod" ], @@ -12645,9 +14706,15 @@ our %unified_info = ( "doc/html/man3/SSL_group_to_name.html" => [ "doc/man3/SSL_group_to_name.pod" ], + "doc/html/man3/SSL_handle_events.html" => [ + "doc/man3/SSL_handle_events.pod" + ], "doc/html/man3/SSL_in_init.html" => [ "doc/man3/SSL_in_init.pod" ], + "doc/html/man3/SSL_inject_net_dgram.html" => [ + "doc/man3/SSL_inject_net_dgram.pod" + ], "doc/html/man3/SSL_key_update.html" => [ "doc/man3/SSL_key_update.pod" ], @@ -12660,9 +14727,21 @@ our %unified_info = ( "doc/html/man3/SSL_new.html" => [ "doc/man3/SSL_new.pod" ], + "doc/html/man3/SSL_new_domain.html" => [ + "doc/man3/SSL_new_domain.pod" + ], + "doc/html/man3/SSL_new_listener.html" => [ + "doc/man3/SSL_new_listener.pod" + ], + "doc/html/man3/SSL_new_stream.html" => [ + "doc/man3/SSL_new_stream.pod" + ], "doc/html/man3/SSL_pending.html" => [ "doc/man3/SSL_pending.pod" ], + "doc/html/man3/SSL_poll.html" => [ + "doc/man3/SSL_poll.pod" + ], "doc/html/man3/SSL_read.html" => [ "doc/man3/SSL_read.pod" ], @@ -12678,24 +14757,45 @@ our %unified_info = ( "doc/html/man3/SSL_set1_host.html" => [ "doc/man3/SSL_set1_host.pod" ], + "doc/html/man3/SSL_set1_initial_peer_addr.html" => [ + "doc/man3/SSL_set1_initial_peer_addr.pod" + ], + "doc/html/man3/SSL_set1_server_cert_type.html" => [ + "doc/man3/SSL_set1_server_cert_type.pod" + ], "doc/html/man3/SSL_set_async_callback.html" => [ "doc/man3/SSL_set_async_callback.pod" ], "doc/html/man3/SSL_set_bio.html" => [ "doc/man3/SSL_set_bio.pod" ], + "doc/html/man3/SSL_set_blocking_mode.html" => [ + "doc/man3/SSL_set_blocking_mode.pod" + ], "doc/html/man3/SSL_set_connect_state.html" => [ "doc/man3/SSL_set_connect_state.pod" ], + "doc/html/man3/SSL_set_default_stream_mode.html" => [ + "doc/man3/SSL_set_default_stream_mode.pod" + ], "doc/html/man3/SSL_set_fd.html" => [ "doc/man3/SSL_set_fd.pod" ], + "doc/html/man3/SSL_set_incoming_stream_policy.html" => [ + "doc/man3/SSL_set_incoming_stream_policy.pod" + ], + "doc/html/man3/SSL_set_quic_tls_cbs.html" => [ + "doc/man3/SSL_set_quic_tls_cbs.pod" + ], "doc/html/man3/SSL_set_retry_verify.html" => [ "doc/man3/SSL_set_retry_verify.pod" ], "doc/html/man3/SSL_set_session.html" => [ "doc/man3/SSL_set_session.pod" ], + "doc/html/man3/SSL_set_session_secret_cb.html" => [ + "doc/man3/SSL_set_session_secret_cb.pod" + ], "doc/html/man3/SSL_set_shutdown.html" => [ "doc/man3/SSL_set_shutdown.pod" ], @@ -12708,6 +14808,12 @@ our %unified_info = ( "doc/html/man3/SSL_state_string.html" => [ "doc/man3/SSL_state_string.pod" ], + "doc/html/man3/SSL_stream_conclude.html" => [ + "doc/man3/SSL_stream_conclude.pod" + ], + "doc/html/man3/SSL_stream_reset.html" => [ + "doc/man3/SSL_stream_reset.pod" + ], "doc/html/man3/SSL_want.html" => [ "doc/man3/SSL_want.pod" ], @@ -12717,8 +14823,8 @@ our %unified_info = ( "doc/html/man3/TS_RESP_CTX_new.html" => [ "doc/man3/TS_RESP_CTX_new.pod" ], - "doc/html/man3/TS_VERIFY_CTX_set_certs.html" => [ - "doc/man3/TS_VERIFY_CTX_set_certs.pod" + "doc/html/man3/TS_VERIFY_CTX.html" => [ + "doc/man3/TS_VERIFY_CTX.pod" ], "doc/html/man3/UI_STRING.html" => [ "doc/man3/UI_STRING.pod" @@ -12738,6 +14844,21 @@ our %unified_info = ( "doc/html/man3/X509V3_set_ctx.html" => [ "doc/man3/X509V3_set_ctx.pod" ], + "doc/html/man3/X509_ACERT_add1_attr.html" => [ + "doc/man3/X509_ACERT_add1_attr.pod" + ], + "doc/html/man3/X509_ACERT_add_attr_nconf.html" => [ + "doc/man3/X509_ACERT_add_attr_nconf.pod" + ], + "doc/html/man3/X509_ACERT_get0_holder_baseCertId.html" => [ + "doc/man3/X509_ACERT_get0_holder_baseCertId.pod" + ], + "doc/html/man3/X509_ACERT_get_attr.html" => [ + "doc/man3/X509_ACERT_get_attr.pod" + ], + "doc/html/man3/X509_ACERT_print_ex.html" => [ + "doc/man3/X509_ACERT_print_ex.pod" + ], "doc/html/man3/X509_ALGOR_dup.html" => [ "doc/man3/X509_ALGOR_dup.pod" ], @@ -12786,6 +14907,9 @@ our %unified_info = ( "doc/html/man3/X509_SIG_get0.html" => [ "doc/man3/X509_SIG_get0.pod" ], + "doc/html/man3/X509_STORE_CTX_get_by_subject.html" => [ + "doc/man3/X509_STORE_CTX_get_by_subject.pod" + ], "doc/html/man3/X509_STORE_CTX_get_error.html" => [ "doc/man3/X509_STORE_CTX_get_error.pod" ], @@ -12852,6 +14976,9 @@ our %unified_info = ( "doc/html/man3/X509_get0_uids.html" => [ "doc/man3/X509_get0_uids.pod" ], + "doc/html/man3/X509_get_default_cert_file.html" => [ + "doc/man3/X509_get_default_cert_file.pod" + ], "doc/html/man3/X509_get_extension_flags.html" => [ "doc/man3/X509_get_extension_flags.pod" ], @@ -12975,9 +15102,15 @@ our %unified_info = ( "doc/html/man7/EVP_CIPHER-SM4.html" => [ "doc/man7/EVP_CIPHER-SM4.pod" ], + "doc/html/man7/EVP_KDF-ARGON2.html" => [ + "doc/man7/EVP_KDF-ARGON2.pod" + ], "doc/html/man7/EVP_KDF-HKDF.html" => [ "doc/man7/EVP_KDF-HKDF.pod" ], + "doc/html/man7/EVP_KDF-HMAC-DRBG.html" => [ + "doc/man7/EVP_KDF-HMAC-DRBG.pod" + ], "doc/html/man7/EVP_KDF-KB.html" => [ "doc/man7/EVP_KDF-KB.pod" ], @@ -12993,6 +15126,9 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-PKCS12KDF.html" => [ "doc/man7/EVP_KDF-PKCS12KDF.pod" ], + "doc/html/man7/EVP_KDF-PVKKDF.html" => [ + "doc/man7/EVP_KDF-PVKKDF.pod" + ], "doc/html/man7/EVP_KDF-SCRYPT.html" => [ "doc/man7/EVP_KDF-SCRYPT.pod" ], @@ -13017,9 +15153,18 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-X963.html" => [ "doc/man7/EVP_KDF-X963.pod" ], + "doc/html/man7/EVP_KEM-EC.html" => [ + "doc/man7/EVP_KEM-EC.pod" + ], + "doc/html/man7/EVP_KEM-ML-KEM.html" => [ + "doc/man7/EVP_KEM-ML-KEM.pod" + ], "doc/html/man7/EVP_KEM-RSA.html" => [ "doc/man7/EVP_KEM-RSA.pod" ], + "doc/html/man7/EVP_KEM-X25519.html" => [ + "doc/man7/EVP_KEM-X25519.pod" + ], "doc/html/man7/EVP_KEYEXCH-DH.html" => [ "doc/man7/EVP_KEYEXCH-DH.pod" ], @@ -13053,6 +15198,9 @@ our %unified_info = ( "doc/html/man7/EVP_MD-BLAKE2.html" => [ "doc/man7/EVP_MD-BLAKE2.pod" ], + "doc/html/man7/EVP_MD-KECCAK.html" => [ + "doc/man7/EVP_MD-KECCAK.pod" + ], "doc/html/man7/EVP_MD-MD2.html" => [ "doc/man7/EVP_MD-MD2.pod" ], @@ -13110,15 +15258,27 @@ our %unified_info = ( "doc/html/man7/EVP_PKEY-HMAC.html" => [ "doc/man7/EVP_PKEY-HMAC.pod" ], + "doc/html/man7/EVP_PKEY-ML-DSA.html" => [ + "doc/man7/EVP_PKEY-ML-DSA.pod" + ], + "doc/html/man7/EVP_PKEY-ML-KEM.html" => [ + "doc/man7/EVP_PKEY-ML-KEM.pod" + ], "doc/html/man7/EVP_PKEY-RSA.html" => [ "doc/man7/EVP_PKEY-RSA.pod" ], + "doc/html/man7/EVP_PKEY-SLH-DSA.html" => [ + "doc/man7/EVP_PKEY-SLH-DSA.pod" + ], "doc/html/man7/EVP_PKEY-SM2.html" => [ "doc/man7/EVP_PKEY-SM2.pod" ], "doc/html/man7/EVP_PKEY-X25519.html" => [ "doc/man7/EVP_PKEY-X25519.pod" ], + "doc/html/man7/EVP_RAND-CRNG-TEST.html" => [ + "doc/man7/EVP_RAND-CRNG-TEST.pod" + ], "doc/html/man7/EVP_RAND-CTR-DRBG.html" => [ "doc/man7/EVP_RAND-CTR-DRBG.pod" ], @@ -13128,6 +15288,9 @@ our %unified_info = ( "doc/html/man7/EVP_RAND-HMAC-DRBG.html" => [ "doc/man7/EVP_RAND-HMAC-DRBG.pod" ], + "doc/html/man7/EVP_RAND-JITTER.html" => [ + "doc/man7/EVP_RAND-JITTER.pod" + ], "doc/html/man7/EVP_RAND-SEED-SRC.html" => [ "doc/man7/EVP_RAND-SEED-SRC.pod" ], @@ -13149,9 +15312,15 @@ our %unified_info = ( "doc/html/man7/EVP_SIGNATURE-HMAC.html" => [ "doc/man7/EVP_SIGNATURE-HMAC.pod" ], + "doc/html/man7/EVP_SIGNATURE-ML-DSA.html" => [ + "doc/man7/EVP_SIGNATURE-ML-DSA.pod" + ], "doc/html/man7/EVP_SIGNATURE-RSA.html" => [ "doc/man7/EVP_SIGNATURE-RSA.pod" ], + "doc/html/man7/EVP_SIGNATURE-SLH-DSA.html" => [ + "doc/man7/EVP_SIGNATURE-SLH-DSA.pod" + ], "doc/html/man7/OSSL_PROVIDER-FIPS.html" => [ "doc/man7/OSSL_PROVIDER-FIPS.pod" ], @@ -13167,6 +15336,9 @@ our %unified_info = ( "doc/html/man7/OSSL_PROVIDER-null.html" => [ "doc/man7/OSSL_PROVIDER-null.pod" ], + "doc/html/man7/OSSL_STORE-winstore.html" => [ + "doc/man7/OSSL_STORE-winstore.pod" + ], "doc/html/man7/RAND.html" => [ "doc/man7/RAND.pod" ], @@ -13179,9 +15351,6 @@ our %unified_info = ( "doc/html/man7/bio.html" => [ "doc/man7/bio.pod" ], - "doc/html/man7/crypto.html" => [ - "doc/man7/crypto.pod" - ], "doc/html/man7/ct.html" => [ "doc/man7/ct.pod" ], @@ -13212,9 +15381,6 @@ our %unified_info = ( "doc/html/man7/life_cycle-rand.html" => [ "doc/man7/life_cycle-rand.pod" ], - "doc/html/man7/migration_guide.html" => [ - "doc/man7/migration_guide.pod" - ], "doc/html/man7/openssl-core.h.html" => [ "doc/man7/openssl-core.h.pod" ], @@ -13230,12 +15396,66 @@ our %unified_info = ( "doc/html/man7/openssl-glossary.html" => [ "doc/man7/openssl-glossary.pod" ], + "doc/html/man7/openssl-qlog.html" => [ + "doc/man7/openssl-qlog.pod" + ], + "doc/html/man7/openssl-quic-concurrency.html" => [ + "doc/man7/openssl-quic-concurrency.pod" + ], + "doc/html/man7/openssl-quic.html" => [ + "doc/man7/openssl-quic.pod" + ], "doc/html/man7/openssl-threads.html" => [ "doc/man7/openssl-threads.pod" ], "doc/html/man7/openssl_user_macros.html" => [ "doc/man7/openssl_user_macros.pod" ], + "doc/html/man7/ossl-guide-introduction.html" => [ + "doc/man7/ossl-guide-introduction.pod" + ], + "doc/html/man7/ossl-guide-libcrypto-introduction.html" => [ + "doc/man7/ossl-guide-libcrypto-introduction.pod" + ], + "doc/html/man7/ossl-guide-libraries-introduction.html" => [ + "doc/man7/ossl-guide-libraries-introduction.pod" + ], + "doc/html/man7/ossl-guide-libssl-introduction.html" => [ + "doc/man7/ossl-guide-libssl-introduction.pod" + ], + "doc/html/man7/ossl-guide-migration.html" => [ + "doc/man7/ossl-guide-migration.pod" + ], + "doc/html/man7/ossl-guide-quic-client-block.html" => [ + "doc/man7/ossl-guide-quic-client-block.pod" + ], + "doc/html/man7/ossl-guide-quic-client-non-block.html" => [ + "doc/man7/ossl-guide-quic-client-non-block.pod" + ], + "doc/html/man7/ossl-guide-quic-introduction.html" => [ + "doc/man7/ossl-guide-quic-introduction.pod" + ], + "doc/html/man7/ossl-guide-quic-multi-stream.html" => [ + "doc/man7/ossl-guide-quic-multi-stream.pod" + ], + "doc/html/man7/ossl-guide-quic-server-block.html" => [ + "doc/man7/ossl-guide-quic-server-block.pod" + ], + "doc/html/man7/ossl-guide-quic-server-non-block.html" => [ + "doc/man7/ossl-guide-quic-server-non-block.pod" + ], + "doc/html/man7/ossl-guide-tls-client-block.html" => [ + "doc/man7/ossl-guide-tls-client-block.pod" + ], + "doc/html/man7/ossl-guide-tls-client-non-block.html" => [ + "doc/man7/ossl-guide-tls-client-non-block.pod" + ], + "doc/html/man7/ossl-guide-tls-introduction.html" => [ + "doc/man7/ossl-guide-tls-introduction.pod" + ], + "doc/html/man7/ossl-guide-tls-server-block.html" => [ + "doc/man7/ossl-guide-tls-server-block.pod" + ], "doc/html/man7/ossl_store-file.html" => [ "doc/man7/ossl_store-file.pod" ], @@ -13290,6 +15510,9 @@ our %unified_info = ( "doc/html/man7/provider-signature.html" => [ "doc/man7/provider-signature.pod" ], + "doc/html/man7/provider-skeymgmt.html" => [ + "doc/man7/provider-skeymgmt.pod" + ], "doc/html/man7/provider-storemgmt.html" => [ "doc/man7/provider-storemgmt.pod" ], @@ -13299,9 +15522,6 @@ our %unified_info = ( "doc/html/man7/proxy-certificates.html" => [ "doc/man7/proxy-certificates.pod" ], - "doc/html/man7/ssl.html" => [ - "doc/man7/ssl.pod" - ], "doc/html/man7/x509.html" => [ "doc/man7/x509.pod" ], @@ -13449,6 +15669,9 @@ our %unified_info = ( "doc/man/man1/openssl-sess_id.1" => [ "doc/man1/openssl-sess_id.pod" ], + "doc/man/man1/openssl-skeyutl.1" => [ + "doc/man1/openssl-skeyutl.pod" + ], "doc/man/man1/openssl-smime.1" => [ "doc/man1/openssl-smime.pod" ], @@ -13590,6 +15813,9 @@ our %unified_info = ( "doc/man/man3/BIO_get_ex_new_index.3" => [ "doc/man3/BIO_get_ex_new_index.pod" ], + "doc/man/man3/BIO_get_rpoll_descriptor.3" => [ + "doc/man3/BIO_get_rpoll_descriptor.pod" + ], "doc/man/man3/BIO_meth_new.3" => [ "doc/man3/BIO_meth_new.pod" ], @@ -13626,6 +15852,9 @@ our %unified_info = ( "doc/man/man3/BIO_s_datagram.3" => [ "doc/man3/BIO_s_datagram.pod" ], + "doc/man/man3/BIO_s_dgram_pair.3" => [ + "doc/man3/BIO_s_dgram_pair.pod" + ], "doc/man/man3/BIO_s_fd.3" => [ "doc/man3/BIO_s_fd.pod" ], @@ -13641,6 +15870,9 @@ our %unified_info = ( "doc/man/man3/BIO_s_socket.3" => [ "doc/man3/BIO_s_socket.pod" ], + "doc/man/man3/BIO_sendmmsg.3" => [ + "doc/man3/BIO_sendmmsg.pod" + ], "doc/man/man3/BIO_set_callback.3" => [ "doc/man3/BIO_set_callback.pod" ], @@ -13713,6 +15945,9 @@ our %unified_info = ( "doc/man/man3/BUF_MEM_new.3" => [ "doc/man3/BUF_MEM_new.pod" ], + "doc/man/man3/CMAC_CTX.3" => [ + "doc/man3/CMAC_CTX.pod" + ], "doc/man/man3/CMS_EncryptedData_decrypt.3" => [ "doc/man3/CMS_EncryptedData_decrypt.pod" ], @@ -13779,6 +16014,9 @@ our %unified_info = ( "doc/man/man3/CMS_verify_receipt.3" => [ "doc/man3/CMS_verify_receipt.pod" ], + "doc/man/man3/COMP_CTX_new.3" => [ + "doc/man3/COMP_CTX_new.pod" + ], "doc/man/man3/CONF_modules_free.3" => [ "doc/man3/CONF_modules_free.pod" ], @@ -13878,6 +16116,12 @@ our %unified_info = ( "doc/man/man3/DTLS_set_timer_cb.3" => [ "doc/man3/DTLS_set_timer_cb.pod" ], + "doc/man/man3/DTLSv1_get_timeout.3" => [ + "doc/man3/DTLSv1_get_timeout.pod" + ], + "doc/man/man3/DTLSv1_handle_timeout.3" => [ + "doc/man3/DTLSv1_handle_timeout.pod" + ], "doc/man/man3/DTLSv1_listen.3" => [ "doc/man3/DTLSv1_listen.pod" ], @@ -14016,6 +16260,9 @@ our %unified_info = ( "doc/man/man3/EVP_PKEY_CTX_get0_pkey.3" => [ "doc/man3/EVP_PKEY_CTX_get0_pkey.pod" ], + "doc/man/man3/EVP_PKEY_CTX_get_algor.3" => [ + "doc/man3/EVP_PKEY_CTX_get_algor.pod" + ], "doc/man/man3/EVP_PKEY_CTX_new.3" => [ "doc/man3/EVP_PKEY_CTX_new.pod" ], @@ -14133,6 +16380,12 @@ our %unified_info = ( "doc/man/man3/EVP_SIGNATURE.3" => [ "doc/man3/EVP_SIGNATURE.pod" ], + "doc/man/man3/EVP_SKEY.3" => [ + "doc/man3/EVP_SKEY.pod" + ], + "doc/man/man3/EVP_SKEYMGMT.3" => [ + "doc/man3/EVP_SKEYMGMT.pod" + ], "doc/man/man3/EVP_SealInit.3" => [ "doc/man3/EVP_SealInit.pod" ], @@ -14220,6 +16473,9 @@ our %unified_info = ( "doc/man/man3/EVP_whirlpool.3" => [ "doc/man3/EVP_whirlpool.pod" ], + "doc/man/man3/GENERAL_NAME.3" => [ + "doc/man3/GENERAL_NAME.pod" + ], "doc/man/man3/HMAC.3" => [ "doc/man3/HMAC.pod" ], @@ -14292,9 +16548,15 @@ our %unified_info = ( "doc/man/man3/OPENSSL_load_builtin_modules.3" => [ "doc/man3/OPENSSL_load_builtin_modules.pod" ], + "doc/man/man3/OPENSSL_load_u16_le.3" => [ + "doc/man3/OPENSSL_load_u16_le.pod" + ], "doc/man/man3/OPENSSL_malloc.3" => [ "doc/man3/OPENSSL_malloc.pod" ], + "doc/man/man3/OPENSSL_riscvcap.3" => [ + "doc/man3/OPENSSL_riscvcap.pod" + ], "doc/man/man3/OPENSSL_s390xcap.3" => [ "doc/man3/OPENSSL_s390xcap.pod" ], @@ -14310,12 +16572,18 @@ our %unified_info = ( "doc/man/man3/OSSL_CALLBACK.3" => [ "doc/man3/OSSL_CALLBACK.pod" ], + "doc/man/man3/OSSL_CMP_ATAV_set0.3" => [ + "doc/man3/OSSL_CMP_ATAV_set0.pod" + ], "doc/man/man3/OSSL_CMP_CTX_new.3" => [ "doc/man3/OSSL_CMP_CTX_new.pod" ], "doc/man/man3/OSSL_CMP_HDR_get0_transactionID.3" => [ "doc/man3/OSSL_CMP_HDR_get0_transactionID.pod" ], + "doc/man/man3/OSSL_CMP_ITAV_new_caCerts.3" => [ + "doc/man3/OSSL_CMP_ITAV_new_caCerts.pod" + ], "doc/man/man3/OSSL_CMP_ITAV_set0.3" => [ "doc/man3/OSSL_CMP_ITAV_set0.pod" ], @@ -14385,9 +16653,18 @@ our %unified_info = ( "doc/man/man3/OSSL_ENCODER_to_bio.3" => [ "doc/man3/OSSL_ENCODER_to_bio.pod" ], + "doc/man/man3/OSSL_ERR_STATE_save.3" => [ + "doc/man3/OSSL_ERR_STATE_save.pod" + ], "doc/man/man3/OSSL_ESS_check_signing_certs.3" => [ "doc/man3/OSSL_ESS_check_signing_certs.pod" ], + "doc/man/man3/OSSL_GENERAL_NAMES_print.3" => [ + "doc/man3/OSSL_GENERAL_NAMES_print.pod" + ], + "doc/man/man3/OSSL_HPKE_CTX_new.3" => [ + "doc/man3/OSSL_HPKE_CTX_new.pod" + ], "doc/man/man3/OSSL_HTTP_REQ_CTX.3" => [ "doc/man3/OSSL_HTTP_REQ_CTX.pod" ], @@ -14397,12 +16674,24 @@ our %unified_info = ( "doc/man/man3/OSSL_HTTP_transfer.3" => [ "doc/man3/OSSL_HTTP_transfer.pod" ], + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX.3" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX.pod" + ], + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX_print.3" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX_print.pod" + ], + "doc/man/man3/OSSL_INDICATOR_set_callback.3" => [ + "doc/man3/OSSL_INDICATOR_set_callback.pod" + ], "doc/man/man3/OSSL_ITEM.3" => [ "doc/man3/OSSL_ITEM.pod" ], "doc/man/man3/OSSL_LIB_CTX.3" => [ "doc/man3/OSSL_LIB_CTX.pod" ], + "doc/man/man3/OSSL_LIB_CTX_set_conf_diagnostics.3" => [ + "doc/man3/OSSL_LIB_CTX_set_conf_diagnostics.pod" + ], "doc/man/man3/OSSL_PARAM.3" => [ "doc/man3/OSSL_PARAM.pod" ], @@ -14418,9 +16707,15 @@ our %unified_info = ( "doc/man/man3/OSSL_PARAM_int.3" => [ "doc/man3/OSSL_PARAM_int.pod" ], + "doc/man/man3/OSSL_PARAM_print_to_bio.3" => [ + "doc/man3/OSSL_PARAM_print_to_bio.pod" + ], "doc/man/man3/OSSL_PROVIDER.3" => [ "doc/man3/OSSL_PROVIDER.pod" ], + "doc/man/man3/OSSL_QUIC_client_method.3" => [ + "doc/man3/OSSL_QUIC_client_method.pod" + ], "doc/man/man3/OSSL_SELF_TEST_new.3" => [ "doc/man3/OSSL_SELF_TEST_new.pod" ], @@ -14445,6 +16740,9 @@ our %unified_info = ( "doc/man/man3/OSSL_STORE_open.3" => [ "doc/man3/OSSL_STORE_open.pod" ], + "doc/man/man3/OSSL_sleep.3" => [ + "doc/man3/OSSL_sleep.pod" + ], "doc/man/man3/OSSL_trace_enabled.3" => [ "doc/man3/OSSL_trace_enabled.pod" ], @@ -14460,6 +16758,9 @@ our %unified_info = ( "doc/man/man3/OpenSSL_version.3" => [ "doc/man3/OpenSSL_version.pod" ], + "doc/man/man3/PBMAC1_get1_pbkdf2_param.3" => [ + "doc/man3/PBMAC1_get1_pbkdf2_param.pod" + ], "doc/man/man3/PEM_X509_INFO_read_bio_ex.3" => [ "doc/man3/PEM_X509_INFO_read_bio_ex.pod" ], @@ -14496,6 +16797,9 @@ our %unified_info = ( "doc/man/man3/PKCS12_SAFEBAG_get1_cert.3" => [ "doc/man3/PKCS12_SAFEBAG_get1_cert.pod" ], + "doc/man/man3/PKCS12_SAFEBAG_set0_attrs.3" => [ + "doc/man3/PKCS12_SAFEBAG_set0_attrs.pod" + ], "doc/man/man3/PKCS12_add1_attr_by_NID.3" => [ "doc/man3/PKCS12_add1_attr_by_NID.pod" ], @@ -14769,6 +17073,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set0_CA_list.3" => [ "doc/man3/SSL_CTX_set0_CA_list.pod" ], + "doc/man/man3/SSL_CTX_set1_cert_comp_preference.3" => [ + "doc/man3/SSL_CTX_set1_cert_comp_preference.pod" + ], "doc/man/man3/SSL_CTX_set1_curves.3" => [ "doc/man3/SSL_CTX_set1_curves.pod" ], @@ -14808,6 +17115,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_default_passwd_cb.3" => [ "doc/man3/SSL_CTX_set_default_passwd_cb.pod" ], + "doc/man/man3/SSL_CTX_set_domain_flags.3" => [ + "doc/man3/SSL_CTX_set_domain_flags.pod" + ], "doc/man/man3/SSL_CTX_set_generate_session_id.3" => [ "doc/man3/SSL_CTX_set_generate_session_id.pod" ], @@ -14829,6 +17139,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_msg_callback.3" => [ "doc/man3/SSL_CTX_set_msg_callback.pod" ], + "doc/man/man3/SSL_CTX_set_new_pending_conn_cb.3" => [ + "doc/man3/SSL_CTX_set_new_pending_conn_cb.pod" + ], "doc/man/man3/SSL_CTX_set_num_tickets.3" => [ "doc/man3/SSL_CTX_set_num_tickets.pod" ], @@ -14943,6 +17256,9 @@ our %unified_info = ( "doc/man/man3/SSL_accept.3" => [ "doc/man3/SSL_accept.pod" ], + "doc/man/man3/SSL_accept_stream.3" => [ + "doc/man3/SSL_accept_stream.pod" + ], "doc/man/man3/SSL_alert_type_string.3" => [ "doc/man3/SSL_alert_type_string.pod" ], @@ -14970,9 +17286,21 @@ our %unified_info = ( "doc/man/man3/SSL_free.3" => [ "doc/man3/SSL_free.pod" ], + "doc/man/man3/SSL_get0_connection.3" => [ + "doc/man3/SSL_get0_connection.pod" + ], + "doc/man/man3/SSL_get0_group_name.3" => [ + "doc/man3/SSL_get0_group_name.pod" + ], + "doc/man/man3/SSL_get0_peer_rpk.3" => [ + "doc/man3/SSL_get0_peer_rpk.pod" + ], "doc/man/man3/SSL_get0_peer_scts.3" => [ "doc/man3/SSL_get0_peer_scts.pod" ], + "doc/man/man3/SSL_get1_builtin_sigalgs.3" => [ + "doc/man3/SSL_get1_builtin_sigalgs.pod" + ], "doc/man/man3/SSL_get_SSL_CTX.3" => [ "doc/man3/SSL_get_SSL_CTX.pod" ], @@ -14988,6 +17316,9 @@ our %unified_info = ( "doc/man/man3/SSL_get_client_random.3" => [ "doc/man3/SSL_get_client_random.pod" ], + "doc/man/man3/SSL_get_conn_close_info.3" => [ + "doc/man3/SSL_get_conn_close_info.pod" + ], "doc/man/man3/SSL_get_current_cipher.3" => [ "doc/man3/SSL_get_current_cipher.pod" ], @@ -14997,12 +17328,18 @@ our %unified_info = ( "doc/man/man3/SSL_get_error.3" => [ "doc/man3/SSL_get_error.pod" ], + "doc/man/man3/SSL_get_event_timeout.3" => [ + "doc/man3/SSL_get_event_timeout.pod" + ], "doc/man/man3/SSL_get_extms_support.3" => [ "doc/man3/SSL_get_extms_support.pod" ], "doc/man/man3/SSL_get_fd.3" => [ "doc/man3/SSL_get_fd.pod" ], + "doc/man/man3/SSL_get_handshake_rtt.3" => [ + "doc/man3/SSL_get_handshake_rtt.pod" + ], "doc/man/man3/SSL_get_peer_cert_chain.3" => [ "doc/man3/SSL_get_peer_cert_chain.pod" ], @@ -15021,11 +17358,23 @@ our %unified_info = ( "doc/man/man3/SSL_get_rbio.3" => [ "doc/man3/SSL_get_rbio.pod" ], + "doc/man/man3/SSL_get_rpoll_descriptor.3" => [ + "doc/man3/SSL_get_rpoll_descriptor.pod" + ], "doc/man/man3/SSL_get_session.3" => [ "doc/man3/SSL_get_session.pod" ], - "doc/man/man3/SSL_get_shared_sigalgs.3" => [ - "doc/man3/SSL_get_shared_sigalgs.pod" + "doc/man/man3/SSL_get_shared_sigalgs.3" => [ + "doc/man3/SSL_get_shared_sigalgs.pod" + ], + "doc/man/man3/SSL_get_stream_id.3" => [ + "doc/man3/SSL_get_stream_id.pod" + ], + "doc/man/man3/SSL_get_stream_read_state.3" => [ + "doc/man3/SSL_get_stream_read_state.pod" + ], + "doc/man/man3/SSL_get_value_uint.3" => [ + "doc/man3/SSL_get_value_uint.pod" ], "doc/man/man3/SSL_get_verify_result.3" => [ "doc/man3/SSL_get_verify_result.pod" @@ -15036,9 +17385,15 @@ our %unified_info = ( "doc/man/man3/SSL_group_to_name.3" => [ "doc/man3/SSL_group_to_name.pod" ], + "doc/man/man3/SSL_handle_events.3" => [ + "doc/man3/SSL_handle_events.pod" + ], "doc/man/man3/SSL_in_init.3" => [ "doc/man3/SSL_in_init.pod" ], + "doc/man/man3/SSL_inject_net_dgram.3" => [ + "doc/man3/SSL_inject_net_dgram.pod" + ], "doc/man/man3/SSL_key_update.3" => [ "doc/man3/SSL_key_update.pod" ], @@ -15051,9 +17406,21 @@ our %unified_info = ( "doc/man/man3/SSL_new.3" => [ "doc/man3/SSL_new.pod" ], + "doc/man/man3/SSL_new_domain.3" => [ + "doc/man3/SSL_new_domain.pod" + ], + "doc/man/man3/SSL_new_listener.3" => [ + "doc/man3/SSL_new_listener.pod" + ], + "doc/man/man3/SSL_new_stream.3" => [ + "doc/man3/SSL_new_stream.pod" + ], "doc/man/man3/SSL_pending.3" => [ "doc/man3/SSL_pending.pod" ], + "doc/man/man3/SSL_poll.3" => [ + "doc/man3/SSL_poll.pod" + ], "doc/man/man3/SSL_read.3" => [ "doc/man3/SSL_read.pod" ], @@ -15069,24 +17436,45 @@ our %unified_info = ( "doc/man/man3/SSL_set1_host.3" => [ "doc/man3/SSL_set1_host.pod" ], + "doc/man/man3/SSL_set1_initial_peer_addr.3" => [ + "doc/man3/SSL_set1_initial_peer_addr.pod" + ], + "doc/man/man3/SSL_set1_server_cert_type.3" => [ + "doc/man3/SSL_set1_server_cert_type.pod" + ], "doc/man/man3/SSL_set_async_callback.3" => [ "doc/man3/SSL_set_async_callback.pod" ], "doc/man/man3/SSL_set_bio.3" => [ "doc/man3/SSL_set_bio.pod" ], + "doc/man/man3/SSL_set_blocking_mode.3" => [ + "doc/man3/SSL_set_blocking_mode.pod" + ], "doc/man/man3/SSL_set_connect_state.3" => [ "doc/man3/SSL_set_connect_state.pod" ], + "doc/man/man3/SSL_set_default_stream_mode.3" => [ + "doc/man3/SSL_set_default_stream_mode.pod" + ], "doc/man/man3/SSL_set_fd.3" => [ "doc/man3/SSL_set_fd.pod" ], + "doc/man/man3/SSL_set_incoming_stream_policy.3" => [ + "doc/man3/SSL_set_incoming_stream_policy.pod" + ], + "doc/man/man3/SSL_set_quic_tls_cbs.3" => [ + "doc/man3/SSL_set_quic_tls_cbs.pod" + ], "doc/man/man3/SSL_set_retry_verify.3" => [ "doc/man3/SSL_set_retry_verify.pod" ], "doc/man/man3/SSL_set_session.3" => [ "doc/man3/SSL_set_session.pod" ], + "doc/man/man3/SSL_set_session_secret_cb.3" => [ + "doc/man3/SSL_set_session_secret_cb.pod" + ], "doc/man/man3/SSL_set_shutdown.3" => [ "doc/man3/SSL_set_shutdown.pod" ], @@ -15099,6 +17487,12 @@ our %unified_info = ( "doc/man/man3/SSL_state_string.3" => [ "doc/man3/SSL_state_string.pod" ], + "doc/man/man3/SSL_stream_conclude.3" => [ + "doc/man3/SSL_stream_conclude.pod" + ], + "doc/man/man3/SSL_stream_reset.3" => [ + "doc/man3/SSL_stream_reset.pod" + ], "doc/man/man3/SSL_want.3" => [ "doc/man3/SSL_want.pod" ], @@ -15108,8 +17502,8 @@ our %unified_info = ( "doc/man/man3/TS_RESP_CTX_new.3" => [ "doc/man3/TS_RESP_CTX_new.pod" ], - "doc/man/man3/TS_VERIFY_CTX_set_certs.3" => [ - "doc/man3/TS_VERIFY_CTX_set_certs.pod" + "doc/man/man3/TS_VERIFY_CTX.3" => [ + "doc/man3/TS_VERIFY_CTX.pod" ], "doc/man/man3/UI_STRING.3" => [ "doc/man3/UI_STRING.pod" @@ -15129,6 +17523,21 @@ our %unified_info = ( "doc/man/man3/X509V3_set_ctx.3" => [ "doc/man3/X509V3_set_ctx.pod" ], + "doc/man/man3/X509_ACERT_add1_attr.3" => [ + "doc/man3/X509_ACERT_add1_attr.pod" + ], + "doc/man/man3/X509_ACERT_add_attr_nconf.3" => [ + "doc/man3/X509_ACERT_add_attr_nconf.pod" + ], + "doc/man/man3/X509_ACERT_get0_holder_baseCertId.3" => [ + "doc/man3/X509_ACERT_get0_holder_baseCertId.pod" + ], + "doc/man/man3/X509_ACERT_get_attr.3" => [ + "doc/man3/X509_ACERT_get_attr.pod" + ], + "doc/man/man3/X509_ACERT_print_ex.3" => [ + "doc/man3/X509_ACERT_print_ex.pod" + ], "doc/man/man3/X509_ALGOR_dup.3" => [ "doc/man3/X509_ALGOR_dup.pod" ], @@ -15177,6 +17586,9 @@ our %unified_info = ( "doc/man/man3/X509_SIG_get0.3" => [ "doc/man3/X509_SIG_get0.pod" ], + "doc/man/man3/X509_STORE_CTX_get_by_subject.3" => [ + "doc/man3/X509_STORE_CTX_get_by_subject.pod" + ], "doc/man/man3/X509_STORE_CTX_get_error.3" => [ "doc/man3/X509_STORE_CTX_get_error.pod" ], @@ -15243,6 +17655,9 @@ our %unified_info = ( "doc/man/man3/X509_get0_uids.3" => [ "doc/man3/X509_get0_uids.pod" ], + "doc/man/man3/X509_get_default_cert_file.3" => [ + "doc/man3/X509_get_default_cert_file.pod" + ], "doc/man/man3/X509_get_extension_flags.3" => [ "doc/man3/X509_get_extension_flags.pod" ], @@ -15366,9 +17781,15 @@ our %unified_info = ( "doc/man/man7/EVP_CIPHER-SM4.7" => [ "doc/man7/EVP_CIPHER-SM4.pod" ], + "doc/man/man7/EVP_KDF-ARGON2.7" => [ + "doc/man7/EVP_KDF-ARGON2.pod" + ], "doc/man/man7/EVP_KDF-HKDF.7" => [ "doc/man7/EVP_KDF-HKDF.pod" ], + "doc/man/man7/EVP_KDF-HMAC-DRBG.7" => [ + "doc/man7/EVP_KDF-HMAC-DRBG.pod" + ], "doc/man/man7/EVP_KDF-KB.7" => [ "doc/man7/EVP_KDF-KB.pod" ], @@ -15384,6 +17805,9 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-PKCS12KDF.7" => [ "doc/man7/EVP_KDF-PKCS12KDF.pod" ], + "doc/man/man7/EVP_KDF-PVKKDF.7" => [ + "doc/man7/EVP_KDF-PVKKDF.pod" + ], "doc/man/man7/EVP_KDF-SCRYPT.7" => [ "doc/man7/EVP_KDF-SCRYPT.pod" ], @@ -15408,9 +17832,18 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-X963.7" => [ "doc/man7/EVP_KDF-X963.pod" ], + "doc/man/man7/EVP_KEM-EC.7" => [ + "doc/man7/EVP_KEM-EC.pod" + ], + "doc/man/man7/EVP_KEM-ML-KEM.7" => [ + "doc/man7/EVP_KEM-ML-KEM.pod" + ], "doc/man/man7/EVP_KEM-RSA.7" => [ "doc/man7/EVP_KEM-RSA.pod" ], + "doc/man/man7/EVP_KEM-X25519.7" => [ + "doc/man7/EVP_KEM-X25519.pod" + ], "doc/man/man7/EVP_KEYEXCH-DH.7" => [ "doc/man7/EVP_KEYEXCH-DH.pod" ], @@ -15444,6 +17877,9 @@ our %unified_info = ( "doc/man/man7/EVP_MD-BLAKE2.7" => [ "doc/man7/EVP_MD-BLAKE2.pod" ], + "doc/man/man7/EVP_MD-KECCAK.7" => [ + "doc/man7/EVP_MD-KECCAK.pod" + ], "doc/man/man7/EVP_MD-MD2.7" => [ "doc/man7/EVP_MD-MD2.pod" ], @@ -15501,15 +17937,27 @@ our %unified_info = ( "doc/man/man7/EVP_PKEY-HMAC.7" => [ "doc/man7/EVP_PKEY-HMAC.pod" ], + "doc/man/man7/EVP_PKEY-ML-DSA.7" => [ + "doc/man7/EVP_PKEY-ML-DSA.pod" + ], + "doc/man/man7/EVP_PKEY-ML-KEM.7" => [ + "doc/man7/EVP_PKEY-ML-KEM.pod" + ], "doc/man/man7/EVP_PKEY-RSA.7" => [ "doc/man7/EVP_PKEY-RSA.pod" ], + "doc/man/man7/EVP_PKEY-SLH-DSA.7" => [ + "doc/man7/EVP_PKEY-SLH-DSA.pod" + ], "doc/man/man7/EVP_PKEY-SM2.7" => [ "doc/man7/EVP_PKEY-SM2.pod" ], "doc/man/man7/EVP_PKEY-X25519.7" => [ "doc/man7/EVP_PKEY-X25519.pod" ], + "doc/man/man7/EVP_RAND-CRNG-TEST.7" => [ + "doc/man7/EVP_RAND-CRNG-TEST.pod" + ], "doc/man/man7/EVP_RAND-CTR-DRBG.7" => [ "doc/man7/EVP_RAND-CTR-DRBG.pod" ], @@ -15519,6 +17967,9 @@ our %unified_info = ( "doc/man/man7/EVP_RAND-HMAC-DRBG.7" => [ "doc/man7/EVP_RAND-HMAC-DRBG.pod" ], + "doc/man/man7/EVP_RAND-JITTER.7" => [ + "doc/man7/EVP_RAND-JITTER.pod" + ], "doc/man/man7/EVP_RAND-SEED-SRC.7" => [ "doc/man7/EVP_RAND-SEED-SRC.pod" ], @@ -15540,9 +17991,15 @@ our %unified_info = ( "doc/man/man7/EVP_SIGNATURE-HMAC.7" => [ "doc/man7/EVP_SIGNATURE-HMAC.pod" ], + "doc/man/man7/EVP_SIGNATURE-ML-DSA.7" => [ + "doc/man7/EVP_SIGNATURE-ML-DSA.pod" + ], "doc/man/man7/EVP_SIGNATURE-RSA.7" => [ "doc/man7/EVP_SIGNATURE-RSA.pod" ], + "doc/man/man7/EVP_SIGNATURE-SLH-DSA.7" => [ + "doc/man7/EVP_SIGNATURE-SLH-DSA.pod" + ], "doc/man/man7/OSSL_PROVIDER-FIPS.7" => [ "doc/man7/OSSL_PROVIDER-FIPS.pod" ], @@ -15558,6 +18015,9 @@ our %unified_info = ( "doc/man/man7/OSSL_PROVIDER-null.7" => [ "doc/man7/OSSL_PROVIDER-null.pod" ], + "doc/man/man7/OSSL_STORE-winstore.7" => [ + "doc/man7/OSSL_STORE-winstore.pod" + ], "doc/man/man7/RAND.7" => [ "doc/man7/RAND.pod" ], @@ -15570,9 +18030,6 @@ our %unified_info = ( "doc/man/man7/bio.7" => [ "doc/man7/bio.pod" ], - "doc/man/man7/crypto.7" => [ - "doc/man7/crypto.pod" - ], "doc/man/man7/ct.7" => [ "doc/man7/ct.pod" ], @@ -15603,9 +18060,6 @@ our %unified_info = ( "doc/man/man7/life_cycle-rand.7" => [ "doc/man7/life_cycle-rand.pod" ], - "doc/man/man7/migration_guide.7" => [ - "doc/man7/migration_guide.pod" - ], "doc/man/man7/openssl-core.h.7" => [ "doc/man7/openssl-core.h.pod" ], @@ -15621,12 +18075,66 @@ our %unified_info = ( "doc/man/man7/openssl-glossary.7" => [ "doc/man7/openssl-glossary.pod" ], + "doc/man/man7/openssl-qlog.7" => [ + "doc/man7/openssl-qlog.pod" + ], + "doc/man/man7/openssl-quic-concurrency.7" => [ + "doc/man7/openssl-quic-concurrency.pod" + ], + "doc/man/man7/openssl-quic.7" => [ + "doc/man7/openssl-quic.pod" + ], "doc/man/man7/openssl-threads.7" => [ "doc/man7/openssl-threads.pod" ], "doc/man/man7/openssl_user_macros.7" => [ "doc/man7/openssl_user_macros.pod" ], + "doc/man/man7/ossl-guide-introduction.7" => [ + "doc/man7/ossl-guide-introduction.pod" + ], + "doc/man/man7/ossl-guide-libcrypto-introduction.7" => [ + "doc/man7/ossl-guide-libcrypto-introduction.pod" + ], + "doc/man/man7/ossl-guide-libraries-introduction.7" => [ + "doc/man7/ossl-guide-libraries-introduction.pod" + ], + "doc/man/man7/ossl-guide-libssl-introduction.7" => [ + "doc/man7/ossl-guide-libssl-introduction.pod" + ], + "doc/man/man7/ossl-guide-migration.7" => [ + "doc/man7/ossl-guide-migration.pod" + ], + "doc/man/man7/ossl-guide-quic-client-block.7" => [ + "doc/man7/ossl-guide-quic-client-block.pod" + ], + "doc/man/man7/ossl-guide-quic-client-non-block.7" => [ + "doc/man7/ossl-guide-quic-client-non-block.pod" + ], + "doc/man/man7/ossl-guide-quic-introduction.7" => [ + "doc/man7/ossl-guide-quic-introduction.pod" + ], + "doc/man/man7/ossl-guide-quic-multi-stream.7" => [ + "doc/man7/ossl-guide-quic-multi-stream.pod" + ], + "doc/man/man7/ossl-guide-quic-server-block.7" => [ + "doc/man7/ossl-guide-quic-server-block.pod" + ], + "doc/man/man7/ossl-guide-quic-server-non-block.7" => [ + "doc/man7/ossl-guide-quic-server-non-block.pod" + ], + "doc/man/man7/ossl-guide-tls-client-block.7" => [ + "doc/man7/ossl-guide-tls-client-block.pod" + ], + "doc/man/man7/ossl-guide-tls-client-non-block.7" => [ + "doc/man7/ossl-guide-tls-client-non-block.pod" + ], + "doc/man/man7/ossl-guide-tls-introduction.7" => [ + "doc/man7/ossl-guide-tls-introduction.pod" + ], + "doc/man/man7/ossl-guide-tls-server-block.7" => [ + "doc/man7/ossl-guide-tls-server-block.pod" + ], "doc/man/man7/ossl_store-file.7" => [ "doc/man7/ossl_store-file.pod" ], @@ -15681,6 +18189,9 @@ our %unified_info = ( "doc/man/man7/provider-signature.7" => [ "doc/man7/provider-signature.pod" ], + "doc/man/man7/provider-skeymgmt.7" => [ + "doc/man7/provider-skeymgmt.pod" + ], "doc/man/man7/provider-storemgmt.7" => [ "doc/man7/provider-storemgmt.pod" ], @@ -15690,9 +18201,6 @@ our %unified_info = ( "doc/man/man7/proxy-certificates.7" => [ "doc/man7/proxy-certificates.pod" ], - "doc/man/man7/ssl.7" => [ - "doc/man7/ssl.pod" - ], "doc/man/man7/x509.7" => [ "doc/man7/x509.pod" ], @@ -15828,6 +18336,9 @@ our %unified_info = ( "doc/man1/openssl-sess_id.pod" => [ "doc/man1/openssl-sess_id.pod.in" ], + "doc/man1/openssl-skeyutl.pod" => [ + "doc/man1/openssl-skeyutl.pod.in" + ], "doc/man1/openssl-smime.pod" => [ "doc/man1/openssl-smime.pod.in" ], @@ -15864,12 +18375,30 @@ our %unified_info = ( "engines/e_padlock-x86_64.s" => [ "engines/asm/e_padlock-x86_64.pl" ], + "exporters/OpenSSLConfig.cmake" => [ + "exporters/cmake/OpenSSLConfig.cmake.in" + ], + "exporters/OpenSSLConfigVersion.cmake" => [ + "exporters/cmake/OpenSSLConfigVersion.cmake.in" + ], + "exporters/libcrypto.pc" => [ + "exporters/pkg-config/libcrypto.pc.in" + ], + "exporters/libssl.pc" => [ + "exporters/pkg-config/libssl.pc.in" + ], + "exporters/openssl.pc" => [ + "exporters/pkg-config/openssl.pc.in" + ], "include/crypto/bn_conf.h" => [ "include/crypto/bn_conf.h.in" ], "include/crypto/dso_conf.h" => [ "include/crypto/dso_conf.h.in" ], + "include/internal/param_names.h" => [ + "include/internal/param_names.h.in" + ], "include/openssl/asn1.h" => [ "include/openssl/asn1.h.in" ], @@ -15885,12 +18414,18 @@ our %unified_info = ( "include/openssl/cms.h" => [ "include/openssl/cms.h.in" ], + "include/openssl/comp.h" => [ + "include/openssl/comp.h.in" + ], "include/openssl/conf.h" => [ "include/openssl/conf.h.in" ], "include/openssl/configuration.h" => [ "include/openssl/configuration.h.in" ], + "include/openssl/core_names.h" => [ + "include/openssl/core_names.h.in" + ], "include/openssl/crmf.h" => [ "include/openssl/crmf.h.in" ], @@ -15939,20 +18474,47 @@ our %unified_info = ( "include/openssl/x509.h" => [ "include/openssl/x509.h.in" ], + "include/openssl/x509_acert.h" => [ + "include/openssl/x509_acert.h.in" + ], "include/openssl/x509_vfy.h" => [ "include/openssl/x509_vfy.h.in" ], "include/openssl/x509v3.h" => [ "include/openssl/x509v3.h.in" ], + "installdata.pm" => [ + "util/mkinstallvars.pl", + "\"PREFIX=\$(INSTALLTOP)\"", + "BINDIR=bin", + "\"LIBDIR=\$(LIBDIR)\"", + "\"libdir=\$(libdir)\"", + "INCLUDEDIR=include", + "APPLINKDIR=include/openssl", + "\"ENGINESDIR=\$(ENGINESDIR)\"", + "\"MODULESDIR=\$(MODULESDIR)\"", + "\"PKGCONFIGDIR=\$(PKGCONFIGDIR)\"", + "\"CMAKECONFIGDIR=\$(CMAKECONFIGDIR)\"", + "\"LDLIBS=\$(LIB_EX_LIBS)\"", + "\"VERSION=\$(VERSION)\"" + ], "libcrypto.ld" => [ "util/libcrypto.num", "libcrypto" ], + "libcrypto.pc" => [ + "exporters/pkg-config/libcrypto.pc.in" + ], "libssl.ld" => [ "util/libssl.num", "libssl" ], + "libssl.pc" => [ + "exporters/pkg-config/libssl.pc.in" + ], + "openssl.pc" => [ + "exporters/pkg-config/openssl.pc.in" + ], "providers/common/der/der_digests_gen.c" => [ "providers/common/der/der_digests_gen.c.in" ], @@ -15965,9 +18527,15 @@ our %unified_info = ( "providers/common/der/der_ecx_gen.c" => [ "providers/common/der/der_ecx_gen.c.in" ], + "providers/common/der/der_ml_dsa_gen.c" => [ + "providers/common/der/der_ml_dsa_gen.c.in" + ], "providers/common/der/der_rsa_gen.c" => [ "providers/common/der/der_rsa_gen.c.in" ], + "providers/common/der/der_slh_dsa_gen.c" => [ + "providers/common/der/der_slh_dsa_gen.c.in" + ], "providers/common/der/der_sm2_gen.c" => [ "providers/common/der/der_sm2_gen.c.in" ], @@ -15986,9 +18554,15 @@ our %unified_info = ( "providers/common/include/prov/der_ecx.h" => [ "providers/common/include/prov/der_ecx.h.in" ], + "providers/common/include/prov/der_ml_dsa.h" => [ + "providers/common/include/prov/der_ml_dsa.h.in" + ], "providers/common/include/prov/der_rsa.h" => [ "providers/common/include/prov/der_rsa.h.in" ], + "providers/common/include/prov/der_slh_dsa.h" => [ + "providers/common/include/prov/der_slh_dsa.h.in" + ], "providers/common/include/prov/der_sm2.h" => [ "providers/common/include/prov/der_sm2.h.in" ], @@ -16030,6 +18604,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "buffer" ], + "test/buildtest_byteorder.c" => [ + "test/generate_buildtest.pl", + "byteorder" + ], "test/buildtest_camellia.c" => [ "test/generate_buildtest.pl", "camellia" @@ -16062,10 +18640,6 @@ our %unified_info = ( "test/generate_buildtest.pl", "core_dispatch" ], - "test/buildtest_core_names.c" => [ - "test/generate_buildtest.pl", - "core_names" - ], "test/buildtest_core_object.c" => [ "test/generate_buildtest.pl", "core_object" @@ -16098,6 +18672,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "e_os2" ], + "test/buildtest_e_ostime.c" => [ + "test/generate_buildtest.pl", + "e_ostime" + ], "test/buildtest_ebcdic.c" => [ "test/generate_buildtest.pl", "ebcdic" @@ -16134,6 +18712,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "hmac" ], + "test/buildtest_hpke.c" => [ + "test/generate_buildtest.pl", + "hpke" + ], "test/buildtest_http.c" => [ "test/generate_buildtest.pl", "http" @@ -16142,6 +18724,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "idea" ], + "test/buildtest_indicator.c" => [ + "test/generate_buildtest.pl", + "indicator" + ], "test/buildtest_kdf.c" => [ "test/generate_buildtest.pl", "kdf" @@ -16162,6 +18748,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "mdc2" ], + "test/buildtest_ml_kem.c" => [ + "test/generate_buildtest.pl", + "ml_kem" + ], "test/buildtest_modes.c" => [ "test/generate_buildtest.pl", "modes" @@ -16202,6 +18792,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "provider" ], + "test/buildtest_quic.c" => [ + "test/generate_buildtest.pl", + "quic" + ], "test/buildtest_rand.c" => [ "test/generate_buildtest.pl", "rand" @@ -16258,6 +18852,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "symhacks" ], + "test/buildtest_thread.c" => [ + "test/generate_buildtest.pl", + "thread" + ], "test/buildtest_tls1.c" => [ "test/generate_buildtest.pl", "tls1" @@ -16338,6 +18936,7 @@ our %unified_info = ( "doc/html/man1/openssl-s_server.html", "doc/html/man1/openssl-s_time.html", "doc/html/man1/openssl-sess_id.html", + "doc/html/man1/openssl-skeyutl.html", "doc/html/man1/openssl-smime.html", "doc/html/man1/openssl-speed.html", "doc/html/man1/openssl-spkac.html", @@ -16387,6 +18986,7 @@ our %unified_info = ( "doc/html/man3/BIO_find_type.html", "doc/html/man3/BIO_get_data.html", "doc/html/man3/BIO_get_ex_new_index.html", + "doc/html/man3/BIO_get_rpoll_descriptor.html", "doc/html/man3/BIO_meth_new.html", "doc/html/man3/BIO_new.html", "doc/html/man3/BIO_new_CMS.html", @@ -16399,11 +18999,13 @@ our %unified_info = ( "doc/html/man3/BIO_s_connect.html", "doc/html/man3/BIO_s_core.html", "doc/html/man3/BIO_s_datagram.html", + "doc/html/man3/BIO_s_dgram_pair.html", "doc/html/man3/BIO_s_fd.html", "doc/html/man3/BIO_s_file.html", "doc/html/man3/BIO_s_mem.html", "doc/html/man3/BIO_s_null.html", "doc/html/man3/BIO_s_socket.html", + "doc/html/man3/BIO_sendmmsg.html", "doc/html/man3/BIO_set_callback.html", "doc/html/man3/BIO_should_retry.html", "doc/html/man3/BIO_socket_wait.html", @@ -16428,6 +19030,7 @@ our %unified_info = ( "doc/html/man3/BN_swap.html", "doc/html/man3/BN_zero.html", "doc/html/man3/BUF_MEM_new.html", + "doc/html/man3/CMAC_CTX.html", "doc/html/man3/CMS_EncryptedData_decrypt.html", "doc/html/man3/CMS_EncryptedData_encrypt.html", "doc/html/man3/CMS_EnvelopedData_create.html", @@ -16450,6 +19053,7 @@ our %unified_info = ( "doc/html/man3/CMS_uncompress.html", "doc/html/man3/CMS_verify.html", "doc/html/man3/CMS_verify_receipt.html", + "doc/html/man3/COMP_CTX_new.html", "doc/html/man3/CONF_modules_free.html", "doc/html/man3/CONF_modules_load_file.html", "doc/html/man3/CRYPTO_THREAD_run_once.html", @@ -16483,6 +19087,8 @@ our %unified_info = ( "doc/html/man3/DSA_size.html", "doc/html/man3/DTLS_get_data_mtu.html", "doc/html/man3/DTLS_set_timer_cb.html", + "doc/html/man3/DTLSv1_get_timeout.html", + "doc/html/man3/DTLSv1_handle_timeout.html", "doc/html/man3/DTLSv1_listen.html", "doc/html/man3/ECDSA_SIG_new.html", "doc/html/man3/ECDSA_sign.html", @@ -16529,6 +19135,7 @@ our %unified_info = ( "doc/html/man3/EVP_PKEY_CTX_ctrl.html", "doc/html/man3/EVP_PKEY_CTX_get0_libctx.html", "doc/html/man3/EVP_PKEY_CTX_get0_pkey.html", + "doc/html/man3/EVP_PKEY_CTX_get_algor.html", "doc/html/man3/EVP_PKEY_CTX_new.html", "doc/html/man3/EVP_PKEY_CTX_set1_pbe_pass.html", "doc/html/man3/EVP_PKEY_CTX_set_hkdf_md.html", @@ -16568,6 +19175,8 @@ our %unified_info = ( "doc/html/man3/EVP_PKEY_verify_recover.html", "doc/html/man3/EVP_RAND.html", "doc/html/man3/EVP_SIGNATURE.html", + "doc/html/man3/EVP_SKEY.html", + "doc/html/man3/EVP_SKEYMGMT.html", "doc/html/man3/EVP_SealInit.html", "doc/html/man3/EVP_SignInit.html", "doc/html/man3/EVP_VerifyInit.html", @@ -16597,6 +19206,7 @@ our %unified_info = ( "doc/html/man3/EVP_sm3.html", "doc/html/man3/EVP_sm4_cbc.html", "doc/html/man3/EVP_whirlpool.html", + "doc/html/man3/GENERAL_NAME.html", "doc/html/man3/HMAC.html", "doc/html/man3/MD5.html", "doc/html/man3/MDC2_Init.html", @@ -16621,14 +19231,18 @@ our %unified_info = ( "doc/html/man3/OPENSSL_init_ssl.html", "doc/html/man3/OPENSSL_instrument_bus.html", "doc/html/man3/OPENSSL_load_builtin_modules.html", + "doc/html/man3/OPENSSL_load_u16_le.html", "doc/html/man3/OPENSSL_malloc.html", + "doc/html/man3/OPENSSL_riscvcap.html", "doc/html/man3/OPENSSL_s390xcap.html", "doc/html/man3/OPENSSL_secure_malloc.html", "doc/html/man3/OPENSSL_strcasecmp.html", "doc/html/man3/OSSL_ALGORITHM.html", "doc/html/man3/OSSL_CALLBACK.html", + "doc/html/man3/OSSL_CMP_ATAV_set0.html", "doc/html/man3/OSSL_CMP_CTX_new.html", "doc/html/man3/OSSL_CMP_HDR_get0_transactionID.html", + "doc/html/man3/OSSL_CMP_ITAV_new_caCerts.html", "doc/html/man3/OSSL_CMP_ITAV_set0.html", "doc/html/man3/OSSL_CMP_MSG_get0_header.html", "doc/html/man3/OSSL_CMP_MSG_http_perform.html", @@ -16652,18 +19266,27 @@ our %unified_info = ( "doc/html/man3/OSSL_ENCODER_CTX.html", "doc/html/man3/OSSL_ENCODER_CTX_new_for_pkey.html", "doc/html/man3/OSSL_ENCODER_to_bio.html", + "doc/html/man3/OSSL_ERR_STATE_save.html", "doc/html/man3/OSSL_ESS_check_signing_certs.html", + "doc/html/man3/OSSL_GENERAL_NAMES_print.html", + "doc/html/man3/OSSL_HPKE_CTX_new.html", "doc/html/man3/OSSL_HTTP_REQ_CTX.html", "doc/html/man3/OSSL_HTTP_parse_url.html", "doc/html/man3/OSSL_HTTP_transfer.html", + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX.html", + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX_print.html", + "doc/html/man3/OSSL_INDICATOR_set_callback.html", "doc/html/man3/OSSL_ITEM.html", "doc/html/man3/OSSL_LIB_CTX.html", + "doc/html/man3/OSSL_LIB_CTX_set_conf_diagnostics.html", "doc/html/man3/OSSL_PARAM.html", "doc/html/man3/OSSL_PARAM_BLD.html", "doc/html/man3/OSSL_PARAM_allocate_from_text.html", "doc/html/man3/OSSL_PARAM_dup.html", "doc/html/man3/OSSL_PARAM_int.html", + "doc/html/man3/OSSL_PARAM_print_to_bio.html", "doc/html/man3/OSSL_PROVIDER.html", + "doc/html/man3/OSSL_QUIC_client_method.html", "doc/html/man3/OSSL_SELF_TEST_new.html", "doc/html/man3/OSSL_SELF_TEST_set_callback.html", "doc/html/man3/OSSL_STORE_INFO.html", @@ -16672,11 +19295,13 @@ our %unified_info = ( "doc/html/man3/OSSL_STORE_attach.html", "doc/html/man3/OSSL_STORE_expect.html", "doc/html/man3/OSSL_STORE_open.html", + "doc/html/man3/OSSL_sleep.html", "doc/html/man3/OSSL_trace_enabled.html", "doc/html/man3/OSSL_trace_get_category_num.html", "doc/html/man3/OSSL_trace_set_channel.html", "doc/html/man3/OpenSSL_add_all_algorithms.html", "doc/html/man3/OpenSSL_version.html", + "doc/html/man3/PBMAC1_get1_pbkdf2_param.html", "doc/html/man3/PEM_X509_INFO_read_bio_ex.html", "doc/html/man3/PEM_bytes_read_bio.html", "doc/html/man3/PEM_read.html", @@ -16689,6 +19314,7 @@ our %unified_info = ( "doc/html/man3/PKCS12_SAFEBAG_create_cert.html", "doc/html/man3/PKCS12_SAFEBAG_get0_attrs.html", "doc/html/man3/PKCS12_SAFEBAG_get1_cert.html", + "doc/html/man3/PKCS12_SAFEBAG_set0_attrs.html", "doc/html/man3/PKCS12_add1_attr_by_NID.html", "doc/html/man3/PKCS12_add_CSPName_asc.html", "doc/html/man3/PKCS12_add_cert.html", @@ -16780,6 +19406,7 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_sess_set_get_cb.html", "doc/html/man3/SSL_CTX_sessions.html", "doc/html/man3/SSL_CTX_set0_CA_list.html", + "doc/html/man3/SSL_CTX_set1_cert_comp_preference.html", "doc/html/man3/SSL_CTX_set1_curves.html", "doc/html/man3/SSL_CTX_set1_sigalgs.html", "doc/html/man3/SSL_CTX_set1_verify_cert_store.html", @@ -16793,6 +19420,7 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_ct_validation_callback.html", "doc/html/man3/SSL_CTX_set_ctlog_list_file.html", "doc/html/man3/SSL_CTX_set_default_passwd_cb.html", + "doc/html/man3/SSL_CTX_set_domain_flags.html", "doc/html/man3/SSL_CTX_set_generate_session_id.html", "doc/html/man3/SSL_CTX_set_info_callback.html", "doc/html/man3/SSL_CTX_set_keylog_callback.html", @@ -16800,6 +19428,7 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_min_proto_version.html", "doc/html/man3/SSL_CTX_set_mode.html", "doc/html/man3/SSL_CTX_set_msg_callback.html", + "doc/html/man3/SSL_CTX_set_new_pending_conn_cb.html", "doc/html/man3/SSL_CTX_set_num_tickets.html", "doc/html/man3/SSL_CTX_set_options.html", "doc/html/man3/SSL_CTX_set_psk_client_callback.html", @@ -16838,6 +19467,7 @@ our %unified_info = ( "doc/html/man3/SSL_SESSION_print.html", "doc/html/man3/SSL_SESSION_set1_id.html", "doc/html/man3/SSL_accept.html", + "doc/html/man3/SSL_accept_stream.html", "doc/html/man3/SSL_alert_type_string.html", "doc/html/man3/SSL_alloc_buffers.html", "doc/html/man3/SSL_check_chain.html", @@ -16847,59 +19477,90 @@ our %unified_info = ( "doc/html/man3/SSL_export_keying_material.html", "doc/html/man3/SSL_extension_supported.html", "doc/html/man3/SSL_free.html", + "doc/html/man3/SSL_get0_connection.html", + "doc/html/man3/SSL_get0_group_name.html", + "doc/html/man3/SSL_get0_peer_rpk.html", "doc/html/man3/SSL_get0_peer_scts.html", + "doc/html/man3/SSL_get1_builtin_sigalgs.html", "doc/html/man3/SSL_get_SSL_CTX.html", "doc/html/man3/SSL_get_all_async_fds.html", "doc/html/man3/SSL_get_certificate.html", "doc/html/man3/SSL_get_ciphers.html", "doc/html/man3/SSL_get_client_random.html", + "doc/html/man3/SSL_get_conn_close_info.html", "doc/html/man3/SSL_get_current_cipher.html", "doc/html/man3/SSL_get_default_timeout.html", "doc/html/man3/SSL_get_error.html", + "doc/html/man3/SSL_get_event_timeout.html", "doc/html/man3/SSL_get_extms_support.html", "doc/html/man3/SSL_get_fd.html", + "doc/html/man3/SSL_get_handshake_rtt.html", "doc/html/man3/SSL_get_peer_cert_chain.html", "doc/html/man3/SSL_get_peer_certificate.html", "doc/html/man3/SSL_get_peer_signature_nid.html", "doc/html/man3/SSL_get_peer_tmp_key.html", "doc/html/man3/SSL_get_psk_identity.html", "doc/html/man3/SSL_get_rbio.html", + "doc/html/man3/SSL_get_rpoll_descriptor.html", "doc/html/man3/SSL_get_session.html", "doc/html/man3/SSL_get_shared_sigalgs.html", + "doc/html/man3/SSL_get_stream_id.html", + "doc/html/man3/SSL_get_stream_read_state.html", + "doc/html/man3/SSL_get_value_uint.html", "doc/html/man3/SSL_get_verify_result.html", "doc/html/man3/SSL_get_version.html", "doc/html/man3/SSL_group_to_name.html", + "doc/html/man3/SSL_handle_events.html", "doc/html/man3/SSL_in_init.html", + "doc/html/man3/SSL_inject_net_dgram.html", "doc/html/man3/SSL_key_update.html", "doc/html/man3/SSL_library_init.html", "doc/html/man3/SSL_load_client_CA_file.html", "doc/html/man3/SSL_new.html", + "doc/html/man3/SSL_new_domain.html", + "doc/html/man3/SSL_new_listener.html", + "doc/html/man3/SSL_new_stream.html", "doc/html/man3/SSL_pending.html", + "doc/html/man3/SSL_poll.html", "doc/html/man3/SSL_read.html", "doc/html/man3/SSL_read_early_data.html", "doc/html/man3/SSL_rstate_string.html", "doc/html/man3/SSL_session_reused.html", "doc/html/man3/SSL_set1_host.html", + "doc/html/man3/SSL_set1_initial_peer_addr.html", + "doc/html/man3/SSL_set1_server_cert_type.html", "doc/html/man3/SSL_set_async_callback.html", "doc/html/man3/SSL_set_bio.html", + "doc/html/man3/SSL_set_blocking_mode.html", "doc/html/man3/SSL_set_connect_state.html", + "doc/html/man3/SSL_set_default_stream_mode.html", "doc/html/man3/SSL_set_fd.html", + "doc/html/man3/SSL_set_incoming_stream_policy.html", + "doc/html/man3/SSL_set_quic_tls_cbs.html", "doc/html/man3/SSL_set_retry_verify.html", "doc/html/man3/SSL_set_session.html", + "doc/html/man3/SSL_set_session_secret_cb.html", "doc/html/man3/SSL_set_shutdown.html", "doc/html/man3/SSL_set_verify_result.html", "doc/html/man3/SSL_shutdown.html", "doc/html/man3/SSL_state_string.html", + "doc/html/man3/SSL_stream_conclude.html", + "doc/html/man3/SSL_stream_reset.html", "doc/html/man3/SSL_want.html", "doc/html/man3/SSL_write.html", "doc/html/man3/TS_RESP_CTX_new.html", - "doc/html/man3/TS_VERIFY_CTX_set_certs.html", + "doc/html/man3/TS_VERIFY_CTX.html", "doc/html/man3/UI_STRING.html", "doc/html/man3/UI_UTIL_read_pw.html", "doc/html/man3/UI_create_method.html", "doc/html/man3/UI_new.html", "doc/html/man3/X509V3_get_d2i.html", "doc/html/man3/X509V3_set_ctx.html", + "doc/html/man3/X509_ACERT_add1_attr.html", + "doc/html/man3/X509_ACERT_add_attr_nconf.html", + "doc/html/man3/X509_ACERT_get0_holder_baseCertId.html", + "doc/html/man3/X509_ACERT_get_attr.html", + "doc/html/man3/X509_ACERT_print_ex.html", "doc/html/man3/X509_ALGOR_dup.html", "doc/html/man3/X509_ATTRIBUTE.html", "doc/html/man3/X509_CRL_get0_by_serial.html", @@ -16916,6 +19577,7 @@ our %unified_info = ( "doc/html/man3/X509_REQ_get_attr.html", "doc/html/man3/X509_REQ_get_extensions.html", "doc/html/man3/X509_SIG_get0.html", + "doc/html/man3/X509_STORE_CTX_get_by_subject.html", "doc/html/man3/X509_STORE_CTX_get_error.html", "doc/html/man3/X509_STORE_CTX_new.html", "doc/html/man3/X509_STORE_CTX_set_verify_cb.html", @@ -16938,6 +19600,7 @@ our %unified_info = ( "doc/html/man3/X509_get0_notBefore.html", "doc/html/man3/X509_get0_signature.html", "doc/html/man3/X509_get0_uids.html", + "doc/html/man3/X509_get_default_cert_file.html", "doc/html/man3/X509_get_extension_flags.html", "doc/html/man3/X509_get_pubkey.html", "doc/html/man3/X509_get_serialNumber.html", @@ -16983,12 +19646,15 @@ our %unified_info = ( "doc/html/man7/EVP_CIPHER-RC5.html", "doc/html/man7/EVP_CIPHER-SEED.html", "doc/html/man7/EVP_CIPHER-SM4.html", + "doc/html/man7/EVP_KDF-ARGON2.html", "doc/html/man7/EVP_KDF-HKDF.html", + "doc/html/man7/EVP_KDF-HMAC-DRBG.html", "doc/html/man7/EVP_KDF-KB.html", "doc/html/man7/EVP_KDF-KRB5KDF.html", "doc/html/man7/EVP_KDF-PBKDF1.html", "doc/html/man7/EVP_KDF-PBKDF2.html", "doc/html/man7/EVP_KDF-PKCS12KDF.html", + "doc/html/man7/EVP_KDF-PVKKDF.html", "doc/html/man7/EVP_KDF-SCRYPT.html", "doc/html/man7/EVP_KDF-SS.html", "doc/html/man7/EVP_KDF-SSHKDF.html", @@ -16997,7 +19663,10 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-X942-ASN1.html", "doc/html/man7/EVP_KDF-X942-CONCAT.html", "doc/html/man7/EVP_KDF-X963.html", + "doc/html/man7/EVP_KEM-EC.html", + "doc/html/man7/EVP_KEM-ML-KEM.html", "doc/html/man7/EVP_KEM-RSA.html", + "doc/html/man7/EVP_KEM-X25519.html", "doc/html/man7/EVP_KEYEXCH-DH.html", "doc/html/man7/EVP_KEYEXCH-ECDH.html", "doc/html/man7/EVP_KEYEXCH-X25519.html", @@ -17009,6 +19678,7 @@ our %unified_info = ( "doc/html/man7/EVP_MAC-Poly1305.html", "doc/html/man7/EVP_MAC-Siphash.html", "doc/html/man7/EVP_MD-BLAKE2.html", + "doc/html/man7/EVP_MD-KECCAK.html", "doc/html/man7/EVP_MD-MD2.html", "doc/html/man7/EVP_MD-MD4.html", "doc/html/man7/EVP_MD-MD5-SHA1.html", @@ -17028,12 +19698,17 @@ our %unified_info = ( "doc/html/man7/EVP_PKEY-EC.html", "doc/html/man7/EVP_PKEY-FFC.html", "doc/html/man7/EVP_PKEY-HMAC.html", + "doc/html/man7/EVP_PKEY-ML-DSA.html", + "doc/html/man7/EVP_PKEY-ML-KEM.html", "doc/html/man7/EVP_PKEY-RSA.html", + "doc/html/man7/EVP_PKEY-SLH-DSA.html", "doc/html/man7/EVP_PKEY-SM2.html", "doc/html/man7/EVP_PKEY-X25519.html", + "doc/html/man7/EVP_RAND-CRNG-TEST.html", "doc/html/man7/EVP_RAND-CTR-DRBG.html", "doc/html/man7/EVP_RAND-HASH-DRBG.html", "doc/html/man7/EVP_RAND-HMAC-DRBG.html", + "doc/html/man7/EVP_RAND-JITTER.html", "doc/html/man7/EVP_RAND-SEED-SRC.html", "doc/html/man7/EVP_RAND-TEST-RAND.html", "doc/html/man7/EVP_RAND.html", @@ -17041,17 +19716,19 @@ our %unified_info = ( "doc/html/man7/EVP_SIGNATURE-ECDSA.html", "doc/html/man7/EVP_SIGNATURE-ED25519.html", "doc/html/man7/EVP_SIGNATURE-HMAC.html", + "doc/html/man7/EVP_SIGNATURE-ML-DSA.html", "doc/html/man7/EVP_SIGNATURE-RSA.html", + "doc/html/man7/EVP_SIGNATURE-SLH-DSA.html", "doc/html/man7/OSSL_PROVIDER-FIPS.html", "doc/html/man7/OSSL_PROVIDER-base.html", "doc/html/man7/OSSL_PROVIDER-default.html", "doc/html/man7/OSSL_PROVIDER-legacy.html", "doc/html/man7/OSSL_PROVIDER-null.html", + "doc/html/man7/OSSL_STORE-winstore.html", "doc/html/man7/RAND.html", "doc/html/man7/RSA-PSS.html", "doc/html/man7/X25519.html", "doc/html/man7/bio.html", - "doc/html/man7/crypto.html", "doc/html/man7/ct.html", "doc/html/man7/des_modes.html", "doc/html/man7/evp.html", @@ -17062,14 +19739,31 @@ our %unified_info = ( "doc/html/man7/life_cycle-mac.html", "doc/html/man7/life_cycle-pkey.html", "doc/html/man7/life_cycle-rand.html", - "doc/html/man7/migration_guide.html", "doc/html/man7/openssl-core.h.html", "doc/html/man7/openssl-core_dispatch.h.html", "doc/html/man7/openssl-core_names.h.html", "doc/html/man7/openssl-env.html", "doc/html/man7/openssl-glossary.html", + "doc/html/man7/openssl-qlog.html", + "doc/html/man7/openssl-quic-concurrency.html", + "doc/html/man7/openssl-quic.html", "doc/html/man7/openssl-threads.html", "doc/html/man7/openssl_user_macros.html", + "doc/html/man7/ossl-guide-introduction.html", + "doc/html/man7/ossl-guide-libcrypto-introduction.html", + "doc/html/man7/ossl-guide-libraries-introduction.html", + "doc/html/man7/ossl-guide-libssl-introduction.html", + "doc/html/man7/ossl-guide-migration.html", + "doc/html/man7/ossl-guide-quic-client-block.html", + "doc/html/man7/ossl-guide-quic-client-non-block.html", + "doc/html/man7/ossl-guide-quic-introduction.html", + "doc/html/man7/ossl-guide-quic-multi-stream.html", + "doc/html/man7/ossl-guide-quic-server-block.html", + "doc/html/man7/ossl-guide-quic-server-non-block.html", + "doc/html/man7/ossl-guide-tls-client-block.html", + "doc/html/man7/ossl-guide-tls-client-non-block.html", + "doc/html/man7/ossl-guide-tls-introduction.html", + "doc/html/man7/ossl-guide-tls-server-block.html", "doc/html/man7/ossl_store-file.html", "doc/html/man7/ossl_store.html", "doc/html/man7/passphrase-encoding.html", @@ -17088,10 +19782,10 @@ our %unified_info = ( "doc/html/man7/provider-object.html", "doc/html/man7/provider-rand.html", "doc/html/man7/provider-signature.html", + "doc/html/man7/provider-skeymgmt.html", "doc/html/man7/provider-storemgmt.html", "doc/html/man7/provider.html", "doc/html/man7/proxy-certificates.html", - "doc/html/man7/ssl.html", "doc/html/man7/x509.html" ] }, @@ -17106,12 +19800,21 @@ our %unified_info = ( ] }, "includes" => { + "OpenSSLConfig.cmake" => [ + "." + ], + "OpenSSLConfigVersion.cmake" => [ + "." + ], "apps/asn1parse.o" => [ "apps" ], "apps/ca.o" => [ "apps" ], + "apps/ca_internals_test-bin-ca.o" => [ + "apps" + ], "apps/ciphers.o" => [ "apps" ], @@ -17338,6 +20041,9 @@ our %unified_info = ( "apps/openssl-bin-sess_id.o" => [ "apps" ], + "apps/openssl-bin-skeyutl.o" => [ + "apps" + ], "apps/openssl-bin-smime.o" => [ "apps" ], @@ -17425,6 +20131,9 @@ our %unified_info = ( "apps/sess_id.o" => [ "apps" ], + "apps/skeyutl.o" => [ + "apps" + ], "apps/smime.o" => [ "apps" ], @@ -17476,6 +20185,12 @@ our %unified_info = ( "crypto/aes/bsaes-armv7.o" => [ "crypto" ], + "crypto/aes/vpaes-armv8.o" => [ + "crypto" + ], + "crypto/aes/vpaes-loongarch64.o" => [ + "crypto" + ], "crypto/arm64cpuid.o" => [ "crypto" ], @@ -17527,9 +20242,15 @@ our %unified_info = ( "crypto/chacha/chacha-armv4.o" => [ "crypto" ], + "crypto/chacha/chacha-armv8-sve.o" => [ + "crypto" + ], "crypto/chacha/chacha-armv8.o" => [ "crypto" ], + "crypto/chacha/chacha-loongarch64.o" => [ + "crypto" + ], "crypto/chacha/chacha-s390x.o" => [ "crypto" ], @@ -17554,15 +20275,24 @@ our %unified_info = ( "crypto/ec/ecp_s390x_nistp.o" => [ "crypto" ], + "crypto/ec/ecp_sm2p256-armv8.o" => [ + "crypto" + ], + "crypto/ec/ecx_key.o" => [ + "crypto" + ], "crypto/ec/ecx_meth.o" => [ "crypto" ], - "crypto/ec/ecx_s390x.o" => [ + "crypto/ec/libcrypto-lib-ecx_key.o" => [ "crypto" ], "crypto/ec/libcrypto-lib-ecx_meth.o" => [ "crypto" ], + "crypto/ec/libfips-lib-ecx_key.o" => [ + "crypto" + ], "crypto/evp/e_aes.o" => [ "crypto", "crypto/modes" @@ -17634,9 +20364,18 @@ our %unified_info = ( "crypto/libfips-lib-cpuid.o" => [ "." ], + "crypto/md5/md5-aarch64.o" => [ + "crypto" + ], + "crypto/md5/md5-loongarch64.o" => [ + "crypto" + ], "crypto/md5/md5-sparcv9.o" => [ "crypto" ], + "crypto/modes/aes-gcm-armv8-unroll8_64.o" => [ + "crypto" + ], "crypto/modes/aes-gcm-armv8_64.o" => [ "crypto" ], @@ -17661,6 +20400,9 @@ our %unified_info = ( "crypto/modes/libfips-lib-gcm128.o" => [ "crypto" ], + "crypto/params_idx.c" => [ + "util/perl" + ], "crypto/poly1305/poly1305-armv4.o" => [ "crypto" ], @@ -17682,6 +20424,9 @@ our %unified_info = ( "crypto/sha/keccak1600-armv4.o" => [ "crypto" ], + "crypto/sha/keccak1600-armv8.o" => [ + "crypto" + ], "crypto/sha/sha1-armv4-large.o" => [ "crypto" ], @@ -17727,6 +20472,18 @@ our %unified_info = ( "crypto/sha/sha512-sparcv9.o" => [ "crypto" ], + "crypto/sm3/sm3-armv8.o" => [ + "crypto" + ], + "crypto/sm4/sm4-armv8.o" => [ + "crypto" + ], + "crypto/sm4/vpsm4-armv8.o" => [ + "crypto" + ], + "crypto/sm4/vpsm4_ex-armv8.o" => [ + "crypto" + ], "doc/man1/openssl-asn1parse.pod" => [ "doc" ], @@ -17859,6 +20616,9 @@ our %unified_info = ( "doc/man1/openssl-sess_id.pod" => [ "doc" ], + "doc/man1/openssl-skeyutl.pod" => [ + "doc" + ], "doc/man1/openssl-smime.pod" => [ "doc" ], @@ -17886,6 +20646,24 @@ our %unified_info = ( "doc/man1/openssl-x509.pod" => [ "doc" ], + "exporters/OpenSSLConfig.cmake" => [ + "." + ], + "exporters/OpenSSLConfigVersion.cmake" => [ + "." + ], + "exporters/libcrypto.pc" => [ + "." + ], + "exporters/libssl.pc" => [ + "." + ], + "exporters/openssl.pc" => [ + "." + ], + "fuzz/acert-test" => [ + "include" + ], "fuzz/asn1-test" => [ "include" ], @@ -17916,12 +20694,69 @@ our %unified_info = ( "fuzz/ct-test" => [ "include" ], + "fuzz/decoder-test" => [ + "include" + ], + "fuzz/dtlsclient-test" => [ + "include" + ], + "fuzz/dtlsserver-test" => [ + "include" + ], + "fuzz/hashtable-test" => [ + "include" + ], + "fuzz/ml-dsa-test" => [ + "include" + ], + "fuzz/ml-kem-test" => [ + "include" + ], + "fuzz/pem-test" => [ + "include" + ], + "fuzz/provider-test" => [ + "include" + ], + "fuzz/punycode-test" => [ + "include" + ], + "fuzz/quic-client-test" => [ + "include" + ], + "fuzz/quic-lcidm-test" => [ + "include" + ], + "fuzz/quic-rcidm-test" => [ + "include" + ], + "fuzz/quic-server-test" => [ + "include" + ], + "fuzz/quic-srtm-test" => [ + "include" + ], "fuzz/server-test" => [ "include" ], + "fuzz/slh-dsa-test" => [ + "include" + ], + "fuzz/smime-test" => [ + "include" + ], + "fuzz/v3name-test" => [ + "include" + ], "fuzz/x509-test" => [ "include" ], + "include/internal/param_names.h" => [ + "util/perl" + ], + "include/openssl/core_names.h" => [ + "util/perl" + ], "libcrypto" => [ ".", "include", @@ -17932,6 +20767,9 @@ our %unified_info = ( ".", "util/perl/OpenSSL" ], + "libcrypto.pc" => [ + "." + ], "libssl" => [ ".", "include" @@ -17940,6 +20778,12 @@ our %unified_info = ( ".", "util/perl/OpenSSL" ], + "libssl.pc" => [ + "." + ], + "openssl.pc" => [ + "." + ], "providers/common/der/der_digests_gen.c" => [ "providers/common/der" ], @@ -17979,6 +20823,15 @@ our %unified_info = ( "providers/common/der/der_ecx_key.o" => [ "providers/common/include/prov" ], + "providers/common/der/der_ml_dsa_gen.c" => [ + "providers/common/der" + ], + "providers/common/der/der_ml_dsa_gen.o" => [ + "providers/common/include/prov" + ], + "providers/common/der/der_ml_dsa_key.o" => [ + "providers/common/include/prov" + ], "providers/common/der/der_rsa_gen.c" => [ "providers/common/der" ], @@ -17991,6 +20844,15 @@ our %unified_info = ( "providers/common/der/der_rsa_sig.o" => [ "providers/common/include/prov" ], + "providers/common/der/der_slh_dsa_gen.c" => [ + "providers/common/der" + ], + "providers/common/der/der_slh_dsa_gen.o" => [ + "providers/common/include/prov" + ], + "providers/common/der/der_slh_dsa_key.o" => [ + "providers/common/include/prov" + ], "providers/common/der/der_sm2_gen.c" => [ "providers/common/der" ], @@ -18036,12 +20898,24 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ecx_key.o" => [ "providers/common/include/prov" ], + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o" => [ + "providers/common/include/prov" + ], + "providers/common/der/libcommon-lib-der_ml_dsa_key.o" => [ + "providers/common/include/prov" + ], "providers/common/der/libcommon-lib-der_rsa_gen.o" => [ "providers/common/include/prov" ], "providers/common/der/libcommon-lib-der_rsa_key.o" => [ "providers/common/include/prov" ], + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o" => [ + "providers/common/include/prov" + ], + "providers/common/der/libcommon-lib-der_slh_dsa_key.o" => [ + "providers/common/include/prov" + ], "providers/common/der/libcommon-lib-der_wrap_gen.o" => [ "providers/common/include/prov" ], @@ -18072,9 +20946,15 @@ our %unified_info = ( "providers/common/include/prov/der_ecx.h" => [ "providers/common/der" ], + "providers/common/include/prov/der_ml_dsa.h" => [ + "providers/common/der" + ], "providers/common/include/prov/der_rsa.h" => [ "providers/common/der" ], + "providers/common/include/prov/der_slh_dsa.h" => [ + "providers/common/der" + ], "providers/common/include/prov/der_sm2.h" => [ "providers/common/der" ], @@ -18117,9 +20997,15 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-eddsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/libdefault-lib-rsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/libdefault-lib-sm2_sig.o" => [ "providers/common/include/prov" ], @@ -18132,12 +21018,24 @@ our %unified_info = ( "providers/implementations/signature/libfips-lib-eddsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/libfips-lib-rsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o" => [ + "providers/common/include/prov" + ], + "providers/implementations/signature/ml_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/rsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/slh_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/sm2_sig.o" => [ "providers/common/include/prov" ], @@ -18150,28 +21048,39 @@ our %unified_info = ( "crypto", "include", "providers/implementations/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" ], "providers/libdefault.a" => [ ".", "crypto", "include", "providers/implementations/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" ], "providers/libfips.a" => [ ".", "crypto", "include", "providers/implementations/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" ], "providers/liblegacy.a" => [ ".", "crypto", "include", "providers/implementations/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" + ], + "providers/libtemplate.a" => [ + "crypto", + "include", + "providers/implementations/include", + "providers/common/include", + "providers/fips/include" ], "test/aborttest" => [ "include", @@ -18240,6 +21149,14 @@ our %unified_info = ( "include", "apps/include" ], + "test/bio_addr_test" => [ + "include", + "apps/include" + ], + "test/bio_base64_test" => [ + "include", + "apps/include" + ], "test/bio_callback_test" => [ "include", "apps/include" @@ -18248,11 +21165,20 @@ our %unified_info = ( "include", "apps/include" ], + "test/bio_dgram_test" => [ + "include", + "apps/include", + "." + ], "test/bio_enc_test" => [ "include", "apps/include" ], - "test/bio_memleak_test" => [ + "test/bio_memleak_test" => [ + "include", + "apps/include" + ], + "test/bio_meth_test" => [ "include", "apps/include" ], @@ -18269,6 +21195,11 @@ our %unified_info = ( "include", "apps/include" ], + "test/bio_tfo_test" => [ + "include", + "apps/include", + "." + ], "test/bioprinttest" => [ "include", "apps/include" @@ -18283,6 +21214,9 @@ our %unified_info = ( "include", "apps/include" ], + "test/build_wincrypt_test" => [ + "include" + ], "test/buildtest_c_aes" => [ "include" ], @@ -18298,6 +21232,9 @@ our %unified_info = ( "test/buildtest_c_buffer" => [ "include" ], + "test/buildtest_c_byteorder" => [ + "include" + ], "test/buildtest_c_camellia" => [ "include" ], @@ -18322,9 +21259,6 @@ our %unified_info = ( "test/buildtest_c_core_dispatch" => [ "include" ], - "test/buildtest_c_core_names" => [ - "include" - ], "test/buildtest_c_core_object" => [ "include" ], @@ -18349,6 +21283,9 @@ our %unified_info = ( "test/buildtest_c_e_os2" => [ "include" ], + "test/buildtest_c_e_ostime" => [ + "include" + ], "test/buildtest_c_ebcdic" => [ "include" ], @@ -18376,12 +21313,18 @@ our %unified_info = ( "test/buildtest_c_hmac" => [ "include" ], + "test/buildtest_c_hpke" => [ + "include" + ], "test/buildtest_c_http" => [ "include" ], "test/buildtest_c_idea" => [ "include" ], + "test/buildtest_c_indicator" => [ + "include" + ], "test/buildtest_c_kdf" => [ "include" ], @@ -18397,6 +21340,9 @@ our %unified_info = ( "test/buildtest_c_mdc2" => [ "include" ], + "test/buildtest_c_ml_kem" => [ + "include" + ], "test/buildtest_c_modes" => [ "include" ], @@ -18427,6 +21373,9 @@ our %unified_info = ( "test/buildtest_c_provider" => [ "include" ], + "test/buildtest_c_quic" => [ + "include" + ], "test/buildtest_c_rand" => [ "include" ], @@ -18469,6 +21418,9 @@ our %unified_info = ( "test/buildtest_c_symhacks" => [ "include" ], + "test/buildtest_c_thread" => [ + "include" + ], "test/buildtest_c_tls1" => [ "include" ], @@ -18484,10 +21436,24 @@ our %unified_info = ( "test/buildtest_c_whrlpool" => [ "include" ], + "test/byteorder_test" => [ + "include", + "apps/include" + ], + "test/ca_internals_test" => [ + ".", + "include", + "apps/include" + ], "test/casttest" => [ "include", "apps/include" ], + "test/cert_comp_test" => [ + "include", + "apps/include", + "." + ], "test/chacha_internal_test" => [ ".", "include", @@ -18611,6 +21577,11 @@ our %unified_info = ( "include", "apps/include" ], + "test/decoder_propq_test" => [ + ".", + "include", + "apps/include" + ], "test/defltfips_test" => [ "include", "apps/include" @@ -18626,7 +21597,8 @@ our %unified_info = ( "test/drbgtest" => [ "include", "apps/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" ], "test/dsa_no_digest_size_test" => [ "include", @@ -18669,7 +21641,9 @@ our %unified_info = ( "test/endecode_test" => [ ".", "include", - "apps/include" + "apps/include", + "providers/common/include", + "providers/implementations/include" ], "test/endecoder_legacy_test" => [ ".", @@ -18714,6 +21688,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/evp_pkey_dhkem_test" => [ + "include", + "apps/include" + ], "test/evp_pkey_dparams_test" => [ "include", "apps/include" @@ -18722,10 +21700,18 @@ our %unified_info = ( "include", "apps/include" ], + "test/evp_skey_test" => [ + "include", + "apps/include" + ], "test/evp_test" => [ "include", "apps/include" ], + "test/evp_xof_test" => [ + "include", + "apps/include" + ], "test/exdatatest" => [ "include", "apps/include" @@ -18826,22 +21812,62 @@ our %unified_info = ( ".", "include" ], + "test/helpers/json_test-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/helpers/pkcs12.o" => [ ".", "include" ], + "test/helpers/pkcs12_api_test-bin-pkcs12.o" => [ + ".", + "include" + ], "test/helpers/pkcs12_format_test-bin-pkcs12.o" => [ ".", "include" ], + "test/helpers/quic_multistream_test-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quic_newcid_test-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quic_radix_test-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quic_srt_gen_test-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quicapitest-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quicfaultstest-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/helpers/recordlentest-bin-ssltestlib.o" => [ ".", "include" ], + "test/helpers/rpktest-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/helpers/servername_test-bin-ssltestlib.o" => [ ".", "include" ], + "test/helpers/ssl_handshake_rtt_test-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/helpers/ssl_test-bin-handshake.o" => [ ".", "include" @@ -18875,6 +21901,10 @@ our %unified_info = ( ".", "include" ], + "test/helpers/tls13groupselection_test-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/hexstr_test" => [ ".", "include", @@ -18884,6 +21914,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/hpke_test" => [ + "include", + "apps/include" + ], "test/http_test" => [ "include", "apps/include" @@ -18896,6 +21930,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/json_test" => [ + "include", + "apps/include" + ], "test/keymgmt_internal_test" => [ ".", "include", @@ -18910,6 +21948,10 @@ our %unified_info = ( "apps/include", "." ], + "test/list_test" => [ + "include", + "apps/include" + ], "test/localetest" => [ "include", "apps/include" @@ -18923,10 +21965,27 @@ our %unified_info = ( "include", "apps/include" ], + "test/membio_test" => [ + "include", + "apps/include", + "." + ], "test/memleaktest" => [ "include", "apps/include" ], + "test/ml_dsa_test" => [ + "include", + "apps/include" + ], + "test/ml_kem_evp_extra_test" => [ + "include", + "apps/include" + ], + "test/ml_kem_internal_test" => [ + "include", + "apps/include" + ], "test/modes_internal_test" => [ ".", "include", @@ -18961,6 +22020,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/pairwise_fail_test" => [ + "include", + "apps/include" + ], "test/param_build_test" => [ "include", "apps/include" @@ -18994,6 +22057,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/pkcs12_api_test" => [ + "include", + "apps/include" + ], "test/pkcs12_format_test" => [ "include", "apps/include" @@ -19015,6 +22082,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/priority_queue_test" => [ + "include", + "apps/include" + ], "test/property_test" => [ ".", "include", @@ -19028,6 +22099,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/provider_default_search_path_test" => [ + "include", + "apps/include" + ], "test/provider_fallback_test" => [ "include", "apps/include" @@ -19054,6 +22129,97 @@ our %unified_info = ( "include", "apps/include" ], + "test/quic_ackm_test" => [ + "include", + "apps/include" + ], + "test/quic_cc_test" => [ + "include", + "apps/include" + ], + "test/quic_cfq_test" => [ + "include", + "apps/include" + ], + "test/quic_client_test" => [ + "include", + "apps/include" + ], + "test/quic_fc_test" => [ + "include", + "apps/include" + ], + "test/quic_fifd_test" => [ + "include", + "apps/include" + ], + "test/quic_lcidm_test" => [ + "include", + "apps/include" + ], + "test/quic_multistream_test" => [ + "include", + "apps/include" + ], + "test/quic_newcid_test" => [ + "include", + "apps/include", + "." + ], + "test/quic_qlog_test" => [ + "include", + "apps/include" + ], + "test/quic_radix_test" => [ + "include", + "apps/include" + ], + "test/quic_rcidm_test" => [ + "include", + "apps/include" + ], + "test/quic_record_test" => [ + "include", + "apps/include" + ], + "test/quic_srt_gen_test" => [ + "include", + "apps/include", + "." + ], + "test/quic_srtm_test" => [ + "include", + "apps/include" + ], + "test/quic_stream_test" => [ + "include", + "apps/include" + ], + "test/quic_tserver_test" => [ + "include", + "apps/include" + ], + "test/quic_txp_test" => [ + "include", + "apps/include" + ], + "test/quic_txpim_test" => [ + "include", + "apps/include" + ], + "test/quic_wire_test" => [ + "include", + "apps/include" + ], + "test/quicapitest" => [ + "include", + "apps/include" + ], + "test/quicfaultstest" => [ + "include", + "apps/include", + "." + ], "test/rand_status_test" => [ "include", "apps/include" @@ -19074,14 +22240,20 @@ our %unified_info = ( "include", "apps/include" ], - "test/rdrand_sanitytest" => [ + "test/rdcpu_sanitytest" => [ "include", - "apps/include" + "apps/include", + "crypto" ], "test/recordlentest" => [ "include", "apps/include" ], + "test/rpktest" => [ + "include", + "apps/include", + "." + ], "test/rsa_complex" => [ "include", "apps/include" @@ -19100,6 +22272,15 @@ our %unified_info = ( "include", "apps/include" ], + "test/rsa_x931_test" => [ + ".", + "include", + "apps/include" + ], + "test/safe_math_test" => [ + "include", + "apps/include" + ], "test/sanitytest" => [ "include", "apps/include" @@ -19121,6 +22302,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/slh_dsa_test" => [ + "include", + "apps/include" + ], "test/sm2_internal_test" => [ "include", "apps/include" @@ -19151,6 +22336,11 @@ our %unified_info = ( "include", "apps/include" ], + "test/ssl_handshake_rtt_test" => [ + "include", + "apps/include", + "." + ], "test/ssl_old_test" => [ ".", "include", @@ -19167,6 +22357,7 @@ our %unified_info = ( "test/sslapitest" => [ "include", "apps/include", + "providers/common/include", "." ], "test/sslbuffertest" => [ @@ -19181,6 +22372,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/strtoultest" => [ + "include", + "apps/include" + ], "test/sysdefaulttest" => [ "include", "apps/include" @@ -19189,7 +22384,13 @@ our %unified_info = ( "include", "apps/include" ], + "test/threadpool_test" => [ + ".", + "include", + "apps/include" + ], "test/threadstest" => [ + ".", "include", "apps/include" ], @@ -19201,6 +22402,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/time_test" => [ + "include", + "apps/include" + ], "test/tls13ccstest" => [ "include", "apps/include" @@ -19210,6 +22415,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/tls13groupselection_test" => [ + "include", + "apps/include" + ], "test/trace_api_test" => [ ".", "include", @@ -19248,6 +22457,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/x509_acert_test" => [ + "include", + "apps/include" + ], "test/x509_check_cert_pkey_test" => [ "include", "apps/include" @@ -19261,6 +22474,18 @@ our %unified_info = ( "include", "apps/include" ], + "test/x509_load_cert_file_test" => [ + "include", + "apps/include" + ], + "test/x509_req_test" => [ + "include", + "apps/include" + ], + "test/x509_test" => [ + "include", + "apps/include" + ], "test/x509_time_test" => [ "include", "apps/include" @@ -19282,6 +22507,7 @@ our %unified_info = ( "providers/libdefault.a", "providers/libfips.a", "providers/liblegacy.a", + "providers/libtemplate.a", "test/libtestutil.a" ], "mandocs" => { @@ -19334,6 +22560,7 @@ our %unified_info = ( "doc/man/man1/openssl-s_server.1", "doc/man/man1/openssl-s_time.1", "doc/man/man1/openssl-sess_id.1", + "doc/man/man1/openssl-skeyutl.1", "doc/man/man1/openssl-smime.1", "doc/man/man1/openssl-speed.1", "doc/man/man1/openssl-spkac.1", @@ -19383,6 +22610,7 @@ our %unified_info = ( "doc/man/man3/BIO_find_type.3", "doc/man/man3/BIO_get_data.3", "doc/man/man3/BIO_get_ex_new_index.3", + "doc/man/man3/BIO_get_rpoll_descriptor.3", "doc/man/man3/BIO_meth_new.3", "doc/man/man3/BIO_new.3", "doc/man/man3/BIO_new_CMS.3", @@ -19395,11 +22623,13 @@ our %unified_info = ( "doc/man/man3/BIO_s_connect.3", "doc/man/man3/BIO_s_core.3", "doc/man/man3/BIO_s_datagram.3", + "doc/man/man3/BIO_s_dgram_pair.3", "doc/man/man3/BIO_s_fd.3", "doc/man/man3/BIO_s_file.3", "doc/man/man3/BIO_s_mem.3", "doc/man/man3/BIO_s_null.3", "doc/man/man3/BIO_s_socket.3", + "doc/man/man3/BIO_sendmmsg.3", "doc/man/man3/BIO_set_callback.3", "doc/man/man3/BIO_should_retry.3", "doc/man/man3/BIO_socket_wait.3", @@ -19424,6 +22654,7 @@ our %unified_info = ( "doc/man/man3/BN_swap.3", "doc/man/man3/BN_zero.3", "doc/man/man3/BUF_MEM_new.3", + "doc/man/man3/CMAC_CTX.3", "doc/man/man3/CMS_EncryptedData_decrypt.3", "doc/man/man3/CMS_EncryptedData_encrypt.3", "doc/man/man3/CMS_EnvelopedData_create.3", @@ -19446,6 +22677,7 @@ our %unified_info = ( "doc/man/man3/CMS_uncompress.3", "doc/man/man3/CMS_verify.3", "doc/man/man3/CMS_verify_receipt.3", + "doc/man/man3/COMP_CTX_new.3", "doc/man/man3/CONF_modules_free.3", "doc/man/man3/CONF_modules_load_file.3", "doc/man/man3/CRYPTO_THREAD_run_once.3", @@ -19479,6 +22711,8 @@ our %unified_info = ( "doc/man/man3/DSA_size.3", "doc/man/man3/DTLS_get_data_mtu.3", "doc/man/man3/DTLS_set_timer_cb.3", + "doc/man/man3/DTLSv1_get_timeout.3", + "doc/man/man3/DTLSv1_handle_timeout.3", "doc/man/man3/DTLSv1_listen.3", "doc/man/man3/ECDSA_SIG_new.3", "doc/man/man3/ECDSA_sign.3", @@ -19525,6 +22759,7 @@ our %unified_info = ( "doc/man/man3/EVP_PKEY_CTX_ctrl.3", "doc/man/man3/EVP_PKEY_CTX_get0_libctx.3", "doc/man/man3/EVP_PKEY_CTX_get0_pkey.3", + "doc/man/man3/EVP_PKEY_CTX_get_algor.3", "doc/man/man3/EVP_PKEY_CTX_new.3", "doc/man/man3/EVP_PKEY_CTX_set1_pbe_pass.3", "doc/man/man3/EVP_PKEY_CTX_set_hkdf_md.3", @@ -19564,6 +22799,8 @@ our %unified_info = ( "doc/man/man3/EVP_PKEY_verify_recover.3", "doc/man/man3/EVP_RAND.3", "doc/man/man3/EVP_SIGNATURE.3", + "doc/man/man3/EVP_SKEY.3", + "doc/man/man3/EVP_SKEYMGMT.3", "doc/man/man3/EVP_SealInit.3", "doc/man/man3/EVP_SignInit.3", "doc/man/man3/EVP_VerifyInit.3", @@ -19593,6 +22830,7 @@ our %unified_info = ( "doc/man/man3/EVP_sm3.3", "doc/man/man3/EVP_sm4_cbc.3", "doc/man/man3/EVP_whirlpool.3", + "doc/man/man3/GENERAL_NAME.3", "doc/man/man3/HMAC.3", "doc/man/man3/MD5.3", "doc/man/man3/MDC2_Init.3", @@ -19617,14 +22855,18 @@ our %unified_info = ( "doc/man/man3/OPENSSL_init_ssl.3", "doc/man/man3/OPENSSL_instrument_bus.3", "doc/man/man3/OPENSSL_load_builtin_modules.3", + "doc/man/man3/OPENSSL_load_u16_le.3", "doc/man/man3/OPENSSL_malloc.3", + "doc/man/man3/OPENSSL_riscvcap.3", "doc/man/man3/OPENSSL_s390xcap.3", "doc/man/man3/OPENSSL_secure_malloc.3", "doc/man/man3/OPENSSL_strcasecmp.3", "doc/man/man3/OSSL_ALGORITHM.3", "doc/man/man3/OSSL_CALLBACK.3", + "doc/man/man3/OSSL_CMP_ATAV_set0.3", "doc/man/man3/OSSL_CMP_CTX_new.3", "doc/man/man3/OSSL_CMP_HDR_get0_transactionID.3", + "doc/man/man3/OSSL_CMP_ITAV_new_caCerts.3", "doc/man/man3/OSSL_CMP_ITAV_set0.3", "doc/man/man3/OSSL_CMP_MSG_get0_header.3", "doc/man/man3/OSSL_CMP_MSG_http_perform.3", @@ -19648,18 +22890,27 @@ our %unified_info = ( "doc/man/man3/OSSL_ENCODER_CTX.3", "doc/man/man3/OSSL_ENCODER_CTX_new_for_pkey.3", "doc/man/man3/OSSL_ENCODER_to_bio.3", + "doc/man/man3/OSSL_ERR_STATE_save.3", "doc/man/man3/OSSL_ESS_check_signing_certs.3", + "doc/man/man3/OSSL_GENERAL_NAMES_print.3", + "doc/man/man3/OSSL_HPKE_CTX_new.3", "doc/man/man3/OSSL_HTTP_REQ_CTX.3", "doc/man/man3/OSSL_HTTP_parse_url.3", "doc/man/man3/OSSL_HTTP_transfer.3", + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX.3", + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX_print.3", + "doc/man/man3/OSSL_INDICATOR_set_callback.3", "doc/man/man3/OSSL_ITEM.3", "doc/man/man3/OSSL_LIB_CTX.3", + "doc/man/man3/OSSL_LIB_CTX_set_conf_diagnostics.3", "doc/man/man3/OSSL_PARAM.3", "doc/man/man3/OSSL_PARAM_BLD.3", "doc/man/man3/OSSL_PARAM_allocate_from_text.3", "doc/man/man3/OSSL_PARAM_dup.3", "doc/man/man3/OSSL_PARAM_int.3", + "doc/man/man3/OSSL_PARAM_print_to_bio.3", "doc/man/man3/OSSL_PROVIDER.3", + "doc/man/man3/OSSL_QUIC_client_method.3", "doc/man/man3/OSSL_SELF_TEST_new.3", "doc/man/man3/OSSL_SELF_TEST_set_callback.3", "doc/man/man3/OSSL_STORE_INFO.3", @@ -19668,11 +22919,13 @@ our %unified_info = ( "doc/man/man3/OSSL_STORE_attach.3", "doc/man/man3/OSSL_STORE_expect.3", "doc/man/man3/OSSL_STORE_open.3", + "doc/man/man3/OSSL_sleep.3", "doc/man/man3/OSSL_trace_enabled.3", "doc/man/man3/OSSL_trace_get_category_num.3", "doc/man/man3/OSSL_trace_set_channel.3", "doc/man/man3/OpenSSL_add_all_algorithms.3", "doc/man/man3/OpenSSL_version.3", + "doc/man/man3/PBMAC1_get1_pbkdf2_param.3", "doc/man/man3/PEM_X509_INFO_read_bio_ex.3", "doc/man/man3/PEM_bytes_read_bio.3", "doc/man/man3/PEM_read.3", @@ -19685,6 +22938,7 @@ our %unified_info = ( "doc/man/man3/PKCS12_SAFEBAG_create_cert.3", "doc/man/man3/PKCS12_SAFEBAG_get0_attrs.3", "doc/man/man3/PKCS12_SAFEBAG_get1_cert.3", + "doc/man/man3/PKCS12_SAFEBAG_set0_attrs.3", "doc/man/man3/PKCS12_add1_attr_by_NID.3", "doc/man/man3/PKCS12_add_CSPName_asc.3", "doc/man/man3/PKCS12_add_cert.3", @@ -19776,6 +23030,7 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_sess_set_get_cb.3", "doc/man/man3/SSL_CTX_sessions.3", "doc/man/man3/SSL_CTX_set0_CA_list.3", + "doc/man/man3/SSL_CTX_set1_cert_comp_preference.3", "doc/man/man3/SSL_CTX_set1_curves.3", "doc/man/man3/SSL_CTX_set1_sigalgs.3", "doc/man/man3/SSL_CTX_set1_verify_cert_store.3", @@ -19789,6 +23044,7 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_ct_validation_callback.3", "doc/man/man3/SSL_CTX_set_ctlog_list_file.3", "doc/man/man3/SSL_CTX_set_default_passwd_cb.3", + "doc/man/man3/SSL_CTX_set_domain_flags.3", "doc/man/man3/SSL_CTX_set_generate_session_id.3", "doc/man/man3/SSL_CTX_set_info_callback.3", "doc/man/man3/SSL_CTX_set_keylog_callback.3", @@ -19796,6 +23052,7 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_min_proto_version.3", "doc/man/man3/SSL_CTX_set_mode.3", "doc/man/man3/SSL_CTX_set_msg_callback.3", + "doc/man/man3/SSL_CTX_set_new_pending_conn_cb.3", "doc/man/man3/SSL_CTX_set_num_tickets.3", "doc/man/man3/SSL_CTX_set_options.3", "doc/man/man3/SSL_CTX_set_psk_client_callback.3", @@ -19834,6 +23091,7 @@ our %unified_info = ( "doc/man/man3/SSL_SESSION_print.3", "doc/man/man3/SSL_SESSION_set1_id.3", "doc/man/man3/SSL_accept.3", + "doc/man/man3/SSL_accept_stream.3", "doc/man/man3/SSL_alert_type_string.3", "doc/man/man3/SSL_alloc_buffers.3", "doc/man/man3/SSL_check_chain.3", @@ -19843,59 +23101,90 @@ our %unified_info = ( "doc/man/man3/SSL_export_keying_material.3", "doc/man/man3/SSL_extension_supported.3", "doc/man/man3/SSL_free.3", + "doc/man/man3/SSL_get0_connection.3", + "doc/man/man3/SSL_get0_group_name.3", + "doc/man/man3/SSL_get0_peer_rpk.3", "doc/man/man3/SSL_get0_peer_scts.3", + "doc/man/man3/SSL_get1_builtin_sigalgs.3", "doc/man/man3/SSL_get_SSL_CTX.3", "doc/man/man3/SSL_get_all_async_fds.3", "doc/man/man3/SSL_get_certificate.3", "doc/man/man3/SSL_get_ciphers.3", "doc/man/man3/SSL_get_client_random.3", + "doc/man/man3/SSL_get_conn_close_info.3", "doc/man/man3/SSL_get_current_cipher.3", "doc/man/man3/SSL_get_default_timeout.3", "doc/man/man3/SSL_get_error.3", + "doc/man/man3/SSL_get_event_timeout.3", "doc/man/man3/SSL_get_extms_support.3", "doc/man/man3/SSL_get_fd.3", + "doc/man/man3/SSL_get_handshake_rtt.3", "doc/man/man3/SSL_get_peer_cert_chain.3", "doc/man/man3/SSL_get_peer_certificate.3", "doc/man/man3/SSL_get_peer_signature_nid.3", "doc/man/man3/SSL_get_peer_tmp_key.3", "doc/man/man3/SSL_get_psk_identity.3", "doc/man/man3/SSL_get_rbio.3", + "doc/man/man3/SSL_get_rpoll_descriptor.3", "doc/man/man3/SSL_get_session.3", "doc/man/man3/SSL_get_shared_sigalgs.3", + "doc/man/man3/SSL_get_stream_id.3", + "doc/man/man3/SSL_get_stream_read_state.3", + "doc/man/man3/SSL_get_value_uint.3", "doc/man/man3/SSL_get_verify_result.3", "doc/man/man3/SSL_get_version.3", "doc/man/man3/SSL_group_to_name.3", + "doc/man/man3/SSL_handle_events.3", "doc/man/man3/SSL_in_init.3", + "doc/man/man3/SSL_inject_net_dgram.3", "doc/man/man3/SSL_key_update.3", "doc/man/man3/SSL_library_init.3", "doc/man/man3/SSL_load_client_CA_file.3", "doc/man/man3/SSL_new.3", + "doc/man/man3/SSL_new_domain.3", + "doc/man/man3/SSL_new_listener.3", + "doc/man/man3/SSL_new_stream.3", "doc/man/man3/SSL_pending.3", + "doc/man/man3/SSL_poll.3", "doc/man/man3/SSL_read.3", "doc/man/man3/SSL_read_early_data.3", "doc/man/man3/SSL_rstate_string.3", "doc/man/man3/SSL_session_reused.3", "doc/man/man3/SSL_set1_host.3", + "doc/man/man3/SSL_set1_initial_peer_addr.3", + "doc/man/man3/SSL_set1_server_cert_type.3", "doc/man/man3/SSL_set_async_callback.3", "doc/man/man3/SSL_set_bio.3", + "doc/man/man3/SSL_set_blocking_mode.3", "doc/man/man3/SSL_set_connect_state.3", + "doc/man/man3/SSL_set_default_stream_mode.3", "doc/man/man3/SSL_set_fd.3", + "doc/man/man3/SSL_set_incoming_stream_policy.3", + "doc/man/man3/SSL_set_quic_tls_cbs.3", "doc/man/man3/SSL_set_retry_verify.3", "doc/man/man3/SSL_set_session.3", + "doc/man/man3/SSL_set_session_secret_cb.3", "doc/man/man3/SSL_set_shutdown.3", "doc/man/man3/SSL_set_verify_result.3", "doc/man/man3/SSL_shutdown.3", "doc/man/man3/SSL_state_string.3", + "doc/man/man3/SSL_stream_conclude.3", + "doc/man/man3/SSL_stream_reset.3", "doc/man/man3/SSL_want.3", "doc/man/man3/SSL_write.3", "doc/man/man3/TS_RESP_CTX_new.3", - "doc/man/man3/TS_VERIFY_CTX_set_certs.3", + "doc/man/man3/TS_VERIFY_CTX.3", "doc/man/man3/UI_STRING.3", "doc/man/man3/UI_UTIL_read_pw.3", "doc/man/man3/UI_create_method.3", "doc/man/man3/UI_new.3", "doc/man/man3/X509V3_get_d2i.3", "doc/man/man3/X509V3_set_ctx.3", + "doc/man/man3/X509_ACERT_add1_attr.3", + "doc/man/man3/X509_ACERT_add_attr_nconf.3", + "doc/man/man3/X509_ACERT_get0_holder_baseCertId.3", + "doc/man/man3/X509_ACERT_get_attr.3", + "doc/man/man3/X509_ACERT_print_ex.3", "doc/man/man3/X509_ALGOR_dup.3", "doc/man/man3/X509_ATTRIBUTE.3", "doc/man/man3/X509_CRL_get0_by_serial.3", @@ -19912,6 +23201,7 @@ our %unified_info = ( "doc/man/man3/X509_REQ_get_attr.3", "doc/man/man3/X509_REQ_get_extensions.3", "doc/man/man3/X509_SIG_get0.3", + "doc/man/man3/X509_STORE_CTX_get_by_subject.3", "doc/man/man3/X509_STORE_CTX_get_error.3", "doc/man/man3/X509_STORE_CTX_new.3", "doc/man/man3/X509_STORE_CTX_set_verify_cb.3", @@ -19934,6 +23224,7 @@ our %unified_info = ( "doc/man/man3/X509_get0_notBefore.3", "doc/man/man3/X509_get0_signature.3", "doc/man/man3/X509_get0_uids.3", + "doc/man/man3/X509_get_default_cert_file.3", "doc/man/man3/X509_get_extension_flags.3", "doc/man/man3/X509_get_pubkey.3", "doc/man/man3/X509_get_serialNumber.3", @@ -19979,12 +23270,15 @@ our %unified_info = ( "doc/man/man7/EVP_CIPHER-RC5.7", "doc/man/man7/EVP_CIPHER-SEED.7", "doc/man/man7/EVP_CIPHER-SM4.7", + "doc/man/man7/EVP_KDF-ARGON2.7", "doc/man/man7/EVP_KDF-HKDF.7", + "doc/man/man7/EVP_KDF-HMAC-DRBG.7", "doc/man/man7/EVP_KDF-KB.7", "doc/man/man7/EVP_KDF-KRB5KDF.7", "doc/man/man7/EVP_KDF-PBKDF1.7", "doc/man/man7/EVP_KDF-PBKDF2.7", "doc/man/man7/EVP_KDF-PKCS12KDF.7", + "doc/man/man7/EVP_KDF-PVKKDF.7", "doc/man/man7/EVP_KDF-SCRYPT.7", "doc/man/man7/EVP_KDF-SS.7", "doc/man/man7/EVP_KDF-SSHKDF.7", @@ -19993,7 +23287,10 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-X942-ASN1.7", "doc/man/man7/EVP_KDF-X942-CONCAT.7", "doc/man/man7/EVP_KDF-X963.7", + "doc/man/man7/EVP_KEM-EC.7", + "doc/man/man7/EVP_KEM-ML-KEM.7", "doc/man/man7/EVP_KEM-RSA.7", + "doc/man/man7/EVP_KEM-X25519.7", "doc/man/man7/EVP_KEYEXCH-DH.7", "doc/man/man7/EVP_KEYEXCH-ECDH.7", "doc/man/man7/EVP_KEYEXCH-X25519.7", @@ -20005,6 +23302,7 @@ our %unified_info = ( "doc/man/man7/EVP_MAC-Poly1305.7", "doc/man/man7/EVP_MAC-Siphash.7", "doc/man/man7/EVP_MD-BLAKE2.7", + "doc/man/man7/EVP_MD-KECCAK.7", "doc/man/man7/EVP_MD-MD2.7", "doc/man/man7/EVP_MD-MD4.7", "doc/man/man7/EVP_MD-MD5-SHA1.7", @@ -20024,12 +23322,17 @@ our %unified_info = ( "doc/man/man7/EVP_PKEY-EC.7", "doc/man/man7/EVP_PKEY-FFC.7", "doc/man/man7/EVP_PKEY-HMAC.7", + "doc/man/man7/EVP_PKEY-ML-DSA.7", + "doc/man/man7/EVP_PKEY-ML-KEM.7", "doc/man/man7/EVP_PKEY-RSA.7", + "doc/man/man7/EVP_PKEY-SLH-DSA.7", "doc/man/man7/EVP_PKEY-SM2.7", "doc/man/man7/EVP_PKEY-X25519.7", + "doc/man/man7/EVP_RAND-CRNG-TEST.7", "doc/man/man7/EVP_RAND-CTR-DRBG.7", "doc/man/man7/EVP_RAND-HASH-DRBG.7", "doc/man/man7/EVP_RAND-HMAC-DRBG.7", + "doc/man/man7/EVP_RAND-JITTER.7", "doc/man/man7/EVP_RAND-SEED-SRC.7", "doc/man/man7/EVP_RAND-TEST-RAND.7", "doc/man/man7/EVP_RAND.7", @@ -20037,17 +23340,19 @@ our %unified_info = ( "doc/man/man7/EVP_SIGNATURE-ECDSA.7", "doc/man/man7/EVP_SIGNATURE-ED25519.7", "doc/man/man7/EVP_SIGNATURE-HMAC.7", + "doc/man/man7/EVP_SIGNATURE-ML-DSA.7", "doc/man/man7/EVP_SIGNATURE-RSA.7", + "doc/man/man7/EVP_SIGNATURE-SLH-DSA.7", "doc/man/man7/OSSL_PROVIDER-FIPS.7", "doc/man/man7/OSSL_PROVIDER-base.7", "doc/man/man7/OSSL_PROVIDER-default.7", "doc/man/man7/OSSL_PROVIDER-legacy.7", "doc/man/man7/OSSL_PROVIDER-null.7", + "doc/man/man7/OSSL_STORE-winstore.7", "doc/man/man7/RAND.7", "doc/man/man7/RSA-PSS.7", "doc/man/man7/X25519.7", "doc/man/man7/bio.7", - "doc/man/man7/crypto.7", "doc/man/man7/ct.7", "doc/man/man7/des_modes.7", "doc/man/man7/evp.7", @@ -20058,14 +23363,31 @@ our %unified_info = ( "doc/man/man7/life_cycle-mac.7", "doc/man/man7/life_cycle-pkey.7", "doc/man/man7/life_cycle-rand.7", - "doc/man/man7/migration_guide.7", "doc/man/man7/openssl-core.h.7", "doc/man/man7/openssl-core_dispatch.h.7", "doc/man/man7/openssl-core_names.h.7", "doc/man/man7/openssl-env.7", "doc/man/man7/openssl-glossary.7", + "doc/man/man7/openssl-qlog.7", + "doc/man/man7/openssl-quic-concurrency.7", + "doc/man/man7/openssl-quic.7", "doc/man/man7/openssl-threads.7", "doc/man/man7/openssl_user_macros.7", + "doc/man/man7/ossl-guide-introduction.7", + "doc/man/man7/ossl-guide-libcrypto-introduction.7", + "doc/man/man7/ossl-guide-libraries-introduction.7", + "doc/man/man7/ossl-guide-libssl-introduction.7", + "doc/man/man7/ossl-guide-migration.7", + "doc/man/man7/ossl-guide-quic-client-block.7", + "doc/man/man7/ossl-guide-quic-client-non-block.7", + "doc/man/man7/ossl-guide-quic-introduction.7", + "doc/man/man7/ossl-guide-quic-multi-stream.7", + "doc/man/man7/ossl-guide-quic-server-block.7", + "doc/man/man7/ossl-guide-quic-server-non-block.7", + "doc/man/man7/ossl-guide-tls-client-block.7", + "doc/man/man7/ossl-guide-tls-client-non-block.7", + "doc/man/man7/ossl-guide-tls-introduction.7", + "doc/man/man7/ossl-guide-tls-server-block.7", "doc/man/man7/ossl_store-file.7", "doc/man/man7/ossl_store.7", "doc/man/man7/passphrase-encoding.7", @@ -20084,10 +23406,10 @@ our %unified_info = ( "doc/man/man7/provider-object.7", "doc/man/man7/provider-rand.7", "doc/man/man7/provider-signature.7", + "doc/man/man7/provider-skeymgmt.7", "doc/man/man7/provider-storemgmt.7", "doc/man/man7/provider.7", "doc/man/man7/proxy-certificates.7", - "doc/man/man7/ssl.7", "doc/man/man7/x509.7" ] }, @@ -20099,6 +23421,7 @@ our %unified_info = ( ], "programs" => [ "apps/openssl", + "fuzz/acert-test", "fuzz/asn1-test", "fuzz/asn1parse-test", "fuzz/bignum-test", @@ -20109,7 +23432,24 @@ our %unified_info = ( "fuzz/conf-test", "fuzz/crl-test", "fuzz/ct-test", + "fuzz/decoder-test", + "fuzz/dtlsclient-test", + "fuzz/dtlsserver-test", + "fuzz/hashtable-test", + "fuzz/ml-dsa-test", + "fuzz/ml-kem-test", + "fuzz/pem-test", + "fuzz/provider-test", + "fuzz/punycode-test", + "fuzz/quic-client-test", + "fuzz/quic-lcidm-test", + "fuzz/quic-rcidm-test", + "fuzz/quic-server-test", + "fuzz/quic-srtm-test", "fuzz/server-test", + "fuzz/slh-dsa-test", + "fuzz/smime-test", + "fuzz/v3name-test", "fuzz/x509-test", "test/aborttest", "test/acvp_test", @@ -20127,21 +23467,28 @@ our %unified_info = ( "test/asynctest", "test/bad_dtls_test", "test/bftest", + "test/bio_addr_test", + "test/bio_base64_test", "test/bio_callback_test", "test/bio_core_test", + "test/bio_dgram_test", "test/bio_enc_test", "test/bio_memleak_test", + "test/bio_meth_test", "test/bio_prefix_text", "test/bio_pw_callback_test", "test/bio_readbuffer_test", + "test/bio_tfo_test", "test/bioprinttest", "test/bn_internal_test", "test/bntest", + "test/build_wincrypt_test", "test/buildtest_c_aes", "test/buildtest_c_async", "test/buildtest_c_blowfish", "test/buildtest_c_bn", "test/buildtest_c_buffer", + "test/buildtest_c_byteorder", "test/buildtest_c_camellia", "test/buildtest_c_cast", "test/buildtest_c_cmac", @@ -20150,7 +23497,6 @@ our %unified_info = ( "test/buildtest_c_conftypes", "test/buildtest_c_core", "test/buildtest_c_core_dispatch", - "test/buildtest_c_core_names", "test/buildtest_c_core_object", "test/buildtest_c_cryptoerr_legacy", "test/buildtest_c_decoder", @@ -20159,6 +23505,7 @@ our %unified_info = ( "test/buildtest_c_dsa", "test/buildtest_c_dtls1", "test/buildtest_c_e_os2", + "test/buildtest_c_e_ostime", "test/buildtest_c_ebcdic", "test/buildtest_c_ec", "test/buildtest_c_ecdh", @@ -20168,13 +23515,16 @@ our %unified_info = ( "test/buildtest_c_evp", "test/buildtest_c_fips_names", "test/buildtest_c_hmac", + "test/buildtest_c_hpke", "test/buildtest_c_http", "test/buildtest_c_idea", + "test/buildtest_c_indicator", "test/buildtest_c_kdf", "test/buildtest_c_macros", "test/buildtest_c_md4", "test/buildtest_c_md5", "test/buildtest_c_mdc2", + "test/buildtest_c_ml_kem", "test/buildtest_c_modes", "test/buildtest_c_obj_mac", "test/buildtest_c_objects", @@ -20185,6 +23535,7 @@ our %unified_info = ( "test/buildtest_c_pem2", "test/buildtest_c_prov_ssl", "test/buildtest_c_provider", + "test/buildtest_c_quic", "test/buildtest_c_rand", "test/buildtest_c_rc2", "test/buildtest_c_rc4", @@ -20199,11 +23550,14 @@ our %unified_info = ( "test/buildtest_c_stack", "test/buildtest_c_store", "test/buildtest_c_symhacks", + "test/buildtest_c_thread", "test/buildtest_c_tls1", "test/buildtest_c_ts", "test/buildtest_c_txt_db", "test/buildtest_c_types", "test/buildtest_c_whrlpool", + "test/byteorder_test", + "test/ca_internals_test", "test/casttest", "test/chacha_internal_test", "test/cipher_overhead_test", @@ -20232,6 +23586,7 @@ our %unified_info = ( "test/curve448_internal_test", "test/d2i_test", "test/danetest", + "test/decoder_propq_test", "test/defltfips_test", "test/destest", "test/dhtest", @@ -20256,9 +23611,12 @@ our %unified_info = ( "test/evp_kdf_test", "test/evp_libctx_test", "test/evp_pkey_ctx_new_from_name", + "test/evp_pkey_dhkem_test", "test/evp_pkey_dparams_test", "test/evp_pkey_provided_test", + "test/evp_skey_test", "test/evp_test", + "test/evp_xof_test", "test/exdatatest", "test/exptest", "test/ext_internal_test", @@ -20268,21 +23626,29 @@ our %unified_info = ( "test/gmdifftest", "test/hexstr_test", "test/hmactest", + "test/hpke_test", "test/http_test", "test/ideatest", "test/igetest", + "test/json_test", "test/keymgmt_internal_test", "test/lhash_test", + "test/list_test", "test/localetest", "test/mdc2_internal_test", "test/mdc2test", + "test/membio_test", "test/memleaktest", + "test/ml_dsa_test", + "test/ml_kem_evp_extra_test", + "test/ml_kem_internal_test", "test/modes_internal_test", "test/namemap_internal_test", "test/nodefltctxtest", "test/ocspapitest", "test/ossl_store_test", "test/packettest", + "test/pairwise_fail_test", "test/param_build_test", "test/params_api_test", "test/params_conversion_test", @@ -20291,36 +23657,65 @@ our %unified_info = ( "test/pbetest", "test/pem_read_depr_test", "test/pemtest", + "test/pkcs12_api_test", "test/pkcs12_format_test", "test/pkcs7_test", "test/pkey_meth_kdf_test", "test/pkey_meth_test", "test/poly1305_internal_test", + "test/priority_queue_test", "test/property_test", "test/prov_config_test", "test/provfetchtest", + "test/provider_default_search_path_test", "test/provider_fallback_test", "test/provider_internal_test", "test/provider_pkey_test", "test/provider_status_test", "test/provider_test", "test/punycode_test", + "test/quic_ackm_test", + "test/quic_cc_test", + "test/quic_cfq_test", + "test/quic_client_test", + "test/quic_fc_test", + "test/quic_fifd_test", + "test/quic_lcidm_test", + "test/quic_multistream_test", + "test/quic_newcid_test", + "test/quic_qlog_test", + "test/quic_radix_test", + "test/quic_rcidm_test", + "test/quic_record_test", + "test/quic_srt_gen_test", + "test/quic_srtm_test", + "test/quic_stream_test", + "test/quic_tserver_test", + "test/quic_txp_test", + "test/quic_txpim_test", + "test/quic_wire_test", + "test/quicapitest", + "test/quicfaultstest", "test/rand_status_test", "test/rand_test", "test/rc2test", "test/rc4test", "test/rc5test", - "test/rdrand_sanitytest", + "test/rdcpu_sanitytest", "test/recordlentest", + "test/rpktest", "test/rsa_complex", "test/rsa_mp_test", "test/rsa_sp800_56b_test", "test/rsa_test", + "test/rsa_x931_test", + "test/safe_math_test", "test/sanitytest", "test/secmemtest", "test/servername_test", "test/sha_test", "test/siphash_internal_test", + "test/slh_dsa_test", "test/sm2_internal_test", "test/sm3_internal_test", "test/sm4_internal_test", @@ -20328,6 +23723,7 @@ our %unified_info = ( "test/srptest", "test/ssl_cert_table_internal_test", "test/ssl_ctx_test", + "test/ssl_handshake_rtt_test", "test/ssl_old_test", "test/ssl_test", "test/ssl_test_ctx_test", @@ -20335,13 +23731,17 @@ our %unified_info = ( "test/sslbuffertest", "test/sslcorrupttest", "test/stack_test", + "test/strtoultest", "test/sysdefaulttest", "test/test_test", + "test/threadpool_test", "test/threadstest", "test/threadstest_fips", "test/time_offset_test", + "test/time_test", "test/tls13ccstest", "test/tls13encryptiontest", + "test/tls13groupselection_test", "test/trace_api_test", "test/uitest", "test/upcallstest", @@ -20351,9 +23751,13 @@ our %unified_info = ( "test/verify_extra_test", "test/versions", "test/wpackettest", + "test/x509_acert_test", "test/x509_check_cert_pkey_test", "test/x509_dup_cert_test", "test/x509_internal_test", + "test/x509_load_cert_file_test", + "test/x509_req_test", + "test/x509_test", "test/x509_time_test", "test/x509aux" ], @@ -20369,6 +23773,33 @@ our %unified_info = ( "apps/CA.pl" => [ "apps/CA.pl.in" ], + "apps/ca_internals_test-bin-ca.o" => [ + "apps/ca.c" + ], + "apps/lib/ca_internals_test-bin-app_libctx.o" => [ + "apps/lib/app_libctx.c" + ], + "apps/lib/ca_internals_test-bin-app_provider.o" => [ + "apps/lib/app_provider.c" + ], + "apps/lib/ca_internals_test-bin-app_rand.o" => [ + "apps/lib/app_rand.c" + ], + "apps/lib/ca_internals_test-bin-app_x509.o" => [ + "apps/lib/app_x509.c" + ], + "apps/lib/ca_internals_test-bin-apps.o" => [ + "apps/lib/apps.c" + ], + "apps/lib/ca_internals_test-bin-apps_ui.o" => [ + "apps/lib/apps_ui.c" + ], + "apps/lib/ca_internals_test-bin-engine.o" => [ + "apps/lib/engine.c" + ], + "apps/lib/ca_internals_test-bin-fmt.o" => [ + "apps/lib/fmt.c" + ], "apps/lib/cmp_client_test-bin-cmp_mock_srv.o" => [ "apps/lib/cmp_mock_srv.c" ], @@ -20390,6 +23821,9 @@ our %unified_info = ( "apps/lib/libapps-lib-apps.o" => [ "apps/lib/apps.c" ], + "apps/lib/libapps-lib-apps_opt_printf.o" => [ + "apps/lib/apps_opt_printf.c" + ], "apps/lib/libapps-lib-apps_ui.o" => [ "apps/lib/apps_ui.c" ], @@ -20408,6 +23842,9 @@ our %unified_info = ( "apps/lib/libapps-lib-http_server.o" => [ "apps/lib/http_server.c" ], + "apps/lib/libapps-lib-log.o" => [ + "apps/lib/log.c" + ], "apps/lib/libapps-lib-names.o" => [ "apps/lib/names.c" ], @@ -20439,12 +23876,14 @@ our %unified_info = ( "apps/lib/libapps-lib-app_rand.o", "apps/lib/libapps-lib-app_x509.o", "apps/lib/libapps-lib-apps.o", + "apps/lib/libapps-lib-apps_opt_printf.o", "apps/lib/libapps-lib-apps_ui.o", "apps/lib/libapps-lib-columns.o", "apps/lib/libapps-lib-engine.o", "apps/lib/libapps-lib-engine_loader.o", "apps/lib/libapps-lib-fmt.o", "apps/lib/libapps-lib-http_server.o", + "apps/lib/libapps-lib-log.o", "apps/lib/libapps-lib-names.o", "apps/lib/libapps-lib-opt.o", "apps/lib/libapps-lib-s_cb.o", @@ -20498,6 +23937,7 @@ our %unified_info = ( "apps/openssl-bin-s_server.o", "apps/openssl-bin-s_time.o", "apps/openssl-bin-sess_id.o", + "apps/openssl-bin-skeyutl.o", "apps/openssl-bin-smime.o", "apps/openssl-bin-speed.o", "apps/openssl-bin-spkac.o", @@ -20643,6 +24083,9 @@ our %unified_info = ( "apps/openssl-bin-sess_id.o" => [ "apps/sess_id.c" ], + "apps/openssl-bin-skeyutl.o" => [ + "apps/skeyutl.c" + ], "apps/openssl-bin-smime.o" => [ "apps/smime.c" ], @@ -20712,6 +24155,12 @@ our %unified_info = ( "crypto/aria/libcrypto-lib-aria.o" => [ "crypto/aria/aria.c" ], + "crypto/asn1/asn1_time_test-bin-a_time.o" => [ + "crypto/asn1/a_time.c" + ], + "crypto/asn1/ca_internals_test-bin-a_time.o" => [ + "crypto/asn1/a_time.c" + ], "crypto/asn1/libcrypto-lib-a_bitstr.o" => [ "crypto/asn1/a_bitstr.c" ], @@ -20904,6 +24353,9 @@ our %unified_info = ( "crypto/asn1/libcrypto-lib-x_val.o" => [ "crypto/asn1/x_val.c" ], + "crypto/asn1_time_test-bin-ctype.o" => [ + "crypto/ctype.c" + ], "crypto/async/arch/libcrypto-lib-async_null.o" => [ "crypto/async/arch/async_null.c" ], @@ -20997,6 +24449,9 @@ our %unified_info = ( "crypto/bio/libcrypto-lib-bss_dgram.o" => [ "crypto/bio/bss_dgram.c" ], + "crypto/bio/libcrypto-lib-bss_dgram_pair.o" => [ + "crypto/bio/bss_dgram_pair.c" + ], "crypto/bio/libcrypto-lib-bss_fd.o" => [ "crypto/bio/bss_fd.c" ], @@ -21210,6 +24665,9 @@ our %unified_info = ( "crypto/buffer/libfips-lib-buffer.o" => [ "crypto/buffer/buffer.c" ], + "crypto/ca_internals_test-bin-ctype.o" => [ + "crypto/ctype.c" + ], "crypto/camellia/libcrypto-lib-camellia.o" => [ "crypto/camellia/camellia.c" ], @@ -21267,6 +24725,9 @@ our %unified_info = ( "crypto/cmp/libcrypto-lib-cmp_err.o" => [ "crypto/cmp/cmp_err.c" ], + "crypto/cmp/libcrypto-lib-cmp_genm.o" => [ + "crypto/cmp/cmp_genm.c" + ], "crypto/cmp/libcrypto-lib-cmp_hdr.o" => [ "crypto/cmp/cmp_hdr.c" ], @@ -21942,9 +25403,15 @@ our %unified_info = ( "crypto/err/libcrypto-lib-err_blocks.o" => [ "crypto/err/err_blocks.c" ], + "crypto/err/libcrypto-lib-err_mark.o" => [ + "crypto/err/err_mark.c" + ], "crypto/err/libcrypto-lib-err_prn.o" => [ "crypto/err/err_prn.c" ], + "crypto/err/libcrypto-lib-err_save.o" => [ + "crypto/err/err_save.c" + ], "crypto/ess/libcrypto-lib-ess_asn1.o" => [ "crypto/ess/ess_asn1.c" ], @@ -22191,9 +25658,15 @@ our %unified_info = ( "crypto/evp/libcrypto-lib-pmeth_lib.o" => [ "crypto/evp/pmeth_lib.c" ], + "crypto/evp/libcrypto-lib-s_lib.o" => [ + "crypto/evp/s_lib.c" + ], "crypto/evp/libcrypto-lib-signature.o" => [ "crypto/evp/signature.c" ], + "crypto/evp/libcrypto-lib-skeymgmt_meth.o" => [ + "crypto/evp/skeymgmt_meth.c" + ], "crypto/evp/libfips-lib-asymcipher.o" => [ "crypto/evp/asymcipher.c" ], @@ -22239,9 +25712,6 @@ our %unified_info = ( "crypto/evp/libfips-lib-keymgmt_meth.o" => [ "crypto/evp/keymgmt_meth.c" ], - "crypto/evp/libfips-lib-m_sigver.o" => [ - "crypto/evp/m_sigver.c" - ], "crypto/evp/libfips-lib-mac_lib.o" => [ "crypto/evp/mac_lib.c" ], @@ -22260,9 +25730,15 @@ our %unified_info = ( "crypto/evp/libfips-lib-pmeth_lib.o" => [ "crypto/evp/pmeth_lib.c" ], + "crypto/evp/libfips-lib-s_lib.o" => [ + "crypto/evp/s_lib.c" + ], "crypto/evp/libfips-lib-signature.o" => [ "crypto/evp/signature.c" ], + "crypto/evp/libfips-lib-skeymgmt_meth.o" => [ + "crypto/evp/skeymgmt_meth.c" + ], "crypto/ffc/libcrypto-lib-ffc_backend.o" => [ "crypto/ffc/ffc_backend.c" ], @@ -22305,12 +25781,30 @@ our %unified_info = ( "crypto/ffc/libfips-lib-ffc_params_validate.o" => [ "crypto/ffc/ffc_params_validate.c" ], + "crypto/hashtable/libcrypto-lib-hashfunc.o" => [ + "crypto/hashtable/hashfunc.c" + ], + "crypto/hashtable/libcrypto-lib-hashtable.o" => [ + "crypto/hashtable/hashtable.c" + ], + "crypto/hashtable/libfips-lib-hashfunc.o" => [ + "crypto/hashtable/hashfunc.c" + ], + "crypto/hashtable/libfips-lib-hashtable.o" => [ + "crypto/hashtable/hashtable.c" + ], "crypto/hmac/libcrypto-lib-hmac.o" => [ "crypto/hmac/hmac.c" ], "crypto/hmac/libfips-lib-hmac.o" => [ "crypto/hmac/hmac.c" ], + "crypto/hpke/libcrypto-lib-hpke.o" => [ + "crypto/hpke/hpke.c" + ], + "crypto/hpke/libcrypto-lib-hpke_util.o" => [ + "crypto/hpke/hpke_util.c" + ], "crypto/http/libcrypto-lib-http_client.o" => [ "crypto/http/http_client.c" ], @@ -22353,6 +25847,9 @@ our %unified_info = ( "crypto/libcrypto-lib-bsearch.o" => [ "crypto/bsearch.c" ], + "crypto/libcrypto-lib-comp_methods.o" => [ + "crypto/comp_methods.c" + ], "crypto/libcrypto-lib-context.o" => [ "crypto/context.c" ], @@ -22380,9 +25877,15 @@ our %unified_info = ( "crypto/libcrypto-lib-cversion.o" => [ "crypto/cversion.c" ], + "crypto/libcrypto-lib-defaults.o" => [ + "crypto/defaults.c" + ], "crypto/libcrypto-lib-der_writer.o" => [ "crypto/der_writer.c" ], + "crypto/libcrypto-lib-deterministic_nonce.o" => [ + "crypto/deterministic_nonce.c" + ], "crypto/libcrypto-lib-ebcdic.o" => [ "crypto/ebcdic.c" ], @@ -22392,6 +25895,9 @@ our %unified_info = ( "crypto/libcrypto-lib-getenv.o" => [ "crypto/getenv.c" ], + "crypto/libcrypto-lib-indicator_core.o" => [ + "crypto/indicator_core.c" + ], "crypto/libcrypto-lib-info.o" => [ "crypto/info.c" ], @@ -22443,6 +25949,9 @@ our %unified_info = ( "crypto/libcrypto-lib-params_from_text.o" => [ "crypto/params_from_text.c" ], + "crypto/libcrypto-lib-params_idx.o" => [ + "crypto/params_idx.c" + ], "crypto/libcrypto-lib-passphrase.o" => [ "crypto/passphrase.c" ], @@ -22464,12 +25973,21 @@ our %unified_info = ( "crypto/libcrypto-lib-punycode.o" => [ "crypto/punycode.c" ], + "crypto/libcrypto-lib-quic_vlint.o" => [ + "crypto/quic_vlint.c" + ], "crypto/libcrypto-lib-self_test_core.o" => [ "crypto/self_test_core.c" ], + "crypto/libcrypto-lib-sleep.o" => [ + "crypto/sleep.c" + ], "crypto/libcrypto-lib-sparse_array.o" => [ "crypto/sparse_array.c" ], + "crypto/libcrypto-lib-ssl_err.o" => [ + "crypto/ssl_err.c" + ], "crypto/libcrypto-lib-threads_lib.o" => [ "crypto/threads_lib.c" ], @@ -22482,6 +26000,9 @@ our %unified_info = ( "crypto/libcrypto-lib-threads_win.o" => [ "crypto/threads_win.c" ], + "crypto/libcrypto-lib-time.o" => [ + "crypto/time.c" + ], "crypto/libcrypto-lib-trace.o" => [ "crypto/trace.c" ], @@ -22548,6 +26069,9 @@ our %unified_info = ( "crypto/libfips-lib-params_from_text.o" => [ "crypto/params_from_text.c" ], + "crypto/libfips-lib-params_idx.o" => [ + "crypto/params_idx.c" + ], "crypto/libfips-lib-provider_core.o" => [ "crypto/provider_core.c" ], @@ -22572,6 +26096,9 @@ our %unified_info = ( "crypto/libfips-lib-threads_win.o" => [ "crypto/threads_win.c" ], + "crypto/libfips-lib-time.o" => [ + "crypto/time.c" + ], "crypto/md4/libcrypto-lib-md4_dgst.o" => [ "crypto/md4/md4_dgst.c" ], @@ -22593,6 +26120,60 @@ our %unified_info = ( "crypto/mdc2/libcrypto-lib-mdc2dgst.o" => [ "crypto/mdc2/mdc2dgst.c" ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_encoders.o" => [ + "crypto/ml_dsa/ml_dsa_encoders.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key.o" => [ + "crypto/ml_dsa/ml_dsa_key.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key_compress.o" => [ + "crypto/ml_dsa/ml_dsa_key_compress.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_matrix.o" => [ + "crypto/ml_dsa/ml_dsa_matrix.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_ntt.o" => [ + "crypto/ml_dsa/ml_dsa_ntt.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_params.o" => [ + "crypto/ml_dsa/ml_dsa_params.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sample.o" => [ + "crypto/ml_dsa/ml_dsa_sample.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sign.o" => [ + "crypto/ml_dsa/ml_dsa_sign.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_encoders.o" => [ + "crypto/ml_dsa/ml_dsa_encoders.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_key.o" => [ + "crypto/ml_dsa/ml_dsa_key.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_key_compress.o" => [ + "crypto/ml_dsa/ml_dsa_key_compress.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_matrix.o" => [ + "crypto/ml_dsa/ml_dsa_matrix.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_ntt.o" => [ + "crypto/ml_dsa/ml_dsa_ntt.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_params.o" => [ + "crypto/ml_dsa/ml_dsa_params.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_sample.o" => [ + "crypto/ml_dsa/ml_dsa_sample.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_sign.o" => [ + "crypto/ml_dsa/ml_dsa_sign.c" + ], + "crypto/ml_kem/libcrypto-lib-ml_kem.o" => [ + "crypto/ml_kem/ml_kem.c" + ], + "crypto/ml_kem/libfips-lib-ml_kem.o" => [ + "crypto/ml_kem/ml_kem.c" + ], "crypto/modes/libcrypto-lib-cbc128.o" => [ "crypto/modes/cbc128.c" ], @@ -22626,6 +26207,9 @@ our %unified_info = ( "crypto/modes/libcrypto-lib-xts128.o" => [ "crypto/modes/xts128.c" ], + "crypto/modes/libcrypto-lib-xts128gb.o" => [ + "crypto/modes/xts128gb.c" + ], "crypto/modes/libfips-lib-cbc128.o" => [ "crypto/modes/cbc128.c" ], @@ -22650,6 +26234,9 @@ our %unified_info = ( "crypto/modes/libfips-lib-xts128.o" => [ "crypto/modes/xts128.c" ], + "crypto/modes/libfips-lib-xts128gb.o" => [ + "crypto/modes/xts128gb.c" + ], "crypto/objects/libcrypto-lib-o_names.o" => [ "crypto/objects/o_names.c" ], @@ -22695,6 +26282,9 @@ our %unified_info = ( "crypto/ocsp/libcrypto-lib-v3_ocsp.o" => [ "crypto/ocsp/v3_ocsp.c" ], + "crypto/packettest-bin-quic_vlint.o" => [ + "crypto/quic_vlint.c" + ], "crypto/pem/libcrypto-lib-pem_all.o" => [ "crypto/pem/pem_all.c" ], @@ -22854,6 +26444,9 @@ our %unified_info = ( "crypto/rand/libcrypto-lib-rand_pool.o" => [ "crypto/rand/rand_pool.c" ], + "crypto/rand/libcrypto-lib-rand_uniform.o" => [ + "crypto/rand/rand_uniform.c" + ], "crypto/rand/libcrypto-lib-randfile.o" => [ "crypto/rand/randfile.c" ], @@ -23067,6 +26660,66 @@ our %unified_info = ( "crypto/siphash/libcrypto-lib-siphash.o" => [ "crypto/siphash/siphash.c" ], + "crypto/slh_dsa/libcrypto-lib-slh_adrs.o" => [ + "crypto/slh_dsa/slh_adrs.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_dsa.o" => [ + "crypto/slh_dsa/slh_dsa.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_dsa_hash_ctx.o" => [ + "crypto/slh_dsa/slh_dsa_hash_ctx.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_dsa_key.o" => [ + "crypto/slh_dsa/slh_dsa_key.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_fors.o" => [ + "crypto/slh_dsa/slh_fors.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_hash.o" => [ + "crypto/slh_dsa/slh_hash.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_hypertree.o" => [ + "crypto/slh_dsa/slh_hypertree.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_params.o" => [ + "crypto/slh_dsa/slh_params.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_wots.o" => [ + "crypto/slh_dsa/slh_wots.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_xmss.o" => [ + "crypto/slh_dsa/slh_xmss.c" + ], + "crypto/slh_dsa/libfips-lib-slh_adrs.o" => [ + "crypto/slh_dsa/slh_adrs.c" + ], + "crypto/slh_dsa/libfips-lib-slh_dsa.o" => [ + "crypto/slh_dsa/slh_dsa.c" + ], + "crypto/slh_dsa/libfips-lib-slh_dsa_hash_ctx.o" => [ + "crypto/slh_dsa/slh_dsa_hash_ctx.c" + ], + "crypto/slh_dsa/libfips-lib-slh_dsa_key.o" => [ + "crypto/slh_dsa/slh_dsa_key.c" + ], + "crypto/slh_dsa/libfips-lib-slh_fors.o" => [ + "crypto/slh_dsa/slh_fors.c" + ], + "crypto/slh_dsa/libfips-lib-slh_hash.o" => [ + "crypto/slh_dsa/slh_hash.c" + ], + "crypto/slh_dsa/libfips-lib-slh_hypertree.o" => [ + "crypto/slh_dsa/slh_hypertree.c" + ], + "crypto/slh_dsa/libfips-lib-slh_params.o" => [ + "crypto/slh_dsa/slh_params.c" + ], + "crypto/slh_dsa/libfips-lib-slh_wots.o" => [ + "crypto/slh_dsa/slh_wots.c" + ], + "crypto/slh_dsa/libfips-lib-slh_xmss.o" => [ + "crypto/slh_dsa/slh_xmss.c" + ], "crypto/sm2/libcrypto-lib-sm2_crypt.o" => [ "crypto/sm2/sm2_crypt.c" ], @@ -23121,6 +26774,42 @@ our %unified_info = ( "crypto/store/libcrypto-lib-store_strings.o" => [ "crypto/store/store_strings.c" ], + "crypto/thread/arch/libcrypto-lib-thread_none.o" => [ + "crypto/thread/arch/thread_none.c" + ], + "crypto/thread/arch/libcrypto-lib-thread_posix.o" => [ + "crypto/thread/arch/thread_posix.c" + ], + "crypto/thread/arch/libcrypto-lib-thread_win.o" => [ + "crypto/thread/arch/thread_win.c" + ], + "crypto/thread/arch/libfips-lib-thread_none.o" => [ + "crypto/thread/arch/thread_none.c" + ], + "crypto/thread/arch/libfips-lib-thread_posix.o" => [ + "crypto/thread/arch/thread_posix.c" + ], + "crypto/thread/arch/libfips-lib-thread_win.o" => [ + "crypto/thread/arch/thread_win.c" + ], + "crypto/thread/libcrypto-lib-api.o" => [ + "crypto/thread/api.c" + ], + "crypto/thread/libcrypto-lib-arch.o" => [ + "crypto/thread/arch.c" + ], + "crypto/thread/libcrypto-lib-internal.o" => [ + "crypto/thread/internal.c" + ], + "crypto/thread/libfips-lib-api.o" => [ + "crypto/thread/api.c" + ], + "crypto/thread/libfips-lib-arch.o" => [ + "crypto/thread/arch.c" + ], + "crypto/thread/libfips-lib-internal.o" => [ + "crypto/thread/internal.c" + ], "crypto/ts/libcrypto-lib-ts_asn1.o" => [ "crypto/ts/ts_asn1.c" ], @@ -23205,6 +26894,9 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-pcy_tree.o" => [ "crypto/x509/pcy_tree.c" ], + "crypto/x509/libcrypto-lib-t_acert.o" => [ + "crypto/x509/t_acert.c" + ], "crypto/x509/libcrypto-lib-t_crl.o" => [ "crypto/x509/t_crl.c" ], @@ -23214,6 +26906,12 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-t_x509.o" => [ "crypto/x509/t_x509.c" ], + "crypto/x509/libcrypto-lib-v3_aaa.o" => [ + "crypto/x509/v3_aaa.c" + ], + "crypto/x509/libcrypto-lib-v3_ac_tgt.o" => [ + "crypto/x509/v3_ac_tgt.c" + ], "crypto/x509/libcrypto-lib-v3_addr.o" => [ "crypto/x509/v3_addr.c" ], @@ -23229,6 +26927,21 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_asid.o" => [ "crypto/x509/v3_asid.c" ], + "crypto/x509/libcrypto-lib-v3_attrdesc.o" => [ + "crypto/x509/v3_attrdesc.c" + ], + "crypto/x509/libcrypto-lib-v3_attrmap.o" => [ + "crypto/x509/v3_attrmap.c" + ], + "crypto/x509/libcrypto-lib-v3_audit_id.o" => [ + "crypto/x509/v3_audit_id.c" + ], + "crypto/x509/libcrypto-lib-v3_authattid.o" => [ + "crypto/x509/v3_authattid.c" + ], + "crypto/x509/libcrypto-lib-v3_battcons.o" => [ + "crypto/x509/v3_battcons.c" + ], "crypto/x509/libcrypto-lib-v3_bcons.o" => [ "crypto/x509/v3_bcons.c" ], @@ -23253,15 +26966,24 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_genn.o" => [ "crypto/x509/v3_genn.c" ], + "crypto/x509/libcrypto-lib-v3_group_ac.o" => [ + "crypto/x509/v3_group_ac.c" + ], "crypto/x509/libcrypto-lib-v3_ia5.o" => [ "crypto/x509/v3_ia5.c" ], + "crypto/x509/libcrypto-lib-v3_ind_iss.o" => [ + "crypto/x509/v3_ind_iss.c" + ], "crypto/x509/libcrypto-lib-v3_info.o" => [ "crypto/x509/v3_info.c" ], "crypto/x509/libcrypto-lib-v3_int.o" => [ "crypto/x509/v3_int.c" ], + "crypto/x509/libcrypto-lib-v3_iobo.o" => [ + "crypto/x509/v3_iobo.c" + ], "crypto/x509/libcrypto-lib-v3_ist.o" => [ "crypto/x509/v3_ist.c" ], @@ -23271,6 +26993,12 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_ncons.o" => [ "crypto/x509/v3_ncons.c" ], + "crypto/x509/libcrypto-lib-v3_no_ass.o" => [ + "crypto/x509/v3_no_ass.c" + ], + "crypto/x509/libcrypto-lib-v3_no_rev_avail.o" => [ + "crypto/x509/v3_no_rev_avail.c" + ], "crypto/x509/libcrypto-lib-v3_pci.o" => [ "crypto/x509/v3_pci.c" ], @@ -23292,18 +27020,36 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_purp.o" => [ "crypto/x509/v3_purp.c" ], + "crypto/x509/libcrypto-lib-v3_rolespec.o" => [ + "crypto/x509/v3_rolespec.c" + ], "crypto/x509/libcrypto-lib-v3_san.o" => [ "crypto/x509/v3_san.c" ], + "crypto/x509/libcrypto-lib-v3_sda.o" => [ + "crypto/x509/v3_sda.c" + ], + "crypto/x509/libcrypto-lib-v3_single_use.o" => [ + "crypto/x509/v3_single_use.c" + ], "crypto/x509/libcrypto-lib-v3_skid.o" => [ "crypto/x509/v3_skid.c" ], + "crypto/x509/libcrypto-lib-v3_soa_id.o" => [ + "crypto/x509/v3_soa_id.c" + ], "crypto/x509/libcrypto-lib-v3_sxnet.o" => [ "crypto/x509/v3_sxnet.c" ], + "crypto/x509/libcrypto-lib-v3_timespec.o" => [ + "crypto/x509/v3_timespec.c" + ], "crypto/x509/libcrypto-lib-v3_tlsf.o" => [ "crypto/x509/v3_tlsf.c" ], + "crypto/x509/libcrypto-lib-v3_usernotice.o" => [ + "crypto/x509/v3_usernotice.c" + ], "crypto/x509/libcrypto-lib-v3_utf8.o" => [ "crypto/x509/v3_utf8.c" ], @@ -23313,6 +27059,9 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3err.o" => [ "crypto/x509/v3err.c" ], + "crypto/x509/libcrypto-lib-x509_acert.o" => [ + "crypto/x509/x509_acert.c" + ], "crypto/x509/libcrypto-lib-x509_att.o" => [ "crypto/x509/x509_att.c" ], @@ -23364,6 +27113,9 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x509_vpm.o" => [ "crypto/x509/x509_vpm.c" ], + "crypto/x509/libcrypto-lib-x509aset.o" => [ + "crypto/x509/x509aset.c" + ], "crypto/x509/libcrypto-lib-x509cset.o" => [ "crypto/x509/x509cset.c" ], @@ -23391,6 +27143,9 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x_exten.o" => [ "crypto/x509/x_exten.c" ], + "crypto/x509/libcrypto-lib-x_ietfatt.o" => [ + "crypto/x509/x_ietfatt.c" + ], "crypto/x509/libcrypto-lib-x_name.o" => [ "crypto/x509/x_name.c" ], @@ -23412,6 +27167,16 @@ our %unified_info = ( "engines/libcrypto-lib-e_padlock.o" => [ "engines/e_padlock.c" ], + "fuzz/acert-test" => [ + "fuzz/acert-test-bin-acert.o", + "fuzz/acert-test-bin-test-corpus.o" + ], + "fuzz/acert-test-bin-acert.o" => [ + "fuzz/acert.c" + ], + "fuzz/acert-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], "fuzz/asn1-test" => [ "fuzz/asn1-test-bin-asn1.o", "fuzz/asn1-test-bin-fuzz_rand.o", @@ -23524,6 +27289,190 @@ our %unified_info = ( "fuzz/ct-test-bin-test-corpus.o" => [ "fuzz/test-corpus.c" ], + "fuzz/decoder-test" => [ + "fuzz/decoder-test-bin-decoder.o", + "fuzz/decoder-test-bin-fuzz_rand.o", + "fuzz/decoder-test-bin-test-corpus.o" + ], + "fuzz/decoder-test-bin-decoder.o" => [ + "fuzz/decoder.c" + ], + "fuzz/decoder-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/decoder-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/dtlsclient-test" => [ + "fuzz/dtlsclient-test-bin-dtlsclient.o", + "fuzz/dtlsclient-test-bin-fuzz_rand.o", + "fuzz/dtlsclient-test-bin-test-corpus.o" + ], + "fuzz/dtlsclient-test-bin-dtlsclient.o" => [ + "fuzz/dtlsclient.c" + ], + "fuzz/dtlsclient-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/dtlsclient-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/dtlsserver-test" => [ + "fuzz/dtlsserver-test-bin-dtlsserver.o", + "fuzz/dtlsserver-test-bin-fuzz_rand.o", + "fuzz/dtlsserver-test-bin-test-corpus.o" + ], + "fuzz/dtlsserver-test-bin-dtlsserver.o" => [ + "fuzz/dtlsserver.c" + ], + "fuzz/dtlsserver-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/dtlsserver-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/hashtable-test" => [ + "fuzz/hashtable-test-bin-fuzz_rand.o", + "fuzz/hashtable-test-bin-hashtable.o", + "fuzz/hashtable-test-bin-test-corpus.o" + ], + "fuzz/hashtable-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/hashtable-test-bin-hashtable.o" => [ + "fuzz/hashtable.c" + ], + "fuzz/hashtable-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/ml-dsa-test" => [ + "fuzz/ml-dsa-test-bin-fuzz_rand.o", + "fuzz/ml-dsa-test-bin-ml-dsa.o", + "fuzz/ml-dsa-test-bin-test-corpus.o" + ], + "fuzz/ml-dsa-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/ml-dsa-test-bin-ml-dsa.o" => [ + "fuzz/ml-dsa.c" + ], + "fuzz/ml-dsa-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/ml-kem-test" => [ + "fuzz/ml-kem-test-bin-fuzz_rand.o", + "fuzz/ml-kem-test-bin-ml-kem.o", + "fuzz/ml-kem-test-bin-test-corpus.o" + ], + "fuzz/ml-kem-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/ml-kem-test-bin-ml-kem.o" => [ + "fuzz/ml-kem.c" + ], + "fuzz/ml-kem-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/pem-test" => [ + "fuzz/pem-test-bin-pem.o", + "fuzz/pem-test-bin-test-corpus.o" + ], + "fuzz/pem-test-bin-pem.o" => [ + "fuzz/pem.c" + ], + "fuzz/pem-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/provider-test" => [ + "fuzz/provider-test-bin-provider.o", + "fuzz/provider-test-bin-test-corpus.o" + ], + "fuzz/provider-test-bin-provider.o" => [ + "fuzz/provider.c" + ], + "fuzz/provider-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/punycode-test" => [ + "fuzz/punycode-test-bin-punycode.o", + "fuzz/punycode-test-bin-test-corpus.o" + ], + "fuzz/punycode-test-bin-punycode.o" => [ + "fuzz/punycode.c" + ], + "fuzz/punycode-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-client-test" => [ + "fuzz/quic-client-test-bin-fuzz_rand.o", + "fuzz/quic-client-test-bin-quic-client.o", + "fuzz/quic-client-test-bin-test-corpus.o" + ], + "fuzz/quic-client-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-client-test-bin-quic-client.o" => [ + "fuzz/quic-client.c" + ], + "fuzz/quic-client-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-lcidm-test" => [ + "fuzz/quic-lcidm-test-bin-fuzz_rand.o", + "fuzz/quic-lcidm-test-bin-quic-lcidm.o", + "fuzz/quic-lcidm-test-bin-test-corpus.o" + ], + "fuzz/quic-lcidm-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-lcidm-test-bin-quic-lcidm.o" => [ + "fuzz/quic-lcidm.c" + ], + "fuzz/quic-lcidm-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-rcidm-test" => [ + "fuzz/quic-rcidm-test-bin-fuzz_rand.o", + "fuzz/quic-rcidm-test-bin-quic-rcidm.o", + "fuzz/quic-rcidm-test-bin-test-corpus.o" + ], + "fuzz/quic-rcidm-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-rcidm-test-bin-quic-rcidm.o" => [ + "fuzz/quic-rcidm.c" + ], + "fuzz/quic-rcidm-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-server-test" => [ + "fuzz/quic-server-test-bin-fuzz_rand.o", + "fuzz/quic-server-test-bin-quic-server.o", + "fuzz/quic-server-test-bin-test-corpus.o" + ], + "fuzz/quic-server-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-server-test-bin-quic-server.o" => [ + "fuzz/quic-server.c" + ], + "fuzz/quic-server-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-srtm-test" => [ + "fuzz/quic-srtm-test-bin-fuzz_rand.o", + "fuzz/quic-srtm-test-bin-quic-srtm.o", + "fuzz/quic-srtm-test-bin-test-corpus.o" + ], + "fuzz/quic-srtm-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-srtm-test-bin-quic-srtm.o" => [ + "fuzz/quic-srtm.c" + ], + "fuzz/quic-srtm-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], "fuzz/server-test" => [ "fuzz/server-test-bin-fuzz_rand.o", "fuzz/server-test-bin-server.o", @@ -23538,6 +27487,40 @@ our %unified_info = ( "fuzz/server-test-bin-test-corpus.o" => [ "fuzz/test-corpus.c" ], + "fuzz/slh-dsa-test" => [ + "fuzz/slh-dsa-test-bin-fuzz_rand.o", + "fuzz/slh-dsa-test-bin-slh-dsa.o", + "fuzz/slh-dsa-test-bin-test-corpus.o" + ], + "fuzz/slh-dsa-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/slh-dsa-test-bin-slh-dsa.o" => [ + "fuzz/slh-dsa.c" + ], + "fuzz/slh-dsa-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/smime-test" => [ + "fuzz/smime-test-bin-smime.o", + "fuzz/smime-test-bin-test-corpus.o" + ], + "fuzz/smime-test-bin-smime.o" => [ + "fuzz/smime.c" + ], + "fuzz/smime-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/v3name-test" => [ + "fuzz/v3name-test-bin-test-corpus.o", + "fuzz/v3name-test-bin-v3name.o" + ], + "fuzz/v3name-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/v3name-test-bin-v3name.o" => [ + "fuzz/v3name.c" + ], "fuzz/x509-test" => [ "fuzz/x509-test-bin-fuzz_rand.o", "fuzz/x509-test-bin-test-corpus.o", @@ -23657,6 +27640,7 @@ our %unified_info = ( "crypto/bio/libcrypto-lib-bss_conn.o", "crypto/bio/libcrypto-lib-bss_core.o", "crypto/bio/libcrypto-lib-bss_dgram.o", + "crypto/bio/libcrypto-lib-bss_dgram_pair.o", "crypto/bio/libcrypto-lib-bss_fd.o", "crypto/bio/libcrypto-lib-bss_file.o", "crypto/bio/libcrypto-lib-bss_log.o", @@ -23717,6 +27701,7 @@ our %unified_info = ( "crypto/cmp/libcrypto-lib-cmp_client.o", "crypto/cmp/libcrypto-lib-cmp_ctx.o", "crypto/cmp/libcrypto-lib-cmp_err.o", + "crypto/cmp/libcrypto-lib-cmp_genm.o", "crypto/cmp/libcrypto-lib-cmp_hdr.o", "crypto/cmp/libcrypto-lib-cmp_http.o", "crypto/cmp/libcrypto-lib-cmp_msg.o", @@ -23892,7 +27877,9 @@ our %unified_info = ( "crypto/err/libcrypto-lib-err_all.o", "crypto/err/libcrypto-lib-err_all_legacy.o", "crypto/err/libcrypto-lib-err_blocks.o", + "crypto/err/libcrypto-lib-err_mark.o", "crypto/err/libcrypto-lib-err_prn.o", + "crypto/err/libcrypto-lib-err_save.o", "crypto/ess/libcrypto-lib-ess_asn1.o", "crypto/ess/libcrypto-lib-ess_err.o", "crypto/ess/libcrypto-lib-ess_lib.o", @@ -23975,7 +27962,9 @@ our %unified_info = ( "crypto/evp/libcrypto-lib-pmeth_check.o", "crypto/evp/libcrypto-lib-pmeth_gn.o", "crypto/evp/libcrypto-lib-pmeth_lib.o", + "crypto/evp/libcrypto-lib-s_lib.o", "crypto/evp/libcrypto-lib-signature.o", + "crypto/evp/libcrypto-lib-skeymgmt_meth.o", "crypto/ffc/libcrypto-lib-ffc_backend.o", "crypto/ffc/libcrypto-lib-ffc_dh.o", "crypto/ffc/libcrypto-lib-ffc_key_generate.o", @@ -23983,7 +27972,11 @@ our %unified_info = ( "crypto/ffc/libcrypto-lib-ffc_params.o", "crypto/ffc/libcrypto-lib-ffc_params_generate.o", "crypto/ffc/libcrypto-lib-ffc_params_validate.o", + "crypto/hashtable/libcrypto-lib-hashfunc.o", + "crypto/hashtable/libcrypto-lib-hashtable.o", "crypto/hmac/libcrypto-lib-hmac.o", + "crypto/hpke/libcrypto-lib-hpke.o", + "crypto/hpke/libcrypto-lib-hpke_util.o", "crypto/http/libcrypto-lib-http_client.o", "crypto/http/libcrypto-lib-http_err.o", "crypto/http/libcrypto-lib-http_lib.o", @@ -23997,6 +27990,7 @@ our %unified_info = ( "crypto/lhash/libcrypto-lib-lhash.o", "crypto/libcrypto-lib-asn1_dsa.o", "crypto/libcrypto-lib-bsearch.o", + "crypto/libcrypto-lib-comp_methods.o", "crypto/libcrypto-lib-context.o", "crypto/libcrypto-lib-core_algorithm.o", "crypto/libcrypto-lib-core_fetch.o", @@ -24006,10 +28000,13 @@ our %unified_info = ( "crypto/libcrypto-lib-cryptlib.o", "crypto/libcrypto-lib-ctype.o", "crypto/libcrypto-lib-cversion.o", + "crypto/libcrypto-lib-defaults.o", "crypto/libcrypto-lib-der_writer.o", + "crypto/libcrypto-lib-deterministic_nonce.o", "crypto/libcrypto-lib-ebcdic.o", "crypto/libcrypto-lib-ex_data.o", "crypto/libcrypto-lib-getenv.o", + "crypto/libcrypto-lib-indicator_core.o", "crypto/libcrypto-lib-info.o", "crypto/libcrypto-lib-init.o", "crypto/libcrypto-lib-initthread.o", @@ -24027,6 +28024,7 @@ our %unified_info = ( "crypto/libcrypto-lib-params.o", "crypto/libcrypto-lib-params_dup.o", "crypto/libcrypto-lib-params_from_text.o", + "crypto/libcrypto-lib-params_idx.o", "crypto/libcrypto-lib-passphrase.o", "crypto/libcrypto-lib-provider.o", "crypto/libcrypto-lib-provider_child.o", @@ -24034,12 +28032,16 @@ our %unified_info = ( "crypto/libcrypto-lib-provider_core.o", "crypto/libcrypto-lib-provider_predefined.o", "crypto/libcrypto-lib-punycode.o", + "crypto/libcrypto-lib-quic_vlint.o", "crypto/libcrypto-lib-self_test_core.o", + "crypto/libcrypto-lib-sleep.o", "crypto/libcrypto-lib-sparse_array.o", + "crypto/libcrypto-lib-ssl_err.o", "crypto/libcrypto-lib-threads_lib.o", "crypto/libcrypto-lib-threads_none.o", "crypto/libcrypto-lib-threads_pthread.o", "crypto/libcrypto-lib-threads_win.o", + "crypto/libcrypto-lib-time.o", "crypto/libcrypto-lib-trace.o", "crypto/libcrypto-lib-uid.o", "crypto/md4/libcrypto-lib-md4_dgst.o", @@ -24049,6 +28051,15 @@ our %unified_info = ( "crypto/md5/libcrypto-lib-md5_sha1.o", "crypto/mdc2/libcrypto-lib-mdc2_one.o", "crypto/mdc2/libcrypto-lib-mdc2dgst.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_encoders.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key_compress.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_matrix.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_ntt.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_params.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sample.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sign.o", + "crypto/ml_kem/libcrypto-lib-ml_kem.o", "crypto/modes/libcrypto-lib-cbc128.o", "crypto/modes/libcrypto-lib-ccm128.o", "crypto/modes/libcrypto-lib-cfb128.o", @@ -24060,6 +28071,7 @@ our %unified_info = ( "crypto/modes/libcrypto-lib-siv128.o", "crypto/modes/libcrypto-lib-wrap128.o", "crypto/modes/libcrypto-lib-xts128.o", + "crypto/modes/libcrypto-lib-xts128gb.o", "crypto/objects/libcrypto-lib-o_names.o", "crypto/objects/libcrypto-lib-obj_dat.o", "crypto/objects/libcrypto-lib-obj_err.o", @@ -24123,6 +28135,7 @@ our %unified_info = ( "crypto/rand/libcrypto-lib-rand_lib.o", "crypto/rand/libcrypto-lib-rand_meth.o", "crypto/rand/libcrypto-lib-rand_pool.o", + "crypto/rand/libcrypto-lib-rand_uniform.o", "crypto/rand/libcrypto-lib-randfile.o", "crypto/rc2/libcrypto-lib-rc2_cbc.o", "crypto/rc2/libcrypto-lib-rc2_ecb.o", @@ -24171,6 +28184,16 @@ our %unified_info = ( "crypto/sha/libcrypto-lib-sha3.o", "crypto/sha/libcrypto-lib-sha512.o", "crypto/siphash/libcrypto-lib-siphash.o", + "crypto/slh_dsa/libcrypto-lib-slh_adrs.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa_hash_ctx.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa_key.o", + "crypto/slh_dsa/libcrypto-lib-slh_fors.o", + "crypto/slh_dsa/libcrypto-lib-slh_hash.o", + "crypto/slh_dsa/libcrypto-lib-slh_hypertree.o", + "crypto/slh_dsa/libcrypto-lib-slh_params.o", + "crypto/slh_dsa/libcrypto-lib-slh_wots.o", + "crypto/slh_dsa/libcrypto-lib-slh_xmss.o", "crypto/sm2/libcrypto-lib-sm2_crypt.o", "crypto/sm2/libcrypto-lib-sm2_err.o", "crypto/sm2/libcrypto-lib-sm2_key.o", @@ -24188,6 +28211,12 @@ our %unified_info = ( "crypto/store/libcrypto-lib-store_register.o", "crypto/store/libcrypto-lib-store_result.o", "crypto/store/libcrypto-lib-store_strings.o", + "crypto/thread/arch/libcrypto-lib-thread_none.o", + "crypto/thread/arch/libcrypto-lib-thread_posix.o", + "crypto/thread/arch/libcrypto-lib-thread_win.o", + "crypto/thread/libcrypto-lib-api.o", + "crypto/thread/libcrypto-lib-arch.o", + "crypto/thread/libcrypto-lib-internal.o", "crypto/ts/libcrypto-lib-ts_asn1.o", "crypto/ts/libcrypto-lib-ts_conf.o", "crypto/ts/libcrypto-lib-ts_err.o", @@ -24216,14 +28245,22 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-pcy_map.o", "crypto/x509/libcrypto-lib-pcy_node.o", "crypto/x509/libcrypto-lib-pcy_tree.o", + "crypto/x509/libcrypto-lib-t_acert.o", "crypto/x509/libcrypto-lib-t_crl.o", "crypto/x509/libcrypto-lib-t_req.o", "crypto/x509/libcrypto-lib-t_x509.o", + "crypto/x509/libcrypto-lib-v3_aaa.o", + "crypto/x509/libcrypto-lib-v3_ac_tgt.o", "crypto/x509/libcrypto-lib-v3_addr.o", "crypto/x509/libcrypto-lib-v3_admis.o", "crypto/x509/libcrypto-lib-v3_akeya.o", "crypto/x509/libcrypto-lib-v3_akid.o", "crypto/x509/libcrypto-lib-v3_asid.o", + "crypto/x509/libcrypto-lib-v3_attrdesc.o", + "crypto/x509/libcrypto-lib-v3_attrmap.o", + "crypto/x509/libcrypto-lib-v3_audit_id.o", + "crypto/x509/libcrypto-lib-v3_authattid.o", + "crypto/x509/libcrypto-lib-v3_battcons.o", "crypto/x509/libcrypto-lib-v3_bcons.o", "crypto/x509/libcrypto-lib-v3_bitst.o", "crypto/x509/libcrypto-lib-v3_conf.o", @@ -24232,12 +28269,17 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_enum.o", "crypto/x509/libcrypto-lib-v3_extku.o", "crypto/x509/libcrypto-lib-v3_genn.o", + "crypto/x509/libcrypto-lib-v3_group_ac.o", "crypto/x509/libcrypto-lib-v3_ia5.o", + "crypto/x509/libcrypto-lib-v3_ind_iss.o", "crypto/x509/libcrypto-lib-v3_info.o", "crypto/x509/libcrypto-lib-v3_int.o", + "crypto/x509/libcrypto-lib-v3_iobo.o", "crypto/x509/libcrypto-lib-v3_ist.o", "crypto/x509/libcrypto-lib-v3_lib.o", "crypto/x509/libcrypto-lib-v3_ncons.o", + "crypto/x509/libcrypto-lib-v3_no_ass.o", + "crypto/x509/libcrypto-lib-v3_no_rev_avail.o", "crypto/x509/libcrypto-lib-v3_pci.o", "crypto/x509/libcrypto-lib-v3_pcia.o", "crypto/x509/libcrypto-lib-v3_pcons.o", @@ -24245,13 +28287,20 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_pmaps.o", "crypto/x509/libcrypto-lib-v3_prn.o", "crypto/x509/libcrypto-lib-v3_purp.o", + "crypto/x509/libcrypto-lib-v3_rolespec.o", "crypto/x509/libcrypto-lib-v3_san.o", + "crypto/x509/libcrypto-lib-v3_sda.o", + "crypto/x509/libcrypto-lib-v3_single_use.o", "crypto/x509/libcrypto-lib-v3_skid.o", + "crypto/x509/libcrypto-lib-v3_soa_id.o", "crypto/x509/libcrypto-lib-v3_sxnet.o", + "crypto/x509/libcrypto-lib-v3_timespec.o", "crypto/x509/libcrypto-lib-v3_tlsf.o", + "crypto/x509/libcrypto-lib-v3_usernotice.o", "crypto/x509/libcrypto-lib-v3_utf8.o", "crypto/x509/libcrypto-lib-v3_utl.o", "crypto/x509/libcrypto-lib-v3err.o", + "crypto/x509/libcrypto-lib-x509_acert.o", "crypto/x509/libcrypto-lib-x509_att.o", "crypto/x509/libcrypto-lib-x509_cmp.o", "crypto/x509/libcrypto-lib-x509_d2.o", @@ -24269,6 +28318,7 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x509_v3.o", "crypto/x509/libcrypto-lib-x509_vfy.o", "crypto/x509/libcrypto-lib-x509_vpm.o", + "crypto/x509/libcrypto-lib-x509aset.o", "crypto/x509/libcrypto-lib-x509cset.o", "crypto/x509/libcrypto-lib-x509name.o", "crypto/x509/libcrypto-lib-x509rset.o", @@ -24278,6 +28328,7 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x_attrib.o", "crypto/x509/libcrypto-lib-x_crl.o", "crypto/x509/libcrypto-lib-x_exten.o", + "crypto/x509/libcrypto-lib-x_ietfatt.o", "crypto/x509/libcrypto-lib-x_name.o", "crypto/x509/libcrypto-lib-x_pubkey.o", "crypto/x509/libcrypto-lib-x_req.o", @@ -24298,14 +28349,15 @@ our %unified_info = ( "ssl/libssl-lib-d1_srtp.o", "ssl/libssl-lib-methods.o", "ssl/libssl-lib-pqueue.o", + "ssl/libssl-lib-priority_queue.o", "ssl/libssl-lib-s3_enc.o", "ssl/libssl-lib-s3_lib.o", "ssl/libssl-lib-s3_msg.o", "ssl/libssl-lib-ssl_asn1.o", "ssl/libssl-lib-ssl_cert.o", + "ssl/libssl-lib-ssl_cert_comp.o", "ssl/libssl-lib-ssl_ciph.o", "ssl/libssl-lib-ssl_conf.o", - "ssl/libssl-lib-ssl_err.o", "ssl/libssl-lib-ssl_err_legacy.o", "ssl/libssl-lib-ssl_init.o", "ssl/libssl-lib-ssl_lib.o", @@ -24322,12 +28374,60 @@ our %unified_info = ( "ssl/libssl-lib-tls13_enc.o", "ssl/libssl-lib-tls_depr.o", "ssl/libssl-lib-tls_srp.o", - "ssl/record/libssl-lib-dtls1_bitmap.o", + "ssl/quic/libssl-lib-cc_newreno.o", + "ssl/quic/libssl-lib-json_enc.o", + "ssl/quic/libssl-lib-qlog.o", + "ssl/quic/libssl-lib-qlog_event_helpers.o", + "ssl/quic/libssl-lib-quic_ackm.o", + "ssl/quic/libssl-lib-quic_cfq.o", + "ssl/quic/libssl-lib-quic_channel.o", + "ssl/quic/libssl-lib-quic_demux.o", + "ssl/quic/libssl-lib-quic_engine.o", + "ssl/quic/libssl-lib-quic_fc.o", + "ssl/quic/libssl-lib-quic_fifd.o", + "ssl/quic/libssl-lib-quic_impl.o", + "ssl/quic/libssl-lib-quic_lcidm.o", + "ssl/quic/libssl-lib-quic_method.o", + "ssl/quic/libssl-lib-quic_obj.o", + "ssl/quic/libssl-lib-quic_port.o", + "ssl/quic/libssl-lib-quic_rcidm.o", + "ssl/quic/libssl-lib-quic_reactor.o", + "ssl/quic/libssl-lib-quic_reactor_wait_ctx.o", + "ssl/quic/libssl-lib-quic_record_rx.o", + "ssl/quic/libssl-lib-quic_record_shared.o", + "ssl/quic/libssl-lib-quic_record_tx.o", + "ssl/quic/libssl-lib-quic_record_util.o", + "ssl/quic/libssl-lib-quic_rstream.o", + "ssl/quic/libssl-lib-quic_rx_depack.o", + "ssl/quic/libssl-lib-quic_sf_list.o", + "ssl/quic/libssl-lib-quic_srt_gen.o", + "ssl/quic/libssl-lib-quic_srtm.o", + "ssl/quic/libssl-lib-quic_sstream.o", + "ssl/quic/libssl-lib-quic_statm.o", + "ssl/quic/libssl-lib-quic_stream_map.o", + "ssl/quic/libssl-lib-quic_thread_assist.o", + "ssl/quic/libssl-lib-quic_tls.o", + "ssl/quic/libssl-lib-quic_tls_api.o", + "ssl/quic/libssl-lib-quic_trace.o", + "ssl/quic/libssl-lib-quic_tserver.o", + "ssl/quic/libssl-lib-quic_txp.o", + "ssl/quic/libssl-lib-quic_txpim.o", + "ssl/quic/libssl-lib-quic_types.o", + "ssl/quic/libssl-lib-quic_wire.o", + "ssl/quic/libssl-lib-quic_wire_pkt.o", + "ssl/quic/libssl-lib-uint_set.o", "ssl/record/libssl-lib-rec_layer_d1.o", "ssl/record/libssl-lib-rec_layer_s3.o", - "ssl/record/libssl-lib-ssl3_buffer.o", - "ssl/record/libssl-lib-ssl3_record.o", - "ssl/record/libssl-lib-ssl3_record_tls13.o", + "ssl/record/methods/libssl-lib-dtls_meth.o", + "ssl/record/methods/libssl-lib-ssl3_meth.o", + "ssl/record/methods/libssl-lib-tls13_meth.o", + "ssl/record/methods/libssl-lib-tls1_meth.o", + "ssl/record/methods/libssl-lib-tls_common.o", + "ssl/record/methods/libssl-lib-tls_multib.o", + "ssl/record/methods/libssl-lib-tlsany_meth.o", + "ssl/rio/libssl-lib-poll_builder.o", + "ssl/rio/libssl-lib-poll_immediate.o", + "ssl/rio/libssl-lib-rio_notifier.o", "ssl/statem/libssl-lib-extensions.o", "ssl/statem/libssl-lib-extensions_clnt.o", "ssl/statem/libssl-lib-extensions_cust.o", @@ -24365,12 +28465,24 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ecx_key.o" => [ "providers/common/der/der_ecx_key.c" ], + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o" => [ + "providers/common/der/der_ml_dsa_gen.c" + ], + "providers/common/der/libcommon-lib-der_ml_dsa_key.o" => [ + "providers/common/der/der_ml_dsa_key.c" + ], "providers/common/der/libcommon-lib-der_rsa_gen.o" => [ "providers/common/der/der_rsa_gen.c" ], "providers/common/der/libcommon-lib-der_rsa_key.o" => [ "providers/common/der/der_rsa_key.c" ], + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o" => [ + "providers/common/der/der_slh_dsa_gen.c" + ], + "providers/common/der/libcommon-lib-der_slh_dsa_key.o" => [ + "providers/common/der/der_slh_dsa_key.c" + ], "providers/common/der/libcommon-lib-der_wrap_gen.o" => [ "providers/common/der/der_wrap_gen.c" ], @@ -24437,6 +28549,9 @@ our %unified_info = ( "providers/common/libfips-lib-securitycheck_fips.o" => [ "providers/common/securitycheck_fips.c" ], + "providers/endecode_test-bin-legacyprov.o" => [ + "providers/legacyprov.c" + ], "providers/evp_extra_test-bin-legacyprov.o" => [ "providers/legacyprov.c" ], @@ -24447,6 +28562,9 @@ our %unified_info = ( "providers/fips/fips-dso-fips_entry.o" => [ "providers/fips/fips_entry.c" ], + "providers/fips/libfips-lib-fipsindicator.o" => [ + "providers/fips/fipsindicator.c" + ], "providers/fips/libfips-lib-fipsprov.o" => [ "providers/fips/fipsprov.c" ], @@ -24510,6 +28628,15 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_hw.o" => [ "providers/implementations/ciphers/cipher_aes_gcm_hw.c" ], + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv.o" => [ + "providers/implementations/ciphers/cipher_aes_gcm_siv.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_hw.o" => [ + "providers/implementations/ciphers/cipher_aes_gcm_siv_hw.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_polyval.o" => [ + "providers/implementations/ciphers/cipher_aes_gcm_siv_polyval.c" + ], "providers/implementations/ciphers/libdefault-lib-cipher_aes_hw.o" => [ "providers/implementations/ciphers/cipher_aes_hw.c" ], @@ -24582,9 +28709,27 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_sm4.o" => [ "providers/implementations/ciphers/cipher_sm4.c" ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm.o" => [ + "providers/implementations/ciphers/cipher_sm4_ccm.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm_hw.o" => [ + "providers/implementations/ciphers/cipher_sm4_ccm_hw.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm.o" => [ + "providers/implementations/ciphers/cipher_sm4_gcm.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm_hw.o" => [ + "providers/implementations/ciphers/cipher_sm4_gcm_hw.c" + ], "providers/implementations/ciphers/libdefault-lib-cipher_sm4_hw.o" => [ "providers/implementations/ciphers/cipher_sm4_hw.c" ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts.o" => [ + "providers/implementations/ciphers/cipher_sm4_xts.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts_hw.o" => [ + "providers/implementations/ciphers/cipher_sm4_xts_hw.c" + ], "providers/implementations/ciphers/libdefault-lib-cipher_tdes.o" => [ "providers/implementations/ciphers/cipher_tdes.c" ], @@ -24804,6 +28949,15 @@ our %unified_info = ( "providers/implementations/encode_decode/libdefault-lib-endecoder_common.o" => [ "providers/implementations/encode_decode/endecoder_common.c" ], + "providers/implementations/encode_decode/libdefault-lib-ml_common_codecs.o" => [ + "providers/implementations/encode_decode/ml_common_codecs.c" + ], + "providers/implementations/encode_decode/libdefault-lib-ml_dsa_codecs.o" => [ + "providers/implementations/encode_decode/ml_dsa_codecs.c" + ], + "providers/implementations/encode_decode/libdefault-lib-ml_kem_codecs.o" => [ + "providers/implementations/encode_decode/ml_kem_codecs.c" + ], "providers/implementations/exchange/libdefault-lib-dh_exch.o" => [ "providers/implementations/exchange/dh_exch.c" ], @@ -24828,9 +28982,15 @@ our %unified_info = ( "providers/implementations/exchange/libfips-lib-kdf_exch.o" => [ "providers/implementations/exchange/kdf_exch.c" ], + "providers/implementations/kdfs/libdefault-lib-argon2.o" => [ + "providers/implementations/kdfs/argon2.c" + ], "providers/implementations/kdfs/libdefault-lib-hkdf.o" => [ "providers/implementations/kdfs/hkdf.c" ], + "providers/implementations/kdfs/libdefault-lib-hmacdrbg_kdf.o" => [ + "providers/implementations/kdfs/hmacdrbg_kdf.c" + ], "providers/implementations/kdfs/libdefault-lib-kbkdf.o" => [ "providers/implementations/kdfs/kbkdf.c" ], @@ -24888,12 +29048,39 @@ our %unified_info = ( "providers/implementations/kdfs/liblegacy-lib-pbkdf1.o" => [ "providers/implementations/kdfs/pbkdf1.c" ], + "providers/implementations/kdfs/liblegacy-lib-pvkkdf.o" => [ + "providers/implementations/kdfs/pvkkdf.c" + ], + "providers/implementations/kem/libdefault-lib-ec_kem.o" => [ + "providers/implementations/kem/ec_kem.c" + ], + "providers/implementations/kem/libdefault-lib-ecx_kem.o" => [ + "providers/implementations/kem/ecx_kem.c" + ], + "providers/implementations/kem/libdefault-lib-kem_util.o" => [ + "providers/implementations/kem/kem_util.c" + ], + "providers/implementations/kem/libdefault-lib-ml_kem_kem.o" => [ + "providers/implementations/kem/ml_kem_kem.c" + ], + "providers/implementations/kem/libdefault-lib-mlx_kem.o" => [ + "providers/implementations/kem/mlx_kem.c" + ], "providers/implementations/kem/libdefault-lib-rsa_kem.o" => [ "providers/implementations/kem/rsa_kem.c" ], + "providers/implementations/kem/libfips-lib-ml_kem_kem.o" => [ + "providers/implementations/kem/ml_kem_kem.c" + ], + "providers/implementations/kem/libfips-lib-mlx_kem.o" => [ + "providers/implementations/kem/mlx_kem.c" + ], "providers/implementations/kem/libfips-lib-rsa_kem.o" => [ "providers/implementations/kem/rsa_kem.c" ], + "providers/implementations/kem/libtemplate-lib-template_kem.o" => [ + "providers/implementations/kem/template_kem.c" + ], "providers/implementations/keymgmt/libdefault-lib-dh_kmgmt.o" => [ "providers/implementations/keymgmt/dh_kmgmt.c" ], @@ -24912,9 +29099,21 @@ our %unified_info = ( "providers/implementations/keymgmt/libdefault-lib-mac_legacy_kmgmt.o" => [ "providers/implementations/keymgmt/mac_legacy_kmgmt.c" ], + "providers/implementations/keymgmt/libdefault-lib-ml_dsa_kmgmt.o" => [ + "providers/implementations/keymgmt/ml_dsa_kmgmt.c" + ], + "providers/implementations/keymgmt/libdefault-lib-ml_kem_kmgmt.o" => [ + "providers/implementations/keymgmt/ml_kem_kmgmt.c" + ], + "providers/implementations/keymgmt/libdefault-lib-mlx_kmgmt.o" => [ + "providers/implementations/keymgmt/mlx_kmgmt.c" + ], "providers/implementations/keymgmt/libdefault-lib-rsa_kmgmt.o" => [ "providers/implementations/keymgmt/rsa_kmgmt.c" ], + "providers/implementations/keymgmt/libdefault-lib-slh_dsa_kmgmt.o" => [ + "providers/implementations/keymgmt/slh_dsa_kmgmt.c" + ], "providers/implementations/keymgmt/libfips-lib-dh_kmgmt.o" => [ "providers/implementations/keymgmt/dh_kmgmt.c" ], @@ -24933,9 +29132,24 @@ our %unified_info = ( "providers/implementations/keymgmt/libfips-lib-mac_legacy_kmgmt.o" => [ "providers/implementations/keymgmt/mac_legacy_kmgmt.c" ], + "providers/implementations/keymgmt/libfips-lib-ml_dsa_kmgmt.o" => [ + "providers/implementations/keymgmt/ml_dsa_kmgmt.c" + ], + "providers/implementations/keymgmt/libfips-lib-ml_kem_kmgmt.o" => [ + "providers/implementations/keymgmt/ml_kem_kmgmt.c" + ], + "providers/implementations/keymgmt/libfips-lib-mlx_kmgmt.o" => [ + "providers/implementations/keymgmt/mlx_kmgmt.c" + ], "providers/implementations/keymgmt/libfips-lib-rsa_kmgmt.o" => [ "providers/implementations/keymgmt/rsa_kmgmt.c" ], + "providers/implementations/keymgmt/libfips-lib-slh_dsa_kmgmt.o" => [ + "providers/implementations/keymgmt/slh_dsa_kmgmt.c" + ], + "providers/implementations/keymgmt/libtemplate-lib-template_kmgmt.o" => [ + "providers/implementations/keymgmt/template_kmgmt.c" + ], "providers/implementations/macs/libdefault-lib-blake2b_mac.o" => [ "providers/implementations/macs/blake2b_mac.c" ], @@ -24972,9 +29186,6 @@ our %unified_info = ( "providers/implementations/macs/libfips-lib-kmac_prov.o" => [ "providers/implementations/macs/kmac_prov.c" ], - "providers/implementations/rands/libdefault-lib-crngt.o" => [ - "providers/implementations/rands/crngt.c" - ], "providers/implementations/rands/libdefault-lib-drbg.o" => [ "providers/implementations/rands/drbg.c" ], @@ -24990,12 +29201,12 @@ our %unified_info = ( "providers/implementations/rands/libdefault-lib-seed_src.o" => [ "providers/implementations/rands/seed_src.c" ], + "providers/implementations/rands/libdefault-lib-seed_src_jitter.o" => [ + "providers/implementations/rands/seed_src_jitter.c" + ], "providers/implementations/rands/libdefault-lib-test_rng.o" => [ "providers/implementations/rands/test_rng.c" ], - "providers/implementations/rands/libfips-lib-crngt.o" => [ - "providers/implementations/rands/crngt.c" - ], "providers/implementations/rands/libfips-lib-drbg.o" => [ "providers/implementations/rands/drbg.c" ], @@ -25008,6 +29219,9 @@ our %unified_info = ( "providers/implementations/rands/libfips-lib-drbg_hmac.o" => [ "providers/implementations/rands/drbg_hmac.c" ], + "providers/implementations/rands/libfips-lib-fips_crng_test.o" => [ + "providers/implementations/rands/fips_crng_test.c" + ], "providers/implementations/rands/libfips-lib-test_rng.o" => [ "providers/implementations/rands/test_rng.c" ], @@ -25035,9 +29249,15 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-mac_legacy_sig.o" => [ "providers/implementations/signature/mac_legacy_sig.c" ], + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o" => [ + "providers/implementations/signature/ml_dsa_sig.c" + ], "providers/implementations/signature/libdefault-lib-rsa_sig.o" => [ "providers/implementations/signature/rsa_sig.c" ], + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o" => [ + "providers/implementations/signature/slh_dsa_sig.c" + ], "providers/implementations/signature/libdefault-lib-sm2_sig.o" => [ "providers/implementations/signature/sm2_sig.c" ], @@ -25053,9 +29273,27 @@ our %unified_info = ( "providers/implementations/signature/libfips-lib-mac_legacy_sig.o" => [ "providers/implementations/signature/mac_legacy_sig.c" ], + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o" => [ + "providers/implementations/signature/ml_dsa_sig.c" + ], "providers/implementations/signature/libfips-lib-rsa_sig.o" => [ "providers/implementations/signature/rsa_sig.c" ], + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o" => [ + "providers/implementations/signature/slh_dsa_sig.c" + ], + "providers/implementations/skeymgmt/libdefault-lib-aes_skmgmt.o" => [ + "providers/implementations/skeymgmt/aes_skmgmt.c" + ], + "providers/implementations/skeymgmt/libdefault-lib-generic.o" => [ + "providers/implementations/skeymgmt/generic.c" + ], + "providers/implementations/skeymgmt/libfips-lib-aes_skmgmt.o" => [ + "providers/implementations/skeymgmt/aes_skmgmt.c" + ], + "providers/implementations/skeymgmt/libfips-lib-generic.o" => [ + "providers/implementations/skeymgmt/generic.c" + ], "providers/implementations/storemgmt/libdefault-lib-file_store.o" => [ "providers/implementations/storemgmt/file_store.c" ], @@ -25079,8 +29317,12 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ec_sig.o", "providers/common/der/libcommon-lib-der_ecx_gen.o", "providers/common/der/libcommon-lib-der_ecx_key.o", + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o", + "providers/common/der/libcommon-lib-der_ml_dsa_key.o", "providers/common/der/libcommon-lib-der_rsa_gen.o", "providers/common/der/libcommon-lib-der_rsa_key.o", + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o", + "providers/common/der/libcommon-lib-der_slh_dsa_key.o", "providers/common/der/libcommon-lib-der_wrap_gen.o", "providers/common/libcommon-lib-provider_ctx.o", "providers/common/libcommon-lib-provider_err.o", @@ -25092,7 +29334,7 @@ our %unified_info = ( "providers/implementations/ciphers/libcommon-lib-ciphercommon_gcm_hw.o", "providers/implementations/ciphers/libcommon-lib-ciphercommon_hw.o", "providers/implementations/digests/libcommon-lib-digestcommon.o", - "ssl/record/libcommon-lib-tls_pad.o" + "ssl/record/methods/libcommon-lib-tls_pad.o" ], "providers/libcrypto-lib-baseprov.o" => [ "providers/baseprov.c" @@ -25128,6 +29370,9 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_aes_ccm_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_polyval.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_ocb.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_ocb_hw.o", @@ -25152,7 +29397,13 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_cts.o", "providers/implementations/ciphers/libdefault-lib-cipher_null.o", "providers/implementations/ciphers/libdefault-lib-cipher_sm4.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_sm4_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes_common.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes_default.o", @@ -25181,11 +29432,16 @@ our %unified_info = ( "providers/implementations/encode_decode/libdefault-lib-encode_key2ms.o", "providers/implementations/encode_decode/libdefault-lib-encode_key2text.o", "providers/implementations/encode_decode/libdefault-lib-endecoder_common.o", + "providers/implementations/encode_decode/libdefault-lib-ml_common_codecs.o", + "providers/implementations/encode_decode/libdefault-lib-ml_dsa_codecs.o", + "providers/implementations/encode_decode/libdefault-lib-ml_kem_codecs.o", "providers/implementations/exchange/libdefault-lib-dh_exch.o", "providers/implementations/exchange/libdefault-lib-ecdh_exch.o", "providers/implementations/exchange/libdefault-lib-ecx_exch.o", "providers/implementations/exchange/libdefault-lib-kdf_exch.o", + "providers/implementations/kdfs/libdefault-lib-argon2.o", "providers/implementations/kdfs/libdefault-lib-hkdf.o", + "providers/implementations/kdfs/libdefault-lib-hmacdrbg_kdf.o", "providers/implementations/kdfs/libdefault-lib-kbkdf.o", "providers/implementations/kdfs/libdefault-lib-krb5kdf.o", "providers/implementations/kdfs/libdefault-lib-pbkdf2.o", @@ -25196,6 +29452,11 @@ our %unified_info = ( "providers/implementations/kdfs/libdefault-lib-sskdf.o", "providers/implementations/kdfs/libdefault-lib-tls1_prf.o", "providers/implementations/kdfs/libdefault-lib-x942kdf.o", + "providers/implementations/kem/libdefault-lib-ec_kem.o", + "providers/implementations/kem/libdefault-lib-ecx_kem.o", + "providers/implementations/kem/libdefault-lib-kem_util.o", + "providers/implementations/kem/libdefault-lib-ml_kem_kem.o", + "providers/implementations/kem/libdefault-lib-mlx_kem.o", "providers/implementations/kem/libdefault-lib-rsa_kem.o", "providers/implementations/keymgmt/libdefault-lib-dh_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-dsa_kmgmt.o", @@ -25203,7 +29464,11 @@ our %unified_info = ( "providers/implementations/keymgmt/libdefault-lib-ecx_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-kdf_legacy_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-mac_legacy_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-ml_dsa_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-ml_kem_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-mlx_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-rsa_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-slh_dsa_kmgmt.o", "providers/implementations/macs/libdefault-lib-blake2b_mac.o", "providers/implementations/macs/libdefault-lib-blake2s_mac.o", "providers/implementations/macs/libdefault-lib-cmac_prov.o", @@ -25212,12 +29477,12 @@ our %unified_info = ( "providers/implementations/macs/libdefault-lib-kmac_prov.o", "providers/implementations/macs/libdefault-lib-poly1305_prov.o", "providers/implementations/macs/libdefault-lib-siphash_prov.o", - "providers/implementations/rands/libdefault-lib-crngt.o", "providers/implementations/rands/libdefault-lib-drbg.o", "providers/implementations/rands/libdefault-lib-drbg_ctr.o", "providers/implementations/rands/libdefault-lib-drbg_hash.o", "providers/implementations/rands/libdefault-lib-drbg_hmac.o", "providers/implementations/rands/libdefault-lib-seed_src.o", + "providers/implementations/rands/libdefault-lib-seed_src_jitter.o", "providers/implementations/rands/libdefault-lib-test_rng.o", "providers/implementations/rands/seeding/libdefault-lib-rand_cpu_x86.o", "providers/implementations/rands/seeding/libdefault-lib-rand_tsc.o", @@ -25227,11 +29492,15 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-ecdsa_sig.o", "providers/implementations/signature/libdefault-lib-eddsa_sig.o", "providers/implementations/signature/libdefault-lib-mac_legacy_sig.o", + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o", "providers/implementations/signature/libdefault-lib-rsa_sig.o", + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o", "providers/implementations/signature/libdefault-lib-sm2_sig.o", + "providers/implementations/skeymgmt/libdefault-lib-aes_skmgmt.o", + "providers/implementations/skeymgmt/libdefault-lib-generic.o", "providers/implementations/storemgmt/libdefault-lib-file_store.o", "providers/implementations/storemgmt/libdefault-lib-file_store_any2obj.o", - "ssl/libdefault-lib-s3_cbc.o" + "ssl/record/methods/libdefault-lib-ssl3_cbc.o" ], "providers/libfips.a" => [ "crypto/aes/libfips-lib-aes_cbc.o", @@ -25333,14 +29602,15 @@ our %unified_info = ( "crypto/evp/libfips-lib-kem.o", "crypto/evp/libfips-lib-keymgmt_lib.o", "crypto/evp/libfips-lib-keymgmt_meth.o", - "crypto/evp/libfips-lib-m_sigver.o", "crypto/evp/libfips-lib-mac_lib.o", "crypto/evp/libfips-lib-mac_meth.o", "crypto/evp/libfips-lib-p_lib.o", "crypto/evp/libfips-lib-pmeth_check.o", "crypto/evp/libfips-lib-pmeth_gn.o", "crypto/evp/libfips-lib-pmeth_lib.o", + "crypto/evp/libfips-lib-s_lib.o", "crypto/evp/libfips-lib-signature.o", + "crypto/evp/libfips-lib-skeymgmt_meth.o", "crypto/ffc/libfips-lib-ffc_backend.o", "crypto/ffc/libfips-lib-ffc_dh.o", "crypto/ffc/libfips-lib-ffc_key_generate.o", @@ -25348,6 +29618,8 @@ our %unified_info = ( "crypto/ffc/libfips-lib-ffc_params.o", "crypto/ffc/libfips-lib-ffc_params_generate.o", "crypto/ffc/libfips-lib-ffc_params_validate.o", + "crypto/hashtable/libfips-lib-hashfunc.o", + "crypto/hashtable/libfips-lib-hashtable.o", "crypto/hmac/libfips-lib-hmac.o", "crypto/lhash/libfips-lib-lhash.o", "crypto/libfips-lib-asn1_dsa.o", @@ -25370,6 +29642,7 @@ our %unified_info = ( "crypto/libfips-lib-params.o", "crypto/libfips-lib-params_dup.o", "crypto/libfips-lib-params_from_text.o", + "crypto/libfips-lib-params_idx.o", "crypto/libfips-lib-provider_core.o", "crypto/libfips-lib-provider_predefined.o", "crypto/libfips-lib-self_test_core.o", @@ -25378,6 +29651,16 @@ our %unified_info = ( "crypto/libfips-lib-threads_none.o", "crypto/libfips-lib-threads_pthread.o", "crypto/libfips-lib-threads_win.o", + "crypto/libfips-lib-time.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_encoders.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_key.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_key_compress.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_matrix.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_ntt.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_params.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_sample.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_sign.o", + "crypto/ml_kem/libfips-lib-ml_kem.o", "crypto/modes/libfips-lib-cbc128.o", "crypto/modes/libfips-lib-ccm128.o", "crypto/modes/libfips-lib-cfb128.o", @@ -25386,6 +29669,7 @@ our %unified_info = ( "crypto/modes/libfips-lib-ofb128.o", "crypto/modes/libfips-lib-wrap128.o", "crypto/modes/libfips-lib-xts128.o", + "crypto/modes/libfips-lib-xts128gb.o", "crypto/property/libfips-lib-defn_cache.o", "crypto/property/libfips-lib-property.o", "crypto/property/libfips-lib-property_parse.o", @@ -25414,7 +29698,23 @@ our %unified_info = ( "crypto/sha/libfips-lib-sha256.o", "crypto/sha/libfips-lib-sha3.o", "crypto/sha/libfips-lib-sha512.o", + "crypto/slh_dsa/libfips-lib-slh_adrs.o", + "crypto/slh_dsa/libfips-lib-slh_dsa.o", + "crypto/slh_dsa/libfips-lib-slh_dsa_hash_ctx.o", + "crypto/slh_dsa/libfips-lib-slh_dsa_key.o", + "crypto/slh_dsa/libfips-lib-slh_fors.o", + "crypto/slh_dsa/libfips-lib-slh_hash.o", + "crypto/slh_dsa/libfips-lib-slh_hypertree.o", + "crypto/slh_dsa/libfips-lib-slh_params.o", + "crypto/slh_dsa/libfips-lib-slh_wots.o", + "crypto/slh_dsa/libfips-lib-slh_xmss.o", "crypto/stack/libfips-lib-stack.o", + "crypto/thread/arch/libfips-lib-thread_none.o", + "crypto/thread/arch/libfips-lib-thread_posix.o", + "crypto/thread/arch/libfips-lib-thread_win.o", + "crypto/thread/libfips-lib-api.o", + "crypto/thread/libfips-lib-arch.o", + "crypto/thread/libfips-lib-internal.o", "providers/common/der/libfips-lib-der_rsa_sig.o", "providers/common/libfips-lib-bio_prov.o", "providers/common/libfips-lib-capabilities.o", @@ -25423,6 +29723,7 @@ our %unified_info = ( "providers/common/libfips-lib-provider_util.o", "providers/common/libfips-lib-securitycheck.o", "providers/common/libfips-lib-securitycheck_fips.o", + "providers/fips/libfips-lib-fipsindicator.o", "providers/fips/libfips-lib-fipsprov.o", "providers/fips/libfips-lib-self_test.o", "providers/fips/libfips-lib-self_test_kats.o", @@ -25460,6 +29761,8 @@ our %unified_info = ( "providers/implementations/kdfs/libfips-lib-sskdf.o", "providers/implementations/kdfs/libfips-lib-tls1_prf.o", "providers/implementations/kdfs/libfips-lib-x942kdf.o", + "providers/implementations/kem/libfips-lib-ml_kem_kem.o", + "providers/implementations/kem/libfips-lib-mlx_kem.o", "providers/implementations/kem/libfips-lib-rsa_kem.o", "providers/implementations/keymgmt/libfips-lib-dh_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-dsa_kmgmt.o", @@ -25467,24 +29770,32 @@ our %unified_info = ( "providers/implementations/keymgmt/libfips-lib-ecx_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-kdf_legacy_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-mac_legacy_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-ml_dsa_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-ml_kem_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-mlx_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-rsa_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-slh_dsa_kmgmt.o", "providers/implementations/macs/libfips-lib-cmac_prov.o", "providers/implementations/macs/libfips-lib-gmac_prov.o", "providers/implementations/macs/libfips-lib-hmac_prov.o", "providers/implementations/macs/libfips-lib-kmac_prov.o", - "providers/implementations/rands/libfips-lib-crngt.o", "providers/implementations/rands/libfips-lib-drbg.o", "providers/implementations/rands/libfips-lib-drbg_ctr.o", "providers/implementations/rands/libfips-lib-drbg_hash.o", "providers/implementations/rands/libfips-lib-drbg_hmac.o", + "providers/implementations/rands/libfips-lib-fips_crng_test.o", "providers/implementations/rands/libfips-lib-test_rng.o", "providers/implementations/signature/libfips-lib-dsa_sig.o", "providers/implementations/signature/libfips-lib-ecdsa_sig.o", "providers/implementations/signature/libfips-lib-eddsa_sig.o", "providers/implementations/signature/libfips-lib-mac_legacy_sig.o", + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o", "providers/implementations/signature/libfips-lib-rsa_sig.o", + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o", + "providers/implementations/skeymgmt/libfips-lib-aes_skmgmt.o", + "providers/implementations/skeymgmt/libfips-lib-generic.o", "providers/libcommon.a", - "ssl/libfips-lib-s3_cbc.o" + "ssl/record/methods/libfips-lib-ssl3_cbc.o" ], "providers/liblegacy-lib-prov_running.o" => [ "providers/prov_running.c" @@ -25514,13 +29825,12 @@ our %unified_info = ( "providers/implementations/digests/liblegacy-lib-ripemd_prov.o", "providers/implementations/digests/liblegacy-lib-wp_prov.o", "providers/implementations/kdfs/liblegacy-lib-pbkdf1.o", + "providers/implementations/kdfs/liblegacy-lib-pvkkdf.o", "providers/liblegacy-lib-prov_running.o" ], - "ssl/libdefault-lib-s3_cbc.o" => [ - "ssl/s3_cbc.c" - ], - "ssl/libfips-lib-s3_cbc.o" => [ - "ssl/s3_cbc.c" + "providers/libtemplate.a" => [ + "providers/implementations/kem/libtemplate-lib-template_kem.o", + "providers/implementations/keymgmt/libtemplate-lib-template_kmgmt.o" ], "ssl/libssl-lib-bio_ssl.o" => [ "ssl/bio_ssl.c" @@ -25540,6 +29850,9 @@ our %unified_info = ( "ssl/libssl-lib-pqueue.o" => [ "ssl/pqueue.c" ], + "ssl/libssl-lib-priority_queue.o" => [ + "ssl/priority_queue.c" + ], "ssl/libssl-lib-s3_enc.o" => [ "ssl/s3_enc.c" ], @@ -25555,15 +29868,15 @@ our %unified_info = ( "ssl/libssl-lib-ssl_cert.o" => [ "ssl/ssl_cert.c" ], + "ssl/libssl-lib-ssl_cert_comp.o" => [ + "ssl/ssl_cert_comp.c" + ], "ssl/libssl-lib-ssl_ciph.o" => [ "ssl/ssl_ciph.c" ], "ssl/libssl-lib-ssl_conf.o" => [ "ssl/ssl_conf.c" ], - "ssl/libssl-lib-ssl_err.o" => [ - "ssl/ssl_err.c" - ], "ssl/libssl-lib-ssl_err_legacy.o" => [ "ssl/ssl_err_legacy.c" ], @@ -25612,11 +29925,131 @@ our %unified_info = ( "ssl/libssl-lib-tls_srp.o" => [ "ssl/tls_srp.c" ], - "ssl/record/libcommon-lib-tls_pad.o" => [ - "ssl/record/tls_pad.c" + "ssl/quic/libssl-lib-cc_newreno.o" => [ + "ssl/quic/cc_newreno.c" + ], + "ssl/quic/libssl-lib-json_enc.o" => [ + "ssl/quic/json_enc.c" + ], + "ssl/quic/libssl-lib-qlog.o" => [ + "ssl/quic/qlog.c" + ], + "ssl/quic/libssl-lib-qlog_event_helpers.o" => [ + "ssl/quic/qlog_event_helpers.c" + ], + "ssl/quic/libssl-lib-quic_ackm.o" => [ + "ssl/quic/quic_ackm.c" + ], + "ssl/quic/libssl-lib-quic_cfq.o" => [ + "ssl/quic/quic_cfq.c" + ], + "ssl/quic/libssl-lib-quic_channel.o" => [ + "ssl/quic/quic_channel.c" + ], + "ssl/quic/libssl-lib-quic_demux.o" => [ + "ssl/quic/quic_demux.c" + ], + "ssl/quic/libssl-lib-quic_engine.o" => [ + "ssl/quic/quic_engine.c" + ], + "ssl/quic/libssl-lib-quic_fc.o" => [ + "ssl/quic/quic_fc.c" + ], + "ssl/quic/libssl-lib-quic_fifd.o" => [ + "ssl/quic/quic_fifd.c" + ], + "ssl/quic/libssl-lib-quic_impl.o" => [ + "ssl/quic/quic_impl.c" + ], + "ssl/quic/libssl-lib-quic_lcidm.o" => [ + "ssl/quic/quic_lcidm.c" + ], + "ssl/quic/libssl-lib-quic_method.o" => [ + "ssl/quic/quic_method.c" + ], + "ssl/quic/libssl-lib-quic_obj.o" => [ + "ssl/quic/quic_obj.c" + ], + "ssl/quic/libssl-lib-quic_port.o" => [ + "ssl/quic/quic_port.c" + ], + "ssl/quic/libssl-lib-quic_rcidm.o" => [ + "ssl/quic/quic_rcidm.c" + ], + "ssl/quic/libssl-lib-quic_reactor.o" => [ + "ssl/quic/quic_reactor.c" + ], + "ssl/quic/libssl-lib-quic_reactor_wait_ctx.o" => [ + "ssl/quic/quic_reactor_wait_ctx.c" + ], + "ssl/quic/libssl-lib-quic_record_rx.o" => [ + "ssl/quic/quic_record_rx.c" + ], + "ssl/quic/libssl-lib-quic_record_shared.o" => [ + "ssl/quic/quic_record_shared.c" + ], + "ssl/quic/libssl-lib-quic_record_tx.o" => [ + "ssl/quic/quic_record_tx.c" + ], + "ssl/quic/libssl-lib-quic_record_util.o" => [ + "ssl/quic/quic_record_util.c" + ], + "ssl/quic/libssl-lib-quic_rstream.o" => [ + "ssl/quic/quic_rstream.c" ], - "ssl/record/libssl-lib-dtls1_bitmap.o" => [ - "ssl/record/dtls1_bitmap.c" + "ssl/quic/libssl-lib-quic_rx_depack.o" => [ + "ssl/quic/quic_rx_depack.c" + ], + "ssl/quic/libssl-lib-quic_sf_list.o" => [ + "ssl/quic/quic_sf_list.c" + ], + "ssl/quic/libssl-lib-quic_srt_gen.o" => [ + "ssl/quic/quic_srt_gen.c" + ], + "ssl/quic/libssl-lib-quic_srtm.o" => [ + "ssl/quic/quic_srtm.c" + ], + "ssl/quic/libssl-lib-quic_sstream.o" => [ + "ssl/quic/quic_sstream.c" + ], + "ssl/quic/libssl-lib-quic_statm.o" => [ + "ssl/quic/quic_statm.c" + ], + "ssl/quic/libssl-lib-quic_stream_map.o" => [ + "ssl/quic/quic_stream_map.c" + ], + "ssl/quic/libssl-lib-quic_thread_assist.o" => [ + "ssl/quic/quic_thread_assist.c" + ], + "ssl/quic/libssl-lib-quic_tls.o" => [ + "ssl/quic/quic_tls.c" + ], + "ssl/quic/libssl-lib-quic_tls_api.o" => [ + "ssl/quic/quic_tls_api.c" + ], + "ssl/quic/libssl-lib-quic_trace.o" => [ + "ssl/quic/quic_trace.c" + ], + "ssl/quic/libssl-lib-quic_tserver.o" => [ + "ssl/quic/quic_tserver.c" + ], + "ssl/quic/libssl-lib-quic_txp.o" => [ + "ssl/quic/quic_txp.c" + ], + "ssl/quic/libssl-lib-quic_txpim.o" => [ + "ssl/quic/quic_txpim.c" + ], + "ssl/quic/libssl-lib-quic_types.o" => [ + "ssl/quic/quic_types.c" + ], + "ssl/quic/libssl-lib-quic_wire.o" => [ + "ssl/quic/quic_wire.c" + ], + "ssl/quic/libssl-lib-quic_wire_pkt.o" => [ + "ssl/quic/quic_wire_pkt.c" + ], + "ssl/quic/libssl-lib-uint_set.o" => [ + "ssl/quic/uint_set.c" ], "ssl/record/libssl-lib-rec_layer_d1.o" => [ "ssl/record/rec_layer_d1.c" @@ -25624,14 +30057,44 @@ our %unified_info = ( "ssl/record/libssl-lib-rec_layer_s3.o" => [ "ssl/record/rec_layer_s3.c" ], - "ssl/record/libssl-lib-ssl3_buffer.o" => [ - "ssl/record/ssl3_buffer.c" + "ssl/record/methods/libcommon-lib-tls_pad.o" => [ + "ssl/record/methods/tls_pad.c" + ], + "ssl/record/methods/libdefault-lib-ssl3_cbc.o" => [ + "ssl/record/methods/ssl3_cbc.c" + ], + "ssl/record/methods/libfips-lib-ssl3_cbc.o" => [ + "ssl/record/methods/ssl3_cbc.c" + ], + "ssl/record/methods/libssl-lib-dtls_meth.o" => [ + "ssl/record/methods/dtls_meth.c" + ], + "ssl/record/methods/libssl-lib-ssl3_meth.o" => [ + "ssl/record/methods/ssl3_meth.c" + ], + "ssl/record/methods/libssl-lib-tls13_meth.o" => [ + "ssl/record/methods/tls13_meth.c" + ], + "ssl/record/methods/libssl-lib-tls1_meth.o" => [ + "ssl/record/methods/tls1_meth.c" + ], + "ssl/record/methods/libssl-lib-tls_common.o" => [ + "ssl/record/methods/tls_common.c" ], - "ssl/record/libssl-lib-ssl3_record.o" => [ - "ssl/record/ssl3_record.c" + "ssl/record/methods/libssl-lib-tls_multib.o" => [ + "ssl/record/methods/tls_multib.c" ], - "ssl/record/libssl-lib-ssl3_record_tls13.o" => [ - "ssl/record/ssl3_record_tls13.c" + "ssl/record/methods/libssl-lib-tlsany_meth.o" => [ + "ssl/record/methods/tlsany_meth.c" + ], + "ssl/rio/libssl-lib-poll_builder.o" => [ + "ssl/rio/poll_builder.c" + ], + "ssl/rio/libssl-lib-poll_immediate.o" => [ + "ssl/rio/poll_immediate.c" + ], + "ssl/rio/libssl-lib-rio_notifier.o" => [ + "ssl/rio/rio_notifier.c" ], "ssl/statem/libssl-lib-extensions.o" => [ "ssl/statem/extensions.c" @@ -25727,6 +30190,8 @@ our %unified_info = ( "test/asn1_string_table_test.c" ], "test/asn1_time_test" => [ + "crypto/asn1/asn1_time_test-bin-a_time.o", + "crypto/asn1_time_test-bin-ctype.o", "test/asn1_time_test-bin-asn1_time_test.o" ], "test/asn1_time_test-bin-asn1_time_test.o" => [ @@ -25757,6 +30222,18 @@ our %unified_info = ( "test/bftest-bin-bftest.o" => [ "test/bftest.c" ], + "test/bio_addr_test" => [ + "test/bio_addr_test-bin-bio_addr_test.o" + ], + "test/bio_addr_test-bin-bio_addr_test.o" => [ + "test/bio_addr_test.c" + ], + "test/bio_base64_test" => [ + "test/bio_base64_test-bin-bio_base64_test.o" + ], + "test/bio_base64_test-bin-bio_base64_test.o" => [ + "test/bio_base64_test.c" + ], "test/bio_callback_test" => [ "test/bio_callback_test-bin-bio_callback_test.o" ], @@ -25769,6 +30246,12 @@ our %unified_info = ( "test/bio_core_test-bin-bio_core_test.o" => [ "test/bio_core_test.c" ], + "test/bio_dgram_test" => [ + "test/bio_dgram_test-bin-bio_dgram_test.o" + ], + "test/bio_dgram_test-bin-bio_dgram_test.o" => [ + "test/bio_dgram_test.c" + ], "test/bio_enc_test" => [ "test/bio_enc_test-bin-bio_enc_test.o" ], @@ -25781,6 +30264,12 @@ our %unified_info = ( "test/bio_memleak_test-bin-bio_memleak_test.o" => [ "test/bio_memleak_test.c" ], + "test/bio_meth_test" => [ + "test/bio_meth_test-bin-bio_meth_test.o" + ], + "test/bio_meth_test-bin-bio_meth_test.o" => [ + "test/bio_meth_test.c" + ], "test/bio_prefix_text" => [ "test/bio_prefix_text-bin-bio_prefix_text.o" ], @@ -25799,6 +30288,12 @@ our %unified_info = ( "test/bio_readbuffer_test-bin-bio_readbuffer_test.o" => [ "test/bio_readbuffer_test.c" ], + "test/bio_tfo_test" => [ + "test/bio_tfo_test-bin-bio_tfo_test.o" + ], + "test/bio_tfo_test-bin-bio_tfo_test.o" => [ + "test/bio_tfo_test.c" + ], "test/bioprinttest" => [ "test/bioprinttest-bin-bioprinttest.o" ], @@ -25817,6 +30312,12 @@ our %unified_info = ( "test/bntest-bin-bntest.o" => [ "test/bntest.c" ], + "test/build_wincrypt_test" => [ + "test/build_wincrypt_test-bin-build_wincrypt_test.o" + ], + "test/build_wincrypt_test-bin-build_wincrypt_test.o" => [ + "test/build_wincrypt_test.c" + ], "test/buildtest_c_aes" => [ "test/buildtest_c_aes-bin-buildtest_aes.o" ], @@ -25847,6 +30348,12 @@ our %unified_info = ( "test/buildtest_c_buffer-bin-buildtest_buffer.o" => [ "test/buildtest_buffer.c" ], + "test/buildtest_c_byteorder" => [ + "test/buildtest_c_byteorder-bin-buildtest_byteorder.o" + ], + "test/buildtest_c_byteorder-bin-buildtest_byteorder.o" => [ + "test/buildtest_byteorder.c" + ], "test/buildtest_c_camellia" => [ "test/buildtest_c_camellia-bin-buildtest_camellia.o" ], @@ -25895,12 +30402,6 @@ our %unified_info = ( "test/buildtest_c_core_dispatch-bin-buildtest_core_dispatch.o" => [ "test/buildtest_core_dispatch.c" ], - "test/buildtest_c_core_names" => [ - "test/buildtest_c_core_names-bin-buildtest_core_names.o" - ], - "test/buildtest_c_core_names-bin-buildtest_core_names.o" => [ - "test/buildtest_core_names.c" - ], "test/buildtest_c_core_object" => [ "test/buildtest_c_core_object-bin-buildtest_core_object.o" ], @@ -25949,6 +30450,12 @@ our %unified_info = ( "test/buildtest_c_e_os2-bin-buildtest_e_os2.o" => [ "test/buildtest_e_os2.c" ], + "test/buildtest_c_e_ostime" => [ + "test/buildtest_c_e_ostime-bin-buildtest_e_ostime.o" + ], + "test/buildtest_c_e_ostime-bin-buildtest_e_ostime.o" => [ + "test/buildtest_e_ostime.c" + ], "test/buildtest_c_ebcdic" => [ "test/buildtest_c_ebcdic-bin-buildtest_ebcdic.o" ], @@ -26003,6 +30510,12 @@ our %unified_info = ( "test/buildtest_c_hmac-bin-buildtest_hmac.o" => [ "test/buildtest_hmac.c" ], + "test/buildtest_c_hpke" => [ + "test/buildtest_c_hpke-bin-buildtest_hpke.o" + ], + "test/buildtest_c_hpke-bin-buildtest_hpke.o" => [ + "test/buildtest_hpke.c" + ], "test/buildtest_c_http" => [ "test/buildtest_c_http-bin-buildtest_http.o" ], @@ -26015,6 +30528,12 @@ our %unified_info = ( "test/buildtest_c_idea-bin-buildtest_idea.o" => [ "test/buildtest_idea.c" ], + "test/buildtest_c_indicator" => [ + "test/buildtest_c_indicator-bin-buildtest_indicator.o" + ], + "test/buildtest_c_indicator-bin-buildtest_indicator.o" => [ + "test/buildtest_indicator.c" + ], "test/buildtest_c_kdf" => [ "test/buildtest_c_kdf-bin-buildtest_kdf.o" ], @@ -26045,6 +30564,12 @@ our %unified_info = ( "test/buildtest_c_mdc2-bin-buildtest_mdc2.o" => [ "test/buildtest_mdc2.c" ], + "test/buildtest_c_ml_kem" => [ + "test/buildtest_c_ml_kem-bin-buildtest_ml_kem.o" + ], + "test/buildtest_c_ml_kem-bin-buildtest_ml_kem.o" => [ + "test/buildtest_ml_kem.c" + ], "test/buildtest_c_modes" => [ "test/buildtest_c_modes-bin-buildtest_modes.o" ], @@ -26105,6 +30630,12 @@ our %unified_info = ( "test/buildtest_c_provider-bin-buildtest_provider.o" => [ "test/buildtest_provider.c" ], + "test/buildtest_c_quic" => [ + "test/buildtest_c_quic-bin-buildtest_quic.o" + ], + "test/buildtest_c_quic-bin-buildtest_quic.o" => [ + "test/buildtest_quic.c" + ], "test/buildtest_c_rand" => [ "test/buildtest_c_rand-bin-buildtest_rand.o" ], @@ -26189,6 +30720,12 @@ our %unified_info = ( "test/buildtest_c_symhacks-bin-buildtest_symhacks.o" => [ "test/buildtest_symhacks.c" ], + "test/buildtest_c_thread" => [ + "test/buildtest_c_thread-bin-buildtest_thread.o" + ], + "test/buildtest_c_thread-bin-buildtest_thread.o" => [ + "test/buildtest_thread.c" + ], "test/buildtest_c_tls1" => [ "test/buildtest_c_tls1-bin-buildtest_tls1.o" ], @@ -26219,6 +30756,29 @@ our %unified_info = ( "test/buildtest_c_whrlpool-bin-buildtest_whrlpool.o" => [ "test/buildtest_whrlpool.c" ], + "test/byteorder_test" => [ + "test/byteorder_test-bin-byteorder_test.o" + ], + "test/byteorder_test-bin-byteorder_test.o" => [ + "test/byteorder_test.c" + ], + "test/ca_internals_test" => [ + "apps/ca_internals_test-bin-ca.o", + "apps/lib/ca_internals_test-bin-app_libctx.o", + "apps/lib/ca_internals_test-bin-app_provider.o", + "apps/lib/ca_internals_test-bin-app_rand.o", + "apps/lib/ca_internals_test-bin-app_x509.o", + "apps/lib/ca_internals_test-bin-apps.o", + "apps/lib/ca_internals_test-bin-apps_ui.o", + "apps/lib/ca_internals_test-bin-engine.o", + "apps/lib/ca_internals_test-bin-fmt.o", + "crypto/asn1/ca_internals_test-bin-a_time.o", + "crypto/ca_internals_test-bin-ctype.o", + "test/ca_internals_test-bin-ca_internals_test.o" + ], + "test/ca_internals_test-bin-ca_internals_test.o" => [ + "test/ca_internals_test.c" + ], "test/casttest" => [ "test/casttest-bin-casttest.o" ], @@ -26397,6 +30957,12 @@ our %unified_info = ( "test/danetest-bin-danetest.o" => [ "test/danetest.c" ], + "test/decoder_propq_test" => [ + "test/decoder_propq_test-bin-decoder_propq_test.o" + ], + "test/decoder_propq_test-bin-decoder_propq_test.o" => [ + "test/decoder_propq_test.c" + ], "test/defltfips_test" => [ "test/defltfips_test-bin-defltfips_test.o" ], @@ -26478,6 +31044,7 @@ our %unified_info = ( "test/ectest.c" ], "test/endecode_test" => [ + "providers/endecode_test-bin-legacyprov.o", "test/endecode_test-bin-endecode_test.o", "test/helpers/endecode_test-bin-predefined_dhparams.o" ], @@ -26510,17 +31077,29 @@ our %unified_info = ( ], "test/evp_extra_test" => [ "providers/evp_extra_test-bin-legacyprov.o", - "test/evp_extra_test-bin-evp_extra_test.o" + "test/evp_extra_test-bin-evp_extra_test.o", + "test/evp_extra_test-bin-fake_pipelineprov.o", + "test/evp_extra_test-bin-fake_rsaprov.o" ], "test/evp_extra_test-bin-evp_extra_test.o" => [ "test/evp_extra_test.c" ], + "test/evp_extra_test-bin-fake_pipelineprov.o" => [ + "test/fake_pipelineprov.c" + ], + "test/evp_extra_test-bin-fake_rsaprov.o" => [ + "test/fake_rsaprov.c" + ], "test/evp_extra_test2" => [ - "test/evp_extra_test2-bin-evp_extra_test2.o" + "test/evp_extra_test2-bin-evp_extra_test2.o", + "test/evp_extra_test2-bin-tls-provider.o" ], "test/evp_extra_test2-bin-evp_extra_test2.o" => [ "test/evp_extra_test2.c" ], + "test/evp_extra_test2-bin-tls-provider.o" => [ + "test/tls-provider.c" + ], "test/evp_fetch_prov_test" => [ "test/evp_fetch_prov_test-bin-evp_fetch_prov_test.o" ], @@ -26545,6 +31124,12 @@ our %unified_info = ( "test/evp_pkey_ctx_new_from_name-bin-evp_pkey_ctx_new_from_name.o" => [ "test/evp_pkey_ctx_new_from_name.c" ], + "test/evp_pkey_dhkem_test" => [ + "test/evp_pkey_dhkem_test-bin-evp_pkey_dhkem_test.o" + ], + "test/evp_pkey_dhkem_test-bin-evp_pkey_dhkem_test.o" => [ + "test/evp_pkey_dhkem_test.c" + ], "test/evp_pkey_dparams_test" => [ "test/evp_pkey_dparams_test-bin-evp_pkey_dparams_test.o" ], @@ -26557,12 +31142,28 @@ our %unified_info = ( "test/evp_pkey_provided_test-bin-evp_pkey_provided_test.o" => [ "test/evp_pkey_provided_test.c" ], + "test/evp_skey_test" => [ + "test/evp_skey_test-bin-evp_skey_test.o", + "test/evp_skey_test-bin-fake_cipherprov.o" + ], + "test/evp_skey_test-bin-evp_skey_test.o" => [ + "test/evp_skey_test.c" + ], + "test/evp_skey_test-bin-fake_cipherprov.o" => [ + "test/fake_cipherprov.c" + ], "test/evp_test" => [ "test/evp_test-bin-evp_test.o" ], "test/evp_test-bin-evp_test.o" => [ "test/evp_test.c" ], + "test/evp_xof_test" => [ + "test/evp_xof_test-bin-evp_xof_test.o" + ], + "test/evp_xof_test-bin-evp_xof_test.o" => [ + "test/evp_xof_test.c" + ], "test/exdatatest" => [ "test/exdatatest-bin-exdatatest.o" ], @@ -26648,15 +31249,108 @@ our %unified_info = ( "test/helpers/fatalerrtest-bin-ssltestlib.o" => [ "test/helpers/ssltestlib.c" ], + "test/helpers/json_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/json_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/json_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/json_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/pkcs12_api_test-bin-pkcs12.o" => [ + "test/helpers/pkcs12.c" + ], "test/helpers/pkcs12_format_test-bin-pkcs12.o" => [ "test/helpers/pkcs12.c" ], + "test/helpers/quic_multistream_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quic_multistream_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quic_multistream_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quic_multistream_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quic_newcid_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quic_newcid_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quic_newcid_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quic_newcid_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quic_radix_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quic_radix_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quic_radix_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quic_radix_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quic_srt_gen_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quic_srt_gen_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quic_srt_gen_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quic_srt_gen_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quicapitest-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quicapitest-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quicapitest-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quicapitest-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quicfaultstest-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quicfaultstest-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quicfaultstest-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quicfaultstest-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], "test/helpers/recordlentest-bin-ssltestlib.o" => [ "test/helpers/ssltestlib.c" ], + "test/helpers/rpktest-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], "test/helpers/servername_test-bin-ssltestlib.o" => [ "test/helpers/ssltestlib.c" ], + "test/helpers/ssl_handshake_rtt_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], "test/helpers/ssl_old_test-bin-predefined_dhparams.o" => [ "test/helpers/predefined_dhparams.c" ], @@ -26684,6 +31378,9 @@ our %unified_info = ( "test/helpers/tls13ccstest-bin-ssltestlib.o" => [ "test/helpers/ssltestlib.c" ], + "test/helpers/tls13groupselection_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], "test/hexstr_test" => [ "test/hexstr_test-bin-hexstr_test.o" ], @@ -26696,6 +31393,12 @@ our %unified_info = ( "test/hmactest-bin-hmactest.o" => [ "test/hmactest.c" ], + "test/hpke_test" => [ + "test/hpke_test-bin-hpke_test.o" + ], + "test/hpke_test-bin-hpke_test.o" => [ + "test/hpke_test.c" + ], "test/http_test" => [ "test/http_test-bin-http_test.o" ], @@ -26714,6 +31417,16 @@ our %unified_info = ( "test/igetest-bin-igetest.o" => [ "test/igetest.c" ], + "test/json_test" => [ + "test/helpers/json_test-bin-noisydgrambio.o", + "test/helpers/json_test-bin-pktsplitbio.o", + "test/helpers/json_test-bin-quictestlib.o", + "test/helpers/json_test-bin-ssltestlib.o", + "test/json_test-bin-json_test.o" + ], + "test/json_test-bin-json_test.o" => [ + "test/json_test.c" + ], "test/keymgmt_internal_test" => [ "test/keymgmt_internal_test-bin-keymgmt_internal_test.o" ], @@ -26734,6 +31447,7 @@ our %unified_info = ( "test/testutil/libtestutil-lib-driver.o", "test/testutil/libtestutil-lib-fake_random.o", "test/testutil/libtestutil-lib-format_output.o", + "test/testutil/libtestutil-lib-helper.o", "test/testutil/libtestutil-lib-load.o", "test/testutil/libtestutil-lib-main.o", "test/testutil/libtestutil-lib-options.o", @@ -26746,6 +31460,12 @@ our %unified_info = ( "test/testutil/libtestutil-lib-tests.o", "test/testutil/libtestutil-lib-testutil_init.o" ], + "test/list_test" => [ + "test/list_test-bin-list_test.o" + ], + "test/list_test-bin-list_test.o" => [ + "test/list_test.c" + ], "test/localetest" => [ "test/localetest-bin-localetest.o" ], @@ -26764,12 +31484,36 @@ our %unified_info = ( "test/mdc2test-bin-mdc2test.o" => [ "test/mdc2test.c" ], + "test/membio_test" => [ + "test/membio_test-bin-membio_test.o" + ], + "test/membio_test-bin-membio_test.o" => [ + "test/membio_test.c" + ], "test/memleaktest" => [ "test/memleaktest-bin-memleaktest.o" ], "test/memleaktest-bin-memleaktest.o" => [ "test/memleaktest.c" ], + "test/ml_dsa_test" => [ + "test/ml_dsa_test-bin-ml_dsa_test.o" + ], + "test/ml_dsa_test-bin-ml_dsa_test.o" => [ + "test/ml_dsa_test.c" + ], + "test/ml_kem_evp_extra_test" => [ + "test/ml_kem_evp_extra_test-bin-ml_kem_evp_extra_test.o" + ], + "test/ml_kem_evp_extra_test-bin-ml_kem_evp_extra_test.o" => [ + "test/ml_kem_evp_extra_test.c" + ], + "test/ml_kem_internal_test" => [ + "test/ml_kem_internal_test-bin-ml_kem_internal_test.o" + ], + "test/ml_kem_internal_test-bin-ml_kem_internal_test.o" => [ + "test/ml_kem_internal_test.c" + ], "test/modes_internal_test" => [ "test/modes_internal_test-bin-modes_internal_test.o" ], @@ -26815,11 +31559,18 @@ our %unified_info = ( "test/p_test.c" ], "test/packettest" => [ + "crypto/packettest-bin-quic_vlint.o", "test/packettest-bin-packettest.o" ], "test/packettest-bin-packettest.o" => [ "test/packettest.c" ], + "test/pairwise_fail_test" => [ + "test/pairwise_fail_test-bin-pairwise_fail_test.o" + ], + "test/pairwise_fail_test-bin-pairwise_fail_test.o" => [ + "test/pairwise_fail_test.c" + ], "test/param_build_test" => [ "test/param_build_test-bin-param_build_test.o" ], @@ -26868,6 +31619,13 @@ our %unified_info = ( "test/pemtest-bin-pemtest.o" => [ "test/pemtest.c" ], + "test/pkcs12_api_test" => [ + "test/helpers/pkcs12_api_test-bin-pkcs12.o", + "test/pkcs12_api_test-bin-pkcs12_api_test.o" + ], + "test/pkcs12_api_test-bin-pkcs12_api_test.o" => [ + "test/pkcs12_api_test.c" + ], "test/pkcs12_format_test" => [ "test/helpers/pkcs12_format_test-bin-pkcs12.o", "test/pkcs12_format_test-bin-pkcs12_format_test.o" @@ -26899,6 +31657,12 @@ our %unified_info = ( "test/poly1305_internal_test-bin-poly1305_internal_test.o" => [ "test/poly1305_internal_test.c" ], + "test/priority_queue_test" => [ + "test/priority_queue_test-bin-priority_queue_test.o" + ], + "test/priority_queue_test-bin-priority_queue_test.o" => [ + "test/priority_queue_test.c" + ], "test/property_test" => [ "test/property_test-bin-property_test.o" ], @@ -26917,6 +31681,12 @@ our %unified_info = ( "test/provfetchtest-bin-provfetchtest.o" => [ "test/provfetchtest.c" ], + "test/provider_default_search_path_test" => [ + "test/provider_default_search_path_test-bin-provider_default_search_path_test.o" + ], + "test/provider_default_search_path_test-bin-provider_default_search_path_test.o" => [ + "test/provider_default_search_path_test.c" + ], "test/provider_fallback_test" => [ "test/provider_fallback_test-bin-provider_fallback_test.o" ], @@ -26965,6 +31735,174 @@ our %unified_info = ( "test/punycode_test-bin-punycode_test.o" => [ "test/punycode_test.c" ], + "test/quic_ackm_test" => [ + "test/quic_ackm_test-bin-cc_dummy.o", + "test/quic_ackm_test-bin-quic_ackm_test.o" + ], + "test/quic_ackm_test-bin-cc_dummy.o" => [ + "test/cc_dummy.c" + ], + "test/quic_ackm_test-bin-quic_ackm_test.o" => [ + "test/quic_ackm_test.c" + ], + "test/quic_cc_test" => [ + "test/quic_cc_test-bin-quic_cc_test.o" + ], + "test/quic_cc_test-bin-quic_cc_test.o" => [ + "test/quic_cc_test.c" + ], + "test/quic_cfq_test" => [ + "test/quic_cfq_test-bin-quic_cfq_test.o" + ], + "test/quic_cfq_test-bin-quic_cfq_test.o" => [ + "test/quic_cfq_test.c" + ], + "test/quic_client_test" => [ + "test/quic_client_test-bin-quic_client_test.o" + ], + "test/quic_client_test-bin-quic_client_test.o" => [ + "test/quic_client_test.c" + ], + "test/quic_fc_test" => [ + "test/quic_fc_test-bin-quic_fc_test.o" + ], + "test/quic_fc_test-bin-quic_fc_test.o" => [ + "test/quic_fc_test.c" + ], + "test/quic_fifd_test" => [ + "test/quic_fifd_test-bin-cc_dummy.o", + "test/quic_fifd_test-bin-quic_fifd_test.o" + ], + "test/quic_fifd_test-bin-cc_dummy.o" => [ + "test/cc_dummy.c" + ], + "test/quic_fifd_test-bin-quic_fifd_test.o" => [ + "test/quic_fifd_test.c" + ], + "test/quic_lcidm_test" => [ + "test/quic_lcidm_test-bin-quic_lcidm_test.o" + ], + "test/quic_lcidm_test-bin-quic_lcidm_test.o" => [ + "test/quic_lcidm_test.c" + ], + "test/quic_multistream_test" => [ + "test/helpers/quic_multistream_test-bin-noisydgrambio.o", + "test/helpers/quic_multistream_test-bin-pktsplitbio.o", + "test/helpers/quic_multistream_test-bin-quictestlib.o", + "test/helpers/quic_multistream_test-bin-ssltestlib.o", + "test/quic_multistream_test-bin-quic_multistream_test.o" + ], + "test/quic_multistream_test-bin-quic_multistream_test.o" => [ + "test/quic_multistream_test.c" + ], + "test/quic_newcid_test" => [ + "test/helpers/quic_newcid_test-bin-noisydgrambio.o", + "test/helpers/quic_newcid_test-bin-pktsplitbio.o", + "test/helpers/quic_newcid_test-bin-quictestlib.o", + "test/helpers/quic_newcid_test-bin-ssltestlib.o", + "test/quic_newcid_test-bin-quic_newcid_test.o" + ], + "test/quic_newcid_test-bin-quic_newcid_test.o" => [ + "test/quic_newcid_test.c" + ], + "test/quic_qlog_test" => [ + "test/quic_qlog_test-bin-quic_qlog_test.o" + ], + "test/quic_qlog_test-bin-quic_qlog_test.o" => [ + "test/quic_qlog_test.c" + ], + "test/quic_radix_test" => [ + "test/helpers/quic_radix_test-bin-noisydgrambio.o", + "test/helpers/quic_radix_test-bin-pktsplitbio.o", + "test/helpers/quic_radix_test-bin-quictestlib.o", + "test/helpers/quic_radix_test-bin-ssltestlib.o", + "test/radix/quic_radix_test-bin-quic_radix.o" + ], + "test/quic_rcidm_test" => [ + "test/quic_rcidm_test-bin-quic_rcidm_test.o" + ], + "test/quic_rcidm_test-bin-quic_rcidm_test.o" => [ + "test/quic_rcidm_test.c" + ], + "test/quic_record_test" => [ + "test/quic_record_test-bin-quic_record_test.o" + ], + "test/quic_record_test-bin-quic_record_test.o" => [ + "test/quic_record_test.c" + ], + "test/quic_srt_gen_test" => [ + "test/helpers/quic_srt_gen_test-bin-noisydgrambio.o", + "test/helpers/quic_srt_gen_test-bin-pktsplitbio.o", + "test/helpers/quic_srt_gen_test-bin-quictestlib.o", + "test/helpers/quic_srt_gen_test-bin-ssltestlib.o", + "test/quic_srt_gen_test-bin-quic_srt_gen_test.o" + ], + "test/quic_srt_gen_test-bin-quic_srt_gen_test.o" => [ + "test/quic_srt_gen_test.c" + ], + "test/quic_srtm_test" => [ + "test/quic_srtm_test-bin-quic_srtm_test.o" + ], + "test/quic_srtm_test-bin-quic_srtm_test.o" => [ + "test/quic_srtm_test.c" + ], + "test/quic_stream_test" => [ + "test/quic_stream_test-bin-quic_stream_test.o" + ], + "test/quic_stream_test-bin-quic_stream_test.o" => [ + "test/quic_stream_test.c" + ], + "test/quic_tserver_test" => [ + "test/quic_tserver_test-bin-quic_tserver_test.o" + ], + "test/quic_tserver_test-bin-quic_tserver_test.o" => [ + "test/quic_tserver_test.c" + ], + "test/quic_txp_test" => [ + "test/quic_txp_test-bin-cc_dummy.o", + "test/quic_txp_test-bin-quic_txp_test.o" + ], + "test/quic_txp_test-bin-cc_dummy.o" => [ + "test/cc_dummy.c" + ], + "test/quic_txp_test-bin-quic_txp_test.o" => [ + "test/quic_txp_test.c" + ], + "test/quic_txpim_test" => [ + "test/quic_txpim_test-bin-quic_txpim_test.o" + ], + "test/quic_txpim_test-bin-quic_txpim_test.o" => [ + "test/quic_txpim_test.c" + ], + "test/quic_wire_test" => [ + "test/quic_wire_test-bin-quic_wire_test.o" + ], + "test/quic_wire_test-bin-quic_wire_test.o" => [ + "test/quic_wire_test.c" + ], + "test/quicapitest" => [ + "test/helpers/quicapitest-bin-noisydgrambio.o", + "test/helpers/quicapitest-bin-pktsplitbio.o", + "test/helpers/quicapitest-bin-quictestlib.o", + "test/helpers/quicapitest-bin-ssltestlib.o", + "test/quicapitest-bin-quicapitest.o" + ], + "test/quicapitest-bin-quicapitest.o" => [ + "test/quicapitest.c" + ], + "test/quicfaultstest" => [ + "test/helpers/quicfaultstest-bin-noisydgrambio.o", + "test/helpers/quicfaultstest-bin-pktsplitbio.o", + "test/helpers/quicfaultstest-bin-quictestlib.o", + "test/helpers/quicfaultstest-bin-ssltestlib.o", + "test/quicfaultstest-bin-quicfaultstest.o" + ], + "test/quicfaultstest-bin-quicfaultstest.o" => [ + "test/quicfaultstest.c" + ], + "test/radix/quic_radix_test-bin-quic_radix.o" => [ + "test/radix/quic_radix.c" + ], "test/rand_status_test" => [ "test/rand_status_test-bin-rand_status_test.o" ], @@ -26995,11 +31933,11 @@ our %unified_info = ( "test/rc5test-bin-rc5test.o" => [ "test/rc5test.c" ], - "test/rdrand_sanitytest" => [ - "test/rdrand_sanitytest-bin-rdrand_sanitytest.o" + "test/rdcpu_sanitytest" => [ + "test/rdcpu_sanitytest-bin-rdcpu_sanitytest.o" ], - "test/rdrand_sanitytest-bin-rdrand_sanitytest.o" => [ - "test/rdrand_sanitytest.c" + "test/rdcpu_sanitytest-bin-rdcpu_sanitytest.o" => [ + "test/rdcpu_sanitytest.c" ], "test/recordlentest" => [ "test/helpers/recordlentest-bin-ssltestlib.o", @@ -27008,6 +31946,13 @@ our %unified_info = ( "test/recordlentest-bin-recordlentest.o" => [ "test/recordlentest.c" ], + "test/rpktest" => [ + "test/helpers/rpktest-bin-ssltestlib.o", + "test/rpktest-bin-rpktest.o" + ], + "test/rpktest-bin-rpktest.o" => [ + "test/rpktest.c" + ], "test/rsa_complex" => [ "test/rsa_complex-bin-rsa_complex.o" ], @@ -27032,6 +31977,18 @@ our %unified_info = ( "test/rsa_test-bin-rsa_test.o" => [ "test/rsa_test.c" ], + "test/rsa_x931_test" => [ + "test/rsa_x931_test-bin-rsa_x931_test.o" + ], + "test/rsa_x931_test-bin-rsa_x931_test.o" => [ + "test/rsa_x931_test.c" + ], + "test/safe_math_test" => [ + "test/safe_math_test-bin-safe_math_test.o" + ], + "test/safe_math_test-bin-safe_math_test.o" => [ + "test/safe_math_test.c" + ], "test/sanitytest" => [ "test/sanitytest-bin-sanitytest.o" ], @@ -27063,6 +32020,12 @@ our %unified_info = ( "test/siphash_internal_test-bin-siphash_internal_test.o" => [ "test/siphash_internal_test.c" ], + "test/slh_dsa_test" => [ + "test/slh_dsa_test-bin-slh_dsa_test.o" + ], + "test/slh_dsa_test-bin-slh_dsa_test.o" => [ + "test/slh_dsa_test.c" + ], "test/sm2_internal_test" => [ "test/sm2_internal_test-bin-sm2_internal_test.o" ], @@ -27105,6 +32068,13 @@ our %unified_info = ( "test/ssl_ctx_test-bin-ssl_ctx_test.o" => [ "test/ssl_ctx_test.c" ], + "test/ssl_handshake_rtt_test" => [ + "test/helpers/ssl_handshake_rtt_test-bin-ssltestlib.o", + "test/ssl_handshake_rtt_test-bin-ssl_handshake_rtt_test.o" + ], + "test/ssl_handshake_rtt_test-bin-ssl_handshake_rtt_test.o" => [ + "test/ssl_handshake_rtt_test.c" + ], "test/ssl_old_test" => [ "test/helpers/ssl_old_test-bin-predefined_dhparams.o", "test/ssl_old_test-bin-ssl_old_test.o" @@ -27163,6 +32133,12 @@ our %unified_info = ( "test/stack_test-bin-stack_test.o" => [ "test/stack_test.c" ], + "test/strtoultest" => [ + "test/strtoultest-bin-strtoultest.o" + ], + "test/strtoultest-bin-strtoultest.o" => [ + "test/strtoultest.c" + ], "test/sysdefaulttest" => [ "test/sysdefaulttest-bin-sysdefaulttest.o" ], @@ -27193,6 +32169,9 @@ our %unified_info = ( "test/testutil/libtestutil-lib-format_output.o" => [ "test/testutil/format_output.c" ], + "test/testutil/libtestutil-lib-helper.o" => [ + "test/testutil/helper.c" + ], "test/testutil/libtestutil-lib-load.o" => [ "test/testutil/load.c" ], @@ -27226,6 +32205,12 @@ our %unified_info = ( "test/testutil/libtestutil-lib-testutil_init.o" => [ "test/testutil/testutil_init.c" ], + "test/threadpool_test" => [ + "test/threadpool_test-bin-threadpool_test.o" + ], + "test/threadpool_test-bin-threadpool_test.o" => [ + "test/threadpool_test.c" + ], "test/threadstest" => [ "test/threadstest-bin-threadstest.o" ], @@ -27244,6 +32229,12 @@ our %unified_info = ( "test/time_offset_test-bin-time_offset_test.o" => [ "test/time_offset_test.c" ], + "test/time_test" => [ + "test/time_test-bin-time_test.o" + ], + "test/time_test-bin-time_test.o" => [ + "test/time_test.c" + ], "test/tls13ccstest" => [ "test/helpers/tls13ccstest-bin-ssltestlib.o", "test/tls13ccstest-bin-tls13ccstest.o" @@ -27257,6 +32248,13 @@ our %unified_info = ( "test/tls13encryptiontest-bin-tls13encryptiontest.o" => [ "test/tls13encryptiontest.c" ], + "test/tls13groupselection_test" => [ + "test/helpers/tls13groupselection_test-bin-ssltestlib.o", + "test/tls13groupselection_test-bin-tls13groupselection_test.o" + ], + "test/tls13groupselection_test-bin-tls13groupselection_test.o" => [ + "test/tls13groupselection_test.c" + ], "test/trace_api_test" => [ "test/trace_api_test-bin-trace_api_test.o" ], @@ -27312,6 +32310,12 @@ our %unified_info = ( "test/wpackettest-bin-wpackettest.o" => [ "test/wpackettest.c" ], + "test/x509_acert_test" => [ + "test/x509_acert_test-bin-x509_acert_test.o" + ], + "test/x509_acert_test-bin-x509_acert_test.o" => [ + "test/x509_acert_test.c" + ], "test/x509_check_cert_pkey_test" => [ "test/x509_check_cert_pkey_test-bin-x509_check_cert_pkey_test.o" ], @@ -27330,6 +32334,24 @@ our %unified_info = ( "test/x509_internal_test-bin-x509_internal_test.o" => [ "test/x509_internal_test.c" ], + "test/x509_load_cert_file_test" => [ + "test/x509_load_cert_file_test-bin-x509_load_cert_file_test.o" + ], + "test/x509_load_cert_file_test-bin-x509_load_cert_file_test.o" => [ + "test/x509_load_cert_file_test.c" + ], + "test/x509_req_test" => [ + "test/x509_req_test-bin-x509_req_test.o" + ], + "test/x509_req_test-bin-x509_req_test.o" => [ + "test/x509_req_test.c" + ], + "test/x509_test" => [ + "test/x509_test-bin-x509_test.o" + ], + "test/x509_test-bin-x509_test.o" => [ + "test/x509_test.c" + ], "test/x509_time_test" => [ "test/x509_time_test-bin-x509_time_test.o" ], @@ -27393,6 +32415,7 @@ my @makevars = ( "LDLIBS", "MT", "MTFLAGS", + "OBJCOPY", "PERL", "RANLIB", "RC", @@ -27409,6 +32432,12 @@ my %disabled_info = ( "asm" => { "macro" => "OPENSSL_NO_ASM" }, + "brotli" => { + "macro" => "OPENSSL_NO_BROTLI" + }, + "brotli-dynamic" => { + "macro" => "OPENSSL_NO_BROTLI_DYNAMIC" + }, "comp" => { "macro" => "OPENSSL_NO_COMP", "skipped" => [ @@ -27421,6 +32450,9 @@ my %disabled_info = ( "crypto-mdebug-backtrace" => { "macro" => "OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE" }, + "demos" => { + "macro" => "OPENSSL_NO_DEMOS" + }, "devcryptoeng" => { "macro" => "OPENSSL_NO_DEVCRYPTOENG" }, @@ -27433,12 +32465,24 @@ my %disabled_info = ( "external-tests" => { "macro" => "OPENSSL_NO_EXTERNAL_TESTS" }, + "fips-jitter" => { + "macro" => "OPENSSL_NO_FIPS_JITTER" + }, "fuzz-afl" => { "macro" => "OPENSSL_NO_FUZZ_AFL" }, "fuzz-libfuzzer" => { "macro" => "OPENSSL_NO_FUZZ_LIBFUZZER" }, + "h3demo" => { + "macro" => "OPENSSL_NO_H3DEMO" + }, + "hqinterop" => { + "macro" => "OPENSSL_NO_HQINTEROP" + }, + "jitter" => { + "macro" => "OPENSSL_NO_JITTER" + }, "ktls" => { "macro" => "OPENSSL_NO_KTLS" }, @@ -27454,6 +32498,9 @@ my %disabled_info = ( "msan" => { "macro" => "OPENSSL_NO_MSAN" }, + "pie" => { + "macro" => "OPENSSL_NO_PIE" + }, "rc5" => { "macro" => "OPENSSL_NO_RC5", "skipped" => [ @@ -27469,6 +32516,12 @@ my %disabled_info = ( "ssl3-method" => { "macro" => "OPENSSL_NO_SSL3_METHOD" }, + "sslkeylog" => { + "macro" => "OPENSSL_NO_SSLKEYLOG" + }, + "tfo" => { + "macro" => "OPENSSL_NO_TFO" + }, "trace" => { "macro" => "OPENSSL_NO_TRACE" }, @@ -27483,6 +32536,21 @@ my %disabled_info = ( }, "weak-ssl-ciphers" => { "macro" => "OPENSSL_NO_WEAK_SSL_CIPHERS" + }, + "winstore" => { + "macro" => "OPENSSL_NO_WINSTORE" + }, + "zlib" => { + "macro" => "OPENSSL_NO_ZLIB" + }, + "zlib-dynamic" => { + "macro" => "OPENSSL_NO_ZLIB_DYNAMIC" + }, + "zstd" => { + "macro" => "OPENSSL_NO_ZSTD" + }, + "zstd-dynamic" => { + "macro" => "OPENSSL_NO_ZSTD_DYNAMIC" } ); my @user_crossable = qw( AR AS CC CXX CPP LD MT RANLIB RC ); @@ -27496,15 +32564,15 @@ unless (caller) { use File::Copy; use Pod::Usage; - use lib '/home/runner/work/node/node/deps/openssl/openssl/util/perl'; - use OpenSSL::fallback '/home/runner/work/node/node/deps/openssl/openssl/external/perl/MODULES.txt'; + use lib '/node/deps/openssl/openssl/util/perl'; + use OpenSSL::fallback '/node/deps/openssl/openssl/external/perl/MODULES.txt'; my $here = dirname($0); if (scalar @ARGV == 0) { # With no arguments, re-create the build file # We do that in two steps, where the first step emits perl - # snipets. + # snippets. my $buildfile = $config{build_file}; my $buildfile_template = "$buildfile.in"; @@ -27524,7 +32592,7 @@ unless (caller) { ); use lib '.'; - use lib '/home/runner/work/node/node/deps/openssl/openssl/Configurations'; + use lib '/node/deps/openssl/openssl/Configurations'; use gentemplate; open my $buildfile_template_fh, ">$buildfile_template" @@ -27541,8 +32609,8 @@ unless (caller) { my $prepend = <<'_____'; use File::Spec::Functions; -use lib '/home/runner/work/node/node/deps/openssl/openssl/util/perl'; -use lib '/home/runner/work/node/node/deps/openssl/openssl/Configurations'; +use lib '/node/deps/openssl/openssl/util/perl'; +use lib '/node/deps/openssl/openssl/Configurations'; use lib '.'; use platform; _____ diff --git a/deps/openssl/config/archs/aix64-gcc-as/no-asm/crypto/buildinf.h b/deps/openssl/config/archs/aix64-gcc-as/no-asm/crypto/buildinf.h index 28b322a172b0d4..9397135d1c95ce 100644 --- a/deps/openssl/config/archs/aix64-gcc-as/no-asm/crypto/buildinf.h +++ b/deps/openssl/config/archs/aix64-gcc-as/no-asm/crypto/buildinf.h @@ -11,7 +11,7 @@ */ #define PLATFORM "platform: aix64-gcc-as" -#define DATE "built on: Sun Jul 20 00:45:29 2025 UTC" +#define DATE "built on: Sun Jul 27 00:45:27 2025 UTC" /* * Generate compiler_flags as an array of individual characters. This is a diff --git a/deps/openssl/config/archs/aix64-gcc-as/no-asm/crypto/params_idx.c b/deps/openssl/config/archs/aix64-gcc-as/no-asm/crypto/params_idx.c new file mode 100644 index 00000000000000..9d76ffededc24c --- /dev/null +++ b/deps/openssl/config/archs/aix64-gcc-as/no-asm/crypto/params_idx.c @@ -0,0 +1,3366 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from crypto/params_idx.c.in + * + * Copyright 2023 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + +#include "internal/e_os.h" +#include "internal/param_names.h" +#include + +/* Machine generated TRIE -- generated by util/perl/OpenSSL/paramnames.pm */ +int ossl_param_find_pidx(const char *s) +{ + switch(s[0]) { + default: + break; + case 'a': + switch(s[1]) { + default: + break; + case 'c': + if (strcmp("vp-info", s + 2) == 0) + return PIDX_KDF_PARAM_X942_ACVPINFO; + break; + case 'd': + switch(s[2]) { + default: + break; + case 'd': + if (strcmp("itional-random", s + 3) == 0) + return PIDX_SIGNATURE_PARAM_ADD_RANDOM; + break; + case '\0': + return PIDX_KDF_PARAM_ARGON2_AD; + } + break; + case 'e': + if (strcmp("ad", s + 2) == 0) + return PIDX_CIPHER_PARAM_AEAD; + break; + case 'l': + switch(s[2]) { + default: + break; + case 'g': + switch(s[3]) { + default: + break; + case '_': + if (strcmp("id_param", s + 4) == 0) + return PIDX_CIPHER_PARAM_ALGORITHM_ID_PARAMS_OLD; + break; + case 'i': + if (strcmp("d-absent", s + 4) == 0) + return PIDX_DIGEST_PARAM_ALGID_ABSENT; + break; + case 'o': + switch(s[4]) { + default: + break; + case 'r': + switch(s[5]) { + default: + break; + case 'i': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case 'h': + switch(s[8]) { + default: + break; + case 'm': + switch(s[9]) { + default: + break; + case '-': + switch(s[10]) { + default: + break; + case 'i': + switch(s[11]) { + default: + break; + case 'd': + switch(s[12]) { + default: + break; + case '-': + if (strcmp("params", s + 13) == 0) + return PIDX_ALG_PARAM_ALGORITHM_ID_PARAMS; + break; + case '\0': + return PIDX_ALG_PARAM_ALGORITHM_ID; + } + } + } + } + } + } + } + } + } + } + break; + case 'i': + if (strcmp("as", s + 3) == 0) + return PIDX_STORE_PARAM_ALIAS; + } + break; + case '\0': + return PIDX_PKEY_PARAM_EC_A; + } + break; + case 'b': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("sis-type", s + 2) == 0) + return PIDX_PKEY_PARAM_EC_CHAR2_TYPE; + break; + case 'i': + if (strcmp("ts", s + 2) == 0) + return PIDX_PKEY_PARAM_BITS; + break; + case 'l': + switch(s[2]) { + default: + break; + case 'o': + switch(s[3]) { + default: + break; + case 'c': + switch(s[4]) { + default: + break; + case 'k': + switch(s[5]) { + default: + break; + case '-': + if (strcmp("size", s + 6) == 0) + return PIDX_MAC_PARAM_BLOCK_SIZE; + break; + case '_': + if (strcmp("padding", s + 6) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_BLOCK_PADDING; + break; + case 's': + if (strcmp("ize", s + 6) == 0) + return PIDX_DIGEST_PARAM_BLOCK_SIZE; + } + } + } + } + break; + case 'u': + if (strcmp("ildinfo", s + 2) == 0) + return PIDX_PROV_PARAM_BUILDINFO; + break; + case '\0': + return PIDX_PKEY_PARAM_EC_B; + } + break; + case 'c': + switch(s[1]) { + default: + break; + case '-': + if (strcmp("rounds", s + 2) == 0) + return PIDX_MAC_PARAM_C_ROUNDS; + break; + case 'e': + if (strcmp("kalg", s + 2) == 0) + return PIDX_KDF_PARAM_CEK_ALG; + break; + case 'i': + if (strcmp("pher", s + 2) == 0) + return PIDX_ALG_PARAM_CIPHER; + break; + case 'o': + switch(s[2]) { + default: + break; + case 'f': + if (strcmp("actor", s + 3) == 0) + return PIDX_PKEY_PARAM_EC_COFACTOR; + break; + case 'n': + switch(s[3]) { + default: + break; + case 's': + if (strcmp("tant", s + 4) == 0) + return PIDX_KDF_PARAM_CONSTANT; + break; + case 't': + if (strcmp("ext-string", s + 4) == 0) + return PIDX_SIGNATURE_PARAM_CONTEXT_STRING; + } + } + break; + case 't': + switch(s[2]) { + default: + break; + case 's': + switch(s[3]) { + default: + break; + case '_': + if (strcmp("mode", s + 4) == 0) + return PIDX_CIPHER_PARAM_CTS_MODE; + break; + case '\0': + return PIDX_CIPHER_PARAM_CTS; + } + } + break; + case 'u': + switch(s[2]) { + default: + break; + case 's': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case 'o': + switch(s[5]) { + default: + break; + case 'm': + switch(s[6]) { + default: + break; + case '-': + if (strcmp("iv", s + 7) == 0) + return PIDX_CIPHER_PARAM_CUSTOM_IV; + break; + case '\0': + return PIDX_MAC_PARAM_CUSTOM; + } + } + } + } + } + } + break; + case 'd': + switch(s[1]) { + default: + break; + case '-': + if (strcmp("rounds", s + 2) == 0) + return PIDX_MAC_PARAM_D_ROUNDS; + break; + case 'a': + switch(s[2]) { + default: + break; + case 't': + switch(s[3]) { + default: + break; + case 'a': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 's': + if (strcmp("tructure", s + 6) == 0) + return PIDX_OBJECT_PARAM_DATA_STRUCTURE; + break; + case 't': + if (strcmp("ype", s + 6) == 0) + return PIDX_OBJECT_PARAM_DATA_TYPE; + } + break; + case '\0': + return PIDX_OBJECT_PARAM_DATA; + } + } + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'c': + switch(s[3]) { + default: + break; + case 'o': + if (strcmp("ded-from-explicit", s + 4) == 0) + return PIDX_PKEY_PARAM_EC_DECODED_FROM_EXPLICIT_PARAMS; + break; + case 'r': + if (strcmp("ypt-only", s + 4) == 0) + return PIDX_CIPHER_PARAM_DECRYPT_ONLY; + } + break; + case 'f': + if (strcmp("ault-digest", s + 3) == 0) + return PIDX_PKEY_PARAM_DEFAULT_DIGEST; + break; + case 's': + if (strcmp("c", s + 3) == 0) + return PIDX_OBJECT_PARAM_DESC; + break; + case 't': + if (strcmp("erministic", s + 3) == 0) + return PIDX_SIGNATURE_PARAM_DETERMINISTIC; + } + break; + case 'h': + if (strcmp("kem-ikm", s + 2) == 0) + return PIDX_PKEY_PARAM_DHKEM_IKM; + break; + case 'i': + switch(s[2]) { + default: + break; + case 'g': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case 's': + switch(s[5]) { + default: + break; + case 't': + switch(s[6]) { + default: + break; + case '-': + switch(s[7]) { + default: + break; + case 'c': + if (strcmp("heck", s + 8) == 0) + return PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK; + break; + case 'n': + if (strcmp("oinit", s + 8) == 0) + return PIDX_MAC_PARAM_DIGEST_NOINIT; + break; + case 'o': + if (strcmp("neshot", s + 8) == 0) + return PIDX_MAC_PARAM_DIGEST_ONESHOT; + break; + case 'p': + if (strcmp("rops", s + 8) == 0) + return PIDX_ASYM_CIPHER_PARAM_OAEP_DIGEST_PROPS; + break; + case 's': + if (strcmp("ize", s + 8) == 0) + return PIDX_PKEY_PARAM_DIGEST_SIZE; + } + break; + case '\0': + return PIDX_STORE_PARAM_DIGEST; + } + } + } + } + break; + case 's': + if (strcmp("tid", s + 3) == 0) + return PIDX_PKEY_PARAM_DIST_ID; + } + break; + case 'r': + if (strcmp("bg-no-trunc-md", s + 2) == 0) + return PIDX_PROV_PARAM_DRBG_TRUNC_DIGEST; + break; + case 's': + if (strcmp("a-sign-disabled", s + 2) == 0) + return PIDX_PROV_PARAM_DSA_SIGN_DISABLED; + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_D; + } + break; + case 'e': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("rly_clean", s + 2) == 0) + return PIDX_KDF_PARAM_EARLY_CLEAN; + break; + case 'c': + switch(s[2]) { + default: + break; + case 'd': + switch(s[3]) { + default: + break; + case 'h': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'c': + switch(s[6]) { + default: + break; + case 'o': + switch(s[7]) { + default: + break; + case 'f': + switch(s[8]) { + default: + break; + case 'a': + switch(s[9]) { + default: + break; + case 'c': + switch(s[10]) { + default: + break; + case 't': + switch(s[11]) { + default: + break; + case 'o': + switch(s[12]) { + default: + break; + case 'r': + switch(s[13]) { + default: + break; + case '-': + switch(s[14]) { + default: + break; + case 'c': + if (strcmp("heck", s + 15) == 0) + return PIDX_PROV_PARAM_ECDH_COFACTOR_CHECK; + break; + case 'm': + if (strcmp("ode", s + 15) == 0) + return PIDX_EXCHANGE_PARAM_EC_ECDH_COFACTOR_MODE; + } + } + } + } + } + } + } + } + } + } + } + } + } + break; + case 'm': + if (strcmp("s_check", s + 2) == 0) + return PIDX_KDF_PARAM_FIPS_EMS_CHECK; + break; + case 'n': + switch(s[2]) { + default: + break; + case 'c': + switch(s[3]) { + default: + break; + case 'o': + switch(s[4]) { + default: + break; + case 'd': + switch(s[5]) { + default: + break; + case 'e': + if (strcmp("d-pub-key", s + 6) == 0) + return PIDX_PKEY_PARAM_ENCODED_PUBLIC_KEY; + break; + case 'i': + if (strcmp("ng", s + 6) == 0) + return PIDX_PKEY_PARAM_EC_ENCODING; + } + } + break; + case 'r': + switch(s[4]) { + default: + break; + case 'y': + switch(s[5]) { + default: + break; + case 'p': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case '-': + switch(s[8]) { + default: + break; + case 'c': + if (strcmp("heck", s + 9) == 0) + return PIDX_CIPHER_PARAM_FIPS_ENCRYPT_CHECK; + break; + case 'l': + if (strcmp("evel", s + 9) == 0) + return PIDX_ENCODER_PARAM_ENCRYPT_LEVEL; + } + } + } + } + } + } + break; + case 'g': + if (strcmp("ine", s + 3) == 0) + return PIDX_ALG_PARAM_ENGINE; + break; + case 't': + switch(s[3]) { + default: + break; + case 'r': + switch(s[4]) { + default: + break; + case 'o': + switch(s[5]) { + default: + break; + case 'p': + switch(s[6]) { + default: + break; + case 'y': + switch(s[7]) { + default: + break; + case '_': + if (strcmp("required", s + 8) == 0) + return PIDX_DRBG_PARAM_ENTROPY_REQUIRED; + break; + case '\0': + return PIDX_KDF_PARAM_HMACDRBG_ENTROPY; + } + } + } + } + } + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_E; + break; + case 'x': + if (strcmp("pect", s + 2) == 0) + return PIDX_STORE_PARAM_EXPECT; + } + break; + case 'f': + switch(s[1]) { + default: + break; + case 'i': + switch(s[2]) { + default: + break; + case 'e': + if (strcmp("ld-type", s + 3) == 0) + return PIDX_PKEY_PARAM_EC_FIELD_TYPE; + break; + case 'n': + if (strcmp("gerprint", s + 3) == 0) + return PIDX_STORE_PARAM_FINGERPRINT; + break; + case 'p': + if (strcmp("s-indicator", s + 3) == 0) + return PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR; + } + } + break; + case 'g': + switch(s[1]) { + default: + break; + case 'e': + switch(s[2]) { + default: + break; + case 'n': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case 'r': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case 'e': + switch(s[8]) { + default: + break; + case '\0': + return PIDX_RAND_PARAM_GENERATE; + } + break; + case 'o': + if (strcmp("r", s + 8) == 0) + return PIDX_PKEY_PARAM_EC_GENERATOR; + } + } + } + } + } + } + break; + case 'i': + if (strcmp("ndex", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_GINDEX; + break; + case 'r': + switch(s[2]) { + default: + break; + case 'o': + switch(s[3]) { + default: + break; + case 'u': + switch(s[4]) { + default: + break; + case 'p': + switch(s[5]) { + default: + break; + case '-': + if (strcmp("check", s + 6) == 0) + return PIDX_PKEY_PARAM_EC_GROUP_CHECK_TYPE; + break; + case '\0': + return PIDX_PKEY_PARAM_GROUP_NAME; + } + } + } + } + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_G; + } + break; + case 'h': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("s-randkey", s + 2) == 0) + return PIDX_CIPHER_PARAM_HAS_RAND_KEY; + break; + case 'i': + if (strcmp("ndex", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_H; + break; + case 'k': + switch(s[2]) { + default: + break; + case 'd': + switch(s[3]) { + default: + break; + case 'f': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 6) == 0) + return PIDX_PROV_PARAM_HKDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 6) == 0) + return PIDX_PROV_PARAM_HKDF_KEY_CHECK; + } + } + } + } + break; + case 'm': + if (strcmp("ac-key-check", s + 2) == 0) + return PIDX_PROV_PARAM_HMAC_KEY_CHECK; + break; + case 's': + if (strcmp("_padding", s + 2) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_HS_PADDING; + } + break; + case 'i': + switch(s[1]) { + default: + break; + case 'd': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_KDF_PARAM_PKCS12_ID; + } + break; + case 'k': + if (strcmp("me", s + 2) == 0) + return PIDX_KEM_PARAM_IKME; + break; + case 'm': + if (strcmp("plicit-rejection", s + 2) == 0) + return PIDX_PKEY_PARAM_IMPLICIT_REJECTION; + break; + case 'n': + switch(s[2]) { + default: + break; + case 'c': + if (strcmp("lude-public", s + 3) == 0) + return PIDX_PKEY_PARAM_EC_INCLUDE_PUBLIC; + break; + case 'f': + if (strcmp("o", s + 3) == 0) + return PIDX_PASSPHRASE_PARAM_INFO; + break; + case 'p': + if (strcmp("ut-type", s + 3) == 0) + return PIDX_STORE_PARAM_INPUT_TYPE; + break; + case 's': + if (strcmp("tance", s + 3) == 0) + return PIDX_SIGNATURE_PARAM_INSTANCE; + } + break; + case 't': + switch(s[2]) { + default: + break; + case 'e': + switch(s[3]) { + default: + break; + case 'r': + switch(s[4]) { + default: + break; + case 'a': + if (strcmp("tion", s + 5) == 0) + return PIDX_GEN_PARAM_ITERATION; + break; + case '\0': + return PIDX_KDF_PARAM_ITER; + } + } + } + break; + case 'v': + switch(s[2]) { + default: + break; + case '-': + if (strcmp("generated", s + 3) == 0) + return PIDX_CIPHER_PARAM_AEAD_IV_GENERATED; + break; + case 'l': + if (strcmp("en", s + 3) == 0) + return PIDX_CIPHER_PARAM_IVLEN; + break; + case '\0': + return PIDX_MAC_PARAM_IV; + } + } + break; + case 'j': + switch(s[1]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_COFACTOR; + } + break; + case 'k': + switch(s[1]) { + default: + break; + case '1': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_PP_K1; + } + break; + case '2': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_PP_K2; + } + break; + case '3': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_PP_K3; + } + break; + case 'a': + if (strcmp("t", s + 2) == 0) + return PIDX_SIGNATURE_PARAM_KAT; + break; + case 'b': + if (strcmp("kdf-key-check", s + 2) == 0) + return PIDX_PROV_PARAM_KBKDF_KEY_CHECK; + break; + case 'd': + switch(s[2]) { + default: + break; + case 'f': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'd': + switch(s[5]) { + default: + break; + case 'i': + switch(s[6]) { + default: + break; + case 'g': + switch(s[7]) { + default: + break; + case 'e': + switch(s[8]) { + default: + break; + case 's': + switch(s[9]) { + default: + break; + case 't': + switch(s[10]) { + default: + break; + case '-': + if (strcmp("props", s + 11) == 0) + return PIDX_EXCHANGE_PARAM_KDF_DIGEST_PROPS; + break; + case '\0': + return PIDX_EXCHANGE_PARAM_KDF_DIGEST; + } + } + } + } + } + } + break; + case 'o': + if (strcmp("utlen", s + 5) == 0) + return PIDX_EXCHANGE_PARAM_KDF_OUTLEN; + break; + case 't': + if (strcmp("ype", s + 5) == 0) + return PIDX_EXCHANGE_PARAM_KDF_TYPE; + break; + case 'u': + if (strcmp("km", s + 5) == 0) + return PIDX_EXCHANGE_PARAM_KDF_UKM; + } + } + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'y': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'c': + if (strcmp("heck", s + 5) == 0) + return PIDX_PKEY_PARAM_FIPS_KEY_CHECK; + break; + case 'l': + if (strcmp("ength", s + 5) == 0) + return PIDX_SKEY_PARAM_KEY_LENGTH; + } + break; + case 'b': + if (strcmp("its", s + 4) == 0) + return PIDX_CIPHER_PARAM_RC2_KEYBITS; + break; + case 'l': + if (strcmp("en", s + 4) == 0) + return PIDX_CIPHER_PARAM_KEYLEN; + break; + case '\0': + return PIDX_MAC_PARAM_KEY; + } + } + break; + case 'm': + if (strcmp("ac-key-check", s + 2) == 0) + return PIDX_PROV_PARAM_KMAC_KEY_CHECK; + } + break; + case 'l': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'b': + if (strcmp("el", s + 3) == 0) + return PIDX_KDF_PARAM_LABEL; + break; + case 'n': + if (strcmp("es", s + 3) == 0) + return PIDX_KDF_PARAM_ARGON2_LANES; + } + } + break; + case 'm': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'c': + switch(s[3]) { + default: + break; + case 'k': + if (strcmp("ey", s + 4) == 0) + return PIDX_CIPHER_PARAM_AEAD_MAC_KEY; + break; + case 'l': + if (strcmp("en", s + 4) == 0) + return PIDX_KDF_PARAM_MAC_SIZE; + break; + case '\0': + return PIDX_ALG_PARAM_MAC; + } + break; + case 'n': + if (strcmp("datory-digest", s + 3) == 0) + return PIDX_PKEY_PARAM_MANDATORY_DIGEST; + break; + case 'x': + switch(s[3]) { + default: + break; + case '-': + if (strcmp("size", s + 4) == 0) + return PIDX_PKEY_PARAM_MAX_SIZE; + break; + case '_': + switch(s[4]) { + default: + break; + case 'a': + if (strcmp("dinlen", s + 5) == 0) + return PIDX_DRBG_PARAM_MAX_ADINLEN; + break; + case 'e': + switch(s[5]) { + default: + break; + case 'a': + if (strcmp("rly_data", s + 6) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_MAX_EARLY_DATA; + break; + case 'n': + if (strcmp("tropylen", s + 6) == 0) + return PIDX_DRBG_PARAM_MAX_ENTROPYLEN; + } + break; + case 'f': + if (strcmp("rag_len", s + 5) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_MAX_FRAG_LEN; + break; + case 'n': + if (strcmp("oncelen", s + 5) == 0) + return PIDX_DRBG_PARAM_MAX_NONCELEN; + break; + case 'p': + if (strcmp("erslen", s + 5) == 0) + return PIDX_DRBG_PARAM_MAX_PERSLEN; + break; + case 'r': + if (strcmp("equest", s + 5) == 0) + return PIDX_RAND_PARAM_MAX_REQUEST; + } + break; + case 'i': + if (strcmp("um_length", s + 4) == 0) + return PIDX_DRBG_PARAM_MAX_LENGTH; + break; + case 'm': + if (strcmp("em_bytes", s + 4) == 0) + return PIDX_KDF_PARAM_SCRYPT_MAXMEM; + } + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'm': + if (strcmp("cost", s + 3) == 0) + return PIDX_KDF_PARAM_ARGON2_MEMCOST; + break; + case 's': + if (strcmp("sage-encoding", s + 3) == 0) + return PIDX_SIGNATURE_PARAM_MESSAGE_ENCODING; + } + break; + case 'g': + switch(s[2]) { + default: + break; + case 'f': + switch(s[3]) { + default: + break; + case '1': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'd': + if (strcmp("igest", s + 6) == 0) + return PIDX_PKEY_PARAM_MGF1_DIGEST; + break; + case 'p': + if (strcmp("roperties", s + 6) == 0) + return PIDX_PKEY_PARAM_MGF1_PROPERTIES; + } + } + break; + case '\0': + return PIDX_PKEY_PARAM_MASKGENFUNC; + } + } + break; + case 'i': + switch(s[2]) { + default: + break; + case 'c': + if (strcmp("alg", s + 3) == 0) + return PIDX_DIGEST_PARAM_MICALG; + break; + case 'n': + switch(s[3]) { + default: + break; + case '_': + switch(s[4]) { + default: + break; + case 'e': + if (strcmp("ntropylen", s + 5) == 0) + return PIDX_DRBG_PARAM_MIN_ENTROPYLEN; + break; + case 'n': + if (strcmp("oncelen", s + 5) == 0) + return PIDX_DRBG_PARAM_MIN_NONCELEN; + } + break; + case 'i': + if (strcmp("um_length", s + 4) == 0) + return PIDX_DRBG_PARAM_MIN_LENGTH; + } + } + break; + case 'l': + switch(s[2]) { + default: + break; + case '-': + switch(s[3]) { + default: + break; + case 'd': + switch(s[4]) { + default: + break; + case 's': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case '.': + switch(s[7]) { + default: + break; + case 'i': + if (strcmp("nput_formats", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_DSA_INPUT_FORMATS; + break; + case 'o': + if (strcmp("utput_formats", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_DSA_OUTPUT_FORMATS; + break; + case 'p': + if (strcmp("refer_seed", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_DSA_PREFER_SEED; + break; + case 'r': + if (strcmp("etain_seed", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_DSA_RETAIN_SEED; + } + } + } + } + break; + case 'k': + switch(s[4]) { + default: + break; + case 'e': + switch(s[5]) { + default: + break; + case 'm': + switch(s[6]) { + default: + break; + case '.': + switch(s[7]) { + default: + break; + case 'i': + switch(s[8]) { + default: + break; + case 'm': + if (strcmp("port_pct_type", s + 9) == 0) + return PIDX_PKEY_PARAM_ML_KEM_IMPORT_PCT_TYPE; + break; + case 'n': + if (strcmp("put_formats", s + 9) == 0) + return PIDX_PKEY_PARAM_ML_KEM_INPUT_FORMATS; + } + break; + case 'o': + if (strcmp("utput_formats", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_KEM_OUTPUT_FORMATS; + break; + case 'p': + if (strcmp("refer_seed", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_KEM_PREFER_SEED; + break; + case 'r': + if (strcmp("etain_seed", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_KEM_RETAIN_SEED; + } + } + } + } + } + } + break; + case 'o': + switch(s[2]) { + default: + break; + case 'd': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case '\0': + return PIDX_LIBSSL_RECORD_LAYER_PARAM_MODE; + } + break; + case 'u': + if (strcmp("le-filename", s + 4) == 0) + return PIDX_PROV_PARAM_CORE_MODULE_FILENAME; + } + } + break; + case 'u': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_SIGNATURE_PARAM_MU; + } + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_M; + } + break; + case 'n': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("me", s + 2) == 0) + return PIDX_STORE_PARAM_ISSUER; + break; + case 'o': + switch(s[2]) { + default: + break; + case '-': + if (strcmp("short-mac", s + 3) == 0) + return PIDX_PROV_PARAM_NO_SHORT_MAC; + break; + case 'n': + switch(s[3]) { + default: + break; + case 'c': + switch(s[4]) { + default: + break; + case 'e': + switch(s[5]) { + default: + break; + case '-': + if (strcmp("type", s + 6) == 0) + return PIDX_SIGNATURE_PARAM_NONCE_TYPE; + break; + case '\0': + return PIDX_KDF_PARAM_HMACDRBG_NONCE; + } + } + } + } + break; + case 'u': + if (strcmp("m", s + 2) == 0) + return PIDX_CIPHER_PARAM_NUM; + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_N; + } + break; + case 'o': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("ep-label", s + 2) == 0) + return PIDX_ASYM_CIPHER_PARAM_OAEP_LABEL; + break; + case 'p': + switch(s[2]) { + default: + break; + case 'e': + switch(s[3]) { + default: + break; + case 'n': + if (strcmp("ssl-version", s + 4) == 0) + return PIDX_PROV_PARAM_CORE_VERSION; + break; + case 'r': + if (strcmp("ation", s + 4) == 0) + return PIDX_KEM_PARAM_OPERATION; + } + break; + case 't': + if (strcmp("ions", s + 3) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_OPTIONS; + } + break; + case 'r': + if (strcmp("der", s + 2) == 0) + return PIDX_PKEY_PARAM_EC_ORDER; + } + break; + case 'p': + switch(s[1]) { + default: + break; + case '1': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_P1; + } + break; + case '2': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_P2; + } + break; + case 'a': + switch(s[2]) { + default: + break; + case 'd': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'm': + if (strcmp("ode", s + 5) == 0) + return PIDX_PKEY_PARAM_PAD_MODE; + break; + case 't': + if (strcmp("ype", s + 5) == 0) + return PIDX_DIGEST_PARAM_PAD_TYPE; + } + break; + case 'd': + if (strcmp("ing", s + 4) == 0) + return PIDX_CIPHER_PARAM_PADDING; + break; + case '\0': + return PIDX_EXCHANGE_PARAM_PAD; + } + break; + case 'r': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case 'y': + switch(s[5]) { + default: + break; + case 'u': + if (strcmp("-info", s + 6) == 0) + return PIDX_KDF_PARAM_X942_PARTYUINFO; + break; + case 'v': + if (strcmp("-info", s + 6) == 0) + return PIDX_KDF_PARAM_X942_PARTYVINFO; + } + } + } + break; + case 's': + if (strcmp("s", s + 3) == 0) + return PIDX_KDF_PARAM_PASSWORD; + } + break; + case 'b': + switch(s[2]) { + default: + break; + case 'i': + if (strcmp("ts", s + 3) == 0) + return PIDX_PKEY_PARAM_FFC_PBITS; + break; + case 'k': + if (strcmp("df2-lower-bound-check", s + 3) == 0) + return PIDX_PROV_PARAM_PBKDF2_LOWER_BOUND_CHECK; + } + break; + case 'c': + if (strcmp("ounter", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_PCOUNTER; + break; + case 'i': + if (strcmp("peline-tag", s + 2) == 0) + return PIDX_CIPHER_PARAM_PIPELINE_AEAD_TAG; + break; + case 'k': + if (strcmp("cs5", s + 2) == 0) + return PIDX_KDF_PARAM_PKCS5; + break; + case 'o': + switch(s[2]) { + default: + break; + case 'i': + if (strcmp("nt-format", s + 3) == 0) + return PIDX_PKEY_PARAM_EC_POINT_CONVERSION_FORMAT; + break; + case 't': + if (strcmp("ential", s + 3) == 0) + return PIDX_GEN_PARAM_POTENTIAL; + } + break; + case 'r': + switch(s[2]) { + default: + break; + case 'e': + switch(s[3]) { + default: + break; + case 'd': + if (strcmp("iction_resistance", s + 4) == 0) + return PIDX_DRBG_PARAM_PREDICTION_RESISTANCE; + break; + case 'f': + if (strcmp("ix", s + 4) == 0) + return PIDX_KDF_PARAM_PREFIX; + } + break; + case 'i': + switch(s[3]) { + default: + break; + case 'm': + if (strcmp("es", s + 4) == 0) + return PIDX_PKEY_PARAM_RSA_PRIMES; + break; + case 'v': + switch(s[4]) { + default: + break; + case '_': + if (strcmp("len", s + 5) == 0) + return PIDX_PKEY_PARAM_DH_PRIV_LEN; + break; + case '\0': + return PIDX_PKEY_PARAM_PRIV_KEY; + } + } + break; + case 'o': + switch(s[3]) { + default: + break; + case 'p': + if (strcmp("erties", s + 4) == 0) + return PIDX_STORE_PARAM_PROPERTIES; + break; + case 'v': + if (strcmp("ider-name", s + 4) == 0) + return PIDX_PROV_PARAM_CORE_PROV_NAME; + } + } + break; + case 'u': + if (strcmp("b", s + 2) == 0) + return PIDX_PKEY_PARAM_PUB_KEY; + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_P; + } + break; + case 'q': + switch(s[1]) { + default: + break; + case '1': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_Q1; + } + break; + case '2': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_Q2; + } + break; + case 'b': + if (strcmp("its", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_QBITS; + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_Q; + break; + case 'x': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_PUB_X; + } + break; + case 'y': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_PUB_Y; + } + } + break; + case 'r': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'n': + switch(s[3]) { + default: + break; + case 'd': + switch(s[4]) { + default: + break; + case 'k': + if (strcmp("ey", s + 5) == 0) + return PIDX_CIPHER_PARAM_RANDOM_KEY; + break; + case 'o': + if (strcmp("m_data", s + 5) == 0) + return PIDX_DRBG_PARAM_RANDOM_DATA; + } + } + break; + case 'w': + if (strcmp("-bytes", s + 3) == 0) + return PIDX_SKEY_PARAM_RAW_BYTES; + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'a': + switch(s[3]) { + default: + break; + case 'd': + switch(s[4]) { + default: + break; + case '_': + switch(s[5]) { + default: + break; + case 'a': + if (strcmp("head", s + 6) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_READ_AHEAD; + break; + case 'b': + if (strcmp("uffer_len", s + 6) == 0) + return PIDX_LIBSSL_RECORD_LAYER_READ_BUFFER_LEN; + } + } + } + break; + case 'f': + if (strcmp("erence", s + 3) == 0) + return PIDX_OBJECT_PARAM_REFERENCE; + break; + case 's': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case 'e': + switch(s[5]) { + default: + break; + case 'd': + switch(s[6]) { + default: + break; + case '_': + switch(s[7]) { + default: + break; + case 'c': + if (strcmp("ounter", s + 8) == 0) + return PIDX_DRBG_PARAM_RESEED_COUNTER; + break; + case 'r': + if (strcmp("equests", s + 8) == 0) + return PIDX_DRBG_PARAM_RESEED_REQUESTS; + break; + case 't': + switch(s[8]) { + default: + break; + case 'i': + switch(s[9]) { + default: + break; + case 'm': + switch(s[10]) { + default: + break; + case 'e': + switch(s[11]) { + default: + break; + case '_': + if (strcmp("interval", s + 12) == 0) + return PIDX_DRBG_PARAM_RESEED_TIME_INTERVAL; + break; + case '\0': + return PIDX_DRBG_PARAM_RESEED_TIME; + } + } + } + } + } + } + } + } + } + } + break; + case 'o': + if (strcmp("unds", s + 2) == 0) + return PIDX_CIPHER_PARAM_ROUNDS; + break; + case 's': + switch(s[2]) { + default: + break; + case 'a': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'c': + switch(s[5]) { + default: + break; + case 'o': + switch(s[6]) { + default: + break; + case 'e': + switch(s[7]) { + default: + break; + case 'f': + switch(s[8]) { + default: + break; + case 'f': + switch(s[9]) { + default: + break; + case 'i': + switch(s[10]) { + default: + break; + case 'c': + switch(s[11]) { + default: + break; + case 'i': + switch(s[12]) { + default: + break; + case 'e': + switch(s[13]) { + default: + break; + case 'n': + switch(s[14]) { + default: + break; + case 't': + switch(s[15]) { + default: + break; + case '1': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT1; + } + break; + case '2': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT2; + } + break; + case '3': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT3; + } + break; + case '4': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT4; + } + break; + case '5': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT5; + } + break; + case '6': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT6; + } + break; + case '7': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT7; + } + break; + case '8': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT8; + } + break; + case '9': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT9; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT; + } + } + } + } + } + } + } + } + } + } + } + break; + case 'd': + if (strcmp("erive-from-pq", s + 5) == 0) + return PIDX_PKEY_PARAM_RSA_DERIVE_FROM_PQ; + break; + case 'e': + switch(s[5]) { + default: + break; + case 'x': + switch(s[6]) { + default: + break; + case 'p': + switch(s[7]) { + default: + break; + case 'o': + switch(s[8]) { + default: + break; + case 'n': + switch(s[9]) { + default: + break; + case 'e': + switch(s[10]) { + default: + break; + case 'n': + switch(s[11]) { + default: + break; + case 't': + switch(s[12]) { + default: + break; + case '1': + switch(s[13]) { + default: + break; + case '0': + switch(s[14]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT10; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT1; + } + break; + case '2': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT2; + } + break; + case '3': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT3; + } + break; + case '4': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT4; + } + break; + case '5': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT5; + } + break; + case '6': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT6; + } + break; + case '7': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT7; + } + break; + case '8': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT8; + } + break; + case '9': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT9; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT; + } + } + } + } + } + } + } + } + break; + case 'f': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case 'c': + switch(s[7]) { + default: + break; + case 't': + switch(s[8]) { + default: + break; + case 'o': + switch(s[9]) { + default: + break; + case 'r': + switch(s[10]) { + default: + break; + case '1': + switch(s[11]) { + default: + break; + case '0': + switch(s[12]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR10; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR1; + } + break; + case '2': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR2; + } + break; + case '3': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR3; + } + break; + case '4': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR4; + } + break; + case '5': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR5; + } + break; + case '6': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR6; + } + break; + case '7': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR7; + } + break; + case '8': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR8; + } + break; + case '9': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR9; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR; + } + } + } + } + } + } + break; + case 'p': + switch(s[5]) { + default: + break; + case 'k': + if (strcmp("cs15-pad-disabled", s + 6) == 0) + return PIDX_PROV_PARAM_RSA_PKCS15_PAD_DISABLED; + break; + case 's': + if (strcmp("s-saltlen-check", s + 6) == 0) + return PIDX_SIGNATURE_PARAM_FIPS_RSA_PSS_SALTLEN_CHECK; + } + break; + case 's': + if (strcmp("ign-x931-pad-disabled", s + 5) == 0) + return PIDX_PROV_PARAM_RSA_SIGN_X931_PAD_DISABLED; + } + } + } + break; + case '\0': + return PIDX_KDF_PARAM_SCRYPT_R; + } + break; + case 's': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'f': + if (strcmp("eprime-generator", s + 3) == 0) + return PIDX_PKEY_PARAM_DH_GENERATOR; + break; + case 'l': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case 'l': + if (strcmp("en", s + 5) == 0) + return PIDX_SIGNATURE_PARAM_PSS_SALTLEN; + break; + case '\0': + return PIDX_MAC_PARAM_SALT; + } + } + break; + case 'v': + if (strcmp("e-parameters", s + 3) == 0) + return PIDX_ENCODER_PARAM_SAVE_PARAMETERS; + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'c': + switch(s[3]) { + default: + break; + case 'r': + if (strcmp("et", s + 4) == 0) + return PIDX_KDF_PARAM_SECRET; + break; + case 'u': + switch(s[4]) { + default: + break; + case 'r': + switch(s[5]) { + default: + break; + case 'i': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case 'y': + switch(s[8]) { + default: + break; + case '-': + switch(s[9]) { + default: + break; + case 'b': + if (strcmp("its", s + 10) == 0) + return PIDX_PKEY_PARAM_SECURITY_BITS; + break; + case 'c': + if (strcmp("hecks", s + 10) == 0) + return PIDX_PROV_PARAM_SECURITY_CHECKS; + } + } + } + } + } + } + } + break; + case 'e': + if (strcmp("d", s + 3) == 0) + return PIDX_PKEY_PARAM_SLH_DSA_SEED; + break; + case 'r': + if (strcmp("ial", s + 3) == 0) + return PIDX_STORE_PARAM_SERIAL; + break; + case 's': + if (strcmp("sion_id", s + 3) == 0) + return PIDX_KDF_PARAM_SSHKDF_SESSION_ID; + } + break; + case 'i': + switch(s[2]) { + default: + break; + case 'g': + switch(s[3]) { + default: + break; + case 'n': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'c': + if (strcmp("heck", s + 6) == 0) + return PIDX_PKEY_PARAM_FIPS_SIGN_CHECK; + break; + case 'x': + if (strcmp("931-pad-check", s + 6) == 0) + return PIDX_SIGNATURE_PARAM_FIPS_SIGN_X931_PAD_CHECK; + } + break; + case 'a': + switch(s[5]) { + default: + break; + case 't': + switch(s[6]) { + default: + break; + case 'u': + switch(s[7]) { + default: + break; + case 'r': + switch(s[8]) { + default: + break; + case 'e': + switch(s[9]) { + default: + break; + case '-': + if (strcmp("digest-check", s + 10) == 0) + return PIDX_PROV_PARAM_SIGNATURE_DIGEST_CHECK; + break; + case '\0': + return PIDX_SIGNATURE_PARAM_SIGNATURE; + } + } + } + } + } + } + } + break; + case 'z': + if (strcmp("e", s + 3) == 0) + return PIDX_MAC_PARAM_SIZE; + } + break; + case 'p': + if (strcmp("eed", s + 2) == 0) + return PIDX_CIPHER_PARAM_SPEED; + break; + case 's': + switch(s[2]) { + default: + break; + case 'h': + switch(s[3]) { + default: + break; + case 'k': + switch(s[4]) { + default: + break; + case 'd': + switch(s[5]) { + default: + break; + case 'f': + switch(s[6]) { + default: + break; + case '-': + switch(s[7]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 8) == 0) + return PIDX_PROV_PARAM_SSHKDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 8) == 0) + return PIDX_PROV_PARAM_SSHKDF_KEY_CHECK; + } + } + } + } + } + break; + case 'k': + switch(s[3]) { + default: + break; + case 'd': + switch(s[4]) { + default: + break; + case 'f': + switch(s[5]) { + default: + break; + case '-': + switch(s[6]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 7) == 0) + return PIDX_PROV_PARAM_SSKDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 7) == 0) + return PIDX_PROV_PARAM_SSKDF_KEY_CHECK; + } + } + } + } + break; + case 'l': + if (strcmp("3-ms", s + 3) == 0) + return PIDX_DIGEST_PARAM_SSL3_MS; + } + break; + case 't': + switch(s[2]) { + default: + break; + case '-': + switch(s[3]) { + default: + break; + case 'd': + if (strcmp("esc", s + 4) == 0) + return PIDX_PROV_PARAM_SELF_TEST_DESC; + break; + case 'p': + if (strcmp("hase", s + 4) == 0) + return PIDX_PROV_PARAM_SELF_TEST_PHASE; + break; + case 't': + if (strcmp("ype", s + 4) == 0) + return PIDX_PROV_PARAM_SELF_TEST_TYPE; + } + break; + case 'a': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case 'e': + switch(s[5]) { + default: + break; + case '\0': + return PIDX_RAND_PARAM_STATE; + } + break; + case 'u': + if (strcmp("s", s + 5) == 0) + return PIDX_PROV_PARAM_STATUS; + } + } + break; + case 'r': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case 'a': + if (strcmp("m_mac", s + 5) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_STREAM_MAC; + break; + case 'n': + if (strcmp("gth", s + 5) == 0) + return PIDX_RAND_PARAM_STRENGTH; + } + } + } + break; + case 'u': + switch(s[2]) { + default: + break; + case 'b': + if (strcmp("ject", s + 3) == 0) + return PIDX_STORE_PARAM_SUBJECT; + break; + case 'p': + switch(s[3]) { + default: + break; + case 'p': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'p': + switch(s[6]) { + default: + break; + case 'r': + if (strcmp("ivinfo", s + 7) == 0) + return PIDX_KDF_PARAM_X942_SUPP_PRIVINFO; + break; + case 'u': + if (strcmp("binfo", s + 7) == 0) + return PIDX_KDF_PARAM_X942_SUPP_PUBINFO; + } + } + } + } + } + } + break; + case 't': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'g': + switch(s[3]) { + default: + break; + case 'l': + if (strcmp("en", s + 4) == 0) + return PIDX_CIPHER_PARAM_AEAD_TAGLEN; + break; + case '\0': + return PIDX_CIPHER_PARAM_AEAD_TAG; + } + } + break; + case 'd': + if (strcmp("es-encrypt-disabled", s + 2) == 0) + return PIDX_PROV_PARAM_TDES_ENCRYPT_DISABLED; + break; + case 'e': + switch(s[2]) { + default: + break; + case 's': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case '-': + if (strcmp("entropy", s + 5) == 0) + return PIDX_SIGNATURE_PARAM_TEST_ENTROPY; + break; + case '_': + switch(s[5]) { + default: + break; + case 'e': + if (strcmp("ntropy", s + 6) == 0) + return PIDX_RAND_PARAM_TEST_ENTROPY; + break; + case 'n': + if (strcmp("once", s + 6) == 0) + return PIDX_RAND_PARAM_TEST_NONCE; + } + } + } + } + break; + case 'h': + if (strcmp("reads", s + 2) == 0) + return PIDX_KDF_PARAM_THREADS; + break; + case 'l': + switch(s[2]) { + default: + break; + case 's': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'c': + if (strcmp("lient-version", s + 5) == 0) + return PIDX_ASYM_CIPHER_PARAM_TLS_CLIENT_VERSION; + break; + case 'd': + if (strcmp("ata-size", s + 5) == 0) + return PIDX_MAC_PARAM_TLS_DATA_SIZE; + break; + case 'g': + switch(s[5]) { + default: + break; + case 'r': + switch(s[6]) { + default: + break; + case 'o': + switch(s[7]) { + default: + break; + case 'u': + switch(s[8]) { + default: + break; + case 'p': + switch(s[9]) { + default: + break; + case '-': + switch(s[10]) { + default: + break; + case 'a': + if (strcmp("lg", s + 11) == 0) + return PIDX_CAPABILITY_TLS_GROUP_ALG; + break; + case 'i': + switch(s[11]) { + default: + break; + case 'd': + switch(s[12]) { + default: + break; + case '\0': + return PIDX_CAPABILITY_TLS_GROUP_ID; + } + break; + case 's': + if (strcmp("-kem", s + 12) == 0) + return PIDX_CAPABILITY_TLS_GROUP_IS_KEM; + } + break; + case 'n': + switch(s[11]) { + default: + break; + case 'a': + switch(s[12]) { + default: + break; + case 'm': + switch(s[13]) { + default: + break; + case 'e': + switch(s[14]) { + default: + break; + case '-': + if (strcmp("internal", s + 15) == 0) + return PIDX_CAPABILITY_TLS_GROUP_NAME_INTERNAL; + break; + case '\0': + return PIDX_CAPABILITY_TLS_GROUP_NAME; + } + } + } + } + break; + case 's': + if (strcmp("ec-bits", s + 11) == 0) + return PIDX_CAPABILITY_TLS_GROUP_SECURITY_BITS; + } + } + } + } + } + } + break; + case 'm': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case 'c': + switch(s[7]) { + default: + break; + case '-': + if (strcmp("size", s + 8) == 0) + return PIDX_CIPHER_PARAM_TLS_MAC_SIZE; + break; + case '\0': + return PIDX_CIPHER_PARAM_TLS_MAC; + } + break; + case 'x': + switch(s[7]) { + default: + break; + case '-': + switch(s[8]) { + default: + break; + case 'd': + if (strcmp("tls", s + 9) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_MAX_DTLS; + break; + case 't': + if (strcmp("ls", s + 9) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_MAX_TLS; + } + } + } + break; + case 'i': + switch(s[6]) { + default: + break; + case 'n': + switch(s[7]) { + default: + break; + case '-': + switch(s[8]) { + default: + break; + case 'd': + if (strcmp("tls", s + 9) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_MIN_DTLS; + break; + case 't': + if (strcmp("ls", s + 9) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_MIN_TLS; + } + } + } + break; + case 'u': + if (strcmp("lti", s + 6) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK; + } + break; + case 'n': + if (strcmp("egotiated-version", s + 5) == 0) + return PIDX_ASYM_CIPHER_PARAM_TLS_NEGOTIATED_VERSION; + break; + case 's': + switch(s[5]) { + default: + break; + case 'i': + switch(s[6]) { + default: + break; + case 'g': + switch(s[7]) { + default: + break; + case 'a': + switch(s[8]) { + default: + break; + case 'l': + switch(s[9]) { + default: + break; + case 'g': + switch(s[10]) { + default: + break; + case '-': + switch(s[11]) { + default: + break; + case 'c': + if (strcmp("ode-point", s + 12) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_CODE_POINT; + break; + case 'h': + switch(s[12]) { + default: + break; + case 'a': + switch(s[13]) { + default: + break; + case 's': + switch(s[14]) { + default: + break; + case 'h': + switch(s[15]) { + default: + break; + case '-': + switch(s[16]) { + default: + break; + case 'n': + if (strcmp("ame", s + 17) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_HASH_NAME; + break; + case 'o': + if (strcmp("id", s + 17) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_HASH_OID; + } + } + } + } + } + break; + case 'i': + if (strcmp("ana-name", s + 12) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_IANA_NAME; + break; + case 'k': + switch(s[12]) { + default: + break; + case 'e': + switch(s[13]) { + default: + break; + case 'y': + switch(s[14]) { + default: + break; + case 't': + switch(s[15]) { + default: + break; + case 'y': + switch(s[16]) { + default: + break; + case 'p': + switch(s[17]) { + default: + break; + case 'e': + switch(s[18]) { + default: + break; + case '-': + if (strcmp("oid", s + 19) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_KEYTYPE_OID; + break; + case '\0': + return PIDX_CAPABILITY_TLS_SIGALG_KEYTYPE; + } + } + } + } + } + } + } + break; + case 'n': + if (strcmp("ame", s + 12) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_NAME; + break; + case 'o': + if (strcmp("id", s + 12) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_OID; + break; + case 's': + switch(s[12]) { + default: + break; + case 'e': + if (strcmp("c-bits", s + 13) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_SECURITY_BITS; + break; + case 'i': + switch(s[13]) { + default: + break; + case 'g': + switch(s[14]) { + default: + break; + case '-': + switch(s[15]) { + default: + break; + case 'n': + if (strcmp("ame", s + 16) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_SIG_NAME; + break; + case 'o': + if (strcmp("id", s + 16) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_SIG_OID; + } + } + } + } + } + } + } + } + } + } + } + break; + case 'v': + if (strcmp("ersion", s + 5) == 0) + return PIDX_CIPHER_PARAM_TLS_VERSION; + } + break; + case '1': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'p': + switch(s[6]) { + default: + break; + case 'r': + switch(s[7]) { + default: + break; + case 'f': + switch(s[8]) { + default: + break; + case '-': + switch(s[9]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 10) == 0) + return PIDX_PROV_PARAM_TLS1_PRF_DIGEST_CHECK; + break; + case 'e': + if (strcmp("ms-check", s + 10) == 0) + return PIDX_PROV_PARAM_TLS1_PRF_EMS_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 10) == 0) + return PIDX_PROV_PARAM_TLS1_PRF_KEY_CHECK; + } + } + } + } + } + break; + case '3': + switch(s[5]) { + default: + break; + case '-': + switch(s[6]) { + default: + break; + case 'k': + switch(s[7]) { + default: + break; + case 'd': + switch(s[8]) { + default: + break; + case 'f': + switch(s[9]) { + default: + break; + case '-': + switch(s[10]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 11) == 0) + return PIDX_PROV_PARAM_TLS13_KDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 11) == 0) + return PIDX_PROV_PARAM_TLS13_KDF_KEY_CHECK; + } + } + } + } + } + } + break; + case 'm': + switch(s[5]) { + default: + break; + case 'u': + switch(s[6]) { + default: + break; + case 'l': + switch(s[7]) { + default: + break; + case 't': + switch(s[8]) { + default: + break; + case 'i': + switch(s[9]) { + default: + break; + case '_': + switch(s[10]) { + default: + break; + case 'a': + switch(s[11]) { + default: + break; + case 'a': + switch(s[12]) { + default: + break; + case 'd': + switch(s[13]) { + default: + break; + case 'p': + if (strcmp("acklen", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD_PACKLEN; + break; + case '\0': + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD; + } + } + } + break; + case 'e': + switch(s[11]) { + default: + break; + case 'n': + switch(s[12]) { + default: + break; + case 'c': + switch(s[13]) { + default: + break; + case 'i': + if (strcmp("n", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_IN; + break; + case 'l': + if (strcmp("en", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_LEN; + break; + case '\0': + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC; + } + } + } + break; + case 'i': + if (strcmp("nterleave", s + 11) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_INTERLEAVE; + break; + case 'm': + switch(s[11]) { + default: + break; + case 'a': + switch(s[12]) { + default: + break; + case 'x': + switch(s[13]) { + default: + break; + case 'b': + if (strcmp("ufsz", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_BUFSIZE; + break; + case 's': + if (strcmp("ndfrag", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_SEND_FRAGMENT; + } + } + } + } + } + } + } + } + } + } + break; + case 'a': + switch(s[4]) { + default: + break; + case 'a': + switch(s[5]) { + default: + break; + case 'd': + switch(s[6]) { + default: + break; + case 'p': + if (strcmp("ad", s + 7) == 0) + return PIDX_CIPHER_PARAM_AEAD_TLS1_AAD_PAD; + break; + case '\0': + return PIDX_CIPHER_PARAM_AEAD_TLS1_AAD; + } + } + } + break; + case 'i': + switch(s[4]) { + default: + break; + case 'v': + switch(s[5]) { + default: + break; + case 'f': + if (strcmp("ixed", s + 6) == 0) + return PIDX_CIPHER_PARAM_AEAD_TLS1_IV_FIXED; + break; + case 'g': + if (strcmp("en", s + 6) == 0) + return PIDX_CIPHER_PARAM_AEAD_TLS1_GET_IV_GEN; + break; + case 'i': + if (strcmp("nv", s + 6) == 0) + return PIDX_CIPHER_PARAM_AEAD_TLS1_SET_IV_INV; + } + } + break; + case 't': + if (strcmp("ree", s + 4) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_TLSTREE; + } + } + break; + case 'p': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_TP_BASIS; + } + break; + case 'y': + if (strcmp("pe", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_TYPE; + } + break; + case 'u': + switch(s[1]) { + default: + break; + case 'k': + if (strcmp("m", s + 2) == 0) + return PIDX_KDF_PARAM_UKM; + break; + case 'p': + if (strcmp("dated-iv", s + 2) == 0) + return PIDX_CIPHER_PARAM_UPDATED_IV; + break; + case 's': + switch(s[2]) { + default: + break; + case 'e': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'b': + if (strcmp("its", s + 5) == 0) + return PIDX_CIPHER_PARAM_USE_BITS; + break; + case 'c': + if (strcmp("ofactor-flag", s + 5) == 0) + return PIDX_PKEY_PARAM_USE_COFACTOR_FLAG; + break; + case 'k': + if (strcmp("eybits", s + 5) == 0) + return PIDX_KDF_PARAM_X942_USE_KEYBITS; + break; + case 'l': + switch(s[5]) { + default: + break; + case '\0': + return PIDX_KDF_PARAM_KBKDF_USE_L; + } + break; + case 's': + if (strcmp("eparator", s + 5) == 0) + return PIDX_KDF_PARAM_KBKDF_USE_SEPARATOR; + } + break; + case '_': + switch(s[4]) { + default: + break; + case 'd': + if (strcmp("erivation_function", s + 5) == 0) + return PIDX_DRBG_PARAM_USE_DF; + break; + case 'e': + if (strcmp("tm", s + 5) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_USE_ETM; + } + } + } + } + break; + case 'v': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'l': + switch(s[3]) { + default: + break; + case 'i': + switch(s[4]) { + default: + break; + case 'd': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case 'e': + switch(s[8]) { + default: + break; + case '-': + switch(s[9]) { + default: + break; + case 'g': + switch(s[10]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_VALIDATE_G; + } + break; + case 'l': + if (strcmp("egacy", s + 10) == 0) + return PIDX_PKEY_PARAM_FFC_VALIDATE_LEGACY; + break; + case 'p': + if (strcmp("q", s + 10) == 0) + return PIDX_PKEY_PARAM_FFC_VALIDATE_PQ; + } + } + } + } + } + } + } + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'r': + switch(s[3]) { + default: + break; + case 'i': + if (strcmp("fy-message", s + 4) == 0) + return PIDX_SIGNATURE_PARAM_FIPS_VERIFY_MESSAGE; + break; + case 's': + if (strcmp("ion", s + 4) == 0) + return PIDX_PROV_PARAM_VERSION; + } + } + } + break; + case 'x': + switch(s[1]) { + default: + break; + case '9': + switch(s[2]) { + default: + break; + case '4': + if (strcmp("2kdf-key-check", s + 3) == 0) + return PIDX_PROV_PARAM_X942KDF_KEY_CHECK; + break; + case '6': + switch(s[3]) { + default: + break; + case '3': + switch(s[4]) { + default: + break; + case 'k': + switch(s[5]) { + default: + break; + case 'd': + switch(s[6]) { + default: + break; + case 'f': + switch(s[7]) { + default: + break; + case '-': + switch(s[8]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 9) == 0) + return PIDX_PROV_PARAM_X963KDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 9) == 0) + return PIDX_PROV_PARAM_X963KDF_KEY_CHECK; + } + } + } + } + } + } + } + break; + case 'c': + if (strcmp("ghash", s + 2) == 0) + return PIDX_KDF_PARAM_SSHKDF_XCGHASH; + break; + case 'o': + switch(s[2]) { + default: + break; + case 'f': + switch(s[3]) { + default: + break; + case 'l': + if (strcmp("en", s + 4) == 0) + return PIDX_DIGEST_PARAM_XOFLEN; + break; + case '\0': + return PIDX_MAC_PARAM_XOF; + } + } + break; + case 'p': + switch(s[2]) { + default: + break; + case '1': + switch(s[3]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XP1; + } + break; + case '2': + switch(s[3]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XP2; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XP; + } + break; + case 'q': + switch(s[2]) { + default: + break; + case '1': + switch(s[3]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XQ1; + } + break; + case '2': + switch(s[3]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XQ2; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XQ; + } + break; + case 't': + if (strcmp("s_standard", s + 2) == 0) + return PIDX_CIPHER_PARAM_XTS_STANDARD; + } + } + return -1; +} + +/* End of TRIE */ diff --git a/deps/openssl/config/archs/aix64-gcc-as/no-asm/include/internal/param_names.h b/deps/openssl/config/archs/aix64-gcc-as/no-asm/include/internal/param_names.h new file mode 100644 index 00000000000000..0a0404a57e82b9 --- /dev/null +++ b/deps/openssl/config/archs/aix64-gcc-as/no-asm/include/internal/param_names.h @@ -0,0 +1,469 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from include/internal/param_names.h.in + * + * Copyright 2023 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + +int ossl_param_find_pidx(const char *s); + +/* Parameter name definitions - generated by util/perl/OpenSSL/paramnames.pm */ +#define NUM_PIDX 346 + +#define PIDX_ALG_PARAM_ALGORITHM_ID 0 +#define PIDX_ALG_PARAM_ALGORITHM_ID_PARAMS 1 +#define PIDX_ALG_PARAM_CIPHER 2 +#define PIDX_ALG_PARAM_DIGEST 3 +#define PIDX_ALG_PARAM_ENGINE 4 +#define PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR 5 +#define PIDX_ALG_PARAM_MAC 6 +#define PIDX_ALG_PARAM_PROPERTIES 7 +#define PIDX_ASYM_CIPHER_PARAM_DIGEST PIDX_PKEY_PARAM_DIGEST +#define PIDX_ASYM_CIPHER_PARAM_ENGINE PIDX_PKEY_PARAM_ENGINE +#define PIDX_ASYM_CIPHER_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_ASYM_CIPHER_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_ASYM_CIPHER_PARAM_FIPS_RSA_PKCS15_PAD_DISABLED PIDX_PROV_PARAM_RSA_PKCS15_PAD_DISABLED +#define PIDX_ASYM_CIPHER_PARAM_IMPLICIT_REJECTION 8 +#define PIDX_ASYM_CIPHER_PARAM_MGF1_DIGEST PIDX_PKEY_PARAM_MGF1_DIGEST +#define PIDX_ASYM_CIPHER_PARAM_MGF1_DIGEST_PROPS PIDX_PKEY_PARAM_MGF1_PROPERTIES +#define PIDX_ASYM_CIPHER_PARAM_OAEP_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_ASYM_CIPHER_PARAM_OAEP_DIGEST_PROPS 9 +#define PIDX_ASYM_CIPHER_PARAM_OAEP_LABEL 10 +#define PIDX_ASYM_CIPHER_PARAM_PAD_MODE PIDX_PKEY_PARAM_PAD_MODE +#define PIDX_ASYM_CIPHER_PARAM_PROPERTIES PIDX_PKEY_PARAM_PROPERTIES +#define PIDX_ASYM_CIPHER_PARAM_TLS_CLIENT_VERSION 11 +#define PIDX_ASYM_CIPHER_PARAM_TLS_NEGOTIATED_VERSION 12 +#define PIDX_CAPABILITY_TLS_GROUP_ALG 13 +#define PIDX_CAPABILITY_TLS_GROUP_ID 14 +#define PIDX_CAPABILITY_TLS_GROUP_IS_KEM 15 +#define PIDX_CAPABILITY_TLS_GROUP_MAX_DTLS 16 +#define PIDX_CAPABILITY_TLS_GROUP_MAX_TLS 17 +#define PIDX_CAPABILITY_TLS_GROUP_MIN_DTLS 18 +#define PIDX_CAPABILITY_TLS_GROUP_MIN_TLS 19 +#define PIDX_CAPABILITY_TLS_GROUP_NAME 20 +#define PIDX_CAPABILITY_TLS_GROUP_NAME_INTERNAL 21 +#define PIDX_CAPABILITY_TLS_GROUP_SECURITY_BITS 22 +#define PIDX_CAPABILITY_TLS_SIGALG_CODE_POINT 23 +#define PIDX_CAPABILITY_TLS_SIGALG_HASH_NAME 24 +#define PIDX_CAPABILITY_TLS_SIGALG_HASH_OID 25 +#define PIDX_CAPABILITY_TLS_SIGALG_IANA_NAME 26 +#define PIDX_CAPABILITY_TLS_SIGALG_KEYTYPE 27 +#define PIDX_CAPABILITY_TLS_SIGALG_KEYTYPE_OID 28 +#define PIDX_CAPABILITY_TLS_SIGALG_MAX_DTLS 16 +#define PIDX_CAPABILITY_TLS_SIGALG_MAX_TLS 17 +#define PIDX_CAPABILITY_TLS_SIGALG_MIN_DTLS 18 +#define PIDX_CAPABILITY_TLS_SIGALG_MIN_TLS 19 +#define PIDX_CAPABILITY_TLS_SIGALG_NAME 29 +#define PIDX_CAPABILITY_TLS_SIGALG_OID 30 +#define PIDX_CAPABILITY_TLS_SIGALG_SECURITY_BITS 31 +#define PIDX_CAPABILITY_TLS_SIGALG_SIG_NAME 32 +#define PIDX_CAPABILITY_TLS_SIGALG_SIG_OID 33 +#define PIDX_CIPHER_PARAM_AEAD 34 +#define PIDX_CIPHER_PARAM_AEAD_IVLEN PIDX_CIPHER_PARAM_IVLEN +#define PIDX_CIPHER_PARAM_AEAD_IV_GENERATED 35 +#define PIDX_CIPHER_PARAM_AEAD_MAC_KEY 36 +#define PIDX_CIPHER_PARAM_AEAD_TAG 37 +#define PIDX_CIPHER_PARAM_AEAD_TAGLEN 38 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_AAD 39 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_AAD_PAD 40 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_GET_IV_GEN 41 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_IV_FIXED 42 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_SET_IV_INV 43 +#define PIDX_CIPHER_PARAM_ALGORITHM_ID PIDX_ALG_PARAM_ALGORITHM_ID +#define PIDX_CIPHER_PARAM_ALGORITHM_ID_PARAMS PIDX_ALG_PARAM_ALGORITHM_ID_PARAMS +#define PIDX_CIPHER_PARAM_ALGORITHM_ID_PARAMS_OLD 44 +#define PIDX_CIPHER_PARAM_BLOCK_SIZE 45 +#define PIDX_CIPHER_PARAM_CTS 46 +#define PIDX_CIPHER_PARAM_CTS_MODE 47 +#define PIDX_CIPHER_PARAM_CUSTOM_IV 48 +#define PIDX_CIPHER_PARAM_DECRYPT_ONLY 49 +#define PIDX_CIPHER_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_CIPHER_PARAM_FIPS_ENCRYPT_CHECK 50 +#define PIDX_CIPHER_PARAM_HAS_RAND_KEY 51 +#define PIDX_CIPHER_PARAM_IV 52 +#define PIDX_CIPHER_PARAM_IVLEN 53 +#define PIDX_CIPHER_PARAM_KEYLEN 54 +#define PIDX_CIPHER_PARAM_MODE 55 +#define PIDX_CIPHER_PARAM_NUM 56 +#define PIDX_CIPHER_PARAM_PADDING 57 +#define PIDX_CIPHER_PARAM_PIPELINE_AEAD_TAG 58 +#define PIDX_CIPHER_PARAM_RANDOM_KEY 59 +#define PIDX_CIPHER_PARAM_RC2_KEYBITS 60 +#define PIDX_CIPHER_PARAM_ROUNDS 61 +#define PIDX_CIPHER_PARAM_SPEED 62 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK 63 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD 64 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD_PACKLEN 65 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC 66 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_IN 67 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_LEN 68 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_INTERLEAVE 69 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_BUFSIZE 70 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_SEND_FRAGMENT 71 +#define PIDX_CIPHER_PARAM_TLS_MAC 72 +#define PIDX_CIPHER_PARAM_TLS_MAC_SIZE 73 +#define PIDX_CIPHER_PARAM_TLS_VERSION 74 +#define PIDX_CIPHER_PARAM_UPDATED_IV 75 +#define PIDX_CIPHER_PARAM_USE_BITS 76 +#define PIDX_CIPHER_PARAM_XTS_STANDARD 77 +#define PIDX_DECODER_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_DIGEST_PARAM_ALGID_ABSENT 78 +#define PIDX_DIGEST_PARAM_BLOCK_SIZE 45 +#define PIDX_DIGEST_PARAM_MICALG 79 +#define PIDX_DIGEST_PARAM_PAD_TYPE 80 +#define PIDX_DIGEST_PARAM_SIZE 81 +#define PIDX_DIGEST_PARAM_SSL3_MS 82 +#define PIDX_DIGEST_PARAM_XOF 83 +#define PIDX_DIGEST_PARAM_XOFLEN 84 +#define PIDX_DRBG_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_DRBG_PARAM_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_DRBG_PARAM_ENTROPY_REQUIRED 85 +#define PIDX_DRBG_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_DRBG_PARAM_FIPS_DIGEST_CHECK PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK +#define PIDX_DRBG_PARAM_MAC PIDX_ALG_PARAM_MAC +#define PIDX_DRBG_PARAM_MAX_ADINLEN 86 +#define PIDX_DRBG_PARAM_MAX_ENTROPYLEN 87 +#define PIDX_DRBG_PARAM_MAX_LENGTH 88 +#define PIDX_DRBG_PARAM_MAX_NONCELEN 89 +#define PIDX_DRBG_PARAM_MAX_PERSLEN 90 +#define PIDX_DRBG_PARAM_MIN_ENTROPYLEN 91 +#define PIDX_DRBG_PARAM_MIN_LENGTH 92 +#define PIDX_DRBG_PARAM_MIN_NONCELEN 93 +#define PIDX_DRBG_PARAM_PREDICTION_RESISTANCE 94 +#define PIDX_DRBG_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_DRBG_PARAM_RANDOM_DATA 95 +#define PIDX_DRBG_PARAM_RESEED_COUNTER 96 +#define PIDX_DRBG_PARAM_RESEED_REQUESTS 97 +#define PIDX_DRBG_PARAM_RESEED_TIME 98 +#define PIDX_DRBG_PARAM_RESEED_TIME_INTERVAL 99 +#define PIDX_DRBG_PARAM_SIZE 81 +#define PIDX_DRBG_PARAM_USE_DF 100 +#define PIDX_ENCODER_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_ENCODER_PARAM_ENCRYPT_LEVEL 101 +#define PIDX_ENCODER_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_ENCODER_PARAM_SAVE_PARAMETERS 102 +#define PIDX_EXCHANGE_PARAM_EC_ECDH_COFACTOR_MODE 103 +#define PIDX_EXCHANGE_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_EXCHANGE_PARAM_FIPS_DIGEST_CHECK PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK +#define PIDX_EXCHANGE_PARAM_FIPS_ECDH_COFACTOR_CHECK PIDX_PROV_PARAM_ECDH_COFACTOR_CHECK +#define PIDX_EXCHANGE_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_EXCHANGE_PARAM_KDF_DIGEST 104 +#define PIDX_EXCHANGE_PARAM_KDF_DIGEST_PROPS 105 +#define PIDX_EXCHANGE_PARAM_KDF_OUTLEN 106 +#define PIDX_EXCHANGE_PARAM_KDF_TYPE 107 +#define PIDX_EXCHANGE_PARAM_KDF_UKM 108 +#define PIDX_EXCHANGE_PARAM_PAD 109 +#define PIDX_GEN_PARAM_ITERATION 110 +#define PIDX_GEN_PARAM_POTENTIAL 111 +#define PIDX_KDF_PARAM_ARGON2_AD 112 +#define PIDX_KDF_PARAM_ARGON2_LANES 113 +#define PIDX_KDF_PARAM_ARGON2_MEMCOST 114 +#define PIDX_KDF_PARAM_ARGON2_VERSION 115 +#define PIDX_KDF_PARAM_CEK_ALG 116 +#define PIDX_KDF_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_KDF_PARAM_CONSTANT 117 +#define PIDX_KDF_PARAM_DATA 118 +#define PIDX_KDF_PARAM_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_KDF_PARAM_EARLY_CLEAN 119 +#define PIDX_KDF_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_KDF_PARAM_FIPS_DIGEST_CHECK PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK +#define PIDX_KDF_PARAM_FIPS_EMS_CHECK 120 +#define PIDX_KDF_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_KDF_PARAM_HMACDRBG_ENTROPY 121 +#define PIDX_KDF_PARAM_HMACDRBG_NONCE 122 +#define PIDX_KDF_PARAM_INFO 123 +#define PIDX_KDF_PARAM_ITER 124 +#define PIDX_KDF_PARAM_KBKDF_R 125 +#define PIDX_KDF_PARAM_KBKDF_USE_L 126 +#define PIDX_KDF_PARAM_KBKDF_USE_SEPARATOR 127 +#define PIDX_KDF_PARAM_KEY 128 +#define PIDX_KDF_PARAM_LABEL 129 +#define PIDX_KDF_PARAM_MAC PIDX_ALG_PARAM_MAC +#define PIDX_KDF_PARAM_MAC_SIZE 130 +#define PIDX_KDF_PARAM_MODE 55 +#define PIDX_KDF_PARAM_PASSWORD 131 +#define PIDX_KDF_PARAM_PKCS12_ID 132 +#define PIDX_KDF_PARAM_PKCS5 133 +#define PIDX_KDF_PARAM_PREFIX 134 +#define PIDX_KDF_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_KDF_PARAM_SALT 135 +#define PIDX_KDF_PARAM_SCRYPT_MAXMEM 136 +#define PIDX_KDF_PARAM_SCRYPT_N 137 +#define PIDX_KDF_PARAM_SCRYPT_P 138 +#define PIDX_KDF_PARAM_SCRYPT_R 125 +#define PIDX_KDF_PARAM_SECRET 139 +#define PIDX_KDF_PARAM_SEED 140 +#define PIDX_KDF_PARAM_SIZE 81 +#define PIDX_KDF_PARAM_SSHKDF_SESSION_ID 141 +#define PIDX_KDF_PARAM_SSHKDF_TYPE 142 +#define PIDX_KDF_PARAM_SSHKDF_XCGHASH 143 +#define PIDX_KDF_PARAM_THREADS 144 +#define PIDX_KDF_PARAM_UKM 145 +#define PIDX_KDF_PARAM_X942_ACVPINFO 146 +#define PIDX_KDF_PARAM_X942_PARTYUINFO 147 +#define PIDX_KDF_PARAM_X942_PARTYVINFO 148 +#define PIDX_KDF_PARAM_X942_SUPP_PRIVINFO 149 +#define PIDX_KDF_PARAM_X942_SUPP_PUBINFO 150 +#define PIDX_KDF_PARAM_X942_USE_KEYBITS 151 +#define PIDX_KEM_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_KEM_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_KEM_PARAM_IKME 152 +#define PIDX_KEM_PARAM_OPERATION 153 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_BLOCK_PADDING 154 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_HS_PADDING 155 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_MAX_EARLY_DATA 156 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_MAX_FRAG_LEN 157 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_MODE 55 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_OPTIONS 158 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_READ_AHEAD 159 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_STREAM_MAC 160 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_TLSTREE 161 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_USE_ETM 162 +#define PIDX_LIBSSL_RECORD_LAYER_READ_BUFFER_LEN 163 +#define PIDX_MAC_PARAM_BLOCK_SIZE 164 +#define PIDX_MAC_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_MAC_PARAM_CUSTOM 165 +#define PIDX_MAC_PARAM_C_ROUNDS 166 +#define PIDX_MAC_PARAM_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_MAC_PARAM_DIGEST_NOINIT 167 +#define PIDX_MAC_PARAM_DIGEST_ONESHOT 168 +#define PIDX_MAC_PARAM_D_ROUNDS 169 +#define PIDX_MAC_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_MAC_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_MAC_PARAM_FIPS_NO_SHORT_MAC PIDX_PROV_PARAM_NO_SHORT_MAC +#define PIDX_MAC_PARAM_IV 52 +#define PIDX_MAC_PARAM_KEY 128 +#define PIDX_MAC_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_MAC_PARAM_SALT 135 +#define PIDX_MAC_PARAM_SIZE 81 +#define PIDX_MAC_PARAM_TLS_DATA_SIZE 170 +#define PIDX_MAC_PARAM_XOF 83 +#define PIDX_OBJECT_PARAM_DATA 118 +#define PIDX_OBJECT_PARAM_DATA_STRUCTURE 171 +#define PIDX_OBJECT_PARAM_DATA_TYPE 172 +#define PIDX_OBJECT_PARAM_DESC 173 +#define PIDX_OBJECT_PARAM_INPUT_TYPE 174 +#define PIDX_OBJECT_PARAM_REFERENCE 175 +#define PIDX_OBJECT_PARAM_TYPE 142 +#define PIDX_PASSPHRASE_PARAM_INFO 123 +#define PIDX_PKEY_PARAM_ALGORITHM_ID PIDX_ALG_PARAM_ALGORITHM_ID +#define PIDX_PKEY_PARAM_ALGORITHM_ID_PARAMS PIDX_ALG_PARAM_ALGORITHM_ID_PARAMS +#define PIDX_PKEY_PARAM_BITS 176 +#define PIDX_PKEY_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_PKEY_PARAM_DEFAULT_DIGEST 177 +#define PIDX_PKEY_PARAM_DHKEM_IKM 178 +#define PIDX_PKEY_PARAM_DH_GENERATOR 179 +#define PIDX_PKEY_PARAM_DH_PRIV_LEN 180 +#define PIDX_PKEY_PARAM_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_PKEY_PARAM_DIGEST_SIZE 181 +#define PIDX_PKEY_PARAM_DIST_ID 182 +#define PIDX_PKEY_PARAM_EC_A 183 +#define PIDX_PKEY_PARAM_EC_B 184 +#define PIDX_PKEY_PARAM_EC_CHAR2_M 185 +#define PIDX_PKEY_PARAM_EC_CHAR2_PP_K1 186 +#define PIDX_PKEY_PARAM_EC_CHAR2_PP_K2 187 +#define PIDX_PKEY_PARAM_EC_CHAR2_PP_K3 188 +#define PIDX_PKEY_PARAM_EC_CHAR2_TP_BASIS 189 +#define PIDX_PKEY_PARAM_EC_CHAR2_TYPE 190 +#define PIDX_PKEY_PARAM_EC_COFACTOR 191 +#define PIDX_PKEY_PARAM_EC_DECODED_FROM_EXPLICIT_PARAMS 192 +#define PIDX_PKEY_PARAM_EC_ENCODING 193 +#define PIDX_PKEY_PARAM_EC_FIELD_TYPE 194 +#define PIDX_PKEY_PARAM_EC_GENERATOR 195 +#define PIDX_PKEY_PARAM_EC_GROUP_CHECK_TYPE 196 +#define PIDX_PKEY_PARAM_EC_INCLUDE_PUBLIC 197 +#define PIDX_PKEY_PARAM_EC_ORDER 198 +#define PIDX_PKEY_PARAM_EC_P 138 +#define PIDX_PKEY_PARAM_EC_POINT_CONVERSION_FORMAT 199 +#define PIDX_PKEY_PARAM_EC_PUB_X 200 +#define PIDX_PKEY_PARAM_EC_PUB_Y 201 +#define PIDX_PKEY_PARAM_EC_SEED 140 +#define PIDX_PKEY_PARAM_ENCODED_PUBLIC_KEY 202 +#define PIDX_PKEY_PARAM_ENGINE PIDX_ALG_PARAM_ENGINE +#define PIDX_PKEY_PARAM_FFC_COFACTOR 203 +#define PIDX_PKEY_PARAM_FFC_DIGEST PIDX_PKEY_PARAM_DIGEST +#define PIDX_PKEY_PARAM_FFC_DIGEST_PROPS PIDX_PKEY_PARAM_PROPERTIES +#define PIDX_PKEY_PARAM_FFC_G 204 +#define PIDX_PKEY_PARAM_FFC_GINDEX 205 +#define PIDX_PKEY_PARAM_FFC_H 206 +#define PIDX_PKEY_PARAM_FFC_P 138 +#define PIDX_PKEY_PARAM_FFC_PBITS 207 +#define PIDX_PKEY_PARAM_FFC_PCOUNTER 208 +#define PIDX_PKEY_PARAM_FFC_Q 209 +#define PIDX_PKEY_PARAM_FFC_QBITS 210 +#define PIDX_PKEY_PARAM_FFC_SEED 140 +#define PIDX_PKEY_PARAM_FFC_TYPE 142 +#define PIDX_PKEY_PARAM_FFC_VALIDATE_G 211 +#define PIDX_PKEY_PARAM_FFC_VALIDATE_LEGACY 212 +#define PIDX_PKEY_PARAM_FFC_VALIDATE_PQ 213 +#define PIDX_PKEY_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK 214 +#define PIDX_PKEY_PARAM_FIPS_KEY_CHECK 215 +#define PIDX_PKEY_PARAM_FIPS_SIGN_CHECK 216 +#define PIDX_PKEY_PARAM_GROUP_NAME 217 +#define PIDX_PKEY_PARAM_IMPLICIT_REJECTION 8 +#define PIDX_PKEY_PARAM_MANDATORY_DIGEST 218 +#define PIDX_PKEY_PARAM_MASKGENFUNC 219 +#define PIDX_PKEY_PARAM_MAX_SIZE 220 +#define PIDX_PKEY_PARAM_MGF1_DIGEST 221 +#define PIDX_PKEY_PARAM_MGF1_PROPERTIES 222 +#define PIDX_PKEY_PARAM_ML_DSA_INPUT_FORMATS 223 +#define PIDX_PKEY_PARAM_ML_DSA_OUTPUT_FORMATS 224 +#define PIDX_PKEY_PARAM_ML_DSA_PREFER_SEED 225 +#define PIDX_PKEY_PARAM_ML_DSA_RETAIN_SEED 226 +#define PIDX_PKEY_PARAM_ML_DSA_SEED 140 +#define PIDX_PKEY_PARAM_ML_KEM_IMPORT_PCT_TYPE 227 +#define PIDX_PKEY_PARAM_ML_KEM_INPUT_FORMATS 228 +#define PIDX_PKEY_PARAM_ML_KEM_OUTPUT_FORMATS 229 +#define PIDX_PKEY_PARAM_ML_KEM_PREFER_SEED 230 +#define PIDX_PKEY_PARAM_ML_KEM_RETAIN_SEED 231 +#define PIDX_PKEY_PARAM_ML_KEM_SEED 140 +#define PIDX_PKEY_PARAM_PAD_MODE 232 +#define PIDX_PKEY_PARAM_PRIV_KEY 233 +#define PIDX_PKEY_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_PKEY_PARAM_PUB_KEY 234 +#define PIDX_PKEY_PARAM_RSA_BITS PIDX_PKEY_PARAM_BITS +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT 235 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT1 236 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT2 237 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT3 238 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT4 239 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT5 240 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT6 241 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT7 242 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT8 243 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT9 244 +#define PIDX_PKEY_PARAM_RSA_D 245 +#define PIDX_PKEY_PARAM_RSA_DERIVE_FROM_PQ 246 +#define PIDX_PKEY_PARAM_RSA_DIGEST PIDX_PKEY_PARAM_DIGEST +#define PIDX_PKEY_PARAM_RSA_DIGEST_PROPS PIDX_PKEY_PARAM_PROPERTIES +#define PIDX_PKEY_PARAM_RSA_E 247 +#define PIDX_PKEY_PARAM_RSA_EXPONENT 248 +#define PIDX_PKEY_PARAM_RSA_EXPONENT1 249 +#define PIDX_PKEY_PARAM_RSA_EXPONENT10 250 +#define PIDX_PKEY_PARAM_RSA_EXPONENT2 251 +#define PIDX_PKEY_PARAM_RSA_EXPONENT3 252 +#define PIDX_PKEY_PARAM_RSA_EXPONENT4 253 +#define PIDX_PKEY_PARAM_RSA_EXPONENT5 254 +#define PIDX_PKEY_PARAM_RSA_EXPONENT6 255 +#define PIDX_PKEY_PARAM_RSA_EXPONENT7 256 +#define PIDX_PKEY_PARAM_RSA_EXPONENT8 257 +#define PIDX_PKEY_PARAM_RSA_EXPONENT9 258 +#define PIDX_PKEY_PARAM_RSA_FACTOR 259 +#define PIDX_PKEY_PARAM_RSA_FACTOR1 260 +#define PIDX_PKEY_PARAM_RSA_FACTOR10 261 +#define PIDX_PKEY_PARAM_RSA_FACTOR2 262 +#define PIDX_PKEY_PARAM_RSA_FACTOR3 263 +#define PIDX_PKEY_PARAM_RSA_FACTOR4 264 +#define PIDX_PKEY_PARAM_RSA_FACTOR5 265 +#define PIDX_PKEY_PARAM_RSA_FACTOR6 266 +#define PIDX_PKEY_PARAM_RSA_FACTOR7 267 +#define PIDX_PKEY_PARAM_RSA_FACTOR8 268 +#define PIDX_PKEY_PARAM_RSA_FACTOR9 269 +#define PIDX_PKEY_PARAM_RSA_MASKGENFUNC PIDX_PKEY_PARAM_MASKGENFUNC +#define PIDX_PKEY_PARAM_RSA_MGF1_DIGEST PIDX_PKEY_PARAM_MGF1_DIGEST +#define PIDX_PKEY_PARAM_RSA_N 137 +#define PIDX_PKEY_PARAM_RSA_PRIMES 270 +#define PIDX_PKEY_PARAM_RSA_PSS_SALTLEN 271 +#define PIDX_PKEY_PARAM_RSA_TEST_P1 272 +#define PIDX_PKEY_PARAM_RSA_TEST_P2 273 +#define PIDX_PKEY_PARAM_RSA_TEST_Q1 274 +#define PIDX_PKEY_PARAM_RSA_TEST_Q2 275 +#define PIDX_PKEY_PARAM_RSA_TEST_XP 276 +#define PIDX_PKEY_PARAM_RSA_TEST_XP1 277 +#define PIDX_PKEY_PARAM_RSA_TEST_XP2 278 +#define PIDX_PKEY_PARAM_RSA_TEST_XQ 279 +#define PIDX_PKEY_PARAM_RSA_TEST_XQ1 280 +#define PIDX_PKEY_PARAM_RSA_TEST_XQ2 281 +#define PIDX_PKEY_PARAM_SECURITY_BITS 282 +#define PIDX_PKEY_PARAM_SLH_DSA_SEED 140 +#define PIDX_PKEY_PARAM_USE_COFACTOR_ECDH PIDX_PKEY_PARAM_USE_COFACTOR_FLAG +#define PIDX_PKEY_PARAM_USE_COFACTOR_FLAG 283 +#define PIDX_PROV_PARAM_BUILDINFO 284 +#define PIDX_PROV_PARAM_CORE_MODULE_FILENAME 285 +#define PIDX_PROV_PARAM_CORE_PROV_NAME 286 +#define PIDX_PROV_PARAM_CORE_VERSION 287 +#define PIDX_PROV_PARAM_DRBG_TRUNC_DIGEST 288 +#define PIDX_PROV_PARAM_DSA_SIGN_DISABLED 289 +#define PIDX_PROV_PARAM_ECDH_COFACTOR_CHECK 290 +#define PIDX_PROV_PARAM_HKDF_DIGEST_CHECK 291 +#define PIDX_PROV_PARAM_HKDF_KEY_CHECK 292 +#define PIDX_PROV_PARAM_HMAC_KEY_CHECK 293 +#define PIDX_PROV_PARAM_KBKDF_KEY_CHECK 294 +#define PIDX_PROV_PARAM_KMAC_KEY_CHECK 295 +#define PIDX_PROV_PARAM_NAME 296 +#define PIDX_PROV_PARAM_NO_SHORT_MAC 297 +#define PIDX_PROV_PARAM_PBKDF2_LOWER_BOUND_CHECK 298 +#define PIDX_PROV_PARAM_RSA_PKCS15_PAD_DISABLED 299 +#define PIDX_PROV_PARAM_RSA_PSS_SALTLEN_CHECK 300 +#define PIDX_PROV_PARAM_RSA_SIGN_X931_PAD_DISABLED 301 +#define PIDX_PROV_PARAM_SECURITY_CHECKS 302 +#define PIDX_PROV_PARAM_SELF_TEST_DESC 303 +#define PIDX_PROV_PARAM_SELF_TEST_PHASE 304 +#define PIDX_PROV_PARAM_SELF_TEST_TYPE 305 +#define PIDX_PROV_PARAM_SIGNATURE_DIGEST_CHECK 306 +#define PIDX_PROV_PARAM_SSHKDF_DIGEST_CHECK 307 +#define PIDX_PROV_PARAM_SSHKDF_KEY_CHECK 308 +#define PIDX_PROV_PARAM_SSKDF_DIGEST_CHECK 309 +#define PIDX_PROV_PARAM_SSKDF_KEY_CHECK 310 +#define PIDX_PROV_PARAM_STATUS 311 +#define PIDX_PROV_PARAM_TDES_ENCRYPT_DISABLED 312 +#define PIDX_PROV_PARAM_TLS13_KDF_DIGEST_CHECK 313 +#define PIDX_PROV_PARAM_TLS13_KDF_KEY_CHECK 314 +#define PIDX_PROV_PARAM_TLS1_PRF_DIGEST_CHECK 315 +#define PIDX_PROV_PARAM_TLS1_PRF_EMS_CHECK 316 +#define PIDX_PROV_PARAM_TLS1_PRF_KEY_CHECK 317 +#define PIDX_PROV_PARAM_VERSION 115 +#define PIDX_PROV_PARAM_X942KDF_KEY_CHECK 318 +#define PIDX_PROV_PARAM_X963KDF_DIGEST_CHECK 319 +#define PIDX_PROV_PARAM_X963KDF_KEY_CHECK 320 +#define PIDX_RAND_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_RAND_PARAM_GENERATE 321 +#define PIDX_RAND_PARAM_MAX_REQUEST 322 +#define PIDX_RAND_PARAM_STATE 323 +#define PIDX_RAND_PARAM_STRENGTH 324 +#define PIDX_RAND_PARAM_TEST_ENTROPY 325 +#define PIDX_RAND_PARAM_TEST_NONCE 326 +#define PIDX_SIGNATURE_PARAM_ADD_RANDOM 327 +#define PIDX_SIGNATURE_PARAM_ALGORITHM_ID PIDX_PKEY_PARAM_ALGORITHM_ID +#define PIDX_SIGNATURE_PARAM_ALGORITHM_ID_PARAMS PIDX_PKEY_PARAM_ALGORITHM_ID_PARAMS +#define PIDX_SIGNATURE_PARAM_CONTEXT_STRING 328 +#define PIDX_SIGNATURE_PARAM_DETERMINISTIC 329 +#define PIDX_SIGNATURE_PARAM_DIGEST PIDX_PKEY_PARAM_DIGEST +#define PIDX_SIGNATURE_PARAM_DIGEST_SIZE PIDX_PKEY_PARAM_DIGEST_SIZE +#define PIDX_SIGNATURE_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_SIGNATURE_PARAM_FIPS_DIGEST_CHECK PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK +#define PIDX_SIGNATURE_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_SIGNATURE_PARAM_FIPS_RSA_PSS_SALTLEN_CHECK 300 +#define PIDX_SIGNATURE_PARAM_FIPS_SIGN_CHECK PIDX_PKEY_PARAM_FIPS_SIGN_CHECK +#define PIDX_SIGNATURE_PARAM_FIPS_SIGN_X931_PAD_CHECK 330 +#define PIDX_SIGNATURE_PARAM_FIPS_VERIFY_MESSAGE 331 +#define PIDX_SIGNATURE_PARAM_INSTANCE 332 +#define PIDX_SIGNATURE_PARAM_KAT 333 +#define PIDX_SIGNATURE_PARAM_MESSAGE_ENCODING 334 +#define PIDX_SIGNATURE_PARAM_MGF1_DIGEST PIDX_PKEY_PARAM_MGF1_DIGEST +#define PIDX_SIGNATURE_PARAM_MGF1_PROPERTIES PIDX_PKEY_PARAM_MGF1_PROPERTIES +#define PIDX_SIGNATURE_PARAM_MU 335 +#define PIDX_SIGNATURE_PARAM_NONCE_TYPE 336 +#define PIDX_SIGNATURE_PARAM_PAD_MODE PIDX_PKEY_PARAM_PAD_MODE +#define PIDX_SIGNATURE_PARAM_PROPERTIES PIDX_PKEY_PARAM_PROPERTIES +#define PIDX_SIGNATURE_PARAM_PSS_SALTLEN 271 +#define PIDX_SIGNATURE_PARAM_SIGNATURE 337 +#define PIDX_SIGNATURE_PARAM_TEST_ENTROPY 338 +#define PIDX_SKEY_PARAM_KEY_LENGTH 339 +#define PIDX_SKEY_PARAM_RAW_BYTES 340 +#define PIDX_STORE_PARAM_ALIAS 341 +#define PIDX_STORE_PARAM_DIGEST 3 +#define PIDX_STORE_PARAM_EXPECT 342 +#define PIDX_STORE_PARAM_FINGERPRINT 343 +#define PIDX_STORE_PARAM_INPUT_TYPE 174 +#define PIDX_STORE_PARAM_ISSUER 296 +#define PIDX_STORE_PARAM_PROPERTIES 7 +#define PIDX_STORE_PARAM_SERIAL 344 +#define PIDX_STORE_PARAM_SUBJECT 345 diff --git a/deps/openssl/config/archs/aix64-gcc-as/no-asm/include/openssl/asn1.h b/deps/openssl/config/archs/aix64-gcc-as/no-asm/include/openssl/asn1.h index 21ff58e3d803d4..15e9e44674b0f3 100644 --- a/deps/openssl/config/archs/aix64-gcc-as/no-asm/include/openssl/asn1.h +++ b/deps/openssl/config/archs/aix64-gcc-as/no-asm/include/openssl/asn1.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/asn1.h.in * - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -21,6 +21,9 @@ # define HEADER_ASN1_H # endif +# ifndef OPENSSL_NO_STDIO +# include +# endif # include # include # include @@ -50,14 +53,14 @@ extern "C" { # define V_ASN1_PRIMITIVE_TAG 0x1f # define V_ASN1_PRIMATIVE_TAG /*compat*/ V_ASN1_PRIMITIVE_TAG -# define V_ASN1_APP_CHOOSE -2/* let the recipient choose */ -# define V_ASN1_OTHER -3/* used in ASN1_TYPE */ -# define V_ASN1_ANY -4/* used in ASN1 template code */ +# define V_ASN1_APP_CHOOSE -2 /* let the recipient choose */ +# define V_ASN1_OTHER -3 /* used in ASN1_TYPE */ +# define V_ASN1_ANY -4 /* used in ASN1 template code */ # define V_ASN1_UNDEF -1 /* ASN.1 tag values */ # define V_ASN1_EOC 0 -# define V_ASN1_BOOLEAN 1 /**/ +# define V_ASN1_BOOLEAN 1 # define V_ASN1_INTEGER 2 # define V_ASN1_BIT_STRING 3 # define V_ASN1_OCTET_STRING 4 @@ -70,19 +73,19 @@ extern "C" { # define V_ASN1_UTF8STRING 12 # define V_ASN1_SEQUENCE 16 # define V_ASN1_SET 17 -# define V_ASN1_NUMERICSTRING 18 /**/ +# define V_ASN1_NUMERICSTRING 18 # define V_ASN1_PRINTABLESTRING 19 # define V_ASN1_T61STRING 20 -# define V_ASN1_TELETEXSTRING 20/* alias */ -# define V_ASN1_VIDEOTEXSTRING 21 /**/ +# define V_ASN1_TELETEXSTRING 20 /* alias */ +# define V_ASN1_VIDEOTEXSTRING 21 # define V_ASN1_IA5STRING 22 # define V_ASN1_UTCTIME 23 -# define V_ASN1_GENERALIZEDTIME 24 /**/ -# define V_ASN1_GRAPHICSTRING 25 /**/ -# define V_ASN1_ISO64STRING 26 /**/ -# define V_ASN1_VISIBLESTRING 26/* alias */ -# define V_ASN1_GENERALSTRING 27 /**/ -# define V_ASN1_UNIVERSALSTRING 28 /**/ +# define V_ASN1_GENERALIZEDTIME 24 +# define V_ASN1_GRAPHICSTRING 25 +# define V_ASN1_ISO64STRING 26 +# define V_ASN1_VISIBLESTRING 26 /* alias */ +# define V_ASN1_GENERALSTRING 27 +# define V_ASN1_UNIVERSALSTRING 28 # define V_ASN1_BMPSTRING 30 /* @@ -155,7 +158,7 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_ALGOR, X509_ALGOR, X509_ALGOR) -# define ASN1_STRING_FLAG_BITS_LEFT 0x08/* Set if 0x07 has bits left value */ +# define ASN1_STRING_FLAG_BITS_LEFT 0x08 /* Set if 0x07 has bits left value */ /* * This indicates that the ASN1_STRING is not a real value but just a place * holder for the location where indefinite length constructed data should be @@ -275,7 +278,7 @@ typedef struct ASN1_TLC_st ASN1_TLC; /* This is just an opaque pointer */ typedef struct ASN1_VALUE_st ASN1_VALUE; -/* Declare ASN1 functions: the implement macro in in asn1t.h */ +/* Declare ASN1 functions: the implement macro is in asn1t.h */ /* * The mysterious 'extern' that's passed to some macros is innocuous, @@ -368,6 +371,7 @@ typedef struct ASN1_VALUE_st ASN1_VALUE; typedef void *d2i_of_void(void **, const unsigned char **, long); typedef int i2d_of_void(const void *, unsigned char **); +typedef int OSSL_i2d_of_void_ctx(const void *, unsigned char **, void *vctx); /*- * The following macros and typedefs allow an ASN1_ITEM @@ -996,6 +1000,8 @@ int ASN1_TYPE_get_int_octetstring(const ASN1_TYPE *a, long *num, unsigned char *data, int max_len); void *ASN1_item_unpack(const ASN1_STRING *oct, const ASN1_ITEM *it); +void *ASN1_item_unpack_ex(const ASN1_STRING *oct, const ASN1_ITEM *it, + OSSL_LIB_CTX *libctx, const char *propq); ASN1_STRING *ASN1_item_pack(void *obj, const ASN1_ITEM *it, ASN1_OCTET_STRING **oct); diff --git a/deps/openssl/config/archs/aix64-gcc-as/no-asm/include/openssl/bio.h b/deps/openssl/config/archs/aix64-gcc-as/no-asm/include/openssl/bio.h index f9aa74731c833c..e02f867beb0ec0 100644 --- a/deps/openssl/config/archs/aix64-gcc-as/no-asm/include/openssl/bio.h +++ b/deps/openssl/config/archs/aix64-gcc-as/no-asm/include/openssl/bio.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/bio.h.in * - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -67,8 +67,13 @@ extern "C" { # define BIO_TYPE_DGRAM_SCTP (24|BIO_TYPE_SOURCE_SINK|BIO_TYPE_DESCRIPTOR) # endif # define BIO_TYPE_CORE_TO_PROV (25|BIO_TYPE_SOURCE_SINK) +# define BIO_TYPE_DGRAM_PAIR (26|BIO_TYPE_SOURCE_SINK) +# define BIO_TYPE_DGRAM_MEM (27|BIO_TYPE_SOURCE_SINK) +/* Custom type starting index returned by BIO_get_new_index() */ #define BIO_TYPE_START 128 +/* Custom type maximum index that can be returned by BIO_get_new_index() */ +#define BIO_TYPE_MASK 0xFF /* * BIO_FILENAME_READ|BIO_CLOSE to open or close on free. @@ -171,6 +176,31 @@ extern "C" { # define BIO_CTRL_SET_INDENT 80 # define BIO_CTRL_GET_INDENT 81 +# define BIO_CTRL_DGRAM_GET_LOCAL_ADDR_CAP 82 +# define BIO_CTRL_DGRAM_GET_LOCAL_ADDR_ENABLE 83 +# define BIO_CTRL_DGRAM_SET_LOCAL_ADDR_ENABLE 84 +# define BIO_CTRL_DGRAM_GET_EFFECTIVE_CAPS 85 +# define BIO_CTRL_DGRAM_GET_CAPS 86 +# define BIO_CTRL_DGRAM_SET_CAPS 87 +# define BIO_CTRL_DGRAM_GET_NO_TRUNC 88 +# define BIO_CTRL_DGRAM_SET_NO_TRUNC 89 + +/* + * internal BIO: + * # define BIO_CTRL_SET_KTLS_TX_ZEROCOPY_SENDFILE 90 + */ + +# define BIO_CTRL_GET_RPOLL_DESCRIPTOR 91 +# define BIO_CTRL_GET_WPOLL_DESCRIPTOR 92 +# define BIO_CTRL_DGRAM_DETECT_PEER_ADDR 93 +# define BIO_CTRL_DGRAM_SET0_LOCAL_ADDR 94 + +# define BIO_DGRAM_CAP_NONE 0U +# define BIO_DGRAM_CAP_HANDLES_SRC_ADDR (1U << 0) +# define BIO_DGRAM_CAP_HANDLES_DST_ADDR (1U << 1) +# define BIO_DGRAM_CAP_PROVIDES_SRC_ADDR (1U << 2) +# define BIO_DGRAM_CAP_PROVIDES_DST_ADDR (1U << 3) + # ifndef OPENSSL_NO_KTLS # define BIO_get_ktls_send(b) \ (BIO_ctrl(b, BIO_CTRL_GET_KTLS_SEND, 0, NULL) > 0) @@ -208,7 +238,7 @@ extern "C" { # define BIO_FLAGS_NONCLEAR_RST 0x400 # define BIO_FLAGS_IN_EOF 0x800 -/* the BIO FLAGS values 0x1000 to 0x4000 are reserved for internal KTLS flags */ +/* the BIO FLAGS values 0x1000 to 0x8000 are reserved for internal KTLS flags */ typedef union bio_addr_st BIO_ADDR; typedef struct bio_addrinfo_st BIO_ADDRINFO; @@ -256,12 +286,14 @@ void BIO_clear_flags(BIO *b, int flags); # define BIO_RR_ACCEPT 0x03 /* These are passed by the BIO callback */ -# define BIO_CB_FREE 0x01 -# define BIO_CB_READ 0x02 -# define BIO_CB_WRITE 0x03 -# define BIO_CB_PUTS 0x04 -# define BIO_CB_GETS 0x05 -# define BIO_CB_CTRL 0x06 +# define BIO_CB_FREE 0x01 +# define BIO_CB_READ 0x02 +# define BIO_CB_WRITE 0x03 +# define BIO_CB_PUTS 0x04 +# define BIO_CB_GETS 0x05 +# define BIO_CB_CTRL 0x06 +# define BIO_CB_RECVMMSG 0x07 +# define BIO_CB_SENDMMSG 0x08 /* * The callback is called before and after the underling operation, The @@ -362,6 +394,36 @@ struct bio_dgram_sctp_prinfo { }; # endif +/* BIO_sendmmsg/BIO_recvmmsg-related definitions */ +typedef struct bio_msg_st { + void *data; + size_t data_len; + BIO_ADDR *peer, *local; + uint64_t flags; +} BIO_MSG; + +typedef struct bio_mmsg_cb_args_st { + BIO_MSG *msg; + size_t stride, num_msg; + uint64_t flags; + size_t *msgs_processed; +} BIO_MMSG_CB_ARGS; + +#define BIO_POLL_DESCRIPTOR_TYPE_NONE 0 +#define BIO_POLL_DESCRIPTOR_TYPE_SOCK_FD 1 +#define BIO_POLL_DESCRIPTOR_TYPE_SSL 2 +#define BIO_POLL_DESCRIPTOR_CUSTOM_START 8192 + +typedef struct bio_poll_descriptor_st { + uint32_t type; + union { + int fd; + void *custom; + uintptr_t custom_ui; + SSL *ssl; + } value; +} BIO_POLL_DESCRIPTOR; + /* * #define BIO_CONN_get_param_hostname BIO_ctrl */ @@ -428,10 +490,17 @@ struct bio_dgram_sctp_prinfo { # define BIO_C_SET_CONNECT_MODE 155 +# define BIO_C_SET_TFO 156 /* like BIO_C_SET_NBIO */ + +# define BIO_C_SET_SOCK_TYPE 157 +# define BIO_C_GET_SOCK_TYPE 158 +# define BIO_C_GET_DGRAM_BIO 159 + # define BIO_set_app_data(s,arg) BIO_set_ex_data(s,0,arg) # define BIO_get_app_data(s) BIO_get_ex_data(s,0) -# define BIO_set_nbio(b,n) BIO_ctrl(b,BIO_C_SET_NBIO,(n),NULL) +# define BIO_set_nbio(b,n) BIO_ctrl(b,BIO_C_SET_NBIO,(n),NULL) +# define BIO_set_tfo(b,n) BIO_ctrl(b,BIO_C_SET_TFO,(n),NULL) # ifndef OPENSSL_NO_SOCK /* IP families we support, for BIO_s_connect() and BIO_s_accept() */ @@ -452,7 +521,11 @@ struct bio_dgram_sctp_prinfo { # define BIO_get_conn_port(b) ((const char *)BIO_ptr_ctrl(b,BIO_C_GET_CONNECT,1)) # define BIO_get_conn_address(b) ((const BIO_ADDR *)BIO_ptr_ctrl(b,BIO_C_GET_CONNECT,2)) # define BIO_get_conn_ip_family(b) BIO_ctrl(b,BIO_C_GET_CONNECT,3,NULL) +# define BIO_get_conn_mode(b) BIO_ctrl(b,BIO_C_GET_CONNECT,4,NULL) # define BIO_set_conn_mode(b,n) BIO_ctrl(b,BIO_C_SET_CONNECT_MODE,(n),NULL) +# define BIO_set_sock_type(b,t) BIO_ctrl(b,BIO_C_SET_SOCK_TYPE,(t),NULL) +# define BIO_get_sock_type(b) BIO_ctrl(b,BIO_C_GET_SOCK_TYPE,0,NULL) +# define BIO_get0_dgram_bio(b, p) BIO_ctrl(b,BIO_C_GET_DGRAM_BIO,0,(void *)(BIO **)(p)) /* BIO_s_accept() */ # define BIO_set_accept_name(b,name) BIO_ctrl(b,BIO_C_SET_ACCEPT,0, \ @@ -469,6 +542,7 @@ struct bio_dgram_sctp_prinfo { (char *)(bio)) # define BIO_set_accept_ip_family(b,f) BIO_int_ctrl(b,BIO_C_SET_ACCEPT,4,f) # define BIO_get_accept_ip_family(b) BIO_ctrl(b,BIO_C_GET_ACCEPT,4,NULL) +# define BIO_set_tfo_accept(b,n) BIO_ctrl(b,BIO_C_SET_ACCEPT,5,(n)?(void *)"a":NULL) /* Aliases kept for backward compatibility */ # define BIO_BIND_NORMAL 0 @@ -596,8 +670,32 @@ int BIO_ctrl_reset_read_request(BIO *b); (int)BIO_ctrl(b, BIO_CTRL_DGRAM_GET_PEER, 0, (char *)(peer)) # define BIO_dgram_set_peer(b,peer) \ (int)BIO_ctrl(b, BIO_CTRL_DGRAM_SET_PEER, 0, (char *)(peer)) +# define BIO_dgram_detect_peer_addr(b,peer) \ + (int)BIO_ctrl(b, BIO_CTRL_DGRAM_DETECT_PEER_ADDR, 0, (char *)(peer)) # define BIO_dgram_get_mtu_overhead(b) \ (unsigned int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_MTU_OVERHEAD, 0, NULL) +# define BIO_dgram_get_local_addr_cap(b) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_LOCAL_ADDR_CAP, 0, NULL) +# define BIO_dgram_get_local_addr_enable(b, penable) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_LOCAL_ADDR_ENABLE, 0, (char *)(penable)) +# define BIO_dgram_set_local_addr_enable(b, enable) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET_LOCAL_ADDR_ENABLE, (enable), NULL) +# define BIO_dgram_get_effective_caps(b) \ + (uint32_t)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_EFFECTIVE_CAPS, 0, NULL) +# define BIO_dgram_get_caps(b) \ + (uint32_t)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_CAPS, 0, NULL) +# define BIO_dgram_set_caps(b, caps) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET_CAPS, (long)(caps), NULL) +# define BIO_dgram_get_no_trunc(b) \ + (unsigned int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_NO_TRUNC, 0, NULL) +# define BIO_dgram_set_no_trunc(b, enable) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET_NO_TRUNC, (enable), NULL) +# define BIO_dgram_get_mtu(b) \ + (unsigned int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_MTU, 0, NULL) +# define BIO_dgram_set_mtu(b, mtu) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET_MTU, (mtu), NULL) +# define BIO_dgram_set0_local_addr(b, addr) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET0_LOCAL_ADDR, 0, (addr)) /* ctrl macros for BIO_f_prefix */ # define BIO_set_prefix(b,p) BIO_ctrl((b), BIO_CTRL_SET_PREFIX, 0, (void *)(p)) @@ -640,10 +738,18 @@ void BIO_vfree(BIO *a); int BIO_up_ref(BIO *a); int BIO_read(BIO *b, void *data, int dlen); int BIO_read_ex(BIO *b, void *data, size_t dlen, size_t *readbytes); +__owur int BIO_recvmmsg(BIO *b, BIO_MSG *msg, + size_t stride, size_t num_msg, uint64_t flags, + size_t *msgs_processed); int BIO_gets(BIO *bp, char *buf, int size); int BIO_get_line(BIO *bio, char *buf, int size); int BIO_write(BIO *b, const void *data, int dlen); int BIO_write_ex(BIO *b, const void *data, size_t dlen, size_t *written); +__owur int BIO_sendmmsg(BIO *b, BIO_MSG *msg, + size_t stride, size_t num_msg, uint64_t flags, + size_t *msgs_processed); +__owur int BIO_get_rpoll_descriptor(BIO *b, BIO_POLL_DESCRIPTOR *desc); +__owur int BIO_get_wpoll_descriptor(BIO *b, BIO_POLL_DESCRIPTOR *desc); int BIO_puts(BIO *bp, const char *buf); int BIO_indent(BIO *b, int indent, int max); long BIO_ctrl(BIO *bp, int cmd, long larg, void *parg); @@ -667,6 +773,9 @@ int BIO_nwrite0(BIO *bio, char **buf); int BIO_nwrite(BIO *bio, char **buf, int num); const BIO_METHOD *BIO_s_mem(void); +# ifndef OPENSSL_NO_DGRAM +const BIO_METHOD *BIO_s_dgram_mem(void); +# endif const BIO_METHOD *BIO_s_secmem(void); BIO *BIO_new_mem_buf(const void *buf, int len); # ifndef OPENSSL_NO_SOCK @@ -686,6 +795,7 @@ const BIO_METHOD *BIO_f_nbio_test(void); const BIO_METHOD *BIO_f_prefix(void); const BIO_METHOD *BIO_s_core(void); # ifndef OPENSSL_NO_DGRAM +const BIO_METHOD *BIO_s_dgram_pair(void); const BIO_METHOD *BIO_s_datagram(void); int BIO_dgram_non_fatal_error(int error); BIO *BIO_new_dgram(int fd, int close_flag); @@ -704,6 +814,7 @@ int BIO_dgram_sctp_msg_waiting(BIO *b); # ifndef OPENSSL_NO_SOCK int BIO_sock_should_retry(int i); int BIO_sock_non_fatal_error(int error); +int BIO_err_is_non_fatal(unsigned int errcode); int BIO_socket_wait(int fd, int for_read, time_t max_time); # endif int BIO_wait(BIO *bio, time_t max_time, unsigned int nap_milliseconds); @@ -726,6 +837,8 @@ int BIO_hex_string(BIO *out, int indent, int width, const void *data, # ifndef OPENSSL_NO_SOCK BIO_ADDR *BIO_ADDR_new(void); +int BIO_ADDR_copy(BIO_ADDR *dst, const BIO_ADDR *src); +BIO_ADDR *BIO_ADDR_dup(const BIO_ADDR *ap); int BIO_ADDR_rawmake(BIO_ADDR *ap, int family, const void *where, size_t wherelen, unsigned short port); void BIO_ADDR_free(BIO_ADDR *); @@ -788,6 +901,7 @@ int BIO_sock_info(int sock, # define BIO_SOCK_KEEPALIVE 0x04 # define BIO_SOCK_NONBLOCK 0x08 # define BIO_SOCK_NODELAY 0x10 +# define BIO_SOCK_TFO 0x20 int BIO_socket(int domain, int socktype, int protocol, int options); int BIO_connect(int sock, const BIO_ADDR *addr, int options); @@ -805,6 +919,11 @@ BIO *BIO_new_fd(int fd, int close_flag); int BIO_new_bio_pair(BIO **bio1, size_t writebuf1, BIO **bio2, size_t writebuf2); +# ifndef OPENSSL_NO_DGRAM +int BIO_new_bio_dgram_pair(BIO **bio1, size_t writebuf1, + BIO **bio2, size_t writebuf2); +# endif + /* * If successful, returns 1 and in *bio1, *bio2 two BIO pair endpoints. * Otherwise returns 0 and sets *bio1 and *bio2 to NULL. Size 0 uses default @@ -849,38 +968,54 @@ ossl_bio__attr__((__format__(ossl_bio__printf__, 3, 0))); BIO_METHOD *BIO_meth_new(int type, const char *name); void BIO_meth_free(BIO_METHOD *biom); -int (*BIO_meth_get_write(const BIO_METHOD *biom)) (BIO *, const char *, int); -int (*BIO_meth_get_write_ex(const BIO_METHOD *biom)) (BIO *, const char *, size_t, - size_t *); int BIO_meth_set_write(BIO_METHOD *biom, int (*write) (BIO *, const char *, int)); int BIO_meth_set_write_ex(BIO_METHOD *biom, int (*bwrite) (BIO *, const char *, size_t, size_t *)); -int (*BIO_meth_get_read(const BIO_METHOD *biom)) (BIO *, char *, int); -int (*BIO_meth_get_read_ex(const BIO_METHOD *biom)) (BIO *, char *, size_t, size_t *); +int BIO_meth_set_sendmmsg(BIO_METHOD *biom, + int (*f) (BIO *, BIO_MSG *, size_t, size_t, + uint64_t, size_t *)); int BIO_meth_set_read(BIO_METHOD *biom, int (*read) (BIO *, char *, int)); int BIO_meth_set_read_ex(BIO_METHOD *biom, int (*bread) (BIO *, char *, size_t, size_t *)); -int (*BIO_meth_get_puts(const BIO_METHOD *biom)) (BIO *, const char *); +int BIO_meth_set_recvmmsg(BIO_METHOD *biom, + int (*f) (BIO *, BIO_MSG *, size_t, size_t, + uint64_t, size_t *)); int BIO_meth_set_puts(BIO_METHOD *biom, int (*puts) (BIO *, const char *)); -int (*BIO_meth_get_gets(const BIO_METHOD *biom)) (BIO *, char *, int); int BIO_meth_set_gets(BIO_METHOD *biom, int (*ossl_gets) (BIO *, char *, int)); -long (*BIO_meth_get_ctrl(const BIO_METHOD *biom)) (BIO *, int, long, void *); int BIO_meth_set_ctrl(BIO_METHOD *biom, long (*ctrl) (BIO *, int, long, void *)); -int (*BIO_meth_get_create(const BIO_METHOD *bion)) (BIO *); int BIO_meth_set_create(BIO_METHOD *biom, int (*create) (BIO *)); -int (*BIO_meth_get_destroy(const BIO_METHOD *biom)) (BIO *); int BIO_meth_set_destroy(BIO_METHOD *biom, int (*destroy) (BIO *)); -long (*BIO_meth_get_callback_ctrl(const BIO_METHOD *biom)) - (BIO *, int, BIO_info_cb *); int BIO_meth_set_callback_ctrl(BIO_METHOD *biom, long (*callback_ctrl) (BIO *, int, BIO_info_cb *)); - +# ifndef OPENSSL_NO_DEPRECATED_3_5 +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_write(const BIO_METHOD *biom)) (BIO *, const char *, + int); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_write_ex(const BIO_METHOD *biom)) (BIO *, const char *, + size_t, size_t *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_sendmmsg(const BIO_METHOD *biom))(BIO *, BIO_MSG *, + size_t, size_t, + uint64_t, size_t *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_read(const BIO_METHOD *biom)) (BIO *, char *, int); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_read_ex(const BIO_METHOD *biom)) (BIO *, char *, + size_t, size_t *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_recvmmsg(const BIO_METHOD *biom))(BIO *, BIO_MSG *, + size_t, size_t, + uint64_t, size_t *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_puts(const BIO_METHOD *biom)) (BIO *, const char *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_gets(const BIO_METHOD *biom)) (BIO *, char *, int); +OSSL_DEPRECATEDIN_3_5 long (*BIO_meth_get_ctrl(const BIO_METHOD *biom)) (BIO *, int, + long, void *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_create(const BIO_METHOD *bion)) (BIO *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_destroy(const BIO_METHOD *biom)) (BIO *); +OSSL_DEPRECATEDIN_3_5 long (*BIO_meth_get_callback_ctrl(const BIO_METHOD *biom)) (BIO *, int, + BIO_info_cb *); +# endif # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/aix64-gcc-as/no-asm/include/openssl/cmp.h b/deps/openssl/config/archs/aix64-gcc-as/no-asm/include/openssl/cmp.h index 49825570d8c303..05aed3029d594c 100644 --- a/deps/openssl/config/archs/aix64-gcc-as/no-asm/include/openssl/cmp.h +++ b/deps/openssl/config/archs/aix64-gcc-as/no-asm/include/openssl/cmp.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/cmp.h.in * - * Copyright 2007-2023 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2007-2024 The OpenSSL Project Authors. All Rights Reserved. * Copyright Nokia 2007-2019 * Copyright Siemens AG 2015-2019 * @@ -35,7 +35,9 @@ extern "C" { # endif -# define OSSL_CMP_PVNO 2 +# define OSSL_CMP_PVNO_2 2 +# define OSSL_CMP_PVNO_3 3 +# define OSSL_CMP_PVNO OSSL_CMP_PVNO_2 /* v2 is the default */ /*- * PKIFailureInfo ::= BIT STRING { @@ -137,7 +139,6 @@ extern "C" { # if OSSL_CMP_PKIFAILUREINFO_MAX_BIT_PATTERN > INT_MAX # error CMP_PKIFAILUREINFO_MAX bit pattern does not fit in type int # endif - typedef ASN1_BIT_STRING OSSL_CMP_PKIFAILUREINFO; # define OSSL_CMP_CTX_FAILINFO_badAlg (1 << 0) @@ -203,8 +204,8 @@ typedef ASN1_BIT_STRING OSSL_CMP_PKIFAILUREINFO; # define OSSL_CMP_PKISTATUS_revocationWarning 4 # define OSSL_CMP_PKISTATUS_revocationNotification 5 # define OSSL_CMP_PKISTATUS_keyUpdateWarning 6 - typedef ASN1_INTEGER OSSL_CMP_PKISTATUS; + DECLARE_ASN1_ITEM(OSSL_CMP_PKISTATUS) # define OSSL_CMP_CERTORENCCERT_CERTIFICATE 0 @@ -274,6 +275,46 @@ SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CMP_ITAV, OSSL_CMP_ITAV, OSSL_CMP_ITAV) #define sk_OSSL_CMP_ITAV_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_CMP_ITAV) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_CMP_ITAV_sk_type(sk), ossl_check_OSSL_CMP_ITAV_copyfunc_type(copyfunc), ossl_check_OSSL_CMP_ITAV_freefunc_type(freefunc))) #define sk_OSSL_CMP_ITAV_set_cmp_func(sk, cmp) ((sk_OSSL_CMP_ITAV_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CMP_ITAV_sk_type(sk), ossl_check_OSSL_CMP_ITAV_compfunc_type(cmp))) + +typedef struct ossl_cmp_crlstatus_st OSSL_CMP_CRLSTATUS; +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CMP_CRLSTATUS, OSSL_CMP_CRLSTATUS, OSSL_CMP_CRLSTATUS) +#define sk_OSSL_CMP_CRLSTATUS_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_value(sk, idx) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_value(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk), (idx))) +#define sk_OSSL_CMP_CRLSTATUS_new(cmp) ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_new(ossl_check_OSSL_CMP_CRLSTATUS_compfunc_type(cmp))) +#define sk_OSSL_CMP_CRLSTATUS_new_null() ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_new_null()) +#define sk_OSSL_CMP_CRLSTATUS_new_reserve(cmp, n) ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_CMP_CRLSTATUS_compfunc_type(cmp), (n))) +#define sk_OSSL_CMP_CRLSTATUS_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), (n)) +#define sk_OSSL_CMP_CRLSTATUS_free(sk) OPENSSL_sk_free(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_delete(sk, i) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_delete(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), (i))) +#define sk_OSSL_CMP_CRLSTATUS_delete_ptr(sk, ptr) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr))) +#define sk_OSSL_CMP_CRLSTATUS_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr)) +#define sk_OSSL_CMP_CRLSTATUS_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr)) +#define sk_OSSL_CMP_CRLSTATUS_pop(sk) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_pop(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk))) +#define sk_OSSL_CMP_CRLSTATUS_shift(sk) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_shift(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk))) +#define sk_OSSL_CMP_CRLSTATUS_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk),ossl_check_OSSL_CMP_CRLSTATUS_freefunc_type(freefunc)) +#define sk_OSSL_CMP_CRLSTATUS_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr), (idx)) +#define sk_OSSL_CMP_CRLSTATUS_set(sk, idx, ptr) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_set(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), (idx), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr))) +#define sk_OSSL_CMP_CRLSTATUS_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr)) +#define sk_OSSL_CMP_CRLSTATUS_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr)) +#define sk_OSSL_CMP_CRLSTATUS_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr), pnum) +#define sk_OSSL_CMP_CRLSTATUS_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_dup(sk) ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_dup(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk))) +#define sk_OSSL_CMP_CRLSTATUS_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_copyfunc_type(copyfunc), ossl_check_OSSL_CMP_CRLSTATUS_freefunc_type(freefunc))) +#define sk_OSSL_CMP_CRLSTATUS_set_cmp_func(sk, cmp) ((sk_OSSL_CMP_CRLSTATUS_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_compfunc_type(cmp))) + + +typedef OSSL_CRMF_ATTRIBUTETYPEANDVALUE OSSL_CMP_ATAV; +# define OSSL_CMP_ATAV_free OSSL_CRMF_ATTRIBUTETYPEANDVALUE_free +typedef STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) OSSL_CMP_ATAVS; +DECLARE_ASN1_FUNCTIONS(OSSL_CMP_ATAVS) +# define stack_st_OSSL_CMP_ATAV stack_st_OSSL_CRMF_ATTRIBUTETYPEANDVALUE +# define sk_OSSL_CMP_ATAV_num sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_num +# define sk_OSSL_CMP_ATAV_value sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_value +# define sk_OSSL_CMP_ATAV_push sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_push +# define sk_OSSL_CMP_ATAV_pop_free sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_pop_free + typedef struct ossl_cmp_revrepcontent_st OSSL_CMP_REVREPCONTENT; typedef struct ossl_cmp_pkisi_st OSSL_CMP_PKISI; DECLARE_ASN1_FUNCTIONS(OSSL_CMP_PKISI) @@ -375,21 +416,75 @@ void OSSL_CMP_ITAV_set0(OSSL_CMP_ITAV *itav, ASN1_OBJECT *type, ASN1_TYPE *value); ASN1_OBJECT *OSSL_CMP_ITAV_get0_type(const OSSL_CMP_ITAV *itav); ASN1_TYPE *OSSL_CMP_ITAV_get0_value(const OSSL_CMP_ITAV *itav); -int OSSL_CMP_ITAV_push0_stack_item(STACK_OF(OSSL_CMP_ITAV) **itav_sk_p, +int OSSL_CMP_ITAV_push0_stack_item(STACK_OF(OSSL_CMP_ITAV) **sk_p, OSSL_CMP_ITAV *itav); void OSSL_CMP_ITAV_free(OSSL_CMP_ITAV *itav); + +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new0_certProfile(STACK_OF(ASN1_UTF8STRING) + *certProfile); +int OSSL_CMP_ITAV_get0_certProfile(const OSSL_CMP_ITAV *itav, + STACK_OF(ASN1_UTF8STRING) **out); +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new_caCerts(const STACK_OF(X509) *caCerts); +int OSSL_CMP_ITAV_get0_caCerts(const OSSL_CMP_ITAV *itav, STACK_OF(X509) **out); + +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new_rootCaCert(const X509 *rootCaCert); +int OSSL_CMP_ITAV_get0_rootCaCert(const OSSL_CMP_ITAV *itav, X509 **out); +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new_rootCaKeyUpdate(const X509 *newWithNew, + const X509 *newWithOld, + const X509 *oldWithNew); +int OSSL_CMP_ITAV_get0_rootCaKeyUpdate(const OSSL_CMP_ITAV *itav, + X509 **newWithNew, + X509 **newWithOld, + X509 **oldWithNew); + +OSSL_CMP_CRLSTATUS *OSSL_CMP_CRLSTATUS_create(const X509_CRL *crl, + const X509 *cert, int only_DN); +OSSL_CMP_CRLSTATUS *OSSL_CMP_CRLSTATUS_new1(const DIST_POINT_NAME *dpn, + const GENERAL_NAMES *issuer, + const ASN1_TIME *thisUpdate); +int OSSL_CMP_CRLSTATUS_get0(const OSSL_CMP_CRLSTATUS *crlstatus, + DIST_POINT_NAME **dpn, GENERAL_NAMES **issuer, + ASN1_TIME **thisUpdate); +void OSSL_CMP_CRLSTATUS_free(OSSL_CMP_CRLSTATUS *crlstatus); +OSSL_CMP_ITAV +*OSSL_CMP_ITAV_new0_crlStatusList(STACK_OF(OSSL_CMP_CRLSTATUS) *crlStatusList); +int OSSL_CMP_ITAV_get0_crlStatusList(const OSSL_CMP_ITAV *itav, + STACK_OF(OSSL_CMP_CRLSTATUS) **out); +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new_crls(const X509_CRL *crls); +int OSSL_CMP_ITAV_get0_crls(const OSSL_CMP_ITAV *it, STACK_OF(X509_CRL) **out); +OSSL_CMP_ITAV +*OSSL_CMP_ITAV_new0_certReqTemplate(OSSL_CRMF_CERTTEMPLATE *certTemplate, + OSSL_CMP_ATAVS *keySpec); +int OSSL_CMP_ITAV_get1_certReqTemplate(const OSSL_CMP_ITAV *itav, + OSSL_CRMF_CERTTEMPLATE **certTemplate, + OSSL_CMP_ATAVS **keySpec); + +OSSL_CMP_ATAV *OSSL_CMP_ATAV_create(ASN1_OBJECT *type, ASN1_TYPE *value); +void OSSL_CMP_ATAV_set0(OSSL_CMP_ATAV *itav, ASN1_OBJECT *type, + ASN1_TYPE *value); +ASN1_OBJECT *OSSL_CMP_ATAV_get0_type(const OSSL_CMP_ATAV *itav); +ASN1_TYPE *OSSL_CMP_ATAV_get0_value(const OSSL_CMP_ATAV *itav); +OSSL_CMP_ATAV *OSSL_CMP_ATAV_new_algId(const X509_ALGOR *alg); +X509_ALGOR *OSSL_CMP_ATAV_get0_algId(const OSSL_CMP_ATAV *atav); +OSSL_CMP_ATAV *OSSL_CMP_ATAV_new_rsaKeyLen(int len); +int OSSL_CMP_ATAV_get_rsaKeyLen(const OSSL_CMP_ATAV *atav); +int OSSL_CMP_ATAV_push1(OSSL_CMP_ATAVS **sk_p, const OSSL_CMP_ATAV *atav); + void OSSL_CMP_MSG_free(OSSL_CMP_MSG *msg); /* from cmp_ctx.c */ OSSL_CMP_CTX *OSSL_CMP_CTX_new(OSSL_LIB_CTX *libctx, const char *propq); void OSSL_CMP_CTX_free(OSSL_CMP_CTX *ctx); int OSSL_CMP_CTX_reinit(OSSL_CMP_CTX *ctx); +OSSL_LIB_CTX *OSSL_CMP_CTX_get0_libctx(const OSSL_CMP_CTX *ctx); +const char *OSSL_CMP_CTX_get0_propq(const OSSL_CMP_CTX *ctx); /* CMP general options: */ # define OSSL_CMP_OPT_LOG_VERBOSITY 0 /* CMP transfer options: */ -# define OSSL_CMP_OPT_KEEP_ALIVE 10 -# define OSSL_CMP_OPT_MSG_TIMEOUT 11 +# define OSSL_CMP_OPT_KEEP_ALIVE 10 +# define OSSL_CMP_OPT_MSG_TIMEOUT 11 # define OSSL_CMP_OPT_TOTAL_TIMEOUT 12 +# define OSSL_CMP_OPT_USE_TLS 13 /* CMP request options: */ # define OSSL_CMP_OPT_VALIDITY_DAYS 20 # define OSSL_CMP_OPT_SUBJECTALTNAME_NODEFAULT 21 @@ -407,6 +502,7 @@ int OSSL_CMP_CTX_reinit(OSSL_CMP_CTX *ctx); # define OSSL_CMP_OPT_DIGEST_ALGNID 34 # define OSSL_CMP_OPT_IGNORE_KEYUSAGE 35 # define OSSL_CMP_OPT_PERMIT_TA_IN_EXTRACERTS_FOR_IR 36 +# define OSSL_CMP_OPT_NO_CACHE_EXTRACERTS 37 int OSSL_CMP_CTX_set_option(OSSL_CMP_CTX *ctx, int opt, int val); int OSSL_CMP_CTX_get_option(const OSSL_CMP_CTX *ctx, int opt); /* CMP-specific callback for logging and outputting the error queue: */ @@ -420,9 +516,11 @@ int OSSL_CMP_CTX_set1_server(OSSL_CMP_CTX *ctx, const char *address); int OSSL_CMP_CTX_set_serverPort(OSSL_CMP_CTX *ctx, int port); int OSSL_CMP_CTX_set1_proxy(OSSL_CMP_CTX *ctx, const char *name); int OSSL_CMP_CTX_set1_no_proxy(OSSL_CMP_CTX *ctx, const char *names); +# ifndef OPENSSL_NO_HTTP int OSSL_CMP_CTX_set_http_cb(OSSL_CMP_CTX *ctx, OSSL_HTTP_bio_cb_t cb); int OSSL_CMP_CTX_set_http_cb_arg(OSSL_CMP_CTX *ctx, void *arg); void *OSSL_CMP_CTX_get_http_cb_arg(const OSSL_CMP_CTX *ctx); +# endif typedef OSSL_CMP_MSG *(*OSSL_CMP_transfer_cb_t) (OSSL_CMP_CTX *ctx, const OSSL_CMP_MSG *req); int OSSL_CMP_CTX_set_transfer_cb(OSSL_CMP_CTX *ctx, OSSL_CMP_transfer_cb_t cb); @@ -432,7 +530,9 @@ void *OSSL_CMP_CTX_get_transfer_cb_arg(const OSSL_CMP_CTX *ctx); int OSSL_CMP_CTX_set1_srvCert(OSSL_CMP_CTX *ctx, X509 *cert); int OSSL_CMP_CTX_set1_expected_sender(OSSL_CMP_CTX *ctx, const X509_NAME *name); int OSSL_CMP_CTX_set0_trustedStore(OSSL_CMP_CTX *ctx, X509_STORE *store); +# define OSSL_CMP_CTX_set0_trusted OSSL_CMP_CTX_set0_trustedStore X509_STORE *OSSL_CMP_CTX_get0_trustedStore(const OSSL_CMP_CTX *ctx); +# define OSSL_CMP_CTX_get0_trusted OSSL_CMP_CTX_get0_trustedStore int OSSL_CMP_CTX_set1_untrusted(OSSL_CMP_CTX *ctx, STACK_OF(X509) *certs); STACK_OF(X509) *OSSL_CMP_CTX_get0_untrusted(const OSSL_CMP_CTX *ctx); /* client authentication: */ @@ -448,12 +548,15 @@ int OSSL_CMP_CTX_set1_secretValue(OSSL_CMP_CTX *ctx, int OSSL_CMP_CTX_set1_recipient(OSSL_CMP_CTX *ctx, const X509_NAME *name); int OSSL_CMP_CTX_push0_geninfo_ITAV(OSSL_CMP_CTX *ctx, OSSL_CMP_ITAV *itav); int OSSL_CMP_CTX_reset_geninfo_ITAVs(OSSL_CMP_CTX *ctx); +STACK_OF(OSSL_CMP_ITAV) + *OSSL_CMP_CTX_get0_geninfo_ITAVs(const OSSL_CMP_CTX *ctx); int OSSL_CMP_CTX_set1_extraCertsOut(OSSL_CMP_CTX *ctx, STACK_OF(X509) *extraCertsOut); /* certificate template: */ int OSSL_CMP_CTX_set0_newPkey(OSSL_CMP_CTX *ctx, int priv, EVP_PKEY *pkey); EVP_PKEY *OSSL_CMP_CTX_get0_newPkey(const OSSL_CMP_CTX *ctx, int priv); int OSSL_CMP_CTX_set1_issuer(OSSL_CMP_CTX *ctx, const X509_NAME *name); +int OSSL_CMP_CTX_set1_serialNumber(OSSL_CMP_CTX *ctx, const ASN1_INTEGER *sn); int OSSL_CMP_CTX_set1_subjectName(OSSL_CMP_CTX *ctx, const X509_NAME *name); int OSSL_CMP_CTX_push1_subjectAltName(OSSL_CMP_CTX *ctx, const GENERAL_NAME *name); @@ -477,6 +580,7 @@ int OSSL_CMP_CTX_get_status(const OSSL_CMP_CTX *ctx); OSSL_CMP_PKIFREETEXT *OSSL_CMP_CTX_get0_statusString(const OSSL_CMP_CTX *ctx); int OSSL_CMP_CTX_get_failInfoCode(const OSSL_CMP_CTX *ctx); # define OSSL_CMP_PKISI_BUFLEN 1024 +X509 *OSSL_CMP_CTX_get0_validatedSrvCert(const OSSL_CMP_CTX *ctx); X509 *OSSL_CMP_CTX_get0_newCert(const OSSL_CMP_CTX *ctx); STACK_OF(X509) *OSSL_CMP_CTX_get1_newChain(const OSSL_CMP_CTX *ctx); STACK_OF(X509) *OSSL_CMP_CTX_get1_caPubs(const OSSL_CMP_CTX *ctx); @@ -498,10 +602,13 @@ OSSL_CMP_STATUSINFO_new(int status, int fail_info, const char *text); ASN1_OCTET_STRING *OSSL_CMP_HDR_get0_transactionID(const OSSL_CMP_PKIHEADER *hdr); ASN1_OCTET_STRING *OSSL_CMP_HDR_get0_recipNonce(const OSSL_CMP_PKIHEADER *hdr); +STACK_OF(OSSL_CMP_ITAV) + *OSSL_CMP_HDR_get0_geninfo_ITAVs(const OSSL_CMP_PKIHEADER *hdr); /* from cmp_msg.c */ OSSL_CMP_PKIHEADER *OSSL_CMP_MSG_get0_header(const OSSL_CMP_MSG *msg); int OSSL_CMP_MSG_get_bodytype(const OSSL_CMP_MSG *msg); +X509_PUBKEY *OSSL_CMP_MSG_get0_certreq_publickey(const OSSL_CMP_MSG *msg); int OSSL_CMP_MSG_update_transactionID(OSSL_CMP_CTX *ctx, OSSL_CMP_MSG *msg); int OSSL_CMP_MSG_update_recipNonce(OSSL_CMP_CTX *ctx, OSSL_CMP_MSG *msg); OSSL_CRMF_MSG *OSSL_CMP_CTX_setup_CRM(OSSL_CMP_CTX *ctx, int for_KUR, int rid); @@ -517,8 +624,10 @@ int OSSL_CMP_validate_cert_path(const OSSL_CMP_CTX *ctx, X509_STORE *trusted_store, X509 *cert); /* from cmp_http.c */ +# ifndef OPENSSL_NO_HTTP OSSL_CMP_MSG *OSSL_CMP_MSG_http_perform(OSSL_CMP_CTX *ctx, const OSSL_CMP_MSG *req); +# endif /* from cmp_server.c */ typedef struct ossl_cmp_srv_ctx_st OSSL_CMP_SRV_CTX; @@ -561,6 +670,13 @@ int OSSL_CMP_SRV_CTX_init(OSSL_CMP_SRV_CTX *srv_ctx, void *custom_ctx, OSSL_CMP_SRV_error_cb_t process_error, OSSL_CMP_SRV_certConf_cb_t process_certConf, OSSL_CMP_SRV_pollReq_cb_t process_pollReq); +typedef int (*OSSL_CMP_SRV_delayed_delivery_cb_t)(OSSL_CMP_SRV_CTX *srv_ctx, + const OSSL_CMP_MSG *req); +typedef int (*OSSL_CMP_SRV_clean_transaction_cb_t)(OSSL_CMP_SRV_CTX *srv_ctx, + const ASN1_OCTET_STRING *id); +int OSSL_CMP_SRV_CTX_init_trans(OSSL_CMP_SRV_CTX *srv_ctx, + OSSL_CMP_SRV_delayed_delivery_cb_t delay, + OSSL_CMP_SRV_clean_transaction_cb_t clean); OSSL_CMP_CTX *OSSL_CMP_SRV_CTX_get0_cmp_ctx(const OSSL_CMP_SRV_CTX *srv_ctx); void *OSSL_CMP_SRV_CTX_get0_custom_ctx(const OSSL_CMP_SRV_CTX *srv_ctx); int OSSL_CMP_SRV_CTX_set_send_unprotected_errors(OSSL_CMP_SRV_CTX *srv_ctx, @@ -577,6 +693,8 @@ X509 *OSSL_CMP_exec_certreq(OSSL_CMP_CTX *ctx, int req_type, # define OSSL_CMP_CR 2 # define OSSL_CMP_P10CR 4 # define OSSL_CMP_KUR 7 +# define OSSL_CMP_GENM 21 +# define OSSL_CMP_ERROR 23 # define OSSL_CMP_exec_IR_ses(ctx) \ OSSL_CMP_exec_certreq(ctx, OSSL_CMP_IR, NULL) # define OSSL_CMP_exec_CR_ses(ctx) \ @@ -590,6 +708,18 @@ int OSSL_CMP_try_certreq(OSSL_CMP_CTX *ctx, int req_type, int OSSL_CMP_exec_RR_ses(OSSL_CMP_CTX *ctx); STACK_OF(OSSL_CMP_ITAV) *OSSL_CMP_exec_GENM_ses(OSSL_CMP_CTX *ctx); +/* from cmp_genm.c */ +int OSSL_CMP_get1_caCerts(OSSL_CMP_CTX *ctx, STACK_OF(X509) **out); +int OSSL_CMP_get1_rootCaKeyUpdate(OSSL_CMP_CTX *ctx, + const X509 *oldWithOld, X509 **newWithNew, + X509 **newWithOld, X509 **oldWithNew); +int OSSL_CMP_get1_crlUpdate(OSSL_CMP_CTX *ctx, const X509 *crlcert, + const X509_CRL *last_crl, + X509_CRL **crl); +int OSSL_CMP_get1_certReqTemplate(OSSL_CMP_CTX *ctx, + OSSL_CRMF_CERTTEMPLATE **certTemplate, + OSSL_CMP_ATAVS **keySpec); + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/aix64-gcc-as/no-asm/include/openssl/cms.h b/deps/openssl/config/archs/aix64-gcc-as/no-asm/include/openssl/cms.h index 3b453e6a2187a2..63afab563557b0 100644 --- a/deps/openssl/config/archs/aix64-gcc-as/no-asm/include/openssl/cms.h +++ b/deps/openssl/config/archs/aix64-gcc-as/no-asm/include/openssl/cms.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/cms.h.in * - * Copyright 2008-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2008-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -31,8 +31,10 @@ extern "C" { # endif +typedef struct CMS_EnvelopedData_st CMS_EnvelopedData; typedef struct CMS_ContentInfo_st CMS_ContentInfo; typedef struct CMS_SignerInfo_st CMS_SignerInfo; +typedef struct CMS_SignedData_st CMS_SignedData; typedef struct CMS_CertificateChoices CMS_CertificateChoices; typedef struct CMS_RevocationInfoChoice_st CMS_RevocationInfoChoice; typedef struct CMS_RecipientInfo_st CMS_RecipientInfo; @@ -147,10 +149,14 @@ SKM_DEFINE_STACK_OF_INTERNAL(CMS_RevocationInfoChoice, CMS_RevocationInfoChoice, #define sk_CMS_RevocationInfoChoice_set_cmp_func(sk, cmp) ((sk_CMS_RevocationInfoChoice_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_CMS_RevocationInfoChoice_sk_type(sk), ossl_check_CMS_RevocationInfoChoice_compfunc_type(cmp))) +DECLARE_ASN1_ITEM(CMS_EnvelopedData) +DECLARE_ASN1_ALLOC_FUNCTIONS(CMS_SignedData) DECLARE_ASN1_FUNCTIONS(CMS_ContentInfo) DECLARE_ASN1_FUNCTIONS(CMS_ReceiptRequest) DECLARE_ASN1_PRINT_FUNCTION(CMS_ContentInfo) +DECLARE_ASN1_DUP_FUNCTION(CMS_EnvelopedData) + CMS_ContentInfo *CMS_ContentInfo_new_ex(OSSL_LIB_CTX *libctx, const char *propq); # define CMS_SIGNERINFO_ISSUER_SERIAL 0 @@ -190,6 +196,7 @@ CMS_ContentInfo *CMS_ContentInfo_new_ex(OSSL_LIB_CTX *libctx, const char *propq) # define CMS_ASCIICRLF 0x80000 # define CMS_CADES 0x100000 # define CMS_USE_ORIGINATOR_KEYID 0x200000 +# define CMS_NO_SIGNING_TIME 0x400000 const ASN1_OBJECT *CMS_get0_type(const CMS_ContentInfo *cms); @@ -217,13 +224,16 @@ int SMIME_write_CMS(BIO *bio, CMS_ContentInfo *cms, BIO *data, int flags); int CMS_final(CMS_ContentInfo *cms, BIO *data, BIO *dcont, unsigned int flags); +int CMS_final_digest(CMS_ContentInfo *cms, + const unsigned char *md, unsigned int mdlen, BIO *dcont, + unsigned int flags); CMS_ContentInfo *CMS_sign(X509 *signcert, EVP_PKEY *pkey, STACK_OF(X509) *certs, BIO *data, unsigned int flags); CMS_ContentInfo *CMS_sign_ex(X509 *signcert, EVP_PKEY *pkey, STACK_OF(X509) *certs, BIO *data, - unsigned int flags, OSSL_LIB_CTX *ctx, + unsigned int flags, OSSL_LIB_CTX *libctx, const char *propq); CMS_ContentInfo *CMS_sign_receipt(CMS_SignerInfo *si, @@ -233,27 +243,26 @@ CMS_ContentInfo *CMS_sign_receipt(CMS_SignerInfo *si, int CMS_data(CMS_ContentInfo *cms, BIO *out, unsigned int flags); CMS_ContentInfo *CMS_data_create(BIO *in, unsigned int flags); CMS_ContentInfo *CMS_data_create_ex(BIO *in, unsigned int flags, - OSSL_LIB_CTX *ctx, const char *propq); + OSSL_LIB_CTX *libctx, const char *propq); int CMS_digest_verify(CMS_ContentInfo *cms, BIO *dcont, BIO *out, unsigned int flags); CMS_ContentInfo *CMS_digest_create(BIO *in, const EVP_MD *md, unsigned int flags); CMS_ContentInfo *CMS_digest_create_ex(BIO *in, const EVP_MD *md, - unsigned int flags, OSSL_LIB_CTX *ctx, + unsigned int flags, OSSL_LIB_CTX *libctx, const char *propq); int CMS_EncryptedData_decrypt(CMS_ContentInfo *cms, const unsigned char *key, size_t keylen, BIO *dcont, BIO *out, unsigned int flags); - CMS_ContentInfo *CMS_EncryptedData_encrypt(BIO *in, const EVP_CIPHER *cipher, const unsigned char *key, size_t keylen, unsigned int flags); CMS_ContentInfo *CMS_EncryptedData_encrypt_ex(BIO *in, const EVP_CIPHER *cipher, const unsigned char *key, size_t keylen, unsigned int flags, - OSSL_LIB_CTX *ctx, + OSSL_LIB_CTX *libctx, const char *propq); int CMS_EncryptedData_set1_key(CMS_ContentInfo *cms, const EVP_CIPHER *ciph, @@ -272,7 +281,7 @@ CMS_ContentInfo *CMS_encrypt(STACK_OF(X509) *certs, BIO *in, const EVP_CIPHER *cipher, unsigned int flags); CMS_ContentInfo *CMS_encrypt_ex(STACK_OF(X509) *certs, BIO *in, const EVP_CIPHER *cipher, unsigned int flags, - OSSL_LIB_CTX *ctx, const char *propq); + OSSL_LIB_CTX *libctx, const char *propq); int CMS_decrypt(CMS_ContentInfo *cms, EVP_PKEY *pkey, X509 *cert, BIO *dcont, BIO *out, unsigned int flags); @@ -291,12 +300,16 @@ int CMS_RecipientInfo_type(CMS_RecipientInfo *ri); EVP_PKEY_CTX *CMS_RecipientInfo_get0_pkey_ctx(CMS_RecipientInfo *ri); CMS_ContentInfo *CMS_AuthEnvelopedData_create(const EVP_CIPHER *cipher); CMS_ContentInfo * -CMS_AuthEnvelopedData_create_ex(const EVP_CIPHER *cipher, OSSL_LIB_CTX *ctx, +CMS_AuthEnvelopedData_create_ex(const EVP_CIPHER *cipher, OSSL_LIB_CTX *libctx, const char *propq); CMS_ContentInfo *CMS_EnvelopedData_create(const EVP_CIPHER *cipher); CMS_ContentInfo *CMS_EnvelopedData_create_ex(const EVP_CIPHER *cipher, - OSSL_LIB_CTX *ctx, + OSSL_LIB_CTX *libctx, const char *propq); +BIO *CMS_EnvelopedData_decrypt(CMS_EnvelopedData *env, BIO *detached_data, + EVP_PKEY *pkey, X509 *cert, + ASN1_OCTET_STRING *secret, unsigned int flags, + OSSL_LIB_CTX *libctx, const char *propq); CMS_RecipientInfo *CMS_add1_recipient_cert(CMS_ContentInfo *cms, X509 *recip, unsigned int flags); @@ -385,6 +398,11 @@ ASN1_OCTET_STRING *CMS_SignerInfo_get0_signature(CMS_SignerInfo *si); int CMS_SignerInfo_sign(CMS_SignerInfo *si); int CMS_SignerInfo_verify(CMS_SignerInfo *si); int CMS_SignerInfo_verify_content(CMS_SignerInfo *si, BIO *chain); +BIO *CMS_SignedData_verify(CMS_SignedData *sd, BIO *detached_data, + STACK_OF(X509) *scerts, X509_STORE *store, + STACK_OF(X509) *extra, STACK_OF(X509_CRL) *crls, + unsigned int flags, + OSSL_LIB_CTX *libctx, const char *propq); int CMS_add_smimecap(CMS_SignerInfo *si, STACK_OF(X509_ALGOR) *algs); int CMS_add_simple_smimecap(STACK_OF(X509_ALGOR) **algs, @@ -441,7 +459,7 @@ CMS_ReceiptRequest *CMS_ReceiptRequest_create0_ex( unsigned char *id, int idlen, int allorfirst, STACK_OF(GENERAL_NAMES) *receiptList, STACK_OF(GENERAL_NAMES) *receiptsTo, - OSSL_LIB_CTX *ctx); + OSSL_LIB_CTX *libctx); int CMS_add1_ReceiptRequest(CMS_SignerInfo *si, CMS_ReceiptRequest *rr); void CMS_ReceiptRequest_get0_values(CMS_ReceiptRequest *rr, diff --git a/deps/openssl/config/archs/aix64-gcc-as/no-asm/include/openssl/comp.h b/deps/openssl/config/archs/aix64-gcc-as/no-asm/include/openssl/comp.h new file mode 100644 index 00000000000000..90e39511fe8d28 --- /dev/null +++ b/deps/openssl/config/archs/aix64-gcc-as/no-asm/include/openssl/comp.h @@ -0,0 +1,98 @@ +/* + * Copyright 2015-2024 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + + +#ifndef OPENSSL_COMP_H +# define OPENSSL_COMP_H +# pragma once + +# include +# ifndef OPENSSL_NO_DEPRECATED_3_0 +# define HEADER_COMP_H +# endif + +# include + +# include +# include +# ifdef __cplusplus +extern "C" { +# endif + + + +# ifndef OPENSSL_NO_COMP + +COMP_CTX *COMP_CTX_new(COMP_METHOD *meth); +const COMP_METHOD *COMP_CTX_get_method(const COMP_CTX *ctx); +int COMP_CTX_get_type(const COMP_CTX* comp); +int COMP_get_type(const COMP_METHOD *meth); +const char *COMP_get_name(const COMP_METHOD *meth); +void COMP_CTX_free(COMP_CTX *ctx); + +int COMP_compress_block(COMP_CTX *ctx, unsigned char *out, int olen, + unsigned char *in, int ilen); +int COMP_expand_block(COMP_CTX *ctx, unsigned char *out, int olen, + unsigned char *in, int ilen); + +COMP_METHOD *COMP_zlib(void); +COMP_METHOD *COMP_zlib_oneshot(void); +COMP_METHOD *COMP_brotli(void); +COMP_METHOD *COMP_brotli_oneshot(void); +COMP_METHOD *COMP_zstd(void); +COMP_METHOD *COMP_zstd_oneshot(void); + +# ifndef OPENSSL_NO_DEPRECATED_1_1_0 +# define COMP_zlib_cleanup() while(0) continue +# endif + +# ifdef OPENSSL_BIO_H +const BIO_METHOD *BIO_f_zlib(void); +const BIO_METHOD *BIO_f_brotli(void); +const BIO_METHOD *BIO_f_zstd(void); +# endif + +# endif + +typedef struct ssl_comp_st SSL_COMP; + +SKM_DEFINE_STACK_OF_INTERNAL(SSL_COMP, SSL_COMP, SSL_COMP) +#define sk_SSL_COMP_num(sk) OPENSSL_sk_num(ossl_check_const_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_value(sk, idx) ((SSL_COMP *)OPENSSL_sk_value(ossl_check_const_SSL_COMP_sk_type(sk), (idx))) +#define sk_SSL_COMP_new(cmp) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new(ossl_check_SSL_COMP_compfunc_type(cmp))) +#define sk_SSL_COMP_new_null() ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new_null()) +#define sk_SSL_COMP_new_reserve(cmp, n) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new_reserve(ossl_check_SSL_COMP_compfunc_type(cmp), (n))) +#define sk_SSL_COMP_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_SSL_COMP_sk_type(sk), (n)) +#define sk_SSL_COMP_free(sk) OPENSSL_sk_free(ossl_check_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_zero(sk) OPENSSL_sk_zero(ossl_check_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_delete(sk, i) ((SSL_COMP *)OPENSSL_sk_delete(ossl_check_SSL_COMP_sk_type(sk), (i))) +#define sk_SSL_COMP_delete_ptr(sk, ptr) ((SSL_COMP *)OPENSSL_sk_delete_ptr(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr))) +#define sk_SSL_COMP_push(sk, ptr) OPENSSL_sk_push(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) +#define sk_SSL_COMP_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) +#define sk_SSL_COMP_pop(sk) ((SSL_COMP *)OPENSSL_sk_pop(ossl_check_SSL_COMP_sk_type(sk))) +#define sk_SSL_COMP_shift(sk) ((SSL_COMP *)OPENSSL_sk_shift(ossl_check_SSL_COMP_sk_type(sk))) +#define sk_SSL_COMP_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_SSL_COMP_sk_type(sk),ossl_check_SSL_COMP_freefunc_type(freefunc)) +#define sk_SSL_COMP_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr), (idx)) +#define sk_SSL_COMP_set(sk, idx, ptr) ((SSL_COMP *)OPENSSL_sk_set(ossl_check_SSL_COMP_sk_type(sk), (idx), ossl_check_SSL_COMP_type(ptr))) +#define sk_SSL_COMP_find(sk, ptr) OPENSSL_sk_find(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) +#define sk_SSL_COMP_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) +#define sk_SSL_COMP_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr), pnum) +#define sk_SSL_COMP_sort(sk) OPENSSL_sk_sort(ossl_check_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_dup(sk) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_dup(ossl_check_const_SSL_COMP_sk_type(sk))) +#define sk_SSL_COMP_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_deep_copy(ossl_check_const_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_copyfunc_type(copyfunc), ossl_check_SSL_COMP_freefunc_type(freefunc))) +#define sk_SSL_COMP_set_cmp_func(sk, cmp) ((sk_SSL_COMP_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_compfunc_type(cmp))) + + + +# ifdef __cplusplus +} +# endif +#endif diff --git a/deps/openssl/config/archs/aix64-gcc-as/no-asm/include/openssl/conf.h b/deps/openssl/config/archs/aix64-gcc-as/no-asm/include/openssl/conf.h index 44989929f6c84a..38576290bf641b 100644 --- a/deps/openssl/config/archs/aix64-gcc-as/no-asm/include/openssl/conf.h +++ b/deps/openssl/config/archs/aix64-gcc-as/no-asm/include/openssl/conf.h @@ -27,6 +27,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -65,7 +68,7 @@ SKM_DEFINE_STACK_OF_INTERNAL(CONF_VALUE, CONF_VALUE, CONF_VALUE) #define sk_CONF_VALUE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(CONF_VALUE) *)OPENSSL_sk_deep_copy(ossl_check_const_CONF_VALUE_sk_type(sk), ossl_check_CONF_VALUE_copyfunc_type(copyfunc), ossl_check_CONF_VALUE_freefunc_type(freefunc))) #define sk_CONF_VALUE_set_cmp_func(sk, cmp) ((sk_CONF_VALUE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_CONF_VALUE_sk_type(sk), ossl_check_CONF_VALUE_compfunc_type(cmp))) DEFINE_LHASH_OF_INTERNAL(CONF_VALUE); -#define lh_CONF_VALUE_new(hfn, cmp) ((LHASH_OF(CONF_VALUE) *)OPENSSL_LH_new(ossl_check_CONF_VALUE_lh_hashfunc_type(hfn), ossl_check_CONF_VALUE_lh_compfunc_type(cmp))) +#define lh_CONF_VALUE_new(hfn, cmp) ((LHASH_OF(CONF_VALUE) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new(ossl_check_CONF_VALUE_lh_hashfunc_type(hfn), ossl_check_CONF_VALUE_lh_compfunc_type(cmp)), lh_CONF_VALUE_hash_thunk, lh_CONF_VALUE_comp_thunk, lh_CONF_VALUE_doall_thunk, lh_CONF_VALUE_doall_arg_thunk)) #define lh_CONF_VALUE_free(lh) OPENSSL_LH_free(ossl_check_CONF_VALUE_lh_type(lh)) #define lh_CONF_VALUE_flush(lh) OPENSSL_LH_flush(ossl_check_CONF_VALUE_lh_type(lh)) #define lh_CONF_VALUE_insert(lh, ptr) ((CONF_VALUE *)OPENSSL_LH_insert(ossl_check_CONF_VALUE_lh_type(lh), ossl_check_CONF_VALUE_lh_plain_type(ptr))) diff --git a/deps/openssl/config/archs/aix64-gcc-as/no-asm/include/openssl/configuration.h b/deps/openssl/config/archs/aix64-gcc-as/no-asm/include/openssl/configuration.h index 26b93ba38b2162..1af235f6775ea9 100644 --- a/deps/openssl/config/archs/aix64-gcc-as/no-asm/include/openssl/configuration.h +++ b/deps/openssl/config/archs/aix64-gcc-as/no-asm/include/openssl/configuration.h @@ -30,7 +30,7 @@ extern "C" { # ifndef OPENSSL_SYS_AIX # define OPENSSL_SYS_AIX 1 # endif -# define OPENSSL_CONFIGURED_API 30000 +# define OPENSSL_CONFIGURED_API 30500 # ifndef OPENSSL_RAND_SEED_OS # define OPENSSL_RAND_SEED_OS # endif @@ -46,6 +46,12 @@ extern "C" { # ifndef OPENSSL_NO_ASM # define OPENSSL_NO_ASM # endif +# ifndef OPENSSL_NO_BROTLI +# define OPENSSL_NO_BROTLI +# endif +# ifndef OPENSSL_NO_BROTLI_DYNAMIC +# define OPENSSL_NO_BROTLI_DYNAMIC +# endif # ifndef OPENSSL_NO_COMP # define OPENSSL_NO_COMP # endif @@ -55,6 +61,9 @@ extern "C" { # ifndef OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE # define OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE # endif +# ifndef OPENSSL_NO_DEMOS +# define OPENSSL_NO_DEMOS +# endif # ifndef OPENSSL_NO_DEVCRYPTOENG # define OPENSSL_NO_DEVCRYPTOENG # endif @@ -67,12 +76,24 @@ extern "C" { # ifndef OPENSSL_NO_EXTERNAL_TESTS # define OPENSSL_NO_EXTERNAL_TESTS # endif +# ifndef OPENSSL_NO_FIPS_JITTER +# define OPENSSL_NO_FIPS_JITTER +# endif # ifndef OPENSSL_NO_FUZZ_AFL # define OPENSSL_NO_FUZZ_AFL # endif # ifndef OPENSSL_NO_FUZZ_LIBFUZZER # define OPENSSL_NO_FUZZ_LIBFUZZER # endif +# ifndef OPENSSL_NO_H3DEMO +# define OPENSSL_NO_H3DEMO +# endif +# ifndef OPENSSL_NO_HQINTEROP +# define OPENSSL_NO_HQINTEROP +# endif +# ifndef OPENSSL_NO_JITTER +# define OPENSSL_NO_JITTER +# endif # ifndef OPENSSL_NO_KTLS # define OPENSSL_NO_KTLS # endif @@ -85,6 +106,9 @@ extern "C" { # ifndef OPENSSL_NO_MSAN # define OPENSSL_NO_MSAN # endif +# ifndef OPENSSL_NO_PIE +# define OPENSSL_NO_PIE +# endif # ifndef OPENSSL_NO_RC5 # define OPENSSL_NO_RC5 # endif @@ -97,6 +121,12 @@ extern "C" { # ifndef OPENSSL_NO_SSL3_METHOD # define OPENSSL_NO_SSL3_METHOD # endif +# ifndef OPENSSL_NO_SSLKEYLOG +# define OPENSSL_NO_SSLKEYLOG +# endif +# ifndef OPENSSL_NO_TFO +# define OPENSSL_NO_TFO +# endif # ifndef OPENSSL_NO_TRACE # define OPENSSL_NO_TRACE # endif @@ -112,6 +142,21 @@ extern "C" { # ifndef OPENSSL_NO_WEAK_SSL_CIPHERS # define OPENSSL_NO_WEAK_SSL_CIPHERS # endif +# ifndef OPENSSL_NO_WINSTORE +# define OPENSSL_NO_WINSTORE +# endif +# ifndef OPENSSL_NO_ZLIB +# define OPENSSL_NO_ZLIB +# endif +# ifndef OPENSSL_NO_ZLIB_DYNAMIC +# define OPENSSL_NO_ZLIB_DYNAMIC +# endif +# ifndef OPENSSL_NO_ZSTD +# define OPENSSL_NO_ZSTD +# endif +# ifndef OPENSSL_NO_ZSTD_DYNAMIC +# define OPENSSL_NO_ZSTD_DYNAMIC +# endif # ifndef OPENSSL_NO_DYNAMIC_ENGINE # define OPENSSL_NO_DYNAMIC_ENGINE # endif @@ -133,6 +178,12 @@ extern "C" { # define RC4_INT unsigned char +# if defined(OPENSSL_NO_COMP) || (defined(OPENSSL_NO_BROTLI) && defined(OPENSSL_NO_ZSTD) && defined(OPENSSL_NO_ZLIB)) +# define OPENSSL_NO_COMP_ALG +# else +# undef OPENSSL_NO_COMP_ALG +# endif + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/aix64-gcc-as/no-asm/include/openssl/core_names.h b/deps/openssl/config/archs/aix64-gcc-as/no-asm/include/openssl/core_names.h new file mode 100644 index 00000000000000..e93e79a52bc910 --- /dev/null +++ b/deps/openssl/config/archs/aix64-gcc-as/no-asm/include/openssl/core_names.h @@ -0,0 +1,575 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from include/openssl/core_names.h.in + * + * Copyright 2019-2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + +#ifndef OPENSSL_CORE_NAMES_H +# define OPENSSL_CORE_NAMES_H +# pragma once + +# ifdef __cplusplus +extern "C" { +# endif + +/* OSSL_CIPHER_PARAM_CTS_MODE Values */ +# define OSSL_CIPHER_CTS_MODE_CS1 "CS1" +# define OSSL_CIPHER_CTS_MODE_CS2 "CS2" +# define OSSL_CIPHER_CTS_MODE_CS3 "CS3" + +/* Known CIPHER names (not a complete list) */ +# define OSSL_CIPHER_NAME_AES_128_GCM_SIV "AES-128-GCM-SIV" +# define OSSL_CIPHER_NAME_AES_192_GCM_SIV "AES-192-GCM-SIV" +# define OSSL_CIPHER_NAME_AES_256_GCM_SIV "AES-256-GCM-SIV" + +/* Known DIGEST names (not a complete list) */ +# define OSSL_DIGEST_NAME_MD5 "MD5" +# define OSSL_DIGEST_NAME_MD5_SHA1 "MD5-SHA1" +# define OSSL_DIGEST_NAME_SHA1 "SHA1" +# define OSSL_DIGEST_NAME_SHA2_224 "SHA2-224" +# define OSSL_DIGEST_NAME_SHA2_256 "SHA2-256" +# define OSSL_DIGEST_NAME_SHA2_256_192 "SHA2-256/192" +# define OSSL_DIGEST_NAME_SHA2_384 "SHA2-384" +# define OSSL_DIGEST_NAME_SHA2_512 "SHA2-512" +# define OSSL_DIGEST_NAME_SHA2_512_224 "SHA2-512/224" +# define OSSL_DIGEST_NAME_SHA2_512_256 "SHA2-512/256" +# define OSSL_DIGEST_NAME_MD2 "MD2" +# define OSSL_DIGEST_NAME_MD4 "MD4" +# define OSSL_DIGEST_NAME_MDC2 "MDC2" +# define OSSL_DIGEST_NAME_RIPEMD160 "RIPEMD160" +# define OSSL_DIGEST_NAME_SHA3_224 "SHA3-224" +# define OSSL_DIGEST_NAME_SHA3_256 "SHA3-256" +# define OSSL_DIGEST_NAME_SHA3_384 "SHA3-384" +# define OSSL_DIGEST_NAME_SHA3_512 "SHA3-512" +# define OSSL_DIGEST_NAME_KECCAK_KMAC128 "KECCAK-KMAC-128" +# define OSSL_DIGEST_NAME_KECCAK_KMAC256 "KECCAK-KMAC-256" +# define OSSL_DIGEST_NAME_SM3 "SM3" + +/* Known MAC names */ +# define OSSL_MAC_NAME_BLAKE2BMAC "BLAKE2BMAC" +# define OSSL_MAC_NAME_BLAKE2SMAC "BLAKE2SMAC" +# define OSSL_MAC_NAME_CMAC "CMAC" +# define OSSL_MAC_NAME_GMAC "GMAC" +# define OSSL_MAC_NAME_HMAC "HMAC" +# define OSSL_MAC_NAME_KMAC128 "KMAC128" +# define OSSL_MAC_NAME_KMAC256 "KMAC256" +# define OSSL_MAC_NAME_POLY1305 "POLY1305" +# define OSSL_MAC_NAME_SIPHASH "SIPHASH" + +/* Known KDF names */ +# define OSSL_KDF_NAME_HKDF "HKDF" +# define OSSL_KDF_NAME_TLS1_3_KDF "TLS13-KDF" +# define OSSL_KDF_NAME_PBKDF1 "PBKDF1" +# define OSSL_KDF_NAME_PBKDF2 "PBKDF2" +# define OSSL_KDF_NAME_SCRYPT "SCRYPT" +# define OSSL_KDF_NAME_SSHKDF "SSHKDF" +# define OSSL_KDF_NAME_SSKDF "SSKDF" +# define OSSL_KDF_NAME_TLS1_PRF "TLS1-PRF" +# define OSSL_KDF_NAME_X942KDF_ASN1 "X942KDF-ASN1" +# define OSSL_KDF_NAME_X942KDF_CONCAT "X942KDF-CONCAT" +# define OSSL_KDF_NAME_X963KDF "X963KDF" +# define OSSL_KDF_NAME_KBKDF "KBKDF" +# define OSSL_KDF_NAME_KRB5KDF "KRB5KDF" +# define OSSL_KDF_NAME_HMACDRBGKDF "HMAC-DRBG-KDF" + +/* RSA padding modes */ +# define OSSL_PKEY_RSA_PAD_MODE_NONE "none" +# define OSSL_PKEY_RSA_PAD_MODE_PKCSV15 "pkcs1" +# define OSSL_PKEY_RSA_PAD_MODE_OAEP "oaep" +# define OSSL_PKEY_RSA_PAD_MODE_X931 "x931" +# define OSSL_PKEY_RSA_PAD_MODE_PSS "pss" + +/* RSA pss padding salt length */ +# define OSSL_PKEY_RSA_PSS_SALT_LEN_DIGEST "digest" +# define OSSL_PKEY_RSA_PSS_SALT_LEN_MAX "max" +# define OSSL_PKEY_RSA_PSS_SALT_LEN_AUTO "auto" +# define OSSL_PKEY_RSA_PSS_SALT_LEN_AUTO_DIGEST_MAX "auto-digestmax" + +/* OSSL_PKEY_PARAM_EC_ENCODING values */ +# define OSSL_PKEY_EC_ENCODING_EXPLICIT "explicit" +# define OSSL_PKEY_EC_ENCODING_GROUP "named_curve" + +# define OSSL_PKEY_EC_POINT_CONVERSION_FORMAT_UNCOMPRESSED "uncompressed" +# define OSSL_PKEY_EC_POINT_CONVERSION_FORMAT_COMPRESSED "compressed" +# define OSSL_PKEY_EC_POINT_CONVERSION_FORMAT_HYBRID "hybrid" + +# define OSSL_PKEY_EC_GROUP_CHECK_DEFAULT "default" +# define OSSL_PKEY_EC_GROUP_CHECK_NAMED "named" +# define OSSL_PKEY_EC_GROUP_CHECK_NAMED_NIST "named-nist" + +/* PROV_SKEY well known key types */ +# define OSSL_SKEY_TYPE_GENERIC "GENERIC-SECRET" +# define OSSL_SKEY_TYPE_AES "AES" + +/* OSSL_KEM_PARAM_OPERATION values */ +#define OSSL_KEM_PARAM_OPERATION_RSASVE "RSASVE" +#define OSSL_KEM_PARAM_OPERATION_DHKEM "DHKEM" + +/* Provider configuration variables */ +#define OSSL_PKEY_RETAIN_SEED "pkey_retain_seed" + +/* Parameter name definitions - generated by util/perl/OpenSSL/paramnames.pm */ +# define OSSL_ALG_PARAM_ALGORITHM_ID "algorithm-id" +# define OSSL_ALG_PARAM_ALGORITHM_ID_PARAMS "algorithm-id-params" +# define OSSL_ALG_PARAM_CIPHER "cipher" +# define OSSL_ALG_PARAM_DIGEST "digest" +# define OSSL_ALG_PARAM_ENGINE "engine" +# define OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR "fips-indicator" +# define OSSL_ALG_PARAM_MAC "mac" +# define OSSL_ALG_PARAM_PROPERTIES "properties" +# define OSSL_ASYM_CIPHER_PARAM_DIGEST OSSL_PKEY_PARAM_DIGEST +# define OSSL_ASYM_CIPHER_PARAM_ENGINE OSSL_PKEY_PARAM_ENGINE +# define OSSL_ASYM_CIPHER_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_ASYM_CIPHER_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_ASYM_CIPHER_PARAM_FIPS_RSA_PKCS15_PAD_DISABLED OSSL_PROV_PARAM_RSA_PKCS15_PAD_DISABLED +# define OSSL_ASYM_CIPHER_PARAM_IMPLICIT_REJECTION "implicit-rejection" +# define OSSL_ASYM_CIPHER_PARAM_MGF1_DIGEST OSSL_PKEY_PARAM_MGF1_DIGEST +# define OSSL_ASYM_CIPHER_PARAM_MGF1_DIGEST_PROPS OSSL_PKEY_PARAM_MGF1_PROPERTIES +# define OSSL_ASYM_CIPHER_PARAM_OAEP_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_ASYM_CIPHER_PARAM_OAEP_DIGEST_PROPS "digest-props" +# define OSSL_ASYM_CIPHER_PARAM_OAEP_LABEL "oaep-label" +# define OSSL_ASYM_CIPHER_PARAM_PAD_MODE OSSL_PKEY_PARAM_PAD_MODE +# define OSSL_ASYM_CIPHER_PARAM_PROPERTIES OSSL_PKEY_PARAM_PROPERTIES +# define OSSL_ASYM_CIPHER_PARAM_TLS_CLIENT_VERSION "tls-client-version" +# define OSSL_ASYM_CIPHER_PARAM_TLS_NEGOTIATED_VERSION "tls-negotiated-version" +# define OSSL_CAPABILITY_TLS_GROUP_ALG "tls-group-alg" +# define OSSL_CAPABILITY_TLS_GROUP_ID "tls-group-id" +# define OSSL_CAPABILITY_TLS_GROUP_IS_KEM "tls-group-is-kem" +# define OSSL_CAPABILITY_TLS_GROUP_MAX_DTLS "tls-max-dtls" +# define OSSL_CAPABILITY_TLS_GROUP_MAX_TLS "tls-max-tls" +# define OSSL_CAPABILITY_TLS_GROUP_MIN_DTLS "tls-min-dtls" +# define OSSL_CAPABILITY_TLS_GROUP_MIN_TLS "tls-min-tls" +# define OSSL_CAPABILITY_TLS_GROUP_NAME "tls-group-name" +# define OSSL_CAPABILITY_TLS_GROUP_NAME_INTERNAL "tls-group-name-internal" +# define OSSL_CAPABILITY_TLS_GROUP_SECURITY_BITS "tls-group-sec-bits" +# define OSSL_CAPABILITY_TLS_SIGALG_CODE_POINT "tls-sigalg-code-point" +# define OSSL_CAPABILITY_TLS_SIGALG_HASH_NAME "tls-sigalg-hash-name" +# define OSSL_CAPABILITY_TLS_SIGALG_HASH_OID "tls-sigalg-hash-oid" +# define OSSL_CAPABILITY_TLS_SIGALG_IANA_NAME "tls-sigalg-iana-name" +# define OSSL_CAPABILITY_TLS_SIGALG_KEYTYPE "tls-sigalg-keytype" +# define OSSL_CAPABILITY_TLS_SIGALG_KEYTYPE_OID "tls-sigalg-keytype-oid" +# define OSSL_CAPABILITY_TLS_SIGALG_MAX_DTLS "tls-max-dtls" +# define OSSL_CAPABILITY_TLS_SIGALG_MAX_TLS "tls-max-tls" +# define OSSL_CAPABILITY_TLS_SIGALG_MIN_DTLS "tls-min-dtls" +# define OSSL_CAPABILITY_TLS_SIGALG_MIN_TLS "tls-min-tls" +# define OSSL_CAPABILITY_TLS_SIGALG_NAME "tls-sigalg-name" +# define OSSL_CAPABILITY_TLS_SIGALG_OID "tls-sigalg-oid" +# define OSSL_CAPABILITY_TLS_SIGALG_SECURITY_BITS "tls-sigalg-sec-bits" +# define OSSL_CAPABILITY_TLS_SIGALG_SIG_NAME "tls-sigalg-sig-name" +# define OSSL_CAPABILITY_TLS_SIGALG_SIG_OID "tls-sigalg-sig-oid" +# define OSSL_CIPHER_PARAM_AEAD "aead" +# define OSSL_CIPHER_PARAM_AEAD_IVLEN OSSL_CIPHER_PARAM_IVLEN +# define OSSL_CIPHER_PARAM_AEAD_IV_GENERATED "iv-generated" +# define OSSL_CIPHER_PARAM_AEAD_MAC_KEY "mackey" +# define OSSL_CIPHER_PARAM_AEAD_TAG "tag" +# define OSSL_CIPHER_PARAM_AEAD_TAGLEN "taglen" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_AAD "tlsaad" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_AAD_PAD "tlsaadpad" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_GET_IV_GEN "tlsivgen" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_IV_FIXED "tlsivfixed" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_SET_IV_INV "tlsivinv" +# define OSSL_CIPHER_PARAM_ALGORITHM_ID OSSL_ALG_PARAM_ALGORITHM_ID +# define OSSL_CIPHER_PARAM_ALGORITHM_ID_PARAMS OSSL_ALG_PARAM_ALGORITHM_ID_PARAMS +# define OSSL_CIPHER_PARAM_ALGORITHM_ID_PARAMS_OLD "alg_id_param" +# define OSSL_CIPHER_PARAM_BLOCK_SIZE "blocksize" +# define OSSL_CIPHER_PARAM_CTS "cts" +# define OSSL_CIPHER_PARAM_CTS_MODE "cts_mode" +# define OSSL_CIPHER_PARAM_CUSTOM_IV "custom-iv" +# define OSSL_CIPHER_PARAM_DECRYPT_ONLY "decrypt-only" +# define OSSL_CIPHER_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_CIPHER_PARAM_FIPS_ENCRYPT_CHECK "encrypt-check" +# define OSSL_CIPHER_PARAM_HAS_RAND_KEY "has-randkey" +# define OSSL_CIPHER_PARAM_IV "iv" +# define OSSL_CIPHER_PARAM_IVLEN "ivlen" +# define OSSL_CIPHER_PARAM_KEYLEN "keylen" +# define OSSL_CIPHER_PARAM_MODE "mode" +# define OSSL_CIPHER_PARAM_NUM "num" +# define OSSL_CIPHER_PARAM_PADDING "padding" +# define OSSL_CIPHER_PARAM_PIPELINE_AEAD_TAG "pipeline-tag" +# define OSSL_CIPHER_PARAM_RANDOM_KEY "randkey" +# define OSSL_CIPHER_PARAM_RC2_KEYBITS "keybits" +# define OSSL_CIPHER_PARAM_ROUNDS "rounds" +# define OSSL_CIPHER_PARAM_SPEED "speed" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK "tls-multi" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD "tls1multi_aad" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD_PACKLEN "tls1multi_aadpacklen" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC "tls1multi_enc" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_IN "tls1multi_encin" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_LEN "tls1multi_enclen" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_INTERLEAVE "tls1multi_interleave" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_BUFSIZE "tls1multi_maxbufsz" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_SEND_FRAGMENT "tls1multi_maxsndfrag" +# define OSSL_CIPHER_PARAM_TLS_MAC "tls-mac" +# define OSSL_CIPHER_PARAM_TLS_MAC_SIZE "tls-mac-size" +# define OSSL_CIPHER_PARAM_TLS_VERSION "tls-version" +# define OSSL_CIPHER_PARAM_UPDATED_IV "updated-iv" +# define OSSL_CIPHER_PARAM_USE_BITS "use-bits" +# define OSSL_CIPHER_PARAM_XTS_STANDARD "xts_standard" +# define OSSL_DECODER_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_DIGEST_PARAM_ALGID_ABSENT "algid-absent" +# define OSSL_DIGEST_PARAM_BLOCK_SIZE "blocksize" +# define OSSL_DIGEST_PARAM_MICALG "micalg" +# define OSSL_DIGEST_PARAM_PAD_TYPE "pad-type" +# define OSSL_DIGEST_PARAM_SIZE "size" +# define OSSL_DIGEST_PARAM_SSL3_MS "ssl3-ms" +# define OSSL_DIGEST_PARAM_XOF "xof" +# define OSSL_DIGEST_PARAM_XOFLEN "xoflen" +# define OSSL_DRBG_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_DRBG_PARAM_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_DRBG_PARAM_ENTROPY_REQUIRED "entropy_required" +# define OSSL_DRBG_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_DRBG_PARAM_FIPS_DIGEST_CHECK OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK +# define OSSL_DRBG_PARAM_MAC OSSL_ALG_PARAM_MAC +# define OSSL_DRBG_PARAM_MAX_ADINLEN "max_adinlen" +# define OSSL_DRBG_PARAM_MAX_ENTROPYLEN "max_entropylen" +# define OSSL_DRBG_PARAM_MAX_LENGTH "maxium_length" +# define OSSL_DRBG_PARAM_MAX_NONCELEN "max_noncelen" +# define OSSL_DRBG_PARAM_MAX_PERSLEN "max_perslen" +# define OSSL_DRBG_PARAM_MIN_ENTROPYLEN "min_entropylen" +# define OSSL_DRBG_PARAM_MIN_LENGTH "minium_length" +# define OSSL_DRBG_PARAM_MIN_NONCELEN "min_noncelen" +# define OSSL_DRBG_PARAM_PREDICTION_RESISTANCE "prediction_resistance" +# define OSSL_DRBG_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_DRBG_PARAM_RANDOM_DATA "random_data" +# define OSSL_DRBG_PARAM_RESEED_COUNTER "reseed_counter" +# define OSSL_DRBG_PARAM_RESEED_REQUESTS "reseed_requests" +# define OSSL_DRBG_PARAM_RESEED_TIME "reseed_time" +# define OSSL_DRBG_PARAM_RESEED_TIME_INTERVAL "reseed_time_interval" +# define OSSL_DRBG_PARAM_SIZE "size" +# define OSSL_DRBG_PARAM_USE_DF "use_derivation_function" +# define OSSL_ENCODER_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_ENCODER_PARAM_ENCRYPT_LEVEL "encrypt-level" +# define OSSL_ENCODER_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_ENCODER_PARAM_SAVE_PARAMETERS "save-parameters" +# define OSSL_EXCHANGE_PARAM_EC_ECDH_COFACTOR_MODE "ecdh-cofactor-mode" +# define OSSL_EXCHANGE_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_EXCHANGE_PARAM_FIPS_DIGEST_CHECK OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK +# define OSSL_EXCHANGE_PARAM_FIPS_ECDH_COFACTOR_CHECK OSSL_PROV_PARAM_ECDH_COFACTOR_CHECK +# define OSSL_EXCHANGE_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_EXCHANGE_PARAM_KDF_DIGEST "kdf-digest" +# define OSSL_EXCHANGE_PARAM_KDF_DIGEST_PROPS "kdf-digest-props" +# define OSSL_EXCHANGE_PARAM_KDF_OUTLEN "kdf-outlen" +# define OSSL_EXCHANGE_PARAM_KDF_TYPE "kdf-type" +# define OSSL_EXCHANGE_PARAM_KDF_UKM "kdf-ukm" +# define OSSL_EXCHANGE_PARAM_PAD "pad" +# define OSSL_GEN_PARAM_ITERATION "iteration" +# define OSSL_GEN_PARAM_POTENTIAL "potential" +# define OSSL_KDF_PARAM_ARGON2_AD "ad" +# define OSSL_KDF_PARAM_ARGON2_LANES "lanes" +# define OSSL_KDF_PARAM_ARGON2_MEMCOST "memcost" +# define OSSL_KDF_PARAM_ARGON2_VERSION "version" +# define OSSL_KDF_PARAM_CEK_ALG "cekalg" +# define OSSL_KDF_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_KDF_PARAM_CONSTANT "constant" +# define OSSL_KDF_PARAM_DATA "data" +# define OSSL_KDF_PARAM_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_KDF_PARAM_EARLY_CLEAN "early_clean" +# define OSSL_KDF_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_KDF_PARAM_FIPS_DIGEST_CHECK OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK +# define OSSL_KDF_PARAM_FIPS_EMS_CHECK "ems_check" +# define OSSL_KDF_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_KDF_PARAM_HMACDRBG_ENTROPY "entropy" +# define OSSL_KDF_PARAM_HMACDRBG_NONCE "nonce" +# define OSSL_KDF_PARAM_INFO "info" +# define OSSL_KDF_PARAM_ITER "iter" +# define OSSL_KDF_PARAM_KBKDF_R "r" +# define OSSL_KDF_PARAM_KBKDF_USE_L "use-l" +# define OSSL_KDF_PARAM_KBKDF_USE_SEPARATOR "use-separator" +# define OSSL_KDF_PARAM_KEY "key" +# define OSSL_KDF_PARAM_LABEL "label" +# define OSSL_KDF_PARAM_MAC OSSL_ALG_PARAM_MAC +# define OSSL_KDF_PARAM_MAC_SIZE "maclen" +# define OSSL_KDF_PARAM_MODE "mode" +# define OSSL_KDF_PARAM_PASSWORD "pass" +# define OSSL_KDF_PARAM_PKCS12_ID "id" +# define OSSL_KDF_PARAM_PKCS5 "pkcs5" +# define OSSL_KDF_PARAM_PREFIX "prefix" +# define OSSL_KDF_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_KDF_PARAM_SALT "salt" +# define OSSL_KDF_PARAM_SCRYPT_MAXMEM "maxmem_bytes" +# define OSSL_KDF_PARAM_SCRYPT_N "n" +# define OSSL_KDF_PARAM_SCRYPT_P "p" +# define OSSL_KDF_PARAM_SCRYPT_R "r" +# define OSSL_KDF_PARAM_SECRET "secret" +# define OSSL_KDF_PARAM_SEED "seed" +# define OSSL_KDF_PARAM_SIZE "size" +# define OSSL_KDF_PARAM_SSHKDF_SESSION_ID "session_id" +# define OSSL_KDF_PARAM_SSHKDF_TYPE "type" +# define OSSL_KDF_PARAM_SSHKDF_XCGHASH "xcghash" +# define OSSL_KDF_PARAM_THREADS "threads" +# define OSSL_KDF_PARAM_UKM "ukm" +# define OSSL_KDF_PARAM_X942_ACVPINFO "acvp-info" +# define OSSL_KDF_PARAM_X942_PARTYUINFO "partyu-info" +# define OSSL_KDF_PARAM_X942_PARTYVINFO "partyv-info" +# define OSSL_KDF_PARAM_X942_SUPP_PRIVINFO "supp-privinfo" +# define OSSL_KDF_PARAM_X942_SUPP_PUBINFO "supp-pubinfo" +# define OSSL_KDF_PARAM_X942_USE_KEYBITS "use-keybits" +# define OSSL_KEM_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_KEM_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_KEM_PARAM_IKME "ikme" +# define OSSL_KEM_PARAM_OPERATION "operation" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_BLOCK_PADDING "block_padding" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_HS_PADDING "hs_padding" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_MAX_EARLY_DATA "max_early_data" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_MAX_FRAG_LEN "max_frag_len" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_MODE "mode" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_OPTIONS "options" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_READ_AHEAD "read_ahead" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_STREAM_MAC "stream_mac" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_TLSTREE "tlstree" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_USE_ETM "use_etm" +# define OSSL_LIBSSL_RECORD_LAYER_READ_BUFFER_LEN "read_buffer_len" +# define OSSL_MAC_PARAM_BLOCK_SIZE "block-size" +# define OSSL_MAC_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_MAC_PARAM_CUSTOM "custom" +# define OSSL_MAC_PARAM_C_ROUNDS "c-rounds" +# define OSSL_MAC_PARAM_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_MAC_PARAM_DIGEST_NOINIT "digest-noinit" +# define OSSL_MAC_PARAM_DIGEST_ONESHOT "digest-oneshot" +# define OSSL_MAC_PARAM_D_ROUNDS "d-rounds" +# define OSSL_MAC_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_MAC_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_MAC_PARAM_FIPS_NO_SHORT_MAC OSSL_PROV_PARAM_NO_SHORT_MAC +# define OSSL_MAC_PARAM_IV "iv" +# define OSSL_MAC_PARAM_KEY "key" +# define OSSL_MAC_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_MAC_PARAM_SALT "salt" +# define OSSL_MAC_PARAM_SIZE "size" +# define OSSL_MAC_PARAM_TLS_DATA_SIZE "tls-data-size" +# define OSSL_MAC_PARAM_XOF "xof" +# define OSSL_OBJECT_PARAM_DATA "data" +# define OSSL_OBJECT_PARAM_DATA_STRUCTURE "data-structure" +# define OSSL_OBJECT_PARAM_DATA_TYPE "data-type" +# define OSSL_OBJECT_PARAM_DESC "desc" +# define OSSL_OBJECT_PARAM_INPUT_TYPE "input-type" +# define OSSL_OBJECT_PARAM_REFERENCE "reference" +# define OSSL_OBJECT_PARAM_TYPE "type" +# define OSSL_PASSPHRASE_PARAM_INFO "info" +# define OSSL_PKEY_PARAM_ALGORITHM_ID OSSL_ALG_PARAM_ALGORITHM_ID +# define OSSL_PKEY_PARAM_ALGORITHM_ID_PARAMS OSSL_ALG_PARAM_ALGORITHM_ID_PARAMS +# define OSSL_PKEY_PARAM_BITS "bits" +# define OSSL_PKEY_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_PKEY_PARAM_DEFAULT_DIGEST "default-digest" +# define OSSL_PKEY_PARAM_DHKEM_IKM "dhkem-ikm" +# define OSSL_PKEY_PARAM_DH_GENERATOR "safeprime-generator" +# define OSSL_PKEY_PARAM_DH_PRIV_LEN "priv_len" +# define OSSL_PKEY_PARAM_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_PKEY_PARAM_DIGEST_SIZE "digest-size" +# define OSSL_PKEY_PARAM_DIST_ID "distid" +# define OSSL_PKEY_PARAM_EC_A "a" +# define OSSL_PKEY_PARAM_EC_B "b" +# define OSSL_PKEY_PARAM_EC_CHAR2_M "m" +# define OSSL_PKEY_PARAM_EC_CHAR2_PP_K1 "k1" +# define OSSL_PKEY_PARAM_EC_CHAR2_PP_K2 "k2" +# define OSSL_PKEY_PARAM_EC_CHAR2_PP_K3 "k3" +# define OSSL_PKEY_PARAM_EC_CHAR2_TP_BASIS "tp" +# define OSSL_PKEY_PARAM_EC_CHAR2_TYPE "basis-type" +# define OSSL_PKEY_PARAM_EC_COFACTOR "cofactor" +# define OSSL_PKEY_PARAM_EC_DECODED_FROM_EXPLICIT_PARAMS "decoded-from-explicit" +# define OSSL_PKEY_PARAM_EC_ENCODING "encoding" +# define OSSL_PKEY_PARAM_EC_FIELD_TYPE "field-type" +# define OSSL_PKEY_PARAM_EC_GENERATOR "generator" +# define OSSL_PKEY_PARAM_EC_GROUP_CHECK_TYPE "group-check" +# define OSSL_PKEY_PARAM_EC_INCLUDE_PUBLIC "include-public" +# define OSSL_PKEY_PARAM_EC_ORDER "order" +# define OSSL_PKEY_PARAM_EC_P "p" +# define OSSL_PKEY_PARAM_EC_POINT_CONVERSION_FORMAT "point-format" +# define OSSL_PKEY_PARAM_EC_PUB_X "qx" +# define OSSL_PKEY_PARAM_EC_PUB_Y "qy" +# define OSSL_PKEY_PARAM_EC_SEED "seed" +# define OSSL_PKEY_PARAM_ENCODED_PUBLIC_KEY "encoded-pub-key" +# define OSSL_PKEY_PARAM_ENGINE OSSL_ALG_PARAM_ENGINE +# define OSSL_PKEY_PARAM_FFC_COFACTOR "j" +# define OSSL_PKEY_PARAM_FFC_DIGEST OSSL_PKEY_PARAM_DIGEST +# define OSSL_PKEY_PARAM_FFC_DIGEST_PROPS OSSL_PKEY_PARAM_PROPERTIES +# define OSSL_PKEY_PARAM_FFC_G "g" +# define OSSL_PKEY_PARAM_FFC_GINDEX "gindex" +# define OSSL_PKEY_PARAM_FFC_H "hindex" +# define OSSL_PKEY_PARAM_FFC_P "p" +# define OSSL_PKEY_PARAM_FFC_PBITS "pbits" +# define OSSL_PKEY_PARAM_FFC_PCOUNTER "pcounter" +# define OSSL_PKEY_PARAM_FFC_Q "q" +# define OSSL_PKEY_PARAM_FFC_QBITS "qbits" +# define OSSL_PKEY_PARAM_FFC_SEED "seed" +# define OSSL_PKEY_PARAM_FFC_TYPE "type" +# define OSSL_PKEY_PARAM_FFC_VALIDATE_G "validate-g" +# define OSSL_PKEY_PARAM_FFC_VALIDATE_LEGACY "validate-legacy" +# define OSSL_PKEY_PARAM_FFC_VALIDATE_PQ "validate-pq" +# define OSSL_PKEY_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK "digest-check" +# define OSSL_PKEY_PARAM_FIPS_KEY_CHECK "key-check" +# define OSSL_PKEY_PARAM_FIPS_SIGN_CHECK "sign-check" +# define OSSL_PKEY_PARAM_GROUP_NAME "group" +# define OSSL_PKEY_PARAM_IMPLICIT_REJECTION "implicit-rejection" +# define OSSL_PKEY_PARAM_MANDATORY_DIGEST "mandatory-digest" +# define OSSL_PKEY_PARAM_MASKGENFUNC "mgf" +# define OSSL_PKEY_PARAM_MAX_SIZE "max-size" +# define OSSL_PKEY_PARAM_MGF1_DIGEST "mgf1-digest" +# define OSSL_PKEY_PARAM_MGF1_PROPERTIES "mgf1-properties" +# define OSSL_PKEY_PARAM_ML_DSA_INPUT_FORMATS "ml-dsa.input_formats" +# define OSSL_PKEY_PARAM_ML_DSA_OUTPUT_FORMATS "ml-dsa.output_formats" +# define OSSL_PKEY_PARAM_ML_DSA_PREFER_SEED "ml-dsa.prefer_seed" +# define OSSL_PKEY_PARAM_ML_DSA_RETAIN_SEED "ml-dsa.retain_seed" +# define OSSL_PKEY_PARAM_ML_DSA_SEED "seed" +# define OSSL_PKEY_PARAM_ML_KEM_IMPORT_PCT_TYPE "ml-kem.import_pct_type" +# define OSSL_PKEY_PARAM_ML_KEM_INPUT_FORMATS "ml-kem.input_formats" +# define OSSL_PKEY_PARAM_ML_KEM_OUTPUT_FORMATS "ml-kem.output_formats" +# define OSSL_PKEY_PARAM_ML_KEM_PREFER_SEED "ml-kem.prefer_seed" +# define OSSL_PKEY_PARAM_ML_KEM_RETAIN_SEED "ml-kem.retain_seed" +# define OSSL_PKEY_PARAM_ML_KEM_SEED "seed" +# define OSSL_PKEY_PARAM_PAD_MODE "pad-mode" +# define OSSL_PKEY_PARAM_PRIV_KEY "priv" +# define OSSL_PKEY_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_PKEY_PARAM_PUB_KEY "pub" +# define OSSL_PKEY_PARAM_RSA_BITS OSSL_PKEY_PARAM_BITS +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT "rsa-coefficient" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT1 "rsa-coefficient1" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT2 "rsa-coefficient2" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT3 "rsa-coefficient3" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT4 "rsa-coefficient4" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT5 "rsa-coefficient5" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT6 "rsa-coefficient6" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT7 "rsa-coefficient7" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT8 "rsa-coefficient8" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT9 "rsa-coefficient9" +# define OSSL_PKEY_PARAM_RSA_D "d" +# define OSSL_PKEY_PARAM_RSA_DERIVE_FROM_PQ "rsa-derive-from-pq" +# define OSSL_PKEY_PARAM_RSA_DIGEST OSSL_PKEY_PARAM_DIGEST +# define OSSL_PKEY_PARAM_RSA_DIGEST_PROPS OSSL_PKEY_PARAM_PROPERTIES +# define OSSL_PKEY_PARAM_RSA_E "e" +# define OSSL_PKEY_PARAM_RSA_EXPONENT "rsa-exponent" +# define OSSL_PKEY_PARAM_RSA_EXPONENT1 "rsa-exponent1" +# define OSSL_PKEY_PARAM_RSA_EXPONENT10 "rsa-exponent10" +# define OSSL_PKEY_PARAM_RSA_EXPONENT2 "rsa-exponent2" +# define OSSL_PKEY_PARAM_RSA_EXPONENT3 "rsa-exponent3" +# define OSSL_PKEY_PARAM_RSA_EXPONENT4 "rsa-exponent4" +# define OSSL_PKEY_PARAM_RSA_EXPONENT5 "rsa-exponent5" +# define OSSL_PKEY_PARAM_RSA_EXPONENT6 "rsa-exponent6" +# define OSSL_PKEY_PARAM_RSA_EXPONENT7 "rsa-exponent7" +# define OSSL_PKEY_PARAM_RSA_EXPONENT8 "rsa-exponent8" +# define OSSL_PKEY_PARAM_RSA_EXPONENT9 "rsa-exponent9" +# define OSSL_PKEY_PARAM_RSA_FACTOR "rsa-factor" +# define OSSL_PKEY_PARAM_RSA_FACTOR1 "rsa-factor1" +# define OSSL_PKEY_PARAM_RSA_FACTOR10 "rsa-factor10" +# define OSSL_PKEY_PARAM_RSA_FACTOR2 "rsa-factor2" +# define OSSL_PKEY_PARAM_RSA_FACTOR3 "rsa-factor3" +# define OSSL_PKEY_PARAM_RSA_FACTOR4 "rsa-factor4" +# define OSSL_PKEY_PARAM_RSA_FACTOR5 "rsa-factor5" +# define OSSL_PKEY_PARAM_RSA_FACTOR6 "rsa-factor6" +# define OSSL_PKEY_PARAM_RSA_FACTOR7 "rsa-factor7" +# define OSSL_PKEY_PARAM_RSA_FACTOR8 "rsa-factor8" +# define OSSL_PKEY_PARAM_RSA_FACTOR9 "rsa-factor9" +# define OSSL_PKEY_PARAM_RSA_MASKGENFUNC OSSL_PKEY_PARAM_MASKGENFUNC +# define OSSL_PKEY_PARAM_RSA_MGF1_DIGEST OSSL_PKEY_PARAM_MGF1_DIGEST +# define OSSL_PKEY_PARAM_RSA_N "n" +# define OSSL_PKEY_PARAM_RSA_PRIMES "primes" +# define OSSL_PKEY_PARAM_RSA_PSS_SALTLEN "saltlen" +# define OSSL_PKEY_PARAM_RSA_TEST_P1 "p1" +# define OSSL_PKEY_PARAM_RSA_TEST_P2 "p2" +# define OSSL_PKEY_PARAM_RSA_TEST_Q1 "q1" +# define OSSL_PKEY_PARAM_RSA_TEST_Q2 "q2" +# define OSSL_PKEY_PARAM_RSA_TEST_XP "xp" +# define OSSL_PKEY_PARAM_RSA_TEST_XP1 "xp1" +# define OSSL_PKEY_PARAM_RSA_TEST_XP2 "xp2" +# define OSSL_PKEY_PARAM_RSA_TEST_XQ "xq" +# define OSSL_PKEY_PARAM_RSA_TEST_XQ1 "xq1" +# define OSSL_PKEY_PARAM_RSA_TEST_XQ2 "xq2" +# define OSSL_PKEY_PARAM_SECURITY_BITS "security-bits" +# define OSSL_PKEY_PARAM_SLH_DSA_SEED "seed" +# define OSSL_PKEY_PARAM_USE_COFACTOR_ECDH OSSL_PKEY_PARAM_USE_COFACTOR_FLAG +# define OSSL_PKEY_PARAM_USE_COFACTOR_FLAG "use-cofactor-flag" +# define OSSL_PROV_PARAM_BUILDINFO "buildinfo" +# define OSSL_PROV_PARAM_CORE_MODULE_FILENAME "module-filename" +# define OSSL_PROV_PARAM_CORE_PROV_NAME "provider-name" +# define OSSL_PROV_PARAM_CORE_VERSION "openssl-version" +# define OSSL_PROV_PARAM_DRBG_TRUNC_DIGEST "drbg-no-trunc-md" +# define OSSL_PROV_PARAM_DSA_SIGN_DISABLED "dsa-sign-disabled" +# define OSSL_PROV_PARAM_ECDH_COFACTOR_CHECK "ecdh-cofactor-check" +# define OSSL_PROV_PARAM_HKDF_DIGEST_CHECK "hkdf-digest-check" +# define OSSL_PROV_PARAM_HKDF_KEY_CHECK "hkdf-key-check" +# define OSSL_PROV_PARAM_HMAC_KEY_CHECK "hmac-key-check" +# define OSSL_PROV_PARAM_KBKDF_KEY_CHECK "kbkdf-key-check" +# define OSSL_PROV_PARAM_KMAC_KEY_CHECK "kmac-key-check" +# define OSSL_PROV_PARAM_NAME "name" +# define OSSL_PROV_PARAM_NO_SHORT_MAC "no-short-mac" +# define OSSL_PROV_PARAM_PBKDF2_LOWER_BOUND_CHECK "pbkdf2-lower-bound-check" +# define OSSL_PROV_PARAM_RSA_PKCS15_PAD_DISABLED "rsa-pkcs15-pad-disabled" +# define OSSL_PROV_PARAM_RSA_PSS_SALTLEN_CHECK "rsa-pss-saltlen-check" +# define OSSL_PROV_PARAM_RSA_SIGN_X931_PAD_DISABLED "rsa-sign-x931-pad-disabled" +# define OSSL_PROV_PARAM_SECURITY_CHECKS "security-checks" +# define OSSL_PROV_PARAM_SELF_TEST_DESC "st-desc" +# define OSSL_PROV_PARAM_SELF_TEST_PHASE "st-phase" +# define OSSL_PROV_PARAM_SELF_TEST_TYPE "st-type" +# define OSSL_PROV_PARAM_SIGNATURE_DIGEST_CHECK "signature-digest-check" +# define OSSL_PROV_PARAM_SSHKDF_DIGEST_CHECK "sshkdf-digest-check" +# define OSSL_PROV_PARAM_SSHKDF_KEY_CHECK "sshkdf-key-check" +# define OSSL_PROV_PARAM_SSKDF_DIGEST_CHECK "sskdf-digest-check" +# define OSSL_PROV_PARAM_SSKDF_KEY_CHECK "sskdf-key-check" +# define OSSL_PROV_PARAM_STATUS "status" +# define OSSL_PROV_PARAM_TDES_ENCRYPT_DISABLED "tdes-encrypt-disabled" +# define OSSL_PROV_PARAM_TLS13_KDF_DIGEST_CHECK "tls13-kdf-digest-check" +# define OSSL_PROV_PARAM_TLS13_KDF_KEY_CHECK "tls13-kdf-key-check" +# define OSSL_PROV_PARAM_TLS1_PRF_DIGEST_CHECK "tls1-prf-digest-check" +# define OSSL_PROV_PARAM_TLS1_PRF_EMS_CHECK "tls1-prf-ems-check" +# define OSSL_PROV_PARAM_TLS1_PRF_KEY_CHECK "tls1-prf-key-check" +# define OSSL_PROV_PARAM_VERSION "version" +# define OSSL_PROV_PARAM_X942KDF_KEY_CHECK "x942kdf-key-check" +# define OSSL_PROV_PARAM_X963KDF_DIGEST_CHECK "x963kdf-digest-check" +# define OSSL_PROV_PARAM_X963KDF_KEY_CHECK "x963kdf-key-check" +# define OSSL_RAND_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_RAND_PARAM_GENERATE "generate" +# define OSSL_RAND_PARAM_MAX_REQUEST "max_request" +# define OSSL_RAND_PARAM_STATE "state" +# define OSSL_RAND_PARAM_STRENGTH "strength" +# define OSSL_RAND_PARAM_TEST_ENTROPY "test_entropy" +# define OSSL_RAND_PARAM_TEST_NONCE "test_nonce" +# define OSSL_SIGNATURE_PARAM_ADD_RANDOM "additional-random" +# define OSSL_SIGNATURE_PARAM_ALGORITHM_ID OSSL_PKEY_PARAM_ALGORITHM_ID +# define OSSL_SIGNATURE_PARAM_ALGORITHM_ID_PARAMS OSSL_PKEY_PARAM_ALGORITHM_ID_PARAMS +# define OSSL_SIGNATURE_PARAM_CONTEXT_STRING "context-string" +# define OSSL_SIGNATURE_PARAM_DETERMINISTIC "deterministic" +# define OSSL_SIGNATURE_PARAM_DIGEST OSSL_PKEY_PARAM_DIGEST +# define OSSL_SIGNATURE_PARAM_DIGEST_SIZE OSSL_PKEY_PARAM_DIGEST_SIZE +# define OSSL_SIGNATURE_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_SIGNATURE_PARAM_FIPS_DIGEST_CHECK OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK +# define OSSL_SIGNATURE_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_SIGNATURE_PARAM_FIPS_RSA_PSS_SALTLEN_CHECK "rsa-pss-saltlen-check" +# define OSSL_SIGNATURE_PARAM_FIPS_SIGN_CHECK OSSL_PKEY_PARAM_FIPS_SIGN_CHECK +# define OSSL_SIGNATURE_PARAM_FIPS_SIGN_X931_PAD_CHECK "sign-x931-pad-check" +# define OSSL_SIGNATURE_PARAM_FIPS_VERIFY_MESSAGE "verify-message" +# define OSSL_SIGNATURE_PARAM_INSTANCE "instance" +# define OSSL_SIGNATURE_PARAM_KAT "kat" +# define OSSL_SIGNATURE_PARAM_MESSAGE_ENCODING "message-encoding" +# define OSSL_SIGNATURE_PARAM_MGF1_DIGEST OSSL_PKEY_PARAM_MGF1_DIGEST +# define OSSL_SIGNATURE_PARAM_MGF1_PROPERTIES OSSL_PKEY_PARAM_MGF1_PROPERTIES +# define OSSL_SIGNATURE_PARAM_MU "mu" +# define OSSL_SIGNATURE_PARAM_NONCE_TYPE "nonce-type" +# define OSSL_SIGNATURE_PARAM_PAD_MODE OSSL_PKEY_PARAM_PAD_MODE +# define OSSL_SIGNATURE_PARAM_PROPERTIES OSSL_PKEY_PARAM_PROPERTIES +# define OSSL_SIGNATURE_PARAM_PSS_SALTLEN "saltlen" +# define OSSL_SIGNATURE_PARAM_SIGNATURE "signature" +# define OSSL_SIGNATURE_PARAM_TEST_ENTROPY "test-entropy" +# define OSSL_SKEY_PARAM_KEY_LENGTH "key-length" +# define OSSL_SKEY_PARAM_RAW_BYTES "raw-bytes" +# define OSSL_STORE_PARAM_ALIAS "alias" +# define OSSL_STORE_PARAM_DIGEST "digest" +# define OSSL_STORE_PARAM_EXPECT "expect" +# define OSSL_STORE_PARAM_FINGERPRINT "fingerprint" +# define OSSL_STORE_PARAM_INPUT_TYPE "input-type" +# define OSSL_STORE_PARAM_ISSUER "name" +# define OSSL_STORE_PARAM_PROPERTIES "properties" +# define OSSL_STORE_PARAM_SERIAL "serial" +# define OSSL_STORE_PARAM_SUBJECT "subject" + +# ifdef __cplusplus +} +# endif + +#endif diff --git a/deps/openssl/config/archs/aix64-gcc-as/no-asm/include/openssl/crmf.h b/deps/openssl/config/archs/aix64-gcc-as/no-asm/include/openssl/crmf.h index 71b747ed33d239..4bf550fd47daa9 100644 --- a/deps/openssl/config/archs/aix64-gcc-as/no-asm/include/openssl/crmf.h +++ b/deps/openssl/config/archs/aix64-gcc-as/no-asm/include/openssl/crmf.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/crmf.h.in * - * Copyright 2007-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2007-2025 The OpenSSL Project Authors. All Rights Reserved. * Copyright Nokia 2007-2019 * Copyright Siemens AG 2015-2019 * @@ -26,6 +26,7 @@ # include # include # include /* for GENERAL_NAME etc. */ +# include /* explicit #includes not strictly needed since implied by the above: */ # include @@ -43,9 +44,12 @@ extern "C" { # define OSSL_CRMF_SUBSEQUENTMESSAGE_ENCRCERT 0 # define OSSL_CRMF_SUBSEQUENTMESSAGE_CHALLENGERESP 1 - typedef struct ossl_crmf_encryptedvalue_st OSSL_CRMF_ENCRYPTEDVALUE; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_ENCRYPTEDVALUE) + +typedef struct ossl_crmf_encryptedkey_st OSSL_CRMF_ENCRYPTEDKEY; +DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_ENCRYPTEDKEY) + typedef struct ossl_crmf_msg_st OSSL_CRMF_MSG; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_MSG) DECLARE_ASN1_DUP_FUNCTION(OSSL_CRMF_MSG) @@ -77,6 +81,36 @@ SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CRMF_MSG, OSSL_CRMF_MSG, OSSL_CRMF_MSG) #define sk_OSSL_CRMF_MSG_set_cmp_func(sk, cmp) ((sk_OSSL_CRMF_MSG_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CRMF_MSG_sk_type(sk), ossl_check_OSSL_CRMF_MSG_compfunc_type(cmp))) typedef struct ossl_crmf_attributetypeandvalue_st OSSL_CRMF_ATTRIBUTETYPEANDVALUE; +void OSSL_CRMF_ATTRIBUTETYPEANDVALUE_free(OSSL_CRMF_ATTRIBUTETYPEANDVALUE *v); +DECLARE_ASN1_DUP_FUNCTION(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CRMF_ATTRIBUTETYPEANDVALUE, OSSL_CRMF_ATTRIBUTETYPEANDVALUE, OSSL_CRMF_ATTRIBUTETYPEANDVALUE) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_value(sk, idx) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_value(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), (idx))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_new(cmp) ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_new(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_compfunc_type(cmp))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_new_null() ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_new_null()) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_new_reserve(cmp, n) ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_compfunc_type(cmp), (n))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), (n)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_free(sk) OPENSSL_sk_free(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_delete(sk, i) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_delete(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), (i))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_delete_ptr(sk, ptr) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_pop(sk) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_pop(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_shift(sk) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_shift(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk),ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_freefunc_type(freefunc)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr), (idx)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_set(sk, idx, ptr) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_set(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), (idx), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr), pnum) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_dup(sk) ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_dup(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_copyfunc_type(copyfunc), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_freefunc_type(freefunc))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_set_cmp_func(sk, cmp) ((sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_compfunc_type(cmp))) + + typedef struct ossl_crmf_pbmparameter_st OSSL_CRMF_PBMPARAMETER; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_PBMPARAMETER) typedef struct ossl_crmf_poposigningkey_st OSSL_CRMF_POPOSIGNINGKEY; @@ -118,6 +152,7 @@ typedef struct ossl_crmf_singlepubinfo_st OSSL_CRMF_SINGLEPUBINFO; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_SINGLEPUBINFO) typedef struct ossl_crmf_certtemplate_st OSSL_CRMF_CERTTEMPLATE; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_CERTTEMPLATE) +DECLARE_ASN1_DUP_FUNCTION(OSSL_CRMF_CERTTEMPLATE) typedef STACK_OF(OSSL_CRMF_MSG) OSSL_CRMF_MSGS; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_MSGS) @@ -198,12 +233,14 @@ int OSSL_CRMF_MSGS_verify_popo(const OSSL_CRMF_MSGS *reqs, int rid, int acceptRAVerified, OSSL_LIB_CTX *libctx, const char *propq); OSSL_CRMF_CERTTEMPLATE *OSSL_CRMF_MSG_get0_tmpl(const OSSL_CRMF_MSG *crm); -const ASN1_INTEGER -*OSSL_CRMF_CERTTEMPLATE_get0_serialNumber(const OSSL_CRMF_CERTTEMPLATE *tmpl); +X509_PUBKEY +*OSSL_CRMF_CERTTEMPLATE_get0_publicKey(const OSSL_CRMF_CERTTEMPLATE *tmpl); const X509_NAME *OSSL_CRMF_CERTTEMPLATE_get0_subject(const OSSL_CRMF_CERTTEMPLATE *tmpl); const X509_NAME *OSSL_CRMF_CERTTEMPLATE_get0_issuer(const OSSL_CRMF_CERTTEMPLATE *tmpl); +const ASN1_INTEGER +*OSSL_CRMF_CERTTEMPLATE_get0_serialNumber(const OSSL_CRMF_CERTTEMPLATE *tmpl); X509_EXTENSIONS *OSSL_CRMF_CERTTEMPLATE_get0_extensions(const OSSL_CRMF_CERTTEMPLATE *tmpl); const X509_NAME @@ -215,10 +252,24 @@ int OSSL_CRMF_CERTTEMPLATE_fill(OSSL_CRMF_CERTTEMPLATE *tmpl, const X509_NAME *subject, const X509_NAME *issuer, const ASN1_INTEGER *serial); -X509 -*OSSL_CRMF_ENCRYPTEDVALUE_get1_encCert(const OSSL_CRMF_ENCRYPTEDVALUE *ecert, - OSSL_LIB_CTX *libctx, const char *propq, - EVP_PKEY *pkey); +X509 *OSSL_CRMF_ENCRYPTEDVALUE_get1_encCert(const OSSL_CRMF_ENCRYPTEDVALUE *ecert, + OSSL_LIB_CTX *libctx, const char *propq, + EVP_PKEY *pkey); +X509 *OSSL_CRMF_ENCRYPTEDKEY_get1_encCert(const OSSL_CRMF_ENCRYPTEDKEY *ecert, + OSSL_LIB_CTX *libctx, const char *propq, + EVP_PKEY *pkey, unsigned int flags); +unsigned char +*OSSL_CRMF_ENCRYPTEDVALUE_decrypt(const OSSL_CRMF_ENCRYPTEDVALUE *enc, + OSSL_LIB_CTX *libctx, const char *propq, + EVP_PKEY *pkey, int *outlen); +EVP_PKEY *OSSL_CRMF_ENCRYPTEDKEY_get1_pkey(const OSSL_CRMF_ENCRYPTEDKEY *encryptedKey, + X509_STORE *ts, STACK_OF(X509) *extra, EVP_PKEY *pkey, + X509 *cert, ASN1_OCTET_STRING *secret, + OSSL_LIB_CTX *libctx, const char *propq); +int OSSL_CRMF_MSG_centralkeygen_requested(const OSSL_CRMF_MSG *crm, const X509_REQ *p10cr); +# ifndef OPENSSL_NO_CMS +OSSL_CRMF_ENCRYPTEDKEY *OSSL_CRMF_ENCRYPTEDKEY_init_envdata(CMS_EnvelopedData *envdata); +# endif # ifdef __cplusplus } diff --git a/deps/openssl/config/archs/aix64-gcc-as/no-asm/include/openssl/crypto.h b/deps/openssl/config/archs/aix64-gcc-as/no-asm/include/openssl/crypto.h index 3f40be6d8c61d5..fd2cfd3e5a9ac4 100644 --- a/deps/openssl/config/archs/aix64-gcc-as/no-asm/include/openssl/crypto.h +++ b/deps/openssl/config/archs/aix64-gcc-as/no-asm/include/openssl/crypto.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/crypto.h.in * - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2024 The OpenSSL Project Authors. All Rights Reserved. * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved * * Licensed under the Apache License 2.0 (the "License"). You may not use @@ -85,9 +85,15 @@ int CRYPTO_THREAD_unlock(CRYPTO_RWLOCK *lock); void CRYPTO_THREAD_lock_free(CRYPTO_RWLOCK *lock); int CRYPTO_atomic_add(int *val, int amount, int *ret, CRYPTO_RWLOCK *lock); +int CRYPTO_atomic_add64(uint64_t *val, uint64_t op, uint64_t *ret, + CRYPTO_RWLOCK *lock); +int CRYPTO_atomic_and(uint64_t *val, uint64_t op, uint64_t *ret, + CRYPTO_RWLOCK *lock); int CRYPTO_atomic_or(uint64_t *val, uint64_t op, uint64_t *ret, CRYPTO_RWLOCK *lock); int CRYPTO_atomic_load(uint64_t *val, uint64_t *ret, CRYPTO_RWLOCK *lock); +int CRYPTO_atomic_load_int(int *val, int *ret, CRYPTO_RWLOCK *lock); +int CRYPTO_atomic_store(uint64_t *dst, uint64_t val, CRYPTO_RWLOCK *lock); /* No longer needed, so this is a no-op */ #define OPENSSL_malloc_init() while(0) continue @@ -96,6 +102,9 @@ int CRYPTO_atomic_load(uint64_t *val, uint64_t *ret, CRYPTO_RWLOCK *lock); CRYPTO_malloc(num, OPENSSL_FILE, OPENSSL_LINE) # define OPENSSL_zalloc(num) \ CRYPTO_zalloc(num, OPENSSL_FILE, OPENSSL_LINE) +# define OPENSSL_aligned_alloc(num, alignment, freeptr) \ + CRYPTO_aligned_alloc(num, alignment, freeptr, \ + OPENSSL_FILE, OPENSSL_LINE) # define OPENSSL_realloc(addr, num) \ CRYPTO_realloc(addr, num, OPENSSL_FILE, OPENSSL_LINE) # define OPENSSL_clear_realloc(addr, old_num, num) \ @@ -124,6 +133,7 @@ int CRYPTO_atomic_load(uint64_t *val, uint64_t *ret, CRYPTO_RWLOCK *lock); size_t OPENSSL_strlcpy(char *dst, const char *src, size_t siz); size_t OPENSSL_strlcat(char *dst, const char *src, size_t siz); size_t OPENSSL_strnlen(const char *str, size_t maxlen); +int OPENSSL_strtoul(const char *str, char **endptr, int base, unsigned long *num); int OPENSSL_buf2hexstr_ex(char *str, size_t str_n, size_t *strlength, const unsigned char *buf, size_t buflen, const char sep); @@ -160,6 +170,7 @@ const char *OpenSSL_version(int type); # define OPENSSL_FULL_VERSION_STRING 7 # define OPENSSL_MODULES_DIR 8 # define OPENSSL_CPU_INFO 9 +# define OPENSSL_WINCTX 10 const char *OPENSSL_info(int type); /* @@ -174,6 +185,7 @@ const char *OPENSSL_info(int type); # define OPENSSL_INFO_LIST_SEPARATOR 1006 # define OPENSSL_INFO_SEED_SOURCE 1007 # define OPENSSL_INFO_CPU_SETTINGS 1008 +# define OPENSSL_INFO_WINDOWS_CONTEXT 1009 int OPENSSL_issetugid(void); @@ -341,11 +353,14 @@ void CRYPTO_get_mem_functions(CRYPTO_malloc_fn *malloc_fn, CRYPTO_realloc_fn *realloc_fn, CRYPTO_free_fn *free_fn); -void *CRYPTO_malloc(size_t num, const char *file, int line); -void *CRYPTO_zalloc(size_t num, const char *file, int line); -void *CRYPTO_memdup(const void *str, size_t siz, const char *file, int line); -char *CRYPTO_strdup(const char *str, const char *file, int line); -char *CRYPTO_strndup(const char *str, size_t s, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_malloc(size_t num, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_zalloc(size_t num, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_aligned_alloc(size_t num, size_t align, + void **freeptr, const char *file, + int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_memdup(const void *str, size_t siz, const char *file, int line); +OSSL_CRYPTO_ALLOC char *CRYPTO_strdup(const char *str, const char *file, int line); +OSSL_CRYPTO_ALLOC char *CRYPTO_strndup(const char *str, size_t s, const char *file, int line); void CRYPTO_free(void *ptr, const char *file, int line); void CRYPTO_clear_free(void *ptr, size_t num, const char *file, int line); void *CRYPTO_realloc(void *addr, size_t num, const char *file, int line); @@ -354,8 +369,8 @@ void *CRYPTO_clear_realloc(void *addr, size_t old_num, size_t num, int CRYPTO_secure_malloc_init(size_t sz, size_t minsize); int CRYPTO_secure_malloc_done(void); -void *CRYPTO_secure_malloc(size_t num, const char *file, int line); -void *CRYPTO_secure_zalloc(size_t num, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_secure_malloc(size_t num, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_secure_zalloc(size_t num, const char *file, int line); void CRYPTO_secure_free(void *ptr, const char *file, int line); void CRYPTO_secure_clear_free(void *ptr, size_t num, const char *file, int line); @@ -376,6 +391,9 @@ void OPENSSL_cleanse(void *ptr, size_t len); # define CRYPTO_MEM_CHECK_ENABLE 0x2 /* Control and mode bit */ # define CRYPTO_MEM_CHECK_DISABLE 0x3 /* Control only */ +/* max allowed length for value of OPENSSL_MALLOC_FAILURES env var. */ +# define CRYPTO_MEM_CHECK_MAX_FS 256 + void CRYPTO_get_alloc_counts(int *mcount, int *rcount, int *fcount); # ifndef OPENSSL_NO_DEPRECATED_3_0 # define OPENSSL_mem_debug_push(info) \ @@ -551,6 +569,13 @@ int OSSL_LIB_CTX_load_config(OSSL_LIB_CTX *ctx, const char *config_file); void OSSL_LIB_CTX_free(OSSL_LIB_CTX *); OSSL_LIB_CTX *OSSL_LIB_CTX_get0_global_default(void); OSSL_LIB_CTX *OSSL_LIB_CTX_set0_default(OSSL_LIB_CTX *libctx); +int OSSL_LIB_CTX_get_conf_diagnostics(OSSL_LIB_CTX *ctx); +void OSSL_LIB_CTX_set_conf_diagnostics(OSSL_LIB_CTX *ctx, int value); + +void OSSL_sleep(uint64_t millis); + + +void *OSSL_LIB_CTX_get_data(OSSL_LIB_CTX *ctx, int index); # ifdef __cplusplus } diff --git a/deps/openssl/config/archs/aix64-gcc-as/no-asm/include/openssl/ct.h b/deps/openssl/config/archs/aix64-gcc-as/no-asm/include/openssl/ct.h index b6dd8c3547710a..e6dd1192a4e0b3 100644 --- a/deps/openssl/config/archs/aix64-gcc-as/no-asm/include/openssl/ct.h +++ b/deps/openssl/config/archs/aix64-gcc-as/no-asm/include/openssl/ct.h @@ -133,7 +133,7 @@ typedef enum { */ CT_POLICY_EVAL_CTX *CT_POLICY_EVAL_CTX_new_ex(OSSL_LIB_CTX *libctx, const char *propq); - + /* * The same as CT_POLICY_EVAL_CTX_new_ex() but the default library * context and property query string is used. diff --git a/deps/openssl/config/archs/aix64-gcc-as/no-asm/include/openssl/err.h b/deps/openssl/config/archs/aix64-gcc-as/no-asm/include/openssl/err.h index 2abf2483488181..daca18e7b757b0 100644 --- a/deps/openssl/config/archs/aix64-gcc-as/no-asm/include/openssl/err.h +++ b/deps/openssl/config/archs/aix64-gcc-as/no-asm/include/openssl/err.h @@ -1,5 +1,5 @@ /* - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -372,7 +372,7 @@ typedef struct ERR_string_data_st { } ERR_STRING_DATA; DEFINE_LHASH_OF_INTERNAL(ERR_STRING_DATA); -#define lh_ERR_STRING_DATA_new(hfn, cmp) ((LHASH_OF(ERR_STRING_DATA) *)OPENSSL_LH_new(ossl_check_ERR_STRING_DATA_lh_hashfunc_type(hfn), ossl_check_ERR_STRING_DATA_lh_compfunc_type(cmp))) +#define lh_ERR_STRING_DATA_new(hfn, cmp) ((LHASH_OF(ERR_STRING_DATA) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new(ossl_check_ERR_STRING_DATA_lh_hashfunc_type(hfn), ossl_check_ERR_STRING_DATA_lh_compfunc_type(cmp)), lh_ERR_STRING_DATA_hash_thunk, lh_ERR_STRING_DATA_comp_thunk, lh_ERR_STRING_DATA_doall_thunk, lh_ERR_STRING_DATA_doall_arg_thunk)) #define lh_ERR_STRING_DATA_free(lh) OPENSSL_LH_free(ossl_check_ERR_STRING_DATA_lh_type(lh)) #define lh_ERR_STRING_DATA_flush(lh) OPENSSL_LH_flush(ossl_check_ERR_STRING_DATA_lh_type(lh)) #define lh_ERR_STRING_DATA_insert(lh, ptr) ((ERR_STRING_DATA *)OPENSSL_LH_insert(ossl_check_ERR_STRING_DATA_lh_type(lh), ossl_check_ERR_STRING_DATA_lh_plain_type(ptr))) @@ -496,6 +496,14 @@ int ERR_get_next_error_library(void); int ERR_set_mark(void); int ERR_pop_to_mark(void); int ERR_clear_last_mark(void); +int ERR_count_to_mark(void); +int ERR_pop(void); + +ERR_STATE *OSSL_ERR_STATE_new(void); +void OSSL_ERR_STATE_save(ERR_STATE *es); +void OSSL_ERR_STATE_save_to_mark(ERR_STATE *es); +void OSSL_ERR_STATE_restore(const ERR_STATE *es); +void OSSL_ERR_STATE_free(ERR_STATE *es); #ifdef __cplusplus } diff --git a/deps/openssl/config/archs/aix64-gcc-as/no-asm/include/openssl/fipskey.h b/deps/openssl/config/archs/aix64-gcc-as/no-asm/include/openssl/fipskey.h index 42ba014b313ba8..929db18c678364 100644 --- a/deps/openssl/config/archs/aix64-gcc-as/no-asm/include/openssl/fipskey.h +++ b/deps/openssl/config/archs/aix64-gcc-as/no-asm/include/openssl/fipskey.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/fipskey.h.in * - * Copyright 2020-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2020-2024 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -29,6 +29,11 @@ extern "C" { */ #define FIPS_KEY_STRING "f4556650ac31d35461610bac4ed81b1a181b2d8a43ea2854cbae22ca74560813" +/* + * The FIPS provider vendor name, as a string. + */ +#define FIPS_VENDOR "OpenSSL FIPS Provider" + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/aix64-gcc-as/no-asm/include/openssl/lhash.h b/deps/openssl/config/archs/aix64-gcc-as/no-asm/include/openssl/lhash.h index 39dd6254acdeb6..62c55b20fd9716 100644 --- a/deps/openssl/config/archs/aix64-gcc-as/no-asm/include/openssl/lhash.h +++ b/deps/openssl/config/archs/aix64-gcc-as/no-asm/include/openssl/lhash.h @@ -1,5 +1,5 @@ /* - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2024 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -24,6 +24,9 @@ # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -31,9 +34,13 @@ extern "C" { typedef struct lhash_node_st OPENSSL_LH_NODE; typedef int (*OPENSSL_LH_COMPFUNC) (const void *, const void *); +typedef int (*OPENSSL_LH_COMPFUNCTHUNK) (const void *, const void *, OPENSSL_LH_COMPFUNC cfn); typedef unsigned long (*OPENSSL_LH_HASHFUNC) (const void *); +typedef unsigned long (*OPENSSL_LH_HASHFUNCTHUNK) (const void *, OPENSSL_LH_HASHFUNC hfn); typedef void (*OPENSSL_LH_DOALL_FUNC) (void *); +typedef void (*OPENSSL_LH_DOALL_FUNC_THUNK) (void *, OPENSSL_LH_DOALL_FUNC doall); typedef void (*OPENSSL_LH_DOALL_FUNCARG) (void *, void *); +typedef void (*OPENSSL_LH_DOALL_FUNCARG_THUNK) (void *, void *, OPENSSL_LH_DOALL_FUNCARG doall); typedef struct lhash_st OPENSSL_LHASH; /* @@ -79,26 +86,40 @@ typedef struct lhash_st OPENSSL_LHASH; int OPENSSL_LH_error(OPENSSL_LHASH *lh); OPENSSL_LHASH *OPENSSL_LH_new(OPENSSL_LH_HASHFUNC h, OPENSSL_LH_COMPFUNC c); +OPENSSL_LHASH *OPENSSL_LH_set_thunks(OPENSSL_LHASH *lh, + OPENSSL_LH_HASHFUNCTHUNK hw, + OPENSSL_LH_COMPFUNCTHUNK cw, + OPENSSL_LH_DOALL_FUNC_THUNK daw, + OPENSSL_LH_DOALL_FUNCARG_THUNK daaw); void OPENSSL_LH_free(OPENSSL_LHASH *lh); void OPENSSL_LH_flush(OPENSSL_LHASH *lh); void *OPENSSL_LH_insert(OPENSSL_LHASH *lh, void *data); void *OPENSSL_LH_delete(OPENSSL_LHASH *lh, const void *data); void *OPENSSL_LH_retrieve(OPENSSL_LHASH *lh, const void *data); void OPENSSL_LH_doall(OPENSSL_LHASH *lh, OPENSSL_LH_DOALL_FUNC func); -void OPENSSL_LH_doall_arg(OPENSSL_LHASH *lh, OPENSSL_LH_DOALL_FUNCARG func, void *arg); +void OPENSSL_LH_doall_arg(OPENSSL_LHASH *lh, + OPENSSL_LH_DOALL_FUNCARG func, void *arg); +void OPENSSL_LH_doall_arg_thunk(OPENSSL_LHASH *lh, + OPENSSL_LH_DOALL_FUNCARG_THUNK daaw, + OPENSSL_LH_DOALL_FUNCARG fn, void *arg); + unsigned long OPENSSL_LH_strhash(const char *c); unsigned long OPENSSL_LH_num_items(const OPENSSL_LHASH *lh); unsigned long OPENSSL_LH_get_down_load(const OPENSSL_LHASH *lh); void OPENSSL_LH_set_down_load(OPENSSL_LHASH *lh, unsigned long down_load); # ifndef OPENSSL_NO_STDIO -void OPENSSL_LH_stats(const OPENSSL_LHASH *lh, FILE *fp); -void OPENSSL_LH_node_stats(const OPENSSL_LHASH *lh, FILE *fp); -void OPENSSL_LH_node_usage_stats(const OPENSSL_LHASH *lh, FILE *fp); +# ifndef OPENSSL_NO_DEPRECATED_3_1 +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_stats(const OPENSSL_LHASH *lh, FILE *fp); +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_node_stats(const OPENSSL_LHASH *lh, FILE *fp); +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_node_usage_stats(const OPENSSL_LHASH *lh, FILE *fp); +# endif +# endif +# ifndef OPENSSL_NO_DEPRECATED_3_1 +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_stats_bio(const OPENSSL_LHASH *lh, BIO *out); +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_node_stats_bio(const OPENSSL_LHASH *lh, BIO *out); +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_node_usage_stats_bio(const OPENSSL_LHASH *lh, BIO *out); # endif -void OPENSSL_LH_stats_bio(const OPENSSL_LHASH *lh, BIO *out); -void OPENSSL_LH_node_stats_bio(const OPENSSL_LHASH *lh, BIO *out); -void OPENSSL_LH_node_usage_stats_bio(const OPENSSL_LHASH *lh, BIO *out); # ifndef OPENSSL_NO_DEPRECATED_1_1_0 # define _LHASH OPENSSL_LHASH @@ -129,110 +150,190 @@ void OPENSSL_LH_node_usage_stats_bio(const OPENSSL_LHASH *lh, BIO *out); /* Helper macro for internal use */ # define DEFINE_LHASH_OF_INTERNAL(type) \ - LHASH_OF(type) { union lh_##type##_dummy { void* d1; unsigned long d2; int d3; } dummy; }; \ + LHASH_OF(type) { \ + union lh_##type##_dummy { void* d1; unsigned long d2; int d3; } dummy; \ + }; \ typedef int (*lh_##type##_compfunc)(const type *a, const type *b); \ typedef unsigned long (*lh_##type##_hashfunc)(const type *a); \ typedef void (*lh_##type##_doallfunc)(type *a); \ - static ossl_unused ossl_inline type *ossl_check_##type##_lh_plain_type(type *ptr) \ + static ossl_inline unsigned long lh_##type##_hash_thunk(const void *data, OPENSSL_LH_HASHFUNC hfn) \ + { \ + unsigned long (*hfn_conv)(const type *) = (unsigned long (*)(const type *))hfn; \ + return hfn_conv((const type *)data); \ + } \ + static ossl_inline int lh_##type##_comp_thunk(const void *da, const void *db, OPENSSL_LH_COMPFUNC cfn) \ + { \ + int (*cfn_conv)(const type *, const type *) = (int (*)(const type *, const type *))cfn; \ + return cfn_conv((const type *)da, (const type *)db); \ + } \ + static ossl_inline void lh_##type##_doall_thunk(void *node, OPENSSL_LH_DOALL_FUNC doall) \ + { \ + void (*doall_conv)(type *) = (void (*)(type *))doall; \ + doall_conv((type *)node); \ + } \ + static ossl_inline void lh_##type##_doall_arg_thunk(void *node, void *arg, OPENSSL_LH_DOALL_FUNCARG doall) \ + { \ + void (*doall_conv)(type *, void *) = (void (*)(type *, void *))doall; \ + doall_conv((type *)node, arg); \ + } \ + static ossl_unused ossl_inline type *\ + ossl_check_##type##_lh_plain_type(type *ptr) \ { \ return ptr; \ } \ - static ossl_unused ossl_inline const type *ossl_check_const_##type##_lh_plain_type(const type *ptr) \ + static ossl_unused ossl_inline const type * \ + ossl_check_const_##type##_lh_plain_type(const type *ptr) \ { \ return ptr; \ } \ - static ossl_unused ossl_inline const OPENSSL_LHASH *ossl_check_const_##type##_lh_type(const LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline const OPENSSL_LHASH * \ + ossl_check_const_##type##_lh_type(const LHASH_OF(type) *lh) \ { \ return (const OPENSSL_LHASH *)lh; \ } \ - static ossl_unused ossl_inline OPENSSL_LHASH *ossl_check_##type##_lh_type(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline OPENSSL_LHASH * \ + ossl_check_##type##_lh_type(LHASH_OF(type) *lh) \ { \ return (OPENSSL_LHASH *)lh; \ } \ - static ossl_unused ossl_inline OPENSSL_LH_COMPFUNC ossl_check_##type##_lh_compfunc_type(lh_##type##_compfunc cmp) \ + static ossl_unused ossl_inline OPENSSL_LH_COMPFUNC \ + ossl_check_##type##_lh_compfunc_type(lh_##type##_compfunc cmp) \ { \ return (OPENSSL_LH_COMPFUNC)cmp; \ } \ - static ossl_unused ossl_inline OPENSSL_LH_HASHFUNC ossl_check_##type##_lh_hashfunc_type(lh_##type##_hashfunc hfn) \ + static ossl_unused ossl_inline OPENSSL_LH_HASHFUNC \ + ossl_check_##type##_lh_hashfunc_type(lh_##type##_hashfunc hfn) \ { \ return (OPENSSL_LH_HASHFUNC)hfn; \ } \ - static ossl_unused ossl_inline OPENSSL_LH_DOALL_FUNC ossl_check_##type##_lh_doallfunc_type(lh_##type##_doallfunc dfn) \ + static ossl_unused ossl_inline OPENSSL_LH_DOALL_FUNC \ + ossl_check_##type##_lh_doallfunc_type(lh_##type##_doallfunc dfn) \ { \ return (OPENSSL_LH_DOALL_FUNC)dfn; \ } \ LHASH_OF(type) -# define DEFINE_LHASH_OF(type) \ - LHASH_OF(type) { union lh_##type##_dummy { void* d1; unsigned long d2; int d3; } dummy; }; \ - static ossl_unused ossl_inline LHASH_OF(type) *lh_##type##_new(unsigned long (*hfn)(const type *), \ - int (*cfn)(const type *, const type *)) \ +# ifndef OPENSSL_NO_DEPRECATED_3_1 +# define DEFINE_LHASH_OF_DEPRECATED(type) \ + static ossl_unused ossl_inline void \ + lh_##type##_node_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ { \ - return (LHASH_OF(type) *) \ - OPENSSL_LH_new((OPENSSL_LH_HASHFUNC)hfn, (OPENSSL_LH_COMPFUNC)cfn); \ + OPENSSL_LH_node_stats_bio((const OPENSSL_LHASH *)lh, out); \ } \ - static ossl_unused ossl_inline void lh_##type##_free(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline void \ + lh_##type##_node_usage_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + { \ + OPENSSL_LH_node_usage_stats_bio((const OPENSSL_LHASH *)lh, out); \ + } \ + static ossl_unused ossl_inline void \ + lh_##type##_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + { \ + OPENSSL_LH_stats_bio((const OPENSSL_LHASH *)lh, out); \ + } +# else +# define DEFINE_LHASH_OF_DEPRECATED(type) +# endif + +# define DEFINE_LHASH_OF_EX(type) \ + LHASH_OF(type) { \ + union lh_##type##_dummy { void* d1; unsigned long d2; int d3; } dummy; \ + }; \ + static unsigned long \ + lh_##type##_hfn_thunk(const void *data, OPENSSL_LH_HASHFUNC hfn) \ + { \ + unsigned long (*hfn_conv)(const type *) = (unsigned long (*)(const type *))hfn; \ + return hfn_conv((const type *)data); \ + } \ + static int lh_##type##_cfn_thunk(const void *da, const void *db, OPENSSL_LH_COMPFUNC cfn) \ + { \ + int (*cfn_conv)(const type *, const type *) = (int (*)(const type *, const type *))cfn; \ + return cfn_conv((const type *)da, (const type *)db); \ + } \ + static ossl_unused ossl_inline void \ + lh_##type##_free(LHASH_OF(type) *lh) \ { \ OPENSSL_LH_free((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline void lh_##type##_flush(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline void \ + lh_##type##_flush(LHASH_OF(type) *lh) \ { \ OPENSSL_LH_flush((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline type *lh_##type##_insert(LHASH_OF(type) *lh, type *d) \ + static ossl_unused ossl_inline type * \ + lh_##type##_insert(LHASH_OF(type) *lh, type *d) \ { \ return (type *)OPENSSL_LH_insert((OPENSSL_LHASH *)lh, d); \ } \ - static ossl_unused ossl_inline type *lh_##type##_delete(LHASH_OF(type) *lh, const type *d) \ + static ossl_unused ossl_inline type * \ + lh_##type##_delete(LHASH_OF(type) *lh, const type *d) \ { \ return (type *)OPENSSL_LH_delete((OPENSSL_LHASH *)lh, d); \ } \ - static ossl_unused ossl_inline type *lh_##type##_retrieve(LHASH_OF(type) *lh, const type *d) \ + static ossl_unused ossl_inline type * \ + lh_##type##_retrieve(LHASH_OF(type) *lh, const type *d) \ { \ return (type *)OPENSSL_LH_retrieve((OPENSSL_LHASH *)lh, d); \ } \ - static ossl_unused ossl_inline int lh_##type##_error(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline int \ + lh_##type##_error(LHASH_OF(type) *lh) \ { \ return OPENSSL_LH_error((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline unsigned long lh_##type##_num_items(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline unsigned long \ + lh_##type##_num_items(LHASH_OF(type) *lh) \ { \ return OPENSSL_LH_num_items((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline void lh_##type##_node_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + static ossl_unused ossl_inline unsigned long \ + lh_##type##_get_down_load(LHASH_OF(type) *lh) \ { \ - OPENSSL_LH_node_stats_bio((const OPENSSL_LHASH *)lh, out); \ + return OPENSSL_LH_get_down_load((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline void lh_##type##_node_usage_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + static ossl_unused ossl_inline void \ + lh_##type##_set_down_load(LHASH_OF(type) *lh, unsigned long dl) \ { \ - OPENSSL_LH_node_usage_stats_bio((const OPENSSL_LHASH *)lh, out); \ + OPENSSL_LH_set_down_load((OPENSSL_LHASH *)lh, dl); \ } \ - static ossl_unused ossl_inline void lh_##type##_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall_thunk(void *node, OPENSSL_LH_DOALL_FUNC doall) \ { \ - OPENSSL_LH_stats_bio((const OPENSSL_LHASH *)lh, out); \ + void (*doall_conv)(type *) = (void (*)(type *))doall; \ + doall_conv((type *)node); \ } \ - static ossl_unused ossl_inline unsigned long lh_##type##_get_down_load(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall_arg_thunk(void *node, void *arg, OPENSSL_LH_DOALL_FUNCARG doall) \ { \ - return OPENSSL_LH_get_down_load((OPENSSL_LHASH *)lh); \ + void (*doall_conv)(type *, void *) = (void (*)(type *, void *))doall; \ + doall_conv((type *)node, arg); \ } \ - static ossl_unused ossl_inline void lh_##type##_set_down_load(LHASH_OF(type) *lh, unsigned long dl) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall(LHASH_OF(type) *lh, void (*doall)(type *)) \ { \ - OPENSSL_LH_set_down_load((OPENSSL_LHASH *)lh, dl); \ + OPENSSL_LH_doall((OPENSSL_LHASH *)lh, (OPENSSL_LH_DOALL_FUNC)doall); \ } \ - static ossl_unused ossl_inline void lh_##type##_doall(LHASH_OF(type) *lh, \ - void (*doall)(type *)) \ + static ossl_unused ossl_inline LHASH_OF(type) * \ + lh_##type##_new(unsigned long (*hfn)(const type *), \ + int (*cfn)(const type *, const type *)) \ { \ - OPENSSL_LH_doall((OPENSSL_LHASH *)lh, (OPENSSL_LH_DOALL_FUNC)doall); \ + return (LHASH_OF(type) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new((OPENSSL_LH_HASHFUNC)hfn, (OPENSSL_LH_COMPFUNC)cfn), \ + lh_##type##_hfn_thunk, lh_##type##_cfn_thunk, \ + lh_##type##_doall_thunk, \ + lh_##type##_doall_arg_thunk); \ } \ - static ossl_unused ossl_inline void lh_##type##_doall_arg(LHASH_OF(type) *lh, \ - void (*doallarg)(type *, void *), \ - void *arg) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall_arg(LHASH_OF(type) *lh, \ + void (*doallarg)(type *, void *), void *arg) \ { \ OPENSSL_LH_doall_arg((OPENSSL_LHASH *)lh, \ (OPENSSL_LH_DOALL_FUNCARG)doallarg, arg); \ } \ LHASH_OF(type) +# define DEFINE_LHASH_OF(type) \ + DEFINE_LHASH_OF_EX(type); \ + DEFINE_LHASH_OF_DEPRECATED(type) \ + LHASH_OF(type) + #define IMPLEMENT_LHASH_DOALL_ARG_CONST(type, argtype) \ int_implement_lhash_doall(type, argtype, const type) @@ -240,17 +341,26 @@ void OPENSSL_LH_node_usage_stats_bio(const OPENSSL_LHASH *lh, BIO *out); int_implement_lhash_doall(type, argtype, type) #define int_implement_lhash_doall(type, argtype, cbargtype) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall_##argtype##_thunk(void *node, void *arg, OPENSSL_LH_DOALL_FUNCARG fn) \ + { \ + void (*fn_conv)(cbargtype *, argtype *) = (void (*)(cbargtype *, argtype *))fn; \ + fn_conv((cbargtype *)node, (argtype *)arg); \ + } \ static ossl_unused ossl_inline void \ lh_##type##_doall_##argtype(LHASH_OF(type) *lh, \ void (*fn)(cbargtype *, argtype *), \ argtype *arg) \ { \ - OPENSSL_LH_doall_arg((OPENSSL_LHASH *)lh, (OPENSSL_LH_DOALL_FUNCARG)fn, (void *)arg); \ + OPENSSL_LH_doall_arg_thunk((OPENSSL_LHASH *)lh, \ + lh_##type##_doall_##argtype##_thunk, \ + (OPENSSL_LH_DOALL_FUNCARG)fn, \ + (void *)arg); \ } \ LHASH_OF(type) DEFINE_LHASH_OF_INTERNAL(OPENSSL_STRING); -#define lh_OPENSSL_STRING_new(hfn, cmp) ((LHASH_OF(OPENSSL_STRING) *)OPENSSL_LH_new(ossl_check_OPENSSL_STRING_lh_hashfunc_type(hfn), ossl_check_OPENSSL_STRING_lh_compfunc_type(cmp))) +#define lh_OPENSSL_STRING_new(hfn, cmp) ((LHASH_OF(OPENSSL_STRING) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new(ossl_check_OPENSSL_STRING_lh_hashfunc_type(hfn), ossl_check_OPENSSL_STRING_lh_compfunc_type(cmp)), lh_OPENSSL_STRING_hash_thunk, lh_OPENSSL_STRING_comp_thunk, lh_OPENSSL_STRING_doall_thunk, lh_OPENSSL_STRING_doall_arg_thunk)) #define lh_OPENSSL_STRING_free(lh) OPENSSL_LH_free(ossl_check_OPENSSL_STRING_lh_type(lh)) #define lh_OPENSSL_STRING_flush(lh) OPENSSL_LH_flush(ossl_check_OPENSSL_STRING_lh_type(lh)) #define lh_OPENSSL_STRING_insert(lh, ptr) ((OPENSSL_STRING *)OPENSSL_LH_insert(ossl_check_OPENSSL_STRING_lh_type(lh), ossl_check_OPENSSL_STRING_lh_plain_type(ptr))) @@ -265,7 +375,7 @@ DEFINE_LHASH_OF_INTERNAL(OPENSSL_STRING); #define lh_OPENSSL_STRING_set_down_load(lh, dl) OPENSSL_LH_set_down_load(ossl_check_OPENSSL_STRING_lh_type(lh), dl) #define lh_OPENSSL_STRING_doall(lh, dfn) OPENSSL_LH_doall(ossl_check_OPENSSL_STRING_lh_type(lh), ossl_check_OPENSSL_STRING_lh_doallfunc_type(dfn)) DEFINE_LHASH_OF_INTERNAL(OPENSSL_CSTRING); -#define lh_OPENSSL_CSTRING_new(hfn, cmp) ((LHASH_OF(OPENSSL_CSTRING) *)OPENSSL_LH_new(ossl_check_OPENSSL_CSTRING_lh_hashfunc_type(hfn), ossl_check_OPENSSL_CSTRING_lh_compfunc_type(cmp))) +#define lh_OPENSSL_CSTRING_new(hfn, cmp) ((LHASH_OF(OPENSSL_CSTRING) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new(ossl_check_OPENSSL_CSTRING_lh_hashfunc_type(hfn), ossl_check_OPENSSL_CSTRING_lh_compfunc_type(cmp)), lh_OPENSSL_CSTRING_hash_thunk, lh_OPENSSL_CSTRING_comp_thunk, lh_OPENSSL_CSTRING_doall_thunk, lh_OPENSSL_CSTRING_doall_arg_thunk)) #define lh_OPENSSL_CSTRING_free(lh) OPENSSL_LH_free(ossl_check_OPENSSL_CSTRING_lh_type(lh)) #define lh_OPENSSL_CSTRING_flush(lh) OPENSSL_LH_flush(ossl_check_OPENSSL_CSTRING_lh_type(lh)) #define lh_OPENSSL_CSTRING_insert(lh, ptr) ((OPENSSL_CSTRING *)OPENSSL_LH_insert(ossl_check_OPENSSL_CSTRING_lh_type(lh), ossl_check_OPENSSL_CSTRING_lh_plain_type(ptr))) diff --git a/deps/openssl/config/archs/aix64-gcc-as/no-asm/include/openssl/opensslv.h b/deps/openssl/config/archs/aix64-gcc-as/no-asm/include/openssl/opensslv.h index 5fb5bc63056fe0..dd50d89cb9982d 100644 --- a/deps/openssl/config/archs/aix64-gcc-as/no-asm/include/openssl/opensslv.h +++ b/deps/openssl/config/archs/aix64-gcc-as/no-asm/include/openssl/opensslv.h @@ -28,8 +28,8 @@ extern "C" { * These macros express version number MAJOR.MINOR.PATCH exactly */ # define OPENSSL_VERSION_MAJOR 3 -# define OPENSSL_VERSION_MINOR 0 -# define OPENSSL_VERSION_PATCH 17 +# define OPENSSL_VERSION_MINOR 5 +# define OPENSSL_VERSION_PATCH 1 /* * Additional version information @@ -74,8 +74,8 @@ extern "C" { * longer variant with OPENSSL_VERSION_PRE_RELEASE_STR and * OPENSSL_VERSION_BUILD_METADATA_STR appended. */ -# define OPENSSL_VERSION_STR "3.0.17" -# define OPENSSL_FULL_VERSION_STR "3.0.17" +# define OPENSSL_VERSION_STR "3.5.1" +# define OPENSSL_FULL_VERSION_STR "3.5.1" /* * SECTION 3: ADDITIONAL METADATA @@ -88,7 +88,7 @@ extern "C" { * SECTION 4: BACKWARD COMPATIBILITY */ -# define OPENSSL_VERSION_TEXT "OpenSSL 3.0.17 1 Jul 2025" +# define OPENSSL_VERSION_TEXT "OpenSSL 3.5.1 1 Jul 2025" /* Synthesize OPENSSL_VERSION_NUMBER with the layout 0xMNN00PPSL */ # ifdef OPENSSL_VERSION_PRE_RELEASE diff --git a/deps/openssl/config/archs/aix64-gcc-as/no-asm/include/openssl/pkcs12.h b/deps/openssl/config/archs/aix64-gcc-as/no-asm/include/openssl/pkcs12.h index c5e0cab06491ec..0809645dad0bbf 100644 --- a/deps/openssl/config/archs/aix64-gcc-as/no-asm/include/openssl/pkcs12.h +++ b/deps/openssl/config/archs/aix64-gcc-as/no-asm/include/openssl/pkcs12.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/pkcs12.h.in * - * Copyright 1999-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1999-2024 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -25,6 +25,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -41,6 +44,7 @@ extern "C" { # define PKCS12_MAC_KEY_LENGTH 20 +/* The macro is expected to be used only internally. Kept for backwards compatibility. */ # define PKCS12_SALT_LEN 8 /* It's not clear if these are actually needed... */ @@ -130,7 +134,9 @@ int PKCS12_SAFEBAG_get_bag_nid(const PKCS12_SAFEBAG *bag); const ASN1_TYPE *PKCS12_SAFEBAG_get0_bag_obj(const PKCS12_SAFEBAG *bag); const ASN1_OBJECT *PKCS12_SAFEBAG_get0_bag_type(const PKCS12_SAFEBAG *bag); +X509 *PKCS12_SAFEBAG_get1_cert_ex(const PKCS12_SAFEBAG *bag, OSSL_LIB_CTX *libctx, const char *propq); X509 *PKCS12_SAFEBAG_get1_cert(const PKCS12_SAFEBAG *bag); +X509_CRL *PKCS12_SAFEBAG_get1_crl_ex(const PKCS12_SAFEBAG *bag, OSSL_LIB_CTX *libctx, const char *propq); X509_CRL *PKCS12_SAFEBAG_get1_crl(const PKCS12_SAFEBAG *bag); const STACK_OF(PKCS12_SAFEBAG) * PKCS12_SAFEBAG_get0_safes(const PKCS12_SAFEBAG *bag); @@ -218,6 +224,7 @@ ASN1_TYPE *PKCS12_get_attr_gen(const STACK_OF(X509_ATTRIBUTE) *attrs, char *PKCS12_get_friendlyname(PKCS12_SAFEBAG *bag); const STACK_OF(X509_ATTRIBUTE) * PKCS12_SAFEBAG_get0_attrs(const PKCS12_SAFEBAG *bag); +void PKCS12_SAFEBAG_set0_attrs(PKCS12_SAFEBAG *bag, STACK_OF(X509_ATTRIBUTE) *attrs); unsigned char *PKCS12_pbe_crypt(const X509_ALGOR *algor, const char *pass, int passlen, const unsigned char *in, int inlen, @@ -285,6 +292,9 @@ int PKCS12_verify_mac(PKCS12 *p12, const char *pass, int passlen); int PKCS12_set_mac(PKCS12 *p12, const char *pass, int passlen, unsigned char *salt, int saltlen, int iter, const EVP_MD *md_type); +int PKCS12_set_pbmac1_pbkdf2(PKCS12 *p12, const char *pass, int passlen, + unsigned char *salt, int saltlen, int iter, + const EVP_MD *md_type, const char *prf_md_name); int PKCS12_setup_mac(PKCS12 *p12, int iter, unsigned char *salt, int saltlen, const EVP_MD *md_type); unsigned char *OPENSSL_asc2uni(const char *asc, int asclen, @@ -305,6 +315,7 @@ DECLARE_ASN1_ITEM(PKCS12_AUTHSAFES) void PKCS12_PBE_add(void); int PKCS12_parse(PKCS12 *p12, const char *pass, EVP_PKEY **pkey, X509 **cert, STACK_OF(X509) **ca); +typedef int PKCS12_create_cb(PKCS12_SAFEBAG *bag, void *cbarg); PKCS12 *PKCS12_create(const char *pass, const char *name, EVP_PKEY *pkey, X509 *cert, STACK_OF(X509) *ca, int nid_key, int nid_cert, int iter, int mac_iter, int keytype); @@ -312,6 +323,11 @@ PKCS12 *PKCS12_create_ex(const char *pass, const char *name, EVP_PKEY *pkey, X509 *cert, STACK_OF(X509) *ca, int nid_key, int nid_cert, int iter, int mac_iter, int keytype, OSSL_LIB_CTX *ctx, const char *propq); +PKCS12 *PKCS12_create_ex2(const char *pass, const char *name, EVP_PKEY *pkey, + X509 *cert, STACK_OF(X509) *ca, int nid_key, int nid_cert, + int iter, int mac_iter, int keytype, + OSSL_LIB_CTX *ctx, const char *propq, + PKCS12_create_cb *cb, void *cbarg); PKCS12_SAFEBAG *PKCS12_add_cert(STACK_OF(PKCS12_SAFEBAG) **pbags, X509 *cert); PKCS12_SAFEBAG *PKCS12_add_key(STACK_OF(PKCS12_SAFEBAG) **pbags, diff --git a/deps/openssl/config/archs/aix64-gcc-as/no-asm/include/openssl/pkcs7.h b/deps/openssl/config/archs/aix64-gcc-as/no-asm/include/openssl/pkcs7.h index 0ce79bf4fa160e..fa68462aff973b 100644 --- a/deps/openssl/config/archs/aix64-gcc-as/no-asm/include/openssl/pkcs7.h +++ b/deps/openssl/config/archs/aix64-gcc-as/no-asm/include/openssl/pkcs7.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/pkcs7.h.in * - * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -28,6 +28,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -131,8 +134,8 @@ SKM_DEFINE_STACK_OF_INTERNAL(PKCS7_RECIP_INFO, PKCS7_RECIP_INFO, PKCS7_RECIP_INF typedef struct pkcs7_signed_st { ASN1_INTEGER *version; /* version 1 */ STACK_OF(X509_ALGOR) *md_algs; /* md used */ - STACK_OF(X509) *cert; /* [ 0 ] */ - STACK_OF(X509_CRL) *crl; /* [ 1 ] */ + STACK_OF(X509) *cert; /* [ 0 ] */ /* name should be 'certificates' */ + STACK_OF(X509_CRL) *crl; /* [ 1 ] */ /* name should be 'crls' */ STACK_OF(PKCS7_SIGNER_INFO) *signer_info; struct pkcs7_st *contents; } PKCS7_SIGNED; @@ -158,8 +161,8 @@ typedef struct pkcs7_enveloped_st { typedef struct pkcs7_signedandenveloped_st { ASN1_INTEGER *version; /* version 1 */ STACK_OF(X509_ALGOR) *md_algs; /* md used */ - STACK_OF(X509) *cert; /* [ 0 ] */ - STACK_OF(X509_CRL) *crl; /* [ 1 ] */ + STACK_OF(X509) *cert; /* [ 0 ] */ /* name should be 'certificates' */ + STACK_OF(X509_CRL) *crl; /* [ 1 ] */ /* name should be 'crls' */ STACK_OF(PKCS7_SIGNER_INFO) *signer_info; PKCS7_ENC_CONTENT *enc_data; STACK_OF(PKCS7_RECIP_INFO) *recipientinfo; @@ -200,7 +203,7 @@ typedef struct pkcs7_st { /* NID_pkcs7_data */ ASN1_OCTET_STRING *data; /* NID_pkcs7_signed */ - PKCS7_SIGNED *sign; + PKCS7_SIGNED *sign; /* field name 'signed' would clash with C keyword */ /* NID_pkcs7_enveloped */ PKCS7_ENVELOPE *enveloped; /* NID_pkcs7_signedAndEnveloped */ @@ -341,13 +344,13 @@ int PKCS7_SIGNER_INFO_set(PKCS7_SIGNER_INFO *p7i, X509 *x509, EVP_PKEY *pkey, const EVP_MD *dgst); int PKCS7_SIGNER_INFO_sign(PKCS7_SIGNER_INFO *si); int PKCS7_add_signer(PKCS7 *p7, PKCS7_SIGNER_INFO *p7i); -int PKCS7_add_certificate(PKCS7 *p7, X509 *x509); -int PKCS7_add_crl(PKCS7 *p7, X509_CRL *x509); +int PKCS7_add_certificate(PKCS7 *p7, X509 *cert); +int PKCS7_add_crl(PKCS7 *p7, X509_CRL *crl); int PKCS7_content_new(PKCS7 *p7, int nid); int PKCS7_dataVerify(X509_STORE *cert_store, X509_STORE_CTX *ctx, BIO *bio, PKCS7 *p7, PKCS7_SIGNER_INFO *si); int PKCS7_signatureVerify(BIO *bio, PKCS7 *p7, PKCS7_SIGNER_INFO *si, - X509 *x509); + X509 *signer); BIO *PKCS7_dataInit(PKCS7 *p7, BIO *bio); int PKCS7_dataFinal(PKCS7 *p7, BIO *bio); diff --git a/deps/openssl/config/archs/aix64-gcc-as/no-asm/include/openssl/ssl.h b/deps/openssl/config/archs/aix64-gcc-as/no-asm/include/openssl/ssl.h index 3df725c56d6c5e..7e3d89c7ef3dc9 100644 --- a/deps/openssl/config/archs/aix64-gcc-as/no-asm/include/openssl/ssl.h +++ b/deps/openssl/config/archs/aix64-gcc-as/no-asm/include/openssl/ssl.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/ssl.h.in * - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved * Copyright 2005 Nokia. All rights reserved. * @@ -24,6 +24,7 @@ # endif # include +# include # include # include # include @@ -42,6 +43,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -231,10 +235,8 @@ typedef struct ssl_cipher_st SSL_CIPHER; typedef struct ssl_session_st SSL_SESSION; typedef struct tls_sigalgs_st TLS_SIGALGS; typedef struct ssl_conf_ctx_st SSL_CONF_CTX; -typedef struct ssl_comp_st SSL_COMP; STACK_OF(SSL_CIPHER); -STACK_OF(SSL_COMP); /* SRTP protection profiles for use with the use_srtp extension (RFC 5764)*/ typedef struct srtp_protection_profile_st { @@ -278,28 +280,31 @@ typedef int (*tls_session_secret_cb_fn)(SSL *s, void *secret, int *secret_len, /* Extension context codes */ /* This extension is only allowed in TLS */ -#define SSL_EXT_TLS_ONLY 0x0001 +#define SSL_EXT_TLS_ONLY 0x00001 /* This extension is only allowed in DTLS */ -#define SSL_EXT_DTLS_ONLY 0x0002 +#define SSL_EXT_DTLS_ONLY 0x00002 /* Some extensions may be allowed in DTLS but we don't implement them for it */ -#define SSL_EXT_TLS_IMPLEMENTATION_ONLY 0x0004 +#define SSL_EXT_TLS_IMPLEMENTATION_ONLY 0x00004 /* Most extensions are not defined for SSLv3 but EXT_TYPE_renegotiate is */ -#define SSL_EXT_SSL3_ALLOWED 0x0008 +#define SSL_EXT_SSL3_ALLOWED 0x00008 /* Extension is only defined for TLS1.2 and below */ -#define SSL_EXT_TLS1_2_AND_BELOW_ONLY 0x0010 +#define SSL_EXT_TLS1_2_AND_BELOW_ONLY 0x00010 /* Extension is only defined for TLS1.3 and above */ -#define SSL_EXT_TLS1_3_ONLY 0x0020 +#define SSL_EXT_TLS1_3_ONLY 0x00020 /* Ignore this extension during parsing if we are resuming */ -#define SSL_EXT_IGNORE_ON_RESUMPTION 0x0040 -#define SSL_EXT_CLIENT_HELLO 0x0080 +#define SSL_EXT_IGNORE_ON_RESUMPTION 0x00040 +#define SSL_EXT_CLIENT_HELLO 0x00080 /* Really means TLS1.2 or below */ -#define SSL_EXT_TLS1_2_SERVER_HELLO 0x0100 -#define SSL_EXT_TLS1_3_SERVER_HELLO 0x0200 -#define SSL_EXT_TLS1_3_ENCRYPTED_EXTENSIONS 0x0400 -#define SSL_EXT_TLS1_3_HELLO_RETRY_REQUEST 0x0800 -#define SSL_EXT_TLS1_3_CERTIFICATE 0x1000 -#define SSL_EXT_TLS1_3_NEW_SESSION_TICKET 0x2000 -#define SSL_EXT_TLS1_3_CERTIFICATE_REQUEST 0x4000 +#define SSL_EXT_TLS1_2_SERVER_HELLO 0x00100 +#define SSL_EXT_TLS1_3_SERVER_HELLO 0x00200 +#define SSL_EXT_TLS1_3_ENCRYPTED_EXTENSIONS 0x00400 +#define SSL_EXT_TLS1_3_HELLO_RETRY_REQUEST 0x00800 +#define SSL_EXT_TLS1_3_CERTIFICATE 0x01000 +#define SSL_EXT_TLS1_3_NEW_SESSION_TICKET 0x02000 +#define SSL_EXT_TLS1_3_CERTIFICATE_REQUEST 0x04000 +#define SSL_EXT_TLS1_3_CERTIFICATE_COMPRESSION 0x08000 +/* When sending a raw public key in a certificate message */ +#define SSL_EXT_TLS1_3_RAW_PUBLIC_KEY 0x10000 /* Typedefs for handling custom extensions */ @@ -404,7 +409,7 @@ typedef int (*SSL_async_callback_fn)(SSL *s, void *arg); */ # define SSL_OP_CIPHER_SERVER_PREFERENCE SSL_OP_BIT(22) /* - * If set, a server will allow a client to issue a SSLv3.0 version + * If set, a server will allow a client to issue an SSLv3.0 version * number as latest version supported in the premaster secret, even when * TLSv1.0 (version 3.1) was announced in the client hello. Normally * this is forbidden to prevent version rollback attacks. @@ -430,6 +435,19 @@ typedef int (*SSL_async_callback_fn)(SSL *s, void *arg); * interoperability with CryptoPro CSP 3.x */ # define SSL_OP_CRYPTOPRO_TLSEXT_BUG SSL_OP_BIT(31) +/* + * Disable RFC8879 certificate compression + * SSL_OP_NO_TX_CERTIFICATE_COMPRESSION: don't send compressed certificates, + * and ignore the extension when received. + * SSL_OP_NO_RX_CERTIFICATE_COMPRESSION: don't send the extension, and + * subsequently indicating that receiving is not supported + */ +# define SSL_OP_NO_TX_CERTIFICATE_COMPRESSION SSL_OP_BIT(32) +# define SSL_OP_NO_RX_CERTIFICATE_COMPRESSION SSL_OP_BIT(33) + /* Enable KTLS TX zerocopy on Linux */ +# define SSL_OP_ENABLE_KTLS_TX_ZEROCOPY_SENDFILE SSL_OP_BIT(34) + +#define SSL_OP_PREFER_NO_DHE_KEX SSL_OP_BIT(35) /* * Option "collections." @@ -574,6 +592,8 @@ typedef int (*SSL_async_callback_fn)(SSL *s, void *arg); # define CERT_PKEY_CERT_TYPE 0x400 /* Cert chain suitable to Suite B */ # define CERT_PKEY_SUITEB 0x800 +/* Cert pkey valid for raw public key use */ +# define CERT_PKEY_RPK 0x1000 # define SSL_CONF_FLAG_CMDLINE 0x1 # define SSL_CONF_FLAG_FILE 0x2 @@ -965,6 +985,7 @@ uint32_t SSL_get_recv_max_early_data(const SSL *s); # include /* This is mostly sslv3 with a few tweaks */ # include /* Datagram TLS */ # include /* Support for the use_srtp extension */ +# include #ifdef __cplusplus extern "C" { @@ -1000,32 +1021,6 @@ SKM_DEFINE_STACK_OF_INTERNAL(SSL_CIPHER, const SSL_CIPHER, SSL_CIPHER) #define sk_SSL_CIPHER_dup(sk) ((STACK_OF(SSL_CIPHER) *)OPENSSL_sk_dup(ossl_check_const_SSL_CIPHER_sk_type(sk))) #define sk_SSL_CIPHER_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(SSL_CIPHER) *)OPENSSL_sk_deep_copy(ossl_check_const_SSL_CIPHER_sk_type(sk), ossl_check_SSL_CIPHER_copyfunc_type(copyfunc), ossl_check_SSL_CIPHER_freefunc_type(freefunc))) #define sk_SSL_CIPHER_set_cmp_func(sk, cmp) ((sk_SSL_CIPHER_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_SSL_CIPHER_sk_type(sk), ossl_check_SSL_CIPHER_compfunc_type(cmp))) -SKM_DEFINE_STACK_OF_INTERNAL(SSL_COMP, SSL_COMP, SSL_COMP) -#define sk_SSL_COMP_num(sk) OPENSSL_sk_num(ossl_check_const_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_value(sk, idx) ((SSL_COMP *)OPENSSL_sk_value(ossl_check_const_SSL_COMP_sk_type(sk), (idx))) -#define sk_SSL_COMP_new(cmp) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new(ossl_check_SSL_COMP_compfunc_type(cmp))) -#define sk_SSL_COMP_new_null() ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new_null()) -#define sk_SSL_COMP_new_reserve(cmp, n) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new_reserve(ossl_check_SSL_COMP_compfunc_type(cmp), (n))) -#define sk_SSL_COMP_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_SSL_COMP_sk_type(sk), (n)) -#define sk_SSL_COMP_free(sk) OPENSSL_sk_free(ossl_check_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_zero(sk) OPENSSL_sk_zero(ossl_check_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_delete(sk, i) ((SSL_COMP *)OPENSSL_sk_delete(ossl_check_SSL_COMP_sk_type(sk), (i))) -#define sk_SSL_COMP_delete_ptr(sk, ptr) ((SSL_COMP *)OPENSSL_sk_delete_ptr(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr))) -#define sk_SSL_COMP_push(sk, ptr) OPENSSL_sk_push(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) -#define sk_SSL_COMP_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) -#define sk_SSL_COMP_pop(sk) ((SSL_COMP *)OPENSSL_sk_pop(ossl_check_SSL_COMP_sk_type(sk))) -#define sk_SSL_COMP_shift(sk) ((SSL_COMP *)OPENSSL_sk_shift(ossl_check_SSL_COMP_sk_type(sk))) -#define sk_SSL_COMP_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_SSL_COMP_sk_type(sk),ossl_check_SSL_COMP_freefunc_type(freefunc)) -#define sk_SSL_COMP_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr), (idx)) -#define sk_SSL_COMP_set(sk, idx, ptr) ((SSL_COMP *)OPENSSL_sk_set(ossl_check_SSL_COMP_sk_type(sk), (idx), ossl_check_SSL_COMP_type(ptr))) -#define sk_SSL_COMP_find(sk, ptr) OPENSSL_sk_find(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) -#define sk_SSL_COMP_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) -#define sk_SSL_COMP_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr), pnum) -#define sk_SSL_COMP_sort(sk) OPENSSL_sk_sort(ossl_check_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_dup(sk) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_dup(ossl_check_const_SSL_COMP_sk_type(sk))) -#define sk_SSL_COMP_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_deep_copy(ossl_check_const_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_copyfunc_type(copyfunc), ossl_check_SSL_COMP_freefunc_type(freefunc))) -#define sk_SSL_COMP_set_cmp_func(sk, cmp) ((sk_SSL_COMP_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_compfunc_type(cmp))) /* compatibility */ @@ -1066,6 +1061,7 @@ typedef enum { DTLS_ST_CR_HELLO_VERIFY_REQUEST, TLS_ST_CR_SRVR_HELLO, TLS_ST_CR_CERT, + TLS_ST_CR_COMP_CERT, TLS_ST_CR_CERT_STATUS, TLS_ST_CR_KEY_EXCH, TLS_ST_CR_CERT_REQ, @@ -1075,6 +1071,7 @@ typedef enum { TLS_ST_CR_FINISHED, TLS_ST_CW_CLNT_HELLO, TLS_ST_CW_CERT, + TLS_ST_CW_COMP_CERT, TLS_ST_CW_KEY_EXCH, TLS_ST_CW_CERT_VRFY, TLS_ST_CW_CHANGE, @@ -1085,10 +1082,12 @@ typedef enum { DTLS_ST_SW_HELLO_VERIFY_REQUEST, TLS_ST_SW_SRVR_HELLO, TLS_ST_SW_CERT, + TLS_ST_SW_COMP_CERT, TLS_ST_SW_KEY_EXCH, TLS_ST_SW_CERT_REQ, TLS_ST_SW_SRVR_DONE, TLS_ST_SR_CERT, + TLS_ST_SR_COMP_CERT, TLS_ST_SR_KEY_EXCH, TLS_ST_SR_CERT_VRFY, TLS_ST_SR_NEXT_PROTO, @@ -1380,9 +1379,13 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) # define SSL_CTRL_GET_SIGNATURE_NID 132 # define SSL_CTRL_GET_TMP_KEY 133 # define SSL_CTRL_GET_NEGOTIATED_GROUP 134 +# define SSL_CTRL_GET_IANA_GROUPS 135 # define SSL_CTRL_SET_RETRY_VERIFY 136 # define SSL_CTRL_GET_VERIFY_CERT_STORE 137 # define SSL_CTRL_GET_CHAIN_CERT_STORE 138 +# define SSL_CTRL_GET0_IMPLEMENTED_GROUPS 139 +# define SSL_CTRL_GET_SIGNATURE_NAME 140 +# define SSL_CTRL_GET_PEER_SIGNATURE_NAME 141 # define SSL_CERT_SET_FIRST 1 # define SSL_CERT_SET_NEXT 2 # define SSL_CERT_SET_SERVER 3 @@ -1485,10 +1488,15 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) # define SSL_get1_groups(s, glist) \ SSL_ctrl(s,SSL_CTRL_GET_GROUPS,0,(int*)(glist)) +# define SSL_get0_iana_groups(s, plst) \ + SSL_ctrl(s,SSL_CTRL_GET_IANA_GROUPS,0,(uint16_t **)(plst)) # define SSL_CTX_set1_groups(ctx, glist, glistlen) \ SSL_CTX_ctrl(ctx,SSL_CTRL_SET_GROUPS,glistlen,(int *)(glist)) # define SSL_CTX_set1_groups_list(ctx, s) \ SSL_CTX_ctrl(ctx,SSL_CTRL_SET_GROUPS_LIST,0,(char *)(s)) +# define SSL_CTX_get0_implemented_groups(ctx, all, out) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_GET0_IMPLEMENTED_GROUPS, all, \ + (STACK_OF(OPENSSL_CSTRING) *)(out)) # define SSL_set1_groups(s, glist, glistlen) \ SSL_ctrl(s,SSL_CTRL_SET_GROUPS,glistlen,(char *)(glist)) # define SSL_set1_groups_list(s, str) \ @@ -1520,8 +1528,12 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) (char *)(clist)) # define SSL_set1_client_certificate_types(s, clist, clistlen) \ SSL_ctrl(s,SSL_CTRL_SET_CLIENT_CERT_TYPES,clistlen,(char *)(clist)) +# define SSL_get0_signature_name(s, str) \ + SSL_ctrl(s,SSL_CTRL_GET_SIGNATURE_NAME,0,(1?(str):(const char **)NULL)) # define SSL_get_signature_nid(s, pn) \ SSL_ctrl(s,SSL_CTRL_GET_SIGNATURE_NID,0,pn) +# define SSL_get0_peer_signature_name(s, str) \ + SSL_ctrl(s,SSL_CTRL_GET_PEER_SIGNATURE_NAME,0,(1?(str):(const char **)NULL)) # define SSL_get_peer_signature_nid(s, pn) \ SSL_ctrl(s,SSL_CTRL_GET_PEER_SIGNATURE_NID,0,pn) # define SSL_get_peer_tmp_key(s, pk) \ @@ -1549,6 +1561,7 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) # define SSL_get_max_proto_version(s) \ SSL_ctrl(s, SSL_CTRL_GET_MAX_PROTO_VERSION, 0, NULL) +const char *SSL_get0_group_name(SSL *s); const char *SSL_group_to_name(SSL *s, int id); /* Backwards compatibility, original 1.1.0 names */ @@ -1613,7 +1626,11 @@ void SSL_CTX_set1_cert_store(SSL_CTX *, X509_STORE *); __owur int SSL_want(const SSL *s); __owur int SSL_clear(SSL *s); +#ifndef OPENSSL_NO_DEPRECATED_3_4 +OSSL_DEPRECATEDIN_3_4_FOR("not Y2038-safe, replace with SSL_CTX_flush_sessions_ex()") void SSL_CTX_flush_sessions(SSL_CTX *ctx, long tm); +#endif +void SSL_CTX_flush_sessions_ex(SSL_CTX *ctx, time_t tm); __owur const SSL_CIPHER *SSL_get_current_cipher(const SSL *s); __owur const SSL_CIPHER *SSL_get_pending_cipher(const SSL *s); @@ -1725,13 +1742,21 @@ __owur const char *SSL_state_string(const SSL *s); __owur const char *SSL_rstate_string(const SSL *s); __owur const char *SSL_state_string_long(const SSL *s); __owur const char *SSL_rstate_string_long(const SSL *s); + +#ifndef OPENSSL_NO_DEPRECATED_3_4 +OSSL_DEPRECATEDIN_3_4_FOR("not Y2038-safe, replace with SSL_SESSION_get_time_ex()") __owur long SSL_SESSION_get_time(const SSL_SESSION *s); +OSSL_DEPRECATEDIN_3_4_FOR("not Y2038-safe, replace with SSL_SESSION_set_time_ex()") __owur long SSL_SESSION_set_time(SSL_SESSION *s, long t); +#endif __owur long SSL_SESSION_get_timeout(const SSL_SESSION *s); __owur long SSL_SESSION_set_timeout(SSL_SESSION *s, long t); __owur int SSL_SESSION_get_protocol_version(const SSL_SESSION *s); __owur int SSL_SESSION_set_protocol_version(SSL_SESSION *s, int version); +__owur time_t SSL_SESSION_get_time_ex(const SSL_SESSION *s); +__owur time_t SSL_SESSION_set_time_ex(SSL_SESSION *s, time_t t); + __owur const char *SSL_SESSION_get0_hostname(const SSL_SESSION *s); __owur int SSL_SESSION_set1_hostname(SSL_SESSION *s, const char *hostname); void SSL_SESSION_get0_alpn_selected(const SSL_SESSION *s, @@ -1783,6 +1808,9 @@ __owur int SSL_has_matching_session_id(const SSL *s, unsigned int id_len); SSL_SESSION *d2i_SSL_SESSION(SSL_SESSION **a, const unsigned char **pp, long length); +SSL_SESSION *d2i_SSL_SESSION_ex(SSL_SESSION **a, const unsigned char **pp, + long length, OSSL_LIB_CTX *libctx, + const char *propq); # ifdef OPENSSL_X509_H __owur X509 *SSL_get0_peer_certificate(const SSL *s); @@ -1840,6 +1868,8 @@ __owur int SSL_CTX_set_session_id_context(SSL_CTX *ctx, SSL *SSL_new(SSL_CTX *ctx); int SSL_up_ref(SSL *s); int SSL_is_dtls(const SSL *s); +int SSL_is_tls(const SSL *s); +int SSL_is_quic(const SSL *s); __owur int SSL_set_session_id_context(SSL *ssl, const unsigned char *sid_ctx, unsigned int sid_ctx_len); @@ -1848,8 +1878,8 @@ __owur int SSL_set_purpose(SSL *ssl, int purpose); __owur int SSL_CTX_set_trust(SSL_CTX *ctx, int trust); __owur int SSL_set_trust(SSL *ssl, int trust); -__owur int SSL_set1_host(SSL *s, const char *hostname); -__owur int SSL_add1_host(SSL *s, const char *hostname); +__owur int SSL_set1_host(SSL *s, const char *host); +__owur int SSL_add1_host(SSL *s, const char *host); __owur const char *SSL_get0_peername(SSL *s); void SSL_set_hostflags(SSL *s, unsigned int flags); @@ -1924,6 +1954,11 @@ OSSL_DEPRECATEDIN_3_0 __owur char *SSL_get_srp_userinfo(SSL *s); typedef int (*SSL_client_hello_cb_fn) (SSL *s, int *al, void *arg); void SSL_CTX_set_client_hello_cb(SSL_CTX *c, SSL_client_hello_cb_fn cb, void *arg); +typedef int (*SSL_new_pending_conn_cb_fn) (SSL_CTX *ctx, SSL *new_ssl, + void *arg); +void SSL_CTX_set_new_pending_conn_cb(SSL_CTX *c, SSL_new_pending_conn_cb_fn cb, + void *arg); + int SSL_client_hello_isv2(SSL *s); unsigned int SSL_client_hello_get0_legacy_version(SSL *s); size_t SSL_client_hello_get0_random(SSL *s, const unsigned char **out); @@ -1932,6 +1967,8 @@ size_t SSL_client_hello_get0_ciphers(SSL *s, const unsigned char **out); size_t SSL_client_hello_get0_compression_methods(SSL *s, const unsigned char **out); int SSL_client_hello_get1_extensions_present(SSL *s, int **out, size_t *outlen); +int SSL_client_hello_get_extension_order(SSL *s, uint16_t *exts, + size_t *num_exts); int SSL_client_hello_get0_ext(SSL *s, unsigned int type, const unsigned char **out, size_t *outlen); @@ -1978,6 +2015,12 @@ long SSL_callback_ctrl(SSL *, int, void (*)(void)); long SSL_CTX_ctrl(SSL_CTX *ctx, int cmd, long larg, void *parg); long SSL_CTX_callback_ctrl(SSL_CTX *, int, void (*)(void)); +# define SSL_WRITE_FLAG_CONCLUDE (1U << 0) + +__owur int SSL_write_ex2(SSL *s, const void *buf, size_t num, + uint64_t flags, + size_t *written); + # define SSL_EARLY_DATA_NOT_SENT 0 # define SSL_EARLY_DATA_REJECTED 1 # define SSL_EARLY_DATA_ACCEPTED 2 @@ -1986,6 +2029,7 @@ __owur int SSL_get_early_data_status(const SSL *s); __owur int SSL_get_error(const SSL *s, int ret_code); __owur const char *SSL_get_version(const SSL *s); +__owur int SSL_get_handshake_rtt(const SSL *s, uint64_t *rtt); /* This sets the 'default' SSL version that SSL_new() will create */ # ifndef OPENSSL_NO_DEPRECATED_3_0 @@ -2281,6 +2325,8 @@ void SSL_CTX_set_record_padding_callback(SSL_CTX *ctx, void SSL_CTX_set_record_padding_callback_arg(SSL_CTX *ctx, void *arg); void *SSL_CTX_get_record_padding_callback_arg(const SSL_CTX *ctx); int SSL_CTX_set_block_padding(SSL_CTX *ctx, size_t block_size); +int SSL_CTX_set_block_padding_ex(SSL_CTX *ctx, size_t app_block_size, + size_t hs_block_size); int SSL_set_record_padding_callback(SSL *ssl, size_t (*cb) (SSL *ssl, int type, @@ -2288,12 +2334,255 @@ int SSL_set_record_padding_callback(SSL *ssl, void SSL_set_record_padding_callback_arg(SSL *ssl, void *arg); void *SSL_get_record_padding_callback_arg(const SSL *ssl); int SSL_set_block_padding(SSL *ssl, size_t block_size); - +int SSL_set_block_padding_ex(SSL *ssl, size_t app_block_size, + size_t hs_block_size); int SSL_set_num_tickets(SSL *s, size_t num_tickets); size_t SSL_get_num_tickets(const SSL *s); int SSL_CTX_set_num_tickets(SSL_CTX *ctx, size_t num_tickets); size_t SSL_CTX_get_num_tickets(const SSL_CTX *ctx); +/* QUIC support */ +int SSL_handle_events(SSL *s); +__owur int SSL_get_event_timeout(SSL *s, struct timeval *tv, int *is_infinite); +__owur int SSL_get_rpoll_descriptor(SSL *s, BIO_POLL_DESCRIPTOR *desc); +__owur int SSL_get_wpoll_descriptor(SSL *s, BIO_POLL_DESCRIPTOR *desc); +__owur int SSL_net_read_desired(SSL *s); +__owur int SSL_net_write_desired(SSL *s); +__owur int SSL_set_blocking_mode(SSL *s, int blocking); +__owur int SSL_get_blocking_mode(SSL *s); +__owur int SSL_set1_initial_peer_addr(SSL *s, const BIO_ADDR *peer_addr); +__owur SSL *SSL_get0_connection(SSL *s); +__owur int SSL_is_connection(SSL *s); + +__owur int SSL_is_listener(SSL *ssl); +__owur SSL *SSL_get0_listener(SSL *s); +#define SSL_LISTENER_FLAG_NO_VALIDATE (1UL << 1) +__owur SSL *SSL_new_listener(SSL_CTX *ctx, uint64_t flags); +__owur SSL *SSL_new_listener_from(SSL *ssl, uint64_t flags); +__owur SSL *SSL_new_from_listener(SSL *ssl, uint64_t flags); +#define SSL_ACCEPT_CONNECTION_NO_BLOCK (1UL << 0) +__owur SSL *SSL_accept_connection(SSL *ssl, uint64_t flags); +__owur size_t SSL_get_accept_connection_queue_len(SSL *ssl); +__owur int SSL_listen(SSL *ssl); + +__owur int SSL_is_domain(SSL *s); +__owur SSL *SSL_get0_domain(SSL *s); +__owur SSL *SSL_new_domain(SSL_CTX *ctx, uint64_t flags); + +#define SSL_DOMAIN_FLAG_SINGLE_THREAD (1U << 0) +#define SSL_DOMAIN_FLAG_MULTI_THREAD (1U << 1) +#define SSL_DOMAIN_FLAG_THREAD_ASSISTED (1U << 2) +#define SSL_DOMAIN_FLAG_BLOCKING (1U << 3) +#define SSL_DOMAIN_FLAG_LEGACY_BLOCKING (1U << 4) + +__owur int SSL_CTX_set_domain_flags(SSL_CTX *ctx, uint64_t domain_flags); +__owur int SSL_CTX_get_domain_flags(const SSL_CTX *ctx, uint64_t *domain_flags); +__owur int SSL_get_domain_flags(const SSL *ssl, uint64_t *domain_flags); + +#define SSL_STREAM_TYPE_NONE 0 +#define SSL_STREAM_TYPE_READ (1U << 0) +#define SSL_STREAM_TYPE_WRITE (1U << 1) +#define SSL_STREAM_TYPE_BIDI (SSL_STREAM_TYPE_READ | SSL_STREAM_TYPE_WRITE) +__owur int SSL_get_stream_type(SSL *s); + +__owur uint64_t SSL_get_stream_id(SSL *s); +__owur int SSL_is_stream_local(SSL *s); + +#define SSL_DEFAULT_STREAM_MODE_NONE 0 +#define SSL_DEFAULT_STREAM_MODE_AUTO_BIDI 1 +#define SSL_DEFAULT_STREAM_MODE_AUTO_UNI 2 +__owur int SSL_set_default_stream_mode(SSL *s, uint32_t mode); + +#define SSL_STREAM_FLAG_UNI (1U << 0) +#define SSL_STREAM_FLAG_NO_BLOCK (1U << 1) +#define SSL_STREAM_FLAG_ADVANCE (1U << 2) +__owur SSL *SSL_new_stream(SSL *s, uint64_t flags); + +#define SSL_INCOMING_STREAM_POLICY_AUTO 0 +#define SSL_INCOMING_STREAM_POLICY_ACCEPT 1 +#define SSL_INCOMING_STREAM_POLICY_REJECT 2 +__owur int SSL_set_incoming_stream_policy(SSL *s, int policy, uint64_t aec); + +#define SSL_ACCEPT_STREAM_NO_BLOCK (1U << 0) +__owur SSL *SSL_accept_stream(SSL *s, uint64_t flags); +__owur size_t SSL_get_accept_stream_queue_len(SSL *s); + +# ifndef OPENSSL_NO_QUIC +__owur int SSL_inject_net_dgram(SSL *s, const unsigned char *buf, + size_t buf_len, + const BIO_ADDR *peer, + const BIO_ADDR *local); +# endif + +typedef struct ssl_shutdown_ex_args_st { + uint64_t quic_error_code; + const char *quic_reason; +} SSL_SHUTDOWN_EX_ARGS; + +#define SSL_SHUTDOWN_FLAG_RAPID (1U << 0) +#define SSL_SHUTDOWN_FLAG_NO_STREAM_FLUSH (1U << 1) +#define SSL_SHUTDOWN_FLAG_NO_BLOCK (1U << 2) +#define SSL_SHUTDOWN_FLAG_WAIT_PEER (1U << 3) + +__owur int SSL_shutdown_ex(SSL *ssl, uint64_t flags, + const SSL_SHUTDOWN_EX_ARGS *args, + size_t args_len); + +__owur int SSL_stream_conclude(SSL *ssl, uint64_t flags); + +typedef struct ssl_stream_reset_args_st { + uint64_t quic_error_code; +} SSL_STREAM_RESET_ARGS; + +__owur int SSL_stream_reset(SSL *ssl, + const SSL_STREAM_RESET_ARGS *args, + size_t args_len); + +#define SSL_STREAM_STATE_NONE 0 +#define SSL_STREAM_STATE_OK 1 +#define SSL_STREAM_STATE_WRONG_DIR 2 +#define SSL_STREAM_STATE_FINISHED 3 +#define SSL_STREAM_STATE_RESET_LOCAL 4 +#define SSL_STREAM_STATE_RESET_REMOTE 5 +#define SSL_STREAM_STATE_CONN_CLOSED 6 +__owur int SSL_get_stream_read_state(SSL *ssl); +__owur int SSL_get_stream_write_state(SSL *ssl); + +__owur int SSL_get_stream_read_error_code(SSL *ssl, uint64_t *app_error_code); +__owur int SSL_get_stream_write_error_code(SSL *ssl, uint64_t *app_error_code); + +#define SSL_CONN_CLOSE_FLAG_LOCAL (1U << 0) +#define SSL_CONN_CLOSE_FLAG_TRANSPORT (1U << 1) + +typedef struct ssl_conn_close_info_st { + uint64_t error_code, frame_type; + const char *reason; + size_t reason_len; + uint32_t flags; +} SSL_CONN_CLOSE_INFO; + +__owur int SSL_get_conn_close_info(SSL *ssl, + SSL_CONN_CLOSE_INFO *info, + size_t info_len); + +# define SSL_VALUE_CLASS_GENERIC 0 +# define SSL_VALUE_CLASS_FEATURE_REQUEST 1 +# define SSL_VALUE_CLASS_FEATURE_PEER_REQUEST 2 +# define SSL_VALUE_CLASS_FEATURE_NEGOTIATED 3 + +# define SSL_VALUE_NONE 0 +# define SSL_VALUE_QUIC_STREAM_BIDI_LOCAL_AVAIL 1 +# define SSL_VALUE_QUIC_STREAM_BIDI_REMOTE_AVAIL 2 +# define SSL_VALUE_QUIC_STREAM_UNI_LOCAL_AVAIL 3 +# define SSL_VALUE_QUIC_STREAM_UNI_REMOTE_AVAIL 4 +# define SSL_VALUE_QUIC_IDLE_TIMEOUT 5 +# define SSL_VALUE_EVENT_HANDLING_MODE 6 +# define SSL_VALUE_STREAM_WRITE_BUF_SIZE 7 +# define SSL_VALUE_STREAM_WRITE_BUF_USED 8 +# define SSL_VALUE_STREAM_WRITE_BUF_AVAIL 9 + +# define SSL_VALUE_EVENT_HANDLING_MODE_INHERIT 0 +# define SSL_VALUE_EVENT_HANDLING_MODE_IMPLICIT 1 +# define SSL_VALUE_EVENT_HANDLING_MODE_EXPLICIT 2 + +int SSL_get_value_uint(SSL *s, uint32_t class_, uint32_t id, uint64_t *v); +int SSL_set_value_uint(SSL *s, uint32_t class_, uint32_t id, uint64_t v); + +# define SSL_get_generic_value_uint(ssl, id, v) \ + SSL_get_value_uint((ssl), SSL_VALUE_CLASS_GENERIC, (id), (v)) +# define SSL_set_generic_value_uint(ssl, id, v) \ + SSL_set_value_uint((ssl), SSL_VALUE_CLASS_GENERIC, (id), (v)) +# define SSL_get_feature_request_uint(ssl, id, v) \ + SSL_get_value_uint((ssl), SSL_VALUE_CLASS_FEATURE_REQUEST, (id), (v)) +# define SSL_set_feature_request_uint(ssl, id, v) \ + SSL_set_value_uint((ssl), SSL_VALUE_CLASS_FEATURE_REQUEST, (id), (v)) +# define SSL_get_feature_peer_request_uint(ssl, id, v) \ + SSL_get_value_uint((ssl), SSL_VALUE_CLASS_FEATURE_PEER_REQUEST, (id), (v)) +# define SSL_get_feature_negotiated_uint(ssl, id, v) \ + SSL_get_value_uint((ssl), SSL_VALUE_CLASS_FEATURE_NEGOTIATED, (id), (v)) + +# define SSL_get_quic_stream_bidi_local_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_QUIC_STREAM_BIDI_LOCAL_AVAIL, \ + (value)) +# define SSL_get_quic_stream_bidi_remote_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_QUIC_STREAM_BIDI_REMOTE_AVAIL, \ + (value)) +# define SSL_get_quic_stream_uni_local_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_QUIC_STREAM_UNI_LOCAL_AVAIL, \ + (value)) +# define SSL_get_quic_stream_uni_remote_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_QUIC_STREAM_UNI_REMOTE_AVAIL, \ + (value)) + +# define SSL_get_event_handling_mode(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_EVENT_HANDLING_MODE, \ + (value)) +# define SSL_set_event_handling_mode(ssl, value) \ + SSL_set_generic_value_uint((ssl), SSL_VALUE_EVENT_HANDLING_MODE, \ + (value)) + +# define SSL_get_stream_write_buf_size(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_STREAM_WRITE_BUF_SIZE, \ + (value)) +# define SSL_get_stream_write_buf_used(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_STREAM_WRITE_BUF_USED, \ + (value)) +# define SSL_get_stream_write_buf_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_STREAM_WRITE_BUF_AVAIL, \ + (value)) + +# define SSL_POLL_EVENT_NONE 0 + +# define SSL_POLL_EVENT_F (1U << 0) /* F (Failure) */ +# define SSL_POLL_EVENT_EL (1U << 1) /* EL (Exception on Listener) */ +# define SSL_POLL_EVENT_EC (1U << 2) /* EC (Exception on Conn) */ +# define SSL_POLL_EVENT_ECD (1U << 3) /* ECD (Exception on Conn Drained) */ +# define SSL_POLL_EVENT_ER (1U << 4) /* ER (Exception on Read) */ +# define SSL_POLL_EVENT_EW (1U << 5) /* EW (Exception on Write) */ +# define SSL_POLL_EVENT_R (1U << 6) /* R (Readable) */ +# define SSL_POLL_EVENT_W (1U << 7) /* W (Writable) */ +# define SSL_POLL_EVENT_IC (1U << 8) /* IC (Incoming Connection) */ +# define SSL_POLL_EVENT_ISB (1U << 9) /* ISB (Incoming Stream: Bidi) */ +# define SSL_POLL_EVENT_ISU (1U << 10) /* ISU (Incoming Stream: Uni) */ +# define SSL_POLL_EVENT_OSB (1U << 11) /* OSB (Outgoing Stream: Bidi) */ +# define SSL_POLL_EVENT_OSU (1U << 12) /* OSU (Outgoing Stream: Uni) */ + +# define SSL_POLL_EVENT_RW (SSL_POLL_EVENT_R | SSL_POLL_EVENT_W) +# define SSL_POLL_EVENT_RE (SSL_POLL_EVENT_R | SSL_POLL_EVENT_ER) +# define SSL_POLL_EVENT_WE (SSL_POLL_EVENT_W | SSL_POLL_EVENT_EW) +# define SSL_POLL_EVENT_RWE (SSL_POLL_EVENT_RE | SSL_POLL_EVENT_WE) +# define SSL_POLL_EVENT_E (SSL_POLL_EVENT_EL | SSL_POLL_EVENT_EC \ + | SSL_POLL_EVENT_ER | SSL_POLL_EVENT_EW) +# define SSL_POLL_EVENT_IS (SSL_POLL_EVENT_ISB | SSL_POLL_EVENT_ISU) +# define SSL_POLL_EVENT_ISE (SSL_POLL_EVENT_IS | SSL_POLL_EVENT_EC) +# define SSL_POLL_EVENT_I (SSL_POLL_EVENT_IS | SSL_POLL_EVENT_IC) +# define SSL_POLL_EVENT_OS (SSL_POLL_EVENT_OSB | SSL_POLL_EVENT_OSU) +# define SSL_POLL_EVENT_OSE (SSL_POLL_EVENT_OS | SSL_POLL_EVENT_EC) + +typedef struct ssl_poll_item_st { + BIO_POLL_DESCRIPTOR desc; + uint64_t events, revents; +} SSL_POLL_ITEM; + +# define SSL_POLL_FLAG_NO_HANDLE_EVENTS (1U << 0) + +__owur int SSL_poll(SSL_POLL_ITEM *items, + size_t num_items, + size_t stride, + const struct timeval *timeout, + uint64_t flags, + size_t *result_count); + +static ossl_inline ossl_unused BIO_POLL_DESCRIPTOR +SSL_as_poll_descriptor(SSL *s) +{ + BIO_POLL_DESCRIPTOR d; + + d.type = BIO_POLL_DESCRIPTOR_TYPE_SSL; + d.value.ssl = s; + return d; +} + # ifndef OPENSSL_NO_DEPRECATED_1_1_0 # define SSL_cache_hit(s) SSL_session_reused(s) # endif @@ -2593,6 +2882,51 @@ void SSL_set_allow_early_data_cb(SSL *s, const char *OSSL_default_cipher_list(void); const char *OSSL_default_ciphersuites(void); +/* RFC8879 Certificate compression APIs */ + +int SSL_CTX_compress_certs(SSL_CTX *ctx, int alg); +int SSL_compress_certs(SSL *ssl, int alg); + +int SSL_CTX_set1_cert_comp_preference(SSL_CTX *ctx, int *algs, size_t len); +int SSL_set1_cert_comp_preference(SSL *ssl, int *algs, size_t len); + +int SSL_CTX_set1_compressed_cert(SSL_CTX *ctx, int algorithm, unsigned char *comp_data, + size_t comp_length, size_t orig_length); +int SSL_set1_compressed_cert(SSL *ssl, int algorithm, unsigned char *comp_data, + size_t comp_length, size_t orig_length); +size_t SSL_CTX_get1_compressed_cert(SSL_CTX *ctx, int alg, unsigned char **data, size_t *orig_len); +size_t SSL_get1_compressed_cert(SSL *ssl, int alg, unsigned char **data, size_t *orig_len); + +__owur int SSL_add_expected_rpk(SSL *s, EVP_PKEY *rpk); +__owur EVP_PKEY *SSL_get0_peer_rpk(const SSL *s); +__owur EVP_PKEY *SSL_SESSION_get0_peer_rpk(SSL_SESSION *s); +__owur int SSL_get_negotiated_client_cert_type(const SSL *s); +__owur int SSL_get_negotiated_server_cert_type(const SSL *s); + +__owur int SSL_set1_client_cert_type(SSL *s, const unsigned char *val, size_t len); +__owur int SSL_set1_server_cert_type(SSL *s, const unsigned char *val, size_t len); +__owur int SSL_CTX_set1_client_cert_type(SSL_CTX *ctx, const unsigned char *val, size_t len); +__owur int SSL_CTX_set1_server_cert_type(SSL_CTX *ctx, const unsigned char *val, size_t len); +__owur int SSL_get0_client_cert_type(const SSL *s, unsigned char **t, size_t *len); +__owur int SSL_get0_server_cert_type(const SSL *s, unsigned char **t, size_t *len); +__owur int SSL_CTX_get0_client_cert_type(const SSL_CTX *ctx, unsigned char **t, size_t *len); +__owur int SSL_CTX_get0_server_cert_type(const SSL_CTX *s, unsigned char **t, size_t *len); + +/* + * Protection level. For <= TLSv1.2 only "NONE" and "APPLICATION" are used. + */ +# define OSSL_RECORD_PROTECTION_LEVEL_NONE 0 +# define OSSL_RECORD_PROTECTION_LEVEL_EARLY 1 +# define OSSL_RECORD_PROTECTION_LEVEL_HANDSHAKE 2 +# define OSSL_RECORD_PROTECTION_LEVEL_APPLICATION 3 + +int SSL_set_quic_tls_cbs(SSL *s, const OSSL_DISPATCH *qtdis, void *arg); +int SSL_set_quic_tls_transport_params(SSL *s, + const unsigned char *params, + size_t params_len); + +int SSL_set_quic_tls_early_data_enabled(SSL *s, int enabled); + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/aix64-gcc-as/no-asm/include/openssl/x509.h b/deps/openssl/config/archs/aix64-gcc-as/no-asm/include/openssl/x509.h index 1f7755e5b69c75..d013458c226461 100644 --- a/deps/openssl/config/archs/aix64-gcc-as/no-asm/include/openssl/x509.h +++ b/deps/openssl/config/archs/aix64-gcc-as/no-asm/include/openssl/x509.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/x509.h.in * - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2024 The OpenSSL Project Authors. All Rights Reserved. * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved * * Licensed under the Apache License 2.0 (the "License"). You may not use @@ -40,6 +40,9 @@ # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -162,16 +165,24 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_CRL, X509_CRL, X509_CRL) # define X509_FILETYPE_ASN1 2 # define X509_FILETYPE_DEFAULT 3 -# define X509v3_KU_DIGITAL_SIGNATURE 0x0080 -# define X509v3_KU_NON_REPUDIATION 0x0040 -# define X509v3_KU_KEY_ENCIPHERMENT 0x0020 -# define X509v3_KU_DATA_ENCIPHERMENT 0x0010 -# define X509v3_KU_KEY_AGREEMENT 0x0008 -# define X509v3_KU_KEY_CERT_SIGN 0x0004 -# define X509v3_KU_CRL_SIGN 0x0002 -# define X509v3_KU_ENCIPHER_ONLY 0x0001 -# define X509v3_KU_DECIPHER_ONLY 0x8000 -# define X509v3_KU_UNDEF 0xffff +/*- + * : + * The KeyUsage BITSTRING is treated as a little-endian integer, hence bit `0` + * is 0x80, while bit `7` is 0x01 (the LSB of the integer value), bit `8` is + * then the MSB of the second octet, or 0x8000. + */ +# define X509v3_KU_DIGITAL_SIGNATURE 0x0080 /* (0) */ +# define X509v3_KU_NON_REPUDIATION 0x0040 /* (1) */ +# define X509v3_KU_KEY_ENCIPHERMENT 0x0020 /* (2) */ +# define X509v3_KU_DATA_ENCIPHERMENT 0x0010 /* (3) */ +# define X509v3_KU_KEY_AGREEMENT 0x0008 /* (4) */ +# define X509v3_KU_KEY_CERT_SIGN 0x0004 /* (5) */ +# define X509v3_KU_CRL_SIGN 0x0002 /* (6) */ +# define X509v3_KU_ENCIPHER_ONLY 0x0001 /* (7) */ +# define X509v3_KU_DECIPHER_ONLY 0x8000 /* (8) */ +# ifndef OPENSSL_NO_DEPRECATED_3_4 +# define X509v3_KU_UNDEF 0xffff /* vestigial, not used */ +# endif struct X509_algor_st { ASN1_OBJECT *algorithm; @@ -462,7 +473,12 @@ typedef struct PBKDF2PARAM_st { X509_ALGOR *prf; } PBKDF2PARAM; -#ifndef OPENSSL_NO_SCRYPT +typedef struct { + X509_ALGOR *keyDerivationFunc; + X509_ALGOR *messageAuthScheme; +} PBMAC1PARAM; + +# ifndef OPENSSL_NO_SCRYPT typedef struct SCRYPT_PARAMS_st { ASN1_OCTET_STRING *salt; ASN1_INTEGER *costParameter; @@ -470,7 +486,7 @@ typedef struct SCRYPT_PARAMS_st { ASN1_INTEGER *parallelizationParameter; ASN1_INTEGER *keyLength; } SCRYPT_PARAMS; -#endif +# endif #ifdef __cplusplus } @@ -603,6 +619,8 @@ EVP_PKEY *d2i_PrivateKey_ex_fp(FILE *fp, EVP_PKEY **a, OSSL_LIB_CTX *libctx, const char *propq); EVP_PKEY *d2i_PrivateKey_fp(FILE *fp, EVP_PKEY **a); int i2d_PUBKEY_fp(FILE *fp, const EVP_PKEY *pkey); +EVP_PKEY *d2i_PUBKEY_ex_fp(FILE *fp, EVP_PKEY **a, OSSL_LIB_CTX *libctx, + const char *propq); EVP_PKEY *d2i_PUBKEY_fp(FILE *fp, EVP_PKEY **a); # endif @@ -651,6 +669,8 @@ EVP_PKEY *d2i_PrivateKey_ex_bio(BIO *bp, EVP_PKEY **a, OSSL_LIB_CTX *libctx, const char *propq); EVP_PKEY *d2i_PrivateKey_bio(BIO *bp, EVP_PKEY **a); int i2d_PUBKEY_bio(BIO *bp, const EVP_PKEY *pkey); +EVP_PKEY *d2i_PUBKEY_ex_bio(BIO *bp, EVP_PKEY **a, OSSL_LIB_CTX *libctx, + const char *propq); EVP_PKEY *d2i_PUBKEY_bio(BIO *bp, EVP_PKEY **a); DECLARE_ASN1_DUP_FUNCTION(X509) @@ -884,12 +904,12 @@ int X509_REQ_get_signature_nid(const X509_REQ *req); int i2d_re_X509_REQ_tbs(X509_REQ *req, unsigned char **pp); int X509_REQ_set_pubkey(X509_REQ *x, EVP_PKEY *pkey); EVP_PKEY *X509_REQ_get_pubkey(X509_REQ *req); -EVP_PKEY *X509_REQ_get0_pubkey(X509_REQ *req); +EVP_PKEY *X509_REQ_get0_pubkey(const X509_REQ *req); X509_PUBKEY *X509_REQ_get_X509_PUBKEY(X509_REQ *req); int X509_REQ_extension_nid(int nid); int *X509_REQ_get_extension_nids(void); void X509_REQ_set_extension_nids(int *nids); -STACK_OF(X509_EXTENSION) *X509_REQ_get_extensions(X509_REQ *req); +STACK_OF(X509_EXTENSION) *X509_REQ_get_extensions(OSSL_FUTURE_CONST X509_REQ *req); int X509_REQ_add_extensions_nid(X509_REQ *req, const STACK_OF(X509_EXTENSION) *exts, int nid); int X509_REQ_add_extensions(X509_REQ *req, const STACK_OF(X509_EXTENSION) *ext); @@ -950,13 +970,14 @@ X509_REVOKED_get0_extensions(const X509_REVOKED *r); X509_CRL *X509_CRL_diff(X509_CRL *base, X509_CRL *newer, EVP_PKEY *skey, const EVP_MD *md, unsigned int flags); -int X509_REQ_check_private_key(X509_REQ *x509, EVP_PKEY *pkey); +int X509_REQ_check_private_key(const X509_REQ *req, EVP_PKEY *pkey); -int X509_check_private_key(const X509 *x509, const EVP_PKEY *pkey); +int X509_check_private_key(const X509 *cert, const EVP_PKEY *pkey); int X509_chain_check_suiteb(int *perror_depth, X509 *x, STACK_OF(X509) *chain, unsigned long flags); int X509_CRL_check_suiteb(X509_CRL *crl, EVP_PKEY *pk, unsigned long flags); +void OSSL_STACK_OF_X509_free(STACK_OF(X509) *certs); STACK_OF(X509) *X509_chain_up_ref(STACK_OF(X509) *chain); int X509_issuer_and_serial_cmp(const X509 *a, const X509 *b); @@ -1077,6 +1098,8 @@ X509_EXTENSION *X509v3_get_ext(const STACK_OF(X509_EXTENSION) *x, int loc); X509_EXTENSION *X509v3_delete_ext(STACK_OF(X509_EXTENSION) *x, int loc); STACK_OF(X509_EXTENSION) *X509v3_add_ext(STACK_OF(X509_EXTENSION) **x, X509_EXTENSION *ex, int loc); +STACK_OF(X509_EXTENSION) *X509v3_add_extensions(STACK_OF(X509_EXTENSION) **target, + const STACK_OF(X509_EXTENSION) *exts); int X509_get_ext_count(const X509 *x); int X509_get_ext_by_NID(const X509 *x, int nid, int lastpos); @@ -1198,9 +1221,10 @@ X509 *X509_find_by_subject(STACK_OF(X509) *sk, const X509_NAME *name); DECLARE_ASN1_FUNCTIONS(PBEPARAM) DECLARE_ASN1_FUNCTIONS(PBE2PARAM) DECLARE_ASN1_FUNCTIONS(PBKDF2PARAM) -#ifndef OPENSSL_NO_SCRYPT +DECLARE_ASN1_FUNCTIONS(PBMAC1PARAM) +# ifndef OPENSSL_NO_SCRYPT DECLARE_ASN1_FUNCTIONS(SCRYPT_PARAMS) -#endif +# endif int PKCS5_pbe_set0_algor(X509_ALGOR *algor, int alg, int iter, const unsigned char *salt, int saltlen); @@ -1237,6 +1261,7 @@ X509_ALGOR *PKCS5_pbkdf2_set_ex(int iter, unsigned char *salt, int saltlen, int prf_nid, int keylen, OSSL_LIB_CTX *libctx); +PBKDF2PARAM *PBMAC1_get1_pbkdf2_param(const X509_ALGOR *macalg); /* PKCS#8 utilities */ DECLARE_ASN1_FUNCTIONS(PKCS8_PRIV_KEY_INFO) @@ -1262,6 +1287,8 @@ int PKCS8_pkey_add1_attr_by_OBJ(PKCS8_PRIV_KEY_INFO *p8, const ASN1_OBJECT *obj, int type, const unsigned char *bytes, int len); +void X509_PUBKEY_set0_public_key(X509_PUBKEY *pub, + unsigned char *penc, int penclen); int X509_PUBKEY_set0_param(X509_PUBKEY *pub, ASN1_OBJECT *aobj, int ptype, void *pval, unsigned char *penc, int penclen); diff --git a/deps/openssl/config/archs/aix64-gcc-as/no-asm/include/openssl/x509_acert.h b/deps/openssl/config/archs/aix64-gcc-as/no-asm/include/openssl/x509_acert.h new file mode 100644 index 00000000000000..9dde625677f9a9 --- /dev/null +++ b/deps/openssl/config/archs/aix64-gcc-as/no-asm/include/openssl/x509_acert.h @@ -0,0 +1,294 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from include/openssl/x509_acert.h.in + * + * Copyright 2022-2024 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + + +#ifndef OPENSSL_X509_ACERT_H +# define OPENSSL_X509_ACERT_H +# pragma once + +# include +# include +# include + +typedef struct X509_acert_st X509_ACERT; +typedef struct X509_acert_info_st X509_ACERT_INFO; +typedef struct ossl_object_digest_info_st OSSL_OBJECT_DIGEST_INFO; +typedef struct ossl_issuer_serial_st OSSL_ISSUER_SERIAL; +typedef struct X509_acert_issuer_v2form_st X509_ACERT_ISSUER_V2FORM; + +DECLARE_ASN1_FUNCTIONS(X509_ACERT) +DECLARE_ASN1_DUP_FUNCTION(X509_ACERT) +DECLARE_ASN1_ITEM(X509_ACERT_INFO) +DECLARE_ASN1_ALLOC_FUNCTIONS(X509_ACERT_INFO) +DECLARE_ASN1_ALLOC_FUNCTIONS(OSSL_OBJECT_DIGEST_INFO) +DECLARE_ASN1_ALLOC_FUNCTIONS(OSSL_ISSUER_SERIAL) +DECLARE_ASN1_ALLOC_FUNCTIONS(X509_ACERT_ISSUER_V2FORM) + +# ifndef OPENSSL_NO_STDIO +X509_ACERT *d2i_X509_ACERT_fp(FILE *fp, X509_ACERT **acert); +int i2d_X509_ACERT_fp(FILE *fp, const X509_ACERT *acert); +# endif + +DECLARE_PEM_rw(X509_ACERT, X509_ACERT) + +X509_ACERT *d2i_X509_ACERT_bio(BIO *bp, X509_ACERT **acert); +int i2d_X509_ACERT_bio(BIO *bp, const X509_ACERT *acert); + +int X509_ACERT_sign(X509_ACERT *x, EVP_PKEY *pkey, const EVP_MD *md); +int X509_ACERT_sign_ctx(X509_ACERT *x, EVP_MD_CTX *ctx); +int X509_ACERT_verify(X509_ACERT *a, EVP_PKEY *r); + +# define X509_ACERT_VERSION_2 1 + +const GENERAL_NAMES *X509_ACERT_get0_holder_entityName(const X509_ACERT *x); +const OSSL_ISSUER_SERIAL *X509_ACERT_get0_holder_baseCertId(const X509_ACERT *x); +const OSSL_OBJECT_DIGEST_INFO * X509_ACERT_get0_holder_digest(const X509_ACERT *x); +const X509_NAME *X509_ACERT_get0_issuerName(const X509_ACERT *x); +long X509_ACERT_get_version(const X509_ACERT *x); +void X509_ACERT_get0_signature(const X509_ACERT *x, + const ASN1_BIT_STRING **psig, + const X509_ALGOR **palg); +int X509_ACERT_get_signature_nid(const X509_ACERT *x); +const X509_ALGOR *X509_ACERT_get0_info_sigalg(const X509_ACERT *x); +const ASN1_INTEGER *X509_ACERT_get0_serialNumber(const X509_ACERT *x); +const ASN1_TIME *X509_ACERT_get0_notBefore(const X509_ACERT *x); +const ASN1_TIME *X509_ACERT_get0_notAfter(const X509_ACERT *x); +const ASN1_BIT_STRING *X509_ACERT_get0_issuerUID(const X509_ACERT *x); + +int X509_ACERT_print(BIO *bp, X509_ACERT *x); +int X509_ACERT_print_ex(BIO *bp, X509_ACERT *x, unsigned long nmflags, + unsigned long cflag); + +int X509_ACERT_get_attr_count(const X509_ACERT *x); +int X509_ACERT_get_attr_by_NID(const X509_ACERT *x, int nid, int lastpos); +int X509_ACERT_get_attr_by_OBJ(const X509_ACERT *x, const ASN1_OBJECT *obj, + int lastpos); +X509_ATTRIBUTE *X509_ACERT_get_attr(const X509_ACERT *x, int loc); +X509_ATTRIBUTE *X509_ACERT_delete_attr(X509_ACERT *x, int loc); + +void *X509_ACERT_get_ext_d2i(const X509_ACERT *x, int nid, int *crit, int *idx); +int X509_ACERT_add1_ext_i2d(X509_ACERT *x, int nid, void *value, int crit, + unsigned long flags); +const STACK_OF(X509_EXTENSION) *X509_ACERT_get0_extensions(const X509_ACERT *x); + +# define OSSL_OBJECT_DIGEST_INFO_PUBLIC_KEY 0 +# define OSSL_OBJECT_DIGEST_INFO_PUBLIC_KEY_CERT 1 +# define OSSL_OBJECT_DIGEST_INFO_OTHER 2 /* must not be used in RFC 5755 profile */ +int X509_ACERT_set_version(X509_ACERT *x, long version); +void X509_ACERT_set0_holder_entityName(X509_ACERT *x, GENERAL_NAMES *name); +void X509_ACERT_set0_holder_baseCertId(X509_ACERT *x, OSSL_ISSUER_SERIAL *isss); +void X509_ACERT_set0_holder_digest(X509_ACERT *x, + OSSL_OBJECT_DIGEST_INFO *dinfo); + +int X509_ACERT_add1_attr(X509_ACERT *x, X509_ATTRIBUTE *attr); +int X509_ACERT_add1_attr_by_OBJ(X509_ACERT *x, const ASN1_OBJECT *obj, + int type, const void *bytes, int len); +int X509_ACERT_add1_attr_by_NID(X509_ACERT *x, int nid, int type, + const void *bytes, int len); +int X509_ACERT_add1_attr_by_txt(X509_ACERT *x, const char *attrname, int type, + const unsigned char *bytes, int len); +int X509_ACERT_add_attr_nconf(CONF *conf, const char *section, + X509_ACERT *acert); + +int X509_ACERT_set1_issuerName(X509_ACERT *x, const X509_NAME *name); +int X509_ACERT_set1_serialNumber(X509_ACERT *x, const ASN1_INTEGER *serial); +int X509_ACERT_set1_notBefore(X509_ACERT *x, const ASN1_GENERALIZEDTIME *time); +int X509_ACERT_set1_notAfter(X509_ACERT *x, const ASN1_GENERALIZEDTIME *time); + +void OSSL_OBJECT_DIGEST_INFO_get0_digest(const OSSL_OBJECT_DIGEST_INFO *o, + int *digestedObjectType, + const X509_ALGOR **digestAlgorithm, + const ASN1_BIT_STRING **digest); + +int OSSL_OBJECT_DIGEST_INFO_set1_digest(OSSL_OBJECT_DIGEST_INFO *o, + int digestedObjectType, + X509_ALGOR *digestAlgorithm, + ASN1_BIT_STRING *digest); + +const X509_NAME *OSSL_ISSUER_SERIAL_get0_issuer(const OSSL_ISSUER_SERIAL *isss); +const ASN1_INTEGER *OSSL_ISSUER_SERIAL_get0_serial(const OSSL_ISSUER_SERIAL *isss); +const ASN1_BIT_STRING *OSSL_ISSUER_SERIAL_get0_issuerUID(const OSSL_ISSUER_SERIAL *isss); + +int OSSL_ISSUER_SERIAL_set1_issuer(OSSL_ISSUER_SERIAL *isss, + const X509_NAME *issuer); +int OSSL_ISSUER_SERIAL_set1_serial(OSSL_ISSUER_SERIAL *isss, + const ASN1_INTEGER *serial); +int OSSL_ISSUER_SERIAL_set1_issuerUID(OSSL_ISSUER_SERIAL *isss, + const ASN1_BIT_STRING *uid); + +# define OSSL_IETFAS_OCTETS 0 +# define OSSL_IETFAS_OID 1 +# define OSSL_IETFAS_STRING 2 + +typedef struct OSSL_IETF_ATTR_SYNTAX_VALUE_st OSSL_IETF_ATTR_SYNTAX_VALUE; +typedef struct OSSL_IETF_ATTR_SYNTAX_st OSSL_IETF_ATTR_SYNTAX; +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_IETF_ATTR_SYNTAX_VALUE, OSSL_IETF_ATTR_SYNTAX_VALUE, OSSL_IETF_ATTR_SYNTAX_VALUE) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_value(sk, idx) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_value(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), (idx))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_new(cmp) ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_new(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_compfunc_type(cmp))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_new_null() ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_new_null()) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_new_reserve(cmp, n) ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_compfunc_type(cmp), (n))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), (n)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_free(sk) OPENSSL_sk_free(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_delete(sk, i) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_delete(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), (i))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_delete_ptr(sk, ptr) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_pop(sk) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_pop(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_shift(sk) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_shift(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk),ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_freefunc_type(freefunc)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr), (idx)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_set(sk, idx, ptr) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_set(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), (idx), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr), pnum) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_dup(sk) ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_dup(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_copyfunc_type(copyfunc), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_freefunc_type(freefunc))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_set_cmp_func(sk, cmp) ((sk_OSSL_IETF_ATTR_SYNTAX_VALUE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_compfunc_type(cmp))) + + +DECLARE_ASN1_ITEM(OSSL_IETF_ATTR_SYNTAX_VALUE) +DECLARE_ASN1_ALLOC_FUNCTIONS(OSSL_IETF_ATTR_SYNTAX_VALUE) +DECLARE_ASN1_FUNCTIONS(OSSL_IETF_ATTR_SYNTAX) + +const GENERAL_NAMES * +OSSL_IETF_ATTR_SYNTAX_get0_policyAuthority(const OSSL_IETF_ATTR_SYNTAX *a); +void OSSL_IETF_ATTR_SYNTAX_set0_policyAuthority(OSSL_IETF_ATTR_SYNTAX *a, + GENERAL_NAMES *names); + +int OSSL_IETF_ATTR_SYNTAX_get_value_num(const OSSL_IETF_ATTR_SYNTAX *a); +void *OSSL_IETF_ATTR_SYNTAX_get0_value(const OSSL_IETF_ATTR_SYNTAX *a, + int ind, int *type); +int OSSL_IETF_ATTR_SYNTAX_add1_value(OSSL_IETF_ATTR_SYNTAX *a, int type, + void *data); +int OSSL_IETF_ATTR_SYNTAX_print(BIO *bp, OSSL_IETF_ATTR_SYNTAX *a, int indent); + +struct TARGET_CERT_st { + OSSL_ISSUER_SERIAL *targetCertificate; + GENERAL_NAME *targetName; + OSSL_OBJECT_DIGEST_INFO *certDigestInfo; +}; + +typedef struct TARGET_CERT_st OSSL_TARGET_CERT; + +# define OSSL_TGT_TARGET_NAME 0 +# define OSSL_TGT_TARGET_GROUP 1 +# define OSSL_TGT_TARGET_CERT 2 + +typedef struct TARGET_st { + int type; + union { + GENERAL_NAME *targetName; + GENERAL_NAME *targetGroup; + OSSL_TARGET_CERT *targetCert; + } choice; +} OSSL_TARGET; + +typedef STACK_OF(OSSL_TARGET) OSSL_TARGETS; +typedef STACK_OF(OSSL_TARGETS) OSSL_TARGETING_INFORMATION; + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_TARGET, OSSL_TARGET, OSSL_TARGET) +#define sk_OSSL_TARGET_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_value(sk, idx) ((OSSL_TARGET *)OPENSSL_sk_value(ossl_check_const_OSSL_TARGET_sk_type(sk), (idx))) +#define sk_OSSL_TARGET_new(cmp) ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_new(ossl_check_OSSL_TARGET_compfunc_type(cmp))) +#define sk_OSSL_TARGET_new_null() ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_new_null()) +#define sk_OSSL_TARGET_new_reserve(cmp, n) ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_TARGET_compfunc_type(cmp), (n))) +#define sk_OSSL_TARGET_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_TARGET_sk_type(sk), (n)) +#define sk_OSSL_TARGET_free(sk) OPENSSL_sk_free(ossl_check_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_delete(sk, i) ((OSSL_TARGET *)OPENSSL_sk_delete(ossl_check_OSSL_TARGET_sk_type(sk), (i))) +#define sk_OSSL_TARGET_delete_ptr(sk, ptr) ((OSSL_TARGET *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr))) +#define sk_OSSL_TARGET_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr)) +#define sk_OSSL_TARGET_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr)) +#define sk_OSSL_TARGET_pop(sk) ((OSSL_TARGET *)OPENSSL_sk_pop(ossl_check_OSSL_TARGET_sk_type(sk))) +#define sk_OSSL_TARGET_shift(sk) ((OSSL_TARGET *)OPENSSL_sk_shift(ossl_check_OSSL_TARGET_sk_type(sk))) +#define sk_OSSL_TARGET_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_TARGET_sk_type(sk),ossl_check_OSSL_TARGET_freefunc_type(freefunc)) +#define sk_OSSL_TARGET_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr), (idx)) +#define sk_OSSL_TARGET_set(sk, idx, ptr) ((OSSL_TARGET *)OPENSSL_sk_set(ossl_check_OSSL_TARGET_sk_type(sk), (idx), ossl_check_OSSL_TARGET_type(ptr))) +#define sk_OSSL_TARGET_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr)) +#define sk_OSSL_TARGET_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr)) +#define sk_OSSL_TARGET_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr), pnum) +#define sk_OSSL_TARGET_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_dup(sk) ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_dup(ossl_check_const_OSSL_TARGET_sk_type(sk))) +#define sk_OSSL_TARGET_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_copyfunc_type(copyfunc), ossl_check_OSSL_TARGET_freefunc_type(freefunc))) +#define sk_OSSL_TARGET_set_cmp_func(sk, cmp) ((sk_OSSL_TARGET_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_compfunc_type(cmp))) + + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_TARGETS, OSSL_TARGETS, OSSL_TARGETS) +#define sk_OSSL_TARGETS_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_value(sk, idx) ((OSSL_TARGETS *)OPENSSL_sk_value(ossl_check_const_OSSL_TARGETS_sk_type(sk), (idx))) +#define sk_OSSL_TARGETS_new(cmp) ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_new(ossl_check_OSSL_TARGETS_compfunc_type(cmp))) +#define sk_OSSL_TARGETS_new_null() ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_new_null()) +#define sk_OSSL_TARGETS_new_reserve(cmp, n) ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_TARGETS_compfunc_type(cmp), (n))) +#define sk_OSSL_TARGETS_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_TARGETS_sk_type(sk), (n)) +#define sk_OSSL_TARGETS_free(sk) OPENSSL_sk_free(ossl_check_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_delete(sk, i) ((OSSL_TARGETS *)OPENSSL_sk_delete(ossl_check_OSSL_TARGETS_sk_type(sk), (i))) +#define sk_OSSL_TARGETS_delete_ptr(sk, ptr) ((OSSL_TARGETS *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr))) +#define sk_OSSL_TARGETS_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr)) +#define sk_OSSL_TARGETS_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr)) +#define sk_OSSL_TARGETS_pop(sk) ((OSSL_TARGETS *)OPENSSL_sk_pop(ossl_check_OSSL_TARGETS_sk_type(sk))) +#define sk_OSSL_TARGETS_shift(sk) ((OSSL_TARGETS *)OPENSSL_sk_shift(ossl_check_OSSL_TARGETS_sk_type(sk))) +#define sk_OSSL_TARGETS_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_TARGETS_sk_type(sk),ossl_check_OSSL_TARGETS_freefunc_type(freefunc)) +#define sk_OSSL_TARGETS_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr), (idx)) +#define sk_OSSL_TARGETS_set(sk, idx, ptr) ((OSSL_TARGETS *)OPENSSL_sk_set(ossl_check_OSSL_TARGETS_sk_type(sk), (idx), ossl_check_OSSL_TARGETS_type(ptr))) +#define sk_OSSL_TARGETS_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr)) +#define sk_OSSL_TARGETS_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr)) +#define sk_OSSL_TARGETS_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr), pnum) +#define sk_OSSL_TARGETS_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_dup(sk) ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_dup(ossl_check_const_OSSL_TARGETS_sk_type(sk))) +#define sk_OSSL_TARGETS_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_copyfunc_type(copyfunc), ossl_check_OSSL_TARGETS_freefunc_type(freefunc))) +#define sk_OSSL_TARGETS_set_cmp_func(sk, cmp) ((sk_OSSL_TARGETS_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_compfunc_type(cmp))) + + +DECLARE_ASN1_FUNCTIONS(OSSL_TARGET) +DECLARE_ASN1_FUNCTIONS(OSSL_TARGETS) +DECLARE_ASN1_FUNCTIONS(OSSL_TARGETING_INFORMATION) + +typedef STACK_OF(OSSL_ISSUER_SERIAL) OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX; +DECLARE_ASN1_FUNCTIONS(OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ISSUER_SERIAL, OSSL_ISSUER_SERIAL, OSSL_ISSUER_SERIAL) +#define sk_OSSL_ISSUER_SERIAL_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_value(sk, idx) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_value(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk), (idx))) +#define sk_OSSL_ISSUER_SERIAL_new(cmp) ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_new(ossl_check_OSSL_ISSUER_SERIAL_compfunc_type(cmp))) +#define sk_OSSL_ISSUER_SERIAL_new_null() ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ISSUER_SERIAL_new_reserve(cmp, n) ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ISSUER_SERIAL_compfunc_type(cmp), (n))) +#define sk_OSSL_ISSUER_SERIAL_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), (n)) +#define sk_OSSL_ISSUER_SERIAL_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_delete(sk, i) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_delete(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), (i))) +#define sk_OSSL_ISSUER_SERIAL_delete_ptr(sk, ptr) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr))) +#define sk_OSSL_ISSUER_SERIAL_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr)) +#define sk_OSSL_ISSUER_SERIAL_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr)) +#define sk_OSSL_ISSUER_SERIAL_pop(sk) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_pop(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk))) +#define sk_OSSL_ISSUER_SERIAL_shift(sk) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_shift(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk))) +#define sk_OSSL_ISSUER_SERIAL_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk),ossl_check_OSSL_ISSUER_SERIAL_freefunc_type(freefunc)) +#define sk_OSSL_ISSUER_SERIAL_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr), (idx)) +#define sk_OSSL_ISSUER_SERIAL_set(sk, idx, ptr) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_set(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), (idx), ossl_check_OSSL_ISSUER_SERIAL_type(ptr))) +#define sk_OSSL_ISSUER_SERIAL_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr)) +#define sk_OSSL_ISSUER_SERIAL_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr)) +#define sk_OSSL_ISSUER_SERIAL_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr), pnum) +#define sk_OSSL_ISSUER_SERIAL_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_dup(sk) ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk))) +#define sk_OSSL_ISSUER_SERIAL_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_copyfunc_type(copyfunc), ossl_check_OSSL_ISSUER_SERIAL_freefunc_type(freefunc))) +#define sk_OSSL_ISSUER_SERIAL_set_cmp_func(sk, cmp) ((sk_OSSL_ISSUER_SERIAL_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_compfunc_type(cmp))) + + +#endif diff --git a/deps/openssl/config/archs/aix64-gcc-as/no-asm/include/openssl/x509_vfy.h b/deps/openssl/config/archs/aix64-gcc-as/no-asm/include/openssl/x509_vfy.h index 29b0e147adcab1..c9bdc3b39d685d 100644 --- a/deps/openssl/config/archs/aix64-gcc-as/no-asm/include/openssl/x509_vfy.h +++ b/deps/openssl/config/archs/aix64-gcc-as/no-asm/include/openssl/x509_vfy.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/x509_vfy.h.in * - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -411,6 +411,7 @@ X509_LOOKUP_ctrl_ex((x), X509_L_ADD_STORE, (name), 0, NULL, \ # define X509_V_ERR_CA_CERT_MISSING_KEY_USAGE 92 # define X509_V_ERR_EXTENSIONS_REQUIRE_VERSION_3 93 # define X509_V_ERR_EC_KEY_EXPLICIT_PARAMS 94 +# define X509_V_ERR_RPK_UNTRUSTED 95 /* Certificate verify flags */ # ifndef OPENSSL_NO_DEPRECATED_1_1_0 @@ -491,71 +492,72 @@ int X509_OBJECT_set1_X509(X509_OBJECT *a, X509 *obj); X509_CRL *X509_OBJECT_get0_X509_CRL(const X509_OBJECT *a); int X509_OBJECT_set1_X509_CRL(X509_OBJECT *a, X509_CRL *obj); X509_STORE *X509_STORE_new(void); -void X509_STORE_free(X509_STORE *v); -int X509_STORE_lock(X509_STORE *ctx); -int X509_STORE_unlock(X509_STORE *ctx); -int X509_STORE_up_ref(X509_STORE *v); -STACK_OF(X509_OBJECT) *X509_STORE_get0_objects(const X509_STORE *v); -STACK_OF(X509) *X509_STORE_get1_all_certs(X509_STORE *st); -STACK_OF(X509) *X509_STORE_CTX_get1_certs(X509_STORE_CTX *st, +void X509_STORE_free(X509_STORE *xs); +int X509_STORE_lock(X509_STORE *xs); +int X509_STORE_unlock(X509_STORE *xs); +int X509_STORE_up_ref(X509_STORE *xs); +STACK_OF(X509_OBJECT) *X509_STORE_get0_objects(const X509_STORE *xs); +STACK_OF(X509_OBJECT) *X509_STORE_get1_objects(X509_STORE *xs); +STACK_OF(X509) *X509_STORE_get1_all_certs(X509_STORE *xs); +STACK_OF(X509) *X509_STORE_CTX_get1_certs(X509_STORE_CTX *xs, const X509_NAME *nm); STACK_OF(X509_CRL) *X509_STORE_CTX_get1_crls(const X509_STORE_CTX *st, const X509_NAME *nm); -int X509_STORE_set_flags(X509_STORE *ctx, unsigned long flags); -int X509_STORE_set_purpose(X509_STORE *ctx, int purpose); -int X509_STORE_set_trust(X509_STORE *ctx, int trust); -int X509_STORE_set1_param(X509_STORE *ctx, const X509_VERIFY_PARAM *pm); -X509_VERIFY_PARAM *X509_STORE_get0_param(const X509_STORE *ctx); +int X509_STORE_set_flags(X509_STORE *xs, unsigned long flags); +int X509_STORE_set_purpose(X509_STORE *xs, int purpose); +int X509_STORE_set_trust(X509_STORE *xs, int trust); +int X509_STORE_set1_param(X509_STORE *xs, const X509_VERIFY_PARAM *pm); +X509_VERIFY_PARAM *X509_STORE_get0_param(const X509_STORE *xs); -void X509_STORE_set_verify(X509_STORE *ctx, X509_STORE_CTX_verify_fn verify); +void X509_STORE_set_verify(X509_STORE *xs, X509_STORE_CTX_verify_fn verify); #define X509_STORE_set_verify_func(ctx, func) \ X509_STORE_set_verify((ctx),(func)) void X509_STORE_CTX_set_verify(X509_STORE_CTX *ctx, X509_STORE_CTX_verify_fn verify); -X509_STORE_CTX_verify_fn X509_STORE_get_verify(const X509_STORE *ctx); -void X509_STORE_set_verify_cb(X509_STORE *ctx, +X509_STORE_CTX_verify_fn X509_STORE_get_verify(const X509_STORE *xs); +void X509_STORE_set_verify_cb(X509_STORE *xs, X509_STORE_CTX_verify_cb verify_cb); # define X509_STORE_set_verify_cb_func(ctx,func) \ X509_STORE_set_verify_cb((ctx),(func)) -X509_STORE_CTX_verify_cb X509_STORE_get_verify_cb(const X509_STORE *ctx); -void X509_STORE_set_get_issuer(X509_STORE *ctx, +X509_STORE_CTX_verify_cb X509_STORE_get_verify_cb(const X509_STORE *xs); +void X509_STORE_set_get_issuer(X509_STORE *xs, X509_STORE_CTX_get_issuer_fn get_issuer); -X509_STORE_CTX_get_issuer_fn X509_STORE_get_get_issuer(const X509_STORE *ctx); -void X509_STORE_set_check_issued(X509_STORE *ctx, +X509_STORE_CTX_get_issuer_fn X509_STORE_get_get_issuer(const X509_STORE *xs); +void X509_STORE_set_check_issued(X509_STORE *xs, X509_STORE_CTX_check_issued_fn check_issued); -X509_STORE_CTX_check_issued_fn X509_STORE_get_check_issued(const X509_STORE *ctx); -void X509_STORE_set_check_revocation(X509_STORE *ctx, +X509_STORE_CTX_check_issued_fn X509_STORE_get_check_issued(const X509_STORE *s); +void X509_STORE_set_check_revocation(X509_STORE *xs, X509_STORE_CTX_check_revocation_fn check_revocation); X509_STORE_CTX_check_revocation_fn - X509_STORE_get_check_revocation(const X509_STORE *ctx); -void X509_STORE_set_get_crl(X509_STORE *ctx, + X509_STORE_get_check_revocation(const X509_STORE *xs); +void X509_STORE_set_get_crl(X509_STORE *xs, X509_STORE_CTX_get_crl_fn get_crl); -X509_STORE_CTX_get_crl_fn X509_STORE_get_get_crl(const X509_STORE *ctx); -void X509_STORE_set_check_crl(X509_STORE *ctx, +X509_STORE_CTX_get_crl_fn X509_STORE_get_get_crl(const X509_STORE *xs); +void X509_STORE_set_check_crl(X509_STORE *xs, X509_STORE_CTX_check_crl_fn check_crl); -X509_STORE_CTX_check_crl_fn X509_STORE_get_check_crl(const X509_STORE *ctx); -void X509_STORE_set_cert_crl(X509_STORE *ctx, +X509_STORE_CTX_check_crl_fn X509_STORE_get_check_crl(const X509_STORE *xs); +void X509_STORE_set_cert_crl(X509_STORE *xs, X509_STORE_CTX_cert_crl_fn cert_crl); -X509_STORE_CTX_cert_crl_fn X509_STORE_get_cert_crl(const X509_STORE *ctx); -void X509_STORE_set_check_policy(X509_STORE *ctx, +X509_STORE_CTX_cert_crl_fn X509_STORE_get_cert_crl(const X509_STORE *xs); +void X509_STORE_set_check_policy(X509_STORE *xs, X509_STORE_CTX_check_policy_fn check_policy); -X509_STORE_CTX_check_policy_fn X509_STORE_get_check_policy(const X509_STORE *ctx); -void X509_STORE_set_lookup_certs(X509_STORE *ctx, +X509_STORE_CTX_check_policy_fn X509_STORE_get_check_policy(const X509_STORE *s); +void X509_STORE_set_lookup_certs(X509_STORE *xs, X509_STORE_CTX_lookup_certs_fn lookup_certs); -X509_STORE_CTX_lookup_certs_fn X509_STORE_get_lookup_certs(const X509_STORE *ctx); -void X509_STORE_set_lookup_crls(X509_STORE *ctx, +X509_STORE_CTX_lookup_certs_fn X509_STORE_get_lookup_certs(const X509_STORE *s); +void X509_STORE_set_lookup_crls(X509_STORE *xs, X509_STORE_CTX_lookup_crls_fn lookup_crls); #define X509_STORE_set_lookup_crls_cb(ctx, func) \ X509_STORE_set_lookup_crls((ctx), (func)) -X509_STORE_CTX_lookup_crls_fn X509_STORE_get_lookup_crls(const X509_STORE *ctx); -void X509_STORE_set_cleanup(X509_STORE *ctx, +X509_STORE_CTX_lookup_crls_fn X509_STORE_get_lookup_crls(const X509_STORE *xs); +void X509_STORE_set_cleanup(X509_STORE *xs, X509_STORE_CTX_cleanup_fn cleanup); -X509_STORE_CTX_cleanup_fn X509_STORE_get_cleanup(const X509_STORE *ctx); +X509_STORE_CTX_cleanup_fn X509_STORE_get_cleanup(const X509_STORE *xs); #define X509_STORE_get_ex_new_index(l, p, newf, dupf, freef) \ CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_X509_STORE, l, p, newf, dupf, freef) -int X509_STORE_set_ex_data(X509_STORE *ctx, int idx, void *data); -void *X509_STORE_get_ex_data(const X509_STORE *ctx, int idx); +int X509_STORE_set_ex_data(X509_STORE *xs, int idx, void *data); +void *X509_STORE_get_ex_data(const X509_STORE *xs, int idx); X509_STORE_CTX *X509_STORE_CTX_new_ex(OSSL_LIB_CTX *libctx, const char *propq); X509_STORE_CTX *X509_STORE_CTX_new(void); @@ -565,11 +567,14 @@ int X509_STORE_CTX_get1_issuer(X509 **issuer, X509_STORE_CTX *ctx, X509 *x); void X509_STORE_CTX_free(X509_STORE_CTX *ctx); int X509_STORE_CTX_init(X509_STORE_CTX *ctx, X509_STORE *trust_store, X509 *target, STACK_OF(X509) *untrusted); +int X509_STORE_CTX_init_rpk(X509_STORE_CTX *ctx, X509_STORE *trust_store, + EVP_PKEY* rpk); void X509_STORE_CTX_set0_trusted_stack(X509_STORE_CTX *ctx, STACK_OF(X509) *sk); void X509_STORE_CTX_cleanup(X509_STORE_CTX *ctx); X509_STORE *X509_STORE_CTX_get0_store(const X509_STORE_CTX *ctx); X509 *X509_STORE_CTX_get0_cert(const X509_STORE_CTX *ctx); +EVP_PKEY *X509_STORE_CTX_get0_rpk(const X509_STORE_CTX *ctx); STACK_OF(X509)* X509_STORE_CTX_get0_untrusted(const X509_STORE_CTX *ctx); void X509_STORE_CTX_set0_untrusted(X509_STORE_CTX *ctx, STACK_OF(X509) *sk); void X509_STORE_CTX_set_verify_cb(X509_STORE_CTX *ctx, @@ -579,6 +584,8 @@ X509_STORE_CTX_verify_fn X509_STORE_CTX_get_verify(const X509_STORE_CTX *ctx); X509_STORE_CTX_get_issuer_fn X509_STORE_CTX_get_get_issuer(const X509_STORE_CTX *ctx); X509_STORE_CTX_check_issued_fn X509_STORE_CTX_get_check_issued(const X509_STORE_CTX *ctx); X509_STORE_CTX_check_revocation_fn X509_STORE_CTX_get_check_revocation(const X509_STORE_CTX *ctx); +void X509_STORE_CTX_set_get_crl(X509_STORE_CTX *ctx, + X509_STORE_CTX_get_crl_fn get_crl); X509_STORE_CTX_get_crl_fn X509_STORE_CTX_get_get_crl(const X509_STORE_CTX *ctx); X509_STORE_CTX_check_crl_fn X509_STORE_CTX_get_check_crl(const X509_STORE_CTX *ctx); X509_STORE_CTX_cert_crl_fn X509_STORE_CTX_get_cert_crl(const X509_STORE_CTX *ctx); @@ -600,7 +607,7 @@ X509_STORE_CTX_cleanup_fn X509_STORE_CTX_get_cleanup(const X509_STORE_CTX *ctx); # define X509_STORE_get1_crl X509_STORE_CTX_get1_crls #endif -X509_LOOKUP *X509_STORE_add_lookup(X509_STORE *v, X509_LOOKUP_METHOD *m); +X509_LOOKUP *X509_STORE_add_lookup(X509_STORE *xs, X509_LOOKUP_METHOD *m); X509_LOOKUP_METHOD *X509_LOOKUP_hash_dir(void); X509_LOOKUP_METHOD *X509_LOOKUP_file(void); X509_LOOKUP_METHOD *X509_LOOKUP_store(void); @@ -685,8 +692,8 @@ X509_LOOKUP_get_by_alias_fn X509_LOOKUP_meth_get_get_by_alias( const X509_LOOKUP_METHOD *method); -int X509_STORE_add_cert(X509_STORE *ctx, X509 *x); -int X509_STORE_add_crl(X509_STORE *ctx, X509_CRL *x); +int X509_STORE_add_cert(X509_STORE *xs, X509 *x); +int X509_STORE_add_crl(X509_STORE *xs, X509_CRL *x); int X509_STORE_CTX_get_by_subject(const X509_STORE_CTX *vs, X509_LOOKUP_TYPE type, @@ -730,23 +737,21 @@ void *X509_LOOKUP_get_method_data(const X509_LOOKUP *ctx); X509_STORE *X509_LOOKUP_get_store(const X509_LOOKUP *ctx); int X509_LOOKUP_shutdown(X509_LOOKUP *ctx); -int X509_STORE_load_file(X509_STORE *ctx, const char *file); -int X509_STORE_load_path(X509_STORE *ctx, const char *path); -int X509_STORE_load_store(X509_STORE *ctx, const char *store); -int X509_STORE_load_locations(X509_STORE *ctx, - const char *file, - const char *dir); -int X509_STORE_set_default_paths(X509_STORE *ctx); +int X509_STORE_load_file(X509_STORE *xs, const char *file); +int X509_STORE_load_path(X509_STORE *xs, const char *path); +int X509_STORE_load_store(X509_STORE *xs, const char *store); +int X509_STORE_load_locations(X509_STORE *s, const char *file, const char *dir); +int X509_STORE_set_default_paths(X509_STORE *xs); -int X509_STORE_load_file_ex(X509_STORE *ctx, const char *file, +int X509_STORE_load_file_ex(X509_STORE *xs, const char *file, OSSL_LIB_CTX *libctx, const char *propq); -int X509_STORE_load_store_ex(X509_STORE *ctx, const char *store, +int X509_STORE_load_store_ex(X509_STORE *xs, const char *store, OSSL_LIB_CTX *libctx, const char *propq); -int X509_STORE_load_locations_ex(X509_STORE *ctx, const char *file, - const char *dir, OSSL_LIB_CTX *libctx, - const char *propq); -int X509_STORE_set_default_paths_ex(X509_STORE *ctx, OSSL_LIB_CTX *libctx, - const char *propq); +int X509_STORE_load_locations_ex(X509_STORE *xs, + const char *file, const char *dir, + OSSL_LIB_CTX *libctx, const char *propq); +int X509_STORE_set_default_paths_ex(X509_STORE *xs, + OSSL_LIB_CTX *libctx, const char *propq); #define X509_STORE_CTX_get_ex_new_index(l, p, newf, dupf, freef) \ CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_X509_STORE_CTX, l, p, newf, dupf, freef) @@ -764,6 +769,7 @@ X509_STORE_CTX *X509_STORE_CTX_get0_parent_ctx(const X509_STORE_CTX *ctx); STACK_OF(X509) *X509_STORE_CTX_get0_chain(const X509_STORE_CTX *ctx); STACK_OF(X509) *X509_STORE_CTX_get1_chain(const X509_STORE_CTX *ctx); void X509_STORE_CTX_set_cert(X509_STORE_CTX *ctx, X509 *target); +void X509_STORE_CTX_set0_rpk(X509_STORE_CTX *ctx, EVP_PKEY *target); void X509_STORE_CTX_set0_verified_chain(X509_STORE_CTX *c, STACK_OF(X509) *sk); void X509_STORE_CTX_set0_crls(X509_STORE_CTX *ctx, STACK_OF(X509_CRL) *sk); int X509_STORE_CTX_set_purpose(X509_STORE_CTX *ctx, int purpose); @@ -773,6 +779,8 @@ int X509_STORE_CTX_purpose_inherit(X509_STORE_CTX *ctx, int def_purpose, void X509_STORE_CTX_set_flags(X509_STORE_CTX *ctx, unsigned long flags); void X509_STORE_CTX_set_time(X509_STORE_CTX *ctx, unsigned long flags, time_t t); +void X509_STORE_CTX_set_current_reasons(X509_STORE_CTX *ctx, + unsigned int current_reasons); X509_POLICY_TREE *X509_STORE_CTX_get0_policy_tree(const X509_STORE_CTX *ctx); int X509_STORE_CTX_get_explicit_policy(const X509_STORE_CTX *ctx); @@ -804,6 +812,7 @@ int X509_VERIFY_PARAM_clear_flags(X509_VERIFY_PARAM *param, unsigned long flags); unsigned long X509_VERIFY_PARAM_get_flags(const X509_VERIFY_PARAM *param); int X509_VERIFY_PARAM_set_purpose(X509_VERIFY_PARAM *param, int purpose); +int X509_VERIFY_PARAM_get_purpose(const X509_VERIFY_PARAM *param); int X509_VERIFY_PARAM_set_trust(X509_VERIFY_PARAM *param, int trust); void X509_VERIFY_PARAM_set_depth(X509_VERIFY_PARAM *param, int depth); void X509_VERIFY_PARAM_set_auth_level(X509_VERIFY_PARAM *param, int auth_level); diff --git a/deps/openssl/config/archs/aix64-gcc-as/no-asm/include/openssl/x509v3.h b/deps/openssl/config/archs/aix64-gcc-as/no-asm/include/openssl/x509v3.h index 20b67455f2061d..b8dabac35a4915 100644 --- a/deps/openssl/config/archs/aix64-gcc-as/no-asm/include/openssl/x509v3.h +++ b/deps/openssl/config/archs/aix64-gcc-as/no-asm/include/openssl/x509v3.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/x509v3.h.in * - * Copyright 1999-2023 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1999-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -25,6 +25,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -146,6 +149,11 @@ typedef struct BASIC_CONSTRAINTS_st { ASN1_INTEGER *pathlen; } BASIC_CONSTRAINTS; +typedef struct OSSL_BASIC_ATTR_CONSTRAINTS_st { + int authority; + ASN1_INTEGER *pathlen; +} OSSL_BASIC_ATTR_CONSTRAINTS; + typedef struct PKEY_USAGE_PERIOD_st { ASN1_GENERALIZEDTIME *notBefore; ASN1_GENERALIZEDTIME *notAfter; @@ -198,6 +206,8 @@ typedef struct ACCESS_DESCRIPTION_st { GENERAL_NAME *location; } ACCESS_DESCRIPTION; +int GENERAL_NAME_set1_X509_NAME(GENERAL_NAME **tgt, const X509_NAME *src); + SKM_DEFINE_STACK_OF_INTERNAL(ACCESS_DESCRIPTION, ACCESS_DESCRIPTION, ACCESS_DESCRIPTION) #define sk_ACCESS_DESCRIPTION_num(sk) OPENSSL_sk_num(ossl_check_const_ACCESS_DESCRIPTION_sk_type(sk)) #define sk_ACCESS_DESCRIPTION_value(sk, idx) ((ACCESS_DESCRIPTION *)OPENSSL_sk_value(ossl_check_const_ACCESS_DESCRIPTION_sk_type(sk), (idx))) @@ -294,6 +304,7 @@ typedef struct DIST_POINT_NAME_st { /* If relativename then this contains the full distribution point name */ X509_NAME *dpname; } DIST_POINT_NAME; +DECLARE_ASN1_DUP_FUNCTION(DIST_POINT_NAME) /* All existing reasons */ # define CRLDP_ALL_REASONS 0x807f @@ -659,15 +670,16 @@ struct ISSUING_DIST_POINT_st { # define EXFLAG_SAN_CRITICAL 0x80000 # define EXFLAG_NO_FINGERPRINT 0x100000 -# define KU_DIGITAL_SIGNATURE 0x0080 -# define KU_NON_REPUDIATION 0x0040 -# define KU_KEY_ENCIPHERMENT 0x0020 -# define KU_DATA_ENCIPHERMENT 0x0010 -# define KU_KEY_AGREEMENT 0x0008 -# define KU_KEY_CERT_SIGN 0x0004 -# define KU_CRL_SIGN 0x0002 -# define KU_ENCIPHER_ONLY 0x0001 -# define KU_DECIPHER_ONLY 0x8000 +/* https://datatracker.ietf.org/doc/html/rfc5280#section-4.2.1.3 */ +# define KU_DIGITAL_SIGNATURE X509v3_KU_DIGITAL_SIGNATURE +# define KU_NON_REPUDIATION X509v3_KU_NON_REPUDIATION +# define KU_KEY_ENCIPHERMENT X509v3_KU_KEY_ENCIPHERMENT +# define KU_DATA_ENCIPHERMENT X509v3_KU_DATA_ENCIPHERMENT +# define KU_KEY_AGREEMENT X509v3_KU_KEY_AGREEMENT +# define KU_KEY_CERT_SIGN X509v3_KU_KEY_CERT_SIGN +# define KU_CRL_SIGN X509v3_KU_CRL_SIGN +# define KU_ENCIPHER_ONLY X509v3_KU_ENCIPHER_ONLY +# define KU_DECIPHER_ONLY X509v3_KU_DECIPHER_ONLY # define NS_SSL_CLIENT 0x80 # define NS_SSL_SERVER 0x40 @@ -729,7 +741,7 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_PURPOSE, X509_PURPOSE, X509_PURPOSE) #define sk_X509_PURPOSE_set_cmp_func(sk, cmp) ((sk_X509_PURPOSE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_X509_PURPOSE_sk_type(sk), ossl_check_X509_PURPOSE_compfunc_type(cmp))) - +# define X509_PURPOSE_DEFAULT_ANY 0 # define X509_PURPOSE_SSL_CLIENT 1 # define X509_PURPOSE_SSL_SERVER 2 # define X509_PURPOSE_NS_SSL_SERVER 3 @@ -739,9 +751,10 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_PURPOSE, X509_PURPOSE, X509_PURPOSE) # define X509_PURPOSE_ANY 7 # define X509_PURPOSE_OCSP_HELPER 8 # define X509_PURPOSE_TIMESTAMP_SIGN 9 +# define X509_PURPOSE_CODE_SIGN 10 # define X509_PURPOSE_MIN 1 -# define X509_PURPOSE_MAX 9 +# define X509_PURPOSE_MAX 10 /* Flags for X509V3_EXT_print() */ @@ -767,6 +780,7 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_PURPOSE, X509_PURPOSE, X509_PURPOSE) # define X509V3_ADD_SILENT 0x10 DECLARE_ASN1_FUNCTIONS(BASIC_CONSTRAINTS) +DECLARE_ASN1_FUNCTIONS(OSSL_BASIC_ATTR_CONSTRAINTS) DECLARE_ASN1_FUNCTIONS(SXNET) DECLARE_ASN1_FUNCTIONS(SXNETID) @@ -976,7 +990,6 @@ int X509V3_extensions_print(BIO *out, const char *title, int X509_check_ca(X509 *x); int X509_check_purpose(X509 *x, int id, int ca); int X509_supported_extension(X509_EXTENSION *ex); -int X509_PURPOSE_set(int *p, int purpose); int X509_check_issued(X509 *issuer, X509 *subject); int X509_check_akid(const X509 *issuer, const AUTHORITY_KEYID *akid); void X509_set_proxy_flag(X509 *x); @@ -992,22 +1005,26 @@ const GENERAL_NAMES *X509_get0_authority_issuer(X509 *x); const ASN1_INTEGER *X509_get0_authority_serial(X509 *x); int X509_PURPOSE_get_count(void); -X509_PURPOSE *X509_PURPOSE_get0(int idx); +int X509_PURPOSE_get_unused_id(OSSL_LIB_CTX *libctx); int X509_PURPOSE_get_by_sname(const char *sname); int X509_PURPOSE_get_by_id(int id); int X509_PURPOSE_add(int id, int trust, int flags, int (*ck) (const X509_PURPOSE *, const X509 *, int), const char *name, const char *sname, void *arg); +void X509_PURPOSE_cleanup(void); + +X509_PURPOSE *X509_PURPOSE_get0(int idx); +int X509_PURPOSE_get_id(const X509_PURPOSE *); char *X509_PURPOSE_get0_name(const X509_PURPOSE *xp); char *X509_PURPOSE_get0_sname(const X509_PURPOSE *xp); int X509_PURPOSE_get_trust(const X509_PURPOSE *xp); -void X509_PURPOSE_cleanup(void); -int X509_PURPOSE_get_id(const X509_PURPOSE *); +int X509_PURPOSE_set(int *p, int purpose); STACK_OF(OPENSSL_STRING) *X509_get1_email(X509 *x); STACK_OF(OPENSSL_STRING) *X509_REQ_get1_email(X509_REQ *x); void X509_email_free(STACK_OF(OPENSSL_STRING) *sk); STACK_OF(OPENSSL_STRING) *X509_get1_ocsp(X509 *x); + /* Flags for X509_check_* functions */ /* @@ -1444,6 +1461,507 @@ const ASN1_PRINTABLESTRING *PROFESSION_INFO_get0_registrationNumber( void PROFESSION_INFO_set0_registrationNumber( PROFESSION_INFO *pi, ASN1_PRINTABLESTRING *rn); +int OSSL_GENERAL_NAMES_print(BIO *out, GENERAL_NAMES *gens, int indent); + +typedef STACK_OF(X509_ATTRIBUTE) OSSL_ATTRIBUTES_SYNTAX; +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTES_SYNTAX) + +typedef STACK_OF(USERNOTICE) OSSL_USER_NOTICE_SYNTAX; +DECLARE_ASN1_FUNCTIONS(OSSL_USER_NOTICE_SYNTAX) + +SKM_DEFINE_STACK_OF_INTERNAL(USERNOTICE, USERNOTICE, USERNOTICE) +#define sk_USERNOTICE_num(sk) OPENSSL_sk_num(ossl_check_const_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_value(sk, idx) ((USERNOTICE *)OPENSSL_sk_value(ossl_check_const_USERNOTICE_sk_type(sk), (idx))) +#define sk_USERNOTICE_new(cmp) ((STACK_OF(USERNOTICE) *)OPENSSL_sk_new(ossl_check_USERNOTICE_compfunc_type(cmp))) +#define sk_USERNOTICE_new_null() ((STACK_OF(USERNOTICE) *)OPENSSL_sk_new_null()) +#define sk_USERNOTICE_new_reserve(cmp, n) ((STACK_OF(USERNOTICE) *)OPENSSL_sk_new_reserve(ossl_check_USERNOTICE_compfunc_type(cmp), (n))) +#define sk_USERNOTICE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_USERNOTICE_sk_type(sk), (n)) +#define sk_USERNOTICE_free(sk) OPENSSL_sk_free(ossl_check_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_zero(sk) OPENSSL_sk_zero(ossl_check_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_delete(sk, i) ((USERNOTICE *)OPENSSL_sk_delete(ossl_check_USERNOTICE_sk_type(sk), (i))) +#define sk_USERNOTICE_delete_ptr(sk, ptr) ((USERNOTICE *)OPENSSL_sk_delete_ptr(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr))) +#define sk_USERNOTICE_push(sk, ptr) OPENSSL_sk_push(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr)) +#define sk_USERNOTICE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr)) +#define sk_USERNOTICE_pop(sk) ((USERNOTICE *)OPENSSL_sk_pop(ossl_check_USERNOTICE_sk_type(sk))) +#define sk_USERNOTICE_shift(sk) ((USERNOTICE *)OPENSSL_sk_shift(ossl_check_USERNOTICE_sk_type(sk))) +#define sk_USERNOTICE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_USERNOTICE_sk_type(sk),ossl_check_USERNOTICE_freefunc_type(freefunc)) +#define sk_USERNOTICE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr), (idx)) +#define sk_USERNOTICE_set(sk, idx, ptr) ((USERNOTICE *)OPENSSL_sk_set(ossl_check_USERNOTICE_sk_type(sk), (idx), ossl_check_USERNOTICE_type(ptr))) +#define sk_USERNOTICE_find(sk, ptr) OPENSSL_sk_find(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr)) +#define sk_USERNOTICE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr)) +#define sk_USERNOTICE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr), pnum) +#define sk_USERNOTICE_sort(sk) OPENSSL_sk_sort(ossl_check_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_dup(sk) ((STACK_OF(USERNOTICE) *)OPENSSL_sk_dup(ossl_check_const_USERNOTICE_sk_type(sk))) +#define sk_USERNOTICE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(USERNOTICE) *)OPENSSL_sk_deep_copy(ossl_check_const_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_copyfunc_type(copyfunc), ossl_check_USERNOTICE_freefunc_type(freefunc))) +#define sk_USERNOTICE_set_cmp_func(sk, cmp) ((sk_USERNOTICE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_compfunc_type(cmp))) + + +typedef struct OSSL_ROLE_SPEC_CERT_ID_st { + GENERAL_NAME *roleName; + GENERAL_NAME *roleCertIssuer; + ASN1_INTEGER *roleCertSerialNumber; + GENERAL_NAMES *roleCertLocator; +} OSSL_ROLE_SPEC_CERT_ID; + +DECLARE_ASN1_FUNCTIONS(OSSL_ROLE_SPEC_CERT_ID) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ROLE_SPEC_CERT_ID, OSSL_ROLE_SPEC_CERT_ID, OSSL_ROLE_SPEC_CERT_ID) +#define sk_OSSL_ROLE_SPEC_CERT_ID_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_value(sk, idx) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_value(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), (idx))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_new(cmp) ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_new(ossl_check_OSSL_ROLE_SPEC_CERT_ID_compfunc_type(cmp))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_new_null() ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ROLE_SPEC_CERT_ID_new_reserve(cmp, n) ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ROLE_SPEC_CERT_ID_compfunc_type(cmp), (n))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), (n)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_delete(sk, i) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_delete(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), (i))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_delete_ptr(sk, ptr) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_pop(sk) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_pop(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_shift(sk) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_shift(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk),ossl_check_OSSL_ROLE_SPEC_CERT_ID_freefunc_type(freefunc)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr), (idx)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_set(sk, idx, ptr) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_set(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), (idx), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr), pnum) +#define sk_OSSL_ROLE_SPEC_CERT_ID_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_dup(sk) ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_copyfunc_type(copyfunc), ossl_check_OSSL_ROLE_SPEC_CERT_ID_freefunc_type(freefunc))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_set_cmp_func(sk, cmp) ((sk_OSSL_ROLE_SPEC_CERT_ID_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_compfunc_type(cmp))) + + +typedef STACK_OF(OSSL_ROLE_SPEC_CERT_ID) OSSL_ROLE_SPEC_CERT_ID_SYNTAX; + +DECLARE_ASN1_FUNCTIONS(OSSL_ROLE_SPEC_CERT_ID_SYNTAX) +typedef struct OSSL_HASH_st { + X509_ALGOR *algorithmIdentifier; + ASN1_BIT_STRING *hashValue; +} OSSL_HASH; + +typedef struct OSSL_INFO_SYNTAX_POINTER_st { + GENERAL_NAMES *name; + OSSL_HASH *hash; +} OSSL_INFO_SYNTAX_POINTER; + +# define OSSL_INFO_SYNTAX_TYPE_CONTENT 0 +# define OSSL_INFO_SYNTAX_TYPE_POINTER 1 + +typedef struct OSSL_INFO_SYNTAX_st { + int type; + union { + ASN1_STRING *content; + OSSL_INFO_SYNTAX_POINTER *pointer; + } choice; +} OSSL_INFO_SYNTAX; + +typedef struct OSSL_PRIVILEGE_POLICY_ID_st { + ASN1_OBJECT *privilegePolicy; + OSSL_INFO_SYNTAX *privPolSyntax; +} OSSL_PRIVILEGE_POLICY_ID; + +typedef struct OSSL_ATTRIBUTE_DESCRIPTOR_st { + ASN1_OBJECT *identifier; + ASN1_STRING *attributeSyntax; + ASN1_UTF8STRING *name; + ASN1_UTF8STRING *description; + OSSL_PRIVILEGE_POLICY_ID *dominationRule; +} OSSL_ATTRIBUTE_DESCRIPTOR; + +DECLARE_ASN1_FUNCTIONS(OSSL_HASH) +DECLARE_ASN1_FUNCTIONS(OSSL_INFO_SYNTAX) +DECLARE_ASN1_FUNCTIONS(OSSL_INFO_SYNTAX_POINTER) +DECLARE_ASN1_FUNCTIONS(OSSL_PRIVILEGE_POLICY_ID) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_DESCRIPTOR) + +typedef struct OSSL_TIME_SPEC_ABSOLUTE_st { + ASN1_GENERALIZEDTIME *startTime; + ASN1_GENERALIZEDTIME *endTime; +} OSSL_TIME_SPEC_ABSOLUTE; + +typedef struct OSSL_DAY_TIME_st { + ASN1_INTEGER *hour; + ASN1_INTEGER *minute; + ASN1_INTEGER *second; +} OSSL_DAY_TIME; + +typedef struct OSSL_DAY_TIME_BAND_st { + OSSL_DAY_TIME *startDayTime; + OSSL_DAY_TIME *endDayTime; +} OSSL_DAY_TIME_BAND; + +# define OSSL_NAMED_DAY_TYPE_INT 0 +# define OSSL_NAMED_DAY_TYPE_BIT 1 +# define OSSL_NAMED_DAY_INT_SUN 1 +# define OSSL_NAMED_DAY_INT_MON 2 +# define OSSL_NAMED_DAY_INT_TUE 3 +# define OSSL_NAMED_DAY_INT_WED 4 +# define OSSL_NAMED_DAY_INT_THU 5 +# define OSSL_NAMED_DAY_INT_FRI 6 +# define OSSL_NAMED_DAY_INT_SAT 7 +# define OSSL_NAMED_DAY_BIT_SUN 0 +# define OSSL_NAMED_DAY_BIT_MON 1 +# define OSSL_NAMED_DAY_BIT_TUE 2 +# define OSSL_NAMED_DAY_BIT_WED 3 +# define OSSL_NAMED_DAY_BIT_THU 4 +# define OSSL_NAMED_DAY_BIT_FRI 5 +# define OSSL_NAMED_DAY_BIT_SAT 6 + +typedef struct OSSL_NAMED_DAY_st { + int type; + union { + ASN1_INTEGER *intNamedDays; + ASN1_BIT_STRING *bitNamedDays; + } choice; +} OSSL_NAMED_DAY; + +# define OSSL_TIME_SPEC_X_DAY_OF_FIRST 0 +# define OSSL_TIME_SPEC_X_DAY_OF_SECOND 1 +# define OSSL_TIME_SPEC_X_DAY_OF_THIRD 2 +# define OSSL_TIME_SPEC_X_DAY_OF_FOURTH 3 +# define OSSL_TIME_SPEC_X_DAY_OF_FIFTH 4 + +typedef struct OSSL_TIME_SPEC_X_DAY_OF_st { + int type; + union { + OSSL_NAMED_DAY *first; + OSSL_NAMED_DAY *second; + OSSL_NAMED_DAY *third; + OSSL_NAMED_DAY *fourth; + OSSL_NAMED_DAY *fifth; + } choice; +} OSSL_TIME_SPEC_X_DAY_OF; + +# define OSSL_TIME_SPEC_DAY_TYPE_INT 0 +# define OSSL_TIME_SPEC_DAY_TYPE_BIT 1 +# define OSSL_TIME_SPEC_DAY_TYPE_DAY_OF 2 +# define OSSL_TIME_SPEC_DAY_BIT_SUN 0 +# define OSSL_TIME_SPEC_DAY_BIT_MON 1 +# define OSSL_TIME_SPEC_DAY_BIT_TUE 2 +# define OSSL_TIME_SPEC_DAY_BIT_WED 3 +# define OSSL_TIME_SPEC_DAY_BIT_THU 4 +# define OSSL_TIME_SPEC_DAY_BIT_FRI 5 +# define OSSL_TIME_SPEC_DAY_BIT_SAT 6 +# define OSSL_TIME_SPEC_DAY_INT_SUN 1 +# define OSSL_TIME_SPEC_DAY_INT_MON 2 +# define OSSL_TIME_SPEC_DAY_INT_TUE 3 +# define OSSL_TIME_SPEC_DAY_INT_WED 4 +# define OSSL_TIME_SPEC_DAY_INT_THU 5 +# define OSSL_TIME_SPEC_DAY_INT_FRI 6 +# define OSSL_TIME_SPEC_DAY_INT_SAT 7 + +typedef struct OSSL_TIME_SPEC_DAY_st { + int type; + union { + STACK_OF(ASN1_INTEGER) *intDay; + ASN1_BIT_STRING *bitDay; + OSSL_TIME_SPEC_X_DAY_OF *dayOf; + } choice; +} OSSL_TIME_SPEC_DAY; + +# define OSSL_TIME_SPEC_WEEKS_TYPE_ALL 0 +# define OSSL_TIME_SPEC_WEEKS_TYPE_INT 1 +# define OSSL_TIME_SPEC_WEEKS_TYPE_BIT 2 +# define OSSL_TIME_SPEC_BIT_WEEKS_1 0 +# define OSSL_TIME_SPEC_BIT_WEEKS_2 1 +# define OSSL_TIME_SPEC_BIT_WEEKS_3 2 +# define OSSL_TIME_SPEC_BIT_WEEKS_4 3 +# define OSSL_TIME_SPEC_BIT_WEEKS_5 4 + +typedef struct OSSL_TIME_SPEC_WEEKS_st { + int type; + union { + ASN1_NULL *allWeeks; + STACK_OF(ASN1_INTEGER) *intWeek; + ASN1_BIT_STRING *bitWeek; + } choice; +} OSSL_TIME_SPEC_WEEKS; + +# define OSSL_TIME_SPEC_MONTH_TYPE_ALL 0 +# define OSSL_TIME_SPEC_MONTH_TYPE_INT 1 +# define OSSL_TIME_SPEC_MONTH_TYPE_BIT 2 +# define OSSL_TIME_SPEC_INT_MONTH_JAN 1 +# define OSSL_TIME_SPEC_INT_MONTH_FEB 2 +# define OSSL_TIME_SPEC_INT_MONTH_MAR 3 +# define OSSL_TIME_SPEC_INT_MONTH_APR 4 +# define OSSL_TIME_SPEC_INT_MONTH_MAY 5 +# define OSSL_TIME_SPEC_INT_MONTH_JUN 6 +# define OSSL_TIME_SPEC_INT_MONTH_JUL 7 +# define OSSL_TIME_SPEC_INT_MONTH_AUG 8 +# define OSSL_TIME_SPEC_INT_MONTH_SEP 9 +# define OSSL_TIME_SPEC_INT_MONTH_OCT 10 +# define OSSL_TIME_SPEC_INT_MONTH_NOV 11 +# define OSSL_TIME_SPEC_INT_MONTH_DEC 12 +# define OSSL_TIME_SPEC_BIT_MONTH_JAN 0 +# define OSSL_TIME_SPEC_BIT_MONTH_FEB 1 +# define OSSL_TIME_SPEC_BIT_MONTH_MAR 2 +# define OSSL_TIME_SPEC_BIT_MONTH_APR 3 +# define OSSL_TIME_SPEC_BIT_MONTH_MAY 4 +# define OSSL_TIME_SPEC_BIT_MONTH_JUN 5 +# define OSSL_TIME_SPEC_BIT_MONTH_JUL 6 +# define OSSL_TIME_SPEC_BIT_MONTH_AUG 7 +# define OSSL_TIME_SPEC_BIT_MONTH_SEP 8 +# define OSSL_TIME_SPEC_BIT_MONTH_OCT 9 +# define OSSL_TIME_SPEC_BIT_MONTH_NOV 10 +# define OSSL_TIME_SPEC_BIT_MONTH_DEC 11 + +typedef struct OSSL_TIME_SPEC_MONTH_st { + int type; + union { + ASN1_NULL *allMonths; + STACK_OF(ASN1_INTEGER) *intMonth; + ASN1_BIT_STRING *bitMonth; + } choice; +} OSSL_TIME_SPEC_MONTH; + +typedef struct OSSL_TIME_PERIOD_st { + STACK_OF(OSSL_DAY_TIME_BAND) *timesOfDay; + OSSL_TIME_SPEC_DAY *days; + OSSL_TIME_SPEC_WEEKS *weeks; + OSSL_TIME_SPEC_MONTH *months; + STACK_OF(ASN1_INTEGER) *years; +} OSSL_TIME_PERIOD; + +# define OSSL_TIME_SPEC_TIME_TYPE_ABSOLUTE 0 +# define OSSL_TIME_SPEC_TIME_TYPE_PERIODIC 1 + +typedef struct OSSL_TIME_SPEC_TIME_st { + int type; + union { + OSSL_TIME_SPEC_ABSOLUTE *absolute; + STACK_OF(OSSL_TIME_PERIOD) *periodic; + } choice; +} OSSL_TIME_SPEC_TIME; + +typedef struct OSSL_TIME_SPEC_st { + OSSL_TIME_SPEC_TIME *time; + ASN1_BOOLEAN notThisTime; + ASN1_INTEGER *timeZone; +} OSSL_TIME_SPEC; + +DECLARE_ASN1_FUNCTIONS(OSSL_DAY_TIME) +DECLARE_ASN1_FUNCTIONS(OSSL_DAY_TIME_BAND) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_DAY) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_WEEKS) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_MONTH) +DECLARE_ASN1_FUNCTIONS(OSSL_NAMED_DAY) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_X_DAY_OF) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_ABSOLUTE) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_TIME) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_PERIOD) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_TIME_PERIOD, OSSL_TIME_PERIOD, OSSL_TIME_PERIOD) +#define sk_OSSL_TIME_PERIOD_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_value(sk, idx) ((OSSL_TIME_PERIOD *)OPENSSL_sk_value(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk), (idx))) +#define sk_OSSL_TIME_PERIOD_new(cmp) ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_new(ossl_check_OSSL_TIME_PERIOD_compfunc_type(cmp))) +#define sk_OSSL_TIME_PERIOD_new_null() ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_new_null()) +#define sk_OSSL_TIME_PERIOD_new_reserve(cmp, n) ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_TIME_PERIOD_compfunc_type(cmp), (n))) +#define sk_OSSL_TIME_PERIOD_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), (n)) +#define sk_OSSL_TIME_PERIOD_free(sk) OPENSSL_sk_free(ossl_check_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_delete(sk, i) ((OSSL_TIME_PERIOD *)OPENSSL_sk_delete(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), (i))) +#define sk_OSSL_TIME_PERIOD_delete_ptr(sk, ptr) ((OSSL_TIME_PERIOD *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr))) +#define sk_OSSL_TIME_PERIOD_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr)) +#define sk_OSSL_TIME_PERIOD_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr)) +#define sk_OSSL_TIME_PERIOD_pop(sk) ((OSSL_TIME_PERIOD *)OPENSSL_sk_pop(ossl_check_OSSL_TIME_PERIOD_sk_type(sk))) +#define sk_OSSL_TIME_PERIOD_shift(sk) ((OSSL_TIME_PERIOD *)OPENSSL_sk_shift(ossl_check_OSSL_TIME_PERIOD_sk_type(sk))) +#define sk_OSSL_TIME_PERIOD_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_TIME_PERIOD_sk_type(sk),ossl_check_OSSL_TIME_PERIOD_freefunc_type(freefunc)) +#define sk_OSSL_TIME_PERIOD_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr), (idx)) +#define sk_OSSL_TIME_PERIOD_set(sk, idx, ptr) ((OSSL_TIME_PERIOD *)OPENSSL_sk_set(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), (idx), ossl_check_OSSL_TIME_PERIOD_type(ptr))) +#define sk_OSSL_TIME_PERIOD_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr)) +#define sk_OSSL_TIME_PERIOD_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr)) +#define sk_OSSL_TIME_PERIOD_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr), pnum) +#define sk_OSSL_TIME_PERIOD_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_dup(sk) ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_dup(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk))) +#define sk_OSSL_TIME_PERIOD_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_copyfunc_type(copyfunc), ossl_check_OSSL_TIME_PERIOD_freefunc_type(freefunc))) +#define sk_OSSL_TIME_PERIOD_set_cmp_func(sk, cmp) ((sk_OSSL_TIME_PERIOD_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_compfunc_type(cmp))) + + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_DAY_TIME_BAND, OSSL_DAY_TIME_BAND, OSSL_DAY_TIME_BAND) +#define sk_OSSL_DAY_TIME_BAND_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_value(sk, idx) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_value(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk), (idx))) +#define sk_OSSL_DAY_TIME_BAND_new(cmp) ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_new(ossl_check_OSSL_DAY_TIME_BAND_compfunc_type(cmp))) +#define sk_OSSL_DAY_TIME_BAND_new_null() ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_new_null()) +#define sk_OSSL_DAY_TIME_BAND_new_reserve(cmp, n) ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_DAY_TIME_BAND_compfunc_type(cmp), (n))) +#define sk_OSSL_DAY_TIME_BAND_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), (n)) +#define sk_OSSL_DAY_TIME_BAND_free(sk) OPENSSL_sk_free(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_delete(sk, i) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_delete(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), (i))) +#define sk_OSSL_DAY_TIME_BAND_delete_ptr(sk, ptr) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr))) +#define sk_OSSL_DAY_TIME_BAND_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr)) +#define sk_OSSL_DAY_TIME_BAND_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr)) +#define sk_OSSL_DAY_TIME_BAND_pop(sk) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_pop(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk))) +#define sk_OSSL_DAY_TIME_BAND_shift(sk) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_shift(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk))) +#define sk_OSSL_DAY_TIME_BAND_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk),ossl_check_OSSL_DAY_TIME_BAND_freefunc_type(freefunc)) +#define sk_OSSL_DAY_TIME_BAND_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr), (idx)) +#define sk_OSSL_DAY_TIME_BAND_set(sk, idx, ptr) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_set(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), (idx), ossl_check_OSSL_DAY_TIME_BAND_type(ptr))) +#define sk_OSSL_DAY_TIME_BAND_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr)) +#define sk_OSSL_DAY_TIME_BAND_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr)) +#define sk_OSSL_DAY_TIME_BAND_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr), pnum) +#define sk_OSSL_DAY_TIME_BAND_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_dup(sk) ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_dup(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk))) +#define sk_OSSL_DAY_TIME_BAND_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_copyfunc_type(copyfunc), ossl_check_OSSL_DAY_TIME_BAND_freefunc_type(freefunc))) +#define sk_OSSL_DAY_TIME_BAND_set_cmp_func(sk, cmp) ((sk_OSSL_DAY_TIME_BAND_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_compfunc_type(cmp))) + + +/* Attribute Type and Value */ +typedef struct atav_st { + ASN1_OBJECT *type; + ASN1_TYPE *value; +} OSSL_ATAV; + +typedef struct ATTRIBUTE_TYPE_MAPPING_st { + ASN1_OBJECT *local; + ASN1_OBJECT *remote; +} OSSL_ATTRIBUTE_TYPE_MAPPING; + +typedef struct ATTRIBUTE_VALUE_MAPPING_st { + OSSL_ATAV *local; + OSSL_ATAV *remote; +} OSSL_ATTRIBUTE_VALUE_MAPPING; + +# define OSSL_ATTR_MAP_TYPE 0 +# define OSSL_ATTR_MAP_VALUE 1 + +typedef struct ATTRIBUTE_MAPPING_st { + int type; + union { + OSSL_ATTRIBUTE_TYPE_MAPPING *typeMappings; + OSSL_ATTRIBUTE_VALUE_MAPPING *typeValueMappings; + } choice; +} OSSL_ATTRIBUTE_MAPPING; + +typedef STACK_OF(OSSL_ATTRIBUTE_MAPPING) OSSL_ATTRIBUTE_MAPPINGS; +DECLARE_ASN1_FUNCTIONS(OSSL_ATAV) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_TYPE_MAPPING) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_VALUE_MAPPING) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_MAPPING) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_MAPPINGS) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ATTRIBUTE_MAPPING, OSSL_ATTRIBUTE_MAPPING, OSSL_ATTRIBUTE_MAPPING) +#define sk_OSSL_ATTRIBUTE_MAPPING_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_value(sk, idx) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_value(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), (idx))) +#define sk_OSSL_ATTRIBUTE_MAPPING_new(cmp) ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_new(ossl_check_OSSL_ATTRIBUTE_MAPPING_compfunc_type(cmp))) +#define sk_OSSL_ATTRIBUTE_MAPPING_new_null() ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ATTRIBUTE_MAPPING_new_reserve(cmp, n) ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ATTRIBUTE_MAPPING_compfunc_type(cmp), (n))) +#define sk_OSSL_ATTRIBUTE_MAPPING_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), (n)) +#define sk_OSSL_ATTRIBUTE_MAPPING_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_delete(sk, i) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_delete(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), (i))) +#define sk_OSSL_ATTRIBUTE_MAPPING_delete_ptr(sk, ptr) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr))) +#define sk_OSSL_ATTRIBUTE_MAPPING_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr)) +#define sk_OSSL_ATTRIBUTE_MAPPING_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr)) +#define sk_OSSL_ATTRIBUTE_MAPPING_pop(sk) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_pop(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk))) +#define sk_OSSL_ATTRIBUTE_MAPPING_shift(sk) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_shift(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk))) +#define sk_OSSL_ATTRIBUTE_MAPPING_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk),ossl_check_OSSL_ATTRIBUTE_MAPPING_freefunc_type(freefunc)) +#define sk_OSSL_ATTRIBUTE_MAPPING_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr), (idx)) +#define sk_OSSL_ATTRIBUTE_MAPPING_set(sk, idx, ptr) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_set(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), (idx), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr))) +#define sk_OSSL_ATTRIBUTE_MAPPING_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr)) +#define sk_OSSL_ATTRIBUTE_MAPPING_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr)) +#define sk_OSSL_ATTRIBUTE_MAPPING_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr), pnum) +#define sk_OSSL_ATTRIBUTE_MAPPING_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_dup(sk) ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk))) +#define sk_OSSL_ATTRIBUTE_MAPPING_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_copyfunc_type(copyfunc), ossl_check_OSSL_ATTRIBUTE_MAPPING_freefunc_type(freefunc))) +#define sk_OSSL_ATTRIBUTE_MAPPING_set_cmp_func(sk, cmp) ((sk_OSSL_ATTRIBUTE_MAPPING_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_compfunc_type(cmp))) + + +# define OSSL_AAA_ATTRIBUTE_TYPE 0 +# define OSSL_AAA_ATTRIBUTE_VALUES 1 + +typedef struct ALLOWED_ATTRIBUTES_CHOICE_st { + int type; + union { + ASN1_OBJECT *attributeType; + X509_ATTRIBUTE *attributeTypeandValues; + } choice; +} OSSL_ALLOWED_ATTRIBUTES_CHOICE; + +typedef struct ALLOWED_ATTRIBUTES_ITEM_st { + STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *attributes; + GENERAL_NAME *holderDomain; +} OSSL_ALLOWED_ATTRIBUTES_ITEM; + +typedef STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) OSSL_ALLOWED_ATTRIBUTES_SYNTAX; + +DECLARE_ASN1_FUNCTIONS(OSSL_ALLOWED_ATTRIBUTES_CHOICE) +DECLARE_ASN1_FUNCTIONS(OSSL_ALLOWED_ATTRIBUTES_ITEM) +DECLARE_ASN1_FUNCTIONS(OSSL_ALLOWED_ATTRIBUTES_SYNTAX) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ALLOWED_ATTRIBUTES_CHOICE, OSSL_ALLOWED_ATTRIBUTES_CHOICE, OSSL_ALLOWED_ATTRIBUTES_CHOICE) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_value(sk, idx) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_value(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), (idx))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_new(cmp) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_new(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_compfunc_type(cmp))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_new_null() ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_new_reserve(cmp, n) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_compfunc_type(cmp), (n))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), (n)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_delete(sk, i) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_delete(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), (i))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_delete_ptr(sk, ptr) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_pop(sk) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_pop(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_shift(sk) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_shift(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk),ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_freefunc_type(freefunc)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr), (idx)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_set(sk, idx, ptr) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_set(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), (idx), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr), pnum) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_dup(sk) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_copyfunc_type(copyfunc), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_freefunc_type(freefunc))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_set_cmp_func(sk, cmp) ((sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_compfunc_type(cmp))) + + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ALLOWED_ATTRIBUTES_ITEM, OSSL_ALLOWED_ATTRIBUTES_ITEM, OSSL_ALLOWED_ATTRIBUTES_ITEM) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_value(sk, idx) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_value(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), (idx))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_new(cmp) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_new(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_compfunc_type(cmp))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_new_null() ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_new_reserve(cmp, n) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_compfunc_type(cmp), (n))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), (n)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_delete(sk, i) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_delete(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), (i))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_delete_ptr(sk, ptr) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_pop(sk) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_pop(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_shift(sk) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_shift(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk),ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_freefunc_type(freefunc)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr), (idx)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_set(sk, idx, ptr) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_set(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), (idx), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr), pnum) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_dup(sk) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_copyfunc_type(copyfunc), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_freefunc_type(freefunc))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_set_cmp_func(sk, cmp) ((sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_compfunc_type(cmp))) + + +typedef struct AA_DIST_POINT_st { + DIST_POINT_NAME *distpoint; + ASN1_BIT_STRING *reasons; + int dp_reasons; + ASN1_BOOLEAN indirectCRL; + ASN1_BOOLEAN containsUserAttributeCerts; + ASN1_BOOLEAN containsAACerts; + ASN1_BOOLEAN containsSOAPublicKeyCerts; +} OSSL_AA_DIST_POINT; + +DECLARE_ASN1_FUNCTIONS(OSSL_AA_DIST_POINT) + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/aix64-gcc-as/no-asm/include/progs.h b/deps/openssl/config/archs/aix64-gcc-as/no-asm/include/progs.h index be55f61503d405..1b62ec37dec130 100644 --- a/deps/openssl/config/archs/aix64-gcc-as/no-asm/include/progs.h +++ b/deps/openssl/config/archs/aix64-gcc-as/no-asm/include/progs.h @@ -56,6 +56,7 @@ extern int s_client_main(int argc, char *argv[]); extern int s_server_main(int argc, char *argv[]); extern int s_time_main(int argc, char *argv[]); extern int sess_id_main(int argc, char *argv[]); +extern int skeyutl_main(int argc, char *argv[]); extern int smime_main(int argc, char *argv[]); extern int speed_main(int argc, char *argv[]); extern int spkac_main(int argc, char *argv[]); @@ -110,6 +111,7 @@ extern const OPTIONS s_client_options[]; extern const OPTIONS s_server_options[]; extern const OPTIONS s_time_options[]; extern const OPTIONS sess_id_options[]; +extern const OPTIONS skeyutl_options[]; extern const OPTIONS smime_options[]; extern const OPTIONS speed_options[]; extern const OPTIONS spkac_options[]; diff --git a/deps/openssl/config/archs/aix64-gcc-as/no-asm/openssl-cl.gypi b/deps/openssl/config/archs/aix64-gcc-as/no-asm/openssl-cl.gypi index a0ea4dd2056555..e3e7f7eb70e421 100644 --- a/deps/openssl/config/archs/aix64-gcc-as/no-asm/openssl-cl.gypi +++ b/deps/openssl/config/archs/aix64-gcc-as/no-asm/openssl-cl.gypi @@ -61,6 +61,7 @@ 'openssl/apps/s_server.c', 'openssl/apps/s_time.c', 'openssl/apps/sess_id.c', + 'openssl/apps/skeyutl.c', 'openssl/apps/smime.c', 'openssl/apps/speed.c', 'openssl/apps/spkac.c', @@ -76,12 +77,14 @@ 'openssl/apps/lib/app_rand.c', 'openssl/apps/lib/app_x509.c', 'openssl/apps/lib/apps.c', + 'openssl/apps/lib/apps_opt_printf.c', 'openssl/apps/lib/apps_ui.c', 'openssl/apps/lib/columns.c', 'openssl/apps/lib/engine.c', 'openssl/apps/lib/engine_loader.c', 'openssl/apps/lib/fmt.c', 'openssl/apps/lib/http_server.c', + 'openssl/apps/lib/log.c', 'openssl/apps/lib/names.c', 'openssl/apps/lib/opt.c', 'openssl/apps/lib/s_cb.c', diff --git a/deps/openssl/config/archs/aix64-gcc-as/no-asm/openssl-fips.gypi b/deps/openssl/config/archs/aix64-gcc-as/no-asm/openssl-fips.gypi index b283040eeec87a..73b6c38c827c60 100644 --- a/deps/openssl/config/archs/aix64-gcc-as/no-asm/openssl-fips.gypi +++ b/deps/openssl/config/archs/aix64-gcc-as/no-asm/openssl-fips.gypi @@ -100,14 +100,15 @@ 'openssl/crypto/evp/kem.c', 'openssl/crypto/evp/keymgmt_lib.c', 'openssl/crypto/evp/keymgmt_meth.c', - 'openssl/crypto/evp/m_sigver.c', 'openssl/crypto/evp/mac_lib.c', 'openssl/crypto/evp/mac_meth.c', 'openssl/crypto/evp/p_lib.c', 'openssl/crypto/evp/pmeth_check.c', 'openssl/crypto/evp/pmeth_gn.c', 'openssl/crypto/evp/pmeth_lib.c', + 'openssl/crypto/evp/s_lib.c', 'openssl/crypto/evp/signature.c', + 'openssl/crypto/evp/skeymgmt_meth.c', 'openssl/crypto/ffc/ffc_backend.c', 'openssl/crypto/ffc/ffc_dh.c', 'openssl/crypto/ffc/ffc_key_generate.c', @@ -115,6 +116,8 @@ 'openssl/crypto/ffc/ffc_params.c', 'openssl/crypto/ffc/ffc_params_generate.c', 'openssl/crypto/ffc/ffc_params_validate.c', + 'openssl/crypto/hashtable/hashfunc.c', + 'openssl/crypto/hashtable/hashtable.c', 'openssl/crypto/hmac/hmac.c', 'openssl/crypto/lhash/lhash.c', 'openssl/crypto/asn1_dsa.c', @@ -145,6 +148,16 @@ 'openssl/crypto/threads_none.c', 'openssl/crypto/threads_pthread.c', 'openssl/crypto/threads_win.c', + 'openssl/crypto/time.c', + 'openssl/crypto/ml_dsa/ml_dsa_encoders.c', + 'openssl/crypto/ml_dsa/ml_dsa_key.c', + 'openssl/crypto/ml_dsa/ml_dsa_key_compress.c', + 'openssl/crypto/ml_dsa/ml_dsa_matrix.c', + 'openssl/crypto/ml_dsa/ml_dsa_ntt.c', + 'openssl/crypto/ml_dsa/ml_dsa_params.c', + 'openssl/crypto/ml_dsa/ml_dsa_sample.c', + 'openssl/crypto/ml_dsa/ml_dsa_sign.c', + 'openssl/crypto/ml_kem/ml_kem.c', 'openssl/crypto/modes/cbc128.c', 'openssl/crypto/modes/ccm128.c', 'openssl/crypto/modes/cfb128.c', @@ -153,6 +166,7 @@ 'openssl/crypto/modes/ofb128.c', 'openssl/crypto/modes/wrap128.c', 'openssl/crypto/modes/xts128.c', + 'openssl/crypto/modes/xts128gb.c', 'openssl/crypto/property/defn_cache.c', 'openssl/crypto/property/property.c', 'openssl/crypto/property/property_parse.c', @@ -181,7 +195,23 @@ 'openssl/crypto/sha/sha256.c', 'openssl/crypto/sha/sha3.c', 'openssl/crypto/sha/sha512.c', + 'openssl/crypto/slh_dsa/slh_adrs.c', + 'openssl/crypto/slh_dsa/slh_dsa.c', + 'openssl/crypto/slh_dsa/slh_dsa_hash_ctx.c', + 'openssl/crypto/slh_dsa/slh_dsa_key.c', + 'openssl/crypto/slh_dsa/slh_fors.c', + 'openssl/crypto/slh_dsa/slh_hash.c', + 'openssl/crypto/slh_dsa/slh_hypertree.c', + 'openssl/crypto/slh_dsa/slh_params.c', + 'openssl/crypto/slh_dsa/slh_wots.c', + 'openssl/crypto/slh_dsa/slh_xmss.c', 'openssl/crypto/stack/stack.c', + 'openssl/crypto/thread/arch/thread_none.c', + 'openssl/crypto/thread/arch/thread_posix.c', + 'openssl/crypto/thread/arch/thread_win.c', + 'openssl/crypto/thread/api.c', + 'openssl/crypto/thread/arch.c', + 'openssl/crypto/thread/internal.c', 'openssl/providers/common/der/der_rsa_sig.c', 'openssl/providers/common/bio_prov.c', 'openssl/providers/common/capabilities.c', @@ -190,6 +220,7 @@ 'openssl/providers/common/provider_util.c', 'openssl/providers/common/securitycheck.c', 'openssl/providers/common/securitycheck_fips.c', + 'openssl/providers/fips/fipsindicator.c', 'openssl/providers/fips/fipsprov.c', 'openssl/providers/fips/self_test.c', 'openssl/providers/fips/self_test_kats.c', @@ -227,6 +258,8 @@ 'openssl/providers/implementations/kdfs/sskdf.c', 'openssl/providers/implementations/kdfs/tls1_prf.c', 'openssl/providers/implementations/kdfs/x942kdf.c', + 'openssl/providers/implementations/kem/ml_kem_kem.c', + 'openssl/providers/implementations/kem/mlx_kem.c', 'openssl/providers/implementations/kem/rsa_kem.c', 'openssl/providers/implementations/keymgmt/dh_kmgmt.c', 'openssl/providers/implementations/keymgmt/dsa_kmgmt.c', @@ -234,29 +267,39 @@ 'openssl/providers/implementations/keymgmt/ecx_kmgmt.c', 'openssl/providers/implementations/keymgmt/kdf_legacy_kmgmt.c', 'openssl/providers/implementations/keymgmt/mac_legacy_kmgmt.c', + 'openssl/providers/implementations/keymgmt/ml_dsa_kmgmt.c', + 'openssl/providers/implementations/keymgmt/ml_kem_kmgmt.c', + 'openssl/providers/implementations/keymgmt/mlx_kmgmt.c', 'openssl/providers/implementations/keymgmt/rsa_kmgmt.c', + 'openssl/providers/implementations/keymgmt/slh_dsa_kmgmt.c', 'openssl/providers/implementations/macs/cmac_prov.c', 'openssl/providers/implementations/macs/gmac_prov.c', 'openssl/providers/implementations/macs/hmac_prov.c', 'openssl/providers/implementations/macs/kmac_prov.c', - 'openssl/providers/implementations/rands/crngt.c', 'openssl/providers/implementations/rands/drbg.c', 'openssl/providers/implementations/rands/drbg_ctr.c', 'openssl/providers/implementations/rands/drbg_hash.c', 'openssl/providers/implementations/rands/drbg_hmac.c', + 'openssl/providers/implementations/rands/fips_crng_test.c', 'openssl/providers/implementations/rands/test_rng.c', 'openssl/providers/implementations/signature/dsa_sig.c', 'openssl/providers/implementations/signature/ecdsa_sig.c', 'openssl/providers/implementations/signature/eddsa_sig.c', 'openssl/providers/implementations/signature/mac_legacy_sig.c', + 'openssl/providers/implementations/signature/ml_dsa_sig.c', 'openssl/providers/implementations/signature/rsa_sig.c', - 'openssl/ssl/s3_cbc.c', + 'openssl/providers/implementations/signature/slh_dsa_sig.c', + 'openssl/providers/implementations/skeymgmt/aes_skmgmt.c', + 'openssl/providers/implementations/skeymgmt/generic.c', + 'openssl/ssl/record/methods/ssl3_cbc.c', 'openssl/providers/common/der/der_dsa_key.c', 'openssl/providers/common/der/der_dsa_sig.c', 'openssl/providers/common/der/der_ec_key.c', 'openssl/providers/common/der/der_ec_sig.c', 'openssl/providers/common/der/der_ecx_key.c', + 'openssl/providers/common/der/der_ml_dsa_key.c', 'openssl/providers/common/der/der_rsa_key.c', + 'openssl/providers/common/der/der_slh_dsa_key.c', 'openssl/providers/common/provider_ctx.c', 'openssl/providers/common/provider_err.c', 'openssl/providers/implementations/ciphers/ciphercommon.c', @@ -267,17 +310,20 @@ 'openssl/providers/implementations/ciphers/ciphercommon_gcm_hw.c', 'openssl/providers/implementations/ciphers/ciphercommon_hw.c', 'openssl/providers/implementations/digests/digestcommon.c', - 'openssl/ssl/record/tls_pad.c', + 'openssl/ssl/record/methods/tls_pad.c', 'openssl/providers/fips/fips_entry.c', ], 'openssl_sources_aix64-gcc-as': [ + './config/archs/aix64-gcc-as/no-asm/crypto/params_idx.c', './config/archs/aix64-gcc-as/no-asm/providers/common/der/der_sm2_gen.c', './config/archs/aix64-gcc-as/no-asm/providers/common/der/der_digests_gen.c', './config/archs/aix64-gcc-as/no-asm/providers/common/der/der_dsa_gen.c', './config/archs/aix64-gcc-as/no-asm/providers/common/der/der_ec_gen.c', './config/archs/aix64-gcc-as/no-asm/providers/common/der/der_ecx_gen.c', + './config/archs/aix64-gcc-as/no-asm/providers/common/der/der_ml_dsa_gen.c', './config/archs/aix64-gcc-as/no-asm/providers/common/der/der_rsa_gen.c', + './config/archs/aix64-gcc-as/no-asm/providers/common/der/der_slh_dsa_gen.c', './config/archs/aix64-gcc-as/no-asm/providers/common/der/der_wrap_gen.c', './config/archs/aix64-gcc-as/no-asm/providers/legacy.ld', './config/archs/aix64-gcc-as/no-asm/providers/fips.ld', diff --git a/deps/openssl/config/archs/aix64-gcc-as/no-asm/openssl.gypi b/deps/openssl/config/archs/aix64-gcc-as/no-asm/openssl.gypi index 9cc4582197f86d..75ffff2b75fd16 100644 --- a/deps/openssl/config/archs/aix64-gcc-as/no-asm/openssl.gypi +++ b/deps/openssl/config/archs/aix64-gcc-as/no-asm/openssl.gypi @@ -7,14 +7,15 @@ 'openssl/ssl/d1_srtp.c', 'openssl/ssl/methods.c', 'openssl/ssl/pqueue.c', + 'openssl/ssl/priority_queue.c', 'openssl/ssl/s3_enc.c', 'openssl/ssl/s3_lib.c', 'openssl/ssl/s3_msg.c', 'openssl/ssl/ssl_asn1.c', 'openssl/ssl/ssl_cert.c', + 'openssl/ssl/ssl_cert_comp.c', 'openssl/ssl/ssl_ciph.c', 'openssl/ssl/ssl_conf.c', - 'openssl/ssl/ssl_err.c', 'openssl/ssl/ssl_err_legacy.c', 'openssl/ssl/ssl_init.c', 'openssl/ssl/ssl_lib.c', @@ -31,12 +32,60 @@ 'openssl/ssl/tls13_enc.c', 'openssl/ssl/tls_depr.c', 'openssl/ssl/tls_srp.c', - 'openssl/ssl/record/dtls1_bitmap.c', + 'openssl/ssl/quic/cc_newreno.c', + 'openssl/ssl/quic/json_enc.c', + 'openssl/ssl/quic/qlog.c', + 'openssl/ssl/quic/qlog_event_helpers.c', + 'openssl/ssl/quic/quic_ackm.c', + 'openssl/ssl/quic/quic_cfq.c', + 'openssl/ssl/quic/quic_channel.c', + 'openssl/ssl/quic/quic_demux.c', + 'openssl/ssl/quic/quic_engine.c', + 'openssl/ssl/quic/quic_fc.c', + 'openssl/ssl/quic/quic_fifd.c', + 'openssl/ssl/quic/quic_impl.c', + 'openssl/ssl/quic/quic_lcidm.c', + 'openssl/ssl/quic/quic_method.c', + 'openssl/ssl/quic/quic_obj.c', + 'openssl/ssl/quic/quic_port.c', + 'openssl/ssl/quic/quic_rcidm.c', + 'openssl/ssl/quic/quic_reactor.c', + 'openssl/ssl/quic/quic_reactor_wait_ctx.c', + 'openssl/ssl/quic/quic_record_rx.c', + 'openssl/ssl/quic/quic_record_shared.c', + 'openssl/ssl/quic/quic_record_tx.c', + 'openssl/ssl/quic/quic_record_util.c', + 'openssl/ssl/quic/quic_rstream.c', + 'openssl/ssl/quic/quic_rx_depack.c', + 'openssl/ssl/quic/quic_sf_list.c', + 'openssl/ssl/quic/quic_srt_gen.c', + 'openssl/ssl/quic/quic_srtm.c', + 'openssl/ssl/quic/quic_sstream.c', + 'openssl/ssl/quic/quic_statm.c', + 'openssl/ssl/quic/quic_stream_map.c', + 'openssl/ssl/quic/quic_thread_assist.c', + 'openssl/ssl/quic/quic_tls.c', + 'openssl/ssl/quic/quic_tls_api.c', + 'openssl/ssl/quic/quic_trace.c', + 'openssl/ssl/quic/quic_tserver.c', + 'openssl/ssl/quic/quic_txp.c', + 'openssl/ssl/quic/quic_txpim.c', + 'openssl/ssl/quic/quic_types.c', + 'openssl/ssl/quic/quic_wire.c', + 'openssl/ssl/quic/quic_wire_pkt.c', + 'openssl/ssl/quic/uint_set.c', 'openssl/ssl/record/rec_layer_d1.c', 'openssl/ssl/record/rec_layer_s3.c', - 'openssl/ssl/record/ssl3_buffer.c', - 'openssl/ssl/record/ssl3_record.c', - 'openssl/ssl/record/ssl3_record_tls13.c', + 'openssl/ssl/record/methods/dtls_meth.c', + 'openssl/ssl/record/methods/ssl3_meth.c', + 'openssl/ssl/record/methods/tls13_meth.c', + 'openssl/ssl/record/methods/tls1_meth.c', + 'openssl/ssl/record/methods/tls_common.c', + 'openssl/ssl/record/methods/tls_multib.c', + 'openssl/ssl/record/methods/tlsany_meth.c', + 'openssl/ssl/rio/poll_builder.c', + 'openssl/ssl/rio/poll_immediate.c', + 'openssl/ssl/rio/rio_notifier.c', 'openssl/ssl/statem/extensions.c', 'openssl/ssl/statem/extensions_clnt.c', 'openssl/ssl/statem/extensions_cust.c', @@ -150,6 +199,7 @@ 'openssl/crypto/bio/bss_conn.c', 'openssl/crypto/bio/bss_core.c', 'openssl/crypto/bio/bss_dgram.c', + 'openssl/crypto/bio/bss_dgram_pair.c', 'openssl/crypto/bio/bss_fd.c', 'openssl/crypto/bio/bss_file.c', 'openssl/crypto/bio/bss_log.c', @@ -210,6 +260,7 @@ 'openssl/crypto/cmp/cmp_client.c', 'openssl/crypto/cmp/cmp_ctx.c', 'openssl/crypto/cmp/cmp_err.c', + 'openssl/crypto/cmp/cmp_genm.c', 'openssl/crypto/cmp/cmp_hdr.c', 'openssl/crypto/cmp/cmp_http.c', 'openssl/crypto/cmp/cmp_msg.c', @@ -385,7 +436,9 @@ 'openssl/crypto/err/err_all.c', 'openssl/crypto/err/err_all_legacy.c', 'openssl/crypto/err/err_blocks.c', + 'openssl/crypto/err/err_mark.c', 'openssl/crypto/err/err_prn.c', + 'openssl/crypto/err/err_save.c', 'openssl/crypto/ess/ess_asn1.c', 'openssl/crypto/ess/ess_err.c', 'openssl/crypto/ess/ess_lib.c', @@ -468,7 +521,9 @@ 'openssl/crypto/evp/pmeth_check.c', 'openssl/crypto/evp/pmeth_gn.c', 'openssl/crypto/evp/pmeth_lib.c', + 'openssl/crypto/evp/s_lib.c', 'openssl/crypto/evp/signature.c', + 'openssl/crypto/evp/skeymgmt_meth.c', 'openssl/crypto/ffc/ffc_backend.c', 'openssl/crypto/ffc/ffc_dh.c', 'openssl/crypto/ffc/ffc_key_generate.c', @@ -476,7 +531,11 @@ 'openssl/crypto/ffc/ffc_params.c', 'openssl/crypto/ffc/ffc_params_generate.c', 'openssl/crypto/ffc/ffc_params_validate.c', + 'openssl/crypto/hashtable/hashfunc.c', + 'openssl/crypto/hashtable/hashtable.c', 'openssl/crypto/hmac/hmac.c', + 'openssl/crypto/hpke/hpke.c', + 'openssl/crypto/hpke/hpke_util.c', 'openssl/crypto/http/http_client.c', 'openssl/crypto/http/http_err.c', 'openssl/crypto/http/http_lib.c', @@ -490,6 +549,7 @@ 'openssl/crypto/lhash/lhash.c', 'openssl/crypto/asn1_dsa.c', 'openssl/crypto/bsearch.c', + 'openssl/crypto/comp_methods.c', 'openssl/crypto/context.c', 'openssl/crypto/core_algorithm.c', 'openssl/crypto/core_fetch.c', @@ -499,10 +559,13 @@ 'openssl/crypto/cryptlib.c', 'openssl/crypto/ctype.c', 'openssl/crypto/cversion.c', + 'openssl/crypto/defaults.c', 'openssl/crypto/der_writer.c', + 'openssl/crypto/deterministic_nonce.c', 'openssl/crypto/ebcdic.c', 'openssl/crypto/ex_data.c', 'openssl/crypto/getenv.c', + 'openssl/crypto/indicator_core.c', 'openssl/crypto/info.c', 'openssl/crypto/init.c', 'openssl/crypto/initthread.c', @@ -527,12 +590,16 @@ 'openssl/crypto/provider_core.c', 'openssl/crypto/provider_predefined.c', 'openssl/crypto/punycode.c', + 'openssl/crypto/quic_vlint.c', 'openssl/crypto/self_test_core.c', + 'openssl/crypto/sleep.c', 'openssl/crypto/sparse_array.c', + 'openssl/crypto/ssl_err.c', 'openssl/crypto/threads_lib.c', 'openssl/crypto/threads_none.c', 'openssl/crypto/threads_pthread.c', 'openssl/crypto/threads_win.c', + 'openssl/crypto/time.c', 'openssl/crypto/trace.c', 'openssl/crypto/uid.c', 'openssl/crypto/md4/md4_dgst.c', @@ -542,6 +609,15 @@ 'openssl/crypto/md5/md5_sha1.c', 'openssl/crypto/mdc2/mdc2_one.c', 'openssl/crypto/mdc2/mdc2dgst.c', + 'openssl/crypto/ml_dsa/ml_dsa_encoders.c', + 'openssl/crypto/ml_dsa/ml_dsa_key.c', + 'openssl/crypto/ml_dsa/ml_dsa_key_compress.c', + 'openssl/crypto/ml_dsa/ml_dsa_matrix.c', + 'openssl/crypto/ml_dsa/ml_dsa_ntt.c', + 'openssl/crypto/ml_dsa/ml_dsa_params.c', + 'openssl/crypto/ml_dsa/ml_dsa_sample.c', + 'openssl/crypto/ml_dsa/ml_dsa_sign.c', + 'openssl/crypto/ml_kem/ml_kem.c', 'openssl/crypto/modes/cbc128.c', 'openssl/crypto/modes/ccm128.c', 'openssl/crypto/modes/cfb128.c', @@ -553,6 +629,7 @@ 'openssl/crypto/modes/siv128.c', 'openssl/crypto/modes/wrap128.c', 'openssl/crypto/modes/xts128.c', + 'openssl/crypto/modes/xts128gb.c', 'openssl/crypto/objects/o_names.c', 'openssl/crypto/objects/obj_dat.c', 'openssl/crypto/objects/obj_err.c', @@ -616,6 +693,7 @@ 'openssl/crypto/rand/rand_lib.c', 'openssl/crypto/rand/rand_meth.c', 'openssl/crypto/rand/rand_pool.c', + 'openssl/crypto/rand/rand_uniform.c', 'openssl/crypto/rand/randfile.c', 'openssl/crypto/rc2/rc2_cbc.c', 'openssl/crypto/rc2/rc2_ecb.c', @@ -664,6 +742,16 @@ 'openssl/crypto/sha/sha3.c', 'openssl/crypto/sha/sha512.c', 'openssl/crypto/siphash/siphash.c', + 'openssl/crypto/slh_dsa/slh_adrs.c', + 'openssl/crypto/slh_dsa/slh_dsa.c', + 'openssl/crypto/slh_dsa/slh_dsa_hash_ctx.c', + 'openssl/crypto/slh_dsa/slh_dsa_key.c', + 'openssl/crypto/slh_dsa/slh_fors.c', + 'openssl/crypto/slh_dsa/slh_hash.c', + 'openssl/crypto/slh_dsa/slh_hypertree.c', + 'openssl/crypto/slh_dsa/slh_params.c', + 'openssl/crypto/slh_dsa/slh_wots.c', + 'openssl/crypto/slh_dsa/slh_xmss.c', 'openssl/crypto/sm2/sm2_crypt.c', 'openssl/crypto/sm2/sm2_err.c', 'openssl/crypto/sm2/sm2_key.c', @@ -681,6 +769,12 @@ 'openssl/crypto/store/store_register.c', 'openssl/crypto/store/store_result.c', 'openssl/crypto/store/store_strings.c', + 'openssl/crypto/thread/arch/thread_none.c', + 'openssl/crypto/thread/arch/thread_posix.c', + 'openssl/crypto/thread/arch/thread_win.c', + 'openssl/crypto/thread/api.c', + 'openssl/crypto/thread/arch.c', + 'openssl/crypto/thread/internal.c', 'openssl/crypto/ts/ts_asn1.c', 'openssl/crypto/ts/ts_conf.c', 'openssl/crypto/ts/ts_err.c', @@ -709,14 +803,22 @@ 'openssl/crypto/x509/pcy_map.c', 'openssl/crypto/x509/pcy_node.c', 'openssl/crypto/x509/pcy_tree.c', + 'openssl/crypto/x509/t_acert.c', 'openssl/crypto/x509/t_crl.c', 'openssl/crypto/x509/t_req.c', 'openssl/crypto/x509/t_x509.c', + 'openssl/crypto/x509/v3_aaa.c', + 'openssl/crypto/x509/v3_ac_tgt.c', 'openssl/crypto/x509/v3_addr.c', 'openssl/crypto/x509/v3_admis.c', 'openssl/crypto/x509/v3_akeya.c', 'openssl/crypto/x509/v3_akid.c', 'openssl/crypto/x509/v3_asid.c', + 'openssl/crypto/x509/v3_attrdesc.c', + 'openssl/crypto/x509/v3_attrmap.c', + 'openssl/crypto/x509/v3_audit_id.c', + 'openssl/crypto/x509/v3_authattid.c', + 'openssl/crypto/x509/v3_battcons.c', 'openssl/crypto/x509/v3_bcons.c', 'openssl/crypto/x509/v3_bitst.c', 'openssl/crypto/x509/v3_conf.c', @@ -725,12 +827,17 @@ 'openssl/crypto/x509/v3_enum.c', 'openssl/crypto/x509/v3_extku.c', 'openssl/crypto/x509/v3_genn.c', + 'openssl/crypto/x509/v3_group_ac.c', 'openssl/crypto/x509/v3_ia5.c', + 'openssl/crypto/x509/v3_ind_iss.c', 'openssl/crypto/x509/v3_info.c', 'openssl/crypto/x509/v3_int.c', + 'openssl/crypto/x509/v3_iobo.c', 'openssl/crypto/x509/v3_ist.c', 'openssl/crypto/x509/v3_lib.c', 'openssl/crypto/x509/v3_ncons.c', + 'openssl/crypto/x509/v3_no_ass.c', + 'openssl/crypto/x509/v3_no_rev_avail.c', 'openssl/crypto/x509/v3_pci.c', 'openssl/crypto/x509/v3_pcia.c', 'openssl/crypto/x509/v3_pcons.c', @@ -738,13 +845,20 @@ 'openssl/crypto/x509/v3_pmaps.c', 'openssl/crypto/x509/v3_prn.c', 'openssl/crypto/x509/v3_purp.c', + 'openssl/crypto/x509/v3_rolespec.c', 'openssl/crypto/x509/v3_san.c', + 'openssl/crypto/x509/v3_sda.c', + 'openssl/crypto/x509/v3_single_use.c', 'openssl/crypto/x509/v3_skid.c', + 'openssl/crypto/x509/v3_soa_id.c', 'openssl/crypto/x509/v3_sxnet.c', + 'openssl/crypto/x509/v3_timespec.c', 'openssl/crypto/x509/v3_tlsf.c', + 'openssl/crypto/x509/v3_usernotice.c', 'openssl/crypto/x509/v3_utf8.c', 'openssl/crypto/x509/v3_utl.c', 'openssl/crypto/x509/v3err.c', + 'openssl/crypto/x509/x509_acert.c', 'openssl/crypto/x509/x509_att.c', 'openssl/crypto/x509/x509_cmp.c', 'openssl/crypto/x509/x509_d2.c', @@ -762,6 +876,7 @@ 'openssl/crypto/x509/x509_v3.c', 'openssl/crypto/x509/x509_vfy.c', 'openssl/crypto/x509/x509_vpm.c', + 'openssl/crypto/x509/x509aset.c', 'openssl/crypto/x509/x509cset.c', 'openssl/crypto/x509/x509name.c', 'openssl/crypto/x509/x509rset.c', @@ -771,6 +886,7 @@ 'openssl/crypto/x509/x_attrib.c', 'openssl/crypto/x509/x_crl.c', 'openssl/crypto/x509/x_exten.c', + 'openssl/crypto/x509/x_ietfatt.c', 'openssl/crypto/x509/x_name.c', 'openssl/crypto/x509/x_pubkey.c', 'openssl/crypto/x509/x_req.c', @@ -802,6 +918,9 @@ 'openssl/providers/implementations/ciphers/cipher_aes_ccm_hw.c', 'openssl/providers/implementations/ciphers/cipher_aes_gcm.c', 'openssl/providers/implementations/ciphers/cipher_aes_gcm_hw.c', + 'openssl/providers/implementations/ciphers/cipher_aes_gcm_siv.c', + 'openssl/providers/implementations/ciphers/cipher_aes_gcm_siv_hw.c', + 'openssl/providers/implementations/ciphers/cipher_aes_gcm_siv_polyval.c', 'openssl/providers/implementations/ciphers/cipher_aes_hw.c', 'openssl/providers/implementations/ciphers/cipher_aes_ocb.c', 'openssl/providers/implementations/ciphers/cipher_aes_ocb_hw.c', @@ -826,7 +945,13 @@ 'openssl/providers/implementations/ciphers/cipher_cts.c', 'openssl/providers/implementations/ciphers/cipher_null.c', 'openssl/providers/implementations/ciphers/cipher_sm4.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_ccm.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_ccm_hw.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_gcm.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_gcm_hw.c', 'openssl/providers/implementations/ciphers/cipher_sm4_hw.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_xts.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_xts_hw.c', 'openssl/providers/implementations/ciphers/cipher_tdes.c', 'openssl/providers/implementations/ciphers/cipher_tdes_common.c', 'openssl/providers/implementations/ciphers/cipher_tdes_default.c', @@ -855,11 +980,16 @@ 'openssl/providers/implementations/encode_decode/encode_key2ms.c', 'openssl/providers/implementations/encode_decode/encode_key2text.c', 'openssl/providers/implementations/encode_decode/endecoder_common.c', + 'openssl/providers/implementations/encode_decode/ml_common_codecs.c', + 'openssl/providers/implementations/encode_decode/ml_dsa_codecs.c', + 'openssl/providers/implementations/encode_decode/ml_kem_codecs.c', 'openssl/providers/implementations/exchange/dh_exch.c', 'openssl/providers/implementations/exchange/ecdh_exch.c', 'openssl/providers/implementations/exchange/ecx_exch.c', 'openssl/providers/implementations/exchange/kdf_exch.c', + 'openssl/providers/implementations/kdfs/argon2.c', 'openssl/providers/implementations/kdfs/hkdf.c', + 'openssl/providers/implementations/kdfs/hmacdrbg_kdf.c', 'openssl/providers/implementations/kdfs/kbkdf.c', 'openssl/providers/implementations/kdfs/krb5kdf.c', 'openssl/providers/implementations/kdfs/pbkdf2.c', @@ -870,6 +1000,11 @@ 'openssl/providers/implementations/kdfs/sskdf.c', 'openssl/providers/implementations/kdfs/tls1_prf.c', 'openssl/providers/implementations/kdfs/x942kdf.c', + 'openssl/providers/implementations/kem/ec_kem.c', + 'openssl/providers/implementations/kem/ecx_kem.c', + 'openssl/providers/implementations/kem/kem_util.c', + 'openssl/providers/implementations/kem/ml_kem_kem.c', + 'openssl/providers/implementations/kem/mlx_kem.c', 'openssl/providers/implementations/kem/rsa_kem.c', 'openssl/providers/implementations/keymgmt/dh_kmgmt.c', 'openssl/providers/implementations/keymgmt/dsa_kmgmt.c', @@ -877,7 +1012,11 @@ 'openssl/providers/implementations/keymgmt/ecx_kmgmt.c', 'openssl/providers/implementations/keymgmt/kdf_legacy_kmgmt.c', 'openssl/providers/implementations/keymgmt/mac_legacy_kmgmt.c', + 'openssl/providers/implementations/keymgmt/ml_dsa_kmgmt.c', + 'openssl/providers/implementations/keymgmt/ml_kem_kmgmt.c', + 'openssl/providers/implementations/keymgmt/mlx_kmgmt.c', 'openssl/providers/implementations/keymgmt/rsa_kmgmt.c', + 'openssl/providers/implementations/keymgmt/slh_dsa_kmgmt.c', 'openssl/providers/implementations/macs/blake2b_mac.c', 'openssl/providers/implementations/macs/blake2s_mac.c', 'openssl/providers/implementations/macs/cmac_prov.c', @@ -886,12 +1025,12 @@ 'openssl/providers/implementations/macs/kmac_prov.c', 'openssl/providers/implementations/macs/poly1305_prov.c', 'openssl/providers/implementations/macs/siphash_prov.c', - 'openssl/providers/implementations/rands/crngt.c', 'openssl/providers/implementations/rands/drbg.c', 'openssl/providers/implementations/rands/drbg_ctr.c', 'openssl/providers/implementations/rands/drbg_hash.c', 'openssl/providers/implementations/rands/drbg_hmac.c', 'openssl/providers/implementations/rands/seed_src.c', + 'openssl/providers/implementations/rands/seed_src_jitter.c', 'openssl/providers/implementations/rands/test_rng.c', 'openssl/providers/implementations/rands/seeding/rand_cpu_x86.c', 'openssl/providers/implementations/rands/seeding/rand_tsc.c', @@ -901,17 +1040,23 @@ 'openssl/providers/implementations/signature/ecdsa_sig.c', 'openssl/providers/implementations/signature/eddsa_sig.c', 'openssl/providers/implementations/signature/mac_legacy_sig.c', + 'openssl/providers/implementations/signature/ml_dsa_sig.c', 'openssl/providers/implementations/signature/rsa_sig.c', + 'openssl/providers/implementations/signature/slh_dsa_sig.c', 'openssl/providers/implementations/signature/sm2_sig.c', + 'openssl/providers/implementations/skeymgmt/aes_skmgmt.c', + 'openssl/providers/implementations/skeymgmt/generic.c', 'openssl/providers/implementations/storemgmt/file_store.c', 'openssl/providers/implementations/storemgmt/file_store_any2obj.c', - 'openssl/ssl/s3_cbc.c', + 'openssl/ssl/record/methods/ssl3_cbc.c', 'openssl/providers/common/der/der_dsa_key.c', 'openssl/providers/common/der/der_dsa_sig.c', 'openssl/providers/common/der/der_ec_key.c', 'openssl/providers/common/der/der_ec_sig.c', 'openssl/providers/common/der/der_ecx_key.c', + 'openssl/providers/common/der/der_ml_dsa_key.c', 'openssl/providers/common/der/der_rsa_key.c', + 'openssl/providers/common/der/der_slh_dsa_key.c', 'openssl/providers/common/provider_ctx.c', 'openssl/providers/common/provider_err.c', 'openssl/providers/implementations/ciphers/ciphercommon.c', @@ -922,7 +1067,7 @@ 'openssl/providers/implementations/ciphers/ciphercommon_gcm_hw.c', 'openssl/providers/implementations/ciphers/ciphercommon_hw.c', 'openssl/providers/implementations/digests/digestcommon.c', - 'openssl/ssl/record/tls_pad.c', + 'openssl/ssl/record/methods/tls_pad.c', 'openssl/providers/implementations/ciphers/cipher_blowfish.c', 'openssl/providers/implementations/ciphers/cipher_blowfish_hw.c', 'openssl/providers/implementations/ciphers/cipher_cast5.c', @@ -947,16 +1092,20 @@ 'openssl/providers/implementations/digests/ripemd_prov.c', 'openssl/providers/implementations/digests/wp_prov.c', 'openssl/providers/implementations/kdfs/pbkdf1.c', + 'openssl/providers/implementations/kdfs/pvkkdf.c', 'openssl/providers/prov_running.c', 'openssl/providers/legacyprov.c', ], 'openssl_sources_aix64-gcc-as': [ + './config/archs/aix64-gcc-as/no-asm/crypto/params_idx.c', './config/archs/aix64-gcc-as/no-asm/providers/common/der/der_sm2_gen.c', './config/archs/aix64-gcc-as/no-asm/providers/common/der/der_digests_gen.c', './config/archs/aix64-gcc-as/no-asm/providers/common/der/der_dsa_gen.c', './config/archs/aix64-gcc-as/no-asm/providers/common/der/der_ec_gen.c', './config/archs/aix64-gcc-as/no-asm/providers/common/der/der_ecx_gen.c', + './config/archs/aix64-gcc-as/no-asm/providers/common/der/der_ml_dsa_gen.c', './config/archs/aix64-gcc-as/no-asm/providers/common/der/der_rsa_gen.c', + './config/archs/aix64-gcc-as/no-asm/providers/common/der/der_slh_dsa_gen.c', './config/archs/aix64-gcc-as/no-asm/providers/common/der/der_wrap_gen.c', './config/archs/aix64-gcc-as/no-asm/providers/legacy.ld', './config/archs/aix64-gcc-as/no-asm/providers/fips.ld', diff --git a/deps/openssl/config/archs/aix64-gcc-as/no-asm/providers/common/der/der_ml_dsa_gen.c b/deps/openssl/config/archs/aix64-gcc-as/no-asm/providers/common/der/der_ml_dsa_gen.c new file mode 100644 index 00000000000000..4a8a113a268578 --- /dev/null +++ b/deps/openssl/config/archs/aix64-gcc-as/no-asm/providers/common/der/der_ml_dsa_gen.c @@ -0,0 +1,37 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from providers/common/der/der_ml_dsa_gen.c.in + * + * Copyright 2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include "prov/der_ml_dsa.h" + +/* Well known OIDs precompiled */ + +/* + * id-ml-dsa-44 OBJECT IDENTIFIER ::= { sigAlgs 17 } + */ +const unsigned char ossl_der_oid_id_ml_dsa_44[DER_OID_SZ_id_ml_dsa_44] = { + DER_OID_V_id_ml_dsa_44 +}; + +/* + * id-ml-dsa-65 OBJECT IDENTIFIER ::= { sigAlgs 18 } + */ +const unsigned char ossl_der_oid_id_ml_dsa_65[DER_OID_SZ_id_ml_dsa_65] = { + DER_OID_V_id_ml_dsa_65 +}; + +/* + * id-ml-dsa-87 OBJECT IDENTIFIER ::= { sigAlgs 19 } + */ +const unsigned char ossl_der_oid_id_ml_dsa_87[DER_OID_SZ_id_ml_dsa_87] = { + DER_OID_V_id_ml_dsa_87 +}; + diff --git a/deps/openssl/config/archs/aix64-gcc-as/no-asm/providers/common/der/der_slh_dsa_gen.c b/deps/openssl/config/archs/aix64-gcc-as/no-asm/providers/common/der/der_slh_dsa_gen.c new file mode 100644 index 00000000000000..1419a9515097dd --- /dev/null +++ b/deps/openssl/config/archs/aix64-gcc-as/no-asm/providers/common/der/der_slh_dsa_gen.c @@ -0,0 +1,100 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from providers/common/der/der_slh_dsa_gen.c.in + * + * Copyright 2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include "prov/der_slh_dsa.h" + +/* Well known OIDs precompiled */ + +/* + * id-slh-dsa-sha2-128s OBJECT IDENTIFIER ::= { sigAlgs 20 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_128s[DER_OID_SZ_id_slh_dsa_sha2_128s] = { + DER_OID_V_id_slh_dsa_sha2_128s +}; + +/* + * id-slh-dsa-sha2-128f OBJECT IDENTIFIER ::= { sigAlgs 21 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_128f[DER_OID_SZ_id_slh_dsa_sha2_128f] = { + DER_OID_V_id_slh_dsa_sha2_128f +}; + +/* + * id-slh-dsa-sha2-192s OBJECT IDENTIFIER ::= { sigAlgs 22 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_192s[DER_OID_SZ_id_slh_dsa_sha2_192s] = { + DER_OID_V_id_slh_dsa_sha2_192s +}; + +/* + * id-slh-dsa-sha2-192f OBJECT IDENTIFIER ::= { sigAlgs 23 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_192f[DER_OID_SZ_id_slh_dsa_sha2_192f] = { + DER_OID_V_id_slh_dsa_sha2_192f +}; + +/* + * id-slh-dsa-sha2-256s OBJECT IDENTIFIER ::= { sigAlgs 24 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_256s[DER_OID_SZ_id_slh_dsa_sha2_256s] = { + DER_OID_V_id_slh_dsa_sha2_256s +}; + +/* + * id-slh-dsa-sha2-256f OBJECT IDENTIFIER ::= { sigAlgs 25 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_256f[DER_OID_SZ_id_slh_dsa_sha2_256f] = { + DER_OID_V_id_slh_dsa_sha2_256f +}; + +/* + * id-slh-dsa-shake-128s OBJECT IDENTIFIER ::= { sigAlgs 26 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_128s[DER_OID_SZ_id_slh_dsa_shake_128s] = { + DER_OID_V_id_slh_dsa_shake_128s +}; + +/* + * id-slh-dsa-shake-128f OBJECT IDENTIFIER ::= { sigAlgs 27 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_128f[DER_OID_SZ_id_slh_dsa_shake_128f] = { + DER_OID_V_id_slh_dsa_shake_128f +}; + +/* + * id-slh-dsa-shake-192s OBJECT IDENTIFIER ::= { sigAlgs 28 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_192s[DER_OID_SZ_id_slh_dsa_shake_192s] = { + DER_OID_V_id_slh_dsa_shake_192s +}; + +/* + * id-slh-dsa-shake-192f OBJECT IDENTIFIER ::= { sigAlgs 29 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_192f[DER_OID_SZ_id_slh_dsa_shake_192f] = { + DER_OID_V_id_slh_dsa_shake_192f +}; + +/* + * id-slh-dsa-shake-256s OBJECT IDENTIFIER ::= { sigAlgs 30 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_256s[DER_OID_SZ_id_slh_dsa_shake_256s] = { + DER_OID_V_id_slh_dsa_shake_256s +}; + +/* + * id-slh-dsa-shake-256f OBJECT IDENTIFIER ::= { sigAlgs 31 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_256f[DER_OID_SZ_id_slh_dsa_shake_256f] = { + DER_OID_V_id_slh_dsa_shake_256f +}; + diff --git a/deps/openssl/config/archs/aix64-gcc-as/no-asm/providers/common/include/prov/der_ml_dsa.h b/deps/openssl/config/archs/aix64-gcc-as/no-asm/providers/common/include/prov/der_ml_dsa.h new file mode 100644 index 00000000000000..c55f780ab4527c --- /dev/null +++ b/deps/openssl/config/archs/aix64-gcc-as/no-asm/providers/common/include/prov/der_ml_dsa.h @@ -0,0 +1,40 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from providers/common/include/prov/der_ml_dsa.h.in + * + * Copyright 2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include "internal/der.h" +#include "crypto/ml_dsa.h" + +/* Well known OIDs precompiled */ + +/* + * id-ml-dsa-44 OBJECT IDENTIFIER ::= { sigAlgs 17 } + */ +#define DER_OID_V_id_ml_dsa_44 DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x11 +#define DER_OID_SZ_id_ml_dsa_44 11 +extern const unsigned char ossl_der_oid_id_ml_dsa_44[DER_OID_SZ_id_ml_dsa_44]; + +/* + * id-ml-dsa-65 OBJECT IDENTIFIER ::= { sigAlgs 18 } + */ +#define DER_OID_V_id_ml_dsa_65 DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x12 +#define DER_OID_SZ_id_ml_dsa_65 11 +extern const unsigned char ossl_der_oid_id_ml_dsa_65[DER_OID_SZ_id_ml_dsa_65]; + +/* + * id-ml-dsa-87 OBJECT IDENTIFIER ::= { sigAlgs 19 } + */ +#define DER_OID_V_id_ml_dsa_87 DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x13 +#define DER_OID_SZ_id_ml_dsa_87 11 +extern const unsigned char ossl_der_oid_id_ml_dsa_87[DER_OID_SZ_id_ml_dsa_87]; + + +int ossl_DER_w_algorithmIdentifier_ML_DSA(WPACKET *pkt, int tag, ML_DSA_KEY *key); diff --git a/deps/openssl/config/archs/aix64-gcc-as/no-asm/providers/common/include/prov/der_slh_dsa.h b/deps/openssl/config/archs/aix64-gcc-as/no-asm/providers/common/include/prov/der_slh_dsa.h new file mode 100644 index 00000000000000..760f8e7699be72 --- /dev/null +++ b/deps/openssl/config/archs/aix64-gcc-as/no-asm/providers/common/include/prov/der_slh_dsa.h @@ -0,0 +1,103 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from providers/common/include/prov/der_slh_dsa.h.in + * + * Copyright 2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include "internal/der.h" +#include "crypto/slh_dsa.h" + +/* Well known OIDs precompiled */ + +/* + * id-slh-dsa-sha2-128s OBJECT IDENTIFIER ::= { sigAlgs 20 } + */ +#define DER_OID_V_id_slh_dsa_sha2_128s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x14 +#define DER_OID_SZ_id_slh_dsa_sha2_128s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_128s[DER_OID_SZ_id_slh_dsa_sha2_128s]; + +/* + * id-slh-dsa-sha2-128f OBJECT IDENTIFIER ::= { sigAlgs 21 } + */ +#define DER_OID_V_id_slh_dsa_sha2_128f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x15 +#define DER_OID_SZ_id_slh_dsa_sha2_128f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_128f[DER_OID_SZ_id_slh_dsa_sha2_128f]; + +/* + * id-slh-dsa-sha2-192s OBJECT IDENTIFIER ::= { sigAlgs 22 } + */ +#define DER_OID_V_id_slh_dsa_sha2_192s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x16 +#define DER_OID_SZ_id_slh_dsa_sha2_192s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_192s[DER_OID_SZ_id_slh_dsa_sha2_192s]; + +/* + * id-slh-dsa-sha2-192f OBJECT IDENTIFIER ::= { sigAlgs 23 } + */ +#define DER_OID_V_id_slh_dsa_sha2_192f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x17 +#define DER_OID_SZ_id_slh_dsa_sha2_192f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_192f[DER_OID_SZ_id_slh_dsa_sha2_192f]; + +/* + * id-slh-dsa-sha2-256s OBJECT IDENTIFIER ::= { sigAlgs 24 } + */ +#define DER_OID_V_id_slh_dsa_sha2_256s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x18 +#define DER_OID_SZ_id_slh_dsa_sha2_256s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_256s[DER_OID_SZ_id_slh_dsa_sha2_256s]; + +/* + * id-slh-dsa-sha2-256f OBJECT IDENTIFIER ::= { sigAlgs 25 } + */ +#define DER_OID_V_id_slh_dsa_sha2_256f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x19 +#define DER_OID_SZ_id_slh_dsa_sha2_256f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_256f[DER_OID_SZ_id_slh_dsa_sha2_256f]; + +/* + * id-slh-dsa-shake-128s OBJECT IDENTIFIER ::= { sigAlgs 26 } + */ +#define DER_OID_V_id_slh_dsa_shake_128s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1A +#define DER_OID_SZ_id_slh_dsa_shake_128s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_128s[DER_OID_SZ_id_slh_dsa_shake_128s]; + +/* + * id-slh-dsa-shake-128f OBJECT IDENTIFIER ::= { sigAlgs 27 } + */ +#define DER_OID_V_id_slh_dsa_shake_128f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1B +#define DER_OID_SZ_id_slh_dsa_shake_128f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_128f[DER_OID_SZ_id_slh_dsa_shake_128f]; + +/* + * id-slh-dsa-shake-192s OBJECT IDENTIFIER ::= { sigAlgs 28 } + */ +#define DER_OID_V_id_slh_dsa_shake_192s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1C +#define DER_OID_SZ_id_slh_dsa_shake_192s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_192s[DER_OID_SZ_id_slh_dsa_shake_192s]; + +/* + * id-slh-dsa-shake-192f OBJECT IDENTIFIER ::= { sigAlgs 29 } + */ +#define DER_OID_V_id_slh_dsa_shake_192f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1D +#define DER_OID_SZ_id_slh_dsa_shake_192f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_192f[DER_OID_SZ_id_slh_dsa_shake_192f]; + +/* + * id-slh-dsa-shake-256s OBJECT IDENTIFIER ::= { sigAlgs 30 } + */ +#define DER_OID_V_id_slh_dsa_shake_256s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1E +#define DER_OID_SZ_id_slh_dsa_shake_256s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_256s[DER_OID_SZ_id_slh_dsa_shake_256s]; + +/* + * id-slh-dsa-shake-256f OBJECT IDENTIFIER ::= { sigAlgs 31 } + */ +#define DER_OID_V_id_slh_dsa_shake_256f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1F +#define DER_OID_SZ_id_slh_dsa_shake_256f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_256f[DER_OID_SZ_id_slh_dsa_shake_256f]; + + +int ossl_DER_w_algorithmIdentifier_SLH_DSA(WPACKET *pkt, int tag, SLH_DSA_KEY *key); diff --git a/deps/openssl/config/archs/darwin-i386-cc/asm/apps/progs.c b/deps/openssl/config/archs/darwin-i386-cc/asm/apps/progs.c index 43cef00799b86e..acc204a3e6e781 100644 --- a/deps/openssl/config/archs/darwin-i386-cc/asm/apps/progs.c +++ b/deps/openssl/config/archs/darwin-i386-cc/asm/apps/progs.c @@ -89,6 +89,7 @@ FUNCTION functions[] = { {FT_general, "s_time", s_time_main, s_time_options, NULL, NULL}, #endif {FT_general, "sess_id", sess_id_main, sess_id_options, NULL, NULL}, + {FT_general, "skeyutl", skeyutl_main, skeyutl_options, NULL, NULL}, {FT_general, "smime", smime_main, smime_options, NULL, NULL}, {FT_general, "speed", speed_main, speed_options, NULL, NULL}, {FT_general, "spkac", spkac_main, spkac_options, NULL, NULL}, @@ -225,9 +226,15 @@ FUNCTION functions[] = { {FT_cipher, "camellia-256-ecb", enc_main, enc_options, NULL}, #endif {FT_cipher, "base64", enc_main, enc_options, NULL}, -#ifdef ZLIB +#ifndef OPENSSL_NO_ZLIB {FT_cipher, "zlib", enc_main, enc_options, NULL}, #endif +#ifndef OPENSSL_NO_BROTLI + {FT_cipher, "brotli", enc_main, enc_options, NULL}, +#endif +#ifndef OPENSSL_NO_ZSTD + {FT_cipher, "zstd", enc_main, enc_options, NULL}, +#endif #ifndef OPENSSL_NO_DES {FT_cipher, "des", enc_main, enc_options, NULL}, #endif diff --git a/deps/openssl/config/archs/darwin-i386-cc/asm/configdata.pm b/deps/openssl/config/archs/darwin-i386-cc/asm/configdata.pm index 6fe0a303ac84ac..7a6aa71219bf5c 100644 --- a/deps/openssl/config/archs/darwin-i386-cc/asm/configdata.pm +++ b/deps/openssl/config/archs/darwin-i386-cc/asm/configdata.pm @@ -18,6 +18,7 @@ our %config = ( "ARFLAGS" => [ "qc" ], + "ASFLAGS" => [], "CC" => "gcc", "CFLAGS" => [ "-O3 -fomit-frame-pointer" @@ -27,14 +28,16 @@ our %config = ( "CPPINCLUDES" => [], "CXXFLAGS" => [], "FIPSKEY" => "f4556650ac31d35461610bac4ed81b1a181b2d8a43ea2854cbae22ca74560813", + "FIPS_VENDOR" => "OpenSSL FIPS Provider", "HASHBANGPERL" => "/usr/bin/env perl", "LDFLAGS" => [], "LDLIBS" => [], + "OBJCOPY" => "objcopy", "PERL" => "/usr/bin/perl", "RANLIB" => "ranlib -c", "RC" => "windres", "RCFLAGS" => [], - "api" => "30000", + "api" => "30500", "b32" => "1", "b64" => "0", "b64l" => "0", @@ -56,11 +59,13 @@ our %config = ( "doc/build.info", "test/build.info", "engines/build.info", + "exporters/build.info", "crypto/objects/build.info", "crypto/buffer/build.info", "crypto/bio/build.info", "crypto/stack/build.info", "crypto/lhash/build.info", + "crypto/hashtable/build.info", "crypto/rand/build.info", "crypto/evp/build.info", "crypto/asn1/build.info", @@ -78,6 +83,7 @@ our %config = ( "crypto/md5/build.info", "crypto/sha/build.info", "crypto/mdc2/build.info", + "crypto/ml_kem/build.info", "crypto/hmac/build.info", "crypto/ripemd/build.info", "crypto/whrlpool/build.info", @@ -119,11 +125,19 @@ our %config = ( "crypto/cmp/build.info", "crypto/encode_decode/build.info", "crypto/ffc/build.info", + "crypto/hpke/build.info", + "crypto/thread/build.info", + "crypto/ml_dsa/build.info", + "crypto/slh_dsa/build.info", + "ssl/record/build.info", + "ssl/rio/build.info", + "ssl/quic/build.info", "apps/lib/build.info", "providers/common/build.info", "providers/implementations/build.info", "providers/fips/build.info", "doc/man1/build.info", + "ssl/record/methods/build.info", "providers/common/der/build.info", "providers/implementations/digests/build.info", "providers/implementations/ciphers/build.info", @@ -137,6 +151,7 @@ our %config = ( "providers/implementations/encode_decode/build.info", "providers/implementations/storemgmt/build.info", "providers/implementations/kem/build.info", + "providers/implementations/skeymgmt/build.info", "providers/implementations/rands/seeding/build.info" ], "build_metadata" => "", @@ -156,7 +171,7 @@ our %config = ( ], "dynamic_engines" => "0", "ex_libs" => [], - "full_version" => "3.0.17", + "full_version" => "3.5.1", "includes" => [], "lflags" => [], "lib_defines" => [ @@ -165,37 +180,52 @@ our %config = ( "libdir" => "", "major" => "3", "makedep_scheme" => "gcc", - "minor" => "0", + "minor" => "5", "openssl_api_defines" => [ - "OPENSSL_CONFIGURED_API=30000" + "OPENSSL_CONFIGURED_API=30500" ], "openssl_feature_defines" => [ "OPENSSL_RAND_SEED_OS", "OPENSSL_THREADS", "OPENSSL_NO_AFALGENG", "OPENSSL_NO_ASAN", + "OPENSSL_NO_BROTLI", + "OPENSSL_NO_BROTLI_DYNAMIC", "OPENSSL_NO_COMP", "OPENSSL_NO_CRYPTO_MDEBUG", "OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE", + "OPENSSL_NO_DEMOS", "OPENSSL_NO_DEVCRYPTOENG", "OPENSSL_NO_EC_NISTP_64_GCC_128", "OPENSSL_NO_EGD", "OPENSSL_NO_EXTERNAL_TESTS", + "OPENSSL_NO_FIPS_JITTER", "OPENSSL_NO_FUZZ_AFL", "OPENSSL_NO_FUZZ_LIBFUZZER", + "OPENSSL_NO_H3DEMO", + "OPENSSL_NO_HQINTEROP", + "OPENSSL_NO_JITTER", "OPENSSL_NO_KTLS", "OPENSSL_NO_LOADERENG", "OPENSSL_NO_MD2", "OPENSSL_NO_MSAN", + "OPENSSL_NO_PIE", "OPENSSL_NO_RC5", "OPENSSL_NO_SCTP", "OPENSSL_NO_SSL3", "OPENSSL_NO_SSL3_METHOD", + "OPENSSL_NO_SSLKEYLOG", + "OPENSSL_NO_TFO", "OPENSSL_NO_TRACE", "OPENSSL_NO_UBSAN", "OPENSSL_NO_UNIT_TEST", "OPENSSL_NO_UPLINK", "OPENSSL_NO_WEAK_SSL_CIPHERS", + "OPENSSL_NO_WINSTORE", + "OPENSSL_NO_ZLIB", + "OPENSSL_NO_ZLIB_DYNAMIC", + "OPENSSL_NO_ZSTD", + "OPENSSL_NO_ZSTD_DYNAMIC", "OPENSSL_NO_DYNAMIC_ENGINE" ], "openssl_other_defines" => [ @@ -205,11 +235,11 @@ our %config = ( "OPENSSL_SYS_MACOSX" ], "openssldir" => "", - "options" => "enable-ssl-trace enable-fips no-afalgeng no-asan no-buildtest-c++ no-comp no-crypto-mdebug no-crypto-mdebug-backtrace no-devcryptoeng no-dynamic-engine no-ec_nistp_64_gcc_128 no-egd no-external-tests no-fuzz-afl no-fuzz-libfuzzer no-ktls no-loadereng no-md2 no-msan no-rc5 no-sctp no-shared no-ssl3 no-ssl3-method no-trace no-ubsan no-unit-test no-uplink no-weak-ssl-ciphers no-zlib no-zlib-dynamic", - "patch" => "17", + "options" => "enable-ssl-trace enable-fips no-afalgeng no-asan no-brotli no-brotli-dynamic no-buildtest-c++ no-comp no-crypto-mdebug no-crypto-mdebug-backtrace no-demos no-devcryptoeng no-dynamic-engine no-ec_nistp_64_gcc_128 no-egd no-external-tests no-fips-jitter no-fuzz-afl no-fuzz-libfuzzer no-h3demo no-hqinterop no-jitter no-ktls no-loadereng no-md2 no-msan no-pie no-rc5 no-sctp no-shared no-ssl3 no-ssl3-method no-sslkeylog no-tfo no-trace no-ubsan no-unit-test no-uplink no-weak-ssl-ciphers no-winstore no-zlib no-zlib-dynamic no-zstd no-zstd-dynamic", + "patch" => "1", "perl_archname" => "x86_64-linux-gnu-thread-multi", "perl_cmd" => "/usr/bin/perl", - "perl_version" => "5.38.2", + "perl_version" => "5.34.0", "perlargv" => [ "no-comp", "no-shared", @@ -239,6 +269,7 @@ our %config = ( "LDLIBS" => undef, "MT" => undef, "MTFLAGS" => undef, + "OBJCOPY" => undef, "OPENSSL_LOCAL_CONFIG_DIR" => undef, "PERL" => undef, "RANLIB" => undef, @@ -262,7 +293,7 @@ our %config = ( "shlib_version" => "3", "sourcedir" => ".", "target" => "darwin-i386-cc", - "version" => "3.0.17" + "version" => "3.5.1" ); our %target = ( "AR" => "ar", @@ -270,6 +301,7 @@ our %target = ( "CC" => "cc", "CFLAGS" => "-O3 -fomit-frame-pointer", "HASHBANGPERL" => "/usr/bin/env perl", + "OBJCOPY" => "objcopy", "RANLIB" => "ranlib -c", "RC" => "windres", "_conf_fname_int" => [ @@ -281,6 +313,8 @@ our %target = ( "Configurations/shared-info.pl" ], "asm_arch" => "x86", + "bin_cflags" => "", + "bin_lflags" => "", "bn_ops" => "BN_LLONG RC4_INT", "build_file" => "Makefile", "build_scheme" => [ @@ -295,6 +329,7 @@ our %target = ( "disable" => [], "dso_scheme" => "dlfcn", "enable" => [], + "ex_libs" => "", "includes" => [], "lflags" => "-Wl,-search_paths_first", "lib_cflags" => "", @@ -321,6 +356,8 @@ our %target = ( our @disablables = ( "acvp-tests", "afalgeng", + "apps", + "argon2", "aria", "asan", "asm", @@ -331,11 +368,14 @@ our @disablables = ( "autoload-config", "bf", "blake2", + "brotli", + "brotli-dynamic", "buildtest-c++", "bulk", "cached-fetch", "camellia", "capieng", + "winstore", "cast", "chacha", "cmac", @@ -344,11 +384,16 @@ our @disablables = ( "comp", "crypto-mdebug", "ct", + "default-thread-pool", + "demos", + "h3demo", + "hqinterop", "deprecated", "des", "devcryptoeng", "dgram", "dh", + "docs", "dsa", "dso", "dtls", @@ -358,6 +403,7 @@ our @disablables = ( "ec_nistp_64_gcc_128", "ecdh", "ecdsa", + "ecx", "egd", "engine", "err", @@ -365,10 +411,15 @@ our @disablables = ( "filenames", "fips", "fips-securitychecks", + "fips-post", + "fips-jitter", "fuzz-afl", "fuzz-libfuzzer", "gost", + "http", "idea", + "integrity-only-ciphers", + "jitter", "ktls", "legacy", "loadereng", @@ -376,6 +427,8 @@ our @disablables = ( "md2", "md4", "mdc2", + "ml-dsa", + "ml-kem", "module", "msan", "multiblock", @@ -384,10 +437,13 @@ our @disablables = ( "ocsp", "padlockeng", "pic", + "pie", "pinshared", "poly1305", "posix-io", "psk", + "quic", + "unstable-qlog", "rc2", "rc4", "rc5", @@ -401,7 +457,9 @@ our @disablables = ( "shared", "siphash", "siv", + "slh-dsa", "sm2", + "sm2-precomp", "sm3", "sm4", "sock", @@ -412,9 +470,13 @@ our @disablables = ( "ssl-trace", "static-engine", "stdio", + "sslkeylog", "tests", + "tfo", + "thread-pool", "threads", "tls", + "tls-deprecated-ec", "trace", "ts", "ubsan", @@ -425,6 +487,8 @@ our @disablables = ( "whirlpool", "zlib", "zlib-dynamic", + "zstd", + "zstd-dynamic", "ssl3", "ssl3-method", "tls1", @@ -445,33 +509,46 @@ our @disablables_int = ( our %disabled = ( "afalgeng" => "option", "asan" => "default", + "brotli" => "default", + "brotli-dynamic" => "default", "buildtest-c++" => "default", "comp" => "option", "crypto-mdebug" => "default", "crypto-mdebug-backtrace" => "default", + "demos" => "default", "devcryptoeng" => "default", "dynamic-engine" => "cascade", "ec_nistp_64_gcc_128" => "default", "egd" => "default", "external-tests" => "default", + "fips-jitter" => "default", "fuzz-afl" => "default", "fuzz-libfuzzer" => "default", + "h3demo" => "default", + "hqinterop" => "default", + "jitter" => "default", "ktls" => "default", "loadereng" => "cascade", "md2" => "default", "msan" => "default", + "pie" => "default", "rc5" => "default", "sctp" => "default", "shared" => "option", "ssl3" => "default", "ssl3-method" => "default", + "sslkeylog" => "default", + "tfo" => "default", "trace" => "default", "ubsan" => "default", "unit-test" => "default", "uplink" => "no uplink_arch", "weak-ssl-ciphers" => "default", + "winstore" => "not-windows", "zlib" => "default", - "zlib-dynamic" => "default" + "zlib-dynamic" => "default", + "zstd" => "default", + "zstd-dynamic" => "default" ); our %withargs = (); our %unified_info = ( @@ -697,6 +774,11 @@ our %unified_info = ( "pod" => "1" } }, + "doc/man1/openssl-skeyutl.pod" => { + "doc/man1/openssl-skeyutl.pod.in" => { + "pod" => "1" + } + }, "doc/man1/openssl-smime.pod" => { "doc/man1/openssl-smime.pod.in" => { "pod" => "1" @@ -754,6 +836,21 @@ our %unified_info = ( } }, "generate" => { + "exporters/OpenSSLConfig.cmake" => { + "exporter" => "cmake" + }, + "exporters/OpenSSLConfigVersion.cmake" => { + "exporter" => "cmake" + }, + "exporters/libcrypto.pc" => { + "exporter" => "pkg-config" + }, + "exporters/libssl.pc" => { + "exporter" => "pkg-config" + }, + "exporters/openssl.pc" => { + "exporter" => "pkg-config" + }, "include/openssl/configuration.h" => { "skip" => "1" } @@ -774,6 +871,9 @@ our %unified_info = ( "providers/liblegacy.a" => { "noinst" => "1" }, + "providers/libtemplate.a" => { + "noinst" => "1" + }, "test/libtestutil.a" => { "has_main" => "1", "noinst" => "1" @@ -791,6 +891,9 @@ our %unified_info = ( } }, "programs" => { + "fuzz/acert-test" => { + "noinst" => "1" + }, "fuzz/asn1-test" => { "noinst" => "1" }, @@ -821,9 +924,60 @@ our %unified_info = ( "fuzz/ct-test" => { "noinst" => "1" }, + "fuzz/decoder-test" => { + "noinst" => "1" + }, + "fuzz/dtlsclient-test" => { + "noinst" => "1" + }, + "fuzz/dtlsserver-test" => { + "noinst" => "1" + }, + "fuzz/hashtable-test" => { + "noinst" => "1" + }, + "fuzz/ml-dsa-test" => { + "noinst" => "1" + }, + "fuzz/ml-kem-test" => { + "noinst" => "1" + }, + "fuzz/pem-test" => { + "noinst" => "1" + }, + "fuzz/provider-test" => { + "noinst" => "1" + }, + "fuzz/punycode-test" => { + "noinst" => "1" + }, + "fuzz/quic-client-test" => { + "noinst" => "1" + }, + "fuzz/quic-lcidm-test" => { + "noinst" => "1" + }, + "fuzz/quic-rcidm-test" => { + "noinst" => "1" + }, + "fuzz/quic-server-test" => { + "noinst" => "1" + }, + "fuzz/quic-srtm-test" => { + "noinst" => "1" + }, "fuzz/server-test" => { "noinst" => "1" }, + "fuzz/slh-dsa-test" => { + "noinst" => "1" + }, + "fuzz/smime-test" => { + "noinst" => "1" + }, + "fuzz/v3name-test" => { + "noinst" => "1" + }, "fuzz/x509-test" => { "noinst" => "1" }, @@ -875,18 +1029,30 @@ our %unified_info = ( "test/bftest" => { "noinst" => "1" }, + "test/bio_addr_test" => { + "noinst" => "1" + }, + "test/bio_base64_test" => { + "noinst" => "1" + }, "test/bio_callback_test" => { "noinst" => "1" }, "test/bio_core_test" => { "noinst" => "1" }, + "test/bio_dgram_test" => { + "noinst" => "1" + }, "test/bio_enc_test" => { "noinst" => "1" }, "test/bio_memleak_test" => { "noinst" => "1" }, + "test/bio_meth_test" => { + "noinst" => "1" + }, "test/bio_prefix_text" => { "noinst" => "1" }, @@ -896,6 +1062,9 @@ our %unified_info = ( "test/bio_readbuffer_test" => { "noinst" => "1" }, + "test/bio_tfo_test" => { + "noinst" => "1" + }, "test/bioprinttest" => { "noinst" => "1" }, @@ -905,6 +1074,9 @@ our %unified_info = ( "test/bntest" => { "noinst" => "1" }, + "test/build_wincrypt_test" => { + "noinst" => "1" + }, "test/buildtest_c_aes" => { "noinst" => "1" }, @@ -920,6 +1092,9 @@ our %unified_info = ( "test/buildtest_c_buffer" => { "noinst" => "1" }, + "test/buildtest_c_byteorder" => { + "noinst" => "1" + }, "test/buildtest_c_camellia" => { "noinst" => "1" }, @@ -944,9 +1119,6 @@ our %unified_info = ( "test/buildtest_c_core_dispatch" => { "noinst" => "1" }, - "test/buildtest_c_core_names" => { - "noinst" => "1" - }, "test/buildtest_c_core_object" => { "noinst" => "1" }, @@ -971,6 +1143,9 @@ our %unified_info = ( "test/buildtest_c_e_os2" => { "noinst" => "1" }, + "test/buildtest_c_e_ostime" => { + "noinst" => "1" + }, "test/buildtest_c_ebcdic" => { "noinst" => "1" }, @@ -998,12 +1173,18 @@ our %unified_info = ( "test/buildtest_c_hmac" => { "noinst" => "1" }, + "test/buildtest_c_hpke" => { + "noinst" => "1" + }, "test/buildtest_c_http" => { "noinst" => "1" }, "test/buildtest_c_idea" => { "noinst" => "1" }, + "test/buildtest_c_indicator" => { + "noinst" => "1" + }, "test/buildtest_c_kdf" => { "noinst" => "1" }, @@ -1019,6 +1200,9 @@ our %unified_info = ( "test/buildtest_c_mdc2" => { "noinst" => "1" }, + "test/buildtest_c_ml_kem" => { + "noinst" => "1" + }, "test/buildtest_c_modes" => { "noinst" => "1" }, @@ -1049,6 +1233,9 @@ our %unified_info = ( "test/buildtest_c_provider" => { "noinst" => "1" }, + "test/buildtest_c_quic" => { + "noinst" => "1" + }, "test/buildtest_c_rand" => { "noinst" => "1" }, @@ -1091,6 +1278,9 @@ our %unified_info = ( "test/buildtest_c_symhacks" => { "noinst" => "1" }, + "test/buildtest_c_thread" => { + "noinst" => "1" + }, "test/buildtest_c_tls1" => { "noinst" => "1" }, @@ -1106,6 +1296,12 @@ our %unified_info = ( "test/buildtest_c_whrlpool" => { "noinst" => "1" }, + "test/byteorder_test" => { + "noinst" => "1" + }, + "test/ca_internals_test" => { + "noinst" => "1" + }, "test/casttest" => { "noinst" => "1" }, @@ -1190,6 +1386,9 @@ our %unified_info = ( "test/danetest" => { "noinst" => "1" }, + "test/decoder_propq_test" => { + "noinst" => "1" + }, "test/defltfips_test" => { "noinst" => "1" }, @@ -1262,15 +1461,24 @@ our %unified_info = ( "test/evp_pkey_ctx_new_from_name" => { "noinst" => "1" }, + "test/evp_pkey_dhkem_test" => { + "noinst" => "1" + }, "test/evp_pkey_dparams_test" => { "noinst" => "1" }, "test/evp_pkey_provided_test" => { "noinst" => "1" }, + "test/evp_skey_test" => { + "noinst" => "1" + }, "test/evp_test" => { "noinst" => "1" }, + "test/evp_xof_test" => { + "noinst" => "1" + }, "test/exdatatest" => { "noinst" => "1" }, @@ -1298,6 +1506,9 @@ our %unified_info = ( "test/hmactest" => { "noinst" => "1" }, + "test/hpke_test" => { + "noinst" => "1" + }, "test/http_test" => { "noinst" => "1" }, @@ -1307,12 +1518,18 @@ our %unified_info = ( "test/igetest" => { "noinst" => "1" }, + "test/json_test" => { + "noinst" => "1" + }, "test/keymgmt_internal_test" => { "noinst" => "1" }, "test/lhash_test" => { "noinst" => "1" }, + "test/list_test" => { + "noinst" => "1" + }, "test/localetest" => { "noinst" => "1" }, @@ -1322,9 +1539,21 @@ our %unified_info = ( "test/mdc2test" => { "noinst" => "1" }, + "test/membio_test" => { + "noinst" => "1" + }, "test/memleaktest" => { "noinst" => "1" }, + "test/ml_dsa_test" => { + "noinst" => "1" + }, + "test/ml_kem_evp_extra_test" => { + "noinst" => "1" + }, + "test/ml_kem_internal_test" => { + "noinst" => "1" + }, "test/modes_internal_test" => { "noinst" => "1" }, @@ -1343,6 +1572,9 @@ our %unified_info = ( "test/packettest" => { "noinst" => "1" }, + "test/pairwise_fail_test" => { + "noinst" => "1" + }, "test/param_build_test" => { "noinst" => "1" }, @@ -1367,6 +1599,9 @@ our %unified_info = ( "test/pemtest" => { "noinst" => "1" }, + "test/pkcs12_api_test" => { + "noinst" => "1" + }, "test/pkcs12_format_test" => { "noinst" => "1" }, @@ -1382,6 +1617,9 @@ our %unified_info = ( "test/poly1305_internal_test" => { "noinst" => "1" }, + "test/priority_queue_test" => { + "noinst" => "1" + }, "test/property_test" => { "noinst" => "1" }, @@ -1391,6 +1629,9 @@ our %unified_info = ( "test/provfetchtest" => { "noinst" => "1" }, + "test/provider_default_search_path_test" => { + "noinst" => "1" + }, "test/provider_fallback_test" => { "noinst" => "1" }, @@ -1409,6 +1650,72 @@ our %unified_info = ( "test/punycode_test" => { "noinst" => "1" }, + "test/quic_ackm_test" => { + "noinst" => "1" + }, + "test/quic_cc_test" => { + "noinst" => "1" + }, + "test/quic_cfq_test" => { + "noinst" => "1" + }, + "test/quic_client_test" => { + "noinst" => "1" + }, + "test/quic_fc_test" => { + "noinst" => "1" + }, + "test/quic_fifd_test" => { + "noinst" => "1" + }, + "test/quic_lcidm_test" => { + "noinst" => "1" + }, + "test/quic_multistream_test" => { + "noinst" => "1" + }, + "test/quic_newcid_test" => { + "noinst" => "1" + }, + "test/quic_qlog_test" => { + "noinst" => "1" + }, + "test/quic_radix_test" => { + "noinst" => "1" + }, + "test/quic_rcidm_test" => { + "noinst" => "1" + }, + "test/quic_record_test" => { + "noinst" => "1" + }, + "test/quic_srt_gen_test" => { + "noinst" => "1" + }, + "test/quic_srtm_test" => { + "noinst" => "1" + }, + "test/quic_stream_test" => { + "noinst" => "1" + }, + "test/quic_tserver_test" => { + "noinst" => "1" + }, + "test/quic_txp_test" => { + "noinst" => "1" + }, + "test/quic_txpim_test" => { + "noinst" => "1" + }, + "test/quic_wire_test" => { + "noinst" => "1" + }, + "test/quicapitest" => { + "noinst" => "1" + }, + "test/quicfaultstest" => { + "noinst" => "1" + }, "test/rand_status_test" => { "noinst" => "1" }, @@ -1424,12 +1731,15 @@ our %unified_info = ( "test/rc5test" => { "noinst" => "1" }, - "test/rdrand_sanitytest" => { + "test/rdcpu_sanitytest" => { "noinst" => "1" }, "test/recordlentest" => { "noinst" => "1" }, + "test/rpktest" => { + "noinst" => "1" + }, "test/rsa_complex" => { "noinst" => "1" }, @@ -1442,6 +1752,12 @@ our %unified_info = ( "test/rsa_test" => { "noinst" => "1" }, + "test/rsa_x931_test" => { + "noinst" => "1" + }, + "test/safe_math_test" => { + "noinst" => "1" + }, "test/sanitytest" => { "noinst" => "1" }, @@ -1457,6 +1773,9 @@ our %unified_info = ( "test/siphash_internal_test" => { "noinst" => "1" }, + "test/slh_dsa_test" => { + "noinst" => "1" + }, "test/sm2_internal_test" => { "noinst" => "1" }, @@ -1478,6 +1797,9 @@ our %unified_info = ( "test/ssl_ctx_test" => { "noinst" => "1" }, + "test/ssl_handshake_rtt_test" => { + "noinst" => "1" + }, "test/ssl_old_test" => { "noinst" => "1" }, @@ -1499,12 +1821,18 @@ our %unified_info = ( "test/stack_test" => { "noinst" => "1" }, + "test/strtoultest" => { + "noinst" => "1" + }, "test/sysdefaulttest" => { "noinst" => "1" }, "test/test_test" => { "noinst" => "1" }, + "test/threadpool_test" => { + "noinst" => "1" + }, "test/threadstest" => { "noinst" => "1" }, @@ -1514,12 +1842,18 @@ our %unified_info = ( "test/time_offset_test" => { "noinst" => "1" }, + "test/time_test" => { + "noinst" => "1" + }, "test/tls13ccstest" => { "noinst" => "1" }, "test/tls13encryptiontest" => { "noinst" => "1" }, + "test/tls13groupselection_test" => { + "noinst" => "1" + }, "test/trace_api_test" => { "noinst" => "1" }, @@ -1547,6 +1881,9 @@ our %unified_info = ( "test/wpackettest" => { "noinst" => "1" }, + "test/x509_acert_test" => { + "noinst" => "1" + }, "test/x509_check_cert_pkey_test" => { "noinst" => "1" }, @@ -1556,6 +1893,15 @@ our %unified_info = ( "test/x509_internal_test" => { "noinst" => "1" }, + "test/x509_load_cert_file_test" => { + "noinst" => "1" + }, + "test/x509_req_test" => { + "noinst" => "1" + }, + "test/x509_test" => { + "noinst" => "1" + }, "test/x509_time_test" => { "noinst" => "1" }, @@ -1658,6 +2004,9 @@ our %unified_info = ( "MD5_ASM", "RC4_ASM" ], + "test/endecode_test" => [ + "STATIC_LEGACY" + ], "test/evp_extra_test" => [ "STATIC_LEGACY" ], @@ -1670,14 +2019,21 @@ our %unified_info = ( }, "depends" => { "" => [ + "OpenSSLConfigVersion.cmake", + "crypto/params_idx.c", + "exporters/OpenSSLConfigVersion.cmake", + "exporters/openssl.pc", "include/crypto/bn_conf.h", "include/crypto/dso_conf.h", + "include/internal/param_names.h", "include/openssl/asn1.h", "include/openssl/asn1t.h", "include/openssl/bio.h", "include/openssl/cmp.h", "include/openssl/cms.h", + "include/openssl/comp.h", "include/openssl/conf.h", + "include/openssl/core_names.h", "include/openssl/crmf.h", "include/openssl/crypto.h", "include/openssl/ct.h", @@ -1694,10 +2050,22 @@ our %unified_info = ( "include/openssl/ssl.h", "include/openssl/ui.h", "include/openssl/x509.h", + "include/openssl/x509_acert.h", "include/openssl/x509_vfy.h", "include/openssl/x509v3.h", + "openssl.pc", "test/provider_internal_test.cnf" ], + "OpenSSLConfig.cmake" => [ + "builddata.pm" + ], + "OpenSSLConfigVersion.cmake" => [ + "OpenSSLConfig.cmake", + "builddata.pm" + ], + "apps/ca_internals_test-bin-ca.o" => [ + "apps/progs.h" + ], "apps/lib/cmp_client_test-bin-cmp_mock_srv.o" => [ "apps/progs.h" ], @@ -1843,6 +2211,9 @@ our %unified_info = ( "apps/openssl-bin-sess_id.o" => [ "apps/progs.h" ], + "apps/openssl-bin-skeyutl.o" => [ + "apps/progs.h" + ], "apps/openssl-bin-smime.o" => [ "apps/progs.h" ], @@ -1931,6 +2302,9 @@ our %unified_info = ( "crypto/libcrypto-lib-info.o" => [ "crypto/buildinf.h" ], + "crypto/params_idx.c" => [ + "util/perl|OpenSSL/paramnames.pm" + ], "crypto/rc4/rc4-586.S" => [ "crypto/perlasm/x86asm.pl" ], @@ -2096,6 +2470,9 @@ our %unified_info = ( "doc/html/man1/openssl-sess_id.html" => [ "doc/man1/openssl-sess_id.pod" ], + "doc/html/man1/openssl-skeyutl.html" => [ + "doc/man1/openssl-skeyutl.pod" + ], "doc/html/man1/openssl-smime.html" => [ "doc/man1/openssl-smime.pod" ], @@ -2237,6 +2614,9 @@ our %unified_info = ( "doc/html/man3/BIO_get_ex_new_index.html" => [ "doc/man3/BIO_get_ex_new_index.pod" ], + "doc/html/man3/BIO_get_rpoll_descriptor.html" => [ + "doc/man3/BIO_get_rpoll_descriptor.pod" + ], "doc/html/man3/BIO_meth_new.html" => [ "doc/man3/BIO_meth_new.pod" ], @@ -2273,6 +2653,9 @@ our %unified_info = ( "doc/html/man3/BIO_s_datagram.html" => [ "doc/man3/BIO_s_datagram.pod" ], + "doc/html/man3/BIO_s_dgram_pair.html" => [ + "doc/man3/BIO_s_dgram_pair.pod" + ], "doc/html/man3/BIO_s_fd.html" => [ "doc/man3/BIO_s_fd.pod" ], @@ -2288,6 +2671,9 @@ our %unified_info = ( "doc/html/man3/BIO_s_socket.html" => [ "doc/man3/BIO_s_socket.pod" ], + "doc/html/man3/BIO_sendmmsg.html" => [ + "doc/man3/BIO_sendmmsg.pod" + ], "doc/html/man3/BIO_set_callback.html" => [ "doc/man3/BIO_set_callback.pod" ], @@ -2360,6 +2746,9 @@ our %unified_info = ( "doc/html/man3/BUF_MEM_new.html" => [ "doc/man3/BUF_MEM_new.pod" ], + "doc/html/man3/CMAC_CTX.html" => [ + "doc/man3/CMAC_CTX.pod" + ], "doc/html/man3/CMS_EncryptedData_decrypt.html" => [ "doc/man3/CMS_EncryptedData_decrypt.pod" ], @@ -2426,6 +2815,9 @@ our %unified_info = ( "doc/html/man3/CMS_verify_receipt.html" => [ "doc/man3/CMS_verify_receipt.pod" ], + "doc/html/man3/COMP_CTX_new.html" => [ + "doc/man3/COMP_CTX_new.pod" + ], "doc/html/man3/CONF_modules_free.html" => [ "doc/man3/CONF_modules_free.pod" ], @@ -2525,6 +2917,12 @@ our %unified_info = ( "doc/html/man3/DTLS_set_timer_cb.html" => [ "doc/man3/DTLS_set_timer_cb.pod" ], + "doc/html/man3/DTLSv1_get_timeout.html" => [ + "doc/man3/DTLSv1_get_timeout.pod" + ], + "doc/html/man3/DTLSv1_handle_timeout.html" => [ + "doc/man3/DTLSv1_handle_timeout.pod" + ], "doc/html/man3/DTLSv1_listen.html" => [ "doc/man3/DTLSv1_listen.pod" ], @@ -2663,6 +3061,9 @@ our %unified_info = ( "doc/html/man3/EVP_PKEY_CTX_get0_pkey.html" => [ "doc/man3/EVP_PKEY_CTX_get0_pkey.pod" ], + "doc/html/man3/EVP_PKEY_CTX_get_algor.html" => [ + "doc/man3/EVP_PKEY_CTX_get_algor.pod" + ], "doc/html/man3/EVP_PKEY_CTX_new.html" => [ "doc/man3/EVP_PKEY_CTX_new.pod" ], @@ -2780,6 +3181,12 @@ our %unified_info = ( "doc/html/man3/EVP_SIGNATURE.html" => [ "doc/man3/EVP_SIGNATURE.pod" ], + "doc/html/man3/EVP_SKEY.html" => [ + "doc/man3/EVP_SKEY.pod" + ], + "doc/html/man3/EVP_SKEYMGMT.html" => [ + "doc/man3/EVP_SKEYMGMT.pod" + ], "doc/html/man3/EVP_SealInit.html" => [ "doc/man3/EVP_SealInit.pod" ], @@ -2867,6 +3274,9 @@ our %unified_info = ( "doc/html/man3/EVP_whirlpool.html" => [ "doc/man3/EVP_whirlpool.pod" ], + "doc/html/man3/GENERAL_NAME.html" => [ + "doc/man3/GENERAL_NAME.pod" + ], "doc/html/man3/HMAC.html" => [ "doc/man3/HMAC.pod" ], @@ -2939,9 +3349,15 @@ our %unified_info = ( "doc/html/man3/OPENSSL_load_builtin_modules.html" => [ "doc/man3/OPENSSL_load_builtin_modules.pod" ], + "doc/html/man3/OPENSSL_load_u16_le.html" => [ + "doc/man3/OPENSSL_load_u16_le.pod" + ], "doc/html/man3/OPENSSL_malloc.html" => [ "doc/man3/OPENSSL_malloc.pod" ], + "doc/html/man3/OPENSSL_riscvcap.html" => [ + "doc/man3/OPENSSL_riscvcap.pod" + ], "doc/html/man3/OPENSSL_s390xcap.html" => [ "doc/man3/OPENSSL_s390xcap.pod" ], @@ -2957,12 +3373,18 @@ our %unified_info = ( "doc/html/man3/OSSL_CALLBACK.html" => [ "doc/man3/OSSL_CALLBACK.pod" ], + "doc/html/man3/OSSL_CMP_ATAV_set0.html" => [ + "doc/man3/OSSL_CMP_ATAV_set0.pod" + ], "doc/html/man3/OSSL_CMP_CTX_new.html" => [ "doc/man3/OSSL_CMP_CTX_new.pod" ], "doc/html/man3/OSSL_CMP_HDR_get0_transactionID.html" => [ "doc/man3/OSSL_CMP_HDR_get0_transactionID.pod" ], + "doc/html/man3/OSSL_CMP_ITAV_new_caCerts.html" => [ + "doc/man3/OSSL_CMP_ITAV_new_caCerts.pod" + ], "doc/html/man3/OSSL_CMP_ITAV_set0.html" => [ "doc/man3/OSSL_CMP_ITAV_set0.pod" ], @@ -3032,9 +3454,18 @@ our %unified_info = ( "doc/html/man3/OSSL_ENCODER_to_bio.html" => [ "doc/man3/OSSL_ENCODER_to_bio.pod" ], + "doc/html/man3/OSSL_ERR_STATE_save.html" => [ + "doc/man3/OSSL_ERR_STATE_save.pod" + ], "doc/html/man3/OSSL_ESS_check_signing_certs.html" => [ "doc/man3/OSSL_ESS_check_signing_certs.pod" ], + "doc/html/man3/OSSL_GENERAL_NAMES_print.html" => [ + "doc/man3/OSSL_GENERAL_NAMES_print.pod" + ], + "doc/html/man3/OSSL_HPKE_CTX_new.html" => [ + "doc/man3/OSSL_HPKE_CTX_new.pod" + ], "doc/html/man3/OSSL_HTTP_REQ_CTX.html" => [ "doc/man3/OSSL_HTTP_REQ_CTX.pod" ], @@ -3044,12 +3475,24 @@ our %unified_info = ( "doc/html/man3/OSSL_HTTP_transfer.html" => [ "doc/man3/OSSL_HTTP_transfer.pod" ], + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX.html" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX.pod" + ], + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX_print.html" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX_print.pod" + ], + "doc/html/man3/OSSL_INDICATOR_set_callback.html" => [ + "doc/man3/OSSL_INDICATOR_set_callback.pod" + ], "doc/html/man3/OSSL_ITEM.html" => [ "doc/man3/OSSL_ITEM.pod" ], "doc/html/man3/OSSL_LIB_CTX.html" => [ "doc/man3/OSSL_LIB_CTX.pod" ], + "doc/html/man3/OSSL_LIB_CTX_set_conf_diagnostics.html" => [ + "doc/man3/OSSL_LIB_CTX_set_conf_diagnostics.pod" + ], "doc/html/man3/OSSL_PARAM.html" => [ "doc/man3/OSSL_PARAM.pod" ], @@ -3065,9 +3508,15 @@ our %unified_info = ( "doc/html/man3/OSSL_PARAM_int.html" => [ "doc/man3/OSSL_PARAM_int.pod" ], + "doc/html/man3/OSSL_PARAM_print_to_bio.html" => [ + "doc/man3/OSSL_PARAM_print_to_bio.pod" + ], "doc/html/man3/OSSL_PROVIDER.html" => [ "doc/man3/OSSL_PROVIDER.pod" ], + "doc/html/man3/OSSL_QUIC_client_method.html" => [ + "doc/man3/OSSL_QUIC_client_method.pod" + ], "doc/html/man3/OSSL_SELF_TEST_new.html" => [ "doc/man3/OSSL_SELF_TEST_new.pod" ], @@ -3092,6 +3541,9 @@ our %unified_info = ( "doc/html/man3/OSSL_STORE_open.html" => [ "doc/man3/OSSL_STORE_open.pod" ], + "doc/html/man3/OSSL_sleep.html" => [ + "doc/man3/OSSL_sleep.pod" + ], "doc/html/man3/OSSL_trace_enabled.html" => [ "doc/man3/OSSL_trace_enabled.pod" ], @@ -3107,6 +3559,9 @@ our %unified_info = ( "doc/html/man3/OpenSSL_version.html" => [ "doc/man3/OpenSSL_version.pod" ], + "doc/html/man3/PBMAC1_get1_pbkdf2_param.html" => [ + "doc/man3/PBMAC1_get1_pbkdf2_param.pod" + ], "doc/html/man3/PEM_X509_INFO_read_bio_ex.html" => [ "doc/man3/PEM_X509_INFO_read_bio_ex.pod" ], @@ -3143,6 +3598,9 @@ our %unified_info = ( "doc/html/man3/PKCS12_SAFEBAG_get1_cert.html" => [ "doc/man3/PKCS12_SAFEBAG_get1_cert.pod" ], + "doc/html/man3/PKCS12_SAFEBAG_set0_attrs.html" => [ + "doc/man3/PKCS12_SAFEBAG_set0_attrs.pod" + ], "doc/html/man3/PKCS12_add1_attr_by_NID.html" => [ "doc/man3/PKCS12_add1_attr_by_NID.pod" ], @@ -3416,6 +3874,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set0_CA_list.html" => [ "doc/man3/SSL_CTX_set0_CA_list.pod" ], + "doc/html/man3/SSL_CTX_set1_cert_comp_preference.html" => [ + "doc/man3/SSL_CTX_set1_cert_comp_preference.pod" + ], "doc/html/man3/SSL_CTX_set1_curves.html" => [ "doc/man3/SSL_CTX_set1_curves.pod" ], @@ -3455,6 +3916,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_default_passwd_cb.html" => [ "doc/man3/SSL_CTX_set_default_passwd_cb.pod" ], + "doc/html/man3/SSL_CTX_set_domain_flags.html" => [ + "doc/man3/SSL_CTX_set_domain_flags.pod" + ], "doc/html/man3/SSL_CTX_set_generate_session_id.html" => [ "doc/man3/SSL_CTX_set_generate_session_id.pod" ], @@ -3476,6 +3940,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_msg_callback.html" => [ "doc/man3/SSL_CTX_set_msg_callback.pod" ], + "doc/html/man3/SSL_CTX_set_new_pending_conn_cb.html" => [ + "doc/man3/SSL_CTX_set_new_pending_conn_cb.pod" + ], "doc/html/man3/SSL_CTX_set_num_tickets.html" => [ "doc/man3/SSL_CTX_set_num_tickets.pod" ], @@ -3590,6 +4057,9 @@ our %unified_info = ( "doc/html/man3/SSL_accept.html" => [ "doc/man3/SSL_accept.pod" ], + "doc/html/man3/SSL_accept_stream.html" => [ + "doc/man3/SSL_accept_stream.pod" + ], "doc/html/man3/SSL_alert_type_string.html" => [ "doc/man3/SSL_alert_type_string.pod" ], @@ -3617,9 +4087,21 @@ our %unified_info = ( "doc/html/man3/SSL_free.html" => [ "doc/man3/SSL_free.pod" ], + "doc/html/man3/SSL_get0_connection.html" => [ + "doc/man3/SSL_get0_connection.pod" + ], + "doc/html/man3/SSL_get0_group_name.html" => [ + "doc/man3/SSL_get0_group_name.pod" + ], + "doc/html/man3/SSL_get0_peer_rpk.html" => [ + "doc/man3/SSL_get0_peer_rpk.pod" + ], "doc/html/man3/SSL_get0_peer_scts.html" => [ "doc/man3/SSL_get0_peer_scts.pod" ], + "doc/html/man3/SSL_get1_builtin_sigalgs.html" => [ + "doc/man3/SSL_get1_builtin_sigalgs.pod" + ], "doc/html/man3/SSL_get_SSL_CTX.html" => [ "doc/man3/SSL_get_SSL_CTX.pod" ], @@ -3635,6 +4117,9 @@ our %unified_info = ( "doc/html/man3/SSL_get_client_random.html" => [ "doc/man3/SSL_get_client_random.pod" ], + "doc/html/man3/SSL_get_conn_close_info.html" => [ + "doc/man3/SSL_get_conn_close_info.pod" + ], "doc/html/man3/SSL_get_current_cipher.html" => [ "doc/man3/SSL_get_current_cipher.pod" ], @@ -3644,12 +4129,18 @@ our %unified_info = ( "doc/html/man3/SSL_get_error.html" => [ "doc/man3/SSL_get_error.pod" ], + "doc/html/man3/SSL_get_event_timeout.html" => [ + "doc/man3/SSL_get_event_timeout.pod" + ], "doc/html/man3/SSL_get_extms_support.html" => [ "doc/man3/SSL_get_extms_support.pod" ], "doc/html/man3/SSL_get_fd.html" => [ "doc/man3/SSL_get_fd.pod" ], + "doc/html/man3/SSL_get_handshake_rtt.html" => [ + "doc/man3/SSL_get_handshake_rtt.pod" + ], "doc/html/man3/SSL_get_peer_cert_chain.html" => [ "doc/man3/SSL_get_peer_cert_chain.pod" ], @@ -3668,12 +4159,24 @@ our %unified_info = ( "doc/html/man3/SSL_get_rbio.html" => [ "doc/man3/SSL_get_rbio.pod" ], + "doc/html/man3/SSL_get_rpoll_descriptor.html" => [ + "doc/man3/SSL_get_rpoll_descriptor.pod" + ], "doc/html/man3/SSL_get_session.html" => [ "doc/man3/SSL_get_session.pod" ], "doc/html/man3/SSL_get_shared_sigalgs.html" => [ "doc/man3/SSL_get_shared_sigalgs.pod" ], + "doc/html/man3/SSL_get_stream_id.html" => [ + "doc/man3/SSL_get_stream_id.pod" + ], + "doc/html/man3/SSL_get_stream_read_state.html" => [ + "doc/man3/SSL_get_stream_read_state.pod" + ], + "doc/html/man3/SSL_get_value_uint.html" => [ + "doc/man3/SSL_get_value_uint.pod" + ], "doc/html/man3/SSL_get_verify_result.html" => [ "doc/man3/SSL_get_verify_result.pod" ], @@ -3683,9 +4186,15 @@ our %unified_info = ( "doc/html/man3/SSL_group_to_name.html" => [ "doc/man3/SSL_group_to_name.pod" ], + "doc/html/man3/SSL_handle_events.html" => [ + "doc/man3/SSL_handle_events.pod" + ], "doc/html/man3/SSL_in_init.html" => [ "doc/man3/SSL_in_init.pod" ], + "doc/html/man3/SSL_inject_net_dgram.html" => [ + "doc/man3/SSL_inject_net_dgram.pod" + ], "doc/html/man3/SSL_key_update.html" => [ "doc/man3/SSL_key_update.pod" ], @@ -3698,9 +4207,21 @@ our %unified_info = ( "doc/html/man3/SSL_new.html" => [ "doc/man3/SSL_new.pod" ], + "doc/html/man3/SSL_new_domain.html" => [ + "doc/man3/SSL_new_domain.pod" + ], + "doc/html/man3/SSL_new_listener.html" => [ + "doc/man3/SSL_new_listener.pod" + ], + "doc/html/man3/SSL_new_stream.html" => [ + "doc/man3/SSL_new_stream.pod" + ], "doc/html/man3/SSL_pending.html" => [ "doc/man3/SSL_pending.pod" ], + "doc/html/man3/SSL_poll.html" => [ + "doc/man3/SSL_poll.pod" + ], "doc/html/man3/SSL_read.html" => [ "doc/man3/SSL_read.pod" ], @@ -3716,24 +4237,45 @@ our %unified_info = ( "doc/html/man3/SSL_set1_host.html" => [ "doc/man3/SSL_set1_host.pod" ], + "doc/html/man3/SSL_set1_initial_peer_addr.html" => [ + "doc/man3/SSL_set1_initial_peer_addr.pod" + ], + "doc/html/man3/SSL_set1_server_cert_type.html" => [ + "doc/man3/SSL_set1_server_cert_type.pod" + ], "doc/html/man3/SSL_set_async_callback.html" => [ "doc/man3/SSL_set_async_callback.pod" ], "doc/html/man3/SSL_set_bio.html" => [ "doc/man3/SSL_set_bio.pod" ], + "doc/html/man3/SSL_set_blocking_mode.html" => [ + "doc/man3/SSL_set_blocking_mode.pod" + ], "doc/html/man3/SSL_set_connect_state.html" => [ "doc/man3/SSL_set_connect_state.pod" ], + "doc/html/man3/SSL_set_default_stream_mode.html" => [ + "doc/man3/SSL_set_default_stream_mode.pod" + ], "doc/html/man3/SSL_set_fd.html" => [ "doc/man3/SSL_set_fd.pod" ], + "doc/html/man3/SSL_set_incoming_stream_policy.html" => [ + "doc/man3/SSL_set_incoming_stream_policy.pod" + ], + "doc/html/man3/SSL_set_quic_tls_cbs.html" => [ + "doc/man3/SSL_set_quic_tls_cbs.pod" + ], "doc/html/man3/SSL_set_retry_verify.html" => [ "doc/man3/SSL_set_retry_verify.pod" ], "doc/html/man3/SSL_set_session.html" => [ "doc/man3/SSL_set_session.pod" ], + "doc/html/man3/SSL_set_session_secret_cb.html" => [ + "doc/man3/SSL_set_session_secret_cb.pod" + ], "doc/html/man3/SSL_set_shutdown.html" => [ "doc/man3/SSL_set_shutdown.pod" ], @@ -3746,6 +4288,12 @@ our %unified_info = ( "doc/html/man3/SSL_state_string.html" => [ "doc/man3/SSL_state_string.pod" ], + "doc/html/man3/SSL_stream_conclude.html" => [ + "doc/man3/SSL_stream_conclude.pod" + ], + "doc/html/man3/SSL_stream_reset.html" => [ + "doc/man3/SSL_stream_reset.pod" + ], "doc/html/man3/SSL_want.html" => [ "doc/man3/SSL_want.pod" ], @@ -3755,8 +4303,8 @@ our %unified_info = ( "doc/html/man3/TS_RESP_CTX_new.html" => [ "doc/man3/TS_RESP_CTX_new.pod" ], - "doc/html/man3/TS_VERIFY_CTX_set_certs.html" => [ - "doc/man3/TS_VERIFY_CTX_set_certs.pod" + "doc/html/man3/TS_VERIFY_CTX.html" => [ + "doc/man3/TS_VERIFY_CTX.pod" ], "doc/html/man3/UI_STRING.html" => [ "doc/man3/UI_STRING.pod" @@ -3776,6 +4324,21 @@ our %unified_info = ( "doc/html/man3/X509V3_set_ctx.html" => [ "doc/man3/X509V3_set_ctx.pod" ], + "doc/html/man3/X509_ACERT_add1_attr.html" => [ + "doc/man3/X509_ACERT_add1_attr.pod" + ], + "doc/html/man3/X509_ACERT_add_attr_nconf.html" => [ + "doc/man3/X509_ACERT_add_attr_nconf.pod" + ], + "doc/html/man3/X509_ACERT_get0_holder_baseCertId.html" => [ + "doc/man3/X509_ACERT_get0_holder_baseCertId.pod" + ], + "doc/html/man3/X509_ACERT_get_attr.html" => [ + "doc/man3/X509_ACERT_get_attr.pod" + ], + "doc/html/man3/X509_ACERT_print_ex.html" => [ + "doc/man3/X509_ACERT_print_ex.pod" + ], "doc/html/man3/X509_ALGOR_dup.html" => [ "doc/man3/X509_ALGOR_dup.pod" ], @@ -3824,6 +4387,9 @@ our %unified_info = ( "doc/html/man3/X509_SIG_get0.html" => [ "doc/man3/X509_SIG_get0.pod" ], + "doc/html/man3/X509_STORE_CTX_get_by_subject.html" => [ + "doc/man3/X509_STORE_CTX_get_by_subject.pod" + ], "doc/html/man3/X509_STORE_CTX_get_error.html" => [ "doc/man3/X509_STORE_CTX_get_error.pod" ], @@ -3890,6 +4456,9 @@ our %unified_info = ( "doc/html/man3/X509_get0_uids.html" => [ "doc/man3/X509_get0_uids.pod" ], + "doc/html/man3/X509_get_default_cert_file.html" => [ + "doc/man3/X509_get_default_cert_file.pod" + ], "doc/html/man3/X509_get_extension_flags.html" => [ "doc/man3/X509_get_extension_flags.pod" ], @@ -4013,9 +4582,15 @@ our %unified_info = ( "doc/html/man7/EVP_CIPHER-SM4.html" => [ "doc/man7/EVP_CIPHER-SM4.pod" ], + "doc/html/man7/EVP_KDF-ARGON2.html" => [ + "doc/man7/EVP_KDF-ARGON2.pod" + ], "doc/html/man7/EVP_KDF-HKDF.html" => [ "doc/man7/EVP_KDF-HKDF.pod" ], + "doc/html/man7/EVP_KDF-HMAC-DRBG.html" => [ + "doc/man7/EVP_KDF-HMAC-DRBG.pod" + ], "doc/html/man7/EVP_KDF-KB.html" => [ "doc/man7/EVP_KDF-KB.pod" ], @@ -4031,6 +4606,9 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-PKCS12KDF.html" => [ "doc/man7/EVP_KDF-PKCS12KDF.pod" ], + "doc/html/man7/EVP_KDF-PVKKDF.html" => [ + "doc/man7/EVP_KDF-PVKKDF.pod" + ], "doc/html/man7/EVP_KDF-SCRYPT.html" => [ "doc/man7/EVP_KDF-SCRYPT.pod" ], @@ -4055,9 +4633,18 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-X963.html" => [ "doc/man7/EVP_KDF-X963.pod" ], + "doc/html/man7/EVP_KEM-EC.html" => [ + "doc/man7/EVP_KEM-EC.pod" + ], + "doc/html/man7/EVP_KEM-ML-KEM.html" => [ + "doc/man7/EVP_KEM-ML-KEM.pod" + ], "doc/html/man7/EVP_KEM-RSA.html" => [ "doc/man7/EVP_KEM-RSA.pod" ], + "doc/html/man7/EVP_KEM-X25519.html" => [ + "doc/man7/EVP_KEM-X25519.pod" + ], "doc/html/man7/EVP_KEYEXCH-DH.html" => [ "doc/man7/EVP_KEYEXCH-DH.pod" ], @@ -4091,6 +4678,9 @@ our %unified_info = ( "doc/html/man7/EVP_MD-BLAKE2.html" => [ "doc/man7/EVP_MD-BLAKE2.pod" ], + "doc/html/man7/EVP_MD-KECCAK.html" => [ + "doc/man7/EVP_MD-KECCAK.pod" + ], "doc/html/man7/EVP_MD-MD2.html" => [ "doc/man7/EVP_MD-MD2.pod" ], @@ -4148,15 +4738,27 @@ our %unified_info = ( "doc/html/man7/EVP_PKEY-HMAC.html" => [ "doc/man7/EVP_PKEY-HMAC.pod" ], + "doc/html/man7/EVP_PKEY-ML-DSA.html" => [ + "doc/man7/EVP_PKEY-ML-DSA.pod" + ], + "doc/html/man7/EVP_PKEY-ML-KEM.html" => [ + "doc/man7/EVP_PKEY-ML-KEM.pod" + ], "doc/html/man7/EVP_PKEY-RSA.html" => [ "doc/man7/EVP_PKEY-RSA.pod" ], + "doc/html/man7/EVP_PKEY-SLH-DSA.html" => [ + "doc/man7/EVP_PKEY-SLH-DSA.pod" + ], "doc/html/man7/EVP_PKEY-SM2.html" => [ "doc/man7/EVP_PKEY-SM2.pod" ], "doc/html/man7/EVP_PKEY-X25519.html" => [ "doc/man7/EVP_PKEY-X25519.pod" ], + "doc/html/man7/EVP_RAND-CRNG-TEST.html" => [ + "doc/man7/EVP_RAND-CRNG-TEST.pod" + ], "doc/html/man7/EVP_RAND-CTR-DRBG.html" => [ "doc/man7/EVP_RAND-CTR-DRBG.pod" ], @@ -4166,6 +4768,9 @@ our %unified_info = ( "doc/html/man7/EVP_RAND-HMAC-DRBG.html" => [ "doc/man7/EVP_RAND-HMAC-DRBG.pod" ], + "doc/html/man7/EVP_RAND-JITTER.html" => [ + "doc/man7/EVP_RAND-JITTER.pod" + ], "doc/html/man7/EVP_RAND-SEED-SRC.html" => [ "doc/man7/EVP_RAND-SEED-SRC.pod" ], @@ -4187,9 +4792,15 @@ our %unified_info = ( "doc/html/man7/EVP_SIGNATURE-HMAC.html" => [ "doc/man7/EVP_SIGNATURE-HMAC.pod" ], + "doc/html/man7/EVP_SIGNATURE-ML-DSA.html" => [ + "doc/man7/EVP_SIGNATURE-ML-DSA.pod" + ], "doc/html/man7/EVP_SIGNATURE-RSA.html" => [ "doc/man7/EVP_SIGNATURE-RSA.pod" ], + "doc/html/man7/EVP_SIGNATURE-SLH-DSA.html" => [ + "doc/man7/EVP_SIGNATURE-SLH-DSA.pod" + ], "doc/html/man7/OSSL_PROVIDER-FIPS.html" => [ "doc/man7/OSSL_PROVIDER-FIPS.pod" ], @@ -4205,6 +4816,9 @@ our %unified_info = ( "doc/html/man7/OSSL_PROVIDER-null.html" => [ "doc/man7/OSSL_PROVIDER-null.pod" ], + "doc/html/man7/OSSL_STORE-winstore.html" => [ + "doc/man7/OSSL_STORE-winstore.pod" + ], "doc/html/man7/RAND.html" => [ "doc/man7/RAND.pod" ], @@ -4217,9 +4831,6 @@ our %unified_info = ( "doc/html/man7/bio.html" => [ "doc/man7/bio.pod" ], - "doc/html/man7/crypto.html" => [ - "doc/man7/crypto.pod" - ], "doc/html/man7/ct.html" => [ "doc/man7/ct.pod" ], @@ -4250,9 +4861,6 @@ our %unified_info = ( "doc/html/man7/life_cycle-rand.html" => [ "doc/man7/life_cycle-rand.pod" ], - "doc/html/man7/migration_guide.html" => [ - "doc/man7/migration_guide.pod" - ], "doc/html/man7/openssl-core.h.html" => [ "doc/man7/openssl-core.h.pod" ], @@ -4268,12 +4876,66 @@ our %unified_info = ( "doc/html/man7/openssl-glossary.html" => [ "doc/man7/openssl-glossary.pod" ], + "doc/html/man7/openssl-qlog.html" => [ + "doc/man7/openssl-qlog.pod" + ], + "doc/html/man7/openssl-quic-concurrency.html" => [ + "doc/man7/openssl-quic-concurrency.pod" + ], + "doc/html/man7/openssl-quic.html" => [ + "doc/man7/openssl-quic.pod" + ], "doc/html/man7/openssl-threads.html" => [ "doc/man7/openssl-threads.pod" ], "doc/html/man7/openssl_user_macros.html" => [ "doc/man7/openssl_user_macros.pod" ], + "doc/html/man7/ossl-guide-introduction.html" => [ + "doc/man7/ossl-guide-introduction.pod" + ], + "doc/html/man7/ossl-guide-libcrypto-introduction.html" => [ + "doc/man7/ossl-guide-libcrypto-introduction.pod" + ], + "doc/html/man7/ossl-guide-libraries-introduction.html" => [ + "doc/man7/ossl-guide-libraries-introduction.pod" + ], + "doc/html/man7/ossl-guide-libssl-introduction.html" => [ + "doc/man7/ossl-guide-libssl-introduction.pod" + ], + "doc/html/man7/ossl-guide-migration.html" => [ + "doc/man7/ossl-guide-migration.pod" + ], + "doc/html/man7/ossl-guide-quic-client-block.html" => [ + "doc/man7/ossl-guide-quic-client-block.pod" + ], + "doc/html/man7/ossl-guide-quic-client-non-block.html" => [ + "doc/man7/ossl-guide-quic-client-non-block.pod" + ], + "doc/html/man7/ossl-guide-quic-introduction.html" => [ + "doc/man7/ossl-guide-quic-introduction.pod" + ], + "doc/html/man7/ossl-guide-quic-multi-stream.html" => [ + "doc/man7/ossl-guide-quic-multi-stream.pod" + ], + "doc/html/man7/ossl-guide-quic-server-block.html" => [ + "doc/man7/ossl-guide-quic-server-block.pod" + ], + "doc/html/man7/ossl-guide-quic-server-non-block.html" => [ + "doc/man7/ossl-guide-quic-server-non-block.pod" + ], + "doc/html/man7/ossl-guide-tls-client-block.html" => [ + "doc/man7/ossl-guide-tls-client-block.pod" + ], + "doc/html/man7/ossl-guide-tls-client-non-block.html" => [ + "doc/man7/ossl-guide-tls-client-non-block.pod" + ], + "doc/html/man7/ossl-guide-tls-introduction.html" => [ + "doc/man7/ossl-guide-tls-introduction.pod" + ], + "doc/html/man7/ossl-guide-tls-server-block.html" => [ + "doc/man7/ossl-guide-tls-server-block.pod" + ], "doc/html/man7/ossl_store-file.html" => [ "doc/man7/ossl_store-file.pod" ], @@ -4328,6 +4990,9 @@ our %unified_info = ( "doc/html/man7/provider-signature.html" => [ "doc/man7/provider-signature.pod" ], + "doc/html/man7/provider-skeymgmt.html" => [ + "doc/man7/provider-skeymgmt.pod" + ], "doc/html/man7/provider-storemgmt.html" => [ "doc/man7/provider-storemgmt.pod" ], @@ -4337,9 +5002,6 @@ our %unified_info = ( "doc/html/man7/proxy-certificates.html" => [ "doc/man7/proxy-certificates.pod" ], - "doc/html/man7/ssl.html" => [ - "doc/man7/ssl.pod" - ], "doc/html/man7/x509.html" => [ "doc/man7/x509.pod" ], @@ -4487,6 +5149,9 @@ our %unified_info = ( "doc/man/man1/openssl-sess_id.1" => [ "doc/man1/openssl-sess_id.pod" ], + "doc/man/man1/openssl-skeyutl.1" => [ + "doc/man1/openssl-skeyutl.pod" + ], "doc/man/man1/openssl-smime.1" => [ "doc/man1/openssl-smime.pod" ], @@ -4628,6 +5293,9 @@ our %unified_info = ( "doc/man/man3/BIO_get_ex_new_index.3" => [ "doc/man3/BIO_get_ex_new_index.pod" ], + "doc/man/man3/BIO_get_rpoll_descriptor.3" => [ + "doc/man3/BIO_get_rpoll_descriptor.pod" + ], "doc/man/man3/BIO_meth_new.3" => [ "doc/man3/BIO_meth_new.pod" ], @@ -4664,6 +5332,9 @@ our %unified_info = ( "doc/man/man3/BIO_s_datagram.3" => [ "doc/man3/BIO_s_datagram.pod" ], + "doc/man/man3/BIO_s_dgram_pair.3" => [ + "doc/man3/BIO_s_dgram_pair.pod" + ], "doc/man/man3/BIO_s_fd.3" => [ "doc/man3/BIO_s_fd.pod" ], @@ -4679,6 +5350,9 @@ our %unified_info = ( "doc/man/man3/BIO_s_socket.3" => [ "doc/man3/BIO_s_socket.pod" ], + "doc/man/man3/BIO_sendmmsg.3" => [ + "doc/man3/BIO_sendmmsg.pod" + ], "doc/man/man3/BIO_set_callback.3" => [ "doc/man3/BIO_set_callback.pod" ], @@ -4751,6 +5425,9 @@ our %unified_info = ( "doc/man/man3/BUF_MEM_new.3" => [ "doc/man3/BUF_MEM_new.pod" ], + "doc/man/man3/CMAC_CTX.3" => [ + "doc/man3/CMAC_CTX.pod" + ], "doc/man/man3/CMS_EncryptedData_decrypt.3" => [ "doc/man3/CMS_EncryptedData_decrypt.pod" ], @@ -4817,6 +5494,9 @@ our %unified_info = ( "doc/man/man3/CMS_verify_receipt.3" => [ "doc/man3/CMS_verify_receipt.pod" ], + "doc/man/man3/COMP_CTX_new.3" => [ + "doc/man3/COMP_CTX_new.pod" + ], "doc/man/man3/CONF_modules_free.3" => [ "doc/man3/CONF_modules_free.pod" ], @@ -4916,6 +5596,12 @@ our %unified_info = ( "doc/man/man3/DTLS_set_timer_cb.3" => [ "doc/man3/DTLS_set_timer_cb.pod" ], + "doc/man/man3/DTLSv1_get_timeout.3" => [ + "doc/man3/DTLSv1_get_timeout.pod" + ], + "doc/man/man3/DTLSv1_handle_timeout.3" => [ + "doc/man3/DTLSv1_handle_timeout.pod" + ], "doc/man/man3/DTLSv1_listen.3" => [ "doc/man3/DTLSv1_listen.pod" ], @@ -5054,6 +5740,9 @@ our %unified_info = ( "doc/man/man3/EVP_PKEY_CTX_get0_pkey.3" => [ "doc/man3/EVP_PKEY_CTX_get0_pkey.pod" ], + "doc/man/man3/EVP_PKEY_CTX_get_algor.3" => [ + "doc/man3/EVP_PKEY_CTX_get_algor.pod" + ], "doc/man/man3/EVP_PKEY_CTX_new.3" => [ "doc/man3/EVP_PKEY_CTX_new.pod" ], @@ -5171,6 +5860,12 @@ our %unified_info = ( "doc/man/man3/EVP_SIGNATURE.3" => [ "doc/man3/EVP_SIGNATURE.pod" ], + "doc/man/man3/EVP_SKEY.3" => [ + "doc/man3/EVP_SKEY.pod" + ], + "doc/man/man3/EVP_SKEYMGMT.3" => [ + "doc/man3/EVP_SKEYMGMT.pod" + ], "doc/man/man3/EVP_SealInit.3" => [ "doc/man3/EVP_SealInit.pod" ], @@ -5258,6 +5953,9 @@ our %unified_info = ( "doc/man/man3/EVP_whirlpool.3" => [ "doc/man3/EVP_whirlpool.pod" ], + "doc/man/man3/GENERAL_NAME.3" => [ + "doc/man3/GENERAL_NAME.pod" + ], "doc/man/man3/HMAC.3" => [ "doc/man3/HMAC.pod" ], @@ -5330,9 +6028,15 @@ our %unified_info = ( "doc/man/man3/OPENSSL_load_builtin_modules.3" => [ "doc/man3/OPENSSL_load_builtin_modules.pod" ], + "doc/man/man3/OPENSSL_load_u16_le.3" => [ + "doc/man3/OPENSSL_load_u16_le.pod" + ], "doc/man/man3/OPENSSL_malloc.3" => [ "doc/man3/OPENSSL_malloc.pod" ], + "doc/man/man3/OPENSSL_riscvcap.3" => [ + "doc/man3/OPENSSL_riscvcap.pod" + ], "doc/man/man3/OPENSSL_s390xcap.3" => [ "doc/man3/OPENSSL_s390xcap.pod" ], @@ -5348,12 +6052,18 @@ our %unified_info = ( "doc/man/man3/OSSL_CALLBACK.3" => [ "doc/man3/OSSL_CALLBACK.pod" ], + "doc/man/man3/OSSL_CMP_ATAV_set0.3" => [ + "doc/man3/OSSL_CMP_ATAV_set0.pod" + ], "doc/man/man3/OSSL_CMP_CTX_new.3" => [ "doc/man3/OSSL_CMP_CTX_new.pod" ], "doc/man/man3/OSSL_CMP_HDR_get0_transactionID.3" => [ "doc/man3/OSSL_CMP_HDR_get0_transactionID.pod" ], + "doc/man/man3/OSSL_CMP_ITAV_new_caCerts.3" => [ + "doc/man3/OSSL_CMP_ITAV_new_caCerts.pod" + ], "doc/man/man3/OSSL_CMP_ITAV_set0.3" => [ "doc/man3/OSSL_CMP_ITAV_set0.pod" ], @@ -5423,9 +6133,18 @@ our %unified_info = ( "doc/man/man3/OSSL_ENCODER_to_bio.3" => [ "doc/man3/OSSL_ENCODER_to_bio.pod" ], + "doc/man/man3/OSSL_ERR_STATE_save.3" => [ + "doc/man3/OSSL_ERR_STATE_save.pod" + ], "doc/man/man3/OSSL_ESS_check_signing_certs.3" => [ "doc/man3/OSSL_ESS_check_signing_certs.pod" ], + "doc/man/man3/OSSL_GENERAL_NAMES_print.3" => [ + "doc/man3/OSSL_GENERAL_NAMES_print.pod" + ], + "doc/man/man3/OSSL_HPKE_CTX_new.3" => [ + "doc/man3/OSSL_HPKE_CTX_new.pod" + ], "doc/man/man3/OSSL_HTTP_REQ_CTX.3" => [ "doc/man3/OSSL_HTTP_REQ_CTX.pod" ], @@ -5435,12 +6154,24 @@ our %unified_info = ( "doc/man/man3/OSSL_HTTP_transfer.3" => [ "doc/man3/OSSL_HTTP_transfer.pod" ], + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX.3" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX.pod" + ], + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX_print.3" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX_print.pod" + ], + "doc/man/man3/OSSL_INDICATOR_set_callback.3" => [ + "doc/man3/OSSL_INDICATOR_set_callback.pod" + ], "doc/man/man3/OSSL_ITEM.3" => [ "doc/man3/OSSL_ITEM.pod" ], "doc/man/man3/OSSL_LIB_CTX.3" => [ "doc/man3/OSSL_LIB_CTX.pod" ], + "doc/man/man3/OSSL_LIB_CTX_set_conf_diagnostics.3" => [ + "doc/man3/OSSL_LIB_CTX_set_conf_diagnostics.pod" + ], "doc/man/man3/OSSL_PARAM.3" => [ "doc/man3/OSSL_PARAM.pod" ], @@ -5456,9 +6187,15 @@ our %unified_info = ( "doc/man/man3/OSSL_PARAM_int.3" => [ "doc/man3/OSSL_PARAM_int.pod" ], + "doc/man/man3/OSSL_PARAM_print_to_bio.3" => [ + "doc/man3/OSSL_PARAM_print_to_bio.pod" + ], "doc/man/man3/OSSL_PROVIDER.3" => [ "doc/man3/OSSL_PROVIDER.pod" ], + "doc/man/man3/OSSL_QUIC_client_method.3" => [ + "doc/man3/OSSL_QUIC_client_method.pod" + ], "doc/man/man3/OSSL_SELF_TEST_new.3" => [ "doc/man3/OSSL_SELF_TEST_new.pod" ], @@ -5483,6 +6220,9 @@ our %unified_info = ( "doc/man/man3/OSSL_STORE_open.3" => [ "doc/man3/OSSL_STORE_open.pod" ], + "doc/man/man3/OSSL_sleep.3" => [ + "doc/man3/OSSL_sleep.pod" + ], "doc/man/man3/OSSL_trace_enabled.3" => [ "doc/man3/OSSL_trace_enabled.pod" ], @@ -5498,6 +6238,9 @@ our %unified_info = ( "doc/man/man3/OpenSSL_version.3" => [ "doc/man3/OpenSSL_version.pod" ], + "doc/man/man3/PBMAC1_get1_pbkdf2_param.3" => [ + "doc/man3/PBMAC1_get1_pbkdf2_param.pod" + ], "doc/man/man3/PEM_X509_INFO_read_bio_ex.3" => [ "doc/man3/PEM_X509_INFO_read_bio_ex.pod" ], @@ -5534,6 +6277,9 @@ our %unified_info = ( "doc/man/man3/PKCS12_SAFEBAG_get1_cert.3" => [ "doc/man3/PKCS12_SAFEBAG_get1_cert.pod" ], + "doc/man/man3/PKCS12_SAFEBAG_set0_attrs.3" => [ + "doc/man3/PKCS12_SAFEBAG_set0_attrs.pod" + ], "doc/man/man3/PKCS12_add1_attr_by_NID.3" => [ "doc/man3/PKCS12_add1_attr_by_NID.pod" ], @@ -5807,6 +6553,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set0_CA_list.3" => [ "doc/man3/SSL_CTX_set0_CA_list.pod" ], + "doc/man/man3/SSL_CTX_set1_cert_comp_preference.3" => [ + "doc/man3/SSL_CTX_set1_cert_comp_preference.pod" + ], "doc/man/man3/SSL_CTX_set1_curves.3" => [ "doc/man3/SSL_CTX_set1_curves.pod" ], @@ -5846,6 +6595,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_default_passwd_cb.3" => [ "doc/man3/SSL_CTX_set_default_passwd_cb.pod" ], + "doc/man/man3/SSL_CTX_set_domain_flags.3" => [ + "doc/man3/SSL_CTX_set_domain_flags.pod" + ], "doc/man/man3/SSL_CTX_set_generate_session_id.3" => [ "doc/man3/SSL_CTX_set_generate_session_id.pod" ], @@ -5867,6 +6619,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_msg_callback.3" => [ "doc/man3/SSL_CTX_set_msg_callback.pod" ], + "doc/man/man3/SSL_CTX_set_new_pending_conn_cb.3" => [ + "doc/man3/SSL_CTX_set_new_pending_conn_cb.pod" + ], "doc/man/man3/SSL_CTX_set_num_tickets.3" => [ "doc/man3/SSL_CTX_set_num_tickets.pod" ], @@ -5981,6 +6736,9 @@ our %unified_info = ( "doc/man/man3/SSL_accept.3" => [ "doc/man3/SSL_accept.pod" ], + "doc/man/man3/SSL_accept_stream.3" => [ + "doc/man3/SSL_accept_stream.pod" + ], "doc/man/man3/SSL_alert_type_string.3" => [ "doc/man3/SSL_alert_type_string.pod" ], @@ -6008,9 +6766,21 @@ our %unified_info = ( "doc/man/man3/SSL_free.3" => [ "doc/man3/SSL_free.pod" ], + "doc/man/man3/SSL_get0_connection.3" => [ + "doc/man3/SSL_get0_connection.pod" + ], + "doc/man/man3/SSL_get0_group_name.3" => [ + "doc/man3/SSL_get0_group_name.pod" + ], + "doc/man/man3/SSL_get0_peer_rpk.3" => [ + "doc/man3/SSL_get0_peer_rpk.pod" + ], "doc/man/man3/SSL_get0_peer_scts.3" => [ "doc/man3/SSL_get0_peer_scts.pod" ], + "doc/man/man3/SSL_get1_builtin_sigalgs.3" => [ + "doc/man3/SSL_get1_builtin_sigalgs.pod" + ], "doc/man/man3/SSL_get_SSL_CTX.3" => [ "doc/man3/SSL_get_SSL_CTX.pod" ], @@ -6026,6 +6796,9 @@ our %unified_info = ( "doc/man/man3/SSL_get_client_random.3" => [ "doc/man3/SSL_get_client_random.pod" ], + "doc/man/man3/SSL_get_conn_close_info.3" => [ + "doc/man3/SSL_get_conn_close_info.pod" + ], "doc/man/man3/SSL_get_current_cipher.3" => [ "doc/man3/SSL_get_current_cipher.pod" ], @@ -6035,12 +6808,18 @@ our %unified_info = ( "doc/man/man3/SSL_get_error.3" => [ "doc/man3/SSL_get_error.pod" ], + "doc/man/man3/SSL_get_event_timeout.3" => [ + "doc/man3/SSL_get_event_timeout.pod" + ], "doc/man/man3/SSL_get_extms_support.3" => [ "doc/man3/SSL_get_extms_support.pod" ], "doc/man/man3/SSL_get_fd.3" => [ "doc/man3/SSL_get_fd.pod" ], + "doc/man/man3/SSL_get_handshake_rtt.3" => [ + "doc/man3/SSL_get_handshake_rtt.pod" + ], "doc/man/man3/SSL_get_peer_cert_chain.3" => [ "doc/man3/SSL_get_peer_cert_chain.pod" ], @@ -6059,12 +6838,24 @@ our %unified_info = ( "doc/man/man3/SSL_get_rbio.3" => [ "doc/man3/SSL_get_rbio.pod" ], + "doc/man/man3/SSL_get_rpoll_descriptor.3" => [ + "doc/man3/SSL_get_rpoll_descriptor.pod" + ], "doc/man/man3/SSL_get_session.3" => [ "doc/man3/SSL_get_session.pod" ], "doc/man/man3/SSL_get_shared_sigalgs.3" => [ "doc/man3/SSL_get_shared_sigalgs.pod" ], + "doc/man/man3/SSL_get_stream_id.3" => [ + "doc/man3/SSL_get_stream_id.pod" + ], + "doc/man/man3/SSL_get_stream_read_state.3" => [ + "doc/man3/SSL_get_stream_read_state.pod" + ], + "doc/man/man3/SSL_get_value_uint.3" => [ + "doc/man3/SSL_get_value_uint.pod" + ], "doc/man/man3/SSL_get_verify_result.3" => [ "doc/man3/SSL_get_verify_result.pod" ], @@ -6074,9 +6865,15 @@ our %unified_info = ( "doc/man/man3/SSL_group_to_name.3" => [ "doc/man3/SSL_group_to_name.pod" ], + "doc/man/man3/SSL_handle_events.3" => [ + "doc/man3/SSL_handle_events.pod" + ], "doc/man/man3/SSL_in_init.3" => [ "doc/man3/SSL_in_init.pod" ], + "doc/man/man3/SSL_inject_net_dgram.3" => [ + "doc/man3/SSL_inject_net_dgram.pod" + ], "doc/man/man3/SSL_key_update.3" => [ "doc/man3/SSL_key_update.pod" ], @@ -6089,9 +6886,21 @@ our %unified_info = ( "doc/man/man3/SSL_new.3" => [ "doc/man3/SSL_new.pod" ], + "doc/man/man3/SSL_new_domain.3" => [ + "doc/man3/SSL_new_domain.pod" + ], + "doc/man/man3/SSL_new_listener.3" => [ + "doc/man3/SSL_new_listener.pod" + ], + "doc/man/man3/SSL_new_stream.3" => [ + "doc/man3/SSL_new_stream.pod" + ], "doc/man/man3/SSL_pending.3" => [ "doc/man3/SSL_pending.pod" ], + "doc/man/man3/SSL_poll.3" => [ + "doc/man3/SSL_poll.pod" + ], "doc/man/man3/SSL_read.3" => [ "doc/man3/SSL_read.pod" ], @@ -6107,24 +6916,45 @@ our %unified_info = ( "doc/man/man3/SSL_set1_host.3" => [ "doc/man3/SSL_set1_host.pod" ], + "doc/man/man3/SSL_set1_initial_peer_addr.3" => [ + "doc/man3/SSL_set1_initial_peer_addr.pod" + ], + "doc/man/man3/SSL_set1_server_cert_type.3" => [ + "doc/man3/SSL_set1_server_cert_type.pod" + ], "doc/man/man3/SSL_set_async_callback.3" => [ "doc/man3/SSL_set_async_callback.pod" ], "doc/man/man3/SSL_set_bio.3" => [ "doc/man3/SSL_set_bio.pod" ], + "doc/man/man3/SSL_set_blocking_mode.3" => [ + "doc/man3/SSL_set_blocking_mode.pod" + ], "doc/man/man3/SSL_set_connect_state.3" => [ "doc/man3/SSL_set_connect_state.pod" ], + "doc/man/man3/SSL_set_default_stream_mode.3" => [ + "doc/man3/SSL_set_default_stream_mode.pod" + ], "doc/man/man3/SSL_set_fd.3" => [ "doc/man3/SSL_set_fd.pod" ], + "doc/man/man3/SSL_set_incoming_stream_policy.3" => [ + "doc/man3/SSL_set_incoming_stream_policy.pod" + ], + "doc/man/man3/SSL_set_quic_tls_cbs.3" => [ + "doc/man3/SSL_set_quic_tls_cbs.pod" + ], "doc/man/man3/SSL_set_retry_verify.3" => [ "doc/man3/SSL_set_retry_verify.pod" ], "doc/man/man3/SSL_set_session.3" => [ "doc/man3/SSL_set_session.pod" ], + "doc/man/man3/SSL_set_session_secret_cb.3" => [ + "doc/man3/SSL_set_session_secret_cb.pod" + ], "doc/man/man3/SSL_set_shutdown.3" => [ "doc/man3/SSL_set_shutdown.pod" ], @@ -6137,6 +6967,12 @@ our %unified_info = ( "doc/man/man3/SSL_state_string.3" => [ "doc/man3/SSL_state_string.pod" ], + "doc/man/man3/SSL_stream_conclude.3" => [ + "doc/man3/SSL_stream_conclude.pod" + ], + "doc/man/man3/SSL_stream_reset.3" => [ + "doc/man3/SSL_stream_reset.pod" + ], "doc/man/man3/SSL_want.3" => [ "doc/man3/SSL_want.pod" ], @@ -6146,8 +6982,8 @@ our %unified_info = ( "doc/man/man3/TS_RESP_CTX_new.3" => [ "doc/man3/TS_RESP_CTX_new.pod" ], - "doc/man/man3/TS_VERIFY_CTX_set_certs.3" => [ - "doc/man3/TS_VERIFY_CTX_set_certs.pod" + "doc/man/man3/TS_VERIFY_CTX.3" => [ + "doc/man3/TS_VERIFY_CTX.pod" ], "doc/man/man3/UI_STRING.3" => [ "doc/man3/UI_STRING.pod" @@ -6167,6 +7003,21 @@ our %unified_info = ( "doc/man/man3/X509V3_set_ctx.3" => [ "doc/man3/X509V3_set_ctx.pod" ], + "doc/man/man3/X509_ACERT_add1_attr.3" => [ + "doc/man3/X509_ACERT_add1_attr.pod" + ], + "doc/man/man3/X509_ACERT_add_attr_nconf.3" => [ + "doc/man3/X509_ACERT_add_attr_nconf.pod" + ], + "doc/man/man3/X509_ACERT_get0_holder_baseCertId.3" => [ + "doc/man3/X509_ACERT_get0_holder_baseCertId.pod" + ], + "doc/man/man3/X509_ACERT_get_attr.3" => [ + "doc/man3/X509_ACERT_get_attr.pod" + ], + "doc/man/man3/X509_ACERT_print_ex.3" => [ + "doc/man3/X509_ACERT_print_ex.pod" + ], "doc/man/man3/X509_ALGOR_dup.3" => [ "doc/man3/X509_ALGOR_dup.pod" ], @@ -6215,6 +7066,9 @@ our %unified_info = ( "doc/man/man3/X509_SIG_get0.3" => [ "doc/man3/X509_SIG_get0.pod" ], + "doc/man/man3/X509_STORE_CTX_get_by_subject.3" => [ + "doc/man3/X509_STORE_CTX_get_by_subject.pod" + ], "doc/man/man3/X509_STORE_CTX_get_error.3" => [ "doc/man3/X509_STORE_CTX_get_error.pod" ], @@ -6281,6 +7135,9 @@ our %unified_info = ( "doc/man/man3/X509_get0_uids.3" => [ "doc/man3/X509_get0_uids.pod" ], + "doc/man/man3/X509_get_default_cert_file.3" => [ + "doc/man3/X509_get_default_cert_file.pod" + ], "doc/man/man3/X509_get_extension_flags.3" => [ "doc/man3/X509_get_extension_flags.pod" ], @@ -6404,9 +7261,15 @@ our %unified_info = ( "doc/man/man7/EVP_CIPHER-SM4.7" => [ "doc/man7/EVP_CIPHER-SM4.pod" ], + "doc/man/man7/EVP_KDF-ARGON2.7" => [ + "doc/man7/EVP_KDF-ARGON2.pod" + ], "doc/man/man7/EVP_KDF-HKDF.7" => [ "doc/man7/EVP_KDF-HKDF.pod" ], + "doc/man/man7/EVP_KDF-HMAC-DRBG.7" => [ + "doc/man7/EVP_KDF-HMAC-DRBG.pod" + ], "doc/man/man7/EVP_KDF-KB.7" => [ "doc/man7/EVP_KDF-KB.pod" ], @@ -6422,6 +7285,9 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-PKCS12KDF.7" => [ "doc/man7/EVP_KDF-PKCS12KDF.pod" ], + "doc/man/man7/EVP_KDF-PVKKDF.7" => [ + "doc/man7/EVP_KDF-PVKKDF.pod" + ], "doc/man/man7/EVP_KDF-SCRYPT.7" => [ "doc/man7/EVP_KDF-SCRYPT.pod" ], @@ -6446,9 +7312,18 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-X963.7" => [ "doc/man7/EVP_KDF-X963.pod" ], + "doc/man/man7/EVP_KEM-EC.7" => [ + "doc/man7/EVP_KEM-EC.pod" + ], + "doc/man/man7/EVP_KEM-ML-KEM.7" => [ + "doc/man7/EVP_KEM-ML-KEM.pod" + ], "doc/man/man7/EVP_KEM-RSA.7" => [ "doc/man7/EVP_KEM-RSA.pod" ], + "doc/man/man7/EVP_KEM-X25519.7" => [ + "doc/man7/EVP_KEM-X25519.pod" + ], "doc/man/man7/EVP_KEYEXCH-DH.7" => [ "doc/man7/EVP_KEYEXCH-DH.pod" ], @@ -6482,6 +7357,9 @@ our %unified_info = ( "doc/man/man7/EVP_MD-BLAKE2.7" => [ "doc/man7/EVP_MD-BLAKE2.pod" ], + "doc/man/man7/EVP_MD-KECCAK.7" => [ + "doc/man7/EVP_MD-KECCAK.pod" + ], "doc/man/man7/EVP_MD-MD2.7" => [ "doc/man7/EVP_MD-MD2.pod" ], @@ -6539,15 +7417,27 @@ our %unified_info = ( "doc/man/man7/EVP_PKEY-HMAC.7" => [ "doc/man7/EVP_PKEY-HMAC.pod" ], + "doc/man/man7/EVP_PKEY-ML-DSA.7" => [ + "doc/man7/EVP_PKEY-ML-DSA.pod" + ], + "doc/man/man7/EVP_PKEY-ML-KEM.7" => [ + "doc/man7/EVP_PKEY-ML-KEM.pod" + ], "doc/man/man7/EVP_PKEY-RSA.7" => [ "doc/man7/EVP_PKEY-RSA.pod" ], + "doc/man/man7/EVP_PKEY-SLH-DSA.7" => [ + "doc/man7/EVP_PKEY-SLH-DSA.pod" + ], "doc/man/man7/EVP_PKEY-SM2.7" => [ "doc/man7/EVP_PKEY-SM2.pod" ], "doc/man/man7/EVP_PKEY-X25519.7" => [ "doc/man7/EVP_PKEY-X25519.pod" ], + "doc/man/man7/EVP_RAND-CRNG-TEST.7" => [ + "doc/man7/EVP_RAND-CRNG-TEST.pod" + ], "doc/man/man7/EVP_RAND-CTR-DRBG.7" => [ "doc/man7/EVP_RAND-CTR-DRBG.pod" ], @@ -6557,6 +7447,9 @@ our %unified_info = ( "doc/man/man7/EVP_RAND-HMAC-DRBG.7" => [ "doc/man7/EVP_RAND-HMAC-DRBG.pod" ], + "doc/man/man7/EVP_RAND-JITTER.7" => [ + "doc/man7/EVP_RAND-JITTER.pod" + ], "doc/man/man7/EVP_RAND-SEED-SRC.7" => [ "doc/man7/EVP_RAND-SEED-SRC.pod" ], @@ -6578,9 +7471,15 @@ our %unified_info = ( "doc/man/man7/EVP_SIGNATURE-HMAC.7" => [ "doc/man7/EVP_SIGNATURE-HMAC.pod" ], + "doc/man/man7/EVP_SIGNATURE-ML-DSA.7" => [ + "doc/man7/EVP_SIGNATURE-ML-DSA.pod" + ], "doc/man/man7/EVP_SIGNATURE-RSA.7" => [ "doc/man7/EVP_SIGNATURE-RSA.pod" ], + "doc/man/man7/EVP_SIGNATURE-SLH-DSA.7" => [ + "doc/man7/EVP_SIGNATURE-SLH-DSA.pod" + ], "doc/man/man7/OSSL_PROVIDER-FIPS.7" => [ "doc/man7/OSSL_PROVIDER-FIPS.pod" ], @@ -6596,6 +7495,9 @@ our %unified_info = ( "doc/man/man7/OSSL_PROVIDER-null.7" => [ "doc/man7/OSSL_PROVIDER-null.pod" ], + "doc/man/man7/OSSL_STORE-winstore.7" => [ + "doc/man7/OSSL_STORE-winstore.pod" + ], "doc/man/man7/RAND.7" => [ "doc/man7/RAND.pod" ], @@ -6608,9 +7510,6 @@ our %unified_info = ( "doc/man/man7/bio.7" => [ "doc/man7/bio.pod" ], - "doc/man/man7/crypto.7" => [ - "doc/man7/crypto.pod" - ], "doc/man/man7/ct.7" => [ "doc/man7/ct.pod" ], @@ -6641,9 +7540,6 @@ our %unified_info = ( "doc/man/man7/life_cycle-rand.7" => [ "doc/man7/life_cycle-rand.pod" ], - "doc/man/man7/migration_guide.7" => [ - "doc/man7/migration_guide.pod" - ], "doc/man/man7/openssl-core.h.7" => [ "doc/man7/openssl-core.h.pod" ], @@ -6659,12 +7555,66 @@ our %unified_info = ( "doc/man/man7/openssl-glossary.7" => [ "doc/man7/openssl-glossary.pod" ], + "doc/man/man7/openssl-qlog.7" => [ + "doc/man7/openssl-qlog.pod" + ], + "doc/man/man7/openssl-quic-concurrency.7" => [ + "doc/man7/openssl-quic-concurrency.pod" + ], + "doc/man/man7/openssl-quic.7" => [ + "doc/man7/openssl-quic.pod" + ], "doc/man/man7/openssl-threads.7" => [ "doc/man7/openssl-threads.pod" ], "doc/man/man7/openssl_user_macros.7" => [ "doc/man7/openssl_user_macros.pod" ], + "doc/man/man7/ossl-guide-introduction.7" => [ + "doc/man7/ossl-guide-introduction.pod" + ], + "doc/man/man7/ossl-guide-libcrypto-introduction.7" => [ + "doc/man7/ossl-guide-libcrypto-introduction.pod" + ], + "doc/man/man7/ossl-guide-libraries-introduction.7" => [ + "doc/man7/ossl-guide-libraries-introduction.pod" + ], + "doc/man/man7/ossl-guide-libssl-introduction.7" => [ + "doc/man7/ossl-guide-libssl-introduction.pod" + ], + "doc/man/man7/ossl-guide-migration.7" => [ + "doc/man7/ossl-guide-migration.pod" + ], + "doc/man/man7/ossl-guide-quic-client-block.7" => [ + "doc/man7/ossl-guide-quic-client-block.pod" + ], + "doc/man/man7/ossl-guide-quic-client-non-block.7" => [ + "doc/man7/ossl-guide-quic-client-non-block.pod" + ], + "doc/man/man7/ossl-guide-quic-introduction.7" => [ + "doc/man7/ossl-guide-quic-introduction.pod" + ], + "doc/man/man7/ossl-guide-quic-multi-stream.7" => [ + "doc/man7/ossl-guide-quic-multi-stream.pod" + ], + "doc/man/man7/ossl-guide-quic-server-block.7" => [ + "doc/man7/ossl-guide-quic-server-block.pod" + ], + "doc/man/man7/ossl-guide-quic-server-non-block.7" => [ + "doc/man7/ossl-guide-quic-server-non-block.pod" + ], + "doc/man/man7/ossl-guide-tls-client-block.7" => [ + "doc/man7/ossl-guide-tls-client-block.pod" + ], + "doc/man/man7/ossl-guide-tls-client-non-block.7" => [ + "doc/man7/ossl-guide-tls-client-non-block.pod" + ], + "doc/man/man7/ossl-guide-tls-introduction.7" => [ + "doc/man7/ossl-guide-tls-introduction.pod" + ], + "doc/man/man7/ossl-guide-tls-server-block.7" => [ + "doc/man7/ossl-guide-tls-server-block.pod" + ], "doc/man/man7/ossl_store-file.7" => [ "doc/man7/ossl_store-file.pod" ], @@ -6719,6 +7669,9 @@ our %unified_info = ( "doc/man/man7/provider-signature.7" => [ "doc/man7/provider-signature.pod" ], + "doc/man/man7/provider-skeymgmt.7" => [ + "doc/man7/provider-skeymgmt.pod" + ], "doc/man/man7/provider-storemgmt.7" => [ "doc/man7/provider-storemgmt.pod" ], @@ -6728,9 +7681,6 @@ our %unified_info = ( "doc/man/man7/proxy-certificates.7" => [ "doc/man7/proxy-certificates.pod" ], - "doc/man/man7/ssl.7" => [ - "doc/man7/ssl.pod" - ], "doc/man/man7/x509.7" => [ "doc/man7/x509.pod" ], @@ -6910,6 +7860,10 @@ our %unified_info = ( "doc/man1/openssl-sess_id.pod.in", "doc/perlvars.pm" ], + "doc/man1/openssl-skeyutl.pod" => [ + "doc/man1/openssl-skeyutl.pod.in", + "doc/perlvars.pm" + ], "doc/man1/openssl-smime.pod" => [ "doc/man1/openssl-smime.pod.in", "doc/perlvars.pm" @@ -6949,6 +7903,27 @@ our %unified_info = ( "doc/man7/openssl_user_macros.pod" => [ "doc/man7/openssl_user_macros.pod.in" ], + "exporters/OpenSSLConfig.cmake" => [ + "installdata.pm" + ], + "exporters/OpenSSLConfigVersion.cmake" => [ + "exporters/OpenSSLConfig.cmake", + "installdata.pm" + ], + "exporters/libcrypto.pc" => [ + "installdata.pm" + ], + "exporters/libssl.pc" => [ + "installdata.pm" + ], + "exporters/openssl.pc" => [ + "exporters/libcrypto.pc", + "exporters/libssl.pc", + "installdata.pm" + ], + "fuzz/acert-test" => [ + "libcrypto" + ], "fuzz/asn1-test" => [ "libcrypto", "libssl" @@ -6981,16 +7956,92 @@ our %unified_info = ( "fuzz/ct-test" => [ "libcrypto" ], + "fuzz/decoder-test" => [ + "libcrypto" + ], + "fuzz/dtlsclient-test" => [ + "libcrypto", + "libssl" + ], + "fuzz/dtlsserver-test" => [ + "libcrypto", + "libssl" + ], + "fuzz/hashtable-test" => [ + "libcrypto.a" + ], + "fuzz/ml-dsa-test" => [ + "libcrypto.a" + ], + "fuzz/ml-kem-test" => [ + "libcrypto.a" + ], + "fuzz/pem-test" => [ + "libcrypto.a" + ], + "fuzz/provider-test" => [ + "libcrypto" + ], + "fuzz/punycode-test" => [ + "libcrypto.a" + ], + "fuzz/quic-client-test" => [ + "libcrypto.a", + "libssl.a" + ], + "fuzz/quic-lcidm-test" => [ + "libcrypto.a", + "libssl.a" + ], + "fuzz/quic-rcidm-test" => [ + "libcrypto.a", + "libssl.a" + ], + "fuzz/quic-server-test" => [ + "libcrypto.a", + "libssl.a" + ], + "fuzz/quic-srtm-test" => [ + "libcrypto.a", + "libssl.a" + ], "fuzz/server-test" => [ "libcrypto", "libssl" ], + "fuzz/slh-dsa-test" => [ + "libcrypto.a" + ], + "fuzz/smime-test" => [ + "libcrypto", + "libssl" + ], + "fuzz/v3name-test" => [ + "libcrypto.a" + ], "fuzz/x509-test" => [ "libcrypto" ], + "include/internal/param_names.h" => [ + "util/perl|OpenSSL/paramnames.pm" + ], + "include/openssl/core_names.h" => [ + "util/perl|OpenSSL/paramnames.pm" + ], + "libcrypto.pc" => [ + "builddata.pm" + ], "libssl" => [ "libcrypto" ], + "libssl.pc" => [ + "builddata.pm" + ], + "openssl.pc" => [ + "builddata.pm", + "libcrypto.pc", + "libssl.pc" + ], "providers/common/der/der_digests_gen.c" => [ "providers/common/der/DIGESTS.asn1", "providers/common/der/NIST.asn1", @@ -7008,11 +8059,19 @@ our %unified_info = ( "providers/common/der/ECX.asn1", "providers/common/der/oids_to_c.pm" ], + "providers/common/der/der_ml_dsa_gen.c" => [ + "providers/common/der/ML_DSA.asn1", + "providers/common/der/oids_to_c.pm" + ], "providers/common/der/der_rsa_gen.c" => [ "providers/common/der/NIST.asn1", "providers/common/der/RSA.asn1", "providers/common/der/oids_to_c.pm" ], + "providers/common/der/der_slh_dsa_gen.c" => [ + "providers/common/der/SLH_DSA.asn1", + "providers/common/der/oids_to_c.pm" + ], "providers/common/der/der_sm2_gen.c" => [ "providers/common/der/SM2.asn1", "providers/common/der/oids_to_c.pm" @@ -7052,6 +8111,12 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ecx_key.o" => [ "providers/common/include/prov/der_ecx.h" ], + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o" => [ + "providers/common/include/prov/der_ml_dsa.h" + ], + "providers/common/der/libcommon-lib-der_ml_dsa_key.o" => [ + "providers/common/include/prov/der_ml_dsa.h" + ], "providers/common/der/libcommon-lib-der_rsa_gen.o" => [ "providers/common/include/prov/der_rsa.h" ], @@ -7059,6 +8124,12 @@ our %unified_info = ( "providers/common/include/prov/der_digests.h", "providers/common/include/prov/der_rsa.h" ], + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o" => [ + "providers/common/include/prov/der_slh_dsa.h" + ], + "providers/common/der/libcommon-lib-der_slh_dsa_key.o" => [ + "providers/common/include/prov/der_slh_dsa.h" + ], "providers/common/der/libcommon-lib-der_wrap_gen.o" => [ "providers/common/include/prov/der_wrap.h" ], @@ -7098,11 +8169,19 @@ our %unified_info = ( "providers/common/der/ECX.asn1", "providers/common/der/oids_to_c.pm" ], + "providers/common/include/prov/der_ml_dsa.h" => [ + "providers/common/der/ML_DSA.asn1", + "providers/common/der/oids_to_c.pm" + ], "providers/common/include/prov/der_rsa.h" => [ "providers/common/der/NIST.asn1", "providers/common/der/RSA.asn1", "providers/common/der/oids_to_c.pm" ], + "providers/common/include/prov/der_slh_dsa.h" => [ + "providers/common/der/SLH_DSA.asn1", + "providers/common/der/oids_to_c.pm" + ], "providers/common/include/prov/der_sm2.h" => [ "providers/common/der/SM2.asn1", "providers/common/der/oids_to_c.pm" @@ -7135,9 +8214,15 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-eddsa_sig.o" => [ "providers/common/include/prov/der_ecx.h" ], + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o" => [ + "providers/common/include/prov/der_ml_dsa.h" + ], "providers/implementations/signature/libdefault-lib-rsa_sig.o" => [ "providers/common/include/prov/der_rsa.h" ], + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o" => [ + "providers/common/include/prov/der_slh_dsa.h" + ], "providers/implementations/signature/libdefault-lib-sm2_sig.o" => [ "providers/common/include/prov/der_sm2.h" ], @@ -7150,9 +8235,15 @@ our %unified_info = ( "providers/implementations/signature/libfips-lib-eddsa_sig.o" => [ "providers/common/include/prov/der_ecx.h" ], + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o" => [ + "providers/common/include/prov/der_ml_dsa.h" + ], "providers/implementations/signature/libfips-lib-rsa_sig.o" => [ "providers/common/include/prov/der_rsa.h" ], + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o" => [ + "providers/common/include/prov/der_slh_dsa.h" + ], "providers/legacy" => [ "libcrypto", "providers/liblegacy.a" @@ -7230,6 +8321,14 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/bio_addr_test" => [ + "libcrypto", + "test/libtestutil.a" + ], + "test/bio_base64_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/bio_callback_test" => [ "libcrypto", "test/libtestutil.a" @@ -7238,6 +8337,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/bio_dgram_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/bio_enc_test" => [ "libcrypto", "test/libtestutil.a" @@ -7246,6 +8349,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/bio_meth_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/bio_prefix_text" => [ "libcrypto", "test/libtestutil.a" @@ -7258,6 +8365,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/bio_tfo_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/bioprinttest" => [ "libcrypto", "test/libtestutil.a" @@ -7270,6 +8381,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/build_wincrypt_test" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_aes" => [ "libcrypto", "libssl" @@ -7290,6 +8405,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_byteorder" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_camellia" => [ "libcrypto", "libssl" @@ -7322,10 +8441,6 @@ our %unified_info = ( "libcrypto", "libssl" ], - "test/buildtest_c_core_names" => [ - "libcrypto", - "libssl" - ], "test/buildtest_c_core_object" => [ "libcrypto", "libssl" @@ -7358,6 +8473,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_e_ostime" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_ebcdic" => [ "libcrypto", "libssl" @@ -7394,6 +8513,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_hpke" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_http" => [ "libcrypto", "libssl" @@ -7402,6 +8525,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_indicator" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_kdf" => [ "libcrypto", "libssl" @@ -7422,6 +8549,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_ml_kem" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_modes" => [ "libcrypto", "libssl" @@ -7462,6 +8593,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_quic" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_rand" => [ "libcrypto", "libssl" @@ -7518,6 +8653,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_thread" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_tls1" => [ "libcrypto", "libssl" @@ -7538,10 +8677,23 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/byteorder_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], + "test/ca_internals_test" => [ + "libssl", + "test/libtestutil.a" + ], "test/casttest" => [ "libcrypto", "test/libtestutil.a" ], + "test/cert_comp_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], "test/chacha_internal_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -7655,7 +8807,11 @@ our %unified_info = ( "libssl", "test/libtestutil.a" ], - "test/defltfips_test" => [ + "test/decoder_propq_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], + "test/defltfips_test" => [ "libcrypto", "test/libtestutil.a" ], @@ -7711,6 +8867,8 @@ our %unified_info = ( ], "test/endecode_test" => [ "libcrypto.a", + "providers/libcommon.a", + "providers/liblegacy.a", "test/libtestutil.a" ], "test/endecoder_legacy_test" => [ @@ -7754,6 +8912,10 @@ our %unified_info = ( "test/evp_pkey_ctx_new_from_name" => [ "libcrypto" ], + "test/evp_pkey_dhkem_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/evp_pkey_dparams_test" => [ "libcrypto", "test/libtestutil.a" @@ -7762,10 +8924,18 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/evp_skey_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/evp_test" => [ "libcrypto", "test/libtestutil.a" ], + "test/evp_xof_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/exdatatest" => [ "libcrypto", "test/libtestutil.a" @@ -7804,6 +8974,10 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/hpke_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/http_test" => [ "libcrypto", "test/libtestutil.a" @@ -7816,17 +8990,25 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/json_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], "test/keymgmt_internal_test" => [ "libcrypto.a", "test/libtestutil.a" ], "test/lhash_test" => [ - "libcrypto", + "libcrypto.a", "test/libtestutil.a" ], "test/libtestutil.a" => [ "libcrypto" ], + "test/list_test" => [ + "test/libtestutil.a" + ], "test/localetest" => [ "libcrypto", "test/libtestutil.a" @@ -7839,10 +9021,26 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/membio_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/memleaktest" => [ "libcrypto", "test/libtestutil.a" ], + "test/ml_dsa_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], + "test/ml_kem_evp_extra_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], + "test/ml_kem_internal_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/modes_internal_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -7867,6 +9065,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/pairwise_fail_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/param_build_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -7899,6 +9101,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/pkcs12_api_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/pkcs12_format_test" => [ "libcrypto", "test/libtestutil.a" @@ -7919,6 +9125,11 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/priority_queue_test" => [ + "libcrypto", + "libssl.a", + "test/libtestutil.a" + ], "test/property_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -7931,6 +9142,10 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/provider_default_search_path_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/provider_fallback_test" => [ "libcrypto", "test/libtestutil.a" @@ -7955,12 +9170,122 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/quic_ackm_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_cc_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_cfq_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_client_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_fc_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_fifd_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_lcidm_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_multistream_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_newcid_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_qlog_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_radix_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_rcidm_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_record_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_srt_gen_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_srtm_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_stream_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_tserver_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_txp_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_txpim_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_wire_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quicapitest" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quicfaultstest" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], "test/rand_status_test" => [ "libcrypto", "test/libtestutil.a" ], "test/rand_test" => [ - "libcrypto", + "libcrypto.a", "test/libtestutil.a" ], "test/rc2test" => [ @@ -7975,7 +9300,7 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], - "test/rdrand_sanitytest" => [ + "test/rdcpu_sanitytest" => [ "libcrypto.a", "test/libtestutil.a" ], @@ -7984,6 +9309,11 @@ our %unified_info = ( "libssl", "test/libtestutil.a" ], + "test/rpktest" => [ + "libcrypto", + "libssl", + "test/libtestutil.a" + ], "test/rsa_mp_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -7996,10 +9326,18 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], - "test/sanitytest" => [ + "test/rsa_x931_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], + "test/safe_math_test" => [ "libcrypto", "test/libtestutil.a" ], + "test/sanitytest" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/secmemtest" => [ "libcrypto", "test/libtestutil.a" @@ -8017,6 +9355,10 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/slh_dsa_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/sm2_internal_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -8046,6 +9388,11 @@ our %unified_info = ( "libssl", "test/libtestutil.a" ], + "test/ssl_handshake_rtt_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], "test/ssl_old_test" => [ "libcrypto.a", "libssl.a", @@ -8062,8 +9409,8 @@ our %unified_info = ( "test/libtestutil.a" ], "test/sslapitest" => [ - "libcrypto", - "libssl", + "libcrypto.a", + "libssl.a", "test/libtestutil.a" ], "test/sslbuffertest" => [ @@ -8080,6 +9427,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/strtoultest" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/sysdefaulttest" => [ "libcrypto", "libssl", @@ -8089,8 +9440,12 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/threadpool_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/threadstest" => [ - "libcrypto", + "libcrypto.a", "test/libtestutil.a" ], "test/threadstest_fips" => [ @@ -8101,6 +9456,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/time_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/tls13ccstest" => [ "libcrypto", "libssl", @@ -8111,6 +9470,11 @@ our %unified_info = ( "libssl.a", "test/libtestutil.a" ], + "test/tls13groupselection_test" => [ + "libcrypto", + "libssl", + "test/libtestutil.a" + ], "test/trace_api_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -8148,6 +9512,10 @@ our %unified_info = ( "libssl.a", "test/libtestutil.a" ], + "test/x509_acert_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/x509_check_cert_pkey_test" => [ "libcrypto", "test/libtestutil.a" @@ -8160,6 +9528,18 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/x509_load_cert_file_test" => [ + "libcrypto", + "test/libtestutil.a" + ], + "test/x509_req_test" => [ + "libcrypto", + "test/libtestutil.a" + ], + "test/x509_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/x509_time_test" => [ "libcrypto", "test/libtestutil.a" @@ -8174,9 +9554,13 @@ our %unified_info = ( }, "dirinfo" => { "apps" => { + "deps" => [ + "apps/ca_internals_test-bin-ca.o" + ], "products" => { "bin" => [ - "apps/openssl" + "apps/openssl", + "test/ca_internals_test" ], "script" => [ "apps/CA.pl", @@ -8187,6 +9571,14 @@ our %unified_info = ( "apps/lib" => { "deps" => [ "apps/lib/openssl-bin-cmp_mock_srv.o", + "apps/lib/ca_internals_test-bin-app_libctx.o", + "apps/lib/ca_internals_test-bin-app_provider.o", + "apps/lib/ca_internals_test-bin-app_rand.o", + "apps/lib/ca_internals_test-bin-app_x509.o", + "apps/lib/ca_internals_test-bin-apps.o", + "apps/lib/ca_internals_test-bin-apps_ui.o", + "apps/lib/ca_internals_test-bin-engine.o", + "apps/lib/ca_internals_test-bin-fmt.o", "apps/lib/cmp_client_test-bin-cmp_mock_srv.o", "apps/lib/uitest-bin-apps_ui.o", "apps/lib/libapps-lib-app_libctx.o", @@ -8195,12 +9587,14 @@ our %unified_info = ( "apps/lib/libapps-lib-app_rand.o", "apps/lib/libapps-lib-app_x509.o", "apps/lib/libapps-lib-apps.o", + "apps/lib/libapps-lib-apps_opt_printf.o", "apps/lib/libapps-lib-apps_ui.o", "apps/lib/libapps-lib-columns.o", "apps/lib/libapps-lib-engine.o", "apps/lib/libapps-lib-engine_loader.o", "apps/lib/libapps-lib-fmt.o", "apps/lib/libapps-lib-http_server.o", + "apps/lib/libapps-lib-log.o", "apps/lib/libapps-lib-names.o", "apps/lib/libapps-lib-opt.o", "apps/lib/libapps-lib-s_cb.o", @@ -8211,6 +9605,7 @@ our %unified_info = ( "products" => { "bin" => [ "apps/openssl", + "test/ca_internals_test", "test/cmp_client_test", "test/uitest" ], @@ -8222,8 +9617,12 @@ our %unified_info = ( }, "crypto" => { "deps" => [ + "crypto/asn1_time_test-bin-ctype.o", + "crypto/ca_internals_test-bin-ctype.o", + "crypto/packettest-bin-quic_vlint.o", "crypto/libcrypto-lib-asn1_dsa.o", "crypto/libcrypto-lib-bsearch.o", + "crypto/libcrypto-lib-comp_methods.o", "crypto/libcrypto-lib-context.o", "crypto/libcrypto-lib-core_algorithm.o", "crypto/libcrypto-lib-core_fetch.o", @@ -8233,10 +9632,13 @@ our %unified_info = ( "crypto/libcrypto-lib-cryptlib.o", "crypto/libcrypto-lib-ctype.o", "crypto/libcrypto-lib-cversion.o", + "crypto/libcrypto-lib-defaults.o", "crypto/libcrypto-lib-der_writer.o", + "crypto/libcrypto-lib-deterministic_nonce.o", "crypto/libcrypto-lib-ebcdic.o", "crypto/libcrypto-lib-ex_data.o", "crypto/libcrypto-lib-getenv.o", + "crypto/libcrypto-lib-indicator_core.o", "crypto/libcrypto-lib-info.o", "crypto/libcrypto-lib-init.o", "crypto/libcrypto-lib-initthread.o", @@ -8253,6 +9655,7 @@ our %unified_info = ( "crypto/libcrypto-lib-params.o", "crypto/libcrypto-lib-params_dup.o", "crypto/libcrypto-lib-params_from_text.o", + "crypto/libcrypto-lib-params_idx.o", "crypto/libcrypto-lib-passphrase.o", "crypto/libcrypto-lib-provider.o", "crypto/libcrypto-lib-provider_child.o", @@ -8260,12 +9663,16 @@ our %unified_info = ( "crypto/libcrypto-lib-provider_core.o", "crypto/libcrypto-lib-provider_predefined.o", "crypto/libcrypto-lib-punycode.o", + "crypto/libcrypto-lib-quic_vlint.o", "crypto/libcrypto-lib-self_test_core.o", + "crypto/libcrypto-lib-sleep.o", "crypto/libcrypto-lib-sparse_array.o", + "crypto/libcrypto-lib-ssl_err.o", "crypto/libcrypto-lib-threads_lib.o", "crypto/libcrypto-lib-threads_none.o", "crypto/libcrypto-lib-threads_pthread.o", "crypto/libcrypto-lib-threads_win.o", + "crypto/libcrypto-lib-time.o", "crypto/libcrypto-lib-trace.o", "crypto/libcrypto-lib-uid.o", "crypto/libcrypto-lib-x86cpuid.o", @@ -8288,6 +9695,7 @@ our %unified_info = ( "crypto/libfips-lib-params.o", "crypto/libfips-lib-params_dup.o", "crypto/libfips-lib-params_from_text.o", + "crypto/libfips-lib-params_idx.o", "crypto/libfips-lib-provider_core.o", "crypto/libfips-lib-provider_predefined.o", "crypto/libfips-lib-self_test_core.o", @@ -8296,9 +9704,15 @@ our %unified_info = ( "crypto/libfips-lib-threads_none.o", "crypto/libfips-lib-threads_pthread.o", "crypto/libfips-lib-threads_win.o", + "crypto/libfips-lib-time.o", "crypto/libfips-lib-x86cpuid.o" ], "products" => { + "bin" => [ + "test/asn1_time_test", + "test/ca_internals_test", + "test/packettest" + ], "lib" => [ "libcrypto", "providers/libfips.a" @@ -8341,6 +9755,8 @@ our %unified_info = ( }, "crypto/asn1" => { "deps" => [ + "crypto/asn1/asn1_time_test-bin-a_time.o", + "crypto/asn1/ca_internals_test-bin-a_time.o", "crypto/asn1/libcrypto-lib-a_bitstr.o", "crypto/asn1/libcrypto-lib-a_d2i_fp.o", "crypto/asn1/libcrypto-lib-a_digest.o", @@ -8407,6 +9823,10 @@ our %unified_info = ( "crypto/asn1/libcrypto-lib-x_val.o" ], "products" => { + "bin" => [ + "test/asn1_time_test", + "test/ca_internals_test" + ], "lib" => [ "libcrypto" ] @@ -8472,6 +9892,7 @@ our %unified_info = ( "crypto/bio/libcrypto-lib-bss_conn.o", "crypto/bio/libcrypto-lib-bss_core.o", "crypto/bio/libcrypto-lib-bss_dgram.o", + "crypto/bio/libcrypto-lib-bss_dgram_pair.o", "crypto/bio/libcrypto-lib-bss_fd.o", "crypto/bio/libcrypto-lib-bss_file.o", "crypto/bio/libcrypto-lib-bss_log.o", @@ -8632,6 +10053,7 @@ our %unified_info = ( "crypto/cmp/libcrypto-lib-cmp_client.o", "crypto/cmp/libcrypto-lib-cmp_ctx.o", "crypto/cmp/libcrypto-lib-cmp_err.o", + "crypto/cmp/libcrypto-lib-cmp_genm.o", "crypto/cmp/libcrypto-lib-cmp_hdr.o", "crypto/cmp/libcrypto-lib-cmp_http.o", "crypto/cmp/libcrypto-lib-cmp_msg.o", @@ -9003,7 +10425,9 @@ our %unified_info = ( "crypto/err/libcrypto-lib-err_all.o", "crypto/err/libcrypto-lib-err_all_legacy.o", "crypto/err/libcrypto-lib-err_blocks.o", - "crypto/err/libcrypto-lib-err_prn.o" + "crypto/err/libcrypto-lib-err_mark.o", + "crypto/err/libcrypto-lib-err_prn.o", + "crypto/err/libcrypto-lib-err_save.o" ], "products" => { "lib" => [ @@ -9104,7 +10528,9 @@ our %unified_info = ( "crypto/evp/libcrypto-lib-pmeth_check.o", "crypto/evp/libcrypto-lib-pmeth_gn.o", "crypto/evp/libcrypto-lib-pmeth_lib.o", + "crypto/evp/libcrypto-lib-s_lib.o", "crypto/evp/libcrypto-lib-signature.o", + "crypto/evp/libcrypto-lib-skeymgmt_meth.o", "crypto/evp/libfips-lib-asymcipher.o", "crypto/evp/libfips-lib-dh_support.o", "crypto/evp/libfips-lib-digest.o", @@ -9120,14 +10546,15 @@ our %unified_info = ( "crypto/evp/libfips-lib-kem.o", "crypto/evp/libfips-lib-keymgmt_lib.o", "crypto/evp/libfips-lib-keymgmt_meth.o", - "crypto/evp/libfips-lib-m_sigver.o", "crypto/evp/libfips-lib-mac_lib.o", "crypto/evp/libfips-lib-mac_meth.o", "crypto/evp/libfips-lib-p_lib.o", "crypto/evp/libfips-lib-pmeth_check.o", "crypto/evp/libfips-lib-pmeth_gn.o", "crypto/evp/libfips-lib-pmeth_lib.o", - "crypto/evp/libfips-lib-signature.o" + "crypto/evp/libfips-lib-s_lib.o", + "crypto/evp/libfips-lib-signature.o", + "crypto/evp/libfips-lib-skeymgmt_meth.o" ], "products" => { "lib" => [ @@ -9160,6 +10587,20 @@ our %unified_info = ( ] } }, + "crypto/hashtable" => { + "deps" => [ + "crypto/hashtable/libcrypto-lib-hashfunc.o", + "crypto/hashtable/libcrypto-lib-hashtable.o", + "crypto/hashtable/libfips-lib-hashfunc.o", + "crypto/hashtable/libfips-lib-hashtable.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, "crypto/hmac" => { "deps" => [ "crypto/hmac/libcrypto-lib-hmac.o", @@ -9172,6 +10613,17 @@ our %unified_info = ( ] } }, + "crypto/hpke" => { + "deps" => [ + "crypto/hpke/libcrypto-lib-hpke.o", + "crypto/hpke/libcrypto-lib-hpke_util.o" + ], + "products" => { + "lib" => [ + "libcrypto" + ] + } + }, "crypto/http" => { "deps" => [ "crypto/http/libcrypto-lib-http_client.o", @@ -9256,6 +10708,44 @@ our %unified_info = ( ] } }, + "crypto/ml_dsa" => { + "deps" => [ + "crypto/ml_dsa/libcrypto-lib-ml_dsa_encoders.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key_compress.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_matrix.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_ntt.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_params.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sample.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sign.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_encoders.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_key.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_key_compress.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_matrix.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_ntt.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_params.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_sample.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_sign.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, + "crypto/ml_kem" => { + "deps" => [ + "crypto/ml_kem/libcrypto-lib-ml_kem.o", + "crypto/ml_kem/libfips-lib-ml_kem.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, "crypto/modes" => { "deps" => [ "crypto/modes/libcrypto-lib-cbc128.o", @@ -9270,6 +10760,7 @@ our %unified_info = ( "crypto/modes/libcrypto-lib-siv128.o", "crypto/modes/libcrypto-lib-wrap128.o", "crypto/modes/libcrypto-lib-xts128.o", + "crypto/modes/libcrypto-lib-xts128gb.o", "crypto/modes/libfips-lib-cbc128.o", "crypto/modes/libfips-lib-ccm128.o", "crypto/modes/libfips-lib-cfb128.o", @@ -9278,7 +10769,8 @@ our %unified_info = ( "crypto/modes/libfips-lib-ghash-x86.o", "crypto/modes/libfips-lib-ofb128.o", "crypto/modes/libfips-lib-wrap128.o", - "crypto/modes/libfips-lib-xts128.o" + "crypto/modes/libfips-lib-xts128.o", + "crypto/modes/libfips-lib-xts128gb.o" ], "products" => { "lib" => [ @@ -9422,6 +10914,7 @@ our %unified_info = ( "crypto/rand/libcrypto-lib-rand_lib.o", "crypto/rand/libcrypto-lib-rand_meth.o", "crypto/rand/libcrypto-lib-rand_pool.o", + "crypto/rand/libcrypto-lib-rand_uniform.o", "crypto/rand/libcrypto-lib-randfile.o", "crypto/rand/libfips-lib-rand_lib.o" ], @@ -9572,6 +11065,36 @@ our %unified_info = ( ] } }, + "crypto/slh_dsa" => { + "deps" => [ + "crypto/slh_dsa/libcrypto-lib-slh_adrs.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa_hash_ctx.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa_key.o", + "crypto/slh_dsa/libcrypto-lib-slh_fors.o", + "crypto/slh_dsa/libcrypto-lib-slh_hash.o", + "crypto/slh_dsa/libcrypto-lib-slh_hypertree.o", + "crypto/slh_dsa/libcrypto-lib-slh_params.o", + "crypto/slh_dsa/libcrypto-lib-slh_wots.o", + "crypto/slh_dsa/libcrypto-lib-slh_xmss.o", + "crypto/slh_dsa/libfips-lib-slh_adrs.o", + "crypto/slh_dsa/libfips-lib-slh_dsa.o", + "crypto/slh_dsa/libfips-lib-slh_dsa_hash_ctx.o", + "crypto/slh_dsa/libfips-lib-slh_dsa_key.o", + "crypto/slh_dsa/libfips-lib-slh_fors.o", + "crypto/slh_dsa/libfips-lib-slh_hash.o", + "crypto/slh_dsa/libfips-lib-slh_hypertree.o", + "crypto/slh_dsa/libfips-lib-slh_params.o", + "crypto/slh_dsa/libfips-lib-slh_wots.o", + "crypto/slh_dsa/libfips-lib-slh_xmss.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, "crypto/sm2" => { "deps" => [ "crypto/sm2/libcrypto-lib-sm2_crypt.o", @@ -9645,6 +11168,38 @@ our %unified_info = ( ] } }, + "crypto/thread" => { + "deps" => [ + "crypto/thread/libcrypto-lib-api.o", + "crypto/thread/libcrypto-lib-arch.o", + "crypto/thread/libcrypto-lib-internal.o", + "crypto/thread/libfips-lib-api.o", + "crypto/thread/libfips-lib-arch.o", + "crypto/thread/libfips-lib-internal.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, + "crypto/thread/arch" => { + "deps" => [ + "crypto/thread/arch/libcrypto-lib-thread_none.o", + "crypto/thread/arch/libcrypto-lib-thread_posix.o", + "crypto/thread/arch/libcrypto-lib-thread_win.o", + "crypto/thread/arch/libfips-lib-thread_none.o", + "crypto/thread/arch/libfips-lib-thread_posix.o", + "crypto/thread/arch/libfips-lib-thread_win.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, "crypto/ts" => { "deps" => [ "crypto/ts/libcrypto-lib-ts_asn1.o", @@ -9712,14 +11267,22 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-pcy_map.o", "crypto/x509/libcrypto-lib-pcy_node.o", "crypto/x509/libcrypto-lib-pcy_tree.o", + "crypto/x509/libcrypto-lib-t_acert.o", "crypto/x509/libcrypto-lib-t_crl.o", "crypto/x509/libcrypto-lib-t_req.o", "crypto/x509/libcrypto-lib-t_x509.o", + "crypto/x509/libcrypto-lib-v3_aaa.o", + "crypto/x509/libcrypto-lib-v3_ac_tgt.o", "crypto/x509/libcrypto-lib-v3_addr.o", "crypto/x509/libcrypto-lib-v3_admis.o", "crypto/x509/libcrypto-lib-v3_akeya.o", "crypto/x509/libcrypto-lib-v3_akid.o", "crypto/x509/libcrypto-lib-v3_asid.o", + "crypto/x509/libcrypto-lib-v3_attrdesc.o", + "crypto/x509/libcrypto-lib-v3_attrmap.o", + "crypto/x509/libcrypto-lib-v3_audit_id.o", + "crypto/x509/libcrypto-lib-v3_authattid.o", + "crypto/x509/libcrypto-lib-v3_battcons.o", "crypto/x509/libcrypto-lib-v3_bcons.o", "crypto/x509/libcrypto-lib-v3_bitst.o", "crypto/x509/libcrypto-lib-v3_conf.o", @@ -9728,12 +11291,17 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_enum.o", "crypto/x509/libcrypto-lib-v3_extku.o", "crypto/x509/libcrypto-lib-v3_genn.o", + "crypto/x509/libcrypto-lib-v3_group_ac.o", "crypto/x509/libcrypto-lib-v3_ia5.o", + "crypto/x509/libcrypto-lib-v3_ind_iss.o", "crypto/x509/libcrypto-lib-v3_info.o", "crypto/x509/libcrypto-lib-v3_int.o", + "crypto/x509/libcrypto-lib-v3_iobo.o", "crypto/x509/libcrypto-lib-v3_ist.o", "crypto/x509/libcrypto-lib-v3_lib.o", "crypto/x509/libcrypto-lib-v3_ncons.o", + "crypto/x509/libcrypto-lib-v3_no_ass.o", + "crypto/x509/libcrypto-lib-v3_no_rev_avail.o", "crypto/x509/libcrypto-lib-v3_pci.o", "crypto/x509/libcrypto-lib-v3_pcia.o", "crypto/x509/libcrypto-lib-v3_pcons.o", @@ -9741,13 +11309,20 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_pmaps.o", "crypto/x509/libcrypto-lib-v3_prn.o", "crypto/x509/libcrypto-lib-v3_purp.o", + "crypto/x509/libcrypto-lib-v3_rolespec.o", "crypto/x509/libcrypto-lib-v3_san.o", + "crypto/x509/libcrypto-lib-v3_sda.o", + "crypto/x509/libcrypto-lib-v3_single_use.o", "crypto/x509/libcrypto-lib-v3_skid.o", + "crypto/x509/libcrypto-lib-v3_soa_id.o", "crypto/x509/libcrypto-lib-v3_sxnet.o", + "crypto/x509/libcrypto-lib-v3_timespec.o", "crypto/x509/libcrypto-lib-v3_tlsf.o", + "crypto/x509/libcrypto-lib-v3_usernotice.o", "crypto/x509/libcrypto-lib-v3_utf8.o", "crypto/x509/libcrypto-lib-v3_utl.o", "crypto/x509/libcrypto-lib-v3err.o", + "crypto/x509/libcrypto-lib-x509_acert.o", "crypto/x509/libcrypto-lib-x509_att.o", "crypto/x509/libcrypto-lib-x509_cmp.o", "crypto/x509/libcrypto-lib-x509_d2.o", @@ -9765,6 +11340,7 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x509_v3.o", "crypto/x509/libcrypto-lib-x509_vfy.o", "crypto/x509/libcrypto-lib-x509_vpm.o", + "crypto/x509/libcrypto-lib-x509aset.o", "crypto/x509/libcrypto-lib-x509cset.o", "crypto/x509/libcrypto-lib-x509name.o", "crypto/x509/libcrypto-lib-x509rset.o", @@ -9774,6 +11350,7 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x_attrib.o", "crypto/x509/libcrypto-lib-x_crl.o", "crypto/x509/libcrypto-lib-x_exten.o", + "crypto/x509/libcrypto-lib-x_ietfatt.o", "crypto/x509/libcrypto-lib-x_name.o", "crypto/x509/libcrypto-lib-x_pubkey.o", "crypto/x509/libcrypto-lib-x_req.o", @@ -9801,6 +11378,7 @@ our %unified_info = ( "fuzz" => { "products" => { "bin" => [ + "fuzz/acert-test", "fuzz/asn1-test", "fuzz/asn1parse-test", "fuzz/bignum-test", @@ -9811,13 +11389,31 @@ our %unified_info = ( "fuzz/conf-test", "fuzz/crl-test", "fuzz/ct-test", + "fuzz/decoder-test", + "fuzz/dtlsclient-test", + "fuzz/dtlsserver-test", + "fuzz/hashtable-test", + "fuzz/ml-dsa-test", + "fuzz/ml-kem-test", + "fuzz/pem-test", + "fuzz/provider-test", + "fuzz/punycode-test", + "fuzz/quic-client-test", + "fuzz/quic-lcidm-test", + "fuzz/quic-rcidm-test", + "fuzz/quic-server-test", + "fuzz/quic-srtm-test", "fuzz/server-test", + "fuzz/slh-dsa-test", + "fuzz/smime-test", + "fuzz/v3name-test", "fuzz/x509-test" ] } }, "providers" => { "deps" => [ + "providers/endecode_test-bin-legacyprov.o", "providers/evp_extra_test-bin-legacyprov.o", "providers/libcrypto-lib-baseprov.o", "providers/libcrypto-lib-defltprov.o", @@ -9827,6 +11423,7 @@ our %unified_info = ( ], "products" => { "bin" => [ + "test/endecode_test", "test/evp_extra_test" ], "dso" => [ @@ -9877,8 +11474,12 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ec_sig.o", "providers/common/der/libcommon-lib-der_ecx_gen.o", "providers/common/der/libcommon-lib-der_ecx_key.o", + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o", + "providers/common/der/libcommon-lib-der_ml_dsa_key.o", "providers/common/der/libcommon-lib-der_rsa_gen.o", "providers/common/der/libcommon-lib-der_rsa_key.o", + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o", + "providers/common/der/libcommon-lib-der_slh_dsa_key.o", "providers/common/der/libcommon-lib-der_wrap_gen.o", "providers/common/der/libdefault-lib-der_rsa_sig.o", "providers/common/der/libdefault-lib-der_sm2_gen.o", @@ -9897,6 +11498,7 @@ our %unified_info = ( "providers/fips" => { "deps" => [ "providers/fips/fips-dso-fips_entry.o", + "providers/fips/libfips-lib-fipsindicator.o", "providers/fips/libfips-lib-fipsprov.o", "providers/fips/libfips-lib-self_test.o", "providers/fips/libfips-lib-self_test_kats.o" @@ -9940,6 +11542,9 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_aes_ccm_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_polyval.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_ocb.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_ocb_hw.o", @@ -9964,7 +11569,13 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_cts.o", "providers/implementations/ciphers/libdefault-lib-cipher_null.o", "providers/implementations/ciphers/libdefault-lib-cipher_sm4.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_sm4_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes_common.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes_default.o", @@ -10061,7 +11672,10 @@ our %unified_info = ( "providers/implementations/encode_decode/libdefault-lib-encode_key2blob.o", "providers/implementations/encode_decode/libdefault-lib-encode_key2ms.o", "providers/implementations/encode_decode/libdefault-lib-encode_key2text.o", - "providers/implementations/encode_decode/libdefault-lib-endecoder_common.o" + "providers/implementations/encode_decode/libdefault-lib-endecoder_common.o", + "providers/implementations/encode_decode/libdefault-lib-ml_common_codecs.o", + "providers/implementations/encode_decode/libdefault-lib-ml_dsa_codecs.o", + "providers/implementations/encode_decode/libdefault-lib-ml_kem_codecs.o" ], "products" => { "lib" => [ @@ -10089,7 +11703,9 @@ our %unified_info = ( }, "providers/implementations/kdfs" => { "deps" => [ + "providers/implementations/kdfs/libdefault-lib-argon2.o", "providers/implementations/kdfs/libdefault-lib-hkdf.o", + "providers/implementations/kdfs/libdefault-lib-hmacdrbg_kdf.o", "providers/implementations/kdfs/libdefault-lib-kbkdf.o", "providers/implementations/kdfs/libdefault-lib-krb5kdf.o", "providers/implementations/kdfs/libdefault-lib-pbkdf2.o", @@ -10108,7 +11724,8 @@ our %unified_info = ( "providers/implementations/kdfs/libfips-lib-sskdf.o", "providers/implementations/kdfs/libfips-lib-tls1_prf.o", "providers/implementations/kdfs/libfips-lib-x942kdf.o", - "providers/implementations/kdfs/liblegacy-lib-pbkdf1.o" + "providers/implementations/kdfs/liblegacy-lib-pbkdf1.o", + "providers/implementations/kdfs/liblegacy-lib-pvkkdf.o" ], "products" => { "lib" => [ @@ -10120,13 +11737,22 @@ our %unified_info = ( }, "providers/implementations/kem" => { "deps" => [ + "providers/implementations/kem/libdefault-lib-ec_kem.o", + "providers/implementations/kem/libdefault-lib-ecx_kem.o", + "providers/implementations/kem/libdefault-lib-kem_util.o", + "providers/implementations/kem/libdefault-lib-ml_kem_kem.o", + "providers/implementations/kem/libdefault-lib-mlx_kem.o", "providers/implementations/kem/libdefault-lib-rsa_kem.o", - "providers/implementations/kem/libfips-lib-rsa_kem.o" + "providers/implementations/kem/libfips-lib-ml_kem_kem.o", + "providers/implementations/kem/libfips-lib-mlx_kem.o", + "providers/implementations/kem/libfips-lib-rsa_kem.o", + "providers/implementations/kem/libtemplate-lib-template_kem.o" ], "products" => { "lib" => [ "providers/libdefault.a", - "providers/libfips.a" + "providers/libfips.a", + "providers/libtemplate.a" ] } }, @@ -10138,19 +11764,29 @@ our %unified_info = ( "providers/implementations/keymgmt/libdefault-lib-ecx_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-kdf_legacy_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-mac_legacy_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-ml_dsa_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-ml_kem_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-mlx_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-rsa_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-slh_dsa_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-dh_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-dsa_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-ec_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-ecx_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-kdf_legacy_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-mac_legacy_kmgmt.o", - "providers/implementations/keymgmt/libfips-lib-rsa_kmgmt.o" + "providers/implementations/keymgmt/libfips-lib-ml_dsa_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-ml_kem_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-mlx_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-rsa_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-slh_dsa_kmgmt.o", + "providers/implementations/keymgmt/libtemplate-lib-template_kmgmt.o" ], "products" => { "lib" => [ "providers/libdefault.a", - "providers/libfips.a" + "providers/libfips.a", + "providers/libtemplate.a" ] } }, @@ -10178,18 +11814,18 @@ our %unified_info = ( }, "providers/implementations/rands" => { "deps" => [ - "providers/implementations/rands/libdefault-lib-crngt.o", "providers/implementations/rands/libdefault-lib-drbg.o", "providers/implementations/rands/libdefault-lib-drbg_ctr.o", "providers/implementations/rands/libdefault-lib-drbg_hash.o", "providers/implementations/rands/libdefault-lib-drbg_hmac.o", "providers/implementations/rands/libdefault-lib-seed_src.o", + "providers/implementations/rands/libdefault-lib-seed_src_jitter.o", "providers/implementations/rands/libdefault-lib-test_rng.o", - "providers/implementations/rands/libfips-lib-crngt.o", "providers/implementations/rands/libfips-lib-drbg.o", "providers/implementations/rands/libfips-lib-drbg_ctr.o", "providers/implementations/rands/libfips-lib-drbg_hash.o", "providers/implementations/rands/libfips-lib-drbg_hmac.o", + "providers/implementations/rands/libfips-lib-fips_crng_test.o", "providers/implementations/rands/libfips-lib-test_rng.o" ], "products" => { @@ -10218,13 +11854,31 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-ecdsa_sig.o", "providers/implementations/signature/libdefault-lib-eddsa_sig.o", "providers/implementations/signature/libdefault-lib-mac_legacy_sig.o", + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o", "providers/implementations/signature/libdefault-lib-rsa_sig.o", + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o", "providers/implementations/signature/libdefault-lib-sm2_sig.o", "providers/implementations/signature/libfips-lib-dsa_sig.o", "providers/implementations/signature/libfips-lib-ecdsa_sig.o", "providers/implementations/signature/libfips-lib-eddsa_sig.o", "providers/implementations/signature/libfips-lib-mac_legacy_sig.o", - "providers/implementations/signature/libfips-lib-rsa_sig.o" + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o", + "providers/implementations/signature/libfips-lib-rsa_sig.o", + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o" + ], + "products" => { + "lib" => [ + "providers/libdefault.a", + "providers/libfips.a" + ] + } + }, + "providers/implementations/skeymgmt" => { + "deps" => [ + "providers/implementations/skeymgmt/libdefault-lib-aes_skmgmt.o", + "providers/implementations/skeymgmt/libdefault-lib-generic.o", + "providers/implementations/skeymgmt/libfips-lib-aes_skmgmt.o", + "providers/implementations/skeymgmt/libfips-lib-generic.o" ], "products" => { "lib" => [ @@ -10252,14 +11906,15 @@ our %unified_info = ( "ssl/libssl-lib-d1_srtp.o", "ssl/libssl-lib-methods.o", "ssl/libssl-lib-pqueue.o", + "ssl/libssl-lib-priority_queue.o", "ssl/libssl-lib-s3_enc.o", "ssl/libssl-lib-s3_lib.o", "ssl/libssl-lib-s3_msg.o", "ssl/libssl-lib-ssl_asn1.o", "ssl/libssl-lib-ssl_cert.o", + "ssl/libssl-lib-ssl_cert_comp.o", "ssl/libssl-lib-ssl_ciph.o", "ssl/libssl-lib-ssl_conf.o", - "ssl/libssl-lib-ssl_err.o", "ssl/libssl-lib-ssl_err_legacy.o", "ssl/libssl-lib-ssl_init.o", "ssl/libssl-lib-ssl_lib.o", @@ -10275,32 +11930,107 @@ our %unified_info = ( "ssl/libssl-lib-t1_trce.o", "ssl/libssl-lib-tls13_enc.o", "ssl/libssl-lib-tls_depr.o", - "ssl/libssl-lib-tls_srp.o", - "ssl/libdefault-lib-s3_cbc.o", - "ssl/libfips-lib-s3_cbc.o" + "ssl/libssl-lib-tls_srp.o" ], "products" => { "lib" => [ - "libssl", - "providers/libdefault.a", - "providers/libfips.a" + "libssl" + ] + } + }, + "ssl/quic" => { + "deps" => [ + "ssl/quic/libssl-lib-cc_newreno.o", + "ssl/quic/libssl-lib-json_enc.o", + "ssl/quic/libssl-lib-qlog.o", + "ssl/quic/libssl-lib-qlog_event_helpers.o", + "ssl/quic/libssl-lib-quic_ackm.o", + "ssl/quic/libssl-lib-quic_cfq.o", + "ssl/quic/libssl-lib-quic_channel.o", + "ssl/quic/libssl-lib-quic_demux.o", + "ssl/quic/libssl-lib-quic_engine.o", + "ssl/quic/libssl-lib-quic_fc.o", + "ssl/quic/libssl-lib-quic_fifd.o", + "ssl/quic/libssl-lib-quic_impl.o", + "ssl/quic/libssl-lib-quic_lcidm.o", + "ssl/quic/libssl-lib-quic_method.o", + "ssl/quic/libssl-lib-quic_obj.o", + "ssl/quic/libssl-lib-quic_port.o", + "ssl/quic/libssl-lib-quic_rcidm.o", + "ssl/quic/libssl-lib-quic_reactor.o", + "ssl/quic/libssl-lib-quic_reactor_wait_ctx.o", + "ssl/quic/libssl-lib-quic_record_rx.o", + "ssl/quic/libssl-lib-quic_record_shared.o", + "ssl/quic/libssl-lib-quic_record_tx.o", + "ssl/quic/libssl-lib-quic_record_util.o", + "ssl/quic/libssl-lib-quic_rstream.o", + "ssl/quic/libssl-lib-quic_rx_depack.o", + "ssl/quic/libssl-lib-quic_sf_list.o", + "ssl/quic/libssl-lib-quic_srt_gen.o", + "ssl/quic/libssl-lib-quic_srtm.o", + "ssl/quic/libssl-lib-quic_sstream.o", + "ssl/quic/libssl-lib-quic_statm.o", + "ssl/quic/libssl-lib-quic_stream_map.o", + "ssl/quic/libssl-lib-quic_thread_assist.o", + "ssl/quic/libssl-lib-quic_tls.o", + "ssl/quic/libssl-lib-quic_tls_api.o", + "ssl/quic/libssl-lib-quic_trace.o", + "ssl/quic/libssl-lib-quic_tserver.o", + "ssl/quic/libssl-lib-quic_txp.o", + "ssl/quic/libssl-lib-quic_txpim.o", + "ssl/quic/libssl-lib-quic_types.o", + "ssl/quic/libssl-lib-quic_wire.o", + "ssl/quic/libssl-lib-quic_wire_pkt.o", + "ssl/quic/libssl-lib-uint_set.o" + ], + "products" => { + "lib" => [ + "libssl" ] } }, "ssl/record" => { "deps" => [ - "ssl/record/libssl-lib-dtls1_bitmap.o", "ssl/record/libssl-lib-rec_layer_d1.o", - "ssl/record/libssl-lib-rec_layer_s3.o", - "ssl/record/libssl-lib-ssl3_buffer.o", - "ssl/record/libssl-lib-ssl3_record.o", - "ssl/record/libssl-lib-ssl3_record_tls13.o", - "ssl/record/libcommon-lib-tls_pad.o" + "ssl/record/libssl-lib-rec_layer_s3.o" + ], + "products" => { + "lib" => [ + "libssl" + ] + } + }, + "ssl/record/methods" => { + "deps" => [ + "ssl/record/methods/libssl-lib-dtls_meth.o", + "ssl/record/methods/libssl-lib-ssl3_meth.o", + "ssl/record/methods/libssl-lib-tls13_meth.o", + "ssl/record/methods/libssl-lib-tls1_meth.o", + "ssl/record/methods/libssl-lib-tls_common.o", + "ssl/record/methods/libssl-lib-tls_multib.o", + "ssl/record/methods/libssl-lib-tlsany_meth.o", + "ssl/record/methods/libcommon-lib-tls_pad.o", + "ssl/record/methods/libdefault-lib-ssl3_cbc.o", + "ssl/record/methods/libfips-lib-ssl3_cbc.o" ], "products" => { "lib" => [ "libssl", - "providers/libcommon.a" + "providers/libcommon.a", + "providers/libdefault.a", + "providers/libfips.a" + ] + } + }, + "ssl/rio" => { + "deps" => [ + "ssl/rio/libssl-lib-poll_builder.o", + "ssl/rio/libssl-lib-poll_immediate.o", + "ssl/rio/libssl-lib-rio_notifier.o" + ], + "products" => { + "lib" => [ + "libssl" ] } }, @@ -10338,9 +12068,40 @@ our %unified_info = ( "test/helpers/dtlstest-bin-ssltestlib.o", "test/helpers/endecode_test-bin-predefined_dhparams.o", "test/helpers/fatalerrtest-bin-ssltestlib.o", + "test/helpers/json_test-bin-noisydgrambio.o", + "test/helpers/json_test-bin-pktsplitbio.o", + "test/helpers/json_test-bin-quictestlib.o", + "test/helpers/json_test-bin-ssltestlib.o", + "test/helpers/pkcs12_api_test-bin-pkcs12.o", "test/helpers/pkcs12_format_test-bin-pkcs12.o", + "test/helpers/quic_multistream_test-bin-noisydgrambio.o", + "test/helpers/quic_multistream_test-bin-pktsplitbio.o", + "test/helpers/quic_multistream_test-bin-quictestlib.o", + "test/helpers/quic_multistream_test-bin-ssltestlib.o", + "test/helpers/quic_newcid_test-bin-noisydgrambio.o", + "test/helpers/quic_newcid_test-bin-pktsplitbio.o", + "test/helpers/quic_newcid_test-bin-quictestlib.o", + "test/helpers/quic_newcid_test-bin-ssltestlib.o", + "test/helpers/quic_radix_test-bin-noisydgrambio.o", + "test/helpers/quic_radix_test-bin-pktsplitbio.o", + "test/helpers/quic_radix_test-bin-quictestlib.o", + "test/helpers/quic_radix_test-bin-ssltestlib.o", + "test/helpers/quic_srt_gen_test-bin-noisydgrambio.o", + "test/helpers/quic_srt_gen_test-bin-pktsplitbio.o", + "test/helpers/quic_srt_gen_test-bin-quictestlib.o", + "test/helpers/quic_srt_gen_test-bin-ssltestlib.o", + "test/helpers/quicapitest-bin-noisydgrambio.o", + "test/helpers/quicapitest-bin-pktsplitbio.o", + "test/helpers/quicapitest-bin-quictestlib.o", + "test/helpers/quicapitest-bin-ssltestlib.o", + "test/helpers/quicfaultstest-bin-noisydgrambio.o", + "test/helpers/quicfaultstest-bin-pktsplitbio.o", + "test/helpers/quicfaultstest-bin-quictestlib.o", + "test/helpers/quicfaultstest-bin-ssltestlib.o", "test/helpers/recordlentest-bin-ssltestlib.o", + "test/helpers/rpktest-bin-ssltestlib.o", "test/helpers/servername_test-bin-ssltestlib.o", + "test/helpers/ssl_handshake_rtt_test-bin-ssltestlib.o", "test/helpers/ssl_old_test-bin-predefined_dhparams.o", "test/helpers/ssl_test-bin-handshake.o", "test/helpers/ssl_test-bin-handshake_srp.o", @@ -10349,7 +12110,8 @@ our %unified_info = ( "test/helpers/sslapitest-bin-ssltestlib.o", "test/helpers/sslbuffertest-bin-ssltestlib.o", "test/helpers/sslcorrupttest-bin-ssltestlib.o", - "test/helpers/tls13ccstest-bin-ssltestlib.o" + "test/helpers/tls13ccstest-bin-ssltestlib.o", + "test/helpers/tls13groupselection_test-bin-ssltestlib.o" ], "products" => { "bin" => [ @@ -10367,16 +12129,37 @@ our %unified_info = ( "test/dtlstest", "test/endecode_test", "test/fatalerrtest", + "test/json_test", + "test/pkcs12_api_test", "test/pkcs12_format_test", + "test/quic_multistream_test", + "test/quic_newcid_test", + "test/quic_radix_test", + "test/quic_srt_gen_test", + "test/quicapitest", + "test/quicfaultstest", "test/recordlentest", + "test/rpktest", "test/servername_test", + "test/ssl_handshake_rtt_test", "test/ssl_old_test", "test/ssl_test", "test/ssl_test_ctx_test", "test/sslapitest", "test/sslbuffertest", "test/sslcorrupttest", - "test/tls13ccstest" + "test/tls13ccstest", + "test/tls13groupselection_test" + ] + } + }, + "test/radix" => { + "deps" => [ + "test/radix/quic_radix_test-bin-quic_radix.o" + ], + "products" => { + "bin" => [ + "test/quic_radix_test" ] } }, @@ -10388,6 +12171,7 @@ our %unified_info = ( "test/testutil/libtestutil-lib-driver.o", "test/testutil/libtestutil-lib-fake_random.o", "test/testutil/libtestutil-lib-format_output.o", + "test/testutil/libtestutil-lib-helper.o", "test/testutil/libtestutil-lib-load.o", "test/testutil/libtestutil-lib-main.o", "test/testutil/libtestutil-lib-options.o", @@ -10423,6 +12207,12 @@ our %unified_info = ( } }, "generate" => { + "OpenSSLConfig.cmake" => [ + "exporters/cmake/OpenSSLConfig.cmake.in" + ], + "OpenSSLConfigVersion.cmake" => [ + "exporters/cmake/OpenSSLConfigVersion.cmake.in" + ], "apps/progs.c" => [ "apps/progs.pl", "\"-C\"", @@ -10433,6 +12223,19 @@ our %unified_info = ( "\"-H\"", "\$(APPS_OPENSSL)" ], + "builddata.pm" => [ + "util/mkinstallvars.pl", + "PREFIX=.", + "BINDIR=apps", + "APPLINKDIR=ms", + "LIBDIR=", + "INCLUDEDIR=include", + "\"INCLUDEDIR=\$(SRCDIR)/include\"", + "ENGINESDIR=engines", + "MODULESDIR=providers", + "\"VERSION=\$(VERSION)\"", + "\"LDLIBS=\$(LIB_EX_LIBS)\"" + ], "crypto/aes/aes-586.S" => [ "crypto/aes/asm/aes-586.pl" ], @@ -10454,6 +12257,24 @@ our %unified_info = ( "crypto/aes/aes-ppc.s" => [ "crypto/aes/asm/aes-ppc.pl" ], + "crypto/aes/aes-riscv32-zkn.s" => [ + "crypto/aes/asm/aes-riscv32-zkn.pl" + ], + "crypto/aes/aes-riscv64-zkn.s" => [ + "crypto/aes/asm/aes-riscv64-zkn.pl" + ], + "crypto/aes/aes-riscv64-zvbb-zvkg-zvkned.s" => [ + "crypto/aes/asm/aes-riscv64-zvbb-zvkg-zvkned.pl" + ], + "crypto/aes/aes-riscv64-zvkb-zvkned.s" => [ + "crypto/aes/asm/aes-riscv64-zvkb-zvkned.pl" + ], + "crypto/aes/aes-riscv64-zvkned.s" => [ + "crypto/aes/asm/aes-riscv64-zvkned.pl" + ], + "crypto/aes/aes-riscv64.s" => [ + "crypto/aes/asm/aes-riscv64.pl" + ], "crypto/aes/aes-s390x.S" => [ "crypto/aes/asm/aes-s390x.pl" ], @@ -10481,6 +12302,9 @@ our %unified_info = ( "crypto/aes/aesni-x86_64.s" => [ "crypto/aes/asm/aesni-x86_64.pl" ], + "crypto/aes/aesni-xts-avx512.s" => [ + "crypto/aes/asm/aesni-xts-avx512.pl" + ], "crypto/aes/aesp8-ppc.s" => [ "crypto/aes/asm/aesp8-ppc.pl" ], @@ -10493,12 +12317,18 @@ our %unified_info = ( "crypto/aes/bsaes-armv7.S" => [ "crypto/aes/asm/bsaes-armv7.pl" ], + "crypto/aes/bsaes-armv8.S" => [ + "crypto/aes/asm/bsaes-armv8.pl" + ], "crypto/aes/bsaes-x86_64.s" => [ "crypto/aes/asm/bsaes-x86_64.pl" ], "crypto/aes/vpaes-armv8.S" => [ "crypto/aes/asm/vpaes-armv8.pl" ], + "crypto/aes/vpaes-loongarch64.S" => [ + "crypto/aes/asm/vpaes-loongarch64.pl" + ], "crypto/aes/vpaes-ppc.s" => [ "crypto/aes/asm/vpaes-ppc.pl" ], @@ -10559,15 +12389,33 @@ our %unified_info = ( "crypto/bn/ppc-mont.s" => [ "crypto/bn/asm/ppc-mont.pl" ], + "crypto/bn/ppc64-mont-fixed.s" => [ + "crypto/bn/asm/ppc64-mont-fixed.pl" + ], "crypto/bn/ppc64-mont.s" => [ "crypto/bn/asm/ppc64-mont.pl" ], + "crypto/bn/rsaz-2k-avx512.s" => [ + "crypto/bn/asm/rsaz-2k-avx512.pl" + ], + "crypto/bn/rsaz-2k-avxifma.s" => [ + "crypto/bn/asm/rsaz-2k-avxifma.pl" + ], + "crypto/bn/rsaz-3k-avx512.s" => [ + "crypto/bn/asm/rsaz-3k-avx512.pl" + ], + "crypto/bn/rsaz-3k-avxifma.s" => [ + "crypto/bn/asm/rsaz-3k-avxifma.pl" + ], + "crypto/bn/rsaz-4k-avx512.s" => [ + "crypto/bn/asm/rsaz-4k-avx512.pl" + ], + "crypto/bn/rsaz-4k-avxifma.s" => [ + "crypto/bn/asm/rsaz-4k-avxifma.pl" + ], "crypto/bn/rsaz-avx2.s" => [ "crypto/bn/asm/rsaz-avx2.pl" ], - "crypto/bn/rsaz-avx512.s" => [ - "crypto/bn/asm/rsaz-avx512.pl" - ], "crypto/bn/rsaz-x86_64.s" => [ "crypto/bn/asm/rsaz-x86_64.pl" ], @@ -10629,6 +12477,9 @@ our %unified_info = ( "crypto/chacha/chacha-armv4.S" => [ "crypto/chacha/asm/chacha-armv4.pl" ], + "crypto/chacha/chacha-armv8-sve.S" => [ + "crypto/chacha/asm/chacha-armv8-sve.pl" + ], "crypto/chacha/chacha-armv8.S" => [ "crypto/chacha/asm/chacha-armv8.pl" ], @@ -10641,9 +12492,19 @@ our %unified_info = ( "crypto/chacha/chacha-ia64.s" => [ "crypto/chacha/chacha-ia64.S" ], + "crypto/chacha/chacha-loongarch64.S" => [ + "crypto/chacha/asm/chacha-loongarch64.pl" + ], "crypto/chacha/chacha-ppc.s" => [ "crypto/chacha/asm/chacha-ppc.pl" ], + "crypto/chacha/chacha-riscv64-v-zbb-zvkb.s" => [ + "crypto/chacha/asm/chacha-riscv64-v-zbb.pl", + "zvkb" + ], + "crypto/chacha/chacha-riscv64-v-zbb.s" => [ + "crypto/chacha/asm/chacha-riscv64-v-zbb.pl" + ], "crypto/chacha/chacha-s390x.S" => [ "crypto/chacha/asm/chacha-s390x.pl" ], @@ -10653,6 +12514,9 @@ our %unified_info = ( "crypto/chacha/chacha-x86_64.s" => [ "crypto/chacha/asm/chacha-x86_64.pl" ], + "crypto/chacha/chachap10-ppc.s" => [ + "crypto/chacha/asm/chachap10-ppc.pl" + ], "crypto/des/crypt586.S" => [ "crypto/des/asm/crypt586.pl" ], @@ -10665,6 +12529,9 @@ our %unified_info = ( "crypto/des/dest4-sparcv9.S" => [ "crypto/des/asm/dest4-sparcv9.pl" ], + "crypto/ec/ecp_nistp384-ppc64.s" => [ + "crypto/ec/asm/ecp_nistp384-ppc64.pl" + ], "crypto/ec/ecp_nistp521-ppc64.s" => [ "crypto/ec/asm/ecp_nistp521-ppc64.pl" ], @@ -10689,6 +12556,9 @@ our %unified_info = ( "crypto/ec/ecp_nistz256-x86_64.s" => [ "crypto/ec/asm/ecp_nistz256-x86_64.pl" ], + "crypto/ec/ecp_sm2p256-armv8.S" => [ + "crypto/ec/asm/ecp_sm2p256-armv8.pl" + ], "crypto/ec/x25519-ppc64.s" => [ "crypto/ec/asm/x25519-ppc64.pl" ], @@ -10698,18 +12568,39 @@ our %unified_info = ( "crypto/ia64cpuid.s" => [ "crypto/ia64cpuid.S" ], + "crypto/loongarch64cpuid.s" => [ + "crypto/loongarch64cpuid.pl" + ], "crypto/md5/md5-586.S" => [ "crypto/md5/asm/md5-586.pl" ], + "crypto/md5/md5-aarch64.S" => [ + "crypto/md5/asm/md5-aarch64.pl" + ], + "crypto/md5/md5-loongarch64.S" => [ + "crypto/md5/asm/md5-loongarch64.pl" + ], "crypto/md5/md5-sparcv9.S" => [ "crypto/md5/asm/md5-sparcv9.pl" ], "crypto/md5/md5-x86_64.s" => [ "crypto/md5/asm/md5-x86_64.pl" ], + "crypto/modes/aes-gcm-armv8-unroll8_64.S" => [ + "crypto/modes/asm/aes-gcm-armv8-unroll8_64.pl" + ], "crypto/modes/aes-gcm-armv8_64.S" => [ "crypto/modes/asm/aes-gcm-armv8_64.pl" ], + "crypto/modes/aes-gcm-avx512.s" => [ + "crypto/modes/asm/aes-gcm-avx512.pl" + ], + "crypto/modes/aes-gcm-ppc.s" => [ + "crypto/modes/asm/aes-gcm-ppc.pl" + ], + "crypto/modes/aes-gcm-riscv64-zvkb-zvkg-zvkned.s" => [ + "crypto/modes/asm/aes-gcm-riscv64-zvkb-zvkg-zvkned.pl" + ], "crypto/modes/aesni-gcm-x86_64.s" => [ "crypto/modes/asm/aesni-gcm-x86_64.pl" ], @@ -10728,6 +12619,15 @@ our %unified_info = ( "crypto/modes/ghash-parisc.s" => [ "crypto/modes/asm/ghash-parisc.pl" ], + "crypto/modes/ghash-riscv64-zvkb-zvbc.s" => [ + "crypto/modes/asm/ghash-riscv64-zvkb-zvbc.pl" + ], + "crypto/modes/ghash-riscv64-zvkg.s" => [ + "crypto/modes/asm/ghash-riscv64-zvkg.pl" + ], + "crypto/modes/ghash-riscv64.s" => [ + "crypto/modes/asm/ghash-riscv64.pl" + ], "crypto/modes/ghash-s390x.S" => [ "crypto/modes/asm/ghash-s390x.pl" ], @@ -10746,6 +12646,9 @@ our %unified_info = ( "crypto/modes/ghashv8-armx.S" => [ "crypto/modes/asm/ghashv8-armx.pl" ], + "crypto/params_idx.c" => [ + "crypto/params_idx.c.in" + ], "crypto/pariscid.s" => [ "crypto/pariscid.pl" ], @@ -10806,6 +12709,12 @@ our %unified_info = ( "crypto/ripemd/rmd-586.S" => [ "crypto/ripemd/asm/rmd-586.pl" ], + "crypto/riscv32cpuid.s" => [ + "crypto/riscv32cpuid.pl" + ], + "crypto/riscv64cpuid.s" => [ + "crypto/riscv64cpuid.pl" + ], "crypto/s390xcpuid.S" => [ "crypto/s390xcpuid.pl" ], @@ -10914,6 +12823,9 @@ our %unified_info = ( "crypto/sha/sha256-ppc.s" => [ "crypto/sha/asm/sha512-ppc.pl" ], + "crypto/sha/sha256-riscv64-zvkb-zvknha_or_zvknhb.S" => [ + "crypto/sha/asm/sha256-riscv64-zvkb-zvknha_or_zvknhb.pl" + ], "crypto/sha/sha256-s390x.S" => [ "crypto/sha/asm/sha512-s390x.pl" ], @@ -10950,6 +12862,9 @@ our %unified_info = ( "crypto/sha/sha512-ppc.s" => [ "crypto/sha/asm/sha512-ppc.pl" ], + "crypto/sha/sha512-riscv64-zvkb-zvknhb.S" => [ + "crypto/sha/asm/sha512-riscv64-zvkb-zvknhb.pl" + ], "crypto/sha/sha512-s390x.S" => [ "crypto/sha/asm/sha512-s390x.pl" ], @@ -10962,6 +12877,24 @@ our %unified_info = ( "crypto/sha/sha512p8-ppc.s" => [ "crypto/sha/asm/sha512p8-ppc.pl" ], + "crypto/sm3/sm3-armv8.S" => [ + "crypto/sm3/asm/sm3-armv8.pl" + ], + "crypto/sm3/sm3-riscv64-zvksh.S" => [ + "crypto/sm3/asm/sm3-riscv64-zvksh.pl" + ], + "crypto/sm4/sm4-armv8.S" => [ + "crypto/sm4/asm/sm4-armv8.pl" + ], + "crypto/sm4/sm4-riscv64-zvksed.s" => [ + "crypto/sm4/asm/sm4-riscv64-zvksed.pl" + ], + "crypto/sm4/vpsm4-armv8.S" => [ + "crypto/sm4/asm/vpsm4-armv8.pl" + ], + "crypto/sm4/vpsm4_ex-armv8.S" => [ + "crypto/sm4/asm/vpsm4_ex-armv8.pl" + ], "crypto/uplink-ia64.s" => [ "ms/uplink-ia64.pl" ], @@ -11127,6 +13060,9 @@ our %unified_info = ( "doc/html/man1/openssl-sess_id.html" => [ "doc/man1/openssl-sess_id.pod" ], + "doc/html/man1/openssl-skeyutl.html" => [ + "doc/man1/openssl-skeyutl.pod" + ], "doc/html/man1/openssl-smime.html" => [ "doc/man1/openssl-smime.pod" ], @@ -11268,6 +13204,9 @@ our %unified_info = ( "doc/html/man3/BIO_get_ex_new_index.html" => [ "doc/man3/BIO_get_ex_new_index.pod" ], + "doc/html/man3/BIO_get_rpoll_descriptor.html" => [ + "doc/man3/BIO_get_rpoll_descriptor.pod" + ], "doc/html/man3/BIO_meth_new.html" => [ "doc/man3/BIO_meth_new.pod" ], @@ -11304,6 +13243,9 @@ our %unified_info = ( "doc/html/man3/BIO_s_datagram.html" => [ "doc/man3/BIO_s_datagram.pod" ], + "doc/html/man3/BIO_s_dgram_pair.html" => [ + "doc/man3/BIO_s_dgram_pair.pod" + ], "doc/html/man3/BIO_s_fd.html" => [ "doc/man3/BIO_s_fd.pod" ], @@ -11319,6 +13261,9 @@ our %unified_info = ( "doc/html/man3/BIO_s_socket.html" => [ "doc/man3/BIO_s_socket.pod" ], + "doc/html/man3/BIO_sendmmsg.html" => [ + "doc/man3/BIO_sendmmsg.pod" + ], "doc/html/man3/BIO_set_callback.html" => [ "doc/man3/BIO_set_callback.pod" ], @@ -11391,6 +13336,9 @@ our %unified_info = ( "doc/html/man3/BUF_MEM_new.html" => [ "doc/man3/BUF_MEM_new.pod" ], + "doc/html/man3/CMAC_CTX.html" => [ + "doc/man3/CMAC_CTX.pod" + ], "doc/html/man3/CMS_EncryptedData_decrypt.html" => [ "doc/man3/CMS_EncryptedData_decrypt.pod" ], @@ -11457,6 +13405,9 @@ our %unified_info = ( "doc/html/man3/CMS_verify_receipt.html" => [ "doc/man3/CMS_verify_receipt.pod" ], + "doc/html/man3/COMP_CTX_new.html" => [ + "doc/man3/COMP_CTX_new.pod" + ], "doc/html/man3/CONF_modules_free.html" => [ "doc/man3/CONF_modules_free.pod" ], @@ -11556,6 +13507,12 @@ our %unified_info = ( "doc/html/man3/DTLS_set_timer_cb.html" => [ "doc/man3/DTLS_set_timer_cb.pod" ], + "doc/html/man3/DTLSv1_get_timeout.html" => [ + "doc/man3/DTLSv1_get_timeout.pod" + ], + "doc/html/man3/DTLSv1_handle_timeout.html" => [ + "doc/man3/DTLSv1_handle_timeout.pod" + ], "doc/html/man3/DTLSv1_listen.html" => [ "doc/man3/DTLSv1_listen.pod" ], @@ -11694,6 +13651,9 @@ our %unified_info = ( "doc/html/man3/EVP_PKEY_CTX_get0_pkey.html" => [ "doc/man3/EVP_PKEY_CTX_get0_pkey.pod" ], + "doc/html/man3/EVP_PKEY_CTX_get_algor.html" => [ + "doc/man3/EVP_PKEY_CTX_get_algor.pod" + ], "doc/html/man3/EVP_PKEY_CTX_new.html" => [ "doc/man3/EVP_PKEY_CTX_new.pod" ], @@ -11811,6 +13771,12 @@ our %unified_info = ( "doc/html/man3/EVP_SIGNATURE.html" => [ "doc/man3/EVP_SIGNATURE.pod" ], + "doc/html/man3/EVP_SKEY.html" => [ + "doc/man3/EVP_SKEY.pod" + ], + "doc/html/man3/EVP_SKEYMGMT.html" => [ + "doc/man3/EVP_SKEYMGMT.pod" + ], "doc/html/man3/EVP_SealInit.html" => [ "doc/man3/EVP_SealInit.pod" ], @@ -11898,6 +13864,9 @@ our %unified_info = ( "doc/html/man3/EVP_whirlpool.html" => [ "doc/man3/EVP_whirlpool.pod" ], + "doc/html/man3/GENERAL_NAME.html" => [ + "doc/man3/GENERAL_NAME.pod" + ], "doc/html/man3/HMAC.html" => [ "doc/man3/HMAC.pod" ], @@ -11970,9 +13939,15 @@ our %unified_info = ( "doc/html/man3/OPENSSL_load_builtin_modules.html" => [ "doc/man3/OPENSSL_load_builtin_modules.pod" ], + "doc/html/man3/OPENSSL_load_u16_le.html" => [ + "doc/man3/OPENSSL_load_u16_le.pod" + ], "doc/html/man3/OPENSSL_malloc.html" => [ "doc/man3/OPENSSL_malloc.pod" ], + "doc/html/man3/OPENSSL_riscvcap.html" => [ + "doc/man3/OPENSSL_riscvcap.pod" + ], "doc/html/man3/OPENSSL_s390xcap.html" => [ "doc/man3/OPENSSL_s390xcap.pod" ], @@ -11988,12 +13963,18 @@ our %unified_info = ( "doc/html/man3/OSSL_CALLBACK.html" => [ "doc/man3/OSSL_CALLBACK.pod" ], + "doc/html/man3/OSSL_CMP_ATAV_set0.html" => [ + "doc/man3/OSSL_CMP_ATAV_set0.pod" + ], "doc/html/man3/OSSL_CMP_CTX_new.html" => [ "doc/man3/OSSL_CMP_CTX_new.pod" ], "doc/html/man3/OSSL_CMP_HDR_get0_transactionID.html" => [ "doc/man3/OSSL_CMP_HDR_get0_transactionID.pod" ], + "doc/html/man3/OSSL_CMP_ITAV_new_caCerts.html" => [ + "doc/man3/OSSL_CMP_ITAV_new_caCerts.pod" + ], "doc/html/man3/OSSL_CMP_ITAV_set0.html" => [ "doc/man3/OSSL_CMP_ITAV_set0.pod" ], @@ -12063,9 +14044,18 @@ our %unified_info = ( "doc/html/man3/OSSL_ENCODER_to_bio.html" => [ "doc/man3/OSSL_ENCODER_to_bio.pod" ], + "doc/html/man3/OSSL_ERR_STATE_save.html" => [ + "doc/man3/OSSL_ERR_STATE_save.pod" + ], "doc/html/man3/OSSL_ESS_check_signing_certs.html" => [ "doc/man3/OSSL_ESS_check_signing_certs.pod" ], + "doc/html/man3/OSSL_GENERAL_NAMES_print.html" => [ + "doc/man3/OSSL_GENERAL_NAMES_print.pod" + ], + "doc/html/man3/OSSL_HPKE_CTX_new.html" => [ + "doc/man3/OSSL_HPKE_CTX_new.pod" + ], "doc/html/man3/OSSL_HTTP_REQ_CTX.html" => [ "doc/man3/OSSL_HTTP_REQ_CTX.pod" ], @@ -12075,12 +14065,24 @@ our %unified_info = ( "doc/html/man3/OSSL_HTTP_transfer.html" => [ "doc/man3/OSSL_HTTP_transfer.pod" ], + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX.html" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX.pod" + ], + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX_print.html" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX_print.pod" + ], + "doc/html/man3/OSSL_INDICATOR_set_callback.html" => [ + "doc/man3/OSSL_INDICATOR_set_callback.pod" + ], "doc/html/man3/OSSL_ITEM.html" => [ "doc/man3/OSSL_ITEM.pod" ], "doc/html/man3/OSSL_LIB_CTX.html" => [ "doc/man3/OSSL_LIB_CTX.pod" ], + "doc/html/man3/OSSL_LIB_CTX_set_conf_diagnostics.html" => [ + "doc/man3/OSSL_LIB_CTX_set_conf_diagnostics.pod" + ], "doc/html/man3/OSSL_PARAM.html" => [ "doc/man3/OSSL_PARAM.pod" ], @@ -12096,9 +14098,15 @@ our %unified_info = ( "doc/html/man3/OSSL_PARAM_int.html" => [ "doc/man3/OSSL_PARAM_int.pod" ], + "doc/html/man3/OSSL_PARAM_print_to_bio.html" => [ + "doc/man3/OSSL_PARAM_print_to_bio.pod" + ], "doc/html/man3/OSSL_PROVIDER.html" => [ "doc/man3/OSSL_PROVIDER.pod" ], + "doc/html/man3/OSSL_QUIC_client_method.html" => [ + "doc/man3/OSSL_QUIC_client_method.pod" + ], "doc/html/man3/OSSL_SELF_TEST_new.html" => [ "doc/man3/OSSL_SELF_TEST_new.pod" ], @@ -12123,6 +14131,9 @@ our %unified_info = ( "doc/html/man3/OSSL_STORE_open.html" => [ "doc/man3/OSSL_STORE_open.pod" ], + "doc/html/man3/OSSL_sleep.html" => [ + "doc/man3/OSSL_sleep.pod" + ], "doc/html/man3/OSSL_trace_enabled.html" => [ "doc/man3/OSSL_trace_enabled.pod" ], @@ -12138,6 +14149,9 @@ our %unified_info = ( "doc/html/man3/OpenSSL_version.html" => [ "doc/man3/OpenSSL_version.pod" ], + "doc/html/man3/PBMAC1_get1_pbkdf2_param.html" => [ + "doc/man3/PBMAC1_get1_pbkdf2_param.pod" + ], "doc/html/man3/PEM_X509_INFO_read_bio_ex.html" => [ "doc/man3/PEM_X509_INFO_read_bio_ex.pod" ], @@ -12174,6 +14188,9 @@ our %unified_info = ( "doc/html/man3/PKCS12_SAFEBAG_get1_cert.html" => [ "doc/man3/PKCS12_SAFEBAG_get1_cert.pod" ], + "doc/html/man3/PKCS12_SAFEBAG_set0_attrs.html" => [ + "doc/man3/PKCS12_SAFEBAG_set0_attrs.pod" + ], "doc/html/man3/PKCS12_add1_attr_by_NID.html" => [ "doc/man3/PKCS12_add1_attr_by_NID.pod" ], @@ -12447,6 +14464,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set0_CA_list.html" => [ "doc/man3/SSL_CTX_set0_CA_list.pod" ], + "doc/html/man3/SSL_CTX_set1_cert_comp_preference.html" => [ + "doc/man3/SSL_CTX_set1_cert_comp_preference.pod" + ], "doc/html/man3/SSL_CTX_set1_curves.html" => [ "doc/man3/SSL_CTX_set1_curves.pod" ], @@ -12486,6 +14506,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_default_passwd_cb.html" => [ "doc/man3/SSL_CTX_set_default_passwd_cb.pod" ], + "doc/html/man3/SSL_CTX_set_domain_flags.html" => [ + "doc/man3/SSL_CTX_set_domain_flags.pod" + ], "doc/html/man3/SSL_CTX_set_generate_session_id.html" => [ "doc/man3/SSL_CTX_set_generate_session_id.pod" ], @@ -12507,6 +14530,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_msg_callback.html" => [ "doc/man3/SSL_CTX_set_msg_callback.pod" ], + "doc/html/man3/SSL_CTX_set_new_pending_conn_cb.html" => [ + "doc/man3/SSL_CTX_set_new_pending_conn_cb.pod" + ], "doc/html/man3/SSL_CTX_set_num_tickets.html" => [ "doc/man3/SSL_CTX_set_num_tickets.pod" ], @@ -12621,6 +14647,9 @@ our %unified_info = ( "doc/html/man3/SSL_accept.html" => [ "doc/man3/SSL_accept.pod" ], + "doc/html/man3/SSL_accept_stream.html" => [ + "doc/man3/SSL_accept_stream.pod" + ], "doc/html/man3/SSL_alert_type_string.html" => [ "doc/man3/SSL_alert_type_string.pod" ], @@ -12648,9 +14677,21 @@ our %unified_info = ( "doc/html/man3/SSL_free.html" => [ "doc/man3/SSL_free.pod" ], + "doc/html/man3/SSL_get0_connection.html" => [ + "doc/man3/SSL_get0_connection.pod" + ], + "doc/html/man3/SSL_get0_group_name.html" => [ + "doc/man3/SSL_get0_group_name.pod" + ], + "doc/html/man3/SSL_get0_peer_rpk.html" => [ + "doc/man3/SSL_get0_peer_rpk.pod" + ], "doc/html/man3/SSL_get0_peer_scts.html" => [ "doc/man3/SSL_get0_peer_scts.pod" ], + "doc/html/man3/SSL_get1_builtin_sigalgs.html" => [ + "doc/man3/SSL_get1_builtin_sigalgs.pod" + ], "doc/html/man3/SSL_get_SSL_CTX.html" => [ "doc/man3/SSL_get_SSL_CTX.pod" ], @@ -12666,6 +14707,9 @@ our %unified_info = ( "doc/html/man3/SSL_get_client_random.html" => [ "doc/man3/SSL_get_client_random.pod" ], + "doc/html/man3/SSL_get_conn_close_info.html" => [ + "doc/man3/SSL_get_conn_close_info.pod" + ], "doc/html/man3/SSL_get_current_cipher.html" => [ "doc/man3/SSL_get_current_cipher.pod" ], @@ -12675,12 +14719,18 @@ our %unified_info = ( "doc/html/man3/SSL_get_error.html" => [ "doc/man3/SSL_get_error.pod" ], + "doc/html/man3/SSL_get_event_timeout.html" => [ + "doc/man3/SSL_get_event_timeout.pod" + ], "doc/html/man3/SSL_get_extms_support.html" => [ "doc/man3/SSL_get_extms_support.pod" ], "doc/html/man3/SSL_get_fd.html" => [ "doc/man3/SSL_get_fd.pod" ], + "doc/html/man3/SSL_get_handshake_rtt.html" => [ + "doc/man3/SSL_get_handshake_rtt.pod" + ], "doc/html/man3/SSL_get_peer_cert_chain.html" => [ "doc/man3/SSL_get_peer_cert_chain.pod" ], @@ -12699,12 +14749,24 @@ our %unified_info = ( "doc/html/man3/SSL_get_rbio.html" => [ "doc/man3/SSL_get_rbio.pod" ], + "doc/html/man3/SSL_get_rpoll_descriptor.html" => [ + "doc/man3/SSL_get_rpoll_descriptor.pod" + ], "doc/html/man3/SSL_get_session.html" => [ "doc/man3/SSL_get_session.pod" ], "doc/html/man3/SSL_get_shared_sigalgs.html" => [ "doc/man3/SSL_get_shared_sigalgs.pod" ], + "doc/html/man3/SSL_get_stream_id.html" => [ + "doc/man3/SSL_get_stream_id.pod" + ], + "doc/html/man3/SSL_get_stream_read_state.html" => [ + "doc/man3/SSL_get_stream_read_state.pod" + ], + "doc/html/man3/SSL_get_value_uint.html" => [ + "doc/man3/SSL_get_value_uint.pod" + ], "doc/html/man3/SSL_get_verify_result.html" => [ "doc/man3/SSL_get_verify_result.pod" ], @@ -12714,9 +14776,15 @@ our %unified_info = ( "doc/html/man3/SSL_group_to_name.html" => [ "doc/man3/SSL_group_to_name.pod" ], + "doc/html/man3/SSL_handle_events.html" => [ + "doc/man3/SSL_handle_events.pod" + ], "doc/html/man3/SSL_in_init.html" => [ "doc/man3/SSL_in_init.pod" ], + "doc/html/man3/SSL_inject_net_dgram.html" => [ + "doc/man3/SSL_inject_net_dgram.pod" + ], "doc/html/man3/SSL_key_update.html" => [ "doc/man3/SSL_key_update.pod" ], @@ -12729,9 +14797,21 @@ our %unified_info = ( "doc/html/man3/SSL_new.html" => [ "doc/man3/SSL_new.pod" ], + "doc/html/man3/SSL_new_domain.html" => [ + "doc/man3/SSL_new_domain.pod" + ], + "doc/html/man3/SSL_new_listener.html" => [ + "doc/man3/SSL_new_listener.pod" + ], + "doc/html/man3/SSL_new_stream.html" => [ + "doc/man3/SSL_new_stream.pod" + ], "doc/html/man3/SSL_pending.html" => [ "doc/man3/SSL_pending.pod" ], + "doc/html/man3/SSL_poll.html" => [ + "doc/man3/SSL_poll.pod" + ], "doc/html/man3/SSL_read.html" => [ "doc/man3/SSL_read.pod" ], @@ -12747,24 +14827,45 @@ our %unified_info = ( "doc/html/man3/SSL_set1_host.html" => [ "doc/man3/SSL_set1_host.pod" ], + "doc/html/man3/SSL_set1_initial_peer_addr.html" => [ + "doc/man3/SSL_set1_initial_peer_addr.pod" + ], + "doc/html/man3/SSL_set1_server_cert_type.html" => [ + "doc/man3/SSL_set1_server_cert_type.pod" + ], "doc/html/man3/SSL_set_async_callback.html" => [ "doc/man3/SSL_set_async_callback.pod" ], "doc/html/man3/SSL_set_bio.html" => [ "doc/man3/SSL_set_bio.pod" ], + "doc/html/man3/SSL_set_blocking_mode.html" => [ + "doc/man3/SSL_set_blocking_mode.pod" + ], "doc/html/man3/SSL_set_connect_state.html" => [ "doc/man3/SSL_set_connect_state.pod" ], + "doc/html/man3/SSL_set_default_stream_mode.html" => [ + "doc/man3/SSL_set_default_stream_mode.pod" + ], "doc/html/man3/SSL_set_fd.html" => [ "doc/man3/SSL_set_fd.pod" ], + "doc/html/man3/SSL_set_incoming_stream_policy.html" => [ + "doc/man3/SSL_set_incoming_stream_policy.pod" + ], + "doc/html/man3/SSL_set_quic_tls_cbs.html" => [ + "doc/man3/SSL_set_quic_tls_cbs.pod" + ], "doc/html/man3/SSL_set_retry_verify.html" => [ "doc/man3/SSL_set_retry_verify.pod" ], "doc/html/man3/SSL_set_session.html" => [ "doc/man3/SSL_set_session.pod" ], + "doc/html/man3/SSL_set_session_secret_cb.html" => [ + "doc/man3/SSL_set_session_secret_cb.pod" + ], "doc/html/man3/SSL_set_shutdown.html" => [ "doc/man3/SSL_set_shutdown.pod" ], @@ -12777,6 +14878,12 @@ our %unified_info = ( "doc/html/man3/SSL_state_string.html" => [ "doc/man3/SSL_state_string.pod" ], + "doc/html/man3/SSL_stream_conclude.html" => [ + "doc/man3/SSL_stream_conclude.pod" + ], + "doc/html/man3/SSL_stream_reset.html" => [ + "doc/man3/SSL_stream_reset.pod" + ], "doc/html/man3/SSL_want.html" => [ "doc/man3/SSL_want.pod" ], @@ -12786,8 +14893,8 @@ our %unified_info = ( "doc/html/man3/TS_RESP_CTX_new.html" => [ "doc/man3/TS_RESP_CTX_new.pod" ], - "doc/html/man3/TS_VERIFY_CTX_set_certs.html" => [ - "doc/man3/TS_VERIFY_CTX_set_certs.pod" + "doc/html/man3/TS_VERIFY_CTX.html" => [ + "doc/man3/TS_VERIFY_CTX.pod" ], "doc/html/man3/UI_STRING.html" => [ "doc/man3/UI_STRING.pod" @@ -12807,6 +14914,21 @@ our %unified_info = ( "doc/html/man3/X509V3_set_ctx.html" => [ "doc/man3/X509V3_set_ctx.pod" ], + "doc/html/man3/X509_ACERT_add1_attr.html" => [ + "doc/man3/X509_ACERT_add1_attr.pod" + ], + "doc/html/man3/X509_ACERT_add_attr_nconf.html" => [ + "doc/man3/X509_ACERT_add_attr_nconf.pod" + ], + "doc/html/man3/X509_ACERT_get0_holder_baseCertId.html" => [ + "doc/man3/X509_ACERT_get0_holder_baseCertId.pod" + ], + "doc/html/man3/X509_ACERT_get_attr.html" => [ + "doc/man3/X509_ACERT_get_attr.pod" + ], + "doc/html/man3/X509_ACERT_print_ex.html" => [ + "doc/man3/X509_ACERT_print_ex.pod" + ], "doc/html/man3/X509_ALGOR_dup.html" => [ "doc/man3/X509_ALGOR_dup.pod" ], @@ -12855,6 +14977,9 @@ our %unified_info = ( "doc/html/man3/X509_SIG_get0.html" => [ "doc/man3/X509_SIG_get0.pod" ], + "doc/html/man3/X509_STORE_CTX_get_by_subject.html" => [ + "doc/man3/X509_STORE_CTX_get_by_subject.pod" + ], "doc/html/man3/X509_STORE_CTX_get_error.html" => [ "doc/man3/X509_STORE_CTX_get_error.pod" ], @@ -12921,6 +15046,9 @@ our %unified_info = ( "doc/html/man3/X509_get0_uids.html" => [ "doc/man3/X509_get0_uids.pod" ], + "doc/html/man3/X509_get_default_cert_file.html" => [ + "doc/man3/X509_get_default_cert_file.pod" + ], "doc/html/man3/X509_get_extension_flags.html" => [ "doc/man3/X509_get_extension_flags.pod" ], @@ -13044,9 +15172,15 @@ our %unified_info = ( "doc/html/man7/EVP_CIPHER-SM4.html" => [ "doc/man7/EVP_CIPHER-SM4.pod" ], + "doc/html/man7/EVP_KDF-ARGON2.html" => [ + "doc/man7/EVP_KDF-ARGON2.pod" + ], "doc/html/man7/EVP_KDF-HKDF.html" => [ "doc/man7/EVP_KDF-HKDF.pod" ], + "doc/html/man7/EVP_KDF-HMAC-DRBG.html" => [ + "doc/man7/EVP_KDF-HMAC-DRBG.pod" + ], "doc/html/man7/EVP_KDF-KB.html" => [ "doc/man7/EVP_KDF-KB.pod" ], @@ -13062,6 +15196,9 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-PKCS12KDF.html" => [ "doc/man7/EVP_KDF-PKCS12KDF.pod" ], + "doc/html/man7/EVP_KDF-PVKKDF.html" => [ + "doc/man7/EVP_KDF-PVKKDF.pod" + ], "doc/html/man7/EVP_KDF-SCRYPT.html" => [ "doc/man7/EVP_KDF-SCRYPT.pod" ], @@ -13086,9 +15223,18 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-X963.html" => [ "doc/man7/EVP_KDF-X963.pod" ], + "doc/html/man7/EVP_KEM-EC.html" => [ + "doc/man7/EVP_KEM-EC.pod" + ], + "doc/html/man7/EVP_KEM-ML-KEM.html" => [ + "doc/man7/EVP_KEM-ML-KEM.pod" + ], "doc/html/man7/EVP_KEM-RSA.html" => [ "doc/man7/EVP_KEM-RSA.pod" ], + "doc/html/man7/EVP_KEM-X25519.html" => [ + "doc/man7/EVP_KEM-X25519.pod" + ], "doc/html/man7/EVP_KEYEXCH-DH.html" => [ "doc/man7/EVP_KEYEXCH-DH.pod" ], @@ -13122,6 +15268,9 @@ our %unified_info = ( "doc/html/man7/EVP_MD-BLAKE2.html" => [ "doc/man7/EVP_MD-BLAKE2.pod" ], + "doc/html/man7/EVP_MD-KECCAK.html" => [ + "doc/man7/EVP_MD-KECCAK.pod" + ], "doc/html/man7/EVP_MD-MD2.html" => [ "doc/man7/EVP_MD-MD2.pod" ], @@ -13179,15 +15328,27 @@ our %unified_info = ( "doc/html/man7/EVP_PKEY-HMAC.html" => [ "doc/man7/EVP_PKEY-HMAC.pod" ], + "doc/html/man7/EVP_PKEY-ML-DSA.html" => [ + "doc/man7/EVP_PKEY-ML-DSA.pod" + ], + "doc/html/man7/EVP_PKEY-ML-KEM.html" => [ + "doc/man7/EVP_PKEY-ML-KEM.pod" + ], "doc/html/man7/EVP_PKEY-RSA.html" => [ "doc/man7/EVP_PKEY-RSA.pod" ], + "doc/html/man7/EVP_PKEY-SLH-DSA.html" => [ + "doc/man7/EVP_PKEY-SLH-DSA.pod" + ], "doc/html/man7/EVP_PKEY-SM2.html" => [ "doc/man7/EVP_PKEY-SM2.pod" ], "doc/html/man7/EVP_PKEY-X25519.html" => [ "doc/man7/EVP_PKEY-X25519.pod" ], + "doc/html/man7/EVP_RAND-CRNG-TEST.html" => [ + "doc/man7/EVP_RAND-CRNG-TEST.pod" + ], "doc/html/man7/EVP_RAND-CTR-DRBG.html" => [ "doc/man7/EVP_RAND-CTR-DRBG.pod" ], @@ -13197,6 +15358,9 @@ our %unified_info = ( "doc/html/man7/EVP_RAND-HMAC-DRBG.html" => [ "doc/man7/EVP_RAND-HMAC-DRBG.pod" ], + "doc/html/man7/EVP_RAND-JITTER.html" => [ + "doc/man7/EVP_RAND-JITTER.pod" + ], "doc/html/man7/EVP_RAND-SEED-SRC.html" => [ "doc/man7/EVP_RAND-SEED-SRC.pod" ], @@ -13218,9 +15382,15 @@ our %unified_info = ( "doc/html/man7/EVP_SIGNATURE-HMAC.html" => [ "doc/man7/EVP_SIGNATURE-HMAC.pod" ], + "doc/html/man7/EVP_SIGNATURE-ML-DSA.html" => [ + "doc/man7/EVP_SIGNATURE-ML-DSA.pod" + ], "doc/html/man7/EVP_SIGNATURE-RSA.html" => [ "doc/man7/EVP_SIGNATURE-RSA.pod" ], + "doc/html/man7/EVP_SIGNATURE-SLH-DSA.html" => [ + "doc/man7/EVP_SIGNATURE-SLH-DSA.pod" + ], "doc/html/man7/OSSL_PROVIDER-FIPS.html" => [ "doc/man7/OSSL_PROVIDER-FIPS.pod" ], @@ -13236,6 +15406,9 @@ our %unified_info = ( "doc/html/man7/OSSL_PROVIDER-null.html" => [ "doc/man7/OSSL_PROVIDER-null.pod" ], + "doc/html/man7/OSSL_STORE-winstore.html" => [ + "doc/man7/OSSL_STORE-winstore.pod" + ], "doc/html/man7/RAND.html" => [ "doc/man7/RAND.pod" ], @@ -13248,9 +15421,6 @@ our %unified_info = ( "doc/html/man7/bio.html" => [ "doc/man7/bio.pod" ], - "doc/html/man7/crypto.html" => [ - "doc/man7/crypto.pod" - ], "doc/html/man7/ct.html" => [ "doc/man7/ct.pod" ], @@ -13281,9 +15451,6 @@ our %unified_info = ( "doc/html/man7/life_cycle-rand.html" => [ "doc/man7/life_cycle-rand.pod" ], - "doc/html/man7/migration_guide.html" => [ - "doc/man7/migration_guide.pod" - ], "doc/html/man7/openssl-core.h.html" => [ "doc/man7/openssl-core.h.pod" ], @@ -13299,12 +15466,66 @@ our %unified_info = ( "doc/html/man7/openssl-glossary.html" => [ "doc/man7/openssl-glossary.pod" ], + "doc/html/man7/openssl-qlog.html" => [ + "doc/man7/openssl-qlog.pod" + ], + "doc/html/man7/openssl-quic-concurrency.html" => [ + "doc/man7/openssl-quic-concurrency.pod" + ], + "doc/html/man7/openssl-quic.html" => [ + "doc/man7/openssl-quic.pod" + ], "doc/html/man7/openssl-threads.html" => [ "doc/man7/openssl-threads.pod" ], "doc/html/man7/openssl_user_macros.html" => [ "doc/man7/openssl_user_macros.pod" ], + "doc/html/man7/ossl-guide-introduction.html" => [ + "doc/man7/ossl-guide-introduction.pod" + ], + "doc/html/man7/ossl-guide-libcrypto-introduction.html" => [ + "doc/man7/ossl-guide-libcrypto-introduction.pod" + ], + "doc/html/man7/ossl-guide-libraries-introduction.html" => [ + "doc/man7/ossl-guide-libraries-introduction.pod" + ], + "doc/html/man7/ossl-guide-libssl-introduction.html" => [ + "doc/man7/ossl-guide-libssl-introduction.pod" + ], + "doc/html/man7/ossl-guide-migration.html" => [ + "doc/man7/ossl-guide-migration.pod" + ], + "doc/html/man7/ossl-guide-quic-client-block.html" => [ + "doc/man7/ossl-guide-quic-client-block.pod" + ], + "doc/html/man7/ossl-guide-quic-client-non-block.html" => [ + "doc/man7/ossl-guide-quic-client-non-block.pod" + ], + "doc/html/man7/ossl-guide-quic-introduction.html" => [ + "doc/man7/ossl-guide-quic-introduction.pod" + ], + "doc/html/man7/ossl-guide-quic-multi-stream.html" => [ + "doc/man7/ossl-guide-quic-multi-stream.pod" + ], + "doc/html/man7/ossl-guide-quic-server-block.html" => [ + "doc/man7/ossl-guide-quic-server-block.pod" + ], + "doc/html/man7/ossl-guide-quic-server-non-block.html" => [ + "doc/man7/ossl-guide-quic-server-non-block.pod" + ], + "doc/html/man7/ossl-guide-tls-client-block.html" => [ + "doc/man7/ossl-guide-tls-client-block.pod" + ], + "doc/html/man7/ossl-guide-tls-client-non-block.html" => [ + "doc/man7/ossl-guide-tls-client-non-block.pod" + ], + "doc/html/man7/ossl-guide-tls-introduction.html" => [ + "doc/man7/ossl-guide-tls-introduction.pod" + ], + "doc/html/man7/ossl-guide-tls-server-block.html" => [ + "doc/man7/ossl-guide-tls-server-block.pod" + ], "doc/html/man7/ossl_store-file.html" => [ "doc/man7/ossl_store-file.pod" ], @@ -13359,6 +15580,9 @@ our %unified_info = ( "doc/html/man7/provider-signature.html" => [ "doc/man7/provider-signature.pod" ], + "doc/html/man7/provider-skeymgmt.html" => [ + "doc/man7/provider-skeymgmt.pod" + ], "doc/html/man7/provider-storemgmt.html" => [ "doc/man7/provider-storemgmt.pod" ], @@ -13368,9 +15592,6 @@ our %unified_info = ( "doc/html/man7/proxy-certificates.html" => [ "doc/man7/proxy-certificates.pod" ], - "doc/html/man7/ssl.html" => [ - "doc/man7/ssl.pod" - ], "doc/html/man7/x509.html" => [ "doc/man7/x509.pod" ], @@ -13518,6 +15739,9 @@ our %unified_info = ( "doc/man/man1/openssl-sess_id.1" => [ "doc/man1/openssl-sess_id.pod" ], + "doc/man/man1/openssl-skeyutl.1" => [ + "doc/man1/openssl-skeyutl.pod" + ], "doc/man/man1/openssl-smime.1" => [ "doc/man1/openssl-smime.pod" ], @@ -13659,6 +15883,9 @@ our %unified_info = ( "doc/man/man3/BIO_get_ex_new_index.3" => [ "doc/man3/BIO_get_ex_new_index.pod" ], + "doc/man/man3/BIO_get_rpoll_descriptor.3" => [ + "doc/man3/BIO_get_rpoll_descriptor.pod" + ], "doc/man/man3/BIO_meth_new.3" => [ "doc/man3/BIO_meth_new.pod" ], @@ -13695,6 +15922,9 @@ our %unified_info = ( "doc/man/man3/BIO_s_datagram.3" => [ "doc/man3/BIO_s_datagram.pod" ], + "doc/man/man3/BIO_s_dgram_pair.3" => [ + "doc/man3/BIO_s_dgram_pair.pod" + ], "doc/man/man3/BIO_s_fd.3" => [ "doc/man3/BIO_s_fd.pod" ], @@ -13710,6 +15940,9 @@ our %unified_info = ( "doc/man/man3/BIO_s_socket.3" => [ "doc/man3/BIO_s_socket.pod" ], + "doc/man/man3/BIO_sendmmsg.3" => [ + "doc/man3/BIO_sendmmsg.pod" + ], "doc/man/man3/BIO_set_callback.3" => [ "doc/man3/BIO_set_callback.pod" ], @@ -13782,6 +16015,9 @@ our %unified_info = ( "doc/man/man3/BUF_MEM_new.3" => [ "doc/man3/BUF_MEM_new.pod" ], + "doc/man/man3/CMAC_CTX.3" => [ + "doc/man3/CMAC_CTX.pod" + ], "doc/man/man3/CMS_EncryptedData_decrypt.3" => [ "doc/man3/CMS_EncryptedData_decrypt.pod" ], @@ -13848,6 +16084,9 @@ our %unified_info = ( "doc/man/man3/CMS_verify_receipt.3" => [ "doc/man3/CMS_verify_receipt.pod" ], + "doc/man/man3/COMP_CTX_new.3" => [ + "doc/man3/COMP_CTX_new.pod" + ], "doc/man/man3/CONF_modules_free.3" => [ "doc/man3/CONF_modules_free.pod" ], @@ -13947,6 +16186,12 @@ our %unified_info = ( "doc/man/man3/DTLS_set_timer_cb.3" => [ "doc/man3/DTLS_set_timer_cb.pod" ], + "doc/man/man3/DTLSv1_get_timeout.3" => [ + "doc/man3/DTLSv1_get_timeout.pod" + ], + "doc/man/man3/DTLSv1_handle_timeout.3" => [ + "doc/man3/DTLSv1_handle_timeout.pod" + ], "doc/man/man3/DTLSv1_listen.3" => [ "doc/man3/DTLSv1_listen.pod" ], @@ -14085,6 +16330,9 @@ our %unified_info = ( "doc/man/man3/EVP_PKEY_CTX_get0_pkey.3" => [ "doc/man3/EVP_PKEY_CTX_get0_pkey.pod" ], + "doc/man/man3/EVP_PKEY_CTX_get_algor.3" => [ + "doc/man3/EVP_PKEY_CTX_get_algor.pod" + ], "doc/man/man3/EVP_PKEY_CTX_new.3" => [ "doc/man3/EVP_PKEY_CTX_new.pod" ], @@ -14202,6 +16450,12 @@ our %unified_info = ( "doc/man/man3/EVP_SIGNATURE.3" => [ "doc/man3/EVP_SIGNATURE.pod" ], + "doc/man/man3/EVP_SKEY.3" => [ + "doc/man3/EVP_SKEY.pod" + ], + "doc/man/man3/EVP_SKEYMGMT.3" => [ + "doc/man3/EVP_SKEYMGMT.pod" + ], "doc/man/man3/EVP_SealInit.3" => [ "doc/man3/EVP_SealInit.pod" ], @@ -14289,6 +16543,9 @@ our %unified_info = ( "doc/man/man3/EVP_whirlpool.3" => [ "doc/man3/EVP_whirlpool.pod" ], + "doc/man/man3/GENERAL_NAME.3" => [ + "doc/man3/GENERAL_NAME.pod" + ], "doc/man/man3/HMAC.3" => [ "doc/man3/HMAC.pod" ], @@ -14361,9 +16618,15 @@ our %unified_info = ( "doc/man/man3/OPENSSL_load_builtin_modules.3" => [ "doc/man3/OPENSSL_load_builtin_modules.pod" ], + "doc/man/man3/OPENSSL_load_u16_le.3" => [ + "doc/man3/OPENSSL_load_u16_le.pod" + ], "doc/man/man3/OPENSSL_malloc.3" => [ "doc/man3/OPENSSL_malloc.pod" ], + "doc/man/man3/OPENSSL_riscvcap.3" => [ + "doc/man3/OPENSSL_riscvcap.pod" + ], "doc/man/man3/OPENSSL_s390xcap.3" => [ "doc/man3/OPENSSL_s390xcap.pod" ], @@ -14379,12 +16642,18 @@ our %unified_info = ( "doc/man/man3/OSSL_CALLBACK.3" => [ "doc/man3/OSSL_CALLBACK.pod" ], + "doc/man/man3/OSSL_CMP_ATAV_set0.3" => [ + "doc/man3/OSSL_CMP_ATAV_set0.pod" + ], "doc/man/man3/OSSL_CMP_CTX_new.3" => [ "doc/man3/OSSL_CMP_CTX_new.pod" ], "doc/man/man3/OSSL_CMP_HDR_get0_transactionID.3" => [ "doc/man3/OSSL_CMP_HDR_get0_transactionID.pod" ], + "doc/man/man3/OSSL_CMP_ITAV_new_caCerts.3" => [ + "doc/man3/OSSL_CMP_ITAV_new_caCerts.pod" + ], "doc/man/man3/OSSL_CMP_ITAV_set0.3" => [ "doc/man3/OSSL_CMP_ITAV_set0.pod" ], @@ -14454,9 +16723,18 @@ our %unified_info = ( "doc/man/man3/OSSL_ENCODER_to_bio.3" => [ "doc/man3/OSSL_ENCODER_to_bio.pod" ], + "doc/man/man3/OSSL_ERR_STATE_save.3" => [ + "doc/man3/OSSL_ERR_STATE_save.pod" + ], "doc/man/man3/OSSL_ESS_check_signing_certs.3" => [ "doc/man3/OSSL_ESS_check_signing_certs.pod" ], + "doc/man/man3/OSSL_GENERAL_NAMES_print.3" => [ + "doc/man3/OSSL_GENERAL_NAMES_print.pod" + ], + "doc/man/man3/OSSL_HPKE_CTX_new.3" => [ + "doc/man3/OSSL_HPKE_CTX_new.pod" + ], "doc/man/man3/OSSL_HTTP_REQ_CTX.3" => [ "doc/man3/OSSL_HTTP_REQ_CTX.pod" ], @@ -14466,12 +16744,24 @@ our %unified_info = ( "doc/man/man3/OSSL_HTTP_transfer.3" => [ "doc/man3/OSSL_HTTP_transfer.pod" ], + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX.3" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX.pod" + ], + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX_print.3" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX_print.pod" + ], + "doc/man/man3/OSSL_INDICATOR_set_callback.3" => [ + "doc/man3/OSSL_INDICATOR_set_callback.pod" + ], "doc/man/man3/OSSL_ITEM.3" => [ "doc/man3/OSSL_ITEM.pod" ], "doc/man/man3/OSSL_LIB_CTX.3" => [ "doc/man3/OSSL_LIB_CTX.pod" ], + "doc/man/man3/OSSL_LIB_CTX_set_conf_diagnostics.3" => [ + "doc/man3/OSSL_LIB_CTX_set_conf_diagnostics.pod" + ], "doc/man/man3/OSSL_PARAM.3" => [ "doc/man3/OSSL_PARAM.pod" ], @@ -14487,9 +16777,15 @@ our %unified_info = ( "doc/man/man3/OSSL_PARAM_int.3" => [ "doc/man3/OSSL_PARAM_int.pod" ], + "doc/man/man3/OSSL_PARAM_print_to_bio.3" => [ + "doc/man3/OSSL_PARAM_print_to_bio.pod" + ], "doc/man/man3/OSSL_PROVIDER.3" => [ "doc/man3/OSSL_PROVIDER.pod" ], + "doc/man/man3/OSSL_QUIC_client_method.3" => [ + "doc/man3/OSSL_QUIC_client_method.pod" + ], "doc/man/man3/OSSL_SELF_TEST_new.3" => [ "doc/man3/OSSL_SELF_TEST_new.pod" ], @@ -14514,6 +16810,9 @@ our %unified_info = ( "doc/man/man3/OSSL_STORE_open.3" => [ "doc/man3/OSSL_STORE_open.pod" ], + "doc/man/man3/OSSL_sleep.3" => [ + "doc/man3/OSSL_sleep.pod" + ], "doc/man/man3/OSSL_trace_enabled.3" => [ "doc/man3/OSSL_trace_enabled.pod" ], @@ -14529,6 +16828,9 @@ our %unified_info = ( "doc/man/man3/OpenSSL_version.3" => [ "doc/man3/OpenSSL_version.pod" ], + "doc/man/man3/PBMAC1_get1_pbkdf2_param.3" => [ + "doc/man3/PBMAC1_get1_pbkdf2_param.pod" + ], "doc/man/man3/PEM_X509_INFO_read_bio_ex.3" => [ "doc/man3/PEM_X509_INFO_read_bio_ex.pod" ], @@ -14565,6 +16867,9 @@ our %unified_info = ( "doc/man/man3/PKCS12_SAFEBAG_get1_cert.3" => [ "doc/man3/PKCS12_SAFEBAG_get1_cert.pod" ], + "doc/man/man3/PKCS12_SAFEBAG_set0_attrs.3" => [ + "doc/man3/PKCS12_SAFEBAG_set0_attrs.pod" + ], "doc/man/man3/PKCS12_add1_attr_by_NID.3" => [ "doc/man3/PKCS12_add1_attr_by_NID.pod" ], @@ -14838,6 +17143,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set0_CA_list.3" => [ "doc/man3/SSL_CTX_set0_CA_list.pod" ], + "doc/man/man3/SSL_CTX_set1_cert_comp_preference.3" => [ + "doc/man3/SSL_CTX_set1_cert_comp_preference.pod" + ], "doc/man/man3/SSL_CTX_set1_curves.3" => [ "doc/man3/SSL_CTX_set1_curves.pod" ], @@ -14877,6 +17185,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_default_passwd_cb.3" => [ "doc/man3/SSL_CTX_set_default_passwd_cb.pod" ], + "doc/man/man3/SSL_CTX_set_domain_flags.3" => [ + "doc/man3/SSL_CTX_set_domain_flags.pod" + ], "doc/man/man3/SSL_CTX_set_generate_session_id.3" => [ "doc/man3/SSL_CTX_set_generate_session_id.pod" ], @@ -14898,6 +17209,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_msg_callback.3" => [ "doc/man3/SSL_CTX_set_msg_callback.pod" ], + "doc/man/man3/SSL_CTX_set_new_pending_conn_cb.3" => [ + "doc/man3/SSL_CTX_set_new_pending_conn_cb.pod" + ], "doc/man/man3/SSL_CTX_set_num_tickets.3" => [ "doc/man3/SSL_CTX_set_num_tickets.pod" ], @@ -15012,6 +17326,9 @@ our %unified_info = ( "doc/man/man3/SSL_accept.3" => [ "doc/man3/SSL_accept.pod" ], + "doc/man/man3/SSL_accept_stream.3" => [ + "doc/man3/SSL_accept_stream.pod" + ], "doc/man/man3/SSL_alert_type_string.3" => [ "doc/man3/SSL_alert_type_string.pod" ], @@ -15039,9 +17356,21 @@ our %unified_info = ( "doc/man/man3/SSL_free.3" => [ "doc/man3/SSL_free.pod" ], + "doc/man/man3/SSL_get0_connection.3" => [ + "doc/man3/SSL_get0_connection.pod" + ], + "doc/man/man3/SSL_get0_group_name.3" => [ + "doc/man3/SSL_get0_group_name.pod" + ], + "doc/man/man3/SSL_get0_peer_rpk.3" => [ + "doc/man3/SSL_get0_peer_rpk.pod" + ], "doc/man/man3/SSL_get0_peer_scts.3" => [ "doc/man3/SSL_get0_peer_scts.pod" ], + "doc/man/man3/SSL_get1_builtin_sigalgs.3" => [ + "doc/man3/SSL_get1_builtin_sigalgs.pod" + ], "doc/man/man3/SSL_get_SSL_CTX.3" => [ "doc/man3/SSL_get_SSL_CTX.pod" ], @@ -15057,6 +17386,9 @@ our %unified_info = ( "doc/man/man3/SSL_get_client_random.3" => [ "doc/man3/SSL_get_client_random.pod" ], + "doc/man/man3/SSL_get_conn_close_info.3" => [ + "doc/man3/SSL_get_conn_close_info.pod" + ], "doc/man/man3/SSL_get_current_cipher.3" => [ "doc/man3/SSL_get_current_cipher.pod" ], @@ -15066,12 +17398,18 @@ our %unified_info = ( "doc/man/man3/SSL_get_error.3" => [ "doc/man3/SSL_get_error.pod" ], + "doc/man/man3/SSL_get_event_timeout.3" => [ + "doc/man3/SSL_get_event_timeout.pod" + ], "doc/man/man3/SSL_get_extms_support.3" => [ "doc/man3/SSL_get_extms_support.pod" ], "doc/man/man3/SSL_get_fd.3" => [ "doc/man3/SSL_get_fd.pod" ], + "doc/man/man3/SSL_get_handshake_rtt.3" => [ + "doc/man3/SSL_get_handshake_rtt.pod" + ], "doc/man/man3/SSL_get_peer_cert_chain.3" => [ "doc/man3/SSL_get_peer_cert_chain.pod" ], @@ -15090,12 +17428,24 @@ our %unified_info = ( "doc/man/man3/SSL_get_rbio.3" => [ "doc/man3/SSL_get_rbio.pod" ], + "doc/man/man3/SSL_get_rpoll_descriptor.3" => [ + "doc/man3/SSL_get_rpoll_descriptor.pod" + ], "doc/man/man3/SSL_get_session.3" => [ "doc/man3/SSL_get_session.pod" ], "doc/man/man3/SSL_get_shared_sigalgs.3" => [ "doc/man3/SSL_get_shared_sigalgs.pod" ], + "doc/man/man3/SSL_get_stream_id.3" => [ + "doc/man3/SSL_get_stream_id.pod" + ], + "doc/man/man3/SSL_get_stream_read_state.3" => [ + "doc/man3/SSL_get_stream_read_state.pod" + ], + "doc/man/man3/SSL_get_value_uint.3" => [ + "doc/man3/SSL_get_value_uint.pod" + ], "doc/man/man3/SSL_get_verify_result.3" => [ "doc/man3/SSL_get_verify_result.pod" ], @@ -15105,9 +17455,15 @@ our %unified_info = ( "doc/man/man3/SSL_group_to_name.3" => [ "doc/man3/SSL_group_to_name.pod" ], + "doc/man/man3/SSL_handle_events.3" => [ + "doc/man3/SSL_handle_events.pod" + ], "doc/man/man3/SSL_in_init.3" => [ "doc/man3/SSL_in_init.pod" ], + "doc/man/man3/SSL_inject_net_dgram.3" => [ + "doc/man3/SSL_inject_net_dgram.pod" + ], "doc/man/man3/SSL_key_update.3" => [ "doc/man3/SSL_key_update.pod" ], @@ -15120,9 +17476,21 @@ our %unified_info = ( "doc/man/man3/SSL_new.3" => [ "doc/man3/SSL_new.pod" ], + "doc/man/man3/SSL_new_domain.3" => [ + "doc/man3/SSL_new_domain.pod" + ], + "doc/man/man3/SSL_new_listener.3" => [ + "doc/man3/SSL_new_listener.pod" + ], + "doc/man/man3/SSL_new_stream.3" => [ + "doc/man3/SSL_new_stream.pod" + ], "doc/man/man3/SSL_pending.3" => [ "doc/man3/SSL_pending.pod" ], + "doc/man/man3/SSL_poll.3" => [ + "doc/man3/SSL_poll.pod" + ], "doc/man/man3/SSL_read.3" => [ "doc/man3/SSL_read.pod" ], @@ -15138,24 +17506,45 @@ our %unified_info = ( "doc/man/man3/SSL_set1_host.3" => [ "doc/man3/SSL_set1_host.pod" ], + "doc/man/man3/SSL_set1_initial_peer_addr.3" => [ + "doc/man3/SSL_set1_initial_peer_addr.pod" + ], + "doc/man/man3/SSL_set1_server_cert_type.3" => [ + "doc/man3/SSL_set1_server_cert_type.pod" + ], "doc/man/man3/SSL_set_async_callback.3" => [ "doc/man3/SSL_set_async_callback.pod" ], "doc/man/man3/SSL_set_bio.3" => [ "doc/man3/SSL_set_bio.pod" ], + "doc/man/man3/SSL_set_blocking_mode.3" => [ + "doc/man3/SSL_set_blocking_mode.pod" + ], "doc/man/man3/SSL_set_connect_state.3" => [ "doc/man3/SSL_set_connect_state.pod" ], + "doc/man/man3/SSL_set_default_stream_mode.3" => [ + "doc/man3/SSL_set_default_stream_mode.pod" + ], "doc/man/man3/SSL_set_fd.3" => [ "doc/man3/SSL_set_fd.pod" ], + "doc/man/man3/SSL_set_incoming_stream_policy.3" => [ + "doc/man3/SSL_set_incoming_stream_policy.pod" + ], + "doc/man/man3/SSL_set_quic_tls_cbs.3" => [ + "doc/man3/SSL_set_quic_tls_cbs.pod" + ], "doc/man/man3/SSL_set_retry_verify.3" => [ "doc/man3/SSL_set_retry_verify.pod" ], "doc/man/man3/SSL_set_session.3" => [ "doc/man3/SSL_set_session.pod" ], + "doc/man/man3/SSL_set_session_secret_cb.3" => [ + "doc/man3/SSL_set_session_secret_cb.pod" + ], "doc/man/man3/SSL_set_shutdown.3" => [ "doc/man3/SSL_set_shutdown.pod" ], @@ -15168,6 +17557,12 @@ our %unified_info = ( "doc/man/man3/SSL_state_string.3" => [ "doc/man3/SSL_state_string.pod" ], + "doc/man/man3/SSL_stream_conclude.3" => [ + "doc/man3/SSL_stream_conclude.pod" + ], + "doc/man/man3/SSL_stream_reset.3" => [ + "doc/man3/SSL_stream_reset.pod" + ], "doc/man/man3/SSL_want.3" => [ "doc/man3/SSL_want.pod" ], @@ -15177,8 +17572,8 @@ our %unified_info = ( "doc/man/man3/TS_RESP_CTX_new.3" => [ "doc/man3/TS_RESP_CTX_new.pod" ], - "doc/man/man3/TS_VERIFY_CTX_set_certs.3" => [ - "doc/man3/TS_VERIFY_CTX_set_certs.pod" + "doc/man/man3/TS_VERIFY_CTX.3" => [ + "doc/man3/TS_VERIFY_CTX.pod" ], "doc/man/man3/UI_STRING.3" => [ "doc/man3/UI_STRING.pod" @@ -15198,6 +17593,21 @@ our %unified_info = ( "doc/man/man3/X509V3_set_ctx.3" => [ "doc/man3/X509V3_set_ctx.pod" ], + "doc/man/man3/X509_ACERT_add1_attr.3" => [ + "doc/man3/X509_ACERT_add1_attr.pod" + ], + "doc/man/man3/X509_ACERT_add_attr_nconf.3" => [ + "doc/man3/X509_ACERT_add_attr_nconf.pod" + ], + "doc/man/man3/X509_ACERT_get0_holder_baseCertId.3" => [ + "doc/man3/X509_ACERT_get0_holder_baseCertId.pod" + ], + "doc/man/man3/X509_ACERT_get_attr.3" => [ + "doc/man3/X509_ACERT_get_attr.pod" + ], + "doc/man/man3/X509_ACERT_print_ex.3" => [ + "doc/man3/X509_ACERT_print_ex.pod" + ], "doc/man/man3/X509_ALGOR_dup.3" => [ "doc/man3/X509_ALGOR_dup.pod" ], @@ -15246,6 +17656,9 @@ our %unified_info = ( "doc/man/man3/X509_SIG_get0.3" => [ "doc/man3/X509_SIG_get0.pod" ], + "doc/man/man3/X509_STORE_CTX_get_by_subject.3" => [ + "doc/man3/X509_STORE_CTX_get_by_subject.pod" + ], "doc/man/man3/X509_STORE_CTX_get_error.3" => [ "doc/man3/X509_STORE_CTX_get_error.pod" ], @@ -15312,6 +17725,9 @@ our %unified_info = ( "doc/man/man3/X509_get0_uids.3" => [ "doc/man3/X509_get0_uids.pod" ], + "doc/man/man3/X509_get_default_cert_file.3" => [ + "doc/man3/X509_get_default_cert_file.pod" + ], "doc/man/man3/X509_get_extension_flags.3" => [ "doc/man3/X509_get_extension_flags.pod" ], @@ -15435,9 +17851,15 @@ our %unified_info = ( "doc/man/man7/EVP_CIPHER-SM4.7" => [ "doc/man7/EVP_CIPHER-SM4.pod" ], + "doc/man/man7/EVP_KDF-ARGON2.7" => [ + "doc/man7/EVP_KDF-ARGON2.pod" + ], "doc/man/man7/EVP_KDF-HKDF.7" => [ "doc/man7/EVP_KDF-HKDF.pod" ], + "doc/man/man7/EVP_KDF-HMAC-DRBG.7" => [ + "doc/man7/EVP_KDF-HMAC-DRBG.pod" + ], "doc/man/man7/EVP_KDF-KB.7" => [ "doc/man7/EVP_KDF-KB.pod" ], @@ -15453,6 +17875,9 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-PKCS12KDF.7" => [ "doc/man7/EVP_KDF-PKCS12KDF.pod" ], + "doc/man/man7/EVP_KDF-PVKKDF.7" => [ + "doc/man7/EVP_KDF-PVKKDF.pod" + ], "doc/man/man7/EVP_KDF-SCRYPT.7" => [ "doc/man7/EVP_KDF-SCRYPT.pod" ], @@ -15477,9 +17902,18 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-X963.7" => [ "doc/man7/EVP_KDF-X963.pod" ], + "doc/man/man7/EVP_KEM-EC.7" => [ + "doc/man7/EVP_KEM-EC.pod" + ], + "doc/man/man7/EVP_KEM-ML-KEM.7" => [ + "doc/man7/EVP_KEM-ML-KEM.pod" + ], "doc/man/man7/EVP_KEM-RSA.7" => [ "doc/man7/EVP_KEM-RSA.pod" ], + "doc/man/man7/EVP_KEM-X25519.7" => [ + "doc/man7/EVP_KEM-X25519.pod" + ], "doc/man/man7/EVP_KEYEXCH-DH.7" => [ "doc/man7/EVP_KEYEXCH-DH.pod" ], @@ -15513,6 +17947,9 @@ our %unified_info = ( "doc/man/man7/EVP_MD-BLAKE2.7" => [ "doc/man7/EVP_MD-BLAKE2.pod" ], + "doc/man/man7/EVP_MD-KECCAK.7" => [ + "doc/man7/EVP_MD-KECCAK.pod" + ], "doc/man/man7/EVP_MD-MD2.7" => [ "doc/man7/EVP_MD-MD2.pod" ], @@ -15570,15 +18007,27 @@ our %unified_info = ( "doc/man/man7/EVP_PKEY-HMAC.7" => [ "doc/man7/EVP_PKEY-HMAC.pod" ], + "doc/man/man7/EVP_PKEY-ML-DSA.7" => [ + "doc/man7/EVP_PKEY-ML-DSA.pod" + ], + "doc/man/man7/EVP_PKEY-ML-KEM.7" => [ + "doc/man7/EVP_PKEY-ML-KEM.pod" + ], "doc/man/man7/EVP_PKEY-RSA.7" => [ "doc/man7/EVP_PKEY-RSA.pod" ], + "doc/man/man7/EVP_PKEY-SLH-DSA.7" => [ + "doc/man7/EVP_PKEY-SLH-DSA.pod" + ], "doc/man/man7/EVP_PKEY-SM2.7" => [ "doc/man7/EVP_PKEY-SM2.pod" ], "doc/man/man7/EVP_PKEY-X25519.7" => [ "doc/man7/EVP_PKEY-X25519.pod" ], + "doc/man/man7/EVP_RAND-CRNG-TEST.7" => [ + "doc/man7/EVP_RAND-CRNG-TEST.pod" + ], "doc/man/man7/EVP_RAND-CTR-DRBG.7" => [ "doc/man7/EVP_RAND-CTR-DRBG.pod" ], @@ -15588,6 +18037,9 @@ our %unified_info = ( "doc/man/man7/EVP_RAND-HMAC-DRBG.7" => [ "doc/man7/EVP_RAND-HMAC-DRBG.pod" ], + "doc/man/man7/EVP_RAND-JITTER.7" => [ + "doc/man7/EVP_RAND-JITTER.pod" + ], "doc/man/man7/EVP_RAND-SEED-SRC.7" => [ "doc/man7/EVP_RAND-SEED-SRC.pod" ], @@ -15609,9 +18061,15 @@ our %unified_info = ( "doc/man/man7/EVP_SIGNATURE-HMAC.7" => [ "doc/man7/EVP_SIGNATURE-HMAC.pod" ], + "doc/man/man7/EVP_SIGNATURE-ML-DSA.7" => [ + "doc/man7/EVP_SIGNATURE-ML-DSA.pod" + ], "doc/man/man7/EVP_SIGNATURE-RSA.7" => [ "doc/man7/EVP_SIGNATURE-RSA.pod" ], + "doc/man/man7/EVP_SIGNATURE-SLH-DSA.7" => [ + "doc/man7/EVP_SIGNATURE-SLH-DSA.pod" + ], "doc/man/man7/OSSL_PROVIDER-FIPS.7" => [ "doc/man7/OSSL_PROVIDER-FIPS.pod" ], @@ -15627,6 +18085,9 @@ our %unified_info = ( "doc/man/man7/OSSL_PROVIDER-null.7" => [ "doc/man7/OSSL_PROVIDER-null.pod" ], + "doc/man/man7/OSSL_STORE-winstore.7" => [ + "doc/man7/OSSL_STORE-winstore.pod" + ], "doc/man/man7/RAND.7" => [ "doc/man7/RAND.pod" ], @@ -15639,9 +18100,6 @@ our %unified_info = ( "doc/man/man7/bio.7" => [ "doc/man7/bio.pod" ], - "doc/man/man7/crypto.7" => [ - "doc/man7/crypto.pod" - ], "doc/man/man7/ct.7" => [ "doc/man7/ct.pod" ], @@ -15672,9 +18130,6 @@ our %unified_info = ( "doc/man/man7/life_cycle-rand.7" => [ "doc/man7/life_cycle-rand.pod" ], - "doc/man/man7/migration_guide.7" => [ - "doc/man7/migration_guide.pod" - ], "doc/man/man7/openssl-core.h.7" => [ "doc/man7/openssl-core.h.pod" ], @@ -15690,12 +18145,66 @@ our %unified_info = ( "doc/man/man7/openssl-glossary.7" => [ "doc/man7/openssl-glossary.pod" ], + "doc/man/man7/openssl-qlog.7" => [ + "doc/man7/openssl-qlog.pod" + ], + "doc/man/man7/openssl-quic-concurrency.7" => [ + "doc/man7/openssl-quic-concurrency.pod" + ], + "doc/man/man7/openssl-quic.7" => [ + "doc/man7/openssl-quic.pod" + ], "doc/man/man7/openssl-threads.7" => [ "doc/man7/openssl-threads.pod" ], "doc/man/man7/openssl_user_macros.7" => [ "doc/man7/openssl_user_macros.pod" ], + "doc/man/man7/ossl-guide-introduction.7" => [ + "doc/man7/ossl-guide-introduction.pod" + ], + "doc/man/man7/ossl-guide-libcrypto-introduction.7" => [ + "doc/man7/ossl-guide-libcrypto-introduction.pod" + ], + "doc/man/man7/ossl-guide-libraries-introduction.7" => [ + "doc/man7/ossl-guide-libraries-introduction.pod" + ], + "doc/man/man7/ossl-guide-libssl-introduction.7" => [ + "doc/man7/ossl-guide-libssl-introduction.pod" + ], + "doc/man/man7/ossl-guide-migration.7" => [ + "doc/man7/ossl-guide-migration.pod" + ], + "doc/man/man7/ossl-guide-quic-client-block.7" => [ + "doc/man7/ossl-guide-quic-client-block.pod" + ], + "doc/man/man7/ossl-guide-quic-client-non-block.7" => [ + "doc/man7/ossl-guide-quic-client-non-block.pod" + ], + "doc/man/man7/ossl-guide-quic-introduction.7" => [ + "doc/man7/ossl-guide-quic-introduction.pod" + ], + "doc/man/man7/ossl-guide-quic-multi-stream.7" => [ + "doc/man7/ossl-guide-quic-multi-stream.pod" + ], + "doc/man/man7/ossl-guide-quic-server-block.7" => [ + "doc/man7/ossl-guide-quic-server-block.pod" + ], + "doc/man/man7/ossl-guide-quic-server-non-block.7" => [ + "doc/man7/ossl-guide-quic-server-non-block.pod" + ], + "doc/man/man7/ossl-guide-tls-client-block.7" => [ + "doc/man7/ossl-guide-tls-client-block.pod" + ], + "doc/man/man7/ossl-guide-tls-client-non-block.7" => [ + "doc/man7/ossl-guide-tls-client-non-block.pod" + ], + "doc/man/man7/ossl-guide-tls-introduction.7" => [ + "doc/man7/ossl-guide-tls-introduction.pod" + ], + "doc/man/man7/ossl-guide-tls-server-block.7" => [ + "doc/man7/ossl-guide-tls-server-block.pod" + ], "doc/man/man7/ossl_store-file.7" => [ "doc/man7/ossl_store-file.pod" ], @@ -15750,6 +18259,9 @@ our %unified_info = ( "doc/man/man7/provider-signature.7" => [ "doc/man7/provider-signature.pod" ], + "doc/man/man7/provider-skeymgmt.7" => [ + "doc/man7/provider-skeymgmt.pod" + ], "doc/man/man7/provider-storemgmt.7" => [ "doc/man7/provider-storemgmt.pod" ], @@ -15759,9 +18271,6 @@ our %unified_info = ( "doc/man/man7/proxy-certificates.7" => [ "doc/man7/proxy-certificates.pod" ], - "doc/man/man7/ssl.7" => [ - "doc/man7/ssl.pod" - ], "doc/man/man7/x509.7" => [ "doc/man7/x509.pod" ], @@ -15897,6 +18406,9 @@ our %unified_info = ( "doc/man1/openssl-sess_id.pod" => [ "doc/man1/openssl-sess_id.pod.in" ], + "doc/man1/openssl-skeyutl.pod" => [ + "doc/man1/openssl-skeyutl.pod.in" + ], "doc/man1/openssl-smime.pod" => [ "doc/man1/openssl-smime.pod.in" ], @@ -15933,12 +18445,30 @@ our %unified_info = ( "engines/e_padlock-x86_64.s" => [ "engines/asm/e_padlock-x86_64.pl" ], + "exporters/OpenSSLConfig.cmake" => [ + "exporters/cmake/OpenSSLConfig.cmake.in" + ], + "exporters/OpenSSLConfigVersion.cmake" => [ + "exporters/cmake/OpenSSLConfigVersion.cmake.in" + ], + "exporters/libcrypto.pc" => [ + "exporters/pkg-config/libcrypto.pc.in" + ], + "exporters/libssl.pc" => [ + "exporters/pkg-config/libssl.pc.in" + ], + "exporters/openssl.pc" => [ + "exporters/pkg-config/openssl.pc.in" + ], "include/crypto/bn_conf.h" => [ "include/crypto/bn_conf.h.in" ], "include/crypto/dso_conf.h" => [ "include/crypto/dso_conf.h.in" ], + "include/internal/param_names.h" => [ + "include/internal/param_names.h.in" + ], "include/openssl/asn1.h" => [ "include/openssl/asn1.h.in" ], @@ -15954,12 +18484,18 @@ our %unified_info = ( "include/openssl/cms.h" => [ "include/openssl/cms.h.in" ], + "include/openssl/comp.h" => [ + "include/openssl/comp.h.in" + ], "include/openssl/conf.h" => [ "include/openssl/conf.h.in" ], "include/openssl/configuration.h" => [ "include/openssl/configuration.h.in" ], + "include/openssl/core_names.h" => [ + "include/openssl/core_names.h.in" + ], "include/openssl/crmf.h" => [ "include/openssl/crmf.h.in" ], @@ -16008,12 +18544,39 @@ our %unified_info = ( "include/openssl/x509.h" => [ "include/openssl/x509.h.in" ], + "include/openssl/x509_acert.h" => [ + "include/openssl/x509_acert.h.in" + ], "include/openssl/x509_vfy.h" => [ "include/openssl/x509_vfy.h.in" ], "include/openssl/x509v3.h" => [ "include/openssl/x509v3.h.in" ], + "installdata.pm" => [ + "util/mkinstallvars.pl", + "\"PREFIX=\$(INSTALLTOP)\"", + "BINDIR=bin", + "\"LIBDIR=\$(LIBDIR)\"", + "\"libdir=\$(libdir)\"", + "INCLUDEDIR=include", + "APPLINKDIR=include/openssl", + "\"ENGINESDIR=\$(ENGINESDIR)\"", + "\"MODULESDIR=\$(MODULESDIR)\"", + "\"PKGCONFIGDIR=\$(PKGCONFIGDIR)\"", + "\"CMAKECONFIGDIR=\$(CMAKECONFIGDIR)\"", + "\"LDLIBS=\$(LIB_EX_LIBS)\"", + "\"VERSION=\$(VERSION)\"" + ], + "libcrypto.pc" => [ + "exporters/pkg-config/libcrypto.pc.in" + ], + "libssl.pc" => [ + "exporters/pkg-config/libssl.pc.in" + ], + "openssl.pc" => [ + "exporters/pkg-config/openssl.pc.in" + ], "providers/common/der/der_digests_gen.c" => [ "providers/common/der/der_digests_gen.c.in" ], @@ -16026,9 +18589,15 @@ our %unified_info = ( "providers/common/der/der_ecx_gen.c" => [ "providers/common/der/der_ecx_gen.c.in" ], + "providers/common/der/der_ml_dsa_gen.c" => [ + "providers/common/der/der_ml_dsa_gen.c.in" + ], "providers/common/der/der_rsa_gen.c" => [ "providers/common/der/der_rsa_gen.c.in" ], + "providers/common/der/der_slh_dsa_gen.c" => [ + "providers/common/der/der_slh_dsa_gen.c.in" + ], "providers/common/der/der_sm2_gen.c" => [ "providers/common/der/der_sm2_gen.c.in" ], @@ -16047,9 +18616,15 @@ our %unified_info = ( "providers/common/include/prov/der_ecx.h" => [ "providers/common/include/prov/der_ecx.h.in" ], + "providers/common/include/prov/der_ml_dsa.h" => [ + "providers/common/include/prov/der_ml_dsa.h.in" + ], "providers/common/include/prov/der_rsa.h" => [ "providers/common/include/prov/der_rsa.h.in" ], + "providers/common/include/prov/der_slh_dsa.h" => [ + "providers/common/include/prov/der_slh_dsa.h.in" + ], "providers/common/include/prov/der_sm2.h" => [ "providers/common/include/prov/der_sm2.h.in" ], @@ -16085,6 +18660,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "buffer" ], + "test/buildtest_byteorder.c" => [ + "test/generate_buildtest.pl", + "byteorder" + ], "test/buildtest_camellia.c" => [ "test/generate_buildtest.pl", "camellia" @@ -16117,10 +18696,6 @@ our %unified_info = ( "test/generate_buildtest.pl", "core_dispatch" ], - "test/buildtest_core_names.c" => [ - "test/generate_buildtest.pl", - "core_names" - ], "test/buildtest_core_object.c" => [ "test/generate_buildtest.pl", "core_object" @@ -16153,6 +18728,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "e_os2" ], + "test/buildtest_e_ostime.c" => [ + "test/generate_buildtest.pl", + "e_ostime" + ], "test/buildtest_ebcdic.c" => [ "test/generate_buildtest.pl", "ebcdic" @@ -16189,6 +18768,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "hmac" ], + "test/buildtest_hpke.c" => [ + "test/generate_buildtest.pl", + "hpke" + ], "test/buildtest_http.c" => [ "test/generate_buildtest.pl", "http" @@ -16197,6 +18780,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "idea" ], + "test/buildtest_indicator.c" => [ + "test/generate_buildtest.pl", + "indicator" + ], "test/buildtest_kdf.c" => [ "test/generate_buildtest.pl", "kdf" @@ -16217,6 +18804,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "mdc2" ], + "test/buildtest_ml_kem.c" => [ + "test/generate_buildtest.pl", + "ml_kem" + ], "test/buildtest_modes.c" => [ "test/generate_buildtest.pl", "modes" @@ -16257,6 +18848,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "provider" ], + "test/buildtest_quic.c" => [ + "test/generate_buildtest.pl", + "quic" + ], "test/buildtest_rand.c" => [ "test/generate_buildtest.pl", "rand" @@ -16313,6 +18908,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "symhacks" ], + "test/buildtest_thread.c" => [ + "test/generate_buildtest.pl", + "thread" + ], "test/buildtest_tls1.c" => [ "test/generate_buildtest.pl", "tls1" @@ -16387,6 +18986,7 @@ our %unified_info = ( "doc/html/man1/openssl-s_server.html", "doc/html/man1/openssl-s_time.html", "doc/html/man1/openssl-sess_id.html", + "doc/html/man1/openssl-skeyutl.html", "doc/html/man1/openssl-smime.html", "doc/html/man1/openssl-speed.html", "doc/html/man1/openssl-spkac.html", @@ -16436,6 +19036,7 @@ our %unified_info = ( "doc/html/man3/BIO_find_type.html", "doc/html/man3/BIO_get_data.html", "doc/html/man3/BIO_get_ex_new_index.html", + "doc/html/man3/BIO_get_rpoll_descriptor.html", "doc/html/man3/BIO_meth_new.html", "doc/html/man3/BIO_new.html", "doc/html/man3/BIO_new_CMS.html", @@ -16448,11 +19049,13 @@ our %unified_info = ( "doc/html/man3/BIO_s_connect.html", "doc/html/man3/BIO_s_core.html", "doc/html/man3/BIO_s_datagram.html", + "doc/html/man3/BIO_s_dgram_pair.html", "doc/html/man3/BIO_s_fd.html", "doc/html/man3/BIO_s_file.html", "doc/html/man3/BIO_s_mem.html", "doc/html/man3/BIO_s_null.html", "doc/html/man3/BIO_s_socket.html", + "doc/html/man3/BIO_sendmmsg.html", "doc/html/man3/BIO_set_callback.html", "doc/html/man3/BIO_should_retry.html", "doc/html/man3/BIO_socket_wait.html", @@ -16477,6 +19080,7 @@ our %unified_info = ( "doc/html/man3/BN_swap.html", "doc/html/man3/BN_zero.html", "doc/html/man3/BUF_MEM_new.html", + "doc/html/man3/CMAC_CTX.html", "doc/html/man3/CMS_EncryptedData_decrypt.html", "doc/html/man3/CMS_EncryptedData_encrypt.html", "doc/html/man3/CMS_EnvelopedData_create.html", @@ -16499,6 +19103,7 @@ our %unified_info = ( "doc/html/man3/CMS_uncompress.html", "doc/html/man3/CMS_verify.html", "doc/html/man3/CMS_verify_receipt.html", + "doc/html/man3/COMP_CTX_new.html", "doc/html/man3/CONF_modules_free.html", "doc/html/man3/CONF_modules_load_file.html", "doc/html/man3/CRYPTO_THREAD_run_once.html", @@ -16532,6 +19137,8 @@ our %unified_info = ( "doc/html/man3/DSA_size.html", "doc/html/man3/DTLS_get_data_mtu.html", "doc/html/man3/DTLS_set_timer_cb.html", + "doc/html/man3/DTLSv1_get_timeout.html", + "doc/html/man3/DTLSv1_handle_timeout.html", "doc/html/man3/DTLSv1_listen.html", "doc/html/man3/ECDSA_SIG_new.html", "doc/html/man3/ECDSA_sign.html", @@ -16578,6 +19185,7 @@ our %unified_info = ( "doc/html/man3/EVP_PKEY_CTX_ctrl.html", "doc/html/man3/EVP_PKEY_CTX_get0_libctx.html", "doc/html/man3/EVP_PKEY_CTX_get0_pkey.html", + "doc/html/man3/EVP_PKEY_CTX_get_algor.html", "doc/html/man3/EVP_PKEY_CTX_new.html", "doc/html/man3/EVP_PKEY_CTX_set1_pbe_pass.html", "doc/html/man3/EVP_PKEY_CTX_set_hkdf_md.html", @@ -16617,6 +19225,8 @@ our %unified_info = ( "doc/html/man3/EVP_PKEY_verify_recover.html", "doc/html/man3/EVP_RAND.html", "doc/html/man3/EVP_SIGNATURE.html", + "doc/html/man3/EVP_SKEY.html", + "doc/html/man3/EVP_SKEYMGMT.html", "doc/html/man3/EVP_SealInit.html", "doc/html/man3/EVP_SignInit.html", "doc/html/man3/EVP_VerifyInit.html", @@ -16646,6 +19256,7 @@ our %unified_info = ( "doc/html/man3/EVP_sm3.html", "doc/html/man3/EVP_sm4_cbc.html", "doc/html/man3/EVP_whirlpool.html", + "doc/html/man3/GENERAL_NAME.html", "doc/html/man3/HMAC.html", "doc/html/man3/MD5.html", "doc/html/man3/MDC2_Init.html", @@ -16670,14 +19281,18 @@ our %unified_info = ( "doc/html/man3/OPENSSL_init_ssl.html", "doc/html/man3/OPENSSL_instrument_bus.html", "doc/html/man3/OPENSSL_load_builtin_modules.html", + "doc/html/man3/OPENSSL_load_u16_le.html", "doc/html/man3/OPENSSL_malloc.html", + "doc/html/man3/OPENSSL_riscvcap.html", "doc/html/man3/OPENSSL_s390xcap.html", "doc/html/man3/OPENSSL_secure_malloc.html", "doc/html/man3/OPENSSL_strcasecmp.html", "doc/html/man3/OSSL_ALGORITHM.html", "doc/html/man3/OSSL_CALLBACK.html", + "doc/html/man3/OSSL_CMP_ATAV_set0.html", "doc/html/man3/OSSL_CMP_CTX_new.html", "doc/html/man3/OSSL_CMP_HDR_get0_transactionID.html", + "doc/html/man3/OSSL_CMP_ITAV_new_caCerts.html", "doc/html/man3/OSSL_CMP_ITAV_set0.html", "doc/html/man3/OSSL_CMP_MSG_get0_header.html", "doc/html/man3/OSSL_CMP_MSG_http_perform.html", @@ -16701,18 +19316,27 @@ our %unified_info = ( "doc/html/man3/OSSL_ENCODER_CTX.html", "doc/html/man3/OSSL_ENCODER_CTX_new_for_pkey.html", "doc/html/man3/OSSL_ENCODER_to_bio.html", + "doc/html/man3/OSSL_ERR_STATE_save.html", "doc/html/man3/OSSL_ESS_check_signing_certs.html", + "doc/html/man3/OSSL_GENERAL_NAMES_print.html", + "doc/html/man3/OSSL_HPKE_CTX_new.html", "doc/html/man3/OSSL_HTTP_REQ_CTX.html", "doc/html/man3/OSSL_HTTP_parse_url.html", "doc/html/man3/OSSL_HTTP_transfer.html", + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX.html", + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX_print.html", + "doc/html/man3/OSSL_INDICATOR_set_callback.html", "doc/html/man3/OSSL_ITEM.html", "doc/html/man3/OSSL_LIB_CTX.html", + "doc/html/man3/OSSL_LIB_CTX_set_conf_diagnostics.html", "doc/html/man3/OSSL_PARAM.html", "doc/html/man3/OSSL_PARAM_BLD.html", "doc/html/man3/OSSL_PARAM_allocate_from_text.html", "doc/html/man3/OSSL_PARAM_dup.html", "doc/html/man3/OSSL_PARAM_int.html", + "doc/html/man3/OSSL_PARAM_print_to_bio.html", "doc/html/man3/OSSL_PROVIDER.html", + "doc/html/man3/OSSL_QUIC_client_method.html", "doc/html/man3/OSSL_SELF_TEST_new.html", "doc/html/man3/OSSL_SELF_TEST_set_callback.html", "doc/html/man3/OSSL_STORE_INFO.html", @@ -16721,11 +19345,13 @@ our %unified_info = ( "doc/html/man3/OSSL_STORE_attach.html", "doc/html/man3/OSSL_STORE_expect.html", "doc/html/man3/OSSL_STORE_open.html", + "doc/html/man3/OSSL_sleep.html", "doc/html/man3/OSSL_trace_enabled.html", "doc/html/man3/OSSL_trace_get_category_num.html", "doc/html/man3/OSSL_trace_set_channel.html", "doc/html/man3/OpenSSL_add_all_algorithms.html", "doc/html/man3/OpenSSL_version.html", + "doc/html/man3/PBMAC1_get1_pbkdf2_param.html", "doc/html/man3/PEM_X509_INFO_read_bio_ex.html", "doc/html/man3/PEM_bytes_read_bio.html", "doc/html/man3/PEM_read.html", @@ -16738,6 +19364,7 @@ our %unified_info = ( "doc/html/man3/PKCS12_SAFEBAG_create_cert.html", "doc/html/man3/PKCS12_SAFEBAG_get0_attrs.html", "doc/html/man3/PKCS12_SAFEBAG_get1_cert.html", + "doc/html/man3/PKCS12_SAFEBAG_set0_attrs.html", "doc/html/man3/PKCS12_add1_attr_by_NID.html", "doc/html/man3/PKCS12_add_CSPName_asc.html", "doc/html/man3/PKCS12_add_cert.html", @@ -16829,6 +19456,7 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_sess_set_get_cb.html", "doc/html/man3/SSL_CTX_sessions.html", "doc/html/man3/SSL_CTX_set0_CA_list.html", + "doc/html/man3/SSL_CTX_set1_cert_comp_preference.html", "doc/html/man3/SSL_CTX_set1_curves.html", "doc/html/man3/SSL_CTX_set1_sigalgs.html", "doc/html/man3/SSL_CTX_set1_verify_cert_store.html", @@ -16842,6 +19470,7 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_ct_validation_callback.html", "doc/html/man3/SSL_CTX_set_ctlog_list_file.html", "doc/html/man3/SSL_CTX_set_default_passwd_cb.html", + "doc/html/man3/SSL_CTX_set_domain_flags.html", "doc/html/man3/SSL_CTX_set_generate_session_id.html", "doc/html/man3/SSL_CTX_set_info_callback.html", "doc/html/man3/SSL_CTX_set_keylog_callback.html", @@ -16849,6 +19478,7 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_min_proto_version.html", "doc/html/man3/SSL_CTX_set_mode.html", "doc/html/man3/SSL_CTX_set_msg_callback.html", + "doc/html/man3/SSL_CTX_set_new_pending_conn_cb.html", "doc/html/man3/SSL_CTX_set_num_tickets.html", "doc/html/man3/SSL_CTX_set_options.html", "doc/html/man3/SSL_CTX_set_psk_client_callback.html", @@ -16887,6 +19517,7 @@ our %unified_info = ( "doc/html/man3/SSL_SESSION_print.html", "doc/html/man3/SSL_SESSION_set1_id.html", "doc/html/man3/SSL_accept.html", + "doc/html/man3/SSL_accept_stream.html", "doc/html/man3/SSL_alert_type_string.html", "doc/html/man3/SSL_alloc_buffers.html", "doc/html/man3/SSL_check_chain.html", @@ -16896,59 +19527,90 @@ our %unified_info = ( "doc/html/man3/SSL_export_keying_material.html", "doc/html/man3/SSL_extension_supported.html", "doc/html/man3/SSL_free.html", + "doc/html/man3/SSL_get0_connection.html", + "doc/html/man3/SSL_get0_group_name.html", + "doc/html/man3/SSL_get0_peer_rpk.html", "doc/html/man3/SSL_get0_peer_scts.html", + "doc/html/man3/SSL_get1_builtin_sigalgs.html", "doc/html/man3/SSL_get_SSL_CTX.html", "doc/html/man3/SSL_get_all_async_fds.html", "doc/html/man3/SSL_get_certificate.html", "doc/html/man3/SSL_get_ciphers.html", "doc/html/man3/SSL_get_client_random.html", + "doc/html/man3/SSL_get_conn_close_info.html", "doc/html/man3/SSL_get_current_cipher.html", "doc/html/man3/SSL_get_default_timeout.html", "doc/html/man3/SSL_get_error.html", + "doc/html/man3/SSL_get_event_timeout.html", "doc/html/man3/SSL_get_extms_support.html", "doc/html/man3/SSL_get_fd.html", + "doc/html/man3/SSL_get_handshake_rtt.html", "doc/html/man3/SSL_get_peer_cert_chain.html", "doc/html/man3/SSL_get_peer_certificate.html", "doc/html/man3/SSL_get_peer_signature_nid.html", "doc/html/man3/SSL_get_peer_tmp_key.html", "doc/html/man3/SSL_get_psk_identity.html", "doc/html/man3/SSL_get_rbio.html", + "doc/html/man3/SSL_get_rpoll_descriptor.html", "doc/html/man3/SSL_get_session.html", "doc/html/man3/SSL_get_shared_sigalgs.html", + "doc/html/man3/SSL_get_stream_id.html", + "doc/html/man3/SSL_get_stream_read_state.html", + "doc/html/man3/SSL_get_value_uint.html", "doc/html/man3/SSL_get_verify_result.html", "doc/html/man3/SSL_get_version.html", "doc/html/man3/SSL_group_to_name.html", + "doc/html/man3/SSL_handle_events.html", "doc/html/man3/SSL_in_init.html", + "doc/html/man3/SSL_inject_net_dgram.html", "doc/html/man3/SSL_key_update.html", "doc/html/man3/SSL_library_init.html", "doc/html/man3/SSL_load_client_CA_file.html", "doc/html/man3/SSL_new.html", + "doc/html/man3/SSL_new_domain.html", + "doc/html/man3/SSL_new_listener.html", + "doc/html/man3/SSL_new_stream.html", "doc/html/man3/SSL_pending.html", + "doc/html/man3/SSL_poll.html", "doc/html/man3/SSL_read.html", "doc/html/man3/SSL_read_early_data.html", "doc/html/man3/SSL_rstate_string.html", "doc/html/man3/SSL_session_reused.html", "doc/html/man3/SSL_set1_host.html", + "doc/html/man3/SSL_set1_initial_peer_addr.html", + "doc/html/man3/SSL_set1_server_cert_type.html", "doc/html/man3/SSL_set_async_callback.html", "doc/html/man3/SSL_set_bio.html", + "doc/html/man3/SSL_set_blocking_mode.html", "doc/html/man3/SSL_set_connect_state.html", + "doc/html/man3/SSL_set_default_stream_mode.html", "doc/html/man3/SSL_set_fd.html", + "doc/html/man3/SSL_set_incoming_stream_policy.html", + "doc/html/man3/SSL_set_quic_tls_cbs.html", "doc/html/man3/SSL_set_retry_verify.html", "doc/html/man3/SSL_set_session.html", + "doc/html/man3/SSL_set_session_secret_cb.html", "doc/html/man3/SSL_set_shutdown.html", "doc/html/man3/SSL_set_verify_result.html", "doc/html/man3/SSL_shutdown.html", "doc/html/man3/SSL_state_string.html", + "doc/html/man3/SSL_stream_conclude.html", + "doc/html/man3/SSL_stream_reset.html", "doc/html/man3/SSL_want.html", "doc/html/man3/SSL_write.html", "doc/html/man3/TS_RESP_CTX_new.html", - "doc/html/man3/TS_VERIFY_CTX_set_certs.html", + "doc/html/man3/TS_VERIFY_CTX.html", "doc/html/man3/UI_STRING.html", "doc/html/man3/UI_UTIL_read_pw.html", "doc/html/man3/UI_create_method.html", "doc/html/man3/UI_new.html", "doc/html/man3/X509V3_get_d2i.html", "doc/html/man3/X509V3_set_ctx.html", + "doc/html/man3/X509_ACERT_add1_attr.html", + "doc/html/man3/X509_ACERT_add_attr_nconf.html", + "doc/html/man3/X509_ACERT_get0_holder_baseCertId.html", + "doc/html/man3/X509_ACERT_get_attr.html", + "doc/html/man3/X509_ACERT_print_ex.html", "doc/html/man3/X509_ALGOR_dup.html", "doc/html/man3/X509_ATTRIBUTE.html", "doc/html/man3/X509_CRL_get0_by_serial.html", @@ -16965,6 +19627,7 @@ our %unified_info = ( "doc/html/man3/X509_REQ_get_attr.html", "doc/html/man3/X509_REQ_get_extensions.html", "doc/html/man3/X509_SIG_get0.html", + "doc/html/man3/X509_STORE_CTX_get_by_subject.html", "doc/html/man3/X509_STORE_CTX_get_error.html", "doc/html/man3/X509_STORE_CTX_new.html", "doc/html/man3/X509_STORE_CTX_set_verify_cb.html", @@ -16987,6 +19650,7 @@ our %unified_info = ( "doc/html/man3/X509_get0_notBefore.html", "doc/html/man3/X509_get0_signature.html", "doc/html/man3/X509_get0_uids.html", + "doc/html/man3/X509_get_default_cert_file.html", "doc/html/man3/X509_get_extension_flags.html", "doc/html/man3/X509_get_pubkey.html", "doc/html/man3/X509_get_serialNumber.html", @@ -17032,12 +19696,15 @@ our %unified_info = ( "doc/html/man7/EVP_CIPHER-RC5.html", "doc/html/man7/EVP_CIPHER-SEED.html", "doc/html/man7/EVP_CIPHER-SM4.html", + "doc/html/man7/EVP_KDF-ARGON2.html", "doc/html/man7/EVP_KDF-HKDF.html", + "doc/html/man7/EVP_KDF-HMAC-DRBG.html", "doc/html/man7/EVP_KDF-KB.html", "doc/html/man7/EVP_KDF-KRB5KDF.html", "doc/html/man7/EVP_KDF-PBKDF1.html", "doc/html/man7/EVP_KDF-PBKDF2.html", "doc/html/man7/EVP_KDF-PKCS12KDF.html", + "doc/html/man7/EVP_KDF-PVKKDF.html", "doc/html/man7/EVP_KDF-SCRYPT.html", "doc/html/man7/EVP_KDF-SS.html", "doc/html/man7/EVP_KDF-SSHKDF.html", @@ -17046,7 +19713,10 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-X942-ASN1.html", "doc/html/man7/EVP_KDF-X942-CONCAT.html", "doc/html/man7/EVP_KDF-X963.html", + "doc/html/man7/EVP_KEM-EC.html", + "doc/html/man7/EVP_KEM-ML-KEM.html", "doc/html/man7/EVP_KEM-RSA.html", + "doc/html/man7/EVP_KEM-X25519.html", "doc/html/man7/EVP_KEYEXCH-DH.html", "doc/html/man7/EVP_KEYEXCH-ECDH.html", "doc/html/man7/EVP_KEYEXCH-X25519.html", @@ -17058,6 +19728,7 @@ our %unified_info = ( "doc/html/man7/EVP_MAC-Poly1305.html", "doc/html/man7/EVP_MAC-Siphash.html", "doc/html/man7/EVP_MD-BLAKE2.html", + "doc/html/man7/EVP_MD-KECCAK.html", "doc/html/man7/EVP_MD-MD2.html", "doc/html/man7/EVP_MD-MD4.html", "doc/html/man7/EVP_MD-MD5-SHA1.html", @@ -17077,12 +19748,17 @@ our %unified_info = ( "doc/html/man7/EVP_PKEY-EC.html", "doc/html/man7/EVP_PKEY-FFC.html", "doc/html/man7/EVP_PKEY-HMAC.html", + "doc/html/man7/EVP_PKEY-ML-DSA.html", + "doc/html/man7/EVP_PKEY-ML-KEM.html", "doc/html/man7/EVP_PKEY-RSA.html", + "doc/html/man7/EVP_PKEY-SLH-DSA.html", "doc/html/man7/EVP_PKEY-SM2.html", "doc/html/man7/EVP_PKEY-X25519.html", + "doc/html/man7/EVP_RAND-CRNG-TEST.html", "doc/html/man7/EVP_RAND-CTR-DRBG.html", "doc/html/man7/EVP_RAND-HASH-DRBG.html", "doc/html/man7/EVP_RAND-HMAC-DRBG.html", + "doc/html/man7/EVP_RAND-JITTER.html", "doc/html/man7/EVP_RAND-SEED-SRC.html", "doc/html/man7/EVP_RAND-TEST-RAND.html", "doc/html/man7/EVP_RAND.html", @@ -17090,17 +19766,19 @@ our %unified_info = ( "doc/html/man7/EVP_SIGNATURE-ECDSA.html", "doc/html/man7/EVP_SIGNATURE-ED25519.html", "doc/html/man7/EVP_SIGNATURE-HMAC.html", + "doc/html/man7/EVP_SIGNATURE-ML-DSA.html", "doc/html/man7/EVP_SIGNATURE-RSA.html", + "doc/html/man7/EVP_SIGNATURE-SLH-DSA.html", "doc/html/man7/OSSL_PROVIDER-FIPS.html", "doc/html/man7/OSSL_PROVIDER-base.html", "doc/html/man7/OSSL_PROVIDER-default.html", "doc/html/man7/OSSL_PROVIDER-legacy.html", "doc/html/man7/OSSL_PROVIDER-null.html", + "doc/html/man7/OSSL_STORE-winstore.html", "doc/html/man7/RAND.html", "doc/html/man7/RSA-PSS.html", "doc/html/man7/X25519.html", "doc/html/man7/bio.html", - "doc/html/man7/crypto.html", "doc/html/man7/ct.html", "doc/html/man7/des_modes.html", "doc/html/man7/evp.html", @@ -17111,14 +19789,31 @@ our %unified_info = ( "doc/html/man7/life_cycle-mac.html", "doc/html/man7/life_cycle-pkey.html", "doc/html/man7/life_cycle-rand.html", - "doc/html/man7/migration_guide.html", "doc/html/man7/openssl-core.h.html", "doc/html/man7/openssl-core_dispatch.h.html", "doc/html/man7/openssl-core_names.h.html", "doc/html/man7/openssl-env.html", "doc/html/man7/openssl-glossary.html", + "doc/html/man7/openssl-qlog.html", + "doc/html/man7/openssl-quic-concurrency.html", + "doc/html/man7/openssl-quic.html", "doc/html/man7/openssl-threads.html", "doc/html/man7/openssl_user_macros.html", + "doc/html/man7/ossl-guide-introduction.html", + "doc/html/man7/ossl-guide-libcrypto-introduction.html", + "doc/html/man7/ossl-guide-libraries-introduction.html", + "doc/html/man7/ossl-guide-libssl-introduction.html", + "doc/html/man7/ossl-guide-migration.html", + "doc/html/man7/ossl-guide-quic-client-block.html", + "doc/html/man7/ossl-guide-quic-client-non-block.html", + "doc/html/man7/ossl-guide-quic-introduction.html", + "doc/html/man7/ossl-guide-quic-multi-stream.html", + "doc/html/man7/ossl-guide-quic-server-block.html", + "doc/html/man7/ossl-guide-quic-server-non-block.html", + "doc/html/man7/ossl-guide-tls-client-block.html", + "doc/html/man7/ossl-guide-tls-client-non-block.html", + "doc/html/man7/ossl-guide-tls-introduction.html", + "doc/html/man7/ossl-guide-tls-server-block.html", "doc/html/man7/ossl_store-file.html", "doc/html/man7/ossl_store.html", "doc/html/man7/passphrase-encoding.html", @@ -17137,10 +19832,10 @@ our %unified_info = ( "doc/html/man7/provider-object.html", "doc/html/man7/provider-rand.html", "doc/html/man7/provider-signature.html", + "doc/html/man7/provider-skeymgmt.html", "doc/html/man7/provider-storemgmt.html", "doc/html/man7/provider.html", "doc/html/man7/proxy-certificates.html", - "doc/html/man7/ssl.html", "doc/html/man7/x509.html" ] }, @@ -17155,12 +19850,21 @@ our %unified_info = ( ] }, "includes" => { + "OpenSSLConfig.cmake" => [ + "." + ], + "OpenSSLConfigVersion.cmake" => [ + "." + ], "apps/asn1parse.o" => [ "apps" ], "apps/ca.o" => [ "apps" ], + "apps/ca_internals_test-bin-ca.o" => [ + "apps" + ], "apps/ciphers.o" => [ "apps" ], @@ -17387,6 +20091,9 @@ our %unified_info = ( "apps/openssl-bin-sess_id.o" => [ "apps" ], + "apps/openssl-bin-skeyutl.o" => [ + "apps" + ], "apps/openssl-bin-smime.o" => [ "apps" ], @@ -17474,6 +20181,9 @@ our %unified_info = ( "apps/sess_id.o" => [ "apps" ], + "apps/skeyutl.o" => [ + "apps" + ], "apps/smime.o" => [ "apps" ], @@ -17525,6 +20235,12 @@ our %unified_info = ( "crypto/aes/bsaes-armv7.o" => [ "crypto" ], + "crypto/aes/vpaes-armv8.o" => [ + "crypto" + ], + "crypto/aes/vpaes-loongarch64.o" => [ + "crypto" + ], "crypto/arm64cpuid.o" => [ "crypto" ], @@ -17576,9 +20292,15 @@ our %unified_info = ( "crypto/chacha/chacha-armv4.o" => [ "crypto" ], + "crypto/chacha/chacha-armv8-sve.o" => [ + "crypto" + ], "crypto/chacha/chacha-armv8.o" => [ "crypto" ], + "crypto/chacha/chacha-loongarch64.o" => [ + "crypto" + ], "crypto/chacha/chacha-s390x.o" => [ "crypto" ], @@ -17603,15 +20325,27 @@ our %unified_info = ( "crypto/ec/ecp_s390x_nistp.o" => [ "crypto" ], + "crypto/ec/ecp_sm2p256-armv8.o" => [ + "crypto" + ], + "crypto/ec/ecx_key.o" => [ + "crypto" + ], "crypto/ec/ecx_meth.o" => [ "crypto" ], "crypto/ec/ecx_s390x.o" => [ "crypto" ], + "crypto/ec/libcrypto-lib-ecx_key.o" => [ + "crypto" + ], "crypto/ec/libcrypto-lib-ecx_meth.o" => [ "crypto" ], + "crypto/ec/libfips-lib-ecx_key.o" => [ + "crypto" + ], "crypto/evp/e_aes.o" => [ "crypto", "crypto/modes" @@ -17683,9 +20417,18 @@ our %unified_info = ( "crypto/libfips-lib-cpuid.o" => [ "." ], + "crypto/md5/md5-aarch64.o" => [ + "crypto" + ], + "crypto/md5/md5-loongarch64.o" => [ + "crypto" + ], "crypto/md5/md5-sparcv9.o" => [ "crypto" ], + "crypto/modes/aes-gcm-armv8-unroll8_64.o" => [ + "crypto" + ], "crypto/modes/aes-gcm-armv8_64.o" => [ "crypto" ], @@ -17710,6 +20453,9 @@ our %unified_info = ( "crypto/modes/libfips-lib-gcm128.o" => [ "crypto" ], + "crypto/params_idx.c" => [ + "util/perl" + ], "crypto/poly1305/poly1305-armv4.o" => [ "crypto" ], @@ -17731,6 +20477,9 @@ our %unified_info = ( "crypto/sha/keccak1600-armv4.o" => [ "crypto" ], + "crypto/sha/keccak1600-armv8.o" => [ + "crypto" + ], "crypto/sha/sha1-armv4-large.o" => [ "crypto" ], @@ -17776,6 +20525,18 @@ our %unified_info = ( "crypto/sha/sha512-sparcv9.o" => [ "crypto" ], + "crypto/sm3/sm3-armv8.o" => [ + "crypto" + ], + "crypto/sm4/sm4-armv8.o" => [ + "crypto" + ], + "crypto/sm4/vpsm4-armv8.o" => [ + "crypto" + ], + "crypto/sm4/vpsm4_ex-armv8.o" => [ + "crypto" + ], "doc/man1/openssl-asn1parse.pod" => [ "doc" ], @@ -17908,6 +20669,9 @@ our %unified_info = ( "doc/man1/openssl-sess_id.pod" => [ "doc" ], + "doc/man1/openssl-skeyutl.pod" => [ + "doc" + ], "doc/man1/openssl-smime.pod" => [ "doc" ], @@ -17935,6 +20699,24 @@ our %unified_info = ( "doc/man1/openssl-x509.pod" => [ "doc" ], + "exporters/OpenSSLConfig.cmake" => [ + "." + ], + "exporters/OpenSSLConfigVersion.cmake" => [ + "." + ], + "exporters/libcrypto.pc" => [ + "." + ], + "exporters/libssl.pc" => [ + "." + ], + "exporters/openssl.pc" => [ + "." + ], + "fuzz/acert-test" => [ + "include" + ], "fuzz/asn1-test" => [ "include" ], @@ -17965,22 +20747,88 @@ our %unified_info = ( "fuzz/ct-test" => [ "include" ], + "fuzz/decoder-test" => [ + "include" + ], + "fuzz/dtlsclient-test" => [ + "include" + ], + "fuzz/dtlsserver-test" => [ + "include" + ], + "fuzz/hashtable-test" => [ + "include" + ], + "fuzz/ml-dsa-test" => [ + "include" + ], + "fuzz/ml-kem-test" => [ + "include" + ], + "fuzz/pem-test" => [ + "include" + ], + "fuzz/provider-test" => [ + "include" + ], + "fuzz/punycode-test" => [ + "include" + ], + "fuzz/quic-client-test" => [ + "include" + ], + "fuzz/quic-lcidm-test" => [ + "include" + ], + "fuzz/quic-rcidm-test" => [ + "include" + ], + "fuzz/quic-server-test" => [ + "include" + ], + "fuzz/quic-srtm-test" => [ + "include" + ], "fuzz/server-test" => [ "include" ], + "fuzz/slh-dsa-test" => [ + "include" + ], + "fuzz/smime-test" => [ + "include" + ], + "fuzz/v3name-test" => [ + "include" + ], "fuzz/x509-test" => [ "include" ], + "include/internal/param_names.h" => [ + "util/perl" + ], + "include/openssl/core_names.h" => [ + "util/perl" + ], "libcrypto" => [ ".", "include", "providers/common/include", "providers/implementations/include" ], + "libcrypto.pc" => [ + "." + ], "libssl" => [ ".", "include" ], + "libssl.pc" => [ + "." + ], + "openssl.pc" => [ + "." + ], "providers/common/der/der_digests_gen.c" => [ "providers/common/der" ], @@ -18020,6 +20868,15 @@ our %unified_info = ( "providers/common/der/der_ecx_key.o" => [ "providers/common/include/prov" ], + "providers/common/der/der_ml_dsa_gen.c" => [ + "providers/common/der" + ], + "providers/common/der/der_ml_dsa_gen.o" => [ + "providers/common/include/prov" + ], + "providers/common/der/der_ml_dsa_key.o" => [ + "providers/common/include/prov" + ], "providers/common/der/der_rsa_gen.c" => [ "providers/common/der" ], @@ -18032,6 +20889,15 @@ our %unified_info = ( "providers/common/der/der_rsa_sig.o" => [ "providers/common/include/prov" ], + "providers/common/der/der_slh_dsa_gen.c" => [ + "providers/common/der" + ], + "providers/common/der/der_slh_dsa_gen.o" => [ + "providers/common/include/prov" + ], + "providers/common/der/der_slh_dsa_key.o" => [ + "providers/common/include/prov" + ], "providers/common/der/der_sm2_gen.c" => [ "providers/common/der" ], @@ -18077,12 +20943,24 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ecx_key.o" => [ "providers/common/include/prov" ], + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o" => [ + "providers/common/include/prov" + ], + "providers/common/der/libcommon-lib-der_ml_dsa_key.o" => [ + "providers/common/include/prov" + ], "providers/common/der/libcommon-lib-der_rsa_gen.o" => [ "providers/common/include/prov" ], "providers/common/der/libcommon-lib-der_rsa_key.o" => [ "providers/common/include/prov" ], + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o" => [ + "providers/common/include/prov" + ], + "providers/common/der/libcommon-lib-der_slh_dsa_key.o" => [ + "providers/common/include/prov" + ], "providers/common/der/libcommon-lib-der_wrap_gen.o" => [ "providers/common/include/prov" ], @@ -18113,9 +20991,15 @@ our %unified_info = ( "providers/common/include/prov/der_ecx.h" => [ "providers/common/der" ], + "providers/common/include/prov/der_ml_dsa.h" => [ + "providers/common/der" + ], "providers/common/include/prov/der_rsa.h" => [ "providers/common/der" ], + "providers/common/include/prov/der_slh_dsa.h" => [ + "providers/common/der" + ], "providers/common/include/prov/der_sm2.h" => [ "providers/common/der" ], @@ -18158,9 +21042,15 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-eddsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/libdefault-lib-rsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/libdefault-lib-sm2_sig.o" => [ "providers/common/include/prov" ], @@ -18173,12 +21063,24 @@ our %unified_info = ( "providers/implementations/signature/libfips-lib-eddsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/libfips-lib-rsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o" => [ + "providers/common/include/prov" + ], + "providers/implementations/signature/ml_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/rsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/slh_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/sm2_sig.o" => [ "providers/common/include/prov" ], @@ -18191,28 +21093,39 @@ our %unified_info = ( "crypto", "include", "providers/implementations/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" ], "providers/libdefault.a" => [ ".", "crypto", "include", "providers/implementations/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" ], "providers/libfips.a" => [ ".", "crypto", "include", "providers/implementations/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" ], "providers/liblegacy.a" => [ ".", "crypto", "include", "providers/implementations/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" + ], + "providers/libtemplate.a" => [ + "crypto", + "include", + "providers/implementations/include", + "providers/common/include", + "providers/fips/include" ], "test/aborttest" => [ "include", @@ -18281,6 +21194,14 @@ our %unified_info = ( "include", "apps/include" ], + "test/bio_addr_test" => [ + "include", + "apps/include" + ], + "test/bio_base64_test" => [ + "include", + "apps/include" + ], "test/bio_callback_test" => [ "include", "apps/include" @@ -18289,11 +21210,20 @@ our %unified_info = ( "include", "apps/include" ], + "test/bio_dgram_test" => [ + "include", + "apps/include", + "." + ], "test/bio_enc_test" => [ "include", "apps/include" ], - "test/bio_memleak_test" => [ + "test/bio_memleak_test" => [ + "include", + "apps/include" + ], + "test/bio_meth_test" => [ "include", "apps/include" ], @@ -18310,6 +21240,11 @@ our %unified_info = ( "include", "apps/include" ], + "test/bio_tfo_test" => [ + "include", + "apps/include", + "." + ], "test/bioprinttest" => [ "include", "apps/include" @@ -18324,6 +21259,9 @@ our %unified_info = ( "include", "apps/include" ], + "test/build_wincrypt_test" => [ + "include" + ], "test/buildtest_c_aes" => [ "include" ], @@ -18339,6 +21277,9 @@ our %unified_info = ( "test/buildtest_c_buffer" => [ "include" ], + "test/buildtest_c_byteorder" => [ + "include" + ], "test/buildtest_c_camellia" => [ "include" ], @@ -18363,9 +21304,6 @@ our %unified_info = ( "test/buildtest_c_core_dispatch" => [ "include" ], - "test/buildtest_c_core_names" => [ - "include" - ], "test/buildtest_c_core_object" => [ "include" ], @@ -18390,6 +21328,9 @@ our %unified_info = ( "test/buildtest_c_e_os2" => [ "include" ], + "test/buildtest_c_e_ostime" => [ + "include" + ], "test/buildtest_c_ebcdic" => [ "include" ], @@ -18417,12 +21358,18 @@ our %unified_info = ( "test/buildtest_c_hmac" => [ "include" ], + "test/buildtest_c_hpke" => [ + "include" + ], "test/buildtest_c_http" => [ "include" ], "test/buildtest_c_idea" => [ "include" ], + "test/buildtest_c_indicator" => [ + "include" + ], "test/buildtest_c_kdf" => [ "include" ], @@ -18438,6 +21385,9 @@ our %unified_info = ( "test/buildtest_c_mdc2" => [ "include" ], + "test/buildtest_c_ml_kem" => [ + "include" + ], "test/buildtest_c_modes" => [ "include" ], @@ -18468,6 +21418,9 @@ our %unified_info = ( "test/buildtest_c_provider" => [ "include" ], + "test/buildtest_c_quic" => [ + "include" + ], "test/buildtest_c_rand" => [ "include" ], @@ -18510,6 +21463,9 @@ our %unified_info = ( "test/buildtest_c_symhacks" => [ "include" ], + "test/buildtest_c_thread" => [ + "include" + ], "test/buildtest_c_tls1" => [ "include" ], @@ -18525,10 +21481,24 @@ our %unified_info = ( "test/buildtest_c_whrlpool" => [ "include" ], + "test/byteorder_test" => [ + "include", + "apps/include" + ], + "test/ca_internals_test" => [ + ".", + "include", + "apps/include" + ], "test/casttest" => [ "include", "apps/include" ], + "test/cert_comp_test" => [ + "include", + "apps/include", + "." + ], "test/chacha_internal_test" => [ ".", "include", @@ -18652,6 +21622,11 @@ our %unified_info = ( "include", "apps/include" ], + "test/decoder_propq_test" => [ + ".", + "include", + "apps/include" + ], "test/defltfips_test" => [ "include", "apps/include" @@ -18667,7 +21642,8 @@ our %unified_info = ( "test/drbgtest" => [ "include", "apps/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" ], "test/dsa_no_digest_size_test" => [ "include", @@ -18710,7 +21686,9 @@ our %unified_info = ( "test/endecode_test" => [ ".", "include", - "apps/include" + "apps/include", + "providers/common/include", + "providers/implementations/include" ], "test/endecoder_legacy_test" => [ ".", @@ -18755,6 +21733,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/evp_pkey_dhkem_test" => [ + "include", + "apps/include" + ], "test/evp_pkey_dparams_test" => [ "include", "apps/include" @@ -18763,10 +21745,18 @@ our %unified_info = ( "include", "apps/include" ], + "test/evp_skey_test" => [ + "include", + "apps/include" + ], "test/evp_test" => [ "include", "apps/include" ], + "test/evp_xof_test" => [ + "include", + "apps/include" + ], "test/exdatatest" => [ "include", "apps/include" @@ -18867,22 +21857,62 @@ our %unified_info = ( ".", "include" ], + "test/helpers/json_test-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/helpers/pkcs12.o" => [ ".", "include" ], + "test/helpers/pkcs12_api_test-bin-pkcs12.o" => [ + ".", + "include" + ], "test/helpers/pkcs12_format_test-bin-pkcs12.o" => [ ".", "include" ], + "test/helpers/quic_multistream_test-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quic_newcid_test-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quic_radix_test-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quic_srt_gen_test-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quicapitest-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quicfaultstest-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/helpers/recordlentest-bin-ssltestlib.o" => [ ".", "include" ], + "test/helpers/rpktest-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/helpers/servername_test-bin-ssltestlib.o" => [ ".", "include" ], + "test/helpers/ssl_handshake_rtt_test-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/helpers/ssl_test-bin-handshake.o" => [ ".", "include" @@ -18916,6 +21946,10 @@ our %unified_info = ( ".", "include" ], + "test/helpers/tls13groupselection_test-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/hexstr_test" => [ ".", "include", @@ -18925,6 +21959,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/hpke_test" => [ + "include", + "apps/include" + ], "test/http_test" => [ "include", "apps/include" @@ -18937,6 +21975,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/json_test" => [ + "include", + "apps/include" + ], "test/keymgmt_internal_test" => [ ".", "include", @@ -18951,6 +21993,10 @@ our %unified_info = ( "apps/include", "." ], + "test/list_test" => [ + "include", + "apps/include" + ], "test/localetest" => [ "include", "apps/include" @@ -18964,10 +22010,27 @@ our %unified_info = ( "include", "apps/include" ], + "test/membio_test" => [ + "include", + "apps/include", + "." + ], "test/memleaktest" => [ "include", "apps/include" ], + "test/ml_dsa_test" => [ + "include", + "apps/include" + ], + "test/ml_kem_evp_extra_test" => [ + "include", + "apps/include" + ], + "test/ml_kem_internal_test" => [ + "include", + "apps/include" + ], "test/modes_internal_test" => [ ".", "include", @@ -19002,6 +22065,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/pairwise_fail_test" => [ + "include", + "apps/include" + ], "test/param_build_test" => [ "include", "apps/include" @@ -19035,6 +22102,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/pkcs12_api_test" => [ + "include", + "apps/include" + ], "test/pkcs12_format_test" => [ "include", "apps/include" @@ -19056,6 +22127,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/priority_queue_test" => [ + "include", + "apps/include" + ], "test/property_test" => [ ".", "include", @@ -19069,6 +22144,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/provider_default_search_path_test" => [ + "include", + "apps/include" + ], "test/provider_fallback_test" => [ "include", "apps/include" @@ -19095,6 +22174,97 @@ our %unified_info = ( "include", "apps/include" ], + "test/quic_ackm_test" => [ + "include", + "apps/include" + ], + "test/quic_cc_test" => [ + "include", + "apps/include" + ], + "test/quic_cfq_test" => [ + "include", + "apps/include" + ], + "test/quic_client_test" => [ + "include", + "apps/include" + ], + "test/quic_fc_test" => [ + "include", + "apps/include" + ], + "test/quic_fifd_test" => [ + "include", + "apps/include" + ], + "test/quic_lcidm_test" => [ + "include", + "apps/include" + ], + "test/quic_multistream_test" => [ + "include", + "apps/include" + ], + "test/quic_newcid_test" => [ + "include", + "apps/include", + "." + ], + "test/quic_qlog_test" => [ + "include", + "apps/include" + ], + "test/quic_radix_test" => [ + "include", + "apps/include" + ], + "test/quic_rcidm_test" => [ + "include", + "apps/include" + ], + "test/quic_record_test" => [ + "include", + "apps/include" + ], + "test/quic_srt_gen_test" => [ + "include", + "apps/include", + "." + ], + "test/quic_srtm_test" => [ + "include", + "apps/include" + ], + "test/quic_stream_test" => [ + "include", + "apps/include" + ], + "test/quic_tserver_test" => [ + "include", + "apps/include" + ], + "test/quic_txp_test" => [ + "include", + "apps/include" + ], + "test/quic_txpim_test" => [ + "include", + "apps/include" + ], + "test/quic_wire_test" => [ + "include", + "apps/include" + ], + "test/quicapitest" => [ + "include", + "apps/include" + ], + "test/quicfaultstest" => [ + "include", + "apps/include", + "." + ], "test/rand_status_test" => [ "include", "apps/include" @@ -19115,14 +22285,20 @@ our %unified_info = ( "include", "apps/include" ], - "test/rdrand_sanitytest" => [ + "test/rdcpu_sanitytest" => [ "include", - "apps/include" + "apps/include", + "crypto" ], "test/recordlentest" => [ "include", "apps/include" ], + "test/rpktest" => [ + "include", + "apps/include", + "." + ], "test/rsa_complex" => [ "include", "apps/include" @@ -19141,6 +22317,15 @@ our %unified_info = ( "include", "apps/include" ], + "test/rsa_x931_test" => [ + ".", + "include", + "apps/include" + ], + "test/safe_math_test" => [ + "include", + "apps/include" + ], "test/sanitytest" => [ "include", "apps/include" @@ -19162,6 +22347,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/slh_dsa_test" => [ + "include", + "apps/include" + ], "test/sm2_internal_test" => [ "include", "apps/include" @@ -19192,6 +22381,11 @@ our %unified_info = ( "include", "apps/include" ], + "test/ssl_handshake_rtt_test" => [ + "include", + "apps/include", + "." + ], "test/ssl_old_test" => [ ".", "include", @@ -19208,6 +22402,7 @@ our %unified_info = ( "test/sslapitest" => [ "include", "apps/include", + "providers/common/include", "." ], "test/sslbuffertest" => [ @@ -19222,6 +22417,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/strtoultest" => [ + "include", + "apps/include" + ], "test/sysdefaulttest" => [ "include", "apps/include" @@ -19230,7 +22429,13 @@ our %unified_info = ( "include", "apps/include" ], + "test/threadpool_test" => [ + ".", + "include", + "apps/include" + ], "test/threadstest" => [ + ".", "include", "apps/include" ], @@ -19242,6 +22447,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/time_test" => [ + "include", + "apps/include" + ], "test/tls13ccstest" => [ "include", "apps/include" @@ -19251,6 +22460,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/tls13groupselection_test" => [ + "include", + "apps/include" + ], "test/trace_api_test" => [ ".", "include", @@ -19289,6 +22502,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/x509_acert_test" => [ + "include", + "apps/include" + ], "test/x509_check_cert_pkey_test" => [ "include", "apps/include" @@ -19302,6 +22519,18 @@ our %unified_info = ( "include", "apps/include" ], + "test/x509_load_cert_file_test" => [ + "include", + "apps/include" + ], + "test/x509_req_test" => [ + "include", + "apps/include" + ], + "test/x509_test" => [ + "include", + "apps/include" + ], "test/x509_time_test" => [ "include", "apps/include" @@ -19323,6 +22552,7 @@ our %unified_info = ( "providers/libdefault.a", "providers/libfips.a", "providers/liblegacy.a", + "providers/libtemplate.a", "test/libtestutil.a" ], "mandocs" => { @@ -19375,6 +22605,7 @@ our %unified_info = ( "doc/man/man1/openssl-s_server.1", "doc/man/man1/openssl-s_time.1", "doc/man/man1/openssl-sess_id.1", + "doc/man/man1/openssl-skeyutl.1", "doc/man/man1/openssl-smime.1", "doc/man/man1/openssl-speed.1", "doc/man/man1/openssl-spkac.1", @@ -19424,6 +22655,7 @@ our %unified_info = ( "doc/man/man3/BIO_find_type.3", "doc/man/man3/BIO_get_data.3", "doc/man/man3/BIO_get_ex_new_index.3", + "doc/man/man3/BIO_get_rpoll_descriptor.3", "doc/man/man3/BIO_meth_new.3", "doc/man/man3/BIO_new.3", "doc/man/man3/BIO_new_CMS.3", @@ -19436,11 +22668,13 @@ our %unified_info = ( "doc/man/man3/BIO_s_connect.3", "doc/man/man3/BIO_s_core.3", "doc/man/man3/BIO_s_datagram.3", + "doc/man/man3/BIO_s_dgram_pair.3", "doc/man/man3/BIO_s_fd.3", "doc/man/man3/BIO_s_file.3", "doc/man/man3/BIO_s_mem.3", "doc/man/man3/BIO_s_null.3", "doc/man/man3/BIO_s_socket.3", + "doc/man/man3/BIO_sendmmsg.3", "doc/man/man3/BIO_set_callback.3", "doc/man/man3/BIO_should_retry.3", "doc/man/man3/BIO_socket_wait.3", @@ -19465,6 +22699,7 @@ our %unified_info = ( "doc/man/man3/BN_swap.3", "doc/man/man3/BN_zero.3", "doc/man/man3/BUF_MEM_new.3", + "doc/man/man3/CMAC_CTX.3", "doc/man/man3/CMS_EncryptedData_decrypt.3", "doc/man/man3/CMS_EncryptedData_encrypt.3", "doc/man/man3/CMS_EnvelopedData_create.3", @@ -19487,6 +22722,7 @@ our %unified_info = ( "doc/man/man3/CMS_uncompress.3", "doc/man/man3/CMS_verify.3", "doc/man/man3/CMS_verify_receipt.3", + "doc/man/man3/COMP_CTX_new.3", "doc/man/man3/CONF_modules_free.3", "doc/man/man3/CONF_modules_load_file.3", "doc/man/man3/CRYPTO_THREAD_run_once.3", @@ -19520,6 +22756,8 @@ our %unified_info = ( "doc/man/man3/DSA_size.3", "doc/man/man3/DTLS_get_data_mtu.3", "doc/man/man3/DTLS_set_timer_cb.3", + "doc/man/man3/DTLSv1_get_timeout.3", + "doc/man/man3/DTLSv1_handle_timeout.3", "doc/man/man3/DTLSv1_listen.3", "doc/man/man3/ECDSA_SIG_new.3", "doc/man/man3/ECDSA_sign.3", @@ -19566,6 +22804,7 @@ our %unified_info = ( "doc/man/man3/EVP_PKEY_CTX_ctrl.3", "doc/man/man3/EVP_PKEY_CTX_get0_libctx.3", "doc/man/man3/EVP_PKEY_CTX_get0_pkey.3", + "doc/man/man3/EVP_PKEY_CTX_get_algor.3", "doc/man/man3/EVP_PKEY_CTX_new.3", "doc/man/man3/EVP_PKEY_CTX_set1_pbe_pass.3", "doc/man/man3/EVP_PKEY_CTX_set_hkdf_md.3", @@ -19605,6 +22844,8 @@ our %unified_info = ( "doc/man/man3/EVP_PKEY_verify_recover.3", "doc/man/man3/EVP_RAND.3", "doc/man/man3/EVP_SIGNATURE.3", + "doc/man/man3/EVP_SKEY.3", + "doc/man/man3/EVP_SKEYMGMT.3", "doc/man/man3/EVP_SealInit.3", "doc/man/man3/EVP_SignInit.3", "doc/man/man3/EVP_VerifyInit.3", @@ -19634,6 +22875,7 @@ our %unified_info = ( "doc/man/man3/EVP_sm3.3", "doc/man/man3/EVP_sm4_cbc.3", "doc/man/man3/EVP_whirlpool.3", + "doc/man/man3/GENERAL_NAME.3", "doc/man/man3/HMAC.3", "doc/man/man3/MD5.3", "doc/man/man3/MDC2_Init.3", @@ -19658,14 +22900,18 @@ our %unified_info = ( "doc/man/man3/OPENSSL_init_ssl.3", "doc/man/man3/OPENSSL_instrument_bus.3", "doc/man/man3/OPENSSL_load_builtin_modules.3", + "doc/man/man3/OPENSSL_load_u16_le.3", "doc/man/man3/OPENSSL_malloc.3", + "doc/man/man3/OPENSSL_riscvcap.3", "doc/man/man3/OPENSSL_s390xcap.3", "doc/man/man3/OPENSSL_secure_malloc.3", "doc/man/man3/OPENSSL_strcasecmp.3", "doc/man/man3/OSSL_ALGORITHM.3", "doc/man/man3/OSSL_CALLBACK.3", + "doc/man/man3/OSSL_CMP_ATAV_set0.3", "doc/man/man3/OSSL_CMP_CTX_new.3", "doc/man/man3/OSSL_CMP_HDR_get0_transactionID.3", + "doc/man/man3/OSSL_CMP_ITAV_new_caCerts.3", "doc/man/man3/OSSL_CMP_ITAV_set0.3", "doc/man/man3/OSSL_CMP_MSG_get0_header.3", "doc/man/man3/OSSL_CMP_MSG_http_perform.3", @@ -19689,18 +22935,27 @@ our %unified_info = ( "doc/man/man3/OSSL_ENCODER_CTX.3", "doc/man/man3/OSSL_ENCODER_CTX_new_for_pkey.3", "doc/man/man3/OSSL_ENCODER_to_bio.3", + "doc/man/man3/OSSL_ERR_STATE_save.3", "doc/man/man3/OSSL_ESS_check_signing_certs.3", + "doc/man/man3/OSSL_GENERAL_NAMES_print.3", + "doc/man/man3/OSSL_HPKE_CTX_new.3", "doc/man/man3/OSSL_HTTP_REQ_CTX.3", "doc/man/man3/OSSL_HTTP_parse_url.3", "doc/man/man3/OSSL_HTTP_transfer.3", + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX.3", + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX_print.3", + "doc/man/man3/OSSL_INDICATOR_set_callback.3", "doc/man/man3/OSSL_ITEM.3", "doc/man/man3/OSSL_LIB_CTX.3", + "doc/man/man3/OSSL_LIB_CTX_set_conf_diagnostics.3", "doc/man/man3/OSSL_PARAM.3", "doc/man/man3/OSSL_PARAM_BLD.3", "doc/man/man3/OSSL_PARAM_allocate_from_text.3", "doc/man/man3/OSSL_PARAM_dup.3", "doc/man/man3/OSSL_PARAM_int.3", + "doc/man/man3/OSSL_PARAM_print_to_bio.3", "doc/man/man3/OSSL_PROVIDER.3", + "doc/man/man3/OSSL_QUIC_client_method.3", "doc/man/man3/OSSL_SELF_TEST_new.3", "doc/man/man3/OSSL_SELF_TEST_set_callback.3", "doc/man/man3/OSSL_STORE_INFO.3", @@ -19709,11 +22964,13 @@ our %unified_info = ( "doc/man/man3/OSSL_STORE_attach.3", "doc/man/man3/OSSL_STORE_expect.3", "doc/man/man3/OSSL_STORE_open.3", + "doc/man/man3/OSSL_sleep.3", "doc/man/man3/OSSL_trace_enabled.3", "doc/man/man3/OSSL_trace_get_category_num.3", "doc/man/man3/OSSL_trace_set_channel.3", "doc/man/man3/OpenSSL_add_all_algorithms.3", "doc/man/man3/OpenSSL_version.3", + "doc/man/man3/PBMAC1_get1_pbkdf2_param.3", "doc/man/man3/PEM_X509_INFO_read_bio_ex.3", "doc/man/man3/PEM_bytes_read_bio.3", "doc/man/man3/PEM_read.3", @@ -19726,6 +22983,7 @@ our %unified_info = ( "doc/man/man3/PKCS12_SAFEBAG_create_cert.3", "doc/man/man3/PKCS12_SAFEBAG_get0_attrs.3", "doc/man/man3/PKCS12_SAFEBAG_get1_cert.3", + "doc/man/man3/PKCS12_SAFEBAG_set0_attrs.3", "doc/man/man3/PKCS12_add1_attr_by_NID.3", "doc/man/man3/PKCS12_add_CSPName_asc.3", "doc/man/man3/PKCS12_add_cert.3", @@ -19817,6 +23075,7 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_sess_set_get_cb.3", "doc/man/man3/SSL_CTX_sessions.3", "doc/man/man3/SSL_CTX_set0_CA_list.3", + "doc/man/man3/SSL_CTX_set1_cert_comp_preference.3", "doc/man/man3/SSL_CTX_set1_curves.3", "doc/man/man3/SSL_CTX_set1_sigalgs.3", "doc/man/man3/SSL_CTX_set1_verify_cert_store.3", @@ -19830,6 +23089,7 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_ct_validation_callback.3", "doc/man/man3/SSL_CTX_set_ctlog_list_file.3", "doc/man/man3/SSL_CTX_set_default_passwd_cb.3", + "doc/man/man3/SSL_CTX_set_domain_flags.3", "doc/man/man3/SSL_CTX_set_generate_session_id.3", "doc/man/man3/SSL_CTX_set_info_callback.3", "doc/man/man3/SSL_CTX_set_keylog_callback.3", @@ -19837,6 +23097,7 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_min_proto_version.3", "doc/man/man3/SSL_CTX_set_mode.3", "doc/man/man3/SSL_CTX_set_msg_callback.3", + "doc/man/man3/SSL_CTX_set_new_pending_conn_cb.3", "doc/man/man3/SSL_CTX_set_num_tickets.3", "doc/man/man3/SSL_CTX_set_options.3", "doc/man/man3/SSL_CTX_set_psk_client_callback.3", @@ -19875,6 +23136,7 @@ our %unified_info = ( "doc/man/man3/SSL_SESSION_print.3", "doc/man/man3/SSL_SESSION_set1_id.3", "doc/man/man3/SSL_accept.3", + "doc/man/man3/SSL_accept_stream.3", "doc/man/man3/SSL_alert_type_string.3", "doc/man/man3/SSL_alloc_buffers.3", "doc/man/man3/SSL_check_chain.3", @@ -19884,59 +23146,90 @@ our %unified_info = ( "doc/man/man3/SSL_export_keying_material.3", "doc/man/man3/SSL_extension_supported.3", "doc/man/man3/SSL_free.3", + "doc/man/man3/SSL_get0_connection.3", + "doc/man/man3/SSL_get0_group_name.3", + "doc/man/man3/SSL_get0_peer_rpk.3", "doc/man/man3/SSL_get0_peer_scts.3", + "doc/man/man3/SSL_get1_builtin_sigalgs.3", "doc/man/man3/SSL_get_SSL_CTX.3", "doc/man/man3/SSL_get_all_async_fds.3", "doc/man/man3/SSL_get_certificate.3", "doc/man/man3/SSL_get_ciphers.3", "doc/man/man3/SSL_get_client_random.3", + "doc/man/man3/SSL_get_conn_close_info.3", "doc/man/man3/SSL_get_current_cipher.3", "doc/man/man3/SSL_get_default_timeout.3", "doc/man/man3/SSL_get_error.3", + "doc/man/man3/SSL_get_event_timeout.3", "doc/man/man3/SSL_get_extms_support.3", "doc/man/man3/SSL_get_fd.3", + "doc/man/man3/SSL_get_handshake_rtt.3", "doc/man/man3/SSL_get_peer_cert_chain.3", "doc/man/man3/SSL_get_peer_certificate.3", "doc/man/man3/SSL_get_peer_signature_nid.3", "doc/man/man3/SSL_get_peer_tmp_key.3", "doc/man/man3/SSL_get_psk_identity.3", "doc/man/man3/SSL_get_rbio.3", + "doc/man/man3/SSL_get_rpoll_descriptor.3", "doc/man/man3/SSL_get_session.3", "doc/man/man3/SSL_get_shared_sigalgs.3", + "doc/man/man3/SSL_get_stream_id.3", + "doc/man/man3/SSL_get_stream_read_state.3", + "doc/man/man3/SSL_get_value_uint.3", "doc/man/man3/SSL_get_verify_result.3", "doc/man/man3/SSL_get_version.3", "doc/man/man3/SSL_group_to_name.3", + "doc/man/man3/SSL_handle_events.3", "doc/man/man3/SSL_in_init.3", + "doc/man/man3/SSL_inject_net_dgram.3", "doc/man/man3/SSL_key_update.3", "doc/man/man3/SSL_library_init.3", "doc/man/man3/SSL_load_client_CA_file.3", "doc/man/man3/SSL_new.3", + "doc/man/man3/SSL_new_domain.3", + "doc/man/man3/SSL_new_listener.3", + "doc/man/man3/SSL_new_stream.3", "doc/man/man3/SSL_pending.3", + "doc/man/man3/SSL_poll.3", "doc/man/man3/SSL_read.3", "doc/man/man3/SSL_read_early_data.3", "doc/man/man3/SSL_rstate_string.3", "doc/man/man3/SSL_session_reused.3", "doc/man/man3/SSL_set1_host.3", + "doc/man/man3/SSL_set1_initial_peer_addr.3", + "doc/man/man3/SSL_set1_server_cert_type.3", "doc/man/man3/SSL_set_async_callback.3", "doc/man/man3/SSL_set_bio.3", + "doc/man/man3/SSL_set_blocking_mode.3", "doc/man/man3/SSL_set_connect_state.3", + "doc/man/man3/SSL_set_default_stream_mode.3", "doc/man/man3/SSL_set_fd.3", + "doc/man/man3/SSL_set_incoming_stream_policy.3", + "doc/man/man3/SSL_set_quic_tls_cbs.3", "doc/man/man3/SSL_set_retry_verify.3", "doc/man/man3/SSL_set_session.3", + "doc/man/man3/SSL_set_session_secret_cb.3", "doc/man/man3/SSL_set_shutdown.3", "doc/man/man3/SSL_set_verify_result.3", "doc/man/man3/SSL_shutdown.3", "doc/man/man3/SSL_state_string.3", + "doc/man/man3/SSL_stream_conclude.3", + "doc/man/man3/SSL_stream_reset.3", "doc/man/man3/SSL_want.3", "doc/man/man3/SSL_write.3", "doc/man/man3/TS_RESP_CTX_new.3", - "doc/man/man3/TS_VERIFY_CTX_set_certs.3", + "doc/man/man3/TS_VERIFY_CTX.3", "doc/man/man3/UI_STRING.3", "doc/man/man3/UI_UTIL_read_pw.3", "doc/man/man3/UI_create_method.3", "doc/man/man3/UI_new.3", "doc/man/man3/X509V3_get_d2i.3", "doc/man/man3/X509V3_set_ctx.3", + "doc/man/man3/X509_ACERT_add1_attr.3", + "doc/man/man3/X509_ACERT_add_attr_nconf.3", + "doc/man/man3/X509_ACERT_get0_holder_baseCertId.3", + "doc/man/man3/X509_ACERT_get_attr.3", + "doc/man/man3/X509_ACERT_print_ex.3", "doc/man/man3/X509_ALGOR_dup.3", "doc/man/man3/X509_ATTRIBUTE.3", "doc/man/man3/X509_CRL_get0_by_serial.3", @@ -19953,6 +23246,7 @@ our %unified_info = ( "doc/man/man3/X509_REQ_get_attr.3", "doc/man/man3/X509_REQ_get_extensions.3", "doc/man/man3/X509_SIG_get0.3", + "doc/man/man3/X509_STORE_CTX_get_by_subject.3", "doc/man/man3/X509_STORE_CTX_get_error.3", "doc/man/man3/X509_STORE_CTX_new.3", "doc/man/man3/X509_STORE_CTX_set_verify_cb.3", @@ -19975,6 +23269,7 @@ our %unified_info = ( "doc/man/man3/X509_get0_notBefore.3", "doc/man/man3/X509_get0_signature.3", "doc/man/man3/X509_get0_uids.3", + "doc/man/man3/X509_get_default_cert_file.3", "doc/man/man3/X509_get_extension_flags.3", "doc/man/man3/X509_get_pubkey.3", "doc/man/man3/X509_get_serialNumber.3", @@ -20020,12 +23315,15 @@ our %unified_info = ( "doc/man/man7/EVP_CIPHER-RC5.7", "doc/man/man7/EVP_CIPHER-SEED.7", "doc/man/man7/EVP_CIPHER-SM4.7", + "doc/man/man7/EVP_KDF-ARGON2.7", "doc/man/man7/EVP_KDF-HKDF.7", + "doc/man/man7/EVP_KDF-HMAC-DRBG.7", "doc/man/man7/EVP_KDF-KB.7", "doc/man/man7/EVP_KDF-KRB5KDF.7", "doc/man/man7/EVP_KDF-PBKDF1.7", "doc/man/man7/EVP_KDF-PBKDF2.7", "doc/man/man7/EVP_KDF-PKCS12KDF.7", + "doc/man/man7/EVP_KDF-PVKKDF.7", "doc/man/man7/EVP_KDF-SCRYPT.7", "doc/man/man7/EVP_KDF-SS.7", "doc/man/man7/EVP_KDF-SSHKDF.7", @@ -20034,7 +23332,10 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-X942-ASN1.7", "doc/man/man7/EVP_KDF-X942-CONCAT.7", "doc/man/man7/EVP_KDF-X963.7", + "doc/man/man7/EVP_KEM-EC.7", + "doc/man/man7/EVP_KEM-ML-KEM.7", "doc/man/man7/EVP_KEM-RSA.7", + "doc/man/man7/EVP_KEM-X25519.7", "doc/man/man7/EVP_KEYEXCH-DH.7", "doc/man/man7/EVP_KEYEXCH-ECDH.7", "doc/man/man7/EVP_KEYEXCH-X25519.7", @@ -20046,6 +23347,7 @@ our %unified_info = ( "doc/man/man7/EVP_MAC-Poly1305.7", "doc/man/man7/EVP_MAC-Siphash.7", "doc/man/man7/EVP_MD-BLAKE2.7", + "doc/man/man7/EVP_MD-KECCAK.7", "doc/man/man7/EVP_MD-MD2.7", "doc/man/man7/EVP_MD-MD4.7", "doc/man/man7/EVP_MD-MD5-SHA1.7", @@ -20065,12 +23367,17 @@ our %unified_info = ( "doc/man/man7/EVP_PKEY-EC.7", "doc/man/man7/EVP_PKEY-FFC.7", "doc/man/man7/EVP_PKEY-HMAC.7", + "doc/man/man7/EVP_PKEY-ML-DSA.7", + "doc/man/man7/EVP_PKEY-ML-KEM.7", "doc/man/man7/EVP_PKEY-RSA.7", + "doc/man/man7/EVP_PKEY-SLH-DSA.7", "doc/man/man7/EVP_PKEY-SM2.7", "doc/man/man7/EVP_PKEY-X25519.7", + "doc/man/man7/EVP_RAND-CRNG-TEST.7", "doc/man/man7/EVP_RAND-CTR-DRBG.7", "doc/man/man7/EVP_RAND-HASH-DRBG.7", "doc/man/man7/EVP_RAND-HMAC-DRBG.7", + "doc/man/man7/EVP_RAND-JITTER.7", "doc/man/man7/EVP_RAND-SEED-SRC.7", "doc/man/man7/EVP_RAND-TEST-RAND.7", "doc/man/man7/EVP_RAND.7", @@ -20078,17 +23385,19 @@ our %unified_info = ( "doc/man/man7/EVP_SIGNATURE-ECDSA.7", "doc/man/man7/EVP_SIGNATURE-ED25519.7", "doc/man/man7/EVP_SIGNATURE-HMAC.7", + "doc/man/man7/EVP_SIGNATURE-ML-DSA.7", "doc/man/man7/EVP_SIGNATURE-RSA.7", + "doc/man/man7/EVP_SIGNATURE-SLH-DSA.7", "doc/man/man7/OSSL_PROVIDER-FIPS.7", "doc/man/man7/OSSL_PROVIDER-base.7", "doc/man/man7/OSSL_PROVIDER-default.7", "doc/man/man7/OSSL_PROVIDER-legacy.7", "doc/man/man7/OSSL_PROVIDER-null.7", + "doc/man/man7/OSSL_STORE-winstore.7", "doc/man/man7/RAND.7", "doc/man/man7/RSA-PSS.7", "doc/man/man7/X25519.7", "doc/man/man7/bio.7", - "doc/man/man7/crypto.7", "doc/man/man7/ct.7", "doc/man/man7/des_modes.7", "doc/man/man7/evp.7", @@ -20099,14 +23408,31 @@ our %unified_info = ( "doc/man/man7/life_cycle-mac.7", "doc/man/man7/life_cycle-pkey.7", "doc/man/man7/life_cycle-rand.7", - "doc/man/man7/migration_guide.7", "doc/man/man7/openssl-core.h.7", "doc/man/man7/openssl-core_dispatch.h.7", "doc/man/man7/openssl-core_names.h.7", "doc/man/man7/openssl-env.7", "doc/man/man7/openssl-glossary.7", + "doc/man/man7/openssl-qlog.7", + "doc/man/man7/openssl-quic-concurrency.7", + "doc/man/man7/openssl-quic.7", "doc/man/man7/openssl-threads.7", "doc/man/man7/openssl_user_macros.7", + "doc/man/man7/ossl-guide-introduction.7", + "doc/man/man7/ossl-guide-libcrypto-introduction.7", + "doc/man/man7/ossl-guide-libraries-introduction.7", + "doc/man/man7/ossl-guide-libssl-introduction.7", + "doc/man/man7/ossl-guide-migration.7", + "doc/man/man7/ossl-guide-quic-client-block.7", + "doc/man/man7/ossl-guide-quic-client-non-block.7", + "doc/man/man7/ossl-guide-quic-introduction.7", + "doc/man/man7/ossl-guide-quic-multi-stream.7", + "doc/man/man7/ossl-guide-quic-server-block.7", + "doc/man/man7/ossl-guide-quic-server-non-block.7", + "doc/man/man7/ossl-guide-tls-client-block.7", + "doc/man/man7/ossl-guide-tls-client-non-block.7", + "doc/man/man7/ossl-guide-tls-introduction.7", + "doc/man/man7/ossl-guide-tls-server-block.7", "doc/man/man7/ossl_store-file.7", "doc/man/man7/ossl_store.7", "doc/man/man7/passphrase-encoding.7", @@ -20125,10 +23451,10 @@ our %unified_info = ( "doc/man/man7/provider-object.7", "doc/man/man7/provider-rand.7", "doc/man/man7/provider-signature.7", + "doc/man/man7/provider-skeymgmt.7", "doc/man/man7/provider-storemgmt.7", "doc/man/man7/provider.7", "doc/man/man7/proxy-certificates.7", - "doc/man/man7/ssl.7", "doc/man/man7/x509.7" ] }, @@ -20140,6 +23466,7 @@ our %unified_info = ( ], "programs" => [ "apps/openssl", + "fuzz/acert-test", "fuzz/asn1-test", "fuzz/asn1parse-test", "fuzz/bignum-test", @@ -20150,7 +23477,24 @@ our %unified_info = ( "fuzz/conf-test", "fuzz/crl-test", "fuzz/ct-test", + "fuzz/decoder-test", + "fuzz/dtlsclient-test", + "fuzz/dtlsserver-test", + "fuzz/hashtable-test", + "fuzz/ml-dsa-test", + "fuzz/ml-kem-test", + "fuzz/pem-test", + "fuzz/provider-test", + "fuzz/punycode-test", + "fuzz/quic-client-test", + "fuzz/quic-lcidm-test", + "fuzz/quic-rcidm-test", + "fuzz/quic-server-test", + "fuzz/quic-srtm-test", "fuzz/server-test", + "fuzz/slh-dsa-test", + "fuzz/smime-test", + "fuzz/v3name-test", "fuzz/x509-test", "test/aborttest", "test/acvp_test", @@ -20168,21 +23512,28 @@ our %unified_info = ( "test/asynctest", "test/bad_dtls_test", "test/bftest", + "test/bio_addr_test", + "test/bio_base64_test", "test/bio_callback_test", "test/bio_core_test", + "test/bio_dgram_test", "test/bio_enc_test", "test/bio_memleak_test", + "test/bio_meth_test", "test/bio_prefix_text", "test/bio_pw_callback_test", "test/bio_readbuffer_test", + "test/bio_tfo_test", "test/bioprinttest", "test/bn_internal_test", "test/bntest", + "test/build_wincrypt_test", "test/buildtest_c_aes", "test/buildtest_c_async", "test/buildtest_c_blowfish", "test/buildtest_c_bn", "test/buildtest_c_buffer", + "test/buildtest_c_byteorder", "test/buildtest_c_camellia", "test/buildtest_c_cast", "test/buildtest_c_cmac", @@ -20191,7 +23542,6 @@ our %unified_info = ( "test/buildtest_c_conftypes", "test/buildtest_c_core", "test/buildtest_c_core_dispatch", - "test/buildtest_c_core_names", "test/buildtest_c_core_object", "test/buildtest_c_cryptoerr_legacy", "test/buildtest_c_decoder", @@ -20200,6 +23550,7 @@ our %unified_info = ( "test/buildtest_c_dsa", "test/buildtest_c_dtls1", "test/buildtest_c_e_os2", + "test/buildtest_c_e_ostime", "test/buildtest_c_ebcdic", "test/buildtest_c_ec", "test/buildtest_c_ecdh", @@ -20209,13 +23560,16 @@ our %unified_info = ( "test/buildtest_c_evp", "test/buildtest_c_fips_names", "test/buildtest_c_hmac", + "test/buildtest_c_hpke", "test/buildtest_c_http", "test/buildtest_c_idea", + "test/buildtest_c_indicator", "test/buildtest_c_kdf", "test/buildtest_c_macros", "test/buildtest_c_md4", "test/buildtest_c_md5", "test/buildtest_c_mdc2", + "test/buildtest_c_ml_kem", "test/buildtest_c_modes", "test/buildtest_c_obj_mac", "test/buildtest_c_objects", @@ -20226,6 +23580,7 @@ our %unified_info = ( "test/buildtest_c_pem2", "test/buildtest_c_prov_ssl", "test/buildtest_c_provider", + "test/buildtest_c_quic", "test/buildtest_c_rand", "test/buildtest_c_rc2", "test/buildtest_c_rc4", @@ -20240,11 +23595,14 @@ our %unified_info = ( "test/buildtest_c_stack", "test/buildtest_c_store", "test/buildtest_c_symhacks", + "test/buildtest_c_thread", "test/buildtest_c_tls1", "test/buildtest_c_ts", "test/buildtest_c_txt_db", "test/buildtest_c_types", "test/buildtest_c_whrlpool", + "test/byteorder_test", + "test/ca_internals_test", "test/casttest", "test/chacha_internal_test", "test/cipher_overhead_test", @@ -20273,6 +23631,7 @@ our %unified_info = ( "test/curve448_internal_test", "test/d2i_test", "test/danetest", + "test/decoder_propq_test", "test/defltfips_test", "test/destest", "test/dhtest", @@ -20297,9 +23656,12 @@ our %unified_info = ( "test/evp_kdf_test", "test/evp_libctx_test", "test/evp_pkey_ctx_new_from_name", + "test/evp_pkey_dhkem_test", "test/evp_pkey_dparams_test", "test/evp_pkey_provided_test", + "test/evp_skey_test", "test/evp_test", + "test/evp_xof_test", "test/exdatatest", "test/exptest", "test/ext_internal_test", @@ -20309,21 +23671,29 @@ our %unified_info = ( "test/gmdifftest", "test/hexstr_test", "test/hmactest", + "test/hpke_test", "test/http_test", "test/ideatest", "test/igetest", + "test/json_test", "test/keymgmt_internal_test", "test/lhash_test", + "test/list_test", "test/localetest", "test/mdc2_internal_test", "test/mdc2test", + "test/membio_test", "test/memleaktest", + "test/ml_dsa_test", + "test/ml_kem_evp_extra_test", + "test/ml_kem_internal_test", "test/modes_internal_test", "test/namemap_internal_test", "test/nodefltctxtest", "test/ocspapitest", "test/ossl_store_test", "test/packettest", + "test/pairwise_fail_test", "test/param_build_test", "test/params_api_test", "test/params_conversion_test", @@ -20332,36 +23702,65 @@ our %unified_info = ( "test/pbetest", "test/pem_read_depr_test", "test/pemtest", + "test/pkcs12_api_test", "test/pkcs12_format_test", "test/pkcs7_test", "test/pkey_meth_kdf_test", "test/pkey_meth_test", "test/poly1305_internal_test", + "test/priority_queue_test", "test/property_test", "test/prov_config_test", "test/provfetchtest", + "test/provider_default_search_path_test", "test/provider_fallback_test", "test/provider_internal_test", "test/provider_pkey_test", "test/provider_status_test", "test/provider_test", "test/punycode_test", + "test/quic_ackm_test", + "test/quic_cc_test", + "test/quic_cfq_test", + "test/quic_client_test", + "test/quic_fc_test", + "test/quic_fifd_test", + "test/quic_lcidm_test", + "test/quic_multistream_test", + "test/quic_newcid_test", + "test/quic_qlog_test", + "test/quic_radix_test", + "test/quic_rcidm_test", + "test/quic_record_test", + "test/quic_srt_gen_test", + "test/quic_srtm_test", + "test/quic_stream_test", + "test/quic_tserver_test", + "test/quic_txp_test", + "test/quic_txpim_test", + "test/quic_wire_test", + "test/quicapitest", + "test/quicfaultstest", "test/rand_status_test", "test/rand_test", "test/rc2test", "test/rc4test", "test/rc5test", - "test/rdrand_sanitytest", + "test/rdcpu_sanitytest", "test/recordlentest", + "test/rpktest", "test/rsa_complex", "test/rsa_mp_test", "test/rsa_sp800_56b_test", "test/rsa_test", + "test/rsa_x931_test", + "test/safe_math_test", "test/sanitytest", "test/secmemtest", "test/servername_test", "test/sha_test", "test/siphash_internal_test", + "test/slh_dsa_test", "test/sm2_internal_test", "test/sm3_internal_test", "test/sm4_internal_test", @@ -20369,6 +23768,7 @@ our %unified_info = ( "test/srptest", "test/ssl_cert_table_internal_test", "test/ssl_ctx_test", + "test/ssl_handshake_rtt_test", "test/ssl_old_test", "test/ssl_test", "test/ssl_test_ctx_test", @@ -20376,13 +23776,17 @@ our %unified_info = ( "test/sslbuffertest", "test/sslcorrupttest", "test/stack_test", + "test/strtoultest", "test/sysdefaulttest", "test/test_test", + "test/threadpool_test", "test/threadstest", "test/threadstest_fips", "test/time_offset_test", + "test/time_test", "test/tls13ccstest", "test/tls13encryptiontest", + "test/tls13groupselection_test", "test/trace_api_test", "test/uitest", "test/upcallstest", @@ -20392,9 +23796,13 @@ our %unified_info = ( "test/verify_extra_test", "test/versions", "test/wpackettest", + "test/x509_acert_test", "test/x509_check_cert_pkey_test", "test/x509_dup_cert_test", "test/x509_internal_test", + "test/x509_load_cert_file_test", + "test/x509_req_test", + "test/x509_test", "test/x509_time_test", "test/x509aux" ], @@ -20410,6 +23818,33 @@ our %unified_info = ( "apps/CA.pl" => [ "apps/CA.pl.in" ], + "apps/ca_internals_test-bin-ca.o" => [ + "apps/ca.c" + ], + "apps/lib/ca_internals_test-bin-app_libctx.o" => [ + "apps/lib/app_libctx.c" + ], + "apps/lib/ca_internals_test-bin-app_provider.o" => [ + "apps/lib/app_provider.c" + ], + "apps/lib/ca_internals_test-bin-app_rand.o" => [ + "apps/lib/app_rand.c" + ], + "apps/lib/ca_internals_test-bin-app_x509.o" => [ + "apps/lib/app_x509.c" + ], + "apps/lib/ca_internals_test-bin-apps.o" => [ + "apps/lib/apps.c" + ], + "apps/lib/ca_internals_test-bin-apps_ui.o" => [ + "apps/lib/apps_ui.c" + ], + "apps/lib/ca_internals_test-bin-engine.o" => [ + "apps/lib/engine.c" + ], + "apps/lib/ca_internals_test-bin-fmt.o" => [ + "apps/lib/fmt.c" + ], "apps/lib/cmp_client_test-bin-cmp_mock_srv.o" => [ "apps/lib/cmp_mock_srv.c" ], @@ -20431,6 +23866,9 @@ our %unified_info = ( "apps/lib/libapps-lib-apps.o" => [ "apps/lib/apps.c" ], + "apps/lib/libapps-lib-apps_opt_printf.o" => [ + "apps/lib/apps_opt_printf.c" + ], "apps/lib/libapps-lib-apps_ui.o" => [ "apps/lib/apps_ui.c" ], @@ -20449,6 +23887,9 @@ our %unified_info = ( "apps/lib/libapps-lib-http_server.o" => [ "apps/lib/http_server.c" ], + "apps/lib/libapps-lib-log.o" => [ + "apps/lib/log.c" + ], "apps/lib/libapps-lib-names.o" => [ "apps/lib/names.c" ], @@ -20480,12 +23921,14 @@ our %unified_info = ( "apps/lib/libapps-lib-app_rand.o", "apps/lib/libapps-lib-app_x509.o", "apps/lib/libapps-lib-apps.o", + "apps/lib/libapps-lib-apps_opt_printf.o", "apps/lib/libapps-lib-apps_ui.o", "apps/lib/libapps-lib-columns.o", "apps/lib/libapps-lib-engine.o", "apps/lib/libapps-lib-engine_loader.o", "apps/lib/libapps-lib-fmt.o", "apps/lib/libapps-lib-http_server.o", + "apps/lib/libapps-lib-log.o", "apps/lib/libapps-lib-names.o", "apps/lib/libapps-lib-opt.o", "apps/lib/libapps-lib-s_cb.o", @@ -20539,6 +23982,7 @@ our %unified_info = ( "apps/openssl-bin-s_server.o", "apps/openssl-bin-s_time.o", "apps/openssl-bin-sess_id.o", + "apps/openssl-bin-skeyutl.o", "apps/openssl-bin-smime.o", "apps/openssl-bin-speed.o", "apps/openssl-bin-spkac.o", @@ -20684,6 +24128,9 @@ our %unified_info = ( "apps/openssl-bin-sess_id.o" => [ "apps/sess_id.c" ], + "apps/openssl-bin-skeyutl.o" => [ + "apps/skeyutl.c" + ], "apps/openssl-bin-smime.o" => [ "apps/smime.c" ], @@ -20759,6 +24206,12 @@ our %unified_info = ( "crypto/aria/libcrypto-lib-aria.o" => [ "crypto/aria/aria.c" ], + "crypto/asn1/asn1_time_test-bin-a_time.o" => [ + "crypto/asn1/a_time.c" + ], + "crypto/asn1/ca_internals_test-bin-a_time.o" => [ + "crypto/asn1/a_time.c" + ], "crypto/asn1/libcrypto-lib-a_bitstr.o" => [ "crypto/asn1/a_bitstr.c" ], @@ -20951,6 +24404,9 @@ our %unified_info = ( "crypto/asn1/libcrypto-lib-x_val.o" => [ "crypto/asn1/x_val.c" ], + "crypto/asn1_time_test-bin-ctype.o" => [ + "crypto/ctype.c" + ], "crypto/async/arch/libcrypto-lib-async_null.o" => [ "crypto/async/arch/async_null.c" ], @@ -21044,6 +24500,9 @@ our %unified_info = ( "crypto/bio/libcrypto-lib-bss_dgram.o" => [ "crypto/bio/bss_dgram.c" ], + "crypto/bio/libcrypto-lib-bss_dgram_pair.o" => [ + "crypto/bio/bss_dgram_pair.c" + ], "crypto/bio/libcrypto-lib-bss_fd.o" => [ "crypto/bio/bss_fd.c" ], @@ -21275,6 +24734,9 @@ our %unified_info = ( "crypto/buffer/libfips-lib-buffer.o" => [ "crypto/buffer/buffer.c" ], + "crypto/ca_internals_test-bin-ctype.o" => [ + "crypto/ctype.c" + ], "crypto/camellia/libcrypto-lib-cmll-x86.o" => [ "crypto/camellia/cmll-x86.S" ], @@ -21326,6 +24788,9 @@ our %unified_info = ( "crypto/cmp/libcrypto-lib-cmp_err.o" => [ "crypto/cmp/cmp_err.c" ], + "crypto/cmp/libcrypto-lib-cmp_genm.o" => [ + "crypto/cmp/cmp_genm.c" + ], "crypto/cmp/libcrypto-lib-cmp_hdr.o" => [ "crypto/cmp/cmp_hdr.c" ], @@ -22013,9 +25478,15 @@ our %unified_info = ( "crypto/err/libcrypto-lib-err_blocks.o" => [ "crypto/err/err_blocks.c" ], + "crypto/err/libcrypto-lib-err_mark.o" => [ + "crypto/err/err_mark.c" + ], "crypto/err/libcrypto-lib-err_prn.o" => [ "crypto/err/err_prn.c" ], + "crypto/err/libcrypto-lib-err_save.o" => [ + "crypto/err/err_save.c" + ], "crypto/ess/libcrypto-lib-ess_asn1.o" => [ "crypto/ess/ess_asn1.c" ], @@ -22262,9 +25733,15 @@ our %unified_info = ( "crypto/evp/libcrypto-lib-pmeth_lib.o" => [ "crypto/evp/pmeth_lib.c" ], + "crypto/evp/libcrypto-lib-s_lib.o" => [ + "crypto/evp/s_lib.c" + ], "crypto/evp/libcrypto-lib-signature.o" => [ "crypto/evp/signature.c" ], + "crypto/evp/libcrypto-lib-skeymgmt_meth.o" => [ + "crypto/evp/skeymgmt_meth.c" + ], "crypto/evp/libfips-lib-asymcipher.o" => [ "crypto/evp/asymcipher.c" ], @@ -22310,9 +25787,6 @@ our %unified_info = ( "crypto/evp/libfips-lib-keymgmt_meth.o" => [ "crypto/evp/keymgmt_meth.c" ], - "crypto/evp/libfips-lib-m_sigver.o" => [ - "crypto/evp/m_sigver.c" - ], "crypto/evp/libfips-lib-mac_lib.o" => [ "crypto/evp/mac_lib.c" ], @@ -22331,9 +25805,15 @@ our %unified_info = ( "crypto/evp/libfips-lib-pmeth_lib.o" => [ "crypto/evp/pmeth_lib.c" ], + "crypto/evp/libfips-lib-s_lib.o" => [ + "crypto/evp/s_lib.c" + ], "crypto/evp/libfips-lib-signature.o" => [ "crypto/evp/signature.c" ], + "crypto/evp/libfips-lib-skeymgmt_meth.o" => [ + "crypto/evp/skeymgmt_meth.c" + ], "crypto/ffc/libcrypto-lib-ffc_backend.o" => [ "crypto/ffc/ffc_backend.c" ], @@ -22376,12 +25856,30 @@ our %unified_info = ( "crypto/ffc/libfips-lib-ffc_params_validate.o" => [ "crypto/ffc/ffc_params_validate.c" ], + "crypto/hashtable/libcrypto-lib-hashfunc.o" => [ + "crypto/hashtable/hashfunc.c" + ], + "crypto/hashtable/libcrypto-lib-hashtable.o" => [ + "crypto/hashtable/hashtable.c" + ], + "crypto/hashtable/libfips-lib-hashfunc.o" => [ + "crypto/hashtable/hashfunc.c" + ], + "crypto/hashtable/libfips-lib-hashtable.o" => [ + "crypto/hashtable/hashtable.c" + ], "crypto/hmac/libcrypto-lib-hmac.o" => [ "crypto/hmac/hmac.c" ], "crypto/hmac/libfips-lib-hmac.o" => [ "crypto/hmac/hmac.c" ], + "crypto/hpke/libcrypto-lib-hpke.o" => [ + "crypto/hpke/hpke.c" + ], + "crypto/hpke/libcrypto-lib-hpke_util.o" => [ + "crypto/hpke/hpke_util.c" + ], "crypto/http/libcrypto-lib-http_client.o" => [ "crypto/http/http_client.c" ], @@ -22424,6 +25922,9 @@ our %unified_info = ( "crypto/libcrypto-lib-bsearch.o" => [ "crypto/bsearch.c" ], + "crypto/libcrypto-lib-comp_methods.o" => [ + "crypto/comp_methods.c" + ], "crypto/libcrypto-lib-context.o" => [ "crypto/context.c" ], @@ -22451,9 +25952,15 @@ our %unified_info = ( "crypto/libcrypto-lib-cversion.o" => [ "crypto/cversion.c" ], + "crypto/libcrypto-lib-defaults.o" => [ + "crypto/defaults.c" + ], "crypto/libcrypto-lib-der_writer.o" => [ "crypto/der_writer.c" ], + "crypto/libcrypto-lib-deterministic_nonce.o" => [ + "crypto/deterministic_nonce.c" + ], "crypto/libcrypto-lib-ebcdic.o" => [ "crypto/ebcdic.c" ], @@ -22463,6 +25970,9 @@ our %unified_info = ( "crypto/libcrypto-lib-getenv.o" => [ "crypto/getenv.c" ], + "crypto/libcrypto-lib-indicator_core.o" => [ + "crypto/indicator_core.c" + ], "crypto/libcrypto-lib-info.o" => [ "crypto/info.c" ], @@ -22511,6 +26021,9 @@ our %unified_info = ( "crypto/libcrypto-lib-params_from_text.o" => [ "crypto/params_from_text.c" ], + "crypto/libcrypto-lib-params_idx.o" => [ + "crypto/params_idx.c" + ], "crypto/libcrypto-lib-passphrase.o" => [ "crypto/passphrase.c" ], @@ -22532,12 +26045,21 @@ our %unified_info = ( "crypto/libcrypto-lib-punycode.o" => [ "crypto/punycode.c" ], + "crypto/libcrypto-lib-quic_vlint.o" => [ + "crypto/quic_vlint.c" + ], "crypto/libcrypto-lib-self_test_core.o" => [ "crypto/self_test_core.c" ], + "crypto/libcrypto-lib-sleep.o" => [ + "crypto/sleep.c" + ], "crypto/libcrypto-lib-sparse_array.o" => [ "crypto/sparse_array.c" ], + "crypto/libcrypto-lib-ssl_err.o" => [ + "crypto/ssl_err.c" + ], "crypto/libcrypto-lib-threads_lib.o" => [ "crypto/threads_lib.c" ], @@ -22550,6 +26072,9 @@ our %unified_info = ( "crypto/libcrypto-lib-threads_win.o" => [ "crypto/threads_win.c" ], + "crypto/libcrypto-lib-time.o" => [ + "crypto/time.c" + ], "crypto/libcrypto-lib-trace.o" => [ "crypto/trace.c" ], @@ -22616,6 +26141,9 @@ our %unified_info = ( "crypto/libfips-lib-params_from_text.o" => [ "crypto/params_from_text.c" ], + "crypto/libfips-lib-params_idx.o" => [ + "crypto/params_idx.c" + ], "crypto/libfips-lib-provider_core.o" => [ "crypto/provider_core.c" ], @@ -22640,6 +26168,9 @@ our %unified_info = ( "crypto/libfips-lib-threads_win.o" => [ "crypto/threads_win.c" ], + "crypto/libfips-lib-time.o" => [ + "crypto/time.c" + ], "crypto/libfips-lib-x86cpuid.o" => [ "crypto/x86cpuid.S" ], @@ -22667,6 +26198,60 @@ our %unified_info = ( "crypto/mdc2/libcrypto-lib-mdc2dgst.o" => [ "crypto/mdc2/mdc2dgst.c" ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_encoders.o" => [ + "crypto/ml_dsa/ml_dsa_encoders.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key.o" => [ + "crypto/ml_dsa/ml_dsa_key.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key_compress.o" => [ + "crypto/ml_dsa/ml_dsa_key_compress.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_matrix.o" => [ + "crypto/ml_dsa/ml_dsa_matrix.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_ntt.o" => [ + "crypto/ml_dsa/ml_dsa_ntt.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_params.o" => [ + "crypto/ml_dsa/ml_dsa_params.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sample.o" => [ + "crypto/ml_dsa/ml_dsa_sample.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sign.o" => [ + "crypto/ml_dsa/ml_dsa_sign.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_encoders.o" => [ + "crypto/ml_dsa/ml_dsa_encoders.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_key.o" => [ + "crypto/ml_dsa/ml_dsa_key.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_key_compress.o" => [ + "crypto/ml_dsa/ml_dsa_key_compress.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_matrix.o" => [ + "crypto/ml_dsa/ml_dsa_matrix.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_ntt.o" => [ + "crypto/ml_dsa/ml_dsa_ntt.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_params.o" => [ + "crypto/ml_dsa/ml_dsa_params.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_sample.o" => [ + "crypto/ml_dsa/ml_dsa_sample.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_sign.o" => [ + "crypto/ml_dsa/ml_dsa_sign.c" + ], + "crypto/ml_kem/libcrypto-lib-ml_kem.o" => [ + "crypto/ml_kem/ml_kem.c" + ], + "crypto/ml_kem/libfips-lib-ml_kem.o" => [ + "crypto/ml_kem/ml_kem.c" + ], "crypto/modes/libcrypto-lib-cbc128.o" => [ "crypto/modes/cbc128.c" ], @@ -22703,6 +26288,9 @@ our %unified_info = ( "crypto/modes/libcrypto-lib-xts128.o" => [ "crypto/modes/xts128.c" ], + "crypto/modes/libcrypto-lib-xts128gb.o" => [ + "crypto/modes/xts128gb.c" + ], "crypto/modes/libfips-lib-cbc128.o" => [ "crypto/modes/cbc128.c" ], @@ -22730,6 +26318,9 @@ our %unified_info = ( "crypto/modes/libfips-lib-xts128.o" => [ "crypto/modes/xts128.c" ], + "crypto/modes/libfips-lib-xts128gb.o" => [ + "crypto/modes/xts128gb.c" + ], "crypto/objects/libcrypto-lib-o_names.o" => [ "crypto/objects/o_names.c" ], @@ -22775,6 +26366,9 @@ our %unified_info = ( "crypto/ocsp/libcrypto-lib-v3_ocsp.o" => [ "crypto/ocsp/v3_ocsp.c" ], + "crypto/packettest-bin-quic_vlint.o" => [ + "crypto/quic_vlint.c" + ], "crypto/pem/libcrypto-lib-pem_all.o" => [ "crypto/pem/pem_all.c" ], @@ -22937,6 +26531,9 @@ our %unified_info = ( "crypto/rand/libcrypto-lib-rand_pool.o" => [ "crypto/rand/rand_pool.c" ], + "crypto/rand/libcrypto-lib-rand_uniform.o" => [ + "crypto/rand/rand_uniform.c" + ], "crypto/rand/libcrypto-lib-randfile.o" => [ "crypto/rand/randfile.c" ], @@ -23168,6 +26765,66 @@ our %unified_info = ( "crypto/siphash/libcrypto-lib-siphash.o" => [ "crypto/siphash/siphash.c" ], + "crypto/slh_dsa/libcrypto-lib-slh_adrs.o" => [ + "crypto/slh_dsa/slh_adrs.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_dsa.o" => [ + "crypto/slh_dsa/slh_dsa.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_dsa_hash_ctx.o" => [ + "crypto/slh_dsa/slh_dsa_hash_ctx.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_dsa_key.o" => [ + "crypto/slh_dsa/slh_dsa_key.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_fors.o" => [ + "crypto/slh_dsa/slh_fors.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_hash.o" => [ + "crypto/slh_dsa/slh_hash.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_hypertree.o" => [ + "crypto/slh_dsa/slh_hypertree.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_params.o" => [ + "crypto/slh_dsa/slh_params.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_wots.o" => [ + "crypto/slh_dsa/slh_wots.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_xmss.o" => [ + "crypto/slh_dsa/slh_xmss.c" + ], + "crypto/slh_dsa/libfips-lib-slh_adrs.o" => [ + "crypto/slh_dsa/slh_adrs.c" + ], + "crypto/slh_dsa/libfips-lib-slh_dsa.o" => [ + "crypto/slh_dsa/slh_dsa.c" + ], + "crypto/slh_dsa/libfips-lib-slh_dsa_hash_ctx.o" => [ + "crypto/slh_dsa/slh_dsa_hash_ctx.c" + ], + "crypto/slh_dsa/libfips-lib-slh_dsa_key.o" => [ + "crypto/slh_dsa/slh_dsa_key.c" + ], + "crypto/slh_dsa/libfips-lib-slh_fors.o" => [ + "crypto/slh_dsa/slh_fors.c" + ], + "crypto/slh_dsa/libfips-lib-slh_hash.o" => [ + "crypto/slh_dsa/slh_hash.c" + ], + "crypto/slh_dsa/libfips-lib-slh_hypertree.o" => [ + "crypto/slh_dsa/slh_hypertree.c" + ], + "crypto/slh_dsa/libfips-lib-slh_params.o" => [ + "crypto/slh_dsa/slh_params.c" + ], + "crypto/slh_dsa/libfips-lib-slh_wots.o" => [ + "crypto/slh_dsa/slh_wots.c" + ], + "crypto/slh_dsa/libfips-lib-slh_xmss.o" => [ + "crypto/slh_dsa/slh_xmss.c" + ], "crypto/sm2/libcrypto-lib-sm2_crypt.o" => [ "crypto/sm2/sm2_crypt.c" ], @@ -23222,6 +26879,42 @@ our %unified_info = ( "crypto/store/libcrypto-lib-store_strings.o" => [ "crypto/store/store_strings.c" ], + "crypto/thread/arch/libcrypto-lib-thread_none.o" => [ + "crypto/thread/arch/thread_none.c" + ], + "crypto/thread/arch/libcrypto-lib-thread_posix.o" => [ + "crypto/thread/arch/thread_posix.c" + ], + "crypto/thread/arch/libcrypto-lib-thread_win.o" => [ + "crypto/thread/arch/thread_win.c" + ], + "crypto/thread/arch/libfips-lib-thread_none.o" => [ + "crypto/thread/arch/thread_none.c" + ], + "crypto/thread/arch/libfips-lib-thread_posix.o" => [ + "crypto/thread/arch/thread_posix.c" + ], + "crypto/thread/arch/libfips-lib-thread_win.o" => [ + "crypto/thread/arch/thread_win.c" + ], + "crypto/thread/libcrypto-lib-api.o" => [ + "crypto/thread/api.c" + ], + "crypto/thread/libcrypto-lib-arch.o" => [ + "crypto/thread/arch.c" + ], + "crypto/thread/libcrypto-lib-internal.o" => [ + "crypto/thread/internal.c" + ], + "crypto/thread/libfips-lib-api.o" => [ + "crypto/thread/api.c" + ], + "crypto/thread/libfips-lib-arch.o" => [ + "crypto/thread/arch.c" + ], + "crypto/thread/libfips-lib-internal.o" => [ + "crypto/thread/internal.c" + ], "crypto/ts/libcrypto-lib-ts_asn1.o" => [ "crypto/ts/ts_asn1.c" ], @@ -23309,6 +27002,9 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-pcy_tree.o" => [ "crypto/x509/pcy_tree.c" ], + "crypto/x509/libcrypto-lib-t_acert.o" => [ + "crypto/x509/t_acert.c" + ], "crypto/x509/libcrypto-lib-t_crl.o" => [ "crypto/x509/t_crl.c" ], @@ -23318,6 +27014,12 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-t_x509.o" => [ "crypto/x509/t_x509.c" ], + "crypto/x509/libcrypto-lib-v3_aaa.o" => [ + "crypto/x509/v3_aaa.c" + ], + "crypto/x509/libcrypto-lib-v3_ac_tgt.o" => [ + "crypto/x509/v3_ac_tgt.c" + ], "crypto/x509/libcrypto-lib-v3_addr.o" => [ "crypto/x509/v3_addr.c" ], @@ -23333,6 +27035,21 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_asid.o" => [ "crypto/x509/v3_asid.c" ], + "crypto/x509/libcrypto-lib-v3_attrdesc.o" => [ + "crypto/x509/v3_attrdesc.c" + ], + "crypto/x509/libcrypto-lib-v3_attrmap.o" => [ + "crypto/x509/v3_attrmap.c" + ], + "crypto/x509/libcrypto-lib-v3_audit_id.o" => [ + "crypto/x509/v3_audit_id.c" + ], + "crypto/x509/libcrypto-lib-v3_authattid.o" => [ + "crypto/x509/v3_authattid.c" + ], + "crypto/x509/libcrypto-lib-v3_battcons.o" => [ + "crypto/x509/v3_battcons.c" + ], "crypto/x509/libcrypto-lib-v3_bcons.o" => [ "crypto/x509/v3_bcons.c" ], @@ -23357,15 +27074,24 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_genn.o" => [ "crypto/x509/v3_genn.c" ], + "crypto/x509/libcrypto-lib-v3_group_ac.o" => [ + "crypto/x509/v3_group_ac.c" + ], "crypto/x509/libcrypto-lib-v3_ia5.o" => [ "crypto/x509/v3_ia5.c" ], + "crypto/x509/libcrypto-lib-v3_ind_iss.o" => [ + "crypto/x509/v3_ind_iss.c" + ], "crypto/x509/libcrypto-lib-v3_info.o" => [ "crypto/x509/v3_info.c" ], "crypto/x509/libcrypto-lib-v3_int.o" => [ "crypto/x509/v3_int.c" ], + "crypto/x509/libcrypto-lib-v3_iobo.o" => [ + "crypto/x509/v3_iobo.c" + ], "crypto/x509/libcrypto-lib-v3_ist.o" => [ "crypto/x509/v3_ist.c" ], @@ -23375,6 +27101,12 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_ncons.o" => [ "crypto/x509/v3_ncons.c" ], + "crypto/x509/libcrypto-lib-v3_no_ass.o" => [ + "crypto/x509/v3_no_ass.c" + ], + "crypto/x509/libcrypto-lib-v3_no_rev_avail.o" => [ + "crypto/x509/v3_no_rev_avail.c" + ], "crypto/x509/libcrypto-lib-v3_pci.o" => [ "crypto/x509/v3_pci.c" ], @@ -23396,18 +27128,36 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_purp.o" => [ "crypto/x509/v3_purp.c" ], + "crypto/x509/libcrypto-lib-v3_rolespec.o" => [ + "crypto/x509/v3_rolespec.c" + ], "crypto/x509/libcrypto-lib-v3_san.o" => [ "crypto/x509/v3_san.c" ], + "crypto/x509/libcrypto-lib-v3_sda.o" => [ + "crypto/x509/v3_sda.c" + ], + "crypto/x509/libcrypto-lib-v3_single_use.o" => [ + "crypto/x509/v3_single_use.c" + ], "crypto/x509/libcrypto-lib-v3_skid.o" => [ "crypto/x509/v3_skid.c" ], + "crypto/x509/libcrypto-lib-v3_soa_id.o" => [ + "crypto/x509/v3_soa_id.c" + ], "crypto/x509/libcrypto-lib-v3_sxnet.o" => [ "crypto/x509/v3_sxnet.c" ], + "crypto/x509/libcrypto-lib-v3_timespec.o" => [ + "crypto/x509/v3_timespec.c" + ], "crypto/x509/libcrypto-lib-v3_tlsf.o" => [ "crypto/x509/v3_tlsf.c" ], + "crypto/x509/libcrypto-lib-v3_usernotice.o" => [ + "crypto/x509/v3_usernotice.c" + ], "crypto/x509/libcrypto-lib-v3_utf8.o" => [ "crypto/x509/v3_utf8.c" ], @@ -23417,6 +27167,9 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3err.o" => [ "crypto/x509/v3err.c" ], + "crypto/x509/libcrypto-lib-x509_acert.o" => [ + "crypto/x509/x509_acert.c" + ], "crypto/x509/libcrypto-lib-x509_att.o" => [ "crypto/x509/x509_att.c" ], @@ -23468,6 +27221,9 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x509_vpm.o" => [ "crypto/x509/x509_vpm.c" ], + "crypto/x509/libcrypto-lib-x509aset.o" => [ + "crypto/x509/x509aset.c" + ], "crypto/x509/libcrypto-lib-x509cset.o" => [ "crypto/x509/x509cset.c" ], @@ -23495,6 +27251,9 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x_exten.o" => [ "crypto/x509/x_exten.c" ], + "crypto/x509/libcrypto-lib-x_ietfatt.o" => [ + "crypto/x509/x_ietfatt.c" + ], "crypto/x509/libcrypto-lib-x_name.o" => [ "crypto/x509/x_name.c" ], @@ -23519,6 +27278,16 @@ our %unified_info = ( "engines/libcrypto-lib-e_padlock.o" => [ "engines/e_padlock.c" ], + "fuzz/acert-test" => [ + "fuzz/acert-test-bin-acert.o", + "fuzz/acert-test-bin-test-corpus.o" + ], + "fuzz/acert-test-bin-acert.o" => [ + "fuzz/acert.c" + ], + "fuzz/acert-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], "fuzz/asn1-test" => [ "fuzz/asn1-test-bin-asn1.o", "fuzz/asn1-test-bin-fuzz_rand.o", @@ -23631,6 +27400,190 @@ our %unified_info = ( "fuzz/ct-test-bin-test-corpus.o" => [ "fuzz/test-corpus.c" ], + "fuzz/decoder-test" => [ + "fuzz/decoder-test-bin-decoder.o", + "fuzz/decoder-test-bin-fuzz_rand.o", + "fuzz/decoder-test-bin-test-corpus.o" + ], + "fuzz/decoder-test-bin-decoder.o" => [ + "fuzz/decoder.c" + ], + "fuzz/decoder-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/decoder-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/dtlsclient-test" => [ + "fuzz/dtlsclient-test-bin-dtlsclient.o", + "fuzz/dtlsclient-test-bin-fuzz_rand.o", + "fuzz/dtlsclient-test-bin-test-corpus.o" + ], + "fuzz/dtlsclient-test-bin-dtlsclient.o" => [ + "fuzz/dtlsclient.c" + ], + "fuzz/dtlsclient-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/dtlsclient-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/dtlsserver-test" => [ + "fuzz/dtlsserver-test-bin-dtlsserver.o", + "fuzz/dtlsserver-test-bin-fuzz_rand.o", + "fuzz/dtlsserver-test-bin-test-corpus.o" + ], + "fuzz/dtlsserver-test-bin-dtlsserver.o" => [ + "fuzz/dtlsserver.c" + ], + "fuzz/dtlsserver-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/dtlsserver-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/hashtable-test" => [ + "fuzz/hashtable-test-bin-fuzz_rand.o", + "fuzz/hashtable-test-bin-hashtable.o", + "fuzz/hashtable-test-bin-test-corpus.o" + ], + "fuzz/hashtable-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/hashtable-test-bin-hashtable.o" => [ + "fuzz/hashtable.c" + ], + "fuzz/hashtable-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/ml-dsa-test" => [ + "fuzz/ml-dsa-test-bin-fuzz_rand.o", + "fuzz/ml-dsa-test-bin-ml-dsa.o", + "fuzz/ml-dsa-test-bin-test-corpus.o" + ], + "fuzz/ml-dsa-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/ml-dsa-test-bin-ml-dsa.o" => [ + "fuzz/ml-dsa.c" + ], + "fuzz/ml-dsa-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/ml-kem-test" => [ + "fuzz/ml-kem-test-bin-fuzz_rand.o", + "fuzz/ml-kem-test-bin-ml-kem.o", + "fuzz/ml-kem-test-bin-test-corpus.o" + ], + "fuzz/ml-kem-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/ml-kem-test-bin-ml-kem.o" => [ + "fuzz/ml-kem.c" + ], + "fuzz/ml-kem-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/pem-test" => [ + "fuzz/pem-test-bin-pem.o", + "fuzz/pem-test-bin-test-corpus.o" + ], + "fuzz/pem-test-bin-pem.o" => [ + "fuzz/pem.c" + ], + "fuzz/pem-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/provider-test" => [ + "fuzz/provider-test-bin-provider.o", + "fuzz/provider-test-bin-test-corpus.o" + ], + "fuzz/provider-test-bin-provider.o" => [ + "fuzz/provider.c" + ], + "fuzz/provider-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/punycode-test" => [ + "fuzz/punycode-test-bin-punycode.o", + "fuzz/punycode-test-bin-test-corpus.o" + ], + "fuzz/punycode-test-bin-punycode.o" => [ + "fuzz/punycode.c" + ], + "fuzz/punycode-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-client-test" => [ + "fuzz/quic-client-test-bin-fuzz_rand.o", + "fuzz/quic-client-test-bin-quic-client.o", + "fuzz/quic-client-test-bin-test-corpus.o" + ], + "fuzz/quic-client-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-client-test-bin-quic-client.o" => [ + "fuzz/quic-client.c" + ], + "fuzz/quic-client-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-lcidm-test" => [ + "fuzz/quic-lcidm-test-bin-fuzz_rand.o", + "fuzz/quic-lcidm-test-bin-quic-lcidm.o", + "fuzz/quic-lcidm-test-bin-test-corpus.o" + ], + "fuzz/quic-lcidm-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-lcidm-test-bin-quic-lcidm.o" => [ + "fuzz/quic-lcidm.c" + ], + "fuzz/quic-lcidm-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-rcidm-test" => [ + "fuzz/quic-rcidm-test-bin-fuzz_rand.o", + "fuzz/quic-rcidm-test-bin-quic-rcidm.o", + "fuzz/quic-rcidm-test-bin-test-corpus.o" + ], + "fuzz/quic-rcidm-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-rcidm-test-bin-quic-rcidm.o" => [ + "fuzz/quic-rcidm.c" + ], + "fuzz/quic-rcidm-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-server-test" => [ + "fuzz/quic-server-test-bin-fuzz_rand.o", + "fuzz/quic-server-test-bin-quic-server.o", + "fuzz/quic-server-test-bin-test-corpus.o" + ], + "fuzz/quic-server-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-server-test-bin-quic-server.o" => [ + "fuzz/quic-server.c" + ], + "fuzz/quic-server-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-srtm-test" => [ + "fuzz/quic-srtm-test-bin-fuzz_rand.o", + "fuzz/quic-srtm-test-bin-quic-srtm.o", + "fuzz/quic-srtm-test-bin-test-corpus.o" + ], + "fuzz/quic-srtm-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-srtm-test-bin-quic-srtm.o" => [ + "fuzz/quic-srtm.c" + ], + "fuzz/quic-srtm-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], "fuzz/server-test" => [ "fuzz/server-test-bin-fuzz_rand.o", "fuzz/server-test-bin-server.o", @@ -23645,6 +27598,40 @@ our %unified_info = ( "fuzz/server-test-bin-test-corpus.o" => [ "fuzz/test-corpus.c" ], + "fuzz/slh-dsa-test" => [ + "fuzz/slh-dsa-test-bin-fuzz_rand.o", + "fuzz/slh-dsa-test-bin-slh-dsa.o", + "fuzz/slh-dsa-test-bin-test-corpus.o" + ], + "fuzz/slh-dsa-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/slh-dsa-test-bin-slh-dsa.o" => [ + "fuzz/slh-dsa.c" + ], + "fuzz/slh-dsa-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/smime-test" => [ + "fuzz/smime-test-bin-smime.o", + "fuzz/smime-test-bin-test-corpus.o" + ], + "fuzz/smime-test-bin-smime.o" => [ + "fuzz/smime.c" + ], + "fuzz/smime-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/v3name-test" => [ + "fuzz/v3name-test-bin-test-corpus.o", + "fuzz/v3name-test-bin-v3name.o" + ], + "fuzz/v3name-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/v3name-test-bin-v3name.o" => [ + "fuzz/v3name.c" + ], "fuzz/x509-test" => [ "fuzz/x509-test-bin-fuzz_rand.o", "fuzz/x509-test-bin-test-corpus.o", @@ -23765,6 +27752,7 @@ our %unified_info = ( "crypto/bio/libcrypto-lib-bss_conn.o", "crypto/bio/libcrypto-lib-bss_core.o", "crypto/bio/libcrypto-lib-bss_dgram.o", + "crypto/bio/libcrypto-lib-bss_dgram_pair.o", "crypto/bio/libcrypto-lib-bss_fd.o", "crypto/bio/libcrypto-lib-bss_file.o", "crypto/bio/libcrypto-lib-bss_log.o", @@ -23826,6 +27814,7 @@ our %unified_info = ( "crypto/cmp/libcrypto-lib-cmp_client.o", "crypto/cmp/libcrypto-lib-cmp_ctx.o", "crypto/cmp/libcrypto-lib-cmp_err.o", + "crypto/cmp/libcrypto-lib-cmp_genm.o", "crypto/cmp/libcrypto-lib-cmp_hdr.o", "crypto/cmp/libcrypto-lib-cmp_http.o", "crypto/cmp/libcrypto-lib-cmp_msg.o", @@ -24003,7 +27992,9 @@ our %unified_info = ( "crypto/err/libcrypto-lib-err_all.o", "crypto/err/libcrypto-lib-err_all_legacy.o", "crypto/err/libcrypto-lib-err_blocks.o", + "crypto/err/libcrypto-lib-err_mark.o", "crypto/err/libcrypto-lib-err_prn.o", + "crypto/err/libcrypto-lib-err_save.o", "crypto/ess/libcrypto-lib-ess_asn1.o", "crypto/ess/libcrypto-lib-ess_err.o", "crypto/ess/libcrypto-lib-ess_lib.o", @@ -24086,7 +28077,9 @@ our %unified_info = ( "crypto/evp/libcrypto-lib-pmeth_check.o", "crypto/evp/libcrypto-lib-pmeth_gn.o", "crypto/evp/libcrypto-lib-pmeth_lib.o", + "crypto/evp/libcrypto-lib-s_lib.o", "crypto/evp/libcrypto-lib-signature.o", + "crypto/evp/libcrypto-lib-skeymgmt_meth.o", "crypto/ffc/libcrypto-lib-ffc_backend.o", "crypto/ffc/libcrypto-lib-ffc_dh.o", "crypto/ffc/libcrypto-lib-ffc_key_generate.o", @@ -24094,7 +28087,11 @@ our %unified_info = ( "crypto/ffc/libcrypto-lib-ffc_params.o", "crypto/ffc/libcrypto-lib-ffc_params_generate.o", "crypto/ffc/libcrypto-lib-ffc_params_validate.o", + "crypto/hashtable/libcrypto-lib-hashfunc.o", + "crypto/hashtable/libcrypto-lib-hashtable.o", "crypto/hmac/libcrypto-lib-hmac.o", + "crypto/hpke/libcrypto-lib-hpke.o", + "crypto/hpke/libcrypto-lib-hpke_util.o", "crypto/http/libcrypto-lib-http_client.o", "crypto/http/libcrypto-lib-http_err.o", "crypto/http/libcrypto-lib-http_lib.o", @@ -24108,6 +28105,7 @@ our %unified_info = ( "crypto/lhash/libcrypto-lib-lhash.o", "crypto/libcrypto-lib-asn1_dsa.o", "crypto/libcrypto-lib-bsearch.o", + "crypto/libcrypto-lib-comp_methods.o", "crypto/libcrypto-lib-context.o", "crypto/libcrypto-lib-core_algorithm.o", "crypto/libcrypto-lib-core_fetch.o", @@ -24117,10 +28115,13 @@ our %unified_info = ( "crypto/libcrypto-lib-cryptlib.o", "crypto/libcrypto-lib-ctype.o", "crypto/libcrypto-lib-cversion.o", + "crypto/libcrypto-lib-defaults.o", "crypto/libcrypto-lib-der_writer.o", + "crypto/libcrypto-lib-deterministic_nonce.o", "crypto/libcrypto-lib-ebcdic.o", "crypto/libcrypto-lib-ex_data.o", "crypto/libcrypto-lib-getenv.o", + "crypto/libcrypto-lib-indicator_core.o", "crypto/libcrypto-lib-info.o", "crypto/libcrypto-lib-init.o", "crypto/libcrypto-lib-initthread.o", @@ -24137,6 +28138,7 @@ our %unified_info = ( "crypto/libcrypto-lib-params.o", "crypto/libcrypto-lib-params_dup.o", "crypto/libcrypto-lib-params_from_text.o", + "crypto/libcrypto-lib-params_idx.o", "crypto/libcrypto-lib-passphrase.o", "crypto/libcrypto-lib-provider.o", "crypto/libcrypto-lib-provider_child.o", @@ -24144,12 +28146,16 @@ our %unified_info = ( "crypto/libcrypto-lib-provider_core.o", "crypto/libcrypto-lib-provider_predefined.o", "crypto/libcrypto-lib-punycode.o", + "crypto/libcrypto-lib-quic_vlint.o", "crypto/libcrypto-lib-self_test_core.o", + "crypto/libcrypto-lib-sleep.o", "crypto/libcrypto-lib-sparse_array.o", + "crypto/libcrypto-lib-ssl_err.o", "crypto/libcrypto-lib-threads_lib.o", "crypto/libcrypto-lib-threads_none.o", "crypto/libcrypto-lib-threads_pthread.o", "crypto/libcrypto-lib-threads_win.o", + "crypto/libcrypto-lib-time.o", "crypto/libcrypto-lib-trace.o", "crypto/libcrypto-lib-uid.o", "crypto/libcrypto-lib-x86cpuid.o", @@ -24161,6 +28167,15 @@ our %unified_info = ( "crypto/md5/libcrypto-lib-md5_sha1.o", "crypto/mdc2/libcrypto-lib-mdc2_one.o", "crypto/mdc2/libcrypto-lib-mdc2dgst.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_encoders.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key_compress.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_matrix.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_ntt.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_params.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sample.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sign.o", + "crypto/ml_kem/libcrypto-lib-ml_kem.o", "crypto/modes/libcrypto-lib-cbc128.o", "crypto/modes/libcrypto-lib-ccm128.o", "crypto/modes/libcrypto-lib-cfb128.o", @@ -24173,6 +28188,7 @@ our %unified_info = ( "crypto/modes/libcrypto-lib-siv128.o", "crypto/modes/libcrypto-lib-wrap128.o", "crypto/modes/libcrypto-lib-xts128.o", + "crypto/modes/libcrypto-lib-xts128gb.o", "crypto/objects/libcrypto-lib-o_names.o", "crypto/objects/libcrypto-lib-obj_dat.o", "crypto/objects/libcrypto-lib-obj_err.o", @@ -24237,6 +28253,7 @@ our %unified_info = ( "crypto/rand/libcrypto-lib-rand_lib.o", "crypto/rand/libcrypto-lib-rand_meth.o", "crypto/rand/libcrypto-lib-rand_pool.o", + "crypto/rand/libcrypto-lib-rand_uniform.o", "crypto/rand/libcrypto-lib-randfile.o", "crypto/rc2/libcrypto-lib-rc2_cbc.o", "crypto/rc2/libcrypto-lib-rc2_ecb.o", @@ -24288,6 +28305,16 @@ our %unified_info = ( "crypto/sha/libcrypto-lib-sha512-586.o", "crypto/sha/libcrypto-lib-sha512.o", "crypto/siphash/libcrypto-lib-siphash.o", + "crypto/slh_dsa/libcrypto-lib-slh_adrs.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa_hash_ctx.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa_key.o", + "crypto/slh_dsa/libcrypto-lib-slh_fors.o", + "crypto/slh_dsa/libcrypto-lib-slh_hash.o", + "crypto/slh_dsa/libcrypto-lib-slh_hypertree.o", + "crypto/slh_dsa/libcrypto-lib-slh_params.o", + "crypto/slh_dsa/libcrypto-lib-slh_wots.o", + "crypto/slh_dsa/libcrypto-lib-slh_xmss.o", "crypto/sm2/libcrypto-lib-sm2_crypt.o", "crypto/sm2/libcrypto-lib-sm2_err.o", "crypto/sm2/libcrypto-lib-sm2_key.o", @@ -24305,6 +28332,12 @@ our %unified_info = ( "crypto/store/libcrypto-lib-store_register.o", "crypto/store/libcrypto-lib-store_result.o", "crypto/store/libcrypto-lib-store_strings.o", + "crypto/thread/arch/libcrypto-lib-thread_none.o", + "crypto/thread/arch/libcrypto-lib-thread_posix.o", + "crypto/thread/arch/libcrypto-lib-thread_win.o", + "crypto/thread/libcrypto-lib-api.o", + "crypto/thread/libcrypto-lib-arch.o", + "crypto/thread/libcrypto-lib-internal.o", "crypto/ts/libcrypto-lib-ts_asn1.o", "crypto/ts/libcrypto-lib-ts_conf.o", "crypto/ts/libcrypto-lib-ts_err.o", @@ -24334,14 +28367,22 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-pcy_map.o", "crypto/x509/libcrypto-lib-pcy_node.o", "crypto/x509/libcrypto-lib-pcy_tree.o", + "crypto/x509/libcrypto-lib-t_acert.o", "crypto/x509/libcrypto-lib-t_crl.o", "crypto/x509/libcrypto-lib-t_req.o", "crypto/x509/libcrypto-lib-t_x509.o", + "crypto/x509/libcrypto-lib-v3_aaa.o", + "crypto/x509/libcrypto-lib-v3_ac_tgt.o", "crypto/x509/libcrypto-lib-v3_addr.o", "crypto/x509/libcrypto-lib-v3_admis.o", "crypto/x509/libcrypto-lib-v3_akeya.o", "crypto/x509/libcrypto-lib-v3_akid.o", "crypto/x509/libcrypto-lib-v3_asid.o", + "crypto/x509/libcrypto-lib-v3_attrdesc.o", + "crypto/x509/libcrypto-lib-v3_attrmap.o", + "crypto/x509/libcrypto-lib-v3_audit_id.o", + "crypto/x509/libcrypto-lib-v3_authattid.o", + "crypto/x509/libcrypto-lib-v3_battcons.o", "crypto/x509/libcrypto-lib-v3_bcons.o", "crypto/x509/libcrypto-lib-v3_bitst.o", "crypto/x509/libcrypto-lib-v3_conf.o", @@ -24350,12 +28391,17 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_enum.o", "crypto/x509/libcrypto-lib-v3_extku.o", "crypto/x509/libcrypto-lib-v3_genn.o", + "crypto/x509/libcrypto-lib-v3_group_ac.o", "crypto/x509/libcrypto-lib-v3_ia5.o", + "crypto/x509/libcrypto-lib-v3_ind_iss.o", "crypto/x509/libcrypto-lib-v3_info.o", "crypto/x509/libcrypto-lib-v3_int.o", + "crypto/x509/libcrypto-lib-v3_iobo.o", "crypto/x509/libcrypto-lib-v3_ist.o", "crypto/x509/libcrypto-lib-v3_lib.o", "crypto/x509/libcrypto-lib-v3_ncons.o", + "crypto/x509/libcrypto-lib-v3_no_ass.o", + "crypto/x509/libcrypto-lib-v3_no_rev_avail.o", "crypto/x509/libcrypto-lib-v3_pci.o", "crypto/x509/libcrypto-lib-v3_pcia.o", "crypto/x509/libcrypto-lib-v3_pcons.o", @@ -24363,13 +28409,20 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_pmaps.o", "crypto/x509/libcrypto-lib-v3_prn.o", "crypto/x509/libcrypto-lib-v3_purp.o", + "crypto/x509/libcrypto-lib-v3_rolespec.o", "crypto/x509/libcrypto-lib-v3_san.o", + "crypto/x509/libcrypto-lib-v3_sda.o", + "crypto/x509/libcrypto-lib-v3_single_use.o", "crypto/x509/libcrypto-lib-v3_skid.o", + "crypto/x509/libcrypto-lib-v3_soa_id.o", "crypto/x509/libcrypto-lib-v3_sxnet.o", + "crypto/x509/libcrypto-lib-v3_timespec.o", "crypto/x509/libcrypto-lib-v3_tlsf.o", + "crypto/x509/libcrypto-lib-v3_usernotice.o", "crypto/x509/libcrypto-lib-v3_utf8.o", "crypto/x509/libcrypto-lib-v3_utl.o", "crypto/x509/libcrypto-lib-v3err.o", + "crypto/x509/libcrypto-lib-x509_acert.o", "crypto/x509/libcrypto-lib-x509_att.o", "crypto/x509/libcrypto-lib-x509_cmp.o", "crypto/x509/libcrypto-lib-x509_d2.o", @@ -24387,6 +28440,7 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x509_v3.o", "crypto/x509/libcrypto-lib-x509_vfy.o", "crypto/x509/libcrypto-lib-x509_vpm.o", + "crypto/x509/libcrypto-lib-x509aset.o", "crypto/x509/libcrypto-lib-x509cset.o", "crypto/x509/libcrypto-lib-x509name.o", "crypto/x509/libcrypto-lib-x509rset.o", @@ -24396,6 +28450,7 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x_attrib.o", "crypto/x509/libcrypto-lib-x_crl.o", "crypto/x509/libcrypto-lib-x_exten.o", + "crypto/x509/libcrypto-lib-x_ietfatt.o", "crypto/x509/libcrypto-lib-x_name.o", "crypto/x509/libcrypto-lib-x_pubkey.o", "crypto/x509/libcrypto-lib-x_req.o", @@ -24417,14 +28472,15 @@ our %unified_info = ( "ssl/libssl-lib-d1_srtp.o", "ssl/libssl-lib-methods.o", "ssl/libssl-lib-pqueue.o", + "ssl/libssl-lib-priority_queue.o", "ssl/libssl-lib-s3_enc.o", "ssl/libssl-lib-s3_lib.o", "ssl/libssl-lib-s3_msg.o", "ssl/libssl-lib-ssl_asn1.o", "ssl/libssl-lib-ssl_cert.o", + "ssl/libssl-lib-ssl_cert_comp.o", "ssl/libssl-lib-ssl_ciph.o", "ssl/libssl-lib-ssl_conf.o", - "ssl/libssl-lib-ssl_err.o", "ssl/libssl-lib-ssl_err_legacy.o", "ssl/libssl-lib-ssl_init.o", "ssl/libssl-lib-ssl_lib.o", @@ -24441,12 +28497,60 @@ our %unified_info = ( "ssl/libssl-lib-tls13_enc.o", "ssl/libssl-lib-tls_depr.o", "ssl/libssl-lib-tls_srp.o", - "ssl/record/libssl-lib-dtls1_bitmap.o", + "ssl/quic/libssl-lib-cc_newreno.o", + "ssl/quic/libssl-lib-json_enc.o", + "ssl/quic/libssl-lib-qlog.o", + "ssl/quic/libssl-lib-qlog_event_helpers.o", + "ssl/quic/libssl-lib-quic_ackm.o", + "ssl/quic/libssl-lib-quic_cfq.o", + "ssl/quic/libssl-lib-quic_channel.o", + "ssl/quic/libssl-lib-quic_demux.o", + "ssl/quic/libssl-lib-quic_engine.o", + "ssl/quic/libssl-lib-quic_fc.o", + "ssl/quic/libssl-lib-quic_fifd.o", + "ssl/quic/libssl-lib-quic_impl.o", + "ssl/quic/libssl-lib-quic_lcidm.o", + "ssl/quic/libssl-lib-quic_method.o", + "ssl/quic/libssl-lib-quic_obj.o", + "ssl/quic/libssl-lib-quic_port.o", + "ssl/quic/libssl-lib-quic_rcidm.o", + "ssl/quic/libssl-lib-quic_reactor.o", + "ssl/quic/libssl-lib-quic_reactor_wait_ctx.o", + "ssl/quic/libssl-lib-quic_record_rx.o", + "ssl/quic/libssl-lib-quic_record_shared.o", + "ssl/quic/libssl-lib-quic_record_tx.o", + "ssl/quic/libssl-lib-quic_record_util.o", + "ssl/quic/libssl-lib-quic_rstream.o", + "ssl/quic/libssl-lib-quic_rx_depack.o", + "ssl/quic/libssl-lib-quic_sf_list.o", + "ssl/quic/libssl-lib-quic_srt_gen.o", + "ssl/quic/libssl-lib-quic_srtm.o", + "ssl/quic/libssl-lib-quic_sstream.o", + "ssl/quic/libssl-lib-quic_statm.o", + "ssl/quic/libssl-lib-quic_stream_map.o", + "ssl/quic/libssl-lib-quic_thread_assist.o", + "ssl/quic/libssl-lib-quic_tls.o", + "ssl/quic/libssl-lib-quic_tls_api.o", + "ssl/quic/libssl-lib-quic_trace.o", + "ssl/quic/libssl-lib-quic_tserver.o", + "ssl/quic/libssl-lib-quic_txp.o", + "ssl/quic/libssl-lib-quic_txpim.o", + "ssl/quic/libssl-lib-quic_types.o", + "ssl/quic/libssl-lib-quic_wire.o", + "ssl/quic/libssl-lib-quic_wire_pkt.o", + "ssl/quic/libssl-lib-uint_set.o", "ssl/record/libssl-lib-rec_layer_d1.o", "ssl/record/libssl-lib-rec_layer_s3.o", - "ssl/record/libssl-lib-ssl3_buffer.o", - "ssl/record/libssl-lib-ssl3_record.o", - "ssl/record/libssl-lib-ssl3_record_tls13.o", + "ssl/record/methods/libssl-lib-dtls_meth.o", + "ssl/record/methods/libssl-lib-ssl3_meth.o", + "ssl/record/methods/libssl-lib-tls13_meth.o", + "ssl/record/methods/libssl-lib-tls1_meth.o", + "ssl/record/methods/libssl-lib-tls_common.o", + "ssl/record/methods/libssl-lib-tls_multib.o", + "ssl/record/methods/libssl-lib-tlsany_meth.o", + "ssl/rio/libssl-lib-poll_builder.o", + "ssl/rio/libssl-lib-poll_immediate.o", + "ssl/rio/libssl-lib-rio_notifier.o", "ssl/statem/libssl-lib-extensions.o", "ssl/statem/libssl-lib-extensions_clnt.o", "ssl/statem/libssl-lib-extensions_cust.o", @@ -24484,12 +28588,24 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ecx_key.o" => [ "providers/common/der/der_ecx_key.c" ], + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o" => [ + "providers/common/der/der_ml_dsa_gen.c" + ], + "providers/common/der/libcommon-lib-der_ml_dsa_key.o" => [ + "providers/common/der/der_ml_dsa_key.c" + ], "providers/common/der/libcommon-lib-der_rsa_gen.o" => [ "providers/common/der/der_rsa_gen.c" ], "providers/common/der/libcommon-lib-der_rsa_key.o" => [ "providers/common/der/der_rsa_key.c" ], + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o" => [ + "providers/common/der/der_slh_dsa_gen.c" + ], + "providers/common/der/libcommon-lib-der_slh_dsa_key.o" => [ + "providers/common/der/der_slh_dsa_key.c" + ], "providers/common/der/libcommon-lib-der_wrap_gen.o" => [ "providers/common/der/der_wrap_gen.c" ], @@ -24556,6 +28672,9 @@ our %unified_info = ( "providers/common/libfips-lib-securitycheck_fips.o" => [ "providers/common/securitycheck_fips.c" ], + "providers/endecode_test-bin-legacyprov.o" => [ + "providers/legacyprov.c" + ], "providers/evp_extra_test-bin-legacyprov.o" => [ "providers/legacyprov.c" ], @@ -24565,6 +28684,9 @@ our %unified_info = ( "providers/fips/fips-dso-fips_entry.o" => [ "providers/fips/fips_entry.c" ], + "providers/fips/libfips-lib-fipsindicator.o" => [ + "providers/fips/fipsindicator.c" + ], "providers/fips/libfips-lib-fipsprov.o" => [ "providers/fips/fipsprov.c" ], @@ -24628,6 +28750,15 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_hw.o" => [ "providers/implementations/ciphers/cipher_aes_gcm_hw.c" ], + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv.o" => [ + "providers/implementations/ciphers/cipher_aes_gcm_siv.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_hw.o" => [ + "providers/implementations/ciphers/cipher_aes_gcm_siv_hw.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_polyval.o" => [ + "providers/implementations/ciphers/cipher_aes_gcm_siv_polyval.c" + ], "providers/implementations/ciphers/libdefault-lib-cipher_aes_hw.o" => [ "providers/implementations/ciphers/cipher_aes_hw.c" ], @@ -24700,9 +28831,27 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_sm4.o" => [ "providers/implementations/ciphers/cipher_sm4.c" ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm.o" => [ + "providers/implementations/ciphers/cipher_sm4_ccm.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm_hw.o" => [ + "providers/implementations/ciphers/cipher_sm4_ccm_hw.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm.o" => [ + "providers/implementations/ciphers/cipher_sm4_gcm.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm_hw.o" => [ + "providers/implementations/ciphers/cipher_sm4_gcm_hw.c" + ], "providers/implementations/ciphers/libdefault-lib-cipher_sm4_hw.o" => [ "providers/implementations/ciphers/cipher_sm4_hw.c" ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts.o" => [ + "providers/implementations/ciphers/cipher_sm4_xts.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts_hw.o" => [ + "providers/implementations/ciphers/cipher_sm4_xts_hw.c" + ], "providers/implementations/ciphers/libdefault-lib-cipher_tdes.o" => [ "providers/implementations/ciphers/cipher_tdes.c" ], @@ -24922,6 +29071,15 @@ our %unified_info = ( "providers/implementations/encode_decode/libdefault-lib-endecoder_common.o" => [ "providers/implementations/encode_decode/endecoder_common.c" ], + "providers/implementations/encode_decode/libdefault-lib-ml_common_codecs.o" => [ + "providers/implementations/encode_decode/ml_common_codecs.c" + ], + "providers/implementations/encode_decode/libdefault-lib-ml_dsa_codecs.o" => [ + "providers/implementations/encode_decode/ml_dsa_codecs.c" + ], + "providers/implementations/encode_decode/libdefault-lib-ml_kem_codecs.o" => [ + "providers/implementations/encode_decode/ml_kem_codecs.c" + ], "providers/implementations/exchange/libdefault-lib-dh_exch.o" => [ "providers/implementations/exchange/dh_exch.c" ], @@ -24946,9 +29104,15 @@ our %unified_info = ( "providers/implementations/exchange/libfips-lib-kdf_exch.o" => [ "providers/implementations/exchange/kdf_exch.c" ], + "providers/implementations/kdfs/libdefault-lib-argon2.o" => [ + "providers/implementations/kdfs/argon2.c" + ], "providers/implementations/kdfs/libdefault-lib-hkdf.o" => [ "providers/implementations/kdfs/hkdf.c" ], + "providers/implementations/kdfs/libdefault-lib-hmacdrbg_kdf.o" => [ + "providers/implementations/kdfs/hmacdrbg_kdf.c" + ], "providers/implementations/kdfs/libdefault-lib-kbkdf.o" => [ "providers/implementations/kdfs/kbkdf.c" ], @@ -25006,12 +29170,39 @@ our %unified_info = ( "providers/implementations/kdfs/liblegacy-lib-pbkdf1.o" => [ "providers/implementations/kdfs/pbkdf1.c" ], + "providers/implementations/kdfs/liblegacy-lib-pvkkdf.o" => [ + "providers/implementations/kdfs/pvkkdf.c" + ], + "providers/implementations/kem/libdefault-lib-ec_kem.o" => [ + "providers/implementations/kem/ec_kem.c" + ], + "providers/implementations/kem/libdefault-lib-ecx_kem.o" => [ + "providers/implementations/kem/ecx_kem.c" + ], + "providers/implementations/kem/libdefault-lib-kem_util.o" => [ + "providers/implementations/kem/kem_util.c" + ], + "providers/implementations/kem/libdefault-lib-ml_kem_kem.o" => [ + "providers/implementations/kem/ml_kem_kem.c" + ], + "providers/implementations/kem/libdefault-lib-mlx_kem.o" => [ + "providers/implementations/kem/mlx_kem.c" + ], "providers/implementations/kem/libdefault-lib-rsa_kem.o" => [ "providers/implementations/kem/rsa_kem.c" ], + "providers/implementations/kem/libfips-lib-ml_kem_kem.o" => [ + "providers/implementations/kem/ml_kem_kem.c" + ], + "providers/implementations/kem/libfips-lib-mlx_kem.o" => [ + "providers/implementations/kem/mlx_kem.c" + ], "providers/implementations/kem/libfips-lib-rsa_kem.o" => [ "providers/implementations/kem/rsa_kem.c" ], + "providers/implementations/kem/libtemplate-lib-template_kem.o" => [ + "providers/implementations/kem/template_kem.c" + ], "providers/implementations/keymgmt/libdefault-lib-dh_kmgmt.o" => [ "providers/implementations/keymgmt/dh_kmgmt.c" ], @@ -25030,9 +29221,21 @@ our %unified_info = ( "providers/implementations/keymgmt/libdefault-lib-mac_legacy_kmgmt.o" => [ "providers/implementations/keymgmt/mac_legacy_kmgmt.c" ], + "providers/implementations/keymgmt/libdefault-lib-ml_dsa_kmgmt.o" => [ + "providers/implementations/keymgmt/ml_dsa_kmgmt.c" + ], + "providers/implementations/keymgmt/libdefault-lib-ml_kem_kmgmt.o" => [ + "providers/implementations/keymgmt/ml_kem_kmgmt.c" + ], + "providers/implementations/keymgmt/libdefault-lib-mlx_kmgmt.o" => [ + "providers/implementations/keymgmt/mlx_kmgmt.c" + ], "providers/implementations/keymgmt/libdefault-lib-rsa_kmgmt.o" => [ "providers/implementations/keymgmt/rsa_kmgmt.c" ], + "providers/implementations/keymgmt/libdefault-lib-slh_dsa_kmgmt.o" => [ + "providers/implementations/keymgmt/slh_dsa_kmgmt.c" + ], "providers/implementations/keymgmt/libfips-lib-dh_kmgmt.o" => [ "providers/implementations/keymgmt/dh_kmgmt.c" ], @@ -25051,9 +29254,24 @@ our %unified_info = ( "providers/implementations/keymgmt/libfips-lib-mac_legacy_kmgmt.o" => [ "providers/implementations/keymgmt/mac_legacy_kmgmt.c" ], + "providers/implementations/keymgmt/libfips-lib-ml_dsa_kmgmt.o" => [ + "providers/implementations/keymgmt/ml_dsa_kmgmt.c" + ], + "providers/implementations/keymgmt/libfips-lib-ml_kem_kmgmt.o" => [ + "providers/implementations/keymgmt/ml_kem_kmgmt.c" + ], + "providers/implementations/keymgmt/libfips-lib-mlx_kmgmt.o" => [ + "providers/implementations/keymgmt/mlx_kmgmt.c" + ], "providers/implementations/keymgmt/libfips-lib-rsa_kmgmt.o" => [ "providers/implementations/keymgmt/rsa_kmgmt.c" ], + "providers/implementations/keymgmt/libfips-lib-slh_dsa_kmgmt.o" => [ + "providers/implementations/keymgmt/slh_dsa_kmgmt.c" + ], + "providers/implementations/keymgmt/libtemplate-lib-template_kmgmt.o" => [ + "providers/implementations/keymgmt/template_kmgmt.c" + ], "providers/implementations/macs/libdefault-lib-blake2b_mac.o" => [ "providers/implementations/macs/blake2b_mac.c" ], @@ -25090,9 +29308,6 @@ our %unified_info = ( "providers/implementations/macs/libfips-lib-kmac_prov.o" => [ "providers/implementations/macs/kmac_prov.c" ], - "providers/implementations/rands/libdefault-lib-crngt.o" => [ - "providers/implementations/rands/crngt.c" - ], "providers/implementations/rands/libdefault-lib-drbg.o" => [ "providers/implementations/rands/drbg.c" ], @@ -25108,12 +29323,12 @@ our %unified_info = ( "providers/implementations/rands/libdefault-lib-seed_src.o" => [ "providers/implementations/rands/seed_src.c" ], + "providers/implementations/rands/libdefault-lib-seed_src_jitter.o" => [ + "providers/implementations/rands/seed_src_jitter.c" + ], "providers/implementations/rands/libdefault-lib-test_rng.o" => [ "providers/implementations/rands/test_rng.c" ], - "providers/implementations/rands/libfips-lib-crngt.o" => [ - "providers/implementations/rands/crngt.c" - ], "providers/implementations/rands/libfips-lib-drbg.o" => [ "providers/implementations/rands/drbg.c" ], @@ -25126,6 +29341,9 @@ our %unified_info = ( "providers/implementations/rands/libfips-lib-drbg_hmac.o" => [ "providers/implementations/rands/drbg_hmac.c" ], + "providers/implementations/rands/libfips-lib-fips_crng_test.o" => [ + "providers/implementations/rands/fips_crng_test.c" + ], "providers/implementations/rands/libfips-lib-test_rng.o" => [ "providers/implementations/rands/test_rng.c" ], @@ -25153,9 +29371,15 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-mac_legacy_sig.o" => [ "providers/implementations/signature/mac_legacy_sig.c" ], + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o" => [ + "providers/implementations/signature/ml_dsa_sig.c" + ], "providers/implementations/signature/libdefault-lib-rsa_sig.o" => [ "providers/implementations/signature/rsa_sig.c" ], + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o" => [ + "providers/implementations/signature/slh_dsa_sig.c" + ], "providers/implementations/signature/libdefault-lib-sm2_sig.o" => [ "providers/implementations/signature/sm2_sig.c" ], @@ -25171,9 +29395,27 @@ our %unified_info = ( "providers/implementations/signature/libfips-lib-mac_legacy_sig.o" => [ "providers/implementations/signature/mac_legacy_sig.c" ], + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o" => [ + "providers/implementations/signature/ml_dsa_sig.c" + ], "providers/implementations/signature/libfips-lib-rsa_sig.o" => [ "providers/implementations/signature/rsa_sig.c" ], + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o" => [ + "providers/implementations/signature/slh_dsa_sig.c" + ], + "providers/implementations/skeymgmt/libdefault-lib-aes_skmgmt.o" => [ + "providers/implementations/skeymgmt/aes_skmgmt.c" + ], + "providers/implementations/skeymgmt/libdefault-lib-generic.o" => [ + "providers/implementations/skeymgmt/generic.c" + ], + "providers/implementations/skeymgmt/libfips-lib-aes_skmgmt.o" => [ + "providers/implementations/skeymgmt/aes_skmgmt.c" + ], + "providers/implementations/skeymgmt/libfips-lib-generic.o" => [ + "providers/implementations/skeymgmt/generic.c" + ], "providers/implementations/storemgmt/libdefault-lib-file_store.o" => [ "providers/implementations/storemgmt/file_store.c" ], @@ -25196,8 +29438,12 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ec_sig.o", "providers/common/der/libcommon-lib-der_ecx_gen.o", "providers/common/der/libcommon-lib-der_ecx_key.o", + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o", + "providers/common/der/libcommon-lib-der_ml_dsa_key.o", "providers/common/der/libcommon-lib-der_rsa_gen.o", "providers/common/der/libcommon-lib-der_rsa_key.o", + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o", + "providers/common/der/libcommon-lib-der_slh_dsa_key.o", "providers/common/der/libcommon-lib-der_wrap_gen.o", "providers/common/libcommon-lib-provider_ctx.o", "providers/common/libcommon-lib-provider_err.o", @@ -25209,7 +29455,7 @@ our %unified_info = ( "providers/implementations/ciphers/libcommon-lib-ciphercommon_gcm_hw.o", "providers/implementations/ciphers/libcommon-lib-ciphercommon_hw.o", "providers/implementations/digests/libcommon-lib-digestcommon.o", - "ssl/record/libcommon-lib-tls_pad.o" + "ssl/record/methods/libcommon-lib-tls_pad.o" ], "providers/libcrypto-lib-baseprov.o" => [ "providers/baseprov.c" @@ -25245,6 +29491,9 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_aes_ccm_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_polyval.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_ocb.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_ocb_hw.o", @@ -25269,7 +29518,13 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_cts.o", "providers/implementations/ciphers/libdefault-lib-cipher_null.o", "providers/implementations/ciphers/libdefault-lib-cipher_sm4.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_sm4_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes_common.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes_default.o", @@ -25298,11 +29553,16 @@ our %unified_info = ( "providers/implementations/encode_decode/libdefault-lib-encode_key2ms.o", "providers/implementations/encode_decode/libdefault-lib-encode_key2text.o", "providers/implementations/encode_decode/libdefault-lib-endecoder_common.o", + "providers/implementations/encode_decode/libdefault-lib-ml_common_codecs.o", + "providers/implementations/encode_decode/libdefault-lib-ml_dsa_codecs.o", + "providers/implementations/encode_decode/libdefault-lib-ml_kem_codecs.o", "providers/implementations/exchange/libdefault-lib-dh_exch.o", "providers/implementations/exchange/libdefault-lib-ecdh_exch.o", "providers/implementations/exchange/libdefault-lib-ecx_exch.o", "providers/implementations/exchange/libdefault-lib-kdf_exch.o", + "providers/implementations/kdfs/libdefault-lib-argon2.o", "providers/implementations/kdfs/libdefault-lib-hkdf.o", + "providers/implementations/kdfs/libdefault-lib-hmacdrbg_kdf.o", "providers/implementations/kdfs/libdefault-lib-kbkdf.o", "providers/implementations/kdfs/libdefault-lib-krb5kdf.o", "providers/implementations/kdfs/libdefault-lib-pbkdf2.o", @@ -25313,6 +29573,11 @@ our %unified_info = ( "providers/implementations/kdfs/libdefault-lib-sskdf.o", "providers/implementations/kdfs/libdefault-lib-tls1_prf.o", "providers/implementations/kdfs/libdefault-lib-x942kdf.o", + "providers/implementations/kem/libdefault-lib-ec_kem.o", + "providers/implementations/kem/libdefault-lib-ecx_kem.o", + "providers/implementations/kem/libdefault-lib-kem_util.o", + "providers/implementations/kem/libdefault-lib-ml_kem_kem.o", + "providers/implementations/kem/libdefault-lib-mlx_kem.o", "providers/implementations/kem/libdefault-lib-rsa_kem.o", "providers/implementations/keymgmt/libdefault-lib-dh_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-dsa_kmgmt.o", @@ -25320,7 +29585,11 @@ our %unified_info = ( "providers/implementations/keymgmt/libdefault-lib-ecx_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-kdf_legacy_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-mac_legacy_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-ml_dsa_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-ml_kem_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-mlx_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-rsa_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-slh_dsa_kmgmt.o", "providers/implementations/macs/libdefault-lib-blake2b_mac.o", "providers/implementations/macs/libdefault-lib-blake2s_mac.o", "providers/implementations/macs/libdefault-lib-cmac_prov.o", @@ -25329,12 +29598,12 @@ our %unified_info = ( "providers/implementations/macs/libdefault-lib-kmac_prov.o", "providers/implementations/macs/libdefault-lib-poly1305_prov.o", "providers/implementations/macs/libdefault-lib-siphash_prov.o", - "providers/implementations/rands/libdefault-lib-crngt.o", "providers/implementations/rands/libdefault-lib-drbg.o", "providers/implementations/rands/libdefault-lib-drbg_ctr.o", "providers/implementations/rands/libdefault-lib-drbg_hash.o", "providers/implementations/rands/libdefault-lib-drbg_hmac.o", "providers/implementations/rands/libdefault-lib-seed_src.o", + "providers/implementations/rands/libdefault-lib-seed_src_jitter.o", "providers/implementations/rands/libdefault-lib-test_rng.o", "providers/implementations/rands/seeding/libdefault-lib-rand_cpu_x86.o", "providers/implementations/rands/seeding/libdefault-lib-rand_tsc.o", @@ -25344,11 +29613,15 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-ecdsa_sig.o", "providers/implementations/signature/libdefault-lib-eddsa_sig.o", "providers/implementations/signature/libdefault-lib-mac_legacy_sig.o", + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o", "providers/implementations/signature/libdefault-lib-rsa_sig.o", + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o", "providers/implementations/signature/libdefault-lib-sm2_sig.o", + "providers/implementations/skeymgmt/libdefault-lib-aes_skmgmt.o", + "providers/implementations/skeymgmt/libdefault-lib-generic.o", "providers/implementations/storemgmt/libdefault-lib-file_store.o", "providers/implementations/storemgmt/libdefault-lib-file_store_any2obj.o", - "ssl/libdefault-lib-s3_cbc.o" + "ssl/record/methods/libdefault-lib-ssl3_cbc.o" ], "providers/libfips.a" => [ "crypto/aes/libfips-lib-aes-586.o", @@ -25456,14 +29729,15 @@ our %unified_info = ( "crypto/evp/libfips-lib-kem.o", "crypto/evp/libfips-lib-keymgmt_lib.o", "crypto/evp/libfips-lib-keymgmt_meth.o", - "crypto/evp/libfips-lib-m_sigver.o", "crypto/evp/libfips-lib-mac_lib.o", "crypto/evp/libfips-lib-mac_meth.o", "crypto/evp/libfips-lib-p_lib.o", "crypto/evp/libfips-lib-pmeth_check.o", "crypto/evp/libfips-lib-pmeth_gn.o", "crypto/evp/libfips-lib-pmeth_lib.o", + "crypto/evp/libfips-lib-s_lib.o", "crypto/evp/libfips-lib-signature.o", + "crypto/evp/libfips-lib-skeymgmt_meth.o", "crypto/ffc/libfips-lib-ffc_backend.o", "crypto/ffc/libfips-lib-ffc_dh.o", "crypto/ffc/libfips-lib-ffc_key_generate.o", @@ -25471,6 +29745,8 @@ our %unified_info = ( "crypto/ffc/libfips-lib-ffc_params.o", "crypto/ffc/libfips-lib-ffc_params_generate.o", "crypto/ffc/libfips-lib-ffc_params_validate.o", + "crypto/hashtable/libfips-lib-hashfunc.o", + "crypto/hashtable/libfips-lib-hashtable.o", "crypto/hmac/libfips-lib-hmac.o", "crypto/lhash/libfips-lib-lhash.o", "crypto/libfips-lib-asn1_dsa.o", @@ -25492,6 +29768,7 @@ our %unified_info = ( "crypto/libfips-lib-params.o", "crypto/libfips-lib-params_dup.o", "crypto/libfips-lib-params_from_text.o", + "crypto/libfips-lib-params_idx.o", "crypto/libfips-lib-provider_core.o", "crypto/libfips-lib-provider_predefined.o", "crypto/libfips-lib-self_test_core.o", @@ -25500,7 +29777,17 @@ our %unified_info = ( "crypto/libfips-lib-threads_none.o", "crypto/libfips-lib-threads_pthread.o", "crypto/libfips-lib-threads_win.o", + "crypto/libfips-lib-time.o", "crypto/libfips-lib-x86cpuid.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_encoders.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_key.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_key_compress.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_matrix.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_ntt.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_params.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_sample.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_sign.o", + "crypto/ml_kem/libfips-lib-ml_kem.o", "crypto/modes/libfips-lib-cbc128.o", "crypto/modes/libfips-lib-ccm128.o", "crypto/modes/libfips-lib-cfb128.o", @@ -25510,6 +29797,7 @@ our %unified_info = ( "crypto/modes/libfips-lib-ofb128.o", "crypto/modes/libfips-lib-wrap128.o", "crypto/modes/libfips-lib-xts128.o", + "crypto/modes/libfips-lib-xts128gb.o", "crypto/property/libfips-lib-defn_cache.o", "crypto/property/libfips-lib-property.o", "crypto/property/libfips-lib-property_parse.o", @@ -25541,7 +29829,23 @@ our %unified_info = ( "crypto/sha/libfips-lib-sha3.o", "crypto/sha/libfips-lib-sha512-586.o", "crypto/sha/libfips-lib-sha512.o", + "crypto/slh_dsa/libfips-lib-slh_adrs.o", + "crypto/slh_dsa/libfips-lib-slh_dsa.o", + "crypto/slh_dsa/libfips-lib-slh_dsa_hash_ctx.o", + "crypto/slh_dsa/libfips-lib-slh_dsa_key.o", + "crypto/slh_dsa/libfips-lib-slh_fors.o", + "crypto/slh_dsa/libfips-lib-slh_hash.o", + "crypto/slh_dsa/libfips-lib-slh_hypertree.o", + "crypto/slh_dsa/libfips-lib-slh_params.o", + "crypto/slh_dsa/libfips-lib-slh_wots.o", + "crypto/slh_dsa/libfips-lib-slh_xmss.o", "crypto/stack/libfips-lib-stack.o", + "crypto/thread/arch/libfips-lib-thread_none.o", + "crypto/thread/arch/libfips-lib-thread_posix.o", + "crypto/thread/arch/libfips-lib-thread_win.o", + "crypto/thread/libfips-lib-api.o", + "crypto/thread/libfips-lib-arch.o", + "crypto/thread/libfips-lib-internal.o", "providers/common/der/libfips-lib-der_rsa_sig.o", "providers/common/libfips-lib-bio_prov.o", "providers/common/libfips-lib-capabilities.o", @@ -25550,6 +29854,7 @@ our %unified_info = ( "providers/common/libfips-lib-provider_util.o", "providers/common/libfips-lib-securitycheck.o", "providers/common/libfips-lib-securitycheck_fips.o", + "providers/fips/libfips-lib-fipsindicator.o", "providers/fips/libfips-lib-fipsprov.o", "providers/fips/libfips-lib-self_test.o", "providers/fips/libfips-lib-self_test_kats.o", @@ -25587,6 +29892,8 @@ our %unified_info = ( "providers/implementations/kdfs/libfips-lib-sskdf.o", "providers/implementations/kdfs/libfips-lib-tls1_prf.o", "providers/implementations/kdfs/libfips-lib-x942kdf.o", + "providers/implementations/kem/libfips-lib-ml_kem_kem.o", + "providers/implementations/kem/libfips-lib-mlx_kem.o", "providers/implementations/kem/libfips-lib-rsa_kem.o", "providers/implementations/keymgmt/libfips-lib-dh_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-dsa_kmgmt.o", @@ -25594,24 +29901,32 @@ our %unified_info = ( "providers/implementations/keymgmt/libfips-lib-ecx_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-kdf_legacy_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-mac_legacy_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-ml_dsa_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-ml_kem_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-mlx_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-rsa_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-slh_dsa_kmgmt.o", "providers/implementations/macs/libfips-lib-cmac_prov.o", "providers/implementations/macs/libfips-lib-gmac_prov.o", "providers/implementations/macs/libfips-lib-hmac_prov.o", "providers/implementations/macs/libfips-lib-kmac_prov.o", - "providers/implementations/rands/libfips-lib-crngt.o", "providers/implementations/rands/libfips-lib-drbg.o", "providers/implementations/rands/libfips-lib-drbg_ctr.o", "providers/implementations/rands/libfips-lib-drbg_hash.o", "providers/implementations/rands/libfips-lib-drbg_hmac.o", + "providers/implementations/rands/libfips-lib-fips_crng_test.o", "providers/implementations/rands/libfips-lib-test_rng.o", "providers/implementations/signature/libfips-lib-dsa_sig.o", "providers/implementations/signature/libfips-lib-ecdsa_sig.o", "providers/implementations/signature/libfips-lib-eddsa_sig.o", "providers/implementations/signature/libfips-lib-mac_legacy_sig.o", + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o", "providers/implementations/signature/libfips-lib-rsa_sig.o", + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o", + "providers/implementations/skeymgmt/libfips-lib-aes_skmgmt.o", + "providers/implementations/skeymgmt/libfips-lib-generic.o", "providers/libcommon.a", - "ssl/libfips-lib-s3_cbc.o" + "ssl/record/methods/libfips-lib-ssl3_cbc.o" ], "providers/liblegacy-lib-prov_running.o" => [ "providers/prov_running.c" @@ -25641,13 +29956,12 @@ our %unified_info = ( "providers/implementations/digests/liblegacy-lib-ripemd_prov.o", "providers/implementations/digests/liblegacy-lib-wp_prov.o", "providers/implementations/kdfs/liblegacy-lib-pbkdf1.o", + "providers/implementations/kdfs/liblegacy-lib-pvkkdf.o", "providers/liblegacy-lib-prov_running.o" ], - "ssl/libdefault-lib-s3_cbc.o" => [ - "ssl/s3_cbc.c" - ], - "ssl/libfips-lib-s3_cbc.o" => [ - "ssl/s3_cbc.c" + "providers/libtemplate.a" => [ + "providers/implementations/kem/libtemplate-lib-template_kem.o", + "providers/implementations/keymgmt/libtemplate-lib-template_kmgmt.o" ], "ssl/libssl-lib-bio_ssl.o" => [ "ssl/bio_ssl.c" @@ -25667,6 +29981,9 @@ our %unified_info = ( "ssl/libssl-lib-pqueue.o" => [ "ssl/pqueue.c" ], + "ssl/libssl-lib-priority_queue.o" => [ + "ssl/priority_queue.c" + ], "ssl/libssl-lib-s3_enc.o" => [ "ssl/s3_enc.c" ], @@ -25682,15 +29999,15 @@ our %unified_info = ( "ssl/libssl-lib-ssl_cert.o" => [ "ssl/ssl_cert.c" ], + "ssl/libssl-lib-ssl_cert_comp.o" => [ + "ssl/ssl_cert_comp.c" + ], "ssl/libssl-lib-ssl_ciph.o" => [ "ssl/ssl_ciph.c" ], "ssl/libssl-lib-ssl_conf.o" => [ "ssl/ssl_conf.c" ], - "ssl/libssl-lib-ssl_err.o" => [ - "ssl/ssl_err.c" - ], "ssl/libssl-lib-ssl_err_legacy.o" => [ "ssl/ssl_err_legacy.c" ], @@ -25739,11 +30056,131 @@ our %unified_info = ( "ssl/libssl-lib-tls_srp.o" => [ "ssl/tls_srp.c" ], - "ssl/record/libcommon-lib-tls_pad.o" => [ - "ssl/record/tls_pad.c" + "ssl/quic/libssl-lib-cc_newreno.o" => [ + "ssl/quic/cc_newreno.c" + ], + "ssl/quic/libssl-lib-json_enc.o" => [ + "ssl/quic/json_enc.c" + ], + "ssl/quic/libssl-lib-qlog.o" => [ + "ssl/quic/qlog.c" + ], + "ssl/quic/libssl-lib-qlog_event_helpers.o" => [ + "ssl/quic/qlog_event_helpers.c" + ], + "ssl/quic/libssl-lib-quic_ackm.o" => [ + "ssl/quic/quic_ackm.c" + ], + "ssl/quic/libssl-lib-quic_cfq.o" => [ + "ssl/quic/quic_cfq.c" + ], + "ssl/quic/libssl-lib-quic_channel.o" => [ + "ssl/quic/quic_channel.c" + ], + "ssl/quic/libssl-lib-quic_demux.o" => [ + "ssl/quic/quic_demux.c" + ], + "ssl/quic/libssl-lib-quic_engine.o" => [ + "ssl/quic/quic_engine.c" + ], + "ssl/quic/libssl-lib-quic_fc.o" => [ + "ssl/quic/quic_fc.c" + ], + "ssl/quic/libssl-lib-quic_fifd.o" => [ + "ssl/quic/quic_fifd.c" + ], + "ssl/quic/libssl-lib-quic_impl.o" => [ + "ssl/quic/quic_impl.c" + ], + "ssl/quic/libssl-lib-quic_lcidm.o" => [ + "ssl/quic/quic_lcidm.c" + ], + "ssl/quic/libssl-lib-quic_method.o" => [ + "ssl/quic/quic_method.c" + ], + "ssl/quic/libssl-lib-quic_obj.o" => [ + "ssl/quic/quic_obj.c" + ], + "ssl/quic/libssl-lib-quic_port.o" => [ + "ssl/quic/quic_port.c" + ], + "ssl/quic/libssl-lib-quic_rcidm.o" => [ + "ssl/quic/quic_rcidm.c" + ], + "ssl/quic/libssl-lib-quic_reactor.o" => [ + "ssl/quic/quic_reactor.c" + ], + "ssl/quic/libssl-lib-quic_reactor_wait_ctx.o" => [ + "ssl/quic/quic_reactor_wait_ctx.c" + ], + "ssl/quic/libssl-lib-quic_record_rx.o" => [ + "ssl/quic/quic_record_rx.c" + ], + "ssl/quic/libssl-lib-quic_record_shared.o" => [ + "ssl/quic/quic_record_shared.c" + ], + "ssl/quic/libssl-lib-quic_record_tx.o" => [ + "ssl/quic/quic_record_tx.c" + ], + "ssl/quic/libssl-lib-quic_record_util.o" => [ + "ssl/quic/quic_record_util.c" + ], + "ssl/quic/libssl-lib-quic_rstream.o" => [ + "ssl/quic/quic_rstream.c" ], - "ssl/record/libssl-lib-dtls1_bitmap.o" => [ - "ssl/record/dtls1_bitmap.c" + "ssl/quic/libssl-lib-quic_rx_depack.o" => [ + "ssl/quic/quic_rx_depack.c" + ], + "ssl/quic/libssl-lib-quic_sf_list.o" => [ + "ssl/quic/quic_sf_list.c" + ], + "ssl/quic/libssl-lib-quic_srt_gen.o" => [ + "ssl/quic/quic_srt_gen.c" + ], + "ssl/quic/libssl-lib-quic_srtm.o" => [ + "ssl/quic/quic_srtm.c" + ], + "ssl/quic/libssl-lib-quic_sstream.o" => [ + "ssl/quic/quic_sstream.c" + ], + "ssl/quic/libssl-lib-quic_statm.o" => [ + "ssl/quic/quic_statm.c" + ], + "ssl/quic/libssl-lib-quic_stream_map.o" => [ + "ssl/quic/quic_stream_map.c" + ], + "ssl/quic/libssl-lib-quic_thread_assist.o" => [ + "ssl/quic/quic_thread_assist.c" + ], + "ssl/quic/libssl-lib-quic_tls.o" => [ + "ssl/quic/quic_tls.c" + ], + "ssl/quic/libssl-lib-quic_tls_api.o" => [ + "ssl/quic/quic_tls_api.c" + ], + "ssl/quic/libssl-lib-quic_trace.o" => [ + "ssl/quic/quic_trace.c" + ], + "ssl/quic/libssl-lib-quic_tserver.o" => [ + "ssl/quic/quic_tserver.c" + ], + "ssl/quic/libssl-lib-quic_txp.o" => [ + "ssl/quic/quic_txp.c" + ], + "ssl/quic/libssl-lib-quic_txpim.o" => [ + "ssl/quic/quic_txpim.c" + ], + "ssl/quic/libssl-lib-quic_types.o" => [ + "ssl/quic/quic_types.c" + ], + "ssl/quic/libssl-lib-quic_wire.o" => [ + "ssl/quic/quic_wire.c" + ], + "ssl/quic/libssl-lib-quic_wire_pkt.o" => [ + "ssl/quic/quic_wire_pkt.c" + ], + "ssl/quic/libssl-lib-uint_set.o" => [ + "ssl/quic/uint_set.c" ], "ssl/record/libssl-lib-rec_layer_d1.o" => [ "ssl/record/rec_layer_d1.c" @@ -25751,14 +30188,44 @@ our %unified_info = ( "ssl/record/libssl-lib-rec_layer_s3.o" => [ "ssl/record/rec_layer_s3.c" ], - "ssl/record/libssl-lib-ssl3_buffer.o" => [ - "ssl/record/ssl3_buffer.c" + "ssl/record/methods/libcommon-lib-tls_pad.o" => [ + "ssl/record/methods/tls_pad.c" + ], + "ssl/record/methods/libdefault-lib-ssl3_cbc.o" => [ + "ssl/record/methods/ssl3_cbc.c" + ], + "ssl/record/methods/libfips-lib-ssl3_cbc.o" => [ + "ssl/record/methods/ssl3_cbc.c" + ], + "ssl/record/methods/libssl-lib-dtls_meth.o" => [ + "ssl/record/methods/dtls_meth.c" + ], + "ssl/record/methods/libssl-lib-ssl3_meth.o" => [ + "ssl/record/methods/ssl3_meth.c" + ], + "ssl/record/methods/libssl-lib-tls13_meth.o" => [ + "ssl/record/methods/tls13_meth.c" + ], + "ssl/record/methods/libssl-lib-tls1_meth.o" => [ + "ssl/record/methods/tls1_meth.c" + ], + "ssl/record/methods/libssl-lib-tls_common.o" => [ + "ssl/record/methods/tls_common.c" ], - "ssl/record/libssl-lib-ssl3_record.o" => [ - "ssl/record/ssl3_record.c" + "ssl/record/methods/libssl-lib-tls_multib.o" => [ + "ssl/record/methods/tls_multib.c" ], - "ssl/record/libssl-lib-ssl3_record_tls13.o" => [ - "ssl/record/ssl3_record_tls13.c" + "ssl/record/methods/libssl-lib-tlsany_meth.o" => [ + "ssl/record/methods/tlsany_meth.c" + ], + "ssl/rio/libssl-lib-poll_builder.o" => [ + "ssl/rio/poll_builder.c" + ], + "ssl/rio/libssl-lib-poll_immediate.o" => [ + "ssl/rio/poll_immediate.c" + ], + "ssl/rio/libssl-lib-rio_notifier.o" => [ + "ssl/rio/rio_notifier.c" ], "ssl/statem/libssl-lib-extensions.o" => [ "ssl/statem/extensions.c" @@ -25854,6 +30321,8 @@ our %unified_info = ( "test/asn1_string_table_test.c" ], "test/asn1_time_test" => [ + "crypto/asn1/asn1_time_test-bin-a_time.o", + "crypto/asn1_time_test-bin-ctype.o", "test/asn1_time_test-bin-asn1_time_test.o" ], "test/asn1_time_test-bin-asn1_time_test.o" => [ @@ -25884,6 +30353,18 @@ our %unified_info = ( "test/bftest-bin-bftest.o" => [ "test/bftest.c" ], + "test/bio_addr_test" => [ + "test/bio_addr_test-bin-bio_addr_test.o" + ], + "test/bio_addr_test-bin-bio_addr_test.o" => [ + "test/bio_addr_test.c" + ], + "test/bio_base64_test" => [ + "test/bio_base64_test-bin-bio_base64_test.o" + ], + "test/bio_base64_test-bin-bio_base64_test.o" => [ + "test/bio_base64_test.c" + ], "test/bio_callback_test" => [ "test/bio_callback_test-bin-bio_callback_test.o" ], @@ -25896,6 +30377,12 @@ our %unified_info = ( "test/bio_core_test-bin-bio_core_test.o" => [ "test/bio_core_test.c" ], + "test/bio_dgram_test" => [ + "test/bio_dgram_test-bin-bio_dgram_test.o" + ], + "test/bio_dgram_test-bin-bio_dgram_test.o" => [ + "test/bio_dgram_test.c" + ], "test/bio_enc_test" => [ "test/bio_enc_test-bin-bio_enc_test.o" ], @@ -25908,6 +30395,12 @@ our %unified_info = ( "test/bio_memleak_test-bin-bio_memleak_test.o" => [ "test/bio_memleak_test.c" ], + "test/bio_meth_test" => [ + "test/bio_meth_test-bin-bio_meth_test.o" + ], + "test/bio_meth_test-bin-bio_meth_test.o" => [ + "test/bio_meth_test.c" + ], "test/bio_prefix_text" => [ "test/bio_prefix_text-bin-bio_prefix_text.o" ], @@ -25926,6 +30419,12 @@ our %unified_info = ( "test/bio_readbuffer_test-bin-bio_readbuffer_test.o" => [ "test/bio_readbuffer_test.c" ], + "test/bio_tfo_test" => [ + "test/bio_tfo_test-bin-bio_tfo_test.o" + ], + "test/bio_tfo_test-bin-bio_tfo_test.o" => [ + "test/bio_tfo_test.c" + ], "test/bioprinttest" => [ "test/bioprinttest-bin-bioprinttest.o" ], @@ -25944,6 +30443,12 @@ our %unified_info = ( "test/bntest-bin-bntest.o" => [ "test/bntest.c" ], + "test/build_wincrypt_test" => [ + "test/build_wincrypt_test-bin-build_wincrypt_test.o" + ], + "test/build_wincrypt_test-bin-build_wincrypt_test.o" => [ + "test/build_wincrypt_test.c" + ], "test/buildtest_c_aes" => [ "test/buildtest_c_aes-bin-buildtest_aes.o" ], @@ -25974,6 +30479,12 @@ our %unified_info = ( "test/buildtest_c_buffer-bin-buildtest_buffer.o" => [ "test/buildtest_buffer.c" ], + "test/buildtest_c_byteorder" => [ + "test/buildtest_c_byteorder-bin-buildtest_byteorder.o" + ], + "test/buildtest_c_byteorder-bin-buildtest_byteorder.o" => [ + "test/buildtest_byteorder.c" + ], "test/buildtest_c_camellia" => [ "test/buildtest_c_camellia-bin-buildtest_camellia.o" ], @@ -26022,12 +30533,6 @@ our %unified_info = ( "test/buildtest_c_core_dispatch-bin-buildtest_core_dispatch.o" => [ "test/buildtest_core_dispatch.c" ], - "test/buildtest_c_core_names" => [ - "test/buildtest_c_core_names-bin-buildtest_core_names.o" - ], - "test/buildtest_c_core_names-bin-buildtest_core_names.o" => [ - "test/buildtest_core_names.c" - ], "test/buildtest_c_core_object" => [ "test/buildtest_c_core_object-bin-buildtest_core_object.o" ], @@ -26076,6 +30581,12 @@ our %unified_info = ( "test/buildtest_c_e_os2-bin-buildtest_e_os2.o" => [ "test/buildtest_e_os2.c" ], + "test/buildtest_c_e_ostime" => [ + "test/buildtest_c_e_ostime-bin-buildtest_e_ostime.o" + ], + "test/buildtest_c_e_ostime-bin-buildtest_e_ostime.o" => [ + "test/buildtest_e_ostime.c" + ], "test/buildtest_c_ebcdic" => [ "test/buildtest_c_ebcdic-bin-buildtest_ebcdic.o" ], @@ -26130,6 +30641,12 @@ our %unified_info = ( "test/buildtest_c_hmac-bin-buildtest_hmac.o" => [ "test/buildtest_hmac.c" ], + "test/buildtest_c_hpke" => [ + "test/buildtest_c_hpke-bin-buildtest_hpke.o" + ], + "test/buildtest_c_hpke-bin-buildtest_hpke.o" => [ + "test/buildtest_hpke.c" + ], "test/buildtest_c_http" => [ "test/buildtest_c_http-bin-buildtest_http.o" ], @@ -26142,6 +30659,12 @@ our %unified_info = ( "test/buildtest_c_idea-bin-buildtest_idea.o" => [ "test/buildtest_idea.c" ], + "test/buildtest_c_indicator" => [ + "test/buildtest_c_indicator-bin-buildtest_indicator.o" + ], + "test/buildtest_c_indicator-bin-buildtest_indicator.o" => [ + "test/buildtest_indicator.c" + ], "test/buildtest_c_kdf" => [ "test/buildtest_c_kdf-bin-buildtest_kdf.o" ], @@ -26172,6 +30695,12 @@ our %unified_info = ( "test/buildtest_c_mdc2-bin-buildtest_mdc2.o" => [ "test/buildtest_mdc2.c" ], + "test/buildtest_c_ml_kem" => [ + "test/buildtest_c_ml_kem-bin-buildtest_ml_kem.o" + ], + "test/buildtest_c_ml_kem-bin-buildtest_ml_kem.o" => [ + "test/buildtest_ml_kem.c" + ], "test/buildtest_c_modes" => [ "test/buildtest_c_modes-bin-buildtest_modes.o" ], @@ -26232,6 +30761,12 @@ our %unified_info = ( "test/buildtest_c_provider-bin-buildtest_provider.o" => [ "test/buildtest_provider.c" ], + "test/buildtest_c_quic" => [ + "test/buildtest_c_quic-bin-buildtest_quic.o" + ], + "test/buildtest_c_quic-bin-buildtest_quic.o" => [ + "test/buildtest_quic.c" + ], "test/buildtest_c_rand" => [ "test/buildtest_c_rand-bin-buildtest_rand.o" ], @@ -26316,6 +30851,12 @@ our %unified_info = ( "test/buildtest_c_symhacks-bin-buildtest_symhacks.o" => [ "test/buildtest_symhacks.c" ], + "test/buildtest_c_thread" => [ + "test/buildtest_c_thread-bin-buildtest_thread.o" + ], + "test/buildtest_c_thread-bin-buildtest_thread.o" => [ + "test/buildtest_thread.c" + ], "test/buildtest_c_tls1" => [ "test/buildtest_c_tls1-bin-buildtest_tls1.o" ], @@ -26346,6 +30887,29 @@ our %unified_info = ( "test/buildtest_c_whrlpool-bin-buildtest_whrlpool.o" => [ "test/buildtest_whrlpool.c" ], + "test/byteorder_test" => [ + "test/byteorder_test-bin-byteorder_test.o" + ], + "test/byteorder_test-bin-byteorder_test.o" => [ + "test/byteorder_test.c" + ], + "test/ca_internals_test" => [ + "apps/ca_internals_test-bin-ca.o", + "apps/lib/ca_internals_test-bin-app_libctx.o", + "apps/lib/ca_internals_test-bin-app_provider.o", + "apps/lib/ca_internals_test-bin-app_rand.o", + "apps/lib/ca_internals_test-bin-app_x509.o", + "apps/lib/ca_internals_test-bin-apps.o", + "apps/lib/ca_internals_test-bin-apps_ui.o", + "apps/lib/ca_internals_test-bin-engine.o", + "apps/lib/ca_internals_test-bin-fmt.o", + "crypto/asn1/ca_internals_test-bin-a_time.o", + "crypto/ca_internals_test-bin-ctype.o", + "test/ca_internals_test-bin-ca_internals_test.o" + ], + "test/ca_internals_test-bin-ca_internals_test.o" => [ + "test/ca_internals_test.c" + ], "test/casttest" => [ "test/casttest-bin-casttest.o" ], @@ -26524,6 +31088,12 @@ our %unified_info = ( "test/danetest-bin-danetest.o" => [ "test/danetest.c" ], + "test/decoder_propq_test" => [ + "test/decoder_propq_test-bin-decoder_propq_test.o" + ], + "test/decoder_propq_test-bin-decoder_propq_test.o" => [ + "test/decoder_propq_test.c" + ], "test/defltfips_test" => [ "test/defltfips_test-bin-defltfips_test.o" ], @@ -26605,6 +31175,7 @@ our %unified_info = ( "test/ectest.c" ], "test/endecode_test" => [ + "providers/endecode_test-bin-legacyprov.o", "test/endecode_test-bin-endecode_test.o", "test/helpers/endecode_test-bin-predefined_dhparams.o" ], @@ -26637,17 +31208,29 @@ our %unified_info = ( ], "test/evp_extra_test" => [ "providers/evp_extra_test-bin-legacyprov.o", - "test/evp_extra_test-bin-evp_extra_test.o" + "test/evp_extra_test-bin-evp_extra_test.o", + "test/evp_extra_test-bin-fake_pipelineprov.o", + "test/evp_extra_test-bin-fake_rsaprov.o" ], "test/evp_extra_test-bin-evp_extra_test.o" => [ "test/evp_extra_test.c" ], + "test/evp_extra_test-bin-fake_pipelineprov.o" => [ + "test/fake_pipelineprov.c" + ], + "test/evp_extra_test-bin-fake_rsaprov.o" => [ + "test/fake_rsaprov.c" + ], "test/evp_extra_test2" => [ - "test/evp_extra_test2-bin-evp_extra_test2.o" + "test/evp_extra_test2-bin-evp_extra_test2.o", + "test/evp_extra_test2-bin-tls-provider.o" ], "test/evp_extra_test2-bin-evp_extra_test2.o" => [ "test/evp_extra_test2.c" ], + "test/evp_extra_test2-bin-tls-provider.o" => [ + "test/tls-provider.c" + ], "test/evp_fetch_prov_test" => [ "test/evp_fetch_prov_test-bin-evp_fetch_prov_test.o" ], @@ -26672,6 +31255,12 @@ our %unified_info = ( "test/evp_pkey_ctx_new_from_name-bin-evp_pkey_ctx_new_from_name.o" => [ "test/evp_pkey_ctx_new_from_name.c" ], + "test/evp_pkey_dhkem_test" => [ + "test/evp_pkey_dhkem_test-bin-evp_pkey_dhkem_test.o" + ], + "test/evp_pkey_dhkem_test-bin-evp_pkey_dhkem_test.o" => [ + "test/evp_pkey_dhkem_test.c" + ], "test/evp_pkey_dparams_test" => [ "test/evp_pkey_dparams_test-bin-evp_pkey_dparams_test.o" ], @@ -26684,12 +31273,28 @@ our %unified_info = ( "test/evp_pkey_provided_test-bin-evp_pkey_provided_test.o" => [ "test/evp_pkey_provided_test.c" ], + "test/evp_skey_test" => [ + "test/evp_skey_test-bin-evp_skey_test.o", + "test/evp_skey_test-bin-fake_cipherprov.o" + ], + "test/evp_skey_test-bin-evp_skey_test.o" => [ + "test/evp_skey_test.c" + ], + "test/evp_skey_test-bin-fake_cipherprov.o" => [ + "test/fake_cipherprov.c" + ], "test/evp_test" => [ "test/evp_test-bin-evp_test.o" ], "test/evp_test-bin-evp_test.o" => [ "test/evp_test.c" ], + "test/evp_xof_test" => [ + "test/evp_xof_test-bin-evp_xof_test.o" + ], + "test/evp_xof_test-bin-evp_xof_test.o" => [ + "test/evp_xof_test.c" + ], "test/exdatatest" => [ "test/exdatatest-bin-exdatatest.o" ], @@ -26775,15 +31380,108 @@ our %unified_info = ( "test/helpers/fatalerrtest-bin-ssltestlib.o" => [ "test/helpers/ssltestlib.c" ], + "test/helpers/json_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/json_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/json_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/json_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/pkcs12_api_test-bin-pkcs12.o" => [ + "test/helpers/pkcs12.c" + ], "test/helpers/pkcs12_format_test-bin-pkcs12.o" => [ "test/helpers/pkcs12.c" ], + "test/helpers/quic_multistream_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quic_multistream_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quic_multistream_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quic_multistream_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quic_newcid_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quic_newcid_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quic_newcid_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quic_newcid_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quic_radix_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quic_radix_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quic_radix_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quic_radix_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quic_srt_gen_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quic_srt_gen_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quic_srt_gen_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quic_srt_gen_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quicapitest-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quicapitest-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quicapitest-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quicapitest-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quicfaultstest-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quicfaultstest-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quicfaultstest-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quicfaultstest-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], "test/helpers/recordlentest-bin-ssltestlib.o" => [ "test/helpers/ssltestlib.c" ], + "test/helpers/rpktest-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], "test/helpers/servername_test-bin-ssltestlib.o" => [ "test/helpers/ssltestlib.c" ], + "test/helpers/ssl_handshake_rtt_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], "test/helpers/ssl_old_test-bin-predefined_dhparams.o" => [ "test/helpers/predefined_dhparams.c" ], @@ -26811,6 +31509,9 @@ our %unified_info = ( "test/helpers/tls13ccstest-bin-ssltestlib.o" => [ "test/helpers/ssltestlib.c" ], + "test/helpers/tls13groupselection_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], "test/hexstr_test" => [ "test/hexstr_test-bin-hexstr_test.o" ], @@ -26823,6 +31524,12 @@ our %unified_info = ( "test/hmactest-bin-hmactest.o" => [ "test/hmactest.c" ], + "test/hpke_test" => [ + "test/hpke_test-bin-hpke_test.o" + ], + "test/hpke_test-bin-hpke_test.o" => [ + "test/hpke_test.c" + ], "test/http_test" => [ "test/http_test-bin-http_test.o" ], @@ -26841,6 +31548,16 @@ our %unified_info = ( "test/igetest-bin-igetest.o" => [ "test/igetest.c" ], + "test/json_test" => [ + "test/helpers/json_test-bin-noisydgrambio.o", + "test/helpers/json_test-bin-pktsplitbio.o", + "test/helpers/json_test-bin-quictestlib.o", + "test/helpers/json_test-bin-ssltestlib.o", + "test/json_test-bin-json_test.o" + ], + "test/json_test-bin-json_test.o" => [ + "test/json_test.c" + ], "test/keymgmt_internal_test" => [ "test/keymgmt_internal_test-bin-keymgmt_internal_test.o" ], @@ -26861,6 +31578,7 @@ our %unified_info = ( "test/testutil/libtestutil-lib-driver.o", "test/testutil/libtestutil-lib-fake_random.o", "test/testutil/libtestutil-lib-format_output.o", + "test/testutil/libtestutil-lib-helper.o", "test/testutil/libtestutil-lib-load.o", "test/testutil/libtestutil-lib-main.o", "test/testutil/libtestutil-lib-options.o", @@ -26873,6 +31591,12 @@ our %unified_info = ( "test/testutil/libtestutil-lib-tests.o", "test/testutil/libtestutil-lib-testutil_init.o" ], + "test/list_test" => [ + "test/list_test-bin-list_test.o" + ], + "test/list_test-bin-list_test.o" => [ + "test/list_test.c" + ], "test/localetest" => [ "test/localetest-bin-localetest.o" ], @@ -26891,12 +31615,36 @@ our %unified_info = ( "test/mdc2test-bin-mdc2test.o" => [ "test/mdc2test.c" ], + "test/membio_test" => [ + "test/membio_test-bin-membio_test.o" + ], + "test/membio_test-bin-membio_test.o" => [ + "test/membio_test.c" + ], "test/memleaktest" => [ "test/memleaktest-bin-memleaktest.o" ], "test/memleaktest-bin-memleaktest.o" => [ "test/memleaktest.c" ], + "test/ml_dsa_test" => [ + "test/ml_dsa_test-bin-ml_dsa_test.o" + ], + "test/ml_dsa_test-bin-ml_dsa_test.o" => [ + "test/ml_dsa_test.c" + ], + "test/ml_kem_evp_extra_test" => [ + "test/ml_kem_evp_extra_test-bin-ml_kem_evp_extra_test.o" + ], + "test/ml_kem_evp_extra_test-bin-ml_kem_evp_extra_test.o" => [ + "test/ml_kem_evp_extra_test.c" + ], + "test/ml_kem_internal_test" => [ + "test/ml_kem_internal_test-bin-ml_kem_internal_test.o" + ], + "test/ml_kem_internal_test-bin-ml_kem_internal_test.o" => [ + "test/ml_kem_internal_test.c" + ], "test/modes_internal_test" => [ "test/modes_internal_test-bin-modes_internal_test.o" ], @@ -26940,11 +31688,18 @@ our %unified_info = ( "test/p_test.c" ], "test/packettest" => [ + "crypto/packettest-bin-quic_vlint.o", "test/packettest-bin-packettest.o" ], "test/packettest-bin-packettest.o" => [ "test/packettest.c" ], + "test/pairwise_fail_test" => [ + "test/pairwise_fail_test-bin-pairwise_fail_test.o" + ], + "test/pairwise_fail_test-bin-pairwise_fail_test.o" => [ + "test/pairwise_fail_test.c" + ], "test/param_build_test" => [ "test/param_build_test-bin-param_build_test.o" ], @@ -26993,6 +31748,13 @@ our %unified_info = ( "test/pemtest-bin-pemtest.o" => [ "test/pemtest.c" ], + "test/pkcs12_api_test" => [ + "test/helpers/pkcs12_api_test-bin-pkcs12.o", + "test/pkcs12_api_test-bin-pkcs12_api_test.o" + ], + "test/pkcs12_api_test-bin-pkcs12_api_test.o" => [ + "test/pkcs12_api_test.c" + ], "test/pkcs12_format_test" => [ "test/helpers/pkcs12_format_test-bin-pkcs12.o", "test/pkcs12_format_test-bin-pkcs12_format_test.o" @@ -27024,6 +31786,12 @@ our %unified_info = ( "test/poly1305_internal_test-bin-poly1305_internal_test.o" => [ "test/poly1305_internal_test.c" ], + "test/priority_queue_test" => [ + "test/priority_queue_test-bin-priority_queue_test.o" + ], + "test/priority_queue_test-bin-priority_queue_test.o" => [ + "test/priority_queue_test.c" + ], "test/property_test" => [ "test/property_test-bin-property_test.o" ], @@ -27042,6 +31810,12 @@ our %unified_info = ( "test/provfetchtest-bin-provfetchtest.o" => [ "test/provfetchtest.c" ], + "test/provider_default_search_path_test" => [ + "test/provider_default_search_path_test-bin-provider_default_search_path_test.o" + ], + "test/provider_default_search_path_test-bin-provider_default_search_path_test.o" => [ + "test/provider_default_search_path_test.c" + ], "test/provider_fallback_test" => [ "test/provider_fallback_test-bin-provider_fallback_test.o" ], @@ -27090,6 +31864,174 @@ our %unified_info = ( "test/punycode_test-bin-punycode_test.o" => [ "test/punycode_test.c" ], + "test/quic_ackm_test" => [ + "test/quic_ackm_test-bin-cc_dummy.o", + "test/quic_ackm_test-bin-quic_ackm_test.o" + ], + "test/quic_ackm_test-bin-cc_dummy.o" => [ + "test/cc_dummy.c" + ], + "test/quic_ackm_test-bin-quic_ackm_test.o" => [ + "test/quic_ackm_test.c" + ], + "test/quic_cc_test" => [ + "test/quic_cc_test-bin-quic_cc_test.o" + ], + "test/quic_cc_test-bin-quic_cc_test.o" => [ + "test/quic_cc_test.c" + ], + "test/quic_cfq_test" => [ + "test/quic_cfq_test-bin-quic_cfq_test.o" + ], + "test/quic_cfq_test-bin-quic_cfq_test.o" => [ + "test/quic_cfq_test.c" + ], + "test/quic_client_test" => [ + "test/quic_client_test-bin-quic_client_test.o" + ], + "test/quic_client_test-bin-quic_client_test.o" => [ + "test/quic_client_test.c" + ], + "test/quic_fc_test" => [ + "test/quic_fc_test-bin-quic_fc_test.o" + ], + "test/quic_fc_test-bin-quic_fc_test.o" => [ + "test/quic_fc_test.c" + ], + "test/quic_fifd_test" => [ + "test/quic_fifd_test-bin-cc_dummy.o", + "test/quic_fifd_test-bin-quic_fifd_test.o" + ], + "test/quic_fifd_test-bin-cc_dummy.o" => [ + "test/cc_dummy.c" + ], + "test/quic_fifd_test-bin-quic_fifd_test.o" => [ + "test/quic_fifd_test.c" + ], + "test/quic_lcidm_test" => [ + "test/quic_lcidm_test-bin-quic_lcidm_test.o" + ], + "test/quic_lcidm_test-bin-quic_lcidm_test.o" => [ + "test/quic_lcidm_test.c" + ], + "test/quic_multistream_test" => [ + "test/helpers/quic_multistream_test-bin-noisydgrambio.o", + "test/helpers/quic_multistream_test-bin-pktsplitbio.o", + "test/helpers/quic_multistream_test-bin-quictestlib.o", + "test/helpers/quic_multistream_test-bin-ssltestlib.o", + "test/quic_multistream_test-bin-quic_multistream_test.o" + ], + "test/quic_multistream_test-bin-quic_multistream_test.o" => [ + "test/quic_multistream_test.c" + ], + "test/quic_newcid_test" => [ + "test/helpers/quic_newcid_test-bin-noisydgrambio.o", + "test/helpers/quic_newcid_test-bin-pktsplitbio.o", + "test/helpers/quic_newcid_test-bin-quictestlib.o", + "test/helpers/quic_newcid_test-bin-ssltestlib.o", + "test/quic_newcid_test-bin-quic_newcid_test.o" + ], + "test/quic_newcid_test-bin-quic_newcid_test.o" => [ + "test/quic_newcid_test.c" + ], + "test/quic_qlog_test" => [ + "test/quic_qlog_test-bin-quic_qlog_test.o" + ], + "test/quic_qlog_test-bin-quic_qlog_test.o" => [ + "test/quic_qlog_test.c" + ], + "test/quic_radix_test" => [ + "test/helpers/quic_radix_test-bin-noisydgrambio.o", + "test/helpers/quic_radix_test-bin-pktsplitbio.o", + "test/helpers/quic_radix_test-bin-quictestlib.o", + "test/helpers/quic_radix_test-bin-ssltestlib.o", + "test/radix/quic_radix_test-bin-quic_radix.o" + ], + "test/quic_rcidm_test" => [ + "test/quic_rcidm_test-bin-quic_rcidm_test.o" + ], + "test/quic_rcidm_test-bin-quic_rcidm_test.o" => [ + "test/quic_rcidm_test.c" + ], + "test/quic_record_test" => [ + "test/quic_record_test-bin-quic_record_test.o" + ], + "test/quic_record_test-bin-quic_record_test.o" => [ + "test/quic_record_test.c" + ], + "test/quic_srt_gen_test" => [ + "test/helpers/quic_srt_gen_test-bin-noisydgrambio.o", + "test/helpers/quic_srt_gen_test-bin-pktsplitbio.o", + "test/helpers/quic_srt_gen_test-bin-quictestlib.o", + "test/helpers/quic_srt_gen_test-bin-ssltestlib.o", + "test/quic_srt_gen_test-bin-quic_srt_gen_test.o" + ], + "test/quic_srt_gen_test-bin-quic_srt_gen_test.o" => [ + "test/quic_srt_gen_test.c" + ], + "test/quic_srtm_test" => [ + "test/quic_srtm_test-bin-quic_srtm_test.o" + ], + "test/quic_srtm_test-bin-quic_srtm_test.o" => [ + "test/quic_srtm_test.c" + ], + "test/quic_stream_test" => [ + "test/quic_stream_test-bin-quic_stream_test.o" + ], + "test/quic_stream_test-bin-quic_stream_test.o" => [ + "test/quic_stream_test.c" + ], + "test/quic_tserver_test" => [ + "test/quic_tserver_test-bin-quic_tserver_test.o" + ], + "test/quic_tserver_test-bin-quic_tserver_test.o" => [ + "test/quic_tserver_test.c" + ], + "test/quic_txp_test" => [ + "test/quic_txp_test-bin-cc_dummy.o", + "test/quic_txp_test-bin-quic_txp_test.o" + ], + "test/quic_txp_test-bin-cc_dummy.o" => [ + "test/cc_dummy.c" + ], + "test/quic_txp_test-bin-quic_txp_test.o" => [ + "test/quic_txp_test.c" + ], + "test/quic_txpim_test" => [ + "test/quic_txpim_test-bin-quic_txpim_test.o" + ], + "test/quic_txpim_test-bin-quic_txpim_test.o" => [ + "test/quic_txpim_test.c" + ], + "test/quic_wire_test" => [ + "test/quic_wire_test-bin-quic_wire_test.o" + ], + "test/quic_wire_test-bin-quic_wire_test.o" => [ + "test/quic_wire_test.c" + ], + "test/quicapitest" => [ + "test/helpers/quicapitest-bin-noisydgrambio.o", + "test/helpers/quicapitest-bin-pktsplitbio.o", + "test/helpers/quicapitest-bin-quictestlib.o", + "test/helpers/quicapitest-bin-ssltestlib.o", + "test/quicapitest-bin-quicapitest.o" + ], + "test/quicapitest-bin-quicapitest.o" => [ + "test/quicapitest.c" + ], + "test/quicfaultstest" => [ + "test/helpers/quicfaultstest-bin-noisydgrambio.o", + "test/helpers/quicfaultstest-bin-pktsplitbio.o", + "test/helpers/quicfaultstest-bin-quictestlib.o", + "test/helpers/quicfaultstest-bin-ssltestlib.o", + "test/quicfaultstest-bin-quicfaultstest.o" + ], + "test/quicfaultstest-bin-quicfaultstest.o" => [ + "test/quicfaultstest.c" + ], + "test/radix/quic_radix_test-bin-quic_radix.o" => [ + "test/radix/quic_radix.c" + ], "test/rand_status_test" => [ "test/rand_status_test-bin-rand_status_test.o" ], @@ -27120,11 +32062,11 @@ our %unified_info = ( "test/rc5test-bin-rc5test.o" => [ "test/rc5test.c" ], - "test/rdrand_sanitytest" => [ - "test/rdrand_sanitytest-bin-rdrand_sanitytest.o" + "test/rdcpu_sanitytest" => [ + "test/rdcpu_sanitytest-bin-rdcpu_sanitytest.o" ], - "test/rdrand_sanitytest-bin-rdrand_sanitytest.o" => [ - "test/rdrand_sanitytest.c" + "test/rdcpu_sanitytest-bin-rdcpu_sanitytest.o" => [ + "test/rdcpu_sanitytest.c" ], "test/recordlentest" => [ "test/helpers/recordlentest-bin-ssltestlib.o", @@ -27133,6 +32075,13 @@ our %unified_info = ( "test/recordlentest-bin-recordlentest.o" => [ "test/recordlentest.c" ], + "test/rpktest" => [ + "test/helpers/rpktest-bin-ssltestlib.o", + "test/rpktest-bin-rpktest.o" + ], + "test/rpktest-bin-rpktest.o" => [ + "test/rpktest.c" + ], "test/rsa_complex" => [ "test/rsa_complex-bin-rsa_complex.o" ], @@ -27157,6 +32106,18 @@ our %unified_info = ( "test/rsa_test-bin-rsa_test.o" => [ "test/rsa_test.c" ], + "test/rsa_x931_test" => [ + "test/rsa_x931_test-bin-rsa_x931_test.o" + ], + "test/rsa_x931_test-bin-rsa_x931_test.o" => [ + "test/rsa_x931_test.c" + ], + "test/safe_math_test" => [ + "test/safe_math_test-bin-safe_math_test.o" + ], + "test/safe_math_test-bin-safe_math_test.o" => [ + "test/safe_math_test.c" + ], "test/sanitytest" => [ "test/sanitytest-bin-sanitytest.o" ], @@ -27188,6 +32149,12 @@ our %unified_info = ( "test/siphash_internal_test-bin-siphash_internal_test.o" => [ "test/siphash_internal_test.c" ], + "test/slh_dsa_test" => [ + "test/slh_dsa_test-bin-slh_dsa_test.o" + ], + "test/slh_dsa_test-bin-slh_dsa_test.o" => [ + "test/slh_dsa_test.c" + ], "test/sm2_internal_test" => [ "test/sm2_internal_test-bin-sm2_internal_test.o" ], @@ -27230,6 +32197,13 @@ our %unified_info = ( "test/ssl_ctx_test-bin-ssl_ctx_test.o" => [ "test/ssl_ctx_test.c" ], + "test/ssl_handshake_rtt_test" => [ + "test/helpers/ssl_handshake_rtt_test-bin-ssltestlib.o", + "test/ssl_handshake_rtt_test-bin-ssl_handshake_rtt_test.o" + ], + "test/ssl_handshake_rtt_test-bin-ssl_handshake_rtt_test.o" => [ + "test/ssl_handshake_rtt_test.c" + ], "test/ssl_old_test" => [ "test/helpers/ssl_old_test-bin-predefined_dhparams.o", "test/ssl_old_test-bin-ssl_old_test.o" @@ -27288,6 +32262,12 @@ our %unified_info = ( "test/stack_test-bin-stack_test.o" => [ "test/stack_test.c" ], + "test/strtoultest" => [ + "test/strtoultest-bin-strtoultest.o" + ], + "test/strtoultest-bin-strtoultest.o" => [ + "test/strtoultest.c" + ], "test/sysdefaulttest" => [ "test/sysdefaulttest-bin-sysdefaulttest.o" ], @@ -27318,6 +32298,9 @@ our %unified_info = ( "test/testutil/libtestutil-lib-format_output.o" => [ "test/testutil/format_output.c" ], + "test/testutil/libtestutil-lib-helper.o" => [ + "test/testutil/helper.c" + ], "test/testutil/libtestutil-lib-load.o" => [ "test/testutil/load.c" ], @@ -27351,6 +32334,12 @@ our %unified_info = ( "test/testutil/libtestutil-lib-testutil_init.o" => [ "test/testutil/testutil_init.c" ], + "test/threadpool_test" => [ + "test/threadpool_test-bin-threadpool_test.o" + ], + "test/threadpool_test-bin-threadpool_test.o" => [ + "test/threadpool_test.c" + ], "test/threadstest" => [ "test/threadstest-bin-threadstest.o" ], @@ -27369,6 +32358,12 @@ our %unified_info = ( "test/time_offset_test-bin-time_offset_test.o" => [ "test/time_offset_test.c" ], + "test/time_test" => [ + "test/time_test-bin-time_test.o" + ], + "test/time_test-bin-time_test.o" => [ + "test/time_test.c" + ], "test/tls13ccstest" => [ "test/helpers/tls13ccstest-bin-ssltestlib.o", "test/tls13ccstest-bin-tls13ccstest.o" @@ -27382,6 +32377,13 @@ our %unified_info = ( "test/tls13encryptiontest-bin-tls13encryptiontest.o" => [ "test/tls13encryptiontest.c" ], + "test/tls13groupselection_test" => [ + "test/helpers/tls13groupselection_test-bin-ssltestlib.o", + "test/tls13groupselection_test-bin-tls13groupselection_test.o" + ], + "test/tls13groupselection_test-bin-tls13groupselection_test.o" => [ + "test/tls13groupselection_test.c" + ], "test/trace_api_test" => [ "test/trace_api_test-bin-trace_api_test.o" ], @@ -27437,6 +32439,12 @@ our %unified_info = ( "test/wpackettest-bin-wpackettest.o" => [ "test/wpackettest.c" ], + "test/x509_acert_test" => [ + "test/x509_acert_test-bin-x509_acert_test.o" + ], + "test/x509_acert_test-bin-x509_acert_test.o" => [ + "test/x509_acert_test.c" + ], "test/x509_check_cert_pkey_test" => [ "test/x509_check_cert_pkey_test-bin-x509_check_cert_pkey_test.o" ], @@ -27455,6 +32463,24 @@ our %unified_info = ( "test/x509_internal_test-bin-x509_internal_test.o" => [ "test/x509_internal_test.c" ], + "test/x509_load_cert_file_test" => [ + "test/x509_load_cert_file_test-bin-x509_load_cert_file_test.o" + ], + "test/x509_load_cert_file_test-bin-x509_load_cert_file_test.o" => [ + "test/x509_load_cert_file_test.c" + ], + "test/x509_req_test" => [ + "test/x509_req_test-bin-x509_req_test.o" + ], + "test/x509_req_test-bin-x509_req_test.o" => [ + "test/x509_req_test.c" + ], + "test/x509_test" => [ + "test/x509_test-bin-x509_test.o" + ], + "test/x509_test-bin-x509_test.o" => [ + "test/x509_test.c" + ], "test/x509_time_test" => [ "test/x509_time_test-bin-x509_time_test.o" ], @@ -27518,6 +32544,7 @@ my @makevars = ( "LDLIBS", "MT", "MTFLAGS", + "OBJCOPY", "PERL", "RANLIB", "RC", @@ -27531,6 +32558,12 @@ my %disabled_info = ( "asan" => { "macro" => "OPENSSL_NO_ASAN" }, + "brotli" => { + "macro" => "OPENSSL_NO_BROTLI" + }, + "brotli-dynamic" => { + "macro" => "OPENSSL_NO_BROTLI_DYNAMIC" + }, "comp" => { "macro" => "OPENSSL_NO_COMP", "skipped" => [ @@ -27543,6 +32576,9 @@ my %disabled_info = ( "crypto-mdebug-backtrace" => { "macro" => "OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE" }, + "demos" => { + "macro" => "OPENSSL_NO_DEMOS" + }, "devcryptoeng" => { "macro" => "OPENSSL_NO_DEVCRYPTOENG" }, @@ -27555,12 +32591,24 @@ my %disabled_info = ( "external-tests" => { "macro" => "OPENSSL_NO_EXTERNAL_TESTS" }, + "fips-jitter" => { + "macro" => "OPENSSL_NO_FIPS_JITTER" + }, "fuzz-afl" => { "macro" => "OPENSSL_NO_FUZZ_AFL" }, "fuzz-libfuzzer" => { "macro" => "OPENSSL_NO_FUZZ_LIBFUZZER" }, + "h3demo" => { + "macro" => "OPENSSL_NO_H3DEMO" + }, + "hqinterop" => { + "macro" => "OPENSSL_NO_HQINTEROP" + }, + "jitter" => { + "macro" => "OPENSSL_NO_JITTER" + }, "ktls" => { "macro" => "OPENSSL_NO_KTLS" }, @@ -27576,6 +32624,9 @@ my %disabled_info = ( "msan" => { "macro" => "OPENSSL_NO_MSAN" }, + "pie" => { + "macro" => "OPENSSL_NO_PIE" + }, "rc5" => { "macro" => "OPENSSL_NO_RC5", "skipped" => [ @@ -27591,6 +32642,12 @@ my %disabled_info = ( "ssl3-method" => { "macro" => "OPENSSL_NO_SSL3_METHOD" }, + "sslkeylog" => { + "macro" => "OPENSSL_NO_SSLKEYLOG" + }, + "tfo" => { + "macro" => "OPENSSL_NO_TFO" + }, "trace" => { "macro" => "OPENSSL_NO_TRACE" }, @@ -27605,6 +32662,21 @@ my %disabled_info = ( }, "weak-ssl-ciphers" => { "macro" => "OPENSSL_NO_WEAK_SSL_CIPHERS" + }, + "winstore" => { + "macro" => "OPENSSL_NO_WINSTORE" + }, + "zlib" => { + "macro" => "OPENSSL_NO_ZLIB" + }, + "zlib-dynamic" => { + "macro" => "OPENSSL_NO_ZLIB_DYNAMIC" + }, + "zstd" => { + "macro" => "OPENSSL_NO_ZSTD" + }, + "zstd-dynamic" => { + "macro" => "OPENSSL_NO_ZSTD_DYNAMIC" } ); my @user_crossable = qw( AR AS CC CXX CPP LD MT RANLIB RC ); @@ -27618,15 +32690,15 @@ unless (caller) { use File::Copy; use Pod::Usage; - use lib '/home/runner/work/node/node/deps/openssl/openssl/util/perl'; - use OpenSSL::fallback '/home/runner/work/node/node/deps/openssl/openssl/external/perl/MODULES.txt'; + use lib '/node/deps/openssl/openssl/util/perl'; + use OpenSSL::fallback '/node/deps/openssl/openssl/external/perl/MODULES.txt'; my $here = dirname($0); if (scalar @ARGV == 0) { # With no arguments, re-create the build file # We do that in two steps, where the first step emits perl - # snipets. + # snippets. my $buildfile = $config{build_file}; my $buildfile_template = "$buildfile.in"; @@ -27646,7 +32718,7 @@ unless (caller) { ); use lib '.'; - use lib '/home/runner/work/node/node/deps/openssl/openssl/Configurations'; + use lib '/node/deps/openssl/openssl/Configurations'; use gentemplate; open my $buildfile_template_fh, ">$buildfile_template" @@ -27663,8 +32735,8 @@ unless (caller) { my $prepend = <<'_____'; use File::Spec::Functions; -use lib '/home/runner/work/node/node/deps/openssl/openssl/util/perl'; -use lib '/home/runner/work/node/node/deps/openssl/openssl/Configurations'; +use lib '/node/deps/openssl/openssl/util/perl'; +use lib '/node/deps/openssl/openssl/Configurations'; use lib '.'; use platform; _____ diff --git a/deps/openssl/config/archs/darwin-i386-cc/asm/crypto/aes/aes-586.S b/deps/openssl/config/archs/darwin-i386-cc/asm/crypto/aes/aes-586.S index f474c45fde8a8f..07586720827b91 100644 --- a/deps/openssl/config/archs/darwin-i386-cc/asm/crypto/aes/aes-586.S +++ b/deps/openssl/config/archs/darwin-i386-cc/asm/crypto/aes/aes-586.S @@ -3264,4 +3264,4 @@ L056permute: L_OPENSSL_ia32cap_P$non_lazy_ptr: .indirect_symbol _OPENSSL_ia32cap_P .long 0 -.comm _OPENSSL_ia32cap_P,16,2 +.comm _OPENSSL_ia32cap_P,40,2 diff --git a/deps/openssl/config/archs/darwin-i386-cc/asm/crypto/aes/aesni-x86.S b/deps/openssl/config/archs/darwin-i386-cc/asm/crypto/aes/aesni-x86.S index 7a23ba9595c312..64d97c5d7cce0f 100644 --- a/deps/openssl/config/archs/darwin-i386-cc/asm/crypto/aes/aesni-x86.S +++ b/deps/openssl/config/archs/darwin-i386-cc/asm/crypto/aes/aesni-x86.S @@ -3304,4 +3304,4 @@ Lkey_const: L_OPENSSL_ia32cap_P$non_lazy_ptr: .indirect_symbol _OPENSSL_ia32cap_P .long 0 -.comm _OPENSSL_ia32cap_P,16,2 +.comm _OPENSSL_ia32cap_P,40,2 diff --git a/deps/openssl/config/archs/darwin-i386-cc/asm/crypto/bn/bn-586.S b/deps/openssl/config/archs/darwin-i386-cc/asm/crypto/bn/bn-586.S index 066935dd3b41df..42cbe15c13118a 100644 --- a/deps/openssl/config/archs/darwin-i386-cc/asm/crypto/bn/bn-586.S +++ b/deps/openssl/config/archs/darwin-i386-cc/asm/crypto/bn/bn-586.S @@ -1551,4 +1551,4 @@ L032pw_end: L_OPENSSL_ia32cap_P$non_lazy_ptr: .indirect_symbol _OPENSSL_ia32cap_P .long 0 -.comm _OPENSSL_ia32cap_P,16,2 +.comm _OPENSSL_ia32cap_P,40,2 diff --git a/deps/openssl/config/archs/darwin-i386-cc/asm/crypto/bn/x86-gf2m.S b/deps/openssl/config/archs/darwin-i386-cc/asm/crypto/bn/x86-gf2m.S index 92bdaeac9b1c0e..7dcfd799bec9ba 100644 --- a/deps/openssl/config/archs/darwin-i386-cc/asm/crypto/bn/x86-gf2m.S +++ b/deps/openssl/config/archs/darwin-i386-cc/asm/crypto/bn/x86-gf2m.S @@ -355,4 +355,4 @@ L001ialu: L_OPENSSL_ia32cap_P$non_lazy_ptr: .indirect_symbol _OPENSSL_ia32cap_P .long 0 -.comm _OPENSSL_ia32cap_P,16,2 +.comm _OPENSSL_ia32cap_P,40,2 diff --git a/deps/openssl/config/archs/darwin-i386-cc/asm/crypto/bn/x86-mont.S b/deps/openssl/config/archs/darwin-i386-cc/asm/crypto/bn/x86-mont.S index 7bca500149ee8d..5c615bb79093e9 100644 --- a/deps/openssl/config/archs/darwin-i386-cc/asm/crypto/bn/x86-mont.S +++ b/deps/openssl/config/archs/darwin-i386-cc/asm/crypto/bn/x86-mont.S @@ -479,4 +479,4 @@ L000just_leave: L_OPENSSL_ia32cap_P$non_lazy_ptr: .indirect_symbol _OPENSSL_ia32cap_P .long 0 -.comm _OPENSSL_ia32cap_P,16,2 +.comm _OPENSSL_ia32cap_P,40,2 diff --git a/deps/openssl/config/archs/darwin-i386-cc/asm/crypto/buildinf.h b/deps/openssl/config/archs/darwin-i386-cc/asm/crypto/buildinf.h index efc6054598df82..daefbea000f943 100644 --- a/deps/openssl/config/archs/darwin-i386-cc/asm/crypto/buildinf.h +++ b/deps/openssl/config/archs/darwin-i386-cc/asm/crypto/buildinf.h @@ -11,7 +11,7 @@ */ #define PLATFORM "platform: darwin-i386-cc" -#define DATE "built on: Sun Jul 20 00:47:41 2025 UTC" +#define DATE "built on: Sun Jul 27 00:48:31 2025 UTC" /* * Generate compiler_flags as an array of individual characters. This is a diff --git a/deps/openssl/config/archs/darwin-i386-cc/asm/crypto/chacha/chacha-x86.S b/deps/openssl/config/archs/darwin-i386-cc/asm/crypto/chacha/chacha-x86.S index fcc5df1948bf90..6a82762d1caa19 100644 --- a/deps/openssl/config/archs/darwin-i386-cc/asm/crypto/chacha/chacha-x86.S +++ b/deps/openssl/config/archs/darwin-i386-cc/asm/crypto/chacha/chacha-x86.S @@ -1455,4 +1455,4 @@ L019done: L_OPENSSL_ia32cap_P$non_lazy_ptr: .indirect_symbol _OPENSSL_ia32cap_P .long 0 -.comm _OPENSSL_ia32cap_P,16,2 +.comm _OPENSSL_ia32cap_P,40,2 diff --git a/deps/openssl/config/archs/darwin-i386-cc/asm/crypto/ec/ecp_nistz256-x86.S b/deps/openssl/config/archs/darwin-i386-cc/asm/crypto/ec/ecp_nistz256-x86.S index 821f4fc126e702..38df7d7448a80d 100644 --- a/deps/openssl/config/archs/darwin-i386-cc/asm/crypto/ec/ecp_nistz256-x86.S +++ b/deps/openssl/config/archs/darwin-i386-cc/asm/crypto/ec/ecp_nistz256-x86.S @@ -5230,4 +5230,4 @@ L013pic: L_OPENSSL_ia32cap_P$non_lazy_ptr: .indirect_symbol _OPENSSL_ia32cap_P .long 0 -.comm _OPENSSL_ia32cap_P,16,2 +.comm _OPENSSL_ia32cap_P,40,2 diff --git a/deps/openssl/config/archs/darwin-i386-cc/asm/crypto/params_idx.c b/deps/openssl/config/archs/darwin-i386-cc/asm/crypto/params_idx.c new file mode 100644 index 00000000000000..9d76ffededc24c --- /dev/null +++ b/deps/openssl/config/archs/darwin-i386-cc/asm/crypto/params_idx.c @@ -0,0 +1,3366 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from crypto/params_idx.c.in + * + * Copyright 2023 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + +#include "internal/e_os.h" +#include "internal/param_names.h" +#include + +/* Machine generated TRIE -- generated by util/perl/OpenSSL/paramnames.pm */ +int ossl_param_find_pidx(const char *s) +{ + switch(s[0]) { + default: + break; + case 'a': + switch(s[1]) { + default: + break; + case 'c': + if (strcmp("vp-info", s + 2) == 0) + return PIDX_KDF_PARAM_X942_ACVPINFO; + break; + case 'd': + switch(s[2]) { + default: + break; + case 'd': + if (strcmp("itional-random", s + 3) == 0) + return PIDX_SIGNATURE_PARAM_ADD_RANDOM; + break; + case '\0': + return PIDX_KDF_PARAM_ARGON2_AD; + } + break; + case 'e': + if (strcmp("ad", s + 2) == 0) + return PIDX_CIPHER_PARAM_AEAD; + break; + case 'l': + switch(s[2]) { + default: + break; + case 'g': + switch(s[3]) { + default: + break; + case '_': + if (strcmp("id_param", s + 4) == 0) + return PIDX_CIPHER_PARAM_ALGORITHM_ID_PARAMS_OLD; + break; + case 'i': + if (strcmp("d-absent", s + 4) == 0) + return PIDX_DIGEST_PARAM_ALGID_ABSENT; + break; + case 'o': + switch(s[4]) { + default: + break; + case 'r': + switch(s[5]) { + default: + break; + case 'i': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case 'h': + switch(s[8]) { + default: + break; + case 'm': + switch(s[9]) { + default: + break; + case '-': + switch(s[10]) { + default: + break; + case 'i': + switch(s[11]) { + default: + break; + case 'd': + switch(s[12]) { + default: + break; + case '-': + if (strcmp("params", s + 13) == 0) + return PIDX_ALG_PARAM_ALGORITHM_ID_PARAMS; + break; + case '\0': + return PIDX_ALG_PARAM_ALGORITHM_ID; + } + } + } + } + } + } + } + } + } + } + break; + case 'i': + if (strcmp("as", s + 3) == 0) + return PIDX_STORE_PARAM_ALIAS; + } + break; + case '\0': + return PIDX_PKEY_PARAM_EC_A; + } + break; + case 'b': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("sis-type", s + 2) == 0) + return PIDX_PKEY_PARAM_EC_CHAR2_TYPE; + break; + case 'i': + if (strcmp("ts", s + 2) == 0) + return PIDX_PKEY_PARAM_BITS; + break; + case 'l': + switch(s[2]) { + default: + break; + case 'o': + switch(s[3]) { + default: + break; + case 'c': + switch(s[4]) { + default: + break; + case 'k': + switch(s[5]) { + default: + break; + case '-': + if (strcmp("size", s + 6) == 0) + return PIDX_MAC_PARAM_BLOCK_SIZE; + break; + case '_': + if (strcmp("padding", s + 6) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_BLOCK_PADDING; + break; + case 's': + if (strcmp("ize", s + 6) == 0) + return PIDX_DIGEST_PARAM_BLOCK_SIZE; + } + } + } + } + break; + case 'u': + if (strcmp("ildinfo", s + 2) == 0) + return PIDX_PROV_PARAM_BUILDINFO; + break; + case '\0': + return PIDX_PKEY_PARAM_EC_B; + } + break; + case 'c': + switch(s[1]) { + default: + break; + case '-': + if (strcmp("rounds", s + 2) == 0) + return PIDX_MAC_PARAM_C_ROUNDS; + break; + case 'e': + if (strcmp("kalg", s + 2) == 0) + return PIDX_KDF_PARAM_CEK_ALG; + break; + case 'i': + if (strcmp("pher", s + 2) == 0) + return PIDX_ALG_PARAM_CIPHER; + break; + case 'o': + switch(s[2]) { + default: + break; + case 'f': + if (strcmp("actor", s + 3) == 0) + return PIDX_PKEY_PARAM_EC_COFACTOR; + break; + case 'n': + switch(s[3]) { + default: + break; + case 's': + if (strcmp("tant", s + 4) == 0) + return PIDX_KDF_PARAM_CONSTANT; + break; + case 't': + if (strcmp("ext-string", s + 4) == 0) + return PIDX_SIGNATURE_PARAM_CONTEXT_STRING; + } + } + break; + case 't': + switch(s[2]) { + default: + break; + case 's': + switch(s[3]) { + default: + break; + case '_': + if (strcmp("mode", s + 4) == 0) + return PIDX_CIPHER_PARAM_CTS_MODE; + break; + case '\0': + return PIDX_CIPHER_PARAM_CTS; + } + } + break; + case 'u': + switch(s[2]) { + default: + break; + case 's': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case 'o': + switch(s[5]) { + default: + break; + case 'm': + switch(s[6]) { + default: + break; + case '-': + if (strcmp("iv", s + 7) == 0) + return PIDX_CIPHER_PARAM_CUSTOM_IV; + break; + case '\0': + return PIDX_MAC_PARAM_CUSTOM; + } + } + } + } + } + } + break; + case 'd': + switch(s[1]) { + default: + break; + case '-': + if (strcmp("rounds", s + 2) == 0) + return PIDX_MAC_PARAM_D_ROUNDS; + break; + case 'a': + switch(s[2]) { + default: + break; + case 't': + switch(s[3]) { + default: + break; + case 'a': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 's': + if (strcmp("tructure", s + 6) == 0) + return PIDX_OBJECT_PARAM_DATA_STRUCTURE; + break; + case 't': + if (strcmp("ype", s + 6) == 0) + return PIDX_OBJECT_PARAM_DATA_TYPE; + } + break; + case '\0': + return PIDX_OBJECT_PARAM_DATA; + } + } + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'c': + switch(s[3]) { + default: + break; + case 'o': + if (strcmp("ded-from-explicit", s + 4) == 0) + return PIDX_PKEY_PARAM_EC_DECODED_FROM_EXPLICIT_PARAMS; + break; + case 'r': + if (strcmp("ypt-only", s + 4) == 0) + return PIDX_CIPHER_PARAM_DECRYPT_ONLY; + } + break; + case 'f': + if (strcmp("ault-digest", s + 3) == 0) + return PIDX_PKEY_PARAM_DEFAULT_DIGEST; + break; + case 's': + if (strcmp("c", s + 3) == 0) + return PIDX_OBJECT_PARAM_DESC; + break; + case 't': + if (strcmp("erministic", s + 3) == 0) + return PIDX_SIGNATURE_PARAM_DETERMINISTIC; + } + break; + case 'h': + if (strcmp("kem-ikm", s + 2) == 0) + return PIDX_PKEY_PARAM_DHKEM_IKM; + break; + case 'i': + switch(s[2]) { + default: + break; + case 'g': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case 's': + switch(s[5]) { + default: + break; + case 't': + switch(s[6]) { + default: + break; + case '-': + switch(s[7]) { + default: + break; + case 'c': + if (strcmp("heck", s + 8) == 0) + return PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK; + break; + case 'n': + if (strcmp("oinit", s + 8) == 0) + return PIDX_MAC_PARAM_DIGEST_NOINIT; + break; + case 'o': + if (strcmp("neshot", s + 8) == 0) + return PIDX_MAC_PARAM_DIGEST_ONESHOT; + break; + case 'p': + if (strcmp("rops", s + 8) == 0) + return PIDX_ASYM_CIPHER_PARAM_OAEP_DIGEST_PROPS; + break; + case 's': + if (strcmp("ize", s + 8) == 0) + return PIDX_PKEY_PARAM_DIGEST_SIZE; + } + break; + case '\0': + return PIDX_STORE_PARAM_DIGEST; + } + } + } + } + break; + case 's': + if (strcmp("tid", s + 3) == 0) + return PIDX_PKEY_PARAM_DIST_ID; + } + break; + case 'r': + if (strcmp("bg-no-trunc-md", s + 2) == 0) + return PIDX_PROV_PARAM_DRBG_TRUNC_DIGEST; + break; + case 's': + if (strcmp("a-sign-disabled", s + 2) == 0) + return PIDX_PROV_PARAM_DSA_SIGN_DISABLED; + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_D; + } + break; + case 'e': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("rly_clean", s + 2) == 0) + return PIDX_KDF_PARAM_EARLY_CLEAN; + break; + case 'c': + switch(s[2]) { + default: + break; + case 'd': + switch(s[3]) { + default: + break; + case 'h': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'c': + switch(s[6]) { + default: + break; + case 'o': + switch(s[7]) { + default: + break; + case 'f': + switch(s[8]) { + default: + break; + case 'a': + switch(s[9]) { + default: + break; + case 'c': + switch(s[10]) { + default: + break; + case 't': + switch(s[11]) { + default: + break; + case 'o': + switch(s[12]) { + default: + break; + case 'r': + switch(s[13]) { + default: + break; + case '-': + switch(s[14]) { + default: + break; + case 'c': + if (strcmp("heck", s + 15) == 0) + return PIDX_PROV_PARAM_ECDH_COFACTOR_CHECK; + break; + case 'm': + if (strcmp("ode", s + 15) == 0) + return PIDX_EXCHANGE_PARAM_EC_ECDH_COFACTOR_MODE; + } + } + } + } + } + } + } + } + } + } + } + } + } + break; + case 'm': + if (strcmp("s_check", s + 2) == 0) + return PIDX_KDF_PARAM_FIPS_EMS_CHECK; + break; + case 'n': + switch(s[2]) { + default: + break; + case 'c': + switch(s[3]) { + default: + break; + case 'o': + switch(s[4]) { + default: + break; + case 'd': + switch(s[5]) { + default: + break; + case 'e': + if (strcmp("d-pub-key", s + 6) == 0) + return PIDX_PKEY_PARAM_ENCODED_PUBLIC_KEY; + break; + case 'i': + if (strcmp("ng", s + 6) == 0) + return PIDX_PKEY_PARAM_EC_ENCODING; + } + } + break; + case 'r': + switch(s[4]) { + default: + break; + case 'y': + switch(s[5]) { + default: + break; + case 'p': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case '-': + switch(s[8]) { + default: + break; + case 'c': + if (strcmp("heck", s + 9) == 0) + return PIDX_CIPHER_PARAM_FIPS_ENCRYPT_CHECK; + break; + case 'l': + if (strcmp("evel", s + 9) == 0) + return PIDX_ENCODER_PARAM_ENCRYPT_LEVEL; + } + } + } + } + } + } + break; + case 'g': + if (strcmp("ine", s + 3) == 0) + return PIDX_ALG_PARAM_ENGINE; + break; + case 't': + switch(s[3]) { + default: + break; + case 'r': + switch(s[4]) { + default: + break; + case 'o': + switch(s[5]) { + default: + break; + case 'p': + switch(s[6]) { + default: + break; + case 'y': + switch(s[7]) { + default: + break; + case '_': + if (strcmp("required", s + 8) == 0) + return PIDX_DRBG_PARAM_ENTROPY_REQUIRED; + break; + case '\0': + return PIDX_KDF_PARAM_HMACDRBG_ENTROPY; + } + } + } + } + } + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_E; + break; + case 'x': + if (strcmp("pect", s + 2) == 0) + return PIDX_STORE_PARAM_EXPECT; + } + break; + case 'f': + switch(s[1]) { + default: + break; + case 'i': + switch(s[2]) { + default: + break; + case 'e': + if (strcmp("ld-type", s + 3) == 0) + return PIDX_PKEY_PARAM_EC_FIELD_TYPE; + break; + case 'n': + if (strcmp("gerprint", s + 3) == 0) + return PIDX_STORE_PARAM_FINGERPRINT; + break; + case 'p': + if (strcmp("s-indicator", s + 3) == 0) + return PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR; + } + } + break; + case 'g': + switch(s[1]) { + default: + break; + case 'e': + switch(s[2]) { + default: + break; + case 'n': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case 'r': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case 'e': + switch(s[8]) { + default: + break; + case '\0': + return PIDX_RAND_PARAM_GENERATE; + } + break; + case 'o': + if (strcmp("r", s + 8) == 0) + return PIDX_PKEY_PARAM_EC_GENERATOR; + } + } + } + } + } + } + break; + case 'i': + if (strcmp("ndex", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_GINDEX; + break; + case 'r': + switch(s[2]) { + default: + break; + case 'o': + switch(s[3]) { + default: + break; + case 'u': + switch(s[4]) { + default: + break; + case 'p': + switch(s[5]) { + default: + break; + case '-': + if (strcmp("check", s + 6) == 0) + return PIDX_PKEY_PARAM_EC_GROUP_CHECK_TYPE; + break; + case '\0': + return PIDX_PKEY_PARAM_GROUP_NAME; + } + } + } + } + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_G; + } + break; + case 'h': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("s-randkey", s + 2) == 0) + return PIDX_CIPHER_PARAM_HAS_RAND_KEY; + break; + case 'i': + if (strcmp("ndex", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_H; + break; + case 'k': + switch(s[2]) { + default: + break; + case 'd': + switch(s[3]) { + default: + break; + case 'f': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 6) == 0) + return PIDX_PROV_PARAM_HKDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 6) == 0) + return PIDX_PROV_PARAM_HKDF_KEY_CHECK; + } + } + } + } + break; + case 'm': + if (strcmp("ac-key-check", s + 2) == 0) + return PIDX_PROV_PARAM_HMAC_KEY_CHECK; + break; + case 's': + if (strcmp("_padding", s + 2) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_HS_PADDING; + } + break; + case 'i': + switch(s[1]) { + default: + break; + case 'd': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_KDF_PARAM_PKCS12_ID; + } + break; + case 'k': + if (strcmp("me", s + 2) == 0) + return PIDX_KEM_PARAM_IKME; + break; + case 'm': + if (strcmp("plicit-rejection", s + 2) == 0) + return PIDX_PKEY_PARAM_IMPLICIT_REJECTION; + break; + case 'n': + switch(s[2]) { + default: + break; + case 'c': + if (strcmp("lude-public", s + 3) == 0) + return PIDX_PKEY_PARAM_EC_INCLUDE_PUBLIC; + break; + case 'f': + if (strcmp("o", s + 3) == 0) + return PIDX_PASSPHRASE_PARAM_INFO; + break; + case 'p': + if (strcmp("ut-type", s + 3) == 0) + return PIDX_STORE_PARAM_INPUT_TYPE; + break; + case 's': + if (strcmp("tance", s + 3) == 0) + return PIDX_SIGNATURE_PARAM_INSTANCE; + } + break; + case 't': + switch(s[2]) { + default: + break; + case 'e': + switch(s[3]) { + default: + break; + case 'r': + switch(s[4]) { + default: + break; + case 'a': + if (strcmp("tion", s + 5) == 0) + return PIDX_GEN_PARAM_ITERATION; + break; + case '\0': + return PIDX_KDF_PARAM_ITER; + } + } + } + break; + case 'v': + switch(s[2]) { + default: + break; + case '-': + if (strcmp("generated", s + 3) == 0) + return PIDX_CIPHER_PARAM_AEAD_IV_GENERATED; + break; + case 'l': + if (strcmp("en", s + 3) == 0) + return PIDX_CIPHER_PARAM_IVLEN; + break; + case '\0': + return PIDX_MAC_PARAM_IV; + } + } + break; + case 'j': + switch(s[1]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_COFACTOR; + } + break; + case 'k': + switch(s[1]) { + default: + break; + case '1': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_PP_K1; + } + break; + case '2': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_PP_K2; + } + break; + case '3': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_PP_K3; + } + break; + case 'a': + if (strcmp("t", s + 2) == 0) + return PIDX_SIGNATURE_PARAM_KAT; + break; + case 'b': + if (strcmp("kdf-key-check", s + 2) == 0) + return PIDX_PROV_PARAM_KBKDF_KEY_CHECK; + break; + case 'd': + switch(s[2]) { + default: + break; + case 'f': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'd': + switch(s[5]) { + default: + break; + case 'i': + switch(s[6]) { + default: + break; + case 'g': + switch(s[7]) { + default: + break; + case 'e': + switch(s[8]) { + default: + break; + case 's': + switch(s[9]) { + default: + break; + case 't': + switch(s[10]) { + default: + break; + case '-': + if (strcmp("props", s + 11) == 0) + return PIDX_EXCHANGE_PARAM_KDF_DIGEST_PROPS; + break; + case '\0': + return PIDX_EXCHANGE_PARAM_KDF_DIGEST; + } + } + } + } + } + } + break; + case 'o': + if (strcmp("utlen", s + 5) == 0) + return PIDX_EXCHANGE_PARAM_KDF_OUTLEN; + break; + case 't': + if (strcmp("ype", s + 5) == 0) + return PIDX_EXCHANGE_PARAM_KDF_TYPE; + break; + case 'u': + if (strcmp("km", s + 5) == 0) + return PIDX_EXCHANGE_PARAM_KDF_UKM; + } + } + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'y': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'c': + if (strcmp("heck", s + 5) == 0) + return PIDX_PKEY_PARAM_FIPS_KEY_CHECK; + break; + case 'l': + if (strcmp("ength", s + 5) == 0) + return PIDX_SKEY_PARAM_KEY_LENGTH; + } + break; + case 'b': + if (strcmp("its", s + 4) == 0) + return PIDX_CIPHER_PARAM_RC2_KEYBITS; + break; + case 'l': + if (strcmp("en", s + 4) == 0) + return PIDX_CIPHER_PARAM_KEYLEN; + break; + case '\0': + return PIDX_MAC_PARAM_KEY; + } + } + break; + case 'm': + if (strcmp("ac-key-check", s + 2) == 0) + return PIDX_PROV_PARAM_KMAC_KEY_CHECK; + } + break; + case 'l': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'b': + if (strcmp("el", s + 3) == 0) + return PIDX_KDF_PARAM_LABEL; + break; + case 'n': + if (strcmp("es", s + 3) == 0) + return PIDX_KDF_PARAM_ARGON2_LANES; + } + } + break; + case 'm': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'c': + switch(s[3]) { + default: + break; + case 'k': + if (strcmp("ey", s + 4) == 0) + return PIDX_CIPHER_PARAM_AEAD_MAC_KEY; + break; + case 'l': + if (strcmp("en", s + 4) == 0) + return PIDX_KDF_PARAM_MAC_SIZE; + break; + case '\0': + return PIDX_ALG_PARAM_MAC; + } + break; + case 'n': + if (strcmp("datory-digest", s + 3) == 0) + return PIDX_PKEY_PARAM_MANDATORY_DIGEST; + break; + case 'x': + switch(s[3]) { + default: + break; + case '-': + if (strcmp("size", s + 4) == 0) + return PIDX_PKEY_PARAM_MAX_SIZE; + break; + case '_': + switch(s[4]) { + default: + break; + case 'a': + if (strcmp("dinlen", s + 5) == 0) + return PIDX_DRBG_PARAM_MAX_ADINLEN; + break; + case 'e': + switch(s[5]) { + default: + break; + case 'a': + if (strcmp("rly_data", s + 6) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_MAX_EARLY_DATA; + break; + case 'n': + if (strcmp("tropylen", s + 6) == 0) + return PIDX_DRBG_PARAM_MAX_ENTROPYLEN; + } + break; + case 'f': + if (strcmp("rag_len", s + 5) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_MAX_FRAG_LEN; + break; + case 'n': + if (strcmp("oncelen", s + 5) == 0) + return PIDX_DRBG_PARAM_MAX_NONCELEN; + break; + case 'p': + if (strcmp("erslen", s + 5) == 0) + return PIDX_DRBG_PARAM_MAX_PERSLEN; + break; + case 'r': + if (strcmp("equest", s + 5) == 0) + return PIDX_RAND_PARAM_MAX_REQUEST; + } + break; + case 'i': + if (strcmp("um_length", s + 4) == 0) + return PIDX_DRBG_PARAM_MAX_LENGTH; + break; + case 'm': + if (strcmp("em_bytes", s + 4) == 0) + return PIDX_KDF_PARAM_SCRYPT_MAXMEM; + } + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'm': + if (strcmp("cost", s + 3) == 0) + return PIDX_KDF_PARAM_ARGON2_MEMCOST; + break; + case 's': + if (strcmp("sage-encoding", s + 3) == 0) + return PIDX_SIGNATURE_PARAM_MESSAGE_ENCODING; + } + break; + case 'g': + switch(s[2]) { + default: + break; + case 'f': + switch(s[3]) { + default: + break; + case '1': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'd': + if (strcmp("igest", s + 6) == 0) + return PIDX_PKEY_PARAM_MGF1_DIGEST; + break; + case 'p': + if (strcmp("roperties", s + 6) == 0) + return PIDX_PKEY_PARAM_MGF1_PROPERTIES; + } + } + break; + case '\0': + return PIDX_PKEY_PARAM_MASKGENFUNC; + } + } + break; + case 'i': + switch(s[2]) { + default: + break; + case 'c': + if (strcmp("alg", s + 3) == 0) + return PIDX_DIGEST_PARAM_MICALG; + break; + case 'n': + switch(s[3]) { + default: + break; + case '_': + switch(s[4]) { + default: + break; + case 'e': + if (strcmp("ntropylen", s + 5) == 0) + return PIDX_DRBG_PARAM_MIN_ENTROPYLEN; + break; + case 'n': + if (strcmp("oncelen", s + 5) == 0) + return PIDX_DRBG_PARAM_MIN_NONCELEN; + } + break; + case 'i': + if (strcmp("um_length", s + 4) == 0) + return PIDX_DRBG_PARAM_MIN_LENGTH; + } + } + break; + case 'l': + switch(s[2]) { + default: + break; + case '-': + switch(s[3]) { + default: + break; + case 'd': + switch(s[4]) { + default: + break; + case 's': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case '.': + switch(s[7]) { + default: + break; + case 'i': + if (strcmp("nput_formats", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_DSA_INPUT_FORMATS; + break; + case 'o': + if (strcmp("utput_formats", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_DSA_OUTPUT_FORMATS; + break; + case 'p': + if (strcmp("refer_seed", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_DSA_PREFER_SEED; + break; + case 'r': + if (strcmp("etain_seed", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_DSA_RETAIN_SEED; + } + } + } + } + break; + case 'k': + switch(s[4]) { + default: + break; + case 'e': + switch(s[5]) { + default: + break; + case 'm': + switch(s[6]) { + default: + break; + case '.': + switch(s[7]) { + default: + break; + case 'i': + switch(s[8]) { + default: + break; + case 'm': + if (strcmp("port_pct_type", s + 9) == 0) + return PIDX_PKEY_PARAM_ML_KEM_IMPORT_PCT_TYPE; + break; + case 'n': + if (strcmp("put_formats", s + 9) == 0) + return PIDX_PKEY_PARAM_ML_KEM_INPUT_FORMATS; + } + break; + case 'o': + if (strcmp("utput_formats", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_KEM_OUTPUT_FORMATS; + break; + case 'p': + if (strcmp("refer_seed", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_KEM_PREFER_SEED; + break; + case 'r': + if (strcmp("etain_seed", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_KEM_RETAIN_SEED; + } + } + } + } + } + } + break; + case 'o': + switch(s[2]) { + default: + break; + case 'd': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case '\0': + return PIDX_LIBSSL_RECORD_LAYER_PARAM_MODE; + } + break; + case 'u': + if (strcmp("le-filename", s + 4) == 0) + return PIDX_PROV_PARAM_CORE_MODULE_FILENAME; + } + } + break; + case 'u': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_SIGNATURE_PARAM_MU; + } + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_M; + } + break; + case 'n': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("me", s + 2) == 0) + return PIDX_STORE_PARAM_ISSUER; + break; + case 'o': + switch(s[2]) { + default: + break; + case '-': + if (strcmp("short-mac", s + 3) == 0) + return PIDX_PROV_PARAM_NO_SHORT_MAC; + break; + case 'n': + switch(s[3]) { + default: + break; + case 'c': + switch(s[4]) { + default: + break; + case 'e': + switch(s[5]) { + default: + break; + case '-': + if (strcmp("type", s + 6) == 0) + return PIDX_SIGNATURE_PARAM_NONCE_TYPE; + break; + case '\0': + return PIDX_KDF_PARAM_HMACDRBG_NONCE; + } + } + } + } + break; + case 'u': + if (strcmp("m", s + 2) == 0) + return PIDX_CIPHER_PARAM_NUM; + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_N; + } + break; + case 'o': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("ep-label", s + 2) == 0) + return PIDX_ASYM_CIPHER_PARAM_OAEP_LABEL; + break; + case 'p': + switch(s[2]) { + default: + break; + case 'e': + switch(s[3]) { + default: + break; + case 'n': + if (strcmp("ssl-version", s + 4) == 0) + return PIDX_PROV_PARAM_CORE_VERSION; + break; + case 'r': + if (strcmp("ation", s + 4) == 0) + return PIDX_KEM_PARAM_OPERATION; + } + break; + case 't': + if (strcmp("ions", s + 3) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_OPTIONS; + } + break; + case 'r': + if (strcmp("der", s + 2) == 0) + return PIDX_PKEY_PARAM_EC_ORDER; + } + break; + case 'p': + switch(s[1]) { + default: + break; + case '1': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_P1; + } + break; + case '2': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_P2; + } + break; + case 'a': + switch(s[2]) { + default: + break; + case 'd': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'm': + if (strcmp("ode", s + 5) == 0) + return PIDX_PKEY_PARAM_PAD_MODE; + break; + case 't': + if (strcmp("ype", s + 5) == 0) + return PIDX_DIGEST_PARAM_PAD_TYPE; + } + break; + case 'd': + if (strcmp("ing", s + 4) == 0) + return PIDX_CIPHER_PARAM_PADDING; + break; + case '\0': + return PIDX_EXCHANGE_PARAM_PAD; + } + break; + case 'r': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case 'y': + switch(s[5]) { + default: + break; + case 'u': + if (strcmp("-info", s + 6) == 0) + return PIDX_KDF_PARAM_X942_PARTYUINFO; + break; + case 'v': + if (strcmp("-info", s + 6) == 0) + return PIDX_KDF_PARAM_X942_PARTYVINFO; + } + } + } + break; + case 's': + if (strcmp("s", s + 3) == 0) + return PIDX_KDF_PARAM_PASSWORD; + } + break; + case 'b': + switch(s[2]) { + default: + break; + case 'i': + if (strcmp("ts", s + 3) == 0) + return PIDX_PKEY_PARAM_FFC_PBITS; + break; + case 'k': + if (strcmp("df2-lower-bound-check", s + 3) == 0) + return PIDX_PROV_PARAM_PBKDF2_LOWER_BOUND_CHECK; + } + break; + case 'c': + if (strcmp("ounter", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_PCOUNTER; + break; + case 'i': + if (strcmp("peline-tag", s + 2) == 0) + return PIDX_CIPHER_PARAM_PIPELINE_AEAD_TAG; + break; + case 'k': + if (strcmp("cs5", s + 2) == 0) + return PIDX_KDF_PARAM_PKCS5; + break; + case 'o': + switch(s[2]) { + default: + break; + case 'i': + if (strcmp("nt-format", s + 3) == 0) + return PIDX_PKEY_PARAM_EC_POINT_CONVERSION_FORMAT; + break; + case 't': + if (strcmp("ential", s + 3) == 0) + return PIDX_GEN_PARAM_POTENTIAL; + } + break; + case 'r': + switch(s[2]) { + default: + break; + case 'e': + switch(s[3]) { + default: + break; + case 'd': + if (strcmp("iction_resistance", s + 4) == 0) + return PIDX_DRBG_PARAM_PREDICTION_RESISTANCE; + break; + case 'f': + if (strcmp("ix", s + 4) == 0) + return PIDX_KDF_PARAM_PREFIX; + } + break; + case 'i': + switch(s[3]) { + default: + break; + case 'm': + if (strcmp("es", s + 4) == 0) + return PIDX_PKEY_PARAM_RSA_PRIMES; + break; + case 'v': + switch(s[4]) { + default: + break; + case '_': + if (strcmp("len", s + 5) == 0) + return PIDX_PKEY_PARAM_DH_PRIV_LEN; + break; + case '\0': + return PIDX_PKEY_PARAM_PRIV_KEY; + } + } + break; + case 'o': + switch(s[3]) { + default: + break; + case 'p': + if (strcmp("erties", s + 4) == 0) + return PIDX_STORE_PARAM_PROPERTIES; + break; + case 'v': + if (strcmp("ider-name", s + 4) == 0) + return PIDX_PROV_PARAM_CORE_PROV_NAME; + } + } + break; + case 'u': + if (strcmp("b", s + 2) == 0) + return PIDX_PKEY_PARAM_PUB_KEY; + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_P; + } + break; + case 'q': + switch(s[1]) { + default: + break; + case '1': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_Q1; + } + break; + case '2': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_Q2; + } + break; + case 'b': + if (strcmp("its", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_QBITS; + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_Q; + break; + case 'x': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_PUB_X; + } + break; + case 'y': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_PUB_Y; + } + } + break; + case 'r': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'n': + switch(s[3]) { + default: + break; + case 'd': + switch(s[4]) { + default: + break; + case 'k': + if (strcmp("ey", s + 5) == 0) + return PIDX_CIPHER_PARAM_RANDOM_KEY; + break; + case 'o': + if (strcmp("m_data", s + 5) == 0) + return PIDX_DRBG_PARAM_RANDOM_DATA; + } + } + break; + case 'w': + if (strcmp("-bytes", s + 3) == 0) + return PIDX_SKEY_PARAM_RAW_BYTES; + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'a': + switch(s[3]) { + default: + break; + case 'd': + switch(s[4]) { + default: + break; + case '_': + switch(s[5]) { + default: + break; + case 'a': + if (strcmp("head", s + 6) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_READ_AHEAD; + break; + case 'b': + if (strcmp("uffer_len", s + 6) == 0) + return PIDX_LIBSSL_RECORD_LAYER_READ_BUFFER_LEN; + } + } + } + break; + case 'f': + if (strcmp("erence", s + 3) == 0) + return PIDX_OBJECT_PARAM_REFERENCE; + break; + case 's': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case 'e': + switch(s[5]) { + default: + break; + case 'd': + switch(s[6]) { + default: + break; + case '_': + switch(s[7]) { + default: + break; + case 'c': + if (strcmp("ounter", s + 8) == 0) + return PIDX_DRBG_PARAM_RESEED_COUNTER; + break; + case 'r': + if (strcmp("equests", s + 8) == 0) + return PIDX_DRBG_PARAM_RESEED_REQUESTS; + break; + case 't': + switch(s[8]) { + default: + break; + case 'i': + switch(s[9]) { + default: + break; + case 'm': + switch(s[10]) { + default: + break; + case 'e': + switch(s[11]) { + default: + break; + case '_': + if (strcmp("interval", s + 12) == 0) + return PIDX_DRBG_PARAM_RESEED_TIME_INTERVAL; + break; + case '\0': + return PIDX_DRBG_PARAM_RESEED_TIME; + } + } + } + } + } + } + } + } + } + } + break; + case 'o': + if (strcmp("unds", s + 2) == 0) + return PIDX_CIPHER_PARAM_ROUNDS; + break; + case 's': + switch(s[2]) { + default: + break; + case 'a': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'c': + switch(s[5]) { + default: + break; + case 'o': + switch(s[6]) { + default: + break; + case 'e': + switch(s[7]) { + default: + break; + case 'f': + switch(s[8]) { + default: + break; + case 'f': + switch(s[9]) { + default: + break; + case 'i': + switch(s[10]) { + default: + break; + case 'c': + switch(s[11]) { + default: + break; + case 'i': + switch(s[12]) { + default: + break; + case 'e': + switch(s[13]) { + default: + break; + case 'n': + switch(s[14]) { + default: + break; + case 't': + switch(s[15]) { + default: + break; + case '1': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT1; + } + break; + case '2': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT2; + } + break; + case '3': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT3; + } + break; + case '4': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT4; + } + break; + case '5': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT5; + } + break; + case '6': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT6; + } + break; + case '7': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT7; + } + break; + case '8': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT8; + } + break; + case '9': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT9; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT; + } + } + } + } + } + } + } + } + } + } + } + break; + case 'd': + if (strcmp("erive-from-pq", s + 5) == 0) + return PIDX_PKEY_PARAM_RSA_DERIVE_FROM_PQ; + break; + case 'e': + switch(s[5]) { + default: + break; + case 'x': + switch(s[6]) { + default: + break; + case 'p': + switch(s[7]) { + default: + break; + case 'o': + switch(s[8]) { + default: + break; + case 'n': + switch(s[9]) { + default: + break; + case 'e': + switch(s[10]) { + default: + break; + case 'n': + switch(s[11]) { + default: + break; + case 't': + switch(s[12]) { + default: + break; + case '1': + switch(s[13]) { + default: + break; + case '0': + switch(s[14]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT10; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT1; + } + break; + case '2': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT2; + } + break; + case '3': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT3; + } + break; + case '4': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT4; + } + break; + case '5': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT5; + } + break; + case '6': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT6; + } + break; + case '7': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT7; + } + break; + case '8': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT8; + } + break; + case '9': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT9; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT; + } + } + } + } + } + } + } + } + break; + case 'f': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case 'c': + switch(s[7]) { + default: + break; + case 't': + switch(s[8]) { + default: + break; + case 'o': + switch(s[9]) { + default: + break; + case 'r': + switch(s[10]) { + default: + break; + case '1': + switch(s[11]) { + default: + break; + case '0': + switch(s[12]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR10; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR1; + } + break; + case '2': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR2; + } + break; + case '3': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR3; + } + break; + case '4': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR4; + } + break; + case '5': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR5; + } + break; + case '6': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR6; + } + break; + case '7': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR7; + } + break; + case '8': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR8; + } + break; + case '9': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR9; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR; + } + } + } + } + } + } + break; + case 'p': + switch(s[5]) { + default: + break; + case 'k': + if (strcmp("cs15-pad-disabled", s + 6) == 0) + return PIDX_PROV_PARAM_RSA_PKCS15_PAD_DISABLED; + break; + case 's': + if (strcmp("s-saltlen-check", s + 6) == 0) + return PIDX_SIGNATURE_PARAM_FIPS_RSA_PSS_SALTLEN_CHECK; + } + break; + case 's': + if (strcmp("ign-x931-pad-disabled", s + 5) == 0) + return PIDX_PROV_PARAM_RSA_SIGN_X931_PAD_DISABLED; + } + } + } + break; + case '\0': + return PIDX_KDF_PARAM_SCRYPT_R; + } + break; + case 's': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'f': + if (strcmp("eprime-generator", s + 3) == 0) + return PIDX_PKEY_PARAM_DH_GENERATOR; + break; + case 'l': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case 'l': + if (strcmp("en", s + 5) == 0) + return PIDX_SIGNATURE_PARAM_PSS_SALTLEN; + break; + case '\0': + return PIDX_MAC_PARAM_SALT; + } + } + break; + case 'v': + if (strcmp("e-parameters", s + 3) == 0) + return PIDX_ENCODER_PARAM_SAVE_PARAMETERS; + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'c': + switch(s[3]) { + default: + break; + case 'r': + if (strcmp("et", s + 4) == 0) + return PIDX_KDF_PARAM_SECRET; + break; + case 'u': + switch(s[4]) { + default: + break; + case 'r': + switch(s[5]) { + default: + break; + case 'i': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case 'y': + switch(s[8]) { + default: + break; + case '-': + switch(s[9]) { + default: + break; + case 'b': + if (strcmp("its", s + 10) == 0) + return PIDX_PKEY_PARAM_SECURITY_BITS; + break; + case 'c': + if (strcmp("hecks", s + 10) == 0) + return PIDX_PROV_PARAM_SECURITY_CHECKS; + } + } + } + } + } + } + } + break; + case 'e': + if (strcmp("d", s + 3) == 0) + return PIDX_PKEY_PARAM_SLH_DSA_SEED; + break; + case 'r': + if (strcmp("ial", s + 3) == 0) + return PIDX_STORE_PARAM_SERIAL; + break; + case 's': + if (strcmp("sion_id", s + 3) == 0) + return PIDX_KDF_PARAM_SSHKDF_SESSION_ID; + } + break; + case 'i': + switch(s[2]) { + default: + break; + case 'g': + switch(s[3]) { + default: + break; + case 'n': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'c': + if (strcmp("heck", s + 6) == 0) + return PIDX_PKEY_PARAM_FIPS_SIGN_CHECK; + break; + case 'x': + if (strcmp("931-pad-check", s + 6) == 0) + return PIDX_SIGNATURE_PARAM_FIPS_SIGN_X931_PAD_CHECK; + } + break; + case 'a': + switch(s[5]) { + default: + break; + case 't': + switch(s[6]) { + default: + break; + case 'u': + switch(s[7]) { + default: + break; + case 'r': + switch(s[8]) { + default: + break; + case 'e': + switch(s[9]) { + default: + break; + case '-': + if (strcmp("digest-check", s + 10) == 0) + return PIDX_PROV_PARAM_SIGNATURE_DIGEST_CHECK; + break; + case '\0': + return PIDX_SIGNATURE_PARAM_SIGNATURE; + } + } + } + } + } + } + } + break; + case 'z': + if (strcmp("e", s + 3) == 0) + return PIDX_MAC_PARAM_SIZE; + } + break; + case 'p': + if (strcmp("eed", s + 2) == 0) + return PIDX_CIPHER_PARAM_SPEED; + break; + case 's': + switch(s[2]) { + default: + break; + case 'h': + switch(s[3]) { + default: + break; + case 'k': + switch(s[4]) { + default: + break; + case 'd': + switch(s[5]) { + default: + break; + case 'f': + switch(s[6]) { + default: + break; + case '-': + switch(s[7]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 8) == 0) + return PIDX_PROV_PARAM_SSHKDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 8) == 0) + return PIDX_PROV_PARAM_SSHKDF_KEY_CHECK; + } + } + } + } + } + break; + case 'k': + switch(s[3]) { + default: + break; + case 'd': + switch(s[4]) { + default: + break; + case 'f': + switch(s[5]) { + default: + break; + case '-': + switch(s[6]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 7) == 0) + return PIDX_PROV_PARAM_SSKDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 7) == 0) + return PIDX_PROV_PARAM_SSKDF_KEY_CHECK; + } + } + } + } + break; + case 'l': + if (strcmp("3-ms", s + 3) == 0) + return PIDX_DIGEST_PARAM_SSL3_MS; + } + break; + case 't': + switch(s[2]) { + default: + break; + case '-': + switch(s[3]) { + default: + break; + case 'd': + if (strcmp("esc", s + 4) == 0) + return PIDX_PROV_PARAM_SELF_TEST_DESC; + break; + case 'p': + if (strcmp("hase", s + 4) == 0) + return PIDX_PROV_PARAM_SELF_TEST_PHASE; + break; + case 't': + if (strcmp("ype", s + 4) == 0) + return PIDX_PROV_PARAM_SELF_TEST_TYPE; + } + break; + case 'a': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case 'e': + switch(s[5]) { + default: + break; + case '\0': + return PIDX_RAND_PARAM_STATE; + } + break; + case 'u': + if (strcmp("s", s + 5) == 0) + return PIDX_PROV_PARAM_STATUS; + } + } + break; + case 'r': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case 'a': + if (strcmp("m_mac", s + 5) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_STREAM_MAC; + break; + case 'n': + if (strcmp("gth", s + 5) == 0) + return PIDX_RAND_PARAM_STRENGTH; + } + } + } + break; + case 'u': + switch(s[2]) { + default: + break; + case 'b': + if (strcmp("ject", s + 3) == 0) + return PIDX_STORE_PARAM_SUBJECT; + break; + case 'p': + switch(s[3]) { + default: + break; + case 'p': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'p': + switch(s[6]) { + default: + break; + case 'r': + if (strcmp("ivinfo", s + 7) == 0) + return PIDX_KDF_PARAM_X942_SUPP_PRIVINFO; + break; + case 'u': + if (strcmp("binfo", s + 7) == 0) + return PIDX_KDF_PARAM_X942_SUPP_PUBINFO; + } + } + } + } + } + } + break; + case 't': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'g': + switch(s[3]) { + default: + break; + case 'l': + if (strcmp("en", s + 4) == 0) + return PIDX_CIPHER_PARAM_AEAD_TAGLEN; + break; + case '\0': + return PIDX_CIPHER_PARAM_AEAD_TAG; + } + } + break; + case 'd': + if (strcmp("es-encrypt-disabled", s + 2) == 0) + return PIDX_PROV_PARAM_TDES_ENCRYPT_DISABLED; + break; + case 'e': + switch(s[2]) { + default: + break; + case 's': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case '-': + if (strcmp("entropy", s + 5) == 0) + return PIDX_SIGNATURE_PARAM_TEST_ENTROPY; + break; + case '_': + switch(s[5]) { + default: + break; + case 'e': + if (strcmp("ntropy", s + 6) == 0) + return PIDX_RAND_PARAM_TEST_ENTROPY; + break; + case 'n': + if (strcmp("once", s + 6) == 0) + return PIDX_RAND_PARAM_TEST_NONCE; + } + } + } + } + break; + case 'h': + if (strcmp("reads", s + 2) == 0) + return PIDX_KDF_PARAM_THREADS; + break; + case 'l': + switch(s[2]) { + default: + break; + case 's': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'c': + if (strcmp("lient-version", s + 5) == 0) + return PIDX_ASYM_CIPHER_PARAM_TLS_CLIENT_VERSION; + break; + case 'd': + if (strcmp("ata-size", s + 5) == 0) + return PIDX_MAC_PARAM_TLS_DATA_SIZE; + break; + case 'g': + switch(s[5]) { + default: + break; + case 'r': + switch(s[6]) { + default: + break; + case 'o': + switch(s[7]) { + default: + break; + case 'u': + switch(s[8]) { + default: + break; + case 'p': + switch(s[9]) { + default: + break; + case '-': + switch(s[10]) { + default: + break; + case 'a': + if (strcmp("lg", s + 11) == 0) + return PIDX_CAPABILITY_TLS_GROUP_ALG; + break; + case 'i': + switch(s[11]) { + default: + break; + case 'd': + switch(s[12]) { + default: + break; + case '\0': + return PIDX_CAPABILITY_TLS_GROUP_ID; + } + break; + case 's': + if (strcmp("-kem", s + 12) == 0) + return PIDX_CAPABILITY_TLS_GROUP_IS_KEM; + } + break; + case 'n': + switch(s[11]) { + default: + break; + case 'a': + switch(s[12]) { + default: + break; + case 'm': + switch(s[13]) { + default: + break; + case 'e': + switch(s[14]) { + default: + break; + case '-': + if (strcmp("internal", s + 15) == 0) + return PIDX_CAPABILITY_TLS_GROUP_NAME_INTERNAL; + break; + case '\0': + return PIDX_CAPABILITY_TLS_GROUP_NAME; + } + } + } + } + break; + case 's': + if (strcmp("ec-bits", s + 11) == 0) + return PIDX_CAPABILITY_TLS_GROUP_SECURITY_BITS; + } + } + } + } + } + } + break; + case 'm': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case 'c': + switch(s[7]) { + default: + break; + case '-': + if (strcmp("size", s + 8) == 0) + return PIDX_CIPHER_PARAM_TLS_MAC_SIZE; + break; + case '\0': + return PIDX_CIPHER_PARAM_TLS_MAC; + } + break; + case 'x': + switch(s[7]) { + default: + break; + case '-': + switch(s[8]) { + default: + break; + case 'd': + if (strcmp("tls", s + 9) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_MAX_DTLS; + break; + case 't': + if (strcmp("ls", s + 9) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_MAX_TLS; + } + } + } + break; + case 'i': + switch(s[6]) { + default: + break; + case 'n': + switch(s[7]) { + default: + break; + case '-': + switch(s[8]) { + default: + break; + case 'd': + if (strcmp("tls", s + 9) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_MIN_DTLS; + break; + case 't': + if (strcmp("ls", s + 9) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_MIN_TLS; + } + } + } + break; + case 'u': + if (strcmp("lti", s + 6) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK; + } + break; + case 'n': + if (strcmp("egotiated-version", s + 5) == 0) + return PIDX_ASYM_CIPHER_PARAM_TLS_NEGOTIATED_VERSION; + break; + case 's': + switch(s[5]) { + default: + break; + case 'i': + switch(s[6]) { + default: + break; + case 'g': + switch(s[7]) { + default: + break; + case 'a': + switch(s[8]) { + default: + break; + case 'l': + switch(s[9]) { + default: + break; + case 'g': + switch(s[10]) { + default: + break; + case '-': + switch(s[11]) { + default: + break; + case 'c': + if (strcmp("ode-point", s + 12) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_CODE_POINT; + break; + case 'h': + switch(s[12]) { + default: + break; + case 'a': + switch(s[13]) { + default: + break; + case 's': + switch(s[14]) { + default: + break; + case 'h': + switch(s[15]) { + default: + break; + case '-': + switch(s[16]) { + default: + break; + case 'n': + if (strcmp("ame", s + 17) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_HASH_NAME; + break; + case 'o': + if (strcmp("id", s + 17) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_HASH_OID; + } + } + } + } + } + break; + case 'i': + if (strcmp("ana-name", s + 12) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_IANA_NAME; + break; + case 'k': + switch(s[12]) { + default: + break; + case 'e': + switch(s[13]) { + default: + break; + case 'y': + switch(s[14]) { + default: + break; + case 't': + switch(s[15]) { + default: + break; + case 'y': + switch(s[16]) { + default: + break; + case 'p': + switch(s[17]) { + default: + break; + case 'e': + switch(s[18]) { + default: + break; + case '-': + if (strcmp("oid", s + 19) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_KEYTYPE_OID; + break; + case '\0': + return PIDX_CAPABILITY_TLS_SIGALG_KEYTYPE; + } + } + } + } + } + } + } + break; + case 'n': + if (strcmp("ame", s + 12) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_NAME; + break; + case 'o': + if (strcmp("id", s + 12) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_OID; + break; + case 's': + switch(s[12]) { + default: + break; + case 'e': + if (strcmp("c-bits", s + 13) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_SECURITY_BITS; + break; + case 'i': + switch(s[13]) { + default: + break; + case 'g': + switch(s[14]) { + default: + break; + case '-': + switch(s[15]) { + default: + break; + case 'n': + if (strcmp("ame", s + 16) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_SIG_NAME; + break; + case 'o': + if (strcmp("id", s + 16) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_SIG_OID; + } + } + } + } + } + } + } + } + } + } + } + break; + case 'v': + if (strcmp("ersion", s + 5) == 0) + return PIDX_CIPHER_PARAM_TLS_VERSION; + } + break; + case '1': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'p': + switch(s[6]) { + default: + break; + case 'r': + switch(s[7]) { + default: + break; + case 'f': + switch(s[8]) { + default: + break; + case '-': + switch(s[9]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 10) == 0) + return PIDX_PROV_PARAM_TLS1_PRF_DIGEST_CHECK; + break; + case 'e': + if (strcmp("ms-check", s + 10) == 0) + return PIDX_PROV_PARAM_TLS1_PRF_EMS_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 10) == 0) + return PIDX_PROV_PARAM_TLS1_PRF_KEY_CHECK; + } + } + } + } + } + break; + case '3': + switch(s[5]) { + default: + break; + case '-': + switch(s[6]) { + default: + break; + case 'k': + switch(s[7]) { + default: + break; + case 'd': + switch(s[8]) { + default: + break; + case 'f': + switch(s[9]) { + default: + break; + case '-': + switch(s[10]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 11) == 0) + return PIDX_PROV_PARAM_TLS13_KDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 11) == 0) + return PIDX_PROV_PARAM_TLS13_KDF_KEY_CHECK; + } + } + } + } + } + } + break; + case 'm': + switch(s[5]) { + default: + break; + case 'u': + switch(s[6]) { + default: + break; + case 'l': + switch(s[7]) { + default: + break; + case 't': + switch(s[8]) { + default: + break; + case 'i': + switch(s[9]) { + default: + break; + case '_': + switch(s[10]) { + default: + break; + case 'a': + switch(s[11]) { + default: + break; + case 'a': + switch(s[12]) { + default: + break; + case 'd': + switch(s[13]) { + default: + break; + case 'p': + if (strcmp("acklen", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD_PACKLEN; + break; + case '\0': + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD; + } + } + } + break; + case 'e': + switch(s[11]) { + default: + break; + case 'n': + switch(s[12]) { + default: + break; + case 'c': + switch(s[13]) { + default: + break; + case 'i': + if (strcmp("n", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_IN; + break; + case 'l': + if (strcmp("en", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_LEN; + break; + case '\0': + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC; + } + } + } + break; + case 'i': + if (strcmp("nterleave", s + 11) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_INTERLEAVE; + break; + case 'm': + switch(s[11]) { + default: + break; + case 'a': + switch(s[12]) { + default: + break; + case 'x': + switch(s[13]) { + default: + break; + case 'b': + if (strcmp("ufsz", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_BUFSIZE; + break; + case 's': + if (strcmp("ndfrag", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_SEND_FRAGMENT; + } + } + } + } + } + } + } + } + } + } + break; + case 'a': + switch(s[4]) { + default: + break; + case 'a': + switch(s[5]) { + default: + break; + case 'd': + switch(s[6]) { + default: + break; + case 'p': + if (strcmp("ad", s + 7) == 0) + return PIDX_CIPHER_PARAM_AEAD_TLS1_AAD_PAD; + break; + case '\0': + return PIDX_CIPHER_PARAM_AEAD_TLS1_AAD; + } + } + } + break; + case 'i': + switch(s[4]) { + default: + break; + case 'v': + switch(s[5]) { + default: + break; + case 'f': + if (strcmp("ixed", s + 6) == 0) + return PIDX_CIPHER_PARAM_AEAD_TLS1_IV_FIXED; + break; + case 'g': + if (strcmp("en", s + 6) == 0) + return PIDX_CIPHER_PARAM_AEAD_TLS1_GET_IV_GEN; + break; + case 'i': + if (strcmp("nv", s + 6) == 0) + return PIDX_CIPHER_PARAM_AEAD_TLS1_SET_IV_INV; + } + } + break; + case 't': + if (strcmp("ree", s + 4) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_TLSTREE; + } + } + break; + case 'p': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_TP_BASIS; + } + break; + case 'y': + if (strcmp("pe", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_TYPE; + } + break; + case 'u': + switch(s[1]) { + default: + break; + case 'k': + if (strcmp("m", s + 2) == 0) + return PIDX_KDF_PARAM_UKM; + break; + case 'p': + if (strcmp("dated-iv", s + 2) == 0) + return PIDX_CIPHER_PARAM_UPDATED_IV; + break; + case 's': + switch(s[2]) { + default: + break; + case 'e': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'b': + if (strcmp("its", s + 5) == 0) + return PIDX_CIPHER_PARAM_USE_BITS; + break; + case 'c': + if (strcmp("ofactor-flag", s + 5) == 0) + return PIDX_PKEY_PARAM_USE_COFACTOR_FLAG; + break; + case 'k': + if (strcmp("eybits", s + 5) == 0) + return PIDX_KDF_PARAM_X942_USE_KEYBITS; + break; + case 'l': + switch(s[5]) { + default: + break; + case '\0': + return PIDX_KDF_PARAM_KBKDF_USE_L; + } + break; + case 's': + if (strcmp("eparator", s + 5) == 0) + return PIDX_KDF_PARAM_KBKDF_USE_SEPARATOR; + } + break; + case '_': + switch(s[4]) { + default: + break; + case 'd': + if (strcmp("erivation_function", s + 5) == 0) + return PIDX_DRBG_PARAM_USE_DF; + break; + case 'e': + if (strcmp("tm", s + 5) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_USE_ETM; + } + } + } + } + break; + case 'v': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'l': + switch(s[3]) { + default: + break; + case 'i': + switch(s[4]) { + default: + break; + case 'd': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case 'e': + switch(s[8]) { + default: + break; + case '-': + switch(s[9]) { + default: + break; + case 'g': + switch(s[10]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_VALIDATE_G; + } + break; + case 'l': + if (strcmp("egacy", s + 10) == 0) + return PIDX_PKEY_PARAM_FFC_VALIDATE_LEGACY; + break; + case 'p': + if (strcmp("q", s + 10) == 0) + return PIDX_PKEY_PARAM_FFC_VALIDATE_PQ; + } + } + } + } + } + } + } + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'r': + switch(s[3]) { + default: + break; + case 'i': + if (strcmp("fy-message", s + 4) == 0) + return PIDX_SIGNATURE_PARAM_FIPS_VERIFY_MESSAGE; + break; + case 's': + if (strcmp("ion", s + 4) == 0) + return PIDX_PROV_PARAM_VERSION; + } + } + } + break; + case 'x': + switch(s[1]) { + default: + break; + case '9': + switch(s[2]) { + default: + break; + case '4': + if (strcmp("2kdf-key-check", s + 3) == 0) + return PIDX_PROV_PARAM_X942KDF_KEY_CHECK; + break; + case '6': + switch(s[3]) { + default: + break; + case '3': + switch(s[4]) { + default: + break; + case 'k': + switch(s[5]) { + default: + break; + case 'd': + switch(s[6]) { + default: + break; + case 'f': + switch(s[7]) { + default: + break; + case '-': + switch(s[8]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 9) == 0) + return PIDX_PROV_PARAM_X963KDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 9) == 0) + return PIDX_PROV_PARAM_X963KDF_KEY_CHECK; + } + } + } + } + } + } + } + break; + case 'c': + if (strcmp("ghash", s + 2) == 0) + return PIDX_KDF_PARAM_SSHKDF_XCGHASH; + break; + case 'o': + switch(s[2]) { + default: + break; + case 'f': + switch(s[3]) { + default: + break; + case 'l': + if (strcmp("en", s + 4) == 0) + return PIDX_DIGEST_PARAM_XOFLEN; + break; + case '\0': + return PIDX_MAC_PARAM_XOF; + } + } + break; + case 'p': + switch(s[2]) { + default: + break; + case '1': + switch(s[3]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XP1; + } + break; + case '2': + switch(s[3]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XP2; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XP; + } + break; + case 'q': + switch(s[2]) { + default: + break; + case '1': + switch(s[3]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XQ1; + } + break; + case '2': + switch(s[3]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XQ2; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XQ; + } + break; + case 't': + if (strcmp("s_standard", s + 2) == 0) + return PIDX_CIPHER_PARAM_XTS_STANDARD; + } + } + return -1; +} + +/* End of TRIE */ diff --git a/deps/openssl/config/archs/darwin-i386-cc/asm/crypto/poly1305/poly1305-x86.S b/deps/openssl/config/archs/darwin-i386-cc/asm/crypto/poly1305/poly1305-x86.S index 96cf0c9fe941f6..a14ec5068dfebe 100644 --- a/deps/openssl/config/archs/darwin-i386-cc/asm/crypto/poly1305/poly1305-x86.S +++ b/deps/openssl/config/archs/darwin-i386-cc/asm/crypto/poly1305/poly1305-x86.S @@ -1935,4 +1935,4 @@ Lconst_sse2: L_OPENSSL_ia32cap_P$non_lazy_ptr: .indirect_symbol _OPENSSL_ia32cap_P .long 0 -.comm _OPENSSL_ia32cap_P,16,2 +.comm _OPENSSL_ia32cap_P,40,2 diff --git a/deps/openssl/config/archs/darwin-i386-cc/asm/crypto/rc4/rc4-586.S b/deps/openssl/config/archs/darwin-i386-cc/asm/crypto/rc4/rc4-586.S index 38098085523f56..b4d7da8aabb1c9 100644 --- a/deps/openssl/config/archs/darwin-i386-cc/asm/crypto/rc4/rc4-586.S +++ b/deps/openssl/config/archs/darwin-i386-cc/asm/crypto/rc4/rc4-586.S @@ -390,4 +390,4 @@ L019opts: L_OPENSSL_ia32cap_P$non_lazy_ptr: .indirect_symbol _OPENSSL_ia32cap_P .long 0 -.comm _OPENSSL_ia32cap_P,16,2 +.comm _OPENSSL_ia32cap_P,40,2 diff --git a/deps/openssl/config/archs/darwin-i386-cc/asm/crypto/sha/sha1-586.S b/deps/openssl/config/archs/darwin-i386-cc/asm/crypto/sha/sha1-586.S index feb96c11a57097..04a3637d51ab5d 100644 --- a/deps/openssl/config/archs/darwin-i386-cc/asm/crypto/sha/sha1-586.S +++ b/deps/openssl/config/archs/darwin-i386-cc/asm/crypto/sha/sha1-586.S @@ -3982,4 +3982,4 @@ LK_XX_XX: L_OPENSSL_ia32cap_P$non_lazy_ptr: .indirect_symbol _OPENSSL_ia32cap_P .long 0 -.comm _OPENSSL_ia32cap_P,16,2 +.comm _OPENSSL_ia32cap_P,40,2 diff --git a/deps/openssl/config/archs/darwin-i386-cc/asm/crypto/sha/sha256-586.S b/deps/openssl/config/archs/darwin-i386-cc/asm/crypto/sha/sha256-586.S index e1dfe28d26e5bb..f79a6b6ce4c94b 100644 --- a/deps/openssl/config/archs/darwin-i386-cc/asm/crypto/sha/sha256-586.S +++ b/deps/openssl/config/archs/darwin-i386-cc/asm/crypto/sha/sha256-586.S @@ -6786,4 +6786,4 @@ L018avx_bmi_00_47: L_OPENSSL_ia32cap_P$non_lazy_ptr: .indirect_symbol _OPENSSL_ia32cap_P .long 0 -.comm _OPENSSL_ia32cap_P,16,2 +.comm _OPENSSL_ia32cap_P,40,2 diff --git a/deps/openssl/config/archs/darwin-i386-cc/asm/crypto/sha/sha512-586.S b/deps/openssl/config/archs/darwin-i386-cc/asm/crypto/sha/sha512-586.S index f9eb6e28565e9e..6df53118ecafc8 100644 --- a/deps/openssl/config/archs/darwin-i386-cc/asm/crypto/sha/sha512-586.S +++ b/deps/openssl/config/archs/darwin-i386-cc/asm/crypto/sha/sha512-586.S @@ -2832,4 +2832,4 @@ L001K512: L_OPENSSL_ia32cap_P$non_lazy_ptr: .indirect_symbol _OPENSSL_ia32cap_P .long 0 -.comm _OPENSSL_ia32cap_P,16,2 +.comm _OPENSSL_ia32cap_P,40,2 diff --git a/deps/openssl/config/archs/darwin-i386-cc/asm/crypto/x86cpuid.S b/deps/openssl/config/archs/darwin-i386-cc/asm/crypto/x86cpuid.S index 8e0719f379c608..d92f53d82dd920 100644 --- a/deps/openssl/config/archs/darwin-i386-cc/asm/crypto/x86cpuid.S +++ b/deps/openssl/config/archs/darwin-i386-cc/asm/crypto/x86cpuid.S @@ -121,6 +121,24 @@ L002generic: xorl %ecx,%ecx .byte 0x0f,0xa2 movl %ebx,8(%edi) + movl %ecx,12(%edi) + movl %edx,16(%edi) + cmpl $1,%eax + jb L005no_extended_info + movl $7,%eax + movl $1,%ecx + .byte 0x0f,0xa2 + movl %eax,20(%edi) + movl %edx,24(%edi) + movl %ebx,28(%edi) + movl %ecx,32(%edi) + andl $524288,%edx + cmpl $0,%edx + je L005no_extended_info + movl $36,%eax + movl $0,%ecx + .byte 0x0f,0xa2 + movl %ebx,36(%edi) L005no_extended_info: btl $27,%ebp jnc L006clear_avx @@ -136,6 +154,7 @@ L008clear_xmm: andl $4278190079,%esi L006clear_avx: andl $4026525695,%ebp + andl $4286578687,20(%edi) andl $4294967263,8(%edi) L007done: movl %esi,%eax @@ -570,7 +589,7 @@ L036done: L_OPENSSL_ia32cap_P$non_lazy_ptr: .indirect_symbol _OPENSSL_ia32cap_P .long 0 -.comm _OPENSSL_ia32cap_P,16,2 +.comm _OPENSSL_ia32cap_P,40,2 .mod_init_func .align 2 .long _OPENSSL_cpuid_setup diff --git a/deps/openssl/config/archs/darwin-i386-cc/asm/include/internal/param_names.h b/deps/openssl/config/archs/darwin-i386-cc/asm/include/internal/param_names.h new file mode 100644 index 00000000000000..0a0404a57e82b9 --- /dev/null +++ b/deps/openssl/config/archs/darwin-i386-cc/asm/include/internal/param_names.h @@ -0,0 +1,469 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from include/internal/param_names.h.in + * + * Copyright 2023 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + +int ossl_param_find_pidx(const char *s); + +/* Parameter name definitions - generated by util/perl/OpenSSL/paramnames.pm */ +#define NUM_PIDX 346 + +#define PIDX_ALG_PARAM_ALGORITHM_ID 0 +#define PIDX_ALG_PARAM_ALGORITHM_ID_PARAMS 1 +#define PIDX_ALG_PARAM_CIPHER 2 +#define PIDX_ALG_PARAM_DIGEST 3 +#define PIDX_ALG_PARAM_ENGINE 4 +#define PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR 5 +#define PIDX_ALG_PARAM_MAC 6 +#define PIDX_ALG_PARAM_PROPERTIES 7 +#define PIDX_ASYM_CIPHER_PARAM_DIGEST PIDX_PKEY_PARAM_DIGEST +#define PIDX_ASYM_CIPHER_PARAM_ENGINE PIDX_PKEY_PARAM_ENGINE +#define PIDX_ASYM_CIPHER_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_ASYM_CIPHER_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_ASYM_CIPHER_PARAM_FIPS_RSA_PKCS15_PAD_DISABLED PIDX_PROV_PARAM_RSA_PKCS15_PAD_DISABLED +#define PIDX_ASYM_CIPHER_PARAM_IMPLICIT_REJECTION 8 +#define PIDX_ASYM_CIPHER_PARAM_MGF1_DIGEST PIDX_PKEY_PARAM_MGF1_DIGEST +#define PIDX_ASYM_CIPHER_PARAM_MGF1_DIGEST_PROPS PIDX_PKEY_PARAM_MGF1_PROPERTIES +#define PIDX_ASYM_CIPHER_PARAM_OAEP_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_ASYM_CIPHER_PARAM_OAEP_DIGEST_PROPS 9 +#define PIDX_ASYM_CIPHER_PARAM_OAEP_LABEL 10 +#define PIDX_ASYM_CIPHER_PARAM_PAD_MODE PIDX_PKEY_PARAM_PAD_MODE +#define PIDX_ASYM_CIPHER_PARAM_PROPERTIES PIDX_PKEY_PARAM_PROPERTIES +#define PIDX_ASYM_CIPHER_PARAM_TLS_CLIENT_VERSION 11 +#define PIDX_ASYM_CIPHER_PARAM_TLS_NEGOTIATED_VERSION 12 +#define PIDX_CAPABILITY_TLS_GROUP_ALG 13 +#define PIDX_CAPABILITY_TLS_GROUP_ID 14 +#define PIDX_CAPABILITY_TLS_GROUP_IS_KEM 15 +#define PIDX_CAPABILITY_TLS_GROUP_MAX_DTLS 16 +#define PIDX_CAPABILITY_TLS_GROUP_MAX_TLS 17 +#define PIDX_CAPABILITY_TLS_GROUP_MIN_DTLS 18 +#define PIDX_CAPABILITY_TLS_GROUP_MIN_TLS 19 +#define PIDX_CAPABILITY_TLS_GROUP_NAME 20 +#define PIDX_CAPABILITY_TLS_GROUP_NAME_INTERNAL 21 +#define PIDX_CAPABILITY_TLS_GROUP_SECURITY_BITS 22 +#define PIDX_CAPABILITY_TLS_SIGALG_CODE_POINT 23 +#define PIDX_CAPABILITY_TLS_SIGALG_HASH_NAME 24 +#define PIDX_CAPABILITY_TLS_SIGALG_HASH_OID 25 +#define PIDX_CAPABILITY_TLS_SIGALG_IANA_NAME 26 +#define PIDX_CAPABILITY_TLS_SIGALG_KEYTYPE 27 +#define PIDX_CAPABILITY_TLS_SIGALG_KEYTYPE_OID 28 +#define PIDX_CAPABILITY_TLS_SIGALG_MAX_DTLS 16 +#define PIDX_CAPABILITY_TLS_SIGALG_MAX_TLS 17 +#define PIDX_CAPABILITY_TLS_SIGALG_MIN_DTLS 18 +#define PIDX_CAPABILITY_TLS_SIGALG_MIN_TLS 19 +#define PIDX_CAPABILITY_TLS_SIGALG_NAME 29 +#define PIDX_CAPABILITY_TLS_SIGALG_OID 30 +#define PIDX_CAPABILITY_TLS_SIGALG_SECURITY_BITS 31 +#define PIDX_CAPABILITY_TLS_SIGALG_SIG_NAME 32 +#define PIDX_CAPABILITY_TLS_SIGALG_SIG_OID 33 +#define PIDX_CIPHER_PARAM_AEAD 34 +#define PIDX_CIPHER_PARAM_AEAD_IVLEN PIDX_CIPHER_PARAM_IVLEN +#define PIDX_CIPHER_PARAM_AEAD_IV_GENERATED 35 +#define PIDX_CIPHER_PARAM_AEAD_MAC_KEY 36 +#define PIDX_CIPHER_PARAM_AEAD_TAG 37 +#define PIDX_CIPHER_PARAM_AEAD_TAGLEN 38 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_AAD 39 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_AAD_PAD 40 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_GET_IV_GEN 41 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_IV_FIXED 42 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_SET_IV_INV 43 +#define PIDX_CIPHER_PARAM_ALGORITHM_ID PIDX_ALG_PARAM_ALGORITHM_ID +#define PIDX_CIPHER_PARAM_ALGORITHM_ID_PARAMS PIDX_ALG_PARAM_ALGORITHM_ID_PARAMS +#define PIDX_CIPHER_PARAM_ALGORITHM_ID_PARAMS_OLD 44 +#define PIDX_CIPHER_PARAM_BLOCK_SIZE 45 +#define PIDX_CIPHER_PARAM_CTS 46 +#define PIDX_CIPHER_PARAM_CTS_MODE 47 +#define PIDX_CIPHER_PARAM_CUSTOM_IV 48 +#define PIDX_CIPHER_PARAM_DECRYPT_ONLY 49 +#define PIDX_CIPHER_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_CIPHER_PARAM_FIPS_ENCRYPT_CHECK 50 +#define PIDX_CIPHER_PARAM_HAS_RAND_KEY 51 +#define PIDX_CIPHER_PARAM_IV 52 +#define PIDX_CIPHER_PARAM_IVLEN 53 +#define PIDX_CIPHER_PARAM_KEYLEN 54 +#define PIDX_CIPHER_PARAM_MODE 55 +#define PIDX_CIPHER_PARAM_NUM 56 +#define PIDX_CIPHER_PARAM_PADDING 57 +#define PIDX_CIPHER_PARAM_PIPELINE_AEAD_TAG 58 +#define PIDX_CIPHER_PARAM_RANDOM_KEY 59 +#define PIDX_CIPHER_PARAM_RC2_KEYBITS 60 +#define PIDX_CIPHER_PARAM_ROUNDS 61 +#define PIDX_CIPHER_PARAM_SPEED 62 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK 63 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD 64 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD_PACKLEN 65 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC 66 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_IN 67 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_LEN 68 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_INTERLEAVE 69 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_BUFSIZE 70 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_SEND_FRAGMENT 71 +#define PIDX_CIPHER_PARAM_TLS_MAC 72 +#define PIDX_CIPHER_PARAM_TLS_MAC_SIZE 73 +#define PIDX_CIPHER_PARAM_TLS_VERSION 74 +#define PIDX_CIPHER_PARAM_UPDATED_IV 75 +#define PIDX_CIPHER_PARAM_USE_BITS 76 +#define PIDX_CIPHER_PARAM_XTS_STANDARD 77 +#define PIDX_DECODER_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_DIGEST_PARAM_ALGID_ABSENT 78 +#define PIDX_DIGEST_PARAM_BLOCK_SIZE 45 +#define PIDX_DIGEST_PARAM_MICALG 79 +#define PIDX_DIGEST_PARAM_PAD_TYPE 80 +#define PIDX_DIGEST_PARAM_SIZE 81 +#define PIDX_DIGEST_PARAM_SSL3_MS 82 +#define PIDX_DIGEST_PARAM_XOF 83 +#define PIDX_DIGEST_PARAM_XOFLEN 84 +#define PIDX_DRBG_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_DRBG_PARAM_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_DRBG_PARAM_ENTROPY_REQUIRED 85 +#define PIDX_DRBG_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_DRBG_PARAM_FIPS_DIGEST_CHECK PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK +#define PIDX_DRBG_PARAM_MAC PIDX_ALG_PARAM_MAC +#define PIDX_DRBG_PARAM_MAX_ADINLEN 86 +#define PIDX_DRBG_PARAM_MAX_ENTROPYLEN 87 +#define PIDX_DRBG_PARAM_MAX_LENGTH 88 +#define PIDX_DRBG_PARAM_MAX_NONCELEN 89 +#define PIDX_DRBG_PARAM_MAX_PERSLEN 90 +#define PIDX_DRBG_PARAM_MIN_ENTROPYLEN 91 +#define PIDX_DRBG_PARAM_MIN_LENGTH 92 +#define PIDX_DRBG_PARAM_MIN_NONCELEN 93 +#define PIDX_DRBG_PARAM_PREDICTION_RESISTANCE 94 +#define PIDX_DRBG_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_DRBG_PARAM_RANDOM_DATA 95 +#define PIDX_DRBG_PARAM_RESEED_COUNTER 96 +#define PIDX_DRBG_PARAM_RESEED_REQUESTS 97 +#define PIDX_DRBG_PARAM_RESEED_TIME 98 +#define PIDX_DRBG_PARAM_RESEED_TIME_INTERVAL 99 +#define PIDX_DRBG_PARAM_SIZE 81 +#define PIDX_DRBG_PARAM_USE_DF 100 +#define PIDX_ENCODER_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_ENCODER_PARAM_ENCRYPT_LEVEL 101 +#define PIDX_ENCODER_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_ENCODER_PARAM_SAVE_PARAMETERS 102 +#define PIDX_EXCHANGE_PARAM_EC_ECDH_COFACTOR_MODE 103 +#define PIDX_EXCHANGE_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_EXCHANGE_PARAM_FIPS_DIGEST_CHECK PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK +#define PIDX_EXCHANGE_PARAM_FIPS_ECDH_COFACTOR_CHECK PIDX_PROV_PARAM_ECDH_COFACTOR_CHECK +#define PIDX_EXCHANGE_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_EXCHANGE_PARAM_KDF_DIGEST 104 +#define PIDX_EXCHANGE_PARAM_KDF_DIGEST_PROPS 105 +#define PIDX_EXCHANGE_PARAM_KDF_OUTLEN 106 +#define PIDX_EXCHANGE_PARAM_KDF_TYPE 107 +#define PIDX_EXCHANGE_PARAM_KDF_UKM 108 +#define PIDX_EXCHANGE_PARAM_PAD 109 +#define PIDX_GEN_PARAM_ITERATION 110 +#define PIDX_GEN_PARAM_POTENTIAL 111 +#define PIDX_KDF_PARAM_ARGON2_AD 112 +#define PIDX_KDF_PARAM_ARGON2_LANES 113 +#define PIDX_KDF_PARAM_ARGON2_MEMCOST 114 +#define PIDX_KDF_PARAM_ARGON2_VERSION 115 +#define PIDX_KDF_PARAM_CEK_ALG 116 +#define PIDX_KDF_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_KDF_PARAM_CONSTANT 117 +#define PIDX_KDF_PARAM_DATA 118 +#define PIDX_KDF_PARAM_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_KDF_PARAM_EARLY_CLEAN 119 +#define PIDX_KDF_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_KDF_PARAM_FIPS_DIGEST_CHECK PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK +#define PIDX_KDF_PARAM_FIPS_EMS_CHECK 120 +#define PIDX_KDF_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_KDF_PARAM_HMACDRBG_ENTROPY 121 +#define PIDX_KDF_PARAM_HMACDRBG_NONCE 122 +#define PIDX_KDF_PARAM_INFO 123 +#define PIDX_KDF_PARAM_ITER 124 +#define PIDX_KDF_PARAM_KBKDF_R 125 +#define PIDX_KDF_PARAM_KBKDF_USE_L 126 +#define PIDX_KDF_PARAM_KBKDF_USE_SEPARATOR 127 +#define PIDX_KDF_PARAM_KEY 128 +#define PIDX_KDF_PARAM_LABEL 129 +#define PIDX_KDF_PARAM_MAC PIDX_ALG_PARAM_MAC +#define PIDX_KDF_PARAM_MAC_SIZE 130 +#define PIDX_KDF_PARAM_MODE 55 +#define PIDX_KDF_PARAM_PASSWORD 131 +#define PIDX_KDF_PARAM_PKCS12_ID 132 +#define PIDX_KDF_PARAM_PKCS5 133 +#define PIDX_KDF_PARAM_PREFIX 134 +#define PIDX_KDF_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_KDF_PARAM_SALT 135 +#define PIDX_KDF_PARAM_SCRYPT_MAXMEM 136 +#define PIDX_KDF_PARAM_SCRYPT_N 137 +#define PIDX_KDF_PARAM_SCRYPT_P 138 +#define PIDX_KDF_PARAM_SCRYPT_R 125 +#define PIDX_KDF_PARAM_SECRET 139 +#define PIDX_KDF_PARAM_SEED 140 +#define PIDX_KDF_PARAM_SIZE 81 +#define PIDX_KDF_PARAM_SSHKDF_SESSION_ID 141 +#define PIDX_KDF_PARAM_SSHKDF_TYPE 142 +#define PIDX_KDF_PARAM_SSHKDF_XCGHASH 143 +#define PIDX_KDF_PARAM_THREADS 144 +#define PIDX_KDF_PARAM_UKM 145 +#define PIDX_KDF_PARAM_X942_ACVPINFO 146 +#define PIDX_KDF_PARAM_X942_PARTYUINFO 147 +#define PIDX_KDF_PARAM_X942_PARTYVINFO 148 +#define PIDX_KDF_PARAM_X942_SUPP_PRIVINFO 149 +#define PIDX_KDF_PARAM_X942_SUPP_PUBINFO 150 +#define PIDX_KDF_PARAM_X942_USE_KEYBITS 151 +#define PIDX_KEM_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_KEM_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_KEM_PARAM_IKME 152 +#define PIDX_KEM_PARAM_OPERATION 153 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_BLOCK_PADDING 154 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_HS_PADDING 155 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_MAX_EARLY_DATA 156 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_MAX_FRAG_LEN 157 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_MODE 55 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_OPTIONS 158 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_READ_AHEAD 159 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_STREAM_MAC 160 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_TLSTREE 161 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_USE_ETM 162 +#define PIDX_LIBSSL_RECORD_LAYER_READ_BUFFER_LEN 163 +#define PIDX_MAC_PARAM_BLOCK_SIZE 164 +#define PIDX_MAC_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_MAC_PARAM_CUSTOM 165 +#define PIDX_MAC_PARAM_C_ROUNDS 166 +#define PIDX_MAC_PARAM_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_MAC_PARAM_DIGEST_NOINIT 167 +#define PIDX_MAC_PARAM_DIGEST_ONESHOT 168 +#define PIDX_MAC_PARAM_D_ROUNDS 169 +#define PIDX_MAC_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_MAC_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_MAC_PARAM_FIPS_NO_SHORT_MAC PIDX_PROV_PARAM_NO_SHORT_MAC +#define PIDX_MAC_PARAM_IV 52 +#define PIDX_MAC_PARAM_KEY 128 +#define PIDX_MAC_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_MAC_PARAM_SALT 135 +#define PIDX_MAC_PARAM_SIZE 81 +#define PIDX_MAC_PARAM_TLS_DATA_SIZE 170 +#define PIDX_MAC_PARAM_XOF 83 +#define PIDX_OBJECT_PARAM_DATA 118 +#define PIDX_OBJECT_PARAM_DATA_STRUCTURE 171 +#define PIDX_OBJECT_PARAM_DATA_TYPE 172 +#define PIDX_OBJECT_PARAM_DESC 173 +#define PIDX_OBJECT_PARAM_INPUT_TYPE 174 +#define PIDX_OBJECT_PARAM_REFERENCE 175 +#define PIDX_OBJECT_PARAM_TYPE 142 +#define PIDX_PASSPHRASE_PARAM_INFO 123 +#define PIDX_PKEY_PARAM_ALGORITHM_ID PIDX_ALG_PARAM_ALGORITHM_ID +#define PIDX_PKEY_PARAM_ALGORITHM_ID_PARAMS PIDX_ALG_PARAM_ALGORITHM_ID_PARAMS +#define PIDX_PKEY_PARAM_BITS 176 +#define PIDX_PKEY_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_PKEY_PARAM_DEFAULT_DIGEST 177 +#define PIDX_PKEY_PARAM_DHKEM_IKM 178 +#define PIDX_PKEY_PARAM_DH_GENERATOR 179 +#define PIDX_PKEY_PARAM_DH_PRIV_LEN 180 +#define PIDX_PKEY_PARAM_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_PKEY_PARAM_DIGEST_SIZE 181 +#define PIDX_PKEY_PARAM_DIST_ID 182 +#define PIDX_PKEY_PARAM_EC_A 183 +#define PIDX_PKEY_PARAM_EC_B 184 +#define PIDX_PKEY_PARAM_EC_CHAR2_M 185 +#define PIDX_PKEY_PARAM_EC_CHAR2_PP_K1 186 +#define PIDX_PKEY_PARAM_EC_CHAR2_PP_K2 187 +#define PIDX_PKEY_PARAM_EC_CHAR2_PP_K3 188 +#define PIDX_PKEY_PARAM_EC_CHAR2_TP_BASIS 189 +#define PIDX_PKEY_PARAM_EC_CHAR2_TYPE 190 +#define PIDX_PKEY_PARAM_EC_COFACTOR 191 +#define PIDX_PKEY_PARAM_EC_DECODED_FROM_EXPLICIT_PARAMS 192 +#define PIDX_PKEY_PARAM_EC_ENCODING 193 +#define PIDX_PKEY_PARAM_EC_FIELD_TYPE 194 +#define PIDX_PKEY_PARAM_EC_GENERATOR 195 +#define PIDX_PKEY_PARAM_EC_GROUP_CHECK_TYPE 196 +#define PIDX_PKEY_PARAM_EC_INCLUDE_PUBLIC 197 +#define PIDX_PKEY_PARAM_EC_ORDER 198 +#define PIDX_PKEY_PARAM_EC_P 138 +#define PIDX_PKEY_PARAM_EC_POINT_CONVERSION_FORMAT 199 +#define PIDX_PKEY_PARAM_EC_PUB_X 200 +#define PIDX_PKEY_PARAM_EC_PUB_Y 201 +#define PIDX_PKEY_PARAM_EC_SEED 140 +#define PIDX_PKEY_PARAM_ENCODED_PUBLIC_KEY 202 +#define PIDX_PKEY_PARAM_ENGINE PIDX_ALG_PARAM_ENGINE +#define PIDX_PKEY_PARAM_FFC_COFACTOR 203 +#define PIDX_PKEY_PARAM_FFC_DIGEST PIDX_PKEY_PARAM_DIGEST +#define PIDX_PKEY_PARAM_FFC_DIGEST_PROPS PIDX_PKEY_PARAM_PROPERTIES +#define PIDX_PKEY_PARAM_FFC_G 204 +#define PIDX_PKEY_PARAM_FFC_GINDEX 205 +#define PIDX_PKEY_PARAM_FFC_H 206 +#define PIDX_PKEY_PARAM_FFC_P 138 +#define PIDX_PKEY_PARAM_FFC_PBITS 207 +#define PIDX_PKEY_PARAM_FFC_PCOUNTER 208 +#define PIDX_PKEY_PARAM_FFC_Q 209 +#define PIDX_PKEY_PARAM_FFC_QBITS 210 +#define PIDX_PKEY_PARAM_FFC_SEED 140 +#define PIDX_PKEY_PARAM_FFC_TYPE 142 +#define PIDX_PKEY_PARAM_FFC_VALIDATE_G 211 +#define PIDX_PKEY_PARAM_FFC_VALIDATE_LEGACY 212 +#define PIDX_PKEY_PARAM_FFC_VALIDATE_PQ 213 +#define PIDX_PKEY_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK 214 +#define PIDX_PKEY_PARAM_FIPS_KEY_CHECK 215 +#define PIDX_PKEY_PARAM_FIPS_SIGN_CHECK 216 +#define PIDX_PKEY_PARAM_GROUP_NAME 217 +#define PIDX_PKEY_PARAM_IMPLICIT_REJECTION 8 +#define PIDX_PKEY_PARAM_MANDATORY_DIGEST 218 +#define PIDX_PKEY_PARAM_MASKGENFUNC 219 +#define PIDX_PKEY_PARAM_MAX_SIZE 220 +#define PIDX_PKEY_PARAM_MGF1_DIGEST 221 +#define PIDX_PKEY_PARAM_MGF1_PROPERTIES 222 +#define PIDX_PKEY_PARAM_ML_DSA_INPUT_FORMATS 223 +#define PIDX_PKEY_PARAM_ML_DSA_OUTPUT_FORMATS 224 +#define PIDX_PKEY_PARAM_ML_DSA_PREFER_SEED 225 +#define PIDX_PKEY_PARAM_ML_DSA_RETAIN_SEED 226 +#define PIDX_PKEY_PARAM_ML_DSA_SEED 140 +#define PIDX_PKEY_PARAM_ML_KEM_IMPORT_PCT_TYPE 227 +#define PIDX_PKEY_PARAM_ML_KEM_INPUT_FORMATS 228 +#define PIDX_PKEY_PARAM_ML_KEM_OUTPUT_FORMATS 229 +#define PIDX_PKEY_PARAM_ML_KEM_PREFER_SEED 230 +#define PIDX_PKEY_PARAM_ML_KEM_RETAIN_SEED 231 +#define PIDX_PKEY_PARAM_ML_KEM_SEED 140 +#define PIDX_PKEY_PARAM_PAD_MODE 232 +#define PIDX_PKEY_PARAM_PRIV_KEY 233 +#define PIDX_PKEY_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_PKEY_PARAM_PUB_KEY 234 +#define PIDX_PKEY_PARAM_RSA_BITS PIDX_PKEY_PARAM_BITS +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT 235 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT1 236 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT2 237 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT3 238 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT4 239 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT5 240 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT6 241 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT7 242 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT8 243 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT9 244 +#define PIDX_PKEY_PARAM_RSA_D 245 +#define PIDX_PKEY_PARAM_RSA_DERIVE_FROM_PQ 246 +#define PIDX_PKEY_PARAM_RSA_DIGEST PIDX_PKEY_PARAM_DIGEST +#define PIDX_PKEY_PARAM_RSA_DIGEST_PROPS PIDX_PKEY_PARAM_PROPERTIES +#define PIDX_PKEY_PARAM_RSA_E 247 +#define PIDX_PKEY_PARAM_RSA_EXPONENT 248 +#define PIDX_PKEY_PARAM_RSA_EXPONENT1 249 +#define PIDX_PKEY_PARAM_RSA_EXPONENT10 250 +#define PIDX_PKEY_PARAM_RSA_EXPONENT2 251 +#define PIDX_PKEY_PARAM_RSA_EXPONENT3 252 +#define PIDX_PKEY_PARAM_RSA_EXPONENT4 253 +#define PIDX_PKEY_PARAM_RSA_EXPONENT5 254 +#define PIDX_PKEY_PARAM_RSA_EXPONENT6 255 +#define PIDX_PKEY_PARAM_RSA_EXPONENT7 256 +#define PIDX_PKEY_PARAM_RSA_EXPONENT8 257 +#define PIDX_PKEY_PARAM_RSA_EXPONENT9 258 +#define PIDX_PKEY_PARAM_RSA_FACTOR 259 +#define PIDX_PKEY_PARAM_RSA_FACTOR1 260 +#define PIDX_PKEY_PARAM_RSA_FACTOR10 261 +#define PIDX_PKEY_PARAM_RSA_FACTOR2 262 +#define PIDX_PKEY_PARAM_RSA_FACTOR3 263 +#define PIDX_PKEY_PARAM_RSA_FACTOR4 264 +#define PIDX_PKEY_PARAM_RSA_FACTOR5 265 +#define PIDX_PKEY_PARAM_RSA_FACTOR6 266 +#define PIDX_PKEY_PARAM_RSA_FACTOR7 267 +#define PIDX_PKEY_PARAM_RSA_FACTOR8 268 +#define PIDX_PKEY_PARAM_RSA_FACTOR9 269 +#define PIDX_PKEY_PARAM_RSA_MASKGENFUNC PIDX_PKEY_PARAM_MASKGENFUNC +#define PIDX_PKEY_PARAM_RSA_MGF1_DIGEST PIDX_PKEY_PARAM_MGF1_DIGEST +#define PIDX_PKEY_PARAM_RSA_N 137 +#define PIDX_PKEY_PARAM_RSA_PRIMES 270 +#define PIDX_PKEY_PARAM_RSA_PSS_SALTLEN 271 +#define PIDX_PKEY_PARAM_RSA_TEST_P1 272 +#define PIDX_PKEY_PARAM_RSA_TEST_P2 273 +#define PIDX_PKEY_PARAM_RSA_TEST_Q1 274 +#define PIDX_PKEY_PARAM_RSA_TEST_Q2 275 +#define PIDX_PKEY_PARAM_RSA_TEST_XP 276 +#define PIDX_PKEY_PARAM_RSA_TEST_XP1 277 +#define PIDX_PKEY_PARAM_RSA_TEST_XP2 278 +#define PIDX_PKEY_PARAM_RSA_TEST_XQ 279 +#define PIDX_PKEY_PARAM_RSA_TEST_XQ1 280 +#define PIDX_PKEY_PARAM_RSA_TEST_XQ2 281 +#define PIDX_PKEY_PARAM_SECURITY_BITS 282 +#define PIDX_PKEY_PARAM_SLH_DSA_SEED 140 +#define PIDX_PKEY_PARAM_USE_COFACTOR_ECDH PIDX_PKEY_PARAM_USE_COFACTOR_FLAG +#define PIDX_PKEY_PARAM_USE_COFACTOR_FLAG 283 +#define PIDX_PROV_PARAM_BUILDINFO 284 +#define PIDX_PROV_PARAM_CORE_MODULE_FILENAME 285 +#define PIDX_PROV_PARAM_CORE_PROV_NAME 286 +#define PIDX_PROV_PARAM_CORE_VERSION 287 +#define PIDX_PROV_PARAM_DRBG_TRUNC_DIGEST 288 +#define PIDX_PROV_PARAM_DSA_SIGN_DISABLED 289 +#define PIDX_PROV_PARAM_ECDH_COFACTOR_CHECK 290 +#define PIDX_PROV_PARAM_HKDF_DIGEST_CHECK 291 +#define PIDX_PROV_PARAM_HKDF_KEY_CHECK 292 +#define PIDX_PROV_PARAM_HMAC_KEY_CHECK 293 +#define PIDX_PROV_PARAM_KBKDF_KEY_CHECK 294 +#define PIDX_PROV_PARAM_KMAC_KEY_CHECK 295 +#define PIDX_PROV_PARAM_NAME 296 +#define PIDX_PROV_PARAM_NO_SHORT_MAC 297 +#define PIDX_PROV_PARAM_PBKDF2_LOWER_BOUND_CHECK 298 +#define PIDX_PROV_PARAM_RSA_PKCS15_PAD_DISABLED 299 +#define PIDX_PROV_PARAM_RSA_PSS_SALTLEN_CHECK 300 +#define PIDX_PROV_PARAM_RSA_SIGN_X931_PAD_DISABLED 301 +#define PIDX_PROV_PARAM_SECURITY_CHECKS 302 +#define PIDX_PROV_PARAM_SELF_TEST_DESC 303 +#define PIDX_PROV_PARAM_SELF_TEST_PHASE 304 +#define PIDX_PROV_PARAM_SELF_TEST_TYPE 305 +#define PIDX_PROV_PARAM_SIGNATURE_DIGEST_CHECK 306 +#define PIDX_PROV_PARAM_SSHKDF_DIGEST_CHECK 307 +#define PIDX_PROV_PARAM_SSHKDF_KEY_CHECK 308 +#define PIDX_PROV_PARAM_SSKDF_DIGEST_CHECK 309 +#define PIDX_PROV_PARAM_SSKDF_KEY_CHECK 310 +#define PIDX_PROV_PARAM_STATUS 311 +#define PIDX_PROV_PARAM_TDES_ENCRYPT_DISABLED 312 +#define PIDX_PROV_PARAM_TLS13_KDF_DIGEST_CHECK 313 +#define PIDX_PROV_PARAM_TLS13_KDF_KEY_CHECK 314 +#define PIDX_PROV_PARAM_TLS1_PRF_DIGEST_CHECK 315 +#define PIDX_PROV_PARAM_TLS1_PRF_EMS_CHECK 316 +#define PIDX_PROV_PARAM_TLS1_PRF_KEY_CHECK 317 +#define PIDX_PROV_PARAM_VERSION 115 +#define PIDX_PROV_PARAM_X942KDF_KEY_CHECK 318 +#define PIDX_PROV_PARAM_X963KDF_DIGEST_CHECK 319 +#define PIDX_PROV_PARAM_X963KDF_KEY_CHECK 320 +#define PIDX_RAND_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_RAND_PARAM_GENERATE 321 +#define PIDX_RAND_PARAM_MAX_REQUEST 322 +#define PIDX_RAND_PARAM_STATE 323 +#define PIDX_RAND_PARAM_STRENGTH 324 +#define PIDX_RAND_PARAM_TEST_ENTROPY 325 +#define PIDX_RAND_PARAM_TEST_NONCE 326 +#define PIDX_SIGNATURE_PARAM_ADD_RANDOM 327 +#define PIDX_SIGNATURE_PARAM_ALGORITHM_ID PIDX_PKEY_PARAM_ALGORITHM_ID +#define PIDX_SIGNATURE_PARAM_ALGORITHM_ID_PARAMS PIDX_PKEY_PARAM_ALGORITHM_ID_PARAMS +#define PIDX_SIGNATURE_PARAM_CONTEXT_STRING 328 +#define PIDX_SIGNATURE_PARAM_DETERMINISTIC 329 +#define PIDX_SIGNATURE_PARAM_DIGEST PIDX_PKEY_PARAM_DIGEST +#define PIDX_SIGNATURE_PARAM_DIGEST_SIZE PIDX_PKEY_PARAM_DIGEST_SIZE +#define PIDX_SIGNATURE_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_SIGNATURE_PARAM_FIPS_DIGEST_CHECK PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK +#define PIDX_SIGNATURE_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_SIGNATURE_PARAM_FIPS_RSA_PSS_SALTLEN_CHECK 300 +#define PIDX_SIGNATURE_PARAM_FIPS_SIGN_CHECK PIDX_PKEY_PARAM_FIPS_SIGN_CHECK +#define PIDX_SIGNATURE_PARAM_FIPS_SIGN_X931_PAD_CHECK 330 +#define PIDX_SIGNATURE_PARAM_FIPS_VERIFY_MESSAGE 331 +#define PIDX_SIGNATURE_PARAM_INSTANCE 332 +#define PIDX_SIGNATURE_PARAM_KAT 333 +#define PIDX_SIGNATURE_PARAM_MESSAGE_ENCODING 334 +#define PIDX_SIGNATURE_PARAM_MGF1_DIGEST PIDX_PKEY_PARAM_MGF1_DIGEST +#define PIDX_SIGNATURE_PARAM_MGF1_PROPERTIES PIDX_PKEY_PARAM_MGF1_PROPERTIES +#define PIDX_SIGNATURE_PARAM_MU 335 +#define PIDX_SIGNATURE_PARAM_NONCE_TYPE 336 +#define PIDX_SIGNATURE_PARAM_PAD_MODE PIDX_PKEY_PARAM_PAD_MODE +#define PIDX_SIGNATURE_PARAM_PROPERTIES PIDX_PKEY_PARAM_PROPERTIES +#define PIDX_SIGNATURE_PARAM_PSS_SALTLEN 271 +#define PIDX_SIGNATURE_PARAM_SIGNATURE 337 +#define PIDX_SIGNATURE_PARAM_TEST_ENTROPY 338 +#define PIDX_SKEY_PARAM_KEY_LENGTH 339 +#define PIDX_SKEY_PARAM_RAW_BYTES 340 +#define PIDX_STORE_PARAM_ALIAS 341 +#define PIDX_STORE_PARAM_DIGEST 3 +#define PIDX_STORE_PARAM_EXPECT 342 +#define PIDX_STORE_PARAM_FINGERPRINT 343 +#define PIDX_STORE_PARAM_INPUT_TYPE 174 +#define PIDX_STORE_PARAM_ISSUER 296 +#define PIDX_STORE_PARAM_PROPERTIES 7 +#define PIDX_STORE_PARAM_SERIAL 344 +#define PIDX_STORE_PARAM_SUBJECT 345 diff --git a/deps/openssl/config/archs/darwin-i386-cc/asm/include/openssl/asn1.h b/deps/openssl/config/archs/darwin-i386-cc/asm/include/openssl/asn1.h index 21ff58e3d803d4..15e9e44674b0f3 100644 --- a/deps/openssl/config/archs/darwin-i386-cc/asm/include/openssl/asn1.h +++ b/deps/openssl/config/archs/darwin-i386-cc/asm/include/openssl/asn1.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/asn1.h.in * - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -21,6 +21,9 @@ # define HEADER_ASN1_H # endif +# ifndef OPENSSL_NO_STDIO +# include +# endif # include # include # include @@ -50,14 +53,14 @@ extern "C" { # define V_ASN1_PRIMITIVE_TAG 0x1f # define V_ASN1_PRIMATIVE_TAG /*compat*/ V_ASN1_PRIMITIVE_TAG -# define V_ASN1_APP_CHOOSE -2/* let the recipient choose */ -# define V_ASN1_OTHER -3/* used in ASN1_TYPE */ -# define V_ASN1_ANY -4/* used in ASN1 template code */ +# define V_ASN1_APP_CHOOSE -2 /* let the recipient choose */ +# define V_ASN1_OTHER -3 /* used in ASN1_TYPE */ +# define V_ASN1_ANY -4 /* used in ASN1 template code */ # define V_ASN1_UNDEF -1 /* ASN.1 tag values */ # define V_ASN1_EOC 0 -# define V_ASN1_BOOLEAN 1 /**/ +# define V_ASN1_BOOLEAN 1 # define V_ASN1_INTEGER 2 # define V_ASN1_BIT_STRING 3 # define V_ASN1_OCTET_STRING 4 @@ -70,19 +73,19 @@ extern "C" { # define V_ASN1_UTF8STRING 12 # define V_ASN1_SEQUENCE 16 # define V_ASN1_SET 17 -# define V_ASN1_NUMERICSTRING 18 /**/ +# define V_ASN1_NUMERICSTRING 18 # define V_ASN1_PRINTABLESTRING 19 # define V_ASN1_T61STRING 20 -# define V_ASN1_TELETEXSTRING 20/* alias */ -# define V_ASN1_VIDEOTEXSTRING 21 /**/ +# define V_ASN1_TELETEXSTRING 20 /* alias */ +# define V_ASN1_VIDEOTEXSTRING 21 # define V_ASN1_IA5STRING 22 # define V_ASN1_UTCTIME 23 -# define V_ASN1_GENERALIZEDTIME 24 /**/ -# define V_ASN1_GRAPHICSTRING 25 /**/ -# define V_ASN1_ISO64STRING 26 /**/ -# define V_ASN1_VISIBLESTRING 26/* alias */ -# define V_ASN1_GENERALSTRING 27 /**/ -# define V_ASN1_UNIVERSALSTRING 28 /**/ +# define V_ASN1_GENERALIZEDTIME 24 +# define V_ASN1_GRAPHICSTRING 25 +# define V_ASN1_ISO64STRING 26 +# define V_ASN1_VISIBLESTRING 26 /* alias */ +# define V_ASN1_GENERALSTRING 27 +# define V_ASN1_UNIVERSALSTRING 28 # define V_ASN1_BMPSTRING 30 /* @@ -155,7 +158,7 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_ALGOR, X509_ALGOR, X509_ALGOR) -# define ASN1_STRING_FLAG_BITS_LEFT 0x08/* Set if 0x07 has bits left value */ +# define ASN1_STRING_FLAG_BITS_LEFT 0x08 /* Set if 0x07 has bits left value */ /* * This indicates that the ASN1_STRING is not a real value but just a place * holder for the location where indefinite length constructed data should be @@ -275,7 +278,7 @@ typedef struct ASN1_TLC_st ASN1_TLC; /* This is just an opaque pointer */ typedef struct ASN1_VALUE_st ASN1_VALUE; -/* Declare ASN1 functions: the implement macro in in asn1t.h */ +/* Declare ASN1 functions: the implement macro is in asn1t.h */ /* * The mysterious 'extern' that's passed to some macros is innocuous, @@ -368,6 +371,7 @@ typedef struct ASN1_VALUE_st ASN1_VALUE; typedef void *d2i_of_void(void **, const unsigned char **, long); typedef int i2d_of_void(const void *, unsigned char **); +typedef int OSSL_i2d_of_void_ctx(const void *, unsigned char **, void *vctx); /*- * The following macros and typedefs allow an ASN1_ITEM @@ -996,6 +1000,8 @@ int ASN1_TYPE_get_int_octetstring(const ASN1_TYPE *a, long *num, unsigned char *data, int max_len); void *ASN1_item_unpack(const ASN1_STRING *oct, const ASN1_ITEM *it); +void *ASN1_item_unpack_ex(const ASN1_STRING *oct, const ASN1_ITEM *it, + OSSL_LIB_CTX *libctx, const char *propq); ASN1_STRING *ASN1_item_pack(void *obj, const ASN1_ITEM *it, ASN1_OCTET_STRING **oct); diff --git a/deps/openssl/config/archs/darwin-i386-cc/asm/include/openssl/bio.h b/deps/openssl/config/archs/darwin-i386-cc/asm/include/openssl/bio.h index f9aa74731c833c..e02f867beb0ec0 100644 --- a/deps/openssl/config/archs/darwin-i386-cc/asm/include/openssl/bio.h +++ b/deps/openssl/config/archs/darwin-i386-cc/asm/include/openssl/bio.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/bio.h.in * - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -67,8 +67,13 @@ extern "C" { # define BIO_TYPE_DGRAM_SCTP (24|BIO_TYPE_SOURCE_SINK|BIO_TYPE_DESCRIPTOR) # endif # define BIO_TYPE_CORE_TO_PROV (25|BIO_TYPE_SOURCE_SINK) +# define BIO_TYPE_DGRAM_PAIR (26|BIO_TYPE_SOURCE_SINK) +# define BIO_TYPE_DGRAM_MEM (27|BIO_TYPE_SOURCE_SINK) +/* Custom type starting index returned by BIO_get_new_index() */ #define BIO_TYPE_START 128 +/* Custom type maximum index that can be returned by BIO_get_new_index() */ +#define BIO_TYPE_MASK 0xFF /* * BIO_FILENAME_READ|BIO_CLOSE to open or close on free. @@ -171,6 +176,31 @@ extern "C" { # define BIO_CTRL_SET_INDENT 80 # define BIO_CTRL_GET_INDENT 81 +# define BIO_CTRL_DGRAM_GET_LOCAL_ADDR_CAP 82 +# define BIO_CTRL_DGRAM_GET_LOCAL_ADDR_ENABLE 83 +# define BIO_CTRL_DGRAM_SET_LOCAL_ADDR_ENABLE 84 +# define BIO_CTRL_DGRAM_GET_EFFECTIVE_CAPS 85 +# define BIO_CTRL_DGRAM_GET_CAPS 86 +# define BIO_CTRL_DGRAM_SET_CAPS 87 +# define BIO_CTRL_DGRAM_GET_NO_TRUNC 88 +# define BIO_CTRL_DGRAM_SET_NO_TRUNC 89 + +/* + * internal BIO: + * # define BIO_CTRL_SET_KTLS_TX_ZEROCOPY_SENDFILE 90 + */ + +# define BIO_CTRL_GET_RPOLL_DESCRIPTOR 91 +# define BIO_CTRL_GET_WPOLL_DESCRIPTOR 92 +# define BIO_CTRL_DGRAM_DETECT_PEER_ADDR 93 +# define BIO_CTRL_DGRAM_SET0_LOCAL_ADDR 94 + +# define BIO_DGRAM_CAP_NONE 0U +# define BIO_DGRAM_CAP_HANDLES_SRC_ADDR (1U << 0) +# define BIO_DGRAM_CAP_HANDLES_DST_ADDR (1U << 1) +# define BIO_DGRAM_CAP_PROVIDES_SRC_ADDR (1U << 2) +# define BIO_DGRAM_CAP_PROVIDES_DST_ADDR (1U << 3) + # ifndef OPENSSL_NO_KTLS # define BIO_get_ktls_send(b) \ (BIO_ctrl(b, BIO_CTRL_GET_KTLS_SEND, 0, NULL) > 0) @@ -208,7 +238,7 @@ extern "C" { # define BIO_FLAGS_NONCLEAR_RST 0x400 # define BIO_FLAGS_IN_EOF 0x800 -/* the BIO FLAGS values 0x1000 to 0x4000 are reserved for internal KTLS flags */ +/* the BIO FLAGS values 0x1000 to 0x8000 are reserved for internal KTLS flags */ typedef union bio_addr_st BIO_ADDR; typedef struct bio_addrinfo_st BIO_ADDRINFO; @@ -256,12 +286,14 @@ void BIO_clear_flags(BIO *b, int flags); # define BIO_RR_ACCEPT 0x03 /* These are passed by the BIO callback */ -# define BIO_CB_FREE 0x01 -# define BIO_CB_READ 0x02 -# define BIO_CB_WRITE 0x03 -# define BIO_CB_PUTS 0x04 -# define BIO_CB_GETS 0x05 -# define BIO_CB_CTRL 0x06 +# define BIO_CB_FREE 0x01 +# define BIO_CB_READ 0x02 +# define BIO_CB_WRITE 0x03 +# define BIO_CB_PUTS 0x04 +# define BIO_CB_GETS 0x05 +# define BIO_CB_CTRL 0x06 +# define BIO_CB_RECVMMSG 0x07 +# define BIO_CB_SENDMMSG 0x08 /* * The callback is called before and after the underling operation, The @@ -362,6 +394,36 @@ struct bio_dgram_sctp_prinfo { }; # endif +/* BIO_sendmmsg/BIO_recvmmsg-related definitions */ +typedef struct bio_msg_st { + void *data; + size_t data_len; + BIO_ADDR *peer, *local; + uint64_t flags; +} BIO_MSG; + +typedef struct bio_mmsg_cb_args_st { + BIO_MSG *msg; + size_t stride, num_msg; + uint64_t flags; + size_t *msgs_processed; +} BIO_MMSG_CB_ARGS; + +#define BIO_POLL_DESCRIPTOR_TYPE_NONE 0 +#define BIO_POLL_DESCRIPTOR_TYPE_SOCK_FD 1 +#define BIO_POLL_DESCRIPTOR_TYPE_SSL 2 +#define BIO_POLL_DESCRIPTOR_CUSTOM_START 8192 + +typedef struct bio_poll_descriptor_st { + uint32_t type; + union { + int fd; + void *custom; + uintptr_t custom_ui; + SSL *ssl; + } value; +} BIO_POLL_DESCRIPTOR; + /* * #define BIO_CONN_get_param_hostname BIO_ctrl */ @@ -428,10 +490,17 @@ struct bio_dgram_sctp_prinfo { # define BIO_C_SET_CONNECT_MODE 155 +# define BIO_C_SET_TFO 156 /* like BIO_C_SET_NBIO */ + +# define BIO_C_SET_SOCK_TYPE 157 +# define BIO_C_GET_SOCK_TYPE 158 +# define BIO_C_GET_DGRAM_BIO 159 + # define BIO_set_app_data(s,arg) BIO_set_ex_data(s,0,arg) # define BIO_get_app_data(s) BIO_get_ex_data(s,0) -# define BIO_set_nbio(b,n) BIO_ctrl(b,BIO_C_SET_NBIO,(n),NULL) +# define BIO_set_nbio(b,n) BIO_ctrl(b,BIO_C_SET_NBIO,(n),NULL) +# define BIO_set_tfo(b,n) BIO_ctrl(b,BIO_C_SET_TFO,(n),NULL) # ifndef OPENSSL_NO_SOCK /* IP families we support, for BIO_s_connect() and BIO_s_accept() */ @@ -452,7 +521,11 @@ struct bio_dgram_sctp_prinfo { # define BIO_get_conn_port(b) ((const char *)BIO_ptr_ctrl(b,BIO_C_GET_CONNECT,1)) # define BIO_get_conn_address(b) ((const BIO_ADDR *)BIO_ptr_ctrl(b,BIO_C_GET_CONNECT,2)) # define BIO_get_conn_ip_family(b) BIO_ctrl(b,BIO_C_GET_CONNECT,3,NULL) +# define BIO_get_conn_mode(b) BIO_ctrl(b,BIO_C_GET_CONNECT,4,NULL) # define BIO_set_conn_mode(b,n) BIO_ctrl(b,BIO_C_SET_CONNECT_MODE,(n),NULL) +# define BIO_set_sock_type(b,t) BIO_ctrl(b,BIO_C_SET_SOCK_TYPE,(t),NULL) +# define BIO_get_sock_type(b) BIO_ctrl(b,BIO_C_GET_SOCK_TYPE,0,NULL) +# define BIO_get0_dgram_bio(b, p) BIO_ctrl(b,BIO_C_GET_DGRAM_BIO,0,(void *)(BIO **)(p)) /* BIO_s_accept() */ # define BIO_set_accept_name(b,name) BIO_ctrl(b,BIO_C_SET_ACCEPT,0, \ @@ -469,6 +542,7 @@ struct bio_dgram_sctp_prinfo { (char *)(bio)) # define BIO_set_accept_ip_family(b,f) BIO_int_ctrl(b,BIO_C_SET_ACCEPT,4,f) # define BIO_get_accept_ip_family(b) BIO_ctrl(b,BIO_C_GET_ACCEPT,4,NULL) +# define BIO_set_tfo_accept(b,n) BIO_ctrl(b,BIO_C_SET_ACCEPT,5,(n)?(void *)"a":NULL) /* Aliases kept for backward compatibility */ # define BIO_BIND_NORMAL 0 @@ -596,8 +670,32 @@ int BIO_ctrl_reset_read_request(BIO *b); (int)BIO_ctrl(b, BIO_CTRL_DGRAM_GET_PEER, 0, (char *)(peer)) # define BIO_dgram_set_peer(b,peer) \ (int)BIO_ctrl(b, BIO_CTRL_DGRAM_SET_PEER, 0, (char *)(peer)) +# define BIO_dgram_detect_peer_addr(b,peer) \ + (int)BIO_ctrl(b, BIO_CTRL_DGRAM_DETECT_PEER_ADDR, 0, (char *)(peer)) # define BIO_dgram_get_mtu_overhead(b) \ (unsigned int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_MTU_OVERHEAD, 0, NULL) +# define BIO_dgram_get_local_addr_cap(b) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_LOCAL_ADDR_CAP, 0, NULL) +# define BIO_dgram_get_local_addr_enable(b, penable) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_LOCAL_ADDR_ENABLE, 0, (char *)(penable)) +# define BIO_dgram_set_local_addr_enable(b, enable) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET_LOCAL_ADDR_ENABLE, (enable), NULL) +# define BIO_dgram_get_effective_caps(b) \ + (uint32_t)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_EFFECTIVE_CAPS, 0, NULL) +# define BIO_dgram_get_caps(b) \ + (uint32_t)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_CAPS, 0, NULL) +# define BIO_dgram_set_caps(b, caps) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET_CAPS, (long)(caps), NULL) +# define BIO_dgram_get_no_trunc(b) \ + (unsigned int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_NO_TRUNC, 0, NULL) +# define BIO_dgram_set_no_trunc(b, enable) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET_NO_TRUNC, (enable), NULL) +# define BIO_dgram_get_mtu(b) \ + (unsigned int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_MTU, 0, NULL) +# define BIO_dgram_set_mtu(b, mtu) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET_MTU, (mtu), NULL) +# define BIO_dgram_set0_local_addr(b, addr) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET0_LOCAL_ADDR, 0, (addr)) /* ctrl macros for BIO_f_prefix */ # define BIO_set_prefix(b,p) BIO_ctrl((b), BIO_CTRL_SET_PREFIX, 0, (void *)(p)) @@ -640,10 +738,18 @@ void BIO_vfree(BIO *a); int BIO_up_ref(BIO *a); int BIO_read(BIO *b, void *data, int dlen); int BIO_read_ex(BIO *b, void *data, size_t dlen, size_t *readbytes); +__owur int BIO_recvmmsg(BIO *b, BIO_MSG *msg, + size_t stride, size_t num_msg, uint64_t flags, + size_t *msgs_processed); int BIO_gets(BIO *bp, char *buf, int size); int BIO_get_line(BIO *bio, char *buf, int size); int BIO_write(BIO *b, const void *data, int dlen); int BIO_write_ex(BIO *b, const void *data, size_t dlen, size_t *written); +__owur int BIO_sendmmsg(BIO *b, BIO_MSG *msg, + size_t stride, size_t num_msg, uint64_t flags, + size_t *msgs_processed); +__owur int BIO_get_rpoll_descriptor(BIO *b, BIO_POLL_DESCRIPTOR *desc); +__owur int BIO_get_wpoll_descriptor(BIO *b, BIO_POLL_DESCRIPTOR *desc); int BIO_puts(BIO *bp, const char *buf); int BIO_indent(BIO *b, int indent, int max); long BIO_ctrl(BIO *bp, int cmd, long larg, void *parg); @@ -667,6 +773,9 @@ int BIO_nwrite0(BIO *bio, char **buf); int BIO_nwrite(BIO *bio, char **buf, int num); const BIO_METHOD *BIO_s_mem(void); +# ifndef OPENSSL_NO_DGRAM +const BIO_METHOD *BIO_s_dgram_mem(void); +# endif const BIO_METHOD *BIO_s_secmem(void); BIO *BIO_new_mem_buf(const void *buf, int len); # ifndef OPENSSL_NO_SOCK @@ -686,6 +795,7 @@ const BIO_METHOD *BIO_f_nbio_test(void); const BIO_METHOD *BIO_f_prefix(void); const BIO_METHOD *BIO_s_core(void); # ifndef OPENSSL_NO_DGRAM +const BIO_METHOD *BIO_s_dgram_pair(void); const BIO_METHOD *BIO_s_datagram(void); int BIO_dgram_non_fatal_error(int error); BIO *BIO_new_dgram(int fd, int close_flag); @@ -704,6 +814,7 @@ int BIO_dgram_sctp_msg_waiting(BIO *b); # ifndef OPENSSL_NO_SOCK int BIO_sock_should_retry(int i); int BIO_sock_non_fatal_error(int error); +int BIO_err_is_non_fatal(unsigned int errcode); int BIO_socket_wait(int fd, int for_read, time_t max_time); # endif int BIO_wait(BIO *bio, time_t max_time, unsigned int nap_milliseconds); @@ -726,6 +837,8 @@ int BIO_hex_string(BIO *out, int indent, int width, const void *data, # ifndef OPENSSL_NO_SOCK BIO_ADDR *BIO_ADDR_new(void); +int BIO_ADDR_copy(BIO_ADDR *dst, const BIO_ADDR *src); +BIO_ADDR *BIO_ADDR_dup(const BIO_ADDR *ap); int BIO_ADDR_rawmake(BIO_ADDR *ap, int family, const void *where, size_t wherelen, unsigned short port); void BIO_ADDR_free(BIO_ADDR *); @@ -788,6 +901,7 @@ int BIO_sock_info(int sock, # define BIO_SOCK_KEEPALIVE 0x04 # define BIO_SOCK_NONBLOCK 0x08 # define BIO_SOCK_NODELAY 0x10 +# define BIO_SOCK_TFO 0x20 int BIO_socket(int domain, int socktype, int protocol, int options); int BIO_connect(int sock, const BIO_ADDR *addr, int options); @@ -805,6 +919,11 @@ BIO *BIO_new_fd(int fd, int close_flag); int BIO_new_bio_pair(BIO **bio1, size_t writebuf1, BIO **bio2, size_t writebuf2); +# ifndef OPENSSL_NO_DGRAM +int BIO_new_bio_dgram_pair(BIO **bio1, size_t writebuf1, + BIO **bio2, size_t writebuf2); +# endif + /* * If successful, returns 1 and in *bio1, *bio2 two BIO pair endpoints. * Otherwise returns 0 and sets *bio1 and *bio2 to NULL. Size 0 uses default @@ -849,38 +968,54 @@ ossl_bio__attr__((__format__(ossl_bio__printf__, 3, 0))); BIO_METHOD *BIO_meth_new(int type, const char *name); void BIO_meth_free(BIO_METHOD *biom); -int (*BIO_meth_get_write(const BIO_METHOD *biom)) (BIO *, const char *, int); -int (*BIO_meth_get_write_ex(const BIO_METHOD *biom)) (BIO *, const char *, size_t, - size_t *); int BIO_meth_set_write(BIO_METHOD *biom, int (*write) (BIO *, const char *, int)); int BIO_meth_set_write_ex(BIO_METHOD *biom, int (*bwrite) (BIO *, const char *, size_t, size_t *)); -int (*BIO_meth_get_read(const BIO_METHOD *biom)) (BIO *, char *, int); -int (*BIO_meth_get_read_ex(const BIO_METHOD *biom)) (BIO *, char *, size_t, size_t *); +int BIO_meth_set_sendmmsg(BIO_METHOD *biom, + int (*f) (BIO *, BIO_MSG *, size_t, size_t, + uint64_t, size_t *)); int BIO_meth_set_read(BIO_METHOD *biom, int (*read) (BIO *, char *, int)); int BIO_meth_set_read_ex(BIO_METHOD *biom, int (*bread) (BIO *, char *, size_t, size_t *)); -int (*BIO_meth_get_puts(const BIO_METHOD *biom)) (BIO *, const char *); +int BIO_meth_set_recvmmsg(BIO_METHOD *biom, + int (*f) (BIO *, BIO_MSG *, size_t, size_t, + uint64_t, size_t *)); int BIO_meth_set_puts(BIO_METHOD *biom, int (*puts) (BIO *, const char *)); -int (*BIO_meth_get_gets(const BIO_METHOD *biom)) (BIO *, char *, int); int BIO_meth_set_gets(BIO_METHOD *biom, int (*ossl_gets) (BIO *, char *, int)); -long (*BIO_meth_get_ctrl(const BIO_METHOD *biom)) (BIO *, int, long, void *); int BIO_meth_set_ctrl(BIO_METHOD *biom, long (*ctrl) (BIO *, int, long, void *)); -int (*BIO_meth_get_create(const BIO_METHOD *bion)) (BIO *); int BIO_meth_set_create(BIO_METHOD *biom, int (*create) (BIO *)); -int (*BIO_meth_get_destroy(const BIO_METHOD *biom)) (BIO *); int BIO_meth_set_destroy(BIO_METHOD *biom, int (*destroy) (BIO *)); -long (*BIO_meth_get_callback_ctrl(const BIO_METHOD *biom)) - (BIO *, int, BIO_info_cb *); int BIO_meth_set_callback_ctrl(BIO_METHOD *biom, long (*callback_ctrl) (BIO *, int, BIO_info_cb *)); - +# ifndef OPENSSL_NO_DEPRECATED_3_5 +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_write(const BIO_METHOD *biom)) (BIO *, const char *, + int); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_write_ex(const BIO_METHOD *biom)) (BIO *, const char *, + size_t, size_t *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_sendmmsg(const BIO_METHOD *biom))(BIO *, BIO_MSG *, + size_t, size_t, + uint64_t, size_t *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_read(const BIO_METHOD *biom)) (BIO *, char *, int); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_read_ex(const BIO_METHOD *biom)) (BIO *, char *, + size_t, size_t *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_recvmmsg(const BIO_METHOD *biom))(BIO *, BIO_MSG *, + size_t, size_t, + uint64_t, size_t *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_puts(const BIO_METHOD *biom)) (BIO *, const char *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_gets(const BIO_METHOD *biom)) (BIO *, char *, int); +OSSL_DEPRECATEDIN_3_5 long (*BIO_meth_get_ctrl(const BIO_METHOD *biom)) (BIO *, int, + long, void *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_create(const BIO_METHOD *bion)) (BIO *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_destroy(const BIO_METHOD *biom)) (BIO *); +OSSL_DEPRECATEDIN_3_5 long (*BIO_meth_get_callback_ctrl(const BIO_METHOD *biom)) (BIO *, int, + BIO_info_cb *); +# endif # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/darwin-i386-cc/asm/include/openssl/cmp.h b/deps/openssl/config/archs/darwin-i386-cc/asm/include/openssl/cmp.h index 49825570d8c303..05aed3029d594c 100644 --- a/deps/openssl/config/archs/darwin-i386-cc/asm/include/openssl/cmp.h +++ b/deps/openssl/config/archs/darwin-i386-cc/asm/include/openssl/cmp.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/cmp.h.in * - * Copyright 2007-2023 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2007-2024 The OpenSSL Project Authors. All Rights Reserved. * Copyright Nokia 2007-2019 * Copyright Siemens AG 2015-2019 * @@ -35,7 +35,9 @@ extern "C" { # endif -# define OSSL_CMP_PVNO 2 +# define OSSL_CMP_PVNO_2 2 +# define OSSL_CMP_PVNO_3 3 +# define OSSL_CMP_PVNO OSSL_CMP_PVNO_2 /* v2 is the default */ /*- * PKIFailureInfo ::= BIT STRING { @@ -137,7 +139,6 @@ extern "C" { # if OSSL_CMP_PKIFAILUREINFO_MAX_BIT_PATTERN > INT_MAX # error CMP_PKIFAILUREINFO_MAX bit pattern does not fit in type int # endif - typedef ASN1_BIT_STRING OSSL_CMP_PKIFAILUREINFO; # define OSSL_CMP_CTX_FAILINFO_badAlg (1 << 0) @@ -203,8 +204,8 @@ typedef ASN1_BIT_STRING OSSL_CMP_PKIFAILUREINFO; # define OSSL_CMP_PKISTATUS_revocationWarning 4 # define OSSL_CMP_PKISTATUS_revocationNotification 5 # define OSSL_CMP_PKISTATUS_keyUpdateWarning 6 - typedef ASN1_INTEGER OSSL_CMP_PKISTATUS; + DECLARE_ASN1_ITEM(OSSL_CMP_PKISTATUS) # define OSSL_CMP_CERTORENCCERT_CERTIFICATE 0 @@ -274,6 +275,46 @@ SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CMP_ITAV, OSSL_CMP_ITAV, OSSL_CMP_ITAV) #define sk_OSSL_CMP_ITAV_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_CMP_ITAV) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_CMP_ITAV_sk_type(sk), ossl_check_OSSL_CMP_ITAV_copyfunc_type(copyfunc), ossl_check_OSSL_CMP_ITAV_freefunc_type(freefunc))) #define sk_OSSL_CMP_ITAV_set_cmp_func(sk, cmp) ((sk_OSSL_CMP_ITAV_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CMP_ITAV_sk_type(sk), ossl_check_OSSL_CMP_ITAV_compfunc_type(cmp))) + +typedef struct ossl_cmp_crlstatus_st OSSL_CMP_CRLSTATUS; +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CMP_CRLSTATUS, OSSL_CMP_CRLSTATUS, OSSL_CMP_CRLSTATUS) +#define sk_OSSL_CMP_CRLSTATUS_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_value(sk, idx) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_value(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk), (idx))) +#define sk_OSSL_CMP_CRLSTATUS_new(cmp) ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_new(ossl_check_OSSL_CMP_CRLSTATUS_compfunc_type(cmp))) +#define sk_OSSL_CMP_CRLSTATUS_new_null() ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_new_null()) +#define sk_OSSL_CMP_CRLSTATUS_new_reserve(cmp, n) ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_CMP_CRLSTATUS_compfunc_type(cmp), (n))) +#define sk_OSSL_CMP_CRLSTATUS_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), (n)) +#define sk_OSSL_CMP_CRLSTATUS_free(sk) OPENSSL_sk_free(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_delete(sk, i) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_delete(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), (i))) +#define sk_OSSL_CMP_CRLSTATUS_delete_ptr(sk, ptr) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr))) +#define sk_OSSL_CMP_CRLSTATUS_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr)) +#define sk_OSSL_CMP_CRLSTATUS_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr)) +#define sk_OSSL_CMP_CRLSTATUS_pop(sk) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_pop(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk))) +#define sk_OSSL_CMP_CRLSTATUS_shift(sk) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_shift(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk))) +#define sk_OSSL_CMP_CRLSTATUS_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk),ossl_check_OSSL_CMP_CRLSTATUS_freefunc_type(freefunc)) +#define sk_OSSL_CMP_CRLSTATUS_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr), (idx)) +#define sk_OSSL_CMP_CRLSTATUS_set(sk, idx, ptr) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_set(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), (idx), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr))) +#define sk_OSSL_CMP_CRLSTATUS_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr)) +#define sk_OSSL_CMP_CRLSTATUS_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr)) +#define sk_OSSL_CMP_CRLSTATUS_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr), pnum) +#define sk_OSSL_CMP_CRLSTATUS_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_dup(sk) ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_dup(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk))) +#define sk_OSSL_CMP_CRLSTATUS_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_copyfunc_type(copyfunc), ossl_check_OSSL_CMP_CRLSTATUS_freefunc_type(freefunc))) +#define sk_OSSL_CMP_CRLSTATUS_set_cmp_func(sk, cmp) ((sk_OSSL_CMP_CRLSTATUS_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_compfunc_type(cmp))) + + +typedef OSSL_CRMF_ATTRIBUTETYPEANDVALUE OSSL_CMP_ATAV; +# define OSSL_CMP_ATAV_free OSSL_CRMF_ATTRIBUTETYPEANDVALUE_free +typedef STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) OSSL_CMP_ATAVS; +DECLARE_ASN1_FUNCTIONS(OSSL_CMP_ATAVS) +# define stack_st_OSSL_CMP_ATAV stack_st_OSSL_CRMF_ATTRIBUTETYPEANDVALUE +# define sk_OSSL_CMP_ATAV_num sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_num +# define sk_OSSL_CMP_ATAV_value sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_value +# define sk_OSSL_CMP_ATAV_push sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_push +# define sk_OSSL_CMP_ATAV_pop_free sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_pop_free + typedef struct ossl_cmp_revrepcontent_st OSSL_CMP_REVREPCONTENT; typedef struct ossl_cmp_pkisi_st OSSL_CMP_PKISI; DECLARE_ASN1_FUNCTIONS(OSSL_CMP_PKISI) @@ -375,21 +416,75 @@ void OSSL_CMP_ITAV_set0(OSSL_CMP_ITAV *itav, ASN1_OBJECT *type, ASN1_TYPE *value); ASN1_OBJECT *OSSL_CMP_ITAV_get0_type(const OSSL_CMP_ITAV *itav); ASN1_TYPE *OSSL_CMP_ITAV_get0_value(const OSSL_CMP_ITAV *itav); -int OSSL_CMP_ITAV_push0_stack_item(STACK_OF(OSSL_CMP_ITAV) **itav_sk_p, +int OSSL_CMP_ITAV_push0_stack_item(STACK_OF(OSSL_CMP_ITAV) **sk_p, OSSL_CMP_ITAV *itav); void OSSL_CMP_ITAV_free(OSSL_CMP_ITAV *itav); + +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new0_certProfile(STACK_OF(ASN1_UTF8STRING) + *certProfile); +int OSSL_CMP_ITAV_get0_certProfile(const OSSL_CMP_ITAV *itav, + STACK_OF(ASN1_UTF8STRING) **out); +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new_caCerts(const STACK_OF(X509) *caCerts); +int OSSL_CMP_ITAV_get0_caCerts(const OSSL_CMP_ITAV *itav, STACK_OF(X509) **out); + +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new_rootCaCert(const X509 *rootCaCert); +int OSSL_CMP_ITAV_get0_rootCaCert(const OSSL_CMP_ITAV *itav, X509 **out); +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new_rootCaKeyUpdate(const X509 *newWithNew, + const X509 *newWithOld, + const X509 *oldWithNew); +int OSSL_CMP_ITAV_get0_rootCaKeyUpdate(const OSSL_CMP_ITAV *itav, + X509 **newWithNew, + X509 **newWithOld, + X509 **oldWithNew); + +OSSL_CMP_CRLSTATUS *OSSL_CMP_CRLSTATUS_create(const X509_CRL *crl, + const X509 *cert, int only_DN); +OSSL_CMP_CRLSTATUS *OSSL_CMP_CRLSTATUS_new1(const DIST_POINT_NAME *dpn, + const GENERAL_NAMES *issuer, + const ASN1_TIME *thisUpdate); +int OSSL_CMP_CRLSTATUS_get0(const OSSL_CMP_CRLSTATUS *crlstatus, + DIST_POINT_NAME **dpn, GENERAL_NAMES **issuer, + ASN1_TIME **thisUpdate); +void OSSL_CMP_CRLSTATUS_free(OSSL_CMP_CRLSTATUS *crlstatus); +OSSL_CMP_ITAV +*OSSL_CMP_ITAV_new0_crlStatusList(STACK_OF(OSSL_CMP_CRLSTATUS) *crlStatusList); +int OSSL_CMP_ITAV_get0_crlStatusList(const OSSL_CMP_ITAV *itav, + STACK_OF(OSSL_CMP_CRLSTATUS) **out); +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new_crls(const X509_CRL *crls); +int OSSL_CMP_ITAV_get0_crls(const OSSL_CMP_ITAV *it, STACK_OF(X509_CRL) **out); +OSSL_CMP_ITAV +*OSSL_CMP_ITAV_new0_certReqTemplate(OSSL_CRMF_CERTTEMPLATE *certTemplate, + OSSL_CMP_ATAVS *keySpec); +int OSSL_CMP_ITAV_get1_certReqTemplate(const OSSL_CMP_ITAV *itav, + OSSL_CRMF_CERTTEMPLATE **certTemplate, + OSSL_CMP_ATAVS **keySpec); + +OSSL_CMP_ATAV *OSSL_CMP_ATAV_create(ASN1_OBJECT *type, ASN1_TYPE *value); +void OSSL_CMP_ATAV_set0(OSSL_CMP_ATAV *itav, ASN1_OBJECT *type, + ASN1_TYPE *value); +ASN1_OBJECT *OSSL_CMP_ATAV_get0_type(const OSSL_CMP_ATAV *itav); +ASN1_TYPE *OSSL_CMP_ATAV_get0_value(const OSSL_CMP_ATAV *itav); +OSSL_CMP_ATAV *OSSL_CMP_ATAV_new_algId(const X509_ALGOR *alg); +X509_ALGOR *OSSL_CMP_ATAV_get0_algId(const OSSL_CMP_ATAV *atav); +OSSL_CMP_ATAV *OSSL_CMP_ATAV_new_rsaKeyLen(int len); +int OSSL_CMP_ATAV_get_rsaKeyLen(const OSSL_CMP_ATAV *atav); +int OSSL_CMP_ATAV_push1(OSSL_CMP_ATAVS **sk_p, const OSSL_CMP_ATAV *atav); + void OSSL_CMP_MSG_free(OSSL_CMP_MSG *msg); /* from cmp_ctx.c */ OSSL_CMP_CTX *OSSL_CMP_CTX_new(OSSL_LIB_CTX *libctx, const char *propq); void OSSL_CMP_CTX_free(OSSL_CMP_CTX *ctx); int OSSL_CMP_CTX_reinit(OSSL_CMP_CTX *ctx); +OSSL_LIB_CTX *OSSL_CMP_CTX_get0_libctx(const OSSL_CMP_CTX *ctx); +const char *OSSL_CMP_CTX_get0_propq(const OSSL_CMP_CTX *ctx); /* CMP general options: */ # define OSSL_CMP_OPT_LOG_VERBOSITY 0 /* CMP transfer options: */ -# define OSSL_CMP_OPT_KEEP_ALIVE 10 -# define OSSL_CMP_OPT_MSG_TIMEOUT 11 +# define OSSL_CMP_OPT_KEEP_ALIVE 10 +# define OSSL_CMP_OPT_MSG_TIMEOUT 11 # define OSSL_CMP_OPT_TOTAL_TIMEOUT 12 +# define OSSL_CMP_OPT_USE_TLS 13 /* CMP request options: */ # define OSSL_CMP_OPT_VALIDITY_DAYS 20 # define OSSL_CMP_OPT_SUBJECTALTNAME_NODEFAULT 21 @@ -407,6 +502,7 @@ int OSSL_CMP_CTX_reinit(OSSL_CMP_CTX *ctx); # define OSSL_CMP_OPT_DIGEST_ALGNID 34 # define OSSL_CMP_OPT_IGNORE_KEYUSAGE 35 # define OSSL_CMP_OPT_PERMIT_TA_IN_EXTRACERTS_FOR_IR 36 +# define OSSL_CMP_OPT_NO_CACHE_EXTRACERTS 37 int OSSL_CMP_CTX_set_option(OSSL_CMP_CTX *ctx, int opt, int val); int OSSL_CMP_CTX_get_option(const OSSL_CMP_CTX *ctx, int opt); /* CMP-specific callback for logging and outputting the error queue: */ @@ -420,9 +516,11 @@ int OSSL_CMP_CTX_set1_server(OSSL_CMP_CTX *ctx, const char *address); int OSSL_CMP_CTX_set_serverPort(OSSL_CMP_CTX *ctx, int port); int OSSL_CMP_CTX_set1_proxy(OSSL_CMP_CTX *ctx, const char *name); int OSSL_CMP_CTX_set1_no_proxy(OSSL_CMP_CTX *ctx, const char *names); +# ifndef OPENSSL_NO_HTTP int OSSL_CMP_CTX_set_http_cb(OSSL_CMP_CTX *ctx, OSSL_HTTP_bio_cb_t cb); int OSSL_CMP_CTX_set_http_cb_arg(OSSL_CMP_CTX *ctx, void *arg); void *OSSL_CMP_CTX_get_http_cb_arg(const OSSL_CMP_CTX *ctx); +# endif typedef OSSL_CMP_MSG *(*OSSL_CMP_transfer_cb_t) (OSSL_CMP_CTX *ctx, const OSSL_CMP_MSG *req); int OSSL_CMP_CTX_set_transfer_cb(OSSL_CMP_CTX *ctx, OSSL_CMP_transfer_cb_t cb); @@ -432,7 +530,9 @@ void *OSSL_CMP_CTX_get_transfer_cb_arg(const OSSL_CMP_CTX *ctx); int OSSL_CMP_CTX_set1_srvCert(OSSL_CMP_CTX *ctx, X509 *cert); int OSSL_CMP_CTX_set1_expected_sender(OSSL_CMP_CTX *ctx, const X509_NAME *name); int OSSL_CMP_CTX_set0_trustedStore(OSSL_CMP_CTX *ctx, X509_STORE *store); +# define OSSL_CMP_CTX_set0_trusted OSSL_CMP_CTX_set0_trustedStore X509_STORE *OSSL_CMP_CTX_get0_trustedStore(const OSSL_CMP_CTX *ctx); +# define OSSL_CMP_CTX_get0_trusted OSSL_CMP_CTX_get0_trustedStore int OSSL_CMP_CTX_set1_untrusted(OSSL_CMP_CTX *ctx, STACK_OF(X509) *certs); STACK_OF(X509) *OSSL_CMP_CTX_get0_untrusted(const OSSL_CMP_CTX *ctx); /* client authentication: */ @@ -448,12 +548,15 @@ int OSSL_CMP_CTX_set1_secretValue(OSSL_CMP_CTX *ctx, int OSSL_CMP_CTX_set1_recipient(OSSL_CMP_CTX *ctx, const X509_NAME *name); int OSSL_CMP_CTX_push0_geninfo_ITAV(OSSL_CMP_CTX *ctx, OSSL_CMP_ITAV *itav); int OSSL_CMP_CTX_reset_geninfo_ITAVs(OSSL_CMP_CTX *ctx); +STACK_OF(OSSL_CMP_ITAV) + *OSSL_CMP_CTX_get0_geninfo_ITAVs(const OSSL_CMP_CTX *ctx); int OSSL_CMP_CTX_set1_extraCertsOut(OSSL_CMP_CTX *ctx, STACK_OF(X509) *extraCertsOut); /* certificate template: */ int OSSL_CMP_CTX_set0_newPkey(OSSL_CMP_CTX *ctx, int priv, EVP_PKEY *pkey); EVP_PKEY *OSSL_CMP_CTX_get0_newPkey(const OSSL_CMP_CTX *ctx, int priv); int OSSL_CMP_CTX_set1_issuer(OSSL_CMP_CTX *ctx, const X509_NAME *name); +int OSSL_CMP_CTX_set1_serialNumber(OSSL_CMP_CTX *ctx, const ASN1_INTEGER *sn); int OSSL_CMP_CTX_set1_subjectName(OSSL_CMP_CTX *ctx, const X509_NAME *name); int OSSL_CMP_CTX_push1_subjectAltName(OSSL_CMP_CTX *ctx, const GENERAL_NAME *name); @@ -477,6 +580,7 @@ int OSSL_CMP_CTX_get_status(const OSSL_CMP_CTX *ctx); OSSL_CMP_PKIFREETEXT *OSSL_CMP_CTX_get0_statusString(const OSSL_CMP_CTX *ctx); int OSSL_CMP_CTX_get_failInfoCode(const OSSL_CMP_CTX *ctx); # define OSSL_CMP_PKISI_BUFLEN 1024 +X509 *OSSL_CMP_CTX_get0_validatedSrvCert(const OSSL_CMP_CTX *ctx); X509 *OSSL_CMP_CTX_get0_newCert(const OSSL_CMP_CTX *ctx); STACK_OF(X509) *OSSL_CMP_CTX_get1_newChain(const OSSL_CMP_CTX *ctx); STACK_OF(X509) *OSSL_CMP_CTX_get1_caPubs(const OSSL_CMP_CTX *ctx); @@ -498,10 +602,13 @@ OSSL_CMP_STATUSINFO_new(int status, int fail_info, const char *text); ASN1_OCTET_STRING *OSSL_CMP_HDR_get0_transactionID(const OSSL_CMP_PKIHEADER *hdr); ASN1_OCTET_STRING *OSSL_CMP_HDR_get0_recipNonce(const OSSL_CMP_PKIHEADER *hdr); +STACK_OF(OSSL_CMP_ITAV) + *OSSL_CMP_HDR_get0_geninfo_ITAVs(const OSSL_CMP_PKIHEADER *hdr); /* from cmp_msg.c */ OSSL_CMP_PKIHEADER *OSSL_CMP_MSG_get0_header(const OSSL_CMP_MSG *msg); int OSSL_CMP_MSG_get_bodytype(const OSSL_CMP_MSG *msg); +X509_PUBKEY *OSSL_CMP_MSG_get0_certreq_publickey(const OSSL_CMP_MSG *msg); int OSSL_CMP_MSG_update_transactionID(OSSL_CMP_CTX *ctx, OSSL_CMP_MSG *msg); int OSSL_CMP_MSG_update_recipNonce(OSSL_CMP_CTX *ctx, OSSL_CMP_MSG *msg); OSSL_CRMF_MSG *OSSL_CMP_CTX_setup_CRM(OSSL_CMP_CTX *ctx, int for_KUR, int rid); @@ -517,8 +624,10 @@ int OSSL_CMP_validate_cert_path(const OSSL_CMP_CTX *ctx, X509_STORE *trusted_store, X509 *cert); /* from cmp_http.c */ +# ifndef OPENSSL_NO_HTTP OSSL_CMP_MSG *OSSL_CMP_MSG_http_perform(OSSL_CMP_CTX *ctx, const OSSL_CMP_MSG *req); +# endif /* from cmp_server.c */ typedef struct ossl_cmp_srv_ctx_st OSSL_CMP_SRV_CTX; @@ -561,6 +670,13 @@ int OSSL_CMP_SRV_CTX_init(OSSL_CMP_SRV_CTX *srv_ctx, void *custom_ctx, OSSL_CMP_SRV_error_cb_t process_error, OSSL_CMP_SRV_certConf_cb_t process_certConf, OSSL_CMP_SRV_pollReq_cb_t process_pollReq); +typedef int (*OSSL_CMP_SRV_delayed_delivery_cb_t)(OSSL_CMP_SRV_CTX *srv_ctx, + const OSSL_CMP_MSG *req); +typedef int (*OSSL_CMP_SRV_clean_transaction_cb_t)(OSSL_CMP_SRV_CTX *srv_ctx, + const ASN1_OCTET_STRING *id); +int OSSL_CMP_SRV_CTX_init_trans(OSSL_CMP_SRV_CTX *srv_ctx, + OSSL_CMP_SRV_delayed_delivery_cb_t delay, + OSSL_CMP_SRV_clean_transaction_cb_t clean); OSSL_CMP_CTX *OSSL_CMP_SRV_CTX_get0_cmp_ctx(const OSSL_CMP_SRV_CTX *srv_ctx); void *OSSL_CMP_SRV_CTX_get0_custom_ctx(const OSSL_CMP_SRV_CTX *srv_ctx); int OSSL_CMP_SRV_CTX_set_send_unprotected_errors(OSSL_CMP_SRV_CTX *srv_ctx, @@ -577,6 +693,8 @@ X509 *OSSL_CMP_exec_certreq(OSSL_CMP_CTX *ctx, int req_type, # define OSSL_CMP_CR 2 # define OSSL_CMP_P10CR 4 # define OSSL_CMP_KUR 7 +# define OSSL_CMP_GENM 21 +# define OSSL_CMP_ERROR 23 # define OSSL_CMP_exec_IR_ses(ctx) \ OSSL_CMP_exec_certreq(ctx, OSSL_CMP_IR, NULL) # define OSSL_CMP_exec_CR_ses(ctx) \ @@ -590,6 +708,18 @@ int OSSL_CMP_try_certreq(OSSL_CMP_CTX *ctx, int req_type, int OSSL_CMP_exec_RR_ses(OSSL_CMP_CTX *ctx); STACK_OF(OSSL_CMP_ITAV) *OSSL_CMP_exec_GENM_ses(OSSL_CMP_CTX *ctx); +/* from cmp_genm.c */ +int OSSL_CMP_get1_caCerts(OSSL_CMP_CTX *ctx, STACK_OF(X509) **out); +int OSSL_CMP_get1_rootCaKeyUpdate(OSSL_CMP_CTX *ctx, + const X509 *oldWithOld, X509 **newWithNew, + X509 **newWithOld, X509 **oldWithNew); +int OSSL_CMP_get1_crlUpdate(OSSL_CMP_CTX *ctx, const X509 *crlcert, + const X509_CRL *last_crl, + X509_CRL **crl); +int OSSL_CMP_get1_certReqTemplate(OSSL_CMP_CTX *ctx, + OSSL_CRMF_CERTTEMPLATE **certTemplate, + OSSL_CMP_ATAVS **keySpec); + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/darwin-i386-cc/asm/include/openssl/cms.h b/deps/openssl/config/archs/darwin-i386-cc/asm/include/openssl/cms.h index 3b453e6a2187a2..63afab563557b0 100644 --- a/deps/openssl/config/archs/darwin-i386-cc/asm/include/openssl/cms.h +++ b/deps/openssl/config/archs/darwin-i386-cc/asm/include/openssl/cms.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/cms.h.in * - * Copyright 2008-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2008-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -31,8 +31,10 @@ extern "C" { # endif +typedef struct CMS_EnvelopedData_st CMS_EnvelopedData; typedef struct CMS_ContentInfo_st CMS_ContentInfo; typedef struct CMS_SignerInfo_st CMS_SignerInfo; +typedef struct CMS_SignedData_st CMS_SignedData; typedef struct CMS_CertificateChoices CMS_CertificateChoices; typedef struct CMS_RevocationInfoChoice_st CMS_RevocationInfoChoice; typedef struct CMS_RecipientInfo_st CMS_RecipientInfo; @@ -147,10 +149,14 @@ SKM_DEFINE_STACK_OF_INTERNAL(CMS_RevocationInfoChoice, CMS_RevocationInfoChoice, #define sk_CMS_RevocationInfoChoice_set_cmp_func(sk, cmp) ((sk_CMS_RevocationInfoChoice_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_CMS_RevocationInfoChoice_sk_type(sk), ossl_check_CMS_RevocationInfoChoice_compfunc_type(cmp))) +DECLARE_ASN1_ITEM(CMS_EnvelopedData) +DECLARE_ASN1_ALLOC_FUNCTIONS(CMS_SignedData) DECLARE_ASN1_FUNCTIONS(CMS_ContentInfo) DECLARE_ASN1_FUNCTIONS(CMS_ReceiptRequest) DECLARE_ASN1_PRINT_FUNCTION(CMS_ContentInfo) +DECLARE_ASN1_DUP_FUNCTION(CMS_EnvelopedData) + CMS_ContentInfo *CMS_ContentInfo_new_ex(OSSL_LIB_CTX *libctx, const char *propq); # define CMS_SIGNERINFO_ISSUER_SERIAL 0 @@ -190,6 +196,7 @@ CMS_ContentInfo *CMS_ContentInfo_new_ex(OSSL_LIB_CTX *libctx, const char *propq) # define CMS_ASCIICRLF 0x80000 # define CMS_CADES 0x100000 # define CMS_USE_ORIGINATOR_KEYID 0x200000 +# define CMS_NO_SIGNING_TIME 0x400000 const ASN1_OBJECT *CMS_get0_type(const CMS_ContentInfo *cms); @@ -217,13 +224,16 @@ int SMIME_write_CMS(BIO *bio, CMS_ContentInfo *cms, BIO *data, int flags); int CMS_final(CMS_ContentInfo *cms, BIO *data, BIO *dcont, unsigned int flags); +int CMS_final_digest(CMS_ContentInfo *cms, + const unsigned char *md, unsigned int mdlen, BIO *dcont, + unsigned int flags); CMS_ContentInfo *CMS_sign(X509 *signcert, EVP_PKEY *pkey, STACK_OF(X509) *certs, BIO *data, unsigned int flags); CMS_ContentInfo *CMS_sign_ex(X509 *signcert, EVP_PKEY *pkey, STACK_OF(X509) *certs, BIO *data, - unsigned int flags, OSSL_LIB_CTX *ctx, + unsigned int flags, OSSL_LIB_CTX *libctx, const char *propq); CMS_ContentInfo *CMS_sign_receipt(CMS_SignerInfo *si, @@ -233,27 +243,26 @@ CMS_ContentInfo *CMS_sign_receipt(CMS_SignerInfo *si, int CMS_data(CMS_ContentInfo *cms, BIO *out, unsigned int flags); CMS_ContentInfo *CMS_data_create(BIO *in, unsigned int flags); CMS_ContentInfo *CMS_data_create_ex(BIO *in, unsigned int flags, - OSSL_LIB_CTX *ctx, const char *propq); + OSSL_LIB_CTX *libctx, const char *propq); int CMS_digest_verify(CMS_ContentInfo *cms, BIO *dcont, BIO *out, unsigned int flags); CMS_ContentInfo *CMS_digest_create(BIO *in, const EVP_MD *md, unsigned int flags); CMS_ContentInfo *CMS_digest_create_ex(BIO *in, const EVP_MD *md, - unsigned int flags, OSSL_LIB_CTX *ctx, + unsigned int flags, OSSL_LIB_CTX *libctx, const char *propq); int CMS_EncryptedData_decrypt(CMS_ContentInfo *cms, const unsigned char *key, size_t keylen, BIO *dcont, BIO *out, unsigned int flags); - CMS_ContentInfo *CMS_EncryptedData_encrypt(BIO *in, const EVP_CIPHER *cipher, const unsigned char *key, size_t keylen, unsigned int flags); CMS_ContentInfo *CMS_EncryptedData_encrypt_ex(BIO *in, const EVP_CIPHER *cipher, const unsigned char *key, size_t keylen, unsigned int flags, - OSSL_LIB_CTX *ctx, + OSSL_LIB_CTX *libctx, const char *propq); int CMS_EncryptedData_set1_key(CMS_ContentInfo *cms, const EVP_CIPHER *ciph, @@ -272,7 +281,7 @@ CMS_ContentInfo *CMS_encrypt(STACK_OF(X509) *certs, BIO *in, const EVP_CIPHER *cipher, unsigned int flags); CMS_ContentInfo *CMS_encrypt_ex(STACK_OF(X509) *certs, BIO *in, const EVP_CIPHER *cipher, unsigned int flags, - OSSL_LIB_CTX *ctx, const char *propq); + OSSL_LIB_CTX *libctx, const char *propq); int CMS_decrypt(CMS_ContentInfo *cms, EVP_PKEY *pkey, X509 *cert, BIO *dcont, BIO *out, unsigned int flags); @@ -291,12 +300,16 @@ int CMS_RecipientInfo_type(CMS_RecipientInfo *ri); EVP_PKEY_CTX *CMS_RecipientInfo_get0_pkey_ctx(CMS_RecipientInfo *ri); CMS_ContentInfo *CMS_AuthEnvelopedData_create(const EVP_CIPHER *cipher); CMS_ContentInfo * -CMS_AuthEnvelopedData_create_ex(const EVP_CIPHER *cipher, OSSL_LIB_CTX *ctx, +CMS_AuthEnvelopedData_create_ex(const EVP_CIPHER *cipher, OSSL_LIB_CTX *libctx, const char *propq); CMS_ContentInfo *CMS_EnvelopedData_create(const EVP_CIPHER *cipher); CMS_ContentInfo *CMS_EnvelopedData_create_ex(const EVP_CIPHER *cipher, - OSSL_LIB_CTX *ctx, + OSSL_LIB_CTX *libctx, const char *propq); +BIO *CMS_EnvelopedData_decrypt(CMS_EnvelopedData *env, BIO *detached_data, + EVP_PKEY *pkey, X509 *cert, + ASN1_OCTET_STRING *secret, unsigned int flags, + OSSL_LIB_CTX *libctx, const char *propq); CMS_RecipientInfo *CMS_add1_recipient_cert(CMS_ContentInfo *cms, X509 *recip, unsigned int flags); @@ -385,6 +398,11 @@ ASN1_OCTET_STRING *CMS_SignerInfo_get0_signature(CMS_SignerInfo *si); int CMS_SignerInfo_sign(CMS_SignerInfo *si); int CMS_SignerInfo_verify(CMS_SignerInfo *si); int CMS_SignerInfo_verify_content(CMS_SignerInfo *si, BIO *chain); +BIO *CMS_SignedData_verify(CMS_SignedData *sd, BIO *detached_data, + STACK_OF(X509) *scerts, X509_STORE *store, + STACK_OF(X509) *extra, STACK_OF(X509_CRL) *crls, + unsigned int flags, + OSSL_LIB_CTX *libctx, const char *propq); int CMS_add_smimecap(CMS_SignerInfo *si, STACK_OF(X509_ALGOR) *algs); int CMS_add_simple_smimecap(STACK_OF(X509_ALGOR) **algs, @@ -441,7 +459,7 @@ CMS_ReceiptRequest *CMS_ReceiptRequest_create0_ex( unsigned char *id, int idlen, int allorfirst, STACK_OF(GENERAL_NAMES) *receiptList, STACK_OF(GENERAL_NAMES) *receiptsTo, - OSSL_LIB_CTX *ctx); + OSSL_LIB_CTX *libctx); int CMS_add1_ReceiptRequest(CMS_SignerInfo *si, CMS_ReceiptRequest *rr); void CMS_ReceiptRequest_get0_values(CMS_ReceiptRequest *rr, diff --git a/deps/openssl/config/archs/darwin-i386-cc/asm/include/openssl/comp.h b/deps/openssl/config/archs/darwin-i386-cc/asm/include/openssl/comp.h new file mode 100644 index 00000000000000..90e39511fe8d28 --- /dev/null +++ b/deps/openssl/config/archs/darwin-i386-cc/asm/include/openssl/comp.h @@ -0,0 +1,98 @@ +/* + * Copyright 2015-2024 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + + +#ifndef OPENSSL_COMP_H +# define OPENSSL_COMP_H +# pragma once + +# include +# ifndef OPENSSL_NO_DEPRECATED_3_0 +# define HEADER_COMP_H +# endif + +# include + +# include +# include +# ifdef __cplusplus +extern "C" { +# endif + + + +# ifndef OPENSSL_NO_COMP + +COMP_CTX *COMP_CTX_new(COMP_METHOD *meth); +const COMP_METHOD *COMP_CTX_get_method(const COMP_CTX *ctx); +int COMP_CTX_get_type(const COMP_CTX* comp); +int COMP_get_type(const COMP_METHOD *meth); +const char *COMP_get_name(const COMP_METHOD *meth); +void COMP_CTX_free(COMP_CTX *ctx); + +int COMP_compress_block(COMP_CTX *ctx, unsigned char *out, int olen, + unsigned char *in, int ilen); +int COMP_expand_block(COMP_CTX *ctx, unsigned char *out, int olen, + unsigned char *in, int ilen); + +COMP_METHOD *COMP_zlib(void); +COMP_METHOD *COMP_zlib_oneshot(void); +COMP_METHOD *COMP_brotli(void); +COMP_METHOD *COMP_brotli_oneshot(void); +COMP_METHOD *COMP_zstd(void); +COMP_METHOD *COMP_zstd_oneshot(void); + +# ifndef OPENSSL_NO_DEPRECATED_1_1_0 +# define COMP_zlib_cleanup() while(0) continue +# endif + +# ifdef OPENSSL_BIO_H +const BIO_METHOD *BIO_f_zlib(void); +const BIO_METHOD *BIO_f_brotli(void); +const BIO_METHOD *BIO_f_zstd(void); +# endif + +# endif + +typedef struct ssl_comp_st SSL_COMP; + +SKM_DEFINE_STACK_OF_INTERNAL(SSL_COMP, SSL_COMP, SSL_COMP) +#define sk_SSL_COMP_num(sk) OPENSSL_sk_num(ossl_check_const_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_value(sk, idx) ((SSL_COMP *)OPENSSL_sk_value(ossl_check_const_SSL_COMP_sk_type(sk), (idx))) +#define sk_SSL_COMP_new(cmp) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new(ossl_check_SSL_COMP_compfunc_type(cmp))) +#define sk_SSL_COMP_new_null() ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new_null()) +#define sk_SSL_COMP_new_reserve(cmp, n) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new_reserve(ossl_check_SSL_COMP_compfunc_type(cmp), (n))) +#define sk_SSL_COMP_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_SSL_COMP_sk_type(sk), (n)) +#define sk_SSL_COMP_free(sk) OPENSSL_sk_free(ossl_check_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_zero(sk) OPENSSL_sk_zero(ossl_check_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_delete(sk, i) ((SSL_COMP *)OPENSSL_sk_delete(ossl_check_SSL_COMP_sk_type(sk), (i))) +#define sk_SSL_COMP_delete_ptr(sk, ptr) ((SSL_COMP *)OPENSSL_sk_delete_ptr(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr))) +#define sk_SSL_COMP_push(sk, ptr) OPENSSL_sk_push(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) +#define sk_SSL_COMP_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) +#define sk_SSL_COMP_pop(sk) ((SSL_COMP *)OPENSSL_sk_pop(ossl_check_SSL_COMP_sk_type(sk))) +#define sk_SSL_COMP_shift(sk) ((SSL_COMP *)OPENSSL_sk_shift(ossl_check_SSL_COMP_sk_type(sk))) +#define sk_SSL_COMP_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_SSL_COMP_sk_type(sk),ossl_check_SSL_COMP_freefunc_type(freefunc)) +#define sk_SSL_COMP_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr), (idx)) +#define sk_SSL_COMP_set(sk, idx, ptr) ((SSL_COMP *)OPENSSL_sk_set(ossl_check_SSL_COMP_sk_type(sk), (idx), ossl_check_SSL_COMP_type(ptr))) +#define sk_SSL_COMP_find(sk, ptr) OPENSSL_sk_find(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) +#define sk_SSL_COMP_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) +#define sk_SSL_COMP_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr), pnum) +#define sk_SSL_COMP_sort(sk) OPENSSL_sk_sort(ossl_check_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_dup(sk) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_dup(ossl_check_const_SSL_COMP_sk_type(sk))) +#define sk_SSL_COMP_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_deep_copy(ossl_check_const_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_copyfunc_type(copyfunc), ossl_check_SSL_COMP_freefunc_type(freefunc))) +#define sk_SSL_COMP_set_cmp_func(sk, cmp) ((sk_SSL_COMP_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_compfunc_type(cmp))) + + + +# ifdef __cplusplus +} +# endif +#endif diff --git a/deps/openssl/config/archs/darwin-i386-cc/asm/include/openssl/conf.h b/deps/openssl/config/archs/darwin-i386-cc/asm/include/openssl/conf.h index 44989929f6c84a..38576290bf641b 100644 --- a/deps/openssl/config/archs/darwin-i386-cc/asm/include/openssl/conf.h +++ b/deps/openssl/config/archs/darwin-i386-cc/asm/include/openssl/conf.h @@ -27,6 +27,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -65,7 +68,7 @@ SKM_DEFINE_STACK_OF_INTERNAL(CONF_VALUE, CONF_VALUE, CONF_VALUE) #define sk_CONF_VALUE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(CONF_VALUE) *)OPENSSL_sk_deep_copy(ossl_check_const_CONF_VALUE_sk_type(sk), ossl_check_CONF_VALUE_copyfunc_type(copyfunc), ossl_check_CONF_VALUE_freefunc_type(freefunc))) #define sk_CONF_VALUE_set_cmp_func(sk, cmp) ((sk_CONF_VALUE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_CONF_VALUE_sk_type(sk), ossl_check_CONF_VALUE_compfunc_type(cmp))) DEFINE_LHASH_OF_INTERNAL(CONF_VALUE); -#define lh_CONF_VALUE_new(hfn, cmp) ((LHASH_OF(CONF_VALUE) *)OPENSSL_LH_new(ossl_check_CONF_VALUE_lh_hashfunc_type(hfn), ossl_check_CONF_VALUE_lh_compfunc_type(cmp))) +#define lh_CONF_VALUE_new(hfn, cmp) ((LHASH_OF(CONF_VALUE) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new(ossl_check_CONF_VALUE_lh_hashfunc_type(hfn), ossl_check_CONF_VALUE_lh_compfunc_type(cmp)), lh_CONF_VALUE_hash_thunk, lh_CONF_VALUE_comp_thunk, lh_CONF_VALUE_doall_thunk, lh_CONF_VALUE_doall_arg_thunk)) #define lh_CONF_VALUE_free(lh) OPENSSL_LH_free(ossl_check_CONF_VALUE_lh_type(lh)) #define lh_CONF_VALUE_flush(lh) OPENSSL_LH_flush(ossl_check_CONF_VALUE_lh_type(lh)) #define lh_CONF_VALUE_insert(lh, ptr) ((CONF_VALUE *)OPENSSL_LH_insert(ossl_check_CONF_VALUE_lh_type(lh), ossl_check_CONF_VALUE_lh_plain_type(ptr))) diff --git a/deps/openssl/config/archs/darwin-i386-cc/asm/include/openssl/configuration.h b/deps/openssl/config/archs/darwin-i386-cc/asm/include/openssl/configuration.h index b659dd784afb0f..0f148d0a17243a 100644 --- a/deps/openssl/config/archs/darwin-i386-cc/asm/include/openssl/configuration.h +++ b/deps/openssl/config/archs/darwin-i386-cc/asm/include/openssl/configuration.h @@ -30,7 +30,7 @@ extern "C" { # ifndef OPENSSL_SYS_MACOSX # define OPENSSL_SYS_MACOSX 1 # endif -# define OPENSSL_CONFIGURED_API 30000 +# define OPENSSL_CONFIGURED_API 30500 # ifndef OPENSSL_RAND_SEED_OS # define OPENSSL_RAND_SEED_OS # endif @@ -43,6 +43,12 @@ extern "C" { # ifndef OPENSSL_NO_ASAN # define OPENSSL_NO_ASAN # endif +# ifndef OPENSSL_NO_BROTLI +# define OPENSSL_NO_BROTLI +# endif +# ifndef OPENSSL_NO_BROTLI_DYNAMIC +# define OPENSSL_NO_BROTLI_DYNAMIC +# endif # ifndef OPENSSL_NO_COMP # define OPENSSL_NO_COMP # endif @@ -52,6 +58,9 @@ extern "C" { # ifndef OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE # define OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE # endif +# ifndef OPENSSL_NO_DEMOS +# define OPENSSL_NO_DEMOS +# endif # ifndef OPENSSL_NO_DEVCRYPTOENG # define OPENSSL_NO_DEVCRYPTOENG # endif @@ -64,12 +73,24 @@ extern "C" { # ifndef OPENSSL_NO_EXTERNAL_TESTS # define OPENSSL_NO_EXTERNAL_TESTS # endif +# ifndef OPENSSL_NO_FIPS_JITTER +# define OPENSSL_NO_FIPS_JITTER +# endif # ifndef OPENSSL_NO_FUZZ_AFL # define OPENSSL_NO_FUZZ_AFL # endif # ifndef OPENSSL_NO_FUZZ_LIBFUZZER # define OPENSSL_NO_FUZZ_LIBFUZZER # endif +# ifndef OPENSSL_NO_H3DEMO +# define OPENSSL_NO_H3DEMO +# endif +# ifndef OPENSSL_NO_HQINTEROP +# define OPENSSL_NO_HQINTEROP +# endif +# ifndef OPENSSL_NO_JITTER +# define OPENSSL_NO_JITTER +# endif # ifndef OPENSSL_NO_KTLS # define OPENSSL_NO_KTLS # endif @@ -82,6 +103,9 @@ extern "C" { # ifndef OPENSSL_NO_MSAN # define OPENSSL_NO_MSAN # endif +# ifndef OPENSSL_NO_PIE +# define OPENSSL_NO_PIE +# endif # ifndef OPENSSL_NO_RC5 # define OPENSSL_NO_RC5 # endif @@ -94,6 +118,12 @@ extern "C" { # ifndef OPENSSL_NO_SSL3_METHOD # define OPENSSL_NO_SSL3_METHOD # endif +# ifndef OPENSSL_NO_SSLKEYLOG +# define OPENSSL_NO_SSLKEYLOG +# endif +# ifndef OPENSSL_NO_TFO +# define OPENSSL_NO_TFO +# endif # ifndef OPENSSL_NO_TRACE # define OPENSSL_NO_TRACE # endif @@ -109,6 +139,21 @@ extern "C" { # ifndef OPENSSL_NO_WEAK_SSL_CIPHERS # define OPENSSL_NO_WEAK_SSL_CIPHERS # endif +# ifndef OPENSSL_NO_WINSTORE +# define OPENSSL_NO_WINSTORE +# endif +# ifndef OPENSSL_NO_ZLIB +# define OPENSSL_NO_ZLIB +# endif +# ifndef OPENSSL_NO_ZLIB_DYNAMIC +# define OPENSSL_NO_ZLIB_DYNAMIC +# endif +# ifndef OPENSSL_NO_ZSTD +# define OPENSSL_NO_ZSTD +# endif +# ifndef OPENSSL_NO_ZSTD_DYNAMIC +# define OPENSSL_NO_ZSTD_DYNAMIC +# endif # ifndef OPENSSL_NO_DYNAMIC_ENGINE # define OPENSSL_NO_DYNAMIC_ENGINE # endif @@ -130,6 +175,12 @@ extern "C" { # define RC4_INT unsigned int +# if defined(OPENSSL_NO_COMP) || (defined(OPENSSL_NO_BROTLI) && defined(OPENSSL_NO_ZSTD) && defined(OPENSSL_NO_ZLIB)) +# define OPENSSL_NO_COMP_ALG +# else +# undef OPENSSL_NO_COMP_ALG +# endif + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/darwin-i386-cc/asm/include/openssl/core_names.h b/deps/openssl/config/archs/darwin-i386-cc/asm/include/openssl/core_names.h new file mode 100644 index 00000000000000..e93e79a52bc910 --- /dev/null +++ b/deps/openssl/config/archs/darwin-i386-cc/asm/include/openssl/core_names.h @@ -0,0 +1,575 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from include/openssl/core_names.h.in + * + * Copyright 2019-2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + +#ifndef OPENSSL_CORE_NAMES_H +# define OPENSSL_CORE_NAMES_H +# pragma once + +# ifdef __cplusplus +extern "C" { +# endif + +/* OSSL_CIPHER_PARAM_CTS_MODE Values */ +# define OSSL_CIPHER_CTS_MODE_CS1 "CS1" +# define OSSL_CIPHER_CTS_MODE_CS2 "CS2" +# define OSSL_CIPHER_CTS_MODE_CS3 "CS3" + +/* Known CIPHER names (not a complete list) */ +# define OSSL_CIPHER_NAME_AES_128_GCM_SIV "AES-128-GCM-SIV" +# define OSSL_CIPHER_NAME_AES_192_GCM_SIV "AES-192-GCM-SIV" +# define OSSL_CIPHER_NAME_AES_256_GCM_SIV "AES-256-GCM-SIV" + +/* Known DIGEST names (not a complete list) */ +# define OSSL_DIGEST_NAME_MD5 "MD5" +# define OSSL_DIGEST_NAME_MD5_SHA1 "MD5-SHA1" +# define OSSL_DIGEST_NAME_SHA1 "SHA1" +# define OSSL_DIGEST_NAME_SHA2_224 "SHA2-224" +# define OSSL_DIGEST_NAME_SHA2_256 "SHA2-256" +# define OSSL_DIGEST_NAME_SHA2_256_192 "SHA2-256/192" +# define OSSL_DIGEST_NAME_SHA2_384 "SHA2-384" +# define OSSL_DIGEST_NAME_SHA2_512 "SHA2-512" +# define OSSL_DIGEST_NAME_SHA2_512_224 "SHA2-512/224" +# define OSSL_DIGEST_NAME_SHA2_512_256 "SHA2-512/256" +# define OSSL_DIGEST_NAME_MD2 "MD2" +# define OSSL_DIGEST_NAME_MD4 "MD4" +# define OSSL_DIGEST_NAME_MDC2 "MDC2" +# define OSSL_DIGEST_NAME_RIPEMD160 "RIPEMD160" +# define OSSL_DIGEST_NAME_SHA3_224 "SHA3-224" +# define OSSL_DIGEST_NAME_SHA3_256 "SHA3-256" +# define OSSL_DIGEST_NAME_SHA3_384 "SHA3-384" +# define OSSL_DIGEST_NAME_SHA3_512 "SHA3-512" +# define OSSL_DIGEST_NAME_KECCAK_KMAC128 "KECCAK-KMAC-128" +# define OSSL_DIGEST_NAME_KECCAK_KMAC256 "KECCAK-KMAC-256" +# define OSSL_DIGEST_NAME_SM3 "SM3" + +/* Known MAC names */ +# define OSSL_MAC_NAME_BLAKE2BMAC "BLAKE2BMAC" +# define OSSL_MAC_NAME_BLAKE2SMAC "BLAKE2SMAC" +# define OSSL_MAC_NAME_CMAC "CMAC" +# define OSSL_MAC_NAME_GMAC "GMAC" +# define OSSL_MAC_NAME_HMAC "HMAC" +# define OSSL_MAC_NAME_KMAC128 "KMAC128" +# define OSSL_MAC_NAME_KMAC256 "KMAC256" +# define OSSL_MAC_NAME_POLY1305 "POLY1305" +# define OSSL_MAC_NAME_SIPHASH "SIPHASH" + +/* Known KDF names */ +# define OSSL_KDF_NAME_HKDF "HKDF" +# define OSSL_KDF_NAME_TLS1_3_KDF "TLS13-KDF" +# define OSSL_KDF_NAME_PBKDF1 "PBKDF1" +# define OSSL_KDF_NAME_PBKDF2 "PBKDF2" +# define OSSL_KDF_NAME_SCRYPT "SCRYPT" +# define OSSL_KDF_NAME_SSHKDF "SSHKDF" +# define OSSL_KDF_NAME_SSKDF "SSKDF" +# define OSSL_KDF_NAME_TLS1_PRF "TLS1-PRF" +# define OSSL_KDF_NAME_X942KDF_ASN1 "X942KDF-ASN1" +# define OSSL_KDF_NAME_X942KDF_CONCAT "X942KDF-CONCAT" +# define OSSL_KDF_NAME_X963KDF "X963KDF" +# define OSSL_KDF_NAME_KBKDF "KBKDF" +# define OSSL_KDF_NAME_KRB5KDF "KRB5KDF" +# define OSSL_KDF_NAME_HMACDRBGKDF "HMAC-DRBG-KDF" + +/* RSA padding modes */ +# define OSSL_PKEY_RSA_PAD_MODE_NONE "none" +# define OSSL_PKEY_RSA_PAD_MODE_PKCSV15 "pkcs1" +# define OSSL_PKEY_RSA_PAD_MODE_OAEP "oaep" +# define OSSL_PKEY_RSA_PAD_MODE_X931 "x931" +# define OSSL_PKEY_RSA_PAD_MODE_PSS "pss" + +/* RSA pss padding salt length */ +# define OSSL_PKEY_RSA_PSS_SALT_LEN_DIGEST "digest" +# define OSSL_PKEY_RSA_PSS_SALT_LEN_MAX "max" +# define OSSL_PKEY_RSA_PSS_SALT_LEN_AUTO "auto" +# define OSSL_PKEY_RSA_PSS_SALT_LEN_AUTO_DIGEST_MAX "auto-digestmax" + +/* OSSL_PKEY_PARAM_EC_ENCODING values */ +# define OSSL_PKEY_EC_ENCODING_EXPLICIT "explicit" +# define OSSL_PKEY_EC_ENCODING_GROUP "named_curve" + +# define OSSL_PKEY_EC_POINT_CONVERSION_FORMAT_UNCOMPRESSED "uncompressed" +# define OSSL_PKEY_EC_POINT_CONVERSION_FORMAT_COMPRESSED "compressed" +# define OSSL_PKEY_EC_POINT_CONVERSION_FORMAT_HYBRID "hybrid" + +# define OSSL_PKEY_EC_GROUP_CHECK_DEFAULT "default" +# define OSSL_PKEY_EC_GROUP_CHECK_NAMED "named" +# define OSSL_PKEY_EC_GROUP_CHECK_NAMED_NIST "named-nist" + +/* PROV_SKEY well known key types */ +# define OSSL_SKEY_TYPE_GENERIC "GENERIC-SECRET" +# define OSSL_SKEY_TYPE_AES "AES" + +/* OSSL_KEM_PARAM_OPERATION values */ +#define OSSL_KEM_PARAM_OPERATION_RSASVE "RSASVE" +#define OSSL_KEM_PARAM_OPERATION_DHKEM "DHKEM" + +/* Provider configuration variables */ +#define OSSL_PKEY_RETAIN_SEED "pkey_retain_seed" + +/* Parameter name definitions - generated by util/perl/OpenSSL/paramnames.pm */ +# define OSSL_ALG_PARAM_ALGORITHM_ID "algorithm-id" +# define OSSL_ALG_PARAM_ALGORITHM_ID_PARAMS "algorithm-id-params" +# define OSSL_ALG_PARAM_CIPHER "cipher" +# define OSSL_ALG_PARAM_DIGEST "digest" +# define OSSL_ALG_PARAM_ENGINE "engine" +# define OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR "fips-indicator" +# define OSSL_ALG_PARAM_MAC "mac" +# define OSSL_ALG_PARAM_PROPERTIES "properties" +# define OSSL_ASYM_CIPHER_PARAM_DIGEST OSSL_PKEY_PARAM_DIGEST +# define OSSL_ASYM_CIPHER_PARAM_ENGINE OSSL_PKEY_PARAM_ENGINE +# define OSSL_ASYM_CIPHER_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_ASYM_CIPHER_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_ASYM_CIPHER_PARAM_FIPS_RSA_PKCS15_PAD_DISABLED OSSL_PROV_PARAM_RSA_PKCS15_PAD_DISABLED +# define OSSL_ASYM_CIPHER_PARAM_IMPLICIT_REJECTION "implicit-rejection" +# define OSSL_ASYM_CIPHER_PARAM_MGF1_DIGEST OSSL_PKEY_PARAM_MGF1_DIGEST +# define OSSL_ASYM_CIPHER_PARAM_MGF1_DIGEST_PROPS OSSL_PKEY_PARAM_MGF1_PROPERTIES +# define OSSL_ASYM_CIPHER_PARAM_OAEP_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_ASYM_CIPHER_PARAM_OAEP_DIGEST_PROPS "digest-props" +# define OSSL_ASYM_CIPHER_PARAM_OAEP_LABEL "oaep-label" +# define OSSL_ASYM_CIPHER_PARAM_PAD_MODE OSSL_PKEY_PARAM_PAD_MODE +# define OSSL_ASYM_CIPHER_PARAM_PROPERTIES OSSL_PKEY_PARAM_PROPERTIES +# define OSSL_ASYM_CIPHER_PARAM_TLS_CLIENT_VERSION "tls-client-version" +# define OSSL_ASYM_CIPHER_PARAM_TLS_NEGOTIATED_VERSION "tls-negotiated-version" +# define OSSL_CAPABILITY_TLS_GROUP_ALG "tls-group-alg" +# define OSSL_CAPABILITY_TLS_GROUP_ID "tls-group-id" +# define OSSL_CAPABILITY_TLS_GROUP_IS_KEM "tls-group-is-kem" +# define OSSL_CAPABILITY_TLS_GROUP_MAX_DTLS "tls-max-dtls" +# define OSSL_CAPABILITY_TLS_GROUP_MAX_TLS "tls-max-tls" +# define OSSL_CAPABILITY_TLS_GROUP_MIN_DTLS "tls-min-dtls" +# define OSSL_CAPABILITY_TLS_GROUP_MIN_TLS "tls-min-tls" +# define OSSL_CAPABILITY_TLS_GROUP_NAME "tls-group-name" +# define OSSL_CAPABILITY_TLS_GROUP_NAME_INTERNAL "tls-group-name-internal" +# define OSSL_CAPABILITY_TLS_GROUP_SECURITY_BITS "tls-group-sec-bits" +# define OSSL_CAPABILITY_TLS_SIGALG_CODE_POINT "tls-sigalg-code-point" +# define OSSL_CAPABILITY_TLS_SIGALG_HASH_NAME "tls-sigalg-hash-name" +# define OSSL_CAPABILITY_TLS_SIGALG_HASH_OID "tls-sigalg-hash-oid" +# define OSSL_CAPABILITY_TLS_SIGALG_IANA_NAME "tls-sigalg-iana-name" +# define OSSL_CAPABILITY_TLS_SIGALG_KEYTYPE "tls-sigalg-keytype" +# define OSSL_CAPABILITY_TLS_SIGALG_KEYTYPE_OID "tls-sigalg-keytype-oid" +# define OSSL_CAPABILITY_TLS_SIGALG_MAX_DTLS "tls-max-dtls" +# define OSSL_CAPABILITY_TLS_SIGALG_MAX_TLS "tls-max-tls" +# define OSSL_CAPABILITY_TLS_SIGALG_MIN_DTLS "tls-min-dtls" +# define OSSL_CAPABILITY_TLS_SIGALG_MIN_TLS "tls-min-tls" +# define OSSL_CAPABILITY_TLS_SIGALG_NAME "tls-sigalg-name" +# define OSSL_CAPABILITY_TLS_SIGALG_OID "tls-sigalg-oid" +# define OSSL_CAPABILITY_TLS_SIGALG_SECURITY_BITS "tls-sigalg-sec-bits" +# define OSSL_CAPABILITY_TLS_SIGALG_SIG_NAME "tls-sigalg-sig-name" +# define OSSL_CAPABILITY_TLS_SIGALG_SIG_OID "tls-sigalg-sig-oid" +# define OSSL_CIPHER_PARAM_AEAD "aead" +# define OSSL_CIPHER_PARAM_AEAD_IVLEN OSSL_CIPHER_PARAM_IVLEN +# define OSSL_CIPHER_PARAM_AEAD_IV_GENERATED "iv-generated" +# define OSSL_CIPHER_PARAM_AEAD_MAC_KEY "mackey" +# define OSSL_CIPHER_PARAM_AEAD_TAG "tag" +# define OSSL_CIPHER_PARAM_AEAD_TAGLEN "taglen" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_AAD "tlsaad" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_AAD_PAD "tlsaadpad" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_GET_IV_GEN "tlsivgen" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_IV_FIXED "tlsivfixed" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_SET_IV_INV "tlsivinv" +# define OSSL_CIPHER_PARAM_ALGORITHM_ID OSSL_ALG_PARAM_ALGORITHM_ID +# define OSSL_CIPHER_PARAM_ALGORITHM_ID_PARAMS OSSL_ALG_PARAM_ALGORITHM_ID_PARAMS +# define OSSL_CIPHER_PARAM_ALGORITHM_ID_PARAMS_OLD "alg_id_param" +# define OSSL_CIPHER_PARAM_BLOCK_SIZE "blocksize" +# define OSSL_CIPHER_PARAM_CTS "cts" +# define OSSL_CIPHER_PARAM_CTS_MODE "cts_mode" +# define OSSL_CIPHER_PARAM_CUSTOM_IV "custom-iv" +# define OSSL_CIPHER_PARAM_DECRYPT_ONLY "decrypt-only" +# define OSSL_CIPHER_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_CIPHER_PARAM_FIPS_ENCRYPT_CHECK "encrypt-check" +# define OSSL_CIPHER_PARAM_HAS_RAND_KEY "has-randkey" +# define OSSL_CIPHER_PARAM_IV "iv" +# define OSSL_CIPHER_PARAM_IVLEN "ivlen" +# define OSSL_CIPHER_PARAM_KEYLEN "keylen" +# define OSSL_CIPHER_PARAM_MODE "mode" +# define OSSL_CIPHER_PARAM_NUM "num" +# define OSSL_CIPHER_PARAM_PADDING "padding" +# define OSSL_CIPHER_PARAM_PIPELINE_AEAD_TAG "pipeline-tag" +# define OSSL_CIPHER_PARAM_RANDOM_KEY "randkey" +# define OSSL_CIPHER_PARAM_RC2_KEYBITS "keybits" +# define OSSL_CIPHER_PARAM_ROUNDS "rounds" +# define OSSL_CIPHER_PARAM_SPEED "speed" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK "tls-multi" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD "tls1multi_aad" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD_PACKLEN "tls1multi_aadpacklen" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC "tls1multi_enc" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_IN "tls1multi_encin" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_LEN "tls1multi_enclen" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_INTERLEAVE "tls1multi_interleave" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_BUFSIZE "tls1multi_maxbufsz" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_SEND_FRAGMENT "tls1multi_maxsndfrag" +# define OSSL_CIPHER_PARAM_TLS_MAC "tls-mac" +# define OSSL_CIPHER_PARAM_TLS_MAC_SIZE "tls-mac-size" +# define OSSL_CIPHER_PARAM_TLS_VERSION "tls-version" +# define OSSL_CIPHER_PARAM_UPDATED_IV "updated-iv" +# define OSSL_CIPHER_PARAM_USE_BITS "use-bits" +# define OSSL_CIPHER_PARAM_XTS_STANDARD "xts_standard" +# define OSSL_DECODER_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_DIGEST_PARAM_ALGID_ABSENT "algid-absent" +# define OSSL_DIGEST_PARAM_BLOCK_SIZE "blocksize" +# define OSSL_DIGEST_PARAM_MICALG "micalg" +# define OSSL_DIGEST_PARAM_PAD_TYPE "pad-type" +# define OSSL_DIGEST_PARAM_SIZE "size" +# define OSSL_DIGEST_PARAM_SSL3_MS "ssl3-ms" +# define OSSL_DIGEST_PARAM_XOF "xof" +# define OSSL_DIGEST_PARAM_XOFLEN "xoflen" +# define OSSL_DRBG_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_DRBG_PARAM_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_DRBG_PARAM_ENTROPY_REQUIRED "entropy_required" +# define OSSL_DRBG_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_DRBG_PARAM_FIPS_DIGEST_CHECK OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK +# define OSSL_DRBG_PARAM_MAC OSSL_ALG_PARAM_MAC +# define OSSL_DRBG_PARAM_MAX_ADINLEN "max_adinlen" +# define OSSL_DRBG_PARAM_MAX_ENTROPYLEN "max_entropylen" +# define OSSL_DRBG_PARAM_MAX_LENGTH "maxium_length" +# define OSSL_DRBG_PARAM_MAX_NONCELEN "max_noncelen" +# define OSSL_DRBG_PARAM_MAX_PERSLEN "max_perslen" +# define OSSL_DRBG_PARAM_MIN_ENTROPYLEN "min_entropylen" +# define OSSL_DRBG_PARAM_MIN_LENGTH "minium_length" +# define OSSL_DRBG_PARAM_MIN_NONCELEN "min_noncelen" +# define OSSL_DRBG_PARAM_PREDICTION_RESISTANCE "prediction_resistance" +# define OSSL_DRBG_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_DRBG_PARAM_RANDOM_DATA "random_data" +# define OSSL_DRBG_PARAM_RESEED_COUNTER "reseed_counter" +# define OSSL_DRBG_PARAM_RESEED_REQUESTS "reseed_requests" +# define OSSL_DRBG_PARAM_RESEED_TIME "reseed_time" +# define OSSL_DRBG_PARAM_RESEED_TIME_INTERVAL "reseed_time_interval" +# define OSSL_DRBG_PARAM_SIZE "size" +# define OSSL_DRBG_PARAM_USE_DF "use_derivation_function" +# define OSSL_ENCODER_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_ENCODER_PARAM_ENCRYPT_LEVEL "encrypt-level" +# define OSSL_ENCODER_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_ENCODER_PARAM_SAVE_PARAMETERS "save-parameters" +# define OSSL_EXCHANGE_PARAM_EC_ECDH_COFACTOR_MODE "ecdh-cofactor-mode" +# define OSSL_EXCHANGE_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_EXCHANGE_PARAM_FIPS_DIGEST_CHECK OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK +# define OSSL_EXCHANGE_PARAM_FIPS_ECDH_COFACTOR_CHECK OSSL_PROV_PARAM_ECDH_COFACTOR_CHECK +# define OSSL_EXCHANGE_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_EXCHANGE_PARAM_KDF_DIGEST "kdf-digest" +# define OSSL_EXCHANGE_PARAM_KDF_DIGEST_PROPS "kdf-digest-props" +# define OSSL_EXCHANGE_PARAM_KDF_OUTLEN "kdf-outlen" +# define OSSL_EXCHANGE_PARAM_KDF_TYPE "kdf-type" +# define OSSL_EXCHANGE_PARAM_KDF_UKM "kdf-ukm" +# define OSSL_EXCHANGE_PARAM_PAD "pad" +# define OSSL_GEN_PARAM_ITERATION "iteration" +# define OSSL_GEN_PARAM_POTENTIAL "potential" +# define OSSL_KDF_PARAM_ARGON2_AD "ad" +# define OSSL_KDF_PARAM_ARGON2_LANES "lanes" +# define OSSL_KDF_PARAM_ARGON2_MEMCOST "memcost" +# define OSSL_KDF_PARAM_ARGON2_VERSION "version" +# define OSSL_KDF_PARAM_CEK_ALG "cekalg" +# define OSSL_KDF_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_KDF_PARAM_CONSTANT "constant" +# define OSSL_KDF_PARAM_DATA "data" +# define OSSL_KDF_PARAM_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_KDF_PARAM_EARLY_CLEAN "early_clean" +# define OSSL_KDF_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_KDF_PARAM_FIPS_DIGEST_CHECK OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK +# define OSSL_KDF_PARAM_FIPS_EMS_CHECK "ems_check" +# define OSSL_KDF_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_KDF_PARAM_HMACDRBG_ENTROPY "entropy" +# define OSSL_KDF_PARAM_HMACDRBG_NONCE "nonce" +# define OSSL_KDF_PARAM_INFO "info" +# define OSSL_KDF_PARAM_ITER "iter" +# define OSSL_KDF_PARAM_KBKDF_R "r" +# define OSSL_KDF_PARAM_KBKDF_USE_L "use-l" +# define OSSL_KDF_PARAM_KBKDF_USE_SEPARATOR "use-separator" +# define OSSL_KDF_PARAM_KEY "key" +# define OSSL_KDF_PARAM_LABEL "label" +# define OSSL_KDF_PARAM_MAC OSSL_ALG_PARAM_MAC +# define OSSL_KDF_PARAM_MAC_SIZE "maclen" +# define OSSL_KDF_PARAM_MODE "mode" +# define OSSL_KDF_PARAM_PASSWORD "pass" +# define OSSL_KDF_PARAM_PKCS12_ID "id" +# define OSSL_KDF_PARAM_PKCS5 "pkcs5" +# define OSSL_KDF_PARAM_PREFIX "prefix" +# define OSSL_KDF_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_KDF_PARAM_SALT "salt" +# define OSSL_KDF_PARAM_SCRYPT_MAXMEM "maxmem_bytes" +# define OSSL_KDF_PARAM_SCRYPT_N "n" +# define OSSL_KDF_PARAM_SCRYPT_P "p" +# define OSSL_KDF_PARAM_SCRYPT_R "r" +# define OSSL_KDF_PARAM_SECRET "secret" +# define OSSL_KDF_PARAM_SEED "seed" +# define OSSL_KDF_PARAM_SIZE "size" +# define OSSL_KDF_PARAM_SSHKDF_SESSION_ID "session_id" +# define OSSL_KDF_PARAM_SSHKDF_TYPE "type" +# define OSSL_KDF_PARAM_SSHKDF_XCGHASH "xcghash" +# define OSSL_KDF_PARAM_THREADS "threads" +# define OSSL_KDF_PARAM_UKM "ukm" +# define OSSL_KDF_PARAM_X942_ACVPINFO "acvp-info" +# define OSSL_KDF_PARAM_X942_PARTYUINFO "partyu-info" +# define OSSL_KDF_PARAM_X942_PARTYVINFO "partyv-info" +# define OSSL_KDF_PARAM_X942_SUPP_PRIVINFO "supp-privinfo" +# define OSSL_KDF_PARAM_X942_SUPP_PUBINFO "supp-pubinfo" +# define OSSL_KDF_PARAM_X942_USE_KEYBITS "use-keybits" +# define OSSL_KEM_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_KEM_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_KEM_PARAM_IKME "ikme" +# define OSSL_KEM_PARAM_OPERATION "operation" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_BLOCK_PADDING "block_padding" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_HS_PADDING "hs_padding" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_MAX_EARLY_DATA "max_early_data" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_MAX_FRAG_LEN "max_frag_len" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_MODE "mode" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_OPTIONS "options" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_READ_AHEAD "read_ahead" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_STREAM_MAC "stream_mac" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_TLSTREE "tlstree" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_USE_ETM "use_etm" +# define OSSL_LIBSSL_RECORD_LAYER_READ_BUFFER_LEN "read_buffer_len" +# define OSSL_MAC_PARAM_BLOCK_SIZE "block-size" +# define OSSL_MAC_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_MAC_PARAM_CUSTOM "custom" +# define OSSL_MAC_PARAM_C_ROUNDS "c-rounds" +# define OSSL_MAC_PARAM_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_MAC_PARAM_DIGEST_NOINIT "digest-noinit" +# define OSSL_MAC_PARAM_DIGEST_ONESHOT "digest-oneshot" +# define OSSL_MAC_PARAM_D_ROUNDS "d-rounds" +# define OSSL_MAC_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_MAC_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_MAC_PARAM_FIPS_NO_SHORT_MAC OSSL_PROV_PARAM_NO_SHORT_MAC +# define OSSL_MAC_PARAM_IV "iv" +# define OSSL_MAC_PARAM_KEY "key" +# define OSSL_MAC_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_MAC_PARAM_SALT "salt" +# define OSSL_MAC_PARAM_SIZE "size" +# define OSSL_MAC_PARAM_TLS_DATA_SIZE "tls-data-size" +# define OSSL_MAC_PARAM_XOF "xof" +# define OSSL_OBJECT_PARAM_DATA "data" +# define OSSL_OBJECT_PARAM_DATA_STRUCTURE "data-structure" +# define OSSL_OBJECT_PARAM_DATA_TYPE "data-type" +# define OSSL_OBJECT_PARAM_DESC "desc" +# define OSSL_OBJECT_PARAM_INPUT_TYPE "input-type" +# define OSSL_OBJECT_PARAM_REFERENCE "reference" +# define OSSL_OBJECT_PARAM_TYPE "type" +# define OSSL_PASSPHRASE_PARAM_INFO "info" +# define OSSL_PKEY_PARAM_ALGORITHM_ID OSSL_ALG_PARAM_ALGORITHM_ID +# define OSSL_PKEY_PARAM_ALGORITHM_ID_PARAMS OSSL_ALG_PARAM_ALGORITHM_ID_PARAMS +# define OSSL_PKEY_PARAM_BITS "bits" +# define OSSL_PKEY_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_PKEY_PARAM_DEFAULT_DIGEST "default-digest" +# define OSSL_PKEY_PARAM_DHKEM_IKM "dhkem-ikm" +# define OSSL_PKEY_PARAM_DH_GENERATOR "safeprime-generator" +# define OSSL_PKEY_PARAM_DH_PRIV_LEN "priv_len" +# define OSSL_PKEY_PARAM_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_PKEY_PARAM_DIGEST_SIZE "digest-size" +# define OSSL_PKEY_PARAM_DIST_ID "distid" +# define OSSL_PKEY_PARAM_EC_A "a" +# define OSSL_PKEY_PARAM_EC_B "b" +# define OSSL_PKEY_PARAM_EC_CHAR2_M "m" +# define OSSL_PKEY_PARAM_EC_CHAR2_PP_K1 "k1" +# define OSSL_PKEY_PARAM_EC_CHAR2_PP_K2 "k2" +# define OSSL_PKEY_PARAM_EC_CHAR2_PP_K3 "k3" +# define OSSL_PKEY_PARAM_EC_CHAR2_TP_BASIS "tp" +# define OSSL_PKEY_PARAM_EC_CHAR2_TYPE "basis-type" +# define OSSL_PKEY_PARAM_EC_COFACTOR "cofactor" +# define OSSL_PKEY_PARAM_EC_DECODED_FROM_EXPLICIT_PARAMS "decoded-from-explicit" +# define OSSL_PKEY_PARAM_EC_ENCODING "encoding" +# define OSSL_PKEY_PARAM_EC_FIELD_TYPE "field-type" +# define OSSL_PKEY_PARAM_EC_GENERATOR "generator" +# define OSSL_PKEY_PARAM_EC_GROUP_CHECK_TYPE "group-check" +# define OSSL_PKEY_PARAM_EC_INCLUDE_PUBLIC "include-public" +# define OSSL_PKEY_PARAM_EC_ORDER "order" +# define OSSL_PKEY_PARAM_EC_P "p" +# define OSSL_PKEY_PARAM_EC_POINT_CONVERSION_FORMAT "point-format" +# define OSSL_PKEY_PARAM_EC_PUB_X "qx" +# define OSSL_PKEY_PARAM_EC_PUB_Y "qy" +# define OSSL_PKEY_PARAM_EC_SEED "seed" +# define OSSL_PKEY_PARAM_ENCODED_PUBLIC_KEY "encoded-pub-key" +# define OSSL_PKEY_PARAM_ENGINE OSSL_ALG_PARAM_ENGINE +# define OSSL_PKEY_PARAM_FFC_COFACTOR "j" +# define OSSL_PKEY_PARAM_FFC_DIGEST OSSL_PKEY_PARAM_DIGEST +# define OSSL_PKEY_PARAM_FFC_DIGEST_PROPS OSSL_PKEY_PARAM_PROPERTIES +# define OSSL_PKEY_PARAM_FFC_G "g" +# define OSSL_PKEY_PARAM_FFC_GINDEX "gindex" +# define OSSL_PKEY_PARAM_FFC_H "hindex" +# define OSSL_PKEY_PARAM_FFC_P "p" +# define OSSL_PKEY_PARAM_FFC_PBITS "pbits" +# define OSSL_PKEY_PARAM_FFC_PCOUNTER "pcounter" +# define OSSL_PKEY_PARAM_FFC_Q "q" +# define OSSL_PKEY_PARAM_FFC_QBITS "qbits" +# define OSSL_PKEY_PARAM_FFC_SEED "seed" +# define OSSL_PKEY_PARAM_FFC_TYPE "type" +# define OSSL_PKEY_PARAM_FFC_VALIDATE_G "validate-g" +# define OSSL_PKEY_PARAM_FFC_VALIDATE_LEGACY "validate-legacy" +# define OSSL_PKEY_PARAM_FFC_VALIDATE_PQ "validate-pq" +# define OSSL_PKEY_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK "digest-check" +# define OSSL_PKEY_PARAM_FIPS_KEY_CHECK "key-check" +# define OSSL_PKEY_PARAM_FIPS_SIGN_CHECK "sign-check" +# define OSSL_PKEY_PARAM_GROUP_NAME "group" +# define OSSL_PKEY_PARAM_IMPLICIT_REJECTION "implicit-rejection" +# define OSSL_PKEY_PARAM_MANDATORY_DIGEST "mandatory-digest" +# define OSSL_PKEY_PARAM_MASKGENFUNC "mgf" +# define OSSL_PKEY_PARAM_MAX_SIZE "max-size" +# define OSSL_PKEY_PARAM_MGF1_DIGEST "mgf1-digest" +# define OSSL_PKEY_PARAM_MGF1_PROPERTIES "mgf1-properties" +# define OSSL_PKEY_PARAM_ML_DSA_INPUT_FORMATS "ml-dsa.input_formats" +# define OSSL_PKEY_PARAM_ML_DSA_OUTPUT_FORMATS "ml-dsa.output_formats" +# define OSSL_PKEY_PARAM_ML_DSA_PREFER_SEED "ml-dsa.prefer_seed" +# define OSSL_PKEY_PARAM_ML_DSA_RETAIN_SEED "ml-dsa.retain_seed" +# define OSSL_PKEY_PARAM_ML_DSA_SEED "seed" +# define OSSL_PKEY_PARAM_ML_KEM_IMPORT_PCT_TYPE "ml-kem.import_pct_type" +# define OSSL_PKEY_PARAM_ML_KEM_INPUT_FORMATS "ml-kem.input_formats" +# define OSSL_PKEY_PARAM_ML_KEM_OUTPUT_FORMATS "ml-kem.output_formats" +# define OSSL_PKEY_PARAM_ML_KEM_PREFER_SEED "ml-kem.prefer_seed" +# define OSSL_PKEY_PARAM_ML_KEM_RETAIN_SEED "ml-kem.retain_seed" +# define OSSL_PKEY_PARAM_ML_KEM_SEED "seed" +# define OSSL_PKEY_PARAM_PAD_MODE "pad-mode" +# define OSSL_PKEY_PARAM_PRIV_KEY "priv" +# define OSSL_PKEY_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_PKEY_PARAM_PUB_KEY "pub" +# define OSSL_PKEY_PARAM_RSA_BITS OSSL_PKEY_PARAM_BITS +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT "rsa-coefficient" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT1 "rsa-coefficient1" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT2 "rsa-coefficient2" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT3 "rsa-coefficient3" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT4 "rsa-coefficient4" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT5 "rsa-coefficient5" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT6 "rsa-coefficient6" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT7 "rsa-coefficient7" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT8 "rsa-coefficient8" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT9 "rsa-coefficient9" +# define OSSL_PKEY_PARAM_RSA_D "d" +# define OSSL_PKEY_PARAM_RSA_DERIVE_FROM_PQ "rsa-derive-from-pq" +# define OSSL_PKEY_PARAM_RSA_DIGEST OSSL_PKEY_PARAM_DIGEST +# define OSSL_PKEY_PARAM_RSA_DIGEST_PROPS OSSL_PKEY_PARAM_PROPERTIES +# define OSSL_PKEY_PARAM_RSA_E "e" +# define OSSL_PKEY_PARAM_RSA_EXPONENT "rsa-exponent" +# define OSSL_PKEY_PARAM_RSA_EXPONENT1 "rsa-exponent1" +# define OSSL_PKEY_PARAM_RSA_EXPONENT10 "rsa-exponent10" +# define OSSL_PKEY_PARAM_RSA_EXPONENT2 "rsa-exponent2" +# define OSSL_PKEY_PARAM_RSA_EXPONENT3 "rsa-exponent3" +# define OSSL_PKEY_PARAM_RSA_EXPONENT4 "rsa-exponent4" +# define OSSL_PKEY_PARAM_RSA_EXPONENT5 "rsa-exponent5" +# define OSSL_PKEY_PARAM_RSA_EXPONENT6 "rsa-exponent6" +# define OSSL_PKEY_PARAM_RSA_EXPONENT7 "rsa-exponent7" +# define OSSL_PKEY_PARAM_RSA_EXPONENT8 "rsa-exponent8" +# define OSSL_PKEY_PARAM_RSA_EXPONENT9 "rsa-exponent9" +# define OSSL_PKEY_PARAM_RSA_FACTOR "rsa-factor" +# define OSSL_PKEY_PARAM_RSA_FACTOR1 "rsa-factor1" +# define OSSL_PKEY_PARAM_RSA_FACTOR10 "rsa-factor10" +# define OSSL_PKEY_PARAM_RSA_FACTOR2 "rsa-factor2" +# define OSSL_PKEY_PARAM_RSA_FACTOR3 "rsa-factor3" +# define OSSL_PKEY_PARAM_RSA_FACTOR4 "rsa-factor4" +# define OSSL_PKEY_PARAM_RSA_FACTOR5 "rsa-factor5" +# define OSSL_PKEY_PARAM_RSA_FACTOR6 "rsa-factor6" +# define OSSL_PKEY_PARAM_RSA_FACTOR7 "rsa-factor7" +# define OSSL_PKEY_PARAM_RSA_FACTOR8 "rsa-factor8" +# define OSSL_PKEY_PARAM_RSA_FACTOR9 "rsa-factor9" +# define OSSL_PKEY_PARAM_RSA_MASKGENFUNC OSSL_PKEY_PARAM_MASKGENFUNC +# define OSSL_PKEY_PARAM_RSA_MGF1_DIGEST OSSL_PKEY_PARAM_MGF1_DIGEST +# define OSSL_PKEY_PARAM_RSA_N "n" +# define OSSL_PKEY_PARAM_RSA_PRIMES "primes" +# define OSSL_PKEY_PARAM_RSA_PSS_SALTLEN "saltlen" +# define OSSL_PKEY_PARAM_RSA_TEST_P1 "p1" +# define OSSL_PKEY_PARAM_RSA_TEST_P2 "p2" +# define OSSL_PKEY_PARAM_RSA_TEST_Q1 "q1" +# define OSSL_PKEY_PARAM_RSA_TEST_Q2 "q2" +# define OSSL_PKEY_PARAM_RSA_TEST_XP "xp" +# define OSSL_PKEY_PARAM_RSA_TEST_XP1 "xp1" +# define OSSL_PKEY_PARAM_RSA_TEST_XP2 "xp2" +# define OSSL_PKEY_PARAM_RSA_TEST_XQ "xq" +# define OSSL_PKEY_PARAM_RSA_TEST_XQ1 "xq1" +# define OSSL_PKEY_PARAM_RSA_TEST_XQ2 "xq2" +# define OSSL_PKEY_PARAM_SECURITY_BITS "security-bits" +# define OSSL_PKEY_PARAM_SLH_DSA_SEED "seed" +# define OSSL_PKEY_PARAM_USE_COFACTOR_ECDH OSSL_PKEY_PARAM_USE_COFACTOR_FLAG +# define OSSL_PKEY_PARAM_USE_COFACTOR_FLAG "use-cofactor-flag" +# define OSSL_PROV_PARAM_BUILDINFO "buildinfo" +# define OSSL_PROV_PARAM_CORE_MODULE_FILENAME "module-filename" +# define OSSL_PROV_PARAM_CORE_PROV_NAME "provider-name" +# define OSSL_PROV_PARAM_CORE_VERSION "openssl-version" +# define OSSL_PROV_PARAM_DRBG_TRUNC_DIGEST "drbg-no-trunc-md" +# define OSSL_PROV_PARAM_DSA_SIGN_DISABLED "dsa-sign-disabled" +# define OSSL_PROV_PARAM_ECDH_COFACTOR_CHECK "ecdh-cofactor-check" +# define OSSL_PROV_PARAM_HKDF_DIGEST_CHECK "hkdf-digest-check" +# define OSSL_PROV_PARAM_HKDF_KEY_CHECK "hkdf-key-check" +# define OSSL_PROV_PARAM_HMAC_KEY_CHECK "hmac-key-check" +# define OSSL_PROV_PARAM_KBKDF_KEY_CHECK "kbkdf-key-check" +# define OSSL_PROV_PARAM_KMAC_KEY_CHECK "kmac-key-check" +# define OSSL_PROV_PARAM_NAME "name" +# define OSSL_PROV_PARAM_NO_SHORT_MAC "no-short-mac" +# define OSSL_PROV_PARAM_PBKDF2_LOWER_BOUND_CHECK "pbkdf2-lower-bound-check" +# define OSSL_PROV_PARAM_RSA_PKCS15_PAD_DISABLED "rsa-pkcs15-pad-disabled" +# define OSSL_PROV_PARAM_RSA_PSS_SALTLEN_CHECK "rsa-pss-saltlen-check" +# define OSSL_PROV_PARAM_RSA_SIGN_X931_PAD_DISABLED "rsa-sign-x931-pad-disabled" +# define OSSL_PROV_PARAM_SECURITY_CHECKS "security-checks" +# define OSSL_PROV_PARAM_SELF_TEST_DESC "st-desc" +# define OSSL_PROV_PARAM_SELF_TEST_PHASE "st-phase" +# define OSSL_PROV_PARAM_SELF_TEST_TYPE "st-type" +# define OSSL_PROV_PARAM_SIGNATURE_DIGEST_CHECK "signature-digest-check" +# define OSSL_PROV_PARAM_SSHKDF_DIGEST_CHECK "sshkdf-digest-check" +# define OSSL_PROV_PARAM_SSHKDF_KEY_CHECK "sshkdf-key-check" +# define OSSL_PROV_PARAM_SSKDF_DIGEST_CHECK "sskdf-digest-check" +# define OSSL_PROV_PARAM_SSKDF_KEY_CHECK "sskdf-key-check" +# define OSSL_PROV_PARAM_STATUS "status" +# define OSSL_PROV_PARAM_TDES_ENCRYPT_DISABLED "tdes-encrypt-disabled" +# define OSSL_PROV_PARAM_TLS13_KDF_DIGEST_CHECK "tls13-kdf-digest-check" +# define OSSL_PROV_PARAM_TLS13_KDF_KEY_CHECK "tls13-kdf-key-check" +# define OSSL_PROV_PARAM_TLS1_PRF_DIGEST_CHECK "tls1-prf-digest-check" +# define OSSL_PROV_PARAM_TLS1_PRF_EMS_CHECK "tls1-prf-ems-check" +# define OSSL_PROV_PARAM_TLS1_PRF_KEY_CHECK "tls1-prf-key-check" +# define OSSL_PROV_PARAM_VERSION "version" +# define OSSL_PROV_PARAM_X942KDF_KEY_CHECK "x942kdf-key-check" +# define OSSL_PROV_PARAM_X963KDF_DIGEST_CHECK "x963kdf-digest-check" +# define OSSL_PROV_PARAM_X963KDF_KEY_CHECK "x963kdf-key-check" +# define OSSL_RAND_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_RAND_PARAM_GENERATE "generate" +# define OSSL_RAND_PARAM_MAX_REQUEST "max_request" +# define OSSL_RAND_PARAM_STATE "state" +# define OSSL_RAND_PARAM_STRENGTH "strength" +# define OSSL_RAND_PARAM_TEST_ENTROPY "test_entropy" +# define OSSL_RAND_PARAM_TEST_NONCE "test_nonce" +# define OSSL_SIGNATURE_PARAM_ADD_RANDOM "additional-random" +# define OSSL_SIGNATURE_PARAM_ALGORITHM_ID OSSL_PKEY_PARAM_ALGORITHM_ID +# define OSSL_SIGNATURE_PARAM_ALGORITHM_ID_PARAMS OSSL_PKEY_PARAM_ALGORITHM_ID_PARAMS +# define OSSL_SIGNATURE_PARAM_CONTEXT_STRING "context-string" +# define OSSL_SIGNATURE_PARAM_DETERMINISTIC "deterministic" +# define OSSL_SIGNATURE_PARAM_DIGEST OSSL_PKEY_PARAM_DIGEST +# define OSSL_SIGNATURE_PARAM_DIGEST_SIZE OSSL_PKEY_PARAM_DIGEST_SIZE +# define OSSL_SIGNATURE_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_SIGNATURE_PARAM_FIPS_DIGEST_CHECK OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK +# define OSSL_SIGNATURE_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_SIGNATURE_PARAM_FIPS_RSA_PSS_SALTLEN_CHECK "rsa-pss-saltlen-check" +# define OSSL_SIGNATURE_PARAM_FIPS_SIGN_CHECK OSSL_PKEY_PARAM_FIPS_SIGN_CHECK +# define OSSL_SIGNATURE_PARAM_FIPS_SIGN_X931_PAD_CHECK "sign-x931-pad-check" +# define OSSL_SIGNATURE_PARAM_FIPS_VERIFY_MESSAGE "verify-message" +# define OSSL_SIGNATURE_PARAM_INSTANCE "instance" +# define OSSL_SIGNATURE_PARAM_KAT "kat" +# define OSSL_SIGNATURE_PARAM_MESSAGE_ENCODING "message-encoding" +# define OSSL_SIGNATURE_PARAM_MGF1_DIGEST OSSL_PKEY_PARAM_MGF1_DIGEST +# define OSSL_SIGNATURE_PARAM_MGF1_PROPERTIES OSSL_PKEY_PARAM_MGF1_PROPERTIES +# define OSSL_SIGNATURE_PARAM_MU "mu" +# define OSSL_SIGNATURE_PARAM_NONCE_TYPE "nonce-type" +# define OSSL_SIGNATURE_PARAM_PAD_MODE OSSL_PKEY_PARAM_PAD_MODE +# define OSSL_SIGNATURE_PARAM_PROPERTIES OSSL_PKEY_PARAM_PROPERTIES +# define OSSL_SIGNATURE_PARAM_PSS_SALTLEN "saltlen" +# define OSSL_SIGNATURE_PARAM_SIGNATURE "signature" +# define OSSL_SIGNATURE_PARAM_TEST_ENTROPY "test-entropy" +# define OSSL_SKEY_PARAM_KEY_LENGTH "key-length" +# define OSSL_SKEY_PARAM_RAW_BYTES "raw-bytes" +# define OSSL_STORE_PARAM_ALIAS "alias" +# define OSSL_STORE_PARAM_DIGEST "digest" +# define OSSL_STORE_PARAM_EXPECT "expect" +# define OSSL_STORE_PARAM_FINGERPRINT "fingerprint" +# define OSSL_STORE_PARAM_INPUT_TYPE "input-type" +# define OSSL_STORE_PARAM_ISSUER "name" +# define OSSL_STORE_PARAM_PROPERTIES "properties" +# define OSSL_STORE_PARAM_SERIAL "serial" +# define OSSL_STORE_PARAM_SUBJECT "subject" + +# ifdef __cplusplus +} +# endif + +#endif diff --git a/deps/openssl/config/archs/darwin-i386-cc/asm/include/openssl/crmf.h b/deps/openssl/config/archs/darwin-i386-cc/asm/include/openssl/crmf.h index 71b747ed33d239..4bf550fd47daa9 100644 --- a/deps/openssl/config/archs/darwin-i386-cc/asm/include/openssl/crmf.h +++ b/deps/openssl/config/archs/darwin-i386-cc/asm/include/openssl/crmf.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/crmf.h.in * - * Copyright 2007-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2007-2025 The OpenSSL Project Authors. All Rights Reserved. * Copyright Nokia 2007-2019 * Copyright Siemens AG 2015-2019 * @@ -26,6 +26,7 @@ # include # include # include /* for GENERAL_NAME etc. */ +# include /* explicit #includes not strictly needed since implied by the above: */ # include @@ -43,9 +44,12 @@ extern "C" { # define OSSL_CRMF_SUBSEQUENTMESSAGE_ENCRCERT 0 # define OSSL_CRMF_SUBSEQUENTMESSAGE_CHALLENGERESP 1 - typedef struct ossl_crmf_encryptedvalue_st OSSL_CRMF_ENCRYPTEDVALUE; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_ENCRYPTEDVALUE) + +typedef struct ossl_crmf_encryptedkey_st OSSL_CRMF_ENCRYPTEDKEY; +DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_ENCRYPTEDKEY) + typedef struct ossl_crmf_msg_st OSSL_CRMF_MSG; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_MSG) DECLARE_ASN1_DUP_FUNCTION(OSSL_CRMF_MSG) @@ -77,6 +81,36 @@ SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CRMF_MSG, OSSL_CRMF_MSG, OSSL_CRMF_MSG) #define sk_OSSL_CRMF_MSG_set_cmp_func(sk, cmp) ((sk_OSSL_CRMF_MSG_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CRMF_MSG_sk_type(sk), ossl_check_OSSL_CRMF_MSG_compfunc_type(cmp))) typedef struct ossl_crmf_attributetypeandvalue_st OSSL_CRMF_ATTRIBUTETYPEANDVALUE; +void OSSL_CRMF_ATTRIBUTETYPEANDVALUE_free(OSSL_CRMF_ATTRIBUTETYPEANDVALUE *v); +DECLARE_ASN1_DUP_FUNCTION(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CRMF_ATTRIBUTETYPEANDVALUE, OSSL_CRMF_ATTRIBUTETYPEANDVALUE, OSSL_CRMF_ATTRIBUTETYPEANDVALUE) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_value(sk, idx) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_value(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), (idx))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_new(cmp) ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_new(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_compfunc_type(cmp))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_new_null() ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_new_null()) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_new_reserve(cmp, n) ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_compfunc_type(cmp), (n))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), (n)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_free(sk) OPENSSL_sk_free(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_delete(sk, i) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_delete(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), (i))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_delete_ptr(sk, ptr) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_pop(sk) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_pop(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_shift(sk) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_shift(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk),ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_freefunc_type(freefunc)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr), (idx)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_set(sk, idx, ptr) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_set(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), (idx), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr), pnum) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_dup(sk) ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_dup(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_copyfunc_type(copyfunc), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_freefunc_type(freefunc))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_set_cmp_func(sk, cmp) ((sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_compfunc_type(cmp))) + + typedef struct ossl_crmf_pbmparameter_st OSSL_CRMF_PBMPARAMETER; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_PBMPARAMETER) typedef struct ossl_crmf_poposigningkey_st OSSL_CRMF_POPOSIGNINGKEY; @@ -118,6 +152,7 @@ typedef struct ossl_crmf_singlepubinfo_st OSSL_CRMF_SINGLEPUBINFO; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_SINGLEPUBINFO) typedef struct ossl_crmf_certtemplate_st OSSL_CRMF_CERTTEMPLATE; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_CERTTEMPLATE) +DECLARE_ASN1_DUP_FUNCTION(OSSL_CRMF_CERTTEMPLATE) typedef STACK_OF(OSSL_CRMF_MSG) OSSL_CRMF_MSGS; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_MSGS) @@ -198,12 +233,14 @@ int OSSL_CRMF_MSGS_verify_popo(const OSSL_CRMF_MSGS *reqs, int rid, int acceptRAVerified, OSSL_LIB_CTX *libctx, const char *propq); OSSL_CRMF_CERTTEMPLATE *OSSL_CRMF_MSG_get0_tmpl(const OSSL_CRMF_MSG *crm); -const ASN1_INTEGER -*OSSL_CRMF_CERTTEMPLATE_get0_serialNumber(const OSSL_CRMF_CERTTEMPLATE *tmpl); +X509_PUBKEY +*OSSL_CRMF_CERTTEMPLATE_get0_publicKey(const OSSL_CRMF_CERTTEMPLATE *tmpl); const X509_NAME *OSSL_CRMF_CERTTEMPLATE_get0_subject(const OSSL_CRMF_CERTTEMPLATE *tmpl); const X509_NAME *OSSL_CRMF_CERTTEMPLATE_get0_issuer(const OSSL_CRMF_CERTTEMPLATE *tmpl); +const ASN1_INTEGER +*OSSL_CRMF_CERTTEMPLATE_get0_serialNumber(const OSSL_CRMF_CERTTEMPLATE *tmpl); X509_EXTENSIONS *OSSL_CRMF_CERTTEMPLATE_get0_extensions(const OSSL_CRMF_CERTTEMPLATE *tmpl); const X509_NAME @@ -215,10 +252,24 @@ int OSSL_CRMF_CERTTEMPLATE_fill(OSSL_CRMF_CERTTEMPLATE *tmpl, const X509_NAME *subject, const X509_NAME *issuer, const ASN1_INTEGER *serial); -X509 -*OSSL_CRMF_ENCRYPTEDVALUE_get1_encCert(const OSSL_CRMF_ENCRYPTEDVALUE *ecert, - OSSL_LIB_CTX *libctx, const char *propq, - EVP_PKEY *pkey); +X509 *OSSL_CRMF_ENCRYPTEDVALUE_get1_encCert(const OSSL_CRMF_ENCRYPTEDVALUE *ecert, + OSSL_LIB_CTX *libctx, const char *propq, + EVP_PKEY *pkey); +X509 *OSSL_CRMF_ENCRYPTEDKEY_get1_encCert(const OSSL_CRMF_ENCRYPTEDKEY *ecert, + OSSL_LIB_CTX *libctx, const char *propq, + EVP_PKEY *pkey, unsigned int flags); +unsigned char +*OSSL_CRMF_ENCRYPTEDVALUE_decrypt(const OSSL_CRMF_ENCRYPTEDVALUE *enc, + OSSL_LIB_CTX *libctx, const char *propq, + EVP_PKEY *pkey, int *outlen); +EVP_PKEY *OSSL_CRMF_ENCRYPTEDKEY_get1_pkey(const OSSL_CRMF_ENCRYPTEDKEY *encryptedKey, + X509_STORE *ts, STACK_OF(X509) *extra, EVP_PKEY *pkey, + X509 *cert, ASN1_OCTET_STRING *secret, + OSSL_LIB_CTX *libctx, const char *propq); +int OSSL_CRMF_MSG_centralkeygen_requested(const OSSL_CRMF_MSG *crm, const X509_REQ *p10cr); +# ifndef OPENSSL_NO_CMS +OSSL_CRMF_ENCRYPTEDKEY *OSSL_CRMF_ENCRYPTEDKEY_init_envdata(CMS_EnvelopedData *envdata); +# endif # ifdef __cplusplus } diff --git a/deps/openssl/config/archs/darwin-i386-cc/asm/include/openssl/crypto.h b/deps/openssl/config/archs/darwin-i386-cc/asm/include/openssl/crypto.h index 3f40be6d8c61d5..fd2cfd3e5a9ac4 100644 --- a/deps/openssl/config/archs/darwin-i386-cc/asm/include/openssl/crypto.h +++ b/deps/openssl/config/archs/darwin-i386-cc/asm/include/openssl/crypto.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/crypto.h.in * - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2024 The OpenSSL Project Authors. All Rights Reserved. * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved * * Licensed under the Apache License 2.0 (the "License"). You may not use @@ -85,9 +85,15 @@ int CRYPTO_THREAD_unlock(CRYPTO_RWLOCK *lock); void CRYPTO_THREAD_lock_free(CRYPTO_RWLOCK *lock); int CRYPTO_atomic_add(int *val, int amount, int *ret, CRYPTO_RWLOCK *lock); +int CRYPTO_atomic_add64(uint64_t *val, uint64_t op, uint64_t *ret, + CRYPTO_RWLOCK *lock); +int CRYPTO_atomic_and(uint64_t *val, uint64_t op, uint64_t *ret, + CRYPTO_RWLOCK *lock); int CRYPTO_atomic_or(uint64_t *val, uint64_t op, uint64_t *ret, CRYPTO_RWLOCK *lock); int CRYPTO_atomic_load(uint64_t *val, uint64_t *ret, CRYPTO_RWLOCK *lock); +int CRYPTO_atomic_load_int(int *val, int *ret, CRYPTO_RWLOCK *lock); +int CRYPTO_atomic_store(uint64_t *dst, uint64_t val, CRYPTO_RWLOCK *lock); /* No longer needed, so this is a no-op */ #define OPENSSL_malloc_init() while(0) continue @@ -96,6 +102,9 @@ int CRYPTO_atomic_load(uint64_t *val, uint64_t *ret, CRYPTO_RWLOCK *lock); CRYPTO_malloc(num, OPENSSL_FILE, OPENSSL_LINE) # define OPENSSL_zalloc(num) \ CRYPTO_zalloc(num, OPENSSL_FILE, OPENSSL_LINE) +# define OPENSSL_aligned_alloc(num, alignment, freeptr) \ + CRYPTO_aligned_alloc(num, alignment, freeptr, \ + OPENSSL_FILE, OPENSSL_LINE) # define OPENSSL_realloc(addr, num) \ CRYPTO_realloc(addr, num, OPENSSL_FILE, OPENSSL_LINE) # define OPENSSL_clear_realloc(addr, old_num, num) \ @@ -124,6 +133,7 @@ int CRYPTO_atomic_load(uint64_t *val, uint64_t *ret, CRYPTO_RWLOCK *lock); size_t OPENSSL_strlcpy(char *dst, const char *src, size_t siz); size_t OPENSSL_strlcat(char *dst, const char *src, size_t siz); size_t OPENSSL_strnlen(const char *str, size_t maxlen); +int OPENSSL_strtoul(const char *str, char **endptr, int base, unsigned long *num); int OPENSSL_buf2hexstr_ex(char *str, size_t str_n, size_t *strlength, const unsigned char *buf, size_t buflen, const char sep); @@ -160,6 +170,7 @@ const char *OpenSSL_version(int type); # define OPENSSL_FULL_VERSION_STRING 7 # define OPENSSL_MODULES_DIR 8 # define OPENSSL_CPU_INFO 9 +# define OPENSSL_WINCTX 10 const char *OPENSSL_info(int type); /* @@ -174,6 +185,7 @@ const char *OPENSSL_info(int type); # define OPENSSL_INFO_LIST_SEPARATOR 1006 # define OPENSSL_INFO_SEED_SOURCE 1007 # define OPENSSL_INFO_CPU_SETTINGS 1008 +# define OPENSSL_INFO_WINDOWS_CONTEXT 1009 int OPENSSL_issetugid(void); @@ -341,11 +353,14 @@ void CRYPTO_get_mem_functions(CRYPTO_malloc_fn *malloc_fn, CRYPTO_realloc_fn *realloc_fn, CRYPTO_free_fn *free_fn); -void *CRYPTO_malloc(size_t num, const char *file, int line); -void *CRYPTO_zalloc(size_t num, const char *file, int line); -void *CRYPTO_memdup(const void *str, size_t siz, const char *file, int line); -char *CRYPTO_strdup(const char *str, const char *file, int line); -char *CRYPTO_strndup(const char *str, size_t s, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_malloc(size_t num, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_zalloc(size_t num, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_aligned_alloc(size_t num, size_t align, + void **freeptr, const char *file, + int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_memdup(const void *str, size_t siz, const char *file, int line); +OSSL_CRYPTO_ALLOC char *CRYPTO_strdup(const char *str, const char *file, int line); +OSSL_CRYPTO_ALLOC char *CRYPTO_strndup(const char *str, size_t s, const char *file, int line); void CRYPTO_free(void *ptr, const char *file, int line); void CRYPTO_clear_free(void *ptr, size_t num, const char *file, int line); void *CRYPTO_realloc(void *addr, size_t num, const char *file, int line); @@ -354,8 +369,8 @@ void *CRYPTO_clear_realloc(void *addr, size_t old_num, size_t num, int CRYPTO_secure_malloc_init(size_t sz, size_t minsize); int CRYPTO_secure_malloc_done(void); -void *CRYPTO_secure_malloc(size_t num, const char *file, int line); -void *CRYPTO_secure_zalloc(size_t num, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_secure_malloc(size_t num, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_secure_zalloc(size_t num, const char *file, int line); void CRYPTO_secure_free(void *ptr, const char *file, int line); void CRYPTO_secure_clear_free(void *ptr, size_t num, const char *file, int line); @@ -376,6 +391,9 @@ void OPENSSL_cleanse(void *ptr, size_t len); # define CRYPTO_MEM_CHECK_ENABLE 0x2 /* Control and mode bit */ # define CRYPTO_MEM_CHECK_DISABLE 0x3 /* Control only */ +/* max allowed length for value of OPENSSL_MALLOC_FAILURES env var. */ +# define CRYPTO_MEM_CHECK_MAX_FS 256 + void CRYPTO_get_alloc_counts(int *mcount, int *rcount, int *fcount); # ifndef OPENSSL_NO_DEPRECATED_3_0 # define OPENSSL_mem_debug_push(info) \ @@ -551,6 +569,13 @@ int OSSL_LIB_CTX_load_config(OSSL_LIB_CTX *ctx, const char *config_file); void OSSL_LIB_CTX_free(OSSL_LIB_CTX *); OSSL_LIB_CTX *OSSL_LIB_CTX_get0_global_default(void); OSSL_LIB_CTX *OSSL_LIB_CTX_set0_default(OSSL_LIB_CTX *libctx); +int OSSL_LIB_CTX_get_conf_diagnostics(OSSL_LIB_CTX *ctx); +void OSSL_LIB_CTX_set_conf_diagnostics(OSSL_LIB_CTX *ctx, int value); + +void OSSL_sleep(uint64_t millis); + + +void *OSSL_LIB_CTX_get_data(OSSL_LIB_CTX *ctx, int index); # ifdef __cplusplus } diff --git a/deps/openssl/config/archs/darwin-i386-cc/asm/include/openssl/ct.h b/deps/openssl/config/archs/darwin-i386-cc/asm/include/openssl/ct.h index b6dd8c3547710a..e6dd1192a4e0b3 100644 --- a/deps/openssl/config/archs/darwin-i386-cc/asm/include/openssl/ct.h +++ b/deps/openssl/config/archs/darwin-i386-cc/asm/include/openssl/ct.h @@ -133,7 +133,7 @@ typedef enum { */ CT_POLICY_EVAL_CTX *CT_POLICY_EVAL_CTX_new_ex(OSSL_LIB_CTX *libctx, const char *propq); - + /* * The same as CT_POLICY_EVAL_CTX_new_ex() but the default library * context and property query string is used. diff --git a/deps/openssl/config/archs/darwin-i386-cc/asm/include/openssl/err.h b/deps/openssl/config/archs/darwin-i386-cc/asm/include/openssl/err.h index 2abf2483488181..daca18e7b757b0 100644 --- a/deps/openssl/config/archs/darwin-i386-cc/asm/include/openssl/err.h +++ b/deps/openssl/config/archs/darwin-i386-cc/asm/include/openssl/err.h @@ -1,5 +1,5 @@ /* - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -372,7 +372,7 @@ typedef struct ERR_string_data_st { } ERR_STRING_DATA; DEFINE_LHASH_OF_INTERNAL(ERR_STRING_DATA); -#define lh_ERR_STRING_DATA_new(hfn, cmp) ((LHASH_OF(ERR_STRING_DATA) *)OPENSSL_LH_new(ossl_check_ERR_STRING_DATA_lh_hashfunc_type(hfn), ossl_check_ERR_STRING_DATA_lh_compfunc_type(cmp))) +#define lh_ERR_STRING_DATA_new(hfn, cmp) ((LHASH_OF(ERR_STRING_DATA) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new(ossl_check_ERR_STRING_DATA_lh_hashfunc_type(hfn), ossl_check_ERR_STRING_DATA_lh_compfunc_type(cmp)), lh_ERR_STRING_DATA_hash_thunk, lh_ERR_STRING_DATA_comp_thunk, lh_ERR_STRING_DATA_doall_thunk, lh_ERR_STRING_DATA_doall_arg_thunk)) #define lh_ERR_STRING_DATA_free(lh) OPENSSL_LH_free(ossl_check_ERR_STRING_DATA_lh_type(lh)) #define lh_ERR_STRING_DATA_flush(lh) OPENSSL_LH_flush(ossl_check_ERR_STRING_DATA_lh_type(lh)) #define lh_ERR_STRING_DATA_insert(lh, ptr) ((ERR_STRING_DATA *)OPENSSL_LH_insert(ossl_check_ERR_STRING_DATA_lh_type(lh), ossl_check_ERR_STRING_DATA_lh_plain_type(ptr))) @@ -496,6 +496,14 @@ int ERR_get_next_error_library(void); int ERR_set_mark(void); int ERR_pop_to_mark(void); int ERR_clear_last_mark(void); +int ERR_count_to_mark(void); +int ERR_pop(void); + +ERR_STATE *OSSL_ERR_STATE_new(void); +void OSSL_ERR_STATE_save(ERR_STATE *es); +void OSSL_ERR_STATE_save_to_mark(ERR_STATE *es); +void OSSL_ERR_STATE_restore(const ERR_STATE *es); +void OSSL_ERR_STATE_free(ERR_STATE *es); #ifdef __cplusplus } diff --git a/deps/openssl/config/archs/darwin-i386-cc/asm/include/openssl/fipskey.h b/deps/openssl/config/archs/darwin-i386-cc/asm/include/openssl/fipskey.h index 42ba014b313ba8..929db18c678364 100644 --- a/deps/openssl/config/archs/darwin-i386-cc/asm/include/openssl/fipskey.h +++ b/deps/openssl/config/archs/darwin-i386-cc/asm/include/openssl/fipskey.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/fipskey.h.in * - * Copyright 2020-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2020-2024 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -29,6 +29,11 @@ extern "C" { */ #define FIPS_KEY_STRING "f4556650ac31d35461610bac4ed81b1a181b2d8a43ea2854cbae22ca74560813" +/* + * The FIPS provider vendor name, as a string. + */ +#define FIPS_VENDOR "OpenSSL FIPS Provider" + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/darwin-i386-cc/asm/include/openssl/lhash.h b/deps/openssl/config/archs/darwin-i386-cc/asm/include/openssl/lhash.h index 39dd6254acdeb6..62c55b20fd9716 100644 --- a/deps/openssl/config/archs/darwin-i386-cc/asm/include/openssl/lhash.h +++ b/deps/openssl/config/archs/darwin-i386-cc/asm/include/openssl/lhash.h @@ -1,5 +1,5 @@ /* - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2024 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -24,6 +24,9 @@ # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -31,9 +34,13 @@ extern "C" { typedef struct lhash_node_st OPENSSL_LH_NODE; typedef int (*OPENSSL_LH_COMPFUNC) (const void *, const void *); +typedef int (*OPENSSL_LH_COMPFUNCTHUNK) (const void *, const void *, OPENSSL_LH_COMPFUNC cfn); typedef unsigned long (*OPENSSL_LH_HASHFUNC) (const void *); +typedef unsigned long (*OPENSSL_LH_HASHFUNCTHUNK) (const void *, OPENSSL_LH_HASHFUNC hfn); typedef void (*OPENSSL_LH_DOALL_FUNC) (void *); +typedef void (*OPENSSL_LH_DOALL_FUNC_THUNK) (void *, OPENSSL_LH_DOALL_FUNC doall); typedef void (*OPENSSL_LH_DOALL_FUNCARG) (void *, void *); +typedef void (*OPENSSL_LH_DOALL_FUNCARG_THUNK) (void *, void *, OPENSSL_LH_DOALL_FUNCARG doall); typedef struct lhash_st OPENSSL_LHASH; /* @@ -79,26 +86,40 @@ typedef struct lhash_st OPENSSL_LHASH; int OPENSSL_LH_error(OPENSSL_LHASH *lh); OPENSSL_LHASH *OPENSSL_LH_new(OPENSSL_LH_HASHFUNC h, OPENSSL_LH_COMPFUNC c); +OPENSSL_LHASH *OPENSSL_LH_set_thunks(OPENSSL_LHASH *lh, + OPENSSL_LH_HASHFUNCTHUNK hw, + OPENSSL_LH_COMPFUNCTHUNK cw, + OPENSSL_LH_DOALL_FUNC_THUNK daw, + OPENSSL_LH_DOALL_FUNCARG_THUNK daaw); void OPENSSL_LH_free(OPENSSL_LHASH *lh); void OPENSSL_LH_flush(OPENSSL_LHASH *lh); void *OPENSSL_LH_insert(OPENSSL_LHASH *lh, void *data); void *OPENSSL_LH_delete(OPENSSL_LHASH *lh, const void *data); void *OPENSSL_LH_retrieve(OPENSSL_LHASH *lh, const void *data); void OPENSSL_LH_doall(OPENSSL_LHASH *lh, OPENSSL_LH_DOALL_FUNC func); -void OPENSSL_LH_doall_arg(OPENSSL_LHASH *lh, OPENSSL_LH_DOALL_FUNCARG func, void *arg); +void OPENSSL_LH_doall_arg(OPENSSL_LHASH *lh, + OPENSSL_LH_DOALL_FUNCARG func, void *arg); +void OPENSSL_LH_doall_arg_thunk(OPENSSL_LHASH *lh, + OPENSSL_LH_DOALL_FUNCARG_THUNK daaw, + OPENSSL_LH_DOALL_FUNCARG fn, void *arg); + unsigned long OPENSSL_LH_strhash(const char *c); unsigned long OPENSSL_LH_num_items(const OPENSSL_LHASH *lh); unsigned long OPENSSL_LH_get_down_load(const OPENSSL_LHASH *lh); void OPENSSL_LH_set_down_load(OPENSSL_LHASH *lh, unsigned long down_load); # ifndef OPENSSL_NO_STDIO -void OPENSSL_LH_stats(const OPENSSL_LHASH *lh, FILE *fp); -void OPENSSL_LH_node_stats(const OPENSSL_LHASH *lh, FILE *fp); -void OPENSSL_LH_node_usage_stats(const OPENSSL_LHASH *lh, FILE *fp); +# ifndef OPENSSL_NO_DEPRECATED_3_1 +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_stats(const OPENSSL_LHASH *lh, FILE *fp); +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_node_stats(const OPENSSL_LHASH *lh, FILE *fp); +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_node_usage_stats(const OPENSSL_LHASH *lh, FILE *fp); +# endif +# endif +# ifndef OPENSSL_NO_DEPRECATED_3_1 +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_stats_bio(const OPENSSL_LHASH *lh, BIO *out); +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_node_stats_bio(const OPENSSL_LHASH *lh, BIO *out); +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_node_usage_stats_bio(const OPENSSL_LHASH *lh, BIO *out); # endif -void OPENSSL_LH_stats_bio(const OPENSSL_LHASH *lh, BIO *out); -void OPENSSL_LH_node_stats_bio(const OPENSSL_LHASH *lh, BIO *out); -void OPENSSL_LH_node_usage_stats_bio(const OPENSSL_LHASH *lh, BIO *out); # ifndef OPENSSL_NO_DEPRECATED_1_1_0 # define _LHASH OPENSSL_LHASH @@ -129,110 +150,190 @@ void OPENSSL_LH_node_usage_stats_bio(const OPENSSL_LHASH *lh, BIO *out); /* Helper macro for internal use */ # define DEFINE_LHASH_OF_INTERNAL(type) \ - LHASH_OF(type) { union lh_##type##_dummy { void* d1; unsigned long d2; int d3; } dummy; }; \ + LHASH_OF(type) { \ + union lh_##type##_dummy { void* d1; unsigned long d2; int d3; } dummy; \ + }; \ typedef int (*lh_##type##_compfunc)(const type *a, const type *b); \ typedef unsigned long (*lh_##type##_hashfunc)(const type *a); \ typedef void (*lh_##type##_doallfunc)(type *a); \ - static ossl_unused ossl_inline type *ossl_check_##type##_lh_plain_type(type *ptr) \ + static ossl_inline unsigned long lh_##type##_hash_thunk(const void *data, OPENSSL_LH_HASHFUNC hfn) \ + { \ + unsigned long (*hfn_conv)(const type *) = (unsigned long (*)(const type *))hfn; \ + return hfn_conv((const type *)data); \ + } \ + static ossl_inline int lh_##type##_comp_thunk(const void *da, const void *db, OPENSSL_LH_COMPFUNC cfn) \ + { \ + int (*cfn_conv)(const type *, const type *) = (int (*)(const type *, const type *))cfn; \ + return cfn_conv((const type *)da, (const type *)db); \ + } \ + static ossl_inline void lh_##type##_doall_thunk(void *node, OPENSSL_LH_DOALL_FUNC doall) \ + { \ + void (*doall_conv)(type *) = (void (*)(type *))doall; \ + doall_conv((type *)node); \ + } \ + static ossl_inline void lh_##type##_doall_arg_thunk(void *node, void *arg, OPENSSL_LH_DOALL_FUNCARG doall) \ + { \ + void (*doall_conv)(type *, void *) = (void (*)(type *, void *))doall; \ + doall_conv((type *)node, arg); \ + } \ + static ossl_unused ossl_inline type *\ + ossl_check_##type##_lh_plain_type(type *ptr) \ { \ return ptr; \ } \ - static ossl_unused ossl_inline const type *ossl_check_const_##type##_lh_plain_type(const type *ptr) \ + static ossl_unused ossl_inline const type * \ + ossl_check_const_##type##_lh_plain_type(const type *ptr) \ { \ return ptr; \ } \ - static ossl_unused ossl_inline const OPENSSL_LHASH *ossl_check_const_##type##_lh_type(const LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline const OPENSSL_LHASH * \ + ossl_check_const_##type##_lh_type(const LHASH_OF(type) *lh) \ { \ return (const OPENSSL_LHASH *)lh; \ } \ - static ossl_unused ossl_inline OPENSSL_LHASH *ossl_check_##type##_lh_type(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline OPENSSL_LHASH * \ + ossl_check_##type##_lh_type(LHASH_OF(type) *lh) \ { \ return (OPENSSL_LHASH *)lh; \ } \ - static ossl_unused ossl_inline OPENSSL_LH_COMPFUNC ossl_check_##type##_lh_compfunc_type(lh_##type##_compfunc cmp) \ + static ossl_unused ossl_inline OPENSSL_LH_COMPFUNC \ + ossl_check_##type##_lh_compfunc_type(lh_##type##_compfunc cmp) \ { \ return (OPENSSL_LH_COMPFUNC)cmp; \ } \ - static ossl_unused ossl_inline OPENSSL_LH_HASHFUNC ossl_check_##type##_lh_hashfunc_type(lh_##type##_hashfunc hfn) \ + static ossl_unused ossl_inline OPENSSL_LH_HASHFUNC \ + ossl_check_##type##_lh_hashfunc_type(lh_##type##_hashfunc hfn) \ { \ return (OPENSSL_LH_HASHFUNC)hfn; \ } \ - static ossl_unused ossl_inline OPENSSL_LH_DOALL_FUNC ossl_check_##type##_lh_doallfunc_type(lh_##type##_doallfunc dfn) \ + static ossl_unused ossl_inline OPENSSL_LH_DOALL_FUNC \ + ossl_check_##type##_lh_doallfunc_type(lh_##type##_doallfunc dfn) \ { \ return (OPENSSL_LH_DOALL_FUNC)dfn; \ } \ LHASH_OF(type) -# define DEFINE_LHASH_OF(type) \ - LHASH_OF(type) { union lh_##type##_dummy { void* d1; unsigned long d2; int d3; } dummy; }; \ - static ossl_unused ossl_inline LHASH_OF(type) *lh_##type##_new(unsigned long (*hfn)(const type *), \ - int (*cfn)(const type *, const type *)) \ +# ifndef OPENSSL_NO_DEPRECATED_3_1 +# define DEFINE_LHASH_OF_DEPRECATED(type) \ + static ossl_unused ossl_inline void \ + lh_##type##_node_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ { \ - return (LHASH_OF(type) *) \ - OPENSSL_LH_new((OPENSSL_LH_HASHFUNC)hfn, (OPENSSL_LH_COMPFUNC)cfn); \ + OPENSSL_LH_node_stats_bio((const OPENSSL_LHASH *)lh, out); \ } \ - static ossl_unused ossl_inline void lh_##type##_free(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline void \ + lh_##type##_node_usage_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + { \ + OPENSSL_LH_node_usage_stats_bio((const OPENSSL_LHASH *)lh, out); \ + } \ + static ossl_unused ossl_inline void \ + lh_##type##_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + { \ + OPENSSL_LH_stats_bio((const OPENSSL_LHASH *)lh, out); \ + } +# else +# define DEFINE_LHASH_OF_DEPRECATED(type) +# endif + +# define DEFINE_LHASH_OF_EX(type) \ + LHASH_OF(type) { \ + union lh_##type##_dummy { void* d1; unsigned long d2; int d3; } dummy; \ + }; \ + static unsigned long \ + lh_##type##_hfn_thunk(const void *data, OPENSSL_LH_HASHFUNC hfn) \ + { \ + unsigned long (*hfn_conv)(const type *) = (unsigned long (*)(const type *))hfn; \ + return hfn_conv((const type *)data); \ + } \ + static int lh_##type##_cfn_thunk(const void *da, const void *db, OPENSSL_LH_COMPFUNC cfn) \ + { \ + int (*cfn_conv)(const type *, const type *) = (int (*)(const type *, const type *))cfn; \ + return cfn_conv((const type *)da, (const type *)db); \ + } \ + static ossl_unused ossl_inline void \ + lh_##type##_free(LHASH_OF(type) *lh) \ { \ OPENSSL_LH_free((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline void lh_##type##_flush(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline void \ + lh_##type##_flush(LHASH_OF(type) *lh) \ { \ OPENSSL_LH_flush((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline type *lh_##type##_insert(LHASH_OF(type) *lh, type *d) \ + static ossl_unused ossl_inline type * \ + lh_##type##_insert(LHASH_OF(type) *lh, type *d) \ { \ return (type *)OPENSSL_LH_insert((OPENSSL_LHASH *)lh, d); \ } \ - static ossl_unused ossl_inline type *lh_##type##_delete(LHASH_OF(type) *lh, const type *d) \ + static ossl_unused ossl_inline type * \ + lh_##type##_delete(LHASH_OF(type) *lh, const type *d) \ { \ return (type *)OPENSSL_LH_delete((OPENSSL_LHASH *)lh, d); \ } \ - static ossl_unused ossl_inline type *lh_##type##_retrieve(LHASH_OF(type) *lh, const type *d) \ + static ossl_unused ossl_inline type * \ + lh_##type##_retrieve(LHASH_OF(type) *lh, const type *d) \ { \ return (type *)OPENSSL_LH_retrieve((OPENSSL_LHASH *)lh, d); \ } \ - static ossl_unused ossl_inline int lh_##type##_error(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline int \ + lh_##type##_error(LHASH_OF(type) *lh) \ { \ return OPENSSL_LH_error((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline unsigned long lh_##type##_num_items(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline unsigned long \ + lh_##type##_num_items(LHASH_OF(type) *lh) \ { \ return OPENSSL_LH_num_items((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline void lh_##type##_node_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + static ossl_unused ossl_inline unsigned long \ + lh_##type##_get_down_load(LHASH_OF(type) *lh) \ { \ - OPENSSL_LH_node_stats_bio((const OPENSSL_LHASH *)lh, out); \ + return OPENSSL_LH_get_down_load((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline void lh_##type##_node_usage_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + static ossl_unused ossl_inline void \ + lh_##type##_set_down_load(LHASH_OF(type) *lh, unsigned long dl) \ { \ - OPENSSL_LH_node_usage_stats_bio((const OPENSSL_LHASH *)lh, out); \ + OPENSSL_LH_set_down_load((OPENSSL_LHASH *)lh, dl); \ } \ - static ossl_unused ossl_inline void lh_##type##_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall_thunk(void *node, OPENSSL_LH_DOALL_FUNC doall) \ { \ - OPENSSL_LH_stats_bio((const OPENSSL_LHASH *)lh, out); \ + void (*doall_conv)(type *) = (void (*)(type *))doall; \ + doall_conv((type *)node); \ } \ - static ossl_unused ossl_inline unsigned long lh_##type##_get_down_load(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall_arg_thunk(void *node, void *arg, OPENSSL_LH_DOALL_FUNCARG doall) \ { \ - return OPENSSL_LH_get_down_load((OPENSSL_LHASH *)lh); \ + void (*doall_conv)(type *, void *) = (void (*)(type *, void *))doall; \ + doall_conv((type *)node, arg); \ } \ - static ossl_unused ossl_inline void lh_##type##_set_down_load(LHASH_OF(type) *lh, unsigned long dl) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall(LHASH_OF(type) *lh, void (*doall)(type *)) \ { \ - OPENSSL_LH_set_down_load((OPENSSL_LHASH *)lh, dl); \ + OPENSSL_LH_doall((OPENSSL_LHASH *)lh, (OPENSSL_LH_DOALL_FUNC)doall); \ } \ - static ossl_unused ossl_inline void lh_##type##_doall(LHASH_OF(type) *lh, \ - void (*doall)(type *)) \ + static ossl_unused ossl_inline LHASH_OF(type) * \ + lh_##type##_new(unsigned long (*hfn)(const type *), \ + int (*cfn)(const type *, const type *)) \ { \ - OPENSSL_LH_doall((OPENSSL_LHASH *)lh, (OPENSSL_LH_DOALL_FUNC)doall); \ + return (LHASH_OF(type) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new((OPENSSL_LH_HASHFUNC)hfn, (OPENSSL_LH_COMPFUNC)cfn), \ + lh_##type##_hfn_thunk, lh_##type##_cfn_thunk, \ + lh_##type##_doall_thunk, \ + lh_##type##_doall_arg_thunk); \ } \ - static ossl_unused ossl_inline void lh_##type##_doall_arg(LHASH_OF(type) *lh, \ - void (*doallarg)(type *, void *), \ - void *arg) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall_arg(LHASH_OF(type) *lh, \ + void (*doallarg)(type *, void *), void *arg) \ { \ OPENSSL_LH_doall_arg((OPENSSL_LHASH *)lh, \ (OPENSSL_LH_DOALL_FUNCARG)doallarg, arg); \ } \ LHASH_OF(type) +# define DEFINE_LHASH_OF(type) \ + DEFINE_LHASH_OF_EX(type); \ + DEFINE_LHASH_OF_DEPRECATED(type) \ + LHASH_OF(type) + #define IMPLEMENT_LHASH_DOALL_ARG_CONST(type, argtype) \ int_implement_lhash_doall(type, argtype, const type) @@ -240,17 +341,26 @@ void OPENSSL_LH_node_usage_stats_bio(const OPENSSL_LHASH *lh, BIO *out); int_implement_lhash_doall(type, argtype, type) #define int_implement_lhash_doall(type, argtype, cbargtype) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall_##argtype##_thunk(void *node, void *arg, OPENSSL_LH_DOALL_FUNCARG fn) \ + { \ + void (*fn_conv)(cbargtype *, argtype *) = (void (*)(cbargtype *, argtype *))fn; \ + fn_conv((cbargtype *)node, (argtype *)arg); \ + } \ static ossl_unused ossl_inline void \ lh_##type##_doall_##argtype(LHASH_OF(type) *lh, \ void (*fn)(cbargtype *, argtype *), \ argtype *arg) \ { \ - OPENSSL_LH_doall_arg((OPENSSL_LHASH *)lh, (OPENSSL_LH_DOALL_FUNCARG)fn, (void *)arg); \ + OPENSSL_LH_doall_arg_thunk((OPENSSL_LHASH *)lh, \ + lh_##type##_doall_##argtype##_thunk, \ + (OPENSSL_LH_DOALL_FUNCARG)fn, \ + (void *)arg); \ } \ LHASH_OF(type) DEFINE_LHASH_OF_INTERNAL(OPENSSL_STRING); -#define lh_OPENSSL_STRING_new(hfn, cmp) ((LHASH_OF(OPENSSL_STRING) *)OPENSSL_LH_new(ossl_check_OPENSSL_STRING_lh_hashfunc_type(hfn), ossl_check_OPENSSL_STRING_lh_compfunc_type(cmp))) +#define lh_OPENSSL_STRING_new(hfn, cmp) ((LHASH_OF(OPENSSL_STRING) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new(ossl_check_OPENSSL_STRING_lh_hashfunc_type(hfn), ossl_check_OPENSSL_STRING_lh_compfunc_type(cmp)), lh_OPENSSL_STRING_hash_thunk, lh_OPENSSL_STRING_comp_thunk, lh_OPENSSL_STRING_doall_thunk, lh_OPENSSL_STRING_doall_arg_thunk)) #define lh_OPENSSL_STRING_free(lh) OPENSSL_LH_free(ossl_check_OPENSSL_STRING_lh_type(lh)) #define lh_OPENSSL_STRING_flush(lh) OPENSSL_LH_flush(ossl_check_OPENSSL_STRING_lh_type(lh)) #define lh_OPENSSL_STRING_insert(lh, ptr) ((OPENSSL_STRING *)OPENSSL_LH_insert(ossl_check_OPENSSL_STRING_lh_type(lh), ossl_check_OPENSSL_STRING_lh_plain_type(ptr))) @@ -265,7 +375,7 @@ DEFINE_LHASH_OF_INTERNAL(OPENSSL_STRING); #define lh_OPENSSL_STRING_set_down_load(lh, dl) OPENSSL_LH_set_down_load(ossl_check_OPENSSL_STRING_lh_type(lh), dl) #define lh_OPENSSL_STRING_doall(lh, dfn) OPENSSL_LH_doall(ossl_check_OPENSSL_STRING_lh_type(lh), ossl_check_OPENSSL_STRING_lh_doallfunc_type(dfn)) DEFINE_LHASH_OF_INTERNAL(OPENSSL_CSTRING); -#define lh_OPENSSL_CSTRING_new(hfn, cmp) ((LHASH_OF(OPENSSL_CSTRING) *)OPENSSL_LH_new(ossl_check_OPENSSL_CSTRING_lh_hashfunc_type(hfn), ossl_check_OPENSSL_CSTRING_lh_compfunc_type(cmp))) +#define lh_OPENSSL_CSTRING_new(hfn, cmp) ((LHASH_OF(OPENSSL_CSTRING) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new(ossl_check_OPENSSL_CSTRING_lh_hashfunc_type(hfn), ossl_check_OPENSSL_CSTRING_lh_compfunc_type(cmp)), lh_OPENSSL_CSTRING_hash_thunk, lh_OPENSSL_CSTRING_comp_thunk, lh_OPENSSL_CSTRING_doall_thunk, lh_OPENSSL_CSTRING_doall_arg_thunk)) #define lh_OPENSSL_CSTRING_free(lh) OPENSSL_LH_free(ossl_check_OPENSSL_CSTRING_lh_type(lh)) #define lh_OPENSSL_CSTRING_flush(lh) OPENSSL_LH_flush(ossl_check_OPENSSL_CSTRING_lh_type(lh)) #define lh_OPENSSL_CSTRING_insert(lh, ptr) ((OPENSSL_CSTRING *)OPENSSL_LH_insert(ossl_check_OPENSSL_CSTRING_lh_type(lh), ossl_check_OPENSSL_CSTRING_lh_plain_type(ptr))) diff --git a/deps/openssl/config/archs/darwin-i386-cc/asm/include/openssl/opensslv.h b/deps/openssl/config/archs/darwin-i386-cc/asm/include/openssl/opensslv.h index 5fb5bc63056fe0..dd50d89cb9982d 100644 --- a/deps/openssl/config/archs/darwin-i386-cc/asm/include/openssl/opensslv.h +++ b/deps/openssl/config/archs/darwin-i386-cc/asm/include/openssl/opensslv.h @@ -28,8 +28,8 @@ extern "C" { * These macros express version number MAJOR.MINOR.PATCH exactly */ # define OPENSSL_VERSION_MAJOR 3 -# define OPENSSL_VERSION_MINOR 0 -# define OPENSSL_VERSION_PATCH 17 +# define OPENSSL_VERSION_MINOR 5 +# define OPENSSL_VERSION_PATCH 1 /* * Additional version information @@ -74,8 +74,8 @@ extern "C" { * longer variant with OPENSSL_VERSION_PRE_RELEASE_STR and * OPENSSL_VERSION_BUILD_METADATA_STR appended. */ -# define OPENSSL_VERSION_STR "3.0.17" -# define OPENSSL_FULL_VERSION_STR "3.0.17" +# define OPENSSL_VERSION_STR "3.5.1" +# define OPENSSL_FULL_VERSION_STR "3.5.1" /* * SECTION 3: ADDITIONAL METADATA @@ -88,7 +88,7 @@ extern "C" { * SECTION 4: BACKWARD COMPATIBILITY */ -# define OPENSSL_VERSION_TEXT "OpenSSL 3.0.17 1 Jul 2025" +# define OPENSSL_VERSION_TEXT "OpenSSL 3.5.1 1 Jul 2025" /* Synthesize OPENSSL_VERSION_NUMBER with the layout 0xMNN00PPSL */ # ifdef OPENSSL_VERSION_PRE_RELEASE diff --git a/deps/openssl/config/archs/darwin-i386-cc/asm/include/openssl/pkcs12.h b/deps/openssl/config/archs/darwin-i386-cc/asm/include/openssl/pkcs12.h index c5e0cab06491ec..0809645dad0bbf 100644 --- a/deps/openssl/config/archs/darwin-i386-cc/asm/include/openssl/pkcs12.h +++ b/deps/openssl/config/archs/darwin-i386-cc/asm/include/openssl/pkcs12.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/pkcs12.h.in * - * Copyright 1999-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1999-2024 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -25,6 +25,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -41,6 +44,7 @@ extern "C" { # define PKCS12_MAC_KEY_LENGTH 20 +/* The macro is expected to be used only internally. Kept for backwards compatibility. */ # define PKCS12_SALT_LEN 8 /* It's not clear if these are actually needed... */ @@ -130,7 +134,9 @@ int PKCS12_SAFEBAG_get_bag_nid(const PKCS12_SAFEBAG *bag); const ASN1_TYPE *PKCS12_SAFEBAG_get0_bag_obj(const PKCS12_SAFEBAG *bag); const ASN1_OBJECT *PKCS12_SAFEBAG_get0_bag_type(const PKCS12_SAFEBAG *bag); +X509 *PKCS12_SAFEBAG_get1_cert_ex(const PKCS12_SAFEBAG *bag, OSSL_LIB_CTX *libctx, const char *propq); X509 *PKCS12_SAFEBAG_get1_cert(const PKCS12_SAFEBAG *bag); +X509_CRL *PKCS12_SAFEBAG_get1_crl_ex(const PKCS12_SAFEBAG *bag, OSSL_LIB_CTX *libctx, const char *propq); X509_CRL *PKCS12_SAFEBAG_get1_crl(const PKCS12_SAFEBAG *bag); const STACK_OF(PKCS12_SAFEBAG) * PKCS12_SAFEBAG_get0_safes(const PKCS12_SAFEBAG *bag); @@ -218,6 +224,7 @@ ASN1_TYPE *PKCS12_get_attr_gen(const STACK_OF(X509_ATTRIBUTE) *attrs, char *PKCS12_get_friendlyname(PKCS12_SAFEBAG *bag); const STACK_OF(X509_ATTRIBUTE) * PKCS12_SAFEBAG_get0_attrs(const PKCS12_SAFEBAG *bag); +void PKCS12_SAFEBAG_set0_attrs(PKCS12_SAFEBAG *bag, STACK_OF(X509_ATTRIBUTE) *attrs); unsigned char *PKCS12_pbe_crypt(const X509_ALGOR *algor, const char *pass, int passlen, const unsigned char *in, int inlen, @@ -285,6 +292,9 @@ int PKCS12_verify_mac(PKCS12 *p12, const char *pass, int passlen); int PKCS12_set_mac(PKCS12 *p12, const char *pass, int passlen, unsigned char *salt, int saltlen, int iter, const EVP_MD *md_type); +int PKCS12_set_pbmac1_pbkdf2(PKCS12 *p12, const char *pass, int passlen, + unsigned char *salt, int saltlen, int iter, + const EVP_MD *md_type, const char *prf_md_name); int PKCS12_setup_mac(PKCS12 *p12, int iter, unsigned char *salt, int saltlen, const EVP_MD *md_type); unsigned char *OPENSSL_asc2uni(const char *asc, int asclen, @@ -305,6 +315,7 @@ DECLARE_ASN1_ITEM(PKCS12_AUTHSAFES) void PKCS12_PBE_add(void); int PKCS12_parse(PKCS12 *p12, const char *pass, EVP_PKEY **pkey, X509 **cert, STACK_OF(X509) **ca); +typedef int PKCS12_create_cb(PKCS12_SAFEBAG *bag, void *cbarg); PKCS12 *PKCS12_create(const char *pass, const char *name, EVP_PKEY *pkey, X509 *cert, STACK_OF(X509) *ca, int nid_key, int nid_cert, int iter, int mac_iter, int keytype); @@ -312,6 +323,11 @@ PKCS12 *PKCS12_create_ex(const char *pass, const char *name, EVP_PKEY *pkey, X509 *cert, STACK_OF(X509) *ca, int nid_key, int nid_cert, int iter, int mac_iter, int keytype, OSSL_LIB_CTX *ctx, const char *propq); +PKCS12 *PKCS12_create_ex2(const char *pass, const char *name, EVP_PKEY *pkey, + X509 *cert, STACK_OF(X509) *ca, int nid_key, int nid_cert, + int iter, int mac_iter, int keytype, + OSSL_LIB_CTX *ctx, const char *propq, + PKCS12_create_cb *cb, void *cbarg); PKCS12_SAFEBAG *PKCS12_add_cert(STACK_OF(PKCS12_SAFEBAG) **pbags, X509 *cert); PKCS12_SAFEBAG *PKCS12_add_key(STACK_OF(PKCS12_SAFEBAG) **pbags, diff --git a/deps/openssl/config/archs/darwin-i386-cc/asm/include/openssl/pkcs7.h b/deps/openssl/config/archs/darwin-i386-cc/asm/include/openssl/pkcs7.h index 0ce79bf4fa160e..fa68462aff973b 100644 --- a/deps/openssl/config/archs/darwin-i386-cc/asm/include/openssl/pkcs7.h +++ b/deps/openssl/config/archs/darwin-i386-cc/asm/include/openssl/pkcs7.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/pkcs7.h.in * - * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -28,6 +28,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -131,8 +134,8 @@ SKM_DEFINE_STACK_OF_INTERNAL(PKCS7_RECIP_INFO, PKCS7_RECIP_INFO, PKCS7_RECIP_INF typedef struct pkcs7_signed_st { ASN1_INTEGER *version; /* version 1 */ STACK_OF(X509_ALGOR) *md_algs; /* md used */ - STACK_OF(X509) *cert; /* [ 0 ] */ - STACK_OF(X509_CRL) *crl; /* [ 1 ] */ + STACK_OF(X509) *cert; /* [ 0 ] */ /* name should be 'certificates' */ + STACK_OF(X509_CRL) *crl; /* [ 1 ] */ /* name should be 'crls' */ STACK_OF(PKCS7_SIGNER_INFO) *signer_info; struct pkcs7_st *contents; } PKCS7_SIGNED; @@ -158,8 +161,8 @@ typedef struct pkcs7_enveloped_st { typedef struct pkcs7_signedandenveloped_st { ASN1_INTEGER *version; /* version 1 */ STACK_OF(X509_ALGOR) *md_algs; /* md used */ - STACK_OF(X509) *cert; /* [ 0 ] */ - STACK_OF(X509_CRL) *crl; /* [ 1 ] */ + STACK_OF(X509) *cert; /* [ 0 ] */ /* name should be 'certificates' */ + STACK_OF(X509_CRL) *crl; /* [ 1 ] */ /* name should be 'crls' */ STACK_OF(PKCS7_SIGNER_INFO) *signer_info; PKCS7_ENC_CONTENT *enc_data; STACK_OF(PKCS7_RECIP_INFO) *recipientinfo; @@ -200,7 +203,7 @@ typedef struct pkcs7_st { /* NID_pkcs7_data */ ASN1_OCTET_STRING *data; /* NID_pkcs7_signed */ - PKCS7_SIGNED *sign; + PKCS7_SIGNED *sign; /* field name 'signed' would clash with C keyword */ /* NID_pkcs7_enveloped */ PKCS7_ENVELOPE *enveloped; /* NID_pkcs7_signedAndEnveloped */ @@ -341,13 +344,13 @@ int PKCS7_SIGNER_INFO_set(PKCS7_SIGNER_INFO *p7i, X509 *x509, EVP_PKEY *pkey, const EVP_MD *dgst); int PKCS7_SIGNER_INFO_sign(PKCS7_SIGNER_INFO *si); int PKCS7_add_signer(PKCS7 *p7, PKCS7_SIGNER_INFO *p7i); -int PKCS7_add_certificate(PKCS7 *p7, X509 *x509); -int PKCS7_add_crl(PKCS7 *p7, X509_CRL *x509); +int PKCS7_add_certificate(PKCS7 *p7, X509 *cert); +int PKCS7_add_crl(PKCS7 *p7, X509_CRL *crl); int PKCS7_content_new(PKCS7 *p7, int nid); int PKCS7_dataVerify(X509_STORE *cert_store, X509_STORE_CTX *ctx, BIO *bio, PKCS7 *p7, PKCS7_SIGNER_INFO *si); int PKCS7_signatureVerify(BIO *bio, PKCS7 *p7, PKCS7_SIGNER_INFO *si, - X509 *x509); + X509 *signer); BIO *PKCS7_dataInit(PKCS7 *p7, BIO *bio); int PKCS7_dataFinal(PKCS7 *p7, BIO *bio); diff --git a/deps/openssl/config/archs/darwin-i386-cc/asm/include/openssl/ssl.h b/deps/openssl/config/archs/darwin-i386-cc/asm/include/openssl/ssl.h index 3df725c56d6c5e..7e3d89c7ef3dc9 100644 --- a/deps/openssl/config/archs/darwin-i386-cc/asm/include/openssl/ssl.h +++ b/deps/openssl/config/archs/darwin-i386-cc/asm/include/openssl/ssl.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/ssl.h.in * - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved * Copyright 2005 Nokia. All rights reserved. * @@ -24,6 +24,7 @@ # endif # include +# include # include # include # include @@ -42,6 +43,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -231,10 +235,8 @@ typedef struct ssl_cipher_st SSL_CIPHER; typedef struct ssl_session_st SSL_SESSION; typedef struct tls_sigalgs_st TLS_SIGALGS; typedef struct ssl_conf_ctx_st SSL_CONF_CTX; -typedef struct ssl_comp_st SSL_COMP; STACK_OF(SSL_CIPHER); -STACK_OF(SSL_COMP); /* SRTP protection profiles for use with the use_srtp extension (RFC 5764)*/ typedef struct srtp_protection_profile_st { @@ -278,28 +280,31 @@ typedef int (*tls_session_secret_cb_fn)(SSL *s, void *secret, int *secret_len, /* Extension context codes */ /* This extension is only allowed in TLS */ -#define SSL_EXT_TLS_ONLY 0x0001 +#define SSL_EXT_TLS_ONLY 0x00001 /* This extension is only allowed in DTLS */ -#define SSL_EXT_DTLS_ONLY 0x0002 +#define SSL_EXT_DTLS_ONLY 0x00002 /* Some extensions may be allowed in DTLS but we don't implement them for it */ -#define SSL_EXT_TLS_IMPLEMENTATION_ONLY 0x0004 +#define SSL_EXT_TLS_IMPLEMENTATION_ONLY 0x00004 /* Most extensions are not defined for SSLv3 but EXT_TYPE_renegotiate is */ -#define SSL_EXT_SSL3_ALLOWED 0x0008 +#define SSL_EXT_SSL3_ALLOWED 0x00008 /* Extension is only defined for TLS1.2 and below */ -#define SSL_EXT_TLS1_2_AND_BELOW_ONLY 0x0010 +#define SSL_EXT_TLS1_2_AND_BELOW_ONLY 0x00010 /* Extension is only defined for TLS1.3 and above */ -#define SSL_EXT_TLS1_3_ONLY 0x0020 +#define SSL_EXT_TLS1_3_ONLY 0x00020 /* Ignore this extension during parsing if we are resuming */ -#define SSL_EXT_IGNORE_ON_RESUMPTION 0x0040 -#define SSL_EXT_CLIENT_HELLO 0x0080 +#define SSL_EXT_IGNORE_ON_RESUMPTION 0x00040 +#define SSL_EXT_CLIENT_HELLO 0x00080 /* Really means TLS1.2 or below */ -#define SSL_EXT_TLS1_2_SERVER_HELLO 0x0100 -#define SSL_EXT_TLS1_3_SERVER_HELLO 0x0200 -#define SSL_EXT_TLS1_3_ENCRYPTED_EXTENSIONS 0x0400 -#define SSL_EXT_TLS1_3_HELLO_RETRY_REQUEST 0x0800 -#define SSL_EXT_TLS1_3_CERTIFICATE 0x1000 -#define SSL_EXT_TLS1_3_NEW_SESSION_TICKET 0x2000 -#define SSL_EXT_TLS1_3_CERTIFICATE_REQUEST 0x4000 +#define SSL_EXT_TLS1_2_SERVER_HELLO 0x00100 +#define SSL_EXT_TLS1_3_SERVER_HELLO 0x00200 +#define SSL_EXT_TLS1_3_ENCRYPTED_EXTENSIONS 0x00400 +#define SSL_EXT_TLS1_3_HELLO_RETRY_REQUEST 0x00800 +#define SSL_EXT_TLS1_3_CERTIFICATE 0x01000 +#define SSL_EXT_TLS1_3_NEW_SESSION_TICKET 0x02000 +#define SSL_EXT_TLS1_3_CERTIFICATE_REQUEST 0x04000 +#define SSL_EXT_TLS1_3_CERTIFICATE_COMPRESSION 0x08000 +/* When sending a raw public key in a certificate message */ +#define SSL_EXT_TLS1_3_RAW_PUBLIC_KEY 0x10000 /* Typedefs for handling custom extensions */ @@ -404,7 +409,7 @@ typedef int (*SSL_async_callback_fn)(SSL *s, void *arg); */ # define SSL_OP_CIPHER_SERVER_PREFERENCE SSL_OP_BIT(22) /* - * If set, a server will allow a client to issue a SSLv3.0 version + * If set, a server will allow a client to issue an SSLv3.0 version * number as latest version supported in the premaster secret, even when * TLSv1.0 (version 3.1) was announced in the client hello. Normally * this is forbidden to prevent version rollback attacks. @@ -430,6 +435,19 @@ typedef int (*SSL_async_callback_fn)(SSL *s, void *arg); * interoperability with CryptoPro CSP 3.x */ # define SSL_OP_CRYPTOPRO_TLSEXT_BUG SSL_OP_BIT(31) +/* + * Disable RFC8879 certificate compression + * SSL_OP_NO_TX_CERTIFICATE_COMPRESSION: don't send compressed certificates, + * and ignore the extension when received. + * SSL_OP_NO_RX_CERTIFICATE_COMPRESSION: don't send the extension, and + * subsequently indicating that receiving is not supported + */ +# define SSL_OP_NO_TX_CERTIFICATE_COMPRESSION SSL_OP_BIT(32) +# define SSL_OP_NO_RX_CERTIFICATE_COMPRESSION SSL_OP_BIT(33) + /* Enable KTLS TX zerocopy on Linux */ +# define SSL_OP_ENABLE_KTLS_TX_ZEROCOPY_SENDFILE SSL_OP_BIT(34) + +#define SSL_OP_PREFER_NO_DHE_KEX SSL_OP_BIT(35) /* * Option "collections." @@ -574,6 +592,8 @@ typedef int (*SSL_async_callback_fn)(SSL *s, void *arg); # define CERT_PKEY_CERT_TYPE 0x400 /* Cert chain suitable to Suite B */ # define CERT_PKEY_SUITEB 0x800 +/* Cert pkey valid for raw public key use */ +# define CERT_PKEY_RPK 0x1000 # define SSL_CONF_FLAG_CMDLINE 0x1 # define SSL_CONF_FLAG_FILE 0x2 @@ -965,6 +985,7 @@ uint32_t SSL_get_recv_max_early_data(const SSL *s); # include /* This is mostly sslv3 with a few tweaks */ # include /* Datagram TLS */ # include /* Support for the use_srtp extension */ +# include #ifdef __cplusplus extern "C" { @@ -1000,32 +1021,6 @@ SKM_DEFINE_STACK_OF_INTERNAL(SSL_CIPHER, const SSL_CIPHER, SSL_CIPHER) #define sk_SSL_CIPHER_dup(sk) ((STACK_OF(SSL_CIPHER) *)OPENSSL_sk_dup(ossl_check_const_SSL_CIPHER_sk_type(sk))) #define sk_SSL_CIPHER_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(SSL_CIPHER) *)OPENSSL_sk_deep_copy(ossl_check_const_SSL_CIPHER_sk_type(sk), ossl_check_SSL_CIPHER_copyfunc_type(copyfunc), ossl_check_SSL_CIPHER_freefunc_type(freefunc))) #define sk_SSL_CIPHER_set_cmp_func(sk, cmp) ((sk_SSL_CIPHER_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_SSL_CIPHER_sk_type(sk), ossl_check_SSL_CIPHER_compfunc_type(cmp))) -SKM_DEFINE_STACK_OF_INTERNAL(SSL_COMP, SSL_COMP, SSL_COMP) -#define sk_SSL_COMP_num(sk) OPENSSL_sk_num(ossl_check_const_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_value(sk, idx) ((SSL_COMP *)OPENSSL_sk_value(ossl_check_const_SSL_COMP_sk_type(sk), (idx))) -#define sk_SSL_COMP_new(cmp) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new(ossl_check_SSL_COMP_compfunc_type(cmp))) -#define sk_SSL_COMP_new_null() ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new_null()) -#define sk_SSL_COMP_new_reserve(cmp, n) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new_reserve(ossl_check_SSL_COMP_compfunc_type(cmp), (n))) -#define sk_SSL_COMP_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_SSL_COMP_sk_type(sk), (n)) -#define sk_SSL_COMP_free(sk) OPENSSL_sk_free(ossl_check_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_zero(sk) OPENSSL_sk_zero(ossl_check_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_delete(sk, i) ((SSL_COMP *)OPENSSL_sk_delete(ossl_check_SSL_COMP_sk_type(sk), (i))) -#define sk_SSL_COMP_delete_ptr(sk, ptr) ((SSL_COMP *)OPENSSL_sk_delete_ptr(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr))) -#define sk_SSL_COMP_push(sk, ptr) OPENSSL_sk_push(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) -#define sk_SSL_COMP_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) -#define sk_SSL_COMP_pop(sk) ((SSL_COMP *)OPENSSL_sk_pop(ossl_check_SSL_COMP_sk_type(sk))) -#define sk_SSL_COMP_shift(sk) ((SSL_COMP *)OPENSSL_sk_shift(ossl_check_SSL_COMP_sk_type(sk))) -#define sk_SSL_COMP_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_SSL_COMP_sk_type(sk),ossl_check_SSL_COMP_freefunc_type(freefunc)) -#define sk_SSL_COMP_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr), (idx)) -#define sk_SSL_COMP_set(sk, idx, ptr) ((SSL_COMP *)OPENSSL_sk_set(ossl_check_SSL_COMP_sk_type(sk), (idx), ossl_check_SSL_COMP_type(ptr))) -#define sk_SSL_COMP_find(sk, ptr) OPENSSL_sk_find(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) -#define sk_SSL_COMP_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) -#define sk_SSL_COMP_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr), pnum) -#define sk_SSL_COMP_sort(sk) OPENSSL_sk_sort(ossl_check_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_dup(sk) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_dup(ossl_check_const_SSL_COMP_sk_type(sk))) -#define sk_SSL_COMP_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_deep_copy(ossl_check_const_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_copyfunc_type(copyfunc), ossl_check_SSL_COMP_freefunc_type(freefunc))) -#define sk_SSL_COMP_set_cmp_func(sk, cmp) ((sk_SSL_COMP_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_compfunc_type(cmp))) /* compatibility */ @@ -1066,6 +1061,7 @@ typedef enum { DTLS_ST_CR_HELLO_VERIFY_REQUEST, TLS_ST_CR_SRVR_HELLO, TLS_ST_CR_CERT, + TLS_ST_CR_COMP_CERT, TLS_ST_CR_CERT_STATUS, TLS_ST_CR_KEY_EXCH, TLS_ST_CR_CERT_REQ, @@ -1075,6 +1071,7 @@ typedef enum { TLS_ST_CR_FINISHED, TLS_ST_CW_CLNT_HELLO, TLS_ST_CW_CERT, + TLS_ST_CW_COMP_CERT, TLS_ST_CW_KEY_EXCH, TLS_ST_CW_CERT_VRFY, TLS_ST_CW_CHANGE, @@ -1085,10 +1082,12 @@ typedef enum { DTLS_ST_SW_HELLO_VERIFY_REQUEST, TLS_ST_SW_SRVR_HELLO, TLS_ST_SW_CERT, + TLS_ST_SW_COMP_CERT, TLS_ST_SW_KEY_EXCH, TLS_ST_SW_CERT_REQ, TLS_ST_SW_SRVR_DONE, TLS_ST_SR_CERT, + TLS_ST_SR_COMP_CERT, TLS_ST_SR_KEY_EXCH, TLS_ST_SR_CERT_VRFY, TLS_ST_SR_NEXT_PROTO, @@ -1380,9 +1379,13 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) # define SSL_CTRL_GET_SIGNATURE_NID 132 # define SSL_CTRL_GET_TMP_KEY 133 # define SSL_CTRL_GET_NEGOTIATED_GROUP 134 +# define SSL_CTRL_GET_IANA_GROUPS 135 # define SSL_CTRL_SET_RETRY_VERIFY 136 # define SSL_CTRL_GET_VERIFY_CERT_STORE 137 # define SSL_CTRL_GET_CHAIN_CERT_STORE 138 +# define SSL_CTRL_GET0_IMPLEMENTED_GROUPS 139 +# define SSL_CTRL_GET_SIGNATURE_NAME 140 +# define SSL_CTRL_GET_PEER_SIGNATURE_NAME 141 # define SSL_CERT_SET_FIRST 1 # define SSL_CERT_SET_NEXT 2 # define SSL_CERT_SET_SERVER 3 @@ -1485,10 +1488,15 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) # define SSL_get1_groups(s, glist) \ SSL_ctrl(s,SSL_CTRL_GET_GROUPS,0,(int*)(glist)) +# define SSL_get0_iana_groups(s, plst) \ + SSL_ctrl(s,SSL_CTRL_GET_IANA_GROUPS,0,(uint16_t **)(plst)) # define SSL_CTX_set1_groups(ctx, glist, glistlen) \ SSL_CTX_ctrl(ctx,SSL_CTRL_SET_GROUPS,glistlen,(int *)(glist)) # define SSL_CTX_set1_groups_list(ctx, s) \ SSL_CTX_ctrl(ctx,SSL_CTRL_SET_GROUPS_LIST,0,(char *)(s)) +# define SSL_CTX_get0_implemented_groups(ctx, all, out) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_GET0_IMPLEMENTED_GROUPS, all, \ + (STACK_OF(OPENSSL_CSTRING) *)(out)) # define SSL_set1_groups(s, glist, glistlen) \ SSL_ctrl(s,SSL_CTRL_SET_GROUPS,glistlen,(char *)(glist)) # define SSL_set1_groups_list(s, str) \ @@ -1520,8 +1528,12 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) (char *)(clist)) # define SSL_set1_client_certificate_types(s, clist, clistlen) \ SSL_ctrl(s,SSL_CTRL_SET_CLIENT_CERT_TYPES,clistlen,(char *)(clist)) +# define SSL_get0_signature_name(s, str) \ + SSL_ctrl(s,SSL_CTRL_GET_SIGNATURE_NAME,0,(1?(str):(const char **)NULL)) # define SSL_get_signature_nid(s, pn) \ SSL_ctrl(s,SSL_CTRL_GET_SIGNATURE_NID,0,pn) +# define SSL_get0_peer_signature_name(s, str) \ + SSL_ctrl(s,SSL_CTRL_GET_PEER_SIGNATURE_NAME,0,(1?(str):(const char **)NULL)) # define SSL_get_peer_signature_nid(s, pn) \ SSL_ctrl(s,SSL_CTRL_GET_PEER_SIGNATURE_NID,0,pn) # define SSL_get_peer_tmp_key(s, pk) \ @@ -1549,6 +1561,7 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) # define SSL_get_max_proto_version(s) \ SSL_ctrl(s, SSL_CTRL_GET_MAX_PROTO_VERSION, 0, NULL) +const char *SSL_get0_group_name(SSL *s); const char *SSL_group_to_name(SSL *s, int id); /* Backwards compatibility, original 1.1.0 names */ @@ -1613,7 +1626,11 @@ void SSL_CTX_set1_cert_store(SSL_CTX *, X509_STORE *); __owur int SSL_want(const SSL *s); __owur int SSL_clear(SSL *s); +#ifndef OPENSSL_NO_DEPRECATED_3_4 +OSSL_DEPRECATEDIN_3_4_FOR("not Y2038-safe, replace with SSL_CTX_flush_sessions_ex()") void SSL_CTX_flush_sessions(SSL_CTX *ctx, long tm); +#endif +void SSL_CTX_flush_sessions_ex(SSL_CTX *ctx, time_t tm); __owur const SSL_CIPHER *SSL_get_current_cipher(const SSL *s); __owur const SSL_CIPHER *SSL_get_pending_cipher(const SSL *s); @@ -1725,13 +1742,21 @@ __owur const char *SSL_state_string(const SSL *s); __owur const char *SSL_rstate_string(const SSL *s); __owur const char *SSL_state_string_long(const SSL *s); __owur const char *SSL_rstate_string_long(const SSL *s); + +#ifndef OPENSSL_NO_DEPRECATED_3_4 +OSSL_DEPRECATEDIN_3_4_FOR("not Y2038-safe, replace with SSL_SESSION_get_time_ex()") __owur long SSL_SESSION_get_time(const SSL_SESSION *s); +OSSL_DEPRECATEDIN_3_4_FOR("not Y2038-safe, replace with SSL_SESSION_set_time_ex()") __owur long SSL_SESSION_set_time(SSL_SESSION *s, long t); +#endif __owur long SSL_SESSION_get_timeout(const SSL_SESSION *s); __owur long SSL_SESSION_set_timeout(SSL_SESSION *s, long t); __owur int SSL_SESSION_get_protocol_version(const SSL_SESSION *s); __owur int SSL_SESSION_set_protocol_version(SSL_SESSION *s, int version); +__owur time_t SSL_SESSION_get_time_ex(const SSL_SESSION *s); +__owur time_t SSL_SESSION_set_time_ex(SSL_SESSION *s, time_t t); + __owur const char *SSL_SESSION_get0_hostname(const SSL_SESSION *s); __owur int SSL_SESSION_set1_hostname(SSL_SESSION *s, const char *hostname); void SSL_SESSION_get0_alpn_selected(const SSL_SESSION *s, @@ -1783,6 +1808,9 @@ __owur int SSL_has_matching_session_id(const SSL *s, unsigned int id_len); SSL_SESSION *d2i_SSL_SESSION(SSL_SESSION **a, const unsigned char **pp, long length); +SSL_SESSION *d2i_SSL_SESSION_ex(SSL_SESSION **a, const unsigned char **pp, + long length, OSSL_LIB_CTX *libctx, + const char *propq); # ifdef OPENSSL_X509_H __owur X509 *SSL_get0_peer_certificate(const SSL *s); @@ -1840,6 +1868,8 @@ __owur int SSL_CTX_set_session_id_context(SSL_CTX *ctx, SSL *SSL_new(SSL_CTX *ctx); int SSL_up_ref(SSL *s); int SSL_is_dtls(const SSL *s); +int SSL_is_tls(const SSL *s); +int SSL_is_quic(const SSL *s); __owur int SSL_set_session_id_context(SSL *ssl, const unsigned char *sid_ctx, unsigned int sid_ctx_len); @@ -1848,8 +1878,8 @@ __owur int SSL_set_purpose(SSL *ssl, int purpose); __owur int SSL_CTX_set_trust(SSL_CTX *ctx, int trust); __owur int SSL_set_trust(SSL *ssl, int trust); -__owur int SSL_set1_host(SSL *s, const char *hostname); -__owur int SSL_add1_host(SSL *s, const char *hostname); +__owur int SSL_set1_host(SSL *s, const char *host); +__owur int SSL_add1_host(SSL *s, const char *host); __owur const char *SSL_get0_peername(SSL *s); void SSL_set_hostflags(SSL *s, unsigned int flags); @@ -1924,6 +1954,11 @@ OSSL_DEPRECATEDIN_3_0 __owur char *SSL_get_srp_userinfo(SSL *s); typedef int (*SSL_client_hello_cb_fn) (SSL *s, int *al, void *arg); void SSL_CTX_set_client_hello_cb(SSL_CTX *c, SSL_client_hello_cb_fn cb, void *arg); +typedef int (*SSL_new_pending_conn_cb_fn) (SSL_CTX *ctx, SSL *new_ssl, + void *arg); +void SSL_CTX_set_new_pending_conn_cb(SSL_CTX *c, SSL_new_pending_conn_cb_fn cb, + void *arg); + int SSL_client_hello_isv2(SSL *s); unsigned int SSL_client_hello_get0_legacy_version(SSL *s); size_t SSL_client_hello_get0_random(SSL *s, const unsigned char **out); @@ -1932,6 +1967,8 @@ size_t SSL_client_hello_get0_ciphers(SSL *s, const unsigned char **out); size_t SSL_client_hello_get0_compression_methods(SSL *s, const unsigned char **out); int SSL_client_hello_get1_extensions_present(SSL *s, int **out, size_t *outlen); +int SSL_client_hello_get_extension_order(SSL *s, uint16_t *exts, + size_t *num_exts); int SSL_client_hello_get0_ext(SSL *s, unsigned int type, const unsigned char **out, size_t *outlen); @@ -1978,6 +2015,12 @@ long SSL_callback_ctrl(SSL *, int, void (*)(void)); long SSL_CTX_ctrl(SSL_CTX *ctx, int cmd, long larg, void *parg); long SSL_CTX_callback_ctrl(SSL_CTX *, int, void (*)(void)); +# define SSL_WRITE_FLAG_CONCLUDE (1U << 0) + +__owur int SSL_write_ex2(SSL *s, const void *buf, size_t num, + uint64_t flags, + size_t *written); + # define SSL_EARLY_DATA_NOT_SENT 0 # define SSL_EARLY_DATA_REJECTED 1 # define SSL_EARLY_DATA_ACCEPTED 2 @@ -1986,6 +2029,7 @@ __owur int SSL_get_early_data_status(const SSL *s); __owur int SSL_get_error(const SSL *s, int ret_code); __owur const char *SSL_get_version(const SSL *s); +__owur int SSL_get_handshake_rtt(const SSL *s, uint64_t *rtt); /* This sets the 'default' SSL version that SSL_new() will create */ # ifndef OPENSSL_NO_DEPRECATED_3_0 @@ -2281,6 +2325,8 @@ void SSL_CTX_set_record_padding_callback(SSL_CTX *ctx, void SSL_CTX_set_record_padding_callback_arg(SSL_CTX *ctx, void *arg); void *SSL_CTX_get_record_padding_callback_arg(const SSL_CTX *ctx); int SSL_CTX_set_block_padding(SSL_CTX *ctx, size_t block_size); +int SSL_CTX_set_block_padding_ex(SSL_CTX *ctx, size_t app_block_size, + size_t hs_block_size); int SSL_set_record_padding_callback(SSL *ssl, size_t (*cb) (SSL *ssl, int type, @@ -2288,12 +2334,255 @@ int SSL_set_record_padding_callback(SSL *ssl, void SSL_set_record_padding_callback_arg(SSL *ssl, void *arg); void *SSL_get_record_padding_callback_arg(const SSL *ssl); int SSL_set_block_padding(SSL *ssl, size_t block_size); - +int SSL_set_block_padding_ex(SSL *ssl, size_t app_block_size, + size_t hs_block_size); int SSL_set_num_tickets(SSL *s, size_t num_tickets); size_t SSL_get_num_tickets(const SSL *s); int SSL_CTX_set_num_tickets(SSL_CTX *ctx, size_t num_tickets); size_t SSL_CTX_get_num_tickets(const SSL_CTX *ctx); +/* QUIC support */ +int SSL_handle_events(SSL *s); +__owur int SSL_get_event_timeout(SSL *s, struct timeval *tv, int *is_infinite); +__owur int SSL_get_rpoll_descriptor(SSL *s, BIO_POLL_DESCRIPTOR *desc); +__owur int SSL_get_wpoll_descriptor(SSL *s, BIO_POLL_DESCRIPTOR *desc); +__owur int SSL_net_read_desired(SSL *s); +__owur int SSL_net_write_desired(SSL *s); +__owur int SSL_set_blocking_mode(SSL *s, int blocking); +__owur int SSL_get_blocking_mode(SSL *s); +__owur int SSL_set1_initial_peer_addr(SSL *s, const BIO_ADDR *peer_addr); +__owur SSL *SSL_get0_connection(SSL *s); +__owur int SSL_is_connection(SSL *s); + +__owur int SSL_is_listener(SSL *ssl); +__owur SSL *SSL_get0_listener(SSL *s); +#define SSL_LISTENER_FLAG_NO_VALIDATE (1UL << 1) +__owur SSL *SSL_new_listener(SSL_CTX *ctx, uint64_t flags); +__owur SSL *SSL_new_listener_from(SSL *ssl, uint64_t flags); +__owur SSL *SSL_new_from_listener(SSL *ssl, uint64_t flags); +#define SSL_ACCEPT_CONNECTION_NO_BLOCK (1UL << 0) +__owur SSL *SSL_accept_connection(SSL *ssl, uint64_t flags); +__owur size_t SSL_get_accept_connection_queue_len(SSL *ssl); +__owur int SSL_listen(SSL *ssl); + +__owur int SSL_is_domain(SSL *s); +__owur SSL *SSL_get0_domain(SSL *s); +__owur SSL *SSL_new_domain(SSL_CTX *ctx, uint64_t flags); + +#define SSL_DOMAIN_FLAG_SINGLE_THREAD (1U << 0) +#define SSL_DOMAIN_FLAG_MULTI_THREAD (1U << 1) +#define SSL_DOMAIN_FLAG_THREAD_ASSISTED (1U << 2) +#define SSL_DOMAIN_FLAG_BLOCKING (1U << 3) +#define SSL_DOMAIN_FLAG_LEGACY_BLOCKING (1U << 4) + +__owur int SSL_CTX_set_domain_flags(SSL_CTX *ctx, uint64_t domain_flags); +__owur int SSL_CTX_get_domain_flags(const SSL_CTX *ctx, uint64_t *domain_flags); +__owur int SSL_get_domain_flags(const SSL *ssl, uint64_t *domain_flags); + +#define SSL_STREAM_TYPE_NONE 0 +#define SSL_STREAM_TYPE_READ (1U << 0) +#define SSL_STREAM_TYPE_WRITE (1U << 1) +#define SSL_STREAM_TYPE_BIDI (SSL_STREAM_TYPE_READ | SSL_STREAM_TYPE_WRITE) +__owur int SSL_get_stream_type(SSL *s); + +__owur uint64_t SSL_get_stream_id(SSL *s); +__owur int SSL_is_stream_local(SSL *s); + +#define SSL_DEFAULT_STREAM_MODE_NONE 0 +#define SSL_DEFAULT_STREAM_MODE_AUTO_BIDI 1 +#define SSL_DEFAULT_STREAM_MODE_AUTO_UNI 2 +__owur int SSL_set_default_stream_mode(SSL *s, uint32_t mode); + +#define SSL_STREAM_FLAG_UNI (1U << 0) +#define SSL_STREAM_FLAG_NO_BLOCK (1U << 1) +#define SSL_STREAM_FLAG_ADVANCE (1U << 2) +__owur SSL *SSL_new_stream(SSL *s, uint64_t flags); + +#define SSL_INCOMING_STREAM_POLICY_AUTO 0 +#define SSL_INCOMING_STREAM_POLICY_ACCEPT 1 +#define SSL_INCOMING_STREAM_POLICY_REJECT 2 +__owur int SSL_set_incoming_stream_policy(SSL *s, int policy, uint64_t aec); + +#define SSL_ACCEPT_STREAM_NO_BLOCK (1U << 0) +__owur SSL *SSL_accept_stream(SSL *s, uint64_t flags); +__owur size_t SSL_get_accept_stream_queue_len(SSL *s); + +# ifndef OPENSSL_NO_QUIC +__owur int SSL_inject_net_dgram(SSL *s, const unsigned char *buf, + size_t buf_len, + const BIO_ADDR *peer, + const BIO_ADDR *local); +# endif + +typedef struct ssl_shutdown_ex_args_st { + uint64_t quic_error_code; + const char *quic_reason; +} SSL_SHUTDOWN_EX_ARGS; + +#define SSL_SHUTDOWN_FLAG_RAPID (1U << 0) +#define SSL_SHUTDOWN_FLAG_NO_STREAM_FLUSH (1U << 1) +#define SSL_SHUTDOWN_FLAG_NO_BLOCK (1U << 2) +#define SSL_SHUTDOWN_FLAG_WAIT_PEER (1U << 3) + +__owur int SSL_shutdown_ex(SSL *ssl, uint64_t flags, + const SSL_SHUTDOWN_EX_ARGS *args, + size_t args_len); + +__owur int SSL_stream_conclude(SSL *ssl, uint64_t flags); + +typedef struct ssl_stream_reset_args_st { + uint64_t quic_error_code; +} SSL_STREAM_RESET_ARGS; + +__owur int SSL_stream_reset(SSL *ssl, + const SSL_STREAM_RESET_ARGS *args, + size_t args_len); + +#define SSL_STREAM_STATE_NONE 0 +#define SSL_STREAM_STATE_OK 1 +#define SSL_STREAM_STATE_WRONG_DIR 2 +#define SSL_STREAM_STATE_FINISHED 3 +#define SSL_STREAM_STATE_RESET_LOCAL 4 +#define SSL_STREAM_STATE_RESET_REMOTE 5 +#define SSL_STREAM_STATE_CONN_CLOSED 6 +__owur int SSL_get_stream_read_state(SSL *ssl); +__owur int SSL_get_stream_write_state(SSL *ssl); + +__owur int SSL_get_stream_read_error_code(SSL *ssl, uint64_t *app_error_code); +__owur int SSL_get_stream_write_error_code(SSL *ssl, uint64_t *app_error_code); + +#define SSL_CONN_CLOSE_FLAG_LOCAL (1U << 0) +#define SSL_CONN_CLOSE_FLAG_TRANSPORT (1U << 1) + +typedef struct ssl_conn_close_info_st { + uint64_t error_code, frame_type; + const char *reason; + size_t reason_len; + uint32_t flags; +} SSL_CONN_CLOSE_INFO; + +__owur int SSL_get_conn_close_info(SSL *ssl, + SSL_CONN_CLOSE_INFO *info, + size_t info_len); + +# define SSL_VALUE_CLASS_GENERIC 0 +# define SSL_VALUE_CLASS_FEATURE_REQUEST 1 +# define SSL_VALUE_CLASS_FEATURE_PEER_REQUEST 2 +# define SSL_VALUE_CLASS_FEATURE_NEGOTIATED 3 + +# define SSL_VALUE_NONE 0 +# define SSL_VALUE_QUIC_STREAM_BIDI_LOCAL_AVAIL 1 +# define SSL_VALUE_QUIC_STREAM_BIDI_REMOTE_AVAIL 2 +# define SSL_VALUE_QUIC_STREAM_UNI_LOCAL_AVAIL 3 +# define SSL_VALUE_QUIC_STREAM_UNI_REMOTE_AVAIL 4 +# define SSL_VALUE_QUIC_IDLE_TIMEOUT 5 +# define SSL_VALUE_EVENT_HANDLING_MODE 6 +# define SSL_VALUE_STREAM_WRITE_BUF_SIZE 7 +# define SSL_VALUE_STREAM_WRITE_BUF_USED 8 +# define SSL_VALUE_STREAM_WRITE_BUF_AVAIL 9 + +# define SSL_VALUE_EVENT_HANDLING_MODE_INHERIT 0 +# define SSL_VALUE_EVENT_HANDLING_MODE_IMPLICIT 1 +# define SSL_VALUE_EVENT_HANDLING_MODE_EXPLICIT 2 + +int SSL_get_value_uint(SSL *s, uint32_t class_, uint32_t id, uint64_t *v); +int SSL_set_value_uint(SSL *s, uint32_t class_, uint32_t id, uint64_t v); + +# define SSL_get_generic_value_uint(ssl, id, v) \ + SSL_get_value_uint((ssl), SSL_VALUE_CLASS_GENERIC, (id), (v)) +# define SSL_set_generic_value_uint(ssl, id, v) \ + SSL_set_value_uint((ssl), SSL_VALUE_CLASS_GENERIC, (id), (v)) +# define SSL_get_feature_request_uint(ssl, id, v) \ + SSL_get_value_uint((ssl), SSL_VALUE_CLASS_FEATURE_REQUEST, (id), (v)) +# define SSL_set_feature_request_uint(ssl, id, v) \ + SSL_set_value_uint((ssl), SSL_VALUE_CLASS_FEATURE_REQUEST, (id), (v)) +# define SSL_get_feature_peer_request_uint(ssl, id, v) \ + SSL_get_value_uint((ssl), SSL_VALUE_CLASS_FEATURE_PEER_REQUEST, (id), (v)) +# define SSL_get_feature_negotiated_uint(ssl, id, v) \ + SSL_get_value_uint((ssl), SSL_VALUE_CLASS_FEATURE_NEGOTIATED, (id), (v)) + +# define SSL_get_quic_stream_bidi_local_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_QUIC_STREAM_BIDI_LOCAL_AVAIL, \ + (value)) +# define SSL_get_quic_stream_bidi_remote_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_QUIC_STREAM_BIDI_REMOTE_AVAIL, \ + (value)) +# define SSL_get_quic_stream_uni_local_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_QUIC_STREAM_UNI_LOCAL_AVAIL, \ + (value)) +# define SSL_get_quic_stream_uni_remote_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_QUIC_STREAM_UNI_REMOTE_AVAIL, \ + (value)) + +# define SSL_get_event_handling_mode(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_EVENT_HANDLING_MODE, \ + (value)) +# define SSL_set_event_handling_mode(ssl, value) \ + SSL_set_generic_value_uint((ssl), SSL_VALUE_EVENT_HANDLING_MODE, \ + (value)) + +# define SSL_get_stream_write_buf_size(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_STREAM_WRITE_BUF_SIZE, \ + (value)) +# define SSL_get_stream_write_buf_used(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_STREAM_WRITE_BUF_USED, \ + (value)) +# define SSL_get_stream_write_buf_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_STREAM_WRITE_BUF_AVAIL, \ + (value)) + +# define SSL_POLL_EVENT_NONE 0 + +# define SSL_POLL_EVENT_F (1U << 0) /* F (Failure) */ +# define SSL_POLL_EVENT_EL (1U << 1) /* EL (Exception on Listener) */ +# define SSL_POLL_EVENT_EC (1U << 2) /* EC (Exception on Conn) */ +# define SSL_POLL_EVENT_ECD (1U << 3) /* ECD (Exception on Conn Drained) */ +# define SSL_POLL_EVENT_ER (1U << 4) /* ER (Exception on Read) */ +# define SSL_POLL_EVENT_EW (1U << 5) /* EW (Exception on Write) */ +# define SSL_POLL_EVENT_R (1U << 6) /* R (Readable) */ +# define SSL_POLL_EVENT_W (1U << 7) /* W (Writable) */ +# define SSL_POLL_EVENT_IC (1U << 8) /* IC (Incoming Connection) */ +# define SSL_POLL_EVENT_ISB (1U << 9) /* ISB (Incoming Stream: Bidi) */ +# define SSL_POLL_EVENT_ISU (1U << 10) /* ISU (Incoming Stream: Uni) */ +# define SSL_POLL_EVENT_OSB (1U << 11) /* OSB (Outgoing Stream: Bidi) */ +# define SSL_POLL_EVENT_OSU (1U << 12) /* OSU (Outgoing Stream: Uni) */ + +# define SSL_POLL_EVENT_RW (SSL_POLL_EVENT_R | SSL_POLL_EVENT_W) +# define SSL_POLL_EVENT_RE (SSL_POLL_EVENT_R | SSL_POLL_EVENT_ER) +# define SSL_POLL_EVENT_WE (SSL_POLL_EVENT_W | SSL_POLL_EVENT_EW) +# define SSL_POLL_EVENT_RWE (SSL_POLL_EVENT_RE | SSL_POLL_EVENT_WE) +# define SSL_POLL_EVENT_E (SSL_POLL_EVENT_EL | SSL_POLL_EVENT_EC \ + | SSL_POLL_EVENT_ER | SSL_POLL_EVENT_EW) +# define SSL_POLL_EVENT_IS (SSL_POLL_EVENT_ISB | SSL_POLL_EVENT_ISU) +# define SSL_POLL_EVENT_ISE (SSL_POLL_EVENT_IS | SSL_POLL_EVENT_EC) +# define SSL_POLL_EVENT_I (SSL_POLL_EVENT_IS | SSL_POLL_EVENT_IC) +# define SSL_POLL_EVENT_OS (SSL_POLL_EVENT_OSB | SSL_POLL_EVENT_OSU) +# define SSL_POLL_EVENT_OSE (SSL_POLL_EVENT_OS | SSL_POLL_EVENT_EC) + +typedef struct ssl_poll_item_st { + BIO_POLL_DESCRIPTOR desc; + uint64_t events, revents; +} SSL_POLL_ITEM; + +# define SSL_POLL_FLAG_NO_HANDLE_EVENTS (1U << 0) + +__owur int SSL_poll(SSL_POLL_ITEM *items, + size_t num_items, + size_t stride, + const struct timeval *timeout, + uint64_t flags, + size_t *result_count); + +static ossl_inline ossl_unused BIO_POLL_DESCRIPTOR +SSL_as_poll_descriptor(SSL *s) +{ + BIO_POLL_DESCRIPTOR d; + + d.type = BIO_POLL_DESCRIPTOR_TYPE_SSL; + d.value.ssl = s; + return d; +} + # ifndef OPENSSL_NO_DEPRECATED_1_1_0 # define SSL_cache_hit(s) SSL_session_reused(s) # endif @@ -2593,6 +2882,51 @@ void SSL_set_allow_early_data_cb(SSL *s, const char *OSSL_default_cipher_list(void); const char *OSSL_default_ciphersuites(void); +/* RFC8879 Certificate compression APIs */ + +int SSL_CTX_compress_certs(SSL_CTX *ctx, int alg); +int SSL_compress_certs(SSL *ssl, int alg); + +int SSL_CTX_set1_cert_comp_preference(SSL_CTX *ctx, int *algs, size_t len); +int SSL_set1_cert_comp_preference(SSL *ssl, int *algs, size_t len); + +int SSL_CTX_set1_compressed_cert(SSL_CTX *ctx, int algorithm, unsigned char *comp_data, + size_t comp_length, size_t orig_length); +int SSL_set1_compressed_cert(SSL *ssl, int algorithm, unsigned char *comp_data, + size_t comp_length, size_t orig_length); +size_t SSL_CTX_get1_compressed_cert(SSL_CTX *ctx, int alg, unsigned char **data, size_t *orig_len); +size_t SSL_get1_compressed_cert(SSL *ssl, int alg, unsigned char **data, size_t *orig_len); + +__owur int SSL_add_expected_rpk(SSL *s, EVP_PKEY *rpk); +__owur EVP_PKEY *SSL_get0_peer_rpk(const SSL *s); +__owur EVP_PKEY *SSL_SESSION_get0_peer_rpk(SSL_SESSION *s); +__owur int SSL_get_negotiated_client_cert_type(const SSL *s); +__owur int SSL_get_negotiated_server_cert_type(const SSL *s); + +__owur int SSL_set1_client_cert_type(SSL *s, const unsigned char *val, size_t len); +__owur int SSL_set1_server_cert_type(SSL *s, const unsigned char *val, size_t len); +__owur int SSL_CTX_set1_client_cert_type(SSL_CTX *ctx, const unsigned char *val, size_t len); +__owur int SSL_CTX_set1_server_cert_type(SSL_CTX *ctx, const unsigned char *val, size_t len); +__owur int SSL_get0_client_cert_type(const SSL *s, unsigned char **t, size_t *len); +__owur int SSL_get0_server_cert_type(const SSL *s, unsigned char **t, size_t *len); +__owur int SSL_CTX_get0_client_cert_type(const SSL_CTX *ctx, unsigned char **t, size_t *len); +__owur int SSL_CTX_get0_server_cert_type(const SSL_CTX *s, unsigned char **t, size_t *len); + +/* + * Protection level. For <= TLSv1.2 only "NONE" and "APPLICATION" are used. + */ +# define OSSL_RECORD_PROTECTION_LEVEL_NONE 0 +# define OSSL_RECORD_PROTECTION_LEVEL_EARLY 1 +# define OSSL_RECORD_PROTECTION_LEVEL_HANDSHAKE 2 +# define OSSL_RECORD_PROTECTION_LEVEL_APPLICATION 3 + +int SSL_set_quic_tls_cbs(SSL *s, const OSSL_DISPATCH *qtdis, void *arg); +int SSL_set_quic_tls_transport_params(SSL *s, + const unsigned char *params, + size_t params_len); + +int SSL_set_quic_tls_early_data_enabled(SSL *s, int enabled); + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/darwin-i386-cc/asm/include/openssl/x509.h b/deps/openssl/config/archs/darwin-i386-cc/asm/include/openssl/x509.h index 1f7755e5b69c75..d013458c226461 100644 --- a/deps/openssl/config/archs/darwin-i386-cc/asm/include/openssl/x509.h +++ b/deps/openssl/config/archs/darwin-i386-cc/asm/include/openssl/x509.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/x509.h.in * - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2024 The OpenSSL Project Authors. All Rights Reserved. * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved * * Licensed under the Apache License 2.0 (the "License"). You may not use @@ -40,6 +40,9 @@ # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -162,16 +165,24 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_CRL, X509_CRL, X509_CRL) # define X509_FILETYPE_ASN1 2 # define X509_FILETYPE_DEFAULT 3 -# define X509v3_KU_DIGITAL_SIGNATURE 0x0080 -# define X509v3_KU_NON_REPUDIATION 0x0040 -# define X509v3_KU_KEY_ENCIPHERMENT 0x0020 -# define X509v3_KU_DATA_ENCIPHERMENT 0x0010 -# define X509v3_KU_KEY_AGREEMENT 0x0008 -# define X509v3_KU_KEY_CERT_SIGN 0x0004 -# define X509v3_KU_CRL_SIGN 0x0002 -# define X509v3_KU_ENCIPHER_ONLY 0x0001 -# define X509v3_KU_DECIPHER_ONLY 0x8000 -# define X509v3_KU_UNDEF 0xffff +/*- + * : + * The KeyUsage BITSTRING is treated as a little-endian integer, hence bit `0` + * is 0x80, while bit `7` is 0x01 (the LSB of the integer value), bit `8` is + * then the MSB of the second octet, or 0x8000. + */ +# define X509v3_KU_DIGITAL_SIGNATURE 0x0080 /* (0) */ +# define X509v3_KU_NON_REPUDIATION 0x0040 /* (1) */ +# define X509v3_KU_KEY_ENCIPHERMENT 0x0020 /* (2) */ +# define X509v3_KU_DATA_ENCIPHERMENT 0x0010 /* (3) */ +# define X509v3_KU_KEY_AGREEMENT 0x0008 /* (4) */ +# define X509v3_KU_KEY_CERT_SIGN 0x0004 /* (5) */ +# define X509v3_KU_CRL_SIGN 0x0002 /* (6) */ +# define X509v3_KU_ENCIPHER_ONLY 0x0001 /* (7) */ +# define X509v3_KU_DECIPHER_ONLY 0x8000 /* (8) */ +# ifndef OPENSSL_NO_DEPRECATED_3_4 +# define X509v3_KU_UNDEF 0xffff /* vestigial, not used */ +# endif struct X509_algor_st { ASN1_OBJECT *algorithm; @@ -462,7 +473,12 @@ typedef struct PBKDF2PARAM_st { X509_ALGOR *prf; } PBKDF2PARAM; -#ifndef OPENSSL_NO_SCRYPT +typedef struct { + X509_ALGOR *keyDerivationFunc; + X509_ALGOR *messageAuthScheme; +} PBMAC1PARAM; + +# ifndef OPENSSL_NO_SCRYPT typedef struct SCRYPT_PARAMS_st { ASN1_OCTET_STRING *salt; ASN1_INTEGER *costParameter; @@ -470,7 +486,7 @@ typedef struct SCRYPT_PARAMS_st { ASN1_INTEGER *parallelizationParameter; ASN1_INTEGER *keyLength; } SCRYPT_PARAMS; -#endif +# endif #ifdef __cplusplus } @@ -603,6 +619,8 @@ EVP_PKEY *d2i_PrivateKey_ex_fp(FILE *fp, EVP_PKEY **a, OSSL_LIB_CTX *libctx, const char *propq); EVP_PKEY *d2i_PrivateKey_fp(FILE *fp, EVP_PKEY **a); int i2d_PUBKEY_fp(FILE *fp, const EVP_PKEY *pkey); +EVP_PKEY *d2i_PUBKEY_ex_fp(FILE *fp, EVP_PKEY **a, OSSL_LIB_CTX *libctx, + const char *propq); EVP_PKEY *d2i_PUBKEY_fp(FILE *fp, EVP_PKEY **a); # endif @@ -651,6 +669,8 @@ EVP_PKEY *d2i_PrivateKey_ex_bio(BIO *bp, EVP_PKEY **a, OSSL_LIB_CTX *libctx, const char *propq); EVP_PKEY *d2i_PrivateKey_bio(BIO *bp, EVP_PKEY **a); int i2d_PUBKEY_bio(BIO *bp, const EVP_PKEY *pkey); +EVP_PKEY *d2i_PUBKEY_ex_bio(BIO *bp, EVP_PKEY **a, OSSL_LIB_CTX *libctx, + const char *propq); EVP_PKEY *d2i_PUBKEY_bio(BIO *bp, EVP_PKEY **a); DECLARE_ASN1_DUP_FUNCTION(X509) @@ -884,12 +904,12 @@ int X509_REQ_get_signature_nid(const X509_REQ *req); int i2d_re_X509_REQ_tbs(X509_REQ *req, unsigned char **pp); int X509_REQ_set_pubkey(X509_REQ *x, EVP_PKEY *pkey); EVP_PKEY *X509_REQ_get_pubkey(X509_REQ *req); -EVP_PKEY *X509_REQ_get0_pubkey(X509_REQ *req); +EVP_PKEY *X509_REQ_get0_pubkey(const X509_REQ *req); X509_PUBKEY *X509_REQ_get_X509_PUBKEY(X509_REQ *req); int X509_REQ_extension_nid(int nid); int *X509_REQ_get_extension_nids(void); void X509_REQ_set_extension_nids(int *nids); -STACK_OF(X509_EXTENSION) *X509_REQ_get_extensions(X509_REQ *req); +STACK_OF(X509_EXTENSION) *X509_REQ_get_extensions(OSSL_FUTURE_CONST X509_REQ *req); int X509_REQ_add_extensions_nid(X509_REQ *req, const STACK_OF(X509_EXTENSION) *exts, int nid); int X509_REQ_add_extensions(X509_REQ *req, const STACK_OF(X509_EXTENSION) *ext); @@ -950,13 +970,14 @@ X509_REVOKED_get0_extensions(const X509_REVOKED *r); X509_CRL *X509_CRL_diff(X509_CRL *base, X509_CRL *newer, EVP_PKEY *skey, const EVP_MD *md, unsigned int flags); -int X509_REQ_check_private_key(X509_REQ *x509, EVP_PKEY *pkey); +int X509_REQ_check_private_key(const X509_REQ *req, EVP_PKEY *pkey); -int X509_check_private_key(const X509 *x509, const EVP_PKEY *pkey); +int X509_check_private_key(const X509 *cert, const EVP_PKEY *pkey); int X509_chain_check_suiteb(int *perror_depth, X509 *x, STACK_OF(X509) *chain, unsigned long flags); int X509_CRL_check_suiteb(X509_CRL *crl, EVP_PKEY *pk, unsigned long flags); +void OSSL_STACK_OF_X509_free(STACK_OF(X509) *certs); STACK_OF(X509) *X509_chain_up_ref(STACK_OF(X509) *chain); int X509_issuer_and_serial_cmp(const X509 *a, const X509 *b); @@ -1077,6 +1098,8 @@ X509_EXTENSION *X509v3_get_ext(const STACK_OF(X509_EXTENSION) *x, int loc); X509_EXTENSION *X509v3_delete_ext(STACK_OF(X509_EXTENSION) *x, int loc); STACK_OF(X509_EXTENSION) *X509v3_add_ext(STACK_OF(X509_EXTENSION) **x, X509_EXTENSION *ex, int loc); +STACK_OF(X509_EXTENSION) *X509v3_add_extensions(STACK_OF(X509_EXTENSION) **target, + const STACK_OF(X509_EXTENSION) *exts); int X509_get_ext_count(const X509 *x); int X509_get_ext_by_NID(const X509 *x, int nid, int lastpos); @@ -1198,9 +1221,10 @@ X509 *X509_find_by_subject(STACK_OF(X509) *sk, const X509_NAME *name); DECLARE_ASN1_FUNCTIONS(PBEPARAM) DECLARE_ASN1_FUNCTIONS(PBE2PARAM) DECLARE_ASN1_FUNCTIONS(PBKDF2PARAM) -#ifndef OPENSSL_NO_SCRYPT +DECLARE_ASN1_FUNCTIONS(PBMAC1PARAM) +# ifndef OPENSSL_NO_SCRYPT DECLARE_ASN1_FUNCTIONS(SCRYPT_PARAMS) -#endif +# endif int PKCS5_pbe_set0_algor(X509_ALGOR *algor, int alg, int iter, const unsigned char *salt, int saltlen); @@ -1237,6 +1261,7 @@ X509_ALGOR *PKCS5_pbkdf2_set_ex(int iter, unsigned char *salt, int saltlen, int prf_nid, int keylen, OSSL_LIB_CTX *libctx); +PBKDF2PARAM *PBMAC1_get1_pbkdf2_param(const X509_ALGOR *macalg); /* PKCS#8 utilities */ DECLARE_ASN1_FUNCTIONS(PKCS8_PRIV_KEY_INFO) @@ -1262,6 +1287,8 @@ int PKCS8_pkey_add1_attr_by_OBJ(PKCS8_PRIV_KEY_INFO *p8, const ASN1_OBJECT *obj, int type, const unsigned char *bytes, int len); +void X509_PUBKEY_set0_public_key(X509_PUBKEY *pub, + unsigned char *penc, int penclen); int X509_PUBKEY_set0_param(X509_PUBKEY *pub, ASN1_OBJECT *aobj, int ptype, void *pval, unsigned char *penc, int penclen); diff --git a/deps/openssl/config/archs/darwin-i386-cc/asm/include/openssl/x509_acert.h b/deps/openssl/config/archs/darwin-i386-cc/asm/include/openssl/x509_acert.h new file mode 100644 index 00000000000000..9dde625677f9a9 --- /dev/null +++ b/deps/openssl/config/archs/darwin-i386-cc/asm/include/openssl/x509_acert.h @@ -0,0 +1,294 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from include/openssl/x509_acert.h.in + * + * Copyright 2022-2024 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + + +#ifndef OPENSSL_X509_ACERT_H +# define OPENSSL_X509_ACERT_H +# pragma once + +# include +# include +# include + +typedef struct X509_acert_st X509_ACERT; +typedef struct X509_acert_info_st X509_ACERT_INFO; +typedef struct ossl_object_digest_info_st OSSL_OBJECT_DIGEST_INFO; +typedef struct ossl_issuer_serial_st OSSL_ISSUER_SERIAL; +typedef struct X509_acert_issuer_v2form_st X509_ACERT_ISSUER_V2FORM; + +DECLARE_ASN1_FUNCTIONS(X509_ACERT) +DECLARE_ASN1_DUP_FUNCTION(X509_ACERT) +DECLARE_ASN1_ITEM(X509_ACERT_INFO) +DECLARE_ASN1_ALLOC_FUNCTIONS(X509_ACERT_INFO) +DECLARE_ASN1_ALLOC_FUNCTIONS(OSSL_OBJECT_DIGEST_INFO) +DECLARE_ASN1_ALLOC_FUNCTIONS(OSSL_ISSUER_SERIAL) +DECLARE_ASN1_ALLOC_FUNCTIONS(X509_ACERT_ISSUER_V2FORM) + +# ifndef OPENSSL_NO_STDIO +X509_ACERT *d2i_X509_ACERT_fp(FILE *fp, X509_ACERT **acert); +int i2d_X509_ACERT_fp(FILE *fp, const X509_ACERT *acert); +# endif + +DECLARE_PEM_rw(X509_ACERT, X509_ACERT) + +X509_ACERT *d2i_X509_ACERT_bio(BIO *bp, X509_ACERT **acert); +int i2d_X509_ACERT_bio(BIO *bp, const X509_ACERT *acert); + +int X509_ACERT_sign(X509_ACERT *x, EVP_PKEY *pkey, const EVP_MD *md); +int X509_ACERT_sign_ctx(X509_ACERT *x, EVP_MD_CTX *ctx); +int X509_ACERT_verify(X509_ACERT *a, EVP_PKEY *r); + +# define X509_ACERT_VERSION_2 1 + +const GENERAL_NAMES *X509_ACERT_get0_holder_entityName(const X509_ACERT *x); +const OSSL_ISSUER_SERIAL *X509_ACERT_get0_holder_baseCertId(const X509_ACERT *x); +const OSSL_OBJECT_DIGEST_INFO * X509_ACERT_get0_holder_digest(const X509_ACERT *x); +const X509_NAME *X509_ACERT_get0_issuerName(const X509_ACERT *x); +long X509_ACERT_get_version(const X509_ACERT *x); +void X509_ACERT_get0_signature(const X509_ACERT *x, + const ASN1_BIT_STRING **psig, + const X509_ALGOR **palg); +int X509_ACERT_get_signature_nid(const X509_ACERT *x); +const X509_ALGOR *X509_ACERT_get0_info_sigalg(const X509_ACERT *x); +const ASN1_INTEGER *X509_ACERT_get0_serialNumber(const X509_ACERT *x); +const ASN1_TIME *X509_ACERT_get0_notBefore(const X509_ACERT *x); +const ASN1_TIME *X509_ACERT_get0_notAfter(const X509_ACERT *x); +const ASN1_BIT_STRING *X509_ACERT_get0_issuerUID(const X509_ACERT *x); + +int X509_ACERT_print(BIO *bp, X509_ACERT *x); +int X509_ACERT_print_ex(BIO *bp, X509_ACERT *x, unsigned long nmflags, + unsigned long cflag); + +int X509_ACERT_get_attr_count(const X509_ACERT *x); +int X509_ACERT_get_attr_by_NID(const X509_ACERT *x, int nid, int lastpos); +int X509_ACERT_get_attr_by_OBJ(const X509_ACERT *x, const ASN1_OBJECT *obj, + int lastpos); +X509_ATTRIBUTE *X509_ACERT_get_attr(const X509_ACERT *x, int loc); +X509_ATTRIBUTE *X509_ACERT_delete_attr(X509_ACERT *x, int loc); + +void *X509_ACERT_get_ext_d2i(const X509_ACERT *x, int nid, int *crit, int *idx); +int X509_ACERT_add1_ext_i2d(X509_ACERT *x, int nid, void *value, int crit, + unsigned long flags); +const STACK_OF(X509_EXTENSION) *X509_ACERT_get0_extensions(const X509_ACERT *x); + +# define OSSL_OBJECT_DIGEST_INFO_PUBLIC_KEY 0 +# define OSSL_OBJECT_DIGEST_INFO_PUBLIC_KEY_CERT 1 +# define OSSL_OBJECT_DIGEST_INFO_OTHER 2 /* must not be used in RFC 5755 profile */ +int X509_ACERT_set_version(X509_ACERT *x, long version); +void X509_ACERT_set0_holder_entityName(X509_ACERT *x, GENERAL_NAMES *name); +void X509_ACERT_set0_holder_baseCertId(X509_ACERT *x, OSSL_ISSUER_SERIAL *isss); +void X509_ACERT_set0_holder_digest(X509_ACERT *x, + OSSL_OBJECT_DIGEST_INFO *dinfo); + +int X509_ACERT_add1_attr(X509_ACERT *x, X509_ATTRIBUTE *attr); +int X509_ACERT_add1_attr_by_OBJ(X509_ACERT *x, const ASN1_OBJECT *obj, + int type, const void *bytes, int len); +int X509_ACERT_add1_attr_by_NID(X509_ACERT *x, int nid, int type, + const void *bytes, int len); +int X509_ACERT_add1_attr_by_txt(X509_ACERT *x, const char *attrname, int type, + const unsigned char *bytes, int len); +int X509_ACERT_add_attr_nconf(CONF *conf, const char *section, + X509_ACERT *acert); + +int X509_ACERT_set1_issuerName(X509_ACERT *x, const X509_NAME *name); +int X509_ACERT_set1_serialNumber(X509_ACERT *x, const ASN1_INTEGER *serial); +int X509_ACERT_set1_notBefore(X509_ACERT *x, const ASN1_GENERALIZEDTIME *time); +int X509_ACERT_set1_notAfter(X509_ACERT *x, const ASN1_GENERALIZEDTIME *time); + +void OSSL_OBJECT_DIGEST_INFO_get0_digest(const OSSL_OBJECT_DIGEST_INFO *o, + int *digestedObjectType, + const X509_ALGOR **digestAlgorithm, + const ASN1_BIT_STRING **digest); + +int OSSL_OBJECT_DIGEST_INFO_set1_digest(OSSL_OBJECT_DIGEST_INFO *o, + int digestedObjectType, + X509_ALGOR *digestAlgorithm, + ASN1_BIT_STRING *digest); + +const X509_NAME *OSSL_ISSUER_SERIAL_get0_issuer(const OSSL_ISSUER_SERIAL *isss); +const ASN1_INTEGER *OSSL_ISSUER_SERIAL_get0_serial(const OSSL_ISSUER_SERIAL *isss); +const ASN1_BIT_STRING *OSSL_ISSUER_SERIAL_get0_issuerUID(const OSSL_ISSUER_SERIAL *isss); + +int OSSL_ISSUER_SERIAL_set1_issuer(OSSL_ISSUER_SERIAL *isss, + const X509_NAME *issuer); +int OSSL_ISSUER_SERIAL_set1_serial(OSSL_ISSUER_SERIAL *isss, + const ASN1_INTEGER *serial); +int OSSL_ISSUER_SERIAL_set1_issuerUID(OSSL_ISSUER_SERIAL *isss, + const ASN1_BIT_STRING *uid); + +# define OSSL_IETFAS_OCTETS 0 +# define OSSL_IETFAS_OID 1 +# define OSSL_IETFAS_STRING 2 + +typedef struct OSSL_IETF_ATTR_SYNTAX_VALUE_st OSSL_IETF_ATTR_SYNTAX_VALUE; +typedef struct OSSL_IETF_ATTR_SYNTAX_st OSSL_IETF_ATTR_SYNTAX; +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_IETF_ATTR_SYNTAX_VALUE, OSSL_IETF_ATTR_SYNTAX_VALUE, OSSL_IETF_ATTR_SYNTAX_VALUE) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_value(sk, idx) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_value(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), (idx))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_new(cmp) ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_new(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_compfunc_type(cmp))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_new_null() ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_new_null()) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_new_reserve(cmp, n) ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_compfunc_type(cmp), (n))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), (n)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_free(sk) OPENSSL_sk_free(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_delete(sk, i) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_delete(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), (i))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_delete_ptr(sk, ptr) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_pop(sk) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_pop(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_shift(sk) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_shift(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk),ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_freefunc_type(freefunc)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr), (idx)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_set(sk, idx, ptr) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_set(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), (idx), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr), pnum) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_dup(sk) ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_dup(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_copyfunc_type(copyfunc), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_freefunc_type(freefunc))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_set_cmp_func(sk, cmp) ((sk_OSSL_IETF_ATTR_SYNTAX_VALUE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_compfunc_type(cmp))) + + +DECLARE_ASN1_ITEM(OSSL_IETF_ATTR_SYNTAX_VALUE) +DECLARE_ASN1_ALLOC_FUNCTIONS(OSSL_IETF_ATTR_SYNTAX_VALUE) +DECLARE_ASN1_FUNCTIONS(OSSL_IETF_ATTR_SYNTAX) + +const GENERAL_NAMES * +OSSL_IETF_ATTR_SYNTAX_get0_policyAuthority(const OSSL_IETF_ATTR_SYNTAX *a); +void OSSL_IETF_ATTR_SYNTAX_set0_policyAuthority(OSSL_IETF_ATTR_SYNTAX *a, + GENERAL_NAMES *names); + +int OSSL_IETF_ATTR_SYNTAX_get_value_num(const OSSL_IETF_ATTR_SYNTAX *a); +void *OSSL_IETF_ATTR_SYNTAX_get0_value(const OSSL_IETF_ATTR_SYNTAX *a, + int ind, int *type); +int OSSL_IETF_ATTR_SYNTAX_add1_value(OSSL_IETF_ATTR_SYNTAX *a, int type, + void *data); +int OSSL_IETF_ATTR_SYNTAX_print(BIO *bp, OSSL_IETF_ATTR_SYNTAX *a, int indent); + +struct TARGET_CERT_st { + OSSL_ISSUER_SERIAL *targetCertificate; + GENERAL_NAME *targetName; + OSSL_OBJECT_DIGEST_INFO *certDigestInfo; +}; + +typedef struct TARGET_CERT_st OSSL_TARGET_CERT; + +# define OSSL_TGT_TARGET_NAME 0 +# define OSSL_TGT_TARGET_GROUP 1 +# define OSSL_TGT_TARGET_CERT 2 + +typedef struct TARGET_st { + int type; + union { + GENERAL_NAME *targetName; + GENERAL_NAME *targetGroup; + OSSL_TARGET_CERT *targetCert; + } choice; +} OSSL_TARGET; + +typedef STACK_OF(OSSL_TARGET) OSSL_TARGETS; +typedef STACK_OF(OSSL_TARGETS) OSSL_TARGETING_INFORMATION; + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_TARGET, OSSL_TARGET, OSSL_TARGET) +#define sk_OSSL_TARGET_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_value(sk, idx) ((OSSL_TARGET *)OPENSSL_sk_value(ossl_check_const_OSSL_TARGET_sk_type(sk), (idx))) +#define sk_OSSL_TARGET_new(cmp) ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_new(ossl_check_OSSL_TARGET_compfunc_type(cmp))) +#define sk_OSSL_TARGET_new_null() ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_new_null()) +#define sk_OSSL_TARGET_new_reserve(cmp, n) ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_TARGET_compfunc_type(cmp), (n))) +#define sk_OSSL_TARGET_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_TARGET_sk_type(sk), (n)) +#define sk_OSSL_TARGET_free(sk) OPENSSL_sk_free(ossl_check_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_delete(sk, i) ((OSSL_TARGET *)OPENSSL_sk_delete(ossl_check_OSSL_TARGET_sk_type(sk), (i))) +#define sk_OSSL_TARGET_delete_ptr(sk, ptr) ((OSSL_TARGET *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr))) +#define sk_OSSL_TARGET_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr)) +#define sk_OSSL_TARGET_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr)) +#define sk_OSSL_TARGET_pop(sk) ((OSSL_TARGET *)OPENSSL_sk_pop(ossl_check_OSSL_TARGET_sk_type(sk))) +#define sk_OSSL_TARGET_shift(sk) ((OSSL_TARGET *)OPENSSL_sk_shift(ossl_check_OSSL_TARGET_sk_type(sk))) +#define sk_OSSL_TARGET_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_TARGET_sk_type(sk),ossl_check_OSSL_TARGET_freefunc_type(freefunc)) +#define sk_OSSL_TARGET_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr), (idx)) +#define sk_OSSL_TARGET_set(sk, idx, ptr) ((OSSL_TARGET *)OPENSSL_sk_set(ossl_check_OSSL_TARGET_sk_type(sk), (idx), ossl_check_OSSL_TARGET_type(ptr))) +#define sk_OSSL_TARGET_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr)) +#define sk_OSSL_TARGET_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr)) +#define sk_OSSL_TARGET_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr), pnum) +#define sk_OSSL_TARGET_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_dup(sk) ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_dup(ossl_check_const_OSSL_TARGET_sk_type(sk))) +#define sk_OSSL_TARGET_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_copyfunc_type(copyfunc), ossl_check_OSSL_TARGET_freefunc_type(freefunc))) +#define sk_OSSL_TARGET_set_cmp_func(sk, cmp) ((sk_OSSL_TARGET_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_compfunc_type(cmp))) + + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_TARGETS, OSSL_TARGETS, OSSL_TARGETS) +#define sk_OSSL_TARGETS_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_value(sk, idx) ((OSSL_TARGETS *)OPENSSL_sk_value(ossl_check_const_OSSL_TARGETS_sk_type(sk), (idx))) +#define sk_OSSL_TARGETS_new(cmp) ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_new(ossl_check_OSSL_TARGETS_compfunc_type(cmp))) +#define sk_OSSL_TARGETS_new_null() ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_new_null()) +#define sk_OSSL_TARGETS_new_reserve(cmp, n) ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_TARGETS_compfunc_type(cmp), (n))) +#define sk_OSSL_TARGETS_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_TARGETS_sk_type(sk), (n)) +#define sk_OSSL_TARGETS_free(sk) OPENSSL_sk_free(ossl_check_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_delete(sk, i) ((OSSL_TARGETS *)OPENSSL_sk_delete(ossl_check_OSSL_TARGETS_sk_type(sk), (i))) +#define sk_OSSL_TARGETS_delete_ptr(sk, ptr) ((OSSL_TARGETS *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr))) +#define sk_OSSL_TARGETS_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr)) +#define sk_OSSL_TARGETS_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr)) +#define sk_OSSL_TARGETS_pop(sk) ((OSSL_TARGETS *)OPENSSL_sk_pop(ossl_check_OSSL_TARGETS_sk_type(sk))) +#define sk_OSSL_TARGETS_shift(sk) ((OSSL_TARGETS *)OPENSSL_sk_shift(ossl_check_OSSL_TARGETS_sk_type(sk))) +#define sk_OSSL_TARGETS_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_TARGETS_sk_type(sk),ossl_check_OSSL_TARGETS_freefunc_type(freefunc)) +#define sk_OSSL_TARGETS_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr), (idx)) +#define sk_OSSL_TARGETS_set(sk, idx, ptr) ((OSSL_TARGETS *)OPENSSL_sk_set(ossl_check_OSSL_TARGETS_sk_type(sk), (idx), ossl_check_OSSL_TARGETS_type(ptr))) +#define sk_OSSL_TARGETS_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr)) +#define sk_OSSL_TARGETS_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr)) +#define sk_OSSL_TARGETS_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr), pnum) +#define sk_OSSL_TARGETS_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_dup(sk) ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_dup(ossl_check_const_OSSL_TARGETS_sk_type(sk))) +#define sk_OSSL_TARGETS_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_copyfunc_type(copyfunc), ossl_check_OSSL_TARGETS_freefunc_type(freefunc))) +#define sk_OSSL_TARGETS_set_cmp_func(sk, cmp) ((sk_OSSL_TARGETS_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_compfunc_type(cmp))) + + +DECLARE_ASN1_FUNCTIONS(OSSL_TARGET) +DECLARE_ASN1_FUNCTIONS(OSSL_TARGETS) +DECLARE_ASN1_FUNCTIONS(OSSL_TARGETING_INFORMATION) + +typedef STACK_OF(OSSL_ISSUER_SERIAL) OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX; +DECLARE_ASN1_FUNCTIONS(OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ISSUER_SERIAL, OSSL_ISSUER_SERIAL, OSSL_ISSUER_SERIAL) +#define sk_OSSL_ISSUER_SERIAL_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_value(sk, idx) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_value(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk), (idx))) +#define sk_OSSL_ISSUER_SERIAL_new(cmp) ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_new(ossl_check_OSSL_ISSUER_SERIAL_compfunc_type(cmp))) +#define sk_OSSL_ISSUER_SERIAL_new_null() ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ISSUER_SERIAL_new_reserve(cmp, n) ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ISSUER_SERIAL_compfunc_type(cmp), (n))) +#define sk_OSSL_ISSUER_SERIAL_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), (n)) +#define sk_OSSL_ISSUER_SERIAL_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_delete(sk, i) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_delete(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), (i))) +#define sk_OSSL_ISSUER_SERIAL_delete_ptr(sk, ptr) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr))) +#define sk_OSSL_ISSUER_SERIAL_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr)) +#define sk_OSSL_ISSUER_SERIAL_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr)) +#define sk_OSSL_ISSUER_SERIAL_pop(sk) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_pop(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk))) +#define sk_OSSL_ISSUER_SERIAL_shift(sk) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_shift(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk))) +#define sk_OSSL_ISSUER_SERIAL_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk),ossl_check_OSSL_ISSUER_SERIAL_freefunc_type(freefunc)) +#define sk_OSSL_ISSUER_SERIAL_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr), (idx)) +#define sk_OSSL_ISSUER_SERIAL_set(sk, idx, ptr) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_set(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), (idx), ossl_check_OSSL_ISSUER_SERIAL_type(ptr))) +#define sk_OSSL_ISSUER_SERIAL_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr)) +#define sk_OSSL_ISSUER_SERIAL_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr)) +#define sk_OSSL_ISSUER_SERIAL_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr), pnum) +#define sk_OSSL_ISSUER_SERIAL_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_dup(sk) ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk))) +#define sk_OSSL_ISSUER_SERIAL_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_copyfunc_type(copyfunc), ossl_check_OSSL_ISSUER_SERIAL_freefunc_type(freefunc))) +#define sk_OSSL_ISSUER_SERIAL_set_cmp_func(sk, cmp) ((sk_OSSL_ISSUER_SERIAL_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_compfunc_type(cmp))) + + +#endif diff --git a/deps/openssl/config/archs/darwin-i386-cc/asm/include/openssl/x509_vfy.h b/deps/openssl/config/archs/darwin-i386-cc/asm/include/openssl/x509_vfy.h index 29b0e147adcab1..c9bdc3b39d685d 100644 --- a/deps/openssl/config/archs/darwin-i386-cc/asm/include/openssl/x509_vfy.h +++ b/deps/openssl/config/archs/darwin-i386-cc/asm/include/openssl/x509_vfy.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/x509_vfy.h.in * - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -411,6 +411,7 @@ X509_LOOKUP_ctrl_ex((x), X509_L_ADD_STORE, (name), 0, NULL, \ # define X509_V_ERR_CA_CERT_MISSING_KEY_USAGE 92 # define X509_V_ERR_EXTENSIONS_REQUIRE_VERSION_3 93 # define X509_V_ERR_EC_KEY_EXPLICIT_PARAMS 94 +# define X509_V_ERR_RPK_UNTRUSTED 95 /* Certificate verify flags */ # ifndef OPENSSL_NO_DEPRECATED_1_1_0 @@ -491,71 +492,72 @@ int X509_OBJECT_set1_X509(X509_OBJECT *a, X509 *obj); X509_CRL *X509_OBJECT_get0_X509_CRL(const X509_OBJECT *a); int X509_OBJECT_set1_X509_CRL(X509_OBJECT *a, X509_CRL *obj); X509_STORE *X509_STORE_new(void); -void X509_STORE_free(X509_STORE *v); -int X509_STORE_lock(X509_STORE *ctx); -int X509_STORE_unlock(X509_STORE *ctx); -int X509_STORE_up_ref(X509_STORE *v); -STACK_OF(X509_OBJECT) *X509_STORE_get0_objects(const X509_STORE *v); -STACK_OF(X509) *X509_STORE_get1_all_certs(X509_STORE *st); -STACK_OF(X509) *X509_STORE_CTX_get1_certs(X509_STORE_CTX *st, +void X509_STORE_free(X509_STORE *xs); +int X509_STORE_lock(X509_STORE *xs); +int X509_STORE_unlock(X509_STORE *xs); +int X509_STORE_up_ref(X509_STORE *xs); +STACK_OF(X509_OBJECT) *X509_STORE_get0_objects(const X509_STORE *xs); +STACK_OF(X509_OBJECT) *X509_STORE_get1_objects(X509_STORE *xs); +STACK_OF(X509) *X509_STORE_get1_all_certs(X509_STORE *xs); +STACK_OF(X509) *X509_STORE_CTX_get1_certs(X509_STORE_CTX *xs, const X509_NAME *nm); STACK_OF(X509_CRL) *X509_STORE_CTX_get1_crls(const X509_STORE_CTX *st, const X509_NAME *nm); -int X509_STORE_set_flags(X509_STORE *ctx, unsigned long flags); -int X509_STORE_set_purpose(X509_STORE *ctx, int purpose); -int X509_STORE_set_trust(X509_STORE *ctx, int trust); -int X509_STORE_set1_param(X509_STORE *ctx, const X509_VERIFY_PARAM *pm); -X509_VERIFY_PARAM *X509_STORE_get0_param(const X509_STORE *ctx); +int X509_STORE_set_flags(X509_STORE *xs, unsigned long flags); +int X509_STORE_set_purpose(X509_STORE *xs, int purpose); +int X509_STORE_set_trust(X509_STORE *xs, int trust); +int X509_STORE_set1_param(X509_STORE *xs, const X509_VERIFY_PARAM *pm); +X509_VERIFY_PARAM *X509_STORE_get0_param(const X509_STORE *xs); -void X509_STORE_set_verify(X509_STORE *ctx, X509_STORE_CTX_verify_fn verify); +void X509_STORE_set_verify(X509_STORE *xs, X509_STORE_CTX_verify_fn verify); #define X509_STORE_set_verify_func(ctx, func) \ X509_STORE_set_verify((ctx),(func)) void X509_STORE_CTX_set_verify(X509_STORE_CTX *ctx, X509_STORE_CTX_verify_fn verify); -X509_STORE_CTX_verify_fn X509_STORE_get_verify(const X509_STORE *ctx); -void X509_STORE_set_verify_cb(X509_STORE *ctx, +X509_STORE_CTX_verify_fn X509_STORE_get_verify(const X509_STORE *xs); +void X509_STORE_set_verify_cb(X509_STORE *xs, X509_STORE_CTX_verify_cb verify_cb); # define X509_STORE_set_verify_cb_func(ctx,func) \ X509_STORE_set_verify_cb((ctx),(func)) -X509_STORE_CTX_verify_cb X509_STORE_get_verify_cb(const X509_STORE *ctx); -void X509_STORE_set_get_issuer(X509_STORE *ctx, +X509_STORE_CTX_verify_cb X509_STORE_get_verify_cb(const X509_STORE *xs); +void X509_STORE_set_get_issuer(X509_STORE *xs, X509_STORE_CTX_get_issuer_fn get_issuer); -X509_STORE_CTX_get_issuer_fn X509_STORE_get_get_issuer(const X509_STORE *ctx); -void X509_STORE_set_check_issued(X509_STORE *ctx, +X509_STORE_CTX_get_issuer_fn X509_STORE_get_get_issuer(const X509_STORE *xs); +void X509_STORE_set_check_issued(X509_STORE *xs, X509_STORE_CTX_check_issued_fn check_issued); -X509_STORE_CTX_check_issued_fn X509_STORE_get_check_issued(const X509_STORE *ctx); -void X509_STORE_set_check_revocation(X509_STORE *ctx, +X509_STORE_CTX_check_issued_fn X509_STORE_get_check_issued(const X509_STORE *s); +void X509_STORE_set_check_revocation(X509_STORE *xs, X509_STORE_CTX_check_revocation_fn check_revocation); X509_STORE_CTX_check_revocation_fn - X509_STORE_get_check_revocation(const X509_STORE *ctx); -void X509_STORE_set_get_crl(X509_STORE *ctx, + X509_STORE_get_check_revocation(const X509_STORE *xs); +void X509_STORE_set_get_crl(X509_STORE *xs, X509_STORE_CTX_get_crl_fn get_crl); -X509_STORE_CTX_get_crl_fn X509_STORE_get_get_crl(const X509_STORE *ctx); -void X509_STORE_set_check_crl(X509_STORE *ctx, +X509_STORE_CTX_get_crl_fn X509_STORE_get_get_crl(const X509_STORE *xs); +void X509_STORE_set_check_crl(X509_STORE *xs, X509_STORE_CTX_check_crl_fn check_crl); -X509_STORE_CTX_check_crl_fn X509_STORE_get_check_crl(const X509_STORE *ctx); -void X509_STORE_set_cert_crl(X509_STORE *ctx, +X509_STORE_CTX_check_crl_fn X509_STORE_get_check_crl(const X509_STORE *xs); +void X509_STORE_set_cert_crl(X509_STORE *xs, X509_STORE_CTX_cert_crl_fn cert_crl); -X509_STORE_CTX_cert_crl_fn X509_STORE_get_cert_crl(const X509_STORE *ctx); -void X509_STORE_set_check_policy(X509_STORE *ctx, +X509_STORE_CTX_cert_crl_fn X509_STORE_get_cert_crl(const X509_STORE *xs); +void X509_STORE_set_check_policy(X509_STORE *xs, X509_STORE_CTX_check_policy_fn check_policy); -X509_STORE_CTX_check_policy_fn X509_STORE_get_check_policy(const X509_STORE *ctx); -void X509_STORE_set_lookup_certs(X509_STORE *ctx, +X509_STORE_CTX_check_policy_fn X509_STORE_get_check_policy(const X509_STORE *s); +void X509_STORE_set_lookup_certs(X509_STORE *xs, X509_STORE_CTX_lookup_certs_fn lookup_certs); -X509_STORE_CTX_lookup_certs_fn X509_STORE_get_lookup_certs(const X509_STORE *ctx); -void X509_STORE_set_lookup_crls(X509_STORE *ctx, +X509_STORE_CTX_lookup_certs_fn X509_STORE_get_lookup_certs(const X509_STORE *s); +void X509_STORE_set_lookup_crls(X509_STORE *xs, X509_STORE_CTX_lookup_crls_fn lookup_crls); #define X509_STORE_set_lookup_crls_cb(ctx, func) \ X509_STORE_set_lookup_crls((ctx), (func)) -X509_STORE_CTX_lookup_crls_fn X509_STORE_get_lookup_crls(const X509_STORE *ctx); -void X509_STORE_set_cleanup(X509_STORE *ctx, +X509_STORE_CTX_lookup_crls_fn X509_STORE_get_lookup_crls(const X509_STORE *xs); +void X509_STORE_set_cleanup(X509_STORE *xs, X509_STORE_CTX_cleanup_fn cleanup); -X509_STORE_CTX_cleanup_fn X509_STORE_get_cleanup(const X509_STORE *ctx); +X509_STORE_CTX_cleanup_fn X509_STORE_get_cleanup(const X509_STORE *xs); #define X509_STORE_get_ex_new_index(l, p, newf, dupf, freef) \ CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_X509_STORE, l, p, newf, dupf, freef) -int X509_STORE_set_ex_data(X509_STORE *ctx, int idx, void *data); -void *X509_STORE_get_ex_data(const X509_STORE *ctx, int idx); +int X509_STORE_set_ex_data(X509_STORE *xs, int idx, void *data); +void *X509_STORE_get_ex_data(const X509_STORE *xs, int idx); X509_STORE_CTX *X509_STORE_CTX_new_ex(OSSL_LIB_CTX *libctx, const char *propq); X509_STORE_CTX *X509_STORE_CTX_new(void); @@ -565,11 +567,14 @@ int X509_STORE_CTX_get1_issuer(X509 **issuer, X509_STORE_CTX *ctx, X509 *x); void X509_STORE_CTX_free(X509_STORE_CTX *ctx); int X509_STORE_CTX_init(X509_STORE_CTX *ctx, X509_STORE *trust_store, X509 *target, STACK_OF(X509) *untrusted); +int X509_STORE_CTX_init_rpk(X509_STORE_CTX *ctx, X509_STORE *trust_store, + EVP_PKEY* rpk); void X509_STORE_CTX_set0_trusted_stack(X509_STORE_CTX *ctx, STACK_OF(X509) *sk); void X509_STORE_CTX_cleanup(X509_STORE_CTX *ctx); X509_STORE *X509_STORE_CTX_get0_store(const X509_STORE_CTX *ctx); X509 *X509_STORE_CTX_get0_cert(const X509_STORE_CTX *ctx); +EVP_PKEY *X509_STORE_CTX_get0_rpk(const X509_STORE_CTX *ctx); STACK_OF(X509)* X509_STORE_CTX_get0_untrusted(const X509_STORE_CTX *ctx); void X509_STORE_CTX_set0_untrusted(X509_STORE_CTX *ctx, STACK_OF(X509) *sk); void X509_STORE_CTX_set_verify_cb(X509_STORE_CTX *ctx, @@ -579,6 +584,8 @@ X509_STORE_CTX_verify_fn X509_STORE_CTX_get_verify(const X509_STORE_CTX *ctx); X509_STORE_CTX_get_issuer_fn X509_STORE_CTX_get_get_issuer(const X509_STORE_CTX *ctx); X509_STORE_CTX_check_issued_fn X509_STORE_CTX_get_check_issued(const X509_STORE_CTX *ctx); X509_STORE_CTX_check_revocation_fn X509_STORE_CTX_get_check_revocation(const X509_STORE_CTX *ctx); +void X509_STORE_CTX_set_get_crl(X509_STORE_CTX *ctx, + X509_STORE_CTX_get_crl_fn get_crl); X509_STORE_CTX_get_crl_fn X509_STORE_CTX_get_get_crl(const X509_STORE_CTX *ctx); X509_STORE_CTX_check_crl_fn X509_STORE_CTX_get_check_crl(const X509_STORE_CTX *ctx); X509_STORE_CTX_cert_crl_fn X509_STORE_CTX_get_cert_crl(const X509_STORE_CTX *ctx); @@ -600,7 +607,7 @@ X509_STORE_CTX_cleanup_fn X509_STORE_CTX_get_cleanup(const X509_STORE_CTX *ctx); # define X509_STORE_get1_crl X509_STORE_CTX_get1_crls #endif -X509_LOOKUP *X509_STORE_add_lookup(X509_STORE *v, X509_LOOKUP_METHOD *m); +X509_LOOKUP *X509_STORE_add_lookup(X509_STORE *xs, X509_LOOKUP_METHOD *m); X509_LOOKUP_METHOD *X509_LOOKUP_hash_dir(void); X509_LOOKUP_METHOD *X509_LOOKUP_file(void); X509_LOOKUP_METHOD *X509_LOOKUP_store(void); @@ -685,8 +692,8 @@ X509_LOOKUP_get_by_alias_fn X509_LOOKUP_meth_get_get_by_alias( const X509_LOOKUP_METHOD *method); -int X509_STORE_add_cert(X509_STORE *ctx, X509 *x); -int X509_STORE_add_crl(X509_STORE *ctx, X509_CRL *x); +int X509_STORE_add_cert(X509_STORE *xs, X509 *x); +int X509_STORE_add_crl(X509_STORE *xs, X509_CRL *x); int X509_STORE_CTX_get_by_subject(const X509_STORE_CTX *vs, X509_LOOKUP_TYPE type, @@ -730,23 +737,21 @@ void *X509_LOOKUP_get_method_data(const X509_LOOKUP *ctx); X509_STORE *X509_LOOKUP_get_store(const X509_LOOKUP *ctx); int X509_LOOKUP_shutdown(X509_LOOKUP *ctx); -int X509_STORE_load_file(X509_STORE *ctx, const char *file); -int X509_STORE_load_path(X509_STORE *ctx, const char *path); -int X509_STORE_load_store(X509_STORE *ctx, const char *store); -int X509_STORE_load_locations(X509_STORE *ctx, - const char *file, - const char *dir); -int X509_STORE_set_default_paths(X509_STORE *ctx); +int X509_STORE_load_file(X509_STORE *xs, const char *file); +int X509_STORE_load_path(X509_STORE *xs, const char *path); +int X509_STORE_load_store(X509_STORE *xs, const char *store); +int X509_STORE_load_locations(X509_STORE *s, const char *file, const char *dir); +int X509_STORE_set_default_paths(X509_STORE *xs); -int X509_STORE_load_file_ex(X509_STORE *ctx, const char *file, +int X509_STORE_load_file_ex(X509_STORE *xs, const char *file, OSSL_LIB_CTX *libctx, const char *propq); -int X509_STORE_load_store_ex(X509_STORE *ctx, const char *store, +int X509_STORE_load_store_ex(X509_STORE *xs, const char *store, OSSL_LIB_CTX *libctx, const char *propq); -int X509_STORE_load_locations_ex(X509_STORE *ctx, const char *file, - const char *dir, OSSL_LIB_CTX *libctx, - const char *propq); -int X509_STORE_set_default_paths_ex(X509_STORE *ctx, OSSL_LIB_CTX *libctx, - const char *propq); +int X509_STORE_load_locations_ex(X509_STORE *xs, + const char *file, const char *dir, + OSSL_LIB_CTX *libctx, const char *propq); +int X509_STORE_set_default_paths_ex(X509_STORE *xs, + OSSL_LIB_CTX *libctx, const char *propq); #define X509_STORE_CTX_get_ex_new_index(l, p, newf, dupf, freef) \ CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_X509_STORE_CTX, l, p, newf, dupf, freef) @@ -764,6 +769,7 @@ X509_STORE_CTX *X509_STORE_CTX_get0_parent_ctx(const X509_STORE_CTX *ctx); STACK_OF(X509) *X509_STORE_CTX_get0_chain(const X509_STORE_CTX *ctx); STACK_OF(X509) *X509_STORE_CTX_get1_chain(const X509_STORE_CTX *ctx); void X509_STORE_CTX_set_cert(X509_STORE_CTX *ctx, X509 *target); +void X509_STORE_CTX_set0_rpk(X509_STORE_CTX *ctx, EVP_PKEY *target); void X509_STORE_CTX_set0_verified_chain(X509_STORE_CTX *c, STACK_OF(X509) *sk); void X509_STORE_CTX_set0_crls(X509_STORE_CTX *ctx, STACK_OF(X509_CRL) *sk); int X509_STORE_CTX_set_purpose(X509_STORE_CTX *ctx, int purpose); @@ -773,6 +779,8 @@ int X509_STORE_CTX_purpose_inherit(X509_STORE_CTX *ctx, int def_purpose, void X509_STORE_CTX_set_flags(X509_STORE_CTX *ctx, unsigned long flags); void X509_STORE_CTX_set_time(X509_STORE_CTX *ctx, unsigned long flags, time_t t); +void X509_STORE_CTX_set_current_reasons(X509_STORE_CTX *ctx, + unsigned int current_reasons); X509_POLICY_TREE *X509_STORE_CTX_get0_policy_tree(const X509_STORE_CTX *ctx); int X509_STORE_CTX_get_explicit_policy(const X509_STORE_CTX *ctx); @@ -804,6 +812,7 @@ int X509_VERIFY_PARAM_clear_flags(X509_VERIFY_PARAM *param, unsigned long flags); unsigned long X509_VERIFY_PARAM_get_flags(const X509_VERIFY_PARAM *param); int X509_VERIFY_PARAM_set_purpose(X509_VERIFY_PARAM *param, int purpose); +int X509_VERIFY_PARAM_get_purpose(const X509_VERIFY_PARAM *param); int X509_VERIFY_PARAM_set_trust(X509_VERIFY_PARAM *param, int trust); void X509_VERIFY_PARAM_set_depth(X509_VERIFY_PARAM *param, int depth); void X509_VERIFY_PARAM_set_auth_level(X509_VERIFY_PARAM *param, int auth_level); diff --git a/deps/openssl/config/archs/darwin-i386-cc/asm/include/openssl/x509v3.h b/deps/openssl/config/archs/darwin-i386-cc/asm/include/openssl/x509v3.h index 20b67455f2061d..b8dabac35a4915 100644 --- a/deps/openssl/config/archs/darwin-i386-cc/asm/include/openssl/x509v3.h +++ b/deps/openssl/config/archs/darwin-i386-cc/asm/include/openssl/x509v3.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/x509v3.h.in * - * Copyright 1999-2023 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1999-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -25,6 +25,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -146,6 +149,11 @@ typedef struct BASIC_CONSTRAINTS_st { ASN1_INTEGER *pathlen; } BASIC_CONSTRAINTS; +typedef struct OSSL_BASIC_ATTR_CONSTRAINTS_st { + int authority; + ASN1_INTEGER *pathlen; +} OSSL_BASIC_ATTR_CONSTRAINTS; + typedef struct PKEY_USAGE_PERIOD_st { ASN1_GENERALIZEDTIME *notBefore; ASN1_GENERALIZEDTIME *notAfter; @@ -198,6 +206,8 @@ typedef struct ACCESS_DESCRIPTION_st { GENERAL_NAME *location; } ACCESS_DESCRIPTION; +int GENERAL_NAME_set1_X509_NAME(GENERAL_NAME **tgt, const X509_NAME *src); + SKM_DEFINE_STACK_OF_INTERNAL(ACCESS_DESCRIPTION, ACCESS_DESCRIPTION, ACCESS_DESCRIPTION) #define sk_ACCESS_DESCRIPTION_num(sk) OPENSSL_sk_num(ossl_check_const_ACCESS_DESCRIPTION_sk_type(sk)) #define sk_ACCESS_DESCRIPTION_value(sk, idx) ((ACCESS_DESCRIPTION *)OPENSSL_sk_value(ossl_check_const_ACCESS_DESCRIPTION_sk_type(sk), (idx))) @@ -294,6 +304,7 @@ typedef struct DIST_POINT_NAME_st { /* If relativename then this contains the full distribution point name */ X509_NAME *dpname; } DIST_POINT_NAME; +DECLARE_ASN1_DUP_FUNCTION(DIST_POINT_NAME) /* All existing reasons */ # define CRLDP_ALL_REASONS 0x807f @@ -659,15 +670,16 @@ struct ISSUING_DIST_POINT_st { # define EXFLAG_SAN_CRITICAL 0x80000 # define EXFLAG_NO_FINGERPRINT 0x100000 -# define KU_DIGITAL_SIGNATURE 0x0080 -# define KU_NON_REPUDIATION 0x0040 -# define KU_KEY_ENCIPHERMENT 0x0020 -# define KU_DATA_ENCIPHERMENT 0x0010 -# define KU_KEY_AGREEMENT 0x0008 -# define KU_KEY_CERT_SIGN 0x0004 -# define KU_CRL_SIGN 0x0002 -# define KU_ENCIPHER_ONLY 0x0001 -# define KU_DECIPHER_ONLY 0x8000 +/* https://datatracker.ietf.org/doc/html/rfc5280#section-4.2.1.3 */ +# define KU_DIGITAL_SIGNATURE X509v3_KU_DIGITAL_SIGNATURE +# define KU_NON_REPUDIATION X509v3_KU_NON_REPUDIATION +# define KU_KEY_ENCIPHERMENT X509v3_KU_KEY_ENCIPHERMENT +# define KU_DATA_ENCIPHERMENT X509v3_KU_DATA_ENCIPHERMENT +# define KU_KEY_AGREEMENT X509v3_KU_KEY_AGREEMENT +# define KU_KEY_CERT_SIGN X509v3_KU_KEY_CERT_SIGN +# define KU_CRL_SIGN X509v3_KU_CRL_SIGN +# define KU_ENCIPHER_ONLY X509v3_KU_ENCIPHER_ONLY +# define KU_DECIPHER_ONLY X509v3_KU_DECIPHER_ONLY # define NS_SSL_CLIENT 0x80 # define NS_SSL_SERVER 0x40 @@ -729,7 +741,7 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_PURPOSE, X509_PURPOSE, X509_PURPOSE) #define sk_X509_PURPOSE_set_cmp_func(sk, cmp) ((sk_X509_PURPOSE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_X509_PURPOSE_sk_type(sk), ossl_check_X509_PURPOSE_compfunc_type(cmp))) - +# define X509_PURPOSE_DEFAULT_ANY 0 # define X509_PURPOSE_SSL_CLIENT 1 # define X509_PURPOSE_SSL_SERVER 2 # define X509_PURPOSE_NS_SSL_SERVER 3 @@ -739,9 +751,10 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_PURPOSE, X509_PURPOSE, X509_PURPOSE) # define X509_PURPOSE_ANY 7 # define X509_PURPOSE_OCSP_HELPER 8 # define X509_PURPOSE_TIMESTAMP_SIGN 9 +# define X509_PURPOSE_CODE_SIGN 10 # define X509_PURPOSE_MIN 1 -# define X509_PURPOSE_MAX 9 +# define X509_PURPOSE_MAX 10 /* Flags for X509V3_EXT_print() */ @@ -767,6 +780,7 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_PURPOSE, X509_PURPOSE, X509_PURPOSE) # define X509V3_ADD_SILENT 0x10 DECLARE_ASN1_FUNCTIONS(BASIC_CONSTRAINTS) +DECLARE_ASN1_FUNCTIONS(OSSL_BASIC_ATTR_CONSTRAINTS) DECLARE_ASN1_FUNCTIONS(SXNET) DECLARE_ASN1_FUNCTIONS(SXNETID) @@ -976,7 +990,6 @@ int X509V3_extensions_print(BIO *out, const char *title, int X509_check_ca(X509 *x); int X509_check_purpose(X509 *x, int id, int ca); int X509_supported_extension(X509_EXTENSION *ex); -int X509_PURPOSE_set(int *p, int purpose); int X509_check_issued(X509 *issuer, X509 *subject); int X509_check_akid(const X509 *issuer, const AUTHORITY_KEYID *akid); void X509_set_proxy_flag(X509 *x); @@ -992,22 +1005,26 @@ const GENERAL_NAMES *X509_get0_authority_issuer(X509 *x); const ASN1_INTEGER *X509_get0_authority_serial(X509 *x); int X509_PURPOSE_get_count(void); -X509_PURPOSE *X509_PURPOSE_get0(int idx); +int X509_PURPOSE_get_unused_id(OSSL_LIB_CTX *libctx); int X509_PURPOSE_get_by_sname(const char *sname); int X509_PURPOSE_get_by_id(int id); int X509_PURPOSE_add(int id, int trust, int flags, int (*ck) (const X509_PURPOSE *, const X509 *, int), const char *name, const char *sname, void *arg); +void X509_PURPOSE_cleanup(void); + +X509_PURPOSE *X509_PURPOSE_get0(int idx); +int X509_PURPOSE_get_id(const X509_PURPOSE *); char *X509_PURPOSE_get0_name(const X509_PURPOSE *xp); char *X509_PURPOSE_get0_sname(const X509_PURPOSE *xp); int X509_PURPOSE_get_trust(const X509_PURPOSE *xp); -void X509_PURPOSE_cleanup(void); -int X509_PURPOSE_get_id(const X509_PURPOSE *); +int X509_PURPOSE_set(int *p, int purpose); STACK_OF(OPENSSL_STRING) *X509_get1_email(X509 *x); STACK_OF(OPENSSL_STRING) *X509_REQ_get1_email(X509_REQ *x); void X509_email_free(STACK_OF(OPENSSL_STRING) *sk); STACK_OF(OPENSSL_STRING) *X509_get1_ocsp(X509 *x); + /* Flags for X509_check_* functions */ /* @@ -1444,6 +1461,507 @@ const ASN1_PRINTABLESTRING *PROFESSION_INFO_get0_registrationNumber( void PROFESSION_INFO_set0_registrationNumber( PROFESSION_INFO *pi, ASN1_PRINTABLESTRING *rn); +int OSSL_GENERAL_NAMES_print(BIO *out, GENERAL_NAMES *gens, int indent); + +typedef STACK_OF(X509_ATTRIBUTE) OSSL_ATTRIBUTES_SYNTAX; +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTES_SYNTAX) + +typedef STACK_OF(USERNOTICE) OSSL_USER_NOTICE_SYNTAX; +DECLARE_ASN1_FUNCTIONS(OSSL_USER_NOTICE_SYNTAX) + +SKM_DEFINE_STACK_OF_INTERNAL(USERNOTICE, USERNOTICE, USERNOTICE) +#define sk_USERNOTICE_num(sk) OPENSSL_sk_num(ossl_check_const_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_value(sk, idx) ((USERNOTICE *)OPENSSL_sk_value(ossl_check_const_USERNOTICE_sk_type(sk), (idx))) +#define sk_USERNOTICE_new(cmp) ((STACK_OF(USERNOTICE) *)OPENSSL_sk_new(ossl_check_USERNOTICE_compfunc_type(cmp))) +#define sk_USERNOTICE_new_null() ((STACK_OF(USERNOTICE) *)OPENSSL_sk_new_null()) +#define sk_USERNOTICE_new_reserve(cmp, n) ((STACK_OF(USERNOTICE) *)OPENSSL_sk_new_reserve(ossl_check_USERNOTICE_compfunc_type(cmp), (n))) +#define sk_USERNOTICE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_USERNOTICE_sk_type(sk), (n)) +#define sk_USERNOTICE_free(sk) OPENSSL_sk_free(ossl_check_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_zero(sk) OPENSSL_sk_zero(ossl_check_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_delete(sk, i) ((USERNOTICE *)OPENSSL_sk_delete(ossl_check_USERNOTICE_sk_type(sk), (i))) +#define sk_USERNOTICE_delete_ptr(sk, ptr) ((USERNOTICE *)OPENSSL_sk_delete_ptr(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr))) +#define sk_USERNOTICE_push(sk, ptr) OPENSSL_sk_push(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr)) +#define sk_USERNOTICE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr)) +#define sk_USERNOTICE_pop(sk) ((USERNOTICE *)OPENSSL_sk_pop(ossl_check_USERNOTICE_sk_type(sk))) +#define sk_USERNOTICE_shift(sk) ((USERNOTICE *)OPENSSL_sk_shift(ossl_check_USERNOTICE_sk_type(sk))) +#define sk_USERNOTICE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_USERNOTICE_sk_type(sk),ossl_check_USERNOTICE_freefunc_type(freefunc)) +#define sk_USERNOTICE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr), (idx)) +#define sk_USERNOTICE_set(sk, idx, ptr) ((USERNOTICE *)OPENSSL_sk_set(ossl_check_USERNOTICE_sk_type(sk), (idx), ossl_check_USERNOTICE_type(ptr))) +#define sk_USERNOTICE_find(sk, ptr) OPENSSL_sk_find(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr)) +#define sk_USERNOTICE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr)) +#define sk_USERNOTICE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr), pnum) +#define sk_USERNOTICE_sort(sk) OPENSSL_sk_sort(ossl_check_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_dup(sk) ((STACK_OF(USERNOTICE) *)OPENSSL_sk_dup(ossl_check_const_USERNOTICE_sk_type(sk))) +#define sk_USERNOTICE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(USERNOTICE) *)OPENSSL_sk_deep_copy(ossl_check_const_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_copyfunc_type(copyfunc), ossl_check_USERNOTICE_freefunc_type(freefunc))) +#define sk_USERNOTICE_set_cmp_func(sk, cmp) ((sk_USERNOTICE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_compfunc_type(cmp))) + + +typedef struct OSSL_ROLE_SPEC_CERT_ID_st { + GENERAL_NAME *roleName; + GENERAL_NAME *roleCertIssuer; + ASN1_INTEGER *roleCertSerialNumber; + GENERAL_NAMES *roleCertLocator; +} OSSL_ROLE_SPEC_CERT_ID; + +DECLARE_ASN1_FUNCTIONS(OSSL_ROLE_SPEC_CERT_ID) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ROLE_SPEC_CERT_ID, OSSL_ROLE_SPEC_CERT_ID, OSSL_ROLE_SPEC_CERT_ID) +#define sk_OSSL_ROLE_SPEC_CERT_ID_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_value(sk, idx) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_value(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), (idx))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_new(cmp) ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_new(ossl_check_OSSL_ROLE_SPEC_CERT_ID_compfunc_type(cmp))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_new_null() ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ROLE_SPEC_CERT_ID_new_reserve(cmp, n) ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ROLE_SPEC_CERT_ID_compfunc_type(cmp), (n))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), (n)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_delete(sk, i) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_delete(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), (i))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_delete_ptr(sk, ptr) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_pop(sk) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_pop(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_shift(sk) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_shift(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk),ossl_check_OSSL_ROLE_SPEC_CERT_ID_freefunc_type(freefunc)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr), (idx)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_set(sk, idx, ptr) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_set(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), (idx), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr), pnum) +#define sk_OSSL_ROLE_SPEC_CERT_ID_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_dup(sk) ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_copyfunc_type(copyfunc), ossl_check_OSSL_ROLE_SPEC_CERT_ID_freefunc_type(freefunc))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_set_cmp_func(sk, cmp) ((sk_OSSL_ROLE_SPEC_CERT_ID_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_compfunc_type(cmp))) + + +typedef STACK_OF(OSSL_ROLE_SPEC_CERT_ID) OSSL_ROLE_SPEC_CERT_ID_SYNTAX; + +DECLARE_ASN1_FUNCTIONS(OSSL_ROLE_SPEC_CERT_ID_SYNTAX) +typedef struct OSSL_HASH_st { + X509_ALGOR *algorithmIdentifier; + ASN1_BIT_STRING *hashValue; +} OSSL_HASH; + +typedef struct OSSL_INFO_SYNTAX_POINTER_st { + GENERAL_NAMES *name; + OSSL_HASH *hash; +} OSSL_INFO_SYNTAX_POINTER; + +# define OSSL_INFO_SYNTAX_TYPE_CONTENT 0 +# define OSSL_INFO_SYNTAX_TYPE_POINTER 1 + +typedef struct OSSL_INFO_SYNTAX_st { + int type; + union { + ASN1_STRING *content; + OSSL_INFO_SYNTAX_POINTER *pointer; + } choice; +} OSSL_INFO_SYNTAX; + +typedef struct OSSL_PRIVILEGE_POLICY_ID_st { + ASN1_OBJECT *privilegePolicy; + OSSL_INFO_SYNTAX *privPolSyntax; +} OSSL_PRIVILEGE_POLICY_ID; + +typedef struct OSSL_ATTRIBUTE_DESCRIPTOR_st { + ASN1_OBJECT *identifier; + ASN1_STRING *attributeSyntax; + ASN1_UTF8STRING *name; + ASN1_UTF8STRING *description; + OSSL_PRIVILEGE_POLICY_ID *dominationRule; +} OSSL_ATTRIBUTE_DESCRIPTOR; + +DECLARE_ASN1_FUNCTIONS(OSSL_HASH) +DECLARE_ASN1_FUNCTIONS(OSSL_INFO_SYNTAX) +DECLARE_ASN1_FUNCTIONS(OSSL_INFO_SYNTAX_POINTER) +DECLARE_ASN1_FUNCTIONS(OSSL_PRIVILEGE_POLICY_ID) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_DESCRIPTOR) + +typedef struct OSSL_TIME_SPEC_ABSOLUTE_st { + ASN1_GENERALIZEDTIME *startTime; + ASN1_GENERALIZEDTIME *endTime; +} OSSL_TIME_SPEC_ABSOLUTE; + +typedef struct OSSL_DAY_TIME_st { + ASN1_INTEGER *hour; + ASN1_INTEGER *minute; + ASN1_INTEGER *second; +} OSSL_DAY_TIME; + +typedef struct OSSL_DAY_TIME_BAND_st { + OSSL_DAY_TIME *startDayTime; + OSSL_DAY_TIME *endDayTime; +} OSSL_DAY_TIME_BAND; + +# define OSSL_NAMED_DAY_TYPE_INT 0 +# define OSSL_NAMED_DAY_TYPE_BIT 1 +# define OSSL_NAMED_DAY_INT_SUN 1 +# define OSSL_NAMED_DAY_INT_MON 2 +# define OSSL_NAMED_DAY_INT_TUE 3 +# define OSSL_NAMED_DAY_INT_WED 4 +# define OSSL_NAMED_DAY_INT_THU 5 +# define OSSL_NAMED_DAY_INT_FRI 6 +# define OSSL_NAMED_DAY_INT_SAT 7 +# define OSSL_NAMED_DAY_BIT_SUN 0 +# define OSSL_NAMED_DAY_BIT_MON 1 +# define OSSL_NAMED_DAY_BIT_TUE 2 +# define OSSL_NAMED_DAY_BIT_WED 3 +# define OSSL_NAMED_DAY_BIT_THU 4 +# define OSSL_NAMED_DAY_BIT_FRI 5 +# define OSSL_NAMED_DAY_BIT_SAT 6 + +typedef struct OSSL_NAMED_DAY_st { + int type; + union { + ASN1_INTEGER *intNamedDays; + ASN1_BIT_STRING *bitNamedDays; + } choice; +} OSSL_NAMED_DAY; + +# define OSSL_TIME_SPEC_X_DAY_OF_FIRST 0 +# define OSSL_TIME_SPEC_X_DAY_OF_SECOND 1 +# define OSSL_TIME_SPEC_X_DAY_OF_THIRD 2 +# define OSSL_TIME_SPEC_X_DAY_OF_FOURTH 3 +# define OSSL_TIME_SPEC_X_DAY_OF_FIFTH 4 + +typedef struct OSSL_TIME_SPEC_X_DAY_OF_st { + int type; + union { + OSSL_NAMED_DAY *first; + OSSL_NAMED_DAY *second; + OSSL_NAMED_DAY *third; + OSSL_NAMED_DAY *fourth; + OSSL_NAMED_DAY *fifth; + } choice; +} OSSL_TIME_SPEC_X_DAY_OF; + +# define OSSL_TIME_SPEC_DAY_TYPE_INT 0 +# define OSSL_TIME_SPEC_DAY_TYPE_BIT 1 +# define OSSL_TIME_SPEC_DAY_TYPE_DAY_OF 2 +# define OSSL_TIME_SPEC_DAY_BIT_SUN 0 +# define OSSL_TIME_SPEC_DAY_BIT_MON 1 +# define OSSL_TIME_SPEC_DAY_BIT_TUE 2 +# define OSSL_TIME_SPEC_DAY_BIT_WED 3 +# define OSSL_TIME_SPEC_DAY_BIT_THU 4 +# define OSSL_TIME_SPEC_DAY_BIT_FRI 5 +# define OSSL_TIME_SPEC_DAY_BIT_SAT 6 +# define OSSL_TIME_SPEC_DAY_INT_SUN 1 +# define OSSL_TIME_SPEC_DAY_INT_MON 2 +# define OSSL_TIME_SPEC_DAY_INT_TUE 3 +# define OSSL_TIME_SPEC_DAY_INT_WED 4 +# define OSSL_TIME_SPEC_DAY_INT_THU 5 +# define OSSL_TIME_SPEC_DAY_INT_FRI 6 +# define OSSL_TIME_SPEC_DAY_INT_SAT 7 + +typedef struct OSSL_TIME_SPEC_DAY_st { + int type; + union { + STACK_OF(ASN1_INTEGER) *intDay; + ASN1_BIT_STRING *bitDay; + OSSL_TIME_SPEC_X_DAY_OF *dayOf; + } choice; +} OSSL_TIME_SPEC_DAY; + +# define OSSL_TIME_SPEC_WEEKS_TYPE_ALL 0 +# define OSSL_TIME_SPEC_WEEKS_TYPE_INT 1 +# define OSSL_TIME_SPEC_WEEKS_TYPE_BIT 2 +# define OSSL_TIME_SPEC_BIT_WEEKS_1 0 +# define OSSL_TIME_SPEC_BIT_WEEKS_2 1 +# define OSSL_TIME_SPEC_BIT_WEEKS_3 2 +# define OSSL_TIME_SPEC_BIT_WEEKS_4 3 +# define OSSL_TIME_SPEC_BIT_WEEKS_5 4 + +typedef struct OSSL_TIME_SPEC_WEEKS_st { + int type; + union { + ASN1_NULL *allWeeks; + STACK_OF(ASN1_INTEGER) *intWeek; + ASN1_BIT_STRING *bitWeek; + } choice; +} OSSL_TIME_SPEC_WEEKS; + +# define OSSL_TIME_SPEC_MONTH_TYPE_ALL 0 +# define OSSL_TIME_SPEC_MONTH_TYPE_INT 1 +# define OSSL_TIME_SPEC_MONTH_TYPE_BIT 2 +# define OSSL_TIME_SPEC_INT_MONTH_JAN 1 +# define OSSL_TIME_SPEC_INT_MONTH_FEB 2 +# define OSSL_TIME_SPEC_INT_MONTH_MAR 3 +# define OSSL_TIME_SPEC_INT_MONTH_APR 4 +# define OSSL_TIME_SPEC_INT_MONTH_MAY 5 +# define OSSL_TIME_SPEC_INT_MONTH_JUN 6 +# define OSSL_TIME_SPEC_INT_MONTH_JUL 7 +# define OSSL_TIME_SPEC_INT_MONTH_AUG 8 +# define OSSL_TIME_SPEC_INT_MONTH_SEP 9 +# define OSSL_TIME_SPEC_INT_MONTH_OCT 10 +# define OSSL_TIME_SPEC_INT_MONTH_NOV 11 +# define OSSL_TIME_SPEC_INT_MONTH_DEC 12 +# define OSSL_TIME_SPEC_BIT_MONTH_JAN 0 +# define OSSL_TIME_SPEC_BIT_MONTH_FEB 1 +# define OSSL_TIME_SPEC_BIT_MONTH_MAR 2 +# define OSSL_TIME_SPEC_BIT_MONTH_APR 3 +# define OSSL_TIME_SPEC_BIT_MONTH_MAY 4 +# define OSSL_TIME_SPEC_BIT_MONTH_JUN 5 +# define OSSL_TIME_SPEC_BIT_MONTH_JUL 6 +# define OSSL_TIME_SPEC_BIT_MONTH_AUG 7 +# define OSSL_TIME_SPEC_BIT_MONTH_SEP 8 +# define OSSL_TIME_SPEC_BIT_MONTH_OCT 9 +# define OSSL_TIME_SPEC_BIT_MONTH_NOV 10 +# define OSSL_TIME_SPEC_BIT_MONTH_DEC 11 + +typedef struct OSSL_TIME_SPEC_MONTH_st { + int type; + union { + ASN1_NULL *allMonths; + STACK_OF(ASN1_INTEGER) *intMonth; + ASN1_BIT_STRING *bitMonth; + } choice; +} OSSL_TIME_SPEC_MONTH; + +typedef struct OSSL_TIME_PERIOD_st { + STACK_OF(OSSL_DAY_TIME_BAND) *timesOfDay; + OSSL_TIME_SPEC_DAY *days; + OSSL_TIME_SPEC_WEEKS *weeks; + OSSL_TIME_SPEC_MONTH *months; + STACK_OF(ASN1_INTEGER) *years; +} OSSL_TIME_PERIOD; + +# define OSSL_TIME_SPEC_TIME_TYPE_ABSOLUTE 0 +# define OSSL_TIME_SPEC_TIME_TYPE_PERIODIC 1 + +typedef struct OSSL_TIME_SPEC_TIME_st { + int type; + union { + OSSL_TIME_SPEC_ABSOLUTE *absolute; + STACK_OF(OSSL_TIME_PERIOD) *periodic; + } choice; +} OSSL_TIME_SPEC_TIME; + +typedef struct OSSL_TIME_SPEC_st { + OSSL_TIME_SPEC_TIME *time; + ASN1_BOOLEAN notThisTime; + ASN1_INTEGER *timeZone; +} OSSL_TIME_SPEC; + +DECLARE_ASN1_FUNCTIONS(OSSL_DAY_TIME) +DECLARE_ASN1_FUNCTIONS(OSSL_DAY_TIME_BAND) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_DAY) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_WEEKS) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_MONTH) +DECLARE_ASN1_FUNCTIONS(OSSL_NAMED_DAY) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_X_DAY_OF) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_ABSOLUTE) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_TIME) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_PERIOD) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_TIME_PERIOD, OSSL_TIME_PERIOD, OSSL_TIME_PERIOD) +#define sk_OSSL_TIME_PERIOD_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_value(sk, idx) ((OSSL_TIME_PERIOD *)OPENSSL_sk_value(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk), (idx))) +#define sk_OSSL_TIME_PERIOD_new(cmp) ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_new(ossl_check_OSSL_TIME_PERIOD_compfunc_type(cmp))) +#define sk_OSSL_TIME_PERIOD_new_null() ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_new_null()) +#define sk_OSSL_TIME_PERIOD_new_reserve(cmp, n) ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_TIME_PERIOD_compfunc_type(cmp), (n))) +#define sk_OSSL_TIME_PERIOD_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), (n)) +#define sk_OSSL_TIME_PERIOD_free(sk) OPENSSL_sk_free(ossl_check_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_delete(sk, i) ((OSSL_TIME_PERIOD *)OPENSSL_sk_delete(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), (i))) +#define sk_OSSL_TIME_PERIOD_delete_ptr(sk, ptr) ((OSSL_TIME_PERIOD *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr))) +#define sk_OSSL_TIME_PERIOD_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr)) +#define sk_OSSL_TIME_PERIOD_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr)) +#define sk_OSSL_TIME_PERIOD_pop(sk) ((OSSL_TIME_PERIOD *)OPENSSL_sk_pop(ossl_check_OSSL_TIME_PERIOD_sk_type(sk))) +#define sk_OSSL_TIME_PERIOD_shift(sk) ((OSSL_TIME_PERIOD *)OPENSSL_sk_shift(ossl_check_OSSL_TIME_PERIOD_sk_type(sk))) +#define sk_OSSL_TIME_PERIOD_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_TIME_PERIOD_sk_type(sk),ossl_check_OSSL_TIME_PERIOD_freefunc_type(freefunc)) +#define sk_OSSL_TIME_PERIOD_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr), (idx)) +#define sk_OSSL_TIME_PERIOD_set(sk, idx, ptr) ((OSSL_TIME_PERIOD *)OPENSSL_sk_set(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), (idx), ossl_check_OSSL_TIME_PERIOD_type(ptr))) +#define sk_OSSL_TIME_PERIOD_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr)) +#define sk_OSSL_TIME_PERIOD_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr)) +#define sk_OSSL_TIME_PERIOD_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr), pnum) +#define sk_OSSL_TIME_PERIOD_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_dup(sk) ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_dup(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk))) +#define sk_OSSL_TIME_PERIOD_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_copyfunc_type(copyfunc), ossl_check_OSSL_TIME_PERIOD_freefunc_type(freefunc))) +#define sk_OSSL_TIME_PERIOD_set_cmp_func(sk, cmp) ((sk_OSSL_TIME_PERIOD_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_compfunc_type(cmp))) + + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_DAY_TIME_BAND, OSSL_DAY_TIME_BAND, OSSL_DAY_TIME_BAND) +#define sk_OSSL_DAY_TIME_BAND_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_value(sk, idx) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_value(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk), (idx))) +#define sk_OSSL_DAY_TIME_BAND_new(cmp) ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_new(ossl_check_OSSL_DAY_TIME_BAND_compfunc_type(cmp))) +#define sk_OSSL_DAY_TIME_BAND_new_null() ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_new_null()) +#define sk_OSSL_DAY_TIME_BAND_new_reserve(cmp, n) ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_DAY_TIME_BAND_compfunc_type(cmp), (n))) +#define sk_OSSL_DAY_TIME_BAND_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), (n)) +#define sk_OSSL_DAY_TIME_BAND_free(sk) OPENSSL_sk_free(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_delete(sk, i) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_delete(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), (i))) +#define sk_OSSL_DAY_TIME_BAND_delete_ptr(sk, ptr) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr))) +#define sk_OSSL_DAY_TIME_BAND_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr)) +#define sk_OSSL_DAY_TIME_BAND_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr)) +#define sk_OSSL_DAY_TIME_BAND_pop(sk) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_pop(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk))) +#define sk_OSSL_DAY_TIME_BAND_shift(sk) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_shift(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk))) +#define sk_OSSL_DAY_TIME_BAND_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk),ossl_check_OSSL_DAY_TIME_BAND_freefunc_type(freefunc)) +#define sk_OSSL_DAY_TIME_BAND_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr), (idx)) +#define sk_OSSL_DAY_TIME_BAND_set(sk, idx, ptr) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_set(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), (idx), ossl_check_OSSL_DAY_TIME_BAND_type(ptr))) +#define sk_OSSL_DAY_TIME_BAND_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr)) +#define sk_OSSL_DAY_TIME_BAND_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr)) +#define sk_OSSL_DAY_TIME_BAND_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr), pnum) +#define sk_OSSL_DAY_TIME_BAND_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_dup(sk) ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_dup(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk))) +#define sk_OSSL_DAY_TIME_BAND_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_copyfunc_type(copyfunc), ossl_check_OSSL_DAY_TIME_BAND_freefunc_type(freefunc))) +#define sk_OSSL_DAY_TIME_BAND_set_cmp_func(sk, cmp) ((sk_OSSL_DAY_TIME_BAND_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_compfunc_type(cmp))) + + +/* Attribute Type and Value */ +typedef struct atav_st { + ASN1_OBJECT *type; + ASN1_TYPE *value; +} OSSL_ATAV; + +typedef struct ATTRIBUTE_TYPE_MAPPING_st { + ASN1_OBJECT *local; + ASN1_OBJECT *remote; +} OSSL_ATTRIBUTE_TYPE_MAPPING; + +typedef struct ATTRIBUTE_VALUE_MAPPING_st { + OSSL_ATAV *local; + OSSL_ATAV *remote; +} OSSL_ATTRIBUTE_VALUE_MAPPING; + +# define OSSL_ATTR_MAP_TYPE 0 +# define OSSL_ATTR_MAP_VALUE 1 + +typedef struct ATTRIBUTE_MAPPING_st { + int type; + union { + OSSL_ATTRIBUTE_TYPE_MAPPING *typeMappings; + OSSL_ATTRIBUTE_VALUE_MAPPING *typeValueMappings; + } choice; +} OSSL_ATTRIBUTE_MAPPING; + +typedef STACK_OF(OSSL_ATTRIBUTE_MAPPING) OSSL_ATTRIBUTE_MAPPINGS; +DECLARE_ASN1_FUNCTIONS(OSSL_ATAV) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_TYPE_MAPPING) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_VALUE_MAPPING) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_MAPPING) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_MAPPINGS) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ATTRIBUTE_MAPPING, OSSL_ATTRIBUTE_MAPPING, OSSL_ATTRIBUTE_MAPPING) +#define sk_OSSL_ATTRIBUTE_MAPPING_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_value(sk, idx) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_value(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), (idx))) +#define sk_OSSL_ATTRIBUTE_MAPPING_new(cmp) ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_new(ossl_check_OSSL_ATTRIBUTE_MAPPING_compfunc_type(cmp))) +#define sk_OSSL_ATTRIBUTE_MAPPING_new_null() ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ATTRIBUTE_MAPPING_new_reserve(cmp, n) ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ATTRIBUTE_MAPPING_compfunc_type(cmp), (n))) +#define sk_OSSL_ATTRIBUTE_MAPPING_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), (n)) +#define sk_OSSL_ATTRIBUTE_MAPPING_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_delete(sk, i) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_delete(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), (i))) +#define sk_OSSL_ATTRIBUTE_MAPPING_delete_ptr(sk, ptr) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr))) +#define sk_OSSL_ATTRIBUTE_MAPPING_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr)) +#define sk_OSSL_ATTRIBUTE_MAPPING_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr)) +#define sk_OSSL_ATTRIBUTE_MAPPING_pop(sk) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_pop(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk))) +#define sk_OSSL_ATTRIBUTE_MAPPING_shift(sk) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_shift(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk))) +#define sk_OSSL_ATTRIBUTE_MAPPING_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk),ossl_check_OSSL_ATTRIBUTE_MAPPING_freefunc_type(freefunc)) +#define sk_OSSL_ATTRIBUTE_MAPPING_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr), (idx)) +#define sk_OSSL_ATTRIBUTE_MAPPING_set(sk, idx, ptr) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_set(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), (idx), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr))) +#define sk_OSSL_ATTRIBUTE_MAPPING_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr)) +#define sk_OSSL_ATTRIBUTE_MAPPING_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr)) +#define sk_OSSL_ATTRIBUTE_MAPPING_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr), pnum) +#define sk_OSSL_ATTRIBUTE_MAPPING_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_dup(sk) ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk))) +#define sk_OSSL_ATTRIBUTE_MAPPING_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_copyfunc_type(copyfunc), ossl_check_OSSL_ATTRIBUTE_MAPPING_freefunc_type(freefunc))) +#define sk_OSSL_ATTRIBUTE_MAPPING_set_cmp_func(sk, cmp) ((sk_OSSL_ATTRIBUTE_MAPPING_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_compfunc_type(cmp))) + + +# define OSSL_AAA_ATTRIBUTE_TYPE 0 +# define OSSL_AAA_ATTRIBUTE_VALUES 1 + +typedef struct ALLOWED_ATTRIBUTES_CHOICE_st { + int type; + union { + ASN1_OBJECT *attributeType; + X509_ATTRIBUTE *attributeTypeandValues; + } choice; +} OSSL_ALLOWED_ATTRIBUTES_CHOICE; + +typedef struct ALLOWED_ATTRIBUTES_ITEM_st { + STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *attributes; + GENERAL_NAME *holderDomain; +} OSSL_ALLOWED_ATTRIBUTES_ITEM; + +typedef STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) OSSL_ALLOWED_ATTRIBUTES_SYNTAX; + +DECLARE_ASN1_FUNCTIONS(OSSL_ALLOWED_ATTRIBUTES_CHOICE) +DECLARE_ASN1_FUNCTIONS(OSSL_ALLOWED_ATTRIBUTES_ITEM) +DECLARE_ASN1_FUNCTIONS(OSSL_ALLOWED_ATTRIBUTES_SYNTAX) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ALLOWED_ATTRIBUTES_CHOICE, OSSL_ALLOWED_ATTRIBUTES_CHOICE, OSSL_ALLOWED_ATTRIBUTES_CHOICE) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_value(sk, idx) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_value(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), (idx))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_new(cmp) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_new(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_compfunc_type(cmp))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_new_null() ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_new_reserve(cmp, n) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_compfunc_type(cmp), (n))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), (n)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_delete(sk, i) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_delete(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), (i))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_delete_ptr(sk, ptr) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_pop(sk) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_pop(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_shift(sk) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_shift(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk),ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_freefunc_type(freefunc)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr), (idx)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_set(sk, idx, ptr) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_set(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), (idx), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr), pnum) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_dup(sk) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_copyfunc_type(copyfunc), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_freefunc_type(freefunc))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_set_cmp_func(sk, cmp) ((sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_compfunc_type(cmp))) + + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ALLOWED_ATTRIBUTES_ITEM, OSSL_ALLOWED_ATTRIBUTES_ITEM, OSSL_ALLOWED_ATTRIBUTES_ITEM) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_value(sk, idx) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_value(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), (idx))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_new(cmp) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_new(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_compfunc_type(cmp))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_new_null() ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_new_reserve(cmp, n) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_compfunc_type(cmp), (n))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), (n)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_delete(sk, i) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_delete(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), (i))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_delete_ptr(sk, ptr) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_pop(sk) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_pop(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_shift(sk) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_shift(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk),ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_freefunc_type(freefunc)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr), (idx)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_set(sk, idx, ptr) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_set(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), (idx), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr), pnum) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_dup(sk) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_copyfunc_type(copyfunc), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_freefunc_type(freefunc))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_set_cmp_func(sk, cmp) ((sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_compfunc_type(cmp))) + + +typedef struct AA_DIST_POINT_st { + DIST_POINT_NAME *distpoint; + ASN1_BIT_STRING *reasons; + int dp_reasons; + ASN1_BOOLEAN indirectCRL; + ASN1_BOOLEAN containsUserAttributeCerts; + ASN1_BOOLEAN containsAACerts; + ASN1_BOOLEAN containsSOAPublicKeyCerts; +} OSSL_AA_DIST_POINT; + +DECLARE_ASN1_FUNCTIONS(OSSL_AA_DIST_POINT) + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/darwin-i386-cc/asm/include/progs.h b/deps/openssl/config/archs/darwin-i386-cc/asm/include/progs.h index be55f61503d405..1b62ec37dec130 100644 --- a/deps/openssl/config/archs/darwin-i386-cc/asm/include/progs.h +++ b/deps/openssl/config/archs/darwin-i386-cc/asm/include/progs.h @@ -56,6 +56,7 @@ extern int s_client_main(int argc, char *argv[]); extern int s_server_main(int argc, char *argv[]); extern int s_time_main(int argc, char *argv[]); extern int sess_id_main(int argc, char *argv[]); +extern int skeyutl_main(int argc, char *argv[]); extern int smime_main(int argc, char *argv[]); extern int speed_main(int argc, char *argv[]); extern int spkac_main(int argc, char *argv[]); @@ -110,6 +111,7 @@ extern const OPTIONS s_client_options[]; extern const OPTIONS s_server_options[]; extern const OPTIONS s_time_options[]; extern const OPTIONS sess_id_options[]; +extern const OPTIONS skeyutl_options[]; extern const OPTIONS smime_options[]; extern const OPTIONS speed_options[]; extern const OPTIONS spkac_options[]; diff --git a/deps/openssl/config/archs/darwin-i386-cc/asm/openssl-cl.gypi b/deps/openssl/config/archs/darwin-i386-cc/asm/openssl-cl.gypi index eeb54ba669b40a..8cecd066b0884d 100644 --- a/deps/openssl/config/archs/darwin-i386-cc/asm/openssl-cl.gypi +++ b/deps/openssl/config/archs/darwin-i386-cc/asm/openssl-cl.gypi @@ -82,6 +82,7 @@ 'openssl/apps/s_server.c', 'openssl/apps/s_time.c', 'openssl/apps/sess_id.c', + 'openssl/apps/skeyutl.c', 'openssl/apps/smime.c', 'openssl/apps/speed.c', 'openssl/apps/spkac.c', @@ -97,12 +98,14 @@ 'openssl/apps/lib/app_rand.c', 'openssl/apps/lib/app_x509.c', 'openssl/apps/lib/apps.c', + 'openssl/apps/lib/apps_opt_printf.c', 'openssl/apps/lib/apps_ui.c', 'openssl/apps/lib/columns.c', 'openssl/apps/lib/engine.c', 'openssl/apps/lib/engine_loader.c', 'openssl/apps/lib/fmt.c', 'openssl/apps/lib/http_server.c', + 'openssl/apps/lib/log.c', 'openssl/apps/lib/names.c', 'openssl/apps/lib/opt.c', 'openssl/apps/lib/s_cb.c', diff --git a/deps/openssl/config/archs/darwin-i386-cc/asm/openssl-fips.gypi b/deps/openssl/config/archs/darwin-i386-cc/asm/openssl-fips.gypi index 808b7f9cbf4f61..a09c8de96c8ba4 100644 --- a/deps/openssl/config/archs/darwin-i386-cc/asm/openssl-fips.gypi +++ b/deps/openssl/config/archs/darwin-i386-cc/asm/openssl-fips.gypi @@ -96,14 +96,15 @@ 'openssl/crypto/evp/kem.c', 'openssl/crypto/evp/keymgmt_lib.c', 'openssl/crypto/evp/keymgmt_meth.c', - 'openssl/crypto/evp/m_sigver.c', 'openssl/crypto/evp/mac_lib.c', 'openssl/crypto/evp/mac_meth.c', 'openssl/crypto/evp/p_lib.c', 'openssl/crypto/evp/pmeth_check.c', 'openssl/crypto/evp/pmeth_gn.c', 'openssl/crypto/evp/pmeth_lib.c', + 'openssl/crypto/evp/s_lib.c', 'openssl/crypto/evp/signature.c', + 'openssl/crypto/evp/skeymgmt_meth.c', 'openssl/crypto/ffc/ffc_backend.c', 'openssl/crypto/ffc/ffc_dh.c', 'openssl/crypto/ffc/ffc_key_generate.c', @@ -111,6 +112,8 @@ 'openssl/crypto/ffc/ffc_params.c', 'openssl/crypto/ffc/ffc_params_generate.c', 'openssl/crypto/ffc/ffc_params_validate.c', + 'openssl/crypto/hashtable/hashfunc.c', + 'openssl/crypto/hashtable/hashtable.c', 'openssl/crypto/hmac/hmac.c', 'openssl/crypto/lhash/lhash.c', 'openssl/crypto/asn1_dsa.c', @@ -140,6 +143,16 @@ 'openssl/crypto/threads_none.c', 'openssl/crypto/threads_pthread.c', 'openssl/crypto/threads_win.c', + 'openssl/crypto/time.c', + 'openssl/crypto/ml_dsa/ml_dsa_encoders.c', + 'openssl/crypto/ml_dsa/ml_dsa_key.c', + 'openssl/crypto/ml_dsa/ml_dsa_key_compress.c', + 'openssl/crypto/ml_dsa/ml_dsa_matrix.c', + 'openssl/crypto/ml_dsa/ml_dsa_ntt.c', + 'openssl/crypto/ml_dsa/ml_dsa_params.c', + 'openssl/crypto/ml_dsa/ml_dsa_sample.c', + 'openssl/crypto/ml_dsa/ml_dsa_sign.c', + 'openssl/crypto/ml_kem/ml_kem.c', 'openssl/crypto/modes/cbc128.c', 'openssl/crypto/modes/ccm128.c', 'openssl/crypto/modes/cfb128.c', @@ -148,6 +161,7 @@ 'openssl/crypto/modes/ofb128.c', 'openssl/crypto/modes/wrap128.c', 'openssl/crypto/modes/xts128.c', + 'openssl/crypto/modes/xts128gb.c', 'openssl/crypto/property/defn_cache.c', 'openssl/crypto/property/property.c', 'openssl/crypto/property/property_parse.c', @@ -176,7 +190,23 @@ 'openssl/crypto/sha/sha256.c', 'openssl/crypto/sha/sha3.c', 'openssl/crypto/sha/sha512.c', + 'openssl/crypto/slh_dsa/slh_adrs.c', + 'openssl/crypto/slh_dsa/slh_dsa.c', + 'openssl/crypto/slh_dsa/slh_dsa_hash_ctx.c', + 'openssl/crypto/slh_dsa/slh_dsa_key.c', + 'openssl/crypto/slh_dsa/slh_fors.c', + 'openssl/crypto/slh_dsa/slh_hash.c', + 'openssl/crypto/slh_dsa/slh_hypertree.c', + 'openssl/crypto/slh_dsa/slh_params.c', + 'openssl/crypto/slh_dsa/slh_wots.c', + 'openssl/crypto/slh_dsa/slh_xmss.c', 'openssl/crypto/stack/stack.c', + 'openssl/crypto/thread/arch/thread_none.c', + 'openssl/crypto/thread/arch/thread_posix.c', + 'openssl/crypto/thread/arch/thread_win.c', + 'openssl/crypto/thread/api.c', + 'openssl/crypto/thread/arch.c', + 'openssl/crypto/thread/internal.c', 'openssl/providers/common/der/der_rsa_sig.c', 'openssl/providers/common/bio_prov.c', 'openssl/providers/common/capabilities.c', @@ -185,6 +215,7 @@ 'openssl/providers/common/provider_util.c', 'openssl/providers/common/securitycheck.c', 'openssl/providers/common/securitycheck_fips.c', + 'openssl/providers/fips/fipsindicator.c', 'openssl/providers/fips/fipsprov.c', 'openssl/providers/fips/self_test.c', 'openssl/providers/fips/self_test_kats.c', @@ -222,6 +253,8 @@ 'openssl/providers/implementations/kdfs/sskdf.c', 'openssl/providers/implementations/kdfs/tls1_prf.c', 'openssl/providers/implementations/kdfs/x942kdf.c', + 'openssl/providers/implementations/kem/ml_kem_kem.c', + 'openssl/providers/implementations/kem/mlx_kem.c', 'openssl/providers/implementations/kem/rsa_kem.c', 'openssl/providers/implementations/keymgmt/dh_kmgmt.c', 'openssl/providers/implementations/keymgmt/dsa_kmgmt.c', @@ -229,29 +262,39 @@ 'openssl/providers/implementations/keymgmt/ecx_kmgmt.c', 'openssl/providers/implementations/keymgmt/kdf_legacy_kmgmt.c', 'openssl/providers/implementations/keymgmt/mac_legacy_kmgmt.c', + 'openssl/providers/implementations/keymgmt/ml_dsa_kmgmt.c', + 'openssl/providers/implementations/keymgmt/ml_kem_kmgmt.c', + 'openssl/providers/implementations/keymgmt/mlx_kmgmt.c', 'openssl/providers/implementations/keymgmt/rsa_kmgmt.c', + 'openssl/providers/implementations/keymgmt/slh_dsa_kmgmt.c', 'openssl/providers/implementations/macs/cmac_prov.c', 'openssl/providers/implementations/macs/gmac_prov.c', 'openssl/providers/implementations/macs/hmac_prov.c', 'openssl/providers/implementations/macs/kmac_prov.c', - 'openssl/providers/implementations/rands/crngt.c', 'openssl/providers/implementations/rands/drbg.c', 'openssl/providers/implementations/rands/drbg_ctr.c', 'openssl/providers/implementations/rands/drbg_hash.c', 'openssl/providers/implementations/rands/drbg_hmac.c', + 'openssl/providers/implementations/rands/fips_crng_test.c', 'openssl/providers/implementations/rands/test_rng.c', 'openssl/providers/implementations/signature/dsa_sig.c', 'openssl/providers/implementations/signature/ecdsa_sig.c', 'openssl/providers/implementations/signature/eddsa_sig.c', 'openssl/providers/implementations/signature/mac_legacy_sig.c', + 'openssl/providers/implementations/signature/ml_dsa_sig.c', 'openssl/providers/implementations/signature/rsa_sig.c', - 'openssl/ssl/s3_cbc.c', + 'openssl/providers/implementations/signature/slh_dsa_sig.c', + 'openssl/providers/implementations/skeymgmt/aes_skmgmt.c', + 'openssl/providers/implementations/skeymgmt/generic.c', + 'openssl/ssl/record/methods/ssl3_cbc.c', 'openssl/providers/common/der/der_dsa_key.c', 'openssl/providers/common/der/der_dsa_sig.c', 'openssl/providers/common/der/der_ec_key.c', 'openssl/providers/common/der/der_ec_sig.c', 'openssl/providers/common/der/der_ecx_key.c', + 'openssl/providers/common/der/der_ml_dsa_key.c', 'openssl/providers/common/der/der_rsa_key.c', + 'openssl/providers/common/der/der_slh_dsa_key.c', 'openssl/providers/common/provider_ctx.c', 'openssl/providers/common/provider_err.c', 'openssl/providers/implementations/ciphers/ciphercommon.c', @@ -262,7 +305,7 @@ 'openssl/providers/implementations/ciphers/ciphercommon_gcm_hw.c', 'openssl/providers/implementations/ciphers/ciphercommon_hw.c', 'openssl/providers/implementations/digests/digestcommon.c', - 'openssl/ssl/record/tls_pad.c', + 'openssl/ssl/record/methods/tls_pad.c', 'openssl/providers/fips/fips_entry.c', ], @@ -280,6 +323,7 @@ './config/archs/darwin-i386-cc/asm/crypto/des/crypt586.S', './config/archs/darwin-i386-cc/asm/crypto/des/des-586.S', './config/archs/darwin-i386-cc/asm/crypto/ec/ecp_nistz256-x86.S', + './config/archs/darwin-i386-cc/asm/crypto/params_idx.c', './config/archs/darwin-i386-cc/asm/crypto/x86cpuid.S', './config/archs/darwin-i386-cc/asm/crypto/md5/md5-586.S', './config/archs/darwin-i386-cc/asm/crypto/modes/ghash-x86.S', @@ -296,7 +340,9 @@ './config/archs/darwin-i386-cc/asm/providers/common/der/der_dsa_gen.c', './config/archs/darwin-i386-cc/asm/providers/common/der/der_ec_gen.c', './config/archs/darwin-i386-cc/asm/providers/common/der/der_ecx_gen.c', + './config/archs/darwin-i386-cc/asm/providers/common/der/der_ml_dsa_gen.c', './config/archs/darwin-i386-cc/asm/providers/common/der/der_rsa_gen.c', + './config/archs/darwin-i386-cc/asm/providers/common/der/der_slh_dsa_gen.c', './config/archs/darwin-i386-cc/asm/providers/common/der/der_wrap_gen.c', ], diff --git a/deps/openssl/config/archs/darwin-i386-cc/asm/openssl.gypi b/deps/openssl/config/archs/darwin-i386-cc/asm/openssl.gypi index 49b8dd0ee2b6ab..494e7ffed49ed2 100644 --- a/deps/openssl/config/archs/darwin-i386-cc/asm/openssl.gypi +++ b/deps/openssl/config/archs/darwin-i386-cc/asm/openssl.gypi @@ -7,14 +7,15 @@ 'openssl/ssl/d1_srtp.c', 'openssl/ssl/methods.c', 'openssl/ssl/pqueue.c', + 'openssl/ssl/priority_queue.c', 'openssl/ssl/s3_enc.c', 'openssl/ssl/s3_lib.c', 'openssl/ssl/s3_msg.c', 'openssl/ssl/ssl_asn1.c', 'openssl/ssl/ssl_cert.c', + 'openssl/ssl/ssl_cert_comp.c', 'openssl/ssl/ssl_ciph.c', 'openssl/ssl/ssl_conf.c', - 'openssl/ssl/ssl_err.c', 'openssl/ssl/ssl_err_legacy.c', 'openssl/ssl/ssl_init.c', 'openssl/ssl/ssl_lib.c', @@ -31,12 +32,60 @@ 'openssl/ssl/tls13_enc.c', 'openssl/ssl/tls_depr.c', 'openssl/ssl/tls_srp.c', - 'openssl/ssl/record/dtls1_bitmap.c', + 'openssl/ssl/quic/cc_newreno.c', + 'openssl/ssl/quic/json_enc.c', + 'openssl/ssl/quic/qlog.c', + 'openssl/ssl/quic/qlog_event_helpers.c', + 'openssl/ssl/quic/quic_ackm.c', + 'openssl/ssl/quic/quic_cfq.c', + 'openssl/ssl/quic/quic_channel.c', + 'openssl/ssl/quic/quic_demux.c', + 'openssl/ssl/quic/quic_engine.c', + 'openssl/ssl/quic/quic_fc.c', + 'openssl/ssl/quic/quic_fifd.c', + 'openssl/ssl/quic/quic_impl.c', + 'openssl/ssl/quic/quic_lcidm.c', + 'openssl/ssl/quic/quic_method.c', + 'openssl/ssl/quic/quic_obj.c', + 'openssl/ssl/quic/quic_port.c', + 'openssl/ssl/quic/quic_rcidm.c', + 'openssl/ssl/quic/quic_reactor.c', + 'openssl/ssl/quic/quic_reactor_wait_ctx.c', + 'openssl/ssl/quic/quic_record_rx.c', + 'openssl/ssl/quic/quic_record_shared.c', + 'openssl/ssl/quic/quic_record_tx.c', + 'openssl/ssl/quic/quic_record_util.c', + 'openssl/ssl/quic/quic_rstream.c', + 'openssl/ssl/quic/quic_rx_depack.c', + 'openssl/ssl/quic/quic_sf_list.c', + 'openssl/ssl/quic/quic_srt_gen.c', + 'openssl/ssl/quic/quic_srtm.c', + 'openssl/ssl/quic/quic_sstream.c', + 'openssl/ssl/quic/quic_statm.c', + 'openssl/ssl/quic/quic_stream_map.c', + 'openssl/ssl/quic/quic_thread_assist.c', + 'openssl/ssl/quic/quic_tls.c', + 'openssl/ssl/quic/quic_tls_api.c', + 'openssl/ssl/quic/quic_trace.c', + 'openssl/ssl/quic/quic_tserver.c', + 'openssl/ssl/quic/quic_txp.c', + 'openssl/ssl/quic/quic_txpim.c', + 'openssl/ssl/quic/quic_types.c', + 'openssl/ssl/quic/quic_wire.c', + 'openssl/ssl/quic/quic_wire_pkt.c', + 'openssl/ssl/quic/uint_set.c', 'openssl/ssl/record/rec_layer_d1.c', 'openssl/ssl/record/rec_layer_s3.c', - 'openssl/ssl/record/ssl3_buffer.c', - 'openssl/ssl/record/ssl3_record.c', - 'openssl/ssl/record/ssl3_record_tls13.c', + 'openssl/ssl/record/methods/dtls_meth.c', + 'openssl/ssl/record/methods/ssl3_meth.c', + 'openssl/ssl/record/methods/tls13_meth.c', + 'openssl/ssl/record/methods/tls1_meth.c', + 'openssl/ssl/record/methods/tls_common.c', + 'openssl/ssl/record/methods/tls_multib.c', + 'openssl/ssl/record/methods/tlsany_meth.c', + 'openssl/ssl/rio/poll_builder.c', + 'openssl/ssl/rio/poll_immediate.c', + 'openssl/ssl/rio/rio_notifier.c', 'openssl/ssl/statem/extensions.c', 'openssl/ssl/statem/extensions_clnt.c', 'openssl/ssl/statem/extensions_cust.c', @@ -147,6 +196,7 @@ 'openssl/crypto/bio/bss_conn.c', 'openssl/crypto/bio/bss_core.c', 'openssl/crypto/bio/bss_dgram.c', + 'openssl/crypto/bio/bss_dgram_pair.c', 'openssl/crypto/bio/bss_fd.c', 'openssl/crypto/bio/bss_file.c', 'openssl/crypto/bio/bss_log.c', @@ -202,6 +252,7 @@ 'openssl/crypto/cmp/cmp_client.c', 'openssl/crypto/cmp/cmp_ctx.c', 'openssl/crypto/cmp/cmp_err.c', + 'openssl/crypto/cmp/cmp_genm.c', 'openssl/crypto/cmp/cmp_hdr.c', 'openssl/crypto/cmp/cmp_http.c', 'openssl/crypto/cmp/cmp_msg.c', @@ -376,7 +427,9 @@ 'openssl/crypto/err/err_all.c', 'openssl/crypto/err/err_all_legacy.c', 'openssl/crypto/err/err_blocks.c', + 'openssl/crypto/err/err_mark.c', 'openssl/crypto/err/err_prn.c', + 'openssl/crypto/err/err_save.c', 'openssl/crypto/ess/ess_asn1.c', 'openssl/crypto/ess/ess_err.c', 'openssl/crypto/ess/ess_lib.c', @@ -459,7 +512,9 @@ 'openssl/crypto/evp/pmeth_check.c', 'openssl/crypto/evp/pmeth_gn.c', 'openssl/crypto/evp/pmeth_lib.c', + 'openssl/crypto/evp/s_lib.c', 'openssl/crypto/evp/signature.c', + 'openssl/crypto/evp/skeymgmt_meth.c', 'openssl/crypto/ffc/ffc_backend.c', 'openssl/crypto/ffc/ffc_dh.c', 'openssl/crypto/ffc/ffc_key_generate.c', @@ -467,7 +522,11 @@ 'openssl/crypto/ffc/ffc_params.c', 'openssl/crypto/ffc/ffc_params_generate.c', 'openssl/crypto/ffc/ffc_params_validate.c', + 'openssl/crypto/hashtable/hashfunc.c', + 'openssl/crypto/hashtable/hashtable.c', 'openssl/crypto/hmac/hmac.c', + 'openssl/crypto/hpke/hpke.c', + 'openssl/crypto/hpke/hpke_util.c', 'openssl/crypto/http/http_client.c', 'openssl/crypto/http/http_err.c', 'openssl/crypto/http/http_lib.c', @@ -481,6 +540,7 @@ 'openssl/crypto/lhash/lhash.c', 'openssl/crypto/asn1_dsa.c', 'openssl/crypto/bsearch.c', + 'openssl/crypto/comp_methods.c', 'openssl/crypto/context.c', 'openssl/crypto/core_algorithm.c', 'openssl/crypto/core_fetch.c', @@ -490,10 +550,13 @@ 'openssl/crypto/cryptlib.c', 'openssl/crypto/ctype.c', 'openssl/crypto/cversion.c', + 'openssl/crypto/defaults.c', 'openssl/crypto/der_writer.c', + 'openssl/crypto/deterministic_nonce.c', 'openssl/crypto/ebcdic.c', 'openssl/crypto/ex_data.c', 'openssl/crypto/getenv.c', + 'openssl/crypto/indicator_core.c', 'openssl/crypto/info.c', 'openssl/crypto/init.c', 'openssl/crypto/initthread.c', @@ -517,12 +580,16 @@ 'openssl/crypto/provider_core.c', 'openssl/crypto/provider_predefined.c', 'openssl/crypto/punycode.c', + 'openssl/crypto/quic_vlint.c', 'openssl/crypto/self_test_core.c', + 'openssl/crypto/sleep.c', 'openssl/crypto/sparse_array.c', + 'openssl/crypto/ssl_err.c', 'openssl/crypto/threads_lib.c', 'openssl/crypto/threads_none.c', 'openssl/crypto/threads_pthread.c', 'openssl/crypto/threads_win.c', + 'openssl/crypto/time.c', 'openssl/crypto/trace.c', 'openssl/crypto/uid.c', 'openssl/crypto/md4/md4_dgst.c', @@ -532,6 +599,15 @@ 'openssl/crypto/md5/md5_sha1.c', 'openssl/crypto/mdc2/mdc2_one.c', 'openssl/crypto/mdc2/mdc2dgst.c', + 'openssl/crypto/ml_dsa/ml_dsa_encoders.c', + 'openssl/crypto/ml_dsa/ml_dsa_key.c', + 'openssl/crypto/ml_dsa/ml_dsa_key_compress.c', + 'openssl/crypto/ml_dsa/ml_dsa_matrix.c', + 'openssl/crypto/ml_dsa/ml_dsa_ntt.c', + 'openssl/crypto/ml_dsa/ml_dsa_params.c', + 'openssl/crypto/ml_dsa/ml_dsa_sample.c', + 'openssl/crypto/ml_dsa/ml_dsa_sign.c', + 'openssl/crypto/ml_kem/ml_kem.c', 'openssl/crypto/modes/cbc128.c', 'openssl/crypto/modes/ccm128.c', 'openssl/crypto/modes/cfb128.c', @@ -543,6 +619,7 @@ 'openssl/crypto/modes/siv128.c', 'openssl/crypto/modes/wrap128.c', 'openssl/crypto/modes/xts128.c', + 'openssl/crypto/modes/xts128gb.c', 'openssl/crypto/objects/o_names.c', 'openssl/crypto/objects/obj_dat.c', 'openssl/crypto/objects/obj_err.c', @@ -606,6 +683,7 @@ 'openssl/crypto/rand/rand_lib.c', 'openssl/crypto/rand/rand_meth.c', 'openssl/crypto/rand/rand_pool.c', + 'openssl/crypto/rand/rand_uniform.c', 'openssl/crypto/rand/randfile.c', 'openssl/crypto/rc2/rc2_cbc.c', 'openssl/crypto/rc2/rc2_ecb.c', @@ -652,6 +730,16 @@ 'openssl/crypto/sha/sha3.c', 'openssl/crypto/sha/sha512.c', 'openssl/crypto/siphash/siphash.c', + 'openssl/crypto/slh_dsa/slh_adrs.c', + 'openssl/crypto/slh_dsa/slh_dsa.c', + 'openssl/crypto/slh_dsa/slh_dsa_hash_ctx.c', + 'openssl/crypto/slh_dsa/slh_dsa_key.c', + 'openssl/crypto/slh_dsa/slh_fors.c', + 'openssl/crypto/slh_dsa/slh_hash.c', + 'openssl/crypto/slh_dsa/slh_hypertree.c', + 'openssl/crypto/slh_dsa/slh_params.c', + 'openssl/crypto/slh_dsa/slh_wots.c', + 'openssl/crypto/slh_dsa/slh_xmss.c', 'openssl/crypto/sm2/sm2_crypt.c', 'openssl/crypto/sm2/sm2_err.c', 'openssl/crypto/sm2/sm2_key.c', @@ -669,6 +757,12 @@ 'openssl/crypto/store/store_register.c', 'openssl/crypto/store/store_result.c', 'openssl/crypto/store/store_strings.c', + 'openssl/crypto/thread/arch/thread_none.c', + 'openssl/crypto/thread/arch/thread_posix.c', + 'openssl/crypto/thread/arch/thread_win.c', + 'openssl/crypto/thread/api.c', + 'openssl/crypto/thread/arch.c', + 'openssl/crypto/thread/internal.c', 'openssl/crypto/ts/ts_asn1.c', 'openssl/crypto/ts/ts_conf.c', 'openssl/crypto/ts/ts_err.c', @@ -697,14 +791,22 @@ 'openssl/crypto/x509/pcy_map.c', 'openssl/crypto/x509/pcy_node.c', 'openssl/crypto/x509/pcy_tree.c', + 'openssl/crypto/x509/t_acert.c', 'openssl/crypto/x509/t_crl.c', 'openssl/crypto/x509/t_req.c', 'openssl/crypto/x509/t_x509.c', + 'openssl/crypto/x509/v3_aaa.c', + 'openssl/crypto/x509/v3_ac_tgt.c', 'openssl/crypto/x509/v3_addr.c', 'openssl/crypto/x509/v3_admis.c', 'openssl/crypto/x509/v3_akeya.c', 'openssl/crypto/x509/v3_akid.c', 'openssl/crypto/x509/v3_asid.c', + 'openssl/crypto/x509/v3_attrdesc.c', + 'openssl/crypto/x509/v3_attrmap.c', + 'openssl/crypto/x509/v3_audit_id.c', + 'openssl/crypto/x509/v3_authattid.c', + 'openssl/crypto/x509/v3_battcons.c', 'openssl/crypto/x509/v3_bcons.c', 'openssl/crypto/x509/v3_bitst.c', 'openssl/crypto/x509/v3_conf.c', @@ -713,12 +815,17 @@ 'openssl/crypto/x509/v3_enum.c', 'openssl/crypto/x509/v3_extku.c', 'openssl/crypto/x509/v3_genn.c', + 'openssl/crypto/x509/v3_group_ac.c', 'openssl/crypto/x509/v3_ia5.c', + 'openssl/crypto/x509/v3_ind_iss.c', 'openssl/crypto/x509/v3_info.c', 'openssl/crypto/x509/v3_int.c', + 'openssl/crypto/x509/v3_iobo.c', 'openssl/crypto/x509/v3_ist.c', 'openssl/crypto/x509/v3_lib.c', 'openssl/crypto/x509/v3_ncons.c', + 'openssl/crypto/x509/v3_no_ass.c', + 'openssl/crypto/x509/v3_no_rev_avail.c', 'openssl/crypto/x509/v3_pci.c', 'openssl/crypto/x509/v3_pcia.c', 'openssl/crypto/x509/v3_pcons.c', @@ -726,13 +833,20 @@ 'openssl/crypto/x509/v3_pmaps.c', 'openssl/crypto/x509/v3_prn.c', 'openssl/crypto/x509/v3_purp.c', + 'openssl/crypto/x509/v3_rolespec.c', 'openssl/crypto/x509/v3_san.c', + 'openssl/crypto/x509/v3_sda.c', + 'openssl/crypto/x509/v3_single_use.c', 'openssl/crypto/x509/v3_skid.c', + 'openssl/crypto/x509/v3_soa_id.c', 'openssl/crypto/x509/v3_sxnet.c', + 'openssl/crypto/x509/v3_timespec.c', 'openssl/crypto/x509/v3_tlsf.c', + 'openssl/crypto/x509/v3_usernotice.c', 'openssl/crypto/x509/v3_utf8.c', 'openssl/crypto/x509/v3_utl.c', 'openssl/crypto/x509/v3err.c', + 'openssl/crypto/x509/x509_acert.c', 'openssl/crypto/x509/x509_att.c', 'openssl/crypto/x509/x509_cmp.c', 'openssl/crypto/x509/x509_d2.c', @@ -750,6 +864,7 @@ 'openssl/crypto/x509/x509_v3.c', 'openssl/crypto/x509/x509_vfy.c', 'openssl/crypto/x509/x509_vpm.c', + 'openssl/crypto/x509/x509aset.c', 'openssl/crypto/x509/x509cset.c', 'openssl/crypto/x509/x509name.c', 'openssl/crypto/x509/x509rset.c', @@ -759,6 +874,7 @@ 'openssl/crypto/x509/x_attrib.c', 'openssl/crypto/x509/x_crl.c', 'openssl/crypto/x509/x_exten.c', + 'openssl/crypto/x509/x_ietfatt.c', 'openssl/crypto/x509/x_name.c', 'openssl/crypto/x509/x_pubkey.c', 'openssl/crypto/x509/x_req.c', @@ -790,6 +906,9 @@ 'openssl/providers/implementations/ciphers/cipher_aes_ccm_hw.c', 'openssl/providers/implementations/ciphers/cipher_aes_gcm.c', 'openssl/providers/implementations/ciphers/cipher_aes_gcm_hw.c', + 'openssl/providers/implementations/ciphers/cipher_aes_gcm_siv.c', + 'openssl/providers/implementations/ciphers/cipher_aes_gcm_siv_hw.c', + 'openssl/providers/implementations/ciphers/cipher_aes_gcm_siv_polyval.c', 'openssl/providers/implementations/ciphers/cipher_aes_hw.c', 'openssl/providers/implementations/ciphers/cipher_aes_ocb.c', 'openssl/providers/implementations/ciphers/cipher_aes_ocb_hw.c', @@ -814,7 +933,13 @@ 'openssl/providers/implementations/ciphers/cipher_cts.c', 'openssl/providers/implementations/ciphers/cipher_null.c', 'openssl/providers/implementations/ciphers/cipher_sm4.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_ccm.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_ccm_hw.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_gcm.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_gcm_hw.c', 'openssl/providers/implementations/ciphers/cipher_sm4_hw.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_xts.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_xts_hw.c', 'openssl/providers/implementations/ciphers/cipher_tdes.c', 'openssl/providers/implementations/ciphers/cipher_tdes_common.c', 'openssl/providers/implementations/ciphers/cipher_tdes_default.c', @@ -843,11 +968,16 @@ 'openssl/providers/implementations/encode_decode/encode_key2ms.c', 'openssl/providers/implementations/encode_decode/encode_key2text.c', 'openssl/providers/implementations/encode_decode/endecoder_common.c', + 'openssl/providers/implementations/encode_decode/ml_common_codecs.c', + 'openssl/providers/implementations/encode_decode/ml_dsa_codecs.c', + 'openssl/providers/implementations/encode_decode/ml_kem_codecs.c', 'openssl/providers/implementations/exchange/dh_exch.c', 'openssl/providers/implementations/exchange/ecdh_exch.c', 'openssl/providers/implementations/exchange/ecx_exch.c', 'openssl/providers/implementations/exchange/kdf_exch.c', + 'openssl/providers/implementations/kdfs/argon2.c', 'openssl/providers/implementations/kdfs/hkdf.c', + 'openssl/providers/implementations/kdfs/hmacdrbg_kdf.c', 'openssl/providers/implementations/kdfs/kbkdf.c', 'openssl/providers/implementations/kdfs/krb5kdf.c', 'openssl/providers/implementations/kdfs/pbkdf2.c', @@ -858,6 +988,11 @@ 'openssl/providers/implementations/kdfs/sskdf.c', 'openssl/providers/implementations/kdfs/tls1_prf.c', 'openssl/providers/implementations/kdfs/x942kdf.c', + 'openssl/providers/implementations/kem/ec_kem.c', + 'openssl/providers/implementations/kem/ecx_kem.c', + 'openssl/providers/implementations/kem/kem_util.c', + 'openssl/providers/implementations/kem/ml_kem_kem.c', + 'openssl/providers/implementations/kem/mlx_kem.c', 'openssl/providers/implementations/kem/rsa_kem.c', 'openssl/providers/implementations/keymgmt/dh_kmgmt.c', 'openssl/providers/implementations/keymgmt/dsa_kmgmt.c', @@ -865,7 +1000,11 @@ 'openssl/providers/implementations/keymgmt/ecx_kmgmt.c', 'openssl/providers/implementations/keymgmt/kdf_legacy_kmgmt.c', 'openssl/providers/implementations/keymgmt/mac_legacy_kmgmt.c', + 'openssl/providers/implementations/keymgmt/ml_dsa_kmgmt.c', + 'openssl/providers/implementations/keymgmt/ml_kem_kmgmt.c', + 'openssl/providers/implementations/keymgmt/mlx_kmgmt.c', 'openssl/providers/implementations/keymgmt/rsa_kmgmt.c', + 'openssl/providers/implementations/keymgmt/slh_dsa_kmgmt.c', 'openssl/providers/implementations/macs/blake2b_mac.c', 'openssl/providers/implementations/macs/blake2s_mac.c', 'openssl/providers/implementations/macs/cmac_prov.c', @@ -874,12 +1013,12 @@ 'openssl/providers/implementations/macs/kmac_prov.c', 'openssl/providers/implementations/macs/poly1305_prov.c', 'openssl/providers/implementations/macs/siphash_prov.c', - 'openssl/providers/implementations/rands/crngt.c', 'openssl/providers/implementations/rands/drbg.c', 'openssl/providers/implementations/rands/drbg_ctr.c', 'openssl/providers/implementations/rands/drbg_hash.c', 'openssl/providers/implementations/rands/drbg_hmac.c', 'openssl/providers/implementations/rands/seed_src.c', + 'openssl/providers/implementations/rands/seed_src_jitter.c', 'openssl/providers/implementations/rands/test_rng.c', 'openssl/providers/implementations/rands/seeding/rand_cpu_x86.c', 'openssl/providers/implementations/rands/seeding/rand_tsc.c', @@ -889,17 +1028,23 @@ 'openssl/providers/implementations/signature/ecdsa_sig.c', 'openssl/providers/implementations/signature/eddsa_sig.c', 'openssl/providers/implementations/signature/mac_legacy_sig.c', + 'openssl/providers/implementations/signature/ml_dsa_sig.c', 'openssl/providers/implementations/signature/rsa_sig.c', + 'openssl/providers/implementations/signature/slh_dsa_sig.c', 'openssl/providers/implementations/signature/sm2_sig.c', + 'openssl/providers/implementations/skeymgmt/aes_skmgmt.c', + 'openssl/providers/implementations/skeymgmt/generic.c', 'openssl/providers/implementations/storemgmt/file_store.c', 'openssl/providers/implementations/storemgmt/file_store_any2obj.c', - 'openssl/ssl/s3_cbc.c', + 'openssl/ssl/record/methods/ssl3_cbc.c', 'openssl/providers/common/der/der_dsa_key.c', 'openssl/providers/common/der/der_dsa_sig.c', 'openssl/providers/common/der/der_ec_key.c', 'openssl/providers/common/der/der_ec_sig.c', 'openssl/providers/common/der/der_ecx_key.c', + 'openssl/providers/common/der/der_ml_dsa_key.c', 'openssl/providers/common/der/der_rsa_key.c', + 'openssl/providers/common/der/der_slh_dsa_key.c', 'openssl/providers/common/provider_ctx.c', 'openssl/providers/common/provider_err.c', 'openssl/providers/implementations/ciphers/ciphercommon.c', @@ -910,7 +1055,7 @@ 'openssl/providers/implementations/ciphers/ciphercommon_gcm_hw.c', 'openssl/providers/implementations/ciphers/ciphercommon_hw.c', 'openssl/providers/implementations/digests/digestcommon.c', - 'openssl/ssl/record/tls_pad.c', + 'openssl/ssl/record/methods/tls_pad.c', 'openssl/providers/implementations/ciphers/cipher_blowfish.c', 'openssl/providers/implementations/ciphers/cipher_blowfish_hw.c', 'openssl/providers/implementations/ciphers/cipher_cast5.c', @@ -935,6 +1080,7 @@ 'openssl/providers/implementations/digests/ripemd_prov.c', 'openssl/providers/implementations/digests/wp_prov.c', 'openssl/providers/implementations/kdfs/pbkdf1.c', + 'openssl/providers/implementations/kdfs/pvkkdf.c', 'openssl/providers/prov_running.c', 'openssl/providers/legacyprov.c', ], @@ -952,6 +1098,7 @@ './config/archs/darwin-i386-cc/asm/crypto/des/crypt586.S', './config/archs/darwin-i386-cc/asm/crypto/des/des-586.S', './config/archs/darwin-i386-cc/asm/crypto/ec/ecp_nistz256-x86.S', + './config/archs/darwin-i386-cc/asm/crypto/params_idx.c', './config/archs/darwin-i386-cc/asm/crypto/x86cpuid.S', './config/archs/darwin-i386-cc/asm/crypto/md5/md5-586.S', './config/archs/darwin-i386-cc/asm/crypto/modes/ghash-x86.S', @@ -968,7 +1115,9 @@ './config/archs/darwin-i386-cc/asm/providers/common/der/der_dsa_gen.c', './config/archs/darwin-i386-cc/asm/providers/common/der/der_ec_gen.c', './config/archs/darwin-i386-cc/asm/providers/common/der/der_ecx_gen.c', + './config/archs/darwin-i386-cc/asm/providers/common/der/der_ml_dsa_gen.c', './config/archs/darwin-i386-cc/asm/providers/common/der/der_rsa_gen.c', + './config/archs/darwin-i386-cc/asm/providers/common/der/der_slh_dsa_gen.c', './config/archs/darwin-i386-cc/asm/providers/common/der/der_wrap_gen.c', ], 'openssl_defines_darwin-i386-cc': [ diff --git a/deps/openssl/config/archs/darwin-i386-cc/asm/providers/common/der/der_ml_dsa_gen.c b/deps/openssl/config/archs/darwin-i386-cc/asm/providers/common/der/der_ml_dsa_gen.c new file mode 100644 index 00000000000000..4a8a113a268578 --- /dev/null +++ b/deps/openssl/config/archs/darwin-i386-cc/asm/providers/common/der/der_ml_dsa_gen.c @@ -0,0 +1,37 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from providers/common/der/der_ml_dsa_gen.c.in + * + * Copyright 2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include "prov/der_ml_dsa.h" + +/* Well known OIDs precompiled */ + +/* + * id-ml-dsa-44 OBJECT IDENTIFIER ::= { sigAlgs 17 } + */ +const unsigned char ossl_der_oid_id_ml_dsa_44[DER_OID_SZ_id_ml_dsa_44] = { + DER_OID_V_id_ml_dsa_44 +}; + +/* + * id-ml-dsa-65 OBJECT IDENTIFIER ::= { sigAlgs 18 } + */ +const unsigned char ossl_der_oid_id_ml_dsa_65[DER_OID_SZ_id_ml_dsa_65] = { + DER_OID_V_id_ml_dsa_65 +}; + +/* + * id-ml-dsa-87 OBJECT IDENTIFIER ::= { sigAlgs 19 } + */ +const unsigned char ossl_der_oid_id_ml_dsa_87[DER_OID_SZ_id_ml_dsa_87] = { + DER_OID_V_id_ml_dsa_87 +}; + diff --git a/deps/openssl/config/archs/darwin-i386-cc/asm/providers/common/der/der_slh_dsa_gen.c b/deps/openssl/config/archs/darwin-i386-cc/asm/providers/common/der/der_slh_dsa_gen.c new file mode 100644 index 00000000000000..1419a9515097dd --- /dev/null +++ b/deps/openssl/config/archs/darwin-i386-cc/asm/providers/common/der/der_slh_dsa_gen.c @@ -0,0 +1,100 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from providers/common/der/der_slh_dsa_gen.c.in + * + * Copyright 2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include "prov/der_slh_dsa.h" + +/* Well known OIDs precompiled */ + +/* + * id-slh-dsa-sha2-128s OBJECT IDENTIFIER ::= { sigAlgs 20 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_128s[DER_OID_SZ_id_slh_dsa_sha2_128s] = { + DER_OID_V_id_slh_dsa_sha2_128s +}; + +/* + * id-slh-dsa-sha2-128f OBJECT IDENTIFIER ::= { sigAlgs 21 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_128f[DER_OID_SZ_id_slh_dsa_sha2_128f] = { + DER_OID_V_id_slh_dsa_sha2_128f +}; + +/* + * id-slh-dsa-sha2-192s OBJECT IDENTIFIER ::= { sigAlgs 22 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_192s[DER_OID_SZ_id_slh_dsa_sha2_192s] = { + DER_OID_V_id_slh_dsa_sha2_192s +}; + +/* + * id-slh-dsa-sha2-192f OBJECT IDENTIFIER ::= { sigAlgs 23 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_192f[DER_OID_SZ_id_slh_dsa_sha2_192f] = { + DER_OID_V_id_slh_dsa_sha2_192f +}; + +/* + * id-slh-dsa-sha2-256s OBJECT IDENTIFIER ::= { sigAlgs 24 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_256s[DER_OID_SZ_id_slh_dsa_sha2_256s] = { + DER_OID_V_id_slh_dsa_sha2_256s +}; + +/* + * id-slh-dsa-sha2-256f OBJECT IDENTIFIER ::= { sigAlgs 25 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_256f[DER_OID_SZ_id_slh_dsa_sha2_256f] = { + DER_OID_V_id_slh_dsa_sha2_256f +}; + +/* + * id-slh-dsa-shake-128s OBJECT IDENTIFIER ::= { sigAlgs 26 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_128s[DER_OID_SZ_id_slh_dsa_shake_128s] = { + DER_OID_V_id_slh_dsa_shake_128s +}; + +/* + * id-slh-dsa-shake-128f OBJECT IDENTIFIER ::= { sigAlgs 27 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_128f[DER_OID_SZ_id_slh_dsa_shake_128f] = { + DER_OID_V_id_slh_dsa_shake_128f +}; + +/* + * id-slh-dsa-shake-192s OBJECT IDENTIFIER ::= { sigAlgs 28 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_192s[DER_OID_SZ_id_slh_dsa_shake_192s] = { + DER_OID_V_id_slh_dsa_shake_192s +}; + +/* + * id-slh-dsa-shake-192f OBJECT IDENTIFIER ::= { sigAlgs 29 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_192f[DER_OID_SZ_id_slh_dsa_shake_192f] = { + DER_OID_V_id_slh_dsa_shake_192f +}; + +/* + * id-slh-dsa-shake-256s OBJECT IDENTIFIER ::= { sigAlgs 30 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_256s[DER_OID_SZ_id_slh_dsa_shake_256s] = { + DER_OID_V_id_slh_dsa_shake_256s +}; + +/* + * id-slh-dsa-shake-256f OBJECT IDENTIFIER ::= { sigAlgs 31 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_256f[DER_OID_SZ_id_slh_dsa_shake_256f] = { + DER_OID_V_id_slh_dsa_shake_256f +}; + diff --git a/deps/openssl/config/archs/darwin-i386-cc/asm/providers/common/include/prov/der_ml_dsa.h b/deps/openssl/config/archs/darwin-i386-cc/asm/providers/common/include/prov/der_ml_dsa.h new file mode 100644 index 00000000000000..c55f780ab4527c --- /dev/null +++ b/deps/openssl/config/archs/darwin-i386-cc/asm/providers/common/include/prov/der_ml_dsa.h @@ -0,0 +1,40 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from providers/common/include/prov/der_ml_dsa.h.in + * + * Copyright 2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include "internal/der.h" +#include "crypto/ml_dsa.h" + +/* Well known OIDs precompiled */ + +/* + * id-ml-dsa-44 OBJECT IDENTIFIER ::= { sigAlgs 17 } + */ +#define DER_OID_V_id_ml_dsa_44 DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x11 +#define DER_OID_SZ_id_ml_dsa_44 11 +extern const unsigned char ossl_der_oid_id_ml_dsa_44[DER_OID_SZ_id_ml_dsa_44]; + +/* + * id-ml-dsa-65 OBJECT IDENTIFIER ::= { sigAlgs 18 } + */ +#define DER_OID_V_id_ml_dsa_65 DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x12 +#define DER_OID_SZ_id_ml_dsa_65 11 +extern const unsigned char ossl_der_oid_id_ml_dsa_65[DER_OID_SZ_id_ml_dsa_65]; + +/* + * id-ml-dsa-87 OBJECT IDENTIFIER ::= { sigAlgs 19 } + */ +#define DER_OID_V_id_ml_dsa_87 DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x13 +#define DER_OID_SZ_id_ml_dsa_87 11 +extern const unsigned char ossl_der_oid_id_ml_dsa_87[DER_OID_SZ_id_ml_dsa_87]; + + +int ossl_DER_w_algorithmIdentifier_ML_DSA(WPACKET *pkt, int tag, ML_DSA_KEY *key); diff --git a/deps/openssl/config/archs/darwin-i386-cc/asm/providers/common/include/prov/der_slh_dsa.h b/deps/openssl/config/archs/darwin-i386-cc/asm/providers/common/include/prov/der_slh_dsa.h new file mode 100644 index 00000000000000..760f8e7699be72 --- /dev/null +++ b/deps/openssl/config/archs/darwin-i386-cc/asm/providers/common/include/prov/der_slh_dsa.h @@ -0,0 +1,103 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from providers/common/include/prov/der_slh_dsa.h.in + * + * Copyright 2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include "internal/der.h" +#include "crypto/slh_dsa.h" + +/* Well known OIDs precompiled */ + +/* + * id-slh-dsa-sha2-128s OBJECT IDENTIFIER ::= { sigAlgs 20 } + */ +#define DER_OID_V_id_slh_dsa_sha2_128s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x14 +#define DER_OID_SZ_id_slh_dsa_sha2_128s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_128s[DER_OID_SZ_id_slh_dsa_sha2_128s]; + +/* + * id-slh-dsa-sha2-128f OBJECT IDENTIFIER ::= { sigAlgs 21 } + */ +#define DER_OID_V_id_slh_dsa_sha2_128f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x15 +#define DER_OID_SZ_id_slh_dsa_sha2_128f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_128f[DER_OID_SZ_id_slh_dsa_sha2_128f]; + +/* + * id-slh-dsa-sha2-192s OBJECT IDENTIFIER ::= { sigAlgs 22 } + */ +#define DER_OID_V_id_slh_dsa_sha2_192s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x16 +#define DER_OID_SZ_id_slh_dsa_sha2_192s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_192s[DER_OID_SZ_id_slh_dsa_sha2_192s]; + +/* + * id-slh-dsa-sha2-192f OBJECT IDENTIFIER ::= { sigAlgs 23 } + */ +#define DER_OID_V_id_slh_dsa_sha2_192f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x17 +#define DER_OID_SZ_id_slh_dsa_sha2_192f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_192f[DER_OID_SZ_id_slh_dsa_sha2_192f]; + +/* + * id-slh-dsa-sha2-256s OBJECT IDENTIFIER ::= { sigAlgs 24 } + */ +#define DER_OID_V_id_slh_dsa_sha2_256s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x18 +#define DER_OID_SZ_id_slh_dsa_sha2_256s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_256s[DER_OID_SZ_id_slh_dsa_sha2_256s]; + +/* + * id-slh-dsa-sha2-256f OBJECT IDENTIFIER ::= { sigAlgs 25 } + */ +#define DER_OID_V_id_slh_dsa_sha2_256f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x19 +#define DER_OID_SZ_id_slh_dsa_sha2_256f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_256f[DER_OID_SZ_id_slh_dsa_sha2_256f]; + +/* + * id-slh-dsa-shake-128s OBJECT IDENTIFIER ::= { sigAlgs 26 } + */ +#define DER_OID_V_id_slh_dsa_shake_128s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1A +#define DER_OID_SZ_id_slh_dsa_shake_128s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_128s[DER_OID_SZ_id_slh_dsa_shake_128s]; + +/* + * id-slh-dsa-shake-128f OBJECT IDENTIFIER ::= { sigAlgs 27 } + */ +#define DER_OID_V_id_slh_dsa_shake_128f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1B +#define DER_OID_SZ_id_slh_dsa_shake_128f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_128f[DER_OID_SZ_id_slh_dsa_shake_128f]; + +/* + * id-slh-dsa-shake-192s OBJECT IDENTIFIER ::= { sigAlgs 28 } + */ +#define DER_OID_V_id_slh_dsa_shake_192s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1C +#define DER_OID_SZ_id_slh_dsa_shake_192s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_192s[DER_OID_SZ_id_slh_dsa_shake_192s]; + +/* + * id-slh-dsa-shake-192f OBJECT IDENTIFIER ::= { sigAlgs 29 } + */ +#define DER_OID_V_id_slh_dsa_shake_192f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1D +#define DER_OID_SZ_id_slh_dsa_shake_192f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_192f[DER_OID_SZ_id_slh_dsa_shake_192f]; + +/* + * id-slh-dsa-shake-256s OBJECT IDENTIFIER ::= { sigAlgs 30 } + */ +#define DER_OID_V_id_slh_dsa_shake_256s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1E +#define DER_OID_SZ_id_slh_dsa_shake_256s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_256s[DER_OID_SZ_id_slh_dsa_shake_256s]; + +/* + * id-slh-dsa-shake-256f OBJECT IDENTIFIER ::= { sigAlgs 31 } + */ +#define DER_OID_V_id_slh_dsa_shake_256f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1F +#define DER_OID_SZ_id_slh_dsa_shake_256f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_256f[DER_OID_SZ_id_slh_dsa_shake_256f]; + + +int ossl_DER_w_algorithmIdentifier_SLH_DSA(WPACKET *pkt, int tag, SLH_DSA_KEY *key); diff --git a/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/apps/progs.c b/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/apps/progs.c index 43cef00799b86e..acc204a3e6e781 100644 --- a/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/apps/progs.c +++ b/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/apps/progs.c @@ -89,6 +89,7 @@ FUNCTION functions[] = { {FT_general, "s_time", s_time_main, s_time_options, NULL, NULL}, #endif {FT_general, "sess_id", sess_id_main, sess_id_options, NULL, NULL}, + {FT_general, "skeyutl", skeyutl_main, skeyutl_options, NULL, NULL}, {FT_general, "smime", smime_main, smime_options, NULL, NULL}, {FT_general, "speed", speed_main, speed_options, NULL, NULL}, {FT_general, "spkac", spkac_main, spkac_options, NULL, NULL}, @@ -225,9 +226,15 @@ FUNCTION functions[] = { {FT_cipher, "camellia-256-ecb", enc_main, enc_options, NULL}, #endif {FT_cipher, "base64", enc_main, enc_options, NULL}, -#ifdef ZLIB +#ifndef OPENSSL_NO_ZLIB {FT_cipher, "zlib", enc_main, enc_options, NULL}, #endif +#ifndef OPENSSL_NO_BROTLI + {FT_cipher, "brotli", enc_main, enc_options, NULL}, +#endif +#ifndef OPENSSL_NO_ZSTD + {FT_cipher, "zstd", enc_main, enc_options, NULL}, +#endif #ifndef OPENSSL_NO_DES {FT_cipher, "des", enc_main, enc_options, NULL}, #endif diff --git a/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/configdata.pm b/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/configdata.pm index ee6e183540fbfd..2506bfa9c3950f 100644 --- a/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/configdata.pm +++ b/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/configdata.pm @@ -18,6 +18,7 @@ our %config = ( "ARFLAGS" => [ "qc" ], + "ASFLAGS" => [], "CC" => "../config/fake_gcc.pl", "CFLAGS" => [ "-O3 -fomit-frame-pointer" @@ -27,14 +28,16 @@ our %config = ( "CPPINCLUDES" => [], "CXXFLAGS" => [], "FIPSKEY" => "f4556650ac31d35461610bac4ed81b1a181b2d8a43ea2854cbae22ca74560813", + "FIPS_VENDOR" => "OpenSSL FIPS Provider", "HASHBANGPERL" => "/usr/bin/env perl", "LDFLAGS" => [], "LDLIBS" => [], + "OBJCOPY" => "objcopy", "PERL" => "/usr/bin/perl", "RANLIB" => "ranlib -c", "RC" => "windres", "RCFLAGS" => [], - "api" => "30000", + "api" => "30500", "b32" => "1", "b64" => "0", "b64l" => "0", @@ -56,11 +59,13 @@ our %config = ( "doc/build.info", "test/build.info", "engines/build.info", + "exporters/build.info", "crypto/objects/build.info", "crypto/buffer/build.info", "crypto/bio/build.info", "crypto/stack/build.info", "crypto/lhash/build.info", + "crypto/hashtable/build.info", "crypto/rand/build.info", "crypto/evp/build.info", "crypto/asn1/build.info", @@ -78,6 +83,7 @@ our %config = ( "crypto/md5/build.info", "crypto/sha/build.info", "crypto/mdc2/build.info", + "crypto/ml_kem/build.info", "crypto/hmac/build.info", "crypto/ripemd/build.info", "crypto/whrlpool/build.info", @@ -119,11 +125,19 @@ our %config = ( "crypto/cmp/build.info", "crypto/encode_decode/build.info", "crypto/ffc/build.info", + "crypto/hpke/build.info", + "crypto/thread/build.info", + "crypto/ml_dsa/build.info", + "crypto/slh_dsa/build.info", + "ssl/record/build.info", + "ssl/rio/build.info", + "ssl/quic/build.info", "apps/lib/build.info", "providers/common/build.info", "providers/implementations/build.info", "providers/fips/build.info", "doc/man1/build.info", + "ssl/record/methods/build.info", "providers/common/der/build.info", "providers/implementations/digests/build.info", "providers/implementations/ciphers/build.info", @@ -137,6 +151,7 @@ our %config = ( "providers/implementations/encode_decode/build.info", "providers/implementations/storemgmt/build.info", "providers/implementations/kem/build.info", + "providers/implementations/skeymgmt/build.info", "providers/implementations/rands/seeding/build.info" ], "build_metadata" => "", @@ -156,7 +171,7 @@ our %config = ( ], "dynamic_engines" => "0", "ex_libs" => [], - "full_version" => "3.0.17", + "full_version" => "3.5.1", "includes" => [], "lflags" => [], "lib_defines" => [ @@ -165,37 +180,52 @@ our %config = ( "libdir" => "", "major" => "3", "makedep_scheme" => "gcc", - "minor" => "0", + "minor" => "5", "openssl_api_defines" => [ - "OPENSSL_CONFIGURED_API=30000" + "OPENSSL_CONFIGURED_API=30500" ], "openssl_feature_defines" => [ "OPENSSL_RAND_SEED_OS", "OPENSSL_THREADS", "OPENSSL_NO_AFALGENG", "OPENSSL_NO_ASAN", + "OPENSSL_NO_BROTLI", + "OPENSSL_NO_BROTLI_DYNAMIC", "OPENSSL_NO_COMP", "OPENSSL_NO_CRYPTO_MDEBUG", "OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE", + "OPENSSL_NO_DEMOS", "OPENSSL_NO_DEVCRYPTOENG", "OPENSSL_NO_EC_NISTP_64_GCC_128", "OPENSSL_NO_EGD", "OPENSSL_NO_EXTERNAL_TESTS", + "OPENSSL_NO_FIPS_JITTER", "OPENSSL_NO_FUZZ_AFL", "OPENSSL_NO_FUZZ_LIBFUZZER", + "OPENSSL_NO_H3DEMO", + "OPENSSL_NO_HQINTEROP", + "OPENSSL_NO_JITTER", "OPENSSL_NO_KTLS", "OPENSSL_NO_LOADERENG", "OPENSSL_NO_MD2", "OPENSSL_NO_MSAN", + "OPENSSL_NO_PIE", "OPENSSL_NO_RC5", "OPENSSL_NO_SCTP", "OPENSSL_NO_SSL3", "OPENSSL_NO_SSL3_METHOD", + "OPENSSL_NO_SSLKEYLOG", + "OPENSSL_NO_TFO", "OPENSSL_NO_TRACE", "OPENSSL_NO_UBSAN", "OPENSSL_NO_UNIT_TEST", "OPENSSL_NO_UPLINK", "OPENSSL_NO_WEAK_SSL_CIPHERS", + "OPENSSL_NO_WINSTORE", + "OPENSSL_NO_ZLIB", + "OPENSSL_NO_ZLIB_DYNAMIC", + "OPENSSL_NO_ZSTD", + "OPENSSL_NO_ZSTD_DYNAMIC", "OPENSSL_NO_DYNAMIC_ENGINE" ], "openssl_other_defines" => [ @@ -205,11 +235,11 @@ our %config = ( "OPENSSL_SYS_MACOSX" ], "openssldir" => "", - "options" => "enable-ssl-trace enable-fips no-afalgeng no-asan no-buildtest-c++ no-comp no-crypto-mdebug no-crypto-mdebug-backtrace no-devcryptoeng no-dynamic-engine no-ec_nistp_64_gcc_128 no-egd no-external-tests no-fuzz-afl no-fuzz-libfuzzer no-ktls no-loadereng no-md2 no-msan no-rc5 no-sctp no-shared no-ssl3 no-ssl3-method no-trace no-ubsan no-unit-test no-uplink no-weak-ssl-ciphers no-zlib no-zlib-dynamic", - "patch" => "17", + "options" => "enable-ssl-trace enable-fips no-afalgeng no-asan no-brotli no-brotli-dynamic no-buildtest-c++ no-comp no-crypto-mdebug no-crypto-mdebug-backtrace no-demos no-devcryptoeng no-dynamic-engine no-ec_nistp_64_gcc_128 no-egd no-external-tests no-fips-jitter no-fuzz-afl no-fuzz-libfuzzer no-h3demo no-hqinterop no-jitter no-ktls no-loadereng no-md2 no-msan no-pie no-rc5 no-sctp no-shared no-ssl3 no-ssl3-method no-sslkeylog no-tfo no-trace no-ubsan no-unit-test no-uplink no-weak-ssl-ciphers no-winstore no-zlib no-zlib-dynamic no-zstd no-zstd-dynamic", + "patch" => "1", "perl_archname" => "x86_64-linux-gnu-thread-multi", "perl_cmd" => "/usr/bin/perl", - "perl_version" => "5.38.2", + "perl_version" => "5.34.0", "perlargv" => [ "no-comp", "no-shared", @@ -239,6 +269,7 @@ our %config = ( "LDLIBS" => undef, "MT" => undef, "MTFLAGS" => undef, + "OBJCOPY" => undef, "OPENSSL_LOCAL_CONFIG_DIR" => undef, "PERL" => undef, "RANLIB" => undef, @@ -262,7 +293,7 @@ our %config = ( "shlib_version" => "3", "sourcedir" => ".", "target" => "darwin-i386-cc", - "version" => "3.0.17" + "version" => "3.5.1" ); our %target = ( "AR" => "ar", @@ -270,6 +301,7 @@ our %target = ( "CC" => "cc", "CFLAGS" => "-O3 -fomit-frame-pointer", "HASHBANGPERL" => "/usr/bin/env perl", + "OBJCOPY" => "objcopy", "RANLIB" => "ranlib -c", "RC" => "windres", "_conf_fname_int" => [ @@ -281,6 +313,8 @@ our %target = ( "Configurations/shared-info.pl" ], "asm_arch" => "x86", + "bin_cflags" => "", + "bin_lflags" => "", "bn_ops" => "BN_LLONG RC4_INT", "build_file" => "Makefile", "build_scheme" => [ @@ -295,6 +329,7 @@ our %target = ( "disable" => [], "dso_scheme" => "dlfcn", "enable" => [], + "ex_libs" => "", "includes" => [], "lflags" => "-Wl,-search_paths_first", "lib_cflags" => "", @@ -321,6 +356,8 @@ our %target = ( our @disablables = ( "acvp-tests", "afalgeng", + "apps", + "argon2", "aria", "asan", "asm", @@ -331,11 +368,14 @@ our @disablables = ( "autoload-config", "bf", "blake2", + "brotli", + "brotli-dynamic", "buildtest-c++", "bulk", "cached-fetch", "camellia", "capieng", + "winstore", "cast", "chacha", "cmac", @@ -344,11 +384,16 @@ our @disablables = ( "comp", "crypto-mdebug", "ct", + "default-thread-pool", + "demos", + "h3demo", + "hqinterop", "deprecated", "des", "devcryptoeng", "dgram", "dh", + "docs", "dsa", "dso", "dtls", @@ -358,6 +403,7 @@ our @disablables = ( "ec_nistp_64_gcc_128", "ecdh", "ecdsa", + "ecx", "egd", "engine", "err", @@ -365,10 +411,15 @@ our @disablables = ( "filenames", "fips", "fips-securitychecks", + "fips-post", + "fips-jitter", "fuzz-afl", "fuzz-libfuzzer", "gost", + "http", "idea", + "integrity-only-ciphers", + "jitter", "ktls", "legacy", "loadereng", @@ -376,6 +427,8 @@ our @disablables = ( "md2", "md4", "mdc2", + "ml-dsa", + "ml-kem", "module", "msan", "multiblock", @@ -384,10 +437,13 @@ our @disablables = ( "ocsp", "padlockeng", "pic", + "pie", "pinshared", "poly1305", "posix-io", "psk", + "quic", + "unstable-qlog", "rc2", "rc4", "rc5", @@ -401,7 +457,9 @@ our @disablables = ( "shared", "siphash", "siv", + "slh-dsa", "sm2", + "sm2-precomp", "sm3", "sm4", "sock", @@ -412,9 +470,13 @@ our @disablables = ( "ssl-trace", "static-engine", "stdio", + "sslkeylog", "tests", + "tfo", + "thread-pool", "threads", "tls", + "tls-deprecated-ec", "trace", "ts", "ubsan", @@ -425,6 +487,8 @@ our @disablables = ( "whirlpool", "zlib", "zlib-dynamic", + "zstd", + "zstd-dynamic", "ssl3", "ssl3-method", "tls1", @@ -445,33 +509,46 @@ our @disablables_int = ( our %disabled = ( "afalgeng" => "option", "asan" => "default", + "brotli" => "default", + "brotli-dynamic" => "default", "buildtest-c++" => "default", "comp" => "option", "crypto-mdebug" => "default", "crypto-mdebug-backtrace" => "default", + "demos" => "default", "devcryptoeng" => "default", "dynamic-engine" => "cascade", "ec_nistp_64_gcc_128" => "default", "egd" => "default", "external-tests" => "default", + "fips-jitter" => "default", "fuzz-afl" => "default", "fuzz-libfuzzer" => "default", + "h3demo" => "default", + "hqinterop" => "default", + "jitter" => "default", "ktls" => "default", "loadereng" => "cascade", "md2" => "default", "msan" => "default", + "pie" => "default", "rc5" => "default", "sctp" => "default", "shared" => "option", "ssl3" => "default", "ssl3-method" => "default", + "sslkeylog" => "default", + "tfo" => "default", "trace" => "default", "ubsan" => "default", "unit-test" => "default", "uplink" => "no uplink_arch", "weak-ssl-ciphers" => "default", + "winstore" => "not-windows", "zlib" => "default", - "zlib-dynamic" => "default" + "zlib-dynamic" => "default", + "zstd" => "default", + "zstd-dynamic" => "default" ); our %withargs = (); our %unified_info = ( @@ -697,6 +774,11 @@ our %unified_info = ( "pod" => "1" } }, + "doc/man1/openssl-skeyutl.pod" => { + "doc/man1/openssl-skeyutl.pod.in" => { + "pod" => "1" + } + }, "doc/man1/openssl-smime.pod" => { "doc/man1/openssl-smime.pod.in" => { "pod" => "1" @@ -754,6 +836,21 @@ our %unified_info = ( } }, "generate" => { + "exporters/OpenSSLConfig.cmake" => { + "exporter" => "cmake" + }, + "exporters/OpenSSLConfigVersion.cmake" => { + "exporter" => "cmake" + }, + "exporters/libcrypto.pc" => { + "exporter" => "pkg-config" + }, + "exporters/libssl.pc" => { + "exporter" => "pkg-config" + }, + "exporters/openssl.pc" => { + "exporter" => "pkg-config" + }, "include/openssl/configuration.h" => { "skip" => "1" } @@ -774,6 +871,9 @@ our %unified_info = ( "providers/liblegacy.a" => { "noinst" => "1" }, + "providers/libtemplate.a" => { + "noinst" => "1" + }, "test/libtestutil.a" => { "has_main" => "1", "noinst" => "1" @@ -791,6 +891,9 @@ our %unified_info = ( } }, "programs" => { + "fuzz/acert-test" => { + "noinst" => "1" + }, "fuzz/asn1-test" => { "noinst" => "1" }, @@ -821,9 +924,60 @@ our %unified_info = ( "fuzz/ct-test" => { "noinst" => "1" }, + "fuzz/decoder-test" => { + "noinst" => "1" + }, + "fuzz/dtlsclient-test" => { + "noinst" => "1" + }, + "fuzz/dtlsserver-test" => { + "noinst" => "1" + }, + "fuzz/hashtable-test" => { + "noinst" => "1" + }, + "fuzz/ml-dsa-test" => { + "noinst" => "1" + }, + "fuzz/ml-kem-test" => { + "noinst" => "1" + }, + "fuzz/pem-test" => { + "noinst" => "1" + }, + "fuzz/provider-test" => { + "noinst" => "1" + }, + "fuzz/punycode-test" => { + "noinst" => "1" + }, + "fuzz/quic-client-test" => { + "noinst" => "1" + }, + "fuzz/quic-lcidm-test" => { + "noinst" => "1" + }, + "fuzz/quic-rcidm-test" => { + "noinst" => "1" + }, + "fuzz/quic-server-test" => { + "noinst" => "1" + }, + "fuzz/quic-srtm-test" => { + "noinst" => "1" + }, "fuzz/server-test" => { "noinst" => "1" }, + "fuzz/slh-dsa-test" => { + "noinst" => "1" + }, + "fuzz/smime-test" => { + "noinst" => "1" + }, + "fuzz/v3name-test" => { + "noinst" => "1" + }, "fuzz/x509-test" => { "noinst" => "1" }, @@ -875,18 +1029,30 @@ our %unified_info = ( "test/bftest" => { "noinst" => "1" }, + "test/bio_addr_test" => { + "noinst" => "1" + }, + "test/bio_base64_test" => { + "noinst" => "1" + }, "test/bio_callback_test" => { "noinst" => "1" }, "test/bio_core_test" => { "noinst" => "1" }, + "test/bio_dgram_test" => { + "noinst" => "1" + }, "test/bio_enc_test" => { "noinst" => "1" }, "test/bio_memleak_test" => { "noinst" => "1" }, + "test/bio_meth_test" => { + "noinst" => "1" + }, "test/bio_prefix_text" => { "noinst" => "1" }, @@ -896,6 +1062,9 @@ our %unified_info = ( "test/bio_readbuffer_test" => { "noinst" => "1" }, + "test/bio_tfo_test" => { + "noinst" => "1" + }, "test/bioprinttest" => { "noinst" => "1" }, @@ -905,6 +1074,9 @@ our %unified_info = ( "test/bntest" => { "noinst" => "1" }, + "test/build_wincrypt_test" => { + "noinst" => "1" + }, "test/buildtest_c_aes" => { "noinst" => "1" }, @@ -920,6 +1092,9 @@ our %unified_info = ( "test/buildtest_c_buffer" => { "noinst" => "1" }, + "test/buildtest_c_byteorder" => { + "noinst" => "1" + }, "test/buildtest_c_camellia" => { "noinst" => "1" }, @@ -944,9 +1119,6 @@ our %unified_info = ( "test/buildtest_c_core_dispatch" => { "noinst" => "1" }, - "test/buildtest_c_core_names" => { - "noinst" => "1" - }, "test/buildtest_c_core_object" => { "noinst" => "1" }, @@ -971,6 +1143,9 @@ our %unified_info = ( "test/buildtest_c_e_os2" => { "noinst" => "1" }, + "test/buildtest_c_e_ostime" => { + "noinst" => "1" + }, "test/buildtest_c_ebcdic" => { "noinst" => "1" }, @@ -998,12 +1173,18 @@ our %unified_info = ( "test/buildtest_c_hmac" => { "noinst" => "1" }, + "test/buildtest_c_hpke" => { + "noinst" => "1" + }, "test/buildtest_c_http" => { "noinst" => "1" }, "test/buildtest_c_idea" => { "noinst" => "1" }, + "test/buildtest_c_indicator" => { + "noinst" => "1" + }, "test/buildtest_c_kdf" => { "noinst" => "1" }, @@ -1019,6 +1200,9 @@ our %unified_info = ( "test/buildtest_c_mdc2" => { "noinst" => "1" }, + "test/buildtest_c_ml_kem" => { + "noinst" => "1" + }, "test/buildtest_c_modes" => { "noinst" => "1" }, @@ -1049,6 +1233,9 @@ our %unified_info = ( "test/buildtest_c_provider" => { "noinst" => "1" }, + "test/buildtest_c_quic" => { + "noinst" => "1" + }, "test/buildtest_c_rand" => { "noinst" => "1" }, @@ -1091,6 +1278,9 @@ our %unified_info = ( "test/buildtest_c_symhacks" => { "noinst" => "1" }, + "test/buildtest_c_thread" => { + "noinst" => "1" + }, "test/buildtest_c_tls1" => { "noinst" => "1" }, @@ -1106,6 +1296,12 @@ our %unified_info = ( "test/buildtest_c_whrlpool" => { "noinst" => "1" }, + "test/byteorder_test" => { + "noinst" => "1" + }, + "test/ca_internals_test" => { + "noinst" => "1" + }, "test/casttest" => { "noinst" => "1" }, @@ -1190,6 +1386,9 @@ our %unified_info = ( "test/danetest" => { "noinst" => "1" }, + "test/decoder_propq_test" => { + "noinst" => "1" + }, "test/defltfips_test" => { "noinst" => "1" }, @@ -1262,15 +1461,24 @@ our %unified_info = ( "test/evp_pkey_ctx_new_from_name" => { "noinst" => "1" }, + "test/evp_pkey_dhkem_test" => { + "noinst" => "1" + }, "test/evp_pkey_dparams_test" => { "noinst" => "1" }, "test/evp_pkey_provided_test" => { "noinst" => "1" }, + "test/evp_skey_test" => { + "noinst" => "1" + }, "test/evp_test" => { "noinst" => "1" }, + "test/evp_xof_test" => { + "noinst" => "1" + }, "test/exdatatest" => { "noinst" => "1" }, @@ -1298,6 +1506,9 @@ our %unified_info = ( "test/hmactest" => { "noinst" => "1" }, + "test/hpke_test" => { + "noinst" => "1" + }, "test/http_test" => { "noinst" => "1" }, @@ -1307,12 +1518,18 @@ our %unified_info = ( "test/igetest" => { "noinst" => "1" }, + "test/json_test" => { + "noinst" => "1" + }, "test/keymgmt_internal_test" => { "noinst" => "1" }, "test/lhash_test" => { "noinst" => "1" }, + "test/list_test" => { + "noinst" => "1" + }, "test/localetest" => { "noinst" => "1" }, @@ -1322,9 +1539,21 @@ our %unified_info = ( "test/mdc2test" => { "noinst" => "1" }, + "test/membio_test" => { + "noinst" => "1" + }, "test/memleaktest" => { "noinst" => "1" }, + "test/ml_dsa_test" => { + "noinst" => "1" + }, + "test/ml_kem_evp_extra_test" => { + "noinst" => "1" + }, + "test/ml_kem_internal_test" => { + "noinst" => "1" + }, "test/modes_internal_test" => { "noinst" => "1" }, @@ -1343,6 +1572,9 @@ our %unified_info = ( "test/packettest" => { "noinst" => "1" }, + "test/pairwise_fail_test" => { + "noinst" => "1" + }, "test/param_build_test" => { "noinst" => "1" }, @@ -1367,6 +1599,9 @@ our %unified_info = ( "test/pemtest" => { "noinst" => "1" }, + "test/pkcs12_api_test" => { + "noinst" => "1" + }, "test/pkcs12_format_test" => { "noinst" => "1" }, @@ -1382,6 +1617,9 @@ our %unified_info = ( "test/poly1305_internal_test" => { "noinst" => "1" }, + "test/priority_queue_test" => { + "noinst" => "1" + }, "test/property_test" => { "noinst" => "1" }, @@ -1391,6 +1629,9 @@ our %unified_info = ( "test/provfetchtest" => { "noinst" => "1" }, + "test/provider_default_search_path_test" => { + "noinst" => "1" + }, "test/provider_fallback_test" => { "noinst" => "1" }, @@ -1409,6 +1650,72 @@ our %unified_info = ( "test/punycode_test" => { "noinst" => "1" }, + "test/quic_ackm_test" => { + "noinst" => "1" + }, + "test/quic_cc_test" => { + "noinst" => "1" + }, + "test/quic_cfq_test" => { + "noinst" => "1" + }, + "test/quic_client_test" => { + "noinst" => "1" + }, + "test/quic_fc_test" => { + "noinst" => "1" + }, + "test/quic_fifd_test" => { + "noinst" => "1" + }, + "test/quic_lcidm_test" => { + "noinst" => "1" + }, + "test/quic_multistream_test" => { + "noinst" => "1" + }, + "test/quic_newcid_test" => { + "noinst" => "1" + }, + "test/quic_qlog_test" => { + "noinst" => "1" + }, + "test/quic_radix_test" => { + "noinst" => "1" + }, + "test/quic_rcidm_test" => { + "noinst" => "1" + }, + "test/quic_record_test" => { + "noinst" => "1" + }, + "test/quic_srt_gen_test" => { + "noinst" => "1" + }, + "test/quic_srtm_test" => { + "noinst" => "1" + }, + "test/quic_stream_test" => { + "noinst" => "1" + }, + "test/quic_tserver_test" => { + "noinst" => "1" + }, + "test/quic_txp_test" => { + "noinst" => "1" + }, + "test/quic_txpim_test" => { + "noinst" => "1" + }, + "test/quic_wire_test" => { + "noinst" => "1" + }, + "test/quicapitest" => { + "noinst" => "1" + }, + "test/quicfaultstest" => { + "noinst" => "1" + }, "test/rand_status_test" => { "noinst" => "1" }, @@ -1424,12 +1731,15 @@ our %unified_info = ( "test/rc5test" => { "noinst" => "1" }, - "test/rdrand_sanitytest" => { + "test/rdcpu_sanitytest" => { "noinst" => "1" }, "test/recordlentest" => { "noinst" => "1" }, + "test/rpktest" => { + "noinst" => "1" + }, "test/rsa_complex" => { "noinst" => "1" }, @@ -1442,6 +1752,12 @@ our %unified_info = ( "test/rsa_test" => { "noinst" => "1" }, + "test/rsa_x931_test" => { + "noinst" => "1" + }, + "test/safe_math_test" => { + "noinst" => "1" + }, "test/sanitytest" => { "noinst" => "1" }, @@ -1457,6 +1773,9 @@ our %unified_info = ( "test/siphash_internal_test" => { "noinst" => "1" }, + "test/slh_dsa_test" => { + "noinst" => "1" + }, "test/sm2_internal_test" => { "noinst" => "1" }, @@ -1478,6 +1797,9 @@ our %unified_info = ( "test/ssl_ctx_test" => { "noinst" => "1" }, + "test/ssl_handshake_rtt_test" => { + "noinst" => "1" + }, "test/ssl_old_test" => { "noinst" => "1" }, @@ -1499,12 +1821,18 @@ our %unified_info = ( "test/stack_test" => { "noinst" => "1" }, + "test/strtoultest" => { + "noinst" => "1" + }, "test/sysdefaulttest" => { "noinst" => "1" }, "test/test_test" => { "noinst" => "1" }, + "test/threadpool_test" => { + "noinst" => "1" + }, "test/threadstest" => { "noinst" => "1" }, @@ -1514,12 +1842,18 @@ our %unified_info = ( "test/time_offset_test" => { "noinst" => "1" }, + "test/time_test" => { + "noinst" => "1" + }, "test/tls13ccstest" => { "noinst" => "1" }, "test/tls13encryptiontest" => { "noinst" => "1" }, + "test/tls13groupselection_test" => { + "noinst" => "1" + }, "test/trace_api_test" => { "noinst" => "1" }, @@ -1547,6 +1881,9 @@ our %unified_info = ( "test/wpackettest" => { "noinst" => "1" }, + "test/x509_acert_test" => { + "noinst" => "1" + }, "test/x509_check_cert_pkey_test" => { "noinst" => "1" }, @@ -1556,6 +1893,15 @@ our %unified_info = ( "test/x509_internal_test" => { "noinst" => "1" }, + "test/x509_load_cert_file_test" => { + "noinst" => "1" + }, + "test/x509_req_test" => { + "noinst" => "1" + }, + "test/x509_test" => { + "noinst" => "1" + }, "test/x509_time_test" => { "noinst" => "1" }, @@ -1658,6 +2004,9 @@ our %unified_info = ( "MD5_ASM", "RC4_ASM" ], + "test/endecode_test" => [ + "STATIC_LEGACY" + ], "test/evp_extra_test" => [ "STATIC_LEGACY" ], @@ -1670,14 +2019,21 @@ our %unified_info = ( }, "depends" => { "" => [ + "OpenSSLConfigVersion.cmake", + "crypto/params_idx.c", + "exporters/OpenSSLConfigVersion.cmake", + "exporters/openssl.pc", "include/crypto/bn_conf.h", "include/crypto/dso_conf.h", + "include/internal/param_names.h", "include/openssl/asn1.h", "include/openssl/asn1t.h", "include/openssl/bio.h", "include/openssl/cmp.h", "include/openssl/cms.h", + "include/openssl/comp.h", "include/openssl/conf.h", + "include/openssl/core_names.h", "include/openssl/crmf.h", "include/openssl/crypto.h", "include/openssl/ct.h", @@ -1694,10 +2050,22 @@ our %unified_info = ( "include/openssl/ssl.h", "include/openssl/ui.h", "include/openssl/x509.h", + "include/openssl/x509_acert.h", "include/openssl/x509_vfy.h", "include/openssl/x509v3.h", + "openssl.pc", "test/provider_internal_test.cnf" ], + "OpenSSLConfig.cmake" => [ + "builddata.pm" + ], + "OpenSSLConfigVersion.cmake" => [ + "OpenSSLConfig.cmake", + "builddata.pm" + ], + "apps/ca_internals_test-bin-ca.o" => [ + "apps/progs.h" + ], "apps/lib/cmp_client_test-bin-cmp_mock_srv.o" => [ "apps/progs.h" ], @@ -1843,6 +2211,9 @@ our %unified_info = ( "apps/openssl-bin-sess_id.o" => [ "apps/progs.h" ], + "apps/openssl-bin-skeyutl.o" => [ + "apps/progs.h" + ], "apps/openssl-bin-smime.o" => [ "apps/progs.h" ], @@ -1931,6 +2302,9 @@ our %unified_info = ( "crypto/libcrypto-lib-info.o" => [ "crypto/buildinf.h" ], + "crypto/params_idx.c" => [ + "util/perl|OpenSSL/paramnames.pm" + ], "crypto/rc4/rc4-586.S" => [ "crypto/perlasm/x86asm.pl" ], @@ -2096,6 +2470,9 @@ our %unified_info = ( "doc/html/man1/openssl-sess_id.html" => [ "doc/man1/openssl-sess_id.pod" ], + "doc/html/man1/openssl-skeyutl.html" => [ + "doc/man1/openssl-skeyutl.pod" + ], "doc/html/man1/openssl-smime.html" => [ "doc/man1/openssl-smime.pod" ], @@ -2237,6 +2614,9 @@ our %unified_info = ( "doc/html/man3/BIO_get_ex_new_index.html" => [ "doc/man3/BIO_get_ex_new_index.pod" ], + "doc/html/man3/BIO_get_rpoll_descriptor.html" => [ + "doc/man3/BIO_get_rpoll_descriptor.pod" + ], "doc/html/man3/BIO_meth_new.html" => [ "doc/man3/BIO_meth_new.pod" ], @@ -2273,6 +2653,9 @@ our %unified_info = ( "doc/html/man3/BIO_s_datagram.html" => [ "doc/man3/BIO_s_datagram.pod" ], + "doc/html/man3/BIO_s_dgram_pair.html" => [ + "doc/man3/BIO_s_dgram_pair.pod" + ], "doc/html/man3/BIO_s_fd.html" => [ "doc/man3/BIO_s_fd.pod" ], @@ -2288,6 +2671,9 @@ our %unified_info = ( "doc/html/man3/BIO_s_socket.html" => [ "doc/man3/BIO_s_socket.pod" ], + "doc/html/man3/BIO_sendmmsg.html" => [ + "doc/man3/BIO_sendmmsg.pod" + ], "doc/html/man3/BIO_set_callback.html" => [ "doc/man3/BIO_set_callback.pod" ], @@ -2360,6 +2746,9 @@ our %unified_info = ( "doc/html/man3/BUF_MEM_new.html" => [ "doc/man3/BUF_MEM_new.pod" ], + "doc/html/man3/CMAC_CTX.html" => [ + "doc/man3/CMAC_CTX.pod" + ], "doc/html/man3/CMS_EncryptedData_decrypt.html" => [ "doc/man3/CMS_EncryptedData_decrypt.pod" ], @@ -2426,6 +2815,9 @@ our %unified_info = ( "doc/html/man3/CMS_verify_receipt.html" => [ "doc/man3/CMS_verify_receipt.pod" ], + "doc/html/man3/COMP_CTX_new.html" => [ + "doc/man3/COMP_CTX_new.pod" + ], "doc/html/man3/CONF_modules_free.html" => [ "doc/man3/CONF_modules_free.pod" ], @@ -2525,6 +2917,12 @@ our %unified_info = ( "doc/html/man3/DTLS_set_timer_cb.html" => [ "doc/man3/DTLS_set_timer_cb.pod" ], + "doc/html/man3/DTLSv1_get_timeout.html" => [ + "doc/man3/DTLSv1_get_timeout.pod" + ], + "doc/html/man3/DTLSv1_handle_timeout.html" => [ + "doc/man3/DTLSv1_handle_timeout.pod" + ], "doc/html/man3/DTLSv1_listen.html" => [ "doc/man3/DTLSv1_listen.pod" ], @@ -2663,6 +3061,9 @@ our %unified_info = ( "doc/html/man3/EVP_PKEY_CTX_get0_pkey.html" => [ "doc/man3/EVP_PKEY_CTX_get0_pkey.pod" ], + "doc/html/man3/EVP_PKEY_CTX_get_algor.html" => [ + "doc/man3/EVP_PKEY_CTX_get_algor.pod" + ], "doc/html/man3/EVP_PKEY_CTX_new.html" => [ "doc/man3/EVP_PKEY_CTX_new.pod" ], @@ -2780,6 +3181,12 @@ our %unified_info = ( "doc/html/man3/EVP_SIGNATURE.html" => [ "doc/man3/EVP_SIGNATURE.pod" ], + "doc/html/man3/EVP_SKEY.html" => [ + "doc/man3/EVP_SKEY.pod" + ], + "doc/html/man3/EVP_SKEYMGMT.html" => [ + "doc/man3/EVP_SKEYMGMT.pod" + ], "doc/html/man3/EVP_SealInit.html" => [ "doc/man3/EVP_SealInit.pod" ], @@ -2867,6 +3274,9 @@ our %unified_info = ( "doc/html/man3/EVP_whirlpool.html" => [ "doc/man3/EVP_whirlpool.pod" ], + "doc/html/man3/GENERAL_NAME.html" => [ + "doc/man3/GENERAL_NAME.pod" + ], "doc/html/man3/HMAC.html" => [ "doc/man3/HMAC.pod" ], @@ -2939,9 +3349,15 @@ our %unified_info = ( "doc/html/man3/OPENSSL_load_builtin_modules.html" => [ "doc/man3/OPENSSL_load_builtin_modules.pod" ], + "doc/html/man3/OPENSSL_load_u16_le.html" => [ + "doc/man3/OPENSSL_load_u16_le.pod" + ], "doc/html/man3/OPENSSL_malloc.html" => [ "doc/man3/OPENSSL_malloc.pod" ], + "doc/html/man3/OPENSSL_riscvcap.html" => [ + "doc/man3/OPENSSL_riscvcap.pod" + ], "doc/html/man3/OPENSSL_s390xcap.html" => [ "doc/man3/OPENSSL_s390xcap.pod" ], @@ -2957,12 +3373,18 @@ our %unified_info = ( "doc/html/man3/OSSL_CALLBACK.html" => [ "doc/man3/OSSL_CALLBACK.pod" ], + "doc/html/man3/OSSL_CMP_ATAV_set0.html" => [ + "doc/man3/OSSL_CMP_ATAV_set0.pod" + ], "doc/html/man3/OSSL_CMP_CTX_new.html" => [ "doc/man3/OSSL_CMP_CTX_new.pod" ], "doc/html/man3/OSSL_CMP_HDR_get0_transactionID.html" => [ "doc/man3/OSSL_CMP_HDR_get0_transactionID.pod" ], + "doc/html/man3/OSSL_CMP_ITAV_new_caCerts.html" => [ + "doc/man3/OSSL_CMP_ITAV_new_caCerts.pod" + ], "doc/html/man3/OSSL_CMP_ITAV_set0.html" => [ "doc/man3/OSSL_CMP_ITAV_set0.pod" ], @@ -3032,9 +3454,18 @@ our %unified_info = ( "doc/html/man3/OSSL_ENCODER_to_bio.html" => [ "doc/man3/OSSL_ENCODER_to_bio.pod" ], + "doc/html/man3/OSSL_ERR_STATE_save.html" => [ + "doc/man3/OSSL_ERR_STATE_save.pod" + ], "doc/html/man3/OSSL_ESS_check_signing_certs.html" => [ "doc/man3/OSSL_ESS_check_signing_certs.pod" ], + "doc/html/man3/OSSL_GENERAL_NAMES_print.html" => [ + "doc/man3/OSSL_GENERAL_NAMES_print.pod" + ], + "doc/html/man3/OSSL_HPKE_CTX_new.html" => [ + "doc/man3/OSSL_HPKE_CTX_new.pod" + ], "doc/html/man3/OSSL_HTTP_REQ_CTX.html" => [ "doc/man3/OSSL_HTTP_REQ_CTX.pod" ], @@ -3044,12 +3475,24 @@ our %unified_info = ( "doc/html/man3/OSSL_HTTP_transfer.html" => [ "doc/man3/OSSL_HTTP_transfer.pod" ], + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX.html" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX.pod" + ], + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX_print.html" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX_print.pod" + ], + "doc/html/man3/OSSL_INDICATOR_set_callback.html" => [ + "doc/man3/OSSL_INDICATOR_set_callback.pod" + ], "doc/html/man3/OSSL_ITEM.html" => [ "doc/man3/OSSL_ITEM.pod" ], "doc/html/man3/OSSL_LIB_CTX.html" => [ "doc/man3/OSSL_LIB_CTX.pod" ], + "doc/html/man3/OSSL_LIB_CTX_set_conf_diagnostics.html" => [ + "doc/man3/OSSL_LIB_CTX_set_conf_diagnostics.pod" + ], "doc/html/man3/OSSL_PARAM.html" => [ "doc/man3/OSSL_PARAM.pod" ], @@ -3065,9 +3508,15 @@ our %unified_info = ( "doc/html/man3/OSSL_PARAM_int.html" => [ "doc/man3/OSSL_PARAM_int.pod" ], + "doc/html/man3/OSSL_PARAM_print_to_bio.html" => [ + "doc/man3/OSSL_PARAM_print_to_bio.pod" + ], "doc/html/man3/OSSL_PROVIDER.html" => [ "doc/man3/OSSL_PROVIDER.pod" ], + "doc/html/man3/OSSL_QUIC_client_method.html" => [ + "doc/man3/OSSL_QUIC_client_method.pod" + ], "doc/html/man3/OSSL_SELF_TEST_new.html" => [ "doc/man3/OSSL_SELF_TEST_new.pod" ], @@ -3092,6 +3541,9 @@ our %unified_info = ( "doc/html/man3/OSSL_STORE_open.html" => [ "doc/man3/OSSL_STORE_open.pod" ], + "doc/html/man3/OSSL_sleep.html" => [ + "doc/man3/OSSL_sleep.pod" + ], "doc/html/man3/OSSL_trace_enabled.html" => [ "doc/man3/OSSL_trace_enabled.pod" ], @@ -3107,6 +3559,9 @@ our %unified_info = ( "doc/html/man3/OpenSSL_version.html" => [ "doc/man3/OpenSSL_version.pod" ], + "doc/html/man3/PBMAC1_get1_pbkdf2_param.html" => [ + "doc/man3/PBMAC1_get1_pbkdf2_param.pod" + ], "doc/html/man3/PEM_X509_INFO_read_bio_ex.html" => [ "doc/man3/PEM_X509_INFO_read_bio_ex.pod" ], @@ -3143,6 +3598,9 @@ our %unified_info = ( "doc/html/man3/PKCS12_SAFEBAG_get1_cert.html" => [ "doc/man3/PKCS12_SAFEBAG_get1_cert.pod" ], + "doc/html/man3/PKCS12_SAFEBAG_set0_attrs.html" => [ + "doc/man3/PKCS12_SAFEBAG_set0_attrs.pod" + ], "doc/html/man3/PKCS12_add1_attr_by_NID.html" => [ "doc/man3/PKCS12_add1_attr_by_NID.pod" ], @@ -3416,6 +3874,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set0_CA_list.html" => [ "doc/man3/SSL_CTX_set0_CA_list.pod" ], + "doc/html/man3/SSL_CTX_set1_cert_comp_preference.html" => [ + "doc/man3/SSL_CTX_set1_cert_comp_preference.pod" + ], "doc/html/man3/SSL_CTX_set1_curves.html" => [ "doc/man3/SSL_CTX_set1_curves.pod" ], @@ -3455,6 +3916,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_default_passwd_cb.html" => [ "doc/man3/SSL_CTX_set_default_passwd_cb.pod" ], + "doc/html/man3/SSL_CTX_set_domain_flags.html" => [ + "doc/man3/SSL_CTX_set_domain_flags.pod" + ], "doc/html/man3/SSL_CTX_set_generate_session_id.html" => [ "doc/man3/SSL_CTX_set_generate_session_id.pod" ], @@ -3476,6 +3940,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_msg_callback.html" => [ "doc/man3/SSL_CTX_set_msg_callback.pod" ], + "doc/html/man3/SSL_CTX_set_new_pending_conn_cb.html" => [ + "doc/man3/SSL_CTX_set_new_pending_conn_cb.pod" + ], "doc/html/man3/SSL_CTX_set_num_tickets.html" => [ "doc/man3/SSL_CTX_set_num_tickets.pod" ], @@ -3590,6 +4057,9 @@ our %unified_info = ( "doc/html/man3/SSL_accept.html" => [ "doc/man3/SSL_accept.pod" ], + "doc/html/man3/SSL_accept_stream.html" => [ + "doc/man3/SSL_accept_stream.pod" + ], "doc/html/man3/SSL_alert_type_string.html" => [ "doc/man3/SSL_alert_type_string.pod" ], @@ -3617,9 +4087,21 @@ our %unified_info = ( "doc/html/man3/SSL_free.html" => [ "doc/man3/SSL_free.pod" ], + "doc/html/man3/SSL_get0_connection.html" => [ + "doc/man3/SSL_get0_connection.pod" + ], + "doc/html/man3/SSL_get0_group_name.html" => [ + "doc/man3/SSL_get0_group_name.pod" + ], + "doc/html/man3/SSL_get0_peer_rpk.html" => [ + "doc/man3/SSL_get0_peer_rpk.pod" + ], "doc/html/man3/SSL_get0_peer_scts.html" => [ "doc/man3/SSL_get0_peer_scts.pod" ], + "doc/html/man3/SSL_get1_builtin_sigalgs.html" => [ + "doc/man3/SSL_get1_builtin_sigalgs.pod" + ], "doc/html/man3/SSL_get_SSL_CTX.html" => [ "doc/man3/SSL_get_SSL_CTX.pod" ], @@ -3635,6 +4117,9 @@ our %unified_info = ( "doc/html/man3/SSL_get_client_random.html" => [ "doc/man3/SSL_get_client_random.pod" ], + "doc/html/man3/SSL_get_conn_close_info.html" => [ + "doc/man3/SSL_get_conn_close_info.pod" + ], "doc/html/man3/SSL_get_current_cipher.html" => [ "doc/man3/SSL_get_current_cipher.pod" ], @@ -3644,12 +4129,18 @@ our %unified_info = ( "doc/html/man3/SSL_get_error.html" => [ "doc/man3/SSL_get_error.pod" ], + "doc/html/man3/SSL_get_event_timeout.html" => [ + "doc/man3/SSL_get_event_timeout.pod" + ], "doc/html/man3/SSL_get_extms_support.html" => [ "doc/man3/SSL_get_extms_support.pod" ], "doc/html/man3/SSL_get_fd.html" => [ "doc/man3/SSL_get_fd.pod" ], + "doc/html/man3/SSL_get_handshake_rtt.html" => [ + "doc/man3/SSL_get_handshake_rtt.pod" + ], "doc/html/man3/SSL_get_peer_cert_chain.html" => [ "doc/man3/SSL_get_peer_cert_chain.pod" ], @@ -3668,12 +4159,24 @@ our %unified_info = ( "doc/html/man3/SSL_get_rbio.html" => [ "doc/man3/SSL_get_rbio.pod" ], + "doc/html/man3/SSL_get_rpoll_descriptor.html" => [ + "doc/man3/SSL_get_rpoll_descriptor.pod" + ], "doc/html/man3/SSL_get_session.html" => [ "doc/man3/SSL_get_session.pod" ], "doc/html/man3/SSL_get_shared_sigalgs.html" => [ "doc/man3/SSL_get_shared_sigalgs.pod" ], + "doc/html/man3/SSL_get_stream_id.html" => [ + "doc/man3/SSL_get_stream_id.pod" + ], + "doc/html/man3/SSL_get_stream_read_state.html" => [ + "doc/man3/SSL_get_stream_read_state.pod" + ], + "doc/html/man3/SSL_get_value_uint.html" => [ + "doc/man3/SSL_get_value_uint.pod" + ], "doc/html/man3/SSL_get_verify_result.html" => [ "doc/man3/SSL_get_verify_result.pod" ], @@ -3683,9 +4186,15 @@ our %unified_info = ( "doc/html/man3/SSL_group_to_name.html" => [ "doc/man3/SSL_group_to_name.pod" ], + "doc/html/man3/SSL_handle_events.html" => [ + "doc/man3/SSL_handle_events.pod" + ], "doc/html/man3/SSL_in_init.html" => [ "doc/man3/SSL_in_init.pod" ], + "doc/html/man3/SSL_inject_net_dgram.html" => [ + "doc/man3/SSL_inject_net_dgram.pod" + ], "doc/html/man3/SSL_key_update.html" => [ "doc/man3/SSL_key_update.pod" ], @@ -3698,9 +4207,21 @@ our %unified_info = ( "doc/html/man3/SSL_new.html" => [ "doc/man3/SSL_new.pod" ], + "doc/html/man3/SSL_new_domain.html" => [ + "doc/man3/SSL_new_domain.pod" + ], + "doc/html/man3/SSL_new_listener.html" => [ + "doc/man3/SSL_new_listener.pod" + ], + "doc/html/man3/SSL_new_stream.html" => [ + "doc/man3/SSL_new_stream.pod" + ], "doc/html/man3/SSL_pending.html" => [ "doc/man3/SSL_pending.pod" ], + "doc/html/man3/SSL_poll.html" => [ + "doc/man3/SSL_poll.pod" + ], "doc/html/man3/SSL_read.html" => [ "doc/man3/SSL_read.pod" ], @@ -3716,24 +4237,45 @@ our %unified_info = ( "doc/html/man3/SSL_set1_host.html" => [ "doc/man3/SSL_set1_host.pod" ], + "doc/html/man3/SSL_set1_initial_peer_addr.html" => [ + "doc/man3/SSL_set1_initial_peer_addr.pod" + ], + "doc/html/man3/SSL_set1_server_cert_type.html" => [ + "doc/man3/SSL_set1_server_cert_type.pod" + ], "doc/html/man3/SSL_set_async_callback.html" => [ "doc/man3/SSL_set_async_callback.pod" ], "doc/html/man3/SSL_set_bio.html" => [ "doc/man3/SSL_set_bio.pod" ], + "doc/html/man3/SSL_set_blocking_mode.html" => [ + "doc/man3/SSL_set_blocking_mode.pod" + ], "doc/html/man3/SSL_set_connect_state.html" => [ "doc/man3/SSL_set_connect_state.pod" ], + "doc/html/man3/SSL_set_default_stream_mode.html" => [ + "doc/man3/SSL_set_default_stream_mode.pod" + ], "doc/html/man3/SSL_set_fd.html" => [ "doc/man3/SSL_set_fd.pod" ], + "doc/html/man3/SSL_set_incoming_stream_policy.html" => [ + "doc/man3/SSL_set_incoming_stream_policy.pod" + ], + "doc/html/man3/SSL_set_quic_tls_cbs.html" => [ + "doc/man3/SSL_set_quic_tls_cbs.pod" + ], "doc/html/man3/SSL_set_retry_verify.html" => [ "doc/man3/SSL_set_retry_verify.pod" ], "doc/html/man3/SSL_set_session.html" => [ "doc/man3/SSL_set_session.pod" ], + "doc/html/man3/SSL_set_session_secret_cb.html" => [ + "doc/man3/SSL_set_session_secret_cb.pod" + ], "doc/html/man3/SSL_set_shutdown.html" => [ "doc/man3/SSL_set_shutdown.pod" ], @@ -3746,6 +4288,12 @@ our %unified_info = ( "doc/html/man3/SSL_state_string.html" => [ "doc/man3/SSL_state_string.pod" ], + "doc/html/man3/SSL_stream_conclude.html" => [ + "doc/man3/SSL_stream_conclude.pod" + ], + "doc/html/man3/SSL_stream_reset.html" => [ + "doc/man3/SSL_stream_reset.pod" + ], "doc/html/man3/SSL_want.html" => [ "doc/man3/SSL_want.pod" ], @@ -3755,8 +4303,8 @@ our %unified_info = ( "doc/html/man3/TS_RESP_CTX_new.html" => [ "doc/man3/TS_RESP_CTX_new.pod" ], - "doc/html/man3/TS_VERIFY_CTX_set_certs.html" => [ - "doc/man3/TS_VERIFY_CTX_set_certs.pod" + "doc/html/man3/TS_VERIFY_CTX.html" => [ + "doc/man3/TS_VERIFY_CTX.pod" ], "doc/html/man3/UI_STRING.html" => [ "doc/man3/UI_STRING.pod" @@ -3776,6 +4324,21 @@ our %unified_info = ( "doc/html/man3/X509V3_set_ctx.html" => [ "doc/man3/X509V3_set_ctx.pod" ], + "doc/html/man3/X509_ACERT_add1_attr.html" => [ + "doc/man3/X509_ACERT_add1_attr.pod" + ], + "doc/html/man3/X509_ACERT_add_attr_nconf.html" => [ + "doc/man3/X509_ACERT_add_attr_nconf.pod" + ], + "doc/html/man3/X509_ACERT_get0_holder_baseCertId.html" => [ + "doc/man3/X509_ACERT_get0_holder_baseCertId.pod" + ], + "doc/html/man3/X509_ACERT_get_attr.html" => [ + "doc/man3/X509_ACERT_get_attr.pod" + ], + "doc/html/man3/X509_ACERT_print_ex.html" => [ + "doc/man3/X509_ACERT_print_ex.pod" + ], "doc/html/man3/X509_ALGOR_dup.html" => [ "doc/man3/X509_ALGOR_dup.pod" ], @@ -3824,6 +4387,9 @@ our %unified_info = ( "doc/html/man3/X509_SIG_get0.html" => [ "doc/man3/X509_SIG_get0.pod" ], + "doc/html/man3/X509_STORE_CTX_get_by_subject.html" => [ + "doc/man3/X509_STORE_CTX_get_by_subject.pod" + ], "doc/html/man3/X509_STORE_CTX_get_error.html" => [ "doc/man3/X509_STORE_CTX_get_error.pod" ], @@ -3890,6 +4456,9 @@ our %unified_info = ( "doc/html/man3/X509_get0_uids.html" => [ "doc/man3/X509_get0_uids.pod" ], + "doc/html/man3/X509_get_default_cert_file.html" => [ + "doc/man3/X509_get_default_cert_file.pod" + ], "doc/html/man3/X509_get_extension_flags.html" => [ "doc/man3/X509_get_extension_flags.pod" ], @@ -4013,9 +4582,15 @@ our %unified_info = ( "doc/html/man7/EVP_CIPHER-SM4.html" => [ "doc/man7/EVP_CIPHER-SM4.pod" ], + "doc/html/man7/EVP_KDF-ARGON2.html" => [ + "doc/man7/EVP_KDF-ARGON2.pod" + ], "doc/html/man7/EVP_KDF-HKDF.html" => [ "doc/man7/EVP_KDF-HKDF.pod" ], + "doc/html/man7/EVP_KDF-HMAC-DRBG.html" => [ + "doc/man7/EVP_KDF-HMAC-DRBG.pod" + ], "doc/html/man7/EVP_KDF-KB.html" => [ "doc/man7/EVP_KDF-KB.pod" ], @@ -4031,6 +4606,9 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-PKCS12KDF.html" => [ "doc/man7/EVP_KDF-PKCS12KDF.pod" ], + "doc/html/man7/EVP_KDF-PVKKDF.html" => [ + "doc/man7/EVP_KDF-PVKKDF.pod" + ], "doc/html/man7/EVP_KDF-SCRYPT.html" => [ "doc/man7/EVP_KDF-SCRYPT.pod" ], @@ -4055,9 +4633,18 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-X963.html" => [ "doc/man7/EVP_KDF-X963.pod" ], + "doc/html/man7/EVP_KEM-EC.html" => [ + "doc/man7/EVP_KEM-EC.pod" + ], + "doc/html/man7/EVP_KEM-ML-KEM.html" => [ + "doc/man7/EVP_KEM-ML-KEM.pod" + ], "doc/html/man7/EVP_KEM-RSA.html" => [ "doc/man7/EVP_KEM-RSA.pod" ], + "doc/html/man7/EVP_KEM-X25519.html" => [ + "doc/man7/EVP_KEM-X25519.pod" + ], "doc/html/man7/EVP_KEYEXCH-DH.html" => [ "doc/man7/EVP_KEYEXCH-DH.pod" ], @@ -4091,6 +4678,9 @@ our %unified_info = ( "doc/html/man7/EVP_MD-BLAKE2.html" => [ "doc/man7/EVP_MD-BLAKE2.pod" ], + "doc/html/man7/EVP_MD-KECCAK.html" => [ + "doc/man7/EVP_MD-KECCAK.pod" + ], "doc/html/man7/EVP_MD-MD2.html" => [ "doc/man7/EVP_MD-MD2.pod" ], @@ -4148,15 +4738,27 @@ our %unified_info = ( "doc/html/man7/EVP_PKEY-HMAC.html" => [ "doc/man7/EVP_PKEY-HMAC.pod" ], + "doc/html/man7/EVP_PKEY-ML-DSA.html" => [ + "doc/man7/EVP_PKEY-ML-DSA.pod" + ], + "doc/html/man7/EVP_PKEY-ML-KEM.html" => [ + "doc/man7/EVP_PKEY-ML-KEM.pod" + ], "doc/html/man7/EVP_PKEY-RSA.html" => [ "doc/man7/EVP_PKEY-RSA.pod" ], + "doc/html/man7/EVP_PKEY-SLH-DSA.html" => [ + "doc/man7/EVP_PKEY-SLH-DSA.pod" + ], "doc/html/man7/EVP_PKEY-SM2.html" => [ "doc/man7/EVP_PKEY-SM2.pod" ], "doc/html/man7/EVP_PKEY-X25519.html" => [ "doc/man7/EVP_PKEY-X25519.pod" ], + "doc/html/man7/EVP_RAND-CRNG-TEST.html" => [ + "doc/man7/EVP_RAND-CRNG-TEST.pod" + ], "doc/html/man7/EVP_RAND-CTR-DRBG.html" => [ "doc/man7/EVP_RAND-CTR-DRBG.pod" ], @@ -4166,6 +4768,9 @@ our %unified_info = ( "doc/html/man7/EVP_RAND-HMAC-DRBG.html" => [ "doc/man7/EVP_RAND-HMAC-DRBG.pod" ], + "doc/html/man7/EVP_RAND-JITTER.html" => [ + "doc/man7/EVP_RAND-JITTER.pod" + ], "doc/html/man7/EVP_RAND-SEED-SRC.html" => [ "doc/man7/EVP_RAND-SEED-SRC.pod" ], @@ -4187,9 +4792,15 @@ our %unified_info = ( "doc/html/man7/EVP_SIGNATURE-HMAC.html" => [ "doc/man7/EVP_SIGNATURE-HMAC.pod" ], + "doc/html/man7/EVP_SIGNATURE-ML-DSA.html" => [ + "doc/man7/EVP_SIGNATURE-ML-DSA.pod" + ], "doc/html/man7/EVP_SIGNATURE-RSA.html" => [ "doc/man7/EVP_SIGNATURE-RSA.pod" ], + "doc/html/man7/EVP_SIGNATURE-SLH-DSA.html" => [ + "doc/man7/EVP_SIGNATURE-SLH-DSA.pod" + ], "doc/html/man7/OSSL_PROVIDER-FIPS.html" => [ "doc/man7/OSSL_PROVIDER-FIPS.pod" ], @@ -4205,6 +4816,9 @@ our %unified_info = ( "doc/html/man7/OSSL_PROVIDER-null.html" => [ "doc/man7/OSSL_PROVIDER-null.pod" ], + "doc/html/man7/OSSL_STORE-winstore.html" => [ + "doc/man7/OSSL_STORE-winstore.pod" + ], "doc/html/man7/RAND.html" => [ "doc/man7/RAND.pod" ], @@ -4217,9 +4831,6 @@ our %unified_info = ( "doc/html/man7/bio.html" => [ "doc/man7/bio.pod" ], - "doc/html/man7/crypto.html" => [ - "doc/man7/crypto.pod" - ], "doc/html/man7/ct.html" => [ "doc/man7/ct.pod" ], @@ -4250,9 +4861,6 @@ our %unified_info = ( "doc/html/man7/life_cycle-rand.html" => [ "doc/man7/life_cycle-rand.pod" ], - "doc/html/man7/migration_guide.html" => [ - "doc/man7/migration_guide.pod" - ], "doc/html/man7/openssl-core.h.html" => [ "doc/man7/openssl-core.h.pod" ], @@ -4268,12 +4876,66 @@ our %unified_info = ( "doc/html/man7/openssl-glossary.html" => [ "doc/man7/openssl-glossary.pod" ], + "doc/html/man7/openssl-qlog.html" => [ + "doc/man7/openssl-qlog.pod" + ], + "doc/html/man7/openssl-quic-concurrency.html" => [ + "doc/man7/openssl-quic-concurrency.pod" + ], + "doc/html/man7/openssl-quic.html" => [ + "doc/man7/openssl-quic.pod" + ], "doc/html/man7/openssl-threads.html" => [ "doc/man7/openssl-threads.pod" ], "doc/html/man7/openssl_user_macros.html" => [ "doc/man7/openssl_user_macros.pod" ], + "doc/html/man7/ossl-guide-introduction.html" => [ + "doc/man7/ossl-guide-introduction.pod" + ], + "doc/html/man7/ossl-guide-libcrypto-introduction.html" => [ + "doc/man7/ossl-guide-libcrypto-introduction.pod" + ], + "doc/html/man7/ossl-guide-libraries-introduction.html" => [ + "doc/man7/ossl-guide-libraries-introduction.pod" + ], + "doc/html/man7/ossl-guide-libssl-introduction.html" => [ + "doc/man7/ossl-guide-libssl-introduction.pod" + ], + "doc/html/man7/ossl-guide-migration.html" => [ + "doc/man7/ossl-guide-migration.pod" + ], + "doc/html/man7/ossl-guide-quic-client-block.html" => [ + "doc/man7/ossl-guide-quic-client-block.pod" + ], + "doc/html/man7/ossl-guide-quic-client-non-block.html" => [ + "doc/man7/ossl-guide-quic-client-non-block.pod" + ], + "doc/html/man7/ossl-guide-quic-introduction.html" => [ + "doc/man7/ossl-guide-quic-introduction.pod" + ], + "doc/html/man7/ossl-guide-quic-multi-stream.html" => [ + "doc/man7/ossl-guide-quic-multi-stream.pod" + ], + "doc/html/man7/ossl-guide-quic-server-block.html" => [ + "doc/man7/ossl-guide-quic-server-block.pod" + ], + "doc/html/man7/ossl-guide-quic-server-non-block.html" => [ + "doc/man7/ossl-guide-quic-server-non-block.pod" + ], + "doc/html/man7/ossl-guide-tls-client-block.html" => [ + "doc/man7/ossl-guide-tls-client-block.pod" + ], + "doc/html/man7/ossl-guide-tls-client-non-block.html" => [ + "doc/man7/ossl-guide-tls-client-non-block.pod" + ], + "doc/html/man7/ossl-guide-tls-introduction.html" => [ + "doc/man7/ossl-guide-tls-introduction.pod" + ], + "doc/html/man7/ossl-guide-tls-server-block.html" => [ + "doc/man7/ossl-guide-tls-server-block.pod" + ], "doc/html/man7/ossl_store-file.html" => [ "doc/man7/ossl_store-file.pod" ], @@ -4328,6 +4990,9 @@ our %unified_info = ( "doc/html/man7/provider-signature.html" => [ "doc/man7/provider-signature.pod" ], + "doc/html/man7/provider-skeymgmt.html" => [ + "doc/man7/provider-skeymgmt.pod" + ], "doc/html/man7/provider-storemgmt.html" => [ "doc/man7/provider-storemgmt.pod" ], @@ -4337,9 +5002,6 @@ our %unified_info = ( "doc/html/man7/proxy-certificates.html" => [ "doc/man7/proxy-certificates.pod" ], - "doc/html/man7/ssl.html" => [ - "doc/man7/ssl.pod" - ], "doc/html/man7/x509.html" => [ "doc/man7/x509.pod" ], @@ -4487,6 +5149,9 @@ our %unified_info = ( "doc/man/man1/openssl-sess_id.1" => [ "doc/man1/openssl-sess_id.pod" ], + "doc/man/man1/openssl-skeyutl.1" => [ + "doc/man1/openssl-skeyutl.pod" + ], "doc/man/man1/openssl-smime.1" => [ "doc/man1/openssl-smime.pod" ], @@ -4628,6 +5293,9 @@ our %unified_info = ( "doc/man/man3/BIO_get_ex_new_index.3" => [ "doc/man3/BIO_get_ex_new_index.pod" ], + "doc/man/man3/BIO_get_rpoll_descriptor.3" => [ + "doc/man3/BIO_get_rpoll_descriptor.pod" + ], "doc/man/man3/BIO_meth_new.3" => [ "doc/man3/BIO_meth_new.pod" ], @@ -4664,6 +5332,9 @@ our %unified_info = ( "doc/man/man3/BIO_s_datagram.3" => [ "doc/man3/BIO_s_datagram.pod" ], + "doc/man/man3/BIO_s_dgram_pair.3" => [ + "doc/man3/BIO_s_dgram_pair.pod" + ], "doc/man/man3/BIO_s_fd.3" => [ "doc/man3/BIO_s_fd.pod" ], @@ -4679,6 +5350,9 @@ our %unified_info = ( "doc/man/man3/BIO_s_socket.3" => [ "doc/man3/BIO_s_socket.pod" ], + "doc/man/man3/BIO_sendmmsg.3" => [ + "doc/man3/BIO_sendmmsg.pod" + ], "doc/man/man3/BIO_set_callback.3" => [ "doc/man3/BIO_set_callback.pod" ], @@ -4751,6 +5425,9 @@ our %unified_info = ( "doc/man/man3/BUF_MEM_new.3" => [ "doc/man3/BUF_MEM_new.pod" ], + "doc/man/man3/CMAC_CTX.3" => [ + "doc/man3/CMAC_CTX.pod" + ], "doc/man/man3/CMS_EncryptedData_decrypt.3" => [ "doc/man3/CMS_EncryptedData_decrypt.pod" ], @@ -4817,6 +5494,9 @@ our %unified_info = ( "doc/man/man3/CMS_verify_receipt.3" => [ "doc/man3/CMS_verify_receipt.pod" ], + "doc/man/man3/COMP_CTX_new.3" => [ + "doc/man3/COMP_CTX_new.pod" + ], "doc/man/man3/CONF_modules_free.3" => [ "doc/man3/CONF_modules_free.pod" ], @@ -4916,6 +5596,12 @@ our %unified_info = ( "doc/man/man3/DTLS_set_timer_cb.3" => [ "doc/man3/DTLS_set_timer_cb.pod" ], + "doc/man/man3/DTLSv1_get_timeout.3" => [ + "doc/man3/DTLSv1_get_timeout.pod" + ], + "doc/man/man3/DTLSv1_handle_timeout.3" => [ + "doc/man3/DTLSv1_handle_timeout.pod" + ], "doc/man/man3/DTLSv1_listen.3" => [ "doc/man3/DTLSv1_listen.pod" ], @@ -5054,6 +5740,9 @@ our %unified_info = ( "doc/man/man3/EVP_PKEY_CTX_get0_pkey.3" => [ "doc/man3/EVP_PKEY_CTX_get0_pkey.pod" ], + "doc/man/man3/EVP_PKEY_CTX_get_algor.3" => [ + "doc/man3/EVP_PKEY_CTX_get_algor.pod" + ], "doc/man/man3/EVP_PKEY_CTX_new.3" => [ "doc/man3/EVP_PKEY_CTX_new.pod" ], @@ -5171,6 +5860,12 @@ our %unified_info = ( "doc/man/man3/EVP_SIGNATURE.3" => [ "doc/man3/EVP_SIGNATURE.pod" ], + "doc/man/man3/EVP_SKEY.3" => [ + "doc/man3/EVP_SKEY.pod" + ], + "doc/man/man3/EVP_SKEYMGMT.3" => [ + "doc/man3/EVP_SKEYMGMT.pod" + ], "doc/man/man3/EVP_SealInit.3" => [ "doc/man3/EVP_SealInit.pod" ], @@ -5258,6 +5953,9 @@ our %unified_info = ( "doc/man/man3/EVP_whirlpool.3" => [ "doc/man3/EVP_whirlpool.pod" ], + "doc/man/man3/GENERAL_NAME.3" => [ + "doc/man3/GENERAL_NAME.pod" + ], "doc/man/man3/HMAC.3" => [ "doc/man3/HMAC.pod" ], @@ -5330,9 +6028,15 @@ our %unified_info = ( "doc/man/man3/OPENSSL_load_builtin_modules.3" => [ "doc/man3/OPENSSL_load_builtin_modules.pod" ], + "doc/man/man3/OPENSSL_load_u16_le.3" => [ + "doc/man3/OPENSSL_load_u16_le.pod" + ], "doc/man/man3/OPENSSL_malloc.3" => [ "doc/man3/OPENSSL_malloc.pod" ], + "doc/man/man3/OPENSSL_riscvcap.3" => [ + "doc/man3/OPENSSL_riscvcap.pod" + ], "doc/man/man3/OPENSSL_s390xcap.3" => [ "doc/man3/OPENSSL_s390xcap.pod" ], @@ -5348,12 +6052,18 @@ our %unified_info = ( "doc/man/man3/OSSL_CALLBACK.3" => [ "doc/man3/OSSL_CALLBACK.pod" ], + "doc/man/man3/OSSL_CMP_ATAV_set0.3" => [ + "doc/man3/OSSL_CMP_ATAV_set0.pod" + ], "doc/man/man3/OSSL_CMP_CTX_new.3" => [ "doc/man3/OSSL_CMP_CTX_new.pod" ], "doc/man/man3/OSSL_CMP_HDR_get0_transactionID.3" => [ "doc/man3/OSSL_CMP_HDR_get0_transactionID.pod" ], + "doc/man/man3/OSSL_CMP_ITAV_new_caCerts.3" => [ + "doc/man3/OSSL_CMP_ITAV_new_caCerts.pod" + ], "doc/man/man3/OSSL_CMP_ITAV_set0.3" => [ "doc/man3/OSSL_CMP_ITAV_set0.pod" ], @@ -5423,9 +6133,18 @@ our %unified_info = ( "doc/man/man3/OSSL_ENCODER_to_bio.3" => [ "doc/man3/OSSL_ENCODER_to_bio.pod" ], + "doc/man/man3/OSSL_ERR_STATE_save.3" => [ + "doc/man3/OSSL_ERR_STATE_save.pod" + ], "doc/man/man3/OSSL_ESS_check_signing_certs.3" => [ "doc/man3/OSSL_ESS_check_signing_certs.pod" ], + "doc/man/man3/OSSL_GENERAL_NAMES_print.3" => [ + "doc/man3/OSSL_GENERAL_NAMES_print.pod" + ], + "doc/man/man3/OSSL_HPKE_CTX_new.3" => [ + "doc/man3/OSSL_HPKE_CTX_new.pod" + ], "doc/man/man3/OSSL_HTTP_REQ_CTX.3" => [ "doc/man3/OSSL_HTTP_REQ_CTX.pod" ], @@ -5435,12 +6154,24 @@ our %unified_info = ( "doc/man/man3/OSSL_HTTP_transfer.3" => [ "doc/man3/OSSL_HTTP_transfer.pod" ], + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX.3" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX.pod" + ], + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX_print.3" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX_print.pod" + ], + "doc/man/man3/OSSL_INDICATOR_set_callback.3" => [ + "doc/man3/OSSL_INDICATOR_set_callback.pod" + ], "doc/man/man3/OSSL_ITEM.3" => [ "doc/man3/OSSL_ITEM.pod" ], "doc/man/man3/OSSL_LIB_CTX.3" => [ "doc/man3/OSSL_LIB_CTX.pod" ], + "doc/man/man3/OSSL_LIB_CTX_set_conf_diagnostics.3" => [ + "doc/man3/OSSL_LIB_CTX_set_conf_diagnostics.pod" + ], "doc/man/man3/OSSL_PARAM.3" => [ "doc/man3/OSSL_PARAM.pod" ], @@ -5456,9 +6187,15 @@ our %unified_info = ( "doc/man/man3/OSSL_PARAM_int.3" => [ "doc/man3/OSSL_PARAM_int.pod" ], + "doc/man/man3/OSSL_PARAM_print_to_bio.3" => [ + "doc/man3/OSSL_PARAM_print_to_bio.pod" + ], "doc/man/man3/OSSL_PROVIDER.3" => [ "doc/man3/OSSL_PROVIDER.pod" ], + "doc/man/man3/OSSL_QUIC_client_method.3" => [ + "doc/man3/OSSL_QUIC_client_method.pod" + ], "doc/man/man3/OSSL_SELF_TEST_new.3" => [ "doc/man3/OSSL_SELF_TEST_new.pod" ], @@ -5483,6 +6220,9 @@ our %unified_info = ( "doc/man/man3/OSSL_STORE_open.3" => [ "doc/man3/OSSL_STORE_open.pod" ], + "doc/man/man3/OSSL_sleep.3" => [ + "doc/man3/OSSL_sleep.pod" + ], "doc/man/man3/OSSL_trace_enabled.3" => [ "doc/man3/OSSL_trace_enabled.pod" ], @@ -5498,6 +6238,9 @@ our %unified_info = ( "doc/man/man3/OpenSSL_version.3" => [ "doc/man3/OpenSSL_version.pod" ], + "doc/man/man3/PBMAC1_get1_pbkdf2_param.3" => [ + "doc/man3/PBMAC1_get1_pbkdf2_param.pod" + ], "doc/man/man3/PEM_X509_INFO_read_bio_ex.3" => [ "doc/man3/PEM_X509_INFO_read_bio_ex.pod" ], @@ -5534,6 +6277,9 @@ our %unified_info = ( "doc/man/man3/PKCS12_SAFEBAG_get1_cert.3" => [ "doc/man3/PKCS12_SAFEBAG_get1_cert.pod" ], + "doc/man/man3/PKCS12_SAFEBAG_set0_attrs.3" => [ + "doc/man3/PKCS12_SAFEBAG_set0_attrs.pod" + ], "doc/man/man3/PKCS12_add1_attr_by_NID.3" => [ "doc/man3/PKCS12_add1_attr_by_NID.pod" ], @@ -5807,6 +6553,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set0_CA_list.3" => [ "doc/man3/SSL_CTX_set0_CA_list.pod" ], + "doc/man/man3/SSL_CTX_set1_cert_comp_preference.3" => [ + "doc/man3/SSL_CTX_set1_cert_comp_preference.pod" + ], "doc/man/man3/SSL_CTX_set1_curves.3" => [ "doc/man3/SSL_CTX_set1_curves.pod" ], @@ -5846,6 +6595,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_default_passwd_cb.3" => [ "doc/man3/SSL_CTX_set_default_passwd_cb.pod" ], + "doc/man/man3/SSL_CTX_set_domain_flags.3" => [ + "doc/man3/SSL_CTX_set_domain_flags.pod" + ], "doc/man/man3/SSL_CTX_set_generate_session_id.3" => [ "doc/man3/SSL_CTX_set_generate_session_id.pod" ], @@ -5867,6 +6619,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_msg_callback.3" => [ "doc/man3/SSL_CTX_set_msg_callback.pod" ], + "doc/man/man3/SSL_CTX_set_new_pending_conn_cb.3" => [ + "doc/man3/SSL_CTX_set_new_pending_conn_cb.pod" + ], "doc/man/man3/SSL_CTX_set_num_tickets.3" => [ "doc/man3/SSL_CTX_set_num_tickets.pod" ], @@ -5981,6 +6736,9 @@ our %unified_info = ( "doc/man/man3/SSL_accept.3" => [ "doc/man3/SSL_accept.pod" ], + "doc/man/man3/SSL_accept_stream.3" => [ + "doc/man3/SSL_accept_stream.pod" + ], "doc/man/man3/SSL_alert_type_string.3" => [ "doc/man3/SSL_alert_type_string.pod" ], @@ -6008,9 +6766,21 @@ our %unified_info = ( "doc/man/man3/SSL_free.3" => [ "doc/man3/SSL_free.pod" ], + "doc/man/man3/SSL_get0_connection.3" => [ + "doc/man3/SSL_get0_connection.pod" + ], + "doc/man/man3/SSL_get0_group_name.3" => [ + "doc/man3/SSL_get0_group_name.pod" + ], + "doc/man/man3/SSL_get0_peer_rpk.3" => [ + "doc/man3/SSL_get0_peer_rpk.pod" + ], "doc/man/man3/SSL_get0_peer_scts.3" => [ "doc/man3/SSL_get0_peer_scts.pod" ], + "doc/man/man3/SSL_get1_builtin_sigalgs.3" => [ + "doc/man3/SSL_get1_builtin_sigalgs.pod" + ], "doc/man/man3/SSL_get_SSL_CTX.3" => [ "doc/man3/SSL_get_SSL_CTX.pod" ], @@ -6026,6 +6796,9 @@ our %unified_info = ( "doc/man/man3/SSL_get_client_random.3" => [ "doc/man3/SSL_get_client_random.pod" ], + "doc/man/man3/SSL_get_conn_close_info.3" => [ + "doc/man3/SSL_get_conn_close_info.pod" + ], "doc/man/man3/SSL_get_current_cipher.3" => [ "doc/man3/SSL_get_current_cipher.pod" ], @@ -6035,12 +6808,18 @@ our %unified_info = ( "doc/man/man3/SSL_get_error.3" => [ "doc/man3/SSL_get_error.pod" ], + "doc/man/man3/SSL_get_event_timeout.3" => [ + "doc/man3/SSL_get_event_timeout.pod" + ], "doc/man/man3/SSL_get_extms_support.3" => [ "doc/man3/SSL_get_extms_support.pod" ], "doc/man/man3/SSL_get_fd.3" => [ "doc/man3/SSL_get_fd.pod" ], + "doc/man/man3/SSL_get_handshake_rtt.3" => [ + "doc/man3/SSL_get_handshake_rtt.pod" + ], "doc/man/man3/SSL_get_peer_cert_chain.3" => [ "doc/man3/SSL_get_peer_cert_chain.pod" ], @@ -6059,12 +6838,24 @@ our %unified_info = ( "doc/man/man3/SSL_get_rbio.3" => [ "doc/man3/SSL_get_rbio.pod" ], + "doc/man/man3/SSL_get_rpoll_descriptor.3" => [ + "doc/man3/SSL_get_rpoll_descriptor.pod" + ], "doc/man/man3/SSL_get_session.3" => [ "doc/man3/SSL_get_session.pod" ], "doc/man/man3/SSL_get_shared_sigalgs.3" => [ "doc/man3/SSL_get_shared_sigalgs.pod" ], + "doc/man/man3/SSL_get_stream_id.3" => [ + "doc/man3/SSL_get_stream_id.pod" + ], + "doc/man/man3/SSL_get_stream_read_state.3" => [ + "doc/man3/SSL_get_stream_read_state.pod" + ], + "doc/man/man3/SSL_get_value_uint.3" => [ + "doc/man3/SSL_get_value_uint.pod" + ], "doc/man/man3/SSL_get_verify_result.3" => [ "doc/man3/SSL_get_verify_result.pod" ], @@ -6074,9 +6865,15 @@ our %unified_info = ( "doc/man/man3/SSL_group_to_name.3" => [ "doc/man3/SSL_group_to_name.pod" ], + "doc/man/man3/SSL_handle_events.3" => [ + "doc/man3/SSL_handle_events.pod" + ], "doc/man/man3/SSL_in_init.3" => [ "doc/man3/SSL_in_init.pod" ], + "doc/man/man3/SSL_inject_net_dgram.3" => [ + "doc/man3/SSL_inject_net_dgram.pod" + ], "doc/man/man3/SSL_key_update.3" => [ "doc/man3/SSL_key_update.pod" ], @@ -6089,9 +6886,21 @@ our %unified_info = ( "doc/man/man3/SSL_new.3" => [ "doc/man3/SSL_new.pod" ], + "doc/man/man3/SSL_new_domain.3" => [ + "doc/man3/SSL_new_domain.pod" + ], + "doc/man/man3/SSL_new_listener.3" => [ + "doc/man3/SSL_new_listener.pod" + ], + "doc/man/man3/SSL_new_stream.3" => [ + "doc/man3/SSL_new_stream.pod" + ], "doc/man/man3/SSL_pending.3" => [ "doc/man3/SSL_pending.pod" ], + "doc/man/man3/SSL_poll.3" => [ + "doc/man3/SSL_poll.pod" + ], "doc/man/man3/SSL_read.3" => [ "doc/man3/SSL_read.pod" ], @@ -6107,24 +6916,45 @@ our %unified_info = ( "doc/man/man3/SSL_set1_host.3" => [ "doc/man3/SSL_set1_host.pod" ], + "doc/man/man3/SSL_set1_initial_peer_addr.3" => [ + "doc/man3/SSL_set1_initial_peer_addr.pod" + ], + "doc/man/man3/SSL_set1_server_cert_type.3" => [ + "doc/man3/SSL_set1_server_cert_type.pod" + ], "doc/man/man3/SSL_set_async_callback.3" => [ "doc/man3/SSL_set_async_callback.pod" ], "doc/man/man3/SSL_set_bio.3" => [ "doc/man3/SSL_set_bio.pod" ], + "doc/man/man3/SSL_set_blocking_mode.3" => [ + "doc/man3/SSL_set_blocking_mode.pod" + ], "doc/man/man3/SSL_set_connect_state.3" => [ "doc/man3/SSL_set_connect_state.pod" ], + "doc/man/man3/SSL_set_default_stream_mode.3" => [ + "doc/man3/SSL_set_default_stream_mode.pod" + ], "doc/man/man3/SSL_set_fd.3" => [ "doc/man3/SSL_set_fd.pod" ], + "doc/man/man3/SSL_set_incoming_stream_policy.3" => [ + "doc/man3/SSL_set_incoming_stream_policy.pod" + ], + "doc/man/man3/SSL_set_quic_tls_cbs.3" => [ + "doc/man3/SSL_set_quic_tls_cbs.pod" + ], "doc/man/man3/SSL_set_retry_verify.3" => [ "doc/man3/SSL_set_retry_verify.pod" ], "doc/man/man3/SSL_set_session.3" => [ "doc/man3/SSL_set_session.pod" ], + "doc/man/man3/SSL_set_session_secret_cb.3" => [ + "doc/man3/SSL_set_session_secret_cb.pod" + ], "doc/man/man3/SSL_set_shutdown.3" => [ "doc/man3/SSL_set_shutdown.pod" ], @@ -6137,6 +6967,12 @@ our %unified_info = ( "doc/man/man3/SSL_state_string.3" => [ "doc/man3/SSL_state_string.pod" ], + "doc/man/man3/SSL_stream_conclude.3" => [ + "doc/man3/SSL_stream_conclude.pod" + ], + "doc/man/man3/SSL_stream_reset.3" => [ + "doc/man3/SSL_stream_reset.pod" + ], "doc/man/man3/SSL_want.3" => [ "doc/man3/SSL_want.pod" ], @@ -6146,8 +6982,8 @@ our %unified_info = ( "doc/man/man3/TS_RESP_CTX_new.3" => [ "doc/man3/TS_RESP_CTX_new.pod" ], - "doc/man/man3/TS_VERIFY_CTX_set_certs.3" => [ - "doc/man3/TS_VERIFY_CTX_set_certs.pod" + "doc/man/man3/TS_VERIFY_CTX.3" => [ + "doc/man3/TS_VERIFY_CTX.pod" ], "doc/man/man3/UI_STRING.3" => [ "doc/man3/UI_STRING.pod" @@ -6167,6 +7003,21 @@ our %unified_info = ( "doc/man/man3/X509V3_set_ctx.3" => [ "doc/man3/X509V3_set_ctx.pod" ], + "doc/man/man3/X509_ACERT_add1_attr.3" => [ + "doc/man3/X509_ACERT_add1_attr.pod" + ], + "doc/man/man3/X509_ACERT_add_attr_nconf.3" => [ + "doc/man3/X509_ACERT_add_attr_nconf.pod" + ], + "doc/man/man3/X509_ACERT_get0_holder_baseCertId.3" => [ + "doc/man3/X509_ACERT_get0_holder_baseCertId.pod" + ], + "doc/man/man3/X509_ACERT_get_attr.3" => [ + "doc/man3/X509_ACERT_get_attr.pod" + ], + "doc/man/man3/X509_ACERT_print_ex.3" => [ + "doc/man3/X509_ACERT_print_ex.pod" + ], "doc/man/man3/X509_ALGOR_dup.3" => [ "doc/man3/X509_ALGOR_dup.pod" ], @@ -6215,6 +7066,9 @@ our %unified_info = ( "doc/man/man3/X509_SIG_get0.3" => [ "doc/man3/X509_SIG_get0.pod" ], + "doc/man/man3/X509_STORE_CTX_get_by_subject.3" => [ + "doc/man3/X509_STORE_CTX_get_by_subject.pod" + ], "doc/man/man3/X509_STORE_CTX_get_error.3" => [ "doc/man3/X509_STORE_CTX_get_error.pod" ], @@ -6281,6 +7135,9 @@ our %unified_info = ( "doc/man/man3/X509_get0_uids.3" => [ "doc/man3/X509_get0_uids.pod" ], + "doc/man/man3/X509_get_default_cert_file.3" => [ + "doc/man3/X509_get_default_cert_file.pod" + ], "doc/man/man3/X509_get_extension_flags.3" => [ "doc/man3/X509_get_extension_flags.pod" ], @@ -6404,9 +7261,15 @@ our %unified_info = ( "doc/man/man7/EVP_CIPHER-SM4.7" => [ "doc/man7/EVP_CIPHER-SM4.pod" ], + "doc/man/man7/EVP_KDF-ARGON2.7" => [ + "doc/man7/EVP_KDF-ARGON2.pod" + ], "doc/man/man7/EVP_KDF-HKDF.7" => [ "doc/man7/EVP_KDF-HKDF.pod" ], + "doc/man/man7/EVP_KDF-HMAC-DRBG.7" => [ + "doc/man7/EVP_KDF-HMAC-DRBG.pod" + ], "doc/man/man7/EVP_KDF-KB.7" => [ "doc/man7/EVP_KDF-KB.pod" ], @@ -6422,6 +7285,9 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-PKCS12KDF.7" => [ "doc/man7/EVP_KDF-PKCS12KDF.pod" ], + "doc/man/man7/EVP_KDF-PVKKDF.7" => [ + "doc/man7/EVP_KDF-PVKKDF.pod" + ], "doc/man/man7/EVP_KDF-SCRYPT.7" => [ "doc/man7/EVP_KDF-SCRYPT.pod" ], @@ -6446,9 +7312,18 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-X963.7" => [ "doc/man7/EVP_KDF-X963.pod" ], + "doc/man/man7/EVP_KEM-EC.7" => [ + "doc/man7/EVP_KEM-EC.pod" + ], + "doc/man/man7/EVP_KEM-ML-KEM.7" => [ + "doc/man7/EVP_KEM-ML-KEM.pod" + ], "doc/man/man7/EVP_KEM-RSA.7" => [ "doc/man7/EVP_KEM-RSA.pod" ], + "doc/man/man7/EVP_KEM-X25519.7" => [ + "doc/man7/EVP_KEM-X25519.pod" + ], "doc/man/man7/EVP_KEYEXCH-DH.7" => [ "doc/man7/EVP_KEYEXCH-DH.pod" ], @@ -6482,6 +7357,9 @@ our %unified_info = ( "doc/man/man7/EVP_MD-BLAKE2.7" => [ "doc/man7/EVP_MD-BLAKE2.pod" ], + "doc/man/man7/EVP_MD-KECCAK.7" => [ + "doc/man7/EVP_MD-KECCAK.pod" + ], "doc/man/man7/EVP_MD-MD2.7" => [ "doc/man7/EVP_MD-MD2.pod" ], @@ -6539,15 +7417,27 @@ our %unified_info = ( "doc/man/man7/EVP_PKEY-HMAC.7" => [ "doc/man7/EVP_PKEY-HMAC.pod" ], + "doc/man/man7/EVP_PKEY-ML-DSA.7" => [ + "doc/man7/EVP_PKEY-ML-DSA.pod" + ], + "doc/man/man7/EVP_PKEY-ML-KEM.7" => [ + "doc/man7/EVP_PKEY-ML-KEM.pod" + ], "doc/man/man7/EVP_PKEY-RSA.7" => [ "doc/man7/EVP_PKEY-RSA.pod" ], + "doc/man/man7/EVP_PKEY-SLH-DSA.7" => [ + "doc/man7/EVP_PKEY-SLH-DSA.pod" + ], "doc/man/man7/EVP_PKEY-SM2.7" => [ "doc/man7/EVP_PKEY-SM2.pod" ], "doc/man/man7/EVP_PKEY-X25519.7" => [ "doc/man7/EVP_PKEY-X25519.pod" ], + "doc/man/man7/EVP_RAND-CRNG-TEST.7" => [ + "doc/man7/EVP_RAND-CRNG-TEST.pod" + ], "doc/man/man7/EVP_RAND-CTR-DRBG.7" => [ "doc/man7/EVP_RAND-CTR-DRBG.pod" ], @@ -6557,6 +7447,9 @@ our %unified_info = ( "doc/man/man7/EVP_RAND-HMAC-DRBG.7" => [ "doc/man7/EVP_RAND-HMAC-DRBG.pod" ], + "doc/man/man7/EVP_RAND-JITTER.7" => [ + "doc/man7/EVP_RAND-JITTER.pod" + ], "doc/man/man7/EVP_RAND-SEED-SRC.7" => [ "doc/man7/EVP_RAND-SEED-SRC.pod" ], @@ -6578,9 +7471,15 @@ our %unified_info = ( "doc/man/man7/EVP_SIGNATURE-HMAC.7" => [ "doc/man7/EVP_SIGNATURE-HMAC.pod" ], + "doc/man/man7/EVP_SIGNATURE-ML-DSA.7" => [ + "doc/man7/EVP_SIGNATURE-ML-DSA.pod" + ], "doc/man/man7/EVP_SIGNATURE-RSA.7" => [ "doc/man7/EVP_SIGNATURE-RSA.pod" ], + "doc/man/man7/EVP_SIGNATURE-SLH-DSA.7" => [ + "doc/man7/EVP_SIGNATURE-SLH-DSA.pod" + ], "doc/man/man7/OSSL_PROVIDER-FIPS.7" => [ "doc/man7/OSSL_PROVIDER-FIPS.pod" ], @@ -6596,6 +7495,9 @@ our %unified_info = ( "doc/man/man7/OSSL_PROVIDER-null.7" => [ "doc/man7/OSSL_PROVIDER-null.pod" ], + "doc/man/man7/OSSL_STORE-winstore.7" => [ + "doc/man7/OSSL_STORE-winstore.pod" + ], "doc/man/man7/RAND.7" => [ "doc/man7/RAND.pod" ], @@ -6608,9 +7510,6 @@ our %unified_info = ( "doc/man/man7/bio.7" => [ "doc/man7/bio.pod" ], - "doc/man/man7/crypto.7" => [ - "doc/man7/crypto.pod" - ], "doc/man/man7/ct.7" => [ "doc/man7/ct.pod" ], @@ -6641,9 +7540,6 @@ our %unified_info = ( "doc/man/man7/life_cycle-rand.7" => [ "doc/man7/life_cycle-rand.pod" ], - "doc/man/man7/migration_guide.7" => [ - "doc/man7/migration_guide.pod" - ], "doc/man/man7/openssl-core.h.7" => [ "doc/man7/openssl-core.h.pod" ], @@ -6659,12 +7555,66 @@ our %unified_info = ( "doc/man/man7/openssl-glossary.7" => [ "doc/man7/openssl-glossary.pod" ], + "doc/man/man7/openssl-qlog.7" => [ + "doc/man7/openssl-qlog.pod" + ], + "doc/man/man7/openssl-quic-concurrency.7" => [ + "doc/man7/openssl-quic-concurrency.pod" + ], + "doc/man/man7/openssl-quic.7" => [ + "doc/man7/openssl-quic.pod" + ], "doc/man/man7/openssl-threads.7" => [ "doc/man7/openssl-threads.pod" ], "doc/man/man7/openssl_user_macros.7" => [ "doc/man7/openssl_user_macros.pod" ], + "doc/man/man7/ossl-guide-introduction.7" => [ + "doc/man7/ossl-guide-introduction.pod" + ], + "doc/man/man7/ossl-guide-libcrypto-introduction.7" => [ + "doc/man7/ossl-guide-libcrypto-introduction.pod" + ], + "doc/man/man7/ossl-guide-libraries-introduction.7" => [ + "doc/man7/ossl-guide-libraries-introduction.pod" + ], + "doc/man/man7/ossl-guide-libssl-introduction.7" => [ + "doc/man7/ossl-guide-libssl-introduction.pod" + ], + "doc/man/man7/ossl-guide-migration.7" => [ + "doc/man7/ossl-guide-migration.pod" + ], + "doc/man/man7/ossl-guide-quic-client-block.7" => [ + "doc/man7/ossl-guide-quic-client-block.pod" + ], + "doc/man/man7/ossl-guide-quic-client-non-block.7" => [ + "doc/man7/ossl-guide-quic-client-non-block.pod" + ], + "doc/man/man7/ossl-guide-quic-introduction.7" => [ + "doc/man7/ossl-guide-quic-introduction.pod" + ], + "doc/man/man7/ossl-guide-quic-multi-stream.7" => [ + "doc/man7/ossl-guide-quic-multi-stream.pod" + ], + "doc/man/man7/ossl-guide-quic-server-block.7" => [ + "doc/man7/ossl-guide-quic-server-block.pod" + ], + "doc/man/man7/ossl-guide-quic-server-non-block.7" => [ + "doc/man7/ossl-guide-quic-server-non-block.pod" + ], + "doc/man/man7/ossl-guide-tls-client-block.7" => [ + "doc/man7/ossl-guide-tls-client-block.pod" + ], + "doc/man/man7/ossl-guide-tls-client-non-block.7" => [ + "doc/man7/ossl-guide-tls-client-non-block.pod" + ], + "doc/man/man7/ossl-guide-tls-introduction.7" => [ + "doc/man7/ossl-guide-tls-introduction.pod" + ], + "doc/man/man7/ossl-guide-tls-server-block.7" => [ + "doc/man7/ossl-guide-tls-server-block.pod" + ], "doc/man/man7/ossl_store-file.7" => [ "doc/man7/ossl_store-file.pod" ], @@ -6719,6 +7669,9 @@ our %unified_info = ( "doc/man/man7/provider-signature.7" => [ "doc/man7/provider-signature.pod" ], + "doc/man/man7/provider-skeymgmt.7" => [ + "doc/man7/provider-skeymgmt.pod" + ], "doc/man/man7/provider-storemgmt.7" => [ "doc/man7/provider-storemgmt.pod" ], @@ -6728,9 +7681,6 @@ our %unified_info = ( "doc/man/man7/proxy-certificates.7" => [ "doc/man7/proxy-certificates.pod" ], - "doc/man/man7/ssl.7" => [ - "doc/man7/ssl.pod" - ], "doc/man/man7/x509.7" => [ "doc/man7/x509.pod" ], @@ -6910,6 +7860,10 @@ our %unified_info = ( "doc/man1/openssl-sess_id.pod.in", "doc/perlvars.pm" ], + "doc/man1/openssl-skeyutl.pod" => [ + "doc/man1/openssl-skeyutl.pod.in", + "doc/perlvars.pm" + ], "doc/man1/openssl-smime.pod" => [ "doc/man1/openssl-smime.pod.in", "doc/perlvars.pm" @@ -6949,6 +7903,27 @@ our %unified_info = ( "doc/man7/openssl_user_macros.pod" => [ "doc/man7/openssl_user_macros.pod.in" ], + "exporters/OpenSSLConfig.cmake" => [ + "installdata.pm" + ], + "exporters/OpenSSLConfigVersion.cmake" => [ + "exporters/OpenSSLConfig.cmake", + "installdata.pm" + ], + "exporters/libcrypto.pc" => [ + "installdata.pm" + ], + "exporters/libssl.pc" => [ + "installdata.pm" + ], + "exporters/openssl.pc" => [ + "exporters/libcrypto.pc", + "exporters/libssl.pc", + "installdata.pm" + ], + "fuzz/acert-test" => [ + "libcrypto" + ], "fuzz/asn1-test" => [ "libcrypto", "libssl" @@ -6981,16 +7956,92 @@ our %unified_info = ( "fuzz/ct-test" => [ "libcrypto" ], + "fuzz/decoder-test" => [ + "libcrypto" + ], + "fuzz/dtlsclient-test" => [ + "libcrypto", + "libssl" + ], + "fuzz/dtlsserver-test" => [ + "libcrypto", + "libssl" + ], + "fuzz/hashtable-test" => [ + "libcrypto.a" + ], + "fuzz/ml-dsa-test" => [ + "libcrypto.a" + ], + "fuzz/ml-kem-test" => [ + "libcrypto.a" + ], + "fuzz/pem-test" => [ + "libcrypto.a" + ], + "fuzz/provider-test" => [ + "libcrypto" + ], + "fuzz/punycode-test" => [ + "libcrypto.a" + ], + "fuzz/quic-client-test" => [ + "libcrypto.a", + "libssl.a" + ], + "fuzz/quic-lcidm-test" => [ + "libcrypto.a", + "libssl.a" + ], + "fuzz/quic-rcidm-test" => [ + "libcrypto.a", + "libssl.a" + ], + "fuzz/quic-server-test" => [ + "libcrypto.a", + "libssl.a" + ], + "fuzz/quic-srtm-test" => [ + "libcrypto.a", + "libssl.a" + ], "fuzz/server-test" => [ "libcrypto", "libssl" ], + "fuzz/slh-dsa-test" => [ + "libcrypto.a" + ], + "fuzz/smime-test" => [ + "libcrypto", + "libssl" + ], + "fuzz/v3name-test" => [ + "libcrypto.a" + ], "fuzz/x509-test" => [ "libcrypto" ], + "include/internal/param_names.h" => [ + "util/perl|OpenSSL/paramnames.pm" + ], + "include/openssl/core_names.h" => [ + "util/perl|OpenSSL/paramnames.pm" + ], + "libcrypto.pc" => [ + "builddata.pm" + ], "libssl" => [ "libcrypto" ], + "libssl.pc" => [ + "builddata.pm" + ], + "openssl.pc" => [ + "builddata.pm", + "libcrypto.pc", + "libssl.pc" + ], "providers/common/der/der_digests_gen.c" => [ "providers/common/der/DIGESTS.asn1", "providers/common/der/NIST.asn1", @@ -7008,11 +8059,19 @@ our %unified_info = ( "providers/common/der/ECX.asn1", "providers/common/der/oids_to_c.pm" ], + "providers/common/der/der_ml_dsa_gen.c" => [ + "providers/common/der/ML_DSA.asn1", + "providers/common/der/oids_to_c.pm" + ], "providers/common/der/der_rsa_gen.c" => [ "providers/common/der/NIST.asn1", "providers/common/der/RSA.asn1", "providers/common/der/oids_to_c.pm" ], + "providers/common/der/der_slh_dsa_gen.c" => [ + "providers/common/der/SLH_DSA.asn1", + "providers/common/der/oids_to_c.pm" + ], "providers/common/der/der_sm2_gen.c" => [ "providers/common/der/SM2.asn1", "providers/common/der/oids_to_c.pm" @@ -7052,6 +8111,12 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ecx_key.o" => [ "providers/common/include/prov/der_ecx.h" ], + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o" => [ + "providers/common/include/prov/der_ml_dsa.h" + ], + "providers/common/der/libcommon-lib-der_ml_dsa_key.o" => [ + "providers/common/include/prov/der_ml_dsa.h" + ], "providers/common/der/libcommon-lib-der_rsa_gen.o" => [ "providers/common/include/prov/der_rsa.h" ], @@ -7059,6 +8124,12 @@ our %unified_info = ( "providers/common/include/prov/der_digests.h", "providers/common/include/prov/der_rsa.h" ], + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o" => [ + "providers/common/include/prov/der_slh_dsa.h" + ], + "providers/common/der/libcommon-lib-der_slh_dsa_key.o" => [ + "providers/common/include/prov/der_slh_dsa.h" + ], "providers/common/der/libcommon-lib-der_wrap_gen.o" => [ "providers/common/include/prov/der_wrap.h" ], @@ -7098,11 +8169,19 @@ our %unified_info = ( "providers/common/der/ECX.asn1", "providers/common/der/oids_to_c.pm" ], + "providers/common/include/prov/der_ml_dsa.h" => [ + "providers/common/der/ML_DSA.asn1", + "providers/common/der/oids_to_c.pm" + ], "providers/common/include/prov/der_rsa.h" => [ "providers/common/der/NIST.asn1", "providers/common/der/RSA.asn1", "providers/common/der/oids_to_c.pm" ], + "providers/common/include/prov/der_slh_dsa.h" => [ + "providers/common/der/SLH_DSA.asn1", + "providers/common/der/oids_to_c.pm" + ], "providers/common/include/prov/der_sm2.h" => [ "providers/common/der/SM2.asn1", "providers/common/der/oids_to_c.pm" @@ -7135,9 +8214,15 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-eddsa_sig.o" => [ "providers/common/include/prov/der_ecx.h" ], + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o" => [ + "providers/common/include/prov/der_ml_dsa.h" + ], "providers/implementations/signature/libdefault-lib-rsa_sig.o" => [ "providers/common/include/prov/der_rsa.h" ], + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o" => [ + "providers/common/include/prov/der_slh_dsa.h" + ], "providers/implementations/signature/libdefault-lib-sm2_sig.o" => [ "providers/common/include/prov/der_sm2.h" ], @@ -7150,9 +8235,15 @@ our %unified_info = ( "providers/implementations/signature/libfips-lib-eddsa_sig.o" => [ "providers/common/include/prov/der_ecx.h" ], + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o" => [ + "providers/common/include/prov/der_ml_dsa.h" + ], "providers/implementations/signature/libfips-lib-rsa_sig.o" => [ "providers/common/include/prov/der_rsa.h" ], + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o" => [ + "providers/common/include/prov/der_slh_dsa.h" + ], "providers/legacy" => [ "libcrypto", "providers/liblegacy.a" @@ -7230,6 +8321,14 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/bio_addr_test" => [ + "libcrypto", + "test/libtestutil.a" + ], + "test/bio_base64_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/bio_callback_test" => [ "libcrypto", "test/libtestutil.a" @@ -7238,6 +8337,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/bio_dgram_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/bio_enc_test" => [ "libcrypto", "test/libtestutil.a" @@ -7246,6 +8349,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/bio_meth_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/bio_prefix_text" => [ "libcrypto", "test/libtestutil.a" @@ -7258,6 +8365,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/bio_tfo_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/bioprinttest" => [ "libcrypto", "test/libtestutil.a" @@ -7270,6 +8381,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/build_wincrypt_test" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_aes" => [ "libcrypto", "libssl" @@ -7290,6 +8405,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_byteorder" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_camellia" => [ "libcrypto", "libssl" @@ -7322,10 +8441,6 @@ our %unified_info = ( "libcrypto", "libssl" ], - "test/buildtest_c_core_names" => [ - "libcrypto", - "libssl" - ], "test/buildtest_c_core_object" => [ "libcrypto", "libssl" @@ -7358,6 +8473,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_e_ostime" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_ebcdic" => [ "libcrypto", "libssl" @@ -7394,6 +8513,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_hpke" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_http" => [ "libcrypto", "libssl" @@ -7402,6 +8525,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_indicator" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_kdf" => [ "libcrypto", "libssl" @@ -7422,6 +8549,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_ml_kem" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_modes" => [ "libcrypto", "libssl" @@ -7462,6 +8593,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_quic" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_rand" => [ "libcrypto", "libssl" @@ -7518,6 +8653,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_thread" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_tls1" => [ "libcrypto", "libssl" @@ -7538,10 +8677,23 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/byteorder_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], + "test/ca_internals_test" => [ + "libssl", + "test/libtestutil.a" + ], "test/casttest" => [ "libcrypto", "test/libtestutil.a" ], + "test/cert_comp_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], "test/chacha_internal_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -7655,7 +8807,11 @@ our %unified_info = ( "libssl", "test/libtestutil.a" ], - "test/defltfips_test" => [ + "test/decoder_propq_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], + "test/defltfips_test" => [ "libcrypto", "test/libtestutil.a" ], @@ -7711,6 +8867,8 @@ our %unified_info = ( ], "test/endecode_test" => [ "libcrypto.a", + "providers/libcommon.a", + "providers/liblegacy.a", "test/libtestutil.a" ], "test/endecoder_legacy_test" => [ @@ -7754,6 +8912,10 @@ our %unified_info = ( "test/evp_pkey_ctx_new_from_name" => [ "libcrypto" ], + "test/evp_pkey_dhkem_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/evp_pkey_dparams_test" => [ "libcrypto", "test/libtestutil.a" @@ -7762,10 +8924,18 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/evp_skey_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/evp_test" => [ "libcrypto", "test/libtestutil.a" ], + "test/evp_xof_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/exdatatest" => [ "libcrypto", "test/libtestutil.a" @@ -7804,6 +8974,10 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/hpke_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/http_test" => [ "libcrypto", "test/libtestutil.a" @@ -7816,17 +8990,25 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/json_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], "test/keymgmt_internal_test" => [ "libcrypto.a", "test/libtestutil.a" ], "test/lhash_test" => [ - "libcrypto", + "libcrypto.a", "test/libtestutil.a" ], "test/libtestutil.a" => [ "libcrypto" ], + "test/list_test" => [ + "test/libtestutil.a" + ], "test/localetest" => [ "libcrypto", "test/libtestutil.a" @@ -7839,10 +9021,26 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/membio_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/memleaktest" => [ "libcrypto", "test/libtestutil.a" ], + "test/ml_dsa_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], + "test/ml_kem_evp_extra_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], + "test/ml_kem_internal_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/modes_internal_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -7867,6 +9065,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/pairwise_fail_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/param_build_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -7899,6 +9101,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/pkcs12_api_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/pkcs12_format_test" => [ "libcrypto", "test/libtestutil.a" @@ -7919,6 +9125,11 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/priority_queue_test" => [ + "libcrypto", + "libssl.a", + "test/libtestutil.a" + ], "test/property_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -7931,6 +9142,10 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/provider_default_search_path_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/provider_fallback_test" => [ "libcrypto", "test/libtestutil.a" @@ -7955,12 +9170,122 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/quic_ackm_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_cc_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_cfq_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_client_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_fc_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_fifd_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_lcidm_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_multistream_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_newcid_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_qlog_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_radix_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_rcidm_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_record_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_srt_gen_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_srtm_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_stream_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_tserver_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_txp_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_txpim_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_wire_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quicapitest" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quicfaultstest" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], "test/rand_status_test" => [ "libcrypto", "test/libtestutil.a" ], "test/rand_test" => [ - "libcrypto", + "libcrypto.a", "test/libtestutil.a" ], "test/rc2test" => [ @@ -7975,7 +9300,7 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], - "test/rdrand_sanitytest" => [ + "test/rdcpu_sanitytest" => [ "libcrypto.a", "test/libtestutil.a" ], @@ -7984,6 +9309,11 @@ our %unified_info = ( "libssl", "test/libtestutil.a" ], + "test/rpktest" => [ + "libcrypto", + "libssl", + "test/libtestutil.a" + ], "test/rsa_mp_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -7996,10 +9326,18 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], - "test/sanitytest" => [ + "test/rsa_x931_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], + "test/safe_math_test" => [ "libcrypto", "test/libtestutil.a" ], + "test/sanitytest" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/secmemtest" => [ "libcrypto", "test/libtestutil.a" @@ -8017,6 +9355,10 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/slh_dsa_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/sm2_internal_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -8046,6 +9388,11 @@ our %unified_info = ( "libssl", "test/libtestutil.a" ], + "test/ssl_handshake_rtt_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], "test/ssl_old_test" => [ "libcrypto.a", "libssl.a", @@ -8062,8 +9409,8 @@ our %unified_info = ( "test/libtestutil.a" ], "test/sslapitest" => [ - "libcrypto", - "libssl", + "libcrypto.a", + "libssl.a", "test/libtestutil.a" ], "test/sslbuffertest" => [ @@ -8080,6 +9427,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/strtoultest" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/sysdefaulttest" => [ "libcrypto", "libssl", @@ -8089,8 +9440,12 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/threadpool_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/threadstest" => [ - "libcrypto", + "libcrypto.a", "test/libtestutil.a" ], "test/threadstest_fips" => [ @@ -8101,6 +9456,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/time_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/tls13ccstest" => [ "libcrypto", "libssl", @@ -8111,6 +9470,11 @@ our %unified_info = ( "libssl.a", "test/libtestutil.a" ], + "test/tls13groupselection_test" => [ + "libcrypto", + "libssl", + "test/libtestutil.a" + ], "test/trace_api_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -8148,6 +9512,10 @@ our %unified_info = ( "libssl.a", "test/libtestutil.a" ], + "test/x509_acert_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/x509_check_cert_pkey_test" => [ "libcrypto", "test/libtestutil.a" @@ -8160,6 +9528,18 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/x509_load_cert_file_test" => [ + "libcrypto", + "test/libtestutil.a" + ], + "test/x509_req_test" => [ + "libcrypto", + "test/libtestutil.a" + ], + "test/x509_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/x509_time_test" => [ "libcrypto", "test/libtestutil.a" @@ -8174,9 +9554,13 @@ our %unified_info = ( }, "dirinfo" => { "apps" => { + "deps" => [ + "apps/ca_internals_test-bin-ca.o" + ], "products" => { "bin" => [ - "apps/openssl" + "apps/openssl", + "test/ca_internals_test" ], "script" => [ "apps/CA.pl", @@ -8187,6 +9571,14 @@ our %unified_info = ( "apps/lib" => { "deps" => [ "apps/lib/openssl-bin-cmp_mock_srv.o", + "apps/lib/ca_internals_test-bin-app_libctx.o", + "apps/lib/ca_internals_test-bin-app_provider.o", + "apps/lib/ca_internals_test-bin-app_rand.o", + "apps/lib/ca_internals_test-bin-app_x509.o", + "apps/lib/ca_internals_test-bin-apps.o", + "apps/lib/ca_internals_test-bin-apps_ui.o", + "apps/lib/ca_internals_test-bin-engine.o", + "apps/lib/ca_internals_test-bin-fmt.o", "apps/lib/cmp_client_test-bin-cmp_mock_srv.o", "apps/lib/uitest-bin-apps_ui.o", "apps/lib/libapps-lib-app_libctx.o", @@ -8195,12 +9587,14 @@ our %unified_info = ( "apps/lib/libapps-lib-app_rand.o", "apps/lib/libapps-lib-app_x509.o", "apps/lib/libapps-lib-apps.o", + "apps/lib/libapps-lib-apps_opt_printf.o", "apps/lib/libapps-lib-apps_ui.o", "apps/lib/libapps-lib-columns.o", "apps/lib/libapps-lib-engine.o", "apps/lib/libapps-lib-engine_loader.o", "apps/lib/libapps-lib-fmt.o", "apps/lib/libapps-lib-http_server.o", + "apps/lib/libapps-lib-log.o", "apps/lib/libapps-lib-names.o", "apps/lib/libapps-lib-opt.o", "apps/lib/libapps-lib-s_cb.o", @@ -8211,6 +9605,7 @@ our %unified_info = ( "products" => { "bin" => [ "apps/openssl", + "test/ca_internals_test", "test/cmp_client_test", "test/uitest" ], @@ -8222,8 +9617,12 @@ our %unified_info = ( }, "crypto" => { "deps" => [ + "crypto/asn1_time_test-bin-ctype.o", + "crypto/ca_internals_test-bin-ctype.o", + "crypto/packettest-bin-quic_vlint.o", "crypto/libcrypto-lib-asn1_dsa.o", "crypto/libcrypto-lib-bsearch.o", + "crypto/libcrypto-lib-comp_methods.o", "crypto/libcrypto-lib-context.o", "crypto/libcrypto-lib-core_algorithm.o", "crypto/libcrypto-lib-core_fetch.o", @@ -8233,10 +9632,13 @@ our %unified_info = ( "crypto/libcrypto-lib-cryptlib.o", "crypto/libcrypto-lib-ctype.o", "crypto/libcrypto-lib-cversion.o", + "crypto/libcrypto-lib-defaults.o", "crypto/libcrypto-lib-der_writer.o", + "crypto/libcrypto-lib-deterministic_nonce.o", "crypto/libcrypto-lib-ebcdic.o", "crypto/libcrypto-lib-ex_data.o", "crypto/libcrypto-lib-getenv.o", + "crypto/libcrypto-lib-indicator_core.o", "crypto/libcrypto-lib-info.o", "crypto/libcrypto-lib-init.o", "crypto/libcrypto-lib-initthread.o", @@ -8253,6 +9655,7 @@ our %unified_info = ( "crypto/libcrypto-lib-params.o", "crypto/libcrypto-lib-params_dup.o", "crypto/libcrypto-lib-params_from_text.o", + "crypto/libcrypto-lib-params_idx.o", "crypto/libcrypto-lib-passphrase.o", "crypto/libcrypto-lib-provider.o", "crypto/libcrypto-lib-provider_child.o", @@ -8260,12 +9663,16 @@ our %unified_info = ( "crypto/libcrypto-lib-provider_core.o", "crypto/libcrypto-lib-provider_predefined.o", "crypto/libcrypto-lib-punycode.o", + "crypto/libcrypto-lib-quic_vlint.o", "crypto/libcrypto-lib-self_test_core.o", + "crypto/libcrypto-lib-sleep.o", "crypto/libcrypto-lib-sparse_array.o", + "crypto/libcrypto-lib-ssl_err.o", "crypto/libcrypto-lib-threads_lib.o", "crypto/libcrypto-lib-threads_none.o", "crypto/libcrypto-lib-threads_pthread.o", "crypto/libcrypto-lib-threads_win.o", + "crypto/libcrypto-lib-time.o", "crypto/libcrypto-lib-trace.o", "crypto/libcrypto-lib-uid.o", "crypto/libcrypto-lib-x86cpuid.o", @@ -8288,6 +9695,7 @@ our %unified_info = ( "crypto/libfips-lib-params.o", "crypto/libfips-lib-params_dup.o", "crypto/libfips-lib-params_from_text.o", + "crypto/libfips-lib-params_idx.o", "crypto/libfips-lib-provider_core.o", "crypto/libfips-lib-provider_predefined.o", "crypto/libfips-lib-self_test_core.o", @@ -8296,9 +9704,15 @@ our %unified_info = ( "crypto/libfips-lib-threads_none.o", "crypto/libfips-lib-threads_pthread.o", "crypto/libfips-lib-threads_win.o", + "crypto/libfips-lib-time.o", "crypto/libfips-lib-x86cpuid.o" ], "products" => { + "bin" => [ + "test/asn1_time_test", + "test/ca_internals_test", + "test/packettest" + ], "lib" => [ "libcrypto", "providers/libfips.a" @@ -8341,6 +9755,8 @@ our %unified_info = ( }, "crypto/asn1" => { "deps" => [ + "crypto/asn1/asn1_time_test-bin-a_time.o", + "crypto/asn1/ca_internals_test-bin-a_time.o", "crypto/asn1/libcrypto-lib-a_bitstr.o", "crypto/asn1/libcrypto-lib-a_d2i_fp.o", "crypto/asn1/libcrypto-lib-a_digest.o", @@ -8407,6 +9823,10 @@ our %unified_info = ( "crypto/asn1/libcrypto-lib-x_val.o" ], "products" => { + "bin" => [ + "test/asn1_time_test", + "test/ca_internals_test" + ], "lib" => [ "libcrypto" ] @@ -8472,6 +9892,7 @@ our %unified_info = ( "crypto/bio/libcrypto-lib-bss_conn.o", "crypto/bio/libcrypto-lib-bss_core.o", "crypto/bio/libcrypto-lib-bss_dgram.o", + "crypto/bio/libcrypto-lib-bss_dgram_pair.o", "crypto/bio/libcrypto-lib-bss_fd.o", "crypto/bio/libcrypto-lib-bss_file.o", "crypto/bio/libcrypto-lib-bss_log.o", @@ -8632,6 +10053,7 @@ our %unified_info = ( "crypto/cmp/libcrypto-lib-cmp_client.o", "crypto/cmp/libcrypto-lib-cmp_ctx.o", "crypto/cmp/libcrypto-lib-cmp_err.o", + "crypto/cmp/libcrypto-lib-cmp_genm.o", "crypto/cmp/libcrypto-lib-cmp_hdr.o", "crypto/cmp/libcrypto-lib-cmp_http.o", "crypto/cmp/libcrypto-lib-cmp_msg.o", @@ -9003,7 +10425,9 @@ our %unified_info = ( "crypto/err/libcrypto-lib-err_all.o", "crypto/err/libcrypto-lib-err_all_legacy.o", "crypto/err/libcrypto-lib-err_blocks.o", - "crypto/err/libcrypto-lib-err_prn.o" + "crypto/err/libcrypto-lib-err_mark.o", + "crypto/err/libcrypto-lib-err_prn.o", + "crypto/err/libcrypto-lib-err_save.o" ], "products" => { "lib" => [ @@ -9104,7 +10528,9 @@ our %unified_info = ( "crypto/evp/libcrypto-lib-pmeth_check.o", "crypto/evp/libcrypto-lib-pmeth_gn.o", "crypto/evp/libcrypto-lib-pmeth_lib.o", + "crypto/evp/libcrypto-lib-s_lib.o", "crypto/evp/libcrypto-lib-signature.o", + "crypto/evp/libcrypto-lib-skeymgmt_meth.o", "crypto/evp/libfips-lib-asymcipher.o", "crypto/evp/libfips-lib-dh_support.o", "crypto/evp/libfips-lib-digest.o", @@ -9120,14 +10546,15 @@ our %unified_info = ( "crypto/evp/libfips-lib-kem.o", "crypto/evp/libfips-lib-keymgmt_lib.o", "crypto/evp/libfips-lib-keymgmt_meth.o", - "crypto/evp/libfips-lib-m_sigver.o", "crypto/evp/libfips-lib-mac_lib.o", "crypto/evp/libfips-lib-mac_meth.o", "crypto/evp/libfips-lib-p_lib.o", "crypto/evp/libfips-lib-pmeth_check.o", "crypto/evp/libfips-lib-pmeth_gn.o", "crypto/evp/libfips-lib-pmeth_lib.o", - "crypto/evp/libfips-lib-signature.o" + "crypto/evp/libfips-lib-s_lib.o", + "crypto/evp/libfips-lib-signature.o", + "crypto/evp/libfips-lib-skeymgmt_meth.o" ], "products" => { "lib" => [ @@ -9160,6 +10587,20 @@ our %unified_info = ( ] } }, + "crypto/hashtable" => { + "deps" => [ + "crypto/hashtable/libcrypto-lib-hashfunc.o", + "crypto/hashtable/libcrypto-lib-hashtable.o", + "crypto/hashtable/libfips-lib-hashfunc.o", + "crypto/hashtable/libfips-lib-hashtable.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, "crypto/hmac" => { "deps" => [ "crypto/hmac/libcrypto-lib-hmac.o", @@ -9172,6 +10613,17 @@ our %unified_info = ( ] } }, + "crypto/hpke" => { + "deps" => [ + "crypto/hpke/libcrypto-lib-hpke.o", + "crypto/hpke/libcrypto-lib-hpke_util.o" + ], + "products" => { + "lib" => [ + "libcrypto" + ] + } + }, "crypto/http" => { "deps" => [ "crypto/http/libcrypto-lib-http_client.o", @@ -9256,6 +10708,44 @@ our %unified_info = ( ] } }, + "crypto/ml_dsa" => { + "deps" => [ + "crypto/ml_dsa/libcrypto-lib-ml_dsa_encoders.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key_compress.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_matrix.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_ntt.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_params.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sample.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sign.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_encoders.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_key.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_key_compress.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_matrix.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_ntt.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_params.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_sample.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_sign.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, + "crypto/ml_kem" => { + "deps" => [ + "crypto/ml_kem/libcrypto-lib-ml_kem.o", + "crypto/ml_kem/libfips-lib-ml_kem.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, "crypto/modes" => { "deps" => [ "crypto/modes/libcrypto-lib-cbc128.o", @@ -9270,6 +10760,7 @@ our %unified_info = ( "crypto/modes/libcrypto-lib-siv128.o", "crypto/modes/libcrypto-lib-wrap128.o", "crypto/modes/libcrypto-lib-xts128.o", + "crypto/modes/libcrypto-lib-xts128gb.o", "crypto/modes/libfips-lib-cbc128.o", "crypto/modes/libfips-lib-ccm128.o", "crypto/modes/libfips-lib-cfb128.o", @@ -9278,7 +10769,8 @@ our %unified_info = ( "crypto/modes/libfips-lib-ghash-x86.o", "crypto/modes/libfips-lib-ofb128.o", "crypto/modes/libfips-lib-wrap128.o", - "crypto/modes/libfips-lib-xts128.o" + "crypto/modes/libfips-lib-xts128.o", + "crypto/modes/libfips-lib-xts128gb.o" ], "products" => { "lib" => [ @@ -9422,6 +10914,7 @@ our %unified_info = ( "crypto/rand/libcrypto-lib-rand_lib.o", "crypto/rand/libcrypto-lib-rand_meth.o", "crypto/rand/libcrypto-lib-rand_pool.o", + "crypto/rand/libcrypto-lib-rand_uniform.o", "crypto/rand/libcrypto-lib-randfile.o", "crypto/rand/libfips-lib-rand_lib.o" ], @@ -9572,6 +11065,36 @@ our %unified_info = ( ] } }, + "crypto/slh_dsa" => { + "deps" => [ + "crypto/slh_dsa/libcrypto-lib-slh_adrs.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa_hash_ctx.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa_key.o", + "crypto/slh_dsa/libcrypto-lib-slh_fors.o", + "crypto/slh_dsa/libcrypto-lib-slh_hash.o", + "crypto/slh_dsa/libcrypto-lib-slh_hypertree.o", + "crypto/slh_dsa/libcrypto-lib-slh_params.o", + "crypto/slh_dsa/libcrypto-lib-slh_wots.o", + "crypto/slh_dsa/libcrypto-lib-slh_xmss.o", + "crypto/slh_dsa/libfips-lib-slh_adrs.o", + "crypto/slh_dsa/libfips-lib-slh_dsa.o", + "crypto/slh_dsa/libfips-lib-slh_dsa_hash_ctx.o", + "crypto/slh_dsa/libfips-lib-slh_dsa_key.o", + "crypto/slh_dsa/libfips-lib-slh_fors.o", + "crypto/slh_dsa/libfips-lib-slh_hash.o", + "crypto/slh_dsa/libfips-lib-slh_hypertree.o", + "crypto/slh_dsa/libfips-lib-slh_params.o", + "crypto/slh_dsa/libfips-lib-slh_wots.o", + "crypto/slh_dsa/libfips-lib-slh_xmss.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, "crypto/sm2" => { "deps" => [ "crypto/sm2/libcrypto-lib-sm2_crypt.o", @@ -9645,6 +11168,38 @@ our %unified_info = ( ] } }, + "crypto/thread" => { + "deps" => [ + "crypto/thread/libcrypto-lib-api.o", + "crypto/thread/libcrypto-lib-arch.o", + "crypto/thread/libcrypto-lib-internal.o", + "crypto/thread/libfips-lib-api.o", + "crypto/thread/libfips-lib-arch.o", + "crypto/thread/libfips-lib-internal.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, + "crypto/thread/arch" => { + "deps" => [ + "crypto/thread/arch/libcrypto-lib-thread_none.o", + "crypto/thread/arch/libcrypto-lib-thread_posix.o", + "crypto/thread/arch/libcrypto-lib-thread_win.o", + "crypto/thread/arch/libfips-lib-thread_none.o", + "crypto/thread/arch/libfips-lib-thread_posix.o", + "crypto/thread/arch/libfips-lib-thread_win.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, "crypto/ts" => { "deps" => [ "crypto/ts/libcrypto-lib-ts_asn1.o", @@ -9712,14 +11267,22 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-pcy_map.o", "crypto/x509/libcrypto-lib-pcy_node.o", "crypto/x509/libcrypto-lib-pcy_tree.o", + "crypto/x509/libcrypto-lib-t_acert.o", "crypto/x509/libcrypto-lib-t_crl.o", "crypto/x509/libcrypto-lib-t_req.o", "crypto/x509/libcrypto-lib-t_x509.o", + "crypto/x509/libcrypto-lib-v3_aaa.o", + "crypto/x509/libcrypto-lib-v3_ac_tgt.o", "crypto/x509/libcrypto-lib-v3_addr.o", "crypto/x509/libcrypto-lib-v3_admis.o", "crypto/x509/libcrypto-lib-v3_akeya.o", "crypto/x509/libcrypto-lib-v3_akid.o", "crypto/x509/libcrypto-lib-v3_asid.o", + "crypto/x509/libcrypto-lib-v3_attrdesc.o", + "crypto/x509/libcrypto-lib-v3_attrmap.o", + "crypto/x509/libcrypto-lib-v3_audit_id.o", + "crypto/x509/libcrypto-lib-v3_authattid.o", + "crypto/x509/libcrypto-lib-v3_battcons.o", "crypto/x509/libcrypto-lib-v3_bcons.o", "crypto/x509/libcrypto-lib-v3_bitst.o", "crypto/x509/libcrypto-lib-v3_conf.o", @@ -9728,12 +11291,17 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_enum.o", "crypto/x509/libcrypto-lib-v3_extku.o", "crypto/x509/libcrypto-lib-v3_genn.o", + "crypto/x509/libcrypto-lib-v3_group_ac.o", "crypto/x509/libcrypto-lib-v3_ia5.o", + "crypto/x509/libcrypto-lib-v3_ind_iss.o", "crypto/x509/libcrypto-lib-v3_info.o", "crypto/x509/libcrypto-lib-v3_int.o", + "crypto/x509/libcrypto-lib-v3_iobo.o", "crypto/x509/libcrypto-lib-v3_ist.o", "crypto/x509/libcrypto-lib-v3_lib.o", "crypto/x509/libcrypto-lib-v3_ncons.o", + "crypto/x509/libcrypto-lib-v3_no_ass.o", + "crypto/x509/libcrypto-lib-v3_no_rev_avail.o", "crypto/x509/libcrypto-lib-v3_pci.o", "crypto/x509/libcrypto-lib-v3_pcia.o", "crypto/x509/libcrypto-lib-v3_pcons.o", @@ -9741,13 +11309,20 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_pmaps.o", "crypto/x509/libcrypto-lib-v3_prn.o", "crypto/x509/libcrypto-lib-v3_purp.o", + "crypto/x509/libcrypto-lib-v3_rolespec.o", "crypto/x509/libcrypto-lib-v3_san.o", + "crypto/x509/libcrypto-lib-v3_sda.o", + "crypto/x509/libcrypto-lib-v3_single_use.o", "crypto/x509/libcrypto-lib-v3_skid.o", + "crypto/x509/libcrypto-lib-v3_soa_id.o", "crypto/x509/libcrypto-lib-v3_sxnet.o", + "crypto/x509/libcrypto-lib-v3_timespec.o", "crypto/x509/libcrypto-lib-v3_tlsf.o", + "crypto/x509/libcrypto-lib-v3_usernotice.o", "crypto/x509/libcrypto-lib-v3_utf8.o", "crypto/x509/libcrypto-lib-v3_utl.o", "crypto/x509/libcrypto-lib-v3err.o", + "crypto/x509/libcrypto-lib-x509_acert.o", "crypto/x509/libcrypto-lib-x509_att.o", "crypto/x509/libcrypto-lib-x509_cmp.o", "crypto/x509/libcrypto-lib-x509_d2.o", @@ -9765,6 +11340,7 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x509_v3.o", "crypto/x509/libcrypto-lib-x509_vfy.o", "crypto/x509/libcrypto-lib-x509_vpm.o", + "crypto/x509/libcrypto-lib-x509aset.o", "crypto/x509/libcrypto-lib-x509cset.o", "crypto/x509/libcrypto-lib-x509name.o", "crypto/x509/libcrypto-lib-x509rset.o", @@ -9774,6 +11350,7 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x_attrib.o", "crypto/x509/libcrypto-lib-x_crl.o", "crypto/x509/libcrypto-lib-x_exten.o", + "crypto/x509/libcrypto-lib-x_ietfatt.o", "crypto/x509/libcrypto-lib-x_name.o", "crypto/x509/libcrypto-lib-x_pubkey.o", "crypto/x509/libcrypto-lib-x_req.o", @@ -9801,6 +11378,7 @@ our %unified_info = ( "fuzz" => { "products" => { "bin" => [ + "fuzz/acert-test", "fuzz/asn1-test", "fuzz/asn1parse-test", "fuzz/bignum-test", @@ -9811,13 +11389,31 @@ our %unified_info = ( "fuzz/conf-test", "fuzz/crl-test", "fuzz/ct-test", + "fuzz/decoder-test", + "fuzz/dtlsclient-test", + "fuzz/dtlsserver-test", + "fuzz/hashtable-test", + "fuzz/ml-dsa-test", + "fuzz/ml-kem-test", + "fuzz/pem-test", + "fuzz/provider-test", + "fuzz/punycode-test", + "fuzz/quic-client-test", + "fuzz/quic-lcidm-test", + "fuzz/quic-rcidm-test", + "fuzz/quic-server-test", + "fuzz/quic-srtm-test", "fuzz/server-test", + "fuzz/slh-dsa-test", + "fuzz/smime-test", + "fuzz/v3name-test", "fuzz/x509-test" ] } }, "providers" => { "deps" => [ + "providers/endecode_test-bin-legacyprov.o", "providers/evp_extra_test-bin-legacyprov.o", "providers/libcrypto-lib-baseprov.o", "providers/libcrypto-lib-defltprov.o", @@ -9827,6 +11423,7 @@ our %unified_info = ( ], "products" => { "bin" => [ + "test/endecode_test", "test/evp_extra_test" ], "dso" => [ @@ -9877,8 +11474,12 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ec_sig.o", "providers/common/der/libcommon-lib-der_ecx_gen.o", "providers/common/der/libcommon-lib-der_ecx_key.o", + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o", + "providers/common/der/libcommon-lib-der_ml_dsa_key.o", "providers/common/der/libcommon-lib-der_rsa_gen.o", "providers/common/der/libcommon-lib-der_rsa_key.o", + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o", + "providers/common/der/libcommon-lib-der_slh_dsa_key.o", "providers/common/der/libcommon-lib-der_wrap_gen.o", "providers/common/der/libdefault-lib-der_rsa_sig.o", "providers/common/der/libdefault-lib-der_sm2_gen.o", @@ -9897,6 +11498,7 @@ our %unified_info = ( "providers/fips" => { "deps" => [ "providers/fips/fips-dso-fips_entry.o", + "providers/fips/libfips-lib-fipsindicator.o", "providers/fips/libfips-lib-fipsprov.o", "providers/fips/libfips-lib-self_test.o", "providers/fips/libfips-lib-self_test_kats.o" @@ -9940,6 +11542,9 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_aes_ccm_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_polyval.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_ocb.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_ocb_hw.o", @@ -9964,7 +11569,13 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_cts.o", "providers/implementations/ciphers/libdefault-lib-cipher_null.o", "providers/implementations/ciphers/libdefault-lib-cipher_sm4.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_sm4_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes_common.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes_default.o", @@ -10061,7 +11672,10 @@ our %unified_info = ( "providers/implementations/encode_decode/libdefault-lib-encode_key2blob.o", "providers/implementations/encode_decode/libdefault-lib-encode_key2ms.o", "providers/implementations/encode_decode/libdefault-lib-encode_key2text.o", - "providers/implementations/encode_decode/libdefault-lib-endecoder_common.o" + "providers/implementations/encode_decode/libdefault-lib-endecoder_common.o", + "providers/implementations/encode_decode/libdefault-lib-ml_common_codecs.o", + "providers/implementations/encode_decode/libdefault-lib-ml_dsa_codecs.o", + "providers/implementations/encode_decode/libdefault-lib-ml_kem_codecs.o" ], "products" => { "lib" => [ @@ -10089,7 +11703,9 @@ our %unified_info = ( }, "providers/implementations/kdfs" => { "deps" => [ + "providers/implementations/kdfs/libdefault-lib-argon2.o", "providers/implementations/kdfs/libdefault-lib-hkdf.o", + "providers/implementations/kdfs/libdefault-lib-hmacdrbg_kdf.o", "providers/implementations/kdfs/libdefault-lib-kbkdf.o", "providers/implementations/kdfs/libdefault-lib-krb5kdf.o", "providers/implementations/kdfs/libdefault-lib-pbkdf2.o", @@ -10108,7 +11724,8 @@ our %unified_info = ( "providers/implementations/kdfs/libfips-lib-sskdf.o", "providers/implementations/kdfs/libfips-lib-tls1_prf.o", "providers/implementations/kdfs/libfips-lib-x942kdf.o", - "providers/implementations/kdfs/liblegacy-lib-pbkdf1.o" + "providers/implementations/kdfs/liblegacy-lib-pbkdf1.o", + "providers/implementations/kdfs/liblegacy-lib-pvkkdf.o" ], "products" => { "lib" => [ @@ -10120,13 +11737,22 @@ our %unified_info = ( }, "providers/implementations/kem" => { "deps" => [ + "providers/implementations/kem/libdefault-lib-ec_kem.o", + "providers/implementations/kem/libdefault-lib-ecx_kem.o", + "providers/implementations/kem/libdefault-lib-kem_util.o", + "providers/implementations/kem/libdefault-lib-ml_kem_kem.o", + "providers/implementations/kem/libdefault-lib-mlx_kem.o", "providers/implementations/kem/libdefault-lib-rsa_kem.o", - "providers/implementations/kem/libfips-lib-rsa_kem.o" + "providers/implementations/kem/libfips-lib-ml_kem_kem.o", + "providers/implementations/kem/libfips-lib-mlx_kem.o", + "providers/implementations/kem/libfips-lib-rsa_kem.o", + "providers/implementations/kem/libtemplate-lib-template_kem.o" ], "products" => { "lib" => [ "providers/libdefault.a", - "providers/libfips.a" + "providers/libfips.a", + "providers/libtemplate.a" ] } }, @@ -10138,19 +11764,29 @@ our %unified_info = ( "providers/implementations/keymgmt/libdefault-lib-ecx_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-kdf_legacy_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-mac_legacy_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-ml_dsa_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-ml_kem_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-mlx_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-rsa_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-slh_dsa_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-dh_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-dsa_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-ec_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-ecx_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-kdf_legacy_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-mac_legacy_kmgmt.o", - "providers/implementations/keymgmt/libfips-lib-rsa_kmgmt.o" + "providers/implementations/keymgmt/libfips-lib-ml_dsa_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-ml_kem_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-mlx_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-rsa_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-slh_dsa_kmgmt.o", + "providers/implementations/keymgmt/libtemplate-lib-template_kmgmt.o" ], "products" => { "lib" => [ "providers/libdefault.a", - "providers/libfips.a" + "providers/libfips.a", + "providers/libtemplate.a" ] } }, @@ -10178,18 +11814,18 @@ our %unified_info = ( }, "providers/implementations/rands" => { "deps" => [ - "providers/implementations/rands/libdefault-lib-crngt.o", "providers/implementations/rands/libdefault-lib-drbg.o", "providers/implementations/rands/libdefault-lib-drbg_ctr.o", "providers/implementations/rands/libdefault-lib-drbg_hash.o", "providers/implementations/rands/libdefault-lib-drbg_hmac.o", "providers/implementations/rands/libdefault-lib-seed_src.o", + "providers/implementations/rands/libdefault-lib-seed_src_jitter.o", "providers/implementations/rands/libdefault-lib-test_rng.o", - "providers/implementations/rands/libfips-lib-crngt.o", "providers/implementations/rands/libfips-lib-drbg.o", "providers/implementations/rands/libfips-lib-drbg_ctr.o", "providers/implementations/rands/libfips-lib-drbg_hash.o", "providers/implementations/rands/libfips-lib-drbg_hmac.o", + "providers/implementations/rands/libfips-lib-fips_crng_test.o", "providers/implementations/rands/libfips-lib-test_rng.o" ], "products" => { @@ -10218,13 +11854,31 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-ecdsa_sig.o", "providers/implementations/signature/libdefault-lib-eddsa_sig.o", "providers/implementations/signature/libdefault-lib-mac_legacy_sig.o", + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o", "providers/implementations/signature/libdefault-lib-rsa_sig.o", + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o", "providers/implementations/signature/libdefault-lib-sm2_sig.o", "providers/implementations/signature/libfips-lib-dsa_sig.o", "providers/implementations/signature/libfips-lib-ecdsa_sig.o", "providers/implementations/signature/libfips-lib-eddsa_sig.o", "providers/implementations/signature/libfips-lib-mac_legacy_sig.o", - "providers/implementations/signature/libfips-lib-rsa_sig.o" + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o", + "providers/implementations/signature/libfips-lib-rsa_sig.o", + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o" + ], + "products" => { + "lib" => [ + "providers/libdefault.a", + "providers/libfips.a" + ] + } + }, + "providers/implementations/skeymgmt" => { + "deps" => [ + "providers/implementations/skeymgmt/libdefault-lib-aes_skmgmt.o", + "providers/implementations/skeymgmt/libdefault-lib-generic.o", + "providers/implementations/skeymgmt/libfips-lib-aes_skmgmt.o", + "providers/implementations/skeymgmt/libfips-lib-generic.o" ], "products" => { "lib" => [ @@ -10252,14 +11906,15 @@ our %unified_info = ( "ssl/libssl-lib-d1_srtp.o", "ssl/libssl-lib-methods.o", "ssl/libssl-lib-pqueue.o", + "ssl/libssl-lib-priority_queue.o", "ssl/libssl-lib-s3_enc.o", "ssl/libssl-lib-s3_lib.o", "ssl/libssl-lib-s3_msg.o", "ssl/libssl-lib-ssl_asn1.o", "ssl/libssl-lib-ssl_cert.o", + "ssl/libssl-lib-ssl_cert_comp.o", "ssl/libssl-lib-ssl_ciph.o", "ssl/libssl-lib-ssl_conf.o", - "ssl/libssl-lib-ssl_err.o", "ssl/libssl-lib-ssl_err_legacy.o", "ssl/libssl-lib-ssl_init.o", "ssl/libssl-lib-ssl_lib.o", @@ -10275,32 +11930,107 @@ our %unified_info = ( "ssl/libssl-lib-t1_trce.o", "ssl/libssl-lib-tls13_enc.o", "ssl/libssl-lib-tls_depr.o", - "ssl/libssl-lib-tls_srp.o", - "ssl/libdefault-lib-s3_cbc.o", - "ssl/libfips-lib-s3_cbc.o" + "ssl/libssl-lib-tls_srp.o" ], "products" => { "lib" => [ - "libssl", - "providers/libdefault.a", - "providers/libfips.a" + "libssl" + ] + } + }, + "ssl/quic" => { + "deps" => [ + "ssl/quic/libssl-lib-cc_newreno.o", + "ssl/quic/libssl-lib-json_enc.o", + "ssl/quic/libssl-lib-qlog.o", + "ssl/quic/libssl-lib-qlog_event_helpers.o", + "ssl/quic/libssl-lib-quic_ackm.o", + "ssl/quic/libssl-lib-quic_cfq.o", + "ssl/quic/libssl-lib-quic_channel.o", + "ssl/quic/libssl-lib-quic_demux.o", + "ssl/quic/libssl-lib-quic_engine.o", + "ssl/quic/libssl-lib-quic_fc.o", + "ssl/quic/libssl-lib-quic_fifd.o", + "ssl/quic/libssl-lib-quic_impl.o", + "ssl/quic/libssl-lib-quic_lcidm.o", + "ssl/quic/libssl-lib-quic_method.o", + "ssl/quic/libssl-lib-quic_obj.o", + "ssl/quic/libssl-lib-quic_port.o", + "ssl/quic/libssl-lib-quic_rcidm.o", + "ssl/quic/libssl-lib-quic_reactor.o", + "ssl/quic/libssl-lib-quic_reactor_wait_ctx.o", + "ssl/quic/libssl-lib-quic_record_rx.o", + "ssl/quic/libssl-lib-quic_record_shared.o", + "ssl/quic/libssl-lib-quic_record_tx.o", + "ssl/quic/libssl-lib-quic_record_util.o", + "ssl/quic/libssl-lib-quic_rstream.o", + "ssl/quic/libssl-lib-quic_rx_depack.o", + "ssl/quic/libssl-lib-quic_sf_list.o", + "ssl/quic/libssl-lib-quic_srt_gen.o", + "ssl/quic/libssl-lib-quic_srtm.o", + "ssl/quic/libssl-lib-quic_sstream.o", + "ssl/quic/libssl-lib-quic_statm.o", + "ssl/quic/libssl-lib-quic_stream_map.o", + "ssl/quic/libssl-lib-quic_thread_assist.o", + "ssl/quic/libssl-lib-quic_tls.o", + "ssl/quic/libssl-lib-quic_tls_api.o", + "ssl/quic/libssl-lib-quic_trace.o", + "ssl/quic/libssl-lib-quic_tserver.o", + "ssl/quic/libssl-lib-quic_txp.o", + "ssl/quic/libssl-lib-quic_txpim.o", + "ssl/quic/libssl-lib-quic_types.o", + "ssl/quic/libssl-lib-quic_wire.o", + "ssl/quic/libssl-lib-quic_wire_pkt.o", + "ssl/quic/libssl-lib-uint_set.o" + ], + "products" => { + "lib" => [ + "libssl" ] } }, "ssl/record" => { "deps" => [ - "ssl/record/libssl-lib-dtls1_bitmap.o", "ssl/record/libssl-lib-rec_layer_d1.o", - "ssl/record/libssl-lib-rec_layer_s3.o", - "ssl/record/libssl-lib-ssl3_buffer.o", - "ssl/record/libssl-lib-ssl3_record.o", - "ssl/record/libssl-lib-ssl3_record_tls13.o", - "ssl/record/libcommon-lib-tls_pad.o" + "ssl/record/libssl-lib-rec_layer_s3.o" + ], + "products" => { + "lib" => [ + "libssl" + ] + } + }, + "ssl/record/methods" => { + "deps" => [ + "ssl/record/methods/libssl-lib-dtls_meth.o", + "ssl/record/methods/libssl-lib-ssl3_meth.o", + "ssl/record/methods/libssl-lib-tls13_meth.o", + "ssl/record/methods/libssl-lib-tls1_meth.o", + "ssl/record/methods/libssl-lib-tls_common.o", + "ssl/record/methods/libssl-lib-tls_multib.o", + "ssl/record/methods/libssl-lib-tlsany_meth.o", + "ssl/record/methods/libcommon-lib-tls_pad.o", + "ssl/record/methods/libdefault-lib-ssl3_cbc.o", + "ssl/record/methods/libfips-lib-ssl3_cbc.o" ], "products" => { "lib" => [ "libssl", - "providers/libcommon.a" + "providers/libcommon.a", + "providers/libdefault.a", + "providers/libfips.a" + ] + } + }, + "ssl/rio" => { + "deps" => [ + "ssl/rio/libssl-lib-poll_builder.o", + "ssl/rio/libssl-lib-poll_immediate.o", + "ssl/rio/libssl-lib-rio_notifier.o" + ], + "products" => { + "lib" => [ + "libssl" ] } }, @@ -10338,9 +12068,40 @@ our %unified_info = ( "test/helpers/dtlstest-bin-ssltestlib.o", "test/helpers/endecode_test-bin-predefined_dhparams.o", "test/helpers/fatalerrtest-bin-ssltestlib.o", + "test/helpers/json_test-bin-noisydgrambio.o", + "test/helpers/json_test-bin-pktsplitbio.o", + "test/helpers/json_test-bin-quictestlib.o", + "test/helpers/json_test-bin-ssltestlib.o", + "test/helpers/pkcs12_api_test-bin-pkcs12.o", "test/helpers/pkcs12_format_test-bin-pkcs12.o", + "test/helpers/quic_multistream_test-bin-noisydgrambio.o", + "test/helpers/quic_multistream_test-bin-pktsplitbio.o", + "test/helpers/quic_multistream_test-bin-quictestlib.o", + "test/helpers/quic_multistream_test-bin-ssltestlib.o", + "test/helpers/quic_newcid_test-bin-noisydgrambio.o", + "test/helpers/quic_newcid_test-bin-pktsplitbio.o", + "test/helpers/quic_newcid_test-bin-quictestlib.o", + "test/helpers/quic_newcid_test-bin-ssltestlib.o", + "test/helpers/quic_radix_test-bin-noisydgrambio.o", + "test/helpers/quic_radix_test-bin-pktsplitbio.o", + "test/helpers/quic_radix_test-bin-quictestlib.o", + "test/helpers/quic_radix_test-bin-ssltestlib.o", + "test/helpers/quic_srt_gen_test-bin-noisydgrambio.o", + "test/helpers/quic_srt_gen_test-bin-pktsplitbio.o", + "test/helpers/quic_srt_gen_test-bin-quictestlib.o", + "test/helpers/quic_srt_gen_test-bin-ssltestlib.o", + "test/helpers/quicapitest-bin-noisydgrambio.o", + "test/helpers/quicapitest-bin-pktsplitbio.o", + "test/helpers/quicapitest-bin-quictestlib.o", + "test/helpers/quicapitest-bin-ssltestlib.o", + "test/helpers/quicfaultstest-bin-noisydgrambio.o", + "test/helpers/quicfaultstest-bin-pktsplitbio.o", + "test/helpers/quicfaultstest-bin-quictestlib.o", + "test/helpers/quicfaultstest-bin-ssltestlib.o", "test/helpers/recordlentest-bin-ssltestlib.o", + "test/helpers/rpktest-bin-ssltestlib.o", "test/helpers/servername_test-bin-ssltestlib.o", + "test/helpers/ssl_handshake_rtt_test-bin-ssltestlib.o", "test/helpers/ssl_old_test-bin-predefined_dhparams.o", "test/helpers/ssl_test-bin-handshake.o", "test/helpers/ssl_test-bin-handshake_srp.o", @@ -10349,7 +12110,8 @@ our %unified_info = ( "test/helpers/sslapitest-bin-ssltestlib.o", "test/helpers/sslbuffertest-bin-ssltestlib.o", "test/helpers/sslcorrupttest-bin-ssltestlib.o", - "test/helpers/tls13ccstest-bin-ssltestlib.o" + "test/helpers/tls13ccstest-bin-ssltestlib.o", + "test/helpers/tls13groupselection_test-bin-ssltestlib.o" ], "products" => { "bin" => [ @@ -10367,16 +12129,37 @@ our %unified_info = ( "test/dtlstest", "test/endecode_test", "test/fatalerrtest", + "test/json_test", + "test/pkcs12_api_test", "test/pkcs12_format_test", + "test/quic_multistream_test", + "test/quic_newcid_test", + "test/quic_radix_test", + "test/quic_srt_gen_test", + "test/quicapitest", + "test/quicfaultstest", "test/recordlentest", + "test/rpktest", "test/servername_test", + "test/ssl_handshake_rtt_test", "test/ssl_old_test", "test/ssl_test", "test/ssl_test_ctx_test", "test/sslapitest", "test/sslbuffertest", "test/sslcorrupttest", - "test/tls13ccstest" + "test/tls13ccstest", + "test/tls13groupselection_test" + ] + } + }, + "test/radix" => { + "deps" => [ + "test/radix/quic_radix_test-bin-quic_radix.o" + ], + "products" => { + "bin" => [ + "test/quic_radix_test" ] } }, @@ -10388,6 +12171,7 @@ our %unified_info = ( "test/testutil/libtestutil-lib-driver.o", "test/testutil/libtestutil-lib-fake_random.o", "test/testutil/libtestutil-lib-format_output.o", + "test/testutil/libtestutil-lib-helper.o", "test/testutil/libtestutil-lib-load.o", "test/testutil/libtestutil-lib-main.o", "test/testutil/libtestutil-lib-options.o", @@ -10423,6 +12207,12 @@ our %unified_info = ( } }, "generate" => { + "OpenSSLConfig.cmake" => [ + "exporters/cmake/OpenSSLConfig.cmake.in" + ], + "OpenSSLConfigVersion.cmake" => [ + "exporters/cmake/OpenSSLConfigVersion.cmake.in" + ], "apps/progs.c" => [ "apps/progs.pl", "\"-C\"", @@ -10433,6 +12223,19 @@ our %unified_info = ( "\"-H\"", "\$(APPS_OPENSSL)" ], + "builddata.pm" => [ + "util/mkinstallvars.pl", + "PREFIX=.", + "BINDIR=apps", + "APPLINKDIR=ms", + "LIBDIR=", + "INCLUDEDIR=include", + "\"INCLUDEDIR=\$(SRCDIR)/include\"", + "ENGINESDIR=engines", + "MODULESDIR=providers", + "\"VERSION=\$(VERSION)\"", + "\"LDLIBS=\$(LIB_EX_LIBS)\"" + ], "crypto/aes/aes-586.S" => [ "crypto/aes/asm/aes-586.pl" ], @@ -10454,6 +12257,24 @@ our %unified_info = ( "crypto/aes/aes-ppc.s" => [ "crypto/aes/asm/aes-ppc.pl" ], + "crypto/aes/aes-riscv32-zkn.s" => [ + "crypto/aes/asm/aes-riscv32-zkn.pl" + ], + "crypto/aes/aes-riscv64-zkn.s" => [ + "crypto/aes/asm/aes-riscv64-zkn.pl" + ], + "crypto/aes/aes-riscv64-zvbb-zvkg-zvkned.s" => [ + "crypto/aes/asm/aes-riscv64-zvbb-zvkg-zvkned.pl" + ], + "crypto/aes/aes-riscv64-zvkb-zvkned.s" => [ + "crypto/aes/asm/aes-riscv64-zvkb-zvkned.pl" + ], + "crypto/aes/aes-riscv64-zvkned.s" => [ + "crypto/aes/asm/aes-riscv64-zvkned.pl" + ], + "crypto/aes/aes-riscv64.s" => [ + "crypto/aes/asm/aes-riscv64.pl" + ], "crypto/aes/aes-s390x.S" => [ "crypto/aes/asm/aes-s390x.pl" ], @@ -10481,6 +12302,9 @@ our %unified_info = ( "crypto/aes/aesni-x86_64.s" => [ "crypto/aes/asm/aesni-x86_64.pl" ], + "crypto/aes/aesni-xts-avx512.s" => [ + "crypto/aes/asm/aesni-xts-avx512.pl" + ], "crypto/aes/aesp8-ppc.s" => [ "crypto/aes/asm/aesp8-ppc.pl" ], @@ -10493,12 +12317,18 @@ our %unified_info = ( "crypto/aes/bsaes-armv7.S" => [ "crypto/aes/asm/bsaes-armv7.pl" ], + "crypto/aes/bsaes-armv8.S" => [ + "crypto/aes/asm/bsaes-armv8.pl" + ], "crypto/aes/bsaes-x86_64.s" => [ "crypto/aes/asm/bsaes-x86_64.pl" ], "crypto/aes/vpaes-armv8.S" => [ "crypto/aes/asm/vpaes-armv8.pl" ], + "crypto/aes/vpaes-loongarch64.S" => [ + "crypto/aes/asm/vpaes-loongarch64.pl" + ], "crypto/aes/vpaes-ppc.s" => [ "crypto/aes/asm/vpaes-ppc.pl" ], @@ -10559,15 +12389,33 @@ our %unified_info = ( "crypto/bn/ppc-mont.s" => [ "crypto/bn/asm/ppc-mont.pl" ], + "crypto/bn/ppc64-mont-fixed.s" => [ + "crypto/bn/asm/ppc64-mont-fixed.pl" + ], "crypto/bn/ppc64-mont.s" => [ "crypto/bn/asm/ppc64-mont.pl" ], + "crypto/bn/rsaz-2k-avx512.s" => [ + "crypto/bn/asm/rsaz-2k-avx512.pl" + ], + "crypto/bn/rsaz-2k-avxifma.s" => [ + "crypto/bn/asm/rsaz-2k-avxifma.pl" + ], + "crypto/bn/rsaz-3k-avx512.s" => [ + "crypto/bn/asm/rsaz-3k-avx512.pl" + ], + "crypto/bn/rsaz-3k-avxifma.s" => [ + "crypto/bn/asm/rsaz-3k-avxifma.pl" + ], + "crypto/bn/rsaz-4k-avx512.s" => [ + "crypto/bn/asm/rsaz-4k-avx512.pl" + ], + "crypto/bn/rsaz-4k-avxifma.s" => [ + "crypto/bn/asm/rsaz-4k-avxifma.pl" + ], "crypto/bn/rsaz-avx2.s" => [ "crypto/bn/asm/rsaz-avx2.pl" ], - "crypto/bn/rsaz-avx512.s" => [ - "crypto/bn/asm/rsaz-avx512.pl" - ], "crypto/bn/rsaz-x86_64.s" => [ "crypto/bn/asm/rsaz-x86_64.pl" ], @@ -10629,6 +12477,9 @@ our %unified_info = ( "crypto/chacha/chacha-armv4.S" => [ "crypto/chacha/asm/chacha-armv4.pl" ], + "crypto/chacha/chacha-armv8-sve.S" => [ + "crypto/chacha/asm/chacha-armv8-sve.pl" + ], "crypto/chacha/chacha-armv8.S" => [ "crypto/chacha/asm/chacha-armv8.pl" ], @@ -10641,9 +12492,19 @@ our %unified_info = ( "crypto/chacha/chacha-ia64.s" => [ "crypto/chacha/chacha-ia64.S" ], + "crypto/chacha/chacha-loongarch64.S" => [ + "crypto/chacha/asm/chacha-loongarch64.pl" + ], "crypto/chacha/chacha-ppc.s" => [ "crypto/chacha/asm/chacha-ppc.pl" ], + "crypto/chacha/chacha-riscv64-v-zbb-zvkb.s" => [ + "crypto/chacha/asm/chacha-riscv64-v-zbb.pl", + "zvkb" + ], + "crypto/chacha/chacha-riscv64-v-zbb.s" => [ + "crypto/chacha/asm/chacha-riscv64-v-zbb.pl" + ], "crypto/chacha/chacha-s390x.S" => [ "crypto/chacha/asm/chacha-s390x.pl" ], @@ -10653,6 +12514,9 @@ our %unified_info = ( "crypto/chacha/chacha-x86_64.s" => [ "crypto/chacha/asm/chacha-x86_64.pl" ], + "crypto/chacha/chachap10-ppc.s" => [ + "crypto/chacha/asm/chachap10-ppc.pl" + ], "crypto/des/crypt586.S" => [ "crypto/des/asm/crypt586.pl" ], @@ -10665,6 +12529,9 @@ our %unified_info = ( "crypto/des/dest4-sparcv9.S" => [ "crypto/des/asm/dest4-sparcv9.pl" ], + "crypto/ec/ecp_nistp384-ppc64.s" => [ + "crypto/ec/asm/ecp_nistp384-ppc64.pl" + ], "crypto/ec/ecp_nistp521-ppc64.s" => [ "crypto/ec/asm/ecp_nistp521-ppc64.pl" ], @@ -10689,6 +12556,9 @@ our %unified_info = ( "crypto/ec/ecp_nistz256-x86_64.s" => [ "crypto/ec/asm/ecp_nistz256-x86_64.pl" ], + "crypto/ec/ecp_sm2p256-armv8.S" => [ + "crypto/ec/asm/ecp_sm2p256-armv8.pl" + ], "crypto/ec/x25519-ppc64.s" => [ "crypto/ec/asm/x25519-ppc64.pl" ], @@ -10698,18 +12568,39 @@ our %unified_info = ( "crypto/ia64cpuid.s" => [ "crypto/ia64cpuid.S" ], + "crypto/loongarch64cpuid.s" => [ + "crypto/loongarch64cpuid.pl" + ], "crypto/md5/md5-586.S" => [ "crypto/md5/asm/md5-586.pl" ], + "crypto/md5/md5-aarch64.S" => [ + "crypto/md5/asm/md5-aarch64.pl" + ], + "crypto/md5/md5-loongarch64.S" => [ + "crypto/md5/asm/md5-loongarch64.pl" + ], "crypto/md5/md5-sparcv9.S" => [ "crypto/md5/asm/md5-sparcv9.pl" ], "crypto/md5/md5-x86_64.s" => [ "crypto/md5/asm/md5-x86_64.pl" ], + "crypto/modes/aes-gcm-armv8-unroll8_64.S" => [ + "crypto/modes/asm/aes-gcm-armv8-unroll8_64.pl" + ], "crypto/modes/aes-gcm-armv8_64.S" => [ "crypto/modes/asm/aes-gcm-armv8_64.pl" ], + "crypto/modes/aes-gcm-avx512.s" => [ + "crypto/modes/asm/aes-gcm-avx512.pl" + ], + "crypto/modes/aes-gcm-ppc.s" => [ + "crypto/modes/asm/aes-gcm-ppc.pl" + ], + "crypto/modes/aes-gcm-riscv64-zvkb-zvkg-zvkned.s" => [ + "crypto/modes/asm/aes-gcm-riscv64-zvkb-zvkg-zvkned.pl" + ], "crypto/modes/aesni-gcm-x86_64.s" => [ "crypto/modes/asm/aesni-gcm-x86_64.pl" ], @@ -10728,6 +12619,15 @@ our %unified_info = ( "crypto/modes/ghash-parisc.s" => [ "crypto/modes/asm/ghash-parisc.pl" ], + "crypto/modes/ghash-riscv64-zvkb-zvbc.s" => [ + "crypto/modes/asm/ghash-riscv64-zvkb-zvbc.pl" + ], + "crypto/modes/ghash-riscv64-zvkg.s" => [ + "crypto/modes/asm/ghash-riscv64-zvkg.pl" + ], + "crypto/modes/ghash-riscv64.s" => [ + "crypto/modes/asm/ghash-riscv64.pl" + ], "crypto/modes/ghash-s390x.S" => [ "crypto/modes/asm/ghash-s390x.pl" ], @@ -10746,6 +12646,9 @@ our %unified_info = ( "crypto/modes/ghashv8-armx.S" => [ "crypto/modes/asm/ghashv8-armx.pl" ], + "crypto/params_idx.c" => [ + "crypto/params_idx.c.in" + ], "crypto/pariscid.s" => [ "crypto/pariscid.pl" ], @@ -10806,6 +12709,12 @@ our %unified_info = ( "crypto/ripemd/rmd-586.S" => [ "crypto/ripemd/asm/rmd-586.pl" ], + "crypto/riscv32cpuid.s" => [ + "crypto/riscv32cpuid.pl" + ], + "crypto/riscv64cpuid.s" => [ + "crypto/riscv64cpuid.pl" + ], "crypto/s390xcpuid.S" => [ "crypto/s390xcpuid.pl" ], @@ -10914,6 +12823,9 @@ our %unified_info = ( "crypto/sha/sha256-ppc.s" => [ "crypto/sha/asm/sha512-ppc.pl" ], + "crypto/sha/sha256-riscv64-zvkb-zvknha_or_zvknhb.S" => [ + "crypto/sha/asm/sha256-riscv64-zvkb-zvknha_or_zvknhb.pl" + ], "crypto/sha/sha256-s390x.S" => [ "crypto/sha/asm/sha512-s390x.pl" ], @@ -10950,6 +12862,9 @@ our %unified_info = ( "crypto/sha/sha512-ppc.s" => [ "crypto/sha/asm/sha512-ppc.pl" ], + "crypto/sha/sha512-riscv64-zvkb-zvknhb.S" => [ + "crypto/sha/asm/sha512-riscv64-zvkb-zvknhb.pl" + ], "crypto/sha/sha512-s390x.S" => [ "crypto/sha/asm/sha512-s390x.pl" ], @@ -10962,6 +12877,24 @@ our %unified_info = ( "crypto/sha/sha512p8-ppc.s" => [ "crypto/sha/asm/sha512p8-ppc.pl" ], + "crypto/sm3/sm3-armv8.S" => [ + "crypto/sm3/asm/sm3-armv8.pl" + ], + "crypto/sm3/sm3-riscv64-zvksh.S" => [ + "crypto/sm3/asm/sm3-riscv64-zvksh.pl" + ], + "crypto/sm4/sm4-armv8.S" => [ + "crypto/sm4/asm/sm4-armv8.pl" + ], + "crypto/sm4/sm4-riscv64-zvksed.s" => [ + "crypto/sm4/asm/sm4-riscv64-zvksed.pl" + ], + "crypto/sm4/vpsm4-armv8.S" => [ + "crypto/sm4/asm/vpsm4-armv8.pl" + ], + "crypto/sm4/vpsm4_ex-armv8.S" => [ + "crypto/sm4/asm/vpsm4_ex-armv8.pl" + ], "crypto/uplink-ia64.s" => [ "ms/uplink-ia64.pl" ], @@ -11127,6 +13060,9 @@ our %unified_info = ( "doc/html/man1/openssl-sess_id.html" => [ "doc/man1/openssl-sess_id.pod" ], + "doc/html/man1/openssl-skeyutl.html" => [ + "doc/man1/openssl-skeyutl.pod" + ], "doc/html/man1/openssl-smime.html" => [ "doc/man1/openssl-smime.pod" ], @@ -11268,6 +13204,9 @@ our %unified_info = ( "doc/html/man3/BIO_get_ex_new_index.html" => [ "doc/man3/BIO_get_ex_new_index.pod" ], + "doc/html/man3/BIO_get_rpoll_descriptor.html" => [ + "doc/man3/BIO_get_rpoll_descriptor.pod" + ], "doc/html/man3/BIO_meth_new.html" => [ "doc/man3/BIO_meth_new.pod" ], @@ -11304,6 +13243,9 @@ our %unified_info = ( "doc/html/man3/BIO_s_datagram.html" => [ "doc/man3/BIO_s_datagram.pod" ], + "doc/html/man3/BIO_s_dgram_pair.html" => [ + "doc/man3/BIO_s_dgram_pair.pod" + ], "doc/html/man3/BIO_s_fd.html" => [ "doc/man3/BIO_s_fd.pod" ], @@ -11319,6 +13261,9 @@ our %unified_info = ( "doc/html/man3/BIO_s_socket.html" => [ "doc/man3/BIO_s_socket.pod" ], + "doc/html/man3/BIO_sendmmsg.html" => [ + "doc/man3/BIO_sendmmsg.pod" + ], "doc/html/man3/BIO_set_callback.html" => [ "doc/man3/BIO_set_callback.pod" ], @@ -11391,6 +13336,9 @@ our %unified_info = ( "doc/html/man3/BUF_MEM_new.html" => [ "doc/man3/BUF_MEM_new.pod" ], + "doc/html/man3/CMAC_CTX.html" => [ + "doc/man3/CMAC_CTX.pod" + ], "doc/html/man3/CMS_EncryptedData_decrypt.html" => [ "doc/man3/CMS_EncryptedData_decrypt.pod" ], @@ -11457,6 +13405,9 @@ our %unified_info = ( "doc/html/man3/CMS_verify_receipt.html" => [ "doc/man3/CMS_verify_receipt.pod" ], + "doc/html/man3/COMP_CTX_new.html" => [ + "doc/man3/COMP_CTX_new.pod" + ], "doc/html/man3/CONF_modules_free.html" => [ "doc/man3/CONF_modules_free.pod" ], @@ -11556,6 +13507,12 @@ our %unified_info = ( "doc/html/man3/DTLS_set_timer_cb.html" => [ "doc/man3/DTLS_set_timer_cb.pod" ], + "doc/html/man3/DTLSv1_get_timeout.html" => [ + "doc/man3/DTLSv1_get_timeout.pod" + ], + "doc/html/man3/DTLSv1_handle_timeout.html" => [ + "doc/man3/DTLSv1_handle_timeout.pod" + ], "doc/html/man3/DTLSv1_listen.html" => [ "doc/man3/DTLSv1_listen.pod" ], @@ -11694,6 +13651,9 @@ our %unified_info = ( "doc/html/man3/EVP_PKEY_CTX_get0_pkey.html" => [ "doc/man3/EVP_PKEY_CTX_get0_pkey.pod" ], + "doc/html/man3/EVP_PKEY_CTX_get_algor.html" => [ + "doc/man3/EVP_PKEY_CTX_get_algor.pod" + ], "doc/html/man3/EVP_PKEY_CTX_new.html" => [ "doc/man3/EVP_PKEY_CTX_new.pod" ], @@ -11811,6 +13771,12 @@ our %unified_info = ( "doc/html/man3/EVP_SIGNATURE.html" => [ "doc/man3/EVP_SIGNATURE.pod" ], + "doc/html/man3/EVP_SKEY.html" => [ + "doc/man3/EVP_SKEY.pod" + ], + "doc/html/man3/EVP_SKEYMGMT.html" => [ + "doc/man3/EVP_SKEYMGMT.pod" + ], "doc/html/man3/EVP_SealInit.html" => [ "doc/man3/EVP_SealInit.pod" ], @@ -11898,6 +13864,9 @@ our %unified_info = ( "doc/html/man3/EVP_whirlpool.html" => [ "doc/man3/EVP_whirlpool.pod" ], + "doc/html/man3/GENERAL_NAME.html" => [ + "doc/man3/GENERAL_NAME.pod" + ], "doc/html/man3/HMAC.html" => [ "doc/man3/HMAC.pod" ], @@ -11970,9 +13939,15 @@ our %unified_info = ( "doc/html/man3/OPENSSL_load_builtin_modules.html" => [ "doc/man3/OPENSSL_load_builtin_modules.pod" ], + "doc/html/man3/OPENSSL_load_u16_le.html" => [ + "doc/man3/OPENSSL_load_u16_le.pod" + ], "doc/html/man3/OPENSSL_malloc.html" => [ "doc/man3/OPENSSL_malloc.pod" ], + "doc/html/man3/OPENSSL_riscvcap.html" => [ + "doc/man3/OPENSSL_riscvcap.pod" + ], "doc/html/man3/OPENSSL_s390xcap.html" => [ "doc/man3/OPENSSL_s390xcap.pod" ], @@ -11988,12 +13963,18 @@ our %unified_info = ( "doc/html/man3/OSSL_CALLBACK.html" => [ "doc/man3/OSSL_CALLBACK.pod" ], + "doc/html/man3/OSSL_CMP_ATAV_set0.html" => [ + "doc/man3/OSSL_CMP_ATAV_set0.pod" + ], "doc/html/man3/OSSL_CMP_CTX_new.html" => [ "doc/man3/OSSL_CMP_CTX_new.pod" ], "doc/html/man3/OSSL_CMP_HDR_get0_transactionID.html" => [ "doc/man3/OSSL_CMP_HDR_get0_transactionID.pod" ], + "doc/html/man3/OSSL_CMP_ITAV_new_caCerts.html" => [ + "doc/man3/OSSL_CMP_ITAV_new_caCerts.pod" + ], "doc/html/man3/OSSL_CMP_ITAV_set0.html" => [ "doc/man3/OSSL_CMP_ITAV_set0.pod" ], @@ -12063,9 +14044,18 @@ our %unified_info = ( "doc/html/man3/OSSL_ENCODER_to_bio.html" => [ "doc/man3/OSSL_ENCODER_to_bio.pod" ], + "doc/html/man3/OSSL_ERR_STATE_save.html" => [ + "doc/man3/OSSL_ERR_STATE_save.pod" + ], "doc/html/man3/OSSL_ESS_check_signing_certs.html" => [ "doc/man3/OSSL_ESS_check_signing_certs.pod" ], + "doc/html/man3/OSSL_GENERAL_NAMES_print.html" => [ + "doc/man3/OSSL_GENERAL_NAMES_print.pod" + ], + "doc/html/man3/OSSL_HPKE_CTX_new.html" => [ + "doc/man3/OSSL_HPKE_CTX_new.pod" + ], "doc/html/man3/OSSL_HTTP_REQ_CTX.html" => [ "doc/man3/OSSL_HTTP_REQ_CTX.pod" ], @@ -12075,12 +14065,24 @@ our %unified_info = ( "doc/html/man3/OSSL_HTTP_transfer.html" => [ "doc/man3/OSSL_HTTP_transfer.pod" ], + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX.html" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX.pod" + ], + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX_print.html" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX_print.pod" + ], + "doc/html/man3/OSSL_INDICATOR_set_callback.html" => [ + "doc/man3/OSSL_INDICATOR_set_callback.pod" + ], "doc/html/man3/OSSL_ITEM.html" => [ "doc/man3/OSSL_ITEM.pod" ], "doc/html/man3/OSSL_LIB_CTX.html" => [ "doc/man3/OSSL_LIB_CTX.pod" ], + "doc/html/man3/OSSL_LIB_CTX_set_conf_diagnostics.html" => [ + "doc/man3/OSSL_LIB_CTX_set_conf_diagnostics.pod" + ], "doc/html/man3/OSSL_PARAM.html" => [ "doc/man3/OSSL_PARAM.pod" ], @@ -12096,9 +14098,15 @@ our %unified_info = ( "doc/html/man3/OSSL_PARAM_int.html" => [ "doc/man3/OSSL_PARAM_int.pod" ], + "doc/html/man3/OSSL_PARAM_print_to_bio.html" => [ + "doc/man3/OSSL_PARAM_print_to_bio.pod" + ], "doc/html/man3/OSSL_PROVIDER.html" => [ "doc/man3/OSSL_PROVIDER.pod" ], + "doc/html/man3/OSSL_QUIC_client_method.html" => [ + "doc/man3/OSSL_QUIC_client_method.pod" + ], "doc/html/man3/OSSL_SELF_TEST_new.html" => [ "doc/man3/OSSL_SELF_TEST_new.pod" ], @@ -12123,6 +14131,9 @@ our %unified_info = ( "doc/html/man3/OSSL_STORE_open.html" => [ "doc/man3/OSSL_STORE_open.pod" ], + "doc/html/man3/OSSL_sleep.html" => [ + "doc/man3/OSSL_sleep.pod" + ], "doc/html/man3/OSSL_trace_enabled.html" => [ "doc/man3/OSSL_trace_enabled.pod" ], @@ -12138,6 +14149,9 @@ our %unified_info = ( "doc/html/man3/OpenSSL_version.html" => [ "doc/man3/OpenSSL_version.pod" ], + "doc/html/man3/PBMAC1_get1_pbkdf2_param.html" => [ + "doc/man3/PBMAC1_get1_pbkdf2_param.pod" + ], "doc/html/man3/PEM_X509_INFO_read_bio_ex.html" => [ "doc/man3/PEM_X509_INFO_read_bio_ex.pod" ], @@ -12174,6 +14188,9 @@ our %unified_info = ( "doc/html/man3/PKCS12_SAFEBAG_get1_cert.html" => [ "doc/man3/PKCS12_SAFEBAG_get1_cert.pod" ], + "doc/html/man3/PKCS12_SAFEBAG_set0_attrs.html" => [ + "doc/man3/PKCS12_SAFEBAG_set0_attrs.pod" + ], "doc/html/man3/PKCS12_add1_attr_by_NID.html" => [ "doc/man3/PKCS12_add1_attr_by_NID.pod" ], @@ -12447,6 +14464,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set0_CA_list.html" => [ "doc/man3/SSL_CTX_set0_CA_list.pod" ], + "doc/html/man3/SSL_CTX_set1_cert_comp_preference.html" => [ + "doc/man3/SSL_CTX_set1_cert_comp_preference.pod" + ], "doc/html/man3/SSL_CTX_set1_curves.html" => [ "doc/man3/SSL_CTX_set1_curves.pod" ], @@ -12486,6 +14506,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_default_passwd_cb.html" => [ "doc/man3/SSL_CTX_set_default_passwd_cb.pod" ], + "doc/html/man3/SSL_CTX_set_domain_flags.html" => [ + "doc/man3/SSL_CTX_set_domain_flags.pod" + ], "doc/html/man3/SSL_CTX_set_generate_session_id.html" => [ "doc/man3/SSL_CTX_set_generate_session_id.pod" ], @@ -12507,6 +14530,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_msg_callback.html" => [ "doc/man3/SSL_CTX_set_msg_callback.pod" ], + "doc/html/man3/SSL_CTX_set_new_pending_conn_cb.html" => [ + "doc/man3/SSL_CTX_set_new_pending_conn_cb.pod" + ], "doc/html/man3/SSL_CTX_set_num_tickets.html" => [ "doc/man3/SSL_CTX_set_num_tickets.pod" ], @@ -12621,6 +14647,9 @@ our %unified_info = ( "doc/html/man3/SSL_accept.html" => [ "doc/man3/SSL_accept.pod" ], + "doc/html/man3/SSL_accept_stream.html" => [ + "doc/man3/SSL_accept_stream.pod" + ], "doc/html/man3/SSL_alert_type_string.html" => [ "doc/man3/SSL_alert_type_string.pod" ], @@ -12648,9 +14677,21 @@ our %unified_info = ( "doc/html/man3/SSL_free.html" => [ "doc/man3/SSL_free.pod" ], + "doc/html/man3/SSL_get0_connection.html" => [ + "doc/man3/SSL_get0_connection.pod" + ], + "doc/html/man3/SSL_get0_group_name.html" => [ + "doc/man3/SSL_get0_group_name.pod" + ], + "doc/html/man3/SSL_get0_peer_rpk.html" => [ + "doc/man3/SSL_get0_peer_rpk.pod" + ], "doc/html/man3/SSL_get0_peer_scts.html" => [ "doc/man3/SSL_get0_peer_scts.pod" ], + "doc/html/man3/SSL_get1_builtin_sigalgs.html" => [ + "doc/man3/SSL_get1_builtin_sigalgs.pod" + ], "doc/html/man3/SSL_get_SSL_CTX.html" => [ "doc/man3/SSL_get_SSL_CTX.pod" ], @@ -12666,6 +14707,9 @@ our %unified_info = ( "doc/html/man3/SSL_get_client_random.html" => [ "doc/man3/SSL_get_client_random.pod" ], + "doc/html/man3/SSL_get_conn_close_info.html" => [ + "doc/man3/SSL_get_conn_close_info.pod" + ], "doc/html/man3/SSL_get_current_cipher.html" => [ "doc/man3/SSL_get_current_cipher.pod" ], @@ -12675,12 +14719,18 @@ our %unified_info = ( "doc/html/man3/SSL_get_error.html" => [ "doc/man3/SSL_get_error.pod" ], + "doc/html/man3/SSL_get_event_timeout.html" => [ + "doc/man3/SSL_get_event_timeout.pod" + ], "doc/html/man3/SSL_get_extms_support.html" => [ "doc/man3/SSL_get_extms_support.pod" ], "doc/html/man3/SSL_get_fd.html" => [ "doc/man3/SSL_get_fd.pod" ], + "doc/html/man3/SSL_get_handshake_rtt.html" => [ + "doc/man3/SSL_get_handshake_rtt.pod" + ], "doc/html/man3/SSL_get_peer_cert_chain.html" => [ "doc/man3/SSL_get_peer_cert_chain.pod" ], @@ -12699,12 +14749,24 @@ our %unified_info = ( "doc/html/man3/SSL_get_rbio.html" => [ "doc/man3/SSL_get_rbio.pod" ], + "doc/html/man3/SSL_get_rpoll_descriptor.html" => [ + "doc/man3/SSL_get_rpoll_descriptor.pod" + ], "doc/html/man3/SSL_get_session.html" => [ "doc/man3/SSL_get_session.pod" ], "doc/html/man3/SSL_get_shared_sigalgs.html" => [ "doc/man3/SSL_get_shared_sigalgs.pod" ], + "doc/html/man3/SSL_get_stream_id.html" => [ + "doc/man3/SSL_get_stream_id.pod" + ], + "doc/html/man3/SSL_get_stream_read_state.html" => [ + "doc/man3/SSL_get_stream_read_state.pod" + ], + "doc/html/man3/SSL_get_value_uint.html" => [ + "doc/man3/SSL_get_value_uint.pod" + ], "doc/html/man3/SSL_get_verify_result.html" => [ "doc/man3/SSL_get_verify_result.pod" ], @@ -12714,9 +14776,15 @@ our %unified_info = ( "doc/html/man3/SSL_group_to_name.html" => [ "doc/man3/SSL_group_to_name.pod" ], + "doc/html/man3/SSL_handle_events.html" => [ + "doc/man3/SSL_handle_events.pod" + ], "doc/html/man3/SSL_in_init.html" => [ "doc/man3/SSL_in_init.pod" ], + "doc/html/man3/SSL_inject_net_dgram.html" => [ + "doc/man3/SSL_inject_net_dgram.pod" + ], "doc/html/man3/SSL_key_update.html" => [ "doc/man3/SSL_key_update.pod" ], @@ -12729,9 +14797,21 @@ our %unified_info = ( "doc/html/man3/SSL_new.html" => [ "doc/man3/SSL_new.pod" ], + "doc/html/man3/SSL_new_domain.html" => [ + "doc/man3/SSL_new_domain.pod" + ], + "doc/html/man3/SSL_new_listener.html" => [ + "doc/man3/SSL_new_listener.pod" + ], + "doc/html/man3/SSL_new_stream.html" => [ + "doc/man3/SSL_new_stream.pod" + ], "doc/html/man3/SSL_pending.html" => [ "doc/man3/SSL_pending.pod" ], + "doc/html/man3/SSL_poll.html" => [ + "doc/man3/SSL_poll.pod" + ], "doc/html/man3/SSL_read.html" => [ "doc/man3/SSL_read.pod" ], @@ -12747,24 +14827,45 @@ our %unified_info = ( "doc/html/man3/SSL_set1_host.html" => [ "doc/man3/SSL_set1_host.pod" ], + "doc/html/man3/SSL_set1_initial_peer_addr.html" => [ + "doc/man3/SSL_set1_initial_peer_addr.pod" + ], + "doc/html/man3/SSL_set1_server_cert_type.html" => [ + "doc/man3/SSL_set1_server_cert_type.pod" + ], "doc/html/man3/SSL_set_async_callback.html" => [ "doc/man3/SSL_set_async_callback.pod" ], "doc/html/man3/SSL_set_bio.html" => [ "doc/man3/SSL_set_bio.pod" ], + "doc/html/man3/SSL_set_blocking_mode.html" => [ + "doc/man3/SSL_set_blocking_mode.pod" + ], "doc/html/man3/SSL_set_connect_state.html" => [ "doc/man3/SSL_set_connect_state.pod" ], + "doc/html/man3/SSL_set_default_stream_mode.html" => [ + "doc/man3/SSL_set_default_stream_mode.pod" + ], "doc/html/man3/SSL_set_fd.html" => [ "doc/man3/SSL_set_fd.pod" ], + "doc/html/man3/SSL_set_incoming_stream_policy.html" => [ + "doc/man3/SSL_set_incoming_stream_policy.pod" + ], + "doc/html/man3/SSL_set_quic_tls_cbs.html" => [ + "doc/man3/SSL_set_quic_tls_cbs.pod" + ], "doc/html/man3/SSL_set_retry_verify.html" => [ "doc/man3/SSL_set_retry_verify.pod" ], "doc/html/man3/SSL_set_session.html" => [ "doc/man3/SSL_set_session.pod" ], + "doc/html/man3/SSL_set_session_secret_cb.html" => [ + "doc/man3/SSL_set_session_secret_cb.pod" + ], "doc/html/man3/SSL_set_shutdown.html" => [ "doc/man3/SSL_set_shutdown.pod" ], @@ -12777,6 +14878,12 @@ our %unified_info = ( "doc/html/man3/SSL_state_string.html" => [ "doc/man3/SSL_state_string.pod" ], + "doc/html/man3/SSL_stream_conclude.html" => [ + "doc/man3/SSL_stream_conclude.pod" + ], + "doc/html/man3/SSL_stream_reset.html" => [ + "doc/man3/SSL_stream_reset.pod" + ], "doc/html/man3/SSL_want.html" => [ "doc/man3/SSL_want.pod" ], @@ -12786,8 +14893,8 @@ our %unified_info = ( "doc/html/man3/TS_RESP_CTX_new.html" => [ "doc/man3/TS_RESP_CTX_new.pod" ], - "doc/html/man3/TS_VERIFY_CTX_set_certs.html" => [ - "doc/man3/TS_VERIFY_CTX_set_certs.pod" + "doc/html/man3/TS_VERIFY_CTX.html" => [ + "doc/man3/TS_VERIFY_CTX.pod" ], "doc/html/man3/UI_STRING.html" => [ "doc/man3/UI_STRING.pod" @@ -12807,6 +14914,21 @@ our %unified_info = ( "doc/html/man3/X509V3_set_ctx.html" => [ "doc/man3/X509V3_set_ctx.pod" ], + "doc/html/man3/X509_ACERT_add1_attr.html" => [ + "doc/man3/X509_ACERT_add1_attr.pod" + ], + "doc/html/man3/X509_ACERT_add_attr_nconf.html" => [ + "doc/man3/X509_ACERT_add_attr_nconf.pod" + ], + "doc/html/man3/X509_ACERT_get0_holder_baseCertId.html" => [ + "doc/man3/X509_ACERT_get0_holder_baseCertId.pod" + ], + "doc/html/man3/X509_ACERT_get_attr.html" => [ + "doc/man3/X509_ACERT_get_attr.pod" + ], + "doc/html/man3/X509_ACERT_print_ex.html" => [ + "doc/man3/X509_ACERT_print_ex.pod" + ], "doc/html/man3/X509_ALGOR_dup.html" => [ "doc/man3/X509_ALGOR_dup.pod" ], @@ -12855,6 +14977,9 @@ our %unified_info = ( "doc/html/man3/X509_SIG_get0.html" => [ "doc/man3/X509_SIG_get0.pod" ], + "doc/html/man3/X509_STORE_CTX_get_by_subject.html" => [ + "doc/man3/X509_STORE_CTX_get_by_subject.pod" + ], "doc/html/man3/X509_STORE_CTX_get_error.html" => [ "doc/man3/X509_STORE_CTX_get_error.pod" ], @@ -12921,6 +15046,9 @@ our %unified_info = ( "doc/html/man3/X509_get0_uids.html" => [ "doc/man3/X509_get0_uids.pod" ], + "doc/html/man3/X509_get_default_cert_file.html" => [ + "doc/man3/X509_get_default_cert_file.pod" + ], "doc/html/man3/X509_get_extension_flags.html" => [ "doc/man3/X509_get_extension_flags.pod" ], @@ -13044,9 +15172,15 @@ our %unified_info = ( "doc/html/man7/EVP_CIPHER-SM4.html" => [ "doc/man7/EVP_CIPHER-SM4.pod" ], + "doc/html/man7/EVP_KDF-ARGON2.html" => [ + "doc/man7/EVP_KDF-ARGON2.pod" + ], "doc/html/man7/EVP_KDF-HKDF.html" => [ "doc/man7/EVP_KDF-HKDF.pod" ], + "doc/html/man7/EVP_KDF-HMAC-DRBG.html" => [ + "doc/man7/EVP_KDF-HMAC-DRBG.pod" + ], "doc/html/man7/EVP_KDF-KB.html" => [ "doc/man7/EVP_KDF-KB.pod" ], @@ -13062,6 +15196,9 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-PKCS12KDF.html" => [ "doc/man7/EVP_KDF-PKCS12KDF.pod" ], + "doc/html/man7/EVP_KDF-PVKKDF.html" => [ + "doc/man7/EVP_KDF-PVKKDF.pod" + ], "doc/html/man7/EVP_KDF-SCRYPT.html" => [ "doc/man7/EVP_KDF-SCRYPT.pod" ], @@ -13086,9 +15223,18 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-X963.html" => [ "doc/man7/EVP_KDF-X963.pod" ], + "doc/html/man7/EVP_KEM-EC.html" => [ + "doc/man7/EVP_KEM-EC.pod" + ], + "doc/html/man7/EVP_KEM-ML-KEM.html" => [ + "doc/man7/EVP_KEM-ML-KEM.pod" + ], "doc/html/man7/EVP_KEM-RSA.html" => [ "doc/man7/EVP_KEM-RSA.pod" ], + "doc/html/man7/EVP_KEM-X25519.html" => [ + "doc/man7/EVP_KEM-X25519.pod" + ], "doc/html/man7/EVP_KEYEXCH-DH.html" => [ "doc/man7/EVP_KEYEXCH-DH.pod" ], @@ -13122,6 +15268,9 @@ our %unified_info = ( "doc/html/man7/EVP_MD-BLAKE2.html" => [ "doc/man7/EVP_MD-BLAKE2.pod" ], + "doc/html/man7/EVP_MD-KECCAK.html" => [ + "doc/man7/EVP_MD-KECCAK.pod" + ], "doc/html/man7/EVP_MD-MD2.html" => [ "doc/man7/EVP_MD-MD2.pod" ], @@ -13179,15 +15328,27 @@ our %unified_info = ( "doc/html/man7/EVP_PKEY-HMAC.html" => [ "doc/man7/EVP_PKEY-HMAC.pod" ], + "doc/html/man7/EVP_PKEY-ML-DSA.html" => [ + "doc/man7/EVP_PKEY-ML-DSA.pod" + ], + "doc/html/man7/EVP_PKEY-ML-KEM.html" => [ + "doc/man7/EVP_PKEY-ML-KEM.pod" + ], "doc/html/man7/EVP_PKEY-RSA.html" => [ "doc/man7/EVP_PKEY-RSA.pod" ], + "doc/html/man7/EVP_PKEY-SLH-DSA.html" => [ + "doc/man7/EVP_PKEY-SLH-DSA.pod" + ], "doc/html/man7/EVP_PKEY-SM2.html" => [ "doc/man7/EVP_PKEY-SM2.pod" ], "doc/html/man7/EVP_PKEY-X25519.html" => [ "doc/man7/EVP_PKEY-X25519.pod" ], + "doc/html/man7/EVP_RAND-CRNG-TEST.html" => [ + "doc/man7/EVP_RAND-CRNG-TEST.pod" + ], "doc/html/man7/EVP_RAND-CTR-DRBG.html" => [ "doc/man7/EVP_RAND-CTR-DRBG.pod" ], @@ -13197,6 +15358,9 @@ our %unified_info = ( "doc/html/man7/EVP_RAND-HMAC-DRBG.html" => [ "doc/man7/EVP_RAND-HMAC-DRBG.pod" ], + "doc/html/man7/EVP_RAND-JITTER.html" => [ + "doc/man7/EVP_RAND-JITTER.pod" + ], "doc/html/man7/EVP_RAND-SEED-SRC.html" => [ "doc/man7/EVP_RAND-SEED-SRC.pod" ], @@ -13218,9 +15382,15 @@ our %unified_info = ( "doc/html/man7/EVP_SIGNATURE-HMAC.html" => [ "doc/man7/EVP_SIGNATURE-HMAC.pod" ], + "doc/html/man7/EVP_SIGNATURE-ML-DSA.html" => [ + "doc/man7/EVP_SIGNATURE-ML-DSA.pod" + ], "doc/html/man7/EVP_SIGNATURE-RSA.html" => [ "doc/man7/EVP_SIGNATURE-RSA.pod" ], + "doc/html/man7/EVP_SIGNATURE-SLH-DSA.html" => [ + "doc/man7/EVP_SIGNATURE-SLH-DSA.pod" + ], "doc/html/man7/OSSL_PROVIDER-FIPS.html" => [ "doc/man7/OSSL_PROVIDER-FIPS.pod" ], @@ -13236,6 +15406,9 @@ our %unified_info = ( "doc/html/man7/OSSL_PROVIDER-null.html" => [ "doc/man7/OSSL_PROVIDER-null.pod" ], + "doc/html/man7/OSSL_STORE-winstore.html" => [ + "doc/man7/OSSL_STORE-winstore.pod" + ], "doc/html/man7/RAND.html" => [ "doc/man7/RAND.pod" ], @@ -13248,9 +15421,6 @@ our %unified_info = ( "doc/html/man7/bio.html" => [ "doc/man7/bio.pod" ], - "doc/html/man7/crypto.html" => [ - "doc/man7/crypto.pod" - ], "doc/html/man7/ct.html" => [ "doc/man7/ct.pod" ], @@ -13281,9 +15451,6 @@ our %unified_info = ( "doc/html/man7/life_cycle-rand.html" => [ "doc/man7/life_cycle-rand.pod" ], - "doc/html/man7/migration_guide.html" => [ - "doc/man7/migration_guide.pod" - ], "doc/html/man7/openssl-core.h.html" => [ "doc/man7/openssl-core.h.pod" ], @@ -13299,12 +15466,66 @@ our %unified_info = ( "doc/html/man7/openssl-glossary.html" => [ "doc/man7/openssl-glossary.pod" ], + "doc/html/man7/openssl-qlog.html" => [ + "doc/man7/openssl-qlog.pod" + ], + "doc/html/man7/openssl-quic-concurrency.html" => [ + "doc/man7/openssl-quic-concurrency.pod" + ], + "doc/html/man7/openssl-quic.html" => [ + "doc/man7/openssl-quic.pod" + ], "doc/html/man7/openssl-threads.html" => [ "doc/man7/openssl-threads.pod" ], "doc/html/man7/openssl_user_macros.html" => [ "doc/man7/openssl_user_macros.pod" ], + "doc/html/man7/ossl-guide-introduction.html" => [ + "doc/man7/ossl-guide-introduction.pod" + ], + "doc/html/man7/ossl-guide-libcrypto-introduction.html" => [ + "doc/man7/ossl-guide-libcrypto-introduction.pod" + ], + "doc/html/man7/ossl-guide-libraries-introduction.html" => [ + "doc/man7/ossl-guide-libraries-introduction.pod" + ], + "doc/html/man7/ossl-guide-libssl-introduction.html" => [ + "doc/man7/ossl-guide-libssl-introduction.pod" + ], + "doc/html/man7/ossl-guide-migration.html" => [ + "doc/man7/ossl-guide-migration.pod" + ], + "doc/html/man7/ossl-guide-quic-client-block.html" => [ + "doc/man7/ossl-guide-quic-client-block.pod" + ], + "doc/html/man7/ossl-guide-quic-client-non-block.html" => [ + "doc/man7/ossl-guide-quic-client-non-block.pod" + ], + "doc/html/man7/ossl-guide-quic-introduction.html" => [ + "doc/man7/ossl-guide-quic-introduction.pod" + ], + "doc/html/man7/ossl-guide-quic-multi-stream.html" => [ + "doc/man7/ossl-guide-quic-multi-stream.pod" + ], + "doc/html/man7/ossl-guide-quic-server-block.html" => [ + "doc/man7/ossl-guide-quic-server-block.pod" + ], + "doc/html/man7/ossl-guide-quic-server-non-block.html" => [ + "doc/man7/ossl-guide-quic-server-non-block.pod" + ], + "doc/html/man7/ossl-guide-tls-client-block.html" => [ + "doc/man7/ossl-guide-tls-client-block.pod" + ], + "doc/html/man7/ossl-guide-tls-client-non-block.html" => [ + "doc/man7/ossl-guide-tls-client-non-block.pod" + ], + "doc/html/man7/ossl-guide-tls-introduction.html" => [ + "doc/man7/ossl-guide-tls-introduction.pod" + ], + "doc/html/man7/ossl-guide-tls-server-block.html" => [ + "doc/man7/ossl-guide-tls-server-block.pod" + ], "doc/html/man7/ossl_store-file.html" => [ "doc/man7/ossl_store-file.pod" ], @@ -13359,6 +15580,9 @@ our %unified_info = ( "doc/html/man7/provider-signature.html" => [ "doc/man7/provider-signature.pod" ], + "doc/html/man7/provider-skeymgmt.html" => [ + "doc/man7/provider-skeymgmt.pod" + ], "doc/html/man7/provider-storemgmt.html" => [ "doc/man7/provider-storemgmt.pod" ], @@ -13368,9 +15592,6 @@ our %unified_info = ( "doc/html/man7/proxy-certificates.html" => [ "doc/man7/proxy-certificates.pod" ], - "doc/html/man7/ssl.html" => [ - "doc/man7/ssl.pod" - ], "doc/html/man7/x509.html" => [ "doc/man7/x509.pod" ], @@ -13518,6 +15739,9 @@ our %unified_info = ( "doc/man/man1/openssl-sess_id.1" => [ "doc/man1/openssl-sess_id.pod" ], + "doc/man/man1/openssl-skeyutl.1" => [ + "doc/man1/openssl-skeyutl.pod" + ], "doc/man/man1/openssl-smime.1" => [ "doc/man1/openssl-smime.pod" ], @@ -13659,6 +15883,9 @@ our %unified_info = ( "doc/man/man3/BIO_get_ex_new_index.3" => [ "doc/man3/BIO_get_ex_new_index.pod" ], + "doc/man/man3/BIO_get_rpoll_descriptor.3" => [ + "doc/man3/BIO_get_rpoll_descriptor.pod" + ], "doc/man/man3/BIO_meth_new.3" => [ "doc/man3/BIO_meth_new.pod" ], @@ -13695,6 +15922,9 @@ our %unified_info = ( "doc/man/man3/BIO_s_datagram.3" => [ "doc/man3/BIO_s_datagram.pod" ], + "doc/man/man3/BIO_s_dgram_pair.3" => [ + "doc/man3/BIO_s_dgram_pair.pod" + ], "doc/man/man3/BIO_s_fd.3" => [ "doc/man3/BIO_s_fd.pod" ], @@ -13710,6 +15940,9 @@ our %unified_info = ( "doc/man/man3/BIO_s_socket.3" => [ "doc/man3/BIO_s_socket.pod" ], + "doc/man/man3/BIO_sendmmsg.3" => [ + "doc/man3/BIO_sendmmsg.pod" + ], "doc/man/man3/BIO_set_callback.3" => [ "doc/man3/BIO_set_callback.pod" ], @@ -13782,6 +16015,9 @@ our %unified_info = ( "doc/man/man3/BUF_MEM_new.3" => [ "doc/man3/BUF_MEM_new.pod" ], + "doc/man/man3/CMAC_CTX.3" => [ + "doc/man3/CMAC_CTX.pod" + ], "doc/man/man3/CMS_EncryptedData_decrypt.3" => [ "doc/man3/CMS_EncryptedData_decrypt.pod" ], @@ -13848,6 +16084,9 @@ our %unified_info = ( "doc/man/man3/CMS_verify_receipt.3" => [ "doc/man3/CMS_verify_receipt.pod" ], + "doc/man/man3/COMP_CTX_new.3" => [ + "doc/man3/COMP_CTX_new.pod" + ], "doc/man/man3/CONF_modules_free.3" => [ "doc/man3/CONF_modules_free.pod" ], @@ -13947,6 +16186,12 @@ our %unified_info = ( "doc/man/man3/DTLS_set_timer_cb.3" => [ "doc/man3/DTLS_set_timer_cb.pod" ], + "doc/man/man3/DTLSv1_get_timeout.3" => [ + "doc/man3/DTLSv1_get_timeout.pod" + ], + "doc/man/man3/DTLSv1_handle_timeout.3" => [ + "doc/man3/DTLSv1_handle_timeout.pod" + ], "doc/man/man3/DTLSv1_listen.3" => [ "doc/man3/DTLSv1_listen.pod" ], @@ -14085,6 +16330,9 @@ our %unified_info = ( "doc/man/man3/EVP_PKEY_CTX_get0_pkey.3" => [ "doc/man3/EVP_PKEY_CTX_get0_pkey.pod" ], + "doc/man/man3/EVP_PKEY_CTX_get_algor.3" => [ + "doc/man3/EVP_PKEY_CTX_get_algor.pod" + ], "doc/man/man3/EVP_PKEY_CTX_new.3" => [ "doc/man3/EVP_PKEY_CTX_new.pod" ], @@ -14202,6 +16450,12 @@ our %unified_info = ( "doc/man/man3/EVP_SIGNATURE.3" => [ "doc/man3/EVP_SIGNATURE.pod" ], + "doc/man/man3/EVP_SKEY.3" => [ + "doc/man3/EVP_SKEY.pod" + ], + "doc/man/man3/EVP_SKEYMGMT.3" => [ + "doc/man3/EVP_SKEYMGMT.pod" + ], "doc/man/man3/EVP_SealInit.3" => [ "doc/man3/EVP_SealInit.pod" ], @@ -14289,6 +16543,9 @@ our %unified_info = ( "doc/man/man3/EVP_whirlpool.3" => [ "doc/man3/EVP_whirlpool.pod" ], + "doc/man/man3/GENERAL_NAME.3" => [ + "doc/man3/GENERAL_NAME.pod" + ], "doc/man/man3/HMAC.3" => [ "doc/man3/HMAC.pod" ], @@ -14361,9 +16618,15 @@ our %unified_info = ( "doc/man/man3/OPENSSL_load_builtin_modules.3" => [ "doc/man3/OPENSSL_load_builtin_modules.pod" ], + "doc/man/man3/OPENSSL_load_u16_le.3" => [ + "doc/man3/OPENSSL_load_u16_le.pod" + ], "doc/man/man3/OPENSSL_malloc.3" => [ "doc/man3/OPENSSL_malloc.pod" ], + "doc/man/man3/OPENSSL_riscvcap.3" => [ + "doc/man3/OPENSSL_riscvcap.pod" + ], "doc/man/man3/OPENSSL_s390xcap.3" => [ "doc/man3/OPENSSL_s390xcap.pod" ], @@ -14379,12 +16642,18 @@ our %unified_info = ( "doc/man/man3/OSSL_CALLBACK.3" => [ "doc/man3/OSSL_CALLBACK.pod" ], + "doc/man/man3/OSSL_CMP_ATAV_set0.3" => [ + "doc/man3/OSSL_CMP_ATAV_set0.pod" + ], "doc/man/man3/OSSL_CMP_CTX_new.3" => [ "doc/man3/OSSL_CMP_CTX_new.pod" ], "doc/man/man3/OSSL_CMP_HDR_get0_transactionID.3" => [ "doc/man3/OSSL_CMP_HDR_get0_transactionID.pod" ], + "doc/man/man3/OSSL_CMP_ITAV_new_caCerts.3" => [ + "doc/man3/OSSL_CMP_ITAV_new_caCerts.pod" + ], "doc/man/man3/OSSL_CMP_ITAV_set0.3" => [ "doc/man3/OSSL_CMP_ITAV_set0.pod" ], @@ -14454,9 +16723,18 @@ our %unified_info = ( "doc/man/man3/OSSL_ENCODER_to_bio.3" => [ "doc/man3/OSSL_ENCODER_to_bio.pod" ], + "doc/man/man3/OSSL_ERR_STATE_save.3" => [ + "doc/man3/OSSL_ERR_STATE_save.pod" + ], "doc/man/man3/OSSL_ESS_check_signing_certs.3" => [ "doc/man3/OSSL_ESS_check_signing_certs.pod" ], + "doc/man/man3/OSSL_GENERAL_NAMES_print.3" => [ + "doc/man3/OSSL_GENERAL_NAMES_print.pod" + ], + "doc/man/man3/OSSL_HPKE_CTX_new.3" => [ + "doc/man3/OSSL_HPKE_CTX_new.pod" + ], "doc/man/man3/OSSL_HTTP_REQ_CTX.3" => [ "doc/man3/OSSL_HTTP_REQ_CTX.pod" ], @@ -14466,12 +16744,24 @@ our %unified_info = ( "doc/man/man3/OSSL_HTTP_transfer.3" => [ "doc/man3/OSSL_HTTP_transfer.pod" ], + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX.3" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX.pod" + ], + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX_print.3" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX_print.pod" + ], + "doc/man/man3/OSSL_INDICATOR_set_callback.3" => [ + "doc/man3/OSSL_INDICATOR_set_callback.pod" + ], "doc/man/man3/OSSL_ITEM.3" => [ "doc/man3/OSSL_ITEM.pod" ], "doc/man/man3/OSSL_LIB_CTX.3" => [ "doc/man3/OSSL_LIB_CTX.pod" ], + "doc/man/man3/OSSL_LIB_CTX_set_conf_diagnostics.3" => [ + "doc/man3/OSSL_LIB_CTX_set_conf_diagnostics.pod" + ], "doc/man/man3/OSSL_PARAM.3" => [ "doc/man3/OSSL_PARAM.pod" ], @@ -14487,9 +16777,15 @@ our %unified_info = ( "doc/man/man3/OSSL_PARAM_int.3" => [ "doc/man3/OSSL_PARAM_int.pod" ], + "doc/man/man3/OSSL_PARAM_print_to_bio.3" => [ + "doc/man3/OSSL_PARAM_print_to_bio.pod" + ], "doc/man/man3/OSSL_PROVIDER.3" => [ "doc/man3/OSSL_PROVIDER.pod" ], + "doc/man/man3/OSSL_QUIC_client_method.3" => [ + "doc/man3/OSSL_QUIC_client_method.pod" + ], "doc/man/man3/OSSL_SELF_TEST_new.3" => [ "doc/man3/OSSL_SELF_TEST_new.pod" ], @@ -14514,6 +16810,9 @@ our %unified_info = ( "doc/man/man3/OSSL_STORE_open.3" => [ "doc/man3/OSSL_STORE_open.pod" ], + "doc/man/man3/OSSL_sleep.3" => [ + "doc/man3/OSSL_sleep.pod" + ], "doc/man/man3/OSSL_trace_enabled.3" => [ "doc/man3/OSSL_trace_enabled.pod" ], @@ -14529,6 +16828,9 @@ our %unified_info = ( "doc/man/man3/OpenSSL_version.3" => [ "doc/man3/OpenSSL_version.pod" ], + "doc/man/man3/PBMAC1_get1_pbkdf2_param.3" => [ + "doc/man3/PBMAC1_get1_pbkdf2_param.pod" + ], "doc/man/man3/PEM_X509_INFO_read_bio_ex.3" => [ "doc/man3/PEM_X509_INFO_read_bio_ex.pod" ], @@ -14565,6 +16867,9 @@ our %unified_info = ( "doc/man/man3/PKCS12_SAFEBAG_get1_cert.3" => [ "doc/man3/PKCS12_SAFEBAG_get1_cert.pod" ], + "doc/man/man3/PKCS12_SAFEBAG_set0_attrs.3" => [ + "doc/man3/PKCS12_SAFEBAG_set0_attrs.pod" + ], "doc/man/man3/PKCS12_add1_attr_by_NID.3" => [ "doc/man3/PKCS12_add1_attr_by_NID.pod" ], @@ -14838,6 +17143,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set0_CA_list.3" => [ "doc/man3/SSL_CTX_set0_CA_list.pod" ], + "doc/man/man3/SSL_CTX_set1_cert_comp_preference.3" => [ + "doc/man3/SSL_CTX_set1_cert_comp_preference.pod" + ], "doc/man/man3/SSL_CTX_set1_curves.3" => [ "doc/man3/SSL_CTX_set1_curves.pod" ], @@ -14877,6 +17185,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_default_passwd_cb.3" => [ "doc/man3/SSL_CTX_set_default_passwd_cb.pod" ], + "doc/man/man3/SSL_CTX_set_domain_flags.3" => [ + "doc/man3/SSL_CTX_set_domain_flags.pod" + ], "doc/man/man3/SSL_CTX_set_generate_session_id.3" => [ "doc/man3/SSL_CTX_set_generate_session_id.pod" ], @@ -14898,6 +17209,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_msg_callback.3" => [ "doc/man3/SSL_CTX_set_msg_callback.pod" ], + "doc/man/man3/SSL_CTX_set_new_pending_conn_cb.3" => [ + "doc/man3/SSL_CTX_set_new_pending_conn_cb.pod" + ], "doc/man/man3/SSL_CTX_set_num_tickets.3" => [ "doc/man3/SSL_CTX_set_num_tickets.pod" ], @@ -15012,6 +17326,9 @@ our %unified_info = ( "doc/man/man3/SSL_accept.3" => [ "doc/man3/SSL_accept.pod" ], + "doc/man/man3/SSL_accept_stream.3" => [ + "doc/man3/SSL_accept_stream.pod" + ], "doc/man/man3/SSL_alert_type_string.3" => [ "doc/man3/SSL_alert_type_string.pod" ], @@ -15039,9 +17356,21 @@ our %unified_info = ( "doc/man/man3/SSL_free.3" => [ "doc/man3/SSL_free.pod" ], + "doc/man/man3/SSL_get0_connection.3" => [ + "doc/man3/SSL_get0_connection.pod" + ], + "doc/man/man3/SSL_get0_group_name.3" => [ + "doc/man3/SSL_get0_group_name.pod" + ], + "doc/man/man3/SSL_get0_peer_rpk.3" => [ + "doc/man3/SSL_get0_peer_rpk.pod" + ], "doc/man/man3/SSL_get0_peer_scts.3" => [ "doc/man3/SSL_get0_peer_scts.pod" ], + "doc/man/man3/SSL_get1_builtin_sigalgs.3" => [ + "doc/man3/SSL_get1_builtin_sigalgs.pod" + ], "doc/man/man3/SSL_get_SSL_CTX.3" => [ "doc/man3/SSL_get_SSL_CTX.pod" ], @@ -15057,6 +17386,9 @@ our %unified_info = ( "doc/man/man3/SSL_get_client_random.3" => [ "doc/man3/SSL_get_client_random.pod" ], + "doc/man/man3/SSL_get_conn_close_info.3" => [ + "doc/man3/SSL_get_conn_close_info.pod" + ], "doc/man/man3/SSL_get_current_cipher.3" => [ "doc/man3/SSL_get_current_cipher.pod" ], @@ -15066,12 +17398,18 @@ our %unified_info = ( "doc/man/man3/SSL_get_error.3" => [ "doc/man3/SSL_get_error.pod" ], + "doc/man/man3/SSL_get_event_timeout.3" => [ + "doc/man3/SSL_get_event_timeout.pod" + ], "doc/man/man3/SSL_get_extms_support.3" => [ "doc/man3/SSL_get_extms_support.pod" ], "doc/man/man3/SSL_get_fd.3" => [ "doc/man3/SSL_get_fd.pod" ], + "doc/man/man3/SSL_get_handshake_rtt.3" => [ + "doc/man3/SSL_get_handshake_rtt.pod" + ], "doc/man/man3/SSL_get_peer_cert_chain.3" => [ "doc/man3/SSL_get_peer_cert_chain.pod" ], @@ -15090,12 +17428,24 @@ our %unified_info = ( "doc/man/man3/SSL_get_rbio.3" => [ "doc/man3/SSL_get_rbio.pod" ], + "doc/man/man3/SSL_get_rpoll_descriptor.3" => [ + "doc/man3/SSL_get_rpoll_descriptor.pod" + ], "doc/man/man3/SSL_get_session.3" => [ "doc/man3/SSL_get_session.pod" ], "doc/man/man3/SSL_get_shared_sigalgs.3" => [ "doc/man3/SSL_get_shared_sigalgs.pod" ], + "doc/man/man3/SSL_get_stream_id.3" => [ + "doc/man3/SSL_get_stream_id.pod" + ], + "doc/man/man3/SSL_get_stream_read_state.3" => [ + "doc/man3/SSL_get_stream_read_state.pod" + ], + "doc/man/man3/SSL_get_value_uint.3" => [ + "doc/man3/SSL_get_value_uint.pod" + ], "doc/man/man3/SSL_get_verify_result.3" => [ "doc/man3/SSL_get_verify_result.pod" ], @@ -15105,9 +17455,15 @@ our %unified_info = ( "doc/man/man3/SSL_group_to_name.3" => [ "doc/man3/SSL_group_to_name.pod" ], + "doc/man/man3/SSL_handle_events.3" => [ + "doc/man3/SSL_handle_events.pod" + ], "doc/man/man3/SSL_in_init.3" => [ "doc/man3/SSL_in_init.pod" ], + "doc/man/man3/SSL_inject_net_dgram.3" => [ + "doc/man3/SSL_inject_net_dgram.pod" + ], "doc/man/man3/SSL_key_update.3" => [ "doc/man3/SSL_key_update.pod" ], @@ -15120,9 +17476,21 @@ our %unified_info = ( "doc/man/man3/SSL_new.3" => [ "doc/man3/SSL_new.pod" ], + "doc/man/man3/SSL_new_domain.3" => [ + "doc/man3/SSL_new_domain.pod" + ], + "doc/man/man3/SSL_new_listener.3" => [ + "doc/man3/SSL_new_listener.pod" + ], + "doc/man/man3/SSL_new_stream.3" => [ + "doc/man3/SSL_new_stream.pod" + ], "doc/man/man3/SSL_pending.3" => [ "doc/man3/SSL_pending.pod" ], + "doc/man/man3/SSL_poll.3" => [ + "doc/man3/SSL_poll.pod" + ], "doc/man/man3/SSL_read.3" => [ "doc/man3/SSL_read.pod" ], @@ -15138,24 +17506,45 @@ our %unified_info = ( "doc/man/man3/SSL_set1_host.3" => [ "doc/man3/SSL_set1_host.pod" ], + "doc/man/man3/SSL_set1_initial_peer_addr.3" => [ + "doc/man3/SSL_set1_initial_peer_addr.pod" + ], + "doc/man/man3/SSL_set1_server_cert_type.3" => [ + "doc/man3/SSL_set1_server_cert_type.pod" + ], "doc/man/man3/SSL_set_async_callback.3" => [ "doc/man3/SSL_set_async_callback.pod" ], "doc/man/man3/SSL_set_bio.3" => [ "doc/man3/SSL_set_bio.pod" ], + "doc/man/man3/SSL_set_blocking_mode.3" => [ + "doc/man3/SSL_set_blocking_mode.pod" + ], "doc/man/man3/SSL_set_connect_state.3" => [ "doc/man3/SSL_set_connect_state.pod" ], + "doc/man/man3/SSL_set_default_stream_mode.3" => [ + "doc/man3/SSL_set_default_stream_mode.pod" + ], "doc/man/man3/SSL_set_fd.3" => [ "doc/man3/SSL_set_fd.pod" ], + "doc/man/man3/SSL_set_incoming_stream_policy.3" => [ + "doc/man3/SSL_set_incoming_stream_policy.pod" + ], + "doc/man/man3/SSL_set_quic_tls_cbs.3" => [ + "doc/man3/SSL_set_quic_tls_cbs.pod" + ], "doc/man/man3/SSL_set_retry_verify.3" => [ "doc/man3/SSL_set_retry_verify.pod" ], "doc/man/man3/SSL_set_session.3" => [ "doc/man3/SSL_set_session.pod" ], + "doc/man/man3/SSL_set_session_secret_cb.3" => [ + "doc/man3/SSL_set_session_secret_cb.pod" + ], "doc/man/man3/SSL_set_shutdown.3" => [ "doc/man3/SSL_set_shutdown.pod" ], @@ -15168,6 +17557,12 @@ our %unified_info = ( "doc/man/man3/SSL_state_string.3" => [ "doc/man3/SSL_state_string.pod" ], + "doc/man/man3/SSL_stream_conclude.3" => [ + "doc/man3/SSL_stream_conclude.pod" + ], + "doc/man/man3/SSL_stream_reset.3" => [ + "doc/man3/SSL_stream_reset.pod" + ], "doc/man/man3/SSL_want.3" => [ "doc/man3/SSL_want.pod" ], @@ -15177,8 +17572,8 @@ our %unified_info = ( "doc/man/man3/TS_RESP_CTX_new.3" => [ "doc/man3/TS_RESP_CTX_new.pod" ], - "doc/man/man3/TS_VERIFY_CTX_set_certs.3" => [ - "doc/man3/TS_VERIFY_CTX_set_certs.pod" + "doc/man/man3/TS_VERIFY_CTX.3" => [ + "doc/man3/TS_VERIFY_CTX.pod" ], "doc/man/man3/UI_STRING.3" => [ "doc/man3/UI_STRING.pod" @@ -15198,6 +17593,21 @@ our %unified_info = ( "doc/man/man3/X509V3_set_ctx.3" => [ "doc/man3/X509V3_set_ctx.pod" ], + "doc/man/man3/X509_ACERT_add1_attr.3" => [ + "doc/man3/X509_ACERT_add1_attr.pod" + ], + "doc/man/man3/X509_ACERT_add_attr_nconf.3" => [ + "doc/man3/X509_ACERT_add_attr_nconf.pod" + ], + "doc/man/man3/X509_ACERT_get0_holder_baseCertId.3" => [ + "doc/man3/X509_ACERT_get0_holder_baseCertId.pod" + ], + "doc/man/man3/X509_ACERT_get_attr.3" => [ + "doc/man3/X509_ACERT_get_attr.pod" + ], + "doc/man/man3/X509_ACERT_print_ex.3" => [ + "doc/man3/X509_ACERT_print_ex.pod" + ], "doc/man/man3/X509_ALGOR_dup.3" => [ "doc/man3/X509_ALGOR_dup.pod" ], @@ -15246,6 +17656,9 @@ our %unified_info = ( "doc/man/man3/X509_SIG_get0.3" => [ "doc/man3/X509_SIG_get0.pod" ], + "doc/man/man3/X509_STORE_CTX_get_by_subject.3" => [ + "doc/man3/X509_STORE_CTX_get_by_subject.pod" + ], "doc/man/man3/X509_STORE_CTX_get_error.3" => [ "doc/man3/X509_STORE_CTX_get_error.pod" ], @@ -15312,6 +17725,9 @@ our %unified_info = ( "doc/man/man3/X509_get0_uids.3" => [ "doc/man3/X509_get0_uids.pod" ], + "doc/man/man3/X509_get_default_cert_file.3" => [ + "doc/man3/X509_get_default_cert_file.pod" + ], "doc/man/man3/X509_get_extension_flags.3" => [ "doc/man3/X509_get_extension_flags.pod" ], @@ -15435,9 +17851,15 @@ our %unified_info = ( "doc/man/man7/EVP_CIPHER-SM4.7" => [ "doc/man7/EVP_CIPHER-SM4.pod" ], + "doc/man/man7/EVP_KDF-ARGON2.7" => [ + "doc/man7/EVP_KDF-ARGON2.pod" + ], "doc/man/man7/EVP_KDF-HKDF.7" => [ "doc/man7/EVP_KDF-HKDF.pod" ], + "doc/man/man7/EVP_KDF-HMAC-DRBG.7" => [ + "doc/man7/EVP_KDF-HMAC-DRBG.pod" + ], "doc/man/man7/EVP_KDF-KB.7" => [ "doc/man7/EVP_KDF-KB.pod" ], @@ -15453,6 +17875,9 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-PKCS12KDF.7" => [ "doc/man7/EVP_KDF-PKCS12KDF.pod" ], + "doc/man/man7/EVP_KDF-PVKKDF.7" => [ + "doc/man7/EVP_KDF-PVKKDF.pod" + ], "doc/man/man7/EVP_KDF-SCRYPT.7" => [ "doc/man7/EVP_KDF-SCRYPT.pod" ], @@ -15477,9 +17902,18 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-X963.7" => [ "doc/man7/EVP_KDF-X963.pod" ], + "doc/man/man7/EVP_KEM-EC.7" => [ + "doc/man7/EVP_KEM-EC.pod" + ], + "doc/man/man7/EVP_KEM-ML-KEM.7" => [ + "doc/man7/EVP_KEM-ML-KEM.pod" + ], "doc/man/man7/EVP_KEM-RSA.7" => [ "doc/man7/EVP_KEM-RSA.pod" ], + "doc/man/man7/EVP_KEM-X25519.7" => [ + "doc/man7/EVP_KEM-X25519.pod" + ], "doc/man/man7/EVP_KEYEXCH-DH.7" => [ "doc/man7/EVP_KEYEXCH-DH.pod" ], @@ -15513,6 +17947,9 @@ our %unified_info = ( "doc/man/man7/EVP_MD-BLAKE2.7" => [ "doc/man7/EVP_MD-BLAKE2.pod" ], + "doc/man/man7/EVP_MD-KECCAK.7" => [ + "doc/man7/EVP_MD-KECCAK.pod" + ], "doc/man/man7/EVP_MD-MD2.7" => [ "doc/man7/EVP_MD-MD2.pod" ], @@ -15570,15 +18007,27 @@ our %unified_info = ( "doc/man/man7/EVP_PKEY-HMAC.7" => [ "doc/man7/EVP_PKEY-HMAC.pod" ], + "doc/man/man7/EVP_PKEY-ML-DSA.7" => [ + "doc/man7/EVP_PKEY-ML-DSA.pod" + ], + "doc/man/man7/EVP_PKEY-ML-KEM.7" => [ + "doc/man7/EVP_PKEY-ML-KEM.pod" + ], "doc/man/man7/EVP_PKEY-RSA.7" => [ "doc/man7/EVP_PKEY-RSA.pod" ], + "doc/man/man7/EVP_PKEY-SLH-DSA.7" => [ + "doc/man7/EVP_PKEY-SLH-DSA.pod" + ], "doc/man/man7/EVP_PKEY-SM2.7" => [ "doc/man7/EVP_PKEY-SM2.pod" ], "doc/man/man7/EVP_PKEY-X25519.7" => [ "doc/man7/EVP_PKEY-X25519.pod" ], + "doc/man/man7/EVP_RAND-CRNG-TEST.7" => [ + "doc/man7/EVP_RAND-CRNG-TEST.pod" + ], "doc/man/man7/EVP_RAND-CTR-DRBG.7" => [ "doc/man7/EVP_RAND-CTR-DRBG.pod" ], @@ -15588,6 +18037,9 @@ our %unified_info = ( "doc/man/man7/EVP_RAND-HMAC-DRBG.7" => [ "doc/man7/EVP_RAND-HMAC-DRBG.pod" ], + "doc/man/man7/EVP_RAND-JITTER.7" => [ + "doc/man7/EVP_RAND-JITTER.pod" + ], "doc/man/man7/EVP_RAND-SEED-SRC.7" => [ "doc/man7/EVP_RAND-SEED-SRC.pod" ], @@ -15609,9 +18061,15 @@ our %unified_info = ( "doc/man/man7/EVP_SIGNATURE-HMAC.7" => [ "doc/man7/EVP_SIGNATURE-HMAC.pod" ], + "doc/man/man7/EVP_SIGNATURE-ML-DSA.7" => [ + "doc/man7/EVP_SIGNATURE-ML-DSA.pod" + ], "doc/man/man7/EVP_SIGNATURE-RSA.7" => [ "doc/man7/EVP_SIGNATURE-RSA.pod" ], + "doc/man/man7/EVP_SIGNATURE-SLH-DSA.7" => [ + "doc/man7/EVP_SIGNATURE-SLH-DSA.pod" + ], "doc/man/man7/OSSL_PROVIDER-FIPS.7" => [ "doc/man7/OSSL_PROVIDER-FIPS.pod" ], @@ -15627,6 +18085,9 @@ our %unified_info = ( "doc/man/man7/OSSL_PROVIDER-null.7" => [ "doc/man7/OSSL_PROVIDER-null.pod" ], + "doc/man/man7/OSSL_STORE-winstore.7" => [ + "doc/man7/OSSL_STORE-winstore.pod" + ], "doc/man/man7/RAND.7" => [ "doc/man7/RAND.pod" ], @@ -15639,9 +18100,6 @@ our %unified_info = ( "doc/man/man7/bio.7" => [ "doc/man7/bio.pod" ], - "doc/man/man7/crypto.7" => [ - "doc/man7/crypto.pod" - ], "doc/man/man7/ct.7" => [ "doc/man7/ct.pod" ], @@ -15672,9 +18130,6 @@ our %unified_info = ( "doc/man/man7/life_cycle-rand.7" => [ "doc/man7/life_cycle-rand.pod" ], - "doc/man/man7/migration_guide.7" => [ - "doc/man7/migration_guide.pod" - ], "doc/man/man7/openssl-core.h.7" => [ "doc/man7/openssl-core.h.pod" ], @@ -15690,12 +18145,66 @@ our %unified_info = ( "doc/man/man7/openssl-glossary.7" => [ "doc/man7/openssl-glossary.pod" ], + "doc/man/man7/openssl-qlog.7" => [ + "doc/man7/openssl-qlog.pod" + ], + "doc/man/man7/openssl-quic-concurrency.7" => [ + "doc/man7/openssl-quic-concurrency.pod" + ], + "doc/man/man7/openssl-quic.7" => [ + "doc/man7/openssl-quic.pod" + ], "doc/man/man7/openssl-threads.7" => [ "doc/man7/openssl-threads.pod" ], "doc/man/man7/openssl_user_macros.7" => [ "doc/man7/openssl_user_macros.pod" ], + "doc/man/man7/ossl-guide-introduction.7" => [ + "doc/man7/ossl-guide-introduction.pod" + ], + "doc/man/man7/ossl-guide-libcrypto-introduction.7" => [ + "doc/man7/ossl-guide-libcrypto-introduction.pod" + ], + "doc/man/man7/ossl-guide-libraries-introduction.7" => [ + "doc/man7/ossl-guide-libraries-introduction.pod" + ], + "doc/man/man7/ossl-guide-libssl-introduction.7" => [ + "doc/man7/ossl-guide-libssl-introduction.pod" + ], + "doc/man/man7/ossl-guide-migration.7" => [ + "doc/man7/ossl-guide-migration.pod" + ], + "doc/man/man7/ossl-guide-quic-client-block.7" => [ + "doc/man7/ossl-guide-quic-client-block.pod" + ], + "doc/man/man7/ossl-guide-quic-client-non-block.7" => [ + "doc/man7/ossl-guide-quic-client-non-block.pod" + ], + "doc/man/man7/ossl-guide-quic-introduction.7" => [ + "doc/man7/ossl-guide-quic-introduction.pod" + ], + "doc/man/man7/ossl-guide-quic-multi-stream.7" => [ + "doc/man7/ossl-guide-quic-multi-stream.pod" + ], + "doc/man/man7/ossl-guide-quic-server-block.7" => [ + "doc/man7/ossl-guide-quic-server-block.pod" + ], + "doc/man/man7/ossl-guide-quic-server-non-block.7" => [ + "doc/man7/ossl-guide-quic-server-non-block.pod" + ], + "doc/man/man7/ossl-guide-tls-client-block.7" => [ + "doc/man7/ossl-guide-tls-client-block.pod" + ], + "doc/man/man7/ossl-guide-tls-client-non-block.7" => [ + "doc/man7/ossl-guide-tls-client-non-block.pod" + ], + "doc/man/man7/ossl-guide-tls-introduction.7" => [ + "doc/man7/ossl-guide-tls-introduction.pod" + ], + "doc/man/man7/ossl-guide-tls-server-block.7" => [ + "doc/man7/ossl-guide-tls-server-block.pod" + ], "doc/man/man7/ossl_store-file.7" => [ "doc/man7/ossl_store-file.pod" ], @@ -15750,6 +18259,9 @@ our %unified_info = ( "doc/man/man7/provider-signature.7" => [ "doc/man7/provider-signature.pod" ], + "doc/man/man7/provider-skeymgmt.7" => [ + "doc/man7/provider-skeymgmt.pod" + ], "doc/man/man7/provider-storemgmt.7" => [ "doc/man7/provider-storemgmt.pod" ], @@ -15759,9 +18271,6 @@ our %unified_info = ( "doc/man/man7/proxy-certificates.7" => [ "doc/man7/proxy-certificates.pod" ], - "doc/man/man7/ssl.7" => [ - "doc/man7/ssl.pod" - ], "doc/man/man7/x509.7" => [ "doc/man7/x509.pod" ], @@ -15897,6 +18406,9 @@ our %unified_info = ( "doc/man1/openssl-sess_id.pod" => [ "doc/man1/openssl-sess_id.pod.in" ], + "doc/man1/openssl-skeyutl.pod" => [ + "doc/man1/openssl-skeyutl.pod.in" + ], "doc/man1/openssl-smime.pod" => [ "doc/man1/openssl-smime.pod.in" ], @@ -15933,12 +18445,30 @@ our %unified_info = ( "engines/e_padlock-x86_64.s" => [ "engines/asm/e_padlock-x86_64.pl" ], + "exporters/OpenSSLConfig.cmake" => [ + "exporters/cmake/OpenSSLConfig.cmake.in" + ], + "exporters/OpenSSLConfigVersion.cmake" => [ + "exporters/cmake/OpenSSLConfigVersion.cmake.in" + ], + "exporters/libcrypto.pc" => [ + "exporters/pkg-config/libcrypto.pc.in" + ], + "exporters/libssl.pc" => [ + "exporters/pkg-config/libssl.pc.in" + ], + "exporters/openssl.pc" => [ + "exporters/pkg-config/openssl.pc.in" + ], "include/crypto/bn_conf.h" => [ "include/crypto/bn_conf.h.in" ], "include/crypto/dso_conf.h" => [ "include/crypto/dso_conf.h.in" ], + "include/internal/param_names.h" => [ + "include/internal/param_names.h.in" + ], "include/openssl/asn1.h" => [ "include/openssl/asn1.h.in" ], @@ -15954,12 +18484,18 @@ our %unified_info = ( "include/openssl/cms.h" => [ "include/openssl/cms.h.in" ], + "include/openssl/comp.h" => [ + "include/openssl/comp.h.in" + ], "include/openssl/conf.h" => [ "include/openssl/conf.h.in" ], "include/openssl/configuration.h" => [ "include/openssl/configuration.h.in" ], + "include/openssl/core_names.h" => [ + "include/openssl/core_names.h.in" + ], "include/openssl/crmf.h" => [ "include/openssl/crmf.h.in" ], @@ -16008,12 +18544,39 @@ our %unified_info = ( "include/openssl/x509.h" => [ "include/openssl/x509.h.in" ], + "include/openssl/x509_acert.h" => [ + "include/openssl/x509_acert.h.in" + ], "include/openssl/x509_vfy.h" => [ "include/openssl/x509_vfy.h.in" ], "include/openssl/x509v3.h" => [ "include/openssl/x509v3.h.in" ], + "installdata.pm" => [ + "util/mkinstallvars.pl", + "\"PREFIX=\$(INSTALLTOP)\"", + "BINDIR=bin", + "\"LIBDIR=\$(LIBDIR)\"", + "\"libdir=\$(libdir)\"", + "INCLUDEDIR=include", + "APPLINKDIR=include/openssl", + "\"ENGINESDIR=\$(ENGINESDIR)\"", + "\"MODULESDIR=\$(MODULESDIR)\"", + "\"PKGCONFIGDIR=\$(PKGCONFIGDIR)\"", + "\"CMAKECONFIGDIR=\$(CMAKECONFIGDIR)\"", + "\"LDLIBS=\$(LIB_EX_LIBS)\"", + "\"VERSION=\$(VERSION)\"" + ], + "libcrypto.pc" => [ + "exporters/pkg-config/libcrypto.pc.in" + ], + "libssl.pc" => [ + "exporters/pkg-config/libssl.pc.in" + ], + "openssl.pc" => [ + "exporters/pkg-config/openssl.pc.in" + ], "providers/common/der/der_digests_gen.c" => [ "providers/common/der/der_digests_gen.c.in" ], @@ -16026,9 +18589,15 @@ our %unified_info = ( "providers/common/der/der_ecx_gen.c" => [ "providers/common/der/der_ecx_gen.c.in" ], + "providers/common/der/der_ml_dsa_gen.c" => [ + "providers/common/der/der_ml_dsa_gen.c.in" + ], "providers/common/der/der_rsa_gen.c" => [ "providers/common/der/der_rsa_gen.c.in" ], + "providers/common/der/der_slh_dsa_gen.c" => [ + "providers/common/der/der_slh_dsa_gen.c.in" + ], "providers/common/der/der_sm2_gen.c" => [ "providers/common/der/der_sm2_gen.c.in" ], @@ -16047,9 +18616,15 @@ our %unified_info = ( "providers/common/include/prov/der_ecx.h" => [ "providers/common/include/prov/der_ecx.h.in" ], + "providers/common/include/prov/der_ml_dsa.h" => [ + "providers/common/include/prov/der_ml_dsa.h.in" + ], "providers/common/include/prov/der_rsa.h" => [ "providers/common/include/prov/der_rsa.h.in" ], + "providers/common/include/prov/der_slh_dsa.h" => [ + "providers/common/include/prov/der_slh_dsa.h.in" + ], "providers/common/include/prov/der_sm2.h" => [ "providers/common/include/prov/der_sm2.h.in" ], @@ -16085,6 +18660,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "buffer" ], + "test/buildtest_byteorder.c" => [ + "test/generate_buildtest.pl", + "byteorder" + ], "test/buildtest_camellia.c" => [ "test/generate_buildtest.pl", "camellia" @@ -16117,10 +18696,6 @@ our %unified_info = ( "test/generate_buildtest.pl", "core_dispatch" ], - "test/buildtest_core_names.c" => [ - "test/generate_buildtest.pl", - "core_names" - ], "test/buildtest_core_object.c" => [ "test/generate_buildtest.pl", "core_object" @@ -16153,6 +18728,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "e_os2" ], + "test/buildtest_e_ostime.c" => [ + "test/generate_buildtest.pl", + "e_ostime" + ], "test/buildtest_ebcdic.c" => [ "test/generate_buildtest.pl", "ebcdic" @@ -16189,6 +18768,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "hmac" ], + "test/buildtest_hpke.c" => [ + "test/generate_buildtest.pl", + "hpke" + ], "test/buildtest_http.c" => [ "test/generate_buildtest.pl", "http" @@ -16197,6 +18780,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "idea" ], + "test/buildtest_indicator.c" => [ + "test/generate_buildtest.pl", + "indicator" + ], "test/buildtest_kdf.c" => [ "test/generate_buildtest.pl", "kdf" @@ -16217,6 +18804,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "mdc2" ], + "test/buildtest_ml_kem.c" => [ + "test/generate_buildtest.pl", + "ml_kem" + ], "test/buildtest_modes.c" => [ "test/generate_buildtest.pl", "modes" @@ -16257,6 +18848,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "provider" ], + "test/buildtest_quic.c" => [ + "test/generate_buildtest.pl", + "quic" + ], "test/buildtest_rand.c" => [ "test/generate_buildtest.pl", "rand" @@ -16313,6 +18908,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "symhacks" ], + "test/buildtest_thread.c" => [ + "test/generate_buildtest.pl", + "thread" + ], "test/buildtest_tls1.c" => [ "test/generate_buildtest.pl", "tls1" @@ -16387,6 +18986,7 @@ our %unified_info = ( "doc/html/man1/openssl-s_server.html", "doc/html/man1/openssl-s_time.html", "doc/html/man1/openssl-sess_id.html", + "doc/html/man1/openssl-skeyutl.html", "doc/html/man1/openssl-smime.html", "doc/html/man1/openssl-speed.html", "doc/html/man1/openssl-spkac.html", @@ -16436,6 +19036,7 @@ our %unified_info = ( "doc/html/man3/BIO_find_type.html", "doc/html/man3/BIO_get_data.html", "doc/html/man3/BIO_get_ex_new_index.html", + "doc/html/man3/BIO_get_rpoll_descriptor.html", "doc/html/man3/BIO_meth_new.html", "doc/html/man3/BIO_new.html", "doc/html/man3/BIO_new_CMS.html", @@ -16448,11 +19049,13 @@ our %unified_info = ( "doc/html/man3/BIO_s_connect.html", "doc/html/man3/BIO_s_core.html", "doc/html/man3/BIO_s_datagram.html", + "doc/html/man3/BIO_s_dgram_pair.html", "doc/html/man3/BIO_s_fd.html", "doc/html/man3/BIO_s_file.html", "doc/html/man3/BIO_s_mem.html", "doc/html/man3/BIO_s_null.html", "doc/html/man3/BIO_s_socket.html", + "doc/html/man3/BIO_sendmmsg.html", "doc/html/man3/BIO_set_callback.html", "doc/html/man3/BIO_should_retry.html", "doc/html/man3/BIO_socket_wait.html", @@ -16477,6 +19080,7 @@ our %unified_info = ( "doc/html/man3/BN_swap.html", "doc/html/man3/BN_zero.html", "doc/html/man3/BUF_MEM_new.html", + "doc/html/man3/CMAC_CTX.html", "doc/html/man3/CMS_EncryptedData_decrypt.html", "doc/html/man3/CMS_EncryptedData_encrypt.html", "doc/html/man3/CMS_EnvelopedData_create.html", @@ -16499,6 +19103,7 @@ our %unified_info = ( "doc/html/man3/CMS_uncompress.html", "doc/html/man3/CMS_verify.html", "doc/html/man3/CMS_verify_receipt.html", + "doc/html/man3/COMP_CTX_new.html", "doc/html/man3/CONF_modules_free.html", "doc/html/man3/CONF_modules_load_file.html", "doc/html/man3/CRYPTO_THREAD_run_once.html", @@ -16532,6 +19137,8 @@ our %unified_info = ( "doc/html/man3/DSA_size.html", "doc/html/man3/DTLS_get_data_mtu.html", "doc/html/man3/DTLS_set_timer_cb.html", + "doc/html/man3/DTLSv1_get_timeout.html", + "doc/html/man3/DTLSv1_handle_timeout.html", "doc/html/man3/DTLSv1_listen.html", "doc/html/man3/ECDSA_SIG_new.html", "doc/html/man3/ECDSA_sign.html", @@ -16578,6 +19185,7 @@ our %unified_info = ( "doc/html/man3/EVP_PKEY_CTX_ctrl.html", "doc/html/man3/EVP_PKEY_CTX_get0_libctx.html", "doc/html/man3/EVP_PKEY_CTX_get0_pkey.html", + "doc/html/man3/EVP_PKEY_CTX_get_algor.html", "doc/html/man3/EVP_PKEY_CTX_new.html", "doc/html/man3/EVP_PKEY_CTX_set1_pbe_pass.html", "doc/html/man3/EVP_PKEY_CTX_set_hkdf_md.html", @@ -16617,6 +19225,8 @@ our %unified_info = ( "doc/html/man3/EVP_PKEY_verify_recover.html", "doc/html/man3/EVP_RAND.html", "doc/html/man3/EVP_SIGNATURE.html", + "doc/html/man3/EVP_SKEY.html", + "doc/html/man3/EVP_SKEYMGMT.html", "doc/html/man3/EVP_SealInit.html", "doc/html/man3/EVP_SignInit.html", "doc/html/man3/EVP_VerifyInit.html", @@ -16646,6 +19256,7 @@ our %unified_info = ( "doc/html/man3/EVP_sm3.html", "doc/html/man3/EVP_sm4_cbc.html", "doc/html/man3/EVP_whirlpool.html", + "doc/html/man3/GENERAL_NAME.html", "doc/html/man3/HMAC.html", "doc/html/man3/MD5.html", "doc/html/man3/MDC2_Init.html", @@ -16670,14 +19281,18 @@ our %unified_info = ( "doc/html/man3/OPENSSL_init_ssl.html", "doc/html/man3/OPENSSL_instrument_bus.html", "doc/html/man3/OPENSSL_load_builtin_modules.html", + "doc/html/man3/OPENSSL_load_u16_le.html", "doc/html/man3/OPENSSL_malloc.html", + "doc/html/man3/OPENSSL_riscvcap.html", "doc/html/man3/OPENSSL_s390xcap.html", "doc/html/man3/OPENSSL_secure_malloc.html", "doc/html/man3/OPENSSL_strcasecmp.html", "doc/html/man3/OSSL_ALGORITHM.html", "doc/html/man3/OSSL_CALLBACK.html", + "doc/html/man3/OSSL_CMP_ATAV_set0.html", "doc/html/man3/OSSL_CMP_CTX_new.html", "doc/html/man3/OSSL_CMP_HDR_get0_transactionID.html", + "doc/html/man3/OSSL_CMP_ITAV_new_caCerts.html", "doc/html/man3/OSSL_CMP_ITAV_set0.html", "doc/html/man3/OSSL_CMP_MSG_get0_header.html", "doc/html/man3/OSSL_CMP_MSG_http_perform.html", @@ -16701,18 +19316,27 @@ our %unified_info = ( "doc/html/man3/OSSL_ENCODER_CTX.html", "doc/html/man3/OSSL_ENCODER_CTX_new_for_pkey.html", "doc/html/man3/OSSL_ENCODER_to_bio.html", + "doc/html/man3/OSSL_ERR_STATE_save.html", "doc/html/man3/OSSL_ESS_check_signing_certs.html", + "doc/html/man3/OSSL_GENERAL_NAMES_print.html", + "doc/html/man3/OSSL_HPKE_CTX_new.html", "doc/html/man3/OSSL_HTTP_REQ_CTX.html", "doc/html/man3/OSSL_HTTP_parse_url.html", "doc/html/man3/OSSL_HTTP_transfer.html", + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX.html", + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX_print.html", + "doc/html/man3/OSSL_INDICATOR_set_callback.html", "doc/html/man3/OSSL_ITEM.html", "doc/html/man3/OSSL_LIB_CTX.html", + "doc/html/man3/OSSL_LIB_CTX_set_conf_diagnostics.html", "doc/html/man3/OSSL_PARAM.html", "doc/html/man3/OSSL_PARAM_BLD.html", "doc/html/man3/OSSL_PARAM_allocate_from_text.html", "doc/html/man3/OSSL_PARAM_dup.html", "doc/html/man3/OSSL_PARAM_int.html", + "doc/html/man3/OSSL_PARAM_print_to_bio.html", "doc/html/man3/OSSL_PROVIDER.html", + "doc/html/man3/OSSL_QUIC_client_method.html", "doc/html/man3/OSSL_SELF_TEST_new.html", "doc/html/man3/OSSL_SELF_TEST_set_callback.html", "doc/html/man3/OSSL_STORE_INFO.html", @@ -16721,11 +19345,13 @@ our %unified_info = ( "doc/html/man3/OSSL_STORE_attach.html", "doc/html/man3/OSSL_STORE_expect.html", "doc/html/man3/OSSL_STORE_open.html", + "doc/html/man3/OSSL_sleep.html", "doc/html/man3/OSSL_trace_enabled.html", "doc/html/man3/OSSL_trace_get_category_num.html", "doc/html/man3/OSSL_trace_set_channel.html", "doc/html/man3/OpenSSL_add_all_algorithms.html", "doc/html/man3/OpenSSL_version.html", + "doc/html/man3/PBMAC1_get1_pbkdf2_param.html", "doc/html/man3/PEM_X509_INFO_read_bio_ex.html", "doc/html/man3/PEM_bytes_read_bio.html", "doc/html/man3/PEM_read.html", @@ -16738,6 +19364,7 @@ our %unified_info = ( "doc/html/man3/PKCS12_SAFEBAG_create_cert.html", "doc/html/man3/PKCS12_SAFEBAG_get0_attrs.html", "doc/html/man3/PKCS12_SAFEBAG_get1_cert.html", + "doc/html/man3/PKCS12_SAFEBAG_set0_attrs.html", "doc/html/man3/PKCS12_add1_attr_by_NID.html", "doc/html/man3/PKCS12_add_CSPName_asc.html", "doc/html/man3/PKCS12_add_cert.html", @@ -16829,6 +19456,7 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_sess_set_get_cb.html", "doc/html/man3/SSL_CTX_sessions.html", "doc/html/man3/SSL_CTX_set0_CA_list.html", + "doc/html/man3/SSL_CTX_set1_cert_comp_preference.html", "doc/html/man3/SSL_CTX_set1_curves.html", "doc/html/man3/SSL_CTX_set1_sigalgs.html", "doc/html/man3/SSL_CTX_set1_verify_cert_store.html", @@ -16842,6 +19470,7 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_ct_validation_callback.html", "doc/html/man3/SSL_CTX_set_ctlog_list_file.html", "doc/html/man3/SSL_CTX_set_default_passwd_cb.html", + "doc/html/man3/SSL_CTX_set_domain_flags.html", "doc/html/man3/SSL_CTX_set_generate_session_id.html", "doc/html/man3/SSL_CTX_set_info_callback.html", "doc/html/man3/SSL_CTX_set_keylog_callback.html", @@ -16849,6 +19478,7 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_min_proto_version.html", "doc/html/man3/SSL_CTX_set_mode.html", "doc/html/man3/SSL_CTX_set_msg_callback.html", + "doc/html/man3/SSL_CTX_set_new_pending_conn_cb.html", "doc/html/man3/SSL_CTX_set_num_tickets.html", "doc/html/man3/SSL_CTX_set_options.html", "doc/html/man3/SSL_CTX_set_psk_client_callback.html", @@ -16887,6 +19517,7 @@ our %unified_info = ( "doc/html/man3/SSL_SESSION_print.html", "doc/html/man3/SSL_SESSION_set1_id.html", "doc/html/man3/SSL_accept.html", + "doc/html/man3/SSL_accept_stream.html", "doc/html/man3/SSL_alert_type_string.html", "doc/html/man3/SSL_alloc_buffers.html", "doc/html/man3/SSL_check_chain.html", @@ -16896,59 +19527,90 @@ our %unified_info = ( "doc/html/man3/SSL_export_keying_material.html", "doc/html/man3/SSL_extension_supported.html", "doc/html/man3/SSL_free.html", + "doc/html/man3/SSL_get0_connection.html", + "doc/html/man3/SSL_get0_group_name.html", + "doc/html/man3/SSL_get0_peer_rpk.html", "doc/html/man3/SSL_get0_peer_scts.html", + "doc/html/man3/SSL_get1_builtin_sigalgs.html", "doc/html/man3/SSL_get_SSL_CTX.html", "doc/html/man3/SSL_get_all_async_fds.html", "doc/html/man3/SSL_get_certificate.html", "doc/html/man3/SSL_get_ciphers.html", "doc/html/man3/SSL_get_client_random.html", + "doc/html/man3/SSL_get_conn_close_info.html", "doc/html/man3/SSL_get_current_cipher.html", "doc/html/man3/SSL_get_default_timeout.html", "doc/html/man3/SSL_get_error.html", + "doc/html/man3/SSL_get_event_timeout.html", "doc/html/man3/SSL_get_extms_support.html", "doc/html/man3/SSL_get_fd.html", + "doc/html/man3/SSL_get_handshake_rtt.html", "doc/html/man3/SSL_get_peer_cert_chain.html", "doc/html/man3/SSL_get_peer_certificate.html", "doc/html/man3/SSL_get_peer_signature_nid.html", "doc/html/man3/SSL_get_peer_tmp_key.html", "doc/html/man3/SSL_get_psk_identity.html", "doc/html/man3/SSL_get_rbio.html", + "doc/html/man3/SSL_get_rpoll_descriptor.html", "doc/html/man3/SSL_get_session.html", "doc/html/man3/SSL_get_shared_sigalgs.html", + "doc/html/man3/SSL_get_stream_id.html", + "doc/html/man3/SSL_get_stream_read_state.html", + "doc/html/man3/SSL_get_value_uint.html", "doc/html/man3/SSL_get_verify_result.html", "doc/html/man3/SSL_get_version.html", "doc/html/man3/SSL_group_to_name.html", + "doc/html/man3/SSL_handle_events.html", "doc/html/man3/SSL_in_init.html", + "doc/html/man3/SSL_inject_net_dgram.html", "doc/html/man3/SSL_key_update.html", "doc/html/man3/SSL_library_init.html", "doc/html/man3/SSL_load_client_CA_file.html", "doc/html/man3/SSL_new.html", + "doc/html/man3/SSL_new_domain.html", + "doc/html/man3/SSL_new_listener.html", + "doc/html/man3/SSL_new_stream.html", "doc/html/man3/SSL_pending.html", + "doc/html/man3/SSL_poll.html", "doc/html/man3/SSL_read.html", "doc/html/man3/SSL_read_early_data.html", "doc/html/man3/SSL_rstate_string.html", "doc/html/man3/SSL_session_reused.html", "doc/html/man3/SSL_set1_host.html", + "doc/html/man3/SSL_set1_initial_peer_addr.html", + "doc/html/man3/SSL_set1_server_cert_type.html", "doc/html/man3/SSL_set_async_callback.html", "doc/html/man3/SSL_set_bio.html", + "doc/html/man3/SSL_set_blocking_mode.html", "doc/html/man3/SSL_set_connect_state.html", + "doc/html/man3/SSL_set_default_stream_mode.html", "doc/html/man3/SSL_set_fd.html", + "doc/html/man3/SSL_set_incoming_stream_policy.html", + "doc/html/man3/SSL_set_quic_tls_cbs.html", "doc/html/man3/SSL_set_retry_verify.html", "doc/html/man3/SSL_set_session.html", + "doc/html/man3/SSL_set_session_secret_cb.html", "doc/html/man3/SSL_set_shutdown.html", "doc/html/man3/SSL_set_verify_result.html", "doc/html/man3/SSL_shutdown.html", "doc/html/man3/SSL_state_string.html", + "doc/html/man3/SSL_stream_conclude.html", + "doc/html/man3/SSL_stream_reset.html", "doc/html/man3/SSL_want.html", "doc/html/man3/SSL_write.html", "doc/html/man3/TS_RESP_CTX_new.html", - "doc/html/man3/TS_VERIFY_CTX_set_certs.html", + "doc/html/man3/TS_VERIFY_CTX.html", "doc/html/man3/UI_STRING.html", "doc/html/man3/UI_UTIL_read_pw.html", "doc/html/man3/UI_create_method.html", "doc/html/man3/UI_new.html", "doc/html/man3/X509V3_get_d2i.html", "doc/html/man3/X509V3_set_ctx.html", + "doc/html/man3/X509_ACERT_add1_attr.html", + "doc/html/man3/X509_ACERT_add_attr_nconf.html", + "doc/html/man3/X509_ACERT_get0_holder_baseCertId.html", + "doc/html/man3/X509_ACERT_get_attr.html", + "doc/html/man3/X509_ACERT_print_ex.html", "doc/html/man3/X509_ALGOR_dup.html", "doc/html/man3/X509_ATTRIBUTE.html", "doc/html/man3/X509_CRL_get0_by_serial.html", @@ -16965,6 +19627,7 @@ our %unified_info = ( "doc/html/man3/X509_REQ_get_attr.html", "doc/html/man3/X509_REQ_get_extensions.html", "doc/html/man3/X509_SIG_get0.html", + "doc/html/man3/X509_STORE_CTX_get_by_subject.html", "doc/html/man3/X509_STORE_CTX_get_error.html", "doc/html/man3/X509_STORE_CTX_new.html", "doc/html/man3/X509_STORE_CTX_set_verify_cb.html", @@ -16987,6 +19650,7 @@ our %unified_info = ( "doc/html/man3/X509_get0_notBefore.html", "doc/html/man3/X509_get0_signature.html", "doc/html/man3/X509_get0_uids.html", + "doc/html/man3/X509_get_default_cert_file.html", "doc/html/man3/X509_get_extension_flags.html", "doc/html/man3/X509_get_pubkey.html", "doc/html/man3/X509_get_serialNumber.html", @@ -17032,12 +19696,15 @@ our %unified_info = ( "doc/html/man7/EVP_CIPHER-RC5.html", "doc/html/man7/EVP_CIPHER-SEED.html", "doc/html/man7/EVP_CIPHER-SM4.html", + "doc/html/man7/EVP_KDF-ARGON2.html", "doc/html/man7/EVP_KDF-HKDF.html", + "doc/html/man7/EVP_KDF-HMAC-DRBG.html", "doc/html/man7/EVP_KDF-KB.html", "doc/html/man7/EVP_KDF-KRB5KDF.html", "doc/html/man7/EVP_KDF-PBKDF1.html", "doc/html/man7/EVP_KDF-PBKDF2.html", "doc/html/man7/EVP_KDF-PKCS12KDF.html", + "doc/html/man7/EVP_KDF-PVKKDF.html", "doc/html/man7/EVP_KDF-SCRYPT.html", "doc/html/man7/EVP_KDF-SS.html", "doc/html/man7/EVP_KDF-SSHKDF.html", @@ -17046,7 +19713,10 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-X942-ASN1.html", "doc/html/man7/EVP_KDF-X942-CONCAT.html", "doc/html/man7/EVP_KDF-X963.html", + "doc/html/man7/EVP_KEM-EC.html", + "doc/html/man7/EVP_KEM-ML-KEM.html", "doc/html/man7/EVP_KEM-RSA.html", + "doc/html/man7/EVP_KEM-X25519.html", "doc/html/man7/EVP_KEYEXCH-DH.html", "doc/html/man7/EVP_KEYEXCH-ECDH.html", "doc/html/man7/EVP_KEYEXCH-X25519.html", @@ -17058,6 +19728,7 @@ our %unified_info = ( "doc/html/man7/EVP_MAC-Poly1305.html", "doc/html/man7/EVP_MAC-Siphash.html", "doc/html/man7/EVP_MD-BLAKE2.html", + "doc/html/man7/EVP_MD-KECCAK.html", "doc/html/man7/EVP_MD-MD2.html", "doc/html/man7/EVP_MD-MD4.html", "doc/html/man7/EVP_MD-MD5-SHA1.html", @@ -17077,12 +19748,17 @@ our %unified_info = ( "doc/html/man7/EVP_PKEY-EC.html", "doc/html/man7/EVP_PKEY-FFC.html", "doc/html/man7/EVP_PKEY-HMAC.html", + "doc/html/man7/EVP_PKEY-ML-DSA.html", + "doc/html/man7/EVP_PKEY-ML-KEM.html", "doc/html/man7/EVP_PKEY-RSA.html", + "doc/html/man7/EVP_PKEY-SLH-DSA.html", "doc/html/man7/EVP_PKEY-SM2.html", "doc/html/man7/EVP_PKEY-X25519.html", + "doc/html/man7/EVP_RAND-CRNG-TEST.html", "doc/html/man7/EVP_RAND-CTR-DRBG.html", "doc/html/man7/EVP_RAND-HASH-DRBG.html", "doc/html/man7/EVP_RAND-HMAC-DRBG.html", + "doc/html/man7/EVP_RAND-JITTER.html", "doc/html/man7/EVP_RAND-SEED-SRC.html", "doc/html/man7/EVP_RAND-TEST-RAND.html", "doc/html/man7/EVP_RAND.html", @@ -17090,17 +19766,19 @@ our %unified_info = ( "doc/html/man7/EVP_SIGNATURE-ECDSA.html", "doc/html/man7/EVP_SIGNATURE-ED25519.html", "doc/html/man7/EVP_SIGNATURE-HMAC.html", + "doc/html/man7/EVP_SIGNATURE-ML-DSA.html", "doc/html/man7/EVP_SIGNATURE-RSA.html", + "doc/html/man7/EVP_SIGNATURE-SLH-DSA.html", "doc/html/man7/OSSL_PROVIDER-FIPS.html", "doc/html/man7/OSSL_PROVIDER-base.html", "doc/html/man7/OSSL_PROVIDER-default.html", "doc/html/man7/OSSL_PROVIDER-legacy.html", "doc/html/man7/OSSL_PROVIDER-null.html", + "doc/html/man7/OSSL_STORE-winstore.html", "doc/html/man7/RAND.html", "doc/html/man7/RSA-PSS.html", "doc/html/man7/X25519.html", "doc/html/man7/bio.html", - "doc/html/man7/crypto.html", "doc/html/man7/ct.html", "doc/html/man7/des_modes.html", "doc/html/man7/evp.html", @@ -17111,14 +19789,31 @@ our %unified_info = ( "doc/html/man7/life_cycle-mac.html", "doc/html/man7/life_cycle-pkey.html", "doc/html/man7/life_cycle-rand.html", - "doc/html/man7/migration_guide.html", "doc/html/man7/openssl-core.h.html", "doc/html/man7/openssl-core_dispatch.h.html", "doc/html/man7/openssl-core_names.h.html", "doc/html/man7/openssl-env.html", "doc/html/man7/openssl-glossary.html", + "doc/html/man7/openssl-qlog.html", + "doc/html/man7/openssl-quic-concurrency.html", + "doc/html/man7/openssl-quic.html", "doc/html/man7/openssl-threads.html", "doc/html/man7/openssl_user_macros.html", + "doc/html/man7/ossl-guide-introduction.html", + "doc/html/man7/ossl-guide-libcrypto-introduction.html", + "doc/html/man7/ossl-guide-libraries-introduction.html", + "doc/html/man7/ossl-guide-libssl-introduction.html", + "doc/html/man7/ossl-guide-migration.html", + "doc/html/man7/ossl-guide-quic-client-block.html", + "doc/html/man7/ossl-guide-quic-client-non-block.html", + "doc/html/man7/ossl-guide-quic-introduction.html", + "doc/html/man7/ossl-guide-quic-multi-stream.html", + "doc/html/man7/ossl-guide-quic-server-block.html", + "doc/html/man7/ossl-guide-quic-server-non-block.html", + "doc/html/man7/ossl-guide-tls-client-block.html", + "doc/html/man7/ossl-guide-tls-client-non-block.html", + "doc/html/man7/ossl-guide-tls-introduction.html", + "doc/html/man7/ossl-guide-tls-server-block.html", "doc/html/man7/ossl_store-file.html", "doc/html/man7/ossl_store.html", "doc/html/man7/passphrase-encoding.html", @@ -17137,10 +19832,10 @@ our %unified_info = ( "doc/html/man7/provider-object.html", "doc/html/man7/provider-rand.html", "doc/html/man7/provider-signature.html", + "doc/html/man7/provider-skeymgmt.html", "doc/html/man7/provider-storemgmt.html", "doc/html/man7/provider.html", "doc/html/man7/proxy-certificates.html", - "doc/html/man7/ssl.html", "doc/html/man7/x509.html" ] }, @@ -17155,12 +19850,21 @@ our %unified_info = ( ] }, "includes" => { + "OpenSSLConfig.cmake" => [ + "." + ], + "OpenSSLConfigVersion.cmake" => [ + "." + ], "apps/asn1parse.o" => [ "apps" ], "apps/ca.o" => [ "apps" ], + "apps/ca_internals_test-bin-ca.o" => [ + "apps" + ], "apps/ciphers.o" => [ "apps" ], @@ -17387,6 +20091,9 @@ our %unified_info = ( "apps/openssl-bin-sess_id.o" => [ "apps" ], + "apps/openssl-bin-skeyutl.o" => [ + "apps" + ], "apps/openssl-bin-smime.o" => [ "apps" ], @@ -17474,6 +20181,9 @@ our %unified_info = ( "apps/sess_id.o" => [ "apps" ], + "apps/skeyutl.o" => [ + "apps" + ], "apps/smime.o" => [ "apps" ], @@ -17525,6 +20235,12 @@ our %unified_info = ( "crypto/aes/bsaes-armv7.o" => [ "crypto" ], + "crypto/aes/vpaes-armv8.o" => [ + "crypto" + ], + "crypto/aes/vpaes-loongarch64.o" => [ + "crypto" + ], "crypto/arm64cpuid.o" => [ "crypto" ], @@ -17576,9 +20292,15 @@ our %unified_info = ( "crypto/chacha/chacha-armv4.o" => [ "crypto" ], + "crypto/chacha/chacha-armv8-sve.o" => [ + "crypto" + ], "crypto/chacha/chacha-armv8.o" => [ "crypto" ], + "crypto/chacha/chacha-loongarch64.o" => [ + "crypto" + ], "crypto/chacha/chacha-s390x.o" => [ "crypto" ], @@ -17603,15 +20325,27 @@ our %unified_info = ( "crypto/ec/ecp_s390x_nistp.o" => [ "crypto" ], + "crypto/ec/ecp_sm2p256-armv8.o" => [ + "crypto" + ], + "crypto/ec/ecx_key.o" => [ + "crypto" + ], "crypto/ec/ecx_meth.o" => [ "crypto" ], "crypto/ec/ecx_s390x.o" => [ "crypto" ], + "crypto/ec/libcrypto-lib-ecx_key.o" => [ + "crypto" + ], "crypto/ec/libcrypto-lib-ecx_meth.o" => [ "crypto" ], + "crypto/ec/libfips-lib-ecx_key.o" => [ + "crypto" + ], "crypto/evp/e_aes.o" => [ "crypto", "crypto/modes" @@ -17683,9 +20417,18 @@ our %unified_info = ( "crypto/libfips-lib-cpuid.o" => [ "." ], + "crypto/md5/md5-aarch64.o" => [ + "crypto" + ], + "crypto/md5/md5-loongarch64.o" => [ + "crypto" + ], "crypto/md5/md5-sparcv9.o" => [ "crypto" ], + "crypto/modes/aes-gcm-armv8-unroll8_64.o" => [ + "crypto" + ], "crypto/modes/aes-gcm-armv8_64.o" => [ "crypto" ], @@ -17710,6 +20453,9 @@ our %unified_info = ( "crypto/modes/libfips-lib-gcm128.o" => [ "crypto" ], + "crypto/params_idx.c" => [ + "util/perl" + ], "crypto/poly1305/poly1305-armv4.o" => [ "crypto" ], @@ -17731,6 +20477,9 @@ our %unified_info = ( "crypto/sha/keccak1600-armv4.o" => [ "crypto" ], + "crypto/sha/keccak1600-armv8.o" => [ + "crypto" + ], "crypto/sha/sha1-armv4-large.o" => [ "crypto" ], @@ -17776,6 +20525,18 @@ our %unified_info = ( "crypto/sha/sha512-sparcv9.o" => [ "crypto" ], + "crypto/sm3/sm3-armv8.o" => [ + "crypto" + ], + "crypto/sm4/sm4-armv8.o" => [ + "crypto" + ], + "crypto/sm4/vpsm4-armv8.o" => [ + "crypto" + ], + "crypto/sm4/vpsm4_ex-armv8.o" => [ + "crypto" + ], "doc/man1/openssl-asn1parse.pod" => [ "doc" ], @@ -17908,6 +20669,9 @@ our %unified_info = ( "doc/man1/openssl-sess_id.pod" => [ "doc" ], + "doc/man1/openssl-skeyutl.pod" => [ + "doc" + ], "doc/man1/openssl-smime.pod" => [ "doc" ], @@ -17935,6 +20699,24 @@ our %unified_info = ( "doc/man1/openssl-x509.pod" => [ "doc" ], + "exporters/OpenSSLConfig.cmake" => [ + "." + ], + "exporters/OpenSSLConfigVersion.cmake" => [ + "." + ], + "exporters/libcrypto.pc" => [ + "." + ], + "exporters/libssl.pc" => [ + "." + ], + "exporters/openssl.pc" => [ + "." + ], + "fuzz/acert-test" => [ + "include" + ], "fuzz/asn1-test" => [ "include" ], @@ -17965,22 +20747,88 @@ our %unified_info = ( "fuzz/ct-test" => [ "include" ], + "fuzz/decoder-test" => [ + "include" + ], + "fuzz/dtlsclient-test" => [ + "include" + ], + "fuzz/dtlsserver-test" => [ + "include" + ], + "fuzz/hashtable-test" => [ + "include" + ], + "fuzz/ml-dsa-test" => [ + "include" + ], + "fuzz/ml-kem-test" => [ + "include" + ], + "fuzz/pem-test" => [ + "include" + ], + "fuzz/provider-test" => [ + "include" + ], + "fuzz/punycode-test" => [ + "include" + ], + "fuzz/quic-client-test" => [ + "include" + ], + "fuzz/quic-lcidm-test" => [ + "include" + ], + "fuzz/quic-rcidm-test" => [ + "include" + ], + "fuzz/quic-server-test" => [ + "include" + ], + "fuzz/quic-srtm-test" => [ + "include" + ], "fuzz/server-test" => [ "include" ], + "fuzz/slh-dsa-test" => [ + "include" + ], + "fuzz/smime-test" => [ + "include" + ], + "fuzz/v3name-test" => [ + "include" + ], "fuzz/x509-test" => [ "include" ], + "include/internal/param_names.h" => [ + "util/perl" + ], + "include/openssl/core_names.h" => [ + "util/perl" + ], "libcrypto" => [ ".", "include", "providers/common/include", "providers/implementations/include" ], + "libcrypto.pc" => [ + "." + ], "libssl" => [ ".", "include" ], + "libssl.pc" => [ + "." + ], + "openssl.pc" => [ + "." + ], "providers/common/der/der_digests_gen.c" => [ "providers/common/der" ], @@ -18020,6 +20868,15 @@ our %unified_info = ( "providers/common/der/der_ecx_key.o" => [ "providers/common/include/prov" ], + "providers/common/der/der_ml_dsa_gen.c" => [ + "providers/common/der" + ], + "providers/common/der/der_ml_dsa_gen.o" => [ + "providers/common/include/prov" + ], + "providers/common/der/der_ml_dsa_key.o" => [ + "providers/common/include/prov" + ], "providers/common/der/der_rsa_gen.c" => [ "providers/common/der" ], @@ -18032,6 +20889,15 @@ our %unified_info = ( "providers/common/der/der_rsa_sig.o" => [ "providers/common/include/prov" ], + "providers/common/der/der_slh_dsa_gen.c" => [ + "providers/common/der" + ], + "providers/common/der/der_slh_dsa_gen.o" => [ + "providers/common/include/prov" + ], + "providers/common/der/der_slh_dsa_key.o" => [ + "providers/common/include/prov" + ], "providers/common/der/der_sm2_gen.c" => [ "providers/common/der" ], @@ -18077,12 +20943,24 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ecx_key.o" => [ "providers/common/include/prov" ], + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o" => [ + "providers/common/include/prov" + ], + "providers/common/der/libcommon-lib-der_ml_dsa_key.o" => [ + "providers/common/include/prov" + ], "providers/common/der/libcommon-lib-der_rsa_gen.o" => [ "providers/common/include/prov" ], "providers/common/der/libcommon-lib-der_rsa_key.o" => [ "providers/common/include/prov" ], + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o" => [ + "providers/common/include/prov" + ], + "providers/common/der/libcommon-lib-der_slh_dsa_key.o" => [ + "providers/common/include/prov" + ], "providers/common/der/libcommon-lib-der_wrap_gen.o" => [ "providers/common/include/prov" ], @@ -18113,9 +20991,15 @@ our %unified_info = ( "providers/common/include/prov/der_ecx.h" => [ "providers/common/der" ], + "providers/common/include/prov/der_ml_dsa.h" => [ + "providers/common/der" + ], "providers/common/include/prov/der_rsa.h" => [ "providers/common/der" ], + "providers/common/include/prov/der_slh_dsa.h" => [ + "providers/common/der" + ], "providers/common/include/prov/der_sm2.h" => [ "providers/common/der" ], @@ -18158,9 +21042,15 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-eddsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/libdefault-lib-rsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/libdefault-lib-sm2_sig.o" => [ "providers/common/include/prov" ], @@ -18173,12 +21063,24 @@ our %unified_info = ( "providers/implementations/signature/libfips-lib-eddsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/libfips-lib-rsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o" => [ + "providers/common/include/prov" + ], + "providers/implementations/signature/ml_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/rsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/slh_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/sm2_sig.o" => [ "providers/common/include/prov" ], @@ -18191,28 +21093,39 @@ our %unified_info = ( "crypto", "include", "providers/implementations/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" ], "providers/libdefault.a" => [ ".", "crypto", "include", "providers/implementations/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" ], "providers/libfips.a" => [ ".", "crypto", "include", "providers/implementations/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" ], "providers/liblegacy.a" => [ ".", "crypto", "include", "providers/implementations/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" + ], + "providers/libtemplate.a" => [ + "crypto", + "include", + "providers/implementations/include", + "providers/common/include", + "providers/fips/include" ], "test/aborttest" => [ "include", @@ -18281,6 +21194,14 @@ our %unified_info = ( "include", "apps/include" ], + "test/bio_addr_test" => [ + "include", + "apps/include" + ], + "test/bio_base64_test" => [ + "include", + "apps/include" + ], "test/bio_callback_test" => [ "include", "apps/include" @@ -18289,11 +21210,20 @@ our %unified_info = ( "include", "apps/include" ], + "test/bio_dgram_test" => [ + "include", + "apps/include", + "." + ], "test/bio_enc_test" => [ "include", "apps/include" ], - "test/bio_memleak_test" => [ + "test/bio_memleak_test" => [ + "include", + "apps/include" + ], + "test/bio_meth_test" => [ "include", "apps/include" ], @@ -18310,6 +21240,11 @@ our %unified_info = ( "include", "apps/include" ], + "test/bio_tfo_test" => [ + "include", + "apps/include", + "." + ], "test/bioprinttest" => [ "include", "apps/include" @@ -18324,6 +21259,9 @@ our %unified_info = ( "include", "apps/include" ], + "test/build_wincrypt_test" => [ + "include" + ], "test/buildtest_c_aes" => [ "include" ], @@ -18339,6 +21277,9 @@ our %unified_info = ( "test/buildtest_c_buffer" => [ "include" ], + "test/buildtest_c_byteorder" => [ + "include" + ], "test/buildtest_c_camellia" => [ "include" ], @@ -18363,9 +21304,6 @@ our %unified_info = ( "test/buildtest_c_core_dispatch" => [ "include" ], - "test/buildtest_c_core_names" => [ - "include" - ], "test/buildtest_c_core_object" => [ "include" ], @@ -18390,6 +21328,9 @@ our %unified_info = ( "test/buildtest_c_e_os2" => [ "include" ], + "test/buildtest_c_e_ostime" => [ + "include" + ], "test/buildtest_c_ebcdic" => [ "include" ], @@ -18417,12 +21358,18 @@ our %unified_info = ( "test/buildtest_c_hmac" => [ "include" ], + "test/buildtest_c_hpke" => [ + "include" + ], "test/buildtest_c_http" => [ "include" ], "test/buildtest_c_idea" => [ "include" ], + "test/buildtest_c_indicator" => [ + "include" + ], "test/buildtest_c_kdf" => [ "include" ], @@ -18438,6 +21385,9 @@ our %unified_info = ( "test/buildtest_c_mdc2" => [ "include" ], + "test/buildtest_c_ml_kem" => [ + "include" + ], "test/buildtest_c_modes" => [ "include" ], @@ -18468,6 +21418,9 @@ our %unified_info = ( "test/buildtest_c_provider" => [ "include" ], + "test/buildtest_c_quic" => [ + "include" + ], "test/buildtest_c_rand" => [ "include" ], @@ -18510,6 +21463,9 @@ our %unified_info = ( "test/buildtest_c_symhacks" => [ "include" ], + "test/buildtest_c_thread" => [ + "include" + ], "test/buildtest_c_tls1" => [ "include" ], @@ -18525,10 +21481,24 @@ our %unified_info = ( "test/buildtest_c_whrlpool" => [ "include" ], + "test/byteorder_test" => [ + "include", + "apps/include" + ], + "test/ca_internals_test" => [ + ".", + "include", + "apps/include" + ], "test/casttest" => [ "include", "apps/include" ], + "test/cert_comp_test" => [ + "include", + "apps/include", + "." + ], "test/chacha_internal_test" => [ ".", "include", @@ -18652,6 +21622,11 @@ our %unified_info = ( "include", "apps/include" ], + "test/decoder_propq_test" => [ + ".", + "include", + "apps/include" + ], "test/defltfips_test" => [ "include", "apps/include" @@ -18667,7 +21642,8 @@ our %unified_info = ( "test/drbgtest" => [ "include", "apps/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" ], "test/dsa_no_digest_size_test" => [ "include", @@ -18710,7 +21686,9 @@ our %unified_info = ( "test/endecode_test" => [ ".", "include", - "apps/include" + "apps/include", + "providers/common/include", + "providers/implementations/include" ], "test/endecoder_legacy_test" => [ ".", @@ -18755,6 +21733,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/evp_pkey_dhkem_test" => [ + "include", + "apps/include" + ], "test/evp_pkey_dparams_test" => [ "include", "apps/include" @@ -18763,10 +21745,18 @@ our %unified_info = ( "include", "apps/include" ], + "test/evp_skey_test" => [ + "include", + "apps/include" + ], "test/evp_test" => [ "include", "apps/include" ], + "test/evp_xof_test" => [ + "include", + "apps/include" + ], "test/exdatatest" => [ "include", "apps/include" @@ -18867,22 +21857,62 @@ our %unified_info = ( ".", "include" ], + "test/helpers/json_test-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/helpers/pkcs12.o" => [ ".", "include" ], + "test/helpers/pkcs12_api_test-bin-pkcs12.o" => [ + ".", + "include" + ], "test/helpers/pkcs12_format_test-bin-pkcs12.o" => [ ".", "include" ], + "test/helpers/quic_multistream_test-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quic_newcid_test-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quic_radix_test-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quic_srt_gen_test-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quicapitest-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quicfaultstest-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/helpers/recordlentest-bin-ssltestlib.o" => [ ".", "include" ], + "test/helpers/rpktest-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/helpers/servername_test-bin-ssltestlib.o" => [ ".", "include" ], + "test/helpers/ssl_handshake_rtt_test-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/helpers/ssl_test-bin-handshake.o" => [ ".", "include" @@ -18916,6 +21946,10 @@ our %unified_info = ( ".", "include" ], + "test/helpers/tls13groupselection_test-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/hexstr_test" => [ ".", "include", @@ -18925,6 +21959,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/hpke_test" => [ + "include", + "apps/include" + ], "test/http_test" => [ "include", "apps/include" @@ -18937,6 +21975,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/json_test" => [ + "include", + "apps/include" + ], "test/keymgmt_internal_test" => [ ".", "include", @@ -18951,6 +21993,10 @@ our %unified_info = ( "apps/include", "." ], + "test/list_test" => [ + "include", + "apps/include" + ], "test/localetest" => [ "include", "apps/include" @@ -18964,10 +22010,27 @@ our %unified_info = ( "include", "apps/include" ], + "test/membio_test" => [ + "include", + "apps/include", + "." + ], "test/memleaktest" => [ "include", "apps/include" ], + "test/ml_dsa_test" => [ + "include", + "apps/include" + ], + "test/ml_kem_evp_extra_test" => [ + "include", + "apps/include" + ], + "test/ml_kem_internal_test" => [ + "include", + "apps/include" + ], "test/modes_internal_test" => [ ".", "include", @@ -19002,6 +22065,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/pairwise_fail_test" => [ + "include", + "apps/include" + ], "test/param_build_test" => [ "include", "apps/include" @@ -19035,6 +22102,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/pkcs12_api_test" => [ + "include", + "apps/include" + ], "test/pkcs12_format_test" => [ "include", "apps/include" @@ -19056,6 +22127,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/priority_queue_test" => [ + "include", + "apps/include" + ], "test/property_test" => [ ".", "include", @@ -19069,6 +22144,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/provider_default_search_path_test" => [ + "include", + "apps/include" + ], "test/provider_fallback_test" => [ "include", "apps/include" @@ -19095,6 +22174,97 @@ our %unified_info = ( "include", "apps/include" ], + "test/quic_ackm_test" => [ + "include", + "apps/include" + ], + "test/quic_cc_test" => [ + "include", + "apps/include" + ], + "test/quic_cfq_test" => [ + "include", + "apps/include" + ], + "test/quic_client_test" => [ + "include", + "apps/include" + ], + "test/quic_fc_test" => [ + "include", + "apps/include" + ], + "test/quic_fifd_test" => [ + "include", + "apps/include" + ], + "test/quic_lcidm_test" => [ + "include", + "apps/include" + ], + "test/quic_multistream_test" => [ + "include", + "apps/include" + ], + "test/quic_newcid_test" => [ + "include", + "apps/include", + "." + ], + "test/quic_qlog_test" => [ + "include", + "apps/include" + ], + "test/quic_radix_test" => [ + "include", + "apps/include" + ], + "test/quic_rcidm_test" => [ + "include", + "apps/include" + ], + "test/quic_record_test" => [ + "include", + "apps/include" + ], + "test/quic_srt_gen_test" => [ + "include", + "apps/include", + "." + ], + "test/quic_srtm_test" => [ + "include", + "apps/include" + ], + "test/quic_stream_test" => [ + "include", + "apps/include" + ], + "test/quic_tserver_test" => [ + "include", + "apps/include" + ], + "test/quic_txp_test" => [ + "include", + "apps/include" + ], + "test/quic_txpim_test" => [ + "include", + "apps/include" + ], + "test/quic_wire_test" => [ + "include", + "apps/include" + ], + "test/quicapitest" => [ + "include", + "apps/include" + ], + "test/quicfaultstest" => [ + "include", + "apps/include", + "." + ], "test/rand_status_test" => [ "include", "apps/include" @@ -19115,14 +22285,20 @@ our %unified_info = ( "include", "apps/include" ], - "test/rdrand_sanitytest" => [ + "test/rdcpu_sanitytest" => [ "include", - "apps/include" + "apps/include", + "crypto" ], "test/recordlentest" => [ "include", "apps/include" ], + "test/rpktest" => [ + "include", + "apps/include", + "." + ], "test/rsa_complex" => [ "include", "apps/include" @@ -19141,6 +22317,15 @@ our %unified_info = ( "include", "apps/include" ], + "test/rsa_x931_test" => [ + ".", + "include", + "apps/include" + ], + "test/safe_math_test" => [ + "include", + "apps/include" + ], "test/sanitytest" => [ "include", "apps/include" @@ -19162,6 +22347,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/slh_dsa_test" => [ + "include", + "apps/include" + ], "test/sm2_internal_test" => [ "include", "apps/include" @@ -19192,6 +22381,11 @@ our %unified_info = ( "include", "apps/include" ], + "test/ssl_handshake_rtt_test" => [ + "include", + "apps/include", + "." + ], "test/ssl_old_test" => [ ".", "include", @@ -19208,6 +22402,7 @@ our %unified_info = ( "test/sslapitest" => [ "include", "apps/include", + "providers/common/include", "." ], "test/sslbuffertest" => [ @@ -19222,6 +22417,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/strtoultest" => [ + "include", + "apps/include" + ], "test/sysdefaulttest" => [ "include", "apps/include" @@ -19230,7 +22429,13 @@ our %unified_info = ( "include", "apps/include" ], + "test/threadpool_test" => [ + ".", + "include", + "apps/include" + ], "test/threadstest" => [ + ".", "include", "apps/include" ], @@ -19242,6 +22447,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/time_test" => [ + "include", + "apps/include" + ], "test/tls13ccstest" => [ "include", "apps/include" @@ -19251,6 +22460,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/tls13groupselection_test" => [ + "include", + "apps/include" + ], "test/trace_api_test" => [ ".", "include", @@ -19289,6 +22502,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/x509_acert_test" => [ + "include", + "apps/include" + ], "test/x509_check_cert_pkey_test" => [ "include", "apps/include" @@ -19302,6 +22519,18 @@ our %unified_info = ( "include", "apps/include" ], + "test/x509_load_cert_file_test" => [ + "include", + "apps/include" + ], + "test/x509_req_test" => [ + "include", + "apps/include" + ], + "test/x509_test" => [ + "include", + "apps/include" + ], "test/x509_time_test" => [ "include", "apps/include" @@ -19323,6 +22552,7 @@ our %unified_info = ( "providers/libdefault.a", "providers/libfips.a", "providers/liblegacy.a", + "providers/libtemplate.a", "test/libtestutil.a" ], "mandocs" => { @@ -19375,6 +22605,7 @@ our %unified_info = ( "doc/man/man1/openssl-s_server.1", "doc/man/man1/openssl-s_time.1", "doc/man/man1/openssl-sess_id.1", + "doc/man/man1/openssl-skeyutl.1", "doc/man/man1/openssl-smime.1", "doc/man/man1/openssl-speed.1", "doc/man/man1/openssl-spkac.1", @@ -19424,6 +22655,7 @@ our %unified_info = ( "doc/man/man3/BIO_find_type.3", "doc/man/man3/BIO_get_data.3", "doc/man/man3/BIO_get_ex_new_index.3", + "doc/man/man3/BIO_get_rpoll_descriptor.3", "doc/man/man3/BIO_meth_new.3", "doc/man/man3/BIO_new.3", "doc/man/man3/BIO_new_CMS.3", @@ -19436,11 +22668,13 @@ our %unified_info = ( "doc/man/man3/BIO_s_connect.3", "doc/man/man3/BIO_s_core.3", "doc/man/man3/BIO_s_datagram.3", + "doc/man/man3/BIO_s_dgram_pair.3", "doc/man/man3/BIO_s_fd.3", "doc/man/man3/BIO_s_file.3", "doc/man/man3/BIO_s_mem.3", "doc/man/man3/BIO_s_null.3", "doc/man/man3/BIO_s_socket.3", + "doc/man/man3/BIO_sendmmsg.3", "doc/man/man3/BIO_set_callback.3", "doc/man/man3/BIO_should_retry.3", "doc/man/man3/BIO_socket_wait.3", @@ -19465,6 +22699,7 @@ our %unified_info = ( "doc/man/man3/BN_swap.3", "doc/man/man3/BN_zero.3", "doc/man/man3/BUF_MEM_new.3", + "doc/man/man3/CMAC_CTX.3", "doc/man/man3/CMS_EncryptedData_decrypt.3", "doc/man/man3/CMS_EncryptedData_encrypt.3", "doc/man/man3/CMS_EnvelopedData_create.3", @@ -19487,6 +22722,7 @@ our %unified_info = ( "doc/man/man3/CMS_uncompress.3", "doc/man/man3/CMS_verify.3", "doc/man/man3/CMS_verify_receipt.3", + "doc/man/man3/COMP_CTX_new.3", "doc/man/man3/CONF_modules_free.3", "doc/man/man3/CONF_modules_load_file.3", "doc/man/man3/CRYPTO_THREAD_run_once.3", @@ -19520,6 +22756,8 @@ our %unified_info = ( "doc/man/man3/DSA_size.3", "doc/man/man3/DTLS_get_data_mtu.3", "doc/man/man3/DTLS_set_timer_cb.3", + "doc/man/man3/DTLSv1_get_timeout.3", + "doc/man/man3/DTLSv1_handle_timeout.3", "doc/man/man3/DTLSv1_listen.3", "doc/man/man3/ECDSA_SIG_new.3", "doc/man/man3/ECDSA_sign.3", @@ -19566,6 +22804,7 @@ our %unified_info = ( "doc/man/man3/EVP_PKEY_CTX_ctrl.3", "doc/man/man3/EVP_PKEY_CTX_get0_libctx.3", "doc/man/man3/EVP_PKEY_CTX_get0_pkey.3", + "doc/man/man3/EVP_PKEY_CTX_get_algor.3", "doc/man/man3/EVP_PKEY_CTX_new.3", "doc/man/man3/EVP_PKEY_CTX_set1_pbe_pass.3", "doc/man/man3/EVP_PKEY_CTX_set_hkdf_md.3", @@ -19605,6 +22844,8 @@ our %unified_info = ( "doc/man/man3/EVP_PKEY_verify_recover.3", "doc/man/man3/EVP_RAND.3", "doc/man/man3/EVP_SIGNATURE.3", + "doc/man/man3/EVP_SKEY.3", + "doc/man/man3/EVP_SKEYMGMT.3", "doc/man/man3/EVP_SealInit.3", "doc/man/man3/EVP_SignInit.3", "doc/man/man3/EVP_VerifyInit.3", @@ -19634,6 +22875,7 @@ our %unified_info = ( "doc/man/man3/EVP_sm3.3", "doc/man/man3/EVP_sm4_cbc.3", "doc/man/man3/EVP_whirlpool.3", + "doc/man/man3/GENERAL_NAME.3", "doc/man/man3/HMAC.3", "doc/man/man3/MD5.3", "doc/man/man3/MDC2_Init.3", @@ -19658,14 +22900,18 @@ our %unified_info = ( "doc/man/man3/OPENSSL_init_ssl.3", "doc/man/man3/OPENSSL_instrument_bus.3", "doc/man/man3/OPENSSL_load_builtin_modules.3", + "doc/man/man3/OPENSSL_load_u16_le.3", "doc/man/man3/OPENSSL_malloc.3", + "doc/man/man3/OPENSSL_riscvcap.3", "doc/man/man3/OPENSSL_s390xcap.3", "doc/man/man3/OPENSSL_secure_malloc.3", "doc/man/man3/OPENSSL_strcasecmp.3", "doc/man/man3/OSSL_ALGORITHM.3", "doc/man/man3/OSSL_CALLBACK.3", + "doc/man/man3/OSSL_CMP_ATAV_set0.3", "doc/man/man3/OSSL_CMP_CTX_new.3", "doc/man/man3/OSSL_CMP_HDR_get0_transactionID.3", + "doc/man/man3/OSSL_CMP_ITAV_new_caCerts.3", "doc/man/man3/OSSL_CMP_ITAV_set0.3", "doc/man/man3/OSSL_CMP_MSG_get0_header.3", "doc/man/man3/OSSL_CMP_MSG_http_perform.3", @@ -19689,18 +22935,27 @@ our %unified_info = ( "doc/man/man3/OSSL_ENCODER_CTX.3", "doc/man/man3/OSSL_ENCODER_CTX_new_for_pkey.3", "doc/man/man3/OSSL_ENCODER_to_bio.3", + "doc/man/man3/OSSL_ERR_STATE_save.3", "doc/man/man3/OSSL_ESS_check_signing_certs.3", + "doc/man/man3/OSSL_GENERAL_NAMES_print.3", + "doc/man/man3/OSSL_HPKE_CTX_new.3", "doc/man/man3/OSSL_HTTP_REQ_CTX.3", "doc/man/man3/OSSL_HTTP_parse_url.3", "doc/man/man3/OSSL_HTTP_transfer.3", + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX.3", + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX_print.3", + "doc/man/man3/OSSL_INDICATOR_set_callback.3", "doc/man/man3/OSSL_ITEM.3", "doc/man/man3/OSSL_LIB_CTX.3", + "doc/man/man3/OSSL_LIB_CTX_set_conf_diagnostics.3", "doc/man/man3/OSSL_PARAM.3", "doc/man/man3/OSSL_PARAM_BLD.3", "doc/man/man3/OSSL_PARAM_allocate_from_text.3", "doc/man/man3/OSSL_PARAM_dup.3", "doc/man/man3/OSSL_PARAM_int.3", + "doc/man/man3/OSSL_PARAM_print_to_bio.3", "doc/man/man3/OSSL_PROVIDER.3", + "doc/man/man3/OSSL_QUIC_client_method.3", "doc/man/man3/OSSL_SELF_TEST_new.3", "doc/man/man3/OSSL_SELF_TEST_set_callback.3", "doc/man/man3/OSSL_STORE_INFO.3", @@ -19709,11 +22964,13 @@ our %unified_info = ( "doc/man/man3/OSSL_STORE_attach.3", "doc/man/man3/OSSL_STORE_expect.3", "doc/man/man3/OSSL_STORE_open.3", + "doc/man/man3/OSSL_sleep.3", "doc/man/man3/OSSL_trace_enabled.3", "doc/man/man3/OSSL_trace_get_category_num.3", "doc/man/man3/OSSL_trace_set_channel.3", "doc/man/man3/OpenSSL_add_all_algorithms.3", "doc/man/man3/OpenSSL_version.3", + "doc/man/man3/PBMAC1_get1_pbkdf2_param.3", "doc/man/man3/PEM_X509_INFO_read_bio_ex.3", "doc/man/man3/PEM_bytes_read_bio.3", "doc/man/man3/PEM_read.3", @@ -19726,6 +22983,7 @@ our %unified_info = ( "doc/man/man3/PKCS12_SAFEBAG_create_cert.3", "doc/man/man3/PKCS12_SAFEBAG_get0_attrs.3", "doc/man/man3/PKCS12_SAFEBAG_get1_cert.3", + "doc/man/man3/PKCS12_SAFEBAG_set0_attrs.3", "doc/man/man3/PKCS12_add1_attr_by_NID.3", "doc/man/man3/PKCS12_add_CSPName_asc.3", "doc/man/man3/PKCS12_add_cert.3", @@ -19817,6 +23075,7 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_sess_set_get_cb.3", "doc/man/man3/SSL_CTX_sessions.3", "doc/man/man3/SSL_CTX_set0_CA_list.3", + "doc/man/man3/SSL_CTX_set1_cert_comp_preference.3", "doc/man/man3/SSL_CTX_set1_curves.3", "doc/man/man3/SSL_CTX_set1_sigalgs.3", "doc/man/man3/SSL_CTX_set1_verify_cert_store.3", @@ -19830,6 +23089,7 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_ct_validation_callback.3", "doc/man/man3/SSL_CTX_set_ctlog_list_file.3", "doc/man/man3/SSL_CTX_set_default_passwd_cb.3", + "doc/man/man3/SSL_CTX_set_domain_flags.3", "doc/man/man3/SSL_CTX_set_generate_session_id.3", "doc/man/man3/SSL_CTX_set_info_callback.3", "doc/man/man3/SSL_CTX_set_keylog_callback.3", @@ -19837,6 +23097,7 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_min_proto_version.3", "doc/man/man3/SSL_CTX_set_mode.3", "doc/man/man3/SSL_CTX_set_msg_callback.3", + "doc/man/man3/SSL_CTX_set_new_pending_conn_cb.3", "doc/man/man3/SSL_CTX_set_num_tickets.3", "doc/man/man3/SSL_CTX_set_options.3", "doc/man/man3/SSL_CTX_set_psk_client_callback.3", @@ -19875,6 +23136,7 @@ our %unified_info = ( "doc/man/man3/SSL_SESSION_print.3", "doc/man/man3/SSL_SESSION_set1_id.3", "doc/man/man3/SSL_accept.3", + "doc/man/man3/SSL_accept_stream.3", "doc/man/man3/SSL_alert_type_string.3", "doc/man/man3/SSL_alloc_buffers.3", "doc/man/man3/SSL_check_chain.3", @@ -19884,59 +23146,90 @@ our %unified_info = ( "doc/man/man3/SSL_export_keying_material.3", "doc/man/man3/SSL_extension_supported.3", "doc/man/man3/SSL_free.3", + "doc/man/man3/SSL_get0_connection.3", + "doc/man/man3/SSL_get0_group_name.3", + "doc/man/man3/SSL_get0_peer_rpk.3", "doc/man/man3/SSL_get0_peer_scts.3", + "doc/man/man3/SSL_get1_builtin_sigalgs.3", "doc/man/man3/SSL_get_SSL_CTX.3", "doc/man/man3/SSL_get_all_async_fds.3", "doc/man/man3/SSL_get_certificate.3", "doc/man/man3/SSL_get_ciphers.3", "doc/man/man3/SSL_get_client_random.3", + "doc/man/man3/SSL_get_conn_close_info.3", "doc/man/man3/SSL_get_current_cipher.3", "doc/man/man3/SSL_get_default_timeout.3", "doc/man/man3/SSL_get_error.3", + "doc/man/man3/SSL_get_event_timeout.3", "doc/man/man3/SSL_get_extms_support.3", "doc/man/man3/SSL_get_fd.3", + "doc/man/man3/SSL_get_handshake_rtt.3", "doc/man/man3/SSL_get_peer_cert_chain.3", "doc/man/man3/SSL_get_peer_certificate.3", "doc/man/man3/SSL_get_peer_signature_nid.3", "doc/man/man3/SSL_get_peer_tmp_key.3", "doc/man/man3/SSL_get_psk_identity.3", "doc/man/man3/SSL_get_rbio.3", + "doc/man/man3/SSL_get_rpoll_descriptor.3", "doc/man/man3/SSL_get_session.3", "doc/man/man3/SSL_get_shared_sigalgs.3", + "doc/man/man3/SSL_get_stream_id.3", + "doc/man/man3/SSL_get_stream_read_state.3", + "doc/man/man3/SSL_get_value_uint.3", "doc/man/man3/SSL_get_verify_result.3", "doc/man/man3/SSL_get_version.3", "doc/man/man3/SSL_group_to_name.3", + "doc/man/man3/SSL_handle_events.3", "doc/man/man3/SSL_in_init.3", + "doc/man/man3/SSL_inject_net_dgram.3", "doc/man/man3/SSL_key_update.3", "doc/man/man3/SSL_library_init.3", "doc/man/man3/SSL_load_client_CA_file.3", "doc/man/man3/SSL_new.3", + "doc/man/man3/SSL_new_domain.3", + "doc/man/man3/SSL_new_listener.3", + "doc/man/man3/SSL_new_stream.3", "doc/man/man3/SSL_pending.3", + "doc/man/man3/SSL_poll.3", "doc/man/man3/SSL_read.3", "doc/man/man3/SSL_read_early_data.3", "doc/man/man3/SSL_rstate_string.3", "doc/man/man3/SSL_session_reused.3", "doc/man/man3/SSL_set1_host.3", + "doc/man/man3/SSL_set1_initial_peer_addr.3", + "doc/man/man3/SSL_set1_server_cert_type.3", "doc/man/man3/SSL_set_async_callback.3", "doc/man/man3/SSL_set_bio.3", + "doc/man/man3/SSL_set_blocking_mode.3", "doc/man/man3/SSL_set_connect_state.3", + "doc/man/man3/SSL_set_default_stream_mode.3", "doc/man/man3/SSL_set_fd.3", + "doc/man/man3/SSL_set_incoming_stream_policy.3", + "doc/man/man3/SSL_set_quic_tls_cbs.3", "doc/man/man3/SSL_set_retry_verify.3", "doc/man/man3/SSL_set_session.3", + "doc/man/man3/SSL_set_session_secret_cb.3", "doc/man/man3/SSL_set_shutdown.3", "doc/man/man3/SSL_set_verify_result.3", "doc/man/man3/SSL_shutdown.3", "doc/man/man3/SSL_state_string.3", + "doc/man/man3/SSL_stream_conclude.3", + "doc/man/man3/SSL_stream_reset.3", "doc/man/man3/SSL_want.3", "doc/man/man3/SSL_write.3", "doc/man/man3/TS_RESP_CTX_new.3", - "doc/man/man3/TS_VERIFY_CTX_set_certs.3", + "doc/man/man3/TS_VERIFY_CTX.3", "doc/man/man3/UI_STRING.3", "doc/man/man3/UI_UTIL_read_pw.3", "doc/man/man3/UI_create_method.3", "doc/man/man3/UI_new.3", "doc/man/man3/X509V3_get_d2i.3", "doc/man/man3/X509V3_set_ctx.3", + "doc/man/man3/X509_ACERT_add1_attr.3", + "doc/man/man3/X509_ACERT_add_attr_nconf.3", + "doc/man/man3/X509_ACERT_get0_holder_baseCertId.3", + "doc/man/man3/X509_ACERT_get_attr.3", + "doc/man/man3/X509_ACERT_print_ex.3", "doc/man/man3/X509_ALGOR_dup.3", "doc/man/man3/X509_ATTRIBUTE.3", "doc/man/man3/X509_CRL_get0_by_serial.3", @@ -19953,6 +23246,7 @@ our %unified_info = ( "doc/man/man3/X509_REQ_get_attr.3", "doc/man/man3/X509_REQ_get_extensions.3", "doc/man/man3/X509_SIG_get0.3", + "doc/man/man3/X509_STORE_CTX_get_by_subject.3", "doc/man/man3/X509_STORE_CTX_get_error.3", "doc/man/man3/X509_STORE_CTX_new.3", "doc/man/man3/X509_STORE_CTX_set_verify_cb.3", @@ -19975,6 +23269,7 @@ our %unified_info = ( "doc/man/man3/X509_get0_notBefore.3", "doc/man/man3/X509_get0_signature.3", "doc/man/man3/X509_get0_uids.3", + "doc/man/man3/X509_get_default_cert_file.3", "doc/man/man3/X509_get_extension_flags.3", "doc/man/man3/X509_get_pubkey.3", "doc/man/man3/X509_get_serialNumber.3", @@ -20020,12 +23315,15 @@ our %unified_info = ( "doc/man/man7/EVP_CIPHER-RC5.7", "doc/man/man7/EVP_CIPHER-SEED.7", "doc/man/man7/EVP_CIPHER-SM4.7", + "doc/man/man7/EVP_KDF-ARGON2.7", "doc/man/man7/EVP_KDF-HKDF.7", + "doc/man/man7/EVP_KDF-HMAC-DRBG.7", "doc/man/man7/EVP_KDF-KB.7", "doc/man/man7/EVP_KDF-KRB5KDF.7", "doc/man/man7/EVP_KDF-PBKDF1.7", "doc/man/man7/EVP_KDF-PBKDF2.7", "doc/man/man7/EVP_KDF-PKCS12KDF.7", + "doc/man/man7/EVP_KDF-PVKKDF.7", "doc/man/man7/EVP_KDF-SCRYPT.7", "doc/man/man7/EVP_KDF-SS.7", "doc/man/man7/EVP_KDF-SSHKDF.7", @@ -20034,7 +23332,10 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-X942-ASN1.7", "doc/man/man7/EVP_KDF-X942-CONCAT.7", "doc/man/man7/EVP_KDF-X963.7", + "doc/man/man7/EVP_KEM-EC.7", + "doc/man/man7/EVP_KEM-ML-KEM.7", "doc/man/man7/EVP_KEM-RSA.7", + "doc/man/man7/EVP_KEM-X25519.7", "doc/man/man7/EVP_KEYEXCH-DH.7", "doc/man/man7/EVP_KEYEXCH-ECDH.7", "doc/man/man7/EVP_KEYEXCH-X25519.7", @@ -20046,6 +23347,7 @@ our %unified_info = ( "doc/man/man7/EVP_MAC-Poly1305.7", "doc/man/man7/EVP_MAC-Siphash.7", "doc/man/man7/EVP_MD-BLAKE2.7", + "doc/man/man7/EVP_MD-KECCAK.7", "doc/man/man7/EVP_MD-MD2.7", "doc/man/man7/EVP_MD-MD4.7", "doc/man/man7/EVP_MD-MD5-SHA1.7", @@ -20065,12 +23367,17 @@ our %unified_info = ( "doc/man/man7/EVP_PKEY-EC.7", "doc/man/man7/EVP_PKEY-FFC.7", "doc/man/man7/EVP_PKEY-HMAC.7", + "doc/man/man7/EVP_PKEY-ML-DSA.7", + "doc/man/man7/EVP_PKEY-ML-KEM.7", "doc/man/man7/EVP_PKEY-RSA.7", + "doc/man/man7/EVP_PKEY-SLH-DSA.7", "doc/man/man7/EVP_PKEY-SM2.7", "doc/man/man7/EVP_PKEY-X25519.7", + "doc/man/man7/EVP_RAND-CRNG-TEST.7", "doc/man/man7/EVP_RAND-CTR-DRBG.7", "doc/man/man7/EVP_RAND-HASH-DRBG.7", "doc/man/man7/EVP_RAND-HMAC-DRBG.7", + "doc/man/man7/EVP_RAND-JITTER.7", "doc/man/man7/EVP_RAND-SEED-SRC.7", "doc/man/man7/EVP_RAND-TEST-RAND.7", "doc/man/man7/EVP_RAND.7", @@ -20078,17 +23385,19 @@ our %unified_info = ( "doc/man/man7/EVP_SIGNATURE-ECDSA.7", "doc/man/man7/EVP_SIGNATURE-ED25519.7", "doc/man/man7/EVP_SIGNATURE-HMAC.7", + "doc/man/man7/EVP_SIGNATURE-ML-DSA.7", "doc/man/man7/EVP_SIGNATURE-RSA.7", + "doc/man/man7/EVP_SIGNATURE-SLH-DSA.7", "doc/man/man7/OSSL_PROVIDER-FIPS.7", "doc/man/man7/OSSL_PROVIDER-base.7", "doc/man/man7/OSSL_PROVIDER-default.7", "doc/man/man7/OSSL_PROVIDER-legacy.7", "doc/man/man7/OSSL_PROVIDER-null.7", + "doc/man/man7/OSSL_STORE-winstore.7", "doc/man/man7/RAND.7", "doc/man/man7/RSA-PSS.7", "doc/man/man7/X25519.7", "doc/man/man7/bio.7", - "doc/man/man7/crypto.7", "doc/man/man7/ct.7", "doc/man/man7/des_modes.7", "doc/man/man7/evp.7", @@ -20099,14 +23408,31 @@ our %unified_info = ( "doc/man/man7/life_cycle-mac.7", "doc/man/man7/life_cycle-pkey.7", "doc/man/man7/life_cycle-rand.7", - "doc/man/man7/migration_guide.7", "doc/man/man7/openssl-core.h.7", "doc/man/man7/openssl-core_dispatch.h.7", "doc/man/man7/openssl-core_names.h.7", "doc/man/man7/openssl-env.7", "doc/man/man7/openssl-glossary.7", + "doc/man/man7/openssl-qlog.7", + "doc/man/man7/openssl-quic-concurrency.7", + "doc/man/man7/openssl-quic.7", "doc/man/man7/openssl-threads.7", "doc/man/man7/openssl_user_macros.7", + "doc/man/man7/ossl-guide-introduction.7", + "doc/man/man7/ossl-guide-libcrypto-introduction.7", + "doc/man/man7/ossl-guide-libraries-introduction.7", + "doc/man/man7/ossl-guide-libssl-introduction.7", + "doc/man/man7/ossl-guide-migration.7", + "doc/man/man7/ossl-guide-quic-client-block.7", + "doc/man/man7/ossl-guide-quic-client-non-block.7", + "doc/man/man7/ossl-guide-quic-introduction.7", + "doc/man/man7/ossl-guide-quic-multi-stream.7", + "doc/man/man7/ossl-guide-quic-server-block.7", + "doc/man/man7/ossl-guide-quic-server-non-block.7", + "doc/man/man7/ossl-guide-tls-client-block.7", + "doc/man/man7/ossl-guide-tls-client-non-block.7", + "doc/man/man7/ossl-guide-tls-introduction.7", + "doc/man/man7/ossl-guide-tls-server-block.7", "doc/man/man7/ossl_store-file.7", "doc/man/man7/ossl_store.7", "doc/man/man7/passphrase-encoding.7", @@ -20125,10 +23451,10 @@ our %unified_info = ( "doc/man/man7/provider-object.7", "doc/man/man7/provider-rand.7", "doc/man/man7/provider-signature.7", + "doc/man/man7/provider-skeymgmt.7", "doc/man/man7/provider-storemgmt.7", "doc/man/man7/provider.7", "doc/man/man7/proxy-certificates.7", - "doc/man/man7/ssl.7", "doc/man/man7/x509.7" ] }, @@ -20140,6 +23466,7 @@ our %unified_info = ( ], "programs" => [ "apps/openssl", + "fuzz/acert-test", "fuzz/asn1-test", "fuzz/asn1parse-test", "fuzz/bignum-test", @@ -20150,7 +23477,24 @@ our %unified_info = ( "fuzz/conf-test", "fuzz/crl-test", "fuzz/ct-test", + "fuzz/decoder-test", + "fuzz/dtlsclient-test", + "fuzz/dtlsserver-test", + "fuzz/hashtable-test", + "fuzz/ml-dsa-test", + "fuzz/ml-kem-test", + "fuzz/pem-test", + "fuzz/provider-test", + "fuzz/punycode-test", + "fuzz/quic-client-test", + "fuzz/quic-lcidm-test", + "fuzz/quic-rcidm-test", + "fuzz/quic-server-test", + "fuzz/quic-srtm-test", "fuzz/server-test", + "fuzz/slh-dsa-test", + "fuzz/smime-test", + "fuzz/v3name-test", "fuzz/x509-test", "test/aborttest", "test/acvp_test", @@ -20168,21 +23512,28 @@ our %unified_info = ( "test/asynctest", "test/bad_dtls_test", "test/bftest", + "test/bio_addr_test", + "test/bio_base64_test", "test/bio_callback_test", "test/bio_core_test", + "test/bio_dgram_test", "test/bio_enc_test", "test/bio_memleak_test", + "test/bio_meth_test", "test/bio_prefix_text", "test/bio_pw_callback_test", "test/bio_readbuffer_test", + "test/bio_tfo_test", "test/bioprinttest", "test/bn_internal_test", "test/bntest", + "test/build_wincrypt_test", "test/buildtest_c_aes", "test/buildtest_c_async", "test/buildtest_c_blowfish", "test/buildtest_c_bn", "test/buildtest_c_buffer", + "test/buildtest_c_byteorder", "test/buildtest_c_camellia", "test/buildtest_c_cast", "test/buildtest_c_cmac", @@ -20191,7 +23542,6 @@ our %unified_info = ( "test/buildtest_c_conftypes", "test/buildtest_c_core", "test/buildtest_c_core_dispatch", - "test/buildtest_c_core_names", "test/buildtest_c_core_object", "test/buildtest_c_cryptoerr_legacy", "test/buildtest_c_decoder", @@ -20200,6 +23550,7 @@ our %unified_info = ( "test/buildtest_c_dsa", "test/buildtest_c_dtls1", "test/buildtest_c_e_os2", + "test/buildtest_c_e_ostime", "test/buildtest_c_ebcdic", "test/buildtest_c_ec", "test/buildtest_c_ecdh", @@ -20209,13 +23560,16 @@ our %unified_info = ( "test/buildtest_c_evp", "test/buildtest_c_fips_names", "test/buildtest_c_hmac", + "test/buildtest_c_hpke", "test/buildtest_c_http", "test/buildtest_c_idea", + "test/buildtest_c_indicator", "test/buildtest_c_kdf", "test/buildtest_c_macros", "test/buildtest_c_md4", "test/buildtest_c_md5", "test/buildtest_c_mdc2", + "test/buildtest_c_ml_kem", "test/buildtest_c_modes", "test/buildtest_c_obj_mac", "test/buildtest_c_objects", @@ -20226,6 +23580,7 @@ our %unified_info = ( "test/buildtest_c_pem2", "test/buildtest_c_prov_ssl", "test/buildtest_c_provider", + "test/buildtest_c_quic", "test/buildtest_c_rand", "test/buildtest_c_rc2", "test/buildtest_c_rc4", @@ -20240,11 +23595,14 @@ our %unified_info = ( "test/buildtest_c_stack", "test/buildtest_c_store", "test/buildtest_c_symhacks", + "test/buildtest_c_thread", "test/buildtest_c_tls1", "test/buildtest_c_ts", "test/buildtest_c_txt_db", "test/buildtest_c_types", "test/buildtest_c_whrlpool", + "test/byteorder_test", + "test/ca_internals_test", "test/casttest", "test/chacha_internal_test", "test/cipher_overhead_test", @@ -20273,6 +23631,7 @@ our %unified_info = ( "test/curve448_internal_test", "test/d2i_test", "test/danetest", + "test/decoder_propq_test", "test/defltfips_test", "test/destest", "test/dhtest", @@ -20297,9 +23656,12 @@ our %unified_info = ( "test/evp_kdf_test", "test/evp_libctx_test", "test/evp_pkey_ctx_new_from_name", + "test/evp_pkey_dhkem_test", "test/evp_pkey_dparams_test", "test/evp_pkey_provided_test", + "test/evp_skey_test", "test/evp_test", + "test/evp_xof_test", "test/exdatatest", "test/exptest", "test/ext_internal_test", @@ -20309,21 +23671,29 @@ our %unified_info = ( "test/gmdifftest", "test/hexstr_test", "test/hmactest", + "test/hpke_test", "test/http_test", "test/ideatest", "test/igetest", + "test/json_test", "test/keymgmt_internal_test", "test/lhash_test", + "test/list_test", "test/localetest", "test/mdc2_internal_test", "test/mdc2test", + "test/membio_test", "test/memleaktest", + "test/ml_dsa_test", + "test/ml_kem_evp_extra_test", + "test/ml_kem_internal_test", "test/modes_internal_test", "test/namemap_internal_test", "test/nodefltctxtest", "test/ocspapitest", "test/ossl_store_test", "test/packettest", + "test/pairwise_fail_test", "test/param_build_test", "test/params_api_test", "test/params_conversion_test", @@ -20332,36 +23702,65 @@ our %unified_info = ( "test/pbetest", "test/pem_read_depr_test", "test/pemtest", + "test/pkcs12_api_test", "test/pkcs12_format_test", "test/pkcs7_test", "test/pkey_meth_kdf_test", "test/pkey_meth_test", "test/poly1305_internal_test", + "test/priority_queue_test", "test/property_test", "test/prov_config_test", "test/provfetchtest", + "test/provider_default_search_path_test", "test/provider_fallback_test", "test/provider_internal_test", "test/provider_pkey_test", "test/provider_status_test", "test/provider_test", "test/punycode_test", + "test/quic_ackm_test", + "test/quic_cc_test", + "test/quic_cfq_test", + "test/quic_client_test", + "test/quic_fc_test", + "test/quic_fifd_test", + "test/quic_lcidm_test", + "test/quic_multistream_test", + "test/quic_newcid_test", + "test/quic_qlog_test", + "test/quic_radix_test", + "test/quic_rcidm_test", + "test/quic_record_test", + "test/quic_srt_gen_test", + "test/quic_srtm_test", + "test/quic_stream_test", + "test/quic_tserver_test", + "test/quic_txp_test", + "test/quic_txpim_test", + "test/quic_wire_test", + "test/quicapitest", + "test/quicfaultstest", "test/rand_status_test", "test/rand_test", "test/rc2test", "test/rc4test", "test/rc5test", - "test/rdrand_sanitytest", + "test/rdcpu_sanitytest", "test/recordlentest", + "test/rpktest", "test/rsa_complex", "test/rsa_mp_test", "test/rsa_sp800_56b_test", "test/rsa_test", + "test/rsa_x931_test", + "test/safe_math_test", "test/sanitytest", "test/secmemtest", "test/servername_test", "test/sha_test", "test/siphash_internal_test", + "test/slh_dsa_test", "test/sm2_internal_test", "test/sm3_internal_test", "test/sm4_internal_test", @@ -20369,6 +23768,7 @@ our %unified_info = ( "test/srptest", "test/ssl_cert_table_internal_test", "test/ssl_ctx_test", + "test/ssl_handshake_rtt_test", "test/ssl_old_test", "test/ssl_test", "test/ssl_test_ctx_test", @@ -20376,13 +23776,17 @@ our %unified_info = ( "test/sslbuffertest", "test/sslcorrupttest", "test/stack_test", + "test/strtoultest", "test/sysdefaulttest", "test/test_test", + "test/threadpool_test", "test/threadstest", "test/threadstest_fips", "test/time_offset_test", + "test/time_test", "test/tls13ccstest", "test/tls13encryptiontest", + "test/tls13groupselection_test", "test/trace_api_test", "test/uitest", "test/upcallstest", @@ -20392,9 +23796,13 @@ our %unified_info = ( "test/verify_extra_test", "test/versions", "test/wpackettest", + "test/x509_acert_test", "test/x509_check_cert_pkey_test", "test/x509_dup_cert_test", "test/x509_internal_test", + "test/x509_load_cert_file_test", + "test/x509_req_test", + "test/x509_test", "test/x509_time_test", "test/x509aux" ], @@ -20410,6 +23818,33 @@ our %unified_info = ( "apps/CA.pl" => [ "apps/CA.pl.in" ], + "apps/ca_internals_test-bin-ca.o" => [ + "apps/ca.c" + ], + "apps/lib/ca_internals_test-bin-app_libctx.o" => [ + "apps/lib/app_libctx.c" + ], + "apps/lib/ca_internals_test-bin-app_provider.o" => [ + "apps/lib/app_provider.c" + ], + "apps/lib/ca_internals_test-bin-app_rand.o" => [ + "apps/lib/app_rand.c" + ], + "apps/lib/ca_internals_test-bin-app_x509.o" => [ + "apps/lib/app_x509.c" + ], + "apps/lib/ca_internals_test-bin-apps.o" => [ + "apps/lib/apps.c" + ], + "apps/lib/ca_internals_test-bin-apps_ui.o" => [ + "apps/lib/apps_ui.c" + ], + "apps/lib/ca_internals_test-bin-engine.o" => [ + "apps/lib/engine.c" + ], + "apps/lib/ca_internals_test-bin-fmt.o" => [ + "apps/lib/fmt.c" + ], "apps/lib/cmp_client_test-bin-cmp_mock_srv.o" => [ "apps/lib/cmp_mock_srv.c" ], @@ -20431,6 +23866,9 @@ our %unified_info = ( "apps/lib/libapps-lib-apps.o" => [ "apps/lib/apps.c" ], + "apps/lib/libapps-lib-apps_opt_printf.o" => [ + "apps/lib/apps_opt_printf.c" + ], "apps/lib/libapps-lib-apps_ui.o" => [ "apps/lib/apps_ui.c" ], @@ -20449,6 +23887,9 @@ our %unified_info = ( "apps/lib/libapps-lib-http_server.o" => [ "apps/lib/http_server.c" ], + "apps/lib/libapps-lib-log.o" => [ + "apps/lib/log.c" + ], "apps/lib/libapps-lib-names.o" => [ "apps/lib/names.c" ], @@ -20480,12 +23921,14 @@ our %unified_info = ( "apps/lib/libapps-lib-app_rand.o", "apps/lib/libapps-lib-app_x509.o", "apps/lib/libapps-lib-apps.o", + "apps/lib/libapps-lib-apps_opt_printf.o", "apps/lib/libapps-lib-apps_ui.o", "apps/lib/libapps-lib-columns.o", "apps/lib/libapps-lib-engine.o", "apps/lib/libapps-lib-engine_loader.o", "apps/lib/libapps-lib-fmt.o", "apps/lib/libapps-lib-http_server.o", + "apps/lib/libapps-lib-log.o", "apps/lib/libapps-lib-names.o", "apps/lib/libapps-lib-opt.o", "apps/lib/libapps-lib-s_cb.o", @@ -20539,6 +23982,7 @@ our %unified_info = ( "apps/openssl-bin-s_server.o", "apps/openssl-bin-s_time.o", "apps/openssl-bin-sess_id.o", + "apps/openssl-bin-skeyutl.o", "apps/openssl-bin-smime.o", "apps/openssl-bin-speed.o", "apps/openssl-bin-spkac.o", @@ -20684,6 +24128,9 @@ our %unified_info = ( "apps/openssl-bin-sess_id.o" => [ "apps/sess_id.c" ], + "apps/openssl-bin-skeyutl.o" => [ + "apps/skeyutl.c" + ], "apps/openssl-bin-smime.o" => [ "apps/smime.c" ], @@ -20759,6 +24206,12 @@ our %unified_info = ( "crypto/aria/libcrypto-lib-aria.o" => [ "crypto/aria/aria.c" ], + "crypto/asn1/asn1_time_test-bin-a_time.o" => [ + "crypto/asn1/a_time.c" + ], + "crypto/asn1/ca_internals_test-bin-a_time.o" => [ + "crypto/asn1/a_time.c" + ], "crypto/asn1/libcrypto-lib-a_bitstr.o" => [ "crypto/asn1/a_bitstr.c" ], @@ -20951,6 +24404,9 @@ our %unified_info = ( "crypto/asn1/libcrypto-lib-x_val.o" => [ "crypto/asn1/x_val.c" ], + "crypto/asn1_time_test-bin-ctype.o" => [ + "crypto/ctype.c" + ], "crypto/async/arch/libcrypto-lib-async_null.o" => [ "crypto/async/arch/async_null.c" ], @@ -21044,6 +24500,9 @@ our %unified_info = ( "crypto/bio/libcrypto-lib-bss_dgram.o" => [ "crypto/bio/bss_dgram.c" ], + "crypto/bio/libcrypto-lib-bss_dgram_pair.o" => [ + "crypto/bio/bss_dgram_pair.c" + ], "crypto/bio/libcrypto-lib-bss_fd.o" => [ "crypto/bio/bss_fd.c" ], @@ -21275,6 +24734,9 @@ our %unified_info = ( "crypto/buffer/libfips-lib-buffer.o" => [ "crypto/buffer/buffer.c" ], + "crypto/ca_internals_test-bin-ctype.o" => [ + "crypto/ctype.c" + ], "crypto/camellia/libcrypto-lib-cmll-x86.o" => [ "crypto/camellia/cmll-x86.S" ], @@ -21326,6 +24788,9 @@ our %unified_info = ( "crypto/cmp/libcrypto-lib-cmp_err.o" => [ "crypto/cmp/cmp_err.c" ], + "crypto/cmp/libcrypto-lib-cmp_genm.o" => [ + "crypto/cmp/cmp_genm.c" + ], "crypto/cmp/libcrypto-lib-cmp_hdr.o" => [ "crypto/cmp/cmp_hdr.c" ], @@ -22013,9 +25478,15 @@ our %unified_info = ( "crypto/err/libcrypto-lib-err_blocks.o" => [ "crypto/err/err_blocks.c" ], + "crypto/err/libcrypto-lib-err_mark.o" => [ + "crypto/err/err_mark.c" + ], "crypto/err/libcrypto-lib-err_prn.o" => [ "crypto/err/err_prn.c" ], + "crypto/err/libcrypto-lib-err_save.o" => [ + "crypto/err/err_save.c" + ], "crypto/ess/libcrypto-lib-ess_asn1.o" => [ "crypto/ess/ess_asn1.c" ], @@ -22262,9 +25733,15 @@ our %unified_info = ( "crypto/evp/libcrypto-lib-pmeth_lib.o" => [ "crypto/evp/pmeth_lib.c" ], + "crypto/evp/libcrypto-lib-s_lib.o" => [ + "crypto/evp/s_lib.c" + ], "crypto/evp/libcrypto-lib-signature.o" => [ "crypto/evp/signature.c" ], + "crypto/evp/libcrypto-lib-skeymgmt_meth.o" => [ + "crypto/evp/skeymgmt_meth.c" + ], "crypto/evp/libfips-lib-asymcipher.o" => [ "crypto/evp/asymcipher.c" ], @@ -22310,9 +25787,6 @@ our %unified_info = ( "crypto/evp/libfips-lib-keymgmt_meth.o" => [ "crypto/evp/keymgmt_meth.c" ], - "crypto/evp/libfips-lib-m_sigver.o" => [ - "crypto/evp/m_sigver.c" - ], "crypto/evp/libfips-lib-mac_lib.o" => [ "crypto/evp/mac_lib.c" ], @@ -22331,9 +25805,15 @@ our %unified_info = ( "crypto/evp/libfips-lib-pmeth_lib.o" => [ "crypto/evp/pmeth_lib.c" ], + "crypto/evp/libfips-lib-s_lib.o" => [ + "crypto/evp/s_lib.c" + ], "crypto/evp/libfips-lib-signature.o" => [ "crypto/evp/signature.c" ], + "crypto/evp/libfips-lib-skeymgmt_meth.o" => [ + "crypto/evp/skeymgmt_meth.c" + ], "crypto/ffc/libcrypto-lib-ffc_backend.o" => [ "crypto/ffc/ffc_backend.c" ], @@ -22376,12 +25856,30 @@ our %unified_info = ( "crypto/ffc/libfips-lib-ffc_params_validate.o" => [ "crypto/ffc/ffc_params_validate.c" ], + "crypto/hashtable/libcrypto-lib-hashfunc.o" => [ + "crypto/hashtable/hashfunc.c" + ], + "crypto/hashtable/libcrypto-lib-hashtable.o" => [ + "crypto/hashtable/hashtable.c" + ], + "crypto/hashtable/libfips-lib-hashfunc.o" => [ + "crypto/hashtable/hashfunc.c" + ], + "crypto/hashtable/libfips-lib-hashtable.o" => [ + "crypto/hashtable/hashtable.c" + ], "crypto/hmac/libcrypto-lib-hmac.o" => [ "crypto/hmac/hmac.c" ], "crypto/hmac/libfips-lib-hmac.o" => [ "crypto/hmac/hmac.c" ], + "crypto/hpke/libcrypto-lib-hpke.o" => [ + "crypto/hpke/hpke.c" + ], + "crypto/hpke/libcrypto-lib-hpke_util.o" => [ + "crypto/hpke/hpke_util.c" + ], "crypto/http/libcrypto-lib-http_client.o" => [ "crypto/http/http_client.c" ], @@ -22424,6 +25922,9 @@ our %unified_info = ( "crypto/libcrypto-lib-bsearch.o" => [ "crypto/bsearch.c" ], + "crypto/libcrypto-lib-comp_methods.o" => [ + "crypto/comp_methods.c" + ], "crypto/libcrypto-lib-context.o" => [ "crypto/context.c" ], @@ -22451,9 +25952,15 @@ our %unified_info = ( "crypto/libcrypto-lib-cversion.o" => [ "crypto/cversion.c" ], + "crypto/libcrypto-lib-defaults.o" => [ + "crypto/defaults.c" + ], "crypto/libcrypto-lib-der_writer.o" => [ "crypto/der_writer.c" ], + "crypto/libcrypto-lib-deterministic_nonce.o" => [ + "crypto/deterministic_nonce.c" + ], "crypto/libcrypto-lib-ebcdic.o" => [ "crypto/ebcdic.c" ], @@ -22463,6 +25970,9 @@ our %unified_info = ( "crypto/libcrypto-lib-getenv.o" => [ "crypto/getenv.c" ], + "crypto/libcrypto-lib-indicator_core.o" => [ + "crypto/indicator_core.c" + ], "crypto/libcrypto-lib-info.o" => [ "crypto/info.c" ], @@ -22511,6 +26021,9 @@ our %unified_info = ( "crypto/libcrypto-lib-params_from_text.o" => [ "crypto/params_from_text.c" ], + "crypto/libcrypto-lib-params_idx.o" => [ + "crypto/params_idx.c" + ], "crypto/libcrypto-lib-passphrase.o" => [ "crypto/passphrase.c" ], @@ -22532,12 +26045,21 @@ our %unified_info = ( "crypto/libcrypto-lib-punycode.o" => [ "crypto/punycode.c" ], + "crypto/libcrypto-lib-quic_vlint.o" => [ + "crypto/quic_vlint.c" + ], "crypto/libcrypto-lib-self_test_core.o" => [ "crypto/self_test_core.c" ], + "crypto/libcrypto-lib-sleep.o" => [ + "crypto/sleep.c" + ], "crypto/libcrypto-lib-sparse_array.o" => [ "crypto/sparse_array.c" ], + "crypto/libcrypto-lib-ssl_err.o" => [ + "crypto/ssl_err.c" + ], "crypto/libcrypto-lib-threads_lib.o" => [ "crypto/threads_lib.c" ], @@ -22550,6 +26072,9 @@ our %unified_info = ( "crypto/libcrypto-lib-threads_win.o" => [ "crypto/threads_win.c" ], + "crypto/libcrypto-lib-time.o" => [ + "crypto/time.c" + ], "crypto/libcrypto-lib-trace.o" => [ "crypto/trace.c" ], @@ -22616,6 +26141,9 @@ our %unified_info = ( "crypto/libfips-lib-params_from_text.o" => [ "crypto/params_from_text.c" ], + "crypto/libfips-lib-params_idx.o" => [ + "crypto/params_idx.c" + ], "crypto/libfips-lib-provider_core.o" => [ "crypto/provider_core.c" ], @@ -22640,6 +26168,9 @@ our %unified_info = ( "crypto/libfips-lib-threads_win.o" => [ "crypto/threads_win.c" ], + "crypto/libfips-lib-time.o" => [ + "crypto/time.c" + ], "crypto/libfips-lib-x86cpuid.o" => [ "crypto/x86cpuid.S" ], @@ -22667,6 +26198,60 @@ our %unified_info = ( "crypto/mdc2/libcrypto-lib-mdc2dgst.o" => [ "crypto/mdc2/mdc2dgst.c" ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_encoders.o" => [ + "crypto/ml_dsa/ml_dsa_encoders.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key.o" => [ + "crypto/ml_dsa/ml_dsa_key.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key_compress.o" => [ + "crypto/ml_dsa/ml_dsa_key_compress.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_matrix.o" => [ + "crypto/ml_dsa/ml_dsa_matrix.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_ntt.o" => [ + "crypto/ml_dsa/ml_dsa_ntt.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_params.o" => [ + "crypto/ml_dsa/ml_dsa_params.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sample.o" => [ + "crypto/ml_dsa/ml_dsa_sample.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sign.o" => [ + "crypto/ml_dsa/ml_dsa_sign.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_encoders.o" => [ + "crypto/ml_dsa/ml_dsa_encoders.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_key.o" => [ + "crypto/ml_dsa/ml_dsa_key.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_key_compress.o" => [ + "crypto/ml_dsa/ml_dsa_key_compress.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_matrix.o" => [ + "crypto/ml_dsa/ml_dsa_matrix.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_ntt.o" => [ + "crypto/ml_dsa/ml_dsa_ntt.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_params.o" => [ + "crypto/ml_dsa/ml_dsa_params.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_sample.o" => [ + "crypto/ml_dsa/ml_dsa_sample.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_sign.o" => [ + "crypto/ml_dsa/ml_dsa_sign.c" + ], + "crypto/ml_kem/libcrypto-lib-ml_kem.o" => [ + "crypto/ml_kem/ml_kem.c" + ], + "crypto/ml_kem/libfips-lib-ml_kem.o" => [ + "crypto/ml_kem/ml_kem.c" + ], "crypto/modes/libcrypto-lib-cbc128.o" => [ "crypto/modes/cbc128.c" ], @@ -22703,6 +26288,9 @@ our %unified_info = ( "crypto/modes/libcrypto-lib-xts128.o" => [ "crypto/modes/xts128.c" ], + "crypto/modes/libcrypto-lib-xts128gb.o" => [ + "crypto/modes/xts128gb.c" + ], "crypto/modes/libfips-lib-cbc128.o" => [ "crypto/modes/cbc128.c" ], @@ -22730,6 +26318,9 @@ our %unified_info = ( "crypto/modes/libfips-lib-xts128.o" => [ "crypto/modes/xts128.c" ], + "crypto/modes/libfips-lib-xts128gb.o" => [ + "crypto/modes/xts128gb.c" + ], "crypto/objects/libcrypto-lib-o_names.o" => [ "crypto/objects/o_names.c" ], @@ -22775,6 +26366,9 @@ our %unified_info = ( "crypto/ocsp/libcrypto-lib-v3_ocsp.o" => [ "crypto/ocsp/v3_ocsp.c" ], + "crypto/packettest-bin-quic_vlint.o" => [ + "crypto/quic_vlint.c" + ], "crypto/pem/libcrypto-lib-pem_all.o" => [ "crypto/pem/pem_all.c" ], @@ -22937,6 +26531,9 @@ our %unified_info = ( "crypto/rand/libcrypto-lib-rand_pool.o" => [ "crypto/rand/rand_pool.c" ], + "crypto/rand/libcrypto-lib-rand_uniform.o" => [ + "crypto/rand/rand_uniform.c" + ], "crypto/rand/libcrypto-lib-randfile.o" => [ "crypto/rand/randfile.c" ], @@ -23168,6 +26765,66 @@ our %unified_info = ( "crypto/siphash/libcrypto-lib-siphash.o" => [ "crypto/siphash/siphash.c" ], + "crypto/slh_dsa/libcrypto-lib-slh_adrs.o" => [ + "crypto/slh_dsa/slh_adrs.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_dsa.o" => [ + "crypto/slh_dsa/slh_dsa.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_dsa_hash_ctx.o" => [ + "crypto/slh_dsa/slh_dsa_hash_ctx.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_dsa_key.o" => [ + "crypto/slh_dsa/slh_dsa_key.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_fors.o" => [ + "crypto/slh_dsa/slh_fors.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_hash.o" => [ + "crypto/slh_dsa/slh_hash.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_hypertree.o" => [ + "crypto/slh_dsa/slh_hypertree.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_params.o" => [ + "crypto/slh_dsa/slh_params.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_wots.o" => [ + "crypto/slh_dsa/slh_wots.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_xmss.o" => [ + "crypto/slh_dsa/slh_xmss.c" + ], + "crypto/slh_dsa/libfips-lib-slh_adrs.o" => [ + "crypto/slh_dsa/slh_adrs.c" + ], + "crypto/slh_dsa/libfips-lib-slh_dsa.o" => [ + "crypto/slh_dsa/slh_dsa.c" + ], + "crypto/slh_dsa/libfips-lib-slh_dsa_hash_ctx.o" => [ + "crypto/slh_dsa/slh_dsa_hash_ctx.c" + ], + "crypto/slh_dsa/libfips-lib-slh_dsa_key.o" => [ + "crypto/slh_dsa/slh_dsa_key.c" + ], + "crypto/slh_dsa/libfips-lib-slh_fors.o" => [ + "crypto/slh_dsa/slh_fors.c" + ], + "crypto/slh_dsa/libfips-lib-slh_hash.o" => [ + "crypto/slh_dsa/slh_hash.c" + ], + "crypto/slh_dsa/libfips-lib-slh_hypertree.o" => [ + "crypto/slh_dsa/slh_hypertree.c" + ], + "crypto/slh_dsa/libfips-lib-slh_params.o" => [ + "crypto/slh_dsa/slh_params.c" + ], + "crypto/slh_dsa/libfips-lib-slh_wots.o" => [ + "crypto/slh_dsa/slh_wots.c" + ], + "crypto/slh_dsa/libfips-lib-slh_xmss.o" => [ + "crypto/slh_dsa/slh_xmss.c" + ], "crypto/sm2/libcrypto-lib-sm2_crypt.o" => [ "crypto/sm2/sm2_crypt.c" ], @@ -23222,6 +26879,42 @@ our %unified_info = ( "crypto/store/libcrypto-lib-store_strings.o" => [ "crypto/store/store_strings.c" ], + "crypto/thread/arch/libcrypto-lib-thread_none.o" => [ + "crypto/thread/arch/thread_none.c" + ], + "crypto/thread/arch/libcrypto-lib-thread_posix.o" => [ + "crypto/thread/arch/thread_posix.c" + ], + "crypto/thread/arch/libcrypto-lib-thread_win.o" => [ + "crypto/thread/arch/thread_win.c" + ], + "crypto/thread/arch/libfips-lib-thread_none.o" => [ + "crypto/thread/arch/thread_none.c" + ], + "crypto/thread/arch/libfips-lib-thread_posix.o" => [ + "crypto/thread/arch/thread_posix.c" + ], + "crypto/thread/arch/libfips-lib-thread_win.o" => [ + "crypto/thread/arch/thread_win.c" + ], + "crypto/thread/libcrypto-lib-api.o" => [ + "crypto/thread/api.c" + ], + "crypto/thread/libcrypto-lib-arch.o" => [ + "crypto/thread/arch.c" + ], + "crypto/thread/libcrypto-lib-internal.o" => [ + "crypto/thread/internal.c" + ], + "crypto/thread/libfips-lib-api.o" => [ + "crypto/thread/api.c" + ], + "crypto/thread/libfips-lib-arch.o" => [ + "crypto/thread/arch.c" + ], + "crypto/thread/libfips-lib-internal.o" => [ + "crypto/thread/internal.c" + ], "crypto/ts/libcrypto-lib-ts_asn1.o" => [ "crypto/ts/ts_asn1.c" ], @@ -23309,6 +27002,9 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-pcy_tree.o" => [ "crypto/x509/pcy_tree.c" ], + "crypto/x509/libcrypto-lib-t_acert.o" => [ + "crypto/x509/t_acert.c" + ], "crypto/x509/libcrypto-lib-t_crl.o" => [ "crypto/x509/t_crl.c" ], @@ -23318,6 +27014,12 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-t_x509.o" => [ "crypto/x509/t_x509.c" ], + "crypto/x509/libcrypto-lib-v3_aaa.o" => [ + "crypto/x509/v3_aaa.c" + ], + "crypto/x509/libcrypto-lib-v3_ac_tgt.o" => [ + "crypto/x509/v3_ac_tgt.c" + ], "crypto/x509/libcrypto-lib-v3_addr.o" => [ "crypto/x509/v3_addr.c" ], @@ -23333,6 +27035,21 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_asid.o" => [ "crypto/x509/v3_asid.c" ], + "crypto/x509/libcrypto-lib-v3_attrdesc.o" => [ + "crypto/x509/v3_attrdesc.c" + ], + "crypto/x509/libcrypto-lib-v3_attrmap.o" => [ + "crypto/x509/v3_attrmap.c" + ], + "crypto/x509/libcrypto-lib-v3_audit_id.o" => [ + "crypto/x509/v3_audit_id.c" + ], + "crypto/x509/libcrypto-lib-v3_authattid.o" => [ + "crypto/x509/v3_authattid.c" + ], + "crypto/x509/libcrypto-lib-v3_battcons.o" => [ + "crypto/x509/v3_battcons.c" + ], "crypto/x509/libcrypto-lib-v3_bcons.o" => [ "crypto/x509/v3_bcons.c" ], @@ -23357,15 +27074,24 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_genn.o" => [ "crypto/x509/v3_genn.c" ], + "crypto/x509/libcrypto-lib-v3_group_ac.o" => [ + "crypto/x509/v3_group_ac.c" + ], "crypto/x509/libcrypto-lib-v3_ia5.o" => [ "crypto/x509/v3_ia5.c" ], + "crypto/x509/libcrypto-lib-v3_ind_iss.o" => [ + "crypto/x509/v3_ind_iss.c" + ], "crypto/x509/libcrypto-lib-v3_info.o" => [ "crypto/x509/v3_info.c" ], "crypto/x509/libcrypto-lib-v3_int.o" => [ "crypto/x509/v3_int.c" ], + "crypto/x509/libcrypto-lib-v3_iobo.o" => [ + "crypto/x509/v3_iobo.c" + ], "crypto/x509/libcrypto-lib-v3_ist.o" => [ "crypto/x509/v3_ist.c" ], @@ -23375,6 +27101,12 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_ncons.o" => [ "crypto/x509/v3_ncons.c" ], + "crypto/x509/libcrypto-lib-v3_no_ass.o" => [ + "crypto/x509/v3_no_ass.c" + ], + "crypto/x509/libcrypto-lib-v3_no_rev_avail.o" => [ + "crypto/x509/v3_no_rev_avail.c" + ], "crypto/x509/libcrypto-lib-v3_pci.o" => [ "crypto/x509/v3_pci.c" ], @@ -23396,18 +27128,36 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_purp.o" => [ "crypto/x509/v3_purp.c" ], + "crypto/x509/libcrypto-lib-v3_rolespec.o" => [ + "crypto/x509/v3_rolespec.c" + ], "crypto/x509/libcrypto-lib-v3_san.o" => [ "crypto/x509/v3_san.c" ], + "crypto/x509/libcrypto-lib-v3_sda.o" => [ + "crypto/x509/v3_sda.c" + ], + "crypto/x509/libcrypto-lib-v3_single_use.o" => [ + "crypto/x509/v3_single_use.c" + ], "crypto/x509/libcrypto-lib-v3_skid.o" => [ "crypto/x509/v3_skid.c" ], + "crypto/x509/libcrypto-lib-v3_soa_id.o" => [ + "crypto/x509/v3_soa_id.c" + ], "crypto/x509/libcrypto-lib-v3_sxnet.o" => [ "crypto/x509/v3_sxnet.c" ], + "crypto/x509/libcrypto-lib-v3_timespec.o" => [ + "crypto/x509/v3_timespec.c" + ], "crypto/x509/libcrypto-lib-v3_tlsf.o" => [ "crypto/x509/v3_tlsf.c" ], + "crypto/x509/libcrypto-lib-v3_usernotice.o" => [ + "crypto/x509/v3_usernotice.c" + ], "crypto/x509/libcrypto-lib-v3_utf8.o" => [ "crypto/x509/v3_utf8.c" ], @@ -23417,6 +27167,9 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3err.o" => [ "crypto/x509/v3err.c" ], + "crypto/x509/libcrypto-lib-x509_acert.o" => [ + "crypto/x509/x509_acert.c" + ], "crypto/x509/libcrypto-lib-x509_att.o" => [ "crypto/x509/x509_att.c" ], @@ -23468,6 +27221,9 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x509_vpm.o" => [ "crypto/x509/x509_vpm.c" ], + "crypto/x509/libcrypto-lib-x509aset.o" => [ + "crypto/x509/x509aset.c" + ], "crypto/x509/libcrypto-lib-x509cset.o" => [ "crypto/x509/x509cset.c" ], @@ -23495,6 +27251,9 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x_exten.o" => [ "crypto/x509/x_exten.c" ], + "crypto/x509/libcrypto-lib-x_ietfatt.o" => [ + "crypto/x509/x_ietfatt.c" + ], "crypto/x509/libcrypto-lib-x_name.o" => [ "crypto/x509/x_name.c" ], @@ -23519,6 +27278,16 @@ our %unified_info = ( "engines/libcrypto-lib-e_padlock.o" => [ "engines/e_padlock.c" ], + "fuzz/acert-test" => [ + "fuzz/acert-test-bin-acert.o", + "fuzz/acert-test-bin-test-corpus.o" + ], + "fuzz/acert-test-bin-acert.o" => [ + "fuzz/acert.c" + ], + "fuzz/acert-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], "fuzz/asn1-test" => [ "fuzz/asn1-test-bin-asn1.o", "fuzz/asn1-test-bin-fuzz_rand.o", @@ -23631,6 +27400,190 @@ our %unified_info = ( "fuzz/ct-test-bin-test-corpus.o" => [ "fuzz/test-corpus.c" ], + "fuzz/decoder-test" => [ + "fuzz/decoder-test-bin-decoder.o", + "fuzz/decoder-test-bin-fuzz_rand.o", + "fuzz/decoder-test-bin-test-corpus.o" + ], + "fuzz/decoder-test-bin-decoder.o" => [ + "fuzz/decoder.c" + ], + "fuzz/decoder-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/decoder-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/dtlsclient-test" => [ + "fuzz/dtlsclient-test-bin-dtlsclient.o", + "fuzz/dtlsclient-test-bin-fuzz_rand.o", + "fuzz/dtlsclient-test-bin-test-corpus.o" + ], + "fuzz/dtlsclient-test-bin-dtlsclient.o" => [ + "fuzz/dtlsclient.c" + ], + "fuzz/dtlsclient-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/dtlsclient-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/dtlsserver-test" => [ + "fuzz/dtlsserver-test-bin-dtlsserver.o", + "fuzz/dtlsserver-test-bin-fuzz_rand.o", + "fuzz/dtlsserver-test-bin-test-corpus.o" + ], + "fuzz/dtlsserver-test-bin-dtlsserver.o" => [ + "fuzz/dtlsserver.c" + ], + "fuzz/dtlsserver-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/dtlsserver-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/hashtable-test" => [ + "fuzz/hashtable-test-bin-fuzz_rand.o", + "fuzz/hashtable-test-bin-hashtable.o", + "fuzz/hashtable-test-bin-test-corpus.o" + ], + "fuzz/hashtable-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/hashtable-test-bin-hashtable.o" => [ + "fuzz/hashtable.c" + ], + "fuzz/hashtable-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/ml-dsa-test" => [ + "fuzz/ml-dsa-test-bin-fuzz_rand.o", + "fuzz/ml-dsa-test-bin-ml-dsa.o", + "fuzz/ml-dsa-test-bin-test-corpus.o" + ], + "fuzz/ml-dsa-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/ml-dsa-test-bin-ml-dsa.o" => [ + "fuzz/ml-dsa.c" + ], + "fuzz/ml-dsa-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/ml-kem-test" => [ + "fuzz/ml-kem-test-bin-fuzz_rand.o", + "fuzz/ml-kem-test-bin-ml-kem.o", + "fuzz/ml-kem-test-bin-test-corpus.o" + ], + "fuzz/ml-kem-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/ml-kem-test-bin-ml-kem.o" => [ + "fuzz/ml-kem.c" + ], + "fuzz/ml-kem-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/pem-test" => [ + "fuzz/pem-test-bin-pem.o", + "fuzz/pem-test-bin-test-corpus.o" + ], + "fuzz/pem-test-bin-pem.o" => [ + "fuzz/pem.c" + ], + "fuzz/pem-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/provider-test" => [ + "fuzz/provider-test-bin-provider.o", + "fuzz/provider-test-bin-test-corpus.o" + ], + "fuzz/provider-test-bin-provider.o" => [ + "fuzz/provider.c" + ], + "fuzz/provider-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/punycode-test" => [ + "fuzz/punycode-test-bin-punycode.o", + "fuzz/punycode-test-bin-test-corpus.o" + ], + "fuzz/punycode-test-bin-punycode.o" => [ + "fuzz/punycode.c" + ], + "fuzz/punycode-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-client-test" => [ + "fuzz/quic-client-test-bin-fuzz_rand.o", + "fuzz/quic-client-test-bin-quic-client.o", + "fuzz/quic-client-test-bin-test-corpus.o" + ], + "fuzz/quic-client-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-client-test-bin-quic-client.o" => [ + "fuzz/quic-client.c" + ], + "fuzz/quic-client-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-lcidm-test" => [ + "fuzz/quic-lcidm-test-bin-fuzz_rand.o", + "fuzz/quic-lcidm-test-bin-quic-lcidm.o", + "fuzz/quic-lcidm-test-bin-test-corpus.o" + ], + "fuzz/quic-lcidm-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-lcidm-test-bin-quic-lcidm.o" => [ + "fuzz/quic-lcidm.c" + ], + "fuzz/quic-lcidm-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-rcidm-test" => [ + "fuzz/quic-rcidm-test-bin-fuzz_rand.o", + "fuzz/quic-rcidm-test-bin-quic-rcidm.o", + "fuzz/quic-rcidm-test-bin-test-corpus.o" + ], + "fuzz/quic-rcidm-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-rcidm-test-bin-quic-rcidm.o" => [ + "fuzz/quic-rcidm.c" + ], + "fuzz/quic-rcidm-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-server-test" => [ + "fuzz/quic-server-test-bin-fuzz_rand.o", + "fuzz/quic-server-test-bin-quic-server.o", + "fuzz/quic-server-test-bin-test-corpus.o" + ], + "fuzz/quic-server-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-server-test-bin-quic-server.o" => [ + "fuzz/quic-server.c" + ], + "fuzz/quic-server-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-srtm-test" => [ + "fuzz/quic-srtm-test-bin-fuzz_rand.o", + "fuzz/quic-srtm-test-bin-quic-srtm.o", + "fuzz/quic-srtm-test-bin-test-corpus.o" + ], + "fuzz/quic-srtm-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-srtm-test-bin-quic-srtm.o" => [ + "fuzz/quic-srtm.c" + ], + "fuzz/quic-srtm-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], "fuzz/server-test" => [ "fuzz/server-test-bin-fuzz_rand.o", "fuzz/server-test-bin-server.o", @@ -23645,6 +27598,40 @@ our %unified_info = ( "fuzz/server-test-bin-test-corpus.o" => [ "fuzz/test-corpus.c" ], + "fuzz/slh-dsa-test" => [ + "fuzz/slh-dsa-test-bin-fuzz_rand.o", + "fuzz/slh-dsa-test-bin-slh-dsa.o", + "fuzz/slh-dsa-test-bin-test-corpus.o" + ], + "fuzz/slh-dsa-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/slh-dsa-test-bin-slh-dsa.o" => [ + "fuzz/slh-dsa.c" + ], + "fuzz/slh-dsa-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/smime-test" => [ + "fuzz/smime-test-bin-smime.o", + "fuzz/smime-test-bin-test-corpus.o" + ], + "fuzz/smime-test-bin-smime.o" => [ + "fuzz/smime.c" + ], + "fuzz/smime-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/v3name-test" => [ + "fuzz/v3name-test-bin-test-corpus.o", + "fuzz/v3name-test-bin-v3name.o" + ], + "fuzz/v3name-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/v3name-test-bin-v3name.o" => [ + "fuzz/v3name.c" + ], "fuzz/x509-test" => [ "fuzz/x509-test-bin-fuzz_rand.o", "fuzz/x509-test-bin-test-corpus.o", @@ -23765,6 +27752,7 @@ our %unified_info = ( "crypto/bio/libcrypto-lib-bss_conn.o", "crypto/bio/libcrypto-lib-bss_core.o", "crypto/bio/libcrypto-lib-bss_dgram.o", + "crypto/bio/libcrypto-lib-bss_dgram_pair.o", "crypto/bio/libcrypto-lib-bss_fd.o", "crypto/bio/libcrypto-lib-bss_file.o", "crypto/bio/libcrypto-lib-bss_log.o", @@ -23826,6 +27814,7 @@ our %unified_info = ( "crypto/cmp/libcrypto-lib-cmp_client.o", "crypto/cmp/libcrypto-lib-cmp_ctx.o", "crypto/cmp/libcrypto-lib-cmp_err.o", + "crypto/cmp/libcrypto-lib-cmp_genm.o", "crypto/cmp/libcrypto-lib-cmp_hdr.o", "crypto/cmp/libcrypto-lib-cmp_http.o", "crypto/cmp/libcrypto-lib-cmp_msg.o", @@ -24003,7 +27992,9 @@ our %unified_info = ( "crypto/err/libcrypto-lib-err_all.o", "crypto/err/libcrypto-lib-err_all_legacy.o", "crypto/err/libcrypto-lib-err_blocks.o", + "crypto/err/libcrypto-lib-err_mark.o", "crypto/err/libcrypto-lib-err_prn.o", + "crypto/err/libcrypto-lib-err_save.o", "crypto/ess/libcrypto-lib-ess_asn1.o", "crypto/ess/libcrypto-lib-ess_err.o", "crypto/ess/libcrypto-lib-ess_lib.o", @@ -24086,7 +28077,9 @@ our %unified_info = ( "crypto/evp/libcrypto-lib-pmeth_check.o", "crypto/evp/libcrypto-lib-pmeth_gn.o", "crypto/evp/libcrypto-lib-pmeth_lib.o", + "crypto/evp/libcrypto-lib-s_lib.o", "crypto/evp/libcrypto-lib-signature.o", + "crypto/evp/libcrypto-lib-skeymgmt_meth.o", "crypto/ffc/libcrypto-lib-ffc_backend.o", "crypto/ffc/libcrypto-lib-ffc_dh.o", "crypto/ffc/libcrypto-lib-ffc_key_generate.o", @@ -24094,7 +28087,11 @@ our %unified_info = ( "crypto/ffc/libcrypto-lib-ffc_params.o", "crypto/ffc/libcrypto-lib-ffc_params_generate.o", "crypto/ffc/libcrypto-lib-ffc_params_validate.o", + "crypto/hashtable/libcrypto-lib-hashfunc.o", + "crypto/hashtable/libcrypto-lib-hashtable.o", "crypto/hmac/libcrypto-lib-hmac.o", + "crypto/hpke/libcrypto-lib-hpke.o", + "crypto/hpke/libcrypto-lib-hpke_util.o", "crypto/http/libcrypto-lib-http_client.o", "crypto/http/libcrypto-lib-http_err.o", "crypto/http/libcrypto-lib-http_lib.o", @@ -24108,6 +28105,7 @@ our %unified_info = ( "crypto/lhash/libcrypto-lib-lhash.o", "crypto/libcrypto-lib-asn1_dsa.o", "crypto/libcrypto-lib-bsearch.o", + "crypto/libcrypto-lib-comp_methods.o", "crypto/libcrypto-lib-context.o", "crypto/libcrypto-lib-core_algorithm.o", "crypto/libcrypto-lib-core_fetch.o", @@ -24117,10 +28115,13 @@ our %unified_info = ( "crypto/libcrypto-lib-cryptlib.o", "crypto/libcrypto-lib-ctype.o", "crypto/libcrypto-lib-cversion.o", + "crypto/libcrypto-lib-defaults.o", "crypto/libcrypto-lib-der_writer.o", + "crypto/libcrypto-lib-deterministic_nonce.o", "crypto/libcrypto-lib-ebcdic.o", "crypto/libcrypto-lib-ex_data.o", "crypto/libcrypto-lib-getenv.o", + "crypto/libcrypto-lib-indicator_core.o", "crypto/libcrypto-lib-info.o", "crypto/libcrypto-lib-init.o", "crypto/libcrypto-lib-initthread.o", @@ -24137,6 +28138,7 @@ our %unified_info = ( "crypto/libcrypto-lib-params.o", "crypto/libcrypto-lib-params_dup.o", "crypto/libcrypto-lib-params_from_text.o", + "crypto/libcrypto-lib-params_idx.o", "crypto/libcrypto-lib-passphrase.o", "crypto/libcrypto-lib-provider.o", "crypto/libcrypto-lib-provider_child.o", @@ -24144,12 +28146,16 @@ our %unified_info = ( "crypto/libcrypto-lib-provider_core.o", "crypto/libcrypto-lib-provider_predefined.o", "crypto/libcrypto-lib-punycode.o", + "crypto/libcrypto-lib-quic_vlint.o", "crypto/libcrypto-lib-self_test_core.o", + "crypto/libcrypto-lib-sleep.o", "crypto/libcrypto-lib-sparse_array.o", + "crypto/libcrypto-lib-ssl_err.o", "crypto/libcrypto-lib-threads_lib.o", "crypto/libcrypto-lib-threads_none.o", "crypto/libcrypto-lib-threads_pthread.o", "crypto/libcrypto-lib-threads_win.o", + "crypto/libcrypto-lib-time.o", "crypto/libcrypto-lib-trace.o", "crypto/libcrypto-lib-uid.o", "crypto/libcrypto-lib-x86cpuid.o", @@ -24161,6 +28167,15 @@ our %unified_info = ( "crypto/md5/libcrypto-lib-md5_sha1.o", "crypto/mdc2/libcrypto-lib-mdc2_one.o", "crypto/mdc2/libcrypto-lib-mdc2dgst.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_encoders.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key_compress.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_matrix.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_ntt.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_params.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sample.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sign.o", + "crypto/ml_kem/libcrypto-lib-ml_kem.o", "crypto/modes/libcrypto-lib-cbc128.o", "crypto/modes/libcrypto-lib-ccm128.o", "crypto/modes/libcrypto-lib-cfb128.o", @@ -24173,6 +28188,7 @@ our %unified_info = ( "crypto/modes/libcrypto-lib-siv128.o", "crypto/modes/libcrypto-lib-wrap128.o", "crypto/modes/libcrypto-lib-xts128.o", + "crypto/modes/libcrypto-lib-xts128gb.o", "crypto/objects/libcrypto-lib-o_names.o", "crypto/objects/libcrypto-lib-obj_dat.o", "crypto/objects/libcrypto-lib-obj_err.o", @@ -24237,6 +28253,7 @@ our %unified_info = ( "crypto/rand/libcrypto-lib-rand_lib.o", "crypto/rand/libcrypto-lib-rand_meth.o", "crypto/rand/libcrypto-lib-rand_pool.o", + "crypto/rand/libcrypto-lib-rand_uniform.o", "crypto/rand/libcrypto-lib-randfile.o", "crypto/rc2/libcrypto-lib-rc2_cbc.o", "crypto/rc2/libcrypto-lib-rc2_ecb.o", @@ -24288,6 +28305,16 @@ our %unified_info = ( "crypto/sha/libcrypto-lib-sha512-586.o", "crypto/sha/libcrypto-lib-sha512.o", "crypto/siphash/libcrypto-lib-siphash.o", + "crypto/slh_dsa/libcrypto-lib-slh_adrs.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa_hash_ctx.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa_key.o", + "crypto/slh_dsa/libcrypto-lib-slh_fors.o", + "crypto/slh_dsa/libcrypto-lib-slh_hash.o", + "crypto/slh_dsa/libcrypto-lib-slh_hypertree.o", + "crypto/slh_dsa/libcrypto-lib-slh_params.o", + "crypto/slh_dsa/libcrypto-lib-slh_wots.o", + "crypto/slh_dsa/libcrypto-lib-slh_xmss.o", "crypto/sm2/libcrypto-lib-sm2_crypt.o", "crypto/sm2/libcrypto-lib-sm2_err.o", "crypto/sm2/libcrypto-lib-sm2_key.o", @@ -24305,6 +28332,12 @@ our %unified_info = ( "crypto/store/libcrypto-lib-store_register.o", "crypto/store/libcrypto-lib-store_result.o", "crypto/store/libcrypto-lib-store_strings.o", + "crypto/thread/arch/libcrypto-lib-thread_none.o", + "crypto/thread/arch/libcrypto-lib-thread_posix.o", + "crypto/thread/arch/libcrypto-lib-thread_win.o", + "crypto/thread/libcrypto-lib-api.o", + "crypto/thread/libcrypto-lib-arch.o", + "crypto/thread/libcrypto-lib-internal.o", "crypto/ts/libcrypto-lib-ts_asn1.o", "crypto/ts/libcrypto-lib-ts_conf.o", "crypto/ts/libcrypto-lib-ts_err.o", @@ -24334,14 +28367,22 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-pcy_map.o", "crypto/x509/libcrypto-lib-pcy_node.o", "crypto/x509/libcrypto-lib-pcy_tree.o", + "crypto/x509/libcrypto-lib-t_acert.o", "crypto/x509/libcrypto-lib-t_crl.o", "crypto/x509/libcrypto-lib-t_req.o", "crypto/x509/libcrypto-lib-t_x509.o", + "crypto/x509/libcrypto-lib-v3_aaa.o", + "crypto/x509/libcrypto-lib-v3_ac_tgt.o", "crypto/x509/libcrypto-lib-v3_addr.o", "crypto/x509/libcrypto-lib-v3_admis.o", "crypto/x509/libcrypto-lib-v3_akeya.o", "crypto/x509/libcrypto-lib-v3_akid.o", "crypto/x509/libcrypto-lib-v3_asid.o", + "crypto/x509/libcrypto-lib-v3_attrdesc.o", + "crypto/x509/libcrypto-lib-v3_attrmap.o", + "crypto/x509/libcrypto-lib-v3_audit_id.o", + "crypto/x509/libcrypto-lib-v3_authattid.o", + "crypto/x509/libcrypto-lib-v3_battcons.o", "crypto/x509/libcrypto-lib-v3_bcons.o", "crypto/x509/libcrypto-lib-v3_bitst.o", "crypto/x509/libcrypto-lib-v3_conf.o", @@ -24350,12 +28391,17 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_enum.o", "crypto/x509/libcrypto-lib-v3_extku.o", "crypto/x509/libcrypto-lib-v3_genn.o", + "crypto/x509/libcrypto-lib-v3_group_ac.o", "crypto/x509/libcrypto-lib-v3_ia5.o", + "crypto/x509/libcrypto-lib-v3_ind_iss.o", "crypto/x509/libcrypto-lib-v3_info.o", "crypto/x509/libcrypto-lib-v3_int.o", + "crypto/x509/libcrypto-lib-v3_iobo.o", "crypto/x509/libcrypto-lib-v3_ist.o", "crypto/x509/libcrypto-lib-v3_lib.o", "crypto/x509/libcrypto-lib-v3_ncons.o", + "crypto/x509/libcrypto-lib-v3_no_ass.o", + "crypto/x509/libcrypto-lib-v3_no_rev_avail.o", "crypto/x509/libcrypto-lib-v3_pci.o", "crypto/x509/libcrypto-lib-v3_pcia.o", "crypto/x509/libcrypto-lib-v3_pcons.o", @@ -24363,13 +28409,20 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_pmaps.o", "crypto/x509/libcrypto-lib-v3_prn.o", "crypto/x509/libcrypto-lib-v3_purp.o", + "crypto/x509/libcrypto-lib-v3_rolespec.o", "crypto/x509/libcrypto-lib-v3_san.o", + "crypto/x509/libcrypto-lib-v3_sda.o", + "crypto/x509/libcrypto-lib-v3_single_use.o", "crypto/x509/libcrypto-lib-v3_skid.o", + "crypto/x509/libcrypto-lib-v3_soa_id.o", "crypto/x509/libcrypto-lib-v3_sxnet.o", + "crypto/x509/libcrypto-lib-v3_timespec.o", "crypto/x509/libcrypto-lib-v3_tlsf.o", + "crypto/x509/libcrypto-lib-v3_usernotice.o", "crypto/x509/libcrypto-lib-v3_utf8.o", "crypto/x509/libcrypto-lib-v3_utl.o", "crypto/x509/libcrypto-lib-v3err.o", + "crypto/x509/libcrypto-lib-x509_acert.o", "crypto/x509/libcrypto-lib-x509_att.o", "crypto/x509/libcrypto-lib-x509_cmp.o", "crypto/x509/libcrypto-lib-x509_d2.o", @@ -24387,6 +28440,7 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x509_v3.o", "crypto/x509/libcrypto-lib-x509_vfy.o", "crypto/x509/libcrypto-lib-x509_vpm.o", + "crypto/x509/libcrypto-lib-x509aset.o", "crypto/x509/libcrypto-lib-x509cset.o", "crypto/x509/libcrypto-lib-x509name.o", "crypto/x509/libcrypto-lib-x509rset.o", @@ -24396,6 +28450,7 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x_attrib.o", "crypto/x509/libcrypto-lib-x_crl.o", "crypto/x509/libcrypto-lib-x_exten.o", + "crypto/x509/libcrypto-lib-x_ietfatt.o", "crypto/x509/libcrypto-lib-x_name.o", "crypto/x509/libcrypto-lib-x_pubkey.o", "crypto/x509/libcrypto-lib-x_req.o", @@ -24417,14 +28472,15 @@ our %unified_info = ( "ssl/libssl-lib-d1_srtp.o", "ssl/libssl-lib-methods.o", "ssl/libssl-lib-pqueue.o", + "ssl/libssl-lib-priority_queue.o", "ssl/libssl-lib-s3_enc.o", "ssl/libssl-lib-s3_lib.o", "ssl/libssl-lib-s3_msg.o", "ssl/libssl-lib-ssl_asn1.o", "ssl/libssl-lib-ssl_cert.o", + "ssl/libssl-lib-ssl_cert_comp.o", "ssl/libssl-lib-ssl_ciph.o", "ssl/libssl-lib-ssl_conf.o", - "ssl/libssl-lib-ssl_err.o", "ssl/libssl-lib-ssl_err_legacy.o", "ssl/libssl-lib-ssl_init.o", "ssl/libssl-lib-ssl_lib.o", @@ -24441,12 +28497,60 @@ our %unified_info = ( "ssl/libssl-lib-tls13_enc.o", "ssl/libssl-lib-tls_depr.o", "ssl/libssl-lib-tls_srp.o", - "ssl/record/libssl-lib-dtls1_bitmap.o", + "ssl/quic/libssl-lib-cc_newreno.o", + "ssl/quic/libssl-lib-json_enc.o", + "ssl/quic/libssl-lib-qlog.o", + "ssl/quic/libssl-lib-qlog_event_helpers.o", + "ssl/quic/libssl-lib-quic_ackm.o", + "ssl/quic/libssl-lib-quic_cfq.o", + "ssl/quic/libssl-lib-quic_channel.o", + "ssl/quic/libssl-lib-quic_demux.o", + "ssl/quic/libssl-lib-quic_engine.o", + "ssl/quic/libssl-lib-quic_fc.o", + "ssl/quic/libssl-lib-quic_fifd.o", + "ssl/quic/libssl-lib-quic_impl.o", + "ssl/quic/libssl-lib-quic_lcidm.o", + "ssl/quic/libssl-lib-quic_method.o", + "ssl/quic/libssl-lib-quic_obj.o", + "ssl/quic/libssl-lib-quic_port.o", + "ssl/quic/libssl-lib-quic_rcidm.o", + "ssl/quic/libssl-lib-quic_reactor.o", + "ssl/quic/libssl-lib-quic_reactor_wait_ctx.o", + "ssl/quic/libssl-lib-quic_record_rx.o", + "ssl/quic/libssl-lib-quic_record_shared.o", + "ssl/quic/libssl-lib-quic_record_tx.o", + "ssl/quic/libssl-lib-quic_record_util.o", + "ssl/quic/libssl-lib-quic_rstream.o", + "ssl/quic/libssl-lib-quic_rx_depack.o", + "ssl/quic/libssl-lib-quic_sf_list.o", + "ssl/quic/libssl-lib-quic_srt_gen.o", + "ssl/quic/libssl-lib-quic_srtm.o", + "ssl/quic/libssl-lib-quic_sstream.o", + "ssl/quic/libssl-lib-quic_statm.o", + "ssl/quic/libssl-lib-quic_stream_map.o", + "ssl/quic/libssl-lib-quic_thread_assist.o", + "ssl/quic/libssl-lib-quic_tls.o", + "ssl/quic/libssl-lib-quic_tls_api.o", + "ssl/quic/libssl-lib-quic_trace.o", + "ssl/quic/libssl-lib-quic_tserver.o", + "ssl/quic/libssl-lib-quic_txp.o", + "ssl/quic/libssl-lib-quic_txpim.o", + "ssl/quic/libssl-lib-quic_types.o", + "ssl/quic/libssl-lib-quic_wire.o", + "ssl/quic/libssl-lib-quic_wire_pkt.o", + "ssl/quic/libssl-lib-uint_set.o", "ssl/record/libssl-lib-rec_layer_d1.o", "ssl/record/libssl-lib-rec_layer_s3.o", - "ssl/record/libssl-lib-ssl3_buffer.o", - "ssl/record/libssl-lib-ssl3_record.o", - "ssl/record/libssl-lib-ssl3_record_tls13.o", + "ssl/record/methods/libssl-lib-dtls_meth.o", + "ssl/record/methods/libssl-lib-ssl3_meth.o", + "ssl/record/methods/libssl-lib-tls13_meth.o", + "ssl/record/methods/libssl-lib-tls1_meth.o", + "ssl/record/methods/libssl-lib-tls_common.o", + "ssl/record/methods/libssl-lib-tls_multib.o", + "ssl/record/methods/libssl-lib-tlsany_meth.o", + "ssl/rio/libssl-lib-poll_builder.o", + "ssl/rio/libssl-lib-poll_immediate.o", + "ssl/rio/libssl-lib-rio_notifier.o", "ssl/statem/libssl-lib-extensions.o", "ssl/statem/libssl-lib-extensions_clnt.o", "ssl/statem/libssl-lib-extensions_cust.o", @@ -24484,12 +28588,24 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ecx_key.o" => [ "providers/common/der/der_ecx_key.c" ], + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o" => [ + "providers/common/der/der_ml_dsa_gen.c" + ], + "providers/common/der/libcommon-lib-der_ml_dsa_key.o" => [ + "providers/common/der/der_ml_dsa_key.c" + ], "providers/common/der/libcommon-lib-der_rsa_gen.o" => [ "providers/common/der/der_rsa_gen.c" ], "providers/common/der/libcommon-lib-der_rsa_key.o" => [ "providers/common/der/der_rsa_key.c" ], + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o" => [ + "providers/common/der/der_slh_dsa_gen.c" + ], + "providers/common/der/libcommon-lib-der_slh_dsa_key.o" => [ + "providers/common/der/der_slh_dsa_key.c" + ], "providers/common/der/libcommon-lib-der_wrap_gen.o" => [ "providers/common/der/der_wrap_gen.c" ], @@ -24556,6 +28672,9 @@ our %unified_info = ( "providers/common/libfips-lib-securitycheck_fips.o" => [ "providers/common/securitycheck_fips.c" ], + "providers/endecode_test-bin-legacyprov.o" => [ + "providers/legacyprov.c" + ], "providers/evp_extra_test-bin-legacyprov.o" => [ "providers/legacyprov.c" ], @@ -24565,6 +28684,9 @@ our %unified_info = ( "providers/fips/fips-dso-fips_entry.o" => [ "providers/fips/fips_entry.c" ], + "providers/fips/libfips-lib-fipsindicator.o" => [ + "providers/fips/fipsindicator.c" + ], "providers/fips/libfips-lib-fipsprov.o" => [ "providers/fips/fipsprov.c" ], @@ -24628,6 +28750,15 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_hw.o" => [ "providers/implementations/ciphers/cipher_aes_gcm_hw.c" ], + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv.o" => [ + "providers/implementations/ciphers/cipher_aes_gcm_siv.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_hw.o" => [ + "providers/implementations/ciphers/cipher_aes_gcm_siv_hw.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_polyval.o" => [ + "providers/implementations/ciphers/cipher_aes_gcm_siv_polyval.c" + ], "providers/implementations/ciphers/libdefault-lib-cipher_aes_hw.o" => [ "providers/implementations/ciphers/cipher_aes_hw.c" ], @@ -24700,9 +28831,27 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_sm4.o" => [ "providers/implementations/ciphers/cipher_sm4.c" ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm.o" => [ + "providers/implementations/ciphers/cipher_sm4_ccm.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm_hw.o" => [ + "providers/implementations/ciphers/cipher_sm4_ccm_hw.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm.o" => [ + "providers/implementations/ciphers/cipher_sm4_gcm.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm_hw.o" => [ + "providers/implementations/ciphers/cipher_sm4_gcm_hw.c" + ], "providers/implementations/ciphers/libdefault-lib-cipher_sm4_hw.o" => [ "providers/implementations/ciphers/cipher_sm4_hw.c" ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts.o" => [ + "providers/implementations/ciphers/cipher_sm4_xts.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts_hw.o" => [ + "providers/implementations/ciphers/cipher_sm4_xts_hw.c" + ], "providers/implementations/ciphers/libdefault-lib-cipher_tdes.o" => [ "providers/implementations/ciphers/cipher_tdes.c" ], @@ -24922,6 +29071,15 @@ our %unified_info = ( "providers/implementations/encode_decode/libdefault-lib-endecoder_common.o" => [ "providers/implementations/encode_decode/endecoder_common.c" ], + "providers/implementations/encode_decode/libdefault-lib-ml_common_codecs.o" => [ + "providers/implementations/encode_decode/ml_common_codecs.c" + ], + "providers/implementations/encode_decode/libdefault-lib-ml_dsa_codecs.o" => [ + "providers/implementations/encode_decode/ml_dsa_codecs.c" + ], + "providers/implementations/encode_decode/libdefault-lib-ml_kem_codecs.o" => [ + "providers/implementations/encode_decode/ml_kem_codecs.c" + ], "providers/implementations/exchange/libdefault-lib-dh_exch.o" => [ "providers/implementations/exchange/dh_exch.c" ], @@ -24946,9 +29104,15 @@ our %unified_info = ( "providers/implementations/exchange/libfips-lib-kdf_exch.o" => [ "providers/implementations/exchange/kdf_exch.c" ], + "providers/implementations/kdfs/libdefault-lib-argon2.o" => [ + "providers/implementations/kdfs/argon2.c" + ], "providers/implementations/kdfs/libdefault-lib-hkdf.o" => [ "providers/implementations/kdfs/hkdf.c" ], + "providers/implementations/kdfs/libdefault-lib-hmacdrbg_kdf.o" => [ + "providers/implementations/kdfs/hmacdrbg_kdf.c" + ], "providers/implementations/kdfs/libdefault-lib-kbkdf.o" => [ "providers/implementations/kdfs/kbkdf.c" ], @@ -25006,12 +29170,39 @@ our %unified_info = ( "providers/implementations/kdfs/liblegacy-lib-pbkdf1.o" => [ "providers/implementations/kdfs/pbkdf1.c" ], + "providers/implementations/kdfs/liblegacy-lib-pvkkdf.o" => [ + "providers/implementations/kdfs/pvkkdf.c" + ], + "providers/implementations/kem/libdefault-lib-ec_kem.o" => [ + "providers/implementations/kem/ec_kem.c" + ], + "providers/implementations/kem/libdefault-lib-ecx_kem.o" => [ + "providers/implementations/kem/ecx_kem.c" + ], + "providers/implementations/kem/libdefault-lib-kem_util.o" => [ + "providers/implementations/kem/kem_util.c" + ], + "providers/implementations/kem/libdefault-lib-ml_kem_kem.o" => [ + "providers/implementations/kem/ml_kem_kem.c" + ], + "providers/implementations/kem/libdefault-lib-mlx_kem.o" => [ + "providers/implementations/kem/mlx_kem.c" + ], "providers/implementations/kem/libdefault-lib-rsa_kem.o" => [ "providers/implementations/kem/rsa_kem.c" ], + "providers/implementations/kem/libfips-lib-ml_kem_kem.o" => [ + "providers/implementations/kem/ml_kem_kem.c" + ], + "providers/implementations/kem/libfips-lib-mlx_kem.o" => [ + "providers/implementations/kem/mlx_kem.c" + ], "providers/implementations/kem/libfips-lib-rsa_kem.o" => [ "providers/implementations/kem/rsa_kem.c" ], + "providers/implementations/kem/libtemplate-lib-template_kem.o" => [ + "providers/implementations/kem/template_kem.c" + ], "providers/implementations/keymgmt/libdefault-lib-dh_kmgmt.o" => [ "providers/implementations/keymgmt/dh_kmgmt.c" ], @@ -25030,9 +29221,21 @@ our %unified_info = ( "providers/implementations/keymgmt/libdefault-lib-mac_legacy_kmgmt.o" => [ "providers/implementations/keymgmt/mac_legacy_kmgmt.c" ], + "providers/implementations/keymgmt/libdefault-lib-ml_dsa_kmgmt.o" => [ + "providers/implementations/keymgmt/ml_dsa_kmgmt.c" + ], + "providers/implementations/keymgmt/libdefault-lib-ml_kem_kmgmt.o" => [ + "providers/implementations/keymgmt/ml_kem_kmgmt.c" + ], + "providers/implementations/keymgmt/libdefault-lib-mlx_kmgmt.o" => [ + "providers/implementations/keymgmt/mlx_kmgmt.c" + ], "providers/implementations/keymgmt/libdefault-lib-rsa_kmgmt.o" => [ "providers/implementations/keymgmt/rsa_kmgmt.c" ], + "providers/implementations/keymgmt/libdefault-lib-slh_dsa_kmgmt.o" => [ + "providers/implementations/keymgmt/slh_dsa_kmgmt.c" + ], "providers/implementations/keymgmt/libfips-lib-dh_kmgmt.o" => [ "providers/implementations/keymgmt/dh_kmgmt.c" ], @@ -25051,9 +29254,24 @@ our %unified_info = ( "providers/implementations/keymgmt/libfips-lib-mac_legacy_kmgmt.o" => [ "providers/implementations/keymgmt/mac_legacy_kmgmt.c" ], + "providers/implementations/keymgmt/libfips-lib-ml_dsa_kmgmt.o" => [ + "providers/implementations/keymgmt/ml_dsa_kmgmt.c" + ], + "providers/implementations/keymgmt/libfips-lib-ml_kem_kmgmt.o" => [ + "providers/implementations/keymgmt/ml_kem_kmgmt.c" + ], + "providers/implementations/keymgmt/libfips-lib-mlx_kmgmt.o" => [ + "providers/implementations/keymgmt/mlx_kmgmt.c" + ], "providers/implementations/keymgmt/libfips-lib-rsa_kmgmt.o" => [ "providers/implementations/keymgmt/rsa_kmgmt.c" ], + "providers/implementations/keymgmt/libfips-lib-slh_dsa_kmgmt.o" => [ + "providers/implementations/keymgmt/slh_dsa_kmgmt.c" + ], + "providers/implementations/keymgmt/libtemplate-lib-template_kmgmt.o" => [ + "providers/implementations/keymgmt/template_kmgmt.c" + ], "providers/implementations/macs/libdefault-lib-blake2b_mac.o" => [ "providers/implementations/macs/blake2b_mac.c" ], @@ -25090,9 +29308,6 @@ our %unified_info = ( "providers/implementations/macs/libfips-lib-kmac_prov.o" => [ "providers/implementations/macs/kmac_prov.c" ], - "providers/implementations/rands/libdefault-lib-crngt.o" => [ - "providers/implementations/rands/crngt.c" - ], "providers/implementations/rands/libdefault-lib-drbg.o" => [ "providers/implementations/rands/drbg.c" ], @@ -25108,12 +29323,12 @@ our %unified_info = ( "providers/implementations/rands/libdefault-lib-seed_src.o" => [ "providers/implementations/rands/seed_src.c" ], + "providers/implementations/rands/libdefault-lib-seed_src_jitter.o" => [ + "providers/implementations/rands/seed_src_jitter.c" + ], "providers/implementations/rands/libdefault-lib-test_rng.o" => [ "providers/implementations/rands/test_rng.c" ], - "providers/implementations/rands/libfips-lib-crngt.o" => [ - "providers/implementations/rands/crngt.c" - ], "providers/implementations/rands/libfips-lib-drbg.o" => [ "providers/implementations/rands/drbg.c" ], @@ -25126,6 +29341,9 @@ our %unified_info = ( "providers/implementations/rands/libfips-lib-drbg_hmac.o" => [ "providers/implementations/rands/drbg_hmac.c" ], + "providers/implementations/rands/libfips-lib-fips_crng_test.o" => [ + "providers/implementations/rands/fips_crng_test.c" + ], "providers/implementations/rands/libfips-lib-test_rng.o" => [ "providers/implementations/rands/test_rng.c" ], @@ -25153,9 +29371,15 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-mac_legacy_sig.o" => [ "providers/implementations/signature/mac_legacy_sig.c" ], + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o" => [ + "providers/implementations/signature/ml_dsa_sig.c" + ], "providers/implementations/signature/libdefault-lib-rsa_sig.o" => [ "providers/implementations/signature/rsa_sig.c" ], + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o" => [ + "providers/implementations/signature/slh_dsa_sig.c" + ], "providers/implementations/signature/libdefault-lib-sm2_sig.o" => [ "providers/implementations/signature/sm2_sig.c" ], @@ -25171,9 +29395,27 @@ our %unified_info = ( "providers/implementations/signature/libfips-lib-mac_legacy_sig.o" => [ "providers/implementations/signature/mac_legacy_sig.c" ], + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o" => [ + "providers/implementations/signature/ml_dsa_sig.c" + ], "providers/implementations/signature/libfips-lib-rsa_sig.o" => [ "providers/implementations/signature/rsa_sig.c" ], + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o" => [ + "providers/implementations/signature/slh_dsa_sig.c" + ], + "providers/implementations/skeymgmt/libdefault-lib-aes_skmgmt.o" => [ + "providers/implementations/skeymgmt/aes_skmgmt.c" + ], + "providers/implementations/skeymgmt/libdefault-lib-generic.o" => [ + "providers/implementations/skeymgmt/generic.c" + ], + "providers/implementations/skeymgmt/libfips-lib-aes_skmgmt.o" => [ + "providers/implementations/skeymgmt/aes_skmgmt.c" + ], + "providers/implementations/skeymgmt/libfips-lib-generic.o" => [ + "providers/implementations/skeymgmt/generic.c" + ], "providers/implementations/storemgmt/libdefault-lib-file_store.o" => [ "providers/implementations/storemgmt/file_store.c" ], @@ -25196,8 +29438,12 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ec_sig.o", "providers/common/der/libcommon-lib-der_ecx_gen.o", "providers/common/der/libcommon-lib-der_ecx_key.o", + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o", + "providers/common/der/libcommon-lib-der_ml_dsa_key.o", "providers/common/der/libcommon-lib-der_rsa_gen.o", "providers/common/der/libcommon-lib-der_rsa_key.o", + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o", + "providers/common/der/libcommon-lib-der_slh_dsa_key.o", "providers/common/der/libcommon-lib-der_wrap_gen.o", "providers/common/libcommon-lib-provider_ctx.o", "providers/common/libcommon-lib-provider_err.o", @@ -25209,7 +29455,7 @@ our %unified_info = ( "providers/implementations/ciphers/libcommon-lib-ciphercommon_gcm_hw.o", "providers/implementations/ciphers/libcommon-lib-ciphercommon_hw.o", "providers/implementations/digests/libcommon-lib-digestcommon.o", - "ssl/record/libcommon-lib-tls_pad.o" + "ssl/record/methods/libcommon-lib-tls_pad.o" ], "providers/libcrypto-lib-baseprov.o" => [ "providers/baseprov.c" @@ -25245,6 +29491,9 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_aes_ccm_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_polyval.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_ocb.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_ocb_hw.o", @@ -25269,7 +29518,13 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_cts.o", "providers/implementations/ciphers/libdefault-lib-cipher_null.o", "providers/implementations/ciphers/libdefault-lib-cipher_sm4.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_sm4_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes_common.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes_default.o", @@ -25298,11 +29553,16 @@ our %unified_info = ( "providers/implementations/encode_decode/libdefault-lib-encode_key2ms.o", "providers/implementations/encode_decode/libdefault-lib-encode_key2text.o", "providers/implementations/encode_decode/libdefault-lib-endecoder_common.o", + "providers/implementations/encode_decode/libdefault-lib-ml_common_codecs.o", + "providers/implementations/encode_decode/libdefault-lib-ml_dsa_codecs.o", + "providers/implementations/encode_decode/libdefault-lib-ml_kem_codecs.o", "providers/implementations/exchange/libdefault-lib-dh_exch.o", "providers/implementations/exchange/libdefault-lib-ecdh_exch.o", "providers/implementations/exchange/libdefault-lib-ecx_exch.o", "providers/implementations/exchange/libdefault-lib-kdf_exch.o", + "providers/implementations/kdfs/libdefault-lib-argon2.o", "providers/implementations/kdfs/libdefault-lib-hkdf.o", + "providers/implementations/kdfs/libdefault-lib-hmacdrbg_kdf.o", "providers/implementations/kdfs/libdefault-lib-kbkdf.o", "providers/implementations/kdfs/libdefault-lib-krb5kdf.o", "providers/implementations/kdfs/libdefault-lib-pbkdf2.o", @@ -25313,6 +29573,11 @@ our %unified_info = ( "providers/implementations/kdfs/libdefault-lib-sskdf.o", "providers/implementations/kdfs/libdefault-lib-tls1_prf.o", "providers/implementations/kdfs/libdefault-lib-x942kdf.o", + "providers/implementations/kem/libdefault-lib-ec_kem.o", + "providers/implementations/kem/libdefault-lib-ecx_kem.o", + "providers/implementations/kem/libdefault-lib-kem_util.o", + "providers/implementations/kem/libdefault-lib-ml_kem_kem.o", + "providers/implementations/kem/libdefault-lib-mlx_kem.o", "providers/implementations/kem/libdefault-lib-rsa_kem.o", "providers/implementations/keymgmt/libdefault-lib-dh_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-dsa_kmgmt.o", @@ -25320,7 +29585,11 @@ our %unified_info = ( "providers/implementations/keymgmt/libdefault-lib-ecx_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-kdf_legacy_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-mac_legacy_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-ml_dsa_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-ml_kem_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-mlx_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-rsa_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-slh_dsa_kmgmt.o", "providers/implementations/macs/libdefault-lib-blake2b_mac.o", "providers/implementations/macs/libdefault-lib-blake2s_mac.o", "providers/implementations/macs/libdefault-lib-cmac_prov.o", @@ -25329,12 +29598,12 @@ our %unified_info = ( "providers/implementations/macs/libdefault-lib-kmac_prov.o", "providers/implementations/macs/libdefault-lib-poly1305_prov.o", "providers/implementations/macs/libdefault-lib-siphash_prov.o", - "providers/implementations/rands/libdefault-lib-crngt.o", "providers/implementations/rands/libdefault-lib-drbg.o", "providers/implementations/rands/libdefault-lib-drbg_ctr.o", "providers/implementations/rands/libdefault-lib-drbg_hash.o", "providers/implementations/rands/libdefault-lib-drbg_hmac.o", "providers/implementations/rands/libdefault-lib-seed_src.o", + "providers/implementations/rands/libdefault-lib-seed_src_jitter.o", "providers/implementations/rands/libdefault-lib-test_rng.o", "providers/implementations/rands/seeding/libdefault-lib-rand_cpu_x86.o", "providers/implementations/rands/seeding/libdefault-lib-rand_tsc.o", @@ -25344,11 +29613,15 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-ecdsa_sig.o", "providers/implementations/signature/libdefault-lib-eddsa_sig.o", "providers/implementations/signature/libdefault-lib-mac_legacy_sig.o", + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o", "providers/implementations/signature/libdefault-lib-rsa_sig.o", + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o", "providers/implementations/signature/libdefault-lib-sm2_sig.o", + "providers/implementations/skeymgmt/libdefault-lib-aes_skmgmt.o", + "providers/implementations/skeymgmt/libdefault-lib-generic.o", "providers/implementations/storemgmt/libdefault-lib-file_store.o", "providers/implementations/storemgmt/libdefault-lib-file_store_any2obj.o", - "ssl/libdefault-lib-s3_cbc.o" + "ssl/record/methods/libdefault-lib-ssl3_cbc.o" ], "providers/libfips.a" => [ "crypto/aes/libfips-lib-aes-586.o", @@ -25456,14 +29729,15 @@ our %unified_info = ( "crypto/evp/libfips-lib-kem.o", "crypto/evp/libfips-lib-keymgmt_lib.o", "crypto/evp/libfips-lib-keymgmt_meth.o", - "crypto/evp/libfips-lib-m_sigver.o", "crypto/evp/libfips-lib-mac_lib.o", "crypto/evp/libfips-lib-mac_meth.o", "crypto/evp/libfips-lib-p_lib.o", "crypto/evp/libfips-lib-pmeth_check.o", "crypto/evp/libfips-lib-pmeth_gn.o", "crypto/evp/libfips-lib-pmeth_lib.o", + "crypto/evp/libfips-lib-s_lib.o", "crypto/evp/libfips-lib-signature.o", + "crypto/evp/libfips-lib-skeymgmt_meth.o", "crypto/ffc/libfips-lib-ffc_backend.o", "crypto/ffc/libfips-lib-ffc_dh.o", "crypto/ffc/libfips-lib-ffc_key_generate.o", @@ -25471,6 +29745,8 @@ our %unified_info = ( "crypto/ffc/libfips-lib-ffc_params.o", "crypto/ffc/libfips-lib-ffc_params_generate.o", "crypto/ffc/libfips-lib-ffc_params_validate.o", + "crypto/hashtable/libfips-lib-hashfunc.o", + "crypto/hashtable/libfips-lib-hashtable.o", "crypto/hmac/libfips-lib-hmac.o", "crypto/lhash/libfips-lib-lhash.o", "crypto/libfips-lib-asn1_dsa.o", @@ -25492,6 +29768,7 @@ our %unified_info = ( "crypto/libfips-lib-params.o", "crypto/libfips-lib-params_dup.o", "crypto/libfips-lib-params_from_text.o", + "crypto/libfips-lib-params_idx.o", "crypto/libfips-lib-provider_core.o", "crypto/libfips-lib-provider_predefined.o", "crypto/libfips-lib-self_test_core.o", @@ -25500,7 +29777,17 @@ our %unified_info = ( "crypto/libfips-lib-threads_none.o", "crypto/libfips-lib-threads_pthread.o", "crypto/libfips-lib-threads_win.o", + "crypto/libfips-lib-time.o", "crypto/libfips-lib-x86cpuid.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_encoders.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_key.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_key_compress.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_matrix.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_ntt.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_params.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_sample.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_sign.o", + "crypto/ml_kem/libfips-lib-ml_kem.o", "crypto/modes/libfips-lib-cbc128.o", "crypto/modes/libfips-lib-ccm128.o", "crypto/modes/libfips-lib-cfb128.o", @@ -25510,6 +29797,7 @@ our %unified_info = ( "crypto/modes/libfips-lib-ofb128.o", "crypto/modes/libfips-lib-wrap128.o", "crypto/modes/libfips-lib-xts128.o", + "crypto/modes/libfips-lib-xts128gb.o", "crypto/property/libfips-lib-defn_cache.o", "crypto/property/libfips-lib-property.o", "crypto/property/libfips-lib-property_parse.o", @@ -25541,7 +29829,23 @@ our %unified_info = ( "crypto/sha/libfips-lib-sha3.o", "crypto/sha/libfips-lib-sha512-586.o", "crypto/sha/libfips-lib-sha512.o", + "crypto/slh_dsa/libfips-lib-slh_adrs.o", + "crypto/slh_dsa/libfips-lib-slh_dsa.o", + "crypto/slh_dsa/libfips-lib-slh_dsa_hash_ctx.o", + "crypto/slh_dsa/libfips-lib-slh_dsa_key.o", + "crypto/slh_dsa/libfips-lib-slh_fors.o", + "crypto/slh_dsa/libfips-lib-slh_hash.o", + "crypto/slh_dsa/libfips-lib-slh_hypertree.o", + "crypto/slh_dsa/libfips-lib-slh_params.o", + "crypto/slh_dsa/libfips-lib-slh_wots.o", + "crypto/slh_dsa/libfips-lib-slh_xmss.o", "crypto/stack/libfips-lib-stack.o", + "crypto/thread/arch/libfips-lib-thread_none.o", + "crypto/thread/arch/libfips-lib-thread_posix.o", + "crypto/thread/arch/libfips-lib-thread_win.o", + "crypto/thread/libfips-lib-api.o", + "crypto/thread/libfips-lib-arch.o", + "crypto/thread/libfips-lib-internal.o", "providers/common/der/libfips-lib-der_rsa_sig.o", "providers/common/libfips-lib-bio_prov.o", "providers/common/libfips-lib-capabilities.o", @@ -25550,6 +29854,7 @@ our %unified_info = ( "providers/common/libfips-lib-provider_util.o", "providers/common/libfips-lib-securitycheck.o", "providers/common/libfips-lib-securitycheck_fips.o", + "providers/fips/libfips-lib-fipsindicator.o", "providers/fips/libfips-lib-fipsprov.o", "providers/fips/libfips-lib-self_test.o", "providers/fips/libfips-lib-self_test_kats.o", @@ -25587,6 +29892,8 @@ our %unified_info = ( "providers/implementations/kdfs/libfips-lib-sskdf.o", "providers/implementations/kdfs/libfips-lib-tls1_prf.o", "providers/implementations/kdfs/libfips-lib-x942kdf.o", + "providers/implementations/kem/libfips-lib-ml_kem_kem.o", + "providers/implementations/kem/libfips-lib-mlx_kem.o", "providers/implementations/kem/libfips-lib-rsa_kem.o", "providers/implementations/keymgmt/libfips-lib-dh_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-dsa_kmgmt.o", @@ -25594,24 +29901,32 @@ our %unified_info = ( "providers/implementations/keymgmt/libfips-lib-ecx_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-kdf_legacy_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-mac_legacy_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-ml_dsa_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-ml_kem_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-mlx_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-rsa_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-slh_dsa_kmgmt.o", "providers/implementations/macs/libfips-lib-cmac_prov.o", "providers/implementations/macs/libfips-lib-gmac_prov.o", "providers/implementations/macs/libfips-lib-hmac_prov.o", "providers/implementations/macs/libfips-lib-kmac_prov.o", - "providers/implementations/rands/libfips-lib-crngt.o", "providers/implementations/rands/libfips-lib-drbg.o", "providers/implementations/rands/libfips-lib-drbg_ctr.o", "providers/implementations/rands/libfips-lib-drbg_hash.o", "providers/implementations/rands/libfips-lib-drbg_hmac.o", + "providers/implementations/rands/libfips-lib-fips_crng_test.o", "providers/implementations/rands/libfips-lib-test_rng.o", "providers/implementations/signature/libfips-lib-dsa_sig.o", "providers/implementations/signature/libfips-lib-ecdsa_sig.o", "providers/implementations/signature/libfips-lib-eddsa_sig.o", "providers/implementations/signature/libfips-lib-mac_legacy_sig.o", + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o", "providers/implementations/signature/libfips-lib-rsa_sig.o", + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o", + "providers/implementations/skeymgmt/libfips-lib-aes_skmgmt.o", + "providers/implementations/skeymgmt/libfips-lib-generic.o", "providers/libcommon.a", - "ssl/libfips-lib-s3_cbc.o" + "ssl/record/methods/libfips-lib-ssl3_cbc.o" ], "providers/liblegacy-lib-prov_running.o" => [ "providers/prov_running.c" @@ -25641,13 +29956,12 @@ our %unified_info = ( "providers/implementations/digests/liblegacy-lib-ripemd_prov.o", "providers/implementations/digests/liblegacy-lib-wp_prov.o", "providers/implementations/kdfs/liblegacy-lib-pbkdf1.o", + "providers/implementations/kdfs/liblegacy-lib-pvkkdf.o", "providers/liblegacy-lib-prov_running.o" ], - "ssl/libdefault-lib-s3_cbc.o" => [ - "ssl/s3_cbc.c" - ], - "ssl/libfips-lib-s3_cbc.o" => [ - "ssl/s3_cbc.c" + "providers/libtemplate.a" => [ + "providers/implementations/kem/libtemplate-lib-template_kem.o", + "providers/implementations/keymgmt/libtemplate-lib-template_kmgmt.o" ], "ssl/libssl-lib-bio_ssl.o" => [ "ssl/bio_ssl.c" @@ -25667,6 +29981,9 @@ our %unified_info = ( "ssl/libssl-lib-pqueue.o" => [ "ssl/pqueue.c" ], + "ssl/libssl-lib-priority_queue.o" => [ + "ssl/priority_queue.c" + ], "ssl/libssl-lib-s3_enc.o" => [ "ssl/s3_enc.c" ], @@ -25682,15 +29999,15 @@ our %unified_info = ( "ssl/libssl-lib-ssl_cert.o" => [ "ssl/ssl_cert.c" ], + "ssl/libssl-lib-ssl_cert_comp.o" => [ + "ssl/ssl_cert_comp.c" + ], "ssl/libssl-lib-ssl_ciph.o" => [ "ssl/ssl_ciph.c" ], "ssl/libssl-lib-ssl_conf.o" => [ "ssl/ssl_conf.c" ], - "ssl/libssl-lib-ssl_err.o" => [ - "ssl/ssl_err.c" - ], "ssl/libssl-lib-ssl_err_legacy.o" => [ "ssl/ssl_err_legacy.c" ], @@ -25739,11 +30056,131 @@ our %unified_info = ( "ssl/libssl-lib-tls_srp.o" => [ "ssl/tls_srp.c" ], - "ssl/record/libcommon-lib-tls_pad.o" => [ - "ssl/record/tls_pad.c" + "ssl/quic/libssl-lib-cc_newreno.o" => [ + "ssl/quic/cc_newreno.c" + ], + "ssl/quic/libssl-lib-json_enc.o" => [ + "ssl/quic/json_enc.c" + ], + "ssl/quic/libssl-lib-qlog.o" => [ + "ssl/quic/qlog.c" + ], + "ssl/quic/libssl-lib-qlog_event_helpers.o" => [ + "ssl/quic/qlog_event_helpers.c" + ], + "ssl/quic/libssl-lib-quic_ackm.o" => [ + "ssl/quic/quic_ackm.c" + ], + "ssl/quic/libssl-lib-quic_cfq.o" => [ + "ssl/quic/quic_cfq.c" + ], + "ssl/quic/libssl-lib-quic_channel.o" => [ + "ssl/quic/quic_channel.c" + ], + "ssl/quic/libssl-lib-quic_demux.o" => [ + "ssl/quic/quic_demux.c" + ], + "ssl/quic/libssl-lib-quic_engine.o" => [ + "ssl/quic/quic_engine.c" + ], + "ssl/quic/libssl-lib-quic_fc.o" => [ + "ssl/quic/quic_fc.c" + ], + "ssl/quic/libssl-lib-quic_fifd.o" => [ + "ssl/quic/quic_fifd.c" + ], + "ssl/quic/libssl-lib-quic_impl.o" => [ + "ssl/quic/quic_impl.c" + ], + "ssl/quic/libssl-lib-quic_lcidm.o" => [ + "ssl/quic/quic_lcidm.c" + ], + "ssl/quic/libssl-lib-quic_method.o" => [ + "ssl/quic/quic_method.c" + ], + "ssl/quic/libssl-lib-quic_obj.o" => [ + "ssl/quic/quic_obj.c" + ], + "ssl/quic/libssl-lib-quic_port.o" => [ + "ssl/quic/quic_port.c" + ], + "ssl/quic/libssl-lib-quic_rcidm.o" => [ + "ssl/quic/quic_rcidm.c" + ], + "ssl/quic/libssl-lib-quic_reactor.o" => [ + "ssl/quic/quic_reactor.c" + ], + "ssl/quic/libssl-lib-quic_reactor_wait_ctx.o" => [ + "ssl/quic/quic_reactor_wait_ctx.c" + ], + "ssl/quic/libssl-lib-quic_record_rx.o" => [ + "ssl/quic/quic_record_rx.c" + ], + "ssl/quic/libssl-lib-quic_record_shared.o" => [ + "ssl/quic/quic_record_shared.c" + ], + "ssl/quic/libssl-lib-quic_record_tx.o" => [ + "ssl/quic/quic_record_tx.c" + ], + "ssl/quic/libssl-lib-quic_record_util.o" => [ + "ssl/quic/quic_record_util.c" + ], + "ssl/quic/libssl-lib-quic_rstream.o" => [ + "ssl/quic/quic_rstream.c" ], - "ssl/record/libssl-lib-dtls1_bitmap.o" => [ - "ssl/record/dtls1_bitmap.c" + "ssl/quic/libssl-lib-quic_rx_depack.o" => [ + "ssl/quic/quic_rx_depack.c" + ], + "ssl/quic/libssl-lib-quic_sf_list.o" => [ + "ssl/quic/quic_sf_list.c" + ], + "ssl/quic/libssl-lib-quic_srt_gen.o" => [ + "ssl/quic/quic_srt_gen.c" + ], + "ssl/quic/libssl-lib-quic_srtm.o" => [ + "ssl/quic/quic_srtm.c" + ], + "ssl/quic/libssl-lib-quic_sstream.o" => [ + "ssl/quic/quic_sstream.c" + ], + "ssl/quic/libssl-lib-quic_statm.o" => [ + "ssl/quic/quic_statm.c" + ], + "ssl/quic/libssl-lib-quic_stream_map.o" => [ + "ssl/quic/quic_stream_map.c" + ], + "ssl/quic/libssl-lib-quic_thread_assist.o" => [ + "ssl/quic/quic_thread_assist.c" + ], + "ssl/quic/libssl-lib-quic_tls.o" => [ + "ssl/quic/quic_tls.c" + ], + "ssl/quic/libssl-lib-quic_tls_api.o" => [ + "ssl/quic/quic_tls_api.c" + ], + "ssl/quic/libssl-lib-quic_trace.o" => [ + "ssl/quic/quic_trace.c" + ], + "ssl/quic/libssl-lib-quic_tserver.o" => [ + "ssl/quic/quic_tserver.c" + ], + "ssl/quic/libssl-lib-quic_txp.o" => [ + "ssl/quic/quic_txp.c" + ], + "ssl/quic/libssl-lib-quic_txpim.o" => [ + "ssl/quic/quic_txpim.c" + ], + "ssl/quic/libssl-lib-quic_types.o" => [ + "ssl/quic/quic_types.c" + ], + "ssl/quic/libssl-lib-quic_wire.o" => [ + "ssl/quic/quic_wire.c" + ], + "ssl/quic/libssl-lib-quic_wire_pkt.o" => [ + "ssl/quic/quic_wire_pkt.c" + ], + "ssl/quic/libssl-lib-uint_set.o" => [ + "ssl/quic/uint_set.c" ], "ssl/record/libssl-lib-rec_layer_d1.o" => [ "ssl/record/rec_layer_d1.c" @@ -25751,14 +30188,44 @@ our %unified_info = ( "ssl/record/libssl-lib-rec_layer_s3.o" => [ "ssl/record/rec_layer_s3.c" ], - "ssl/record/libssl-lib-ssl3_buffer.o" => [ - "ssl/record/ssl3_buffer.c" + "ssl/record/methods/libcommon-lib-tls_pad.o" => [ + "ssl/record/methods/tls_pad.c" + ], + "ssl/record/methods/libdefault-lib-ssl3_cbc.o" => [ + "ssl/record/methods/ssl3_cbc.c" + ], + "ssl/record/methods/libfips-lib-ssl3_cbc.o" => [ + "ssl/record/methods/ssl3_cbc.c" + ], + "ssl/record/methods/libssl-lib-dtls_meth.o" => [ + "ssl/record/methods/dtls_meth.c" + ], + "ssl/record/methods/libssl-lib-ssl3_meth.o" => [ + "ssl/record/methods/ssl3_meth.c" + ], + "ssl/record/methods/libssl-lib-tls13_meth.o" => [ + "ssl/record/methods/tls13_meth.c" + ], + "ssl/record/methods/libssl-lib-tls1_meth.o" => [ + "ssl/record/methods/tls1_meth.c" + ], + "ssl/record/methods/libssl-lib-tls_common.o" => [ + "ssl/record/methods/tls_common.c" ], - "ssl/record/libssl-lib-ssl3_record.o" => [ - "ssl/record/ssl3_record.c" + "ssl/record/methods/libssl-lib-tls_multib.o" => [ + "ssl/record/methods/tls_multib.c" ], - "ssl/record/libssl-lib-ssl3_record_tls13.o" => [ - "ssl/record/ssl3_record_tls13.c" + "ssl/record/methods/libssl-lib-tlsany_meth.o" => [ + "ssl/record/methods/tlsany_meth.c" + ], + "ssl/rio/libssl-lib-poll_builder.o" => [ + "ssl/rio/poll_builder.c" + ], + "ssl/rio/libssl-lib-poll_immediate.o" => [ + "ssl/rio/poll_immediate.c" + ], + "ssl/rio/libssl-lib-rio_notifier.o" => [ + "ssl/rio/rio_notifier.c" ], "ssl/statem/libssl-lib-extensions.o" => [ "ssl/statem/extensions.c" @@ -25854,6 +30321,8 @@ our %unified_info = ( "test/asn1_string_table_test.c" ], "test/asn1_time_test" => [ + "crypto/asn1/asn1_time_test-bin-a_time.o", + "crypto/asn1_time_test-bin-ctype.o", "test/asn1_time_test-bin-asn1_time_test.o" ], "test/asn1_time_test-bin-asn1_time_test.o" => [ @@ -25884,6 +30353,18 @@ our %unified_info = ( "test/bftest-bin-bftest.o" => [ "test/bftest.c" ], + "test/bio_addr_test" => [ + "test/bio_addr_test-bin-bio_addr_test.o" + ], + "test/bio_addr_test-bin-bio_addr_test.o" => [ + "test/bio_addr_test.c" + ], + "test/bio_base64_test" => [ + "test/bio_base64_test-bin-bio_base64_test.o" + ], + "test/bio_base64_test-bin-bio_base64_test.o" => [ + "test/bio_base64_test.c" + ], "test/bio_callback_test" => [ "test/bio_callback_test-bin-bio_callback_test.o" ], @@ -25896,6 +30377,12 @@ our %unified_info = ( "test/bio_core_test-bin-bio_core_test.o" => [ "test/bio_core_test.c" ], + "test/bio_dgram_test" => [ + "test/bio_dgram_test-bin-bio_dgram_test.o" + ], + "test/bio_dgram_test-bin-bio_dgram_test.o" => [ + "test/bio_dgram_test.c" + ], "test/bio_enc_test" => [ "test/bio_enc_test-bin-bio_enc_test.o" ], @@ -25908,6 +30395,12 @@ our %unified_info = ( "test/bio_memleak_test-bin-bio_memleak_test.o" => [ "test/bio_memleak_test.c" ], + "test/bio_meth_test" => [ + "test/bio_meth_test-bin-bio_meth_test.o" + ], + "test/bio_meth_test-bin-bio_meth_test.o" => [ + "test/bio_meth_test.c" + ], "test/bio_prefix_text" => [ "test/bio_prefix_text-bin-bio_prefix_text.o" ], @@ -25926,6 +30419,12 @@ our %unified_info = ( "test/bio_readbuffer_test-bin-bio_readbuffer_test.o" => [ "test/bio_readbuffer_test.c" ], + "test/bio_tfo_test" => [ + "test/bio_tfo_test-bin-bio_tfo_test.o" + ], + "test/bio_tfo_test-bin-bio_tfo_test.o" => [ + "test/bio_tfo_test.c" + ], "test/bioprinttest" => [ "test/bioprinttest-bin-bioprinttest.o" ], @@ -25944,6 +30443,12 @@ our %unified_info = ( "test/bntest-bin-bntest.o" => [ "test/bntest.c" ], + "test/build_wincrypt_test" => [ + "test/build_wincrypt_test-bin-build_wincrypt_test.o" + ], + "test/build_wincrypt_test-bin-build_wincrypt_test.o" => [ + "test/build_wincrypt_test.c" + ], "test/buildtest_c_aes" => [ "test/buildtest_c_aes-bin-buildtest_aes.o" ], @@ -25974,6 +30479,12 @@ our %unified_info = ( "test/buildtest_c_buffer-bin-buildtest_buffer.o" => [ "test/buildtest_buffer.c" ], + "test/buildtest_c_byteorder" => [ + "test/buildtest_c_byteorder-bin-buildtest_byteorder.o" + ], + "test/buildtest_c_byteorder-bin-buildtest_byteorder.o" => [ + "test/buildtest_byteorder.c" + ], "test/buildtest_c_camellia" => [ "test/buildtest_c_camellia-bin-buildtest_camellia.o" ], @@ -26022,12 +30533,6 @@ our %unified_info = ( "test/buildtest_c_core_dispatch-bin-buildtest_core_dispatch.o" => [ "test/buildtest_core_dispatch.c" ], - "test/buildtest_c_core_names" => [ - "test/buildtest_c_core_names-bin-buildtest_core_names.o" - ], - "test/buildtest_c_core_names-bin-buildtest_core_names.o" => [ - "test/buildtest_core_names.c" - ], "test/buildtest_c_core_object" => [ "test/buildtest_c_core_object-bin-buildtest_core_object.o" ], @@ -26076,6 +30581,12 @@ our %unified_info = ( "test/buildtest_c_e_os2-bin-buildtest_e_os2.o" => [ "test/buildtest_e_os2.c" ], + "test/buildtest_c_e_ostime" => [ + "test/buildtest_c_e_ostime-bin-buildtest_e_ostime.o" + ], + "test/buildtest_c_e_ostime-bin-buildtest_e_ostime.o" => [ + "test/buildtest_e_ostime.c" + ], "test/buildtest_c_ebcdic" => [ "test/buildtest_c_ebcdic-bin-buildtest_ebcdic.o" ], @@ -26130,6 +30641,12 @@ our %unified_info = ( "test/buildtest_c_hmac-bin-buildtest_hmac.o" => [ "test/buildtest_hmac.c" ], + "test/buildtest_c_hpke" => [ + "test/buildtest_c_hpke-bin-buildtest_hpke.o" + ], + "test/buildtest_c_hpke-bin-buildtest_hpke.o" => [ + "test/buildtest_hpke.c" + ], "test/buildtest_c_http" => [ "test/buildtest_c_http-bin-buildtest_http.o" ], @@ -26142,6 +30659,12 @@ our %unified_info = ( "test/buildtest_c_idea-bin-buildtest_idea.o" => [ "test/buildtest_idea.c" ], + "test/buildtest_c_indicator" => [ + "test/buildtest_c_indicator-bin-buildtest_indicator.o" + ], + "test/buildtest_c_indicator-bin-buildtest_indicator.o" => [ + "test/buildtest_indicator.c" + ], "test/buildtest_c_kdf" => [ "test/buildtest_c_kdf-bin-buildtest_kdf.o" ], @@ -26172,6 +30695,12 @@ our %unified_info = ( "test/buildtest_c_mdc2-bin-buildtest_mdc2.o" => [ "test/buildtest_mdc2.c" ], + "test/buildtest_c_ml_kem" => [ + "test/buildtest_c_ml_kem-bin-buildtest_ml_kem.o" + ], + "test/buildtest_c_ml_kem-bin-buildtest_ml_kem.o" => [ + "test/buildtest_ml_kem.c" + ], "test/buildtest_c_modes" => [ "test/buildtest_c_modes-bin-buildtest_modes.o" ], @@ -26232,6 +30761,12 @@ our %unified_info = ( "test/buildtest_c_provider-bin-buildtest_provider.o" => [ "test/buildtest_provider.c" ], + "test/buildtest_c_quic" => [ + "test/buildtest_c_quic-bin-buildtest_quic.o" + ], + "test/buildtest_c_quic-bin-buildtest_quic.o" => [ + "test/buildtest_quic.c" + ], "test/buildtest_c_rand" => [ "test/buildtest_c_rand-bin-buildtest_rand.o" ], @@ -26316,6 +30851,12 @@ our %unified_info = ( "test/buildtest_c_symhacks-bin-buildtest_symhacks.o" => [ "test/buildtest_symhacks.c" ], + "test/buildtest_c_thread" => [ + "test/buildtest_c_thread-bin-buildtest_thread.o" + ], + "test/buildtest_c_thread-bin-buildtest_thread.o" => [ + "test/buildtest_thread.c" + ], "test/buildtest_c_tls1" => [ "test/buildtest_c_tls1-bin-buildtest_tls1.o" ], @@ -26346,6 +30887,29 @@ our %unified_info = ( "test/buildtest_c_whrlpool-bin-buildtest_whrlpool.o" => [ "test/buildtest_whrlpool.c" ], + "test/byteorder_test" => [ + "test/byteorder_test-bin-byteorder_test.o" + ], + "test/byteorder_test-bin-byteorder_test.o" => [ + "test/byteorder_test.c" + ], + "test/ca_internals_test" => [ + "apps/ca_internals_test-bin-ca.o", + "apps/lib/ca_internals_test-bin-app_libctx.o", + "apps/lib/ca_internals_test-bin-app_provider.o", + "apps/lib/ca_internals_test-bin-app_rand.o", + "apps/lib/ca_internals_test-bin-app_x509.o", + "apps/lib/ca_internals_test-bin-apps.o", + "apps/lib/ca_internals_test-bin-apps_ui.o", + "apps/lib/ca_internals_test-bin-engine.o", + "apps/lib/ca_internals_test-bin-fmt.o", + "crypto/asn1/ca_internals_test-bin-a_time.o", + "crypto/ca_internals_test-bin-ctype.o", + "test/ca_internals_test-bin-ca_internals_test.o" + ], + "test/ca_internals_test-bin-ca_internals_test.o" => [ + "test/ca_internals_test.c" + ], "test/casttest" => [ "test/casttest-bin-casttest.o" ], @@ -26524,6 +31088,12 @@ our %unified_info = ( "test/danetest-bin-danetest.o" => [ "test/danetest.c" ], + "test/decoder_propq_test" => [ + "test/decoder_propq_test-bin-decoder_propq_test.o" + ], + "test/decoder_propq_test-bin-decoder_propq_test.o" => [ + "test/decoder_propq_test.c" + ], "test/defltfips_test" => [ "test/defltfips_test-bin-defltfips_test.o" ], @@ -26605,6 +31175,7 @@ our %unified_info = ( "test/ectest.c" ], "test/endecode_test" => [ + "providers/endecode_test-bin-legacyprov.o", "test/endecode_test-bin-endecode_test.o", "test/helpers/endecode_test-bin-predefined_dhparams.o" ], @@ -26637,17 +31208,29 @@ our %unified_info = ( ], "test/evp_extra_test" => [ "providers/evp_extra_test-bin-legacyprov.o", - "test/evp_extra_test-bin-evp_extra_test.o" + "test/evp_extra_test-bin-evp_extra_test.o", + "test/evp_extra_test-bin-fake_pipelineprov.o", + "test/evp_extra_test-bin-fake_rsaprov.o" ], "test/evp_extra_test-bin-evp_extra_test.o" => [ "test/evp_extra_test.c" ], + "test/evp_extra_test-bin-fake_pipelineprov.o" => [ + "test/fake_pipelineprov.c" + ], + "test/evp_extra_test-bin-fake_rsaprov.o" => [ + "test/fake_rsaprov.c" + ], "test/evp_extra_test2" => [ - "test/evp_extra_test2-bin-evp_extra_test2.o" + "test/evp_extra_test2-bin-evp_extra_test2.o", + "test/evp_extra_test2-bin-tls-provider.o" ], "test/evp_extra_test2-bin-evp_extra_test2.o" => [ "test/evp_extra_test2.c" ], + "test/evp_extra_test2-bin-tls-provider.o" => [ + "test/tls-provider.c" + ], "test/evp_fetch_prov_test" => [ "test/evp_fetch_prov_test-bin-evp_fetch_prov_test.o" ], @@ -26672,6 +31255,12 @@ our %unified_info = ( "test/evp_pkey_ctx_new_from_name-bin-evp_pkey_ctx_new_from_name.o" => [ "test/evp_pkey_ctx_new_from_name.c" ], + "test/evp_pkey_dhkem_test" => [ + "test/evp_pkey_dhkem_test-bin-evp_pkey_dhkem_test.o" + ], + "test/evp_pkey_dhkem_test-bin-evp_pkey_dhkem_test.o" => [ + "test/evp_pkey_dhkem_test.c" + ], "test/evp_pkey_dparams_test" => [ "test/evp_pkey_dparams_test-bin-evp_pkey_dparams_test.o" ], @@ -26684,12 +31273,28 @@ our %unified_info = ( "test/evp_pkey_provided_test-bin-evp_pkey_provided_test.o" => [ "test/evp_pkey_provided_test.c" ], + "test/evp_skey_test" => [ + "test/evp_skey_test-bin-evp_skey_test.o", + "test/evp_skey_test-bin-fake_cipherprov.o" + ], + "test/evp_skey_test-bin-evp_skey_test.o" => [ + "test/evp_skey_test.c" + ], + "test/evp_skey_test-bin-fake_cipherprov.o" => [ + "test/fake_cipherprov.c" + ], "test/evp_test" => [ "test/evp_test-bin-evp_test.o" ], "test/evp_test-bin-evp_test.o" => [ "test/evp_test.c" ], + "test/evp_xof_test" => [ + "test/evp_xof_test-bin-evp_xof_test.o" + ], + "test/evp_xof_test-bin-evp_xof_test.o" => [ + "test/evp_xof_test.c" + ], "test/exdatatest" => [ "test/exdatatest-bin-exdatatest.o" ], @@ -26775,15 +31380,108 @@ our %unified_info = ( "test/helpers/fatalerrtest-bin-ssltestlib.o" => [ "test/helpers/ssltestlib.c" ], + "test/helpers/json_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/json_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/json_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/json_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/pkcs12_api_test-bin-pkcs12.o" => [ + "test/helpers/pkcs12.c" + ], "test/helpers/pkcs12_format_test-bin-pkcs12.o" => [ "test/helpers/pkcs12.c" ], + "test/helpers/quic_multistream_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quic_multistream_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quic_multistream_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quic_multistream_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quic_newcid_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quic_newcid_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quic_newcid_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quic_newcid_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quic_radix_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quic_radix_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quic_radix_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quic_radix_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quic_srt_gen_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quic_srt_gen_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quic_srt_gen_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quic_srt_gen_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quicapitest-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quicapitest-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quicapitest-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quicapitest-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quicfaultstest-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quicfaultstest-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quicfaultstest-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quicfaultstest-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], "test/helpers/recordlentest-bin-ssltestlib.o" => [ "test/helpers/ssltestlib.c" ], + "test/helpers/rpktest-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], "test/helpers/servername_test-bin-ssltestlib.o" => [ "test/helpers/ssltestlib.c" ], + "test/helpers/ssl_handshake_rtt_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], "test/helpers/ssl_old_test-bin-predefined_dhparams.o" => [ "test/helpers/predefined_dhparams.c" ], @@ -26811,6 +31509,9 @@ our %unified_info = ( "test/helpers/tls13ccstest-bin-ssltestlib.o" => [ "test/helpers/ssltestlib.c" ], + "test/helpers/tls13groupselection_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], "test/hexstr_test" => [ "test/hexstr_test-bin-hexstr_test.o" ], @@ -26823,6 +31524,12 @@ our %unified_info = ( "test/hmactest-bin-hmactest.o" => [ "test/hmactest.c" ], + "test/hpke_test" => [ + "test/hpke_test-bin-hpke_test.o" + ], + "test/hpke_test-bin-hpke_test.o" => [ + "test/hpke_test.c" + ], "test/http_test" => [ "test/http_test-bin-http_test.o" ], @@ -26841,6 +31548,16 @@ our %unified_info = ( "test/igetest-bin-igetest.o" => [ "test/igetest.c" ], + "test/json_test" => [ + "test/helpers/json_test-bin-noisydgrambio.o", + "test/helpers/json_test-bin-pktsplitbio.o", + "test/helpers/json_test-bin-quictestlib.o", + "test/helpers/json_test-bin-ssltestlib.o", + "test/json_test-bin-json_test.o" + ], + "test/json_test-bin-json_test.o" => [ + "test/json_test.c" + ], "test/keymgmt_internal_test" => [ "test/keymgmt_internal_test-bin-keymgmt_internal_test.o" ], @@ -26861,6 +31578,7 @@ our %unified_info = ( "test/testutil/libtestutil-lib-driver.o", "test/testutil/libtestutil-lib-fake_random.o", "test/testutil/libtestutil-lib-format_output.o", + "test/testutil/libtestutil-lib-helper.o", "test/testutil/libtestutil-lib-load.o", "test/testutil/libtestutil-lib-main.o", "test/testutil/libtestutil-lib-options.o", @@ -26873,6 +31591,12 @@ our %unified_info = ( "test/testutil/libtestutil-lib-tests.o", "test/testutil/libtestutil-lib-testutil_init.o" ], + "test/list_test" => [ + "test/list_test-bin-list_test.o" + ], + "test/list_test-bin-list_test.o" => [ + "test/list_test.c" + ], "test/localetest" => [ "test/localetest-bin-localetest.o" ], @@ -26891,12 +31615,36 @@ our %unified_info = ( "test/mdc2test-bin-mdc2test.o" => [ "test/mdc2test.c" ], + "test/membio_test" => [ + "test/membio_test-bin-membio_test.o" + ], + "test/membio_test-bin-membio_test.o" => [ + "test/membio_test.c" + ], "test/memleaktest" => [ "test/memleaktest-bin-memleaktest.o" ], "test/memleaktest-bin-memleaktest.o" => [ "test/memleaktest.c" ], + "test/ml_dsa_test" => [ + "test/ml_dsa_test-bin-ml_dsa_test.o" + ], + "test/ml_dsa_test-bin-ml_dsa_test.o" => [ + "test/ml_dsa_test.c" + ], + "test/ml_kem_evp_extra_test" => [ + "test/ml_kem_evp_extra_test-bin-ml_kem_evp_extra_test.o" + ], + "test/ml_kem_evp_extra_test-bin-ml_kem_evp_extra_test.o" => [ + "test/ml_kem_evp_extra_test.c" + ], + "test/ml_kem_internal_test" => [ + "test/ml_kem_internal_test-bin-ml_kem_internal_test.o" + ], + "test/ml_kem_internal_test-bin-ml_kem_internal_test.o" => [ + "test/ml_kem_internal_test.c" + ], "test/modes_internal_test" => [ "test/modes_internal_test-bin-modes_internal_test.o" ], @@ -26940,11 +31688,18 @@ our %unified_info = ( "test/p_test.c" ], "test/packettest" => [ + "crypto/packettest-bin-quic_vlint.o", "test/packettest-bin-packettest.o" ], "test/packettest-bin-packettest.o" => [ "test/packettest.c" ], + "test/pairwise_fail_test" => [ + "test/pairwise_fail_test-bin-pairwise_fail_test.o" + ], + "test/pairwise_fail_test-bin-pairwise_fail_test.o" => [ + "test/pairwise_fail_test.c" + ], "test/param_build_test" => [ "test/param_build_test-bin-param_build_test.o" ], @@ -26993,6 +31748,13 @@ our %unified_info = ( "test/pemtest-bin-pemtest.o" => [ "test/pemtest.c" ], + "test/pkcs12_api_test" => [ + "test/helpers/pkcs12_api_test-bin-pkcs12.o", + "test/pkcs12_api_test-bin-pkcs12_api_test.o" + ], + "test/pkcs12_api_test-bin-pkcs12_api_test.o" => [ + "test/pkcs12_api_test.c" + ], "test/pkcs12_format_test" => [ "test/helpers/pkcs12_format_test-bin-pkcs12.o", "test/pkcs12_format_test-bin-pkcs12_format_test.o" @@ -27024,6 +31786,12 @@ our %unified_info = ( "test/poly1305_internal_test-bin-poly1305_internal_test.o" => [ "test/poly1305_internal_test.c" ], + "test/priority_queue_test" => [ + "test/priority_queue_test-bin-priority_queue_test.o" + ], + "test/priority_queue_test-bin-priority_queue_test.o" => [ + "test/priority_queue_test.c" + ], "test/property_test" => [ "test/property_test-bin-property_test.o" ], @@ -27042,6 +31810,12 @@ our %unified_info = ( "test/provfetchtest-bin-provfetchtest.o" => [ "test/provfetchtest.c" ], + "test/provider_default_search_path_test" => [ + "test/provider_default_search_path_test-bin-provider_default_search_path_test.o" + ], + "test/provider_default_search_path_test-bin-provider_default_search_path_test.o" => [ + "test/provider_default_search_path_test.c" + ], "test/provider_fallback_test" => [ "test/provider_fallback_test-bin-provider_fallback_test.o" ], @@ -27090,6 +31864,174 @@ our %unified_info = ( "test/punycode_test-bin-punycode_test.o" => [ "test/punycode_test.c" ], + "test/quic_ackm_test" => [ + "test/quic_ackm_test-bin-cc_dummy.o", + "test/quic_ackm_test-bin-quic_ackm_test.o" + ], + "test/quic_ackm_test-bin-cc_dummy.o" => [ + "test/cc_dummy.c" + ], + "test/quic_ackm_test-bin-quic_ackm_test.o" => [ + "test/quic_ackm_test.c" + ], + "test/quic_cc_test" => [ + "test/quic_cc_test-bin-quic_cc_test.o" + ], + "test/quic_cc_test-bin-quic_cc_test.o" => [ + "test/quic_cc_test.c" + ], + "test/quic_cfq_test" => [ + "test/quic_cfq_test-bin-quic_cfq_test.o" + ], + "test/quic_cfq_test-bin-quic_cfq_test.o" => [ + "test/quic_cfq_test.c" + ], + "test/quic_client_test" => [ + "test/quic_client_test-bin-quic_client_test.o" + ], + "test/quic_client_test-bin-quic_client_test.o" => [ + "test/quic_client_test.c" + ], + "test/quic_fc_test" => [ + "test/quic_fc_test-bin-quic_fc_test.o" + ], + "test/quic_fc_test-bin-quic_fc_test.o" => [ + "test/quic_fc_test.c" + ], + "test/quic_fifd_test" => [ + "test/quic_fifd_test-bin-cc_dummy.o", + "test/quic_fifd_test-bin-quic_fifd_test.o" + ], + "test/quic_fifd_test-bin-cc_dummy.o" => [ + "test/cc_dummy.c" + ], + "test/quic_fifd_test-bin-quic_fifd_test.o" => [ + "test/quic_fifd_test.c" + ], + "test/quic_lcidm_test" => [ + "test/quic_lcidm_test-bin-quic_lcidm_test.o" + ], + "test/quic_lcidm_test-bin-quic_lcidm_test.o" => [ + "test/quic_lcidm_test.c" + ], + "test/quic_multistream_test" => [ + "test/helpers/quic_multistream_test-bin-noisydgrambio.o", + "test/helpers/quic_multistream_test-bin-pktsplitbio.o", + "test/helpers/quic_multistream_test-bin-quictestlib.o", + "test/helpers/quic_multistream_test-bin-ssltestlib.o", + "test/quic_multistream_test-bin-quic_multistream_test.o" + ], + "test/quic_multistream_test-bin-quic_multistream_test.o" => [ + "test/quic_multistream_test.c" + ], + "test/quic_newcid_test" => [ + "test/helpers/quic_newcid_test-bin-noisydgrambio.o", + "test/helpers/quic_newcid_test-bin-pktsplitbio.o", + "test/helpers/quic_newcid_test-bin-quictestlib.o", + "test/helpers/quic_newcid_test-bin-ssltestlib.o", + "test/quic_newcid_test-bin-quic_newcid_test.o" + ], + "test/quic_newcid_test-bin-quic_newcid_test.o" => [ + "test/quic_newcid_test.c" + ], + "test/quic_qlog_test" => [ + "test/quic_qlog_test-bin-quic_qlog_test.o" + ], + "test/quic_qlog_test-bin-quic_qlog_test.o" => [ + "test/quic_qlog_test.c" + ], + "test/quic_radix_test" => [ + "test/helpers/quic_radix_test-bin-noisydgrambio.o", + "test/helpers/quic_radix_test-bin-pktsplitbio.o", + "test/helpers/quic_radix_test-bin-quictestlib.o", + "test/helpers/quic_radix_test-bin-ssltestlib.o", + "test/radix/quic_radix_test-bin-quic_radix.o" + ], + "test/quic_rcidm_test" => [ + "test/quic_rcidm_test-bin-quic_rcidm_test.o" + ], + "test/quic_rcidm_test-bin-quic_rcidm_test.o" => [ + "test/quic_rcidm_test.c" + ], + "test/quic_record_test" => [ + "test/quic_record_test-bin-quic_record_test.o" + ], + "test/quic_record_test-bin-quic_record_test.o" => [ + "test/quic_record_test.c" + ], + "test/quic_srt_gen_test" => [ + "test/helpers/quic_srt_gen_test-bin-noisydgrambio.o", + "test/helpers/quic_srt_gen_test-bin-pktsplitbio.o", + "test/helpers/quic_srt_gen_test-bin-quictestlib.o", + "test/helpers/quic_srt_gen_test-bin-ssltestlib.o", + "test/quic_srt_gen_test-bin-quic_srt_gen_test.o" + ], + "test/quic_srt_gen_test-bin-quic_srt_gen_test.o" => [ + "test/quic_srt_gen_test.c" + ], + "test/quic_srtm_test" => [ + "test/quic_srtm_test-bin-quic_srtm_test.o" + ], + "test/quic_srtm_test-bin-quic_srtm_test.o" => [ + "test/quic_srtm_test.c" + ], + "test/quic_stream_test" => [ + "test/quic_stream_test-bin-quic_stream_test.o" + ], + "test/quic_stream_test-bin-quic_stream_test.o" => [ + "test/quic_stream_test.c" + ], + "test/quic_tserver_test" => [ + "test/quic_tserver_test-bin-quic_tserver_test.o" + ], + "test/quic_tserver_test-bin-quic_tserver_test.o" => [ + "test/quic_tserver_test.c" + ], + "test/quic_txp_test" => [ + "test/quic_txp_test-bin-cc_dummy.o", + "test/quic_txp_test-bin-quic_txp_test.o" + ], + "test/quic_txp_test-bin-cc_dummy.o" => [ + "test/cc_dummy.c" + ], + "test/quic_txp_test-bin-quic_txp_test.o" => [ + "test/quic_txp_test.c" + ], + "test/quic_txpim_test" => [ + "test/quic_txpim_test-bin-quic_txpim_test.o" + ], + "test/quic_txpim_test-bin-quic_txpim_test.o" => [ + "test/quic_txpim_test.c" + ], + "test/quic_wire_test" => [ + "test/quic_wire_test-bin-quic_wire_test.o" + ], + "test/quic_wire_test-bin-quic_wire_test.o" => [ + "test/quic_wire_test.c" + ], + "test/quicapitest" => [ + "test/helpers/quicapitest-bin-noisydgrambio.o", + "test/helpers/quicapitest-bin-pktsplitbio.o", + "test/helpers/quicapitest-bin-quictestlib.o", + "test/helpers/quicapitest-bin-ssltestlib.o", + "test/quicapitest-bin-quicapitest.o" + ], + "test/quicapitest-bin-quicapitest.o" => [ + "test/quicapitest.c" + ], + "test/quicfaultstest" => [ + "test/helpers/quicfaultstest-bin-noisydgrambio.o", + "test/helpers/quicfaultstest-bin-pktsplitbio.o", + "test/helpers/quicfaultstest-bin-quictestlib.o", + "test/helpers/quicfaultstest-bin-ssltestlib.o", + "test/quicfaultstest-bin-quicfaultstest.o" + ], + "test/quicfaultstest-bin-quicfaultstest.o" => [ + "test/quicfaultstest.c" + ], + "test/radix/quic_radix_test-bin-quic_radix.o" => [ + "test/radix/quic_radix.c" + ], "test/rand_status_test" => [ "test/rand_status_test-bin-rand_status_test.o" ], @@ -27120,11 +32062,11 @@ our %unified_info = ( "test/rc5test-bin-rc5test.o" => [ "test/rc5test.c" ], - "test/rdrand_sanitytest" => [ - "test/rdrand_sanitytest-bin-rdrand_sanitytest.o" + "test/rdcpu_sanitytest" => [ + "test/rdcpu_sanitytest-bin-rdcpu_sanitytest.o" ], - "test/rdrand_sanitytest-bin-rdrand_sanitytest.o" => [ - "test/rdrand_sanitytest.c" + "test/rdcpu_sanitytest-bin-rdcpu_sanitytest.o" => [ + "test/rdcpu_sanitytest.c" ], "test/recordlentest" => [ "test/helpers/recordlentest-bin-ssltestlib.o", @@ -27133,6 +32075,13 @@ our %unified_info = ( "test/recordlentest-bin-recordlentest.o" => [ "test/recordlentest.c" ], + "test/rpktest" => [ + "test/helpers/rpktest-bin-ssltestlib.o", + "test/rpktest-bin-rpktest.o" + ], + "test/rpktest-bin-rpktest.o" => [ + "test/rpktest.c" + ], "test/rsa_complex" => [ "test/rsa_complex-bin-rsa_complex.o" ], @@ -27157,6 +32106,18 @@ our %unified_info = ( "test/rsa_test-bin-rsa_test.o" => [ "test/rsa_test.c" ], + "test/rsa_x931_test" => [ + "test/rsa_x931_test-bin-rsa_x931_test.o" + ], + "test/rsa_x931_test-bin-rsa_x931_test.o" => [ + "test/rsa_x931_test.c" + ], + "test/safe_math_test" => [ + "test/safe_math_test-bin-safe_math_test.o" + ], + "test/safe_math_test-bin-safe_math_test.o" => [ + "test/safe_math_test.c" + ], "test/sanitytest" => [ "test/sanitytest-bin-sanitytest.o" ], @@ -27188,6 +32149,12 @@ our %unified_info = ( "test/siphash_internal_test-bin-siphash_internal_test.o" => [ "test/siphash_internal_test.c" ], + "test/slh_dsa_test" => [ + "test/slh_dsa_test-bin-slh_dsa_test.o" + ], + "test/slh_dsa_test-bin-slh_dsa_test.o" => [ + "test/slh_dsa_test.c" + ], "test/sm2_internal_test" => [ "test/sm2_internal_test-bin-sm2_internal_test.o" ], @@ -27230,6 +32197,13 @@ our %unified_info = ( "test/ssl_ctx_test-bin-ssl_ctx_test.o" => [ "test/ssl_ctx_test.c" ], + "test/ssl_handshake_rtt_test" => [ + "test/helpers/ssl_handshake_rtt_test-bin-ssltestlib.o", + "test/ssl_handshake_rtt_test-bin-ssl_handshake_rtt_test.o" + ], + "test/ssl_handshake_rtt_test-bin-ssl_handshake_rtt_test.o" => [ + "test/ssl_handshake_rtt_test.c" + ], "test/ssl_old_test" => [ "test/helpers/ssl_old_test-bin-predefined_dhparams.o", "test/ssl_old_test-bin-ssl_old_test.o" @@ -27288,6 +32262,12 @@ our %unified_info = ( "test/stack_test-bin-stack_test.o" => [ "test/stack_test.c" ], + "test/strtoultest" => [ + "test/strtoultest-bin-strtoultest.o" + ], + "test/strtoultest-bin-strtoultest.o" => [ + "test/strtoultest.c" + ], "test/sysdefaulttest" => [ "test/sysdefaulttest-bin-sysdefaulttest.o" ], @@ -27318,6 +32298,9 @@ our %unified_info = ( "test/testutil/libtestutil-lib-format_output.o" => [ "test/testutil/format_output.c" ], + "test/testutil/libtestutil-lib-helper.o" => [ + "test/testutil/helper.c" + ], "test/testutil/libtestutil-lib-load.o" => [ "test/testutil/load.c" ], @@ -27351,6 +32334,12 @@ our %unified_info = ( "test/testutil/libtestutil-lib-testutil_init.o" => [ "test/testutil/testutil_init.c" ], + "test/threadpool_test" => [ + "test/threadpool_test-bin-threadpool_test.o" + ], + "test/threadpool_test-bin-threadpool_test.o" => [ + "test/threadpool_test.c" + ], "test/threadstest" => [ "test/threadstest-bin-threadstest.o" ], @@ -27369,6 +32358,12 @@ our %unified_info = ( "test/time_offset_test-bin-time_offset_test.o" => [ "test/time_offset_test.c" ], + "test/time_test" => [ + "test/time_test-bin-time_test.o" + ], + "test/time_test-bin-time_test.o" => [ + "test/time_test.c" + ], "test/tls13ccstest" => [ "test/helpers/tls13ccstest-bin-ssltestlib.o", "test/tls13ccstest-bin-tls13ccstest.o" @@ -27382,6 +32377,13 @@ our %unified_info = ( "test/tls13encryptiontest-bin-tls13encryptiontest.o" => [ "test/tls13encryptiontest.c" ], + "test/tls13groupselection_test" => [ + "test/helpers/tls13groupselection_test-bin-ssltestlib.o", + "test/tls13groupselection_test-bin-tls13groupselection_test.o" + ], + "test/tls13groupselection_test-bin-tls13groupselection_test.o" => [ + "test/tls13groupselection_test.c" + ], "test/trace_api_test" => [ "test/trace_api_test-bin-trace_api_test.o" ], @@ -27437,6 +32439,12 @@ our %unified_info = ( "test/wpackettest-bin-wpackettest.o" => [ "test/wpackettest.c" ], + "test/x509_acert_test" => [ + "test/x509_acert_test-bin-x509_acert_test.o" + ], + "test/x509_acert_test-bin-x509_acert_test.o" => [ + "test/x509_acert_test.c" + ], "test/x509_check_cert_pkey_test" => [ "test/x509_check_cert_pkey_test-bin-x509_check_cert_pkey_test.o" ], @@ -27455,6 +32463,24 @@ our %unified_info = ( "test/x509_internal_test-bin-x509_internal_test.o" => [ "test/x509_internal_test.c" ], + "test/x509_load_cert_file_test" => [ + "test/x509_load_cert_file_test-bin-x509_load_cert_file_test.o" + ], + "test/x509_load_cert_file_test-bin-x509_load_cert_file_test.o" => [ + "test/x509_load_cert_file_test.c" + ], + "test/x509_req_test" => [ + "test/x509_req_test-bin-x509_req_test.o" + ], + "test/x509_req_test-bin-x509_req_test.o" => [ + "test/x509_req_test.c" + ], + "test/x509_test" => [ + "test/x509_test-bin-x509_test.o" + ], + "test/x509_test-bin-x509_test.o" => [ + "test/x509_test.c" + ], "test/x509_time_test" => [ "test/x509_time_test-bin-x509_time_test.o" ], @@ -27518,6 +32544,7 @@ my @makevars = ( "LDLIBS", "MT", "MTFLAGS", + "OBJCOPY", "PERL", "RANLIB", "RC", @@ -27531,6 +32558,12 @@ my %disabled_info = ( "asan" => { "macro" => "OPENSSL_NO_ASAN" }, + "brotli" => { + "macro" => "OPENSSL_NO_BROTLI" + }, + "brotli-dynamic" => { + "macro" => "OPENSSL_NO_BROTLI_DYNAMIC" + }, "comp" => { "macro" => "OPENSSL_NO_COMP", "skipped" => [ @@ -27543,6 +32576,9 @@ my %disabled_info = ( "crypto-mdebug-backtrace" => { "macro" => "OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE" }, + "demos" => { + "macro" => "OPENSSL_NO_DEMOS" + }, "devcryptoeng" => { "macro" => "OPENSSL_NO_DEVCRYPTOENG" }, @@ -27555,12 +32591,24 @@ my %disabled_info = ( "external-tests" => { "macro" => "OPENSSL_NO_EXTERNAL_TESTS" }, + "fips-jitter" => { + "macro" => "OPENSSL_NO_FIPS_JITTER" + }, "fuzz-afl" => { "macro" => "OPENSSL_NO_FUZZ_AFL" }, "fuzz-libfuzzer" => { "macro" => "OPENSSL_NO_FUZZ_LIBFUZZER" }, + "h3demo" => { + "macro" => "OPENSSL_NO_H3DEMO" + }, + "hqinterop" => { + "macro" => "OPENSSL_NO_HQINTEROP" + }, + "jitter" => { + "macro" => "OPENSSL_NO_JITTER" + }, "ktls" => { "macro" => "OPENSSL_NO_KTLS" }, @@ -27576,6 +32624,9 @@ my %disabled_info = ( "msan" => { "macro" => "OPENSSL_NO_MSAN" }, + "pie" => { + "macro" => "OPENSSL_NO_PIE" + }, "rc5" => { "macro" => "OPENSSL_NO_RC5", "skipped" => [ @@ -27591,6 +32642,12 @@ my %disabled_info = ( "ssl3-method" => { "macro" => "OPENSSL_NO_SSL3_METHOD" }, + "sslkeylog" => { + "macro" => "OPENSSL_NO_SSLKEYLOG" + }, + "tfo" => { + "macro" => "OPENSSL_NO_TFO" + }, "trace" => { "macro" => "OPENSSL_NO_TRACE" }, @@ -27605,6 +32662,21 @@ my %disabled_info = ( }, "weak-ssl-ciphers" => { "macro" => "OPENSSL_NO_WEAK_SSL_CIPHERS" + }, + "winstore" => { + "macro" => "OPENSSL_NO_WINSTORE" + }, + "zlib" => { + "macro" => "OPENSSL_NO_ZLIB" + }, + "zlib-dynamic" => { + "macro" => "OPENSSL_NO_ZLIB_DYNAMIC" + }, + "zstd" => { + "macro" => "OPENSSL_NO_ZSTD" + }, + "zstd-dynamic" => { + "macro" => "OPENSSL_NO_ZSTD_DYNAMIC" } ); my @user_crossable = qw( AR AS CC CXX CPP LD MT RANLIB RC ); @@ -27618,15 +32690,15 @@ unless (caller) { use File::Copy; use Pod::Usage; - use lib '/home/runner/work/node/node/deps/openssl/openssl/util/perl'; - use OpenSSL::fallback '/home/runner/work/node/node/deps/openssl/openssl/external/perl/MODULES.txt'; + use lib '/node/deps/openssl/openssl/util/perl'; + use OpenSSL::fallback '/node/deps/openssl/openssl/external/perl/MODULES.txt'; my $here = dirname($0); if (scalar @ARGV == 0) { # With no arguments, re-create the build file # We do that in two steps, where the first step emits perl - # snipets. + # snippets. my $buildfile = $config{build_file}; my $buildfile_template = "$buildfile.in"; @@ -27646,7 +32718,7 @@ unless (caller) { ); use lib '.'; - use lib '/home/runner/work/node/node/deps/openssl/openssl/Configurations'; + use lib '/node/deps/openssl/openssl/Configurations'; use gentemplate; open my $buildfile_template_fh, ">$buildfile_template" @@ -27663,8 +32735,8 @@ unless (caller) { my $prepend = <<'_____'; use File::Spec::Functions; -use lib '/home/runner/work/node/node/deps/openssl/openssl/util/perl'; -use lib '/home/runner/work/node/node/deps/openssl/openssl/Configurations'; +use lib '/node/deps/openssl/openssl/util/perl'; +use lib '/node/deps/openssl/openssl/Configurations'; use lib '.'; use platform; _____ diff --git a/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/crypto/aes/aes-586.S b/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/crypto/aes/aes-586.S index f474c45fde8a8f..07586720827b91 100644 --- a/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/crypto/aes/aes-586.S +++ b/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/crypto/aes/aes-586.S @@ -3264,4 +3264,4 @@ L056permute: L_OPENSSL_ia32cap_P$non_lazy_ptr: .indirect_symbol _OPENSSL_ia32cap_P .long 0 -.comm _OPENSSL_ia32cap_P,16,2 +.comm _OPENSSL_ia32cap_P,40,2 diff --git a/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/crypto/aes/aesni-x86.S b/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/crypto/aes/aesni-x86.S index 7a23ba9595c312..64d97c5d7cce0f 100644 --- a/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/crypto/aes/aesni-x86.S +++ b/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/crypto/aes/aesni-x86.S @@ -3304,4 +3304,4 @@ Lkey_const: L_OPENSSL_ia32cap_P$non_lazy_ptr: .indirect_symbol _OPENSSL_ia32cap_P .long 0 -.comm _OPENSSL_ia32cap_P,16,2 +.comm _OPENSSL_ia32cap_P,40,2 diff --git a/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/crypto/bn/bn-586.S b/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/crypto/bn/bn-586.S index 066935dd3b41df..42cbe15c13118a 100644 --- a/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/crypto/bn/bn-586.S +++ b/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/crypto/bn/bn-586.S @@ -1551,4 +1551,4 @@ L032pw_end: L_OPENSSL_ia32cap_P$non_lazy_ptr: .indirect_symbol _OPENSSL_ia32cap_P .long 0 -.comm _OPENSSL_ia32cap_P,16,2 +.comm _OPENSSL_ia32cap_P,40,2 diff --git a/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/crypto/bn/x86-gf2m.S b/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/crypto/bn/x86-gf2m.S index 92bdaeac9b1c0e..7dcfd799bec9ba 100644 --- a/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/crypto/bn/x86-gf2m.S +++ b/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/crypto/bn/x86-gf2m.S @@ -355,4 +355,4 @@ L001ialu: L_OPENSSL_ia32cap_P$non_lazy_ptr: .indirect_symbol _OPENSSL_ia32cap_P .long 0 -.comm _OPENSSL_ia32cap_P,16,2 +.comm _OPENSSL_ia32cap_P,40,2 diff --git a/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/crypto/bn/x86-mont.S b/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/crypto/bn/x86-mont.S index 7bca500149ee8d..5c615bb79093e9 100644 --- a/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/crypto/bn/x86-mont.S +++ b/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/crypto/bn/x86-mont.S @@ -479,4 +479,4 @@ L000just_leave: L_OPENSSL_ia32cap_P$non_lazy_ptr: .indirect_symbol _OPENSSL_ia32cap_P .long 0 -.comm _OPENSSL_ia32cap_P,16,2 +.comm _OPENSSL_ia32cap_P,40,2 diff --git a/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/crypto/buildinf.h b/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/crypto/buildinf.h index 07eee0541a9085..0009b83745f7a4 100644 --- a/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/crypto/buildinf.h +++ b/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/crypto/buildinf.h @@ -11,7 +11,7 @@ */ #define PLATFORM "platform: darwin-i386-cc" -#define DATE "built on: Sun Jul 20 00:47:54 2025 UTC" +#define DATE "built on: Sun Jul 27 00:48:47 2025 UTC" /* * Generate compiler_flags as an array of individual characters. This is a diff --git a/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/crypto/chacha/chacha-x86.S b/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/crypto/chacha/chacha-x86.S index fcc5df1948bf90..6a82762d1caa19 100644 --- a/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/crypto/chacha/chacha-x86.S +++ b/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/crypto/chacha/chacha-x86.S @@ -1455,4 +1455,4 @@ L019done: L_OPENSSL_ia32cap_P$non_lazy_ptr: .indirect_symbol _OPENSSL_ia32cap_P .long 0 -.comm _OPENSSL_ia32cap_P,16,2 +.comm _OPENSSL_ia32cap_P,40,2 diff --git a/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/crypto/ec/ecp_nistz256-x86.S b/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/crypto/ec/ecp_nistz256-x86.S index 821f4fc126e702..38df7d7448a80d 100644 --- a/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/crypto/ec/ecp_nistz256-x86.S +++ b/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/crypto/ec/ecp_nistz256-x86.S @@ -5230,4 +5230,4 @@ L013pic: L_OPENSSL_ia32cap_P$non_lazy_ptr: .indirect_symbol _OPENSSL_ia32cap_P .long 0 -.comm _OPENSSL_ia32cap_P,16,2 +.comm _OPENSSL_ia32cap_P,40,2 diff --git a/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/crypto/params_idx.c b/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/crypto/params_idx.c new file mode 100644 index 00000000000000..9d76ffededc24c --- /dev/null +++ b/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/crypto/params_idx.c @@ -0,0 +1,3366 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from crypto/params_idx.c.in + * + * Copyright 2023 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + +#include "internal/e_os.h" +#include "internal/param_names.h" +#include + +/* Machine generated TRIE -- generated by util/perl/OpenSSL/paramnames.pm */ +int ossl_param_find_pidx(const char *s) +{ + switch(s[0]) { + default: + break; + case 'a': + switch(s[1]) { + default: + break; + case 'c': + if (strcmp("vp-info", s + 2) == 0) + return PIDX_KDF_PARAM_X942_ACVPINFO; + break; + case 'd': + switch(s[2]) { + default: + break; + case 'd': + if (strcmp("itional-random", s + 3) == 0) + return PIDX_SIGNATURE_PARAM_ADD_RANDOM; + break; + case '\0': + return PIDX_KDF_PARAM_ARGON2_AD; + } + break; + case 'e': + if (strcmp("ad", s + 2) == 0) + return PIDX_CIPHER_PARAM_AEAD; + break; + case 'l': + switch(s[2]) { + default: + break; + case 'g': + switch(s[3]) { + default: + break; + case '_': + if (strcmp("id_param", s + 4) == 0) + return PIDX_CIPHER_PARAM_ALGORITHM_ID_PARAMS_OLD; + break; + case 'i': + if (strcmp("d-absent", s + 4) == 0) + return PIDX_DIGEST_PARAM_ALGID_ABSENT; + break; + case 'o': + switch(s[4]) { + default: + break; + case 'r': + switch(s[5]) { + default: + break; + case 'i': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case 'h': + switch(s[8]) { + default: + break; + case 'm': + switch(s[9]) { + default: + break; + case '-': + switch(s[10]) { + default: + break; + case 'i': + switch(s[11]) { + default: + break; + case 'd': + switch(s[12]) { + default: + break; + case '-': + if (strcmp("params", s + 13) == 0) + return PIDX_ALG_PARAM_ALGORITHM_ID_PARAMS; + break; + case '\0': + return PIDX_ALG_PARAM_ALGORITHM_ID; + } + } + } + } + } + } + } + } + } + } + break; + case 'i': + if (strcmp("as", s + 3) == 0) + return PIDX_STORE_PARAM_ALIAS; + } + break; + case '\0': + return PIDX_PKEY_PARAM_EC_A; + } + break; + case 'b': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("sis-type", s + 2) == 0) + return PIDX_PKEY_PARAM_EC_CHAR2_TYPE; + break; + case 'i': + if (strcmp("ts", s + 2) == 0) + return PIDX_PKEY_PARAM_BITS; + break; + case 'l': + switch(s[2]) { + default: + break; + case 'o': + switch(s[3]) { + default: + break; + case 'c': + switch(s[4]) { + default: + break; + case 'k': + switch(s[5]) { + default: + break; + case '-': + if (strcmp("size", s + 6) == 0) + return PIDX_MAC_PARAM_BLOCK_SIZE; + break; + case '_': + if (strcmp("padding", s + 6) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_BLOCK_PADDING; + break; + case 's': + if (strcmp("ize", s + 6) == 0) + return PIDX_DIGEST_PARAM_BLOCK_SIZE; + } + } + } + } + break; + case 'u': + if (strcmp("ildinfo", s + 2) == 0) + return PIDX_PROV_PARAM_BUILDINFO; + break; + case '\0': + return PIDX_PKEY_PARAM_EC_B; + } + break; + case 'c': + switch(s[1]) { + default: + break; + case '-': + if (strcmp("rounds", s + 2) == 0) + return PIDX_MAC_PARAM_C_ROUNDS; + break; + case 'e': + if (strcmp("kalg", s + 2) == 0) + return PIDX_KDF_PARAM_CEK_ALG; + break; + case 'i': + if (strcmp("pher", s + 2) == 0) + return PIDX_ALG_PARAM_CIPHER; + break; + case 'o': + switch(s[2]) { + default: + break; + case 'f': + if (strcmp("actor", s + 3) == 0) + return PIDX_PKEY_PARAM_EC_COFACTOR; + break; + case 'n': + switch(s[3]) { + default: + break; + case 's': + if (strcmp("tant", s + 4) == 0) + return PIDX_KDF_PARAM_CONSTANT; + break; + case 't': + if (strcmp("ext-string", s + 4) == 0) + return PIDX_SIGNATURE_PARAM_CONTEXT_STRING; + } + } + break; + case 't': + switch(s[2]) { + default: + break; + case 's': + switch(s[3]) { + default: + break; + case '_': + if (strcmp("mode", s + 4) == 0) + return PIDX_CIPHER_PARAM_CTS_MODE; + break; + case '\0': + return PIDX_CIPHER_PARAM_CTS; + } + } + break; + case 'u': + switch(s[2]) { + default: + break; + case 's': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case 'o': + switch(s[5]) { + default: + break; + case 'm': + switch(s[6]) { + default: + break; + case '-': + if (strcmp("iv", s + 7) == 0) + return PIDX_CIPHER_PARAM_CUSTOM_IV; + break; + case '\0': + return PIDX_MAC_PARAM_CUSTOM; + } + } + } + } + } + } + break; + case 'd': + switch(s[1]) { + default: + break; + case '-': + if (strcmp("rounds", s + 2) == 0) + return PIDX_MAC_PARAM_D_ROUNDS; + break; + case 'a': + switch(s[2]) { + default: + break; + case 't': + switch(s[3]) { + default: + break; + case 'a': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 's': + if (strcmp("tructure", s + 6) == 0) + return PIDX_OBJECT_PARAM_DATA_STRUCTURE; + break; + case 't': + if (strcmp("ype", s + 6) == 0) + return PIDX_OBJECT_PARAM_DATA_TYPE; + } + break; + case '\0': + return PIDX_OBJECT_PARAM_DATA; + } + } + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'c': + switch(s[3]) { + default: + break; + case 'o': + if (strcmp("ded-from-explicit", s + 4) == 0) + return PIDX_PKEY_PARAM_EC_DECODED_FROM_EXPLICIT_PARAMS; + break; + case 'r': + if (strcmp("ypt-only", s + 4) == 0) + return PIDX_CIPHER_PARAM_DECRYPT_ONLY; + } + break; + case 'f': + if (strcmp("ault-digest", s + 3) == 0) + return PIDX_PKEY_PARAM_DEFAULT_DIGEST; + break; + case 's': + if (strcmp("c", s + 3) == 0) + return PIDX_OBJECT_PARAM_DESC; + break; + case 't': + if (strcmp("erministic", s + 3) == 0) + return PIDX_SIGNATURE_PARAM_DETERMINISTIC; + } + break; + case 'h': + if (strcmp("kem-ikm", s + 2) == 0) + return PIDX_PKEY_PARAM_DHKEM_IKM; + break; + case 'i': + switch(s[2]) { + default: + break; + case 'g': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case 's': + switch(s[5]) { + default: + break; + case 't': + switch(s[6]) { + default: + break; + case '-': + switch(s[7]) { + default: + break; + case 'c': + if (strcmp("heck", s + 8) == 0) + return PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK; + break; + case 'n': + if (strcmp("oinit", s + 8) == 0) + return PIDX_MAC_PARAM_DIGEST_NOINIT; + break; + case 'o': + if (strcmp("neshot", s + 8) == 0) + return PIDX_MAC_PARAM_DIGEST_ONESHOT; + break; + case 'p': + if (strcmp("rops", s + 8) == 0) + return PIDX_ASYM_CIPHER_PARAM_OAEP_DIGEST_PROPS; + break; + case 's': + if (strcmp("ize", s + 8) == 0) + return PIDX_PKEY_PARAM_DIGEST_SIZE; + } + break; + case '\0': + return PIDX_STORE_PARAM_DIGEST; + } + } + } + } + break; + case 's': + if (strcmp("tid", s + 3) == 0) + return PIDX_PKEY_PARAM_DIST_ID; + } + break; + case 'r': + if (strcmp("bg-no-trunc-md", s + 2) == 0) + return PIDX_PROV_PARAM_DRBG_TRUNC_DIGEST; + break; + case 's': + if (strcmp("a-sign-disabled", s + 2) == 0) + return PIDX_PROV_PARAM_DSA_SIGN_DISABLED; + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_D; + } + break; + case 'e': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("rly_clean", s + 2) == 0) + return PIDX_KDF_PARAM_EARLY_CLEAN; + break; + case 'c': + switch(s[2]) { + default: + break; + case 'd': + switch(s[3]) { + default: + break; + case 'h': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'c': + switch(s[6]) { + default: + break; + case 'o': + switch(s[7]) { + default: + break; + case 'f': + switch(s[8]) { + default: + break; + case 'a': + switch(s[9]) { + default: + break; + case 'c': + switch(s[10]) { + default: + break; + case 't': + switch(s[11]) { + default: + break; + case 'o': + switch(s[12]) { + default: + break; + case 'r': + switch(s[13]) { + default: + break; + case '-': + switch(s[14]) { + default: + break; + case 'c': + if (strcmp("heck", s + 15) == 0) + return PIDX_PROV_PARAM_ECDH_COFACTOR_CHECK; + break; + case 'm': + if (strcmp("ode", s + 15) == 0) + return PIDX_EXCHANGE_PARAM_EC_ECDH_COFACTOR_MODE; + } + } + } + } + } + } + } + } + } + } + } + } + } + break; + case 'm': + if (strcmp("s_check", s + 2) == 0) + return PIDX_KDF_PARAM_FIPS_EMS_CHECK; + break; + case 'n': + switch(s[2]) { + default: + break; + case 'c': + switch(s[3]) { + default: + break; + case 'o': + switch(s[4]) { + default: + break; + case 'd': + switch(s[5]) { + default: + break; + case 'e': + if (strcmp("d-pub-key", s + 6) == 0) + return PIDX_PKEY_PARAM_ENCODED_PUBLIC_KEY; + break; + case 'i': + if (strcmp("ng", s + 6) == 0) + return PIDX_PKEY_PARAM_EC_ENCODING; + } + } + break; + case 'r': + switch(s[4]) { + default: + break; + case 'y': + switch(s[5]) { + default: + break; + case 'p': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case '-': + switch(s[8]) { + default: + break; + case 'c': + if (strcmp("heck", s + 9) == 0) + return PIDX_CIPHER_PARAM_FIPS_ENCRYPT_CHECK; + break; + case 'l': + if (strcmp("evel", s + 9) == 0) + return PIDX_ENCODER_PARAM_ENCRYPT_LEVEL; + } + } + } + } + } + } + break; + case 'g': + if (strcmp("ine", s + 3) == 0) + return PIDX_ALG_PARAM_ENGINE; + break; + case 't': + switch(s[3]) { + default: + break; + case 'r': + switch(s[4]) { + default: + break; + case 'o': + switch(s[5]) { + default: + break; + case 'p': + switch(s[6]) { + default: + break; + case 'y': + switch(s[7]) { + default: + break; + case '_': + if (strcmp("required", s + 8) == 0) + return PIDX_DRBG_PARAM_ENTROPY_REQUIRED; + break; + case '\0': + return PIDX_KDF_PARAM_HMACDRBG_ENTROPY; + } + } + } + } + } + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_E; + break; + case 'x': + if (strcmp("pect", s + 2) == 0) + return PIDX_STORE_PARAM_EXPECT; + } + break; + case 'f': + switch(s[1]) { + default: + break; + case 'i': + switch(s[2]) { + default: + break; + case 'e': + if (strcmp("ld-type", s + 3) == 0) + return PIDX_PKEY_PARAM_EC_FIELD_TYPE; + break; + case 'n': + if (strcmp("gerprint", s + 3) == 0) + return PIDX_STORE_PARAM_FINGERPRINT; + break; + case 'p': + if (strcmp("s-indicator", s + 3) == 0) + return PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR; + } + } + break; + case 'g': + switch(s[1]) { + default: + break; + case 'e': + switch(s[2]) { + default: + break; + case 'n': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case 'r': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case 'e': + switch(s[8]) { + default: + break; + case '\0': + return PIDX_RAND_PARAM_GENERATE; + } + break; + case 'o': + if (strcmp("r", s + 8) == 0) + return PIDX_PKEY_PARAM_EC_GENERATOR; + } + } + } + } + } + } + break; + case 'i': + if (strcmp("ndex", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_GINDEX; + break; + case 'r': + switch(s[2]) { + default: + break; + case 'o': + switch(s[3]) { + default: + break; + case 'u': + switch(s[4]) { + default: + break; + case 'p': + switch(s[5]) { + default: + break; + case '-': + if (strcmp("check", s + 6) == 0) + return PIDX_PKEY_PARAM_EC_GROUP_CHECK_TYPE; + break; + case '\0': + return PIDX_PKEY_PARAM_GROUP_NAME; + } + } + } + } + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_G; + } + break; + case 'h': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("s-randkey", s + 2) == 0) + return PIDX_CIPHER_PARAM_HAS_RAND_KEY; + break; + case 'i': + if (strcmp("ndex", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_H; + break; + case 'k': + switch(s[2]) { + default: + break; + case 'd': + switch(s[3]) { + default: + break; + case 'f': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 6) == 0) + return PIDX_PROV_PARAM_HKDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 6) == 0) + return PIDX_PROV_PARAM_HKDF_KEY_CHECK; + } + } + } + } + break; + case 'm': + if (strcmp("ac-key-check", s + 2) == 0) + return PIDX_PROV_PARAM_HMAC_KEY_CHECK; + break; + case 's': + if (strcmp("_padding", s + 2) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_HS_PADDING; + } + break; + case 'i': + switch(s[1]) { + default: + break; + case 'd': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_KDF_PARAM_PKCS12_ID; + } + break; + case 'k': + if (strcmp("me", s + 2) == 0) + return PIDX_KEM_PARAM_IKME; + break; + case 'm': + if (strcmp("plicit-rejection", s + 2) == 0) + return PIDX_PKEY_PARAM_IMPLICIT_REJECTION; + break; + case 'n': + switch(s[2]) { + default: + break; + case 'c': + if (strcmp("lude-public", s + 3) == 0) + return PIDX_PKEY_PARAM_EC_INCLUDE_PUBLIC; + break; + case 'f': + if (strcmp("o", s + 3) == 0) + return PIDX_PASSPHRASE_PARAM_INFO; + break; + case 'p': + if (strcmp("ut-type", s + 3) == 0) + return PIDX_STORE_PARAM_INPUT_TYPE; + break; + case 's': + if (strcmp("tance", s + 3) == 0) + return PIDX_SIGNATURE_PARAM_INSTANCE; + } + break; + case 't': + switch(s[2]) { + default: + break; + case 'e': + switch(s[3]) { + default: + break; + case 'r': + switch(s[4]) { + default: + break; + case 'a': + if (strcmp("tion", s + 5) == 0) + return PIDX_GEN_PARAM_ITERATION; + break; + case '\0': + return PIDX_KDF_PARAM_ITER; + } + } + } + break; + case 'v': + switch(s[2]) { + default: + break; + case '-': + if (strcmp("generated", s + 3) == 0) + return PIDX_CIPHER_PARAM_AEAD_IV_GENERATED; + break; + case 'l': + if (strcmp("en", s + 3) == 0) + return PIDX_CIPHER_PARAM_IVLEN; + break; + case '\0': + return PIDX_MAC_PARAM_IV; + } + } + break; + case 'j': + switch(s[1]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_COFACTOR; + } + break; + case 'k': + switch(s[1]) { + default: + break; + case '1': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_PP_K1; + } + break; + case '2': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_PP_K2; + } + break; + case '3': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_PP_K3; + } + break; + case 'a': + if (strcmp("t", s + 2) == 0) + return PIDX_SIGNATURE_PARAM_KAT; + break; + case 'b': + if (strcmp("kdf-key-check", s + 2) == 0) + return PIDX_PROV_PARAM_KBKDF_KEY_CHECK; + break; + case 'd': + switch(s[2]) { + default: + break; + case 'f': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'd': + switch(s[5]) { + default: + break; + case 'i': + switch(s[6]) { + default: + break; + case 'g': + switch(s[7]) { + default: + break; + case 'e': + switch(s[8]) { + default: + break; + case 's': + switch(s[9]) { + default: + break; + case 't': + switch(s[10]) { + default: + break; + case '-': + if (strcmp("props", s + 11) == 0) + return PIDX_EXCHANGE_PARAM_KDF_DIGEST_PROPS; + break; + case '\0': + return PIDX_EXCHANGE_PARAM_KDF_DIGEST; + } + } + } + } + } + } + break; + case 'o': + if (strcmp("utlen", s + 5) == 0) + return PIDX_EXCHANGE_PARAM_KDF_OUTLEN; + break; + case 't': + if (strcmp("ype", s + 5) == 0) + return PIDX_EXCHANGE_PARAM_KDF_TYPE; + break; + case 'u': + if (strcmp("km", s + 5) == 0) + return PIDX_EXCHANGE_PARAM_KDF_UKM; + } + } + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'y': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'c': + if (strcmp("heck", s + 5) == 0) + return PIDX_PKEY_PARAM_FIPS_KEY_CHECK; + break; + case 'l': + if (strcmp("ength", s + 5) == 0) + return PIDX_SKEY_PARAM_KEY_LENGTH; + } + break; + case 'b': + if (strcmp("its", s + 4) == 0) + return PIDX_CIPHER_PARAM_RC2_KEYBITS; + break; + case 'l': + if (strcmp("en", s + 4) == 0) + return PIDX_CIPHER_PARAM_KEYLEN; + break; + case '\0': + return PIDX_MAC_PARAM_KEY; + } + } + break; + case 'm': + if (strcmp("ac-key-check", s + 2) == 0) + return PIDX_PROV_PARAM_KMAC_KEY_CHECK; + } + break; + case 'l': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'b': + if (strcmp("el", s + 3) == 0) + return PIDX_KDF_PARAM_LABEL; + break; + case 'n': + if (strcmp("es", s + 3) == 0) + return PIDX_KDF_PARAM_ARGON2_LANES; + } + } + break; + case 'm': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'c': + switch(s[3]) { + default: + break; + case 'k': + if (strcmp("ey", s + 4) == 0) + return PIDX_CIPHER_PARAM_AEAD_MAC_KEY; + break; + case 'l': + if (strcmp("en", s + 4) == 0) + return PIDX_KDF_PARAM_MAC_SIZE; + break; + case '\0': + return PIDX_ALG_PARAM_MAC; + } + break; + case 'n': + if (strcmp("datory-digest", s + 3) == 0) + return PIDX_PKEY_PARAM_MANDATORY_DIGEST; + break; + case 'x': + switch(s[3]) { + default: + break; + case '-': + if (strcmp("size", s + 4) == 0) + return PIDX_PKEY_PARAM_MAX_SIZE; + break; + case '_': + switch(s[4]) { + default: + break; + case 'a': + if (strcmp("dinlen", s + 5) == 0) + return PIDX_DRBG_PARAM_MAX_ADINLEN; + break; + case 'e': + switch(s[5]) { + default: + break; + case 'a': + if (strcmp("rly_data", s + 6) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_MAX_EARLY_DATA; + break; + case 'n': + if (strcmp("tropylen", s + 6) == 0) + return PIDX_DRBG_PARAM_MAX_ENTROPYLEN; + } + break; + case 'f': + if (strcmp("rag_len", s + 5) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_MAX_FRAG_LEN; + break; + case 'n': + if (strcmp("oncelen", s + 5) == 0) + return PIDX_DRBG_PARAM_MAX_NONCELEN; + break; + case 'p': + if (strcmp("erslen", s + 5) == 0) + return PIDX_DRBG_PARAM_MAX_PERSLEN; + break; + case 'r': + if (strcmp("equest", s + 5) == 0) + return PIDX_RAND_PARAM_MAX_REQUEST; + } + break; + case 'i': + if (strcmp("um_length", s + 4) == 0) + return PIDX_DRBG_PARAM_MAX_LENGTH; + break; + case 'm': + if (strcmp("em_bytes", s + 4) == 0) + return PIDX_KDF_PARAM_SCRYPT_MAXMEM; + } + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'm': + if (strcmp("cost", s + 3) == 0) + return PIDX_KDF_PARAM_ARGON2_MEMCOST; + break; + case 's': + if (strcmp("sage-encoding", s + 3) == 0) + return PIDX_SIGNATURE_PARAM_MESSAGE_ENCODING; + } + break; + case 'g': + switch(s[2]) { + default: + break; + case 'f': + switch(s[3]) { + default: + break; + case '1': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'd': + if (strcmp("igest", s + 6) == 0) + return PIDX_PKEY_PARAM_MGF1_DIGEST; + break; + case 'p': + if (strcmp("roperties", s + 6) == 0) + return PIDX_PKEY_PARAM_MGF1_PROPERTIES; + } + } + break; + case '\0': + return PIDX_PKEY_PARAM_MASKGENFUNC; + } + } + break; + case 'i': + switch(s[2]) { + default: + break; + case 'c': + if (strcmp("alg", s + 3) == 0) + return PIDX_DIGEST_PARAM_MICALG; + break; + case 'n': + switch(s[3]) { + default: + break; + case '_': + switch(s[4]) { + default: + break; + case 'e': + if (strcmp("ntropylen", s + 5) == 0) + return PIDX_DRBG_PARAM_MIN_ENTROPYLEN; + break; + case 'n': + if (strcmp("oncelen", s + 5) == 0) + return PIDX_DRBG_PARAM_MIN_NONCELEN; + } + break; + case 'i': + if (strcmp("um_length", s + 4) == 0) + return PIDX_DRBG_PARAM_MIN_LENGTH; + } + } + break; + case 'l': + switch(s[2]) { + default: + break; + case '-': + switch(s[3]) { + default: + break; + case 'd': + switch(s[4]) { + default: + break; + case 's': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case '.': + switch(s[7]) { + default: + break; + case 'i': + if (strcmp("nput_formats", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_DSA_INPUT_FORMATS; + break; + case 'o': + if (strcmp("utput_formats", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_DSA_OUTPUT_FORMATS; + break; + case 'p': + if (strcmp("refer_seed", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_DSA_PREFER_SEED; + break; + case 'r': + if (strcmp("etain_seed", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_DSA_RETAIN_SEED; + } + } + } + } + break; + case 'k': + switch(s[4]) { + default: + break; + case 'e': + switch(s[5]) { + default: + break; + case 'm': + switch(s[6]) { + default: + break; + case '.': + switch(s[7]) { + default: + break; + case 'i': + switch(s[8]) { + default: + break; + case 'm': + if (strcmp("port_pct_type", s + 9) == 0) + return PIDX_PKEY_PARAM_ML_KEM_IMPORT_PCT_TYPE; + break; + case 'n': + if (strcmp("put_formats", s + 9) == 0) + return PIDX_PKEY_PARAM_ML_KEM_INPUT_FORMATS; + } + break; + case 'o': + if (strcmp("utput_formats", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_KEM_OUTPUT_FORMATS; + break; + case 'p': + if (strcmp("refer_seed", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_KEM_PREFER_SEED; + break; + case 'r': + if (strcmp("etain_seed", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_KEM_RETAIN_SEED; + } + } + } + } + } + } + break; + case 'o': + switch(s[2]) { + default: + break; + case 'd': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case '\0': + return PIDX_LIBSSL_RECORD_LAYER_PARAM_MODE; + } + break; + case 'u': + if (strcmp("le-filename", s + 4) == 0) + return PIDX_PROV_PARAM_CORE_MODULE_FILENAME; + } + } + break; + case 'u': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_SIGNATURE_PARAM_MU; + } + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_M; + } + break; + case 'n': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("me", s + 2) == 0) + return PIDX_STORE_PARAM_ISSUER; + break; + case 'o': + switch(s[2]) { + default: + break; + case '-': + if (strcmp("short-mac", s + 3) == 0) + return PIDX_PROV_PARAM_NO_SHORT_MAC; + break; + case 'n': + switch(s[3]) { + default: + break; + case 'c': + switch(s[4]) { + default: + break; + case 'e': + switch(s[5]) { + default: + break; + case '-': + if (strcmp("type", s + 6) == 0) + return PIDX_SIGNATURE_PARAM_NONCE_TYPE; + break; + case '\0': + return PIDX_KDF_PARAM_HMACDRBG_NONCE; + } + } + } + } + break; + case 'u': + if (strcmp("m", s + 2) == 0) + return PIDX_CIPHER_PARAM_NUM; + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_N; + } + break; + case 'o': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("ep-label", s + 2) == 0) + return PIDX_ASYM_CIPHER_PARAM_OAEP_LABEL; + break; + case 'p': + switch(s[2]) { + default: + break; + case 'e': + switch(s[3]) { + default: + break; + case 'n': + if (strcmp("ssl-version", s + 4) == 0) + return PIDX_PROV_PARAM_CORE_VERSION; + break; + case 'r': + if (strcmp("ation", s + 4) == 0) + return PIDX_KEM_PARAM_OPERATION; + } + break; + case 't': + if (strcmp("ions", s + 3) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_OPTIONS; + } + break; + case 'r': + if (strcmp("der", s + 2) == 0) + return PIDX_PKEY_PARAM_EC_ORDER; + } + break; + case 'p': + switch(s[1]) { + default: + break; + case '1': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_P1; + } + break; + case '2': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_P2; + } + break; + case 'a': + switch(s[2]) { + default: + break; + case 'd': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'm': + if (strcmp("ode", s + 5) == 0) + return PIDX_PKEY_PARAM_PAD_MODE; + break; + case 't': + if (strcmp("ype", s + 5) == 0) + return PIDX_DIGEST_PARAM_PAD_TYPE; + } + break; + case 'd': + if (strcmp("ing", s + 4) == 0) + return PIDX_CIPHER_PARAM_PADDING; + break; + case '\0': + return PIDX_EXCHANGE_PARAM_PAD; + } + break; + case 'r': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case 'y': + switch(s[5]) { + default: + break; + case 'u': + if (strcmp("-info", s + 6) == 0) + return PIDX_KDF_PARAM_X942_PARTYUINFO; + break; + case 'v': + if (strcmp("-info", s + 6) == 0) + return PIDX_KDF_PARAM_X942_PARTYVINFO; + } + } + } + break; + case 's': + if (strcmp("s", s + 3) == 0) + return PIDX_KDF_PARAM_PASSWORD; + } + break; + case 'b': + switch(s[2]) { + default: + break; + case 'i': + if (strcmp("ts", s + 3) == 0) + return PIDX_PKEY_PARAM_FFC_PBITS; + break; + case 'k': + if (strcmp("df2-lower-bound-check", s + 3) == 0) + return PIDX_PROV_PARAM_PBKDF2_LOWER_BOUND_CHECK; + } + break; + case 'c': + if (strcmp("ounter", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_PCOUNTER; + break; + case 'i': + if (strcmp("peline-tag", s + 2) == 0) + return PIDX_CIPHER_PARAM_PIPELINE_AEAD_TAG; + break; + case 'k': + if (strcmp("cs5", s + 2) == 0) + return PIDX_KDF_PARAM_PKCS5; + break; + case 'o': + switch(s[2]) { + default: + break; + case 'i': + if (strcmp("nt-format", s + 3) == 0) + return PIDX_PKEY_PARAM_EC_POINT_CONVERSION_FORMAT; + break; + case 't': + if (strcmp("ential", s + 3) == 0) + return PIDX_GEN_PARAM_POTENTIAL; + } + break; + case 'r': + switch(s[2]) { + default: + break; + case 'e': + switch(s[3]) { + default: + break; + case 'd': + if (strcmp("iction_resistance", s + 4) == 0) + return PIDX_DRBG_PARAM_PREDICTION_RESISTANCE; + break; + case 'f': + if (strcmp("ix", s + 4) == 0) + return PIDX_KDF_PARAM_PREFIX; + } + break; + case 'i': + switch(s[3]) { + default: + break; + case 'm': + if (strcmp("es", s + 4) == 0) + return PIDX_PKEY_PARAM_RSA_PRIMES; + break; + case 'v': + switch(s[4]) { + default: + break; + case '_': + if (strcmp("len", s + 5) == 0) + return PIDX_PKEY_PARAM_DH_PRIV_LEN; + break; + case '\0': + return PIDX_PKEY_PARAM_PRIV_KEY; + } + } + break; + case 'o': + switch(s[3]) { + default: + break; + case 'p': + if (strcmp("erties", s + 4) == 0) + return PIDX_STORE_PARAM_PROPERTIES; + break; + case 'v': + if (strcmp("ider-name", s + 4) == 0) + return PIDX_PROV_PARAM_CORE_PROV_NAME; + } + } + break; + case 'u': + if (strcmp("b", s + 2) == 0) + return PIDX_PKEY_PARAM_PUB_KEY; + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_P; + } + break; + case 'q': + switch(s[1]) { + default: + break; + case '1': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_Q1; + } + break; + case '2': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_Q2; + } + break; + case 'b': + if (strcmp("its", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_QBITS; + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_Q; + break; + case 'x': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_PUB_X; + } + break; + case 'y': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_PUB_Y; + } + } + break; + case 'r': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'n': + switch(s[3]) { + default: + break; + case 'd': + switch(s[4]) { + default: + break; + case 'k': + if (strcmp("ey", s + 5) == 0) + return PIDX_CIPHER_PARAM_RANDOM_KEY; + break; + case 'o': + if (strcmp("m_data", s + 5) == 0) + return PIDX_DRBG_PARAM_RANDOM_DATA; + } + } + break; + case 'w': + if (strcmp("-bytes", s + 3) == 0) + return PIDX_SKEY_PARAM_RAW_BYTES; + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'a': + switch(s[3]) { + default: + break; + case 'd': + switch(s[4]) { + default: + break; + case '_': + switch(s[5]) { + default: + break; + case 'a': + if (strcmp("head", s + 6) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_READ_AHEAD; + break; + case 'b': + if (strcmp("uffer_len", s + 6) == 0) + return PIDX_LIBSSL_RECORD_LAYER_READ_BUFFER_LEN; + } + } + } + break; + case 'f': + if (strcmp("erence", s + 3) == 0) + return PIDX_OBJECT_PARAM_REFERENCE; + break; + case 's': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case 'e': + switch(s[5]) { + default: + break; + case 'd': + switch(s[6]) { + default: + break; + case '_': + switch(s[7]) { + default: + break; + case 'c': + if (strcmp("ounter", s + 8) == 0) + return PIDX_DRBG_PARAM_RESEED_COUNTER; + break; + case 'r': + if (strcmp("equests", s + 8) == 0) + return PIDX_DRBG_PARAM_RESEED_REQUESTS; + break; + case 't': + switch(s[8]) { + default: + break; + case 'i': + switch(s[9]) { + default: + break; + case 'm': + switch(s[10]) { + default: + break; + case 'e': + switch(s[11]) { + default: + break; + case '_': + if (strcmp("interval", s + 12) == 0) + return PIDX_DRBG_PARAM_RESEED_TIME_INTERVAL; + break; + case '\0': + return PIDX_DRBG_PARAM_RESEED_TIME; + } + } + } + } + } + } + } + } + } + } + break; + case 'o': + if (strcmp("unds", s + 2) == 0) + return PIDX_CIPHER_PARAM_ROUNDS; + break; + case 's': + switch(s[2]) { + default: + break; + case 'a': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'c': + switch(s[5]) { + default: + break; + case 'o': + switch(s[6]) { + default: + break; + case 'e': + switch(s[7]) { + default: + break; + case 'f': + switch(s[8]) { + default: + break; + case 'f': + switch(s[9]) { + default: + break; + case 'i': + switch(s[10]) { + default: + break; + case 'c': + switch(s[11]) { + default: + break; + case 'i': + switch(s[12]) { + default: + break; + case 'e': + switch(s[13]) { + default: + break; + case 'n': + switch(s[14]) { + default: + break; + case 't': + switch(s[15]) { + default: + break; + case '1': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT1; + } + break; + case '2': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT2; + } + break; + case '3': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT3; + } + break; + case '4': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT4; + } + break; + case '5': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT5; + } + break; + case '6': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT6; + } + break; + case '7': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT7; + } + break; + case '8': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT8; + } + break; + case '9': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT9; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT; + } + } + } + } + } + } + } + } + } + } + } + break; + case 'd': + if (strcmp("erive-from-pq", s + 5) == 0) + return PIDX_PKEY_PARAM_RSA_DERIVE_FROM_PQ; + break; + case 'e': + switch(s[5]) { + default: + break; + case 'x': + switch(s[6]) { + default: + break; + case 'p': + switch(s[7]) { + default: + break; + case 'o': + switch(s[8]) { + default: + break; + case 'n': + switch(s[9]) { + default: + break; + case 'e': + switch(s[10]) { + default: + break; + case 'n': + switch(s[11]) { + default: + break; + case 't': + switch(s[12]) { + default: + break; + case '1': + switch(s[13]) { + default: + break; + case '0': + switch(s[14]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT10; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT1; + } + break; + case '2': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT2; + } + break; + case '3': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT3; + } + break; + case '4': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT4; + } + break; + case '5': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT5; + } + break; + case '6': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT6; + } + break; + case '7': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT7; + } + break; + case '8': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT8; + } + break; + case '9': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT9; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT; + } + } + } + } + } + } + } + } + break; + case 'f': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case 'c': + switch(s[7]) { + default: + break; + case 't': + switch(s[8]) { + default: + break; + case 'o': + switch(s[9]) { + default: + break; + case 'r': + switch(s[10]) { + default: + break; + case '1': + switch(s[11]) { + default: + break; + case '0': + switch(s[12]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR10; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR1; + } + break; + case '2': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR2; + } + break; + case '3': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR3; + } + break; + case '4': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR4; + } + break; + case '5': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR5; + } + break; + case '6': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR6; + } + break; + case '7': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR7; + } + break; + case '8': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR8; + } + break; + case '9': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR9; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR; + } + } + } + } + } + } + break; + case 'p': + switch(s[5]) { + default: + break; + case 'k': + if (strcmp("cs15-pad-disabled", s + 6) == 0) + return PIDX_PROV_PARAM_RSA_PKCS15_PAD_DISABLED; + break; + case 's': + if (strcmp("s-saltlen-check", s + 6) == 0) + return PIDX_SIGNATURE_PARAM_FIPS_RSA_PSS_SALTLEN_CHECK; + } + break; + case 's': + if (strcmp("ign-x931-pad-disabled", s + 5) == 0) + return PIDX_PROV_PARAM_RSA_SIGN_X931_PAD_DISABLED; + } + } + } + break; + case '\0': + return PIDX_KDF_PARAM_SCRYPT_R; + } + break; + case 's': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'f': + if (strcmp("eprime-generator", s + 3) == 0) + return PIDX_PKEY_PARAM_DH_GENERATOR; + break; + case 'l': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case 'l': + if (strcmp("en", s + 5) == 0) + return PIDX_SIGNATURE_PARAM_PSS_SALTLEN; + break; + case '\0': + return PIDX_MAC_PARAM_SALT; + } + } + break; + case 'v': + if (strcmp("e-parameters", s + 3) == 0) + return PIDX_ENCODER_PARAM_SAVE_PARAMETERS; + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'c': + switch(s[3]) { + default: + break; + case 'r': + if (strcmp("et", s + 4) == 0) + return PIDX_KDF_PARAM_SECRET; + break; + case 'u': + switch(s[4]) { + default: + break; + case 'r': + switch(s[5]) { + default: + break; + case 'i': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case 'y': + switch(s[8]) { + default: + break; + case '-': + switch(s[9]) { + default: + break; + case 'b': + if (strcmp("its", s + 10) == 0) + return PIDX_PKEY_PARAM_SECURITY_BITS; + break; + case 'c': + if (strcmp("hecks", s + 10) == 0) + return PIDX_PROV_PARAM_SECURITY_CHECKS; + } + } + } + } + } + } + } + break; + case 'e': + if (strcmp("d", s + 3) == 0) + return PIDX_PKEY_PARAM_SLH_DSA_SEED; + break; + case 'r': + if (strcmp("ial", s + 3) == 0) + return PIDX_STORE_PARAM_SERIAL; + break; + case 's': + if (strcmp("sion_id", s + 3) == 0) + return PIDX_KDF_PARAM_SSHKDF_SESSION_ID; + } + break; + case 'i': + switch(s[2]) { + default: + break; + case 'g': + switch(s[3]) { + default: + break; + case 'n': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'c': + if (strcmp("heck", s + 6) == 0) + return PIDX_PKEY_PARAM_FIPS_SIGN_CHECK; + break; + case 'x': + if (strcmp("931-pad-check", s + 6) == 0) + return PIDX_SIGNATURE_PARAM_FIPS_SIGN_X931_PAD_CHECK; + } + break; + case 'a': + switch(s[5]) { + default: + break; + case 't': + switch(s[6]) { + default: + break; + case 'u': + switch(s[7]) { + default: + break; + case 'r': + switch(s[8]) { + default: + break; + case 'e': + switch(s[9]) { + default: + break; + case '-': + if (strcmp("digest-check", s + 10) == 0) + return PIDX_PROV_PARAM_SIGNATURE_DIGEST_CHECK; + break; + case '\0': + return PIDX_SIGNATURE_PARAM_SIGNATURE; + } + } + } + } + } + } + } + break; + case 'z': + if (strcmp("e", s + 3) == 0) + return PIDX_MAC_PARAM_SIZE; + } + break; + case 'p': + if (strcmp("eed", s + 2) == 0) + return PIDX_CIPHER_PARAM_SPEED; + break; + case 's': + switch(s[2]) { + default: + break; + case 'h': + switch(s[3]) { + default: + break; + case 'k': + switch(s[4]) { + default: + break; + case 'd': + switch(s[5]) { + default: + break; + case 'f': + switch(s[6]) { + default: + break; + case '-': + switch(s[7]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 8) == 0) + return PIDX_PROV_PARAM_SSHKDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 8) == 0) + return PIDX_PROV_PARAM_SSHKDF_KEY_CHECK; + } + } + } + } + } + break; + case 'k': + switch(s[3]) { + default: + break; + case 'd': + switch(s[4]) { + default: + break; + case 'f': + switch(s[5]) { + default: + break; + case '-': + switch(s[6]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 7) == 0) + return PIDX_PROV_PARAM_SSKDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 7) == 0) + return PIDX_PROV_PARAM_SSKDF_KEY_CHECK; + } + } + } + } + break; + case 'l': + if (strcmp("3-ms", s + 3) == 0) + return PIDX_DIGEST_PARAM_SSL3_MS; + } + break; + case 't': + switch(s[2]) { + default: + break; + case '-': + switch(s[3]) { + default: + break; + case 'd': + if (strcmp("esc", s + 4) == 0) + return PIDX_PROV_PARAM_SELF_TEST_DESC; + break; + case 'p': + if (strcmp("hase", s + 4) == 0) + return PIDX_PROV_PARAM_SELF_TEST_PHASE; + break; + case 't': + if (strcmp("ype", s + 4) == 0) + return PIDX_PROV_PARAM_SELF_TEST_TYPE; + } + break; + case 'a': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case 'e': + switch(s[5]) { + default: + break; + case '\0': + return PIDX_RAND_PARAM_STATE; + } + break; + case 'u': + if (strcmp("s", s + 5) == 0) + return PIDX_PROV_PARAM_STATUS; + } + } + break; + case 'r': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case 'a': + if (strcmp("m_mac", s + 5) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_STREAM_MAC; + break; + case 'n': + if (strcmp("gth", s + 5) == 0) + return PIDX_RAND_PARAM_STRENGTH; + } + } + } + break; + case 'u': + switch(s[2]) { + default: + break; + case 'b': + if (strcmp("ject", s + 3) == 0) + return PIDX_STORE_PARAM_SUBJECT; + break; + case 'p': + switch(s[3]) { + default: + break; + case 'p': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'p': + switch(s[6]) { + default: + break; + case 'r': + if (strcmp("ivinfo", s + 7) == 0) + return PIDX_KDF_PARAM_X942_SUPP_PRIVINFO; + break; + case 'u': + if (strcmp("binfo", s + 7) == 0) + return PIDX_KDF_PARAM_X942_SUPP_PUBINFO; + } + } + } + } + } + } + break; + case 't': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'g': + switch(s[3]) { + default: + break; + case 'l': + if (strcmp("en", s + 4) == 0) + return PIDX_CIPHER_PARAM_AEAD_TAGLEN; + break; + case '\0': + return PIDX_CIPHER_PARAM_AEAD_TAG; + } + } + break; + case 'd': + if (strcmp("es-encrypt-disabled", s + 2) == 0) + return PIDX_PROV_PARAM_TDES_ENCRYPT_DISABLED; + break; + case 'e': + switch(s[2]) { + default: + break; + case 's': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case '-': + if (strcmp("entropy", s + 5) == 0) + return PIDX_SIGNATURE_PARAM_TEST_ENTROPY; + break; + case '_': + switch(s[5]) { + default: + break; + case 'e': + if (strcmp("ntropy", s + 6) == 0) + return PIDX_RAND_PARAM_TEST_ENTROPY; + break; + case 'n': + if (strcmp("once", s + 6) == 0) + return PIDX_RAND_PARAM_TEST_NONCE; + } + } + } + } + break; + case 'h': + if (strcmp("reads", s + 2) == 0) + return PIDX_KDF_PARAM_THREADS; + break; + case 'l': + switch(s[2]) { + default: + break; + case 's': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'c': + if (strcmp("lient-version", s + 5) == 0) + return PIDX_ASYM_CIPHER_PARAM_TLS_CLIENT_VERSION; + break; + case 'd': + if (strcmp("ata-size", s + 5) == 0) + return PIDX_MAC_PARAM_TLS_DATA_SIZE; + break; + case 'g': + switch(s[5]) { + default: + break; + case 'r': + switch(s[6]) { + default: + break; + case 'o': + switch(s[7]) { + default: + break; + case 'u': + switch(s[8]) { + default: + break; + case 'p': + switch(s[9]) { + default: + break; + case '-': + switch(s[10]) { + default: + break; + case 'a': + if (strcmp("lg", s + 11) == 0) + return PIDX_CAPABILITY_TLS_GROUP_ALG; + break; + case 'i': + switch(s[11]) { + default: + break; + case 'd': + switch(s[12]) { + default: + break; + case '\0': + return PIDX_CAPABILITY_TLS_GROUP_ID; + } + break; + case 's': + if (strcmp("-kem", s + 12) == 0) + return PIDX_CAPABILITY_TLS_GROUP_IS_KEM; + } + break; + case 'n': + switch(s[11]) { + default: + break; + case 'a': + switch(s[12]) { + default: + break; + case 'm': + switch(s[13]) { + default: + break; + case 'e': + switch(s[14]) { + default: + break; + case '-': + if (strcmp("internal", s + 15) == 0) + return PIDX_CAPABILITY_TLS_GROUP_NAME_INTERNAL; + break; + case '\0': + return PIDX_CAPABILITY_TLS_GROUP_NAME; + } + } + } + } + break; + case 's': + if (strcmp("ec-bits", s + 11) == 0) + return PIDX_CAPABILITY_TLS_GROUP_SECURITY_BITS; + } + } + } + } + } + } + break; + case 'm': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case 'c': + switch(s[7]) { + default: + break; + case '-': + if (strcmp("size", s + 8) == 0) + return PIDX_CIPHER_PARAM_TLS_MAC_SIZE; + break; + case '\0': + return PIDX_CIPHER_PARAM_TLS_MAC; + } + break; + case 'x': + switch(s[7]) { + default: + break; + case '-': + switch(s[8]) { + default: + break; + case 'd': + if (strcmp("tls", s + 9) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_MAX_DTLS; + break; + case 't': + if (strcmp("ls", s + 9) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_MAX_TLS; + } + } + } + break; + case 'i': + switch(s[6]) { + default: + break; + case 'n': + switch(s[7]) { + default: + break; + case '-': + switch(s[8]) { + default: + break; + case 'd': + if (strcmp("tls", s + 9) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_MIN_DTLS; + break; + case 't': + if (strcmp("ls", s + 9) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_MIN_TLS; + } + } + } + break; + case 'u': + if (strcmp("lti", s + 6) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK; + } + break; + case 'n': + if (strcmp("egotiated-version", s + 5) == 0) + return PIDX_ASYM_CIPHER_PARAM_TLS_NEGOTIATED_VERSION; + break; + case 's': + switch(s[5]) { + default: + break; + case 'i': + switch(s[6]) { + default: + break; + case 'g': + switch(s[7]) { + default: + break; + case 'a': + switch(s[8]) { + default: + break; + case 'l': + switch(s[9]) { + default: + break; + case 'g': + switch(s[10]) { + default: + break; + case '-': + switch(s[11]) { + default: + break; + case 'c': + if (strcmp("ode-point", s + 12) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_CODE_POINT; + break; + case 'h': + switch(s[12]) { + default: + break; + case 'a': + switch(s[13]) { + default: + break; + case 's': + switch(s[14]) { + default: + break; + case 'h': + switch(s[15]) { + default: + break; + case '-': + switch(s[16]) { + default: + break; + case 'n': + if (strcmp("ame", s + 17) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_HASH_NAME; + break; + case 'o': + if (strcmp("id", s + 17) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_HASH_OID; + } + } + } + } + } + break; + case 'i': + if (strcmp("ana-name", s + 12) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_IANA_NAME; + break; + case 'k': + switch(s[12]) { + default: + break; + case 'e': + switch(s[13]) { + default: + break; + case 'y': + switch(s[14]) { + default: + break; + case 't': + switch(s[15]) { + default: + break; + case 'y': + switch(s[16]) { + default: + break; + case 'p': + switch(s[17]) { + default: + break; + case 'e': + switch(s[18]) { + default: + break; + case '-': + if (strcmp("oid", s + 19) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_KEYTYPE_OID; + break; + case '\0': + return PIDX_CAPABILITY_TLS_SIGALG_KEYTYPE; + } + } + } + } + } + } + } + break; + case 'n': + if (strcmp("ame", s + 12) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_NAME; + break; + case 'o': + if (strcmp("id", s + 12) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_OID; + break; + case 's': + switch(s[12]) { + default: + break; + case 'e': + if (strcmp("c-bits", s + 13) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_SECURITY_BITS; + break; + case 'i': + switch(s[13]) { + default: + break; + case 'g': + switch(s[14]) { + default: + break; + case '-': + switch(s[15]) { + default: + break; + case 'n': + if (strcmp("ame", s + 16) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_SIG_NAME; + break; + case 'o': + if (strcmp("id", s + 16) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_SIG_OID; + } + } + } + } + } + } + } + } + } + } + } + break; + case 'v': + if (strcmp("ersion", s + 5) == 0) + return PIDX_CIPHER_PARAM_TLS_VERSION; + } + break; + case '1': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'p': + switch(s[6]) { + default: + break; + case 'r': + switch(s[7]) { + default: + break; + case 'f': + switch(s[8]) { + default: + break; + case '-': + switch(s[9]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 10) == 0) + return PIDX_PROV_PARAM_TLS1_PRF_DIGEST_CHECK; + break; + case 'e': + if (strcmp("ms-check", s + 10) == 0) + return PIDX_PROV_PARAM_TLS1_PRF_EMS_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 10) == 0) + return PIDX_PROV_PARAM_TLS1_PRF_KEY_CHECK; + } + } + } + } + } + break; + case '3': + switch(s[5]) { + default: + break; + case '-': + switch(s[6]) { + default: + break; + case 'k': + switch(s[7]) { + default: + break; + case 'd': + switch(s[8]) { + default: + break; + case 'f': + switch(s[9]) { + default: + break; + case '-': + switch(s[10]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 11) == 0) + return PIDX_PROV_PARAM_TLS13_KDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 11) == 0) + return PIDX_PROV_PARAM_TLS13_KDF_KEY_CHECK; + } + } + } + } + } + } + break; + case 'm': + switch(s[5]) { + default: + break; + case 'u': + switch(s[6]) { + default: + break; + case 'l': + switch(s[7]) { + default: + break; + case 't': + switch(s[8]) { + default: + break; + case 'i': + switch(s[9]) { + default: + break; + case '_': + switch(s[10]) { + default: + break; + case 'a': + switch(s[11]) { + default: + break; + case 'a': + switch(s[12]) { + default: + break; + case 'd': + switch(s[13]) { + default: + break; + case 'p': + if (strcmp("acklen", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD_PACKLEN; + break; + case '\0': + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD; + } + } + } + break; + case 'e': + switch(s[11]) { + default: + break; + case 'n': + switch(s[12]) { + default: + break; + case 'c': + switch(s[13]) { + default: + break; + case 'i': + if (strcmp("n", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_IN; + break; + case 'l': + if (strcmp("en", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_LEN; + break; + case '\0': + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC; + } + } + } + break; + case 'i': + if (strcmp("nterleave", s + 11) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_INTERLEAVE; + break; + case 'm': + switch(s[11]) { + default: + break; + case 'a': + switch(s[12]) { + default: + break; + case 'x': + switch(s[13]) { + default: + break; + case 'b': + if (strcmp("ufsz", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_BUFSIZE; + break; + case 's': + if (strcmp("ndfrag", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_SEND_FRAGMENT; + } + } + } + } + } + } + } + } + } + } + break; + case 'a': + switch(s[4]) { + default: + break; + case 'a': + switch(s[5]) { + default: + break; + case 'd': + switch(s[6]) { + default: + break; + case 'p': + if (strcmp("ad", s + 7) == 0) + return PIDX_CIPHER_PARAM_AEAD_TLS1_AAD_PAD; + break; + case '\0': + return PIDX_CIPHER_PARAM_AEAD_TLS1_AAD; + } + } + } + break; + case 'i': + switch(s[4]) { + default: + break; + case 'v': + switch(s[5]) { + default: + break; + case 'f': + if (strcmp("ixed", s + 6) == 0) + return PIDX_CIPHER_PARAM_AEAD_TLS1_IV_FIXED; + break; + case 'g': + if (strcmp("en", s + 6) == 0) + return PIDX_CIPHER_PARAM_AEAD_TLS1_GET_IV_GEN; + break; + case 'i': + if (strcmp("nv", s + 6) == 0) + return PIDX_CIPHER_PARAM_AEAD_TLS1_SET_IV_INV; + } + } + break; + case 't': + if (strcmp("ree", s + 4) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_TLSTREE; + } + } + break; + case 'p': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_TP_BASIS; + } + break; + case 'y': + if (strcmp("pe", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_TYPE; + } + break; + case 'u': + switch(s[1]) { + default: + break; + case 'k': + if (strcmp("m", s + 2) == 0) + return PIDX_KDF_PARAM_UKM; + break; + case 'p': + if (strcmp("dated-iv", s + 2) == 0) + return PIDX_CIPHER_PARAM_UPDATED_IV; + break; + case 's': + switch(s[2]) { + default: + break; + case 'e': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'b': + if (strcmp("its", s + 5) == 0) + return PIDX_CIPHER_PARAM_USE_BITS; + break; + case 'c': + if (strcmp("ofactor-flag", s + 5) == 0) + return PIDX_PKEY_PARAM_USE_COFACTOR_FLAG; + break; + case 'k': + if (strcmp("eybits", s + 5) == 0) + return PIDX_KDF_PARAM_X942_USE_KEYBITS; + break; + case 'l': + switch(s[5]) { + default: + break; + case '\0': + return PIDX_KDF_PARAM_KBKDF_USE_L; + } + break; + case 's': + if (strcmp("eparator", s + 5) == 0) + return PIDX_KDF_PARAM_KBKDF_USE_SEPARATOR; + } + break; + case '_': + switch(s[4]) { + default: + break; + case 'd': + if (strcmp("erivation_function", s + 5) == 0) + return PIDX_DRBG_PARAM_USE_DF; + break; + case 'e': + if (strcmp("tm", s + 5) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_USE_ETM; + } + } + } + } + break; + case 'v': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'l': + switch(s[3]) { + default: + break; + case 'i': + switch(s[4]) { + default: + break; + case 'd': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case 'e': + switch(s[8]) { + default: + break; + case '-': + switch(s[9]) { + default: + break; + case 'g': + switch(s[10]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_VALIDATE_G; + } + break; + case 'l': + if (strcmp("egacy", s + 10) == 0) + return PIDX_PKEY_PARAM_FFC_VALIDATE_LEGACY; + break; + case 'p': + if (strcmp("q", s + 10) == 0) + return PIDX_PKEY_PARAM_FFC_VALIDATE_PQ; + } + } + } + } + } + } + } + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'r': + switch(s[3]) { + default: + break; + case 'i': + if (strcmp("fy-message", s + 4) == 0) + return PIDX_SIGNATURE_PARAM_FIPS_VERIFY_MESSAGE; + break; + case 's': + if (strcmp("ion", s + 4) == 0) + return PIDX_PROV_PARAM_VERSION; + } + } + } + break; + case 'x': + switch(s[1]) { + default: + break; + case '9': + switch(s[2]) { + default: + break; + case '4': + if (strcmp("2kdf-key-check", s + 3) == 0) + return PIDX_PROV_PARAM_X942KDF_KEY_CHECK; + break; + case '6': + switch(s[3]) { + default: + break; + case '3': + switch(s[4]) { + default: + break; + case 'k': + switch(s[5]) { + default: + break; + case 'd': + switch(s[6]) { + default: + break; + case 'f': + switch(s[7]) { + default: + break; + case '-': + switch(s[8]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 9) == 0) + return PIDX_PROV_PARAM_X963KDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 9) == 0) + return PIDX_PROV_PARAM_X963KDF_KEY_CHECK; + } + } + } + } + } + } + } + break; + case 'c': + if (strcmp("ghash", s + 2) == 0) + return PIDX_KDF_PARAM_SSHKDF_XCGHASH; + break; + case 'o': + switch(s[2]) { + default: + break; + case 'f': + switch(s[3]) { + default: + break; + case 'l': + if (strcmp("en", s + 4) == 0) + return PIDX_DIGEST_PARAM_XOFLEN; + break; + case '\0': + return PIDX_MAC_PARAM_XOF; + } + } + break; + case 'p': + switch(s[2]) { + default: + break; + case '1': + switch(s[3]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XP1; + } + break; + case '2': + switch(s[3]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XP2; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XP; + } + break; + case 'q': + switch(s[2]) { + default: + break; + case '1': + switch(s[3]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XQ1; + } + break; + case '2': + switch(s[3]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XQ2; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XQ; + } + break; + case 't': + if (strcmp("s_standard", s + 2) == 0) + return PIDX_CIPHER_PARAM_XTS_STANDARD; + } + } + return -1; +} + +/* End of TRIE */ diff --git a/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/crypto/poly1305/poly1305-x86.S b/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/crypto/poly1305/poly1305-x86.S index 96cf0c9fe941f6..a14ec5068dfebe 100644 --- a/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/crypto/poly1305/poly1305-x86.S +++ b/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/crypto/poly1305/poly1305-x86.S @@ -1935,4 +1935,4 @@ Lconst_sse2: L_OPENSSL_ia32cap_P$non_lazy_ptr: .indirect_symbol _OPENSSL_ia32cap_P .long 0 -.comm _OPENSSL_ia32cap_P,16,2 +.comm _OPENSSL_ia32cap_P,40,2 diff --git a/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/crypto/rc4/rc4-586.S b/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/crypto/rc4/rc4-586.S index 38098085523f56..b4d7da8aabb1c9 100644 --- a/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/crypto/rc4/rc4-586.S +++ b/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/crypto/rc4/rc4-586.S @@ -390,4 +390,4 @@ L019opts: L_OPENSSL_ia32cap_P$non_lazy_ptr: .indirect_symbol _OPENSSL_ia32cap_P .long 0 -.comm _OPENSSL_ia32cap_P,16,2 +.comm _OPENSSL_ia32cap_P,40,2 diff --git a/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/crypto/sha/sha1-586.S b/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/crypto/sha/sha1-586.S index feb96c11a57097..04a3637d51ab5d 100644 --- a/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/crypto/sha/sha1-586.S +++ b/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/crypto/sha/sha1-586.S @@ -3982,4 +3982,4 @@ LK_XX_XX: L_OPENSSL_ia32cap_P$non_lazy_ptr: .indirect_symbol _OPENSSL_ia32cap_P .long 0 -.comm _OPENSSL_ia32cap_P,16,2 +.comm _OPENSSL_ia32cap_P,40,2 diff --git a/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/crypto/sha/sha256-586.S b/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/crypto/sha/sha256-586.S index e1dfe28d26e5bb..f79a6b6ce4c94b 100644 --- a/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/crypto/sha/sha256-586.S +++ b/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/crypto/sha/sha256-586.S @@ -6786,4 +6786,4 @@ L018avx_bmi_00_47: L_OPENSSL_ia32cap_P$non_lazy_ptr: .indirect_symbol _OPENSSL_ia32cap_P .long 0 -.comm _OPENSSL_ia32cap_P,16,2 +.comm _OPENSSL_ia32cap_P,40,2 diff --git a/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/crypto/sha/sha512-586.S b/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/crypto/sha/sha512-586.S index f9eb6e28565e9e..6df53118ecafc8 100644 --- a/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/crypto/sha/sha512-586.S +++ b/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/crypto/sha/sha512-586.S @@ -2832,4 +2832,4 @@ L001K512: L_OPENSSL_ia32cap_P$non_lazy_ptr: .indirect_symbol _OPENSSL_ia32cap_P .long 0 -.comm _OPENSSL_ia32cap_P,16,2 +.comm _OPENSSL_ia32cap_P,40,2 diff --git a/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/crypto/x86cpuid.S b/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/crypto/x86cpuid.S index 8e0719f379c608..d92f53d82dd920 100644 --- a/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/crypto/x86cpuid.S +++ b/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/crypto/x86cpuid.S @@ -121,6 +121,24 @@ L002generic: xorl %ecx,%ecx .byte 0x0f,0xa2 movl %ebx,8(%edi) + movl %ecx,12(%edi) + movl %edx,16(%edi) + cmpl $1,%eax + jb L005no_extended_info + movl $7,%eax + movl $1,%ecx + .byte 0x0f,0xa2 + movl %eax,20(%edi) + movl %edx,24(%edi) + movl %ebx,28(%edi) + movl %ecx,32(%edi) + andl $524288,%edx + cmpl $0,%edx + je L005no_extended_info + movl $36,%eax + movl $0,%ecx + .byte 0x0f,0xa2 + movl %ebx,36(%edi) L005no_extended_info: btl $27,%ebp jnc L006clear_avx @@ -136,6 +154,7 @@ L008clear_xmm: andl $4278190079,%esi L006clear_avx: andl $4026525695,%ebp + andl $4286578687,20(%edi) andl $4294967263,8(%edi) L007done: movl %esi,%eax @@ -570,7 +589,7 @@ L036done: L_OPENSSL_ia32cap_P$non_lazy_ptr: .indirect_symbol _OPENSSL_ia32cap_P .long 0 -.comm _OPENSSL_ia32cap_P,16,2 +.comm _OPENSSL_ia32cap_P,40,2 .mod_init_func .align 2 .long _OPENSSL_cpuid_setup diff --git a/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/include/internal/param_names.h b/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/include/internal/param_names.h new file mode 100644 index 00000000000000..0a0404a57e82b9 --- /dev/null +++ b/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/include/internal/param_names.h @@ -0,0 +1,469 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from include/internal/param_names.h.in + * + * Copyright 2023 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + +int ossl_param_find_pidx(const char *s); + +/* Parameter name definitions - generated by util/perl/OpenSSL/paramnames.pm */ +#define NUM_PIDX 346 + +#define PIDX_ALG_PARAM_ALGORITHM_ID 0 +#define PIDX_ALG_PARAM_ALGORITHM_ID_PARAMS 1 +#define PIDX_ALG_PARAM_CIPHER 2 +#define PIDX_ALG_PARAM_DIGEST 3 +#define PIDX_ALG_PARAM_ENGINE 4 +#define PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR 5 +#define PIDX_ALG_PARAM_MAC 6 +#define PIDX_ALG_PARAM_PROPERTIES 7 +#define PIDX_ASYM_CIPHER_PARAM_DIGEST PIDX_PKEY_PARAM_DIGEST +#define PIDX_ASYM_CIPHER_PARAM_ENGINE PIDX_PKEY_PARAM_ENGINE +#define PIDX_ASYM_CIPHER_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_ASYM_CIPHER_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_ASYM_CIPHER_PARAM_FIPS_RSA_PKCS15_PAD_DISABLED PIDX_PROV_PARAM_RSA_PKCS15_PAD_DISABLED +#define PIDX_ASYM_CIPHER_PARAM_IMPLICIT_REJECTION 8 +#define PIDX_ASYM_CIPHER_PARAM_MGF1_DIGEST PIDX_PKEY_PARAM_MGF1_DIGEST +#define PIDX_ASYM_CIPHER_PARAM_MGF1_DIGEST_PROPS PIDX_PKEY_PARAM_MGF1_PROPERTIES +#define PIDX_ASYM_CIPHER_PARAM_OAEP_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_ASYM_CIPHER_PARAM_OAEP_DIGEST_PROPS 9 +#define PIDX_ASYM_CIPHER_PARAM_OAEP_LABEL 10 +#define PIDX_ASYM_CIPHER_PARAM_PAD_MODE PIDX_PKEY_PARAM_PAD_MODE +#define PIDX_ASYM_CIPHER_PARAM_PROPERTIES PIDX_PKEY_PARAM_PROPERTIES +#define PIDX_ASYM_CIPHER_PARAM_TLS_CLIENT_VERSION 11 +#define PIDX_ASYM_CIPHER_PARAM_TLS_NEGOTIATED_VERSION 12 +#define PIDX_CAPABILITY_TLS_GROUP_ALG 13 +#define PIDX_CAPABILITY_TLS_GROUP_ID 14 +#define PIDX_CAPABILITY_TLS_GROUP_IS_KEM 15 +#define PIDX_CAPABILITY_TLS_GROUP_MAX_DTLS 16 +#define PIDX_CAPABILITY_TLS_GROUP_MAX_TLS 17 +#define PIDX_CAPABILITY_TLS_GROUP_MIN_DTLS 18 +#define PIDX_CAPABILITY_TLS_GROUP_MIN_TLS 19 +#define PIDX_CAPABILITY_TLS_GROUP_NAME 20 +#define PIDX_CAPABILITY_TLS_GROUP_NAME_INTERNAL 21 +#define PIDX_CAPABILITY_TLS_GROUP_SECURITY_BITS 22 +#define PIDX_CAPABILITY_TLS_SIGALG_CODE_POINT 23 +#define PIDX_CAPABILITY_TLS_SIGALG_HASH_NAME 24 +#define PIDX_CAPABILITY_TLS_SIGALG_HASH_OID 25 +#define PIDX_CAPABILITY_TLS_SIGALG_IANA_NAME 26 +#define PIDX_CAPABILITY_TLS_SIGALG_KEYTYPE 27 +#define PIDX_CAPABILITY_TLS_SIGALG_KEYTYPE_OID 28 +#define PIDX_CAPABILITY_TLS_SIGALG_MAX_DTLS 16 +#define PIDX_CAPABILITY_TLS_SIGALG_MAX_TLS 17 +#define PIDX_CAPABILITY_TLS_SIGALG_MIN_DTLS 18 +#define PIDX_CAPABILITY_TLS_SIGALG_MIN_TLS 19 +#define PIDX_CAPABILITY_TLS_SIGALG_NAME 29 +#define PIDX_CAPABILITY_TLS_SIGALG_OID 30 +#define PIDX_CAPABILITY_TLS_SIGALG_SECURITY_BITS 31 +#define PIDX_CAPABILITY_TLS_SIGALG_SIG_NAME 32 +#define PIDX_CAPABILITY_TLS_SIGALG_SIG_OID 33 +#define PIDX_CIPHER_PARAM_AEAD 34 +#define PIDX_CIPHER_PARAM_AEAD_IVLEN PIDX_CIPHER_PARAM_IVLEN +#define PIDX_CIPHER_PARAM_AEAD_IV_GENERATED 35 +#define PIDX_CIPHER_PARAM_AEAD_MAC_KEY 36 +#define PIDX_CIPHER_PARAM_AEAD_TAG 37 +#define PIDX_CIPHER_PARAM_AEAD_TAGLEN 38 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_AAD 39 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_AAD_PAD 40 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_GET_IV_GEN 41 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_IV_FIXED 42 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_SET_IV_INV 43 +#define PIDX_CIPHER_PARAM_ALGORITHM_ID PIDX_ALG_PARAM_ALGORITHM_ID +#define PIDX_CIPHER_PARAM_ALGORITHM_ID_PARAMS PIDX_ALG_PARAM_ALGORITHM_ID_PARAMS +#define PIDX_CIPHER_PARAM_ALGORITHM_ID_PARAMS_OLD 44 +#define PIDX_CIPHER_PARAM_BLOCK_SIZE 45 +#define PIDX_CIPHER_PARAM_CTS 46 +#define PIDX_CIPHER_PARAM_CTS_MODE 47 +#define PIDX_CIPHER_PARAM_CUSTOM_IV 48 +#define PIDX_CIPHER_PARAM_DECRYPT_ONLY 49 +#define PIDX_CIPHER_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_CIPHER_PARAM_FIPS_ENCRYPT_CHECK 50 +#define PIDX_CIPHER_PARAM_HAS_RAND_KEY 51 +#define PIDX_CIPHER_PARAM_IV 52 +#define PIDX_CIPHER_PARAM_IVLEN 53 +#define PIDX_CIPHER_PARAM_KEYLEN 54 +#define PIDX_CIPHER_PARAM_MODE 55 +#define PIDX_CIPHER_PARAM_NUM 56 +#define PIDX_CIPHER_PARAM_PADDING 57 +#define PIDX_CIPHER_PARAM_PIPELINE_AEAD_TAG 58 +#define PIDX_CIPHER_PARAM_RANDOM_KEY 59 +#define PIDX_CIPHER_PARAM_RC2_KEYBITS 60 +#define PIDX_CIPHER_PARAM_ROUNDS 61 +#define PIDX_CIPHER_PARAM_SPEED 62 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK 63 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD 64 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD_PACKLEN 65 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC 66 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_IN 67 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_LEN 68 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_INTERLEAVE 69 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_BUFSIZE 70 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_SEND_FRAGMENT 71 +#define PIDX_CIPHER_PARAM_TLS_MAC 72 +#define PIDX_CIPHER_PARAM_TLS_MAC_SIZE 73 +#define PIDX_CIPHER_PARAM_TLS_VERSION 74 +#define PIDX_CIPHER_PARAM_UPDATED_IV 75 +#define PIDX_CIPHER_PARAM_USE_BITS 76 +#define PIDX_CIPHER_PARAM_XTS_STANDARD 77 +#define PIDX_DECODER_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_DIGEST_PARAM_ALGID_ABSENT 78 +#define PIDX_DIGEST_PARAM_BLOCK_SIZE 45 +#define PIDX_DIGEST_PARAM_MICALG 79 +#define PIDX_DIGEST_PARAM_PAD_TYPE 80 +#define PIDX_DIGEST_PARAM_SIZE 81 +#define PIDX_DIGEST_PARAM_SSL3_MS 82 +#define PIDX_DIGEST_PARAM_XOF 83 +#define PIDX_DIGEST_PARAM_XOFLEN 84 +#define PIDX_DRBG_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_DRBG_PARAM_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_DRBG_PARAM_ENTROPY_REQUIRED 85 +#define PIDX_DRBG_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_DRBG_PARAM_FIPS_DIGEST_CHECK PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK +#define PIDX_DRBG_PARAM_MAC PIDX_ALG_PARAM_MAC +#define PIDX_DRBG_PARAM_MAX_ADINLEN 86 +#define PIDX_DRBG_PARAM_MAX_ENTROPYLEN 87 +#define PIDX_DRBG_PARAM_MAX_LENGTH 88 +#define PIDX_DRBG_PARAM_MAX_NONCELEN 89 +#define PIDX_DRBG_PARAM_MAX_PERSLEN 90 +#define PIDX_DRBG_PARAM_MIN_ENTROPYLEN 91 +#define PIDX_DRBG_PARAM_MIN_LENGTH 92 +#define PIDX_DRBG_PARAM_MIN_NONCELEN 93 +#define PIDX_DRBG_PARAM_PREDICTION_RESISTANCE 94 +#define PIDX_DRBG_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_DRBG_PARAM_RANDOM_DATA 95 +#define PIDX_DRBG_PARAM_RESEED_COUNTER 96 +#define PIDX_DRBG_PARAM_RESEED_REQUESTS 97 +#define PIDX_DRBG_PARAM_RESEED_TIME 98 +#define PIDX_DRBG_PARAM_RESEED_TIME_INTERVAL 99 +#define PIDX_DRBG_PARAM_SIZE 81 +#define PIDX_DRBG_PARAM_USE_DF 100 +#define PIDX_ENCODER_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_ENCODER_PARAM_ENCRYPT_LEVEL 101 +#define PIDX_ENCODER_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_ENCODER_PARAM_SAVE_PARAMETERS 102 +#define PIDX_EXCHANGE_PARAM_EC_ECDH_COFACTOR_MODE 103 +#define PIDX_EXCHANGE_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_EXCHANGE_PARAM_FIPS_DIGEST_CHECK PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK +#define PIDX_EXCHANGE_PARAM_FIPS_ECDH_COFACTOR_CHECK PIDX_PROV_PARAM_ECDH_COFACTOR_CHECK +#define PIDX_EXCHANGE_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_EXCHANGE_PARAM_KDF_DIGEST 104 +#define PIDX_EXCHANGE_PARAM_KDF_DIGEST_PROPS 105 +#define PIDX_EXCHANGE_PARAM_KDF_OUTLEN 106 +#define PIDX_EXCHANGE_PARAM_KDF_TYPE 107 +#define PIDX_EXCHANGE_PARAM_KDF_UKM 108 +#define PIDX_EXCHANGE_PARAM_PAD 109 +#define PIDX_GEN_PARAM_ITERATION 110 +#define PIDX_GEN_PARAM_POTENTIAL 111 +#define PIDX_KDF_PARAM_ARGON2_AD 112 +#define PIDX_KDF_PARAM_ARGON2_LANES 113 +#define PIDX_KDF_PARAM_ARGON2_MEMCOST 114 +#define PIDX_KDF_PARAM_ARGON2_VERSION 115 +#define PIDX_KDF_PARAM_CEK_ALG 116 +#define PIDX_KDF_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_KDF_PARAM_CONSTANT 117 +#define PIDX_KDF_PARAM_DATA 118 +#define PIDX_KDF_PARAM_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_KDF_PARAM_EARLY_CLEAN 119 +#define PIDX_KDF_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_KDF_PARAM_FIPS_DIGEST_CHECK PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK +#define PIDX_KDF_PARAM_FIPS_EMS_CHECK 120 +#define PIDX_KDF_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_KDF_PARAM_HMACDRBG_ENTROPY 121 +#define PIDX_KDF_PARAM_HMACDRBG_NONCE 122 +#define PIDX_KDF_PARAM_INFO 123 +#define PIDX_KDF_PARAM_ITER 124 +#define PIDX_KDF_PARAM_KBKDF_R 125 +#define PIDX_KDF_PARAM_KBKDF_USE_L 126 +#define PIDX_KDF_PARAM_KBKDF_USE_SEPARATOR 127 +#define PIDX_KDF_PARAM_KEY 128 +#define PIDX_KDF_PARAM_LABEL 129 +#define PIDX_KDF_PARAM_MAC PIDX_ALG_PARAM_MAC +#define PIDX_KDF_PARAM_MAC_SIZE 130 +#define PIDX_KDF_PARAM_MODE 55 +#define PIDX_KDF_PARAM_PASSWORD 131 +#define PIDX_KDF_PARAM_PKCS12_ID 132 +#define PIDX_KDF_PARAM_PKCS5 133 +#define PIDX_KDF_PARAM_PREFIX 134 +#define PIDX_KDF_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_KDF_PARAM_SALT 135 +#define PIDX_KDF_PARAM_SCRYPT_MAXMEM 136 +#define PIDX_KDF_PARAM_SCRYPT_N 137 +#define PIDX_KDF_PARAM_SCRYPT_P 138 +#define PIDX_KDF_PARAM_SCRYPT_R 125 +#define PIDX_KDF_PARAM_SECRET 139 +#define PIDX_KDF_PARAM_SEED 140 +#define PIDX_KDF_PARAM_SIZE 81 +#define PIDX_KDF_PARAM_SSHKDF_SESSION_ID 141 +#define PIDX_KDF_PARAM_SSHKDF_TYPE 142 +#define PIDX_KDF_PARAM_SSHKDF_XCGHASH 143 +#define PIDX_KDF_PARAM_THREADS 144 +#define PIDX_KDF_PARAM_UKM 145 +#define PIDX_KDF_PARAM_X942_ACVPINFO 146 +#define PIDX_KDF_PARAM_X942_PARTYUINFO 147 +#define PIDX_KDF_PARAM_X942_PARTYVINFO 148 +#define PIDX_KDF_PARAM_X942_SUPP_PRIVINFO 149 +#define PIDX_KDF_PARAM_X942_SUPP_PUBINFO 150 +#define PIDX_KDF_PARAM_X942_USE_KEYBITS 151 +#define PIDX_KEM_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_KEM_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_KEM_PARAM_IKME 152 +#define PIDX_KEM_PARAM_OPERATION 153 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_BLOCK_PADDING 154 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_HS_PADDING 155 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_MAX_EARLY_DATA 156 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_MAX_FRAG_LEN 157 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_MODE 55 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_OPTIONS 158 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_READ_AHEAD 159 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_STREAM_MAC 160 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_TLSTREE 161 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_USE_ETM 162 +#define PIDX_LIBSSL_RECORD_LAYER_READ_BUFFER_LEN 163 +#define PIDX_MAC_PARAM_BLOCK_SIZE 164 +#define PIDX_MAC_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_MAC_PARAM_CUSTOM 165 +#define PIDX_MAC_PARAM_C_ROUNDS 166 +#define PIDX_MAC_PARAM_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_MAC_PARAM_DIGEST_NOINIT 167 +#define PIDX_MAC_PARAM_DIGEST_ONESHOT 168 +#define PIDX_MAC_PARAM_D_ROUNDS 169 +#define PIDX_MAC_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_MAC_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_MAC_PARAM_FIPS_NO_SHORT_MAC PIDX_PROV_PARAM_NO_SHORT_MAC +#define PIDX_MAC_PARAM_IV 52 +#define PIDX_MAC_PARAM_KEY 128 +#define PIDX_MAC_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_MAC_PARAM_SALT 135 +#define PIDX_MAC_PARAM_SIZE 81 +#define PIDX_MAC_PARAM_TLS_DATA_SIZE 170 +#define PIDX_MAC_PARAM_XOF 83 +#define PIDX_OBJECT_PARAM_DATA 118 +#define PIDX_OBJECT_PARAM_DATA_STRUCTURE 171 +#define PIDX_OBJECT_PARAM_DATA_TYPE 172 +#define PIDX_OBJECT_PARAM_DESC 173 +#define PIDX_OBJECT_PARAM_INPUT_TYPE 174 +#define PIDX_OBJECT_PARAM_REFERENCE 175 +#define PIDX_OBJECT_PARAM_TYPE 142 +#define PIDX_PASSPHRASE_PARAM_INFO 123 +#define PIDX_PKEY_PARAM_ALGORITHM_ID PIDX_ALG_PARAM_ALGORITHM_ID +#define PIDX_PKEY_PARAM_ALGORITHM_ID_PARAMS PIDX_ALG_PARAM_ALGORITHM_ID_PARAMS +#define PIDX_PKEY_PARAM_BITS 176 +#define PIDX_PKEY_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_PKEY_PARAM_DEFAULT_DIGEST 177 +#define PIDX_PKEY_PARAM_DHKEM_IKM 178 +#define PIDX_PKEY_PARAM_DH_GENERATOR 179 +#define PIDX_PKEY_PARAM_DH_PRIV_LEN 180 +#define PIDX_PKEY_PARAM_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_PKEY_PARAM_DIGEST_SIZE 181 +#define PIDX_PKEY_PARAM_DIST_ID 182 +#define PIDX_PKEY_PARAM_EC_A 183 +#define PIDX_PKEY_PARAM_EC_B 184 +#define PIDX_PKEY_PARAM_EC_CHAR2_M 185 +#define PIDX_PKEY_PARAM_EC_CHAR2_PP_K1 186 +#define PIDX_PKEY_PARAM_EC_CHAR2_PP_K2 187 +#define PIDX_PKEY_PARAM_EC_CHAR2_PP_K3 188 +#define PIDX_PKEY_PARAM_EC_CHAR2_TP_BASIS 189 +#define PIDX_PKEY_PARAM_EC_CHAR2_TYPE 190 +#define PIDX_PKEY_PARAM_EC_COFACTOR 191 +#define PIDX_PKEY_PARAM_EC_DECODED_FROM_EXPLICIT_PARAMS 192 +#define PIDX_PKEY_PARAM_EC_ENCODING 193 +#define PIDX_PKEY_PARAM_EC_FIELD_TYPE 194 +#define PIDX_PKEY_PARAM_EC_GENERATOR 195 +#define PIDX_PKEY_PARAM_EC_GROUP_CHECK_TYPE 196 +#define PIDX_PKEY_PARAM_EC_INCLUDE_PUBLIC 197 +#define PIDX_PKEY_PARAM_EC_ORDER 198 +#define PIDX_PKEY_PARAM_EC_P 138 +#define PIDX_PKEY_PARAM_EC_POINT_CONVERSION_FORMAT 199 +#define PIDX_PKEY_PARAM_EC_PUB_X 200 +#define PIDX_PKEY_PARAM_EC_PUB_Y 201 +#define PIDX_PKEY_PARAM_EC_SEED 140 +#define PIDX_PKEY_PARAM_ENCODED_PUBLIC_KEY 202 +#define PIDX_PKEY_PARAM_ENGINE PIDX_ALG_PARAM_ENGINE +#define PIDX_PKEY_PARAM_FFC_COFACTOR 203 +#define PIDX_PKEY_PARAM_FFC_DIGEST PIDX_PKEY_PARAM_DIGEST +#define PIDX_PKEY_PARAM_FFC_DIGEST_PROPS PIDX_PKEY_PARAM_PROPERTIES +#define PIDX_PKEY_PARAM_FFC_G 204 +#define PIDX_PKEY_PARAM_FFC_GINDEX 205 +#define PIDX_PKEY_PARAM_FFC_H 206 +#define PIDX_PKEY_PARAM_FFC_P 138 +#define PIDX_PKEY_PARAM_FFC_PBITS 207 +#define PIDX_PKEY_PARAM_FFC_PCOUNTER 208 +#define PIDX_PKEY_PARAM_FFC_Q 209 +#define PIDX_PKEY_PARAM_FFC_QBITS 210 +#define PIDX_PKEY_PARAM_FFC_SEED 140 +#define PIDX_PKEY_PARAM_FFC_TYPE 142 +#define PIDX_PKEY_PARAM_FFC_VALIDATE_G 211 +#define PIDX_PKEY_PARAM_FFC_VALIDATE_LEGACY 212 +#define PIDX_PKEY_PARAM_FFC_VALIDATE_PQ 213 +#define PIDX_PKEY_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK 214 +#define PIDX_PKEY_PARAM_FIPS_KEY_CHECK 215 +#define PIDX_PKEY_PARAM_FIPS_SIGN_CHECK 216 +#define PIDX_PKEY_PARAM_GROUP_NAME 217 +#define PIDX_PKEY_PARAM_IMPLICIT_REJECTION 8 +#define PIDX_PKEY_PARAM_MANDATORY_DIGEST 218 +#define PIDX_PKEY_PARAM_MASKGENFUNC 219 +#define PIDX_PKEY_PARAM_MAX_SIZE 220 +#define PIDX_PKEY_PARAM_MGF1_DIGEST 221 +#define PIDX_PKEY_PARAM_MGF1_PROPERTIES 222 +#define PIDX_PKEY_PARAM_ML_DSA_INPUT_FORMATS 223 +#define PIDX_PKEY_PARAM_ML_DSA_OUTPUT_FORMATS 224 +#define PIDX_PKEY_PARAM_ML_DSA_PREFER_SEED 225 +#define PIDX_PKEY_PARAM_ML_DSA_RETAIN_SEED 226 +#define PIDX_PKEY_PARAM_ML_DSA_SEED 140 +#define PIDX_PKEY_PARAM_ML_KEM_IMPORT_PCT_TYPE 227 +#define PIDX_PKEY_PARAM_ML_KEM_INPUT_FORMATS 228 +#define PIDX_PKEY_PARAM_ML_KEM_OUTPUT_FORMATS 229 +#define PIDX_PKEY_PARAM_ML_KEM_PREFER_SEED 230 +#define PIDX_PKEY_PARAM_ML_KEM_RETAIN_SEED 231 +#define PIDX_PKEY_PARAM_ML_KEM_SEED 140 +#define PIDX_PKEY_PARAM_PAD_MODE 232 +#define PIDX_PKEY_PARAM_PRIV_KEY 233 +#define PIDX_PKEY_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_PKEY_PARAM_PUB_KEY 234 +#define PIDX_PKEY_PARAM_RSA_BITS PIDX_PKEY_PARAM_BITS +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT 235 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT1 236 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT2 237 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT3 238 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT4 239 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT5 240 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT6 241 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT7 242 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT8 243 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT9 244 +#define PIDX_PKEY_PARAM_RSA_D 245 +#define PIDX_PKEY_PARAM_RSA_DERIVE_FROM_PQ 246 +#define PIDX_PKEY_PARAM_RSA_DIGEST PIDX_PKEY_PARAM_DIGEST +#define PIDX_PKEY_PARAM_RSA_DIGEST_PROPS PIDX_PKEY_PARAM_PROPERTIES +#define PIDX_PKEY_PARAM_RSA_E 247 +#define PIDX_PKEY_PARAM_RSA_EXPONENT 248 +#define PIDX_PKEY_PARAM_RSA_EXPONENT1 249 +#define PIDX_PKEY_PARAM_RSA_EXPONENT10 250 +#define PIDX_PKEY_PARAM_RSA_EXPONENT2 251 +#define PIDX_PKEY_PARAM_RSA_EXPONENT3 252 +#define PIDX_PKEY_PARAM_RSA_EXPONENT4 253 +#define PIDX_PKEY_PARAM_RSA_EXPONENT5 254 +#define PIDX_PKEY_PARAM_RSA_EXPONENT6 255 +#define PIDX_PKEY_PARAM_RSA_EXPONENT7 256 +#define PIDX_PKEY_PARAM_RSA_EXPONENT8 257 +#define PIDX_PKEY_PARAM_RSA_EXPONENT9 258 +#define PIDX_PKEY_PARAM_RSA_FACTOR 259 +#define PIDX_PKEY_PARAM_RSA_FACTOR1 260 +#define PIDX_PKEY_PARAM_RSA_FACTOR10 261 +#define PIDX_PKEY_PARAM_RSA_FACTOR2 262 +#define PIDX_PKEY_PARAM_RSA_FACTOR3 263 +#define PIDX_PKEY_PARAM_RSA_FACTOR4 264 +#define PIDX_PKEY_PARAM_RSA_FACTOR5 265 +#define PIDX_PKEY_PARAM_RSA_FACTOR6 266 +#define PIDX_PKEY_PARAM_RSA_FACTOR7 267 +#define PIDX_PKEY_PARAM_RSA_FACTOR8 268 +#define PIDX_PKEY_PARAM_RSA_FACTOR9 269 +#define PIDX_PKEY_PARAM_RSA_MASKGENFUNC PIDX_PKEY_PARAM_MASKGENFUNC +#define PIDX_PKEY_PARAM_RSA_MGF1_DIGEST PIDX_PKEY_PARAM_MGF1_DIGEST +#define PIDX_PKEY_PARAM_RSA_N 137 +#define PIDX_PKEY_PARAM_RSA_PRIMES 270 +#define PIDX_PKEY_PARAM_RSA_PSS_SALTLEN 271 +#define PIDX_PKEY_PARAM_RSA_TEST_P1 272 +#define PIDX_PKEY_PARAM_RSA_TEST_P2 273 +#define PIDX_PKEY_PARAM_RSA_TEST_Q1 274 +#define PIDX_PKEY_PARAM_RSA_TEST_Q2 275 +#define PIDX_PKEY_PARAM_RSA_TEST_XP 276 +#define PIDX_PKEY_PARAM_RSA_TEST_XP1 277 +#define PIDX_PKEY_PARAM_RSA_TEST_XP2 278 +#define PIDX_PKEY_PARAM_RSA_TEST_XQ 279 +#define PIDX_PKEY_PARAM_RSA_TEST_XQ1 280 +#define PIDX_PKEY_PARAM_RSA_TEST_XQ2 281 +#define PIDX_PKEY_PARAM_SECURITY_BITS 282 +#define PIDX_PKEY_PARAM_SLH_DSA_SEED 140 +#define PIDX_PKEY_PARAM_USE_COFACTOR_ECDH PIDX_PKEY_PARAM_USE_COFACTOR_FLAG +#define PIDX_PKEY_PARAM_USE_COFACTOR_FLAG 283 +#define PIDX_PROV_PARAM_BUILDINFO 284 +#define PIDX_PROV_PARAM_CORE_MODULE_FILENAME 285 +#define PIDX_PROV_PARAM_CORE_PROV_NAME 286 +#define PIDX_PROV_PARAM_CORE_VERSION 287 +#define PIDX_PROV_PARAM_DRBG_TRUNC_DIGEST 288 +#define PIDX_PROV_PARAM_DSA_SIGN_DISABLED 289 +#define PIDX_PROV_PARAM_ECDH_COFACTOR_CHECK 290 +#define PIDX_PROV_PARAM_HKDF_DIGEST_CHECK 291 +#define PIDX_PROV_PARAM_HKDF_KEY_CHECK 292 +#define PIDX_PROV_PARAM_HMAC_KEY_CHECK 293 +#define PIDX_PROV_PARAM_KBKDF_KEY_CHECK 294 +#define PIDX_PROV_PARAM_KMAC_KEY_CHECK 295 +#define PIDX_PROV_PARAM_NAME 296 +#define PIDX_PROV_PARAM_NO_SHORT_MAC 297 +#define PIDX_PROV_PARAM_PBKDF2_LOWER_BOUND_CHECK 298 +#define PIDX_PROV_PARAM_RSA_PKCS15_PAD_DISABLED 299 +#define PIDX_PROV_PARAM_RSA_PSS_SALTLEN_CHECK 300 +#define PIDX_PROV_PARAM_RSA_SIGN_X931_PAD_DISABLED 301 +#define PIDX_PROV_PARAM_SECURITY_CHECKS 302 +#define PIDX_PROV_PARAM_SELF_TEST_DESC 303 +#define PIDX_PROV_PARAM_SELF_TEST_PHASE 304 +#define PIDX_PROV_PARAM_SELF_TEST_TYPE 305 +#define PIDX_PROV_PARAM_SIGNATURE_DIGEST_CHECK 306 +#define PIDX_PROV_PARAM_SSHKDF_DIGEST_CHECK 307 +#define PIDX_PROV_PARAM_SSHKDF_KEY_CHECK 308 +#define PIDX_PROV_PARAM_SSKDF_DIGEST_CHECK 309 +#define PIDX_PROV_PARAM_SSKDF_KEY_CHECK 310 +#define PIDX_PROV_PARAM_STATUS 311 +#define PIDX_PROV_PARAM_TDES_ENCRYPT_DISABLED 312 +#define PIDX_PROV_PARAM_TLS13_KDF_DIGEST_CHECK 313 +#define PIDX_PROV_PARAM_TLS13_KDF_KEY_CHECK 314 +#define PIDX_PROV_PARAM_TLS1_PRF_DIGEST_CHECK 315 +#define PIDX_PROV_PARAM_TLS1_PRF_EMS_CHECK 316 +#define PIDX_PROV_PARAM_TLS1_PRF_KEY_CHECK 317 +#define PIDX_PROV_PARAM_VERSION 115 +#define PIDX_PROV_PARAM_X942KDF_KEY_CHECK 318 +#define PIDX_PROV_PARAM_X963KDF_DIGEST_CHECK 319 +#define PIDX_PROV_PARAM_X963KDF_KEY_CHECK 320 +#define PIDX_RAND_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_RAND_PARAM_GENERATE 321 +#define PIDX_RAND_PARAM_MAX_REQUEST 322 +#define PIDX_RAND_PARAM_STATE 323 +#define PIDX_RAND_PARAM_STRENGTH 324 +#define PIDX_RAND_PARAM_TEST_ENTROPY 325 +#define PIDX_RAND_PARAM_TEST_NONCE 326 +#define PIDX_SIGNATURE_PARAM_ADD_RANDOM 327 +#define PIDX_SIGNATURE_PARAM_ALGORITHM_ID PIDX_PKEY_PARAM_ALGORITHM_ID +#define PIDX_SIGNATURE_PARAM_ALGORITHM_ID_PARAMS PIDX_PKEY_PARAM_ALGORITHM_ID_PARAMS +#define PIDX_SIGNATURE_PARAM_CONTEXT_STRING 328 +#define PIDX_SIGNATURE_PARAM_DETERMINISTIC 329 +#define PIDX_SIGNATURE_PARAM_DIGEST PIDX_PKEY_PARAM_DIGEST +#define PIDX_SIGNATURE_PARAM_DIGEST_SIZE PIDX_PKEY_PARAM_DIGEST_SIZE +#define PIDX_SIGNATURE_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_SIGNATURE_PARAM_FIPS_DIGEST_CHECK PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK +#define PIDX_SIGNATURE_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_SIGNATURE_PARAM_FIPS_RSA_PSS_SALTLEN_CHECK 300 +#define PIDX_SIGNATURE_PARAM_FIPS_SIGN_CHECK PIDX_PKEY_PARAM_FIPS_SIGN_CHECK +#define PIDX_SIGNATURE_PARAM_FIPS_SIGN_X931_PAD_CHECK 330 +#define PIDX_SIGNATURE_PARAM_FIPS_VERIFY_MESSAGE 331 +#define PIDX_SIGNATURE_PARAM_INSTANCE 332 +#define PIDX_SIGNATURE_PARAM_KAT 333 +#define PIDX_SIGNATURE_PARAM_MESSAGE_ENCODING 334 +#define PIDX_SIGNATURE_PARAM_MGF1_DIGEST PIDX_PKEY_PARAM_MGF1_DIGEST +#define PIDX_SIGNATURE_PARAM_MGF1_PROPERTIES PIDX_PKEY_PARAM_MGF1_PROPERTIES +#define PIDX_SIGNATURE_PARAM_MU 335 +#define PIDX_SIGNATURE_PARAM_NONCE_TYPE 336 +#define PIDX_SIGNATURE_PARAM_PAD_MODE PIDX_PKEY_PARAM_PAD_MODE +#define PIDX_SIGNATURE_PARAM_PROPERTIES PIDX_PKEY_PARAM_PROPERTIES +#define PIDX_SIGNATURE_PARAM_PSS_SALTLEN 271 +#define PIDX_SIGNATURE_PARAM_SIGNATURE 337 +#define PIDX_SIGNATURE_PARAM_TEST_ENTROPY 338 +#define PIDX_SKEY_PARAM_KEY_LENGTH 339 +#define PIDX_SKEY_PARAM_RAW_BYTES 340 +#define PIDX_STORE_PARAM_ALIAS 341 +#define PIDX_STORE_PARAM_DIGEST 3 +#define PIDX_STORE_PARAM_EXPECT 342 +#define PIDX_STORE_PARAM_FINGERPRINT 343 +#define PIDX_STORE_PARAM_INPUT_TYPE 174 +#define PIDX_STORE_PARAM_ISSUER 296 +#define PIDX_STORE_PARAM_PROPERTIES 7 +#define PIDX_STORE_PARAM_SERIAL 344 +#define PIDX_STORE_PARAM_SUBJECT 345 diff --git a/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/include/openssl/asn1.h b/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/include/openssl/asn1.h index 21ff58e3d803d4..15e9e44674b0f3 100644 --- a/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/include/openssl/asn1.h +++ b/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/include/openssl/asn1.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/asn1.h.in * - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -21,6 +21,9 @@ # define HEADER_ASN1_H # endif +# ifndef OPENSSL_NO_STDIO +# include +# endif # include # include # include @@ -50,14 +53,14 @@ extern "C" { # define V_ASN1_PRIMITIVE_TAG 0x1f # define V_ASN1_PRIMATIVE_TAG /*compat*/ V_ASN1_PRIMITIVE_TAG -# define V_ASN1_APP_CHOOSE -2/* let the recipient choose */ -# define V_ASN1_OTHER -3/* used in ASN1_TYPE */ -# define V_ASN1_ANY -4/* used in ASN1 template code */ +# define V_ASN1_APP_CHOOSE -2 /* let the recipient choose */ +# define V_ASN1_OTHER -3 /* used in ASN1_TYPE */ +# define V_ASN1_ANY -4 /* used in ASN1 template code */ # define V_ASN1_UNDEF -1 /* ASN.1 tag values */ # define V_ASN1_EOC 0 -# define V_ASN1_BOOLEAN 1 /**/ +# define V_ASN1_BOOLEAN 1 # define V_ASN1_INTEGER 2 # define V_ASN1_BIT_STRING 3 # define V_ASN1_OCTET_STRING 4 @@ -70,19 +73,19 @@ extern "C" { # define V_ASN1_UTF8STRING 12 # define V_ASN1_SEQUENCE 16 # define V_ASN1_SET 17 -# define V_ASN1_NUMERICSTRING 18 /**/ +# define V_ASN1_NUMERICSTRING 18 # define V_ASN1_PRINTABLESTRING 19 # define V_ASN1_T61STRING 20 -# define V_ASN1_TELETEXSTRING 20/* alias */ -# define V_ASN1_VIDEOTEXSTRING 21 /**/ +# define V_ASN1_TELETEXSTRING 20 /* alias */ +# define V_ASN1_VIDEOTEXSTRING 21 # define V_ASN1_IA5STRING 22 # define V_ASN1_UTCTIME 23 -# define V_ASN1_GENERALIZEDTIME 24 /**/ -# define V_ASN1_GRAPHICSTRING 25 /**/ -# define V_ASN1_ISO64STRING 26 /**/ -# define V_ASN1_VISIBLESTRING 26/* alias */ -# define V_ASN1_GENERALSTRING 27 /**/ -# define V_ASN1_UNIVERSALSTRING 28 /**/ +# define V_ASN1_GENERALIZEDTIME 24 +# define V_ASN1_GRAPHICSTRING 25 +# define V_ASN1_ISO64STRING 26 +# define V_ASN1_VISIBLESTRING 26 /* alias */ +# define V_ASN1_GENERALSTRING 27 +# define V_ASN1_UNIVERSALSTRING 28 # define V_ASN1_BMPSTRING 30 /* @@ -155,7 +158,7 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_ALGOR, X509_ALGOR, X509_ALGOR) -# define ASN1_STRING_FLAG_BITS_LEFT 0x08/* Set if 0x07 has bits left value */ +# define ASN1_STRING_FLAG_BITS_LEFT 0x08 /* Set if 0x07 has bits left value */ /* * This indicates that the ASN1_STRING is not a real value but just a place * holder for the location where indefinite length constructed data should be @@ -275,7 +278,7 @@ typedef struct ASN1_TLC_st ASN1_TLC; /* This is just an opaque pointer */ typedef struct ASN1_VALUE_st ASN1_VALUE; -/* Declare ASN1 functions: the implement macro in in asn1t.h */ +/* Declare ASN1 functions: the implement macro is in asn1t.h */ /* * The mysterious 'extern' that's passed to some macros is innocuous, @@ -368,6 +371,7 @@ typedef struct ASN1_VALUE_st ASN1_VALUE; typedef void *d2i_of_void(void **, const unsigned char **, long); typedef int i2d_of_void(const void *, unsigned char **); +typedef int OSSL_i2d_of_void_ctx(const void *, unsigned char **, void *vctx); /*- * The following macros and typedefs allow an ASN1_ITEM @@ -996,6 +1000,8 @@ int ASN1_TYPE_get_int_octetstring(const ASN1_TYPE *a, long *num, unsigned char *data, int max_len); void *ASN1_item_unpack(const ASN1_STRING *oct, const ASN1_ITEM *it); +void *ASN1_item_unpack_ex(const ASN1_STRING *oct, const ASN1_ITEM *it, + OSSL_LIB_CTX *libctx, const char *propq); ASN1_STRING *ASN1_item_pack(void *obj, const ASN1_ITEM *it, ASN1_OCTET_STRING **oct); diff --git a/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/include/openssl/bio.h b/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/include/openssl/bio.h index f9aa74731c833c..e02f867beb0ec0 100644 --- a/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/include/openssl/bio.h +++ b/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/include/openssl/bio.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/bio.h.in * - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -67,8 +67,13 @@ extern "C" { # define BIO_TYPE_DGRAM_SCTP (24|BIO_TYPE_SOURCE_SINK|BIO_TYPE_DESCRIPTOR) # endif # define BIO_TYPE_CORE_TO_PROV (25|BIO_TYPE_SOURCE_SINK) +# define BIO_TYPE_DGRAM_PAIR (26|BIO_TYPE_SOURCE_SINK) +# define BIO_TYPE_DGRAM_MEM (27|BIO_TYPE_SOURCE_SINK) +/* Custom type starting index returned by BIO_get_new_index() */ #define BIO_TYPE_START 128 +/* Custom type maximum index that can be returned by BIO_get_new_index() */ +#define BIO_TYPE_MASK 0xFF /* * BIO_FILENAME_READ|BIO_CLOSE to open or close on free. @@ -171,6 +176,31 @@ extern "C" { # define BIO_CTRL_SET_INDENT 80 # define BIO_CTRL_GET_INDENT 81 +# define BIO_CTRL_DGRAM_GET_LOCAL_ADDR_CAP 82 +# define BIO_CTRL_DGRAM_GET_LOCAL_ADDR_ENABLE 83 +# define BIO_CTRL_DGRAM_SET_LOCAL_ADDR_ENABLE 84 +# define BIO_CTRL_DGRAM_GET_EFFECTIVE_CAPS 85 +# define BIO_CTRL_DGRAM_GET_CAPS 86 +# define BIO_CTRL_DGRAM_SET_CAPS 87 +# define BIO_CTRL_DGRAM_GET_NO_TRUNC 88 +# define BIO_CTRL_DGRAM_SET_NO_TRUNC 89 + +/* + * internal BIO: + * # define BIO_CTRL_SET_KTLS_TX_ZEROCOPY_SENDFILE 90 + */ + +# define BIO_CTRL_GET_RPOLL_DESCRIPTOR 91 +# define BIO_CTRL_GET_WPOLL_DESCRIPTOR 92 +# define BIO_CTRL_DGRAM_DETECT_PEER_ADDR 93 +# define BIO_CTRL_DGRAM_SET0_LOCAL_ADDR 94 + +# define BIO_DGRAM_CAP_NONE 0U +# define BIO_DGRAM_CAP_HANDLES_SRC_ADDR (1U << 0) +# define BIO_DGRAM_CAP_HANDLES_DST_ADDR (1U << 1) +# define BIO_DGRAM_CAP_PROVIDES_SRC_ADDR (1U << 2) +# define BIO_DGRAM_CAP_PROVIDES_DST_ADDR (1U << 3) + # ifndef OPENSSL_NO_KTLS # define BIO_get_ktls_send(b) \ (BIO_ctrl(b, BIO_CTRL_GET_KTLS_SEND, 0, NULL) > 0) @@ -208,7 +238,7 @@ extern "C" { # define BIO_FLAGS_NONCLEAR_RST 0x400 # define BIO_FLAGS_IN_EOF 0x800 -/* the BIO FLAGS values 0x1000 to 0x4000 are reserved for internal KTLS flags */ +/* the BIO FLAGS values 0x1000 to 0x8000 are reserved for internal KTLS flags */ typedef union bio_addr_st BIO_ADDR; typedef struct bio_addrinfo_st BIO_ADDRINFO; @@ -256,12 +286,14 @@ void BIO_clear_flags(BIO *b, int flags); # define BIO_RR_ACCEPT 0x03 /* These are passed by the BIO callback */ -# define BIO_CB_FREE 0x01 -# define BIO_CB_READ 0x02 -# define BIO_CB_WRITE 0x03 -# define BIO_CB_PUTS 0x04 -# define BIO_CB_GETS 0x05 -# define BIO_CB_CTRL 0x06 +# define BIO_CB_FREE 0x01 +# define BIO_CB_READ 0x02 +# define BIO_CB_WRITE 0x03 +# define BIO_CB_PUTS 0x04 +# define BIO_CB_GETS 0x05 +# define BIO_CB_CTRL 0x06 +# define BIO_CB_RECVMMSG 0x07 +# define BIO_CB_SENDMMSG 0x08 /* * The callback is called before and after the underling operation, The @@ -362,6 +394,36 @@ struct bio_dgram_sctp_prinfo { }; # endif +/* BIO_sendmmsg/BIO_recvmmsg-related definitions */ +typedef struct bio_msg_st { + void *data; + size_t data_len; + BIO_ADDR *peer, *local; + uint64_t flags; +} BIO_MSG; + +typedef struct bio_mmsg_cb_args_st { + BIO_MSG *msg; + size_t stride, num_msg; + uint64_t flags; + size_t *msgs_processed; +} BIO_MMSG_CB_ARGS; + +#define BIO_POLL_DESCRIPTOR_TYPE_NONE 0 +#define BIO_POLL_DESCRIPTOR_TYPE_SOCK_FD 1 +#define BIO_POLL_DESCRIPTOR_TYPE_SSL 2 +#define BIO_POLL_DESCRIPTOR_CUSTOM_START 8192 + +typedef struct bio_poll_descriptor_st { + uint32_t type; + union { + int fd; + void *custom; + uintptr_t custom_ui; + SSL *ssl; + } value; +} BIO_POLL_DESCRIPTOR; + /* * #define BIO_CONN_get_param_hostname BIO_ctrl */ @@ -428,10 +490,17 @@ struct bio_dgram_sctp_prinfo { # define BIO_C_SET_CONNECT_MODE 155 +# define BIO_C_SET_TFO 156 /* like BIO_C_SET_NBIO */ + +# define BIO_C_SET_SOCK_TYPE 157 +# define BIO_C_GET_SOCK_TYPE 158 +# define BIO_C_GET_DGRAM_BIO 159 + # define BIO_set_app_data(s,arg) BIO_set_ex_data(s,0,arg) # define BIO_get_app_data(s) BIO_get_ex_data(s,0) -# define BIO_set_nbio(b,n) BIO_ctrl(b,BIO_C_SET_NBIO,(n),NULL) +# define BIO_set_nbio(b,n) BIO_ctrl(b,BIO_C_SET_NBIO,(n),NULL) +# define BIO_set_tfo(b,n) BIO_ctrl(b,BIO_C_SET_TFO,(n),NULL) # ifndef OPENSSL_NO_SOCK /* IP families we support, for BIO_s_connect() and BIO_s_accept() */ @@ -452,7 +521,11 @@ struct bio_dgram_sctp_prinfo { # define BIO_get_conn_port(b) ((const char *)BIO_ptr_ctrl(b,BIO_C_GET_CONNECT,1)) # define BIO_get_conn_address(b) ((const BIO_ADDR *)BIO_ptr_ctrl(b,BIO_C_GET_CONNECT,2)) # define BIO_get_conn_ip_family(b) BIO_ctrl(b,BIO_C_GET_CONNECT,3,NULL) +# define BIO_get_conn_mode(b) BIO_ctrl(b,BIO_C_GET_CONNECT,4,NULL) # define BIO_set_conn_mode(b,n) BIO_ctrl(b,BIO_C_SET_CONNECT_MODE,(n),NULL) +# define BIO_set_sock_type(b,t) BIO_ctrl(b,BIO_C_SET_SOCK_TYPE,(t),NULL) +# define BIO_get_sock_type(b) BIO_ctrl(b,BIO_C_GET_SOCK_TYPE,0,NULL) +# define BIO_get0_dgram_bio(b, p) BIO_ctrl(b,BIO_C_GET_DGRAM_BIO,0,(void *)(BIO **)(p)) /* BIO_s_accept() */ # define BIO_set_accept_name(b,name) BIO_ctrl(b,BIO_C_SET_ACCEPT,0, \ @@ -469,6 +542,7 @@ struct bio_dgram_sctp_prinfo { (char *)(bio)) # define BIO_set_accept_ip_family(b,f) BIO_int_ctrl(b,BIO_C_SET_ACCEPT,4,f) # define BIO_get_accept_ip_family(b) BIO_ctrl(b,BIO_C_GET_ACCEPT,4,NULL) +# define BIO_set_tfo_accept(b,n) BIO_ctrl(b,BIO_C_SET_ACCEPT,5,(n)?(void *)"a":NULL) /* Aliases kept for backward compatibility */ # define BIO_BIND_NORMAL 0 @@ -596,8 +670,32 @@ int BIO_ctrl_reset_read_request(BIO *b); (int)BIO_ctrl(b, BIO_CTRL_DGRAM_GET_PEER, 0, (char *)(peer)) # define BIO_dgram_set_peer(b,peer) \ (int)BIO_ctrl(b, BIO_CTRL_DGRAM_SET_PEER, 0, (char *)(peer)) +# define BIO_dgram_detect_peer_addr(b,peer) \ + (int)BIO_ctrl(b, BIO_CTRL_DGRAM_DETECT_PEER_ADDR, 0, (char *)(peer)) # define BIO_dgram_get_mtu_overhead(b) \ (unsigned int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_MTU_OVERHEAD, 0, NULL) +# define BIO_dgram_get_local_addr_cap(b) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_LOCAL_ADDR_CAP, 0, NULL) +# define BIO_dgram_get_local_addr_enable(b, penable) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_LOCAL_ADDR_ENABLE, 0, (char *)(penable)) +# define BIO_dgram_set_local_addr_enable(b, enable) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET_LOCAL_ADDR_ENABLE, (enable), NULL) +# define BIO_dgram_get_effective_caps(b) \ + (uint32_t)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_EFFECTIVE_CAPS, 0, NULL) +# define BIO_dgram_get_caps(b) \ + (uint32_t)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_CAPS, 0, NULL) +# define BIO_dgram_set_caps(b, caps) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET_CAPS, (long)(caps), NULL) +# define BIO_dgram_get_no_trunc(b) \ + (unsigned int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_NO_TRUNC, 0, NULL) +# define BIO_dgram_set_no_trunc(b, enable) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET_NO_TRUNC, (enable), NULL) +# define BIO_dgram_get_mtu(b) \ + (unsigned int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_MTU, 0, NULL) +# define BIO_dgram_set_mtu(b, mtu) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET_MTU, (mtu), NULL) +# define BIO_dgram_set0_local_addr(b, addr) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET0_LOCAL_ADDR, 0, (addr)) /* ctrl macros for BIO_f_prefix */ # define BIO_set_prefix(b,p) BIO_ctrl((b), BIO_CTRL_SET_PREFIX, 0, (void *)(p)) @@ -640,10 +738,18 @@ void BIO_vfree(BIO *a); int BIO_up_ref(BIO *a); int BIO_read(BIO *b, void *data, int dlen); int BIO_read_ex(BIO *b, void *data, size_t dlen, size_t *readbytes); +__owur int BIO_recvmmsg(BIO *b, BIO_MSG *msg, + size_t stride, size_t num_msg, uint64_t flags, + size_t *msgs_processed); int BIO_gets(BIO *bp, char *buf, int size); int BIO_get_line(BIO *bio, char *buf, int size); int BIO_write(BIO *b, const void *data, int dlen); int BIO_write_ex(BIO *b, const void *data, size_t dlen, size_t *written); +__owur int BIO_sendmmsg(BIO *b, BIO_MSG *msg, + size_t stride, size_t num_msg, uint64_t flags, + size_t *msgs_processed); +__owur int BIO_get_rpoll_descriptor(BIO *b, BIO_POLL_DESCRIPTOR *desc); +__owur int BIO_get_wpoll_descriptor(BIO *b, BIO_POLL_DESCRIPTOR *desc); int BIO_puts(BIO *bp, const char *buf); int BIO_indent(BIO *b, int indent, int max); long BIO_ctrl(BIO *bp, int cmd, long larg, void *parg); @@ -667,6 +773,9 @@ int BIO_nwrite0(BIO *bio, char **buf); int BIO_nwrite(BIO *bio, char **buf, int num); const BIO_METHOD *BIO_s_mem(void); +# ifndef OPENSSL_NO_DGRAM +const BIO_METHOD *BIO_s_dgram_mem(void); +# endif const BIO_METHOD *BIO_s_secmem(void); BIO *BIO_new_mem_buf(const void *buf, int len); # ifndef OPENSSL_NO_SOCK @@ -686,6 +795,7 @@ const BIO_METHOD *BIO_f_nbio_test(void); const BIO_METHOD *BIO_f_prefix(void); const BIO_METHOD *BIO_s_core(void); # ifndef OPENSSL_NO_DGRAM +const BIO_METHOD *BIO_s_dgram_pair(void); const BIO_METHOD *BIO_s_datagram(void); int BIO_dgram_non_fatal_error(int error); BIO *BIO_new_dgram(int fd, int close_flag); @@ -704,6 +814,7 @@ int BIO_dgram_sctp_msg_waiting(BIO *b); # ifndef OPENSSL_NO_SOCK int BIO_sock_should_retry(int i); int BIO_sock_non_fatal_error(int error); +int BIO_err_is_non_fatal(unsigned int errcode); int BIO_socket_wait(int fd, int for_read, time_t max_time); # endif int BIO_wait(BIO *bio, time_t max_time, unsigned int nap_milliseconds); @@ -726,6 +837,8 @@ int BIO_hex_string(BIO *out, int indent, int width, const void *data, # ifndef OPENSSL_NO_SOCK BIO_ADDR *BIO_ADDR_new(void); +int BIO_ADDR_copy(BIO_ADDR *dst, const BIO_ADDR *src); +BIO_ADDR *BIO_ADDR_dup(const BIO_ADDR *ap); int BIO_ADDR_rawmake(BIO_ADDR *ap, int family, const void *where, size_t wherelen, unsigned short port); void BIO_ADDR_free(BIO_ADDR *); @@ -788,6 +901,7 @@ int BIO_sock_info(int sock, # define BIO_SOCK_KEEPALIVE 0x04 # define BIO_SOCK_NONBLOCK 0x08 # define BIO_SOCK_NODELAY 0x10 +# define BIO_SOCK_TFO 0x20 int BIO_socket(int domain, int socktype, int protocol, int options); int BIO_connect(int sock, const BIO_ADDR *addr, int options); @@ -805,6 +919,11 @@ BIO *BIO_new_fd(int fd, int close_flag); int BIO_new_bio_pair(BIO **bio1, size_t writebuf1, BIO **bio2, size_t writebuf2); +# ifndef OPENSSL_NO_DGRAM +int BIO_new_bio_dgram_pair(BIO **bio1, size_t writebuf1, + BIO **bio2, size_t writebuf2); +# endif + /* * If successful, returns 1 and in *bio1, *bio2 two BIO pair endpoints. * Otherwise returns 0 and sets *bio1 and *bio2 to NULL. Size 0 uses default @@ -849,38 +968,54 @@ ossl_bio__attr__((__format__(ossl_bio__printf__, 3, 0))); BIO_METHOD *BIO_meth_new(int type, const char *name); void BIO_meth_free(BIO_METHOD *biom); -int (*BIO_meth_get_write(const BIO_METHOD *biom)) (BIO *, const char *, int); -int (*BIO_meth_get_write_ex(const BIO_METHOD *biom)) (BIO *, const char *, size_t, - size_t *); int BIO_meth_set_write(BIO_METHOD *biom, int (*write) (BIO *, const char *, int)); int BIO_meth_set_write_ex(BIO_METHOD *biom, int (*bwrite) (BIO *, const char *, size_t, size_t *)); -int (*BIO_meth_get_read(const BIO_METHOD *biom)) (BIO *, char *, int); -int (*BIO_meth_get_read_ex(const BIO_METHOD *biom)) (BIO *, char *, size_t, size_t *); +int BIO_meth_set_sendmmsg(BIO_METHOD *biom, + int (*f) (BIO *, BIO_MSG *, size_t, size_t, + uint64_t, size_t *)); int BIO_meth_set_read(BIO_METHOD *biom, int (*read) (BIO *, char *, int)); int BIO_meth_set_read_ex(BIO_METHOD *biom, int (*bread) (BIO *, char *, size_t, size_t *)); -int (*BIO_meth_get_puts(const BIO_METHOD *biom)) (BIO *, const char *); +int BIO_meth_set_recvmmsg(BIO_METHOD *biom, + int (*f) (BIO *, BIO_MSG *, size_t, size_t, + uint64_t, size_t *)); int BIO_meth_set_puts(BIO_METHOD *biom, int (*puts) (BIO *, const char *)); -int (*BIO_meth_get_gets(const BIO_METHOD *biom)) (BIO *, char *, int); int BIO_meth_set_gets(BIO_METHOD *biom, int (*ossl_gets) (BIO *, char *, int)); -long (*BIO_meth_get_ctrl(const BIO_METHOD *biom)) (BIO *, int, long, void *); int BIO_meth_set_ctrl(BIO_METHOD *biom, long (*ctrl) (BIO *, int, long, void *)); -int (*BIO_meth_get_create(const BIO_METHOD *bion)) (BIO *); int BIO_meth_set_create(BIO_METHOD *biom, int (*create) (BIO *)); -int (*BIO_meth_get_destroy(const BIO_METHOD *biom)) (BIO *); int BIO_meth_set_destroy(BIO_METHOD *biom, int (*destroy) (BIO *)); -long (*BIO_meth_get_callback_ctrl(const BIO_METHOD *biom)) - (BIO *, int, BIO_info_cb *); int BIO_meth_set_callback_ctrl(BIO_METHOD *biom, long (*callback_ctrl) (BIO *, int, BIO_info_cb *)); - +# ifndef OPENSSL_NO_DEPRECATED_3_5 +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_write(const BIO_METHOD *biom)) (BIO *, const char *, + int); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_write_ex(const BIO_METHOD *biom)) (BIO *, const char *, + size_t, size_t *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_sendmmsg(const BIO_METHOD *biom))(BIO *, BIO_MSG *, + size_t, size_t, + uint64_t, size_t *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_read(const BIO_METHOD *biom)) (BIO *, char *, int); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_read_ex(const BIO_METHOD *biom)) (BIO *, char *, + size_t, size_t *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_recvmmsg(const BIO_METHOD *biom))(BIO *, BIO_MSG *, + size_t, size_t, + uint64_t, size_t *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_puts(const BIO_METHOD *biom)) (BIO *, const char *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_gets(const BIO_METHOD *biom)) (BIO *, char *, int); +OSSL_DEPRECATEDIN_3_5 long (*BIO_meth_get_ctrl(const BIO_METHOD *biom)) (BIO *, int, + long, void *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_create(const BIO_METHOD *bion)) (BIO *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_destroy(const BIO_METHOD *biom)) (BIO *); +OSSL_DEPRECATEDIN_3_5 long (*BIO_meth_get_callback_ctrl(const BIO_METHOD *biom)) (BIO *, int, + BIO_info_cb *); +# endif # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/include/openssl/cmp.h b/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/include/openssl/cmp.h index 49825570d8c303..05aed3029d594c 100644 --- a/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/include/openssl/cmp.h +++ b/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/include/openssl/cmp.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/cmp.h.in * - * Copyright 2007-2023 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2007-2024 The OpenSSL Project Authors. All Rights Reserved. * Copyright Nokia 2007-2019 * Copyright Siemens AG 2015-2019 * @@ -35,7 +35,9 @@ extern "C" { # endif -# define OSSL_CMP_PVNO 2 +# define OSSL_CMP_PVNO_2 2 +# define OSSL_CMP_PVNO_3 3 +# define OSSL_CMP_PVNO OSSL_CMP_PVNO_2 /* v2 is the default */ /*- * PKIFailureInfo ::= BIT STRING { @@ -137,7 +139,6 @@ extern "C" { # if OSSL_CMP_PKIFAILUREINFO_MAX_BIT_PATTERN > INT_MAX # error CMP_PKIFAILUREINFO_MAX bit pattern does not fit in type int # endif - typedef ASN1_BIT_STRING OSSL_CMP_PKIFAILUREINFO; # define OSSL_CMP_CTX_FAILINFO_badAlg (1 << 0) @@ -203,8 +204,8 @@ typedef ASN1_BIT_STRING OSSL_CMP_PKIFAILUREINFO; # define OSSL_CMP_PKISTATUS_revocationWarning 4 # define OSSL_CMP_PKISTATUS_revocationNotification 5 # define OSSL_CMP_PKISTATUS_keyUpdateWarning 6 - typedef ASN1_INTEGER OSSL_CMP_PKISTATUS; + DECLARE_ASN1_ITEM(OSSL_CMP_PKISTATUS) # define OSSL_CMP_CERTORENCCERT_CERTIFICATE 0 @@ -274,6 +275,46 @@ SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CMP_ITAV, OSSL_CMP_ITAV, OSSL_CMP_ITAV) #define sk_OSSL_CMP_ITAV_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_CMP_ITAV) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_CMP_ITAV_sk_type(sk), ossl_check_OSSL_CMP_ITAV_copyfunc_type(copyfunc), ossl_check_OSSL_CMP_ITAV_freefunc_type(freefunc))) #define sk_OSSL_CMP_ITAV_set_cmp_func(sk, cmp) ((sk_OSSL_CMP_ITAV_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CMP_ITAV_sk_type(sk), ossl_check_OSSL_CMP_ITAV_compfunc_type(cmp))) + +typedef struct ossl_cmp_crlstatus_st OSSL_CMP_CRLSTATUS; +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CMP_CRLSTATUS, OSSL_CMP_CRLSTATUS, OSSL_CMP_CRLSTATUS) +#define sk_OSSL_CMP_CRLSTATUS_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_value(sk, idx) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_value(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk), (idx))) +#define sk_OSSL_CMP_CRLSTATUS_new(cmp) ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_new(ossl_check_OSSL_CMP_CRLSTATUS_compfunc_type(cmp))) +#define sk_OSSL_CMP_CRLSTATUS_new_null() ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_new_null()) +#define sk_OSSL_CMP_CRLSTATUS_new_reserve(cmp, n) ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_CMP_CRLSTATUS_compfunc_type(cmp), (n))) +#define sk_OSSL_CMP_CRLSTATUS_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), (n)) +#define sk_OSSL_CMP_CRLSTATUS_free(sk) OPENSSL_sk_free(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_delete(sk, i) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_delete(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), (i))) +#define sk_OSSL_CMP_CRLSTATUS_delete_ptr(sk, ptr) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr))) +#define sk_OSSL_CMP_CRLSTATUS_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr)) +#define sk_OSSL_CMP_CRLSTATUS_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr)) +#define sk_OSSL_CMP_CRLSTATUS_pop(sk) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_pop(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk))) +#define sk_OSSL_CMP_CRLSTATUS_shift(sk) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_shift(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk))) +#define sk_OSSL_CMP_CRLSTATUS_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk),ossl_check_OSSL_CMP_CRLSTATUS_freefunc_type(freefunc)) +#define sk_OSSL_CMP_CRLSTATUS_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr), (idx)) +#define sk_OSSL_CMP_CRLSTATUS_set(sk, idx, ptr) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_set(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), (idx), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr))) +#define sk_OSSL_CMP_CRLSTATUS_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr)) +#define sk_OSSL_CMP_CRLSTATUS_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr)) +#define sk_OSSL_CMP_CRLSTATUS_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr), pnum) +#define sk_OSSL_CMP_CRLSTATUS_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_dup(sk) ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_dup(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk))) +#define sk_OSSL_CMP_CRLSTATUS_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_copyfunc_type(copyfunc), ossl_check_OSSL_CMP_CRLSTATUS_freefunc_type(freefunc))) +#define sk_OSSL_CMP_CRLSTATUS_set_cmp_func(sk, cmp) ((sk_OSSL_CMP_CRLSTATUS_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_compfunc_type(cmp))) + + +typedef OSSL_CRMF_ATTRIBUTETYPEANDVALUE OSSL_CMP_ATAV; +# define OSSL_CMP_ATAV_free OSSL_CRMF_ATTRIBUTETYPEANDVALUE_free +typedef STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) OSSL_CMP_ATAVS; +DECLARE_ASN1_FUNCTIONS(OSSL_CMP_ATAVS) +# define stack_st_OSSL_CMP_ATAV stack_st_OSSL_CRMF_ATTRIBUTETYPEANDVALUE +# define sk_OSSL_CMP_ATAV_num sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_num +# define sk_OSSL_CMP_ATAV_value sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_value +# define sk_OSSL_CMP_ATAV_push sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_push +# define sk_OSSL_CMP_ATAV_pop_free sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_pop_free + typedef struct ossl_cmp_revrepcontent_st OSSL_CMP_REVREPCONTENT; typedef struct ossl_cmp_pkisi_st OSSL_CMP_PKISI; DECLARE_ASN1_FUNCTIONS(OSSL_CMP_PKISI) @@ -375,21 +416,75 @@ void OSSL_CMP_ITAV_set0(OSSL_CMP_ITAV *itav, ASN1_OBJECT *type, ASN1_TYPE *value); ASN1_OBJECT *OSSL_CMP_ITAV_get0_type(const OSSL_CMP_ITAV *itav); ASN1_TYPE *OSSL_CMP_ITAV_get0_value(const OSSL_CMP_ITAV *itav); -int OSSL_CMP_ITAV_push0_stack_item(STACK_OF(OSSL_CMP_ITAV) **itav_sk_p, +int OSSL_CMP_ITAV_push0_stack_item(STACK_OF(OSSL_CMP_ITAV) **sk_p, OSSL_CMP_ITAV *itav); void OSSL_CMP_ITAV_free(OSSL_CMP_ITAV *itav); + +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new0_certProfile(STACK_OF(ASN1_UTF8STRING) + *certProfile); +int OSSL_CMP_ITAV_get0_certProfile(const OSSL_CMP_ITAV *itav, + STACK_OF(ASN1_UTF8STRING) **out); +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new_caCerts(const STACK_OF(X509) *caCerts); +int OSSL_CMP_ITAV_get0_caCerts(const OSSL_CMP_ITAV *itav, STACK_OF(X509) **out); + +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new_rootCaCert(const X509 *rootCaCert); +int OSSL_CMP_ITAV_get0_rootCaCert(const OSSL_CMP_ITAV *itav, X509 **out); +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new_rootCaKeyUpdate(const X509 *newWithNew, + const X509 *newWithOld, + const X509 *oldWithNew); +int OSSL_CMP_ITAV_get0_rootCaKeyUpdate(const OSSL_CMP_ITAV *itav, + X509 **newWithNew, + X509 **newWithOld, + X509 **oldWithNew); + +OSSL_CMP_CRLSTATUS *OSSL_CMP_CRLSTATUS_create(const X509_CRL *crl, + const X509 *cert, int only_DN); +OSSL_CMP_CRLSTATUS *OSSL_CMP_CRLSTATUS_new1(const DIST_POINT_NAME *dpn, + const GENERAL_NAMES *issuer, + const ASN1_TIME *thisUpdate); +int OSSL_CMP_CRLSTATUS_get0(const OSSL_CMP_CRLSTATUS *crlstatus, + DIST_POINT_NAME **dpn, GENERAL_NAMES **issuer, + ASN1_TIME **thisUpdate); +void OSSL_CMP_CRLSTATUS_free(OSSL_CMP_CRLSTATUS *crlstatus); +OSSL_CMP_ITAV +*OSSL_CMP_ITAV_new0_crlStatusList(STACK_OF(OSSL_CMP_CRLSTATUS) *crlStatusList); +int OSSL_CMP_ITAV_get0_crlStatusList(const OSSL_CMP_ITAV *itav, + STACK_OF(OSSL_CMP_CRLSTATUS) **out); +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new_crls(const X509_CRL *crls); +int OSSL_CMP_ITAV_get0_crls(const OSSL_CMP_ITAV *it, STACK_OF(X509_CRL) **out); +OSSL_CMP_ITAV +*OSSL_CMP_ITAV_new0_certReqTemplate(OSSL_CRMF_CERTTEMPLATE *certTemplate, + OSSL_CMP_ATAVS *keySpec); +int OSSL_CMP_ITAV_get1_certReqTemplate(const OSSL_CMP_ITAV *itav, + OSSL_CRMF_CERTTEMPLATE **certTemplate, + OSSL_CMP_ATAVS **keySpec); + +OSSL_CMP_ATAV *OSSL_CMP_ATAV_create(ASN1_OBJECT *type, ASN1_TYPE *value); +void OSSL_CMP_ATAV_set0(OSSL_CMP_ATAV *itav, ASN1_OBJECT *type, + ASN1_TYPE *value); +ASN1_OBJECT *OSSL_CMP_ATAV_get0_type(const OSSL_CMP_ATAV *itav); +ASN1_TYPE *OSSL_CMP_ATAV_get0_value(const OSSL_CMP_ATAV *itav); +OSSL_CMP_ATAV *OSSL_CMP_ATAV_new_algId(const X509_ALGOR *alg); +X509_ALGOR *OSSL_CMP_ATAV_get0_algId(const OSSL_CMP_ATAV *atav); +OSSL_CMP_ATAV *OSSL_CMP_ATAV_new_rsaKeyLen(int len); +int OSSL_CMP_ATAV_get_rsaKeyLen(const OSSL_CMP_ATAV *atav); +int OSSL_CMP_ATAV_push1(OSSL_CMP_ATAVS **sk_p, const OSSL_CMP_ATAV *atav); + void OSSL_CMP_MSG_free(OSSL_CMP_MSG *msg); /* from cmp_ctx.c */ OSSL_CMP_CTX *OSSL_CMP_CTX_new(OSSL_LIB_CTX *libctx, const char *propq); void OSSL_CMP_CTX_free(OSSL_CMP_CTX *ctx); int OSSL_CMP_CTX_reinit(OSSL_CMP_CTX *ctx); +OSSL_LIB_CTX *OSSL_CMP_CTX_get0_libctx(const OSSL_CMP_CTX *ctx); +const char *OSSL_CMP_CTX_get0_propq(const OSSL_CMP_CTX *ctx); /* CMP general options: */ # define OSSL_CMP_OPT_LOG_VERBOSITY 0 /* CMP transfer options: */ -# define OSSL_CMP_OPT_KEEP_ALIVE 10 -# define OSSL_CMP_OPT_MSG_TIMEOUT 11 +# define OSSL_CMP_OPT_KEEP_ALIVE 10 +# define OSSL_CMP_OPT_MSG_TIMEOUT 11 # define OSSL_CMP_OPT_TOTAL_TIMEOUT 12 +# define OSSL_CMP_OPT_USE_TLS 13 /* CMP request options: */ # define OSSL_CMP_OPT_VALIDITY_DAYS 20 # define OSSL_CMP_OPT_SUBJECTALTNAME_NODEFAULT 21 @@ -407,6 +502,7 @@ int OSSL_CMP_CTX_reinit(OSSL_CMP_CTX *ctx); # define OSSL_CMP_OPT_DIGEST_ALGNID 34 # define OSSL_CMP_OPT_IGNORE_KEYUSAGE 35 # define OSSL_CMP_OPT_PERMIT_TA_IN_EXTRACERTS_FOR_IR 36 +# define OSSL_CMP_OPT_NO_CACHE_EXTRACERTS 37 int OSSL_CMP_CTX_set_option(OSSL_CMP_CTX *ctx, int opt, int val); int OSSL_CMP_CTX_get_option(const OSSL_CMP_CTX *ctx, int opt); /* CMP-specific callback for logging and outputting the error queue: */ @@ -420,9 +516,11 @@ int OSSL_CMP_CTX_set1_server(OSSL_CMP_CTX *ctx, const char *address); int OSSL_CMP_CTX_set_serverPort(OSSL_CMP_CTX *ctx, int port); int OSSL_CMP_CTX_set1_proxy(OSSL_CMP_CTX *ctx, const char *name); int OSSL_CMP_CTX_set1_no_proxy(OSSL_CMP_CTX *ctx, const char *names); +# ifndef OPENSSL_NO_HTTP int OSSL_CMP_CTX_set_http_cb(OSSL_CMP_CTX *ctx, OSSL_HTTP_bio_cb_t cb); int OSSL_CMP_CTX_set_http_cb_arg(OSSL_CMP_CTX *ctx, void *arg); void *OSSL_CMP_CTX_get_http_cb_arg(const OSSL_CMP_CTX *ctx); +# endif typedef OSSL_CMP_MSG *(*OSSL_CMP_transfer_cb_t) (OSSL_CMP_CTX *ctx, const OSSL_CMP_MSG *req); int OSSL_CMP_CTX_set_transfer_cb(OSSL_CMP_CTX *ctx, OSSL_CMP_transfer_cb_t cb); @@ -432,7 +530,9 @@ void *OSSL_CMP_CTX_get_transfer_cb_arg(const OSSL_CMP_CTX *ctx); int OSSL_CMP_CTX_set1_srvCert(OSSL_CMP_CTX *ctx, X509 *cert); int OSSL_CMP_CTX_set1_expected_sender(OSSL_CMP_CTX *ctx, const X509_NAME *name); int OSSL_CMP_CTX_set0_trustedStore(OSSL_CMP_CTX *ctx, X509_STORE *store); +# define OSSL_CMP_CTX_set0_trusted OSSL_CMP_CTX_set0_trustedStore X509_STORE *OSSL_CMP_CTX_get0_trustedStore(const OSSL_CMP_CTX *ctx); +# define OSSL_CMP_CTX_get0_trusted OSSL_CMP_CTX_get0_trustedStore int OSSL_CMP_CTX_set1_untrusted(OSSL_CMP_CTX *ctx, STACK_OF(X509) *certs); STACK_OF(X509) *OSSL_CMP_CTX_get0_untrusted(const OSSL_CMP_CTX *ctx); /* client authentication: */ @@ -448,12 +548,15 @@ int OSSL_CMP_CTX_set1_secretValue(OSSL_CMP_CTX *ctx, int OSSL_CMP_CTX_set1_recipient(OSSL_CMP_CTX *ctx, const X509_NAME *name); int OSSL_CMP_CTX_push0_geninfo_ITAV(OSSL_CMP_CTX *ctx, OSSL_CMP_ITAV *itav); int OSSL_CMP_CTX_reset_geninfo_ITAVs(OSSL_CMP_CTX *ctx); +STACK_OF(OSSL_CMP_ITAV) + *OSSL_CMP_CTX_get0_geninfo_ITAVs(const OSSL_CMP_CTX *ctx); int OSSL_CMP_CTX_set1_extraCertsOut(OSSL_CMP_CTX *ctx, STACK_OF(X509) *extraCertsOut); /* certificate template: */ int OSSL_CMP_CTX_set0_newPkey(OSSL_CMP_CTX *ctx, int priv, EVP_PKEY *pkey); EVP_PKEY *OSSL_CMP_CTX_get0_newPkey(const OSSL_CMP_CTX *ctx, int priv); int OSSL_CMP_CTX_set1_issuer(OSSL_CMP_CTX *ctx, const X509_NAME *name); +int OSSL_CMP_CTX_set1_serialNumber(OSSL_CMP_CTX *ctx, const ASN1_INTEGER *sn); int OSSL_CMP_CTX_set1_subjectName(OSSL_CMP_CTX *ctx, const X509_NAME *name); int OSSL_CMP_CTX_push1_subjectAltName(OSSL_CMP_CTX *ctx, const GENERAL_NAME *name); @@ -477,6 +580,7 @@ int OSSL_CMP_CTX_get_status(const OSSL_CMP_CTX *ctx); OSSL_CMP_PKIFREETEXT *OSSL_CMP_CTX_get0_statusString(const OSSL_CMP_CTX *ctx); int OSSL_CMP_CTX_get_failInfoCode(const OSSL_CMP_CTX *ctx); # define OSSL_CMP_PKISI_BUFLEN 1024 +X509 *OSSL_CMP_CTX_get0_validatedSrvCert(const OSSL_CMP_CTX *ctx); X509 *OSSL_CMP_CTX_get0_newCert(const OSSL_CMP_CTX *ctx); STACK_OF(X509) *OSSL_CMP_CTX_get1_newChain(const OSSL_CMP_CTX *ctx); STACK_OF(X509) *OSSL_CMP_CTX_get1_caPubs(const OSSL_CMP_CTX *ctx); @@ -498,10 +602,13 @@ OSSL_CMP_STATUSINFO_new(int status, int fail_info, const char *text); ASN1_OCTET_STRING *OSSL_CMP_HDR_get0_transactionID(const OSSL_CMP_PKIHEADER *hdr); ASN1_OCTET_STRING *OSSL_CMP_HDR_get0_recipNonce(const OSSL_CMP_PKIHEADER *hdr); +STACK_OF(OSSL_CMP_ITAV) + *OSSL_CMP_HDR_get0_geninfo_ITAVs(const OSSL_CMP_PKIHEADER *hdr); /* from cmp_msg.c */ OSSL_CMP_PKIHEADER *OSSL_CMP_MSG_get0_header(const OSSL_CMP_MSG *msg); int OSSL_CMP_MSG_get_bodytype(const OSSL_CMP_MSG *msg); +X509_PUBKEY *OSSL_CMP_MSG_get0_certreq_publickey(const OSSL_CMP_MSG *msg); int OSSL_CMP_MSG_update_transactionID(OSSL_CMP_CTX *ctx, OSSL_CMP_MSG *msg); int OSSL_CMP_MSG_update_recipNonce(OSSL_CMP_CTX *ctx, OSSL_CMP_MSG *msg); OSSL_CRMF_MSG *OSSL_CMP_CTX_setup_CRM(OSSL_CMP_CTX *ctx, int for_KUR, int rid); @@ -517,8 +624,10 @@ int OSSL_CMP_validate_cert_path(const OSSL_CMP_CTX *ctx, X509_STORE *trusted_store, X509 *cert); /* from cmp_http.c */ +# ifndef OPENSSL_NO_HTTP OSSL_CMP_MSG *OSSL_CMP_MSG_http_perform(OSSL_CMP_CTX *ctx, const OSSL_CMP_MSG *req); +# endif /* from cmp_server.c */ typedef struct ossl_cmp_srv_ctx_st OSSL_CMP_SRV_CTX; @@ -561,6 +670,13 @@ int OSSL_CMP_SRV_CTX_init(OSSL_CMP_SRV_CTX *srv_ctx, void *custom_ctx, OSSL_CMP_SRV_error_cb_t process_error, OSSL_CMP_SRV_certConf_cb_t process_certConf, OSSL_CMP_SRV_pollReq_cb_t process_pollReq); +typedef int (*OSSL_CMP_SRV_delayed_delivery_cb_t)(OSSL_CMP_SRV_CTX *srv_ctx, + const OSSL_CMP_MSG *req); +typedef int (*OSSL_CMP_SRV_clean_transaction_cb_t)(OSSL_CMP_SRV_CTX *srv_ctx, + const ASN1_OCTET_STRING *id); +int OSSL_CMP_SRV_CTX_init_trans(OSSL_CMP_SRV_CTX *srv_ctx, + OSSL_CMP_SRV_delayed_delivery_cb_t delay, + OSSL_CMP_SRV_clean_transaction_cb_t clean); OSSL_CMP_CTX *OSSL_CMP_SRV_CTX_get0_cmp_ctx(const OSSL_CMP_SRV_CTX *srv_ctx); void *OSSL_CMP_SRV_CTX_get0_custom_ctx(const OSSL_CMP_SRV_CTX *srv_ctx); int OSSL_CMP_SRV_CTX_set_send_unprotected_errors(OSSL_CMP_SRV_CTX *srv_ctx, @@ -577,6 +693,8 @@ X509 *OSSL_CMP_exec_certreq(OSSL_CMP_CTX *ctx, int req_type, # define OSSL_CMP_CR 2 # define OSSL_CMP_P10CR 4 # define OSSL_CMP_KUR 7 +# define OSSL_CMP_GENM 21 +# define OSSL_CMP_ERROR 23 # define OSSL_CMP_exec_IR_ses(ctx) \ OSSL_CMP_exec_certreq(ctx, OSSL_CMP_IR, NULL) # define OSSL_CMP_exec_CR_ses(ctx) \ @@ -590,6 +708,18 @@ int OSSL_CMP_try_certreq(OSSL_CMP_CTX *ctx, int req_type, int OSSL_CMP_exec_RR_ses(OSSL_CMP_CTX *ctx); STACK_OF(OSSL_CMP_ITAV) *OSSL_CMP_exec_GENM_ses(OSSL_CMP_CTX *ctx); +/* from cmp_genm.c */ +int OSSL_CMP_get1_caCerts(OSSL_CMP_CTX *ctx, STACK_OF(X509) **out); +int OSSL_CMP_get1_rootCaKeyUpdate(OSSL_CMP_CTX *ctx, + const X509 *oldWithOld, X509 **newWithNew, + X509 **newWithOld, X509 **oldWithNew); +int OSSL_CMP_get1_crlUpdate(OSSL_CMP_CTX *ctx, const X509 *crlcert, + const X509_CRL *last_crl, + X509_CRL **crl); +int OSSL_CMP_get1_certReqTemplate(OSSL_CMP_CTX *ctx, + OSSL_CRMF_CERTTEMPLATE **certTemplate, + OSSL_CMP_ATAVS **keySpec); + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/include/openssl/cms.h b/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/include/openssl/cms.h index 3b453e6a2187a2..63afab563557b0 100644 --- a/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/include/openssl/cms.h +++ b/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/include/openssl/cms.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/cms.h.in * - * Copyright 2008-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2008-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -31,8 +31,10 @@ extern "C" { # endif +typedef struct CMS_EnvelopedData_st CMS_EnvelopedData; typedef struct CMS_ContentInfo_st CMS_ContentInfo; typedef struct CMS_SignerInfo_st CMS_SignerInfo; +typedef struct CMS_SignedData_st CMS_SignedData; typedef struct CMS_CertificateChoices CMS_CertificateChoices; typedef struct CMS_RevocationInfoChoice_st CMS_RevocationInfoChoice; typedef struct CMS_RecipientInfo_st CMS_RecipientInfo; @@ -147,10 +149,14 @@ SKM_DEFINE_STACK_OF_INTERNAL(CMS_RevocationInfoChoice, CMS_RevocationInfoChoice, #define sk_CMS_RevocationInfoChoice_set_cmp_func(sk, cmp) ((sk_CMS_RevocationInfoChoice_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_CMS_RevocationInfoChoice_sk_type(sk), ossl_check_CMS_RevocationInfoChoice_compfunc_type(cmp))) +DECLARE_ASN1_ITEM(CMS_EnvelopedData) +DECLARE_ASN1_ALLOC_FUNCTIONS(CMS_SignedData) DECLARE_ASN1_FUNCTIONS(CMS_ContentInfo) DECLARE_ASN1_FUNCTIONS(CMS_ReceiptRequest) DECLARE_ASN1_PRINT_FUNCTION(CMS_ContentInfo) +DECLARE_ASN1_DUP_FUNCTION(CMS_EnvelopedData) + CMS_ContentInfo *CMS_ContentInfo_new_ex(OSSL_LIB_CTX *libctx, const char *propq); # define CMS_SIGNERINFO_ISSUER_SERIAL 0 @@ -190,6 +196,7 @@ CMS_ContentInfo *CMS_ContentInfo_new_ex(OSSL_LIB_CTX *libctx, const char *propq) # define CMS_ASCIICRLF 0x80000 # define CMS_CADES 0x100000 # define CMS_USE_ORIGINATOR_KEYID 0x200000 +# define CMS_NO_SIGNING_TIME 0x400000 const ASN1_OBJECT *CMS_get0_type(const CMS_ContentInfo *cms); @@ -217,13 +224,16 @@ int SMIME_write_CMS(BIO *bio, CMS_ContentInfo *cms, BIO *data, int flags); int CMS_final(CMS_ContentInfo *cms, BIO *data, BIO *dcont, unsigned int flags); +int CMS_final_digest(CMS_ContentInfo *cms, + const unsigned char *md, unsigned int mdlen, BIO *dcont, + unsigned int flags); CMS_ContentInfo *CMS_sign(X509 *signcert, EVP_PKEY *pkey, STACK_OF(X509) *certs, BIO *data, unsigned int flags); CMS_ContentInfo *CMS_sign_ex(X509 *signcert, EVP_PKEY *pkey, STACK_OF(X509) *certs, BIO *data, - unsigned int flags, OSSL_LIB_CTX *ctx, + unsigned int flags, OSSL_LIB_CTX *libctx, const char *propq); CMS_ContentInfo *CMS_sign_receipt(CMS_SignerInfo *si, @@ -233,27 +243,26 @@ CMS_ContentInfo *CMS_sign_receipt(CMS_SignerInfo *si, int CMS_data(CMS_ContentInfo *cms, BIO *out, unsigned int flags); CMS_ContentInfo *CMS_data_create(BIO *in, unsigned int flags); CMS_ContentInfo *CMS_data_create_ex(BIO *in, unsigned int flags, - OSSL_LIB_CTX *ctx, const char *propq); + OSSL_LIB_CTX *libctx, const char *propq); int CMS_digest_verify(CMS_ContentInfo *cms, BIO *dcont, BIO *out, unsigned int flags); CMS_ContentInfo *CMS_digest_create(BIO *in, const EVP_MD *md, unsigned int flags); CMS_ContentInfo *CMS_digest_create_ex(BIO *in, const EVP_MD *md, - unsigned int flags, OSSL_LIB_CTX *ctx, + unsigned int flags, OSSL_LIB_CTX *libctx, const char *propq); int CMS_EncryptedData_decrypt(CMS_ContentInfo *cms, const unsigned char *key, size_t keylen, BIO *dcont, BIO *out, unsigned int flags); - CMS_ContentInfo *CMS_EncryptedData_encrypt(BIO *in, const EVP_CIPHER *cipher, const unsigned char *key, size_t keylen, unsigned int flags); CMS_ContentInfo *CMS_EncryptedData_encrypt_ex(BIO *in, const EVP_CIPHER *cipher, const unsigned char *key, size_t keylen, unsigned int flags, - OSSL_LIB_CTX *ctx, + OSSL_LIB_CTX *libctx, const char *propq); int CMS_EncryptedData_set1_key(CMS_ContentInfo *cms, const EVP_CIPHER *ciph, @@ -272,7 +281,7 @@ CMS_ContentInfo *CMS_encrypt(STACK_OF(X509) *certs, BIO *in, const EVP_CIPHER *cipher, unsigned int flags); CMS_ContentInfo *CMS_encrypt_ex(STACK_OF(X509) *certs, BIO *in, const EVP_CIPHER *cipher, unsigned int flags, - OSSL_LIB_CTX *ctx, const char *propq); + OSSL_LIB_CTX *libctx, const char *propq); int CMS_decrypt(CMS_ContentInfo *cms, EVP_PKEY *pkey, X509 *cert, BIO *dcont, BIO *out, unsigned int flags); @@ -291,12 +300,16 @@ int CMS_RecipientInfo_type(CMS_RecipientInfo *ri); EVP_PKEY_CTX *CMS_RecipientInfo_get0_pkey_ctx(CMS_RecipientInfo *ri); CMS_ContentInfo *CMS_AuthEnvelopedData_create(const EVP_CIPHER *cipher); CMS_ContentInfo * -CMS_AuthEnvelopedData_create_ex(const EVP_CIPHER *cipher, OSSL_LIB_CTX *ctx, +CMS_AuthEnvelopedData_create_ex(const EVP_CIPHER *cipher, OSSL_LIB_CTX *libctx, const char *propq); CMS_ContentInfo *CMS_EnvelopedData_create(const EVP_CIPHER *cipher); CMS_ContentInfo *CMS_EnvelopedData_create_ex(const EVP_CIPHER *cipher, - OSSL_LIB_CTX *ctx, + OSSL_LIB_CTX *libctx, const char *propq); +BIO *CMS_EnvelopedData_decrypt(CMS_EnvelopedData *env, BIO *detached_data, + EVP_PKEY *pkey, X509 *cert, + ASN1_OCTET_STRING *secret, unsigned int flags, + OSSL_LIB_CTX *libctx, const char *propq); CMS_RecipientInfo *CMS_add1_recipient_cert(CMS_ContentInfo *cms, X509 *recip, unsigned int flags); @@ -385,6 +398,11 @@ ASN1_OCTET_STRING *CMS_SignerInfo_get0_signature(CMS_SignerInfo *si); int CMS_SignerInfo_sign(CMS_SignerInfo *si); int CMS_SignerInfo_verify(CMS_SignerInfo *si); int CMS_SignerInfo_verify_content(CMS_SignerInfo *si, BIO *chain); +BIO *CMS_SignedData_verify(CMS_SignedData *sd, BIO *detached_data, + STACK_OF(X509) *scerts, X509_STORE *store, + STACK_OF(X509) *extra, STACK_OF(X509_CRL) *crls, + unsigned int flags, + OSSL_LIB_CTX *libctx, const char *propq); int CMS_add_smimecap(CMS_SignerInfo *si, STACK_OF(X509_ALGOR) *algs); int CMS_add_simple_smimecap(STACK_OF(X509_ALGOR) **algs, @@ -441,7 +459,7 @@ CMS_ReceiptRequest *CMS_ReceiptRequest_create0_ex( unsigned char *id, int idlen, int allorfirst, STACK_OF(GENERAL_NAMES) *receiptList, STACK_OF(GENERAL_NAMES) *receiptsTo, - OSSL_LIB_CTX *ctx); + OSSL_LIB_CTX *libctx); int CMS_add1_ReceiptRequest(CMS_SignerInfo *si, CMS_ReceiptRequest *rr); void CMS_ReceiptRequest_get0_values(CMS_ReceiptRequest *rr, diff --git a/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/include/openssl/comp.h b/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/include/openssl/comp.h new file mode 100644 index 00000000000000..90e39511fe8d28 --- /dev/null +++ b/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/include/openssl/comp.h @@ -0,0 +1,98 @@ +/* + * Copyright 2015-2024 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + + +#ifndef OPENSSL_COMP_H +# define OPENSSL_COMP_H +# pragma once + +# include +# ifndef OPENSSL_NO_DEPRECATED_3_0 +# define HEADER_COMP_H +# endif + +# include + +# include +# include +# ifdef __cplusplus +extern "C" { +# endif + + + +# ifndef OPENSSL_NO_COMP + +COMP_CTX *COMP_CTX_new(COMP_METHOD *meth); +const COMP_METHOD *COMP_CTX_get_method(const COMP_CTX *ctx); +int COMP_CTX_get_type(const COMP_CTX* comp); +int COMP_get_type(const COMP_METHOD *meth); +const char *COMP_get_name(const COMP_METHOD *meth); +void COMP_CTX_free(COMP_CTX *ctx); + +int COMP_compress_block(COMP_CTX *ctx, unsigned char *out, int olen, + unsigned char *in, int ilen); +int COMP_expand_block(COMP_CTX *ctx, unsigned char *out, int olen, + unsigned char *in, int ilen); + +COMP_METHOD *COMP_zlib(void); +COMP_METHOD *COMP_zlib_oneshot(void); +COMP_METHOD *COMP_brotli(void); +COMP_METHOD *COMP_brotli_oneshot(void); +COMP_METHOD *COMP_zstd(void); +COMP_METHOD *COMP_zstd_oneshot(void); + +# ifndef OPENSSL_NO_DEPRECATED_1_1_0 +# define COMP_zlib_cleanup() while(0) continue +# endif + +# ifdef OPENSSL_BIO_H +const BIO_METHOD *BIO_f_zlib(void); +const BIO_METHOD *BIO_f_brotli(void); +const BIO_METHOD *BIO_f_zstd(void); +# endif + +# endif + +typedef struct ssl_comp_st SSL_COMP; + +SKM_DEFINE_STACK_OF_INTERNAL(SSL_COMP, SSL_COMP, SSL_COMP) +#define sk_SSL_COMP_num(sk) OPENSSL_sk_num(ossl_check_const_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_value(sk, idx) ((SSL_COMP *)OPENSSL_sk_value(ossl_check_const_SSL_COMP_sk_type(sk), (idx))) +#define sk_SSL_COMP_new(cmp) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new(ossl_check_SSL_COMP_compfunc_type(cmp))) +#define sk_SSL_COMP_new_null() ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new_null()) +#define sk_SSL_COMP_new_reserve(cmp, n) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new_reserve(ossl_check_SSL_COMP_compfunc_type(cmp), (n))) +#define sk_SSL_COMP_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_SSL_COMP_sk_type(sk), (n)) +#define sk_SSL_COMP_free(sk) OPENSSL_sk_free(ossl_check_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_zero(sk) OPENSSL_sk_zero(ossl_check_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_delete(sk, i) ((SSL_COMP *)OPENSSL_sk_delete(ossl_check_SSL_COMP_sk_type(sk), (i))) +#define sk_SSL_COMP_delete_ptr(sk, ptr) ((SSL_COMP *)OPENSSL_sk_delete_ptr(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr))) +#define sk_SSL_COMP_push(sk, ptr) OPENSSL_sk_push(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) +#define sk_SSL_COMP_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) +#define sk_SSL_COMP_pop(sk) ((SSL_COMP *)OPENSSL_sk_pop(ossl_check_SSL_COMP_sk_type(sk))) +#define sk_SSL_COMP_shift(sk) ((SSL_COMP *)OPENSSL_sk_shift(ossl_check_SSL_COMP_sk_type(sk))) +#define sk_SSL_COMP_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_SSL_COMP_sk_type(sk),ossl_check_SSL_COMP_freefunc_type(freefunc)) +#define sk_SSL_COMP_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr), (idx)) +#define sk_SSL_COMP_set(sk, idx, ptr) ((SSL_COMP *)OPENSSL_sk_set(ossl_check_SSL_COMP_sk_type(sk), (idx), ossl_check_SSL_COMP_type(ptr))) +#define sk_SSL_COMP_find(sk, ptr) OPENSSL_sk_find(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) +#define sk_SSL_COMP_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) +#define sk_SSL_COMP_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr), pnum) +#define sk_SSL_COMP_sort(sk) OPENSSL_sk_sort(ossl_check_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_dup(sk) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_dup(ossl_check_const_SSL_COMP_sk_type(sk))) +#define sk_SSL_COMP_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_deep_copy(ossl_check_const_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_copyfunc_type(copyfunc), ossl_check_SSL_COMP_freefunc_type(freefunc))) +#define sk_SSL_COMP_set_cmp_func(sk, cmp) ((sk_SSL_COMP_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_compfunc_type(cmp))) + + + +# ifdef __cplusplus +} +# endif +#endif diff --git a/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/include/openssl/conf.h b/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/include/openssl/conf.h index 44989929f6c84a..38576290bf641b 100644 --- a/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/include/openssl/conf.h +++ b/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/include/openssl/conf.h @@ -27,6 +27,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -65,7 +68,7 @@ SKM_DEFINE_STACK_OF_INTERNAL(CONF_VALUE, CONF_VALUE, CONF_VALUE) #define sk_CONF_VALUE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(CONF_VALUE) *)OPENSSL_sk_deep_copy(ossl_check_const_CONF_VALUE_sk_type(sk), ossl_check_CONF_VALUE_copyfunc_type(copyfunc), ossl_check_CONF_VALUE_freefunc_type(freefunc))) #define sk_CONF_VALUE_set_cmp_func(sk, cmp) ((sk_CONF_VALUE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_CONF_VALUE_sk_type(sk), ossl_check_CONF_VALUE_compfunc_type(cmp))) DEFINE_LHASH_OF_INTERNAL(CONF_VALUE); -#define lh_CONF_VALUE_new(hfn, cmp) ((LHASH_OF(CONF_VALUE) *)OPENSSL_LH_new(ossl_check_CONF_VALUE_lh_hashfunc_type(hfn), ossl_check_CONF_VALUE_lh_compfunc_type(cmp))) +#define lh_CONF_VALUE_new(hfn, cmp) ((LHASH_OF(CONF_VALUE) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new(ossl_check_CONF_VALUE_lh_hashfunc_type(hfn), ossl_check_CONF_VALUE_lh_compfunc_type(cmp)), lh_CONF_VALUE_hash_thunk, lh_CONF_VALUE_comp_thunk, lh_CONF_VALUE_doall_thunk, lh_CONF_VALUE_doall_arg_thunk)) #define lh_CONF_VALUE_free(lh) OPENSSL_LH_free(ossl_check_CONF_VALUE_lh_type(lh)) #define lh_CONF_VALUE_flush(lh) OPENSSL_LH_flush(ossl_check_CONF_VALUE_lh_type(lh)) #define lh_CONF_VALUE_insert(lh, ptr) ((CONF_VALUE *)OPENSSL_LH_insert(ossl_check_CONF_VALUE_lh_type(lh), ossl_check_CONF_VALUE_lh_plain_type(ptr))) diff --git a/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/include/openssl/configuration.h b/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/include/openssl/configuration.h index b659dd784afb0f..0f148d0a17243a 100644 --- a/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/include/openssl/configuration.h +++ b/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/include/openssl/configuration.h @@ -30,7 +30,7 @@ extern "C" { # ifndef OPENSSL_SYS_MACOSX # define OPENSSL_SYS_MACOSX 1 # endif -# define OPENSSL_CONFIGURED_API 30000 +# define OPENSSL_CONFIGURED_API 30500 # ifndef OPENSSL_RAND_SEED_OS # define OPENSSL_RAND_SEED_OS # endif @@ -43,6 +43,12 @@ extern "C" { # ifndef OPENSSL_NO_ASAN # define OPENSSL_NO_ASAN # endif +# ifndef OPENSSL_NO_BROTLI +# define OPENSSL_NO_BROTLI +# endif +# ifndef OPENSSL_NO_BROTLI_DYNAMIC +# define OPENSSL_NO_BROTLI_DYNAMIC +# endif # ifndef OPENSSL_NO_COMP # define OPENSSL_NO_COMP # endif @@ -52,6 +58,9 @@ extern "C" { # ifndef OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE # define OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE # endif +# ifndef OPENSSL_NO_DEMOS +# define OPENSSL_NO_DEMOS +# endif # ifndef OPENSSL_NO_DEVCRYPTOENG # define OPENSSL_NO_DEVCRYPTOENG # endif @@ -64,12 +73,24 @@ extern "C" { # ifndef OPENSSL_NO_EXTERNAL_TESTS # define OPENSSL_NO_EXTERNAL_TESTS # endif +# ifndef OPENSSL_NO_FIPS_JITTER +# define OPENSSL_NO_FIPS_JITTER +# endif # ifndef OPENSSL_NO_FUZZ_AFL # define OPENSSL_NO_FUZZ_AFL # endif # ifndef OPENSSL_NO_FUZZ_LIBFUZZER # define OPENSSL_NO_FUZZ_LIBFUZZER # endif +# ifndef OPENSSL_NO_H3DEMO +# define OPENSSL_NO_H3DEMO +# endif +# ifndef OPENSSL_NO_HQINTEROP +# define OPENSSL_NO_HQINTEROP +# endif +# ifndef OPENSSL_NO_JITTER +# define OPENSSL_NO_JITTER +# endif # ifndef OPENSSL_NO_KTLS # define OPENSSL_NO_KTLS # endif @@ -82,6 +103,9 @@ extern "C" { # ifndef OPENSSL_NO_MSAN # define OPENSSL_NO_MSAN # endif +# ifndef OPENSSL_NO_PIE +# define OPENSSL_NO_PIE +# endif # ifndef OPENSSL_NO_RC5 # define OPENSSL_NO_RC5 # endif @@ -94,6 +118,12 @@ extern "C" { # ifndef OPENSSL_NO_SSL3_METHOD # define OPENSSL_NO_SSL3_METHOD # endif +# ifndef OPENSSL_NO_SSLKEYLOG +# define OPENSSL_NO_SSLKEYLOG +# endif +# ifndef OPENSSL_NO_TFO +# define OPENSSL_NO_TFO +# endif # ifndef OPENSSL_NO_TRACE # define OPENSSL_NO_TRACE # endif @@ -109,6 +139,21 @@ extern "C" { # ifndef OPENSSL_NO_WEAK_SSL_CIPHERS # define OPENSSL_NO_WEAK_SSL_CIPHERS # endif +# ifndef OPENSSL_NO_WINSTORE +# define OPENSSL_NO_WINSTORE +# endif +# ifndef OPENSSL_NO_ZLIB +# define OPENSSL_NO_ZLIB +# endif +# ifndef OPENSSL_NO_ZLIB_DYNAMIC +# define OPENSSL_NO_ZLIB_DYNAMIC +# endif +# ifndef OPENSSL_NO_ZSTD +# define OPENSSL_NO_ZSTD +# endif +# ifndef OPENSSL_NO_ZSTD_DYNAMIC +# define OPENSSL_NO_ZSTD_DYNAMIC +# endif # ifndef OPENSSL_NO_DYNAMIC_ENGINE # define OPENSSL_NO_DYNAMIC_ENGINE # endif @@ -130,6 +175,12 @@ extern "C" { # define RC4_INT unsigned int +# if defined(OPENSSL_NO_COMP) || (defined(OPENSSL_NO_BROTLI) && defined(OPENSSL_NO_ZSTD) && defined(OPENSSL_NO_ZLIB)) +# define OPENSSL_NO_COMP_ALG +# else +# undef OPENSSL_NO_COMP_ALG +# endif + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/include/openssl/core_names.h b/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/include/openssl/core_names.h new file mode 100644 index 00000000000000..e93e79a52bc910 --- /dev/null +++ b/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/include/openssl/core_names.h @@ -0,0 +1,575 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from include/openssl/core_names.h.in + * + * Copyright 2019-2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + +#ifndef OPENSSL_CORE_NAMES_H +# define OPENSSL_CORE_NAMES_H +# pragma once + +# ifdef __cplusplus +extern "C" { +# endif + +/* OSSL_CIPHER_PARAM_CTS_MODE Values */ +# define OSSL_CIPHER_CTS_MODE_CS1 "CS1" +# define OSSL_CIPHER_CTS_MODE_CS2 "CS2" +# define OSSL_CIPHER_CTS_MODE_CS3 "CS3" + +/* Known CIPHER names (not a complete list) */ +# define OSSL_CIPHER_NAME_AES_128_GCM_SIV "AES-128-GCM-SIV" +# define OSSL_CIPHER_NAME_AES_192_GCM_SIV "AES-192-GCM-SIV" +# define OSSL_CIPHER_NAME_AES_256_GCM_SIV "AES-256-GCM-SIV" + +/* Known DIGEST names (not a complete list) */ +# define OSSL_DIGEST_NAME_MD5 "MD5" +# define OSSL_DIGEST_NAME_MD5_SHA1 "MD5-SHA1" +# define OSSL_DIGEST_NAME_SHA1 "SHA1" +# define OSSL_DIGEST_NAME_SHA2_224 "SHA2-224" +# define OSSL_DIGEST_NAME_SHA2_256 "SHA2-256" +# define OSSL_DIGEST_NAME_SHA2_256_192 "SHA2-256/192" +# define OSSL_DIGEST_NAME_SHA2_384 "SHA2-384" +# define OSSL_DIGEST_NAME_SHA2_512 "SHA2-512" +# define OSSL_DIGEST_NAME_SHA2_512_224 "SHA2-512/224" +# define OSSL_DIGEST_NAME_SHA2_512_256 "SHA2-512/256" +# define OSSL_DIGEST_NAME_MD2 "MD2" +# define OSSL_DIGEST_NAME_MD4 "MD4" +# define OSSL_DIGEST_NAME_MDC2 "MDC2" +# define OSSL_DIGEST_NAME_RIPEMD160 "RIPEMD160" +# define OSSL_DIGEST_NAME_SHA3_224 "SHA3-224" +# define OSSL_DIGEST_NAME_SHA3_256 "SHA3-256" +# define OSSL_DIGEST_NAME_SHA3_384 "SHA3-384" +# define OSSL_DIGEST_NAME_SHA3_512 "SHA3-512" +# define OSSL_DIGEST_NAME_KECCAK_KMAC128 "KECCAK-KMAC-128" +# define OSSL_DIGEST_NAME_KECCAK_KMAC256 "KECCAK-KMAC-256" +# define OSSL_DIGEST_NAME_SM3 "SM3" + +/* Known MAC names */ +# define OSSL_MAC_NAME_BLAKE2BMAC "BLAKE2BMAC" +# define OSSL_MAC_NAME_BLAKE2SMAC "BLAKE2SMAC" +# define OSSL_MAC_NAME_CMAC "CMAC" +# define OSSL_MAC_NAME_GMAC "GMAC" +# define OSSL_MAC_NAME_HMAC "HMAC" +# define OSSL_MAC_NAME_KMAC128 "KMAC128" +# define OSSL_MAC_NAME_KMAC256 "KMAC256" +# define OSSL_MAC_NAME_POLY1305 "POLY1305" +# define OSSL_MAC_NAME_SIPHASH "SIPHASH" + +/* Known KDF names */ +# define OSSL_KDF_NAME_HKDF "HKDF" +# define OSSL_KDF_NAME_TLS1_3_KDF "TLS13-KDF" +# define OSSL_KDF_NAME_PBKDF1 "PBKDF1" +# define OSSL_KDF_NAME_PBKDF2 "PBKDF2" +# define OSSL_KDF_NAME_SCRYPT "SCRYPT" +# define OSSL_KDF_NAME_SSHKDF "SSHKDF" +# define OSSL_KDF_NAME_SSKDF "SSKDF" +# define OSSL_KDF_NAME_TLS1_PRF "TLS1-PRF" +# define OSSL_KDF_NAME_X942KDF_ASN1 "X942KDF-ASN1" +# define OSSL_KDF_NAME_X942KDF_CONCAT "X942KDF-CONCAT" +# define OSSL_KDF_NAME_X963KDF "X963KDF" +# define OSSL_KDF_NAME_KBKDF "KBKDF" +# define OSSL_KDF_NAME_KRB5KDF "KRB5KDF" +# define OSSL_KDF_NAME_HMACDRBGKDF "HMAC-DRBG-KDF" + +/* RSA padding modes */ +# define OSSL_PKEY_RSA_PAD_MODE_NONE "none" +# define OSSL_PKEY_RSA_PAD_MODE_PKCSV15 "pkcs1" +# define OSSL_PKEY_RSA_PAD_MODE_OAEP "oaep" +# define OSSL_PKEY_RSA_PAD_MODE_X931 "x931" +# define OSSL_PKEY_RSA_PAD_MODE_PSS "pss" + +/* RSA pss padding salt length */ +# define OSSL_PKEY_RSA_PSS_SALT_LEN_DIGEST "digest" +# define OSSL_PKEY_RSA_PSS_SALT_LEN_MAX "max" +# define OSSL_PKEY_RSA_PSS_SALT_LEN_AUTO "auto" +# define OSSL_PKEY_RSA_PSS_SALT_LEN_AUTO_DIGEST_MAX "auto-digestmax" + +/* OSSL_PKEY_PARAM_EC_ENCODING values */ +# define OSSL_PKEY_EC_ENCODING_EXPLICIT "explicit" +# define OSSL_PKEY_EC_ENCODING_GROUP "named_curve" + +# define OSSL_PKEY_EC_POINT_CONVERSION_FORMAT_UNCOMPRESSED "uncompressed" +# define OSSL_PKEY_EC_POINT_CONVERSION_FORMAT_COMPRESSED "compressed" +# define OSSL_PKEY_EC_POINT_CONVERSION_FORMAT_HYBRID "hybrid" + +# define OSSL_PKEY_EC_GROUP_CHECK_DEFAULT "default" +# define OSSL_PKEY_EC_GROUP_CHECK_NAMED "named" +# define OSSL_PKEY_EC_GROUP_CHECK_NAMED_NIST "named-nist" + +/* PROV_SKEY well known key types */ +# define OSSL_SKEY_TYPE_GENERIC "GENERIC-SECRET" +# define OSSL_SKEY_TYPE_AES "AES" + +/* OSSL_KEM_PARAM_OPERATION values */ +#define OSSL_KEM_PARAM_OPERATION_RSASVE "RSASVE" +#define OSSL_KEM_PARAM_OPERATION_DHKEM "DHKEM" + +/* Provider configuration variables */ +#define OSSL_PKEY_RETAIN_SEED "pkey_retain_seed" + +/* Parameter name definitions - generated by util/perl/OpenSSL/paramnames.pm */ +# define OSSL_ALG_PARAM_ALGORITHM_ID "algorithm-id" +# define OSSL_ALG_PARAM_ALGORITHM_ID_PARAMS "algorithm-id-params" +# define OSSL_ALG_PARAM_CIPHER "cipher" +# define OSSL_ALG_PARAM_DIGEST "digest" +# define OSSL_ALG_PARAM_ENGINE "engine" +# define OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR "fips-indicator" +# define OSSL_ALG_PARAM_MAC "mac" +# define OSSL_ALG_PARAM_PROPERTIES "properties" +# define OSSL_ASYM_CIPHER_PARAM_DIGEST OSSL_PKEY_PARAM_DIGEST +# define OSSL_ASYM_CIPHER_PARAM_ENGINE OSSL_PKEY_PARAM_ENGINE +# define OSSL_ASYM_CIPHER_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_ASYM_CIPHER_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_ASYM_CIPHER_PARAM_FIPS_RSA_PKCS15_PAD_DISABLED OSSL_PROV_PARAM_RSA_PKCS15_PAD_DISABLED +# define OSSL_ASYM_CIPHER_PARAM_IMPLICIT_REJECTION "implicit-rejection" +# define OSSL_ASYM_CIPHER_PARAM_MGF1_DIGEST OSSL_PKEY_PARAM_MGF1_DIGEST +# define OSSL_ASYM_CIPHER_PARAM_MGF1_DIGEST_PROPS OSSL_PKEY_PARAM_MGF1_PROPERTIES +# define OSSL_ASYM_CIPHER_PARAM_OAEP_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_ASYM_CIPHER_PARAM_OAEP_DIGEST_PROPS "digest-props" +# define OSSL_ASYM_CIPHER_PARAM_OAEP_LABEL "oaep-label" +# define OSSL_ASYM_CIPHER_PARAM_PAD_MODE OSSL_PKEY_PARAM_PAD_MODE +# define OSSL_ASYM_CIPHER_PARAM_PROPERTIES OSSL_PKEY_PARAM_PROPERTIES +# define OSSL_ASYM_CIPHER_PARAM_TLS_CLIENT_VERSION "tls-client-version" +# define OSSL_ASYM_CIPHER_PARAM_TLS_NEGOTIATED_VERSION "tls-negotiated-version" +# define OSSL_CAPABILITY_TLS_GROUP_ALG "tls-group-alg" +# define OSSL_CAPABILITY_TLS_GROUP_ID "tls-group-id" +# define OSSL_CAPABILITY_TLS_GROUP_IS_KEM "tls-group-is-kem" +# define OSSL_CAPABILITY_TLS_GROUP_MAX_DTLS "tls-max-dtls" +# define OSSL_CAPABILITY_TLS_GROUP_MAX_TLS "tls-max-tls" +# define OSSL_CAPABILITY_TLS_GROUP_MIN_DTLS "tls-min-dtls" +# define OSSL_CAPABILITY_TLS_GROUP_MIN_TLS "tls-min-tls" +# define OSSL_CAPABILITY_TLS_GROUP_NAME "tls-group-name" +# define OSSL_CAPABILITY_TLS_GROUP_NAME_INTERNAL "tls-group-name-internal" +# define OSSL_CAPABILITY_TLS_GROUP_SECURITY_BITS "tls-group-sec-bits" +# define OSSL_CAPABILITY_TLS_SIGALG_CODE_POINT "tls-sigalg-code-point" +# define OSSL_CAPABILITY_TLS_SIGALG_HASH_NAME "tls-sigalg-hash-name" +# define OSSL_CAPABILITY_TLS_SIGALG_HASH_OID "tls-sigalg-hash-oid" +# define OSSL_CAPABILITY_TLS_SIGALG_IANA_NAME "tls-sigalg-iana-name" +# define OSSL_CAPABILITY_TLS_SIGALG_KEYTYPE "tls-sigalg-keytype" +# define OSSL_CAPABILITY_TLS_SIGALG_KEYTYPE_OID "tls-sigalg-keytype-oid" +# define OSSL_CAPABILITY_TLS_SIGALG_MAX_DTLS "tls-max-dtls" +# define OSSL_CAPABILITY_TLS_SIGALG_MAX_TLS "tls-max-tls" +# define OSSL_CAPABILITY_TLS_SIGALG_MIN_DTLS "tls-min-dtls" +# define OSSL_CAPABILITY_TLS_SIGALG_MIN_TLS "tls-min-tls" +# define OSSL_CAPABILITY_TLS_SIGALG_NAME "tls-sigalg-name" +# define OSSL_CAPABILITY_TLS_SIGALG_OID "tls-sigalg-oid" +# define OSSL_CAPABILITY_TLS_SIGALG_SECURITY_BITS "tls-sigalg-sec-bits" +# define OSSL_CAPABILITY_TLS_SIGALG_SIG_NAME "tls-sigalg-sig-name" +# define OSSL_CAPABILITY_TLS_SIGALG_SIG_OID "tls-sigalg-sig-oid" +# define OSSL_CIPHER_PARAM_AEAD "aead" +# define OSSL_CIPHER_PARAM_AEAD_IVLEN OSSL_CIPHER_PARAM_IVLEN +# define OSSL_CIPHER_PARAM_AEAD_IV_GENERATED "iv-generated" +# define OSSL_CIPHER_PARAM_AEAD_MAC_KEY "mackey" +# define OSSL_CIPHER_PARAM_AEAD_TAG "tag" +# define OSSL_CIPHER_PARAM_AEAD_TAGLEN "taglen" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_AAD "tlsaad" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_AAD_PAD "tlsaadpad" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_GET_IV_GEN "tlsivgen" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_IV_FIXED "tlsivfixed" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_SET_IV_INV "tlsivinv" +# define OSSL_CIPHER_PARAM_ALGORITHM_ID OSSL_ALG_PARAM_ALGORITHM_ID +# define OSSL_CIPHER_PARAM_ALGORITHM_ID_PARAMS OSSL_ALG_PARAM_ALGORITHM_ID_PARAMS +# define OSSL_CIPHER_PARAM_ALGORITHM_ID_PARAMS_OLD "alg_id_param" +# define OSSL_CIPHER_PARAM_BLOCK_SIZE "blocksize" +# define OSSL_CIPHER_PARAM_CTS "cts" +# define OSSL_CIPHER_PARAM_CTS_MODE "cts_mode" +# define OSSL_CIPHER_PARAM_CUSTOM_IV "custom-iv" +# define OSSL_CIPHER_PARAM_DECRYPT_ONLY "decrypt-only" +# define OSSL_CIPHER_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_CIPHER_PARAM_FIPS_ENCRYPT_CHECK "encrypt-check" +# define OSSL_CIPHER_PARAM_HAS_RAND_KEY "has-randkey" +# define OSSL_CIPHER_PARAM_IV "iv" +# define OSSL_CIPHER_PARAM_IVLEN "ivlen" +# define OSSL_CIPHER_PARAM_KEYLEN "keylen" +# define OSSL_CIPHER_PARAM_MODE "mode" +# define OSSL_CIPHER_PARAM_NUM "num" +# define OSSL_CIPHER_PARAM_PADDING "padding" +# define OSSL_CIPHER_PARAM_PIPELINE_AEAD_TAG "pipeline-tag" +# define OSSL_CIPHER_PARAM_RANDOM_KEY "randkey" +# define OSSL_CIPHER_PARAM_RC2_KEYBITS "keybits" +# define OSSL_CIPHER_PARAM_ROUNDS "rounds" +# define OSSL_CIPHER_PARAM_SPEED "speed" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK "tls-multi" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD "tls1multi_aad" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD_PACKLEN "tls1multi_aadpacklen" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC "tls1multi_enc" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_IN "tls1multi_encin" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_LEN "tls1multi_enclen" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_INTERLEAVE "tls1multi_interleave" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_BUFSIZE "tls1multi_maxbufsz" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_SEND_FRAGMENT "tls1multi_maxsndfrag" +# define OSSL_CIPHER_PARAM_TLS_MAC "tls-mac" +# define OSSL_CIPHER_PARAM_TLS_MAC_SIZE "tls-mac-size" +# define OSSL_CIPHER_PARAM_TLS_VERSION "tls-version" +# define OSSL_CIPHER_PARAM_UPDATED_IV "updated-iv" +# define OSSL_CIPHER_PARAM_USE_BITS "use-bits" +# define OSSL_CIPHER_PARAM_XTS_STANDARD "xts_standard" +# define OSSL_DECODER_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_DIGEST_PARAM_ALGID_ABSENT "algid-absent" +# define OSSL_DIGEST_PARAM_BLOCK_SIZE "blocksize" +# define OSSL_DIGEST_PARAM_MICALG "micalg" +# define OSSL_DIGEST_PARAM_PAD_TYPE "pad-type" +# define OSSL_DIGEST_PARAM_SIZE "size" +# define OSSL_DIGEST_PARAM_SSL3_MS "ssl3-ms" +# define OSSL_DIGEST_PARAM_XOF "xof" +# define OSSL_DIGEST_PARAM_XOFLEN "xoflen" +# define OSSL_DRBG_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_DRBG_PARAM_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_DRBG_PARAM_ENTROPY_REQUIRED "entropy_required" +# define OSSL_DRBG_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_DRBG_PARAM_FIPS_DIGEST_CHECK OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK +# define OSSL_DRBG_PARAM_MAC OSSL_ALG_PARAM_MAC +# define OSSL_DRBG_PARAM_MAX_ADINLEN "max_adinlen" +# define OSSL_DRBG_PARAM_MAX_ENTROPYLEN "max_entropylen" +# define OSSL_DRBG_PARAM_MAX_LENGTH "maxium_length" +# define OSSL_DRBG_PARAM_MAX_NONCELEN "max_noncelen" +# define OSSL_DRBG_PARAM_MAX_PERSLEN "max_perslen" +# define OSSL_DRBG_PARAM_MIN_ENTROPYLEN "min_entropylen" +# define OSSL_DRBG_PARAM_MIN_LENGTH "minium_length" +# define OSSL_DRBG_PARAM_MIN_NONCELEN "min_noncelen" +# define OSSL_DRBG_PARAM_PREDICTION_RESISTANCE "prediction_resistance" +# define OSSL_DRBG_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_DRBG_PARAM_RANDOM_DATA "random_data" +# define OSSL_DRBG_PARAM_RESEED_COUNTER "reseed_counter" +# define OSSL_DRBG_PARAM_RESEED_REQUESTS "reseed_requests" +# define OSSL_DRBG_PARAM_RESEED_TIME "reseed_time" +# define OSSL_DRBG_PARAM_RESEED_TIME_INTERVAL "reseed_time_interval" +# define OSSL_DRBG_PARAM_SIZE "size" +# define OSSL_DRBG_PARAM_USE_DF "use_derivation_function" +# define OSSL_ENCODER_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_ENCODER_PARAM_ENCRYPT_LEVEL "encrypt-level" +# define OSSL_ENCODER_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_ENCODER_PARAM_SAVE_PARAMETERS "save-parameters" +# define OSSL_EXCHANGE_PARAM_EC_ECDH_COFACTOR_MODE "ecdh-cofactor-mode" +# define OSSL_EXCHANGE_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_EXCHANGE_PARAM_FIPS_DIGEST_CHECK OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK +# define OSSL_EXCHANGE_PARAM_FIPS_ECDH_COFACTOR_CHECK OSSL_PROV_PARAM_ECDH_COFACTOR_CHECK +# define OSSL_EXCHANGE_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_EXCHANGE_PARAM_KDF_DIGEST "kdf-digest" +# define OSSL_EXCHANGE_PARAM_KDF_DIGEST_PROPS "kdf-digest-props" +# define OSSL_EXCHANGE_PARAM_KDF_OUTLEN "kdf-outlen" +# define OSSL_EXCHANGE_PARAM_KDF_TYPE "kdf-type" +# define OSSL_EXCHANGE_PARAM_KDF_UKM "kdf-ukm" +# define OSSL_EXCHANGE_PARAM_PAD "pad" +# define OSSL_GEN_PARAM_ITERATION "iteration" +# define OSSL_GEN_PARAM_POTENTIAL "potential" +# define OSSL_KDF_PARAM_ARGON2_AD "ad" +# define OSSL_KDF_PARAM_ARGON2_LANES "lanes" +# define OSSL_KDF_PARAM_ARGON2_MEMCOST "memcost" +# define OSSL_KDF_PARAM_ARGON2_VERSION "version" +# define OSSL_KDF_PARAM_CEK_ALG "cekalg" +# define OSSL_KDF_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_KDF_PARAM_CONSTANT "constant" +# define OSSL_KDF_PARAM_DATA "data" +# define OSSL_KDF_PARAM_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_KDF_PARAM_EARLY_CLEAN "early_clean" +# define OSSL_KDF_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_KDF_PARAM_FIPS_DIGEST_CHECK OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK +# define OSSL_KDF_PARAM_FIPS_EMS_CHECK "ems_check" +# define OSSL_KDF_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_KDF_PARAM_HMACDRBG_ENTROPY "entropy" +# define OSSL_KDF_PARAM_HMACDRBG_NONCE "nonce" +# define OSSL_KDF_PARAM_INFO "info" +# define OSSL_KDF_PARAM_ITER "iter" +# define OSSL_KDF_PARAM_KBKDF_R "r" +# define OSSL_KDF_PARAM_KBKDF_USE_L "use-l" +# define OSSL_KDF_PARAM_KBKDF_USE_SEPARATOR "use-separator" +# define OSSL_KDF_PARAM_KEY "key" +# define OSSL_KDF_PARAM_LABEL "label" +# define OSSL_KDF_PARAM_MAC OSSL_ALG_PARAM_MAC +# define OSSL_KDF_PARAM_MAC_SIZE "maclen" +# define OSSL_KDF_PARAM_MODE "mode" +# define OSSL_KDF_PARAM_PASSWORD "pass" +# define OSSL_KDF_PARAM_PKCS12_ID "id" +# define OSSL_KDF_PARAM_PKCS5 "pkcs5" +# define OSSL_KDF_PARAM_PREFIX "prefix" +# define OSSL_KDF_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_KDF_PARAM_SALT "salt" +# define OSSL_KDF_PARAM_SCRYPT_MAXMEM "maxmem_bytes" +# define OSSL_KDF_PARAM_SCRYPT_N "n" +# define OSSL_KDF_PARAM_SCRYPT_P "p" +# define OSSL_KDF_PARAM_SCRYPT_R "r" +# define OSSL_KDF_PARAM_SECRET "secret" +# define OSSL_KDF_PARAM_SEED "seed" +# define OSSL_KDF_PARAM_SIZE "size" +# define OSSL_KDF_PARAM_SSHKDF_SESSION_ID "session_id" +# define OSSL_KDF_PARAM_SSHKDF_TYPE "type" +# define OSSL_KDF_PARAM_SSHKDF_XCGHASH "xcghash" +# define OSSL_KDF_PARAM_THREADS "threads" +# define OSSL_KDF_PARAM_UKM "ukm" +# define OSSL_KDF_PARAM_X942_ACVPINFO "acvp-info" +# define OSSL_KDF_PARAM_X942_PARTYUINFO "partyu-info" +# define OSSL_KDF_PARAM_X942_PARTYVINFO "partyv-info" +# define OSSL_KDF_PARAM_X942_SUPP_PRIVINFO "supp-privinfo" +# define OSSL_KDF_PARAM_X942_SUPP_PUBINFO "supp-pubinfo" +# define OSSL_KDF_PARAM_X942_USE_KEYBITS "use-keybits" +# define OSSL_KEM_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_KEM_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_KEM_PARAM_IKME "ikme" +# define OSSL_KEM_PARAM_OPERATION "operation" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_BLOCK_PADDING "block_padding" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_HS_PADDING "hs_padding" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_MAX_EARLY_DATA "max_early_data" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_MAX_FRAG_LEN "max_frag_len" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_MODE "mode" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_OPTIONS "options" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_READ_AHEAD "read_ahead" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_STREAM_MAC "stream_mac" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_TLSTREE "tlstree" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_USE_ETM "use_etm" +# define OSSL_LIBSSL_RECORD_LAYER_READ_BUFFER_LEN "read_buffer_len" +# define OSSL_MAC_PARAM_BLOCK_SIZE "block-size" +# define OSSL_MAC_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_MAC_PARAM_CUSTOM "custom" +# define OSSL_MAC_PARAM_C_ROUNDS "c-rounds" +# define OSSL_MAC_PARAM_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_MAC_PARAM_DIGEST_NOINIT "digest-noinit" +# define OSSL_MAC_PARAM_DIGEST_ONESHOT "digest-oneshot" +# define OSSL_MAC_PARAM_D_ROUNDS "d-rounds" +# define OSSL_MAC_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_MAC_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_MAC_PARAM_FIPS_NO_SHORT_MAC OSSL_PROV_PARAM_NO_SHORT_MAC +# define OSSL_MAC_PARAM_IV "iv" +# define OSSL_MAC_PARAM_KEY "key" +# define OSSL_MAC_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_MAC_PARAM_SALT "salt" +# define OSSL_MAC_PARAM_SIZE "size" +# define OSSL_MAC_PARAM_TLS_DATA_SIZE "tls-data-size" +# define OSSL_MAC_PARAM_XOF "xof" +# define OSSL_OBJECT_PARAM_DATA "data" +# define OSSL_OBJECT_PARAM_DATA_STRUCTURE "data-structure" +# define OSSL_OBJECT_PARAM_DATA_TYPE "data-type" +# define OSSL_OBJECT_PARAM_DESC "desc" +# define OSSL_OBJECT_PARAM_INPUT_TYPE "input-type" +# define OSSL_OBJECT_PARAM_REFERENCE "reference" +# define OSSL_OBJECT_PARAM_TYPE "type" +# define OSSL_PASSPHRASE_PARAM_INFO "info" +# define OSSL_PKEY_PARAM_ALGORITHM_ID OSSL_ALG_PARAM_ALGORITHM_ID +# define OSSL_PKEY_PARAM_ALGORITHM_ID_PARAMS OSSL_ALG_PARAM_ALGORITHM_ID_PARAMS +# define OSSL_PKEY_PARAM_BITS "bits" +# define OSSL_PKEY_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_PKEY_PARAM_DEFAULT_DIGEST "default-digest" +# define OSSL_PKEY_PARAM_DHKEM_IKM "dhkem-ikm" +# define OSSL_PKEY_PARAM_DH_GENERATOR "safeprime-generator" +# define OSSL_PKEY_PARAM_DH_PRIV_LEN "priv_len" +# define OSSL_PKEY_PARAM_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_PKEY_PARAM_DIGEST_SIZE "digest-size" +# define OSSL_PKEY_PARAM_DIST_ID "distid" +# define OSSL_PKEY_PARAM_EC_A "a" +# define OSSL_PKEY_PARAM_EC_B "b" +# define OSSL_PKEY_PARAM_EC_CHAR2_M "m" +# define OSSL_PKEY_PARAM_EC_CHAR2_PP_K1 "k1" +# define OSSL_PKEY_PARAM_EC_CHAR2_PP_K2 "k2" +# define OSSL_PKEY_PARAM_EC_CHAR2_PP_K3 "k3" +# define OSSL_PKEY_PARAM_EC_CHAR2_TP_BASIS "tp" +# define OSSL_PKEY_PARAM_EC_CHAR2_TYPE "basis-type" +# define OSSL_PKEY_PARAM_EC_COFACTOR "cofactor" +# define OSSL_PKEY_PARAM_EC_DECODED_FROM_EXPLICIT_PARAMS "decoded-from-explicit" +# define OSSL_PKEY_PARAM_EC_ENCODING "encoding" +# define OSSL_PKEY_PARAM_EC_FIELD_TYPE "field-type" +# define OSSL_PKEY_PARAM_EC_GENERATOR "generator" +# define OSSL_PKEY_PARAM_EC_GROUP_CHECK_TYPE "group-check" +# define OSSL_PKEY_PARAM_EC_INCLUDE_PUBLIC "include-public" +# define OSSL_PKEY_PARAM_EC_ORDER "order" +# define OSSL_PKEY_PARAM_EC_P "p" +# define OSSL_PKEY_PARAM_EC_POINT_CONVERSION_FORMAT "point-format" +# define OSSL_PKEY_PARAM_EC_PUB_X "qx" +# define OSSL_PKEY_PARAM_EC_PUB_Y "qy" +# define OSSL_PKEY_PARAM_EC_SEED "seed" +# define OSSL_PKEY_PARAM_ENCODED_PUBLIC_KEY "encoded-pub-key" +# define OSSL_PKEY_PARAM_ENGINE OSSL_ALG_PARAM_ENGINE +# define OSSL_PKEY_PARAM_FFC_COFACTOR "j" +# define OSSL_PKEY_PARAM_FFC_DIGEST OSSL_PKEY_PARAM_DIGEST +# define OSSL_PKEY_PARAM_FFC_DIGEST_PROPS OSSL_PKEY_PARAM_PROPERTIES +# define OSSL_PKEY_PARAM_FFC_G "g" +# define OSSL_PKEY_PARAM_FFC_GINDEX "gindex" +# define OSSL_PKEY_PARAM_FFC_H "hindex" +# define OSSL_PKEY_PARAM_FFC_P "p" +# define OSSL_PKEY_PARAM_FFC_PBITS "pbits" +# define OSSL_PKEY_PARAM_FFC_PCOUNTER "pcounter" +# define OSSL_PKEY_PARAM_FFC_Q "q" +# define OSSL_PKEY_PARAM_FFC_QBITS "qbits" +# define OSSL_PKEY_PARAM_FFC_SEED "seed" +# define OSSL_PKEY_PARAM_FFC_TYPE "type" +# define OSSL_PKEY_PARAM_FFC_VALIDATE_G "validate-g" +# define OSSL_PKEY_PARAM_FFC_VALIDATE_LEGACY "validate-legacy" +# define OSSL_PKEY_PARAM_FFC_VALIDATE_PQ "validate-pq" +# define OSSL_PKEY_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK "digest-check" +# define OSSL_PKEY_PARAM_FIPS_KEY_CHECK "key-check" +# define OSSL_PKEY_PARAM_FIPS_SIGN_CHECK "sign-check" +# define OSSL_PKEY_PARAM_GROUP_NAME "group" +# define OSSL_PKEY_PARAM_IMPLICIT_REJECTION "implicit-rejection" +# define OSSL_PKEY_PARAM_MANDATORY_DIGEST "mandatory-digest" +# define OSSL_PKEY_PARAM_MASKGENFUNC "mgf" +# define OSSL_PKEY_PARAM_MAX_SIZE "max-size" +# define OSSL_PKEY_PARAM_MGF1_DIGEST "mgf1-digest" +# define OSSL_PKEY_PARAM_MGF1_PROPERTIES "mgf1-properties" +# define OSSL_PKEY_PARAM_ML_DSA_INPUT_FORMATS "ml-dsa.input_formats" +# define OSSL_PKEY_PARAM_ML_DSA_OUTPUT_FORMATS "ml-dsa.output_formats" +# define OSSL_PKEY_PARAM_ML_DSA_PREFER_SEED "ml-dsa.prefer_seed" +# define OSSL_PKEY_PARAM_ML_DSA_RETAIN_SEED "ml-dsa.retain_seed" +# define OSSL_PKEY_PARAM_ML_DSA_SEED "seed" +# define OSSL_PKEY_PARAM_ML_KEM_IMPORT_PCT_TYPE "ml-kem.import_pct_type" +# define OSSL_PKEY_PARAM_ML_KEM_INPUT_FORMATS "ml-kem.input_formats" +# define OSSL_PKEY_PARAM_ML_KEM_OUTPUT_FORMATS "ml-kem.output_formats" +# define OSSL_PKEY_PARAM_ML_KEM_PREFER_SEED "ml-kem.prefer_seed" +# define OSSL_PKEY_PARAM_ML_KEM_RETAIN_SEED "ml-kem.retain_seed" +# define OSSL_PKEY_PARAM_ML_KEM_SEED "seed" +# define OSSL_PKEY_PARAM_PAD_MODE "pad-mode" +# define OSSL_PKEY_PARAM_PRIV_KEY "priv" +# define OSSL_PKEY_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_PKEY_PARAM_PUB_KEY "pub" +# define OSSL_PKEY_PARAM_RSA_BITS OSSL_PKEY_PARAM_BITS +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT "rsa-coefficient" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT1 "rsa-coefficient1" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT2 "rsa-coefficient2" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT3 "rsa-coefficient3" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT4 "rsa-coefficient4" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT5 "rsa-coefficient5" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT6 "rsa-coefficient6" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT7 "rsa-coefficient7" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT8 "rsa-coefficient8" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT9 "rsa-coefficient9" +# define OSSL_PKEY_PARAM_RSA_D "d" +# define OSSL_PKEY_PARAM_RSA_DERIVE_FROM_PQ "rsa-derive-from-pq" +# define OSSL_PKEY_PARAM_RSA_DIGEST OSSL_PKEY_PARAM_DIGEST +# define OSSL_PKEY_PARAM_RSA_DIGEST_PROPS OSSL_PKEY_PARAM_PROPERTIES +# define OSSL_PKEY_PARAM_RSA_E "e" +# define OSSL_PKEY_PARAM_RSA_EXPONENT "rsa-exponent" +# define OSSL_PKEY_PARAM_RSA_EXPONENT1 "rsa-exponent1" +# define OSSL_PKEY_PARAM_RSA_EXPONENT10 "rsa-exponent10" +# define OSSL_PKEY_PARAM_RSA_EXPONENT2 "rsa-exponent2" +# define OSSL_PKEY_PARAM_RSA_EXPONENT3 "rsa-exponent3" +# define OSSL_PKEY_PARAM_RSA_EXPONENT4 "rsa-exponent4" +# define OSSL_PKEY_PARAM_RSA_EXPONENT5 "rsa-exponent5" +# define OSSL_PKEY_PARAM_RSA_EXPONENT6 "rsa-exponent6" +# define OSSL_PKEY_PARAM_RSA_EXPONENT7 "rsa-exponent7" +# define OSSL_PKEY_PARAM_RSA_EXPONENT8 "rsa-exponent8" +# define OSSL_PKEY_PARAM_RSA_EXPONENT9 "rsa-exponent9" +# define OSSL_PKEY_PARAM_RSA_FACTOR "rsa-factor" +# define OSSL_PKEY_PARAM_RSA_FACTOR1 "rsa-factor1" +# define OSSL_PKEY_PARAM_RSA_FACTOR10 "rsa-factor10" +# define OSSL_PKEY_PARAM_RSA_FACTOR2 "rsa-factor2" +# define OSSL_PKEY_PARAM_RSA_FACTOR3 "rsa-factor3" +# define OSSL_PKEY_PARAM_RSA_FACTOR4 "rsa-factor4" +# define OSSL_PKEY_PARAM_RSA_FACTOR5 "rsa-factor5" +# define OSSL_PKEY_PARAM_RSA_FACTOR6 "rsa-factor6" +# define OSSL_PKEY_PARAM_RSA_FACTOR7 "rsa-factor7" +# define OSSL_PKEY_PARAM_RSA_FACTOR8 "rsa-factor8" +# define OSSL_PKEY_PARAM_RSA_FACTOR9 "rsa-factor9" +# define OSSL_PKEY_PARAM_RSA_MASKGENFUNC OSSL_PKEY_PARAM_MASKGENFUNC +# define OSSL_PKEY_PARAM_RSA_MGF1_DIGEST OSSL_PKEY_PARAM_MGF1_DIGEST +# define OSSL_PKEY_PARAM_RSA_N "n" +# define OSSL_PKEY_PARAM_RSA_PRIMES "primes" +# define OSSL_PKEY_PARAM_RSA_PSS_SALTLEN "saltlen" +# define OSSL_PKEY_PARAM_RSA_TEST_P1 "p1" +# define OSSL_PKEY_PARAM_RSA_TEST_P2 "p2" +# define OSSL_PKEY_PARAM_RSA_TEST_Q1 "q1" +# define OSSL_PKEY_PARAM_RSA_TEST_Q2 "q2" +# define OSSL_PKEY_PARAM_RSA_TEST_XP "xp" +# define OSSL_PKEY_PARAM_RSA_TEST_XP1 "xp1" +# define OSSL_PKEY_PARAM_RSA_TEST_XP2 "xp2" +# define OSSL_PKEY_PARAM_RSA_TEST_XQ "xq" +# define OSSL_PKEY_PARAM_RSA_TEST_XQ1 "xq1" +# define OSSL_PKEY_PARAM_RSA_TEST_XQ2 "xq2" +# define OSSL_PKEY_PARAM_SECURITY_BITS "security-bits" +# define OSSL_PKEY_PARAM_SLH_DSA_SEED "seed" +# define OSSL_PKEY_PARAM_USE_COFACTOR_ECDH OSSL_PKEY_PARAM_USE_COFACTOR_FLAG +# define OSSL_PKEY_PARAM_USE_COFACTOR_FLAG "use-cofactor-flag" +# define OSSL_PROV_PARAM_BUILDINFO "buildinfo" +# define OSSL_PROV_PARAM_CORE_MODULE_FILENAME "module-filename" +# define OSSL_PROV_PARAM_CORE_PROV_NAME "provider-name" +# define OSSL_PROV_PARAM_CORE_VERSION "openssl-version" +# define OSSL_PROV_PARAM_DRBG_TRUNC_DIGEST "drbg-no-trunc-md" +# define OSSL_PROV_PARAM_DSA_SIGN_DISABLED "dsa-sign-disabled" +# define OSSL_PROV_PARAM_ECDH_COFACTOR_CHECK "ecdh-cofactor-check" +# define OSSL_PROV_PARAM_HKDF_DIGEST_CHECK "hkdf-digest-check" +# define OSSL_PROV_PARAM_HKDF_KEY_CHECK "hkdf-key-check" +# define OSSL_PROV_PARAM_HMAC_KEY_CHECK "hmac-key-check" +# define OSSL_PROV_PARAM_KBKDF_KEY_CHECK "kbkdf-key-check" +# define OSSL_PROV_PARAM_KMAC_KEY_CHECK "kmac-key-check" +# define OSSL_PROV_PARAM_NAME "name" +# define OSSL_PROV_PARAM_NO_SHORT_MAC "no-short-mac" +# define OSSL_PROV_PARAM_PBKDF2_LOWER_BOUND_CHECK "pbkdf2-lower-bound-check" +# define OSSL_PROV_PARAM_RSA_PKCS15_PAD_DISABLED "rsa-pkcs15-pad-disabled" +# define OSSL_PROV_PARAM_RSA_PSS_SALTLEN_CHECK "rsa-pss-saltlen-check" +# define OSSL_PROV_PARAM_RSA_SIGN_X931_PAD_DISABLED "rsa-sign-x931-pad-disabled" +# define OSSL_PROV_PARAM_SECURITY_CHECKS "security-checks" +# define OSSL_PROV_PARAM_SELF_TEST_DESC "st-desc" +# define OSSL_PROV_PARAM_SELF_TEST_PHASE "st-phase" +# define OSSL_PROV_PARAM_SELF_TEST_TYPE "st-type" +# define OSSL_PROV_PARAM_SIGNATURE_DIGEST_CHECK "signature-digest-check" +# define OSSL_PROV_PARAM_SSHKDF_DIGEST_CHECK "sshkdf-digest-check" +# define OSSL_PROV_PARAM_SSHKDF_KEY_CHECK "sshkdf-key-check" +# define OSSL_PROV_PARAM_SSKDF_DIGEST_CHECK "sskdf-digest-check" +# define OSSL_PROV_PARAM_SSKDF_KEY_CHECK "sskdf-key-check" +# define OSSL_PROV_PARAM_STATUS "status" +# define OSSL_PROV_PARAM_TDES_ENCRYPT_DISABLED "tdes-encrypt-disabled" +# define OSSL_PROV_PARAM_TLS13_KDF_DIGEST_CHECK "tls13-kdf-digest-check" +# define OSSL_PROV_PARAM_TLS13_KDF_KEY_CHECK "tls13-kdf-key-check" +# define OSSL_PROV_PARAM_TLS1_PRF_DIGEST_CHECK "tls1-prf-digest-check" +# define OSSL_PROV_PARAM_TLS1_PRF_EMS_CHECK "tls1-prf-ems-check" +# define OSSL_PROV_PARAM_TLS1_PRF_KEY_CHECK "tls1-prf-key-check" +# define OSSL_PROV_PARAM_VERSION "version" +# define OSSL_PROV_PARAM_X942KDF_KEY_CHECK "x942kdf-key-check" +# define OSSL_PROV_PARAM_X963KDF_DIGEST_CHECK "x963kdf-digest-check" +# define OSSL_PROV_PARAM_X963KDF_KEY_CHECK "x963kdf-key-check" +# define OSSL_RAND_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_RAND_PARAM_GENERATE "generate" +# define OSSL_RAND_PARAM_MAX_REQUEST "max_request" +# define OSSL_RAND_PARAM_STATE "state" +# define OSSL_RAND_PARAM_STRENGTH "strength" +# define OSSL_RAND_PARAM_TEST_ENTROPY "test_entropy" +# define OSSL_RAND_PARAM_TEST_NONCE "test_nonce" +# define OSSL_SIGNATURE_PARAM_ADD_RANDOM "additional-random" +# define OSSL_SIGNATURE_PARAM_ALGORITHM_ID OSSL_PKEY_PARAM_ALGORITHM_ID +# define OSSL_SIGNATURE_PARAM_ALGORITHM_ID_PARAMS OSSL_PKEY_PARAM_ALGORITHM_ID_PARAMS +# define OSSL_SIGNATURE_PARAM_CONTEXT_STRING "context-string" +# define OSSL_SIGNATURE_PARAM_DETERMINISTIC "deterministic" +# define OSSL_SIGNATURE_PARAM_DIGEST OSSL_PKEY_PARAM_DIGEST +# define OSSL_SIGNATURE_PARAM_DIGEST_SIZE OSSL_PKEY_PARAM_DIGEST_SIZE +# define OSSL_SIGNATURE_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_SIGNATURE_PARAM_FIPS_DIGEST_CHECK OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK +# define OSSL_SIGNATURE_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_SIGNATURE_PARAM_FIPS_RSA_PSS_SALTLEN_CHECK "rsa-pss-saltlen-check" +# define OSSL_SIGNATURE_PARAM_FIPS_SIGN_CHECK OSSL_PKEY_PARAM_FIPS_SIGN_CHECK +# define OSSL_SIGNATURE_PARAM_FIPS_SIGN_X931_PAD_CHECK "sign-x931-pad-check" +# define OSSL_SIGNATURE_PARAM_FIPS_VERIFY_MESSAGE "verify-message" +# define OSSL_SIGNATURE_PARAM_INSTANCE "instance" +# define OSSL_SIGNATURE_PARAM_KAT "kat" +# define OSSL_SIGNATURE_PARAM_MESSAGE_ENCODING "message-encoding" +# define OSSL_SIGNATURE_PARAM_MGF1_DIGEST OSSL_PKEY_PARAM_MGF1_DIGEST +# define OSSL_SIGNATURE_PARAM_MGF1_PROPERTIES OSSL_PKEY_PARAM_MGF1_PROPERTIES +# define OSSL_SIGNATURE_PARAM_MU "mu" +# define OSSL_SIGNATURE_PARAM_NONCE_TYPE "nonce-type" +# define OSSL_SIGNATURE_PARAM_PAD_MODE OSSL_PKEY_PARAM_PAD_MODE +# define OSSL_SIGNATURE_PARAM_PROPERTIES OSSL_PKEY_PARAM_PROPERTIES +# define OSSL_SIGNATURE_PARAM_PSS_SALTLEN "saltlen" +# define OSSL_SIGNATURE_PARAM_SIGNATURE "signature" +# define OSSL_SIGNATURE_PARAM_TEST_ENTROPY "test-entropy" +# define OSSL_SKEY_PARAM_KEY_LENGTH "key-length" +# define OSSL_SKEY_PARAM_RAW_BYTES "raw-bytes" +# define OSSL_STORE_PARAM_ALIAS "alias" +# define OSSL_STORE_PARAM_DIGEST "digest" +# define OSSL_STORE_PARAM_EXPECT "expect" +# define OSSL_STORE_PARAM_FINGERPRINT "fingerprint" +# define OSSL_STORE_PARAM_INPUT_TYPE "input-type" +# define OSSL_STORE_PARAM_ISSUER "name" +# define OSSL_STORE_PARAM_PROPERTIES "properties" +# define OSSL_STORE_PARAM_SERIAL "serial" +# define OSSL_STORE_PARAM_SUBJECT "subject" + +# ifdef __cplusplus +} +# endif + +#endif diff --git a/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/include/openssl/crmf.h b/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/include/openssl/crmf.h index 71b747ed33d239..4bf550fd47daa9 100644 --- a/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/include/openssl/crmf.h +++ b/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/include/openssl/crmf.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/crmf.h.in * - * Copyright 2007-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2007-2025 The OpenSSL Project Authors. All Rights Reserved. * Copyright Nokia 2007-2019 * Copyright Siemens AG 2015-2019 * @@ -26,6 +26,7 @@ # include # include # include /* for GENERAL_NAME etc. */ +# include /* explicit #includes not strictly needed since implied by the above: */ # include @@ -43,9 +44,12 @@ extern "C" { # define OSSL_CRMF_SUBSEQUENTMESSAGE_ENCRCERT 0 # define OSSL_CRMF_SUBSEQUENTMESSAGE_CHALLENGERESP 1 - typedef struct ossl_crmf_encryptedvalue_st OSSL_CRMF_ENCRYPTEDVALUE; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_ENCRYPTEDVALUE) + +typedef struct ossl_crmf_encryptedkey_st OSSL_CRMF_ENCRYPTEDKEY; +DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_ENCRYPTEDKEY) + typedef struct ossl_crmf_msg_st OSSL_CRMF_MSG; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_MSG) DECLARE_ASN1_DUP_FUNCTION(OSSL_CRMF_MSG) @@ -77,6 +81,36 @@ SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CRMF_MSG, OSSL_CRMF_MSG, OSSL_CRMF_MSG) #define sk_OSSL_CRMF_MSG_set_cmp_func(sk, cmp) ((sk_OSSL_CRMF_MSG_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CRMF_MSG_sk_type(sk), ossl_check_OSSL_CRMF_MSG_compfunc_type(cmp))) typedef struct ossl_crmf_attributetypeandvalue_st OSSL_CRMF_ATTRIBUTETYPEANDVALUE; +void OSSL_CRMF_ATTRIBUTETYPEANDVALUE_free(OSSL_CRMF_ATTRIBUTETYPEANDVALUE *v); +DECLARE_ASN1_DUP_FUNCTION(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CRMF_ATTRIBUTETYPEANDVALUE, OSSL_CRMF_ATTRIBUTETYPEANDVALUE, OSSL_CRMF_ATTRIBUTETYPEANDVALUE) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_value(sk, idx) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_value(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), (idx))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_new(cmp) ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_new(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_compfunc_type(cmp))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_new_null() ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_new_null()) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_new_reserve(cmp, n) ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_compfunc_type(cmp), (n))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), (n)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_free(sk) OPENSSL_sk_free(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_delete(sk, i) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_delete(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), (i))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_delete_ptr(sk, ptr) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_pop(sk) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_pop(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_shift(sk) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_shift(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk),ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_freefunc_type(freefunc)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr), (idx)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_set(sk, idx, ptr) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_set(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), (idx), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr), pnum) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_dup(sk) ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_dup(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_copyfunc_type(copyfunc), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_freefunc_type(freefunc))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_set_cmp_func(sk, cmp) ((sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_compfunc_type(cmp))) + + typedef struct ossl_crmf_pbmparameter_st OSSL_CRMF_PBMPARAMETER; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_PBMPARAMETER) typedef struct ossl_crmf_poposigningkey_st OSSL_CRMF_POPOSIGNINGKEY; @@ -118,6 +152,7 @@ typedef struct ossl_crmf_singlepubinfo_st OSSL_CRMF_SINGLEPUBINFO; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_SINGLEPUBINFO) typedef struct ossl_crmf_certtemplate_st OSSL_CRMF_CERTTEMPLATE; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_CERTTEMPLATE) +DECLARE_ASN1_DUP_FUNCTION(OSSL_CRMF_CERTTEMPLATE) typedef STACK_OF(OSSL_CRMF_MSG) OSSL_CRMF_MSGS; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_MSGS) @@ -198,12 +233,14 @@ int OSSL_CRMF_MSGS_verify_popo(const OSSL_CRMF_MSGS *reqs, int rid, int acceptRAVerified, OSSL_LIB_CTX *libctx, const char *propq); OSSL_CRMF_CERTTEMPLATE *OSSL_CRMF_MSG_get0_tmpl(const OSSL_CRMF_MSG *crm); -const ASN1_INTEGER -*OSSL_CRMF_CERTTEMPLATE_get0_serialNumber(const OSSL_CRMF_CERTTEMPLATE *tmpl); +X509_PUBKEY +*OSSL_CRMF_CERTTEMPLATE_get0_publicKey(const OSSL_CRMF_CERTTEMPLATE *tmpl); const X509_NAME *OSSL_CRMF_CERTTEMPLATE_get0_subject(const OSSL_CRMF_CERTTEMPLATE *tmpl); const X509_NAME *OSSL_CRMF_CERTTEMPLATE_get0_issuer(const OSSL_CRMF_CERTTEMPLATE *tmpl); +const ASN1_INTEGER +*OSSL_CRMF_CERTTEMPLATE_get0_serialNumber(const OSSL_CRMF_CERTTEMPLATE *tmpl); X509_EXTENSIONS *OSSL_CRMF_CERTTEMPLATE_get0_extensions(const OSSL_CRMF_CERTTEMPLATE *tmpl); const X509_NAME @@ -215,10 +252,24 @@ int OSSL_CRMF_CERTTEMPLATE_fill(OSSL_CRMF_CERTTEMPLATE *tmpl, const X509_NAME *subject, const X509_NAME *issuer, const ASN1_INTEGER *serial); -X509 -*OSSL_CRMF_ENCRYPTEDVALUE_get1_encCert(const OSSL_CRMF_ENCRYPTEDVALUE *ecert, - OSSL_LIB_CTX *libctx, const char *propq, - EVP_PKEY *pkey); +X509 *OSSL_CRMF_ENCRYPTEDVALUE_get1_encCert(const OSSL_CRMF_ENCRYPTEDVALUE *ecert, + OSSL_LIB_CTX *libctx, const char *propq, + EVP_PKEY *pkey); +X509 *OSSL_CRMF_ENCRYPTEDKEY_get1_encCert(const OSSL_CRMF_ENCRYPTEDKEY *ecert, + OSSL_LIB_CTX *libctx, const char *propq, + EVP_PKEY *pkey, unsigned int flags); +unsigned char +*OSSL_CRMF_ENCRYPTEDVALUE_decrypt(const OSSL_CRMF_ENCRYPTEDVALUE *enc, + OSSL_LIB_CTX *libctx, const char *propq, + EVP_PKEY *pkey, int *outlen); +EVP_PKEY *OSSL_CRMF_ENCRYPTEDKEY_get1_pkey(const OSSL_CRMF_ENCRYPTEDKEY *encryptedKey, + X509_STORE *ts, STACK_OF(X509) *extra, EVP_PKEY *pkey, + X509 *cert, ASN1_OCTET_STRING *secret, + OSSL_LIB_CTX *libctx, const char *propq); +int OSSL_CRMF_MSG_centralkeygen_requested(const OSSL_CRMF_MSG *crm, const X509_REQ *p10cr); +# ifndef OPENSSL_NO_CMS +OSSL_CRMF_ENCRYPTEDKEY *OSSL_CRMF_ENCRYPTEDKEY_init_envdata(CMS_EnvelopedData *envdata); +# endif # ifdef __cplusplus } diff --git a/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/include/openssl/crypto.h b/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/include/openssl/crypto.h index 3f40be6d8c61d5..fd2cfd3e5a9ac4 100644 --- a/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/include/openssl/crypto.h +++ b/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/include/openssl/crypto.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/crypto.h.in * - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2024 The OpenSSL Project Authors. All Rights Reserved. * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved * * Licensed under the Apache License 2.0 (the "License"). You may not use @@ -85,9 +85,15 @@ int CRYPTO_THREAD_unlock(CRYPTO_RWLOCK *lock); void CRYPTO_THREAD_lock_free(CRYPTO_RWLOCK *lock); int CRYPTO_atomic_add(int *val, int amount, int *ret, CRYPTO_RWLOCK *lock); +int CRYPTO_atomic_add64(uint64_t *val, uint64_t op, uint64_t *ret, + CRYPTO_RWLOCK *lock); +int CRYPTO_atomic_and(uint64_t *val, uint64_t op, uint64_t *ret, + CRYPTO_RWLOCK *lock); int CRYPTO_atomic_or(uint64_t *val, uint64_t op, uint64_t *ret, CRYPTO_RWLOCK *lock); int CRYPTO_atomic_load(uint64_t *val, uint64_t *ret, CRYPTO_RWLOCK *lock); +int CRYPTO_atomic_load_int(int *val, int *ret, CRYPTO_RWLOCK *lock); +int CRYPTO_atomic_store(uint64_t *dst, uint64_t val, CRYPTO_RWLOCK *lock); /* No longer needed, so this is a no-op */ #define OPENSSL_malloc_init() while(0) continue @@ -96,6 +102,9 @@ int CRYPTO_atomic_load(uint64_t *val, uint64_t *ret, CRYPTO_RWLOCK *lock); CRYPTO_malloc(num, OPENSSL_FILE, OPENSSL_LINE) # define OPENSSL_zalloc(num) \ CRYPTO_zalloc(num, OPENSSL_FILE, OPENSSL_LINE) +# define OPENSSL_aligned_alloc(num, alignment, freeptr) \ + CRYPTO_aligned_alloc(num, alignment, freeptr, \ + OPENSSL_FILE, OPENSSL_LINE) # define OPENSSL_realloc(addr, num) \ CRYPTO_realloc(addr, num, OPENSSL_FILE, OPENSSL_LINE) # define OPENSSL_clear_realloc(addr, old_num, num) \ @@ -124,6 +133,7 @@ int CRYPTO_atomic_load(uint64_t *val, uint64_t *ret, CRYPTO_RWLOCK *lock); size_t OPENSSL_strlcpy(char *dst, const char *src, size_t siz); size_t OPENSSL_strlcat(char *dst, const char *src, size_t siz); size_t OPENSSL_strnlen(const char *str, size_t maxlen); +int OPENSSL_strtoul(const char *str, char **endptr, int base, unsigned long *num); int OPENSSL_buf2hexstr_ex(char *str, size_t str_n, size_t *strlength, const unsigned char *buf, size_t buflen, const char sep); @@ -160,6 +170,7 @@ const char *OpenSSL_version(int type); # define OPENSSL_FULL_VERSION_STRING 7 # define OPENSSL_MODULES_DIR 8 # define OPENSSL_CPU_INFO 9 +# define OPENSSL_WINCTX 10 const char *OPENSSL_info(int type); /* @@ -174,6 +185,7 @@ const char *OPENSSL_info(int type); # define OPENSSL_INFO_LIST_SEPARATOR 1006 # define OPENSSL_INFO_SEED_SOURCE 1007 # define OPENSSL_INFO_CPU_SETTINGS 1008 +# define OPENSSL_INFO_WINDOWS_CONTEXT 1009 int OPENSSL_issetugid(void); @@ -341,11 +353,14 @@ void CRYPTO_get_mem_functions(CRYPTO_malloc_fn *malloc_fn, CRYPTO_realloc_fn *realloc_fn, CRYPTO_free_fn *free_fn); -void *CRYPTO_malloc(size_t num, const char *file, int line); -void *CRYPTO_zalloc(size_t num, const char *file, int line); -void *CRYPTO_memdup(const void *str, size_t siz, const char *file, int line); -char *CRYPTO_strdup(const char *str, const char *file, int line); -char *CRYPTO_strndup(const char *str, size_t s, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_malloc(size_t num, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_zalloc(size_t num, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_aligned_alloc(size_t num, size_t align, + void **freeptr, const char *file, + int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_memdup(const void *str, size_t siz, const char *file, int line); +OSSL_CRYPTO_ALLOC char *CRYPTO_strdup(const char *str, const char *file, int line); +OSSL_CRYPTO_ALLOC char *CRYPTO_strndup(const char *str, size_t s, const char *file, int line); void CRYPTO_free(void *ptr, const char *file, int line); void CRYPTO_clear_free(void *ptr, size_t num, const char *file, int line); void *CRYPTO_realloc(void *addr, size_t num, const char *file, int line); @@ -354,8 +369,8 @@ void *CRYPTO_clear_realloc(void *addr, size_t old_num, size_t num, int CRYPTO_secure_malloc_init(size_t sz, size_t minsize); int CRYPTO_secure_malloc_done(void); -void *CRYPTO_secure_malloc(size_t num, const char *file, int line); -void *CRYPTO_secure_zalloc(size_t num, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_secure_malloc(size_t num, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_secure_zalloc(size_t num, const char *file, int line); void CRYPTO_secure_free(void *ptr, const char *file, int line); void CRYPTO_secure_clear_free(void *ptr, size_t num, const char *file, int line); @@ -376,6 +391,9 @@ void OPENSSL_cleanse(void *ptr, size_t len); # define CRYPTO_MEM_CHECK_ENABLE 0x2 /* Control and mode bit */ # define CRYPTO_MEM_CHECK_DISABLE 0x3 /* Control only */ +/* max allowed length for value of OPENSSL_MALLOC_FAILURES env var. */ +# define CRYPTO_MEM_CHECK_MAX_FS 256 + void CRYPTO_get_alloc_counts(int *mcount, int *rcount, int *fcount); # ifndef OPENSSL_NO_DEPRECATED_3_0 # define OPENSSL_mem_debug_push(info) \ @@ -551,6 +569,13 @@ int OSSL_LIB_CTX_load_config(OSSL_LIB_CTX *ctx, const char *config_file); void OSSL_LIB_CTX_free(OSSL_LIB_CTX *); OSSL_LIB_CTX *OSSL_LIB_CTX_get0_global_default(void); OSSL_LIB_CTX *OSSL_LIB_CTX_set0_default(OSSL_LIB_CTX *libctx); +int OSSL_LIB_CTX_get_conf_diagnostics(OSSL_LIB_CTX *ctx); +void OSSL_LIB_CTX_set_conf_diagnostics(OSSL_LIB_CTX *ctx, int value); + +void OSSL_sleep(uint64_t millis); + + +void *OSSL_LIB_CTX_get_data(OSSL_LIB_CTX *ctx, int index); # ifdef __cplusplus } diff --git a/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/include/openssl/ct.h b/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/include/openssl/ct.h index b6dd8c3547710a..e6dd1192a4e0b3 100644 --- a/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/include/openssl/ct.h +++ b/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/include/openssl/ct.h @@ -133,7 +133,7 @@ typedef enum { */ CT_POLICY_EVAL_CTX *CT_POLICY_EVAL_CTX_new_ex(OSSL_LIB_CTX *libctx, const char *propq); - + /* * The same as CT_POLICY_EVAL_CTX_new_ex() but the default library * context and property query string is used. diff --git a/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/include/openssl/err.h b/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/include/openssl/err.h index 2abf2483488181..daca18e7b757b0 100644 --- a/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/include/openssl/err.h +++ b/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/include/openssl/err.h @@ -1,5 +1,5 @@ /* - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -372,7 +372,7 @@ typedef struct ERR_string_data_st { } ERR_STRING_DATA; DEFINE_LHASH_OF_INTERNAL(ERR_STRING_DATA); -#define lh_ERR_STRING_DATA_new(hfn, cmp) ((LHASH_OF(ERR_STRING_DATA) *)OPENSSL_LH_new(ossl_check_ERR_STRING_DATA_lh_hashfunc_type(hfn), ossl_check_ERR_STRING_DATA_lh_compfunc_type(cmp))) +#define lh_ERR_STRING_DATA_new(hfn, cmp) ((LHASH_OF(ERR_STRING_DATA) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new(ossl_check_ERR_STRING_DATA_lh_hashfunc_type(hfn), ossl_check_ERR_STRING_DATA_lh_compfunc_type(cmp)), lh_ERR_STRING_DATA_hash_thunk, lh_ERR_STRING_DATA_comp_thunk, lh_ERR_STRING_DATA_doall_thunk, lh_ERR_STRING_DATA_doall_arg_thunk)) #define lh_ERR_STRING_DATA_free(lh) OPENSSL_LH_free(ossl_check_ERR_STRING_DATA_lh_type(lh)) #define lh_ERR_STRING_DATA_flush(lh) OPENSSL_LH_flush(ossl_check_ERR_STRING_DATA_lh_type(lh)) #define lh_ERR_STRING_DATA_insert(lh, ptr) ((ERR_STRING_DATA *)OPENSSL_LH_insert(ossl_check_ERR_STRING_DATA_lh_type(lh), ossl_check_ERR_STRING_DATA_lh_plain_type(ptr))) @@ -496,6 +496,14 @@ int ERR_get_next_error_library(void); int ERR_set_mark(void); int ERR_pop_to_mark(void); int ERR_clear_last_mark(void); +int ERR_count_to_mark(void); +int ERR_pop(void); + +ERR_STATE *OSSL_ERR_STATE_new(void); +void OSSL_ERR_STATE_save(ERR_STATE *es); +void OSSL_ERR_STATE_save_to_mark(ERR_STATE *es); +void OSSL_ERR_STATE_restore(const ERR_STATE *es); +void OSSL_ERR_STATE_free(ERR_STATE *es); #ifdef __cplusplus } diff --git a/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/include/openssl/fipskey.h b/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/include/openssl/fipskey.h index 42ba014b313ba8..929db18c678364 100644 --- a/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/include/openssl/fipskey.h +++ b/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/include/openssl/fipskey.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/fipskey.h.in * - * Copyright 2020-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2020-2024 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -29,6 +29,11 @@ extern "C" { */ #define FIPS_KEY_STRING "f4556650ac31d35461610bac4ed81b1a181b2d8a43ea2854cbae22ca74560813" +/* + * The FIPS provider vendor name, as a string. + */ +#define FIPS_VENDOR "OpenSSL FIPS Provider" + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/include/openssl/lhash.h b/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/include/openssl/lhash.h index 39dd6254acdeb6..62c55b20fd9716 100644 --- a/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/include/openssl/lhash.h +++ b/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/include/openssl/lhash.h @@ -1,5 +1,5 @@ /* - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2024 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -24,6 +24,9 @@ # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -31,9 +34,13 @@ extern "C" { typedef struct lhash_node_st OPENSSL_LH_NODE; typedef int (*OPENSSL_LH_COMPFUNC) (const void *, const void *); +typedef int (*OPENSSL_LH_COMPFUNCTHUNK) (const void *, const void *, OPENSSL_LH_COMPFUNC cfn); typedef unsigned long (*OPENSSL_LH_HASHFUNC) (const void *); +typedef unsigned long (*OPENSSL_LH_HASHFUNCTHUNK) (const void *, OPENSSL_LH_HASHFUNC hfn); typedef void (*OPENSSL_LH_DOALL_FUNC) (void *); +typedef void (*OPENSSL_LH_DOALL_FUNC_THUNK) (void *, OPENSSL_LH_DOALL_FUNC doall); typedef void (*OPENSSL_LH_DOALL_FUNCARG) (void *, void *); +typedef void (*OPENSSL_LH_DOALL_FUNCARG_THUNK) (void *, void *, OPENSSL_LH_DOALL_FUNCARG doall); typedef struct lhash_st OPENSSL_LHASH; /* @@ -79,26 +86,40 @@ typedef struct lhash_st OPENSSL_LHASH; int OPENSSL_LH_error(OPENSSL_LHASH *lh); OPENSSL_LHASH *OPENSSL_LH_new(OPENSSL_LH_HASHFUNC h, OPENSSL_LH_COMPFUNC c); +OPENSSL_LHASH *OPENSSL_LH_set_thunks(OPENSSL_LHASH *lh, + OPENSSL_LH_HASHFUNCTHUNK hw, + OPENSSL_LH_COMPFUNCTHUNK cw, + OPENSSL_LH_DOALL_FUNC_THUNK daw, + OPENSSL_LH_DOALL_FUNCARG_THUNK daaw); void OPENSSL_LH_free(OPENSSL_LHASH *lh); void OPENSSL_LH_flush(OPENSSL_LHASH *lh); void *OPENSSL_LH_insert(OPENSSL_LHASH *lh, void *data); void *OPENSSL_LH_delete(OPENSSL_LHASH *lh, const void *data); void *OPENSSL_LH_retrieve(OPENSSL_LHASH *lh, const void *data); void OPENSSL_LH_doall(OPENSSL_LHASH *lh, OPENSSL_LH_DOALL_FUNC func); -void OPENSSL_LH_doall_arg(OPENSSL_LHASH *lh, OPENSSL_LH_DOALL_FUNCARG func, void *arg); +void OPENSSL_LH_doall_arg(OPENSSL_LHASH *lh, + OPENSSL_LH_DOALL_FUNCARG func, void *arg); +void OPENSSL_LH_doall_arg_thunk(OPENSSL_LHASH *lh, + OPENSSL_LH_DOALL_FUNCARG_THUNK daaw, + OPENSSL_LH_DOALL_FUNCARG fn, void *arg); + unsigned long OPENSSL_LH_strhash(const char *c); unsigned long OPENSSL_LH_num_items(const OPENSSL_LHASH *lh); unsigned long OPENSSL_LH_get_down_load(const OPENSSL_LHASH *lh); void OPENSSL_LH_set_down_load(OPENSSL_LHASH *lh, unsigned long down_load); # ifndef OPENSSL_NO_STDIO -void OPENSSL_LH_stats(const OPENSSL_LHASH *lh, FILE *fp); -void OPENSSL_LH_node_stats(const OPENSSL_LHASH *lh, FILE *fp); -void OPENSSL_LH_node_usage_stats(const OPENSSL_LHASH *lh, FILE *fp); +# ifndef OPENSSL_NO_DEPRECATED_3_1 +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_stats(const OPENSSL_LHASH *lh, FILE *fp); +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_node_stats(const OPENSSL_LHASH *lh, FILE *fp); +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_node_usage_stats(const OPENSSL_LHASH *lh, FILE *fp); +# endif +# endif +# ifndef OPENSSL_NO_DEPRECATED_3_1 +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_stats_bio(const OPENSSL_LHASH *lh, BIO *out); +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_node_stats_bio(const OPENSSL_LHASH *lh, BIO *out); +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_node_usage_stats_bio(const OPENSSL_LHASH *lh, BIO *out); # endif -void OPENSSL_LH_stats_bio(const OPENSSL_LHASH *lh, BIO *out); -void OPENSSL_LH_node_stats_bio(const OPENSSL_LHASH *lh, BIO *out); -void OPENSSL_LH_node_usage_stats_bio(const OPENSSL_LHASH *lh, BIO *out); # ifndef OPENSSL_NO_DEPRECATED_1_1_0 # define _LHASH OPENSSL_LHASH @@ -129,110 +150,190 @@ void OPENSSL_LH_node_usage_stats_bio(const OPENSSL_LHASH *lh, BIO *out); /* Helper macro for internal use */ # define DEFINE_LHASH_OF_INTERNAL(type) \ - LHASH_OF(type) { union lh_##type##_dummy { void* d1; unsigned long d2; int d3; } dummy; }; \ + LHASH_OF(type) { \ + union lh_##type##_dummy { void* d1; unsigned long d2; int d3; } dummy; \ + }; \ typedef int (*lh_##type##_compfunc)(const type *a, const type *b); \ typedef unsigned long (*lh_##type##_hashfunc)(const type *a); \ typedef void (*lh_##type##_doallfunc)(type *a); \ - static ossl_unused ossl_inline type *ossl_check_##type##_lh_plain_type(type *ptr) \ + static ossl_inline unsigned long lh_##type##_hash_thunk(const void *data, OPENSSL_LH_HASHFUNC hfn) \ + { \ + unsigned long (*hfn_conv)(const type *) = (unsigned long (*)(const type *))hfn; \ + return hfn_conv((const type *)data); \ + } \ + static ossl_inline int lh_##type##_comp_thunk(const void *da, const void *db, OPENSSL_LH_COMPFUNC cfn) \ + { \ + int (*cfn_conv)(const type *, const type *) = (int (*)(const type *, const type *))cfn; \ + return cfn_conv((const type *)da, (const type *)db); \ + } \ + static ossl_inline void lh_##type##_doall_thunk(void *node, OPENSSL_LH_DOALL_FUNC doall) \ + { \ + void (*doall_conv)(type *) = (void (*)(type *))doall; \ + doall_conv((type *)node); \ + } \ + static ossl_inline void lh_##type##_doall_arg_thunk(void *node, void *arg, OPENSSL_LH_DOALL_FUNCARG doall) \ + { \ + void (*doall_conv)(type *, void *) = (void (*)(type *, void *))doall; \ + doall_conv((type *)node, arg); \ + } \ + static ossl_unused ossl_inline type *\ + ossl_check_##type##_lh_plain_type(type *ptr) \ { \ return ptr; \ } \ - static ossl_unused ossl_inline const type *ossl_check_const_##type##_lh_plain_type(const type *ptr) \ + static ossl_unused ossl_inline const type * \ + ossl_check_const_##type##_lh_plain_type(const type *ptr) \ { \ return ptr; \ } \ - static ossl_unused ossl_inline const OPENSSL_LHASH *ossl_check_const_##type##_lh_type(const LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline const OPENSSL_LHASH * \ + ossl_check_const_##type##_lh_type(const LHASH_OF(type) *lh) \ { \ return (const OPENSSL_LHASH *)lh; \ } \ - static ossl_unused ossl_inline OPENSSL_LHASH *ossl_check_##type##_lh_type(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline OPENSSL_LHASH * \ + ossl_check_##type##_lh_type(LHASH_OF(type) *lh) \ { \ return (OPENSSL_LHASH *)lh; \ } \ - static ossl_unused ossl_inline OPENSSL_LH_COMPFUNC ossl_check_##type##_lh_compfunc_type(lh_##type##_compfunc cmp) \ + static ossl_unused ossl_inline OPENSSL_LH_COMPFUNC \ + ossl_check_##type##_lh_compfunc_type(lh_##type##_compfunc cmp) \ { \ return (OPENSSL_LH_COMPFUNC)cmp; \ } \ - static ossl_unused ossl_inline OPENSSL_LH_HASHFUNC ossl_check_##type##_lh_hashfunc_type(lh_##type##_hashfunc hfn) \ + static ossl_unused ossl_inline OPENSSL_LH_HASHFUNC \ + ossl_check_##type##_lh_hashfunc_type(lh_##type##_hashfunc hfn) \ { \ return (OPENSSL_LH_HASHFUNC)hfn; \ } \ - static ossl_unused ossl_inline OPENSSL_LH_DOALL_FUNC ossl_check_##type##_lh_doallfunc_type(lh_##type##_doallfunc dfn) \ + static ossl_unused ossl_inline OPENSSL_LH_DOALL_FUNC \ + ossl_check_##type##_lh_doallfunc_type(lh_##type##_doallfunc dfn) \ { \ return (OPENSSL_LH_DOALL_FUNC)dfn; \ } \ LHASH_OF(type) -# define DEFINE_LHASH_OF(type) \ - LHASH_OF(type) { union lh_##type##_dummy { void* d1; unsigned long d2; int d3; } dummy; }; \ - static ossl_unused ossl_inline LHASH_OF(type) *lh_##type##_new(unsigned long (*hfn)(const type *), \ - int (*cfn)(const type *, const type *)) \ +# ifndef OPENSSL_NO_DEPRECATED_3_1 +# define DEFINE_LHASH_OF_DEPRECATED(type) \ + static ossl_unused ossl_inline void \ + lh_##type##_node_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ { \ - return (LHASH_OF(type) *) \ - OPENSSL_LH_new((OPENSSL_LH_HASHFUNC)hfn, (OPENSSL_LH_COMPFUNC)cfn); \ + OPENSSL_LH_node_stats_bio((const OPENSSL_LHASH *)lh, out); \ } \ - static ossl_unused ossl_inline void lh_##type##_free(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline void \ + lh_##type##_node_usage_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + { \ + OPENSSL_LH_node_usage_stats_bio((const OPENSSL_LHASH *)lh, out); \ + } \ + static ossl_unused ossl_inline void \ + lh_##type##_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + { \ + OPENSSL_LH_stats_bio((const OPENSSL_LHASH *)lh, out); \ + } +# else +# define DEFINE_LHASH_OF_DEPRECATED(type) +# endif + +# define DEFINE_LHASH_OF_EX(type) \ + LHASH_OF(type) { \ + union lh_##type##_dummy { void* d1; unsigned long d2; int d3; } dummy; \ + }; \ + static unsigned long \ + lh_##type##_hfn_thunk(const void *data, OPENSSL_LH_HASHFUNC hfn) \ + { \ + unsigned long (*hfn_conv)(const type *) = (unsigned long (*)(const type *))hfn; \ + return hfn_conv((const type *)data); \ + } \ + static int lh_##type##_cfn_thunk(const void *da, const void *db, OPENSSL_LH_COMPFUNC cfn) \ + { \ + int (*cfn_conv)(const type *, const type *) = (int (*)(const type *, const type *))cfn; \ + return cfn_conv((const type *)da, (const type *)db); \ + } \ + static ossl_unused ossl_inline void \ + lh_##type##_free(LHASH_OF(type) *lh) \ { \ OPENSSL_LH_free((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline void lh_##type##_flush(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline void \ + lh_##type##_flush(LHASH_OF(type) *lh) \ { \ OPENSSL_LH_flush((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline type *lh_##type##_insert(LHASH_OF(type) *lh, type *d) \ + static ossl_unused ossl_inline type * \ + lh_##type##_insert(LHASH_OF(type) *lh, type *d) \ { \ return (type *)OPENSSL_LH_insert((OPENSSL_LHASH *)lh, d); \ } \ - static ossl_unused ossl_inline type *lh_##type##_delete(LHASH_OF(type) *lh, const type *d) \ + static ossl_unused ossl_inline type * \ + lh_##type##_delete(LHASH_OF(type) *lh, const type *d) \ { \ return (type *)OPENSSL_LH_delete((OPENSSL_LHASH *)lh, d); \ } \ - static ossl_unused ossl_inline type *lh_##type##_retrieve(LHASH_OF(type) *lh, const type *d) \ + static ossl_unused ossl_inline type * \ + lh_##type##_retrieve(LHASH_OF(type) *lh, const type *d) \ { \ return (type *)OPENSSL_LH_retrieve((OPENSSL_LHASH *)lh, d); \ } \ - static ossl_unused ossl_inline int lh_##type##_error(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline int \ + lh_##type##_error(LHASH_OF(type) *lh) \ { \ return OPENSSL_LH_error((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline unsigned long lh_##type##_num_items(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline unsigned long \ + lh_##type##_num_items(LHASH_OF(type) *lh) \ { \ return OPENSSL_LH_num_items((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline void lh_##type##_node_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + static ossl_unused ossl_inline unsigned long \ + lh_##type##_get_down_load(LHASH_OF(type) *lh) \ { \ - OPENSSL_LH_node_stats_bio((const OPENSSL_LHASH *)lh, out); \ + return OPENSSL_LH_get_down_load((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline void lh_##type##_node_usage_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + static ossl_unused ossl_inline void \ + lh_##type##_set_down_load(LHASH_OF(type) *lh, unsigned long dl) \ { \ - OPENSSL_LH_node_usage_stats_bio((const OPENSSL_LHASH *)lh, out); \ + OPENSSL_LH_set_down_load((OPENSSL_LHASH *)lh, dl); \ } \ - static ossl_unused ossl_inline void lh_##type##_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall_thunk(void *node, OPENSSL_LH_DOALL_FUNC doall) \ { \ - OPENSSL_LH_stats_bio((const OPENSSL_LHASH *)lh, out); \ + void (*doall_conv)(type *) = (void (*)(type *))doall; \ + doall_conv((type *)node); \ } \ - static ossl_unused ossl_inline unsigned long lh_##type##_get_down_load(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall_arg_thunk(void *node, void *arg, OPENSSL_LH_DOALL_FUNCARG doall) \ { \ - return OPENSSL_LH_get_down_load((OPENSSL_LHASH *)lh); \ + void (*doall_conv)(type *, void *) = (void (*)(type *, void *))doall; \ + doall_conv((type *)node, arg); \ } \ - static ossl_unused ossl_inline void lh_##type##_set_down_load(LHASH_OF(type) *lh, unsigned long dl) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall(LHASH_OF(type) *lh, void (*doall)(type *)) \ { \ - OPENSSL_LH_set_down_load((OPENSSL_LHASH *)lh, dl); \ + OPENSSL_LH_doall((OPENSSL_LHASH *)lh, (OPENSSL_LH_DOALL_FUNC)doall); \ } \ - static ossl_unused ossl_inline void lh_##type##_doall(LHASH_OF(type) *lh, \ - void (*doall)(type *)) \ + static ossl_unused ossl_inline LHASH_OF(type) * \ + lh_##type##_new(unsigned long (*hfn)(const type *), \ + int (*cfn)(const type *, const type *)) \ { \ - OPENSSL_LH_doall((OPENSSL_LHASH *)lh, (OPENSSL_LH_DOALL_FUNC)doall); \ + return (LHASH_OF(type) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new((OPENSSL_LH_HASHFUNC)hfn, (OPENSSL_LH_COMPFUNC)cfn), \ + lh_##type##_hfn_thunk, lh_##type##_cfn_thunk, \ + lh_##type##_doall_thunk, \ + lh_##type##_doall_arg_thunk); \ } \ - static ossl_unused ossl_inline void lh_##type##_doall_arg(LHASH_OF(type) *lh, \ - void (*doallarg)(type *, void *), \ - void *arg) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall_arg(LHASH_OF(type) *lh, \ + void (*doallarg)(type *, void *), void *arg) \ { \ OPENSSL_LH_doall_arg((OPENSSL_LHASH *)lh, \ (OPENSSL_LH_DOALL_FUNCARG)doallarg, arg); \ } \ LHASH_OF(type) +# define DEFINE_LHASH_OF(type) \ + DEFINE_LHASH_OF_EX(type); \ + DEFINE_LHASH_OF_DEPRECATED(type) \ + LHASH_OF(type) + #define IMPLEMENT_LHASH_DOALL_ARG_CONST(type, argtype) \ int_implement_lhash_doall(type, argtype, const type) @@ -240,17 +341,26 @@ void OPENSSL_LH_node_usage_stats_bio(const OPENSSL_LHASH *lh, BIO *out); int_implement_lhash_doall(type, argtype, type) #define int_implement_lhash_doall(type, argtype, cbargtype) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall_##argtype##_thunk(void *node, void *arg, OPENSSL_LH_DOALL_FUNCARG fn) \ + { \ + void (*fn_conv)(cbargtype *, argtype *) = (void (*)(cbargtype *, argtype *))fn; \ + fn_conv((cbargtype *)node, (argtype *)arg); \ + } \ static ossl_unused ossl_inline void \ lh_##type##_doall_##argtype(LHASH_OF(type) *lh, \ void (*fn)(cbargtype *, argtype *), \ argtype *arg) \ { \ - OPENSSL_LH_doall_arg((OPENSSL_LHASH *)lh, (OPENSSL_LH_DOALL_FUNCARG)fn, (void *)arg); \ + OPENSSL_LH_doall_arg_thunk((OPENSSL_LHASH *)lh, \ + lh_##type##_doall_##argtype##_thunk, \ + (OPENSSL_LH_DOALL_FUNCARG)fn, \ + (void *)arg); \ } \ LHASH_OF(type) DEFINE_LHASH_OF_INTERNAL(OPENSSL_STRING); -#define lh_OPENSSL_STRING_new(hfn, cmp) ((LHASH_OF(OPENSSL_STRING) *)OPENSSL_LH_new(ossl_check_OPENSSL_STRING_lh_hashfunc_type(hfn), ossl_check_OPENSSL_STRING_lh_compfunc_type(cmp))) +#define lh_OPENSSL_STRING_new(hfn, cmp) ((LHASH_OF(OPENSSL_STRING) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new(ossl_check_OPENSSL_STRING_lh_hashfunc_type(hfn), ossl_check_OPENSSL_STRING_lh_compfunc_type(cmp)), lh_OPENSSL_STRING_hash_thunk, lh_OPENSSL_STRING_comp_thunk, lh_OPENSSL_STRING_doall_thunk, lh_OPENSSL_STRING_doall_arg_thunk)) #define lh_OPENSSL_STRING_free(lh) OPENSSL_LH_free(ossl_check_OPENSSL_STRING_lh_type(lh)) #define lh_OPENSSL_STRING_flush(lh) OPENSSL_LH_flush(ossl_check_OPENSSL_STRING_lh_type(lh)) #define lh_OPENSSL_STRING_insert(lh, ptr) ((OPENSSL_STRING *)OPENSSL_LH_insert(ossl_check_OPENSSL_STRING_lh_type(lh), ossl_check_OPENSSL_STRING_lh_plain_type(ptr))) @@ -265,7 +375,7 @@ DEFINE_LHASH_OF_INTERNAL(OPENSSL_STRING); #define lh_OPENSSL_STRING_set_down_load(lh, dl) OPENSSL_LH_set_down_load(ossl_check_OPENSSL_STRING_lh_type(lh), dl) #define lh_OPENSSL_STRING_doall(lh, dfn) OPENSSL_LH_doall(ossl_check_OPENSSL_STRING_lh_type(lh), ossl_check_OPENSSL_STRING_lh_doallfunc_type(dfn)) DEFINE_LHASH_OF_INTERNAL(OPENSSL_CSTRING); -#define lh_OPENSSL_CSTRING_new(hfn, cmp) ((LHASH_OF(OPENSSL_CSTRING) *)OPENSSL_LH_new(ossl_check_OPENSSL_CSTRING_lh_hashfunc_type(hfn), ossl_check_OPENSSL_CSTRING_lh_compfunc_type(cmp))) +#define lh_OPENSSL_CSTRING_new(hfn, cmp) ((LHASH_OF(OPENSSL_CSTRING) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new(ossl_check_OPENSSL_CSTRING_lh_hashfunc_type(hfn), ossl_check_OPENSSL_CSTRING_lh_compfunc_type(cmp)), lh_OPENSSL_CSTRING_hash_thunk, lh_OPENSSL_CSTRING_comp_thunk, lh_OPENSSL_CSTRING_doall_thunk, lh_OPENSSL_CSTRING_doall_arg_thunk)) #define lh_OPENSSL_CSTRING_free(lh) OPENSSL_LH_free(ossl_check_OPENSSL_CSTRING_lh_type(lh)) #define lh_OPENSSL_CSTRING_flush(lh) OPENSSL_LH_flush(ossl_check_OPENSSL_CSTRING_lh_type(lh)) #define lh_OPENSSL_CSTRING_insert(lh, ptr) ((OPENSSL_CSTRING *)OPENSSL_LH_insert(ossl_check_OPENSSL_CSTRING_lh_type(lh), ossl_check_OPENSSL_CSTRING_lh_plain_type(ptr))) diff --git a/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/include/openssl/opensslv.h b/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/include/openssl/opensslv.h index 5fb5bc63056fe0..dd50d89cb9982d 100644 --- a/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/include/openssl/opensslv.h +++ b/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/include/openssl/opensslv.h @@ -28,8 +28,8 @@ extern "C" { * These macros express version number MAJOR.MINOR.PATCH exactly */ # define OPENSSL_VERSION_MAJOR 3 -# define OPENSSL_VERSION_MINOR 0 -# define OPENSSL_VERSION_PATCH 17 +# define OPENSSL_VERSION_MINOR 5 +# define OPENSSL_VERSION_PATCH 1 /* * Additional version information @@ -74,8 +74,8 @@ extern "C" { * longer variant with OPENSSL_VERSION_PRE_RELEASE_STR and * OPENSSL_VERSION_BUILD_METADATA_STR appended. */ -# define OPENSSL_VERSION_STR "3.0.17" -# define OPENSSL_FULL_VERSION_STR "3.0.17" +# define OPENSSL_VERSION_STR "3.5.1" +# define OPENSSL_FULL_VERSION_STR "3.5.1" /* * SECTION 3: ADDITIONAL METADATA @@ -88,7 +88,7 @@ extern "C" { * SECTION 4: BACKWARD COMPATIBILITY */ -# define OPENSSL_VERSION_TEXT "OpenSSL 3.0.17 1 Jul 2025" +# define OPENSSL_VERSION_TEXT "OpenSSL 3.5.1 1 Jul 2025" /* Synthesize OPENSSL_VERSION_NUMBER with the layout 0xMNN00PPSL */ # ifdef OPENSSL_VERSION_PRE_RELEASE diff --git a/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/include/openssl/pkcs12.h b/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/include/openssl/pkcs12.h index c5e0cab06491ec..0809645dad0bbf 100644 --- a/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/include/openssl/pkcs12.h +++ b/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/include/openssl/pkcs12.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/pkcs12.h.in * - * Copyright 1999-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1999-2024 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -25,6 +25,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -41,6 +44,7 @@ extern "C" { # define PKCS12_MAC_KEY_LENGTH 20 +/* The macro is expected to be used only internally. Kept for backwards compatibility. */ # define PKCS12_SALT_LEN 8 /* It's not clear if these are actually needed... */ @@ -130,7 +134,9 @@ int PKCS12_SAFEBAG_get_bag_nid(const PKCS12_SAFEBAG *bag); const ASN1_TYPE *PKCS12_SAFEBAG_get0_bag_obj(const PKCS12_SAFEBAG *bag); const ASN1_OBJECT *PKCS12_SAFEBAG_get0_bag_type(const PKCS12_SAFEBAG *bag); +X509 *PKCS12_SAFEBAG_get1_cert_ex(const PKCS12_SAFEBAG *bag, OSSL_LIB_CTX *libctx, const char *propq); X509 *PKCS12_SAFEBAG_get1_cert(const PKCS12_SAFEBAG *bag); +X509_CRL *PKCS12_SAFEBAG_get1_crl_ex(const PKCS12_SAFEBAG *bag, OSSL_LIB_CTX *libctx, const char *propq); X509_CRL *PKCS12_SAFEBAG_get1_crl(const PKCS12_SAFEBAG *bag); const STACK_OF(PKCS12_SAFEBAG) * PKCS12_SAFEBAG_get0_safes(const PKCS12_SAFEBAG *bag); @@ -218,6 +224,7 @@ ASN1_TYPE *PKCS12_get_attr_gen(const STACK_OF(X509_ATTRIBUTE) *attrs, char *PKCS12_get_friendlyname(PKCS12_SAFEBAG *bag); const STACK_OF(X509_ATTRIBUTE) * PKCS12_SAFEBAG_get0_attrs(const PKCS12_SAFEBAG *bag); +void PKCS12_SAFEBAG_set0_attrs(PKCS12_SAFEBAG *bag, STACK_OF(X509_ATTRIBUTE) *attrs); unsigned char *PKCS12_pbe_crypt(const X509_ALGOR *algor, const char *pass, int passlen, const unsigned char *in, int inlen, @@ -285,6 +292,9 @@ int PKCS12_verify_mac(PKCS12 *p12, const char *pass, int passlen); int PKCS12_set_mac(PKCS12 *p12, const char *pass, int passlen, unsigned char *salt, int saltlen, int iter, const EVP_MD *md_type); +int PKCS12_set_pbmac1_pbkdf2(PKCS12 *p12, const char *pass, int passlen, + unsigned char *salt, int saltlen, int iter, + const EVP_MD *md_type, const char *prf_md_name); int PKCS12_setup_mac(PKCS12 *p12, int iter, unsigned char *salt, int saltlen, const EVP_MD *md_type); unsigned char *OPENSSL_asc2uni(const char *asc, int asclen, @@ -305,6 +315,7 @@ DECLARE_ASN1_ITEM(PKCS12_AUTHSAFES) void PKCS12_PBE_add(void); int PKCS12_parse(PKCS12 *p12, const char *pass, EVP_PKEY **pkey, X509 **cert, STACK_OF(X509) **ca); +typedef int PKCS12_create_cb(PKCS12_SAFEBAG *bag, void *cbarg); PKCS12 *PKCS12_create(const char *pass, const char *name, EVP_PKEY *pkey, X509 *cert, STACK_OF(X509) *ca, int nid_key, int nid_cert, int iter, int mac_iter, int keytype); @@ -312,6 +323,11 @@ PKCS12 *PKCS12_create_ex(const char *pass, const char *name, EVP_PKEY *pkey, X509 *cert, STACK_OF(X509) *ca, int nid_key, int nid_cert, int iter, int mac_iter, int keytype, OSSL_LIB_CTX *ctx, const char *propq); +PKCS12 *PKCS12_create_ex2(const char *pass, const char *name, EVP_PKEY *pkey, + X509 *cert, STACK_OF(X509) *ca, int nid_key, int nid_cert, + int iter, int mac_iter, int keytype, + OSSL_LIB_CTX *ctx, const char *propq, + PKCS12_create_cb *cb, void *cbarg); PKCS12_SAFEBAG *PKCS12_add_cert(STACK_OF(PKCS12_SAFEBAG) **pbags, X509 *cert); PKCS12_SAFEBAG *PKCS12_add_key(STACK_OF(PKCS12_SAFEBAG) **pbags, diff --git a/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/include/openssl/pkcs7.h b/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/include/openssl/pkcs7.h index 0ce79bf4fa160e..fa68462aff973b 100644 --- a/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/include/openssl/pkcs7.h +++ b/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/include/openssl/pkcs7.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/pkcs7.h.in * - * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -28,6 +28,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -131,8 +134,8 @@ SKM_DEFINE_STACK_OF_INTERNAL(PKCS7_RECIP_INFO, PKCS7_RECIP_INFO, PKCS7_RECIP_INF typedef struct pkcs7_signed_st { ASN1_INTEGER *version; /* version 1 */ STACK_OF(X509_ALGOR) *md_algs; /* md used */ - STACK_OF(X509) *cert; /* [ 0 ] */ - STACK_OF(X509_CRL) *crl; /* [ 1 ] */ + STACK_OF(X509) *cert; /* [ 0 ] */ /* name should be 'certificates' */ + STACK_OF(X509_CRL) *crl; /* [ 1 ] */ /* name should be 'crls' */ STACK_OF(PKCS7_SIGNER_INFO) *signer_info; struct pkcs7_st *contents; } PKCS7_SIGNED; @@ -158,8 +161,8 @@ typedef struct pkcs7_enveloped_st { typedef struct pkcs7_signedandenveloped_st { ASN1_INTEGER *version; /* version 1 */ STACK_OF(X509_ALGOR) *md_algs; /* md used */ - STACK_OF(X509) *cert; /* [ 0 ] */ - STACK_OF(X509_CRL) *crl; /* [ 1 ] */ + STACK_OF(X509) *cert; /* [ 0 ] */ /* name should be 'certificates' */ + STACK_OF(X509_CRL) *crl; /* [ 1 ] */ /* name should be 'crls' */ STACK_OF(PKCS7_SIGNER_INFO) *signer_info; PKCS7_ENC_CONTENT *enc_data; STACK_OF(PKCS7_RECIP_INFO) *recipientinfo; @@ -200,7 +203,7 @@ typedef struct pkcs7_st { /* NID_pkcs7_data */ ASN1_OCTET_STRING *data; /* NID_pkcs7_signed */ - PKCS7_SIGNED *sign; + PKCS7_SIGNED *sign; /* field name 'signed' would clash with C keyword */ /* NID_pkcs7_enveloped */ PKCS7_ENVELOPE *enveloped; /* NID_pkcs7_signedAndEnveloped */ @@ -341,13 +344,13 @@ int PKCS7_SIGNER_INFO_set(PKCS7_SIGNER_INFO *p7i, X509 *x509, EVP_PKEY *pkey, const EVP_MD *dgst); int PKCS7_SIGNER_INFO_sign(PKCS7_SIGNER_INFO *si); int PKCS7_add_signer(PKCS7 *p7, PKCS7_SIGNER_INFO *p7i); -int PKCS7_add_certificate(PKCS7 *p7, X509 *x509); -int PKCS7_add_crl(PKCS7 *p7, X509_CRL *x509); +int PKCS7_add_certificate(PKCS7 *p7, X509 *cert); +int PKCS7_add_crl(PKCS7 *p7, X509_CRL *crl); int PKCS7_content_new(PKCS7 *p7, int nid); int PKCS7_dataVerify(X509_STORE *cert_store, X509_STORE_CTX *ctx, BIO *bio, PKCS7 *p7, PKCS7_SIGNER_INFO *si); int PKCS7_signatureVerify(BIO *bio, PKCS7 *p7, PKCS7_SIGNER_INFO *si, - X509 *x509); + X509 *signer); BIO *PKCS7_dataInit(PKCS7 *p7, BIO *bio); int PKCS7_dataFinal(PKCS7 *p7, BIO *bio); diff --git a/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/include/openssl/ssl.h b/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/include/openssl/ssl.h index 3df725c56d6c5e..7e3d89c7ef3dc9 100644 --- a/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/include/openssl/ssl.h +++ b/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/include/openssl/ssl.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/ssl.h.in * - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved * Copyright 2005 Nokia. All rights reserved. * @@ -24,6 +24,7 @@ # endif # include +# include # include # include # include @@ -42,6 +43,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -231,10 +235,8 @@ typedef struct ssl_cipher_st SSL_CIPHER; typedef struct ssl_session_st SSL_SESSION; typedef struct tls_sigalgs_st TLS_SIGALGS; typedef struct ssl_conf_ctx_st SSL_CONF_CTX; -typedef struct ssl_comp_st SSL_COMP; STACK_OF(SSL_CIPHER); -STACK_OF(SSL_COMP); /* SRTP protection profiles for use with the use_srtp extension (RFC 5764)*/ typedef struct srtp_protection_profile_st { @@ -278,28 +280,31 @@ typedef int (*tls_session_secret_cb_fn)(SSL *s, void *secret, int *secret_len, /* Extension context codes */ /* This extension is only allowed in TLS */ -#define SSL_EXT_TLS_ONLY 0x0001 +#define SSL_EXT_TLS_ONLY 0x00001 /* This extension is only allowed in DTLS */ -#define SSL_EXT_DTLS_ONLY 0x0002 +#define SSL_EXT_DTLS_ONLY 0x00002 /* Some extensions may be allowed in DTLS but we don't implement them for it */ -#define SSL_EXT_TLS_IMPLEMENTATION_ONLY 0x0004 +#define SSL_EXT_TLS_IMPLEMENTATION_ONLY 0x00004 /* Most extensions are not defined for SSLv3 but EXT_TYPE_renegotiate is */ -#define SSL_EXT_SSL3_ALLOWED 0x0008 +#define SSL_EXT_SSL3_ALLOWED 0x00008 /* Extension is only defined for TLS1.2 and below */ -#define SSL_EXT_TLS1_2_AND_BELOW_ONLY 0x0010 +#define SSL_EXT_TLS1_2_AND_BELOW_ONLY 0x00010 /* Extension is only defined for TLS1.3 and above */ -#define SSL_EXT_TLS1_3_ONLY 0x0020 +#define SSL_EXT_TLS1_3_ONLY 0x00020 /* Ignore this extension during parsing if we are resuming */ -#define SSL_EXT_IGNORE_ON_RESUMPTION 0x0040 -#define SSL_EXT_CLIENT_HELLO 0x0080 +#define SSL_EXT_IGNORE_ON_RESUMPTION 0x00040 +#define SSL_EXT_CLIENT_HELLO 0x00080 /* Really means TLS1.2 or below */ -#define SSL_EXT_TLS1_2_SERVER_HELLO 0x0100 -#define SSL_EXT_TLS1_3_SERVER_HELLO 0x0200 -#define SSL_EXT_TLS1_3_ENCRYPTED_EXTENSIONS 0x0400 -#define SSL_EXT_TLS1_3_HELLO_RETRY_REQUEST 0x0800 -#define SSL_EXT_TLS1_3_CERTIFICATE 0x1000 -#define SSL_EXT_TLS1_3_NEW_SESSION_TICKET 0x2000 -#define SSL_EXT_TLS1_3_CERTIFICATE_REQUEST 0x4000 +#define SSL_EXT_TLS1_2_SERVER_HELLO 0x00100 +#define SSL_EXT_TLS1_3_SERVER_HELLO 0x00200 +#define SSL_EXT_TLS1_3_ENCRYPTED_EXTENSIONS 0x00400 +#define SSL_EXT_TLS1_3_HELLO_RETRY_REQUEST 0x00800 +#define SSL_EXT_TLS1_3_CERTIFICATE 0x01000 +#define SSL_EXT_TLS1_3_NEW_SESSION_TICKET 0x02000 +#define SSL_EXT_TLS1_3_CERTIFICATE_REQUEST 0x04000 +#define SSL_EXT_TLS1_3_CERTIFICATE_COMPRESSION 0x08000 +/* When sending a raw public key in a certificate message */ +#define SSL_EXT_TLS1_3_RAW_PUBLIC_KEY 0x10000 /* Typedefs for handling custom extensions */ @@ -404,7 +409,7 @@ typedef int (*SSL_async_callback_fn)(SSL *s, void *arg); */ # define SSL_OP_CIPHER_SERVER_PREFERENCE SSL_OP_BIT(22) /* - * If set, a server will allow a client to issue a SSLv3.0 version + * If set, a server will allow a client to issue an SSLv3.0 version * number as latest version supported in the premaster secret, even when * TLSv1.0 (version 3.1) was announced in the client hello. Normally * this is forbidden to prevent version rollback attacks. @@ -430,6 +435,19 @@ typedef int (*SSL_async_callback_fn)(SSL *s, void *arg); * interoperability with CryptoPro CSP 3.x */ # define SSL_OP_CRYPTOPRO_TLSEXT_BUG SSL_OP_BIT(31) +/* + * Disable RFC8879 certificate compression + * SSL_OP_NO_TX_CERTIFICATE_COMPRESSION: don't send compressed certificates, + * and ignore the extension when received. + * SSL_OP_NO_RX_CERTIFICATE_COMPRESSION: don't send the extension, and + * subsequently indicating that receiving is not supported + */ +# define SSL_OP_NO_TX_CERTIFICATE_COMPRESSION SSL_OP_BIT(32) +# define SSL_OP_NO_RX_CERTIFICATE_COMPRESSION SSL_OP_BIT(33) + /* Enable KTLS TX zerocopy on Linux */ +# define SSL_OP_ENABLE_KTLS_TX_ZEROCOPY_SENDFILE SSL_OP_BIT(34) + +#define SSL_OP_PREFER_NO_DHE_KEX SSL_OP_BIT(35) /* * Option "collections." @@ -574,6 +592,8 @@ typedef int (*SSL_async_callback_fn)(SSL *s, void *arg); # define CERT_PKEY_CERT_TYPE 0x400 /* Cert chain suitable to Suite B */ # define CERT_PKEY_SUITEB 0x800 +/* Cert pkey valid for raw public key use */ +# define CERT_PKEY_RPK 0x1000 # define SSL_CONF_FLAG_CMDLINE 0x1 # define SSL_CONF_FLAG_FILE 0x2 @@ -965,6 +985,7 @@ uint32_t SSL_get_recv_max_early_data(const SSL *s); # include /* This is mostly sslv3 with a few tweaks */ # include /* Datagram TLS */ # include /* Support for the use_srtp extension */ +# include #ifdef __cplusplus extern "C" { @@ -1000,32 +1021,6 @@ SKM_DEFINE_STACK_OF_INTERNAL(SSL_CIPHER, const SSL_CIPHER, SSL_CIPHER) #define sk_SSL_CIPHER_dup(sk) ((STACK_OF(SSL_CIPHER) *)OPENSSL_sk_dup(ossl_check_const_SSL_CIPHER_sk_type(sk))) #define sk_SSL_CIPHER_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(SSL_CIPHER) *)OPENSSL_sk_deep_copy(ossl_check_const_SSL_CIPHER_sk_type(sk), ossl_check_SSL_CIPHER_copyfunc_type(copyfunc), ossl_check_SSL_CIPHER_freefunc_type(freefunc))) #define sk_SSL_CIPHER_set_cmp_func(sk, cmp) ((sk_SSL_CIPHER_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_SSL_CIPHER_sk_type(sk), ossl_check_SSL_CIPHER_compfunc_type(cmp))) -SKM_DEFINE_STACK_OF_INTERNAL(SSL_COMP, SSL_COMP, SSL_COMP) -#define sk_SSL_COMP_num(sk) OPENSSL_sk_num(ossl_check_const_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_value(sk, idx) ((SSL_COMP *)OPENSSL_sk_value(ossl_check_const_SSL_COMP_sk_type(sk), (idx))) -#define sk_SSL_COMP_new(cmp) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new(ossl_check_SSL_COMP_compfunc_type(cmp))) -#define sk_SSL_COMP_new_null() ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new_null()) -#define sk_SSL_COMP_new_reserve(cmp, n) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new_reserve(ossl_check_SSL_COMP_compfunc_type(cmp), (n))) -#define sk_SSL_COMP_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_SSL_COMP_sk_type(sk), (n)) -#define sk_SSL_COMP_free(sk) OPENSSL_sk_free(ossl_check_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_zero(sk) OPENSSL_sk_zero(ossl_check_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_delete(sk, i) ((SSL_COMP *)OPENSSL_sk_delete(ossl_check_SSL_COMP_sk_type(sk), (i))) -#define sk_SSL_COMP_delete_ptr(sk, ptr) ((SSL_COMP *)OPENSSL_sk_delete_ptr(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr))) -#define sk_SSL_COMP_push(sk, ptr) OPENSSL_sk_push(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) -#define sk_SSL_COMP_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) -#define sk_SSL_COMP_pop(sk) ((SSL_COMP *)OPENSSL_sk_pop(ossl_check_SSL_COMP_sk_type(sk))) -#define sk_SSL_COMP_shift(sk) ((SSL_COMP *)OPENSSL_sk_shift(ossl_check_SSL_COMP_sk_type(sk))) -#define sk_SSL_COMP_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_SSL_COMP_sk_type(sk),ossl_check_SSL_COMP_freefunc_type(freefunc)) -#define sk_SSL_COMP_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr), (idx)) -#define sk_SSL_COMP_set(sk, idx, ptr) ((SSL_COMP *)OPENSSL_sk_set(ossl_check_SSL_COMP_sk_type(sk), (idx), ossl_check_SSL_COMP_type(ptr))) -#define sk_SSL_COMP_find(sk, ptr) OPENSSL_sk_find(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) -#define sk_SSL_COMP_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) -#define sk_SSL_COMP_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr), pnum) -#define sk_SSL_COMP_sort(sk) OPENSSL_sk_sort(ossl_check_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_dup(sk) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_dup(ossl_check_const_SSL_COMP_sk_type(sk))) -#define sk_SSL_COMP_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_deep_copy(ossl_check_const_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_copyfunc_type(copyfunc), ossl_check_SSL_COMP_freefunc_type(freefunc))) -#define sk_SSL_COMP_set_cmp_func(sk, cmp) ((sk_SSL_COMP_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_compfunc_type(cmp))) /* compatibility */ @@ -1066,6 +1061,7 @@ typedef enum { DTLS_ST_CR_HELLO_VERIFY_REQUEST, TLS_ST_CR_SRVR_HELLO, TLS_ST_CR_CERT, + TLS_ST_CR_COMP_CERT, TLS_ST_CR_CERT_STATUS, TLS_ST_CR_KEY_EXCH, TLS_ST_CR_CERT_REQ, @@ -1075,6 +1071,7 @@ typedef enum { TLS_ST_CR_FINISHED, TLS_ST_CW_CLNT_HELLO, TLS_ST_CW_CERT, + TLS_ST_CW_COMP_CERT, TLS_ST_CW_KEY_EXCH, TLS_ST_CW_CERT_VRFY, TLS_ST_CW_CHANGE, @@ -1085,10 +1082,12 @@ typedef enum { DTLS_ST_SW_HELLO_VERIFY_REQUEST, TLS_ST_SW_SRVR_HELLO, TLS_ST_SW_CERT, + TLS_ST_SW_COMP_CERT, TLS_ST_SW_KEY_EXCH, TLS_ST_SW_CERT_REQ, TLS_ST_SW_SRVR_DONE, TLS_ST_SR_CERT, + TLS_ST_SR_COMP_CERT, TLS_ST_SR_KEY_EXCH, TLS_ST_SR_CERT_VRFY, TLS_ST_SR_NEXT_PROTO, @@ -1380,9 +1379,13 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) # define SSL_CTRL_GET_SIGNATURE_NID 132 # define SSL_CTRL_GET_TMP_KEY 133 # define SSL_CTRL_GET_NEGOTIATED_GROUP 134 +# define SSL_CTRL_GET_IANA_GROUPS 135 # define SSL_CTRL_SET_RETRY_VERIFY 136 # define SSL_CTRL_GET_VERIFY_CERT_STORE 137 # define SSL_CTRL_GET_CHAIN_CERT_STORE 138 +# define SSL_CTRL_GET0_IMPLEMENTED_GROUPS 139 +# define SSL_CTRL_GET_SIGNATURE_NAME 140 +# define SSL_CTRL_GET_PEER_SIGNATURE_NAME 141 # define SSL_CERT_SET_FIRST 1 # define SSL_CERT_SET_NEXT 2 # define SSL_CERT_SET_SERVER 3 @@ -1485,10 +1488,15 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) # define SSL_get1_groups(s, glist) \ SSL_ctrl(s,SSL_CTRL_GET_GROUPS,0,(int*)(glist)) +# define SSL_get0_iana_groups(s, plst) \ + SSL_ctrl(s,SSL_CTRL_GET_IANA_GROUPS,0,(uint16_t **)(plst)) # define SSL_CTX_set1_groups(ctx, glist, glistlen) \ SSL_CTX_ctrl(ctx,SSL_CTRL_SET_GROUPS,glistlen,(int *)(glist)) # define SSL_CTX_set1_groups_list(ctx, s) \ SSL_CTX_ctrl(ctx,SSL_CTRL_SET_GROUPS_LIST,0,(char *)(s)) +# define SSL_CTX_get0_implemented_groups(ctx, all, out) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_GET0_IMPLEMENTED_GROUPS, all, \ + (STACK_OF(OPENSSL_CSTRING) *)(out)) # define SSL_set1_groups(s, glist, glistlen) \ SSL_ctrl(s,SSL_CTRL_SET_GROUPS,glistlen,(char *)(glist)) # define SSL_set1_groups_list(s, str) \ @@ -1520,8 +1528,12 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) (char *)(clist)) # define SSL_set1_client_certificate_types(s, clist, clistlen) \ SSL_ctrl(s,SSL_CTRL_SET_CLIENT_CERT_TYPES,clistlen,(char *)(clist)) +# define SSL_get0_signature_name(s, str) \ + SSL_ctrl(s,SSL_CTRL_GET_SIGNATURE_NAME,0,(1?(str):(const char **)NULL)) # define SSL_get_signature_nid(s, pn) \ SSL_ctrl(s,SSL_CTRL_GET_SIGNATURE_NID,0,pn) +# define SSL_get0_peer_signature_name(s, str) \ + SSL_ctrl(s,SSL_CTRL_GET_PEER_SIGNATURE_NAME,0,(1?(str):(const char **)NULL)) # define SSL_get_peer_signature_nid(s, pn) \ SSL_ctrl(s,SSL_CTRL_GET_PEER_SIGNATURE_NID,0,pn) # define SSL_get_peer_tmp_key(s, pk) \ @@ -1549,6 +1561,7 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) # define SSL_get_max_proto_version(s) \ SSL_ctrl(s, SSL_CTRL_GET_MAX_PROTO_VERSION, 0, NULL) +const char *SSL_get0_group_name(SSL *s); const char *SSL_group_to_name(SSL *s, int id); /* Backwards compatibility, original 1.1.0 names */ @@ -1613,7 +1626,11 @@ void SSL_CTX_set1_cert_store(SSL_CTX *, X509_STORE *); __owur int SSL_want(const SSL *s); __owur int SSL_clear(SSL *s); +#ifndef OPENSSL_NO_DEPRECATED_3_4 +OSSL_DEPRECATEDIN_3_4_FOR("not Y2038-safe, replace with SSL_CTX_flush_sessions_ex()") void SSL_CTX_flush_sessions(SSL_CTX *ctx, long tm); +#endif +void SSL_CTX_flush_sessions_ex(SSL_CTX *ctx, time_t tm); __owur const SSL_CIPHER *SSL_get_current_cipher(const SSL *s); __owur const SSL_CIPHER *SSL_get_pending_cipher(const SSL *s); @@ -1725,13 +1742,21 @@ __owur const char *SSL_state_string(const SSL *s); __owur const char *SSL_rstate_string(const SSL *s); __owur const char *SSL_state_string_long(const SSL *s); __owur const char *SSL_rstate_string_long(const SSL *s); + +#ifndef OPENSSL_NO_DEPRECATED_3_4 +OSSL_DEPRECATEDIN_3_4_FOR("not Y2038-safe, replace with SSL_SESSION_get_time_ex()") __owur long SSL_SESSION_get_time(const SSL_SESSION *s); +OSSL_DEPRECATEDIN_3_4_FOR("not Y2038-safe, replace with SSL_SESSION_set_time_ex()") __owur long SSL_SESSION_set_time(SSL_SESSION *s, long t); +#endif __owur long SSL_SESSION_get_timeout(const SSL_SESSION *s); __owur long SSL_SESSION_set_timeout(SSL_SESSION *s, long t); __owur int SSL_SESSION_get_protocol_version(const SSL_SESSION *s); __owur int SSL_SESSION_set_protocol_version(SSL_SESSION *s, int version); +__owur time_t SSL_SESSION_get_time_ex(const SSL_SESSION *s); +__owur time_t SSL_SESSION_set_time_ex(SSL_SESSION *s, time_t t); + __owur const char *SSL_SESSION_get0_hostname(const SSL_SESSION *s); __owur int SSL_SESSION_set1_hostname(SSL_SESSION *s, const char *hostname); void SSL_SESSION_get0_alpn_selected(const SSL_SESSION *s, @@ -1783,6 +1808,9 @@ __owur int SSL_has_matching_session_id(const SSL *s, unsigned int id_len); SSL_SESSION *d2i_SSL_SESSION(SSL_SESSION **a, const unsigned char **pp, long length); +SSL_SESSION *d2i_SSL_SESSION_ex(SSL_SESSION **a, const unsigned char **pp, + long length, OSSL_LIB_CTX *libctx, + const char *propq); # ifdef OPENSSL_X509_H __owur X509 *SSL_get0_peer_certificate(const SSL *s); @@ -1840,6 +1868,8 @@ __owur int SSL_CTX_set_session_id_context(SSL_CTX *ctx, SSL *SSL_new(SSL_CTX *ctx); int SSL_up_ref(SSL *s); int SSL_is_dtls(const SSL *s); +int SSL_is_tls(const SSL *s); +int SSL_is_quic(const SSL *s); __owur int SSL_set_session_id_context(SSL *ssl, const unsigned char *sid_ctx, unsigned int sid_ctx_len); @@ -1848,8 +1878,8 @@ __owur int SSL_set_purpose(SSL *ssl, int purpose); __owur int SSL_CTX_set_trust(SSL_CTX *ctx, int trust); __owur int SSL_set_trust(SSL *ssl, int trust); -__owur int SSL_set1_host(SSL *s, const char *hostname); -__owur int SSL_add1_host(SSL *s, const char *hostname); +__owur int SSL_set1_host(SSL *s, const char *host); +__owur int SSL_add1_host(SSL *s, const char *host); __owur const char *SSL_get0_peername(SSL *s); void SSL_set_hostflags(SSL *s, unsigned int flags); @@ -1924,6 +1954,11 @@ OSSL_DEPRECATEDIN_3_0 __owur char *SSL_get_srp_userinfo(SSL *s); typedef int (*SSL_client_hello_cb_fn) (SSL *s, int *al, void *arg); void SSL_CTX_set_client_hello_cb(SSL_CTX *c, SSL_client_hello_cb_fn cb, void *arg); +typedef int (*SSL_new_pending_conn_cb_fn) (SSL_CTX *ctx, SSL *new_ssl, + void *arg); +void SSL_CTX_set_new_pending_conn_cb(SSL_CTX *c, SSL_new_pending_conn_cb_fn cb, + void *arg); + int SSL_client_hello_isv2(SSL *s); unsigned int SSL_client_hello_get0_legacy_version(SSL *s); size_t SSL_client_hello_get0_random(SSL *s, const unsigned char **out); @@ -1932,6 +1967,8 @@ size_t SSL_client_hello_get0_ciphers(SSL *s, const unsigned char **out); size_t SSL_client_hello_get0_compression_methods(SSL *s, const unsigned char **out); int SSL_client_hello_get1_extensions_present(SSL *s, int **out, size_t *outlen); +int SSL_client_hello_get_extension_order(SSL *s, uint16_t *exts, + size_t *num_exts); int SSL_client_hello_get0_ext(SSL *s, unsigned int type, const unsigned char **out, size_t *outlen); @@ -1978,6 +2015,12 @@ long SSL_callback_ctrl(SSL *, int, void (*)(void)); long SSL_CTX_ctrl(SSL_CTX *ctx, int cmd, long larg, void *parg); long SSL_CTX_callback_ctrl(SSL_CTX *, int, void (*)(void)); +# define SSL_WRITE_FLAG_CONCLUDE (1U << 0) + +__owur int SSL_write_ex2(SSL *s, const void *buf, size_t num, + uint64_t flags, + size_t *written); + # define SSL_EARLY_DATA_NOT_SENT 0 # define SSL_EARLY_DATA_REJECTED 1 # define SSL_EARLY_DATA_ACCEPTED 2 @@ -1986,6 +2029,7 @@ __owur int SSL_get_early_data_status(const SSL *s); __owur int SSL_get_error(const SSL *s, int ret_code); __owur const char *SSL_get_version(const SSL *s); +__owur int SSL_get_handshake_rtt(const SSL *s, uint64_t *rtt); /* This sets the 'default' SSL version that SSL_new() will create */ # ifndef OPENSSL_NO_DEPRECATED_3_0 @@ -2281,6 +2325,8 @@ void SSL_CTX_set_record_padding_callback(SSL_CTX *ctx, void SSL_CTX_set_record_padding_callback_arg(SSL_CTX *ctx, void *arg); void *SSL_CTX_get_record_padding_callback_arg(const SSL_CTX *ctx); int SSL_CTX_set_block_padding(SSL_CTX *ctx, size_t block_size); +int SSL_CTX_set_block_padding_ex(SSL_CTX *ctx, size_t app_block_size, + size_t hs_block_size); int SSL_set_record_padding_callback(SSL *ssl, size_t (*cb) (SSL *ssl, int type, @@ -2288,12 +2334,255 @@ int SSL_set_record_padding_callback(SSL *ssl, void SSL_set_record_padding_callback_arg(SSL *ssl, void *arg); void *SSL_get_record_padding_callback_arg(const SSL *ssl); int SSL_set_block_padding(SSL *ssl, size_t block_size); - +int SSL_set_block_padding_ex(SSL *ssl, size_t app_block_size, + size_t hs_block_size); int SSL_set_num_tickets(SSL *s, size_t num_tickets); size_t SSL_get_num_tickets(const SSL *s); int SSL_CTX_set_num_tickets(SSL_CTX *ctx, size_t num_tickets); size_t SSL_CTX_get_num_tickets(const SSL_CTX *ctx); +/* QUIC support */ +int SSL_handle_events(SSL *s); +__owur int SSL_get_event_timeout(SSL *s, struct timeval *tv, int *is_infinite); +__owur int SSL_get_rpoll_descriptor(SSL *s, BIO_POLL_DESCRIPTOR *desc); +__owur int SSL_get_wpoll_descriptor(SSL *s, BIO_POLL_DESCRIPTOR *desc); +__owur int SSL_net_read_desired(SSL *s); +__owur int SSL_net_write_desired(SSL *s); +__owur int SSL_set_blocking_mode(SSL *s, int blocking); +__owur int SSL_get_blocking_mode(SSL *s); +__owur int SSL_set1_initial_peer_addr(SSL *s, const BIO_ADDR *peer_addr); +__owur SSL *SSL_get0_connection(SSL *s); +__owur int SSL_is_connection(SSL *s); + +__owur int SSL_is_listener(SSL *ssl); +__owur SSL *SSL_get0_listener(SSL *s); +#define SSL_LISTENER_FLAG_NO_VALIDATE (1UL << 1) +__owur SSL *SSL_new_listener(SSL_CTX *ctx, uint64_t flags); +__owur SSL *SSL_new_listener_from(SSL *ssl, uint64_t flags); +__owur SSL *SSL_new_from_listener(SSL *ssl, uint64_t flags); +#define SSL_ACCEPT_CONNECTION_NO_BLOCK (1UL << 0) +__owur SSL *SSL_accept_connection(SSL *ssl, uint64_t flags); +__owur size_t SSL_get_accept_connection_queue_len(SSL *ssl); +__owur int SSL_listen(SSL *ssl); + +__owur int SSL_is_domain(SSL *s); +__owur SSL *SSL_get0_domain(SSL *s); +__owur SSL *SSL_new_domain(SSL_CTX *ctx, uint64_t flags); + +#define SSL_DOMAIN_FLAG_SINGLE_THREAD (1U << 0) +#define SSL_DOMAIN_FLAG_MULTI_THREAD (1U << 1) +#define SSL_DOMAIN_FLAG_THREAD_ASSISTED (1U << 2) +#define SSL_DOMAIN_FLAG_BLOCKING (1U << 3) +#define SSL_DOMAIN_FLAG_LEGACY_BLOCKING (1U << 4) + +__owur int SSL_CTX_set_domain_flags(SSL_CTX *ctx, uint64_t domain_flags); +__owur int SSL_CTX_get_domain_flags(const SSL_CTX *ctx, uint64_t *domain_flags); +__owur int SSL_get_domain_flags(const SSL *ssl, uint64_t *domain_flags); + +#define SSL_STREAM_TYPE_NONE 0 +#define SSL_STREAM_TYPE_READ (1U << 0) +#define SSL_STREAM_TYPE_WRITE (1U << 1) +#define SSL_STREAM_TYPE_BIDI (SSL_STREAM_TYPE_READ | SSL_STREAM_TYPE_WRITE) +__owur int SSL_get_stream_type(SSL *s); + +__owur uint64_t SSL_get_stream_id(SSL *s); +__owur int SSL_is_stream_local(SSL *s); + +#define SSL_DEFAULT_STREAM_MODE_NONE 0 +#define SSL_DEFAULT_STREAM_MODE_AUTO_BIDI 1 +#define SSL_DEFAULT_STREAM_MODE_AUTO_UNI 2 +__owur int SSL_set_default_stream_mode(SSL *s, uint32_t mode); + +#define SSL_STREAM_FLAG_UNI (1U << 0) +#define SSL_STREAM_FLAG_NO_BLOCK (1U << 1) +#define SSL_STREAM_FLAG_ADVANCE (1U << 2) +__owur SSL *SSL_new_stream(SSL *s, uint64_t flags); + +#define SSL_INCOMING_STREAM_POLICY_AUTO 0 +#define SSL_INCOMING_STREAM_POLICY_ACCEPT 1 +#define SSL_INCOMING_STREAM_POLICY_REJECT 2 +__owur int SSL_set_incoming_stream_policy(SSL *s, int policy, uint64_t aec); + +#define SSL_ACCEPT_STREAM_NO_BLOCK (1U << 0) +__owur SSL *SSL_accept_stream(SSL *s, uint64_t flags); +__owur size_t SSL_get_accept_stream_queue_len(SSL *s); + +# ifndef OPENSSL_NO_QUIC +__owur int SSL_inject_net_dgram(SSL *s, const unsigned char *buf, + size_t buf_len, + const BIO_ADDR *peer, + const BIO_ADDR *local); +# endif + +typedef struct ssl_shutdown_ex_args_st { + uint64_t quic_error_code; + const char *quic_reason; +} SSL_SHUTDOWN_EX_ARGS; + +#define SSL_SHUTDOWN_FLAG_RAPID (1U << 0) +#define SSL_SHUTDOWN_FLAG_NO_STREAM_FLUSH (1U << 1) +#define SSL_SHUTDOWN_FLAG_NO_BLOCK (1U << 2) +#define SSL_SHUTDOWN_FLAG_WAIT_PEER (1U << 3) + +__owur int SSL_shutdown_ex(SSL *ssl, uint64_t flags, + const SSL_SHUTDOWN_EX_ARGS *args, + size_t args_len); + +__owur int SSL_stream_conclude(SSL *ssl, uint64_t flags); + +typedef struct ssl_stream_reset_args_st { + uint64_t quic_error_code; +} SSL_STREAM_RESET_ARGS; + +__owur int SSL_stream_reset(SSL *ssl, + const SSL_STREAM_RESET_ARGS *args, + size_t args_len); + +#define SSL_STREAM_STATE_NONE 0 +#define SSL_STREAM_STATE_OK 1 +#define SSL_STREAM_STATE_WRONG_DIR 2 +#define SSL_STREAM_STATE_FINISHED 3 +#define SSL_STREAM_STATE_RESET_LOCAL 4 +#define SSL_STREAM_STATE_RESET_REMOTE 5 +#define SSL_STREAM_STATE_CONN_CLOSED 6 +__owur int SSL_get_stream_read_state(SSL *ssl); +__owur int SSL_get_stream_write_state(SSL *ssl); + +__owur int SSL_get_stream_read_error_code(SSL *ssl, uint64_t *app_error_code); +__owur int SSL_get_stream_write_error_code(SSL *ssl, uint64_t *app_error_code); + +#define SSL_CONN_CLOSE_FLAG_LOCAL (1U << 0) +#define SSL_CONN_CLOSE_FLAG_TRANSPORT (1U << 1) + +typedef struct ssl_conn_close_info_st { + uint64_t error_code, frame_type; + const char *reason; + size_t reason_len; + uint32_t flags; +} SSL_CONN_CLOSE_INFO; + +__owur int SSL_get_conn_close_info(SSL *ssl, + SSL_CONN_CLOSE_INFO *info, + size_t info_len); + +# define SSL_VALUE_CLASS_GENERIC 0 +# define SSL_VALUE_CLASS_FEATURE_REQUEST 1 +# define SSL_VALUE_CLASS_FEATURE_PEER_REQUEST 2 +# define SSL_VALUE_CLASS_FEATURE_NEGOTIATED 3 + +# define SSL_VALUE_NONE 0 +# define SSL_VALUE_QUIC_STREAM_BIDI_LOCAL_AVAIL 1 +# define SSL_VALUE_QUIC_STREAM_BIDI_REMOTE_AVAIL 2 +# define SSL_VALUE_QUIC_STREAM_UNI_LOCAL_AVAIL 3 +# define SSL_VALUE_QUIC_STREAM_UNI_REMOTE_AVAIL 4 +# define SSL_VALUE_QUIC_IDLE_TIMEOUT 5 +# define SSL_VALUE_EVENT_HANDLING_MODE 6 +# define SSL_VALUE_STREAM_WRITE_BUF_SIZE 7 +# define SSL_VALUE_STREAM_WRITE_BUF_USED 8 +# define SSL_VALUE_STREAM_WRITE_BUF_AVAIL 9 + +# define SSL_VALUE_EVENT_HANDLING_MODE_INHERIT 0 +# define SSL_VALUE_EVENT_HANDLING_MODE_IMPLICIT 1 +# define SSL_VALUE_EVENT_HANDLING_MODE_EXPLICIT 2 + +int SSL_get_value_uint(SSL *s, uint32_t class_, uint32_t id, uint64_t *v); +int SSL_set_value_uint(SSL *s, uint32_t class_, uint32_t id, uint64_t v); + +# define SSL_get_generic_value_uint(ssl, id, v) \ + SSL_get_value_uint((ssl), SSL_VALUE_CLASS_GENERIC, (id), (v)) +# define SSL_set_generic_value_uint(ssl, id, v) \ + SSL_set_value_uint((ssl), SSL_VALUE_CLASS_GENERIC, (id), (v)) +# define SSL_get_feature_request_uint(ssl, id, v) \ + SSL_get_value_uint((ssl), SSL_VALUE_CLASS_FEATURE_REQUEST, (id), (v)) +# define SSL_set_feature_request_uint(ssl, id, v) \ + SSL_set_value_uint((ssl), SSL_VALUE_CLASS_FEATURE_REQUEST, (id), (v)) +# define SSL_get_feature_peer_request_uint(ssl, id, v) \ + SSL_get_value_uint((ssl), SSL_VALUE_CLASS_FEATURE_PEER_REQUEST, (id), (v)) +# define SSL_get_feature_negotiated_uint(ssl, id, v) \ + SSL_get_value_uint((ssl), SSL_VALUE_CLASS_FEATURE_NEGOTIATED, (id), (v)) + +# define SSL_get_quic_stream_bidi_local_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_QUIC_STREAM_BIDI_LOCAL_AVAIL, \ + (value)) +# define SSL_get_quic_stream_bidi_remote_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_QUIC_STREAM_BIDI_REMOTE_AVAIL, \ + (value)) +# define SSL_get_quic_stream_uni_local_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_QUIC_STREAM_UNI_LOCAL_AVAIL, \ + (value)) +# define SSL_get_quic_stream_uni_remote_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_QUIC_STREAM_UNI_REMOTE_AVAIL, \ + (value)) + +# define SSL_get_event_handling_mode(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_EVENT_HANDLING_MODE, \ + (value)) +# define SSL_set_event_handling_mode(ssl, value) \ + SSL_set_generic_value_uint((ssl), SSL_VALUE_EVENT_HANDLING_MODE, \ + (value)) + +# define SSL_get_stream_write_buf_size(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_STREAM_WRITE_BUF_SIZE, \ + (value)) +# define SSL_get_stream_write_buf_used(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_STREAM_WRITE_BUF_USED, \ + (value)) +# define SSL_get_stream_write_buf_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_STREAM_WRITE_BUF_AVAIL, \ + (value)) + +# define SSL_POLL_EVENT_NONE 0 + +# define SSL_POLL_EVENT_F (1U << 0) /* F (Failure) */ +# define SSL_POLL_EVENT_EL (1U << 1) /* EL (Exception on Listener) */ +# define SSL_POLL_EVENT_EC (1U << 2) /* EC (Exception on Conn) */ +# define SSL_POLL_EVENT_ECD (1U << 3) /* ECD (Exception on Conn Drained) */ +# define SSL_POLL_EVENT_ER (1U << 4) /* ER (Exception on Read) */ +# define SSL_POLL_EVENT_EW (1U << 5) /* EW (Exception on Write) */ +# define SSL_POLL_EVENT_R (1U << 6) /* R (Readable) */ +# define SSL_POLL_EVENT_W (1U << 7) /* W (Writable) */ +# define SSL_POLL_EVENT_IC (1U << 8) /* IC (Incoming Connection) */ +# define SSL_POLL_EVENT_ISB (1U << 9) /* ISB (Incoming Stream: Bidi) */ +# define SSL_POLL_EVENT_ISU (1U << 10) /* ISU (Incoming Stream: Uni) */ +# define SSL_POLL_EVENT_OSB (1U << 11) /* OSB (Outgoing Stream: Bidi) */ +# define SSL_POLL_EVENT_OSU (1U << 12) /* OSU (Outgoing Stream: Uni) */ + +# define SSL_POLL_EVENT_RW (SSL_POLL_EVENT_R | SSL_POLL_EVENT_W) +# define SSL_POLL_EVENT_RE (SSL_POLL_EVENT_R | SSL_POLL_EVENT_ER) +# define SSL_POLL_EVENT_WE (SSL_POLL_EVENT_W | SSL_POLL_EVENT_EW) +# define SSL_POLL_EVENT_RWE (SSL_POLL_EVENT_RE | SSL_POLL_EVENT_WE) +# define SSL_POLL_EVENT_E (SSL_POLL_EVENT_EL | SSL_POLL_EVENT_EC \ + | SSL_POLL_EVENT_ER | SSL_POLL_EVENT_EW) +# define SSL_POLL_EVENT_IS (SSL_POLL_EVENT_ISB | SSL_POLL_EVENT_ISU) +# define SSL_POLL_EVENT_ISE (SSL_POLL_EVENT_IS | SSL_POLL_EVENT_EC) +# define SSL_POLL_EVENT_I (SSL_POLL_EVENT_IS | SSL_POLL_EVENT_IC) +# define SSL_POLL_EVENT_OS (SSL_POLL_EVENT_OSB | SSL_POLL_EVENT_OSU) +# define SSL_POLL_EVENT_OSE (SSL_POLL_EVENT_OS | SSL_POLL_EVENT_EC) + +typedef struct ssl_poll_item_st { + BIO_POLL_DESCRIPTOR desc; + uint64_t events, revents; +} SSL_POLL_ITEM; + +# define SSL_POLL_FLAG_NO_HANDLE_EVENTS (1U << 0) + +__owur int SSL_poll(SSL_POLL_ITEM *items, + size_t num_items, + size_t stride, + const struct timeval *timeout, + uint64_t flags, + size_t *result_count); + +static ossl_inline ossl_unused BIO_POLL_DESCRIPTOR +SSL_as_poll_descriptor(SSL *s) +{ + BIO_POLL_DESCRIPTOR d; + + d.type = BIO_POLL_DESCRIPTOR_TYPE_SSL; + d.value.ssl = s; + return d; +} + # ifndef OPENSSL_NO_DEPRECATED_1_1_0 # define SSL_cache_hit(s) SSL_session_reused(s) # endif @@ -2593,6 +2882,51 @@ void SSL_set_allow_early_data_cb(SSL *s, const char *OSSL_default_cipher_list(void); const char *OSSL_default_ciphersuites(void); +/* RFC8879 Certificate compression APIs */ + +int SSL_CTX_compress_certs(SSL_CTX *ctx, int alg); +int SSL_compress_certs(SSL *ssl, int alg); + +int SSL_CTX_set1_cert_comp_preference(SSL_CTX *ctx, int *algs, size_t len); +int SSL_set1_cert_comp_preference(SSL *ssl, int *algs, size_t len); + +int SSL_CTX_set1_compressed_cert(SSL_CTX *ctx, int algorithm, unsigned char *comp_data, + size_t comp_length, size_t orig_length); +int SSL_set1_compressed_cert(SSL *ssl, int algorithm, unsigned char *comp_data, + size_t comp_length, size_t orig_length); +size_t SSL_CTX_get1_compressed_cert(SSL_CTX *ctx, int alg, unsigned char **data, size_t *orig_len); +size_t SSL_get1_compressed_cert(SSL *ssl, int alg, unsigned char **data, size_t *orig_len); + +__owur int SSL_add_expected_rpk(SSL *s, EVP_PKEY *rpk); +__owur EVP_PKEY *SSL_get0_peer_rpk(const SSL *s); +__owur EVP_PKEY *SSL_SESSION_get0_peer_rpk(SSL_SESSION *s); +__owur int SSL_get_negotiated_client_cert_type(const SSL *s); +__owur int SSL_get_negotiated_server_cert_type(const SSL *s); + +__owur int SSL_set1_client_cert_type(SSL *s, const unsigned char *val, size_t len); +__owur int SSL_set1_server_cert_type(SSL *s, const unsigned char *val, size_t len); +__owur int SSL_CTX_set1_client_cert_type(SSL_CTX *ctx, const unsigned char *val, size_t len); +__owur int SSL_CTX_set1_server_cert_type(SSL_CTX *ctx, const unsigned char *val, size_t len); +__owur int SSL_get0_client_cert_type(const SSL *s, unsigned char **t, size_t *len); +__owur int SSL_get0_server_cert_type(const SSL *s, unsigned char **t, size_t *len); +__owur int SSL_CTX_get0_client_cert_type(const SSL_CTX *ctx, unsigned char **t, size_t *len); +__owur int SSL_CTX_get0_server_cert_type(const SSL_CTX *s, unsigned char **t, size_t *len); + +/* + * Protection level. For <= TLSv1.2 only "NONE" and "APPLICATION" are used. + */ +# define OSSL_RECORD_PROTECTION_LEVEL_NONE 0 +# define OSSL_RECORD_PROTECTION_LEVEL_EARLY 1 +# define OSSL_RECORD_PROTECTION_LEVEL_HANDSHAKE 2 +# define OSSL_RECORD_PROTECTION_LEVEL_APPLICATION 3 + +int SSL_set_quic_tls_cbs(SSL *s, const OSSL_DISPATCH *qtdis, void *arg); +int SSL_set_quic_tls_transport_params(SSL *s, + const unsigned char *params, + size_t params_len); + +int SSL_set_quic_tls_early_data_enabled(SSL *s, int enabled); + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/include/openssl/x509.h b/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/include/openssl/x509.h index 1f7755e5b69c75..d013458c226461 100644 --- a/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/include/openssl/x509.h +++ b/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/include/openssl/x509.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/x509.h.in * - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2024 The OpenSSL Project Authors. All Rights Reserved. * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved * * Licensed under the Apache License 2.0 (the "License"). You may not use @@ -40,6 +40,9 @@ # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -162,16 +165,24 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_CRL, X509_CRL, X509_CRL) # define X509_FILETYPE_ASN1 2 # define X509_FILETYPE_DEFAULT 3 -# define X509v3_KU_DIGITAL_SIGNATURE 0x0080 -# define X509v3_KU_NON_REPUDIATION 0x0040 -# define X509v3_KU_KEY_ENCIPHERMENT 0x0020 -# define X509v3_KU_DATA_ENCIPHERMENT 0x0010 -# define X509v3_KU_KEY_AGREEMENT 0x0008 -# define X509v3_KU_KEY_CERT_SIGN 0x0004 -# define X509v3_KU_CRL_SIGN 0x0002 -# define X509v3_KU_ENCIPHER_ONLY 0x0001 -# define X509v3_KU_DECIPHER_ONLY 0x8000 -# define X509v3_KU_UNDEF 0xffff +/*- + * : + * The KeyUsage BITSTRING is treated as a little-endian integer, hence bit `0` + * is 0x80, while bit `7` is 0x01 (the LSB of the integer value), bit `8` is + * then the MSB of the second octet, or 0x8000. + */ +# define X509v3_KU_DIGITAL_SIGNATURE 0x0080 /* (0) */ +# define X509v3_KU_NON_REPUDIATION 0x0040 /* (1) */ +# define X509v3_KU_KEY_ENCIPHERMENT 0x0020 /* (2) */ +# define X509v3_KU_DATA_ENCIPHERMENT 0x0010 /* (3) */ +# define X509v3_KU_KEY_AGREEMENT 0x0008 /* (4) */ +# define X509v3_KU_KEY_CERT_SIGN 0x0004 /* (5) */ +# define X509v3_KU_CRL_SIGN 0x0002 /* (6) */ +# define X509v3_KU_ENCIPHER_ONLY 0x0001 /* (7) */ +# define X509v3_KU_DECIPHER_ONLY 0x8000 /* (8) */ +# ifndef OPENSSL_NO_DEPRECATED_3_4 +# define X509v3_KU_UNDEF 0xffff /* vestigial, not used */ +# endif struct X509_algor_st { ASN1_OBJECT *algorithm; @@ -462,7 +473,12 @@ typedef struct PBKDF2PARAM_st { X509_ALGOR *prf; } PBKDF2PARAM; -#ifndef OPENSSL_NO_SCRYPT +typedef struct { + X509_ALGOR *keyDerivationFunc; + X509_ALGOR *messageAuthScheme; +} PBMAC1PARAM; + +# ifndef OPENSSL_NO_SCRYPT typedef struct SCRYPT_PARAMS_st { ASN1_OCTET_STRING *salt; ASN1_INTEGER *costParameter; @@ -470,7 +486,7 @@ typedef struct SCRYPT_PARAMS_st { ASN1_INTEGER *parallelizationParameter; ASN1_INTEGER *keyLength; } SCRYPT_PARAMS; -#endif +# endif #ifdef __cplusplus } @@ -603,6 +619,8 @@ EVP_PKEY *d2i_PrivateKey_ex_fp(FILE *fp, EVP_PKEY **a, OSSL_LIB_CTX *libctx, const char *propq); EVP_PKEY *d2i_PrivateKey_fp(FILE *fp, EVP_PKEY **a); int i2d_PUBKEY_fp(FILE *fp, const EVP_PKEY *pkey); +EVP_PKEY *d2i_PUBKEY_ex_fp(FILE *fp, EVP_PKEY **a, OSSL_LIB_CTX *libctx, + const char *propq); EVP_PKEY *d2i_PUBKEY_fp(FILE *fp, EVP_PKEY **a); # endif @@ -651,6 +669,8 @@ EVP_PKEY *d2i_PrivateKey_ex_bio(BIO *bp, EVP_PKEY **a, OSSL_LIB_CTX *libctx, const char *propq); EVP_PKEY *d2i_PrivateKey_bio(BIO *bp, EVP_PKEY **a); int i2d_PUBKEY_bio(BIO *bp, const EVP_PKEY *pkey); +EVP_PKEY *d2i_PUBKEY_ex_bio(BIO *bp, EVP_PKEY **a, OSSL_LIB_CTX *libctx, + const char *propq); EVP_PKEY *d2i_PUBKEY_bio(BIO *bp, EVP_PKEY **a); DECLARE_ASN1_DUP_FUNCTION(X509) @@ -884,12 +904,12 @@ int X509_REQ_get_signature_nid(const X509_REQ *req); int i2d_re_X509_REQ_tbs(X509_REQ *req, unsigned char **pp); int X509_REQ_set_pubkey(X509_REQ *x, EVP_PKEY *pkey); EVP_PKEY *X509_REQ_get_pubkey(X509_REQ *req); -EVP_PKEY *X509_REQ_get0_pubkey(X509_REQ *req); +EVP_PKEY *X509_REQ_get0_pubkey(const X509_REQ *req); X509_PUBKEY *X509_REQ_get_X509_PUBKEY(X509_REQ *req); int X509_REQ_extension_nid(int nid); int *X509_REQ_get_extension_nids(void); void X509_REQ_set_extension_nids(int *nids); -STACK_OF(X509_EXTENSION) *X509_REQ_get_extensions(X509_REQ *req); +STACK_OF(X509_EXTENSION) *X509_REQ_get_extensions(OSSL_FUTURE_CONST X509_REQ *req); int X509_REQ_add_extensions_nid(X509_REQ *req, const STACK_OF(X509_EXTENSION) *exts, int nid); int X509_REQ_add_extensions(X509_REQ *req, const STACK_OF(X509_EXTENSION) *ext); @@ -950,13 +970,14 @@ X509_REVOKED_get0_extensions(const X509_REVOKED *r); X509_CRL *X509_CRL_diff(X509_CRL *base, X509_CRL *newer, EVP_PKEY *skey, const EVP_MD *md, unsigned int flags); -int X509_REQ_check_private_key(X509_REQ *x509, EVP_PKEY *pkey); +int X509_REQ_check_private_key(const X509_REQ *req, EVP_PKEY *pkey); -int X509_check_private_key(const X509 *x509, const EVP_PKEY *pkey); +int X509_check_private_key(const X509 *cert, const EVP_PKEY *pkey); int X509_chain_check_suiteb(int *perror_depth, X509 *x, STACK_OF(X509) *chain, unsigned long flags); int X509_CRL_check_suiteb(X509_CRL *crl, EVP_PKEY *pk, unsigned long flags); +void OSSL_STACK_OF_X509_free(STACK_OF(X509) *certs); STACK_OF(X509) *X509_chain_up_ref(STACK_OF(X509) *chain); int X509_issuer_and_serial_cmp(const X509 *a, const X509 *b); @@ -1077,6 +1098,8 @@ X509_EXTENSION *X509v3_get_ext(const STACK_OF(X509_EXTENSION) *x, int loc); X509_EXTENSION *X509v3_delete_ext(STACK_OF(X509_EXTENSION) *x, int loc); STACK_OF(X509_EXTENSION) *X509v3_add_ext(STACK_OF(X509_EXTENSION) **x, X509_EXTENSION *ex, int loc); +STACK_OF(X509_EXTENSION) *X509v3_add_extensions(STACK_OF(X509_EXTENSION) **target, + const STACK_OF(X509_EXTENSION) *exts); int X509_get_ext_count(const X509 *x); int X509_get_ext_by_NID(const X509 *x, int nid, int lastpos); @@ -1198,9 +1221,10 @@ X509 *X509_find_by_subject(STACK_OF(X509) *sk, const X509_NAME *name); DECLARE_ASN1_FUNCTIONS(PBEPARAM) DECLARE_ASN1_FUNCTIONS(PBE2PARAM) DECLARE_ASN1_FUNCTIONS(PBKDF2PARAM) -#ifndef OPENSSL_NO_SCRYPT +DECLARE_ASN1_FUNCTIONS(PBMAC1PARAM) +# ifndef OPENSSL_NO_SCRYPT DECLARE_ASN1_FUNCTIONS(SCRYPT_PARAMS) -#endif +# endif int PKCS5_pbe_set0_algor(X509_ALGOR *algor, int alg, int iter, const unsigned char *salt, int saltlen); @@ -1237,6 +1261,7 @@ X509_ALGOR *PKCS5_pbkdf2_set_ex(int iter, unsigned char *salt, int saltlen, int prf_nid, int keylen, OSSL_LIB_CTX *libctx); +PBKDF2PARAM *PBMAC1_get1_pbkdf2_param(const X509_ALGOR *macalg); /* PKCS#8 utilities */ DECLARE_ASN1_FUNCTIONS(PKCS8_PRIV_KEY_INFO) @@ -1262,6 +1287,8 @@ int PKCS8_pkey_add1_attr_by_OBJ(PKCS8_PRIV_KEY_INFO *p8, const ASN1_OBJECT *obj, int type, const unsigned char *bytes, int len); +void X509_PUBKEY_set0_public_key(X509_PUBKEY *pub, + unsigned char *penc, int penclen); int X509_PUBKEY_set0_param(X509_PUBKEY *pub, ASN1_OBJECT *aobj, int ptype, void *pval, unsigned char *penc, int penclen); diff --git a/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/include/openssl/x509_acert.h b/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/include/openssl/x509_acert.h new file mode 100644 index 00000000000000..9dde625677f9a9 --- /dev/null +++ b/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/include/openssl/x509_acert.h @@ -0,0 +1,294 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from include/openssl/x509_acert.h.in + * + * Copyright 2022-2024 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + + +#ifndef OPENSSL_X509_ACERT_H +# define OPENSSL_X509_ACERT_H +# pragma once + +# include +# include +# include + +typedef struct X509_acert_st X509_ACERT; +typedef struct X509_acert_info_st X509_ACERT_INFO; +typedef struct ossl_object_digest_info_st OSSL_OBJECT_DIGEST_INFO; +typedef struct ossl_issuer_serial_st OSSL_ISSUER_SERIAL; +typedef struct X509_acert_issuer_v2form_st X509_ACERT_ISSUER_V2FORM; + +DECLARE_ASN1_FUNCTIONS(X509_ACERT) +DECLARE_ASN1_DUP_FUNCTION(X509_ACERT) +DECLARE_ASN1_ITEM(X509_ACERT_INFO) +DECLARE_ASN1_ALLOC_FUNCTIONS(X509_ACERT_INFO) +DECLARE_ASN1_ALLOC_FUNCTIONS(OSSL_OBJECT_DIGEST_INFO) +DECLARE_ASN1_ALLOC_FUNCTIONS(OSSL_ISSUER_SERIAL) +DECLARE_ASN1_ALLOC_FUNCTIONS(X509_ACERT_ISSUER_V2FORM) + +# ifndef OPENSSL_NO_STDIO +X509_ACERT *d2i_X509_ACERT_fp(FILE *fp, X509_ACERT **acert); +int i2d_X509_ACERT_fp(FILE *fp, const X509_ACERT *acert); +# endif + +DECLARE_PEM_rw(X509_ACERT, X509_ACERT) + +X509_ACERT *d2i_X509_ACERT_bio(BIO *bp, X509_ACERT **acert); +int i2d_X509_ACERT_bio(BIO *bp, const X509_ACERT *acert); + +int X509_ACERT_sign(X509_ACERT *x, EVP_PKEY *pkey, const EVP_MD *md); +int X509_ACERT_sign_ctx(X509_ACERT *x, EVP_MD_CTX *ctx); +int X509_ACERT_verify(X509_ACERT *a, EVP_PKEY *r); + +# define X509_ACERT_VERSION_2 1 + +const GENERAL_NAMES *X509_ACERT_get0_holder_entityName(const X509_ACERT *x); +const OSSL_ISSUER_SERIAL *X509_ACERT_get0_holder_baseCertId(const X509_ACERT *x); +const OSSL_OBJECT_DIGEST_INFO * X509_ACERT_get0_holder_digest(const X509_ACERT *x); +const X509_NAME *X509_ACERT_get0_issuerName(const X509_ACERT *x); +long X509_ACERT_get_version(const X509_ACERT *x); +void X509_ACERT_get0_signature(const X509_ACERT *x, + const ASN1_BIT_STRING **psig, + const X509_ALGOR **palg); +int X509_ACERT_get_signature_nid(const X509_ACERT *x); +const X509_ALGOR *X509_ACERT_get0_info_sigalg(const X509_ACERT *x); +const ASN1_INTEGER *X509_ACERT_get0_serialNumber(const X509_ACERT *x); +const ASN1_TIME *X509_ACERT_get0_notBefore(const X509_ACERT *x); +const ASN1_TIME *X509_ACERT_get0_notAfter(const X509_ACERT *x); +const ASN1_BIT_STRING *X509_ACERT_get0_issuerUID(const X509_ACERT *x); + +int X509_ACERT_print(BIO *bp, X509_ACERT *x); +int X509_ACERT_print_ex(BIO *bp, X509_ACERT *x, unsigned long nmflags, + unsigned long cflag); + +int X509_ACERT_get_attr_count(const X509_ACERT *x); +int X509_ACERT_get_attr_by_NID(const X509_ACERT *x, int nid, int lastpos); +int X509_ACERT_get_attr_by_OBJ(const X509_ACERT *x, const ASN1_OBJECT *obj, + int lastpos); +X509_ATTRIBUTE *X509_ACERT_get_attr(const X509_ACERT *x, int loc); +X509_ATTRIBUTE *X509_ACERT_delete_attr(X509_ACERT *x, int loc); + +void *X509_ACERT_get_ext_d2i(const X509_ACERT *x, int nid, int *crit, int *idx); +int X509_ACERT_add1_ext_i2d(X509_ACERT *x, int nid, void *value, int crit, + unsigned long flags); +const STACK_OF(X509_EXTENSION) *X509_ACERT_get0_extensions(const X509_ACERT *x); + +# define OSSL_OBJECT_DIGEST_INFO_PUBLIC_KEY 0 +# define OSSL_OBJECT_DIGEST_INFO_PUBLIC_KEY_CERT 1 +# define OSSL_OBJECT_DIGEST_INFO_OTHER 2 /* must not be used in RFC 5755 profile */ +int X509_ACERT_set_version(X509_ACERT *x, long version); +void X509_ACERT_set0_holder_entityName(X509_ACERT *x, GENERAL_NAMES *name); +void X509_ACERT_set0_holder_baseCertId(X509_ACERT *x, OSSL_ISSUER_SERIAL *isss); +void X509_ACERT_set0_holder_digest(X509_ACERT *x, + OSSL_OBJECT_DIGEST_INFO *dinfo); + +int X509_ACERT_add1_attr(X509_ACERT *x, X509_ATTRIBUTE *attr); +int X509_ACERT_add1_attr_by_OBJ(X509_ACERT *x, const ASN1_OBJECT *obj, + int type, const void *bytes, int len); +int X509_ACERT_add1_attr_by_NID(X509_ACERT *x, int nid, int type, + const void *bytes, int len); +int X509_ACERT_add1_attr_by_txt(X509_ACERT *x, const char *attrname, int type, + const unsigned char *bytes, int len); +int X509_ACERT_add_attr_nconf(CONF *conf, const char *section, + X509_ACERT *acert); + +int X509_ACERT_set1_issuerName(X509_ACERT *x, const X509_NAME *name); +int X509_ACERT_set1_serialNumber(X509_ACERT *x, const ASN1_INTEGER *serial); +int X509_ACERT_set1_notBefore(X509_ACERT *x, const ASN1_GENERALIZEDTIME *time); +int X509_ACERT_set1_notAfter(X509_ACERT *x, const ASN1_GENERALIZEDTIME *time); + +void OSSL_OBJECT_DIGEST_INFO_get0_digest(const OSSL_OBJECT_DIGEST_INFO *o, + int *digestedObjectType, + const X509_ALGOR **digestAlgorithm, + const ASN1_BIT_STRING **digest); + +int OSSL_OBJECT_DIGEST_INFO_set1_digest(OSSL_OBJECT_DIGEST_INFO *o, + int digestedObjectType, + X509_ALGOR *digestAlgorithm, + ASN1_BIT_STRING *digest); + +const X509_NAME *OSSL_ISSUER_SERIAL_get0_issuer(const OSSL_ISSUER_SERIAL *isss); +const ASN1_INTEGER *OSSL_ISSUER_SERIAL_get0_serial(const OSSL_ISSUER_SERIAL *isss); +const ASN1_BIT_STRING *OSSL_ISSUER_SERIAL_get0_issuerUID(const OSSL_ISSUER_SERIAL *isss); + +int OSSL_ISSUER_SERIAL_set1_issuer(OSSL_ISSUER_SERIAL *isss, + const X509_NAME *issuer); +int OSSL_ISSUER_SERIAL_set1_serial(OSSL_ISSUER_SERIAL *isss, + const ASN1_INTEGER *serial); +int OSSL_ISSUER_SERIAL_set1_issuerUID(OSSL_ISSUER_SERIAL *isss, + const ASN1_BIT_STRING *uid); + +# define OSSL_IETFAS_OCTETS 0 +# define OSSL_IETFAS_OID 1 +# define OSSL_IETFAS_STRING 2 + +typedef struct OSSL_IETF_ATTR_SYNTAX_VALUE_st OSSL_IETF_ATTR_SYNTAX_VALUE; +typedef struct OSSL_IETF_ATTR_SYNTAX_st OSSL_IETF_ATTR_SYNTAX; +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_IETF_ATTR_SYNTAX_VALUE, OSSL_IETF_ATTR_SYNTAX_VALUE, OSSL_IETF_ATTR_SYNTAX_VALUE) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_value(sk, idx) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_value(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), (idx))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_new(cmp) ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_new(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_compfunc_type(cmp))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_new_null() ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_new_null()) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_new_reserve(cmp, n) ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_compfunc_type(cmp), (n))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), (n)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_free(sk) OPENSSL_sk_free(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_delete(sk, i) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_delete(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), (i))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_delete_ptr(sk, ptr) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_pop(sk) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_pop(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_shift(sk) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_shift(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk),ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_freefunc_type(freefunc)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr), (idx)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_set(sk, idx, ptr) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_set(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), (idx), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr), pnum) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_dup(sk) ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_dup(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_copyfunc_type(copyfunc), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_freefunc_type(freefunc))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_set_cmp_func(sk, cmp) ((sk_OSSL_IETF_ATTR_SYNTAX_VALUE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_compfunc_type(cmp))) + + +DECLARE_ASN1_ITEM(OSSL_IETF_ATTR_SYNTAX_VALUE) +DECLARE_ASN1_ALLOC_FUNCTIONS(OSSL_IETF_ATTR_SYNTAX_VALUE) +DECLARE_ASN1_FUNCTIONS(OSSL_IETF_ATTR_SYNTAX) + +const GENERAL_NAMES * +OSSL_IETF_ATTR_SYNTAX_get0_policyAuthority(const OSSL_IETF_ATTR_SYNTAX *a); +void OSSL_IETF_ATTR_SYNTAX_set0_policyAuthority(OSSL_IETF_ATTR_SYNTAX *a, + GENERAL_NAMES *names); + +int OSSL_IETF_ATTR_SYNTAX_get_value_num(const OSSL_IETF_ATTR_SYNTAX *a); +void *OSSL_IETF_ATTR_SYNTAX_get0_value(const OSSL_IETF_ATTR_SYNTAX *a, + int ind, int *type); +int OSSL_IETF_ATTR_SYNTAX_add1_value(OSSL_IETF_ATTR_SYNTAX *a, int type, + void *data); +int OSSL_IETF_ATTR_SYNTAX_print(BIO *bp, OSSL_IETF_ATTR_SYNTAX *a, int indent); + +struct TARGET_CERT_st { + OSSL_ISSUER_SERIAL *targetCertificate; + GENERAL_NAME *targetName; + OSSL_OBJECT_DIGEST_INFO *certDigestInfo; +}; + +typedef struct TARGET_CERT_st OSSL_TARGET_CERT; + +# define OSSL_TGT_TARGET_NAME 0 +# define OSSL_TGT_TARGET_GROUP 1 +# define OSSL_TGT_TARGET_CERT 2 + +typedef struct TARGET_st { + int type; + union { + GENERAL_NAME *targetName; + GENERAL_NAME *targetGroup; + OSSL_TARGET_CERT *targetCert; + } choice; +} OSSL_TARGET; + +typedef STACK_OF(OSSL_TARGET) OSSL_TARGETS; +typedef STACK_OF(OSSL_TARGETS) OSSL_TARGETING_INFORMATION; + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_TARGET, OSSL_TARGET, OSSL_TARGET) +#define sk_OSSL_TARGET_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_value(sk, idx) ((OSSL_TARGET *)OPENSSL_sk_value(ossl_check_const_OSSL_TARGET_sk_type(sk), (idx))) +#define sk_OSSL_TARGET_new(cmp) ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_new(ossl_check_OSSL_TARGET_compfunc_type(cmp))) +#define sk_OSSL_TARGET_new_null() ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_new_null()) +#define sk_OSSL_TARGET_new_reserve(cmp, n) ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_TARGET_compfunc_type(cmp), (n))) +#define sk_OSSL_TARGET_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_TARGET_sk_type(sk), (n)) +#define sk_OSSL_TARGET_free(sk) OPENSSL_sk_free(ossl_check_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_delete(sk, i) ((OSSL_TARGET *)OPENSSL_sk_delete(ossl_check_OSSL_TARGET_sk_type(sk), (i))) +#define sk_OSSL_TARGET_delete_ptr(sk, ptr) ((OSSL_TARGET *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr))) +#define sk_OSSL_TARGET_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr)) +#define sk_OSSL_TARGET_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr)) +#define sk_OSSL_TARGET_pop(sk) ((OSSL_TARGET *)OPENSSL_sk_pop(ossl_check_OSSL_TARGET_sk_type(sk))) +#define sk_OSSL_TARGET_shift(sk) ((OSSL_TARGET *)OPENSSL_sk_shift(ossl_check_OSSL_TARGET_sk_type(sk))) +#define sk_OSSL_TARGET_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_TARGET_sk_type(sk),ossl_check_OSSL_TARGET_freefunc_type(freefunc)) +#define sk_OSSL_TARGET_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr), (idx)) +#define sk_OSSL_TARGET_set(sk, idx, ptr) ((OSSL_TARGET *)OPENSSL_sk_set(ossl_check_OSSL_TARGET_sk_type(sk), (idx), ossl_check_OSSL_TARGET_type(ptr))) +#define sk_OSSL_TARGET_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr)) +#define sk_OSSL_TARGET_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr)) +#define sk_OSSL_TARGET_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr), pnum) +#define sk_OSSL_TARGET_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_dup(sk) ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_dup(ossl_check_const_OSSL_TARGET_sk_type(sk))) +#define sk_OSSL_TARGET_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_copyfunc_type(copyfunc), ossl_check_OSSL_TARGET_freefunc_type(freefunc))) +#define sk_OSSL_TARGET_set_cmp_func(sk, cmp) ((sk_OSSL_TARGET_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_compfunc_type(cmp))) + + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_TARGETS, OSSL_TARGETS, OSSL_TARGETS) +#define sk_OSSL_TARGETS_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_value(sk, idx) ((OSSL_TARGETS *)OPENSSL_sk_value(ossl_check_const_OSSL_TARGETS_sk_type(sk), (idx))) +#define sk_OSSL_TARGETS_new(cmp) ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_new(ossl_check_OSSL_TARGETS_compfunc_type(cmp))) +#define sk_OSSL_TARGETS_new_null() ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_new_null()) +#define sk_OSSL_TARGETS_new_reserve(cmp, n) ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_TARGETS_compfunc_type(cmp), (n))) +#define sk_OSSL_TARGETS_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_TARGETS_sk_type(sk), (n)) +#define sk_OSSL_TARGETS_free(sk) OPENSSL_sk_free(ossl_check_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_delete(sk, i) ((OSSL_TARGETS *)OPENSSL_sk_delete(ossl_check_OSSL_TARGETS_sk_type(sk), (i))) +#define sk_OSSL_TARGETS_delete_ptr(sk, ptr) ((OSSL_TARGETS *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr))) +#define sk_OSSL_TARGETS_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr)) +#define sk_OSSL_TARGETS_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr)) +#define sk_OSSL_TARGETS_pop(sk) ((OSSL_TARGETS *)OPENSSL_sk_pop(ossl_check_OSSL_TARGETS_sk_type(sk))) +#define sk_OSSL_TARGETS_shift(sk) ((OSSL_TARGETS *)OPENSSL_sk_shift(ossl_check_OSSL_TARGETS_sk_type(sk))) +#define sk_OSSL_TARGETS_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_TARGETS_sk_type(sk),ossl_check_OSSL_TARGETS_freefunc_type(freefunc)) +#define sk_OSSL_TARGETS_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr), (idx)) +#define sk_OSSL_TARGETS_set(sk, idx, ptr) ((OSSL_TARGETS *)OPENSSL_sk_set(ossl_check_OSSL_TARGETS_sk_type(sk), (idx), ossl_check_OSSL_TARGETS_type(ptr))) +#define sk_OSSL_TARGETS_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr)) +#define sk_OSSL_TARGETS_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr)) +#define sk_OSSL_TARGETS_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr), pnum) +#define sk_OSSL_TARGETS_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_dup(sk) ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_dup(ossl_check_const_OSSL_TARGETS_sk_type(sk))) +#define sk_OSSL_TARGETS_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_copyfunc_type(copyfunc), ossl_check_OSSL_TARGETS_freefunc_type(freefunc))) +#define sk_OSSL_TARGETS_set_cmp_func(sk, cmp) ((sk_OSSL_TARGETS_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_compfunc_type(cmp))) + + +DECLARE_ASN1_FUNCTIONS(OSSL_TARGET) +DECLARE_ASN1_FUNCTIONS(OSSL_TARGETS) +DECLARE_ASN1_FUNCTIONS(OSSL_TARGETING_INFORMATION) + +typedef STACK_OF(OSSL_ISSUER_SERIAL) OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX; +DECLARE_ASN1_FUNCTIONS(OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ISSUER_SERIAL, OSSL_ISSUER_SERIAL, OSSL_ISSUER_SERIAL) +#define sk_OSSL_ISSUER_SERIAL_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_value(sk, idx) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_value(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk), (idx))) +#define sk_OSSL_ISSUER_SERIAL_new(cmp) ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_new(ossl_check_OSSL_ISSUER_SERIAL_compfunc_type(cmp))) +#define sk_OSSL_ISSUER_SERIAL_new_null() ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ISSUER_SERIAL_new_reserve(cmp, n) ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ISSUER_SERIAL_compfunc_type(cmp), (n))) +#define sk_OSSL_ISSUER_SERIAL_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), (n)) +#define sk_OSSL_ISSUER_SERIAL_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_delete(sk, i) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_delete(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), (i))) +#define sk_OSSL_ISSUER_SERIAL_delete_ptr(sk, ptr) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr))) +#define sk_OSSL_ISSUER_SERIAL_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr)) +#define sk_OSSL_ISSUER_SERIAL_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr)) +#define sk_OSSL_ISSUER_SERIAL_pop(sk) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_pop(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk))) +#define sk_OSSL_ISSUER_SERIAL_shift(sk) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_shift(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk))) +#define sk_OSSL_ISSUER_SERIAL_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk),ossl_check_OSSL_ISSUER_SERIAL_freefunc_type(freefunc)) +#define sk_OSSL_ISSUER_SERIAL_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr), (idx)) +#define sk_OSSL_ISSUER_SERIAL_set(sk, idx, ptr) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_set(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), (idx), ossl_check_OSSL_ISSUER_SERIAL_type(ptr))) +#define sk_OSSL_ISSUER_SERIAL_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr)) +#define sk_OSSL_ISSUER_SERIAL_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr)) +#define sk_OSSL_ISSUER_SERIAL_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr), pnum) +#define sk_OSSL_ISSUER_SERIAL_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_dup(sk) ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk))) +#define sk_OSSL_ISSUER_SERIAL_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_copyfunc_type(copyfunc), ossl_check_OSSL_ISSUER_SERIAL_freefunc_type(freefunc))) +#define sk_OSSL_ISSUER_SERIAL_set_cmp_func(sk, cmp) ((sk_OSSL_ISSUER_SERIAL_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_compfunc_type(cmp))) + + +#endif diff --git a/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/include/openssl/x509_vfy.h b/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/include/openssl/x509_vfy.h index 29b0e147adcab1..c9bdc3b39d685d 100644 --- a/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/include/openssl/x509_vfy.h +++ b/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/include/openssl/x509_vfy.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/x509_vfy.h.in * - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -411,6 +411,7 @@ X509_LOOKUP_ctrl_ex((x), X509_L_ADD_STORE, (name), 0, NULL, \ # define X509_V_ERR_CA_CERT_MISSING_KEY_USAGE 92 # define X509_V_ERR_EXTENSIONS_REQUIRE_VERSION_3 93 # define X509_V_ERR_EC_KEY_EXPLICIT_PARAMS 94 +# define X509_V_ERR_RPK_UNTRUSTED 95 /* Certificate verify flags */ # ifndef OPENSSL_NO_DEPRECATED_1_1_0 @@ -491,71 +492,72 @@ int X509_OBJECT_set1_X509(X509_OBJECT *a, X509 *obj); X509_CRL *X509_OBJECT_get0_X509_CRL(const X509_OBJECT *a); int X509_OBJECT_set1_X509_CRL(X509_OBJECT *a, X509_CRL *obj); X509_STORE *X509_STORE_new(void); -void X509_STORE_free(X509_STORE *v); -int X509_STORE_lock(X509_STORE *ctx); -int X509_STORE_unlock(X509_STORE *ctx); -int X509_STORE_up_ref(X509_STORE *v); -STACK_OF(X509_OBJECT) *X509_STORE_get0_objects(const X509_STORE *v); -STACK_OF(X509) *X509_STORE_get1_all_certs(X509_STORE *st); -STACK_OF(X509) *X509_STORE_CTX_get1_certs(X509_STORE_CTX *st, +void X509_STORE_free(X509_STORE *xs); +int X509_STORE_lock(X509_STORE *xs); +int X509_STORE_unlock(X509_STORE *xs); +int X509_STORE_up_ref(X509_STORE *xs); +STACK_OF(X509_OBJECT) *X509_STORE_get0_objects(const X509_STORE *xs); +STACK_OF(X509_OBJECT) *X509_STORE_get1_objects(X509_STORE *xs); +STACK_OF(X509) *X509_STORE_get1_all_certs(X509_STORE *xs); +STACK_OF(X509) *X509_STORE_CTX_get1_certs(X509_STORE_CTX *xs, const X509_NAME *nm); STACK_OF(X509_CRL) *X509_STORE_CTX_get1_crls(const X509_STORE_CTX *st, const X509_NAME *nm); -int X509_STORE_set_flags(X509_STORE *ctx, unsigned long flags); -int X509_STORE_set_purpose(X509_STORE *ctx, int purpose); -int X509_STORE_set_trust(X509_STORE *ctx, int trust); -int X509_STORE_set1_param(X509_STORE *ctx, const X509_VERIFY_PARAM *pm); -X509_VERIFY_PARAM *X509_STORE_get0_param(const X509_STORE *ctx); +int X509_STORE_set_flags(X509_STORE *xs, unsigned long flags); +int X509_STORE_set_purpose(X509_STORE *xs, int purpose); +int X509_STORE_set_trust(X509_STORE *xs, int trust); +int X509_STORE_set1_param(X509_STORE *xs, const X509_VERIFY_PARAM *pm); +X509_VERIFY_PARAM *X509_STORE_get0_param(const X509_STORE *xs); -void X509_STORE_set_verify(X509_STORE *ctx, X509_STORE_CTX_verify_fn verify); +void X509_STORE_set_verify(X509_STORE *xs, X509_STORE_CTX_verify_fn verify); #define X509_STORE_set_verify_func(ctx, func) \ X509_STORE_set_verify((ctx),(func)) void X509_STORE_CTX_set_verify(X509_STORE_CTX *ctx, X509_STORE_CTX_verify_fn verify); -X509_STORE_CTX_verify_fn X509_STORE_get_verify(const X509_STORE *ctx); -void X509_STORE_set_verify_cb(X509_STORE *ctx, +X509_STORE_CTX_verify_fn X509_STORE_get_verify(const X509_STORE *xs); +void X509_STORE_set_verify_cb(X509_STORE *xs, X509_STORE_CTX_verify_cb verify_cb); # define X509_STORE_set_verify_cb_func(ctx,func) \ X509_STORE_set_verify_cb((ctx),(func)) -X509_STORE_CTX_verify_cb X509_STORE_get_verify_cb(const X509_STORE *ctx); -void X509_STORE_set_get_issuer(X509_STORE *ctx, +X509_STORE_CTX_verify_cb X509_STORE_get_verify_cb(const X509_STORE *xs); +void X509_STORE_set_get_issuer(X509_STORE *xs, X509_STORE_CTX_get_issuer_fn get_issuer); -X509_STORE_CTX_get_issuer_fn X509_STORE_get_get_issuer(const X509_STORE *ctx); -void X509_STORE_set_check_issued(X509_STORE *ctx, +X509_STORE_CTX_get_issuer_fn X509_STORE_get_get_issuer(const X509_STORE *xs); +void X509_STORE_set_check_issued(X509_STORE *xs, X509_STORE_CTX_check_issued_fn check_issued); -X509_STORE_CTX_check_issued_fn X509_STORE_get_check_issued(const X509_STORE *ctx); -void X509_STORE_set_check_revocation(X509_STORE *ctx, +X509_STORE_CTX_check_issued_fn X509_STORE_get_check_issued(const X509_STORE *s); +void X509_STORE_set_check_revocation(X509_STORE *xs, X509_STORE_CTX_check_revocation_fn check_revocation); X509_STORE_CTX_check_revocation_fn - X509_STORE_get_check_revocation(const X509_STORE *ctx); -void X509_STORE_set_get_crl(X509_STORE *ctx, + X509_STORE_get_check_revocation(const X509_STORE *xs); +void X509_STORE_set_get_crl(X509_STORE *xs, X509_STORE_CTX_get_crl_fn get_crl); -X509_STORE_CTX_get_crl_fn X509_STORE_get_get_crl(const X509_STORE *ctx); -void X509_STORE_set_check_crl(X509_STORE *ctx, +X509_STORE_CTX_get_crl_fn X509_STORE_get_get_crl(const X509_STORE *xs); +void X509_STORE_set_check_crl(X509_STORE *xs, X509_STORE_CTX_check_crl_fn check_crl); -X509_STORE_CTX_check_crl_fn X509_STORE_get_check_crl(const X509_STORE *ctx); -void X509_STORE_set_cert_crl(X509_STORE *ctx, +X509_STORE_CTX_check_crl_fn X509_STORE_get_check_crl(const X509_STORE *xs); +void X509_STORE_set_cert_crl(X509_STORE *xs, X509_STORE_CTX_cert_crl_fn cert_crl); -X509_STORE_CTX_cert_crl_fn X509_STORE_get_cert_crl(const X509_STORE *ctx); -void X509_STORE_set_check_policy(X509_STORE *ctx, +X509_STORE_CTX_cert_crl_fn X509_STORE_get_cert_crl(const X509_STORE *xs); +void X509_STORE_set_check_policy(X509_STORE *xs, X509_STORE_CTX_check_policy_fn check_policy); -X509_STORE_CTX_check_policy_fn X509_STORE_get_check_policy(const X509_STORE *ctx); -void X509_STORE_set_lookup_certs(X509_STORE *ctx, +X509_STORE_CTX_check_policy_fn X509_STORE_get_check_policy(const X509_STORE *s); +void X509_STORE_set_lookup_certs(X509_STORE *xs, X509_STORE_CTX_lookup_certs_fn lookup_certs); -X509_STORE_CTX_lookup_certs_fn X509_STORE_get_lookup_certs(const X509_STORE *ctx); -void X509_STORE_set_lookup_crls(X509_STORE *ctx, +X509_STORE_CTX_lookup_certs_fn X509_STORE_get_lookup_certs(const X509_STORE *s); +void X509_STORE_set_lookup_crls(X509_STORE *xs, X509_STORE_CTX_lookup_crls_fn lookup_crls); #define X509_STORE_set_lookup_crls_cb(ctx, func) \ X509_STORE_set_lookup_crls((ctx), (func)) -X509_STORE_CTX_lookup_crls_fn X509_STORE_get_lookup_crls(const X509_STORE *ctx); -void X509_STORE_set_cleanup(X509_STORE *ctx, +X509_STORE_CTX_lookup_crls_fn X509_STORE_get_lookup_crls(const X509_STORE *xs); +void X509_STORE_set_cleanup(X509_STORE *xs, X509_STORE_CTX_cleanup_fn cleanup); -X509_STORE_CTX_cleanup_fn X509_STORE_get_cleanup(const X509_STORE *ctx); +X509_STORE_CTX_cleanup_fn X509_STORE_get_cleanup(const X509_STORE *xs); #define X509_STORE_get_ex_new_index(l, p, newf, dupf, freef) \ CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_X509_STORE, l, p, newf, dupf, freef) -int X509_STORE_set_ex_data(X509_STORE *ctx, int idx, void *data); -void *X509_STORE_get_ex_data(const X509_STORE *ctx, int idx); +int X509_STORE_set_ex_data(X509_STORE *xs, int idx, void *data); +void *X509_STORE_get_ex_data(const X509_STORE *xs, int idx); X509_STORE_CTX *X509_STORE_CTX_new_ex(OSSL_LIB_CTX *libctx, const char *propq); X509_STORE_CTX *X509_STORE_CTX_new(void); @@ -565,11 +567,14 @@ int X509_STORE_CTX_get1_issuer(X509 **issuer, X509_STORE_CTX *ctx, X509 *x); void X509_STORE_CTX_free(X509_STORE_CTX *ctx); int X509_STORE_CTX_init(X509_STORE_CTX *ctx, X509_STORE *trust_store, X509 *target, STACK_OF(X509) *untrusted); +int X509_STORE_CTX_init_rpk(X509_STORE_CTX *ctx, X509_STORE *trust_store, + EVP_PKEY* rpk); void X509_STORE_CTX_set0_trusted_stack(X509_STORE_CTX *ctx, STACK_OF(X509) *sk); void X509_STORE_CTX_cleanup(X509_STORE_CTX *ctx); X509_STORE *X509_STORE_CTX_get0_store(const X509_STORE_CTX *ctx); X509 *X509_STORE_CTX_get0_cert(const X509_STORE_CTX *ctx); +EVP_PKEY *X509_STORE_CTX_get0_rpk(const X509_STORE_CTX *ctx); STACK_OF(X509)* X509_STORE_CTX_get0_untrusted(const X509_STORE_CTX *ctx); void X509_STORE_CTX_set0_untrusted(X509_STORE_CTX *ctx, STACK_OF(X509) *sk); void X509_STORE_CTX_set_verify_cb(X509_STORE_CTX *ctx, @@ -579,6 +584,8 @@ X509_STORE_CTX_verify_fn X509_STORE_CTX_get_verify(const X509_STORE_CTX *ctx); X509_STORE_CTX_get_issuer_fn X509_STORE_CTX_get_get_issuer(const X509_STORE_CTX *ctx); X509_STORE_CTX_check_issued_fn X509_STORE_CTX_get_check_issued(const X509_STORE_CTX *ctx); X509_STORE_CTX_check_revocation_fn X509_STORE_CTX_get_check_revocation(const X509_STORE_CTX *ctx); +void X509_STORE_CTX_set_get_crl(X509_STORE_CTX *ctx, + X509_STORE_CTX_get_crl_fn get_crl); X509_STORE_CTX_get_crl_fn X509_STORE_CTX_get_get_crl(const X509_STORE_CTX *ctx); X509_STORE_CTX_check_crl_fn X509_STORE_CTX_get_check_crl(const X509_STORE_CTX *ctx); X509_STORE_CTX_cert_crl_fn X509_STORE_CTX_get_cert_crl(const X509_STORE_CTX *ctx); @@ -600,7 +607,7 @@ X509_STORE_CTX_cleanup_fn X509_STORE_CTX_get_cleanup(const X509_STORE_CTX *ctx); # define X509_STORE_get1_crl X509_STORE_CTX_get1_crls #endif -X509_LOOKUP *X509_STORE_add_lookup(X509_STORE *v, X509_LOOKUP_METHOD *m); +X509_LOOKUP *X509_STORE_add_lookup(X509_STORE *xs, X509_LOOKUP_METHOD *m); X509_LOOKUP_METHOD *X509_LOOKUP_hash_dir(void); X509_LOOKUP_METHOD *X509_LOOKUP_file(void); X509_LOOKUP_METHOD *X509_LOOKUP_store(void); @@ -685,8 +692,8 @@ X509_LOOKUP_get_by_alias_fn X509_LOOKUP_meth_get_get_by_alias( const X509_LOOKUP_METHOD *method); -int X509_STORE_add_cert(X509_STORE *ctx, X509 *x); -int X509_STORE_add_crl(X509_STORE *ctx, X509_CRL *x); +int X509_STORE_add_cert(X509_STORE *xs, X509 *x); +int X509_STORE_add_crl(X509_STORE *xs, X509_CRL *x); int X509_STORE_CTX_get_by_subject(const X509_STORE_CTX *vs, X509_LOOKUP_TYPE type, @@ -730,23 +737,21 @@ void *X509_LOOKUP_get_method_data(const X509_LOOKUP *ctx); X509_STORE *X509_LOOKUP_get_store(const X509_LOOKUP *ctx); int X509_LOOKUP_shutdown(X509_LOOKUP *ctx); -int X509_STORE_load_file(X509_STORE *ctx, const char *file); -int X509_STORE_load_path(X509_STORE *ctx, const char *path); -int X509_STORE_load_store(X509_STORE *ctx, const char *store); -int X509_STORE_load_locations(X509_STORE *ctx, - const char *file, - const char *dir); -int X509_STORE_set_default_paths(X509_STORE *ctx); +int X509_STORE_load_file(X509_STORE *xs, const char *file); +int X509_STORE_load_path(X509_STORE *xs, const char *path); +int X509_STORE_load_store(X509_STORE *xs, const char *store); +int X509_STORE_load_locations(X509_STORE *s, const char *file, const char *dir); +int X509_STORE_set_default_paths(X509_STORE *xs); -int X509_STORE_load_file_ex(X509_STORE *ctx, const char *file, +int X509_STORE_load_file_ex(X509_STORE *xs, const char *file, OSSL_LIB_CTX *libctx, const char *propq); -int X509_STORE_load_store_ex(X509_STORE *ctx, const char *store, +int X509_STORE_load_store_ex(X509_STORE *xs, const char *store, OSSL_LIB_CTX *libctx, const char *propq); -int X509_STORE_load_locations_ex(X509_STORE *ctx, const char *file, - const char *dir, OSSL_LIB_CTX *libctx, - const char *propq); -int X509_STORE_set_default_paths_ex(X509_STORE *ctx, OSSL_LIB_CTX *libctx, - const char *propq); +int X509_STORE_load_locations_ex(X509_STORE *xs, + const char *file, const char *dir, + OSSL_LIB_CTX *libctx, const char *propq); +int X509_STORE_set_default_paths_ex(X509_STORE *xs, + OSSL_LIB_CTX *libctx, const char *propq); #define X509_STORE_CTX_get_ex_new_index(l, p, newf, dupf, freef) \ CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_X509_STORE_CTX, l, p, newf, dupf, freef) @@ -764,6 +769,7 @@ X509_STORE_CTX *X509_STORE_CTX_get0_parent_ctx(const X509_STORE_CTX *ctx); STACK_OF(X509) *X509_STORE_CTX_get0_chain(const X509_STORE_CTX *ctx); STACK_OF(X509) *X509_STORE_CTX_get1_chain(const X509_STORE_CTX *ctx); void X509_STORE_CTX_set_cert(X509_STORE_CTX *ctx, X509 *target); +void X509_STORE_CTX_set0_rpk(X509_STORE_CTX *ctx, EVP_PKEY *target); void X509_STORE_CTX_set0_verified_chain(X509_STORE_CTX *c, STACK_OF(X509) *sk); void X509_STORE_CTX_set0_crls(X509_STORE_CTX *ctx, STACK_OF(X509_CRL) *sk); int X509_STORE_CTX_set_purpose(X509_STORE_CTX *ctx, int purpose); @@ -773,6 +779,8 @@ int X509_STORE_CTX_purpose_inherit(X509_STORE_CTX *ctx, int def_purpose, void X509_STORE_CTX_set_flags(X509_STORE_CTX *ctx, unsigned long flags); void X509_STORE_CTX_set_time(X509_STORE_CTX *ctx, unsigned long flags, time_t t); +void X509_STORE_CTX_set_current_reasons(X509_STORE_CTX *ctx, + unsigned int current_reasons); X509_POLICY_TREE *X509_STORE_CTX_get0_policy_tree(const X509_STORE_CTX *ctx); int X509_STORE_CTX_get_explicit_policy(const X509_STORE_CTX *ctx); @@ -804,6 +812,7 @@ int X509_VERIFY_PARAM_clear_flags(X509_VERIFY_PARAM *param, unsigned long flags); unsigned long X509_VERIFY_PARAM_get_flags(const X509_VERIFY_PARAM *param); int X509_VERIFY_PARAM_set_purpose(X509_VERIFY_PARAM *param, int purpose); +int X509_VERIFY_PARAM_get_purpose(const X509_VERIFY_PARAM *param); int X509_VERIFY_PARAM_set_trust(X509_VERIFY_PARAM *param, int trust); void X509_VERIFY_PARAM_set_depth(X509_VERIFY_PARAM *param, int depth); void X509_VERIFY_PARAM_set_auth_level(X509_VERIFY_PARAM *param, int auth_level); diff --git a/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/include/openssl/x509v3.h b/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/include/openssl/x509v3.h index 20b67455f2061d..b8dabac35a4915 100644 --- a/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/include/openssl/x509v3.h +++ b/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/include/openssl/x509v3.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/x509v3.h.in * - * Copyright 1999-2023 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1999-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -25,6 +25,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -146,6 +149,11 @@ typedef struct BASIC_CONSTRAINTS_st { ASN1_INTEGER *pathlen; } BASIC_CONSTRAINTS; +typedef struct OSSL_BASIC_ATTR_CONSTRAINTS_st { + int authority; + ASN1_INTEGER *pathlen; +} OSSL_BASIC_ATTR_CONSTRAINTS; + typedef struct PKEY_USAGE_PERIOD_st { ASN1_GENERALIZEDTIME *notBefore; ASN1_GENERALIZEDTIME *notAfter; @@ -198,6 +206,8 @@ typedef struct ACCESS_DESCRIPTION_st { GENERAL_NAME *location; } ACCESS_DESCRIPTION; +int GENERAL_NAME_set1_X509_NAME(GENERAL_NAME **tgt, const X509_NAME *src); + SKM_DEFINE_STACK_OF_INTERNAL(ACCESS_DESCRIPTION, ACCESS_DESCRIPTION, ACCESS_DESCRIPTION) #define sk_ACCESS_DESCRIPTION_num(sk) OPENSSL_sk_num(ossl_check_const_ACCESS_DESCRIPTION_sk_type(sk)) #define sk_ACCESS_DESCRIPTION_value(sk, idx) ((ACCESS_DESCRIPTION *)OPENSSL_sk_value(ossl_check_const_ACCESS_DESCRIPTION_sk_type(sk), (idx))) @@ -294,6 +304,7 @@ typedef struct DIST_POINT_NAME_st { /* If relativename then this contains the full distribution point name */ X509_NAME *dpname; } DIST_POINT_NAME; +DECLARE_ASN1_DUP_FUNCTION(DIST_POINT_NAME) /* All existing reasons */ # define CRLDP_ALL_REASONS 0x807f @@ -659,15 +670,16 @@ struct ISSUING_DIST_POINT_st { # define EXFLAG_SAN_CRITICAL 0x80000 # define EXFLAG_NO_FINGERPRINT 0x100000 -# define KU_DIGITAL_SIGNATURE 0x0080 -# define KU_NON_REPUDIATION 0x0040 -# define KU_KEY_ENCIPHERMENT 0x0020 -# define KU_DATA_ENCIPHERMENT 0x0010 -# define KU_KEY_AGREEMENT 0x0008 -# define KU_KEY_CERT_SIGN 0x0004 -# define KU_CRL_SIGN 0x0002 -# define KU_ENCIPHER_ONLY 0x0001 -# define KU_DECIPHER_ONLY 0x8000 +/* https://datatracker.ietf.org/doc/html/rfc5280#section-4.2.1.3 */ +# define KU_DIGITAL_SIGNATURE X509v3_KU_DIGITAL_SIGNATURE +# define KU_NON_REPUDIATION X509v3_KU_NON_REPUDIATION +# define KU_KEY_ENCIPHERMENT X509v3_KU_KEY_ENCIPHERMENT +# define KU_DATA_ENCIPHERMENT X509v3_KU_DATA_ENCIPHERMENT +# define KU_KEY_AGREEMENT X509v3_KU_KEY_AGREEMENT +# define KU_KEY_CERT_SIGN X509v3_KU_KEY_CERT_SIGN +# define KU_CRL_SIGN X509v3_KU_CRL_SIGN +# define KU_ENCIPHER_ONLY X509v3_KU_ENCIPHER_ONLY +# define KU_DECIPHER_ONLY X509v3_KU_DECIPHER_ONLY # define NS_SSL_CLIENT 0x80 # define NS_SSL_SERVER 0x40 @@ -729,7 +741,7 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_PURPOSE, X509_PURPOSE, X509_PURPOSE) #define sk_X509_PURPOSE_set_cmp_func(sk, cmp) ((sk_X509_PURPOSE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_X509_PURPOSE_sk_type(sk), ossl_check_X509_PURPOSE_compfunc_type(cmp))) - +# define X509_PURPOSE_DEFAULT_ANY 0 # define X509_PURPOSE_SSL_CLIENT 1 # define X509_PURPOSE_SSL_SERVER 2 # define X509_PURPOSE_NS_SSL_SERVER 3 @@ -739,9 +751,10 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_PURPOSE, X509_PURPOSE, X509_PURPOSE) # define X509_PURPOSE_ANY 7 # define X509_PURPOSE_OCSP_HELPER 8 # define X509_PURPOSE_TIMESTAMP_SIGN 9 +# define X509_PURPOSE_CODE_SIGN 10 # define X509_PURPOSE_MIN 1 -# define X509_PURPOSE_MAX 9 +# define X509_PURPOSE_MAX 10 /* Flags for X509V3_EXT_print() */ @@ -767,6 +780,7 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_PURPOSE, X509_PURPOSE, X509_PURPOSE) # define X509V3_ADD_SILENT 0x10 DECLARE_ASN1_FUNCTIONS(BASIC_CONSTRAINTS) +DECLARE_ASN1_FUNCTIONS(OSSL_BASIC_ATTR_CONSTRAINTS) DECLARE_ASN1_FUNCTIONS(SXNET) DECLARE_ASN1_FUNCTIONS(SXNETID) @@ -976,7 +990,6 @@ int X509V3_extensions_print(BIO *out, const char *title, int X509_check_ca(X509 *x); int X509_check_purpose(X509 *x, int id, int ca); int X509_supported_extension(X509_EXTENSION *ex); -int X509_PURPOSE_set(int *p, int purpose); int X509_check_issued(X509 *issuer, X509 *subject); int X509_check_akid(const X509 *issuer, const AUTHORITY_KEYID *akid); void X509_set_proxy_flag(X509 *x); @@ -992,22 +1005,26 @@ const GENERAL_NAMES *X509_get0_authority_issuer(X509 *x); const ASN1_INTEGER *X509_get0_authority_serial(X509 *x); int X509_PURPOSE_get_count(void); -X509_PURPOSE *X509_PURPOSE_get0(int idx); +int X509_PURPOSE_get_unused_id(OSSL_LIB_CTX *libctx); int X509_PURPOSE_get_by_sname(const char *sname); int X509_PURPOSE_get_by_id(int id); int X509_PURPOSE_add(int id, int trust, int flags, int (*ck) (const X509_PURPOSE *, const X509 *, int), const char *name, const char *sname, void *arg); +void X509_PURPOSE_cleanup(void); + +X509_PURPOSE *X509_PURPOSE_get0(int idx); +int X509_PURPOSE_get_id(const X509_PURPOSE *); char *X509_PURPOSE_get0_name(const X509_PURPOSE *xp); char *X509_PURPOSE_get0_sname(const X509_PURPOSE *xp); int X509_PURPOSE_get_trust(const X509_PURPOSE *xp); -void X509_PURPOSE_cleanup(void); -int X509_PURPOSE_get_id(const X509_PURPOSE *); +int X509_PURPOSE_set(int *p, int purpose); STACK_OF(OPENSSL_STRING) *X509_get1_email(X509 *x); STACK_OF(OPENSSL_STRING) *X509_REQ_get1_email(X509_REQ *x); void X509_email_free(STACK_OF(OPENSSL_STRING) *sk); STACK_OF(OPENSSL_STRING) *X509_get1_ocsp(X509 *x); + /* Flags for X509_check_* functions */ /* @@ -1444,6 +1461,507 @@ const ASN1_PRINTABLESTRING *PROFESSION_INFO_get0_registrationNumber( void PROFESSION_INFO_set0_registrationNumber( PROFESSION_INFO *pi, ASN1_PRINTABLESTRING *rn); +int OSSL_GENERAL_NAMES_print(BIO *out, GENERAL_NAMES *gens, int indent); + +typedef STACK_OF(X509_ATTRIBUTE) OSSL_ATTRIBUTES_SYNTAX; +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTES_SYNTAX) + +typedef STACK_OF(USERNOTICE) OSSL_USER_NOTICE_SYNTAX; +DECLARE_ASN1_FUNCTIONS(OSSL_USER_NOTICE_SYNTAX) + +SKM_DEFINE_STACK_OF_INTERNAL(USERNOTICE, USERNOTICE, USERNOTICE) +#define sk_USERNOTICE_num(sk) OPENSSL_sk_num(ossl_check_const_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_value(sk, idx) ((USERNOTICE *)OPENSSL_sk_value(ossl_check_const_USERNOTICE_sk_type(sk), (idx))) +#define sk_USERNOTICE_new(cmp) ((STACK_OF(USERNOTICE) *)OPENSSL_sk_new(ossl_check_USERNOTICE_compfunc_type(cmp))) +#define sk_USERNOTICE_new_null() ((STACK_OF(USERNOTICE) *)OPENSSL_sk_new_null()) +#define sk_USERNOTICE_new_reserve(cmp, n) ((STACK_OF(USERNOTICE) *)OPENSSL_sk_new_reserve(ossl_check_USERNOTICE_compfunc_type(cmp), (n))) +#define sk_USERNOTICE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_USERNOTICE_sk_type(sk), (n)) +#define sk_USERNOTICE_free(sk) OPENSSL_sk_free(ossl_check_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_zero(sk) OPENSSL_sk_zero(ossl_check_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_delete(sk, i) ((USERNOTICE *)OPENSSL_sk_delete(ossl_check_USERNOTICE_sk_type(sk), (i))) +#define sk_USERNOTICE_delete_ptr(sk, ptr) ((USERNOTICE *)OPENSSL_sk_delete_ptr(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr))) +#define sk_USERNOTICE_push(sk, ptr) OPENSSL_sk_push(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr)) +#define sk_USERNOTICE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr)) +#define sk_USERNOTICE_pop(sk) ((USERNOTICE *)OPENSSL_sk_pop(ossl_check_USERNOTICE_sk_type(sk))) +#define sk_USERNOTICE_shift(sk) ((USERNOTICE *)OPENSSL_sk_shift(ossl_check_USERNOTICE_sk_type(sk))) +#define sk_USERNOTICE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_USERNOTICE_sk_type(sk),ossl_check_USERNOTICE_freefunc_type(freefunc)) +#define sk_USERNOTICE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr), (idx)) +#define sk_USERNOTICE_set(sk, idx, ptr) ((USERNOTICE *)OPENSSL_sk_set(ossl_check_USERNOTICE_sk_type(sk), (idx), ossl_check_USERNOTICE_type(ptr))) +#define sk_USERNOTICE_find(sk, ptr) OPENSSL_sk_find(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr)) +#define sk_USERNOTICE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr)) +#define sk_USERNOTICE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr), pnum) +#define sk_USERNOTICE_sort(sk) OPENSSL_sk_sort(ossl_check_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_dup(sk) ((STACK_OF(USERNOTICE) *)OPENSSL_sk_dup(ossl_check_const_USERNOTICE_sk_type(sk))) +#define sk_USERNOTICE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(USERNOTICE) *)OPENSSL_sk_deep_copy(ossl_check_const_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_copyfunc_type(copyfunc), ossl_check_USERNOTICE_freefunc_type(freefunc))) +#define sk_USERNOTICE_set_cmp_func(sk, cmp) ((sk_USERNOTICE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_compfunc_type(cmp))) + + +typedef struct OSSL_ROLE_SPEC_CERT_ID_st { + GENERAL_NAME *roleName; + GENERAL_NAME *roleCertIssuer; + ASN1_INTEGER *roleCertSerialNumber; + GENERAL_NAMES *roleCertLocator; +} OSSL_ROLE_SPEC_CERT_ID; + +DECLARE_ASN1_FUNCTIONS(OSSL_ROLE_SPEC_CERT_ID) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ROLE_SPEC_CERT_ID, OSSL_ROLE_SPEC_CERT_ID, OSSL_ROLE_SPEC_CERT_ID) +#define sk_OSSL_ROLE_SPEC_CERT_ID_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_value(sk, idx) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_value(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), (idx))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_new(cmp) ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_new(ossl_check_OSSL_ROLE_SPEC_CERT_ID_compfunc_type(cmp))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_new_null() ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ROLE_SPEC_CERT_ID_new_reserve(cmp, n) ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ROLE_SPEC_CERT_ID_compfunc_type(cmp), (n))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), (n)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_delete(sk, i) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_delete(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), (i))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_delete_ptr(sk, ptr) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_pop(sk) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_pop(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_shift(sk) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_shift(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk),ossl_check_OSSL_ROLE_SPEC_CERT_ID_freefunc_type(freefunc)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr), (idx)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_set(sk, idx, ptr) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_set(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), (idx), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr), pnum) +#define sk_OSSL_ROLE_SPEC_CERT_ID_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_dup(sk) ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_copyfunc_type(copyfunc), ossl_check_OSSL_ROLE_SPEC_CERT_ID_freefunc_type(freefunc))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_set_cmp_func(sk, cmp) ((sk_OSSL_ROLE_SPEC_CERT_ID_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_compfunc_type(cmp))) + + +typedef STACK_OF(OSSL_ROLE_SPEC_CERT_ID) OSSL_ROLE_SPEC_CERT_ID_SYNTAX; + +DECLARE_ASN1_FUNCTIONS(OSSL_ROLE_SPEC_CERT_ID_SYNTAX) +typedef struct OSSL_HASH_st { + X509_ALGOR *algorithmIdentifier; + ASN1_BIT_STRING *hashValue; +} OSSL_HASH; + +typedef struct OSSL_INFO_SYNTAX_POINTER_st { + GENERAL_NAMES *name; + OSSL_HASH *hash; +} OSSL_INFO_SYNTAX_POINTER; + +# define OSSL_INFO_SYNTAX_TYPE_CONTENT 0 +# define OSSL_INFO_SYNTAX_TYPE_POINTER 1 + +typedef struct OSSL_INFO_SYNTAX_st { + int type; + union { + ASN1_STRING *content; + OSSL_INFO_SYNTAX_POINTER *pointer; + } choice; +} OSSL_INFO_SYNTAX; + +typedef struct OSSL_PRIVILEGE_POLICY_ID_st { + ASN1_OBJECT *privilegePolicy; + OSSL_INFO_SYNTAX *privPolSyntax; +} OSSL_PRIVILEGE_POLICY_ID; + +typedef struct OSSL_ATTRIBUTE_DESCRIPTOR_st { + ASN1_OBJECT *identifier; + ASN1_STRING *attributeSyntax; + ASN1_UTF8STRING *name; + ASN1_UTF8STRING *description; + OSSL_PRIVILEGE_POLICY_ID *dominationRule; +} OSSL_ATTRIBUTE_DESCRIPTOR; + +DECLARE_ASN1_FUNCTIONS(OSSL_HASH) +DECLARE_ASN1_FUNCTIONS(OSSL_INFO_SYNTAX) +DECLARE_ASN1_FUNCTIONS(OSSL_INFO_SYNTAX_POINTER) +DECLARE_ASN1_FUNCTIONS(OSSL_PRIVILEGE_POLICY_ID) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_DESCRIPTOR) + +typedef struct OSSL_TIME_SPEC_ABSOLUTE_st { + ASN1_GENERALIZEDTIME *startTime; + ASN1_GENERALIZEDTIME *endTime; +} OSSL_TIME_SPEC_ABSOLUTE; + +typedef struct OSSL_DAY_TIME_st { + ASN1_INTEGER *hour; + ASN1_INTEGER *minute; + ASN1_INTEGER *second; +} OSSL_DAY_TIME; + +typedef struct OSSL_DAY_TIME_BAND_st { + OSSL_DAY_TIME *startDayTime; + OSSL_DAY_TIME *endDayTime; +} OSSL_DAY_TIME_BAND; + +# define OSSL_NAMED_DAY_TYPE_INT 0 +# define OSSL_NAMED_DAY_TYPE_BIT 1 +# define OSSL_NAMED_DAY_INT_SUN 1 +# define OSSL_NAMED_DAY_INT_MON 2 +# define OSSL_NAMED_DAY_INT_TUE 3 +# define OSSL_NAMED_DAY_INT_WED 4 +# define OSSL_NAMED_DAY_INT_THU 5 +# define OSSL_NAMED_DAY_INT_FRI 6 +# define OSSL_NAMED_DAY_INT_SAT 7 +# define OSSL_NAMED_DAY_BIT_SUN 0 +# define OSSL_NAMED_DAY_BIT_MON 1 +# define OSSL_NAMED_DAY_BIT_TUE 2 +# define OSSL_NAMED_DAY_BIT_WED 3 +# define OSSL_NAMED_DAY_BIT_THU 4 +# define OSSL_NAMED_DAY_BIT_FRI 5 +# define OSSL_NAMED_DAY_BIT_SAT 6 + +typedef struct OSSL_NAMED_DAY_st { + int type; + union { + ASN1_INTEGER *intNamedDays; + ASN1_BIT_STRING *bitNamedDays; + } choice; +} OSSL_NAMED_DAY; + +# define OSSL_TIME_SPEC_X_DAY_OF_FIRST 0 +# define OSSL_TIME_SPEC_X_DAY_OF_SECOND 1 +# define OSSL_TIME_SPEC_X_DAY_OF_THIRD 2 +# define OSSL_TIME_SPEC_X_DAY_OF_FOURTH 3 +# define OSSL_TIME_SPEC_X_DAY_OF_FIFTH 4 + +typedef struct OSSL_TIME_SPEC_X_DAY_OF_st { + int type; + union { + OSSL_NAMED_DAY *first; + OSSL_NAMED_DAY *second; + OSSL_NAMED_DAY *third; + OSSL_NAMED_DAY *fourth; + OSSL_NAMED_DAY *fifth; + } choice; +} OSSL_TIME_SPEC_X_DAY_OF; + +# define OSSL_TIME_SPEC_DAY_TYPE_INT 0 +# define OSSL_TIME_SPEC_DAY_TYPE_BIT 1 +# define OSSL_TIME_SPEC_DAY_TYPE_DAY_OF 2 +# define OSSL_TIME_SPEC_DAY_BIT_SUN 0 +# define OSSL_TIME_SPEC_DAY_BIT_MON 1 +# define OSSL_TIME_SPEC_DAY_BIT_TUE 2 +# define OSSL_TIME_SPEC_DAY_BIT_WED 3 +# define OSSL_TIME_SPEC_DAY_BIT_THU 4 +# define OSSL_TIME_SPEC_DAY_BIT_FRI 5 +# define OSSL_TIME_SPEC_DAY_BIT_SAT 6 +# define OSSL_TIME_SPEC_DAY_INT_SUN 1 +# define OSSL_TIME_SPEC_DAY_INT_MON 2 +# define OSSL_TIME_SPEC_DAY_INT_TUE 3 +# define OSSL_TIME_SPEC_DAY_INT_WED 4 +# define OSSL_TIME_SPEC_DAY_INT_THU 5 +# define OSSL_TIME_SPEC_DAY_INT_FRI 6 +# define OSSL_TIME_SPEC_DAY_INT_SAT 7 + +typedef struct OSSL_TIME_SPEC_DAY_st { + int type; + union { + STACK_OF(ASN1_INTEGER) *intDay; + ASN1_BIT_STRING *bitDay; + OSSL_TIME_SPEC_X_DAY_OF *dayOf; + } choice; +} OSSL_TIME_SPEC_DAY; + +# define OSSL_TIME_SPEC_WEEKS_TYPE_ALL 0 +# define OSSL_TIME_SPEC_WEEKS_TYPE_INT 1 +# define OSSL_TIME_SPEC_WEEKS_TYPE_BIT 2 +# define OSSL_TIME_SPEC_BIT_WEEKS_1 0 +# define OSSL_TIME_SPEC_BIT_WEEKS_2 1 +# define OSSL_TIME_SPEC_BIT_WEEKS_3 2 +# define OSSL_TIME_SPEC_BIT_WEEKS_4 3 +# define OSSL_TIME_SPEC_BIT_WEEKS_5 4 + +typedef struct OSSL_TIME_SPEC_WEEKS_st { + int type; + union { + ASN1_NULL *allWeeks; + STACK_OF(ASN1_INTEGER) *intWeek; + ASN1_BIT_STRING *bitWeek; + } choice; +} OSSL_TIME_SPEC_WEEKS; + +# define OSSL_TIME_SPEC_MONTH_TYPE_ALL 0 +# define OSSL_TIME_SPEC_MONTH_TYPE_INT 1 +# define OSSL_TIME_SPEC_MONTH_TYPE_BIT 2 +# define OSSL_TIME_SPEC_INT_MONTH_JAN 1 +# define OSSL_TIME_SPEC_INT_MONTH_FEB 2 +# define OSSL_TIME_SPEC_INT_MONTH_MAR 3 +# define OSSL_TIME_SPEC_INT_MONTH_APR 4 +# define OSSL_TIME_SPEC_INT_MONTH_MAY 5 +# define OSSL_TIME_SPEC_INT_MONTH_JUN 6 +# define OSSL_TIME_SPEC_INT_MONTH_JUL 7 +# define OSSL_TIME_SPEC_INT_MONTH_AUG 8 +# define OSSL_TIME_SPEC_INT_MONTH_SEP 9 +# define OSSL_TIME_SPEC_INT_MONTH_OCT 10 +# define OSSL_TIME_SPEC_INT_MONTH_NOV 11 +# define OSSL_TIME_SPEC_INT_MONTH_DEC 12 +# define OSSL_TIME_SPEC_BIT_MONTH_JAN 0 +# define OSSL_TIME_SPEC_BIT_MONTH_FEB 1 +# define OSSL_TIME_SPEC_BIT_MONTH_MAR 2 +# define OSSL_TIME_SPEC_BIT_MONTH_APR 3 +# define OSSL_TIME_SPEC_BIT_MONTH_MAY 4 +# define OSSL_TIME_SPEC_BIT_MONTH_JUN 5 +# define OSSL_TIME_SPEC_BIT_MONTH_JUL 6 +# define OSSL_TIME_SPEC_BIT_MONTH_AUG 7 +# define OSSL_TIME_SPEC_BIT_MONTH_SEP 8 +# define OSSL_TIME_SPEC_BIT_MONTH_OCT 9 +# define OSSL_TIME_SPEC_BIT_MONTH_NOV 10 +# define OSSL_TIME_SPEC_BIT_MONTH_DEC 11 + +typedef struct OSSL_TIME_SPEC_MONTH_st { + int type; + union { + ASN1_NULL *allMonths; + STACK_OF(ASN1_INTEGER) *intMonth; + ASN1_BIT_STRING *bitMonth; + } choice; +} OSSL_TIME_SPEC_MONTH; + +typedef struct OSSL_TIME_PERIOD_st { + STACK_OF(OSSL_DAY_TIME_BAND) *timesOfDay; + OSSL_TIME_SPEC_DAY *days; + OSSL_TIME_SPEC_WEEKS *weeks; + OSSL_TIME_SPEC_MONTH *months; + STACK_OF(ASN1_INTEGER) *years; +} OSSL_TIME_PERIOD; + +# define OSSL_TIME_SPEC_TIME_TYPE_ABSOLUTE 0 +# define OSSL_TIME_SPEC_TIME_TYPE_PERIODIC 1 + +typedef struct OSSL_TIME_SPEC_TIME_st { + int type; + union { + OSSL_TIME_SPEC_ABSOLUTE *absolute; + STACK_OF(OSSL_TIME_PERIOD) *periodic; + } choice; +} OSSL_TIME_SPEC_TIME; + +typedef struct OSSL_TIME_SPEC_st { + OSSL_TIME_SPEC_TIME *time; + ASN1_BOOLEAN notThisTime; + ASN1_INTEGER *timeZone; +} OSSL_TIME_SPEC; + +DECLARE_ASN1_FUNCTIONS(OSSL_DAY_TIME) +DECLARE_ASN1_FUNCTIONS(OSSL_DAY_TIME_BAND) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_DAY) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_WEEKS) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_MONTH) +DECLARE_ASN1_FUNCTIONS(OSSL_NAMED_DAY) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_X_DAY_OF) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_ABSOLUTE) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_TIME) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_PERIOD) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_TIME_PERIOD, OSSL_TIME_PERIOD, OSSL_TIME_PERIOD) +#define sk_OSSL_TIME_PERIOD_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_value(sk, idx) ((OSSL_TIME_PERIOD *)OPENSSL_sk_value(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk), (idx))) +#define sk_OSSL_TIME_PERIOD_new(cmp) ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_new(ossl_check_OSSL_TIME_PERIOD_compfunc_type(cmp))) +#define sk_OSSL_TIME_PERIOD_new_null() ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_new_null()) +#define sk_OSSL_TIME_PERIOD_new_reserve(cmp, n) ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_TIME_PERIOD_compfunc_type(cmp), (n))) +#define sk_OSSL_TIME_PERIOD_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), (n)) +#define sk_OSSL_TIME_PERIOD_free(sk) OPENSSL_sk_free(ossl_check_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_delete(sk, i) ((OSSL_TIME_PERIOD *)OPENSSL_sk_delete(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), (i))) +#define sk_OSSL_TIME_PERIOD_delete_ptr(sk, ptr) ((OSSL_TIME_PERIOD *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr))) +#define sk_OSSL_TIME_PERIOD_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr)) +#define sk_OSSL_TIME_PERIOD_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr)) +#define sk_OSSL_TIME_PERIOD_pop(sk) ((OSSL_TIME_PERIOD *)OPENSSL_sk_pop(ossl_check_OSSL_TIME_PERIOD_sk_type(sk))) +#define sk_OSSL_TIME_PERIOD_shift(sk) ((OSSL_TIME_PERIOD *)OPENSSL_sk_shift(ossl_check_OSSL_TIME_PERIOD_sk_type(sk))) +#define sk_OSSL_TIME_PERIOD_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_TIME_PERIOD_sk_type(sk),ossl_check_OSSL_TIME_PERIOD_freefunc_type(freefunc)) +#define sk_OSSL_TIME_PERIOD_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr), (idx)) +#define sk_OSSL_TIME_PERIOD_set(sk, idx, ptr) ((OSSL_TIME_PERIOD *)OPENSSL_sk_set(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), (idx), ossl_check_OSSL_TIME_PERIOD_type(ptr))) +#define sk_OSSL_TIME_PERIOD_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr)) +#define sk_OSSL_TIME_PERIOD_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr)) +#define sk_OSSL_TIME_PERIOD_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr), pnum) +#define sk_OSSL_TIME_PERIOD_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_dup(sk) ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_dup(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk))) +#define sk_OSSL_TIME_PERIOD_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_copyfunc_type(copyfunc), ossl_check_OSSL_TIME_PERIOD_freefunc_type(freefunc))) +#define sk_OSSL_TIME_PERIOD_set_cmp_func(sk, cmp) ((sk_OSSL_TIME_PERIOD_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_compfunc_type(cmp))) + + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_DAY_TIME_BAND, OSSL_DAY_TIME_BAND, OSSL_DAY_TIME_BAND) +#define sk_OSSL_DAY_TIME_BAND_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_value(sk, idx) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_value(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk), (idx))) +#define sk_OSSL_DAY_TIME_BAND_new(cmp) ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_new(ossl_check_OSSL_DAY_TIME_BAND_compfunc_type(cmp))) +#define sk_OSSL_DAY_TIME_BAND_new_null() ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_new_null()) +#define sk_OSSL_DAY_TIME_BAND_new_reserve(cmp, n) ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_DAY_TIME_BAND_compfunc_type(cmp), (n))) +#define sk_OSSL_DAY_TIME_BAND_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), (n)) +#define sk_OSSL_DAY_TIME_BAND_free(sk) OPENSSL_sk_free(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_delete(sk, i) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_delete(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), (i))) +#define sk_OSSL_DAY_TIME_BAND_delete_ptr(sk, ptr) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr))) +#define sk_OSSL_DAY_TIME_BAND_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr)) +#define sk_OSSL_DAY_TIME_BAND_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr)) +#define sk_OSSL_DAY_TIME_BAND_pop(sk) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_pop(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk))) +#define sk_OSSL_DAY_TIME_BAND_shift(sk) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_shift(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk))) +#define sk_OSSL_DAY_TIME_BAND_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk),ossl_check_OSSL_DAY_TIME_BAND_freefunc_type(freefunc)) +#define sk_OSSL_DAY_TIME_BAND_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr), (idx)) +#define sk_OSSL_DAY_TIME_BAND_set(sk, idx, ptr) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_set(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), (idx), ossl_check_OSSL_DAY_TIME_BAND_type(ptr))) +#define sk_OSSL_DAY_TIME_BAND_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr)) +#define sk_OSSL_DAY_TIME_BAND_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr)) +#define sk_OSSL_DAY_TIME_BAND_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr), pnum) +#define sk_OSSL_DAY_TIME_BAND_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_dup(sk) ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_dup(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk))) +#define sk_OSSL_DAY_TIME_BAND_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_copyfunc_type(copyfunc), ossl_check_OSSL_DAY_TIME_BAND_freefunc_type(freefunc))) +#define sk_OSSL_DAY_TIME_BAND_set_cmp_func(sk, cmp) ((sk_OSSL_DAY_TIME_BAND_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_compfunc_type(cmp))) + + +/* Attribute Type and Value */ +typedef struct atav_st { + ASN1_OBJECT *type; + ASN1_TYPE *value; +} OSSL_ATAV; + +typedef struct ATTRIBUTE_TYPE_MAPPING_st { + ASN1_OBJECT *local; + ASN1_OBJECT *remote; +} OSSL_ATTRIBUTE_TYPE_MAPPING; + +typedef struct ATTRIBUTE_VALUE_MAPPING_st { + OSSL_ATAV *local; + OSSL_ATAV *remote; +} OSSL_ATTRIBUTE_VALUE_MAPPING; + +# define OSSL_ATTR_MAP_TYPE 0 +# define OSSL_ATTR_MAP_VALUE 1 + +typedef struct ATTRIBUTE_MAPPING_st { + int type; + union { + OSSL_ATTRIBUTE_TYPE_MAPPING *typeMappings; + OSSL_ATTRIBUTE_VALUE_MAPPING *typeValueMappings; + } choice; +} OSSL_ATTRIBUTE_MAPPING; + +typedef STACK_OF(OSSL_ATTRIBUTE_MAPPING) OSSL_ATTRIBUTE_MAPPINGS; +DECLARE_ASN1_FUNCTIONS(OSSL_ATAV) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_TYPE_MAPPING) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_VALUE_MAPPING) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_MAPPING) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_MAPPINGS) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ATTRIBUTE_MAPPING, OSSL_ATTRIBUTE_MAPPING, OSSL_ATTRIBUTE_MAPPING) +#define sk_OSSL_ATTRIBUTE_MAPPING_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_value(sk, idx) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_value(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), (idx))) +#define sk_OSSL_ATTRIBUTE_MAPPING_new(cmp) ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_new(ossl_check_OSSL_ATTRIBUTE_MAPPING_compfunc_type(cmp))) +#define sk_OSSL_ATTRIBUTE_MAPPING_new_null() ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ATTRIBUTE_MAPPING_new_reserve(cmp, n) ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ATTRIBUTE_MAPPING_compfunc_type(cmp), (n))) +#define sk_OSSL_ATTRIBUTE_MAPPING_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), (n)) +#define sk_OSSL_ATTRIBUTE_MAPPING_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_delete(sk, i) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_delete(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), (i))) +#define sk_OSSL_ATTRIBUTE_MAPPING_delete_ptr(sk, ptr) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr))) +#define sk_OSSL_ATTRIBUTE_MAPPING_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr)) +#define sk_OSSL_ATTRIBUTE_MAPPING_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr)) +#define sk_OSSL_ATTRIBUTE_MAPPING_pop(sk) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_pop(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk))) +#define sk_OSSL_ATTRIBUTE_MAPPING_shift(sk) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_shift(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk))) +#define sk_OSSL_ATTRIBUTE_MAPPING_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk),ossl_check_OSSL_ATTRIBUTE_MAPPING_freefunc_type(freefunc)) +#define sk_OSSL_ATTRIBUTE_MAPPING_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr), (idx)) +#define sk_OSSL_ATTRIBUTE_MAPPING_set(sk, idx, ptr) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_set(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), (idx), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr))) +#define sk_OSSL_ATTRIBUTE_MAPPING_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr)) +#define sk_OSSL_ATTRIBUTE_MAPPING_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr)) +#define sk_OSSL_ATTRIBUTE_MAPPING_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr), pnum) +#define sk_OSSL_ATTRIBUTE_MAPPING_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_dup(sk) ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk))) +#define sk_OSSL_ATTRIBUTE_MAPPING_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_copyfunc_type(copyfunc), ossl_check_OSSL_ATTRIBUTE_MAPPING_freefunc_type(freefunc))) +#define sk_OSSL_ATTRIBUTE_MAPPING_set_cmp_func(sk, cmp) ((sk_OSSL_ATTRIBUTE_MAPPING_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_compfunc_type(cmp))) + + +# define OSSL_AAA_ATTRIBUTE_TYPE 0 +# define OSSL_AAA_ATTRIBUTE_VALUES 1 + +typedef struct ALLOWED_ATTRIBUTES_CHOICE_st { + int type; + union { + ASN1_OBJECT *attributeType; + X509_ATTRIBUTE *attributeTypeandValues; + } choice; +} OSSL_ALLOWED_ATTRIBUTES_CHOICE; + +typedef struct ALLOWED_ATTRIBUTES_ITEM_st { + STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *attributes; + GENERAL_NAME *holderDomain; +} OSSL_ALLOWED_ATTRIBUTES_ITEM; + +typedef STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) OSSL_ALLOWED_ATTRIBUTES_SYNTAX; + +DECLARE_ASN1_FUNCTIONS(OSSL_ALLOWED_ATTRIBUTES_CHOICE) +DECLARE_ASN1_FUNCTIONS(OSSL_ALLOWED_ATTRIBUTES_ITEM) +DECLARE_ASN1_FUNCTIONS(OSSL_ALLOWED_ATTRIBUTES_SYNTAX) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ALLOWED_ATTRIBUTES_CHOICE, OSSL_ALLOWED_ATTRIBUTES_CHOICE, OSSL_ALLOWED_ATTRIBUTES_CHOICE) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_value(sk, idx) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_value(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), (idx))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_new(cmp) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_new(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_compfunc_type(cmp))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_new_null() ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_new_reserve(cmp, n) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_compfunc_type(cmp), (n))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), (n)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_delete(sk, i) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_delete(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), (i))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_delete_ptr(sk, ptr) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_pop(sk) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_pop(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_shift(sk) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_shift(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk),ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_freefunc_type(freefunc)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr), (idx)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_set(sk, idx, ptr) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_set(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), (idx), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr), pnum) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_dup(sk) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_copyfunc_type(copyfunc), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_freefunc_type(freefunc))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_set_cmp_func(sk, cmp) ((sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_compfunc_type(cmp))) + + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ALLOWED_ATTRIBUTES_ITEM, OSSL_ALLOWED_ATTRIBUTES_ITEM, OSSL_ALLOWED_ATTRIBUTES_ITEM) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_value(sk, idx) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_value(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), (idx))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_new(cmp) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_new(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_compfunc_type(cmp))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_new_null() ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_new_reserve(cmp, n) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_compfunc_type(cmp), (n))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), (n)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_delete(sk, i) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_delete(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), (i))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_delete_ptr(sk, ptr) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_pop(sk) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_pop(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_shift(sk) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_shift(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk),ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_freefunc_type(freefunc)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr), (idx)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_set(sk, idx, ptr) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_set(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), (idx), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr), pnum) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_dup(sk) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_copyfunc_type(copyfunc), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_freefunc_type(freefunc))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_set_cmp_func(sk, cmp) ((sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_compfunc_type(cmp))) + + +typedef struct AA_DIST_POINT_st { + DIST_POINT_NAME *distpoint; + ASN1_BIT_STRING *reasons; + int dp_reasons; + ASN1_BOOLEAN indirectCRL; + ASN1_BOOLEAN containsUserAttributeCerts; + ASN1_BOOLEAN containsAACerts; + ASN1_BOOLEAN containsSOAPublicKeyCerts; +} OSSL_AA_DIST_POINT; + +DECLARE_ASN1_FUNCTIONS(OSSL_AA_DIST_POINT) + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/include/progs.h b/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/include/progs.h index be55f61503d405..1b62ec37dec130 100644 --- a/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/include/progs.h +++ b/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/include/progs.h @@ -56,6 +56,7 @@ extern int s_client_main(int argc, char *argv[]); extern int s_server_main(int argc, char *argv[]); extern int s_time_main(int argc, char *argv[]); extern int sess_id_main(int argc, char *argv[]); +extern int skeyutl_main(int argc, char *argv[]); extern int smime_main(int argc, char *argv[]); extern int speed_main(int argc, char *argv[]); extern int spkac_main(int argc, char *argv[]); @@ -110,6 +111,7 @@ extern const OPTIONS s_client_options[]; extern const OPTIONS s_server_options[]; extern const OPTIONS s_time_options[]; extern const OPTIONS sess_id_options[]; +extern const OPTIONS skeyutl_options[]; extern const OPTIONS smime_options[]; extern const OPTIONS speed_options[]; extern const OPTIONS spkac_options[]; diff --git a/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/openssl-cl.gypi b/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/openssl-cl.gypi index 235d0cac01e4c0..0a31a94ea4d4f1 100644 --- a/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/openssl-cl.gypi +++ b/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/openssl-cl.gypi @@ -82,6 +82,7 @@ 'openssl/apps/s_server.c', 'openssl/apps/s_time.c', 'openssl/apps/sess_id.c', + 'openssl/apps/skeyutl.c', 'openssl/apps/smime.c', 'openssl/apps/speed.c', 'openssl/apps/spkac.c', @@ -97,12 +98,14 @@ 'openssl/apps/lib/app_rand.c', 'openssl/apps/lib/app_x509.c', 'openssl/apps/lib/apps.c', + 'openssl/apps/lib/apps_opt_printf.c', 'openssl/apps/lib/apps_ui.c', 'openssl/apps/lib/columns.c', 'openssl/apps/lib/engine.c', 'openssl/apps/lib/engine_loader.c', 'openssl/apps/lib/fmt.c', 'openssl/apps/lib/http_server.c', + 'openssl/apps/lib/log.c', 'openssl/apps/lib/names.c', 'openssl/apps/lib/opt.c', 'openssl/apps/lib/s_cb.c', diff --git a/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/openssl-fips.gypi b/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/openssl-fips.gypi index d7a8a61595a09a..f8011a09b7bff6 100644 --- a/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/openssl-fips.gypi +++ b/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/openssl-fips.gypi @@ -96,14 +96,15 @@ 'openssl/crypto/evp/kem.c', 'openssl/crypto/evp/keymgmt_lib.c', 'openssl/crypto/evp/keymgmt_meth.c', - 'openssl/crypto/evp/m_sigver.c', 'openssl/crypto/evp/mac_lib.c', 'openssl/crypto/evp/mac_meth.c', 'openssl/crypto/evp/p_lib.c', 'openssl/crypto/evp/pmeth_check.c', 'openssl/crypto/evp/pmeth_gn.c', 'openssl/crypto/evp/pmeth_lib.c', + 'openssl/crypto/evp/s_lib.c', 'openssl/crypto/evp/signature.c', + 'openssl/crypto/evp/skeymgmt_meth.c', 'openssl/crypto/ffc/ffc_backend.c', 'openssl/crypto/ffc/ffc_dh.c', 'openssl/crypto/ffc/ffc_key_generate.c', @@ -111,6 +112,8 @@ 'openssl/crypto/ffc/ffc_params.c', 'openssl/crypto/ffc/ffc_params_generate.c', 'openssl/crypto/ffc/ffc_params_validate.c', + 'openssl/crypto/hashtable/hashfunc.c', + 'openssl/crypto/hashtable/hashtable.c', 'openssl/crypto/hmac/hmac.c', 'openssl/crypto/lhash/lhash.c', 'openssl/crypto/asn1_dsa.c', @@ -140,6 +143,16 @@ 'openssl/crypto/threads_none.c', 'openssl/crypto/threads_pthread.c', 'openssl/crypto/threads_win.c', + 'openssl/crypto/time.c', + 'openssl/crypto/ml_dsa/ml_dsa_encoders.c', + 'openssl/crypto/ml_dsa/ml_dsa_key.c', + 'openssl/crypto/ml_dsa/ml_dsa_key_compress.c', + 'openssl/crypto/ml_dsa/ml_dsa_matrix.c', + 'openssl/crypto/ml_dsa/ml_dsa_ntt.c', + 'openssl/crypto/ml_dsa/ml_dsa_params.c', + 'openssl/crypto/ml_dsa/ml_dsa_sample.c', + 'openssl/crypto/ml_dsa/ml_dsa_sign.c', + 'openssl/crypto/ml_kem/ml_kem.c', 'openssl/crypto/modes/cbc128.c', 'openssl/crypto/modes/ccm128.c', 'openssl/crypto/modes/cfb128.c', @@ -148,6 +161,7 @@ 'openssl/crypto/modes/ofb128.c', 'openssl/crypto/modes/wrap128.c', 'openssl/crypto/modes/xts128.c', + 'openssl/crypto/modes/xts128gb.c', 'openssl/crypto/property/defn_cache.c', 'openssl/crypto/property/property.c', 'openssl/crypto/property/property_parse.c', @@ -176,7 +190,23 @@ 'openssl/crypto/sha/sha256.c', 'openssl/crypto/sha/sha3.c', 'openssl/crypto/sha/sha512.c', + 'openssl/crypto/slh_dsa/slh_adrs.c', + 'openssl/crypto/slh_dsa/slh_dsa.c', + 'openssl/crypto/slh_dsa/slh_dsa_hash_ctx.c', + 'openssl/crypto/slh_dsa/slh_dsa_key.c', + 'openssl/crypto/slh_dsa/slh_fors.c', + 'openssl/crypto/slh_dsa/slh_hash.c', + 'openssl/crypto/slh_dsa/slh_hypertree.c', + 'openssl/crypto/slh_dsa/slh_params.c', + 'openssl/crypto/slh_dsa/slh_wots.c', + 'openssl/crypto/slh_dsa/slh_xmss.c', 'openssl/crypto/stack/stack.c', + 'openssl/crypto/thread/arch/thread_none.c', + 'openssl/crypto/thread/arch/thread_posix.c', + 'openssl/crypto/thread/arch/thread_win.c', + 'openssl/crypto/thread/api.c', + 'openssl/crypto/thread/arch.c', + 'openssl/crypto/thread/internal.c', 'openssl/providers/common/der/der_rsa_sig.c', 'openssl/providers/common/bio_prov.c', 'openssl/providers/common/capabilities.c', @@ -185,6 +215,7 @@ 'openssl/providers/common/provider_util.c', 'openssl/providers/common/securitycheck.c', 'openssl/providers/common/securitycheck_fips.c', + 'openssl/providers/fips/fipsindicator.c', 'openssl/providers/fips/fipsprov.c', 'openssl/providers/fips/self_test.c', 'openssl/providers/fips/self_test_kats.c', @@ -222,6 +253,8 @@ 'openssl/providers/implementations/kdfs/sskdf.c', 'openssl/providers/implementations/kdfs/tls1_prf.c', 'openssl/providers/implementations/kdfs/x942kdf.c', + 'openssl/providers/implementations/kem/ml_kem_kem.c', + 'openssl/providers/implementations/kem/mlx_kem.c', 'openssl/providers/implementations/kem/rsa_kem.c', 'openssl/providers/implementations/keymgmt/dh_kmgmt.c', 'openssl/providers/implementations/keymgmt/dsa_kmgmt.c', @@ -229,29 +262,39 @@ 'openssl/providers/implementations/keymgmt/ecx_kmgmt.c', 'openssl/providers/implementations/keymgmt/kdf_legacy_kmgmt.c', 'openssl/providers/implementations/keymgmt/mac_legacy_kmgmt.c', + 'openssl/providers/implementations/keymgmt/ml_dsa_kmgmt.c', + 'openssl/providers/implementations/keymgmt/ml_kem_kmgmt.c', + 'openssl/providers/implementations/keymgmt/mlx_kmgmt.c', 'openssl/providers/implementations/keymgmt/rsa_kmgmt.c', + 'openssl/providers/implementations/keymgmt/slh_dsa_kmgmt.c', 'openssl/providers/implementations/macs/cmac_prov.c', 'openssl/providers/implementations/macs/gmac_prov.c', 'openssl/providers/implementations/macs/hmac_prov.c', 'openssl/providers/implementations/macs/kmac_prov.c', - 'openssl/providers/implementations/rands/crngt.c', 'openssl/providers/implementations/rands/drbg.c', 'openssl/providers/implementations/rands/drbg_ctr.c', 'openssl/providers/implementations/rands/drbg_hash.c', 'openssl/providers/implementations/rands/drbg_hmac.c', + 'openssl/providers/implementations/rands/fips_crng_test.c', 'openssl/providers/implementations/rands/test_rng.c', 'openssl/providers/implementations/signature/dsa_sig.c', 'openssl/providers/implementations/signature/ecdsa_sig.c', 'openssl/providers/implementations/signature/eddsa_sig.c', 'openssl/providers/implementations/signature/mac_legacy_sig.c', + 'openssl/providers/implementations/signature/ml_dsa_sig.c', 'openssl/providers/implementations/signature/rsa_sig.c', - 'openssl/ssl/s3_cbc.c', + 'openssl/providers/implementations/signature/slh_dsa_sig.c', + 'openssl/providers/implementations/skeymgmt/aes_skmgmt.c', + 'openssl/providers/implementations/skeymgmt/generic.c', + 'openssl/ssl/record/methods/ssl3_cbc.c', 'openssl/providers/common/der/der_dsa_key.c', 'openssl/providers/common/der/der_dsa_sig.c', 'openssl/providers/common/der/der_ec_key.c', 'openssl/providers/common/der/der_ec_sig.c', 'openssl/providers/common/der/der_ecx_key.c', + 'openssl/providers/common/der/der_ml_dsa_key.c', 'openssl/providers/common/der/der_rsa_key.c', + 'openssl/providers/common/der/der_slh_dsa_key.c', 'openssl/providers/common/provider_ctx.c', 'openssl/providers/common/provider_err.c', 'openssl/providers/implementations/ciphers/ciphercommon.c', @@ -262,7 +305,7 @@ 'openssl/providers/implementations/ciphers/ciphercommon_gcm_hw.c', 'openssl/providers/implementations/ciphers/ciphercommon_hw.c', 'openssl/providers/implementations/digests/digestcommon.c', - 'openssl/ssl/record/tls_pad.c', + 'openssl/ssl/record/methods/tls_pad.c', 'openssl/providers/fips/fips_entry.c', ], @@ -280,6 +323,7 @@ './config/archs/darwin-i386-cc/asm_avx2/crypto/des/crypt586.S', './config/archs/darwin-i386-cc/asm_avx2/crypto/des/des-586.S', './config/archs/darwin-i386-cc/asm_avx2/crypto/ec/ecp_nistz256-x86.S', + './config/archs/darwin-i386-cc/asm_avx2/crypto/params_idx.c', './config/archs/darwin-i386-cc/asm_avx2/crypto/x86cpuid.S', './config/archs/darwin-i386-cc/asm_avx2/crypto/md5/md5-586.S', './config/archs/darwin-i386-cc/asm_avx2/crypto/modes/ghash-x86.S', @@ -296,7 +340,9 @@ './config/archs/darwin-i386-cc/asm_avx2/providers/common/der/der_dsa_gen.c', './config/archs/darwin-i386-cc/asm_avx2/providers/common/der/der_ec_gen.c', './config/archs/darwin-i386-cc/asm_avx2/providers/common/der/der_ecx_gen.c', + './config/archs/darwin-i386-cc/asm_avx2/providers/common/der/der_ml_dsa_gen.c', './config/archs/darwin-i386-cc/asm_avx2/providers/common/der/der_rsa_gen.c', + './config/archs/darwin-i386-cc/asm_avx2/providers/common/der/der_slh_dsa_gen.c', './config/archs/darwin-i386-cc/asm_avx2/providers/common/der/der_wrap_gen.c', ], diff --git a/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/openssl.gypi b/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/openssl.gypi index 1611dce927f3cc..a72215cf5cfc07 100644 --- a/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/openssl.gypi +++ b/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/openssl.gypi @@ -7,14 +7,15 @@ 'openssl/ssl/d1_srtp.c', 'openssl/ssl/methods.c', 'openssl/ssl/pqueue.c', + 'openssl/ssl/priority_queue.c', 'openssl/ssl/s3_enc.c', 'openssl/ssl/s3_lib.c', 'openssl/ssl/s3_msg.c', 'openssl/ssl/ssl_asn1.c', 'openssl/ssl/ssl_cert.c', + 'openssl/ssl/ssl_cert_comp.c', 'openssl/ssl/ssl_ciph.c', 'openssl/ssl/ssl_conf.c', - 'openssl/ssl/ssl_err.c', 'openssl/ssl/ssl_err_legacy.c', 'openssl/ssl/ssl_init.c', 'openssl/ssl/ssl_lib.c', @@ -31,12 +32,60 @@ 'openssl/ssl/tls13_enc.c', 'openssl/ssl/tls_depr.c', 'openssl/ssl/tls_srp.c', - 'openssl/ssl/record/dtls1_bitmap.c', + 'openssl/ssl/quic/cc_newreno.c', + 'openssl/ssl/quic/json_enc.c', + 'openssl/ssl/quic/qlog.c', + 'openssl/ssl/quic/qlog_event_helpers.c', + 'openssl/ssl/quic/quic_ackm.c', + 'openssl/ssl/quic/quic_cfq.c', + 'openssl/ssl/quic/quic_channel.c', + 'openssl/ssl/quic/quic_demux.c', + 'openssl/ssl/quic/quic_engine.c', + 'openssl/ssl/quic/quic_fc.c', + 'openssl/ssl/quic/quic_fifd.c', + 'openssl/ssl/quic/quic_impl.c', + 'openssl/ssl/quic/quic_lcidm.c', + 'openssl/ssl/quic/quic_method.c', + 'openssl/ssl/quic/quic_obj.c', + 'openssl/ssl/quic/quic_port.c', + 'openssl/ssl/quic/quic_rcidm.c', + 'openssl/ssl/quic/quic_reactor.c', + 'openssl/ssl/quic/quic_reactor_wait_ctx.c', + 'openssl/ssl/quic/quic_record_rx.c', + 'openssl/ssl/quic/quic_record_shared.c', + 'openssl/ssl/quic/quic_record_tx.c', + 'openssl/ssl/quic/quic_record_util.c', + 'openssl/ssl/quic/quic_rstream.c', + 'openssl/ssl/quic/quic_rx_depack.c', + 'openssl/ssl/quic/quic_sf_list.c', + 'openssl/ssl/quic/quic_srt_gen.c', + 'openssl/ssl/quic/quic_srtm.c', + 'openssl/ssl/quic/quic_sstream.c', + 'openssl/ssl/quic/quic_statm.c', + 'openssl/ssl/quic/quic_stream_map.c', + 'openssl/ssl/quic/quic_thread_assist.c', + 'openssl/ssl/quic/quic_tls.c', + 'openssl/ssl/quic/quic_tls_api.c', + 'openssl/ssl/quic/quic_trace.c', + 'openssl/ssl/quic/quic_tserver.c', + 'openssl/ssl/quic/quic_txp.c', + 'openssl/ssl/quic/quic_txpim.c', + 'openssl/ssl/quic/quic_types.c', + 'openssl/ssl/quic/quic_wire.c', + 'openssl/ssl/quic/quic_wire_pkt.c', + 'openssl/ssl/quic/uint_set.c', 'openssl/ssl/record/rec_layer_d1.c', 'openssl/ssl/record/rec_layer_s3.c', - 'openssl/ssl/record/ssl3_buffer.c', - 'openssl/ssl/record/ssl3_record.c', - 'openssl/ssl/record/ssl3_record_tls13.c', + 'openssl/ssl/record/methods/dtls_meth.c', + 'openssl/ssl/record/methods/ssl3_meth.c', + 'openssl/ssl/record/methods/tls13_meth.c', + 'openssl/ssl/record/methods/tls1_meth.c', + 'openssl/ssl/record/methods/tls_common.c', + 'openssl/ssl/record/methods/tls_multib.c', + 'openssl/ssl/record/methods/tlsany_meth.c', + 'openssl/ssl/rio/poll_builder.c', + 'openssl/ssl/rio/poll_immediate.c', + 'openssl/ssl/rio/rio_notifier.c', 'openssl/ssl/statem/extensions.c', 'openssl/ssl/statem/extensions_clnt.c', 'openssl/ssl/statem/extensions_cust.c', @@ -147,6 +196,7 @@ 'openssl/crypto/bio/bss_conn.c', 'openssl/crypto/bio/bss_core.c', 'openssl/crypto/bio/bss_dgram.c', + 'openssl/crypto/bio/bss_dgram_pair.c', 'openssl/crypto/bio/bss_fd.c', 'openssl/crypto/bio/bss_file.c', 'openssl/crypto/bio/bss_log.c', @@ -202,6 +252,7 @@ 'openssl/crypto/cmp/cmp_client.c', 'openssl/crypto/cmp/cmp_ctx.c', 'openssl/crypto/cmp/cmp_err.c', + 'openssl/crypto/cmp/cmp_genm.c', 'openssl/crypto/cmp/cmp_hdr.c', 'openssl/crypto/cmp/cmp_http.c', 'openssl/crypto/cmp/cmp_msg.c', @@ -376,7 +427,9 @@ 'openssl/crypto/err/err_all.c', 'openssl/crypto/err/err_all_legacy.c', 'openssl/crypto/err/err_blocks.c', + 'openssl/crypto/err/err_mark.c', 'openssl/crypto/err/err_prn.c', + 'openssl/crypto/err/err_save.c', 'openssl/crypto/ess/ess_asn1.c', 'openssl/crypto/ess/ess_err.c', 'openssl/crypto/ess/ess_lib.c', @@ -459,7 +512,9 @@ 'openssl/crypto/evp/pmeth_check.c', 'openssl/crypto/evp/pmeth_gn.c', 'openssl/crypto/evp/pmeth_lib.c', + 'openssl/crypto/evp/s_lib.c', 'openssl/crypto/evp/signature.c', + 'openssl/crypto/evp/skeymgmt_meth.c', 'openssl/crypto/ffc/ffc_backend.c', 'openssl/crypto/ffc/ffc_dh.c', 'openssl/crypto/ffc/ffc_key_generate.c', @@ -467,7 +522,11 @@ 'openssl/crypto/ffc/ffc_params.c', 'openssl/crypto/ffc/ffc_params_generate.c', 'openssl/crypto/ffc/ffc_params_validate.c', + 'openssl/crypto/hashtable/hashfunc.c', + 'openssl/crypto/hashtable/hashtable.c', 'openssl/crypto/hmac/hmac.c', + 'openssl/crypto/hpke/hpke.c', + 'openssl/crypto/hpke/hpke_util.c', 'openssl/crypto/http/http_client.c', 'openssl/crypto/http/http_err.c', 'openssl/crypto/http/http_lib.c', @@ -481,6 +540,7 @@ 'openssl/crypto/lhash/lhash.c', 'openssl/crypto/asn1_dsa.c', 'openssl/crypto/bsearch.c', + 'openssl/crypto/comp_methods.c', 'openssl/crypto/context.c', 'openssl/crypto/core_algorithm.c', 'openssl/crypto/core_fetch.c', @@ -490,10 +550,13 @@ 'openssl/crypto/cryptlib.c', 'openssl/crypto/ctype.c', 'openssl/crypto/cversion.c', + 'openssl/crypto/defaults.c', 'openssl/crypto/der_writer.c', + 'openssl/crypto/deterministic_nonce.c', 'openssl/crypto/ebcdic.c', 'openssl/crypto/ex_data.c', 'openssl/crypto/getenv.c', + 'openssl/crypto/indicator_core.c', 'openssl/crypto/info.c', 'openssl/crypto/init.c', 'openssl/crypto/initthread.c', @@ -517,12 +580,16 @@ 'openssl/crypto/provider_core.c', 'openssl/crypto/provider_predefined.c', 'openssl/crypto/punycode.c', + 'openssl/crypto/quic_vlint.c', 'openssl/crypto/self_test_core.c', + 'openssl/crypto/sleep.c', 'openssl/crypto/sparse_array.c', + 'openssl/crypto/ssl_err.c', 'openssl/crypto/threads_lib.c', 'openssl/crypto/threads_none.c', 'openssl/crypto/threads_pthread.c', 'openssl/crypto/threads_win.c', + 'openssl/crypto/time.c', 'openssl/crypto/trace.c', 'openssl/crypto/uid.c', 'openssl/crypto/md4/md4_dgst.c', @@ -532,6 +599,15 @@ 'openssl/crypto/md5/md5_sha1.c', 'openssl/crypto/mdc2/mdc2_one.c', 'openssl/crypto/mdc2/mdc2dgst.c', + 'openssl/crypto/ml_dsa/ml_dsa_encoders.c', + 'openssl/crypto/ml_dsa/ml_dsa_key.c', + 'openssl/crypto/ml_dsa/ml_dsa_key_compress.c', + 'openssl/crypto/ml_dsa/ml_dsa_matrix.c', + 'openssl/crypto/ml_dsa/ml_dsa_ntt.c', + 'openssl/crypto/ml_dsa/ml_dsa_params.c', + 'openssl/crypto/ml_dsa/ml_dsa_sample.c', + 'openssl/crypto/ml_dsa/ml_dsa_sign.c', + 'openssl/crypto/ml_kem/ml_kem.c', 'openssl/crypto/modes/cbc128.c', 'openssl/crypto/modes/ccm128.c', 'openssl/crypto/modes/cfb128.c', @@ -543,6 +619,7 @@ 'openssl/crypto/modes/siv128.c', 'openssl/crypto/modes/wrap128.c', 'openssl/crypto/modes/xts128.c', + 'openssl/crypto/modes/xts128gb.c', 'openssl/crypto/objects/o_names.c', 'openssl/crypto/objects/obj_dat.c', 'openssl/crypto/objects/obj_err.c', @@ -606,6 +683,7 @@ 'openssl/crypto/rand/rand_lib.c', 'openssl/crypto/rand/rand_meth.c', 'openssl/crypto/rand/rand_pool.c', + 'openssl/crypto/rand/rand_uniform.c', 'openssl/crypto/rand/randfile.c', 'openssl/crypto/rc2/rc2_cbc.c', 'openssl/crypto/rc2/rc2_ecb.c', @@ -652,6 +730,16 @@ 'openssl/crypto/sha/sha3.c', 'openssl/crypto/sha/sha512.c', 'openssl/crypto/siphash/siphash.c', + 'openssl/crypto/slh_dsa/slh_adrs.c', + 'openssl/crypto/slh_dsa/slh_dsa.c', + 'openssl/crypto/slh_dsa/slh_dsa_hash_ctx.c', + 'openssl/crypto/slh_dsa/slh_dsa_key.c', + 'openssl/crypto/slh_dsa/slh_fors.c', + 'openssl/crypto/slh_dsa/slh_hash.c', + 'openssl/crypto/slh_dsa/slh_hypertree.c', + 'openssl/crypto/slh_dsa/slh_params.c', + 'openssl/crypto/slh_dsa/slh_wots.c', + 'openssl/crypto/slh_dsa/slh_xmss.c', 'openssl/crypto/sm2/sm2_crypt.c', 'openssl/crypto/sm2/sm2_err.c', 'openssl/crypto/sm2/sm2_key.c', @@ -669,6 +757,12 @@ 'openssl/crypto/store/store_register.c', 'openssl/crypto/store/store_result.c', 'openssl/crypto/store/store_strings.c', + 'openssl/crypto/thread/arch/thread_none.c', + 'openssl/crypto/thread/arch/thread_posix.c', + 'openssl/crypto/thread/arch/thread_win.c', + 'openssl/crypto/thread/api.c', + 'openssl/crypto/thread/arch.c', + 'openssl/crypto/thread/internal.c', 'openssl/crypto/ts/ts_asn1.c', 'openssl/crypto/ts/ts_conf.c', 'openssl/crypto/ts/ts_err.c', @@ -697,14 +791,22 @@ 'openssl/crypto/x509/pcy_map.c', 'openssl/crypto/x509/pcy_node.c', 'openssl/crypto/x509/pcy_tree.c', + 'openssl/crypto/x509/t_acert.c', 'openssl/crypto/x509/t_crl.c', 'openssl/crypto/x509/t_req.c', 'openssl/crypto/x509/t_x509.c', + 'openssl/crypto/x509/v3_aaa.c', + 'openssl/crypto/x509/v3_ac_tgt.c', 'openssl/crypto/x509/v3_addr.c', 'openssl/crypto/x509/v3_admis.c', 'openssl/crypto/x509/v3_akeya.c', 'openssl/crypto/x509/v3_akid.c', 'openssl/crypto/x509/v3_asid.c', + 'openssl/crypto/x509/v3_attrdesc.c', + 'openssl/crypto/x509/v3_attrmap.c', + 'openssl/crypto/x509/v3_audit_id.c', + 'openssl/crypto/x509/v3_authattid.c', + 'openssl/crypto/x509/v3_battcons.c', 'openssl/crypto/x509/v3_bcons.c', 'openssl/crypto/x509/v3_bitst.c', 'openssl/crypto/x509/v3_conf.c', @@ -713,12 +815,17 @@ 'openssl/crypto/x509/v3_enum.c', 'openssl/crypto/x509/v3_extku.c', 'openssl/crypto/x509/v3_genn.c', + 'openssl/crypto/x509/v3_group_ac.c', 'openssl/crypto/x509/v3_ia5.c', + 'openssl/crypto/x509/v3_ind_iss.c', 'openssl/crypto/x509/v3_info.c', 'openssl/crypto/x509/v3_int.c', + 'openssl/crypto/x509/v3_iobo.c', 'openssl/crypto/x509/v3_ist.c', 'openssl/crypto/x509/v3_lib.c', 'openssl/crypto/x509/v3_ncons.c', + 'openssl/crypto/x509/v3_no_ass.c', + 'openssl/crypto/x509/v3_no_rev_avail.c', 'openssl/crypto/x509/v3_pci.c', 'openssl/crypto/x509/v3_pcia.c', 'openssl/crypto/x509/v3_pcons.c', @@ -726,13 +833,20 @@ 'openssl/crypto/x509/v3_pmaps.c', 'openssl/crypto/x509/v3_prn.c', 'openssl/crypto/x509/v3_purp.c', + 'openssl/crypto/x509/v3_rolespec.c', 'openssl/crypto/x509/v3_san.c', + 'openssl/crypto/x509/v3_sda.c', + 'openssl/crypto/x509/v3_single_use.c', 'openssl/crypto/x509/v3_skid.c', + 'openssl/crypto/x509/v3_soa_id.c', 'openssl/crypto/x509/v3_sxnet.c', + 'openssl/crypto/x509/v3_timespec.c', 'openssl/crypto/x509/v3_tlsf.c', + 'openssl/crypto/x509/v3_usernotice.c', 'openssl/crypto/x509/v3_utf8.c', 'openssl/crypto/x509/v3_utl.c', 'openssl/crypto/x509/v3err.c', + 'openssl/crypto/x509/x509_acert.c', 'openssl/crypto/x509/x509_att.c', 'openssl/crypto/x509/x509_cmp.c', 'openssl/crypto/x509/x509_d2.c', @@ -750,6 +864,7 @@ 'openssl/crypto/x509/x509_v3.c', 'openssl/crypto/x509/x509_vfy.c', 'openssl/crypto/x509/x509_vpm.c', + 'openssl/crypto/x509/x509aset.c', 'openssl/crypto/x509/x509cset.c', 'openssl/crypto/x509/x509name.c', 'openssl/crypto/x509/x509rset.c', @@ -759,6 +874,7 @@ 'openssl/crypto/x509/x_attrib.c', 'openssl/crypto/x509/x_crl.c', 'openssl/crypto/x509/x_exten.c', + 'openssl/crypto/x509/x_ietfatt.c', 'openssl/crypto/x509/x_name.c', 'openssl/crypto/x509/x_pubkey.c', 'openssl/crypto/x509/x_req.c', @@ -790,6 +906,9 @@ 'openssl/providers/implementations/ciphers/cipher_aes_ccm_hw.c', 'openssl/providers/implementations/ciphers/cipher_aes_gcm.c', 'openssl/providers/implementations/ciphers/cipher_aes_gcm_hw.c', + 'openssl/providers/implementations/ciphers/cipher_aes_gcm_siv.c', + 'openssl/providers/implementations/ciphers/cipher_aes_gcm_siv_hw.c', + 'openssl/providers/implementations/ciphers/cipher_aes_gcm_siv_polyval.c', 'openssl/providers/implementations/ciphers/cipher_aes_hw.c', 'openssl/providers/implementations/ciphers/cipher_aes_ocb.c', 'openssl/providers/implementations/ciphers/cipher_aes_ocb_hw.c', @@ -814,7 +933,13 @@ 'openssl/providers/implementations/ciphers/cipher_cts.c', 'openssl/providers/implementations/ciphers/cipher_null.c', 'openssl/providers/implementations/ciphers/cipher_sm4.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_ccm.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_ccm_hw.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_gcm.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_gcm_hw.c', 'openssl/providers/implementations/ciphers/cipher_sm4_hw.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_xts.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_xts_hw.c', 'openssl/providers/implementations/ciphers/cipher_tdes.c', 'openssl/providers/implementations/ciphers/cipher_tdes_common.c', 'openssl/providers/implementations/ciphers/cipher_tdes_default.c', @@ -843,11 +968,16 @@ 'openssl/providers/implementations/encode_decode/encode_key2ms.c', 'openssl/providers/implementations/encode_decode/encode_key2text.c', 'openssl/providers/implementations/encode_decode/endecoder_common.c', + 'openssl/providers/implementations/encode_decode/ml_common_codecs.c', + 'openssl/providers/implementations/encode_decode/ml_dsa_codecs.c', + 'openssl/providers/implementations/encode_decode/ml_kem_codecs.c', 'openssl/providers/implementations/exchange/dh_exch.c', 'openssl/providers/implementations/exchange/ecdh_exch.c', 'openssl/providers/implementations/exchange/ecx_exch.c', 'openssl/providers/implementations/exchange/kdf_exch.c', + 'openssl/providers/implementations/kdfs/argon2.c', 'openssl/providers/implementations/kdfs/hkdf.c', + 'openssl/providers/implementations/kdfs/hmacdrbg_kdf.c', 'openssl/providers/implementations/kdfs/kbkdf.c', 'openssl/providers/implementations/kdfs/krb5kdf.c', 'openssl/providers/implementations/kdfs/pbkdf2.c', @@ -858,6 +988,11 @@ 'openssl/providers/implementations/kdfs/sskdf.c', 'openssl/providers/implementations/kdfs/tls1_prf.c', 'openssl/providers/implementations/kdfs/x942kdf.c', + 'openssl/providers/implementations/kem/ec_kem.c', + 'openssl/providers/implementations/kem/ecx_kem.c', + 'openssl/providers/implementations/kem/kem_util.c', + 'openssl/providers/implementations/kem/ml_kem_kem.c', + 'openssl/providers/implementations/kem/mlx_kem.c', 'openssl/providers/implementations/kem/rsa_kem.c', 'openssl/providers/implementations/keymgmt/dh_kmgmt.c', 'openssl/providers/implementations/keymgmt/dsa_kmgmt.c', @@ -865,7 +1000,11 @@ 'openssl/providers/implementations/keymgmt/ecx_kmgmt.c', 'openssl/providers/implementations/keymgmt/kdf_legacy_kmgmt.c', 'openssl/providers/implementations/keymgmt/mac_legacy_kmgmt.c', + 'openssl/providers/implementations/keymgmt/ml_dsa_kmgmt.c', + 'openssl/providers/implementations/keymgmt/ml_kem_kmgmt.c', + 'openssl/providers/implementations/keymgmt/mlx_kmgmt.c', 'openssl/providers/implementations/keymgmt/rsa_kmgmt.c', + 'openssl/providers/implementations/keymgmt/slh_dsa_kmgmt.c', 'openssl/providers/implementations/macs/blake2b_mac.c', 'openssl/providers/implementations/macs/blake2s_mac.c', 'openssl/providers/implementations/macs/cmac_prov.c', @@ -874,12 +1013,12 @@ 'openssl/providers/implementations/macs/kmac_prov.c', 'openssl/providers/implementations/macs/poly1305_prov.c', 'openssl/providers/implementations/macs/siphash_prov.c', - 'openssl/providers/implementations/rands/crngt.c', 'openssl/providers/implementations/rands/drbg.c', 'openssl/providers/implementations/rands/drbg_ctr.c', 'openssl/providers/implementations/rands/drbg_hash.c', 'openssl/providers/implementations/rands/drbg_hmac.c', 'openssl/providers/implementations/rands/seed_src.c', + 'openssl/providers/implementations/rands/seed_src_jitter.c', 'openssl/providers/implementations/rands/test_rng.c', 'openssl/providers/implementations/rands/seeding/rand_cpu_x86.c', 'openssl/providers/implementations/rands/seeding/rand_tsc.c', @@ -889,17 +1028,23 @@ 'openssl/providers/implementations/signature/ecdsa_sig.c', 'openssl/providers/implementations/signature/eddsa_sig.c', 'openssl/providers/implementations/signature/mac_legacy_sig.c', + 'openssl/providers/implementations/signature/ml_dsa_sig.c', 'openssl/providers/implementations/signature/rsa_sig.c', + 'openssl/providers/implementations/signature/slh_dsa_sig.c', 'openssl/providers/implementations/signature/sm2_sig.c', + 'openssl/providers/implementations/skeymgmt/aes_skmgmt.c', + 'openssl/providers/implementations/skeymgmt/generic.c', 'openssl/providers/implementations/storemgmt/file_store.c', 'openssl/providers/implementations/storemgmt/file_store_any2obj.c', - 'openssl/ssl/s3_cbc.c', + 'openssl/ssl/record/methods/ssl3_cbc.c', 'openssl/providers/common/der/der_dsa_key.c', 'openssl/providers/common/der/der_dsa_sig.c', 'openssl/providers/common/der/der_ec_key.c', 'openssl/providers/common/der/der_ec_sig.c', 'openssl/providers/common/der/der_ecx_key.c', + 'openssl/providers/common/der/der_ml_dsa_key.c', 'openssl/providers/common/der/der_rsa_key.c', + 'openssl/providers/common/der/der_slh_dsa_key.c', 'openssl/providers/common/provider_ctx.c', 'openssl/providers/common/provider_err.c', 'openssl/providers/implementations/ciphers/ciphercommon.c', @@ -910,7 +1055,7 @@ 'openssl/providers/implementations/ciphers/ciphercommon_gcm_hw.c', 'openssl/providers/implementations/ciphers/ciphercommon_hw.c', 'openssl/providers/implementations/digests/digestcommon.c', - 'openssl/ssl/record/tls_pad.c', + 'openssl/ssl/record/methods/tls_pad.c', 'openssl/providers/implementations/ciphers/cipher_blowfish.c', 'openssl/providers/implementations/ciphers/cipher_blowfish_hw.c', 'openssl/providers/implementations/ciphers/cipher_cast5.c', @@ -935,6 +1080,7 @@ 'openssl/providers/implementations/digests/ripemd_prov.c', 'openssl/providers/implementations/digests/wp_prov.c', 'openssl/providers/implementations/kdfs/pbkdf1.c', + 'openssl/providers/implementations/kdfs/pvkkdf.c', 'openssl/providers/prov_running.c', 'openssl/providers/legacyprov.c', ], @@ -952,6 +1098,7 @@ './config/archs/darwin-i386-cc/asm_avx2/crypto/des/crypt586.S', './config/archs/darwin-i386-cc/asm_avx2/crypto/des/des-586.S', './config/archs/darwin-i386-cc/asm_avx2/crypto/ec/ecp_nistz256-x86.S', + './config/archs/darwin-i386-cc/asm_avx2/crypto/params_idx.c', './config/archs/darwin-i386-cc/asm_avx2/crypto/x86cpuid.S', './config/archs/darwin-i386-cc/asm_avx2/crypto/md5/md5-586.S', './config/archs/darwin-i386-cc/asm_avx2/crypto/modes/ghash-x86.S', @@ -968,7 +1115,9 @@ './config/archs/darwin-i386-cc/asm_avx2/providers/common/der/der_dsa_gen.c', './config/archs/darwin-i386-cc/asm_avx2/providers/common/der/der_ec_gen.c', './config/archs/darwin-i386-cc/asm_avx2/providers/common/der/der_ecx_gen.c', + './config/archs/darwin-i386-cc/asm_avx2/providers/common/der/der_ml_dsa_gen.c', './config/archs/darwin-i386-cc/asm_avx2/providers/common/der/der_rsa_gen.c', + './config/archs/darwin-i386-cc/asm_avx2/providers/common/der/der_slh_dsa_gen.c', './config/archs/darwin-i386-cc/asm_avx2/providers/common/der/der_wrap_gen.c', ], 'openssl_defines_darwin-i386-cc': [ diff --git a/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/providers/common/der/der_ml_dsa_gen.c b/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/providers/common/der/der_ml_dsa_gen.c new file mode 100644 index 00000000000000..4a8a113a268578 --- /dev/null +++ b/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/providers/common/der/der_ml_dsa_gen.c @@ -0,0 +1,37 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from providers/common/der/der_ml_dsa_gen.c.in + * + * Copyright 2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include "prov/der_ml_dsa.h" + +/* Well known OIDs precompiled */ + +/* + * id-ml-dsa-44 OBJECT IDENTIFIER ::= { sigAlgs 17 } + */ +const unsigned char ossl_der_oid_id_ml_dsa_44[DER_OID_SZ_id_ml_dsa_44] = { + DER_OID_V_id_ml_dsa_44 +}; + +/* + * id-ml-dsa-65 OBJECT IDENTIFIER ::= { sigAlgs 18 } + */ +const unsigned char ossl_der_oid_id_ml_dsa_65[DER_OID_SZ_id_ml_dsa_65] = { + DER_OID_V_id_ml_dsa_65 +}; + +/* + * id-ml-dsa-87 OBJECT IDENTIFIER ::= { sigAlgs 19 } + */ +const unsigned char ossl_der_oid_id_ml_dsa_87[DER_OID_SZ_id_ml_dsa_87] = { + DER_OID_V_id_ml_dsa_87 +}; + diff --git a/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/providers/common/der/der_slh_dsa_gen.c b/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/providers/common/der/der_slh_dsa_gen.c new file mode 100644 index 00000000000000..1419a9515097dd --- /dev/null +++ b/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/providers/common/der/der_slh_dsa_gen.c @@ -0,0 +1,100 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from providers/common/der/der_slh_dsa_gen.c.in + * + * Copyright 2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include "prov/der_slh_dsa.h" + +/* Well known OIDs precompiled */ + +/* + * id-slh-dsa-sha2-128s OBJECT IDENTIFIER ::= { sigAlgs 20 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_128s[DER_OID_SZ_id_slh_dsa_sha2_128s] = { + DER_OID_V_id_slh_dsa_sha2_128s +}; + +/* + * id-slh-dsa-sha2-128f OBJECT IDENTIFIER ::= { sigAlgs 21 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_128f[DER_OID_SZ_id_slh_dsa_sha2_128f] = { + DER_OID_V_id_slh_dsa_sha2_128f +}; + +/* + * id-slh-dsa-sha2-192s OBJECT IDENTIFIER ::= { sigAlgs 22 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_192s[DER_OID_SZ_id_slh_dsa_sha2_192s] = { + DER_OID_V_id_slh_dsa_sha2_192s +}; + +/* + * id-slh-dsa-sha2-192f OBJECT IDENTIFIER ::= { sigAlgs 23 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_192f[DER_OID_SZ_id_slh_dsa_sha2_192f] = { + DER_OID_V_id_slh_dsa_sha2_192f +}; + +/* + * id-slh-dsa-sha2-256s OBJECT IDENTIFIER ::= { sigAlgs 24 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_256s[DER_OID_SZ_id_slh_dsa_sha2_256s] = { + DER_OID_V_id_slh_dsa_sha2_256s +}; + +/* + * id-slh-dsa-sha2-256f OBJECT IDENTIFIER ::= { sigAlgs 25 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_256f[DER_OID_SZ_id_slh_dsa_sha2_256f] = { + DER_OID_V_id_slh_dsa_sha2_256f +}; + +/* + * id-slh-dsa-shake-128s OBJECT IDENTIFIER ::= { sigAlgs 26 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_128s[DER_OID_SZ_id_slh_dsa_shake_128s] = { + DER_OID_V_id_slh_dsa_shake_128s +}; + +/* + * id-slh-dsa-shake-128f OBJECT IDENTIFIER ::= { sigAlgs 27 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_128f[DER_OID_SZ_id_slh_dsa_shake_128f] = { + DER_OID_V_id_slh_dsa_shake_128f +}; + +/* + * id-slh-dsa-shake-192s OBJECT IDENTIFIER ::= { sigAlgs 28 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_192s[DER_OID_SZ_id_slh_dsa_shake_192s] = { + DER_OID_V_id_slh_dsa_shake_192s +}; + +/* + * id-slh-dsa-shake-192f OBJECT IDENTIFIER ::= { sigAlgs 29 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_192f[DER_OID_SZ_id_slh_dsa_shake_192f] = { + DER_OID_V_id_slh_dsa_shake_192f +}; + +/* + * id-slh-dsa-shake-256s OBJECT IDENTIFIER ::= { sigAlgs 30 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_256s[DER_OID_SZ_id_slh_dsa_shake_256s] = { + DER_OID_V_id_slh_dsa_shake_256s +}; + +/* + * id-slh-dsa-shake-256f OBJECT IDENTIFIER ::= { sigAlgs 31 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_256f[DER_OID_SZ_id_slh_dsa_shake_256f] = { + DER_OID_V_id_slh_dsa_shake_256f +}; + diff --git a/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/providers/common/include/prov/der_ml_dsa.h b/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/providers/common/include/prov/der_ml_dsa.h new file mode 100644 index 00000000000000..c55f780ab4527c --- /dev/null +++ b/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/providers/common/include/prov/der_ml_dsa.h @@ -0,0 +1,40 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from providers/common/include/prov/der_ml_dsa.h.in + * + * Copyright 2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include "internal/der.h" +#include "crypto/ml_dsa.h" + +/* Well known OIDs precompiled */ + +/* + * id-ml-dsa-44 OBJECT IDENTIFIER ::= { sigAlgs 17 } + */ +#define DER_OID_V_id_ml_dsa_44 DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x11 +#define DER_OID_SZ_id_ml_dsa_44 11 +extern const unsigned char ossl_der_oid_id_ml_dsa_44[DER_OID_SZ_id_ml_dsa_44]; + +/* + * id-ml-dsa-65 OBJECT IDENTIFIER ::= { sigAlgs 18 } + */ +#define DER_OID_V_id_ml_dsa_65 DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x12 +#define DER_OID_SZ_id_ml_dsa_65 11 +extern const unsigned char ossl_der_oid_id_ml_dsa_65[DER_OID_SZ_id_ml_dsa_65]; + +/* + * id-ml-dsa-87 OBJECT IDENTIFIER ::= { sigAlgs 19 } + */ +#define DER_OID_V_id_ml_dsa_87 DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x13 +#define DER_OID_SZ_id_ml_dsa_87 11 +extern const unsigned char ossl_der_oid_id_ml_dsa_87[DER_OID_SZ_id_ml_dsa_87]; + + +int ossl_DER_w_algorithmIdentifier_ML_DSA(WPACKET *pkt, int tag, ML_DSA_KEY *key); diff --git a/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/providers/common/include/prov/der_slh_dsa.h b/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/providers/common/include/prov/der_slh_dsa.h new file mode 100644 index 00000000000000..760f8e7699be72 --- /dev/null +++ b/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/providers/common/include/prov/der_slh_dsa.h @@ -0,0 +1,103 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from providers/common/include/prov/der_slh_dsa.h.in + * + * Copyright 2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include "internal/der.h" +#include "crypto/slh_dsa.h" + +/* Well known OIDs precompiled */ + +/* + * id-slh-dsa-sha2-128s OBJECT IDENTIFIER ::= { sigAlgs 20 } + */ +#define DER_OID_V_id_slh_dsa_sha2_128s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x14 +#define DER_OID_SZ_id_slh_dsa_sha2_128s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_128s[DER_OID_SZ_id_slh_dsa_sha2_128s]; + +/* + * id-slh-dsa-sha2-128f OBJECT IDENTIFIER ::= { sigAlgs 21 } + */ +#define DER_OID_V_id_slh_dsa_sha2_128f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x15 +#define DER_OID_SZ_id_slh_dsa_sha2_128f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_128f[DER_OID_SZ_id_slh_dsa_sha2_128f]; + +/* + * id-slh-dsa-sha2-192s OBJECT IDENTIFIER ::= { sigAlgs 22 } + */ +#define DER_OID_V_id_slh_dsa_sha2_192s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x16 +#define DER_OID_SZ_id_slh_dsa_sha2_192s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_192s[DER_OID_SZ_id_slh_dsa_sha2_192s]; + +/* + * id-slh-dsa-sha2-192f OBJECT IDENTIFIER ::= { sigAlgs 23 } + */ +#define DER_OID_V_id_slh_dsa_sha2_192f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x17 +#define DER_OID_SZ_id_slh_dsa_sha2_192f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_192f[DER_OID_SZ_id_slh_dsa_sha2_192f]; + +/* + * id-slh-dsa-sha2-256s OBJECT IDENTIFIER ::= { sigAlgs 24 } + */ +#define DER_OID_V_id_slh_dsa_sha2_256s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x18 +#define DER_OID_SZ_id_slh_dsa_sha2_256s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_256s[DER_OID_SZ_id_slh_dsa_sha2_256s]; + +/* + * id-slh-dsa-sha2-256f OBJECT IDENTIFIER ::= { sigAlgs 25 } + */ +#define DER_OID_V_id_slh_dsa_sha2_256f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x19 +#define DER_OID_SZ_id_slh_dsa_sha2_256f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_256f[DER_OID_SZ_id_slh_dsa_sha2_256f]; + +/* + * id-slh-dsa-shake-128s OBJECT IDENTIFIER ::= { sigAlgs 26 } + */ +#define DER_OID_V_id_slh_dsa_shake_128s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1A +#define DER_OID_SZ_id_slh_dsa_shake_128s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_128s[DER_OID_SZ_id_slh_dsa_shake_128s]; + +/* + * id-slh-dsa-shake-128f OBJECT IDENTIFIER ::= { sigAlgs 27 } + */ +#define DER_OID_V_id_slh_dsa_shake_128f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1B +#define DER_OID_SZ_id_slh_dsa_shake_128f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_128f[DER_OID_SZ_id_slh_dsa_shake_128f]; + +/* + * id-slh-dsa-shake-192s OBJECT IDENTIFIER ::= { sigAlgs 28 } + */ +#define DER_OID_V_id_slh_dsa_shake_192s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1C +#define DER_OID_SZ_id_slh_dsa_shake_192s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_192s[DER_OID_SZ_id_slh_dsa_shake_192s]; + +/* + * id-slh-dsa-shake-192f OBJECT IDENTIFIER ::= { sigAlgs 29 } + */ +#define DER_OID_V_id_slh_dsa_shake_192f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1D +#define DER_OID_SZ_id_slh_dsa_shake_192f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_192f[DER_OID_SZ_id_slh_dsa_shake_192f]; + +/* + * id-slh-dsa-shake-256s OBJECT IDENTIFIER ::= { sigAlgs 30 } + */ +#define DER_OID_V_id_slh_dsa_shake_256s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1E +#define DER_OID_SZ_id_slh_dsa_shake_256s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_256s[DER_OID_SZ_id_slh_dsa_shake_256s]; + +/* + * id-slh-dsa-shake-256f OBJECT IDENTIFIER ::= { sigAlgs 31 } + */ +#define DER_OID_V_id_slh_dsa_shake_256f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1F +#define DER_OID_SZ_id_slh_dsa_shake_256f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_256f[DER_OID_SZ_id_slh_dsa_shake_256f]; + + +int ossl_DER_w_algorithmIdentifier_SLH_DSA(WPACKET *pkt, int tag, SLH_DSA_KEY *key); diff --git a/deps/openssl/config/archs/darwin-i386-cc/no-asm/apps/progs.c b/deps/openssl/config/archs/darwin-i386-cc/no-asm/apps/progs.c index 43cef00799b86e..acc204a3e6e781 100644 --- a/deps/openssl/config/archs/darwin-i386-cc/no-asm/apps/progs.c +++ b/deps/openssl/config/archs/darwin-i386-cc/no-asm/apps/progs.c @@ -89,6 +89,7 @@ FUNCTION functions[] = { {FT_general, "s_time", s_time_main, s_time_options, NULL, NULL}, #endif {FT_general, "sess_id", sess_id_main, sess_id_options, NULL, NULL}, + {FT_general, "skeyutl", skeyutl_main, skeyutl_options, NULL, NULL}, {FT_general, "smime", smime_main, smime_options, NULL, NULL}, {FT_general, "speed", speed_main, speed_options, NULL, NULL}, {FT_general, "spkac", spkac_main, spkac_options, NULL, NULL}, @@ -225,9 +226,15 @@ FUNCTION functions[] = { {FT_cipher, "camellia-256-ecb", enc_main, enc_options, NULL}, #endif {FT_cipher, "base64", enc_main, enc_options, NULL}, -#ifdef ZLIB +#ifndef OPENSSL_NO_ZLIB {FT_cipher, "zlib", enc_main, enc_options, NULL}, #endif +#ifndef OPENSSL_NO_BROTLI + {FT_cipher, "brotli", enc_main, enc_options, NULL}, +#endif +#ifndef OPENSSL_NO_ZSTD + {FT_cipher, "zstd", enc_main, enc_options, NULL}, +#endif #ifndef OPENSSL_NO_DES {FT_cipher, "des", enc_main, enc_options, NULL}, #endif diff --git a/deps/openssl/config/archs/darwin-i386-cc/no-asm/configdata.pm b/deps/openssl/config/archs/darwin-i386-cc/no-asm/configdata.pm index 1ae9b1f168281e..31847f517d540f 100644 --- a/deps/openssl/config/archs/darwin-i386-cc/no-asm/configdata.pm +++ b/deps/openssl/config/archs/darwin-i386-cc/no-asm/configdata.pm @@ -18,6 +18,7 @@ our %config = ( "ARFLAGS" => [ "qc" ], + "ASFLAGS" => [], "CC" => "cc", "CFLAGS" => [ "-O3 -fomit-frame-pointer" @@ -27,14 +28,16 @@ our %config = ( "CPPINCLUDES" => [], "CXXFLAGS" => [], "FIPSKEY" => "f4556650ac31d35461610bac4ed81b1a181b2d8a43ea2854cbae22ca74560813", + "FIPS_VENDOR" => "OpenSSL FIPS Provider", "HASHBANGPERL" => "/usr/bin/env perl", "LDFLAGS" => [], "LDLIBS" => [], + "OBJCOPY" => "objcopy", "PERL" => "/usr/bin/perl", "RANLIB" => "ranlib -c", "RC" => "windres", "RCFLAGS" => [], - "api" => "30000", + "api" => "30500", "b32" => "1", "b64" => "0", "b64l" => "0", @@ -56,11 +59,13 @@ our %config = ( "doc/build.info", "test/build.info", "engines/build.info", + "exporters/build.info", "crypto/objects/build.info", "crypto/buffer/build.info", "crypto/bio/build.info", "crypto/stack/build.info", "crypto/lhash/build.info", + "crypto/hashtable/build.info", "crypto/rand/build.info", "crypto/evp/build.info", "crypto/asn1/build.info", @@ -78,6 +83,7 @@ our %config = ( "crypto/md5/build.info", "crypto/sha/build.info", "crypto/mdc2/build.info", + "crypto/ml_kem/build.info", "crypto/hmac/build.info", "crypto/ripemd/build.info", "crypto/whrlpool/build.info", @@ -119,11 +125,19 @@ our %config = ( "crypto/cmp/build.info", "crypto/encode_decode/build.info", "crypto/ffc/build.info", + "crypto/hpke/build.info", + "crypto/thread/build.info", + "crypto/ml_dsa/build.info", + "crypto/slh_dsa/build.info", + "ssl/record/build.info", + "ssl/rio/build.info", + "ssl/quic/build.info", "apps/lib/build.info", "providers/common/build.info", "providers/implementations/build.info", "providers/fips/build.info", "doc/man1/build.info", + "ssl/record/methods/build.info", "providers/common/der/build.info", "providers/implementations/digests/build.info", "providers/implementations/ciphers/build.info", @@ -137,6 +151,7 @@ our %config = ( "providers/implementations/encode_decode/build.info", "providers/implementations/storemgmt/build.info", "providers/implementations/kem/build.info", + "providers/implementations/skeymgmt/build.info", "providers/implementations/rands/seeding/build.info" ], "build_metadata" => "", @@ -154,7 +169,7 @@ our %config = ( ], "dynamic_engines" => "0", "ex_libs" => [], - "full_version" => "3.0.17", + "full_version" => "3.5.1", "includes" => [], "lflags" => [], "lib_defines" => [ @@ -163,9 +178,9 @@ our %config = ( "libdir" => "", "major" => "3", "makedep_scheme" => "gcc", - "minor" => "0", + "minor" => "5", "openssl_api_defines" => [ - "OPENSSL_CONFIGURED_API=30000" + "OPENSSL_CONFIGURED_API=30500" ], "openssl_feature_defines" => [ "OPENSSL_RAND_SEED_OS", @@ -173,28 +188,43 @@ our %config = ( "OPENSSL_NO_AFALGENG", "OPENSSL_NO_ASAN", "OPENSSL_NO_ASM", + "OPENSSL_NO_BROTLI", + "OPENSSL_NO_BROTLI_DYNAMIC", "OPENSSL_NO_COMP", "OPENSSL_NO_CRYPTO_MDEBUG", "OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE", + "OPENSSL_NO_DEMOS", "OPENSSL_NO_DEVCRYPTOENG", "OPENSSL_NO_EC_NISTP_64_GCC_128", "OPENSSL_NO_EGD", "OPENSSL_NO_EXTERNAL_TESTS", + "OPENSSL_NO_FIPS_JITTER", "OPENSSL_NO_FUZZ_AFL", "OPENSSL_NO_FUZZ_LIBFUZZER", + "OPENSSL_NO_H3DEMO", + "OPENSSL_NO_HQINTEROP", + "OPENSSL_NO_JITTER", "OPENSSL_NO_KTLS", "OPENSSL_NO_LOADERENG", "OPENSSL_NO_MD2", "OPENSSL_NO_MSAN", + "OPENSSL_NO_PIE", "OPENSSL_NO_RC5", "OPENSSL_NO_SCTP", "OPENSSL_NO_SSL3", "OPENSSL_NO_SSL3_METHOD", + "OPENSSL_NO_SSLKEYLOG", + "OPENSSL_NO_TFO", "OPENSSL_NO_TRACE", "OPENSSL_NO_UBSAN", "OPENSSL_NO_UNIT_TEST", "OPENSSL_NO_UPLINK", "OPENSSL_NO_WEAK_SSL_CIPHERS", + "OPENSSL_NO_WINSTORE", + "OPENSSL_NO_ZLIB", + "OPENSSL_NO_ZLIB_DYNAMIC", + "OPENSSL_NO_ZSTD", + "OPENSSL_NO_ZSTD_DYNAMIC", "OPENSSL_NO_DYNAMIC_ENGINE" ], "openssl_other_defines" => [ @@ -204,11 +234,11 @@ our %config = ( "OPENSSL_SYS_MACOSX" ], "openssldir" => "", - "options" => "enable-ssl-trace enable-fips no-afalgeng no-asan no-asm no-buildtest-c++ no-comp no-crypto-mdebug no-crypto-mdebug-backtrace no-devcryptoeng no-dynamic-engine no-ec_nistp_64_gcc_128 no-egd no-external-tests no-fuzz-afl no-fuzz-libfuzzer no-ktls no-loadereng no-md2 no-msan no-rc5 no-sctp no-shared no-ssl3 no-ssl3-method no-trace no-ubsan no-unit-test no-uplink no-weak-ssl-ciphers no-zlib no-zlib-dynamic", - "patch" => "17", + "options" => "enable-ssl-trace enable-fips no-afalgeng no-asan no-asm no-brotli no-brotli-dynamic no-buildtest-c++ no-comp no-crypto-mdebug no-crypto-mdebug-backtrace no-demos no-devcryptoeng no-dynamic-engine no-ec_nistp_64_gcc_128 no-egd no-external-tests no-fips-jitter no-fuzz-afl no-fuzz-libfuzzer no-h3demo no-hqinterop no-jitter no-ktls no-loadereng no-md2 no-msan no-pie no-rc5 no-sctp no-shared no-ssl3 no-ssl3-method no-sslkeylog no-tfo no-trace no-ubsan no-unit-test no-uplink no-weak-ssl-ciphers no-winstore no-zlib no-zlib-dynamic no-zstd no-zstd-dynamic", + "patch" => "1", "perl_archname" => "x86_64-linux-gnu-thread-multi", "perl_cmd" => "/usr/bin/perl", - "perl_version" => "5.38.2", + "perl_version" => "5.34.0", "perlargv" => [ "no-comp", "no-shared", @@ -239,6 +269,7 @@ our %config = ( "LDLIBS" => undef, "MT" => undef, "MTFLAGS" => undef, + "OBJCOPY" => undef, "OPENSSL_LOCAL_CONFIG_DIR" => undef, "PERL" => undef, "RANLIB" => undef, @@ -262,7 +293,7 @@ our %config = ( "shlib_version" => "3", "sourcedir" => ".", "target" => "darwin-i386-cc", - "version" => "3.0.17" + "version" => "3.5.1" ); our %target = ( "AR" => "ar", @@ -270,6 +301,7 @@ our %target = ( "CC" => "cc", "CFLAGS" => "-O3 -fomit-frame-pointer", "HASHBANGPERL" => "/usr/bin/env perl", + "OBJCOPY" => "objcopy", "RANLIB" => "ranlib -c", "RC" => "windres", "_conf_fname_int" => [ @@ -281,6 +313,8 @@ our %target = ( "Configurations/shared-info.pl" ], "asm_arch" => "x86", + "bin_cflags" => "", + "bin_lflags" => "", "bn_ops" => "BN_LLONG RC4_INT", "build_file" => "Makefile", "build_scheme" => [ @@ -295,6 +329,7 @@ our %target = ( "disable" => [], "dso_scheme" => "dlfcn", "enable" => [], + "ex_libs" => "", "includes" => [], "lflags" => "-Wl,-search_paths_first", "lib_cflags" => "", @@ -321,6 +356,8 @@ our %target = ( our @disablables = ( "acvp-tests", "afalgeng", + "apps", + "argon2", "aria", "asan", "asm", @@ -331,11 +368,14 @@ our @disablables = ( "autoload-config", "bf", "blake2", + "brotli", + "brotli-dynamic", "buildtest-c++", "bulk", "cached-fetch", "camellia", "capieng", + "winstore", "cast", "chacha", "cmac", @@ -344,11 +384,16 @@ our @disablables = ( "comp", "crypto-mdebug", "ct", + "default-thread-pool", + "demos", + "h3demo", + "hqinterop", "deprecated", "des", "devcryptoeng", "dgram", "dh", + "docs", "dsa", "dso", "dtls", @@ -358,6 +403,7 @@ our @disablables = ( "ec_nistp_64_gcc_128", "ecdh", "ecdsa", + "ecx", "egd", "engine", "err", @@ -365,10 +411,15 @@ our @disablables = ( "filenames", "fips", "fips-securitychecks", + "fips-post", + "fips-jitter", "fuzz-afl", "fuzz-libfuzzer", "gost", + "http", "idea", + "integrity-only-ciphers", + "jitter", "ktls", "legacy", "loadereng", @@ -376,6 +427,8 @@ our @disablables = ( "md2", "md4", "mdc2", + "ml-dsa", + "ml-kem", "module", "msan", "multiblock", @@ -384,10 +437,13 @@ our @disablables = ( "ocsp", "padlockeng", "pic", + "pie", "pinshared", "poly1305", "posix-io", "psk", + "quic", + "unstable-qlog", "rc2", "rc4", "rc5", @@ -401,7 +457,9 @@ our @disablables = ( "shared", "siphash", "siv", + "slh-dsa", "sm2", + "sm2-precomp", "sm3", "sm4", "sock", @@ -412,9 +470,13 @@ our @disablables = ( "ssl-trace", "static-engine", "stdio", + "sslkeylog", "tests", + "tfo", + "thread-pool", "threads", "tls", + "tls-deprecated-ec", "trace", "ts", "ubsan", @@ -425,6 +487,8 @@ our @disablables = ( "whirlpool", "zlib", "zlib-dynamic", + "zstd", + "zstd-dynamic", "ssl3", "ssl3-method", "tls1", @@ -446,33 +510,46 @@ our %disabled = ( "afalgeng" => "option", "asan" => "default", "asm" => "option", + "brotli" => "default", + "brotli-dynamic" => "default", "buildtest-c++" => "default", "comp" => "option", "crypto-mdebug" => "default", "crypto-mdebug-backtrace" => "default", + "demos" => "default", "devcryptoeng" => "default", "dynamic-engine" => "cascade", "ec_nistp_64_gcc_128" => "default", "egd" => "default", "external-tests" => "default", + "fips-jitter" => "default", "fuzz-afl" => "default", "fuzz-libfuzzer" => "default", + "h3demo" => "default", + "hqinterop" => "default", + "jitter" => "default", "ktls" => "default", "loadereng" => "cascade", "md2" => "default", "msan" => "default", + "pie" => "default", "rc5" => "default", "sctp" => "default", "shared" => "option", "ssl3" => "default", "ssl3-method" => "default", + "sslkeylog" => "default", + "tfo" => "default", "trace" => "default", "ubsan" => "default", "unit-test" => "default", "uplink" => "no uplink_arch", "weak-ssl-ciphers" => "default", + "winstore" => "not-windows", "zlib" => "default", - "zlib-dynamic" => "default" + "zlib-dynamic" => "default", + "zstd" => "default", + "zstd-dynamic" => "default" ); our %withargs = (); our %unified_info = ( @@ -698,6 +775,11 @@ our %unified_info = ( "pod" => "1" } }, + "doc/man1/openssl-skeyutl.pod" => { + "doc/man1/openssl-skeyutl.pod.in" => { + "pod" => "1" + } + }, "doc/man1/openssl-smime.pod" => { "doc/man1/openssl-smime.pod.in" => { "pod" => "1" @@ -755,6 +837,21 @@ our %unified_info = ( } }, "generate" => { + "exporters/OpenSSLConfig.cmake" => { + "exporter" => "cmake" + }, + "exporters/OpenSSLConfigVersion.cmake" => { + "exporter" => "cmake" + }, + "exporters/libcrypto.pc" => { + "exporter" => "pkg-config" + }, + "exporters/libssl.pc" => { + "exporter" => "pkg-config" + }, + "exporters/openssl.pc" => { + "exporter" => "pkg-config" + }, "include/openssl/configuration.h" => { "skip" => "1" } @@ -775,6 +872,9 @@ our %unified_info = ( "providers/liblegacy.a" => { "noinst" => "1" }, + "providers/libtemplate.a" => { + "noinst" => "1" + }, "test/libtestutil.a" => { "has_main" => "1", "noinst" => "1" @@ -792,6 +892,9 @@ our %unified_info = ( } }, "programs" => { + "fuzz/acert-test" => { + "noinst" => "1" + }, "fuzz/asn1-test" => { "noinst" => "1" }, @@ -822,9 +925,60 @@ our %unified_info = ( "fuzz/ct-test" => { "noinst" => "1" }, + "fuzz/decoder-test" => { + "noinst" => "1" + }, + "fuzz/dtlsclient-test" => { + "noinst" => "1" + }, + "fuzz/dtlsserver-test" => { + "noinst" => "1" + }, + "fuzz/hashtable-test" => { + "noinst" => "1" + }, + "fuzz/ml-dsa-test" => { + "noinst" => "1" + }, + "fuzz/ml-kem-test" => { + "noinst" => "1" + }, + "fuzz/pem-test" => { + "noinst" => "1" + }, + "fuzz/provider-test" => { + "noinst" => "1" + }, + "fuzz/punycode-test" => { + "noinst" => "1" + }, + "fuzz/quic-client-test" => { + "noinst" => "1" + }, + "fuzz/quic-lcidm-test" => { + "noinst" => "1" + }, + "fuzz/quic-rcidm-test" => { + "noinst" => "1" + }, + "fuzz/quic-server-test" => { + "noinst" => "1" + }, + "fuzz/quic-srtm-test" => { + "noinst" => "1" + }, "fuzz/server-test" => { "noinst" => "1" }, + "fuzz/slh-dsa-test" => { + "noinst" => "1" + }, + "fuzz/smime-test" => { + "noinst" => "1" + }, + "fuzz/v3name-test" => { + "noinst" => "1" + }, "fuzz/x509-test" => { "noinst" => "1" }, @@ -876,18 +1030,30 @@ our %unified_info = ( "test/bftest" => { "noinst" => "1" }, + "test/bio_addr_test" => { + "noinst" => "1" + }, + "test/bio_base64_test" => { + "noinst" => "1" + }, "test/bio_callback_test" => { "noinst" => "1" }, "test/bio_core_test" => { "noinst" => "1" }, + "test/bio_dgram_test" => { + "noinst" => "1" + }, "test/bio_enc_test" => { "noinst" => "1" }, "test/bio_memleak_test" => { "noinst" => "1" }, + "test/bio_meth_test" => { + "noinst" => "1" + }, "test/bio_prefix_text" => { "noinst" => "1" }, @@ -897,6 +1063,9 @@ our %unified_info = ( "test/bio_readbuffer_test" => { "noinst" => "1" }, + "test/bio_tfo_test" => { + "noinst" => "1" + }, "test/bioprinttest" => { "noinst" => "1" }, @@ -906,6 +1075,9 @@ our %unified_info = ( "test/bntest" => { "noinst" => "1" }, + "test/build_wincrypt_test" => { + "noinst" => "1" + }, "test/buildtest_c_aes" => { "noinst" => "1" }, @@ -921,6 +1093,9 @@ our %unified_info = ( "test/buildtest_c_buffer" => { "noinst" => "1" }, + "test/buildtest_c_byteorder" => { + "noinst" => "1" + }, "test/buildtest_c_camellia" => { "noinst" => "1" }, @@ -945,9 +1120,6 @@ our %unified_info = ( "test/buildtest_c_core_dispatch" => { "noinst" => "1" }, - "test/buildtest_c_core_names" => { - "noinst" => "1" - }, "test/buildtest_c_core_object" => { "noinst" => "1" }, @@ -972,6 +1144,9 @@ our %unified_info = ( "test/buildtest_c_e_os2" => { "noinst" => "1" }, + "test/buildtest_c_e_ostime" => { + "noinst" => "1" + }, "test/buildtest_c_ebcdic" => { "noinst" => "1" }, @@ -999,12 +1174,18 @@ our %unified_info = ( "test/buildtest_c_hmac" => { "noinst" => "1" }, + "test/buildtest_c_hpke" => { + "noinst" => "1" + }, "test/buildtest_c_http" => { "noinst" => "1" }, "test/buildtest_c_idea" => { "noinst" => "1" }, + "test/buildtest_c_indicator" => { + "noinst" => "1" + }, "test/buildtest_c_kdf" => { "noinst" => "1" }, @@ -1020,6 +1201,9 @@ our %unified_info = ( "test/buildtest_c_mdc2" => { "noinst" => "1" }, + "test/buildtest_c_ml_kem" => { + "noinst" => "1" + }, "test/buildtest_c_modes" => { "noinst" => "1" }, @@ -1050,6 +1234,9 @@ our %unified_info = ( "test/buildtest_c_provider" => { "noinst" => "1" }, + "test/buildtest_c_quic" => { + "noinst" => "1" + }, "test/buildtest_c_rand" => { "noinst" => "1" }, @@ -1092,6 +1279,9 @@ our %unified_info = ( "test/buildtest_c_symhacks" => { "noinst" => "1" }, + "test/buildtest_c_thread" => { + "noinst" => "1" + }, "test/buildtest_c_tls1" => { "noinst" => "1" }, @@ -1107,6 +1297,12 @@ our %unified_info = ( "test/buildtest_c_whrlpool" => { "noinst" => "1" }, + "test/byteorder_test" => { + "noinst" => "1" + }, + "test/ca_internals_test" => { + "noinst" => "1" + }, "test/casttest" => { "noinst" => "1" }, @@ -1191,6 +1387,9 @@ our %unified_info = ( "test/danetest" => { "noinst" => "1" }, + "test/decoder_propq_test" => { + "noinst" => "1" + }, "test/defltfips_test" => { "noinst" => "1" }, @@ -1263,15 +1462,24 @@ our %unified_info = ( "test/evp_pkey_ctx_new_from_name" => { "noinst" => "1" }, + "test/evp_pkey_dhkem_test" => { + "noinst" => "1" + }, "test/evp_pkey_dparams_test" => { "noinst" => "1" }, "test/evp_pkey_provided_test" => { "noinst" => "1" }, + "test/evp_skey_test" => { + "noinst" => "1" + }, "test/evp_test" => { "noinst" => "1" }, + "test/evp_xof_test" => { + "noinst" => "1" + }, "test/exdatatest" => { "noinst" => "1" }, @@ -1299,6 +1507,9 @@ our %unified_info = ( "test/hmactest" => { "noinst" => "1" }, + "test/hpke_test" => { + "noinst" => "1" + }, "test/http_test" => { "noinst" => "1" }, @@ -1308,12 +1519,18 @@ our %unified_info = ( "test/igetest" => { "noinst" => "1" }, + "test/json_test" => { + "noinst" => "1" + }, "test/keymgmt_internal_test" => { "noinst" => "1" }, "test/lhash_test" => { "noinst" => "1" }, + "test/list_test" => { + "noinst" => "1" + }, "test/localetest" => { "noinst" => "1" }, @@ -1323,9 +1540,21 @@ our %unified_info = ( "test/mdc2test" => { "noinst" => "1" }, + "test/membio_test" => { + "noinst" => "1" + }, "test/memleaktest" => { "noinst" => "1" }, + "test/ml_dsa_test" => { + "noinst" => "1" + }, + "test/ml_kem_evp_extra_test" => { + "noinst" => "1" + }, + "test/ml_kem_internal_test" => { + "noinst" => "1" + }, "test/modes_internal_test" => { "noinst" => "1" }, @@ -1344,6 +1573,9 @@ our %unified_info = ( "test/packettest" => { "noinst" => "1" }, + "test/pairwise_fail_test" => { + "noinst" => "1" + }, "test/param_build_test" => { "noinst" => "1" }, @@ -1368,6 +1600,9 @@ our %unified_info = ( "test/pemtest" => { "noinst" => "1" }, + "test/pkcs12_api_test" => { + "noinst" => "1" + }, "test/pkcs12_format_test" => { "noinst" => "1" }, @@ -1383,6 +1618,9 @@ our %unified_info = ( "test/poly1305_internal_test" => { "noinst" => "1" }, + "test/priority_queue_test" => { + "noinst" => "1" + }, "test/property_test" => { "noinst" => "1" }, @@ -1392,6 +1630,9 @@ our %unified_info = ( "test/provfetchtest" => { "noinst" => "1" }, + "test/provider_default_search_path_test" => { + "noinst" => "1" + }, "test/provider_fallback_test" => { "noinst" => "1" }, @@ -1410,6 +1651,72 @@ our %unified_info = ( "test/punycode_test" => { "noinst" => "1" }, + "test/quic_ackm_test" => { + "noinst" => "1" + }, + "test/quic_cc_test" => { + "noinst" => "1" + }, + "test/quic_cfq_test" => { + "noinst" => "1" + }, + "test/quic_client_test" => { + "noinst" => "1" + }, + "test/quic_fc_test" => { + "noinst" => "1" + }, + "test/quic_fifd_test" => { + "noinst" => "1" + }, + "test/quic_lcidm_test" => { + "noinst" => "1" + }, + "test/quic_multistream_test" => { + "noinst" => "1" + }, + "test/quic_newcid_test" => { + "noinst" => "1" + }, + "test/quic_qlog_test" => { + "noinst" => "1" + }, + "test/quic_radix_test" => { + "noinst" => "1" + }, + "test/quic_rcidm_test" => { + "noinst" => "1" + }, + "test/quic_record_test" => { + "noinst" => "1" + }, + "test/quic_srt_gen_test" => { + "noinst" => "1" + }, + "test/quic_srtm_test" => { + "noinst" => "1" + }, + "test/quic_stream_test" => { + "noinst" => "1" + }, + "test/quic_tserver_test" => { + "noinst" => "1" + }, + "test/quic_txp_test" => { + "noinst" => "1" + }, + "test/quic_txpim_test" => { + "noinst" => "1" + }, + "test/quic_wire_test" => { + "noinst" => "1" + }, + "test/quicapitest" => { + "noinst" => "1" + }, + "test/quicfaultstest" => { + "noinst" => "1" + }, "test/rand_status_test" => { "noinst" => "1" }, @@ -1425,12 +1732,15 @@ our %unified_info = ( "test/rc5test" => { "noinst" => "1" }, - "test/rdrand_sanitytest" => { + "test/rdcpu_sanitytest" => { "noinst" => "1" }, "test/recordlentest" => { "noinst" => "1" }, + "test/rpktest" => { + "noinst" => "1" + }, "test/rsa_complex" => { "noinst" => "1" }, @@ -1443,6 +1753,12 @@ our %unified_info = ( "test/rsa_test" => { "noinst" => "1" }, + "test/rsa_x931_test" => { + "noinst" => "1" + }, + "test/safe_math_test" => { + "noinst" => "1" + }, "test/sanitytest" => { "noinst" => "1" }, @@ -1458,6 +1774,9 @@ our %unified_info = ( "test/siphash_internal_test" => { "noinst" => "1" }, + "test/slh_dsa_test" => { + "noinst" => "1" + }, "test/sm2_internal_test" => { "noinst" => "1" }, @@ -1479,6 +1798,9 @@ our %unified_info = ( "test/ssl_ctx_test" => { "noinst" => "1" }, + "test/ssl_handshake_rtt_test" => { + "noinst" => "1" + }, "test/ssl_old_test" => { "noinst" => "1" }, @@ -1500,12 +1822,18 @@ our %unified_info = ( "test/stack_test" => { "noinst" => "1" }, + "test/strtoultest" => { + "noinst" => "1" + }, "test/sysdefaulttest" => { "noinst" => "1" }, "test/test_test" => { "noinst" => "1" }, + "test/threadpool_test" => { + "noinst" => "1" + }, "test/threadstest" => { "noinst" => "1" }, @@ -1515,12 +1843,18 @@ our %unified_info = ( "test/time_offset_test" => { "noinst" => "1" }, + "test/time_test" => { + "noinst" => "1" + }, "test/tls13ccstest" => { "noinst" => "1" }, "test/tls13encryptiontest" => { "noinst" => "1" }, + "test/tls13groupselection_test" => { + "noinst" => "1" + }, "test/trace_api_test" => { "noinst" => "1" }, @@ -1548,6 +1882,9 @@ our %unified_info = ( "test/wpackettest" => { "noinst" => "1" }, + "test/x509_acert_test" => { + "noinst" => "1" + }, "test/x509_check_cert_pkey_test" => { "noinst" => "1" }, @@ -1557,6 +1894,15 @@ our %unified_info = ( "test/x509_internal_test" => { "noinst" => "1" }, + "test/x509_load_cert_file_test" => { + "noinst" => "1" + }, + "test/x509_req_test" => { + "noinst" => "1" + }, + "test/x509_test" => { + "noinst" => "1" + }, "test/x509_time_test" => { "noinst" => "1" }, @@ -1600,6 +1946,9 @@ our %unified_info = ( "providers/libfips.a" => [ "FIPS_MODULE" ], + "test/endecode_test" => [ + "STATIC_LEGACY" + ], "test/evp_extra_test" => [ "STATIC_LEGACY" ], @@ -1612,14 +1961,21 @@ our %unified_info = ( }, "depends" => { "" => [ + "OpenSSLConfigVersion.cmake", + "crypto/params_idx.c", + "exporters/OpenSSLConfigVersion.cmake", + "exporters/openssl.pc", "include/crypto/bn_conf.h", "include/crypto/dso_conf.h", + "include/internal/param_names.h", "include/openssl/asn1.h", "include/openssl/asn1t.h", "include/openssl/bio.h", "include/openssl/cmp.h", "include/openssl/cms.h", + "include/openssl/comp.h", "include/openssl/conf.h", + "include/openssl/core_names.h", "include/openssl/crmf.h", "include/openssl/crypto.h", "include/openssl/ct.h", @@ -1636,10 +1992,22 @@ our %unified_info = ( "include/openssl/ssl.h", "include/openssl/ui.h", "include/openssl/x509.h", + "include/openssl/x509_acert.h", "include/openssl/x509_vfy.h", "include/openssl/x509v3.h", + "openssl.pc", "test/provider_internal_test.cnf" ], + "OpenSSLConfig.cmake" => [ + "builddata.pm" + ], + "OpenSSLConfigVersion.cmake" => [ + "OpenSSLConfig.cmake", + "builddata.pm" + ], + "apps/ca_internals_test-bin-ca.o" => [ + "apps/progs.h" + ], "apps/lib/cmp_client_test-bin-cmp_mock_srv.o" => [ "apps/progs.h" ], @@ -1785,6 +2153,9 @@ our %unified_info = ( "apps/openssl-bin-sess_id.o" => [ "apps/progs.h" ], + "apps/openssl-bin-skeyutl.o" => [ + "apps/progs.h" + ], "apps/openssl-bin-smime.o" => [ "apps/progs.h" ], @@ -1873,6 +2244,9 @@ our %unified_info = ( "crypto/libcrypto-lib-info.o" => [ "crypto/buildinf.h" ], + "crypto/params_idx.c" => [ + "util/perl|OpenSSL/paramnames.pm" + ], "crypto/rc4/rc4-586.S" => [ "crypto/perlasm/x86asm.pl" ], @@ -2038,6 +2412,9 @@ our %unified_info = ( "doc/html/man1/openssl-sess_id.html" => [ "doc/man1/openssl-sess_id.pod" ], + "doc/html/man1/openssl-skeyutl.html" => [ + "doc/man1/openssl-skeyutl.pod" + ], "doc/html/man1/openssl-smime.html" => [ "doc/man1/openssl-smime.pod" ], @@ -2179,6 +2556,9 @@ our %unified_info = ( "doc/html/man3/BIO_get_ex_new_index.html" => [ "doc/man3/BIO_get_ex_new_index.pod" ], + "doc/html/man3/BIO_get_rpoll_descriptor.html" => [ + "doc/man3/BIO_get_rpoll_descriptor.pod" + ], "doc/html/man3/BIO_meth_new.html" => [ "doc/man3/BIO_meth_new.pod" ], @@ -2215,6 +2595,9 @@ our %unified_info = ( "doc/html/man3/BIO_s_datagram.html" => [ "doc/man3/BIO_s_datagram.pod" ], + "doc/html/man3/BIO_s_dgram_pair.html" => [ + "doc/man3/BIO_s_dgram_pair.pod" + ], "doc/html/man3/BIO_s_fd.html" => [ "doc/man3/BIO_s_fd.pod" ], @@ -2230,6 +2613,9 @@ our %unified_info = ( "doc/html/man3/BIO_s_socket.html" => [ "doc/man3/BIO_s_socket.pod" ], + "doc/html/man3/BIO_sendmmsg.html" => [ + "doc/man3/BIO_sendmmsg.pod" + ], "doc/html/man3/BIO_set_callback.html" => [ "doc/man3/BIO_set_callback.pod" ], @@ -2302,6 +2688,9 @@ our %unified_info = ( "doc/html/man3/BUF_MEM_new.html" => [ "doc/man3/BUF_MEM_new.pod" ], + "doc/html/man3/CMAC_CTX.html" => [ + "doc/man3/CMAC_CTX.pod" + ], "doc/html/man3/CMS_EncryptedData_decrypt.html" => [ "doc/man3/CMS_EncryptedData_decrypt.pod" ], @@ -2368,6 +2757,9 @@ our %unified_info = ( "doc/html/man3/CMS_verify_receipt.html" => [ "doc/man3/CMS_verify_receipt.pod" ], + "doc/html/man3/COMP_CTX_new.html" => [ + "doc/man3/COMP_CTX_new.pod" + ], "doc/html/man3/CONF_modules_free.html" => [ "doc/man3/CONF_modules_free.pod" ], @@ -2467,6 +2859,12 @@ our %unified_info = ( "doc/html/man3/DTLS_set_timer_cb.html" => [ "doc/man3/DTLS_set_timer_cb.pod" ], + "doc/html/man3/DTLSv1_get_timeout.html" => [ + "doc/man3/DTLSv1_get_timeout.pod" + ], + "doc/html/man3/DTLSv1_handle_timeout.html" => [ + "doc/man3/DTLSv1_handle_timeout.pod" + ], "doc/html/man3/DTLSv1_listen.html" => [ "doc/man3/DTLSv1_listen.pod" ], @@ -2605,6 +3003,9 @@ our %unified_info = ( "doc/html/man3/EVP_PKEY_CTX_get0_pkey.html" => [ "doc/man3/EVP_PKEY_CTX_get0_pkey.pod" ], + "doc/html/man3/EVP_PKEY_CTX_get_algor.html" => [ + "doc/man3/EVP_PKEY_CTX_get_algor.pod" + ], "doc/html/man3/EVP_PKEY_CTX_new.html" => [ "doc/man3/EVP_PKEY_CTX_new.pod" ], @@ -2722,6 +3123,12 @@ our %unified_info = ( "doc/html/man3/EVP_SIGNATURE.html" => [ "doc/man3/EVP_SIGNATURE.pod" ], + "doc/html/man3/EVP_SKEY.html" => [ + "doc/man3/EVP_SKEY.pod" + ], + "doc/html/man3/EVP_SKEYMGMT.html" => [ + "doc/man3/EVP_SKEYMGMT.pod" + ], "doc/html/man3/EVP_SealInit.html" => [ "doc/man3/EVP_SealInit.pod" ], @@ -2809,6 +3216,9 @@ our %unified_info = ( "doc/html/man3/EVP_whirlpool.html" => [ "doc/man3/EVP_whirlpool.pod" ], + "doc/html/man3/GENERAL_NAME.html" => [ + "doc/man3/GENERAL_NAME.pod" + ], "doc/html/man3/HMAC.html" => [ "doc/man3/HMAC.pod" ], @@ -2881,9 +3291,15 @@ our %unified_info = ( "doc/html/man3/OPENSSL_load_builtin_modules.html" => [ "doc/man3/OPENSSL_load_builtin_modules.pod" ], + "doc/html/man3/OPENSSL_load_u16_le.html" => [ + "doc/man3/OPENSSL_load_u16_le.pod" + ], "doc/html/man3/OPENSSL_malloc.html" => [ "doc/man3/OPENSSL_malloc.pod" ], + "doc/html/man3/OPENSSL_riscvcap.html" => [ + "doc/man3/OPENSSL_riscvcap.pod" + ], "doc/html/man3/OPENSSL_s390xcap.html" => [ "doc/man3/OPENSSL_s390xcap.pod" ], @@ -2899,12 +3315,18 @@ our %unified_info = ( "doc/html/man3/OSSL_CALLBACK.html" => [ "doc/man3/OSSL_CALLBACK.pod" ], + "doc/html/man3/OSSL_CMP_ATAV_set0.html" => [ + "doc/man3/OSSL_CMP_ATAV_set0.pod" + ], "doc/html/man3/OSSL_CMP_CTX_new.html" => [ "doc/man3/OSSL_CMP_CTX_new.pod" ], "doc/html/man3/OSSL_CMP_HDR_get0_transactionID.html" => [ "doc/man3/OSSL_CMP_HDR_get0_transactionID.pod" ], + "doc/html/man3/OSSL_CMP_ITAV_new_caCerts.html" => [ + "doc/man3/OSSL_CMP_ITAV_new_caCerts.pod" + ], "doc/html/man3/OSSL_CMP_ITAV_set0.html" => [ "doc/man3/OSSL_CMP_ITAV_set0.pod" ], @@ -2974,9 +3396,18 @@ our %unified_info = ( "doc/html/man3/OSSL_ENCODER_to_bio.html" => [ "doc/man3/OSSL_ENCODER_to_bio.pod" ], + "doc/html/man3/OSSL_ERR_STATE_save.html" => [ + "doc/man3/OSSL_ERR_STATE_save.pod" + ], "doc/html/man3/OSSL_ESS_check_signing_certs.html" => [ "doc/man3/OSSL_ESS_check_signing_certs.pod" ], + "doc/html/man3/OSSL_GENERAL_NAMES_print.html" => [ + "doc/man3/OSSL_GENERAL_NAMES_print.pod" + ], + "doc/html/man3/OSSL_HPKE_CTX_new.html" => [ + "doc/man3/OSSL_HPKE_CTX_new.pod" + ], "doc/html/man3/OSSL_HTTP_REQ_CTX.html" => [ "doc/man3/OSSL_HTTP_REQ_CTX.pod" ], @@ -2986,12 +3417,24 @@ our %unified_info = ( "doc/html/man3/OSSL_HTTP_transfer.html" => [ "doc/man3/OSSL_HTTP_transfer.pod" ], + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX.html" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX.pod" + ], + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX_print.html" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX_print.pod" + ], + "doc/html/man3/OSSL_INDICATOR_set_callback.html" => [ + "doc/man3/OSSL_INDICATOR_set_callback.pod" + ], "doc/html/man3/OSSL_ITEM.html" => [ "doc/man3/OSSL_ITEM.pod" ], "doc/html/man3/OSSL_LIB_CTX.html" => [ "doc/man3/OSSL_LIB_CTX.pod" ], + "doc/html/man3/OSSL_LIB_CTX_set_conf_diagnostics.html" => [ + "doc/man3/OSSL_LIB_CTX_set_conf_diagnostics.pod" + ], "doc/html/man3/OSSL_PARAM.html" => [ "doc/man3/OSSL_PARAM.pod" ], @@ -3007,9 +3450,15 @@ our %unified_info = ( "doc/html/man3/OSSL_PARAM_int.html" => [ "doc/man3/OSSL_PARAM_int.pod" ], + "doc/html/man3/OSSL_PARAM_print_to_bio.html" => [ + "doc/man3/OSSL_PARAM_print_to_bio.pod" + ], "doc/html/man3/OSSL_PROVIDER.html" => [ "doc/man3/OSSL_PROVIDER.pod" ], + "doc/html/man3/OSSL_QUIC_client_method.html" => [ + "doc/man3/OSSL_QUIC_client_method.pod" + ], "doc/html/man3/OSSL_SELF_TEST_new.html" => [ "doc/man3/OSSL_SELF_TEST_new.pod" ], @@ -3034,6 +3483,9 @@ our %unified_info = ( "doc/html/man3/OSSL_STORE_open.html" => [ "doc/man3/OSSL_STORE_open.pod" ], + "doc/html/man3/OSSL_sleep.html" => [ + "doc/man3/OSSL_sleep.pod" + ], "doc/html/man3/OSSL_trace_enabled.html" => [ "doc/man3/OSSL_trace_enabled.pod" ], @@ -3049,6 +3501,9 @@ our %unified_info = ( "doc/html/man3/OpenSSL_version.html" => [ "doc/man3/OpenSSL_version.pod" ], + "doc/html/man3/PBMAC1_get1_pbkdf2_param.html" => [ + "doc/man3/PBMAC1_get1_pbkdf2_param.pod" + ], "doc/html/man3/PEM_X509_INFO_read_bio_ex.html" => [ "doc/man3/PEM_X509_INFO_read_bio_ex.pod" ], @@ -3085,6 +3540,9 @@ our %unified_info = ( "doc/html/man3/PKCS12_SAFEBAG_get1_cert.html" => [ "doc/man3/PKCS12_SAFEBAG_get1_cert.pod" ], + "doc/html/man3/PKCS12_SAFEBAG_set0_attrs.html" => [ + "doc/man3/PKCS12_SAFEBAG_set0_attrs.pod" + ], "doc/html/man3/PKCS12_add1_attr_by_NID.html" => [ "doc/man3/PKCS12_add1_attr_by_NID.pod" ], @@ -3358,6 +3816,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set0_CA_list.html" => [ "doc/man3/SSL_CTX_set0_CA_list.pod" ], + "doc/html/man3/SSL_CTX_set1_cert_comp_preference.html" => [ + "doc/man3/SSL_CTX_set1_cert_comp_preference.pod" + ], "doc/html/man3/SSL_CTX_set1_curves.html" => [ "doc/man3/SSL_CTX_set1_curves.pod" ], @@ -3397,6 +3858,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_default_passwd_cb.html" => [ "doc/man3/SSL_CTX_set_default_passwd_cb.pod" ], + "doc/html/man3/SSL_CTX_set_domain_flags.html" => [ + "doc/man3/SSL_CTX_set_domain_flags.pod" + ], "doc/html/man3/SSL_CTX_set_generate_session_id.html" => [ "doc/man3/SSL_CTX_set_generate_session_id.pod" ], @@ -3418,6 +3882,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_msg_callback.html" => [ "doc/man3/SSL_CTX_set_msg_callback.pod" ], + "doc/html/man3/SSL_CTX_set_new_pending_conn_cb.html" => [ + "doc/man3/SSL_CTX_set_new_pending_conn_cb.pod" + ], "doc/html/man3/SSL_CTX_set_num_tickets.html" => [ "doc/man3/SSL_CTX_set_num_tickets.pod" ], @@ -3532,6 +3999,9 @@ our %unified_info = ( "doc/html/man3/SSL_accept.html" => [ "doc/man3/SSL_accept.pod" ], + "doc/html/man3/SSL_accept_stream.html" => [ + "doc/man3/SSL_accept_stream.pod" + ], "doc/html/man3/SSL_alert_type_string.html" => [ "doc/man3/SSL_alert_type_string.pod" ], @@ -3559,9 +4029,21 @@ our %unified_info = ( "doc/html/man3/SSL_free.html" => [ "doc/man3/SSL_free.pod" ], + "doc/html/man3/SSL_get0_connection.html" => [ + "doc/man3/SSL_get0_connection.pod" + ], + "doc/html/man3/SSL_get0_group_name.html" => [ + "doc/man3/SSL_get0_group_name.pod" + ], + "doc/html/man3/SSL_get0_peer_rpk.html" => [ + "doc/man3/SSL_get0_peer_rpk.pod" + ], "doc/html/man3/SSL_get0_peer_scts.html" => [ "doc/man3/SSL_get0_peer_scts.pod" ], + "doc/html/man3/SSL_get1_builtin_sigalgs.html" => [ + "doc/man3/SSL_get1_builtin_sigalgs.pod" + ], "doc/html/man3/SSL_get_SSL_CTX.html" => [ "doc/man3/SSL_get_SSL_CTX.pod" ], @@ -3577,6 +4059,9 @@ our %unified_info = ( "doc/html/man3/SSL_get_client_random.html" => [ "doc/man3/SSL_get_client_random.pod" ], + "doc/html/man3/SSL_get_conn_close_info.html" => [ + "doc/man3/SSL_get_conn_close_info.pod" + ], "doc/html/man3/SSL_get_current_cipher.html" => [ "doc/man3/SSL_get_current_cipher.pod" ], @@ -3586,12 +4071,18 @@ our %unified_info = ( "doc/html/man3/SSL_get_error.html" => [ "doc/man3/SSL_get_error.pod" ], + "doc/html/man3/SSL_get_event_timeout.html" => [ + "doc/man3/SSL_get_event_timeout.pod" + ], "doc/html/man3/SSL_get_extms_support.html" => [ "doc/man3/SSL_get_extms_support.pod" ], "doc/html/man3/SSL_get_fd.html" => [ "doc/man3/SSL_get_fd.pod" ], + "doc/html/man3/SSL_get_handshake_rtt.html" => [ + "doc/man3/SSL_get_handshake_rtt.pod" + ], "doc/html/man3/SSL_get_peer_cert_chain.html" => [ "doc/man3/SSL_get_peer_cert_chain.pod" ], @@ -3610,12 +4101,24 @@ our %unified_info = ( "doc/html/man3/SSL_get_rbio.html" => [ "doc/man3/SSL_get_rbio.pod" ], + "doc/html/man3/SSL_get_rpoll_descriptor.html" => [ + "doc/man3/SSL_get_rpoll_descriptor.pod" + ], "doc/html/man3/SSL_get_session.html" => [ "doc/man3/SSL_get_session.pod" ], "doc/html/man3/SSL_get_shared_sigalgs.html" => [ "doc/man3/SSL_get_shared_sigalgs.pod" ], + "doc/html/man3/SSL_get_stream_id.html" => [ + "doc/man3/SSL_get_stream_id.pod" + ], + "doc/html/man3/SSL_get_stream_read_state.html" => [ + "doc/man3/SSL_get_stream_read_state.pod" + ], + "doc/html/man3/SSL_get_value_uint.html" => [ + "doc/man3/SSL_get_value_uint.pod" + ], "doc/html/man3/SSL_get_verify_result.html" => [ "doc/man3/SSL_get_verify_result.pod" ], @@ -3625,9 +4128,15 @@ our %unified_info = ( "doc/html/man3/SSL_group_to_name.html" => [ "doc/man3/SSL_group_to_name.pod" ], + "doc/html/man3/SSL_handle_events.html" => [ + "doc/man3/SSL_handle_events.pod" + ], "doc/html/man3/SSL_in_init.html" => [ "doc/man3/SSL_in_init.pod" ], + "doc/html/man3/SSL_inject_net_dgram.html" => [ + "doc/man3/SSL_inject_net_dgram.pod" + ], "doc/html/man3/SSL_key_update.html" => [ "doc/man3/SSL_key_update.pod" ], @@ -3640,9 +4149,21 @@ our %unified_info = ( "doc/html/man3/SSL_new.html" => [ "doc/man3/SSL_new.pod" ], + "doc/html/man3/SSL_new_domain.html" => [ + "doc/man3/SSL_new_domain.pod" + ], + "doc/html/man3/SSL_new_listener.html" => [ + "doc/man3/SSL_new_listener.pod" + ], + "doc/html/man3/SSL_new_stream.html" => [ + "doc/man3/SSL_new_stream.pod" + ], "doc/html/man3/SSL_pending.html" => [ "doc/man3/SSL_pending.pod" ], + "doc/html/man3/SSL_poll.html" => [ + "doc/man3/SSL_poll.pod" + ], "doc/html/man3/SSL_read.html" => [ "doc/man3/SSL_read.pod" ], @@ -3658,24 +4179,45 @@ our %unified_info = ( "doc/html/man3/SSL_set1_host.html" => [ "doc/man3/SSL_set1_host.pod" ], + "doc/html/man3/SSL_set1_initial_peer_addr.html" => [ + "doc/man3/SSL_set1_initial_peer_addr.pod" + ], + "doc/html/man3/SSL_set1_server_cert_type.html" => [ + "doc/man3/SSL_set1_server_cert_type.pod" + ], "doc/html/man3/SSL_set_async_callback.html" => [ "doc/man3/SSL_set_async_callback.pod" ], "doc/html/man3/SSL_set_bio.html" => [ "doc/man3/SSL_set_bio.pod" ], + "doc/html/man3/SSL_set_blocking_mode.html" => [ + "doc/man3/SSL_set_blocking_mode.pod" + ], "doc/html/man3/SSL_set_connect_state.html" => [ "doc/man3/SSL_set_connect_state.pod" ], + "doc/html/man3/SSL_set_default_stream_mode.html" => [ + "doc/man3/SSL_set_default_stream_mode.pod" + ], "doc/html/man3/SSL_set_fd.html" => [ "doc/man3/SSL_set_fd.pod" ], + "doc/html/man3/SSL_set_incoming_stream_policy.html" => [ + "doc/man3/SSL_set_incoming_stream_policy.pod" + ], + "doc/html/man3/SSL_set_quic_tls_cbs.html" => [ + "doc/man3/SSL_set_quic_tls_cbs.pod" + ], "doc/html/man3/SSL_set_retry_verify.html" => [ "doc/man3/SSL_set_retry_verify.pod" ], "doc/html/man3/SSL_set_session.html" => [ "doc/man3/SSL_set_session.pod" ], + "doc/html/man3/SSL_set_session_secret_cb.html" => [ + "doc/man3/SSL_set_session_secret_cb.pod" + ], "doc/html/man3/SSL_set_shutdown.html" => [ "doc/man3/SSL_set_shutdown.pod" ], @@ -3688,6 +4230,12 @@ our %unified_info = ( "doc/html/man3/SSL_state_string.html" => [ "doc/man3/SSL_state_string.pod" ], + "doc/html/man3/SSL_stream_conclude.html" => [ + "doc/man3/SSL_stream_conclude.pod" + ], + "doc/html/man3/SSL_stream_reset.html" => [ + "doc/man3/SSL_stream_reset.pod" + ], "doc/html/man3/SSL_want.html" => [ "doc/man3/SSL_want.pod" ], @@ -3697,8 +4245,8 @@ our %unified_info = ( "doc/html/man3/TS_RESP_CTX_new.html" => [ "doc/man3/TS_RESP_CTX_new.pod" ], - "doc/html/man3/TS_VERIFY_CTX_set_certs.html" => [ - "doc/man3/TS_VERIFY_CTX_set_certs.pod" + "doc/html/man3/TS_VERIFY_CTX.html" => [ + "doc/man3/TS_VERIFY_CTX.pod" ], "doc/html/man3/UI_STRING.html" => [ "doc/man3/UI_STRING.pod" @@ -3718,6 +4266,21 @@ our %unified_info = ( "doc/html/man3/X509V3_set_ctx.html" => [ "doc/man3/X509V3_set_ctx.pod" ], + "doc/html/man3/X509_ACERT_add1_attr.html" => [ + "doc/man3/X509_ACERT_add1_attr.pod" + ], + "doc/html/man3/X509_ACERT_add_attr_nconf.html" => [ + "doc/man3/X509_ACERT_add_attr_nconf.pod" + ], + "doc/html/man3/X509_ACERT_get0_holder_baseCertId.html" => [ + "doc/man3/X509_ACERT_get0_holder_baseCertId.pod" + ], + "doc/html/man3/X509_ACERT_get_attr.html" => [ + "doc/man3/X509_ACERT_get_attr.pod" + ], + "doc/html/man3/X509_ACERT_print_ex.html" => [ + "doc/man3/X509_ACERT_print_ex.pod" + ], "doc/html/man3/X509_ALGOR_dup.html" => [ "doc/man3/X509_ALGOR_dup.pod" ], @@ -3766,6 +4329,9 @@ our %unified_info = ( "doc/html/man3/X509_SIG_get0.html" => [ "doc/man3/X509_SIG_get0.pod" ], + "doc/html/man3/X509_STORE_CTX_get_by_subject.html" => [ + "doc/man3/X509_STORE_CTX_get_by_subject.pod" + ], "doc/html/man3/X509_STORE_CTX_get_error.html" => [ "doc/man3/X509_STORE_CTX_get_error.pod" ], @@ -3832,6 +4398,9 @@ our %unified_info = ( "doc/html/man3/X509_get0_uids.html" => [ "doc/man3/X509_get0_uids.pod" ], + "doc/html/man3/X509_get_default_cert_file.html" => [ + "doc/man3/X509_get_default_cert_file.pod" + ], "doc/html/man3/X509_get_extension_flags.html" => [ "doc/man3/X509_get_extension_flags.pod" ], @@ -3955,9 +4524,15 @@ our %unified_info = ( "doc/html/man7/EVP_CIPHER-SM4.html" => [ "doc/man7/EVP_CIPHER-SM4.pod" ], + "doc/html/man7/EVP_KDF-ARGON2.html" => [ + "doc/man7/EVP_KDF-ARGON2.pod" + ], "doc/html/man7/EVP_KDF-HKDF.html" => [ "doc/man7/EVP_KDF-HKDF.pod" ], + "doc/html/man7/EVP_KDF-HMAC-DRBG.html" => [ + "doc/man7/EVP_KDF-HMAC-DRBG.pod" + ], "doc/html/man7/EVP_KDF-KB.html" => [ "doc/man7/EVP_KDF-KB.pod" ], @@ -3973,6 +4548,9 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-PKCS12KDF.html" => [ "doc/man7/EVP_KDF-PKCS12KDF.pod" ], + "doc/html/man7/EVP_KDF-PVKKDF.html" => [ + "doc/man7/EVP_KDF-PVKKDF.pod" + ], "doc/html/man7/EVP_KDF-SCRYPT.html" => [ "doc/man7/EVP_KDF-SCRYPT.pod" ], @@ -3997,9 +4575,18 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-X963.html" => [ "doc/man7/EVP_KDF-X963.pod" ], + "doc/html/man7/EVP_KEM-EC.html" => [ + "doc/man7/EVP_KEM-EC.pod" + ], + "doc/html/man7/EVP_KEM-ML-KEM.html" => [ + "doc/man7/EVP_KEM-ML-KEM.pod" + ], "doc/html/man7/EVP_KEM-RSA.html" => [ "doc/man7/EVP_KEM-RSA.pod" ], + "doc/html/man7/EVP_KEM-X25519.html" => [ + "doc/man7/EVP_KEM-X25519.pod" + ], "doc/html/man7/EVP_KEYEXCH-DH.html" => [ "doc/man7/EVP_KEYEXCH-DH.pod" ], @@ -4033,6 +4620,9 @@ our %unified_info = ( "doc/html/man7/EVP_MD-BLAKE2.html" => [ "doc/man7/EVP_MD-BLAKE2.pod" ], + "doc/html/man7/EVP_MD-KECCAK.html" => [ + "doc/man7/EVP_MD-KECCAK.pod" + ], "doc/html/man7/EVP_MD-MD2.html" => [ "doc/man7/EVP_MD-MD2.pod" ], @@ -4090,15 +4680,27 @@ our %unified_info = ( "doc/html/man7/EVP_PKEY-HMAC.html" => [ "doc/man7/EVP_PKEY-HMAC.pod" ], + "doc/html/man7/EVP_PKEY-ML-DSA.html" => [ + "doc/man7/EVP_PKEY-ML-DSA.pod" + ], + "doc/html/man7/EVP_PKEY-ML-KEM.html" => [ + "doc/man7/EVP_PKEY-ML-KEM.pod" + ], "doc/html/man7/EVP_PKEY-RSA.html" => [ "doc/man7/EVP_PKEY-RSA.pod" ], + "doc/html/man7/EVP_PKEY-SLH-DSA.html" => [ + "doc/man7/EVP_PKEY-SLH-DSA.pod" + ], "doc/html/man7/EVP_PKEY-SM2.html" => [ "doc/man7/EVP_PKEY-SM2.pod" ], "doc/html/man7/EVP_PKEY-X25519.html" => [ "doc/man7/EVP_PKEY-X25519.pod" ], + "doc/html/man7/EVP_RAND-CRNG-TEST.html" => [ + "doc/man7/EVP_RAND-CRNG-TEST.pod" + ], "doc/html/man7/EVP_RAND-CTR-DRBG.html" => [ "doc/man7/EVP_RAND-CTR-DRBG.pod" ], @@ -4108,6 +4710,9 @@ our %unified_info = ( "doc/html/man7/EVP_RAND-HMAC-DRBG.html" => [ "doc/man7/EVP_RAND-HMAC-DRBG.pod" ], + "doc/html/man7/EVP_RAND-JITTER.html" => [ + "doc/man7/EVP_RAND-JITTER.pod" + ], "doc/html/man7/EVP_RAND-SEED-SRC.html" => [ "doc/man7/EVP_RAND-SEED-SRC.pod" ], @@ -4129,9 +4734,15 @@ our %unified_info = ( "doc/html/man7/EVP_SIGNATURE-HMAC.html" => [ "doc/man7/EVP_SIGNATURE-HMAC.pod" ], + "doc/html/man7/EVP_SIGNATURE-ML-DSA.html" => [ + "doc/man7/EVP_SIGNATURE-ML-DSA.pod" + ], "doc/html/man7/EVP_SIGNATURE-RSA.html" => [ "doc/man7/EVP_SIGNATURE-RSA.pod" ], + "doc/html/man7/EVP_SIGNATURE-SLH-DSA.html" => [ + "doc/man7/EVP_SIGNATURE-SLH-DSA.pod" + ], "doc/html/man7/OSSL_PROVIDER-FIPS.html" => [ "doc/man7/OSSL_PROVIDER-FIPS.pod" ], @@ -4147,6 +4758,9 @@ our %unified_info = ( "doc/html/man7/OSSL_PROVIDER-null.html" => [ "doc/man7/OSSL_PROVIDER-null.pod" ], + "doc/html/man7/OSSL_STORE-winstore.html" => [ + "doc/man7/OSSL_STORE-winstore.pod" + ], "doc/html/man7/RAND.html" => [ "doc/man7/RAND.pod" ], @@ -4159,9 +4773,6 @@ our %unified_info = ( "doc/html/man7/bio.html" => [ "doc/man7/bio.pod" ], - "doc/html/man7/crypto.html" => [ - "doc/man7/crypto.pod" - ], "doc/html/man7/ct.html" => [ "doc/man7/ct.pod" ], @@ -4192,9 +4803,6 @@ our %unified_info = ( "doc/html/man7/life_cycle-rand.html" => [ "doc/man7/life_cycle-rand.pod" ], - "doc/html/man7/migration_guide.html" => [ - "doc/man7/migration_guide.pod" - ], "doc/html/man7/openssl-core.h.html" => [ "doc/man7/openssl-core.h.pod" ], @@ -4210,12 +4818,66 @@ our %unified_info = ( "doc/html/man7/openssl-glossary.html" => [ "doc/man7/openssl-glossary.pod" ], + "doc/html/man7/openssl-qlog.html" => [ + "doc/man7/openssl-qlog.pod" + ], + "doc/html/man7/openssl-quic-concurrency.html" => [ + "doc/man7/openssl-quic-concurrency.pod" + ], + "doc/html/man7/openssl-quic.html" => [ + "doc/man7/openssl-quic.pod" + ], "doc/html/man7/openssl-threads.html" => [ "doc/man7/openssl-threads.pod" ], "doc/html/man7/openssl_user_macros.html" => [ "doc/man7/openssl_user_macros.pod" ], + "doc/html/man7/ossl-guide-introduction.html" => [ + "doc/man7/ossl-guide-introduction.pod" + ], + "doc/html/man7/ossl-guide-libcrypto-introduction.html" => [ + "doc/man7/ossl-guide-libcrypto-introduction.pod" + ], + "doc/html/man7/ossl-guide-libraries-introduction.html" => [ + "doc/man7/ossl-guide-libraries-introduction.pod" + ], + "doc/html/man7/ossl-guide-libssl-introduction.html" => [ + "doc/man7/ossl-guide-libssl-introduction.pod" + ], + "doc/html/man7/ossl-guide-migration.html" => [ + "doc/man7/ossl-guide-migration.pod" + ], + "doc/html/man7/ossl-guide-quic-client-block.html" => [ + "doc/man7/ossl-guide-quic-client-block.pod" + ], + "doc/html/man7/ossl-guide-quic-client-non-block.html" => [ + "doc/man7/ossl-guide-quic-client-non-block.pod" + ], + "doc/html/man7/ossl-guide-quic-introduction.html" => [ + "doc/man7/ossl-guide-quic-introduction.pod" + ], + "doc/html/man7/ossl-guide-quic-multi-stream.html" => [ + "doc/man7/ossl-guide-quic-multi-stream.pod" + ], + "doc/html/man7/ossl-guide-quic-server-block.html" => [ + "doc/man7/ossl-guide-quic-server-block.pod" + ], + "doc/html/man7/ossl-guide-quic-server-non-block.html" => [ + "doc/man7/ossl-guide-quic-server-non-block.pod" + ], + "doc/html/man7/ossl-guide-tls-client-block.html" => [ + "doc/man7/ossl-guide-tls-client-block.pod" + ], + "doc/html/man7/ossl-guide-tls-client-non-block.html" => [ + "doc/man7/ossl-guide-tls-client-non-block.pod" + ], + "doc/html/man7/ossl-guide-tls-introduction.html" => [ + "doc/man7/ossl-guide-tls-introduction.pod" + ], + "doc/html/man7/ossl-guide-tls-server-block.html" => [ + "doc/man7/ossl-guide-tls-server-block.pod" + ], "doc/html/man7/ossl_store-file.html" => [ "doc/man7/ossl_store-file.pod" ], @@ -4270,6 +4932,9 @@ our %unified_info = ( "doc/html/man7/provider-signature.html" => [ "doc/man7/provider-signature.pod" ], + "doc/html/man7/provider-skeymgmt.html" => [ + "doc/man7/provider-skeymgmt.pod" + ], "doc/html/man7/provider-storemgmt.html" => [ "doc/man7/provider-storemgmt.pod" ], @@ -4279,9 +4944,6 @@ our %unified_info = ( "doc/html/man7/proxy-certificates.html" => [ "doc/man7/proxy-certificates.pod" ], - "doc/html/man7/ssl.html" => [ - "doc/man7/ssl.pod" - ], "doc/html/man7/x509.html" => [ "doc/man7/x509.pod" ], @@ -4429,6 +5091,9 @@ our %unified_info = ( "doc/man/man1/openssl-sess_id.1" => [ "doc/man1/openssl-sess_id.pod" ], + "doc/man/man1/openssl-skeyutl.1" => [ + "doc/man1/openssl-skeyutl.pod" + ], "doc/man/man1/openssl-smime.1" => [ "doc/man1/openssl-smime.pod" ], @@ -4570,6 +5235,9 @@ our %unified_info = ( "doc/man/man3/BIO_get_ex_new_index.3" => [ "doc/man3/BIO_get_ex_new_index.pod" ], + "doc/man/man3/BIO_get_rpoll_descriptor.3" => [ + "doc/man3/BIO_get_rpoll_descriptor.pod" + ], "doc/man/man3/BIO_meth_new.3" => [ "doc/man3/BIO_meth_new.pod" ], @@ -4606,6 +5274,9 @@ our %unified_info = ( "doc/man/man3/BIO_s_datagram.3" => [ "doc/man3/BIO_s_datagram.pod" ], + "doc/man/man3/BIO_s_dgram_pair.3" => [ + "doc/man3/BIO_s_dgram_pair.pod" + ], "doc/man/man3/BIO_s_fd.3" => [ "doc/man3/BIO_s_fd.pod" ], @@ -4621,6 +5292,9 @@ our %unified_info = ( "doc/man/man3/BIO_s_socket.3" => [ "doc/man3/BIO_s_socket.pod" ], + "doc/man/man3/BIO_sendmmsg.3" => [ + "doc/man3/BIO_sendmmsg.pod" + ], "doc/man/man3/BIO_set_callback.3" => [ "doc/man3/BIO_set_callback.pod" ], @@ -4693,6 +5367,9 @@ our %unified_info = ( "doc/man/man3/BUF_MEM_new.3" => [ "doc/man3/BUF_MEM_new.pod" ], + "doc/man/man3/CMAC_CTX.3" => [ + "doc/man3/CMAC_CTX.pod" + ], "doc/man/man3/CMS_EncryptedData_decrypt.3" => [ "doc/man3/CMS_EncryptedData_decrypt.pod" ], @@ -4759,6 +5436,9 @@ our %unified_info = ( "doc/man/man3/CMS_verify_receipt.3" => [ "doc/man3/CMS_verify_receipt.pod" ], + "doc/man/man3/COMP_CTX_new.3" => [ + "doc/man3/COMP_CTX_new.pod" + ], "doc/man/man3/CONF_modules_free.3" => [ "doc/man3/CONF_modules_free.pod" ], @@ -4858,6 +5538,12 @@ our %unified_info = ( "doc/man/man3/DTLS_set_timer_cb.3" => [ "doc/man3/DTLS_set_timer_cb.pod" ], + "doc/man/man3/DTLSv1_get_timeout.3" => [ + "doc/man3/DTLSv1_get_timeout.pod" + ], + "doc/man/man3/DTLSv1_handle_timeout.3" => [ + "doc/man3/DTLSv1_handle_timeout.pod" + ], "doc/man/man3/DTLSv1_listen.3" => [ "doc/man3/DTLSv1_listen.pod" ], @@ -4996,6 +5682,9 @@ our %unified_info = ( "doc/man/man3/EVP_PKEY_CTX_get0_pkey.3" => [ "doc/man3/EVP_PKEY_CTX_get0_pkey.pod" ], + "doc/man/man3/EVP_PKEY_CTX_get_algor.3" => [ + "doc/man3/EVP_PKEY_CTX_get_algor.pod" + ], "doc/man/man3/EVP_PKEY_CTX_new.3" => [ "doc/man3/EVP_PKEY_CTX_new.pod" ], @@ -5113,6 +5802,12 @@ our %unified_info = ( "doc/man/man3/EVP_SIGNATURE.3" => [ "doc/man3/EVP_SIGNATURE.pod" ], + "doc/man/man3/EVP_SKEY.3" => [ + "doc/man3/EVP_SKEY.pod" + ], + "doc/man/man3/EVP_SKEYMGMT.3" => [ + "doc/man3/EVP_SKEYMGMT.pod" + ], "doc/man/man3/EVP_SealInit.3" => [ "doc/man3/EVP_SealInit.pod" ], @@ -5200,6 +5895,9 @@ our %unified_info = ( "doc/man/man3/EVP_whirlpool.3" => [ "doc/man3/EVP_whirlpool.pod" ], + "doc/man/man3/GENERAL_NAME.3" => [ + "doc/man3/GENERAL_NAME.pod" + ], "doc/man/man3/HMAC.3" => [ "doc/man3/HMAC.pod" ], @@ -5272,9 +5970,15 @@ our %unified_info = ( "doc/man/man3/OPENSSL_load_builtin_modules.3" => [ "doc/man3/OPENSSL_load_builtin_modules.pod" ], + "doc/man/man3/OPENSSL_load_u16_le.3" => [ + "doc/man3/OPENSSL_load_u16_le.pod" + ], "doc/man/man3/OPENSSL_malloc.3" => [ "doc/man3/OPENSSL_malloc.pod" ], + "doc/man/man3/OPENSSL_riscvcap.3" => [ + "doc/man3/OPENSSL_riscvcap.pod" + ], "doc/man/man3/OPENSSL_s390xcap.3" => [ "doc/man3/OPENSSL_s390xcap.pod" ], @@ -5290,12 +5994,18 @@ our %unified_info = ( "doc/man/man3/OSSL_CALLBACK.3" => [ "doc/man3/OSSL_CALLBACK.pod" ], + "doc/man/man3/OSSL_CMP_ATAV_set0.3" => [ + "doc/man3/OSSL_CMP_ATAV_set0.pod" + ], "doc/man/man3/OSSL_CMP_CTX_new.3" => [ "doc/man3/OSSL_CMP_CTX_new.pod" ], "doc/man/man3/OSSL_CMP_HDR_get0_transactionID.3" => [ "doc/man3/OSSL_CMP_HDR_get0_transactionID.pod" ], + "doc/man/man3/OSSL_CMP_ITAV_new_caCerts.3" => [ + "doc/man3/OSSL_CMP_ITAV_new_caCerts.pod" + ], "doc/man/man3/OSSL_CMP_ITAV_set0.3" => [ "doc/man3/OSSL_CMP_ITAV_set0.pod" ], @@ -5365,9 +6075,18 @@ our %unified_info = ( "doc/man/man3/OSSL_ENCODER_to_bio.3" => [ "doc/man3/OSSL_ENCODER_to_bio.pod" ], + "doc/man/man3/OSSL_ERR_STATE_save.3" => [ + "doc/man3/OSSL_ERR_STATE_save.pod" + ], "doc/man/man3/OSSL_ESS_check_signing_certs.3" => [ "doc/man3/OSSL_ESS_check_signing_certs.pod" ], + "doc/man/man3/OSSL_GENERAL_NAMES_print.3" => [ + "doc/man3/OSSL_GENERAL_NAMES_print.pod" + ], + "doc/man/man3/OSSL_HPKE_CTX_new.3" => [ + "doc/man3/OSSL_HPKE_CTX_new.pod" + ], "doc/man/man3/OSSL_HTTP_REQ_CTX.3" => [ "doc/man3/OSSL_HTTP_REQ_CTX.pod" ], @@ -5377,12 +6096,24 @@ our %unified_info = ( "doc/man/man3/OSSL_HTTP_transfer.3" => [ "doc/man3/OSSL_HTTP_transfer.pod" ], + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX.3" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX.pod" + ], + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX_print.3" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX_print.pod" + ], + "doc/man/man3/OSSL_INDICATOR_set_callback.3" => [ + "doc/man3/OSSL_INDICATOR_set_callback.pod" + ], "doc/man/man3/OSSL_ITEM.3" => [ "doc/man3/OSSL_ITEM.pod" ], "doc/man/man3/OSSL_LIB_CTX.3" => [ "doc/man3/OSSL_LIB_CTX.pod" ], + "doc/man/man3/OSSL_LIB_CTX_set_conf_diagnostics.3" => [ + "doc/man3/OSSL_LIB_CTX_set_conf_diagnostics.pod" + ], "doc/man/man3/OSSL_PARAM.3" => [ "doc/man3/OSSL_PARAM.pod" ], @@ -5398,9 +6129,15 @@ our %unified_info = ( "doc/man/man3/OSSL_PARAM_int.3" => [ "doc/man3/OSSL_PARAM_int.pod" ], + "doc/man/man3/OSSL_PARAM_print_to_bio.3" => [ + "doc/man3/OSSL_PARAM_print_to_bio.pod" + ], "doc/man/man3/OSSL_PROVIDER.3" => [ "doc/man3/OSSL_PROVIDER.pod" ], + "doc/man/man3/OSSL_QUIC_client_method.3" => [ + "doc/man3/OSSL_QUIC_client_method.pod" + ], "doc/man/man3/OSSL_SELF_TEST_new.3" => [ "doc/man3/OSSL_SELF_TEST_new.pod" ], @@ -5425,6 +6162,9 @@ our %unified_info = ( "doc/man/man3/OSSL_STORE_open.3" => [ "doc/man3/OSSL_STORE_open.pod" ], + "doc/man/man3/OSSL_sleep.3" => [ + "doc/man3/OSSL_sleep.pod" + ], "doc/man/man3/OSSL_trace_enabled.3" => [ "doc/man3/OSSL_trace_enabled.pod" ], @@ -5440,6 +6180,9 @@ our %unified_info = ( "doc/man/man3/OpenSSL_version.3" => [ "doc/man3/OpenSSL_version.pod" ], + "doc/man/man3/PBMAC1_get1_pbkdf2_param.3" => [ + "doc/man3/PBMAC1_get1_pbkdf2_param.pod" + ], "doc/man/man3/PEM_X509_INFO_read_bio_ex.3" => [ "doc/man3/PEM_X509_INFO_read_bio_ex.pod" ], @@ -5476,6 +6219,9 @@ our %unified_info = ( "doc/man/man3/PKCS12_SAFEBAG_get1_cert.3" => [ "doc/man3/PKCS12_SAFEBAG_get1_cert.pod" ], + "doc/man/man3/PKCS12_SAFEBAG_set0_attrs.3" => [ + "doc/man3/PKCS12_SAFEBAG_set0_attrs.pod" + ], "doc/man/man3/PKCS12_add1_attr_by_NID.3" => [ "doc/man3/PKCS12_add1_attr_by_NID.pod" ], @@ -5749,6 +6495,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set0_CA_list.3" => [ "doc/man3/SSL_CTX_set0_CA_list.pod" ], + "doc/man/man3/SSL_CTX_set1_cert_comp_preference.3" => [ + "doc/man3/SSL_CTX_set1_cert_comp_preference.pod" + ], "doc/man/man3/SSL_CTX_set1_curves.3" => [ "doc/man3/SSL_CTX_set1_curves.pod" ], @@ -5788,6 +6537,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_default_passwd_cb.3" => [ "doc/man3/SSL_CTX_set_default_passwd_cb.pod" ], + "doc/man/man3/SSL_CTX_set_domain_flags.3" => [ + "doc/man3/SSL_CTX_set_domain_flags.pod" + ], "doc/man/man3/SSL_CTX_set_generate_session_id.3" => [ "doc/man3/SSL_CTX_set_generate_session_id.pod" ], @@ -5809,6 +6561,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_msg_callback.3" => [ "doc/man3/SSL_CTX_set_msg_callback.pod" ], + "doc/man/man3/SSL_CTX_set_new_pending_conn_cb.3" => [ + "doc/man3/SSL_CTX_set_new_pending_conn_cb.pod" + ], "doc/man/man3/SSL_CTX_set_num_tickets.3" => [ "doc/man3/SSL_CTX_set_num_tickets.pod" ], @@ -5923,6 +6678,9 @@ our %unified_info = ( "doc/man/man3/SSL_accept.3" => [ "doc/man3/SSL_accept.pod" ], + "doc/man/man3/SSL_accept_stream.3" => [ + "doc/man3/SSL_accept_stream.pod" + ], "doc/man/man3/SSL_alert_type_string.3" => [ "doc/man3/SSL_alert_type_string.pod" ], @@ -5950,9 +6708,21 @@ our %unified_info = ( "doc/man/man3/SSL_free.3" => [ "doc/man3/SSL_free.pod" ], + "doc/man/man3/SSL_get0_connection.3" => [ + "doc/man3/SSL_get0_connection.pod" + ], + "doc/man/man3/SSL_get0_group_name.3" => [ + "doc/man3/SSL_get0_group_name.pod" + ], + "doc/man/man3/SSL_get0_peer_rpk.3" => [ + "doc/man3/SSL_get0_peer_rpk.pod" + ], "doc/man/man3/SSL_get0_peer_scts.3" => [ "doc/man3/SSL_get0_peer_scts.pod" ], + "doc/man/man3/SSL_get1_builtin_sigalgs.3" => [ + "doc/man3/SSL_get1_builtin_sigalgs.pod" + ], "doc/man/man3/SSL_get_SSL_CTX.3" => [ "doc/man3/SSL_get_SSL_CTX.pod" ], @@ -5968,6 +6738,9 @@ our %unified_info = ( "doc/man/man3/SSL_get_client_random.3" => [ "doc/man3/SSL_get_client_random.pod" ], + "doc/man/man3/SSL_get_conn_close_info.3" => [ + "doc/man3/SSL_get_conn_close_info.pod" + ], "doc/man/man3/SSL_get_current_cipher.3" => [ "doc/man3/SSL_get_current_cipher.pod" ], @@ -5977,12 +6750,18 @@ our %unified_info = ( "doc/man/man3/SSL_get_error.3" => [ "doc/man3/SSL_get_error.pod" ], + "doc/man/man3/SSL_get_event_timeout.3" => [ + "doc/man3/SSL_get_event_timeout.pod" + ], "doc/man/man3/SSL_get_extms_support.3" => [ "doc/man3/SSL_get_extms_support.pod" ], "doc/man/man3/SSL_get_fd.3" => [ "doc/man3/SSL_get_fd.pod" ], + "doc/man/man3/SSL_get_handshake_rtt.3" => [ + "doc/man3/SSL_get_handshake_rtt.pod" + ], "doc/man/man3/SSL_get_peer_cert_chain.3" => [ "doc/man3/SSL_get_peer_cert_chain.pod" ], @@ -6001,12 +6780,24 @@ our %unified_info = ( "doc/man/man3/SSL_get_rbio.3" => [ "doc/man3/SSL_get_rbio.pod" ], + "doc/man/man3/SSL_get_rpoll_descriptor.3" => [ + "doc/man3/SSL_get_rpoll_descriptor.pod" + ], "doc/man/man3/SSL_get_session.3" => [ "doc/man3/SSL_get_session.pod" ], "doc/man/man3/SSL_get_shared_sigalgs.3" => [ "doc/man3/SSL_get_shared_sigalgs.pod" ], + "doc/man/man3/SSL_get_stream_id.3" => [ + "doc/man3/SSL_get_stream_id.pod" + ], + "doc/man/man3/SSL_get_stream_read_state.3" => [ + "doc/man3/SSL_get_stream_read_state.pod" + ], + "doc/man/man3/SSL_get_value_uint.3" => [ + "doc/man3/SSL_get_value_uint.pod" + ], "doc/man/man3/SSL_get_verify_result.3" => [ "doc/man3/SSL_get_verify_result.pod" ], @@ -6016,9 +6807,15 @@ our %unified_info = ( "doc/man/man3/SSL_group_to_name.3" => [ "doc/man3/SSL_group_to_name.pod" ], + "doc/man/man3/SSL_handle_events.3" => [ + "doc/man3/SSL_handle_events.pod" + ], "doc/man/man3/SSL_in_init.3" => [ "doc/man3/SSL_in_init.pod" ], + "doc/man/man3/SSL_inject_net_dgram.3" => [ + "doc/man3/SSL_inject_net_dgram.pod" + ], "doc/man/man3/SSL_key_update.3" => [ "doc/man3/SSL_key_update.pod" ], @@ -6031,9 +6828,21 @@ our %unified_info = ( "doc/man/man3/SSL_new.3" => [ "doc/man3/SSL_new.pod" ], + "doc/man/man3/SSL_new_domain.3" => [ + "doc/man3/SSL_new_domain.pod" + ], + "doc/man/man3/SSL_new_listener.3" => [ + "doc/man3/SSL_new_listener.pod" + ], + "doc/man/man3/SSL_new_stream.3" => [ + "doc/man3/SSL_new_stream.pod" + ], "doc/man/man3/SSL_pending.3" => [ "doc/man3/SSL_pending.pod" ], + "doc/man/man3/SSL_poll.3" => [ + "doc/man3/SSL_poll.pod" + ], "doc/man/man3/SSL_read.3" => [ "doc/man3/SSL_read.pod" ], @@ -6049,24 +6858,45 @@ our %unified_info = ( "doc/man/man3/SSL_set1_host.3" => [ "doc/man3/SSL_set1_host.pod" ], + "doc/man/man3/SSL_set1_initial_peer_addr.3" => [ + "doc/man3/SSL_set1_initial_peer_addr.pod" + ], + "doc/man/man3/SSL_set1_server_cert_type.3" => [ + "doc/man3/SSL_set1_server_cert_type.pod" + ], "doc/man/man3/SSL_set_async_callback.3" => [ "doc/man3/SSL_set_async_callback.pod" ], "doc/man/man3/SSL_set_bio.3" => [ "doc/man3/SSL_set_bio.pod" ], + "doc/man/man3/SSL_set_blocking_mode.3" => [ + "doc/man3/SSL_set_blocking_mode.pod" + ], "doc/man/man3/SSL_set_connect_state.3" => [ "doc/man3/SSL_set_connect_state.pod" ], + "doc/man/man3/SSL_set_default_stream_mode.3" => [ + "doc/man3/SSL_set_default_stream_mode.pod" + ], "doc/man/man3/SSL_set_fd.3" => [ "doc/man3/SSL_set_fd.pod" ], + "doc/man/man3/SSL_set_incoming_stream_policy.3" => [ + "doc/man3/SSL_set_incoming_stream_policy.pod" + ], + "doc/man/man3/SSL_set_quic_tls_cbs.3" => [ + "doc/man3/SSL_set_quic_tls_cbs.pod" + ], "doc/man/man3/SSL_set_retry_verify.3" => [ "doc/man3/SSL_set_retry_verify.pod" ], "doc/man/man3/SSL_set_session.3" => [ "doc/man3/SSL_set_session.pod" ], + "doc/man/man3/SSL_set_session_secret_cb.3" => [ + "doc/man3/SSL_set_session_secret_cb.pod" + ], "doc/man/man3/SSL_set_shutdown.3" => [ "doc/man3/SSL_set_shutdown.pod" ], @@ -6079,6 +6909,12 @@ our %unified_info = ( "doc/man/man3/SSL_state_string.3" => [ "doc/man3/SSL_state_string.pod" ], + "doc/man/man3/SSL_stream_conclude.3" => [ + "doc/man3/SSL_stream_conclude.pod" + ], + "doc/man/man3/SSL_stream_reset.3" => [ + "doc/man3/SSL_stream_reset.pod" + ], "doc/man/man3/SSL_want.3" => [ "doc/man3/SSL_want.pod" ], @@ -6088,8 +6924,8 @@ our %unified_info = ( "doc/man/man3/TS_RESP_CTX_new.3" => [ "doc/man3/TS_RESP_CTX_new.pod" ], - "doc/man/man3/TS_VERIFY_CTX_set_certs.3" => [ - "doc/man3/TS_VERIFY_CTX_set_certs.pod" + "doc/man/man3/TS_VERIFY_CTX.3" => [ + "doc/man3/TS_VERIFY_CTX.pod" ], "doc/man/man3/UI_STRING.3" => [ "doc/man3/UI_STRING.pod" @@ -6109,6 +6945,21 @@ our %unified_info = ( "doc/man/man3/X509V3_set_ctx.3" => [ "doc/man3/X509V3_set_ctx.pod" ], + "doc/man/man3/X509_ACERT_add1_attr.3" => [ + "doc/man3/X509_ACERT_add1_attr.pod" + ], + "doc/man/man3/X509_ACERT_add_attr_nconf.3" => [ + "doc/man3/X509_ACERT_add_attr_nconf.pod" + ], + "doc/man/man3/X509_ACERT_get0_holder_baseCertId.3" => [ + "doc/man3/X509_ACERT_get0_holder_baseCertId.pod" + ], + "doc/man/man3/X509_ACERT_get_attr.3" => [ + "doc/man3/X509_ACERT_get_attr.pod" + ], + "doc/man/man3/X509_ACERT_print_ex.3" => [ + "doc/man3/X509_ACERT_print_ex.pod" + ], "doc/man/man3/X509_ALGOR_dup.3" => [ "doc/man3/X509_ALGOR_dup.pod" ], @@ -6157,6 +7008,9 @@ our %unified_info = ( "doc/man/man3/X509_SIG_get0.3" => [ "doc/man3/X509_SIG_get0.pod" ], + "doc/man/man3/X509_STORE_CTX_get_by_subject.3" => [ + "doc/man3/X509_STORE_CTX_get_by_subject.pod" + ], "doc/man/man3/X509_STORE_CTX_get_error.3" => [ "doc/man3/X509_STORE_CTX_get_error.pod" ], @@ -6223,6 +7077,9 @@ our %unified_info = ( "doc/man/man3/X509_get0_uids.3" => [ "doc/man3/X509_get0_uids.pod" ], + "doc/man/man3/X509_get_default_cert_file.3" => [ + "doc/man3/X509_get_default_cert_file.pod" + ], "doc/man/man3/X509_get_extension_flags.3" => [ "doc/man3/X509_get_extension_flags.pod" ], @@ -6346,9 +7203,15 @@ our %unified_info = ( "doc/man/man7/EVP_CIPHER-SM4.7" => [ "doc/man7/EVP_CIPHER-SM4.pod" ], + "doc/man/man7/EVP_KDF-ARGON2.7" => [ + "doc/man7/EVP_KDF-ARGON2.pod" + ], "doc/man/man7/EVP_KDF-HKDF.7" => [ "doc/man7/EVP_KDF-HKDF.pod" ], + "doc/man/man7/EVP_KDF-HMAC-DRBG.7" => [ + "doc/man7/EVP_KDF-HMAC-DRBG.pod" + ], "doc/man/man7/EVP_KDF-KB.7" => [ "doc/man7/EVP_KDF-KB.pod" ], @@ -6364,6 +7227,9 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-PKCS12KDF.7" => [ "doc/man7/EVP_KDF-PKCS12KDF.pod" ], + "doc/man/man7/EVP_KDF-PVKKDF.7" => [ + "doc/man7/EVP_KDF-PVKKDF.pod" + ], "doc/man/man7/EVP_KDF-SCRYPT.7" => [ "doc/man7/EVP_KDF-SCRYPT.pod" ], @@ -6388,9 +7254,18 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-X963.7" => [ "doc/man7/EVP_KDF-X963.pod" ], + "doc/man/man7/EVP_KEM-EC.7" => [ + "doc/man7/EVP_KEM-EC.pod" + ], + "doc/man/man7/EVP_KEM-ML-KEM.7" => [ + "doc/man7/EVP_KEM-ML-KEM.pod" + ], "doc/man/man7/EVP_KEM-RSA.7" => [ "doc/man7/EVP_KEM-RSA.pod" ], + "doc/man/man7/EVP_KEM-X25519.7" => [ + "doc/man7/EVP_KEM-X25519.pod" + ], "doc/man/man7/EVP_KEYEXCH-DH.7" => [ "doc/man7/EVP_KEYEXCH-DH.pod" ], @@ -6424,6 +7299,9 @@ our %unified_info = ( "doc/man/man7/EVP_MD-BLAKE2.7" => [ "doc/man7/EVP_MD-BLAKE2.pod" ], + "doc/man/man7/EVP_MD-KECCAK.7" => [ + "doc/man7/EVP_MD-KECCAK.pod" + ], "doc/man/man7/EVP_MD-MD2.7" => [ "doc/man7/EVP_MD-MD2.pod" ], @@ -6481,15 +7359,27 @@ our %unified_info = ( "doc/man/man7/EVP_PKEY-HMAC.7" => [ "doc/man7/EVP_PKEY-HMAC.pod" ], + "doc/man/man7/EVP_PKEY-ML-DSA.7" => [ + "doc/man7/EVP_PKEY-ML-DSA.pod" + ], + "doc/man/man7/EVP_PKEY-ML-KEM.7" => [ + "doc/man7/EVP_PKEY-ML-KEM.pod" + ], "doc/man/man7/EVP_PKEY-RSA.7" => [ "doc/man7/EVP_PKEY-RSA.pod" ], + "doc/man/man7/EVP_PKEY-SLH-DSA.7" => [ + "doc/man7/EVP_PKEY-SLH-DSA.pod" + ], "doc/man/man7/EVP_PKEY-SM2.7" => [ "doc/man7/EVP_PKEY-SM2.pod" ], "doc/man/man7/EVP_PKEY-X25519.7" => [ "doc/man7/EVP_PKEY-X25519.pod" ], + "doc/man/man7/EVP_RAND-CRNG-TEST.7" => [ + "doc/man7/EVP_RAND-CRNG-TEST.pod" + ], "doc/man/man7/EVP_RAND-CTR-DRBG.7" => [ "doc/man7/EVP_RAND-CTR-DRBG.pod" ], @@ -6499,6 +7389,9 @@ our %unified_info = ( "doc/man/man7/EVP_RAND-HMAC-DRBG.7" => [ "doc/man7/EVP_RAND-HMAC-DRBG.pod" ], + "doc/man/man7/EVP_RAND-JITTER.7" => [ + "doc/man7/EVP_RAND-JITTER.pod" + ], "doc/man/man7/EVP_RAND-SEED-SRC.7" => [ "doc/man7/EVP_RAND-SEED-SRC.pod" ], @@ -6520,9 +7413,15 @@ our %unified_info = ( "doc/man/man7/EVP_SIGNATURE-HMAC.7" => [ "doc/man7/EVP_SIGNATURE-HMAC.pod" ], + "doc/man/man7/EVP_SIGNATURE-ML-DSA.7" => [ + "doc/man7/EVP_SIGNATURE-ML-DSA.pod" + ], "doc/man/man7/EVP_SIGNATURE-RSA.7" => [ "doc/man7/EVP_SIGNATURE-RSA.pod" ], + "doc/man/man7/EVP_SIGNATURE-SLH-DSA.7" => [ + "doc/man7/EVP_SIGNATURE-SLH-DSA.pod" + ], "doc/man/man7/OSSL_PROVIDER-FIPS.7" => [ "doc/man7/OSSL_PROVIDER-FIPS.pod" ], @@ -6538,6 +7437,9 @@ our %unified_info = ( "doc/man/man7/OSSL_PROVIDER-null.7" => [ "doc/man7/OSSL_PROVIDER-null.pod" ], + "doc/man/man7/OSSL_STORE-winstore.7" => [ + "doc/man7/OSSL_STORE-winstore.pod" + ], "doc/man/man7/RAND.7" => [ "doc/man7/RAND.pod" ], @@ -6550,9 +7452,6 @@ our %unified_info = ( "doc/man/man7/bio.7" => [ "doc/man7/bio.pod" ], - "doc/man/man7/crypto.7" => [ - "doc/man7/crypto.pod" - ], "doc/man/man7/ct.7" => [ "doc/man7/ct.pod" ], @@ -6583,9 +7482,6 @@ our %unified_info = ( "doc/man/man7/life_cycle-rand.7" => [ "doc/man7/life_cycle-rand.pod" ], - "doc/man/man7/migration_guide.7" => [ - "doc/man7/migration_guide.pod" - ], "doc/man/man7/openssl-core.h.7" => [ "doc/man7/openssl-core.h.pod" ], @@ -6601,12 +7497,66 @@ our %unified_info = ( "doc/man/man7/openssl-glossary.7" => [ "doc/man7/openssl-glossary.pod" ], + "doc/man/man7/openssl-qlog.7" => [ + "doc/man7/openssl-qlog.pod" + ], + "doc/man/man7/openssl-quic-concurrency.7" => [ + "doc/man7/openssl-quic-concurrency.pod" + ], + "doc/man/man7/openssl-quic.7" => [ + "doc/man7/openssl-quic.pod" + ], "doc/man/man7/openssl-threads.7" => [ "doc/man7/openssl-threads.pod" ], "doc/man/man7/openssl_user_macros.7" => [ "doc/man7/openssl_user_macros.pod" ], + "doc/man/man7/ossl-guide-introduction.7" => [ + "doc/man7/ossl-guide-introduction.pod" + ], + "doc/man/man7/ossl-guide-libcrypto-introduction.7" => [ + "doc/man7/ossl-guide-libcrypto-introduction.pod" + ], + "doc/man/man7/ossl-guide-libraries-introduction.7" => [ + "doc/man7/ossl-guide-libraries-introduction.pod" + ], + "doc/man/man7/ossl-guide-libssl-introduction.7" => [ + "doc/man7/ossl-guide-libssl-introduction.pod" + ], + "doc/man/man7/ossl-guide-migration.7" => [ + "doc/man7/ossl-guide-migration.pod" + ], + "doc/man/man7/ossl-guide-quic-client-block.7" => [ + "doc/man7/ossl-guide-quic-client-block.pod" + ], + "doc/man/man7/ossl-guide-quic-client-non-block.7" => [ + "doc/man7/ossl-guide-quic-client-non-block.pod" + ], + "doc/man/man7/ossl-guide-quic-introduction.7" => [ + "doc/man7/ossl-guide-quic-introduction.pod" + ], + "doc/man/man7/ossl-guide-quic-multi-stream.7" => [ + "doc/man7/ossl-guide-quic-multi-stream.pod" + ], + "doc/man/man7/ossl-guide-quic-server-block.7" => [ + "doc/man7/ossl-guide-quic-server-block.pod" + ], + "doc/man/man7/ossl-guide-quic-server-non-block.7" => [ + "doc/man7/ossl-guide-quic-server-non-block.pod" + ], + "doc/man/man7/ossl-guide-tls-client-block.7" => [ + "doc/man7/ossl-guide-tls-client-block.pod" + ], + "doc/man/man7/ossl-guide-tls-client-non-block.7" => [ + "doc/man7/ossl-guide-tls-client-non-block.pod" + ], + "doc/man/man7/ossl-guide-tls-introduction.7" => [ + "doc/man7/ossl-guide-tls-introduction.pod" + ], + "doc/man/man7/ossl-guide-tls-server-block.7" => [ + "doc/man7/ossl-guide-tls-server-block.pod" + ], "doc/man/man7/ossl_store-file.7" => [ "doc/man7/ossl_store-file.pod" ], @@ -6661,6 +7611,9 @@ our %unified_info = ( "doc/man/man7/provider-signature.7" => [ "doc/man7/provider-signature.pod" ], + "doc/man/man7/provider-skeymgmt.7" => [ + "doc/man7/provider-skeymgmt.pod" + ], "doc/man/man7/provider-storemgmt.7" => [ "doc/man7/provider-storemgmt.pod" ], @@ -6670,9 +7623,6 @@ our %unified_info = ( "doc/man/man7/proxy-certificates.7" => [ "doc/man7/proxy-certificates.pod" ], - "doc/man/man7/ssl.7" => [ - "doc/man7/ssl.pod" - ], "doc/man/man7/x509.7" => [ "doc/man7/x509.pod" ], @@ -6852,6 +7802,10 @@ our %unified_info = ( "doc/man1/openssl-sess_id.pod.in", "doc/perlvars.pm" ], + "doc/man1/openssl-skeyutl.pod" => [ + "doc/man1/openssl-skeyutl.pod.in", + "doc/perlvars.pm" + ], "doc/man1/openssl-smime.pod" => [ "doc/man1/openssl-smime.pod.in", "doc/perlvars.pm" @@ -6891,6 +7845,27 @@ our %unified_info = ( "doc/man7/openssl_user_macros.pod" => [ "doc/man7/openssl_user_macros.pod.in" ], + "exporters/OpenSSLConfig.cmake" => [ + "installdata.pm" + ], + "exporters/OpenSSLConfigVersion.cmake" => [ + "exporters/OpenSSLConfig.cmake", + "installdata.pm" + ], + "exporters/libcrypto.pc" => [ + "installdata.pm" + ], + "exporters/libssl.pc" => [ + "installdata.pm" + ], + "exporters/openssl.pc" => [ + "exporters/libcrypto.pc", + "exporters/libssl.pc", + "installdata.pm" + ], + "fuzz/acert-test" => [ + "libcrypto" + ], "fuzz/asn1-test" => [ "libcrypto", "libssl" @@ -6923,16 +7898,92 @@ our %unified_info = ( "fuzz/ct-test" => [ "libcrypto" ], + "fuzz/decoder-test" => [ + "libcrypto" + ], + "fuzz/dtlsclient-test" => [ + "libcrypto", + "libssl" + ], + "fuzz/dtlsserver-test" => [ + "libcrypto", + "libssl" + ], + "fuzz/hashtable-test" => [ + "libcrypto.a" + ], + "fuzz/ml-dsa-test" => [ + "libcrypto.a" + ], + "fuzz/ml-kem-test" => [ + "libcrypto.a" + ], + "fuzz/pem-test" => [ + "libcrypto.a" + ], + "fuzz/provider-test" => [ + "libcrypto" + ], + "fuzz/punycode-test" => [ + "libcrypto.a" + ], + "fuzz/quic-client-test" => [ + "libcrypto.a", + "libssl.a" + ], + "fuzz/quic-lcidm-test" => [ + "libcrypto.a", + "libssl.a" + ], + "fuzz/quic-rcidm-test" => [ + "libcrypto.a", + "libssl.a" + ], + "fuzz/quic-server-test" => [ + "libcrypto.a", + "libssl.a" + ], + "fuzz/quic-srtm-test" => [ + "libcrypto.a", + "libssl.a" + ], "fuzz/server-test" => [ "libcrypto", "libssl" ], + "fuzz/slh-dsa-test" => [ + "libcrypto.a" + ], + "fuzz/smime-test" => [ + "libcrypto", + "libssl" + ], + "fuzz/v3name-test" => [ + "libcrypto.a" + ], "fuzz/x509-test" => [ "libcrypto" ], + "include/internal/param_names.h" => [ + "util/perl|OpenSSL/paramnames.pm" + ], + "include/openssl/core_names.h" => [ + "util/perl|OpenSSL/paramnames.pm" + ], + "libcrypto.pc" => [ + "builddata.pm" + ], "libssl" => [ "libcrypto" ], + "libssl.pc" => [ + "builddata.pm" + ], + "openssl.pc" => [ + "builddata.pm", + "libcrypto.pc", + "libssl.pc" + ], "providers/common/der/der_digests_gen.c" => [ "providers/common/der/DIGESTS.asn1", "providers/common/der/NIST.asn1", @@ -6950,11 +8001,19 @@ our %unified_info = ( "providers/common/der/ECX.asn1", "providers/common/der/oids_to_c.pm" ], + "providers/common/der/der_ml_dsa_gen.c" => [ + "providers/common/der/ML_DSA.asn1", + "providers/common/der/oids_to_c.pm" + ], "providers/common/der/der_rsa_gen.c" => [ "providers/common/der/NIST.asn1", "providers/common/der/RSA.asn1", "providers/common/der/oids_to_c.pm" ], + "providers/common/der/der_slh_dsa_gen.c" => [ + "providers/common/der/SLH_DSA.asn1", + "providers/common/der/oids_to_c.pm" + ], "providers/common/der/der_sm2_gen.c" => [ "providers/common/der/SM2.asn1", "providers/common/der/oids_to_c.pm" @@ -6994,6 +8053,12 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ecx_key.o" => [ "providers/common/include/prov/der_ecx.h" ], + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o" => [ + "providers/common/include/prov/der_ml_dsa.h" + ], + "providers/common/der/libcommon-lib-der_ml_dsa_key.o" => [ + "providers/common/include/prov/der_ml_dsa.h" + ], "providers/common/der/libcommon-lib-der_rsa_gen.o" => [ "providers/common/include/prov/der_rsa.h" ], @@ -7001,6 +8066,12 @@ our %unified_info = ( "providers/common/include/prov/der_digests.h", "providers/common/include/prov/der_rsa.h" ], + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o" => [ + "providers/common/include/prov/der_slh_dsa.h" + ], + "providers/common/der/libcommon-lib-der_slh_dsa_key.o" => [ + "providers/common/include/prov/der_slh_dsa.h" + ], "providers/common/der/libcommon-lib-der_wrap_gen.o" => [ "providers/common/include/prov/der_wrap.h" ], @@ -7040,11 +8111,19 @@ our %unified_info = ( "providers/common/der/ECX.asn1", "providers/common/der/oids_to_c.pm" ], + "providers/common/include/prov/der_ml_dsa.h" => [ + "providers/common/der/ML_DSA.asn1", + "providers/common/der/oids_to_c.pm" + ], "providers/common/include/prov/der_rsa.h" => [ "providers/common/der/NIST.asn1", "providers/common/der/RSA.asn1", "providers/common/der/oids_to_c.pm" ], + "providers/common/include/prov/der_slh_dsa.h" => [ + "providers/common/der/SLH_DSA.asn1", + "providers/common/der/oids_to_c.pm" + ], "providers/common/include/prov/der_sm2.h" => [ "providers/common/der/SM2.asn1", "providers/common/der/oids_to_c.pm" @@ -7077,9 +8156,15 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-eddsa_sig.o" => [ "providers/common/include/prov/der_ecx.h" ], + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o" => [ + "providers/common/include/prov/der_ml_dsa.h" + ], "providers/implementations/signature/libdefault-lib-rsa_sig.o" => [ "providers/common/include/prov/der_rsa.h" ], + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o" => [ + "providers/common/include/prov/der_slh_dsa.h" + ], "providers/implementations/signature/libdefault-lib-sm2_sig.o" => [ "providers/common/include/prov/der_sm2.h" ], @@ -7092,9 +8177,15 @@ our %unified_info = ( "providers/implementations/signature/libfips-lib-eddsa_sig.o" => [ "providers/common/include/prov/der_ecx.h" ], + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o" => [ + "providers/common/include/prov/der_ml_dsa.h" + ], "providers/implementations/signature/libfips-lib-rsa_sig.o" => [ "providers/common/include/prov/der_rsa.h" ], + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o" => [ + "providers/common/include/prov/der_slh_dsa.h" + ], "providers/legacy" => [ "libcrypto", "providers/liblegacy.a" @@ -7172,6 +8263,14 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/bio_addr_test" => [ + "libcrypto", + "test/libtestutil.a" + ], + "test/bio_base64_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/bio_callback_test" => [ "libcrypto", "test/libtestutil.a" @@ -7180,6 +8279,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/bio_dgram_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/bio_enc_test" => [ "libcrypto", "test/libtestutil.a" @@ -7188,6 +8291,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/bio_meth_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/bio_prefix_text" => [ "libcrypto", "test/libtestutil.a" @@ -7200,6 +8307,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/bio_tfo_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/bioprinttest" => [ "libcrypto", "test/libtestutil.a" @@ -7212,6 +8323,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/build_wincrypt_test" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_aes" => [ "libcrypto", "libssl" @@ -7232,6 +8347,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_byteorder" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_camellia" => [ "libcrypto", "libssl" @@ -7264,10 +8383,6 @@ our %unified_info = ( "libcrypto", "libssl" ], - "test/buildtest_c_core_names" => [ - "libcrypto", - "libssl" - ], "test/buildtest_c_core_object" => [ "libcrypto", "libssl" @@ -7300,6 +8415,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_e_ostime" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_ebcdic" => [ "libcrypto", "libssl" @@ -7336,6 +8455,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_hpke" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_http" => [ "libcrypto", "libssl" @@ -7344,6 +8467,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_indicator" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_kdf" => [ "libcrypto", "libssl" @@ -7364,6 +8491,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_ml_kem" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_modes" => [ "libcrypto", "libssl" @@ -7404,6 +8535,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_quic" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_rand" => [ "libcrypto", "libssl" @@ -7460,6 +8595,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_thread" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_tls1" => [ "libcrypto", "libssl" @@ -7480,10 +8619,23 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/byteorder_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], + "test/ca_internals_test" => [ + "libssl", + "test/libtestutil.a" + ], "test/casttest" => [ "libcrypto", "test/libtestutil.a" ], + "test/cert_comp_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], "test/chacha_internal_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -7597,7 +8749,11 @@ our %unified_info = ( "libssl", "test/libtestutil.a" ], - "test/defltfips_test" => [ + "test/decoder_propq_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], + "test/defltfips_test" => [ "libcrypto", "test/libtestutil.a" ], @@ -7653,6 +8809,8 @@ our %unified_info = ( ], "test/endecode_test" => [ "libcrypto.a", + "providers/libcommon.a", + "providers/liblegacy.a", "test/libtestutil.a" ], "test/endecoder_legacy_test" => [ @@ -7696,6 +8854,10 @@ our %unified_info = ( "test/evp_pkey_ctx_new_from_name" => [ "libcrypto" ], + "test/evp_pkey_dhkem_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/evp_pkey_dparams_test" => [ "libcrypto", "test/libtestutil.a" @@ -7704,10 +8866,18 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/evp_skey_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/evp_test" => [ "libcrypto", "test/libtestutil.a" ], + "test/evp_xof_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/exdatatest" => [ "libcrypto", "test/libtestutil.a" @@ -7746,6 +8916,10 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/hpke_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/http_test" => [ "libcrypto", "test/libtestutil.a" @@ -7758,17 +8932,25 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/json_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], "test/keymgmt_internal_test" => [ "libcrypto.a", "test/libtestutil.a" ], "test/lhash_test" => [ - "libcrypto", + "libcrypto.a", "test/libtestutil.a" ], "test/libtestutil.a" => [ "libcrypto" ], + "test/list_test" => [ + "test/libtestutil.a" + ], "test/localetest" => [ "libcrypto", "test/libtestutil.a" @@ -7781,10 +8963,26 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/membio_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/memleaktest" => [ "libcrypto", "test/libtestutil.a" ], + "test/ml_dsa_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], + "test/ml_kem_evp_extra_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], + "test/ml_kem_internal_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/modes_internal_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -7809,6 +9007,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/pairwise_fail_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/param_build_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -7841,6 +9043,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/pkcs12_api_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/pkcs12_format_test" => [ "libcrypto", "test/libtestutil.a" @@ -7861,6 +9067,11 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/priority_queue_test" => [ + "libcrypto", + "libssl.a", + "test/libtestutil.a" + ], "test/property_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -7873,6 +9084,10 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/provider_default_search_path_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/provider_fallback_test" => [ "libcrypto", "test/libtestutil.a" @@ -7897,12 +9112,122 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/quic_ackm_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_cc_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_cfq_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_client_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_fc_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_fifd_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_lcidm_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_multistream_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_newcid_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_qlog_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_radix_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_rcidm_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_record_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_srt_gen_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_srtm_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_stream_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_tserver_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_txp_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_txpim_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_wire_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quicapitest" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quicfaultstest" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], "test/rand_status_test" => [ "libcrypto", "test/libtestutil.a" ], "test/rand_test" => [ - "libcrypto", + "libcrypto.a", "test/libtestutil.a" ], "test/rc2test" => [ @@ -7917,7 +9242,7 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], - "test/rdrand_sanitytest" => [ + "test/rdcpu_sanitytest" => [ "libcrypto.a", "test/libtestutil.a" ], @@ -7926,6 +9251,11 @@ our %unified_info = ( "libssl", "test/libtestutil.a" ], + "test/rpktest" => [ + "libcrypto", + "libssl", + "test/libtestutil.a" + ], "test/rsa_mp_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -7938,10 +9268,18 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], - "test/sanitytest" => [ + "test/rsa_x931_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], + "test/safe_math_test" => [ "libcrypto", "test/libtestutil.a" ], + "test/sanitytest" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/secmemtest" => [ "libcrypto", "test/libtestutil.a" @@ -7959,6 +9297,10 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/slh_dsa_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/sm2_internal_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -7988,6 +9330,11 @@ our %unified_info = ( "libssl", "test/libtestutil.a" ], + "test/ssl_handshake_rtt_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], "test/ssl_old_test" => [ "libcrypto.a", "libssl.a", @@ -8004,8 +9351,8 @@ our %unified_info = ( "test/libtestutil.a" ], "test/sslapitest" => [ - "libcrypto", - "libssl", + "libcrypto.a", + "libssl.a", "test/libtestutil.a" ], "test/sslbuffertest" => [ @@ -8022,6 +9369,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/strtoultest" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/sysdefaulttest" => [ "libcrypto", "libssl", @@ -8031,8 +9382,12 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/threadpool_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/threadstest" => [ - "libcrypto", + "libcrypto.a", "test/libtestutil.a" ], "test/threadstest_fips" => [ @@ -8043,6 +9398,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/time_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/tls13ccstest" => [ "libcrypto", "libssl", @@ -8053,6 +9412,11 @@ our %unified_info = ( "libssl.a", "test/libtestutil.a" ], + "test/tls13groupselection_test" => [ + "libcrypto", + "libssl", + "test/libtestutil.a" + ], "test/trace_api_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -8090,6 +9454,10 @@ our %unified_info = ( "libssl.a", "test/libtestutil.a" ], + "test/x509_acert_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/x509_check_cert_pkey_test" => [ "libcrypto", "test/libtestutil.a" @@ -8102,6 +9470,18 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/x509_load_cert_file_test" => [ + "libcrypto", + "test/libtestutil.a" + ], + "test/x509_req_test" => [ + "libcrypto", + "test/libtestutil.a" + ], + "test/x509_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/x509_time_test" => [ "libcrypto", "test/libtestutil.a" @@ -8116,9 +9496,13 @@ our %unified_info = ( }, "dirinfo" => { "apps" => { + "deps" => [ + "apps/ca_internals_test-bin-ca.o" + ], "products" => { "bin" => [ - "apps/openssl" + "apps/openssl", + "test/ca_internals_test" ], "script" => [ "apps/CA.pl", @@ -8129,6 +9513,14 @@ our %unified_info = ( "apps/lib" => { "deps" => [ "apps/lib/openssl-bin-cmp_mock_srv.o", + "apps/lib/ca_internals_test-bin-app_libctx.o", + "apps/lib/ca_internals_test-bin-app_provider.o", + "apps/lib/ca_internals_test-bin-app_rand.o", + "apps/lib/ca_internals_test-bin-app_x509.o", + "apps/lib/ca_internals_test-bin-apps.o", + "apps/lib/ca_internals_test-bin-apps_ui.o", + "apps/lib/ca_internals_test-bin-engine.o", + "apps/lib/ca_internals_test-bin-fmt.o", "apps/lib/cmp_client_test-bin-cmp_mock_srv.o", "apps/lib/uitest-bin-apps_ui.o", "apps/lib/libapps-lib-app_libctx.o", @@ -8137,12 +9529,14 @@ our %unified_info = ( "apps/lib/libapps-lib-app_rand.o", "apps/lib/libapps-lib-app_x509.o", "apps/lib/libapps-lib-apps.o", + "apps/lib/libapps-lib-apps_opt_printf.o", "apps/lib/libapps-lib-apps_ui.o", "apps/lib/libapps-lib-columns.o", "apps/lib/libapps-lib-engine.o", "apps/lib/libapps-lib-engine_loader.o", "apps/lib/libapps-lib-fmt.o", "apps/lib/libapps-lib-http_server.o", + "apps/lib/libapps-lib-log.o", "apps/lib/libapps-lib-names.o", "apps/lib/libapps-lib-opt.o", "apps/lib/libapps-lib-s_cb.o", @@ -8153,6 +9547,7 @@ our %unified_info = ( "products" => { "bin" => [ "apps/openssl", + "test/ca_internals_test", "test/cmp_client_test", "test/uitest" ], @@ -8164,8 +9559,12 @@ our %unified_info = ( }, "crypto" => { "deps" => [ + "crypto/asn1_time_test-bin-ctype.o", + "crypto/ca_internals_test-bin-ctype.o", + "crypto/packettest-bin-quic_vlint.o", "crypto/libcrypto-lib-asn1_dsa.o", "crypto/libcrypto-lib-bsearch.o", + "crypto/libcrypto-lib-comp_methods.o", "crypto/libcrypto-lib-context.o", "crypto/libcrypto-lib-core_algorithm.o", "crypto/libcrypto-lib-core_fetch.o", @@ -8175,10 +9574,13 @@ our %unified_info = ( "crypto/libcrypto-lib-cryptlib.o", "crypto/libcrypto-lib-ctype.o", "crypto/libcrypto-lib-cversion.o", + "crypto/libcrypto-lib-defaults.o", "crypto/libcrypto-lib-der_writer.o", + "crypto/libcrypto-lib-deterministic_nonce.o", "crypto/libcrypto-lib-ebcdic.o", "crypto/libcrypto-lib-ex_data.o", "crypto/libcrypto-lib-getenv.o", + "crypto/libcrypto-lib-indicator_core.o", "crypto/libcrypto-lib-info.o", "crypto/libcrypto-lib-init.o", "crypto/libcrypto-lib-initthread.o", @@ -8196,6 +9598,7 @@ our %unified_info = ( "crypto/libcrypto-lib-params.o", "crypto/libcrypto-lib-params_dup.o", "crypto/libcrypto-lib-params_from_text.o", + "crypto/libcrypto-lib-params_idx.o", "crypto/libcrypto-lib-passphrase.o", "crypto/libcrypto-lib-provider.o", "crypto/libcrypto-lib-provider_child.o", @@ -8203,12 +9606,16 @@ our %unified_info = ( "crypto/libcrypto-lib-provider_core.o", "crypto/libcrypto-lib-provider_predefined.o", "crypto/libcrypto-lib-punycode.o", + "crypto/libcrypto-lib-quic_vlint.o", "crypto/libcrypto-lib-self_test_core.o", + "crypto/libcrypto-lib-sleep.o", "crypto/libcrypto-lib-sparse_array.o", + "crypto/libcrypto-lib-ssl_err.o", "crypto/libcrypto-lib-threads_lib.o", "crypto/libcrypto-lib-threads_none.o", "crypto/libcrypto-lib-threads_pthread.o", "crypto/libcrypto-lib-threads_win.o", + "crypto/libcrypto-lib-time.o", "crypto/libcrypto-lib-trace.o", "crypto/libcrypto-lib-uid.o", "crypto/libfips-lib-asn1_dsa.o", @@ -8231,6 +9638,7 @@ our %unified_info = ( "crypto/libfips-lib-params.o", "crypto/libfips-lib-params_dup.o", "crypto/libfips-lib-params_from_text.o", + "crypto/libfips-lib-params_idx.o", "crypto/libfips-lib-provider_core.o", "crypto/libfips-lib-provider_predefined.o", "crypto/libfips-lib-self_test_core.o", @@ -8238,9 +9646,15 @@ our %unified_info = ( "crypto/libfips-lib-threads_lib.o", "crypto/libfips-lib-threads_none.o", "crypto/libfips-lib-threads_pthread.o", - "crypto/libfips-lib-threads_win.o" + "crypto/libfips-lib-threads_win.o", + "crypto/libfips-lib-time.o" ], "products" => { + "bin" => [ + "test/asn1_time_test", + "test/ca_internals_test", + "test/packettest" + ], "lib" => [ "libcrypto", "providers/libfips.a" @@ -8281,6 +9695,8 @@ our %unified_info = ( }, "crypto/asn1" => { "deps" => [ + "crypto/asn1/asn1_time_test-bin-a_time.o", + "crypto/asn1/ca_internals_test-bin-a_time.o", "crypto/asn1/libcrypto-lib-a_bitstr.o", "crypto/asn1/libcrypto-lib-a_d2i_fp.o", "crypto/asn1/libcrypto-lib-a_digest.o", @@ -8347,6 +9763,10 @@ our %unified_info = ( "crypto/asn1/libcrypto-lib-x_val.o" ], "products" => { + "bin" => [ + "test/asn1_time_test", + "test/ca_internals_test" + ], "lib" => [ "libcrypto" ] @@ -8412,6 +9832,7 @@ our %unified_info = ( "crypto/bio/libcrypto-lib-bss_conn.o", "crypto/bio/libcrypto-lib-bss_core.o", "crypto/bio/libcrypto-lib-bss_dgram.o", + "crypto/bio/libcrypto-lib-bss_dgram_pair.o", "crypto/bio/libcrypto-lib-bss_fd.o", "crypto/bio/libcrypto-lib-bss_file.o", "crypto/bio/libcrypto-lib-bss_log.o", @@ -8568,6 +9989,7 @@ our %unified_info = ( "crypto/cmp/libcrypto-lib-cmp_client.o", "crypto/cmp/libcrypto-lib-cmp_ctx.o", "crypto/cmp/libcrypto-lib-cmp_err.o", + "crypto/cmp/libcrypto-lib-cmp_genm.o", "crypto/cmp/libcrypto-lib-cmp_hdr.o", "crypto/cmp/libcrypto-lib-cmp_http.o", "crypto/cmp/libcrypto-lib-cmp_msg.o", @@ -8935,7 +10357,9 @@ our %unified_info = ( "crypto/err/libcrypto-lib-err_all.o", "crypto/err/libcrypto-lib-err_all_legacy.o", "crypto/err/libcrypto-lib-err_blocks.o", - "crypto/err/libcrypto-lib-err_prn.o" + "crypto/err/libcrypto-lib-err_mark.o", + "crypto/err/libcrypto-lib-err_prn.o", + "crypto/err/libcrypto-lib-err_save.o" ], "products" => { "lib" => [ @@ -9036,7 +10460,9 @@ our %unified_info = ( "crypto/evp/libcrypto-lib-pmeth_check.o", "crypto/evp/libcrypto-lib-pmeth_gn.o", "crypto/evp/libcrypto-lib-pmeth_lib.o", + "crypto/evp/libcrypto-lib-s_lib.o", "crypto/evp/libcrypto-lib-signature.o", + "crypto/evp/libcrypto-lib-skeymgmt_meth.o", "crypto/evp/libfips-lib-asymcipher.o", "crypto/evp/libfips-lib-dh_support.o", "crypto/evp/libfips-lib-digest.o", @@ -9052,14 +10478,15 @@ our %unified_info = ( "crypto/evp/libfips-lib-kem.o", "crypto/evp/libfips-lib-keymgmt_lib.o", "crypto/evp/libfips-lib-keymgmt_meth.o", - "crypto/evp/libfips-lib-m_sigver.o", "crypto/evp/libfips-lib-mac_lib.o", "crypto/evp/libfips-lib-mac_meth.o", "crypto/evp/libfips-lib-p_lib.o", "crypto/evp/libfips-lib-pmeth_check.o", "crypto/evp/libfips-lib-pmeth_gn.o", "crypto/evp/libfips-lib-pmeth_lib.o", - "crypto/evp/libfips-lib-signature.o" + "crypto/evp/libfips-lib-s_lib.o", + "crypto/evp/libfips-lib-signature.o", + "crypto/evp/libfips-lib-skeymgmt_meth.o" ], "products" => { "lib" => [ @@ -9092,6 +10519,20 @@ our %unified_info = ( ] } }, + "crypto/hashtable" => { + "deps" => [ + "crypto/hashtable/libcrypto-lib-hashfunc.o", + "crypto/hashtable/libcrypto-lib-hashtable.o", + "crypto/hashtable/libfips-lib-hashfunc.o", + "crypto/hashtable/libfips-lib-hashtable.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, "crypto/hmac" => { "deps" => [ "crypto/hmac/libcrypto-lib-hmac.o", @@ -9104,6 +10545,17 @@ our %unified_info = ( ] } }, + "crypto/hpke" => { + "deps" => [ + "crypto/hpke/libcrypto-lib-hpke.o", + "crypto/hpke/libcrypto-lib-hpke_util.o" + ], + "products" => { + "lib" => [ + "libcrypto" + ] + } + }, "crypto/http" => { "deps" => [ "crypto/http/libcrypto-lib-http_client.o", @@ -9187,6 +10639,44 @@ our %unified_info = ( ] } }, + "crypto/ml_dsa" => { + "deps" => [ + "crypto/ml_dsa/libcrypto-lib-ml_dsa_encoders.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key_compress.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_matrix.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_ntt.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_params.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sample.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sign.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_encoders.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_key.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_key_compress.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_matrix.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_ntt.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_params.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_sample.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_sign.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, + "crypto/ml_kem" => { + "deps" => [ + "crypto/ml_kem/libcrypto-lib-ml_kem.o", + "crypto/ml_kem/libfips-lib-ml_kem.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, "crypto/modes" => { "deps" => [ "crypto/modes/libcrypto-lib-cbc128.o", @@ -9200,6 +10690,7 @@ our %unified_info = ( "crypto/modes/libcrypto-lib-siv128.o", "crypto/modes/libcrypto-lib-wrap128.o", "crypto/modes/libcrypto-lib-xts128.o", + "crypto/modes/libcrypto-lib-xts128gb.o", "crypto/modes/libfips-lib-cbc128.o", "crypto/modes/libfips-lib-ccm128.o", "crypto/modes/libfips-lib-cfb128.o", @@ -9207,7 +10698,8 @@ our %unified_info = ( "crypto/modes/libfips-lib-gcm128.o", "crypto/modes/libfips-lib-ofb128.o", "crypto/modes/libfips-lib-wrap128.o", - "crypto/modes/libfips-lib-xts128.o" + "crypto/modes/libfips-lib-xts128.o", + "crypto/modes/libfips-lib-xts128gb.o" ], "products" => { "lib" => [ @@ -9350,6 +10842,7 @@ our %unified_info = ( "crypto/rand/libcrypto-lib-rand_lib.o", "crypto/rand/libcrypto-lib-rand_meth.o", "crypto/rand/libcrypto-lib-rand_pool.o", + "crypto/rand/libcrypto-lib-rand_uniform.o", "crypto/rand/libcrypto-lib-randfile.o", "crypto/rand/libfips-lib-rand_lib.o" ], @@ -9494,6 +10987,36 @@ our %unified_info = ( ] } }, + "crypto/slh_dsa" => { + "deps" => [ + "crypto/slh_dsa/libcrypto-lib-slh_adrs.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa_hash_ctx.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa_key.o", + "crypto/slh_dsa/libcrypto-lib-slh_fors.o", + "crypto/slh_dsa/libcrypto-lib-slh_hash.o", + "crypto/slh_dsa/libcrypto-lib-slh_hypertree.o", + "crypto/slh_dsa/libcrypto-lib-slh_params.o", + "crypto/slh_dsa/libcrypto-lib-slh_wots.o", + "crypto/slh_dsa/libcrypto-lib-slh_xmss.o", + "crypto/slh_dsa/libfips-lib-slh_adrs.o", + "crypto/slh_dsa/libfips-lib-slh_dsa.o", + "crypto/slh_dsa/libfips-lib-slh_dsa_hash_ctx.o", + "crypto/slh_dsa/libfips-lib-slh_dsa_key.o", + "crypto/slh_dsa/libfips-lib-slh_fors.o", + "crypto/slh_dsa/libfips-lib-slh_hash.o", + "crypto/slh_dsa/libfips-lib-slh_hypertree.o", + "crypto/slh_dsa/libfips-lib-slh_params.o", + "crypto/slh_dsa/libfips-lib-slh_wots.o", + "crypto/slh_dsa/libfips-lib-slh_xmss.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, "crypto/sm2" => { "deps" => [ "crypto/sm2/libcrypto-lib-sm2_crypt.o", @@ -9567,6 +11090,38 @@ our %unified_info = ( ] } }, + "crypto/thread" => { + "deps" => [ + "crypto/thread/libcrypto-lib-api.o", + "crypto/thread/libcrypto-lib-arch.o", + "crypto/thread/libcrypto-lib-internal.o", + "crypto/thread/libfips-lib-api.o", + "crypto/thread/libfips-lib-arch.o", + "crypto/thread/libfips-lib-internal.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, + "crypto/thread/arch" => { + "deps" => [ + "crypto/thread/arch/libcrypto-lib-thread_none.o", + "crypto/thread/arch/libcrypto-lib-thread_posix.o", + "crypto/thread/arch/libcrypto-lib-thread_win.o", + "crypto/thread/arch/libfips-lib-thread_none.o", + "crypto/thread/arch/libfips-lib-thread_posix.o", + "crypto/thread/arch/libfips-lib-thread_win.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, "crypto/ts" => { "deps" => [ "crypto/ts/libcrypto-lib-ts_asn1.o", @@ -9633,14 +11188,22 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-pcy_map.o", "crypto/x509/libcrypto-lib-pcy_node.o", "crypto/x509/libcrypto-lib-pcy_tree.o", + "crypto/x509/libcrypto-lib-t_acert.o", "crypto/x509/libcrypto-lib-t_crl.o", "crypto/x509/libcrypto-lib-t_req.o", "crypto/x509/libcrypto-lib-t_x509.o", + "crypto/x509/libcrypto-lib-v3_aaa.o", + "crypto/x509/libcrypto-lib-v3_ac_tgt.o", "crypto/x509/libcrypto-lib-v3_addr.o", "crypto/x509/libcrypto-lib-v3_admis.o", "crypto/x509/libcrypto-lib-v3_akeya.o", "crypto/x509/libcrypto-lib-v3_akid.o", "crypto/x509/libcrypto-lib-v3_asid.o", + "crypto/x509/libcrypto-lib-v3_attrdesc.o", + "crypto/x509/libcrypto-lib-v3_attrmap.o", + "crypto/x509/libcrypto-lib-v3_audit_id.o", + "crypto/x509/libcrypto-lib-v3_authattid.o", + "crypto/x509/libcrypto-lib-v3_battcons.o", "crypto/x509/libcrypto-lib-v3_bcons.o", "crypto/x509/libcrypto-lib-v3_bitst.o", "crypto/x509/libcrypto-lib-v3_conf.o", @@ -9649,12 +11212,17 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_enum.o", "crypto/x509/libcrypto-lib-v3_extku.o", "crypto/x509/libcrypto-lib-v3_genn.o", + "crypto/x509/libcrypto-lib-v3_group_ac.o", "crypto/x509/libcrypto-lib-v3_ia5.o", + "crypto/x509/libcrypto-lib-v3_ind_iss.o", "crypto/x509/libcrypto-lib-v3_info.o", "crypto/x509/libcrypto-lib-v3_int.o", + "crypto/x509/libcrypto-lib-v3_iobo.o", "crypto/x509/libcrypto-lib-v3_ist.o", "crypto/x509/libcrypto-lib-v3_lib.o", "crypto/x509/libcrypto-lib-v3_ncons.o", + "crypto/x509/libcrypto-lib-v3_no_ass.o", + "crypto/x509/libcrypto-lib-v3_no_rev_avail.o", "crypto/x509/libcrypto-lib-v3_pci.o", "crypto/x509/libcrypto-lib-v3_pcia.o", "crypto/x509/libcrypto-lib-v3_pcons.o", @@ -9662,13 +11230,20 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_pmaps.o", "crypto/x509/libcrypto-lib-v3_prn.o", "crypto/x509/libcrypto-lib-v3_purp.o", + "crypto/x509/libcrypto-lib-v3_rolespec.o", "crypto/x509/libcrypto-lib-v3_san.o", + "crypto/x509/libcrypto-lib-v3_sda.o", + "crypto/x509/libcrypto-lib-v3_single_use.o", "crypto/x509/libcrypto-lib-v3_skid.o", + "crypto/x509/libcrypto-lib-v3_soa_id.o", "crypto/x509/libcrypto-lib-v3_sxnet.o", + "crypto/x509/libcrypto-lib-v3_timespec.o", "crypto/x509/libcrypto-lib-v3_tlsf.o", + "crypto/x509/libcrypto-lib-v3_usernotice.o", "crypto/x509/libcrypto-lib-v3_utf8.o", "crypto/x509/libcrypto-lib-v3_utl.o", "crypto/x509/libcrypto-lib-v3err.o", + "crypto/x509/libcrypto-lib-x509_acert.o", "crypto/x509/libcrypto-lib-x509_att.o", "crypto/x509/libcrypto-lib-x509_cmp.o", "crypto/x509/libcrypto-lib-x509_d2.o", @@ -9686,6 +11261,7 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x509_v3.o", "crypto/x509/libcrypto-lib-x509_vfy.o", "crypto/x509/libcrypto-lib-x509_vpm.o", + "crypto/x509/libcrypto-lib-x509aset.o", "crypto/x509/libcrypto-lib-x509cset.o", "crypto/x509/libcrypto-lib-x509name.o", "crypto/x509/libcrypto-lib-x509rset.o", @@ -9695,6 +11271,7 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x_attrib.o", "crypto/x509/libcrypto-lib-x_crl.o", "crypto/x509/libcrypto-lib-x_exten.o", + "crypto/x509/libcrypto-lib-x_ietfatt.o", "crypto/x509/libcrypto-lib-x_name.o", "crypto/x509/libcrypto-lib-x_pubkey.o", "crypto/x509/libcrypto-lib-x_req.o", @@ -9721,6 +11298,7 @@ our %unified_info = ( "fuzz" => { "products" => { "bin" => [ + "fuzz/acert-test", "fuzz/asn1-test", "fuzz/asn1parse-test", "fuzz/bignum-test", @@ -9731,13 +11309,31 @@ our %unified_info = ( "fuzz/conf-test", "fuzz/crl-test", "fuzz/ct-test", + "fuzz/decoder-test", + "fuzz/dtlsclient-test", + "fuzz/dtlsserver-test", + "fuzz/hashtable-test", + "fuzz/ml-dsa-test", + "fuzz/ml-kem-test", + "fuzz/pem-test", + "fuzz/provider-test", + "fuzz/punycode-test", + "fuzz/quic-client-test", + "fuzz/quic-lcidm-test", + "fuzz/quic-rcidm-test", + "fuzz/quic-server-test", + "fuzz/quic-srtm-test", "fuzz/server-test", + "fuzz/slh-dsa-test", + "fuzz/smime-test", + "fuzz/v3name-test", "fuzz/x509-test" ] } }, "providers" => { "deps" => [ + "providers/endecode_test-bin-legacyprov.o", "providers/evp_extra_test-bin-legacyprov.o", "providers/libcrypto-lib-baseprov.o", "providers/libcrypto-lib-defltprov.o", @@ -9747,6 +11343,7 @@ our %unified_info = ( ], "products" => { "bin" => [ + "test/endecode_test", "test/evp_extra_test" ], "dso" => [ @@ -9797,8 +11394,12 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ec_sig.o", "providers/common/der/libcommon-lib-der_ecx_gen.o", "providers/common/der/libcommon-lib-der_ecx_key.o", + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o", + "providers/common/der/libcommon-lib-der_ml_dsa_key.o", "providers/common/der/libcommon-lib-der_rsa_gen.o", "providers/common/der/libcommon-lib-der_rsa_key.o", + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o", + "providers/common/der/libcommon-lib-der_slh_dsa_key.o", "providers/common/der/libcommon-lib-der_wrap_gen.o", "providers/common/der/libdefault-lib-der_rsa_sig.o", "providers/common/der/libdefault-lib-der_sm2_gen.o", @@ -9817,6 +11418,7 @@ our %unified_info = ( "providers/fips" => { "deps" => [ "providers/fips/fips-dso-fips_entry.o", + "providers/fips/libfips-lib-fipsindicator.o", "providers/fips/libfips-lib-fipsprov.o", "providers/fips/libfips-lib-self_test.o", "providers/fips/libfips-lib-self_test_kats.o" @@ -9860,6 +11462,9 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_aes_ccm_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_polyval.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_ocb.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_ocb_hw.o", @@ -9884,7 +11489,13 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_cts.o", "providers/implementations/ciphers/libdefault-lib-cipher_null.o", "providers/implementations/ciphers/libdefault-lib-cipher_sm4.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_sm4_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes_common.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes_default.o", @@ -9981,7 +11592,10 @@ our %unified_info = ( "providers/implementations/encode_decode/libdefault-lib-encode_key2blob.o", "providers/implementations/encode_decode/libdefault-lib-encode_key2ms.o", "providers/implementations/encode_decode/libdefault-lib-encode_key2text.o", - "providers/implementations/encode_decode/libdefault-lib-endecoder_common.o" + "providers/implementations/encode_decode/libdefault-lib-endecoder_common.o", + "providers/implementations/encode_decode/libdefault-lib-ml_common_codecs.o", + "providers/implementations/encode_decode/libdefault-lib-ml_dsa_codecs.o", + "providers/implementations/encode_decode/libdefault-lib-ml_kem_codecs.o" ], "products" => { "lib" => [ @@ -10009,7 +11623,9 @@ our %unified_info = ( }, "providers/implementations/kdfs" => { "deps" => [ + "providers/implementations/kdfs/libdefault-lib-argon2.o", "providers/implementations/kdfs/libdefault-lib-hkdf.o", + "providers/implementations/kdfs/libdefault-lib-hmacdrbg_kdf.o", "providers/implementations/kdfs/libdefault-lib-kbkdf.o", "providers/implementations/kdfs/libdefault-lib-krb5kdf.o", "providers/implementations/kdfs/libdefault-lib-pbkdf2.o", @@ -10028,7 +11644,8 @@ our %unified_info = ( "providers/implementations/kdfs/libfips-lib-sskdf.o", "providers/implementations/kdfs/libfips-lib-tls1_prf.o", "providers/implementations/kdfs/libfips-lib-x942kdf.o", - "providers/implementations/kdfs/liblegacy-lib-pbkdf1.o" + "providers/implementations/kdfs/liblegacy-lib-pbkdf1.o", + "providers/implementations/kdfs/liblegacy-lib-pvkkdf.o" ], "products" => { "lib" => [ @@ -10040,13 +11657,22 @@ our %unified_info = ( }, "providers/implementations/kem" => { "deps" => [ + "providers/implementations/kem/libdefault-lib-ec_kem.o", + "providers/implementations/kem/libdefault-lib-ecx_kem.o", + "providers/implementations/kem/libdefault-lib-kem_util.o", + "providers/implementations/kem/libdefault-lib-ml_kem_kem.o", + "providers/implementations/kem/libdefault-lib-mlx_kem.o", "providers/implementations/kem/libdefault-lib-rsa_kem.o", - "providers/implementations/kem/libfips-lib-rsa_kem.o" + "providers/implementations/kem/libfips-lib-ml_kem_kem.o", + "providers/implementations/kem/libfips-lib-mlx_kem.o", + "providers/implementations/kem/libfips-lib-rsa_kem.o", + "providers/implementations/kem/libtemplate-lib-template_kem.o" ], "products" => { "lib" => [ "providers/libdefault.a", - "providers/libfips.a" + "providers/libfips.a", + "providers/libtemplate.a" ] } }, @@ -10058,19 +11684,29 @@ our %unified_info = ( "providers/implementations/keymgmt/libdefault-lib-ecx_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-kdf_legacy_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-mac_legacy_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-ml_dsa_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-ml_kem_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-mlx_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-rsa_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-slh_dsa_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-dh_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-dsa_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-ec_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-ecx_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-kdf_legacy_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-mac_legacy_kmgmt.o", - "providers/implementations/keymgmt/libfips-lib-rsa_kmgmt.o" + "providers/implementations/keymgmt/libfips-lib-ml_dsa_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-ml_kem_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-mlx_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-rsa_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-slh_dsa_kmgmt.o", + "providers/implementations/keymgmt/libtemplate-lib-template_kmgmt.o" ], "products" => { "lib" => [ "providers/libdefault.a", - "providers/libfips.a" + "providers/libfips.a", + "providers/libtemplate.a" ] } }, @@ -10098,18 +11734,18 @@ our %unified_info = ( }, "providers/implementations/rands" => { "deps" => [ - "providers/implementations/rands/libdefault-lib-crngt.o", "providers/implementations/rands/libdefault-lib-drbg.o", "providers/implementations/rands/libdefault-lib-drbg_ctr.o", "providers/implementations/rands/libdefault-lib-drbg_hash.o", "providers/implementations/rands/libdefault-lib-drbg_hmac.o", "providers/implementations/rands/libdefault-lib-seed_src.o", + "providers/implementations/rands/libdefault-lib-seed_src_jitter.o", "providers/implementations/rands/libdefault-lib-test_rng.o", - "providers/implementations/rands/libfips-lib-crngt.o", "providers/implementations/rands/libfips-lib-drbg.o", "providers/implementations/rands/libfips-lib-drbg_ctr.o", "providers/implementations/rands/libfips-lib-drbg_hash.o", "providers/implementations/rands/libfips-lib-drbg_hmac.o", + "providers/implementations/rands/libfips-lib-fips_crng_test.o", "providers/implementations/rands/libfips-lib-test_rng.o" ], "products" => { @@ -10138,13 +11774,31 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-ecdsa_sig.o", "providers/implementations/signature/libdefault-lib-eddsa_sig.o", "providers/implementations/signature/libdefault-lib-mac_legacy_sig.o", + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o", "providers/implementations/signature/libdefault-lib-rsa_sig.o", + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o", "providers/implementations/signature/libdefault-lib-sm2_sig.o", "providers/implementations/signature/libfips-lib-dsa_sig.o", "providers/implementations/signature/libfips-lib-ecdsa_sig.o", "providers/implementations/signature/libfips-lib-eddsa_sig.o", "providers/implementations/signature/libfips-lib-mac_legacy_sig.o", - "providers/implementations/signature/libfips-lib-rsa_sig.o" + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o", + "providers/implementations/signature/libfips-lib-rsa_sig.o", + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o" + ], + "products" => { + "lib" => [ + "providers/libdefault.a", + "providers/libfips.a" + ] + } + }, + "providers/implementations/skeymgmt" => { + "deps" => [ + "providers/implementations/skeymgmt/libdefault-lib-aes_skmgmt.o", + "providers/implementations/skeymgmt/libdefault-lib-generic.o", + "providers/implementations/skeymgmt/libfips-lib-aes_skmgmt.o", + "providers/implementations/skeymgmt/libfips-lib-generic.o" ], "products" => { "lib" => [ @@ -10172,14 +11826,15 @@ our %unified_info = ( "ssl/libssl-lib-d1_srtp.o", "ssl/libssl-lib-methods.o", "ssl/libssl-lib-pqueue.o", + "ssl/libssl-lib-priority_queue.o", "ssl/libssl-lib-s3_enc.o", "ssl/libssl-lib-s3_lib.o", "ssl/libssl-lib-s3_msg.o", "ssl/libssl-lib-ssl_asn1.o", "ssl/libssl-lib-ssl_cert.o", + "ssl/libssl-lib-ssl_cert_comp.o", "ssl/libssl-lib-ssl_ciph.o", "ssl/libssl-lib-ssl_conf.o", - "ssl/libssl-lib-ssl_err.o", "ssl/libssl-lib-ssl_err_legacy.o", "ssl/libssl-lib-ssl_init.o", "ssl/libssl-lib-ssl_lib.o", @@ -10195,32 +11850,107 @@ our %unified_info = ( "ssl/libssl-lib-t1_trce.o", "ssl/libssl-lib-tls13_enc.o", "ssl/libssl-lib-tls_depr.o", - "ssl/libssl-lib-tls_srp.o", - "ssl/libdefault-lib-s3_cbc.o", - "ssl/libfips-lib-s3_cbc.o" + "ssl/libssl-lib-tls_srp.o" ], "products" => { "lib" => [ - "libssl", - "providers/libdefault.a", - "providers/libfips.a" + "libssl" + ] + } + }, + "ssl/quic" => { + "deps" => [ + "ssl/quic/libssl-lib-cc_newreno.o", + "ssl/quic/libssl-lib-json_enc.o", + "ssl/quic/libssl-lib-qlog.o", + "ssl/quic/libssl-lib-qlog_event_helpers.o", + "ssl/quic/libssl-lib-quic_ackm.o", + "ssl/quic/libssl-lib-quic_cfq.o", + "ssl/quic/libssl-lib-quic_channel.o", + "ssl/quic/libssl-lib-quic_demux.o", + "ssl/quic/libssl-lib-quic_engine.o", + "ssl/quic/libssl-lib-quic_fc.o", + "ssl/quic/libssl-lib-quic_fifd.o", + "ssl/quic/libssl-lib-quic_impl.o", + "ssl/quic/libssl-lib-quic_lcidm.o", + "ssl/quic/libssl-lib-quic_method.o", + "ssl/quic/libssl-lib-quic_obj.o", + "ssl/quic/libssl-lib-quic_port.o", + "ssl/quic/libssl-lib-quic_rcidm.o", + "ssl/quic/libssl-lib-quic_reactor.o", + "ssl/quic/libssl-lib-quic_reactor_wait_ctx.o", + "ssl/quic/libssl-lib-quic_record_rx.o", + "ssl/quic/libssl-lib-quic_record_shared.o", + "ssl/quic/libssl-lib-quic_record_tx.o", + "ssl/quic/libssl-lib-quic_record_util.o", + "ssl/quic/libssl-lib-quic_rstream.o", + "ssl/quic/libssl-lib-quic_rx_depack.o", + "ssl/quic/libssl-lib-quic_sf_list.o", + "ssl/quic/libssl-lib-quic_srt_gen.o", + "ssl/quic/libssl-lib-quic_srtm.o", + "ssl/quic/libssl-lib-quic_sstream.o", + "ssl/quic/libssl-lib-quic_statm.o", + "ssl/quic/libssl-lib-quic_stream_map.o", + "ssl/quic/libssl-lib-quic_thread_assist.o", + "ssl/quic/libssl-lib-quic_tls.o", + "ssl/quic/libssl-lib-quic_tls_api.o", + "ssl/quic/libssl-lib-quic_trace.o", + "ssl/quic/libssl-lib-quic_tserver.o", + "ssl/quic/libssl-lib-quic_txp.o", + "ssl/quic/libssl-lib-quic_txpim.o", + "ssl/quic/libssl-lib-quic_types.o", + "ssl/quic/libssl-lib-quic_wire.o", + "ssl/quic/libssl-lib-quic_wire_pkt.o", + "ssl/quic/libssl-lib-uint_set.o" + ], + "products" => { + "lib" => [ + "libssl" ] } }, "ssl/record" => { "deps" => [ - "ssl/record/libssl-lib-dtls1_bitmap.o", "ssl/record/libssl-lib-rec_layer_d1.o", - "ssl/record/libssl-lib-rec_layer_s3.o", - "ssl/record/libssl-lib-ssl3_buffer.o", - "ssl/record/libssl-lib-ssl3_record.o", - "ssl/record/libssl-lib-ssl3_record_tls13.o", - "ssl/record/libcommon-lib-tls_pad.o" + "ssl/record/libssl-lib-rec_layer_s3.o" + ], + "products" => { + "lib" => [ + "libssl" + ] + } + }, + "ssl/record/methods" => { + "deps" => [ + "ssl/record/methods/libssl-lib-dtls_meth.o", + "ssl/record/methods/libssl-lib-ssl3_meth.o", + "ssl/record/methods/libssl-lib-tls13_meth.o", + "ssl/record/methods/libssl-lib-tls1_meth.o", + "ssl/record/methods/libssl-lib-tls_common.o", + "ssl/record/methods/libssl-lib-tls_multib.o", + "ssl/record/methods/libssl-lib-tlsany_meth.o", + "ssl/record/methods/libcommon-lib-tls_pad.o", + "ssl/record/methods/libdefault-lib-ssl3_cbc.o", + "ssl/record/methods/libfips-lib-ssl3_cbc.o" ], "products" => { "lib" => [ "libssl", - "providers/libcommon.a" + "providers/libcommon.a", + "providers/libdefault.a", + "providers/libfips.a" + ] + } + }, + "ssl/rio" => { + "deps" => [ + "ssl/rio/libssl-lib-poll_builder.o", + "ssl/rio/libssl-lib-poll_immediate.o", + "ssl/rio/libssl-lib-rio_notifier.o" + ], + "products" => { + "lib" => [ + "libssl" ] } }, @@ -10258,9 +11988,40 @@ our %unified_info = ( "test/helpers/dtlstest-bin-ssltestlib.o", "test/helpers/endecode_test-bin-predefined_dhparams.o", "test/helpers/fatalerrtest-bin-ssltestlib.o", + "test/helpers/json_test-bin-noisydgrambio.o", + "test/helpers/json_test-bin-pktsplitbio.o", + "test/helpers/json_test-bin-quictestlib.o", + "test/helpers/json_test-bin-ssltestlib.o", + "test/helpers/pkcs12_api_test-bin-pkcs12.o", "test/helpers/pkcs12_format_test-bin-pkcs12.o", + "test/helpers/quic_multistream_test-bin-noisydgrambio.o", + "test/helpers/quic_multistream_test-bin-pktsplitbio.o", + "test/helpers/quic_multistream_test-bin-quictestlib.o", + "test/helpers/quic_multistream_test-bin-ssltestlib.o", + "test/helpers/quic_newcid_test-bin-noisydgrambio.o", + "test/helpers/quic_newcid_test-bin-pktsplitbio.o", + "test/helpers/quic_newcid_test-bin-quictestlib.o", + "test/helpers/quic_newcid_test-bin-ssltestlib.o", + "test/helpers/quic_radix_test-bin-noisydgrambio.o", + "test/helpers/quic_radix_test-bin-pktsplitbio.o", + "test/helpers/quic_radix_test-bin-quictestlib.o", + "test/helpers/quic_radix_test-bin-ssltestlib.o", + "test/helpers/quic_srt_gen_test-bin-noisydgrambio.o", + "test/helpers/quic_srt_gen_test-bin-pktsplitbio.o", + "test/helpers/quic_srt_gen_test-bin-quictestlib.o", + "test/helpers/quic_srt_gen_test-bin-ssltestlib.o", + "test/helpers/quicapitest-bin-noisydgrambio.o", + "test/helpers/quicapitest-bin-pktsplitbio.o", + "test/helpers/quicapitest-bin-quictestlib.o", + "test/helpers/quicapitest-bin-ssltestlib.o", + "test/helpers/quicfaultstest-bin-noisydgrambio.o", + "test/helpers/quicfaultstest-bin-pktsplitbio.o", + "test/helpers/quicfaultstest-bin-quictestlib.o", + "test/helpers/quicfaultstest-bin-ssltestlib.o", "test/helpers/recordlentest-bin-ssltestlib.o", + "test/helpers/rpktest-bin-ssltestlib.o", "test/helpers/servername_test-bin-ssltestlib.o", + "test/helpers/ssl_handshake_rtt_test-bin-ssltestlib.o", "test/helpers/ssl_old_test-bin-predefined_dhparams.o", "test/helpers/ssl_test-bin-handshake.o", "test/helpers/ssl_test-bin-handshake_srp.o", @@ -10269,7 +12030,8 @@ our %unified_info = ( "test/helpers/sslapitest-bin-ssltestlib.o", "test/helpers/sslbuffertest-bin-ssltestlib.o", "test/helpers/sslcorrupttest-bin-ssltestlib.o", - "test/helpers/tls13ccstest-bin-ssltestlib.o" + "test/helpers/tls13ccstest-bin-ssltestlib.o", + "test/helpers/tls13groupselection_test-bin-ssltestlib.o" ], "products" => { "bin" => [ @@ -10287,16 +12049,37 @@ our %unified_info = ( "test/dtlstest", "test/endecode_test", "test/fatalerrtest", + "test/json_test", + "test/pkcs12_api_test", "test/pkcs12_format_test", + "test/quic_multistream_test", + "test/quic_newcid_test", + "test/quic_radix_test", + "test/quic_srt_gen_test", + "test/quicapitest", + "test/quicfaultstest", "test/recordlentest", + "test/rpktest", "test/servername_test", + "test/ssl_handshake_rtt_test", "test/ssl_old_test", "test/ssl_test", "test/ssl_test_ctx_test", "test/sslapitest", "test/sslbuffertest", "test/sslcorrupttest", - "test/tls13ccstest" + "test/tls13ccstest", + "test/tls13groupselection_test" + ] + } + }, + "test/radix" => { + "deps" => [ + "test/radix/quic_radix_test-bin-quic_radix.o" + ], + "products" => { + "bin" => [ + "test/quic_radix_test" ] } }, @@ -10308,6 +12091,7 @@ our %unified_info = ( "test/testutil/libtestutil-lib-driver.o", "test/testutil/libtestutil-lib-fake_random.o", "test/testutil/libtestutil-lib-format_output.o", + "test/testutil/libtestutil-lib-helper.o", "test/testutil/libtestutil-lib-load.o", "test/testutil/libtestutil-lib-main.o", "test/testutil/libtestutil-lib-options.o", @@ -10343,6 +12127,12 @@ our %unified_info = ( } }, "generate" => { + "OpenSSLConfig.cmake" => [ + "exporters/cmake/OpenSSLConfig.cmake.in" + ], + "OpenSSLConfigVersion.cmake" => [ + "exporters/cmake/OpenSSLConfigVersion.cmake.in" + ], "apps/progs.c" => [ "apps/progs.pl", "\"-C\"", @@ -10353,6 +12143,19 @@ our %unified_info = ( "\"-H\"", "\$(APPS_OPENSSL)" ], + "builddata.pm" => [ + "util/mkinstallvars.pl", + "PREFIX=.", + "BINDIR=apps", + "APPLINKDIR=ms", + "LIBDIR=", + "INCLUDEDIR=include", + "\"INCLUDEDIR=\$(SRCDIR)/include\"", + "ENGINESDIR=engines", + "MODULESDIR=providers", + "\"VERSION=\$(VERSION)\"", + "\"LDLIBS=\$(LIB_EX_LIBS)\"" + ], "crypto/aes/aes-586.S" => [ "crypto/aes/asm/aes-586.pl" ], @@ -10374,6 +12177,24 @@ our %unified_info = ( "crypto/aes/aes-ppc.s" => [ "crypto/aes/asm/aes-ppc.pl" ], + "crypto/aes/aes-riscv32-zkn.s" => [ + "crypto/aes/asm/aes-riscv32-zkn.pl" + ], + "crypto/aes/aes-riscv64-zkn.s" => [ + "crypto/aes/asm/aes-riscv64-zkn.pl" + ], + "crypto/aes/aes-riscv64-zvbb-zvkg-zvkned.s" => [ + "crypto/aes/asm/aes-riscv64-zvbb-zvkg-zvkned.pl" + ], + "crypto/aes/aes-riscv64-zvkb-zvkned.s" => [ + "crypto/aes/asm/aes-riscv64-zvkb-zvkned.pl" + ], + "crypto/aes/aes-riscv64-zvkned.s" => [ + "crypto/aes/asm/aes-riscv64-zvkned.pl" + ], + "crypto/aes/aes-riscv64.s" => [ + "crypto/aes/asm/aes-riscv64.pl" + ], "crypto/aes/aes-s390x.S" => [ "crypto/aes/asm/aes-s390x.pl" ], @@ -10401,6 +12222,9 @@ our %unified_info = ( "crypto/aes/aesni-x86_64.s" => [ "crypto/aes/asm/aesni-x86_64.pl" ], + "crypto/aes/aesni-xts-avx512.s" => [ + "crypto/aes/asm/aesni-xts-avx512.pl" + ], "crypto/aes/aesp8-ppc.s" => [ "crypto/aes/asm/aesp8-ppc.pl" ], @@ -10413,12 +12237,18 @@ our %unified_info = ( "crypto/aes/bsaes-armv7.S" => [ "crypto/aes/asm/bsaes-armv7.pl" ], + "crypto/aes/bsaes-armv8.S" => [ + "crypto/aes/asm/bsaes-armv8.pl" + ], "crypto/aes/bsaes-x86_64.s" => [ "crypto/aes/asm/bsaes-x86_64.pl" ], "crypto/aes/vpaes-armv8.S" => [ "crypto/aes/asm/vpaes-armv8.pl" ], + "crypto/aes/vpaes-loongarch64.S" => [ + "crypto/aes/asm/vpaes-loongarch64.pl" + ], "crypto/aes/vpaes-ppc.s" => [ "crypto/aes/asm/vpaes-ppc.pl" ], @@ -10479,15 +12309,33 @@ our %unified_info = ( "crypto/bn/ppc-mont.s" => [ "crypto/bn/asm/ppc-mont.pl" ], + "crypto/bn/ppc64-mont-fixed.s" => [ + "crypto/bn/asm/ppc64-mont-fixed.pl" + ], "crypto/bn/ppc64-mont.s" => [ "crypto/bn/asm/ppc64-mont.pl" ], + "crypto/bn/rsaz-2k-avx512.s" => [ + "crypto/bn/asm/rsaz-2k-avx512.pl" + ], + "crypto/bn/rsaz-2k-avxifma.s" => [ + "crypto/bn/asm/rsaz-2k-avxifma.pl" + ], + "crypto/bn/rsaz-3k-avx512.s" => [ + "crypto/bn/asm/rsaz-3k-avx512.pl" + ], + "crypto/bn/rsaz-3k-avxifma.s" => [ + "crypto/bn/asm/rsaz-3k-avxifma.pl" + ], + "crypto/bn/rsaz-4k-avx512.s" => [ + "crypto/bn/asm/rsaz-4k-avx512.pl" + ], + "crypto/bn/rsaz-4k-avxifma.s" => [ + "crypto/bn/asm/rsaz-4k-avxifma.pl" + ], "crypto/bn/rsaz-avx2.s" => [ "crypto/bn/asm/rsaz-avx2.pl" ], - "crypto/bn/rsaz-avx512.s" => [ - "crypto/bn/asm/rsaz-avx512.pl" - ], "crypto/bn/rsaz-x86_64.s" => [ "crypto/bn/asm/rsaz-x86_64.pl" ], @@ -10549,6 +12397,9 @@ our %unified_info = ( "crypto/chacha/chacha-armv4.S" => [ "crypto/chacha/asm/chacha-armv4.pl" ], + "crypto/chacha/chacha-armv8-sve.S" => [ + "crypto/chacha/asm/chacha-armv8-sve.pl" + ], "crypto/chacha/chacha-armv8.S" => [ "crypto/chacha/asm/chacha-armv8.pl" ], @@ -10561,9 +12412,19 @@ our %unified_info = ( "crypto/chacha/chacha-ia64.s" => [ "crypto/chacha/chacha-ia64.S" ], + "crypto/chacha/chacha-loongarch64.S" => [ + "crypto/chacha/asm/chacha-loongarch64.pl" + ], "crypto/chacha/chacha-ppc.s" => [ "crypto/chacha/asm/chacha-ppc.pl" ], + "crypto/chacha/chacha-riscv64-v-zbb-zvkb.s" => [ + "crypto/chacha/asm/chacha-riscv64-v-zbb.pl", + "zvkb" + ], + "crypto/chacha/chacha-riscv64-v-zbb.s" => [ + "crypto/chacha/asm/chacha-riscv64-v-zbb.pl" + ], "crypto/chacha/chacha-s390x.S" => [ "crypto/chacha/asm/chacha-s390x.pl" ], @@ -10573,6 +12434,9 @@ our %unified_info = ( "crypto/chacha/chacha-x86_64.s" => [ "crypto/chacha/asm/chacha-x86_64.pl" ], + "crypto/chacha/chachap10-ppc.s" => [ + "crypto/chacha/asm/chachap10-ppc.pl" + ], "crypto/des/crypt586.S" => [ "crypto/des/asm/crypt586.pl" ], @@ -10585,6 +12449,9 @@ our %unified_info = ( "crypto/des/dest4-sparcv9.S" => [ "crypto/des/asm/dest4-sparcv9.pl" ], + "crypto/ec/ecp_nistp384-ppc64.s" => [ + "crypto/ec/asm/ecp_nistp384-ppc64.pl" + ], "crypto/ec/ecp_nistp521-ppc64.s" => [ "crypto/ec/asm/ecp_nistp521-ppc64.pl" ], @@ -10609,6 +12476,9 @@ our %unified_info = ( "crypto/ec/ecp_nistz256-x86_64.s" => [ "crypto/ec/asm/ecp_nistz256-x86_64.pl" ], + "crypto/ec/ecp_sm2p256-armv8.S" => [ + "crypto/ec/asm/ecp_sm2p256-armv8.pl" + ], "crypto/ec/x25519-ppc64.s" => [ "crypto/ec/asm/x25519-ppc64.pl" ], @@ -10618,18 +12488,39 @@ our %unified_info = ( "crypto/ia64cpuid.s" => [ "crypto/ia64cpuid.S" ], + "crypto/loongarch64cpuid.s" => [ + "crypto/loongarch64cpuid.pl" + ], "crypto/md5/md5-586.S" => [ "crypto/md5/asm/md5-586.pl" ], + "crypto/md5/md5-aarch64.S" => [ + "crypto/md5/asm/md5-aarch64.pl" + ], + "crypto/md5/md5-loongarch64.S" => [ + "crypto/md5/asm/md5-loongarch64.pl" + ], "crypto/md5/md5-sparcv9.S" => [ "crypto/md5/asm/md5-sparcv9.pl" ], "crypto/md5/md5-x86_64.s" => [ "crypto/md5/asm/md5-x86_64.pl" ], + "crypto/modes/aes-gcm-armv8-unroll8_64.S" => [ + "crypto/modes/asm/aes-gcm-armv8-unroll8_64.pl" + ], "crypto/modes/aes-gcm-armv8_64.S" => [ "crypto/modes/asm/aes-gcm-armv8_64.pl" ], + "crypto/modes/aes-gcm-avx512.s" => [ + "crypto/modes/asm/aes-gcm-avx512.pl" + ], + "crypto/modes/aes-gcm-ppc.s" => [ + "crypto/modes/asm/aes-gcm-ppc.pl" + ], + "crypto/modes/aes-gcm-riscv64-zvkb-zvkg-zvkned.s" => [ + "crypto/modes/asm/aes-gcm-riscv64-zvkb-zvkg-zvkned.pl" + ], "crypto/modes/aesni-gcm-x86_64.s" => [ "crypto/modes/asm/aesni-gcm-x86_64.pl" ], @@ -10648,6 +12539,15 @@ our %unified_info = ( "crypto/modes/ghash-parisc.s" => [ "crypto/modes/asm/ghash-parisc.pl" ], + "crypto/modes/ghash-riscv64-zvkb-zvbc.s" => [ + "crypto/modes/asm/ghash-riscv64-zvkb-zvbc.pl" + ], + "crypto/modes/ghash-riscv64-zvkg.s" => [ + "crypto/modes/asm/ghash-riscv64-zvkg.pl" + ], + "crypto/modes/ghash-riscv64.s" => [ + "crypto/modes/asm/ghash-riscv64.pl" + ], "crypto/modes/ghash-s390x.S" => [ "crypto/modes/asm/ghash-s390x.pl" ], @@ -10666,6 +12566,9 @@ our %unified_info = ( "crypto/modes/ghashv8-armx.S" => [ "crypto/modes/asm/ghashv8-armx.pl" ], + "crypto/params_idx.c" => [ + "crypto/params_idx.c.in" + ], "crypto/pariscid.s" => [ "crypto/pariscid.pl" ], @@ -10726,6 +12629,12 @@ our %unified_info = ( "crypto/ripemd/rmd-586.S" => [ "crypto/ripemd/asm/rmd-586.pl" ], + "crypto/riscv32cpuid.s" => [ + "crypto/riscv32cpuid.pl" + ], + "crypto/riscv64cpuid.s" => [ + "crypto/riscv64cpuid.pl" + ], "crypto/s390xcpuid.S" => [ "crypto/s390xcpuid.pl" ], @@ -10834,6 +12743,9 @@ our %unified_info = ( "crypto/sha/sha256-ppc.s" => [ "crypto/sha/asm/sha512-ppc.pl" ], + "crypto/sha/sha256-riscv64-zvkb-zvknha_or_zvknhb.S" => [ + "crypto/sha/asm/sha256-riscv64-zvkb-zvknha_or_zvknhb.pl" + ], "crypto/sha/sha256-s390x.S" => [ "crypto/sha/asm/sha512-s390x.pl" ], @@ -10870,6 +12782,9 @@ our %unified_info = ( "crypto/sha/sha512-ppc.s" => [ "crypto/sha/asm/sha512-ppc.pl" ], + "crypto/sha/sha512-riscv64-zvkb-zvknhb.S" => [ + "crypto/sha/asm/sha512-riscv64-zvkb-zvknhb.pl" + ], "crypto/sha/sha512-s390x.S" => [ "crypto/sha/asm/sha512-s390x.pl" ], @@ -10882,6 +12797,24 @@ our %unified_info = ( "crypto/sha/sha512p8-ppc.s" => [ "crypto/sha/asm/sha512p8-ppc.pl" ], + "crypto/sm3/sm3-armv8.S" => [ + "crypto/sm3/asm/sm3-armv8.pl" + ], + "crypto/sm3/sm3-riscv64-zvksh.S" => [ + "crypto/sm3/asm/sm3-riscv64-zvksh.pl" + ], + "crypto/sm4/sm4-armv8.S" => [ + "crypto/sm4/asm/sm4-armv8.pl" + ], + "crypto/sm4/sm4-riscv64-zvksed.s" => [ + "crypto/sm4/asm/sm4-riscv64-zvksed.pl" + ], + "crypto/sm4/vpsm4-armv8.S" => [ + "crypto/sm4/asm/vpsm4-armv8.pl" + ], + "crypto/sm4/vpsm4_ex-armv8.S" => [ + "crypto/sm4/asm/vpsm4_ex-armv8.pl" + ], "crypto/uplink-ia64.s" => [ "ms/uplink-ia64.pl" ], @@ -11047,6 +12980,9 @@ our %unified_info = ( "doc/html/man1/openssl-sess_id.html" => [ "doc/man1/openssl-sess_id.pod" ], + "doc/html/man1/openssl-skeyutl.html" => [ + "doc/man1/openssl-skeyutl.pod" + ], "doc/html/man1/openssl-smime.html" => [ "doc/man1/openssl-smime.pod" ], @@ -11188,6 +13124,9 @@ our %unified_info = ( "doc/html/man3/BIO_get_ex_new_index.html" => [ "doc/man3/BIO_get_ex_new_index.pod" ], + "doc/html/man3/BIO_get_rpoll_descriptor.html" => [ + "doc/man3/BIO_get_rpoll_descriptor.pod" + ], "doc/html/man3/BIO_meth_new.html" => [ "doc/man3/BIO_meth_new.pod" ], @@ -11224,6 +13163,9 @@ our %unified_info = ( "doc/html/man3/BIO_s_datagram.html" => [ "doc/man3/BIO_s_datagram.pod" ], + "doc/html/man3/BIO_s_dgram_pair.html" => [ + "doc/man3/BIO_s_dgram_pair.pod" + ], "doc/html/man3/BIO_s_fd.html" => [ "doc/man3/BIO_s_fd.pod" ], @@ -11239,6 +13181,9 @@ our %unified_info = ( "doc/html/man3/BIO_s_socket.html" => [ "doc/man3/BIO_s_socket.pod" ], + "doc/html/man3/BIO_sendmmsg.html" => [ + "doc/man3/BIO_sendmmsg.pod" + ], "doc/html/man3/BIO_set_callback.html" => [ "doc/man3/BIO_set_callback.pod" ], @@ -11311,6 +13256,9 @@ our %unified_info = ( "doc/html/man3/BUF_MEM_new.html" => [ "doc/man3/BUF_MEM_new.pod" ], + "doc/html/man3/CMAC_CTX.html" => [ + "doc/man3/CMAC_CTX.pod" + ], "doc/html/man3/CMS_EncryptedData_decrypt.html" => [ "doc/man3/CMS_EncryptedData_decrypt.pod" ], @@ -11377,6 +13325,9 @@ our %unified_info = ( "doc/html/man3/CMS_verify_receipt.html" => [ "doc/man3/CMS_verify_receipt.pod" ], + "doc/html/man3/COMP_CTX_new.html" => [ + "doc/man3/COMP_CTX_new.pod" + ], "doc/html/man3/CONF_modules_free.html" => [ "doc/man3/CONF_modules_free.pod" ], @@ -11476,6 +13427,12 @@ our %unified_info = ( "doc/html/man3/DTLS_set_timer_cb.html" => [ "doc/man3/DTLS_set_timer_cb.pod" ], + "doc/html/man3/DTLSv1_get_timeout.html" => [ + "doc/man3/DTLSv1_get_timeout.pod" + ], + "doc/html/man3/DTLSv1_handle_timeout.html" => [ + "doc/man3/DTLSv1_handle_timeout.pod" + ], "doc/html/man3/DTLSv1_listen.html" => [ "doc/man3/DTLSv1_listen.pod" ], @@ -11614,6 +13571,9 @@ our %unified_info = ( "doc/html/man3/EVP_PKEY_CTX_get0_pkey.html" => [ "doc/man3/EVP_PKEY_CTX_get0_pkey.pod" ], + "doc/html/man3/EVP_PKEY_CTX_get_algor.html" => [ + "doc/man3/EVP_PKEY_CTX_get_algor.pod" + ], "doc/html/man3/EVP_PKEY_CTX_new.html" => [ "doc/man3/EVP_PKEY_CTX_new.pod" ], @@ -11731,6 +13691,12 @@ our %unified_info = ( "doc/html/man3/EVP_SIGNATURE.html" => [ "doc/man3/EVP_SIGNATURE.pod" ], + "doc/html/man3/EVP_SKEY.html" => [ + "doc/man3/EVP_SKEY.pod" + ], + "doc/html/man3/EVP_SKEYMGMT.html" => [ + "doc/man3/EVP_SKEYMGMT.pod" + ], "doc/html/man3/EVP_SealInit.html" => [ "doc/man3/EVP_SealInit.pod" ], @@ -11818,6 +13784,9 @@ our %unified_info = ( "doc/html/man3/EVP_whirlpool.html" => [ "doc/man3/EVP_whirlpool.pod" ], + "doc/html/man3/GENERAL_NAME.html" => [ + "doc/man3/GENERAL_NAME.pod" + ], "doc/html/man3/HMAC.html" => [ "doc/man3/HMAC.pod" ], @@ -11890,9 +13859,15 @@ our %unified_info = ( "doc/html/man3/OPENSSL_load_builtin_modules.html" => [ "doc/man3/OPENSSL_load_builtin_modules.pod" ], + "doc/html/man3/OPENSSL_load_u16_le.html" => [ + "doc/man3/OPENSSL_load_u16_le.pod" + ], "doc/html/man3/OPENSSL_malloc.html" => [ "doc/man3/OPENSSL_malloc.pod" ], + "doc/html/man3/OPENSSL_riscvcap.html" => [ + "doc/man3/OPENSSL_riscvcap.pod" + ], "doc/html/man3/OPENSSL_s390xcap.html" => [ "doc/man3/OPENSSL_s390xcap.pod" ], @@ -11908,12 +13883,18 @@ our %unified_info = ( "doc/html/man3/OSSL_CALLBACK.html" => [ "doc/man3/OSSL_CALLBACK.pod" ], + "doc/html/man3/OSSL_CMP_ATAV_set0.html" => [ + "doc/man3/OSSL_CMP_ATAV_set0.pod" + ], "doc/html/man3/OSSL_CMP_CTX_new.html" => [ "doc/man3/OSSL_CMP_CTX_new.pod" ], "doc/html/man3/OSSL_CMP_HDR_get0_transactionID.html" => [ "doc/man3/OSSL_CMP_HDR_get0_transactionID.pod" ], + "doc/html/man3/OSSL_CMP_ITAV_new_caCerts.html" => [ + "doc/man3/OSSL_CMP_ITAV_new_caCerts.pod" + ], "doc/html/man3/OSSL_CMP_ITAV_set0.html" => [ "doc/man3/OSSL_CMP_ITAV_set0.pod" ], @@ -11983,9 +13964,18 @@ our %unified_info = ( "doc/html/man3/OSSL_ENCODER_to_bio.html" => [ "doc/man3/OSSL_ENCODER_to_bio.pod" ], + "doc/html/man3/OSSL_ERR_STATE_save.html" => [ + "doc/man3/OSSL_ERR_STATE_save.pod" + ], "doc/html/man3/OSSL_ESS_check_signing_certs.html" => [ "doc/man3/OSSL_ESS_check_signing_certs.pod" ], + "doc/html/man3/OSSL_GENERAL_NAMES_print.html" => [ + "doc/man3/OSSL_GENERAL_NAMES_print.pod" + ], + "doc/html/man3/OSSL_HPKE_CTX_new.html" => [ + "doc/man3/OSSL_HPKE_CTX_new.pod" + ], "doc/html/man3/OSSL_HTTP_REQ_CTX.html" => [ "doc/man3/OSSL_HTTP_REQ_CTX.pod" ], @@ -11995,12 +13985,24 @@ our %unified_info = ( "doc/html/man3/OSSL_HTTP_transfer.html" => [ "doc/man3/OSSL_HTTP_transfer.pod" ], + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX.html" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX.pod" + ], + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX_print.html" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX_print.pod" + ], + "doc/html/man3/OSSL_INDICATOR_set_callback.html" => [ + "doc/man3/OSSL_INDICATOR_set_callback.pod" + ], "doc/html/man3/OSSL_ITEM.html" => [ "doc/man3/OSSL_ITEM.pod" ], "doc/html/man3/OSSL_LIB_CTX.html" => [ "doc/man3/OSSL_LIB_CTX.pod" ], + "doc/html/man3/OSSL_LIB_CTX_set_conf_diagnostics.html" => [ + "doc/man3/OSSL_LIB_CTX_set_conf_diagnostics.pod" + ], "doc/html/man3/OSSL_PARAM.html" => [ "doc/man3/OSSL_PARAM.pod" ], @@ -12016,9 +14018,15 @@ our %unified_info = ( "doc/html/man3/OSSL_PARAM_int.html" => [ "doc/man3/OSSL_PARAM_int.pod" ], + "doc/html/man3/OSSL_PARAM_print_to_bio.html" => [ + "doc/man3/OSSL_PARAM_print_to_bio.pod" + ], "doc/html/man3/OSSL_PROVIDER.html" => [ "doc/man3/OSSL_PROVIDER.pod" ], + "doc/html/man3/OSSL_QUIC_client_method.html" => [ + "doc/man3/OSSL_QUIC_client_method.pod" + ], "doc/html/man3/OSSL_SELF_TEST_new.html" => [ "doc/man3/OSSL_SELF_TEST_new.pod" ], @@ -12043,6 +14051,9 @@ our %unified_info = ( "doc/html/man3/OSSL_STORE_open.html" => [ "doc/man3/OSSL_STORE_open.pod" ], + "doc/html/man3/OSSL_sleep.html" => [ + "doc/man3/OSSL_sleep.pod" + ], "doc/html/man3/OSSL_trace_enabled.html" => [ "doc/man3/OSSL_trace_enabled.pod" ], @@ -12058,6 +14069,9 @@ our %unified_info = ( "doc/html/man3/OpenSSL_version.html" => [ "doc/man3/OpenSSL_version.pod" ], + "doc/html/man3/PBMAC1_get1_pbkdf2_param.html" => [ + "doc/man3/PBMAC1_get1_pbkdf2_param.pod" + ], "doc/html/man3/PEM_X509_INFO_read_bio_ex.html" => [ "doc/man3/PEM_X509_INFO_read_bio_ex.pod" ], @@ -12094,6 +14108,9 @@ our %unified_info = ( "doc/html/man3/PKCS12_SAFEBAG_get1_cert.html" => [ "doc/man3/PKCS12_SAFEBAG_get1_cert.pod" ], + "doc/html/man3/PKCS12_SAFEBAG_set0_attrs.html" => [ + "doc/man3/PKCS12_SAFEBAG_set0_attrs.pod" + ], "doc/html/man3/PKCS12_add1_attr_by_NID.html" => [ "doc/man3/PKCS12_add1_attr_by_NID.pod" ], @@ -12367,6 +14384,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set0_CA_list.html" => [ "doc/man3/SSL_CTX_set0_CA_list.pod" ], + "doc/html/man3/SSL_CTX_set1_cert_comp_preference.html" => [ + "doc/man3/SSL_CTX_set1_cert_comp_preference.pod" + ], "doc/html/man3/SSL_CTX_set1_curves.html" => [ "doc/man3/SSL_CTX_set1_curves.pod" ], @@ -12406,6 +14426,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_default_passwd_cb.html" => [ "doc/man3/SSL_CTX_set_default_passwd_cb.pod" ], + "doc/html/man3/SSL_CTX_set_domain_flags.html" => [ + "doc/man3/SSL_CTX_set_domain_flags.pod" + ], "doc/html/man3/SSL_CTX_set_generate_session_id.html" => [ "doc/man3/SSL_CTX_set_generate_session_id.pod" ], @@ -12427,6 +14450,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_msg_callback.html" => [ "doc/man3/SSL_CTX_set_msg_callback.pod" ], + "doc/html/man3/SSL_CTX_set_new_pending_conn_cb.html" => [ + "doc/man3/SSL_CTX_set_new_pending_conn_cb.pod" + ], "doc/html/man3/SSL_CTX_set_num_tickets.html" => [ "doc/man3/SSL_CTX_set_num_tickets.pod" ], @@ -12541,6 +14567,9 @@ our %unified_info = ( "doc/html/man3/SSL_accept.html" => [ "doc/man3/SSL_accept.pod" ], + "doc/html/man3/SSL_accept_stream.html" => [ + "doc/man3/SSL_accept_stream.pod" + ], "doc/html/man3/SSL_alert_type_string.html" => [ "doc/man3/SSL_alert_type_string.pod" ], @@ -12568,9 +14597,21 @@ our %unified_info = ( "doc/html/man3/SSL_free.html" => [ "doc/man3/SSL_free.pod" ], + "doc/html/man3/SSL_get0_connection.html" => [ + "doc/man3/SSL_get0_connection.pod" + ], + "doc/html/man3/SSL_get0_group_name.html" => [ + "doc/man3/SSL_get0_group_name.pod" + ], + "doc/html/man3/SSL_get0_peer_rpk.html" => [ + "doc/man3/SSL_get0_peer_rpk.pod" + ], "doc/html/man3/SSL_get0_peer_scts.html" => [ "doc/man3/SSL_get0_peer_scts.pod" ], + "doc/html/man3/SSL_get1_builtin_sigalgs.html" => [ + "doc/man3/SSL_get1_builtin_sigalgs.pod" + ], "doc/html/man3/SSL_get_SSL_CTX.html" => [ "doc/man3/SSL_get_SSL_CTX.pod" ], @@ -12586,6 +14627,9 @@ our %unified_info = ( "doc/html/man3/SSL_get_client_random.html" => [ "doc/man3/SSL_get_client_random.pod" ], + "doc/html/man3/SSL_get_conn_close_info.html" => [ + "doc/man3/SSL_get_conn_close_info.pod" + ], "doc/html/man3/SSL_get_current_cipher.html" => [ "doc/man3/SSL_get_current_cipher.pod" ], @@ -12595,12 +14639,18 @@ our %unified_info = ( "doc/html/man3/SSL_get_error.html" => [ "doc/man3/SSL_get_error.pod" ], + "doc/html/man3/SSL_get_event_timeout.html" => [ + "doc/man3/SSL_get_event_timeout.pod" + ], "doc/html/man3/SSL_get_extms_support.html" => [ "doc/man3/SSL_get_extms_support.pod" ], "doc/html/man3/SSL_get_fd.html" => [ "doc/man3/SSL_get_fd.pod" ], + "doc/html/man3/SSL_get_handshake_rtt.html" => [ + "doc/man3/SSL_get_handshake_rtt.pod" + ], "doc/html/man3/SSL_get_peer_cert_chain.html" => [ "doc/man3/SSL_get_peer_cert_chain.pod" ], @@ -12619,12 +14669,24 @@ our %unified_info = ( "doc/html/man3/SSL_get_rbio.html" => [ "doc/man3/SSL_get_rbio.pod" ], + "doc/html/man3/SSL_get_rpoll_descriptor.html" => [ + "doc/man3/SSL_get_rpoll_descriptor.pod" + ], "doc/html/man3/SSL_get_session.html" => [ "doc/man3/SSL_get_session.pod" ], "doc/html/man3/SSL_get_shared_sigalgs.html" => [ "doc/man3/SSL_get_shared_sigalgs.pod" ], + "doc/html/man3/SSL_get_stream_id.html" => [ + "doc/man3/SSL_get_stream_id.pod" + ], + "doc/html/man3/SSL_get_stream_read_state.html" => [ + "doc/man3/SSL_get_stream_read_state.pod" + ], + "doc/html/man3/SSL_get_value_uint.html" => [ + "doc/man3/SSL_get_value_uint.pod" + ], "doc/html/man3/SSL_get_verify_result.html" => [ "doc/man3/SSL_get_verify_result.pod" ], @@ -12634,9 +14696,15 @@ our %unified_info = ( "doc/html/man3/SSL_group_to_name.html" => [ "doc/man3/SSL_group_to_name.pod" ], + "doc/html/man3/SSL_handle_events.html" => [ + "doc/man3/SSL_handle_events.pod" + ], "doc/html/man3/SSL_in_init.html" => [ "doc/man3/SSL_in_init.pod" ], + "doc/html/man3/SSL_inject_net_dgram.html" => [ + "doc/man3/SSL_inject_net_dgram.pod" + ], "doc/html/man3/SSL_key_update.html" => [ "doc/man3/SSL_key_update.pod" ], @@ -12649,9 +14717,21 @@ our %unified_info = ( "doc/html/man3/SSL_new.html" => [ "doc/man3/SSL_new.pod" ], + "doc/html/man3/SSL_new_domain.html" => [ + "doc/man3/SSL_new_domain.pod" + ], + "doc/html/man3/SSL_new_listener.html" => [ + "doc/man3/SSL_new_listener.pod" + ], + "doc/html/man3/SSL_new_stream.html" => [ + "doc/man3/SSL_new_stream.pod" + ], "doc/html/man3/SSL_pending.html" => [ "doc/man3/SSL_pending.pod" ], + "doc/html/man3/SSL_poll.html" => [ + "doc/man3/SSL_poll.pod" + ], "doc/html/man3/SSL_read.html" => [ "doc/man3/SSL_read.pod" ], @@ -12667,24 +14747,45 @@ our %unified_info = ( "doc/html/man3/SSL_set1_host.html" => [ "doc/man3/SSL_set1_host.pod" ], + "doc/html/man3/SSL_set1_initial_peer_addr.html" => [ + "doc/man3/SSL_set1_initial_peer_addr.pod" + ], + "doc/html/man3/SSL_set1_server_cert_type.html" => [ + "doc/man3/SSL_set1_server_cert_type.pod" + ], "doc/html/man3/SSL_set_async_callback.html" => [ "doc/man3/SSL_set_async_callback.pod" ], "doc/html/man3/SSL_set_bio.html" => [ "doc/man3/SSL_set_bio.pod" ], + "doc/html/man3/SSL_set_blocking_mode.html" => [ + "doc/man3/SSL_set_blocking_mode.pod" + ], "doc/html/man3/SSL_set_connect_state.html" => [ "doc/man3/SSL_set_connect_state.pod" ], + "doc/html/man3/SSL_set_default_stream_mode.html" => [ + "doc/man3/SSL_set_default_stream_mode.pod" + ], "doc/html/man3/SSL_set_fd.html" => [ "doc/man3/SSL_set_fd.pod" ], + "doc/html/man3/SSL_set_incoming_stream_policy.html" => [ + "doc/man3/SSL_set_incoming_stream_policy.pod" + ], + "doc/html/man3/SSL_set_quic_tls_cbs.html" => [ + "doc/man3/SSL_set_quic_tls_cbs.pod" + ], "doc/html/man3/SSL_set_retry_verify.html" => [ "doc/man3/SSL_set_retry_verify.pod" ], "doc/html/man3/SSL_set_session.html" => [ "doc/man3/SSL_set_session.pod" ], + "doc/html/man3/SSL_set_session_secret_cb.html" => [ + "doc/man3/SSL_set_session_secret_cb.pod" + ], "doc/html/man3/SSL_set_shutdown.html" => [ "doc/man3/SSL_set_shutdown.pod" ], @@ -12697,6 +14798,12 @@ our %unified_info = ( "doc/html/man3/SSL_state_string.html" => [ "doc/man3/SSL_state_string.pod" ], + "doc/html/man3/SSL_stream_conclude.html" => [ + "doc/man3/SSL_stream_conclude.pod" + ], + "doc/html/man3/SSL_stream_reset.html" => [ + "doc/man3/SSL_stream_reset.pod" + ], "doc/html/man3/SSL_want.html" => [ "doc/man3/SSL_want.pod" ], @@ -12706,8 +14813,8 @@ our %unified_info = ( "doc/html/man3/TS_RESP_CTX_new.html" => [ "doc/man3/TS_RESP_CTX_new.pod" ], - "doc/html/man3/TS_VERIFY_CTX_set_certs.html" => [ - "doc/man3/TS_VERIFY_CTX_set_certs.pod" + "doc/html/man3/TS_VERIFY_CTX.html" => [ + "doc/man3/TS_VERIFY_CTX.pod" ], "doc/html/man3/UI_STRING.html" => [ "doc/man3/UI_STRING.pod" @@ -12727,6 +14834,21 @@ our %unified_info = ( "doc/html/man3/X509V3_set_ctx.html" => [ "doc/man3/X509V3_set_ctx.pod" ], + "doc/html/man3/X509_ACERT_add1_attr.html" => [ + "doc/man3/X509_ACERT_add1_attr.pod" + ], + "doc/html/man3/X509_ACERT_add_attr_nconf.html" => [ + "doc/man3/X509_ACERT_add_attr_nconf.pod" + ], + "doc/html/man3/X509_ACERT_get0_holder_baseCertId.html" => [ + "doc/man3/X509_ACERT_get0_holder_baseCertId.pod" + ], + "doc/html/man3/X509_ACERT_get_attr.html" => [ + "doc/man3/X509_ACERT_get_attr.pod" + ], + "doc/html/man3/X509_ACERT_print_ex.html" => [ + "doc/man3/X509_ACERT_print_ex.pod" + ], "doc/html/man3/X509_ALGOR_dup.html" => [ "doc/man3/X509_ALGOR_dup.pod" ], @@ -12775,6 +14897,9 @@ our %unified_info = ( "doc/html/man3/X509_SIG_get0.html" => [ "doc/man3/X509_SIG_get0.pod" ], + "doc/html/man3/X509_STORE_CTX_get_by_subject.html" => [ + "doc/man3/X509_STORE_CTX_get_by_subject.pod" + ], "doc/html/man3/X509_STORE_CTX_get_error.html" => [ "doc/man3/X509_STORE_CTX_get_error.pod" ], @@ -12841,6 +14966,9 @@ our %unified_info = ( "doc/html/man3/X509_get0_uids.html" => [ "doc/man3/X509_get0_uids.pod" ], + "doc/html/man3/X509_get_default_cert_file.html" => [ + "doc/man3/X509_get_default_cert_file.pod" + ], "doc/html/man3/X509_get_extension_flags.html" => [ "doc/man3/X509_get_extension_flags.pod" ], @@ -12964,9 +15092,15 @@ our %unified_info = ( "doc/html/man7/EVP_CIPHER-SM4.html" => [ "doc/man7/EVP_CIPHER-SM4.pod" ], + "doc/html/man7/EVP_KDF-ARGON2.html" => [ + "doc/man7/EVP_KDF-ARGON2.pod" + ], "doc/html/man7/EVP_KDF-HKDF.html" => [ "doc/man7/EVP_KDF-HKDF.pod" ], + "doc/html/man7/EVP_KDF-HMAC-DRBG.html" => [ + "doc/man7/EVP_KDF-HMAC-DRBG.pod" + ], "doc/html/man7/EVP_KDF-KB.html" => [ "doc/man7/EVP_KDF-KB.pod" ], @@ -12982,6 +15116,9 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-PKCS12KDF.html" => [ "doc/man7/EVP_KDF-PKCS12KDF.pod" ], + "doc/html/man7/EVP_KDF-PVKKDF.html" => [ + "doc/man7/EVP_KDF-PVKKDF.pod" + ], "doc/html/man7/EVP_KDF-SCRYPT.html" => [ "doc/man7/EVP_KDF-SCRYPT.pod" ], @@ -13006,9 +15143,18 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-X963.html" => [ "doc/man7/EVP_KDF-X963.pod" ], + "doc/html/man7/EVP_KEM-EC.html" => [ + "doc/man7/EVP_KEM-EC.pod" + ], + "doc/html/man7/EVP_KEM-ML-KEM.html" => [ + "doc/man7/EVP_KEM-ML-KEM.pod" + ], "doc/html/man7/EVP_KEM-RSA.html" => [ "doc/man7/EVP_KEM-RSA.pod" ], + "doc/html/man7/EVP_KEM-X25519.html" => [ + "doc/man7/EVP_KEM-X25519.pod" + ], "doc/html/man7/EVP_KEYEXCH-DH.html" => [ "doc/man7/EVP_KEYEXCH-DH.pod" ], @@ -13042,6 +15188,9 @@ our %unified_info = ( "doc/html/man7/EVP_MD-BLAKE2.html" => [ "doc/man7/EVP_MD-BLAKE2.pod" ], + "doc/html/man7/EVP_MD-KECCAK.html" => [ + "doc/man7/EVP_MD-KECCAK.pod" + ], "doc/html/man7/EVP_MD-MD2.html" => [ "doc/man7/EVP_MD-MD2.pod" ], @@ -13099,15 +15248,27 @@ our %unified_info = ( "doc/html/man7/EVP_PKEY-HMAC.html" => [ "doc/man7/EVP_PKEY-HMAC.pod" ], + "doc/html/man7/EVP_PKEY-ML-DSA.html" => [ + "doc/man7/EVP_PKEY-ML-DSA.pod" + ], + "doc/html/man7/EVP_PKEY-ML-KEM.html" => [ + "doc/man7/EVP_PKEY-ML-KEM.pod" + ], "doc/html/man7/EVP_PKEY-RSA.html" => [ "doc/man7/EVP_PKEY-RSA.pod" ], + "doc/html/man7/EVP_PKEY-SLH-DSA.html" => [ + "doc/man7/EVP_PKEY-SLH-DSA.pod" + ], "doc/html/man7/EVP_PKEY-SM2.html" => [ "doc/man7/EVP_PKEY-SM2.pod" ], "doc/html/man7/EVP_PKEY-X25519.html" => [ "doc/man7/EVP_PKEY-X25519.pod" ], + "doc/html/man7/EVP_RAND-CRNG-TEST.html" => [ + "doc/man7/EVP_RAND-CRNG-TEST.pod" + ], "doc/html/man7/EVP_RAND-CTR-DRBG.html" => [ "doc/man7/EVP_RAND-CTR-DRBG.pod" ], @@ -13117,6 +15278,9 @@ our %unified_info = ( "doc/html/man7/EVP_RAND-HMAC-DRBG.html" => [ "doc/man7/EVP_RAND-HMAC-DRBG.pod" ], + "doc/html/man7/EVP_RAND-JITTER.html" => [ + "doc/man7/EVP_RAND-JITTER.pod" + ], "doc/html/man7/EVP_RAND-SEED-SRC.html" => [ "doc/man7/EVP_RAND-SEED-SRC.pod" ], @@ -13138,9 +15302,15 @@ our %unified_info = ( "doc/html/man7/EVP_SIGNATURE-HMAC.html" => [ "doc/man7/EVP_SIGNATURE-HMAC.pod" ], + "doc/html/man7/EVP_SIGNATURE-ML-DSA.html" => [ + "doc/man7/EVP_SIGNATURE-ML-DSA.pod" + ], "doc/html/man7/EVP_SIGNATURE-RSA.html" => [ "doc/man7/EVP_SIGNATURE-RSA.pod" ], + "doc/html/man7/EVP_SIGNATURE-SLH-DSA.html" => [ + "doc/man7/EVP_SIGNATURE-SLH-DSA.pod" + ], "doc/html/man7/OSSL_PROVIDER-FIPS.html" => [ "doc/man7/OSSL_PROVIDER-FIPS.pod" ], @@ -13156,6 +15326,9 @@ our %unified_info = ( "doc/html/man7/OSSL_PROVIDER-null.html" => [ "doc/man7/OSSL_PROVIDER-null.pod" ], + "doc/html/man7/OSSL_STORE-winstore.html" => [ + "doc/man7/OSSL_STORE-winstore.pod" + ], "doc/html/man7/RAND.html" => [ "doc/man7/RAND.pod" ], @@ -13168,9 +15341,6 @@ our %unified_info = ( "doc/html/man7/bio.html" => [ "doc/man7/bio.pod" ], - "doc/html/man7/crypto.html" => [ - "doc/man7/crypto.pod" - ], "doc/html/man7/ct.html" => [ "doc/man7/ct.pod" ], @@ -13201,9 +15371,6 @@ our %unified_info = ( "doc/html/man7/life_cycle-rand.html" => [ "doc/man7/life_cycle-rand.pod" ], - "doc/html/man7/migration_guide.html" => [ - "doc/man7/migration_guide.pod" - ], "doc/html/man7/openssl-core.h.html" => [ "doc/man7/openssl-core.h.pod" ], @@ -13219,12 +15386,66 @@ our %unified_info = ( "doc/html/man7/openssl-glossary.html" => [ "doc/man7/openssl-glossary.pod" ], + "doc/html/man7/openssl-qlog.html" => [ + "doc/man7/openssl-qlog.pod" + ], + "doc/html/man7/openssl-quic-concurrency.html" => [ + "doc/man7/openssl-quic-concurrency.pod" + ], + "doc/html/man7/openssl-quic.html" => [ + "doc/man7/openssl-quic.pod" + ], "doc/html/man7/openssl-threads.html" => [ "doc/man7/openssl-threads.pod" ], "doc/html/man7/openssl_user_macros.html" => [ "doc/man7/openssl_user_macros.pod" ], + "doc/html/man7/ossl-guide-introduction.html" => [ + "doc/man7/ossl-guide-introduction.pod" + ], + "doc/html/man7/ossl-guide-libcrypto-introduction.html" => [ + "doc/man7/ossl-guide-libcrypto-introduction.pod" + ], + "doc/html/man7/ossl-guide-libraries-introduction.html" => [ + "doc/man7/ossl-guide-libraries-introduction.pod" + ], + "doc/html/man7/ossl-guide-libssl-introduction.html" => [ + "doc/man7/ossl-guide-libssl-introduction.pod" + ], + "doc/html/man7/ossl-guide-migration.html" => [ + "doc/man7/ossl-guide-migration.pod" + ], + "doc/html/man7/ossl-guide-quic-client-block.html" => [ + "doc/man7/ossl-guide-quic-client-block.pod" + ], + "doc/html/man7/ossl-guide-quic-client-non-block.html" => [ + "doc/man7/ossl-guide-quic-client-non-block.pod" + ], + "doc/html/man7/ossl-guide-quic-introduction.html" => [ + "doc/man7/ossl-guide-quic-introduction.pod" + ], + "doc/html/man7/ossl-guide-quic-multi-stream.html" => [ + "doc/man7/ossl-guide-quic-multi-stream.pod" + ], + "doc/html/man7/ossl-guide-quic-server-block.html" => [ + "doc/man7/ossl-guide-quic-server-block.pod" + ], + "doc/html/man7/ossl-guide-quic-server-non-block.html" => [ + "doc/man7/ossl-guide-quic-server-non-block.pod" + ], + "doc/html/man7/ossl-guide-tls-client-block.html" => [ + "doc/man7/ossl-guide-tls-client-block.pod" + ], + "doc/html/man7/ossl-guide-tls-client-non-block.html" => [ + "doc/man7/ossl-guide-tls-client-non-block.pod" + ], + "doc/html/man7/ossl-guide-tls-introduction.html" => [ + "doc/man7/ossl-guide-tls-introduction.pod" + ], + "doc/html/man7/ossl-guide-tls-server-block.html" => [ + "doc/man7/ossl-guide-tls-server-block.pod" + ], "doc/html/man7/ossl_store-file.html" => [ "doc/man7/ossl_store-file.pod" ], @@ -13279,6 +15500,9 @@ our %unified_info = ( "doc/html/man7/provider-signature.html" => [ "doc/man7/provider-signature.pod" ], + "doc/html/man7/provider-skeymgmt.html" => [ + "doc/man7/provider-skeymgmt.pod" + ], "doc/html/man7/provider-storemgmt.html" => [ "doc/man7/provider-storemgmt.pod" ], @@ -13288,9 +15512,6 @@ our %unified_info = ( "doc/html/man7/proxy-certificates.html" => [ "doc/man7/proxy-certificates.pod" ], - "doc/html/man7/ssl.html" => [ - "doc/man7/ssl.pod" - ], "doc/html/man7/x509.html" => [ "doc/man7/x509.pod" ], @@ -13438,6 +15659,9 @@ our %unified_info = ( "doc/man/man1/openssl-sess_id.1" => [ "doc/man1/openssl-sess_id.pod" ], + "doc/man/man1/openssl-skeyutl.1" => [ + "doc/man1/openssl-skeyutl.pod" + ], "doc/man/man1/openssl-smime.1" => [ "doc/man1/openssl-smime.pod" ], @@ -13579,6 +15803,9 @@ our %unified_info = ( "doc/man/man3/BIO_get_ex_new_index.3" => [ "doc/man3/BIO_get_ex_new_index.pod" ], + "doc/man/man3/BIO_get_rpoll_descriptor.3" => [ + "doc/man3/BIO_get_rpoll_descriptor.pod" + ], "doc/man/man3/BIO_meth_new.3" => [ "doc/man3/BIO_meth_new.pod" ], @@ -13615,6 +15842,9 @@ our %unified_info = ( "doc/man/man3/BIO_s_datagram.3" => [ "doc/man3/BIO_s_datagram.pod" ], + "doc/man/man3/BIO_s_dgram_pair.3" => [ + "doc/man3/BIO_s_dgram_pair.pod" + ], "doc/man/man3/BIO_s_fd.3" => [ "doc/man3/BIO_s_fd.pod" ], @@ -13630,6 +15860,9 @@ our %unified_info = ( "doc/man/man3/BIO_s_socket.3" => [ "doc/man3/BIO_s_socket.pod" ], + "doc/man/man3/BIO_sendmmsg.3" => [ + "doc/man3/BIO_sendmmsg.pod" + ], "doc/man/man3/BIO_set_callback.3" => [ "doc/man3/BIO_set_callback.pod" ], @@ -13702,6 +15935,9 @@ our %unified_info = ( "doc/man/man3/BUF_MEM_new.3" => [ "doc/man3/BUF_MEM_new.pod" ], + "doc/man/man3/CMAC_CTX.3" => [ + "doc/man3/CMAC_CTX.pod" + ], "doc/man/man3/CMS_EncryptedData_decrypt.3" => [ "doc/man3/CMS_EncryptedData_decrypt.pod" ], @@ -13768,6 +16004,9 @@ our %unified_info = ( "doc/man/man3/CMS_verify_receipt.3" => [ "doc/man3/CMS_verify_receipt.pod" ], + "doc/man/man3/COMP_CTX_new.3" => [ + "doc/man3/COMP_CTX_new.pod" + ], "doc/man/man3/CONF_modules_free.3" => [ "doc/man3/CONF_modules_free.pod" ], @@ -13867,6 +16106,12 @@ our %unified_info = ( "doc/man/man3/DTLS_set_timer_cb.3" => [ "doc/man3/DTLS_set_timer_cb.pod" ], + "doc/man/man3/DTLSv1_get_timeout.3" => [ + "doc/man3/DTLSv1_get_timeout.pod" + ], + "doc/man/man3/DTLSv1_handle_timeout.3" => [ + "doc/man3/DTLSv1_handle_timeout.pod" + ], "doc/man/man3/DTLSv1_listen.3" => [ "doc/man3/DTLSv1_listen.pod" ], @@ -14005,6 +16250,9 @@ our %unified_info = ( "doc/man/man3/EVP_PKEY_CTX_get0_pkey.3" => [ "doc/man3/EVP_PKEY_CTX_get0_pkey.pod" ], + "doc/man/man3/EVP_PKEY_CTX_get_algor.3" => [ + "doc/man3/EVP_PKEY_CTX_get_algor.pod" + ], "doc/man/man3/EVP_PKEY_CTX_new.3" => [ "doc/man3/EVP_PKEY_CTX_new.pod" ], @@ -14122,6 +16370,12 @@ our %unified_info = ( "doc/man/man3/EVP_SIGNATURE.3" => [ "doc/man3/EVP_SIGNATURE.pod" ], + "doc/man/man3/EVP_SKEY.3" => [ + "doc/man3/EVP_SKEY.pod" + ], + "doc/man/man3/EVP_SKEYMGMT.3" => [ + "doc/man3/EVP_SKEYMGMT.pod" + ], "doc/man/man3/EVP_SealInit.3" => [ "doc/man3/EVP_SealInit.pod" ], @@ -14209,6 +16463,9 @@ our %unified_info = ( "doc/man/man3/EVP_whirlpool.3" => [ "doc/man3/EVP_whirlpool.pod" ], + "doc/man/man3/GENERAL_NAME.3" => [ + "doc/man3/GENERAL_NAME.pod" + ], "doc/man/man3/HMAC.3" => [ "doc/man3/HMAC.pod" ], @@ -14281,9 +16538,15 @@ our %unified_info = ( "doc/man/man3/OPENSSL_load_builtin_modules.3" => [ "doc/man3/OPENSSL_load_builtin_modules.pod" ], + "doc/man/man3/OPENSSL_load_u16_le.3" => [ + "doc/man3/OPENSSL_load_u16_le.pod" + ], "doc/man/man3/OPENSSL_malloc.3" => [ "doc/man3/OPENSSL_malloc.pod" ], + "doc/man/man3/OPENSSL_riscvcap.3" => [ + "doc/man3/OPENSSL_riscvcap.pod" + ], "doc/man/man3/OPENSSL_s390xcap.3" => [ "doc/man3/OPENSSL_s390xcap.pod" ], @@ -14299,12 +16562,18 @@ our %unified_info = ( "doc/man/man3/OSSL_CALLBACK.3" => [ "doc/man3/OSSL_CALLBACK.pod" ], + "doc/man/man3/OSSL_CMP_ATAV_set0.3" => [ + "doc/man3/OSSL_CMP_ATAV_set0.pod" + ], "doc/man/man3/OSSL_CMP_CTX_new.3" => [ "doc/man3/OSSL_CMP_CTX_new.pod" ], "doc/man/man3/OSSL_CMP_HDR_get0_transactionID.3" => [ "doc/man3/OSSL_CMP_HDR_get0_transactionID.pod" ], + "doc/man/man3/OSSL_CMP_ITAV_new_caCerts.3" => [ + "doc/man3/OSSL_CMP_ITAV_new_caCerts.pod" + ], "doc/man/man3/OSSL_CMP_ITAV_set0.3" => [ "doc/man3/OSSL_CMP_ITAV_set0.pod" ], @@ -14374,9 +16643,18 @@ our %unified_info = ( "doc/man/man3/OSSL_ENCODER_to_bio.3" => [ "doc/man3/OSSL_ENCODER_to_bio.pod" ], + "doc/man/man3/OSSL_ERR_STATE_save.3" => [ + "doc/man3/OSSL_ERR_STATE_save.pod" + ], "doc/man/man3/OSSL_ESS_check_signing_certs.3" => [ "doc/man3/OSSL_ESS_check_signing_certs.pod" ], + "doc/man/man3/OSSL_GENERAL_NAMES_print.3" => [ + "doc/man3/OSSL_GENERAL_NAMES_print.pod" + ], + "doc/man/man3/OSSL_HPKE_CTX_new.3" => [ + "doc/man3/OSSL_HPKE_CTX_new.pod" + ], "doc/man/man3/OSSL_HTTP_REQ_CTX.3" => [ "doc/man3/OSSL_HTTP_REQ_CTX.pod" ], @@ -14386,12 +16664,24 @@ our %unified_info = ( "doc/man/man3/OSSL_HTTP_transfer.3" => [ "doc/man3/OSSL_HTTP_transfer.pod" ], + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX.3" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX.pod" + ], + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX_print.3" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX_print.pod" + ], + "doc/man/man3/OSSL_INDICATOR_set_callback.3" => [ + "doc/man3/OSSL_INDICATOR_set_callback.pod" + ], "doc/man/man3/OSSL_ITEM.3" => [ "doc/man3/OSSL_ITEM.pod" ], "doc/man/man3/OSSL_LIB_CTX.3" => [ "doc/man3/OSSL_LIB_CTX.pod" ], + "doc/man/man3/OSSL_LIB_CTX_set_conf_diagnostics.3" => [ + "doc/man3/OSSL_LIB_CTX_set_conf_diagnostics.pod" + ], "doc/man/man3/OSSL_PARAM.3" => [ "doc/man3/OSSL_PARAM.pod" ], @@ -14407,9 +16697,15 @@ our %unified_info = ( "doc/man/man3/OSSL_PARAM_int.3" => [ "doc/man3/OSSL_PARAM_int.pod" ], + "doc/man/man3/OSSL_PARAM_print_to_bio.3" => [ + "doc/man3/OSSL_PARAM_print_to_bio.pod" + ], "doc/man/man3/OSSL_PROVIDER.3" => [ "doc/man3/OSSL_PROVIDER.pod" ], + "doc/man/man3/OSSL_QUIC_client_method.3" => [ + "doc/man3/OSSL_QUIC_client_method.pod" + ], "doc/man/man3/OSSL_SELF_TEST_new.3" => [ "doc/man3/OSSL_SELF_TEST_new.pod" ], @@ -14434,6 +16730,9 @@ our %unified_info = ( "doc/man/man3/OSSL_STORE_open.3" => [ "doc/man3/OSSL_STORE_open.pod" ], + "doc/man/man3/OSSL_sleep.3" => [ + "doc/man3/OSSL_sleep.pod" + ], "doc/man/man3/OSSL_trace_enabled.3" => [ "doc/man3/OSSL_trace_enabled.pod" ], @@ -14449,6 +16748,9 @@ our %unified_info = ( "doc/man/man3/OpenSSL_version.3" => [ "doc/man3/OpenSSL_version.pod" ], + "doc/man/man3/PBMAC1_get1_pbkdf2_param.3" => [ + "doc/man3/PBMAC1_get1_pbkdf2_param.pod" + ], "doc/man/man3/PEM_X509_INFO_read_bio_ex.3" => [ "doc/man3/PEM_X509_INFO_read_bio_ex.pod" ], @@ -14485,6 +16787,9 @@ our %unified_info = ( "doc/man/man3/PKCS12_SAFEBAG_get1_cert.3" => [ "doc/man3/PKCS12_SAFEBAG_get1_cert.pod" ], + "doc/man/man3/PKCS12_SAFEBAG_set0_attrs.3" => [ + "doc/man3/PKCS12_SAFEBAG_set0_attrs.pod" + ], "doc/man/man3/PKCS12_add1_attr_by_NID.3" => [ "doc/man3/PKCS12_add1_attr_by_NID.pod" ], @@ -14758,6 +17063,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set0_CA_list.3" => [ "doc/man3/SSL_CTX_set0_CA_list.pod" ], + "doc/man/man3/SSL_CTX_set1_cert_comp_preference.3" => [ + "doc/man3/SSL_CTX_set1_cert_comp_preference.pod" + ], "doc/man/man3/SSL_CTX_set1_curves.3" => [ "doc/man3/SSL_CTX_set1_curves.pod" ], @@ -14797,6 +17105,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_default_passwd_cb.3" => [ "doc/man3/SSL_CTX_set_default_passwd_cb.pod" ], + "doc/man/man3/SSL_CTX_set_domain_flags.3" => [ + "doc/man3/SSL_CTX_set_domain_flags.pod" + ], "doc/man/man3/SSL_CTX_set_generate_session_id.3" => [ "doc/man3/SSL_CTX_set_generate_session_id.pod" ], @@ -14818,6 +17129,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_msg_callback.3" => [ "doc/man3/SSL_CTX_set_msg_callback.pod" ], + "doc/man/man3/SSL_CTX_set_new_pending_conn_cb.3" => [ + "doc/man3/SSL_CTX_set_new_pending_conn_cb.pod" + ], "doc/man/man3/SSL_CTX_set_num_tickets.3" => [ "doc/man3/SSL_CTX_set_num_tickets.pod" ], @@ -14932,6 +17246,9 @@ our %unified_info = ( "doc/man/man3/SSL_accept.3" => [ "doc/man3/SSL_accept.pod" ], + "doc/man/man3/SSL_accept_stream.3" => [ + "doc/man3/SSL_accept_stream.pod" + ], "doc/man/man3/SSL_alert_type_string.3" => [ "doc/man3/SSL_alert_type_string.pod" ], @@ -14959,9 +17276,21 @@ our %unified_info = ( "doc/man/man3/SSL_free.3" => [ "doc/man3/SSL_free.pod" ], + "doc/man/man3/SSL_get0_connection.3" => [ + "doc/man3/SSL_get0_connection.pod" + ], + "doc/man/man3/SSL_get0_group_name.3" => [ + "doc/man3/SSL_get0_group_name.pod" + ], + "doc/man/man3/SSL_get0_peer_rpk.3" => [ + "doc/man3/SSL_get0_peer_rpk.pod" + ], "doc/man/man3/SSL_get0_peer_scts.3" => [ "doc/man3/SSL_get0_peer_scts.pod" ], + "doc/man/man3/SSL_get1_builtin_sigalgs.3" => [ + "doc/man3/SSL_get1_builtin_sigalgs.pod" + ], "doc/man/man3/SSL_get_SSL_CTX.3" => [ "doc/man3/SSL_get_SSL_CTX.pod" ], @@ -14977,6 +17306,9 @@ our %unified_info = ( "doc/man/man3/SSL_get_client_random.3" => [ "doc/man3/SSL_get_client_random.pod" ], + "doc/man/man3/SSL_get_conn_close_info.3" => [ + "doc/man3/SSL_get_conn_close_info.pod" + ], "doc/man/man3/SSL_get_current_cipher.3" => [ "doc/man3/SSL_get_current_cipher.pod" ], @@ -14986,12 +17318,18 @@ our %unified_info = ( "doc/man/man3/SSL_get_error.3" => [ "doc/man3/SSL_get_error.pod" ], + "doc/man/man3/SSL_get_event_timeout.3" => [ + "doc/man3/SSL_get_event_timeout.pod" + ], "doc/man/man3/SSL_get_extms_support.3" => [ "doc/man3/SSL_get_extms_support.pod" ], "doc/man/man3/SSL_get_fd.3" => [ "doc/man3/SSL_get_fd.pod" ], + "doc/man/man3/SSL_get_handshake_rtt.3" => [ + "doc/man3/SSL_get_handshake_rtt.pod" + ], "doc/man/man3/SSL_get_peer_cert_chain.3" => [ "doc/man3/SSL_get_peer_cert_chain.pod" ], @@ -15010,12 +17348,24 @@ our %unified_info = ( "doc/man/man3/SSL_get_rbio.3" => [ "doc/man3/SSL_get_rbio.pod" ], + "doc/man/man3/SSL_get_rpoll_descriptor.3" => [ + "doc/man3/SSL_get_rpoll_descriptor.pod" + ], "doc/man/man3/SSL_get_session.3" => [ "doc/man3/SSL_get_session.pod" ], "doc/man/man3/SSL_get_shared_sigalgs.3" => [ "doc/man3/SSL_get_shared_sigalgs.pod" ], + "doc/man/man3/SSL_get_stream_id.3" => [ + "doc/man3/SSL_get_stream_id.pod" + ], + "doc/man/man3/SSL_get_stream_read_state.3" => [ + "doc/man3/SSL_get_stream_read_state.pod" + ], + "doc/man/man3/SSL_get_value_uint.3" => [ + "doc/man3/SSL_get_value_uint.pod" + ], "doc/man/man3/SSL_get_verify_result.3" => [ "doc/man3/SSL_get_verify_result.pod" ], @@ -15025,9 +17375,15 @@ our %unified_info = ( "doc/man/man3/SSL_group_to_name.3" => [ "doc/man3/SSL_group_to_name.pod" ], + "doc/man/man3/SSL_handle_events.3" => [ + "doc/man3/SSL_handle_events.pod" + ], "doc/man/man3/SSL_in_init.3" => [ "doc/man3/SSL_in_init.pod" ], + "doc/man/man3/SSL_inject_net_dgram.3" => [ + "doc/man3/SSL_inject_net_dgram.pod" + ], "doc/man/man3/SSL_key_update.3" => [ "doc/man3/SSL_key_update.pod" ], @@ -15040,9 +17396,21 @@ our %unified_info = ( "doc/man/man3/SSL_new.3" => [ "doc/man3/SSL_new.pod" ], + "doc/man/man3/SSL_new_domain.3" => [ + "doc/man3/SSL_new_domain.pod" + ], + "doc/man/man3/SSL_new_listener.3" => [ + "doc/man3/SSL_new_listener.pod" + ], + "doc/man/man3/SSL_new_stream.3" => [ + "doc/man3/SSL_new_stream.pod" + ], "doc/man/man3/SSL_pending.3" => [ "doc/man3/SSL_pending.pod" ], + "doc/man/man3/SSL_poll.3" => [ + "doc/man3/SSL_poll.pod" + ], "doc/man/man3/SSL_read.3" => [ "doc/man3/SSL_read.pod" ], @@ -15058,24 +17426,45 @@ our %unified_info = ( "doc/man/man3/SSL_set1_host.3" => [ "doc/man3/SSL_set1_host.pod" ], + "doc/man/man3/SSL_set1_initial_peer_addr.3" => [ + "doc/man3/SSL_set1_initial_peer_addr.pod" + ], + "doc/man/man3/SSL_set1_server_cert_type.3" => [ + "doc/man3/SSL_set1_server_cert_type.pod" + ], "doc/man/man3/SSL_set_async_callback.3" => [ "doc/man3/SSL_set_async_callback.pod" ], "doc/man/man3/SSL_set_bio.3" => [ "doc/man3/SSL_set_bio.pod" ], + "doc/man/man3/SSL_set_blocking_mode.3" => [ + "doc/man3/SSL_set_blocking_mode.pod" + ], "doc/man/man3/SSL_set_connect_state.3" => [ "doc/man3/SSL_set_connect_state.pod" ], + "doc/man/man3/SSL_set_default_stream_mode.3" => [ + "doc/man3/SSL_set_default_stream_mode.pod" + ], "doc/man/man3/SSL_set_fd.3" => [ "doc/man3/SSL_set_fd.pod" ], + "doc/man/man3/SSL_set_incoming_stream_policy.3" => [ + "doc/man3/SSL_set_incoming_stream_policy.pod" + ], + "doc/man/man3/SSL_set_quic_tls_cbs.3" => [ + "doc/man3/SSL_set_quic_tls_cbs.pod" + ], "doc/man/man3/SSL_set_retry_verify.3" => [ "doc/man3/SSL_set_retry_verify.pod" ], "doc/man/man3/SSL_set_session.3" => [ "doc/man3/SSL_set_session.pod" ], + "doc/man/man3/SSL_set_session_secret_cb.3" => [ + "doc/man3/SSL_set_session_secret_cb.pod" + ], "doc/man/man3/SSL_set_shutdown.3" => [ "doc/man3/SSL_set_shutdown.pod" ], @@ -15088,6 +17477,12 @@ our %unified_info = ( "doc/man/man3/SSL_state_string.3" => [ "doc/man3/SSL_state_string.pod" ], + "doc/man/man3/SSL_stream_conclude.3" => [ + "doc/man3/SSL_stream_conclude.pod" + ], + "doc/man/man3/SSL_stream_reset.3" => [ + "doc/man3/SSL_stream_reset.pod" + ], "doc/man/man3/SSL_want.3" => [ "doc/man3/SSL_want.pod" ], @@ -15097,8 +17492,8 @@ our %unified_info = ( "doc/man/man3/TS_RESP_CTX_new.3" => [ "doc/man3/TS_RESP_CTX_new.pod" ], - "doc/man/man3/TS_VERIFY_CTX_set_certs.3" => [ - "doc/man3/TS_VERIFY_CTX_set_certs.pod" + "doc/man/man3/TS_VERIFY_CTX.3" => [ + "doc/man3/TS_VERIFY_CTX.pod" ], "doc/man/man3/UI_STRING.3" => [ "doc/man3/UI_STRING.pod" @@ -15118,6 +17513,21 @@ our %unified_info = ( "doc/man/man3/X509V3_set_ctx.3" => [ "doc/man3/X509V3_set_ctx.pod" ], + "doc/man/man3/X509_ACERT_add1_attr.3" => [ + "doc/man3/X509_ACERT_add1_attr.pod" + ], + "doc/man/man3/X509_ACERT_add_attr_nconf.3" => [ + "doc/man3/X509_ACERT_add_attr_nconf.pod" + ], + "doc/man/man3/X509_ACERT_get0_holder_baseCertId.3" => [ + "doc/man3/X509_ACERT_get0_holder_baseCertId.pod" + ], + "doc/man/man3/X509_ACERT_get_attr.3" => [ + "doc/man3/X509_ACERT_get_attr.pod" + ], + "doc/man/man3/X509_ACERT_print_ex.3" => [ + "doc/man3/X509_ACERT_print_ex.pod" + ], "doc/man/man3/X509_ALGOR_dup.3" => [ "doc/man3/X509_ALGOR_dup.pod" ], @@ -15166,6 +17576,9 @@ our %unified_info = ( "doc/man/man3/X509_SIG_get0.3" => [ "doc/man3/X509_SIG_get0.pod" ], + "doc/man/man3/X509_STORE_CTX_get_by_subject.3" => [ + "doc/man3/X509_STORE_CTX_get_by_subject.pod" + ], "doc/man/man3/X509_STORE_CTX_get_error.3" => [ "doc/man3/X509_STORE_CTX_get_error.pod" ], @@ -15232,6 +17645,9 @@ our %unified_info = ( "doc/man/man3/X509_get0_uids.3" => [ "doc/man3/X509_get0_uids.pod" ], + "doc/man/man3/X509_get_default_cert_file.3" => [ + "doc/man3/X509_get_default_cert_file.pod" + ], "doc/man/man3/X509_get_extension_flags.3" => [ "doc/man3/X509_get_extension_flags.pod" ], @@ -15355,9 +17771,15 @@ our %unified_info = ( "doc/man/man7/EVP_CIPHER-SM4.7" => [ "doc/man7/EVP_CIPHER-SM4.pod" ], + "doc/man/man7/EVP_KDF-ARGON2.7" => [ + "doc/man7/EVP_KDF-ARGON2.pod" + ], "doc/man/man7/EVP_KDF-HKDF.7" => [ "doc/man7/EVP_KDF-HKDF.pod" ], + "doc/man/man7/EVP_KDF-HMAC-DRBG.7" => [ + "doc/man7/EVP_KDF-HMAC-DRBG.pod" + ], "doc/man/man7/EVP_KDF-KB.7" => [ "doc/man7/EVP_KDF-KB.pod" ], @@ -15373,6 +17795,9 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-PKCS12KDF.7" => [ "doc/man7/EVP_KDF-PKCS12KDF.pod" ], + "doc/man/man7/EVP_KDF-PVKKDF.7" => [ + "doc/man7/EVP_KDF-PVKKDF.pod" + ], "doc/man/man7/EVP_KDF-SCRYPT.7" => [ "doc/man7/EVP_KDF-SCRYPT.pod" ], @@ -15397,9 +17822,18 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-X963.7" => [ "doc/man7/EVP_KDF-X963.pod" ], + "doc/man/man7/EVP_KEM-EC.7" => [ + "doc/man7/EVP_KEM-EC.pod" + ], + "doc/man/man7/EVP_KEM-ML-KEM.7" => [ + "doc/man7/EVP_KEM-ML-KEM.pod" + ], "doc/man/man7/EVP_KEM-RSA.7" => [ "doc/man7/EVP_KEM-RSA.pod" ], + "doc/man/man7/EVP_KEM-X25519.7" => [ + "doc/man7/EVP_KEM-X25519.pod" + ], "doc/man/man7/EVP_KEYEXCH-DH.7" => [ "doc/man7/EVP_KEYEXCH-DH.pod" ], @@ -15433,6 +17867,9 @@ our %unified_info = ( "doc/man/man7/EVP_MD-BLAKE2.7" => [ "doc/man7/EVP_MD-BLAKE2.pod" ], + "doc/man/man7/EVP_MD-KECCAK.7" => [ + "doc/man7/EVP_MD-KECCAK.pod" + ], "doc/man/man7/EVP_MD-MD2.7" => [ "doc/man7/EVP_MD-MD2.pod" ], @@ -15490,15 +17927,27 @@ our %unified_info = ( "doc/man/man7/EVP_PKEY-HMAC.7" => [ "doc/man7/EVP_PKEY-HMAC.pod" ], + "doc/man/man7/EVP_PKEY-ML-DSA.7" => [ + "doc/man7/EVP_PKEY-ML-DSA.pod" + ], + "doc/man/man7/EVP_PKEY-ML-KEM.7" => [ + "doc/man7/EVP_PKEY-ML-KEM.pod" + ], "doc/man/man7/EVP_PKEY-RSA.7" => [ "doc/man7/EVP_PKEY-RSA.pod" ], + "doc/man/man7/EVP_PKEY-SLH-DSA.7" => [ + "doc/man7/EVP_PKEY-SLH-DSA.pod" + ], "doc/man/man7/EVP_PKEY-SM2.7" => [ "doc/man7/EVP_PKEY-SM2.pod" ], "doc/man/man7/EVP_PKEY-X25519.7" => [ "doc/man7/EVP_PKEY-X25519.pod" ], + "doc/man/man7/EVP_RAND-CRNG-TEST.7" => [ + "doc/man7/EVP_RAND-CRNG-TEST.pod" + ], "doc/man/man7/EVP_RAND-CTR-DRBG.7" => [ "doc/man7/EVP_RAND-CTR-DRBG.pod" ], @@ -15508,6 +17957,9 @@ our %unified_info = ( "doc/man/man7/EVP_RAND-HMAC-DRBG.7" => [ "doc/man7/EVP_RAND-HMAC-DRBG.pod" ], + "doc/man/man7/EVP_RAND-JITTER.7" => [ + "doc/man7/EVP_RAND-JITTER.pod" + ], "doc/man/man7/EVP_RAND-SEED-SRC.7" => [ "doc/man7/EVP_RAND-SEED-SRC.pod" ], @@ -15529,9 +17981,15 @@ our %unified_info = ( "doc/man/man7/EVP_SIGNATURE-HMAC.7" => [ "doc/man7/EVP_SIGNATURE-HMAC.pod" ], + "doc/man/man7/EVP_SIGNATURE-ML-DSA.7" => [ + "doc/man7/EVP_SIGNATURE-ML-DSA.pod" + ], "doc/man/man7/EVP_SIGNATURE-RSA.7" => [ "doc/man7/EVP_SIGNATURE-RSA.pod" ], + "doc/man/man7/EVP_SIGNATURE-SLH-DSA.7" => [ + "doc/man7/EVP_SIGNATURE-SLH-DSA.pod" + ], "doc/man/man7/OSSL_PROVIDER-FIPS.7" => [ "doc/man7/OSSL_PROVIDER-FIPS.pod" ], @@ -15547,6 +18005,9 @@ our %unified_info = ( "doc/man/man7/OSSL_PROVIDER-null.7" => [ "doc/man7/OSSL_PROVIDER-null.pod" ], + "doc/man/man7/OSSL_STORE-winstore.7" => [ + "doc/man7/OSSL_STORE-winstore.pod" + ], "doc/man/man7/RAND.7" => [ "doc/man7/RAND.pod" ], @@ -15559,9 +18020,6 @@ our %unified_info = ( "doc/man/man7/bio.7" => [ "doc/man7/bio.pod" ], - "doc/man/man7/crypto.7" => [ - "doc/man7/crypto.pod" - ], "doc/man/man7/ct.7" => [ "doc/man7/ct.pod" ], @@ -15592,9 +18050,6 @@ our %unified_info = ( "doc/man/man7/life_cycle-rand.7" => [ "doc/man7/life_cycle-rand.pod" ], - "doc/man/man7/migration_guide.7" => [ - "doc/man7/migration_guide.pod" - ], "doc/man/man7/openssl-core.h.7" => [ "doc/man7/openssl-core.h.pod" ], @@ -15610,12 +18065,66 @@ our %unified_info = ( "doc/man/man7/openssl-glossary.7" => [ "doc/man7/openssl-glossary.pod" ], + "doc/man/man7/openssl-qlog.7" => [ + "doc/man7/openssl-qlog.pod" + ], + "doc/man/man7/openssl-quic-concurrency.7" => [ + "doc/man7/openssl-quic-concurrency.pod" + ], + "doc/man/man7/openssl-quic.7" => [ + "doc/man7/openssl-quic.pod" + ], "doc/man/man7/openssl-threads.7" => [ "doc/man7/openssl-threads.pod" ], "doc/man/man7/openssl_user_macros.7" => [ "doc/man7/openssl_user_macros.pod" ], + "doc/man/man7/ossl-guide-introduction.7" => [ + "doc/man7/ossl-guide-introduction.pod" + ], + "doc/man/man7/ossl-guide-libcrypto-introduction.7" => [ + "doc/man7/ossl-guide-libcrypto-introduction.pod" + ], + "doc/man/man7/ossl-guide-libraries-introduction.7" => [ + "doc/man7/ossl-guide-libraries-introduction.pod" + ], + "doc/man/man7/ossl-guide-libssl-introduction.7" => [ + "doc/man7/ossl-guide-libssl-introduction.pod" + ], + "doc/man/man7/ossl-guide-migration.7" => [ + "doc/man7/ossl-guide-migration.pod" + ], + "doc/man/man7/ossl-guide-quic-client-block.7" => [ + "doc/man7/ossl-guide-quic-client-block.pod" + ], + "doc/man/man7/ossl-guide-quic-client-non-block.7" => [ + "doc/man7/ossl-guide-quic-client-non-block.pod" + ], + "doc/man/man7/ossl-guide-quic-introduction.7" => [ + "doc/man7/ossl-guide-quic-introduction.pod" + ], + "doc/man/man7/ossl-guide-quic-multi-stream.7" => [ + "doc/man7/ossl-guide-quic-multi-stream.pod" + ], + "doc/man/man7/ossl-guide-quic-server-block.7" => [ + "doc/man7/ossl-guide-quic-server-block.pod" + ], + "doc/man/man7/ossl-guide-quic-server-non-block.7" => [ + "doc/man7/ossl-guide-quic-server-non-block.pod" + ], + "doc/man/man7/ossl-guide-tls-client-block.7" => [ + "doc/man7/ossl-guide-tls-client-block.pod" + ], + "doc/man/man7/ossl-guide-tls-client-non-block.7" => [ + "doc/man7/ossl-guide-tls-client-non-block.pod" + ], + "doc/man/man7/ossl-guide-tls-introduction.7" => [ + "doc/man7/ossl-guide-tls-introduction.pod" + ], + "doc/man/man7/ossl-guide-tls-server-block.7" => [ + "doc/man7/ossl-guide-tls-server-block.pod" + ], "doc/man/man7/ossl_store-file.7" => [ "doc/man7/ossl_store-file.pod" ], @@ -15670,6 +18179,9 @@ our %unified_info = ( "doc/man/man7/provider-signature.7" => [ "doc/man7/provider-signature.pod" ], + "doc/man/man7/provider-skeymgmt.7" => [ + "doc/man7/provider-skeymgmt.pod" + ], "doc/man/man7/provider-storemgmt.7" => [ "doc/man7/provider-storemgmt.pod" ], @@ -15679,9 +18191,6 @@ our %unified_info = ( "doc/man/man7/proxy-certificates.7" => [ "doc/man7/proxy-certificates.pod" ], - "doc/man/man7/ssl.7" => [ - "doc/man7/ssl.pod" - ], "doc/man/man7/x509.7" => [ "doc/man7/x509.pod" ], @@ -15817,6 +18326,9 @@ our %unified_info = ( "doc/man1/openssl-sess_id.pod" => [ "doc/man1/openssl-sess_id.pod.in" ], + "doc/man1/openssl-skeyutl.pod" => [ + "doc/man1/openssl-skeyutl.pod.in" + ], "doc/man1/openssl-smime.pod" => [ "doc/man1/openssl-smime.pod.in" ], @@ -15853,12 +18365,30 @@ our %unified_info = ( "engines/e_padlock-x86_64.s" => [ "engines/asm/e_padlock-x86_64.pl" ], + "exporters/OpenSSLConfig.cmake" => [ + "exporters/cmake/OpenSSLConfig.cmake.in" + ], + "exporters/OpenSSLConfigVersion.cmake" => [ + "exporters/cmake/OpenSSLConfigVersion.cmake.in" + ], + "exporters/libcrypto.pc" => [ + "exporters/pkg-config/libcrypto.pc.in" + ], + "exporters/libssl.pc" => [ + "exporters/pkg-config/libssl.pc.in" + ], + "exporters/openssl.pc" => [ + "exporters/pkg-config/openssl.pc.in" + ], "include/crypto/bn_conf.h" => [ "include/crypto/bn_conf.h.in" ], "include/crypto/dso_conf.h" => [ "include/crypto/dso_conf.h.in" ], + "include/internal/param_names.h" => [ + "include/internal/param_names.h.in" + ], "include/openssl/asn1.h" => [ "include/openssl/asn1.h.in" ], @@ -15874,12 +18404,18 @@ our %unified_info = ( "include/openssl/cms.h" => [ "include/openssl/cms.h.in" ], + "include/openssl/comp.h" => [ + "include/openssl/comp.h.in" + ], "include/openssl/conf.h" => [ "include/openssl/conf.h.in" ], "include/openssl/configuration.h" => [ "include/openssl/configuration.h.in" ], + "include/openssl/core_names.h" => [ + "include/openssl/core_names.h.in" + ], "include/openssl/crmf.h" => [ "include/openssl/crmf.h.in" ], @@ -15928,12 +18464,39 @@ our %unified_info = ( "include/openssl/x509.h" => [ "include/openssl/x509.h.in" ], + "include/openssl/x509_acert.h" => [ + "include/openssl/x509_acert.h.in" + ], "include/openssl/x509_vfy.h" => [ "include/openssl/x509_vfy.h.in" ], "include/openssl/x509v3.h" => [ "include/openssl/x509v3.h.in" ], + "installdata.pm" => [ + "util/mkinstallvars.pl", + "\"PREFIX=\$(INSTALLTOP)\"", + "BINDIR=bin", + "\"LIBDIR=\$(LIBDIR)\"", + "\"libdir=\$(libdir)\"", + "INCLUDEDIR=include", + "APPLINKDIR=include/openssl", + "\"ENGINESDIR=\$(ENGINESDIR)\"", + "\"MODULESDIR=\$(MODULESDIR)\"", + "\"PKGCONFIGDIR=\$(PKGCONFIGDIR)\"", + "\"CMAKECONFIGDIR=\$(CMAKECONFIGDIR)\"", + "\"LDLIBS=\$(LIB_EX_LIBS)\"", + "\"VERSION=\$(VERSION)\"" + ], + "libcrypto.pc" => [ + "exporters/pkg-config/libcrypto.pc.in" + ], + "libssl.pc" => [ + "exporters/pkg-config/libssl.pc.in" + ], + "openssl.pc" => [ + "exporters/pkg-config/openssl.pc.in" + ], "providers/common/der/der_digests_gen.c" => [ "providers/common/der/der_digests_gen.c.in" ], @@ -15946,9 +18509,15 @@ our %unified_info = ( "providers/common/der/der_ecx_gen.c" => [ "providers/common/der/der_ecx_gen.c.in" ], + "providers/common/der/der_ml_dsa_gen.c" => [ + "providers/common/der/der_ml_dsa_gen.c.in" + ], "providers/common/der/der_rsa_gen.c" => [ "providers/common/der/der_rsa_gen.c.in" ], + "providers/common/der/der_slh_dsa_gen.c" => [ + "providers/common/der/der_slh_dsa_gen.c.in" + ], "providers/common/der/der_sm2_gen.c" => [ "providers/common/der/der_sm2_gen.c.in" ], @@ -15967,9 +18536,15 @@ our %unified_info = ( "providers/common/include/prov/der_ecx.h" => [ "providers/common/include/prov/der_ecx.h.in" ], + "providers/common/include/prov/der_ml_dsa.h" => [ + "providers/common/include/prov/der_ml_dsa.h.in" + ], "providers/common/include/prov/der_rsa.h" => [ "providers/common/include/prov/der_rsa.h.in" ], + "providers/common/include/prov/der_slh_dsa.h" => [ + "providers/common/include/prov/der_slh_dsa.h.in" + ], "providers/common/include/prov/der_sm2.h" => [ "providers/common/include/prov/der_sm2.h.in" ], @@ -16005,6 +18580,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "buffer" ], + "test/buildtest_byteorder.c" => [ + "test/generate_buildtest.pl", + "byteorder" + ], "test/buildtest_camellia.c" => [ "test/generate_buildtest.pl", "camellia" @@ -16037,10 +18616,6 @@ our %unified_info = ( "test/generate_buildtest.pl", "core_dispatch" ], - "test/buildtest_core_names.c" => [ - "test/generate_buildtest.pl", - "core_names" - ], "test/buildtest_core_object.c" => [ "test/generate_buildtest.pl", "core_object" @@ -16073,6 +18648,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "e_os2" ], + "test/buildtest_e_ostime.c" => [ + "test/generate_buildtest.pl", + "e_ostime" + ], "test/buildtest_ebcdic.c" => [ "test/generate_buildtest.pl", "ebcdic" @@ -16109,6 +18688,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "hmac" ], + "test/buildtest_hpke.c" => [ + "test/generate_buildtest.pl", + "hpke" + ], "test/buildtest_http.c" => [ "test/generate_buildtest.pl", "http" @@ -16117,6 +18700,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "idea" ], + "test/buildtest_indicator.c" => [ + "test/generate_buildtest.pl", + "indicator" + ], "test/buildtest_kdf.c" => [ "test/generate_buildtest.pl", "kdf" @@ -16137,6 +18724,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "mdc2" ], + "test/buildtest_ml_kem.c" => [ + "test/generate_buildtest.pl", + "ml_kem" + ], "test/buildtest_modes.c" => [ "test/generate_buildtest.pl", "modes" @@ -16177,6 +18768,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "provider" ], + "test/buildtest_quic.c" => [ + "test/generate_buildtest.pl", + "quic" + ], "test/buildtest_rand.c" => [ "test/generate_buildtest.pl", "rand" @@ -16233,6 +18828,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "symhacks" ], + "test/buildtest_thread.c" => [ + "test/generate_buildtest.pl", + "thread" + ], "test/buildtest_tls1.c" => [ "test/generate_buildtest.pl", "tls1" @@ -16307,6 +18906,7 @@ our %unified_info = ( "doc/html/man1/openssl-s_server.html", "doc/html/man1/openssl-s_time.html", "doc/html/man1/openssl-sess_id.html", + "doc/html/man1/openssl-skeyutl.html", "doc/html/man1/openssl-smime.html", "doc/html/man1/openssl-speed.html", "doc/html/man1/openssl-spkac.html", @@ -16356,6 +18956,7 @@ our %unified_info = ( "doc/html/man3/BIO_find_type.html", "doc/html/man3/BIO_get_data.html", "doc/html/man3/BIO_get_ex_new_index.html", + "doc/html/man3/BIO_get_rpoll_descriptor.html", "doc/html/man3/BIO_meth_new.html", "doc/html/man3/BIO_new.html", "doc/html/man3/BIO_new_CMS.html", @@ -16368,11 +18969,13 @@ our %unified_info = ( "doc/html/man3/BIO_s_connect.html", "doc/html/man3/BIO_s_core.html", "doc/html/man3/BIO_s_datagram.html", + "doc/html/man3/BIO_s_dgram_pair.html", "doc/html/man3/BIO_s_fd.html", "doc/html/man3/BIO_s_file.html", "doc/html/man3/BIO_s_mem.html", "doc/html/man3/BIO_s_null.html", "doc/html/man3/BIO_s_socket.html", + "doc/html/man3/BIO_sendmmsg.html", "doc/html/man3/BIO_set_callback.html", "doc/html/man3/BIO_should_retry.html", "doc/html/man3/BIO_socket_wait.html", @@ -16397,6 +19000,7 @@ our %unified_info = ( "doc/html/man3/BN_swap.html", "doc/html/man3/BN_zero.html", "doc/html/man3/BUF_MEM_new.html", + "doc/html/man3/CMAC_CTX.html", "doc/html/man3/CMS_EncryptedData_decrypt.html", "doc/html/man3/CMS_EncryptedData_encrypt.html", "doc/html/man3/CMS_EnvelopedData_create.html", @@ -16419,6 +19023,7 @@ our %unified_info = ( "doc/html/man3/CMS_uncompress.html", "doc/html/man3/CMS_verify.html", "doc/html/man3/CMS_verify_receipt.html", + "doc/html/man3/COMP_CTX_new.html", "doc/html/man3/CONF_modules_free.html", "doc/html/man3/CONF_modules_load_file.html", "doc/html/man3/CRYPTO_THREAD_run_once.html", @@ -16452,6 +19057,8 @@ our %unified_info = ( "doc/html/man3/DSA_size.html", "doc/html/man3/DTLS_get_data_mtu.html", "doc/html/man3/DTLS_set_timer_cb.html", + "doc/html/man3/DTLSv1_get_timeout.html", + "doc/html/man3/DTLSv1_handle_timeout.html", "doc/html/man3/DTLSv1_listen.html", "doc/html/man3/ECDSA_SIG_new.html", "doc/html/man3/ECDSA_sign.html", @@ -16498,6 +19105,7 @@ our %unified_info = ( "doc/html/man3/EVP_PKEY_CTX_ctrl.html", "doc/html/man3/EVP_PKEY_CTX_get0_libctx.html", "doc/html/man3/EVP_PKEY_CTX_get0_pkey.html", + "doc/html/man3/EVP_PKEY_CTX_get_algor.html", "doc/html/man3/EVP_PKEY_CTX_new.html", "doc/html/man3/EVP_PKEY_CTX_set1_pbe_pass.html", "doc/html/man3/EVP_PKEY_CTX_set_hkdf_md.html", @@ -16537,6 +19145,8 @@ our %unified_info = ( "doc/html/man3/EVP_PKEY_verify_recover.html", "doc/html/man3/EVP_RAND.html", "doc/html/man3/EVP_SIGNATURE.html", + "doc/html/man3/EVP_SKEY.html", + "doc/html/man3/EVP_SKEYMGMT.html", "doc/html/man3/EVP_SealInit.html", "doc/html/man3/EVP_SignInit.html", "doc/html/man3/EVP_VerifyInit.html", @@ -16566,6 +19176,7 @@ our %unified_info = ( "doc/html/man3/EVP_sm3.html", "doc/html/man3/EVP_sm4_cbc.html", "doc/html/man3/EVP_whirlpool.html", + "doc/html/man3/GENERAL_NAME.html", "doc/html/man3/HMAC.html", "doc/html/man3/MD5.html", "doc/html/man3/MDC2_Init.html", @@ -16590,14 +19201,18 @@ our %unified_info = ( "doc/html/man3/OPENSSL_init_ssl.html", "doc/html/man3/OPENSSL_instrument_bus.html", "doc/html/man3/OPENSSL_load_builtin_modules.html", + "doc/html/man3/OPENSSL_load_u16_le.html", "doc/html/man3/OPENSSL_malloc.html", + "doc/html/man3/OPENSSL_riscvcap.html", "doc/html/man3/OPENSSL_s390xcap.html", "doc/html/man3/OPENSSL_secure_malloc.html", "doc/html/man3/OPENSSL_strcasecmp.html", "doc/html/man3/OSSL_ALGORITHM.html", "doc/html/man3/OSSL_CALLBACK.html", + "doc/html/man3/OSSL_CMP_ATAV_set0.html", "doc/html/man3/OSSL_CMP_CTX_new.html", "doc/html/man3/OSSL_CMP_HDR_get0_transactionID.html", + "doc/html/man3/OSSL_CMP_ITAV_new_caCerts.html", "doc/html/man3/OSSL_CMP_ITAV_set0.html", "doc/html/man3/OSSL_CMP_MSG_get0_header.html", "doc/html/man3/OSSL_CMP_MSG_http_perform.html", @@ -16621,18 +19236,27 @@ our %unified_info = ( "doc/html/man3/OSSL_ENCODER_CTX.html", "doc/html/man3/OSSL_ENCODER_CTX_new_for_pkey.html", "doc/html/man3/OSSL_ENCODER_to_bio.html", + "doc/html/man3/OSSL_ERR_STATE_save.html", "doc/html/man3/OSSL_ESS_check_signing_certs.html", + "doc/html/man3/OSSL_GENERAL_NAMES_print.html", + "doc/html/man3/OSSL_HPKE_CTX_new.html", "doc/html/man3/OSSL_HTTP_REQ_CTX.html", "doc/html/man3/OSSL_HTTP_parse_url.html", "doc/html/man3/OSSL_HTTP_transfer.html", + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX.html", + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX_print.html", + "doc/html/man3/OSSL_INDICATOR_set_callback.html", "doc/html/man3/OSSL_ITEM.html", "doc/html/man3/OSSL_LIB_CTX.html", + "doc/html/man3/OSSL_LIB_CTX_set_conf_diagnostics.html", "doc/html/man3/OSSL_PARAM.html", "doc/html/man3/OSSL_PARAM_BLD.html", "doc/html/man3/OSSL_PARAM_allocate_from_text.html", "doc/html/man3/OSSL_PARAM_dup.html", "doc/html/man3/OSSL_PARAM_int.html", + "doc/html/man3/OSSL_PARAM_print_to_bio.html", "doc/html/man3/OSSL_PROVIDER.html", + "doc/html/man3/OSSL_QUIC_client_method.html", "doc/html/man3/OSSL_SELF_TEST_new.html", "doc/html/man3/OSSL_SELF_TEST_set_callback.html", "doc/html/man3/OSSL_STORE_INFO.html", @@ -16641,11 +19265,13 @@ our %unified_info = ( "doc/html/man3/OSSL_STORE_attach.html", "doc/html/man3/OSSL_STORE_expect.html", "doc/html/man3/OSSL_STORE_open.html", + "doc/html/man3/OSSL_sleep.html", "doc/html/man3/OSSL_trace_enabled.html", "doc/html/man3/OSSL_trace_get_category_num.html", "doc/html/man3/OSSL_trace_set_channel.html", "doc/html/man3/OpenSSL_add_all_algorithms.html", "doc/html/man3/OpenSSL_version.html", + "doc/html/man3/PBMAC1_get1_pbkdf2_param.html", "doc/html/man3/PEM_X509_INFO_read_bio_ex.html", "doc/html/man3/PEM_bytes_read_bio.html", "doc/html/man3/PEM_read.html", @@ -16658,6 +19284,7 @@ our %unified_info = ( "doc/html/man3/PKCS12_SAFEBAG_create_cert.html", "doc/html/man3/PKCS12_SAFEBAG_get0_attrs.html", "doc/html/man3/PKCS12_SAFEBAG_get1_cert.html", + "doc/html/man3/PKCS12_SAFEBAG_set0_attrs.html", "doc/html/man3/PKCS12_add1_attr_by_NID.html", "doc/html/man3/PKCS12_add_CSPName_asc.html", "doc/html/man3/PKCS12_add_cert.html", @@ -16749,6 +19376,7 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_sess_set_get_cb.html", "doc/html/man3/SSL_CTX_sessions.html", "doc/html/man3/SSL_CTX_set0_CA_list.html", + "doc/html/man3/SSL_CTX_set1_cert_comp_preference.html", "doc/html/man3/SSL_CTX_set1_curves.html", "doc/html/man3/SSL_CTX_set1_sigalgs.html", "doc/html/man3/SSL_CTX_set1_verify_cert_store.html", @@ -16762,6 +19390,7 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_ct_validation_callback.html", "doc/html/man3/SSL_CTX_set_ctlog_list_file.html", "doc/html/man3/SSL_CTX_set_default_passwd_cb.html", + "doc/html/man3/SSL_CTX_set_domain_flags.html", "doc/html/man3/SSL_CTX_set_generate_session_id.html", "doc/html/man3/SSL_CTX_set_info_callback.html", "doc/html/man3/SSL_CTX_set_keylog_callback.html", @@ -16769,6 +19398,7 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_min_proto_version.html", "doc/html/man3/SSL_CTX_set_mode.html", "doc/html/man3/SSL_CTX_set_msg_callback.html", + "doc/html/man3/SSL_CTX_set_new_pending_conn_cb.html", "doc/html/man3/SSL_CTX_set_num_tickets.html", "doc/html/man3/SSL_CTX_set_options.html", "doc/html/man3/SSL_CTX_set_psk_client_callback.html", @@ -16807,6 +19437,7 @@ our %unified_info = ( "doc/html/man3/SSL_SESSION_print.html", "doc/html/man3/SSL_SESSION_set1_id.html", "doc/html/man3/SSL_accept.html", + "doc/html/man3/SSL_accept_stream.html", "doc/html/man3/SSL_alert_type_string.html", "doc/html/man3/SSL_alloc_buffers.html", "doc/html/man3/SSL_check_chain.html", @@ -16816,59 +19447,90 @@ our %unified_info = ( "doc/html/man3/SSL_export_keying_material.html", "doc/html/man3/SSL_extension_supported.html", "doc/html/man3/SSL_free.html", + "doc/html/man3/SSL_get0_connection.html", + "doc/html/man3/SSL_get0_group_name.html", + "doc/html/man3/SSL_get0_peer_rpk.html", "doc/html/man3/SSL_get0_peer_scts.html", + "doc/html/man3/SSL_get1_builtin_sigalgs.html", "doc/html/man3/SSL_get_SSL_CTX.html", "doc/html/man3/SSL_get_all_async_fds.html", "doc/html/man3/SSL_get_certificate.html", "doc/html/man3/SSL_get_ciphers.html", "doc/html/man3/SSL_get_client_random.html", + "doc/html/man3/SSL_get_conn_close_info.html", "doc/html/man3/SSL_get_current_cipher.html", "doc/html/man3/SSL_get_default_timeout.html", "doc/html/man3/SSL_get_error.html", + "doc/html/man3/SSL_get_event_timeout.html", "doc/html/man3/SSL_get_extms_support.html", "doc/html/man3/SSL_get_fd.html", + "doc/html/man3/SSL_get_handshake_rtt.html", "doc/html/man3/SSL_get_peer_cert_chain.html", "doc/html/man3/SSL_get_peer_certificate.html", "doc/html/man3/SSL_get_peer_signature_nid.html", "doc/html/man3/SSL_get_peer_tmp_key.html", "doc/html/man3/SSL_get_psk_identity.html", "doc/html/man3/SSL_get_rbio.html", + "doc/html/man3/SSL_get_rpoll_descriptor.html", "doc/html/man3/SSL_get_session.html", "doc/html/man3/SSL_get_shared_sigalgs.html", + "doc/html/man3/SSL_get_stream_id.html", + "doc/html/man3/SSL_get_stream_read_state.html", + "doc/html/man3/SSL_get_value_uint.html", "doc/html/man3/SSL_get_verify_result.html", "doc/html/man3/SSL_get_version.html", "doc/html/man3/SSL_group_to_name.html", + "doc/html/man3/SSL_handle_events.html", "doc/html/man3/SSL_in_init.html", + "doc/html/man3/SSL_inject_net_dgram.html", "doc/html/man3/SSL_key_update.html", "doc/html/man3/SSL_library_init.html", "doc/html/man3/SSL_load_client_CA_file.html", "doc/html/man3/SSL_new.html", + "doc/html/man3/SSL_new_domain.html", + "doc/html/man3/SSL_new_listener.html", + "doc/html/man3/SSL_new_stream.html", "doc/html/man3/SSL_pending.html", + "doc/html/man3/SSL_poll.html", "doc/html/man3/SSL_read.html", "doc/html/man3/SSL_read_early_data.html", "doc/html/man3/SSL_rstate_string.html", "doc/html/man3/SSL_session_reused.html", "doc/html/man3/SSL_set1_host.html", + "doc/html/man3/SSL_set1_initial_peer_addr.html", + "doc/html/man3/SSL_set1_server_cert_type.html", "doc/html/man3/SSL_set_async_callback.html", "doc/html/man3/SSL_set_bio.html", + "doc/html/man3/SSL_set_blocking_mode.html", "doc/html/man3/SSL_set_connect_state.html", + "doc/html/man3/SSL_set_default_stream_mode.html", "doc/html/man3/SSL_set_fd.html", + "doc/html/man3/SSL_set_incoming_stream_policy.html", + "doc/html/man3/SSL_set_quic_tls_cbs.html", "doc/html/man3/SSL_set_retry_verify.html", "doc/html/man3/SSL_set_session.html", + "doc/html/man3/SSL_set_session_secret_cb.html", "doc/html/man3/SSL_set_shutdown.html", "doc/html/man3/SSL_set_verify_result.html", "doc/html/man3/SSL_shutdown.html", "doc/html/man3/SSL_state_string.html", + "doc/html/man3/SSL_stream_conclude.html", + "doc/html/man3/SSL_stream_reset.html", "doc/html/man3/SSL_want.html", "doc/html/man3/SSL_write.html", "doc/html/man3/TS_RESP_CTX_new.html", - "doc/html/man3/TS_VERIFY_CTX_set_certs.html", + "doc/html/man3/TS_VERIFY_CTX.html", "doc/html/man3/UI_STRING.html", "doc/html/man3/UI_UTIL_read_pw.html", "doc/html/man3/UI_create_method.html", "doc/html/man3/UI_new.html", "doc/html/man3/X509V3_get_d2i.html", "doc/html/man3/X509V3_set_ctx.html", + "doc/html/man3/X509_ACERT_add1_attr.html", + "doc/html/man3/X509_ACERT_add_attr_nconf.html", + "doc/html/man3/X509_ACERT_get0_holder_baseCertId.html", + "doc/html/man3/X509_ACERT_get_attr.html", + "doc/html/man3/X509_ACERT_print_ex.html", "doc/html/man3/X509_ALGOR_dup.html", "doc/html/man3/X509_ATTRIBUTE.html", "doc/html/man3/X509_CRL_get0_by_serial.html", @@ -16885,6 +19547,7 @@ our %unified_info = ( "doc/html/man3/X509_REQ_get_attr.html", "doc/html/man3/X509_REQ_get_extensions.html", "doc/html/man3/X509_SIG_get0.html", + "doc/html/man3/X509_STORE_CTX_get_by_subject.html", "doc/html/man3/X509_STORE_CTX_get_error.html", "doc/html/man3/X509_STORE_CTX_new.html", "doc/html/man3/X509_STORE_CTX_set_verify_cb.html", @@ -16907,6 +19570,7 @@ our %unified_info = ( "doc/html/man3/X509_get0_notBefore.html", "doc/html/man3/X509_get0_signature.html", "doc/html/man3/X509_get0_uids.html", + "doc/html/man3/X509_get_default_cert_file.html", "doc/html/man3/X509_get_extension_flags.html", "doc/html/man3/X509_get_pubkey.html", "doc/html/man3/X509_get_serialNumber.html", @@ -16952,12 +19616,15 @@ our %unified_info = ( "doc/html/man7/EVP_CIPHER-RC5.html", "doc/html/man7/EVP_CIPHER-SEED.html", "doc/html/man7/EVP_CIPHER-SM4.html", + "doc/html/man7/EVP_KDF-ARGON2.html", "doc/html/man7/EVP_KDF-HKDF.html", + "doc/html/man7/EVP_KDF-HMAC-DRBG.html", "doc/html/man7/EVP_KDF-KB.html", "doc/html/man7/EVP_KDF-KRB5KDF.html", "doc/html/man7/EVP_KDF-PBKDF1.html", "doc/html/man7/EVP_KDF-PBKDF2.html", "doc/html/man7/EVP_KDF-PKCS12KDF.html", + "doc/html/man7/EVP_KDF-PVKKDF.html", "doc/html/man7/EVP_KDF-SCRYPT.html", "doc/html/man7/EVP_KDF-SS.html", "doc/html/man7/EVP_KDF-SSHKDF.html", @@ -16966,7 +19633,10 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-X942-ASN1.html", "doc/html/man7/EVP_KDF-X942-CONCAT.html", "doc/html/man7/EVP_KDF-X963.html", + "doc/html/man7/EVP_KEM-EC.html", + "doc/html/man7/EVP_KEM-ML-KEM.html", "doc/html/man7/EVP_KEM-RSA.html", + "doc/html/man7/EVP_KEM-X25519.html", "doc/html/man7/EVP_KEYEXCH-DH.html", "doc/html/man7/EVP_KEYEXCH-ECDH.html", "doc/html/man7/EVP_KEYEXCH-X25519.html", @@ -16978,6 +19648,7 @@ our %unified_info = ( "doc/html/man7/EVP_MAC-Poly1305.html", "doc/html/man7/EVP_MAC-Siphash.html", "doc/html/man7/EVP_MD-BLAKE2.html", + "doc/html/man7/EVP_MD-KECCAK.html", "doc/html/man7/EVP_MD-MD2.html", "doc/html/man7/EVP_MD-MD4.html", "doc/html/man7/EVP_MD-MD5-SHA1.html", @@ -16997,12 +19668,17 @@ our %unified_info = ( "doc/html/man7/EVP_PKEY-EC.html", "doc/html/man7/EVP_PKEY-FFC.html", "doc/html/man7/EVP_PKEY-HMAC.html", + "doc/html/man7/EVP_PKEY-ML-DSA.html", + "doc/html/man7/EVP_PKEY-ML-KEM.html", "doc/html/man7/EVP_PKEY-RSA.html", + "doc/html/man7/EVP_PKEY-SLH-DSA.html", "doc/html/man7/EVP_PKEY-SM2.html", "doc/html/man7/EVP_PKEY-X25519.html", + "doc/html/man7/EVP_RAND-CRNG-TEST.html", "doc/html/man7/EVP_RAND-CTR-DRBG.html", "doc/html/man7/EVP_RAND-HASH-DRBG.html", "doc/html/man7/EVP_RAND-HMAC-DRBG.html", + "doc/html/man7/EVP_RAND-JITTER.html", "doc/html/man7/EVP_RAND-SEED-SRC.html", "doc/html/man7/EVP_RAND-TEST-RAND.html", "doc/html/man7/EVP_RAND.html", @@ -17010,17 +19686,19 @@ our %unified_info = ( "doc/html/man7/EVP_SIGNATURE-ECDSA.html", "doc/html/man7/EVP_SIGNATURE-ED25519.html", "doc/html/man7/EVP_SIGNATURE-HMAC.html", + "doc/html/man7/EVP_SIGNATURE-ML-DSA.html", "doc/html/man7/EVP_SIGNATURE-RSA.html", + "doc/html/man7/EVP_SIGNATURE-SLH-DSA.html", "doc/html/man7/OSSL_PROVIDER-FIPS.html", "doc/html/man7/OSSL_PROVIDER-base.html", "doc/html/man7/OSSL_PROVIDER-default.html", "doc/html/man7/OSSL_PROVIDER-legacy.html", "doc/html/man7/OSSL_PROVIDER-null.html", + "doc/html/man7/OSSL_STORE-winstore.html", "doc/html/man7/RAND.html", "doc/html/man7/RSA-PSS.html", "doc/html/man7/X25519.html", "doc/html/man7/bio.html", - "doc/html/man7/crypto.html", "doc/html/man7/ct.html", "doc/html/man7/des_modes.html", "doc/html/man7/evp.html", @@ -17031,14 +19709,31 @@ our %unified_info = ( "doc/html/man7/life_cycle-mac.html", "doc/html/man7/life_cycle-pkey.html", "doc/html/man7/life_cycle-rand.html", - "doc/html/man7/migration_guide.html", "doc/html/man7/openssl-core.h.html", "doc/html/man7/openssl-core_dispatch.h.html", "doc/html/man7/openssl-core_names.h.html", "doc/html/man7/openssl-env.html", "doc/html/man7/openssl-glossary.html", + "doc/html/man7/openssl-qlog.html", + "doc/html/man7/openssl-quic-concurrency.html", + "doc/html/man7/openssl-quic.html", "doc/html/man7/openssl-threads.html", "doc/html/man7/openssl_user_macros.html", + "doc/html/man7/ossl-guide-introduction.html", + "doc/html/man7/ossl-guide-libcrypto-introduction.html", + "doc/html/man7/ossl-guide-libraries-introduction.html", + "doc/html/man7/ossl-guide-libssl-introduction.html", + "doc/html/man7/ossl-guide-migration.html", + "doc/html/man7/ossl-guide-quic-client-block.html", + "doc/html/man7/ossl-guide-quic-client-non-block.html", + "doc/html/man7/ossl-guide-quic-introduction.html", + "doc/html/man7/ossl-guide-quic-multi-stream.html", + "doc/html/man7/ossl-guide-quic-server-block.html", + "doc/html/man7/ossl-guide-quic-server-non-block.html", + "doc/html/man7/ossl-guide-tls-client-block.html", + "doc/html/man7/ossl-guide-tls-client-non-block.html", + "doc/html/man7/ossl-guide-tls-introduction.html", + "doc/html/man7/ossl-guide-tls-server-block.html", "doc/html/man7/ossl_store-file.html", "doc/html/man7/ossl_store.html", "doc/html/man7/passphrase-encoding.html", @@ -17057,10 +19752,10 @@ our %unified_info = ( "doc/html/man7/provider-object.html", "doc/html/man7/provider-rand.html", "doc/html/man7/provider-signature.html", + "doc/html/man7/provider-skeymgmt.html", "doc/html/man7/provider-storemgmt.html", "doc/html/man7/provider.html", "doc/html/man7/proxy-certificates.html", - "doc/html/man7/ssl.html", "doc/html/man7/x509.html" ] }, @@ -17075,12 +19770,21 @@ our %unified_info = ( ] }, "includes" => { + "OpenSSLConfig.cmake" => [ + "." + ], + "OpenSSLConfigVersion.cmake" => [ + "." + ], "apps/asn1parse.o" => [ "apps" ], "apps/ca.o" => [ "apps" ], + "apps/ca_internals_test-bin-ca.o" => [ + "apps" + ], "apps/ciphers.o" => [ "apps" ], @@ -17307,6 +20011,9 @@ our %unified_info = ( "apps/openssl-bin-sess_id.o" => [ "apps" ], + "apps/openssl-bin-skeyutl.o" => [ + "apps" + ], "apps/openssl-bin-smime.o" => [ "apps" ], @@ -17394,6 +20101,9 @@ our %unified_info = ( "apps/sess_id.o" => [ "apps" ], + "apps/skeyutl.o" => [ + "apps" + ], "apps/smime.o" => [ "apps" ], @@ -17445,6 +20155,12 @@ our %unified_info = ( "crypto/aes/bsaes-armv7.o" => [ "crypto" ], + "crypto/aes/vpaes-armv8.o" => [ + "crypto" + ], + "crypto/aes/vpaes-loongarch64.o" => [ + "crypto" + ], "crypto/arm64cpuid.o" => [ "crypto" ], @@ -17496,9 +20212,15 @@ our %unified_info = ( "crypto/chacha/chacha-armv4.o" => [ "crypto" ], + "crypto/chacha/chacha-armv8-sve.o" => [ + "crypto" + ], "crypto/chacha/chacha-armv8.o" => [ "crypto" ], + "crypto/chacha/chacha-loongarch64.o" => [ + "crypto" + ], "crypto/chacha/chacha-s390x.o" => [ "crypto" ], @@ -17523,15 +20245,24 @@ our %unified_info = ( "crypto/ec/ecp_s390x_nistp.o" => [ "crypto" ], + "crypto/ec/ecp_sm2p256-armv8.o" => [ + "crypto" + ], + "crypto/ec/ecx_key.o" => [ + "crypto" + ], "crypto/ec/ecx_meth.o" => [ "crypto" ], - "crypto/ec/ecx_s390x.o" => [ + "crypto/ec/libcrypto-lib-ecx_key.o" => [ "crypto" ], "crypto/ec/libcrypto-lib-ecx_meth.o" => [ "crypto" ], + "crypto/ec/libfips-lib-ecx_key.o" => [ + "crypto" + ], "crypto/evp/e_aes.o" => [ "crypto", "crypto/modes" @@ -17603,9 +20334,18 @@ our %unified_info = ( "crypto/libfips-lib-cpuid.o" => [ "." ], + "crypto/md5/md5-aarch64.o" => [ + "crypto" + ], + "crypto/md5/md5-loongarch64.o" => [ + "crypto" + ], "crypto/md5/md5-sparcv9.o" => [ "crypto" ], + "crypto/modes/aes-gcm-armv8-unroll8_64.o" => [ + "crypto" + ], "crypto/modes/aes-gcm-armv8_64.o" => [ "crypto" ], @@ -17630,6 +20370,9 @@ our %unified_info = ( "crypto/modes/libfips-lib-gcm128.o" => [ "crypto" ], + "crypto/params_idx.c" => [ + "util/perl" + ], "crypto/poly1305/poly1305-armv4.o" => [ "crypto" ], @@ -17651,6 +20394,9 @@ our %unified_info = ( "crypto/sha/keccak1600-armv4.o" => [ "crypto" ], + "crypto/sha/keccak1600-armv8.o" => [ + "crypto" + ], "crypto/sha/sha1-armv4-large.o" => [ "crypto" ], @@ -17696,6 +20442,18 @@ our %unified_info = ( "crypto/sha/sha512-sparcv9.o" => [ "crypto" ], + "crypto/sm3/sm3-armv8.o" => [ + "crypto" + ], + "crypto/sm4/sm4-armv8.o" => [ + "crypto" + ], + "crypto/sm4/vpsm4-armv8.o" => [ + "crypto" + ], + "crypto/sm4/vpsm4_ex-armv8.o" => [ + "crypto" + ], "doc/man1/openssl-asn1parse.pod" => [ "doc" ], @@ -17828,6 +20586,9 @@ our %unified_info = ( "doc/man1/openssl-sess_id.pod" => [ "doc" ], + "doc/man1/openssl-skeyutl.pod" => [ + "doc" + ], "doc/man1/openssl-smime.pod" => [ "doc" ], @@ -17855,6 +20616,24 @@ our %unified_info = ( "doc/man1/openssl-x509.pod" => [ "doc" ], + "exporters/OpenSSLConfig.cmake" => [ + "." + ], + "exporters/OpenSSLConfigVersion.cmake" => [ + "." + ], + "exporters/libcrypto.pc" => [ + "." + ], + "exporters/libssl.pc" => [ + "." + ], + "exporters/openssl.pc" => [ + "." + ], + "fuzz/acert-test" => [ + "include" + ], "fuzz/asn1-test" => [ "include" ], @@ -17885,22 +20664,88 @@ our %unified_info = ( "fuzz/ct-test" => [ "include" ], + "fuzz/decoder-test" => [ + "include" + ], + "fuzz/dtlsclient-test" => [ + "include" + ], + "fuzz/dtlsserver-test" => [ + "include" + ], + "fuzz/hashtable-test" => [ + "include" + ], + "fuzz/ml-dsa-test" => [ + "include" + ], + "fuzz/ml-kem-test" => [ + "include" + ], + "fuzz/pem-test" => [ + "include" + ], + "fuzz/provider-test" => [ + "include" + ], + "fuzz/punycode-test" => [ + "include" + ], + "fuzz/quic-client-test" => [ + "include" + ], + "fuzz/quic-lcidm-test" => [ + "include" + ], + "fuzz/quic-rcidm-test" => [ + "include" + ], + "fuzz/quic-server-test" => [ + "include" + ], + "fuzz/quic-srtm-test" => [ + "include" + ], "fuzz/server-test" => [ "include" ], + "fuzz/slh-dsa-test" => [ + "include" + ], + "fuzz/smime-test" => [ + "include" + ], + "fuzz/v3name-test" => [ + "include" + ], "fuzz/x509-test" => [ "include" ], + "include/internal/param_names.h" => [ + "util/perl" + ], + "include/openssl/core_names.h" => [ + "util/perl" + ], "libcrypto" => [ ".", "include", "providers/common/include", "providers/implementations/include" ], + "libcrypto.pc" => [ + "." + ], "libssl" => [ ".", "include" ], + "libssl.pc" => [ + "." + ], + "openssl.pc" => [ + "." + ], "providers/common/der/der_digests_gen.c" => [ "providers/common/der" ], @@ -17940,6 +20785,15 @@ our %unified_info = ( "providers/common/der/der_ecx_key.o" => [ "providers/common/include/prov" ], + "providers/common/der/der_ml_dsa_gen.c" => [ + "providers/common/der" + ], + "providers/common/der/der_ml_dsa_gen.o" => [ + "providers/common/include/prov" + ], + "providers/common/der/der_ml_dsa_key.o" => [ + "providers/common/include/prov" + ], "providers/common/der/der_rsa_gen.c" => [ "providers/common/der" ], @@ -17952,6 +20806,15 @@ our %unified_info = ( "providers/common/der/der_rsa_sig.o" => [ "providers/common/include/prov" ], + "providers/common/der/der_slh_dsa_gen.c" => [ + "providers/common/der" + ], + "providers/common/der/der_slh_dsa_gen.o" => [ + "providers/common/include/prov" + ], + "providers/common/der/der_slh_dsa_key.o" => [ + "providers/common/include/prov" + ], "providers/common/der/der_sm2_gen.c" => [ "providers/common/der" ], @@ -17997,12 +20860,24 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ecx_key.o" => [ "providers/common/include/prov" ], + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o" => [ + "providers/common/include/prov" + ], + "providers/common/der/libcommon-lib-der_ml_dsa_key.o" => [ + "providers/common/include/prov" + ], "providers/common/der/libcommon-lib-der_rsa_gen.o" => [ "providers/common/include/prov" ], "providers/common/der/libcommon-lib-der_rsa_key.o" => [ "providers/common/include/prov" ], + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o" => [ + "providers/common/include/prov" + ], + "providers/common/der/libcommon-lib-der_slh_dsa_key.o" => [ + "providers/common/include/prov" + ], "providers/common/der/libcommon-lib-der_wrap_gen.o" => [ "providers/common/include/prov" ], @@ -18033,9 +20908,15 @@ our %unified_info = ( "providers/common/include/prov/der_ecx.h" => [ "providers/common/der" ], + "providers/common/include/prov/der_ml_dsa.h" => [ + "providers/common/der" + ], "providers/common/include/prov/der_rsa.h" => [ "providers/common/der" ], + "providers/common/include/prov/der_slh_dsa.h" => [ + "providers/common/der" + ], "providers/common/include/prov/der_sm2.h" => [ "providers/common/der" ], @@ -18078,9 +20959,15 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-eddsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/libdefault-lib-rsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/libdefault-lib-sm2_sig.o" => [ "providers/common/include/prov" ], @@ -18093,12 +20980,24 @@ our %unified_info = ( "providers/implementations/signature/libfips-lib-eddsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/libfips-lib-rsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o" => [ + "providers/common/include/prov" + ], + "providers/implementations/signature/ml_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/rsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/slh_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/sm2_sig.o" => [ "providers/common/include/prov" ], @@ -18111,28 +21010,39 @@ our %unified_info = ( "crypto", "include", "providers/implementations/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" ], "providers/libdefault.a" => [ ".", "crypto", "include", "providers/implementations/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" ], "providers/libfips.a" => [ ".", "crypto", "include", "providers/implementations/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" ], "providers/liblegacy.a" => [ ".", "crypto", "include", "providers/implementations/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" + ], + "providers/libtemplate.a" => [ + "crypto", + "include", + "providers/implementations/include", + "providers/common/include", + "providers/fips/include" ], "test/aborttest" => [ "include", @@ -18201,6 +21111,14 @@ our %unified_info = ( "include", "apps/include" ], + "test/bio_addr_test" => [ + "include", + "apps/include" + ], + "test/bio_base64_test" => [ + "include", + "apps/include" + ], "test/bio_callback_test" => [ "include", "apps/include" @@ -18209,11 +21127,20 @@ our %unified_info = ( "include", "apps/include" ], + "test/bio_dgram_test" => [ + "include", + "apps/include", + "." + ], "test/bio_enc_test" => [ "include", "apps/include" ], - "test/bio_memleak_test" => [ + "test/bio_memleak_test" => [ + "include", + "apps/include" + ], + "test/bio_meth_test" => [ "include", "apps/include" ], @@ -18230,6 +21157,11 @@ our %unified_info = ( "include", "apps/include" ], + "test/bio_tfo_test" => [ + "include", + "apps/include", + "." + ], "test/bioprinttest" => [ "include", "apps/include" @@ -18244,6 +21176,9 @@ our %unified_info = ( "include", "apps/include" ], + "test/build_wincrypt_test" => [ + "include" + ], "test/buildtest_c_aes" => [ "include" ], @@ -18259,6 +21194,9 @@ our %unified_info = ( "test/buildtest_c_buffer" => [ "include" ], + "test/buildtest_c_byteorder" => [ + "include" + ], "test/buildtest_c_camellia" => [ "include" ], @@ -18283,9 +21221,6 @@ our %unified_info = ( "test/buildtest_c_core_dispatch" => [ "include" ], - "test/buildtest_c_core_names" => [ - "include" - ], "test/buildtest_c_core_object" => [ "include" ], @@ -18310,6 +21245,9 @@ our %unified_info = ( "test/buildtest_c_e_os2" => [ "include" ], + "test/buildtest_c_e_ostime" => [ + "include" + ], "test/buildtest_c_ebcdic" => [ "include" ], @@ -18337,12 +21275,18 @@ our %unified_info = ( "test/buildtest_c_hmac" => [ "include" ], + "test/buildtest_c_hpke" => [ + "include" + ], "test/buildtest_c_http" => [ "include" ], "test/buildtest_c_idea" => [ "include" ], + "test/buildtest_c_indicator" => [ + "include" + ], "test/buildtest_c_kdf" => [ "include" ], @@ -18358,6 +21302,9 @@ our %unified_info = ( "test/buildtest_c_mdc2" => [ "include" ], + "test/buildtest_c_ml_kem" => [ + "include" + ], "test/buildtest_c_modes" => [ "include" ], @@ -18388,6 +21335,9 @@ our %unified_info = ( "test/buildtest_c_provider" => [ "include" ], + "test/buildtest_c_quic" => [ + "include" + ], "test/buildtest_c_rand" => [ "include" ], @@ -18430,6 +21380,9 @@ our %unified_info = ( "test/buildtest_c_symhacks" => [ "include" ], + "test/buildtest_c_thread" => [ + "include" + ], "test/buildtest_c_tls1" => [ "include" ], @@ -18445,10 +21398,24 @@ our %unified_info = ( "test/buildtest_c_whrlpool" => [ "include" ], + "test/byteorder_test" => [ + "include", + "apps/include" + ], + "test/ca_internals_test" => [ + ".", + "include", + "apps/include" + ], "test/casttest" => [ "include", "apps/include" ], + "test/cert_comp_test" => [ + "include", + "apps/include", + "." + ], "test/chacha_internal_test" => [ ".", "include", @@ -18572,6 +21539,11 @@ our %unified_info = ( "include", "apps/include" ], + "test/decoder_propq_test" => [ + ".", + "include", + "apps/include" + ], "test/defltfips_test" => [ "include", "apps/include" @@ -18587,7 +21559,8 @@ our %unified_info = ( "test/drbgtest" => [ "include", "apps/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" ], "test/dsa_no_digest_size_test" => [ "include", @@ -18630,7 +21603,9 @@ our %unified_info = ( "test/endecode_test" => [ ".", "include", - "apps/include" + "apps/include", + "providers/common/include", + "providers/implementations/include" ], "test/endecoder_legacy_test" => [ ".", @@ -18675,6 +21650,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/evp_pkey_dhkem_test" => [ + "include", + "apps/include" + ], "test/evp_pkey_dparams_test" => [ "include", "apps/include" @@ -18683,10 +21662,18 @@ our %unified_info = ( "include", "apps/include" ], + "test/evp_skey_test" => [ + "include", + "apps/include" + ], "test/evp_test" => [ "include", "apps/include" ], + "test/evp_xof_test" => [ + "include", + "apps/include" + ], "test/exdatatest" => [ "include", "apps/include" @@ -18787,22 +21774,62 @@ our %unified_info = ( ".", "include" ], + "test/helpers/json_test-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/helpers/pkcs12.o" => [ ".", "include" ], + "test/helpers/pkcs12_api_test-bin-pkcs12.o" => [ + ".", + "include" + ], "test/helpers/pkcs12_format_test-bin-pkcs12.o" => [ ".", "include" ], + "test/helpers/quic_multistream_test-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quic_newcid_test-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quic_radix_test-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quic_srt_gen_test-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quicapitest-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quicfaultstest-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/helpers/recordlentest-bin-ssltestlib.o" => [ ".", "include" ], + "test/helpers/rpktest-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/helpers/servername_test-bin-ssltestlib.o" => [ ".", "include" ], + "test/helpers/ssl_handshake_rtt_test-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/helpers/ssl_test-bin-handshake.o" => [ ".", "include" @@ -18836,6 +21863,10 @@ our %unified_info = ( ".", "include" ], + "test/helpers/tls13groupselection_test-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/hexstr_test" => [ ".", "include", @@ -18845,6 +21876,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/hpke_test" => [ + "include", + "apps/include" + ], "test/http_test" => [ "include", "apps/include" @@ -18857,6 +21892,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/json_test" => [ + "include", + "apps/include" + ], "test/keymgmt_internal_test" => [ ".", "include", @@ -18871,6 +21910,10 @@ our %unified_info = ( "apps/include", "." ], + "test/list_test" => [ + "include", + "apps/include" + ], "test/localetest" => [ "include", "apps/include" @@ -18884,10 +21927,27 @@ our %unified_info = ( "include", "apps/include" ], + "test/membio_test" => [ + "include", + "apps/include", + "." + ], "test/memleaktest" => [ "include", "apps/include" ], + "test/ml_dsa_test" => [ + "include", + "apps/include" + ], + "test/ml_kem_evp_extra_test" => [ + "include", + "apps/include" + ], + "test/ml_kem_internal_test" => [ + "include", + "apps/include" + ], "test/modes_internal_test" => [ ".", "include", @@ -18922,6 +21982,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/pairwise_fail_test" => [ + "include", + "apps/include" + ], "test/param_build_test" => [ "include", "apps/include" @@ -18955,6 +22019,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/pkcs12_api_test" => [ + "include", + "apps/include" + ], "test/pkcs12_format_test" => [ "include", "apps/include" @@ -18976,6 +22044,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/priority_queue_test" => [ + "include", + "apps/include" + ], "test/property_test" => [ ".", "include", @@ -18989,6 +22061,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/provider_default_search_path_test" => [ + "include", + "apps/include" + ], "test/provider_fallback_test" => [ "include", "apps/include" @@ -19015,6 +22091,97 @@ our %unified_info = ( "include", "apps/include" ], + "test/quic_ackm_test" => [ + "include", + "apps/include" + ], + "test/quic_cc_test" => [ + "include", + "apps/include" + ], + "test/quic_cfq_test" => [ + "include", + "apps/include" + ], + "test/quic_client_test" => [ + "include", + "apps/include" + ], + "test/quic_fc_test" => [ + "include", + "apps/include" + ], + "test/quic_fifd_test" => [ + "include", + "apps/include" + ], + "test/quic_lcidm_test" => [ + "include", + "apps/include" + ], + "test/quic_multistream_test" => [ + "include", + "apps/include" + ], + "test/quic_newcid_test" => [ + "include", + "apps/include", + "." + ], + "test/quic_qlog_test" => [ + "include", + "apps/include" + ], + "test/quic_radix_test" => [ + "include", + "apps/include" + ], + "test/quic_rcidm_test" => [ + "include", + "apps/include" + ], + "test/quic_record_test" => [ + "include", + "apps/include" + ], + "test/quic_srt_gen_test" => [ + "include", + "apps/include", + "." + ], + "test/quic_srtm_test" => [ + "include", + "apps/include" + ], + "test/quic_stream_test" => [ + "include", + "apps/include" + ], + "test/quic_tserver_test" => [ + "include", + "apps/include" + ], + "test/quic_txp_test" => [ + "include", + "apps/include" + ], + "test/quic_txpim_test" => [ + "include", + "apps/include" + ], + "test/quic_wire_test" => [ + "include", + "apps/include" + ], + "test/quicapitest" => [ + "include", + "apps/include" + ], + "test/quicfaultstest" => [ + "include", + "apps/include", + "." + ], "test/rand_status_test" => [ "include", "apps/include" @@ -19035,14 +22202,20 @@ our %unified_info = ( "include", "apps/include" ], - "test/rdrand_sanitytest" => [ + "test/rdcpu_sanitytest" => [ "include", - "apps/include" + "apps/include", + "crypto" ], "test/recordlentest" => [ "include", "apps/include" ], + "test/rpktest" => [ + "include", + "apps/include", + "." + ], "test/rsa_complex" => [ "include", "apps/include" @@ -19061,6 +22234,15 @@ our %unified_info = ( "include", "apps/include" ], + "test/rsa_x931_test" => [ + ".", + "include", + "apps/include" + ], + "test/safe_math_test" => [ + "include", + "apps/include" + ], "test/sanitytest" => [ "include", "apps/include" @@ -19082,6 +22264,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/slh_dsa_test" => [ + "include", + "apps/include" + ], "test/sm2_internal_test" => [ "include", "apps/include" @@ -19112,6 +22298,11 @@ our %unified_info = ( "include", "apps/include" ], + "test/ssl_handshake_rtt_test" => [ + "include", + "apps/include", + "." + ], "test/ssl_old_test" => [ ".", "include", @@ -19128,6 +22319,7 @@ our %unified_info = ( "test/sslapitest" => [ "include", "apps/include", + "providers/common/include", "." ], "test/sslbuffertest" => [ @@ -19142,6 +22334,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/strtoultest" => [ + "include", + "apps/include" + ], "test/sysdefaulttest" => [ "include", "apps/include" @@ -19150,7 +22346,13 @@ our %unified_info = ( "include", "apps/include" ], + "test/threadpool_test" => [ + ".", + "include", + "apps/include" + ], "test/threadstest" => [ + ".", "include", "apps/include" ], @@ -19162,6 +22364,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/time_test" => [ + "include", + "apps/include" + ], "test/tls13ccstest" => [ "include", "apps/include" @@ -19171,6 +22377,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/tls13groupselection_test" => [ + "include", + "apps/include" + ], "test/trace_api_test" => [ ".", "include", @@ -19209,6 +22419,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/x509_acert_test" => [ + "include", + "apps/include" + ], "test/x509_check_cert_pkey_test" => [ "include", "apps/include" @@ -19222,6 +22436,18 @@ our %unified_info = ( "include", "apps/include" ], + "test/x509_load_cert_file_test" => [ + "include", + "apps/include" + ], + "test/x509_req_test" => [ + "include", + "apps/include" + ], + "test/x509_test" => [ + "include", + "apps/include" + ], "test/x509_time_test" => [ "include", "apps/include" @@ -19243,6 +22469,7 @@ our %unified_info = ( "providers/libdefault.a", "providers/libfips.a", "providers/liblegacy.a", + "providers/libtemplate.a", "test/libtestutil.a" ], "mandocs" => { @@ -19295,6 +22522,7 @@ our %unified_info = ( "doc/man/man1/openssl-s_server.1", "doc/man/man1/openssl-s_time.1", "doc/man/man1/openssl-sess_id.1", + "doc/man/man1/openssl-skeyutl.1", "doc/man/man1/openssl-smime.1", "doc/man/man1/openssl-speed.1", "doc/man/man1/openssl-spkac.1", @@ -19344,6 +22572,7 @@ our %unified_info = ( "doc/man/man3/BIO_find_type.3", "doc/man/man3/BIO_get_data.3", "doc/man/man3/BIO_get_ex_new_index.3", + "doc/man/man3/BIO_get_rpoll_descriptor.3", "doc/man/man3/BIO_meth_new.3", "doc/man/man3/BIO_new.3", "doc/man/man3/BIO_new_CMS.3", @@ -19356,11 +22585,13 @@ our %unified_info = ( "doc/man/man3/BIO_s_connect.3", "doc/man/man3/BIO_s_core.3", "doc/man/man3/BIO_s_datagram.3", + "doc/man/man3/BIO_s_dgram_pair.3", "doc/man/man3/BIO_s_fd.3", "doc/man/man3/BIO_s_file.3", "doc/man/man3/BIO_s_mem.3", "doc/man/man3/BIO_s_null.3", "doc/man/man3/BIO_s_socket.3", + "doc/man/man3/BIO_sendmmsg.3", "doc/man/man3/BIO_set_callback.3", "doc/man/man3/BIO_should_retry.3", "doc/man/man3/BIO_socket_wait.3", @@ -19385,6 +22616,7 @@ our %unified_info = ( "doc/man/man3/BN_swap.3", "doc/man/man3/BN_zero.3", "doc/man/man3/BUF_MEM_new.3", + "doc/man/man3/CMAC_CTX.3", "doc/man/man3/CMS_EncryptedData_decrypt.3", "doc/man/man3/CMS_EncryptedData_encrypt.3", "doc/man/man3/CMS_EnvelopedData_create.3", @@ -19407,6 +22639,7 @@ our %unified_info = ( "doc/man/man3/CMS_uncompress.3", "doc/man/man3/CMS_verify.3", "doc/man/man3/CMS_verify_receipt.3", + "doc/man/man3/COMP_CTX_new.3", "doc/man/man3/CONF_modules_free.3", "doc/man/man3/CONF_modules_load_file.3", "doc/man/man3/CRYPTO_THREAD_run_once.3", @@ -19440,6 +22673,8 @@ our %unified_info = ( "doc/man/man3/DSA_size.3", "doc/man/man3/DTLS_get_data_mtu.3", "doc/man/man3/DTLS_set_timer_cb.3", + "doc/man/man3/DTLSv1_get_timeout.3", + "doc/man/man3/DTLSv1_handle_timeout.3", "doc/man/man3/DTLSv1_listen.3", "doc/man/man3/ECDSA_SIG_new.3", "doc/man/man3/ECDSA_sign.3", @@ -19486,6 +22721,7 @@ our %unified_info = ( "doc/man/man3/EVP_PKEY_CTX_ctrl.3", "doc/man/man3/EVP_PKEY_CTX_get0_libctx.3", "doc/man/man3/EVP_PKEY_CTX_get0_pkey.3", + "doc/man/man3/EVP_PKEY_CTX_get_algor.3", "doc/man/man3/EVP_PKEY_CTX_new.3", "doc/man/man3/EVP_PKEY_CTX_set1_pbe_pass.3", "doc/man/man3/EVP_PKEY_CTX_set_hkdf_md.3", @@ -19525,6 +22761,8 @@ our %unified_info = ( "doc/man/man3/EVP_PKEY_verify_recover.3", "doc/man/man3/EVP_RAND.3", "doc/man/man3/EVP_SIGNATURE.3", + "doc/man/man3/EVP_SKEY.3", + "doc/man/man3/EVP_SKEYMGMT.3", "doc/man/man3/EVP_SealInit.3", "doc/man/man3/EVP_SignInit.3", "doc/man/man3/EVP_VerifyInit.3", @@ -19554,6 +22792,7 @@ our %unified_info = ( "doc/man/man3/EVP_sm3.3", "doc/man/man3/EVP_sm4_cbc.3", "doc/man/man3/EVP_whirlpool.3", + "doc/man/man3/GENERAL_NAME.3", "doc/man/man3/HMAC.3", "doc/man/man3/MD5.3", "doc/man/man3/MDC2_Init.3", @@ -19578,14 +22817,18 @@ our %unified_info = ( "doc/man/man3/OPENSSL_init_ssl.3", "doc/man/man3/OPENSSL_instrument_bus.3", "doc/man/man3/OPENSSL_load_builtin_modules.3", + "doc/man/man3/OPENSSL_load_u16_le.3", "doc/man/man3/OPENSSL_malloc.3", + "doc/man/man3/OPENSSL_riscvcap.3", "doc/man/man3/OPENSSL_s390xcap.3", "doc/man/man3/OPENSSL_secure_malloc.3", "doc/man/man3/OPENSSL_strcasecmp.3", "doc/man/man3/OSSL_ALGORITHM.3", "doc/man/man3/OSSL_CALLBACK.3", + "doc/man/man3/OSSL_CMP_ATAV_set0.3", "doc/man/man3/OSSL_CMP_CTX_new.3", "doc/man/man3/OSSL_CMP_HDR_get0_transactionID.3", + "doc/man/man3/OSSL_CMP_ITAV_new_caCerts.3", "doc/man/man3/OSSL_CMP_ITAV_set0.3", "doc/man/man3/OSSL_CMP_MSG_get0_header.3", "doc/man/man3/OSSL_CMP_MSG_http_perform.3", @@ -19609,18 +22852,27 @@ our %unified_info = ( "doc/man/man3/OSSL_ENCODER_CTX.3", "doc/man/man3/OSSL_ENCODER_CTX_new_for_pkey.3", "doc/man/man3/OSSL_ENCODER_to_bio.3", + "doc/man/man3/OSSL_ERR_STATE_save.3", "doc/man/man3/OSSL_ESS_check_signing_certs.3", + "doc/man/man3/OSSL_GENERAL_NAMES_print.3", + "doc/man/man3/OSSL_HPKE_CTX_new.3", "doc/man/man3/OSSL_HTTP_REQ_CTX.3", "doc/man/man3/OSSL_HTTP_parse_url.3", "doc/man/man3/OSSL_HTTP_transfer.3", + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX.3", + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX_print.3", + "doc/man/man3/OSSL_INDICATOR_set_callback.3", "doc/man/man3/OSSL_ITEM.3", "doc/man/man3/OSSL_LIB_CTX.3", + "doc/man/man3/OSSL_LIB_CTX_set_conf_diagnostics.3", "doc/man/man3/OSSL_PARAM.3", "doc/man/man3/OSSL_PARAM_BLD.3", "doc/man/man3/OSSL_PARAM_allocate_from_text.3", "doc/man/man3/OSSL_PARAM_dup.3", "doc/man/man3/OSSL_PARAM_int.3", + "doc/man/man3/OSSL_PARAM_print_to_bio.3", "doc/man/man3/OSSL_PROVIDER.3", + "doc/man/man3/OSSL_QUIC_client_method.3", "doc/man/man3/OSSL_SELF_TEST_new.3", "doc/man/man3/OSSL_SELF_TEST_set_callback.3", "doc/man/man3/OSSL_STORE_INFO.3", @@ -19629,11 +22881,13 @@ our %unified_info = ( "doc/man/man3/OSSL_STORE_attach.3", "doc/man/man3/OSSL_STORE_expect.3", "doc/man/man3/OSSL_STORE_open.3", + "doc/man/man3/OSSL_sleep.3", "doc/man/man3/OSSL_trace_enabled.3", "doc/man/man3/OSSL_trace_get_category_num.3", "doc/man/man3/OSSL_trace_set_channel.3", "doc/man/man3/OpenSSL_add_all_algorithms.3", "doc/man/man3/OpenSSL_version.3", + "doc/man/man3/PBMAC1_get1_pbkdf2_param.3", "doc/man/man3/PEM_X509_INFO_read_bio_ex.3", "doc/man/man3/PEM_bytes_read_bio.3", "doc/man/man3/PEM_read.3", @@ -19646,6 +22900,7 @@ our %unified_info = ( "doc/man/man3/PKCS12_SAFEBAG_create_cert.3", "doc/man/man3/PKCS12_SAFEBAG_get0_attrs.3", "doc/man/man3/PKCS12_SAFEBAG_get1_cert.3", + "doc/man/man3/PKCS12_SAFEBAG_set0_attrs.3", "doc/man/man3/PKCS12_add1_attr_by_NID.3", "doc/man/man3/PKCS12_add_CSPName_asc.3", "doc/man/man3/PKCS12_add_cert.3", @@ -19737,6 +22992,7 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_sess_set_get_cb.3", "doc/man/man3/SSL_CTX_sessions.3", "doc/man/man3/SSL_CTX_set0_CA_list.3", + "doc/man/man3/SSL_CTX_set1_cert_comp_preference.3", "doc/man/man3/SSL_CTX_set1_curves.3", "doc/man/man3/SSL_CTX_set1_sigalgs.3", "doc/man/man3/SSL_CTX_set1_verify_cert_store.3", @@ -19750,6 +23006,7 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_ct_validation_callback.3", "doc/man/man3/SSL_CTX_set_ctlog_list_file.3", "doc/man/man3/SSL_CTX_set_default_passwd_cb.3", + "doc/man/man3/SSL_CTX_set_domain_flags.3", "doc/man/man3/SSL_CTX_set_generate_session_id.3", "doc/man/man3/SSL_CTX_set_info_callback.3", "doc/man/man3/SSL_CTX_set_keylog_callback.3", @@ -19757,6 +23014,7 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_min_proto_version.3", "doc/man/man3/SSL_CTX_set_mode.3", "doc/man/man3/SSL_CTX_set_msg_callback.3", + "doc/man/man3/SSL_CTX_set_new_pending_conn_cb.3", "doc/man/man3/SSL_CTX_set_num_tickets.3", "doc/man/man3/SSL_CTX_set_options.3", "doc/man/man3/SSL_CTX_set_psk_client_callback.3", @@ -19795,6 +23053,7 @@ our %unified_info = ( "doc/man/man3/SSL_SESSION_print.3", "doc/man/man3/SSL_SESSION_set1_id.3", "doc/man/man3/SSL_accept.3", + "doc/man/man3/SSL_accept_stream.3", "doc/man/man3/SSL_alert_type_string.3", "doc/man/man3/SSL_alloc_buffers.3", "doc/man/man3/SSL_check_chain.3", @@ -19804,59 +23063,90 @@ our %unified_info = ( "doc/man/man3/SSL_export_keying_material.3", "doc/man/man3/SSL_extension_supported.3", "doc/man/man3/SSL_free.3", + "doc/man/man3/SSL_get0_connection.3", + "doc/man/man3/SSL_get0_group_name.3", + "doc/man/man3/SSL_get0_peer_rpk.3", "doc/man/man3/SSL_get0_peer_scts.3", + "doc/man/man3/SSL_get1_builtin_sigalgs.3", "doc/man/man3/SSL_get_SSL_CTX.3", "doc/man/man3/SSL_get_all_async_fds.3", "doc/man/man3/SSL_get_certificate.3", "doc/man/man3/SSL_get_ciphers.3", "doc/man/man3/SSL_get_client_random.3", + "doc/man/man3/SSL_get_conn_close_info.3", "doc/man/man3/SSL_get_current_cipher.3", "doc/man/man3/SSL_get_default_timeout.3", "doc/man/man3/SSL_get_error.3", + "doc/man/man3/SSL_get_event_timeout.3", "doc/man/man3/SSL_get_extms_support.3", "doc/man/man3/SSL_get_fd.3", + "doc/man/man3/SSL_get_handshake_rtt.3", "doc/man/man3/SSL_get_peer_cert_chain.3", "doc/man/man3/SSL_get_peer_certificate.3", "doc/man/man3/SSL_get_peer_signature_nid.3", "doc/man/man3/SSL_get_peer_tmp_key.3", "doc/man/man3/SSL_get_psk_identity.3", "doc/man/man3/SSL_get_rbio.3", + "doc/man/man3/SSL_get_rpoll_descriptor.3", "doc/man/man3/SSL_get_session.3", "doc/man/man3/SSL_get_shared_sigalgs.3", + "doc/man/man3/SSL_get_stream_id.3", + "doc/man/man3/SSL_get_stream_read_state.3", + "doc/man/man3/SSL_get_value_uint.3", "doc/man/man3/SSL_get_verify_result.3", "doc/man/man3/SSL_get_version.3", "doc/man/man3/SSL_group_to_name.3", + "doc/man/man3/SSL_handle_events.3", "doc/man/man3/SSL_in_init.3", + "doc/man/man3/SSL_inject_net_dgram.3", "doc/man/man3/SSL_key_update.3", "doc/man/man3/SSL_library_init.3", "doc/man/man3/SSL_load_client_CA_file.3", "doc/man/man3/SSL_new.3", + "doc/man/man3/SSL_new_domain.3", + "doc/man/man3/SSL_new_listener.3", + "doc/man/man3/SSL_new_stream.3", "doc/man/man3/SSL_pending.3", + "doc/man/man3/SSL_poll.3", "doc/man/man3/SSL_read.3", "doc/man/man3/SSL_read_early_data.3", "doc/man/man3/SSL_rstate_string.3", "doc/man/man3/SSL_session_reused.3", "doc/man/man3/SSL_set1_host.3", + "doc/man/man3/SSL_set1_initial_peer_addr.3", + "doc/man/man3/SSL_set1_server_cert_type.3", "doc/man/man3/SSL_set_async_callback.3", "doc/man/man3/SSL_set_bio.3", + "doc/man/man3/SSL_set_blocking_mode.3", "doc/man/man3/SSL_set_connect_state.3", + "doc/man/man3/SSL_set_default_stream_mode.3", "doc/man/man3/SSL_set_fd.3", + "doc/man/man3/SSL_set_incoming_stream_policy.3", + "doc/man/man3/SSL_set_quic_tls_cbs.3", "doc/man/man3/SSL_set_retry_verify.3", "doc/man/man3/SSL_set_session.3", + "doc/man/man3/SSL_set_session_secret_cb.3", "doc/man/man3/SSL_set_shutdown.3", "doc/man/man3/SSL_set_verify_result.3", "doc/man/man3/SSL_shutdown.3", "doc/man/man3/SSL_state_string.3", + "doc/man/man3/SSL_stream_conclude.3", + "doc/man/man3/SSL_stream_reset.3", "doc/man/man3/SSL_want.3", "doc/man/man3/SSL_write.3", "doc/man/man3/TS_RESP_CTX_new.3", - "doc/man/man3/TS_VERIFY_CTX_set_certs.3", + "doc/man/man3/TS_VERIFY_CTX.3", "doc/man/man3/UI_STRING.3", "doc/man/man3/UI_UTIL_read_pw.3", "doc/man/man3/UI_create_method.3", "doc/man/man3/UI_new.3", "doc/man/man3/X509V3_get_d2i.3", "doc/man/man3/X509V3_set_ctx.3", + "doc/man/man3/X509_ACERT_add1_attr.3", + "doc/man/man3/X509_ACERT_add_attr_nconf.3", + "doc/man/man3/X509_ACERT_get0_holder_baseCertId.3", + "doc/man/man3/X509_ACERT_get_attr.3", + "doc/man/man3/X509_ACERT_print_ex.3", "doc/man/man3/X509_ALGOR_dup.3", "doc/man/man3/X509_ATTRIBUTE.3", "doc/man/man3/X509_CRL_get0_by_serial.3", @@ -19873,6 +23163,7 @@ our %unified_info = ( "doc/man/man3/X509_REQ_get_attr.3", "doc/man/man3/X509_REQ_get_extensions.3", "doc/man/man3/X509_SIG_get0.3", + "doc/man/man3/X509_STORE_CTX_get_by_subject.3", "doc/man/man3/X509_STORE_CTX_get_error.3", "doc/man/man3/X509_STORE_CTX_new.3", "doc/man/man3/X509_STORE_CTX_set_verify_cb.3", @@ -19895,6 +23186,7 @@ our %unified_info = ( "doc/man/man3/X509_get0_notBefore.3", "doc/man/man3/X509_get0_signature.3", "doc/man/man3/X509_get0_uids.3", + "doc/man/man3/X509_get_default_cert_file.3", "doc/man/man3/X509_get_extension_flags.3", "doc/man/man3/X509_get_pubkey.3", "doc/man/man3/X509_get_serialNumber.3", @@ -19940,12 +23232,15 @@ our %unified_info = ( "doc/man/man7/EVP_CIPHER-RC5.7", "doc/man/man7/EVP_CIPHER-SEED.7", "doc/man/man7/EVP_CIPHER-SM4.7", + "doc/man/man7/EVP_KDF-ARGON2.7", "doc/man/man7/EVP_KDF-HKDF.7", + "doc/man/man7/EVP_KDF-HMAC-DRBG.7", "doc/man/man7/EVP_KDF-KB.7", "doc/man/man7/EVP_KDF-KRB5KDF.7", "doc/man/man7/EVP_KDF-PBKDF1.7", "doc/man/man7/EVP_KDF-PBKDF2.7", "doc/man/man7/EVP_KDF-PKCS12KDF.7", + "doc/man/man7/EVP_KDF-PVKKDF.7", "doc/man/man7/EVP_KDF-SCRYPT.7", "doc/man/man7/EVP_KDF-SS.7", "doc/man/man7/EVP_KDF-SSHKDF.7", @@ -19954,7 +23249,10 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-X942-ASN1.7", "doc/man/man7/EVP_KDF-X942-CONCAT.7", "doc/man/man7/EVP_KDF-X963.7", + "doc/man/man7/EVP_KEM-EC.7", + "doc/man/man7/EVP_KEM-ML-KEM.7", "doc/man/man7/EVP_KEM-RSA.7", + "doc/man/man7/EVP_KEM-X25519.7", "doc/man/man7/EVP_KEYEXCH-DH.7", "doc/man/man7/EVP_KEYEXCH-ECDH.7", "doc/man/man7/EVP_KEYEXCH-X25519.7", @@ -19966,6 +23264,7 @@ our %unified_info = ( "doc/man/man7/EVP_MAC-Poly1305.7", "doc/man/man7/EVP_MAC-Siphash.7", "doc/man/man7/EVP_MD-BLAKE2.7", + "doc/man/man7/EVP_MD-KECCAK.7", "doc/man/man7/EVP_MD-MD2.7", "doc/man/man7/EVP_MD-MD4.7", "doc/man/man7/EVP_MD-MD5-SHA1.7", @@ -19985,12 +23284,17 @@ our %unified_info = ( "doc/man/man7/EVP_PKEY-EC.7", "doc/man/man7/EVP_PKEY-FFC.7", "doc/man/man7/EVP_PKEY-HMAC.7", + "doc/man/man7/EVP_PKEY-ML-DSA.7", + "doc/man/man7/EVP_PKEY-ML-KEM.7", "doc/man/man7/EVP_PKEY-RSA.7", + "doc/man/man7/EVP_PKEY-SLH-DSA.7", "doc/man/man7/EVP_PKEY-SM2.7", "doc/man/man7/EVP_PKEY-X25519.7", + "doc/man/man7/EVP_RAND-CRNG-TEST.7", "doc/man/man7/EVP_RAND-CTR-DRBG.7", "doc/man/man7/EVP_RAND-HASH-DRBG.7", "doc/man/man7/EVP_RAND-HMAC-DRBG.7", + "doc/man/man7/EVP_RAND-JITTER.7", "doc/man/man7/EVP_RAND-SEED-SRC.7", "doc/man/man7/EVP_RAND-TEST-RAND.7", "doc/man/man7/EVP_RAND.7", @@ -19998,17 +23302,19 @@ our %unified_info = ( "doc/man/man7/EVP_SIGNATURE-ECDSA.7", "doc/man/man7/EVP_SIGNATURE-ED25519.7", "doc/man/man7/EVP_SIGNATURE-HMAC.7", + "doc/man/man7/EVP_SIGNATURE-ML-DSA.7", "doc/man/man7/EVP_SIGNATURE-RSA.7", + "doc/man/man7/EVP_SIGNATURE-SLH-DSA.7", "doc/man/man7/OSSL_PROVIDER-FIPS.7", "doc/man/man7/OSSL_PROVIDER-base.7", "doc/man/man7/OSSL_PROVIDER-default.7", "doc/man/man7/OSSL_PROVIDER-legacy.7", "doc/man/man7/OSSL_PROVIDER-null.7", + "doc/man/man7/OSSL_STORE-winstore.7", "doc/man/man7/RAND.7", "doc/man/man7/RSA-PSS.7", "doc/man/man7/X25519.7", "doc/man/man7/bio.7", - "doc/man/man7/crypto.7", "doc/man/man7/ct.7", "doc/man/man7/des_modes.7", "doc/man/man7/evp.7", @@ -20019,14 +23325,31 @@ our %unified_info = ( "doc/man/man7/life_cycle-mac.7", "doc/man/man7/life_cycle-pkey.7", "doc/man/man7/life_cycle-rand.7", - "doc/man/man7/migration_guide.7", "doc/man/man7/openssl-core.h.7", "doc/man/man7/openssl-core_dispatch.h.7", "doc/man/man7/openssl-core_names.h.7", "doc/man/man7/openssl-env.7", "doc/man/man7/openssl-glossary.7", + "doc/man/man7/openssl-qlog.7", + "doc/man/man7/openssl-quic-concurrency.7", + "doc/man/man7/openssl-quic.7", "doc/man/man7/openssl-threads.7", "doc/man/man7/openssl_user_macros.7", + "doc/man/man7/ossl-guide-introduction.7", + "doc/man/man7/ossl-guide-libcrypto-introduction.7", + "doc/man/man7/ossl-guide-libraries-introduction.7", + "doc/man/man7/ossl-guide-libssl-introduction.7", + "doc/man/man7/ossl-guide-migration.7", + "doc/man/man7/ossl-guide-quic-client-block.7", + "doc/man/man7/ossl-guide-quic-client-non-block.7", + "doc/man/man7/ossl-guide-quic-introduction.7", + "doc/man/man7/ossl-guide-quic-multi-stream.7", + "doc/man/man7/ossl-guide-quic-server-block.7", + "doc/man/man7/ossl-guide-quic-server-non-block.7", + "doc/man/man7/ossl-guide-tls-client-block.7", + "doc/man/man7/ossl-guide-tls-client-non-block.7", + "doc/man/man7/ossl-guide-tls-introduction.7", + "doc/man/man7/ossl-guide-tls-server-block.7", "doc/man/man7/ossl_store-file.7", "doc/man/man7/ossl_store.7", "doc/man/man7/passphrase-encoding.7", @@ -20045,10 +23368,10 @@ our %unified_info = ( "doc/man/man7/provider-object.7", "doc/man/man7/provider-rand.7", "doc/man/man7/provider-signature.7", + "doc/man/man7/provider-skeymgmt.7", "doc/man/man7/provider-storemgmt.7", "doc/man/man7/provider.7", "doc/man/man7/proxy-certificates.7", - "doc/man/man7/ssl.7", "doc/man/man7/x509.7" ] }, @@ -20060,6 +23383,7 @@ our %unified_info = ( ], "programs" => [ "apps/openssl", + "fuzz/acert-test", "fuzz/asn1-test", "fuzz/asn1parse-test", "fuzz/bignum-test", @@ -20070,7 +23394,24 @@ our %unified_info = ( "fuzz/conf-test", "fuzz/crl-test", "fuzz/ct-test", + "fuzz/decoder-test", + "fuzz/dtlsclient-test", + "fuzz/dtlsserver-test", + "fuzz/hashtable-test", + "fuzz/ml-dsa-test", + "fuzz/ml-kem-test", + "fuzz/pem-test", + "fuzz/provider-test", + "fuzz/punycode-test", + "fuzz/quic-client-test", + "fuzz/quic-lcidm-test", + "fuzz/quic-rcidm-test", + "fuzz/quic-server-test", + "fuzz/quic-srtm-test", "fuzz/server-test", + "fuzz/slh-dsa-test", + "fuzz/smime-test", + "fuzz/v3name-test", "fuzz/x509-test", "test/aborttest", "test/acvp_test", @@ -20088,21 +23429,28 @@ our %unified_info = ( "test/asynctest", "test/bad_dtls_test", "test/bftest", + "test/bio_addr_test", + "test/bio_base64_test", "test/bio_callback_test", "test/bio_core_test", + "test/bio_dgram_test", "test/bio_enc_test", "test/bio_memleak_test", + "test/bio_meth_test", "test/bio_prefix_text", "test/bio_pw_callback_test", "test/bio_readbuffer_test", + "test/bio_tfo_test", "test/bioprinttest", "test/bn_internal_test", "test/bntest", + "test/build_wincrypt_test", "test/buildtest_c_aes", "test/buildtest_c_async", "test/buildtest_c_blowfish", "test/buildtest_c_bn", "test/buildtest_c_buffer", + "test/buildtest_c_byteorder", "test/buildtest_c_camellia", "test/buildtest_c_cast", "test/buildtest_c_cmac", @@ -20111,7 +23459,6 @@ our %unified_info = ( "test/buildtest_c_conftypes", "test/buildtest_c_core", "test/buildtest_c_core_dispatch", - "test/buildtest_c_core_names", "test/buildtest_c_core_object", "test/buildtest_c_cryptoerr_legacy", "test/buildtest_c_decoder", @@ -20120,6 +23467,7 @@ our %unified_info = ( "test/buildtest_c_dsa", "test/buildtest_c_dtls1", "test/buildtest_c_e_os2", + "test/buildtest_c_e_ostime", "test/buildtest_c_ebcdic", "test/buildtest_c_ec", "test/buildtest_c_ecdh", @@ -20129,13 +23477,16 @@ our %unified_info = ( "test/buildtest_c_evp", "test/buildtest_c_fips_names", "test/buildtest_c_hmac", + "test/buildtest_c_hpke", "test/buildtest_c_http", "test/buildtest_c_idea", + "test/buildtest_c_indicator", "test/buildtest_c_kdf", "test/buildtest_c_macros", "test/buildtest_c_md4", "test/buildtest_c_md5", "test/buildtest_c_mdc2", + "test/buildtest_c_ml_kem", "test/buildtest_c_modes", "test/buildtest_c_obj_mac", "test/buildtest_c_objects", @@ -20146,6 +23497,7 @@ our %unified_info = ( "test/buildtest_c_pem2", "test/buildtest_c_prov_ssl", "test/buildtest_c_provider", + "test/buildtest_c_quic", "test/buildtest_c_rand", "test/buildtest_c_rc2", "test/buildtest_c_rc4", @@ -20160,11 +23512,14 @@ our %unified_info = ( "test/buildtest_c_stack", "test/buildtest_c_store", "test/buildtest_c_symhacks", + "test/buildtest_c_thread", "test/buildtest_c_tls1", "test/buildtest_c_ts", "test/buildtest_c_txt_db", "test/buildtest_c_types", "test/buildtest_c_whrlpool", + "test/byteorder_test", + "test/ca_internals_test", "test/casttest", "test/chacha_internal_test", "test/cipher_overhead_test", @@ -20193,6 +23548,7 @@ our %unified_info = ( "test/curve448_internal_test", "test/d2i_test", "test/danetest", + "test/decoder_propq_test", "test/defltfips_test", "test/destest", "test/dhtest", @@ -20217,9 +23573,12 @@ our %unified_info = ( "test/evp_kdf_test", "test/evp_libctx_test", "test/evp_pkey_ctx_new_from_name", + "test/evp_pkey_dhkem_test", "test/evp_pkey_dparams_test", "test/evp_pkey_provided_test", + "test/evp_skey_test", "test/evp_test", + "test/evp_xof_test", "test/exdatatest", "test/exptest", "test/ext_internal_test", @@ -20229,21 +23588,29 @@ our %unified_info = ( "test/gmdifftest", "test/hexstr_test", "test/hmactest", + "test/hpke_test", "test/http_test", "test/ideatest", "test/igetest", + "test/json_test", "test/keymgmt_internal_test", "test/lhash_test", + "test/list_test", "test/localetest", "test/mdc2_internal_test", "test/mdc2test", + "test/membio_test", "test/memleaktest", + "test/ml_dsa_test", + "test/ml_kem_evp_extra_test", + "test/ml_kem_internal_test", "test/modes_internal_test", "test/namemap_internal_test", "test/nodefltctxtest", "test/ocspapitest", "test/ossl_store_test", "test/packettest", + "test/pairwise_fail_test", "test/param_build_test", "test/params_api_test", "test/params_conversion_test", @@ -20252,36 +23619,65 @@ our %unified_info = ( "test/pbetest", "test/pem_read_depr_test", "test/pemtest", + "test/pkcs12_api_test", "test/pkcs12_format_test", "test/pkcs7_test", "test/pkey_meth_kdf_test", "test/pkey_meth_test", "test/poly1305_internal_test", + "test/priority_queue_test", "test/property_test", "test/prov_config_test", "test/provfetchtest", + "test/provider_default_search_path_test", "test/provider_fallback_test", "test/provider_internal_test", "test/provider_pkey_test", "test/provider_status_test", "test/provider_test", "test/punycode_test", + "test/quic_ackm_test", + "test/quic_cc_test", + "test/quic_cfq_test", + "test/quic_client_test", + "test/quic_fc_test", + "test/quic_fifd_test", + "test/quic_lcidm_test", + "test/quic_multistream_test", + "test/quic_newcid_test", + "test/quic_qlog_test", + "test/quic_radix_test", + "test/quic_rcidm_test", + "test/quic_record_test", + "test/quic_srt_gen_test", + "test/quic_srtm_test", + "test/quic_stream_test", + "test/quic_tserver_test", + "test/quic_txp_test", + "test/quic_txpim_test", + "test/quic_wire_test", + "test/quicapitest", + "test/quicfaultstest", "test/rand_status_test", "test/rand_test", "test/rc2test", "test/rc4test", "test/rc5test", - "test/rdrand_sanitytest", + "test/rdcpu_sanitytest", "test/recordlentest", + "test/rpktest", "test/rsa_complex", "test/rsa_mp_test", "test/rsa_sp800_56b_test", "test/rsa_test", + "test/rsa_x931_test", + "test/safe_math_test", "test/sanitytest", "test/secmemtest", "test/servername_test", "test/sha_test", "test/siphash_internal_test", + "test/slh_dsa_test", "test/sm2_internal_test", "test/sm3_internal_test", "test/sm4_internal_test", @@ -20289,6 +23685,7 @@ our %unified_info = ( "test/srptest", "test/ssl_cert_table_internal_test", "test/ssl_ctx_test", + "test/ssl_handshake_rtt_test", "test/ssl_old_test", "test/ssl_test", "test/ssl_test_ctx_test", @@ -20296,13 +23693,17 @@ our %unified_info = ( "test/sslbuffertest", "test/sslcorrupttest", "test/stack_test", + "test/strtoultest", "test/sysdefaulttest", "test/test_test", + "test/threadpool_test", "test/threadstest", "test/threadstest_fips", "test/time_offset_test", + "test/time_test", "test/tls13ccstest", "test/tls13encryptiontest", + "test/tls13groupselection_test", "test/trace_api_test", "test/uitest", "test/upcallstest", @@ -20312,9 +23713,13 @@ our %unified_info = ( "test/verify_extra_test", "test/versions", "test/wpackettest", + "test/x509_acert_test", "test/x509_check_cert_pkey_test", "test/x509_dup_cert_test", "test/x509_internal_test", + "test/x509_load_cert_file_test", + "test/x509_req_test", + "test/x509_test", "test/x509_time_test", "test/x509aux" ], @@ -20330,6 +23735,33 @@ our %unified_info = ( "apps/CA.pl" => [ "apps/CA.pl.in" ], + "apps/ca_internals_test-bin-ca.o" => [ + "apps/ca.c" + ], + "apps/lib/ca_internals_test-bin-app_libctx.o" => [ + "apps/lib/app_libctx.c" + ], + "apps/lib/ca_internals_test-bin-app_provider.o" => [ + "apps/lib/app_provider.c" + ], + "apps/lib/ca_internals_test-bin-app_rand.o" => [ + "apps/lib/app_rand.c" + ], + "apps/lib/ca_internals_test-bin-app_x509.o" => [ + "apps/lib/app_x509.c" + ], + "apps/lib/ca_internals_test-bin-apps.o" => [ + "apps/lib/apps.c" + ], + "apps/lib/ca_internals_test-bin-apps_ui.o" => [ + "apps/lib/apps_ui.c" + ], + "apps/lib/ca_internals_test-bin-engine.o" => [ + "apps/lib/engine.c" + ], + "apps/lib/ca_internals_test-bin-fmt.o" => [ + "apps/lib/fmt.c" + ], "apps/lib/cmp_client_test-bin-cmp_mock_srv.o" => [ "apps/lib/cmp_mock_srv.c" ], @@ -20351,6 +23783,9 @@ our %unified_info = ( "apps/lib/libapps-lib-apps.o" => [ "apps/lib/apps.c" ], + "apps/lib/libapps-lib-apps_opt_printf.o" => [ + "apps/lib/apps_opt_printf.c" + ], "apps/lib/libapps-lib-apps_ui.o" => [ "apps/lib/apps_ui.c" ], @@ -20369,6 +23804,9 @@ our %unified_info = ( "apps/lib/libapps-lib-http_server.o" => [ "apps/lib/http_server.c" ], + "apps/lib/libapps-lib-log.o" => [ + "apps/lib/log.c" + ], "apps/lib/libapps-lib-names.o" => [ "apps/lib/names.c" ], @@ -20400,12 +23838,14 @@ our %unified_info = ( "apps/lib/libapps-lib-app_rand.o", "apps/lib/libapps-lib-app_x509.o", "apps/lib/libapps-lib-apps.o", + "apps/lib/libapps-lib-apps_opt_printf.o", "apps/lib/libapps-lib-apps_ui.o", "apps/lib/libapps-lib-columns.o", "apps/lib/libapps-lib-engine.o", "apps/lib/libapps-lib-engine_loader.o", "apps/lib/libapps-lib-fmt.o", "apps/lib/libapps-lib-http_server.o", + "apps/lib/libapps-lib-log.o", "apps/lib/libapps-lib-names.o", "apps/lib/libapps-lib-opt.o", "apps/lib/libapps-lib-s_cb.o", @@ -20459,6 +23899,7 @@ our %unified_info = ( "apps/openssl-bin-s_server.o", "apps/openssl-bin-s_time.o", "apps/openssl-bin-sess_id.o", + "apps/openssl-bin-skeyutl.o", "apps/openssl-bin-smime.o", "apps/openssl-bin-speed.o", "apps/openssl-bin-spkac.o", @@ -20604,6 +24045,9 @@ our %unified_info = ( "apps/openssl-bin-sess_id.o" => [ "apps/sess_id.c" ], + "apps/openssl-bin-skeyutl.o" => [ + "apps/skeyutl.c" + ], "apps/openssl-bin-smime.o" => [ "apps/smime.c" ], @@ -20673,6 +24117,12 @@ our %unified_info = ( "crypto/aria/libcrypto-lib-aria.o" => [ "crypto/aria/aria.c" ], + "crypto/asn1/asn1_time_test-bin-a_time.o" => [ + "crypto/asn1/a_time.c" + ], + "crypto/asn1/ca_internals_test-bin-a_time.o" => [ + "crypto/asn1/a_time.c" + ], "crypto/asn1/libcrypto-lib-a_bitstr.o" => [ "crypto/asn1/a_bitstr.c" ], @@ -20865,6 +24315,9 @@ our %unified_info = ( "crypto/asn1/libcrypto-lib-x_val.o" => [ "crypto/asn1/x_val.c" ], + "crypto/asn1_time_test-bin-ctype.o" => [ + "crypto/ctype.c" + ], "crypto/async/arch/libcrypto-lib-async_null.o" => [ "crypto/async/arch/async_null.c" ], @@ -20958,6 +24411,9 @@ our %unified_info = ( "crypto/bio/libcrypto-lib-bss_dgram.o" => [ "crypto/bio/bss_dgram.c" ], + "crypto/bio/libcrypto-lib-bss_dgram_pair.o" => [ + "crypto/bio/bss_dgram_pair.c" + ], "crypto/bio/libcrypto-lib-bss_fd.o" => [ "crypto/bio/bss_fd.c" ], @@ -21171,6 +24627,9 @@ our %unified_info = ( "crypto/buffer/libfips-lib-buffer.o" => [ "crypto/buffer/buffer.c" ], + "crypto/ca_internals_test-bin-ctype.o" => [ + "crypto/ctype.c" + ], "crypto/camellia/libcrypto-lib-camellia.o" => [ "crypto/camellia/camellia.c" ], @@ -21228,6 +24687,9 @@ our %unified_info = ( "crypto/cmp/libcrypto-lib-cmp_err.o" => [ "crypto/cmp/cmp_err.c" ], + "crypto/cmp/libcrypto-lib-cmp_genm.o" => [ + "crypto/cmp/cmp_genm.c" + ], "crypto/cmp/libcrypto-lib-cmp_hdr.o" => [ "crypto/cmp/cmp_hdr.c" ], @@ -21903,9 +25365,15 @@ our %unified_info = ( "crypto/err/libcrypto-lib-err_blocks.o" => [ "crypto/err/err_blocks.c" ], + "crypto/err/libcrypto-lib-err_mark.o" => [ + "crypto/err/err_mark.c" + ], "crypto/err/libcrypto-lib-err_prn.o" => [ "crypto/err/err_prn.c" ], + "crypto/err/libcrypto-lib-err_save.o" => [ + "crypto/err/err_save.c" + ], "crypto/ess/libcrypto-lib-ess_asn1.o" => [ "crypto/ess/ess_asn1.c" ], @@ -22152,9 +25620,15 @@ our %unified_info = ( "crypto/evp/libcrypto-lib-pmeth_lib.o" => [ "crypto/evp/pmeth_lib.c" ], + "crypto/evp/libcrypto-lib-s_lib.o" => [ + "crypto/evp/s_lib.c" + ], "crypto/evp/libcrypto-lib-signature.o" => [ "crypto/evp/signature.c" ], + "crypto/evp/libcrypto-lib-skeymgmt_meth.o" => [ + "crypto/evp/skeymgmt_meth.c" + ], "crypto/evp/libfips-lib-asymcipher.o" => [ "crypto/evp/asymcipher.c" ], @@ -22200,9 +25674,6 @@ our %unified_info = ( "crypto/evp/libfips-lib-keymgmt_meth.o" => [ "crypto/evp/keymgmt_meth.c" ], - "crypto/evp/libfips-lib-m_sigver.o" => [ - "crypto/evp/m_sigver.c" - ], "crypto/evp/libfips-lib-mac_lib.o" => [ "crypto/evp/mac_lib.c" ], @@ -22221,9 +25692,15 @@ our %unified_info = ( "crypto/evp/libfips-lib-pmeth_lib.o" => [ "crypto/evp/pmeth_lib.c" ], + "crypto/evp/libfips-lib-s_lib.o" => [ + "crypto/evp/s_lib.c" + ], "crypto/evp/libfips-lib-signature.o" => [ "crypto/evp/signature.c" ], + "crypto/evp/libfips-lib-skeymgmt_meth.o" => [ + "crypto/evp/skeymgmt_meth.c" + ], "crypto/ffc/libcrypto-lib-ffc_backend.o" => [ "crypto/ffc/ffc_backend.c" ], @@ -22266,12 +25743,30 @@ our %unified_info = ( "crypto/ffc/libfips-lib-ffc_params_validate.o" => [ "crypto/ffc/ffc_params_validate.c" ], + "crypto/hashtable/libcrypto-lib-hashfunc.o" => [ + "crypto/hashtable/hashfunc.c" + ], + "crypto/hashtable/libcrypto-lib-hashtable.o" => [ + "crypto/hashtable/hashtable.c" + ], + "crypto/hashtable/libfips-lib-hashfunc.o" => [ + "crypto/hashtable/hashfunc.c" + ], + "crypto/hashtable/libfips-lib-hashtable.o" => [ + "crypto/hashtable/hashtable.c" + ], "crypto/hmac/libcrypto-lib-hmac.o" => [ "crypto/hmac/hmac.c" ], "crypto/hmac/libfips-lib-hmac.o" => [ "crypto/hmac/hmac.c" ], + "crypto/hpke/libcrypto-lib-hpke.o" => [ + "crypto/hpke/hpke.c" + ], + "crypto/hpke/libcrypto-lib-hpke_util.o" => [ + "crypto/hpke/hpke_util.c" + ], "crypto/http/libcrypto-lib-http_client.o" => [ "crypto/http/http_client.c" ], @@ -22314,6 +25809,9 @@ our %unified_info = ( "crypto/libcrypto-lib-bsearch.o" => [ "crypto/bsearch.c" ], + "crypto/libcrypto-lib-comp_methods.o" => [ + "crypto/comp_methods.c" + ], "crypto/libcrypto-lib-context.o" => [ "crypto/context.c" ], @@ -22341,9 +25839,15 @@ our %unified_info = ( "crypto/libcrypto-lib-cversion.o" => [ "crypto/cversion.c" ], + "crypto/libcrypto-lib-defaults.o" => [ + "crypto/defaults.c" + ], "crypto/libcrypto-lib-der_writer.o" => [ "crypto/der_writer.c" ], + "crypto/libcrypto-lib-deterministic_nonce.o" => [ + "crypto/deterministic_nonce.c" + ], "crypto/libcrypto-lib-ebcdic.o" => [ "crypto/ebcdic.c" ], @@ -22353,6 +25857,9 @@ our %unified_info = ( "crypto/libcrypto-lib-getenv.o" => [ "crypto/getenv.c" ], + "crypto/libcrypto-lib-indicator_core.o" => [ + "crypto/indicator_core.c" + ], "crypto/libcrypto-lib-info.o" => [ "crypto/info.c" ], @@ -22404,6 +25911,9 @@ our %unified_info = ( "crypto/libcrypto-lib-params_from_text.o" => [ "crypto/params_from_text.c" ], + "crypto/libcrypto-lib-params_idx.o" => [ + "crypto/params_idx.c" + ], "crypto/libcrypto-lib-passphrase.o" => [ "crypto/passphrase.c" ], @@ -22425,12 +25935,21 @@ our %unified_info = ( "crypto/libcrypto-lib-punycode.o" => [ "crypto/punycode.c" ], + "crypto/libcrypto-lib-quic_vlint.o" => [ + "crypto/quic_vlint.c" + ], "crypto/libcrypto-lib-self_test_core.o" => [ "crypto/self_test_core.c" ], + "crypto/libcrypto-lib-sleep.o" => [ + "crypto/sleep.c" + ], "crypto/libcrypto-lib-sparse_array.o" => [ "crypto/sparse_array.c" ], + "crypto/libcrypto-lib-ssl_err.o" => [ + "crypto/ssl_err.c" + ], "crypto/libcrypto-lib-threads_lib.o" => [ "crypto/threads_lib.c" ], @@ -22443,6 +25962,9 @@ our %unified_info = ( "crypto/libcrypto-lib-threads_win.o" => [ "crypto/threads_win.c" ], + "crypto/libcrypto-lib-time.o" => [ + "crypto/time.c" + ], "crypto/libcrypto-lib-trace.o" => [ "crypto/trace.c" ], @@ -22509,6 +26031,9 @@ our %unified_info = ( "crypto/libfips-lib-params_from_text.o" => [ "crypto/params_from_text.c" ], + "crypto/libfips-lib-params_idx.o" => [ + "crypto/params_idx.c" + ], "crypto/libfips-lib-provider_core.o" => [ "crypto/provider_core.c" ], @@ -22533,6 +26058,9 @@ our %unified_info = ( "crypto/libfips-lib-threads_win.o" => [ "crypto/threads_win.c" ], + "crypto/libfips-lib-time.o" => [ + "crypto/time.c" + ], "crypto/md4/libcrypto-lib-md4_dgst.o" => [ "crypto/md4/md4_dgst.c" ], @@ -22554,6 +26082,60 @@ our %unified_info = ( "crypto/mdc2/libcrypto-lib-mdc2dgst.o" => [ "crypto/mdc2/mdc2dgst.c" ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_encoders.o" => [ + "crypto/ml_dsa/ml_dsa_encoders.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key.o" => [ + "crypto/ml_dsa/ml_dsa_key.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key_compress.o" => [ + "crypto/ml_dsa/ml_dsa_key_compress.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_matrix.o" => [ + "crypto/ml_dsa/ml_dsa_matrix.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_ntt.o" => [ + "crypto/ml_dsa/ml_dsa_ntt.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_params.o" => [ + "crypto/ml_dsa/ml_dsa_params.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sample.o" => [ + "crypto/ml_dsa/ml_dsa_sample.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sign.o" => [ + "crypto/ml_dsa/ml_dsa_sign.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_encoders.o" => [ + "crypto/ml_dsa/ml_dsa_encoders.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_key.o" => [ + "crypto/ml_dsa/ml_dsa_key.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_key_compress.o" => [ + "crypto/ml_dsa/ml_dsa_key_compress.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_matrix.o" => [ + "crypto/ml_dsa/ml_dsa_matrix.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_ntt.o" => [ + "crypto/ml_dsa/ml_dsa_ntt.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_params.o" => [ + "crypto/ml_dsa/ml_dsa_params.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_sample.o" => [ + "crypto/ml_dsa/ml_dsa_sample.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_sign.o" => [ + "crypto/ml_dsa/ml_dsa_sign.c" + ], + "crypto/ml_kem/libcrypto-lib-ml_kem.o" => [ + "crypto/ml_kem/ml_kem.c" + ], + "crypto/ml_kem/libfips-lib-ml_kem.o" => [ + "crypto/ml_kem/ml_kem.c" + ], "crypto/modes/libcrypto-lib-cbc128.o" => [ "crypto/modes/cbc128.c" ], @@ -22587,6 +26169,9 @@ our %unified_info = ( "crypto/modes/libcrypto-lib-xts128.o" => [ "crypto/modes/xts128.c" ], + "crypto/modes/libcrypto-lib-xts128gb.o" => [ + "crypto/modes/xts128gb.c" + ], "crypto/modes/libfips-lib-cbc128.o" => [ "crypto/modes/cbc128.c" ], @@ -22611,6 +26196,9 @@ our %unified_info = ( "crypto/modes/libfips-lib-xts128.o" => [ "crypto/modes/xts128.c" ], + "crypto/modes/libfips-lib-xts128gb.o" => [ + "crypto/modes/xts128gb.c" + ], "crypto/objects/libcrypto-lib-o_names.o" => [ "crypto/objects/o_names.c" ], @@ -22656,6 +26244,9 @@ our %unified_info = ( "crypto/ocsp/libcrypto-lib-v3_ocsp.o" => [ "crypto/ocsp/v3_ocsp.c" ], + "crypto/packettest-bin-quic_vlint.o" => [ + "crypto/quic_vlint.c" + ], "crypto/pem/libcrypto-lib-pem_all.o" => [ "crypto/pem/pem_all.c" ], @@ -22815,6 +26406,9 @@ our %unified_info = ( "crypto/rand/libcrypto-lib-rand_pool.o" => [ "crypto/rand/rand_pool.c" ], + "crypto/rand/libcrypto-lib-rand_uniform.o" => [ + "crypto/rand/rand_uniform.c" + ], "crypto/rand/libcrypto-lib-randfile.o" => [ "crypto/rand/randfile.c" ], @@ -23028,6 +26622,66 @@ our %unified_info = ( "crypto/siphash/libcrypto-lib-siphash.o" => [ "crypto/siphash/siphash.c" ], + "crypto/slh_dsa/libcrypto-lib-slh_adrs.o" => [ + "crypto/slh_dsa/slh_adrs.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_dsa.o" => [ + "crypto/slh_dsa/slh_dsa.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_dsa_hash_ctx.o" => [ + "crypto/slh_dsa/slh_dsa_hash_ctx.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_dsa_key.o" => [ + "crypto/slh_dsa/slh_dsa_key.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_fors.o" => [ + "crypto/slh_dsa/slh_fors.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_hash.o" => [ + "crypto/slh_dsa/slh_hash.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_hypertree.o" => [ + "crypto/slh_dsa/slh_hypertree.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_params.o" => [ + "crypto/slh_dsa/slh_params.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_wots.o" => [ + "crypto/slh_dsa/slh_wots.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_xmss.o" => [ + "crypto/slh_dsa/slh_xmss.c" + ], + "crypto/slh_dsa/libfips-lib-slh_adrs.o" => [ + "crypto/slh_dsa/slh_adrs.c" + ], + "crypto/slh_dsa/libfips-lib-slh_dsa.o" => [ + "crypto/slh_dsa/slh_dsa.c" + ], + "crypto/slh_dsa/libfips-lib-slh_dsa_hash_ctx.o" => [ + "crypto/slh_dsa/slh_dsa_hash_ctx.c" + ], + "crypto/slh_dsa/libfips-lib-slh_dsa_key.o" => [ + "crypto/slh_dsa/slh_dsa_key.c" + ], + "crypto/slh_dsa/libfips-lib-slh_fors.o" => [ + "crypto/slh_dsa/slh_fors.c" + ], + "crypto/slh_dsa/libfips-lib-slh_hash.o" => [ + "crypto/slh_dsa/slh_hash.c" + ], + "crypto/slh_dsa/libfips-lib-slh_hypertree.o" => [ + "crypto/slh_dsa/slh_hypertree.c" + ], + "crypto/slh_dsa/libfips-lib-slh_params.o" => [ + "crypto/slh_dsa/slh_params.c" + ], + "crypto/slh_dsa/libfips-lib-slh_wots.o" => [ + "crypto/slh_dsa/slh_wots.c" + ], + "crypto/slh_dsa/libfips-lib-slh_xmss.o" => [ + "crypto/slh_dsa/slh_xmss.c" + ], "crypto/sm2/libcrypto-lib-sm2_crypt.o" => [ "crypto/sm2/sm2_crypt.c" ], @@ -23082,6 +26736,42 @@ our %unified_info = ( "crypto/store/libcrypto-lib-store_strings.o" => [ "crypto/store/store_strings.c" ], + "crypto/thread/arch/libcrypto-lib-thread_none.o" => [ + "crypto/thread/arch/thread_none.c" + ], + "crypto/thread/arch/libcrypto-lib-thread_posix.o" => [ + "crypto/thread/arch/thread_posix.c" + ], + "crypto/thread/arch/libcrypto-lib-thread_win.o" => [ + "crypto/thread/arch/thread_win.c" + ], + "crypto/thread/arch/libfips-lib-thread_none.o" => [ + "crypto/thread/arch/thread_none.c" + ], + "crypto/thread/arch/libfips-lib-thread_posix.o" => [ + "crypto/thread/arch/thread_posix.c" + ], + "crypto/thread/arch/libfips-lib-thread_win.o" => [ + "crypto/thread/arch/thread_win.c" + ], + "crypto/thread/libcrypto-lib-api.o" => [ + "crypto/thread/api.c" + ], + "crypto/thread/libcrypto-lib-arch.o" => [ + "crypto/thread/arch.c" + ], + "crypto/thread/libcrypto-lib-internal.o" => [ + "crypto/thread/internal.c" + ], + "crypto/thread/libfips-lib-api.o" => [ + "crypto/thread/api.c" + ], + "crypto/thread/libfips-lib-arch.o" => [ + "crypto/thread/arch.c" + ], + "crypto/thread/libfips-lib-internal.o" => [ + "crypto/thread/internal.c" + ], "crypto/ts/libcrypto-lib-ts_asn1.o" => [ "crypto/ts/ts_asn1.c" ], @@ -23166,6 +26856,9 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-pcy_tree.o" => [ "crypto/x509/pcy_tree.c" ], + "crypto/x509/libcrypto-lib-t_acert.o" => [ + "crypto/x509/t_acert.c" + ], "crypto/x509/libcrypto-lib-t_crl.o" => [ "crypto/x509/t_crl.c" ], @@ -23175,6 +26868,12 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-t_x509.o" => [ "crypto/x509/t_x509.c" ], + "crypto/x509/libcrypto-lib-v3_aaa.o" => [ + "crypto/x509/v3_aaa.c" + ], + "crypto/x509/libcrypto-lib-v3_ac_tgt.o" => [ + "crypto/x509/v3_ac_tgt.c" + ], "crypto/x509/libcrypto-lib-v3_addr.o" => [ "crypto/x509/v3_addr.c" ], @@ -23190,6 +26889,21 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_asid.o" => [ "crypto/x509/v3_asid.c" ], + "crypto/x509/libcrypto-lib-v3_attrdesc.o" => [ + "crypto/x509/v3_attrdesc.c" + ], + "crypto/x509/libcrypto-lib-v3_attrmap.o" => [ + "crypto/x509/v3_attrmap.c" + ], + "crypto/x509/libcrypto-lib-v3_audit_id.o" => [ + "crypto/x509/v3_audit_id.c" + ], + "crypto/x509/libcrypto-lib-v3_authattid.o" => [ + "crypto/x509/v3_authattid.c" + ], + "crypto/x509/libcrypto-lib-v3_battcons.o" => [ + "crypto/x509/v3_battcons.c" + ], "crypto/x509/libcrypto-lib-v3_bcons.o" => [ "crypto/x509/v3_bcons.c" ], @@ -23214,15 +26928,24 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_genn.o" => [ "crypto/x509/v3_genn.c" ], + "crypto/x509/libcrypto-lib-v3_group_ac.o" => [ + "crypto/x509/v3_group_ac.c" + ], "crypto/x509/libcrypto-lib-v3_ia5.o" => [ "crypto/x509/v3_ia5.c" ], + "crypto/x509/libcrypto-lib-v3_ind_iss.o" => [ + "crypto/x509/v3_ind_iss.c" + ], "crypto/x509/libcrypto-lib-v3_info.o" => [ "crypto/x509/v3_info.c" ], "crypto/x509/libcrypto-lib-v3_int.o" => [ "crypto/x509/v3_int.c" ], + "crypto/x509/libcrypto-lib-v3_iobo.o" => [ + "crypto/x509/v3_iobo.c" + ], "crypto/x509/libcrypto-lib-v3_ist.o" => [ "crypto/x509/v3_ist.c" ], @@ -23232,6 +26955,12 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_ncons.o" => [ "crypto/x509/v3_ncons.c" ], + "crypto/x509/libcrypto-lib-v3_no_ass.o" => [ + "crypto/x509/v3_no_ass.c" + ], + "crypto/x509/libcrypto-lib-v3_no_rev_avail.o" => [ + "crypto/x509/v3_no_rev_avail.c" + ], "crypto/x509/libcrypto-lib-v3_pci.o" => [ "crypto/x509/v3_pci.c" ], @@ -23253,18 +26982,36 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_purp.o" => [ "crypto/x509/v3_purp.c" ], + "crypto/x509/libcrypto-lib-v3_rolespec.o" => [ + "crypto/x509/v3_rolespec.c" + ], "crypto/x509/libcrypto-lib-v3_san.o" => [ "crypto/x509/v3_san.c" ], + "crypto/x509/libcrypto-lib-v3_sda.o" => [ + "crypto/x509/v3_sda.c" + ], + "crypto/x509/libcrypto-lib-v3_single_use.o" => [ + "crypto/x509/v3_single_use.c" + ], "crypto/x509/libcrypto-lib-v3_skid.o" => [ "crypto/x509/v3_skid.c" ], + "crypto/x509/libcrypto-lib-v3_soa_id.o" => [ + "crypto/x509/v3_soa_id.c" + ], "crypto/x509/libcrypto-lib-v3_sxnet.o" => [ "crypto/x509/v3_sxnet.c" ], + "crypto/x509/libcrypto-lib-v3_timespec.o" => [ + "crypto/x509/v3_timespec.c" + ], "crypto/x509/libcrypto-lib-v3_tlsf.o" => [ "crypto/x509/v3_tlsf.c" ], + "crypto/x509/libcrypto-lib-v3_usernotice.o" => [ + "crypto/x509/v3_usernotice.c" + ], "crypto/x509/libcrypto-lib-v3_utf8.o" => [ "crypto/x509/v3_utf8.c" ], @@ -23274,6 +27021,9 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3err.o" => [ "crypto/x509/v3err.c" ], + "crypto/x509/libcrypto-lib-x509_acert.o" => [ + "crypto/x509/x509_acert.c" + ], "crypto/x509/libcrypto-lib-x509_att.o" => [ "crypto/x509/x509_att.c" ], @@ -23325,6 +27075,9 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x509_vpm.o" => [ "crypto/x509/x509_vpm.c" ], + "crypto/x509/libcrypto-lib-x509aset.o" => [ + "crypto/x509/x509aset.c" + ], "crypto/x509/libcrypto-lib-x509cset.o" => [ "crypto/x509/x509cset.c" ], @@ -23352,6 +27105,9 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x_exten.o" => [ "crypto/x509/x_exten.c" ], + "crypto/x509/libcrypto-lib-x_ietfatt.o" => [ + "crypto/x509/x_ietfatt.c" + ], "crypto/x509/libcrypto-lib-x_name.o" => [ "crypto/x509/x_name.c" ], @@ -23373,6 +27129,16 @@ our %unified_info = ( "engines/libcrypto-lib-e_padlock.o" => [ "engines/e_padlock.c" ], + "fuzz/acert-test" => [ + "fuzz/acert-test-bin-acert.o", + "fuzz/acert-test-bin-test-corpus.o" + ], + "fuzz/acert-test-bin-acert.o" => [ + "fuzz/acert.c" + ], + "fuzz/acert-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], "fuzz/asn1-test" => [ "fuzz/asn1-test-bin-asn1.o", "fuzz/asn1-test-bin-fuzz_rand.o", @@ -23485,6 +27251,190 @@ our %unified_info = ( "fuzz/ct-test-bin-test-corpus.o" => [ "fuzz/test-corpus.c" ], + "fuzz/decoder-test" => [ + "fuzz/decoder-test-bin-decoder.o", + "fuzz/decoder-test-bin-fuzz_rand.o", + "fuzz/decoder-test-bin-test-corpus.o" + ], + "fuzz/decoder-test-bin-decoder.o" => [ + "fuzz/decoder.c" + ], + "fuzz/decoder-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/decoder-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/dtlsclient-test" => [ + "fuzz/dtlsclient-test-bin-dtlsclient.o", + "fuzz/dtlsclient-test-bin-fuzz_rand.o", + "fuzz/dtlsclient-test-bin-test-corpus.o" + ], + "fuzz/dtlsclient-test-bin-dtlsclient.o" => [ + "fuzz/dtlsclient.c" + ], + "fuzz/dtlsclient-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/dtlsclient-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/dtlsserver-test" => [ + "fuzz/dtlsserver-test-bin-dtlsserver.o", + "fuzz/dtlsserver-test-bin-fuzz_rand.o", + "fuzz/dtlsserver-test-bin-test-corpus.o" + ], + "fuzz/dtlsserver-test-bin-dtlsserver.o" => [ + "fuzz/dtlsserver.c" + ], + "fuzz/dtlsserver-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/dtlsserver-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/hashtable-test" => [ + "fuzz/hashtable-test-bin-fuzz_rand.o", + "fuzz/hashtable-test-bin-hashtable.o", + "fuzz/hashtable-test-bin-test-corpus.o" + ], + "fuzz/hashtable-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/hashtable-test-bin-hashtable.o" => [ + "fuzz/hashtable.c" + ], + "fuzz/hashtable-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/ml-dsa-test" => [ + "fuzz/ml-dsa-test-bin-fuzz_rand.o", + "fuzz/ml-dsa-test-bin-ml-dsa.o", + "fuzz/ml-dsa-test-bin-test-corpus.o" + ], + "fuzz/ml-dsa-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/ml-dsa-test-bin-ml-dsa.o" => [ + "fuzz/ml-dsa.c" + ], + "fuzz/ml-dsa-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/ml-kem-test" => [ + "fuzz/ml-kem-test-bin-fuzz_rand.o", + "fuzz/ml-kem-test-bin-ml-kem.o", + "fuzz/ml-kem-test-bin-test-corpus.o" + ], + "fuzz/ml-kem-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/ml-kem-test-bin-ml-kem.o" => [ + "fuzz/ml-kem.c" + ], + "fuzz/ml-kem-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/pem-test" => [ + "fuzz/pem-test-bin-pem.o", + "fuzz/pem-test-bin-test-corpus.o" + ], + "fuzz/pem-test-bin-pem.o" => [ + "fuzz/pem.c" + ], + "fuzz/pem-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/provider-test" => [ + "fuzz/provider-test-bin-provider.o", + "fuzz/provider-test-bin-test-corpus.o" + ], + "fuzz/provider-test-bin-provider.o" => [ + "fuzz/provider.c" + ], + "fuzz/provider-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/punycode-test" => [ + "fuzz/punycode-test-bin-punycode.o", + "fuzz/punycode-test-bin-test-corpus.o" + ], + "fuzz/punycode-test-bin-punycode.o" => [ + "fuzz/punycode.c" + ], + "fuzz/punycode-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-client-test" => [ + "fuzz/quic-client-test-bin-fuzz_rand.o", + "fuzz/quic-client-test-bin-quic-client.o", + "fuzz/quic-client-test-bin-test-corpus.o" + ], + "fuzz/quic-client-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-client-test-bin-quic-client.o" => [ + "fuzz/quic-client.c" + ], + "fuzz/quic-client-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-lcidm-test" => [ + "fuzz/quic-lcidm-test-bin-fuzz_rand.o", + "fuzz/quic-lcidm-test-bin-quic-lcidm.o", + "fuzz/quic-lcidm-test-bin-test-corpus.o" + ], + "fuzz/quic-lcidm-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-lcidm-test-bin-quic-lcidm.o" => [ + "fuzz/quic-lcidm.c" + ], + "fuzz/quic-lcidm-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-rcidm-test" => [ + "fuzz/quic-rcidm-test-bin-fuzz_rand.o", + "fuzz/quic-rcidm-test-bin-quic-rcidm.o", + "fuzz/quic-rcidm-test-bin-test-corpus.o" + ], + "fuzz/quic-rcidm-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-rcidm-test-bin-quic-rcidm.o" => [ + "fuzz/quic-rcidm.c" + ], + "fuzz/quic-rcidm-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-server-test" => [ + "fuzz/quic-server-test-bin-fuzz_rand.o", + "fuzz/quic-server-test-bin-quic-server.o", + "fuzz/quic-server-test-bin-test-corpus.o" + ], + "fuzz/quic-server-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-server-test-bin-quic-server.o" => [ + "fuzz/quic-server.c" + ], + "fuzz/quic-server-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-srtm-test" => [ + "fuzz/quic-srtm-test-bin-fuzz_rand.o", + "fuzz/quic-srtm-test-bin-quic-srtm.o", + "fuzz/quic-srtm-test-bin-test-corpus.o" + ], + "fuzz/quic-srtm-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-srtm-test-bin-quic-srtm.o" => [ + "fuzz/quic-srtm.c" + ], + "fuzz/quic-srtm-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], "fuzz/server-test" => [ "fuzz/server-test-bin-fuzz_rand.o", "fuzz/server-test-bin-server.o", @@ -23499,6 +27449,40 @@ our %unified_info = ( "fuzz/server-test-bin-test-corpus.o" => [ "fuzz/test-corpus.c" ], + "fuzz/slh-dsa-test" => [ + "fuzz/slh-dsa-test-bin-fuzz_rand.o", + "fuzz/slh-dsa-test-bin-slh-dsa.o", + "fuzz/slh-dsa-test-bin-test-corpus.o" + ], + "fuzz/slh-dsa-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/slh-dsa-test-bin-slh-dsa.o" => [ + "fuzz/slh-dsa.c" + ], + "fuzz/slh-dsa-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/smime-test" => [ + "fuzz/smime-test-bin-smime.o", + "fuzz/smime-test-bin-test-corpus.o" + ], + "fuzz/smime-test-bin-smime.o" => [ + "fuzz/smime.c" + ], + "fuzz/smime-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/v3name-test" => [ + "fuzz/v3name-test-bin-test-corpus.o", + "fuzz/v3name-test-bin-v3name.o" + ], + "fuzz/v3name-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/v3name-test-bin-v3name.o" => [ + "fuzz/v3name.c" + ], "fuzz/x509-test" => [ "fuzz/x509-test-bin-fuzz_rand.o", "fuzz/x509-test-bin-test-corpus.o", @@ -23618,6 +27602,7 @@ our %unified_info = ( "crypto/bio/libcrypto-lib-bss_conn.o", "crypto/bio/libcrypto-lib-bss_core.o", "crypto/bio/libcrypto-lib-bss_dgram.o", + "crypto/bio/libcrypto-lib-bss_dgram_pair.o", "crypto/bio/libcrypto-lib-bss_fd.o", "crypto/bio/libcrypto-lib-bss_file.o", "crypto/bio/libcrypto-lib-bss_log.o", @@ -23678,6 +27663,7 @@ our %unified_info = ( "crypto/cmp/libcrypto-lib-cmp_client.o", "crypto/cmp/libcrypto-lib-cmp_ctx.o", "crypto/cmp/libcrypto-lib-cmp_err.o", + "crypto/cmp/libcrypto-lib-cmp_genm.o", "crypto/cmp/libcrypto-lib-cmp_hdr.o", "crypto/cmp/libcrypto-lib-cmp_http.o", "crypto/cmp/libcrypto-lib-cmp_msg.o", @@ -23853,7 +27839,9 @@ our %unified_info = ( "crypto/err/libcrypto-lib-err_all.o", "crypto/err/libcrypto-lib-err_all_legacy.o", "crypto/err/libcrypto-lib-err_blocks.o", + "crypto/err/libcrypto-lib-err_mark.o", "crypto/err/libcrypto-lib-err_prn.o", + "crypto/err/libcrypto-lib-err_save.o", "crypto/ess/libcrypto-lib-ess_asn1.o", "crypto/ess/libcrypto-lib-ess_err.o", "crypto/ess/libcrypto-lib-ess_lib.o", @@ -23936,7 +27924,9 @@ our %unified_info = ( "crypto/evp/libcrypto-lib-pmeth_check.o", "crypto/evp/libcrypto-lib-pmeth_gn.o", "crypto/evp/libcrypto-lib-pmeth_lib.o", + "crypto/evp/libcrypto-lib-s_lib.o", "crypto/evp/libcrypto-lib-signature.o", + "crypto/evp/libcrypto-lib-skeymgmt_meth.o", "crypto/ffc/libcrypto-lib-ffc_backend.o", "crypto/ffc/libcrypto-lib-ffc_dh.o", "crypto/ffc/libcrypto-lib-ffc_key_generate.o", @@ -23944,7 +27934,11 @@ our %unified_info = ( "crypto/ffc/libcrypto-lib-ffc_params.o", "crypto/ffc/libcrypto-lib-ffc_params_generate.o", "crypto/ffc/libcrypto-lib-ffc_params_validate.o", + "crypto/hashtable/libcrypto-lib-hashfunc.o", + "crypto/hashtable/libcrypto-lib-hashtable.o", "crypto/hmac/libcrypto-lib-hmac.o", + "crypto/hpke/libcrypto-lib-hpke.o", + "crypto/hpke/libcrypto-lib-hpke_util.o", "crypto/http/libcrypto-lib-http_client.o", "crypto/http/libcrypto-lib-http_err.o", "crypto/http/libcrypto-lib-http_lib.o", @@ -23958,6 +27952,7 @@ our %unified_info = ( "crypto/lhash/libcrypto-lib-lhash.o", "crypto/libcrypto-lib-asn1_dsa.o", "crypto/libcrypto-lib-bsearch.o", + "crypto/libcrypto-lib-comp_methods.o", "crypto/libcrypto-lib-context.o", "crypto/libcrypto-lib-core_algorithm.o", "crypto/libcrypto-lib-core_fetch.o", @@ -23967,10 +27962,13 @@ our %unified_info = ( "crypto/libcrypto-lib-cryptlib.o", "crypto/libcrypto-lib-ctype.o", "crypto/libcrypto-lib-cversion.o", + "crypto/libcrypto-lib-defaults.o", "crypto/libcrypto-lib-der_writer.o", + "crypto/libcrypto-lib-deterministic_nonce.o", "crypto/libcrypto-lib-ebcdic.o", "crypto/libcrypto-lib-ex_data.o", "crypto/libcrypto-lib-getenv.o", + "crypto/libcrypto-lib-indicator_core.o", "crypto/libcrypto-lib-info.o", "crypto/libcrypto-lib-init.o", "crypto/libcrypto-lib-initthread.o", @@ -23988,6 +27986,7 @@ our %unified_info = ( "crypto/libcrypto-lib-params.o", "crypto/libcrypto-lib-params_dup.o", "crypto/libcrypto-lib-params_from_text.o", + "crypto/libcrypto-lib-params_idx.o", "crypto/libcrypto-lib-passphrase.o", "crypto/libcrypto-lib-provider.o", "crypto/libcrypto-lib-provider_child.o", @@ -23995,12 +27994,16 @@ our %unified_info = ( "crypto/libcrypto-lib-provider_core.o", "crypto/libcrypto-lib-provider_predefined.o", "crypto/libcrypto-lib-punycode.o", + "crypto/libcrypto-lib-quic_vlint.o", "crypto/libcrypto-lib-self_test_core.o", + "crypto/libcrypto-lib-sleep.o", "crypto/libcrypto-lib-sparse_array.o", + "crypto/libcrypto-lib-ssl_err.o", "crypto/libcrypto-lib-threads_lib.o", "crypto/libcrypto-lib-threads_none.o", "crypto/libcrypto-lib-threads_pthread.o", "crypto/libcrypto-lib-threads_win.o", + "crypto/libcrypto-lib-time.o", "crypto/libcrypto-lib-trace.o", "crypto/libcrypto-lib-uid.o", "crypto/md4/libcrypto-lib-md4_dgst.o", @@ -24010,6 +28013,15 @@ our %unified_info = ( "crypto/md5/libcrypto-lib-md5_sha1.o", "crypto/mdc2/libcrypto-lib-mdc2_one.o", "crypto/mdc2/libcrypto-lib-mdc2dgst.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_encoders.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key_compress.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_matrix.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_ntt.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_params.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sample.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sign.o", + "crypto/ml_kem/libcrypto-lib-ml_kem.o", "crypto/modes/libcrypto-lib-cbc128.o", "crypto/modes/libcrypto-lib-ccm128.o", "crypto/modes/libcrypto-lib-cfb128.o", @@ -24021,6 +28033,7 @@ our %unified_info = ( "crypto/modes/libcrypto-lib-siv128.o", "crypto/modes/libcrypto-lib-wrap128.o", "crypto/modes/libcrypto-lib-xts128.o", + "crypto/modes/libcrypto-lib-xts128gb.o", "crypto/objects/libcrypto-lib-o_names.o", "crypto/objects/libcrypto-lib-obj_dat.o", "crypto/objects/libcrypto-lib-obj_err.o", @@ -24084,6 +28097,7 @@ our %unified_info = ( "crypto/rand/libcrypto-lib-rand_lib.o", "crypto/rand/libcrypto-lib-rand_meth.o", "crypto/rand/libcrypto-lib-rand_pool.o", + "crypto/rand/libcrypto-lib-rand_uniform.o", "crypto/rand/libcrypto-lib-randfile.o", "crypto/rc2/libcrypto-lib-rc2_cbc.o", "crypto/rc2/libcrypto-lib-rc2_ecb.o", @@ -24132,6 +28146,16 @@ our %unified_info = ( "crypto/sha/libcrypto-lib-sha3.o", "crypto/sha/libcrypto-lib-sha512.o", "crypto/siphash/libcrypto-lib-siphash.o", + "crypto/slh_dsa/libcrypto-lib-slh_adrs.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa_hash_ctx.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa_key.o", + "crypto/slh_dsa/libcrypto-lib-slh_fors.o", + "crypto/slh_dsa/libcrypto-lib-slh_hash.o", + "crypto/slh_dsa/libcrypto-lib-slh_hypertree.o", + "crypto/slh_dsa/libcrypto-lib-slh_params.o", + "crypto/slh_dsa/libcrypto-lib-slh_wots.o", + "crypto/slh_dsa/libcrypto-lib-slh_xmss.o", "crypto/sm2/libcrypto-lib-sm2_crypt.o", "crypto/sm2/libcrypto-lib-sm2_err.o", "crypto/sm2/libcrypto-lib-sm2_key.o", @@ -24149,6 +28173,12 @@ our %unified_info = ( "crypto/store/libcrypto-lib-store_register.o", "crypto/store/libcrypto-lib-store_result.o", "crypto/store/libcrypto-lib-store_strings.o", + "crypto/thread/arch/libcrypto-lib-thread_none.o", + "crypto/thread/arch/libcrypto-lib-thread_posix.o", + "crypto/thread/arch/libcrypto-lib-thread_win.o", + "crypto/thread/libcrypto-lib-api.o", + "crypto/thread/libcrypto-lib-arch.o", + "crypto/thread/libcrypto-lib-internal.o", "crypto/ts/libcrypto-lib-ts_asn1.o", "crypto/ts/libcrypto-lib-ts_conf.o", "crypto/ts/libcrypto-lib-ts_err.o", @@ -24177,14 +28207,22 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-pcy_map.o", "crypto/x509/libcrypto-lib-pcy_node.o", "crypto/x509/libcrypto-lib-pcy_tree.o", + "crypto/x509/libcrypto-lib-t_acert.o", "crypto/x509/libcrypto-lib-t_crl.o", "crypto/x509/libcrypto-lib-t_req.o", "crypto/x509/libcrypto-lib-t_x509.o", + "crypto/x509/libcrypto-lib-v3_aaa.o", + "crypto/x509/libcrypto-lib-v3_ac_tgt.o", "crypto/x509/libcrypto-lib-v3_addr.o", "crypto/x509/libcrypto-lib-v3_admis.o", "crypto/x509/libcrypto-lib-v3_akeya.o", "crypto/x509/libcrypto-lib-v3_akid.o", "crypto/x509/libcrypto-lib-v3_asid.o", + "crypto/x509/libcrypto-lib-v3_attrdesc.o", + "crypto/x509/libcrypto-lib-v3_attrmap.o", + "crypto/x509/libcrypto-lib-v3_audit_id.o", + "crypto/x509/libcrypto-lib-v3_authattid.o", + "crypto/x509/libcrypto-lib-v3_battcons.o", "crypto/x509/libcrypto-lib-v3_bcons.o", "crypto/x509/libcrypto-lib-v3_bitst.o", "crypto/x509/libcrypto-lib-v3_conf.o", @@ -24193,12 +28231,17 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_enum.o", "crypto/x509/libcrypto-lib-v3_extku.o", "crypto/x509/libcrypto-lib-v3_genn.o", + "crypto/x509/libcrypto-lib-v3_group_ac.o", "crypto/x509/libcrypto-lib-v3_ia5.o", + "crypto/x509/libcrypto-lib-v3_ind_iss.o", "crypto/x509/libcrypto-lib-v3_info.o", "crypto/x509/libcrypto-lib-v3_int.o", + "crypto/x509/libcrypto-lib-v3_iobo.o", "crypto/x509/libcrypto-lib-v3_ist.o", "crypto/x509/libcrypto-lib-v3_lib.o", "crypto/x509/libcrypto-lib-v3_ncons.o", + "crypto/x509/libcrypto-lib-v3_no_ass.o", + "crypto/x509/libcrypto-lib-v3_no_rev_avail.o", "crypto/x509/libcrypto-lib-v3_pci.o", "crypto/x509/libcrypto-lib-v3_pcia.o", "crypto/x509/libcrypto-lib-v3_pcons.o", @@ -24206,13 +28249,20 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_pmaps.o", "crypto/x509/libcrypto-lib-v3_prn.o", "crypto/x509/libcrypto-lib-v3_purp.o", + "crypto/x509/libcrypto-lib-v3_rolespec.o", "crypto/x509/libcrypto-lib-v3_san.o", + "crypto/x509/libcrypto-lib-v3_sda.o", + "crypto/x509/libcrypto-lib-v3_single_use.o", "crypto/x509/libcrypto-lib-v3_skid.o", + "crypto/x509/libcrypto-lib-v3_soa_id.o", "crypto/x509/libcrypto-lib-v3_sxnet.o", + "crypto/x509/libcrypto-lib-v3_timespec.o", "crypto/x509/libcrypto-lib-v3_tlsf.o", + "crypto/x509/libcrypto-lib-v3_usernotice.o", "crypto/x509/libcrypto-lib-v3_utf8.o", "crypto/x509/libcrypto-lib-v3_utl.o", "crypto/x509/libcrypto-lib-v3err.o", + "crypto/x509/libcrypto-lib-x509_acert.o", "crypto/x509/libcrypto-lib-x509_att.o", "crypto/x509/libcrypto-lib-x509_cmp.o", "crypto/x509/libcrypto-lib-x509_d2.o", @@ -24230,6 +28280,7 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x509_v3.o", "crypto/x509/libcrypto-lib-x509_vfy.o", "crypto/x509/libcrypto-lib-x509_vpm.o", + "crypto/x509/libcrypto-lib-x509aset.o", "crypto/x509/libcrypto-lib-x509cset.o", "crypto/x509/libcrypto-lib-x509name.o", "crypto/x509/libcrypto-lib-x509rset.o", @@ -24239,6 +28290,7 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x_attrib.o", "crypto/x509/libcrypto-lib-x_crl.o", "crypto/x509/libcrypto-lib-x_exten.o", + "crypto/x509/libcrypto-lib-x_ietfatt.o", "crypto/x509/libcrypto-lib-x_name.o", "crypto/x509/libcrypto-lib-x_pubkey.o", "crypto/x509/libcrypto-lib-x_req.o", @@ -24259,14 +28311,15 @@ our %unified_info = ( "ssl/libssl-lib-d1_srtp.o", "ssl/libssl-lib-methods.o", "ssl/libssl-lib-pqueue.o", + "ssl/libssl-lib-priority_queue.o", "ssl/libssl-lib-s3_enc.o", "ssl/libssl-lib-s3_lib.o", "ssl/libssl-lib-s3_msg.o", "ssl/libssl-lib-ssl_asn1.o", "ssl/libssl-lib-ssl_cert.o", + "ssl/libssl-lib-ssl_cert_comp.o", "ssl/libssl-lib-ssl_ciph.o", "ssl/libssl-lib-ssl_conf.o", - "ssl/libssl-lib-ssl_err.o", "ssl/libssl-lib-ssl_err_legacy.o", "ssl/libssl-lib-ssl_init.o", "ssl/libssl-lib-ssl_lib.o", @@ -24283,12 +28336,60 @@ our %unified_info = ( "ssl/libssl-lib-tls13_enc.o", "ssl/libssl-lib-tls_depr.o", "ssl/libssl-lib-tls_srp.o", - "ssl/record/libssl-lib-dtls1_bitmap.o", + "ssl/quic/libssl-lib-cc_newreno.o", + "ssl/quic/libssl-lib-json_enc.o", + "ssl/quic/libssl-lib-qlog.o", + "ssl/quic/libssl-lib-qlog_event_helpers.o", + "ssl/quic/libssl-lib-quic_ackm.o", + "ssl/quic/libssl-lib-quic_cfq.o", + "ssl/quic/libssl-lib-quic_channel.o", + "ssl/quic/libssl-lib-quic_demux.o", + "ssl/quic/libssl-lib-quic_engine.o", + "ssl/quic/libssl-lib-quic_fc.o", + "ssl/quic/libssl-lib-quic_fifd.o", + "ssl/quic/libssl-lib-quic_impl.o", + "ssl/quic/libssl-lib-quic_lcidm.o", + "ssl/quic/libssl-lib-quic_method.o", + "ssl/quic/libssl-lib-quic_obj.o", + "ssl/quic/libssl-lib-quic_port.o", + "ssl/quic/libssl-lib-quic_rcidm.o", + "ssl/quic/libssl-lib-quic_reactor.o", + "ssl/quic/libssl-lib-quic_reactor_wait_ctx.o", + "ssl/quic/libssl-lib-quic_record_rx.o", + "ssl/quic/libssl-lib-quic_record_shared.o", + "ssl/quic/libssl-lib-quic_record_tx.o", + "ssl/quic/libssl-lib-quic_record_util.o", + "ssl/quic/libssl-lib-quic_rstream.o", + "ssl/quic/libssl-lib-quic_rx_depack.o", + "ssl/quic/libssl-lib-quic_sf_list.o", + "ssl/quic/libssl-lib-quic_srt_gen.o", + "ssl/quic/libssl-lib-quic_srtm.o", + "ssl/quic/libssl-lib-quic_sstream.o", + "ssl/quic/libssl-lib-quic_statm.o", + "ssl/quic/libssl-lib-quic_stream_map.o", + "ssl/quic/libssl-lib-quic_thread_assist.o", + "ssl/quic/libssl-lib-quic_tls.o", + "ssl/quic/libssl-lib-quic_tls_api.o", + "ssl/quic/libssl-lib-quic_trace.o", + "ssl/quic/libssl-lib-quic_tserver.o", + "ssl/quic/libssl-lib-quic_txp.o", + "ssl/quic/libssl-lib-quic_txpim.o", + "ssl/quic/libssl-lib-quic_types.o", + "ssl/quic/libssl-lib-quic_wire.o", + "ssl/quic/libssl-lib-quic_wire_pkt.o", + "ssl/quic/libssl-lib-uint_set.o", "ssl/record/libssl-lib-rec_layer_d1.o", "ssl/record/libssl-lib-rec_layer_s3.o", - "ssl/record/libssl-lib-ssl3_buffer.o", - "ssl/record/libssl-lib-ssl3_record.o", - "ssl/record/libssl-lib-ssl3_record_tls13.o", + "ssl/record/methods/libssl-lib-dtls_meth.o", + "ssl/record/methods/libssl-lib-ssl3_meth.o", + "ssl/record/methods/libssl-lib-tls13_meth.o", + "ssl/record/methods/libssl-lib-tls1_meth.o", + "ssl/record/methods/libssl-lib-tls_common.o", + "ssl/record/methods/libssl-lib-tls_multib.o", + "ssl/record/methods/libssl-lib-tlsany_meth.o", + "ssl/rio/libssl-lib-poll_builder.o", + "ssl/rio/libssl-lib-poll_immediate.o", + "ssl/rio/libssl-lib-rio_notifier.o", "ssl/statem/libssl-lib-extensions.o", "ssl/statem/libssl-lib-extensions_clnt.o", "ssl/statem/libssl-lib-extensions_cust.o", @@ -24326,12 +28427,24 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ecx_key.o" => [ "providers/common/der/der_ecx_key.c" ], + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o" => [ + "providers/common/der/der_ml_dsa_gen.c" + ], + "providers/common/der/libcommon-lib-der_ml_dsa_key.o" => [ + "providers/common/der/der_ml_dsa_key.c" + ], "providers/common/der/libcommon-lib-der_rsa_gen.o" => [ "providers/common/der/der_rsa_gen.c" ], "providers/common/der/libcommon-lib-der_rsa_key.o" => [ "providers/common/der/der_rsa_key.c" ], + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o" => [ + "providers/common/der/der_slh_dsa_gen.c" + ], + "providers/common/der/libcommon-lib-der_slh_dsa_key.o" => [ + "providers/common/der/der_slh_dsa_key.c" + ], "providers/common/der/libcommon-lib-der_wrap_gen.o" => [ "providers/common/der/der_wrap_gen.c" ], @@ -24398,6 +28511,9 @@ our %unified_info = ( "providers/common/libfips-lib-securitycheck_fips.o" => [ "providers/common/securitycheck_fips.c" ], + "providers/endecode_test-bin-legacyprov.o" => [ + "providers/legacyprov.c" + ], "providers/evp_extra_test-bin-legacyprov.o" => [ "providers/legacyprov.c" ], @@ -24407,6 +28523,9 @@ our %unified_info = ( "providers/fips/fips-dso-fips_entry.o" => [ "providers/fips/fips_entry.c" ], + "providers/fips/libfips-lib-fipsindicator.o" => [ + "providers/fips/fipsindicator.c" + ], "providers/fips/libfips-lib-fipsprov.o" => [ "providers/fips/fipsprov.c" ], @@ -24470,6 +28589,15 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_hw.o" => [ "providers/implementations/ciphers/cipher_aes_gcm_hw.c" ], + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv.o" => [ + "providers/implementations/ciphers/cipher_aes_gcm_siv.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_hw.o" => [ + "providers/implementations/ciphers/cipher_aes_gcm_siv_hw.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_polyval.o" => [ + "providers/implementations/ciphers/cipher_aes_gcm_siv_polyval.c" + ], "providers/implementations/ciphers/libdefault-lib-cipher_aes_hw.o" => [ "providers/implementations/ciphers/cipher_aes_hw.c" ], @@ -24542,9 +28670,27 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_sm4.o" => [ "providers/implementations/ciphers/cipher_sm4.c" ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm.o" => [ + "providers/implementations/ciphers/cipher_sm4_ccm.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm_hw.o" => [ + "providers/implementations/ciphers/cipher_sm4_ccm_hw.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm.o" => [ + "providers/implementations/ciphers/cipher_sm4_gcm.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm_hw.o" => [ + "providers/implementations/ciphers/cipher_sm4_gcm_hw.c" + ], "providers/implementations/ciphers/libdefault-lib-cipher_sm4_hw.o" => [ "providers/implementations/ciphers/cipher_sm4_hw.c" ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts.o" => [ + "providers/implementations/ciphers/cipher_sm4_xts.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts_hw.o" => [ + "providers/implementations/ciphers/cipher_sm4_xts_hw.c" + ], "providers/implementations/ciphers/libdefault-lib-cipher_tdes.o" => [ "providers/implementations/ciphers/cipher_tdes.c" ], @@ -24764,6 +28910,15 @@ our %unified_info = ( "providers/implementations/encode_decode/libdefault-lib-endecoder_common.o" => [ "providers/implementations/encode_decode/endecoder_common.c" ], + "providers/implementations/encode_decode/libdefault-lib-ml_common_codecs.o" => [ + "providers/implementations/encode_decode/ml_common_codecs.c" + ], + "providers/implementations/encode_decode/libdefault-lib-ml_dsa_codecs.o" => [ + "providers/implementations/encode_decode/ml_dsa_codecs.c" + ], + "providers/implementations/encode_decode/libdefault-lib-ml_kem_codecs.o" => [ + "providers/implementations/encode_decode/ml_kem_codecs.c" + ], "providers/implementations/exchange/libdefault-lib-dh_exch.o" => [ "providers/implementations/exchange/dh_exch.c" ], @@ -24788,9 +28943,15 @@ our %unified_info = ( "providers/implementations/exchange/libfips-lib-kdf_exch.o" => [ "providers/implementations/exchange/kdf_exch.c" ], + "providers/implementations/kdfs/libdefault-lib-argon2.o" => [ + "providers/implementations/kdfs/argon2.c" + ], "providers/implementations/kdfs/libdefault-lib-hkdf.o" => [ "providers/implementations/kdfs/hkdf.c" ], + "providers/implementations/kdfs/libdefault-lib-hmacdrbg_kdf.o" => [ + "providers/implementations/kdfs/hmacdrbg_kdf.c" + ], "providers/implementations/kdfs/libdefault-lib-kbkdf.o" => [ "providers/implementations/kdfs/kbkdf.c" ], @@ -24848,12 +29009,39 @@ our %unified_info = ( "providers/implementations/kdfs/liblegacy-lib-pbkdf1.o" => [ "providers/implementations/kdfs/pbkdf1.c" ], + "providers/implementations/kdfs/liblegacy-lib-pvkkdf.o" => [ + "providers/implementations/kdfs/pvkkdf.c" + ], + "providers/implementations/kem/libdefault-lib-ec_kem.o" => [ + "providers/implementations/kem/ec_kem.c" + ], + "providers/implementations/kem/libdefault-lib-ecx_kem.o" => [ + "providers/implementations/kem/ecx_kem.c" + ], + "providers/implementations/kem/libdefault-lib-kem_util.o" => [ + "providers/implementations/kem/kem_util.c" + ], + "providers/implementations/kem/libdefault-lib-ml_kem_kem.o" => [ + "providers/implementations/kem/ml_kem_kem.c" + ], + "providers/implementations/kem/libdefault-lib-mlx_kem.o" => [ + "providers/implementations/kem/mlx_kem.c" + ], "providers/implementations/kem/libdefault-lib-rsa_kem.o" => [ "providers/implementations/kem/rsa_kem.c" ], + "providers/implementations/kem/libfips-lib-ml_kem_kem.o" => [ + "providers/implementations/kem/ml_kem_kem.c" + ], + "providers/implementations/kem/libfips-lib-mlx_kem.o" => [ + "providers/implementations/kem/mlx_kem.c" + ], "providers/implementations/kem/libfips-lib-rsa_kem.o" => [ "providers/implementations/kem/rsa_kem.c" ], + "providers/implementations/kem/libtemplate-lib-template_kem.o" => [ + "providers/implementations/kem/template_kem.c" + ], "providers/implementations/keymgmt/libdefault-lib-dh_kmgmt.o" => [ "providers/implementations/keymgmt/dh_kmgmt.c" ], @@ -24872,9 +29060,21 @@ our %unified_info = ( "providers/implementations/keymgmt/libdefault-lib-mac_legacy_kmgmt.o" => [ "providers/implementations/keymgmt/mac_legacy_kmgmt.c" ], + "providers/implementations/keymgmt/libdefault-lib-ml_dsa_kmgmt.o" => [ + "providers/implementations/keymgmt/ml_dsa_kmgmt.c" + ], + "providers/implementations/keymgmt/libdefault-lib-ml_kem_kmgmt.o" => [ + "providers/implementations/keymgmt/ml_kem_kmgmt.c" + ], + "providers/implementations/keymgmt/libdefault-lib-mlx_kmgmt.o" => [ + "providers/implementations/keymgmt/mlx_kmgmt.c" + ], "providers/implementations/keymgmt/libdefault-lib-rsa_kmgmt.o" => [ "providers/implementations/keymgmt/rsa_kmgmt.c" ], + "providers/implementations/keymgmt/libdefault-lib-slh_dsa_kmgmt.o" => [ + "providers/implementations/keymgmt/slh_dsa_kmgmt.c" + ], "providers/implementations/keymgmt/libfips-lib-dh_kmgmt.o" => [ "providers/implementations/keymgmt/dh_kmgmt.c" ], @@ -24893,9 +29093,24 @@ our %unified_info = ( "providers/implementations/keymgmt/libfips-lib-mac_legacy_kmgmt.o" => [ "providers/implementations/keymgmt/mac_legacy_kmgmt.c" ], + "providers/implementations/keymgmt/libfips-lib-ml_dsa_kmgmt.o" => [ + "providers/implementations/keymgmt/ml_dsa_kmgmt.c" + ], + "providers/implementations/keymgmt/libfips-lib-ml_kem_kmgmt.o" => [ + "providers/implementations/keymgmt/ml_kem_kmgmt.c" + ], + "providers/implementations/keymgmt/libfips-lib-mlx_kmgmt.o" => [ + "providers/implementations/keymgmt/mlx_kmgmt.c" + ], "providers/implementations/keymgmt/libfips-lib-rsa_kmgmt.o" => [ "providers/implementations/keymgmt/rsa_kmgmt.c" ], + "providers/implementations/keymgmt/libfips-lib-slh_dsa_kmgmt.o" => [ + "providers/implementations/keymgmt/slh_dsa_kmgmt.c" + ], + "providers/implementations/keymgmt/libtemplate-lib-template_kmgmt.o" => [ + "providers/implementations/keymgmt/template_kmgmt.c" + ], "providers/implementations/macs/libdefault-lib-blake2b_mac.o" => [ "providers/implementations/macs/blake2b_mac.c" ], @@ -24932,9 +29147,6 @@ our %unified_info = ( "providers/implementations/macs/libfips-lib-kmac_prov.o" => [ "providers/implementations/macs/kmac_prov.c" ], - "providers/implementations/rands/libdefault-lib-crngt.o" => [ - "providers/implementations/rands/crngt.c" - ], "providers/implementations/rands/libdefault-lib-drbg.o" => [ "providers/implementations/rands/drbg.c" ], @@ -24950,12 +29162,12 @@ our %unified_info = ( "providers/implementations/rands/libdefault-lib-seed_src.o" => [ "providers/implementations/rands/seed_src.c" ], + "providers/implementations/rands/libdefault-lib-seed_src_jitter.o" => [ + "providers/implementations/rands/seed_src_jitter.c" + ], "providers/implementations/rands/libdefault-lib-test_rng.o" => [ "providers/implementations/rands/test_rng.c" ], - "providers/implementations/rands/libfips-lib-crngt.o" => [ - "providers/implementations/rands/crngt.c" - ], "providers/implementations/rands/libfips-lib-drbg.o" => [ "providers/implementations/rands/drbg.c" ], @@ -24968,6 +29180,9 @@ our %unified_info = ( "providers/implementations/rands/libfips-lib-drbg_hmac.o" => [ "providers/implementations/rands/drbg_hmac.c" ], + "providers/implementations/rands/libfips-lib-fips_crng_test.o" => [ + "providers/implementations/rands/fips_crng_test.c" + ], "providers/implementations/rands/libfips-lib-test_rng.o" => [ "providers/implementations/rands/test_rng.c" ], @@ -24995,9 +29210,15 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-mac_legacy_sig.o" => [ "providers/implementations/signature/mac_legacy_sig.c" ], + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o" => [ + "providers/implementations/signature/ml_dsa_sig.c" + ], "providers/implementations/signature/libdefault-lib-rsa_sig.o" => [ "providers/implementations/signature/rsa_sig.c" ], + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o" => [ + "providers/implementations/signature/slh_dsa_sig.c" + ], "providers/implementations/signature/libdefault-lib-sm2_sig.o" => [ "providers/implementations/signature/sm2_sig.c" ], @@ -25013,9 +29234,27 @@ our %unified_info = ( "providers/implementations/signature/libfips-lib-mac_legacy_sig.o" => [ "providers/implementations/signature/mac_legacy_sig.c" ], + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o" => [ + "providers/implementations/signature/ml_dsa_sig.c" + ], "providers/implementations/signature/libfips-lib-rsa_sig.o" => [ "providers/implementations/signature/rsa_sig.c" ], + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o" => [ + "providers/implementations/signature/slh_dsa_sig.c" + ], + "providers/implementations/skeymgmt/libdefault-lib-aes_skmgmt.o" => [ + "providers/implementations/skeymgmt/aes_skmgmt.c" + ], + "providers/implementations/skeymgmt/libdefault-lib-generic.o" => [ + "providers/implementations/skeymgmt/generic.c" + ], + "providers/implementations/skeymgmt/libfips-lib-aes_skmgmt.o" => [ + "providers/implementations/skeymgmt/aes_skmgmt.c" + ], + "providers/implementations/skeymgmt/libfips-lib-generic.o" => [ + "providers/implementations/skeymgmt/generic.c" + ], "providers/implementations/storemgmt/libdefault-lib-file_store.o" => [ "providers/implementations/storemgmt/file_store.c" ], @@ -25038,8 +29277,12 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ec_sig.o", "providers/common/der/libcommon-lib-der_ecx_gen.o", "providers/common/der/libcommon-lib-der_ecx_key.o", + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o", + "providers/common/der/libcommon-lib-der_ml_dsa_key.o", "providers/common/der/libcommon-lib-der_rsa_gen.o", "providers/common/der/libcommon-lib-der_rsa_key.o", + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o", + "providers/common/der/libcommon-lib-der_slh_dsa_key.o", "providers/common/der/libcommon-lib-der_wrap_gen.o", "providers/common/libcommon-lib-provider_ctx.o", "providers/common/libcommon-lib-provider_err.o", @@ -25051,7 +29294,7 @@ our %unified_info = ( "providers/implementations/ciphers/libcommon-lib-ciphercommon_gcm_hw.o", "providers/implementations/ciphers/libcommon-lib-ciphercommon_hw.o", "providers/implementations/digests/libcommon-lib-digestcommon.o", - "ssl/record/libcommon-lib-tls_pad.o" + "ssl/record/methods/libcommon-lib-tls_pad.o" ], "providers/libcrypto-lib-baseprov.o" => [ "providers/baseprov.c" @@ -25087,6 +29330,9 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_aes_ccm_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_polyval.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_ocb.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_ocb_hw.o", @@ -25111,7 +29357,13 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_cts.o", "providers/implementations/ciphers/libdefault-lib-cipher_null.o", "providers/implementations/ciphers/libdefault-lib-cipher_sm4.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_sm4_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes_common.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes_default.o", @@ -25140,11 +29392,16 @@ our %unified_info = ( "providers/implementations/encode_decode/libdefault-lib-encode_key2ms.o", "providers/implementations/encode_decode/libdefault-lib-encode_key2text.o", "providers/implementations/encode_decode/libdefault-lib-endecoder_common.o", + "providers/implementations/encode_decode/libdefault-lib-ml_common_codecs.o", + "providers/implementations/encode_decode/libdefault-lib-ml_dsa_codecs.o", + "providers/implementations/encode_decode/libdefault-lib-ml_kem_codecs.o", "providers/implementations/exchange/libdefault-lib-dh_exch.o", "providers/implementations/exchange/libdefault-lib-ecdh_exch.o", "providers/implementations/exchange/libdefault-lib-ecx_exch.o", "providers/implementations/exchange/libdefault-lib-kdf_exch.o", + "providers/implementations/kdfs/libdefault-lib-argon2.o", "providers/implementations/kdfs/libdefault-lib-hkdf.o", + "providers/implementations/kdfs/libdefault-lib-hmacdrbg_kdf.o", "providers/implementations/kdfs/libdefault-lib-kbkdf.o", "providers/implementations/kdfs/libdefault-lib-krb5kdf.o", "providers/implementations/kdfs/libdefault-lib-pbkdf2.o", @@ -25155,6 +29412,11 @@ our %unified_info = ( "providers/implementations/kdfs/libdefault-lib-sskdf.o", "providers/implementations/kdfs/libdefault-lib-tls1_prf.o", "providers/implementations/kdfs/libdefault-lib-x942kdf.o", + "providers/implementations/kem/libdefault-lib-ec_kem.o", + "providers/implementations/kem/libdefault-lib-ecx_kem.o", + "providers/implementations/kem/libdefault-lib-kem_util.o", + "providers/implementations/kem/libdefault-lib-ml_kem_kem.o", + "providers/implementations/kem/libdefault-lib-mlx_kem.o", "providers/implementations/kem/libdefault-lib-rsa_kem.o", "providers/implementations/keymgmt/libdefault-lib-dh_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-dsa_kmgmt.o", @@ -25162,7 +29424,11 @@ our %unified_info = ( "providers/implementations/keymgmt/libdefault-lib-ecx_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-kdf_legacy_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-mac_legacy_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-ml_dsa_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-ml_kem_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-mlx_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-rsa_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-slh_dsa_kmgmt.o", "providers/implementations/macs/libdefault-lib-blake2b_mac.o", "providers/implementations/macs/libdefault-lib-blake2s_mac.o", "providers/implementations/macs/libdefault-lib-cmac_prov.o", @@ -25171,12 +29437,12 @@ our %unified_info = ( "providers/implementations/macs/libdefault-lib-kmac_prov.o", "providers/implementations/macs/libdefault-lib-poly1305_prov.o", "providers/implementations/macs/libdefault-lib-siphash_prov.o", - "providers/implementations/rands/libdefault-lib-crngt.o", "providers/implementations/rands/libdefault-lib-drbg.o", "providers/implementations/rands/libdefault-lib-drbg_ctr.o", "providers/implementations/rands/libdefault-lib-drbg_hash.o", "providers/implementations/rands/libdefault-lib-drbg_hmac.o", "providers/implementations/rands/libdefault-lib-seed_src.o", + "providers/implementations/rands/libdefault-lib-seed_src_jitter.o", "providers/implementations/rands/libdefault-lib-test_rng.o", "providers/implementations/rands/seeding/libdefault-lib-rand_cpu_x86.o", "providers/implementations/rands/seeding/libdefault-lib-rand_tsc.o", @@ -25186,11 +29452,15 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-ecdsa_sig.o", "providers/implementations/signature/libdefault-lib-eddsa_sig.o", "providers/implementations/signature/libdefault-lib-mac_legacy_sig.o", + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o", "providers/implementations/signature/libdefault-lib-rsa_sig.o", + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o", "providers/implementations/signature/libdefault-lib-sm2_sig.o", + "providers/implementations/skeymgmt/libdefault-lib-aes_skmgmt.o", + "providers/implementations/skeymgmt/libdefault-lib-generic.o", "providers/implementations/storemgmt/libdefault-lib-file_store.o", "providers/implementations/storemgmt/libdefault-lib-file_store_any2obj.o", - "ssl/libdefault-lib-s3_cbc.o" + "ssl/record/methods/libdefault-lib-ssl3_cbc.o" ], "providers/libfips.a" => [ "crypto/aes/libfips-lib-aes_cbc.o", @@ -25292,14 +29562,15 @@ our %unified_info = ( "crypto/evp/libfips-lib-kem.o", "crypto/evp/libfips-lib-keymgmt_lib.o", "crypto/evp/libfips-lib-keymgmt_meth.o", - "crypto/evp/libfips-lib-m_sigver.o", "crypto/evp/libfips-lib-mac_lib.o", "crypto/evp/libfips-lib-mac_meth.o", "crypto/evp/libfips-lib-p_lib.o", "crypto/evp/libfips-lib-pmeth_check.o", "crypto/evp/libfips-lib-pmeth_gn.o", "crypto/evp/libfips-lib-pmeth_lib.o", + "crypto/evp/libfips-lib-s_lib.o", "crypto/evp/libfips-lib-signature.o", + "crypto/evp/libfips-lib-skeymgmt_meth.o", "crypto/ffc/libfips-lib-ffc_backend.o", "crypto/ffc/libfips-lib-ffc_dh.o", "crypto/ffc/libfips-lib-ffc_key_generate.o", @@ -25307,6 +29578,8 @@ our %unified_info = ( "crypto/ffc/libfips-lib-ffc_params.o", "crypto/ffc/libfips-lib-ffc_params_generate.o", "crypto/ffc/libfips-lib-ffc_params_validate.o", + "crypto/hashtable/libfips-lib-hashfunc.o", + "crypto/hashtable/libfips-lib-hashtable.o", "crypto/hmac/libfips-lib-hmac.o", "crypto/lhash/libfips-lib-lhash.o", "crypto/libfips-lib-asn1_dsa.o", @@ -25329,6 +29602,7 @@ our %unified_info = ( "crypto/libfips-lib-params.o", "crypto/libfips-lib-params_dup.o", "crypto/libfips-lib-params_from_text.o", + "crypto/libfips-lib-params_idx.o", "crypto/libfips-lib-provider_core.o", "crypto/libfips-lib-provider_predefined.o", "crypto/libfips-lib-self_test_core.o", @@ -25337,6 +29611,16 @@ our %unified_info = ( "crypto/libfips-lib-threads_none.o", "crypto/libfips-lib-threads_pthread.o", "crypto/libfips-lib-threads_win.o", + "crypto/libfips-lib-time.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_encoders.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_key.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_key_compress.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_matrix.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_ntt.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_params.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_sample.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_sign.o", + "crypto/ml_kem/libfips-lib-ml_kem.o", "crypto/modes/libfips-lib-cbc128.o", "crypto/modes/libfips-lib-ccm128.o", "crypto/modes/libfips-lib-cfb128.o", @@ -25345,6 +29629,7 @@ our %unified_info = ( "crypto/modes/libfips-lib-ofb128.o", "crypto/modes/libfips-lib-wrap128.o", "crypto/modes/libfips-lib-xts128.o", + "crypto/modes/libfips-lib-xts128gb.o", "crypto/property/libfips-lib-defn_cache.o", "crypto/property/libfips-lib-property.o", "crypto/property/libfips-lib-property_parse.o", @@ -25373,7 +29658,23 @@ our %unified_info = ( "crypto/sha/libfips-lib-sha256.o", "crypto/sha/libfips-lib-sha3.o", "crypto/sha/libfips-lib-sha512.o", + "crypto/slh_dsa/libfips-lib-slh_adrs.o", + "crypto/slh_dsa/libfips-lib-slh_dsa.o", + "crypto/slh_dsa/libfips-lib-slh_dsa_hash_ctx.o", + "crypto/slh_dsa/libfips-lib-slh_dsa_key.o", + "crypto/slh_dsa/libfips-lib-slh_fors.o", + "crypto/slh_dsa/libfips-lib-slh_hash.o", + "crypto/slh_dsa/libfips-lib-slh_hypertree.o", + "crypto/slh_dsa/libfips-lib-slh_params.o", + "crypto/slh_dsa/libfips-lib-slh_wots.o", + "crypto/slh_dsa/libfips-lib-slh_xmss.o", "crypto/stack/libfips-lib-stack.o", + "crypto/thread/arch/libfips-lib-thread_none.o", + "crypto/thread/arch/libfips-lib-thread_posix.o", + "crypto/thread/arch/libfips-lib-thread_win.o", + "crypto/thread/libfips-lib-api.o", + "crypto/thread/libfips-lib-arch.o", + "crypto/thread/libfips-lib-internal.o", "providers/common/der/libfips-lib-der_rsa_sig.o", "providers/common/libfips-lib-bio_prov.o", "providers/common/libfips-lib-capabilities.o", @@ -25382,6 +29683,7 @@ our %unified_info = ( "providers/common/libfips-lib-provider_util.o", "providers/common/libfips-lib-securitycheck.o", "providers/common/libfips-lib-securitycheck_fips.o", + "providers/fips/libfips-lib-fipsindicator.o", "providers/fips/libfips-lib-fipsprov.o", "providers/fips/libfips-lib-self_test.o", "providers/fips/libfips-lib-self_test_kats.o", @@ -25419,6 +29721,8 @@ our %unified_info = ( "providers/implementations/kdfs/libfips-lib-sskdf.o", "providers/implementations/kdfs/libfips-lib-tls1_prf.o", "providers/implementations/kdfs/libfips-lib-x942kdf.o", + "providers/implementations/kem/libfips-lib-ml_kem_kem.o", + "providers/implementations/kem/libfips-lib-mlx_kem.o", "providers/implementations/kem/libfips-lib-rsa_kem.o", "providers/implementations/keymgmt/libfips-lib-dh_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-dsa_kmgmt.o", @@ -25426,24 +29730,32 @@ our %unified_info = ( "providers/implementations/keymgmt/libfips-lib-ecx_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-kdf_legacy_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-mac_legacy_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-ml_dsa_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-ml_kem_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-mlx_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-rsa_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-slh_dsa_kmgmt.o", "providers/implementations/macs/libfips-lib-cmac_prov.o", "providers/implementations/macs/libfips-lib-gmac_prov.o", "providers/implementations/macs/libfips-lib-hmac_prov.o", "providers/implementations/macs/libfips-lib-kmac_prov.o", - "providers/implementations/rands/libfips-lib-crngt.o", "providers/implementations/rands/libfips-lib-drbg.o", "providers/implementations/rands/libfips-lib-drbg_ctr.o", "providers/implementations/rands/libfips-lib-drbg_hash.o", "providers/implementations/rands/libfips-lib-drbg_hmac.o", + "providers/implementations/rands/libfips-lib-fips_crng_test.o", "providers/implementations/rands/libfips-lib-test_rng.o", "providers/implementations/signature/libfips-lib-dsa_sig.o", "providers/implementations/signature/libfips-lib-ecdsa_sig.o", "providers/implementations/signature/libfips-lib-eddsa_sig.o", "providers/implementations/signature/libfips-lib-mac_legacy_sig.o", + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o", "providers/implementations/signature/libfips-lib-rsa_sig.o", + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o", + "providers/implementations/skeymgmt/libfips-lib-aes_skmgmt.o", + "providers/implementations/skeymgmt/libfips-lib-generic.o", "providers/libcommon.a", - "ssl/libfips-lib-s3_cbc.o" + "ssl/record/methods/libfips-lib-ssl3_cbc.o" ], "providers/liblegacy-lib-prov_running.o" => [ "providers/prov_running.c" @@ -25473,13 +29785,12 @@ our %unified_info = ( "providers/implementations/digests/liblegacy-lib-ripemd_prov.o", "providers/implementations/digests/liblegacy-lib-wp_prov.o", "providers/implementations/kdfs/liblegacy-lib-pbkdf1.o", + "providers/implementations/kdfs/liblegacy-lib-pvkkdf.o", "providers/liblegacy-lib-prov_running.o" ], - "ssl/libdefault-lib-s3_cbc.o" => [ - "ssl/s3_cbc.c" - ], - "ssl/libfips-lib-s3_cbc.o" => [ - "ssl/s3_cbc.c" + "providers/libtemplate.a" => [ + "providers/implementations/kem/libtemplate-lib-template_kem.o", + "providers/implementations/keymgmt/libtemplate-lib-template_kmgmt.o" ], "ssl/libssl-lib-bio_ssl.o" => [ "ssl/bio_ssl.c" @@ -25499,6 +29810,9 @@ our %unified_info = ( "ssl/libssl-lib-pqueue.o" => [ "ssl/pqueue.c" ], + "ssl/libssl-lib-priority_queue.o" => [ + "ssl/priority_queue.c" + ], "ssl/libssl-lib-s3_enc.o" => [ "ssl/s3_enc.c" ], @@ -25514,15 +29828,15 @@ our %unified_info = ( "ssl/libssl-lib-ssl_cert.o" => [ "ssl/ssl_cert.c" ], + "ssl/libssl-lib-ssl_cert_comp.o" => [ + "ssl/ssl_cert_comp.c" + ], "ssl/libssl-lib-ssl_ciph.o" => [ "ssl/ssl_ciph.c" ], "ssl/libssl-lib-ssl_conf.o" => [ "ssl/ssl_conf.c" ], - "ssl/libssl-lib-ssl_err.o" => [ - "ssl/ssl_err.c" - ], "ssl/libssl-lib-ssl_err_legacy.o" => [ "ssl/ssl_err_legacy.c" ], @@ -25571,11 +29885,131 @@ our %unified_info = ( "ssl/libssl-lib-tls_srp.o" => [ "ssl/tls_srp.c" ], - "ssl/record/libcommon-lib-tls_pad.o" => [ - "ssl/record/tls_pad.c" + "ssl/quic/libssl-lib-cc_newreno.o" => [ + "ssl/quic/cc_newreno.c" + ], + "ssl/quic/libssl-lib-json_enc.o" => [ + "ssl/quic/json_enc.c" + ], + "ssl/quic/libssl-lib-qlog.o" => [ + "ssl/quic/qlog.c" + ], + "ssl/quic/libssl-lib-qlog_event_helpers.o" => [ + "ssl/quic/qlog_event_helpers.c" + ], + "ssl/quic/libssl-lib-quic_ackm.o" => [ + "ssl/quic/quic_ackm.c" + ], + "ssl/quic/libssl-lib-quic_cfq.o" => [ + "ssl/quic/quic_cfq.c" + ], + "ssl/quic/libssl-lib-quic_channel.o" => [ + "ssl/quic/quic_channel.c" + ], + "ssl/quic/libssl-lib-quic_demux.o" => [ + "ssl/quic/quic_demux.c" + ], + "ssl/quic/libssl-lib-quic_engine.o" => [ + "ssl/quic/quic_engine.c" + ], + "ssl/quic/libssl-lib-quic_fc.o" => [ + "ssl/quic/quic_fc.c" + ], + "ssl/quic/libssl-lib-quic_fifd.o" => [ + "ssl/quic/quic_fifd.c" + ], + "ssl/quic/libssl-lib-quic_impl.o" => [ + "ssl/quic/quic_impl.c" + ], + "ssl/quic/libssl-lib-quic_lcidm.o" => [ + "ssl/quic/quic_lcidm.c" + ], + "ssl/quic/libssl-lib-quic_method.o" => [ + "ssl/quic/quic_method.c" + ], + "ssl/quic/libssl-lib-quic_obj.o" => [ + "ssl/quic/quic_obj.c" + ], + "ssl/quic/libssl-lib-quic_port.o" => [ + "ssl/quic/quic_port.c" + ], + "ssl/quic/libssl-lib-quic_rcidm.o" => [ + "ssl/quic/quic_rcidm.c" + ], + "ssl/quic/libssl-lib-quic_reactor.o" => [ + "ssl/quic/quic_reactor.c" + ], + "ssl/quic/libssl-lib-quic_reactor_wait_ctx.o" => [ + "ssl/quic/quic_reactor_wait_ctx.c" + ], + "ssl/quic/libssl-lib-quic_record_rx.o" => [ + "ssl/quic/quic_record_rx.c" + ], + "ssl/quic/libssl-lib-quic_record_shared.o" => [ + "ssl/quic/quic_record_shared.c" + ], + "ssl/quic/libssl-lib-quic_record_tx.o" => [ + "ssl/quic/quic_record_tx.c" + ], + "ssl/quic/libssl-lib-quic_record_util.o" => [ + "ssl/quic/quic_record_util.c" + ], + "ssl/quic/libssl-lib-quic_rstream.o" => [ + "ssl/quic/quic_rstream.c" ], - "ssl/record/libssl-lib-dtls1_bitmap.o" => [ - "ssl/record/dtls1_bitmap.c" + "ssl/quic/libssl-lib-quic_rx_depack.o" => [ + "ssl/quic/quic_rx_depack.c" + ], + "ssl/quic/libssl-lib-quic_sf_list.o" => [ + "ssl/quic/quic_sf_list.c" + ], + "ssl/quic/libssl-lib-quic_srt_gen.o" => [ + "ssl/quic/quic_srt_gen.c" + ], + "ssl/quic/libssl-lib-quic_srtm.o" => [ + "ssl/quic/quic_srtm.c" + ], + "ssl/quic/libssl-lib-quic_sstream.o" => [ + "ssl/quic/quic_sstream.c" + ], + "ssl/quic/libssl-lib-quic_statm.o" => [ + "ssl/quic/quic_statm.c" + ], + "ssl/quic/libssl-lib-quic_stream_map.o" => [ + "ssl/quic/quic_stream_map.c" + ], + "ssl/quic/libssl-lib-quic_thread_assist.o" => [ + "ssl/quic/quic_thread_assist.c" + ], + "ssl/quic/libssl-lib-quic_tls.o" => [ + "ssl/quic/quic_tls.c" + ], + "ssl/quic/libssl-lib-quic_tls_api.o" => [ + "ssl/quic/quic_tls_api.c" + ], + "ssl/quic/libssl-lib-quic_trace.o" => [ + "ssl/quic/quic_trace.c" + ], + "ssl/quic/libssl-lib-quic_tserver.o" => [ + "ssl/quic/quic_tserver.c" + ], + "ssl/quic/libssl-lib-quic_txp.o" => [ + "ssl/quic/quic_txp.c" + ], + "ssl/quic/libssl-lib-quic_txpim.o" => [ + "ssl/quic/quic_txpim.c" + ], + "ssl/quic/libssl-lib-quic_types.o" => [ + "ssl/quic/quic_types.c" + ], + "ssl/quic/libssl-lib-quic_wire.o" => [ + "ssl/quic/quic_wire.c" + ], + "ssl/quic/libssl-lib-quic_wire_pkt.o" => [ + "ssl/quic/quic_wire_pkt.c" + ], + "ssl/quic/libssl-lib-uint_set.o" => [ + "ssl/quic/uint_set.c" ], "ssl/record/libssl-lib-rec_layer_d1.o" => [ "ssl/record/rec_layer_d1.c" @@ -25583,14 +30017,44 @@ our %unified_info = ( "ssl/record/libssl-lib-rec_layer_s3.o" => [ "ssl/record/rec_layer_s3.c" ], - "ssl/record/libssl-lib-ssl3_buffer.o" => [ - "ssl/record/ssl3_buffer.c" + "ssl/record/methods/libcommon-lib-tls_pad.o" => [ + "ssl/record/methods/tls_pad.c" + ], + "ssl/record/methods/libdefault-lib-ssl3_cbc.o" => [ + "ssl/record/methods/ssl3_cbc.c" + ], + "ssl/record/methods/libfips-lib-ssl3_cbc.o" => [ + "ssl/record/methods/ssl3_cbc.c" + ], + "ssl/record/methods/libssl-lib-dtls_meth.o" => [ + "ssl/record/methods/dtls_meth.c" + ], + "ssl/record/methods/libssl-lib-ssl3_meth.o" => [ + "ssl/record/methods/ssl3_meth.c" + ], + "ssl/record/methods/libssl-lib-tls13_meth.o" => [ + "ssl/record/methods/tls13_meth.c" + ], + "ssl/record/methods/libssl-lib-tls1_meth.o" => [ + "ssl/record/methods/tls1_meth.c" + ], + "ssl/record/methods/libssl-lib-tls_common.o" => [ + "ssl/record/methods/tls_common.c" ], - "ssl/record/libssl-lib-ssl3_record.o" => [ - "ssl/record/ssl3_record.c" + "ssl/record/methods/libssl-lib-tls_multib.o" => [ + "ssl/record/methods/tls_multib.c" ], - "ssl/record/libssl-lib-ssl3_record_tls13.o" => [ - "ssl/record/ssl3_record_tls13.c" + "ssl/record/methods/libssl-lib-tlsany_meth.o" => [ + "ssl/record/methods/tlsany_meth.c" + ], + "ssl/rio/libssl-lib-poll_builder.o" => [ + "ssl/rio/poll_builder.c" + ], + "ssl/rio/libssl-lib-poll_immediate.o" => [ + "ssl/rio/poll_immediate.c" + ], + "ssl/rio/libssl-lib-rio_notifier.o" => [ + "ssl/rio/rio_notifier.c" ], "ssl/statem/libssl-lib-extensions.o" => [ "ssl/statem/extensions.c" @@ -25686,6 +30150,8 @@ our %unified_info = ( "test/asn1_string_table_test.c" ], "test/asn1_time_test" => [ + "crypto/asn1/asn1_time_test-bin-a_time.o", + "crypto/asn1_time_test-bin-ctype.o", "test/asn1_time_test-bin-asn1_time_test.o" ], "test/asn1_time_test-bin-asn1_time_test.o" => [ @@ -25716,6 +30182,18 @@ our %unified_info = ( "test/bftest-bin-bftest.o" => [ "test/bftest.c" ], + "test/bio_addr_test" => [ + "test/bio_addr_test-bin-bio_addr_test.o" + ], + "test/bio_addr_test-bin-bio_addr_test.o" => [ + "test/bio_addr_test.c" + ], + "test/bio_base64_test" => [ + "test/bio_base64_test-bin-bio_base64_test.o" + ], + "test/bio_base64_test-bin-bio_base64_test.o" => [ + "test/bio_base64_test.c" + ], "test/bio_callback_test" => [ "test/bio_callback_test-bin-bio_callback_test.o" ], @@ -25728,6 +30206,12 @@ our %unified_info = ( "test/bio_core_test-bin-bio_core_test.o" => [ "test/bio_core_test.c" ], + "test/bio_dgram_test" => [ + "test/bio_dgram_test-bin-bio_dgram_test.o" + ], + "test/bio_dgram_test-bin-bio_dgram_test.o" => [ + "test/bio_dgram_test.c" + ], "test/bio_enc_test" => [ "test/bio_enc_test-bin-bio_enc_test.o" ], @@ -25740,6 +30224,12 @@ our %unified_info = ( "test/bio_memleak_test-bin-bio_memleak_test.o" => [ "test/bio_memleak_test.c" ], + "test/bio_meth_test" => [ + "test/bio_meth_test-bin-bio_meth_test.o" + ], + "test/bio_meth_test-bin-bio_meth_test.o" => [ + "test/bio_meth_test.c" + ], "test/bio_prefix_text" => [ "test/bio_prefix_text-bin-bio_prefix_text.o" ], @@ -25758,6 +30248,12 @@ our %unified_info = ( "test/bio_readbuffer_test-bin-bio_readbuffer_test.o" => [ "test/bio_readbuffer_test.c" ], + "test/bio_tfo_test" => [ + "test/bio_tfo_test-bin-bio_tfo_test.o" + ], + "test/bio_tfo_test-bin-bio_tfo_test.o" => [ + "test/bio_tfo_test.c" + ], "test/bioprinttest" => [ "test/bioprinttest-bin-bioprinttest.o" ], @@ -25776,6 +30272,12 @@ our %unified_info = ( "test/bntest-bin-bntest.o" => [ "test/bntest.c" ], + "test/build_wincrypt_test" => [ + "test/build_wincrypt_test-bin-build_wincrypt_test.o" + ], + "test/build_wincrypt_test-bin-build_wincrypt_test.o" => [ + "test/build_wincrypt_test.c" + ], "test/buildtest_c_aes" => [ "test/buildtest_c_aes-bin-buildtest_aes.o" ], @@ -25806,6 +30308,12 @@ our %unified_info = ( "test/buildtest_c_buffer-bin-buildtest_buffer.o" => [ "test/buildtest_buffer.c" ], + "test/buildtest_c_byteorder" => [ + "test/buildtest_c_byteorder-bin-buildtest_byteorder.o" + ], + "test/buildtest_c_byteorder-bin-buildtest_byteorder.o" => [ + "test/buildtest_byteorder.c" + ], "test/buildtest_c_camellia" => [ "test/buildtest_c_camellia-bin-buildtest_camellia.o" ], @@ -25854,12 +30362,6 @@ our %unified_info = ( "test/buildtest_c_core_dispatch-bin-buildtest_core_dispatch.o" => [ "test/buildtest_core_dispatch.c" ], - "test/buildtest_c_core_names" => [ - "test/buildtest_c_core_names-bin-buildtest_core_names.o" - ], - "test/buildtest_c_core_names-bin-buildtest_core_names.o" => [ - "test/buildtest_core_names.c" - ], "test/buildtest_c_core_object" => [ "test/buildtest_c_core_object-bin-buildtest_core_object.o" ], @@ -25908,6 +30410,12 @@ our %unified_info = ( "test/buildtest_c_e_os2-bin-buildtest_e_os2.o" => [ "test/buildtest_e_os2.c" ], + "test/buildtest_c_e_ostime" => [ + "test/buildtest_c_e_ostime-bin-buildtest_e_ostime.o" + ], + "test/buildtest_c_e_ostime-bin-buildtest_e_ostime.o" => [ + "test/buildtest_e_ostime.c" + ], "test/buildtest_c_ebcdic" => [ "test/buildtest_c_ebcdic-bin-buildtest_ebcdic.o" ], @@ -25962,6 +30470,12 @@ our %unified_info = ( "test/buildtest_c_hmac-bin-buildtest_hmac.o" => [ "test/buildtest_hmac.c" ], + "test/buildtest_c_hpke" => [ + "test/buildtest_c_hpke-bin-buildtest_hpke.o" + ], + "test/buildtest_c_hpke-bin-buildtest_hpke.o" => [ + "test/buildtest_hpke.c" + ], "test/buildtest_c_http" => [ "test/buildtest_c_http-bin-buildtest_http.o" ], @@ -25974,6 +30488,12 @@ our %unified_info = ( "test/buildtest_c_idea-bin-buildtest_idea.o" => [ "test/buildtest_idea.c" ], + "test/buildtest_c_indicator" => [ + "test/buildtest_c_indicator-bin-buildtest_indicator.o" + ], + "test/buildtest_c_indicator-bin-buildtest_indicator.o" => [ + "test/buildtest_indicator.c" + ], "test/buildtest_c_kdf" => [ "test/buildtest_c_kdf-bin-buildtest_kdf.o" ], @@ -26004,6 +30524,12 @@ our %unified_info = ( "test/buildtest_c_mdc2-bin-buildtest_mdc2.o" => [ "test/buildtest_mdc2.c" ], + "test/buildtest_c_ml_kem" => [ + "test/buildtest_c_ml_kem-bin-buildtest_ml_kem.o" + ], + "test/buildtest_c_ml_kem-bin-buildtest_ml_kem.o" => [ + "test/buildtest_ml_kem.c" + ], "test/buildtest_c_modes" => [ "test/buildtest_c_modes-bin-buildtest_modes.o" ], @@ -26064,6 +30590,12 @@ our %unified_info = ( "test/buildtest_c_provider-bin-buildtest_provider.o" => [ "test/buildtest_provider.c" ], + "test/buildtest_c_quic" => [ + "test/buildtest_c_quic-bin-buildtest_quic.o" + ], + "test/buildtest_c_quic-bin-buildtest_quic.o" => [ + "test/buildtest_quic.c" + ], "test/buildtest_c_rand" => [ "test/buildtest_c_rand-bin-buildtest_rand.o" ], @@ -26148,6 +30680,12 @@ our %unified_info = ( "test/buildtest_c_symhacks-bin-buildtest_symhacks.o" => [ "test/buildtest_symhacks.c" ], + "test/buildtest_c_thread" => [ + "test/buildtest_c_thread-bin-buildtest_thread.o" + ], + "test/buildtest_c_thread-bin-buildtest_thread.o" => [ + "test/buildtest_thread.c" + ], "test/buildtest_c_tls1" => [ "test/buildtest_c_tls1-bin-buildtest_tls1.o" ], @@ -26178,6 +30716,29 @@ our %unified_info = ( "test/buildtest_c_whrlpool-bin-buildtest_whrlpool.o" => [ "test/buildtest_whrlpool.c" ], + "test/byteorder_test" => [ + "test/byteorder_test-bin-byteorder_test.o" + ], + "test/byteorder_test-bin-byteorder_test.o" => [ + "test/byteorder_test.c" + ], + "test/ca_internals_test" => [ + "apps/ca_internals_test-bin-ca.o", + "apps/lib/ca_internals_test-bin-app_libctx.o", + "apps/lib/ca_internals_test-bin-app_provider.o", + "apps/lib/ca_internals_test-bin-app_rand.o", + "apps/lib/ca_internals_test-bin-app_x509.o", + "apps/lib/ca_internals_test-bin-apps.o", + "apps/lib/ca_internals_test-bin-apps_ui.o", + "apps/lib/ca_internals_test-bin-engine.o", + "apps/lib/ca_internals_test-bin-fmt.o", + "crypto/asn1/ca_internals_test-bin-a_time.o", + "crypto/ca_internals_test-bin-ctype.o", + "test/ca_internals_test-bin-ca_internals_test.o" + ], + "test/ca_internals_test-bin-ca_internals_test.o" => [ + "test/ca_internals_test.c" + ], "test/casttest" => [ "test/casttest-bin-casttest.o" ], @@ -26356,6 +30917,12 @@ our %unified_info = ( "test/danetest-bin-danetest.o" => [ "test/danetest.c" ], + "test/decoder_propq_test" => [ + "test/decoder_propq_test-bin-decoder_propq_test.o" + ], + "test/decoder_propq_test-bin-decoder_propq_test.o" => [ + "test/decoder_propq_test.c" + ], "test/defltfips_test" => [ "test/defltfips_test-bin-defltfips_test.o" ], @@ -26437,6 +31004,7 @@ our %unified_info = ( "test/ectest.c" ], "test/endecode_test" => [ + "providers/endecode_test-bin-legacyprov.o", "test/endecode_test-bin-endecode_test.o", "test/helpers/endecode_test-bin-predefined_dhparams.o" ], @@ -26469,17 +31037,29 @@ our %unified_info = ( ], "test/evp_extra_test" => [ "providers/evp_extra_test-bin-legacyprov.o", - "test/evp_extra_test-bin-evp_extra_test.o" + "test/evp_extra_test-bin-evp_extra_test.o", + "test/evp_extra_test-bin-fake_pipelineprov.o", + "test/evp_extra_test-bin-fake_rsaprov.o" ], "test/evp_extra_test-bin-evp_extra_test.o" => [ "test/evp_extra_test.c" ], + "test/evp_extra_test-bin-fake_pipelineprov.o" => [ + "test/fake_pipelineprov.c" + ], + "test/evp_extra_test-bin-fake_rsaprov.o" => [ + "test/fake_rsaprov.c" + ], "test/evp_extra_test2" => [ - "test/evp_extra_test2-bin-evp_extra_test2.o" + "test/evp_extra_test2-bin-evp_extra_test2.o", + "test/evp_extra_test2-bin-tls-provider.o" ], "test/evp_extra_test2-bin-evp_extra_test2.o" => [ "test/evp_extra_test2.c" ], + "test/evp_extra_test2-bin-tls-provider.o" => [ + "test/tls-provider.c" + ], "test/evp_fetch_prov_test" => [ "test/evp_fetch_prov_test-bin-evp_fetch_prov_test.o" ], @@ -26504,6 +31084,12 @@ our %unified_info = ( "test/evp_pkey_ctx_new_from_name-bin-evp_pkey_ctx_new_from_name.o" => [ "test/evp_pkey_ctx_new_from_name.c" ], + "test/evp_pkey_dhkem_test" => [ + "test/evp_pkey_dhkem_test-bin-evp_pkey_dhkem_test.o" + ], + "test/evp_pkey_dhkem_test-bin-evp_pkey_dhkem_test.o" => [ + "test/evp_pkey_dhkem_test.c" + ], "test/evp_pkey_dparams_test" => [ "test/evp_pkey_dparams_test-bin-evp_pkey_dparams_test.o" ], @@ -26516,12 +31102,28 @@ our %unified_info = ( "test/evp_pkey_provided_test-bin-evp_pkey_provided_test.o" => [ "test/evp_pkey_provided_test.c" ], + "test/evp_skey_test" => [ + "test/evp_skey_test-bin-evp_skey_test.o", + "test/evp_skey_test-bin-fake_cipherprov.o" + ], + "test/evp_skey_test-bin-evp_skey_test.o" => [ + "test/evp_skey_test.c" + ], + "test/evp_skey_test-bin-fake_cipherprov.o" => [ + "test/fake_cipherprov.c" + ], "test/evp_test" => [ "test/evp_test-bin-evp_test.o" ], "test/evp_test-bin-evp_test.o" => [ "test/evp_test.c" ], + "test/evp_xof_test" => [ + "test/evp_xof_test-bin-evp_xof_test.o" + ], + "test/evp_xof_test-bin-evp_xof_test.o" => [ + "test/evp_xof_test.c" + ], "test/exdatatest" => [ "test/exdatatest-bin-exdatatest.o" ], @@ -26607,15 +31209,108 @@ our %unified_info = ( "test/helpers/fatalerrtest-bin-ssltestlib.o" => [ "test/helpers/ssltestlib.c" ], + "test/helpers/json_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/json_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/json_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/json_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/pkcs12_api_test-bin-pkcs12.o" => [ + "test/helpers/pkcs12.c" + ], "test/helpers/pkcs12_format_test-bin-pkcs12.o" => [ "test/helpers/pkcs12.c" ], + "test/helpers/quic_multistream_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quic_multistream_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quic_multistream_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quic_multistream_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quic_newcid_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quic_newcid_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quic_newcid_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quic_newcid_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quic_radix_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quic_radix_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quic_radix_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quic_radix_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quic_srt_gen_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quic_srt_gen_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quic_srt_gen_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quic_srt_gen_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quicapitest-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quicapitest-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quicapitest-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quicapitest-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quicfaultstest-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quicfaultstest-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quicfaultstest-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quicfaultstest-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], "test/helpers/recordlentest-bin-ssltestlib.o" => [ "test/helpers/ssltestlib.c" ], + "test/helpers/rpktest-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], "test/helpers/servername_test-bin-ssltestlib.o" => [ "test/helpers/ssltestlib.c" ], + "test/helpers/ssl_handshake_rtt_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], "test/helpers/ssl_old_test-bin-predefined_dhparams.o" => [ "test/helpers/predefined_dhparams.c" ], @@ -26643,6 +31338,9 @@ our %unified_info = ( "test/helpers/tls13ccstest-bin-ssltestlib.o" => [ "test/helpers/ssltestlib.c" ], + "test/helpers/tls13groupselection_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], "test/hexstr_test" => [ "test/hexstr_test-bin-hexstr_test.o" ], @@ -26655,6 +31353,12 @@ our %unified_info = ( "test/hmactest-bin-hmactest.o" => [ "test/hmactest.c" ], + "test/hpke_test" => [ + "test/hpke_test-bin-hpke_test.o" + ], + "test/hpke_test-bin-hpke_test.o" => [ + "test/hpke_test.c" + ], "test/http_test" => [ "test/http_test-bin-http_test.o" ], @@ -26673,6 +31377,16 @@ our %unified_info = ( "test/igetest-bin-igetest.o" => [ "test/igetest.c" ], + "test/json_test" => [ + "test/helpers/json_test-bin-noisydgrambio.o", + "test/helpers/json_test-bin-pktsplitbio.o", + "test/helpers/json_test-bin-quictestlib.o", + "test/helpers/json_test-bin-ssltestlib.o", + "test/json_test-bin-json_test.o" + ], + "test/json_test-bin-json_test.o" => [ + "test/json_test.c" + ], "test/keymgmt_internal_test" => [ "test/keymgmt_internal_test-bin-keymgmt_internal_test.o" ], @@ -26693,6 +31407,7 @@ our %unified_info = ( "test/testutil/libtestutil-lib-driver.o", "test/testutil/libtestutil-lib-fake_random.o", "test/testutil/libtestutil-lib-format_output.o", + "test/testutil/libtestutil-lib-helper.o", "test/testutil/libtestutil-lib-load.o", "test/testutil/libtestutil-lib-main.o", "test/testutil/libtestutil-lib-options.o", @@ -26705,6 +31420,12 @@ our %unified_info = ( "test/testutil/libtestutil-lib-tests.o", "test/testutil/libtestutil-lib-testutil_init.o" ], + "test/list_test" => [ + "test/list_test-bin-list_test.o" + ], + "test/list_test-bin-list_test.o" => [ + "test/list_test.c" + ], "test/localetest" => [ "test/localetest-bin-localetest.o" ], @@ -26723,12 +31444,36 @@ our %unified_info = ( "test/mdc2test-bin-mdc2test.o" => [ "test/mdc2test.c" ], + "test/membio_test" => [ + "test/membio_test-bin-membio_test.o" + ], + "test/membio_test-bin-membio_test.o" => [ + "test/membio_test.c" + ], "test/memleaktest" => [ "test/memleaktest-bin-memleaktest.o" ], "test/memleaktest-bin-memleaktest.o" => [ "test/memleaktest.c" ], + "test/ml_dsa_test" => [ + "test/ml_dsa_test-bin-ml_dsa_test.o" + ], + "test/ml_dsa_test-bin-ml_dsa_test.o" => [ + "test/ml_dsa_test.c" + ], + "test/ml_kem_evp_extra_test" => [ + "test/ml_kem_evp_extra_test-bin-ml_kem_evp_extra_test.o" + ], + "test/ml_kem_evp_extra_test-bin-ml_kem_evp_extra_test.o" => [ + "test/ml_kem_evp_extra_test.c" + ], + "test/ml_kem_internal_test" => [ + "test/ml_kem_internal_test-bin-ml_kem_internal_test.o" + ], + "test/ml_kem_internal_test-bin-ml_kem_internal_test.o" => [ + "test/ml_kem_internal_test.c" + ], "test/modes_internal_test" => [ "test/modes_internal_test-bin-modes_internal_test.o" ], @@ -26772,11 +31517,18 @@ our %unified_info = ( "test/p_test.c" ], "test/packettest" => [ + "crypto/packettest-bin-quic_vlint.o", "test/packettest-bin-packettest.o" ], "test/packettest-bin-packettest.o" => [ "test/packettest.c" ], + "test/pairwise_fail_test" => [ + "test/pairwise_fail_test-bin-pairwise_fail_test.o" + ], + "test/pairwise_fail_test-bin-pairwise_fail_test.o" => [ + "test/pairwise_fail_test.c" + ], "test/param_build_test" => [ "test/param_build_test-bin-param_build_test.o" ], @@ -26825,6 +31577,13 @@ our %unified_info = ( "test/pemtest-bin-pemtest.o" => [ "test/pemtest.c" ], + "test/pkcs12_api_test" => [ + "test/helpers/pkcs12_api_test-bin-pkcs12.o", + "test/pkcs12_api_test-bin-pkcs12_api_test.o" + ], + "test/pkcs12_api_test-bin-pkcs12_api_test.o" => [ + "test/pkcs12_api_test.c" + ], "test/pkcs12_format_test" => [ "test/helpers/pkcs12_format_test-bin-pkcs12.o", "test/pkcs12_format_test-bin-pkcs12_format_test.o" @@ -26856,6 +31615,12 @@ our %unified_info = ( "test/poly1305_internal_test-bin-poly1305_internal_test.o" => [ "test/poly1305_internal_test.c" ], + "test/priority_queue_test" => [ + "test/priority_queue_test-bin-priority_queue_test.o" + ], + "test/priority_queue_test-bin-priority_queue_test.o" => [ + "test/priority_queue_test.c" + ], "test/property_test" => [ "test/property_test-bin-property_test.o" ], @@ -26874,6 +31639,12 @@ our %unified_info = ( "test/provfetchtest-bin-provfetchtest.o" => [ "test/provfetchtest.c" ], + "test/provider_default_search_path_test" => [ + "test/provider_default_search_path_test-bin-provider_default_search_path_test.o" + ], + "test/provider_default_search_path_test-bin-provider_default_search_path_test.o" => [ + "test/provider_default_search_path_test.c" + ], "test/provider_fallback_test" => [ "test/provider_fallback_test-bin-provider_fallback_test.o" ], @@ -26922,6 +31693,174 @@ our %unified_info = ( "test/punycode_test-bin-punycode_test.o" => [ "test/punycode_test.c" ], + "test/quic_ackm_test" => [ + "test/quic_ackm_test-bin-cc_dummy.o", + "test/quic_ackm_test-bin-quic_ackm_test.o" + ], + "test/quic_ackm_test-bin-cc_dummy.o" => [ + "test/cc_dummy.c" + ], + "test/quic_ackm_test-bin-quic_ackm_test.o" => [ + "test/quic_ackm_test.c" + ], + "test/quic_cc_test" => [ + "test/quic_cc_test-bin-quic_cc_test.o" + ], + "test/quic_cc_test-bin-quic_cc_test.o" => [ + "test/quic_cc_test.c" + ], + "test/quic_cfq_test" => [ + "test/quic_cfq_test-bin-quic_cfq_test.o" + ], + "test/quic_cfq_test-bin-quic_cfq_test.o" => [ + "test/quic_cfq_test.c" + ], + "test/quic_client_test" => [ + "test/quic_client_test-bin-quic_client_test.o" + ], + "test/quic_client_test-bin-quic_client_test.o" => [ + "test/quic_client_test.c" + ], + "test/quic_fc_test" => [ + "test/quic_fc_test-bin-quic_fc_test.o" + ], + "test/quic_fc_test-bin-quic_fc_test.o" => [ + "test/quic_fc_test.c" + ], + "test/quic_fifd_test" => [ + "test/quic_fifd_test-bin-cc_dummy.o", + "test/quic_fifd_test-bin-quic_fifd_test.o" + ], + "test/quic_fifd_test-bin-cc_dummy.o" => [ + "test/cc_dummy.c" + ], + "test/quic_fifd_test-bin-quic_fifd_test.o" => [ + "test/quic_fifd_test.c" + ], + "test/quic_lcidm_test" => [ + "test/quic_lcidm_test-bin-quic_lcidm_test.o" + ], + "test/quic_lcidm_test-bin-quic_lcidm_test.o" => [ + "test/quic_lcidm_test.c" + ], + "test/quic_multistream_test" => [ + "test/helpers/quic_multistream_test-bin-noisydgrambio.o", + "test/helpers/quic_multistream_test-bin-pktsplitbio.o", + "test/helpers/quic_multistream_test-bin-quictestlib.o", + "test/helpers/quic_multistream_test-bin-ssltestlib.o", + "test/quic_multistream_test-bin-quic_multistream_test.o" + ], + "test/quic_multistream_test-bin-quic_multistream_test.o" => [ + "test/quic_multistream_test.c" + ], + "test/quic_newcid_test" => [ + "test/helpers/quic_newcid_test-bin-noisydgrambio.o", + "test/helpers/quic_newcid_test-bin-pktsplitbio.o", + "test/helpers/quic_newcid_test-bin-quictestlib.o", + "test/helpers/quic_newcid_test-bin-ssltestlib.o", + "test/quic_newcid_test-bin-quic_newcid_test.o" + ], + "test/quic_newcid_test-bin-quic_newcid_test.o" => [ + "test/quic_newcid_test.c" + ], + "test/quic_qlog_test" => [ + "test/quic_qlog_test-bin-quic_qlog_test.o" + ], + "test/quic_qlog_test-bin-quic_qlog_test.o" => [ + "test/quic_qlog_test.c" + ], + "test/quic_radix_test" => [ + "test/helpers/quic_radix_test-bin-noisydgrambio.o", + "test/helpers/quic_radix_test-bin-pktsplitbio.o", + "test/helpers/quic_radix_test-bin-quictestlib.o", + "test/helpers/quic_radix_test-bin-ssltestlib.o", + "test/radix/quic_radix_test-bin-quic_radix.o" + ], + "test/quic_rcidm_test" => [ + "test/quic_rcidm_test-bin-quic_rcidm_test.o" + ], + "test/quic_rcidm_test-bin-quic_rcidm_test.o" => [ + "test/quic_rcidm_test.c" + ], + "test/quic_record_test" => [ + "test/quic_record_test-bin-quic_record_test.o" + ], + "test/quic_record_test-bin-quic_record_test.o" => [ + "test/quic_record_test.c" + ], + "test/quic_srt_gen_test" => [ + "test/helpers/quic_srt_gen_test-bin-noisydgrambio.o", + "test/helpers/quic_srt_gen_test-bin-pktsplitbio.o", + "test/helpers/quic_srt_gen_test-bin-quictestlib.o", + "test/helpers/quic_srt_gen_test-bin-ssltestlib.o", + "test/quic_srt_gen_test-bin-quic_srt_gen_test.o" + ], + "test/quic_srt_gen_test-bin-quic_srt_gen_test.o" => [ + "test/quic_srt_gen_test.c" + ], + "test/quic_srtm_test" => [ + "test/quic_srtm_test-bin-quic_srtm_test.o" + ], + "test/quic_srtm_test-bin-quic_srtm_test.o" => [ + "test/quic_srtm_test.c" + ], + "test/quic_stream_test" => [ + "test/quic_stream_test-bin-quic_stream_test.o" + ], + "test/quic_stream_test-bin-quic_stream_test.o" => [ + "test/quic_stream_test.c" + ], + "test/quic_tserver_test" => [ + "test/quic_tserver_test-bin-quic_tserver_test.o" + ], + "test/quic_tserver_test-bin-quic_tserver_test.o" => [ + "test/quic_tserver_test.c" + ], + "test/quic_txp_test" => [ + "test/quic_txp_test-bin-cc_dummy.o", + "test/quic_txp_test-bin-quic_txp_test.o" + ], + "test/quic_txp_test-bin-cc_dummy.o" => [ + "test/cc_dummy.c" + ], + "test/quic_txp_test-bin-quic_txp_test.o" => [ + "test/quic_txp_test.c" + ], + "test/quic_txpim_test" => [ + "test/quic_txpim_test-bin-quic_txpim_test.o" + ], + "test/quic_txpim_test-bin-quic_txpim_test.o" => [ + "test/quic_txpim_test.c" + ], + "test/quic_wire_test" => [ + "test/quic_wire_test-bin-quic_wire_test.o" + ], + "test/quic_wire_test-bin-quic_wire_test.o" => [ + "test/quic_wire_test.c" + ], + "test/quicapitest" => [ + "test/helpers/quicapitest-bin-noisydgrambio.o", + "test/helpers/quicapitest-bin-pktsplitbio.o", + "test/helpers/quicapitest-bin-quictestlib.o", + "test/helpers/quicapitest-bin-ssltestlib.o", + "test/quicapitest-bin-quicapitest.o" + ], + "test/quicapitest-bin-quicapitest.o" => [ + "test/quicapitest.c" + ], + "test/quicfaultstest" => [ + "test/helpers/quicfaultstest-bin-noisydgrambio.o", + "test/helpers/quicfaultstest-bin-pktsplitbio.o", + "test/helpers/quicfaultstest-bin-quictestlib.o", + "test/helpers/quicfaultstest-bin-ssltestlib.o", + "test/quicfaultstest-bin-quicfaultstest.o" + ], + "test/quicfaultstest-bin-quicfaultstest.o" => [ + "test/quicfaultstest.c" + ], + "test/radix/quic_radix_test-bin-quic_radix.o" => [ + "test/radix/quic_radix.c" + ], "test/rand_status_test" => [ "test/rand_status_test-bin-rand_status_test.o" ], @@ -26952,11 +31891,11 @@ our %unified_info = ( "test/rc5test-bin-rc5test.o" => [ "test/rc5test.c" ], - "test/rdrand_sanitytest" => [ - "test/rdrand_sanitytest-bin-rdrand_sanitytest.o" + "test/rdcpu_sanitytest" => [ + "test/rdcpu_sanitytest-bin-rdcpu_sanitytest.o" ], - "test/rdrand_sanitytest-bin-rdrand_sanitytest.o" => [ - "test/rdrand_sanitytest.c" + "test/rdcpu_sanitytest-bin-rdcpu_sanitytest.o" => [ + "test/rdcpu_sanitytest.c" ], "test/recordlentest" => [ "test/helpers/recordlentest-bin-ssltestlib.o", @@ -26965,6 +31904,13 @@ our %unified_info = ( "test/recordlentest-bin-recordlentest.o" => [ "test/recordlentest.c" ], + "test/rpktest" => [ + "test/helpers/rpktest-bin-ssltestlib.o", + "test/rpktest-bin-rpktest.o" + ], + "test/rpktest-bin-rpktest.o" => [ + "test/rpktest.c" + ], "test/rsa_complex" => [ "test/rsa_complex-bin-rsa_complex.o" ], @@ -26989,6 +31935,18 @@ our %unified_info = ( "test/rsa_test-bin-rsa_test.o" => [ "test/rsa_test.c" ], + "test/rsa_x931_test" => [ + "test/rsa_x931_test-bin-rsa_x931_test.o" + ], + "test/rsa_x931_test-bin-rsa_x931_test.o" => [ + "test/rsa_x931_test.c" + ], + "test/safe_math_test" => [ + "test/safe_math_test-bin-safe_math_test.o" + ], + "test/safe_math_test-bin-safe_math_test.o" => [ + "test/safe_math_test.c" + ], "test/sanitytest" => [ "test/sanitytest-bin-sanitytest.o" ], @@ -27020,6 +31978,12 @@ our %unified_info = ( "test/siphash_internal_test-bin-siphash_internal_test.o" => [ "test/siphash_internal_test.c" ], + "test/slh_dsa_test" => [ + "test/slh_dsa_test-bin-slh_dsa_test.o" + ], + "test/slh_dsa_test-bin-slh_dsa_test.o" => [ + "test/slh_dsa_test.c" + ], "test/sm2_internal_test" => [ "test/sm2_internal_test-bin-sm2_internal_test.o" ], @@ -27062,6 +32026,13 @@ our %unified_info = ( "test/ssl_ctx_test-bin-ssl_ctx_test.o" => [ "test/ssl_ctx_test.c" ], + "test/ssl_handshake_rtt_test" => [ + "test/helpers/ssl_handshake_rtt_test-bin-ssltestlib.o", + "test/ssl_handshake_rtt_test-bin-ssl_handshake_rtt_test.o" + ], + "test/ssl_handshake_rtt_test-bin-ssl_handshake_rtt_test.o" => [ + "test/ssl_handshake_rtt_test.c" + ], "test/ssl_old_test" => [ "test/helpers/ssl_old_test-bin-predefined_dhparams.o", "test/ssl_old_test-bin-ssl_old_test.o" @@ -27120,6 +32091,12 @@ our %unified_info = ( "test/stack_test-bin-stack_test.o" => [ "test/stack_test.c" ], + "test/strtoultest" => [ + "test/strtoultest-bin-strtoultest.o" + ], + "test/strtoultest-bin-strtoultest.o" => [ + "test/strtoultest.c" + ], "test/sysdefaulttest" => [ "test/sysdefaulttest-bin-sysdefaulttest.o" ], @@ -27150,6 +32127,9 @@ our %unified_info = ( "test/testutil/libtestutil-lib-format_output.o" => [ "test/testutil/format_output.c" ], + "test/testutil/libtestutil-lib-helper.o" => [ + "test/testutil/helper.c" + ], "test/testutil/libtestutil-lib-load.o" => [ "test/testutil/load.c" ], @@ -27183,6 +32163,12 @@ our %unified_info = ( "test/testutil/libtestutil-lib-testutil_init.o" => [ "test/testutil/testutil_init.c" ], + "test/threadpool_test" => [ + "test/threadpool_test-bin-threadpool_test.o" + ], + "test/threadpool_test-bin-threadpool_test.o" => [ + "test/threadpool_test.c" + ], "test/threadstest" => [ "test/threadstest-bin-threadstest.o" ], @@ -27201,6 +32187,12 @@ our %unified_info = ( "test/time_offset_test-bin-time_offset_test.o" => [ "test/time_offset_test.c" ], + "test/time_test" => [ + "test/time_test-bin-time_test.o" + ], + "test/time_test-bin-time_test.o" => [ + "test/time_test.c" + ], "test/tls13ccstest" => [ "test/helpers/tls13ccstest-bin-ssltestlib.o", "test/tls13ccstest-bin-tls13ccstest.o" @@ -27214,6 +32206,13 @@ our %unified_info = ( "test/tls13encryptiontest-bin-tls13encryptiontest.o" => [ "test/tls13encryptiontest.c" ], + "test/tls13groupselection_test" => [ + "test/helpers/tls13groupselection_test-bin-ssltestlib.o", + "test/tls13groupselection_test-bin-tls13groupselection_test.o" + ], + "test/tls13groupselection_test-bin-tls13groupselection_test.o" => [ + "test/tls13groupselection_test.c" + ], "test/trace_api_test" => [ "test/trace_api_test-bin-trace_api_test.o" ], @@ -27269,6 +32268,12 @@ our %unified_info = ( "test/wpackettest-bin-wpackettest.o" => [ "test/wpackettest.c" ], + "test/x509_acert_test" => [ + "test/x509_acert_test-bin-x509_acert_test.o" + ], + "test/x509_acert_test-bin-x509_acert_test.o" => [ + "test/x509_acert_test.c" + ], "test/x509_check_cert_pkey_test" => [ "test/x509_check_cert_pkey_test-bin-x509_check_cert_pkey_test.o" ], @@ -27287,6 +32292,24 @@ our %unified_info = ( "test/x509_internal_test-bin-x509_internal_test.o" => [ "test/x509_internal_test.c" ], + "test/x509_load_cert_file_test" => [ + "test/x509_load_cert_file_test-bin-x509_load_cert_file_test.o" + ], + "test/x509_load_cert_file_test-bin-x509_load_cert_file_test.o" => [ + "test/x509_load_cert_file_test.c" + ], + "test/x509_req_test" => [ + "test/x509_req_test-bin-x509_req_test.o" + ], + "test/x509_req_test-bin-x509_req_test.o" => [ + "test/x509_req_test.c" + ], + "test/x509_test" => [ + "test/x509_test-bin-x509_test.o" + ], + "test/x509_test-bin-x509_test.o" => [ + "test/x509_test.c" + ], "test/x509_time_test" => [ "test/x509_time_test-bin-x509_time_test.o" ], @@ -27350,6 +32373,7 @@ my @makevars = ( "LDLIBS", "MT", "MTFLAGS", + "OBJCOPY", "PERL", "RANLIB", "RC", @@ -27366,6 +32390,12 @@ my %disabled_info = ( "asm" => { "macro" => "OPENSSL_NO_ASM" }, + "brotli" => { + "macro" => "OPENSSL_NO_BROTLI" + }, + "brotli-dynamic" => { + "macro" => "OPENSSL_NO_BROTLI_DYNAMIC" + }, "comp" => { "macro" => "OPENSSL_NO_COMP", "skipped" => [ @@ -27378,6 +32408,9 @@ my %disabled_info = ( "crypto-mdebug-backtrace" => { "macro" => "OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE" }, + "demos" => { + "macro" => "OPENSSL_NO_DEMOS" + }, "devcryptoeng" => { "macro" => "OPENSSL_NO_DEVCRYPTOENG" }, @@ -27390,12 +32423,24 @@ my %disabled_info = ( "external-tests" => { "macro" => "OPENSSL_NO_EXTERNAL_TESTS" }, + "fips-jitter" => { + "macro" => "OPENSSL_NO_FIPS_JITTER" + }, "fuzz-afl" => { "macro" => "OPENSSL_NO_FUZZ_AFL" }, "fuzz-libfuzzer" => { "macro" => "OPENSSL_NO_FUZZ_LIBFUZZER" }, + "h3demo" => { + "macro" => "OPENSSL_NO_H3DEMO" + }, + "hqinterop" => { + "macro" => "OPENSSL_NO_HQINTEROP" + }, + "jitter" => { + "macro" => "OPENSSL_NO_JITTER" + }, "ktls" => { "macro" => "OPENSSL_NO_KTLS" }, @@ -27411,6 +32456,9 @@ my %disabled_info = ( "msan" => { "macro" => "OPENSSL_NO_MSAN" }, + "pie" => { + "macro" => "OPENSSL_NO_PIE" + }, "rc5" => { "macro" => "OPENSSL_NO_RC5", "skipped" => [ @@ -27426,6 +32474,12 @@ my %disabled_info = ( "ssl3-method" => { "macro" => "OPENSSL_NO_SSL3_METHOD" }, + "sslkeylog" => { + "macro" => "OPENSSL_NO_SSLKEYLOG" + }, + "tfo" => { + "macro" => "OPENSSL_NO_TFO" + }, "trace" => { "macro" => "OPENSSL_NO_TRACE" }, @@ -27440,6 +32494,21 @@ my %disabled_info = ( }, "weak-ssl-ciphers" => { "macro" => "OPENSSL_NO_WEAK_SSL_CIPHERS" + }, + "winstore" => { + "macro" => "OPENSSL_NO_WINSTORE" + }, + "zlib" => { + "macro" => "OPENSSL_NO_ZLIB" + }, + "zlib-dynamic" => { + "macro" => "OPENSSL_NO_ZLIB_DYNAMIC" + }, + "zstd" => { + "macro" => "OPENSSL_NO_ZSTD" + }, + "zstd-dynamic" => { + "macro" => "OPENSSL_NO_ZSTD_DYNAMIC" } ); my @user_crossable = qw( AR AS CC CXX CPP LD MT RANLIB RC ); @@ -27453,15 +32522,15 @@ unless (caller) { use File::Copy; use Pod::Usage; - use lib '/home/runner/work/node/node/deps/openssl/openssl/util/perl'; - use OpenSSL::fallback '/home/runner/work/node/node/deps/openssl/openssl/external/perl/MODULES.txt'; + use lib '/node/deps/openssl/openssl/util/perl'; + use OpenSSL::fallback '/node/deps/openssl/openssl/external/perl/MODULES.txt'; my $here = dirname($0); if (scalar @ARGV == 0) { # With no arguments, re-create the build file # We do that in two steps, where the first step emits perl - # snipets. + # snippets. my $buildfile = $config{build_file}; my $buildfile_template = "$buildfile.in"; @@ -27481,7 +32550,7 @@ unless (caller) { ); use lib '.'; - use lib '/home/runner/work/node/node/deps/openssl/openssl/Configurations'; + use lib '/node/deps/openssl/openssl/Configurations'; use gentemplate; open my $buildfile_template_fh, ">$buildfile_template" @@ -27498,8 +32567,8 @@ unless (caller) { my $prepend = <<'_____'; use File::Spec::Functions; -use lib '/home/runner/work/node/node/deps/openssl/openssl/util/perl'; -use lib '/home/runner/work/node/node/deps/openssl/openssl/Configurations'; +use lib '/node/deps/openssl/openssl/util/perl'; +use lib '/node/deps/openssl/openssl/Configurations'; use lib '.'; use platform; _____ diff --git a/deps/openssl/config/archs/darwin-i386-cc/no-asm/crypto/buildinf.h b/deps/openssl/config/archs/darwin-i386-cc/no-asm/crypto/buildinf.h index 3cd3f564e0d1eb..a9770215d6e097 100644 --- a/deps/openssl/config/archs/darwin-i386-cc/no-asm/crypto/buildinf.h +++ b/deps/openssl/config/archs/darwin-i386-cc/no-asm/crypto/buildinf.h @@ -11,7 +11,7 @@ */ #define PLATFORM "platform: darwin-i386-cc" -#define DATE "built on: Sun Jul 20 00:48:07 2025 UTC" +#define DATE "built on: Sun Jul 27 00:49:04 2025 UTC" /* * Generate compiler_flags as an array of individual characters. This is a diff --git a/deps/openssl/config/archs/darwin-i386-cc/no-asm/crypto/params_idx.c b/deps/openssl/config/archs/darwin-i386-cc/no-asm/crypto/params_idx.c new file mode 100644 index 00000000000000..9d76ffededc24c --- /dev/null +++ b/deps/openssl/config/archs/darwin-i386-cc/no-asm/crypto/params_idx.c @@ -0,0 +1,3366 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from crypto/params_idx.c.in + * + * Copyright 2023 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + +#include "internal/e_os.h" +#include "internal/param_names.h" +#include + +/* Machine generated TRIE -- generated by util/perl/OpenSSL/paramnames.pm */ +int ossl_param_find_pidx(const char *s) +{ + switch(s[0]) { + default: + break; + case 'a': + switch(s[1]) { + default: + break; + case 'c': + if (strcmp("vp-info", s + 2) == 0) + return PIDX_KDF_PARAM_X942_ACVPINFO; + break; + case 'd': + switch(s[2]) { + default: + break; + case 'd': + if (strcmp("itional-random", s + 3) == 0) + return PIDX_SIGNATURE_PARAM_ADD_RANDOM; + break; + case '\0': + return PIDX_KDF_PARAM_ARGON2_AD; + } + break; + case 'e': + if (strcmp("ad", s + 2) == 0) + return PIDX_CIPHER_PARAM_AEAD; + break; + case 'l': + switch(s[2]) { + default: + break; + case 'g': + switch(s[3]) { + default: + break; + case '_': + if (strcmp("id_param", s + 4) == 0) + return PIDX_CIPHER_PARAM_ALGORITHM_ID_PARAMS_OLD; + break; + case 'i': + if (strcmp("d-absent", s + 4) == 0) + return PIDX_DIGEST_PARAM_ALGID_ABSENT; + break; + case 'o': + switch(s[4]) { + default: + break; + case 'r': + switch(s[5]) { + default: + break; + case 'i': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case 'h': + switch(s[8]) { + default: + break; + case 'm': + switch(s[9]) { + default: + break; + case '-': + switch(s[10]) { + default: + break; + case 'i': + switch(s[11]) { + default: + break; + case 'd': + switch(s[12]) { + default: + break; + case '-': + if (strcmp("params", s + 13) == 0) + return PIDX_ALG_PARAM_ALGORITHM_ID_PARAMS; + break; + case '\0': + return PIDX_ALG_PARAM_ALGORITHM_ID; + } + } + } + } + } + } + } + } + } + } + break; + case 'i': + if (strcmp("as", s + 3) == 0) + return PIDX_STORE_PARAM_ALIAS; + } + break; + case '\0': + return PIDX_PKEY_PARAM_EC_A; + } + break; + case 'b': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("sis-type", s + 2) == 0) + return PIDX_PKEY_PARAM_EC_CHAR2_TYPE; + break; + case 'i': + if (strcmp("ts", s + 2) == 0) + return PIDX_PKEY_PARAM_BITS; + break; + case 'l': + switch(s[2]) { + default: + break; + case 'o': + switch(s[3]) { + default: + break; + case 'c': + switch(s[4]) { + default: + break; + case 'k': + switch(s[5]) { + default: + break; + case '-': + if (strcmp("size", s + 6) == 0) + return PIDX_MAC_PARAM_BLOCK_SIZE; + break; + case '_': + if (strcmp("padding", s + 6) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_BLOCK_PADDING; + break; + case 's': + if (strcmp("ize", s + 6) == 0) + return PIDX_DIGEST_PARAM_BLOCK_SIZE; + } + } + } + } + break; + case 'u': + if (strcmp("ildinfo", s + 2) == 0) + return PIDX_PROV_PARAM_BUILDINFO; + break; + case '\0': + return PIDX_PKEY_PARAM_EC_B; + } + break; + case 'c': + switch(s[1]) { + default: + break; + case '-': + if (strcmp("rounds", s + 2) == 0) + return PIDX_MAC_PARAM_C_ROUNDS; + break; + case 'e': + if (strcmp("kalg", s + 2) == 0) + return PIDX_KDF_PARAM_CEK_ALG; + break; + case 'i': + if (strcmp("pher", s + 2) == 0) + return PIDX_ALG_PARAM_CIPHER; + break; + case 'o': + switch(s[2]) { + default: + break; + case 'f': + if (strcmp("actor", s + 3) == 0) + return PIDX_PKEY_PARAM_EC_COFACTOR; + break; + case 'n': + switch(s[3]) { + default: + break; + case 's': + if (strcmp("tant", s + 4) == 0) + return PIDX_KDF_PARAM_CONSTANT; + break; + case 't': + if (strcmp("ext-string", s + 4) == 0) + return PIDX_SIGNATURE_PARAM_CONTEXT_STRING; + } + } + break; + case 't': + switch(s[2]) { + default: + break; + case 's': + switch(s[3]) { + default: + break; + case '_': + if (strcmp("mode", s + 4) == 0) + return PIDX_CIPHER_PARAM_CTS_MODE; + break; + case '\0': + return PIDX_CIPHER_PARAM_CTS; + } + } + break; + case 'u': + switch(s[2]) { + default: + break; + case 's': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case 'o': + switch(s[5]) { + default: + break; + case 'm': + switch(s[6]) { + default: + break; + case '-': + if (strcmp("iv", s + 7) == 0) + return PIDX_CIPHER_PARAM_CUSTOM_IV; + break; + case '\0': + return PIDX_MAC_PARAM_CUSTOM; + } + } + } + } + } + } + break; + case 'd': + switch(s[1]) { + default: + break; + case '-': + if (strcmp("rounds", s + 2) == 0) + return PIDX_MAC_PARAM_D_ROUNDS; + break; + case 'a': + switch(s[2]) { + default: + break; + case 't': + switch(s[3]) { + default: + break; + case 'a': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 's': + if (strcmp("tructure", s + 6) == 0) + return PIDX_OBJECT_PARAM_DATA_STRUCTURE; + break; + case 't': + if (strcmp("ype", s + 6) == 0) + return PIDX_OBJECT_PARAM_DATA_TYPE; + } + break; + case '\0': + return PIDX_OBJECT_PARAM_DATA; + } + } + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'c': + switch(s[3]) { + default: + break; + case 'o': + if (strcmp("ded-from-explicit", s + 4) == 0) + return PIDX_PKEY_PARAM_EC_DECODED_FROM_EXPLICIT_PARAMS; + break; + case 'r': + if (strcmp("ypt-only", s + 4) == 0) + return PIDX_CIPHER_PARAM_DECRYPT_ONLY; + } + break; + case 'f': + if (strcmp("ault-digest", s + 3) == 0) + return PIDX_PKEY_PARAM_DEFAULT_DIGEST; + break; + case 's': + if (strcmp("c", s + 3) == 0) + return PIDX_OBJECT_PARAM_DESC; + break; + case 't': + if (strcmp("erministic", s + 3) == 0) + return PIDX_SIGNATURE_PARAM_DETERMINISTIC; + } + break; + case 'h': + if (strcmp("kem-ikm", s + 2) == 0) + return PIDX_PKEY_PARAM_DHKEM_IKM; + break; + case 'i': + switch(s[2]) { + default: + break; + case 'g': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case 's': + switch(s[5]) { + default: + break; + case 't': + switch(s[6]) { + default: + break; + case '-': + switch(s[7]) { + default: + break; + case 'c': + if (strcmp("heck", s + 8) == 0) + return PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK; + break; + case 'n': + if (strcmp("oinit", s + 8) == 0) + return PIDX_MAC_PARAM_DIGEST_NOINIT; + break; + case 'o': + if (strcmp("neshot", s + 8) == 0) + return PIDX_MAC_PARAM_DIGEST_ONESHOT; + break; + case 'p': + if (strcmp("rops", s + 8) == 0) + return PIDX_ASYM_CIPHER_PARAM_OAEP_DIGEST_PROPS; + break; + case 's': + if (strcmp("ize", s + 8) == 0) + return PIDX_PKEY_PARAM_DIGEST_SIZE; + } + break; + case '\0': + return PIDX_STORE_PARAM_DIGEST; + } + } + } + } + break; + case 's': + if (strcmp("tid", s + 3) == 0) + return PIDX_PKEY_PARAM_DIST_ID; + } + break; + case 'r': + if (strcmp("bg-no-trunc-md", s + 2) == 0) + return PIDX_PROV_PARAM_DRBG_TRUNC_DIGEST; + break; + case 's': + if (strcmp("a-sign-disabled", s + 2) == 0) + return PIDX_PROV_PARAM_DSA_SIGN_DISABLED; + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_D; + } + break; + case 'e': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("rly_clean", s + 2) == 0) + return PIDX_KDF_PARAM_EARLY_CLEAN; + break; + case 'c': + switch(s[2]) { + default: + break; + case 'd': + switch(s[3]) { + default: + break; + case 'h': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'c': + switch(s[6]) { + default: + break; + case 'o': + switch(s[7]) { + default: + break; + case 'f': + switch(s[8]) { + default: + break; + case 'a': + switch(s[9]) { + default: + break; + case 'c': + switch(s[10]) { + default: + break; + case 't': + switch(s[11]) { + default: + break; + case 'o': + switch(s[12]) { + default: + break; + case 'r': + switch(s[13]) { + default: + break; + case '-': + switch(s[14]) { + default: + break; + case 'c': + if (strcmp("heck", s + 15) == 0) + return PIDX_PROV_PARAM_ECDH_COFACTOR_CHECK; + break; + case 'm': + if (strcmp("ode", s + 15) == 0) + return PIDX_EXCHANGE_PARAM_EC_ECDH_COFACTOR_MODE; + } + } + } + } + } + } + } + } + } + } + } + } + } + break; + case 'm': + if (strcmp("s_check", s + 2) == 0) + return PIDX_KDF_PARAM_FIPS_EMS_CHECK; + break; + case 'n': + switch(s[2]) { + default: + break; + case 'c': + switch(s[3]) { + default: + break; + case 'o': + switch(s[4]) { + default: + break; + case 'd': + switch(s[5]) { + default: + break; + case 'e': + if (strcmp("d-pub-key", s + 6) == 0) + return PIDX_PKEY_PARAM_ENCODED_PUBLIC_KEY; + break; + case 'i': + if (strcmp("ng", s + 6) == 0) + return PIDX_PKEY_PARAM_EC_ENCODING; + } + } + break; + case 'r': + switch(s[4]) { + default: + break; + case 'y': + switch(s[5]) { + default: + break; + case 'p': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case '-': + switch(s[8]) { + default: + break; + case 'c': + if (strcmp("heck", s + 9) == 0) + return PIDX_CIPHER_PARAM_FIPS_ENCRYPT_CHECK; + break; + case 'l': + if (strcmp("evel", s + 9) == 0) + return PIDX_ENCODER_PARAM_ENCRYPT_LEVEL; + } + } + } + } + } + } + break; + case 'g': + if (strcmp("ine", s + 3) == 0) + return PIDX_ALG_PARAM_ENGINE; + break; + case 't': + switch(s[3]) { + default: + break; + case 'r': + switch(s[4]) { + default: + break; + case 'o': + switch(s[5]) { + default: + break; + case 'p': + switch(s[6]) { + default: + break; + case 'y': + switch(s[7]) { + default: + break; + case '_': + if (strcmp("required", s + 8) == 0) + return PIDX_DRBG_PARAM_ENTROPY_REQUIRED; + break; + case '\0': + return PIDX_KDF_PARAM_HMACDRBG_ENTROPY; + } + } + } + } + } + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_E; + break; + case 'x': + if (strcmp("pect", s + 2) == 0) + return PIDX_STORE_PARAM_EXPECT; + } + break; + case 'f': + switch(s[1]) { + default: + break; + case 'i': + switch(s[2]) { + default: + break; + case 'e': + if (strcmp("ld-type", s + 3) == 0) + return PIDX_PKEY_PARAM_EC_FIELD_TYPE; + break; + case 'n': + if (strcmp("gerprint", s + 3) == 0) + return PIDX_STORE_PARAM_FINGERPRINT; + break; + case 'p': + if (strcmp("s-indicator", s + 3) == 0) + return PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR; + } + } + break; + case 'g': + switch(s[1]) { + default: + break; + case 'e': + switch(s[2]) { + default: + break; + case 'n': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case 'r': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case 'e': + switch(s[8]) { + default: + break; + case '\0': + return PIDX_RAND_PARAM_GENERATE; + } + break; + case 'o': + if (strcmp("r", s + 8) == 0) + return PIDX_PKEY_PARAM_EC_GENERATOR; + } + } + } + } + } + } + break; + case 'i': + if (strcmp("ndex", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_GINDEX; + break; + case 'r': + switch(s[2]) { + default: + break; + case 'o': + switch(s[3]) { + default: + break; + case 'u': + switch(s[4]) { + default: + break; + case 'p': + switch(s[5]) { + default: + break; + case '-': + if (strcmp("check", s + 6) == 0) + return PIDX_PKEY_PARAM_EC_GROUP_CHECK_TYPE; + break; + case '\0': + return PIDX_PKEY_PARAM_GROUP_NAME; + } + } + } + } + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_G; + } + break; + case 'h': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("s-randkey", s + 2) == 0) + return PIDX_CIPHER_PARAM_HAS_RAND_KEY; + break; + case 'i': + if (strcmp("ndex", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_H; + break; + case 'k': + switch(s[2]) { + default: + break; + case 'd': + switch(s[3]) { + default: + break; + case 'f': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 6) == 0) + return PIDX_PROV_PARAM_HKDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 6) == 0) + return PIDX_PROV_PARAM_HKDF_KEY_CHECK; + } + } + } + } + break; + case 'm': + if (strcmp("ac-key-check", s + 2) == 0) + return PIDX_PROV_PARAM_HMAC_KEY_CHECK; + break; + case 's': + if (strcmp("_padding", s + 2) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_HS_PADDING; + } + break; + case 'i': + switch(s[1]) { + default: + break; + case 'd': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_KDF_PARAM_PKCS12_ID; + } + break; + case 'k': + if (strcmp("me", s + 2) == 0) + return PIDX_KEM_PARAM_IKME; + break; + case 'm': + if (strcmp("plicit-rejection", s + 2) == 0) + return PIDX_PKEY_PARAM_IMPLICIT_REJECTION; + break; + case 'n': + switch(s[2]) { + default: + break; + case 'c': + if (strcmp("lude-public", s + 3) == 0) + return PIDX_PKEY_PARAM_EC_INCLUDE_PUBLIC; + break; + case 'f': + if (strcmp("o", s + 3) == 0) + return PIDX_PASSPHRASE_PARAM_INFO; + break; + case 'p': + if (strcmp("ut-type", s + 3) == 0) + return PIDX_STORE_PARAM_INPUT_TYPE; + break; + case 's': + if (strcmp("tance", s + 3) == 0) + return PIDX_SIGNATURE_PARAM_INSTANCE; + } + break; + case 't': + switch(s[2]) { + default: + break; + case 'e': + switch(s[3]) { + default: + break; + case 'r': + switch(s[4]) { + default: + break; + case 'a': + if (strcmp("tion", s + 5) == 0) + return PIDX_GEN_PARAM_ITERATION; + break; + case '\0': + return PIDX_KDF_PARAM_ITER; + } + } + } + break; + case 'v': + switch(s[2]) { + default: + break; + case '-': + if (strcmp("generated", s + 3) == 0) + return PIDX_CIPHER_PARAM_AEAD_IV_GENERATED; + break; + case 'l': + if (strcmp("en", s + 3) == 0) + return PIDX_CIPHER_PARAM_IVLEN; + break; + case '\0': + return PIDX_MAC_PARAM_IV; + } + } + break; + case 'j': + switch(s[1]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_COFACTOR; + } + break; + case 'k': + switch(s[1]) { + default: + break; + case '1': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_PP_K1; + } + break; + case '2': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_PP_K2; + } + break; + case '3': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_PP_K3; + } + break; + case 'a': + if (strcmp("t", s + 2) == 0) + return PIDX_SIGNATURE_PARAM_KAT; + break; + case 'b': + if (strcmp("kdf-key-check", s + 2) == 0) + return PIDX_PROV_PARAM_KBKDF_KEY_CHECK; + break; + case 'd': + switch(s[2]) { + default: + break; + case 'f': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'd': + switch(s[5]) { + default: + break; + case 'i': + switch(s[6]) { + default: + break; + case 'g': + switch(s[7]) { + default: + break; + case 'e': + switch(s[8]) { + default: + break; + case 's': + switch(s[9]) { + default: + break; + case 't': + switch(s[10]) { + default: + break; + case '-': + if (strcmp("props", s + 11) == 0) + return PIDX_EXCHANGE_PARAM_KDF_DIGEST_PROPS; + break; + case '\0': + return PIDX_EXCHANGE_PARAM_KDF_DIGEST; + } + } + } + } + } + } + break; + case 'o': + if (strcmp("utlen", s + 5) == 0) + return PIDX_EXCHANGE_PARAM_KDF_OUTLEN; + break; + case 't': + if (strcmp("ype", s + 5) == 0) + return PIDX_EXCHANGE_PARAM_KDF_TYPE; + break; + case 'u': + if (strcmp("km", s + 5) == 0) + return PIDX_EXCHANGE_PARAM_KDF_UKM; + } + } + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'y': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'c': + if (strcmp("heck", s + 5) == 0) + return PIDX_PKEY_PARAM_FIPS_KEY_CHECK; + break; + case 'l': + if (strcmp("ength", s + 5) == 0) + return PIDX_SKEY_PARAM_KEY_LENGTH; + } + break; + case 'b': + if (strcmp("its", s + 4) == 0) + return PIDX_CIPHER_PARAM_RC2_KEYBITS; + break; + case 'l': + if (strcmp("en", s + 4) == 0) + return PIDX_CIPHER_PARAM_KEYLEN; + break; + case '\0': + return PIDX_MAC_PARAM_KEY; + } + } + break; + case 'm': + if (strcmp("ac-key-check", s + 2) == 0) + return PIDX_PROV_PARAM_KMAC_KEY_CHECK; + } + break; + case 'l': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'b': + if (strcmp("el", s + 3) == 0) + return PIDX_KDF_PARAM_LABEL; + break; + case 'n': + if (strcmp("es", s + 3) == 0) + return PIDX_KDF_PARAM_ARGON2_LANES; + } + } + break; + case 'm': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'c': + switch(s[3]) { + default: + break; + case 'k': + if (strcmp("ey", s + 4) == 0) + return PIDX_CIPHER_PARAM_AEAD_MAC_KEY; + break; + case 'l': + if (strcmp("en", s + 4) == 0) + return PIDX_KDF_PARAM_MAC_SIZE; + break; + case '\0': + return PIDX_ALG_PARAM_MAC; + } + break; + case 'n': + if (strcmp("datory-digest", s + 3) == 0) + return PIDX_PKEY_PARAM_MANDATORY_DIGEST; + break; + case 'x': + switch(s[3]) { + default: + break; + case '-': + if (strcmp("size", s + 4) == 0) + return PIDX_PKEY_PARAM_MAX_SIZE; + break; + case '_': + switch(s[4]) { + default: + break; + case 'a': + if (strcmp("dinlen", s + 5) == 0) + return PIDX_DRBG_PARAM_MAX_ADINLEN; + break; + case 'e': + switch(s[5]) { + default: + break; + case 'a': + if (strcmp("rly_data", s + 6) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_MAX_EARLY_DATA; + break; + case 'n': + if (strcmp("tropylen", s + 6) == 0) + return PIDX_DRBG_PARAM_MAX_ENTROPYLEN; + } + break; + case 'f': + if (strcmp("rag_len", s + 5) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_MAX_FRAG_LEN; + break; + case 'n': + if (strcmp("oncelen", s + 5) == 0) + return PIDX_DRBG_PARAM_MAX_NONCELEN; + break; + case 'p': + if (strcmp("erslen", s + 5) == 0) + return PIDX_DRBG_PARAM_MAX_PERSLEN; + break; + case 'r': + if (strcmp("equest", s + 5) == 0) + return PIDX_RAND_PARAM_MAX_REQUEST; + } + break; + case 'i': + if (strcmp("um_length", s + 4) == 0) + return PIDX_DRBG_PARAM_MAX_LENGTH; + break; + case 'm': + if (strcmp("em_bytes", s + 4) == 0) + return PIDX_KDF_PARAM_SCRYPT_MAXMEM; + } + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'm': + if (strcmp("cost", s + 3) == 0) + return PIDX_KDF_PARAM_ARGON2_MEMCOST; + break; + case 's': + if (strcmp("sage-encoding", s + 3) == 0) + return PIDX_SIGNATURE_PARAM_MESSAGE_ENCODING; + } + break; + case 'g': + switch(s[2]) { + default: + break; + case 'f': + switch(s[3]) { + default: + break; + case '1': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'd': + if (strcmp("igest", s + 6) == 0) + return PIDX_PKEY_PARAM_MGF1_DIGEST; + break; + case 'p': + if (strcmp("roperties", s + 6) == 0) + return PIDX_PKEY_PARAM_MGF1_PROPERTIES; + } + } + break; + case '\0': + return PIDX_PKEY_PARAM_MASKGENFUNC; + } + } + break; + case 'i': + switch(s[2]) { + default: + break; + case 'c': + if (strcmp("alg", s + 3) == 0) + return PIDX_DIGEST_PARAM_MICALG; + break; + case 'n': + switch(s[3]) { + default: + break; + case '_': + switch(s[4]) { + default: + break; + case 'e': + if (strcmp("ntropylen", s + 5) == 0) + return PIDX_DRBG_PARAM_MIN_ENTROPYLEN; + break; + case 'n': + if (strcmp("oncelen", s + 5) == 0) + return PIDX_DRBG_PARAM_MIN_NONCELEN; + } + break; + case 'i': + if (strcmp("um_length", s + 4) == 0) + return PIDX_DRBG_PARAM_MIN_LENGTH; + } + } + break; + case 'l': + switch(s[2]) { + default: + break; + case '-': + switch(s[3]) { + default: + break; + case 'd': + switch(s[4]) { + default: + break; + case 's': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case '.': + switch(s[7]) { + default: + break; + case 'i': + if (strcmp("nput_formats", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_DSA_INPUT_FORMATS; + break; + case 'o': + if (strcmp("utput_formats", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_DSA_OUTPUT_FORMATS; + break; + case 'p': + if (strcmp("refer_seed", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_DSA_PREFER_SEED; + break; + case 'r': + if (strcmp("etain_seed", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_DSA_RETAIN_SEED; + } + } + } + } + break; + case 'k': + switch(s[4]) { + default: + break; + case 'e': + switch(s[5]) { + default: + break; + case 'm': + switch(s[6]) { + default: + break; + case '.': + switch(s[7]) { + default: + break; + case 'i': + switch(s[8]) { + default: + break; + case 'm': + if (strcmp("port_pct_type", s + 9) == 0) + return PIDX_PKEY_PARAM_ML_KEM_IMPORT_PCT_TYPE; + break; + case 'n': + if (strcmp("put_formats", s + 9) == 0) + return PIDX_PKEY_PARAM_ML_KEM_INPUT_FORMATS; + } + break; + case 'o': + if (strcmp("utput_formats", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_KEM_OUTPUT_FORMATS; + break; + case 'p': + if (strcmp("refer_seed", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_KEM_PREFER_SEED; + break; + case 'r': + if (strcmp("etain_seed", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_KEM_RETAIN_SEED; + } + } + } + } + } + } + break; + case 'o': + switch(s[2]) { + default: + break; + case 'd': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case '\0': + return PIDX_LIBSSL_RECORD_LAYER_PARAM_MODE; + } + break; + case 'u': + if (strcmp("le-filename", s + 4) == 0) + return PIDX_PROV_PARAM_CORE_MODULE_FILENAME; + } + } + break; + case 'u': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_SIGNATURE_PARAM_MU; + } + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_M; + } + break; + case 'n': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("me", s + 2) == 0) + return PIDX_STORE_PARAM_ISSUER; + break; + case 'o': + switch(s[2]) { + default: + break; + case '-': + if (strcmp("short-mac", s + 3) == 0) + return PIDX_PROV_PARAM_NO_SHORT_MAC; + break; + case 'n': + switch(s[3]) { + default: + break; + case 'c': + switch(s[4]) { + default: + break; + case 'e': + switch(s[5]) { + default: + break; + case '-': + if (strcmp("type", s + 6) == 0) + return PIDX_SIGNATURE_PARAM_NONCE_TYPE; + break; + case '\0': + return PIDX_KDF_PARAM_HMACDRBG_NONCE; + } + } + } + } + break; + case 'u': + if (strcmp("m", s + 2) == 0) + return PIDX_CIPHER_PARAM_NUM; + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_N; + } + break; + case 'o': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("ep-label", s + 2) == 0) + return PIDX_ASYM_CIPHER_PARAM_OAEP_LABEL; + break; + case 'p': + switch(s[2]) { + default: + break; + case 'e': + switch(s[3]) { + default: + break; + case 'n': + if (strcmp("ssl-version", s + 4) == 0) + return PIDX_PROV_PARAM_CORE_VERSION; + break; + case 'r': + if (strcmp("ation", s + 4) == 0) + return PIDX_KEM_PARAM_OPERATION; + } + break; + case 't': + if (strcmp("ions", s + 3) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_OPTIONS; + } + break; + case 'r': + if (strcmp("der", s + 2) == 0) + return PIDX_PKEY_PARAM_EC_ORDER; + } + break; + case 'p': + switch(s[1]) { + default: + break; + case '1': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_P1; + } + break; + case '2': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_P2; + } + break; + case 'a': + switch(s[2]) { + default: + break; + case 'd': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'm': + if (strcmp("ode", s + 5) == 0) + return PIDX_PKEY_PARAM_PAD_MODE; + break; + case 't': + if (strcmp("ype", s + 5) == 0) + return PIDX_DIGEST_PARAM_PAD_TYPE; + } + break; + case 'd': + if (strcmp("ing", s + 4) == 0) + return PIDX_CIPHER_PARAM_PADDING; + break; + case '\0': + return PIDX_EXCHANGE_PARAM_PAD; + } + break; + case 'r': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case 'y': + switch(s[5]) { + default: + break; + case 'u': + if (strcmp("-info", s + 6) == 0) + return PIDX_KDF_PARAM_X942_PARTYUINFO; + break; + case 'v': + if (strcmp("-info", s + 6) == 0) + return PIDX_KDF_PARAM_X942_PARTYVINFO; + } + } + } + break; + case 's': + if (strcmp("s", s + 3) == 0) + return PIDX_KDF_PARAM_PASSWORD; + } + break; + case 'b': + switch(s[2]) { + default: + break; + case 'i': + if (strcmp("ts", s + 3) == 0) + return PIDX_PKEY_PARAM_FFC_PBITS; + break; + case 'k': + if (strcmp("df2-lower-bound-check", s + 3) == 0) + return PIDX_PROV_PARAM_PBKDF2_LOWER_BOUND_CHECK; + } + break; + case 'c': + if (strcmp("ounter", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_PCOUNTER; + break; + case 'i': + if (strcmp("peline-tag", s + 2) == 0) + return PIDX_CIPHER_PARAM_PIPELINE_AEAD_TAG; + break; + case 'k': + if (strcmp("cs5", s + 2) == 0) + return PIDX_KDF_PARAM_PKCS5; + break; + case 'o': + switch(s[2]) { + default: + break; + case 'i': + if (strcmp("nt-format", s + 3) == 0) + return PIDX_PKEY_PARAM_EC_POINT_CONVERSION_FORMAT; + break; + case 't': + if (strcmp("ential", s + 3) == 0) + return PIDX_GEN_PARAM_POTENTIAL; + } + break; + case 'r': + switch(s[2]) { + default: + break; + case 'e': + switch(s[3]) { + default: + break; + case 'd': + if (strcmp("iction_resistance", s + 4) == 0) + return PIDX_DRBG_PARAM_PREDICTION_RESISTANCE; + break; + case 'f': + if (strcmp("ix", s + 4) == 0) + return PIDX_KDF_PARAM_PREFIX; + } + break; + case 'i': + switch(s[3]) { + default: + break; + case 'm': + if (strcmp("es", s + 4) == 0) + return PIDX_PKEY_PARAM_RSA_PRIMES; + break; + case 'v': + switch(s[4]) { + default: + break; + case '_': + if (strcmp("len", s + 5) == 0) + return PIDX_PKEY_PARAM_DH_PRIV_LEN; + break; + case '\0': + return PIDX_PKEY_PARAM_PRIV_KEY; + } + } + break; + case 'o': + switch(s[3]) { + default: + break; + case 'p': + if (strcmp("erties", s + 4) == 0) + return PIDX_STORE_PARAM_PROPERTIES; + break; + case 'v': + if (strcmp("ider-name", s + 4) == 0) + return PIDX_PROV_PARAM_CORE_PROV_NAME; + } + } + break; + case 'u': + if (strcmp("b", s + 2) == 0) + return PIDX_PKEY_PARAM_PUB_KEY; + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_P; + } + break; + case 'q': + switch(s[1]) { + default: + break; + case '1': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_Q1; + } + break; + case '2': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_Q2; + } + break; + case 'b': + if (strcmp("its", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_QBITS; + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_Q; + break; + case 'x': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_PUB_X; + } + break; + case 'y': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_PUB_Y; + } + } + break; + case 'r': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'n': + switch(s[3]) { + default: + break; + case 'd': + switch(s[4]) { + default: + break; + case 'k': + if (strcmp("ey", s + 5) == 0) + return PIDX_CIPHER_PARAM_RANDOM_KEY; + break; + case 'o': + if (strcmp("m_data", s + 5) == 0) + return PIDX_DRBG_PARAM_RANDOM_DATA; + } + } + break; + case 'w': + if (strcmp("-bytes", s + 3) == 0) + return PIDX_SKEY_PARAM_RAW_BYTES; + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'a': + switch(s[3]) { + default: + break; + case 'd': + switch(s[4]) { + default: + break; + case '_': + switch(s[5]) { + default: + break; + case 'a': + if (strcmp("head", s + 6) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_READ_AHEAD; + break; + case 'b': + if (strcmp("uffer_len", s + 6) == 0) + return PIDX_LIBSSL_RECORD_LAYER_READ_BUFFER_LEN; + } + } + } + break; + case 'f': + if (strcmp("erence", s + 3) == 0) + return PIDX_OBJECT_PARAM_REFERENCE; + break; + case 's': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case 'e': + switch(s[5]) { + default: + break; + case 'd': + switch(s[6]) { + default: + break; + case '_': + switch(s[7]) { + default: + break; + case 'c': + if (strcmp("ounter", s + 8) == 0) + return PIDX_DRBG_PARAM_RESEED_COUNTER; + break; + case 'r': + if (strcmp("equests", s + 8) == 0) + return PIDX_DRBG_PARAM_RESEED_REQUESTS; + break; + case 't': + switch(s[8]) { + default: + break; + case 'i': + switch(s[9]) { + default: + break; + case 'm': + switch(s[10]) { + default: + break; + case 'e': + switch(s[11]) { + default: + break; + case '_': + if (strcmp("interval", s + 12) == 0) + return PIDX_DRBG_PARAM_RESEED_TIME_INTERVAL; + break; + case '\0': + return PIDX_DRBG_PARAM_RESEED_TIME; + } + } + } + } + } + } + } + } + } + } + break; + case 'o': + if (strcmp("unds", s + 2) == 0) + return PIDX_CIPHER_PARAM_ROUNDS; + break; + case 's': + switch(s[2]) { + default: + break; + case 'a': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'c': + switch(s[5]) { + default: + break; + case 'o': + switch(s[6]) { + default: + break; + case 'e': + switch(s[7]) { + default: + break; + case 'f': + switch(s[8]) { + default: + break; + case 'f': + switch(s[9]) { + default: + break; + case 'i': + switch(s[10]) { + default: + break; + case 'c': + switch(s[11]) { + default: + break; + case 'i': + switch(s[12]) { + default: + break; + case 'e': + switch(s[13]) { + default: + break; + case 'n': + switch(s[14]) { + default: + break; + case 't': + switch(s[15]) { + default: + break; + case '1': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT1; + } + break; + case '2': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT2; + } + break; + case '3': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT3; + } + break; + case '4': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT4; + } + break; + case '5': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT5; + } + break; + case '6': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT6; + } + break; + case '7': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT7; + } + break; + case '8': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT8; + } + break; + case '9': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT9; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT; + } + } + } + } + } + } + } + } + } + } + } + break; + case 'd': + if (strcmp("erive-from-pq", s + 5) == 0) + return PIDX_PKEY_PARAM_RSA_DERIVE_FROM_PQ; + break; + case 'e': + switch(s[5]) { + default: + break; + case 'x': + switch(s[6]) { + default: + break; + case 'p': + switch(s[7]) { + default: + break; + case 'o': + switch(s[8]) { + default: + break; + case 'n': + switch(s[9]) { + default: + break; + case 'e': + switch(s[10]) { + default: + break; + case 'n': + switch(s[11]) { + default: + break; + case 't': + switch(s[12]) { + default: + break; + case '1': + switch(s[13]) { + default: + break; + case '0': + switch(s[14]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT10; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT1; + } + break; + case '2': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT2; + } + break; + case '3': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT3; + } + break; + case '4': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT4; + } + break; + case '5': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT5; + } + break; + case '6': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT6; + } + break; + case '7': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT7; + } + break; + case '8': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT8; + } + break; + case '9': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT9; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT; + } + } + } + } + } + } + } + } + break; + case 'f': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case 'c': + switch(s[7]) { + default: + break; + case 't': + switch(s[8]) { + default: + break; + case 'o': + switch(s[9]) { + default: + break; + case 'r': + switch(s[10]) { + default: + break; + case '1': + switch(s[11]) { + default: + break; + case '0': + switch(s[12]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR10; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR1; + } + break; + case '2': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR2; + } + break; + case '3': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR3; + } + break; + case '4': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR4; + } + break; + case '5': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR5; + } + break; + case '6': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR6; + } + break; + case '7': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR7; + } + break; + case '8': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR8; + } + break; + case '9': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR9; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR; + } + } + } + } + } + } + break; + case 'p': + switch(s[5]) { + default: + break; + case 'k': + if (strcmp("cs15-pad-disabled", s + 6) == 0) + return PIDX_PROV_PARAM_RSA_PKCS15_PAD_DISABLED; + break; + case 's': + if (strcmp("s-saltlen-check", s + 6) == 0) + return PIDX_SIGNATURE_PARAM_FIPS_RSA_PSS_SALTLEN_CHECK; + } + break; + case 's': + if (strcmp("ign-x931-pad-disabled", s + 5) == 0) + return PIDX_PROV_PARAM_RSA_SIGN_X931_PAD_DISABLED; + } + } + } + break; + case '\0': + return PIDX_KDF_PARAM_SCRYPT_R; + } + break; + case 's': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'f': + if (strcmp("eprime-generator", s + 3) == 0) + return PIDX_PKEY_PARAM_DH_GENERATOR; + break; + case 'l': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case 'l': + if (strcmp("en", s + 5) == 0) + return PIDX_SIGNATURE_PARAM_PSS_SALTLEN; + break; + case '\0': + return PIDX_MAC_PARAM_SALT; + } + } + break; + case 'v': + if (strcmp("e-parameters", s + 3) == 0) + return PIDX_ENCODER_PARAM_SAVE_PARAMETERS; + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'c': + switch(s[3]) { + default: + break; + case 'r': + if (strcmp("et", s + 4) == 0) + return PIDX_KDF_PARAM_SECRET; + break; + case 'u': + switch(s[4]) { + default: + break; + case 'r': + switch(s[5]) { + default: + break; + case 'i': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case 'y': + switch(s[8]) { + default: + break; + case '-': + switch(s[9]) { + default: + break; + case 'b': + if (strcmp("its", s + 10) == 0) + return PIDX_PKEY_PARAM_SECURITY_BITS; + break; + case 'c': + if (strcmp("hecks", s + 10) == 0) + return PIDX_PROV_PARAM_SECURITY_CHECKS; + } + } + } + } + } + } + } + break; + case 'e': + if (strcmp("d", s + 3) == 0) + return PIDX_PKEY_PARAM_SLH_DSA_SEED; + break; + case 'r': + if (strcmp("ial", s + 3) == 0) + return PIDX_STORE_PARAM_SERIAL; + break; + case 's': + if (strcmp("sion_id", s + 3) == 0) + return PIDX_KDF_PARAM_SSHKDF_SESSION_ID; + } + break; + case 'i': + switch(s[2]) { + default: + break; + case 'g': + switch(s[3]) { + default: + break; + case 'n': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'c': + if (strcmp("heck", s + 6) == 0) + return PIDX_PKEY_PARAM_FIPS_SIGN_CHECK; + break; + case 'x': + if (strcmp("931-pad-check", s + 6) == 0) + return PIDX_SIGNATURE_PARAM_FIPS_SIGN_X931_PAD_CHECK; + } + break; + case 'a': + switch(s[5]) { + default: + break; + case 't': + switch(s[6]) { + default: + break; + case 'u': + switch(s[7]) { + default: + break; + case 'r': + switch(s[8]) { + default: + break; + case 'e': + switch(s[9]) { + default: + break; + case '-': + if (strcmp("digest-check", s + 10) == 0) + return PIDX_PROV_PARAM_SIGNATURE_DIGEST_CHECK; + break; + case '\0': + return PIDX_SIGNATURE_PARAM_SIGNATURE; + } + } + } + } + } + } + } + break; + case 'z': + if (strcmp("e", s + 3) == 0) + return PIDX_MAC_PARAM_SIZE; + } + break; + case 'p': + if (strcmp("eed", s + 2) == 0) + return PIDX_CIPHER_PARAM_SPEED; + break; + case 's': + switch(s[2]) { + default: + break; + case 'h': + switch(s[3]) { + default: + break; + case 'k': + switch(s[4]) { + default: + break; + case 'd': + switch(s[5]) { + default: + break; + case 'f': + switch(s[6]) { + default: + break; + case '-': + switch(s[7]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 8) == 0) + return PIDX_PROV_PARAM_SSHKDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 8) == 0) + return PIDX_PROV_PARAM_SSHKDF_KEY_CHECK; + } + } + } + } + } + break; + case 'k': + switch(s[3]) { + default: + break; + case 'd': + switch(s[4]) { + default: + break; + case 'f': + switch(s[5]) { + default: + break; + case '-': + switch(s[6]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 7) == 0) + return PIDX_PROV_PARAM_SSKDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 7) == 0) + return PIDX_PROV_PARAM_SSKDF_KEY_CHECK; + } + } + } + } + break; + case 'l': + if (strcmp("3-ms", s + 3) == 0) + return PIDX_DIGEST_PARAM_SSL3_MS; + } + break; + case 't': + switch(s[2]) { + default: + break; + case '-': + switch(s[3]) { + default: + break; + case 'd': + if (strcmp("esc", s + 4) == 0) + return PIDX_PROV_PARAM_SELF_TEST_DESC; + break; + case 'p': + if (strcmp("hase", s + 4) == 0) + return PIDX_PROV_PARAM_SELF_TEST_PHASE; + break; + case 't': + if (strcmp("ype", s + 4) == 0) + return PIDX_PROV_PARAM_SELF_TEST_TYPE; + } + break; + case 'a': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case 'e': + switch(s[5]) { + default: + break; + case '\0': + return PIDX_RAND_PARAM_STATE; + } + break; + case 'u': + if (strcmp("s", s + 5) == 0) + return PIDX_PROV_PARAM_STATUS; + } + } + break; + case 'r': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case 'a': + if (strcmp("m_mac", s + 5) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_STREAM_MAC; + break; + case 'n': + if (strcmp("gth", s + 5) == 0) + return PIDX_RAND_PARAM_STRENGTH; + } + } + } + break; + case 'u': + switch(s[2]) { + default: + break; + case 'b': + if (strcmp("ject", s + 3) == 0) + return PIDX_STORE_PARAM_SUBJECT; + break; + case 'p': + switch(s[3]) { + default: + break; + case 'p': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'p': + switch(s[6]) { + default: + break; + case 'r': + if (strcmp("ivinfo", s + 7) == 0) + return PIDX_KDF_PARAM_X942_SUPP_PRIVINFO; + break; + case 'u': + if (strcmp("binfo", s + 7) == 0) + return PIDX_KDF_PARAM_X942_SUPP_PUBINFO; + } + } + } + } + } + } + break; + case 't': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'g': + switch(s[3]) { + default: + break; + case 'l': + if (strcmp("en", s + 4) == 0) + return PIDX_CIPHER_PARAM_AEAD_TAGLEN; + break; + case '\0': + return PIDX_CIPHER_PARAM_AEAD_TAG; + } + } + break; + case 'd': + if (strcmp("es-encrypt-disabled", s + 2) == 0) + return PIDX_PROV_PARAM_TDES_ENCRYPT_DISABLED; + break; + case 'e': + switch(s[2]) { + default: + break; + case 's': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case '-': + if (strcmp("entropy", s + 5) == 0) + return PIDX_SIGNATURE_PARAM_TEST_ENTROPY; + break; + case '_': + switch(s[5]) { + default: + break; + case 'e': + if (strcmp("ntropy", s + 6) == 0) + return PIDX_RAND_PARAM_TEST_ENTROPY; + break; + case 'n': + if (strcmp("once", s + 6) == 0) + return PIDX_RAND_PARAM_TEST_NONCE; + } + } + } + } + break; + case 'h': + if (strcmp("reads", s + 2) == 0) + return PIDX_KDF_PARAM_THREADS; + break; + case 'l': + switch(s[2]) { + default: + break; + case 's': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'c': + if (strcmp("lient-version", s + 5) == 0) + return PIDX_ASYM_CIPHER_PARAM_TLS_CLIENT_VERSION; + break; + case 'd': + if (strcmp("ata-size", s + 5) == 0) + return PIDX_MAC_PARAM_TLS_DATA_SIZE; + break; + case 'g': + switch(s[5]) { + default: + break; + case 'r': + switch(s[6]) { + default: + break; + case 'o': + switch(s[7]) { + default: + break; + case 'u': + switch(s[8]) { + default: + break; + case 'p': + switch(s[9]) { + default: + break; + case '-': + switch(s[10]) { + default: + break; + case 'a': + if (strcmp("lg", s + 11) == 0) + return PIDX_CAPABILITY_TLS_GROUP_ALG; + break; + case 'i': + switch(s[11]) { + default: + break; + case 'd': + switch(s[12]) { + default: + break; + case '\0': + return PIDX_CAPABILITY_TLS_GROUP_ID; + } + break; + case 's': + if (strcmp("-kem", s + 12) == 0) + return PIDX_CAPABILITY_TLS_GROUP_IS_KEM; + } + break; + case 'n': + switch(s[11]) { + default: + break; + case 'a': + switch(s[12]) { + default: + break; + case 'm': + switch(s[13]) { + default: + break; + case 'e': + switch(s[14]) { + default: + break; + case '-': + if (strcmp("internal", s + 15) == 0) + return PIDX_CAPABILITY_TLS_GROUP_NAME_INTERNAL; + break; + case '\0': + return PIDX_CAPABILITY_TLS_GROUP_NAME; + } + } + } + } + break; + case 's': + if (strcmp("ec-bits", s + 11) == 0) + return PIDX_CAPABILITY_TLS_GROUP_SECURITY_BITS; + } + } + } + } + } + } + break; + case 'm': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case 'c': + switch(s[7]) { + default: + break; + case '-': + if (strcmp("size", s + 8) == 0) + return PIDX_CIPHER_PARAM_TLS_MAC_SIZE; + break; + case '\0': + return PIDX_CIPHER_PARAM_TLS_MAC; + } + break; + case 'x': + switch(s[7]) { + default: + break; + case '-': + switch(s[8]) { + default: + break; + case 'd': + if (strcmp("tls", s + 9) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_MAX_DTLS; + break; + case 't': + if (strcmp("ls", s + 9) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_MAX_TLS; + } + } + } + break; + case 'i': + switch(s[6]) { + default: + break; + case 'n': + switch(s[7]) { + default: + break; + case '-': + switch(s[8]) { + default: + break; + case 'd': + if (strcmp("tls", s + 9) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_MIN_DTLS; + break; + case 't': + if (strcmp("ls", s + 9) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_MIN_TLS; + } + } + } + break; + case 'u': + if (strcmp("lti", s + 6) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK; + } + break; + case 'n': + if (strcmp("egotiated-version", s + 5) == 0) + return PIDX_ASYM_CIPHER_PARAM_TLS_NEGOTIATED_VERSION; + break; + case 's': + switch(s[5]) { + default: + break; + case 'i': + switch(s[6]) { + default: + break; + case 'g': + switch(s[7]) { + default: + break; + case 'a': + switch(s[8]) { + default: + break; + case 'l': + switch(s[9]) { + default: + break; + case 'g': + switch(s[10]) { + default: + break; + case '-': + switch(s[11]) { + default: + break; + case 'c': + if (strcmp("ode-point", s + 12) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_CODE_POINT; + break; + case 'h': + switch(s[12]) { + default: + break; + case 'a': + switch(s[13]) { + default: + break; + case 's': + switch(s[14]) { + default: + break; + case 'h': + switch(s[15]) { + default: + break; + case '-': + switch(s[16]) { + default: + break; + case 'n': + if (strcmp("ame", s + 17) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_HASH_NAME; + break; + case 'o': + if (strcmp("id", s + 17) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_HASH_OID; + } + } + } + } + } + break; + case 'i': + if (strcmp("ana-name", s + 12) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_IANA_NAME; + break; + case 'k': + switch(s[12]) { + default: + break; + case 'e': + switch(s[13]) { + default: + break; + case 'y': + switch(s[14]) { + default: + break; + case 't': + switch(s[15]) { + default: + break; + case 'y': + switch(s[16]) { + default: + break; + case 'p': + switch(s[17]) { + default: + break; + case 'e': + switch(s[18]) { + default: + break; + case '-': + if (strcmp("oid", s + 19) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_KEYTYPE_OID; + break; + case '\0': + return PIDX_CAPABILITY_TLS_SIGALG_KEYTYPE; + } + } + } + } + } + } + } + break; + case 'n': + if (strcmp("ame", s + 12) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_NAME; + break; + case 'o': + if (strcmp("id", s + 12) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_OID; + break; + case 's': + switch(s[12]) { + default: + break; + case 'e': + if (strcmp("c-bits", s + 13) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_SECURITY_BITS; + break; + case 'i': + switch(s[13]) { + default: + break; + case 'g': + switch(s[14]) { + default: + break; + case '-': + switch(s[15]) { + default: + break; + case 'n': + if (strcmp("ame", s + 16) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_SIG_NAME; + break; + case 'o': + if (strcmp("id", s + 16) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_SIG_OID; + } + } + } + } + } + } + } + } + } + } + } + break; + case 'v': + if (strcmp("ersion", s + 5) == 0) + return PIDX_CIPHER_PARAM_TLS_VERSION; + } + break; + case '1': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'p': + switch(s[6]) { + default: + break; + case 'r': + switch(s[7]) { + default: + break; + case 'f': + switch(s[8]) { + default: + break; + case '-': + switch(s[9]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 10) == 0) + return PIDX_PROV_PARAM_TLS1_PRF_DIGEST_CHECK; + break; + case 'e': + if (strcmp("ms-check", s + 10) == 0) + return PIDX_PROV_PARAM_TLS1_PRF_EMS_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 10) == 0) + return PIDX_PROV_PARAM_TLS1_PRF_KEY_CHECK; + } + } + } + } + } + break; + case '3': + switch(s[5]) { + default: + break; + case '-': + switch(s[6]) { + default: + break; + case 'k': + switch(s[7]) { + default: + break; + case 'd': + switch(s[8]) { + default: + break; + case 'f': + switch(s[9]) { + default: + break; + case '-': + switch(s[10]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 11) == 0) + return PIDX_PROV_PARAM_TLS13_KDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 11) == 0) + return PIDX_PROV_PARAM_TLS13_KDF_KEY_CHECK; + } + } + } + } + } + } + break; + case 'm': + switch(s[5]) { + default: + break; + case 'u': + switch(s[6]) { + default: + break; + case 'l': + switch(s[7]) { + default: + break; + case 't': + switch(s[8]) { + default: + break; + case 'i': + switch(s[9]) { + default: + break; + case '_': + switch(s[10]) { + default: + break; + case 'a': + switch(s[11]) { + default: + break; + case 'a': + switch(s[12]) { + default: + break; + case 'd': + switch(s[13]) { + default: + break; + case 'p': + if (strcmp("acklen", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD_PACKLEN; + break; + case '\0': + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD; + } + } + } + break; + case 'e': + switch(s[11]) { + default: + break; + case 'n': + switch(s[12]) { + default: + break; + case 'c': + switch(s[13]) { + default: + break; + case 'i': + if (strcmp("n", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_IN; + break; + case 'l': + if (strcmp("en", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_LEN; + break; + case '\0': + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC; + } + } + } + break; + case 'i': + if (strcmp("nterleave", s + 11) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_INTERLEAVE; + break; + case 'm': + switch(s[11]) { + default: + break; + case 'a': + switch(s[12]) { + default: + break; + case 'x': + switch(s[13]) { + default: + break; + case 'b': + if (strcmp("ufsz", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_BUFSIZE; + break; + case 's': + if (strcmp("ndfrag", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_SEND_FRAGMENT; + } + } + } + } + } + } + } + } + } + } + break; + case 'a': + switch(s[4]) { + default: + break; + case 'a': + switch(s[5]) { + default: + break; + case 'd': + switch(s[6]) { + default: + break; + case 'p': + if (strcmp("ad", s + 7) == 0) + return PIDX_CIPHER_PARAM_AEAD_TLS1_AAD_PAD; + break; + case '\0': + return PIDX_CIPHER_PARAM_AEAD_TLS1_AAD; + } + } + } + break; + case 'i': + switch(s[4]) { + default: + break; + case 'v': + switch(s[5]) { + default: + break; + case 'f': + if (strcmp("ixed", s + 6) == 0) + return PIDX_CIPHER_PARAM_AEAD_TLS1_IV_FIXED; + break; + case 'g': + if (strcmp("en", s + 6) == 0) + return PIDX_CIPHER_PARAM_AEAD_TLS1_GET_IV_GEN; + break; + case 'i': + if (strcmp("nv", s + 6) == 0) + return PIDX_CIPHER_PARAM_AEAD_TLS1_SET_IV_INV; + } + } + break; + case 't': + if (strcmp("ree", s + 4) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_TLSTREE; + } + } + break; + case 'p': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_TP_BASIS; + } + break; + case 'y': + if (strcmp("pe", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_TYPE; + } + break; + case 'u': + switch(s[1]) { + default: + break; + case 'k': + if (strcmp("m", s + 2) == 0) + return PIDX_KDF_PARAM_UKM; + break; + case 'p': + if (strcmp("dated-iv", s + 2) == 0) + return PIDX_CIPHER_PARAM_UPDATED_IV; + break; + case 's': + switch(s[2]) { + default: + break; + case 'e': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'b': + if (strcmp("its", s + 5) == 0) + return PIDX_CIPHER_PARAM_USE_BITS; + break; + case 'c': + if (strcmp("ofactor-flag", s + 5) == 0) + return PIDX_PKEY_PARAM_USE_COFACTOR_FLAG; + break; + case 'k': + if (strcmp("eybits", s + 5) == 0) + return PIDX_KDF_PARAM_X942_USE_KEYBITS; + break; + case 'l': + switch(s[5]) { + default: + break; + case '\0': + return PIDX_KDF_PARAM_KBKDF_USE_L; + } + break; + case 's': + if (strcmp("eparator", s + 5) == 0) + return PIDX_KDF_PARAM_KBKDF_USE_SEPARATOR; + } + break; + case '_': + switch(s[4]) { + default: + break; + case 'd': + if (strcmp("erivation_function", s + 5) == 0) + return PIDX_DRBG_PARAM_USE_DF; + break; + case 'e': + if (strcmp("tm", s + 5) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_USE_ETM; + } + } + } + } + break; + case 'v': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'l': + switch(s[3]) { + default: + break; + case 'i': + switch(s[4]) { + default: + break; + case 'd': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case 'e': + switch(s[8]) { + default: + break; + case '-': + switch(s[9]) { + default: + break; + case 'g': + switch(s[10]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_VALIDATE_G; + } + break; + case 'l': + if (strcmp("egacy", s + 10) == 0) + return PIDX_PKEY_PARAM_FFC_VALIDATE_LEGACY; + break; + case 'p': + if (strcmp("q", s + 10) == 0) + return PIDX_PKEY_PARAM_FFC_VALIDATE_PQ; + } + } + } + } + } + } + } + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'r': + switch(s[3]) { + default: + break; + case 'i': + if (strcmp("fy-message", s + 4) == 0) + return PIDX_SIGNATURE_PARAM_FIPS_VERIFY_MESSAGE; + break; + case 's': + if (strcmp("ion", s + 4) == 0) + return PIDX_PROV_PARAM_VERSION; + } + } + } + break; + case 'x': + switch(s[1]) { + default: + break; + case '9': + switch(s[2]) { + default: + break; + case '4': + if (strcmp("2kdf-key-check", s + 3) == 0) + return PIDX_PROV_PARAM_X942KDF_KEY_CHECK; + break; + case '6': + switch(s[3]) { + default: + break; + case '3': + switch(s[4]) { + default: + break; + case 'k': + switch(s[5]) { + default: + break; + case 'd': + switch(s[6]) { + default: + break; + case 'f': + switch(s[7]) { + default: + break; + case '-': + switch(s[8]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 9) == 0) + return PIDX_PROV_PARAM_X963KDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 9) == 0) + return PIDX_PROV_PARAM_X963KDF_KEY_CHECK; + } + } + } + } + } + } + } + break; + case 'c': + if (strcmp("ghash", s + 2) == 0) + return PIDX_KDF_PARAM_SSHKDF_XCGHASH; + break; + case 'o': + switch(s[2]) { + default: + break; + case 'f': + switch(s[3]) { + default: + break; + case 'l': + if (strcmp("en", s + 4) == 0) + return PIDX_DIGEST_PARAM_XOFLEN; + break; + case '\0': + return PIDX_MAC_PARAM_XOF; + } + } + break; + case 'p': + switch(s[2]) { + default: + break; + case '1': + switch(s[3]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XP1; + } + break; + case '2': + switch(s[3]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XP2; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XP; + } + break; + case 'q': + switch(s[2]) { + default: + break; + case '1': + switch(s[3]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XQ1; + } + break; + case '2': + switch(s[3]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XQ2; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XQ; + } + break; + case 't': + if (strcmp("s_standard", s + 2) == 0) + return PIDX_CIPHER_PARAM_XTS_STANDARD; + } + } + return -1; +} + +/* End of TRIE */ diff --git a/deps/openssl/config/archs/darwin-i386-cc/no-asm/include/internal/param_names.h b/deps/openssl/config/archs/darwin-i386-cc/no-asm/include/internal/param_names.h new file mode 100644 index 00000000000000..0a0404a57e82b9 --- /dev/null +++ b/deps/openssl/config/archs/darwin-i386-cc/no-asm/include/internal/param_names.h @@ -0,0 +1,469 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from include/internal/param_names.h.in + * + * Copyright 2023 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + +int ossl_param_find_pidx(const char *s); + +/* Parameter name definitions - generated by util/perl/OpenSSL/paramnames.pm */ +#define NUM_PIDX 346 + +#define PIDX_ALG_PARAM_ALGORITHM_ID 0 +#define PIDX_ALG_PARAM_ALGORITHM_ID_PARAMS 1 +#define PIDX_ALG_PARAM_CIPHER 2 +#define PIDX_ALG_PARAM_DIGEST 3 +#define PIDX_ALG_PARAM_ENGINE 4 +#define PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR 5 +#define PIDX_ALG_PARAM_MAC 6 +#define PIDX_ALG_PARAM_PROPERTIES 7 +#define PIDX_ASYM_CIPHER_PARAM_DIGEST PIDX_PKEY_PARAM_DIGEST +#define PIDX_ASYM_CIPHER_PARAM_ENGINE PIDX_PKEY_PARAM_ENGINE +#define PIDX_ASYM_CIPHER_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_ASYM_CIPHER_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_ASYM_CIPHER_PARAM_FIPS_RSA_PKCS15_PAD_DISABLED PIDX_PROV_PARAM_RSA_PKCS15_PAD_DISABLED +#define PIDX_ASYM_CIPHER_PARAM_IMPLICIT_REJECTION 8 +#define PIDX_ASYM_CIPHER_PARAM_MGF1_DIGEST PIDX_PKEY_PARAM_MGF1_DIGEST +#define PIDX_ASYM_CIPHER_PARAM_MGF1_DIGEST_PROPS PIDX_PKEY_PARAM_MGF1_PROPERTIES +#define PIDX_ASYM_CIPHER_PARAM_OAEP_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_ASYM_CIPHER_PARAM_OAEP_DIGEST_PROPS 9 +#define PIDX_ASYM_CIPHER_PARAM_OAEP_LABEL 10 +#define PIDX_ASYM_CIPHER_PARAM_PAD_MODE PIDX_PKEY_PARAM_PAD_MODE +#define PIDX_ASYM_CIPHER_PARAM_PROPERTIES PIDX_PKEY_PARAM_PROPERTIES +#define PIDX_ASYM_CIPHER_PARAM_TLS_CLIENT_VERSION 11 +#define PIDX_ASYM_CIPHER_PARAM_TLS_NEGOTIATED_VERSION 12 +#define PIDX_CAPABILITY_TLS_GROUP_ALG 13 +#define PIDX_CAPABILITY_TLS_GROUP_ID 14 +#define PIDX_CAPABILITY_TLS_GROUP_IS_KEM 15 +#define PIDX_CAPABILITY_TLS_GROUP_MAX_DTLS 16 +#define PIDX_CAPABILITY_TLS_GROUP_MAX_TLS 17 +#define PIDX_CAPABILITY_TLS_GROUP_MIN_DTLS 18 +#define PIDX_CAPABILITY_TLS_GROUP_MIN_TLS 19 +#define PIDX_CAPABILITY_TLS_GROUP_NAME 20 +#define PIDX_CAPABILITY_TLS_GROUP_NAME_INTERNAL 21 +#define PIDX_CAPABILITY_TLS_GROUP_SECURITY_BITS 22 +#define PIDX_CAPABILITY_TLS_SIGALG_CODE_POINT 23 +#define PIDX_CAPABILITY_TLS_SIGALG_HASH_NAME 24 +#define PIDX_CAPABILITY_TLS_SIGALG_HASH_OID 25 +#define PIDX_CAPABILITY_TLS_SIGALG_IANA_NAME 26 +#define PIDX_CAPABILITY_TLS_SIGALG_KEYTYPE 27 +#define PIDX_CAPABILITY_TLS_SIGALG_KEYTYPE_OID 28 +#define PIDX_CAPABILITY_TLS_SIGALG_MAX_DTLS 16 +#define PIDX_CAPABILITY_TLS_SIGALG_MAX_TLS 17 +#define PIDX_CAPABILITY_TLS_SIGALG_MIN_DTLS 18 +#define PIDX_CAPABILITY_TLS_SIGALG_MIN_TLS 19 +#define PIDX_CAPABILITY_TLS_SIGALG_NAME 29 +#define PIDX_CAPABILITY_TLS_SIGALG_OID 30 +#define PIDX_CAPABILITY_TLS_SIGALG_SECURITY_BITS 31 +#define PIDX_CAPABILITY_TLS_SIGALG_SIG_NAME 32 +#define PIDX_CAPABILITY_TLS_SIGALG_SIG_OID 33 +#define PIDX_CIPHER_PARAM_AEAD 34 +#define PIDX_CIPHER_PARAM_AEAD_IVLEN PIDX_CIPHER_PARAM_IVLEN +#define PIDX_CIPHER_PARAM_AEAD_IV_GENERATED 35 +#define PIDX_CIPHER_PARAM_AEAD_MAC_KEY 36 +#define PIDX_CIPHER_PARAM_AEAD_TAG 37 +#define PIDX_CIPHER_PARAM_AEAD_TAGLEN 38 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_AAD 39 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_AAD_PAD 40 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_GET_IV_GEN 41 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_IV_FIXED 42 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_SET_IV_INV 43 +#define PIDX_CIPHER_PARAM_ALGORITHM_ID PIDX_ALG_PARAM_ALGORITHM_ID +#define PIDX_CIPHER_PARAM_ALGORITHM_ID_PARAMS PIDX_ALG_PARAM_ALGORITHM_ID_PARAMS +#define PIDX_CIPHER_PARAM_ALGORITHM_ID_PARAMS_OLD 44 +#define PIDX_CIPHER_PARAM_BLOCK_SIZE 45 +#define PIDX_CIPHER_PARAM_CTS 46 +#define PIDX_CIPHER_PARAM_CTS_MODE 47 +#define PIDX_CIPHER_PARAM_CUSTOM_IV 48 +#define PIDX_CIPHER_PARAM_DECRYPT_ONLY 49 +#define PIDX_CIPHER_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_CIPHER_PARAM_FIPS_ENCRYPT_CHECK 50 +#define PIDX_CIPHER_PARAM_HAS_RAND_KEY 51 +#define PIDX_CIPHER_PARAM_IV 52 +#define PIDX_CIPHER_PARAM_IVLEN 53 +#define PIDX_CIPHER_PARAM_KEYLEN 54 +#define PIDX_CIPHER_PARAM_MODE 55 +#define PIDX_CIPHER_PARAM_NUM 56 +#define PIDX_CIPHER_PARAM_PADDING 57 +#define PIDX_CIPHER_PARAM_PIPELINE_AEAD_TAG 58 +#define PIDX_CIPHER_PARAM_RANDOM_KEY 59 +#define PIDX_CIPHER_PARAM_RC2_KEYBITS 60 +#define PIDX_CIPHER_PARAM_ROUNDS 61 +#define PIDX_CIPHER_PARAM_SPEED 62 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK 63 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD 64 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD_PACKLEN 65 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC 66 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_IN 67 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_LEN 68 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_INTERLEAVE 69 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_BUFSIZE 70 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_SEND_FRAGMENT 71 +#define PIDX_CIPHER_PARAM_TLS_MAC 72 +#define PIDX_CIPHER_PARAM_TLS_MAC_SIZE 73 +#define PIDX_CIPHER_PARAM_TLS_VERSION 74 +#define PIDX_CIPHER_PARAM_UPDATED_IV 75 +#define PIDX_CIPHER_PARAM_USE_BITS 76 +#define PIDX_CIPHER_PARAM_XTS_STANDARD 77 +#define PIDX_DECODER_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_DIGEST_PARAM_ALGID_ABSENT 78 +#define PIDX_DIGEST_PARAM_BLOCK_SIZE 45 +#define PIDX_DIGEST_PARAM_MICALG 79 +#define PIDX_DIGEST_PARAM_PAD_TYPE 80 +#define PIDX_DIGEST_PARAM_SIZE 81 +#define PIDX_DIGEST_PARAM_SSL3_MS 82 +#define PIDX_DIGEST_PARAM_XOF 83 +#define PIDX_DIGEST_PARAM_XOFLEN 84 +#define PIDX_DRBG_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_DRBG_PARAM_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_DRBG_PARAM_ENTROPY_REQUIRED 85 +#define PIDX_DRBG_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_DRBG_PARAM_FIPS_DIGEST_CHECK PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK +#define PIDX_DRBG_PARAM_MAC PIDX_ALG_PARAM_MAC +#define PIDX_DRBG_PARAM_MAX_ADINLEN 86 +#define PIDX_DRBG_PARAM_MAX_ENTROPYLEN 87 +#define PIDX_DRBG_PARAM_MAX_LENGTH 88 +#define PIDX_DRBG_PARAM_MAX_NONCELEN 89 +#define PIDX_DRBG_PARAM_MAX_PERSLEN 90 +#define PIDX_DRBG_PARAM_MIN_ENTROPYLEN 91 +#define PIDX_DRBG_PARAM_MIN_LENGTH 92 +#define PIDX_DRBG_PARAM_MIN_NONCELEN 93 +#define PIDX_DRBG_PARAM_PREDICTION_RESISTANCE 94 +#define PIDX_DRBG_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_DRBG_PARAM_RANDOM_DATA 95 +#define PIDX_DRBG_PARAM_RESEED_COUNTER 96 +#define PIDX_DRBG_PARAM_RESEED_REQUESTS 97 +#define PIDX_DRBG_PARAM_RESEED_TIME 98 +#define PIDX_DRBG_PARAM_RESEED_TIME_INTERVAL 99 +#define PIDX_DRBG_PARAM_SIZE 81 +#define PIDX_DRBG_PARAM_USE_DF 100 +#define PIDX_ENCODER_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_ENCODER_PARAM_ENCRYPT_LEVEL 101 +#define PIDX_ENCODER_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_ENCODER_PARAM_SAVE_PARAMETERS 102 +#define PIDX_EXCHANGE_PARAM_EC_ECDH_COFACTOR_MODE 103 +#define PIDX_EXCHANGE_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_EXCHANGE_PARAM_FIPS_DIGEST_CHECK PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK +#define PIDX_EXCHANGE_PARAM_FIPS_ECDH_COFACTOR_CHECK PIDX_PROV_PARAM_ECDH_COFACTOR_CHECK +#define PIDX_EXCHANGE_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_EXCHANGE_PARAM_KDF_DIGEST 104 +#define PIDX_EXCHANGE_PARAM_KDF_DIGEST_PROPS 105 +#define PIDX_EXCHANGE_PARAM_KDF_OUTLEN 106 +#define PIDX_EXCHANGE_PARAM_KDF_TYPE 107 +#define PIDX_EXCHANGE_PARAM_KDF_UKM 108 +#define PIDX_EXCHANGE_PARAM_PAD 109 +#define PIDX_GEN_PARAM_ITERATION 110 +#define PIDX_GEN_PARAM_POTENTIAL 111 +#define PIDX_KDF_PARAM_ARGON2_AD 112 +#define PIDX_KDF_PARAM_ARGON2_LANES 113 +#define PIDX_KDF_PARAM_ARGON2_MEMCOST 114 +#define PIDX_KDF_PARAM_ARGON2_VERSION 115 +#define PIDX_KDF_PARAM_CEK_ALG 116 +#define PIDX_KDF_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_KDF_PARAM_CONSTANT 117 +#define PIDX_KDF_PARAM_DATA 118 +#define PIDX_KDF_PARAM_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_KDF_PARAM_EARLY_CLEAN 119 +#define PIDX_KDF_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_KDF_PARAM_FIPS_DIGEST_CHECK PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK +#define PIDX_KDF_PARAM_FIPS_EMS_CHECK 120 +#define PIDX_KDF_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_KDF_PARAM_HMACDRBG_ENTROPY 121 +#define PIDX_KDF_PARAM_HMACDRBG_NONCE 122 +#define PIDX_KDF_PARAM_INFO 123 +#define PIDX_KDF_PARAM_ITER 124 +#define PIDX_KDF_PARAM_KBKDF_R 125 +#define PIDX_KDF_PARAM_KBKDF_USE_L 126 +#define PIDX_KDF_PARAM_KBKDF_USE_SEPARATOR 127 +#define PIDX_KDF_PARAM_KEY 128 +#define PIDX_KDF_PARAM_LABEL 129 +#define PIDX_KDF_PARAM_MAC PIDX_ALG_PARAM_MAC +#define PIDX_KDF_PARAM_MAC_SIZE 130 +#define PIDX_KDF_PARAM_MODE 55 +#define PIDX_KDF_PARAM_PASSWORD 131 +#define PIDX_KDF_PARAM_PKCS12_ID 132 +#define PIDX_KDF_PARAM_PKCS5 133 +#define PIDX_KDF_PARAM_PREFIX 134 +#define PIDX_KDF_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_KDF_PARAM_SALT 135 +#define PIDX_KDF_PARAM_SCRYPT_MAXMEM 136 +#define PIDX_KDF_PARAM_SCRYPT_N 137 +#define PIDX_KDF_PARAM_SCRYPT_P 138 +#define PIDX_KDF_PARAM_SCRYPT_R 125 +#define PIDX_KDF_PARAM_SECRET 139 +#define PIDX_KDF_PARAM_SEED 140 +#define PIDX_KDF_PARAM_SIZE 81 +#define PIDX_KDF_PARAM_SSHKDF_SESSION_ID 141 +#define PIDX_KDF_PARAM_SSHKDF_TYPE 142 +#define PIDX_KDF_PARAM_SSHKDF_XCGHASH 143 +#define PIDX_KDF_PARAM_THREADS 144 +#define PIDX_KDF_PARAM_UKM 145 +#define PIDX_KDF_PARAM_X942_ACVPINFO 146 +#define PIDX_KDF_PARAM_X942_PARTYUINFO 147 +#define PIDX_KDF_PARAM_X942_PARTYVINFO 148 +#define PIDX_KDF_PARAM_X942_SUPP_PRIVINFO 149 +#define PIDX_KDF_PARAM_X942_SUPP_PUBINFO 150 +#define PIDX_KDF_PARAM_X942_USE_KEYBITS 151 +#define PIDX_KEM_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_KEM_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_KEM_PARAM_IKME 152 +#define PIDX_KEM_PARAM_OPERATION 153 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_BLOCK_PADDING 154 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_HS_PADDING 155 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_MAX_EARLY_DATA 156 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_MAX_FRAG_LEN 157 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_MODE 55 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_OPTIONS 158 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_READ_AHEAD 159 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_STREAM_MAC 160 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_TLSTREE 161 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_USE_ETM 162 +#define PIDX_LIBSSL_RECORD_LAYER_READ_BUFFER_LEN 163 +#define PIDX_MAC_PARAM_BLOCK_SIZE 164 +#define PIDX_MAC_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_MAC_PARAM_CUSTOM 165 +#define PIDX_MAC_PARAM_C_ROUNDS 166 +#define PIDX_MAC_PARAM_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_MAC_PARAM_DIGEST_NOINIT 167 +#define PIDX_MAC_PARAM_DIGEST_ONESHOT 168 +#define PIDX_MAC_PARAM_D_ROUNDS 169 +#define PIDX_MAC_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_MAC_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_MAC_PARAM_FIPS_NO_SHORT_MAC PIDX_PROV_PARAM_NO_SHORT_MAC +#define PIDX_MAC_PARAM_IV 52 +#define PIDX_MAC_PARAM_KEY 128 +#define PIDX_MAC_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_MAC_PARAM_SALT 135 +#define PIDX_MAC_PARAM_SIZE 81 +#define PIDX_MAC_PARAM_TLS_DATA_SIZE 170 +#define PIDX_MAC_PARAM_XOF 83 +#define PIDX_OBJECT_PARAM_DATA 118 +#define PIDX_OBJECT_PARAM_DATA_STRUCTURE 171 +#define PIDX_OBJECT_PARAM_DATA_TYPE 172 +#define PIDX_OBJECT_PARAM_DESC 173 +#define PIDX_OBJECT_PARAM_INPUT_TYPE 174 +#define PIDX_OBJECT_PARAM_REFERENCE 175 +#define PIDX_OBJECT_PARAM_TYPE 142 +#define PIDX_PASSPHRASE_PARAM_INFO 123 +#define PIDX_PKEY_PARAM_ALGORITHM_ID PIDX_ALG_PARAM_ALGORITHM_ID +#define PIDX_PKEY_PARAM_ALGORITHM_ID_PARAMS PIDX_ALG_PARAM_ALGORITHM_ID_PARAMS +#define PIDX_PKEY_PARAM_BITS 176 +#define PIDX_PKEY_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_PKEY_PARAM_DEFAULT_DIGEST 177 +#define PIDX_PKEY_PARAM_DHKEM_IKM 178 +#define PIDX_PKEY_PARAM_DH_GENERATOR 179 +#define PIDX_PKEY_PARAM_DH_PRIV_LEN 180 +#define PIDX_PKEY_PARAM_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_PKEY_PARAM_DIGEST_SIZE 181 +#define PIDX_PKEY_PARAM_DIST_ID 182 +#define PIDX_PKEY_PARAM_EC_A 183 +#define PIDX_PKEY_PARAM_EC_B 184 +#define PIDX_PKEY_PARAM_EC_CHAR2_M 185 +#define PIDX_PKEY_PARAM_EC_CHAR2_PP_K1 186 +#define PIDX_PKEY_PARAM_EC_CHAR2_PP_K2 187 +#define PIDX_PKEY_PARAM_EC_CHAR2_PP_K3 188 +#define PIDX_PKEY_PARAM_EC_CHAR2_TP_BASIS 189 +#define PIDX_PKEY_PARAM_EC_CHAR2_TYPE 190 +#define PIDX_PKEY_PARAM_EC_COFACTOR 191 +#define PIDX_PKEY_PARAM_EC_DECODED_FROM_EXPLICIT_PARAMS 192 +#define PIDX_PKEY_PARAM_EC_ENCODING 193 +#define PIDX_PKEY_PARAM_EC_FIELD_TYPE 194 +#define PIDX_PKEY_PARAM_EC_GENERATOR 195 +#define PIDX_PKEY_PARAM_EC_GROUP_CHECK_TYPE 196 +#define PIDX_PKEY_PARAM_EC_INCLUDE_PUBLIC 197 +#define PIDX_PKEY_PARAM_EC_ORDER 198 +#define PIDX_PKEY_PARAM_EC_P 138 +#define PIDX_PKEY_PARAM_EC_POINT_CONVERSION_FORMAT 199 +#define PIDX_PKEY_PARAM_EC_PUB_X 200 +#define PIDX_PKEY_PARAM_EC_PUB_Y 201 +#define PIDX_PKEY_PARAM_EC_SEED 140 +#define PIDX_PKEY_PARAM_ENCODED_PUBLIC_KEY 202 +#define PIDX_PKEY_PARAM_ENGINE PIDX_ALG_PARAM_ENGINE +#define PIDX_PKEY_PARAM_FFC_COFACTOR 203 +#define PIDX_PKEY_PARAM_FFC_DIGEST PIDX_PKEY_PARAM_DIGEST +#define PIDX_PKEY_PARAM_FFC_DIGEST_PROPS PIDX_PKEY_PARAM_PROPERTIES +#define PIDX_PKEY_PARAM_FFC_G 204 +#define PIDX_PKEY_PARAM_FFC_GINDEX 205 +#define PIDX_PKEY_PARAM_FFC_H 206 +#define PIDX_PKEY_PARAM_FFC_P 138 +#define PIDX_PKEY_PARAM_FFC_PBITS 207 +#define PIDX_PKEY_PARAM_FFC_PCOUNTER 208 +#define PIDX_PKEY_PARAM_FFC_Q 209 +#define PIDX_PKEY_PARAM_FFC_QBITS 210 +#define PIDX_PKEY_PARAM_FFC_SEED 140 +#define PIDX_PKEY_PARAM_FFC_TYPE 142 +#define PIDX_PKEY_PARAM_FFC_VALIDATE_G 211 +#define PIDX_PKEY_PARAM_FFC_VALIDATE_LEGACY 212 +#define PIDX_PKEY_PARAM_FFC_VALIDATE_PQ 213 +#define PIDX_PKEY_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK 214 +#define PIDX_PKEY_PARAM_FIPS_KEY_CHECK 215 +#define PIDX_PKEY_PARAM_FIPS_SIGN_CHECK 216 +#define PIDX_PKEY_PARAM_GROUP_NAME 217 +#define PIDX_PKEY_PARAM_IMPLICIT_REJECTION 8 +#define PIDX_PKEY_PARAM_MANDATORY_DIGEST 218 +#define PIDX_PKEY_PARAM_MASKGENFUNC 219 +#define PIDX_PKEY_PARAM_MAX_SIZE 220 +#define PIDX_PKEY_PARAM_MGF1_DIGEST 221 +#define PIDX_PKEY_PARAM_MGF1_PROPERTIES 222 +#define PIDX_PKEY_PARAM_ML_DSA_INPUT_FORMATS 223 +#define PIDX_PKEY_PARAM_ML_DSA_OUTPUT_FORMATS 224 +#define PIDX_PKEY_PARAM_ML_DSA_PREFER_SEED 225 +#define PIDX_PKEY_PARAM_ML_DSA_RETAIN_SEED 226 +#define PIDX_PKEY_PARAM_ML_DSA_SEED 140 +#define PIDX_PKEY_PARAM_ML_KEM_IMPORT_PCT_TYPE 227 +#define PIDX_PKEY_PARAM_ML_KEM_INPUT_FORMATS 228 +#define PIDX_PKEY_PARAM_ML_KEM_OUTPUT_FORMATS 229 +#define PIDX_PKEY_PARAM_ML_KEM_PREFER_SEED 230 +#define PIDX_PKEY_PARAM_ML_KEM_RETAIN_SEED 231 +#define PIDX_PKEY_PARAM_ML_KEM_SEED 140 +#define PIDX_PKEY_PARAM_PAD_MODE 232 +#define PIDX_PKEY_PARAM_PRIV_KEY 233 +#define PIDX_PKEY_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_PKEY_PARAM_PUB_KEY 234 +#define PIDX_PKEY_PARAM_RSA_BITS PIDX_PKEY_PARAM_BITS +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT 235 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT1 236 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT2 237 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT3 238 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT4 239 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT5 240 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT6 241 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT7 242 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT8 243 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT9 244 +#define PIDX_PKEY_PARAM_RSA_D 245 +#define PIDX_PKEY_PARAM_RSA_DERIVE_FROM_PQ 246 +#define PIDX_PKEY_PARAM_RSA_DIGEST PIDX_PKEY_PARAM_DIGEST +#define PIDX_PKEY_PARAM_RSA_DIGEST_PROPS PIDX_PKEY_PARAM_PROPERTIES +#define PIDX_PKEY_PARAM_RSA_E 247 +#define PIDX_PKEY_PARAM_RSA_EXPONENT 248 +#define PIDX_PKEY_PARAM_RSA_EXPONENT1 249 +#define PIDX_PKEY_PARAM_RSA_EXPONENT10 250 +#define PIDX_PKEY_PARAM_RSA_EXPONENT2 251 +#define PIDX_PKEY_PARAM_RSA_EXPONENT3 252 +#define PIDX_PKEY_PARAM_RSA_EXPONENT4 253 +#define PIDX_PKEY_PARAM_RSA_EXPONENT5 254 +#define PIDX_PKEY_PARAM_RSA_EXPONENT6 255 +#define PIDX_PKEY_PARAM_RSA_EXPONENT7 256 +#define PIDX_PKEY_PARAM_RSA_EXPONENT8 257 +#define PIDX_PKEY_PARAM_RSA_EXPONENT9 258 +#define PIDX_PKEY_PARAM_RSA_FACTOR 259 +#define PIDX_PKEY_PARAM_RSA_FACTOR1 260 +#define PIDX_PKEY_PARAM_RSA_FACTOR10 261 +#define PIDX_PKEY_PARAM_RSA_FACTOR2 262 +#define PIDX_PKEY_PARAM_RSA_FACTOR3 263 +#define PIDX_PKEY_PARAM_RSA_FACTOR4 264 +#define PIDX_PKEY_PARAM_RSA_FACTOR5 265 +#define PIDX_PKEY_PARAM_RSA_FACTOR6 266 +#define PIDX_PKEY_PARAM_RSA_FACTOR7 267 +#define PIDX_PKEY_PARAM_RSA_FACTOR8 268 +#define PIDX_PKEY_PARAM_RSA_FACTOR9 269 +#define PIDX_PKEY_PARAM_RSA_MASKGENFUNC PIDX_PKEY_PARAM_MASKGENFUNC +#define PIDX_PKEY_PARAM_RSA_MGF1_DIGEST PIDX_PKEY_PARAM_MGF1_DIGEST +#define PIDX_PKEY_PARAM_RSA_N 137 +#define PIDX_PKEY_PARAM_RSA_PRIMES 270 +#define PIDX_PKEY_PARAM_RSA_PSS_SALTLEN 271 +#define PIDX_PKEY_PARAM_RSA_TEST_P1 272 +#define PIDX_PKEY_PARAM_RSA_TEST_P2 273 +#define PIDX_PKEY_PARAM_RSA_TEST_Q1 274 +#define PIDX_PKEY_PARAM_RSA_TEST_Q2 275 +#define PIDX_PKEY_PARAM_RSA_TEST_XP 276 +#define PIDX_PKEY_PARAM_RSA_TEST_XP1 277 +#define PIDX_PKEY_PARAM_RSA_TEST_XP2 278 +#define PIDX_PKEY_PARAM_RSA_TEST_XQ 279 +#define PIDX_PKEY_PARAM_RSA_TEST_XQ1 280 +#define PIDX_PKEY_PARAM_RSA_TEST_XQ2 281 +#define PIDX_PKEY_PARAM_SECURITY_BITS 282 +#define PIDX_PKEY_PARAM_SLH_DSA_SEED 140 +#define PIDX_PKEY_PARAM_USE_COFACTOR_ECDH PIDX_PKEY_PARAM_USE_COFACTOR_FLAG +#define PIDX_PKEY_PARAM_USE_COFACTOR_FLAG 283 +#define PIDX_PROV_PARAM_BUILDINFO 284 +#define PIDX_PROV_PARAM_CORE_MODULE_FILENAME 285 +#define PIDX_PROV_PARAM_CORE_PROV_NAME 286 +#define PIDX_PROV_PARAM_CORE_VERSION 287 +#define PIDX_PROV_PARAM_DRBG_TRUNC_DIGEST 288 +#define PIDX_PROV_PARAM_DSA_SIGN_DISABLED 289 +#define PIDX_PROV_PARAM_ECDH_COFACTOR_CHECK 290 +#define PIDX_PROV_PARAM_HKDF_DIGEST_CHECK 291 +#define PIDX_PROV_PARAM_HKDF_KEY_CHECK 292 +#define PIDX_PROV_PARAM_HMAC_KEY_CHECK 293 +#define PIDX_PROV_PARAM_KBKDF_KEY_CHECK 294 +#define PIDX_PROV_PARAM_KMAC_KEY_CHECK 295 +#define PIDX_PROV_PARAM_NAME 296 +#define PIDX_PROV_PARAM_NO_SHORT_MAC 297 +#define PIDX_PROV_PARAM_PBKDF2_LOWER_BOUND_CHECK 298 +#define PIDX_PROV_PARAM_RSA_PKCS15_PAD_DISABLED 299 +#define PIDX_PROV_PARAM_RSA_PSS_SALTLEN_CHECK 300 +#define PIDX_PROV_PARAM_RSA_SIGN_X931_PAD_DISABLED 301 +#define PIDX_PROV_PARAM_SECURITY_CHECKS 302 +#define PIDX_PROV_PARAM_SELF_TEST_DESC 303 +#define PIDX_PROV_PARAM_SELF_TEST_PHASE 304 +#define PIDX_PROV_PARAM_SELF_TEST_TYPE 305 +#define PIDX_PROV_PARAM_SIGNATURE_DIGEST_CHECK 306 +#define PIDX_PROV_PARAM_SSHKDF_DIGEST_CHECK 307 +#define PIDX_PROV_PARAM_SSHKDF_KEY_CHECK 308 +#define PIDX_PROV_PARAM_SSKDF_DIGEST_CHECK 309 +#define PIDX_PROV_PARAM_SSKDF_KEY_CHECK 310 +#define PIDX_PROV_PARAM_STATUS 311 +#define PIDX_PROV_PARAM_TDES_ENCRYPT_DISABLED 312 +#define PIDX_PROV_PARAM_TLS13_KDF_DIGEST_CHECK 313 +#define PIDX_PROV_PARAM_TLS13_KDF_KEY_CHECK 314 +#define PIDX_PROV_PARAM_TLS1_PRF_DIGEST_CHECK 315 +#define PIDX_PROV_PARAM_TLS1_PRF_EMS_CHECK 316 +#define PIDX_PROV_PARAM_TLS1_PRF_KEY_CHECK 317 +#define PIDX_PROV_PARAM_VERSION 115 +#define PIDX_PROV_PARAM_X942KDF_KEY_CHECK 318 +#define PIDX_PROV_PARAM_X963KDF_DIGEST_CHECK 319 +#define PIDX_PROV_PARAM_X963KDF_KEY_CHECK 320 +#define PIDX_RAND_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_RAND_PARAM_GENERATE 321 +#define PIDX_RAND_PARAM_MAX_REQUEST 322 +#define PIDX_RAND_PARAM_STATE 323 +#define PIDX_RAND_PARAM_STRENGTH 324 +#define PIDX_RAND_PARAM_TEST_ENTROPY 325 +#define PIDX_RAND_PARAM_TEST_NONCE 326 +#define PIDX_SIGNATURE_PARAM_ADD_RANDOM 327 +#define PIDX_SIGNATURE_PARAM_ALGORITHM_ID PIDX_PKEY_PARAM_ALGORITHM_ID +#define PIDX_SIGNATURE_PARAM_ALGORITHM_ID_PARAMS PIDX_PKEY_PARAM_ALGORITHM_ID_PARAMS +#define PIDX_SIGNATURE_PARAM_CONTEXT_STRING 328 +#define PIDX_SIGNATURE_PARAM_DETERMINISTIC 329 +#define PIDX_SIGNATURE_PARAM_DIGEST PIDX_PKEY_PARAM_DIGEST +#define PIDX_SIGNATURE_PARAM_DIGEST_SIZE PIDX_PKEY_PARAM_DIGEST_SIZE +#define PIDX_SIGNATURE_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_SIGNATURE_PARAM_FIPS_DIGEST_CHECK PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK +#define PIDX_SIGNATURE_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_SIGNATURE_PARAM_FIPS_RSA_PSS_SALTLEN_CHECK 300 +#define PIDX_SIGNATURE_PARAM_FIPS_SIGN_CHECK PIDX_PKEY_PARAM_FIPS_SIGN_CHECK +#define PIDX_SIGNATURE_PARAM_FIPS_SIGN_X931_PAD_CHECK 330 +#define PIDX_SIGNATURE_PARAM_FIPS_VERIFY_MESSAGE 331 +#define PIDX_SIGNATURE_PARAM_INSTANCE 332 +#define PIDX_SIGNATURE_PARAM_KAT 333 +#define PIDX_SIGNATURE_PARAM_MESSAGE_ENCODING 334 +#define PIDX_SIGNATURE_PARAM_MGF1_DIGEST PIDX_PKEY_PARAM_MGF1_DIGEST +#define PIDX_SIGNATURE_PARAM_MGF1_PROPERTIES PIDX_PKEY_PARAM_MGF1_PROPERTIES +#define PIDX_SIGNATURE_PARAM_MU 335 +#define PIDX_SIGNATURE_PARAM_NONCE_TYPE 336 +#define PIDX_SIGNATURE_PARAM_PAD_MODE PIDX_PKEY_PARAM_PAD_MODE +#define PIDX_SIGNATURE_PARAM_PROPERTIES PIDX_PKEY_PARAM_PROPERTIES +#define PIDX_SIGNATURE_PARAM_PSS_SALTLEN 271 +#define PIDX_SIGNATURE_PARAM_SIGNATURE 337 +#define PIDX_SIGNATURE_PARAM_TEST_ENTROPY 338 +#define PIDX_SKEY_PARAM_KEY_LENGTH 339 +#define PIDX_SKEY_PARAM_RAW_BYTES 340 +#define PIDX_STORE_PARAM_ALIAS 341 +#define PIDX_STORE_PARAM_DIGEST 3 +#define PIDX_STORE_PARAM_EXPECT 342 +#define PIDX_STORE_PARAM_FINGERPRINT 343 +#define PIDX_STORE_PARAM_INPUT_TYPE 174 +#define PIDX_STORE_PARAM_ISSUER 296 +#define PIDX_STORE_PARAM_PROPERTIES 7 +#define PIDX_STORE_PARAM_SERIAL 344 +#define PIDX_STORE_PARAM_SUBJECT 345 diff --git a/deps/openssl/config/archs/darwin-i386-cc/no-asm/include/openssl/asn1.h b/deps/openssl/config/archs/darwin-i386-cc/no-asm/include/openssl/asn1.h index 21ff58e3d803d4..15e9e44674b0f3 100644 --- a/deps/openssl/config/archs/darwin-i386-cc/no-asm/include/openssl/asn1.h +++ b/deps/openssl/config/archs/darwin-i386-cc/no-asm/include/openssl/asn1.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/asn1.h.in * - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -21,6 +21,9 @@ # define HEADER_ASN1_H # endif +# ifndef OPENSSL_NO_STDIO +# include +# endif # include # include # include @@ -50,14 +53,14 @@ extern "C" { # define V_ASN1_PRIMITIVE_TAG 0x1f # define V_ASN1_PRIMATIVE_TAG /*compat*/ V_ASN1_PRIMITIVE_TAG -# define V_ASN1_APP_CHOOSE -2/* let the recipient choose */ -# define V_ASN1_OTHER -3/* used in ASN1_TYPE */ -# define V_ASN1_ANY -4/* used in ASN1 template code */ +# define V_ASN1_APP_CHOOSE -2 /* let the recipient choose */ +# define V_ASN1_OTHER -3 /* used in ASN1_TYPE */ +# define V_ASN1_ANY -4 /* used in ASN1 template code */ # define V_ASN1_UNDEF -1 /* ASN.1 tag values */ # define V_ASN1_EOC 0 -# define V_ASN1_BOOLEAN 1 /**/ +# define V_ASN1_BOOLEAN 1 # define V_ASN1_INTEGER 2 # define V_ASN1_BIT_STRING 3 # define V_ASN1_OCTET_STRING 4 @@ -70,19 +73,19 @@ extern "C" { # define V_ASN1_UTF8STRING 12 # define V_ASN1_SEQUENCE 16 # define V_ASN1_SET 17 -# define V_ASN1_NUMERICSTRING 18 /**/ +# define V_ASN1_NUMERICSTRING 18 # define V_ASN1_PRINTABLESTRING 19 # define V_ASN1_T61STRING 20 -# define V_ASN1_TELETEXSTRING 20/* alias */ -# define V_ASN1_VIDEOTEXSTRING 21 /**/ +# define V_ASN1_TELETEXSTRING 20 /* alias */ +# define V_ASN1_VIDEOTEXSTRING 21 # define V_ASN1_IA5STRING 22 # define V_ASN1_UTCTIME 23 -# define V_ASN1_GENERALIZEDTIME 24 /**/ -# define V_ASN1_GRAPHICSTRING 25 /**/ -# define V_ASN1_ISO64STRING 26 /**/ -# define V_ASN1_VISIBLESTRING 26/* alias */ -# define V_ASN1_GENERALSTRING 27 /**/ -# define V_ASN1_UNIVERSALSTRING 28 /**/ +# define V_ASN1_GENERALIZEDTIME 24 +# define V_ASN1_GRAPHICSTRING 25 +# define V_ASN1_ISO64STRING 26 +# define V_ASN1_VISIBLESTRING 26 /* alias */ +# define V_ASN1_GENERALSTRING 27 +# define V_ASN1_UNIVERSALSTRING 28 # define V_ASN1_BMPSTRING 30 /* @@ -155,7 +158,7 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_ALGOR, X509_ALGOR, X509_ALGOR) -# define ASN1_STRING_FLAG_BITS_LEFT 0x08/* Set if 0x07 has bits left value */ +# define ASN1_STRING_FLAG_BITS_LEFT 0x08 /* Set if 0x07 has bits left value */ /* * This indicates that the ASN1_STRING is not a real value but just a place * holder for the location where indefinite length constructed data should be @@ -275,7 +278,7 @@ typedef struct ASN1_TLC_st ASN1_TLC; /* This is just an opaque pointer */ typedef struct ASN1_VALUE_st ASN1_VALUE; -/* Declare ASN1 functions: the implement macro in in asn1t.h */ +/* Declare ASN1 functions: the implement macro is in asn1t.h */ /* * The mysterious 'extern' that's passed to some macros is innocuous, @@ -368,6 +371,7 @@ typedef struct ASN1_VALUE_st ASN1_VALUE; typedef void *d2i_of_void(void **, const unsigned char **, long); typedef int i2d_of_void(const void *, unsigned char **); +typedef int OSSL_i2d_of_void_ctx(const void *, unsigned char **, void *vctx); /*- * The following macros and typedefs allow an ASN1_ITEM @@ -996,6 +1000,8 @@ int ASN1_TYPE_get_int_octetstring(const ASN1_TYPE *a, long *num, unsigned char *data, int max_len); void *ASN1_item_unpack(const ASN1_STRING *oct, const ASN1_ITEM *it); +void *ASN1_item_unpack_ex(const ASN1_STRING *oct, const ASN1_ITEM *it, + OSSL_LIB_CTX *libctx, const char *propq); ASN1_STRING *ASN1_item_pack(void *obj, const ASN1_ITEM *it, ASN1_OCTET_STRING **oct); diff --git a/deps/openssl/config/archs/darwin-i386-cc/no-asm/include/openssl/bio.h b/deps/openssl/config/archs/darwin-i386-cc/no-asm/include/openssl/bio.h index f9aa74731c833c..e02f867beb0ec0 100644 --- a/deps/openssl/config/archs/darwin-i386-cc/no-asm/include/openssl/bio.h +++ b/deps/openssl/config/archs/darwin-i386-cc/no-asm/include/openssl/bio.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/bio.h.in * - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -67,8 +67,13 @@ extern "C" { # define BIO_TYPE_DGRAM_SCTP (24|BIO_TYPE_SOURCE_SINK|BIO_TYPE_DESCRIPTOR) # endif # define BIO_TYPE_CORE_TO_PROV (25|BIO_TYPE_SOURCE_SINK) +# define BIO_TYPE_DGRAM_PAIR (26|BIO_TYPE_SOURCE_SINK) +# define BIO_TYPE_DGRAM_MEM (27|BIO_TYPE_SOURCE_SINK) +/* Custom type starting index returned by BIO_get_new_index() */ #define BIO_TYPE_START 128 +/* Custom type maximum index that can be returned by BIO_get_new_index() */ +#define BIO_TYPE_MASK 0xFF /* * BIO_FILENAME_READ|BIO_CLOSE to open or close on free. @@ -171,6 +176,31 @@ extern "C" { # define BIO_CTRL_SET_INDENT 80 # define BIO_CTRL_GET_INDENT 81 +# define BIO_CTRL_DGRAM_GET_LOCAL_ADDR_CAP 82 +# define BIO_CTRL_DGRAM_GET_LOCAL_ADDR_ENABLE 83 +# define BIO_CTRL_DGRAM_SET_LOCAL_ADDR_ENABLE 84 +# define BIO_CTRL_DGRAM_GET_EFFECTIVE_CAPS 85 +# define BIO_CTRL_DGRAM_GET_CAPS 86 +# define BIO_CTRL_DGRAM_SET_CAPS 87 +# define BIO_CTRL_DGRAM_GET_NO_TRUNC 88 +# define BIO_CTRL_DGRAM_SET_NO_TRUNC 89 + +/* + * internal BIO: + * # define BIO_CTRL_SET_KTLS_TX_ZEROCOPY_SENDFILE 90 + */ + +# define BIO_CTRL_GET_RPOLL_DESCRIPTOR 91 +# define BIO_CTRL_GET_WPOLL_DESCRIPTOR 92 +# define BIO_CTRL_DGRAM_DETECT_PEER_ADDR 93 +# define BIO_CTRL_DGRAM_SET0_LOCAL_ADDR 94 + +# define BIO_DGRAM_CAP_NONE 0U +# define BIO_DGRAM_CAP_HANDLES_SRC_ADDR (1U << 0) +# define BIO_DGRAM_CAP_HANDLES_DST_ADDR (1U << 1) +# define BIO_DGRAM_CAP_PROVIDES_SRC_ADDR (1U << 2) +# define BIO_DGRAM_CAP_PROVIDES_DST_ADDR (1U << 3) + # ifndef OPENSSL_NO_KTLS # define BIO_get_ktls_send(b) \ (BIO_ctrl(b, BIO_CTRL_GET_KTLS_SEND, 0, NULL) > 0) @@ -208,7 +238,7 @@ extern "C" { # define BIO_FLAGS_NONCLEAR_RST 0x400 # define BIO_FLAGS_IN_EOF 0x800 -/* the BIO FLAGS values 0x1000 to 0x4000 are reserved for internal KTLS flags */ +/* the BIO FLAGS values 0x1000 to 0x8000 are reserved for internal KTLS flags */ typedef union bio_addr_st BIO_ADDR; typedef struct bio_addrinfo_st BIO_ADDRINFO; @@ -256,12 +286,14 @@ void BIO_clear_flags(BIO *b, int flags); # define BIO_RR_ACCEPT 0x03 /* These are passed by the BIO callback */ -# define BIO_CB_FREE 0x01 -# define BIO_CB_READ 0x02 -# define BIO_CB_WRITE 0x03 -# define BIO_CB_PUTS 0x04 -# define BIO_CB_GETS 0x05 -# define BIO_CB_CTRL 0x06 +# define BIO_CB_FREE 0x01 +# define BIO_CB_READ 0x02 +# define BIO_CB_WRITE 0x03 +# define BIO_CB_PUTS 0x04 +# define BIO_CB_GETS 0x05 +# define BIO_CB_CTRL 0x06 +# define BIO_CB_RECVMMSG 0x07 +# define BIO_CB_SENDMMSG 0x08 /* * The callback is called before and after the underling operation, The @@ -362,6 +394,36 @@ struct bio_dgram_sctp_prinfo { }; # endif +/* BIO_sendmmsg/BIO_recvmmsg-related definitions */ +typedef struct bio_msg_st { + void *data; + size_t data_len; + BIO_ADDR *peer, *local; + uint64_t flags; +} BIO_MSG; + +typedef struct bio_mmsg_cb_args_st { + BIO_MSG *msg; + size_t stride, num_msg; + uint64_t flags; + size_t *msgs_processed; +} BIO_MMSG_CB_ARGS; + +#define BIO_POLL_DESCRIPTOR_TYPE_NONE 0 +#define BIO_POLL_DESCRIPTOR_TYPE_SOCK_FD 1 +#define BIO_POLL_DESCRIPTOR_TYPE_SSL 2 +#define BIO_POLL_DESCRIPTOR_CUSTOM_START 8192 + +typedef struct bio_poll_descriptor_st { + uint32_t type; + union { + int fd; + void *custom; + uintptr_t custom_ui; + SSL *ssl; + } value; +} BIO_POLL_DESCRIPTOR; + /* * #define BIO_CONN_get_param_hostname BIO_ctrl */ @@ -428,10 +490,17 @@ struct bio_dgram_sctp_prinfo { # define BIO_C_SET_CONNECT_MODE 155 +# define BIO_C_SET_TFO 156 /* like BIO_C_SET_NBIO */ + +# define BIO_C_SET_SOCK_TYPE 157 +# define BIO_C_GET_SOCK_TYPE 158 +# define BIO_C_GET_DGRAM_BIO 159 + # define BIO_set_app_data(s,arg) BIO_set_ex_data(s,0,arg) # define BIO_get_app_data(s) BIO_get_ex_data(s,0) -# define BIO_set_nbio(b,n) BIO_ctrl(b,BIO_C_SET_NBIO,(n),NULL) +# define BIO_set_nbio(b,n) BIO_ctrl(b,BIO_C_SET_NBIO,(n),NULL) +# define BIO_set_tfo(b,n) BIO_ctrl(b,BIO_C_SET_TFO,(n),NULL) # ifndef OPENSSL_NO_SOCK /* IP families we support, for BIO_s_connect() and BIO_s_accept() */ @@ -452,7 +521,11 @@ struct bio_dgram_sctp_prinfo { # define BIO_get_conn_port(b) ((const char *)BIO_ptr_ctrl(b,BIO_C_GET_CONNECT,1)) # define BIO_get_conn_address(b) ((const BIO_ADDR *)BIO_ptr_ctrl(b,BIO_C_GET_CONNECT,2)) # define BIO_get_conn_ip_family(b) BIO_ctrl(b,BIO_C_GET_CONNECT,3,NULL) +# define BIO_get_conn_mode(b) BIO_ctrl(b,BIO_C_GET_CONNECT,4,NULL) # define BIO_set_conn_mode(b,n) BIO_ctrl(b,BIO_C_SET_CONNECT_MODE,(n),NULL) +# define BIO_set_sock_type(b,t) BIO_ctrl(b,BIO_C_SET_SOCK_TYPE,(t),NULL) +# define BIO_get_sock_type(b) BIO_ctrl(b,BIO_C_GET_SOCK_TYPE,0,NULL) +# define BIO_get0_dgram_bio(b, p) BIO_ctrl(b,BIO_C_GET_DGRAM_BIO,0,(void *)(BIO **)(p)) /* BIO_s_accept() */ # define BIO_set_accept_name(b,name) BIO_ctrl(b,BIO_C_SET_ACCEPT,0, \ @@ -469,6 +542,7 @@ struct bio_dgram_sctp_prinfo { (char *)(bio)) # define BIO_set_accept_ip_family(b,f) BIO_int_ctrl(b,BIO_C_SET_ACCEPT,4,f) # define BIO_get_accept_ip_family(b) BIO_ctrl(b,BIO_C_GET_ACCEPT,4,NULL) +# define BIO_set_tfo_accept(b,n) BIO_ctrl(b,BIO_C_SET_ACCEPT,5,(n)?(void *)"a":NULL) /* Aliases kept for backward compatibility */ # define BIO_BIND_NORMAL 0 @@ -596,8 +670,32 @@ int BIO_ctrl_reset_read_request(BIO *b); (int)BIO_ctrl(b, BIO_CTRL_DGRAM_GET_PEER, 0, (char *)(peer)) # define BIO_dgram_set_peer(b,peer) \ (int)BIO_ctrl(b, BIO_CTRL_DGRAM_SET_PEER, 0, (char *)(peer)) +# define BIO_dgram_detect_peer_addr(b,peer) \ + (int)BIO_ctrl(b, BIO_CTRL_DGRAM_DETECT_PEER_ADDR, 0, (char *)(peer)) # define BIO_dgram_get_mtu_overhead(b) \ (unsigned int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_MTU_OVERHEAD, 0, NULL) +# define BIO_dgram_get_local_addr_cap(b) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_LOCAL_ADDR_CAP, 0, NULL) +# define BIO_dgram_get_local_addr_enable(b, penable) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_LOCAL_ADDR_ENABLE, 0, (char *)(penable)) +# define BIO_dgram_set_local_addr_enable(b, enable) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET_LOCAL_ADDR_ENABLE, (enable), NULL) +# define BIO_dgram_get_effective_caps(b) \ + (uint32_t)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_EFFECTIVE_CAPS, 0, NULL) +# define BIO_dgram_get_caps(b) \ + (uint32_t)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_CAPS, 0, NULL) +# define BIO_dgram_set_caps(b, caps) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET_CAPS, (long)(caps), NULL) +# define BIO_dgram_get_no_trunc(b) \ + (unsigned int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_NO_TRUNC, 0, NULL) +# define BIO_dgram_set_no_trunc(b, enable) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET_NO_TRUNC, (enable), NULL) +# define BIO_dgram_get_mtu(b) \ + (unsigned int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_MTU, 0, NULL) +# define BIO_dgram_set_mtu(b, mtu) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET_MTU, (mtu), NULL) +# define BIO_dgram_set0_local_addr(b, addr) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET0_LOCAL_ADDR, 0, (addr)) /* ctrl macros for BIO_f_prefix */ # define BIO_set_prefix(b,p) BIO_ctrl((b), BIO_CTRL_SET_PREFIX, 0, (void *)(p)) @@ -640,10 +738,18 @@ void BIO_vfree(BIO *a); int BIO_up_ref(BIO *a); int BIO_read(BIO *b, void *data, int dlen); int BIO_read_ex(BIO *b, void *data, size_t dlen, size_t *readbytes); +__owur int BIO_recvmmsg(BIO *b, BIO_MSG *msg, + size_t stride, size_t num_msg, uint64_t flags, + size_t *msgs_processed); int BIO_gets(BIO *bp, char *buf, int size); int BIO_get_line(BIO *bio, char *buf, int size); int BIO_write(BIO *b, const void *data, int dlen); int BIO_write_ex(BIO *b, const void *data, size_t dlen, size_t *written); +__owur int BIO_sendmmsg(BIO *b, BIO_MSG *msg, + size_t stride, size_t num_msg, uint64_t flags, + size_t *msgs_processed); +__owur int BIO_get_rpoll_descriptor(BIO *b, BIO_POLL_DESCRIPTOR *desc); +__owur int BIO_get_wpoll_descriptor(BIO *b, BIO_POLL_DESCRIPTOR *desc); int BIO_puts(BIO *bp, const char *buf); int BIO_indent(BIO *b, int indent, int max); long BIO_ctrl(BIO *bp, int cmd, long larg, void *parg); @@ -667,6 +773,9 @@ int BIO_nwrite0(BIO *bio, char **buf); int BIO_nwrite(BIO *bio, char **buf, int num); const BIO_METHOD *BIO_s_mem(void); +# ifndef OPENSSL_NO_DGRAM +const BIO_METHOD *BIO_s_dgram_mem(void); +# endif const BIO_METHOD *BIO_s_secmem(void); BIO *BIO_new_mem_buf(const void *buf, int len); # ifndef OPENSSL_NO_SOCK @@ -686,6 +795,7 @@ const BIO_METHOD *BIO_f_nbio_test(void); const BIO_METHOD *BIO_f_prefix(void); const BIO_METHOD *BIO_s_core(void); # ifndef OPENSSL_NO_DGRAM +const BIO_METHOD *BIO_s_dgram_pair(void); const BIO_METHOD *BIO_s_datagram(void); int BIO_dgram_non_fatal_error(int error); BIO *BIO_new_dgram(int fd, int close_flag); @@ -704,6 +814,7 @@ int BIO_dgram_sctp_msg_waiting(BIO *b); # ifndef OPENSSL_NO_SOCK int BIO_sock_should_retry(int i); int BIO_sock_non_fatal_error(int error); +int BIO_err_is_non_fatal(unsigned int errcode); int BIO_socket_wait(int fd, int for_read, time_t max_time); # endif int BIO_wait(BIO *bio, time_t max_time, unsigned int nap_milliseconds); @@ -726,6 +837,8 @@ int BIO_hex_string(BIO *out, int indent, int width, const void *data, # ifndef OPENSSL_NO_SOCK BIO_ADDR *BIO_ADDR_new(void); +int BIO_ADDR_copy(BIO_ADDR *dst, const BIO_ADDR *src); +BIO_ADDR *BIO_ADDR_dup(const BIO_ADDR *ap); int BIO_ADDR_rawmake(BIO_ADDR *ap, int family, const void *where, size_t wherelen, unsigned short port); void BIO_ADDR_free(BIO_ADDR *); @@ -788,6 +901,7 @@ int BIO_sock_info(int sock, # define BIO_SOCK_KEEPALIVE 0x04 # define BIO_SOCK_NONBLOCK 0x08 # define BIO_SOCK_NODELAY 0x10 +# define BIO_SOCK_TFO 0x20 int BIO_socket(int domain, int socktype, int protocol, int options); int BIO_connect(int sock, const BIO_ADDR *addr, int options); @@ -805,6 +919,11 @@ BIO *BIO_new_fd(int fd, int close_flag); int BIO_new_bio_pair(BIO **bio1, size_t writebuf1, BIO **bio2, size_t writebuf2); +# ifndef OPENSSL_NO_DGRAM +int BIO_new_bio_dgram_pair(BIO **bio1, size_t writebuf1, + BIO **bio2, size_t writebuf2); +# endif + /* * If successful, returns 1 and in *bio1, *bio2 two BIO pair endpoints. * Otherwise returns 0 and sets *bio1 and *bio2 to NULL. Size 0 uses default @@ -849,38 +968,54 @@ ossl_bio__attr__((__format__(ossl_bio__printf__, 3, 0))); BIO_METHOD *BIO_meth_new(int type, const char *name); void BIO_meth_free(BIO_METHOD *biom); -int (*BIO_meth_get_write(const BIO_METHOD *biom)) (BIO *, const char *, int); -int (*BIO_meth_get_write_ex(const BIO_METHOD *biom)) (BIO *, const char *, size_t, - size_t *); int BIO_meth_set_write(BIO_METHOD *biom, int (*write) (BIO *, const char *, int)); int BIO_meth_set_write_ex(BIO_METHOD *biom, int (*bwrite) (BIO *, const char *, size_t, size_t *)); -int (*BIO_meth_get_read(const BIO_METHOD *biom)) (BIO *, char *, int); -int (*BIO_meth_get_read_ex(const BIO_METHOD *biom)) (BIO *, char *, size_t, size_t *); +int BIO_meth_set_sendmmsg(BIO_METHOD *biom, + int (*f) (BIO *, BIO_MSG *, size_t, size_t, + uint64_t, size_t *)); int BIO_meth_set_read(BIO_METHOD *biom, int (*read) (BIO *, char *, int)); int BIO_meth_set_read_ex(BIO_METHOD *biom, int (*bread) (BIO *, char *, size_t, size_t *)); -int (*BIO_meth_get_puts(const BIO_METHOD *biom)) (BIO *, const char *); +int BIO_meth_set_recvmmsg(BIO_METHOD *biom, + int (*f) (BIO *, BIO_MSG *, size_t, size_t, + uint64_t, size_t *)); int BIO_meth_set_puts(BIO_METHOD *biom, int (*puts) (BIO *, const char *)); -int (*BIO_meth_get_gets(const BIO_METHOD *biom)) (BIO *, char *, int); int BIO_meth_set_gets(BIO_METHOD *biom, int (*ossl_gets) (BIO *, char *, int)); -long (*BIO_meth_get_ctrl(const BIO_METHOD *biom)) (BIO *, int, long, void *); int BIO_meth_set_ctrl(BIO_METHOD *biom, long (*ctrl) (BIO *, int, long, void *)); -int (*BIO_meth_get_create(const BIO_METHOD *bion)) (BIO *); int BIO_meth_set_create(BIO_METHOD *biom, int (*create) (BIO *)); -int (*BIO_meth_get_destroy(const BIO_METHOD *biom)) (BIO *); int BIO_meth_set_destroy(BIO_METHOD *biom, int (*destroy) (BIO *)); -long (*BIO_meth_get_callback_ctrl(const BIO_METHOD *biom)) - (BIO *, int, BIO_info_cb *); int BIO_meth_set_callback_ctrl(BIO_METHOD *biom, long (*callback_ctrl) (BIO *, int, BIO_info_cb *)); - +# ifndef OPENSSL_NO_DEPRECATED_3_5 +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_write(const BIO_METHOD *biom)) (BIO *, const char *, + int); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_write_ex(const BIO_METHOD *biom)) (BIO *, const char *, + size_t, size_t *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_sendmmsg(const BIO_METHOD *biom))(BIO *, BIO_MSG *, + size_t, size_t, + uint64_t, size_t *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_read(const BIO_METHOD *biom)) (BIO *, char *, int); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_read_ex(const BIO_METHOD *biom)) (BIO *, char *, + size_t, size_t *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_recvmmsg(const BIO_METHOD *biom))(BIO *, BIO_MSG *, + size_t, size_t, + uint64_t, size_t *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_puts(const BIO_METHOD *biom)) (BIO *, const char *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_gets(const BIO_METHOD *biom)) (BIO *, char *, int); +OSSL_DEPRECATEDIN_3_5 long (*BIO_meth_get_ctrl(const BIO_METHOD *biom)) (BIO *, int, + long, void *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_create(const BIO_METHOD *bion)) (BIO *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_destroy(const BIO_METHOD *biom)) (BIO *); +OSSL_DEPRECATEDIN_3_5 long (*BIO_meth_get_callback_ctrl(const BIO_METHOD *biom)) (BIO *, int, + BIO_info_cb *); +# endif # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/darwin-i386-cc/no-asm/include/openssl/cmp.h b/deps/openssl/config/archs/darwin-i386-cc/no-asm/include/openssl/cmp.h index 49825570d8c303..05aed3029d594c 100644 --- a/deps/openssl/config/archs/darwin-i386-cc/no-asm/include/openssl/cmp.h +++ b/deps/openssl/config/archs/darwin-i386-cc/no-asm/include/openssl/cmp.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/cmp.h.in * - * Copyright 2007-2023 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2007-2024 The OpenSSL Project Authors. All Rights Reserved. * Copyright Nokia 2007-2019 * Copyright Siemens AG 2015-2019 * @@ -35,7 +35,9 @@ extern "C" { # endif -# define OSSL_CMP_PVNO 2 +# define OSSL_CMP_PVNO_2 2 +# define OSSL_CMP_PVNO_3 3 +# define OSSL_CMP_PVNO OSSL_CMP_PVNO_2 /* v2 is the default */ /*- * PKIFailureInfo ::= BIT STRING { @@ -137,7 +139,6 @@ extern "C" { # if OSSL_CMP_PKIFAILUREINFO_MAX_BIT_PATTERN > INT_MAX # error CMP_PKIFAILUREINFO_MAX bit pattern does not fit in type int # endif - typedef ASN1_BIT_STRING OSSL_CMP_PKIFAILUREINFO; # define OSSL_CMP_CTX_FAILINFO_badAlg (1 << 0) @@ -203,8 +204,8 @@ typedef ASN1_BIT_STRING OSSL_CMP_PKIFAILUREINFO; # define OSSL_CMP_PKISTATUS_revocationWarning 4 # define OSSL_CMP_PKISTATUS_revocationNotification 5 # define OSSL_CMP_PKISTATUS_keyUpdateWarning 6 - typedef ASN1_INTEGER OSSL_CMP_PKISTATUS; + DECLARE_ASN1_ITEM(OSSL_CMP_PKISTATUS) # define OSSL_CMP_CERTORENCCERT_CERTIFICATE 0 @@ -274,6 +275,46 @@ SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CMP_ITAV, OSSL_CMP_ITAV, OSSL_CMP_ITAV) #define sk_OSSL_CMP_ITAV_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_CMP_ITAV) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_CMP_ITAV_sk_type(sk), ossl_check_OSSL_CMP_ITAV_copyfunc_type(copyfunc), ossl_check_OSSL_CMP_ITAV_freefunc_type(freefunc))) #define sk_OSSL_CMP_ITAV_set_cmp_func(sk, cmp) ((sk_OSSL_CMP_ITAV_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CMP_ITAV_sk_type(sk), ossl_check_OSSL_CMP_ITAV_compfunc_type(cmp))) + +typedef struct ossl_cmp_crlstatus_st OSSL_CMP_CRLSTATUS; +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CMP_CRLSTATUS, OSSL_CMP_CRLSTATUS, OSSL_CMP_CRLSTATUS) +#define sk_OSSL_CMP_CRLSTATUS_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_value(sk, idx) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_value(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk), (idx))) +#define sk_OSSL_CMP_CRLSTATUS_new(cmp) ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_new(ossl_check_OSSL_CMP_CRLSTATUS_compfunc_type(cmp))) +#define sk_OSSL_CMP_CRLSTATUS_new_null() ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_new_null()) +#define sk_OSSL_CMP_CRLSTATUS_new_reserve(cmp, n) ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_CMP_CRLSTATUS_compfunc_type(cmp), (n))) +#define sk_OSSL_CMP_CRLSTATUS_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), (n)) +#define sk_OSSL_CMP_CRLSTATUS_free(sk) OPENSSL_sk_free(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_delete(sk, i) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_delete(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), (i))) +#define sk_OSSL_CMP_CRLSTATUS_delete_ptr(sk, ptr) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr))) +#define sk_OSSL_CMP_CRLSTATUS_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr)) +#define sk_OSSL_CMP_CRLSTATUS_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr)) +#define sk_OSSL_CMP_CRLSTATUS_pop(sk) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_pop(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk))) +#define sk_OSSL_CMP_CRLSTATUS_shift(sk) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_shift(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk))) +#define sk_OSSL_CMP_CRLSTATUS_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk),ossl_check_OSSL_CMP_CRLSTATUS_freefunc_type(freefunc)) +#define sk_OSSL_CMP_CRLSTATUS_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr), (idx)) +#define sk_OSSL_CMP_CRLSTATUS_set(sk, idx, ptr) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_set(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), (idx), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr))) +#define sk_OSSL_CMP_CRLSTATUS_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr)) +#define sk_OSSL_CMP_CRLSTATUS_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr)) +#define sk_OSSL_CMP_CRLSTATUS_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr), pnum) +#define sk_OSSL_CMP_CRLSTATUS_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_dup(sk) ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_dup(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk))) +#define sk_OSSL_CMP_CRLSTATUS_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_copyfunc_type(copyfunc), ossl_check_OSSL_CMP_CRLSTATUS_freefunc_type(freefunc))) +#define sk_OSSL_CMP_CRLSTATUS_set_cmp_func(sk, cmp) ((sk_OSSL_CMP_CRLSTATUS_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_compfunc_type(cmp))) + + +typedef OSSL_CRMF_ATTRIBUTETYPEANDVALUE OSSL_CMP_ATAV; +# define OSSL_CMP_ATAV_free OSSL_CRMF_ATTRIBUTETYPEANDVALUE_free +typedef STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) OSSL_CMP_ATAVS; +DECLARE_ASN1_FUNCTIONS(OSSL_CMP_ATAVS) +# define stack_st_OSSL_CMP_ATAV stack_st_OSSL_CRMF_ATTRIBUTETYPEANDVALUE +# define sk_OSSL_CMP_ATAV_num sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_num +# define sk_OSSL_CMP_ATAV_value sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_value +# define sk_OSSL_CMP_ATAV_push sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_push +# define sk_OSSL_CMP_ATAV_pop_free sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_pop_free + typedef struct ossl_cmp_revrepcontent_st OSSL_CMP_REVREPCONTENT; typedef struct ossl_cmp_pkisi_st OSSL_CMP_PKISI; DECLARE_ASN1_FUNCTIONS(OSSL_CMP_PKISI) @@ -375,21 +416,75 @@ void OSSL_CMP_ITAV_set0(OSSL_CMP_ITAV *itav, ASN1_OBJECT *type, ASN1_TYPE *value); ASN1_OBJECT *OSSL_CMP_ITAV_get0_type(const OSSL_CMP_ITAV *itav); ASN1_TYPE *OSSL_CMP_ITAV_get0_value(const OSSL_CMP_ITAV *itav); -int OSSL_CMP_ITAV_push0_stack_item(STACK_OF(OSSL_CMP_ITAV) **itav_sk_p, +int OSSL_CMP_ITAV_push0_stack_item(STACK_OF(OSSL_CMP_ITAV) **sk_p, OSSL_CMP_ITAV *itav); void OSSL_CMP_ITAV_free(OSSL_CMP_ITAV *itav); + +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new0_certProfile(STACK_OF(ASN1_UTF8STRING) + *certProfile); +int OSSL_CMP_ITAV_get0_certProfile(const OSSL_CMP_ITAV *itav, + STACK_OF(ASN1_UTF8STRING) **out); +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new_caCerts(const STACK_OF(X509) *caCerts); +int OSSL_CMP_ITAV_get0_caCerts(const OSSL_CMP_ITAV *itav, STACK_OF(X509) **out); + +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new_rootCaCert(const X509 *rootCaCert); +int OSSL_CMP_ITAV_get0_rootCaCert(const OSSL_CMP_ITAV *itav, X509 **out); +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new_rootCaKeyUpdate(const X509 *newWithNew, + const X509 *newWithOld, + const X509 *oldWithNew); +int OSSL_CMP_ITAV_get0_rootCaKeyUpdate(const OSSL_CMP_ITAV *itav, + X509 **newWithNew, + X509 **newWithOld, + X509 **oldWithNew); + +OSSL_CMP_CRLSTATUS *OSSL_CMP_CRLSTATUS_create(const X509_CRL *crl, + const X509 *cert, int only_DN); +OSSL_CMP_CRLSTATUS *OSSL_CMP_CRLSTATUS_new1(const DIST_POINT_NAME *dpn, + const GENERAL_NAMES *issuer, + const ASN1_TIME *thisUpdate); +int OSSL_CMP_CRLSTATUS_get0(const OSSL_CMP_CRLSTATUS *crlstatus, + DIST_POINT_NAME **dpn, GENERAL_NAMES **issuer, + ASN1_TIME **thisUpdate); +void OSSL_CMP_CRLSTATUS_free(OSSL_CMP_CRLSTATUS *crlstatus); +OSSL_CMP_ITAV +*OSSL_CMP_ITAV_new0_crlStatusList(STACK_OF(OSSL_CMP_CRLSTATUS) *crlStatusList); +int OSSL_CMP_ITAV_get0_crlStatusList(const OSSL_CMP_ITAV *itav, + STACK_OF(OSSL_CMP_CRLSTATUS) **out); +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new_crls(const X509_CRL *crls); +int OSSL_CMP_ITAV_get0_crls(const OSSL_CMP_ITAV *it, STACK_OF(X509_CRL) **out); +OSSL_CMP_ITAV +*OSSL_CMP_ITAV_new0_certReqTemplate(OSSL_CRMF_CERTTEMPLATE *certTemplate, + OSSL_CMP_ATAVS *keySpec); +int OSSL_CMP_ITAV_get1_certReqTemplate(const OSSL_CMP_ITAV *itav, + OSSL_CRMF_CERTTEMPLATE **certTemplate, + OSSL_CMP_ATAVS **keySpec); + +OSSL_CMP_ATAV *OSSL_CMP_ATAV_create(ASN1_OBJECT *type, ASN1_TYPE *value); +void OSSL_CMP_ATAV_set0(OSSL_CMP_ATAV *itav, ASN1_OBJECT *type, + ASN1_TYPE *value); +ASN1_OBJECT *OSSL_CMP_ATAV_get0_type(const OSSL_CMP_ATAV *itav); +ASN1_TYPE *OSSL_CMP_ATAV_get0_value(const OSSL_CMP_ATAV *itav); +OSSL_CMP_ATAV *OSSL_CMP_ATAV_new_algId(const X509_ALGOR *alg); +X509_ALGOR *OSSL_CMP_ATAV_get0_algId(const OSSL_CMP_ATAV *atav); +OSSL_CMP_ATAV *OSSL_CMP_ATAV_new_rsaKeyLen(int len); +int OSSL_CMP_ATAV_get_rsaKeyLen(const OSSL_CMP_ATAV *atav); +int OSSL_CMP_ATAV_push1(OSSL_CMP_ATAVS **sk_p, const OSSL_CMP_ATAV *atav); + void OSSL_CMP_MSG_free(OSSL_CMP_MSG *msg); /* from cmp_ctx.c */ OSSL_CMP_CTX *OSSL_CMP_CTX_new(OSSL_LIB_CTX *libctx, const char *propq); void OSSL_CMP_CTX_free(OSSL_CMP_CTX *ctx); int OSSL_CMP_CTX_reinit(OSSL_CMP_CTX *ctx); +OSSL_LIB_CTX *OSSL_CMP_CTX_get0_libctx(const OSSL_CMP_CTX *ctx); +const char *OSSL_CMP_CTX_get0_propq(const OSSL_CMP_CTX *ctx); /* CMP general options: */ # define OSSL_CMP_OPT_LOG_VERBOSITY 0 /* CMP transfer options: */ -# define OSSL_CMP_OPT_KEEP_ALIVE 10 -# define OSSL_CMP_OPT_MSG_TIMEOUT 11 +# define OSSL_CMP_OPT_KEEP_ALIVE 10 +# define OSSL_CMP_OPT_MSG_TIMEOUT 11 # define OSSL_CMP_OPT_TOTAL_TIMEOUT 12 +# define OSSL_CMP_OPT_USE_TLS 13 /* CMP request options: */ # define OSSL_CMP_OPT_VALIDITY_DAYS 20 # define OSSL_CMP_OPT_SUBJECTALTNAME_NODEFAULT 21 @@ -407,6 +502,7 @@ int OSSL_CMP_CTX_reinit(OSSL_CMP_CTX *ctx); # define OSSL_CMP_OPT_DIGEST_ALGNID 34 # define OSSL_CMP_OPT_IGNORE_KEYUSAGE 35 # define OSSL_CMP_OPT_PERMIT_TA_IN_EXTRACERTS_FOR_IR 36 +# define OSSL_CMP_OPT_NO_CACHE_EXTRACERTS 37 int OSSL_CMP_CTX_set_option(OSSL_CMP_CTX *ctx, int opt, int val); int OSSL_CMP_CTX_get_option(const OSSL_CMP_CTX *ctx, int opt); /* CMP-specific callback for logging and outputting the error queue: */ @@ -420,9 +516,11 @@ int OSSL_CMP_CTX_set1_server(OSSL_CMP_CTX *ctx, const char *address); int OSSL_CMP_CTX_set_serverPort(OSSL_CMP_CTX *ctx, int port); int OSSL_CMP_CTX_set1_proxy(OSSL_CMP_CTX *ctx, const char *name); int OSSL_CMP_CTX_set1_no_proxy(OSSL_CMP_CTX *ctx, const char *names); +# ifndef OPENSSL_NO_HTTP int OSSL_CMP_CTX_set_http_cb(OSSL_CMP_CTX *ctx, OSSL_HTTP_bio_cb_t cb); int OSSL_CMP_CTX_set_http_cb_arg(OSSL_CMP_CTX *ctx, void *arg); void *OSSL_CMP_CTX_get_http_cb_arg(const OSSL_CMP_CTX *ctx); +# endif typedef OSSL_CMP_MSG *(*OSSL_CMP_transfer_cb_t) (OSSL_CMP_CTX *ctx, const OSSL_CMP_MSG *req); int OSSL_CMP_CTX_set_transfer_cb(OSSL_CMP_CTX *ctx, OSSL_CMP_transfer_cb_t cb); @@ -432,7 +530,9 @@ void *OSSL_CMP_CTX_get_transfer_cb_arg(const OSSL_CMP_CTX *ctx); int OSSL_CMP_CTX_set1_srvCert(OSSL_CMP_CTX *ctx, X509 *cert); int OSSL_CMP_CTX_set1_expected_sender(OSSL_CMP_CTX *ctx, const X509_NAME *name); int OSSL_CMP_CTX_set0_trustedStore(OSSL_CMP_CTX *ctx, X509_STORE *store); +# define OSSL_CMP_CTX_set0_trusted OSSL_CMP_CTX_set0_trustedStore X509_STORE *OSSL_CMP_CTX_get0_trustedStore(const OSSL_CMP_CTX *ctx); +# define OSSL_CMP_CTX_get0_trusted OSSL_CMP_CTX_get0_trustedStore int OSSL_CMP_CTX_set1_untrusted(OSSL_CMP_CTX *ctx, STACK_OF(X509) *certs); STACK_OF(X509) *OSSL_CMP_CTX_get0_untrusted(const OSSL_CMP_CTX *ctx); /* client authentication: */ @@ -448,12 +548,15 @@ int OSSL_CMP_CTX_set1_secretValue(OSSL_CMP_CTX *ctx, int OSSL_CMP_CTX_set1_recipient(OSSL_CMP_CTX *ctx, const X509_NAME *name); int OSSL_CMP_CTX_push0_geninfo_ITAV(OSSL_CMP_CTX *ctx, OSSL_CMP_ITAV *itav); int OSSL_CMP_CTX_reset_geninfo_ITAVs(OSSL_CMP_CTX *ctx); +STACK_OF(OSSL_CMP_ITAV) + *OSSL_CMP_CTX_get0_geninfo_ITAVs(const OSSL_CMP_CTX *ctx); int OSSL_CMP_CTX_set1_extraCertsOut(OSSL_CMP_CTX *ctx, STACK_OF(X509) *extraCertsOut); /* certificate template: */ int OSSL_CMP_CTX_set0_newPkey(OSSL_CMP_CTX *ctx, int priv, EVP_PKEY *pkey); EVP_PKEY *OSSL_CMP_CTX_get0_newPkey(const OSSL_CMP_CTX *ctx, int priv); int OSSL_CMP_CTX_set1_issuer(OSSL_CMP_CTX *ctx, const X509_NAME *name); +int OSSL_CMP_CTX_set1_serialNumber(OSSL_CMP_CTX *ctx, const ASN1_INTEGER *sn); int OSSL_CMP_CTX_set1_subjectName(OSSL_CMP_CTX *ctx, const X509_NAME *name); int OSSL_CMP_CTX_push1_subjectAltName(OSSL_CMP_CTX *ctx, const GENERAL_NAME *name); @@ -477,6 +580,7 @@ int OSSL_CMP_CTX_get_status(const OSSL_CMP_CTX *ctx); OSSL_CMP_PKIFREETEXT *OSSL_CMP_CTX_get0_statusString(const OSSL_CMP_CTX *ctx); int OSSL_CMP_CTX_get_failInfoCode(const OSSL_CMP_CTX *ctx); # define OSSL_CMP_PKISI_BUFLEN 1024 +X509 *OSSL_CMP_CTX_get0_validatedSrvCert(const OSSL_CMP_CTX *ctx); X509 *OSSL_CMP_CTX_get0_newCert(const OSSL_CMP_CTX *ctx); STACK_OF(X509) *OSSL_CMP_CTX_get1_newChain(const OSSL_CMP_CTX *ctx); STACK_OF(X509) *OSSL_CMP_CTX_get1_caPubs(const OSSL_CMP_CTX *ctx); @@ -498,10 +602,13 @@ OSSL_CMP_STATUSINFO_new(int status, int fail_info, const char *text); ASN1_OCTET_STRING *OSSL_CMP_HDR_get0_transactionID(const OSSL_CMP_PKIHEADER *hdr); ASN1_OCTET_STRING *OSSL_CMP_HDR_get0_recipNonce(const OSSL_CMP_PKIHEADER *hdr); +STACK_OF(OSSL_CMP_ITAV) + *OSSL_CMP_HDR_get0_geninfo_ITAVs(const OSSL_CMP_PKIHEADER *hdr); /* from cmp_msg.c */ OSSL_CMP_PKIHEADER *OSSL_CMP_MSG_get0_header(const OSSL_CMP_MSG *msg); int OSSL_CMP_MSG_get_bodytype(const OSSL_CMP_MSG *msg); +X509_PUBKEY *OSSL_CMP_MSG_get0_certreq_publickey(const OSSL_CMP_MSG *msg); int OSSL_CMP_MSG_update_transactionID(OSSL_CMP_CTX *ctx, OSSL_CMP_MSG *msg); int OSSL_CMP_MSG_update_recipNonce(OSSL_CMP_CTX *ctx, OSSL_CMP_MSG *msg); OSSL_CRMF_MSG *OSSL_CMP_CTX_setup_CRM(OSSL_CMP_CTX *ctx, int for_KUR, int rid); @@ -517,8 +624,10 @@ int OSSL_CMP_validate_cert_path(const OSSL_CMP_CTX *ctx, X509_STORE *trusted_store, X509 *cert); /* from cmp_http.c */ +# ifndef OPENSSL_NO_HTTP OSSL_CMP_MSG *OSSL_CMP_MSG_http_perform(OSSL_CMP_CTX *ctx, const OSSL_CMP_MSG *req); +# endif /* from cmp_server.c */ typedef struct ossl_cmp_srv_ctx_st OSSL_CMP_SRV_CTX; @@ -561,6 +670,13 @@ int OSSL_CMP_SRV_CTX_init(OSSL_CMP_SRV_CTX *srv_ctx, void *custom_ctx, OSSL_CMP_SRV_error_cb_t process_error, OSSL_CMP_SRV_certConf_cb_t process_certConf, OSSL_CMP_SRV_pollReq_cb_t process_pollReq); +typedef int (*OSSL_CMP_SRV_delayed_delivery_cb_t)(OSSL_CMP_SRV_CTX *srv_ctx, + const OSSL_CMP_MSG *req); +typedef int (*OSSL_CMP_SRV_clean_transaction_cb_t)(OSSL_CMP_SRV_CTX *srv_ctx, + const ASN1_OCTET_STRING *id); +int OSSL_CMP_SRV_CTX_init_trans(OSSL_CMP_SRV_CTX *srv_ctx, + OSSL_CMP_SRV_delayed_delivery_cb_t delay, + OSSL_CMP_SRV_clean_transaction_cb_t clean); OSSL_CMP_CTX *OSSL_CMP_SRV_CTX_get0_cmp_ctx(const OSSL_CMP_SRV_CTX *srv_ctx); void *OSSL_CMP_SRV_CTX_get0_custom_ctx(const OSSL_CMP_SRV_CTX *srv_ctx); int OSSL_CMP_SRV_CTX_set_send_unprotected_errors(OSSL_CMP_SRV_CTX *srv_ctx, @@ -577,6 +693,8 @@ X509 *OSSL_CMP_exec_certreq(OSSL_CMP_CTX *ctx, int req_type, # define OSSL_CMP_CR 2 # define OSSL_CMP_P10CR 4 # define OSSL_CMP_KUR 7 +# define OSSL_CMP_GENM 21 +# define OSSL_CMP_ERROR 23 # define OSSL_CMP_exec_IR_ses(ctx) \ OSSL_CMP_exec_certreq(ctx, OSSL_CMP_IR, NULL) # define OSSL_CMP_exec_CR_ses(ctx) \ @@ -590,6 +708,18 @@ int OSSL_CMP_try_certreq(OSSL_CMP_CTX *ctx, int req_type, int OSSL_CMP_exec_RR_ses(OSSL_CMP_CTX *ctx); STACK_OF(OSSL_CMP_ITAV) *OSSL_CMP_exec_GENM_ses(OSSL_CMP_CTX *ctx); +/* from cmp_genm.c */ +int OSSL_CMP_get1_caCerts(OSSL_CMP_CTX *ctx, STACK_OF(X509) **out); +int OSSL_CMP_get1_rootCaKeyUpdate(OSSL_CMP_CTX *ctx, + const X509 *oldWithOld, X509 **newWithNew, + X509 **newWithOld, X509 **oldWithNew); +int OSSL_CMP_get1_crlUpdate(OSSL_CMP_CTX *ctx, const X509 *crlcert, + const X509_CRL *last_crl, + X509_CRL **crl); +int OSSL_CMP_get1_certReqTemplate(OSSL_CMP_CTX *ctx, + OSSL_CRMF_CERTTEMPLATE **certTemplate, + OSSL_CMP_ATAVS **keySpec); + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/darwin-i386-cc/no-asm/include/openssl/cms.h b/deps/openssl/config/archs/darwin-i386-cc/no-asm/include/openssl/cms.h index 3b453e6a2187a2..63afab563557b0 100644 --- a/deps/openssl/config/archs/darwin-i386-cc/no-asm/include/openssl/cms.h +++ b/deps/openssl/config/archs/darwin-i386-cc/no-asm/include/openssl/cms.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/cms.h.in * - * Copyright 2008-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2008-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -31,8 +31,10 @@ extern "C" { # endif +typedef struct CMS_EnvelopedData_st CMS_EnvelopedData; typedef struct CMS_ContentInfo_st CMS_ContentInfo; typedef struct CMS_SignerInfo_st CMS_SignerInfo; +typedef struct CMS_SignedData_st CMS_SignedData; typedef struct CMS_CertificateChoices CMS_CertificateChoices; typedef struct CMS_RevocationInfoChoice_st CMS_RevocationInfoChoice; typedef struct CMS_RecipientInfo_st CMS_RecipientInfo; @@ -147,10 +149,14 @@ SKM_DEFINE_STACK_OF_INTERNAL(CMS_RevocationInfoChoice, CMS_RevocationInfoChoice, #define sk_CMS_RevocationInfoChoice_set_cmp_func(sk, cmp) ((sk_CMS_RevocationInfoChoice_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_CMS_RevocationInfoChoice_sk_type(sk), ossl_check_CMS_RevocationInfoChoice_compfunc_type(cmp))) +DECLARE_ASN1_ITEM(CMS_EnvelopedData) +DECLARE_ASN1_ALLOC_FUNCTIONS(CMS_SignedData) DECLARE_ASN1_FUNCTIONS(CMS_ContentInfo) DECLARE_ASN1_FUNCTIONS(CMS_ReceiptRequest) DECLARE_ASN1_PRINT_FUNCTION(CMS_ContentInfo) +DECLARE_ASN1_DUP_FUNCTION(CMS_EnvelopedData) + CMS_ContentInfo *CMS_ContentInfo_new_ex(OSSL_LIB_CTX *libctx, const char *propq); # define CMS_SIGNERINFO_ISSUER_SERIAL 0 @@ -190,6 +196,7 @@ CMS_ContentInfo *CMS_ContentInfo_new_ex(OSSL_LIB_CTX *libctx, const char *propq) # define CMS_ASCIICRLF 0x80000 # define CMS_CADES 0x100000 # define CMS_USE_ORIGINATOR_KEYID 0x200000 +# define CMS_NO_SIGNING_TIME 0x400000 const ASN1_OBJECT *CMS_get0_type(const CMS_ContentInfo *cms); @@ -217,13 +224,16 @@ int SMIME_write_CMS(BIO *bio, CMS_ContentInfo *cms, BIO *data, int flags); int CMS_final(CMS_ContentInfo *cms, BIO *data, BIO *dcont, unsigned int flags); +int CMS_final_digest(CMS_ContentInfo *cms, + const unsigned char *md, unsigned int mdlen, BIO *dcont, + unsigned int flags); CMS_ContentInfo *CMS_sign(X509 *signcert, EVP_PKEY *pkey, STACK_OF(X509) *certs, BIO *data, unsigned int flags); CMS_ContentInfo *CMS_sign_ex(X509 *signcert, EVP_PKEY *pkey, STACK_OF(X509) *certs, BIO *data, - unsigned int flags, OSSL_LIB_CTX *ctx, + unsigned int flags, OSSL_LIB_CTX *libctx, const char *propq); CMS_ContentInfo *CMS_sign_receipt(CMS_SignerInfo *si, @@ -233,27 +243,26 @@ CMS_ContentInfo *CMS_sign_receipt(CMS_SignerInfo *si, int CMS_data(CMS_ContentInfo *cms, BIO *out, unsigned int flags); CMS_ContentInfo *CMS_data_create(BIO *in, unsigned int flags); CMS_ContentInfo *CMS_data_create_ex(BIO *in, unsigned int flags, - OSSL_LIB_CTX *ctx, const char *propq); + OSSL_LIB_CTX *libctx, const char *propq); int CMS_digest_verify(CMS_ContentInfo *cms, BIO *dcont, BIO *out, unsigned int flags); CMS_ContentInfo *CMS_digest_create(BIO *in, const EVP_MD *md, unsigned int flags); CMS_ContentInfo *CMS_digest_create_ex(BIO *in, const EVP_MD *md, - unsigned int flags, OSSL_LIB_CTX *ctx, + unsigned int flags, OSSL_LIB_CTX *libctx, const char *propq); int CMS_EncryptedData_decrypt(CMS_ContentInfo *cms, const unsigned char *key, size_t keylen, BIO *dcont, BIO *out, unsigned int flags); - CMS_ContentInfo *CMS_EncryptedData_encrypt(BIO *in, const EVP_CIPHER *cipher, const unsigned char *key, size_t keylen, unsigned int flags); CMS_ContentInfo *CMS_EncryptedData_encrypt_ex(BIO *in, const EVP_CIPHER *cipher, const unsigned char *key, size_t keylen, unsigned int flags, - OSSL_LIB_CTX *ctx, + OSSL_LIB_CTX *libctx, const char *propq); int CMS_EncryptedData_set1_key(CMS_ContentInfo *cms, const EVP_CIPHER *ciph, @@ -272,7 +281,7 @@ CMS_ContentInfo *CMS_encrypt(STACK_OF(X509) *certs, BIO *in, const EVP_CIPHER *cipher, unsigned int flags); CMS_ContentInfo *CMS_encrypt_ex(STACK_OF(X509) *certs, BIO *in, const EVP_CIPHER *cipher, unsigned int flags, - OSSL_LIB_CTX *ctx, const char *propq); + OSSL_LIB_CTX *libctx, const char *propq); int CMS_decrypt(CMS_ContentInfo *cms, EVP_PKEY *pkey, X509 *cert, BIO *dcont, BIO *out, unsigned int flags); @@ -291,12 +300,16 @@ int CMS_RecipientInfo_type(CMS_RecipientInfo *ri); EVP_PKEY_CTX *CMS_RecipientInfo_get0_pkey_ctx(CMS_RecipientInfo *ri); CMS_ContentInfo *CMS_AuthEnvelopedData_create(const EVP_CIPHER *cipher); CMS_ContentInfo * -CMS_AuthEnvelopedData_create_ex(const EVP_CIPHER *cipher, OSSL_LIB_CTX *ctx, +CMS_AuthEnvelopedData_create_ex(const EVP_CIPHER *cipher, OSSL_LIB_CTX *libctx, const char *propq); CMS_ContentInfo *CMS_EnvelopedData_create(const EVP_CIPHER *cipher); CMS_ContentInfo *CMS_EnvelopedData_create_ex(const EVP_CIPHER *cipher, - OSSL_LIB_CTX *ctx, + OSSL_LIB_CTX *libctx, const char *propq); +BIO *CMS_EnvelopedData_decrypt(CMS_EnvelopedData *env, BIO *detached_data, + EVP_PKEY *pkey, X509 *cert, + ASN1_OCTET_STRING *secret, unsigned int flags, + OSSL_LIB_CTX *libctx, const char *propq); CMS_RecipientInfo *CMS_add1_recipient_cert(CMS_ContentInfo *cms, X509 *recip, unsigned int flags); @@ -385,6 +398,11 @@ ASN1_OCTET_STRING *CMS_SignerInfo_get0_signature(CMS_SignerInfo *si); int CMS_SignerInfo_sign(CMS_SignerInfo *si); int CMS_SignerInfo_verify(CMS_SignerInfo *si); int CMS_SignerInfo_verify_content(CMS_SignerInfo *si, BIO *chain); +BIO *CMS_SignedData_verify(CMS_SignedData *sd, BIO *detached_data, + STACK_OF(X509) *scerts, X509_STORE *store, + STACK_OF(X509) *extra, STACK_OF(X509_CRL) *crls, + unsigned int flags, + OSSL_LIB_CTX *libctx, const char *propq); int CMS_add_smimecap(CMS_SignerInfo *si, STACK_OF(X509_ALGOR) *algs); int CMS_add_simple_smimecap(STACK_OF(X509_ALGOR) **algs, @@ -441,7 +459,7 @@ CMS_ReceiptRequest *CMS_ReceiptRequest_create0_ex( unsigned char *id, int idlen, int allorfirst, STACK_OF(GENERAL_NAMES) *receiptList, STACK_OF(GENERAL_NAMES) *receiptsTo, - OSSL_LIB_CTX *ctx); + OSSL_LIB_CTX *libctx); int CMS_add1_ReceiptRequest(CMS_SignerInfo *si, CMS_ReceiptRequest *rr); void CMS_ReceiptRequest_get0_values(CMS_ReceiptRequest *rr, diff --git a/deps/openssl/config/archs/darwin-i386-cc/no-asm/include/openssl/comp.h b/deps/openssl/config/archs/darwin-i386-cc/no-asm/include/openssl/comp.h new file mode 100644 index 00000000000000..90e39511fe8d28 --- /dev/null +++ b/deps/openssl/config/archs/darwin-i386-cc/no-asm/include/openssl/comp.h @@ -0,0 +1,98 @@ +/* + * Copyright 2015-2024 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + + +#ifndef OPENSSL_COMP_H +# define OPENSSL_COMP_H +# pragma once + +# include +# ifndef OPENSSL_NO_DEPRECATED_3_0 +# define HEADER_COMP_H +# endif + +# include + +# include +# include +# ifdef __cplusplus +extern "C" { +# endif + + + +# ifndef OPENSSL_NO_COMP + +COMP_CTX *COMP_CTX_new(COMP_METHOD *meth); +const COMP_METHOD *COMP_CTX_get_method(const COMP_CTX *ctx); +int COMP_CTX_get_type(const COMP_CTX* comp); +int COMP_get_type(const COMP_METHOD *meth); +const char *COMP_get_name(const COMP_METHOD *meth); +void COMP_CTX_free(COMP_CTX *ctx); + +int COMP_compress_block(COMP_CTX *ctx, unsigned char *out, int olen, + unsigned char *in, int ilen); +int COMP_expand_block(COMP_CTX *ctx, unsigned char *out, int olen, + unsigned char *in, int ilen); + +COMP_METHOD *COMP_zlib(void); +COMP_METHOD *COMP_zlib_oneshot(void); +COMP_METHOD *COMP_brotli(void); +COMP_METHOD *COMP_brotli_oneshot(void); +COMP_METHOD *COMP_zstd(void); +COMP_METHOD *COMP_zstd_oneshot(void); + +# ifndef OPENSSL_NO_DEPRECATED_1_1_0 +# define COMP_zlib_cleanup() while(0) continue +# endif + +# ifdef OPENSSL_BIO_H +const BIO_METHOD *BIO_f_zlib(void); +const BIO_METHOD *BIO_f_brotli(void); +const BIO_METHOD *BIO_f_zstd(void); +# endif + +# endif + +typedef struct ssl_comp_st SSL_COMP; + +SKM_DEFINE_STACK_OF_INTERNAL(SSL_COMP, SSL_COMP, SSL_COMP) +#define sk_SSL_COMP_num(sk) OPENSSL_sk_num(ossl_check_const_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_value(sk, idx) ((SSL_COMP *)OPENSSL_sk_value(ossl_check_const_SSL_COMP_sk_type(sk), (idx))) +#define sk_SSL_COMP_new(cmp) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new(ossl_check_SSL_COMP_compfunc_type(cmp))) +#define sk_SSL_COMP_new_null() ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new_null()) +#define sk_SSL_COMP_new_reserve(cmp, n) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new_reserve(ossl_check_SSL_COMP_compfunc_type(cmp), (n))) +#define sk_SSL_COMP_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_SSL_COMP_sk_type(sk), (n)) +#define sk_SSL_COMP_free(sk) OPENSSL_sk_free(ossl_check_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_zero(sk) OPENSSL_sk_zero(ossl_check_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_delete(sk, i) ((SSL_COMP *)OPENSSL_sk_delete(ossl_check_SSL_COMP_sk_type(sk), (i))) +#define sk_SSL_COMP_delete_ptr(sk, ptr) ((SSL_COMP *)OPENSSL_sk_delete_ptr(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr))) +#define sk_SSL_COMP_push(sk, ptr) OPENSSL_sk_push(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) +#define sk_SSL_COMP_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) +#define sk_SSL_COMP_pop(sk) ((SSL_COMP *)OPENSSL_sk_pop(ossl_check_SSL_COMP_sk_type(sk))) +#define sk_SSL_COMP_shift(sk) ((SSL_COMP *)OPENSSL_sk_shift(ossl_check_SSL_COMP_sk_type(sk))) +#define sk_SSL_COMP_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_SSL_COMP_sk_type(sk),ossl_check_SSL_COMP_freefunc_type(freefunc)) +#define sk_SSL_COMP_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr), (idx)) +#define sk_SSL_COMP_set(sk, idx, ptr) ((SSL_COMP *)OPENSSL_sk_set(ossl_check_SSL_COMP_sk_type(sk), (idx), ossl_check_SSL_COMP_type(ptr))) +#define sk_SSL_COMP_find(sk, ptr) OPENSSL_sk_find(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) +#define sk_SSL_COMP_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) +#define sk_SSL_COMP_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr), pnum) +#define sk_SSL_COMP_sort(sk) OPENSSL_sk_sort(ossl_check_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_dup(sk) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_dup(ossl_check_const_SSL_COMP_sk_type(sk))) +#define sk_SSL_COMP_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_deep_copy(ossl_check_const_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_copyfunc_type(copyfunc), ossl_check_SSL_COMP_freefunc_type(freefunc))) +#define sk_SSL_COMP_set_cmp_func(sk, cmp) ((sk_SSL_COMP_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_compfunc_type(cmp))) + + + +# ifdef __cplusplus +} +# endif +#endif diff --git a/deps/openssl/config/archs/darwin-i386-cc/no-asm/include/openssl/conf.h b/deps/openssl/config/archs/darwin-i386-cc/no-asm/include/openssl/conf.h index 44989929f6c84a..38576290bf641b 100644 --- a/deps/openssl/config/archs/darwin-i386-cc/no-asm/include/openssl/conf.h +++ b/deps/openssl/config/archs/darwin-i386-cc/no-asm/include/openssl/conf.h @@ -27,6 +27,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -65,7 +68,7 @@ SKM_DEFINE_STACK_OF_INTERNAL(CONF_VALUE, CONF_VALUE, CONF_VALUE) #define sk_CONF_VALUE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(CONF_VALUE) *)OPENSSL_sk_deep_copy(ossl_check_const_CONF_VALUE_sk_type(sk), ossl_check_CONF_VALUE_copyfunc_type(copyfunc), ossl_check_CONF_VALUE_freefunc_type(freefunc))) #define sk_CONF_VALUE_set_cmp_func(sk, cmp) ((sk_CONF_VALUE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_CONF_VALUE_sk_type(sk), ossl_check_CONF_VALUE_compfunc_type(cmp))) DEFINE_LHASH_OF_INTERNAL(CONF_VALUE); -#define lh_CONF_VALUE_new(hfn, cmp) ((LHASH_OF(CONF_VALUE) *)OPENSSL_LH_new(ossl_check_CONF_VALUE_lh_hashfunc_type(hfn), ossl_check_CONF_VALUE_lh_compfunc_type(cmp))) +#define lh_CONF_VALUE_new(hfn, cmp) ((LHASH_OF(CONF_VALUE) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new(ossl_check_CONF_VALUE_lh_hashfunc_type(hfn), ossl_check_CONF_VALUE_lh_compfunc_type(cmp)), lh_CONF_VALUE_hash_thunk, lh_CONF_VALUE_comp_thunk, lh_CONF_VALUE_doall_thunk, lh_CONF_VALUE_doall_arg_thunk)) #define lh_CONF_VALUE_free(lh) OPENSSL_LH_free(ossl_check_CONF_VALUE_lh_type(lh)) #define lh_CONF_VALUE_flush(lh) OPENSSL_LH_flush(ossl_check_CONF_VALUE_lh_type(lh)) #define lh_CONF_VALUE_insert(lh, ptr) ((CONF_VALUE *)OPENSSL_LH_insert(ossl_check_CONF_VALUE_lh_type(lh), ossl_check_CONF_VALUE_lh_plain_type(ptr))) diff --git a/deps/openssl/config/archs/darwin-i386-cc/no-asm/include/openssl/configuration.h b/deps/openssl/config/archs/darwin-i386-cc/no-asm/include/openssl/configuration.h index 5661ccae2de957..e4caf99ab44cbe 100644 --- a/deps/openssl/config/archs/darwin-i386-cc/no-asm/include/openssl/configuration.h +++ b/deps/openssl/config/archs/darwin-i386-cc/no-asm/include/openssl/configuration.h @@ -30,7 +30,7 @@ extern "C" { # ifndef OPENSSL_SYS_MACOSX # define OPENSSL_SYS_MACOSX 1 # endif -# define OPENSSL_CONFIGURED_API 30000 +# define OPENSSL_CONFIGURED_API 30500 # ifndef OPENSSL_RAND_SEED_OS # define OPENSSL_RAND_SEED_OS # endif @@ -46,6 +46,12 @@ extern "C" { # ifndef OPENSSL_NO_ASM # define OPENSSL_NO_ASM # endif +# ifndef OPENSSL_NO_BROTLI +# define OPENSSL_NO_BROTLI +# endif +# ifndef OPENSSL_NO_BROTLI_DYNAMIC +# define OPENSSL_NO_BROTLI_DYNAMIC +# endif # ifndef OPENSSL_NO_COMP # define OPENSSL_NO_COMP # endif @@ -55,6 +61,9 @@ extern "C" { # ifndef OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE # define OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE # endif +# ifndef OPENSSL_NO_DEMOS +# define OPENSSL_NO_DEMOS +# endif # ifndef OPENSSL_NO_DEVCRYPTOENG # define OPENSSL_NO_DEVCRYPTOENG # endif @@ -67,12 +76,24 @@ extern "C" { # ifndef OPENSSL_NO_EXTERNAL_TESTS # define OPENSSL_NO_EXTERNAL_TESTS # endif +# ifndef OPENSSL_NO_FIPS_JITTER +# define OPENSSL_NO_FIPS_JITTER +# endif # ifndef OPENSSL_NO_FUZZ_AFL # define OPENSSL_NO_FUZZ_AFL # endif # ifndef OPENSSL_NO_FUZZ_LIBFUZZER # define OPENSSL_NO_FUZZ_LIBFUZZER # endif +# ifndef OPENSSL_NO_H3DEMO +# define OPENSSL_NO_H3DEMO +# endif +# ifndef OPENSSL_NO_HQINTEROP +# define OPENSSL_NO_HQINTEROP +# endif +# ifndef OPENSSL_NO_JITTER +# define OPENSSL_NO_JITTER +# endif # ifndef OPENSSL_NO_KTLS # define OPENSSL_NO_KTLS # endif @@ -85,6 +106,9 @@ extern "C" { # ifndef OPENSSL_NO_MSAN # define OPENSSL_NO_MSAN # endif +# ifndef OPENSSL_NO_PIE +# define OPENSSL_NO_PIE +# endif # ifndef OPENSSL_NO_RC5 # define OPENSSL_NO_RC5 # endif @@ -97,6 +121,12 @@ extern "C" { # ifndef OPENSSL_NO_SSL3_METHOD # define OPENSSL_NO_SSL3_METHOD # endif +# ifndef OPENSSL_NO_SSLKEYLOG +# define OPENSSL_NO_SSLKEYLOG +# endif +# ifndef OPENSSL_NO_TFO +# define OPENSSL_NO_TFO +# endif # ifndef OPENSSL_NO_TRACE # define OPENSSL_NO_TRACE # endif @@ -112,6 +142,21 @@ extern "C" { # ifndef OPENSSL_NO_WEAK_SSL_CIPHERS # define OPENSSL_NO_WEAK_SSL_CIPHERS # endif +# ifndef OPENSSL_NO_WINSTORE +# define OPENSSL_NO_WINSTORE +# endif +# ifndef OPENSSL_NO_ZLIB +# define OPENSSL_NO_ZLIB +# endif +# ifndef OPENSSL_NO_ZLIB_DYNAMIC +# define OPENSSL_NO_ZLIB_DYNAMIC +# endif +# ifndef OPENSSL_NO_ZSTD +# define OPENSSL_NO_ZSTD +# endif +# ifndef OPENSSL_NO_ZSTD_DYNAMIC +# define OPENSSL_NO_ZSTD_DYNAMIC +# endif # ifndef OPENSSL_NO_DYNAMIC_ENGINE # define OPENSSL_NO_DYNAMIC_ENGINE # endif @@ -133,6 +178,12 @@ extern "C" { # define RC4_INT unsigned int +# if defined(OPENSSL_NO_COMP) || (defined(OPENSSL_NO_BROTLI) && defined(OPENSSL_NO_ZSTD) && defined(OPENSSL_NO_ZLIB)) +# define OPENSSL_NO_COMP_ALG +# else +# undef OPENSSL_NO_COMP_ALG +# endif + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/darwin-i386-cc/no-asm/include/openssl/core_names.h b/deps/openssl/config/archs/darwin-i386-cc/no-asm/include/openssl/core_names.h new file mode 100644 index 00000000000000..e93e79a52bc910 --- /dev/null +++ b/deps/openssl/config/archs/darwin-i386-cc/no-asm/include/openssl/core_names.h @@ -0,0 +1,575 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from include/openssl/core_names.h.in + * + * Copyright 2019-2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + +#ifndef OPENSSL_CORE_NAMES_H +# define OPENSSL_CORE_NAMES_H +# pragma once + +# ifdef __cplusplus +extern "C" { +# endif + +/* OSSL_CIPHER_PARAM_CTS_MODE Values */ +# define OSSL_CIPHER_CTS_MODE_CS1 "CS1" +# define OSSL_CIPHER_CTS_MODE_CS2 "CS2" +# define OSSL_CIPHER_CTS_MODE_CS3 "CS3" + +/* Known CIPHER names (not a complete list) */ +# define OSSL_CIPHER_NAME_AES_128_GCM_SIV "AES-128-GCM-SIV" +# define OSSL_CIPHER_NAME_AES_192_GCM_SIV "AES-192-GCM-SIV" +# define OSSL_CIPHER_NAME_AES_256_GCM_SIV "AES-256-GCM-SIV" + +/* Known DIGEST names (not a complete list) */ +# define OSSL_DIGEST_NAME_MD5 "MD5" +# define OSSL_DIGEST_NAME_MD5_SHA1 "MD5-SHA1" +# define OSSL_DIGEST_NAME_SHA1 "SHA1" +# define OSSL_DIGEST_NAME_SHA2_224 "SHA2-224" +# define OSSL_DIGEST_NAME_SHA2_256 "SHA2-256" +# define OSSL_DIGEST_NAME_SHA2_256_192 "SHA2-256/192" +# define OSSL_DIGEST_NAME_SHA2_384 "SHA2-384" +# define OSSL_DIGEST_NAME_SHA2_512 "SHA2-512" +# define OSSL_DIGEST_NAME_SHA2_512_224 "SHA2-512/224" +# define OSSL_DIGEST_NAME_SHA2_512_256 "SHA2-512/256" +# define OSSL_DIGEST_NAME_MD2 "MD2" +# define OSSL_DIGEST_NAME_MD4 "MD4" +# define OSSL_DIGEST_NAME_MDC2 "MDC2" +# define OSSL_DIGEST_NAME_RIPEMD160 "RIPEMD160" +# define OSSL_DIGEST_NAME_SHA3_224 "SHA3-224" +# define OSSL_DIGEST_NAME_SHA3_256 "SHA3-256" +# define OSSL_DIGEST_NAME_SHA3_384 "SHA3-384" +# define OSSL_DIGEST_NAME_SHA3_512 "SHA3-512" +# define OSSL_DIGEST_NAME_KECCAK_KMAC128 "KECCAK-KMAC-128" +# define OSSL_DIGEST_NAME_KECCAK_KMAC256 "KECCAK-KMAC-256" +# define OSSL_DIGEST_NAME_SM3 "SM3" + +/* Known MAC names */ +# define OSSL_MAC_NAME_BLAKE2BMAC "BLAKE2BMAC" +# define OSSL_MAC_NAME_BLAKE2SMAC "BLAKE2SMAC" +# define OSSL_MAC_NAME_CMAC "CMAC" +# define OSSL_MAC_NAME_GMAC "GMAC" +# define OSSL_MAC_NAME_HMAC "HMAC" +# define OSSL_MAC_NAME_KMAC128 "KMAC128" +# define OSSL_MAC_NAME_KMAC256 "KMAC256" +# define OSSL_MAC_NAME_POLY1305 "POLY1305" +# define OSSL_MAC_NAME_SIPHASH "SIPHASH" + +/* Known KDF names */ +# define OSSL_KDF_NAME_HKDF "HKDF" +# define OSSL_KDF_NAME_TLS1_3_KDF "TLS13-KDF" +# define OSSL_KDF_NAME_PBKDF1 "PBKDF1" +# define OSSL_KDF_NAME_PBKDF2 "PBKDF2" +# define OSSL_KDF_NAME_SCRYPT "SCRYPT" +# define OSSL_KDF_NAME_SSHKDF "SSHKDF" +# define OSSL_KDF_NAME_SSKDF "SSKDF" +# define OSSL_KDF_NAME_TLS1_PRF "TLS1-PRF" +# define OSSL_KDF_NAME_X942KDF_ASN1 "X942KDF-ASN1" +# define OSSL_KDF_NAME_X942KDF_CONCAT "X942KDF-CONCAT" +# define OSSL_KDF_NAME_X963KDF "X963KDF" +# define OSSL_KDF_NAME_KBKDF "KBKDF" +# define OSSL_KDF_NAME_KRB5KDF "KRB5KDF" +# define OSSL_KDF_NAME_HMACDRBGKDF "HMAC-DRBG-KDF" + +/* RSA padding modes */ +# define OSSL_PKEY_RSA_PAD_MODE_NONE "none" +# define OSSL_PKEY_RSA_PAD_MODE_PKCSV15 "pkcs1" +# define OSSL_PKEY_RSA_PAD_MODE_OAEP "oaep" +# define OSSL_PKEY_RSA_PAD_MODE_X931 "x931" +# define OSSL_PKEY_RSA_PAD_MODE_PSS "pss" + +/* RSA pss padding salt length */ +# define OSSL_PKEY_RSA_PSS_SALT_LEN_DIGEST "digest" +# define OSSL_PKEY_RSA_PSS_SALT_LEN_MAX "max" +# define OSSL_PKEY_RSA_PSS_SALT_LEN_AUTO "auto" +# define OSSL_PKEY_RSA_PSS_SALT_LEN_AUTO_DIGEST_MAX "auto-digestmax" + +/* OSSL_PKEY_PARAM_EC_ENCODING values */ +# define OSSL_PKEY_EC_ENCODING_EXPLICIT "explicit" +# define OSSL_PKEY_EC_ENCODING_GROUP "named_curve" + +# define OSSL_PKEY_EC_POINT_CONVERSION_FORMAT_UNCOMPRESSED "uncompressed" +# define OSSL_PKEY_EC_POINT_CONVERSION_FORMAT_COMPRESSED "compressed" +# define OSSL_PKEY_EC_POINT_CONVERSION_FORMAT_HYBRID "hybrid" + +# define OSSL_PKEY_EC_GROUP_CHECK_DEFAULT "default" +# define OSSL_PKEY_EC_GROUP_CHECK_NAMED "named" +# define OSSL_PKEY_EC_GROUP_CHECK_NAMED_NIST "named-nist" + +/* PROV_SKEY well known key types */ +# define OSSL_SKEY_TYPE_GENERIC "GENERIC-SECRET" +# define OSSL_SKEY_TYPE_AES "AES" + +/* OSSL_KEM_PARAM_OPERATION values */ +#define OSSL_KEM_PARAM_OPERATION_RSASVE "RSASVE" +#define OSSL_KEM_PARAM_OPERATION_DHKEM "DHKEM" + +/* Provider configuration variables */ +#define OSSL_PKEY_RETAIN_SEED "pkey_retain_seed" + +/* Parameter name definitions - generated by util/perl/OpenSSL/paramnames.pm */ +# define OSSL_ALG_PARAM_ALGORITHM_ID "algorithm-id" +# define OSSL_ALG_PARAM_ALGORITHM_ID_PARAMS "algorithm-id-params" +# define OSSL_ALG_PARAM_CIPHER "cipher" +# define OSSL_ALG_PARAM_DIGEST "digest" +# define OSSL_ALG_PARAM_ENGINE "engine" +# define OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR "fips-indicator" +# define OSSL_ALG_PARAM_MAC "mac" +# define OSSL_ALG_PARAM_PROPERTIES "properties" +# define OSSL_ASYM_CIPHER_PARAM_DIGEST OSSL_PKEY_PARAM_DIGEST +# define OSSL_ASYM_CIPHER_PARAM_ENGINE OSSL_PKEY_PARAM_ENGINE +# define OSSL_ASYM_CIPHER_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_ASYM_CIPHER_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_ASYM_CIPHER_PARAM_FIPS_RSA_PKCS15_PAD_DISABLED OSSL_PROV_PARAM_RSA_PKCS15_PAD_DISABLED +# define OSSL_ASYM_CIPHER_PARAM_IMPLICIT_REJECTION "implicit-rejection" +# define OSSL_ASYM_CIPHER_PARAM_MGF1_DIGEST OSSL_PKEY_PARAM_MGF1_DIGEST +# define OSSL_ASYM_CIPHER_PARAM_MGF1_DIGEST_PROPS OSSL_PKEY_PARAM_MGF1_PROPERTIES +# define OSSL_ASYM_CIPHER_PARAM_OAEP_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_ASYM_CIPHER_PARAM_OAEP_DIGEST_PROPS "digest-props" +# define OSSL_ASYM_CIPHER_PARAM_OAEP_LABEL "oaep-label" +# define OSSL_ASYM_CIPHER_PARAM_PAD_MODE OSSL_PKEY_PARAM_PAD_MODE +# define OSSL_ASYM_CIPHER_PARAM_PROPERTIES OSSL_PKEY_PARAM_PROPERTIES +# define OSSL_ASYM_CIPHER_PARAM_TLS_CLIENT_VERSION "tls-client-version" +# define OSSL_ASYM_CIPHER_PARAM_TLS_NEGOTIATED_VERSION "tls-negotiated-version" +# define OSSL_CAPABILITY_TLS_GROUP_ALG "tls-group-alg" +# define OSSL_CAPABILITY_TLS_GROUP_ID "tls-group-id" +# define OSSL_CAPABILITY_TLS_GROUP_IS_KEM "tls-group-is-kem" +# define OSSL_CAPABILITY_TLS_GROUP_MAX_DTLS "tls-max-dtls" +# define OSSL_CAPABILITY_TLS_GROUP_MAX_TLS "tls-max-tls" +# define OSSL_CAPABILITY_TLS_GROUP_MIN_DTLS "tls-min-dtls" +# define OSSL_CAPABILITY_TLS_GROUP_MIN_TLS "tls-min-tls" +# define OSSL_CAPABILITY_TLS_GROUP_NAME "tls-group-name" +# define OSSL_CAPABILITY_TLS_GROUP_NAME_INTERNAL "tls-group-name-internal" +# define OSSL_CAPABILITY_TLS_GROUP_SECURITY_BITS "tls-group-sec-bits" +# define OSSL_CAPABILITY_TLS_SIGALG_CODE_POINT "tls-sigalg-code-point" +# define OSSL_CAPABILITY_TLS_SIGALG_HASH_NAME "tls-sigalg-hash-name" +# define OSSL_CAPABILITY_TLS_SIGALG_HASH_OID "tls-sigalg-hash-oid" +# define OSSL_CAPABILITY_TLS_SIGALG_IANA_NAME "tls-sigalg-iana-name" +# define OSSL_CAPABILITY_TLS_SIGALG_KEYTYPE "tls-sigalg-keytype" +# define OSSL_CAPABILITY_TLS_SIGALG_KEYTYPE_OID "tls-sigalg-keytype-oid" +# define OSSL_CAPABILITY_TLS_SIGALG_MAX_DTLS "tls-max-dtls" +# define OSSL_CAPABILITY_TLS_SIGALG_MAX_TLS "tls-max-tls" +# define OSSL_CAPABILITY_TLS_SIGALG_MIN_DTLS "tls-min-dtls" +# define OSSL_CAPABILITY_TLS_SIGALG_MIN_TLS "tls-min-tls" +# define OSSL_CAPABILITY_TLS_SIGALG_NAME "tls-sigalg-name" +# define OSSL_CAPABILITY_TLS_SIGALG_OID "tls-sigalg-oid" +# define OSSL_CAPABILITY_TLS_SIGALG_SECURITY_BITS "tls-sigalg-sec-bits" +# define OSSL_CAPABILITY_TLS_SIGALG_SIG_NAME "tls-sigalg-sig-name" +# define OSSL_CAPABILITY_TLS_SIGALG_SIG_OID "tls-sigalg-sig-oid" +# define OSSL_CIPHER_PARAM_AEAD "aead" +# define OSSL_CIPHER_PARAM_AEAD_IVLEN OSSL_CIPHER_PARAM_IVLEN +# define OSSL_CIPHER_PARAM_AEAD_IV_GENERATED "iv-generated" +# define OSSL_CIPHER_PARAM_AEAD_MAC_KEY "mackey" +# define OSSL_CIPHER_PARAM_AEAD_TAG "tag" +# define OSSL_CIPHER_PARAM_AEAD_TAGLEN "taglen" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_AAD "tlsaad" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_AAD_PAD "tlsaadpad" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_GET_IV_GEN "tlsivgen" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_IV_FIXED "tlsivfixed" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_SET_IV_INV "tlsivinv" +# define OSSL_CIPHER_PARAM_ALGORITHM_ID OSSL_ALG_PARAM_ALGORITHM_ID +# define OSSL_CIPHER_PARAM_ALGORITHM_ID_PARAMS OSSL_ALG_PARAM_ALGORITHM_ID_PARAMS +# define OSSL_CIPHER_PARAM_ALGORITHM_ID_PARAMS_OLD "alg_id_param" +# define OSSL_CIPHER_PARAM_BLOCK_SIZE "blocksize" +# define OSSL_CIPHER_PARAM_CTS "cts" +# define OSSL_CIPHER_PARAM_CTS_MODE "cts_mode" +# define OSSL_CIPHER_PARAM_CUSTOM_IV "custom-iv" +# define OSSL_CIPHER_PARAM_DECRYPT_ONLY "decrypt-only" +# define OSSL_CIPHER_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_CIPHER_PARAM_FIPS_ENCRYPT_CHECK "encrypt-check" +# define OSSL_CIPHER_PARAM_HAS_RAND_KEY "has-randkey" +# define OSSL_CIPHER_PARAM_IV "iv" +# define OSSL_CIPHER_PARAM_IVLEN "ivlen" +# define OSSL_CIPHER_PARAM_KEYLEN "keylen" +# define OSSL_CIPHER_PARAM_MODE "mode" +# define OSSL_CIPHER_PARAM_NUM "num" +# define OSSL_CIPHER_PARAM_PADDING "padding" +# define OSSL_CIPHER_PARAM_PIPELINE_AEAD_TAG "pipeline-tag" +# define OSSL_CIPHER_PARAM_RANDOM_KEY "randkey" +# define OSSL_CIPHER_PARAM_RC2_KEYBITS "keybits" +# define OSSL_CIPHER_PARAM_ROUNDS "rounds" +# define OSSL_CIPHER_PARAM_SPEED "speed" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK "tls-multi" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD "tls1multi_aad" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD_PACKLEN "tls1multi_aadpacklen" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC "tls1multi_enc" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_IN "tls1multi_encin" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_LEN "tls1multi_enclen" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_INTERLEAVE "tls1multi_interleave" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_BUFSIZE "tls1multi_maxbufsz" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_SEND_FRAGMENT "tls1multi_maxsndfrag" +# define OSSL_CIPHER_PARAM_TLS_MAC "tls-mac" +# define OSSL_CIPHER_PARAM_TLS_MAC_SIZE "tls-mac-size" +# define OSSL_CIPHER_PARAM_TLS_VERSION "tls-version" +# define OSSL_CIPHER_PARAM_UPDATED_IV "updated-iv" +# define OSSL_CIPHER_PARAM_USE_BITS "use-bits" +# define OSSL_CIPHER_PARAM_XTS_STANDARD "xts_standard" +# define OSSL_DECODER_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_DIGEST_PARAM_ALGID_ABSENT "algid-absent" +# define OSSL_DIGEST_PARAM_BLOCK_SIZE "blocksize" +# define OSSL_DIGEST_PARAM_MICALG "micalg" +# define OSSL_DIGEST_PARAM_PAD_TYPE "pad-type" +# define OSSL_DIGEST_PARAM_SIZE "size" +# define OSSL_DIGEST_PARAM_SSL3_MS "ssl3-ms" +# define OSSL_DIGEST_PARAM_XOF "xof" +# define OSSL_DIGEST_PARAM_XOFLEN "xoflen" +# define OSSL_DRBG_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_DRBG_PARAM_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_DRBG_PARAM_ENTROPY_REQUIRED "entropy_required" +# define OSSL_DRBG_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_DRBG_PARAM_FIPS_DIGEST_CHECK OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK +# define OSSL_DRBG_PARAM_MAC OSSL_ALG_PARAM_MAC +# define OSSL_DRBG_PARAM_MAX_ADINLEN "max_adinlen" +# define OSSL_DRBG_PARAM_MAX_ENTROPYLEN "max_entropylen" +# define OSSL_DRBG_PARAM_MAX_LENGTH "maxium_length" +# define OSSL_DRBG_PARAM_MAX_NONCELEN "max_noncelen" +# define OSSL_DRBG_PARAM_MAX_PERSLEN "max_perslen" +# define OSSL_DRBG_PARAM_MIN_ENTROPYLEN "min_entropylen" +# define OSSL_DRBG_PARAM_MIN_LENGTH "minium_length" +# define OSSL_DRBG_PARAM_MIN_NONCELEN "min_noncelen" +# define OSSL_DRBG_PARAM_PREDICTION_RESISTANCE "prediction_resistance" +# define OSSL_DRBG_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_DRBG_PARAM_RANDOM_DATA "random_data" +# define OSSL_DRBG_PARAM_RESEED_COUNTER "reseed_counter" +# define OSSL_DRBG_PARAM_RESEED_REQUESTS "reseed_requests" +# define OSSL_DRBG_PARAM_RESEED_TIME "reseed_time" +# define OSSL_DRBG_PARAM_RESEED_TIME_INTERVAL "reseed_time_interval" +# define OSSL_DRBG_PARAM_SIZE "size" +# define OSSL_DRBG_PARAM_USE_DF "use_derivation_function" +# define OSSL_ENCODER_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_ENCODER_PARAM_ENCRYPT_LEVEL "encrypt-level" +# define OSSL_ENCODER_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_ENCODER_PARAM_SAVE_PARAMETERS "save-parameters" +# define OSSL_EXCHANGE_PARAM_EC_ECDH_COFACTOR_MODE "ecdh-cofactor-mode" +# define OSSL_EXCHANGE_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_EXCHANGE_PARAM_FIPS_DIGEST_CHECK OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK +# define OSSL_EXCHANGE_PARAM_FIPS_ECDH_COFACTOR_CHECK OSSL_PROV_PARAM_ECDH_COFACTOR_CHECK +# define OSSL_EXCHANGE_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_EXCHANGE_PARAM_KDF_DIGEST "kdf-digest" +# define OSSL_EXCHANGE_PARAM_KDF_DIGEST_PROPS "kdf-digest-props" +# define OSSL_EXCHANGE_PARAM_KDF_OUTLEN "kdf-outlen" +# define OSSL_EXCHANGE_PARAM_KDF_TYPE "kdf-type" +# define OSSL_EXCHANGE_PARAM_KDF_UKM "kdf-ukm" +# define OSSL_EXCHANGE_PARAM_PAD "pad" +# define OSSL_GEN_PARAM_ITERATION "iteration" +# define OSSL_GEN_PARAM_POTENTIAL "potential" +# define OSSL_KDF_PARAM_ARGON2_AD "ad" +# define OSSL_KDF_PARAM_ARGON2_LANES "lanes" +# define OSSL_KDF_PARAM_ARGON2_MEMCOST "memcost" +# define OSSL_KDF_PARAM_ARGON2_VERSION "version" +# define OSSL_KDF_PARAM_CEK_ALG "cekalg" +# define OSSL_KDF_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_KDF_PARAM_CONSTANT "constant" +# define OSSL_KDF_PARAM_DATA "data" +# define OSSL_KDF_PARAM_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_KDF_PARAM_EARLY_CLEAN "early_clean" +# define OSSL_KDF_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_KDF_PARAM_FIPS_DIGEST_CHECK OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK +# define OSSL_KDF_PARAM_FIPS_EMS_CHECK "ems_check" +# define OSSL_KDF_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_KDF_PARAM_HMACDRBG_ENTROPY "entropy" +# define OSSL_KDF_PARAM_HMACDRBG_NONCE "nonce" +# define OSSL_KDF_PARAM_INFO "info" +# define OSSL_KDF_PARAM_ITER "iter" +# define OSSL_KDF_PARAM_KBKDF_R "r" +# define OSSL_KDF_PARAM_KBKDF_USE_L "use-l" +# define OSSL_KDF_PARAM_KBKDF_USE_SEPARATOR "use-separator" +# define OSSL_KDF_PARAM_KEY "key" +# define OSSL_KDF_PARAM_LABEL "label" +# define OSSL_KDF_PARAM_MAC OSSL_ALG_PARAM_MAC +# define OSSL_KDF_PARAM_MAC_SIZE "maclen" +# define OSSL_KDF_PARAM_MODE "mode" +# define OSSL_KDF_PARAM_PASSWORD "pass" +# define OSSL_KDF_PARAM_PKCS12_ID "id" +# define OSSL_KDF_PARAM_PKCS5 "pkcs5" +# define OSSL_KDF_PARAM_PREFIX "prefix" +# define OSSL_KDF_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_KDF_PARAM_SALT "salt" +# define OSSL_KDF_PARAM_SCRYPT_MAXMEM "maxmem_bytes" +# define OSSL_KDF_PARAM_SCRYPT_N "n" +# define OSSL_KDF_PARAM_SCRYPT_P "p" +# define OSSL_KDF_PARAM_SCRYPT_R "r" +# define OSSL_KDF_PARAM_SECRET "secret" +# define OSSL_KDF_PARAM_SEED "seed" +# define OSSL_KDF_PARAM_SIZE "size" +# define OSSL_KDF_PARAM_SSHKDF_SESSION_ID "session_id" +# define OSSL_KDF_PARAM_SSHKDF_TYPE "type" +# define OSSL_KDF_PARAM_SSHKDF_XCGHASH "xcghash" +# define OSSL_KDF_PARAM_THREADS "threads" +# define OSSL_KDF_PARAM_UKM "ukm" +# define OSSL_KDF_PARAM_X942_ACVPINFO "acvp-info" +# define OSSL_KDF_PARAM_X942_PARTYUINFO "partyu-info" +# define OSSL_KDF_PARAM_X942_PARTYVINFO "partyv-info" +# define OSSL_KDF_PARAM_X942_SUPP_PRIVINFO "supp-privinfo" +# define OSSL_KDF_PARAM_X942_SUPP_PUBINFO "supp-pubinfo" +# define OSSL_KDF_PARAM_X942_USE_KEYBITS "use-keybits" +# define OSSL_KEM_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_KEM_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_KEM_PARAM_IKME "ikme" +# define OSSL_KEM_PARAM_OPERATION "operation" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_BLOCK_PADDING "block_padding" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_HS_PADDING "hs_padding" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_MAX_EARLY_DATA "max_early_data" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_MAX_FRAG_LEN "max_frag_len" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_MODE "mode" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_OPTIONS "options" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_READ_AHEAD "read_ahead" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_STREAM_MAC "stream_mac" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_TLSTREE "tlstree" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_USE_ETM "use_etm" +# define OSSL_LIBSSL_RECORD_LAYER_READ_BUFFER_LEN "read_buffer_len" +# define OSSL_MAC_PARAM_BLOCK_SIZE "block-size" +# define OSSL_MAC_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_MAC_PARAM_CUSTOM "custom" +# define OSSL_MAC_PARAM_C_ROUNDS "c-rounds" +# define OSSL_MAC_PARAM_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_MAC_PARAM_DIGEST_NOINIT "digest-noinit" +# define OSSL_MAC_PARAM_DIGEST_ONESHOT "digest-oneshot" +# define OSSL_MAC_PARAM_D_ROUNDS "d-rounds" +# define OSSL_MAC_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_MAC_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_MAC_PARAM_FIPS_NO_SHORT_MAC OSSL_PROV_PARAM_NO_SHORT_MAC +# define OSSL_MAC_PARAM_IV "iv" +# define OSSL_MAC_PARAM_KEY "key" +# define OSSL_MAC_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_MAC_PARAM_SALT "salt" +# define OSSL_MAC_PARAM_SIZE "size" +# define OSSL_MAC_PARAM_TLS_DATA_SIZE "tls-data-size" +# define OSSL_MAC_PARAM_XOF "xof" +# define OSSL_OBJECT_PARAM_DATA "data" +# define OSSL_OBJECT_PARAM_DATA_STRUCTURE "data-structure" +# define OSSL_OBJECT_PARAM_DATA_TYPE "data-type" +# define OSSL_OBJECT_PARAM_DESC "desc" +# define OSSL_OBJECT_PARAM_INPUT_TYPE "input-type" +# define OSSL_OBJECT_PARAM_REFERENCE "reference" +# define OSSL_OBJECT_PARAM_TYPE "type" +# define OSSL_PASSPHRASE_PARAM_INFO "info" +# define OSSL_PKEY_PARAM_ALGORITHM_ID OSSL_ALG_PARAM_ALGORITHM_ID +# define OSSL_PKEY_PARAM_ALGORITHM_ID_PARAMS OSSL_ALG_PARAM_ALGORITHM_ID_PARAMS +# define OSSL_PKEY_PARAM_BITS "bits" +# define OSSL_PKEY_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_PKEY_PARAM_DEFAULT_DIGEST "default-digest" +# define OSSL_PKEY_PARAM_DHKEM_IKM "dhkem-ikm" +# define OSSL_PKEY_PARAM_DH_GENERATOR "safeprime-generator" +# define OSSL_PKEY_PARAM_DH_PRIV_LEN "priv_len" +# define OSSL_PKEY_PARAM_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_PKEY_PARAM_DIGEST_SIZE "digest-size" +# define OSSL_PKEY_PARAM_DIST_ID "distid" +# define OSSL_PKEY_PARAM_EC_A "a" +# define OSSL_PKEY_PARAM_EC_B "b" +# define OSSL_PKEY_PARAM_EC_CHAR2_M "m" +# define OSSL_PKEY_PARAM_EC_CHAR2_PP_K1 "k1" +# define OSSL_PKEY_PARAM_EC_CHAR2_PP_K2 "k2" +# define OSSL_PKEY_PARAM_EC_CHAR2_PP_K3 "k3" +# define OSSL_PKEY_PARAM_EC_CHAR2_TP_BASIS "tp" +# define OSSL_PKEY_PARAM_EC_CHAR2_TYPE "basis-type" +# define OSSL_PKEY_PARAM_EC_COFACTOR "cofactor" +# define OSSL_PKEY_PARAM_EC_DECODED_FROM_EXPLICIT_PARAMS "decoded-from-explicit" +# define OSSL_PKEY_PARAM_EC_ENCODING "encoding" +# define OSSL_PKEY_PARAM_EC_FIELD_TYPE "field-type" +# define OSSL_PKEY_PARAM_EC_GENERATOR "generator" +# define OSSL_PKEY_PARAM_EC_GROUP_CHECK_TYPE "group-check" +# define OSSL_PKEY_PARAM_EC_INCLUDE_PUBLIC "include-public" +# define OSSL_PKEY_PARAM_EC_ORDER "order" +# define OSSL_PKEY_PARAM_EC_P "p" +# define OSSL_PKEY_PARAM_EC_POINT_CONVERSION_FORMAT "point-format" +# define OSSL_PKEY_PARAM_EC_PUB_X "qx" +# define OSSL_PKEY_PARAM_EC_PUB_Y "qy" +# define OSSL_PKEY_PARAM_EC_SEED "seed" +# define OSSL_PKEY_PARAM_ENCODED_PUBLIC_KEY "encoded-pub-key" +# define OSSL_PKEY_PARAM_ENGINE OSSL_ALG_PARAM_ENGINE +# define OSSL_PKEY_PARAM_FFC_COFACTOR "j" +# define OSSL_PKEY_PARAM_FFC_DIGEST OSSL_PKEY_PARAM_DIGEST +# define OSSL_PKEY_PARAM_FFC_DIGEST_PROPS OSSL_PKEY_PARAM_PROPERTIES +# define OSSL_PKEY_PARAM_FFC_G "g" +# define OSSL_PKEY_PARAM_FFC_GINDEX "gindex" +# define OSSL_PKEY_PARAM_FFC_H "hindex" +# define OSSL_PKEY_PARAM_FFC_P "p" +# define OSSL_PKEY_PARAM_FFC_PBITS "pbits" +# define OSSL_PKEY_PARAM_FFC_PCOUNTER "pcounter" +# define OSSL_PKEY_PARAM_FFC_Q "q" +# define OSSL_PKEY_PARAM_FFC_QBITS "qbits" +# define OSSL_PKEY_PARAM_FFC_SEED "seed" +# define OSSL_PKEY_PARAM_FFC_TYPE "type" +# define OSSL_PKEY_PARAM_FFC_VALIDATE_G "validate-g" +# define OSSL_PKEY_PARAM_FFC_VALIDATE_LEGACY "validate-legacy" +# define OSSL_PKEY_PARAM_FFC_VALIDATE_PQ "validate-pq" +# define OSSL_PKEY_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK "digest-check" +# define OSSL_PKEY_PARAM_FIPS_KEY_CHECK "key-check" +# define OSSL_PKEY_PARAM_FIPS_SIGN_CHECK "sign-check" +# define OSSL_PKEY_PARAM_GROUP_NAME "group" +# define OSSL_PKEY_PARAM_IMPLICIT_REJECTION "implicit-rejection" +# define OSSL_PKEY_PARAM_MANDATORY_DIGEST "mandatory-digest" +# define OSSL_PKEY_PARAM_MASKGENFUNC "mgf" +# define OSSL_PKEY_PARAM_MAX_SIZE "max-size" +# define OSSL_PKEY_PARAM_MGF1_DIGEST "mgf1-digest" +# define OSSL_PKEY_PARAM_MGF1_PROPERTIES "mgf1-properties" +# define OSSL_PKEY_PARAM_ML_DSA_INPUT_FORMATS "ml-dsa.input_formats" +# define OSSL_PKEY_PARAM_ML_DSA_OUTPUT_FORMATS "ml-dsa.output_formats" +# define OSSL_PKEY_PARAM_ML_DSA_PREFER_SEED "ml-dsa.prefer_seed" +# define OSSL_PKEY_PARAM_ML_DSA_RETAIN_SEED "ml-dsa.retain_seed" +# define OSSL_PKEY_PARAM_ML_DSA_SEED "seed" +# define OSSL_PKEY_PARAM_ML_KEM_IMPORT_PCT_TYPE "ml-kem.import_pct_type" +# define OSSL_PKEY_PARAM_ML_KEM_INPUT_FORMATS "ml-kem.input_formats" +# define OSSL_PKEY_PARAM_ML_KEM_OUTPUT_FORMATS "ml-kem.output_formats" +# define OSSL_PKEY_PARAM_ML_KEM_PREFER_SEED "ml-kem.prefer_seed" +# define OSSL_PKEY_PARAM_ML_KEM_RETAIN_SEED "ml-kem.retain_seed" +# define OSSL_PKEY_PARAM_ML_KEM_SEED "seed" +# define OSSL_PKEY_PARAM_PAD_MODE "pad-mode" +# define OSSL_PKEY_PARAM_PRIV_KEY "priv" +# define OSSL_PKEY_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_PKEY_PARAM_PUB_KEY "pub" +# define OSSL_PKEY_PARAM_RSA_BITS OSSL_PKEY_PARAM_BITS +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT "rsa-coefficient" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT1 "rsa-coefficient1" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT2 "rsa-coefficient2" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT3 "rsa-coefficient3" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT4 "rsa-coefficient4" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT5 "rsa-coefficient5" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT6 "rsa-coefficient6" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT7 "rsa-coefficient7" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT8 "rsa-coefficient8" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT9 "rsa-coefficient9" +# define OSSL_PKEY_PARAM_RSA_D "d" +# define OSSL_PKEY_PARAM_RSA_DERIVE_FROM_PQ "rsa-derive-from-pq" +# define OSSL_PKEY_PARAM_RSA_DIGEST OSSL_PKEY_PARAM_DIGEST +# define OSSL_PKEY_PARAM_RSA_DIGEST_PROPS OSSL_PKEY_PARAM_PROPERTIES +# define OSSL_PKEY_PARAM_RSA_E "e" +# define OSSL_PKEY_PARAM_RSA_EXPONENT "rsa-exponent" +# define OSSL_PKEY_PARAM_RSA_EXPONENT1 "rsa-exponent1" +# define OSSL_PKEY_PARAM_RSA_EXPONENT10 "rsa-exponent10" +# define OSSL_PKEY_PARAM_RSA_EXPONENT2 "rsa-exponent2" +# define OSSL_PKEY_PARAM_RSA_EXPONENT3 "rsa-exponent3" +# define OSSL_PKEY_PARAM_RSA_EXPONENT4 "rsa-exponent4" +# define OSSL_PKEY_PARAM_RSA_EXPONENT5 "rsa-exponent5" +# define OSSL_PKEY_PARAM_RSA_EXPONENT6 "rsa-exponent6" +# define OSSL_PKEY_PARAM_RSA_EXPONENT7 "rsa-exponent7" +# define OSSL_PKEY_PARAM_RSA_EXPONENT8 "rsa-exponent8" +# define OSSL_PKEY_PARAM_RSA_EXPONENT9 "rsa-exponent9" +# define OSSL_PKEY_PARAM_RSA_FACTOR "rsa-factor" +# define OSSL_PKEY_PARAM_RSA_FACTOR1 "rsa-factor1" +# define OSSL_PKEY_PARAM_RSA_FACTOR10 "rsa-factor10" +# define OSSL_PKEY_PARAM_RSA_FACTOR2 "rsa-factor2" +# define OSSL_PKEY_PARAM_RSA_FACTOR3 "rsa-factor3" +# define OSSL_PKEY_PARAM_RSA_FACTOR4 "rsa-factor4" +# define OSSL_PKEY_PARAM_RSA_FACTOR5 "rsa-factor5" +# define OSSL_PKEY_PARAM_RSA_FACTOR6 "rsa-factor6" +# define OSSL_PKEY_PARAM_RSA_FACTOR7 "rsa-factor7" +# define OSSL_PKEY_PARAM_RSA_FACTOR8 "rsa-factor8" +# define OSSL_PKEY_PARAM_RSA_FACTOR9 "rsa-factor9" +# define OSSL_PKEY_PARAM_RSA_MASKGENFUNC OSSL_PKEY_PARAM_MASKGENFUNC +# define OSSL_PKEY_PARAM_RSA_MGF1_DIGEST OSSL_PKEY_PARAM_MGF1_DIGEST +# define OSSL_PKEY_PARAM_RSA_N "n" +# define OSSL_PKEY_PARAM_RSA_PRIMES "primes" +# define OSSL_PKEY_PARAM_RSA_PSS_SALTLEN "saltlen" +# define OSSL_PKEY_PARAM_RSA_TEST_P1 "p1" +# define OSSL_PKEY_PARAM_RSA_TEST_P2 "p2" +# define OSSL_PKEY_PARAM_RSA_TEST_Q1 "q1" +# define OSSL_PKEY_PARAM_RSA_TEST_Q2 "q2" +# define OSSL_PKEY_PARAM_RSA_TEST_XP "xp" +# define OSSL_PKEY_PARAM_RSA_TEST_XP1 "xp1" +# define OSSL_PKEY_PARAM_RSA_TEST_XP2 "xp2" +# define OSSL_PKEY_PARAM_RSA_TEST_XQ "xq" +# define OSSL_PKEY_PARAM_RSA_TEST_XQ1 "xq1" +# define OSSL_PKEY_PARAM_RSA_TEST_XQ2 "xq2" +# define OSSL_PKEY_PARAM_SECURITY_BITS "security-bits" +# define OSSL_PKEY_PARAM_SLH_DSA_SEED "seed" +# define OSSL_PKEY_PARAM_USE_COFACTOR_ECDH OSSL_PKEY_PARAM_USE_COFACTOR_FLAG +# define OSSL_PKEY_PARAM_USE_COFACTOR_FLAG "use-cofactor-flag" +# define OSSL_PROV_PARAM_BUILDINFO "buildinfo" +# define OSSL_PROV_PARAM_CORE_MODULE_FILENAME "module-filename" +# define OSSL_PROV_PARAM_CORE_PROV_NAME "provider-name" +# define OSSL_PROV_PARAM_CORE_VERSION "openssl-version" +# define OSSL_PROV_PARAM_DRBG_TRUNC_DIGEST "drbg-no-trunc-md" +# define OSSL_PROV_PARAM_DSA_SIGN_DISABLED "dsa-sign-disabled" +# define OSSL_PROV_PARAM_ECDH_COFACTOR_CHECK "ecdh-cofactor-check" +# define OSSL_PROV_PARAM_HKDF_DIGEST_CHECK "hkdf-digest-check" +# define OSSL_PROV_PARAM_HKDF_KEY_CHECK "hkdf-key-check" +# define OSSL_PROV_PARAM_HMAC_KEY_CHECK "hmac-key-check" +# define OSSL_PROV_PARAM_KBKDF_KEY_CHECK "kbkdf-key-check" +# define OSSL_PROV_PARAM_KMAC_KEY_CHECK "kmac-key-check" +# define OSSL_PROV_PARAM_NAME "name" +# define OSSL_PROV_PARAM_NO_SHORT_MAC "no-short-mac" +# define OSSL_PROV_PARAM_PBKDF2_LOWER_BOUND_CHECK "pbkdf2-lower-bound-check" +# define OSSL_PROV_PARAM_RSA_PKCS15_PAD_DISABLED "rsa-pkcs15-pad-disabled" +# define OSSL_PROV_PARAM_RSA_PSS_SALTLEN_CHECK "rsa-pss-saltlen-check" +# define OSSL_PROV_PARAM_RSA_SIGN_X931_PAD_DISABLED "rsa-sign-x931-pad-disabled" +# define OSSL_PROV_PARAM_SECURITY_CHECKS "security-checks" +# define OSSL_PROV_PARAM_SELF_TEST_DESC "st-desc" +# define OSSL_PROV_PARAM_SELF_TEST_PHASE "st-phase" +# define OSSL_PROV_PARAM_SELF_TEST_TYPE "st-type" +# define OSSL_PROV_PARAM_SIGNATURE_DIGEST_CHECK "signature-digest-check" +# define OSSL_PROV_PARAM_SSHKDF_DIGEST_CHECK "sshkdf-digest-check" +# define OSSL_PROV_PARAM_SSHKDF_KEY_CHECK "sshkdf-key-check" +# define OSSL_PROV_PARAM_SSKDF_DIGEST_CHECK "sskdf-digest-check" +# define OSSL_PROV_PARAM_SSKDF_KEY_CHECK "sskdf-key-check" +# define OSSL_PROV_PARAM_STATUS "status" +# define OSSL_PROV_PARAM_TDES_ENCRYPT_DISABLED "tdes-encrypt-disabled" +# define OSSL_PROV_PARAM_TLS13_KDF_DIGEST_CHECK "tls13-kdf-digest-check" +# define OSSL_PROV_PARAM_TLS13_KDF_KEY_CHECK "tls13-kdf-key-check" +# define OSSL_PROV_PARAM_TLS1_PRF_DIGEST_CHECK "tls1-prf-digest-check" +# define OSSL_PROV_PARAM_TLS1_PRF_EMS_CHECK "tls1-prf-ems-check" +# define OSSL_PROV_PARAM_TLS1_PRF_KEY_CHECK "tls1-prf-key-check" +# define OSSL_PROV_PARAM_VERSION "version" +# define OSSL_PROV_PARAM_X942KDF_KEY_CHECK "x942kdf-key-check" +# define OSSL_PROV_PARAM_X963KDF_DIGEST_CHECK "x963kdf-digest-check" +# define OSSL_PROV_PARAM_X963KDF_KEY_CHECK "x963kdf-key-check" +# define OSSL_RAND_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_RAND_PARAM_GENERATE "generate" +# define OSSL_RAND_PARAM_MAX_REQUEST "max_request" +# define OSSL_RAND_PARAM_STATE "state" +# define OSSL_RAND_PARAM_STRENGTH "strength" +# define OSSL_RAND_PARAM_TEST_ENTROPY "test_entropy" +# define OSSL_RAND_PARAM_TEST_NONCE "test_nonce" +# define OSSL_SIGNATURE_PARAM_ADD_RANDOM "additional-random" +# define OSSL_SIGNATURE_PARAM_ALGORITHM_ID OSSL_PKEY_PARAM_ALGORITHM_ID +# define OSSL_SIGNATURE_PARAM_ALGORITHM_ID_PARAMS OSSL_PKEY_PARAM_ALGORITHM_ID_PARAMS +# define OSSL_SIGNATURE_PARAM_CONTEXT_STRING "context-string" +# define OSSL_SIGNATURE_PARAM_DETERMINISTIC "deterministic" +# define OSSL_SIGNATURE_PARAM_DIGEST OSSL_PKEY_PARAM_DIGEST +# define OSSL_SIGNATURE_PARAM_DIGEST_SIZE OSSL_PKEY_PARAM_DIGEST_SIZE +# define OSSL_SIGNATURE_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_SIGNATURE_PARAM_FIPS_DIGEST_CHECK OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK +# define OSSL_SIGNATURE_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_SIGNATURE_PARAM_FIPS_RSA_PSS_SALTLEN_CHECK "rsa-pss-saltlen-check" +# define OSSL_SIGNATURE_PARAM_FIPS_SIGN_CHECK OSSL_PKEY_PARAM_FIPS_SIGN_CHECK +# define OSSL_SIGNATURE_PARAM_FIPS_SIGN_X931_PAD_CHECK "sign-x931-pad-check" +# define OSSL_SIGNATURE_PARAM_FIPS_VERIFY_MESSAGE "verify-message" +# define OSSL_SIGNATURE_PARAM_INSTANCE "instance" +# define OSSL_SIGNATURE_PARAM_KAT "kat" +# define OSSL_SIGNATURE_PARAM_MESSAGE_ENCODING "message-encoding" +# define OSSL_SIGNATURE_PARAM_MGF1_DIGEST OSSL_PKEY_PARAM_MGF1_DIGEST +# define OSSL_SIGNATURE_PARAM_MGF1_PROPERTIES OSSL_PKEY_PARAM_MGF1_PROPERTIES +# define OSSL_SIGNATURE_PARAM_MU "mu" +# define OSSL_SIGNATURE_PARAM_NONCE_TYPE "nonce-type" +# define OSSL_SIGNATURE_PARAM_PAD_MODE OSSL_PKEY_PARAM_PAD_MODE +# define OSSL_SIGNATURE_PARAM_PROPERTIES OSSL_PKEY_PARAM_PROPERTIES +# define OSSL_SIGNATURE_PARAM_PSS_SALTLEN "saltlen" +# define OSSL_SIGNATURE_PARAM_SIGNATURE "signature" +# define OSSL_SIGNATURE_PARAM_TEST_ENTROPY "test-entropy" +# define OSSL_SKEY_PARAM_KEY_LENGTH "key-length" +# define OSSL_SKEY_PARAM_RAW_BYTES "raw-bytes" +# define OSSL_STORE_PARAM_ALIAS "alias" +# define OSSL_STORE_PARAM_DIGEST "digest" +# define OSSL_STORE_PARAM_EXPECT "expect" +# define OSSL_STORE_PARAM_FINGERPRINT "fingerprint" +# define OSSL_STORE_PARAM_INPUT_TYPE "input-type" +# define OSSL_STORE_PARAM_ISSUER "name" +# define OSSL_STORE_PARAM_PROPERTIES "properties" +# define OSSL_STORE_PARAM_SERIAL "serial" +# define OSSL_STORE_PARAM_SUBJECT "subject" + +# ifdef __cplusplus +} +# endif + +#endif diff --git a/deps/openssl/config/archs/darwin-i386-cc/no-asm/include/openssl/crmf.h b/deps/openssl/config/archs/darwin-i386-cc/no-asm/include/openssl/crmf.h index 71b747ed33d239..4bf550fd47daa9 100644 --- a/deps/openssl/config/archs/darwin-i386-cc/no-asm/include/openssl/crmf.h +++ b/deps/openssl/config/archs/darwin-i386-cc/no-asm/include/openssl/crmf.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/crmf.h.in * - * Copyright 2007-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2007-2025 The OpenSSL Project Authors. All Rights Reserved. * Copyright Nokia 2007-2019 * Copyright Siemens AG 2015-2019 * @@ -26,6 +26,7 @@ # include # include # include /* for GENERAL_NAME etc. */ +# include /* explicit #includes not strictly needed since implied by the above: */ # include @@ -43,9 +44,12 @@ extern "C" { # define OSSL_CRMF_SUBSEQUENTMESSAGE_ENCRCERT 0 # define OSSL_CRMF_SUBSEQUENTMESSAGE_CHALLENGERESP 1 - typedef struct ossl_crmf_encryptedvalue_st OSSL_CRMF_ENCRYPTEDVALUE; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_ENCRYPTEDVALUE) + +typedef struct ossl_crmf_encryptedkey_st OSSL_CRMF_ENCRYPTEDKEY; +DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_ENCRYPTEDKEY) + typedef struct ossl_crmf_msg_st OSSL_CRMF_MSG; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_MSG) DECLARE_ASN1_DUP_FUNCTION(OSSL_CRMF_MSG) @@ -77,6 +81,36 @@ SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CRMF_MSG, OSSL_CRMF_MSG, OSSL_CRMF_MSG) #define sk_OSSL_CRMF_MSG_set_cmp_func(sk, cmp) ((sk_OSSL_CRMF_MSG_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CRMF_MSG_sk_type(sk), ossl_check_OSSL_CRMF_MSG_compfunc_type(cmp))) typedef struct ossl_crmf_attributetypeandvalue_st OSSL_CRMF_ATTRIBUTETYPEANDVALUE; +void OSSL_CRMF_ATTRIBUTETYPEANDVALUE_free(OSSL_CRMF_ATTRIBUTETYPEANDVALUE *v); +DECLARE_ASN1_DUP_FUNCTION(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CRMF_ATTRIBUTETYPEANDVALUE, OSSL_CRMF_ATTRIBUTETYPEANDVALUE, OSSL_CRMF_ATTRIBUTETYPEANDVALUE) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_value(sk, idx) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_value(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), (idx))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_new(cmp) ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_new(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_compfunc_type(cmp))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_new_null() ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_new_null()) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_new_reserve(cmp, n) ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_compfunc_type(cmp), (n))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), (n)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_free(sk) OPENSSL_sk_free(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_delete(sk, i) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_delete(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), (i))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_delete_ptr(sk, ptr) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_pop(sk) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_pop(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_shift(sk) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_shift(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk),ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_freefunc_type(freefunc)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr), (idx)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_set(sk, idx, ptr) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_set(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), (idx), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr), pnum) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_dup(sk) ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_dup(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_copyfunc_type(copyfunc), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_freefunc_type(freefunc))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_set_cmp_func(sk, cmp) ((sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_compfunc_type(cmp))) + + typedef struct ossl_crmf_pbmparameter_st OSSL_CRMF_PBMPARAMETER; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_PBMPARAMETER) typedef struct ossl_crmf_poposigningkey_st OSSL_CRMF_POPOSIGNINGKEY; @@ -118,6 +152,7 @@ typedef struct ossl_crmf_singlepubinfo_st OSSL_CRMF_SINGLEPUBINFO; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_SINGLEPUBINFO) typedef struct ossl_crmf_certtemplate_st OSSL_CRMF_CERTTEMPLATE; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_CERTTEMPLATE) +DECLARE_ASN1_DUP_FUNCTION(OSSL_CRMF_CERTTEMPLATE) typedef STACK_OF(OSSL_CRMF_MSG) OSSL_CRMF_MSGS; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_MSGS) @@ -198,12 +233,14 @@ int OSSL_CRMF_MSGS_verify_popo(const OSSL_CRMF_MSGS *reqs, int rid, int acceptRAVerified, OSSL_LIB_CTX *libctx, const char *propq); OSSL_CRMF_CERTTEMPLATE *OSSL_CRMF_MSG_get0_tmpl(const OSSL_CRMF_MSG *crm); -const ASN1_INTEGER -*OSSL_CRMF_CERTTEMPLATE_get0_serialNumber(const OSSL_CRMF_CERTTEMPLATE *tmpl); +X509_PUBKEY +*OSSL_CRMF_CERTTEMPLATE_get0_publicKey(const OSSL_CRMF_CERTTEMPLATE *tmpl); const X509_NAME *OSSL_CRMF_CERTTEMPLATE_get0_subject(const OSSL_CRMF_CERTTEMPLATE *tmpl); const X509_NAME *OSSL_CRMF_CERTTEMPLATE_get0_issuer(const OSSL_CRMF_CERTTEMPLATE *tmpl); +const ASN1_INTEGER +*OSSL_CRMF_CERTTEMPLATE_get0_serialNumber(const OSSL_CRMF_CERTTEMPLATE *tmpl); X509_EXTENSIONS *OSSL_CRMF_CERTTEMPLATE_get0_extensions(const OSSL_CRMF_CERTTEMPLATE *tmpl); const X509_NAME @@ -215,10 +252,24 @@ int OSSL_CRMF_CERTTEMPLATE_fill(OSSL_CRMF_CERTTEMPLATE *tmpl, const X509_NAME *subject, const X509_NAME *issuer, const ASN1_INTEGER *serial); -X509 -*OSSL_CRMF_ENCRYPTEDVALUE_get1_encCert(const OSSL_CRMF_ENCRYPTEDVALUE *ecert, - OSSL_LIB_CTX *libctx, const char *propq, - EVP_PKEY *pkey); +X509 *OSSL_CRMF_ENCRYPTEDVALUE_get1_encCert(const OSSL_CRMF_ENCRYPTEDVALUE *ecert, + OSSL_LIB_CTX *libctx, const char *propq, + EVP_PKEY *pkey); +X509 *OSSL_CRMF_ENCRYPTEDKEY_get1_encCert(const OSSL_CRMF_ENCRYPTEDKEY *ecert, + OSSL_LIB_CTX *libctx, const char *propq, + EVP_PKEY *pkey, unsigned int flags); +unsigned char +*OSSL_CRMF_ENCRYPTEDVALUE_decrypt(const OSSL_CRMF_ENCRYPTEDVALUE *enc, + OSSL_LIB_CTX *libctx, const char *propq, + EVP_PKEY *pkey, int *outlen); +EVP_PKEY *OSSL_CRMF_ENCRYPTEDKEY_get1_pkey(const OSSL_CRMF_ENCRYPTEDKEY *encryptedKey, + X509_STORE *ts, STACK_OF(X509) *extra, EVP_PKEY *pkey, + X509 *cert, ASN1_OCTET_STRING *secret, + OSSL_LIB_CTX *libctx, const char *propq); +int OSSL_CRMF_MSG_centralkeygen_requested(const OSSL_CRMF_MSG *crm, const X509_REQ *p10cr); +# ifndef OPENSSL_NO_CMS +OSSL_CRMF_ENCRYPTEDKEY *OSSL_CRMF_ENCRYPTEDKEY_init_envdata(CMS_EnvelopedData *envdata); +# endif # ifdef __cplusplus } diff --git a/deps/openssl/config/archs/darwin-i386-cc/no-asm/include/openssl/crypto.h b/deps/openssl/config/archs/darwin-i386-cc/no-asm/include/openssl/crypto.h index 3f40be6d8c61d5..fd2cfd3e5a9ac4 100644 --- a/deps/openssl/config/archs/darwin-i386-cc/no-asm/include/openssl/crypto.h +++ b/deps/openssl/config/archs/darwin-i386-cc/no-asm/include/openssl/crypto.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/crypto.h.in * - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2024 The OpenSSL Project Authors. All Rights Reserved. * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved * * Licensed under the Apache License 2.0 (the "License"). You may not use @@ -85,9 +85,15 @@ int CRYPTO_THREAD_unlock(CRYPTO_RWLOCK *lock); void CRYPTO_THREAD_lock_free(CRYPTO_RWLOCK *lock); int CRYPTO_atomic_add(int *val, int amount, int *ret, CRYPTO_RWLOCK *lock); +int CRYPTO_atomic_add64(uint64_t *val, uint64_t op, uint64_t *ret, + CRYPTO_RWLOCK *lock); +int CRYPTO_atomic_and(uint64_t *val, uint64_t op, uint64_t *ret, + CRYPTO_RWLOCK *lock); int CRYPTO_atomic_or(uint64_t *val, uint64_t op, uint64_t *ret, CRYPTO_RWLOCK *lock); int CRYPTO_atomic_load(uint64_t *val, uint64_t *ret, CRYPTO_RWLOCK *lock); +int CRYPTO_atomic_load_int(int *val, int *ret, CRYPTO_RWLOCK *lock); +int CRYPTO_atomic_store(uint64_t *dst, uint64_t val, CRYPTO_RWLOCK *lock); /* No longer needed, so this is a no-op */ #define OPENSSL_malloc_init() while(0) continue @@ -96,6 +102,9 @@ int CRYPTO_atomic_load(uint64_t *val, uint64_t *ret, CRYPTO_RWLOCK *lock); CRYPTO_malloc(num, OPENSSL_FILE, OPENSSL_LINE) # define OPENSSL_zalloc(num) \ CRYPTO_zalloc(num, OPENSSL_FILE, OPENSSL_LINE) +# define OPENSSL_aligned_alloc(num, alignment, freeptr) \ + CRYPTO_aligned_alloc(num, alignment, freeptr, \ + OPENSSL_FILE, OPENSSL_LINE) # define OPENSSL_realloc(addr, num) \ CRYPTO_realloc(addr, num, OPENSSL_FILE, OPENSSL_LINE) # define OPENSSL_clear_realloc(addr, old_num, num) \ @@ -124,6 +133,7 @@ int CRYPTO_atomic_load(uint64_t *val, uint64_t *ret, CRYPTO_RWLOCK *lock); size_t OPENSSL_strlcpy(char *dst, const char *src, size_t siz); size_t OPENSSL_strlcat(char *dst, const char *src, size_t siz); size_t OPENSSL_strnlen(const char *str, size_t maxlen); +int OPENSSL_strtoul(const char *str, char **endptr, int base, unsigned long *num); int OPENSSL_buf2hexstr_ex(char *str, size_t str_n, size_t *strlength, const unsigned char *buf, size_t buflen, const char sep); @@ -160,6 +170,7 @@ const char *OpenSSL_version(int type); # define OPENSSL_FULL_VERSION_STRING 7 # define OPENSSL_MODULES_DIR 8 # define OPENSSL_CPU_INFO 9 +# define OPENSSL_WINCTX 10 const char *OPENSSL_info(int type); /* @@ -174,6 +185,7 @@ const char *OPENSSL_info(int type); # define OPENSSL_INFO_LIST_SEPARATOR 1006 # define OPENSSL_INFO_SEED_SOURCE 1007 # define OPENSSL_INFO_CPU_SETTINGS 1008 +# define OPENSSL_INFO_WINDOWS_CONTEXT 1009 int OPENSSL_issetugid(void); @@ -341,11 +353,14 @@ void CRYPTO_get_mem_functions(CRYPTO_malloc_fn *malloc_fn, CRYPTO_realloc_fn *realloc_fn, CRYPTO_free_fn *free_fn); -void *CRYPTO_malloc(size_t num, const char *file, int line); -void *CRYPTO_zalloc(size_t num, const char *file, int line); -void *CRYPTO_memdup(const void *str, size_t siz, const char *file, int line); -char *CRYPTO_strdup(const char *str, const char *file, int line); -char *CRYPTO_strndup(const char *str, size_t s, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_malloc(size_t num, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_zalloc(size_t num, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_aligned_alloc(size_t num, size_t align, + void **freeptr, const char *file, + int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_memdup(const void *str, size_t siz, const char *file, int line); +OSSL_CRYPTO_ALLOC char *CRYPTO_strdup(const char *str, const char *file, int line); +OSSL_CRYPTO_ALLOC char *CRYPTO_strndup(const char *str, size_t s, const char *file, int line); void CRYPTO_free(void *ptr, const char *file, int line); void CRYPTO_clear_free(void *ptr, size_t num, const char *file, int line); void *CRYPTO_realloc(void *addr, size_t num, const char *file, int line); @@ -354,8 +369,8 @@ void *CRYPTO_clear_realloc(void *addr, size_t old_num, size_t num, int CRYPTO_secure_malloc_init(size_t sz, size_t minsize); int CRYPTO_secure_malloc_done(void); -void *CRYPTO_secure_malloc(size_t num, const char *file, int line); -void *CRYPTO_secure_zalloc(size_t num, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_secure_malloc(size_t num, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_secure_zalloc(size_t num, const char *file, int line); void CRYPTO_secure_free(void *ptr, const char *file, int line); void CRYPTO_secure_clear_free(void *ptr, size_t num, const char *file, int line); @@ -376,6 +391,9 @@ void OPENSSL_cleanse(void *ptr, size_t len); # define CRYPTO_MEM_CHECK_ENABLE 0x2 /* Control and mode bit */ # define CRYPTO_MEM_CHECK_DISABLE 0x3 /* Control only */ +/* max allowed length for value of OPENSSL_MALLOC_FAILURES env var. */ +# define CRYPTO_MEM_CHECK_MAX_FS 256 + void CRYPTO_get_alloc_counts(int *mcount, int *rcount, int *fcount); # ifndef OPENSSL_NO_DEPRECATED_3_0 # define OPENSSL_mem_debug_push(info) \ @@ -551,6 +569,13 @@ int OSSL_LIB_CTX_load_config(OSSL_LIB_CTX *ctx, const char *config_file); void OSSL_LIB_CTX_free(OSSL_LIB_CTX *); OSSL_LIB_CTX *OSSL_LIB_CTX_get0_global_default(void); OSSL_LIB_CTX *OSSL_LIB_CTX_set0_default(OSSL_LIB_CTX *libctx); +int OSSL_LIB_CTX_get_conf_diagnostics(OSSL_LIB_CTX *ctx); +void OSSL_LIB_CTX_set_conf_diagnostics(OSSL_LIB_CTX *ctx, int value); + +void OSSL_sleep(uint64_t millis); + + +void *OSSL_LIB_CTX_get_data(OSSL_LIB_CTX *ctx, int index); # ifdef __cplusplus } diff --git a/deps/openssl/config/archs/darwin-i386-cc/no-asm/include/openssl/ct.h b/deps/openssl/config/archs/darwin-i386-cc/no-asm/include/openssl/ct.h index b6dd8c3547710a..e6dd1192a4e0b3 100644 --- a/deps/openssl/config/archs/darwin-i386-cc/no-asm/include/openssl/ct.h +++ b/deps/openssl/config/archs/darwin-i386-cc/no-asm/include/openssl/ct.h @@ -133,7 +133,7 @@ typedef enum { */ CT_POLICY_EVAL_CTX *CT_POLICY_EVAL_CTX_new_ex(OSSL_LIB_CTX *libctx, const char *propq); - + /* * The same as CT_POLICY_EVAL_CTX_new_ex() but the default library * context and property query string is used. diff --git a/deps/openssl/config/archs/darwin-i386-cc/no-asm/include/openssl/err.h b/deps/openssl/config/archs/darwin-i386-cc/no-asm/include/openssl/err.h index 2abf2483488181..daca18e7b757b0 100644 --- a/deps/openssl/config/archs/darwin-i386-cc/no-asm/include/openssl/err.h +++ b/deps/openssl/config/archs/darwin-i386-cc/no-asm/include/openssl/err.h @@ -1,5 +1,5 @@ /* - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -372,7 +372,7 @@ typedef struct ERR_string_data_st { } ERR_STRING_DATA; DEFINE_LHASH_OF_INTERNAL(ERR_STRING_DATA); -#define lh_ERR_STRING_DATA_new(hfn, cmp) ((LHASH_OF(ERR_STRING_DATA) *)OPENSSL_LH_new(ossl_check_ERR_STRING_DATA_lh_hashfunc_type(hfn), ossl_check_ERR_STRING_DATA_lh_compfunc_type(cmp))) +#define lh_ERR_STRING_DATA_new(hfn, cmp) ((LHASH_OF(ERR_STRING_DATA) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new(ossl_check_ERR_STRING_DATA_lh_hashfunc_type(hfn), ossl_check_ERR_STRING_DATA_lh_compfunc_type(cmp)), lh_ERR_STRING_DATA_hash_thunk, lh_ERR_STRING_DATA_comp_thunk, lh_ERR_STRING_DATA_doall_thunk, lh_ERR_STRING_DATA_doall_arg_thunk)) #define lh_ERR_STRING_DATA_free(lh) OPENSSL_LH_free(ossl_check_ERR_STRING_DATA_lh_type(lh)) #define lh_ERR_STRING_DATA_flush(lh) OPENSSL_LH_flush(ossl_check_ERR_STRING_DATA_lh_type(lh)) #define lh_ERR_STRING_DATA_insert(lh, ptr) ((ERR_STRING_DATA *)OPENSSL_LH_insert(ossl_check_ERR_STRING_DATA_lh_type(lh), ossl_check_ERR_STRING_DATA_lh_plain_type(ptr))) @@ -496,6 +496,14 @@ int ERR_get_next_error_library(void); int ERR_set_mark(void); int ERR_pop_to_mark(void); int ERR_clear_last_mark(void); +int ERR_count_to_mark(void); +int ERR_pop(void); + +ERR_STATE *OSSL_ERR_STATE_new(void); +void OSSL_ERR_STATE_save(ERR_STATE *es); +void OSSL_ERR_STATE_save_to_mark(ERR_STATE *es); +void OSSL_ERR_STATE_restore(const ERR_STATE *es); +void OSSL_ERR_STATE_free(ERR_STATE *es); #ifdef __cplusplus } diff --git a/deps/openssl/config/archs/darwin-i386-cc/no-asm/include/openssl/fipskey.h b/deps/openssl/config/archs/darwin-i386-cc/no-asm/include/openssl/fipskey.h index 42ba014b313ba8..929db18c678364 100644 --- a/deps/openssl/config/archs/darwin-i386-cc/no-asm/include/openssl/fipskey.h +++ b/deps/openssl/config/archs/darwin-i386-cc/no-asm/include/openssl/fipskey.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/fipskey.h.in * - * Copyright 2020-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2020-2024 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -29,6 +29,11 @@ extern "C" { */ #define FIPS_KEY_STRING "f4556650ac31d35461610bac4ed81b1a181b2d8a43ea2854cbae22ca74560813" +/* + * The FIPS provider vendor name, as a string. + */ +#define FIPS_VENDOR "OpenSSL FIPS Provider" + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/darwin-i386-cc/no-asm/include/openssl/lhash.h b/deps/openssl/config/archs/darwin-i386-cc/no-asm/include/openssl/lhash.h index 39dd6254acdeb6..62c55b20fd9716 100644 --- a/deps/openssl/config/archs/darwin-i386-cc/no-asm/include/openssl/lhash.h +++ b/deps/openssl/config/archs/darwin-i386-cc/no-asm/include/openssl/lhash.h @@ -1,5 +1,5 @@ /* - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2024 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -24,6 +24,9 @@ # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -31,9 +34,13 @@ extern "C" { typedef struct lhash_node_st OPENSSL_LH_NODE; typedef int (*OPENSSL_LH_COMPFUNC) (const void *, const void *); +typedef int (*OPENSSL_LH_COMPFUNCTHUNK) (const void *, const void *, OPENSSL_LH_COMPFUNC cfn); typedef unsigned long (*OPENSSL_LH_HASHFUNC) (const void *); +typedef unsigned long (*OPENSSL_LH_HASHFUNCTHUNK) (const void *, OPENSSL_LH_HASHFUNC hfn); typedef void (*OPENSSL_LH_DOALL_FUNC) (void *); +typedef void (*OPENSSL_LH_DOALL_FUNC_THUNK) (void *, OPENSSL_LH_DOALL_FUNC doall); typedef void (*OPENSSL_LH_DOALL_FUNCARG) (void *, void *); +typedef void (*OPENSSL_LH_DOALL_FUNCARG_THUNK) (void *, void *, OPENSSL_LH_DOALL_FUNCARG doall); typedef struct lhash_st OPENSSL_LHASH; /* @@ -79,26 +86,40 @@ typedef struct lhash_st OPENSSL_LHASH; int OPENSSL_LH_error(OPENSSL_LHASH *lh); OPENSSL_LHASH *OPENSSL_LH_new(OPENSSL_LH_HASHFUNC h, OPENSSL_LH_COMPFUNC c); +OPENSSL_LHASH *OPENSSL_LH_set_thunks(OPENSSL_LHASH *lh, + OPENSSL_LH_HASHFUNCTHUNK hw, + OPENSSL_LH_COMPFUNCTHUNK cw, + OPENSSL_LH_DOALL_FUNC_THUNK daw, + OPENSSL_LH_DOALL_FUNCARG_THUNK daaw); void OPENSSL_LH_free(OPENSSL_LHASH *lh); void OPENSSL_LH_flush(OPENSSL_LHASH *lh); void *OPENSSL_LH_insert(OPENSSL_LHASH *lh, void *data); void *OPENSSL_LH_delete(OPENSSL_LHASH *lh, const void *data); void *OPENSSL_LH_retrieve(OPENSSL_LHASH *lh, const void *data); void OPENSSL_LH_doall(OPENSSL_LHASH *lh, OPENSSL_LH_DOALL_FUNC func); -void OPENSSL_LH_doall_arg(OPENSSL_LHASH *lh, OPENSSL_LH_DOALL_FUNCARG func, void *arg); +void OPENSSL_LH_doall_arg(OPENSSL_LHASH *lh, + OPENSSL_LH_DOALL_FUNCARG func, void *arg); +void OPENSSL_LH_doall_arg_thunk(OPENSSL_LHASH *lh, + OPENSSL_LH_DOALL_FUNCARG_THUNK daaw, + OPENSSL_LH_DOALL_FUNCARG fn, void *arg); + unsigned long OPENSSL_LH_strhash(const char *c); unsigned long OPENSSL_LH_num_items(const OPENSSL_LHASH *lh); unsigned long OPENSSL_LH_get_down_load(const OPENSSL_LHASH *lh); void OPENSSL_LH_set_down_load(OPENSSL_LHASH *lh, unsigned long down_load); # ifndef OPENSSL_NO_STDIO -void OPENSSL_LH_stats(const OPENSSL_LHASH *lh, FILE *fp); -void OPENSSL_LH_node_stats(const OPENSSL_LHASH *lh, FILE *fp); -void OPENSSL_LH_node_usage_stats(const OPENSSL_LHASH *lh, FILE *fp); +# ifndef OPENSSL_NO_DEPRECATED_3_1 +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_stats(const OPENSSL_LHASH *lh, FILE *fp); +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_node_stats(const OPENSSL_LHASH *lh, FILE *fp); +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_node_usage_stats(const OPENSSL_LHASH *lh, FILE *fp); +# endif +# endif +# ifndef OPENSSL_NO_DEPRECATED_3_1 +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_stats_bio(const OPENSSL_LHASH *lh, BIO *out); +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_node_stats_bio(const OPENSSL_LHASH *lh, BIO *out); +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_node_usage_stats_bio(const OPENSSL_LHASH *lh, BIO *out); # endif -void OPENSSL_LH_stats_bio(const OPENSSL_LHASH *lh, BIO *out); -void OPENSSL_LH_node_stats_bio(const OPENSSL_LHASH *lh, BIO *out); -void OPENSSL_LH_node_usage_stats_bio(const OPENSSL_LHASH *lh, BIO *out); # ifndef OPENSSL_NO_DEPRECATED_1_1_0 # define _LHASH OPENSSL_LHASH @@ -129,110 +150,190 @@ void OPENSSL_LH_node_usage_stats_bio(const OPENSSL_LHASH *lh, BIO *out); /* Helper macro for internal use */ # define DEFINE_LHASH_OF_INTERNAL(type) \ - LHASH_OF(type) { union lh_##type##_dummy { void* d1; unsigned long d2; int d3; } dummy; }; \ + LHASH_OF(type) { \ + union lh_##type##_dummy { void* d1; unsigned long d2; int d3; } dummy; \ + }; \ typedef int (*lh_##type##_compfunc)(const type *a, const type *b); \ typedef unsigned long (*lh_##type##_hashfunc)(const type *a); \ typedef void (*lh_##type##_doallfunc)(type *a); \ - static ossl_unused ossl_inline type *ossl_check_##type##_lh_plain_type(type *ptr) \ + static ossl_inline unsigned long lh_##type##_hash_thunk(const void *data, OPENSSL_LH_HASHFUNC hfn) \ + { \ + unsigned long (*hfn_conv)(const type *) = (unsigned long (*)(const type *))hfn; \ + return hfn_conv((const type *)data); \ + } \ + static ossl_inline int lh_##type##_comp_thunk(const void *da, const void *db, OPENSSL_LH_COMPFUNC cfn) \ + { \ + int (*cfn_conv)(const type *, const type *) = (int (*)(const type *, const type *))cfn; \ + return cfn_conv((const type *)da, (const type *)db); \ + } \ + static ossl_inline void lh_##type##_doall_thunk(void *node, OPENSSL_LH_DOALL_FUNC doall) \ + { \ + void (*doall_conv)(type *) = (void (*)(type *))doall; \ + doall_conv((type *)node); \ + } \ + static ossl_inline void lh_##type##_doall_arg_thunk(void *node, void *arg, OPENSSL_LH_DOALL_FUNCARG doall) \ + { \ + void (*doall_conv)(type *, void *) = (void (*)(type *, void *))doall; \ + doall_conv((type *)node, arg); \ + } \ + static ossl_unused ossl_inline type *\ + ossl_check_##type##_lh_plain_type(type *ptr) \ { \ return ptr; \ } \ - static ossl_unused ossl_inline const type *ossl_check_const_##type##_lh_plain_type(const type *ptr) \ + static ossl_unused ossl_inline const type * \ + ossl_check_const_##type##_lh_plain_type(const type *ptr) \ { \ return ptr; \ } \ - static ossl_unused ossl_inline const OPENSSL_LHASH *ossl_check_const_##type##_lh_type(const LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline const OPENSSL_LHASH * \ + ossl_check_const_##type##_lh_type(const LHASH_OF(type) *lh) \ { \ return (const OPENSSL_LHASH *)lh; \ } \ - static ossl_unused ossl_inline OPENSSL_LHASH *ossl_check_##type##_lh_type(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline OPENSSL_LHASH * \ + ossl_check_##type##_lh_type(LHASH_OF(type) *lh) \ { \ return (OPENSSL_LHASH *)lh; \ } \ - static ossl_unused ossl_inline OPENSSL_LH_COMPFUNC ossl_check_##type##_lh_compfunc_type(lh_##type##_compfunc cmp) \ + static ossl_unused ossl_inline OPENSSL_LH_COMPFUNC \ + ossl_check_##type##_lh_compfunc_type(lh_##type##_compfunc cmp) \ { \ return (OPENSSL_LH_COMPFUNC)cmp; \ } \ - static ossl_unused ossl_inline OPENSSL_LH_HASHFUNC ossl_check_##type##_lh_hashfunc_type(lh_##type##_hashfunc hfn) \ + static ossl_unused ossl_inline OPENSSL_LH_HASHFUNC \ + ossl_check_##type##_lh_hashfunc_type(lh_##type##_hashfunc hfn) \ { \ return (OPENSSL_LH_HASHFUNC)hfn; \ } \ - static ossl_unused ossl_inline OPENSSL_LH_DOALL_FUNC ossl_check_##type##_lh_doallfunc_type(lh_##type##_doallfunc dfn) \ + static ossl_unused ossl_inline OPENSSL_LH_DOALL_FUNC \ + ossl_check_##type##_lh_doallfunc_type(lh_##type##_doallfunc dfn) \ { \ return (OPENSSL_LH_DOALL_FUNC)dfn; \ } \ LHASH_OF(type) -# define DEFINE_LHASH_OF(type) \ - LHASH_OF(type) { union lh_##type##_dummy { void* d1; unsigned long d2; int d3; } dummy; }; \ - static ossl_unused ossl_inline LHASH_OF(type) *lh_##type##_new(unsigned long (*hfn)(const type *), \ - int (*cfn)(const type *, const type *)) \ +# ifndef OPENSSL_NO_DEPRECATED_3_1 +# define DEFINE_LHASH_OF_DEPRECATED(type) \ + static ossl_unused ossl_inline void \ + lh_##type##_node_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ { \ - return (LHASH_OF(type) *) \ - OPENSSL_LH_new((OPENSSL_LH_HASHFUNC)hfn, (OPENSSL_LH_COMPFUNC)cfn); \ + OPENSSL_LH_node_stats_bio((const OPENSSL_LHASH *)lh, out); \ } \ - static ossl_unused ossl_inline void lh_##type##_free(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline void \ + lh_##type##_node_usage_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + { \ + OPENSSL_LH_node_usage_stats_bio((const OPENSSL_LHASH *)lh, out); \ + } \ + static ossl_unused ossl_inline void \ + lh_##type##_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + { \ + OPENSSL_LH_stats_bio((const OPENSSL_LHASH *)lh, out); \ + } +# else +# define DEFINE_LHASH_OF_DEPRECATED(type) +# endif + +# define DEFINE_LHASH_OF_EX(type) \ + LHASH_OF(type) { \ + union lh_##type##_dummy { void* d1; unsigned long d2; int d3; } dummy; \ + }; \ + static unsigned long \ + lh_##type##_hfn_thunk(const void *data, OPENSSL_LH_HASHFUNC hfn) \ + { \ + unsigned long (*hfn_conv)(const type *) = (unsigned long (*)(const type *))hfn; \ + return hfn_conv((const type *)data); \ + } \ + static int lh_##type##_cfn_thunk(const void *da, const void *db, OPENSSL_LH_COMPFUNC cfn) \ + { \ + int (*cfn_conv)(const type *, const type *) = (int (*)(const type *, const type *))cfn; \ + return cfn_conv((const type *)da, (const type *)db); \ + } \ + static ossl_unused ossl_inline void \ + lh_##type##_free(LHASH_OF(type) *lh) \ { \ OPENSSL_LH_free((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline void lh_##type##_flush(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline void \ + lh_##type##_flush(LHASH_OF(type) *lh) \ { \ OPENSSL_LH_flush((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline type *lh_##type##_insert(LHASH_OF(type) *lh, type *d) \ + static ossl_unused ossl_inline type * \ + lh_##type##_insert(LHASH_OF(type) *lh, type *d) \ { \ return (type *)OPENSSL_LH_insert((OPENSSL_LHASH *)lh, d); \ } \ - static ossl_unused ossl_inline type *lh_##type##_delete(LHASH_OF(type) *lh, const type *d) \ + static ossl_unused ossl_inline type * \ + lh_##type##_delete(LHASH_OF(type) *lh, const type *d) \ { \ return (type *)OPENSSL_LH_delete((OPENSSL_LHASH *)lh, d); \ } \ - static ossl_unused ossl_inline type *lh_##type##_retrieve(LHASH_OF(type) *lh, const type *d) \ + static ossl_unused ossl_inline type * \ + lh_##type##_retrieve(LHASH_OF(type) *lh, const type *d) \ { \ return (type *)OPENSSL_LH_retrieve((OPENSSL_LHASH *)lh, d); \ } \ - static ossl_unused ossl_inline int lh_##type##_error(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline int \ + lh_##type##_error(LHASH_OF(type) *lh) \ { \ return OPENSSL_LH_error((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline unsigned long lh_##type##_num_items(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline unsigned long \ + lh_##type##_num_items(LHASH_OF(type) *lh) \ { \ return OPENSSL_LH_num_items((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline void lh_##type##_node_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + static ossl_unused ossl_inline unsigned long \ + lh_##type##_get_down_load(LHASH_OF(type) *lh) \ { \ - OPENSSL_LH_node_stats_bio((const OPENSSL_LHASH *)lh, out); \ + return OPENSSL_LH_get_down_load((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline void lh_##type##_node_usage_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + static ossl_unused ossl_inline void \ + lh_##type##_set_down_load(LHASH_OF(type) *lh, unsigned long dl) \ { \ - OPENSSL_LH_node_usage_stats_bio((const OPENSSL_LHASH *)lh, out); \ + OPENSSL_LH_set_down_load((OPENSSL_LHASH *)lh, dl); \ } \ - static ossl_unused ossl_inline void lh_##type##_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall_thunk(void *node, OPENSSL_LH_DOALL_FUNC doall) \ { \ - OPENSSL_LH_stats_bio((const OPENSSL_LHASH *)lh, out); \ + void (*doall_conv)(type *) = (void (*)(type *))doall; \ + doall_conv((type *)node); \ } \ - static ossl_unused ossl_inline unsigned long lh_##type##_get_down_load(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall_arg_thunk(void *node, void *arg, OPENSSL_LH_DOALL_FUNCARG doall) \ { \ - return OPENSSL_LH_get_down_load((OPENSSL_LHASH *)lh); \ + void (*doall_conv)(type *, void *) = (void (*)(type *, void *))doall; \ + doall_conv((type *)node, arg); \ } \ - static ossl_unused ossl_inline void lh_##type##_set_down_load(LHASH_OF(type) *lh, unsigned long dl) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall(LHASH_OF(type) *lh, void (*doall)(type *)) \ { \ - OPENSSL_LH_set_down_load((OPENSSL_LHASH *)lh, dl); \ + OPENSSL_LH_doall((OPENSSL_LHASH *)lh, (OPENSSL_LH_DOALL_FUNC)doall); \ } \ - static ossl_unused ossl_inline void lh_##type##_doall(LHASH_OF(type) *lh, \ - void (*doall)(type *)) \ + static ossl_unused ossl_inline LHASH_OF(type) * \ + lh_##type##_new(unsigned long (*hfn)(const type *), \ + int (*cfn)(const type *, const type *)) \ { \ - OPENSSL_LH_doall((OPENSSL_LHASH *)lh, (OPENSSL_LH_DOALL_FUNC)doall); \ + return (LHASH_OF(type) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new((OPENSSL_LH_HASHFUNC)hfn, (OPENSSL_LH_COMPFUNC)cfn), \ + lh_##type##_hfn_thunk, lh_##type##_cfn_thunk, \ + lh_##type##_doall_thunk, \ + lh_##type##_doall_arg_thunk); \ } \ - static ossl_unused ossl_inline void lh_##type##_doall_arg(LHASH_OF(type) *lh, \ - void (*doallarg)(type *, void *), \ - void *arg) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall_arg(LHASH_OF(type) *lh, \ + void (*doallarg)(type *, void *), void *arg) \ { \ OPENSSL_LH_doall_arg((OPENSSL_LHASH *)lh, \ (OPENSSL_LH_DOALL_FUNCARG)doallarg, arg); \ } \ LHASH_OF(type) +# define DEFINE_LHASH_OF(type) \ + DEFINE_LHASH_OF_EX(type); \ + DEFINE_LHASH_OF_DEPRECATED(type) \ + LHASH_OF(type) + #define IMPLEMENT_LHASH_DOALL_ARG_CONST(type, argtype) \ int_implement_lhash_doall(type, argtype, const type) @@ -240,17 +341,26 @@ void OPENSSL_LH_node_usage_stats_bio(const OPENSSL_LHASH *lh, BIO *out); int_implement_lhash_doall(type, argtype, type) #define int_implement_lhash_doall(type, argtype, cbargtype) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall_##argtype##_thunk(void *node, void *arg, OPENSSL_LH_DOALL_FUNCARG fn) \ + { \ + void (*fn_conv)(cbargtype *, argtype *) = (void (*)(cbargtype *, argtype *))fn; \ + fn_conv((cbargtype *)node, (argtype *)arg); \ + } \ static ossl_unused ossl_inline void \ lh_##type##_doall_##argtype(LHASH_OF(type) *lh, \ void (*fn)(cbargtype *, argtype *), \ argtype *arg) \ { \ - OPENSSL_LH_doall_arg((OPENSSL_LHASH *)lh, (OPENSSL_LH_DOALL_FUNCARG)fn, (void *)arg); \ + OPENSSL_LH_doall_arg_thunk((OPENSSL_LHASH *)lh, \ + lh_##type##_doall_##argtype##_thunk, \ + (OPENSSL_LH_DOALL_FUNCARG)fn, \ + (void *)arg); \ } \ LHASH_OF(type) DEFINE_LHASH_OF_INTERNAL(OPENSSL_STRING); -#define lh_OPENSSL_STRING_new(hfn, cmp) ((LHASH_OF(OPENSSL_STRING) *)OPENSSL_LH_new(ossl_check_OPENSSL_STRING_lh_hashfunc_type(hfn), ossl_check_OPENSSL_STRING_lh_compfunc_type(cmp))) +#define lh_OPENSSL_STRING_new(hfn, cmp) ((LHASH_OF(OPENSSL_STRING) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new(ossl_check_OPENSSL_STRING_lh_hashfunc_type(hfn), ossl_check_OPENSSL_STRING_lh_compfunc_type(cmp)), lh_OPENSSL_STRING_hash_thunk, lh_OPENSSL_STRING_comp_thunk, lh_OPENSSL_STRING_doall_thunk, lh_OPENSSL_STRING_doall_arg_thunk)) #define lh_OPENSSL_STRING_free(lh) OPENSSL_LH_free(ossl_check_OPENSSL_STRING_lh_type(lh)) #define lh_OPENSSL_STRING_flush(lh) OPENSSL_LH_flush(ossl_check_OPENSSL_STRING_lh_type(lh)) #define lh_OPENSSL_STRING_insert(lh, ptr) ((OPENSSL_STRING *)OPENSSL_LH_insert(ossl_check_OPENSSL_STRING_lh_type(lh), ossl_check_OPENSSL_STRING_lh_plain_type(ptr))) @@ -265,7 +375,7 @@ DEFINE_LHASH_OF_INTERNAL(OPENSSL_STRING); #define lh_OPENSSL_STRING_set_down_load(lh, dl) OPENSSL_LH_set_down_load(ossl_check_OPENSSL_STRING_lh_type(lh), dl) #define lh_OPENSSL_STRING_doall(lh, dfn) OPENSSL_LH_doall(ossl_check_OPENSSL_STRING_lh_type(lh), ossl_check_OPENSSL_STRING_lh_doallfunc_type(dfn)) DEFINE_LHASH_OF_INTERNAL(OPENSSL_CSTRING); -#define lh_OPENSSL_CSTRING_new(hfn, cmp) ((LHASH_OF(OPENSSL_CSTRING) *)OPENSSL_LH_new(ossl_check_OPENSSL_CSTRING_lh_hashfunc_type(hfn), ossl_check_OPENSSL_CSTRING_lh_compfunc_type(cmp))) +#define lh_OPENSSL_CSTRING_new(hfn, cmp) ((LHASH_OF(OPENSSL_CSTRING) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new(ossl_check_OPENSSL_CSTRING_lh_hashfunc_type(hfn), ossl_check_OPENSSL_CSTRING_lh_compfunc_type(cmp)), lh_OPENSSL_CSTRING_hash_thunk, lh_OPENSSL_CSTRING_comp_thunk, lh_OPENSSL_CSTRING_doall_thunk, lh_OPENSSL_CSTRING_doall_arg_thunk)) #define lh_OPENSSL_CSTRING_free(lh) OPENSSL_LH_free(ossl_check_OPENSSL_CSTRING_lh_type(lh)) #define lh_OPENSSL_CSTRING_flush(lh) OPENSSL_LH_flush(ossl_check_OPENSSL_CSTRING_lh_type(lh)) #define lh_OPENSSL_CSTRING_insert(lh, ptr) ((OPENSSL_CSTRING *)OPENSSL_LH_insert(ossl_check_OPENSSL_CSTRING_lh_type(lh), ossl_check_OPENSSL_CSTRING_lh_plain_type(ptr))) diff --git a/deps/openssl/config/archs/darwin-i386-cc/no-asm/include/openssl/opensslv.h b/deps/openssl/config/archs/darwin-i386-cc/no-asm/include/openssl/opensslv.h index 5fb5bc63056fe0..dd50d89cb9982d 100644 --- a/deps/openssl/config/archs/darwin-i386-cc/no-asm/include/openssl/opensslv.h +++ b/deps/openssl/config/archs/darwin-i386-cc/no-asm/include/openssl/opensslv.h @@ -28,8 +28,8 @@ extern "C" { * These macros express version number MAJOR.MINOR.PATCH exactly */ # define OPENSSL_VERSION_MAJOR 3 -# define OPENSSL_VERSION_MINOR 0 -# define OPENSSL_VERSION_PATCH 17 +# define OPENSSL_VERSION_MINOR 5 +# define OPENSSL_VERSION_PATCH 1 /* * Additional version information @@ -74,8 +74,8 @@ extern "C" { * longer variant with OPENSSL_VERSION_PRE_RELEASE_STR and * OPENSSL_VERSION_BUILD_METADATA_STR appended. */ -# define OPENSSL_VERSION_STR "3.0.17" -# define OPENSSL_FULL_VERSION_STR "3.0.17" +# define OPENSSL_VERSION_STR "3.5.1" +# define OPENSSL_FULL_VERSION_STR "3.5.1" /* * SECTION 3: ADDITIONAL METADATA @@ -88,7 +88,7 @@ extern "C" { * SECTION 4: BACKWARD COMPATIBILITY */ -# define OPENSSL_VERSION_TEXT "OpenSSL 3.0.17 1 Jul 2025" +# define OPENSSL_VERSION_TEXT "OpenSSL 3.5.1 1 Jul 2025" /* Synthesize OPENSSL_VERSION_NUMBER with the layout 0xMNN00PPSL */ # ifdef OPENSSL_VERSION_PRE_RELEASE diff --git a/deps/openssl/config/archs/darwin-i386-cc/no-asm/include/openssl/pkcs12.h b/deps/openssl/config/archs/darwin-i386-cc/no-asm/include/openssl/pkcs12.h index c5e0cab06491ec..0809645dad0bbf 100644 --- a/deps/openssl/config/archs/darwin-i386-cc/no-asm/include/openssl/pkcs12.h +++ b/deps/openssl/config/archs/darwin-i386-cc/no-asm/include/openssl/pkcs12.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/pkcs12.h.in * - * Copyright 1999-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1999-2024 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -25,6 +25,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -41,6 +44,7 @@ extern "C" { # define PKCS12_MAC_KEY_LENGTH 20 +/* The macro is expected to be used only internally. Kept for backwards compatibility. */ # define PKCS12_SALT_LEN 8 /* It's not clear if these are actually needed... */ @@ -130,7 +134,9 @@ int PKCS12_SAFEBAG_get_bag_nid(const PKCS12_SAFEBAG *bag); const ASN1_TYPE *PKCS12_SAFEBAG_get0_bag_obj(const PKCS12_SAFEBAG *bag); const ASN1_OBJECT *PKCS12_SAFEBAG_get0_bag_type(const PKCS12_SAFEBAG *bag); +X509 *PKCS12_SAFEBAG_get1_cert_ex(const PKCS12_SAFEBAG *bag, OSSL_LIB_CTX *libctx, const char *propq); X509 *PKCS12_SAFEBAG_get1_cert(const PKCS12_SAFEBAG *bag); +X509_CRL *PKCS12_SAFEBAG_get1_crl_ex(const PKCS12_SAFEBAG *bag, OSSL_LIB_CTX *libctx, const char *propq); X509_CRL *PKCS12_SAFEBAG_get1_crl(const PKCS12_SAFEBAG *bag); const STACK_OF(PKCS12_SAFEBAG) * PKCS12_SAFEBAG_get0_safes(const PKCS12_SAFEBAG *bag); @@ -218,6 +224,7 @@ ASN1_TYPE *PKCS12_get_attr_gen(const STACK_OF(X509_ATTRIBUTE) *attrs, char *PKCS12_get_friendlyname(PKCS12_SAFEBAG *bag); const STACK_OF(X509_ATTRIBUTE) * PKCS12_SAFEBAG_get0_attrs(const PKCS12_SAFEBAG *bag); +void PKCS12_SAFEBAG_set0_attrs(PKCS12_SAFEBAG *bag, STACK_OF(X509_ATTRIBUTE) *attrs); unsigned char *PKCS12_pbe_crypt(const X509_ALGOR *algor, const char *pass, int passlen, const unsigned char *in, int inlen, @@ -285,6 +292,9 @@ int PKCS12_verify_mac(PKCS12 *p12, const char *pass, int passlen); int PKCS12_set_mac(PKCS12 *p12, const char *pass, int passlen, unsigned char *salt, int saltlen, int iter, const EVP_MD *md_type); +int PKCS12_set_pbmac1_pbkdf2(PKCS12 *p12, const char *pass, int passlen, + unsigned char *salt, int saltlen, int iter, + const EVP_MD *md_type, const char *prf_md_name); int PKCS12_setup_mac(PKCS12 *p12, int iter, unsigned char *salt, int saltlen, const EVP_MD *md_type); unsigned char *OPENSSL_asc2uni(const char *asc, int asclen, @@ -305,6 +315,7 @@ DECLARE_ASN1_ITEM(PKCS12_AUTHSAFES) void PKCS12_PBE_add(void); int PKCS12_parse(PKCS12 *p12, const char *pass, EVP_PKEY **pkey, X509 **cert, STACK_OF(X509) **ca); +typedef int PKCS12_create_cb(PKCS12_SAFEBAG *bag, void *cbarg); PKCS12 *PKCS12_create(const char *pass, const char *name, EVP_PKEY *pkey, X509 *cert, STACK_OF(X509) *ca, int nid_key, int nid_cert, int iter, int mac_iter, int keytype); @@ -312,6 +323,11 @@ PKCS12 *PKCS12_create_ex(const char *pass, const char *name, EVP_PKEY *pkey, X509 *cert, STACK_OF(X509) *ca, int nid_key, int nid_cert, int iter, int mac_iter, int keytype, OSSL_LIB_CTX *ctx, const char *propq); +PKCS12 *PKCS12_create_ex2(const char *pass, const char *name, EVP_PKEY *pkey, + X509 *cert, STACK_OF(X509) *ca, int nid_key, int nid_cert, + int iter, int mac_iter, int keytype, + OSSL_LIB_CTX *ctx, const char *propq, + PKCS12_create_cb *cb, void *cbarg); PKCS12_SAFEBAG *PKCS12_add_cert(STACK_OF(PKCS12_SAFEBAG) **pbags, X509 *cert); PKCS12_SAFEBAG *PKCS12_add_key(STACK_OF(PKCS12_SAFEBAG) **pbags, diff --git a/deps/openssl/config/archs/darwin-i386-cc/no-asm/include/openssl/pkcs7.h b/deps/openssl/config/archs/darwin-i386-cc/no-asm/include/openssl/pkcs7.h index 0ce79bf4fa160e..fa68462aff973b 100644 --- a/deps/openssl/config/archs/darwin-i386-cc/no-asm/include/openssl/pkcs7.h +++ b/deps/openssl/config/archs/darwin-i386-cc/no-asm/include/openssl/pkcs7.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/pkcs7.h.in * - * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -28,6 +28,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -131,8 +134,8 @@ SKM_DEFINE_STACK_OF_INTERNAL(PKCS7_RECIP_INFO, PKCS7_RECIP_INFO, PKCS7_RECIP_INF typedef struct pkcs7_signed_st { ASN1_INTEGER *version; /* version 1 */ STACK_OF(X509_ALGOR) *md_algs; /* md used */ - STACK_OF(X509) *cert; /* [ 0 ] */ - STACK_OF(X509_CRL) *crl; /* [ 1 ] */ + STACK_OF(X509) *cert; /* [ 0 ] */ /* name should be 'certificates' */ + STACK_OF(X509_CRL) *crl; /* [ 1 ] */ /* name should be 'crls' */ STACK_OF(PKCS7_SIGNER_INFO) *signer_info; struct pkcs7_st *contents; } PKCS7_SIGNED; @@ -158,8 +161,8 @@ typedef struct pkcs7_enveloped_st { typedef struct pkcs7_signedandenveloped_st { ASN1_INTEGER *version; /* version 1 */ STACK_OF(X509_ALGOR) *md_algs; /* md used */ - STACK_OF(X509) *cert; /* [ 0 ] */ - STACK_OF(X509_CRL) *crl; /* [ 1 ] */ + STACK_OF(X509) *cert; /* [ 0 ] */ /* name should be 'certificates' */ + STACK_OF(X509_CRL) *crl; /* [ 1 ] */ /* name should be 'crls' */ STACK_OF(PKCS7_SIGNER_INFO) *signer_info; PKCS7_ENC_CONTENT *enc_data; STACK_OF(PKCS7_RECIP_INFO) *recipientinfo; @@ -200,7 +203,7 @@ typedef struct pkcs7_st { /* NID_pkcs7_data */ ASN1_OCTET_STRING *data; /* NID_pkcs7_signed */ - PKCS7_SIGNED *sign; + PKCS7_SIGNED *sign; /* field name 'signed' would clash with C keyword */ /* NID_pkcs7_enveloped */ PKCS7_ENVELOPE *enveloped; /* NID_pkcs7_signedAndEnveloped */ @@ -341,13 +344,13 @@ int PKCS7_SIGNER_INFO_set(PKCS7_SIGNER_INFO *p7i, X509 *x509, EVP_PKEY *pkey, const EVP_MD *dgst); int PKCS7_SIGNER_INFO_sign(PKCS7_SIGNER_INFO *si); int PKCS7_add_signer(PKCS7 *p7, PKCS7_SIGNER_INFO *p7i); -int PKCS7_add_certificate(PKCS7 *p7, X509 *x509); -int PKCS7_add_crl(PKCS7 *p7, X509_CRL *x509); +int PKCS7_add_certificate(PKCS7 *p7, X509 *cert); +int PKCS7_add_crl(PKCS7 *p7, X509_CRL *crl); int PKCS7_content_new(PKCS7 *p7, int nid); int PKCS7_dataVerify(X509_STORE *cert_store, X509_STORE_CTX *ctx, BIO *bio, PKCS7 *p7, PKCS7_SIGNER_INFO *si); int PKCS7_signatureVerify(BIO *bio, PKCS7 *p7, PKCS7_SIGNER_INFO *si, - X509 *x509); + X509 *signer); BIO *PKCS7_dataInit(PKCS7 *p7, BIO *bio); int PKCS7_dataFinal(PKCS7 *p7, BIO *bio); diff --git a/deps/openssl/config/archs/darwin-i386-cc/no-asm/include/openssl/ssl.h b/deps/openssl/config/archs/darwin-i386-cc/no-asm/include/openssl/ssl.h index 3df725c56d6c5e..7e3d89c7ef3dc9 100644 --- a/deps/openssl/config/archs/darwin-i386-cc/no-asm/include/openssl/ssl.h +++ b/deps/openssl/config/archs/darwin-i386-cc/no-asm/include/openssl/ssl.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/ssl.h.in * - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved * Copyright 2005 Nokia. All rights reserved. * @@ -24,6 +24,7 @@ # endif # include +# include # include # include # include @@ -42,6 +43,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -231,10 +235,8 @@ typedef struct ssl_cipher_st SSL_CIPHER; typedef struct ssl_session_st SSL_SESSION; typedef struct tls_sigalgs_st TLS_SIGALGS; typedef struct ssl_conf_ctx_st SSL_CONF_CTX; -typedef struct ssl_comp_st SSL_COMP; STACK_OF(SSL_CIPHER); -STACK_OF(SSL_COMP); /* SRTP protection profiles for use with the use_srtp extension (RFC 5764)*/ typedef struct srtp_protection_profile_st { @@ -278,28 +280,31 @@ typedef int (*tls_session_secret_cb_fn)(SSL *s, void *secret, int *secret_len, /* Extension context codes */ /* This extension is only allowed in TLS */ -#define SSL_EXT_TLS_ONLY 0x0001 +#define SSL_EXT_TLS_ONLY 0x00001 /* This extension is only allowed in DTLS */ -#define SSL_EXT_DTLS_ONLY 0x0002 +#define SSL_EXT_DTLS_ONLY 0x00002 /* Some extensions may be allowed in DTLS but we don't implement them for it */ -#define SSL_EXT_TLS_IMPLEMENTATION_ONLY 0x0004 +#define SSL_EXT_TLS_IMPLEMENTATION_ONLY 0x00004 /* Most extensions are not defined for SSLv3 but EXT_TYPE_renegotiate is */ -#define SSL_EXT_SSL3_ALLOWED 0x0008 +#define SSL_EXT_SSL3_ALLOWED 0x00008 /* Extension is only defined for TLS1.2 and below */ -#define SSL_EXT_TLS1_2_AND_BELOW_ONLY 0x0010 +#define SSL_EXT_TLS1_2_AND_BELOW_ONLY 0x00010 /* Extension is only defined for TLS1.3 and above */ -#define SSL_EXT_TLS1_3_ONLY 0x0020 +#define SSL_EXT_TLS1_3_ONLY 0x00020 /* Ignore this extension during parsing if we are resuming */ -#define SSL_EXT_IGNORE_ON_RESUMPTION 0x0040 -#define SSL_EXT_CLIENT_HELLO 0x0080 +#define SSL_EXT_IGNORE_ON_RESUMPTION 0x00040 +#define SSL_EXT_CLIENT_HELLO 0x00080 /* Really means TLS1.2 or below */ -#define SSL_EXT_TLS1_2_SERVER_HELLO 0x0100 -#define SSL_EXT_TLS1_3_SERVER_HELLO 0x0200 -#define SSL_EXT_TLS1_3_ENCRYPTED_EXTENSIONS 0x0400 -#define SSL_EXT_TLS1_3_HELLO_RETRY_REQUEST 0x0800 -#define SSL_EXT_TLS1_3_CERTIFICATE 0x1000 -#define SSL_EXT_TLS1_3_NEW_SESSION_TICKET 0x2000 -#define SSL_EXT_TLS1_3_CERTIFICATE_REQUEST 0x4000 +#define SSL_EXT_TLS1_2_SERVER_HELLO 0x00100 +#define SSL_EXT_TLS1_3_SERVER_HELLO 0x00200 +#define SSL_EXT_TLS1_3_ENCRYPTED_EXTENSIONS 0x00400 +#define SSL_EXT_TLS1_3_HELLO_RETRY_REQUEST 0x00800 +#define SSL_EXT_TLS1_3_CERTIFICATE 0x01000 +#define SSL_EXT_TLS1_3_NEW_SESSION_TICKET 0x02000 +#define SSL_EXT_TLS1_3_CERTIFICATE_REQUEST 0x04000 +#define SSL_EXT_TLS1_3_CERTIFICATE_COMPRESSION 0x08000 +/* When sending a raw public key in a certificate message */ +#define SSL_EXT_TLS1_3_RAW_PUBLIC_KEY 0x10000 /* Typedefs for handling custom extensions */ @@ -404,7 +409,7 @@ typedef int (*SSL_async_callback_fn)(SSL *s, void *arg); */ # define SSL_OP_CIPHER_SERVER_PREFERENCE SSL_OP_BIT(22) /* - * If set, a server will allow a client to issue a SSLv3.0 version + * If set, a server will allow a client to issue an SSLv3.0 version * number as latest version supported in the premaster secret, even when * TLSv1.0 (version 3.1) was announced in the client hello. Normally * this is forbidden to prevent version rollback attacks. @@ -430,6 +435,19 @@ typedef int (*SSL_async_callback_fn)(SSL *s, void *arg); * interoperability with CryptoPro CSP 3.x */ # define SSL_OP_CRYPTOPRO_TLSEXT_BUG SSL_OP_BIT(31) +/* + * Disable RFC8879 certificate compression + * SSL_OP_NO_TX_CERTIFICATE_COMPRESSION: don't send compressed certificates, + * and ignore the extension when received. + * SSL_OP_NO_RX_CERTIFICATE_COMPRESSION: don't send the extension, and + * subsequently indicating that receiving is not supported + */ +# define SSL_OP_NO_TX_CERTIFICATE_COMPRESSION SSL_OP_BIT(32) +# define SSL_OP_NO_RX_CERTIFICATE_COMPRESSION SSL_OP_BIT(33) + /* Enable KTLS TX zerocopy on Linux */ +# define SSL_OP_ENABLE_KTLS_TX_ZEROCOPY_SENDFILE SSL_OP_BIT(34) + +#define SSL_OP_PREFER_NO_DHE_KEX SSL_OP_BIT(35) /* * Option "collections." @@ -574,6 +592,8 @@ typedef int (*SSL_async_callback_fn)(SSL *s, void *arg); # define CERT_PKEY_CERT_TYPE 0x400 /* Cert chain suitable to Suite B */ # define CERT_PKEY_SUITEB 0x800 +/* Cert pkey valid for raw public key use */ +# define CERT_PKEY_RPK 0x1000 # define SSL_CONF_FLAG_CMDLINE 0x1 # define SSL_CONF_FLAG_FILE 0x2 @@ -965,6 +985,7 @@ uint32_t SSL_get_recv_max_early_data(const SSL *s); # include /* This is mostly sslv3 with a few tweaks */ # include /* Datagram TLS */ # include /* Support for the use_srtp extension */ +# include #ifdef __cplusplus extern "C" { @@ -1000,32 +1021,6 @@ SKM_DEFINE_STACK_OF_INTERNAL(SSL_CIPHER, const SSL_CIPHER, SSL_CIPHER) #define sk_SSL_CIPHER_dup(sk) ((STACK_OF(SSL_CIPHER) *)OPENSSL_sk_dup(ossl_check_const_SSL_CIPHER_sk_type(sk))) #define sk_SSL_CIPHER_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(SSL_CIPHER) *)OPENSSL_sk_deep_copy(ossl_check_const_SSL_CIPHER_sk_type(sk), ossl_check_SSL_CIPHER_copyfunc_type(copyfunc), ossl_check_SSL_CIPHER_freefunc_type(freefunc))) #define sk_SSL_CIPHER_set_cmp_func(sk, cmp) ((sk_SSL_CIPHER_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_SSL_CIPHER_sk_type(sk), ossl_check_SSL_CIPHER_compfunc_type(cmp))) -SKM_DEFINE_STACK_OF_INTERNAL(SSL_COMP, SSL_COMP, SSL_COMP) -#define sk_SSL_COMP_num(sk) OPENSSL_sk_num(ossl_check_const_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_value(sk, idx) ((SSL_COMP *)OPENSSL_sk_value(ossl_check_const_SSL_COMP_sk_type(sk), (idx))) -#define sk_SSL_COMP_new(cmp) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new(ossl_check_SSL_COMP_compfunc_type(cmp))) -#define sk_SSL_COMP_new_null() ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new_null()) -#define sk_SSL_COMP_new_reserve(cmp, n) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new_reserve(ossl_check_SSL_COMP_compfunc_type(cmp), (n))) -#define sk_SSL_COMP_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_SSL_COMP_sk_type(sk), (n)) -#define sk_SSL_COMP_free(sk) OPENSSL_sk_free(ossl_check_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_zero(sk) OPENSSL_sk_zero(ossl_check_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_delete(sk, i) ((SSL_COMP *)OPENSSL_sk_delete(ossl_check_SSL_COMP_sk_type(sk), (i))) -#define sk_SSL_COMP_delete_ptr(sk, ptr) ((SSL_COMP *)OPENSSL_sk_delete_ptr(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr))) -#define sk_SSL_COMP_push(sk, ptr) OPENSSL_sk_push(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) -#define sk_SSL_COMP_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) -#define sk_SSL_COMP_pop(sk) ((SSL_COMP *)OPENSSL_sk_pop(ossl_check_SSL_COMP_sk_type(sk))) -#define sk_SSL_COMP_shift(sk) ((SSL_COMP *)OPENSSL_sk_shift(ossl_check_SSL_COMP_sk_type(sk))) -#define sk_SSL_COMP_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_SSL_COMP_sk_type(sk),ossl_check_SSL_COMP_freefunc_type(freefunc)) -#define sk_SSL_COMP_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr), (idx)) -#define sk_SSL_COMP_set(sk, idx, ptr) ((SSL_COMP *)OPENSSL_sk_set(ossl_check_SSL_COMP_sk_type(sk), (idx), ossl_check_SSL_COMP_type(ptr))) -#define sk_SSL_COMP_find(sk, ptr) OPENSSL_sk_find(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) -#define sk_SSL_COMP_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) -#define sk_SSL_COMP_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr), pnum) -#define sk_SSL_COMP_sort(sk) OPENSSL_sk_sort(ossl_check_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_dup(sk) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_dup(ossl_check_const_SSL_COMP_sk_type(sk))) -#define sk_SSL_COMP_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_deep_copy(ossl_check_const_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_copyfunc_type(copyfunc), ossl_check_SSL_COMP_freefunc_type(freefunc))) -#define sk_SSL_COMP_set_cmp_func(sk, cmp) ((sk_SSL_COMP_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_compfunc_type(cmp))) /* compatibility */ @@ -1066,6 +1061,7 @@ typedef enum { DTLS_ST_CR_HELLO_VERIFY_REQUEST, TLS_ST_CR_SRVR_HELLO, TLS_ST_CR_CERT, + TLS_ST_CR_COMP_CERT, TLS_ST_CR_CERT_STATUS, TLS_ST_CR_KEY_EXCH, TLS_ST_CR_CERT_REQ, @@ -1075,6 +1071,7 @@ typedef enum { TLS_ST_CR_FINISHED, TLS_ST_CW_CLNT_HELLO, TLS_ST_CW_CERT, + TLS_ST_CW_COMP_CERT, TLS_ST_CW_KEY_EXCH, TLS_ST_CW_CERT_VRFY, TLS_ST_CW_CHANGE, @@ -1085,10 +1082,12 @@ typedef enum { DTLS_ST_SW_HELLO_VERIFY_REQUEST, TLS_ST_SW_SRVR_HELLO, TLS_ST_SW_CERT, + TLS_ST_SW_COMP_CERT, TLS_ST_SW_KEY_EXCH, TLS_ST_SW_CERT_REQ, TLS_ST_SW_SRVR_DONE, TLS_ST_SR_CERT, + TLS_ST_SR_COMP_CERT, TLS_ST_SR_KEY_EXCH, TLS_ST_SR_CERT_VRFY, TLS_ST_SR_NEXT_PROTO, @@ -1380,9 +1379,13 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) # define SSL_CTRL_GET_SIGNATURE_NID 132 # define SSL_CTRL_GET_TMP_KEY 133 # define SSL_CTRL_GET_NEGOTIATED_GROUP 134 +# define SSL_CTRL_GET_IANA_GROUPS 135 # define SSL_CTRL_SET_RETRY_VERIFY 136 # define SSL_CTRL_GET_VERIFY_CERT_STORE 137 # define SSL_CTRL_GET_CHAIN_CERT_STORE 138 +# define SSL_CTRL_GET0_IMPLEMENTED_GROUPS 139 +# define SSL_CTRL_GET_SIGNATURE_NAME 140 +# define SSL_CTRL_GET_PEER_SIGNATURE_NAME 141 # define SSL_CERT_SET_FIRST 1 # define SSL_CERT_SET_NEXT 2 # define SSL_CERT_SET_SERVER 3 @@ -1485,10 +1488,15 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) # define SSL_get1_groups(s, glist) \ SSL_ctrl(s,SSL_CTRL_GET_GROUPS,0,(int*)(glist)) +# define SSL_get0_iana_groups(s, plst) \ + SSL_ctrl(s,SSL_CTRL_GET_IANA_GROUPS,0,(uint16_t **)(plst)) # define SSL_CTX_set1_groups(ctx, glist, glistlen) \ SSL_CTX_ctrl(ctx,SSL_CTRL_SET_GROUPS,glistlen,(int *)(glist)) # define SSL_CTX_set1_groups_list(ctx, s) \ SSL_CTX_ctrl(ctx,SSL_CTRL_SET_GROUPS_LIST,0,(char *)(s)) +# define SSL_CTX_get0_implemented_groups(ctx, all, out) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_GET0_IMPLEMENTED_GROUPS, all, \ + (STACK_OF(OPENSSL_CSTRING) *)(out)) # define SSL_set1_groups(s, glist, glistlen) \ SSL_ctrl(s,SSL_CTRL_SET_GROUPS,glistlen,(char *)(glist)) # define SSL_set1_groups_list(s, str) \ @@ -1520,8 +1528,12 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) (char *)(clist)) # define SSL_set1_client_certificate_types(s, clist, clistlen) \ SSL_ctrl(s,SSL_CTRL_SET_CLIENT_CERT_TYPES,clistlen,(char *)(clist)) +# define SSL_get0_signature_name(s, str) \ + SSL_ctrl(s,SSL_CTRL_GET_SIGNATURE_NAME,0,(1?(str):(const char **)NULL)) # define SSL_get_signature_nid(s, pn) \ SSL_ctrl(s,SSL_CTRL_GET_SIGNATURE_NID,0,pn) +# define SSL_get0_peer_signature_name(s, str) \ + SSL_ctrl(s,SSL_CTRL_GET_PEER_SIGNATURE_NAME,0,(1?(str):(const char **)NULL)) # define SSL_get_peer_signature_nid(s, pn) \ SSL_ctrl(s,SSL_CTRL_GET_PEER_SIGNATURE_NID,0,pn) # define SSL_get_peer_tmp_key(s, pk) \ @@ -1549,6 +1561,7 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) # define SSL_get_max_proto_version(s) \ SSL_ctrl(s, SSL_CTRL_GET_MAX_PROTO_VERSION, 0, NULL) +const char *SSL_get0_group_name(SSL *s); const char *SSL_group_to_name(SSL *s, int id); /* Backwards compatibility, original 1.1.0 names */ @@ -1613,7 +1626,11 @@ void SSL_CTX_set1_cert_store(SSL_CTX *, X509_STORE *); __owur int SSL_want(const SSL *s); __owur int SSL_clear(SSL *s); +#ifndef OPENSSL_NO_DEPRECATED_3_4 +OSSL_DEPRECATEDIN_3_4_FOR("not Y2038-safe, replace with SSL_CTX_flush_sessions_ex()") void SSL_CTX_flush_sessions(SSL_CTX *ctx, long tm); +#endif +void SSL_CTX_flush_sessions_ex(SSL_CTX *ctx, time_t tm); __owur const SSL_CIPHER *SSL_get_current_cipher(const SSL *s); __owur const SSL_CIPHER *SSL_get_pending_cipher(const SSL *s); @@ -1725,13 +1742,21 @@ __owur const char *SSL_state_string(const SSL *s); __owur const char *SSL_rstate_string(const SSL *s); __owur const char *SSL_state_string_long(const SSL *s); __owur const char *SSL_rstate_string_long(const SSL *s); + +#ifndef OPENSSL_NO_DEPRECATED_3_4 +OSSL_DEPRECATEDIN_3_4_FOR("not Y2038-safe, replace with SSL_SESSION_get_time_ex()") __owur long SSL_SESSION_get_time(const SSL_SESSION *s); +OSSL_DEPRECATEDIN_3_4_FOR("not Y2038-safe, replace with SSL_SESSION_set_time_ex()") __owur long SSL_SESSION_set_time(SSL_SESSION *s, long t); +#endif __owur long SSL_SESSION_get_timeout(const SSL_SESSION *s); __owur long SSL_SESSION_set_timeout(SSL_SESSION *s, long t); __owur int SSL_SESSION_get_protocol_version(const SSL_SESSION *s); __owur int SSL_SESSION_set_protocol_version(SSL_SESSION *s, int version); +__owur time_t SSL_SESSION_get_time_ex(const SSL_SESSION *s); +__owur time_t SSL_SESSION_set_time_ex(SSL_SESSION *s, time_t t); + __owur const char *SSL_SESSION_get0_hostname(const SSL_SESSION *s); __owur int SSL_SESSION_set1_hostname(SSL_SESSION *s, const char *hostname); void SSL_SESSION_get0_alpn_selected(const SSL_SESSION *s, @@ -1783,6 +1808,9 @@ __owur int SSL_has_matching_session_id(const SSL *s, unsigned int id_len); SSL_SESSION *d2i_SSL_SESSION(SSL_SESSION **a, const unsigned char **pp, long length); +SSL_SESSION *d2i_SSL_SESSION_ex(SSL_SESSION **a, const unsigned char **pp, + long length, OSSL_LIB_CTX *libctx, + const char *propq); # ifdef OPENSSL_X509_H __owur X509 *SSL_get0_peer_certificate(const SSL *s); @@ -1840,6 +1868,8 @@ __owur int SSL_CTX_set_session_id_context(SSL_CTX *ctx, SSL *SSL_new(SSL_CTX *ctx); int SSL_up_ref(SSL *s); int SSL_is_dtls(const SSL *s); +int SSL_is_tls(const SSL *s); +int SSL_is_quic(const SSL *s); __owur int SSL_set_session_id_context(SSL *ssl, const unsigned char *sid_ctx, unsigned int sid_ctx_len); @@ -1848,8 +1878,8 @@ __owur int SSL_set_purpose(SSL *ssl, int purpose); __owur int SSL_CTX_set_trust(SSL_CTX *ctx, int trust); __owur int SSL_set_trust(SSL *ssl, int trust); -__owur int SSL_set1_host(SSL *s, const char *hostname); -__owur int SSL_add1_host(SSL *s, const char *hostname); +__owur int SSL_set1_host(SSL *s, const char *host); +__owur int SSL_add1_host(SSL *s, const char *host); __owur const char *SSL_get0_peername(SSL *s); void SSL_set_hostflags(SSL *s, unsigned int flags); @@ -1924,6 +1954,11 @@ OSSL_DEPRECATEDIN_3_0 __owur char *SSL_get_srp_userinfo(SSL *s); typedef int (*SSL_client_hello_cb_fn) (SSL *s, int *al, void *arg); void SSL_CTX_set_client_hello_cb(SSL_CTX *c, SSL_client_hello_cb_fn cb, void *arg); +typedef int (*SSL_new_pending_conn_cb_fn) (SSL_CTX *ctx, SSL *new_ssl, + void *arg); +void SSL_CTX_set_new_pending_conn_cb(SSL_CTX *c, SSL_new_pending_conn_cb_fn cb, + void *arg); + int SSL_client_hello_isv2(SSL *s); unsigned int SSL_client_hello_get0_legacy_version(SSL *s); size_t SSL_client_hello_get0_random(SSL *s, const unsigned char **out); @@ -1932,6 +1967,8 @@ size_t SSL_client_hello_get0_ciphers(SSL *s, const unsigned char **out); size_t SSL_client_hello_get0_compression_methods(SSL *s, const unsigned char **out); int SSL_client_hello_get1_extensions_present(SSL *s, int **out, size_t *outlen); +int SSL_client_hello_get_extension_order(SSL *s, uint16_t *exts, + size_t *num_exts); int SSL_client_hello_get0_ext(SSL *s, unsigned int type, const unsigned char **out, size_t *outlen); @@ -1978,6 +2015,12 @@ long SSL_callback_ctrl(SSL *, int, void (*)(void)); long SSL_CTX_ctrl(SSL_CTX *ctx, int cmd, long larg, void *parg); long SSL_CTX_callback_ctrl(SSL_CTX *, int, void (*)(void)); +# define SSL_WRITE_FLAG_CONCLUDE (1U << 0) + +__owur int SSL_write_ex2(SSL *s, const void *buf, size_t num, + uint64_t flags, + size_t *written); + # define SSL_EARLY_DATA_NOT_SENT 0 # define SSL_EARLY_DATA_REJECTED 1 # define SSL_EARLY_DATA_ACCEPTED 2 @@ -1986,6 +2029,7 @@ __owur int SSL_get_early_data_status(const SSL *s); __owur int SSL_get_error(const SSL *s, int ret_code); __owur const char *SSL_get_version(const SSL *s); +__owur int SSL_get_handshake_rtt(const SSL *s, uint64_t *rtt); /* This sets the 'default' SSL version that SSL_new() will create */ # ifndef OPENSSL_NO_DEPRECATED_3_0 @@ -2281,6 +2325,8 @@ void SSL_CTX_set_record_padding_callback(SSL_CTX *ctx, void SSL_CTX_set_record_padding_callback_arg(SSL_CTX *ctx, void *arg); void *SSL_CTX_get_record_padding_callback_arg(const SSL_CTX *ctx); int SSL_CTX_set_block_padding(SSL_CTX *ctx, size_t block_size); +int SSL_CTX_set_block_padding_ex(SSL_CTX *ctx, size_t app_block_size, + size_t hs_block_size); int SSL_set_record_padding_callback(SSL *ssl, size_t (*cb) (SSL *ssl, int type, @@ -2288,12 +2334,255 @@ int SSL_set_record_padding_callback(SSL *ssl, void SSL_set_record_padding_callback_arg(SSL *ssl, void *arg); void *SSL_get_record_padding_callback_arg(const SSL *ssl); int SSL_set_block_padding(SSL *ssl, size_t block_size); - +int SSL_set_block_padding_ex(SSL *ssl, size_t app_block_size, + size_t hs_block_size); int SSL_set_num_tickets(SSL *s, size_t num_tickets); size_t SSL_get_num_tickets(const SSL *s); int SSL_CTX_set_num_tickets(SSL_CTX *ctx, size_t num_tickets); size_t SSL_CTX_get_num_tickets(const SSL_CTX *ctx); +/* QUIC support */ +int SSL_handle_events(SSL *s); +__owur int SSL_get_event_timeout(SSL *s, struct timeval *tv, int *is_infinite); +__owur int SSL_get_rpoll_descriptor(SSL *s, BIO_POLL_DESCRIPTOR *desc); +__owur int SSL_get_wpoll_descriptor(SSL *s, BIO_POLL_DESCRIPTOR *desc); +__owur int SSL_net_read_desired(SSL *s); +__owur int SSL_net_write_desired(SSL *s); +__owur int SSL_set_blocking_mode(SSL *s, int blocking); +__owur int SSL_get_blocking_mode(SSL *s); +__owur int SSL_set1_initial_peer_addr(SSL *s, const BIO_ADDR *peer_addr); +__owur SSL *SSL_get0_connection(SSL *s); +__owur int SSL_is_connection(SSL *s); + +__owur int SSL_is_listener(SSL *ssl); +__owur SSL *SSL_get0_listener(SSL *s); +#define SSL_LISTENER_FLAG_NO_VALIDATE (1UL << 1) +__owur SSL *SSL_new_listener(SSL_CTX *ctx, uint64_t flags); +__owur SSL *SSL_new_listener_from(SSL *ssl, uint64_t flags); +__owur SSL *SSL_new_from_listener(SSL *ssl, uint64_t flags); +#define SSL_ACCEPT_CONNECTION_NO_BLOCK (1UL << 0) +__owur SSL *SSL_accept_connection(SSL *ssl, uint64_t flags); +__owur size_t SSL_get_accept_connection_queue_len(SSL *ssl); +__owur int SSL_listen(SSL *ssl); + +__owur int SSL_is_domain(SSL *s); +__owur SSL *SSL_get0_domain(SSL *s); +__owur SSL *SSL_new_domain(SSL_CTX *ctx, uint64_t flags); + +#define SSL_DOMAIN_FLAG_SINGLE_THREAD (1U << 0) +#define SSL_DOMAIN_FLAG_MULTI_THREAD (1U << 1) +#define SSL_DOMAIN_FLAG_THREAD_ASSISTED (1U << 2) +#define SSL_DOMAIN_FLAG_BLOCKING (1U << 3) +#define SSL_DOMAIN_FLAG_LEGACY_BLOCKING (1U << 4) + +__owur int SSL_CTX_set_domain_flags(SSL_CTX *ctx, uint64_t domain_flags); +__owur int SSL_CTX_get_domain_flags(const SSL_CTX *ctx, uint64_t *domain_flags); +__owur int SSL_get_domain_flags(const SSL *ssl, uint64_t *domain_flags); + +#define SSL_STREAM_TYPE_NONE 0 +#define SSL_STREAM_TYPE_READ (1U << 0) +#define SSL_STREAM_TYPE_WRITE (1U << 1) +#define SSL_STREAM_TYPE_BIDI (SSL_STREAM_TYPE_READ | SSL_STREAM_TYPE_WRITE) +__owur int SSL_get_stream_type(SSL *s); + +__owur uint64_t SSL_get_stream_id(SSL *s); +__owur int SSL_is_stream_local(SSL *s); + +#define SSL_DEFAULT_STREAM_MODE_NONE 0 +#define SSL_DEFAULT_STREAM_MODE_AUTO_BIDI 1 +#define SSL_DEFAULT_STREAM_MODE_AUTO_UNI 2 +__owur int SSL_set_default_stream_mode(SSL *s, uint32_t mode); + +#define SSL_STREAM_FLAG_UNI (1U << 0) +#define SSL_STREAM_FLAG_NO_BLOCK (1U << 1) +#define SSL_STREAM_FLAG_ADVANCE (1U << 2) +__owur SSL *SSL_new_stream(SSL *s, uint64_t flags); + +#define SSL_INCOMING_STREAM_POLICY_AUTO 0 +#define SSL_INCOMING_STREAM_POLICY_ACCEPT 1 +#define SSL_INCOMING_STREAM_POLICY_REJECT 2 +__owur int SSL_set_incoming_stream_policy(SSL *s, int policy, uint64_t aec); + +#define SSL_ACCEPT_STREAM_NO_BLOCK (1U << 0) +__owur SSL *SSL_accept_stream(SSL *s, uint64_t flags); +__owur size_t SSL_get_accept_stream_queue_len(SSL *s); + +# ifndef OPENSSL_NO_QUIC +__owur int SSL_inject_net_dgram(SSL *s, const unsigned char *buf, + size_t buf_len, + const BIO_ADDR *peer, + const BIO_ADDR *local); +# endif + +typedef struct ssl_shutdown_ex_args_st { + uint64_t quic_error_code; + const char *quic_reason; +} SSL_SHUTDOWN_EX_ARGS; + +#define SSL_SHUTDOWN_FLAG_RAPID (1U << 0) +#define SSL_SHUTDOWN_FLAG_NO_STREAM_FLUSH (1U << 1) +#define SSL_SHUTDOWN_FLAG_NO_BLOCK (1U << 2) +#define SSL_SHUTDOWN_FLAG_WAIT_PEER (1U << 3) + +__owur int SSL_shutdown_ex(SSL *ssl, uint64_t flags, + const SSL_SHUTDOWN_EX_ARGS *args, + size_t args_len); + +__owur int SSL_stream_conclude(SSL *ssl, uint64_t flags); + +typedef struct ssl_stream_reset_args_st { + uint64_t quic_error_code; +} SSL_STREAM_RESET_ARGS; + +__owur int SSL_stream_reset(SSL *ssl, + const SSL_STREAM_RESET_ARGS *args, + size_t args_len); + +#define SSL_STREAM_STATE_NONE 0 +#define SSL_STREAM_STATE_OK 1 +#define SSL_STREAM_STATE_WRONG_DIR 2 +#define SSL_STREAM_STATE_FINISHED 3 +#define SSL_STREAM_STATE_RESET_LOCAL 4 +#define SSL_STREAM_STATE_RESET_REMOTE 5 +#define SSL_STREAM_STATE_CONN_CLOSED 6 +__owur int SSL_get_stream_read_state(SSL *ssl); +__owur int SSL_get_stream_write_state(SSL *ssl); + +__owur int SSL_get_stream_read_error_code(SSL *ssl, uint64_t *app_error_code); +__owur int SSL_get_stream_write_error_code(SSL *ssl, uint64_t *app_error_code); + +#define SSL_CONN_CLOSE_FLAG_LOCAL (1U << 0) +#define SSL_CONN_CLOSE_FLAG_TRANSPORT (1U << 1) + +typedef struct ssl_conn_close_info_st { + uint64_t error_code, frame_type; + const char *reason; + size_t reason_len; + uint32_t flags; +} SSL_CONN_CLOSE_INFO; + +__owur int SSL_get_conn_close_info(SSL *ssl, + SSL_CONN_CLOSE_INFO *info, + size_t info_len); + +# define SSL_VALUE_CLASS_GENERIC 0 +# define SSL_VALUE_CLASS_FEATURE_REQUEST 1 +# define SSL_VALUE_CLASS_FEATURE_PEER_REQUEST 2 +# define SSL_VALUE_CLASS_FEATURE_NEGOTIATED 3 + +# define SSL_VALUE_NONE 0 +# define SSL_VALUE_QUIC_STREAM_BIDI_LOCAL_AVAIL 1 +# define SSL_VALUE_QUIC_STREAM_BIDI_REMOTE_AVAIL 2 +# define SSL_VALUE_QUIC_STREAM_UNI_LOCAL_AVAIL 3 +# define SSL_VALUE_QUIC_STREAM_UNI_REMOTE_AVAIL 4 +# define SSL_VALUE_QUIC_IDLE_TIMEOUT 5 +# define SSL_VALUE_EVENT_HANDLING_MODE 6 +# define SSL_VALUE_STREAM_WRITE_BUF_SIZE 7 +# define SSL_VALUE_STREAM_WRITE_BUF_USED 8 +# define SSL_VALUE_STREAM_WRITE_BUF_AVAIL 9 + +# define SSL_VALUE_EVENT_HANDLING_MODE_INHERIT 0 +# define SSL_VALUE_EVENT_HANDLING_MODE_IMPLICIT 1 +# define SSL_VALUE_EVENT_HANDLING_MODE_EXPLICIT 2 + +int SSL_get_value_uint(SSL *s, uint32_t class_, uint32_t id, uint64_t *v); +int SSL_set_value_uint(SSL *s, uint32_t class_, uint32_t id, uint64_t v); + +# define SSL_get_generic_value_uint(ssl, id, v) \ + SSL_get_value_uint((ssl), SSL_VALUE_CLASS_GENERIC, (id), (v)) +# define SSL_set_generic_value_uint(ssl, id, v) \ + SSL_set_value_uint((ssl), SSL_VALUE_CLASS_GENERIC, (id), (v)) +# define SSL_get_feature_request_uint(ssl, id, v) \ + SSL_get_value_uint((ssl), SSL_VALUE_CLASS_FEATURE_REQUEST, (id), (v)) +# define SSL_set_feature_request_uint(ssl, id, v) \ + SSL_set_value_uint((ssl), SSL_VALUE_CLASS_FEATURE_REQUEST, (id), (v)) +# define SSL_get_feature_peer_request_uint(ssl, id, v) \ + SSL_get_value_uint((ssl), SSL_VALUE_CLASS_FEATURE_PEER_REQUEST, (id), (v)) +# define SSL_get_feature_negotiated_uint(ssl, id, v) \ + SSL_get_value_uint((ssl), SSL_VALUE_CLASS_FEATURE_NEGOTIATED, (id), (v)) + +# define SSL_get_quic_stream_bidi_local_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_QUIC_STREAM_BIDI_LOCAL_AVAIL, \ + (value)) +# define SSL_get_quic_stream_bidi_remote_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_QUIC_STREAM_BIDI_REMOTE_AVAIL, \ + (value)) +# define SSL_get_quic_stream_uni_local_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_QUIC_STREAM_UNI_LOCAL_AVAIL, \ + (value)) +# define SSL_get_quic_stream_uni_remote_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_QUIC_STREAM_UNI_REMOTE_AVAIL, \ + (value)) + +# define SSL_get_event_handling_mode(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_EVENT_HANDLING_MODE, \ + (value)) +# define SSL_set_event_handling_mode(ssl, value) \ + SSL_set_generic_value_uint((ssl), SSL_VALUE_EVENT_HANDLING_MODE, \ + (value)) + +# define SSL_get_stream_write_buf_size(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_STREAM_WRITE_BUF_SIZE, \ + (value)) +# define SSL_get_stream_write_buf_used(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_STREAM_WRITE_BUF_USED, \ + (value)) +# define SSL_get_stream_write_buf_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_STREAM_WRITE_BUF_AVAIL, \ + (value)) + +# define SSL_POLL_EVENT_NONE 0 + +# define SSL_POLL_EVENT_F (1U << 0) /* F (Failure) */ +# define SSL_POLL_EVENT_EL (1U << 1) /* EL (Exception on Listener) */ +# define SSL_POLL_EVENT_EC (1U << 2) /* EC (Exception on Conn) */ +# define SSL_POLL_EVENT_ECD (1U << 3) /* ECD (Exception on Conn Drained) */ +# define SSL_POLL_EVENT_ER (1U << 4) /* ER (Exception on Read) */ +# define SSL_POLL_EVENT_EW (1U << 5) /* EW (Exception on Write) */ +# define SSL_POLL_EVENT_R (1U << 6) /* R (Readable) */ +# define SSL_POLL_EVENT_W (1U << 7) /* W (Writable) */ +# define SSL_POLL_EVENT_IC (1U << 8) /* IC (Incoming Connection) */ +# define SSL_POLL_EVENT_ISB (1U << 9) /* ISB (Incoming Stream: Bidi) */ +# define SSL_POLL_EVENT_ISU (1U << 10) /* ISU (Incoming Stream: Uni) */ +# define SSL_POLL_EVENT_OSB (1U << 11) /* OSB (Outgoing Stream: Bidi) */ +# define SSL_POLL_EVENT_OSU (1U << 12) /* OSU (Outgoing Stream: Uni) */ + +# define SSL_POLL_EVENT_RW (SSL_POLL_EVENT_R | SSL_POLL_EVENT_W) +# define SSL_POLL_EVENT_RE (SSL_POLL_EVENT_R | SSL_POLL_EVENT_ER) +# define SSL_POLL_EVENT_WE (SSL_POLL_EVENT_W | SSL_POLL_EVENT_EW) +# define SSL_POLL_EVENT_RWE (SSL_POLL_EVENT_RE | SSL_POLL_EVENT_WE) +# define SSL_POLL_EVENT_E (SSL_POLL_EVENT_EL | SSL_POLL_EVENT_EC \ + | SSL_POLL_EVENT_ER | SSL_POLL_EVENT_EW) +# define SSL_POLL_EVENT_IS (SSL_POLL_EVENT_ISB | SSL_POLL_EVENT_ISU) +# define SSL_POLL_EVENT_ISE (SSL_POLL_EVENT_IS | SSL_POLL_EVENT_EC) +# define SSL_POLL_EVENT_I (SSL_POLL_EVENT_IS | SSL_POLL_EVENT_IC) +# define SSL_POLL_EVENT_OS (SSL_POLL_EVENT_OSB | SSL_POLL_EVENT_OSU) +# define SSL_POLL_EVENT_OSE (SSL_POLL_EVENT_OS | SSL_POLL_EVENT_EC) + +typedef struct ssl_poll_item_st { + BIO_POLL_DESCRIPTOR desc; + uint64_t events, revents; +} SSL_POLL_ITEM; + +# define SSL_POLL_FLAG_NO_HANDLE_EVENTS (1U << 0) + +__owur int SSL_poll(SSL_POLL_ITEM *items, + size_t num_items, + size_t stride, + const struct timeval *timeout, + uint64_t flags, + size_t *result_count); + +static ossl_inline ossl_unused BIO_POLL_DESCRIPTOR +SSL_as_poll_descriptor(SSL *s) +{ + BIO_POLL_DESCRIPTOR d; + + d.type = BIO_POLL_DESCRIPTOR_TYPE_SSL; + d.value.ssl = s; + return d; +} + # ifndef OPENSSL_NO_DEPRECATED_1_1_0 # define SSL_cache_hit(s) SSL_session_reused(s) # endif @@ -2593,6 +2882,51 @@ void SSL_set_allow_early_data_cb(SSL *s, const char *OSSL_default_cipher_list(void); const char *OSSL_default_ciphersuites(void); +/* RFC8879 Certificate compression APIs */ + +int SSL_CTX_compress_certs(SSL_CTX *ctx, int alg); +int SSL_compress_certs(SSL *ssl, int alg); + +int SSL_CTX_set1_cert_comp_preference(SSL_CTX *ctx, int *algs, size_t len); +int SSL_set1_cert_comp_preference(SSL *ssl, int *algs, size_t len); + +int SSL_CTX_set1_compressed_cert(SSL_CTX *ctx, int algorithm, unsigned char *comp_data, + size_t comp_length, size_t orig_length); +int SSL_set1_compressed_cert(SSL *ssl, int algorithm, unsigned char *comp_data, + size_t comp_length, size_t orig_length); +size_t SSL_CTX_get1_compressed_cert(SSL_CTX *ctx, int alg, unsigned char **data, size_t *orig_len); +size_t SSL_get1_compressed_cert(SSL *ssl, int alg, unsigned char **data, size_t *orig_len); + +__owur int SSL_add_expected_rpk(SSL *s, EVP_PKEY *rpk); +__owur EVP_PKEY *SSL_get0_peer_rpk(const SSL *s); +__owur EVP_PKEY *SSL_SESSION_get0_peer_rpk(SSL_SESSION *s); +__owur int SSL_get_negotiated_client_cert_type(const SSL *s); +__owur int SSL_get_negotiated_server_cert_type(const SSL *s); + +__owur int SSL_set1_client_cert_type(SSL *s, const unsigned char *val, size_t len); +__owur int SSL_set1_server_cert_type(SSL *s, const unsigned char *val, size_t len); +__owur int SSL_CTX_set1_client_cert_type(SSL_CTX *ctx, const unsigned char *val, size_t len); +__owur int SSL_CTX_set1_server_cert_type(SSL_CTX *ctx, const unsigned char *val, size_t len); +__owur int SSL_get0_client_cert_type(const SSL *s, unsigned char **t, size_t *len); +__owur int SSL_get0_server_cert_type(const SSL *s, unsigned char **t, size_t *len); +__owur int SSL_CTX_get0_client_cert_type(const SSL_CTX *ctx, unsigned char **t, size_t *len); +__owur int SSL_CTX_get0_server_cert_type(const SSL_CTX *s, unsigned char **t, size_t *len); + +/* + * Protection level. For <= TLSv1.2 only "NONE" and "APPLICATION" are used. + */ +# define OSSL_RECORD_PROTECTION_LEVEL_NONE 0 +# define OSSL_RECORD_PROTECTION_LEVEL_EARLY 1 +# define OSSL_RECORD_PROTECTION_LEVEL_HANDSHAKE 2 +# define OSSL_RECORD_PROTECTION_LEVEL_APPLICATION 3 + +int SSL_set_quic_tls_cbs(SSL *s, const OSSL_DISPATCH *qtdis, void *arg); +int SSL_set_quic_tls_transport_params(SSL *s, + const unsigned char *params, + size_t params_len); + +int SSL_set_quic_tls_early_data_enabled(SSL *s, int enabled); + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/darwin-i386-cc/no-asm/include/openssl/x509.h b/deps/openssl/config/archs/darwin-i386-cc/no-asm/include/openssl/x509.h index 1f7755e5b69c75..d013458c226461 100644 --- a/deps/openssl/config/archs/darwin-i386-cc/no-asm/include/openssl/x509.h +++ b/deps/openssl/config/archs/darwin-i386-cc/no-asm/include/openssl/x509.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/x509.h.in * - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2024 The OpenSSL Project Authors. All Rights Reserved. * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved * * Licensed under the Apache License 2.0 (the "License"). You may not use @@ -40,6 +40,9 @@ # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -162,16 +165,24 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_CRL, X509_CRL, X509_CRL) # define X509_FILETYPE_ASN1 2 # define X509_FILETYPE_DEFAULT 3 -# define X509v3_KU_DIGITAL_SIGNATURE 0x0080 -# define X509v3_KU_NON_REPUDIATION 0x0040 -# define X509v3_KU_KEY_ENCIPHERMENT 0x0020 -# define X509v3_KU_DATA_ENCIPHERMENT 0x0010 -# define X509v3_KU_KEY_AGREEMENT 0x0008 -# define X509v3_KU_KEY_CERT_SIGN 0x0004 -# define X509v3_KU_CRL_SIGN 0x0002 -# define X509v3_KU_ENCIPHER_ONLY 0x0001 -# define X509v3_KU_DECIPHER_ONLY 0x8000 -# define X509v3_KU_UNDEF 0xffff +/*- + * : + * The KeyUsage BITSTRING is treated as a little-endian integer, hence bit `0` + * is 0x80, while bit `7` is 0x01 (the LSB of the integer value), bit `8` is + * then the MSB of the second octet, or 0x8000. + */ +# define X509v3_KU_DIGITAL_SIGNATURE 0x0080 /* (0) */ +# define X509v3_KU_NON_REPUDIATION 0x0040 /* (1) */ +# define X509v3_KU_KEY_ENCIPHERMENT 0x0020 /* (2) */ +# define X509v3_KU_DATA_ENCIPHERMENT 0x0010 /* (3) */ +# define X509v3_KU_KEY_AGREEMENT 0x0008 /* (4) */ +# define X509v3_KU_KEY_CERT_SIGN 0x0004 /* (5) */ +# define X509v3_KU_CRL_SIGN 0x0002 /* (6) */ +# define X509v3_KU_ENCIPHER_ONLY 0x0001 /* (7) */ +# define X509v3_KU_DECIPHER_ONLY 0x8000 /* (8) */ +# ifndef OPENSSL_NO_DEPRECATED_3_4 +# define X509v3_KU_UNDEF 0xffff /* vestigial, not used */ +# endif struct X509_algor_st { ASN1_OBJECT *algorithm; @@ -462,7 +473,12 @@ typedef struct PBKDF2PARAM_st { X509_ALGOR *prf; } PBKDF2PARAM; -#ifndef OPENSSL_NO_SCRYPT +typedef struct { + X509_ALGOR *keyDerivationFunc; + X509_ALGOR *messageAuthScheme; +} PBMAC1PARAM; + +# ifndef OPENSSL_NO_SCRYPT typedef struct SCRYPT_PARAMS_st { ASN1_OCTET_STRING *salt; ASN1_INTEGER *costParameter; @@ -470,7 +486,7 @@ typedef struct SCRYPT_PARAMS_st { ASN1_INTEGER *parallelizationParameter; ASN1_INTEGER *keyLength; } SCRYPT_PARAMS; -#endif +# endif #ifdef __cplusplus } @@ -603,6 +619,8 @@ EVP_PKEY *d2i_PrivateKey_ex_fp(FILE *fp, EVP_PKEY **a, OSSL_LIB_CTX *libctx, const char *propq); EVP_PKEY *d2i_PrivateKey_fp(FILE *fp, EVP_PKEY **a); int i2d_PUBKEY_fp(FILE *fp, const EVP_PKEY *pkey); +EVP_PKEY *d2i_PUBKEY_ex_fp(FILE *fp, EVP_PKEY **a, OSSL_LIB_CTX *libctx, + const char *propq); EVP_PKEY *d2i_PUBKEY_fp(FILE *fp, EVP_PKEY **a); # endif @@ -651,6 +669,8 @@ EVP_PKEY *d2i_PrivateKey_ex_bio(BIO *bp, EVP_PKEY **a, OSSL_LIB_CTX *libctx, const char *propq); EVP_PKEY *d2i_PrivateKey_bio(BIO *bp, EVP_PKEY **a); int i2d_PUBKEY_bio(BIO *bp, const EVP_PKEY *pkey); +EVP_PKEY *d2i_PUBKEY_ex_bio(BIO *bp, EVP_PKEY **a, OSSL_LIB_CTX *libctx, + const char *propq); EVP_PKEY *d2i_PUBKEY_bio(BIO *bp, EVP_PKEY **a); DECLARE_ASN1_DUP_FUNCTION(X509) @@ -884,12 +904,12 @@ int X509_REQ_get_signature_nid(const X509_REQ *req); int i2d_re_X509_REQ_tbs(X509_REQ *req, unsigned char **pp); int X509_REQ_set_pubkey(X509_REQ *x, EVP_PKEY *pkey); EVP_PKEY *X509_REQ_get_pubkey(X509_REQ *req); -EVP_PKEY *X509_REQ_get0_pubkey(X509_REQ *req); +EVP_PKEY *X509_REQ_get0_pubkey(const X509_REQ *req); X509_PUBKEY *X509_REQ_get_X509_PUBKEY(X509_REQ *req); int X509_REQ_extension_nid(int nid); int *X509_REQ_get_extension_nids(void); void X509_REQ_set_extension_nids(int *nids); -STACK_OF(X509_EXTENSION) *X509_REQ_get_extensions(X509_REQ *req); +STACK_OF(X509_EXTENSION) *X509_REQ_get_extensions(OSSL_FUTURE_CONST X509_REQ *req); int X509_REQ_add_extensions_nid(X509_REQ *req, const STACK_OF(X509_EXTENSION) *exts, int nid); int X509_REQ_add_extensions(X509_REQ *req, const STACK_OF(X509_EXTENSION) *ext); @@ -950,13 +970,14 @@ X509_REVOKED_get0_extensions(const X509_REVOKED *r); X509_CRL *X509_CRL_diff(X509_CRL *base, X509_CRL *newer, EVP_PKEY *skey, const EVP_MD *md, unsigned int flags); -int X509_REQ_check_private_key(X509_REQ *x509, EVP_PKEY *pkey); +int X509_REQ_check_private_key(const X509_REQ *req, EVP_PKEY *pkey); -int X509_check_private_key(const X509 *x509, const EVP_PKEY *pkey); +int X509_check_private_key(const X509 *cert, const EVP_PKEY *pkey); int X509_chain_check_suiteb(int *perror_depth, X509 *x, STACK_OF(X509) *chain, unsigned long flags); int X509_CRL_check_suiteb(X509_CRL *crl, EVP_PKEY *pk, unsigned long flags); +void OSSL_STACK_OF_X509_free(STACK_OF(X509) *certs); STACK_OF(X509) *X509_chain_up_ref(STACK_OF(X509) *chain); int X509_issuer_and_serial_cmp(const X509 *a, const X509 *b); @@ -1077,6 +1098,8 @@ X509_EXTENSION *X509v3_get_ext(const STACK_OF(X509_EXTENSION) *x, int loc); X509_EXTENSION *X509v3_delete_ext(STACK_OF(X509_EXTENSION) *x, int loc); STACK_OF(X509_EXTENSION) *X509v3_add_ext(STACK_OF(X509_EXTENSION) **x, X509_EXTENSION *ex, int loc); +STACK_OF(X509_EXTENSION) *X509v3_add_extensions(STACK_OF(X509_EXTENSION) **target, + const STACK_OF(X509_EXTENSION) *exts); int X509_get_ext_count(const X509 *x); int X509_get_ext_by_NID(const X509 *x, int nid, int lastpos); @@ -1198,9 +1221,10 @@ X509 *X509_find_by_subject(STACK_OF(X509) *sk, const X509_NAME *name); DECLARE_ASN1_FUNCTIONS(PBEPARAM) DECLARE_ASN1_FUNCTIONS(PBE2PARAM) DECLARE_ASN1_FUNCTIONS(PBKDF2PARAM) -#ifndef OPENSSL_NO_SCRYPT +DECLARE_ASN1_FUNCTIONS(PBMAC1PARAM) +# ifndef OPENSSL_NO_SCRYPT DECLARE_ASN1_FUNCTIONS(SCRYPT_PARAMS) -#endif +# endif int PKCS5_pbe_set0_algor(X509_ALGOR *algor, int alg, int iter, const unsigned char *salt, int saltlen); @@ -1237,6 +1261,7 @@ X509_ALGOR *PKCS5_pbkdf2_set_ex(int iter, unsigned char *salt, int saltlen, int prf_nid, int keylen, OSSL_LIB_CTX *libctx); +PBKDF2PARAM *PBMAC1_get1_pbkdf2_param(const X509_ALGOR *macalg); /* PKCS#8 utilities */ DECLARE_ASN1_FUNCTIONS(PKCS8_PRIV_KEY_INFO) @@ -1262,6 +1287,8 @@ int PKCS8_pkey_add1_attr_by_OBJ(PKCS8_PRIV_KEY_INFO *p8, const ASN1_OBJECT *obj, int type, const unsigned char *bytes, int len); +void X509_PUBKEY_set0_public_key(X509_PUBKEY *pub, + unsigned char *penc, int penclen); int X509_PUBKEY_set0_param(X509_PUBKEY *pub, ASN1_OBJECT *aobj, int ptype, void *pval, unsigned char *penc, int penclen); diff --git a/deps/openssl/config/archs/darwin-i386-cc/no-asm/include/openssl/x509_acert.h b/deps/openssl/config/archs/darwin-i386-cc/no-asm/include/openssl/x509_acert.h new file mode 100644 index 00000000000000..9dde625677f9a9 --- /dev/null +++ b/deps/openssl/config/archs/darwin-i386-cc/no-asm/include/openssl/x509_acert.h @@ -0,0 +1,294 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from include/openssl/x509_acert.h.in + * + * Copyright 2022-2024 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + + +#ifndef OPENSSL_X509_ACERT_H +# define OPENSSL_X509_ACERT_H +# pragma once + +# include +# include +# include + +typedef struct X509_acert_st X509_ACERT; +typedef struct X509_acert_info_st X509_ACERT_INFO; +typedef struct ossl_object_digest_info_st OSSL_OBJECT_DIGEST_INFO; +typedef struct ossl_issuer_serial_st OSSL_ISSUER_SERIAL; +typedef struct X509_acert_issuer_v2form_st X509_ACERT_ISSUER_V2FORM; + +DECLARE_ASN1_FUNCTIONS(X509_ACERT) +DECLARE_ASN1_DUP_FUNCTION(X509_ACERT) +DECLARE_ASN1_ITEM(X509_ACERT_INFO) +DECLARE_ASN1_ALLOC_FUNCTIONS(X509_ACERT_INFO) +DECLARE_ASN1_ALLOC_FUNCTIONS(OSSL_OBJECT_DIGEST_INFO) +DECLARE_ASN1_ALLOC_FUNCTIONS(OSSL_ISSUER_SERIAL) +DECLARE_ASN1_ALLOC_FUNCTIONS(X509_ACERT_ISSUER_V2FORM) + +# ifndef OPENSSL_NO_STDIO +X509_ACERT *d2i_X509_ACERT_fp(FILE *fp, X509_ACERT **acert); +int i2d_X509_ACERT_fp(FILE *fp, const X509_ACERT *acert); +# endif + +DECLARE_PEM_rw(X509_ACERT, X509_ACERT) + +X509_ACERT *d2i_X509_ACERT_bio(BIO *bp, X509_ACERT **acert); +int i2d_X509_ACERT_bio(BIO *bp, const X509_ACERT *acert); + +int X509_ACERT_sign(X509_ACERT *x, EVP_PKEY *pkey, const EVP_MD *md); +int X509_ACERT_sign_ctx(X509_ACERT *x, EVP_MD_CTX *ctx); +int X509_ACERT_verify(X509_ACERT *a, EVP_PKEY *r); + +# define X509_ACERT_VERSION_2 1 + +const GENERAL_NAMES *X509_ACERT_get0_holder_entityName(const X509_ACERT *x); +const OSSL_ISSUER_SERIAL *X509_ACERT_get0_holder_baseCertId(const X509_ACERT *x); +const OSSL_OBJECT_DIGEST_INFO * X509_ACERT_get0_holder_digest(const X509_ACERT *x); +const X509_NAME *X509_ACERT_get0_issuerName(const X509_ACERT *x); +long X509_ACERT_get_version(const X509_ACERT *x); +void X509_ACERT_get0_signature(const X509_ACERT *x, + const ASN1_BIT_STRING **psig, + const X509_ALGOR **palg); +int X509_ACERT_get_signature_nid(const X509_ACERT *x); +const X509_ALGOR *X509_ACERT_get0_info_sigalg(const X509_ACERT *x); +const ASN1_INTEGER *X509_ACERT_get0_serialNumber(const X509_ACERT *x); +const ASN1_TIME *X509_ACERT_get0_notBefore(const X509_ACERT *x); +const ASN1_TIME *X509_ACERT_get0_notAfter(const X509_ACERT *x); +const ASN1_BIT_STRING *X509_ACERT_get0_issuerUID(const X509_ACERT *x); + +int X509_ACERT_print(BIO *bp, X509_ACERT *x); +int X509_ACERT_print_ex(BIO *bp, X509_ACERT *x, unsigned long nmflags, + unsigned long cflag); + +int X509_ACERT_get_attr_count(const X509_ACERT *x); +int X509_ACERT_get_attr_by_NID(const X509_ACERT *x, int nid, int lastpos); +int X509_ACERT_get_attr_by_OBJ(const X509_ACERT *x, const ASN1_OBJECT *obj, + int lastpos); +X509_ATTRIBUTE *X509_ACERT_get_attr(const X509_ACERT *x, int loc); +X509_ATTRIBUTE *X509_ACERT_delete_attr(X509_ACERT *x, int loc); + +void *X509_ACERT_get_ext_d2i(const X509_ACERT *x, int nid, int *crit, int *idx); +int X509_ACERT_add1_ext_i2d(X509_ACERT *x, int nid, void *value, int crit, + unsigned long flags); +const STACK_OF(X509_EXTENSION) *X509_ACERT_get0_extensions(const X509_ACERT *x); + +# define OSSL_OBJECT_DIGEST_INFO_PUBLIC_KEY 0 +# define OSSL_OBJECT_DIGEST_INFO_PUBLIC_KEY_CERT 1 +# define OSSL_OBJECT_DIGEST_INFO_OTHER 2 /* must not be used in RFC 5755 profile */ +int X509_ACERT_set_version(X509_ACERT *x, long version); +void X509_ACERT_set0_holder_entityName(X509_ACERT *x, GENERAL_NAMES *name); +void X509_ACERT_set0_holder_baseCertId(X509_ACERT *x, OSSL_ISSUER_SERIAL *isss); +void X509_ACERT_set0_holder_digest(X509_ACERT *x, + OSSL_OBJECT_DIGEST_INFO *dinfo); + +int X509_ACERT_add1_attr(X509_ACERT *x, X509_ATTRIBUTE *attr); +int X509_ACERT_add1_attr_by_OBJ(X509_ACERT *x, const ASN1_OBJECT *obj, + int type, const void *bytes, int len); +int X509_ACERT_add1_attr_by_NID(X509_ACERT *x, int nid, int type, + const void *bytes, int len); +int X509_ACERT_add1_attr_by_txt(X509_ACERT *x, const char *attrname, int type, + const unsigned char *bytes, int len); +int X509_ACERT_add_attr_nconf(CONF *conf, const char *section, + X509_ACERT *acert); + +int X509_ACERT_set1_issuerName(X509_ACERT *x, const X509_NAME *name); +int X509_ACERT_set1_serialNumber(X509_ACERT *x, const ASN1_INTEGER *serial); +int X509_ACERT_set1_notBefore(X509_ACERT *x, const ASN1_GENERALIZEDTIME *time); +int X509_ACERT_set1_notAfter(X509_ACERT *x, const ASN1_GENERALIZEDTIME *time); + +void OSSL_OBJECT_DIGEST_INFO_get0_digest(const OSSL_OBJECT_DIGEST_INFO *o, + int *digestedObjectType, + const X509_ALGOR **digestAlgorithm, + const ASN1_BIT_STRING **digest); + +int OSSL_OBJECT_DIGEST_INFO_set1_digest(OSSL_OBJECT_DIGEST_INFO *o, + int digestedObjectType, + X509_ALGOR *digestAlgorithm, + ASN1_BIT_STRING *digest); + +const X509_NAME *OSSL_ISSUER_SERIAL_get0_issuer(const OSSL_ISSUER_SERIAL *isss); +const ASN1_INTEGER *OSSL_ISSUER_SERIAL_get0_serial(const OSSL_ISSUER_SERIAL *isss); +const ASN1_BIT_STRING *OSSL_ISSUER_SERIAL_get0_issuerUID(const OSSL_ISSUER_SERIAL *isss); + +int OSSL_ISSUER_SERIAL_set1_issuer(OSSL_ISSUER_SERIAL *isss, + const X509_NAME *issuer); +int OSSL_ISSUER_SERIAL_set1_serial(OSSL_ISSUER_SERIAL *isss, + const ASN1_INTEGER *serial); +int OSSL_ISSUER_SERIAL_set1_issuerUID(OSSL_ISSUER_SERIAL *isss, + const ASN1_BIT_STRING *uid); + +# define OSSL_IETFAS_OCTETS 0 +# define OSSL_IETFAS_OID 1 +# define OSSL_IETFAS_STRING 2 + +typedef struct OSSL_IETF_ATTR_SYNTAX_VALUE_st OSSL_IETF_ATTR_SYNTAX_VALUE; +typedef struct OSSL_IETF_ATTR_SYNTAX_st OSSL_IETF_ATTR_SYNTAX; +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_IETF_ATTR_SYNTAX_VALUE, OSSL_IETF_ATTR_SYNTAX_VALUE, OSSL_IETF_ATTR_SYNTAX_VALUE) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_value(sk, idx) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_value(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), (idx))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_new(cmp) ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_new(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_compfunc_type(cmp))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_new_null() ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_new_null()) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_new_reserve(cmp, n) ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_compfunc_type(cmp), (n))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), (n)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_free(sk) OPENSSL_sk_free(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_delete(sk, i) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_delete(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), (i))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_delete_ptr(sk, ptr) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_pop(sk) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_pop(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_shift(sk) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_shift(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk),ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_freefunc_type(freefunc)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr), (idx)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_set(sk, idx, ptr) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_set(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), (idx), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr), pnum) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_dup(sk) ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_dup(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_copyfunc_type(copyfunc), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_freefunc_type(freefunc))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_set_cmp_func(sk, cmp) ((sk_OSSL_IETF_ATTR_SYNTAX_VALUE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_compfunc_type(cmp))) + + +DECLARE_ASN1_ITEM(OSSL_IETF_ATTR_SYNTAX_VALUE) +DECLARE_ASN1_ALLOC_FUNCTIONS(OSSL_IETF_ATTR_SYNTAX_VALUE) +DECLARE_ASN1_FUNCTIONS(OSSL_IETF_ATTR_SYNTAX) + +const GENERAL_NAMES * +OSSL_IETF_ATTR_SYNTAX_get0_policyAuthority(const OSSL_IETF_ATTR_SYNTAX *a); +void OSSL_IETF_ATTR_SYNTAX_set0_policyAuthority(OSSL_IETF_ATTR_SYNTAX *a, + GENERAL_NAMES *names); + +int OSSL_IETF_ATTR_SYNTAX_get_value_num(const OSSL_IETF_ATTR_SYNTAX *a); +void *OSSL_IETF_ATTR_SYNTAX_get0_value(const OSSL_IETF_ATTR_SYNTAX *a, + int ind, int *type); +int OSSL_IETF_ATTR_SYNTAX_add1_value(OSSL_IETF_ATTR_SYNTAX *a, int type, + void *data); +int OSSL_IETF_ATTR_SYNTAX_print(BIO *bp, OSSL_IETF_ATTR_SYNTAX *a, int indent); + +struct TARGET_CERT_st { + OSSL_ISSUER_SERIAL *targetCertificate; + GENERAL_NAME *targetName; + OSSL_OBJECT_DIGEST_INFO *certDigestInfo; +}; + +typedef struct TARGET_CERT_st OSSL_TARGET_CERT; + +# define OSSL_TGT_TARGET_NAME 0 +# define OSSL_TGT_TARGET_GROUP 1 +# define OSSL_TGT_TARGET_CERT 2 + +typedef struct TARGET_st { + int type; + union { + GENERAL_NAME *targetName; + GENERAL_NAME *targetGroup; + OSSL_TARGET_CERT *targetCert; + } choice; +} OSSL_TARGET; + +typedef STACK_OF(OSSL_TARGET) OSSL_TARGETS; +typedef STACK_OF(OSSL_TARGETS) OSSL_TARGETING_INFORMATION; + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_TARGET, OSSL_TARGET, OSSL_TARGET) +#define sk_OSSL_TARGET_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_value(sk, idx) ((OSSL_TARGET *)OPENSSL_sk_value(ossl_check_const_OSSL_TARGET_sk_type(sk), (idx))) +#define sk_OSSL_TARGET_new(cmp) ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_new(ossl_check_OSSL_TARGET_compfunc_type(cmp))) +#define sk_OSSL_TARGET_new_null() ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_new_null()) +#define sk_OSSL_TARGET_new_reserve(cmp, n) ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_TARGET_compfunc_type(cmp), (n))) +#define sk_OSSL_TARGET_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_TARGET_sk_type(sk), (n)) +#define sk_OSSL_TARGET_free(sk) OPENSSL_sk_free(ossl_check_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_delete(sk, i) ((OSSL_TARGET *)OPENSSL_sk_delete(ossl_check_OSSL_TARGET_sk_type(sk), (i))) +#define sk_OSSL_TARGET_delete_ptr(sk, ptr) ((OSSL_TARGET *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr))) +#define sk_OSSL_TARGET_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr)) +#define sk_OSSL_TARGET_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr)) +#define sk_OSSL_TARGET_pop(sk) ((OSSL_TARGET *)OPENSSL_sk_pop(ossl_check_OSSL_TARGET_sk_type(sk))) +#define sk_OSSL_TARGET_shift(sk) ((OSSL_TARGET *)OPENSSL_sk_shift(ossl_check_OSSL_TARGET_sk_type(sk))) +#define sk_OSSL_TARGET_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_TARGET_sk_type(sk),ossl_check_OSSL_TARGET_freefunc_type(freefunc)) +#define sk_OSSL_TARGET_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr), (idx)) +#define sk_OSSL_TARGET_set(sk, idx, ptr) ((OSSL_TARGET *)OPENSSL_sk_set(ossl_check_OSSL_TARGET_sk_type(sk), (idx), ossl_check_OSSL_TARGET_type(ptr))) +#define sk_OSSL_TARGET_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr)) +#define sk_OSSL_TARGET_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr)) +#define sk_OSSL_TARGET_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr), pnum) +#define sk_OSSL_TARGET_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_dup(sk) ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_dup(ossl_check_const_OSSL_TARGET_sk_type(sk))) +#define sk_OSSL_TARGET_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_copyfunc_type(copyfunc), ossl_check_OSSL_TARGET_freefunc_type(freefunc))) +#define sk_OSSL_TARGET_set_cmp_func(sk, cmp) ((sk_OSSL_TARGET_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_compfunc_type(cmp))) + + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_TARGETS, OSSL_TARGETS, OSSL_TARGETS) +#define sk_OSSL_TARGETS_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_value(sk, idx) ((OSSL_TARGETS *)OPENSSL_sk_value(ossl_check_const_OSSL_TARGETS_sk_type(sk), (idx))) +#define sk_OSSL_TARGETS_new(cmp) ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_new(ossl_check_OSSL_TARGETS_compfunc_type(cmp))) +#define sk_OSSL_TARGETS_new_null() ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_new_null()) +#define sk_OSSL_TARGETS_new_reserve(cmp, n) ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_TARGETS_compfunc_type(cmp), (n))) +#define sk_OSSL_TARGETS_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_TARGETS_sk_type(sk), (n)) +#define sk_OSSL_TARGETS_free(sk) OPENSSL_sk_free(ossl_check_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_delete(sk, i) ((OSSL_TARGETS *)OPENSSL_sk_delete(ossl_check_OSSL_TARGETS_sk_type(sk), (i))) +#define sk_OSSL_TARGETS_delete_ptr(sk, ptr) ((OSSL_TARGETS *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr))) +#define sk_OSSL_TARGETS_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr)) +#define sk_OSSL_TARGETS_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr)) +#define sk_OSSL_TARGETS_pop(sk) ((OSSL_TARGETS *)OPENSSL_sk_pop(ossl_check_OSSL_TARGETS_sk_type(sk))) +#define sk_OSSL_TARGETS_shift(sk) ((OSSL_TARGETS *)OPENSSL_sk_shift(ossl_check_OSSL_TARGETS_sk_type(sk))) +#define sk_OSSL_TARGETS_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_TARGETS_sk_type(sk),ossl_check_OSSL_TARGETS_freefunc_type(freefunc)) +#define sk_OSSL_TARGETS_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr), (idx)) +#define sk_OSSL_TARGETS_set(sk, idx, ptr) ((OSSL_TARGETS *)OPENSSL_sk_set(ossl_check_OSSL_TARGETS_sk_type(sk), (idx), ossl_check_OSSL_TARGETS_type(ptr))) +#define sk_OSSL_TARGETS_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr)) +#define sk_OSSL_TARGETS_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr)) +#define sk_OSSL_TARGETS_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr), pnum) +#define sk_OSSL_TARGETS_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_dup(sk) ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_dup(ossl_check_const_OSSL_TARGETS_sk_type(sk))) +#define sk_OSSL_TARGETS_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_copyfunc_type(copyfunc), ossl_check_OSSL_TARGETS_freefunc_type(freefunc))) +#define sk_OSSL_TARGETS_set_cmp_func(sk, cmp) ((sk_OSSL_TARGETS_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_compfunc_type(cmp))) + + +DECLARE_ASN1_FUNCTIONS(OSSL_TARGET) +DECLARE_ASN1_FUNCTIONS(OSSL_TARGETS) +DECLARE_ASN1_FUNCTIONS(OSSL_TARGETING_INFORMATION) + +typedef STACK_OF(OSSL_ISSUER_SERIAL) OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX; +DECLARE_ASN1_FUNCTIONS(OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ISSUER_SERIAL, OSSL_ISSUER_SERIAL, OSSL_ISSUER_SERIAL) +#define sk_OSSL_ISSUER_SERIAL_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_value(sk, idx) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_value(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk), (idx))) +#define sk_OSSL_ISSUER_SERIAL_new(cmp) ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_new(ossl_check_OSSL_ISSUER_SERIAL_compfunc_type(cmp))) +#define sk_OSSL_ISSUER_SERIAL_new_null() ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ISSUER_SERIAL_new_reserve(cmp, n) ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ISSUER_SERIAL_compfunc_type(cmp), (n))) +#define sk_OSSL_ISSUER_SERIAL_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), (n)) +#define sk_OSSL_ISSUER_SERIAL_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_delete(sk, i) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_delete(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), (i))) +#define sk_OSSL_ISSUER_SERIAL_delete_ptr(sk, ptr) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr))) +#define sk_OSSL_ISSUER_SERIAL_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr)) +#define sk_OSSL_ISSUER_SERIAL_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr)) +#define sk_OSSL_ISSUER_SERIAL_pop(sk) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_pop(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk))) +#define sk_OSSL_ISSUER_SERIAL_shift(sk) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_shift(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk))) +#define sk_OSSL_ISSUER_SERIAL_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk),ossl_check_OSSL_ISSUER_SERIAL_freefunc_type(freefunc)) +#define sk_OSSL_ISSUER_SERIAL_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr), (idx)) +#define sk_OSSL_ISSUER_SERIAL_set(sk, idx, ptr) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_set(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), (idx), ossl_check_OSSL_ISSUER_SERIAL_type(ptr))) +#define sk_OSSL_ISSUER_SERIAL_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr)) +#define sk_OSSL_ISSUER_SERIAL_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr)) +#define sk_OSSL_ISSUER_SERIAL_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr), pnum) +#define sk_OSSL_ISSUER_SERIAL_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_dup(sk) ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk))) +#define sk_OSSL_ISSUER_SERIAL_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_copyfunc_type(copyfunc), ossl_check_OSSL_ISSUER_SERIAL_freefunc_type(freefunc))) +#define sk_OSSL_ISSUER_SERIAL_set_cmp_func(sk, cmp) ((sk_OSSL_ISSUER_SERIAL_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_compfunc_type(cmp))) + + +#endif diff --git a/deps/openssl/config/archs/darwin-i386-cc/no-asm/include/openssl/x509_vfy.h b/deps/openssl/config/archs/darwin-i386-cc/no-asm/include/openssl/x509_vfy.h index 29b0e147adcab1..c9bdc3b39d685d 100644 --- a/deps/openssl/config/archs/darwin-i386-cc/no-asm/include/openssl/x509_vfy.h +++ b/deps/openssl/config/archs/darwin-i386-cc/no-asm/include/openssl/x509_vfy.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/x509_vfy.h.in * - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -411,6 +411,7 @@ X509_LOOKUP_ctrl_ex((x), X509_L_ADD_STORE, (name), 0, NULL, \ # define X509_V_ERR_CA_CERT_MISSING_KEY_USAGE 92 # define X509_V_ERR_EXTENSIONS_REQUIRE_VERSION_3 93 # define X509_V_ERR_EC_KEY_EXPLICIT_PARAMS 94 +# define X509_V_ERR_RPK_UNTRUSTED 95 /* Certificate verify flags */ # ifndef OPENSSL_NO_DEPRECATED_1_1_0 @@ -491,71 +492,72 @@ int X509_OBJECT_set1_X509(X509_OBJECT *a, X509 *obj); X509_CRL *X509_OBJECT_get0_X509_CRL(const X509_OBJECT *a); int X509_OBJECT_set1_X509_CRL(X509_OBJECT *a, X509_CRL *obj); X509_STORE *X509_STORE_new(void); -void X509_STORE_free(X509_STORE *v); -int X509_STORE_lock(X509_STORE *ctx); -int X509_STORE_unlock(X509_STORE *ctx); -int X509_STORE_up_ref(X509_STORE *v); -STACK_OF(X509_OBJECT) *X509_STORE_get0_objects(const X509_STORE *v); -STACK_OF(X509) *X509_STORE_get1_all_certs(X509_STORE *st); -STACK_OF(X509) *X509_STORE_CTX_get1_certs(X509_STORE_CTX *st, +void X509_STORE_free(X509_STORE *xs); +int X509_STORE_lock(X509_STORE *xs); +int X509_STORE_unlock(X509_STORE *xs); +int X509_STORE_up_ref(X509_STORE *xs); +STACK_OF(X509_OBJECT) *X509_STORE_get0_objects(const X509_STORE *xs); +STACK_OF(X509_OBJECT) *X509_STORE_get1_objects(X509_STORE *xs); +STACK_OF(X509) *X509_STORE_get1_all_certs(X509_STORE *xs); +STACK_OF(X509) *X509_STORE_CTX_get1_certs(X509_STORE_CTX *xs, const X509_NAME *nm); STACK_OF(X509_CRL) *X509_STORE_CTX_get1_crls(const X509_STORE_CTX *st, const X509_NAME *nm); -int X509_STORE_set_flags(X509_STORE *ctx, unsigned long flags); -int X509_STORE_set_purpose(X509_STORE *ctx, int purpose); -int X509_STORE_set_trust(X509_STORE *ctx, int trust); -int X509_STORE_set1_param(X509_STORE *ctx, const X509_VERIFY_PARAM *pm); -X509_VERIFY_PARAM *X509_STORE_get0_param(const X509_STORE *ctx); +int X509_STORE_set_flags(X509_STORE *xs, unsigned long flags); +int X509_STORE_set_purpose(X509_STORE *xs, int purpose); +int X509_STORE_set_trust(X509_STORE *xs, int trust); +int X509_STORE_set1_param(X509_STORE *xs, const X509_VERIFY_PARAM *pm); +X509_VERIFY_PARAM *X509_STORE_get0_param(const X509_STORE *xs); -void X509_STORE_set_verify(X509_STORE *ctx, X509_STORE_CTX_verify_fn verify); +void X509_STORE_set_verify(X509_STORE *xs, X509_STORE_CTX_verify_fn verify); #define X509_STORE_set_verify_func(ctx, func) \ X509_STORE_set_verify((ctx),(func)) void X509_STORE_CTX_set_verify(X509_STORE_CTX *ctx, X509_STORE_CTX_verify_fn verify); -X509_STORE_CTX_verify_fn X509_STORE_get_verify(const X509_STORE *ctx); -void X509_STORE_set_verify_cb(X509_STORE *ctx, +X509_STORE_CTX_verify_fn X509_STORE_get_verify(const X509_STORE *xs); +void X509_STORE_set_verify_cb(X509_STORE *xs, X509_STORE_CTX_verify_cb verify_cb); # define X509_STORE_set_verify_cb_func(ctx,func) \ X509_STORE_set_verify_cb((ctx),(func)) -X509_STORE_CTX_verify_cb X509_STORE_get_verify_cb(const X509_STORE *ctx); -void X509_STORE_set_get_issuer(X509_STORE *ctx, +X509_STORE_CTX_verify_cb X509_STORE_get_verify_cb(const X509_STORE *xs); +void X509_STORE_set_get_issuer(X509_STORE *xs, X509_STORE_CTX_get_issuer_fn get_issuer); -X509_STORE_CTX_get_issuer_fn X509_STORE_get_get_issuer(const X509_STORE *ctx); -void X509_STORE_set_check_issued(X509_STORE *ctx, +X509_STORE_CTX_get_issuer_fn X509_STORE_get_get_issuer(const X509_STORE *xs); +void X509_STORE_set_check_issued(X509_STORE *xs, X509_STORE_CTX_check_issued_fn check_issued); -X509_STORE_CTX_check_issued_fn X509_STORE_get_check_issued(const X509_STORE *ctx); -void X509_STORE_set_check_revocation(X509_STORE *ctx, +X509_STORE_CTX_check_issued_fn X509_STORE_get_check_issued(const X509_STORE *s); +void X509_STORE_set_check_revocation(X509_STORE *xs, X509_STORE_CTX_check_revocation_fn check_revocation); X509_STORE_CTX_check_revocation_fn - X509_STORE_get_check_revocation(const X509_STORE *ctx); -void X509_STORE_set_get_crl(X509_STORE *ctx, + X509_STORE_get_check_revocation(const X509_STORE *xs); +void X509_STORE_set_get_crl(X509_STORE *xs, X509_STORE_CTX_get_crl_fn get_crl); -X509_STORE_CTX_get_crl_fn X509_STORE_get_get_crl(const X509_STORE *ctx); -void X509_STORE_set_check_crl(X509_STORE *ctx, +X509_STORE_CTX_get_crl_fn X509_STORE_get_get_crl(const X509_STORE *xs); +void X509_STORE_set_check_crl(X509_STORE *xs, X509_STORE_CTX_check_crl_fn check_crl); -X509_STORE_CTX_check_crl_fn X509_STORE_get_check_crl(const X509_STORE *ctx); -void X509_STORE_set_cert_crl(X509_STORE *ctx, +X509_STORE_CTX_check_crl_fn X509_STORE_get_check_crl(const X509_STORE *xs); +void X509_STORE_set_cert_crl(X509_STORE *xs, X509_STORE_CTX_cert_crl_fn cert_crl); -X509_STORE_CTX_cert_crl_fn X509_STORE_get_cert_crl(const X509_STORE *ctx); -void X509_STORE_set_check_policy(X509_STORE *ctx, +X509_STORE_CTX_cert_crl_fn X509_STORE_get_cert_crl(const X509_STORE *xs); +void X509_STORE_set_check_policy(X509_STORE *xs, X509_STORE_CTX_check_policy_fn check_policy); -X509_STORE_CTX_check_policy_fn X509_STORE_get_check_policy(const X509_STORE *ctx); -void X509_STORE_set_lookup_certs(X509_STORE *ctx, +X509_STORE_CTX_check_policy_fn X509_STORE_get_check_policy(const X509_STORE *s); +void X509_STORE_set_lookup_certs(X509_STORE *xs, X509_STORE_CTX_lookup_certs_fn lookup_certs); -X509_STORE_CTX_lookup_certs_fn X509_STORE_get_lookup_certs(const X509_STORE *ctx); -void X509_STORE_set_lookup_crls(X509_STORE *ctx, +X509_STORE_CTX_lookup_certs_fn X509_STORE_get_lookup_certs(const X509_STORE *s); +void X509_STORE_set_lookup_crls(X509_STORE *xs, X509_STORE_CTX_lookup_crls_fn lookup_crls); #define X509_STORE_set_lookup_crls_cb(ctx, func) \ X509_STORE_set_lookup_crls((ctx), (func)) -X509_STORE_CTX_lookup_crls_fn X509_STORE_get_lookup_crls(const X509_STORE *ctx); -void X509_STORE_set_cleanup(X509_STORE *ctx, +X509_STORE_CTX_lookup_crls_fn X509_STORE_get_lookup_crls(const X509_STORE *xs); +void X509_STORE_set_cleanup(X509_STORE *xs, X509_STORE_CTX_cleanup_fn cleanup); -X509_STORE_CTX_cleanup_fn X509_STORE_get_cleanup(const X509_STORE *ctx); +X509_STORE_CTX_cleanup_fn X509_STORE_get_cleanup(const X509_STORE *xs); #define X509_STORE_get_ex_new_index(l, p, newf, dupf, freef) \ CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_X509_STORE, l, p, newf, dupf, freef) -int X509_STORE_set_ex_data(X509_STORE *ctx, int idx, void *data); -void *X509_STORE_get_ex_data(const X509_STORE *ctx, int idx); +int X509_STORE_set_ex_data(X509_STORE *xs, int idx, void *data); +void *X509_STORE_get_ex_data(const X509_STORE *xs, int idx); X509_STORE_CTX *X509_STORE_CTX_new_ex(OSSL_LIB_CTX *libctx, const char *propq); X509_STORE_CTX *X509_STORE_CTX_new(void); @@ -565,11 +567,14 @@ int X509_STORE_CTX_get1_issuer(X509 **issuer, X509_STORE_CTX *ctx, X509 *x); void X509_STORE_CTX_free(X509_STORE_CTX *ctx); int X509_STORE_CTX_init(X509_STORE_CTX *ctx, X509_STORE *trust_store, X509 *target, STACK_OF(X509) *untrusted); +int X509_STORE_CTX_init_rpk(X509_STORE_CTX *ctx, X509_STORE *trust_store, + EVP_PKEY* rpk); void X509_STORE_CTX_set0_trusted_stack(X509_STORE_CTX *ctx, STACK_OF(X509) *sk); void X509_STORE_CTX_cleanup(X509_STORE_CTX *ctx); X509_STORE *X509_STORE_CTX_get0_store(const X509_STORE_CTX *ctx); X509 *X509_STORE_CTX_get0_cert(const X509_STORE_CTX *ctx); +EVP_PKEY *X509_STORE_CTX_get0_rpk(const X509_STORE_CTX *ctx); STACK_OF(X509)* X509_STORE_CTX_get0_untrusted(const X509_STORE_CTX *ctx); void X509_STORE_CTX_set0_untrusted(X509_STORE_CTX *ctx, STACK_OF(X509) *sk); void X509_STORE_CTX_set_verify_cb(X509_STORE_CTX *ctx, @@ -579,6 +584,8 @@ X509_STORE_CTX_verify_fn X509_STORE_CTX_get_verify(const X509_STORE_CTX *ctx); X509_STORE_CTX_get_issuer_fn X509_STORE_CTX_get_get_issuer(const X509_STORE_CTX *ctx); X509_STORE_CTX_check_issued_fn X509_STORE_CTX_get_check_issued(const X509_STORE_CTX *ctx); X509_STORE_CTX_check_revocation_fn X509_STORE_CTX_get_check_revocation(const X509_STORE_CTX *ctx); +void X509_STORE_CTX_set_get_crl(X509_STORE_CTX *ctx, + X509_STORE_CTX_get_crl_fn get_crl); X509_STORE_CTX_get_crl_fn X509_STORE_CTX_get_get_crl(const X509_STORE_CTX *ctx); X509_STORE_CTX_check_crl_fn X509_STORE_CTX_get_check_crl(const X509_STORE_CTX *ctx); X509_STORE_CTX_cert_crl_fn X509_STORE_CTX_get_cert_crl(const X509_STORE_CTX *ctx); @@ -600,7 +607,7 @@ X509_STORE_CTX_cleanup_fn X509_STORE_CTX_get_cleanup(const X509_STORE_CTX *ctx); # define X509_STORE_get1_crl X509_STORE_CTX_get1_crls #endif -X509_LOOKUP *X509_STORE_add_lookup(X509_STORE *v, X509_LOOKUP_METHOD *m); +X509_LOOKUP *X509_STORE_add_lookup(X509_STORE *xs, X509_LOOKUP_METHOD *m); X509_LOOKUP_METHOD *X509_LOOKUP_hash_dir(void); X509_LOOKUP_METHOD *X509_LOOKUP_file(void); X509_LOOKUP_METHOD *X509_LOOKUP_store(void); @@ -685,8 +692,8 @@ X509_LOOKUP_get_by_alias_fn X509_LOOKUP_meth_get_get_by_alias( const X509_LOOKUP_METHOD *method); -int X509_STORE_add_cert(X509_STORE *ctx, X509 *x); -int X509_STORE_add_crl(X509_STORE *ctx, X509_CRL *x); +int X509_STORE_add_cert(X509_STORE *xs, X509 *x); +int X509_STORE_add_crl(X509_STORE *xs, X509_CRL *x); int X509_STORE_CTX_get_by_subject(const X509_STORE_CTX *vs, X509_LOOKUP_TYPE type, @@ -730,23 +737,21 @@ void *X509_LOOKUP_get_method_data(const X509_LOOKUP *ctx); X509_STORE *X509_LOOKUP_get_store(const X509_LOOKUP *ctx); int X509_LOOKUP_shutdown(X509_LOOKUP *ctx); -int X509_STORE_load_file(X509_STORE *ctx, const char *file); -int X509_STORE_load_path(X509_STORE *ctx, const char *path); -int X509_STORE_load_store(X509_STORE *ctx, const char *store); -int X509_STORE_load_locations(X509_STORE *ctx, - const char *file, - const char *dir); -int X509_STORE_set_default_paths(X509_STORE *ctx); +int X509_STORE_load_file(X509_STORE *xs, const char *file); +int X509_STORE_load_path(X509_STORE *xs, const char *path); +int X509_STORE_load_store(X509_STORE *xs, const char *store); +int X509_STORE_load_locations(X509_STORE *s, const char *file, const char *dir); +int X509_STORE_set_default_paths(X509_STORE *xs); -int X509_STORE_load_file_ex(X509_STORE *ctx, const char *file, +int X509_STORE_load_file_ex(X509_STORE *xs, const char *file, OSSL_LIB_CTX *libctx, const char *propq); -int X509_STORE_load_store_ex(X509_STORE *ctx, const char *store, +int X509_STORE_load_store_ex(X509_STORE *xs, const char *store, OSSL_LIB_CTX *libctx, const char *propq); -int X509_STORE_load_locations_ex(X509_STORE *ctx, const char *file, - const char *dir, OSSL_LIB_CTX *libctx, - const char *propq); -int X509_STORE_set_default_paths_ex(X509_STORE *ctx, OSSL_LIB_CTX *libctx, - const char *propq); +int X509_STORE_load_locations_ex(X509_STORE *xs, + const char *file, const char *dir, + OSSL_LIB_CTX *libctx, const char *propq); +int X509_STORE_set_default_paths_ex(X509_STORE *xs, + OSSL_LIB_CTX *libctx, const char *propq); #define X509_STORE_CTX_get_ex_new_index(l, p, newf, dupf, freef) \ CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_X509_STORE_CTX, l, p, newf, dupf, freef) @@ -764,6 +769,7 @@ X509_STORE_CTX *X509_STORE_CTX_get0_parent_ctx(const X509_STORE_CTX *ctx); STACK_OF(X509) *X509_STORE_CTX_get0_chain(const X509_STORE_CTX *ctx); STACK_OF(X509) *X509_STORE_CTX_get1_chain(const X509_STORE_CTX *ctx); void X509_STORE_CTX_set_cert(X509_STORE_CTX *ctx, X509 *target); +void X509_STORE_CTX_set0_rpk(X509_STORE_CTX *ctx, EVP_PKEY *target); void X509_STORE_CTX_set0_verified_chain(X509_STORE_CTX *c, STACK_OF(X509) *sk); void X509_STORE_CTX_set0_crls(X509_STORE_CTX *ctx, STACK_OF(X509_CRL) *sk); int X509_STORE_CTX_set_purpose(X509_STORE_CTX *ctx, int purpose); @@ -773,6 +779,8 @@ int X509_STORE_CTX_purpose_inherit(X509_STORE_CTX *ctx, int def_purpose, void X509_STORE_CTX_set_flags(X509_STORE_CTX *ctx, unsigned long flags); void X509_STORE_CTX_set_time(X509_STORE_CTX *ctx, unsigned long flags, time_t t); +void X509_STORE_CTX_set_current_reasons(X509_STORE_CTX *ctx, + unsigned int current_reasons); X509_POLICY_TREE *X509_STORE_CTX_get0_policy_tree(const X509_STORE_CTX *ctx); int X509_STORE_CTX_get_explicit_policy(const X509_STORE_CTX *ctx); @@ -804,6 +812,7 @@ int X509_VERIFY_PARAM_clear_flags(X509_VERIFY_PARAM *param, unsigned long flags); unsigned long X509_VERIFY_PARAM_get_flags(const X509_VERIFY_PARAM *param); int X509_VERIFY_PARAM_set_purpose(X509_VERIFY_PARAM *param, int purpose); +int X509_VERIFY_PARAM_get_purpose(const X509_VERIFY_PARAM *param); int X509_VERIFY_PARAM_set_trust(X509_VERIFY_PARAM *param, int trust); void X509_VERIFY_PARAM_set_depth(X509_VERIFY_PARAM *param, int depth); void X509_VERIFY_PARAM_set_auth_level(X509_VERIFY_PARAM *param, int auth_level); diff --git a/deps/openssl/config/archs/darwin-i386-cc/no-asm/include/openssl/x509v3.h b/deps/openssl/config/archs/darwin-i386-cc/no-asm/include/openssl/x509v3.h index 20b67455f2061d..b8dabac35a4915 100644 --- a/deps/openssl/config/archs/darwin-i386-cc/no-asm/include/openssl/x509v3.h +++ b/deps/openssl/config/archs/darwin-i386-cc/no-asm/include/openssl/x509v3.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/x509v3.h.in * - * Copyright 1999-2023 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1999-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -25,6 +25,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -146,6 +149,11 @@ typedef struct BASIC_CONSTRAINTS_st { ASN1_INTEGER *pathlen; } BASIC_CONSTRAINTS; +typedef struct OSSL_BASIC_ATTR_CONSTRAINTS_st { + int authority; + ASN1_INTEGER *pathlen; +} OSSL_BASIC_ATTR_CONSTRAINTS; + typedef struct PKEY_USAGE_PERIOD_st { ASN1_GENERALIZEDTIME *notBefore; ASN1_GENERALIZEDTIME *notAfter; @@ -198,6 +206,8 @@ typedef struct ACCESS_DESCRIPTION_st { GENERAL_NAME *location; } ACCESS_DESCRIPTION; +int GENERAL_NAME_set1_X509_NAME(GENERAL_NAME **tgt, const X509_NAME *src); + SKM_DEFINE_STACK_OF_INTERNAL(ACCESS_DESCRIPTION, ACCESS_DESCRIPTION, ACCESS_DESCRIPTION) #define sk_ACCESS_DESCRIPTION_num(sk) OPENSSL_sk_num(ossl_check_const_ACCESS_DESCRIPTION_sk_type(sk)) #define sk_ACCESS_DESCRIPTION_value(sk, idx) ((ACCESS_DESCRIPTION *)OPENSSL_sk_value(ossl_check_const_ACCESS_DESCRIPTION_sk_type(sk), (idx))) @@ -294,6 +304,7 @@ typedef struct DIST_POINT_NAME_st { /* If relativename then this contains the full distribution point name */ X509_NAME *dpname; } DIST_POINT_NAME; +DECLARE_ASN1_DUP_FUNCTION(DIST_POINT_NAME) /* All existing reasons */ # define CRLDP_ALL_REASONS 0x807f @@ -659,15 +670,16 @@ struct ISSUING_DIST_POINT_st { # define EXFLAG_SAN_CRITICAL 0x80000 # define EXFLAG_NO_FINGERPRINT 0x100000 -# define KU_DIGITAL_SIGNATURE 0x0080 -# define KU_NON_REPUDIATION 0x0040 -# define KU_KEY_ENCIPHERMENT 0x0020 -# define KU_DATA_ENCIPHERMENT 0x0010 -# define KU_KEY_AGREEMENT 0x0008 -# define KU_KEY_CERT_SIGN 0x0004 -# define KU_CRL_SIGN 0x0002 -# define KU_ENCIPHER_ONLY 0x0001 -# define KU_DECIPHER_ONLY 0x8000 +/* https://datatracker.ietf.org/doc/html/rfc5280#section-4.2.1.3 */ +# define KU_DIGITAL_SIGNATURE X509v3_KU_DIGITAL_SIGNATURE +# define KU_NON_REPUDIATION X509v3_KU_NON_REPUDIATION +# define KU_KEY_ENCIPHERMENT X509v3_KU_KEY_ENCIPHERMENT +# define KU_DATA_ENCIPHERMENT X509v3_KU_DATA_ENCIPHERMENT +# define KU_KEY_AGREEMENT X509v3_KU_KEY_AGREEMENT +# define KU_KEY_CERT_SIGN X509v3_KU_KEY_CERT_SIGN +# define KU_CRL_SIGN X509v3_KU_CRL_SIGN +# define KU_ENCIPHER_ONLY X509v3_KU_ENCIPHER_ONLY +# define KU_DECIPHER_ONLY X509v3_KU_DECIPHER_ONLY # define NS_SSL_CLIENT 0x80 # define NS_SSL_SERVER 0x40 @@ -729,7 +741,7 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_PURPOSE, X509_PURPOSE, X509_PURPOSE) #define sk_X509_PURPOSE_set_cmp_func(sk, cmp) ((sk_X509_PURPOSE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_X509_PURPOSE_sk_type(sk), ossl_check_X509_PURPOSE_compfunc_type(cmp))) - +# define X509_PURPOSE_DEFAULT_ANY 0 # define X509_PURPOSE_SSL_CLIENT 1 # define X509_PURPOSE_SSL_SERVER 2 # define X509_PURPOSE_NS_SSL_SERVER 3 @@ -739,9 +751,10 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_PURPOSE, X509_PURPOSE, X509_PURPOSE) # define X509_PURPOSE_ANY 7 # define X509_PURPOSE_OCSP_HELPER 8 # define X509_PURPOSE_TIMESTAMP_SIGN 9 +# define X509_PURPOSE_CODE_SIGN 10 # define X509_PURPOSE_MIN 1 -# define X509_PURPOSE_MAX 9 +# define X509_PURPOSE_MAX 10 /* Flags for X509V3_EXT_print() */ @@ -767,6 +780,7 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_PURPOSE, X509_PURPOSE, X509_PURPOSE) # define X509V3_ADD_SILENT 0x10 DECLARE_ASN1_FUNCTIONS(BASIC_CONSTRAINTS) +DECLARE_ASN1_FUNCTIONS(OSSL_BASIC_ATTR_CONSTRAINTS) DECLARE_ASN1_FUNCTIONS(SXNET) DECLARE_ASN1_FUNCTIONS(SXNETID) @@ -976,7 +990,6 @@ int X509V3_extensions_print(BIO *out, const char *title, int X509_check_ca(X509 *x); int X509_check_purpose(X509 *x, int id, int ca); int X509_supported_extension(X509_EXTENSION *ex); -int X509_PURPOSE_set(int *p, int purpose); int X509_check_issued(X509 *issuer, X509 *subject); int X509_check_akid(const X509 *issuer, const AUTHORITY_KEYID *akid); void X509_set_proxy_flag(X509 *x); @@ -992,22 +1005,26 @@ const GENERAL_NAMES *X509_get0_authority_issuer(X509 *x); const ASN1_INTEGER *X509_get0_authority_serial(X509 *x); int X509_PURPOSE_get_count(void); -X509_PURPOSE *X509_PURPOSE_get0(int idx); +int X509_PURPOSE_get_unused_id(OSSL_LIB_CTX *libctx); int X509_PURPOSE_get_by_sname(const char *sname); int X509_PURPOSE_get_by_id(int id); int X509_PURPOSE_add(int id, int trust, int flags, int (*ck) (const X509_PURPOSE *, const X509 *, int), const char *name, const char *sname, void *arg); +void X509_PURPOSE_cleanup(void); + +X509_PURPOSE *X509_PURPOSE_get0(int idx); +int X509_PURPOSE_get_id(const X509_PURPOSE *); char *X509_PURPOSE_get0_name(const X509_PURPOSE *xp); char *X509_PURPOSE_get0_sname(const X509_PURPOSE *xp); int X509_PURPOSE_get_trust(const X509_PURPOSE *xp); -void X509_PURPOSE_cleanup(void); -int X509_PURPOSE_get_id(const X509_PURPOSE *); +int X509_PURPOSE_set(int *p, int purpose); STACK_OF(OPENSSL_STRING) *X509_get1_email(X509 *x); STACK_OF(OPENSSL_STRING) *X509_REQ_get1_email(X509_REQ *x); void X509_email_free(STACK_OF(OPENSSL_STRING) *sk); STACK_OF(OPENSSL_STRING) *X509_get1_ocsp(X509 *x); + /* Flags for X509_check_* functions */ /* @@ -1444,6 +1461,507 @@ const ASN1_PRINTABLESTRING *PROFESSION_INFO_get0_registrationNumber( void PROFESSION_INFO_set0_registrationNumber( PROFESSION_INFO *pi, ASN1_PRINTABLESTRING *rn); +int OSSL_GENERAL_NAMES_print(BIO *out, GENERAL_NAMES *gens, int indent); + +typedef STACK_OF(X509_ATTRIBUTE) OSSL_ATTRIBUTES_SYNTAX; +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTES_SYNTAX) + +typedef STACK_OF(USERNOTICE) OSSL_USER_NOTICE_SYNTAX; +DECLARE_ASN1_FUNCTIONS(OSSL_USER_NOTICE_SYNTAX) + +SKM_DEFINE_STACK_OF_INTERNAL(USERNOTICE, USERNOTICE, USERNOTICE) +#define sk_USERNOTICE_num(sk) OPENSSL_sk_num(ossl_check_const_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_value(sk, idx) ((USERNOTICE *)OPENSSL_sk_value(ossl_check_const_USERNOTICE_sk_type(sk), (idx))) +#define sk_USERNOTICE_new(cmp) ((STACK_OF(USERNOTICE) *)OPENSSL_sk_new(ossl_check_USERNOTICE_compfunc_type(cmp))) +#define sk_USERNOTICE_new_null() ((STACK_OF(USERNOTICE) *)OPENSSL_sk_new_null()) +#define sk_USERNOTICE_new_reserve(cmp, n) ((STACK_OF(USERNOTICE) *)OPENSSL_sk_new_reserve(ossl_check_USERNOTICE_compfunc_type(cmp), (n))) +#define sk_USERNOTICE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_USERNOTICE_sk_type(sk), (n)) +#define sk_USERNOTICE_free(sk) OPENSSL_sk_free(ossl_check_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_zero(sk) OPENSSL_sk_zero(ossl_check_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_delete(sk, i) ((USERNOTICE *)OPENSSL_sk_delete(ossl_check_USERNOTICE_sk_type(sk), (i))) +#define sk_USERNOTICE_delete_ptr(sk, ptr) ((USERNOTICE *)OPENSSL_sk_delete_ptr(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr))) +#define sk_USERNOTICE_push(sk, ptr) OPENSSL_sk_push(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr)) +#define sk_USERNOTICE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr)) +#define sk_USERNOTICE_pop(sk) ((USERNOTICE *)OPENSSL_sk_pop(ossl_check_USERNOTICE_sk_type(sk))) +#define sk_USERNOTICE_shift(sk) ((USERNOTICE *)OPENSSL_sk_shift(ossl_check_USERNOTICE_sk_type(sk))) +#define sk_USERNOTICE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_USERNOTICE_sk_type(sk),ossl_check_USERNOTICE_freefunc_type(freefunc)) +#define sk_USERNOTICE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr), (idx)) +#define sk_USERNOTICE_set(sk, idx, ptr) ((USERNOTICE *)OPENSSL_sk_set(ossl_check_USERNOTICE_sk_type(sk), (idx), ossl_check_USERNOTICE_type(ptr))) +#define sk_USERNOTICE_find(sk, ptr) OPENSSL_sk_find(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr)) +#define sk_USERNOTICE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr)) +#define sk_USERNOTICE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr), pnum) +#define sk_USERNOTICE_sort(sk) OPENSSL_sk_sort(ossl_check_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_dup(sk) ((STACK_OF(USERNOTICE) *)OPENSSL_sk_dup(ossl_check_const_USERNOTICE_sk_type(sk))) +#define sk_USERNOTICE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(USERNOTICE) *)OPENSSL_sk_deep_copy(ossl_check_const_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_copyfunc_type(copyfunc), ossl_check_USERNOTICE_freefunc_type(freefunc))) +#define sk_USERNOTICE_set_cmp_func(sk, cmp) ((sk_USERNOTICE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_compfunc_type(cmp))) + + +typedef struct OSSL_ROLE_SPEC_CERT_ID_st { + GENERAL_NAME *roleName; + GENERAL_NAME *roleCertIssuer; + ASN1_INTEGER *roleCertSerialNumber; + GENERAL_NAMES *roleCertLocator; +} OSSL_ROLE_SPEC_CERT_ID; + +DECLARE_ASN1_FUNCTIONS(OSSL_ROLE_SPEC_CERT_ID) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ROLE_SPEC_CERT_ID, OSSL_ROLE_SPEC_CERT_ID, OSSL_ROLE_SPEC_CERT_ID) +#define sk_OSSL_ROLE_SPEC_CERT_ID_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_value(sk, idx) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_value(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), (idx))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_new(cmp) ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_new(ossl_check_OSSL_ROLE_SPEC_CERT_ID_compfunc_type(cmp))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_new_null() ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ROLE_SPEC_CERT_ID_new_reserve(cmp, n) ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ROLE_SPEC_CERT_ID_compfunc_type(cmp), (n))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), (n)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_delete(sk, i) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_delete(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), (i))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_delete_ptr(sk, ptr) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_pop(sk) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_pop(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_shift(sk) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_shift(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk),ossl_check_OSSL_ROLE_SPEC_CERT_ID_freefunc_type(freefunc)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr), (idx)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_set(sk, idx, ptr) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_set(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), (idx), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr), pnum) +#define sk_OSSL_ROLE_SPEC_CERT_ID_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_dup(sk) ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_copyfunc_type(copyfunc), ossl_check_OSSL_ROLE_SPEC_CERT_ID_freefunc_type(freefunc))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_set_cmp_func(sk, cmp) ((sk_OSSL_ROLE_SPEC_CERT_ID_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_compfunc_type(cmp))) + + +typedef STACK_OF(OSSL_ROLE_SPEC_CERT_ID) OSSL_ROLE_SPEC_CERT_ID_SYNTAX; + +DECLARE_ASN1_FUNCTIONS(OSSL_ROLE_SPEC_CERT_ID_SYNTAX) +typedef struct OSSL_HASH_st { + X509_ALGOR *algorithmIdentifier; + ASN1_BIT_STRING *hashValue; +} OSSL_HASH; + +typedef struct OSSL_INFO_SYNTAX_POINTER_st { + GENERAL_NAMES *name; + OSSL_HASH *hash; +} OSSL_INFO_SYNTAX_POINTER; + +# define OSSL_INFO_SYNTAX_TYPE_CONTENT 0 +# define OSSL_INFO_SYNTAX_TYPE_POINTER 1 + +typedef struct OSSL_INFO_SYNTAX_st { + int type; + union { + ASN1_STRING *content; + OSSL_INFO_SYNTAX_POINTER *pointer; + } choice; +} OSSL_INFO_SYNTAX; + +typedef struct OSSL_PRIVILEGE_POLICY_ID_st { + ASN1_OBJECT *privilegePolicy; + OSSL_INFO_SYNTAX *privPolSyntax; +} OSSL_PRIVILEGE_POLICY_ID; + +typedef struct OSSL_ATTRIBUTE_DESCRIPTOR_st { + ASN1_OBJECT *identifier; + ASN1_STRING *attributeSyntax; + ASN1_UTF8STRING *name; + ASN1_UTF8STRING *description; + OSSL_PRIVILEGE_POLICY_ID *dominationRule; +} OSSL_ATTRIBUTE_DESCRIPTOR; + +DECLARE_ASN1_FUNCTIONS(OSSL_HASH) +DECLARE_ASN1_FUNCTIONS(OSSL_INFO_SYNTAX) +DECLARE_ASN1_FUNCTIONS(OSSL_INFO_SYNTAX_POINTER) +DECLARE_ASN1_FUNCTIONS(OSSL_PRIVILEGE_POLICY_ID) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_DESCRIPTOR) + +typedef struct OSSL_TIME_SPEC_ABSOLUTE_st { + ASN1_GENERALIZEDTIME *startTime; + ASN1_GENERALIZEDTIME *endTime; +} OSSL_TIME_SPEC_ABSOLUTE; + +typedef struct OSSL_DAY_TIME_st { + ASN1_INTEGER *hour; + ASN1_INTEGER *minute; + ASN1_INTEGER *second; +} OSSL_DAY_TIME; + +typedef struct OSSL_DAY_TIME_BAND_st { + OSSL_DAY_TIME *startDayTime; + OSSL_DAY_TIME *endDayTime; +} OSSL_DAY_TIME_BAND; + +# define OSSL_NAMED_DAY_TYPE_INT 0 +# define OSSL_NAMED_DAY_TYPE_BIT 1 +# define OSSL_NAMED_DAY_INT_SUN 1 +# define OSSL_NAMED_DAY_INT_MON 2 +# define OSSL_NAMED_DAY_INT_TUE 3 +# define OSSL_NAMED_DAY_INT_WED 4 +# define OSSL_NAMED_DAY_INT_THU 5 +# define OSSL_NAMED_DAY_INT_FRI 6 +# define OSSL_NAMED_DAY_INT_SAT 7 +# define OSSL_NAMED_DAY_BIT_SUN 0 +# define OSSL_NAMED_DAY_BIT_MON 1 +# define OSSL_NAMED_DAY_BIT_TUE 2 +# define OSSL_NAMED_DAY_BIT_WED 3 +# define OSSL_NAMED_DAY_BIT_THU 4 +# define OSSL_NAMED_DAY_BIT_FRI 5 +# define OSSL_NAMED_DAY_BIT_SAT 6 + +typedef struct OSSL_NAMED_DAY_st { + int type; + union { + ASN1_INTEGER *intNamedDays; + ASN1_BIT_STRING *bitNamedDays; + } choice; +} OSSL_NAMED_DAY; + +# define OSSL_TIME_SPEC_X_DAY_OF_FIRST 0 +# define OSSL_TIME_SPEC_X_DAY_OF_SECOND 1 +# define OSSL_TIME_SPEC_X_DAY_OF_THIRD 2 +# define OSSL_TIME_SPEC_X_DAY_OF_FOURTH 3 +# define OSSL_TIME_SPEC_X_DAY_OF_FIFTH 4 + +typedef struct OSSL_TIME_SPEC_X_DAY_OF_st { + int type; + union { + OSSL_NAMED_DAY *first; + OSSL_NAMED_DAY *second; + OSSL_NAMED_DAY *third; + OSSL_NAMED_DAY *fourth; + OSSL_NAMED_DAY *fifth; + } choice; +} OSSL_TIME_SPEC_X_DAY_OF; + +# define OSSL_TIME_SPEC_DAY_TYPE_INT 0 +# define OSSL_TIME_SPEC_DAY_TYPE_BIT 1 +# define OSSL_TIME_SPEC_DAY_TYPE_DAY_OF 2 +# define OSSL_TIME_SPEC_DAY_BIT_SUN 0 +# define OSSL_TIME_SPEC_DAY_BIT_MON 1 +# define OSSL_TIME_SPEC_DAY_BIT_TUE 2 +# define OSSL_TIME_SPEC_DAY_BIT_WED 3 +# define OSSL_TIME_SPEC_DAY_BIT_THU 4 +# define OSSL_TIME_SPEC_DAY_BIT_FRI 5 +# define OSSL_TIME_SPEC_DAY_BIT_SAT 6 +# define OSSL_TIME_SPEC_DAY_INT_SUN 1 +# define OSSL_TIME_SPEC_DAY_INT_MON 2 +# define OSSL_TIME_SPEC_DAY_INT_TUE 3 +# define OSSL_TIME_SPEC_DAY_INT_WED 4 +# define OSSL_TIME_SPEC_DAY_INT_THU 5 +# define OSSL_TIME_SPEC_DAY_INT_FRI 6 +# define OSSL_TIME_SPEC_DAY_INT_SAT 7 + +typedef struct OSSL_TIME_SPEC_DAY_st { + int type; + union { + STACK_OF(ASN1_INTEGER) *intDay; + ASN1_BIT_STRING *bitDay; + OSSL_TIME_SPEC_X_DAY_OF *dayOf; + } choice; +} OSSL_TIME_SPEC_DAY; + +# define OSSL_TIME_SPEC_WEEKS_TYPE_ALL 0 +# define OSSL_TIME_SPEC_WEEKS_TYPE_INT 1 +# define OSSL_TIME_SPEC_WEEKS_TYPE_BIT 2 +# define OSSL_TIME_SPEC_BIT_WEEKS_1 0 +# define OSSL_TIME_SPEC_BIT_WEEKS_2 1 +# define OSSL_TIME_SPEC_BIT_WEEKS_3 2 +# define OSSL_TIME_SPEC_BIT_WEEKS_4 3 +# define OSSL_TIME_SPEC_BIT_WEEKS_5 4 + +typedef struct OSSL_TIME_SPEC_WEEKS_st { + int type; + union { + ASN1_NULL *allWeeks; + STACK_OF(ASN1_INTEGER) *intWeek; + ASN1_BIT_STRING *bitWeek; + } choice; +} OSSL_TIME_SPEC_WEEKS; + +# define OSSL_TIME_SPEC_MONTH_TYPE_ALL 0 +# define OSSL_TIME_SPEC_MONTH_TYPE_INT 1 +# define OSSL_TIME_SPEC_MONTH_TYPE_BIT 2 +# define OSSL_TIME_SPEC_INT_MONTH_JAN 1 +# define OSSL_TIME_SPEC_INT_MONTH_FEB 2 +# define OSSL_TIME_SPEC_INT_MONTH_MAR 3 +# define OSSL_TIME_SPEC_INT_MONTH_APR 4 +# define OSSL_TIME_SPEC_INT_MONTH_MAY 5 +# define OSSL_TIME_SPEC_INT_MONTH_JUN 6 +# define OSSL_TIME_SPEC_INT_MONTH_JUL 7 +# define OSSL_TIME_SPEC_INT_MONTH_AUG 8 +# define OSSL_TIME_SPEC_INT_MONTH_SEP 9 +# define OSSL_TIME_SPEC_INT_MONTH_OCT 10 +# define OSSL_TIME_SPEC_INT_MONTH_NOV 11 +# define OSSL_TIME_SPEC_INT_MONTH_DEC 12 +# define OSSL_TIME_SPEC_BIT_MONTH_JAN 0 +# define OSSL_TIME_SPEC_BIT_MONTH_FEB 1 +# define OSSL_TIME_SPEC_BIT_MONTH_MAR 2 +# define OSSL_TIME_SPEC_BIT_MONTH_APR 3 +# define OSSL_TIME_SPEC_BIT_MONTH_MAY 4 +# define OSSL_TIME_SPEC_BIT_MONTH_JUN 5 +# define OSSL_TIME_SPEC_BIT_MONTH_JUL 6 +# define OSSL_TIME_SPEC_BIT_MONTH_AUG 7 +# define OSSL_TIME_SPEC_BIT_MONTH_SEP 8 +# define OSSL_TIME_SPEC_BIT_MONTH_OCT 9 +# define OSSL_TIME_SPEC_BIT_MONTH_NOV 10 +# define OSSL_TIME_SPEC_BIT_MONTH_DEC 11 + +typedef struct OSSL_TIME_SPEC_MONTH_st { + int type; + union { + ASN1_NULL *allMonths; + STACK_OF(ASN1_INTEGER) *intMonth; + ASN1_BIT_STRING *bitMonth; + } choice; +} OSSL_TIME_SPEC_MONTH; + +typedef struct OSSL_TIME_PERIOD_st { + STACK_OF(OSSL_DAY_TIME_BAND) *timesOfDay; + OSSL_TIME_SPEC_DAY *days; + OSSL_TIME_SPEC_WEEKS *weeks; + OSSL_TIME_SPEC_MONTH *months; + STACK_OF(ASN1_INTEGER) *years; +} OSSL_TIME_PERIOD; + +# define OSSL_TIME_SPEC_TIME_TYPE_ABSOLUTE 0 +# define OSSL_TIME_SPEC_TIME_TYPE_PERIODIC 1 + +typedef struct OSSL_TIME_SPEC_TIME_st { + int type; + union { + OSSL_TIME_SPEC_ABSOLUTE *absolute; + STACK_OF(OSSL_TIME_PERIOD) *periodic; + } choice; +} OSSL_TIME_SPEC_TIME; + +typedef struct OSSL_TIME_SPEC_st { + OSSL_TIME_SPEC_TIME *time; + ASN1_BOOLEAN notThisTime; + ASN1_INTEGER *timeZone; +} OSSL_TIME_SPEC; + +DECLARE_ASN1_FUNCTIONS(OSSL_DAY_TIME) +DECLARE_ASN1_FUNCTIONS(OSSL_DAY_TIME_BAND) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_DAY) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_WEEKS) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_MONTH) +DECLARE_ASN1_FUNCTIONS(OSSL_NAMED_DAY) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_X_DAY_OF) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_ABSOLUTE) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_TIME) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_PERIOD) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_TIME_PERIOD, OSSL_TIME_PERIOD, OSSL_TIME_PERIOD) +#define sk_OSSL_TIME_PERIOD_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_value(sk, idx) ((OSSL_TIME_PERIOD *)OPENSSL_sk_value(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk), (idx))) +#define sk_OSSL_TIME_PERIOD_new(cmp) ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_new(ossl_check_OSSL_TIME_PERIOD_compfunc_type(cmp))) +#define sk_OSSL_TIME_PERIOD_new_null() ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_new_null()) +#define sk_OSSL_TIME_PERIOD_new_reserve(cmp, n) ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_TIME_PERIOD_compfunc_type(cmp), (n))) +#define sk_OSSL_TIME_PERIOD_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), (n)) +#define sk_OSSL_TIME_PERIOD_free(sk) OPENSSL_sk_free(ossl_check_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_delete(sk, i) ((OSSL_TIME_PERIOD *)OPENSSL_sk_delete(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), (i))) +#define sk_OSSL_TIME_PERIOD_delete_ptr(sk, ptr) ((OSSL_TIME_PERIOD *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr))) +#define sk_OSSL_TIME_PERIOD_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr)) +#define sk_OSSL_TIME_PERIOD_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr)) +#define sk_OSSL_TIME_PERIOD_pop(sk) ((OSSL_TIME_PERIOD *)OPENSSL_sk_pop(ossl_check_OSSL_TIME_PERIOD_sk_type(sk))) +#define sk_OSSL_TIME_PERIOD_shift(sk) ((OSSL_TIME_PERIOD *)OPENSSL_sk_shift(ossl_check_OSSL_TIME_PERIOD_sk_type(sk))) +#define sk_OSSL_TIME_PERIOD_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_TIME_PERIOD_sk_type(sk),ossl_check_OSSL_TIME_PERIOD_freefunc_type(freefunc)) +#define sk_OSSL_TIME_PERIOD_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr), (idx)) +#define sk_OSSL_TIME_PERIOD_set(sk, idx, ptr) ((OSSL_TIME_PERIOD *)OPENSSL_sk_set(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), (idx), ossl_check_OSSL_TIME_PERIOD_type(ptr))) +#define sk_OSSL_TIME_PERIOD_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr)) +#define sk_OSSL_TIME_PERIOD_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr)) +#define sk_OSSL_TIME_PERIOD_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr), pnum) +#define sk_OSSL_TIME_PERIOD_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_dup(sk) ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_dup(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk))) +#define sk_OSSL_TIME_PERIOD_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_copyfunc_type(copyfunc), ossl_check_OSSL_TIME_PERIOD_freefunc_type(freefunc))) +#define sk_OSSL_TIME_PERIOD_set_cmp_func(sk, cmp) ((sk_OSSL_TIME_PERIOD_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_compfunc_type(cmp))) + + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_DAY_TIME_BAND, OSSL_DAY_TIME_BAND, OSSL_DAY_TIME_BAND) +#define sk_OSSL_DAY_TIME_BAND_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_value(sk, idx) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_value(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk), (idx))) +#define sk_OSSL_DAY_TIME_BAND_new(cmp) ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_new(ossl_check_OSSL_DAY_TIME_BAND_compfunc_type(cmp))) +#define sk_OSSL_DAY_TIME_BAND_new_null() ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_new_null()) +#define sk_OSSL_DAY_TIME_BAND_new_reserve(cmp, n) ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_DAY_TIME_BAND_compfunc_type(cmp), (n))) +#define sk_OSSL_DAY_TIME_BAND_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), (n)) +#define sk_OSSL_DAY_TIME_BAND_free(sk) OPENSSL_sk_free(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_delete(sk, i) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_delete(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), (i))) +#define sk_OSSL_DAY_TIME_BAND_delete_ptr(sk, ptr) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr))) +#define sk_OSSL_DAY_TIME_BAND_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr)) +#define sk_OSSL_DAY_TIME_BAND_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr)) +#define sk_OSSL_DAY_TIME_BAND_pop(sk) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_pop(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk))) +#define sk_OSSL_DAY_TIME_BAND_shift(sk) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_shift(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk))) +#define sk_OSSL_DAY_TIME_BAND_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk),ossl_check_OSSL_DAY_TIME_BAND_freefunc_type(freefunc)) +#define sk_OSSL_DAY_TIME_BAND_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr), (idx)) +#define sk_OSSL_DAY_TIME_BAND_set(sk, idx, ptr) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_set(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), (idx), ossl_check_OSSL_DAY_TIME_BAND_type(ptr))) +#define sk_OSSL_DAY_TIME_BAND_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr)) +#define sk_OSSL_DAY_TIME_BAND_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr)) +#define sk_OSSL_DAY_TIME_BAND_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr), pnum) +#define sk_OSSL_DAY_TIME_BAND_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_dup(sk) ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_dup(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk))) +#define sk_OSSL_DAY_TIME_BAND_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_copyfunc_type(copyfunc), ossl_check_OSSL_DAY_TIME_BAND_freefunc_type(freefunc))) +#define sk_OSSL_DAY_TIME_BAND_set_cmp_func(sk, cmp) ((sk_OSSL_DAY_TIME_BAND_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_compfunc_type(cmp))) + + +/* Attribute Type and Value */ +typedef struct atav_st { + ASN1_OBJECT *type; + ASN1_TYPE *value; +} OSSL_ATAV; + +typedef struct ATTRIBUTE_TYPE_MAPPING_st { + ASN1_OBJECT *local; + ASN1_OBJECT *remote; +} OSSL_ATTRIBUTE_TYPE_MAPPING; + +typedef struct ATTRIBUTE_VALUE_MAPPING_st { + OSSL_ATAV *local; + OSSL_ATAV *remote; +} OSSL_ATTRIBUTE_VALUE_MAPPING; + +# define OSSL_ATTR_MAP_TYPE 0 +# define OSSL_ATTR_MAP_VALUE 1 + +typedef struct ATTRIBUTE_MAPPING_st { + int type; + union { + OSSL_ATTRIBUTE_TYPE_MAPPING *typeMappings; + OSSL_ATTRIBUTE_VALUE_MAPPING *typeValueMappings; + } choice; +} OSSL_ATTRIBUTE_MAPPING; + +typedef STACK_OF(OSSL_ATTRIBUTE_MAPPING) OSSL_ATTRIBUTE_MAPPINGS; +DECLARE_ASN1_FUNCTIONS(OSSL_ATAV) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_TYPE_MAPPING) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_VALUE_MAPPING) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_MAPPING) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_MAPPINGS) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ATTRIBUTE_MAPPING, OSSL_ATTRIBUTE_MAPPING, OSSL_ATTRIBUTE_MAPPING) +#define sk_OSSL_ATTRIBUTE_MAPPING_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_value(sk, idx) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_value(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), (idx))) +#define sk_OSSL_ATTRIBUTE_MAPPING_new(cmp) ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_new(ossl_check_OSSL_ATTRIBUTE_MAPPING_compfunc_type(cmp))) +#define sk_OSSL_ATTRIBUTE_MAPPING_new_null() ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ATTRIBUTE_MAPPING_new_reserve(cmp, n) ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ATTRIBUTE_MAPPING_compfunc_type(cmp), (n))) +#define sk_OSSL_ATTRIBUTE_MAPPING_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), (n)) +#define sk_OSSL_ATTRIBUTE_MAPPING_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_delete(sk, i) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_delete(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), (i))) +#define sk_OSSL_ATTRIBUTE_MAPPING_delete_ptr(sk, ptr) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr))) +#define sk_OSSL_ATTRIBUTE_MAPPING_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr)) +#define sk_OSSL_ATTRIBUTE_MAPPING_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr)) +#define sk_OSSL_ATTRIBUTE_MAPPING_pop(sk) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_pop(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk))) +#define sk_OSSL_ATTRIBUTE_MAPPING_shift(sk) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_shift(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk))) +#define sk_OSSL_ATTRIBUTE_MAPPING_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk),ossl_check_OSSL_ATTRIBUTE_MAPPING_freefunc_type(freefunc)) +#define sk_OSSL_ATTRIBUTE_MAPPING_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr), (idx)) +#define sk_OSSL_ATTRIBUTE_MAPPING_set(sk, idx, ptr) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_set(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), (idx), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr))) +#define sk_OSSL_ATTRIBUTE_MAPPING_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr)) +#define sk_OSSL_ATTRIBUTE_MAPPING_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr)) +#define sk_OSSL_ATTRIBUTE_MAPPING_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr), pnum) +#define sk_OSSL_ATTRIBUTE_MAPPING_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_dup(sk) ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk))) +#define sk_OSSL_ATTRIBUTE_MAPPING_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_copyfunc_type(copyfunc), ossl_check_OSSL_ATTRIBUTE_MAPPING_freefunc_type(freefunc))) +#define sk_OSSL_ATTRIBUTE_MAPPING_set_cmp_func(sk, cmp) ((sk_OSSL_ATTRIBUTE_MAPPING_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_compfunc_type(cmp))) + + +# define OSSL_AAA_ATTRIBUTE_TYPE 0 +# define OSSL_AAA_ATTRIBUTE_VALUES 1 + +typedef struct ALLOWED_ATTRIBUTES_CHOICE_st { + int type; + union { + ASN1_OBJECT *attributeType; + X509_ATTRIBUTE *attributeTypeandValues; + } choice; +} OSSL_ALLOWED_ATTRIBUTES_CHOICE; + +typedef struct ALLOWED_ATTRIBUTES_ITEM_st { + STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *attributes; + GENERAL_NAME *holderDomain; +} OSSL_ALLOWED_ATTRIBUTES_ITEM; + +typedef STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) OSSL_ALLOWED_ATTRIBUTES_SYNTAX; + +DECLARE_ASN1_FUNCTIONS(OSSL_ALLOWED_ATTRIBUTES_CHOICE) +DECLARE_ASN1_FUNCTIONS(OSSL_ALLOWED_ATTRIBUTES_ITEM) +DECLARE_ASN1_FUNCTIONS(OSSL_ALLOWED_ATTRIBUTES_SYNTAX) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ALLOWED_ATTRIBUTES_CHOICE, OSSL_ALLOWED_ATTRIBUTES_CHOICE, OSSL_ALLOWED_ATTRIBUTES_CHOICE) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_value(sk, idx) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_value(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), (idx))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_new(cmp) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_new(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_compfunc_type(cmp))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_new_null() ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_new_reserve(cmp, n) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_compfunc_type(cmp), (n))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), (n)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_delete(sk, i) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_delete(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), (i))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_delete_ptr(sk, ptr) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_pop(sk) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_pop(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_shift(sk) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_shift(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk),ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_freefunc_type(freefunc)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr), (idx)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_set(sk, idx, ptr) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_set(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), (idx), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr), pnum) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_dup(sk) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_copyfunc_type(copyfunc), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_freefunc_type(freefunc))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_set_cmp_func(sk, cmp) ((sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_compfunc_type(cmp))) + + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ALLOWED_ATTRIBUTES_ITEM, OSSL_ALLOWED_ATTRIBUTES_ITEM, OSSL_ALLOWED_ATTRIBUTES_ITEM) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_value(sk, idx) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_value(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), (idx))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_new(cmp) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_new(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_compfunc_type(cmp))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_new_null() ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_new_reserve(cmp, n) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_compfunc_type(cmp), (n))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), (n)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_delete(sk, i) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_delete(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), (i))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_delete_ptr(sk, ptr) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_pop(sk) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_pop(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_shift(sk) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_shift(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk),ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_freefunc_type(freefunc)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr), (idx)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_set(sk, idx, ptr) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_set(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), (idx), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr), pnum) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_dup(sk) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_copyfunc_type(copyfunc), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_freefunc_type(freefunc))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_set_cmp_func(sk, cmp) ((sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_compfunc_type(cmp))) + + +typedef struct AA_DIST_POINT_st { + DIST_POINT_NAME *distpoint; + ASN1_BIT_STRING *reasons; + int dp_reasons; + ASN1_BOOLEAN indirectCRL; + ASN1_BOOLEAN containsUserAttributeCerts; + ASN1_BOOLEAN containsAACerts; + ASN1_BOOLEAN containsSOAPublicKeyCerts; +} OSSL_AA_DIST_POINT; + +DECLARE_ASN1_FUNCTIONS(OSSL_AA_DIST_POINT) + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/darwin-i386-cc/no-asm/include/progs.h b/deps/openssl/config/archs/darwin-i386-cc/no-asm/include/progs.h index be55f61503d405..1b62ec37dec130 100644 --- a/deps/openssl/config/archs/darwin-i386-cc/no-asm/include/progs.h +++ b/deps/openssl/config/archs/darwin-i386-cc/no-asm/include/progs.h @@ -56,6 +56,7 @@ extern int s_client_main(int argc, char *argv[]); extern int s_server_main(int argc, char *argv[]); extern int s_time_main(int argc, char *argv[]); extern int sess_id_main(int argc, char *argv[]); +extern int skeyutl_main(int argc, char *argv[]); extern int smime_main(int argc, char *argv[]); extern int speed_main(int argc, char *argv[]); extern int spkac_main(int argc, char *argv[]); @@ -110,6 +111,7 @@ extern const OPTIONS s_client_options[]; extern const OPTIONS s_server_options[]; extern const OPTIONS s_time_options[]; extern const OPTIONS sess_id_options[]; +extern const OPTIONS skeyutl_options[]; extern const OPTIONS smime_options[]; extern const OPTIONS speed_options[]; extern const OPTIONS spkac_options[]; diff --git a/deps/openssl/config/archs/darwin-i386-cc/no-asm/openssl-cl.gypi b/deps/openssl/config/archs/darwin-i386-cc/no-asm/openssl-cl.gypi index 00eca0af891dd5..f695ce5b96a8ab 100644 --- a/deps/openssl/config/archs/darwin-i386-cc/no-asm/openssl-cl.gypi +++ b/deps/openssl/config/archs/darwin-i386-cc/no-asm/openssl-cl.gypi @@ -61,6 +61,7 @@ 'openssl/apps/s_server.c', 'openssl/apps/s_time.c', 'openssl/apps/sess_id.c', + 'openssl/apps/skeyutl.c', 'openssl/apps/smime.c', 'openssl/apps/speed.c', 'openssl/apps/spkac.c', @@ -76,12 +77,14 @@ 'openssl/apps/lib/app_rand.c', 'openssl/apps/lib/app_x509.c', 'openssl/apps/lib/apps.c', + 'openssl/apps/lib/apps_opt_printf.c', 'openssl/apps/lib/apps_ui.c', 'openssl/apps/lib/columns.c', 'openssl/apps/lib/engine.c', 'openssl/apps/lib/engine_loader.c', 'openssl/apps/lib/fmt.c', 'openssl/apps/lib/http_server.c', + 'openssl/apps/lib/log.c', 'openssl/apps/lib/names.c', 'openssl/apps/lib/opt.c', 'openssl/apps/lib/s_cb.c', diff --git a/deps/openssl/config/archs/darwin-i386-cc/no-asm/openssl-fips.gypi b/deps/openssl/config/archs/darwin-i386-cc/no-asm/openssl-fips.gypi index 2a401f82311c62..1dd482582817b3 100644 --- a/deps/openssl/config/archs/darwin-i386-cc/no-asm/openssl-fips.gypi +++ b/deps/openssl/config/archs/darwin-i386-cc/no-asm/openssl-fips.gypi @@ -100,14 +100,15 @@ 'openssl/crypto/evp/kem.c', 'openssl/crypto/evp/keymgmt_lib.c', 'openssl/crypto/evp/keymgmt_meth.c', - 'openssl/crypto/evp/m_sigver.c', 'openssl/crypto/evp/mac_lib.c', 'openssl/crypto/evp/mac_meth.c', 'openssl/crypto/evp/p_lib.c', 'openssl/crypto/evp/pmeth_check.c', 'openssl/crypto/evp/pmeth_gn.c', 'openssl/crypto/evp/pmeth_lib.c', + 'openssl/crypto/evp/s_lib.c', 'openssl/crypto/evp/signature.c', + 'openssl/crypto/evp/skeymgmt_meth.c', 'openssl/crypto/ffc/ffc_backend.c', 'openssl/crypto/ffc/ffc_dh.c', 'openssl/crypto/ffc/ffc_key_generate.c', @@ -115,6 +116,8 @@ 'openssl/crypto/ffc/ffc_params.c', 'openssl/crypto/ffc/ffc_params_generate.c', 'openssl/crypto/ffc/ffc_params_validate.c', + 'openssl/crypto/hashtable/hashfunc.c', + 'openssl/crypto/hashtable/hashtable.c', 'openssl/crypto/hmac/hmac.c', 'openssl/crypto/lhash/lhash.c', 'openssl/crypto/asn1_dsa.c', @@ -145,6 +148,16 @@ 'openssl/crypto/threads_none.c', 'openssl/crypto/threads_pthread.c', 'openssl/crypto/threads_win.c', + 'openssl/crypto/time.c', + 'openssl/crypto/ml_dsa/ml_dsa_encoders.c', + 'openssl/crypto/ml_dsa/ml_dsa_key.c', + 'openssl/crypto/ml_dsa/ml_dsa_key_compress.c', + 'openssl/crypto/ml_dsa/ml_dsa_matrix.c', + 'openssl/crypto/ml_dsa/ml_dsa_ntt.c', + 'openssl/crypto/ml_dsa/ml_dsa_params.c', + 'openssl/crypto/ml_dsa/ml_dsa_sample.c', + 'openssl/crypto/ml_dsa/ml_dsa_sign.c', + 'openssl/crypto/ml_kem/ml_kem.c', 'openssl/crypto/modes/cbc128.c', 'openssl/crypto/modes/ccm128.c', 'openssl/crypto/modes/cfb128.c', @@ -153,6 +166,7 @@ 'openssl/crypto/modes/ofb128.c', 'openssl/crypto/modes/wrap128.c', 'openssl/crypto/modes/xts128.c', + 'openssl/crypto/modes/xts128gb.c', 'openssl/crypto/property/defn_cache.c', 'openssl/crypto/property/property.c', 'openssl/crypto/property/property_parse.c', @@ -181,7 +195,23 @@ 'openssl/crypto/sha/sha256.c', 'openssl/crypto/sha/sha3.c', 'openssl/crypto/sha/sha512.c', + 'openssl/crypto/slh_dsa/slh_adrs.c', + 'openssl/crypto/slh_dsa/slh_dsa.c', + 'openssl/crypto/slh_dsa/slh_dsa_hash_ctx.c', + 'openssl/crypto/slh_dsa/slh_dsa_key.c', + 'openssl/crypto/slh_dsa/slh_fors.c', + 'openssl/crypto/slh_dsa/slh_hash.c', + 'openssl/crypto/slh_dsa/slh_hypertree.c', + 'openssl/crypto/slh_dsa/slh_params.c', + 'openssl/crypto/slh_dsa/slh_wots.c', + 'openssl/crypto/slh_dsa/slh_xmss.c', 'openssl/crypto/stack/stack.c', + 'openssl/crypto/thread/arch/thread_none.c', + 'openssl/crypto/thread/arch/thread_posix.c', + 'openssl/crypto/thread/arch/thread_win.c', + 'openssl/crypto/thread/api.c', + 'openssl/crypto/thread/arch.c', + 'openssl/crypto/thread/internal.c', 'openssl/providers/common/der/der_rsa_sig.c', 'openssl/providers/common/bio_prov.c', 'openssl/providers/common/capabilities.c', @@ -190,6 +220,7 @@ 'openssl/providers/common/provider_util.c', 'openssl/providers/common/securitycheck.c', 'openssl/providers/common/securitycheck_fips.c', + 'openssl/providers/fips/fipsindicator.c', 'openssl/providers/fips/fipsprov.c', 'openssl/providers/fips/self_test.c', 'openssl/providers/fips/self_test_kats.c', @@ -227,6 +258,8 @@ 'openssl/providers/implementations/kdfs/sskdf.c', 'openssl/providers/implementations/kdfs/tls1_prf.c', 'openssl/providers/implementations/kdfs/x942kdf.c', + 'openssl/providers/implementations/kem/ml_kem_kem.c', + 'openssl/providers/implementations/kem/mlx_kem.c', 'openssl/providers/implementations/kem/rsa_kem.c', 'openssl/providers/implementations/keymgmt/dh_kmgmt.c', 'openssl/providers/implementations/keymgmt/dsa_kmgmt.c', @@ -234,29 +267,39 @@ 'openssl/providers/implementations/keymgmt/ecx_kmgmt.c', 'openssl/providers/implementations/keymgmt/kdf_legacy_kmgmt.c', 'openssl/providers/implementations/keymgmt/mac_legacy_kmgmt.c', + 'openssl/providers/implementations/keymgmt/ml_dsa_kmgmt.c', + 'openssl/providers/implementations/keymgmt/ml_kem_kmgmt.c', + 'openssl/providers/implementations/keymgmt/mlx_kmgmt.c', 'openssl/providers/implementations/keymgmt/rsa_kmgmt.c', + 'openssl/providers/implementations/keymgmt/slh_dsa_kmgmt.c', 'openssl/providers/implementations/macs/cmac_prov.c', 'openssl/providers/implementations/macs/gmac_prov.c', 'openssl/providers/implementations/macs/hmac_prov.c', 'openssl/providers/implementations/macs/kmac_prov.c', - 'openssl/providers/implementations/rands/crngt.c', 'openssl/providers/implementations/rands/drbg.c', 'openssl/providers/implementations/rands/drbg_ctr.c', 'openssl/providers/implementations/rands/drbg_hash.c', 'openssl/providers/implementations/rands/drbg_hmac.c', + 'openssl/providers/implementations/rands/fips_crng_test.c', 'openssl/providers/implementations/rands/test_rng.c', 'openssl/providers/implementations/signature/dsa_sig.c', 'openssl/providers/implementations/signature/ecdsa_sig.c', 'openssl/providers/implementations/signature/eddsa_sig.c', 'openssl/providers/implementations/signature/mac_legacy_sig.c', + 'openssl/providers/implementations/signature/ml_dsa_sig.c', 'openssl/providers/implementations/signature/rsa_sig.c', - 'openssl/ssl/s3_cbc.c', + 'openssl/providers/implementations/signature/slh_dsa_sig.c', + 'openssl/providers/implementations/skeymgmt/aes_skmgmt.c', + 'openssl/providers/implementations/skeymgmt/generic.c', + 'openssl/ssl/record/methods/ssl3_cbc.c', 'openssl/providers/common/der/der_dsa_key.c', 'openssl/providers/common/der/der_dsa_sig.c', 'openssl/providers/common/der/der_ec_key.c', 'openssl/providers/common/der/der_ec_sig.c', 'openssl/providers/common/der/der_ecx_key.c', + 'openssl/providers/common/der/der_ml_dsa_key.c', 'openssl/providers/common/der/der_rsa_key.c', + 'openssl/providers/common/der/der_slh_dsa_key.c', 'openssl/providers/common/provider_ctx.c', 'openssl/providers/common/provider_err.c', 'openssl/providers/implementations/ciphers/ciphercommon.c', @@ -267,17 +310,20 @@ 'openssl/providers/implementations/ciphers/ciphercommon_gcm_hw.c', 'openssl/providers/implementations/ciphers/ciphercommon_hw.c', 'openssl/providers/implementations/digests/digestcommon.c', - 'openssl/ssl/record/tls_pad.c', + 'openssl/ssl/record/methods/tls_pad.c', 'openssl/providers/fips/fips_entry.c', ], 'openssl_sources_darwin-i386-cc': [ + './config/archs/darwin-i386-cc/no-asm/crypto/params_idx.c', './config/archs/darwin-i386-cc/no-asm/providers/common/der/der_sm2_gen.c', './config/archs/darwin-i386-cc/no-asm/providers/common/der/der_digests_gen.c', './config/archs/darwin-i386-cc/no-asm/providers/common/der/der_dsa_gen.c', './config/archs/darwin-i386-cc/no-asm/providers/common/der/der_ec_gen.c', './config/archs/darwin-i386-cc/no-asm/providers/common/der/der_ecx_gen.c', + './config/archs/darwin-i386-cc/no-asm/providers/common/der/der_ml_dsa_gen.c', './config/archs/darwin-i386-cc/no-asm/providers/common/der/der_rsa_gen.c', + './config/archs/darwin-i386-cc/no-asm/providers/common/der/der_slh_dsa_gen.c', './config/archs/darwin-i386-cc/no-asm/providers/common/der/der_wrap_gen.c', ], diff --git a/deps/openssl/config/archs/darwin-i386-cc/no-asm/openssl.gypi b/deps/openssl/config/archs/darwin-i386-cc/no-asm/openssl.gypi index fb2e7f750ac6fc..cc59c0f6807c8e 100644 --- a/deps/openssl/config/archs/darwin-i386-cc/no-asm/openssl.gypi +++ b/deps/openssl/config/archs/darwin-i386-cc/no-asm/openssl.gypi @@ -7,14 +7,15 @@ 'openssl/ssl/d1_srtp.c', 'openssl/ssl/methods.c', 'openssl/ssl/pqueue.c', + 'openssl/ssl/priority_queue.c', 'openssl/ssl/s3_enc.c', 'openssl/ssl/s3_lib.c', 'openssl/ssl/s3_msg.c', 'openssl/ssl/ssl_asn1.c', 'openssl/ssl/ssl_cert.c', + 'openssl/ssl/ssl_cert_comp.c', 'openssl/ssl/ssl_ciph.c', 'openssl/ssl/ssl_conf.c', - 'openssl/ssl/ssl_err.c', 'openssl/ssl/ssl_err_legacy.c', 'openssl/ssl/ssl_init.c', 'openssl/ssl/ssl_lib.c', @@ -31,12 +32,60 @@ 'openssl/ssl/tls13_enc.c', 'openssl/ssl/tls_depr.c', 'openssl/ssl/tls_srp.c', - 'openssl/ssl/record/dtls1_bitmap.c', + 'openssl/ssl/quic/cc_newreno.c', + 'openssl/ssl/quic/json_enc.c', + 'openssl/ssl/quic/qlog.c', + 'openssl/ssl/quic/qlog_event_helpers.c', + 'openssl/ssl/quic/quic_ackm.c', + 'openssl/ssl/quic/quic_cfq.c', + 'openssl/ssl/quic/quic_channel.c', + 'openssl/ssl/quic/quic_demux.c', + 'openssl/ssl/quic/quic_engine.c', + 'openssl/ssl/quic/quic_fc.c', + 'openssl/ssl/quic/quic_fifd.c', + 'openssl/ssl/quic/quic_impl.c', + 'openssl/ssl/quic/quic_lcidm.c', + 'openssl/ssl/quic/quic_method.c', + 'openssl/ssl/quic/quic_obj.c', + 'openssl/ssl/quic/quic_port.c', + 'openssl/ssl/quic/quic_rcidm.c', + 'openssl/ssl/quic/quic_reactor.c', + 'openssl/ssl/quic/quic_reactor_wait_ctx.c', + 'openssl/ssl/quic/quic_record_rx.c', + 'openssl/ssl/quic/quic_record_shared.c', + 'openssl/ssl/quic/quic_record_tx.c', + 'openssl/ssl/quic/quic_record_util.c', + 'openssl/ssl/quic/quic_rstream.c', + 'openssl/ssl/quic/quic_rx_depack.c', + 'openssl/ssl/quic/quic_sf_list.c', + 'openssl/ssl/quic/quic_srt_gen.c', + 'openssl/ssl/quic/quic_srtm.c', + 'openssl/ssl/quic/quic_sstream.c', + 'openssl/ssl/quic/quic_statm.c', + 'openssl/ssl/quic/quic_stream_map.c', + 'openssl/ssl/quic/quic_thread_assist.c', + 'openssl/ssl/quic/quic_tls.c', + 'openssl/ssl/quic/quic_tls_api.c', + 'openssl/ssl/quic/quic_trace.c', + 'openssl/ssl/quic/quic_tserver.c', + 'openssl/ssl/quic/quic_txp.c', + 'openssl/ssl/quic/quic_txpim.c', + 'openssl/ssl/quic/quic_types.c', + 'openssl/ssl/quic/quic_wire.c', + 'openssl/ssl/quic/quic_wire_pkt.c', + 'openssl/ssl/quic/uint_set.c', 'openssl/ssl/record/rec_layer_d1.c', 'openssl/ssl/record/rec_layer_s3.c', - 'openssl/ssl/record/ssl3_buffer.c', - 'openssl/ssl/record/ssl3_record.c', - 'openssl/ssl/record/ssl3_record_tls13.c', + 'openssl/ssl/record/methods/dtls_meth.c', + 'openssl/ssl/record/methods/ssl3_meth.c', + 'openssl/ssl/record/methods/tls13_meth.c', + 'openssl/ssl/record/methods/tls1_meth.c', + 'openssl/ssl/record/methods/tls_common.c', + 'openssl/ssl/record/methods/tls_multib.c', + 'openssl/ssl/record/methods/tlsany_meth.c', + 'openssl/ssl/rio/poll_builder.c', + 'openssl/ssl/rio/poll_immediate.c', + 'openssl/ssl/rio/rio_notifier.c', 'openssl/ssl/statem/extensions.c', 'openssl/ssl/statem/extensions_clnt.c', 'openssl/ssl/statem/extensions_cust.c', @@ -150,6 +199,7 @@ 'openssl/crypto/bio/bss_conn.c', 'openssl/crypto/bio/bss_core.c', 'openssl/crypto/bio/bss_dgram.c', + 'openssl/crypto/bio/bss_dgram_pair.c', 'openssl/crypto/bio/bss_fd.c', 'openssl/crypto/bio/bss_file.c', 'openssl/crypto/bio/bss_log.c', @@ -210,6 +260,7 @@ 'openssl/crypto/cmp/cmp_client.c', 'openssl/crypto/cmp/cmp_ctx.c', 'openssl/crypto/cmp/cmp_err.c', + 'openssl/crypto/cmp/cmp_genm.c', 'openssl/crypto/cmp/cmp_hdr.c', 'openssl/crypto/cmp/cmp_http.c', 'openssl/crypto/cmp/cmp_msg.c', @@ -385,7 +436,9 @@ 'openssl/crypto/err/err_all.c', 'openssl/crypto/err/err_all_legacy.c', 'openssl/crypto/err/err_blocks.c', + 'openssl/crypto/err/err_mark.c', 'openssl/crypto/err/err_prn.c', + 'openssl/crypto/err/err_save.c', 'openssl/crypto/ess/ess_asn1.c', 'openssl/crypto/ess/ess_err.c', 'openssl/crypto/ess/ess_lib.c', @@ -468,7 +521,9 @@ 'openssl/crypto/evp/pmeth_check.c', 'openssl/crypto/evp/pmeth_gn.c', 'openssl/crypto/evp/pmeth_lib.c', + 'openssl/crypto/evp/s_lib.c', 'openssl/crypto/evp/signature.c', + 'openssl/crypto/evp/skeymgmt_meth.c', 'openssl/crypto/ffc/ffc_backend.c', 'openssl/crypto/ffc/ffc_dh.c', 'openssl/crypto/ffc/ffc_key_generate.c', @@ -476,7 +531,11 @@ 'openssl/crypto/ffc/ffc_params.c', 'openssl/crypto/ffc/ffc_params_generate.c', 'openssl/crypto/ffc/ffc_params_validate.c', + 'openssl/crypto/hashtable/hashfunc.c', + 'openssl/crypto/hashtable/hashtable.c', 'openssl/crypto/hmac/hmac.c', + 'openssl/crypto/hpke/hpke.c', + 'openssl/crypto/hpke/hpke_util.c', 'openssl/crypto/http/http_client.c', 'openssl/crypto/http/http_err.c', 'openssl/crypto/http/http_lib.c', @@ -490,6 +549,7 @@ 'openssl/crypto/lhash/lhash.c', 'openssl/crypto/asn1_dsa.c', 'openssl/crypto/bsearch.c', + 'openssl/crypto/comp_methods.c', 'openssl/crypto/context.c', 'openssl/crypto/core_algorithm.c', 'openssl/crypto/core_fetch.c', @@ -499,10 +559,13 @@ 'openssl/crypto/cryptlib.c', 'openssl/crypto/ctype.c', 'openssl/crypto/cversion.c', + 'openssl/crypto/defaults.c', 'openssl/crypto/der_writer.c', + 'openssl/crypto/deterministic_nonce.c', 'openssl/crypto/ebcdic.c', 'openssl/crypto/ex_data.c', 'openssl/crypto/getenv.c', + 'openssl/crypto/indicator_core.c', 'openssl/crypto/info.c', 'openssl/crypto/init.c', 'openssl/crypto/initthread.c', @@ -527,12 +590,16 @@ 'openssl/crypto/provider_core.c', 'openssl/crypto/provider_predefined.c', 'openssl/crypto/punycode.c', + 'openssl/crypto/quic_vlint.c', 'openssl/crypto/self_test_core.c', + 'openssl/crypto/sleep.c', 'openssl/crypto/sparse_array.c', + 'openssl/crypto/ssl_err.c', 'openssl/crypto/threads_lib.c', 'openssl/crypto/threads_none.c', 'openssl/crypto/threads_pthread.c', 'openssl/crypto/threads_win.c', + 'openssl/crypto/time.c', 'openssl/crypto/trace.c', 'openssl/crypto/uid.c', 'openssl/crypto/md4/md4_dgst.c', @@ -542,6 +609,15 @@ 'openssl/crypto/md5/md5_sha1.c', 'openssl/crypto/mdc2/mdc2_one.c', 'openssl/crypto/mdc2/mdc2dgst.c', + 'openssl/crypto/ml_dsa/ml_dsa_encoders.c', + 'openssl/crypto/ml_dsa/ml_dsa_key.c', + 'openssl/crypto/ml_dsa/ml_dsa_key_compress.c', + 'openssl/crypto/ml_dsa/ml_dsa_matrix.c', + 'openssl/crypto/ml_dsa/ml_dsa_ntt.c', + 'openssl/crypto/ml_dsa/ml_dsa_params.c', + 'openssl/crypto/ml_dsa/ml_dsa_sample.c', + 'openssl/crypto/ml_dsa/ml_dsa_sign.c', + 'openssl/crypto/ml_kem/ml_kem.c', 'openssl/crypto/modes/cbc128.c', 'openssl/crypto/modes/ccm128.c', 'openssl/crypto/modes/cfb128.c', @@ -553,6 +629,7 @@ 'openssl/crypto/modes/siv128.c', 'openssl/crypto/modes/wrap128.c', 'openssl/crypto/modes/xts128.c', + 'openssl/crypto/modes/xts128gb.c', 'openssl/crypto/objects/o_names.c', 'openssl/crypto/objects/obj_dat.c', 'openssl/crypto/objects/obj_err.c', @@ -616,6 +693,7 @@ 'openssl/crypto/rand/rand_lib.c', 'openssl/crypto/rand/rand_meth.c', 'openssl/crypto/rand/rand_pool.c', + 'openssl/crypto/rand/rand_uniform.c', 'openssl/crypto/rand/randfile.c', 'openssl/crypto/rc2/rc2_cbc.c', 'openssl/crypto/rc2/rc2_ecb.c', @@ -664,6 +742,16 @@ 'openssl/crypto/sha/sha3.c', 'openssl/crypto/sha/sha512.c', 'openssl/crypto/siphash/siphash.c', + 'openssl/crypto/slh_dsa/slh_adrs.c', + 'openssl/crypto/slh_dsa/slh_dsa.c', + 'openssl/crypto/slh_dsa/slh_dsa_hash_ctx.c', + 'openssl/crypto/slh_dsa/slh_dsa_key.c', + 'openssl/crypto/slh_dsa/slh_fors.c', + 'openssl/crypto/slh_dsa/slh_hash.c', + 'openssl/crypto/slh_dsa/slh_hypertree.c', + 'openssl/crypto/slh_dsa/slh_params.c', + 'openssl/crypto/slh_dsa/slh_wots.c', + 'openssl/crypto/slh_dsa/slh_xmss.c', 'openssl/crypto/sm2/sm2_crypt.c', 'openssl/crypto/sm2/sm2_err.c', 'openssl/crypto/sm2/sm2_key.c', @@ -681,6 +769,12 @@ 'openssl/crypto/store/store_register.c', 'openssl/crypto/store/store_result.c', 'openssl/crypto/store/store_strings.c', + 'openssl/crypto/thread/arch/thread_none.c', + 'openssl/crypto/thread/arch/thread_posix.c', + 'openssl/crypto/thread/arch/thread_win.c', + 'openssl/crypto/thread/api.c', + 'openssl/crypto/thread/arch.c', + 'openssl/crypto/thread/internal.c', 'openssl/crypto/ts/ts_asn1.c', 'openssl/crypto/ts/ts_conf.c', 'openssl/crypto/ts/ts_err.c', @@ -709,14 +803,22 @@ 'openssl/crypto/x509/pcy_map.c', 'openssl/crypto/x509/pcy_node.c', 'openssl/crypto/x509/pcy_tree.c', + 'openssl/crypto/x509/t_acert.c', 'openssl/crypto/x509/t_crl.c', 'openssl/crypto/x509/t_req.c', 'openssl/crypto/x509/t_x509.c', + 'openssl/crypto/x509/v3_aaa.c', + 'openssl/crypto/x509/v3_ac_tgt.c', 'openssl/crypto/x509/v3_addr.c', 'openssl/crypto/x509/v3_admis.c', 'openssl/crypto/x509/v3_akeya.c', 'openssl/crypto/x509/v3_akid.c', 'openssl/crypto/x509/v3_asid.c', + 'openssl/crypto/x509/v3_attrdesc.c', + 'openssl/crypto/x509/v3_attrmap.c', + 'openssl/crypto/x509/v3_audit_id.c', + 'openssl/crypto/x509/v3_authattid.c', + 'openssl/crypto/x509/v3_battcons.c', 'openssl/crypto/x509/v3_bcons.c', 'openssl/crypto/x509/v3_bitst.c', 'openssl/crypto/x509/v3_conf.c', @@ -725,12 +827,17 @@ 'openssl/crypto/x509/v3_enum.c', 'openssl/crypto/x509/v3_extku.c', 'openssl/crypto/x509/v3_genn.c', + 'openssl/crypto/x509/v3_group_ac.c', 'openssl/crypto/x509/v3_ia5.c', + 'openssl/crypto/x509/v3_ind_iss.c', 'openssl/crypto/x509/v3_info.c', 'openssl/crypto/x509/v3_int.c', + 'openssl/crypto/x509/v3_iobo.c', 'openssl/crypto/x509/v3_ist.c', 'openssl/crypto/x509/v3_lib.c', 'openssl/crypto/x509/v3_ncons.c', + 'openssl/crypto/x509/v3_no_ass.c', + 'openssl/crypto/x509/v3_no_rev_avail.c', 'openssl/crypto/x509/v3_pci.c', 'openssl/crypto/x509/v3_pcia.c', 'openssl/crypto/x509/v3_pcons.c', @@ -738,13 +845,20 @@ 'openssl/crypto/x509/v3_pmaps.c', 'openssl/crypto/x509/v3_prn.c', 'openssl/crypto/x509/v3_purp.c', + 'openssl/crypto/x509/v3_rolespec.c', 'openssl/crypto/x509/v3_san.c', + 'openssl/crypto/x509/v3_sda.c', + 'openssl/crypto/x509/v3_single_use.c', 'openssl/crypto/x509/v3_skid.c', + 'openssl/crypto/x509/v3_soa_id.c', 'openssl/crypto/x509/v3_sxnet.c', + 'openssl/crypto/x509/v3_timespec.c', 'openssl/crypto/x509/v3_tlsf.c', + 'openssl/crypto/x509/v3_usernotice.c', 'openssl/crypto/x509/v3_utf8.c', 'openssl/crypto/x509/v3_utl.c', 'openssl/crypto/x509/v3err.c', + 'openssl/crypto/x509/x509_acert.c', 'openssl/crypto/x509/x509_att.c', 'openssl/crypto/x509/x509_cmp.c', 'openssl/crypto/x509/x509_d2.c', @@ -762,6 +876,7 @@ 'openssl/crypto/x509/x509_v3.c', 'openssl/crypto/x509/x509_vfy.c', 'openssl/crypto/x509/x509_vpm.c', + 'openssl/crypto/x509/x509aset.c', 'openssl/crypto/x509/x509cset.c', 'openssl/crypto/x509/x509name.c', 'openssl/crypto/x509/x509rset.c', @@ -771,6 +886,7 @@ 'openssl/crypto/x509/x_attrib.c', 'openssl/crypto/x509/x_crl.c', 'openssl/crypto/x509/x_exten.c', + 'openssl/crypto/x509/x_ietfatt.c', 'openssl/crypto/x509/x_name.c', 'openssl/crypto/x509/x_pubkey.c', 'openssl/crypto/x509/x_req.c', @@ -802,6 +918,9 @@ 'openssl/providers/implementations/ciphers/cipher_aes_ccm_hw.c', 'openssl/providers/implementations/ciphers/cipher_aes_gcm.c', 'openssl/providers/implementations/ciphers/cipher_aes_gcm_hw.c', + 'openssl/providers/implementations/ciphers/cipher_aes_gcm_siv.c', + 'openssl/providers/implementations/ciphers/cipher_aes_gcm_siv_hw.c', + 'openssl/providers/implementations/ciphers/cipher_aes_gcm_siv_polyval.c', 'openssl/providers/implementations/ciphers/cipher_aes_hw.c', 'openssl/providers/implementations/ciphers/cipher_aes_ocb.c', 'openssl/providers/implementations/ciphers/cipher_aes_ocb_hw.c', @@ -826,7 +945,13 @@ 'openssl/providers/implementations/ciphers/cipher_cts.c', 'openssl/providers/implementations/ciphers/cipher_null.c', 'openssl/providers/implementations/ciphers/cipher_sm4.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_ccm.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_ccm_hw.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_gcm.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_gcm_hw.c', 'openssl/providers/implementations/ciphers/cipher_sm4_hw.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_xts.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_xts_hw.c', 'openssl/providers/implementations/ciphers/cipher_tdes.c', 'openssl/providers/implementations/ciphers/cipher_tdes_common.c', 'openssl/providers/implementations/ciphers/cipher_tdes_default.c', @@ -855,11 +980,16 @@ 'openssl/providers/implementations/encode_decode/encode_key2ms.c', 'openssl/providers/implementations/encode_decode/encode_key2text.c', 'openssl/providers/implementations/encode_decode/endecoder_common.c', + 'openssl/providers/implementations/encode_decode/ml_common_codecs.c', + 'openssl/providers/implementations/encode_decode/ml_dsa_codecs.c', + 'openssl/providers/implementations/encode_decode/ml_kem_codecs.c', 'openssl/providers/implementations/exchange/dh_exch.c', 'openssl/providers/implementations/exchange/ecdh_exch.c', 'openssl/providers/implementations/exchange/ecx_exch.c', 'openssl/providers/implementations/exchange/kdf_exch.c', + 'openssl/providers/implementations/kdfs/argon2.c', 'openssl/providers/implementations/kdfs/hkdf.c', + 'openssl/providers/implementations/kdfs/hmacdrbg_kdf.c', 'openssl/providers/implementations/kdfs/kbkdf.c', 'openssl/providers/implementations/kdfs/krb5kdf.c', 'openssl/providers/implementations/kdfs/pbkdf2.c', @@ -870,6 +1000,11 @@ 'openssl/providers/implementations/kdfs/sskdf.c', 'openssl/providers/implementations/kdfs/tls1_prf.c', 'openssl/providers/implementations/kdfs/x942kdf.c', + 'openssl/providers/implementations/kem/ec_kem.c', + 'openssl/providers/implementations/kem/ecx_kem.c', + 'openssl/providers/implementations/kem/kem_util.c', + 'openssl/providers/implementations/kem/ml_kem_kem.c', + 'openssl/providers/implementations/kem/mlx_kem.c', 'openssl/providers/implementations/kem/rsa_kem.c', 'openssl/providers/implementations/keymgmt/dh_kmgmt.c', 'openssl/providers/implementations/keymgmt/dsa_kmgmt.c', @@ -877,7 +1012,11 @@ 'openssl/providers/implementations/keymgmt/ecx_kmgmt.c', 'openssl/providers/implementations/keymgmt/kdf_legacy_kmgmt.c', 'openssl/providers/implementations/keymgmt/mac_legacy_kmgmt.c', + 'openssl/providers/implementations/keymgmt/ml_dsa_kmgmt.c', + 'openssl/providers/implementations/keymgmt/ml_kem_kmgmt.c', + 'openssl/providers/implementations/keymgmt/mlx_kmgmt.c', 'openssl/providers/implementations/keymgmt/rsa_kmgmt.c', + 'openssl/providers/implementations/keymgmt/slh_dsa_kmgmt.c', 'openssl/providers/implementations/macs/blake2b_mac.c', 'openssl/providers/implementations/macs/blake2s_mac.c', 'openssl/providers/implementations/macs/cmac_prov.c', @@ -886,12 +1025,12 @@ 'openssl/providers/implementations/macs/kmac_prov.c', 'openssl/providers/implementations/macs/poly1305_prov.c', 'openssl/providers/implementations/macs/siphash_prov.c', - 'openssl/providers/implementations/rands/crngt.c', 'openssl/providers/implementations/rands/drbg.c', 'openssl/providers/implementations/rands/drbg_ctr.c', 'openssl/providers/implementations/rands/drbg_hash.c', 'openssl/providers/implementations/rands/drbg_hmac.c', 'openssl/providers/implementations/rands/seed_src.c', + 'openssl/providers/implementations/rands/seed_src_jitter.c', 'openssl/providers/implementations/rands/test_rng.c', 'openssl/providers/implementations/rands/seeding/rand_cpu_x86.c', 'openssl/providers/implementations/rands/seeding/rand_tsc.c', @@ -901,17 +1040,23 @@ 'openssl/providers/implementations/signature/ecdsa_sig.c', 'openssl/providers/implementations/signature/eddsa_sig.c', 'openssl/providers/implementations/signature/mac_legacy_sig.c', + 'openssl/providers/implementations/signature/ml_dsa_sig.c', 'openssl/providers/implementations/signature/rsa_sig.c', + 'openssl/providers/implementations/signature/slh_dsa_sig.c', 'openssl/providers/implementations/signature/sm2_sig.c', + 'openssl/providers/implementations/skeymgmt/aes_skmgmt.c', + 'openssl/providers/implementations/skeymgmt/generic.c', 'openssl/providers/implementations/storemgmt/file_store.c', 'openssl/providers/implementations/storemgmt/file_store_any2obj.c', - 'openssl/ssl/s3_cbc.c', + 'openssl/ssl/record/methods/ssl3_cbc.c', 'openssl/providers/common/der/der_dsa_key.c', 'openssl/providers/common/der/der_dsa_sig.c', 'openssl/providers/common/der/der_ec_key.c', 'openssl/providers/common/der/der_ec_sig.c', 'openssl/providers/common/der/der_ecx_key.c', + 'openssl/providers/common/der/der_ml_dsa_key.c', 'openssl/providers/common/der/der_rsa_key.c', + 'openssl/providers/common/der/der_slh_dsa_key.c', 'openssl/providers/common/provider_ctx.c', 'openssl/providers/common/provider_err.c', 'openssl/providers/implementations/ciphers/ciphercommon.c', @@ -922,7 +1067,7 @@ 'openssl/providers/implementations/ciphers/ciphercommon_gcm_hw.c', 'openssl/providers/implementations/ciphers/ciphercommon_hw.c', 'openssl/providers/implementations/digests/digestcommon.c', - 'openssl/ssl/record/tls_pad.c', + 'openssl/ssl/record/methods/tls_pad.c', 'openssl/providers/implementations/ciphers/cipher_blowfish.c', 'openssl/providers/implementations/ciphers/cipher_blowfish_hw.c', 'openssl/providers/implementations/ciphers/cipher_cast5.c', @@ -947,16 +1092,20 @@ 'openssl/providers/implementations/digests/ripemd_prov.c', 'openssl/providers/implementations/digests/wp_prov.c', 'openssl/providers/implementations/kdfs/pbkdf1.c', + 'openssl/providers/implementations/kdfs/pvkkdf.c', 'openssl/providers/prov_running.c', 'openssl/providers/legacyprov.c', ], 'openssl_sources_darwin-i386-cc': [ + './config/archs/darwin-i386-cc/no-asm/crypto/params_idx.c', './config/archs/darwin-i386-cc/no-asm/providers/common/der/der_sm2_gen.c', './config/archs/darwin-i386-cc/no-asm/providers/common/der/der_digests_gen.c', './config/archs/darwin-i386-cc/no-asm/providers/common/der/der_dsa_gen.c', './config/archs/darwin-i386-cc/no-asm/providers/common/der/der_ec_gen.c', './config/archs/darwin-i386-cc/no-asm/providers/common/der/der_ecx_gen.c', + './config/archs/darwin-i386-cc/no-asm/providers/common/der/der_ml_dsa_gen.c', './config/archs/darwin-i386-cc/no-asm/providers/common/der/der_rsa_gen.c', + './config/archs/darwin-i386-cc/no-asm/providers/common/der/der_slh_dsa_gen.c', './config/archs/darwin-i386-cc/no-asm/providers/common/der/der_wrap_gen.c', ], 'openssl_defines_darwin-i386-cc': [ diff --git a/deps/openssl/config/archs/darwin-i386-cc/no-asm/providers/common/der/der_ml_dsa_gen.c b/deps/openssl/config/archs/darwin-i386-cc/no-asm/providers/common/der/der_ml_dsa_gen.c new file mode 100644 index 00000000000000..4a8a113a268578 --- /dev/null +++ b/deps/openssl/config/archs/darwin-i386-cc/no-asm/providers/common/der/der_ml_dsa_gen.c @@ -0,0 +1,37 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from providers/common/der/der_ml_dsa_gen.c.in + * + * Copyright 2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include "prov/der_ml_dsa.h" + +/* Well known OIDs precompiled */ + +/* + * id-ml-dsa-44 OBJECT IDENTIFIER ::= { sigAlgs 17 } + */ +const unsigned char ossl_der_oid_id_ml_dsa_44[DER_OID_SZ_id_ml_dsa_44] = { + DER_OID_V_id_ml_dsa_44 +}; + +/* + * id-ml-dsa-65 OBJECT IDENTIFIER ::= { sigAlgs 18 } + */ +const unsigned char ossl_der_oid_id_ml_dsa_65[DER_OID_SZ_id_ml_dsa_65] = { + DER_OID_V_id_ml_dsa_65 +}; + +/* + * id-ml-dsa-87 OBJECT IDENTIFIER ::= { sigAlgs 19 } + */ +const unsigned char ossl_der_oid_id_ml_dsa_87[DER_OID_SZ_id_ml_dsa_87] = { + DER_OID_V_id_ml_dsa_87 +}; + diff --git a/deps/openssl/config/archs/darwin-i386-cc/no-asm/providers/common/der/der_slh_dsa_gen.c b/deps/openssl/config/archs/darwin-i386-cc/no-asm/providers/common/der/der_slh_dsa_gen.c new file mode 100644 index 00000000000000..1419a9515097dd --- /dev/null +++ b/deps/openssl/config/archs/darwin-i386-cc/no-asm/providers/common/der/der_slh_dsa_gen.c @@ -0,0 +1,100 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from providers/common/der/der_slh_dsa_gen.c.in + * + * Copyright 2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include "prov/der_slh_dsa.h" + +/* Well known OIDs precompiled */ + +/* + * id-slh-dsa-sha2-128s OBJECT IDENTIFIER ::= { sigAlgs 20 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_128s[DER_OID_SZ_id_slh_dsa_sha2_128s] = { + DER_OID_V_id_slh_dsa_sha2_128s +}; + +/* + * id-slh-dsa-sha2-128f OBJECT IDENTIFIER ::= { sigAlgs 21 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_128f[DER_OID_SZ_id_slh_dsa_sha2_128f] = { + DER_OID_V_id_slh_dsa_sha2_128f +}; + +/* + * id-slh-dsa-sha2-192s OBJECT IDENTIFIER ::= { sigAlgs 22 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_192s[DER_OID_SZ_id_slh_dsa_sha2_192s] = { + DER_OID_V_id_slh_dsa_sha2_192s +}; + +/* + * id-slh-dsa-sha2-192f OBJECT IDENTIFIER ::= { sigAlgs 23 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_192f[DER_OID_SZ_id_slh_dsa_sha2_192f] = { + DER_OID_V_id_slh_dsa_sha2_192f +}; + +/* + * id-slh-dsa-sha2-256s OBJECT IDENTIFIER ::= { sigAlgs 24 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_256s[DER_OID_SZ_id_slh_dsa_sha2_256s] = { + DER_OID_V_id_slh_dsa_sha2_256s +}; + +/* + * id-slh-dsa-sha2-256f OBJECT IDENTIFIER ::= { sigAlgs 25 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_256f[DER_OID_SZ_id_slh_dsa_sha2_256f] = { + DER_OID_V_id_slh_dsa_sha2_256f +}; + +/* + * id-slh-dsa-shake-128s OBJECT IDENTIFIER ::= { sigAlgs 26 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_128s[DER_OID_SZ_id_slh_dsa_shake_128s] = { + DER_OID_V_id_slh_dsa_shake_128s +}; + +/* + * id-slh-dsa-shake-128f OBJECT IDENTIFIER ::= { sigAlgs 27 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_128f[DER_OID_SZ_id_slh_dsa_shake_128f] = { + DER_OID_V_id_slh_dsa_shake_128f +}; + +/* + * id-slh-dsa-shake-192s OBJECT IDENTIFIER ::= { sigAlgs 28 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_192s[DER_OID_SZ_id_slh_dsa_shake_192s] = { + DER_OID_V_id_slh_dsa_shake_192s +}; + +/* + * id-slh-dsa-shake-192f OBJECT IDENTIFIER ::= { sigAlgs 29 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_192f[DER_OID_SZ_id_slh_dsa_shake_192f] = { + DER_OID_V_id_slh_dsa_shake_192f +}; + +/* + * id-slh-dsa-shake-256s OBJECT IDENTIFIER ::= { sigAlgs 30 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_256s[DER_OID_SZ_id_slh_dsa_shake_256s] = { + DER_OID_V_id_slh_dsa_shake_256s +}; + +/* + * id-slh-dsa-shake-256f OBJECT IDENTIFIER ::= { sigAlgs 31 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_256f[DER_OID_SZ_id_slh_dsa_shake_256f] = { + DER_OID_V_id_slh_dsa_shake_256f +}; + diff --git a/deps/openssl/config/archs/darwin-i386-cc/no-asm/providers/common/include/prov/der_ml_dsa.h b/deps/openssl/config/archs/darwin-i386-cc/no-asm/providers/common/include/prov/der_ml_dsa.h new file mode 100644 index 00000000000000..c55f780ab4527c --- /dev/null +++ b/deps/openssl/config/archs/darwin-i386-cc/no-asm/providers/common/include/prov/der_ml_dsa.h @@ -0,0 +1,40 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from providers/common/include/prov/der_ml_dsa.h.in + * + * Copyright 2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include "internal/der.h" +#include "crypto/ml_dsa.h" + +/* Well known OIDs precompiled */ + +/* + * id-ml-dsa-44 OBJECT IDENTIFIER ::= { sigAlgs 17 } + */ +#define DER_OID_V_id_ml_dsa_44 DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x11 +#define DER_OID_SZ_id_ml_dsa_44 11 +extern const unsigned char ossl_der_oid_id_ml_dsa_44[DER_OID_SZ_id_ml_dsa_44]; + +/* + * id-ml-dsa-65 OBJECT IDENTIFIER ::= { sigAlgs 18 } + */ +#define DER_OID_V_id_ml_dsa_65 DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x12 +#define DER_OID_SZ_id_ml_dsa_65 11 +extern const unsigned char ossl_der_oid_id_ml_dsa_65[DER_OID_SZ_id_ml_dsa_65]; + +/* + * id-ml-dsa-87 OBJECT IDENTIFIER ::= { sigAlgs 19 } + */ +#define DER_OID_V_id_ml_dsa_87 DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x13 +#define DER_OID_SZ_id_ml_dsa_87 11 +extern const unsigned char ossl_der_oid_id_ml_dsa_87[DER_OID_SZ_id_ml_dsa_87]; + + +int ossl_DER_w_algorithmIdentifier_ML_DSA(WPACKET *pkt, int tag, ML_DSA_KEY *key); diff --git a/deps/openssl/config/archs/darwin-i386-cc/no-asm/providers/common/include/prov/der_slh_dsa.h b/deps/openssl/config/archs/darwin-i386-cc/no-asm/providers/common/include/prov/der_slh_dsa.h new file mode 100644 index 00000000000000..760f8e7699be72 --- /dev/null +++ b/deps/openssl/config/archs/darwin-i386-cc/no-asm/providers/common/include/prov/der_slh_dsa.h @@ -0,0 +1,103 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from providers/common/include/prov/der_slh_dsa.h.in + * + * Copyright 2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include "internal/der.h" +#include "crypto/slh_dsa.h" + +/* Well known OIDs precompiled */ + +/* + * id-slh-dsa-sha2-128s OBJECT IDENTIFIER ::= { sigAlgs 20 } + */ +#define DER_OID_V_id_slh_dsa_sha2_128s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x14 +#define DER_OID_SZ_id_slh_dsa_sha2_128s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_128s[DER_OID_SZ_id_slh_dsa_sha2_128s]; + +/* + * id-slh-dsa-sha2-128f OBJECT IDENTIFIER ::= { sigAlgs 21 } + */ +#define DER_OID_V_id_slh_dsa_sha2_128f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x15 +#define DER_OID_SZ_id_slh_dsa_sha2_128f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_128f[DER_OID_SZ_id_slh_dsa_sha2_128f]; + +/* + * id-slh-dsa-sha2-192s OBJECT IDENTIFIER ::= { sigAlgs 22 } + */ +#define DER_OID_V_id_slh_dsa_sha2_192s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x16 +#define DER_OID_SZ_id_slh_dsa_sha2_192s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_192s[DER_OID_SZ_id_slh_dsa_sha2_192s]; + +/* + * id-slh-dsa-sha2-192f OBJECT IDENTIFIER ::= { sigAlgs 23 } + */ +#define DER_OID_V_id_slh_dsa_sha2_192f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x17 +#define DER_OID_SZ_id_slh_dsa_sha2_192f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_192f[DER_OID_SZ_id_slh_dsa_sha2_192f]; + +/* + * id-slh-dsa-sha2-256s OBJECT IDENTIFIER ::= { sigAlgs 24 } + */ +#define DER_OID_V_id_slh_dsa_sha2_256s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x18 +#define DER_OID_SZ_id_slh_dsa_sha2_256s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_256s[DER_OID_SZ_id_slh_dsa_sha2_256s]; + +/* + * id-slh-dsa-sha2-256f OBJECT IDENTIFIER ::= { sigAlgs 25 } + */ +#define DER_OID_V_id_slh_dsa_sha2_256f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x19 +#define DER_OID_SZ_id_slh_dsa_sha2_256f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_256f[DER_OID_SZ_id_slh_dsa_sha2_256f]; + +/* + * id-slh-dsa-shake-128s OBJECT IDENTIFIER ::= { sigAlgs 26 } + */ +#define DER_OID_V_id_slh_dsa_shake_128s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1A +#define DER_OID_SZ_id_slh_dsa_shake_128s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_128s[DER_OID_SZ_id_slh_dsa_shake_128s]; + +/* + * id-slh-dsa-shake-128f OBJECT IDENTIFIER ::= { sigAlgs 27 } + */ +#define DER_OID_V_id_slh_dsa_shake_128f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1B +#define DER_OID_SZ_id_slh_dsa_shake_128f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_128f[DER_OID_SZ_id_slh_dsa_shake_128f]; + +/* + * id-slh-dsa-shake-192s OBJECT IDENTIFIER ::= { sigAlgs 28 } + */ +#define DER_OID_V_id_slh_dsa_shake_192s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1C +#define DER_OID_SZ_id_slh_dsa_shake_192s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_192s[DER_OID_SZ_id_slh_dsa_shake_192s]; + +/* + * id-slh-dsa-shake-192f OBJECT IDENTIFIER ::= { sigAlgs 29 } + */ +#define DER_OID_V_id_slh_dsa_shake_192f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1D +#define DER_OID_SZ_id_slh_dsa_shake_192f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_192f[DER_OID_SZ_id_slh_dsa_shake_192f]; + +/* + * id-slh-dsa-shake-256s OBJECT IDENTIFIER ::= { sigAlgs 30 } + */ +#define DER_OID_V_id_slh_dsa_shake_256s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1E +#define DER_OID_SZ_id_slh_dsa_shake_256s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_256s[DER_OID_SZ_id_slh_dsa_shake_256s]; + +/* + * id-slh-dsa-shake-256f OBJECT IDENTIFIER ::= { sigAlgs 31 } + */ +#define DER_OID_V_id_slh_dsa_shake_256f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1F +#define DER_OID_SZ_id_slh_dsa_shake_256f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_256f[DER_OID_SZ_id_slh_dsa_shake_256f]; + + +int ossl_DER_w_algorithmIdentifier_SLH_DSA(WPACKET *pkt, int tag, SLH_DSA_KEY *key); diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/asm/apps/progs.c b/deps/openssl/config/archs/darwin64-arm64-cc/asm/apps/progs.c index 43cef00799b86e..acc204a3e6e781 100644 --- a/deps/openssl/config/archs/darwin64-arm64-cc/asm/apps/progs.c +++ b/deps/openssl/config/archs/darwin64-arm64-cc/asm/apps/progs.c @@ -89,6 +89,7 @@ FUNCTION functions[] = { {FT_general, "s_time", s_time_main, s_time_options, NULL, NULL}, #endif {FT_general, "sess_id", sess_id_main, sess_id_options, NULL, NULL}, + {FT_general, "skeyutl", skeyutl_main, skeyutl_options, NULL, NULL}, {FT_general, "smime", smime_main, smime_options, NULL, NULL}, {FT_general, "speed", speed_main, speed_options, NULL, NULL}, {FT_general, "spkac", spkac_main, spkac_options, NULL, NULL}, @@ -225,9 +226,15 @@ FUNCTION functions[] = { {FT_cipher, "camellia-256-ecb", enc_main, enc_options, NULL}, #endif {FT_cipher, "base64", enc_main, enc_options, NULL}, -#ifdef ZLIB +#ifndef OPENSSL_NO_ZLIB {FT_cipher, "zlib", enc_main, enc_options, NULL}, #endif +#ifndef OPENSSL_NO_BROTLI + {FT_cipher, "brotli", enc_main, enc_options, NULL}, +#endif +#ifndef OPENSSL_NO_ZSTD + {FT_cipher, "zstd", enc_main, enc_options, NULL}, +#endif #ifndef OPENSSL_NO_DES {FT_cipher, "des", enc_main, enc_options, NULL}, #endif diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/asm/configdata.pm b/deps/openssl/config/archs/darwin64-arm64-cc/asm/configdata.pm index b5d5870d3043ac..0800e21ef3f862 100644 --- a/deps/openssl/config/archs/darwin64-arm64-cc/asm/configdata.pm +++ b/deps/openssl/config/archs/darwin64-arm64-cc/asm/configdata.pm @@ -18,6 +18,7 @@ our %config = ( "ARFLAGS" => [ "qc" ], + "ASFLAGS" => [], "CC" => "gcc", "CFLAGS" => [ "-O3 -Wall" @@ -27,14 +28,16 @@ our %config = ( "CPPINCLUDES" => [], "CXXFLAGS" => [], "FIPSKEY" => "f4556650ac31d35461610bac4ed81b1a181b2d8a43ea2854cbae22ca74560813", + "FIPS_VENDOR" => "OpenSSL FIPS Provider", "HASHBANGPERL" => "/usr/bin/env perl", "LDFLAGS" => [], "LDLIBS" => [], + "OBJCOPY" => "objcopy", "PERL" => "/usr/bin/perl", "RANLIB" => "ranlib -c", "RC" => "windres", "RCFLAGS" => [], - "api" => "30000", + "api" => "30500", "b32" => "0", "b64" => "0", "b64l" => "1", @@ -56,11 +59,13 @@ our %config = ( "doc/build.info", "test/build.info", "engines/build.info", + "exporters/build.info", "crypto/objects/build.info", "crypto/buffer/build.info", "crypto/bio/build.info", "crypto/stack/build.info", "crypto/lhash/build.info", + "crypto/hashtable/build.info", "crypto/rand/build.info", "crypto/evp/build.info", "crypto/asn1/build.info", @@ -78,6 +83,7 @@ our %config = ( "crypto/md5/build.info", "crypto/sha/build.info", "crypto/mdc2/build.info", + "crypto/ml_kem/build.info", "crypto/hmac/build.info", "crypto/ripemd/build.info", "crypto/whrlpool/build.info", @@ -119,11 +125,19 @@ our %config = ( "crypto/cmp/build.info", "crypto/encode_decode/build.info", "crypto/ffc/build.info", + "crypto/hpke/build.info", + "crypto/thread/build.info", + "crypto/ml_dsa/build.info", + "crypto/slh_dsa/build.info", + "ssl/record/build.info", + "ssl/rio/build.info", + "ssl/quic/build.info", "apps/lib/build.info", "providers/common/build.info", "providers/implementations/build.info", "providers/fips/build.info", "doc/man1/build.info", + "ssl/record/methods/build.info", "providers/common/der/build.info", "providers/implementations/digests/build.info", "providers/implementations/ciphers/build.info", @@ -137,6 +151,7 @@ our %config = ( "providers/implementations/encode_decode/build.info", "providers/implementations/storemgmt/build.info", "providers/implementations/kem/build.info", + "providers/implementations/skeymgmt/build.info", "providers/implementations/rands/seeding/build.info" ], "build_metadata" => "", @@ -156,7 +171,7 @@ our %config = ( ], "dynamic_engines" => "0", "ex_libs" => [], - "full_version" => "3.0.17", + "full_version" => "3.5.1", "includes" => [], "lflags" => [], "lib_defines" => [ @@ -165,37 +180,52 @@ our %config = ( "libdir" => "", "major" => "3", "makedep_scheme" => "gcc", - "minor" => "0", + "minor" => "5", "openssl_api_defines" => [ - "OPENSSL_CONFIGURED_API=30000" + "OPENSSL_CONFIGURED_API=30500" ], "openssl_feature_defines" => [ "OPENSSL_RAND_SEED_OS", "OPENSSL_THREADS", "OPENSSL_NO_AFALGENG", "OPENSSL_NO_ASAN", + "OPENSSL_NO_BROTLI", + "OPENSSL_NO_BROTLI_DYNAMIC", "OPENSSL_NO_COMP", "OPENSSL_NO_CRYPTO_MDEBUG", "OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE", + "OPENSSL_NO_DEMOS", "OPENSSL_NO_DEVCRYPTOENG", "OPENSSL_NO_EC_NISTP_64_GCC_128", "OPENSSL_NO_EGD", "OPENSSL_NO_EXTERNAL_TESTS", + "OPENSSL_NO_FIPS_JITTER", "OPENSSL_NO_FUZZ_AFL", "OPENSSL_NO_FUZZ_LIBFUZZER", + "OPENSSL_NO_H3DEMO", + "OPENSSL_NO_HQINTEROP", + "OPENSSL_NO_JITTER", "OPENSSL_NO_KTLS", "OPENSSL_NO_LOADERENG", "OPENSSL_NO_MD2", "OPENSSL_NO_MSAN", + "OPENSSL_NO_PIE", "OPENSSL_NO_RC5", "OPENSSL_NO_SCTP", "OPENSSL_NO_SSL3", "OPENSSL_NO_SSL3_METHOD", + "OPENSSL_NO_SSLKEYLOG", + "OPENSSL_NO_TFO", "OPENSSL_NO_TRACE", "OPENSSL_NO_UBSAN", "OPENSSL_NO_UNIT_TEST", "OPENSSL_NO_UPLINK", "OPENSSL_NO_WEAK_SSL_CIPHERS", + "OPENSSL_NO_WINSTORE", + "OPENSSL_NO_ZLIB", + "OPENSSL_NO_ZLIB_DYNAMIC", + "OPENSSL_NO_ZSTD", + "OPENSSL_NO_ZSTD_DYNAMIC", "OPENSSL_NO_DYNAMIC_ENGINE" ], "openssl_other_defines" => [ @@ -205,11 +235,11 @@ our %config = ( "OPENSSL_SYS_MACOSX" ], "openssldir" => "", - "options" => "enable-ssl-trace enable-fips no-afalgeng no-asan no-buildtest-c++ no-comp no-crypto-mdebug no-crypto-mdebug-backtrace no-devcryptoeng no-dynamic-engine no-ec_nistp_64_gcc_128 no-egd no-external-tests no-fuzz-afl no-fuzz-libfuzzer no-ktls no-loadereng no-md2 no-msan no-rc5 no-sctp no-shared no-ssl3 no-ssl3-method no-trace no-ubsan no-unit-test no-uplink no-weak-ssl-ciphers no-zlib no-zlib-dynamic", - "patch" => "17", + "options" => "enable-ssl-trace enable-fips no-afalgeng no-asan no-brotli no-brotli-dynamic no-buildtest-c++ no-comp no-crypto-mdebug no-crypto-mdebug-backtrace no-demos no-devcryptoeng no-dynamic-engine no-ec_nistp_64_gcc_128 no-egd no-external-tests no-fips-jitter no-fuzz-afl no-fuzz-libfuzzer no-h3demo no-hqinterop no-jitter no-ktls no-loadereng no-md2 no-msan no-pie no-rc5 no-sctp no-shared no-ssl3 no-ssl3-method no-sslkeylog no-tfo no-trace no-ubsan no-unit-test no-uplink no-weak-ssl-ciphers no-winstore no-zlib no-zlib-dynamic no-zstd no-zstd-dynamic", + "patch" => "1", "perl_archname" => "x86_64-linux-gnu-thread-multi", "perl_cmd" => "/usr/bin/perl", - "perl_version" => "5.38.2", + "perl_version" => "5.34.0", "perlargv" => [ "no-comp", "no-shared", @@ -239,6 +269,7 @@ our %config = ( "LDLIBS" => undef, "MT" => undef, "MTFLAGS" => undef, + "OBJCOPY" => undef, "OPENSSL_LOCAL_CONFIG_DIR" => undef, "PERL" => undef, "RANLIB" => undef, @@ -262,7 +293,7 @@ our %config = ( "shlib_version" => "3", "sourcedir" => ".", "target" => "darwin64-arm64-cc", - "version" => "3.0.17" + "version" => "3.5.1" ); our %target = ( "AR" => "ar", @@ -270,6 +301,7 @@ our %target = ( "CC" => "cc", "CFLAGS" => "-O3 -Wall", "HASHBANGPERL" => "/usr/bin/env perl", + "OBJCOPY" => "objcopy", "RANLIB" => "ranlib -c", "RC" => "windres", "_conf_fname_int" => [ @@ -281,6 +313,8 @@ our %target = ( "Configurations/shared-info.pl" ], "asm_arch" => "aarch64", + "bin_cflags" => "", + "bin_lflags" => "", "bn_ops" => "SIXTY_FOUR_BIT_LONG", "build_file" => "Makefile", "build_scheme" => [ @@ -295,6 +329,7 @@ our %target = ( "disable" => [], "dso_scheme" => "dlfcn", "enable" => [], + "ex_libs" => "", "includes" => [], "lflags" => "-Wl,-search_paths_first", "lib_cflags" => "", @@ -321,6 +356,8 @@ our %target = ( our @disablables = ( "acvp-tests", "afalgeng", + "apps", + "argon2", "aria", "asan", "asm", @@ -331,11 +368,14 @@ our @disablables = ( "autoload-config", "bf", "blake2", + "brotli", + "brotli-dynamic", "buildtest-c++", "bulk", "cached-fetch", "camellia", "capieng", + "winstore", "cast", "chacha", "cmac", @@ -344,11 +384,16 @@ our @disablables = ( "comp", "crypto-mdebug", "ct", + "default-thread-pool", + "demos", + "h3demo", + "hqinterop", "deprecated", "des", "devcryptoeng", "dgram", "dh", + "docs", "dsa", "dso", "dtls", @@ -358,6 +403,7 @@ our @disablables = ( "ec_nistp_64_gcc_128", "ecdh", "ecdsa", + "ecx", "egd", "engine", "err", @@ -365,10 +411,15 @@ our @disablables = ( "filenames", "fips", "fips-securitychecks", + "fips-post", + "fips-jitter", "fuzz-afl", "fuzz-libfuzzer", "gost", + "http", "idea", + "integrity-only-ciphers", + "jitter", "ktls", "legacy", "loadereng", @@ -376,6 +427,8 @@ our @disablables = ( "md2", "md4", "mdc2", + "ml-dsa", + "ml-kem", "module", "msan", "multiblock", @@ -384,10 +437,13 @@ our @disablables = ( "ocsp", "padlockeng", "pic", + "pie", "pinshared", "poly1305", "posix-io", "psk", + "quic", + "unstable-qlog", "rc2", "rc4", "rc5", @@ -401,7 +457,9 @@ our @disablables = ( "shared", "siphash", "siv", + "slh-dsa", "sm2", + "sm2-precomp", "sm3", "sm4", "sock", @@ -412,9 +470,13 @@ our @disablables = ( "ssl-trace", "static-engine", "stdio", + "sslkeylog", "tests", + "tfo", + "thread-pool", "threads", "tls", + "tls-deprecated-ec", "trace", "ts", "ubsan", @@ -425,6 +487,8 @@ our @disablables = ( "whirlpool", "zlib", "zlib-dynamic", + "zstd", + "zstd-dynamic", "ssl3", "ssl3-method", "tls1", @@ -445,33 +509,46 @@ our @disablables_int = ( our %disabled = ( "afalgeng" => "option", "asan" => "default", + "brotli" => "default", + "brotli-dynamic" => "default", "buildtest-c++" => "default", "comp" => "option", "crypto-mdebug" => "default", "crypto-mdebug-backtrace" => "default", + "demos" => "default", "devcryptoeng" => "default", "dynamic-engine" => "cascade", "ec_nistp_64_gcc_128" => "default", "egd" => "default", "external-tests" => "default", + "fips-jitter" => "default", "fuzz-afl" => "default", "fuzz-libfuzzer" => "default", + "h3demo" => "default", + "hqinterop" => "default", + "jitter" => "default", "ktls" => "default", "loadereng" => "cascade", "md2" => "default", "msan" => "default", + "pie" => "default", "rc5" => "default", "sctp" => "default", "shared" => "option", "ssl3" => "default", "ssl3-method" => "default", + "sslkeylog" => "default", + "tfo" => "default", "trace" => "default", "ubsan" => "default", "unit-test" => "default", "uplink" => "no uplink_arch", "weak-ssl-ciphers" => "default", + "winstore" => "not-windows", "zlib" => "default", - "zlib-dynamic" => "default" + "zlib-dynamic" => "default", + "zstd" => "default", + "zstd-dynamic" => "default" ); our %withargs = (); our %unified_info = ( @@ -697,6 +774,11 @@ our %unified_info = ( "pod" => "1" } }, + "doc/man1/openssl-skeyutl.pod" => { + "doc/man1/openssl-skeyutl.pod.in" => { + "pod" => "1" + } + }, "doc/man1/openssl-smime.pod" => { "doc/man1/openssl-smime.pod.in" => { "pod" => "1" @@ -754,6 +836,21 @@ our %unified_info = ( } }, "generate" => { + "exporters/OpenSSLConfig.cmake" => { + "exporter" => "cmake" + }, + "exporters/OpenSSLConfigVersion.cmake" => { + "exporter" => "cmake" + }, + "exporters/libcrypto.pc" => { + "exporter" => "pkg-config" + }, + "exporters/libssl.pc" => { + "exporter" => "pkg-config" + }, + "exporters/openssl.pc" => { + "exporter" => "pkg-config" + }, "include/openssl/configuration.h" => { "skip" => "1" } @@ -774,6 +871,9 @@ our %unified_info = ( "providers/liblegacy.a" => { "noinst" => "1" }, + "providers/libtemplate.a" => { + "noinst" => "1" + }, "test/libtestutil.a" => { "has_main" => "1", "noinst" => "1" @@ -791,6 +891,9 @@ our %unified_info = ( } }, "programs" => { + "fuzz/acert-test" => { + "noinst" => "1" + }, "fuzz/asn1-test" => { "noinst" => "1" }, @@ -821,9 +924,60 @@ our %unified_info = ( "fuzz/ct-test" => { "noinst" => "1" }, + "fuzz/decoder-test" => { + "noinst" => "1" + }, + "fuzz/dtlsclient-test" => { + "noinst" => "1" + }, + "fuzz/dtlsserver-test" => { + "noinst" => "1" + }, + "fuzz/hashtable-test" => { + "noinst" => "1" + }, + "fuzz/ml-dsa-test" => { + "noinst" => "1" + }, + "fuzz/ml-kem-test" => { + "noinst" => "1" + }, + "fuzz/pem-test" => { + "noinst" => "1" + }, + "fuzz/provider-test" => { + "noinst" => "1" + }, + "fuzz/punycode-test" => { + "noinst" => "1" + }, + "fuzz/quic-client-test" => { + "noinst" => "1" + }, + "fuzz/quic-lcidm-test" => { + "noinst" => "1" + }, + "fuzz/quic-rcidm-test" => { + "noinst" => "1" + }, + "fuzz/quic-server-test" => { + "noinst" => "1" + }, + "fuzz/quic-srtm-test" => { + "noinst" => "1" + }, "fuzz/server-test" => { "noinst" => "1" }, + "fuzz/slh-dsa-test" => { + "noinst" => "1" + }, + "fuzz/smime-test" => { + "noinst" => "1" + }, + "fuzz/v3name-test" => { + "noinst" => "1" + }, "fuzz/x509-test" => { "noinst" => "1" }, @@ -875,18 +1029,30 @@ our %unified_info = ( "test/bftest" => { "noinst" => "1" }, + "test/bio_addr_test" => { + "noinst" => "1" + }, + "test/bio_base64_test" => { + "noinst" => "1" + }, "test/bio_callback_test" => { "noinst" => "1" }, "test/bio_core_test" => { "noinst" => "1" }, + "test/bio_dgram_test" => { + "noinst" => "1" + }, "test/bio_enc_test" => { "noinst" => "1" }, "test/bio_memleak_test" => { "noinst" => "1" }, + "test/bio_meth_test" => { + "noinst" => "1" + }, "test/bio_prefix_text" => { "noinst" => "1" }, @@ -896,6 +1062,9 @@ our %unified_info = ( "test/bio_readbuffer_test" => { "noinst" => "1" }, + "test/bio_tfo_test" => { + "noinst" => "1" + }, "test/bioprinttest" => { "noinst" => "1" }, @@ -905,6 +1074,9 @@ our %unified_info = ( "test/bntest" => { "noinst" => "1" }, + "test/build_wincrypt_test" => { + "noinst" => "1" + }, "test/buildtest_c_aes" => { "noinst" => "1" }, @@ -920,6 +1092,9 @@ our %unified_info = ( "test/buildtest_c_buffer" => { "noinst" => "1" }, + "test/buildtest_c_byteorder" => { + "noinst" => "1" + }, "test/buildtest_c_camellia" => { "noinst" => "1" }, @@ -944,9 +1119,6 @@ our %unified_info = ( "test/buildtest_c_core_dispatch" => { "noinst" => "1" }, - "test/buildtest_c_core_names" => { - "noinst" => "1" - }, "test/buildtest_c_core_object" => { "noinst" => "1" }, @@ -971,6 +1143,9 @@ our %unified_info = ( "test/buildtest_c_e_os2" => { "noinst" => "1" }, + "test/buildtest_c_e_ostime" => { + "noinst" => "1" + }, "test/buildtest_c_ebcdic" => { "noinst" => "1" }, @@ -998,12 +1173,18 @@ our %unified_info = ( "test/buildtest_c_hmac" => { "noinst" => "1" }, + "test/buildtest_c_hpke" => { + "noinst" => "1" + }, "test/buildtest_c_http" => { "noinst" => "1" }, "test/buildtest_c_idea" => { "noinst" => "1" }, + "test/buildtest_c_indicator" => { + "noinst" => "1" + }, "test/buildtest_c_kdf" => { "noinst" => "1" }, @@ -1019,6 +1200,9 @@ our %unified_info = ( "test/buildtest_c_mdc2" => { "noinst" => "1" }, + "test/buildtest_c_ml_kem" => { + "noinst" => "1" + }, "test/buildtest_c_modes" => { "noinst" => "1" }, @@ -1049,6 +1233,9 @@ our %unified_info = ( "test/buildtest_c_provider" => { "noinst" => "1" }, + "test/buildtest_c_quic" => { + "noinst" => "1" + }, "test/buildtest_c_rand" => { "noinst" => "1" }, @@ -1091,6 +1278,9 @@ our %unified_info = ( "test/buildtest_c_symhacks" => { "noinst" => "1" }, + "test/buildtest_c_thread" => { + "noinst" => "1" + }, "test/buildtest_c_tls1" => { "noinst" => "1" }, @@ -1106,6 +1296,12 @@ our %unified_info = ( "test/buildtest_c_whrlpool" => { "noinst" => "1" }, + "test/byteorder_test" => { + "noinst" => "1" + }, + "test/ca_internals_test" => { + "noinst" => "1" + }, "test/casttest" => { "noinst" => "1" }, @@ -1190,6 +1386,9 @@ our %unified_info = ( "test/danetest" => { "noinst" => "1" }, + "test/decoder_propq_test" => { + "noinst" => "1" + }, "test/defltfips_test" => { "noinst" => "1" }, @@ -1262,15 +1461,24 @@ our %unified_info = ( "test/evp_pkey_ctx_new_from_name" => { "noinst" => "1" }, + "test/evp_pkey_dhkem_test" => { + "noinst" => "1" + }, "test/evp_pkey_dparams_test" => { "noinst" => "1" }, "test/evp_pkey_provided_test" => { "noinst" => "1" }, + "test/evp_skey_test" => { + "noinst" => "1" + }, "test/evp_test" => { "noinst" => "1" }, + "test/evp_xof_test" => { + "noinst" => "1" + }, "test/exdatatest" => { "noinst" => "1" }, @@ -1298,6 +1506,9 @@ our %unified_info = ( "test/hmactest" => { "noinst" => "1" }, + "test/hpke_test" => { + "noinst" => "1" + }, "test/http_test" => { "noinst" => "1" }, @@ -1307,12 +1518,18 @@ our %unified_info = ( "test/igetest" => { "noinst" => "1" }, + "test/json_test" => { + "noinst" => "1" + }, "test/keymgmt_internal_test" => { "noinst" => "1" }, "test/lhash_test" => { "noinst" => "1" }, + "test/list_test" => { + "noinst" => "1" + }, "test/localetest" => { "noinst" => "1" }, @@ -1322,9 +1539,21 @@ our %unified_info = ( "test/mdc2test" => { "noinst" => "1" }, + "test/membio_test" => { + "noinst" => "1" + }, "test/memleaktest" => { "noinst" => "1" }, + "test/ml_dsa_test" => { + "noinst" => "1" + }, + "test/ml_kem_evp_extra_test" => { + "noinst" => "1" + }, + "test/ml_kem_internal_test" => { + "noinst" => "1" + }, "test/modes_internal_test" => { "noinst" => "1" }, @@ -1343,6 +1572,9 @@ our %unified_info = ( "test/packettest" => { "noinst" => "1" }, + "test/pairwise_fail_test" => { + "noinst" => "1" + }, "test/param_build_test" => { "noinst" => "1" }, @@ -1367,6 +1599,9 @@ our %unified_info = ( "test/pemtest" => { "noinst" => "1" }, + "test/pkcs12_api_test" => { + "noinst" => "1" + }, "test/pkcs12_format_test" => { "noinst" => "1" }, @@ -1382,6 +1617,9 @@ our %unified_info = ( "test/poly1305_internal_test" => { "noinst" => "1" }, + "test/priority_queue_test" => { + "noinst" => "1" + }, "test/property_test" => { "noinst" => "1" }, @@ -1391,6 +1629,9 @@ our %unified_info = ( "test/provfetchtest" => { "noinst" => "1" }, + "test/provider_default_search_path_test" => { + "noinst" => "1" + }, "test/provider_fallback_test" => { "noinst" => "1" }, @@ -1409,6 +1650,72 @@ our %unified_info = ( "test/punycode_test" => { "noinst" => "1" }, + "test/quic_ackm_test" => { + "noinst" => "1" + }, + "test/quic_cc_test" => { + "noinst" => "1" + }, + "test/quic_cfq_test" => { + "noinst" => "1" + }, + "test/quic_client_test" => { + "noinst" => "1" + }, + "test/quic_fc_test" => { + "noinst" => "1" + }, + "test/quic_fifd_test" => { + "noinst" => "1" + }, + "test/quic_lcidm_test" => { + "noinst" => "1" + }, + "test/quic_multistream_test" => { + "noinst" => "1" + }, + "test/quic_newcid_test" => { + "noinst" => "1" + }, + "test/quic_qlog_test" => { + "noinst" => "1" + }, + "test/quic_radix_test" => { + "noinst" => "1" + }, + "test/quic_rcidm_test" => { + "noinst" => "1" + }, + "test/quic_record_test" => { + "noinst" => "1" + }, + "test/quic_srt_gen_test" => { + "noinst" => "1" + }, + "test/quic_srtm_test" => { + "noinst" => "1" + }, + "test/quic_stream_test" => { + "noinst" => "1" + }, + "test/quic_tserver_test" => { + "noinst" => "1" + }, + "test/quic_txp_test" => { + "noinst" => "1" + }, + "test/quic_txpim_test" => { + "noinst" => "1" + }, + "test/quic_wire_test" => { + "noinst" => "1" + }, + "test/quicapitest" => { + "noinst" => "1" + }, + "test/quicfaultstest" => { + "noinst" => "1" + }, "test/rand_status_test" => { "noinst" => "1" }, @@ -1424,12 +1731,15 @@ our %unified_info = ( "test/rc5test" => { "noinst" => "1" }, - "test/rdrand_sanitytest" => { + "test/rdcpu_sanitytest" => { "noinst" => "1" }, "test/recordlentest" => { "noinst" => "1" }, + "test/rpktest" => { + "noinst" => "1" + }, "test/rsa_complex" => { "noinst" => "1" }, @@ -1442,6 +1752,12 @@ our %unified_info = ( "test/rsa_test" => { "noinst" => "1" }, + "test/rsa_x931_test" => { + "noinst" => "1" + }, + "test/safe_math_test" => { + "noinst" => "1" + }, "test/sanitytest" => { "noinst" => "1" }, @@ -1457,6 +1773,9 @@ our %unified_info = ( "test/siphash_internal_test" => { "noinst" => "1" }, + "test/slh_dsa_test" => { + "noinst" => "1" + }, "test/sm2_internal_test" => { "noinst" => "1" }, @@ -1478,6 +1797,9 @@ our %unified_info = ( "test/ssl_ctx_test" => { "noinst" => "1" }, + "test/ssl_handshake_rtt_test" => { + "noinst" => "1" + }, "test/ssl_old_test" => { "noinst" => "1" }, @@ -1499,12 +1821,18 @@ our %unified_info = ( "test/stack_test" => { "noinst" => "1" }, + "test/strtoultest" => { + "noinst" => "1" + }, "test/sysdefaulttest" => { "noinst" => "1" }, "test/test_test" => { "noinst" => "1" }, + "test/threadpool_test" => { + "noinst" => "1" + }, "test/threadstest" => { "noinst" => "1" }, @@ -1514,12 +1842,18 @@ our %unified_info = ( "test/time_offset_test" => { "noinst" => "1" }, + "test/time_test" => { + "noinst" => "1" + }, "test/tls13ccstest" => { "noinst" => "1" }, "test/tls13encryptiontest" => { "noinst" => "1" }, + "test/tls13groupselection_test" => { + "noinst" => "1" + }, "test/trace_api_test" => { "noinst" => "1" }, @@ -1547,6 +1881,9 @@ our %unified_info = ( "test/wpackettest" => { "noinst" => "1" }, + "test/x509_acert_test" => { + "noinst" => "1" + }, "test/x509_check_cert_pkey_test" => { "noinst" => "1" }, @@ -1556,6 +1893,15 @@ our %unified_info = ( "test/x509_internal_test" => { "noinst" => "1" }, + "test/x509_load_cert_file_test" => { + "noinst" => "1" + }, + "test/x509_req_test" => { + "noinst" => "1" + }, + "test/x509_test" => { + "noinst" => "1" + }, "test/x509_time_test" => { "noinst" => "1" }, @@ -1594,15 +1940,21 @@ our %unified_info = ( }, "defines" => { "libcrypto" => [ + "BSAES_ASM", "ECP_NISTZ256_ASM", + "ECP_SM2P256_ASM", "KECCAK1600_ASM", + "MD5_ASM", "OPENSSL_BN_ASM_MONT", "OPENSSL_CPUID_OBJ", + "OPENSSL_SM3_ASM", "POLY1305_ASM", "SHA1_ASM", "SHA256_ASM", "SHA512_ASM", - "VPAES_ASM" + "SM4_ASM", + "VPAES_ASM", + "VPSM4_ASM" ], "providers/fips" => [ "FIPS_MODULE" @@ -1612,16 +1964,22 @@ our %unified_info = ( "OPENSSL_CPUID_OBJ" ], "providers/libdefault.a" => [ + "BSAES_ASM", "ECP_NISTZ256_ASM", + "ECP_SM2P256_ASM", "KECCAK1600_ASM", "OPENSSL_CPUID_OBJ", "SHA1_ASM", "SHA256_ASM", "SHA512_ASM", - "VPAES_ASM" + "SM4_ASM", + "VPAES_ASM", + "VPSM4_ASM" ], "providers/libfips.a" => [ + "BSAES_ASM", "ECP_NISTZ256_ASM", + "ECP_SM2P256_ASM", "FIPS_MODULE", "KECCAK1600_ASM", "OPENSSL_BN_ASM_MONT", @@ -1629,7 +1987,15 @@ our %unified_info = ( "SHA1_ASM", "SHA256_ASM", "SHA512_ASM", - "VPAES_ASM" + "SM4_ASM", + "VPAES_ASM", + "VPSM4_ASM" + ], + "providers/liblegacy.a" => [ + "MD5_ASM" + ], + "test/endecode_test" => [ + "STATIC_LEGACY" ], "test/evp_extra_test" => [ "STATIC_LEGACY" @@ -1643,14 +2009,21 @@ our %unified_info = ( }, "depends" => { "" => [ + "OpenSSLConfigVersion.cmake", + "crypto/params_idx.c", + "exporters/OpenSSLConfigVersion.cmake", + "exporters/openssl.pc", "include/crypto/bn_conf.h", "include/crypto/dso_conf.h", + "include/internal/param_names.h", "include/openssl/asn1.h", "include/openssl/asn1t.h", "include/openssl/bio.h", "include/openssl/cmp.h", "include/openssl/cms.h", + "include/openssl/comp.h", "include/openssl/conf.h", + "include/openssl/core_names.h", "include/openssl/crmf.h", "include/openssl/crypto.h", "include/openssl/ct.h", @@ -1667,10 +2040,22 @@ our %unified_info = ( "include/openssl/ssl.h", "include/openssl/ui.h", "include/openssl/x509.h", + "include/openssl/x509_acert.h", "include/openssl/x509_vfy.h", "include/openssl/x509v3.h", + "openssl.pc", "test/provider_internal_test.cnf" ], + "OpenSSLConfig.cmake" => [ + "builddata.pm" + ], + "OpenSSLConfigVersion.cmake" => [ + "OpenSSLConfig.cmake", + "builddata.pm" + ], + "apps/ca_internals_test-bin-ca.o" => [ + "apps/progs.h" + ], "apps/lib/cmp_client_test-bin-cmp_mock_srv.o" => [ "apps/progs.h" ], @@ -1816,6 +2201,9 @@ our %unified_info = ( "apps/openssl-bin-sess_id.o" => [ "apps/progs.h" ], + "apps/openssl-bin-skeyutl.o" => [ + "apps/progs.h" + ], "apps/openssl-bin-smime.o" => [ "apps/progs.h" ], @@ -1904,6 +2292,9 @@ our %unified_info = ( "crypto/libcrypto-lib-info.o" => [ "crypto/buildinf.h" ], + "crypto/params_idx.c" => [ + "util/perl|OpenSSL/paramnames.pm" + ], "crypto/rc4/rc4-586.S" => [ "crypto/perlasm/x86asm.pl" ], @@ -2069,6 +2460,9 @@ our %unified_info = ( "doc/html/man1/openssl-sess_id.html" => [ "doc/man1/openssl-sess_id.pod" ], + "doc/html/man1/openssl-skeyutl.html" => [ + "doc/man1/openssl-skeyutl.pod" + ], "doc/html/man1/openssl-smime.html" => [ "doc/man1/openssl-smime.pod" ], @@ -2210,6 +2604,9 @@ our %unified_info = ( "doc/html/man3/BIO_get_ex_new_index.html" => [ "doc/man3/BIO_get_ex_new_index.pod" ], + "doc/html/man3/BIO_get_rpoll_descriptor.html" => [ + "doc/man3/BIO_get_rpoll_descriptor.pod" + ], "doc/html/man3/BIO_meth_new.html" => [ "doc/man3/BIO_meth_new.pod" ], @@ -2246,6 +2643,9 @@ our %unified_info = ( "doc/html/man3/BIO_s_datagram.html" => [ "doc/man3/BIO_s_datagram.pod" ], + "doc/html/man3/BIO_s_dgram_pair.html" => [ + "doc/man3/BIO_s_dgram_pair.pod" + ], "doc/html/man3/BIO_s_fd.html" => [ "doc/man3/BIO_s_fd.pod" ], @@ -2261,6 +2661,9 @@ our %unified_info = ( "doc/html/man3/BIO_s_socket.html" => [ "doc/man3/BIO_s_socket.pod" ], + "doc/html/man3/BIO_sendmmsg.html" => [ + "doc/man3/BIO_sendmmsg.pod" + ], "doc/html/man3/BIO_set_callback.html" => [ "doc/man3/BIO_set_callback.pod" ], @@ -2333,6 +2736,9 @@ our %unified_info = ( "doc/html/man3/BUF_MEM_new.html" => [ "doc/man3/BUF_MEM_new.pod" ], + "doc/html/man3/CMAC_CTX.html" => [ + "doc/man3/CMAC_CTX.pod" + ], "doc/html/man3/CMS_EncryptedData_decrypt.html" => [ "doc/man3/CMS_EncryptedData_decrypt.pod" ], @@ -2399,6 +2805,9 @@ our %unified_info = ( "doc/html/man3/CMS_verify_receipt.html" => [ "doc/man3/CMS_verify_receipt.pod" ], + "doc/html/man3/COMP_CTX_new.html" => [ + "doc/man3/COMP_CTX_new.pod" + ], "doc/html/man3/CONF_modules_free.html" => [ "doc/man3/CONF_modules_free.pod" ], @@ -2498,6 +2907,12 @@ our %unified_info = ( "doc/html/man3/DTLS_set_timer_cb.html" => [ "doc/man3/DTLS_set_timer_cb.pod" ], + "doc/html/man3/DTLSv1_get_timeout.html" => [ + "doc/man3/DTLSv1_get_timeout.pod" + ], + "doc/html/man3/DTLSv1_handle_timeout.html" => [ + "doc/man3/DTLSv1_handle_timeout.pod" + ], "doc/html/man3/DTLSv1_listen.html" => [ "doc/man3/DTLSv1_listen.pod" ], @@ -2636,6 +3051,9 @@ our %unified_info = ( "doc/html/man3/EVP_PKEY_CTX_get0_pkey.html" => [ "doc/man3/EVP_PKEY_CTX_get0_pkey.pod" ], + "doc/html/man3/EVP_PKEY_CTX_get_algor.html" => [ + "doc/man3/EVP_PKEY_CTX_get_algor.pod" + ], "doc/html/man3/EVP_PKEY_CTX_new.html" => [ "doc/man3/EVP_PKEY_CTX_new.pod" ], @@ -2753,6 +3171,12 @@ our %unified_info = ( "doc/html/man3/EVP_SIGNATURE.html" => [ "doc/man3/EVP_SIGNATURE.pod" ], + "doc/html/man3/EVP_SKEY.html" => [ + "doc/man3/EVP_SKEY.pod" + ], + "doc/html/man3/EVP_SKEYMGMT.html" => [ + "doc/man3/EVP_SKEYMGMT.pod" + ], "doc/html/man3/EVP_SealInit.html" => [ "doc/man3/EVP_SealInit.pod" ], @@ -2840,6 +3264,9 @@ our %unified_info = ( "doc/html/man3/EVP_whirlpool.html" => [ "doc/man3/EVP_whirlpool.pod" ], + "doc/html/man3/GENERAL_NAME.html" => [ + "doc/man3/GENERAL_NAME.pod" + ], "doc/html/man3/HMAC.html" => [ "doc/man3/HMAC.pod" ], @@ -2912,9 +3339,15 @@ our %unified_info = ( "doc/html/man3/OPENSSL_load_builtin_modules.html" => [ "doc/man3/OPENSSL_load_builtin_modules.pod" ], + "doc/html/man3/OPENSSL_load_u16_le.html" => [ + "doc/man3/OPENSSL_load_u16_le.pod" + ], "doc/html/man3/OPENSSL_malloc.html" => [ "doc/man3/OPENSSL_malloc.pod" ], + "doc/html/man3/OPENSSL_riscvcap.html" => [ + "doc/man3/OPENSSL_riscvcap.pod" + ], "doc/html/man3/OPENSSL_s390xcap.html" => [ "doc/man3/OPENSSL_s390xcap.pod" ], @@ -2930,12 +3363,18 @@ our %unified_info = ( "doc/html/man3/OSSL_CALLBACK.html" => [ "doc/man3/OSSL_CALLBACK.pod" ], + "doc/html/man3/OSSL_CMP_ATAV_set0.html" => [ + "doc/man3/OSSL_CMP_ATAV_set0.pod" + ], "doc/html/man3/OSSL_CMP_CTX_new.html" => [ "doc/man3/OSSL_CMP_CTX_new.pod" ], "doc/html/man3/OSSL_CMP_HDR_get0_transactionID.html" => [ "doc/man3/OSSL_CMP_HDR_get0_transactionID.pod" ], + "doc/html/man3/OSSL_CMP_ITAV_new_caCerts.html" => [ + "doc/man3/OSSL_CMP_ITAV_new_caCerts.pod" + ], "doc/html/man3/OSSL_CMP_ITAV_set0.html" => [ "doc/man3/OSSL_CMP_ITAV_set0.pod" ], @@ -3005,9 +3444,18 @@ our %unified_info = ( "doc/html/man3/OSSL_ENCODER_to_bio.html" => [ "doc/man3/OSSL_ENCODER_to_bio.pod" ], + "doc/html/man3/OSSL_ERR_STATE_save.html" => [ + "doc/man3/OSSL_ERR_STATE_save.pod" + ], "doc/html/man3/OSSL_ESS_check_signing_certs.html" => [ "doc/man3/OSSL_ESS_check_signing_certs.pod" ], + "doc/html/man3/OSSL_GENERAL_NAMES_print.html" => [ + "doc/man3/OSSL_GENERAL_NAMES_print.pod" + ], + "doc/html/man3/OSSL_HPKE_CTX_new.html" => [ + "doc/man3/OSSL_HPKE_CTX_new.pod" + ], "doc/html/man3/OSSL_HTTP_REQ_CTX.html" => [ "doc/man3/OSSL_HTTP_REQ_CTX.pod" ], @@ -3017,12 +3465,24 @@ our %unified_info = ( "doc/html/man3/OSSL_HTTP_transfer.html" => [ "doc/man3/OSSL_HTTP_transfer.pod" ], + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX.html" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX.pod" + ], + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX_print.html" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX_print.pod" + ], + "doc/html/man3/OSSL_INDICATOR_set_callback.html" => [ + "doc/man3/OSSL_INDICATOR_set_callback.pod" + ], "doc/html/man3/OSSL_ITEM.html" => [ "doc/man3/OSSL_ITEM.pod" ], "doc/html/man3/OSSL_LIB_CTX.html" => [ "doc/man3/OSSL_LIB_CTX.pod" ], + "doc/html/man3/OSSL_LIB_CTX_set_conf_diagnostics.html" => [ + "doc/man3/OSSL_LIB_CTX_set_conf_diagnostics.pod" + ], "doc/html/man3/OSSL_PARAM.html" => [ "doc/man3/OSSL_PARAM.pod" ], @@ -3038,9 +3498,15 @@ our %unified_info = ( "doc/html/man3/OSSL_PARAM_int.html" => [ "doc/man3/OSSL_PARAM_int.pod" ], + "doc/html/man3/OSSL_PARAM_print_to_bio.html" => [ + "doc/man3/OSSL_PARAM_print_to_bio.pod" + ], "doc/html/man3/OSSL_PROVIDER.html" => [ "doc/man3/OSSL_PROVIDER.pod" ], + "doc/html/man3/OSSL_QUIC_client_method.html" => [ + "doc/man3/OSSL_QUIC_client_method.pod" + ], "doc/html/man3/OSSL_SELF_TEST_new.html" => [ "doc/man3/OSSL_SELF_TEST_new.pod" ], @@ -3065,6 +3531,9 @@ our %unified_info = ( "doc/html/man3/OSSL_STORE_open.html" => [ "doc/man3/OSSL_STORE_open.pod" ], + "doc/html/man3/OSSL_sleep.html" => [ + "doc/man3/OSSL_sleep.pod" + ], "doc/html/man3/OSSL_trace_enabled.html" => [ "doc/man3/OSSL_trace_enabled.pod" ], @@ -3080,6 +3549,9 @@ our %unified_info = ( "doc/html/man3/OpenSSL_version.html" => [ "doc/man3/OpenSSL_version.pod" ], + "doc/html/man3/PBMAC1_get1_pbkdf2_param.html" => [ + "doc/man3/PBMAC1_get1_pbkdf2_param.pod" + ], "doc/html/man3/PEM_X509_INFO_read_bio_ex.html" => [ "doc/man3/PEM_X509_INFO_read_bio_ex.pod" ], @@ -3116,6 +3588,9 @@ our %unified_info = ( "doc/html/man3/PKCS12_SAFEBAG_get1_cert.html" => [ "doc/man3/PKCS12_SAFEBAG_get1_cert.pod" ], + "doc/html/man3/PKCS12_SAFEBAG_set0_attrs.html" => [ + "doc/man3/PKCS12_SAFEBAG_set0_attrs.pod" + ], "doc/html/man3/PKCS12_add1_attr_by_NID.html" => [ "doc/man3/PKCS12_add1_attr_by_NID.pod" ], @@ -3389,6 +3864,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set0_CA_list.html" => [ "doc/man3/SSL_CTX_set0_CA_list.pod" ], + "doc/html/man3/SSL_CTX_set1_cert_comp_preference.html" => [ + "doc/man3/SSL_CTX_set1_cert_comp_preference.pod" + ], "doc/html/man3/SSL_CTX_set1_curves.html" => [ "doc/man3/SSL_CTX_set1_curves.pod" ], @@ -3428,6 +3906,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_default_passwd_cb.html" => [ "doc/man3/SSL_CTX_set_default_passwd_cb.pod" ], + "doc/html/man3/SSL_CTX_set_domain_flags.html" => [ + "doc/man3/SSL_CTX_set_domain_flags.pod" + ], "doc/html/man3/SSL_CTX_set_generate_session_id.html" => [ "doc/man3/SSL_CTX_set_generate_session_id.pod" ], @@ -3449,6 +3930,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_msg_callback.html" => [ "doc/man3/SSL_CTX_set_msg_callback.pod" ], + "doc/html/man3/SSL_CTX_set_new_pending_conn_cb.html" => [ + "doc/man3/SSL_CTX_set_new_pending_conn_cb.pod" + ], "doc/html/man3/SSL_CTX_set_num_tickets.html" => [ "doc/man3/SSL_CTX_set_num_tickets.pod" ], @@ -3563,6 +4047,9 @@ our %unified_info = ( "doc/html/man3/SSL_accept.html" => [ "doc/man3/SSL_accept.pod" ], + "doc/html/man3/SSL_accept_stream.html" => [ + "doc/man3/SSL_accept_stream.pod" + ], "doc/html/man3/SSL_alert_type_string.html" => [ "doc/man3/SSL_alert_type_string.pod" ], @@ -3590,9 +4077,21 @@ our %unified_info = ( "doc/html/man3/SSL_free.html" => [ "doc/man3/SSL_free.pod" ], + "doc/html/man3/SSL_get0_connection.html" => [ + "doc/man3/SSL_get0_connection.pod" + ], + "doc/html/man3/SSL_get0_group_name.html" => [ + "doc/man3/SSL_get0_group_name.pod" + ], + "doc/html/man3/SSL_get0_peer_rpk.html" => [ + "doc/man3/SSL_get0_peer_rpk.pod" + ], "doc/html/man3/SSL_get0_peer_scts.html" => [ "doc/man3/SSL_get0_peer_scts.pod" ], + "doc/html/man3/SSL_get1_builtin_sigalgs.html" => [ + "doc/man3/SSL_get1_builtin_sigalgs.pod" + ], "doc/html/man3/SSL_get_SSL_CTX.html" => [ "doc/man3/SSL_get_SSL_CTX.pod" ], @@ -3608,6 +4107,9 @@ our %unified_info = ( "doc/html/man3/SSL_get_client_random.html" => [ "doc/man3/SSL_get_client_random.pod" ], + "doc/html/man3/SSL_get_conn_close_info.html" => [ + "doc/man3/SSL_get_conn_close_info.pod" + ], "doc/html/man3/SSL_get_current_cipher.html" => [ "doc/man3/SSL_get_current_cipher.pod" ], @@ -3617,12 +4119,18 @@ our %unified_info = ( "doc/html/man3/SSL_get_error.html" => [ "doc/man3/SSL_get_error.pod" ], + "doc/html/man3/SSL_get_event_timeout.html" => [ + "doc/man3/SSL_get_event_timeout.pod" + ], "doc/html/man3/SSL_get_extms_support.html" => [ "doc/man3/SSL_get_extms_support.pod" ], "doc/html/man3/SSL_get_fd.html" => [ "doc/man3/SSL_get_fd.pod" ], + "doc/html/man3/SSL_get_handshake_rtt.html" => [ + "doc/man3/SSL_get_handshake_rtt.pod" + ], "doc/html/man3/SSL_get_peer_cert_chain.html" => [ "doc/man3/SSL_get_peer_cert_chain.pod" ], @@ -3641,12 +4149,24 @@ our %unified_info = ( "doc/html/man3/SSL_get_rbio.html" => [ "doc/man3/SSL_get_rbio.pod" ], + "doc/html/man3/SSL_get_rpoll_descriptor.html" => [ + "doc/man3/SSL_get_rpoll_descriptor.pod" + ], "doc/html/man3/SSL_get_session.html" => [ "doc/man3/SSL_get_session.pod" ], "doc/html/man3/SSL_get_shared_sigalgs.html" => [ "doc/man3/SSL_get_shared_sigalgs.pod" ], + "doc/html/man3/SSL_get_stream_id.html" => [ + "doc/man3/SSL_get_stream_id.pod" + ], + "doc/html/man3/SSL_get_stream_read_state.html" => [ + "doc/man3/SSL_get_stream_read_state.pod" + ], + "doc/html/man3/SSL_get_value_uint.html" => [ + "doc/man3/SSL_get_value_uint.pod" + ], "doc/html/man3/SSL_get_verify_result.html" => [ "doc/man3/SSL_get_verify_result.pod" ], @@ -3656,9 +4176,15 @@ our %unified_info = ( "doc/html/man3/SSL_group_to_name.html" => [ "doc/man3/SSL_group_to_name.pod" ], + "doc/html/man3/SSL_handle_events.html" => [ + "doc/man3/SSL_handle_events.pod" + ], "doc/html/man3/SSL_in_init.html" => [ "doc/man3/SSL_in_init.pod" ], + "doc/html/man3/SSL_inject_net_dgram.html" => [ + "doc/man3/SSL_inject_net_dgram.pod" + ], "doc/html/man3/SSL_key_update.html" => [ "doc/man3/SSL_key_update.pod" ], @@ -3671,9 +4197,21 @@ our %unified_info = ( "doc/html/man3/SSL_new.html" => [ "doc/man3/SSL_new.pod" ], + "doc/html/man3/SSL_new_domain.html" => [ + "doc/man3/SSL_new_domain.pod" + ], + "doc/html/man3/SSL_new_listener.html" => [ + "doc/man3/SSL_new_listener.pod" + ], + "doc/html/man3/SSL_new_stream.html" => [ + "doc/man3/SSL_new_stream.pod" + ], "doc/html/man3/SSL_pending.html" => [ "doc/man3/SSL_pending.pod" ], + "doc/html/man3/SSL_poll.html" => [ + "doc/man3/SSL_poll.pod" + ], "doc/html/man3/SSL_read.html" => [ "doc/man3/SSL_read.pod" ], @@ -3689,24 +4227,45 @@ our %unified_info = ( "doc/html/man3/SSL_set1_host.html" => [ "doc/man3/SSL_set1_host.pod" ], + "doc/html/man3/SSL_set1_initial_peer_addr.html" => [ + "doc/man3/SSL_set1_initial_peer_addr.pod" + ], + "doc/html/man3/SSL_set1_server_cert_type.html" => [ + "doc/man3/SSL_set1_server_cert_type.pod" + ], "doc/html/man3/SSL_set_async_callback.html" => [ "doc/man3/SSL_set_async_callback.pod" ], "doc/html/man3/SSL_set_bio.html" => [ "doc/man3/SSL_set_bio.pod" ], + "doc/html/man3/SSL_set_blocking_mode.html" => [ + "doc/man3/SSL_set_blocking_mode.pod" + ], "doc/html/man3/SSL_set_connect_state.html" => [ "doc/man3/SSL_set_connect_state.pod" ], + "doc/html/man3/SSL_set_default_stream_mode.html" => [ + "doc/man3/SSL_set_default_stream_mode.pod" + ], "doc/html/man3/SSL_set_fd.html" => [ "doc/man3/SSL_set_fd.pod" ], + "doc/html/man3/SSL_set_incoming_stream_policy.html" => [ + "doc/man3/SSL_set_incoming_stream_policy.pod" + ], + "doc/html/man3/SSL_set_quic_tls_cbs.html" => [ + "doc/man3/SSL_set_quic_tls_cbs.pod" + ], "doc/html/man3/SSL_set_retry_verify.html" => [ "doc/man3/SSL_set_retry_verify.pod" ], "doc/html/man3/SSL_set_session.html" => [ "doc/man3/SSL_set_session.pod" ], + "doc/html/man3/SSL_set_session_secret_cb.html" => [ + "doc/man3/SSL_set_session_secret_cb.pod" + ], "doc/html/man3/SSL_set_shutdown.html" => [ "doc/man3/SSL_set_shutdown.pod" ], @@ -3719,6 +4278,12 @@ our %unified_info = ( "doc/html/man3/SSL_state_string.html" => [ "doc/man3/SSL_state_string.pod" ], + "doc/html/man3/SSL_stream_conclude.html" => [ + "doc/man3/SSL_stream_conclude.pod" + ], + "doc/html/man3/SSL_stream_reset.html" => [ + "doc/man3/SSL_stream_reset.pod" + ], "doc/html/man3/SSL_want.html" => [ "doc/man3/SSL_want.pod" ], @@ -3728,8 +4293,8 @@ our %unified_info = ( "doc/html/man3/TS_RESP_CTX_new.html" => [ "doc/man3/TS_RESP_CTX_new.pod" ], - "doc/html/man3/TS_VERIFY_CTX_set_certs.html" => [ - "doc/man3/TS_VERIFY_CTX_set_certs.pod" + "doc/html/man3/TS_VERIFY_CTX.html" => [ + "doc/man3/TS_VERIFY_CTX.pod" ], "doc/html/man3/UI_STRING.html" => [ "doc/man3/UI_STRING.pod" @@ -3749,6 +4314,21 @@ our %unified_info = ( "doc/html/man3/X509V3_set_ctx.html" => [ "doc/man3/X509V3_set_ctx.pod" ], + "doc/html/man3/X509_ACERT_add1_attr.html" => [ + "doc/man3/X509_ACERT_add1_attr.pod" + ], + "doc/html/man3/X509_ACERT_add_attr_nconf.html" => [ + "doc/man3/X509_ACERT_add_attr_nconf.pod" + ], + "doc/html/man3/X509_ACERT_get0_holder_baseCertId.html" => [ + "doc/man3/X509_ACERT_get0_holder_baseCertId.pod" + ], + "doc/html/man3/X509_ACERT_get_attr.html" => [ + "doc/man3/X509_ACERT_get_attr.pod" + ], + "doc/html/man3/X509_ACERT_print_ex.html" => [ + "doc/man3/X509_ACERT_print_ex.pod" + ], "doc/html/man3/X509_ALGOR_dup.html" => [ "doc/man3/X509_ALGOR_dup.pod" ], @@ -3797,6 +4377,9 @@ our %unified_info = ( "doc/html/man3/X509_SIG_get0.html" => [ "doc/man3/X509_SIG_get0.pod" ], + "doc/html/man3/X509_STORE_CTX_get_by_subject.html" => [ + "doc/man3/X509_STORE_CTX_get_by_subject.pod" + ], "doc/html/man3/X509_STORE_CTX_get_error.html" => [ "doc/man3/X509_STORE_CTX_get_error.pod" ], @@ -3863,6 +4446,9 @@ our %unified_info = ( "doc/html/man3/X509_get0_uids.html" => [ "doc/man3/X509_get0_uids.pod" ], + "doc/html/man3/X509_get_default_cert_file.html" => [ + "doc/man3/X509_get_default_cert_file.pod" + ], "doc/html/man3/X509_get_extension_flags.html" => [ "doc/man3/X509_get_extension_flags.pod" ], @@ -3986,9 +4572,15 @@ our %unified_info = ( "doc/html/man7/EVP_CIPHER-SM4.html" => [ "doc/man7/EVP_CIPHER-SM4.pod" ], + "doc/html/man7/EVP_KDF-ARGON2.html" => [ + "doc/man7/EVP_KDF-ARGON2.pod" + ], "doc/html/man7/EVP_KDF-HKDF.html" => [ "doc/man7/EVP_KDF-HKDF.pod" ], + "doc/html/man7/EVP_KDF-HMAC-DRBG.html" => [ + "doc/man7/EVP_KDF-HMAC-DRBG.pod" + ], "doc/html/man7/EVP_KDF-KB.html" => [ "doc/man7/EVP_KDF-KB.pod" ], @@ -4004,6 +4596,9 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-PKCS12KDF.html" => [ "doc/man7/EVP_KDF-PKCS12KDF.pod" ], + "doc/html/man7/EVP_KDF-PVKKDF.html" => [ + "doc/man7/EVP_KDF-PVKKDF.pod" + ], "doc/html/man7/EVP_KDF-SCRYPT.html" => [ "doc/man7/EVP_KDF-SCRYPT.pod" ], @@ -4028,9 +4623,18 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-X963.html" => [ "doc/man7/EVP_KDF-X963.pod" ], + "doc/html/man7/EVP_KEM-EC.html" => [ + "doc/man7/EVP_KEM-EC.pod" + ], + "doc/html/man7/EVP_KEM-ML-KEM.html" => [ + "doc/man7/EVP_KEM-ML-KEM.pod" + ], "doc/html/man7/EVP_KEM-RSA.html" => [ "doc/man7/EVP_KEM-RSA.pod" ], + "doc/html/man7/EVP_KEM-X25519.html" => [ + "doc/man7/EVP_KEM-X25519.pod" + ], "doc/html/man7/EVP_KEYEXCH-DH.html" => [ "doc/man7/EVP_KEYEXCH-DH.pod" ], @@ -4064,6 +4668,9 @@ our %unified_info = ( "doc/html/man7/EVP_MD-BLAKE2.html" => [ "doc/man7/EVP_MD-BLAKE2.pod" ], + "doc/html/man7/EVP_MD-KECCAK.html" => [ + "doc/man7/EVP_MD-KECCAK.pod" + ], "doc/html/man7/EVP_MD-MD2.html" => [ "doc/man7/EVP_MD-MD2.pod" ], @@ -4121,15 +4728,27 @@ our %unified_info = ( "doc/html/man7/EVP_PKEY-HMAC.html" => [ "doc/man7/EVP_PKEY-HMAC.pod" ], + "doc/html/man7/EVP_PKEY-ML-DSA.html" => [ + "doc/man7/EVP_PKEY-ML-DSA.pod" + ], + "doc/html/man7/EVP_PKEY-ML-KEM.html" => [ + "doc/man7/EVP_PKEY-ML-KEM.pod" + ], "doc/html/man7/EVP_PKEY-RSA.html" => [ "doc/man7/EVP_PKEY-RSA.pod" ], + "doc/html/man7/EVP_PKEY-SLH-DSA.html" => [ + "doc/man7/EVP_PKEY-SLH-DSA.pod" + ], "doc/html/man7/EVP_PKEY-SM2.html" => [ "doc/man7/EVP_PKEY-SM2.pod" ], "doc/html/man7/EVP_PKEY-X25519.html" => [ "doc/man7/EVP_PKEY-X25519.pod" ], + "doc/html/man7/EVP_RAND-CRNG-TEST.html" => [ + "doc/man7/EVP_RAND-CRNG-TEST.pod" + ], "doc/html/man7/EVP_RAND-CTR-DRBG.html" => [ "doc/man7/EVP_RAND-CTR-DRBG.pod" ], @@ -4139,6 +4758,9 @@ our %unified_info = ( "doc/html/man7/EVP_RAND-HMAC-DRBG.html" => [ "doc/man7/EVP_RAND-HMAC-DRBG.pod" ], + "doc/html/man7/EVP_RAND-JITTER.html" => [ + "doc/man7/EVP_RAND-JITTER.pod" + ], "doc/html/man7/EVP_RAND-SEED-SRC.html" => [ "doc/man7/EVP_RAND-SEED-SRC.pod" ], @@ -4160,9 +4782,15 @@ our %unified_info = ( "doc/html/man7/EVP_SIGNATURE-HMAC.html" => [ "doc/man7/EVP_SIGNATURE-HMAC.pod" ], + "doc/html/man7/EVP_SIGNATURE-ML-DSA.html" => [ + "doc/man7/EVP_SIGNATURE-ML-DSA.pod" + ], "doc/html/man7/EVP_SIGNATURE-RSA.html" => [ "doc/man7/EVP_SIGNATURE-RSA.pod" ], + "doc/html/man7/EVP_SIGNATURE-SLH-DSA.html" => [ + "doc/man7/EVP_SIGNATURE-SLH-DSA.pod" + ], "doc/html/man7/OSSL_PROVIDER-FIPS.html" => [ "doc/man7/OSSL_PROVIDER-FIPS.pod" ], @@ -4178,6 +4806,9 @@ our %unified_info = ( "doc/html/man7/OSSL_PROVIDER-null.html" => [ "doc/man7/OSSL_PROVIDER-null.pod" ], + "doc/html/man7/OSSL_STORE-winstore.html" => [ + "doc/man7/OSSL_STORE-winstore.pod" + ], "doc/html/man7/RAND.html" => [ "doc/man7/RAND.pod" ], @@ -4190,9 +4821,6 @@ our %unified_info = ( "doc/html/man7/bio.html" => [ "doc/man7/bio.pod" ], - "doc/html/man7/crypto.html" => [ - "doc/man7/crypto.pod" - ], "doc/html/man7/ct.html" => [ "doc/man7/ct.pod" ], @@ -4223,9 +4851,6 @@ our %unified_info = ( "doc/html/man7/life_cycle-rand.html" => [ "doc/man7/life_cycle-rand.pod" ], - "doc/html/man7/migration_guide.html" => [ - "doc/man7/migration_guide.pod" - ], "doc/html/man7/openssl-core.h.html" => [ "doc/man7/openssl-core.h.pod" ], @@ -4241,12 +4866,66 @@ our %unified_info = ( "doc/html/man7/openssl-glossary.html" => [ "doc/man7/openssl-glossary.pod" ], + "doc/html/man7/openssl-qlog.html" => [ + "doc/man7/openssl-qlog.pod" + ], + "doc/html/man7/openssl-quic-concurrency.html" => [ + "doc/man7/openssl-quic-concurrency.pod" + ], + "doc/html/man7/openssl-quic.html" => [ + "doc/man7/openssl-quic.pod" + ], "doc/html/man7/openssl-threads.html" => [ "doc/man7/openssl-threads.pod" ], "doc/html/man7/openssl_user_macros.html" => [ "doc/man7/openssl_user_macros.pod" ], + "doc/html/man7/ossl-guide-introduction.html" => [ + "doc/man7/ossl-guide-introduction.pod" + ], + "doc/html/man7/ossl-guide-libcrypto-introduction.html" => [ + "doc/man7/ossl-guide-libcrypto-introduction.pod" + ], + "doc/html/man7/ossl-guide-libraries-introduction.html" => [ + "doc/man7/ossl-guide-libraries-introduction.pod" + ], + "doc/html/man7/ossl-guide-libssl-introduction.html" => [ + "doc/man7/ossl-guide-libssl-introduction.pod" + ], + "doc/html/man7/ossl-guide-migration.html" => [ + "doc/man7/ossl-guide-migration.pod" + ], + "doc/html/man7/ossl-guide-quic-client-block.html" => [ + "doc/man7/ossl-guide-quic-client-block.pod" + ], + "doc/html/man7/ossl-guide-quic-client-non-block.html" => [ + "doc/man7/ossl-guide-quic-client-non-block.pod" + ], + "doc/html/man7/ossl-guide-quic-introduction.html" => [ + "doc/man7/ossl-guide-quic-introduction.pod" + ], + "doc/html/man7/ossl-guide-quic-multi-stream.html" => [ + "doc/man7/ossl-guide-quic-multi-stream.pod" + ], + "doc/html/man7/ossl-guide-quic-server-block.html" => [ + "doc/man7/ossl-guide-quic-server-block.pod" + ], + "doc/html/man7/ossl-guide-quic-server-non-block.html" => [ + "doc/man7/ossl-guide-quic-server-non-block.pod" + ], + "doc/html/man7/ossl-guide-tls-client-block.html" => [ + "doc/man7/ossl-guide-tls-client-block.pod" + ], + "doc/html/man7/ossl-guide-tls-client-non-block.html" => [ + "doc/man7/ossl-guide-tls-client-non-block.pod" + ], + "doc/html/man7/ossl-guide-tls-introduction.html" => [ + "doc/man7/ossl-guide-tls-introduction.pod" + ], + "doc/html/man7/ossl-guide-tls-server-block.html" => [ + "doc/man7/ossl-guide-tls-server-block.pod" + ], "doc/html/man7/ossl_store-file.html" => [ "doc/man7/ossl_store-file.pod" ], @@ -4301,6 +4980,9 @@ our %unified_info = ( "doc/html/man7/provider-signature.html" => [ "doc/man7/provider-signature.pod" ], + "doc/html/man7/provider-skeymgmt.html" => [ + "doc/man7/provider-skeymgmt.pod" + ], "doc/html/man7/provider-storemgmt.html" => [ "doc/man7/provider-storemgmt.pod" ], @@ -4310,9 +4992,6 @@ our %unified_info = ( "doc/html/man7/proxy-certificates.html" => [ "doc/man7/proxy-certificates.pod" ], - "doc/html/man7/ssl.html" => [ - "doc/man7/ssl.pod" - ], "doc/html/man7/x509.html" => [ "doc/man7/x509.pod" ], @@ -4460,6 +5139,9 @@ our %unified_info = ( "doc/man/man1/openssl-sess_id.1" => [ "doc/man1/openssl-sess_id.pod" ], + "doc/man/man1/openssl-skeyutl.1" => [ + "doc/man1/openssl-skeyutl.pod" + ], "doc/man/man1/openssl-smime.1" => [ "doc/man1/openssl-smime.pod" ], @@ -4601,6 +5283,9 @@ our %unified_info = ( "doc/man/man3/BIO_get_ex_new_index.3" => [ "doc/man3/BIO_get_ex_new_index.pod" ], + "doc/man/man3/BIO_get_rpoll_descriptor.3" => [ + "doc/man3/BIO_get_rpoll_descriptor.pod" + ], "doc/man/man3/BIO_meth_new.3" => [ "doc/man3/BIO_meth_new.pod" ], @@ -4637,6 +5322,9 @@ our %unified_info = ( "doc/man/man3/BIO_s_datagram.3" => [ "doc/man3/BIO_s_datagram.pod" ], + "doc/man/man3/BIO_s_dgram_pair.3" => [ + "doc/man3/BIO_s_dgram_pair.pod" + ], "doc/man/man3/BIO_s_fd.3" => [ "doc/man3/BIO_s_fd.pod" ], @@ -4652,6 +5340,9 @@ our %unified_info = ( "doc/man/man3/BIO_s_socket.3" => [ "doc/man3/BIO_s_socket.pod" ], + "doc/man/man3/BIO_sendmmsg.3" => [ + "doc/man3/BIO_sendmmsg.pod" + ], "doc/man/man3/BIO_set_callback.3" => [ "doc/man3/BIO_set_callback.pod" ], @@ -4724,6 +5415,9 @@ our %unified_info = ( "doc/man/man3/BUF_MEM_new.3" => [ "doc/man3/BUF_MEM_new.pod" ], + "doc/man/man3/CMAC_CTX.3" => [ + "doc/man3/CMAC_CTX.pod" + ], "doc/man/man3/CMS_EncryptedData_decrypt.3" => [ "doc/man3/CMS_EncryptedData_decrypt.pod" ], @@ -4790,6 +5484,9 @@ our %unified_info = ( "doc/man/man3/CMS_verify_receipt.3" => [ "doc/man3/CMS_verify_receipt.pod" ], + "doc/man/man3/COMP_CTX_new.3" => [ + "doc/man3/COMP_CTX_new.pod" + ], "doc/man/man3/CONF_modules_free.3" => [ "doc/man3/CONF_modules_free.pod" ], @@ -4889,6 +5586,12 @@ our %unified_info = ( "doc/man/man3/DTLS_set_timer_cb.3" => [ "doc/man3/DTLS_set_timer_cb.pod" ], + "doc/man/man3/DTLSv1_get_timeout.3" => [ + "doc/man3/DTLSv1_get_timeout.pod" + ], + "doc/man/man3/DTLSv1_handle_timeout.3" => [ + "doc/man3/DTLSv1_handle_timeout.pod" + ], "doc/man/man3/DTLSv1_listen.3" => [ "doc/man3/DTLSv1_listen.pod" ], @@ -5027,6 +5730,9 @@ our %unified_info = ( "doc/man/man3/EVP_PKEY_CTX_get0_pkey.3" => [ "doc/man3/EVP_PKEY_CTX_get0_pkey.pod" ], + "doc/man/man3/EVP_PKEY_CTX_get_algor.3" => [ + "doc/man3/EVP_PKEY_CTX_get_algor.pod" + ], "doc/man/man3/EVP_PKEY_CTX_new.3" => [ "doc/man3/EVP_PKEY_CTX_new.pod" ], @@ -5144,6 +5850,12 @@ our %unified_info = ( "doc/man/man3/EVP_SIGNATURE.3" => [ "doc/man3/EVP_SIGNATURE.pod" ], + "doc/man/man3/EVP_SKEY.3" => [ + "doc/man3/EVP_SKEY.pod" + ], + "doc/man/man3/EVP_SKEYMGMT.3" => [ + "doc/man3/EVP_SKEYMGMT.pod" + ], "doc/man/man3/EVP_SealInit.3" => [ "doc/man3/EVP_SealInit.pod" ], @@ -5231,6 +5943,9 @@ our %unified_info = ( "doc/man/man3/EVP_whirlpool.3" => [ "doc/man3/EVP_whirlpool.pod" ], + "doc/man/man3/GENERAL_NAME.3" => [ + "doc/man3/GENERAL_NAME.pod" + ], "doc/man/man3/HMAC.3" => [ "doc/man3/HMAC.pod" ], @@ -5303,9 +6018,15 @@ our %unified_info = ( "doc/man/man3/OPENSSL_load_builtin_modules.3" => [ "doc/man3/OPENSSL_load_builtin_modules.pod" ], + "doc/man/man3/OPENSSL_load_u16_le.3" => [ + "doc/man3/OPENSSL_load_u16_le.pod" + ], "doc/man/man3/OPENSSL_malloc.3" => [ "doc/man3/OPENSSL_malloc.pod" ], + "doc/man/man3/OPENSSL_riscvcap.3" => [ + "doc/man3/OPENSSL_riscvcap.pod" + ], "doc/man/man3/OPENSSL_s390xcap.3" => [ "doc/man3/OPENSSL_s390xcap.pod" ], @@ -5321,12 +6042,18 @@ our %unified_info = ( "doc/man/man3/OSSL_CALLBACK.3" => [ "doc/man3/OSSL_CALLBACK.pod" ], + "doc/man/man3/OSSL_CMP_ATAV_set0.3" => [ + "doc/man3/OSSL_CMP_ATAV_set0.pod" + ], "doc/man/man3/OSSL_CMP_CTX_new.3" => [ "doc/man3/OSSL_CMP_CTX_new.pod" ], "doc/man/man3/OSSL_CMP_HDR_get0_transactionID.3" => [ "doc/man3/OSSL_CMP_HDR_get0_transactionID.pod" ], + "doc/man/man3/OSSL_CMP_ITAV_new_caCerts.3" => [ + "doc/man3/OSSL_CMP_ITAV_new_caCerts.pod" + ], "doc/man/man3/OSSL_CMP_ITAV_set0.3" => [ "doc/man3/OSSL_CMP_ITAV_set0.pod" ], @@ -5396,9 +6123,18 @@ our %unified_info = ( "doc/man/man3/OSSL_ENCODER_to_bio.3" => [ "doc/man3/OSSL_ENCODER_to_bio.pod" ], + "doc/man/man3/OSSL_ERR_STATE_save.3" => [ + "doc/man3/OSSL_ERR_STATE_save.pod" + ], "doc/man/man3/OSSL_ESS_check_signing_certs.3" => [ "doc/man3/OSSL_ESS_check_signing_certs.pod" ], + "doc/man/man3/OSSL_GENERAL_NAMES_print.3" => [ + "doc/man3/OSSL_GENERAL_NAMES_print.pod" + ], + "doc/man/man3/OSSL_HPKE_CTX_new.3" => [ + "doc/man3/OSSL_HPKE_CTX_new.pod" + ], "doc/man/man3/OSSL_HTTP_REQ_CTX.3" => [ "doc/man3/OSSL_HTTP_REQ_CTX.pod" ], @@ -5408,12 +6144,24 @@ our %unified_info = ( "doc/man/man3/OSSL_HTTP_transfer.3" => [ "doc/man3/OSSL_HTTP_transfer.pod" ], + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX.3" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX.pod" + ], + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX_print.3" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX_print.pod" + ], + "doc/man/man3/OSSL_INDICATOR_set_callback.3" => [ + "doc/man3/OSSL_INDICATOR_set_callback.pod" + ], "doc/man/man3/OSSL_ITEM.3" => [ "doc/man3/OSSL_ITEM.pod" ], "doc/man/man3/OSSL_LIB_CTX.3" => [ "doc/man3/OSSL_LIB_CTX.pod" ], + "doc/man/man3/OSSL_LIB_CTX_set_conf_diagnostics.3" => [ + "doc/man3/OSSL_LIB_CTX_set_conf_diagnostics.pod" + ], "doc/man/man3/OSSL_PARAM.3" => [ "doc/man3/OSSL_PARAM.pod" ], @@ -5429,9 +6177,15 @@ our %unified_info = ( "doc/man/man3/OSSL_PARAM_int.3" => [ "doc/man3/OSSL_PARAM_int.pod" ], + "doc/man/man3/OSSL_PARAM_print_to_bio.3" => [ + "doc/man3/OSSL_PARAM_print_to_bio.pod" + ], "doc/man/man3/OSSL_PROVIDER.3" => [ "doc/man3/OSSL_PROVIDER.pod" ], + "doc/man/man3/OSSL_QUIC_client_method.3" => [ + "doc/man3/OSSL_QUIC_client_method.pod" + ], "doc/man/man3/OSSL_SELF_TEST_new.3" => [ "doc/man3/OSSL_SELF_TEST_new.pod" ], @@ -5456,6 +6210,9 @@ our %unified_info = ( "doc/man/man3/OSSL_STORE_open.3" => [ "doc/man3/OSSL_STORE_open.pod" ], + "doc/man/man3/OSSL_sleep.3" => [ + "doc/man3/OSSL_sleep.pod" + ], "doc/man/man3/OSSL_trace_enabled.3" => [ "doc/man3/OSSL_trace_enabled.pod" ], @@ -5471,6 +6228,9 @@ our %unified_info = ( "doc/man/man3/OpenSSL_version.3" => [ "doc/man3/OpenSSL_version.pod" ], + "doc/man/man3/PBMAC1_get1_pbkdf2_param.3" => [ + "doc/man3/PBMAC1_get1_pbkdf2_param.pod" + ], "doc/man/man3/PEM_X509_INFO_read_bio_ex.3" => [ "doc/man3/PEM_X509_INFO_read_bio_ex.pod" ], @@ -5507,6 +6267,9 @@ our %unified_info = ( "doc/man/man3/PKCS12_SAFEBAG_get1_cert.3" => [ "doc/man3/PKCS12_SAFEBAG_get1_cert.pod" ], + "doc/man/man3/PKCS12_SAFEBAG_set0_attrs.3" => [ + "doc/man3/PKCS12_SAFEBAG_set0_attrs.pod" + ], "doc/man/man3/PKCS12_add1_attr_by_NID.3" => [ "doc/man3/PKCS12_add1_attr_by_NID.pod" ], @@ -5780,6 +6543,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set0_CA_list.3" => [ "doc/man3/SSL_CTX_set0_CA_list.pod" ], + "doc/man/man3/SSL_CTX_set1_cert_comp_preference.3" => [ + "doc/man3/SSL_CTX_set1_cert_comp_preference.pod" + ], "doc/man/man3/SSL_CTX_set1_curves.3" => [ "doc/man3/SSL_CTX_set1_curves.pod" ], @@ -5819,6 +6585,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_default_passwd_cb.3" => [ "doc/man3/SSL_CTX_set_default_passwd_cb.pod" ], + "doc/man/man3/SSL_CTX_set_domain_flags.3" => [ + "doc/man3/SSL_CTX_set_domain_flags.pod" + ], "doc/man/man3/SSL_CTX_set_generate_session_id.3" => [ "doc/man3/SSL_CTX_set_generate_session_id.pod" ], @@ -5840,6 +6609,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_msg_callback.3" => [ "doc/man3/SSL_CTX_set_msg_callback.pod" ], + "doc/man/man3/SSL_CTX_set_new_pending_conn_cb.3" => [ + "doc/man3/SSL_CTX_set_new_pending_conn_cb.pod" + ], "doc/man/man3/SSL_CTX_set_num_tickets.3" => [ "doc/man3/SSL_CTX_set_num_tickets.pod" ], @@ -5954,6 +6726,9 @@ our %unified_info = ( "doc/man/man3/SSL_accept.3" => [ "doc/man3/SSL_accept.pod" ], + "doc/man/man3/SSL_accept_stream.3" => [ + "doc/man3/SSL_accept_stream.pod" + ], "doc/man/man3/SSL_alert_type_string.3" => [ "doc/man3/SSL_alert_type_string.pod" ], @@ -5981,9 +6756,21 @@ our %unified_info = ( "doc/man/man3/SSL_free.3" => [ "doc/man3/SSL_free.pod" ], + "doc/man/man3/SSL_get0_connection.3" => [ + "doc/man3/SSL_get0_connection.pod" + ], + "doc/man/man3/SSL_get0_group_name.3" => [ + "doc/man3/SSL_get0_group_name.pod" + ], + "doc/man/man3/SSL_get0_peer_rpk.3" => [ + "doc/man3/SSL_get0_peer_rpk.pod" + ], "doc/man/man3/SSL_get0_peer_scts.3" => [ "doc/man3/SSL_get0_peer_scts.pod" ], + "doc/man/man3/SSL_get1_builtin_sigalgs.3" => [ + "doc/man3/SSL_get1_builtin_sigalgs.pod" + ], "doc/man/man3/SSL_get_SSL_CTX.3" => [ "doc/man3/SSL_get_SSL_CTX.pod" ], @@ -5999,6 +6786,9 @@ our %unified_info = ( "doc/man/man3/SSL_get_client_random.3" => [ "doc/man3/SSL_get_client_random.pod" ], + "doc/man/man3/SSL_get_conn_close_info.3" => [ + "doc/man3/SSL_get_conn_close_info.pod" + ], "doc/man/man3/SSL_get_current_cipher.3" => [ "doc/man3/SSL_get_current_cipher.pod" ], @@ -6008,12 +6798,18 @@ our %unified_info = ( "doc/man/man3/SSL_get_error.3" => [ "doc/man3/SSL_get_error.pod" ], + "doc/man/man3/SSL_get_event_timeout.3" => [ + "doc/man3/SSL_get_event_timeout.pod" + ], "doc/man/man3/SSL_get_extms_support.3" => [ "doc/man3/SSL_get_extms_support.pod" ], "doc/man/man3/SSL_get_fd.3" => [ "doc/man3/SSL_get_fd.pod" ], + "doc/man/man3/SSL_get_handshake_rtt.3" => [ + "doc/man3/SSL_get_handshake_rtt.pod" + ], "doc/man/man3/SSL_get_peer_cert_chain.3" => [ "doc/man3/SSL_get_peer_cert_chain.pod" ], @@ -6032,12 +6828,24 @@ our %unified_info = ( "doc/man/man3/SSL_get_rbio.3" => [ "doc/man3/SSL_get_rbio.pod" ], + "doc/man/man3/SSL_get_rpoll_descriptor.3" => [ + "doc/man3/SSL_get_rpoll_descriptor.pod" + ], "doc/man/man3/SSL_get_session.3" => [ "doc/man3/SSL_get_session.pod" ], "doc/man/man3/SSL_get_shared_sigalgs.3" => [ "doc/man3/SSL_get_shared_sigalgs.pod" ], + "doc/man/man3/SSL_get_stream_id.3" => [ + "doc/man3/SSL_get_stream_id.pod" + ], + "doc/man/man3/SSL_get_stream_read_state.3" => [ + "doc/man3/SSL_get_stream_read_state.pod" + ], + "doc/man/man3/SSL_get_value_uint.3" => [ + "doc/man3/SSL_get_value_uint.pod" + ], "doc/man/man3/SSL_get_verify_result.3" => [ "doc/man3/SSL_get_verify_result.pod" ], @@ -6047,9 +6855,15 @@ our %unified_info = ( "doc/man/man3/SSL_group_to_name.3" => [ "doc/man3/SSL_group_to_name.pod" ], + "doc/man/man3/SSL_handle_events.3" => [ + "doc/man3/SSL_handle_events.pod" + ], "doc/man/man3/SSL_in_init.3" => [ "doc/man3/SSL_in_init.pod" ], + "doc/man/man3/SSL_inject_net_dgram.3" => [ + "doc/man3/SSL_inject_net_dgram.pod" + ], "doc/man/man3/SSL_key_update.3" => [ "doc/man3/SSL_key_update.pod" ], @@ -6062,9 +6876,21 @@ our %unified_info = ( "doc/man/man3/SSL_new.3" => [ "doc/man3/SSL_new.pod" ], + "doc/man/man3/SSL_new_domain.3" => [ + "doc/man3/SSL_new_domain.pod" + ], + "doc/man/man3/SSL_new_listener.3" => [ + "doc/man3/SSL_new_listener.pod" + ], + "doc/man/man3/SSL_new_stream.3" => [ + "doc/man3/SSL_new_stream.pod" + ], "doc/man/man3/SSL_pending.3" => [ "doc/man3/SSL_pending.pod" ], + "doc/man/man3/SSL_poll.3" => [ + "doc/man3/SSL_poll.pod" + ], "doc/man/man3/SSL_read.3" => [ "doc/man3/SSL_read.pod" ], @@ -6080,24 +6906,45 @@ our %unified_info = ( "doc/man/man3/SSL_set1_host.3" => [ "doc/man3/SSL_set1_host.pod" ], + "doc/man/man3/SSL_set1_initial_peer_addr.3" => [ + "doc/man3/SSL_set1_initial_peer_addr.pod" + ], + "doc/man/man3/SSL_set1_server_cert_type.3" => [ + "doc/man3/SSL_set1_server_cert_type.pod" + ], "doc/man/man3/SSL_set_async_callback.3" => [ "doc/man3/SSL_set_async_callback.pod" ], "doc/man/man3/SSL_set_bio.3" => [ "doc/man3/SSL_set_bio.pod" ], + "doc/man/man3/SSL_set_blocking_mode.3" => [ + "doc/man3/SSL_set_blocking_mode.pod" + ], "doc/man/man3/SSL_set_connect_state.3" => [ "doc/man3/SSL_set_connect_state.pod" ], + "doc/man/man3/SSL_set_default_stream_mode.3" => [ + "doc/man3/SSL_set_default_stream_mode.pod" + ], "doc/man/man3/SSL_set_fd.3" => [ "doc/man3/SSL_set_fd.pod" ], + "doc/man/man3/SSL_set_incoming_stream_policy.3" => [ + "doc/man3/SSL_set_incoming_stream_policy.pod" + ], + "doc/man/man3/SSL_set_quic_tls_cbs.3" => [ + "doc/man3/SSL_set_quic_tls_cbs.pod" + ], "doc/man/man3/SSL_set_retry_verify.3" => [ "doc/man3/SSL_set_retry_verify.pod" ], "doc/man/man3/SSL_set_session.3" => [ "doc/man3/SSL_set_session.pod" ], + "doc/man/man3/SSL_set_session_secret_cb.3" => [ + "doc/man3/SSL_set_session_secret_cb.pod" + ], "doc/man/man3/SSL_set_shutdown.3" => [ "doc/man3/SSL_set_shutdown.pod" ], @@ -6110,6 +6957,12 @@ our %unified_info = ( "doc/man/man3/SSL_state_string.3" => [ "doc/man3/SSL_state_string.pod" ], + "doc/man/man3/SSL_stream_conclude.3" => [ + "doc/man3/SSL_stream_conclude.pod" + ], + "doc/man/man3/SSL_stream_reset.3" => [ + "doc/man3/SSL_stream_reset.pod" + ], "doc/man/man3/SSL_want.3" => [ "doc/man3/SSL_want.pod" ], @@ -6119,8 +6972,8 @@ our %unified_info = ( "doc/man/man3/TS_RESP_CTX_new.3" => [ "doc/man3/TS_RESP_CTX_new.pod" ], - "doc/man/man3/TS_VERIFY_CTX_set_certs.3" => [ - "doc/man3/TS_VERIFY_CTX_set_certs.pod" + "doc/man/man3/TS_VERIFY_CTX.3" => [ + "doc/man3/TS_VERIFY_CTX.pod" ], "doc/man/man3/UI_STRING.3" => [ "doc/man3/UI_STRING.pod" @@ -6140,6 +6993,21 @@ our %unified_info = ( "doc/man/man3/X509V3_set_ctx.3" => [ "doc/man3/X509V3_set_ctx.pod" ], + "doc/man/man3/X509_ACERT_add1_attr.3" => [ + "doc/man3/X509_ACERT_add1_attr.pod" + ], + "doc/man/man3/X509_ACERT_add_attr_nconf.3" => [ + "doc/man3/X509_ACERT_add_attr_nconf.pod" + ], + "doc/man/man3/X509_ACERT_get0_holder_baseCertId.3" => [ + "doc/man3/X509_ACERT_get0_holder_baseCertId.pod" + ], + "doc/man/man3/X509_ACERT_get_attr.3" => [ + "doc/man3/X509_ACERT_get_attr.pod" + ], + "doc/man/man3/X509_ACERT_print_ex.3" => [ + "doc/man3/X509_ACERT_print_ex.pod" + ], "doc/man/man3/X509_ALGOR_dup.3" => [ "doc/man3/X509_ALGOR_dup.pod" ], @@ -6188,6 +7056,9 @@ our %unified_info = ( "doc/man/man3/X509_SIG_get0.3" => [ "doc/man3/X509_SIG_get0.pod" ], + "doc/man/man3/X509_STORE_CTX_get_by_subject.3" => [ + "doc/man3/X509_STORE_CTX_get_by_subject.pod" + ], "doc/man/man3/X509_STORE_CTX_get_error.3" => [ "doc/man3/X509_STORE_CTX_get_error.pod" ], @@ -6254,6 +7125,9 @@ our %unified_info = ( "doc/man/man3/X509_get0_uids.3" => [ "doc/man3/X509_get0_uids.pod" ], + "doc/man/man3/X509_get_default_cert_file.3" => [ + "doc/man3/X509_get_default_cert_file.pod" + ], "doc/man/man3/X509_get_extension_flags.3" => [ "doc/man3/X509_get_extension_flags.pod" ], @@ -6377,9 +7251,15 @@ our %unified_info = ( "doc/man/man7/EVP_CIPHER-SM4.7" => [ "doc/man7/EVP_CIPHER-SM4.pod" ], + "doc/man/man7/EVP_KDF-ARGON2.7" => [ + "doc/man7/EVP_KDF-ARGON2.pod" + ], "doc/man/man7/EVP_KDF-HKDF.7" => [ "doc/man7/EVP_KDF-HKDF.pod" ], + "doc/man/man7/EVP_KDF-HMAC-DRBG.7" => [ + "doc/man7/EVP_KDF-HMAC-DRBG.pod" + ], "doc/man/man7/EVP_KDF-KB.7" => [ "doc/man7/EVP_KDF-KB.pod" ], @@ -6395,6 +7275,9 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-PKCS12KDF.7" => [ "doc/man7/EVP_KDF-PKCS12KDF.pod" ], + "doc/man/man7/EVP_KDF-PVKKDF.7" => [ + "doc/man7/EVP_KDF-PVKKDF.pod" + ], "doc/man/man7/EVP_KDF-SCRYPT.7" => [ "doc/man7/EVP_KDF-SCRYPT.pod" ], @@ -6419,9 +7302,18 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-X963.7" => [ "doc/man7/EVP_KDF-X963.pod" ], + "doc/man/man7/EVP_KEM-EC.7" => [ + "doc/man7/EVP_KEM-EC.pod" + ], + "doc/man/man7/EVP_KEM-ML-KEM.7" => [ + "doc/man7/EVP_KEM-ML-KEM.pod" + ], "doc/man/man7/EVP_KEM-RSA.7" => [ "doc/man7/EVP_KEM-RSA.pod" ], + "doc/man/man7/EVP_KEM-X25519.7" => [ + "doc/man7/EVP_KEM-X25519.pod" + ], "doc/man/man7/EVP_KEYEXCH-DH.7" => [ "doc/man7/EVP_KEYEXCH-DH.pod" ], @@ -6455,6 +7347,9 @@ our %unified_info = ( "doc/man/man7/EVP_MD-BLAKE2.7" => [ "doc/man7/EVP_MD-BLAKE2.pod" ], + "doc/man/man7/EVP_MD-KECCAK.7" => [ + "doc/man7/EVP_MD-KECCAK.pod" + ], "doc/man/man7/EVP_MD-MD2.7" => [ "doc/man7/EVP_MD-MD2.pod" ], @@ -6512,15 +7407,27 @@ our %unified_info = ( "doc/man/man7/EVP_PKEY-HMAC.7" => [ "doc/man7/EVP_PKEY-HMAC.pod" ], + "doc/man/man7/EVP_PKEY-ML-DSA.7" => [ + "doc/man7/EVP_PKEY-ML-DSA.pod" + ], + "doc/man/man7/EVP_PKEY-ML-KEM.7" => [ + "doc/man7/EVP_PKEY-ML-KEM.pod" + ], "doc/man/man7/EVP_PKEY-RSA.7" => [ "doc/man7/EVP_PKEY-RSA.pod" ], + "doc/man/man7/EVP_PKEY-SLH-DSA.7" => [ + "doc/man7/EVP_PKEY-SLH-DSA.pod" + ], "doc/man/man7/EVP_PKEY-SM2.7" => [ "doc/man7/EVP_PKEY-SM2.pod" ], "doc/man/man7/EVP_PKEY-X25519.7" => [ "doc/man7/EVP_PKEY-X25519.pod" ], + "doc/man/man7/EVP_RAND-CRNG-TEST.7" => [ + "doc/man7/EVP_RAND-CRNG-TEST.pod" + ], "doc/man/man7/EVP_RAND-CTR-DRBG.7" => [ "doc/man7/EVP_RAND-CTR-DRBG.pod" ], @@ -6530,6 +7437,9 @@ our %unified_info = ( "doc/man/man7/EVP_RAND-HMAC-DRBG.7" => [ "doc/man7/EVP_RAND-HMAC-DRBG.pod" ], + "doc/man/man7/EVP_RAND-JITTER.7" => [ + "doc/man7/EVP_RAND-JITTER.pod" + ], "doc/man/man7/EVP_RAND-SEED-SRC.7" => [ "doc/man7/EVP_RAND-SEED-SRC.pod" ], @@ -6551,9 +7461,15 @@ our %unified_info = ( "doc/man/man7/EVP_SIGNATURE-HMAC.7" => [ "doc/man7/EVP_SIGNATURE-HMAC.pod" ], + "doc/man/man7/EVP_SIGNATURE-ML-DSA.7" => [ + "doc/man7/EVP_SIGNATURE-ML-DSA.pod" + ], "doc/man/man7/EVP_SIGNATURE-RSA.7" => [ "doc/man7/EVP_SIGNATURE-RSA.pod" ], + "doc/man/man7/EVP_SIGNATURE-SLH-DSA.7" => [ + "doc/man7/EVP_SIGNATURE-SLH-DSA.pod" + ], "doc/man/man7/OSSL_PROVIDER-FIPS.7" => [ "doc/man7/OSSL_PROVIDER-FIPS.pod" ], @@ -6569,6 +7485,9 @@ our %unified_info = ( "doc/man/man7/OSSL_PROVIDER-null.7" => [ "doc/man7/OSSL_PROVIDER-null.pod" ], + "doc/man/man7/OSSL_STORE-winstore.7" => [ + "doc/man7/OSSL_STORE-winstore.pod" + ], "doc/man/man7/RAND.7" => [ "doc/man7/RAND.pod" ], @@ -6581,9 +7500,6 @@ our %unified_info = ( "doc/man/man7/bio.7" => [ "doc/man7/bio.pod" ], - "doc/man/man7/crypto.7" => [ - "doc/man7/crypto.pod" - ], "doc/man/man7/ct.7" => [ "doc/man7/ct.pod" ], @@ -6614,9 +7530,6 @@ our %unified_info = ( "doc/man/man7/life_cycle-rand.7" => [ "doc/man7/life_cycle-rand.pod" ], - "doc/man/man7/migration_guide.7" => [ - "doc/man7/migration_guide.pod" - ], "doc/man/man7/openssl-core.h.7" => [ "doc/man7/openssl-core.h.pod" ], @@ -6632,12 +7545,66 @@ our %unified_info = ( "doc/man/man7/openssl-glossary.7" => [ "doc/man7/openssl-glossary.pod" ], + "doc/man/man7/openssl-qlog.7" => [ + "doc/man7/openssl-qlog.pod" + ], + "doc/man/man7/openssl-quic-concurrency.7" => [ + "doc/man7/openssl-quic-concurrency.pod" + ], + "doc/man/man7/openssl-quic.7" => [ + "doc/man7/openssl-quic.pod" + ], "doc/man/man7/openssl-threads.7" => [ "doc/man7/openssl-threads.pod" ], "doc/man/man7/openssl_user_macros.7" => [ "doc/man7/openssl_user_macros.pod" ], + "doc/man/man7/ossl-guide-introduction.7" => [ + "doc/man7/ossl-guide-introduction.pod" + ], + "doc/man/man7/ossl-guide-libcrypto-introduction.7" => [ + "doc/man7/ossl-guide-libcrypto-introduction.pod" + ], + "doc/man/man7/ossl-guide-libraries-introduction.7" => [ + "doc/man7/ossl-guide-libraries-introduction.pod" + ], + "doc/man/man7/ossl-guide-libssl-introduction.7" => [ + "doc/man7/ossl-guide-libssl-introduction.pod" + ], + "doc/man/man7/ossl-guide-migration.7" => [ + "doc/man7/ossl-guide-migration.pod" + ], + "doc/man/man7/ossl-guide-quic-client-block.7" => [ + "doc/man7/ossl-guide-quic-client-block.pod" + ], + "doc/man/man7/ossl-guide-quic-client-non-block.7" => [ + "doc/man7/ossl-guide-quic-client-non-block.pod" + ], + "doc/man/man7/ossl-guide-quic-introduction.7" => [ + "doc/man7/ossl-guide-quic-introduction.pod" + ], + "doc/man/man7/ossl-guide-quic-multi-stream.7" => [ + "doc/man7/ossl-guide-quic-multi-stream.pod" + ], + "doc/man/man7/ossl-guide-quic-server-block.7" => [ + "doc/man7/ossl-guide-quic-server-block.pod" + ], + "doc/man/man7/ossl-guide-quic-server-non-block.7" => [ + "doc/man7/ossl-guide-quic-server-non-block.pod" + ], + "doc/man/man7/ossl-guide-tls-client-block.7" => [ + "doc/man7/ossl-guide-tls-client-block.pod" + ], + "doc/man/man7/ossl-guide-tls-client-non-block.7" => [ + "doc/man7/ossl-guide-tls-client-non-block.pod" + ], + "doc/man/man7/ossl-guide-tls-introduction.7" => [ + "doc/man7/ossl-guide-tls-introduction.pod" + ], + "doc/man/man7/ossl-guide-tls-server-block.7" => [ + "doc/man7/ossl-guide-tls-server-block.pod" + ], "doc/man/man7/ossl_store-file.7" => [ "doc/man7/ossl_store-file.pod" ], @@ -6692,6 +7659,9 @@ our %unified_info = ( "doc/man/man7/provider-signature.7" => [ "doc/man7/provider-signature.pod" ], + "doc/man/man7/provider-skeymgmt.7" => [ + "doc/man7/provider-skeymgmt.pod" + ], "doc/man/man7/provider-storemgmt.7" => [ "doc/man7/provider-storemgmt.pod" ], @@ -6701,9 +7671,6 @@ our %unified_info = ( "doc/man/man7/proxy-certificates.7" => [ "doc/man7/proxy-certificates.pod" ], - "doc/man/man7/ssl.7" => [ - "doc/man7/ssl.pod" - ], "doc/man/man7/x509.7" => [ "doc/man7/x509.pod" ], @@ -6883,6 +7850,10 @@ our %unified_info = ( "doc/man1/openssl-sess_id.pod.in", "doc/perlvars.pm" ], + "doc/man1/openssl-skeyutl.pod" => [ + "doc/man1/openssl-skeyutl.pod.in", + "doc/perlvars.pm" + ], "doc/man1/openssl-smime.pod" => [ "doc/man1/openssl-smime.pod.in", "doc/perlvars.pm" @@ -6922,6 +7893,27 @@ our %unified_info = ( "doc/man7/openssl_user_macros.pod" => [ "doc/man7/openssl_user_macros.pod.in" ], + "exporters/OpenSSLConfig.cmake" => [ + "installdata.pm" + ], + "exporters/OpenSSLConfigVersion.cmake" => [ + "exporters/OpenSSLConfig.cmake", + "installdata.pm" + ], + "exporters/libcrypto.pc" => [ + "installdata.pm" + ], + "exporters/libssl.pc" => [ + "installdata.pm" + ], + "exporters/openssl.pc" => [ + "exporters/libcrypto.pc", + "exporters/libssl.pc", + "installdata.pm" + ], + "fuzz/acert-test" => [ + "libcrypto" + ], "fuzz/asn1-test" => [ "libcrypto", "libssl" @@ -6954,16 +7946,92 @@ our %unified_info = ( "fuzz/ct-test" => [ "libcrypto" ], + "fuzz/decoder-test" => [ + "libcrypto" + ], + "fuzz/dtlsclient-test" => [ + "libcrypto", + "libssl" + ], + "fuzz/dtlsserver-test" => [ + "libcrypto", + "libssl" + ], + "fuzz/hashtable-test" => [ + "libcrypto.a" + ], + "fuzz/ml-dsa-test" => [ + "libcrypto.a" + ], + "fuzz/ml-kem-test" => [ + "libcrypto.a" + ], + "fuzz/pem-test" => [ + "libcrypto.a" + ], + "fuzz/provider-test" => [ + "libcrypto" + ], + "fuzz/punycode-test" => [ + "libcrypto.a" + ], + "fuzz/quic-client-test" => [ + "libcrypto.a", + "libssl.a" + ], + "fuzz/quic-lcidm-test" => [ + "libcrypto.a", + "libssl.a" + ], + "fuzz/quic-rcidm-test" => [ + "libcrypto.a", + "libssl.a" + ], + "fuzz/quic-server-test" => [ + "libcrypto.a", + "libssl.a" + ], + "fuzz/quic-srtm-test" => [ + "libcrypto.a", + "libssl.a" + ], "fuzz/server-test" => [ "libcrypto", "libssl" ], + "fuzz/slh-dsa-test" => [ + "libcrypto.a" + ], + "fuzz/smime-test" => [ + "libcrypto", + "libssl" + ], + "fuzz/v3name-test" => [ + "libcrypto.a" + ], "fuzz/x509-test" => [ "libcrypto" ], + "include/internal/param_names.h" => [ + "util/perl|OpenSSL/paramnames.pm" + ], + "include/openssl/core_names.h" => [ + "util/perl|OpenSSL/paramnames.pm" + ], + "libcrypto.pc" => [ + "builddata.pm" + ], "libssl" => [ "libcrypto" ], + "libssl.pc" => [ + "builddata.pm" + ], + "openssl.pc" => [ + "builddata.pm", + "libcrypto.pc", + "libssl.pc" + ], "providers/common/der/der_digests_gen.c" => [ "providers/common/der/DIGESTS.asn1", "providers/common/der/NIST.asn1", @@ -6981,11 +8049,19 @@ our %unified_info = ( "providers/common/der/ECX.asn1", "providers/common/der/oids_to_c.pm" ], + "providers/common/der/der_ml_dsa_gen.c" => [ + "providers/common/der/ML_DSA.asn1", + "providers/common/der/oids_to_c.pm" + ], "providers/common/der/der_rsa_gen.c" => [ "providers/common/der/NIST.asn1", "providers/common/der/RSA.asn1", "providers/common/der/oids_to_c.pm" ], + "providers/common/der/der_slh_dsa_gen.c" => [ + "providers/common/der/SLH_DSA.asn1", + "providers/common/der/oids_to_c.pm" + ], "providers/common/der/der_sm2_gen.c" => [ "providers/common/der/SM2.asn1", "providers/common/der/oids_to_c.pm" @@ -7025,6 +8101,12 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ecx_key.o" => [ "providers/common/include/prov/der_ecx.h" ], + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o" => [ + "providers/common/include/prov/der_ml_dsa.h" + ], + "providers/common/der/libcommon-lib-der_ml_dsa_key.o" => [ + "providers/common/include/prov/der_ml_dsa.h" + ], "providers/common/der/libcommon-lib-der_rsa_gen.o" => [ "providers/common/include/prov/der_rsa.h" ], @@ -7032,6 +8114,12 @@ our %unified_info = ( "providers/common/include/prov/der_digests.h", "providers/common/include/prov/der_rsa.h" ], + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o" => [ + "providers/common/include/prov/der_slh_dsa.h" + ], + "providers/common/der/libcommon-lib-der_slh_dsa_key.o" => [ + "providers/common/include/prov/der_slh_dsa.h" + ], "providers/common/der/libcommon-lib-der_wrap_gen.o" => [ "providers/common/include/prov/der_wrap.h" ], @@ -7071,11 +8159,19 @@ our %unified_info = ( "providers/common/der/ECX.asn1", "providers/common/der/oids_to_c.pm" ], + "providers/common/include/prov/der_ml_dsa.h" => [ + "providers/common/der/ML_DSA.asn1", + "providers/common/der/oids_to_c.pm" + ], "providers/common/include/prov/der_rsa.h" => [ "providers/common/der/NIST.asn1", "providers/common/der/RSA.asn1", "providers/common/der/oids_to_c.pm" ], + "providers/common/include/prov/der_slh_dsa.h" => [ + "providers/common/der/SLH_DSA.asn1", + "providers/common/der/oids_to_c.pm" + ], "providers/common/include/prov/der_sm2.h" => [ "providers/common/der/SM2.asn1", "providers/common/der/oids_to_c.pm" @@ -7108,9 +8204,15 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-eddsa_sig.o" => [ "providers/common/include/prov/der_ecx.h" ], + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o" => [ + "providers/common/include/prov/der_ml_dsa.h" + ], "providers/implementations/signature/libdefault-lib-rsa_sig.o" => [ "providers/common/include/prov/der_rsa.h" ], + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o" => [ + "providers/common/include/prov/der_slh_dsa.h" + ], "providers/implementations/signature/libdefault-lib-sm2_sig.o" => [ "providers/common/include/prov/der_sm2.h" ], @@ -7123,9 +8225,15 @@ our %unified_info = ( "providers/implementations/signature/libfips-lib-eddsa_sig.o" => [ "providers/common/include/prov/der_ecx.h" ], + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o" => [ + "providers/common/include/prov/der_ml_dsa.h" + ], "providers/implementations/signature/libfips-lib-rsa_sig.o" => [ "providers/common/include/prov/der_rsa.h" ], + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o" => [ + "providers/common/include/prov/der_slh_dsa.h" + ], "providers/legacy" => [ "libcrypto", "providers/liblegacy.a" @@ -7203,6 +8311,14 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/bio_addr_test" => [ + "libcrypto", + "test/libtestutil.a" + ], + "test/bio_base64_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/bio_callback_test" => [ "libcrypto", "test/libtestutil.a" @@ -7211,6 +8327,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/bio_dgram_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/bio_enc_test" => [ "libcrypto", "test/libtestutil.a" @@ -7219,6 +8339,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/bio_meth_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/bio_prefix_text" => [ "libcrypto", "test/libtestutil.a" @@ -7231,6 +8355,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/bio_tfo_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/bioprinttest" => [ "libcrypto", "test/libtestutil.a" @@ -7243,6 +8371,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/build_wincrypt_test" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_aes" => [ "libcrypto", "libssl" @@ -7263,6 +8395,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_byteorder" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_camellia" => [ "libcrypto", "libssl" @@ -7295,10 +8431,6 @@ our %unified_info = ( "libcrypto", "libssl" ], - "test/buildtest_c_core_names" => [ - "libcrypto", - "libssl" - ], "test/buildtest_c_core_object" => [ "libcrypto", "libssl" @@ -7331,6 +8463,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_e_ostime" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_ebcdic" => [ "libcrypto", "libssl" @@ -7367,6 +8503,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_hpke" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_http" => [ "libcrypto", "libssl" @@ -7375,6 +8515,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_indicator" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_kdf" => [ "libcrypto", "libssl" @@ -7395,6 +8539,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_ml_kem" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_modes" => [ "libcrypto", "libssl" @@ -7435,6 +8583,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_quic" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_rand" => [ "libcrypto", "libssl" @@ -7491,6 +8643,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_thread" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_tls1" => [ "libcrypto", "libssl" @@ -7511,15 +8667,28 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/byteorder_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], + "test/ca_internals_test" => [ + "libssl", + "test/libtestutil.a" + ], "test/casttest" => [ "libcrypto", "test/libtestutil.a" ], - "test/chacha_internal_test" => [ + "test/cert_comp_test" => [ "libcrypto.a", + "libssl.a", "test/libtestutil.a" ], - "test/cipher_overhead_test" => [ + "test/chacha_internal_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], + "test/cipher_overhead_test" => [ "libcrypto.a", "libssl.a", "test/libtestutil.a" @@ -7628,6 +8797,10 @@ our %unified_info = ( "libssl", "test/libtestutil.a" ], + "test/decoder_propq_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/defltfips_test" => [ "libcrypto", "test/libtestutil.a" @@ -7684,6 +8857,8 @@ our %unified_info = ( ], "test/endecode_test" => [ "libcrypto.a", + "providers/libcommon.a", + "providers/liblegacy.a", "test/libtestutil.a" ], "test/endecoder_legacy_test" => [ @@ -7727,6 +8902,10 @@ our %unified_info = ( "test/evp_pkey_ctx_new_from_name" => [ "libcrypto" ], + "test/evp_pkey_dhkem_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/evp_pkey_dparams_test" => [ "libcrypto", "test/libtestutil.a" @@ -7735,10 +8914,18 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/evp_skey_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/evp_test" => [ "libcrypto", "test/libtestutil.a" ], + "test/evp_xof_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/exdatatest" => [ "libcrypto", "test/libtestutil.a" @@ -7777,6 +8964,10 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/hpke_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/http_test" => [ "libcrypto", "test/libtestutil.a" @@ -7789,17 +8980,25 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/json_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], "test/keymgmt_internal_test" => [ "libcrypto.a", "test/libtestutil.a" ], "test/lhash_test" => [ - "libcrypto", + "libcrypto.a", "test/libtestutil.a" ], "test/libtestutil.a" => [ "libcrypto" ], + "test/list_test" => [ + "test/libtestutil.a" + ], "test/localetest" => [ "libcrypto", "test/libtestutil.a" @@ -7812,10 +9011,26 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/membio_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/memleaktest" => [ "libcrypto", "test/libtestutil.a" ], + "test/ml_dsa_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], + "test/ml_kem_evp_extra_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], + "test/ml_kem_internal_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/modes_internal_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -7840,6 +9055,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/pairwise_fail_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/param_build_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -7872,6 +9091,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/pkcs12_api_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/pkcs12_format_test" => [ "libcrypto", "test/libtestutil.a" @@ -7892,6 +9115,11 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/priority_queue_test" => [ + "libcrypto", + "libssl.a", + "test/libtestutil.a" + ], "test/property_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -7904,6 +9132,10 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/provider_default_search_path_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/provider_fallback_test" => [ "libcrypto", "test/libtestutil.a" @@ -7928,12 +9160,122 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/quic_ackm_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_cc_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_cfq_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_client_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_fc_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_fifd_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_lcidm_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_multistream_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_newcid_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_qlog_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_radix_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_rcidm_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_record_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_srt_gen_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_srtm_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_stream_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_tserver_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_txp_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_txpim_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_wire_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quicapitest" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quicfaultstest" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], "test/rand_status_test" => [ "libcrypto", "test/libtestutil.a" ], "test/rand_test" => [ - "libcrypto", + "libcrypto.a", "test/libtestutil.a" ], "test/rc2test" => [ @@ -7948,7 +9290,7 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], - "test/rdrand_sanitytest" => [ + "test/rdcpu_sanitytest" => [ "libcrypto.a", "test/libtestutil.a" ], @@ -7957,6 +9299,11 @@ our %unified_info = ( "libssl", "test/libtestutil.a" ], + "test/rpktest" => [ + "libcrypto", + "libssl", + "test/libtestutil.a" + ], "test/rsa_mp_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -7969,10 +9316,18 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], - "test/sanitytest" => [ + "test/rsa_x931_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], + "test/safe_math_test" => [ "libcrypto", "test/libtestutil.a" ], + "test/sanitytest" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/secmemtest" => [ "libcrypto", "test/libtestutil.a" @@ -7990,6 +9345,10 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/slh_dsa_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/sm2_internal_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -8019,6 +9378,11 @@ our %unified_info = ( "libssl", "test/libtestutil.a" ], + "test/ssl_handshake_rtt_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], "test/ssl_old_test" => [ "libcrypto.a", "libssl.a", @@ -8035,8 +9399,8 @@ our %unified_info = ( "test/libtestutil.a" ], "test/sslapitest" => [ - "libcrypto", - "libssl", + "libcrypto.a", + "libssl.a", "test/libtestutil.a" ], "test/sslbuffertest" => [ @@ -8053,6 +9417,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/strtoultest" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/sysdefaulttest" => [ "libcrypto", "libssl", @@ -8062,8 +9430,12 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/threadpool_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/threadstest" => [ - "libcrypto", + "libcrypto.a", "test/libtestutil.a" ], "test/threadstest_fips" => [ @@ -8074,6 +9446,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/time_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/tls13ccstest" => [ "libcrypto", "libssl", @@ -8084,6 +9460,11 @@ our %unified_info = ( "libssl.a", "test/libtestutil.a" ], + "test/tls13groupselection_test" => [ + "libcrypto", + "libssl", + "test/libtestutil.a" + ], "test/trace_api_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -8121,6 +9502,10 @@ our %unified_info = ( "libssl.a", "test/libtestutil.a" ], + "test/x509_acert_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/x509_check_cert_pkey_test" => [ "libcrypto", "test/libtestutil.a" @@ -8133,6 +9518,18 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/x509_load_cert_file_test" => [ + "libcrypto", + "test/libtestutil.a" + ], + "test/x509_req_test" => [ + "libcrypto", + "test/libtestutil.a" + ], + "test/x509_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/x509_time_test" => [ "libcrypto", "test/libtestutil.a" @@ -8147,9 +9544,13 @@ our %unified_info = ( }, "dirinfo" => { "apps" => { + "deps" => [ + "apps/ca_internals_test-bin-ca.o" + ], "products" => { "bin" => [ - "apps/openssl" + "apps/openssl", + "test/ca_internals_test" ], "script" => [ "apps/CA.pl", @@ -8160,6 +9561,14 @@ our %unified_info = ( "apps/lib" => { "deps" => [ "apps/lib/openssl-bin-cmp_mock_srv.o", + "apps/lib/ca_internals_test-bin-app_libctx.o", + "apps/lib/ca_internals_test-bin-app_provider.o", + "apps/lib/ca_internals_test-bin-app_rand.o", + "apps/lib/ca_internals_test-bin-app_x509.o", + "apps/lib/ca_internals_test-bin-apps.o", + "apps/lib/ca_internals_test-bin-apps_ui.o", + "apps/lib/ca_internals_test-bin-engine.o", + "apps/lib/ca_internals_test-bin-fmt.o", "apps/lib/cmp_client_test-bin-cmp_mock_srv.o", "apps/lib/uitest-bin-apps_ui.o", "apps/lib/libapps-lib-app_libctx.o", @@ -8168,12 +9577,14 @@ our %unified_info = ( "apps/lib/libapps-lib-app_rand.o", "apps/lib/libapps-lib-app_x509.o", "apps/lib/libapps-lib-apps.o", + "apps/lib/libapps-lib-apps_opt_printf.o", "apps/lib/libapps-lib-apps_ui.o", "apps/lib/libapps-lib-columns.o", "apps/lib/libapps-lib-engine.o", "apps/lib/libapps-lib-engine_loader.o", "apps/lib/libapps-lib-fmt.o", "apps/lib/libapps-lib-http_server.o", + "apps/lib/libapps-lib-log.o", "apps/lib/libapps-lib-names.o", "apps/lib/libapps-lib-opt.o", "apps/lib/libapps-lib-s_cb.o", @@ -8184,6 +9595,7 @@ our %unified_info = ( "products" => { "bin" => [ "apps/openssl", + "test/ca_internals_test", "test/cmp_client_test", "test/uitest" ], @@ -8195,10 +9607,14 @@ our %unified_info = ( }, "crypto" => { "deps" => [ + "crypto/asn1_time_test-bin-ctype.o", + "crypto/ca_internals_test-bin-ctype.o", + "crypto/packettest-bin-quic_vlint.o", "crypto/libcrypto-lib-arm64cpuid.o", "crypto/libcrypto-lib-armcap.o", "crypto/libcrypto-lib-asn1_dsa.o", "crypto/libcrypto-lib-bsearch.o", + "crypto/libcrypto-lib-comp_methods.o", "crypto/libcrypto-lib-context.o", "crypto/libcrypto-lib-core_algorithm.o", "crypto/libcrypto-lib-core_fetch.o", @@ -8208,10 +9624,13 @@ our %unified_info = ( "crypto/libcrypto-lib-cryptlib.o", "crypto/libcrypto-lib-ctype.o", "crypto/libcrypto-lib-cversion.o", + "crypto/libcrypto-lib-defaults.o", "crypto/libcrypto-lib-der_writer.o", + "crypto/libcrypto-lib-deterministic_nonce.o", "crypto/libcrypto-lib-ebcdic.o", "crypto/libcrypto-lib-ex_data.o", "crypto/libcrypto-lib-getenv.o", + "crypto/libcrypto-lib-indicator_core.o", "crypto/libcrypto-lib-info.o", "crypto/libcrypto-lib-init.o", "crypto/libcrypto-lib-initthread.o", @@ -8228,6 +9647,7 @@ our %unified_info = ( "crypto/libcrypto-lib-params.o", "crypto/libcrypto-lib-params_dup.o", "crypto/libcrypto-lib-params_from_text.o", + "crypto/libcrypto-lib-params_idx.o", "crypto/libcrypto-lib-passphrase.o", "crypto/libcrypto-lib-provider.o", "crypto/libcrypto-lib-provider_child.o", @@ -8235,12 +9655,16 @@ our %unified_info = ( "crypto/libcrypto-lib-provider_core.o", "crypto/libcrypto-lib-provider_predefined.o", "crypto/libcrypto-lib-punycode.o", + "crypto/libcrypto-lib-quic_vlint.o", "crypto/libcrypto-lib-self_test_core.o", + "crypto/libcrypto-lib-sleep.o", "crypto/libcrypto-lib-sparse_array.o", + "crypto/libcrypto-lib-ssl_err.o", "crypto/libcrypto-lib-threads_lib.o", "crypto/libcrypto-lib-threads_none.o", "crypto/libcrypto-lib-threads_pthread.o", "crypto/libcrypto-lib-threads_win.o", + "crypto/libcrypto-lib-time.o", "crypto/libcrypto-lib-trace.o", "crypto/libcrypto-lib-uid.o", "crypto/libfips-lib-arm64cpuid.o", @@ -8264,6 +9688,7 @@ our %unified_info = ( "crypto/libfips-lib-params.o", "crypto/libfips-lib-params_dup.o", "crypto/libfips-lib-params_from_text.o", + "crypto/libfips-lib-params_idx.o", "crypto/libfips-lib-provider_core.o", "crypto/libfips-lib-provider_predefined.o", "crypto/libfips-lib-self_test_core.o", @@ -8271,9 +9696,15 @@ our %unified_info = ( "crypto/libfips-lib-threads_lib.o", "crypto/libfips-lib-threads_none.o", "crypto/libfips-lib-threads_pthread.o", - "crypto/libfips-lib-threads_win.o" + "crypto/libfips-lib-threads_win.o", + "crypto/libfips-lib-time.o" ], "products" => { + "bin" => [ + "test/asn1_time_test", + "test/ca_internals_test", + "test/packettest" + ], "lib" => [ "libcrypto", "providers/libfips.a" @@ -8291,12 +9722,14 @@ our %unified_info = ( "crypto/aes/libcrypto-lib-aes_ofb.o", "crypto/aes/libcrypto-lib-aes_wrap.o", "crypto/aes/libcrypto-lib-aesv8-armx.o", + "crypto/aes/libcrypto-lib-bsaes-armv8.o", "crypto/aes/libcrypto-lib-vpaes-armv8.o", "crypto/aes/libfips-lib-aes_cbc.o", "crypto/aes/libfips-lib-aes_core.o", "crypto/aes/libfips-lib-aes_ecb.o", "crypto/aes/libfips-lib-aes_misc.o", "crypto/aes/libfips-lib-aesv8-armx.o", + "crypto/aes/libfips-lib-bsaes-armv8.o", "crypto/aes/libfips-lib-vpaes-armv8.o" ], "products" => { @@ -8318,6 +9751,8 @@ our %unified_info = ( }, "crypto/asn1" => { "deps" => [ + "crypto/asn1/asn1_time_test-bin-a_time.o", + "crypto/asn1/ca_internals_test-bin-a_time.o", "crypto/asn1/libcrypto-lib-a_bitstr.o", "crypto/asn1/libcrypto-lib-a_d2i_fp.o", "crypto/asn1/libcrypto-lib-a_digest.o", @@ -8384,6 +9819,10 @@ our %unified_info = ( "crypto/asn1/libcrypto-lib-x_val.o" ], "products" => { + "bin" => [ + "test/asn1_time_test", + "test/ca_internals_test" + ], "lib" => [ "libcrypto" ] @@ -8449,6 +9888,7 @@ our %unified_info = ( "crypto/bio/libcrypto-lib-bss_conn.o", "crypto/bio/libcrypto-lib-bss_core.o", "crypto/bio/libcrypto-lib-bss_dgram.o", + "crypto/bio/libcrypto-lib-bss_dgram_pair.o", "crypto/bio/libcrypto-lib-bss_fd.o", "crypto/bio/libcrypto-lib-bss_file.o", "crypto/bio/libcrypto-lib-bss_log.o", @@ -8581,6 +10021,7 @@ our %unified_info = ( }, "crypto/chacha" => { "deps" => [ + "crypto/chacha/libcrypto-lib-chacha-armv8-sve.o", "crypto/chacha/libcrypto-lib-chacha-armv8.o" ], "products" => { @@ -8607,6 +10048,7 @@ our %unified_info = ( "crypto/cmp/libcrypto-lib-cmp_client.o", "crypto/cmp/libcrypto-lib-cmp_ctx.o", "crypto/cmp/libcrypto-lib-cmp_err.o", + "crypto/cmp/libcrypto-lib-cmp_genm.o", "crypto/cmp/libcrypto-lib-cmp_hdr.o", "crypto/cmp/libcrypto-lib-cmp_http.o", "crypto/cmp/libcrypto-lib-cmp_msg.o", @@ -8842,6 +10284,9 @@ our %unified_info = ( "crypto/ec/libcrypto-lib-ecp_nistz256-armv8.o", "crypto/ec/libcrypto-lib-ecp_nistz256.o", "crypto/ec/libcrypto-lib-ecp_oct.o", + "crypto/ec/libcrypto-lib-ecp_sm2p256-armv8.o", + "crypto/ec/libcrypto-lib-ecp_sm2p256.o", + "crypto/ec/libcrypto-lib-ecp_sm2p256_table.o", "crypto/ec/libcrypto-lib-ecp_smpl.o", "crypto/ec/libcrypto-lib-ecx_backend.o", "crypto/ec/libcrypto-lib-ecx_key.o", @@ -8869,6 +10314,9 @@ our %unified_info = ( "crypto/ec/libfips-lib-ecp_nistz256-armv8.o", "crypto/ec/libfips-lib-ecp_nistz256.o", "crypto/ec/libfips-lib-ecp_oct.o", + "crypto/ec/libfips-lib-ecp_sm2p256-armv8.o", + "crypto/ec/libfips-lib-ecp_sm2p256.o", + "crypto/ec/libfips-lib-ecp_sm2p256_table.o", "crypto/ec/libfips-lib-ecp_smpl.o", "crypto/ec/libfips-lib-ecx_backend.o", "crypto/ec/libfips-lib-ecx_key.o" @@ -8978,7 +10426,9 @@ our %unified_info = ( "crypto/err/libcrypto-lib-err_all.o", "crypto/err/libcrypto-lib-err_all_legacy.o", "crypto/err/libcrypto-lib-err_blocks.o", - "crypto/err/libcrypto-lib-err_prn.o" + "crypto/err/libcrypto-lib-err_mark.o", + "crypto/err/libcrypto-lib-err_prn.o", + "crypto/err/libcrypto-lib-err_save.o" ], "products" => { "lib" => [ @@ -9079,7 +10529,9 @@ our %unified_info = ( "crypto/evp/libcrypto-lib-pmeth_check.o", "crypto/evp/libcrypto-lib-pmeth_gn.o", "crypto/evp/libcrypto-lib-pmeth_lib.o", + "crypto/evp/libcrypto-lib-s_lib.o", "crypto/evp/libcrypto-lib-signature.o", + "crypto/evp/libcrypto-lib-skeymgmt_meth.o", "crypto/evp/libfips-lib-asymcipher.o", "crypto/evp/libfips-lib-dh_support.o", "crypto/evp/libfips-lib-digest.o", @@ -9095,14 +10547,15 @@ our %unified_info = ( "crypto/evp/libfips-lib-kem.o", "crypto/evp/libfips-lib-keymgmt_lib.o", "crypto/evp/libfips-lib-keymgmt_meth.o", - "crypto/evp/libfips-lib-m_sigver.o", "crypto/evp/libfips-lib-mac_lib.o", "crypto/evp/libfips-lib-mac_meth.o", "crypto/evp/libfips-lib-p_lib.o", "crypto/evp/libfips-lib-pmeth_check.o", "crypto/evp/libfips-lib-pmeth_gn.o", "crypto/evp/libfips-lib-pmeth_lib.o", - "crypto/evp/libfips-lib-signature.o" + "crypto/evp/libfips-lib-s_lib.o", + "crypto/evp/libfips-lib-signature.o", + "crypto/evp/libfips-lib-skeymgmt_meth.o" ], "products" => { "lib" => [ @@ -9135,6 +10588,20 @@ our %unified_info = ( ] } }, + "crypto/hashtable" => { + "deps" => [ + "crypto/hashtable/libcrypto-lib-hashfunc.o", + "crypto/hashtable/libcrypto-lib-hashtable.o", + "crypto/hashtable/libfips-lib-hashfunc.o", + "crypto/hashtable/libfips-lib-hashtable.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, "crypto/hmac" => { "deps" => [ "crypto/hmac/libcrypto-lib-hmac.o", @@ -9147,6 +10614,17 @@ our %unified_info = ( ] } }, + "crypto/hpke" => { + "deps" => [ + "crypto/hpke/libcrypto-lib-hpke.o", + "crypto/hpke/libcrypto-lib-hpke_util.o" + ], + "products" => { + "lib" => [ + "libcrypto" + ] + } + }, "crypto/http" => { "deps" => [ "crypto/http/libcrypto-lib-http_client.o", @@ -9209,6 +10687,7 @@ our %unified_info = ( }, "crypto/md5" => { "deps" => [ + "crypto/md5/libcrypto-lib-md5-aarch64.o", "crypto/md5/libcrypto-lib-md5_dgst.o", "crypto/md5/libcrypto-lib-md5_one.o", "crypto/md5/libcrypto-lib-md5_sha1.o" @@ -9230,8 +10709,47 @@ our %unified_info = ( ] } }, + "crypto/ml_dsa" => { + "deps" => [ + "crypto/ml_dsa/libcrypto-lib-ml_dsa_encoders.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key_compress.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_matrix.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_ntt.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_params.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sample.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sign.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_encoders.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_key.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_key_compress.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_matrix.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_ntt.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_params.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_sample.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_sign.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, + "crypto/ml_kem" => { + "deps" => [ + "crypto/ml_kem/libcrypto-lib-ml_kem.o", + "crypto/ml_kem/libfips-lib-ml_kem.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, "crypto/modes" => { "deps" => [ + "crypto/modes/libcrypto-lib-aes-gcm-armv8-unroll8_64.o", "crypto/modes/libcrypto-lib-aes-gcm-armv8_64.o", "crypto/modes/libcrypto-lib-cbc128.o", "crypto/modes/libcrypto-lib-ccm128.o", @@ -9245,6 +10763,8 @@ our %unified_info = ( "crypto/modes/libcrypto-lib-siv128.o", "crypto/modes/libcrypto-lib-wrap128.o", "crypto/modes/libcrypto-lib-xts128.o", + "crypto/modes/libcrypto-lib-xts128gb.o", + "crypto/modes/libfips-lib-aes-gcm-armv8-unroll8_64.o", "crypto/modes/libfips-lib-aes-gcm-armv8_64.o", "crypto/modes/libfips-lib-cbc128.o", "crypto/modes/libfips-lib-ccm128.o", @@ -9254,7 +10774,8 @@ our %unified_info = ( "crypto/modes/libfips-lib-ghashv8-armx.o", "crypto/modes/libfips-lib-ofb128.o", "crypto/modes/libfips-lib-wrap128.o", - "crypto/modes/libfips-lib-xts128.o" + "crypto/modes/libfips-lib-xts128.o", + "crypto/modes/libfips-lib-xts128gb.o" ], "products" => { "lib" => [ @@ -9398,6 +10919,7 @@ our %unified_info = ( "crypto/rand/libcrypto-lib-rand_lib.o", "crypto/rand/libcrypto-lib-rand_meth.o", "crypto/rand/libcrypto-lib-rand_pool.o", + "crypto/rand/libcrypto-lib-rand_uniform.o", "crypto/rand/libcrypto-lib-randfile.o", "crypto/rand/libfips-lib-rand_lib.o" ], @@ -9548,6 +11070,36 @@ our %unified_info = ( ] } }, + "crypto/slh_dsa" => { + "deps" => [ + "crypto/slh_dsa/libcrypto-lib-slh_adrs.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa_hash_ctx.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa_key.o", + "crypto/slh_dsa/libcrypto-lib-slh_fors.o", + "crypto/slh_dsa/libcrypto-lib-slh_hash.o", + "crypto/slh_dsa/libcrypto-lib-slh_hypertree.o", + "crypto/slh_dsa/libcrypto-lib-slh_params.o", + "crypto/slh_dsa/libcrypto-lib-slh_wots.o", + "crypto/slh_dsa/libcrypto-lib-slh_xmss.o", + "crypto/slh_dsa/libfips-lib-slh_adrs.o", + "crypto/slh_dsa/libfips-lib-slh_dsa.o", + "crypto/slh_dsa/libfips-lib-slh_dsa_hash_ctx.o", + "crypto/slh_dsa/libfips-lib-slh_dsa_key.o", + "crypto/slh_dsa/libfips-lib-slh_fors.o", + "crypto/slh_dsa/libfips-lib-slh_hash.o", + "crypto/slh_dsa/libfips-lib-slh_hypertree.o", + "crypto/slh_dsa/libfips-lib-slh_params.o", + "crypto/slh_dsa/libfips-lib-slh_wots.o", + "crypto/slh_dsa/libfips-lib-slh_xmss.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, "crypto/sm2" => { "deps" => [ "crypto/sm2/libcrypto-lib-sm2_crypt.o", @@ -9564,6 +11116,7 @@ our %unified_info = ( "crypto/sm3" => { "deps" => [ "crypto/sm3/libcrypto-lib-legacy_sm3.o", + "crypto/sm3/libcrypto-lib-sm3-armv8.o", "crypto/sm3/libcrypto-lib-sm3.o" ], "products" => { @@ -9574,7 +11127,10 @@ our %unified_info = ( }, "crypto/sm4" => { "deps" => [ - "crypto/sm4/libcrypto-lib-sm4.o" + "crypto/sm4/libcrypto-lib-sm4-armv8.o", + "crypto/sm4/libcrypto-lib-sm4.o", + "crypto/sm4/libcrypto-lib-vpsm4-armv8.o", + "crypto/sm4/libcrypto-lib-vpsm4_ex-armv8.o" ], "products" => { "lib" => [ @@ -9621,6 +11177,38 @@ our %unified_info = ( ] } }, + "crypto/thread" => { + "deps" => [ + "crypto/thread/libcrypto-lib-api.o", + "crypto/thread/libcrypto-lib-arch.o", + "crypto/thread/libcrypto-lib-internal.o", + "crypto/thread/libfips-lib-api.o", + "crypto/thread/libfips-lib-arch.o", + "crypto/thread/libfips-lib-internal.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, + "crypto/thread/arch" => { + "deps" => [ + "crypto/thread/arch/libcrypto-lib-thread_none.o", + "crypto/thread/arch/libcrypto-lib-thread_posix.o", + "crypto/thread/arch/libcrypto-lib-thread_win.o", + "crypto/thread/arch/libfips-lib-thread_none.o", + "crypto/thread/arch/libfips-lib-thread_posix.o", + "crypto/thread/arch/libfips-lib-thread_win.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, "crypto/ts" => { "deps" => [ "crypto/ts/libcrypto-lib-ts_asn1.o", @@ -9687,14 +11275,22 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-pcy_map.o", "crypto/x509/libcrypto-lib-pcy_node.o", "crypto/x509/libcrypto-lib-pcy_tree.o", + "crypto/x509/libcrypto-lib-t_acert.o", "crypto/x509/libcrypto-lib-t_crl.o", "crypto/x509/libcrypto-lib-t_req.o", "crypto/x509/libcrypto-lib-t_x509.o", + "crypto/x509/libcrypto-lib-v3_aaa.o", + "crypto/x509/libcrypto-lib-v3_ac_tgt.o", "crypto/x509/libcrypto-lib-v3_addr.o", "crypto/x509/libcrypto-lib-v3_admis.o", "crypto/x509/libcrypto-lib-v3_akeya.o", "crypto/x509/libcrypto-lib-v3_akid.o", "crypto/x509/libcrypto-lib-v3_asid.o", + "crypto/x509/libcrypto-lib-v3_attrdesc.o", + "crypto/x509/libcrypto-lib-v3_attrmap.o", + "crypto/x509/libcrypto-lib-v3_audit_id.o", + "crypto/x509/libcrypto-lib-v3_authattid.o", + "crypto/x509/libcrypto-lib-v3_battcons.o", "crypto/x509/libcrypto-lib-v3_bcons.o", "crypto/x509/libcrypto-lib-v3_bitst.o", "crypto/x509/libcrypto-lib-v3_conf.o", @@ -9703,12 +11299,17 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_enum.o", "crypto/x509/libcrypto-lib-v3_extku.o", "crypto/x509/libcrypto-lib-v3_genn.o", + "crypto/x509/libcrypto-lib-v3_group_ac.o", "crypto/x509/libcrypto-lib-v3_ia5.o", + "crypto/x509/libcrypto-lib-v3_ind_iss.o", "crypto/x509/libcrypto-lib-v3_info.o", "crypto/x509/libcrypto-lib-v3_int.o", + "crypto/x509/libcrypto-lib-v3_iobo.o", "crypto/x509/libcrypto-lib-v3_ist.o", "crypto/x509/libcrypto-lib-v3_lib.o", "crypto/x509/libcrypto-lib-v3_ncons.o", + "crypto/x509/libcrypto-lib-v3_no_ass.o", + "crypto/x509/libcrypto-lib-v3_no_rev_avail.o", "crypto/x509/libcrypto-lib-v3_pci.o", "crypto/x509/libcrypto-lib-v3_pcia.o", "crypto/x509/libcrypto-lib-v3_pcons.o", @@ -9716,13 +11317,20 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_pmaps.o", "crypto/x509/libcrypto-lib-v3_prn.o", "crypto/x509/libcrypto-lib-v3_purp.o", + "crypto/x509/libcrypto-lib-v3_rolespec.o", "crypto/x509/libcrypto-lib-v3_san.o", + "crypto/x509/libcrypto-lib-v3_sda.o", + "crypto/x509/libcrypto-lib-v3_single_use.o", "crypto/x509/libcrypto-lib-v3_skid.o", + "crypto/x509/libcrypto-lib-v3_soa_id.o", "crypto/x509/libcrypto-lib-v3_sxnet.o", + "crypto/x509/libcrypto-lib-v3_timespec.o", "crypto/x509/libcrypto-lib-v3_tlsf.o", + "crypto/x509/libcrypto-lib-v3_usernotice.o", "crypto/x509/libcrypto-lib-v3_utf8.o", "crypto/x509/libcrypto-lib-v3_utl.o", "crypto/x509/libcrypto-lib-v3err.o", + "crypto/x509/libcrypto-lib-x509_acert.o", "crypto/x509/libcrypto-lib-x509_att.o", "crypto/x509/libcrypto-lib-x509_cmp.o", "crypto/x509/libcrypto-lib-x509_d2.o", @@ -9740,6 +11348,7 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x509_v3.o", "crypto/x509/libcrypto-lib-x509_vfy.o", "crypto/x509/libcrypto-lib-x509_vpm.o", + "crypto/x509/libcrypto-lib-x509aset.o", "crypto/x509/libcrypto-lib-x509cset.o", "crypto/x509/libcrypto-lib-x509name.o", "crypto/x509/libcrypto-lib-x509rset.o", @@ -9749,6 +11358,7 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x_attrib.o", "crypto/x509/libcrypto-lib-x_crl.o", "crypto/x509/libcrypto-lib-x_exten.o", + "crypto/x509/libcrypto-lib-x_ietfatt.o", "crypto/x509/libcrypto-lib-x_name.o", "crypto/x509/libcrypto-lib-x_pubkey.o", "crypto/x509/libcrypto-lib-x_req.o", @@ -9775,6 +11385,7 @@ our %unified_info = ( "fuzz" => { "products" => { "bin" => [ + "fuzz/acert-test", "fuzz/asn1-test", "fuzz/asn1parse-test", "fuzz/bignum-test", @@ -9785,13 +11396,31 @@ our %unified_info = ( "fuzz/conf-test", "fuzz/crl-test", "fuzz/ct-test", + "fuzz/decoder-test", + "fuzz/dtlsclient-test", + "fuzz/dtlsserver-test", + "fuzz/hashtable-test", + "fuzz/ml-dsa-test", + "fuzz/ml-kem-test", + "fuzz/pem-test", + "fuzz/provider-test", + "fuzz/punycode-test", + "fuzz/quic-client-test", + "fuzz/quic-lcidm-test", + "fuzz/quic-rcidm-test", + "fuzz/quic-server-test", + "fuzz/quic-srtm-test", "fuzz/server-test", + "fuzz/slh-dsa-test", + "fuzz/smime-test", + "fuzz/v3name-test", "fuzz/x509-test" ] } }, "providers" => { "deps" => [ + "providers/endecode_test-bin-legacyprov.o", "providers/evp_extra_test-bin-legacyprov.o", "providers/libcrypto-lib-baseprov.o", "providers/libcrypto-lib-defltprov.o", @@ -9801,6 +11430,7 @@ our %unified_info = ( ], "products" => { "bin" => [ + "test/endecode_test", "test/evp_extra_test" ], "dso" => [ @@ -9851,8 +11481,12 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ec_sig.o", "providers/common/der/libcommon-lib-der_ecx_gen.o", "providers/common/der/libcommon-lib-der_ecx_key.o", + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o", + "providers/common/der/libcommon-lib-der_ml_dsa_key.o", "providers/common/der/libcommon-lib-der_rsa_gen.o", "providers/common/der/libcommon-lib-der_rsa_key.o", + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o", + "providers/common/der/libcommon-lib-der_slh_dsa_key.o", "providers/common/der/libcommon-lib-der_wrap_gen.o", "providers/common/der/libdefault-lib-der_rsa_sig.o", "providers/common/der/libdefault-lib-der_sm2_gen.o", @@ -9871,6 +11505,7 @@ our %unified_info = ( "providers/fips" => { "deps" => [ "providers/fips/fips-dso-fips_entry.o", + "providers/fips/libfips-lib-fipsindicator.o", "providers/fips/libfips-lib-fipsprov.o", "providers/fips/libfips-lib-self_test.o", "providers/fips/libfips-lib-self_test_kats.o" @@ -9914,6 +11549,9 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_aes_ccm_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_polyval.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_ocb.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_ocb_hw.o", @@ -9938,7 +11576,13 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_cts.o", "providers/implementations/ciphers/libdefault-lib-cipher_null.o", "providers/implementations/ciphers/libdefault-lib-cipher_sm4.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_sm4_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes_common.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes_default.o", @@ -10035,7 +11679,10 @@ our %unified_info = ( "providers/implementations/encode_decode/libdefault-lib-encode_key2blob.o", "providers/implementations/encode_decode/libdefault-lib-encode_key2ms.o", "providers/implementations/encode_decode/libdefault-lib-encode_key2text.o", - "providers/implementations/encode_decode/libdefault-lib-endecoder_common.o" + "providers/implementations/encode_decode/libdefault-lib-endecoder_common.o", + "providers/implementations/encode_decode/libdefault-lib-ml_common_codecs.o", + "providers/implementations/encode_decode/libdefault-lib-ml_dsa_codecs.o", + "providers/implementations/encode_decode/libdefault-lib-ml_kem_codecs.o" ], "products" => { "lib" => [ @@ -10063,7 +11710,9 @@ our %unified_info = ( }, "providers/implementations/kdfs" => { "deps" => [ + "providers/implementations/kdfs/libdefault-lib-argon2.o", "providers/implementations/kdfs/libdefault-lib-hkdf.o", + "providers/implementations/kdfs/libdefault-lib-hmacdrbg_kdf.o", "providers/implementations/kdfs/libdefault-lib-kbkdf.o", "providers/implementations/kdfs/libdefault-lib-krb5kdf.o", "providers/implementations/kdfs/libdefault-lib-pbkdf2.o", @@ -10082,7 +11731,8 @@ our %unified_info = ( "providers/implementations/kdfs/libfips-lib-sskdf.o", "providers/implementations/kdfs/libfips-lib-tls1_prf.o", "providers/implementations/kdfs/libfips-lib-x942kdf.o", - "providers/implementations/kdfs/liblegacy-lib-pbkdf1.o" + "providers/implementations/kdfs/liblegacy-lib-pbkdf1.o", + "providers/implementations/kdfs/liblegacy-lib-pvkkdf.o" ], "products" => { "lib" => [ @@ -10094,13 +11744,22 @@ our %unified_info = ( }, "providers/implementations/kem" => { "deps" => [ + "providers/implementations/kem/libdefault-lib-ec_kem.o", + "providers/implementations/kem/libdefault-lib-ecx_kem.o", + "providers/implementations/kem/libdefault-lib-kem_util.o", + "providers/implementations/kem/libdefault-lib-ml_kem_kem.o", + "providers/implementations/kem/libdefault-lib-mlx_kem.o", "providers/implementations/kem/libdefault-lib-rsa_kem.o", - "providers/implementations/kem/libfips-lib-rsa_kem.o" + "providers/implementations/kem/libfips-lib-ml_kem_kem.o", + "providers/implementations/kem/libfips-lib-mlx_kem.o", + "providers/implementations/kem/libfips-lib-rsa_kem.o", + "providers/implementations/kem/libtemplate-lib-template_kem.o" ], "products" => { "lib" => [ "providers/libdefault.a", - "providers/libfips.a" + "providers/libfips.a", + "providers/libtemplate.a" ] } }, @@ -10112,19 +11771,29 @@ our %unified_info = ( "providers/implementations/keymgmt/libdefault-lib-ecx_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-kdf_legacy_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-mac_legacy_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-ml_dsa_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-ml_kem_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-mlx_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-rsa_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-slh_dsa_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-dh_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-dsa_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-ec_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-ecx_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-kdf_legacy_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-mac_legacy_kmgmt.o", - "providers/implementations/keymgmt/libfips-lib-rsa_kmgmt.o" + "providers/implementations/keymgmt/libfips-lib-ml_dsa_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-ml_kem_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-mlx_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-rsa_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-slh_dsa_kmgmt.o", + "providers/implementations/keymgmt/libtemplate-lib-template_kmgmt.o" ], "products" => { "lib" => [ "providers/libdefault.a", - "providers/libfips.a" + "providers/libfips.a", + "providers/libtemplate.a" ] } }, @@ -10152,18 +11821,18 @@ our %unified_info = ( }, "providers/implementations/rands" => { "deps" => [ - "providers/implementations/rands/libdefault-lib-crngt.o", "providers/implementations/rands/libdefault-lib-drbg.o", "providers/implementations/rands/libdefault-lib-drbg_ctr.o", "providers/implementations/rands/libdefault-lib-drbg_hash.o", "providers/implementations/rands/libdefault-lib-drbg_hmac.o", "providers/implementations/rands/libdefault-lib-seed_src.o", + "providers/implementations/rands/libdefault-lib-seed_src_jitter.o", "providers/implementations/rands/libdefault-lib-test_rng.o", - "providers/implementations/rands/libfips-lib-crngt.o", "providers/implementations/rands/libfips-lib-drbg.o", "providers/implementations/rands/libfips-lib-drbg_ctr.o", "providers/implementations/rands/libfips-lib-drbg_hash.o", "providers/implementations/rands/libfips-lib-drbg_hmac.o", + "providers/implementations/rands/libfips-lib-fips_crng_test.o", "providers/implementations/rands/libfips-lib-test_rng.o" ], "products" => { @@ -10192,13 +11861,31 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-ecdsa_sig.o", "providers/implementations/signature/libdefault-lib-eddsa_sig.o", "providers/implementations/signature/libdefault-lib-mac_legacy_sig.o", + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o", "providers/implementations/signature/libdefault-lib-rsa_sig.o", + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o", "providers/implementations/signature/libdefault-lib-sm2_sig.o", "providers/implementations/signature/libfips-lib-dsa_sig.o", "providers/implementations/signature/libfips-lib-ecdsa_sig.o", "providers/implementations/signature/libfips-lib-eddsa_sig.o", "providers/implementations/signature/libfips-lib-mac_legacy_sig.o", - "providers/implementations/signature/libfips-lib-rsa_sig.o" + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o", + "providers/implementations/signature/libfips-lib-rsa_sig.o", + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o" + ], + "products" => { + "lib" => [ + "providers/libdefault.a", + "providers/libfips.a" + ] + } + }, + "providers/implementations/skeymgmt" => { + "deps" => [ + "providers/implementations/skeymgmt/libdefault-lib-aes_skmgmt.o", + "providers/implementations/skeymgmt/libdefault-lib-generic.o", + "providers/implementations/skeymgmt/libfips-lib-aes_skmgmt.o", + "providers/implementations/skeymgmt/libfips-lib-generic.o" ], "products" => { "lib" => [ @@ -10226,14 +11913,15 @@ our %unified_info = ( "ssl/libssl-lib-d1_srtp.o", "ssl/libssl-lib-methods.o", "ssl/libssl-lib-pqueue.o", + "ssl/libssl-lib-priority_queue.o", "ssl/libssl-lib-s3_enc.o", "ssl/libssl-lib-s3_lib.o", "ssl/libssl-lib-s3_msg.o", "ssl/libssl-lib-ssl_asn1.o", "ssl/libssl-lib-ssl_cert.o", + "ssl/libssl-lib-ssl_cert_comp.o", "ssl/libssl-lib-ssl_ciph.o", "ssl/libssl-lib-ssl_conf.o", - "ssl/libssl-lib-ssl_err.o", "ssl/libssl-lib-ssl_err_legacy.o", "ssl/libssl-lib-ssl_init.o", "ssl/libssl-lib-ssl_lib.o", @@ -10249,32 +11937,107 @@ our %unified_info = ( "ssl/libssl-lib-t1_trce.o", "ssl/libssl-lib-tls13_enc.o", "ssl/libssl-lib-tls_depr.o", - "ssl/libssl-lib-tls_srp.o", - "ssl/libdefault-lib-s3_cbc.o", - "ssl/libfips-lib-s3_cbc.o" + "ssl/libssl-lib-tls_srp.o" ], "products" => { "lib" => [ - "libssl", - "providers/libdefault.a", - "providers/libfips.a" + "libssl" + ] + } + }, + "ssl/quic" => { + "deps" => [ + "ssl/quic/libssl-lib-cc_newreno.o", + "ssl/quic/libssl-lib-json_enc.o", + "ssl/quic/libssl-lib-qlog.o", + "ssl/quic/libssl-lib-qlog_event_helpers.o", + "ssl/quic/libssl-lib-quic_ackm.o", + "ssl/quic/libssl-lib-quic_cfq.o", + "ssl/quic/libssl-lib-quic_channel.o", + "ssl/quic/libssl-lib-quic_demux.o", + "ssl/quic/libssl-lib-quic_engine.o", + "ssl/quic/libssl-lib-quic_fc.o", + "ssl/quic/libssl-lib-quic_fifd.o", + "ssl/quic/libssl-lib-quic_impl.o", + "ssl/quic/libssl-lib-quic_lcidm.o", + "ssl/quic/libssl-lib-quic_method.o", + "ssl/quic/libssl-lib-quic_obj.o", + "ssl/quic/libssl-lib-quic_port.o", + "ssl/quic/libssl-lib-quic_rcidm.o", + "ssl/quic/libssl-lib-quic_reactor.o", + "ssl/quic/libssl-lib-quic_reactor_wait_ctx.o", + "ssl/quic/libssl-lib-quic_record_rx.o", + "ssl/quic/libssl-lib-quic_record_shared.o", + "ssl/quic/libssl-lib-quic_record_tx.o", + "ssl/quic/libssl-lib-quic_record_util.o", + "ssl/quic/libssl-lib-quic_rstream.o", + "ssl/quic/libssl-lib-quic_rx_depack.o", + "ssl/quic/libssl-lib-quic_sf_list.o", + "ssl/quic/libssl-lib-quic_srt_gen.o", + "ssl/quic/libssl-lib-quic_srtm.o", + "ssl/quic/libssl-lib-quic_sstream.o", + "ssl/quic/libssl-lib-quic_statm.o", + "ssl/quic/libssl-lib-quic_stream_map.o", + "ssl/quic/libssl-lib-quic_thread_assist.o", + "ssl/quic/libssl-lib-quic_tls.o", + "ssl/quic/libssl-lib-quic_tls_api.o", + "ssl/quic/libssl-lib-quic_trace.o", + "ssl/quic/libssl-lib-quic_tserver.o", + "ssl/quic/libssl-lib-quic_txp.o", + "ssl/quic/libssl-lib-quic_txpim.o", + "ssl/quic/libssl-lib-quic_types.o", + "ssl/quic/libssl-lib-quic_wire.o", + "ssl/quic/libssl-lib-quic_wire_pkt.o", + "ssl/quic/libssl-lib-uint_set.o" + ], + "products" => { + "lib" => [ + "libssl" ] } }, "ssl/record" => { "deps" => [ - "ssl/record/libssl-lib-dtls1_bitmap.o", "ssl/record/libssl-lib-rec_layer_d1.o", - "ssl/record/libssl-lib-rec_layer_s3.o", - "ssl/record/libssl-lib-ssl3_buffer.o", - "ssl/record/libssl-lib-ssl3_record.o", - "ssl/record/libssl-lib-ssl3_record_tls13.o", - "ssl/record/libcommon-lib-tls_pad.o" + "ssl/record/libssl-lib-rec_layer_s3.o" + ], + "products" => { + "lib" => [ + "libssl" + ] + } + }, + "ssl/record/methods" => { + "deps" => [ + "ssl/record/methods/libssl-lib-dtls_meth.o", + "ssl/record/methods/libssl-lib-ssl3_meth.o", + "ssl/record/methods/libssl-lib-tls13_meth.o", + "ssl/record/methods/libssl-lib-tls1_meth.o", + "ssl/record/methods/libssl-lib-tls_common.o", + "ssl/record/methods/libssl-lib-tls_multib.o", + "ssl/record/methods/libssl-lib-tlsany_meth.o", + "ssl/record/methods/libcommon-lib-tls_pad.o", + "ssl/record/methods/libdefault-lib-ssl3_cbc.o", + "ssl/record/methods/libfips-lib-ssl3_cbc.o" ], "products" => { "lib" => [ "libssl", - "providers/libcommon.a" + "providers/libcommon.a", + "providers/libdefault.a", + "providers/libfips.a" + ] + } + }, + "ssl/rio" => { + "deps" => [ + "ssl/rio/libssl-lib-poll_builder.o", + "ssl/rio/libssl-lib-poll_immediate.o", + "ssl/rio/libssl-lib-rio_notifier.o" + ], + "products" => { + "lib" => [ + "libssl" ] } }, @@ -10312,9 +12075,40 @@ our %unified_info = ( "test/helpers/dtlstest-bin-ssltestlib.o", "test/helpers/endecode_test-bin-predefined_dhparams.o", "test/helpers/fatalerrtest-bin-ssltestlib.o", + "test/helpers/json_test-bin-noisydgrambio.o", + "test/helpers/json_test-bin-pktsplitbio.o", + "test/helpers/json_test-bin-quictestlib.o", + "test/helpers/json_test-bin-ssltestlib.o", + "test/helpers/pkcs12_api_test-bin-pkcs12.o", "test/helpers/pkcs12_format_test-bin-pkcs12.o", + "test/helpers/quic_multistream_test-bin-noisydgrambio.o", + "test/helpers/quic_multistream_test-bin-pktsplitbio.o", + "test/helpers/quic_multistream_test-bin-quictestlib.o", + "test/helpers/quic_multistream_test-bin-ssltestlib.o", + "test/helpers/quic_newcid_test-bin-noisydgrambio.o", + "test/helpers/quic_newcid_test-bin-pktsplitbio.o", + "test/helpers/quic_newcid_test-bin-quictestlib.o", + "test/helpers/quic_newcid_test-bin-ssltestlib.o", + "test/helpers/quic_radix_test-bin-noisydgrambio.o", + "test/helpers/quic_radix_test-bin-pktsplitbio.o", + "test/helpers/quic_radix_test-bin-quictestlib.o", + "test/helpers/quic_radix_test-bin-ssltestlib.o", + "test/helpers/quic_srt_gen_test-bin-noisydgrambio.o", + "test/helpers/quic_srt_gen_test-bin-pktsplitbio.o", + "test/helpers/quic_srt_gen_test-bin-quictestlib.o", + "test/helpers/quic_srt_gen_test-bin-ssltestlib.o", + "test/helpers/quicapitest-bin-noisydgrambio.o", + "test/helpers/quicapitest-bin-pktsplitbio.o", + "test/helpers/quicapitest-bin-quictestlib.o", + "test/helpers/quicapitest-bin-ssltestlib.o", + "test/helpers/quicfaultstest-bin-noisydgrambio.o", + "test/helpers/quicfaultstest-bin-pktsplitbio.o", + "test/helpers/quicfaultstest-bin-quictestlib.o", + "test/helpers/quicfaultstest-bin-ssltestlib.o", "test/helpers/recordlentest-bin-ssltestlib.o", + "test/helpers/rpktest-bin-ssltestlib.o", "test/helpers/servername_test-bin-ssltestlib.o", + "test/helpers/ssl_handshake_rtt_test-bin-ssltestlib.o", "test/helpers/ssl_old_test-bin-predefined_dhparams.o", "test/helpers/ssl_test-bin-handshake.o", "test/helpers/ssl_test-bin-handshake_srp.o", @@ -10323,7 +12117,8 @@ our %unified_info = ( "test/helpers/sslapitest-bin-ssltestlib.o", "test/helpers/sslbuffertest-bin-ssltestlib.o", "test/helpers/sslcorrupttest-bin-ssltestlib.o", - "test/helpers/tls13ccstest-bin-ssltestlib.o" + "test/helpers/tls13ccstest-bin-ssltestlib.o", + "test/helpers/tls13groupselection_test-bin-ssltestlib.o" ], "products" => { "bin" => [ @@ -10341,16 +12136,37 @@ our %unified_info = ( "test/dtlstest", "test/endecode_test", "test/fatalerrtest", + "test/json_test", + "test/pkcs12_api_test", "test/pkcs12_format_test", + "test/quic_multistream_test", + "test/quic_newcid_test", + "test/quic_radix_test", + "test/quic_srt_gen_test", + "test/quicapitest", + "test/quicfaultstest", "test/recordlentest", + "test/rpktest", "test/servername_test", + "test/ssl_handshake_rtt_test", "test/ssl_old_test", "test/ssl_test", "test/ssl_test_ctx_test", "test/sslapitest", "test/sslbuffertest", "test/sslcorrupttest", - "test/tls13ccstest" + "test/tls13ccstest", + "test/tls13groupselection_test" + ] + } + }, + "test/radix" => { + "deps" => [ + "test/radix/quic_radix_test-bin-quic_radix.o" + ], + "products" => { + "bin" => [ + "test/quic_radix_test" ] } }, @@ -10362,6 +12178,7 @@ our %unified_info = ( "test/testutil/libtestutil-lib-driver.o", "test/testutil/libtestutil-lib-fake_random.o", "test/testutil/libtestutil-lib-format_output.o", + "test/testutil/libtestutil-lib-helper.o", "test/testutil/libtestutil-lib-load.o", "test/testutil/libtestutil-lib-main.o", "test/testutil/libtestutil-lib-options.o", @@ -10397,6 +12214,12 @@ our %unified_info = ( } }, "generate" => { + "OpenSSLConfig.cmake" => [ + "exporters/cmake/OpenSSLConfig.cmake.in" + ], + "OpenSSLConfigVersion.cmake" => [ + "exporters/cmake/OpenSSLConfigVersion.cmake.in" + ], "apps/progs.c" => [ "apps/progs.pl", "\"-C\"", @@ -10407,6 +12230,19 @@ our %unified_info = ( "\"-H\"", "\$(APPS_OPENSSL)" ], + "builddata.pm" => [ + "util/mkinstallvars.pl", + "PREFIX=.", + "BINDIR=apps", + "APPLINKDIR=ms", + "LIBDIR=", + "INCLUDEDIR=include", + "\"INCLUDEDIR=\$(SRCDIR)/include\"", + "ENGINESDIR=engines", + "MODULESDIR=providers", + "\"VERSION=\$(VERSION)\"", + "\"LDLIBS=\$(LIB_EX_LIBS)\"" + ], "crypto/aes/aes-586.S" => [ "crypto/aes/asm/aes-586.pl" ], @@ -10425,8 +12261,26 @@ our %unified_info = ( "crypto/aes/aes-parisc.s" => [ "crypto/aes/asm/aes-parisc.pl" ], - "crypto/aes/aes-ppc.s" => [ - "crypto/aes/asm/aes-ppc.pl" + "crypto/aes/aes-ppc.s" => [ + "crypto/aes/asm/aes-ppc.pl" + ], + "crypto/aes/aes-riscv32-zkn.s" => [ + "crypto/aes/asm/aes-riscv32-zkn.pl" + ], + "crypto/aes/aes-riscv64-zkn.s" => [ + "crypto/aes/asm/aes-riscv64-zkn.pl" + ], + "crypto/aes/aes-riscv64-zvbb-zvkg-zvkned.s" => [ + "crypto/aes/asm/aes-riscv64-zvbb-zvkg-zvkned.pl" + ], + "crypto/aes/aes-riscv64-zvkb-zvkned.s" => [ + "crypto/aes/asm/aes-riscv64-zvkb-zvkned.pl" + ], + "crypto/aes/aes-riscv64-zvkned.s" => [ + "crypto/aes/asm/aes-riscv64-zvkned.pl" + ], + "crypto/aes/aes-riscv64.s" => [ + "crypto/aes/asm/aes-riscv64.pl" ], "crypto/aes/aes-s390x.S" => [ "crypto/aes/asm/aes-s390x.pl" @@ -10455,6 +12309,9 @@ our %unified_info = ( "crypto/aes/aesni-x86_64.s" => [ "crypto/aes/asm/aesni-x86_64.pl" ], + "crypto/aes/aesni-xts-avx512.s" => [ + "crypto/aes/asm/aesni-xts-avx512.pl" + ], "crypto/aes/aesp8-ppc.s" => [ "crypto/aes/asm/aesp8-ppc.pl" ], @@ -10467,12 +12324,18 @@ our %unified_info = ( "crypto/aes/bsaes-armv7.S" => [ "crypto/aes/asm/bsaes-armv7.pl" ], + "crypto/aes/bsaes-armv8.S" => [ + "crypto/aes/asm/bsaes-armv8.pl" + ], "crypto/aes/bsaes-x86_64.s" => [ "crypto/aes/asm/bsaes-x86_64.pl" ], "crypto/aes/vpaes-armv8.S" => [ "crypto/aes/asm/vpaes-armv8.pl" ], + "crypto/aes/vpaes-loongarch64.S" => [ + "crypto/aes/asm/vpaes-loongarch64.pl" + ], "crypto/aes/vpaes-ppc.s" => [ "crypto/aes/asm/vpaes-ppc.pl" ], @@ -10533,15 +12396,33 @@ our %unified_info = ( "crypto/bn/ppc-mont.s" => [ "crypto/bn/asm/ppc-mont.pl" ], + "crypto/bn/ppc64-mont-fixed.s" => [ + "crypto/bn/asm/ppc64-mont-fixed.pl" + ], "crypto/bn/ppc64-mont.s" => [ "crypto/bn/asm/ppc64-mont.pl" ], + "crypto/bn/rsaz-2k-avx512.s" => [ + "crypto/bn/asm/rsaz-2k-avx512.pl" + ], + "crypto/bn/rsaz-2k-avxifma.s" => [ + "crypto/bn/asm/rsaz-2k-avxifma.pl" + ], + "crypto/bn/rsaz-3k-avx512.s" => [ + "crypto/bn/asm/rsaz-3k-avx512.pl" + ], + "crypto/bn/rsaz-3k-avxifma.s" => [ + "crypto/bn/asm/rsaz-3k-avxifma.pl" + ], + "crypto/bn/rsaz-4k-avx512.s" => [ + "crypto/bn/asm/rsaz-4k-avx512.pl" + ], + "crypto/bn/rsaz-4k-avxifma.s" => [ + "crypto/bn/asm/rsaz-4k-avxifma.pl" + ], "crypto/bn/rsaz-avx2.s" => [ "crypto/bn/asm/rsaz-avx2.pl" ], - "crypto/bn/rsaz-avx512.s" => [ - "crypto/bn/asm/rsaz-avx512.pl" - ], "crypto/bn/rsaz-x86_64.s" => [ "crypto/bn/asm/rsaz-x86_64.pl" ], @@ -10603,6 +12484,9 @@ our %unified_info = ( "crypto/chacha/chacha-armv4.S" => [ "crypto/chacha/asm/chacha-armv4.pl" ], + "crypto/chacha/chacha-armv8-sve.S" => [ + "crypto/chacha/asm/chacha-armv8-sve.pl" + ], "crypto/chacha/chacha-armv8.S" => [ "crypto/chacha/asm/chacha-armv8.pl" ], @@ -10615,9 +12499,19 @@ our %unified_info = ( "crypto/chacha/chacha-ia64.s" => [ "crypto/chacha/chacha-ia64.S" ], + "crypto/chacha/chacha-loongarch64.S" => [ + "crypto/chacha/asm/chacha-loongarch64.pl" + ], "crypto/chacha/chacha-ppc.s" => [ "crypto/chacha/asm/chacha-ppc.pl" ], + "crypto/chacha/chacha-riscv64-v-zbb-zvkb.s" => [ + "crypto/chacha/asm/chacha-riscv64-v-zbb.pl", + "zvkb" + ], + "crypto/chacha/chacha-riscv64-v-zbb.s" => [ + "crypto/chacha/asm/chacha-riscv64-v-zbb.pl" + ], "crypto/chacha/chacha-s390x.S" => [ "crypto/chacha/asm/chacha-s390x.pl" ], @@ -10627,6 +12521,9 @@ our %unified_info = ( "crypto/chacha/chacha-x86_64.s" => [ "crypto/chacha/asm/chacha-x86_64.pl" ], + "crypto/chacha/chachap10-ppc.s" => [ + "crypto/chacha/asm/chachap10-ppc.pl" + ], "crypto/des/crypt586.S" => [ "crypto/des/asm/crypt586.pl" ], @@ -10639,6 +12536,9 @@ our %unified_info = ( "crypto/des/dest4-sparcv9.S" => [ "crypto/des/asm/dest4-sparcv9.pl" ], + "crypto/ec/ecp_nistp384-ppc64.s" => [ + "crypto/ec/asm/ecp_nistp384-ppc64.pl" + ], "crypto/ec/ecp_nistp521-ppc64.s" => [ "crypto/ec/asm/ecp_nistp521-ppc64.pl" ], @@ -10663,6 +12563,9 @@ our %unified_info = ( "crypto/ec/ecp_nistz256-x86_64.s" => [ "crypto/ec/asm/ecp_nistz256-x86_64.pl" ], + "crypto/ec/ecp_sm2p256-armv8.S" => [ + "crypto/ec/asm/ecp_sm2p256-armv8.pl" + ], "crypto/ec/x25519-ppc64.s" => [ "crypto/ec/asm/x25519-ppc64.pl" ], @@ -10672,18 +12575,39 @@ our %unified_info = ( "crypto/ia64cpuid.s" => [ "crypto/ia64cpuid.S" ], + "crypto/loongarch64cpuid.s" => [ + "crypto/loongarch64cpuid.pl" + ], "crypto/md5/md5-586.S" => [ "crypto/md5/asm/md5-586.pl" ], + "crypto/md5/md5-aarch64.S" => [ + "crypto/md5/asm/md5-aarch64.pl" + ], + "crypto/md5/md5-loongarch64.S" => [ + "crypto/md5/asm/md5-loongarch64.pl" + ], "crypto/md5/md5-sparcv9.S" => [ "crypto/md5/asm/md5-sparcv9.pl" ], "crypto/md5/md5-x86_64.s" => [ "crypto/md5/asm/md5-x86_64.pl" ], + "crypto/modes/aes-gcm-armv8-unroll8_64.S" => [ + "crypto/modes/asm/aes-gcm-armv8-unroll8_64.pl" + ], "crypto/modes/aes-gcm-armv8_64.S" => [ "crypto/modes/asm/aes-gcm-armv8_64.pl" ], + "crypto/modes/aes-gcm-avx512.s" => [ + "crypto/modes/asm/aes-gcm-avx512.pl" + ], + "crypto/modes/aes-gcm-ppc.s" => [ + "crypto/modes/asm/aes-gcm-ppc.pl" + ], + "crypto/modes/aes-gcm-riscv64-zvkb-zvkg-zvkned.s" => [ + "crypto/modes/asm/aes-gcm-riscv64-zvkb-zvkg-zvkned.pl" + ], "crypto/modes/aesni-gcm-x86_64.s" => [ "crypto/modes/asm/aesni-gcm-x86_64.pl" ], @@ -10702,6 +12626,15 @@ our %unified_info = ( "crypto/modes/ghash-parisc.s" => [ "crypto/modes/asm/ghash-parisc.pl" ], + "crypto/modes/ghash-riscv64-zvkb-zvbc.s" => [ + "crypto/modes/asm/ghash-riscv64-zvkb-zvbc.pl" + ], + "crypto/modes/ghash-riscv64-zvkg.s" => [ + "crypto/modes/asm/ghash-riscv64-zvkg.pl" + ], + "crypto/modes/ghash-riscv64.s" => [ + "crypto/modes/asm/ghash-riscv64.pl" + ], "crypto/modes/ghash-s390x.S" => [ "crypto/modes/asm/ghash-s390x.pl" ], @@ -10720,6 +12653,9 @@ our %unified_info = ( "crypto/modes/ghashv8-armx.S" => [ "crypto/modes/asm/ghashv8-armx.pl" ], + "crypto/params_idx.c" => [ + "crypto/params_idx.c.in" + ], "crypto/pariscid.s" => [ "crypto/pariscid.pl" ], @@ -10780,6 +12716,12 @@ our %unified_info = ( "crypto/ripemd/rmd-586.S" => [ "crypto/ripemd/asm/rmd-586.pl" ], + "crypto/riscv32cpuid.s" => [ + "crypto/riscv32cpuid.pl" + ], + "crypto/riscv64cpuid.s" => [ + "crypto/riscv64cpuid.pl" + ], "crypto/s390xcpuid.S" => [ "crypto/s390xcpuid.pl" ], @@ -10888,6 +12830,9 @@ our %unified_info = ( "crypto/sha/sha256-ppc.s" => [ "crypto/sha/asm/sha512-ppc.pl" ], + "crypto/sha/sha256-riscv64-zvkb-zvknha_or_zvknhb.S" => [ + "crypto/sha/asm/sha256-riscv64-zvkb-zvknha_or_zvknhb.pl" + ], "crypto/sha/sha256-s390x.S" => [ "crypto/sha/asm/sha512-s390x.pl" ], @@ -10924,6 +12869,9 @@ our %unified_info = ( "crypto/sha/sha512-ppc.s" => [ "crypto/sha/asm/sha512-ppc.pl" ], + "crypto/sha/sha512-riscv64-zvkb-zvknhb.S" => [ + "crypto/sha/asm/sha512-riscv64-zvkb-zvknhb.pl" + ], "crypto/sha/sha512-s390x.S" => [ "crypto/sha/asm/sha512-s390x.pl" ], @@ -10936,6 +12884,24 @@ our %unified_info = ( "crypto/sha/sha512p8-ppc.s" => [ "crypto/sha/asm/sha512p8-ppc.pl" ], + "crypto/sm3/sm3-armv8.S" => [ + "crypto/sm3/asm/sm3-armv8.pl" + ], + "crypto/sm3/sm3-riscv64-zvksh.S" => [ + "crypto/sm3/asm/sm3-riscv64-zvksh.pl" + ], + "crypto/sm4/sm4-armv8.S" => [ + "crypto/sm4/asm/sm4-armv8.pl" + ], + "crypto/sm4/sm4-riscv64-zvksed.s" => [ + "crypto/sm4/asm/sm4-riscv64-zvksed.pl" + ], + "crypto/sm4/vpsm4-armv8.S" => [ + "crypto/sm4/asm/vpsm4-armv8.pl" + ], + "crypto/sm4/vpsm4_ex-armv8.S" => [ + "crypto/sm4/asm/vpsm4_ex-armv8.pl" + ], "crypto/uplink-ia64.s" => [ "ms/uplink-ia64.pl" ], @@ -11101,6 +13067,9 @@ our %unified_info = ( "doc/html/man1/openssl-sess_id.html" => [ "doc/man1/openssl-sess_id.pod" ], + "doc/html/man1/openssl-skeyutl.html" => [ + "doc/man1/openssl-skeyutl.pod" + ], "doc/html/man1/openssl-smime.html" => [ "doc/man1/openssl-smime.pod" ], @@ -11242,6 +13211,9 @@ our %unified_info = ( "doc/html/man3/BIO_get_ex_new_index.html" => [ "doc/man3/BIO_get_ex_new_index.pod" ], + "doc/html/man3/BIO_get_rpoll_descriptor.html" => [ + "doc/man3/BIO_get_rpoll_descriptor.pod" + ], "doc/html/man3/BIO_meth_new.html" => [ "doc/man3/BIO_meth_new.pod" ], @@ -11278,6 +13250,9 @@ our %unified_info = ( "doc/html/man3/BIO_s_datagram.html" => [ "doc/man3/BIO_s_datagram.pod" ], + "doc/html/man3/BIO_s_dgram_pair.html" => [ + "doc/man3/BIO_s_dgram_pair.pod" + ], "doc/html/man3/BIO_s_fd.html" => [ "doc/man3/BIO_s_fd.pod" ], @@ -11293,6 +13268,9 @@ our %unified_info = ( "doc/html/man3/BIO_s_socket.html" => [ "doc/man3/BIO_s_socket.pod" ], + "doc/html/man3/BIO_sendmmsg.html" => [ + "doc/man3/BIO_sendmmsg.pod" + ], "doc/html/man3/BIO_set_callback.html" => [ "doc/man3/BIO_set_callback.pod" ], @@ -11365,6 +13343,9 @@ our %unified_info = ( "doc/html/man3/BUF_MEM_new.html" => [ "doc/man3/BUF_MEM_new.pod" ], + "doc/html/man3/CMAC_CTX.html" => [ + "doc/man3/CMAC_CTX.pod" + ], "doc/html/man3/CMS_EncryptedData_decrypt.html" => [ "doc/man3/CMS_EncryptedData_decrypt.pod" ], @@ -11431,6 +13412,9 @@ our %unified_info = ( "doc/html/man3/CMS_verify_receipt.html" => [ "doc/man3/CMS_verify_receipt.pod" ], + "doc/html/man3/COMP_CTX_new.html" => [ + "doc/man3/COMP_CTX_new.pod" + ], "doc/html/man3/CONF_modules_free.html" => [ "doc/man3/CONF_modules_free.pod" ], @@ -11530,6 +13514,12 @@ our %unified_info = ( "doc/html/man3/DTLS_set_timer_cb.html" => [ "doc/man3/DTLS_set_timer_cb.pod" ], + "doc/html/man3/DTLSv1_get_timeout.html" => [ + "doc/man3/DTLSv1_get_timeout.pod" + ], + "doc/html/man3/DTLSv1_handle_timeout.html" => [ + "doc/man3/DTLSv1_handle_timeout.pod" + ], "doc/html/man3/DTLSv1_listen.html" => [ "doc/man3/DTLSv1_listen.pod" ], @@ -11668,6 +13658,9 @@ our %unified_info = ( "doc/html/man3/EVP_PKEY_CTX_get0_pkey.html" => [ "doc/man3/EVP_PKEY_CTX_get0_pkey.pod" ], + "doc/html/man3/EVP_PKEY_CTX_get_algor.html" => [ + "doc/man3/EVP_PKEY_CTX_get_algor.pod" + ], "doc/html/man3/EVP_PKEY_CTX_new.html" => [ "doc/man3/EVP_PKEY_CTX_new.pod" ], @@ -11785,6 +13778,12 @@ our %unified_info = ( "doc/html/man3/EVP_SIGNATURE.html" => [ "doc/man3/EVP_SIGNATURE.pod" ], + "doc/html/man3/EVP_SKEY.html" => [ + "doc/man3/EVP_SKEY.pod" + ], + "doc/html/man3/EVP_SKEYMGMT.html" => [ + "doc/man3/EVP_SKEYMGMT.pod" + ], "doc/html/man3/EVP_SealInit.html" => [ "doc/man3/EVP_SealInit.pod" ], @@ -11872,6 +13871,9 @@ our %unified_info = ( "doc/html/man3/EVP_whirlpool.html" => [ "doc/man3/EVP_whirlpool.pod" ], + "doc/html/man3/GENERAL_NAME.html" => [ + "doc/man3/GENERAL_NAME.pod" + ], "doc/html/man3/HMAC.html" => [ "doc/man3/HMAC.pod" ], @@ -11944,9 +13946,15 @@ our %unified_info = ( "doc/html/man3/OPENSSL_load_builtin_modules.html" => [ "doc/man3/OPENSSL_load_builtin_modules.pod" ], + "doc/html/man3/OPENSSL_load_u16_le.html" => [ + "doc/man3/OPENSSL_load_u16_le.pod" + ], "doc/html/man3/OPENSSL_malloc.html" => [ "doc/man3/OPENSSL_malloc.pod" ], + "doc/html/man3/OPENSSL_riscvcap.html" => [ + "doc/man3/OPENSSL_riscvcap.pod" + ], "doc/html/man3/OPENSSL_s390xcap.html" => [ "doc/man3/OPENSSL_s390xcap.pod" ], @@ -11962,12 +13970,18 @@ our %unified_info = ( "doc/html/man3/OSSL_CALLBACK.html" => [ "doc/man3/OSSL_CALLBACK.pod" ], + "doc/html/man3/OSSL_CMP_ATAV_set0.html" => [ + "doc/man3/OSSL_CMP_ATAV_set0.pod" + ], "doc/html/man3/OSSL_CMP_CTX_new.html" => [ "doc/man3/OSSL_CMP_CTX_new.pod" ], "doc/html/man3/OSSL_CMP_HDR_get0_transactionID.html" => [ "doc/man3/OSSL_CMP_HDR_get0_transactionID.pod" ], + "doc/html/man3/OSSL_CMP_ITAV_new_caCerts.html" => [ + "doc/man3/OSSL_CMP_ITAV_new_caCerts.pod" + ], "doc/html/man3/OSSL_CMP_ITAV_set0.html" => [ "doc/man3/OSSL_CMP_ITAV_set0.pod" ], @@ -12037,9 +14051,18 @@ our %unified_info = ( "doc/html/man3/OSSL_ENCODER_to_bio.html" => [ "doc/man3/OSSL_ENCODER_to_bio.pod" ], + "doc/html/man3/OSSL_ERR_STATE_save.html" => [ + "doc/man3/OSSL_ERR_STATE_save.pod" + ], "doc/html/man3/OSSL_ESS_check_signing_certs.html" => [ "doc/man3/OSSL_ESS_check_signing_certs.pod" ], + "doc/html/man3/OSSL_GENERAL_NAMES_print.html" => [ + "doc/man3/OSSL_GENERAL_NAMES_print.pod" + ], + "doc/html/man3/OSSL_HPKE_CTX_new.html" => [ + "doc/man3/OSSL_HPKE_CTX_new.pod" + ], "doc/html/man3/OSSL_HTTP_REQ_CTX.html" => [ "doc/man3/OSSL_HTTP_REQ_CTX.pod" ], @@ -12049,12 +14072,24 @@ our %unified_info = ( "doc/html/man3/OSSL_HTTP_transfer.html" => [ "doc/man3/OSSL_HTTP_transfer.pod" ], + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX.html" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX.pod" + ], + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX_print.html" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX_print.pod" + ], + "doc/html/man3/OSSL_INDICATOR_set_callback.html" => [ + "doc/man3/OSSL_INDICATOR_set_callback.pod" + ], "doc/html/man3/OSSL_ITEM.html" => [ "doc/man3/OSSL_ITEM.pod" ], "doc/html/man3/OSSL_LIB_CTX.html" => [ "doc/man3/OSSL_LIB_CTX.pod" ], + "doc/html/man3/OSSL_LIB_CTX_set_conf_diagnostics.html" => [ + "doc/man3/OSSL_LIB_CTX_set_conf_diagnostics.pod" + ], "doc/html/man3/OSSL_PARAM.html" => [ "doc/man3/OSSL_PARAM.pod" ], @@ -12070,9 +14105,15 @@ our %unified_info = ( "doc/html/man3/OSSL_PARAM_int.html" => [ "doc/man3/OSSL_PARAM_int.pod" ], + "doc/html/man3/OSSL_PARAM_print_to_bio.html" => [ + "doc/man3/OSSL_PARAM_print_to_bio.pod" + ], "doc/html/man3/OSSL_PROVIDER.html" => [ "doc/man3/OSSL_PROVIDER.pod" ], + "doc/html/man3/OSSL_QUIC_client_method.html" => [ + "doc/man3/OSSL_QUIC_client_method.pod" + ], "doc/html/man3/OSSL_SELF_TEST_new.html" => [ "doc/man3/OSSL_SELF_TEST_new.pod" ], @@ -12097,6 +14138,9 @@ our %unified_info = ( "doc/html/man3/OSSL_STORE_open.html" => [ "doc/man3/OSSL_STORE_open.pod" ], + "doc/html/man3/OSSL_sleep.html" => [ + "doc/man3/OSSL_sleep.pod" + ], "doc/html/man3/OSSL_trace_enabled.html" => [ "doc/man3/OSSL_trace_enabled.pod" ], @@ -12112,6 +14156,9 @@ our %unified_info = ( "doc/html/man3/OpenSSL_version.html" => [ "doc/man3/OpenSSL_version.pod" ], + "doc/html/man3/PBMAC1_get1_pbkdf2_param.html" => [ + "doc/man3/PBMAC1_get1_pbkdf2_param.pod" + ], "doc/html/man3/PEM_X509_INFO_read_bio_ex.html" => [ "doc/man3/PEM_X509_INFO_read_bio_ex.pod" ], @@ -12148,6 +14195,9 @@ our %unified_info = ( "doc/html/man3/PKCS12_SAFEBAG_get1_cert.html" => [ "doc/man3/PKCS12_SAFEBAG_get1_cert.pod" ], + "doc/html/man3/PKCS12_SAFEBAG_set0_attrs.html" => [ + "doc/man3/PKCS12_SAFEBAG_set0_attrs.pod" + ], "doc/html/man3/PKCS12_add1_attr_by_NID.html" => [ "doc/man3/PKCS12_add1_attr_by_NID.pod" ], @@ -12421,6 +14471,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set0_CA_list.html" => [ "doc/man3/SSL_CTX_set0_CA_list.pod" ], + "doc/html/man3/SSL_CTX_set1_cert_comp_preference.html" => [ + "doc/man3/SSL_CTX_set1_cert_comp_preference.pod" + ], "doc/html/man3/SSL_CTX_set1_curves.html" => [ "doc/man3/SSL_CTX_set1_curves.pod" ], @@ -12460,6 +14513,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_default_passwd_cb.html" => [ "doc/man3/SSL_CTX_set_default_passwd_cb.pod" ], + "doc/html/man3/SSL_CTX_set_domain_flags.html" => [ + "doc/man3/SSL_CTX_set_domain_flags.pod" + ], "doc/html/man3/SSL_CTX_set_generate_session_id.html" => [ "doc/man3/SSL_CTX_set_generate_session_id.pod" ], @@ -12481,6 +14537,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_msg_callback.html" => [ "doc/man3/SSL_CTX_set_msg_callback.pod" ], + "doc/html/man3/SSL_CTX_set_new_pending_conn_cb.html" => [ + "doc/man3/SSL_CTX_set_new_pending_conn_cb.pod" + ], "doc/html/man3/SSL_CTX_set_num_tickets.html" => [ "doc/man3/SSL_CTX_set_num_tickets.pod" ], @@ -12595,6 +14654,9 @@ our %unified_info = ( "doc/html/man3/SSL_accept.html" => [ "doc/man3/SSL_accept.pod" ], + "doc/html/man3/SSL_accept_stream.html" => [ + "doc/man3/SSL_accept_stream.pod" + ], "doc/html/man3/SSL_alert_type_string.html" => [ "doc/man3/SSL_alert_type_string.pod" ], @@ -12622,9 +14684,21 @@ our %unified_info = ( "doc/html/man3/SSL_free.html" => [ "doc/man3/SSL_free.pod" ], + "doc/html/man3/SSL_get0_connection.html" => [ + "doc/man3/SSL_get0_connection.pod" + ], + "doc/html/man3/SSL_get0_group_name.html" => [ + "doc/man3/SSL_get0_group_name.pod" + ], + "doc/html/man3/SSL_get0_peer_rpk.html" => [ + "doc/man3/SSL_get0_peer_rpk.pod" + ], "doc/html/man3/SSL_get0_peer_scts.html" => [ "doc/man3/SSL_get0_peer_scts.pod" ], + "doc/html/man3/SSL_get1_builtin_sigalgs.html" => [ + "doc/man3/SSL_get1_builtin_sigalgs.pod" + ], "doc/html/man3/SSL_get_SSL_CTX.html" => [ "doc/man3/SSL_get_SSL_CTX.pod" ], @@ -12640,6 +14714,9 @@ our %unified_info = ( "doc/html/man3/SSL_get_client_random.html" => [ "doc/man3/SSL_get_client_random.pod" ], + "doc/html/man3/SSL_get_conn_close_info.html" => [ + "doc/man3/SSL_get_conn_close_info.pod" + ], "doc/html/man3/SSL_get_current_cipher.html" => [ "doc/man3/SSL_get_current_cipher.pod" ], @@ -12649,12 +14726,18 @@ our %unified_info = ( "doc/html/man3/SSL_get_error.html" => [ "doc/man3/SSL_get_error.pod" ], + "doc/html/man3/SSL_get_event_timeout.html" => [ + "doc/man3/SSL_get_event_timeout.pod" + ], "doc/html/man3/SSL_get_extms_support.html" => [ "doc/man3/SSL_get_extms_support.pod" ], "doc/html/man3/SSL_get_fd.html" => [ "doc/man3/SSL_get_fd.pod" ], + "doc/html/man3/SSL_get_handshake_rtt.html" => [ + "doc/man3/SSL_get_handshake_rtt.pod" + ], "doc/html/man3/SSL_get_peer_cert_chain.html" => [ "doc/man3/SSL_get_peer_cert_chain.pod" ], @@ -12673,12 +14756,24 @@ our %unified_info = ( "doc/html/man3/SSL_get_rbio.html" => [ "doc/man3/SSL_get_rbio.pod" ], + "doc/html/man3/SSL_get_rpoll_descriptor.html" => [ + "doc/man3/SSL_get_rpoll_descriptor.pod" + ], "doc/html/man3/SSL_get_session.html" => [ "doc/man3/SSL_get_session.pod" ], "doc/html/man3/SSL_get_shared_sigalgs.html" => [ "doc/man3/SSL_get_shared_sigalgs.pod" ], + "doc/html/man3/SSL_get_stream_id.html" => [ + "doc/man3/SSL_get_stream_id.pod" + ], + "doc/html/man3/SSL_get_stream_read_state.html" => [ + "doc/man3/SSL_get_stream_read_state.pod" + ], + "doc/html/man3/SSL_get_value_uint.html" => [ + "doc/man3/SSL_get_value_uint.pod" + ], "doc/html/man3/SSL_get_verify_result.html" => [ "doc/man3/SSL_get_verify_result.pod" ], @@ -12688,9 +14783,15 @@ our %unified_info = ( "doc/html/man3/SSL_group_to_name.html" => [ "doc/man3/SSL_group_to_name.pod" ], + "doc/html/man3/SSL_handle_events.html" => [ + "doc/man3/SSL_handle_events.pod" + ], "doc/html/man3/SSL_in_init.html" => [ "doc/man3/SSL_in_init.pod" ], + "doc/html/man3/SSL_inject_net_dgram.html" => [ + "doc/man3/SSL_inject_net_dgram.pod" + ], "doc/html/man3/SSL_key_update.html" => [ "doc/man3/SSL_key_update.pod" ], @@ -12703,9 +14804,21 @@ our %unified_info = ( "doc/html/man3/SSL_new.html" => [ "doc/man3/SSL_new.pod" ], + "doc/html/man3/SSL_new_domain.html" => [ + "doc/man3/SSL_new_domain.pod" + ], + "doc/html/man3/SSL_new_listener.html" => [ + "doc/man3/SSL_new_listener.pod" + ], + "doc/html/man3/SSL_new_stream.html" => [ + "doc/man3/SSL_new_stream.pod" + ], "doc/html/man3/SSL_pending.html" => [ "doc/man3/SSL_pending.pod" ], + "doc/html/man3/SSL_poll.html" => [ + "doc/man3/SSL_poll.pod" + ], "doc/html/man3/SSL_read.html" => [ "doc/man3/SSL_read.pod" ], @@ -12721,24 +14834,45 @@ our %unified_info = ( "doc/html/man3/SSL_set1_host.html" => [ "doc/man3/SSL_set1_host.pod" ], + "doc/html/man3/SSL_set1_initial_peer_addr.html" => [ + "doc/man3/SSL_set1_initial_peer_addr.pod" + ], + "doc/html/man3/SSL_set1_server_cert_type.html" => [ + "doc/man3/SSL_set1_server_cert_type.pod" + ], "doc/html/man3/SSL_set_async_callback.html" => [ "doc/man3/SSL_set_async_callback.pod" ], "doc/html/man3/SSL_set_bio.html" => [ "doc/man3/SSL_set_bio.pod" ], + "doc/html/man3/SSL_set_blocking_mode.html" => [ + "doc/man3/SSL_set_blocking_mode.pod" + ], "doc/html/man3/SSL_set_connect_state.html" => [ "doc/man3/SSL_set_connect_state.pod" ], + "doc/html/man3/SSL_set_default_stream_mode.html" => [ + "doc/man3/SSL_set_default_stream_mode.pod" + ], "doc/html/man3/SSL_set_fd.html" => [ "doc/man3/SSL_set_fd.pod" ], + "doc/html/man3/SSL_set_incoming_stream_policy.html" => [ + "doc/man3/SSL_set_incoming_stream_policy.pod" + ], + "doc/html/man3/SSL_set_quic_tls_cbs.html" => [ + "doc/man3/SSL_set_quic_tls_cbs.pod" + ], "doc/html/man3/SSL_set_retry_verify.html" => [ "doc/man3/SSL_set_retry_verify.pod" ], "doc/html/man3/SSL_set_session.html" => [ "doc/man3/SSL_set_session.pod" ], + "doc/html/man3/SSL_set_session_secret_cb.html" => [ + "doc/man3/SSL_set_session_secret_cb.pod" + ], "doc/html/man3/SSL_set_shutdown.html" => [ "doc/man3/SSL_set_shutdown.pod" ], @@ -12751,6 +14885,12 @@ our %unified_info = ( "doc/html/man3/SSL_state_string.html" => [ "doc/man3/SSL_state_string.pod" ], + "doc/html/man3/SSL_stream_conclude.html" => [ + "doc/man3/SSL_stream_conclude.pod" + ], + "doc/html/man3/SSL_stream_reset.html" => [ + "doc/man3/SSL_stream_reset.pod" + ], "doc/html/man3/SSL_want.html" => [ "doc/man3/SSL_want.pod" ], @@ -12760,8 +14900,8 @@ our %unified_info = ( "doc/html/man3/TS_RESP_CTX_new.html" => [ "doc/man3/TS_RESP_CTX_new.pod" ], - "doc/html/man3/TS_VERIFY_CTX_set_certs.html" => [ - "doc/man3/TS_VERIFY_CTX_set_certs.pod" + "doc/html/man3/TS_VERIFY_CTX.html" => [ + "doc/man3/TS_VERIFY_CTX.pod" ], "doc/html/man3/UI_STRING.html" => [ "doc/man3/UI_STRING.pod" @@ -12781,6 +14921,21 @@ our %unified_info = ( "doc/html/man3/X509V3_set_ctx.html" => [ "doc/man3/X509V3_set_ctx.pod" ], + "doc/html/man3/X509_ACERT_add1_attr.html" => [ + "doc/man3/X509_ACERT_add1_attr.pod" + ], + "doc/html/man3/X509_ACERT_add_attr_nconf.html" => [ + "doc/man3/X509_ACERT_add_attr_nconf.pod" + ], + "doc/html/man3/X509_ACERT_get0_holder_baseCertId.html" => [ + "doc/man3/X509_ACERT_get0_holder_baseCertId.pod" + ], + "doc/html/man3/X509_ACERT_get_attr.html" => [ + "doc/man3/X509_ACERT_get_attr.pod" + ], + "doc/html/man3/X509_ACERT_print_ex.html" => [ + "doc/man3/X509_ACERT_print_ex.pod" + ], "doc/html/man3/X509_ALGOR_dup.html" => [ "doc/man3/X509_ALGOR_dup.pod" ], @@ -12829,6 +14984,9 @@ our %unified_info = ( "doc/html/man3/X509_SIG_get0.html" => [ "doc/man3/X509_SIG_get0.pod" ], + "doc/html/man3/X509_STORE_CTX_get_by_subject.html" => [ + "doc/man3/X509_STORE_CTX_get_by_subject.pod" + ], "doc/html/man3/X509_STORE_CTX_get_error.html" => [ "doc/man3/X509_STORE_CTX_get_error.pod" ], @@ -12895,6 +15053,9 @@ our %unified_info = ( "doc/html/man3/X509_get0_uids.html" => [ "doc/man3/X509_get0_uids.pod" ], + "doc/html/man3/X509_get_default_cert_file.html" => [ + "doc/man3/X509_get_default_cert_file.pod" + ], "doc/html/man3/X509_get_extension_flags.html" => [ "doc/man3/X509_get_extension_flags.pod" ], @@ -13018,9 +15179,15 @@ our %unified_info = ( "doc/html/man7/EVP_CIPHER-SM4.html" => [ "doc/man7/EVP_CIPHER-SM4.pod" ], + "doc/html/man7/EVP_KDF-ARGON2.html" => [ + "doc/man7/EVP_KDF-ARGON2.pod" + ], "doc/html/man7/EVP_KDF-HKDF.html" => [ "doc/man7/EVP_KDF-HKDF.pod" ], + "doc/html/man7/EVP_KDF-HMAC-DRBG.html" => [ + "doc/man7/EVP_KDF-HMAC-DRBG.pod" + ], "doc/html/man7/EVP_KDF-KB.html" => [ "doc/man7/EVP_KDF-KB.pod" ], @@ -13036,6 +15203,9 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-PKCS12KDF.html" => [ "doc/man7/EVP_KDF-PKCS12KDF.pod" ], + "doc/html/man7/EVP_KDF-PVKKDF.html" => [ + "doc/man7/EVP_KDF-PVKKDF.pod" + ], "doc/html/man7/EVP_KDF-SCRYPT.html" => [ "doc/man7/EVP_KDF-SCRYPT.pod" ], @@ -13060,9 +15230,18 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-X963.html" => [ "doc/man7/EVP_KDF-X963.pod" ], + "doc/html/man7/EVP_KEM-EC.html" => [ + "doc/man7/EVP_KEM-EC.pod" + ], + "doc/html/man7/EVP_KEM-ML-KEM.html" => [ + "doc/man7/EVP_KEM-ML-KEM.pod" + ], "doc/html/man7/EVP_KEM-RSA.html" => [ "doc/man7/EVP_KEM-RSA.pod" ], + "doc/html/man7/EVP_KEM-X25519.html" => [ + "doc/man7/EVP_KEM-X25519.pod" + ], "doc/html/man7/EVP_KEYEXCH-DH.html" => [ "doc/man7/EVP_KEYEXCH-DH.pod" ], @@ -13096,6 +15275,9 @@ our %unified_info = ( "doc/html/man7/EVP_MD-BLAKE2.html" => [ "doc/man7/EVP_MD-BLAKE2.pod" ], + "doc/html/man7/EVP_MD-KECCAK.html" => [ + "doc/man7/EVP_MD-KECCAK.pod" + ], "doc/html/man7/EVP_MD-MD2.html" => [ "doc/man7/EVP_MD-MD2.pod" ], @@ -13153,15 +15335,27 @@ our %unified_info = ( "doc/html/man7/EVP_PKEY-HMAC.html" => [ "doc/man7/EVP_PKEY-HMAC.pod" ], + "doc/html/man7/EVP_PKEY-ML-DSA.html" => [ + "doc/man7/EVP_PKEY-ML-DSA.pod" + ], + "doc/html/man7/EVP_PKEY-ML-KEM.html" => [ + "doc/man7/EVP_PKEY-ML-KEM.pod" + ], "doc/html/man7/EVP_PKEY-RSA.html" => [ "doc/man7/EVP_PKEY-RSA.pod" ], + "doc/html/man7/EVP_PKEY-SLH-DSA.html" => [ + "doc/man7/EVP_PKEY-SLH-DSA.pod" + ], "doc/html/man7/EVP_PKEY-SM2.html" => [ "doc/man7/EVP_PKEY-SM2.pod" ], "doc/html/man7/EVP_PKEY-X25519.html" => [ "doc/man7/EVP_PKEY-X25519.pod" ], + "doc/html/man7/EVP_RAND-CRNG-TEST.html" => [ + "doc/man7/EVP_RAND-CRNG-TEST.pod" + ], "doc/html/man7/EVP_RAND-CTR-DRBG.html" => [ "doc/man7/EVP_RAND-CTR-DRBG.pod" ], @@ -13171,6 +15365,9 @@ our %unified_info = ( "doc/html/man7/EVP_RAND-HMAC-DRBG.html" => [ "doc/man7/EVP_RAND-HMAC-DRBG.pod" ], + "doc/html/man7/EVP_RAND-JITTER.html" => [ + "doc/man7/EVP_RAND-JITTER.pod" + ], "doc/html/man7/EVP_RAND-SEED-SRC.html" => [ "doc/man7/EVP_RAND-SEED-SRC.pod" ], @@ -13192,9 +15389,15 @@ our %unified_info = ( "doc/html/man7/EVP_SIGNATURE-HMAC.html" => [ "doc/man7/EVP_SIGNATURE-HMAC.pod" ], + "doc/html/man7/EVP_SIGNATURE-ML-DSA.html" => [ + "doc/man7/EVP_SIGNATURE-ML-DSA.pod" + ], "doc/html/man7/EVP_SIGNATURE-RSA.html" => [ "doc/man7/EVP_SIGNATURE-RSA.pod" ], + "doc/html/man7/EVP_SIGNATURE-SLH-DSA.html" => [ + "doc/man7/EVP_SIGNATURE-SLH-DSA.pod" + ], "doc/html/man7/OSSL_PROVIDER-FIPS.html" => [ "doc/man7/OSSL_PROVIDER-FIPS.pod" ], @@ -13210,6 +15413,9 @@ our %unified_info = ( "doc/html/man7/OSSL_PROVIDER-null.html" => [ "doc/man7/OSSL_PROVIDER-null.pod" ], + "doc/html/man7/OSSL_STORE-winstore.html" => [ + "doc/man7/OSSL_STORE-winstore.pod" + ], "doc/html/man7/RAND.html" => [ "doc/man7/RAND.pod" ], @@ -13222,9 +15428,6 @@ our %unified_info = ( "doc/html/man7/bio.html" => [ "doc/man7/bio.pod" ], - "doc/html/man7/crypto.html" => [ - "doc/man7/crypto.pod" - ], "doc/html/man7/ct.html" => [ "doc/man7/ct.pod" ], @@ -13255,9 +15458,6 @@ our %unified_info = ( "doc/html/man7/life_cycle-rand.html" => [ "doc/man7/life_cycle-rand.pod" ], - "doc/html/man7/migration_guide.html" => [ - "doc/man7/migration_guide.pod" - ], "doc/html/man7/openssl-core.h.html" => [ "doc/man7/openssl-core.h.pod" ], @@ -13273,12 +15473,66 @@ our %unified_info = ( "doc/html/man7/openssl-glossary.html" => [ "doc/man7/openssl-glossary.pod" ], + "doc/html/man7/openssl-qlog.html" => [ + "doc/man7/openssl-qlog.pod" + ], + "doc/html/man7/openssl-quic-concurrency.html" => [ + "doc/man7/openssl-quic-concurrency.pod" + ], + "doc/html/man7/openssl-quic.html" => [ + "doc/man7/openssl-quic.pod" + ], "doc/html/man7/openssl-threads.html" => [ "doc/man7/openssl-threads.pod" ], "doc/html/man7/openssl_user_macros.html" => [ "doc/man7/openssl_user_macros.pod" ], + "doc/html/man7/ossl-guide-introduction.html" => [ + "doc/man7/ossl-guide-introduction.pod" + ], + "doc/html/man7/ossl-guide-libcrypto-introduction.html" => [ + "doc/man7/ossl-guide-libcrypto-introduction.pod" + ], + "doc/html/man7/ossl-guide-libraries-introduction.html" => [ + "doc/man7/ossl-guide-libraries-introduction.pod" + ], + "doc/html/man7/ossl-guide-libssl-introduction.html" => [ + "doc/man7/ossl-guide-libssl-introduction.pod" + ], + "doc/html/man7/ossl-guide-migration.html" => [ + "doc/man7/ossl-guide-migration.pod" + ], + "doc/html/man7/ossl-guide-quic-client-block.html" => [ + "doc/man7/ossl-guide-quic-client-block.pod" + ], + "doc/html/man7/ossl-guide-quic-client-non-block.html" => [ + "doc/man7/ossl-guide-quic-client-non-block.pod" + ], + "doc/html/man7/ossl-guide-quic-introduction.html" => [ + "doc/man7/ossl-guide-quic-introduction.pod" + ], + "doc/html/man7/ossl-guide-quic-multi-stream.html" => [ + "doc/man7/ossl-guide-quic-multi-stream.pod" + ], + "doc/html/man7/ossl-guide-quic-server-block.html" => [ + "doc/man7/ossl-guide-quic-server-block.pod" + ], + "doc/html/man7/ossl-guide-quic-server-non-block.html" => [ + "doc/man7/ossl-guide-quic-server-non-block.pod" + ], + "doc/html/man7/ossl-guide-tls-client-block.html" => [ + "doc/man7/ossl-guide-tls-client-block.pod" + ], + "doc/html/man7/ossl-guide-tls-client-non-block.html" => [ + "doc/man7/ossl-guide-tls-client-non-block.pod" + ], + "doc/html/man7/ossl-guide-tls-introduction.html" => [ + "doc/man7/ossl-guide-tls-introduction.pod" + ], + "doc/html/man7/ossl-guide-tls-server-block.html" => [ + "doc/man7/ossl-guide-tls-server-block.pod" + ], "doc/html/man7/ossl_store-file.html" => [ "doc/man7/ossl_store-file.pod" ], @@ -13333,6 +15587,9 @@ our %unified_info = ( "doc/html/man7/provider-signature.html" => [ "doc/man7/provider-signature.pod" ], + "doc/html/man7/provider-skeymgmt.html" => [ + "doc/man7/provider-skeymgmt.pod" + ], "doc/html/man7/provider-storemgmt.html" => [ "doc/man7/provider-storemgmt.pod" ], @@ -13342,9 +15599,6 @@ our %unified_info = ( "doc/html/man7/proxy-certificates.html" => [ "doc/man7/proxy-certificates.pod" ], - "doc/html/man7/ssl.html" => [ - "doc/man7/ssl.pod" - ], "doc/html/man7/x509.html" => [ "doc/man7/x509.pod" ], @@ -13492,6 +15746,9 @@ our %unified_info = ( "doc/man/man1/openssl-sess_id.1" => [ "doc/man1/openssl-sess_id.pod" ], + "doc/man/man1/openssl-skeyutl.1" => [ + "doc/man1/openssl-skeyutl.pod" + ], "doc/man/man1/openssl-smime.1" => [ "doc/man1/openssl-smime.pod" ], @@ -13633,6 +15890,9 @@ our %unified_info = ( "doc/man/man3/BIO_get_ex_new_index.3" => [ "doc/man3/BIO_get_ex_new_index.pod" ], + "doc/man/man3/BIO_get_rpoll_descriptor.3" => [ + "doc/man3/BIO_get_rpoll_descriptor.pod" + ], "doc/man/man3/BIO_meth_new.3" => [ "doc/man3/BIO_meth_new.pod" ], @@ -13669,6 +15929,9 @@ our %unified_info = ( "doc/man/man3/BIO_s_datagram.3" => [ "doc/man3/BIO_s_datagram.pod" ], + "doc/man/man3/BIO_s_dgram_pair.3" => [ + "doc/man3/BIO_s_dgram_pair.pod" + ], "doc/man/man3/BIO_s_fd.3" => [ "doc/man3/BIO_s_fd.pod" ], @@ -13684,6 +15947,9 @@ our %unified_info = ( "doc/man/man3/BIO_s_socket.3" => [ "doc/man3/BIO_s_socket.pod" ], + "doc/man/man3/BIO_sendmmsg.3" => [ + "doc/man3/BIO_sendmmsg.pod" + ], "doc/man/man3/BIO_set_callback.3" => [ "doc/man3/BIO_set_callback.pod" ], @@ -13756,6 +16022,9 @@ our %unified_info = ( "doc/man/man3/BUF_MEM_new.3" => [ "doc/man3/BUF_MEM_new.pod" ], + "doc/man/man3/CMAC_CTX.3" => [ + "doc/man3/CMAC_CTX.pod" + ], "doc/man/man3/CMS_EncryptedData_decrypt.3" => [ "doc/man3/CMS_EncryptedData_decrypt.pod" ], @@ -13822,6 +16091,9 @@ our %unified_info = ( "doc/man/man3/CMS_verify_receipt.3" => [ "doc/man3/CMS_verify_receipt.pod" ], + "doc/man/man3/COMP_CTX_new.3" => [ + "doc/man3/COMP_CTX_new.pod" + ], "doc/man/man3/CONF_modules_free.3" => [ "doc/man3/CONF_modules_free.pod" ], @@ -13921,6 +16193,12 @@ our %unified_info = ( "doc/man/man3/DTLS_set_timer_cb.3" => [ "doc/man3/DTLS_set_timer_cb.pod" ], + "doc/man/man3/DTLSv1_get_timeout.3" => [ + "doc/man3/DTLSv1_get_timeout.pod" + ], + "doc/man/man3/DTLSv1_handle_timeout.3" => [ + "doc/man3/DTLSv1_handle_timeout.pod" + ], "doc/man/man3/DTLSv1_listen.3" => [ "doc/man3/DTLSv1_listen.pod" ], @@ -14059,6 +16337,9 @@ our %unified_info = ( "doc/man/man3/EVP_PKEY_CTX_get0_pkey.3" => [ "doc/man3/EVP_PKEY_CTX_get0_pkey.pod" ], + "doc/man/man3/EVP_PKEY_CTX_get_algor.3" => [ + "doc/man3/EVP_PKEY_CTX_get_algor.pod" + ], "doc/man/man3/EVP_PKEY_CTX_new.3" => [ "doc/man3/EVP_PKEY_CTX_new.pod" ], @@ -14176,6 +16457,12 @@ our %unified_info = ( "doc/man/man3/EVP_SIGNATURE.3" => [ "doc/man3/EVP_SIGNATURE.pod" ], + "doc/man/man3/EVP_SKEY.3" => [ + "doc/man3/EVP_SKEY.pod" + ], + "doc/man/man3/EVP_SKEYMGMT.3" => [ + "doc/man3/EVP_SKEYMGMT.pod" + ], "doc/man/man3/EVP_SealInit.3" => [ "doc/man3/EVP_SealInit.pod" ], @@ -14263,6 +16550,9 @@ our %unified_info = ( "doc/man/man3/EVP_whirlpool.3" => [ "doc/man3/EVP_whirlpool.pod" ], + "doc/man/man3/GENERAL_NAME.3" => [ + "doc/man3/GENERAL_NAME.pod" + ], "doc/man/man3/HMAC.3" => [ "doc/man3/HMAC.pod" ], @@ -14335,9 +16625,15 @@ our %unified_info = ( "doc/man/man3/OPENSSL_load_builtin_modules.3" => [ "doc/man3/OPENSSL_load_builtin_modules.pod" ], + "doc/man/man3/OPENSSL_load_u16_le.3" => [ + "doc/man3/OPENSSL_load_u16_le.pod" + ], "doc/man/man3/OPENSSL_malloc.3" => [ "doc/man3/OPENSSL_malloc.pod" ], + "doc/man/man3/OPENSSL_riscvcap.3" => [ + "doc/man3/OPENSSL_riscvcap.pod" + ], "doc/man/man3/OPENSSL_s390xcap.3" => [ "doc/man3/OPENSSL_s390xcap.pod" ], @@ -14353,12 +16649,18 @@ our %unified_info = ( "doc/man/man3/OSSL_CALLBACK.3" => [ "doc/man3/OSSL_CALLBACK.pod" ], + "doc/man/man3/OSSL_CMP_ATAV_set0.3" => [ + "doc/man3/OSSL_CMP_ATAV_set0.pod" + ], "doc/man/man3/OSSL_CMP_CTX_new.3" => [ "doc/man3/OSSL_CMP_CTX_new.pod" ], "doc/man/man3/OSSL_CMP_HDR_get0_transactionID.3" => [ "doc/man3/OSSL_CMP_HDR_get0_transactionID.pod" ], + "doc/man/man3/OSSL_CMP_ITAV_new_caCerts.3" => [ + "doc/man3/OSSL_CMP_ITAV_new_caCerts.pod" + ], "doc/man/man3/OSSL_CMP_ITAV_set0.3" => [ "doc/man3/OSSL_CMP_ITAV_set0.pod" ], @@ -14428,9 +16730,18 @@ our %unified_info = ( "doc/man/man3/OSSL_ENCODER_to_bio.3" => [ "doc/man3/OSSL_ENCODER_to_bio.pod" ], + "doc/man/man3/OSSL_ERR_STATE_save.3" => [ + "doc/man3/OSSL_ERR_STATE_save.pod" + ], "doc/man/man3/OSSL_ESS_check_signing_certs.3" => [ "doc/man3/OSSL_ESS_check_signing_certs.pod" ], + "doc/man/man3/OSSL_GENERAL_NAMES_print.3" => [ + "doc/man3/OSSL_GENERAL_NAMES_print.pod" + ], + "doc/man/man3/OSSL_HPKE_CTX_new.3" => [ + "doc/man3/OSSL_HPKE_CTX_new.pod" + ], "doc/man/man3/OSSL_HTTP_REQ_CTX.3" => [ "doc/man3/OSSL_HTTP_REQ_CTX.pod" ], @@ -14440,12 +16751,24 @@ our %unified_info = ( "doc/man/man3/OSSL_HTTP_transfer.3" => [ "doc/man3/OSSL_HTTP_transfer.pod" ], + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX.3" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX.pod" + ], + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX_print.3" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX_print.pod" + ], + "doc/man/man3/OSSL_INDICATOR_set_callback.3" => [ + "doc/man3/OSSL_INDICATOR_set_callback.pod" + ], "doc/man/man3/OSSL_ITEM.3" => [ "doc/man3/OSSL_ITEM.pod" ], "doc/man/man3/OSSL_LIB_CTX.3" => [ "doc/man3/OSSL_LIB_CTX.pod" ], + "doc/man/man3/OSSL_LIB_CTX_set_conf_diagnostics.3" => [ + "doc/man3/OSSL_LIB_CTX_set_conf_diagnostics.pod" + ], "doc/man/man3/OSSL_PARAM.3" => [ "doc/man3/OSSL_PARAM.pod" ], @@ -14461,9 +16784,15 @@ our %unified_info = ( "doc/man/man3/OSSL_PARAM_int.3" => [ "doc/man3/OSSL_PARAM_int.pod" ], + "doc/man/man3/OSSL_PARAM_print_to_bio.3" => [ + "doc/man3/OSSL_PARAM_print_to_bio.pod" + ], "doc/man/man3/OSSL_PROVIDER.3" => [ "doc/man3/OSSL_PROVIDER.pod" ], + "doc/man/man3/OSSL_QUIC_client_method.3" => [ + "doc/man3/OSSL_QUIC_client_method.pod" + ], "doc/man/man3/OSSL_SELF_TEST_new.3" => [ "doc/man3/OSSL_SELF_TEST_new.pod" ], @@ -14488,6 +16817,9 @@ our %unified_info = ( "doc/man/man3/OSSL_STORE_open.3" => [ "doc/man3/OSSL_STORE_open.pod" ], + "doc/man/man3/OSSL_sleep.3" => [ + "doc/man3/OSSL_sleep.pod" + ], "doc/man/man3/OSSL_trace_enabled.3" => [ "doc/man3/OSSL_trace_enabled.pod" ], @@ -14503,6 +16835,9 @@ our %unified_info = ( "doc/man/man3/OpenSSL_version.3" => [ "doc/man3/OpenSSL_version.pod" ], + "doc/man/man3/PBMAC1_get1_pbkdf2_param.3" => [ + "doc/man3/PBMAC1_get1_pbkdf2_param.pod" + ], "doc/man/man3/PEM_X509_INFO_read_bio_ex.3" => [ "doc/man3/PEM_X509_INFO_read_bio_ex.pod" ], @@ -14539,6 +16874,9 @@ our %unified_info = ( "doc/man/man3/PKCS12_SAFEBAG_get1_cert.3" => [ "doc/man3/PKCS12_SAFEBAG_get1_cert.pod" ], + "doc/man/man3/PKCS12_SAFEBAG_set0_attrs.3" => [ + "doc/man3/PKCS12_SAFEBAG_set0_attrs.pod" + ], "doc/man/man3/PKCS12_add1_attr_by_NID.3" => [ "doc/man3/PKCS12_add1_attr_by_NID.pod" ], @@ -14812,6 +17150,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set0_CA_list.3" => [ "doc/man3/SSL_CTX_set0_CA_list.pod" ], + "doc/man/man3/SSL_CTX_set1_cert_comp_preference.3" => [ + "doc/man3/SSL_CTX_set1_cert_comp_preference.pod" + ], "doc/man/man3/SSL_CTX_set1_curves.3" => [ "doc/man3/SSL_CTX_set1_curves.pod" ], @@ -14851,6 +17192,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_default_passwd_cb.3" => [ "doc/man3/SSL_CTX_set_default_passwd_cb.pod" ], + "doc/man/man3/SSL_CTX_set_domain_flags.3" => [ + "doc/man3/SSL_CTX_set_domain_flags.pod" + ], "doc/man/man3/SSL_CTX_set_generate_session_id.3" => [ "doc/man3/SSL_CTX_set_generate_session_id.pod" ], @@ -14872,6 +17216,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_msg_callback.3" => [ "doc/man3/SSL_CTX_set_msg_callback.pod" ], + "doc/man/man3/SSL_CTX_set_new_pending_conn_cb.3" => [ + "doc/man3/SSL_CTX_set_new_pending_conn_cb.pod" + ], "doc/man/man3/SSL_CTX_set_num_tickets.3" => [ "doc/man3/SSL_CTX_set_num_tickets.pod" ], @@ -14986,6 +17333,9 @@ our %unified_info = ( "doc/man/man3/SSL_accept.3" => [ "doc/man3/SSL_accept.pod" ], + "doc/man/man3/SSL_accept_stream.3" => [ + "doc/man3/SSL_accept_stream.pod" + ], "doc/man/man3/SSL_alert_type_string.3" => [ "doc/man3/SSL_alert_type_string.pod" ], @@ -15013,9 +17363,21 @@ our %unified_info = ( "doc/man/man3/SSL_free.3" => [ "doc/man3/SSL_free.pod" ], + "doc/man/man3/SSL_get0_connection.3" => [ + "doc/man3/SSL_get0_connection.pod" + ], + "doc/man/man3/SSL_get0_group_name.3" => [ + "doc/man3/SSL_get0_group_name.pod" + ], + "doc/man/man3/SSL_get0_peer_rpk.3" => [ + "doc/man3/SSL_get0_peer_rpk.pod" + ], "doc/man/man3/SSL_get0_peer_scts.3" => [ "doc/man3/SSL_get0_peer_scts.pod" ], + "doc/man/man3/SSL_get1_builtin_sigalgs.3" => [ + "doc/man3/SSL_get1_builtin_sigalgs.pod" + ], "doc/man/man3/SSL_get_SSL_CTX.3" => [ "doc/man3/SSL_get_SSL_CTX.pod" ], @@ -15031,6 +17393,9 @@ our %unified_info = ( "doc/man/man3/SSL_get_client_random.3" => [ "doc/man3/SSL_get_client_random.pod" ], + "doc/man/man3/SSL_get_conn_close_info.3" => [ + "doc/man3/SSL_get_conn_close_info.pod" + ], "doc/man/man3/SSL_get_current_cipher.3" => [ "doc/man3/SSL_get_current_cipher.pod" ], @@ -15040,12 +17405,18 @@ our %unified_info = ( "doc/man/man3/SSL_get_error.3" => [ "doc/man3/SSL_get_error.pod" ], + "doc/man/man3/SSL_get_event_timeout.3" => [ + "doc/man3/SSL_get_event_timeout.pod" + ], "doc/man/man3/SSL_get_extms_support.3" => [ "doc/man3/SSL_get_extms_support.pod" ], "doc/man/man3/SSL_get_fd.3" => [ "doc/man3/SSL_get_fd.pod" ], + "doc/man/man3/SSL_get_handshake_rtt.3" => [ + "doc/man3/SSL_get_handshake_rtt.pod" + ], "doc/man/man3/SSL_get_peer_cert_chain.3" => [ "doc/man3/SSL_get_peer_cert_chain.pod" ], @@ -15064,12 +17435,24 @@ our %unified_info = ( "doc/man/man3/SSL_get_rbio.3" => [ "doc/man3/SSL_get_rbio.pod" ], + "doc/man/man3/SSL_get_rpoll_descriptor.3" => [ + "doc/man3/SSL_get_rpoll_descriptor.pod" + ], "doc/man/man3/SSL_get_session.3" => [ "doc/man3/SSL_get_session.pod" ], "doc/man/man3/SSL_get_shared_sigalgs.3" => [ "doc/man3/SSL_get_shared_sigalgs.pod" ], + "doc/man/man3/SSL_get_stream_id.3" => [ + "doc/man3/SSL_get_stream_id.pod" + ], + "doc/man/man3/SSL_get_stream_read_state.3" => [ + "doc/man3/SSL_get_stream_read_state.pod" + ], + "doc/man/man3/SSL_get_value_uint.3" => [ + "doc/man3/SSL_get_value_uint.pod" + ], "doc/man/man3/SSL_get_verify_result.3" => [ "doc/man3/SSL_get_verify_result.pod" ], @@ -15079,9 +17462,15 @@ our %unified_info = ( "doc/man/man3/SSL_group_to_name.3" => [ "doc/man3/SSL_group_to_name.pod" ], + "doc/man/man3/SSL_handle_events.3" => [ + "doc/man3/SSL_handle_events.pod" + ], "doc/man/man3/SSL_in_init.3" => [ "doc/man3/SSL_in_init.pod" ], + "doc/man/man3/SSL_inject_net_dgram.3" => [ + "doc/man3/SSL_inject_net_dgram.pod" + ], "doc/man/man3/SSL_key_update.3" => [ "doc/man3/SSL_key_update.pod" ], @@ -15094,9 +17483,21 @@ our %unified_info = ( "doc/man/man3/SSL_new.3" => [ "doc/man3/SSL_new.pod" ], + "doc/man/man3/SSL_new_domain.3" => [ + "doc/man3/SSL_new_domain.pod" + ], + "doc/man/man3/SSL_new_listener.3" => [ + "doc/man3/SSL_new_listener.pod" + ], + "doc/man/man3/SSL_new_stream.3" => [ + "doc/man3/SSL_new_stream.pod" + ], "doc/man/man3/SSL_pending.3" => [ "doc/man3/SSL_pending.pod" ], + "doc/man/man3/SSL_poll.3" => [ + "doc/man3/SSL_poll.pod" + ], "doc/man/man3/SSL_read.3" => [ "doc/man3/SSL_read.pod" ], @@ -15112,24 +17513,45 @@ our %unified_info = ( "doc/man/man3/SSL_set1_host.3" => [ "doc/man3/SSL_set1_host.pod" ], + "doc/man/man3/SSL_set1_initial_peer_addr.3" => [ + "doc/man3/SSL_set1_initial_peer_addr.pod" + ], + "doc/man/man3/SSL_set1_server_cert_type.3" => [ + "doc/man3/SSL_set1_server_cert_type.pod" + ], "doc/man/man3/SSL_set_async_callback.3" => [ "doc/man3/SSL_set_async_callback.pod" ], "doc/man/man3/SSL_set_bio.3" => [ "doc/man3/SSL_set_bio.pod" ], + "doc/man/man3/SSL_set_blocking_mode.3" => [ + "doc/man3/SSL_set_blocking_mode.pod" + ], "doc/man/man3/SSL_set_connect_state.3" => [ "doc/man3/SSL_set_connect_state.pod" ], + "doc/man/man3/SSL_set_default_stream_mode.3" => [ + "doc/man3/SSL_set_default_stream_mode.pod" + ], "doc/man/man3/SSL_set_fd.3" => [ "doc/man3/SSL_set_fd.pod" ], + "doc/man/man3/SSL_set_incoming_stream_policy.3" => [ + "doc/man3/SSL_set_incoming_stream_policy.pod" + ], + "doc/man/man3/SSL_set_quic_tls_cbs.3" => [ + "doc/man3/SSL_set_quic_tls_cbs.pod" + ], "doc/man/man3/SSL_set_retry_verify.3" => [ "doc/man3/SSL_set_retry_verify.pod" ], "doc/man/man3/SSL_set_session.3" => [ "doc/man3/SSL_set_session.pod" ], + "doc/man/man3/SSL_set_session_secret_cb.3" => [ + "doc/man3/SSL_set_session_secret_cb.pod" + ], "doc/man/man3/SSL_set_shutdown.3" => [ "doc/man3/SSL_set_shutdown.pod" ], @@ -15142,6 +17564,12 @@ our %unified_info = ( "doc/man/man3/SSL_state_string.3" => [ "doc/man3/SSL_state_string.pod" ], + "doc/man/man3/SSL_stream_conclude.3" => [ + "doc/man3/SSL_stream_conclude.pod" + ], + "doc/man/man3/SSL_stream_reset.3" => [ + "doc/man3/SSL_stream_reset.pod" + ], "doc/man/man3/SSL_want.3" => [ "doc/man3/SSL_want.pod" ], @@ -15151,8 +17579,8 @@ our %unified_info = ( "doc/man/man3/TS_RESP_CTX_new.3" => [ "doc/man3/TS_RESP_CTX_new.pod" ], - "doc/man/man3/TS_VERIFY_CTX_set_certs.3" => [ - "doc/man3/TS_VERIFY_CTX_set_certs.pod" + "doc/man/man3/TS_VERIFY_CTX.3" => [ + "doc/man3/TS_VERIFY_CTX.pod" ], "doc/man/man3/UI_STRING.3" => [ "doc/man3/UI_STRING.pod" @@ -15172,6 +17600,21 @@ our %unified_info = ( "doc/man/man3/X509V3_set_ctx.3" => [ "doc/man3/X509V3_set_ctx.pod" ], + "doc/man/man3/X509_ACERT_add1_attr.3" => [ + "doc/man3/X509_ACERT_add1_attr.pod" + ], + "doc/man/man3/X509_ACERT_add_attr_nconf.3" => [ + "doc/man3/X509_ACERT_add_attr_nconf.pod" + ], + "doc/man/man3/X509_ACERT_get0_holder_baseCertId.3" => [ + "doc/man3/X509_ACERT_get0_holder_baseCertId.pod" + ], + "doc/man/man3/X509_ACERT_get_attr.3" => [ + "doc/man3/X509_ACERT_get_attr.pod" + ], + "doc/man/man3/X509_ACERT_print_ex.3" => [ + "doc/man3/X509_ACERT_print_ex.pod" + ], "doc/man/man3/X509_ALGOR_dup.3" => [ "doc/man3/X509_ALGOR_dup.pod" ], @@ -15220,6 +17663,9 @@ our %unified_info = ( "doc/man/man3/X509_SIG_get0.3" => [ "doc/man3/X509_SIG_get0.pod" ], + "doc/man/man3/X509_STORE_CTX_get_by_subject.3" => [ + "doc/man3/X509_STORE_CTX_get_by_subject.pod" + ], "doc/man/man3/X509_STORE_CTX_get_error.3" => [ "doc/man3/X509_STORE_CTX_get_error.pod" ], @@ -15286,6 +17732,9 @@ our %unified_info = ( "doc/man/man3/X509_get0_uids.3" => [ "doc/man3/X509_get0_uids.pod" ], + "doc/man/man3/X509_get_default_cert_file.3" => [ + "doc/man3/X509_get_default_cert_file.pod" + ], "doc/man/man3/X509_get_extension_flags.3" => [ "doc/man3/X509_get_extension_flags.pod" ], @@ -15409,9 +17858,15 @@ our %unified_info = ( "doc/man/man7/EVP_CIPHER-SM4.7" => [ "doc/man7/EVP_CIPHER-SM4.pod" ], + "doc/man/man7/EVP_KDF-ARGON2.7" => [ + "doc/man7/EVP_KDF-ARGON2.pod" + ], "doc/man/man7/EVP_KDF-HKDF.7" => [ "doc/man7/EVP_KDF-HKDF.pod" ], + "doc/man/man7/EVP_KDF-HMAC-DRBG.7" => [ + "doc/man7/EVP_KDF-HMAC-DRBG.pod" + ], "doc/man/man7/EVP_KDF-KB.7" => [ "doc/man7/EVP_KDF-KB.pod" ], @@ -15427,6 +17882,9 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-PKCS12KDF.7" => [ "doc/man7/EVP_KDF-PKCS12KDF.pod" ], + "doc/man/man7/EVP_KDF-PVKKDF.7" => [ + "doc/man7/EVP_KDF-PVKKDF.pod" + ], "doc/man/man7/EVP_KDF-SCRYPT.7" => [ "doc/man7/EVP_KDF-SCRYPT.pod" ], @@ -15451,9 +17909,18 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-X963.7" => [ "doc/man7/EVP_KDF-X963.pod" ], + "doc/man/man7/EVP_KEM-EC.7" => [ + "doc/man7/EVP_KEM-EC.pod" + ], + "doc/man/man7/EVP_KEM-ML-KEM.7" => [ + "doc/man7/EVP_KEM-ML-KEM.pod" + ], "doc/man/man7/EVP_KEM-RSA.7" => [ "doc/man7/EVP_KEM-RSA.pod" ], + "doc/man/man7/EVP_KEM-X25519.7" => [ + "doc/man7/EVP_KEM-X25519.pod" + ], "doc/man/man7/EVP_KEYEXCH-DH.7" => [ "doc/man7/EVP_KEYEXCH-DH.pod" ], @@ -15487,6 +17954,9 @@ our %unified_info = ( "doc/man/man7/EVP_MD-BLAKE2.7" => [ "doc/man7/EVP_MD-BLAKE2.pod" ], + "doc/man/man7/EVP_MD-KECCAK.7" => [ + "doc/man7/EVP_MD-KECCAK.pod" + ], "doc/man/man7/EVP_MD-MD2.7" => [ "doc/man7/EVP_MD-MD2.pod" ], @@ -15544,15 +18014,27 @@ our %unified_info = ( "doc/man/man7/EVP_PKEY-HMAC.7" => [ "doc/man7/EVP_PKEY-HMAC.pod" ], + "doc/man/man7/EVP_PKEY-ML-DSA.7" => [ + "doc/man7/EVP_PKEY-ML-DSA.pod" + ], + "doc/man/man7/EVP_PKEY-ML-KEM.7" => [ + "doc/man7/EVP_PKEY-ML-KEM.pod" + ], "doc/man/man7/EVP_PKEY-RSA.7" => [ "doc/man7/EVP_PKEY-RSA.pod" ], + "doc/man/man7/EVP_PKEY-SLH-DSA.7" => [ + "doc/man7/EVP_PKEY-SLH-DSA.pod" + ], "doc/man/man7/EVP_PKEY-SM2.7" => [ "doc/man7/EVP_PKEY-SM2.pod" ], "doc/man/man7/EVP_PKEY-X25519.7" => [ "doc/man7/EVP_PKEY-X25519.pod" ], + "doc/man/man7/EVP_RAND-CRNG-TEST.7" => [ + "doc/man7/EVP_RAND-CRNG-TEST.pod" + ], "doc/man/man7/EVP_RAND-CTR-DRBG.7" => [ "doc/man7/EVP_RAND-CTR-DRBG.pod" ], @@ -15562,6 +18044,9 @@ our %unified_info = ( "doc/man/man7/EVP_RAND-HMAC-DRBG.7" => [ "doc/man7/EVP_RAND-HMAC-DRBG.pod" ], + "doc/man/man7/EVP_RAND-JITTER.7" => [ + "doc/man7/EVP_RAND-JITTER.pod" + ], "doc/man/man7/EVP_RAND-SEED-SRC.7" => [ "doc/man7/EVP_RAND-SEED-SRC.pod" ], @@ -15583,9 +18068,15 @@ our %unified_info = ( "doc/man/man7/EVP_SIGNATURE-HMAC.7" => [ "doc/man7/EVP_SIGNATURE-HMAC.pod" ], + "doc/man/man7/EVP_SIGNATURE-ML-DSA.7" => [ + "doc/man7/EVP_SIGNATURE-ML-DSA.pod" + ], "doc/man/man7/EVP_SIGNATURE-RSA.7" => [ "doc/man7/EVP_SIGNATURE-RSA.pod" ], + "doc/man/man7/EVP_SIGNATURE-SLH-DSA.7" => [ + "doc/man7/EVP_SIGNATURE-SLH-DSA.pod" + ], "doc/man/man7/OSSL_PROVIDER-FIPS.7" => [ "doc/man7/OSSL_PROVIDER-FIPS.pod" ], @@ -15601,6 +18092,9 @@ our %unified_info = ( "doc/man/man7/OSSL_PROVIDER-null.7" => [ "doc/man7/OSSL_PROVIDER-null.pod" ], + "doc/man/man7/OSSL_STORE-winstore.7" => [ + "doc/man7/OSSL_STORE-winstore.pod" + ], "doc/man/man7/RAND.7" => [ "doc/man7/RAND.pod" ], @@ -15613,9 +18107,6 @@ our %unified_info = ( "doc/man/man7/bio.7" => [ "doc/man7/bio.pod" ], - "doc/man/man7/crypto.7" => [ - "doc/man7/crypto.pod" - ], "doc/man/man7/ct.7" => [ "doc/man7/ct.pod" ], @@ -15646,29 +18137,80 @@ our %unified_info = ( "doc/man/man7/life_cycle-rand.7" => [ "doc/man7/life_cycle-rand.pod" ], - "doc/man/man7/migration_guide.7" => [ - "doc/man7/migration_guide.pod" + "doc/man/man7/openssl-core.h.7" => [ + "doc/man7/openssl-core.h.pod" + ], + "doc/man/man7/openssl-core_dispatch.h.7" => [ + "doc/man7/openssl-core_dispatch.h.pod" + ], + "doc/man/man7/openssl-core_names.h.7" => [ + "doc/man7/openssl-core_names.h.pod" + ], + "doc/man/man7/openssl-env.7" => [ + "doc/man7/openssl-env.pod" + ], + "doc/man/man7/openssl-glossary.7" => [ + "doc/man7/openssl-glossary.pod" + ], + "doc/man/man7/openssl-qlog.7" => [ + "doc/man7/openssl-qlog.pod" + ], + "doc/man/man7/openssl-quic-concurrency.7" => [ + "doc/man7/openssl-quic-concurrency.pod" + ], + "doc/man/man7/openssl-quic.7" => [ + "doc/man7/openssl-quic.pod" + ], + "doc/man/man7/openssl-threads.7" => [ + "doc/man7/openssl-threads.pod" + ], + "doc/man/man7/openssl_user_macros.7" => [ + "doc/man7/openssl_user_macros.pod" + ], + "doc/man/man7/ossl-guide-introduction.7" => [ + "doc/man7/ossl-guide-introduction.pod" + ], + "doc/man/man7/ossl-guide-libcrypto-introduction.7" => [ + "doc/man7/ossl-guide-libcrypto-introduction.pod" + ], + "doc/man/man7/ossl-guide-libraries-introduction.7" => [ + "doc/man7/ossl-guide-libraries-introduction.pod" + ], + "doc/man/man7/ossl-guide-libssl-introduction.7" => [ + "doc/man7/ossl-guide-libssl-introduction.pod" + ], + "doc/man/man7/ossl-guide-migration.7" => [ + "doc/man7/ossl-guide-migration.pod" + ], + "doc/man/man7/ossl-guide-quic-client-block.7" => [ + "doc/man7/ossl-guide-quic-client-block.pod" + ], + "doc/man/man7/ossl-guide-quic-client-non-block.7" => [ + "doc/man7/ossl-guide-quic-client-non-block.pod" + ], + "doc/man/man7/ossl-guide-quic-introduction.7" => [ + "doc/man7/ossl-guide-quic-introduction.pod" ], - "doc/man/man7/openssl-core.h.7" => [ - "doc/man7/openssl-core.h.pod" + "doc/man/man7/ossl-guide-quic-multi-stream.7" => [ + "doc/man7/ossl-guide-quic-multi-stream.pod" ], - "doc/man/man7/openssl-core_dispatch.h.7" => [ - "doc/man7/openssl-core_dispatch.h.pod" + "doc/man/man7/ossl-guide-quic-server-block.7" => [ + "doc/man7/ossl-guide-quic-server-block.pod" ], - "doc/man/man7/openssl-core_names.h.7" => [ - "doc/man7/openssl-core_names.h.pod" + "doc/man/man7/ossl-guide-quic-server-non-block.7" => [ + "doc/man7/ossl-guide-quic-server-non-block.pod" ], - "doc/man/man7/openssl-env.7" => [ - "doc/man7/openssl-env.pod" + "doc/man/man7/ossl-guide-tls-client-block.7" => [ + "doc/man7/ossl-guide-tls-client-block.pod" ], - "doc/man/man7/openssl-glossary.7" => [ - "doc/man7/openssl-glossary.pod" + "doc/man/man7/ossl-guide-tls-client-non-block.7" => [ + "doc/man7/ossl-guide-tls-client-non-block.pod" ], - "doc/man/man7/openssl-threads.7" => [ - "doc/man7/openssl-threads.pod" + "doc/man/man7/ossl-guide-tls-introduction.7" => [ + "doc/man7/ossl-guide-tls-introduction.pod" ], - "doc/man/man7/openssl_user_macros.7" => [ - "doc/man7/openssl_user_macros.pod" + "doc/man/man7/ossl-guide-tls-server-block.7" => [ + "doc/man7/ossl-guide-tls-server-block.pod" ], "doc/man/man7/ossl_store-file.7" => [ "doc/man7/ossl_store-file.pod" @@ -15724,6 +18266,9 @@ our %unified_info = ( "doc/man/man7/provider-signature.7" => [ "doc/man7/provider-signature.pod" ], + "doc/man/man7/provider-skeymgmt.7" => [ + "doc/man7/provider-skeymgmt.pod" + ], "doc/man/man7/provider-storemgmt.7" => [ "doc/man7/provider-storemgmt.pod" ], @@ -15733,9 +18278,6 @@ our %unified_info = ( "doc/man/man7/proxy-certificates.7" => [ "doc/man7/proxy-certificates.pod" ], - "doc/man/man7/ssl.7" => [ - "doc/man7/ssl.pod" - ], "doc/man/man7/x509.7" => [ "doc/man7/x509.pod" ], @@ -15871,6 +18413,9 @@ our %unified_info = ( "doc/man1/openssl-sess_id.pod" => [ "doc/man1/openssl-sess_id.pod.in" ], + "doc/man1/openssl-skeyutl.pod" => [ + "doc/man1/openssl-skeyutl.pod.in" + ], "doc/man1/openssl-smime.pod" => [ "doc/man1/openssl-smime.pod.in" ], @@ -15907,12 +18452,30 @@ our %unified_info = ( "engines/e_padlock-x86_64.s" => [ "engines/asm/e_padlock-x86_64.pl" ], + "exporters/OpenSSLConfig.cmake" => [ + "exporters/cmake/OpenSSLConfig.cmake.in" + ], + "exporters/OpenSSLConfigVersion.cmake" => [ + "exporters/cmake/OpenSSLConfigVersion.cmake.in" + ], + "exporters/libcrypto.pc" => [ + "exporters/pkg-config/libcrypto.pc.in" + ], + "exporters/libssl.pc" => [ + "exporters/pkg-config/libssl.pc.in" + ], + "exporters/openssl.pc" => [ + "exporters/pkg-config/openssl.pc.in" + ], "include/crypto/bn_conf.h" => [ "include/crypto/bn_conf.h.in" ], "include/crypto/dso_conf.h" => [ "include/crypto/dso_conf.h.in" ], + "include/internal/param_names.h" => [ + "include/internal/param_names.h.in" + ], "include/openssl/asn1.h" => [ "include/openssl/asn1.h.in" ], @@ -15928,12 +18491,18 @@ our %unified_info = ( "include/openssl/cms.h" => [ "include/openssl/cms.h.in" ], + "include/openssl/comp.h" => [ + "include/openssl/comp.h.in" + ], "include/openssl/conf.h" => [ "include/openssl/conf.h.in" ], "include/openssl/configuration.h" => [ "include/openssl/configuration.h.in" ], + "include/openssl/core_names.h" => [ + "include/openssl/core_names.h.in" + ], "include/openssl/crmf.h" => [ "include/openssl/crmf.h.in" ], @@ -15982,12 +18551,39 @@ our %unified_info = ( "include/openssl/x509.h" => [ "include/openssl/x509.h.in" ], + "include/openssl/x509_acert.h" => [ + "include/openssl/x509_acert.h.in" + ], "include/openssl/x509_vfy.h" => [ "include/openssl/x509_vfy.h.in" ], "include/openssl/x509v3.h" => [ "include/openssl/x509v3.h.in" ], + "installdata.pm" => [ + "util/mkinstallvars.pl", + "\"PREFIX=\$(INSTALLTOP)\"", + "BINDIR=bin", + "\"LIBDIR=\$(LIBDIR)\"", + "\"libdir=\$(libdir)\"", + "INCLUDEDIR=include", + "APPLINKDIR=include/openssl", + "\"ENGINESDIR=\$(ENGINESDIR)\"", + "\"MODULESDIR=\$(MODULESDIR)\"", + "\"PKGCONFIGDIR=\$(PKGCONFIGDIR)\"", + "\"CMAKECONFIGDIR=\$(CMAKECONFIGDIR)\"", + "\"LDLIBS=\$(LIB_EX_LIBS)\"", + "\"VERSION=\$(VERSION)\"" + ], + "libcrypto.pc" => [ + "exporters/pkg-config/libcrypto.pc.in" + ], + "libssl.pc" => [ + "exporters/pkg-config/libssl.pc.in" + ], + "openssl.pc" => [ + "exporters/pkg-config/openssl.pc.in" + ], "providers/common/der/der_digests_gen.c" => [ "providers/common/der/der_digests_gen.c.in" ], @@ -16000,9 +18596,15 @@ our %unified_info = ( "providers/common/der/der_ecx_gen.c" => [ "providers/common/der/der_ecx_gen.c.in" ], + "providers/common/der/der_ml_dsa_gen.c" => [ + "providers/common/der/der_ml_dsa_gen.c.in" + ], "providers/common/der/der_rsa_gen.c" => [ "providers/common/der/der_rsa_gen.c.in" ], + "providers/common/der/der_slh_dsa_gen.c" => [ + "providers/common/der/der_slh_dsa_gen.c.in" + ], "providers/common/der/der_sm2_gen.c" => [ "providers/common/der/der_sm2_gen.c.in" ], @@ -16021,9 +18623,15 @@ our %unified_info = ( "providers/common/include/prov/der_ecx.h" => [ "providers/common/include/prov/der_ecx.h.in" ], + "providers/common/include/prov/der_ml_dsa.h" => [ + "providers/common/include/prov/der_ml_dsa.h.in" + ], "providers/common/include/prov/der_rsa.h" => [ "providers/common/include/prov/der_rsa.h.in" ], + "providers/common/include/prov/der_slh_dsa.h" => [ + "providers/common/include/prov/der_slh_dsa.h.in" + ], "providers/common/include/prov/der_sm2.h" => [ "providers/common/include/prov/der_sm2.h.in" ], @@ -16059,6 +18667,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "buffer" ], + "test/buildtest_byteorder.c" => [ + "test/generate_buildtest.pl", + "byteorder" + ], "test/buildtest_camellia.c" => [ "test/generate_buildtest.pl", "camellia" @@ -16091,10 +18703,6 @@ our %unified_info = ( "test/generate_buildtest.pl", "core_dispatch" ], - "test/buildtest_core_names.c" => [ - "test/generate_buildtest.pl", - "core_names" - ], "test/buildtest_core_object.c" => [ "test/generate_buildtest.pl", "core_object" @@ -16127,6 +18735,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "e_os2" ], + "test/buildtest_e_ostime.c" => [ + "test/generate_buildtest.pl", + "e_ostime" + ], "test/buildtest_ebcdic.c" => [ "test/generate_buildtest.pl", "ebcdic" @@ -16163,6 +18775,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "hmac" ], + "test/buildtest_hpke.c" => [ + "test/generate_buildtest.pl", + "hpke" + ], "test/buildtest_http.c" => [ "test/generate_buildtest.pl", "http" @@ -16171,6 +18787,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "idea" ], + "test/buildtest_indicator.c" => [ + "test/generate_buildtest.pl", + "indicator" + ], "test/buildtest_kdf.c" => [ "test/generate_buildtest.pl", "kdf" @@ -16191,6 +18811,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "mdc2" ], + "test/buildtest_ml_kem.c" => [ + "test/generate_buildtest.pl", + "ml_kem" + ], "test/buildtest_modes.c" => [ "test/generate_buildtest.pl", "modes" @@ -16231,6 +18855,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "provider" ], + "test/buildtest_quic.c" => [ + "test/generate_buildtest.pl", + "quic" + ], "test/buildtest_rand.c" => [ "test/generate_buildtest.pl", "rand" @@ -16287,6 +18915,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "symhacks" ], + "test/buildtest_thread.c" => [ + "test/generate_buildtest.pl", + "thread" + ], "test/buildtest_tls1.c" => [ "test/generate_buildtest.pl", "tls1" @@ -16361,6 +18993,7 @@ our %unified_info = ( "doc/html/man1/openssl-s_server.html", "doc/html/man1/openssl-s_time.html", "doc/html/man1/openssl-sess_id.html", + "doc/html/man1/openssl-skeyutl.html", "doc/html/man1/openssl-smime.html", "doc/html/man1/openssl-speed.html", "doc/html/man1/openssl-spkac.html", @@ -16410,6 +19043,7 @@ our %unified_info = ( "doc/html/man3/BIO_find_type.html", "doc/html/man3/BIO_get_data.html", "doc/html/man3/BIO_get_ex_new_index.html", + "doc/html/man3/BIO_get_rpoll_descriptor.html", "doc/html/man3/BIO_meth_new.html", "doc/html/man3/BIO_new.html", "doc/html/man3/BIO_new_CMS.html", @@ -16422,11 +19056,13 @@ our %unified_info = ( "doc/html/man3/BIO_s_connect.html", "doc/html/man3/BIO_s_core.html", "doc/html/man3/BIO_s_datagram.html", + "doc/html/man3/BIO_s_dgram_pair.html", "doc/html/man3/BIO_s_fd.html", "doc/html/man3/BIO_s_file.html", "doc/html/man3/BIO_s_mem.html", "doc/html/man3/BIO_s_null.html", "doc/html/man3/BIO_s_socket.html", + "doc/html/man3/BIO_sendmmsg.html", "doc/html/man3/BIO_set_callback.html", "doc/html/man3/BIO_should_retry.html", "doc/html/man3/BIO_socket_wait.html", @@ -16451,6 +19087,7 @@ our %unified_info = ( "doc/html/man3/BN_swap.html", "doc/html/man3/BN_zero.html", "doc/html/man3/BUF_MEM_new.html", + "doc/html/man3/CMAC_CTX.html", "doc/html/man3/CMS_EncryptedData_decrypt.html", "doc/html/man3/CMS_EncryptedData_encrypt.html", "doc/html/man3/CMS_EnvelopedData_create.html", @@ -16473,6 +19110,7 @@ our %unified_info = ( "doc/html/man3/CMS_uncompress.html", "doc/html/man3/CMS_verify.html", "doc/html/man3/CMS_verify_receipt.html", + "doc/html/man3/COMP_CTX_new.html", "doc/html/man3/CONF_modules_free.html", "doc/html/man3/CONF_modules_load_file.html", "doc/html/man3/CRYPTO_THREAD_run_once.html", @@ -16506,6 +19144,8 @@ our %unified_info = ( "doc/html/man3/DSA_size.html", "doc/html/man3/DTLS_get_data_mtu.html", "doc/html/man3/DTLS_set_timer_cb.html", + "doc/html/man3/DTLSv1_get_timeout.html", + "doc/html/man3/DTLSv1_handle_timeout.html", "doc/html/man3/DTLSv1_listen.html", "doc/html/man3/ECDSA_SIG_new.html", "doc/html/man3/ECDSA_sign.html", @@ -16552,6 +19192,7 @@ our %unified_info = ( "doc/html/man3/EVP_PKEY_CTX_ctrl.html", "doc/html/man3/EVP_PKEY_CTX_get0_libctx.html", "doc/html/man3/EVP_PKEY_CTX_get0_pkey.html", + "doc/html/man3/EVP_PKEY_CTX_get_algor.html", "doc/html/man3/EVP_PKEY_CTX_new.html", "doc/html/man3/EVP_PKEY_CTX_set1_pbe_pass.html", "doc/html/man3/EVP_PKEY_CTX_set_hkdf_md.html", @@ -16591,6 +19232,8 @@ our %unified_info = ( "doc/html/man3/EVP_PKEY_verify_recover.html", "doc/html/man3/EVP_RAND.html", "doc/html/man3/EVP_SIGNATURE.html", + "doc/html/man3/EVP_SKEY.html", + "doc/html/man3/EVP_SKEYMGMT.html", "doc/html/man3/EVP_SealInit.html", "doc/html/man3/EVP_SignInit.html", "doc/html/man3/EVP_VerifyInit.html", @@ -16620,6 +19263,7 @@ our %unified_info = ( "doc/html/man3/EVP_sm3.html", "doc/html/man3/EVP_sm4_cbc.html", "doc/html/man3/EVP_whirlpool.html", + "doc/html/man3/GENERAL_NAME.html", "doc/html/man3/HMAC.html", "doc/html/man3/MD5.html", "doc/html/man3/MDC2_Init.html", @@ -16644,14 +19288,18 @@ our %unified_info = ( "doc/html/man3/OPENSSL_init_ssl.html", "doc/html/man3/OPENSSL_instrument_bus.html", "doc/html/man3/OPENSSL_load_builtin_modules.html", + "doc/html/man3/OPENSSL_load_u16_le.html", "doc/html/man3/OPENSSL_malloc.html", + "doc/html/man3/OPENSSL_riscvcap.html", "doc/html/man3/OPENSSL_s390xcap.html", "doc/html/man3/OPENSSL_secure_malloc.html", "doc/html/man3/OPENSSL_strcasecmp.html", "doc/html/man3/OSSL_ALGORITHM.html", "doc/html/man3/OSSL_CALLBACK.html", + "doc/html/man3/OSSL_CMP_ATAV_set0.html", "doc/html/man3/OSSL_CMP_CTX_new.html", "doc/html/man3/OSSL_CMP_HDR_get0_transactionID.html", + "doc/html/man3/OSSL_CMP_ITAV_new_caCerts.html", "doc/html/man3/OSSL_CMP_ITAV_set0.html", "doc/html/man3/OSSL_CMP_MSG_get0_header.html", "doc/html/man3/OSSL_CMP_MSG_http_perform.html", @@ -16675,18 +19323,27 @@ our %unified_info = ( "doc/html/man3/OSSL_ENCODER_CTX.html", "doc/html/man3/OSSL_ENCODER_CTX_new_for_pkey.html", "doc/html/man3/OSSL_ENCODER_to_bio.html", + "doc/html/man3/OSSL_ERR_STATE_save.html", "doc/html/man3/OSSL_ESS_check_signing_certs.html", + "doc/html/man3/OSSL_GENERAL_NAMES_print.html", + "doc/html/man3/OSSL_HPKE_CTX_new.html", "doc/html/man3/OSSL_HTTP_REQ_CTX.html", "doc/html/man3/OSSL_HTTP_parse_url.html", "doc/html/man3/OSSL_HTTP_transfer.html", + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX.html", + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX_print.html", + "doc/html/man3/OSSL_INDICATOR_set_callback.html", "doc/html/man3/OSSL_ITEM.html", "doc/html/man3/OSSL_LIB_CTX.html", + "doc/html/man3/OSSL_LIB_CTX_set_conf_diagnostics.html", "doc/html/man3/OSSL_PARAM.html", "doc/html/man3/OSSL_PARAM_BLD.html", "doc/html/man3/OSSL_PARAM_allocate_from_text.html", "doc/html/man3/OSSL_PARAM_dup.html", "doc/html/man3/OSSL_PARAM_int.html", + "doc/html/man3/OSSL_PARAM_print_to_bio.html", "doc/html/man3/OSSL_PROVIDER.html", + "doc/html/man3/OSSL_QUIC_client_method.html", "doc/html/man3/OSSL_SELF_TEST_new.html", "doc/html/man3/OSSL_SELF_TEST_set_callback.html", "doc/html/man3/OSSL_STORE_INFO.html", @@ -16695,11 +19352,13 @@ our %unified_info = ( "doc/html/man3/OSSL_STORE_attach.html", "doc/html/man3/OSSL_STORE_expect.html", "doc/html/man3/OSSL_STORE_open.html", + "doc/html/man3/OSSL_sleep.html", "doc/html/man3/OSSL_trace_enabled.html", "doc/html/man3/OSSL_trace_get_category_num.html", "doc/html/man3/OSSL_trace_set_channel.html", "doc/html/man3/OpenSSL_add_all_algorithms.html", "doc/html/man3/OpenSSL_version.html", + "doc/html/man3/PBMAC1_get1_pbkdf2_param.html", "doc/html/man3/PEM_X509_INFO_read_bio_ex.html", "doc/html/man3/PEM_bytes_read_bio.html", "doc/html/man3/PEM_read.html", @@ -16712,6 +19371,7 @@ our %unified_info = ( "doc/html/man3/PKCS12_SAFEBAG_create_cert.html", "doc/html/man3/PKCS12_SAFEBAG_get0_attrs.html", "doc/html/man3/PKCS12_SAFEBAG_get1_cert.html", + "doc/html/man3/PKCS12_SAFEBAG_set0_attrs.html", "doc/html/man3/PKCS12_add1_attr_by_NID.html", "doc/html/man3/PKCS12_add_CSPName_asc.html", "doc/html/man3/PKCS12_add_cert.html", @@ -16803,6 +19463,7 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_sess_set_get_cb.html", "doc/html/man3/SSL_CTX_sessions.html", "doc/html/man3/SSL_CTX_set0_CA_list.html", + "doc/html/man3/SSL_CTX_set1_cert_comp_preference.html", "doc/html/man3/SSL_CTX_set1_curves.html", "doc/html/man3/SSL_CTX_set1_sigalgs.html", "doc/html/man3/SSL_CTX_set1_verify_cert_store.html", @@ -16816,6 +19477,7 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_ct_validation_callback.html", "doc/html/man3/SSL_CTX_set_ctlog_list_file.html", "doc/html/man3/SSL_CTX_set_default_passwd_cb.html", + "doc/html/man3/SSL_CTX_set_domain_flags.html", "doc/html/man3/SSL_CTX_set_generate_session_id.html", "doc/html/man3/SSL_CTX_set_info_callback.html", "doc/html/man3/SSL_CTX_set_keylog_callback.html", @@ -16823,6 +19485,7 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_min_proto_version.html", "doc/html/man3/SSL_CTX_set_mode.html", "doc/html/man3/SSL_CTX_set_msg_callback.html", + "doc/html/man3/SSL_CTX_set_new_pending_conn_cb.html", "doc/html/man3/SSL_CTX_set_num_tickets.html", "doc/html/man3/SSL_CTX_set_options.html", "doc/html/man3/SSL_CTX_set_psk_client_callback.html", @@ -16861,6 +19524,7 @@ our %unified_info = ( "doc/html/man3/SSL_SESSION_print.html", "doc/html/man3/SSL_SESSION_set1_id.html", "doc/html/man3/SSL_accept.html", + "doc/html/man3/SSL_accept_stream.html", "doc/html/man3/SSL_alert_type_string.html", "doc/html/man3/SSL_alloc_buffers.html", "doc/html/man3/SSL_check_chain.html", @@ -16870,59 +19534,90 @@ our %unified_info = ( "doc/html/man3/SSL_export_keying_material.html", "doc/html/man3/SSL_extension_supported.html", "doc/html/man3/SSL_free.html", + "doc/html/man3/SSL_get0_connection.html", + "doc/html/man3/SSL_get0_group_name.html", + "doc/html/man3/SSL_get0_peer_rpk.html", "doc/html/man3/SSL_get0_peer_scts.html", + "doc/html/man3/SSL_get1_builtin_sigalgs.html", "doc/html/man3/SSL_get_SSL_CTX.html", "doc/html/man3/SSL_get_all_async_fds.html", "doc/html/man3/SSL_get_certificate.html", "doc/html/man3/SSL_get_ciphers.html", "doc/html/man3/SSL_get_client_random.html", + "doc/html/man3/SSL_get_conn_close_info.html", "doc/html/man3/SSL_get_current_cipher.html", "doc/html/man3/SSL_get_default_timeout.html", "doc/html/man3/SSL_get_error.html", + "doc/html/man3/SSL_get_event_timeout.html", "doc/html/man3/SSL_get_extms_support.html", "doc/html/man3/SSL_get_fd.html", + "doc/html/man3/SSL_get_handshake_rtt.html", "doc/html/man3/SSL_get_peer_cert_chain.html", "doc/html/man3/SSL_get_peer_certificate.html", "doc/html/man3/SSL_get_peer_signature_nid.html", "doc/html/man3/SSL_get_peer_tmp_key.html", "doc/html/man3/SSL_get_psk_identity.html", "doc/html/man3/SSL_get_rbio.html", + "doc/html/man3/SSL_get_rpoll_descriptor.html", "doc/html/man3/SSL_get_session.html", "doc/html/man3/SSL_get_shared_sigalgs.html", + "doc/html/man3/SSL_get_stream_id.html", + "doc/html/man3/SSL_get_stream_read_state.html", + "doc/html/man3/SSL_get_value_uint.html", "doc/html/man3/SSL_get_verify_result.html", "doc/html/man3/SSL_get_version.html", "doc/html/man3/SSL_group_to_name.html", + "doc/html/man3/SSL_handle_events.html", "doc/html/man3/SSL_in_init.html", + "doc/html/man3/SSL_inject_net_dgram.html", "doc/html/man3/SSL_key_update.html", "doc/html/man3/SSL_library_init.html", "doc/html/man3/SSL_load_client_CA_file.html", "doc/html/man3/SSL_new.html", + "doc/html/man3/SSL_new_domain.html", + "doc/html/man3/SSL_new_listener.html", + "doc/html/man3/SSL_new_stream.html", "doc/html/man3/SSL_pending.html", + "doc/html/man3/SSL_poll.html", "doc/html/man3/SSL_read.html", "doc/html/man3/SSL_read_early_data.html", "doc/html/man3/SSL_rstate_string.html", "doc/html/man3/SSL_session_reused.html", "doc/html/man3/SSL_set1_host.html", + "doc/html/man3/SSL_set1_initial_peer_addr.html", + "doc/html/man3/SSL_set1_server_cert_type.html", "doc/html/man3/SSL_set_async_callback.html", "doc/html/man3/SSL_set_bio.html", + "doc/html/man3/SSL_set_blocking_mode.html", "doc/html/man3/SSL_set_connect_state.html", + "doc/html/man3/SSL_set_default_stream_mode.html", "doc/html/man3/SSL_set_fd.html", + "doc/html/man3/SSL_set_incoming_stream_policy.html", + "doc/html/man3/SSL_set_quic_tls_cbs.html", "doc/html/man3/SSL_set_retry_verify.html", "doc/html/man3/SSL_set_session.html", + "doc/html/man3/SSL_set_session_secret_cb.html", "doc/html/man3/SSL_set_shutdown.html", "doc/html/man3/SSL_set_verify_result.html", "doc/html/man3/SSL_shutdown.html", "doc/html/man3/SSL_state_string.html", + "doc/html/man3/SSL_stream_conclude.html", + "doc/html/man3/SSL_stream_reset.html", "doc/html/man3/SSL_want.html", "doc/html/man3/SSL_write.html", "doc/html/man3/TS_RESP_CTX_new.html", - "doc/html/man3/TS_VERIFY_CTX_set_certs.html", + "doc/html/man3/TS_VERIFY_CTX.html", "doc/html/man3/UI_STRING.html", "doc/html/man3/UI_UTIL_read_pw.html", "doc/html/man3/UI_create_method.html", "doc/html/man3/UI_new.html", "doc/html/man3/X509V3_get_d2i.html", "doc/html/man3/X509V3_set_ctx.html", + "doc/html/man3/X509_ACERT_add1_attr.html", + "doc/html/man3/X509_ACERT_add_attr_nconf.html", + "doc/html/man3/X509_ACERT_get0_holder_baseCertId.html", + "doc/html/man3/X509_ACERT_get_attr.html", + "doc/html/man3/X509_ACERT_print_ex.html", "doc/html/man3/X509_ALGOR_dup.html", "doc/html/man3/X509_ATTRIBUTE.html", "doc/html/man3/X509_CRL_get0_by_serial.html", @@ -16939,6 +19634,7 @@ our %unified_info = ( "doc/html/man3/X509_REQ_get_attr.html", "doc/html/man3/X509_REQ_get_extensions.html", "doc/html/man3/X509_SIG_get0.html", + "doc/html/man3/X509_STORE_CTX_get_by_subject.html", "doc/html/man3/X509_STORE_CTX_get_error.html", "doc/html/man3/X509_STORE_CTX_new.html", "doc/html/man3/X509_STORE_CTX_set_verify_cb.html", @@ -16961,6 +19657,7 @@ our %unified_info = ( "doc/html/man3/X509_get0_notBefore.html", "doc/html/man3/X509_get0_signature.html", "doc/html/man3/X509_get0_uids.html", + "doc/html/man3/X509_get_default_cert_file.html", "doc/html/man3/X509_get_extension_flags.html", "doc/html/man3/X509_get_pubkey.html", "doc/html/man3/X509_get_serialNumber.html", @@ -17006,12 +19703,15 @@ our %unified_info = ( "doc/html/man7/EVP_CIPHER-RC5.html", "doc/html/man7/EVP_CIPHER-SEED.html", "doc/html/man7/EVP_CIPHER-SM4.html", + "doc/html/man7/EVP_KDF-ARGON2.html", "doc/html/man7/EVP_KDF-HKDF.html", + "doc/html/man7/EVP_KDF-HMAC-DRBG.html", "doc/html/man7/EVP_KDF-KB.html", "doc/html/man7/EVP_KDF-KRB5KDF.html", "doc/html/man7/EVP_KDF-PBKDF1.html", "doc/html/man7/EVP_KDF-PBKDF2.html", "doc/html/man7/EVP_KDF-PKCS12KDF.html", + "doc/html/man7/EVP_KDF-PVKKDF.html", "doc/html/man7/EVP_KDF-SCRYPT.html", "doc/html/man7/EVP_KDF-SS.html", "doc/html/man7/EVP_KDF-SSHKDF.html", @@ -17020,7 +19720,10 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-X942-ASN1.html", "doc/html/man7/EVP_KDF-X942-CONCAT.html", "doc/html/man7/EVP_KDF-X963.html", + "doc/html/man7/EVP_KEM-EC.html", + "doc/html/man7/EVP_KEM-ML-KEM.html", "doc/html/man7/EVP_KEM-RSA.html", + "doc/html/man7/EVP_KEM-X25519.html", "doc/html/man7/EVP_KEYEXCH-DH.html", "doc/html/man7/EVP_KEYEXCH-ECDH.html", "doc/html/man7/EVP_KEYEXCH-X25519.html", @@ -17032,6 +19735,7 @@ our %unified_info = ( "doc/html/man7/EVP_MAC-Poly1305.html", "doc/html/man7/EVP_MAC-Siphash.html", "doc/html/man7/EVP_MD-BLAKE2.html", + "doc/html/man7/EVP_MD-KECCAK.html", "doc/html/man7/EVP_MD-MD2.html", "doc/html/man7/EVP_MD-MD4.html", "doc/html/man7/EVP_MD-MD5-SHA1.html", @@ -17051,12 +19755,17 @@ our %unified_info = ( "doc/html/man7/EVP_PKEY-EC.html", "doc/html/man7/EVP_PKEY-FFC.html", "doc/html/man7/EVP_PKEY-HMAC.html", + "doc/html/man7/EVP_PKEY-ML-DSA.html", + "doc/html/man7/EVP_PKEY-ML-KEM.html", "doc/html/man7/EVP_PKEY-RSA.html", + "doc/html/man7/EVP_PKEY-SLH-DSA.html", "doc/html/man7/EVP_PKEY-SM2.html", "doc/html/man7/EVP_PKEY-X25519.html", + "doc/html/man7/EVP_RAND-CRNG-TEST.html", "doc/html/man7/EVP_RAND-CTR-DRBG.html", "doc/html/man7/EVP_RAND-HASH-DRBG.html", "doc/html/man7/EVP_RAND-HMAC-DRBG.html", + "doc/html/man7/EVP_RAND-JITTER.html", "doc/html/man7/EVP_RAND-SEED-SRC.html", "doc/html/man7/EVP_RAND-TEST-RAND.html", "doc/html/man7/EVP_RAND.html", @@ -17064,17 +19773,19 @@ our %unified_info = ( "doc/html/man7/EVP_SIGNATURE-ECDSA.html", "doc/html/man7/EVP_SIGNATURE-ED25519.html", "doc/html/man7/EVP_SIGNATURE-HMAC.html", + "doc/html/man7/EVP_SIGNATURE-ML-DSA.html", "doc/html/man7/EVP_SIGNATURE-RSA.html", + "doc/html/man7/EVP_SIGNATURE-SLH-DSA.html", "doc/html/man7/OSSL_PROVIDER-FIPS.html", "doc/html/man7/OSSL_PROVIDER-base.html", "doc/html/man7/OSSL_PROVIDER-default.html", "doc/html/man7/OSSL_PROVIDER-legacy.html", "doc/html/man7/OSSL_PROVIDER-null.html", + "doc/html/man7/OSSL_STORE-winstore.html", "doc/html/man7/RAND.html", "doc/html/man7/RSA-PSS.html", "doc/html/man7/X25519.html", "doc/html/man7/bio.html", - "doc/html/man7/crypto.html", "doc/html/man7/ct.html", "doc/html/man7/des_modes.html", "doc/html/man7/evp.html", @@ -17085,14 +19796,31 @@ our %unified_info = ( "doc/html/man7/life_cycle-mac.html", "doc/html/man7/life_cycle-pkey.html", "doc/html/man7/life_cycle-rand.html", - "doc/html/man7/migration_guide.html", "doc/html/man7/openssl-core.h.html", "doc/html/man7/openssl-core_dispatch.h.html", "doc/html/man7/openssl-core_names.h.html", "doc/html/man7/openssl-env.html", "doc/html/man7/openssl-glossary.html", + "doc/html/man7/openssl-qlog.html", + "doc/html/man7/openssl-quic-concurrency.html", + "doc/html/man7/openssl-quic.html", "doc/html/man7/openssl-threads.html", "doc/html/man7/openssl_user_macros.html", + "doc/html/man7/ossl-guide-introduction.html", + "doc/html/man7/ossl-guide-libcrypto-introduction.html", + "doc/html/man7/ossl-guide-libraries-introduction.html", + "doc/html/man7/ossl-guide-libssl-introduction.html", + "doc/html/man7/ossl-guide-migration.html", + "doc/html/man7/ossl-guide-quic-client-block.html", + "doc/html/man7/ossl-guide-quic-client-non-block.html", + "doc/html/man7/ossl-guide-quic-introduction.html", + "doc/html/man7/ossl-guide-quic-multi-stream.html", + "doc/html/man7/ossl-guide-quic-server-block.html", + "doc/html/man7/ossl-guide-quic-server-non-block.html", + "doc/html/man7/ossl-guide-tls-client-block.html", + "doc/html/man7/ossl-guide-tls-client-non-block.html", + "doc/html/man7/ossl-guide-tls-introduction.html", + "doc/html/man7/ossl-guide-tls-server-block.html", "doc/html/man7/ossl_store-file.html", "doc/html/man7/ossl_store.html", "doc/html/man7/passphrase-encoding.html", @@ -17111,10 +19839,10 @@ our %unified_info = ( "doc/html/man7/provider-object.html", "doc/html/man7/provider-rand.html", "doc/html/man7/provider-signature.html", + "doc/html/man7/provider-skeymgmt.html", "doc/html/man7/provider-storemgmt.html", "doc/html/man7/provider.html", "doc/html/man7/proxy-certificates.html", - "doc/html/man7/ssl.html", "doc/html/man7/x509.html" ] }, @@ -17129,12 +19857,21 @@ our %unified_info = ( ] }, "includes" => { + "OpenSSLConfig.cmake" => [ + "." + ], + "OpenSSLConfigVersion.cmake" => [ + "." + ], "apps/asn1parse.o" => [ "apps" ], "apps/ca.o" => [ "apps" ], + "apps/ca_internals_test-bin-ca.o" => [ + "apps" + ], "apps/ciphers.o" => [ "apps" ], @@ -17361,6 +20098,9 @@ our %unified_info = ( "apps/openssl-bin-sess_id.o" => [ "apps" ], + "apps/openssl-bin-skeyutl.o" => [ + "apps" + ], "apps/openssl-bin-smime.o" => [ "apps" ], @@ -17448,6 +20188,9 @@ our %unified_info = ( "apps/sess_id.o" => [ "apps" ], + "apps/skeyutl.o" => [ + "apps" + ], "apps/smime.o" => [ "apps" ], @@ -17502,9 +20245,21 @@ our %unified_info = ( "crypto/aes/libcrypto-lib-aesv8-armx.o" => [ "crypto" ], + "crypto/aes/libcrypto-lib-vpaes-armv8.o" => [ + "crypto" + ], "crypto/aes/libfips-lib-aesv8-armx.o" => [ "crypto" ], + "crypto/aes/libfips-lib-vpaes-armv8.o" => [ + "crypto" + ], + "crypto/aes/vpaes-armv8.o" => [ + "crypto" + ], + "crypto/aes/vpaes-loongarch64.o" => [ + "crypto" + ], "crypto/arm64cpuid.o" => [ "crypto" ], @@ -17562,12 +20317,21 @@ our %unified_info = ( "crypto/chacha/chacha-armv4.o" => [ "crypto" ], + "crypto/chacha/chacha-armv8-sve.o" => [ + "crypto" + ], "crypto/chacha/chacha-armv8.o" => [ "crypto" ], + "crypto/chacha/chacha-loongarch64.o" => [ + "crypto" + ], "crypto/chacha/chacha-s390x.o" => [ "crypto" ], + "crypto/chacha/libcrypto-lib-chacha-armv8-sve.o" => [ + "crypto" + ], "crypto/chacha/libcrypto-lib-chacha-armv8.o" => [ "crypto" ], @@ -17592,6 +20356,12 @@ our %unified_info = ( "crypto/ec/ecp_s390x_nistp.o" => [ "crypto" ], + "crypto/ec/ecp_sm2p256-armv8.o" => [ + "crypto" + ], + "crypto/ec/ecx_key.o" => [ + "crypto" + ], "crypto/ec/ecx_meth.o" => [ "crypto" ], @@ -17601,12 +20371,24 @@ our %unified_info = ( "crypto/ec/libcrypto-lib-ecp_nistz256-armv8.o" => [ "crypto" ], + "crypto/ec/libcrypto-lib-ecp_sm2p256-armv8.o" => [ + "crypto" + ], + "crypto/ec/libcrypto-lib-ecx_key.o" => [ + "crypto" + ], "crypto/ec/libcrypto-lib-ecx_meth.o" => [ "crypto" ], "crypto/ec/libfips-lib-ecp_nistz256-armv8.o" => [ "crypto" ], + "crypto/ec/libfips-lib-ecp_sm2p256-armv8.o" => [ + "crypto" + ], + "crypto/ec/libfips-lib-ecx_key.o" => [ + "crypto" + ], "crypto/evp/e_aes.o" => [ "crypto", "crypto/modes" @@ -17684,9 +20466,21 @@ our %unified_info = ( "crypto/libfips-lib-cpuid.o" => [ "." ], + "crypto/md5/libcrypto-lib-md5-aarch64.o" => [ + "crypto" + ], + "crypto/md5/md5-aarch64.o" => [ + "crypto" + ], + "crypto/md5/md5-loongarch64.o" => [ + "crypto" + ], "crypto/md5/md5-sparcv9.o" => [ "crypto" ], + "crypto/modes/aes-gcm-armv8-unroll8_64.o" => [ + "crypto" + ], "crypto/modes/aes-gcm-armv8_64.o" => [ "crypto" ], @@ -17705,6 +20499,9 @@ our %unified_info = ( "crypto/modes/ghashv8-armx.o" => [ "crypto" ], + "crypto/modes/libcrypto-lib-aes-gcm-armv8-unroll8_64.o" => [ + "crypto" + ], "crypto/modes/libcrypto-lib-aes-gcm-armv8_64.o" => [ "crypto" ], @@ -17714,6 +20511,9 @@ our %unified_info = ( "crypto/modes/libcrypto-lib-ghashv8-armx.o" => [ "crypto" ], + "crypto/modes/libfips-lib-aes-gcm-armv8-unroll8_64.o" => [ + "crypto" + ], "crypto/modes/libfips-lib-aes-gcm-armv8_64.o" => [ "crypto" ], @@ -17723,6 +20523,9 @@ our %unified_info = ( "crypto/modes/libfips-lib-ghashv8-armx.o" => [ "crypto" ], + "crypto/params_idx.c" => [ + "util/perl" + ], "crypto/poly1305/libcrypto-lib-poly1305-armv8.o" => [ "crypto" ], @@ -17747,6 +20550,12 @@ our %unified_info = ( "crypto/sha/keccak1600-armv4.o" => [ "crypto" ], + "crypto/sha/keccak1600-armv8.o" => [ + "crypto" + ], + "crypto/sha/libcrypto-lib-keccak1600-armv8.o" => [ + "crypto" + ], "crypto/sha/libcrypto-lib-sha1-armv8.o" => [ "crypto" ], @@ -17756,6 +20565,9 @@ our %unified_info = ( "crypto/sha/libcrypto-lib-sha512-armv8.o" => [ "crypto" ], + "crypto/sha/libfips-lib-keccak1600-armv8.o" => [ + "crypto" + ], "crypto/sha/libfips-lib-sha1-armv8.o" => [ "crypto" ], @@ -17810,6 +20622,30 @@ our %unified_info = ( "crypto/sha/sha512-sparcv9.o" => [ "crypto" ], + "crypto/sm3/libcrypto-lib-sm3-armv8.o" => [ + "crypto" + ], + "crypto/sm3/sm3-armv8.o" => [ + "crypto" + ], + "crypto/sm4/libcrypto-lib-sm4-armv8.o" => [ + "crypto" + ], + "crypto/sm4/libcrypto-lib-vpsm4-armv8.o" => [ + "crypto" + ], + "crypto/sm4/libcrypto-lib-vpsm4_ex-armv8.o" => [ + "crypto" + ], + "crypto/sm4/sm4-armv8.o" => [ + "crypto" + ], + "crypto/sm4/vpsm4-armv8.o" => [ + "crypto" + ], + "crypto/sm4/vpsm4_ex-armv8.o" => [ + "crypto" + ], "doc/man1/openssl-asn1parse.pod" => [ "doc" ], @@ -17942,6 +20778,9 @@ our %unified_info = ( "doc/man1/openssl-sess_id.pod" => [ "doc" ], + "doc/man1/openssl-skeyutl.pod" => [ + "doc" + ], "doc/man1/openssl-smime.pod" => [ "doc" ], @@ -17969,6 +20808,24 @@ our %unified_info = ( "doc/man1/openssl-x509.pod" => [ "doc" ], + "exporters/OpenSSLConfig.cmake" => [ + "." + ], + "exporters/OpenSSLConfigVersion.cmake" => [ + "." + ], + "exporters/libcrypto.pc" => [ + "." + ], + "exporters/libssl.pc" => [ + "." + ], + "exporters/openssl.pc" => [ + "." + ], + "fuzz/acert-test" => [ + "include" + ], "fuzz/asn1-test" => [ "include" ], @@ -17999,22 +20856,88 @@ our %unified_info = ( "fuzz/ct-test" => [ "include" ], + "fuzz/decoder-test" => [ + "include" + ], + "fuzz/dtlsclient-test" => [ + "include" + ], + "fuzz/dtlsserver-test" => [ + "include" + ], + "fuzz/hashtable-test" => [ + "include" + ], + "fuzz/ml-dsa-test" => [ + "include" + ], + "fuzz/ml-kem-test" => [ + "include" + ], + "fuzz/pem-test" => [ + "include" + ], + "fuzz/provider-test" => [ + "include" + ], + "fuzz/punycode-test" => [ + "include" + ], + "fuzz/quic-client-test" => [ + "include" + ], + "fuzz/quic-lcidm-test" => [ + "include" + ], + "fuzz/quic-rcidm-test" => [ + "include" + ], + "fuzz/quic-server-test" => [ + "include" + ], + "fuzz/quic-srtm-test" => [ + "include" + ], "fuzz/server-test" => [ "include" ], + "fuzz/slh-dsa-test" => [ + "include" + ], + "fuzz/smime-test" => [ + "include" + ], + "fuzz/v3name-test" => [ + "include" + ], "fuzz/x509-test" => [ "include" ], + "include/internal/param_names.h" => [ + "util/perl" + ], + "include/openssl/core_names.h" => [ + "util/perl" + ], "libcrypto" => [ ".", "include", "providers/common/include", "providers/implementations/include" ], + "libcrypto.pc" => [ + "." + ], "libssl" => [ ".", "include" ], + "libssl.pc" => [ + "." + ], + "openssl.pc" => [ + "." + ], "providers/common/der/der_digests_gen.c" => [ "providers/common/der" ], @@ -18054,6 +20977,15 @@ our %unified_info = ( "providers/common/der/der_ecx_key.o" => [ "providers/common/include/prov" ], + "providers/common/der/der_ml_dsa_gen.c" => [ + "providers/common/der" + ], + "providers/common/der/der_ml_dsa_gen.o" => [ + "providers/common/include/prov" + ], + "providers/common/der/der_ml_dsa_key.o" => [ + "providers/common/include/prov" + ], "providers/common/der/der_rsa_gen.c" => [ "providers/common/der" ], @@ -18066,6 +20998,15 @@ our %unified_info = ( "providers/common/der/der_rsa_sig.o" => [ "providers/common/include/prov" ], + "providers/common/der/der_slh_dsa_gen.c" => [ + "providers/common/der" + ], + "providers/common/der/der_slh_dsa_gen.o" => [ + "providers/common/include/prov" + ], + "providers/common/der/der_slh_dsa_key.o" => [ + "providers/common/include/prov" + ], "providers/common/der/der_sm2_gen.c" => [ "providers/common/der" ], @@ -18111,12 +21052,24 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ecx_key.o" => [ "providers/common/include/prov" ], + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o" => [ + "providers/common/include/prov" + ], + "providers/common/der/libcommon-lib-der_ml_dsa_key.o" => [ + "providers/common/include/prov" + ], "providers/common/der/libcommon-lib-der_rsa_gen.o" => [ "providers/common/include/prov" ], "providers/common/der/libcommon-lib-der_rsa_key.o" => [ "providers/common/include/prov" ], + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o" => [ + "providers/common/include/prov" + ], + "providers/common/der/libcommon-lib-der_slh_dsa_key.o" => [ + "providers/common/include/prov" + ], "providers/common/der/libcommon-lib-der_wrap_gen.o" => [ "providers/common/include/prov" ], @@ -18147,9 +21100,15 @@ our %unified_info = ( "providers/common/include/prov/der_ecx.h" => [ "providers/common/der" ], + "providers/common/include/prov/der_ml_dsa.h" => [ + "providers/common/der" + ], "providers/common/include/prov/der_rsa.h" => [ "providers/common/der" ], + "providers/common/include/prov/der_slh_dsa.h" => [ + "providers/common/der" + ], "providers/common/include/prov/der_sm2.h" => [ "providers/common/der" ], @@ -18192,9 +21151,15 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-eddsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/libdefault-lib-rsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/libdefault-lib-sm2_sig.o" => [ "providers/common/include/prov" ], @@ -18207,12 +21172,24 @@ our %unified_info = ( "providers/implementations/signature/libfips-lib-eddsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/libfips-lib-rsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o" => [ + "providers/common/include/prov" + ], + "providers/implementations/signature/ml_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/rsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/slh_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/sm2_sig.o" => [ "providers/common/include/prov" ], @@ -18225,28 +21202,39 @@ our %unified_info = ( "crypto", "include", "providers/implementations/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" ], "providers/libdefault.a" => [ ".", "crypto", "include", "providers/implementations/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" ], "providers/libfips.a" => [ ".", "crypto", "include", "providers/implementations/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" ], "providers/liblegacy.a" => [ ".", "crypto", "include", "providers/implementations/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" + ], + "providers/libtemplate.a" => [ + "crypto", + "include", + "providers/implementations/include", + "providers/common/include", + "providers/fips/include" ], "test/aborttest" => [ "include", @@ -18315,6 +21303,14 @@ our %unified_info = ( "include", "apps/include" ], + "test/bio_addr_test" => [ + "include", + "apps/include" + ], + "test/bio_base64_test" => [ + "include", + "apps/include" + ], "test/bio_callback_test" => [ "include", "apps/include" @@ -18323,6 +21319,11 @@ our %unified_info = ( "include", "apps/include" ], + "test/bio_dgram_test" => [ + "include", + "apps/include", + "." + ], "test/bio_enc_test" => [ "include", "apps/include" @@ -18331,6 +21332,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/bio_meth_test" => [ + "include", + "apps/include" + ], "test/bio_prefix_text" => [ ".", "include", @@ -18344,6 +21349,11 @@ our %unified_info = ( "include", "apps/include" ], + "test/bio_tfo_test" => [ + "include", + "apps/include", + "." + ], "test/bioprinttest" => [ "include", "apps/include" @@ -18358,6 +21368,9 @@ our %unified_info = ( "include", "apps/include" ], + "test/build_wincrypt_test" => [ + "include" + ], "test/buildtest_c_aes" => [ "include" ], @@ -18373,6 +21386,9 @@ our %unified_info = ( "test/buildtest_c_buffer" => [ "include" ], + "test/buildtest_c_byteorder" => [ + "include" + ], "test/buildtest_c_camellia" => [ "include" ], @@ -18397,9 +21413,6 @@ our %unified_info = ( "test/buildtest_c_core_dispatch" => [ "include" ], - "test/buildtest_c_core_names" => [ - "include" - ], "test/buildtest_c_core_object" => [ "include" ], @@ -18424,6 +21437,9 @@ our %unified_info = ( "test/buildtest_c_e_os2" => [ "include" ], + "test/buildtest_c_e_ostime" => [ + "include" + ], "test/buildtest_c_ebcdic" => [ "include" ], @@ -18451,12 +21467,18 @@ our %unified_info = ( "test/buildtest_c_hmac" => [ "include" ], + "test/buildtest_c_hpke" => [ + "include" + ], "test/buildtest_c_http" => [ "include" ], "test/buildtest_c_idea" => [ "include" ], + "test/buildtest_c_indicator" => [ + "include" + ], "test/buildtest_c_kdf" => [ "include" ], @@ -18472,6 +21494,9 @@ our %unified_info = ( "test/buildtest_c_mdc2" => [ "include" ], + "test/buildtest_c_ml_kem" => [ + "include" + ], "test/buildtest_c_modes" => [ "include" ], @@ -18502,6 +21527,9 @@ our %unified_info = ( "test/buildtest_c_provider" => [ "include" ], + "test/buildtest_c_quic" => [ + "include" + ], "test/buildtest_c_rand" => [ "include" ], @@ -18544,6 +21572,9 @@ our %unified_info = ( "test/buildtest_c_symhacks" => [ "include" ], + "test/buildtest_c_thread" => [ + "include" + ], "test/buildtest_c_tls1" => [ "include" ], @@ -18559,10 +21590,24 @@ our %unified_info = ( "test/buildtest_c_whrlpool" => [ "include" ], + "test/byteorder_test" => [ + "include", + "apps/include" + ], + "test/ca_internals_test" => [ + ".", + "include", + "apps/include" + ], "test/casttest" => [ "include", "apps/include" ], + "test/cert_comp_test" => [ + "include", + "apps/include", + "." + ], "test/chacha_internal_test" => [ ".", "include", @@ -18686,6 +21731,11 @@ our %unified_info = ( "include", "apps/include" ], + "test/decoder_propq_test" => [ + ".", + "include", + "apps/include" + ], "test/defltfips_test" => [ "include", "apps/include" @@ -18701,7 +21751,8 @@ our %unified_info = ( "test/drbgtest" => [ "include", "apps/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" ], "test/dsa_no_digest_size_test" => [ "include", @@ -18744,7 +21795,9 @@ our %unified_info = ( "test/endecode_test" => [ ".", "include", - "apps/include" + "apps/include", + "providers/common/include", + "providers/implementations/include" ], "test/endecoder_legacy_test" => [ ".", @@ -18789,6 +21842,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/evp_pkey_dhkem_test" => [ + "include", + "apps/include" + ], "test/evp_pkey_dparams_test" => [ "include", "apps/include" @@ -18797,10 +21854,18 @@ our %unified_info = ( "include", "apps/include" ], + "test/evp_skey_test" => [ + "include", + "apps/include" + ], "test/evp_test" => [ "include", "apps/include" ], + "test/evp_xof_test" => [ + "include", + "apps/include" + ], "test/exdatatest" => [ "include", "apps/include" @@ -18901,22 +21966,62 @@ our %unified_info = ( ".", "include" ], + "test/helpers/json_test-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/helpers/pkcs12.o" => [ ".", "include" ], + "test/helpers/pkcs12_api_test-bin-pkcs12.o" => [ + ".", + "include" + ], "test/helpers/pkcs12_format_test-bin-pkcs12.o" => [ ".", "include" ], + "test/helpers/quic_multistream_test-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quic_newcid_test-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quic_radix_test-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quic_srt_gen_test-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quicapitest-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quicfaultstest-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/helpers/recordlentest-bin-ssltestlib.o" => [ ".", "include" ], + "test/helpers/rpktest-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/helpers/servername_test-bin-ssltestlib.o" => [ ".", "include" ], + "test/helpers/ssl_handshake_rtt_test-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/helpers/ssl_test-bin-handshake.o" => [ ".", "include" @@ -18950,6 +22055,10 @@ our %unified_info = ( ".", "include" ], + "test/helpers/tls13groupselection_test-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/hexstr_test" => [ ".", "include", @@ -18959,6 +22068,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/hpke_test" => [ + "include", + "apps/include" + ], "test/http_test" => [ "include", "apps/include" @@ -18971,6 +22084,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/json_test" => [ + "include", + "apps/include" + ], "test/keymgmt_internal_test" => [ ".", "include", @@ -18985,6 +22102,10 @@ our %unified_info = ( "apps/include", "." ], + "test/list_test" => [ + "include", + "apps/include" + ], "test/localetest" => [ "include", "apps/include" @@ -18998,10 +22119,27 @@ our %unified_info = ( "include", "apps/include" ], + "test/membio_test" => [ + "include", + "apps/include", + "." + ], "test/memleaktest" => [ "include", "apps/include" ], + "test/ml_dsa_test" => [ + "include", + "apps/include" + ], + "test/ml_kem_evp_extra_test" => [ + "include", + "apps/include" + ], + "test/ml_kem_internal_test" => [ + "include", + "apps/include" + ], "test/modes_internal_test" => [ ".", "include", @@ -19036,6 +22174,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/pairwise_fail_test" => [ + "include", + "apps/include" + ], "test/param_build_test" => [ "include", "apps/include" @@ -19069,6 +22211,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/pkcs12_api_test" => [ + "include", + "apps/include" + ], "test/pkcs12_format_test" => [ "include", "apps/include" @@ -19090,6 +22236,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/priority_queue_test" => [ + "include", + "apps/include" + ], "test/property_test" => [ ".", "include", @@ -19103,6 +22253,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/provider_default_search_path_test" => [ + "include", + "apps/include" + ], "test/provider_fallback_test" => [ "include", "apps/include" @@ -19129,6 +22283,97 @@ our %unified_info = ( "include", "apps/include" ], + "test/quic_ackm_test" => [ + "include", + "apps/include" + ], + "test/quic_cc_test" => [ + "include", + "apps/include" + ], + "test/quic_cfq_test" => [ + "include", + "apps/include" + ], + "test/quic_client_test" => [ + "include", + "apps/include" + ], + "test/quic_fc_test" => [ + "include", + "apps/include" + ], + "test/quic_fifd_test" => [ + "include", + "apps/include" + ], + "test/quic_lcidm_test" => [ + "include", + "apps/include" + ], + "test/quic_multistream_test" => [ + "include", + "apps/include" + ], + "test/quic_newcid_test" => [ + "include", + "apps/include", + "." + ], + "test/quic_qlog_test" => [ + "include", + "apps/include" + ], + "test/quic_radix_test" => [ + "include", + "apps/include" + ], + "test/quic_rcidm_test" => [ + "include", + "apps/include" + ], + "test/quic_record_test" => [ + "include", + "apps/include" + ], + "test/quic_srt_gen_test" => [ + "include", + "apps/include", + "." + ], + "test/quic_srtm_test" => [ + "include", + "apps/include" + ], + "test/quic_stream_test" => [ + "include", + "apps/include" + ], + "test/quic_tserver_test" => [ + "include", + "apps/include" + ], + "test/quic_txp_test" => [ + "include", + "apps/include" + ], + "test/quic_txpim_test" => [ + "include", + "apps/include" + ], + "test/quic_wire_test" => [ + "include", + "apps/include" + ], + "test/quicapitest" => [ + "include", + "apps/include" + ], + "test/quicfaultstest" => [ + "include", + "apps/include", + "." + ], "test/rand_status_test" => [ "include", "apps/include" @@ -19149,14 +22394,20 @@ our %unified_info = ( "include", "apps/include" ], - "test/rdrand_sanitytest" => [ + "test/rdcpu_sanitytest" => [ "include", - "apps/include" + "apps/include", + "crypto" ], "test/recordlentest" => [ "include", "apps/include" ], + "test/rpktest" => [ + "include", + "apps/include", + "." + ], "test/rsa_complex" => [ "include", "apps/include" @@ -19175,6 +22426,15 @@ our %unified_info = ( "include", "apps/include" ], + "test/rsa_x931_test" => [ + ".", + "include", + "apps/include" + ], + "test/safe_math_test" => [ + "include", + "apps/include" + ], "test/sanitytest" => [ "include", "apps/include" @@ -19196,6 +22456,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/slh_dsa_test" => [ + "include", + "apps/include" + ], "test/sm2_internal_test" => [ "include", "apps/include" @@ -19226,6 +22490,11 @@ our %unified_info = ( "include", "apps/include" ], + "test/ssl_handshake_rtt_test" => [ + "include", + "apps/include", + "." + ], "test/ssl_old_test" => [ ".", "include", @@ -19242,6 +22511,7 @@ our %unified_info = ( "test/sslapitest" => [ "include", "apps/include", + "providers/common/include", "." ], "test/sslbuffertest" => [ @@ -19256,6 +22526,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/strtoultest" => [ + "include", + "apps/include" + ], "test/sysdefaulttest" => [ "include", "apps/include" @@ -19264,7 +22538,13 @@ our %unified_info = ( "include", "apps/include" ], + "test/threadpool_test" => [ + ".", + "include", + "apps/include" + ], "test/threadstest" => [ + ".", "include", "apps/include" ], @@ -19276,6 +22556,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/time_test" => [ + "include", + "apps/include" + ], "test/tls13ccstest" => [ "include", "apps/include" @@ -19285,6 +22569,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/tls13groupselection_test" => [ + "include", + "apps/include" + ], "test/trace_api_test" => [ ".", "include", @@ -19323,6 +22611,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/x509_acert_test" => [ + "include", + "apps/include" + ], "test/x509_check_cert_pkey_test" => [ "include", "apps/include" @@ -19336,6 +22628,18 @@ our %unified_info = ( "include", "apps/include" ], + "test/x509_load_cert_file_test" => [ + "include", + "apps/include" + ], + "test/x509_req_test" => [ + "include", + "apps/include" + ], + "test/x509_test" => [ + "include", + "apps/include" + ], "test/x509_time_test" => [ "include", "apps/include" @@ -19357,6 +22661,7 @@ our %unified_info = ( "providers/libdefault.a", "providers/libfips.a", "providers/liblegacy.a", + "providers/libtemplate.a", "test/libtestutil.a" ], "mandocs" => { @@ -19409,6 +22714,7 @@ our %unified_info = ( "doc/man/man1/openssl-s_server.1", "doc/man/man1/openssl-s_time.1", "doc/man/man1/openssl-sess_id.1", + "doc/man/man1/openssl-skeyutl.1", "doc/man/man1/openssl-smime.1", "doc/man/man1/openssl-speed.1", "doc/man/man1/openssl-spkac.1", @@ -19458,6 +22764,7 @@ our %unified_info = ( "doc/man/man3/BIO_find_type.3", "doc/man/man3/BIO_get_data.3", "doc/man/man3/BIO_get_ex_new_index.3", + "doc/man/man3/BIO_get_rpoll_descriptor.3", "doc/man/man3/BIO_meth_new.3", "doc/man/man3/BIO_new.3", "doc/man/man3/BIO_new_CMS.3", @@ -19470,11 +22777,13 @@ our %unified_info = ( "doc/man/man3/BIO_s_connect.3", "doc/man/man3/BIO_s_core.3", "doc/man/man3/BIO_s_datagram.3", + "doc/man/man3/BIO_s_dgram_pair.3", "doc/man/man3/BIO_s_fd.3", "doc/man/man3/BIO_s_file.3", "doc/man/man3/BIO_s_mem.3", "doc/man/man3/BIO_s_null.3", "doc/man/man3/BIO_s_socket.3", + "doc/man/man3/BIO_sendmmsg.3", "doc/man/man3/BIO_set_callback.3", "doc/man/man3/BIO_should_retry.3", "doc/man/man3/BIO_socket_wait.3", @@ -19499,6 +22808,7 @@ our %unified_info = ( "doc/man/man3/BN_swap.3", "doc/man/man3/BN_zero.3", "doc/man/man3/BUF_MEM_new.3", + "doc/man/man3/CMAC_CTX.3", "doc/man/man3/CMS_EncryptedData_decrypt.3", "doc/man/man3/CMS_EncryptedData_encrypt.3", "doc/man/man3/CMS_EnvelopedData_create.3", @@ -19521,6 +22831,7 @@ our %unified_info = ( "doc/man/man3/CMS_uncompress.3", "doc/man/man3/CMS_verify.3", "doc/man/man3/CMS_verify_receipt.3", + "doc/man/man3/COMP_CTX_new.3", "doc/man/man3/CONF_modules_free.3", "doc/man/man3/CONF_modules_load_file.3", "doc/man/man3/CRYPTO_THREAD_run_once.3", @@ -19554,6 +22865,8 @@ our %unified_info = ( "doc/man/man3/DSA_size.3", "doc/man/man3/DTLS_get_data_mtu.3", "doc/man/man3/DTLS_set_timer_cb.3", + "doc/man/man3/DTLSv1_get_timeout.3", + "doc/man/man3/DTLSv1_handle_timeout.3", "doc/man/man3/DTLSv1_listen.3", "doc/man/man3/ECDSA_SIG_new.3", "doc/man/man3/ECDSA_sign.3", @@ -19600,6 +22913,7 @@ our %unified_info = ( "doc/man/man3/EVP_PKEY_CTX_ctrl.3", "doc/man/man3/EVP_PKEY_CTX_get0_libctx.3", "doc/man/man3/EVP_PKEY_CTX_get0_pkey.3", + "doc/man/man3/EVP_PKEY_CTX_get_algor.3", "doc/man/man3/EVP_PKEY_CTX_new.3", "doc/man/man3/EVP_PKEY_CTX_set1_pbe_pass.3", "doc/man/man3/EVP_PKEY_CTX_set_hkdf_md.3", @@ -19639,6 +22953,8 @@ our %unified_info = ( "doc/man/man3/EVP_PKEY_verify_recover.3", "doc/man/man3/EVP_RAND.3", "doc/man/man3/EVP_SIGNATURE.3", + "doc/man/man3/EVP_SKEY.3", + "doc/man/man3/EVP_SKEYMGMT.3", "doc/man/man3/EVP_SealInit.3", "doc/man/man3/EVP_SignInit.3", "doc/man/man3/EVP_VerifyInit.3", @@ -19668,6 +22984,7 @@ our %unified_info = ( "doc/man/man3/EVP_sm3.3", "doc/man/man3/EVP_sm4_cbc.3", "doc/man/man3/EVP_whirlpool.3", + "doc/man/man3/GENERAL_NAME.3", "doc/man/man3/HMAC.3", "doc/man/man3/MD5.3", "doc/man/man3/MDC2_Init.3", @@ -19692,14 +23009,18 @@ our %unified_info = ( "doc/man/man3/OPENSSL_init_ssl.3", "doc/man/man3/OPENSSL_instrument_bus.3", "doc/man/man3/OPENSSL_load_builtin_modules.3", + "doc/man/man3/OPENSSL_load_u16_le.3", "doc/man/man3/OPENSSL_malloc.3", + "doc/man/man3/OPENSSL_riscvcap.3", "doc/man/man3/OPENSSL_s390xcap.3", "doc/man/man3/OPENSSL_secure_malloc.3", "doc/man/man3/OPENSSL_strcasecmp.3", "doc/man/man3/OSSL_ALGORITHM.3", "doc/man/man3/OSSL_CALLBACK.3", + "doc/man/man3/OSSL_CMP_ATAV_set0.3", "doc/man/man3/OSSL_CMP_CTX_new.3", "doc/man/man3/OSSL_CMP_HDR_get0_transactionID.3", + "doc/man/man3/OSSL_CMP_ITAV_new_caCerts.3", "doc/man/man3/OSSL_CMP_ITAV_set0.3", "doc/man/man3/OSSL_CMP_MSG_get0_header.3", "doc/man/man3/OSSL_CMP_MSG_http_perform.3", @@ -19723,18 +23044,27 @@ our %unified_info = ( "doc/man/man3/OSSL_ENCODER_CTX.3", "doc/man/man3/OSSL_ENCODER_CTX_new_for_pkey.3", "doc/man/man3/OSSL_ENCODER_to_bio.3", + "doc/man/man3/OSSL_ERR_STATE_save.3", "doc/man/man3/OSSL_ESS_check_signing_certs.3", + "doc/man/man3/OSSL_GENERAL_NAMES_print.3", + "doc/man/man3/OSSL_HPKE_CTX_new.3", "doc/man/man3/OSSL_HTTP_REQ_CTX.3", "doc/man/man3/OSSL_HTTP_parse_url.3", "doc/man/man3/OSSL_HTTP_transfer.3", + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX.3", + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX_print.3", + "doc/man/man3/OSSL_INDICATOR_set_callback.3", "doc/man/man3/OSSL_ITEM.3", "doc/man/man3/OSSL_LIB_CTX.3", + "doc/man/man3/OSSL_LIB_CTX_set_conf_diagnostics.3", "doc/man/man3/OSSL_PARAM.3", "doc/man/man3/OSSL_PARAM_BLD.3", "doc/man/man3/OSSL_PARAM_allocate_from_text.3", "doc/man/man3/OSSL_PARAM_dup.3", "doc/man/man3/OSSL_PARAM_int.3", + "doc/man/man3/OSSL_PARAM_print_to_bio.3", "doc/man/man3/OSSL_PROVIDER.3", + "doc/man/man3/OSSL_QUIC_client_method.3", "doc/man/man3/OSSL_SELF_TEST_new.3", "doc/man/man3/OSSL_SELF_TEST_set_callback.3", "doc/man/man3/OSSL_STORE_INFO.3", @@ -19743,11 +23073,13 @@ our %unified_info = ( "doc/man/man3/OSSL_STORE_attach.3", "doc/man/man3/OSSL_STORE_expect.3", "doc/man/man3/OSSL_STORE_open.3", + "doc/man/man3/OSSL_sleep.3", "doc/man/man3/OSSL_trace_enabled.3", "doc/man/man3/OSSL_trace_get_category_num.3", "doc/man/man3/OSSL_trace_set_channel.3", "doc/man/man3/OpenSSL_add_all_algorithms.3", "doc/man/man3/OpenSSL_version.3", + "doc/man/man3/PBMAC1_get1_pbkdf2_param.3", "doc/man/man3/PEM_X509_INFO_read_bio_ex.3", "doc/man/man3/PEM_bytes_read_bio.3", "doc/man/man3/PEM_read.3", @@ -19760,6 +23092,7 @@ our %unified_info = ( "doc/man/man3/PKCS12_SAFEBAG_create_cert.3", "doc/man/man3/PKCS12_SAFEBAG_get0_attrs.3", "doc/man/man3/PKCS12_SAFEBAG_get1_cert.3", + "doc/man/man3/PKCS12_SAFEBAG_set0_attrs.3", "doc/man/man3/PKCS12_add1_attr_by_NID.3", "doc/man/man3/PKCS12_add_CSPName_asc.3", "doc/man/man3/PKCS12_add_cert.3", @@ -19851,6 +23184,7 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_sess_set_get_cb.3", "doc/man/man3/SSL_CTX_sessions.3", "doc/man/man3/SSL_CTX_set0_CA_list.3", + "doc/man/man3/SSL_CTX_set1_cert_comp_preference.3", "doc/man/man3/SSL_CTX_set1_curves.3", "doc/man/man3/SSL_CTX_set1_sigalgs.3", "doc/man/man3/SSL_CTX_set1_verify_cert_store.3", @@ -19864,6 +23198,7 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_ct_validation_callback.3", "doc/man/man3/SSL_CTX_set_ctlog_list_file.3", "doc/man/man3/SSL_CTX_set_default_passwd_cb.3", + "doc/man/man3/SSL_CTX_set_domain_flags.3", "doc/man/man3/SSL_CTX_set_generate_session_id.3", "doc/man/man3/SSL_CTX_set_info_callback.3", "doc/man/man3/SSL_CTX_set_keylog_callback.3", @@ -19871,6 +23206,7 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_min_proto_version.3", "doc/man/man3/SSL_CTX_set_mode.3", "doc/man/man3/SSL_CTX_set_msg_callback.3", + "doc/man/man3/SSL_CTX_set_new_pending_conn_cb.3", "doc/man/man3/SSL_CTX_set_num_tickets.3", "doc/man/man3/SSL_CTX_set_options.3", "doc/man/man3/SSL_CTX_set_psk_client_callback.3", @@ -19909,6 +23245,7 @@ our %unified_info = ( "doc/man/man3/SSL_SESSION_print.3", "doc/man/man3/SSL_SESSION_set1_id.3", "doc/man/man3/SSL_accept.3", + "doc/man/man3/SSL_accept_stream.3", "doc/man/man3/SSL_alert_type_string.3", "doc/man/man3/SSL_alloc_buffers.3", "doc/man/man3/SSL_check_chain.3", @@ -19918,59 +23255,90 @@ our %unified_info = ( "doc/man/man3/SSL_export_keying_material.3", "doc/man/man3/SSL_extension_supported.3", "doc/man/man3/SSL_free.3", + "doc/man/man3/SSL_get0_connection.3", + "doc/man/man3/SSL_get0_group_name.3", + "doc/man/man3/SSL_get0_peer_rpk.3", "doc/man/man3/SSL_get0_peer_scts.3", + "doc/man/man3/SSL_get1_builtin_sigalgs.3", "doc/man/man3/SSL_get_SSL_CTX.3", "doc/man/man3/SSL_get_all_async_fds.3", "doc/man/man3/SSL_get_certificate.3", "doc/man/man3/SSL_get_ciphers.3", "doc/man/man3/SSL_get_client_random.3", + "doc/man/man3/SSL_get_conn_close_info.3", "doc/man/man3/SSL_get_current_cipher.3", "doc/man/man3/SSL_get_default_timeout.3", "doc/man/man3/SSL_get_error.3", + "doc/man/man3/SSL_get_event_timeout.3", "doc/man/man3/SSL_get_extms_support.3", "doc/man/man3/SSL_get_fd.3", + "doc/man/man3/SSL_get_handshake_rtt.3", "doc/man/man3/SSL_get_peer_cert_chain.3", "doc/man/man3/SSL_get_peer_certificate.3", "doc/man/man3/SSL_get_peer_signature_nid.3", "doc/man/man3/SSL_get_peer_tmp_key.3", "doc/man/man3/SSL_get_psk_identity.3", "doc/man/man3/SSL_get_rbio.3", + "doc/man/man3/SSL_get_rpoll_descriptor.3", "doc/man/man3/SSL_get_session.3", "doc/man/man3/SSL_get_shared_sigalgs.3", + "doc/man/man3/SSL_get_stream_id.3", + "doc/man/man3/SSL_get_stream_read_state.3", + "doc/man/man3/SSL_get_value_uint.3", "doc/man/man3/SSL_get_verify_result.3", "doc/man/man3/SSL_get_version.3", "doc/man/man3/SSL_group_to_name.3", + "doc/man/man3/SSL_handle_events.3", "doc/man/man3/SSL_in_init.3", + "doc/man/man3/SSL_inject_net_dgram.3", "doc/man/man3/SSL_key_update.3", "doc/man/man3/SSL_library_init.3", "doc/man/man3/SSL_load_client_CA_file.3", "doc/man/man3/SSL_new.3", + "doc/man/man3/SSL_new_domain.3", + "doc/man/man3/SSL_new_listener.3", + "doc/man/man3/SSL_new_stream.3", "doc/man/man3/SSL_pending.3", + "doc/man/man3/SSL_poll.3", "doc/man/man3/SSL_read.3", "doc/man/man3/SSL_read_early_data.3", "doc/man/man3/SSL_rstate_string.3", "doc/man/man3/SSL_session_reused.3", "doc/man/man3/SSL_set1_host.3", + "doc/man/man3/SSL_set1_initial_peer_addr.3", + "doc/man/man3/SSL_set1_server_cert_type.3", "doc/man/man3/SSL_set_async_callback.3", "doc/man/man3/SSL_set_bio.3", + "doc/man/man3/SSL_set_blocking_mode.3", "doc/man/man3/SSL_set_connect_state.3", + "doc/man/man3/SSL_set_default_stream_mode.3", "doc/man/man3/SSL_set_fd.3", + "doc/man/man3/SSL_set_incoming_stream_policy.3", + "doc/man/man3/SSL_set_quic_tls_cbs.3", "doc/man/man3/SSL_set_retry_verify.3", "doc/man/man3/SSL_set_session.3", + "doc/man/man3/SSL_set_session_secret_cb.3", "doc/man/man3/SSL_set_shutdown.3", "doc/man/man3/SSL_set_verify_result.3", "doc/man/man3/SSL_shutdown.3", "doc/man/man3/SSL_state_string.3", + "doc/man/man3/SSL_stream_conclude.3", + "doc/man/man3/SSL_stream_reset.3", "doc/man/man3/SSL_want.3", "doc/man/man3/SSL_write.3", "doc/man/man3/TS_RESP_CTX_new.3", - "doc/man/man3/TS_VERIFY_CTX_set_certs.3", + "doc/man/man3/TS_VERIFY_CTX.3", "doc/man/man3/UI_STRING.3", "doc/man/man3/UI_UTIL_read_pw.3", "doc/man/man3/UI_create_method.3", "doc/man/man3/UI_new.3", "doc/man/man3/X509V3_get_d2i.3", "doc/man/man3/X509V3_set_ctx.3", + "doc/man/man3/X509_ACERT_add1_attr.3", + "doc/man/man3/X509_ACERT_add_attr_nconf.3", + "doc/man/man3/X509_ACERT_get0_holder_baseCertId.3", + "doc/man/man3/X509_ACERT_get_attr.3", + "doc/man/man3/X509_ACERT_print_ex.3", "doc/man/man3/X509_ALGOR_dup.3", "doc/man/man3/X509_ATTRIBUTE.3", "doc/man/man3/X509_CRL_get0_by_serial.3", @@ -19987,6 +23355,7 @@ our %unified_info = ( "doc/man/man3/X509_REQ_get_attr.3", "doc/man/man3/X509_REQ_get_extensions.3", "doc/man/man3/X509_SIG_get0.3", + "doc/man/man3/X509_STORE_CTX_get_by_subject.3", "doc/man/man3/X509_STORE_CTX_get_error.3", "doc/man/man3/X509_STORE_CTX_new.3", "doc/man/man3/X509_STORE_CTX_set_verify_cb.3", @@ -20009,6 +23378,7 @@ our %unified_info = ( "doc/man/man3/X509_get0_notBefore.3", "doc/man/man3/X509_get0_signature.3", "doc/man/man3/X509_get0_uids.3", + "doc/man/man3/X509_get_default_cert_file.3", "doc/man/man3/X509_get_extension_flags.3", "doc/man/man3/X509_get_pubkey.3", "doc/man/man3/X509_get_serialNumber.3", @@ -20054,12 +23424,15 @@ our %unified_info = ( "doc/man/man7/EVP_CIPHER-RC5.7", "doc/man/man7/EVP_CIPHER-SEED.7", "doc/man/man7/EVP_CIPHER-SM4.7", + "doc/man/man7/EVP_KDF-ARGON2.7", "doc/man/man7/EVP_KDF-HKDF.7", + "doc/man/man7/EVP_KDF-HMAC-DRBG.7", "doc/man/man7/EVP_KDF-KB.7", "doc/man/man7/EVP_KDF-KRB5KDF.7", "doc/man/man7/EVP_KDF-PBKDF1.7", "doc/man/man7/EVP_KDF-PBKDF2.7", "doc/man/man7/EVP_KDF-PKCS12KDF.7", + "doc/man/man7/EVP_KDF-PVKKDF.7", "doc/man/man7/EVP_KDF-SCRYPT.7", "doc/man/man7/EVP_KDF-SS.7", "doc/man/man7/EVP_KDF-SSHKDF.7", @@ -20068,7 +23441,10 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-X942-ASN1.7", "doc/man/man7/EVP_KDF-X942-CONCAT.7", "doc/man/man7/EVP_KDF-X963.7", + "doc/man/man7/EVP_KEM-EC.7", + "doc/man/man7/EVP_KEM-ML-KEM.7", "doc/man/man7/EVP_KEM-RSA.7", + "doc/man/man7/EVP_KEM-X25519.7", "doc/man/man7/EVP_KEYEXCH-DH.7", "doc/man/man7/EVP_KEYEXCH-ECDH.7", "doc/man/man7/EVP_KEYEXCH-X25519.7", @@ -20080,6 +23456,7 @@ our %unified_info = ( "doc/man/man7/EVP_MAC-Poly1305.7", "doc/man/man7/EVP_MAC-Siphash.7", "doc/man/man7/EVP_MD-BLAKE2.7", + "doc/man/man7/EVP_MD-KECCAK.7", "doc/man/man7/EVP_MD-MD2.7", "doc/man/man7/EVP_MD-MD4.7", "doc/man/man7/EVP_MD-MD5-SHA1.7", @@ -20099,12 +23476,17 @@ our %unified_info = ( "doc/man/man7/EVP_PKEY-EC.7", "doc/man/man7/EVP_PKEY-FFC.7", "doc/man/man7/EVP_PKEY-HMAC.7", + "doc/man/man7/EVP_PKEY-ML-DSA.7", + "doc/man/man7/EVP_PKEY-ML-KEM.7", "doc/man/man7/EVP_PKEY-RSA.7", + "doc/man/man7/EVP_PKEY-SLH-DSA.7", "doc/man/man7/EVP_PKEY-SM2.7", "doc/man/man7/EVP_PKEY-X25519.7", + "doc/man/man7/EVP_RAND-CRNG-TEST.7", "doc/man/man7/EVP_RAND-CTR-DRBG.7", "doc/man/man7/EVP_RAND-HASH-DRBG.7", "doc/man/man7/EVP_RAND-HMAC-DRBG.7", + "doc/man/man7/EVP_RAND-JITTER.7", "doc/man/man7/EVP_RAND-SEED-SRC.7", "doc/man/man7/EVP_RAND-TEST-RAND.7", "doc/man/man7/EVP_RAND.7", @@ -20112,17 +23494,19 @@ our %unified_info = ( "doc/man/man7/EVP_SIGNATURE-ECDSA.7", "doc/man/man7/EVP_SIGNATURE-ED25519.7", "doc/man/man7/EVP_SIGNATURE-HMAC.7", + "doc/man/man7/EVP_SIGNATURE-ML-DSA.7", "doc/man/man7/EVP_SIGNATURE-RSA.7", + "doc/man/man7/EVP_SIGNATURE-SLH-DSA.7", "doc/man/man7/OSSL_PROVIDER-FIPS.7", "doc/man/man7/OSSL_PROVIDER-base.7", "doc/man/man7/OSSL_PROVIDER-default.7", "doc/man/man7/OSSL_PROVIDER-legacy.7", "doc/man/man7/OSSL_PROVIDER-null.7", + "doc/man/man7/OSSL_STORE-winstore.7", "doc/man/man7/RAND.7", "doc/man/man7/RSA-PSS.7", "doc/man/man7/X25519.7", "doc/man/man7/bio.7", - "doc/man/man7/crypto.7", "doc/man/man7/ct.7", "doc/man/man7/des_modes.7", "doc/man/man7/evp.7", @@ -20133,14 +23517,31 @@ our %unified_info = ( "doc/man/man7/life_cycle-mac.7", "doc/man/man7/life_cycle-pkey.7", "doc/man/man7/life_cycle-rand.7", - "doc/man/man7/migration_guide.7", "doc/man/man7/openssl-core.h.7", "doc/man/man7/openssl-core_dispatch.h.7", "doc/man/man7/openssl-core_names.h.7", "doc/man/man7/openssl-env.7", "doc/man/man7/openssl-glossary.7", + "doc/man/man7/openssl-qlog.7", + "doc/man/man7/openssl-quic-concurrency.7", + "doc/man/man7/openssl-quic.7", "doc/man/man7/openssl-threads.7", "doc/man/man7/openssl_user_macros.7", + "doc/man/man7/ossl-guide-introduction.7", + "doc/man/man7/ossl-guide-libcrypto-introduction.7", + "doc/man/man7/ossl-guide-libraries-introduction.7", + "doc/man/man7/ossl-guide-libssl-introduction.7", + "doc/man/man7/ossl-guide-migration.7", + "doc/man/man7/ossl-guide-quic-client-block.7", + "doc/man/man7/ossl-guide-quic-client-non-block.7", + "doc/man/man7/ossl-guide-quic-introduction.7", + "doc/man/man7/ossl-guide-quic-multi-stream.7", + "doc/man/man7/ossl-guide-quic-server-block.7", + "doc/man/man7/ossl-guide-quic-server-non-block.7", + "doc/man/man7/ossl-guide-tls-client-block.7", + "doc/man/man7/ossl-guide-tls-client-non-block.7", + "doc/man/man7/ossl-guide-tls-introduction.7", + "doc/man/man7/ossl-guide-tls-server-block.7", "doc/man/man7/ossl_store-file.7", "doc/man/man7/ossl_store.7", "doc/man/man7/passphrase-encoding.7", @@ -20159,10 +23560,10 @@ our %unified_info = ( "doc/man/man7/provider-object.7", "doc/man/man7/provider-rand.7", "doc/man/man7/provider-signature.7", + "doc/man/man7/provider-skeymgmt.7", "doc/man/man7/provider-storemgmt.7", "doc/man/man7/provider.7", "doc/man/man7/proxy-certificates.7", - "doc/man/man7/ssl.7", "doc/man/man7/x509.7" ] }, @@ -20174,6 +23575,7 @@ our %unified_info = ( ], "programs" => [ "apps/openssl", + "fuzz/acert-test", "fuzz/asn1-test", "fuzz/asn1parse-test", "fuzz/bignum-test", @@ -20184,7 +23586,24 @@ our %unified_info = ( "fuzz/conf-test", "fuzz/crl-test", "fuzz/ct-test", + "fuzz/decoder-test", + "fuzz/dtlsclient-test", + "fuzz/dtlsserver-test", + "fuzz/hashtable-test", + "fuzz/ml-dsa-test", + "fuzz/ml-kem-test", + "fuzz/pem-test", + "fuzz/provider-test", + "fuzz/punycode-test", + "fuzz/quic-client-test", + "fuzz/quic-lcidm-test", + "fuzz/quic-rcidm-test", + "fuzz/quic-server-test", + "fuzz/quic-srtm-test", "fuzz/server-test", + "fuzz/slh-dsa-test", + "fuzz/smime-test", + "fuzz/v3name-test", "fuzz/x509-test", "test/aborttest", "test/acvp_test", @@ -20202,21 +23621,28 @@ our %unified_info = ( "test/asynctest", "test/bad_dtls_test", "test/bftest", + "test/bio_addr_test", + "test/bio_base64_test", "test/bio_callback_test", "test/bio_core_test", + "test/bio_dgram_test", "test/bio_enc_test", "test/bio_memleak_test", + "test/bio_meth_test", "test/bio_prefix_text", "test/bio_pw_callback_test", "test/bio_readbuffer_test", + "test/bio_tfo_test", "test/bioprinttest", "test/bn_internal_test", "test/bntest", + "test/build_wincrypt_test", "test/buildtest_c_aes", "test/buildtest_c_async", "test/buildtest_c_blowfish", "test/buildtest_c_bn", "test/buildtest_c_buffer", + "test/buildtest_c_byteorder", "test/buildtest_c_camellia", "test/buildtest_c_cast", "test/buildtest_c_cmac", @@ -20225,7 +23651,6 @@ our %unified_info = ( "test/buildtest_c_conftypes", "test/buildtest_c_core", "test/buildtest_c_core_dispatch", - "test/buildtest_c_core_names", "test/buildtest_c_core_object", "test/buildtest_c_cryptoerr_legacy", "test/buildtest_c_decoder", @@ -20234,6 +23659,7 @@ our %unified_info = ( "test/buildtest_c_dsa", "test/buildtest_c_dtls1", "test/buildtest_c_e_os2", + "test/buildtest_c_e_ostime", "test/buildtest_c_ebcdic", "test/buildtest_c_ec", "test/buildtest_c_ecdh", @@ -20243,13 +23669,16 @@ our %unified_info = ( "test/buildtest_c_evp", "test/buildtest_c_fips_names", "test/buildtest_c_hmac", + "test/buildtest_c_hpke", "test/buildtest_c_http", "test/buildtest_c_idea", + "test/buildtest_c_indicator", "test/buildtest_c_kdf", "test/buildtest_c_macros", "test/buildtest_c_md4", "test/buildtest_c_md5", "test/buildtest_c_mdc2", + "test/buildtest_c_ml_kem", "test/buildtest_c_modes", "test/buildtest_c_obj_mac", "test/buildtest_c_objects", @@ -20260,6 +23689,7 @@ our %unified_info = ( "test/buildtest_c_pem2", "test/buildtest_c_prov_ssl", "test/buildtest_c_provider", + "test/buildtest_c_quic", "test/buildtest_c_rand", "test/buildtest_c_rc2", "test/buildtest_c_rc4", @@ -20274,11 +23704,14 @@ our %unified_info = ( "test/buildtest_c_stack", "test/buildtest_c_store", "test/buildtest_c_symhacks", + "test/buildtest_c_thread", "test/buildtest_c_tls1", "test/buildtest_c_ts", "test/buildtest_c_txt_db", "test/buildtest_c_types", "test/buildtest_c_whrlpool", + "test/byteorder_test", + "test/ca_internals_test", "test/casttest", "test/chacha_internal_test", "test/cipher_overhead_test", @@ -20307,6 +23740,7 @@ our %unified_info = ( "test/curve448_internal_test", "test/d2i_test", "test/danetest", + "test/decoder_propq_test", "test/defltfips_test", "test/destest", "test/dhtest", @@ -20331,9 +23765,12 @@ our %unified_info = ( "test/evp_kdf_test", "test/evp_libctx_test", "test/evp_pkey_ctx_new_from_name", + "test/evp_pkey_dhkem_test", "test/evp_pkey_dparams_test", "test/evp_pkey_provided_test", + "test/evp_skey_test", "test/evp_test", + "test/evp_xof_test", "test/exdatatest", "test/exptest", "test/ext_internal_test", @@ -20343,21 +23780,29 @@ our %unified_info = ( "test/gmdifftest", "test/hexstr_test", "test/hmactest", + "test/hpke_test", "test/http_test", "test/ideatest", "test/igetest", + "test/json_test", "test/keymgmt_internal_test", "test/lhash_test", + "test/list_test", "test/localetest", "test/mdc2_internal_test", "test/mdc2test", + "test/membio_test", "test/memleaktest", + "test/ml_dsa_test", + "test/ml_kem_evp_extra_test", + "test/ml_kem_internal_test", "test/modes_internal_test", "test/namemap_internal_test", "test/nodefltctxtest", "test/ocspapitest", "test/ossl_store_test", "test/packettest", + "test/pairwise_fail_test", "test/param_build_test", "test/params_api_test", "test/params_conversion_test", @@ -20366,36 +23811,65 @@ our %unified_info = ( "test/pbetest", "test/pem_read_depr_test", "test/pemtest", + "test/pkcs12_api_test", "test/pkcs12_format_test", "test/pkcs7_test", "test/pkey_meth_kdf_test", "test/pkey_meth_test", "test/poly1305_internal_test", + "test/priority_queue_test", "test/property_test", "test/prov_config_test", "test/provfetchtest", + "test/provider_default_search_path_test", "test/provider_fallback_test", "test/provider_internal_test", "test/provider_pkey_test", "test/provider_status_test", "test/provider_test", "test/punycode_test", + "test/quic_ackm_test", + "test/quic_cc_test", + "test/quic_cfq_test", + "test/quic_client_test", + "test/quic_fc_test", + "test/quic_fifd_test", + "test/quic_lcidm_test", + "test/quic_multistream_test", + "test/quic_newcid_test", + "test/quic_qlog_test", + "test/quic_radix_test", + "test/quic_rcidm_test", + "test/quic_record_test", + "test/quic_srt_gen_test", + "test/quic_srtm_test", + "test/quic_stream_test", + "test/quic_tserver_test", + "test/quic_txp_test", + "test/quic_txpim_test", + "test/quic_wire_test", + "test/quicapitest", + "test/quicfaultstest", "test/rand_status_test", "test/rand_test", "test/rc2test", "test/rc4test", "test/rc5test", - "test/rdrand_sanitytest", + "test/rdcpu_sanitytest", "test/recordlentest", + "test/rpktest", "test/rsa_complex", "test/rsa_mp_test", "test/rsa_sp800_56b_test", "test/rsa_test", + "test/rsa_x931_test", + "test/safe_math_test", "test/sanitytest", "test/secmemtest", "test/servername_test", "test/sha_test", "test/siphash_internal_test", + "test/slh_dsa_test", "test/sm2_internal_test", "test/sm3_internal_test", "test/sm4_internal_test", @@ -20403,6 +23877,7 @@ our %unified_info = ( "test/srptest", "test/ssl_cert_table_internal_test", "test/ssl_ctx_test", + "test/ssl_handshake_rtt_test", "test/ssl_old_test", "test/ssl_test", "test/ssl_test_ctx_test", @@ -20410,13 +23885,17 @@ our %unified_info = ( "test/sslbuffertest", "test/sslcorrupttest", "test/stack_test", + "test/strtoultest", "test/sysdefaulttest", "test/test_test", + "test/threadpool_test", "test/threadstest", "test/threadstest_fips", "test/time_offset_test", + "test/time_test", "test/tls13ccstest", "test/tls13encryptiontest", + "test/tls13groupselection_test", "test/trace_api_test", "test/uitest", "test/upcallstest", @@ -20426,9 +23905,13 @@ our %unified_info = ( "test/verify_extra_test", "test/versions", "test/wpackettest", + "test/x509_acert_test", "test/x509_check_cert_pkey_test", "test/x509_dup_cert_test", "test/x509_internal_test", + "test/x509_load_cert_file_test", + "test/x509_req_test", + "test/x509_test", "test/x509_time_test", "test/x509aux" ], @@ -20444,6 +23927,33 @@ our %unified_info = ( "apps/CA.pl" => [ "apps/CA.pl.in" ], + "apps/ca_internals_test-bin-ca.o" => [ + "apps/ca.c" + ], + "apps/lib/ca_internals_test-bin-app_libctx.o" => [ + "apps/lib/app_libctx.c" + ], + "apps/lib/ca_internals_test-bin-app_provider.o" => [ + "apps/lib/app_provider.c" + ], + "apps/lib/ca_internals_test-bin-app_rand.o" => [ + "apps/lib/app_rand.c" + ], + "apps/lib/ca_internals_test-bin-app_x509.o" => [ + "apps/lib/app_x509.c" + ], + "apps/lib/ca_internals_test-bin-apps.o" => [ + "apps/lib/apps.c" + ], + "apps/lib/ca_internals_test-bin-apps_ui.o" => [ + "apps/lib/apps_ui.c" + ], + "apps/lib/ca_internals_test-bin-engine.o" => [ + "apps/lib/engine.c" + ], + "apps/lib/ca_internals_test-bin-fmt.o" => [ + "apps/lib/fmt.c" + ], "apps/lib/cmp_client_test-bin-cmp_mock_srv.o" => [ "apps/lib/cmp_mock_srv.c" ], @@ -20465,6 +23975,9 @@ our %unified_info = ( "apps/lib/libapps-lib-apps.o" => [ "apps/lib/apps.c" ], + "apps/lib/libapps-lib-apps_opt_printf.o" => [ + "apps/lib/apps_opt_printf.c" + ], "apps/lib/libapps-lib-apps_ui.o" => [ "apps/lib/apps_ui.c" ], @@ -20483,6 +23996,9 @@ our %unified_info = ( "apps/lib/libapps-lib-http_server.o" => [ "apps/lib/http_server.c" ], + "apps/lib/libapps-lib-log.o" => [ + "apps/lib/log.c" + ], "apps/lib/libapps-lib-names.o" => [ "apps/lib/names.c" ], @@ -20514,12 +24030,14 @@ our %unified_info = ( "apps/lib/libapps-lib-app_rand.o", "apps/lib/libapps-lib-app_x509.o", "apps/lib/libapps-lib-apps.o", + "apps/lib/libapps-lib-apps_opt_printf.o", "apps/lib/libapps-lib-apps_ui.o", "apps/lib/libapps-lib-columns.o", "apps/lib/libapps-lib-engine.o", "apps/lib/libapps-lib-engine_loader.o", "apps/lib/libapps-lib-fmt.o", "apps/lib/libapps-lib-http_server.o", + "apps/lib/libapps-lib-log.o", "apps/lib/libapps-lib-names.o", "apps/lib/libapps-lib-opt.o", "apps/lib/libapps-lib-s_cb.o", @@ -20573,6 +24091,7 @@ our %unified_info = ( "apps/openssl-bin-s_server.o", "apps/openssl-bin-s_time.o", "apps/openssl-bin-sess_id.o", + "apps/openssl-bin-skeyutl.o", "apps/openssl-bin-smime.o", "apps/openssl-bin-speed.o", "apps/openssl-bin-spkac.o", @@ -20718,6 +24237,9 @@ our %unified_info = ( "apps/openssl-bin-sess_id.o" => [ "apps/sess_id.c" ], + "apps/openssl-bin-skeyutl.o" => [ + "apps/skeyutl.c" + ], "apps/openssl-bin-smime.o" => [ "apps/smime.c" ], @@ -20775,6 +24297,9 @@ our %unified_info = ( "crypto/aes/libcrypto-lib-aesv8-armx.o" => [ "crypto/aes/aesv8-armx.S" ], + "crypto/aes/libcrypto-lib-bsaes-armv8.o" => [ + "crypto/aes/bsaes-armv8.S" + ], "crypto/aes/libcrypto-lib-vpaes-armv8.o" => [ "crypto/aes/vpaes-armv8.S" ], @@ -20793,12 +24318,21 @@ our %unified_info = ( "crypto/aes/libfips-lib-aesv8-armx.o" => [ "crypto/aes/aesv8-armx.S" ], + "crypto/aes/libfips-lib-bsaes-armv8.o" => [ + "crypto/aes/bsaes-armv8.S" + ], "crypto/aes/libfips-lib-vpaes-armv8.o" => [ "crypto/aes/vpaes-armv8.S" ], "crypto/aria/libcrypto-lib-aria.o" => [ "crypto/aria/aria.c" ], + "crypto/asn1/asn1_time_test-bin-a_time.o" => [ + "crypto/asn1/a_time.c" + ], + "crypto/asn1/ca_internals_test-bin-a_time.o" => [ + "crypto/asn1/a_time.c" + ], "crypto/asn1/libcrypto-lib-a_bitstr.o" => [ "crypto/asn1/a_bitstr.c" ], @@ -20991,6 +24525,9 @@ our %unified_info = ( "crypto/asn1/libcrypto-lib-x_val.o" => [ "crypto/asn1/x_val.c" ], + "crypto/asn1_time_test-bin-ctype.o" => [ + "crypto/ctype.c" + ], "crypto/async/arch/libcrypto-lib-async_null.o" => [ "crypto/async/arch/async_null.c" ], @@ -21084,6 +24621,9 @@ our %unified_info = ( "crypto/bio/libcrypto-lib-bss_dgram.o" => [ "crypto/bio/bss_dgram.c" ], + "crypto/bio/libcrypto-lib-bss_dgram_pair.o" => [ + "crypto/bio/bss_dgram_pair.c" + ], "crypto/bio/libcrypto-lib-bss_fd.o" => [ "crypto/bio/bss_fd.c" ], @@ -21303,6 +24843,9 @@ our %unified_info = ( "crypto/buffer/libfips-lib-buffer.o" => [ "crypto/buffer/buffer.c" ], + "crypto/ca_internals_test-bin-ctype.o" => [ + "crypto/ctype.c" + ], "crypto/camellia/libcrypto-lib-camellia.o" => [ "crypto/camellia/camellia.c" ], @@ -21339,6 +24882,9 @@ our %unified_info = ( "crypto/cast/libcrypto-lib-c_skey.o" => [ "crypto/cast/c_skey.c" ], + "crypto/chacha/libcrypto-lib-chacha-armv8-sve.o" => [ + "crypto/chacha/chacha-armv8-sve.S" + ], "crypto/chacha/libcrypto-lib-chacha-armv8.o" => [ "crypto/chacha/chacha-armv8.S" ], @@ -21360,6 +24906,9 @@ our %unified_info = ( "crypto/cmp/libcrypto-lib-cmp_err.o" => [ "crypto/cmp/cmp_err.c" ], + "crypto/cmp/libcrypto-lib-cmp_genm.o" => [ + "crypto/cmp/cmp_genm.c" + ], "crypto/cmp/libcrypto-lib-cmp_hdr.o" => [ "crypto/cmp/cmp_hdr.c" ], @@ -21855,6 +25404,15 @@ our %unified_info = ( "crypto/ec/libcrypto-lib-ecp_oct.o" => [ "crypto/ec/ecp_oct.c" ], + "crypto/ec/libcrypto-lib-ecp_sm2p256-armv8.o" => [ + "crypto/ec/ecp_sm2p256-armv8.S" + ], + "crypto/ec/libcrypto-lib-ecp_sm2p256.o" => [ + "crypto/ec/ecp_sm2p256.c" + ], + "crypto/ec/libcrypto-lib-ecp_sm2p256_table.o" => [ + "crypto/ec/ecp_sm2p256_table.c" + ], "crypto/ec/libcrypto-lib-ecp_smpl.o" => [ "crypto/ec/ecp_smpl.c" ], @@ -21936,6 +25494,15 @@ our %unified_info = ( "crypto/ec/libfips-lib-ecp_oct.o" => [ "crypto/ec/ecp_oct.c" ], + "crypto/ec/libfips-lib-ecp_sm2p256-armv8.o" => [ + "crypto/ec/ecp_sm2p256-armv8.S" + ], + "crypto/ec/libfips-lib-ecp_sm2p256.o" => [ + "crypto/ec/ecp_sm2p256.c" + ], + "crypto/ec/libfips-lib-ecp_sm2p256_table.o" => [ + "crypto/ec/ecp_sm2p256_table.c" + ], "crypto/ec/libfips-lib-ecp_smpl.o" => [ "crypto/ec/ecp_smpl.c" ], @@ -22047,9 +25614,15 @@ our %unified_info = ( "crypto/err/libcrypto-lib-err_blocks.o" => [ "crypto/err/err_blocks.c" ], + "crypto/err/libcrypto-lib-err_mark.o" => [ + "crypto/err/err_mark.c" + ], "crypto/err/libcrypto-lib-err_prn.o" => [ "crypto/err/err_prn.c" ], + "crypto/err/libcrypto-lib-err_save.o" => [ + "crypto/err/err_save.c" + ], "crypto/ess/libcrypto-lib-ess_asn1.o" => [ "crypto/ess/ess_asn1.c" ], @@ -22296,9 +25869,15 @@ our %unified_info = ( "crypto/evp/libcrypto-lib-pmeth_lib.o" => [ "crypto/evp/pmeth_lib.c" ], + "crypto/evp/libcrypto-lib-s_lib.o" => [ + "crypto/evp/s_lib.c" + ], "crypto/evp/libcrypto-lib-signature.o" => [ "crypto/evp/signature.c" ], + "crypto/evp/libcrypto-lib-skeymgmt_meth.o" => [ + "crypto/evp/skeymgmt_meth.c" + ], "crypto/evp/libfips-lib-asymcipher.o" => [ "crypto/evp/asymcipher.c" ], @@ -22344,9 +25923,6 @@ our %unified_info = ( "crypto/evp/libfips-lib-keymgmt_meth.o" => [ "crypto/evp/keymgmt_meth.c" ], - "crypto/evp/libfips-lib-m_sigver.o" => [ - "crypto/evp/m_sigver.c" - ], "crypto/evp/libfips-lib-mac_lib.o" => [ "crypto/evp/mac_lib.c" ], @@ -22365,9 +25941,15 @@ our %unified_info = ( "crypto/evp/libfips-lib-pmeth_lib.o" => [ "crypto/evp/pmeth_lib.c" ], + "crypto/evp/libfips-lib-s_lib.o" => [ + "crypto/evp/s_lib.c" + ], "crypto/evp/libfips-lib-signature.o" => [ "crypto/evp/signature.c" ], + "crypto/evp/libfips-lib-skeymgmt_meth.o" => [ + "crypto/evp/skeymgmt_meth.c" + ], "crypto/ffc/libcrypto-lib-ffc_backend.o" => [ "crypto/ffc/ffc_backend.c" ], @@ -22410,12 +25992,30 @@ our %unified_info = ( "crypto/ffc/libfips-lib-ffc_params_validate.o" => [ "crypto/ffc/ffc_params_validate.c" ], + "crypto/hashtable/libcrypto-lib-hashfunc.o" => [ + "crypto/hashtable/hashfunc.c" + ], + "crypto/hashtable/libcrypto-lib-hashtable.o" => [ + "crypto/hashtable/hashtable.c" + ], + "crypto/hashtable/libfips-lib-hashfunc.o" => [ + "crypto/hashtable/hashfunc.c" + ], + "crypto/hashtable/libfips-lib-hashtable.o" => [ + "crypto/hashtable/hashtable.c" + ], "crypto/hmac/libcrypto-lib-hmac.o" => [ "crypto/hmac/hmac.c" ], "crypto/hmac/libfips-lib-hmac.o" => [ "crypto/hmac/hmac.c" ], + "crypto/hpke/libcrypto-lib-hpke.o" => [ + "crypto/hpke/hpke.c" + ], + "crypto/hpke/libcrypto-lib-hpke_util.o" => [ + "crypto/hpke/hpke_util.c" + ], "crypto/http/libcrypto-lib-http_client.o" => [ "crypto/http/http_client.c" ], @@ -22464,6 +26064,9 @@ our %unified_info = ( "crypto/libcrypto-lib-bsearch.o" => [ "crypto/bsearch.c" ], + "crypto/libcrypto-lib-comp_methods.o" => [ + "crypto/comp_methods.c" + ], "crypto/libcrypto-lib-context.o" => [ "crypto/context.c" ], @@ -22491,9 +26094,15 @@ our %unified_info = ( "crypto/libcrypto-lib-cversion.o" => [ "crypto/cversion.c" ], + "crypto/libcrypto-lib-defaults.o" => [ + "crypto/defaults.c" + ], "crypto/libcrypto-lib-der_writer.o" => [ "crypto/der_writer.c" ], + "crypto/libcrypto-lib-deterministic_nonce.o" => [ + "crypto/deterministic_nonce.c" + ], "crypto/libcrypto-lib-ebcdic.o" => [ "crypto/ebcdic.c" ], @@ -22503,6 +26112,9 @@ our %unified_info = ( "crypto/libcrypto-lib-getenv.o" => [ "crypto/getenv.c" ], + "crypto/libcrypto-lib-indicator_core.o" => [ + "crypto/indicator_core.c" + ], "crypto/libcrypto-lib-info.o" => [ "crypto/info.c" ], @@ -22551,6 +26163,9 @@ our %unified_info = ( "crypto/libcrypto-lib-params_from_text.o" => [ "crypto/params_from_text.c" ], + "crypto/libcrypto-lib-params_idx.o" => [ + "crypto/params_idx.c" + ], "crypto/libcrypto-lib-passphrase.o" => [ "crypto/passphrase.c" ], @@ -22572,12 +26187,21 @@ our %unified_info = ( "crypto/libcrypto-lib-punycode.o" => [ "crypto/punycode.c" ], + "crypto/libcrypto-lib-quic_vlint.o" => [ + "crypto/quic_vlint.c" + ], "crypto/libcrypto-lib-self_test_core.o" => [ "crypto/self_test_core.c" ], + "crypto/libcrypto-lib-sleep.o" => [ + "crypto/sleep.c" + ], "crypto/libcrypto-lib-sparse_array.o" => [ "crypto/sparse_array.c" ], + "crypto/libcrypto-lib-ssl_err.o" => [ + "crypto/ssl_err.c" + ], "crypto/libcrypto-lib-threads_lib.o" => [ "crypto/threads_lib.c" ], @@ -22590,6 +26214,9 @@ our %unified_info = ( "crypto/libcrypto-lib-threads_win.o" => [ "crypto/threads_win.c" ], + "crypto/libcrypto-lib-time.o" => [ + "crypto/time.c" + ], "crypto/libcrypto-lib-trace.o" => [ "crypto/trace.c" ], @@ -22659,6 +26286,9 @@ our %unified_info = ( "crypto/libfips-lib-params_from_text.o" => [ "crypto/params_from_text.c" ], + "crypto/libfips-lib-params_idx.o" => [ + "crypto/params_idx.c" + ], "crypto/libfips-lib-provider_core.o" => [ "crypto/provider_core.c" ], @@ -22683,12 +26313,18 @@ our %unified_info = ( "crypto/libfips-lib-threads_win.o" => [ "crypto/threads_win.c" ], + "crypto/libfips-lib-time.o" => [ + "crypto/time.c" + ], "crypto/md4/libcrypto-lib-md4_dgst.o" => [ "crypto/md4/md4_dgst.c" ], "crypto/md4/libcrypto-lib-md4_one.o" => [ "crypto/md4/md4_one.c" ], + "crypto/md5/libcrypto-lib-md5-aarch64.o" => [ + "crypto/md5/md5-aarch64.S" + ], "crypto/md5/libcrypto-lib-md5_dgst.o" => [ "crypto/md5/md5_dgst.c" ], @@ -22704,6 +26340,63 @@ our %unified_info = ( "crypto/mdc2/libcrypto-lib-mdc2dgst.o" => [ "crypto/mdc2/mdc2dgst.c" ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_encoders.o" => [ + "crypto/ml_dsa/ml_dsa_encoders.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key.o" => [ + "crypto/ml_dsa/ml_dsa_key.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key_compress.o" => [ + "crypto/ml_dsa/ml_dsa_key_compress.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_matrix.o" => [ + "crypto/ml_dsa/ml_dsa_matrix.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_ntt.o" => [ + "crypto/ml_dsa/ml_dsa_ntt.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_params.o" => [ + "crypto/ml_dsa/ml_dsa_params.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sample.o" => [ + "crypto/ml_dsa/ml_dsa_sample.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sign.o" => [ + "crypto/ml_dsa/ml_dsa_sign.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_encoders.o" => [ + "crypto/ml_dsa/ml_dsa_encoders.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_key.o" => [ + "crypto/ml_dsa/ml_dsa_key.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_key_compress.o" => [ + "crypto/ml_dsa/ml_dsa_key_compress.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_matrix.o" => [ + "crypto/ml_dsa/ml_dsa_matrix.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_ntt.o" => [ + "crypto/ml_dsa/ml_dsa_ntt.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_params.o" => [ + "crypto/ml_dsa/ml_dsa_params.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_sample.o" => [ + "crypto/ml_dsa/ml_dsa_sample.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_sign.o" => [ + "crypto/ml_dsa/ml_dsa_sign.c" + ], + "crypto/ml_kem/libcrypto-lib-ml_kem.o" => [ + "crypto/ml_kem/ml_kem.c" + ], + "crypto/ml_kem/libfips-lib-ml_kem.o" => [ + "crypto/ml_kem/ml_kem.c" + ], + "crypto/modes/libcrypto-lib-aes-gcm-armv8-unroll8_64.o" => [ + "crypto/modes/aes-gcm-armv8-unroll8_64.S" + ], "crypto/modes/libcrypto-lib-aes-gcm-armv8_64.o" => [ "crypto/modes/aes-gcm-armv8_64.S" ], @@ -22743,6 +26436,12 @@ our %unified_info = ( "crypto/modes/libcrypto-lib-xts128.o" => [ "crypto/modes/xts128.c" ], + "crypto/modes/libcrypto-lib-xts128gb.o" => [ + "crypto/modes/xts128gb.c" + ], + "crypto/modes/libfips-lib-aes-gcm-armv8-unroll8_64.o" => [ + "crypto/modes/aes-gcm-armv8-unroll8_64.S" + ], "crypto/modes/libfips-lib-aes-gcm-armv8_64.o" => [ "crypto/modes/aes-gcm-armv8_64.S" ], @@ -22773,6 +26472,9 @@ our %unified_info = ( "crypto/modes/libfips-lib-xts128.o" => [ "crypto/modes/xts128.c" ], + "crypto/modes/libfips-lib-xts128gb.o" => [ + "crypto/modes/xts128gb.c" + ], "crypto/objects/libcrypto-lib-o_names.o" => [ "crypto/objects/o_names.c" ], @@ -22818,6 +26520,9 @@ our %unified_info = ( "crypto/ocsp/libcrypto-lib-v3_ocsp.o" => [ "crypto/ocsp/v3_ocsp.c" ], + "crypto/packettest-bin-quic_vlint.o" => [ + "crypto/quic_vlint.c" + ], "crypto/pem/libcrypto-lib-pem_all.o" => [ "crypto/pem/pem_all.c" ], @@ -22980,6 +26685,9 @@ our %unified_info = ( "crypto/rand/libcrypto-lib-rand_pool.o" => [ "crypto/rand/rand_pool.c" ], + "crypto/rand/libcrypto-lib-rand_uniform.o" => [ + "crypto/rand/rand_uniform.c" + ], "crypto/rand/libcrypto-lib-randfile.o" => [ "crypto/rand/randfile.c" ], @@ -23211,6 +26919,66 @@ our %unified_info = ( "crypto/siphash/libcrypto-lib-siphash.o" => [ "crypto/siphash/siphash.c" ], + "crypto/slh_dsa/libcrypto-lib-slh_adrs.o" => [ + "crypto/slh_dsa/slh_adrs.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_dsa.o" => [ + "crypto/slh_dsa/slh_dsa.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_dsa_hash_ctx.o" => [ + "crypto/slh_dsa/slh_dsa_hash_ctx.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_dsa_key.o" => [ + "crypto/slh_dsa/slh_dsa_key.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_fors.o" => [ + "crypto/slh_dsa/slh_fors.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_hash.o" => [ + "crypto/slh_dsa/slh_hash.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_hypertree.o" => [ + "crypto/slh_dsa/slh_hypertree.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_params.o" => [ + "crypto/slh_dsa/slh_params.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_wots.o" => [ + "crypto/slh_dsa/slh_wots.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_xmss.o" => [ + "crypto/slh_dsa/slh_xmss.c" + ], + "crypto/slh_dsa/libfips-lib-slh_adrs.o" => [ + "crypto/slh_dsa/slh_adrs.c" + ], + "crypto/slh_dsa/libfips-lib-slh_dsa.o" => [ + "crypto/slh_dsa/slh_dsa.c" + ], + "crypto/slh_dsa/libfips-lib-slh_dsa_hash_ctx.o" => [ + "crypto/slh_dsa/slh_dsa_hash_ctx.c" + ], + "crypto/slh_dsa/libfips-lib-slh_dsa_key.o" => [ + "crypto/slh_dsa/slh_dsa_key.c" + ], + "crypto/slh_dsa/libfips-lib-slh_fors.o" => [ + "crypto/slh_dsa/slh_fors.c" + ], + "crypto/slh_dsa/libfips-lib-slh_hash.o" => [ + "crypto/slh_dsa/slh_hash.c" + ], + "crypto/slh_dsa/libfips-lib-slh_hypertree.o" => [ + "crypto/slh_dsa/slh_hypertree.c" + ], + "crypto/slh_dsa/libfips-lib-slh_params.o" => [ + "crypto/slh_dsa/slh_params.c" + ], + "crypto/slh_dsa/libfips-lib-slh_wots.o" => [ + "crypto/slh_dsa/slh_wots.c" + ], + "crypto/slh_dsa/libfips-lib-slh_xmss.o" => [ + "crypto/slh_dsa/slh_xmss.c" + ], "crypto/sm2/libcrypto-lib-sm2_crypt.o" => [ "crypto/sm2/sm2_crypt.c" ], @@ -23226,12 +26994,24 @@ our %unified_info = ( "crypto/sm3/libcrypto-lib-legacy_sm3.o" => [ "crypto/sm3/legacy_sm3.c" ], + "crypto/sm3/libcrypto-lib-sm3-armv8.o" => [ + "crypto/sm3/sm3-armv8.S" + ], "crypto/sm3/libcrypto-lib-sm3.o" => [ "crypto/sm3/sm3.c" ], + "crypto/sm4/libcrypto-lib-sm4-armv8.o" => [ + "crypto/sm4/sm4-armv8.S" + ], "crypto/sm4/libcrypto-lib-sm4.o" => [ "crypto/sm4/sm4.c" ], + "crypto/sm4/libcrypto-lib-vpsm4-armv8.o" => [ + "crypto/sm4/vpsm4-armv8.S" + ], + "crypto/sm4/libcrypto-lib-vpsm4_ex-armv8.o" => [ + "crypto/sm4/vpsm4_ex-armv8.S" + ], "crypto/srp/libcrypto-lib-srp_lib.o" => [ "crypto/srp/srp_lib.c" ], @@ -23265,6 +27045,42 @@ our %unified_info = ( "crypto/store/libcrypto-lib-store_strings.o" => [ "crypto/store/store_strings.c" ], + "crypto/thread/arch/libcrypto-lib-thread_none.o" => [ + "crypto/thread/arch/thread_none.c" + ], + "crypto/thread/arch/libcrypto-lib-thread_posix.o" => [ + "crypto/thread/arch/thread_posix.c" + ], + "crypto/thread/arch/libcrypto-lib-thread_win.o" => [ + "crypto/thread/arch/thread_win.c" + ], + "crypto/thread/arch/libfips-lib-thread_none.o" => [ + "crypto/thread/arch/thread_none.c" + ], + "crypto/thread/arch/libfips-lib-thread_posix.o" => [ + "crypto/thread/arch/thread_posix.c" + ], + "crypto/thread/arch/libfips-lib-thread_win.o" => [ + "crypto/thread/arch/thread_win.c" + ], + "crypto/thread/libcrypto-lib-api.o" => [ + "crypto/thread/api.c" + ], + "crypto/thread/libcrypto-lib-arch.o" => [ + "crypto/thread/arch.c" + ], + "crypto/thread/libcrypto-lib-internal.o" => [ + "crypto/thread/internal.c" + ], + "crypto/thread/libfips-lib-api.o" => [ + "crypto/thread/api.c" + ], + "crypto/thread/libfips-lib-arch.o" => [ + "crypto/thread/arch.c" + ], + "crypto/thread/libfips-lib-internal.o" => [ + "crypto/thread/internal.c" + ], "crypto/ts/libcrypto-lib-ts_asn1.o" => [ "crypto/ts/ts_asn1.c" ], @@ -23349,6 +27165,9 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-pcy_tree.o" => [ "crypto/x509/pcy_tree.c" ], + "crypto/x509/libcrypto-lib-t_acert.o" => [ + "crypto/x509/t_acert.c" + ], "crypto/x509/libcrypto-lib-t_crl.o" => [ "crypto/x509/t_crl.c" ], @@ -23358,6 +27177,12 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-t_x509.o" => [ "crypto/x509/t_x509.c" ], + "crypto/x509/libcrypto-lib-v3_aaa.o" => [ + "crypto/x509/v3_aaa.c" + ], + "crypto/x509/libcrypto-lib-v3_ac_tgt.o" => [ + "crypto/x509/v3_ac_tgt.c" + ], "crypto/x509/libcrypto-lib-v3_addr.o" => [ "crypto/x509/v3_addr.c" ], @@ -23373,6 +27198,21 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_asid.o" => [ "crypto/x509/v3_asid.c" ], + "crypto/x509/libcrypto-lib-v3_attrdesc.o" => [ + "crypto/x509/v3_attrdesc.c" + ], + "crypto/x509/libcrypto-lib-v3_attrmap.o" => [ + "crypto/x509/v3_attrmap.c" + ], + "crypto/x509/libcrypto-lib-v3_audit_id.o" => [ + "crypto/x509/v3_audit_id.c" + ], + "crypto/x509/libcrypto-lib-v3_authattid.o" => [ + "crypto/x509/v3_authattid.c" + ], + "crypto/x509/libcrypto-lib-v3_battcons.o" => [ + "crypto/x509/v3_battcons.c" + ], "crypto/x509/libcrypto-lib-v3_bcons.o" => [ "crypto/x509/v3_bcons.c" ], @@ -23397,15 +27237,24 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_genn.o" => [ "crypto/x509/v3_genn.c" ], + "crypto/x509/libcrypto-lib-v3_group_ac.o" => [ + "crypto/x509/v3_group_ac.c" + ], "crypto/x509/libcrypto-lib-v3_ia5.o" => [ "crypto/x509/v3_ia5.c" ], + "crypto/x509/libcrypto-lib-v3_ind_iss.o" => [ + "crypto/x509/v3_ind_iss.c" + ], "crypto/x509/libcrypto-lib-v3_info.o" => [ "crypto/x509/v3_info.c" ], "crypto/x509/libcrypto-lib-v3_int.o" => [ "crypto/x509/v3_int.c" ], + "crypto/x509/libcrypto-lib-v3_iobo.o" => [ + "crypto/x509/v3_iobo.c" + ], "crypto/x509/libcrypto-lib-v3_ist.o" => [ "crypto/x509/v3_ist.c" ], @@ -23415,6 +27264,12 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_ncons.o" => [ "crypto/x509/v3_ncons.c" ], + "crypto/x509/libcrypto-lib-v3_no_ass.o" => [ + "crypto/x509/v3_no_ass.c" + ], + "crypto/x509/libcrypto-lib-v3_no_rev_avail.o" => [ + "crypto/x509/v3_no_rev_avail.c" + ], "crypto/x509/libcrypto-lib-v3_pci.o" => [ "crypto/x509/v3_pci.c" ], @@ -23436,18 +27291,36 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_purp.o" => [ "crypto/x509/v3_purp.c" ], + "crypto/x509/libcrypto-lib-v3_rolespec.o" => [ + "crypto/x509/v3_rolespec.c" + ], "crypto/x509/libcrypto-lib-v3_san.o" => [ "crypto/x509/v3_san.c" ], + "crypto/x509/libcrypto-lib-v3_sda.o" => [ + "crypto/x509/v3_sda.c" + ], + "crypto/x509/libcrypto-lib-v3_single_use.o" => [ + "crypto/x509/v3_single_use.c" + ], "crypto/x509/libcrypto-lib-v3_skid.o" => [ "crypto/x509/v3_skid.c" ], + "crypto/x509/libcrypto-lib-v3_soa_id.o" => [ + "crypto/x509/v3_soa_id.c" + ], "crypto/x509/libcrypto-lib-v3_sxnet.o" => [ "crypto/x509/v3_sxnet.c" ], + "crypto/x509/libcrypto-lib-v3_timespec.o" => [ + "crypto/x509/v3_timespec.c" + ], "crypto/x509/libcrypto-lib-v3_tlsf.o" => [ "crypto/x509/v3_tlsf.c" ], + "crypto/x509/libcrypto-lib-v3_usernotice.o" => [ + "crypto/x509/v3_usernotice.c" + ], "crypto/x509/libcrypto-lib-v3_utf8.o" => [ "crypto/x509/v3_utf8.c" ], @@ -23457,6 +27330,9 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3err.o" => [ "crypto/x509/v3err.c" ], + "crypto/x509/libcrypto-lib-x509_acert.o" => [ + "crypto/x509/x509_acert.c" + ], "crypto/x509/libcrypto-lib-x509_att.o" => [ "crypto/x509/x509_att.c" ], @@ -23508,6 +27384,9 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x509_vpm.o" => [ "crypto/x509/x509_vpm.c" ], + "crypto/x509/libcrypto-lib-x509aset.o" => [ + "crypto/x509/x509aset.c" + ], "crypto/x509/libcrypto-lib-x509cset.o" => [ "crypto/x509/x509cset.c" ], @@ -23535,6 +27414,9 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x_exten.o" => [ "crypto/x509/x_exten.c" ], + "crypto/x509/libcrypto-lib-x_ietfatt.o" => [ + "crypto/x509/x_ietfatt.c" + ], "crypto/x509/libcrypto-lib-x_name.o" => [ "crypto/x509/x_name.c" ], @@ -23556,6 +27438,16 @@ our %unified_info = ( "engines/libcrypto-lib-e_padlock.o" => [ "engines/e_padlock.c" ], + "fuzz/acert-test" => [ + "fuzz/acert-test-bin-acert.o", + "fuzz/acert-test-bin-test-corpus.o" + ], + "fuzz/acert-test-bin-acert.o" => [ + "fuzz/acert.c" + ], + "fuzz/acert-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], "fuzz/asn1-test" => [ "fuzz/asn1-test-bin-asn1.o", "fuzz/asn1-test-bin-fuzz_rand.o", @@ -23668,6 +27560,190 @@ our %unified_info = ( "fuzz/ct-test-bin-test-corpus.o" => [ "fuzz/test-corpus.c" ], + "fuzz/decoder-test" => [ + "fuzz/decoder-test-bin-decoder.o", + "fuzz/decoder-test-bin-fuzz_rand.o", + "fuzz/decoder-test-bin-test-corpus.o" + ], + "fuzz/decoder-test-bin-decoder.o" => [ + "fuzz/decoder.c" + ], + "fuzz/decoder-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/decoder-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/dtlsclient-test" => [ + "fuzz/dtlsclient-test-bin-dtlsclient.o", + "fuzz/dtlsclient-test-bin-fuzz_rand.o", + "fuzz/dtlsclient-test-bin-test-corpus.o" + ], + "fuzz/dtlsclient-test-bin-dtlsclient.o" => [ + "fuzz/dtlsclient.c" + ], + "fuzz/dtlsclient-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/dtlsclient-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/dtlsserver-test" => [ + "fuzz/dtlsserver-test-bin-dtlsserver.o", + "fuzz/dtlsserver-test-bin-fuzz_rand.o", + "fuzz/dtlsserver-test-bin-test-corpus.o" + ], + "fuzz/dtlsserver-test-bin-dtlsserver.o" => [ + "fuzz/dtlsserver.c" + ], + "fuzz/dtlsserver-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/dtlsserver-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/hashtable-test" => [ + "fuzz/hashtable-test-bin-fuzz_rand.o", + "fuzz/hashtable-test-bin-hashtable.o", + "fuzz/hashtable-test-bin-test-corpus.o" + ], + "fuzz/hashtable-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/hashtable-test-bin-hashtable.o" => [ + "fuzz/hashtable.c" + ], + "fuzz/hashtable-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/ml-dsa-test" => [ + "fuzz/ml-dsa-test-bin-fuzz_rand.o", + "fuzz/ml-dsa-test-bin-ml-dsa.o", + "fuzz/ml-dsa-test-bin-test-corpus.o" + ], + "fuzz/ml-dsa-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/ml-dsa-test-bin-ml-dsa.o" => [ + "fuzz/ml-dsa.c" + ], + "fuzz/ml-dsa-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/ml-kem-test" => [ + "fuzz/ml-kem-test-bin-fuzz_rand.o", + "fuzz/ml-kem-test-bin-ml-kem.o", + "fuzz/ml-kem-test-bin-test-corpus.o" + ], + "fuzz/ml-kem-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/ml-kem-test-bin-ml-kem.o" => [ + "fuzz/ml-kem.c" + ], + "fuzz/ml-kem-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/pem-test" => [ + "fuzz/pem-test-bin-pem.o", + "fuzz/pem-test-bin-test-corpus.o" + ], + "fuzz/pem-test-bin-pem.o" => [ + "fuzz/pem.c" + ], + "fuzz/pem-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/provider-test" => [ + "fuzz/provider-test-bin-provider.o", + "fuzz/provider-test-bin-test-corpus.o" + ], + "fuzz/provider-test-bin-provider.o" => [ + "fuzz/provider.c" + ], + "fuzz/provider-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/punycode-test" => [ + "fuzz/punycode-test-bin-punycode.o", + "fuzz/punycode-test-bin-test-corpus.o" + ], + "fuzz/punycode-test-bin-punycode.o" => [ + "fuzz/punycode.c" + ], + "fuzz/punycode-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-client-test" => [ + "fuzz/quic-client-test-bin-fuzz_rand.o", + "fuzz/quic-client-test-bin-quic-client.o", + "fuzz/quic-client-test-bin-test-corpus.o" + ], + "fuzz/quic-client-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-client-test-bin-quic-client.o" => [ + "fuzz/quic-client.c" + ], + "fuzz/quic-client-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-lcidm-test" => [ + "fuzz/quic-lcidm-test-bin-fuzz_rand.o", + "fuzz/quic-lcidm-test-bin-quic-lcidm.o", + "fuzz/quic-lcidm-test-bin-test-corpus.o" + ], + "fuzz/quic-lcidm-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-lcidm-test-bin-quic-lcidm.o" => [ + "fuzz/quic-lcidm.c" + ], + "fuzz/quic-lcidm-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-rcidm-test" => [ + "fuzz/quic-rcidm-test-bin-fuzz_rand.o", + "fuzz/quic-rcidm-test-bin-quic-rcidm.o", + "fuzz/quic-rcidm-test-bin-test-corpus.o" + ], + "fuzz/quic-rcidm-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-rcidm-test-bin-quic-rcidm.o" => [ + "fuzz/quic-rcidm.c" + ], + "fuzz/quic-rcidm-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-server-test" => [ + "fuzz/quic-server-test-bin-fuzz_rand.o", + "fuzz/quic-server-test-bin-quic-server.o", + "fuzz/quic-server-test-bin-test-corpus.o" + ], + "fuzz/quic-server-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-server-test-bin-quic-server.o" => [ + "fuzz/quic-server.c" + ], + "fuzz/quic-server-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-srtm-test" => [ + "fuzz/quic-srtm-test-bin-fuzz_rand.o", + "fuzz/quic-srtm-test-bin-quic-srtm.o", + "fuzz/quic-srtm-test-bin-test-corpus.o" + ], + "fuzz/quic-srtm-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-srtm-test-bin-quic-srtm.o" => [ + "fuzz/quic-srtm.c" + ], + "fuzz/quic-srtm-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], "fuzz/server-test" => [ "fuzz/server-test-bin-fuzz_rand.o", "fuzz/server-test-bin-server.o", @@ -23682,6 +27758,40 @@ our %unified_info = ( "fuzz/server-test-bin-test-corpus.o" => [ "fuzz/test-corpus.c" ], + "fuzz/slh-dsa-test" => [ + "fuzz/slh-dsa-test-bin-fuzz_rand.o", + "fuzz/slh-dsa-test-bin-slh-dsa.o", + "fuzz/slh-dsa-test-bin-test-corpus.o" + ], + "fuzz/slh-dsa-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/slh-dsa-test-bin-slh-dsa.o" => [ + "fuzz/slh-dsa.c" + ], + "fuzz/slh-dsa-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/smime-test" => [ + "fuzz/smime-test-bin-smime.o", + "fuzz/smime-test-bin-test-corpus.o" + ], + "fuzz/smime-test-bin-smime.o" => [ + "fuzz/smime.c" + ], + "fuzz/smime-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/v3name-test" => [ + "fuzz/v3name-test-bin-test-corpus.o", + "fuzz/v3name-test-bin-v3name.o" + ], + "fuzz/v3name-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/v3name-test-bin-v3name.o" => [ + "fuzz/v3name.c" + ], "fuzz/x509-test" => [ "fuzz/x509-test-bin-fuzz_rand.o", "fuzz/x509-test-bin-test-corpus.o", @@ -23706,6 +27816,7 @@ our %unified_info = ( "crypto/aes/libcrypto-lib-aes_ofb.o", "crypto/aes/libcrypto-lib-aes_wrap.o", "crypto/aes/libcrypto-lib-aesv8-armx.o", + "crypto/aes/libcrypto-lib-bsaes-armv8.o", "crypto/aes/libcrypto-lib-vpaes-armv8.o", "crypto/aria/libcrypto-lib-aria.o", "crypto/asn1/libcrypto-lib-a_bitstr.o", @@ -23803,6 +27914,7 @@ our %unified_info = ( "crypto/bio/libcrypto-lib-bss_conn.o", "crypto/bio/libcrypto-lib-bss_core.o", "crypto/bio/libcrypto-lib-bss_dgram.o", + "crypto/bio/libcrypto-lib-bss_dgram_pair.o", "crypto/bio/libcrypto-lib-bss_fd.o", "crypto/bio/libcrypto-lib-bss_file.o", "crypto/bio/libcrypto-lib-bss_log.o", @@ -23858,12 +27970,14 @@ our %unified_info = ( "crypto/cast/libcrypto-lib-c_enc.o", "crypto/cast/libcrypto-lib-c_ofb64.o", "crypto/cast/libcrypto-lib-c_skey.o", + "crypto/chacha/libcrypto-lib-chacha-armv8-sve.o", "crypto/chacha/libcrypto-lib-chacha-armv8.o", "crypto/cmac/libcrypto-lib-cmac.o", "crypto/cmp/libcrypto-lib-cmp_asn.o", "crypto/cmp/libcrypto-lib-cmp_client.o", "crypto/cmp/libcrypto-lib-cmp_ctx.o", "crypto/cmp/libcrypto-lib-cmp_err.o", + "crypto/cmp/libcrypto-lib-cmp_genm.o", "crypto/cmp/libcrypto-lib-cmp_hdr.o", "crypto/cmp/libcrypto-lib-cmp_http.o", "crypto/cmp/libcrypto-lib-cmp_msg.o", @@ -24003,6 +28117,9 @@ our %unified_info = ( "crypto/ec/libcrypto-lib-ecp_nistz256-armv8.o", "crypto/ec/libcrypto-lib-ecp_nistz256.o", "crypto/ec/libcrypto-lib-ecp_oct.o", + "crypto/ec/libcrypto-lib-ecp_sm2p256-armv8.o", + "crypto/ec/libcrypto-lib-ecp_sm2p256.o", + "crypto/ec/libcrypto-lib-ecp_sm2p256_table.o", "crypto/ec/libcrypto-lib-ecp_smpl.o", "crypto/ec/libcrypto-lib-ecx_backend.o", "crypto/ec/libcrypto-lib-ecx_key.o", @@ -24041,7 +28158,9 @@ our %unified_info = ( "crypto/err/libcrypto-lib-err_all.o", "crypto/err/libcrypto-lib-err_all_legacy.o", "crypto/err/libcrypto-lib-err_blocks.o", + "crypto/err/libcrypto-lib-err_mark.o", "crypto/err/libcrypto-lib-err_prn.o", + "crypto/err/libcrypto-lib-err_save.o", "crypto/ess/libcrypto-lib-ess_asn1.o", "crypto/ess/libcrypto-lib-ess_err.o", "crypto/ess/libcrypto-lib-ess_lib.o", @@ -24124,7 +28243,9 @@ our %unified_info = ( "crypto/evp/libcrypto-lib-pmeth_check.o", "crypto/evp/libcrypto-lib-pmeth_gn.o", "crypto/evp/libcrypto-lib-pmeth_lib.o", + "crypto/evp/libcrypto-lib-s_lib.o", "crypto/evp/libcrypto-lib-signature.o", + "crypto/evp/libcrypto-lib-skeymgmt_meth.o", "crypto/ffc/libcrypto-lib-ffc_backend.o", "crypto/ffc/libcrypto-lib-ffc_dh.o", "crypto/ffc/libcrypto-lib-ffc_key_generate.o", @@ -24132,7 +28253,11 @@ our %unified_info = ( "crypto/ffc/libcrypto-lib-ffc_params.o", "crypto/ffc/libcrypto-lib-ffc_params_generate.o", "crypto/ffc/libcrypto-lib-ffc_params_validate.o", + "crypto/hashtable/libcrypto-lib-hashfunc.o", + "crypto/hashtable/libcrypto-lib-hashtable.o", "crypto/hmac/libcrypto-lib-hmac.o", + "crypto/hpke/libcrypto-lib-hpke.o", + "crypto/hpke/libcrypto-lib-hpke_util.o", "crypto/http/libcrypto-lib-http_client.o", "crypto/http/libcrypto-lib-http_err.o", "crypto/http/libcrypto-lib-http_lib.o", @@ -24148,6 +28273,7 @@ our %unified_info = ( "crypto/libcrypto-lib-armcap.o", "crypto/libcrypto-lib-asn1_dsa.o", "crypto/libcrypto-lib-bsearch.o", + "crypto/libcrypto-lib-comp_methods.o", "crypto/libcrypto-lib-context.o", "crypto/libcrypto-lib-core_algorithm.o", "crypto/libcrypto-lib-core_fetch.o", @@ -24157,10 +28283,13 @@ our %unified_info = ( "crypto/libcrypto-lib-cryptlib.o", "crypto/libcrypto-lib-ctype.o", "crypto/libcrypto-lib-cversion.o", + "crypto/libcrypto-lib-defaults.o", "crypto/libcrypto-lib-der_writer.o", + "crypto/libcrypto-lib-deterministic_nonce.o", "crypto/libcrypto-lib-ebcdic.o", "crypto/libcrypto-lib-ex_data.o", "crypto/libcrypto-lib-getenv.o", + "crypto/libcrypto-lib-indicator_core.o", "crypto/libcrypto-lib-info.o", "crypto/libcrypto-lib-init.o", "crypto/libcrypto-lib-initthread.o", @@ -24177,6 +28306,7 @@ our %unified_info = ( "crypto/libcrypto-lib-params.o", "crypto/libcrypto-lib-params_dup.o", "crypto/libcrypto-lib-params_from_text.o", + "crypto/libcrypto-lib-params_idx.o", "crypto/libcrypto-lib-passphrase.o", "crypto/libcrypto-lib-provider.o", "crypto/libcrypto-lib-provider_child.o", @@ -24184,21 +28314,36 @@ our %unified_info = ( "crypto/libcrypto-lib-provider_core.o", "crypto/libcrypto-lib-provider_predefined.o", "crypto/libcrypto-lib-punycode.o", + "crypto/libcrypto-lib-quic_vlint.o", "crypto/libcrypto-lib-self_test_core.o", + "crypto/libcrypto-lib-sleep.o", "crypto/libcrypto-lib-sparse_array.o", + "crypto/libcrypto-lib-ssl_err.o", "crypto/libcrypto-lib-threads_lib.o", "crypto/libcrypto-lib-threads_none.o", "crypto/libcrypto-lib-threads_pthread.o", "crypto/libcrypto-lib-threads_win.o", + "crypto/libcrypto-lib-time.o", "crypto/libcrypto-lib-trace.o", "crypto/libcrypto-lib-uid.o", "crypto/md4/libcrypto-lib-md4_dgst.o", "crypto/md4/libcrypto-lib-md4_one.o", + "crypto/md5/libcrypto-lib-md5-aarch64.o", "crypto/md5/libcrypto-lib-md5_dgst.o", "crypto/md5/libcrypto-lib-md5_one.o", "crypto/md5/libcrypto-lib-md5_sha1.o", "crypto/mdc2/libcrypto-lib-mdc2_one.o", "crypto/mdc2/libcrypto-lib-mdc2dgst.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_encoders.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key_compress.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_matrix.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_ntt.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_params.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sample.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sign.o", + "crypto/ml_kem/libcrypto-lib-ml_kem.o", + "crypto/modes/libcrypto-lib-aes-gcm-armv8-unroll8_64.o", "crypto/modes/libcrypto-lib-aes-gcm-armv8_64.o", "crypto/modes/libcrypto-lib-cbc128.o", "crypto/modes/libcrypto-lib-ccm128.o", @@ -24212,6 +28357,7 @@ our %unified_info = ( "crypto/modes/libcrypto-lib-siv128.o", "crypto/modes/libcrypto-lib-wrap128.o", "crypto/modes/libcrypto-lib-xts128.o", + "crypto/modes/libcrypto-lib-xts128gb.o", "crypto/objects/libcrypto-lib-o_names.o", "crypto/objects/libcrypto-lib-obj_dat.o", "crypto/objects/libcrypto-lib-obj_err.o", @@ -24276,6 +28422,7 @@ our %unified_info = ( "crypto/rand/libcrypto-lib-rand_lib.o", "crypto/rand/libcrypto-lib-rand_meth.o", "crypto/rand/libcrypto-lib-rand_pool.o", + "crypto/rand/libcrypto-lib-rand_uniform.o", "crypto/rand/libcrypto-lib-randfile.o", "crypto/rc2/libcrypto-lib-rc2_cbc.o", "crypto/rc2/libcrypto-lib-rc2_ecb.o", @@ -24327,13 +28474,27 @@ our %unified_info = ( "crypto/sha/libcrypto-lib-sha512-armv8.o", "crypto/sha/libcrypto-lib-sha512.o", "crypto/siphash/libcrypto-lib-siphash.o", + "crypto/slh_dsa/libcrypto-lib-slh_adrs.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa_hash_ctx.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa_key.o", + "crypto/slh_dsa/libcrypto-lib-slh_fors.o", + "crypto/slh_dsa/libcrypto-lib-slh_hash.o", + "crypto/slh_dsa/libcrypto-lib-slh_hypertree.o", + "crypto/slh_dsa/libcrypto-lib-slh_params.o", + "crypto/slh_dsa/libcrypto-lib-slh_wots.o", + "crypto/slh_dsa/libcrypto-lib-slh_xmss.o", "crypto/sm2/libcrypto-lib-sm2_crypt.o", "crypto/sm2/libcrypto-lib-sm2_err.o", "crypto/sm2/libcrypto-lib-sm2_key.o", "crypto/sm2/libcrypto-lib-sm2_sign.o", "crypto/sm3/libcrypto-lib-legacy_sm3.o", + "crypto/sm3/libcrypto-lib-sm3-armv8.o", "crypto/sm3/libcrypto-lib-sm3.o", + "crypto/sm4/libcrypto-lib-sm4-armv8.o", "crypto/sm4/libcrypto-lib-sm4.o", + "crypto/sm4/libcrypto-lib-vpsm4-armv8.o", + "crypto/sm4/libcrypto-lib-vpsm4_ex-armv8.o", "crypto/srp/libcrypto-lib-srp_lib.o", "crypto/srp/libcrypto-lib-srp_vfy.o", "crypto/stack/libcrypto-lib-stack.o", @@ -24344,6 +28505,12 @@ our %unified_info = ( "crypto/store/libcrypto-lib-store_register.o", "crypto/store/libcrypto-lib-store_result.o", "crypto/store/libcrypto-lib-store_strings.o", + "crypto/thread/arch/libcrypto-lib-thread_none.o", + "crypto/thread/arch/libcrypto-lib-thread_posix.o", + "crypto/thread/arch/libcrypto-lib-thread_win.o", + "crypto/thread/libcrypto-lib-api.o", + "crypto/thread/libcrypto-lib-arch.o", + "crypto/thread/libcrypto-lib-internal.o", "crypto/ts/libcrypto-lib-ts_asn1.o", "crypto/ts/libcrypto-lib-ts_conf.o", "crypto/ts/libcrypto-lib-ts_err.o", @@ -24372,14 +28539,22 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-pcy_map.o", "crypto/x509/libcrypto-lib-pcy_node.o", "crypto/x509/libcrypto-lib-pcy_tree.o", + "crypto/x509/libcrypto-lib-t_acert.o", "crypto/x509/libcrypto-lib-t_crl.o", "crypto/x509/libcrypto-lib-t_req.o", "crypto/x509/libcrypto-lib-t_x509.o", + "crypto/x509/libcrypto-lib-v3_aaa.o", + "crypto/x509/libcrypto-lib-v3_ac_tgt.o", "crypto/x509/libcrypto-lib-v3_addr.o", "crypto/x509/libcrypto-lib-v3_admis.o", "crypto/x509/libcrypto-lib-v3_akeya.o", "crypto/x509/libcrypto-lib-v3_akid.o", "crypto/x509/libcrypto-lib-v3_asid.o", + "crypto/x509/libcrypto-lib-v3_attrdesc.o", + "crypto/x509/libcrypto-lib-v3_attrmap.o", + "crypto/x509/libcrypto-lib-v3_audit_id.o", + "crypto/x509/libcrypto-lib-v3_authattid.o", + "crypto/x509/libcrypto-lib-v3_battcons.o", "crypto/x509/libcrypto-lib-v3_bcons.o", "crypto/x509/libcrypto-lib-v3_bitst.o", "crypto/x509/libcrypto-lib-v3_conf.o", @@ -24388,12 +28563,17 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_enum.o", "crypto/x509/libcrypto-lib-v3_extku.o", "crypto/x509/libcrypto-lib-v3_genn.o", + "crypto/x509/libcrypto-lib-v3_group_ac.o", "crypto/x509/libcrypto-lib-v3_ia5.o", + "crypto/x509/libcrypto-lib-v3_ind_iss.o", "crypto/x509/libcrypto-lib-v3_info.o", "crypto/x509/libcrypto-lib-v3_int.o", + "crypto/x509/libcrypto-lib-v3_iobo.o", "crypto/x509/libcrypto-lib-v3_ist.o", "crypto/x509/libcrypto-lib-v3_lib.o", "crypto/x509/libcrypto-lib-v3_ncons.o", + "crypto/x509/libcrypto-lib-v3_no_ass.o", + "crypto/x509/libcrypto-lib-v3_no_rev_avail.o", "crypto/x509/libcrypto-lib-v3_pci.o", "crypto/x509/libcrypto-lib-v3_pcia.o", "crypto/x509/libcrypto-lib-v3_pcons.o", @@ -24401,13 +28581,20 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_pmaps.o", "crypto/x509/libcrypto-lib-v3_prn.o", "crypto/x509/libcrypto-lib-v3_purp.o", + "crypto/x509/libcrypto-lib-v3_rolespec.o", "crypto/x509/libcrypto-lib-v3_san.o", + "crypto/x509/libcrypto-lib-v3_sda.o", + "crypto/x509/libcrypto-lib-v3_single_use.o", "crypto/x509/libcrypto-lib-v3_skid.o", + "crypto/x509/libcrypto-lib-v3_soa_id.o", "crypto/x509/libcrypto-lib-v3_sxnet.o", + "crypto/x509/libcrypto-lib-v3_timespec.o", "crypto/x509/libcrypto-lib-v3_tlsf.o", + "crypto/x509/libcrypto-lib-v3_usernotice.o", "crypto/x509/libcrypto-lib-v3_utf8.o", "crypto/x509/libcrypto-lib-v3_utl.o", "crypto/x509/libcrypto-lib-v3err.o", + "crypto/x509/libcrypto-lib-x509_acert.o", "crypto/x509/libcrypto-lib-x509_att.o", "crypto/x509/libcrypto-lib-x509_cmp.o", "crypto/x509/libcrypto-lib-x509_d2.o", @@ -24425,6 +28612,7 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x509_v3.o", "crypto/x509/libcrypto-lib-x509_vfy.o", "crypto/x509/libcrypto-lib-x509_vpm.o", + "crypto/x509/libcrypto-lib-x509aset.o", "crypto/x509/libcrypto-lib-x509cset.o", "crypto/x509/libcrypto-lib-x509name.o", "crypto/x509/libcrypto-lib-x509rset.o", @@ -24434,6 +28622,7 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x_attrib.o", "crypto/x509/libcrypto-lib-x_crl.o", "crypto/x509/libcrypto-lib-x_exten.o", + "crypto/x509/libcrypto-lib-x_ietfatt.o", "crypto/x509/libcrypto-lib-x_name.o", "crypto/x509/libcrypto-lib-x_pubkey.o", "crypto/x509/libcrypto-lib-x_req.o", @@ -24454,14 +28643,15 @@ our %unified_info = ( "ssl/libssl-lib-d1_srtp.o", "ssl/libssl-lib-methods.o", "ssl/libssl-lib-pqueue.o", + "ssl/libssl-lib-priority_queue.o", "ssl/libssl-lib-s3_enc.o", "ssl/libssl-lib-s3_lib.o", "ssl/libssl-lib-s3_msg.o", "ssl/libssl-lib-ssl_asn1.o", "ssl/libssl-lib-ssl_cert.o", + "ssl/libssl-lib-ssl_cert_comp.o", "ssl/libssl-lib-ssl_ciph.o", "ssl/libssl-lib-ssl_conf.o", - "ssl/libssl-lib-ssl_err.o", "ssl/libssl-lib-ssl_err_legacy.o", "ssl/libssl-lib-ssl_init.o", "ssl/libssl-lib-ssl_lib.o", @@ -24478,12 +28668,60 @@ our %unified_info = ( "ssl/libssl-lib-tls13_enc.o", "ssl/libssl-lib-tls_depr.o", "ssl/libssl-lib-tls_srp.o", - "ssl/record/libssl-lib-dtls1_bitmap.o", + "ssl/quic/libssl-lib-cc_newreno.o", + "ssl/quic/libssl-lib-json_enc.o", + "ssl/quic/libssl-lib-qlog.o", + "ssl/quic/libssl-lib-qlog_event_helpers.o", + "ssl/quic/libssl-lib-quic_ackm.o", + "ssl/quic/libssl-lib-quic_cfq.o", + "ssl/quic/libssl-lib-quic_channel.o", + "ssl/quic/libssl-lib-quic_demux.o", + "ssl/quic/libssl-lib-quic_engine.o", + "ssl/quic/libssl-lib-quic_fc.o", + "ssl/quic/libssl-lib-quic_fifd.o", + "ssl/quic/libssl-lib-quic_impl.o", + "ssl/quic/libssl-lib-quic_lcidm.o", + "ssl/quic/libssl-lib-quic_method.o", + "ssl/quic/libssl-lib-quic_obj.o", + "ssl/quic/libssl-lib-quic_port.o", + "ssl/quic/libssl-lib-quic_rcidm.o", + "ssl/quic/libssl-lib-quic_reactor.o", + "ssl/quic/libssl-lib-quic_reactor_wait_ctx.o", + "ssl/quic/libssl-lib-quic_record_rx.o", + "ssl/quic/libssl-lib-quic_record_shared.o", + "ssl/quic/libssl-lib-quic_record_tx.o", + "ssl/quic/libssl-lib-quic_record_util.o", + "ssl/quic/libssl-lib-quic_rstream.o", + "ssl/quic/libssl-lib-quic_rx_depack.o", + "ssl/quic/libssl-lib-quic_sf_list.o", + "ssl/quic/libssl-lib-quic_srt_gen.o", + "ssl/quic/libssl-lib-quic_srtm.o", + "ssl/quic/libssl-lib-quic_sstream.o", + "ssl/quic/libssl-lib-quic_statm.o", + "ssl/quic/libssl-lib-quic_stream_map.o", + "ssl/quic/libssl-lib-quic_thread_assist.o", + "ssl/quic/libssl-lib-quic_tls.o", + "ssl/quic/libssl-lib-quic_tls_api.o", + "ssl/quic/libssl-lib-quic_trace.o", + "ssl/quic/libssl-lib-quic_tserver.o", + "ssl/quic/libssl-lib-quic_txp.o", + "ssl/quic/libssl-lib-quic_txpim.o", + "ssl/quic/libssl-lib-quic_types.o", + "ssl/quic/libssl-lib-quic_wire.o", + "ssl/quic/libssl-lib-quic_wire_pkt.o", + "ssl/quic/libssl-lib-uint_set.o", "ssl/record/libssl-lib-rec_layer_d1.o", "ssl/record/libssl-lib-rec_layer_s3.o", - "ssl/record/libssl-lib-ssl3_buffer.o", - "ssl/record/libssl-lib-ssl3_record.o", - "ssl/record/libssl-lib-ssl3_record_tls13.o", + "ssl/record/methods/libssl-lib-dtls_meth.o", + "ssl/record/methods/libssl-lib-ssl3_meth.o", + "ssl/record/methods/libssl-lib-tls13_meth.o", + "ssl/record/methods/libssl-lib-tls1_meth.o", + "ssl/record/methods/libssl-lib-tls_common.o", + "ssl/record/methods/libssl-lib-tls_multib.o", + "ssl/record/methods/libssl-lib-tlsany_meth.o", + "ssl/rio/libssl-lib-poll_builder.o", + "ssl/rio/libssl-lib-poll_immediate.o", + "ssl/rio/libssl-lib-rio_notifier.o", "ssl/statem/libssl-lib-extensions.o", "ssl/statem/libssl-lib-extensions_clnt.o", "ssl/statem/libssl-lib-extensions_cust.o", @@ -24521,12 +28759,24 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ecx_key.o" => [ "providers/common/der/der_ecx_key.c" ], + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o" => [ + "providers/common/der/der_ml_dsa_gen.c" + ], + "providers/common/der/libcommon-lib-der_ml_dsa_key.o" => [ + "providers/common/der/der_ml_dsa_key.c" + ], "providers/common/der/libcommon-lib-der_rsa_gen.o" => [ "providers/common/der/der_rsa_gen.c" ], "providers/common/der/libcommon-lib-der_rsa_key.o" => [ "providers/common/der/der_rsa_key.c" ], + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o" => [ + "providers/common/der/der_slh_dsa_gen.c" + ], + "providers/common/der/libcommon-lib-der_slh_dsa_key.o" => [ + "providers/common/der/der_slh_dsa_key.c" + ], "providers/common/der/libcommon-lib-der_wrap_gen.o" => [ "providers/common/der/der_wrap_gen.c" ], @@ -24593,6 +28843,9 @@ our %unified_info = ( "providers/common/libfips-lib-securitycheck_fips.o" => [ "providers/common/securitycheck_fips.c" ], + "providers/endecode_test-bin-legacyprov.o" => [ + "providers/legacyprov.c" + ], "providers/evp_extra_test-bin-legacyprov.o" => [ "providers/legacyprov.c" ], @@ -24602,6 +28855,9 @@ our %unified_info = ( "providers/fips/fips-dso-fips_entry.o" => [ "providers/fips/fips_entry.c" ], + "providers/fips/libfips-lib-fipsindicator.o" => [ + "providers/fips/fipsindicator.c" + ], "providers/fips/libfips-lib-fipsprov.o" => [ "providers/fips/fipsprov.c" ], @@ -24665,6 +28921,15 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_hw.o" => [ "providers/implementations/ciphers/cipher_aes_gcm_hw.c" ], + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv.o" => [ + "providers/implementations/ciphers/cipher_aes_gcm_siv.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_hw.o" => [ + "providers/implementations/ciphers/cipher_aes_gcm_siv_hw.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_polyval.o" => [ + "providers/implementations/ciphers/cipher_aes_gcm_siv_polyval.c" + ], "providers/implementations/ciphers/libdefault-lib-cipher_aes_hw.o" => [ "providers/implementations/ciphers/cipher_aes_hw.c" ], @@ -24737,9 +29002,27 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_sm4.o" => [ "providers/implementations/ciphers/cipher_sm4.c" ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm.o" => [ + "providers/implementations/ciphers/cipher_sm4_ccm.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm_hw.o" => [ + "providers/implementations/ciphers/cipher_sm4_ccm_hw.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm.o" => [ + "providers/implementations/ciphers/cipher_sm4_gcm.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm_hw.o" => [ + "providers/implementations/ciphers/cipher_sm4_gcm_hw.c" + ], "providers/implementations/ciphers/libdefault-lib-cipher_sm4_hw.o" => [ "providers/implementations/ciphers/cipher_sm4_hw.c" ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts.o" => [ + "providers/implementations/ciphers/cipher_sm4_xts.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts_hw.o" => [ + "providers/implementations/ciphers/cipher_sm4_xts_hw.c" + ], "providers/implementations/ciphers/libdefault-lib-cipher_tdes.o" => [ "providers/implementations/ciphers/cipher_tdes.c" ], @@ -24959,6 +29242,15 @@ our %unified_info = ( "providers/implementations/encode_decode/libdefault-lib-endecoder_common.o" => [ "providers/implementations/encode_decode/endecoder_common.c" ], + "providers/implementations/encode_decode/libdefault-lib-ml_common_codecs.o" => [ + "providers/implementations/encode_decode/ml_common_codecs.c" + ], + "providers/implementations/encode_decode/libdefault-lib-ml_dsa_codecs.o" => [ + "providers/implementations/encode_decode/ml_dsa_codecs.c" + ], + "providers/implementations/encode_decode/libdefault-lib-ml_kem_codecs.o" => [ + "providers/implementations/encode_decode/ml_kem_codecs.c" + ], "providers/implementations/exchange/libdefault-lib-dh_exch.o" => [ "providers/implementations/exchange/dh_exch.c" ], @@ -24983,9 +29275,15 @@ our %unified_info = ( "providers/implementations/exchange/libfips-lib-kdf_exch.o" => [ "providers/implementations/exchange/kdf_exch.c" ], + "providers/implementations/kdfs/libdefault-lib-argon2.o" => [ + "providers/implementations/kdfs/argon2.c" + ], "providers/implementations/kdfs/libdefault-lib-hkdf.o" => [ "providers/implementations/kdfs/hkdf.c" ], + "providers/implementations/kdfs/libdefault-lib-hmacdrbg_kdf.o" => [ + "providers/implementations/kdfs/hmacdrbg_kdf.c" + ], "providers/implementations/kdfs/libdefault-lib-kbkdf.o" => [ "providers/implementations/kdfs/kbkdf.c" ], @@ -25043,12 +29341,39 @@ our %unified_info = ( "providers/implementations/kdfs/liblegacy-lib-pbkdf1.o" => [ "providers/implementations/kdfs/pbkdf1.c" ], + "providers/implementations/kdfs/liblegacy-lib-pvkkdf.o" => [ + "providers/implementations/kdfs/pvkkdf.c" + ], + "providers/implementations/kem/libdefault-lib-ec_kem.o" => [ + "providers/implementations/kem/ec_kem.c" + ], + "providers/implementations/kem/libdefault-lib-ecx_kem.o" => [ + "providers/implementations/kem/ecx_kem.c" + ], + "providers/implementations/kem/libdefault-lib-kem_util.o" => [ + "providers/implementations/kem/kem_util.c" + ], + "providers/implementations/kem/libdefault-lib-ml_kem_kem.o" => [ + "providers/implementations/kem/ml_kem_kem.c" + ], + "providers/implementations/kem/libdefault-lib-mlx_kem.o" => [ + "providers/implementations/kem/mlx_kem.c" + ], "providers/implementations/kem/libdefault-lib-rsa_kem.o" => [ "providers/implementations/kem/rsa_kem.c" ], + "providers/implementations/kem/libfips-lib-ml_kem_kem.o" => [ + "providers/implementations/kem/ml_kem_kem.c" + ], + "providers/implementations/kem/libfips-lib-mlx_kem.o" => [ + "providers/implementations/kem/mlx_kem.c" + ], "providers/implementations/kem/libfips-lib-rsa_kem.o" => [ "providers/implementations/kem/rsa_kem.c" ], + "providers/implementations/kem/libtemplate-lib-template_kem.o" => [ + "providers/implementations/kem/template_kem.c" + ], "providers/implementations/keymgmt/libdefault-lib-dh_kmgmt.o" => [ "providers/implementations/keymgmt/dh_kmgmt.c" ], @@ -25067,9 +29392,21 @@ our %unified_info = ( "providers/implementations/keymgmt/libdefault-lib-mac_legacy_kmgmt.o" => [ "providers/implementations/keymgmt/mac_legacy_kmgmt.c" ], + "providers/implementations/keymgmt/libdefault-lib-ml_dsa_kmgmt.o" => [ + "providers/implementations/keymgmt/ml_dsa_kmgmt.c" + ], + "providers/implementations/keymgmt/libdefault-lib-ml_kem_kmgmt.o" => [ + "providers/implementations/keymgmt/ml_kem_kmgmt.c" + ], + "providers/implementations/keymgmt/libdefault-lib-mlx_kmgmt.o" => [ + "providers/implementations/keymgmt/mlx_kmgmt.c" + ], "providers/implementations/keymgmt/libdefault-lib-rsa_kmgmt.o" => [ "providers/implementations/keymgmt/rsa_kmgmt.c" ], + "providers/implementations/keymgmt/libdefault-lib-slh_dsa_kmgmt.o" => [ + "providers/implementations/keymgmt/slh_dsa_kmgmt.c" + ], "providers/implementations/keymgmt/libfips-lib-dh_kmgmt.o" => [ "providers/implementations/keymgmt/dh_kmgmt.c" ], @@ -25088,9 +29425,24 @@ our %unified_info = ( "providers/implementations/keymgmt/libfips-lib-mac_legacy_kmgmt.o" => [ "providers/implementations/keymgmt/mac_legacy_kmgmt.c" ], + "providers/implementations/keymgmt/libfips-lib-ml_dsa_kmgmt.o" => [ + "providers/implementations/keymgmt/ml_dsa_kmgmt.c" + ], + "providers/implementations/keymgmt/libfips-lib-ml_kem_kmgmt.o" => [ + "providers/implementations/keymgmt/ml_kem_kmgmt.c" + ], + "providers/implementations/keymgmt/libfips-lib-mlx_kmgmt.o" => [ + "providers/implementations/keymgmt/mlx_kmgmt.c" + ], "providers/implementations/keymgmt/libfips-lib-rsa_kmgmt.o" => [ "providers/implementations/keymgmt/rsa_kmgmt.c" ], + "providers/implementations/keymgmt/libfips-lib-slh_dsa_kmgmt.o" => [ + "providers/implementations/keymgmt/slh_dsa_kmgmt.c" + ], + "providers/implementations/keymgmt/libtemplate-lib-template_kmgmt.o" => [ + "providers/implementations/keymgmt/template_kmgmt.c" + ], "providers/implementations/macs/libdefault-lib-blake2b_mac.o" => [ "providers/implementations/macs/blake2b_mac.c" ], @@ -25127,9 +29479,6 @@ our %unified_info = ( "providers/implementations/macs/libfips-lib-kmac_prov.o" => [ "providers/implementations/macs/kmac_prov.c" ], - "providers/implementations/rands/libdefault-lib-crngt.o" => [ - "providers/implementations/rands/crngt.c" - ], "providers/implementations/rands/libdefault-lib-drbg.o" => [ "providers/implementations/rands/drbg.c" ], @@ -25145,12 +29494,12 @@ our %unified_info = ( "providers/implementations/rands/libdefault-lib-seed_src.o" => [ "providers/implementations/rands/seed_src.c" ], + "providers/implementations/rands/libdefault-lib-seed_src_jitter.o" => [ + "providers/implementations/rands/seed_src_jitter.c" + ], "providers/implementations/rands/libdefault-lib-test_rng.o" => [ "providers/implementations/rands/test_rng.c" ], - "providers/implementations/rands/libfips-lib-crngt.o" => [ - "providers/implementations/rands/crngt.c" - ], "providers/implementations/rands/libfips-lib-drbg.o" => [ "providers/implementations/rands/drbg.c" ], @@ -25163,6 +29512,9 @@ our %unified_info = ( "providers/implementations/rands/libfips-lib-drbg_hmac.o" => [ "providers/implementations/rands/drbg_hmac.c" ], + "providers/implementations/rands/libfips-lib-fips_crng_test.o" => [ + "providers/implementations/rands/fips_crng_test.c" + ], "providers/implementations/rands/libfips-lib-test_rng.o" => [ "providers/implementations/rands/test_rng.c" ], @@ -25190,9 +29542,15 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-mac_legacy_sig.o" => [ "providers/implementations/signature/mac_legacy_sig.c" ], + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o" => [ + "providers/implementations/signature/ml_dsa_sig.c" + ], "providers/implementations/signature/libdefault-lib-rsa_sig.o" => [ "providers/implementations/signature/rsa_sig.c" ], + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o" => [ + "providers/implementations/signature/slh_dsa_sig.c" + ], "providers/implementations/signature/libdefault-lib-sm2_sig.o" => [ "providers/implementations/signature/sm2_sig.c" ], @@ -25208,9 +29566,27 @@ our %unified_info = ( "providers/implementations/signature/libfips-lib-mac_legacy_sig.o" => [ "providers/implementations/signature/mac_legacy_sig.c" ], + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o" => [ + "providers/implementations/signature/ml_dsa_sig.c" + ], "providers/implementations/signature/libfips-lib-rsa_sig.o" => [ "providers/implementations/signature/rsa_sig.c" ], + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o" => [ + "providers/implementations/signature/slh_dsa_sig.c" + ], + "providers/implementations/skeymgmt/libdefault-lib-aes_skmgmt.o" => [ + "providers/implementations/skeymgmt/aes_skmgmt.c" + ], + "providers/implementations/skeymgmt/libdefault-lib-generic.o" => [ + "providers/implementations/skeymgmt/generic.c" + ], + "providers/implementations/skeymgmt/libfips-lib-aes_skmgmt.o" => [ + "providers/implementations/skeymgmt/aes_skmgmt.c" + ], + "providers/implementations/skeymgmt/libfips-lib-generic.o" => [ + "providers/implementations/skeymgmt/generic.c" + ], "providers/implementations/storemgmt/libdefault-lib-file_store.o" => [ "providers/implementations/storemgmt/file_store.c" ], @@ -25233,8 +29609,12 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ec_sig.o", "providers/common/der/libcommon-lib-der_ecx_gen.o", "providers/common/der/libcommon-lib-der_ecx_key.o", + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o", + "providers/common/der/libcommon-lib-der_ml_dsa_key.o", "providers/common/der/libcommon-lib-der_rsa_gen.o", "providers/common/der/libcommon-lib-der_rsa_key.o", + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o", + "providers/common/der/libcommon-lib-der_slh_dsa_key.o", "providers/common/der/libcommon-lib-der_wrap_gen.o", "providers/common/libcommon-lib-provider_ctx.o", "providers/common/libcommon-lib-provider_err.o", @@ -25246,7 +29626,7 @@ our %unified_info = ( "providers/implementations/ciphers/libcommon-lib-ciphercommon_gcm_hw.o", "providers/implementations/ciphers/libcommon-lib-ciphercommon_hw.o", "providers/implementations/digests/libcommon-lib-digestcommon.o", - "ssl/record/libcommon-lib-tls_pad.o" + "ssl/record/methods/libcommon-lib-tls_pad.o" ], "providers/libcrypto-lib-baseprov.o" => [ "providers/baseprov.c" @@ -25282,6 +29662,9 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_aes_ccm_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_polyval.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_ocb.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_ocb_hw.o", @@ -25306,7 +29689,13 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_cts.o", "providers/implementations/ciphers/libdefault-lib-cipher_null.o", "providers/implementations/ciphers/libdefault-lib-cipher_sm4.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_sm4_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes_common.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes_default.o", @@ -25335,11 +29724,16 @@ our %unified_info = ( "providers/implementations/encode_decode/libdefault-lib-encode_key2ms.o", "providers/implementations/encode_decode/libdefault-lib-encode_key2text.o", "providers/implementations/encode_decode/libdefault-lib-endecoder_common.o", + "providers/implementations/encode_decode/libdefault-lib-ml_common_codecs.o", + "providers/implementations/encode_decode/libdefault-lib-ml_dsa_codecs.o", + "providers/implementations/encode_decode/libdefault-lib-ml_kem_codecs.o", "providers/implementations/exchange/libdefault-lib-dh_exch.o", "providers/implementations/exchange/libdefault-lib-ecdh_exch.o", "providers/implementations/exchange/libdefault-lib-ecx_exch.o", "providers/implementations/exchange/libdefault-lib-kdf_exch.o", + "providers/implementations/kdfs/libdefault-lib-argon2.o", "providers/implementations/kdfs/libdefault-lib-hkdf.o", + "providers/implementations/kdfs/libdefault-lib-hmacdrbg_kdf.o", "providers/implementations/kdfs/libdefault-lib-kbkdf.o", "providers/implementations/kdfs/libdefault-lib-krb5kdf.o", "providers/implementations/kdfs/libdefault-lib-pbkdf2.o", @@ -25350,6 +29744,11 @@ our %unified_info = ( "providers/implementations/kdfs/libdefault-lib-sskdf.o", "providers/implementations/kdfs/libdefault-lib-tls1_prf.o", "providers/implementations/kdfs/libdefault-lib-x942kdf.o", + "providers/implementations/kem/libdefault-lib-ec_kem.o", + "providers/implementations/kem/libdefault-lib-ecx_kem.o", + "providers/implementations/kem/libdefault-lib-kem_util.o", + "providers/implementations/kem/libdefault-lib-ml_kem_kem.o", + "providers/implementations/kem/libdefault-lib-mlx_kem.o", "providers/implementations/kem/libdefault-lib-rsa_kem.o", "providers/implementations/keymgmt/libdefault-lib-dh_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-dsa_kmgmt.o", @@ -25357,7 +29756,11 @@ our %unified_info = ( "providers/implementations/keymgmt/libdefault-lib-ecx_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-kdf_legacy_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-mac_legacy_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-ml_dsa_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-ml_kem_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-mlx_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-rsa_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-slh_dsa_kmgmt.o", "providers/implementations/macs/libdefault-lib-blake2b_mac.o", "providers/implementations/macs/libdefault-lib-blake2s_mac.o", "providers/implementations/macs/libdefault-lib-cmac_prov.o", @@ -25366,12 +29769,12 @@ our %unified_info = ( "providers/implementations/macs/libdefault-lib-kmac_prov.o", "providers/implementations/macs/libdefault-lib-poly1305_prov.o", "providers/implementations/macs/libdefault-lib-siphash_prov.o", - "providers/implementations/rands/libdefault-lib-crngt.o", "providers/implementations/rands/libdefault-lib-drbg.o", "providers/implementations/rands/libdefault-lib-drbg_ctr.o", "providers/implementations/rands/libdefault-lib-drbg_hash.o", "providers/implementations/rands/libdefault-lib-drbg_hmac.o", "providers/implementations/rands/libdefault-lib-seed_src.o", + "providers/implementations/rands/libdefault-lib-seed_src_jitter.o", "providers/implementations/rands/libdefault-lib-test_rng.o", "providers/implementations/rands/seeding/libdefault-lib-rand_cpu_x86.o", "providers/implementations/rands/seeding/libdefault-lib-rand_tsc.o", @@ -25381,11 +29784,15 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-ecdsa_sig.o", "providers/implementations/signature/libdefault-lib-eddsa_sig.o", "providers/implementations/signature/libdefault-lib-mac_legacy_sig.o", + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o", "providers/implementations/signature/libdefault-lib-rsa_sig.o", + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o", "providers/implementations/signature/libdefault-lib-sm2_sig.o", + "providers/implementations/skeymgmt/libdefault-lib-aes_skmgmt.o", + "providers/implementations/skeymgmt/libdefault-lib-generic.o", "providers/implementations/storemgmt/libdefault-lib-file_store.o", "providers/implementations/storemgmt/libdefault-lib-file_store_any2obj.o", - "ssl/libdefault-lib-s3_cbc.o" + "ssl/record/methods/libdefault-lib-ssl3_cbc.o" ], "providers/libfips.a" => [ "crypto/aes/libfips-lib-aes_cbc.o", @@ -25393,6 +29800,7 @@ our %unified_info = ( "crypto/aes/libfips-lib-aes_ecb.o", "crypto/aes/libfips-lib-aes_misc.o", "crypto/aes/libfips-lib-aesv8-armx.o", + "crypto/aes/libfips-lib-bsaes-armv8.o", "crypto/aes/libfips-lib-vpaes-armv8.o", "crypto/bn/libfips-lib-armv8-mont.o", "crypto/bn/libfips-lib-bn_add.o", @@ -25474,6 +29882,9 @@ our %unified_info = ( "crypto/ec/libfips-lib-ecp_nistz256-armv8.o", "crypto/ec/libfips-lib-ecp_nistz256.o", "crypto/ec/libfips-lib-ecp_oct.o", + "crypto/ec/libfips-lib-ecp_sm2p256-armv8.o", + "crypto/ec/libfips-lib-ecp_sm2p256.o", + "crypto/ec/libfips-lib-ecp_sm2p256_table.o", "crypto/ec/libfips-lib-ecp_smpl.o", "crypto/ec/libfips-lib-ecx_backend.o", "crypto/ec/libfips-lib-ecx_key.o", @@ -25492,14 +29903,15 @@ our %unified_info = ( "crypto/evp/libfips-lib-kem.o", "crypto/evp/libfips-lib-keymgmt_lib.o", "crypto/evp/libfips-lib-keymgmt_meth.o", - "crypto/evp/libfips-lib-m_sigver.o", "crypto/evp/libfips-lib-mac_lib.o", "crypto/evp/libfips-lib-mac_meth.o", "crypto/evp/libfips-lib-p_lib.o", "crypto/evp/libfips-lib-pmeth_check.o", "crypto/evp/libfips-lib-pmeth_gn.o", "crypto/evp/libfips-lib-pmeth_lib.o", + "crypto/evp/libfips-lib-s_lib.o", "crypto/evp/libfips-lib-signature.o", + "crypto/evp/libfips-lib-skeymgmt_meth.o", "crypto/ffc/libfips-lib-ffc_backend.o", "crypto/ffc/libfips-lib-ffc_dh.o", "crypto/ffc/libfips-lib-ffc_key_generate.o", @@ -25507,6 +29919,8 @@ our %unified_info = ( "crypto/ffc/libfips-lib-ffc_params.o", "crypto/ffc/libfips-lib-ffc_params_generate.o", "crypto/ffc/libfips-lib-ffc_params_validate.o", + "crypto/hashtable/libfips-lib-hashfunc.o", + "crypto/hashtable/libfips-lib-hashtable.o", "crypto/hmac/libfips-lib-hmac.o", "crypto/lhash/libfips-lib-lhash.o", "crypto/libfips-lib-arm64cpuid.o", @@ -25530,6 +29944,7 @@ our %unified_info = ( "crypto/libfips-lib-params.o", "crypto/libfips-lib-params_dup.o", "crypto/libfips-lib-params_from_text.o", + "crypto/libfips-lib-params_idx.o", "crypto/libfips-lib-provider_core.o", "crypto/libfips-lib-provider_predefined.o", "crypto/libfips-lib-self_test_core.o", @@ -25538,6 +29953,17 @@ our %unified_info = ( "crypto/libfips-lib-threads_none.o", "crypto/libfips-lib-threads_pthread.o", "crypto/libfips-lib-threads_win.o", + "crypto/libfips-lib-time.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_encoders.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_key.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_key_compress.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_matrix.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_ntt.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_params.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_sample.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_sign.o", + "crypto/ml_kem/libfips-lib-ml_kem.o", + "crypto/modes/libfips-lib-aes-gcm-armv8-unroll8_64.o", "crypto/modes/libfips-lib-aes-gcm-armv8_64.o", "crypto/modes/libfips-lib-cbc128.o", "crypto/modes/libfips-lib-ccm128.o", @@ -25548,6 +29974,7 @@ our %unified_info = ( "crypto/modes/libfips-lib-ofb128.o", "crypto/modes/libfips-lib-wrap128.o", "crypto/modes/libfips-lib-xts128.o", + "crypto/modes/libfips-lib-xts128gb.o", "crypto/property/libfips-lib-defn_cache.o", "crypto/property/libfips-lib-property.o", "crypto/property/libfips-lib-property_parse.o", @@ -25579,7 +30006,23 @@ our %unified_info = ( "crypto/sha/libfips-lib-sha3.o", "crypto/sha/libfips-lib-sha512-armv8.o", "crypto/sha/libfips-lib-sha512.o", + "crypto/slh_dsa/libfips-lib-slh_adrs.o", + "crypto/slh_dsa/libfips-lib-slh_dsa.o", + "crypto/slh_dsa/libfips-lib-slh_dsa_hash_ctx.o", + "crypto/slh_dsa/libfips-lib-slh_dsa_key.o", + "crypto/slh_dsa/libfips-lib-slh_fors.o", + "crypto/slh_dsa/libfips-lib-slh_hash.o", + "crypto/slh_dsa/libfips-lib-slh_hypertree.o", + "crypto/slh_dsa/libfips-lib-slh_params.o", + "crypto/slh_dsa/libfips-lib-slh_wots.o", + "crypto/slh_dsa/libfips-lib-slh_xmss.o", "crypto/stack/libfips-lib-stack.o", + "crypto/thread/arch/libfips-lib-thread_none.o", + "crypto/thread/arch/libfips-lib-thread_posix.o", + "crypto/thread/arch/libfips-lib-thread_win.o", + "crypto/thread/libfips-lib-api.o", + "crypto/thread/libfips-lib-arch.o", + "crypto/thread/libfips-lib-internal.o", "providers/common/der/libfips-lib-der_rsa_sig.o", "providers/common/libfips-lib-bio_prov.o", "providers/common/libfips-lib-capabilities.o", @@ -25588,6 +30031,7 @@ our %unified_info = ( "providers/common/libfips-lib-provider_util.o", "providers/common/libfips-lib-securitycheck.o", "providers/common/libfips-lib-securitycheck_fips.o", + "providers/fips/libfips-lib-fipsindicator.o", "providers/fips/libfips-lib-fipsprov.o", "providers/fips/libfips-lib-self_test.o", "providers/fips/libfips-lib-self_test_kats.o", @@ -25625,6 +30069,8 @@ our %unified_info = ( "providers/implementations/kdfs/libfips-lib-sskdf.o", "providers/implementations/kdfs/libfips-lib-tls1_prf.o", "providers/implementations/kdfs/libfips-lib-x942kdf.o", + "providers/implementations/kem/libfips-lib-ml_kem_kem.o", + "providers/implementations/kem/libfips-lib-mlx_kem.o", "providers/implementations/kem/libfips-lib-rsa_kem.o", "providers/implementations/keymgmt/libfips-lib-dh_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-dsa_kmgmt.o", @@ -25632,24 +30078,32 @@ our %unified_info = ( "providers/implementations/keymgmt/libfips-lib-ecx_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-kdf_legacy_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-mac_legacy_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-ml_dsa_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-ml_kem_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-mlx_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-rsa_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-slh_dsa_kmgmt.o", "providers/implementations/macs/libfips-lib-cmac_prov.o", "providers/implementations/macs/libfips-lib-gmac_prov.o", "providers/implementations/macs/libfips-lib-hmac_prov.o", "providers/implementations/macs/libfips-lib-kmac_prov.o", - "providers/implementations/rands/libfips-lib-crngt.o", "providers/implementations/rands/libfips-lib-drbg.o", "providers/implementations/rands/libfips-lib-drbg_ctr.o", "providers/implementations/rands/libfips-lib-drbg_hash.o", "providers/implementations/rands/libfips-lib-drbg_hmac.o", + "providers/implementations/rands/libfips-lib-fips_crng_test.o", "providers/implementations/rands/libfips-lib-test_rng.o", "providers/implementations/signature/libfips-lib-dsa_sig.o", "providers/implementations/signature/libfips-lib-ecdsa_sig.o", "providers/implementations/signature/libfips-lib-eddsa_sig.o", "providers/implementations/signature/libfips-lib-mac_legacy_sig.o", + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o", "providers/implementations/signature/libfips-lib-rsa_sig.o", + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o", + "providers/implementations/skeymgmt/libfips-lib-aes_skmgmt.o", + "providers/implementations/skeymgmt/libfips-lib-generic.o", "providers/libcommon.a", - "ssl/libfips-lib-s3_cbc.o" + "ssl/record/methods/libfips-lib-ssl3_cbc.o" ], "providers/liblegacy-lib-prov_running.o" => [ "providers/prov_running.c" @@ -25679,13 +30133,12 @@ our %unified_info = ( "providers/implementations/digests/liblegacy-lib-ripemd_prov.o", "providers/implementations/digests/liblegacy-lib-wp_prov.o", "providers/implementations/kdfs/liblegacy-lib-pbkdf1.o", + "providers/implementations/kdfs/liblegacy-lib-pvkkdf.o", "providers/liblegacy-lib-prov_running.o" ], - "ssl/libdefault-lib-s3_cbc.o" => [ - "ssl/s3_cbc.c" - ], - "ssl/libfips-lib-s3_cbc.o" => [ - "ssl/s3_cbc.c" + "providers/libtemplate.a" => [ + "providers/implementations/kem/libtemplate-lib-template_kem.o", + "providers/implementations/keymgmt/libtemplate-lib-template_kmgmt.o" ], "ssl/libssl-lib-bio_ssl.o" => [ "ssl/bio_ssl.c" @@ -25705,6 +30158,9 @@ our %unified_info = ( "ssl/libssl-lib-pqueue.o" => [ "ssl/pqueue.c" ], + "ssl/libssl-lib-priority_queue.o" => [ + "ssl/priority_queue.c" + ], "ssl/libssl-lib-s3_enc.o" => [ "ssl/s3_enc.c" ], @@ -25720,15 +30176,15 @@ our %unified_info = ( "ssl/libssl-lib-ssl_cert.o" => [ "ssl/ssl_cert.c" ], + "ssl/libssl-lib-ssl_cert_comp.o" => [ + "ssl/ssl_cert_comp.c" + ], "ssl/libssl-lib-ssl_ciph.o" => [ "ssl/ssl_ciph.c" ], "ssl/libssl-lib-ssl_conf.o" => [ "ssl/ssl_conf.c" ], - "ssl/libssl-lib-ssl_err.o" => [ - "ssl/ssl_err.c" - ], "ssl/libssl-lib-ssl_err_legacy.o" => [ "ssl/ssl_err_legacy.c" ], @@ -25777,11 +30233,131 @@ our %unified_info = ( "ssl/libssl-lib-tls_srp.o" => [ "ssl/tls_srp.c" ], - "ssl/record/libcommon-lib-tls_pad.o" => [ - "ssl/record/tls_pad.c" + "ssl/quic/libssl-lib-cc_newreno.o" => [ + "ssl/quic/cc_newreno.c" + ], + "ssl/quic/libssl-lib-json_enc.o" => [ + "ssl/quic/json_enc.c" + ], + "ssl/quic/libssl-lib-qlog.o" => [ + "ssl/quic/qlog.c" + ], + "ssl/quic/libssl-lib-qlog_event_helpers.o" => [ + "ssl/quic/qlog_event_helpers.c" + ], + "ssl/quic/libssl-lib-quic_ackm.o" => [ + "ssl/quic/quic_ackm.c" + ], + "ssl/quic/libssl-lib-quic_cfq.o" => [ + "ssl/quic/quic_cfq.c" + ], + "ssl/quic/libssl-lib-quic_channel.o" => [ + "ssl/quic/quic_channel.c" + ], + "ssl/quic/libssl-lib-quic_demux.o" => [ + "ssl/quic/quic_demux.c" + ], + "ssl/quic/libssl-lib-quic_engine.o" => [ + "ssl/quic/quic_engine.c" + ], + "ssl/quic/libssl-lib-quic_fc.o" => [ + "ssl/quic/quic_fc.c" + ], + "ssl/quic/libssl-lib-quic_fifd.o" => [ + "ssl/quic/quic_fifd.c" + ], + "ssl/quic/libssl-lib-quic_impl.o" => [ + "ssl/quic/quic_impl.c" + ], + "ssl/quic/libssl-lib-quic_lcidm.o" => [ + "ssl/quic/quic_lcidm.c" + ], + "ssl/quic/libssl-lib-quic_method.o" => [ + "ssl/quic/quic_method.c" + ], + "ssl/quic/libssl-lib-quic_obj.o" => [ + "ssl/quic/quic_obj.c" + ], + "ssl/quic/libssl-lib-quic_port.o" => [ + "ssl/quic/quic_port.c" + ], + "ssl/quic/libssl-lib-quic_rcidm.o" => [ + "ssl/quic/quic_rcidm.c" + ], + "ssl/quic/libssl-lib-quic_reactor.o" => [ + "ssl/quic/quic_reactor.c" + ], + "ssl/quic/libssl-lib-quic_reactor_wait_ctx.o" => [ + "ssl/quic/quic_reactor_wait_ctx.c" + ], + "ssl/quic/libssl-lib-quic_record_rx.o" => [ + "ssl/quic/quic_record_rx.c" + ], + "ssl/quic/libssl-lib-quic_record_shared.o" => [ + "ssl/quic/quic_record_shared.c" + ], + "ssl/quic/libssl-lib-quic_record_tx.o" => [ + "ssl/quic/quic_record_tx.c" + ], + "ssl/quic/libssl-lib-quic_record_util.o" => [ + "ssl/quic/quic_record_util.c" + ], + "ssl/quic/libssl-lib-quic_rstream.o" => [ + "ssl/quic/quic_rstream.c" ], - "ssl/record/libssl-lib-dtls1_bitmap.o" => [ - "ssl/record/dtls1_bitmap.c" + "ssl/quic/libssl-lib-quic_rx_depack.o" => [ + "ssl/quic/quic_rx_depack.c" + ], + "ssl/quic/libssl-lib-quic_sf_list.o" => [ + "ssl/quic/quic_sf_list.c" + ], + "ssl/quic/libssl-lib-quic_srt_gen.o" => [ + "ssl/quic/quic_srt_gen.c" + ], + "ssl/quic/libssl-lib-quic_srtm.o" => [ + "ssl/quic/quic_srtm.c" + ], + "ssl/quic/libssl-lib-quic_sstream.o" => [ + "ssl/quic/quic_sstream.c" + ], + "ssl/quic/libssl-lib-quic_statm.o" => [ + "ssl/quic/quic_statm.c" + ], + "ssl/quic/libssl-lib-quic_stream_map.o" => [ + "ssl/quic/quic_stream_map.c" + ], + "ssl/quic/libssl-lib-quic_thread_assist.o" => [ + "ssl/quic/quic_thread_assist.c" + ], + "ssl/quic/libssl-lib-quic_tls.o" => [ + "ssl/quic/quic_tls.c" + ], + "ssl/quic/libssl-lib-quic_tls_api.o" => [ + "ssl/quic/quic_tls_api.c" + ], + "ssl/quic/libssl-lib-quic_trace.o" => [ + "ssl/quic/quic_trace.c" + ], + "ssl/quic/libssl-lib-quic_tserver.o" => [ + "ssl/quic/quic_tserver.c" + ], + "ssl/quic/libssl-lib-quic_txp.o" => [ + "ssl/quic/quic_txp.c" + ], + "ssl/quic/libssl-lib-quic_txpim.o" => [ + "ssl/quic/quic_txpim.c" + ], + "ssl/quic/libssl-lib-quic_types.o" => [ + "ssl/quic/quic_types.c" + ], + "ssl/quic/libssl-lib-quic_wire.o" => [ + "ssl/quic/quic_wire.c" + ], + "ssl/quic/libssl-lib-quic_wire_pkt.o" => [ + "ssl/quic/quic_wire_pkt.c" + ], + "ssl/quic/libssl-lib-uint_set.o" => [ + "ssl/quic/uint_set.c" ], "ssl/record/libssl-lib-rec_layer_d1.o" => [ "ssl/record/rec_layer_d1.c" @@ -25789,14 +30365,44 @@ our %unified_info = ( "ssl/record/libssl-lib-rec_layer_s3.o" => [ "ssl/record/rec_layer_s3.c" ], - "ssl/record/libssl-lib-ssl3_buffer.o" => [ - "ssl/record/ssl3_buffer.c" + "ssl/record/methods/libcommon-lib-tls_pad.o" => [ + "ssl/record/methods/tls_pad.c" + ], + "ssl/record/methods/libdefault-lib-ssl3_cbc.o" => [ + "ssl/record/methods/ssl3_cbc.c" + ], + "ssl/record/methods/libfips-lib-ssl3_cbc.o" => [ + "ssl/record/methods/ssl3_cbc.c" + ], + "ssl/record/methods/libssl-lib-dtls_meth.o" => [ + "ssl/record/methods/dtls_meth.c" + ], + "ssl/record/methods/libssl-lib-ssl3_meth.o" => [ + "ssl/record/methods/ssl3_meth.c" + ], + "ssl/record/methods/libssl-lib-tls13_meth.o" => [ + "ssl/record/methods/tls13_meth.c" + ], + "ssl/record/methods/libssl-lib-tls1_meth.o" => [ + "ssl/record/methods/tls1_meth.c" + ], + "ssl/record/methods/libssl-lib-tls_common.o" => [ + "ssl/record/methods/tls_common.c" ], - "ssl/record/libssl-lib-ssl3_record.o" => [ - "ssl/record/ssl3_record.c" + "ssl/record/methods/libssl-lib-tls_multib.o" => [ + "ssl/record/methods/tls_multib.c" ], - "ssl/record/libssl-lib-ssl3_record_tls13.o" => [ - "ssl/record/ssl3_record_tls13.c" + "ssl/record/methods/libssl-lib-tlsany_meth.o" => [ + "ssl/record/methods/tlsany_meth.c" + ], + "ssl/rio/libssl-lib-poll_builder.o" => [ + "ssl/rio/poll_builder.c" + ], + "ssl/rio/libssl-lib-poll_immediate.o" => [ + "ssl/rio/poll_immediate.c" + ], + "ssl/rio/libssl-lib-rio_notifier.o" => [ + "ssl/rio/rio_notifier.c" ], "ssl/statem/libssl-lib-extensions.o" => [ "ssl/statem/extensions.c" @@ -25892,6 +30498,8 @@ our %unified_info = ( "test/asn1_string_table_test.c" ], "test/asn1_time_test" => [ + "crypto/asn1/asn1_time_test-bin-a_time.o", + "crypto/asn1_time_test-bin-ctype.o", "test/asn1_time_test-bin-asn1_time_test.o" ], "test/asn1_time_test-bin-asn1_time_test.o" => [ @@ -25922,6 +30530,18 @@ our %unified_info = ( "test/bftest-bin-bftest.o" => [ "test/bftest.c" ], + "test/bio_addr_test" => [ + "test/bio_addr_test-bin-bio_addr_test.o" + ], + "test/bio_addr_test-bin-bio_addr_test.o" => [ + "test/bio_addr_test.c" + ], + "test/bio_base64_test" => [ + "test/bio_base64_test-bin-bio_base64_test.o" + ], + "test/bio_base64_test-bin-bio_base64_test.o" => [ + "test/bio_base64_test.c" + ], "test/bio_callback_test" => [ "test/bio_callback_test-bin-bio_callback_test.o" ], @@ -25934,6 +30554,12 @@ our %unified_info = ( "test/bio_core_test-bin-bio_core_test.o" => [ "test/bio_core_test.c" ], + "test/bio_dgram_test" => [ + "test/bio_dgram_test-bin-bio_dgram_test.o" + ], + "test/bio_dgram_test-bin-bio_dgram_test.o" => [ + "test/bio_dgram_test.c" + ], "test/bio_enc_test" => [ "test/bio_enc_test-bin-bio_enc_test.o" ], @@ -25946,6 +30572,12 @@ our %unified_info = ( "test/bio_memleak_test-bin-bio_memleak_test.o" => [ "test/bio_memleak_test.c" ], + "test/bio_meth_test" => [ + "test/bio_meth_test-bin-bio_meth_test.o" + ], + "test/bio_meth_test-bin-bio_meth_test.o" => [ + "test/bio_meth_test.c" + ], "test/bio_prefix_text" => [ "test/bio_prefix_text-bin-bio_prefix_text.o" ], @@ -25964,6 +30596,12 @@ our %unified_info = ( "test/bio_readbuffer_test-bin-bio_readbuffer_test.o" => [ "test/bio_readbuffer_test.c" ], + "test/bio_tfo_test" => [ + "test/bio_tfo_test-bin-bio_tfo_test.o" + ], + "test/bio_tfo_test-bin-bio_tfo_test.o" => [ + "test/bio_tfo_test.c" + ], "test/bioprinttest" => [ "test/bioprinttest-bin-bioprinttest.o" ], @@ -25982,6 +30620,12 @@ our %unified_info = ( "test/bntest-bin-bntest.o" => [ "test/bntest.c" ], + "test/build_wincrypt_test" => [ + "test/build_wincrypt_test-bin-build_wincrypt_test.o" + ], + "test/build_wincrypt_test-bin-build_wincrypt_test.o" => [ + "test/build_wincrypt_test.c" + ], "test/buildtest_c_aes" => [ "test/buildtest_c_aes-bin-buildtest_aes.o" ], @@ -26012,6 +30656,12 @@ our %unified_info = ( "test/buildtest_c_buffer-bin-buildtest_buffer.o" => [ "test/buildtest_buffer.c" ], + "test/buildtest_c_byteorder" => [ + "test/buildtest_c_byteorder-bin-buildtest_byteorder.o" + ], + "test/buildtest_c_byteorder-bin-buildtest_byteorder.o" => [ + "test/buildtest_byteorder.c" + ], "test/buildtest_c_camellia" => [ "test/buildtest_c_camellia-bin-buildtest_camellia.o" ], @@ -26060,12 +30710,6 @@ our %unified_info = ( "test/buildtest_c_core_dispatch-bin-buildtest_core_dispatch.o" => [ "test/buildtest_core_dispatch.c" ], - "test/buildtest_c_core_names" => [ - "test/buildtest_c_core_names-bin-buildtest_core_names.o" - ], - "test/buildtest_c_core_names-bin-buildtest_core_names.o" => [ - "test/buildtest_core_names.c" - ], "test/buildtest_c_core_object" => [ "test/buildtest_c_core_object-bin-buildtest_core_object.o" ], @@ -26114,6 +30758,12 @@ our %unified_info = ( "test/buildtest_c_e_os2-bin-buildtest_e_os2.o" => [ "test/buildtest_e_os2.c" ], + "test/buildtest_c_e_ostime" => [ + "test/buildtest_c_e_ostime-bin-buildtest_e_ostime.o" + ], + "test/buildtest_c_e_ostime-bin-buildtest_e_ostime.o" => [ + "test/buildtest_e_ostime.c" + ], "test/buildtest_c_ebcdic" => [ "test/buildtest_c_ebcdic-bin-buildtest_ebcdic.o" ], @@ -26168,6 +30818,12 @@ our %unified_info = ( "test/buildtest_c_hmac-bin-buildtest_hmac.o" => [ "test/buildtest_hmac.c" ], + "test/buildtest_c_hpke" => [ + "test/buildtest_c_hpke-bin-buildtest_hpke.o" + ], + "test/buildtest_c_hpke-bin-buildtest_hpke.o" => [ + "test/buildtest_hpke.c" + ], "test/buildtest_c_http" => [ "test/buildtest_c_http-bin-buildtest_http.o" ], @@ -26180,6 +30836,12 @@ our %unified_info = ( "test/buildtest_c_idea-bin-buildtest_idea.o" => [ "test/buildtest_idea.c" ], + "test/buildtest_c_indicator" => [ + "test/buildtest_c_indicator-bin-buildtest_indicator.o" + ], + "test/buildtest_c_indicator-bin-buildtest_indicator.o" => [ + "test/buildtest_indicator.c" + ], "test/buildtest_c_kdf" => [ "test/buildtest_c_kdf-bin-buildtest_kdf.o" ], @@ -26210,6 +30872,12 @@ our %unified_info = ( "test/buildtest_c_mdc2-bin-buildtest_mdc2.o" => [ "test/buildtest_mdc2.c" ], + "test/buildtest_c_ml_kem" => [ + "test/buildtest_c_ml_kem-bin-buildtest_ml_kem.o" + ], + "test/buildtest_c_ml_kem-bin-buildtest_ml_kem.o" => [ + "test/buildtest_ml_kem.c" + ], "test/buildtest_c_modes" => [ "test/buildtest_c_modes-bin-buildtest_modes.o" ], @@ -26270,6 +30938,12 @@ our %unified_info = ( "test/buildtest_c_provider-bin-buildtest_provider.o" => [ "test/buildtest_provider.c" ], + "test/buildtest_c_quic" => [ + "test/buildtest_c_quic-bin-buildtest_quic.o" + ], + "test/buildtest_c_quic-bin-buildtest_quic.o" => [ + "test/buildtest_quic.c" + ], "test/buildtest_c_rand" => [ "test/buildtest_c_rand-bin-buildtest_rand.o" ], @@ -26354,6 +31028,12 @@ our %unified_info = ( "test/buildtest_c_symhacks-bin-buildtest_symhacks.o" => [ "test/buildtest_symhacks.c" ], + "test/buildtest_c_thread" => [ + "test/buildtest_c_thread-bin-buildtest_thread.o" + ], + "test/buildtest_c_thread-bin-buildtest_thread.o" => [ + "test/buildtest_thread.c" + ], "test/buildtest_c_tls1" => [ "test/buildtest_c_tls1-bin-buildtest_tls1.o" ], @@ -26384,6 +31064,29 @@ our %unified_info = ( "test/buildtest_c_whrlpool-bin-buildtest_whrlpool.o" => [ "test/buildtest_whrlpool.c" ], + "test/byteorder_test" => [ + "test/byteorder_test-bin-byteorder_test.o" + ], + "test/byteorder_test-bin-byteorder_test.o" => [ + "test/byteorder_test.c" + ], + "test/ca_internals_test" => [ + "apps/ca_internals_test-bin-ca.o", + "apps/lib/ca_internals_test-bin-app_libctx.o", + "apps/lib/ca_internals_test-bin-app_provider.o", + "apps/lib/ca_internals_test-bin-app_rand.o", + "apps/lib/ca_internals_test-bin-app_x509.o", + "apps/lib/ca_internals_test-bin-apps.o", + "apps/lib/ca_internals_test-bin-apps_ui.o", + "apps/lib/ca_internals_test-bin-engine.o", + "apps/lib/ca_internals_test-bin-fmt.o", + "crypto/asn1/ca_internals_test-bin-a_time.o", + "crypto/ca_internals_test-bin-ctype.o", + "test/ca_internals_test-bin-ca_internals_test.o" + ], + "test/ca_internals_test-bin-ca_internals_test.o" => [ + "test/ca_internals_test.c" + ], "test/casttest" => [ "test/casttest-bin-casttest.o" ], @@ -26562,6 +31265,12 @@ our %unified_info = ( "test/danetest-bin-danetest.o" => [ "test/danetest.c" ], + "test/decoder_propq_test" => [ + "test/decoder_propq_test-bin-decoder_propq_test.o" + ], + "test/decoder_propq_test-bin-decoder_propq_test.o" => [ + "test/decoder_propq_test.c" + ], "test/defltfips_test" => [ "test/defltfips_test-bin-defltfips_test.o" ], @@ -26643,6 +31352,7 @@ our %unified_info = ( "test/ectest.c" ], "test/endecode_test" => [ + "providers/endecode_test-bin-legacyprov.o", "test/endecode_test-bin-endecode_test.o", "test/helpers/endecode_test-bin-predefined_dhparams.o" ], @@ -26675,17 +31385,29 @@ our %unified_info = ( ], "test/evp_extra_test" => [ "providers/evp_extra_test-bin-legacyprov.o", - "test/evp_extra_test-bin-evp_extra_test.o" + "test/evp_extra_test-bin-evp_extra_test.o", + "test/evp_extra_test-bin-fake_pipelineprov.o", + "test/evp_extra_test-bin-fake_rsaprov.o" ], "test/evp_extra_test-bin-evp_extra_test.o" => [ "test/evp_extra_test.c" ], + "test/evp_extra_test-bin-fake_pipelineprov.o" => [ + "test/fake_pipelineprov.c" + ], + "test/evp_extra_test-bin-fake_rsaprov.o" => [ + "test/fake_rsaprov.c" + ], "test/evp_extra_test2" => [ - "test/evp_extra_test2-bin-evp_extra_test2.o" + "test/evp_extra_test2-bin-evp_extra_test2.o", + "test/evp_extra_test2-bin-tls-provider.o" ], "test/evp_extra_test2-bin-evp_extra_test2.o" => [ "test/evp_extra_test2.c" ], + "test/evp_extra_test2-bin-tls-provider.o" => [ + "test/tls-provider.c" + ], "test/evp_fetch_prov_test" => [ "test/evp_fetch_prov_test-bin-evp_fetch_prov_test.o" ], @@ -26710,6 +31432,12 @@ our %unified_info = ( "test/evp_pkey_ctx_new_from_name-bin-evp_pkey_ctx_new_from_name.o" => [ "test/evp_pkey_ctx_new_from_name.c" ], + "test/evp_pkey_dhkem_test" => [ + "test/evp_pkey_dhkem_test-bin-evp_pkey_dhkem_test.o" + ], + "test/evp_pkey_dhkem_test-bin-evp_pkey_dhkem_test.o" => [ + "test/evp_pkey_dhkem_test.c" + ], "test/evp_pkey_dparams_test" => [ "test/evp_pkey_dparams_test-bin-evp_pkey_dparams_test.o" ], @@ -26722,12 +31450,28 @@ our %unified_info = ( "test/evp_pkey_provided_test-bin-evp_pkey_provided_test.o" => [ "test/evp_pkey_provided_test.c" ], + "test/evp_skey_test" => [ + "test/evp_skey_test-bin-evp_skey_test.o", + "test/evp_skey_test-bin-fake_cipherprov.o" + ], + "test/evp_skey_test-bin-evp_skey_test.o" => [ + "test/evp_skey_test.c" + ], + "test/evp_skey_test-bin-fake_cipherprov.o" => [ + "test/fake_cipherprov.c" + ], "test/evp_test" => [ "test/evp_test-bin-evp_test.o" ], "test/evp_test-bin-evp_test.o" => [ "test/evp_test.c" ], + "test/evp_xof_test" => [ + "test/evp_xof_test-bin-evp_xof_test.o" + ], + "test/evp_xof_test-bin-evp_xof_test.o" => [ + "test/evp_xof_test.c" + ], "test/exdatatest" => [ "test/exdatatest-bin-exdatatest.o" ], @@ -26813,15 +31557,108 @@ our %unified_info = ( "test/helpers/fatalerrtest-bin-ssltestlib.o" => [ "test/helpers/ssltestlib.c" ], + "test/helpers/json_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/json_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/json_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/json_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/pkcs12_api_test-bin-pkcs12.o" => [ + "test/helpers/pkcs12.c" + ], "test/helpers/pkcs12_format_test-bin-pkcs12.o" => [ "test/helpers/pkcs12.c" ], + "test/helpers/quic_multistream_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quic_multistream_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quic_multistream_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quic_multistream_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quic_newcid_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quic_newcid_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quic_newcid_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quic_newcid_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quic_radix_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quic_radix_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quic_radix_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quic_radix_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quic_srt_gen_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quic_srt_gen_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quic_srt_gen_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quic_srt_gen_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quicapitest-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quicapitest-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quicapitest-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quicapitest-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quicfaultstest-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quicfaultstest-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quicfaultstest-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quicfaultstest-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], "test/helpers/recordlentest-bin-ssltestlib.o" => [ "test/helpers/ssltestlib.c" ], + "test/helpers/rpktest-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], "test/helpers/servername_test-bin-ssltestlib.o" => [ "test/helpers/ssltestlib.c" ], + "test/helpers/ssl_handshake_rtt_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], "test/helpers/ssl_old_test-bin-predefined_dhparams.o" => [ "test/helpers/predefined_dhparams.c" ], @@ -26849,6 +31686,9 @@ our %unified_info = ( "test/helpers/tls13ccstest-bin-ssltestlib.o" => [ "test/helpers/ssltestlib.c" ], + "test/helpers/tls13groupselection_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], "test/hexstr_test" => [ "test/hexstr_test-bin-hexstr_test.o" ], @@ -26861,6 +31701,12 @@ our %unified_info = ( "test/hmactest-bin-hmactest.o" => [ "test/hmactest.c" ], + "test/hpke_test" => [ + "test/hpke_test-bin-hpke_test.o" + ], + "test/hpke_test-bin-hpke_test.o" => [ + "test/hpke_test.c" + ], "test/http_test" => [ "test/http_test-bin-http_test.o" ], @@ -26879,6 +31725,16 @@ our %unified_info = ( "test/igetest-bin-igetest.o" => [ "test/igetest.c" ], + "test/json_test" => [ + "test/helpers/json_test-bin-noisydgrambio.o", + "test/helpers/json_test-bin-pktsplitbio.o", + "test/helpers/json_test-bin-quictestlib.o", + "test/helpers/json_test-bin-ssltestlib.o", + "test/json_test-bin-json_test.o" + ], + "test/json_test-bin-json_test.o" => [ + "test/json_test.c" + ], "test/keymgmt_internal_test" => [ "test/keymgmt_internal_test-bin-keymgmt_internal_test.o" ], @@ -26899,6 +31755,7 @@ our %unified_info = ( "test/testutil/libtestutil-lib-driver.o", "test/testutil/libtestutil-lib-fake_random.o", "test/testutil/libtestutil-lib-format_output.o", + "test/testutil/libtestutil-lib-helper.o", "test/testutil/libtestutil-lib-load.o", "test/testutil/libtestutil-lib-main.o", "test/testutil/libtestutil-lib-options.o", @@ -26911,6 +31768,12 @@ our %unified_info = ( "test/testutil/libtestutil-lib-tests.o", "test/testutil/libtestutil-lib-testutil_init.o" ], + "test/list_test" => [ + "test/list_test-bin-list_test.o" + ], + "test/list_test-bin-list_test.o" => [ + "test/list_test.c" + ], "test/localetest" => [ "test/localetest-bin-localetest.o" ], @@ -26929,12 +31792,36 @@ our %unified_info = ( "test/mdc2test-bin-mdc2test.o" => [ "test/mdc2test.c" ], + "test/membio_test" => [ + "test/membio_test-bin-membio_test.o" + ], + "test/membio_test-bin-membio_test.o" => [ + "test/membio_test.c" + ], "test/memleaktest" => [ "test/memleaktest-bin-memleaktest.o" ], "test/memleaktest-bin-memleaktest.o" => [ "test/memleaktest.c" ], + "test/ml_dsa_test" => [ + "test/ml_dsa_test-bin-ml_dsa_test.o" + ], + "test/ml_dsa_test-bin-ml_dsa_test.o" => [ + "test/ml_dsa_test.c" + ], + "test/ml_kem_evp_extra_test" => [ + "test/ml_kem_evp_extra_test-bin-ml_kem_evp_extra_test.o" + ], + "test/ml_kem_evp_extra_test-bin-ml_kem_evp_extra_test.o" => [ + "test/ml_kem_evp_extra_test.c" + ], + "test/ml_kem_internal_test" => [ + "test/ml_kem_internal_test-bin-ml_kem_internal_test.o" + ], + "test/ml_kem_internal_test-bin-ml_kem_internal_test.o" => [ + "test/ml_kem_internal_test.c" + ], "test/modes_internal_test" => [ "test/modes_internal_test-bin-modes_internal_test.o" ], @@ -26978,11 +31865,18 @@ our %unified_info = ( "test/p_test.c" ], "test/packettest" => [ + "crypto/packettest-bin-quic_vlint.o", "test/packettest-bin-packettest.o" ], "test/packettest-bin-packettest.o" => [ "test/packettest.c" ], + "test/pairwise_fail_test" => [ + "test/pairwise_fail_test-bin-pairwise_fail_test.o" + ], + "test/pairwise_fail_test-bin-pairwise_fail_test.o" => [ + "test/pairwise_fail_test.c" + ], "test/param_build_test" => [ "test/param_build_test-bin-param_build_test.o" ], @@ -27031,6 +31925,13 @@ our %unified_info = ( "test/pemtest-bin-pemtest.o" => [ "test/pemtest.c" ], + "test/pkcs12_api_test" => [ + "test/helpers/pkcs12_api_test-bin-pkcs12.o", + "test/pkcs12_api_test-bin-pkcs12_api_test.o" + ], + "test/pkcs12_api_test-bin-pkcs12_api_test.o" => [ + "test/pkcs12_api_test.c" + ], "test/pkcs12_format_test" => [ "test/helpers/pkcs12_format_test-bin-pkcs12.o", "test/pkcs12_format_test-bin-pkcs12_format_test.o" @@ -27062,6 +31963,12 @@ our %unified_info = ( "test/poly1305_internal_test-bin-poly1305_internal_test.o" => [ "test/poly1305_internal_test.c" ], + "test/priority_queue_test" => [ + "test/priority_queue_test-bin-priority_queue_test.o" + ], + "test/priority_queue_test-bin-priority_queue_test.o" => [ + "test/priority_queue_test.c" + ], "test/property_test" => [ "test/property_test-bin-property_test.o" ], @@ -27080,6 +31987,12 @@ our %unified_info = ( "test/provfetchtest-bin-provfetchtest.o" => [ "test/provfetchtest.c" ], + "test/provider_default_search_path_test" => [ + "test/provider_default_search_path_test-bin-provider_default_search_path_test.o" + ], + "test/provider_default_search_path_test-bin-provider_default_search_path_test.o" => [ + "test/provider_default_search_path_test.c" + ], "test/provider_fallback_test" => [ "test/provider_fallback_test-bin-provider_fallback_test.o" ], @@ -27128,6 +32041,174 @@ our %unified_info = ( "test/punycode_test-bin-punycode_test.o" => [ "test/punycode_test.c" ], + "test/quic_ackm_test" => [ + "test/quic_ackm_test-bin-cc_dummy.o", + "test/quic_ackm_test-bin-quic_ackm_test.o" + ], + "test/quic_ackm_test-bin-cc_dummy.o" => [ + "test/cc_dummy.c" + ], + "test/quic_ackm_test-bin-quic_ackm_test.o" => [ + "test/quic_ackm_test.c" + ], + "test/quic_cc_test" => [ + "test/quic_cc_test-bin-quic_cc_test.o" + ], + "test/quic_cc_test-bin-quic_cc_test.o" => [ + "test/quic_cc_test.c" + ], + "test/quic_cfq_test" => [ + "test/quic_cfq_test-bin-quic_cfq_test.o" + ], + "test/quic_cfq_test-bin-quic_cfq_test.o" => [ + "test/quic_cfq_test.c" + ], + "test/quic_client_test" => [ + "test/quic_client_test-bin-quic_client_test.o" + ], + "test/quic_client_test-bin-quic_client_test.o" => [ + "test/quic_client_test.c" + ], + "test/quic_fc_test" => [ + "test/quic_fc_test-bin-quic_fc_test.o" + ], + "test/quic_fc_test-bin-quic_fc_test.o" => [ + "test/quic_fc_test.c" + ], + "test/quic_fifd_test" => [ + "test/quic_fifd_test-bin-cc_dummy.o", + "test/quic_fifd_test-bin-quic_fifd_test.o" + ], + "test/quic_fifd_test-bin-cc_dummy.o" => [ + "test/cc_dummy.c" + ], + "test/quic_fifd_test-bin-quic_fifd_test.o" => [ + "test/quic_fifd_test.c" + ], + "test/quic_lcidm_test" => [ + "test/quic_lcidm_test-bin-quic_lcidm_test.o" + ], + "test/quic_lcidm_test-bin-quic_lcidm_test.o" => [ + "test/quic_lcidm_test.c" + ], + "test/quic_multistream_test" => [ + "test/helpers/quic_multistream_test-bin-noisydgrambio.o", + "test/helpers/quic_multistream_test-bin-pktsplitbio.o", + "test/helpers/quic_multistream_test-bin-quictestlib.o", + "test/helpers/quic_multistream_test-bin-ssltestlib.o", + "test/quic_multistream_test-bin-quic_multistream_test.o" + ], + "test/quic_multistream_test-bin-quic_multistream_test.o" => [ + "test/quic_multistream_test.c" + ], + "test/quic_newcid_test" => [ + "test/helpers/quic_newcid_test-bin-noisydgrambio.o", + "test/helpers/quic_newcid_test-bin-pktsplitbio.o", + "test/helpers/quic_newcid_test-bin-quictestlib.o", + "test/helpers/quic_newcid_test-bin-ssltestlib.o", + "test/quic_newcid_test-bin-quic_newcid_test.o" + ], + "test/quic_newcid_test-bin-quic_newcid_test.o" => [ + "test/quic_newcid_test.c" + ], + "test/quic_qlog_test" => [ + "test/quic_qlog_test-bin-quic_qlog_test.o" + ], + "test/quic_qlog_test-bin-quic_qlog_test.o" => [ + "test/quic_qlog_test.c" + ], + "test/quic_radix_test" => [ + "test/helpers/quic_radix_test-bin-noisydgrambio.o", + "test/helpers/quic_radix_test-bin-pktsplitbio.o", + "test/helpers/quic_radix_test-bin-quictestlib.o", + "test/helpers/quic_radix_test-bin-ssltestlib.o", + "test/radix/quic_radix_test-bin-quic_radix.o" + ], + "test/quic_rcidm_test" => [ + "test/quic_rcidm_test-bin-quic_rcidm_test.o" + ], + "test/quic_rcidm_test-bin-quic_rcidm_test.o" => [ + "test/quic_rcidm_test.c" + ], + "test/quic_record_test" => [ + "test/quic_record_test-bin-quic_record_test.o" + ], + "test/quic_record_test-bin-quic_record_test.o" => [ + "test/quic_record_test.c" + ], + "test/quic_srt_gen_test" => [ + "test/helpers/quic_srt_gen_test-bin-noisydgrambio.o", + "test/helpers/quic_srt_gen_test-bin-pktsplitbio.o", + "test/helpers/quic_srt_gen_test-bin-quictestlib.o", + "test/helpers/quic_srt_gen_test-bin-ssltestlib.o", + "test/quic_srt_gen_test-bin-quic_srt_gen_test.o" + ], + "test/quic_srt_gen_test-bin-quic_srt_gen_test.o" => [ + "test/quic_srt_gen_test.c" + ], + "test/quic_srtm_test" => [ + "test/quic_srtm_test-bin-quic_srtm_test.o" + ], + "test/quic_srtm_test-bin-quic_srtm_test.o" => [ + "test/quic_srtm_test.c" + ], + "test/quic_stream_test" => [ + "test/quic_stream_test-bin-quic_stream_test.o" + ], + "test/quic_stream_test-bin-quic_stream_test.o" => [ + "test/quic_stream_test.c" + ], + "test/quic_tserver_test" => [ + "test/quic_tserver_test-bin-quic_tserver_test.o" + ], + "test/quic_tserver_test-bin-quic_tserver_test.o" => [ + "test/quic_tserver_test.c" + ], + "test/quic_txp_test" => [ + "test/quic_txp_test-bin-cc_dummy.o", + "test/quic_txp_test-bin-quic_txp_test.o" + ], + "test/quic_txp_test-bin-cc_dummy.o" => [ + "test/cc_dummy.c" + ], + "test/quic_txp_test-bin-quic_txp_test.o" => [ + "test/quic_txp_test.c" + ], + "test/quic_txpim_test" => [ + "test/quic_txpim_test-bin-quic_txpim_test.o" + ], + "test/quic_txpim_test-bin-quic_txpim_test.o" => [ + "test/quic_txpim_test.c" + ], + "test/quic_wire_test" => [ + "test/quic_wire_test-bin-quic_wire_test.o" + ], + "test/quic_wire_test-bin-quic_wire_test.o" => [ + "test/quic_wire_test.c" + ], + "test/quicapitest" => [ + "test/helpers/quicapitest-bin-noisydgrambio.o", + "test/helpers/quicapitest-bin-pktsplitbio.o", + "test/helpers/quicapitest-bin-quictestlib.o", + "test/helpers/quicapitest-bin-ssltestlib.o", + "test/quicapitest-bin-quicapitest.o" + ], + "test/quicapitest-bin-quicapitest.o" => [ + "test/quicapitest.c" + ], + "test/quicfaultstest" => [ + "test/helpers/quicfaultstest-bin-noisydgrambio.o", + "test/helpers/quicfaultstest-bin-pktsplitbio.o", + "test/helpers/quicfaultstest-bin-quictestlib.o", + "test/helpers/quicfaultstest-bin-ssltestlib.o", + "test/quicfaultstest-bin-quicfaultstest.o" + ], + "test/quicfaultstest-bin-quicfaultstest.o" => [ + "test/quicfaultstest.c" + ], + "test/radix/quic_radix_test-bin-quic_radix.o" => [ + "test/radix/quic_radix.c" + ], "test/rand_status_test" => [ "test/rand_status_test-bin-rand_status_test.o" ], @@ -27158,11 +32239,11 @@ our %unified_info = ( "test/rc5test-bin-rc5test.o" => [ "test/rc5test.c" ], - "test/rdrand_sanitytest" => [ - "test/rdrand_sanitytest-bin-rdrand_sanitytest.o" + "test/rdcpu_sanitytest" => [ + "test/rdcpu_sanitytest-bin-rdcpu_sanitytest.o" ], - "test/rdrand_sanitytest-bin-rdrand_sanitytest.o" => [ - "test/rdrand_sanitytest.c" + "test/rdcpu_sanitytest-bin-rdcpu_sanitytest.o" => [ + "test/rdcpu_sanitytest.c" ], "test/recordlentest" => [ "test/helpers/recordlentest-bin-ssltestlib.o", @@ -27171,6 +32252,13 @@ our %unified_info = ( "test/recordlentest-bin-recordlentest.o" => [ "test/recordlentest.c" ], + "test/rpktest" => [ + "test/helpers/rpktest-bin-ssltestlib.o", + "test/rpktest-bin-rpktest.o" + ], + "test/rpktest-bin-rpktest.o" => [ + "test/rpktest.c" + ], "test/rsa_complex" => [ "test/rsa_complex-bin-rsa_complex.o" ], @@ -27195,6 +32283,18 @@ our %unified_info = ( "test/rsa_test-bin-rsa_test.o" => [ "test/rsa_test.c" ], + "test/rsa_x931_test" => [ + "test/rsa_x931_test-bin-rsa_x931_test.o" + ], + "test/rsa_x931_test-bin-rsa_x931_test.o" => [ + "test/rsa_x931_test.c" + ], + "test/safe_math_test" => [ + "test/safe_math_test-bin-safe_math_test.o" + ], + "test/safe_math_test-bin-safe_math_test.o" => [ + "test/safe_math_test.c" + ], "test/sanitytest" => [ "test/sanitytest-bin-sanitytest.o" ], @@ -27226,6 +32326,12 @@ our %unified_info = ( "test/siphash_internal_test-bin-siphash_internal_test.o" => [ "test/siphash_internal_test.c" ], + "test/slh_dsa_test" => [ + "test/slh_dsa_test-bin-slh_dsa_test.o" + ], + "test/slh_dsa_test-bin-slh_dsa_test.o" => [ + "test/slh_dsa_test.c" + ], "test/sm2_internal_test" => [ "test/sm2_internal_test-bin-sm2_internal_test.o" ], @@ -27268,6 +32374,13 @@ our %unified_info = ( "test/ssl_ctx_test-bin-ssl_ctx_test.o" => [ "test/ssl_ctx_test.c" ], + "test/ssl_handshake_rtt_test" => [ + "test/helpers/ssl_handshake_rtt_test-bin-ssltestlib.o", + "test/ssl_handshake_rtt_test-bin-ssl_handshake_rtt_test.o" + ], + "test/ssl_handshake_rtt_test-bin-ssl_handshake_rtt_test.o" => [ + "test/ssl_handshake_rtt_test.c" + ], "test/ssl_old_test" => [ "test/helpers/ssl_old_test-bin-predefined_dhparams.o", "test/ssl_old_test-bin-ssl_old_test.o" @@ -27326,6 +32439,12 @@ our %unified_info = ( "test/stack_test-bin-stack_test.o" => [ "test/stack_test.c" ], + "test/strtoultest" => [ + "test/strtoultest-bin-strtoultest.o" + ], + "test/strtoultest-bin-strtoultest.o" => [ + "test/strtoultest.c" + ], "test/sysdefaulttest" => [ "test/sysdefaulttest-bin-sysdefaulttest.o" ], @@ -27356,6 +32475,9 @@ our %unified_info = ( "test/testutil/libtestutil-lib-format_output.o" => [ "test/testutil/format_output.c" ], + "test/testutil/libtestutil-lib-helper.o" => [ + "test/testutil/helper.c" + ], "test/testutil/libtestutil-lib-load.o" => [ "test/testutil/load.c" ], @@ -27389,6 +32511,12 @@ our %unified_info = ( "test/testutil/libtestutil-lib-testutil_init.o" => [ "test/testutil/testutil_init.c" ], + "test/threadpool_test" => [ + "test/threadpool_test-bin-threadpool_test.o" + ], + "test/threadpool_test-bin-threadpool_test.o" => [ + "test/threadpool_test.c" + ], "test/threadstest" => [ "test/threadstest-bin-threadstest.o" ], @@ -27407,6 +32535,12 @@ our %unified_info = ( "test/time_offset_test-bin-time_offset_test.o" => [ "test/time_offset_test.c" ], + "test/time_test" => [ + "test/time_test-bin-time_test.o" + ], + "test/time_test-bin-time_test.o" => [ + "test/time_test.c" + ], "test/tls13ccstest" => [ "test/helpers/tls13ccstest-bin-ssltestlib.o", "test/tls13ccstest-bin-tls13ccstest.o" @@ -27420,6 +32554,13 @@ our %unified_info = ( "test/tls13encryptiontest-bin-tls13encryptiontest.o" => [ "test/tls13encryptiontest.c" ], + "test/tls13groupselection_test" => [ + "test/helpers/tls13groupselection_test-bin-ssltestlib.o", + "test/tls13groupselection_test-bin-tls13groupselection_test.o" + ], + "test/tls13groupselection_test-bin-tls13groupselection_test.o" => [ + "test/tls13groupselection_test.c" + ], "test/trace_api_test" => [ "test/trace_api_test-bin-trace_api_test.o" ], @@ -27475,6 +32616,12 @@ our %unified_info = ( "test/wpackettest-bin-wpackettest.o" => [ "test/wpackettest.c" ], + "test/x509_acert_test" => [ + "test/x509_acert_test-bin-x509_acert_test.o" + ], + "test/x509_acert_test-bin-x509_acert_test.o" => [ + "test/x509_acert_test.c" + ], "test/x509_check_cert_pkey_test" => [ "test/x509_check_cert_pkey_test-bin-x509_check_cert_pkey_test.o" ], @@ -27493,6 +32640,24 @@ our %unified_info = ( "test/x509_internal_test-bin-x509_internal_test.o" => [ "test/x509_internal_test.c" ], + "test/x509_load_cert_file_test" => [ + "test/x509_load_cert_file_test-bin-x509_load_cert_file_test.o" + ], + "test/x509_load_cert_file_test-bin-x509_load_cert_file_test.o" => [ + "test/x509_load_cert_file_test.c" + ], + "test/x509_req_test" => [ + "test/x509_req_test-bin-x509_req_test.o" + ], + "test/x509_req_test-bin-x509_req_test.o" => [ + "test/x509_req_test.c" + ], + "test/x509_test" => [ + "test/x509_test-bin-x509_test.o" + ], + "test/x509_test-bin-x509_test.o" => [ + "test/x509_test.c" + ], "test/x509_time_test" => [ "test/x509_time_test-bin-x509_time_test.o" ], @@ -27556,6 +32721,7 @@ my @makevars = ( "LDLIBS", "MT", "MTFLAGS", + "OBJCOPY", "PERL", "RANLIB", "RC", @@ -27569,6 +32735,12 @@ my %disabled_info = ( "asan" => { "macro" => "OPENSSL_NO_ASAN" }, + "brotli" => { + "macro" => "OPENSSL_NO_BROTLI" + }, + "brotli-dynamic" => { + "macro" => "OPENSSL_NO_BROTLI_DYNAMIC" + }, "comp" => { "macro" => "OPENSSL_NO_COMP", "skipped" => [ @@ -27581,6 +32753,9 @@ my %disabled_info = ( "crypto-mdebug-backtrace" => { "macro" => "OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE" }, + "demos" => { + "macro" => "OPENSSL_NO_DEMOS" + }, "devcryptoeng" => { "macro" => "OPENSSL_NO_DEVCRYPTOENG" }, @@ -27593,12 +32768,24 @@ my %disabled_info = ( "external-tests" => { "macro" => "OPENSSL_NO_EXTERNAL_TESTS" }, + "fips-jitter" => { + "macro" => "OPENSSL_NO_FIPS_JITTER" + }, "fuzz-afl" => { "macro" => "OPENSSL_NO_FUZZ_AFL" }, "fuzz-libfuzzer" => { "macro" => "OPENSSL_NO_FUZZ_LIBFUZZER" }, + "h3demo" => { + "macro" => "OPENSSL_NO_H3DEMO" + }, + "hqinterop" => { + "macro" => "OPENSSL_NO_HQINTEROP" + }, + "jitter" => { + "macro" => "OPENSSL_NO_JITTER" + }, "ktls" => { "macro" => "OPENSSL_NO_KTLS" }, @@ -27614,6 +32801,9 @@ my %disabled_info = ( "msan" => { "macro" => "OPENSSL_NO_MSAN" }, + "pie" => { + "macro" => "OPENSSL_NO_PIE" + }, "rc5" => { "macro" => "OPENSSL_NO_RC5", "skipped" => [ @@ -27629,6 +32819,12 @@ my %disabled_info = ( "ssl3-method" => { "macro" => "OPENSSL_NO_SSL3_METHOD" }, + "sslkeylog" => { + "macro" => "OPENSSL_NO_SSLKEYLOG" + }, + "tfo" => { + "macro" => "OPENSSL_NO_TFO" + }, "trace" => { "macro" => "OPENSSL_NO_TRACE" }, @@ -27643,6 +32839,21 @@ my %disabled_info = ( }, "weak-ssl-ciphers" => { "macro" => "OPENSSL_NO_WEAK_SSL_CIPHERS" + }, + "winstore" => { + "macro" => "OPENSSL_NO_WINSTORE" + }, + "zlib" => { + "macro" => "OPENSSL_NO_ZLIB" + }, + "zlib-dynamic" => { + "macro" => "OPENSSL_NO_ZLIB_DYNAMIC" + }, + "zstd" => { + "macro" => "OPENSSL_NO_ZSTD" + }, + "zstd-dynamic" => { + "macro" => "OPENSSL_NO_ZSTD_DYNAMIC" } ); my @user_crossable = qw( AR AS CC CXX CPP LD MT RANLIB RC ); @@ -27656,15 +32867,15 @@ unless (caller) { use File::Copy; use Pod::Usage; - use lib '/home/runner/work/node/node/deps/openssl/openssl/util/perl'; - use OpenSSL::fallback '/home/runner/work/node/node/deps/openssl/openssl/external/perl/MODULES.txt'; + use lib '/node/deps/openssl/openssl/util/perl'; + use OpenSSL::fallback '/node/deps/openssl/openssl/external/perl/MODULES.txt'; my $here = dirname($0); if (scalar @ARGV == 0) { # With no arguments, re-create the build file # We do that in two steps, where the first step emits perl - # snipets. + # snippets. my $buildfile = $config{build_file}; my $buildfile_template = "$buildfile.in"; @@ -27684,7 +32895,7 @@ unless (caller) { ); use lib '.'; - use lib '/home/runner/work/node/node/deps/openssl/openssl/Configurations'; + use lib '/node/deps/openssl/openssl/Configurations'; use gentemplate; open my $buildfile_template_fh, ">$buildfile_template" @@ -27701,8 +32912,8 @@ unless (caller) { my $prepend = <<'_____'; use File::Spec::Functions; -use lib '/home/runner/work/node/node/deps/openssl/openssl/util/perl'; -use lib '/home/runner/work/node/node/deps/openssl/openssl/Configurations'; +use lib '/node/deps/openssl/openssl/util/perl'; +use lib '/node/deps/openssl/openssl/Configurations'; use lib '.'; use platform; _____ diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/asm/crypto/aes/aesv8-armx.S b/deps/openssl/config/archs/darwin64-arm64-cc/asm/crypto/aes/aesv8-armx.S index ae20ad9ff6fbcb..9fe820bbe1e7bb 100644 --- a/deps/openssl/config/archs/darwin64-arm64-cc/asm/crypto/aes/aesv8-armx.S +++ b/deps/openssl/config/archs/darwin64-arm64-cc/asm/crypto/aes/aesv8-armx.S @@ -3,17 +3,20 @@ #if __ARM_MAX_ARCH__>=7 .text +.section __TEXT,__const .align 5 Lrcon: .long 0x01,0x01,0x01,0x01 .long 0x0c0f0e0d,0x0c0f0e0d,0x0c0f0e0d,0x0c0f0e0d // rotate-n-splat .long 0x1b,0x1b,0x1b,0x1b - +.previous .globl _aes_v8_set_encrypt_key .align 5 _aes_v8_set_encrypt_key: Lenc_key: + AARCH64_VALID_CALL_TARGET + // Armv8.3-A PAuth: even though x30 is pushed to stack it is not popped later. stp x29,x30,[sp,#-16]! add x29,sp,#0 mov x3,#-1 @@ -29,7 +32,8 @@ Lenc_key: tst w1,#0x3f b.ne Lenc_key_abort - adr x3,Lrcon + adrp x3,Lrcon@PAGE + add x3,x3,Lrcon@PAGEOFF cmp w1,#192 eor v0.16b,v0.16b,v0.16b @@ -185,7 +189,7 @@ Lenc_key_abort: .align 5 _aes_v8_set_decrypt_key: -.long 0xd503233f // paciasp + AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-16]! add x29,sp,#0 bl Lenc_key @@ -219,13 +223,14 @@ Loop_imc: eor x0,x0,x0 // return value Ldec_key_abort: ldp x29,x30,[sp],#16 -.long 0xd50323bf // autiasp + AARCH64_VALIDATE_LINK_REGISTER ret .globl _aes_v8_encrypt .align 5 _aes_v8_encrypt: + AARCH64_VALID_CALL_TARGET ldr w3,[x2,#240] ld1 {v0.4s},[x2],#16 ld1 {v2.16b},[x0] @@ -255,6 +260,7 @@ Loop_enc: .align 5 _aes_v8_decrypt: + AARCH64_VALID_CALL_TARGET ldr w3,[x2,#240] ld1 {v0.4s},[x2],#16 ld1 {v2.16b},[x0] @@ -284,6 +290,7 @@ Loop_dec: .align 5 _aes_v8_ecb_encrypt: + AARCH64_VALID_CALL_TARGET subs x2,x2,#16 // Original input data size bigger than 16, jump to big size processing. b.ne Lecb_big_size @@ -1030,6 +1037,8 @@ Lecb_Final_abort: .align 5 _aes_v8_cbc_encrypt: + AARCH64_VALID_CALL_TARGET + // Armv8.3-A PAuth: even though x30 is pushed to stack it is not popped later. stp x29,x30,[sp,#-16]! add x29,sp,#0 subs x2,x2,#16 @@ -1501,10 +1510,735 @@ Lcbc_abort: ldr x29,[sp],#16 ret +.globl _aes_v8_ctr32_encrypt_blocks_unroll12_eor3 + +.align 5 +_aes_v8_ctr32_encrypt_blocks_unroll12_eor3: + AARCH64_VALID_CALL_TARGET + // Armv8.3-A PAuth: even though x30 is pushed to stack it is not popped later. + stp x29,x30,[sp,#-80]! + stp d8,d9,[sp, #16] + stp d10,d11,[sp, #32] + stp d12,d13,[sp, #48] + stp d14,d15,[sp, #64] + add x29,sp,#0 + + ldr w5,[x3,#240] + + ldr w8, [x4, #12] +#ifdef __AARCH64EB__ + ld1 {v24.16b},[x4] +#else + ld1 {v24.4s},[x4] +#endif + ld1 {v2.4s,v3.4s},[x3] // load key schedule... + sub w5,w5,#4 + cmp x2,#2 + add x7,x3,x5,lsl#4 // pointer to last round key + sub w5,w5,#2 + add x7, x7, #64 + ld1 {v1.4s},[x7] + add x7,x3,#32 + mov w6,w5 +#ifndef __AARCH64EB__ + rev w8, w8 +#endif + + orr v25.16b,v24.16b,v24.16b + add w10, w8, #1 + orr v26.16b,v24.16b,v24.16b + add w8, w8, #2 + orr v0.16b,v24.16b,v24.16b + rev w10, w10 + mov v25.s[3],w10 + b.ls Lctr32_tail_unroll + cmp x2,#6 + rev w12, w8 + sub x2,x2,#3 // bias + mov v26.s[3],w12 + b.lo Loop3x_ctr32_unroll + cmp x2,#9 + orr v27.16b,v24.16b,v24.16b + add w11, w8, #1 + orr v28.16b,v24.16b,v24.16b + add w13, w8, #2 + rev w11, w11 + orr v29.16b,v24.16b,v24.16b + add w8, w8, #3 + rev w13, w13 + mov v27.s[3],w11 + rev w14, w8 + mov v28.s[3],w13 + mov v29.s[3],w14 + sub x2,x2,#3 + b.lo Loop6x_ctr32_unroll + + // push regs to stack when 12 data chunks are interleaved + stp x19,x20,[sp,#-16]! + stp x21,x22,[sp,#-16]! + stp x23,x24,[sp,#-16]! + stp d8,d9,[sp,#-32]! + stp d10,d11,[sp,#-32]! + + add w15,w8,#1 + add w19,w8,#2 + add w20,w8,#3 + add w21,w8,#4 + add w22,w8,#5 + add w8,w8,#6 + orr v30.16b,v24.16b,v24.16b + rev w15,w15 + orr v31.16b,v24.16b,v24.16b + rev w19,w19 + orr v8.16b,v24.16b,v24.16b + rev w20,w20 + orr v9.16b,v24.16b,v24.16b + rev w21,w21 + orr v10.16b,v24.16b,v24.16b + rev w22,w22 + orr v11.16b,v24.16b,v24.16b + rev w23,w8 + + sub x2,x2,#6 // bias + mov v30.s[3],w15 + mov v31.s[3],w19 + mov v8.s[3],w20 + mov v9.s[3],w21 + mov v10.s[3],w22 + mov v11.s[3],w23 + b Loop12x_ctr32_unroll + +.align 4 +Loop12x_ctr32_unroll: + aese v24.16b,v2.16b + aesmc v24.16b,v24.16b + aese v25.16b,v2.16b + aesmc v25.16b,v25.16b + aese v26.16b,v2.16b + aesmc v26.16b,v26.16b + aese v27.16b,v2.16b + aesmc v27.16b,v27.16b + aese v28.16b,v2.16b + aesmc v28.16b,v28.16b + aese v29.16b,v2.16b + aesmc v29.16b,v29.16b + aese v30.16b,v2.16b + aesmc v30.16b,v30.16b + aese v31.16b,v2.16b + aesmc v31.16b,v31.16b + aese v8.16b,v2.16b + aesmc v8.16b,v8.16b + aese v9.16b,v2.16b + aesmc v9.16b,v9.16b + aese v10.16b,v2.16b + aesmc v10.16b,v10.16b + aese v11.16b,v2.16b + aesmc v11.16b,v11.16b + ld1 {v2.4s},[x7],#16 + subs w6,w6,#2 + aese v24.16b,v3.16b + aesmc v24.16b,v24.16b + aese v25.16b,v3.16b + aesmc v25.16b,v25.16b + aese v26.16b,v3.16b + aesmc v26.16b,v26.16b + aese v27.16b,v3.16b + aesmc v27.16b,v27.16b + aese v28.16b,v3.16b + aesmc v28.16b,v28.16b + aese v29.16b,v3.16b + aesmc v29.16b,v29.16b + aese v30.16b,v3.16b + aesmc v30.16b,v30.16b + aese v31.16b,v3.16b + aesmc v31.16b,v31.16b + aese v8.16b,v3.16b + aesmc v8.16b,v8.16b + aese v9.16b,v3.16b + aesmc v9.16b,v9.16b + aese v10.16b,v3.16b + aesmc v10.16b,v10.16b + aese v11.16b,v3.16b + aesmc v11.16b,v11.16b + ld1 {v3.4s},[x7],#16 + b.gt Loop12x_ctr32_unroll + + aese v24.16b,v2.16b + aesmc v24.16b,v24.16b + aese v25.16b,v2.16b + aesmc v25.16b,v25.16b + aese v26.16b,v2.16b + aesmc v26.16b,v26.16b + aese v27.16b,v2.16b + aesmc v27.16b,v27.16b + aese v28.16b,v2.16b + aesmc v28.16b,v28.16b + aese v29.16b,v2.16b + aesmc v29.16b,v29.16b + aese v30.16b,v2.16b + aesmc v30.16b,v30.16b + aese v31.16b,v2.16b + aesmc v31.16b,v31.16b + aese v8.16b,v2.16b + aesmc v8.16b,v8.16b + aese v9.16b,v2.16b + aesmc v9.16b,v9.16b + aese v10.16b,v2.16b + aesmc v10.16b,v10.16b + aese v11.16b,v2.16b + aesmc v11.16b,v11.16b + ld1 {v2.4s},[x7],#16 + + aese v24.16b,v3.16b + aesmc v24.16b,v24.16b + aese v25.16b,v3.16b + aesmc v25.16b,v25.16b + aese v26.16b,v3.16b + aesmc v26.16b,v26.16b + aese v27.16b,v3.16b + aesmc v27.16b,v27.16b + aese v28.16b,v3.16b + aesmc v28.16b,v28.16b + aese v29.16b,v3.16b + aesmc v29.16b,v29.16b + aese v30.16b,v3.16b + aesmc v30.16b,v30.16b + aese v31.16b,v3.16b + aesmc v31.16b,v31.16b + aese v8.16b,v3.16b + aesmc v8.16b,v8.16b + aese v9.16b,v3.16b + aesmc v9.16b,v9.16b + aese v10.16b,v3.16b + aesmc v10.16b,v10.16b + aese v11.16b,v3.16b + aesmc v11.16b,v11.16b + ld1 {v3.4s},[x7],#16 + + aese v24.16b,v2.16b + aesmc v24.16b,v24.16b + add w9,w8,#1 + add w10,w8,#2 + aese v25.16b,v2.16b + aesmc v25.16b,v25.16b + add w12,w8,#3 + add w11,w8,#4 + aese v26.16b,v2.16b + aesmc v26.16b,v26.16b + add w13,w8,#5 + add w14,w8,#6 + rev w9,w9 + aese v27.16b,v2.16b + aesmc v27.16b,v27.16b + add w15,w8,#7 + add w19,w8,#8 + rev w10,w10 + rev w12,w12 + aese v28.16b,v2.16b + aesmc v28.16b,v28.16b + add w20,w8,#9 + add w21,w8,#10 + rev w11,w11 + rev w13,w13 + aese v29.16b,v2.16b + aesmc v29.16b,v29.16b + add w22,w8,#11 + add w23,w8,#12 + rev w14,w14 + rev w15,w15 + aese v30.16b,v2.16b + aesmc v30.16b,v30.16b + rev w19,w19 + rev w20,w20 + aese v31.16b,v2.16b + aesmc v31.16b,v31.16b + rev w21,w21 + rev w22,w22 + aese v8.16b,v2.16b + aesmc v8.16b,v8.16b + rev w23,w23 + aese v9.16b,v2.16b + aesmc v9.16b,v9.16b + aese v10.16b,v2.16b + aesmc v10.16b,v10.16b + aese v11.16b,v2.16b + aesmc v11.16b,v11.16b + ld1 {v2.4s},[x7],#16 + + aese v24.16b,v3.16b + aesmc v24.16b,v24.16b + aese v25.16b,v3.16b + aesmc v25.16b,v25.16b + aese v26.16b,v3.16b + aesmc v26.16b,v26.16b + aese v27.16b,v3.16b + aesmc v27.16b,v27.16b + ld1 {v4.16b,v5.16b,v6.16b,v7.16b},[x0],#64 + aese v28.16b,v3.16b + aesmc v28.16b,v28.16b + aese v29.16b,v3.16b + aesmc v29.16b,v29.16b + aese v30.16b,v3.16b + aesmc v30.16b,v30.16b + aese v31.16b,v3.16b + aesmc v31.16b,v31.16b + ld1 {v16.16b,v17.16b,v18.16b,v19.16b},[x0],#64 + aese v8.16b,v3.16b + aesmc v8.16b,v8.16b + aese v9.16b,v3.16b + aesmc v9.16b,v9.16b + aese v10.16b,v3.16b + aesmc v10.16b,v10.16b + aese v11.16b,v3.16b + aesmc v11.16b,v11.16b + ld1 {v20.16b,v21.16b,v22.16b,v23.16b},[x0],#64 + ld1 {v3.4s},[x7],#16 + + mov x7, x3 + aese v24.16b,v2.16b + aesmc v24.16b,v24.16b + aese v25.16b,v2.16b + aesmc v25.16b,v25.16b + aese v26.16b,v2.16b + aesmc v26.16b,v26.16b + aese v27.16b,v2.16b + aesmc v27.16b,v27.16b + aese v28.16b,v2.16b + aesmc v28.16b,v28.16b + aese v29.16b,v2.16b + aesmc v29.16b,v29.16b + aese v30.16b,v2.16b + aesmc v30.16b,v30.16b + aese v31.16b,v2.16b + aesmc v31.16b,v31.16b + aese v8.16b,v2.16b + aesmc v8.16b,v8.16b + aese v9.16b,v2.16b + aesmc v9.16b,v9.16b + aese v10.16b,v2.16b + aesmc v10.16b,v10.16b + aese v11.16b,v2.16b + aesmc v11.16b,v11.16b + ld1 {v2.4s},[x7],#16 // re-pre-load rndkey[0] + + aese v24.16b,v3.16b +.long 0xce016084 //eor3 v4.16b,v4.16b,v1.16b,v24.16b + orr v24.16b,v0.16b,v0.16b + aese v25.16b,v3.16b +.long 0xce0164a5 //eor3 v5.16b,v5.16b,v1.16b,v25.16b + orr v25.16b,v0.16b,v0.16b + aese v26.16b,v3.16b +.long 0xce0168c6 //eor3 v6.16b,v6.16b,v1.16b,v26.16b + orr v26.16b,v0.16b,v0.16b + aese v27.16b,v3.16b +.long 0xce016ce7 //eor3 v7.16b,v7.16b,v1.16b,v27.16b + orr v27.16b,v0.16b,v0.16b + aese v28.16b,v3.16b +.long 0xce017210 //eor3 v16.16b,v16.16b,v1.16b,v28.16b + orr v28.16b,v0.16b,v0.16b + aese v29.16b,v3.16b +.long 0xce017631 //eor3 v17.16b,v17.16b,v1.16b,v29.16b + orr v29.16b,v0.16b,v0.16b + aese v30.16b,v3.16b +.long 0xce017a52 //eor3 v18.16b,v18.16b,v1.16b,v30.16b + orr v30.16b,v0.16b,v0.16b + aese v31.16b,v3.16b +.long 0xce017e73 //eor3 v19.16b,v19.16b,v1.16b,v31.16b + orr v31.16b,v0.16b,v0.16b + aese v8.16b,v3.16b +.long 0xce012294 //eor3 v20.16b,v20.16b,v1.16b,v8.16b + orr v8.16b,v0.16b,v0.16b + aese v9.16b,v3.16b +.long 0xce0126b5 //eor3 v21.16b,v21.16b,v1.16b,v9.16b + orr v9.16b,v0.16b,v0.16b + aese v10.16b,v3.16b +.long 0xce012ad6 //eor3 v22.16b,v22.16b,v1.16b,v10.16b + orr v10.16b,v0.16b,v0.16b + aese v11.16b,v3.16b +.long 0xce012ef7 //eor3 v23.16b,v23.16b,v1.16b,v11.16b + orr v11.16b,v0.16b,v0.16b + ld1 {v3.4s},[x7],#16 // re-pre-load rndkey[1] + + mov v24.s[3],w9 + mov v25.s[3],w10 + mov v26.s[3],w12 + mov v27.s[3],w11 + st1 {v4.16b,v5.16b,v6.16b,v7.16b},[x1],#64 + mov v28.s[3],w13 + mov v29.s[3],w14 + mov v30.s[3],w15 + mov v31.s[3],w19 + st1 {v16.16b,v17.16b,v18.16b,v19.16b},[x1],#64 + mov v8.s[3],w20 + mov v9.s[3],w21 + mov v10.s[3],w22 + mov v11.s[3],w23 + st1 {v20.16b,v21.16b,v22.16b,v23.16b},[x1],#64 + + mov w6,w5 + + add w8,w8,#12 + subs x2,x2,#12 + b.hs Loop12x_ctr32_unroll + + // pop regs from stack when 12 data chunks are interleaved + ldp d10,d11,[sp],#32 + ldp d8,d9,[sp],#32 + ldp x23,x24,[sp],#16 + ldp x21,x22,[sp],#16 + ldp x19,x20,[sp],#16 + + add x2,x2,#12 + cbz x2,Lctr32_done_unroll + sub w8,w8,#12 + + cmp x2,#2 + b.ls Lctr32_tail_unroll + + cmp x2,#6 + sub x2,x2,#3 // bias + add w8,w8,#3 + b.lo Loop3x_ctr32_unroll + + sub x2,x2,#3 + add w8,w8,#3 + b.lo Loop6x_ctr32_unroll + +.align 4 +Loop6x_ctr32_unroll: + aese v24.16b,v2.16b + aesmc v24.16b,v24.16b + aese v25.16b,v2.16b + aesmc v25.16b,v25.16b + aese v26.16b,v2.16b + aesmc v26.16b,v26.16b + aese v27.16b,v2.16b + aesmc v27.16b,v27.16b + aese v28.16b,v2.16b + aesmc v28.16b,v28.16b + aese v29.16b,v2.16b + aesmc v29.16b,v29.16b + ld1 {v2.4s},[x7],#16 + subs w6,w6,#2 + aese v24.16b,v3.16b + aesmc v24.16b,v24.16b + aese v25.16b,v3.16b + aesmc v25.16b,v25.16b + aese v26.16b,v3.16b + aesmc v26.16b,v26.16b + aese v27.16b,v3.16b + aesmc v27.16b,v27.16b + aese v28.16b,v3.16b + aesmc v28.16b,v28.16b + aese v29.16b,v3.16b + aesmc v29.16b,v29.16b + ld1 {v3.4s},[x7],#16 + b.gt Loop6x_ctr32_unroll + + aese v24.16b,v2.16b + aesmc v24.16b,v24.16b + aese v25.16b,v2.16b + aesmc v25.16b,v25.16b + aese v26.16b,v2.16b + aesmc v26.16b,v26.16b + aese v27.16b,v2.16b + aesmc v27.16b,v27.16b + aese v28.16b,v2.16b + aesmc v28.16b,v28.16b + aese v29.16b,v2.16b + aesmc v29.16b,v29.16b + ld1 {v2.4s},[x7],#16 + + aese v24.16b,v3.16b + aesmc v24.16b,v24.16b + aese v25.16b,v3.16b + aesmc v25.16b,v25.16b + aese v26.16b,v3.16b + aesmc v26.16b,v26.16b + aese v27.16b,v3.16b + aesmc v27.16b,v27.16b + aese v28.16b,v3.16b + aesmc v28.16b,v28.16b + aese v29.16b,v3.16b + aesmc v29.16b,v29.16b + ld1 {v3.4s},[x7],#16 + + aese v24.16b,v2.16b + aesmc v24.16b,v24.16b + add w9,w8,#1 + add w10,w8,#2 + aese v25.16b,v2.16b + aesmc v25.16b,v25.16b + add w12,w8,#3 + add w11,w8,#4 + aese v26.16b,v2.16b + aesmc v26.16b,v26.16b + add w13,w8,#5 + add w14,w8,#6 + rev w9,w9 + aese v27.16b,v2.16b + aesmc v27.16b,v27.16b + rev w10,w10 + rev w12,w12 + aese v28.16b,v2.16b + aesmc v28.16b,v28.16b + rev w11,w11 + rev w13,w13 + aese v29.16b,v2.16b + aesmc v29.16b,v29.16b + rev w14,w14 + ld1 {v2.4s},[x7],#16 + + aese v24.16b,v3.16b + aesmc v24.16b,v24.16b + aese v25.16b,v3.16b + aesmc v25.16b,v25.16b + ld1 {v4.16b,v5.16b,v6.16b,v7.16b},[x0],#64 + aese v26.16b,v3.16b + aesmc v26.16b,v26.16b + aese v27.16b,v3.16b + aesmc v27.16b,v27.16b + ld1 {v16.16b,v17.16b},[x0],#32 + aese v28.16b,v3.16b + aesmc v28.16b,v28.16b + aese v29.16b,v3.16b + aesmc v29.16b,v29.16b + ld1 {v3.4s},[x7],#16 + + mov x7, x3 + aese v24.16b,v2.16b + aesmc v24.16b,v24.16b + aese v25.16b,v2.16b + aesmc v25.16b,v25.16b + aese v26.16b,v2.16b + aesmc v26.16b,v26.16b + aese v27.16b,v2.16b + aesmc v27.16b,v27.16b + aese v28.16b,v2.16b + aesmc v28.16b,v28.16b + aese v29.16b,v2.16b + aesmc v29.16b,v29.16b + ld1 {v2.4s},[x7],#16 // re-pre-load rndkey[0] + + aese v24.16b,v3.16b +.long 0xce016084 //eor3 v4.16b,v4.16b,v1.16b,v24.16b + aese v25.16b,v3.16b +.long 0xce0164a5 //eor3 v5.16b,v5.16b,v1.16b,v25.16b + aese v26.16b,v3.16b +.long 0xce0168c6 //eor3 v6.16b,v6.16b,v1.16b,v26.16b + aese v27.16b,v3.16b +.long 0xce016ce7 //eor3 v7.16b,v7.16b,v1.16b,v27.16b + aese v28.16b,v3.16b +.long 0xce017210 //eor3 v16.16b,v16.16b,v1.16b,v28.16b + aese v29.16b,v3.16b +.long 0xce017631 //eor3 v17.16b,v17.16b,v1.16b,v29.16b + ld1 {v3.4s},[x7],#16 // re-pre-load rndkey[1] + + orr v24.16b,v0.16b,v0.16b + orr v25.16b,v0.16b,v0.16b + orr v26.16b,v0.16b,v0.16b + orr v27.16b,v0.16b,v0.16b + orr v28.16b,v0.16b,v0.16b + orr v29.16b,v0.16b,v0.16b + + mov v24.s[3],w9 + mov v25.s[3],w10 + st1 {v4.16b,v5.16b,v6.16b,v7.16b},[x1],#64 + mov v26.s[3],w12 + mov v27.s[3],w11 + st1 {v16.16b,v17.16b},[x1],#32 + mov v28.s[3],w13 + mov v29.s[3],w14 + + cbz x2,Lctr32_done_unroll + mov w6,w5 + + cmp x2,#2 + b.ls Lctr32_tail_unroll + + sub x2,x2,#3 // bias + add w8,w8,#3 + b Loop3x_ctr32_unroll + +.align 4 +Loop3x_ctr32_unroll: + aese v24.16b,v2.16b + aesmc v24.16b,v24.16b + aese v25.16b,v2.16b + aesmc v25.16b,v25.16b + aese v26.16b,v2.16b + aesmc v26.16b,v26.16b + ld1 {v2.4s},[x7],#16 + subs w6,w6,#2 + aese v24.16b,v3.16b + aesmc v24.16b,v24.16b + aese v25.16b,v3.16b + aesmc v25.16b,v25.16b + aese v26.16b,v3.16b + aesmc v26.16b,v26.16b + ld1 {v3.4s},[x7],#16 + b.gt Loop3x_ctr32_unroll + + aese v24.16b,v2.16b + aesmc v9.16b,v24.16b + aese v25.16b,v2.16b + aesmc v10.16b,v25.16b + ld1 {v4.16b,v5.16b,v6.16b},[x0],#48 + orr v24.16b,v0.16b,v0.16b + aese v26.16b,v2.16b + aesmc v26.16b,v26.16b + ld1 {v2.4s},[x7],#16 + orr v25.16b,v0.16b,v0.16b + aese v9.16b,v3.16b + aesmc v9.16b,v9.16b + aese v10.16b,v3.16b + aesmc v10.16b,v10.16b + aese v26.16b,v3.16b + aesmc v11.16b,v26.16b + ld1 {v3.4s},[x7],#16 + orr v26.16b,v0.16b,v0.16b + add w9,w8,#1 + aese v9.16b,v2.16b + aesmc v9.16b,v9.16b + aese v10.16b,v2.16b + aesmc v10.16b,v10.16b + add w10,w8,#2 + aese v11.16b,v2.16b + aesmc v11.16b,v11.16b + ld1 {v2.4s},[x7],#16 + add w8,w8,#3 + aese v9.16b,v3.16b + aesmc v9.16b,v9.16b + aese v10.16b,v3.16b + aesmc v10.16b,v10.16b + + rev w9,w9 + aese v11.16b,v3.16b + aesmc v11.16b,v11.16b + ld1 {v3.4s},[x7],#16 + mov v24.s[3], w9 + mov x7,x3 + rev w10,w10 + aese v9.16b,v2.16b + aesmc v9.16b,v9.16b + + aese v10.16b,v2.16b + aesmc v10.16b,v10.16b + mov v25.s[3], w10 + rev w12,w8 + aese v11.16b,v2.16b + aesmc v11.16b,v11.16b + mov v26.s[3], w12 + + aese v9.16b,v3.16b + aese v10.16b,v3.16b + aese v11.16b,v3.16b + +.long 0xce012484 //eor3 v4.16b,v4.16b,v1.16b,v9.16b + ld1 {v2.4s},[x7],#16 // re-pre-load rndkey[0] +.long 0xce0128a5 //eor3 v5.16b,v5.16b,v1.16b,v10.16b + mov w6,w5 +.long 0xce012cc6 //eor3 v6.16b,v6.16b,v1.16b,v11.16b + ld1 {v3.4s},[x7],#16 // re-pre-load rndkey[1] + st1 {v4.16b,v5.16b,v6.16b},[x1],#48 + + cbz x2,Lctr32_done_unroll + +Lctr32_tail_unroll: + cmp x2,#1 + b.eq Lctr32_tail_1_unroll + +Lctr32_tail_2_unroll: + aese v24.16b,v2.16b + aesmc v24.16b,v24.16b + aese v25.16b,v2.16b + aesmc v25.16b,v25.16b + ld1 {v2.4s},[x7],#16 + subs w6,w6,#2 + aese v24.16b,v3.16b + aesmc v24.16b,v24.16b + aese v25.16b,v3.16b + aesmc v25.16b,v25.16b + ld1 {v3.4s},[x7],#16 + b.gt Lctr32_tail_2_unroll + + aese v24.16b,v2.16b + aesmc v24.16b,v24.16b + aese v25.16b,v2.16b + aesmc v25.16b,v25.16b + ld1 {v2.4s},[x7],#16 + aese v24.16b,v3.16b + aesmc v24.16b,v24.16b + aese v25.16b,v3.16b + aesmc v25.16b,v25.16b + ld1 {v3.4s},[x7],#16 + ld1 {v4.16b,v5.16b},[x0],#32 + aese v24.16b,v2.16b + aesmc v24.16b,v24.16b + aese v25.16b,v2.16b + aesmc v25.16b,v25.16b + ld1 {v2.4s},[x7],#16 + aese v24.16b,v3.16b + aesmc v24.16b,v24.16b + aese v25.16b,v3.16b + aesmc v25.16b,v25.16b + ld1 {v3.4s},[x7],#16 + aese v24.16b,v2.16b + aesmc v24.16b,v24.16b + aese v25.16b,v2.16b + aesmc v25.16b,v25.16b + aese v24.16b,v3.16b + aese v25.16b,v3.16b + +.long 0xce016084 //eor3 v4.16b,v4.16b,v1.16b,v24.16b +.long 0xce0164a5 //eor3 v5.16b,v5.16b,v1.16b,v25.16b + st1 {v4.16b,v5.16b},[x1],#32 + b Lctr32_done_unroll + +Lctr32_tail_1_unroll: + aese v24.16b,v2.16b + aesmc v24.16b,v24.16b + ld1 {v2.4s},[x7],#16 + subs w6,w6,#2 + aese v24.16b,v3.16b + aesmc v24.16b,v24.16b + ld1 {v3.4s},[x7],#16 + b.gt Lctr32_tail_1_unroll + + aese v24.16b,v2.16b + aesmc v24.16b,v24.16b + ld1 {v2.4s},[x7],#16 + aese v24.16b,v3.16b + aesmc v24.16b,v24.16b + ld1 {v3.4s},[x7],#16 + ld1 {v4.16b},[x0] + aese v24.16b,v2.16b + aesmc v24.16b,v24.16b + ld1 {v2.4s},[x7],#16 + aese v24.16b,v3.16b + aesmc v24.16b,v24.16b + ld1 {v3.4s},[x7],#16 + aese v24.16b,v2.16b + aesmc v24.16b,v24.16b + aese v24.16b,v3.16b + +.long 0xce016084 //eor3 v4.16b,v4.16b,v1.16b,v24.16b + st1 {v4.16b},[x1],#16 + +Lctr32_done_unroll: + ldp d8,d9,[sp, #16] + ldp d10,d11,[sp, #32] + ldp d12,d13,[sp, #48] + ldp d14,d15,[sp, #64] + ldr x29,[sp],#80 + ret + .globl _aes_v8_ctr32_encrypt_blocks .align 5 _aes_v8_ctr32_encrypt_blocks: + AARCH64_VALID_CALL_TARGET + // Armv8.3-A PAuth: even though x30 is pushed to stack it is not popped later. stp x29,x30,[sp,#-16]! add x29,sp,#0 ldr w5,[x3,#240] @@ -1854,6 +2588,7 @@ Lctr32_done: .align 5 _aes_v8_xts_encrypt: + AARCH64_VALID_CALL_TARGET cmp x2,#16 // Original input data size bigger than 16, jump to big size processing. b.ne Lxts_enc_big_size @@ -2495,6 +3230,7 @@ Lxts_enc_final_abort: .align 5 _aes_v8_xts_decrypt: + AARCH64_VALID_CALL_TARGET cmp x2,#16 // Original input data size bigger than 16, jump to big size processing. b.ne Lxts_dec_big_size @@ -3104,7 +3840,7 @@ Lxts_done: cbnz x2,Lxts_dec_1st_done ld1 {v0.16b},[x0],#16 - // Decrypt the last secod block to get the last plain text block + // Decrypt the last second block to get the last plain text block Lxts_dec_1st_done: eor v26.16b,v0.16b,v8.16b ldr w6,[x3,#240] diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/asm/crypto/aes/bsaes-armv8.S b/deps/openssl/config/archs/darwin64-arm64-cc/asm/crypto/aes/bsaes-armv8.S new file mode 100644 index 00000000000000..f6e0c3b51f0295 --- /dev/null +++ b/deps/openssl/config/archs/darwin64-arm64-cc/asm/crypto/aes/bsaes-armv8.S @@ -0,0 +1,2355 @@ +// Copyright 2021-2025 The OpenSSL Project Authors. All Rights Reserved. +// +// Licensed under the OpenSSL license (the "License"). You may not use +// this file except in compliance with the License. You can obtain a copy +// in the file LICENSE in the source distribution or at +// https://www.openssl.org/source/license.html +// +// ==================================================================== +// Written by Ben Avison for the OpenSSL +// project. Rights for redistribution and usage in source and binary +// forms are granted according to the OpenSSL license. +// ==================================================================== +// +// This implementation is a translation of bsaes-armv7 for AArch64. +// No attempt has been made to carry across the build switches for +// kernel targets, since the Linux kernel crypto support has moved on +// from when it was based on OpenSSL. + +// A lot of hand-scheduling has been performed. Consequently, this code +// doesn't factor out neatly into macros in the same way that the +// AArch32 version did, and there is little to be gained by wrapping it +// up in Perl, and it is presented as pure assembly. + + +#include "crypto/arm_arch.h" + +.text + + + + + + +.align 4 +// On entry: +// x9 -> key (previously expanded using _bsaes_key_convert) +// x10 = number of rounds +// v0-v7 input data +// On exit: +// x9-x11 corrupted +// other general-purpose registers preserved +// v0-v7 output data +// v11-v15 preserved +// other SIMD registers corrupted +_bsaes_decrypt8: + ldr q8, [x9], #16 + adrp x11, LM0ISR@PAGE + add x11, x11, LM0ISR@PAGEOFF + movi v9.16b, #0x55 + ldr q10, [x11], #16 + movi v16.16b, #0x33 + movi v17.16b, #0x0f + sub x10, x10, #1 + eor v0.16b, v0.16b, v8.16b + eor v1.16b, v1.16b, v8.16b + eor v2.16b, v2.16b, v8.16b + eor v4.16b, v4.16b, v8.16b + eor v3.16b, v3.16b, v8.16b + eor v5.16b, v5.16b, v8.16b + tbl v0.16b, {v0.16b}, v10.16b + tbl v1.16b, {v1.16b}, v10.16b + tbl v2.16b, {v2.16b}, v10.16b + tbl v4.16b, {v4.16b}, v10.16b + eor v6.16b, v6.16b, v8.16b + eor v7.16b, v7.16b, v8.16b + tbl v3.16b, {v3.16b}, v10.16b + tbl v5.16b, {v5.16b}, v10.16b + tbl v6.16b, {v6.16b}, v10.16b + ushr v8.2d, v0.2d, #1 + tbl v7.16b, {v7.16b}, v10.16b + ushr v10.2d, v4.2d, #1 + ushr v18.2d, v2.2d, #1 + eor v8.16b, v8.16b, v1.16b + ushr v19.2d, v6.2d, #1 + eor v10.16b, v10.16b, v5.16b + eor v18.16b, v18.16b, v3.16b + and v8.16b, v8.16b, v9.16b + eor v19.16b, v19.16b, v7.16b + and v10.16b, v10.16b, v9.16b + and v18.16b, v18.16b, v9.16b + eor v1.16b, v1.16b, v8.16b + shl v8.2d, v8.2d, #1 + and v9.16b, v19.16b, v9.16b + eor v5.16b, v5.16b, v10.16b + shl v10.2d, v10.2d, #1 + eor v3.16b, v3.16b, v18.16b + shl v18.2d, v18.2d, #1 + eor v0.16b, v0.16b, v8.16b + shl v8.2d, v9.2d, #1 + eor v7.16b, v7.16b, v9.16b + eor v4.16b, v4.16b, v10.16b + eor v2.16b, v2.16b, v18.16b + ushr v9.2d, v1.2d, #2 + eor v6.16b, v6.16b, v8.16b + ushr v8.2d, v0.2d, #2 + ushr v10.2d, v5.2d, #2 + ushr v18.2d, v4.2d, #2 + eor v9.16b, v9.16b, v3.16b + eor v8.16b, v8.16b, v2.16b + eor v10.16b, v10.16b, v7.16b + eor v18.16b, v18.16b, v6.16b + and v9.16b, v9.16b, v16.16b + and v8.16b, v8.16b, v16.16b + and v10.16b, v10.16b, v16.16b + and v16.16b, v18.16b, v16.16b + eor v3.16b, v3.16b, v9.16b + shl v9.2d, v9.2d, #2 + eor v2.16b, v2.16b, v8.16b + shl v8.2d, v8.2d, #2 + eor v7.16b, v7.16b, v10.16b + shl v10.2d, v10.2d, #2 + eor v6.16b, v6.16b, v16.16b + shl v16.2d, v16.2d, #2 + eor v1.16b, v1.16b, v9.16b + eor v0.16b, v0.16b, v8.16b + eor v5.16b, v5.16b, v10.16b + eor v4.16b, v4.16b, v16.16b + ushr v8.2d, v3.2d, #4 + ushr v9.2d, v2.2d, #4 + ushr v10.2d, v1.2d, #4 + ushr v16.2d, v0.2d, #4 + eor v8.16b, v8.16b, v7.16b + eor v9.16b, v9.16b, v6.16b + eor v10.16b, v10.16b, v5.16b + eor v16.16b, v16.16b, v4.16b + and v8.16b, v8.16b, v17.16b + and v9.16b, v9.16b, v17.16b + and v10.16b, v10.16b, v17.16b + and v16.16b, v16.16b, v17.16b + eor v7.16b, v7.16b, v8.16b + shl v8.2d, v8.2d, #4 + eor v6.16b, v6.16b, v9.16b + shl v9.2d, v9.2d, #4 + eor v5.16b, v5.16b, v10.16b + shl v10.2d, v10.2d, #4 + eor v4.16b, v4.16b, v16.16b + shl v16.2d, v16.2d, #4 + eor v3.16b, v3.16b, v8.16b + eor v2.16b, v2.16b, v9.16b + eor v1.16b, v1.16b, v10.16b + eor v0.16b, v0.16b, v16.16b + b Ldec_sbox +.align 4 +Ldec_loop: + ld1 {v16.16b, v17.16b, v18.16b, v19.16b}, [x9], #64 + ldp q8, q9, [x9], #32 + eor v0.16b, v16.16b, v0.16b + ldr q10, [x9], #16 + eor v1.16b, v17.16b, v1.16b + ldr q16, [x9], #16 + eor v2.16b, v18.16b, v2.16b + eor v3.16b, v19.16b, v3.16b + eor v4.16b, v8.16b, v4.16b + eor v5.16b, v9.16b, v5.16b + eor v6.16b, v10.16b, v6.16b + eor v7.16b, v16.16b, v7.16b + tbl v0.16b, {v0.16b}, v28.16b + tbl v1.16b, {v1.16b}, v28.16b + tbl v2.16b, {v2.16b}, v28.16b + tbl v3.16b, {v3.16b}, v28.16b + tbl v4.16b, {v4.16b}, v28.16b + tbl v5.16b, {v5.16b}, v28.16b + tbl v6.16b, {v6.16b}, v28.16b + tbl v7.16b, {v7.16b}, v28.16b +Ldec_sbox: + eor v1.16b, v1.16b, v4.16b + eor v3.16b, v3.16b, v4.16b + subs x10, x10, #1 + eor v4.16b, v4.16b, v7.16b + eor v2.16b, v2.16b, v7.16b + eor v1.16b, v1.16b, v6.16b + eor v6.16b, v6.16b, v4.16b + eor v2.16b, v2.16b, v5.16b + eor v0.16b, v0.16b, v1.16b + eor v7.16b, v7.16b, v6.16b + eor v8.16b, v6.16b, v2.16b + and v9.16b, v4.16b, v6.16b + eor v10.16b, v2.16b, v6.16b + eor v3.16b, v3.16b, v0.16b + eor v5.16b, v5.16b, v0.16b + eor v16.16b, v7.16b, v4.16b + eor v17.16b, v4.16b, v0.16b + and v18.16b, v0.16b, v2.16b + eor v19.16b, v7.16b, v4.16b + eor v1.16b, v1.16b, v3.16b + eor v20.16b, v3.16b, v0.16b + eor v21.16b, v5.16b, v2.16b + eor v22.16b, v3.16b, v7.16b + and v8.16b, v17.16b, v8.16b + orr v17.16b, v3.16b, v5.16b + eor v23.16b, v1.16b, v6.16b + eor v24.16b, v20.16b, v16.16b + eor v25.16b, v1.16b, v5.16b + orr v26.16b, v20.16b, v21.16b + and v20.16b, v20.16b, v21.16b + and v27.16b, v7.16b, v1.16b + eor v21.16b, v21.16b, v23.16b + orr v28.16b, v16.16b, v23.16b + orr v29.16b, v22.16b, v25.16b + eor v26.16b, v26.16b, v8.16b + and v16.16b, v16.16b, v23.16b + and v22.16b, v22.16b, v25.16b + and v21.16b, v24.16b, v21.16b + eor v8.16b, v28.16b, v8.16b + eor v23.16b, v5.16b, v2.16b + eor v24.16b, v1.16b, v6.16b + eor v16.16b, v16.16b, v22.16b + eor v22.16b, v3.16b, v0.16b + eor v25.16b, v29.16b, v21.16b + eor v21.16b, v26.16b, v21.16b + eor v8.16b, v8.16b, v20.16b + eor v26.16b, v23.16b, v24.16b + eor v16.16b, v16.16b, v20.16b + eor v28.16b, v22.16b, v19.16b + eor v20.16b, v25.16b, v20.16b + eor v9.16b, v21.16b, v9.16b + eor v8.16b, v8.16b, v18.16b + eor v18.16b, v5.16b, v1.16b + eor v21.16b, v16.16b, v17.16b + eor v16.16b, v16.16b, v17.16b + eor v17.16b, v20.16b, v27.16b + eor v20.16b, v3.16b, v7.16b + eor v25.16b, v9.16b, v8.16b + eor v27.16b, v0.16b, v4.16b + and v29.16b, v9.16b, v17.16b + eor v30.16b, v8.16b, v29.16b + eor v31.16b, v21.16b, v29.16b + eor v29.16b, v21.16b, v29.16b + bsl v30.16b, v17.16b, v21.16b + bsl v31.16b, v9.16b, v8.16b + bsl v16.16b, v30.16b, v29.16b + bsl v21.16b, v29.16b, v30.16b + eor v8.16b, v31.16b, v30.16b + and v1.16b, v1.16b, v31.16b + and v9.16b, v16.16b, v31.16b + and v6.16b, v6.16b, v30.16b + eor v16.16b, v17.16b, v21.16b + and v4.16b, v4.16b, v30.16b + eor v17.16b, v8.16b, v30.16b + and v21.16b, v24.16b, v8.16b + eor v9.16b, v9.16b, v25.16b + and v19.16b, v19.16b, v8.16b + eor v24.16b, v30.16b, v16.16b + eor v25.16b, v30.16b, v16.16b + and v7.16b, v7.16b, v17.16b + and v10.16b, v10.16b, v16.16b + eor v29.16b, v9.16b, v16.16b + eor v30.16b, v31.16b, v9.16b + and v0.16b, v24.16b, v0.16b + and v9.16b, v18.16b, v9.16b + and v2.16b, v25.16b, v2.16b + eor v10.16b, v10.16b, v6.16b + eor v18.16b, v29.16b, v16.16b + and v5.16b, v30.16b, v5.16b + eor v24.16b, v8.16b, v29.16b + and v25.16b, v26.16b, v29.16b + and v26.16b, v28.16b, v29.16b + eor v8.16b, v8.16b, v29.16b + eor v17.16b, v17.16b, v18.16b + eor v5.16b, v1.16b, v5.16b + and v23.16b, v24.16b, v23.16b + eor v21.16b, v21.16b, v25.16b + eor v19.16b, v19.16b, v26.16b + eor v0.16b, v4.16b, v0.16b + and v3.16b, v17.16b, v3.16b + eor v1.16b, v9.16b, v1.16b + eor v9.16b, v25.16b, v23.16b + eor v5.16b, v5.16b, v21.16b + eor v2.16b, v6.16b, v2.16b + and v6.16b, v8.16b, v22.16b + eor v3.16b, v7.16b, v3.16b + and v8.16b, v20.16b, v18.16b + eor v10.16b, v10.16b, v9.16b + eor v0.16b, v0.16b, v19.16b + eor v9.16b, v1.16b, v9.16b + eor v1.16b, v2.16b, v21.16b + eor v3.16b, v3.16b, v19.16b + and v16.16b, v27.16b, v16.16b + eor v17.16b, v26.16b, v6.16b + eor v6.16b, v8.16b, v7.16b + eor v7.16b, v1.16b, v9.16b + eor v1.16b, v5.16b, v3.16b + eor v2.16b, v10.16b, v3.16b + eor v4.16b, v16.16b, v4.16b + eor v8.16b, v6.16b, v17.16b + eor v5.16b, v9.16b, v3.16b + eor v9.16b, v0.16b, v1.16b + eor v6.16b, v7.16b, v1.16b + eor v0.16b, v4.16b, v17.16b + eor v4.16b, v8.16b, v7.16b + eor v7.16b, v9.16b, v2.16b + eor v8.16b, v3.16b, v0.16b + eor v7.16b, v7.16b, v5.16b + eor v3.16b, v4.16b, v7.16b + eor v4.16b, v7.16b, v0.16b + eor v7.16b, v8.16b, v3.16b + bcc Ldec_done + ext v8.16b, v0.16b, v0.16b, #8 + ext v9.16b, v1.16b, v1.16b, #8 + ldr q28, [x11] // load from LISR in common case (x10 > 0) + ext v10.16b, v6.16b, v6.16b, #8 + ext v16.16b, v3.16b, v3.16b, #8 + ext v17.16b, v5.16b, v5.16b, #8 + ext v18.16b, v4.16b, v4.16b, #8 + eor v8.16b, v8.16b, v0.16b + eor v9.16b, v9.16b, v1.16b + eor v10.16b, v10.16b, v6.16b + eor v16.16b, v16.16b, v3.16b + eor v17.16b, v17.16b, v5.16b + ext v19.16b, v2.16b, v2.16b, #8 + ext v20.16b, v7.16b, v7.16b, #8 + eor v18.16b, v18.16b, v4.16b + eor v6.16b, v6.16b, v8.16b + eor v8.16b, v2.16b, v10.16b + eor v4.16b, v4.16b, v9.16b + eor v2.16b, v19.16b, v2.16b + eor v9.16b, v20.16b, v7.16b + eor v0.16b, v0.16b, v16.16b + eor v1.16b, v1.16b, v16.16b + eor v6.16b, v6.16b, v17.16b + eor v8.16b, v8.16b, v16.16b + eor v7.16b, v7.16b, v18.16b + eor v4.16b, v4.16b, v16.16b + eor v2.16b, v3.16b, v2.16b + eor v1.16b, v1.16b, v17.16b + eor v3.16b, v5.16b, v9.16b + eor v5.16b, v8.16b, v17.16b + eor v7.16b, v7.16b, v17.16b + ext v8.16b, v0.16b, v0.16b, #12 + ext v9.16b, v6.16b, v6.16b, #12 + ext v10.16b, v4.16b, v4.16b, #12 + ext v16.16b, v1.16b, v1.16b, #12 + ext v17.16b, v5.16b, v5.16b, #12 + ext v18.16b, v7.16b, v7.16b, #12 + eor v0.16b, v0.16b, v8.16b + eor v6.16b, v6.16b, v9.16b + eor v4.16b, v4.16b, v10.16b + ext v19.16b, v2.16b, v2.16b, #12 + ext v20.16b, v3.16b, v3.16b, #12 + eor v1.16b, v1.16b, v16.16b + eor v5.16b, v5.16b, v17.16b + eor v7.16b, v7.16b, v18.16b + eor v2.16b, v2.16b, v19.16b + eor v16.16b, v16.16b, v0.16b + eor v3.16b, v3.16b, v20.16b + eor v17.16b, v17.16b, v4.16b + eor v10.16b, v10.16b, v6.16b + ext v0.16b, v0.16b, v0.16b, #8 + eor v9.16b, v9.16b, v1.16b + ext v1.16b, v1.16b, v1.16b, #8 + eor v8.16b, v8.16b, v3.16b + eor v16.16b, v16.16b, v3.16b + eor v18.16b, v18.16b, v5.16b + eor v19.16b, v19.16b, v7.16b + ext v21.16b, v5.16b, v5.16b, #8 + ext v5.16b, v7.16b, v7.16b, #8 + eor v7.16b, v20.16b, v2.16b + ext v4.16b, v4.16b, v4.16b, #8 + ext v20.16b, v3.16b, v3.16b, #8 + eor v17.16b, v17.16b, v3.16b + ext v2.16b, v2.16b, v2.16b, #8 + eor v3.16b, v10.16b, v3.16b + ext v10.16b, v6.16b, v6.16b, #8 + eor v0.16b, v0.16b, v8.16b + eor v1.16b, v1.16b, v16.16b + eor v5.16b, v5.16b, v18.16b + eor v3.16b, v3.16b, v4.16b + eor v7.16b, v20.16b, v7.16b + eor v6.16b, v2.16b, v19.16b + eor v4.16b, v21.16b, v17.16b + eor v2.16b, v10.16b, v9.16b + bne Ldec_loop + ldr q28, [x11, #16]! // load from LISRM0 on last round (x10 == 0) + b Ldec_loop +.align 4 +Ldec_done: + ushr v8.2d, v0.2d, #1 + movi v9.16b, #0x55 + ldr q10, [x9] + ushr v16.2d, v2.2d, #1 + movi v17.16b, #0x33 + ushr v18.2d, v6.2d, #1 + movi v19.16b, #0x0f + eor v8.16b, v8.16b, v1.16b + ushr v20.2d, v3.2d, #1 + eor v16.16b, v16.16b, v7.16b + eor v18.16b, v18.16b, v4.16b + and v8.16b, v8.16b, v9.16b + eor v20.16b, v20.16b, v5.16b + and v16.16b, v16.16b, v9.16b + and v18.16b, v18.16b, v9.16b + shl v21.2d, v8.2d, #1 + eor v1.16b, v1.16b, v8.16b + and v8.16b, v20.16b, v9.16b + eor v7.16b, v7.16b, v16.16b + shl v9.2d, v16.2d, #1 + eor v4.16b, v4.16b, v18.16b + shl v16.2d, v18.2d, #1 + eor v0.16b, v0.16b, v21.16b + shl v18.2d, v8.2d, #1 + eor v5.16b, v5.16b, v8.16b + eor v2.16b, v2.16b, v9.16b + eor v6.16b, v6.16b, v16.16b + ushr v8.2d, v1.2d, #2 + eor v3.16b, v3.16b, v18.16b + ushr v9.2d, v0.2d, #2 + ushr v16.2d, v7.2d, #2 + ushr v18.2d, v2.2d, #2 + eor v8.16b, v8.16b, v4.16b + eor v9.16b, v9.16b, v6.16b + eor v16.16b, v16.16b, v5.16b + eor v18.16b, v18.16b, v3.16b + and v8.16b, v8.16b, v17.16b + and v9.16b, v9.16b, v17.16b + and v16.16b, v16.16b, v17.16b + and v17.16b, v18.16b, v17.16b + eor v4.16b, v4.16b, v8.16b + shl v8.2d, v8.2d, #2 + eor v6.16b, v6.16b, v9.16b + shl v9.2d, v9.2d, #2 + eor v5.16b, v5.16b, v16.16b + shl v16.2d, v16.2d, #2 + eor v3.16b, v3.16b, v17.16b + shl v17.2d, v17.2d, #2 + eor v1.16b, v1.16b, v8.16b + eor v0.16b, v0.16b, v9.16b + eor v7.16b, v7.16b, v16.16b + eor v2.16b, v2.16b, v17.16b + ushr v8.2d, v4.2d, #4 + ushr v9.2d, v6.2d, #4 + ushr v16.2d, v1.2d, #4 + ushr v17.2d, v0.2d, #4 + eor v8.16b, v8.16b, v5.16b + eor v9.16b, v9.16b, v3.16b + eor v16.16b, v16.16b, v7.16b + eor v17.16b, v17.16b, v2.16b + and v8.16b, v8.16b, v19.16b + and v9.16b, v9.16b, v19.16b + and v16.16b, v16.16b, v19.16b + and v17.16b, v17.16b, v19.16b + eor v5.16b, v5.16b, v8.16b + shl v8.2d, v8.2d, #4 + eor v3.16b, v3.16b, v9.16b + shl v9.2d, v9.2d, #4 + eor v7.16b, v7.16b, v16.16b + shl v16.2d, v16.2d, #4 + eor v2.16b, v2.16b, v17.16b + shl v17.2d, v17.2d, #4 + eor v4.16b, v4.16b, v8.16b + eor v6.16b, v6.16b, v9.16b + eor v7.16b, v7.16b, v10.16b + eor v1.16b, v1.16b, v16.16b + eor v2.16b, v2.16b, v10.16b + eor v0.16b, v0.16b, v17.16b + eor v4.16b, v4.16b, v10.16b + eor v6.16b, v6.16b, v10.16b + eor v3.16b, v3.16b, v10.16b + eor v5.16b, v5.16b, v10.16b + eor v1.16b, v1.16b, v10.16b + eor v0.16b, v0.16b, v10.16b + ret + + +.section __TEXT,__const + +.align 6 +_bsaes_consts: +// InvShiftRows constants +// Used in _bsaes_decrypt8, which assumes contiguity +// .LM0ISR used with round 0 key +// .LISR used with middle round keys +// .LISRM0 used with final round key +LM0ISR: +.quad 0x0a0e0206070b0f03, 0x0004080c0d010509 +LISR: +.quad 0x0504070602010003, 0x0f0e0d0c080b0a09 +LISRM0: +.quad 0x01040b0e0205080f, 0x0306090c00070a0d + +// ShiftRows constants +// Used in _bsaes_encrypt8, which assumes contiguity +// .LM0SR used with round 0 key +// .LSR used with middle round keys +// .LSRM0 used with final round key +LM0SR: +.quad 0x0a0e02060f03070b, 0x0004080c05090d01 +LSR: +.quad 0x0504070600030201, 0x0f0e0d0c0a09080b +LSRM0: +.quad 0x0304090e00050a0f, 0x01060b0c0207080d + +LM0_bigendian: +.quad 0x02060a0e03070b0f, 0x0004080c0105090d +LM0_littleendian: +.quad 0x0105090d0004080c, 0x03070b0f02060a0e + +// Used in ossl_bsaes_ctr32_encrypt_blocks, prior to dropping into +// _bsaes_encrypt8_alt, for round 0 key in place of .LM0SR +LREVM0SR: +.quad 0x090d01050c000408, 0x03070b0f060a0e02 + +.align 6 + + +.previous + + +.align 4 +// On entry: +// x9 -> key (previously expanded using _bsaes_key_convert) +// x10 = number of rounds +// v0-v7 input data +// On exit: +// x9-x11 corrupted +// other general-purpose registers preserved +// v0-v7 output data +// v11-v15 preserved +// other SIMD registers corrupted +_bsaes_encrypt8: + ldr q8, [x9], #16 + adrp x11, LM0SR@PAGE + add x11, x11, LM0SR@PAGEOFF + ldr q9, [x11], #16 +_bsaes_encrypt8_alt: + eor v0.16b, v0.16b, v8.16b + eor v1.16b, v1.16b, v8.16b + sub x10, x10, #1 + eor v2.16b, v2.16b, v8.16b + eor v4.16b, v4.16b, v8.16b + eor v3.16b, v3.16b, v8.16b + eor v5.16b, v5.16b, v8.16b + tbl v0.16b, {v0.16b}, v9.16b + tbl v1.16b, {v1.16b}, v9.16b + tbl v2.16b, {v2.16b}, v9.16b + tbl v4.16b, {v4.16b}, v9.16b + eor v6.16b, v6.16b, v8.16b + eor v7.16b, v7.16b, v8.16b + tbl v3.16b, {v3.16b}, v9.16b + tbl v5.16b, {v5.16b}, v9.16b + tbl v6.16b, {v6.16b}, v9.16b + ushr v8.2d, v0.2d, #1 + movi v10.16b, #0x55 + tbl v7.16b, {v7.16b}, v9.16b + ushr v9.2d, v4.2d, #1 + movi v16.16b, #0x33 + ushr v17.2d, v2.2d, #1 + eor v8.16b, v8.16b, v1.16b + movi v18.16b, #0x0f + ushr v19.2d, v6.2d, #1 + eor v9.16b, v9.16b, v5.16b + eor v17.16b, v17.16b, v3.16b + and v8.16b, v8.16b, v10.16b + eor v19.16b, v19.16b, v7.16b + and v9.16b, v9.16b, v10.16b + and v17.16b, v17.16b, v10.16b + eor v1.16b, v1.16b, v8.16b + shl v8.2d, v8.2d, #1 + and v10.16b, v19.16b, v10.16b + eor v5.16b, v5.16b, v9.16b + shl v9.2d, v9.2d, #1 + eor v3.16b, v3.16b, v17.16b + shl v17.2d, v17.2d, #1 + eor v0.16b, v0.16b, v8.16b + shl v8.2d, v10.2d, #1 + eor v7.16b, v7.16b, v10.16b + eor v4.16b, v4.16b, v9.16b + eor v2.16b, v2.16b, v17.16b + ushr v9.2d, v1.2d, #2 + eor v6.16b, v6.16b, v8.16b + ushr v8.2d, v0.2d, #2 + ushr v10.2d, v5.2d, #2 + ushr v17.2d, v4.2d, #2 + eor v9.16b, v9.16b, v3.16b + eor v8.16b, v8.16b, v2.16b + eor v10.16b, v10.16b, v7.16b + eor v17.16b, v17.16b, v6.16b + and v9.16b, v9.16b, v16.16b + and v8.16b, v8.16b, v16.16b + and v10.16b, v10.16b, v16.16b + and v16.16b, v17.16b, v16.16b + eor v3.16b, v3.16b, v9.16b + shl v9.2d, v9.2d, #2 + eor v2.16b, v2.16b, v8.16b + shl v8.2d, v8.2d, #2 + eor v7.16b, v7.16b, v10.16b + shl v10.2d, v10.2d, #2 + eor v6.16b, v6.16b, v16.16b + shl v16.2d, v16.2d, #2 + eor v1.16b, v1.16b, v9.16b + eor v0.16b, v0.16b, v8.16b + eor v5.16b, v5.16b, v10.16b + eor v4.16b, v4.16b, v16.16b + ushr v8.2d, v3.2d, #4 + ushr v9.2d, v2.2d, #4 + ushr v10.2d, v1.2d, #4 + ushr v16.2d, v0.2d, #4 + eor v8.16b, v8.16b, v7.16b + eor v9.16b, v9.16b, v6.16b + eor v10.16b, v10.16b, v5.16b + eor v16.16b, v16.16b, v4.16b + and v8.16b, v8.16b, v18.16b + and v9.16b, v9.16b, v18.16b + and v10.16b, v10.16b, v18.16b + and v16.16b, v16.16b, v18.16b + eor v7.16b, v7.16b, v8.16b + shl v8.2d, v8.2d, #4 + eor v6.16b, v6.16b, v9.16b + shl v9.2d, v9.2d, #4 + eor v5.16b, v5.16b, v10.16b + shl v10.2d, v10.2d, #4 + eor v4.16b, v4.16b, v16.16b + shl v16.2d, v16.2d, #4 + eor v3.16b, v3.16b, v8.16b + eor v2.16b, v2.16b, v9.16b + eor v1.16b, v1.16b, v10.16b + eor v0.16b, v0.16b, v16.16b + b Lenc_sbox +.align 4 +Lenc_loop: + ld1 {v16.16b, v17.16b, v18.16b, v19.16b}, [x9], #64 + ldp q8, q9, [x9], #32 + eor v0.16b, v16.16b, v0.16b + ldr q10, [x9], #16 + eor v1.16b, v17.16b, v1.16b + ldr q16, [x9], #16 + eor v2.16b, v18.16b, v2.16b + eor v3.16b, v19.16b, v3.16b + eor v4.16b, v8.16b, v4.16b + eor v5.16b, v9.16b, v5.16b + eor v6.16b, v10.16b, v6.16b + eor v7.16b, v16.16b, v7.16b + tbl v0.16b, {v0.16b}, v28.16b + tbl v1.16b, {v1.16b}, v28.16b + tbl v2.16b, {v2.16b}, v28.16b + tbl v3.16b, {v3.16b}, v28.16b + tbl v4.16b, {v4.16b}, v28.16b + tbl v5.16b, {v5.16b}, v28.16b + tbl v6.16b, {v6.16b}, v28.16b + tbl v7.16b, {v7.16b}, v28.16b +Lenc_sbox: + eor v5.16b, v5.16b, v6.16b + eor v3.16b, v3.16b, v0.16b + subs x10, x10, #1 + eor v2.16b, v2.16b, v1.16b + eor v5.16b, v5.16b, v0.16b + eor v8.16b, v3.16b, v7.16b + eor v6.16b, v6.16b, v2.16b + eor v7.16b, v7.16b, v5.16b + eor v8.16b, v8.16b, v4.16b + eor v3.16b, v6.16b, v3.16b + eor v4.16b, v4.16b, v5.16b + eor v6.16b, v1.16b, v5.16b + eor v2.16b, v2.16b, v7.16b + eor v1.16b, v8.16b, v1.16b + eor v8.16b, v7.16b, v4.16b + eor v9.16b, v3.16b, v0.16b + eor v10.16b, v7.16b, v6.16b + eor v16.16b, v5.16b, v3.16b + eor v17.16b, v6.16b, v2.16b + eor v18.16b, v5.16b, v1.16b + eor v19.16b, v2.16b, v4.16b + eor v20.16b, v1.16b, v0.16b + orr v21.16b, v8.16b, v9.16b + orr v22.16b, v10.16b, v16.16b + eor v23.16b, v8.16b, v17.16b + eor v24.16b, v9.16b, v18.16b + and v19.16b, v19.16b, v20.16b + orr v20.16b, v17.16b, v18.16b + and v8.16b, v8.16b, v9.16b + and v9.16b, v17.16b, v18.16b + and v17.16b, v23.16b, v24.16b + and v10.16b, v10.16b, v16.16b + eor v16.16b, v21.16b, v19.16b + eor v18.16b, v20.16b, v19.16b + and v19.16b, v2.16b, v1.16b + and v20.16b, v6.16b, v5.16b + eor v21.16b, v22.16b, v17.16b + eor v9.16b, v9.16b, v10.16b + eor v10.16b, v16.16b, v17.16b + eor v16.16b, v18.16b, v8.16b + and v17.16b, v4.16b, v0.16b + orr v18.16b, v7.16b, v3.16b + eor v21.16b, v21.16b, v8.16b + eor v8.16b, v9.16b, v8.16b + eor v9.16b, v10.16b, v19.16b + eor v10.16b, v3.16b, v0.16b + eor v16.16b, v16.16b, v17.16b + eor v17.16b, v5.16b, v1.16b + eor v19.16b, v21.16b, v20.16b + eor v20.16b, v8.16b, v18.16b + eor v8.16b, v8.16b, v18.16b + eor v18.16b, v7.16b, v4.16b + eor v21.16b, v9.16b, v16.16b + eor v22.16b, v6.16b, v2.16b + and v23.16b, v9.16b, v19.16b + eor v24.16b, v10.16b, v17.16b + eor v25.16b, v0.16b, v1.16b + eor v26.16b, v7.16b, v6.16b + eor v27.16b, v18.16b, v22.16b + eor v28.16b, v3.16b, v5.16b + eor v29.16b, v16.16b, v23.16b + eor v30.16b, v20.16b, v23.16b + eor v23.16b, v20.16b, v23.16b + eor v31.16b, v4.16b, v2.16b + bsl v29.16b, v19.16b, v20.16b + bsl v30.16b, v9.16b, v16.16b + bsl v8.16b, v29.16b, v23.16b + bsl v20.16b, v23.16b, v29.16b + eor v9.16b, v30.16b, v29.16b + and v5.16b, v5.16b, v30.16b + and v8.16b, v8.16b, v30.16b + and v1.16b, v1.16b, v29.16b + eor v16.16b, v19.16b, v20.16b + and v2.16b, v2.16b, v29.16b + eor v19.16b, v9.16b, v29.16b + and v17.16b, v17.16b, v9.16b + eor v8.16b, v8.16b, v21.16b + and v20.16b, v22.16b, v9.16b + eor v21.16b, v29.16b, v16.16b + eor v22.16b, v29.16b, v16.16b + and v23.16b, v25.16b, v16.16b + and v6.16b, v6.16b, v19.16b + eor v25.16b, v8.16b, v16.16b + eor v29.16b, v30.16b, v8.16b + and v4.16b, v21.16b, v4.16b + and v8.16b, v28.16b, v8.16b + and v0.16b, v22.16b, v0.16b + eor v21.16b, v23.16b, v1.16b + eor v22.16b, v9.16b, v25.16b + eor v9.16b, v9.16b, v25.16b + eor v23.16b, v25.16b, v16.16b + and v3.16b, v29.16b, v3.16b + and v24.16b, v24.16b, v25.16b + and v25.16b, v27.16b, v25.16b + and v10.16b, v22.16b, v10.16b + and v9.16b, v9.16b, v18.16b + eor v18.16b, v19.16b, v23.16b + and v19.16b, v26.16b, v23.16b + eor v3.16b, v5.16b, v3.16b + eor v17.16b, v17.16b, v24.16b + eor v10.16b, v24.16b, v10.16b + and v16.16b, v31.16b, v16.16b + eor v20.16b, v20.16b, v25.16b + eor v9.16b, v25.16b, v9.16b + eor v4.16b, v2.16b, v4.16b + and v7.16b, v18.16b, v7.16b + eor v18.16b, v19.16b, v6.16b + eor v5.16b, v8.16b, v5.16b + eor v0.16b, v1.16b, v0.16b + eor v1.16b, v21.16b, v10.16b + eor v8.16b, v3.16b, v17.16b + eor v2.16b, v16.16b, v2.16b + eor v3.16b, v6.16b, v7.16b + eor v6.16b, v18.16b, v9.16b + eor v4.16b, v4.16b, v20.16b + eor v10.16b, v5.16b, v10.16b + eor v0.16b, v0.16b, v17.16b + eor v9.16b, v2.16b, v9.16b + eor v3.16b, v3.16b, v20.16b + eor v7.16b, v6.16b, v1.16b + eor v5.16b, v8.16b, v4.16b + eor v6.16b, v10.16b, v1.16b + eor v2.16b, v4.16b, v0.16b + eor v4.16b, v3.16b, v10.16b + eor v9.16b, v9.16b, v7.16b + eor v3.16b, v0.16b, v5.16b + eor v0.16b, v1.16b, v4.16b + eor v1.16b, v4.16b, v8.16b + eor v4.16b, v9.16b, v5.16b + eor v6.16b, v6.16b, v3.16b + bcc Lenc_done + ext v8.16b, v0.16b, v0.16b, #12 + ext v9.16b, v4.16b, v4.16b, #12 + ldr q28, [x11] + ext v10.16b, v6.16b, v6.16b, #12 + ext v16.16b, v1.16b, v1.16b, #12 + ext v17.16b, v3.16b, v3.16b, #12 + ext v18.16b, v7.16b, v7.16b, #12 + eor v0.16b, v0.16b, v8.16b + eor v4.16b, v4.16b, v9.16b + eor v6.16b, v6.16b, v10.16b + ext v19.16b, v2.16b, v2.16b, #12 + ext v20.16b, v5.16b, v5.16b, #12 + eor v1.16b, v1.16b, v16.16b + eor v3.16b, v3.16b, v17.16b + eor v7.16b, v7.16b, v18.16b + eor v2.16b, v2.16b, v19.16b + eor v16.16b, v16.16b, v0.16b + eor v5.16b, v5.16b, v20.16b + eor v17.16b, v17.16b, v6.16b + eor v10.16b, v10.16b, v4.16b + ext v0.16b, v0.16b, v0.16b, #8 + eor v9.16b, v9.16b, v1.16b + ext v1.16b, v1.16b, v1.16b, #8 + eor v8.16b, v8.16b, v5.16b + eor v16.16b, v16.16b, v5.16b + eor v18.16b, v18.16b, v3.16b + eor v19.16b, v19.16b, v7.16b + ext v3.16b, v3.16b, v3.16b, #8 + ext v7.16b, v7.16b, v7.16b, #8 + eor v20.16b, v20.16b, v2.16b + ext v6.16b, v6.16b, v6.16b, #8 + ext v21.16b, v5.16b, v5.16b, #8 + eor v17.16b, v17.16b, v5.16b + ext v2.16b, v2.16b, v2.16b, #8 + eor v10.16b, v10.16b, v5.16b + ext v22.16b, v4.16b, v4.16b, #8 + eor v0.16b, v0.16b, v8.16b + eor v1.16b, v1.16b, v16.16b + eor v5.16b, v7.16b, v18.16b + eor v4.16b, v3.16b, v17.16b + eor v3.16b, v6.16b, v10.16b + eor v7.16b, v21.16b, v20.16b + eor v6.16b, v2.16b, v19.16b + eor v2.16b, v22.16b, v9.16b + bne Lenc_loop + ldr q28, [x11, #16]! // load from LSRM0 on last round (x10 == 0) + b Lenc_loop +.align 4 +Lenc_done: + ushr v8.2d, v0.2d, #1 + movi v9.16b, #0x55 + ldr q10, [x9] + ushr v16.2d, v3.2d, #1 + movi v17.16b, #0x33 + ushr v18.2d, v4.2d, #1 + movi v19.16b, #0x0f + eor v8.16b, v8.16b, v1.16b + ushr v20.2d, v2.2d, #1 + eor v16.16b, v16.16b, v7.16b + eor v18.16b, v18.16b, v6.16b + and v8.16b, v8.16b, v9.16b + eor v20.16b, v20.16b, v5.16b + and v16.16b, v16.16b, v9.16b + and v18.16b, v18.16b, v9.16b + shl v21.2d, v8.2d, #1 + eor v1.16b, v1.16b, v8.16b + and v8.16b, v20.16b, v9.16b + eor v7.16b, v7.16b, v16.16b + shl v9.2d, v16.2d, #1 + eor v6.16b, v6.16b, v18.16b + shl v16.2d, v18.2d, #1 + eor v0.16b, v0.16b, v21.16b + shl v18.2d, v8.2d, #1 + eor v5.16b, v5.16b, v8.16b + eor v3.16b, v3.16b, v9.16b + eor v4.16b, v4.16b, v16.16b + ushr v8.2d, v1.2d, #2 + eor v2.16b, v2.16b, v18.16b + ushr v9.2d, v0.2d, #2 + ushr v16.2d, v7.2d, #2 + ushr v18.2d, v3.2d, #2 + eor v8.16b, v8.16b, v6.16b + eor v9.16b, v9.16b, v4.16b + eor v16.16b, v16.16b, v5.16b + eor v18.16b, v18.16b, v2.16b + and v8.16b, v8.16b, v17.16b + and v9.16b, v9.16b, v17.16b + and v16.16b, v16.16b, v17.16b + and v17.16b, v18.16b, v17.16b + eor v6.16b, v6.16b, v8.16b + shl v8.2d, v8.2d, #2 + eor v4.16b, v4.16b, v9.16b + shl v9.2d, v9.2d, #2 + eor v5.16b, v5.16b, v16.16b + shl v16.2d, v16.2d, #2 + eor v2.16b, v2.16b, v17.16b + shl v17.2d, v17.2d, #2 + eor v1.16b, v1.16b, v8.16b + eor v0.16b, v0.16b, v9.16b + eor v7.16b, v7.16b, v16.16b + eor v3.16b, v3.16b, v17.16b + ushr v8.2d, v6.2d, #4 + ushr v9.2d, v4.2d, #4 + ushr v16.2d, v1.2d, #4 + ushr v17.2d, v0.2d, #4 + eor v8.16b, v8.16b, v5.16b + eor v9.16b, v9.16b, v2.16b + eor v16.16b, v16.16b, v7.16b + eor v17.16b, v17.16b, v3.16b + and v8.16b, v8.16b, v19.16b + and v9.16b, v9.16b, v19.16b + and v16.16b, v16.16b, v19.16b + and v17.16b, v17.16b, v19.16b + eor v5.16b, v5.16b, v8.16b + shl v8.2d, v8.2d, #4 + eor v2.16b, v2.16b, v9.16b + shl v9.2d, v9.2d, #4 + eor v7.16b, v7.16b, v16.16b + shl v16.2d, v16.2d, #4 + eor v3.16b, v3.16b, v17.16b + shl v17.2d, v17.2d, #4 + eor v6.16b, v6.16b, v8.16b + eor v4.16b, v4.16b, v9.16b + eor v7.16b, v7.16b, v10.16b + eor v1.16b, v1.16b, v16.16b + eor v3.16b, v3.16b, v10.16b + eor v0.16b, v0.16b, v17.16b + eor v6.16b, v6.16b, v10.16b + eor v4.16b, v4.16b, v10.16b + eor v2.16b, v2.16b, v10.16b + eor v5.16b, v5.16b, v10.16b + eor v1.16b, v1.16b, v10.16b + eor v0.16b, v0.16b, v10.16b + ret + + + +.align 4 +// On entry: +// x9 -> input key (big-endian) +// x10 = number of rounds +// x17 -> output key (native endianness) +// On exit: +// x9, x10 corrupted +// x11 -> .LM0_bigendian +// x17 -> last quadword of output key +// other general-purpose registers preserved +// v2-v6 preserved +// v7.16b[] = 0x63 +// v8-v14 preserved +// v15 = last round key (converted to native endianness) +// other SIMD registers corrupted +_bsaes_key_convert: +#ifdef __AARCH64EL__ + adrp x11, LM0_littleendian@PAGE + add x11, x11, LM0_littleendian@PAGEOFF +#else + adrp x11, LM0_bigendian@PAGE + add x11, x11, LM0_bigendian@PAGEOFF +#endif + ldr q0, [x9], #16 // load round 0 key + ldr q1, [x11] // LM0 + ldr q15, [x9], #16 // load round 1 key + + movi v7.16b, #0x63 // compose L63 + movi v16.16b, #0x01 // bit masks + movi v17.16b, #0x02 + movi v18.16b, #0x04 + movi v19.16b, #0x08 + movi v20.16b, #0x10 + movi v21.16b, #0x20 + movi v22.16b, #0x40 + movi v23.16b, #0x80 + +#ifdef __AARCH64EL__ + rev32 v0.16b, v0.16b +#endif + sub x10, x10, #1 + str q0, [x17], #16 // save round 0 key + +.align 4 +Lkey_loop: + tbl v0.16b, {v15.16b}, v1.16b + ldr q15, [x9], #16 // load next round key + + eor v0.16b, v0.16b, v7.16b + cmtst v24.16b, v0.16b, v16.16b + cmtst v25.16b, v0.16b, v17.16b + cmtst v26.16b, v0.16b, v18.16b + cmtst v27.16b, v0.16b, v19.16b + cmtst v28.16b, v0.16b, v20.16b + cmtst v29.16b, v0.16b, v21.16b + cmtst v30.16b, v0.16b, v22.16b + cmtst v31.16b, v0.16b, v23.16b + sub x10, x10, #1 + st1 {v24.16b,v25.16b,v26.16b,v27.16b}, [x17], #64 // write bit-sliced round key + st1 {v28.16b,v29.16b,v30.16b,v31.16b}, [x17], #64 + cbnz x10, Lkey_loop + + // don't save last round key +#ifdef __AARCH64EL__ + rev32 v15.16b, v15.16b + adrp x11, LM0_bigendian@PAGE + add x11, x11, LM0_bigendian@PAGEOFF +#endif + ret + + +.globl _ossl_bsaes_cbc_encrypt + +.align 4 +// On entry: +// x0 -> input ciphertext +// x1 -> output plaintext +// x2 = size of ciphertext and plaintext in bytes (assumed a multiple of 16) +// x3 -> key +// x4 -> 128-bit initialisation vector (or preceding 128-bit block of ciphertext if continuing after an earlier call) +// w5 must be == 0 +// On exit: +// Output plaintext filled in +// Initialisation vector overwritten with last quadword of ciphertext +// No output registers, usual AAPCS64 register preservation +_ossl_bsaes_cbc_encrypt: + AARCH64_VALID_CALL_TARGET + cmp x2, #128 + bhs Lcbc_do_bsaes + b _AES_cbc_encrypt +Lcbc_do_bsaes: + + // it is up to the caller to make sure we are called with enc == 0 + + stp x29, x30, [sp, #-48]! + stp d8, d9, [sp, #16] + stp d10, d15, [sp, #32] + lsr x2, x2, #4 // len in 16 byte blocks + + ldr w15, [x3, #240] // get # of rounds + mov x14, sp + + // allocate the key schedule on the stack + add x17, sp, #96 + sub x17, x17, x15, lsl #7 // 128 bytes per inner round key, less 96 bytes + + // populate the key schedule + mov x9, x3 // pass key + mov x10, x15 // pass # of rounds + mov sp, x17 // sp is sp + bl _bsaes_key_convert + ldr q6, [sp] + str q15, [x17] // save last round key + eor v6.16b, v6.16b, v7.16b // fix up round 0 key (by XORing with 0x63) + str q6, [sp] + + ldr q15, [x4] // load IV + b Lcbc_dec_loop + +.align 4 +Lcbc_dec_loop: + subs x2, x2, #0x8 + bmi Lcbc_dec_loop_finish + + ldr q0, [x0], #16 // load input + mov x9, sp // pass the key + ldr q1, [x0], #16 + mov x10, x15 + ldr q2, [x0], #16 + ldr q3, [x0], #16 + ldr q4, [x0], #16 + ldr q5, [x0], #16 + ldr q6, [x0], #16 + ldr q7, [x0], #-7*16 + + bl _bsaes_decrypt8 + + ldr q16, [x0], #16 // reload input + eor v0.16b, v0.16b, v15.16b // ^= IV + eor v1.16b, v1.16b, v16.16b + str q0, [x1], #16 // write output + ldr q0, [x0], #16 + str q1, [x1], #16 + ldr q1, [x0], #16 + eor v1.16b, v4.16b, v1.16b + ldr q4, [x0], #16 + eor v2.16b, v2.16b, v4.16b + eor v0.16b, v6.16b, v0.16b + ldr q4, [x0], #16 + str q0, [x1], #16 + str q1, [x1], #16 + eor v0.16b, v7.16b, v4.16b + ldr q1, [x0], #16 + str q2, [x1], #16 + ldr q2, [x0], #16 + ldr q15, [x0], #16 + str q0, [x1], #16 + eor v0.16b, v5.16b, v2.16b + eor v1.16b, v3.16b, v1.16b + str q1, [x1], #16 + str q0, [x1], #16 + + b Lcbc_dec_loop + +Lcbc_dec_loop_finish: + adds x2, x2, #8 + beq Lcbc_dec_done + + ldr q0, [x0], #16 // load input + cmp x2, #2 + blo Lcbc_dec_one + ldr q1, [x0], #16 + mov x9, sp // pass the key + mov x10, x15 + beq Lcbc_dec_two + ldr q2, [x0], #16 + cmp x2, #4 + blo Lcbc_dec_three + ldr q3, [x0], #16 + beq Lcbc_dec_four + ldr q4, [x0], #16 + cmp x2, #6 + blo Lcbc_dec_five + ldr q5, [x0], #16 + beq Lcbc_dec_six + ldr q6, [x0], #-6*16 + + bl _bsaes_decrypt8 + + ldr q5, [x0], #16 // reload input + eor v0.16b, v0.16b, v15.16b // ^= IV + ldr q8, [x0], #16 + ldr q9, [x0], #16 + ldr q10, [x0], #16 + str q0, [x1], #16 // write output + ldr q0, [x0], #16 + eor v1.16b, v1.16b, v5.16b + ldr q5, [x0], #16 + eor v6.16b, v6.16b, v8.16b + ldr q15, [x0] + eor v4.16b, v4.16b, v9.16b + eor v2.16b, v2.16b, v10.16b + str q1, [x1], #16 + eor v0.16b, v7.16b, v0.16b + str q6, [x1], #16 + eor v1.16b, v3.16b, v5.16b + str q4, [x1], #16 + str q2, [x1], #16 + str q0, [x1], #16 + str q1, [x1] + b Lcbc_dec_done +.align 4 +Lcbc_dec_six: + sub x0, x0, #0x60 + bl _bsaes_decrypt8 + ldr q3, [x0], #16 // reload input + eor v0.16b, v0.16b, v15.16b // ^= IV + ldr q5, [x0], #16 + ldr q8, [x0], #16 + ldr q9, [x0], #16 + str q0, [x1], #16 // write output + ldr q0, [x0], #16 + eor v1.16b, v1.16b, v3.16b + ldr q15, [x0] + eor v3.16b, v6.16b, v5.16b + eor v4.16b, v4.16b, v8.16b + eor v2.16b, v2.16b, v9.16b + str q1, [x1], #16 + eor v0.16b, v7.16b, v0.16b + str q3, [x1], #16 + str q4, [x1], #16 + str q2, [x1], #16 + str q0, [x1] + b Lcbc_dec_done +.align 4 +Lcbc_dec_five: + sub x0, x0, #0x50 + bl _bsaes_decrypt8 + ldr q3, [x0], #16 // reload input + eor v0.16b, v0.16b, v15.16b // ^= IV + ldr q5, [x0], #16 + ldr q7, [x0], #16 + ldr q8, [x0], #16 + str q0, [x1], #16 // write output + ldr q15, [x0] + eor v0.16b, v1.16b, v3.16b + eor v1.16b, v6.16b, v5.16b + eor v3.16b, v4.16b, v7.16b + str q0, [x1], #16 + eor v0.16b, v2.16b, v8.16b + str q1, [x1], #16 + str q3, [x1], #16 + str q0, [x1] + b Lcbc_dec_done +.align 4 +Lcbc_dec_four: + sub x0, x0, #0x40 + bl _bsaes_decrypt8 + ldr q2, [x0], #16 // reload input + eor v0.16b, v0.16b, v15.16b // ^= IV + ldr q3, [x0], #16 + ldr q5, [x0], #16 + str q0, [x1], #16 // write output + ldr q15, [x0] + eor v0.16b, v1.16b, v2.16b + eor v1.16b, v6.16b, v3.16b + eor v2.16b, v4.16b, v5.16b + str q0, [x1], #16 + str q1, [x1], #16 + str q2, [x1] + b Lcbc_dec_done +.align 4 +Lcbc_dec_three: + sub x0, x0, #0x30 + bl _bsaes_decrypt8 + ldr q2, [x0], #16 // reload input + eor v0.16b, v0.16b, v15.16b // ^= IV + ldr q3, [x0], #16 + ldr q15, [x0] + str q0, [x1], #16 // write output + eor v0.16b, v1.16b, v2.16b + eor v1.16b, v6.16b, v3.16b + str q0, [x1], #16 + str q1, [x1] + b Lcbc_dec_done +.align 4 +Lcbc_dec_two: + sub x0, x0, #0x20 + bl _bsaes_decrypt8 + ldr q2, [x0], #16 // reload input + eor v0.16b, v0.16b, v15.16b // ^= IV + ldr q15, [x0] + str q0, [x1], #16 // write output + eor v0.16b, v1.16b, v2.16b + str q0, [x1] + b Lcbc_dec_done +.align 4 +Lcbc_dec_one: + sub x0, x0, #0x10 + stp x1, x4, [sp, #-32]! + str x14, [sp, #16] + mov v8.16b, v15.16b + mov v15.16b, v0.16b + mov x2, x3 + bl _AES_decrypt + ldr x14, [sp, #16] + ldp x1, x4, [sp], #32 + ldr q0, [x1] // load result + eor v0.16b, v0.16b, v8.16b // ^= IV + str q0, [x1] // write output + +.align 4 +Lcbc_dec_done: + movi v0.16b, #0 + movi v1.16b, #0 +Lcbc_dec_bzero: // wipe key schedule [if any] + stp q0, q1, [sp], #32 + cmp sp, x14 + bne Lcbc_dec_bzero + str q15, [x4] // return IV + ldp d8, d9, [sp, #16] + ldp d10, d15, [sp, #32] + ldp x29, x30, [sp], #48 + ret + + +.globl _ossl_bsaes_ctr32_encrypt_blocks + +.align 4 +// On entry: +// x0 -> input text (whole 16-byte blocks) +// x1 -> output text (whole 16-byte blocks) +// x2 = number of 16-byte blocks to encrypt/decrypt (> 0) +// x3 -> key +// x4 -> initial value of 128-bit counter (stored big-endian) which increments, modulo 2^32, for each block +// On exit: +// Output text filled in +// No output registers, usual AAPCS64 register preservation +_ossl_bsaes_ctr32_encrypt_blocks: + AARCH64_VALID_CALL_TARGET + cmp x2, #8 // use plain AES for + blo Lctr_enc_short // small sizes + + stp x29, x30, [sp, #-80]! + stp d8, d9, [sp, #16] + stp d10, d11, [sp, #32] + stp d12, d13, [sp, #48] + stp d14, d15, [sp, #64] + + ldr w15, [x3, #240] // get # of rounds + mov x14, sp + + // allocate the key schedule on the stack + add x17, sp, #96 + sub x17, x17, x15, lsl #7 // 128 bytes per inner round key, less 96 bytes + + // populate the key schedule + mov x9, x3 // pass key + mov x10, x15 // pass # of rounds + mov sp, x17 // sp is sp + bl _bsaes_key_convert + eor v7.16b, v7.16b, v15.16b // fix up last round key + str q7, [x17] // save last round key + + ldr q0, [x4] // load counter + add x13, x11, #LREVM0SR-LM0_bigendian + ldr q4, [sp] // load round0 key + + movi v8.4s, #1 // compose 1<<96 + movi v9.16b, #0 + rev32 v15.16b, v0.16b + rev32 v0.16b, v0.16b + ext v11.16b, v9.16b, v8.16b, #4 + rev32 v4.16b, v4.16b + add v12.4s, v11.4s, v11.4s // compose 2<<96 + str q4, [sp] // save adjusted round0 key + add v13.4s, v11.4s, v12.4s // compose 3<<96 + add v14.4s, v12.4s, v12.4s // compose 4<<96 + b Lctr_enc_loop + +.align 4 +Lctr_enc_loop: + // Intermix prologue from _bsaes_encrypt8 to use the opportunity + // to flip byte order in 32-bit counter + + add v1.4s, v15.4s, v11.4s // +1 + add x9, sp, #0x10 // pass next round key + add v2.4s, v15.4s, v12.4s // +2 + ldr q9, [x13] // LREVM0SR + ldr q8, [sp] // load round0 key + add v3.4s, v15.4s, v13.4s // +3 + mov x10, x15 // pass rounds + sub x11, x13, #LREVM0SR-LSR // pass constants + add v6.4s, v2.4s, v14.4s + add v4.4s, v15.4s, v14.4s // +4 + add v7.4s, v3.4s, v14.4s + add v15.4s, v4.4s, v14.4s // next counter + add v5.4s, v1.4s, v14.4s + + bl _bsaes_encrypt8_alt + + subs x2, x2, #8 + blo Lctr_enc_loop_done + + ldr q16, [x0], #16 + ldr q17, [x0], #16 + eor v1.16b, v1.16b, v17.16b + ldr q17, [x0], #16 + eor v0.16b, v0.16b, v16.16b + eor v4.16b, v4.16b, v17.16b + str q0, [x1], #16 + ldr q16, [x0], #16 + str q1, [x1], #16 + mov v0.16b, v15.16b + str q4, [x1], #16 + ldr q1, [x0], #16 + eor v4.16b, v6.16b, v16.16b + eor v1.16b, v3.16b, v1.16b + ldr q3, [x0], #16 + eor v3.16b, v7.16b, v3.16b + ldr q6, [x0], #16 + eor v2.16b, v2.16b, v6.16b + ldr q6, [x0], #16 + eor v5.16b, v5.16b, v6.16b + str q4, [x1], #16 + str q1, [x1], #16 + str q3, [x1], #16 + str q2, [x1], #16 + str q5, [x1], #16 + + bne Lctr_enc_loop + b Lctr_enc_done + +.align 4 +Lctr_enc_loop_done: + add x2, x2, #8 + ldr q16, [x0], #16 // load input + eor v0.16b, v0.16b, v16.16b + str q0, [x1], #16 // write output + cmp x2, #2 + blo Lctr_enc_done + ldr q17, [x0], #16 + eor v1.16b, v1.16b, v17.16b + str q1, [x1], #16 + beq Lctr_enc_done + ldr q18, [x0], #16 + eor v4.16b, v4.16b, v18.16b + str q4, [x1], #16 + cmp x2, #4 + blo Lctr_enc_done + ldr q19, [x0], #16 + eor v6.16b, v6.16b, v19.16b + str q6, [x1], #16 + beq Lctr_enc_done + ldr q20, [x0], #16 + eor v3.16b, v3.16b, v20.16b + str q3, [x1], #16 + cmp x2, #6 + blo Lctr_enc_done + ldr q21, [x0], #16 + eor v7.16b, v7.16b, v21.16b + str q7, [x1], #16 + beq Lctr_enc_done + ldr q22, [x0] + eor v2.16b, v2.16b, v22.16b + str q2, [x1], #16 + +Lctr_enc_done: + movi v0.16b, #0 + movi v1.16b, #0 +Lctr_enc_bzero: // wipe key schedule [if any] + stp q0, q1, [sp], #32 + cmp sp, x14 + bne Lctr_enc_bzero + + ldp d8, d9, [sp, #16] + ldp d10, d11, [sp, #32] + ldp d12, d13, [sp, #48] + ldp d14, d15, [sp, #64] + ldp x29, x30, [sp], #80 + ret + +Lctr_enc_short: + stp x29, x30, [sp, #-96]! + stp x19, x20, [sp, #16] + stp x21, x22, [sp, #32] + str x23, [sp, #48] + + mov x19, x0 // copy arguments + mov x20, x1 + mov x21, x2 + mov x22, x3 + ldr w23, [x4, #12] // load counter LSW + ldr q1, [x4] // load whole counter value +#ifdef __AARCH64EL__ + rev w23, w23 +#endif + str q1, [sp, #80] // copy counter value + +Lctr_enc_short_loop: + add x0, sp, #80 // input counter value + add x1, sp, #64 // output on the stack + mov x2, x22 // key + + bl _AES_encrypt + + ldr q0, [x19], #16 // load input + ldr q1, [sp, #64] // load encrypted counter + add x23, x23, #1 +#ifdef __AARCH64EL__ + rev w0, w23 + str w0, [sp, #80+12] // next counter value +#else + str w23, [sp, #80+12] // next counter value +#endif + eor v0.16b, v0.16b, v1.16b + str q0, [x20], #16 // store output + subs x21, x21, #1 + bne Lctr_enc_short_loop + + movi v0.16b, #0 + movi v1.16b, #0 + stp q0, q1, [sp, #64] + + ldr x23, [sp, #48] + ldp x21, x22, [sp, #32] + ldp x19, x20, [sp, #16] + ldp x29, x30, [sp], #96 + ret + + +.globl _ossl_bsaes_xts_encrypt + +.align 4 +// On entry: +// x0 -> input plaintext +// x1 -> output ciphertext +// x2 -> length of text in bytes (must be at least 16) +// x3 -> key1 (used to encrypt the XORed plaintext blocks) +// x4 -> key2 (used to encrypt the initial vector to yield the initial tweak) +// x5 -> 16-byte initial vector (typically, sector number) +// On exit: +// Output ciphertext filled in +// No output registers, usual AAPCS64 register preservation +_ossl_bsaes_xts_encrypt: + AARCH64_VALID_CALL_TARGET + // Stack layout: + // sp -> + // nrounds*128-96 bytes: key schedule + // x19 -> + // 16 bytes: frame record + // 4*16 bytes: tweak storage across _bsaes_encrypt8 + // 6*8 bytes: storage for 5 callee-saved general-purpose registers + // 8*8 bytes: storage for 8 callee-saved SIMD registers + stp x29, x30, [sp, #-192]! + stp x19, x20, [sp, #80] + stp x21, x22, [sp, #96] + str x23, [sp, #112] + stp d8, d9, [sp, #128] + stp d10, d11, [sp, #144] + stp d12, d13, [sp, #160] + stp d14, d15, [sp, #176] + + mov x19, sp + mov x20, x0 + mov x21, x1 + mov x22, x2 + mov x23, x3 + + // generate initial tweak + sub sp, sp, #16 + mov x0, x5 // iv[] + mov x1, sp + mov x2, x4 // key2 + bl _AES_encrypt + ldr q11, [sp], #16 + + ldr w1, [x23, #240] // get # of rounds + // allocate the key schedule on the stack + add x17, sp, #96 + sub x17, x17, x1, lsl #7 // 128 bytes per inner round key, less 96 bytes + + // populate the key schedule + mov x9, x23 // pass key + mov x10, x1 // pass # of rounds + mov sp, x17 + bl _bsaes_key_convert + eor v15.16b, v15.16b, v7.16b // fix up last round key + str q15, [x17] // save last round key + + subs x22, x22, #0x80 + blo Lxts_enc_short + b Lxts_enc_loop + +.align 4 +Lxts_enc_loop: + ldr q8, Lxts_magic + mov x10, x1 // pass rounds + add x2, x19, #16 + ldr q0, [x20], #16 + sshr v1.2d, v11.2d, #63 + mov x9, sp // pass key schedule + ldr q6, Lxts_magic+16 + add v2.2d, v11.2d, v11.2d + cmtst v3.2d, v11.2d, v6.2d + and v1.16b, v1.16b, v8.16b + ext v1.16b, v1.16b, v1.16b, #8 + and v3.16b, v3.16b, v8.16b + ldr q4, [x20], #16 + eor v12.16b, v2.16b, v1.16b + eor v1.16b, v4.16b, v12.16b + eor v0.16b, v0.16b, v11.16b + cmtst v2.2d, v12.2d, v6.2d + add v4.2d, v12.2d, v12.2d + add x0, x19, #16 + ext v3.16b, v3.16b, v3.16b, #8 + and v2.16b, v2.16b, v8.16b + eor v13.16b, v4.16b, v3.16b + ldr q3, [x20], #16 + ext v4.16b, v2.16b, v2.16b, #8 + eor v2.16b, v3.16b, v13.16b + ldr q3, [x20], #16 + add v5.2d, v13.2d, v13.2d + cmtst v7.2d, v13.2d, v6.2d + and v7.16b, v7.16b, v8.16b + ldr q9, [x20], #16 + ext v7.16b, v7.16b, v7.16b, #8 + ldr q10, [x20], #16 + eor v14.16b, v5.16b, v4.16b + ldr q16, [x20], #16 + add v4.2d, v14.2d, v14.2d + eor v3.16b, v3.16b, v14.16b + eor v15.16b, v4.16b, v7.16b + add v5.2d, v15.2d, v15.2d + ldr q7, [x20], #16 + cmtst v4.2d, v14.2d, v6.2d + and v17.16b, v4.16b, v8.16b + cmtst v18.2d, v15.2d, v6.2d + eor v4.16b, v9.16b, v15.16b + ext v9.16b, v17.16b, v17.16b, #8 + eor v9.16b, v5.16b, v9.16b + add v17.2d, v9.2d, v9.2d + and v18.16b, v18.16b, v8.16b + eor v5.16b, v10.16b, v9.16b + str q9, [x2], #16 + ext v10.16b, v18.16b, v18.16b, #8 + cmtst v9.2d, v9.2d, v6.2d + and v9.16b, v9.16b, v8.16b + eor v10.16b, v17.16b, v10.16b + cmtst v17.2d, v10.2d, v6.2d + eor v6.16b, v16.16b, v10.16b + str q10, [x2], #16 + ext v9.16b, v9.16b, v9.16b, #8 + add v10.2d, v10.2d, v10.2d + eor v9.16b, v10.16b, v9.16b + str q9, [x2], #16 + eor v7.16b, v7.16b, v9.16b + add v9.2d, v9.2d, v9.2d + and v8.16b, v17.16b, v8.16b + ext v8.16b, v8.16b, v8.16b, #8 + eor v8.16b, v9.16b, v8.16b + str q8, [x2] // next round tweak + + bl _bsaes_encrypt8 + + ldr q8, [x0], #16 + eor v0.16b, v0.16b, v11.16b + eor v1.16b, v1.16b, v12.16b + ldr q9, [x0], #16 + eor v4.16b, v4.16b, v13.16b + eor v6.16b, v6.16b, v14.16b + ldr q10, [x0], #16 + eor v3.16b, v3.16b, v15.16b + subs x22, x22, #0x80 + str q0, [x21], #16 + ldr q11, [x0] // next round tweak + str q1, [x21], #16 + eor v0.16b, v7.16b, v8.16b + eor v1.16b, v2.16b, v9.16b + str q4, [x21], #16 + eor v2.16b, v5.16b, v10.16b + str q6, [x21], #16 + str q3, [x21], #16 + str q0, [x21], #16 + str q1, [x21], #16 + str q2, [x21], #16 + bpl Lxts_enc_loop + +Lxts_enc_short: + adds x22, x22, #0x70 + bmi Lxts_enc_done + + ldr q8, Lxts_magic + sshr v1.2d, v11.2d, #63 + add v2.2d, v11.2d, v11.2d + ldr q9, Lxts_magic+16 + subs x22, x22, #0x10 + ldr q0, [x20], #16 + and v1.16b, v1.16b, v8.16b + cmtst v3.2d, v11.2d, v9.2d + ext v1.16b, v1.16b, v1.16b, #8 + and v3.16b, v3.16b, v8.16b + eor v12.16b, v2.16b, v1.16b + ext v1.16b, v3.16b, v3.16b, #8 + add v2.2d, v12.2d, v12.2d + cmtst v3.2d, v12.2d, v9.2d + eor v13.16b, v2.16b, v1.16b + and v22.16b, v3.16b, v8.16b + bmi Lxts_enc_1 + + ext v2.16b, v22.16b, v22.16b, #8 + add v3.2d, v13.2d, v13.2d + ldr q1, [x20], #16 + cmtst v4.2d, v13.2d, v9.2d + subs x22, x22, #0x10 + eor v14.16b, v3.16b, v2.16b + and v23.16b, v4.16b, v8.16b + bmi Lxts_enc_2 + + ext v3.16b, v23.16b, v23.16b, #8 + add v4.2d, v14.2d, v14.2d + ldr q2, [x20], #16 + cmtst v5.2d, v14.2d, v9.2d + eor v0.16b, v0.16b, v11.16b + subs x22, x22, #0x10 + eor v15.16b, v4.16b, v3.16b + and v24.16b, v5.16b, v8.16b + bmi Lxts_enc_3 + + ext v4.16b, v24.16b, v24.16b, #8 + add v5.2d, v15.2d, v15.2d + ldr q3, [x20], #16 + cmtst v6.2d, v15.2d, v9.2d + eor v1.16b, v1.16b, v12.16b + subs x22, x22, #0x10 + eor v16.16b, v5.16b, v4.16b + and v25.16b, v6.16b, v8.16b + bmi Lxts_enc_4 + + ext v5.16b, v25.16b, v25.16b, #8 + add v6.2d, v16.2d, v16.2d + add x0, x19, #16 + cmtst v7.2d, v16.2d, v9.2d + ldr q4, [x20], #16 + eor v2.16b, v2.16b, v13.16b + str q16, [x0], #16 + subs x22, x22, #0x10 + eor v17.16b, v6.16b, v5.16b + and v26.16b, v7.16b, v8.16b + bmi Lxts_enc_5 + + ext v7.16b, v26.16b, v26.16b, #8 + add v18.2d, v17.2d, v17.2d + ldr q5, [x20], #16 + eor v3.16b, v3.16b, v14.16b + str q17, [x0], #16 + subs x22, x22, #0x10 + eor v18.16b, v18.16b, v7.16b + bmi Lxts_enc_6 + + ldr q6, [x20], #16 + eor v4.16b, v4.16b, v15.16b + eor v5.16b, v5.16b, v16.16b + str q18, [x0] // next round tweak + mov x9, sp // pass key schedule + mov x10, x1 + add x0, x19, #16 + sub x22, x22, #0x10 + eor v6.16b, v6.16b, v17.16b + + bl _bsaes_encrypt8 + + ldr q16, [x0], #16 + eor v0.16b, v0.16b, v11.16b + eor v1.16b, v1.16b, v12.16b + ldr q17, [x0], #16 + eor v4.16b, v4.16b, v13.16b + eor v6.16b, v6.16b, v14.16b + eor v3.16b, v3.16b, v15.16b + ldr q11, [x0] // next round tweak + str q0, [x21], #16 + str q1, [x21], #16 + eor v0.16b, v7.16b, v16.16b + eor v1.16b, v2.16b, v17.16b + str q4, [x21], #16 + str q6, [x21], #16 + str q3, [x21], #16 + str q0, [x21], #16 + str q1, [x21], #16 + b Lxts_enc_done + +.align 4 +Lxts_enc_6: + eor v4.16b, v4.16b, v15.16b + eor v5.16b, v5.16b, v16.16b + mov x9, sp // pass key schedule + mov x10, x1 // pass rounds + add x0, x19, #16 + + bl _bsaes_encrypt8 + + ldr q16, [x0], #16 + eor v0.16b, v0.16b, v11.16b + eor v1.16b, v1.16b, v12.16b + eor v4.16b, v4.16b, v13.16b + eor v6.16b, v6.16b, v14.16b + ldr q11, [x0] // next round tweak + eor v3.16b, v3.16b, v15.16b + str q0, [x21], #16 + str q1, [x21], #16 + eor v0.16b, v7.16b, v16.16b + str q4, [x21], #16 + str q6, [x21], #16 + str q3, [x21], #16 + str q0, [x21], #16 + b Lxts_enc_done + +.align 4 +Lxts_enc_5: + eor v3.16b, v3.16b, v14.16b + eor v4.16b, v4.16b, v15.16b + mov x9, sp // pass key schedule + mov x10, x1 // pass rounds + add x0, x19, #16 + + bl _bsaes_encrypt8 + + eor v0.16b, v0.16b, v11.16b + eor v1.16b, v1.16b, v12.16b + ldr q11, [x0] // next round tweak + eor v4.16b, v4.16b, v13.16b + eor v6.16b, v6.16b, v14.16b + eor v3.16b, v3.16b, v15.16b + str q0, [x21], #16 + str q1, [x21], #16 + str q4, [x21], #16 + str q6, [x21], #16 + str q3, [x21], #16 + b Lxts_enc_done + +.align 4 +Lxts_enc_4: + eor v2.16b, v2.16b, v13.16b + eor v3.16b, v3.16b, v14.16b + mov x9, sp // pass key schedule + mov x10, x1 // pass rounds + add x0, x19, #16 + + bl _bsaes_encrypt8 + + eor v0.16b, v0.16b, v11.16b + eor v1.16b, v1.16b, v12.16b + eor v4.16b, v4.16b, v13.16b + eor v6.16b, v6.16b, v14.16b + mov v11.16b, v15.16b // next round tweak + str q0, [x21], #16 + str q1, [x21], #16 + str q4, [x21], #16 + str q6, [x21], #16 + b Lxts_enc_done + +.align 4 +Lxts_enc_3: + eor v1.16b, v1.16b, v12.16b + eor v2.16b, v2.16b, v13.16b + mov x9, sp // pass key schedule + mov x10, x1 // pass rounds + add x0, x19, #16 + + bl _bsaes_encrypt8 + + eor v0.16b, v0.16b, v11.16b + eor v1.16b, v1.16b, v12.16b + eor v4.16b, v4.16b, v13.16b + mov v11.16b, v14.16b // next round tweak + str q0, [x21], #16 + str q1, [x21], #16 + str q4, [x21], #16 + b Lxts_enc_done + +.align 4 +Lxts_enc_2: + eor v0.16b, v0.16b, v11.16b + eor v1.16b, v1.16b, v12.16b + mov x9, sp // pass key schedule + mov x10, x1 // pass rounds + add x0, x19, #16 + + bl _bsaes_encrypt8 + + eor v0.16b, v0.16b, v11.16b + eor v1.16b, v1.16b, v12.16b + mov v11.16b, v13.16b // next round tweak + str q0, [x21], #16 + str q1, [x21], #16 + b Lxts_enc_done + +.align 4 +Lxts_enc_1: + eor v0.16b, v0.16b, v11.16b + sub x0, sp, #16 + sub x1, sp, #16 + mov x2, x23 + mov v13.d[0], v11.d[1] // just in case _AES_encrypt corrupts top half of callee-saved SIMD registers + mov v14.d[0], v12.d[1] + str q0, [sp, #-16]! + + bl _AES_encrypt + + ldr q0, [sp], #16 + trn1 v13.2d, v11.2d, v13.2d + trn1 v11.2d, v12.2d, v14.2d // next round tweak + eor v0.16b, v0.16b, v13.16b + str q0, [x21], #16 + +Lxts_enc_done: + adds x22, x22, #0x10 + beq Lxts_enc_ret + + sub x6, x21, #0x10 + // Penultimate plaintext block produces final ciphertext part-block + // plus remaining part of final plaintext block. Move ciphertext part + // to final position and reuse penultimate ciphertext block buffer to + // construct final plaintext block +Lxts_enc_steal: + ldrb w0, [x20], #1 + ldrb w1, [x21, #-0x10] + strb w0, [x21, #-0x10] + strb w1, [x21], #1 + + subs x22, x22, #1 + bhi Lxts_enc_steal + + // Finally encrypt the penultimate ciphertext block using the + // last tweak + ldr q0, [x6] + eor v0.16b, v0.16b, v11.16b + str q0, [sp, #-16]! + mov x0, sp + mov x1, sp + mov x2, x23 + mov x21, x6 + mov v13.d[0], v11.d[1] // just in case _AES_encrypt corrupts top half of callee-saved SIMD registers + + bl _AES_encrypt + + trn1 v11.2d, v11.2d, v13.2d + ldr q0, [sp], #16 + eor v0.16b, v0.16b, v11.16b + str q0, [x21] + +Lxts_enc_ret: + + movi v0.16b, #0 + movi v1.16b, #0 +Lxts_enc_bzero: // wipe key schedule + stp q0, q1, [sp], #32 + cmp sp, x19 + bne Lxts_enc_bzero + + ldp x19, x20, [sp, #80] + ldp x21, x22, [sp, #96] + ldr x23, [sp, #112] + ldp d8, d9, [sp, #128] + ldp d10, d11, [sp, #144] + ldp d12, d13, [sp, #160] + ldp d14, d15, [sp, #176] + ldp x29, x30, [sp], #192 + ret + + +// The assembler doesn't seem capable of de-duplicating these when expressed +// using `ldr qd,=` syntax, so assign a symbolic address +.align 5 +Lxts_magic: +.quad 1, 0x87, 0x4000000000000000, 0x4000000000000000 + +.globl _ossl_bsaes_xts_decrypt + +.align 4 +// On entry: +// x0 -> input ciphertext +// x1 -> output plaintext +// x2 -> length of text in bytes (must be at least 16) +// x3 -> key1 (used to decrypt the XORed ciphertext blocks) +// x4 -> key2 (used to encrypt the initial vector to yield the initial tweak) +// x5 -> 16-byte initial vector (typically, sector number) +// On exit: +// Output plaintext filled in +// No output registers, usual AAPCS64 register preservation +_ossl_bsaes_xts_decrypt: + AARCH64_VALID_CALL_TARGET + // Stack layout: + // sp -> + // nrounds*128-96 bytes: key schedule + // x19 -> + // 16 bytes: frame record + // 4*16 bytes: tweak storage across _bsaes_decrypt8 + // 6*8 bytes: storage for 5 callee-saved general-purpose registers + // 8*8 bytes: storage for 8 callee-saved SIMD registers + stp x29, x30, [sp, #-192]! + stp x19, x20, [sp, #80] + stp x21, x22, [sp, #96] + str x23, [sp, #112] + stp d8, d9, [sp, #128] + stp d10, d11, [sp, #144] + stp d12, d13, [sp, #160] + stp d14, d15, [sp, #176] + + mov x19, sp + mov x20, x0 + mov x21, x1 + mov x22, x2 + mov x23, x3 + + // generate initial tweak + sub sp, sp, #16 + mov x0, x5 // iv[] + mov x1, sp + mov x2, x4 // key2 + bl _AES_encrypt + ldr q11, [sp], #16 + + ldr w1, [x23, #240] // get # of rounds + // allocate the key schedule on the stack + add x17, sp, #96 + sub x17, x17, x1, lsl #7 // 128 bytes per inner round key, less 96 bytes + + // populate the key schedule + mov x9, x23 // pass key + mov x10, x1 // pass # of rounds + mov sp, x17 + bl _bsaes_key_convert + ldr q6, [sp] + str q15, [x17] // save last round key + eor v6.16b, v6.16b, v7.16b // fix up round 0 key (by XORing with 0x63) + str q6, [sp] + + sub x30, x22, #0x10 + tst x22, #0xf // if not multiple of 16 + csel x22, x30, x22, ne // subtract another 16 bytes + subs x22, x22, #0x80 + + blo Lxts_dec_short + b Lxts_dec_loop + +.align 4 +Lxts_dec_loop: + ldr q8, Lxts_magic + mov x10, x1 // pass rounds + add x2, x19, #16 + ldr q0, [x20], #16 + sshr v1.2d, v11.2d, #63 + mov x9, sp // pass key schedule + ldr q6, Lxts_magic+16 + add v2.2d, v11.2d, v11.2d + cmtst v3.2d, v11.2d, v6.2d + and v1.16b, v1.16b, v8.16b + ext v1.16b, v1.16b, v1.16b, #8 + and v3.16b, v3.16b, v8.16b + ldr q4, [x20], #16 + eor v12.16b, v2.16b, v1.16b + eor v1.16b, v4.16b, v12.16b + eor v0.16b, v0.16b, v11.16b + cmtst v2.2d, v12.2d, v6.2d + add v4.2d, v12.2d, v12.2d + add x0, x19, #16 + ext v3.16b, v3.16b, v3.16b, #8 + and v2.16b, v2.16b, v8.16b + eor v13.16b, v4.16b, v3.16b + ldr q3, [x20], #16 + ext v4.16b, v2.16b, v2.16b, #8 + eor v2.16b, v3.16b, v13.16b + ldr q3, [x20], #16 + add v5.2d, v13.2d, v13.2d + cmtst v7.2d, v13.2d, v6.2d + and v7.16b, v7.16b, v8.16b + ldr q9, [x20], #16 + ext v7.16b, v7.16b, v7.16b, #8 + ldr q10, [x20], #16 + eor v14.16b, v5.16b, v4.16b + ldr q16, [x20], #16 + add v4.2d, v14.2d, v14.2d + eor v3.16b, v3.16b, v14.16b + eor v15.16b, v4.16b, v7.16b + add v5.2d, v15.2d, v15.2d + ldr q7, [x20], #16 + cmtst v4.2d, v14.2d, v6.2d + and v17.16b, v4.16b, v8.16b + cmtst v18.2d, v15.2d, v6.2d + eor v4.16b, v9.16b, v15.16b + ext v9.16b, v17.16b, v17.16b, #8 + eor v9.16b, v5.16b, v9.16b + add v17.2d, v9.2d, v9.2d + and v18.16b, v18.16b, v8.16b + eor v5.16b, v10.16b, v9.16b + str q9, [x2], #16 + ext v10.16b, v18.16b, v18.16b, #8 + cmtst v9.2d, v9.2d, v6.2d + and v9.16b, v9.16b, v8.16b + eor v10.16b, v17.16b, v10.16b + cmtst v17.2d, v10.2d, v6.2d + eor v6.16b, v16.16b, v10.16b + str q10, [x2], #16 + ext v9.16b, v9.16b, v9.16b, #8 + add v10.2d, v10.2d, v10.2d + eor v9.16b, v10.16b, v9.16b + str q9, [x2], #16 + eor v7.16b, v7.16b, v9.16b + add v9.2d, v9.2d, v9.2d + and v8.16b, v17.16b, v8.16b + ext v8.16b, v8.16b, v8.16b, #8 + eor v8.16b, v9.16b, v8.16b + str q8, [x2] // next round tweak + + bl _bsaes_decrypt8 + + eor v6.16b, v6.16b, v13.16b + eor v0.16b, v0.16b, v11.16b + ldr q8, [x0], #16 + eor v7.16b, v7.16b, v8.16b + str q0, [x21], #16 + eor v0.16b, v1.16b, v12.16b + ldr q1, [x0], #16 + eor v1.16b, v3.16b, v1.16b + subs x22, x22, #0x80 + eor v2.16b, v2.16b, v15.16b + eor v3.16b, v4.16b, v14.16b + ldr q4, [x0], #16 + str q0, [x21], #16 + ldr q11, [x0] // next round tweak + eor v0.16b, v5.16b, v4.16b + str q6, [x21], #16 + str q3, [x21], #16 + str q2, [x21], #16 + str q7, [x21], #16 + str q1, [x21], #16 + str q0, [x21], #16 + bpl Lxts_dec_loop + +Lxts_dec_short: + adds x22, x22, #0x70 + bmi Lxts_dec_done + + ldr q8, Lxts_magic + sshr v1.2d, v11.2d, #63 + add v2.2d, v11.2d, v11.2d + ldr q9, Lxts_magic+16 + subs x22, x22, #0x10 + ldr q0, [x20], #16 + and v1.16b, v1.16b, v8.16b + cmtst v3.2d, v11.2d, v9.2d + ext v1.16b, v1.16b, v1.16b, #8 + and v3.16b, v3.16b, v8.16b + eor v12.16b, v2.16b, v1.16b + ext v1.16b, v3.16b, v3.16b, #8 + add v2.2d, v12.2d, v12.2d + cmtst v3.2d, v12.2d, v9.2d + eor v13.16b, v2.16b, v1.16b + and v22.16b, v3.16b, v8.16b + bmi Lxts_dec_1 + + ext v2.16b, v22.16b, v22.16b, #8 + add v3.2d, v13.2d, v13.2d + ldr q1, [x20], #16 + cmtst v4.2d, v13.2d, v9.2d + subs x22, x22, #0x10 + eor v14.16b, v3.16b, v2.16b + and v23.16b, v4.16b, v8.16b + bmi Lxts_dec_2 + + ext v3.16b, v23.16b, v23.16b, #8 + add v4.2d, v14.2d, v14.2d + ldr q2, [x20], #16 + cmtst v5.2d, v14.2d, v9.2d + eor v0.16b, v0.16b, v11.16b + subs x22, x22, #0x10 + eor v15.16b, v4.16b, v3.16b + and v24.16b, v5.16b, v8.16b + bmi Lxts_dec_3 + + ext v4.16b, v24.16b, v24.16b, #8 + add v5.2d, v15.2d, v15.2d + ldr q3, [x20], #16 + cmtst v6.2d, v15.2d, v9.2d + eor v1.16b, v1.16b, v12.16b + subs x22, x22, #0x10 + eor v16.16b, v5.16b, v4.16b + and v25.16b, v6.16b, v8.16b + bmi Lxts_dec_4 + + ext v5.16b, v25.16b, v25.16b, #8 + add v6.2d, v16.2d, v16.2d + add x0, x19, #16 + cmtst v7.2d, v16.2d, v9.2d + ldr q4, [x20], #16 + eor v2.16b, v2.16b, v13.16b + str q16, [x0], #16 + subs x22, x22, #0x10 + eor v17.16b, v6.16b, v5.16b + and v26.16b, v7.16b, v8.16b + bmi Lxts_dec_5 + + ext v7.16b, v26.16b, v26.16b, #8 + add v18.2d, v17.2d, v17.2d + ldr q5, [x20], #16 + eor v3.16b, v3.16b, v14.16b + str q17, [x0], #16 + subs x22, x22, #0x10 + eor v18.16b, v18.16b, v7.16b + bmi Lxts_dec_6 + + ldr q6, [x20], #16 + eor v4.16b, v4.16b, v15.16b + eor v5.16b, v5.16b, v16.16b + str q18, [x0] // next round tweak + mov x9, sp // pass key schedule + mov x10, x1 + add x0, x19, #16 + sub x22, x22, #0x10 + eor v6.16b, v6.16b, v17.16b + + bl _bsaes_decrypt8 + + ldr q16, [x0], #16 + eor v0.16b, v0.16b, v11.16b + eor v1.16b, v1.16b, v12.16b + ldr q17, [x0], #16 + eor v6.16b, v6.16b, v13.16b + eor v4.16b, v4.16b, v14.16b + eor v2.16b, v2.16b, v15.16b + ldr q11, [x0] // next round tweak + str q0, [x21], #16 + str q1, [x21], #16 + eor v0.16b, v7.16b, v16.16b + eor v1.16b, v3.16b, v17.16b + str q6, [x21], #16 + str q4, [x21], #16 + str q2, [x21], #16 + str q0, [x21], #16 + str q1, [x21], #16 + b Lxts_dec_done + +.align 4 +Lxts_dec_6: + eor v4.16b, v4.16b, v15.16b + eor v5.16b, v5.16b, v16.16b + mov x9, sp // pass key schedule + mov x10, x1 // pass rounds + add x0, x19, #16 + + bl _bsaes_decrypt8 + + ldr q16, [x0], #16 + eor v0.16b, v0.16b, v11.16b + eor v1.16b, v1.16b, v12.16b + eor v6.16b, v6.16b, v13.16b + eor v4.16b, v4.16b, v14.16b + ldr q11, [x0] // next round tweak + eor v2.16b, v2.16b, v15.16b + str q0, [x21], #16 + str q1, [x21], #16 + eor v0.16b, v7.16b, v16.16b + str q6, [x21], #16 + str q4, [x21], #16 + str q2, [x21], #16 + str q0, [x21], #16 + b Lxts_dec_done + +.align 4 +Lxts_dec_5: + eor v3.16b, v3.16b, v14.16b + eor v4.16b, v4.16b, v15.16b + mov x9, sp // pass key schedule + mov x10, x1 // pass rounds + add x0, x19, #16 + + bl _bsaes_decrypt8 + + eor v0.16b, v0.16b, v11.16b + eor v1.16b, v1.16b, v12.16b + ldr q11, [x0] // next round tweak + eor v6.16b, v6.16b, v13.16b + eor v4.16b, v4.16b, v14.16b + eor v2.16b, v2.16b, v15.16b + str q0, [x21], #16 + str q1, [x21], #16 + str q6, [x21], #16 + str q4, [x21], #16 + str q2, [x21], #16 + b Lxts_dec_done + +.align 4 +Lxts_dec_4: + eor v2.16b, v2.16b, v13.16b + eor v3.16b, v3.16b, v14.16b + mov x9, sp // pass key schedule + mov x10, x1 // pass rounds + add x0, x19, #16 + + bl _bsaes_decrypt8 + + eor v0.16b, v0.16b, v11.16b + eor v1.16b, v1.16b, v12.16b + eor v6.16b, v6.16b, v13.16b + eor v4.16b, v4.16b, v14.16b + mov v11.16b, v15.16b // next round tweak + str q0, [x21], #16 + str q1, [x21], #16 + str q6, [x21], #16 + str q4, [x21], #16 + b Lxts_dec_done + +.align 4 +Lxts_dec_3: + eor v1.16b, v1.16b, v12.16b + eor v2.16b, v2.16b, v13.16b + mov x9, sp // pass key schedule + mov x10, x1 // pass rounds + add x0, x19, #16 + + bl _bsaes_decrypt8 + + eor v0.16b, v0.16b, v11.16b + eor v1.16b, v1.16b, v12.16b + eor v6.16b, v6.16b, v13.16b + mov v11.16b, v14.16b // next round tweak + str q0, [x21], #16 + str q1, [x21], #16 + str q6, [x21], #16 + b Lxts_dec_done + +.align 4 +Lxts_dec_2: + eor v0.16b, v0.16b, v11.16b + eor v1.16b, v1.16b, v12.16b + mov x9, sp // pass key schedule + mov x10, x1 // pass rounds + add x0, x19, #16 + + bl _bsaes_decrypt8 + + eor v0.16b, v0.16b, v11.16b + eor v1.16b, v1.16b, v12.16b + mov v11.16b, v13.16b // next round tweak + str q0, [x21], #16 + str q1, [x21], #16 + b Lxts_dec_done + +.align 4 +Lxts_dec_1: + eor v0.16b, v0.16b, v11.16b + sub x0, sp, #16 + sub x1, sp, #16 + mov x2, x23 + mov v13.d[0], v11.d[1] // just in case _AES_decrypt corrupts top half of callee-saved SIMD registers + mov v14.d[0], v12.d[1] + str q0, [sp, #-16]! + + bl _AES_decrypt + + ldr q0, [sp], #16 + trn1 v13.2d, v11.2d, v13.2d + trn1 v11.2d, v12.2d, v14.2d // next round tweak + eor v0.16b, v0.16b, v13.16b + str q0, [x21], #16 + +Lxts_dec_done: + adds x22, x22, #0x10 + beq Lxts_dec_ret + + // calculate one round of extra tweak for the stolen ciphertext + ldr q8, Lxts_magic + sshr v6.2d, v11.2d, #63 + and v6.16b, v6.16b, v8.16b + add v12.2d, v11.2d, v11.2d + ext v6.16b, v6.16b, v6.16b, #8 + eor v12.16b, v12.16b, v6.16b + + // perform the final decryption with the last tweak value + ldr q0, [x20], #16 + eor v0.16b, v0.16b, v12.16b + str q0, [sp, #-16]! + mov x0, sp + mov x1, sp + mov x2, x23 + mov v13.d[0], v11.d[1] // just in case _AES_decrypt corrupts top half of callee-saved SIMD registers + mov v14.d[0], v12.d[1] + + bl _AES_decrypt + + trn1 v12.2d, v12.2d, v14.2d + trn1 v11.2d, v11.2d, v13.2d + ldr q0, [sp], #16 + eor v0.16b, v0.16b, v12.16b + str q0, [x21] + + mov x6, x21 + // Penultimate ciphertext block produces final plaintext part-block + // plus remaining part of final ciphertext block. Move plaintext part + // to final position and reuse penultimate plaintext block buffer to + // construct final ciphertext block +Lxts_dec_steal: + ldrb w1, [x21] + ldrb w0, [x20], #1 + strb w1, [x21, #0x10] + strb w0, [x21], #1 + + subs x22, x22, #1 + bhi Lxts_dec_steal + + // Finally decrypt the penultimate plaintext block using the + // penultimate tweak + ldr q0, [x6] + eor v0.16b, v0.16b, v11.16b + str q0, [sp, #-16]! + mov x0, sp + mov x1, sp + mov x2, x23 + mov x21, x6 + + bl _AES_decrypt + + trn1 v11.2d, v11.2d, v13.2d + ldr q0, [sp], #16 + eor v0.16b, v0.16b, v11.16b + str q0, [x21] + +Lxts_dec_ret: + + movi v0.16b, #0 + movi v1.16b, #0 +Lxts_dec_bzero: // wipe key schedule + stp q0, q1, [sp], #32 + cmp sp, x19 + bne Lxts_dec_bzero + + ldp x19, x20, [sp, #80] + ldp x21, x22, [sp, #96] + ldr x23, [sp, #112] + ldp d8, d9, [sp, #128] + ldp d10, d11, [sp, #144] + ldp d12, d13, [sp, #160] + ldp d14, d15, [sp, #176] + ldp x29, x30, [sp], #192 + ret + diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/asm/crypto/aes/vpaes-armv8.S b/deps/openssl/config/archs/darwin64-arm64-cc/asm/crypto/aes/vpaes-armv8.S index 0823766c765dfb..b4153363c6829a 100644 --- a/deps/openssl/config/archs/darwin64-arm64-cc/asm/crypto/aes/vpaes-armv8.S +++ b/deps/openssl/config/archs/darwin64-arm64-cc/asm/crypto/aes/vpaes-armv8.S @@ -1,4 +1,6 @@ -.text +#include "arm_arch.h" + +.section __TEXT,__const .align 7 // totally strategic alignment @@ -90,6 +92,9 @@ Lk_deskew: // deskew tables: inverts the sbox's "skew" .align 2 .align 6 + +.text + // // _aes_preheat // @@ -99,7 +104,8 @@ Lk_deskew: // deskew tables: inverts the sbox's "skew" .align 4 _vpaes_encrypt_preheat: - adr x10, Lk_inv + adrp x10, Lk_inv@PAGE + add x10, x10, Lk_inv@PAGEOFF movi v17.16b, #0x0f ld1 {v18.2d,v19.2d}, [x10],#32 // Lk_inv ld1 {v20.2d,v21.2d,v22.2d,v23.2d}, [x10],#64 // Lk_ipt, Lk_sbo @@ -127,7 +133,8 @@ _vpaes_encrypt_preheat: _vpaes_encrypt_core: mov x9, x2 ldr w8, [x2,#240] // pull rounds - adr x11, Lk_mc_forward+16 + adrp x11, Lk_mc_forward+16@PAGE + add x11, x11, Lk_mc_forward@PAGEOFF+16 // vmovdqa .Lk_ipt(%rip), %xmm2 # iptlo ld1 {v16.2d}, [x9], #16 // vmovdqu (%r9), %xmm5 # round0 key and v1.16b, v7.16b, v17.16b // vpand %xmm9, %xmm0, %xmm1 @@ -195,7 +202,7 @@ Lenc_entry: .align 4 _vpaes_encrypt: -.long 0xd503233f // paciasp + AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-16]! add x29,sp,#0 @@ -205,7 +212,7 @@ _vpaes_encrypt: st1 {v0.16b}, [x1] ldp x29,x30,[sp],#16 -.long 0xd50323bf // autiasp + AARCH64_VALIDATE_LINK_REGISTER ret @@ -214,7 +221,8 @@ _vpaes_encrypt: _vpaes_encrypt_2x: mov x9, x2 ldr w8, [x2,#240] // pull rounds - adr x11, Lk_mc_forward+16 + adrp x11, Lk_mc_forward+16@PAGE + add x11, x11, Lk_mc_forward@PAGEOFF+16 // vmovdqa .Lk_ipt(%rip), %xmm2 # iptlo ld1 {v16.2d}, [x9], #16 // vmovdqu (%r9), %xmm5 # round0 key and v1.16b, v14.16b, v17.16b // vpand %xmm9, %xmm0, %xmm1 @@ -317,9 +325,11 @@ Lenc_2x_entry: .align 4 _vpaes_decrypt_preheat: - adr x10, Lk_inv + adrp x10, Lk_inv@PAGE + add x10, x10, Lk_inv@PAGEOFF movi v17.16b, #0x0f - adr x11, Lk_dipt + adrp x11, Lk_dipt@PAGE + add x11, x11, Lk_dipt@PAGEOFF ld1 {v18.2d,v19.2d}, [x10],#32 // Lk_inv ld1 {v20.2d,v21.2d,v22.2d,v23.2d}, [x11],#64 // Lk_dipt, Lk_dsbo ld1 {v24.2d,v25.2d,v26.2d,v27.2d}, [x11],#64 // Lk_dsb9, Lk_dsbd @@ -341,10 +351,12 @@ _vpaes_decrypt_core: // vmovdqa .Lk_dipt(%rip), %xmm2 # iptlo lsl x11, x8, #4 // mov %rax, %r11; shl $4, %r11 eor x11, x11, #0x30 // xor $0x30, %r11 - adr x10, Lk_sr + adrp x10, Lk_sr@PAGE + add x10, x10, Lk_sr@PAGEOFF and x11, x11, #0x30 // and $0x30, %r11 add x11, x11, x10 - adr x10, Lk_mc_forward+48 + adrp x10, Lk_mc_forward+48@PAGE + add x10, x10, Lk_mc_forward@PAGEOFF+48 ld1 {v16.2d}, [x9],#16 // vmovdqu (%r9), %xmm4 # round0 key and v1.16b, v7.16b, v17.16b // vpand %xmm9, %xmm0, %xmm1 @@ -428,7 +440,7 @@ Ldec_entry: .align 4 _vpaes_decrypt: -.long 0xd503233f // paciasp + AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-16]! add x29,sp,#0 @@ -438,7 +450,7 @@ _vpaes_decrypt: st1 {v0.16b}, [x1] ldp x29,x30,[sp],#16 -.long 0xd50323bf // autiasp + AARCH64_VALIDATE_LINK_REGISTER ret @@ -452,10 +464,12 @@ _vpaes_decrypt_2x: // vmovdqa .Lk_dipt(%rip), %xmm2 # iptlo lsl x11, x8, #4 // mov %rax, %r11; shl $4, %r11 eor x11, x11, #0x30 // xor $0x30, %r11 - adr x10, Lk_sr + adrp x10, Lk_sr@PAGE + add x10, x10, Lk_sr@PAGEOFF and x11, x11, #0x30 // and $0x30, %r11 add x11, x11, x10 - adr x10, Lk_mc_forward+48 + adrp x10, Lk_mc_forward+48@PAGE + add x10, x10, Lk_mc_forward@PAGEOFF+48 ld1 {v16.2d}, [x9],#16 // vmovdqu (%r9), %xmm4 # round0 key and v1.16b, v14.16b, v17.16b // vpand %xmm9, %xmm0, %xmm1 @@ -584,14 +598,18 @@ Ldec_2x_entry: .align 4 _vpaes_key_preheat: - adr x10, Lk_inv + adrp x10, Lk_inv@PAGE + add x10, x10, Lk_inv@PAGEOFF movi v16.16b, #0x5b // Lk_s63 - adr x11, Lk_sb1 + adrp x11, Lk_sb1@PAGE + add x11, x11, Lk_sb1@PAGEOFF movi v17.16b, #0x0f // Lk_s0F ld1 {v18.2d,v19.2d,v20.2d,v21.2d}, [x10] // Lk_inv, Lk_ipt - adr x10, Lk_dksd + adrp x10, Lk_dksd@PAGE + add x10, x10, Lk_dksd@PAGEOFF ld1 {v22.2d,v23.2d}, [x11] // Lk_sb1 - adr x11, Lk_mc_forward + adrp x11, Lk_mc_forward@PAGE + add x11, x11, Lk_mc_forward@PAGEOFF ld1 {v24.2d,v25.2d,v26.2d,v27.2d}, [x10],#64 // Lk_dksd, Lk_dksb ld1 {v28.2d,v29.2d,v30.2d,v31.2d}, [x10],#64 // Lk_dkse, Lk_dks9 ld1 {v8.2d}, [x10] // Lk_rcon @@ -602,7 +620,7 @@ _vpaes_key_preheat: .align 4 _vpaes_schedule_core: -.long 0xd503233f // paciasp + AARCH64_SIGN_LINK_REGISTER stp x29, x30, [sp,#-16]! add x29,sp,#0 @@ -615,7 +633,8 @@ _vpaes_schedule_core: bl _vpaes_schedule_transform mov v7.16b, v0.16b // vmovdqa %xmm0, %xmm7 - adr x10, Lk_sr // lea Lk_sr(%rip),%r10 + adrp x10, Lk_sr@PAGE + add x10, x10, Lk_sr@PAGEOFF add x8, x8, x10 cbnz w3, Lschedule_am_decrypting @@ -741,12 +760,14 @@ Loop_schedule_256: .align 4 Lschedule_mangle_last: // schedule last round key from xmm0 - adr x11, Lk_deskew // lea Lk_deskew(%rip),%r11 # prepare to deskew + adrp x11, Lk_deskew@PAGE + add x11, x11, Lk_deskew@PAGEOFF cbnz w3, Lschedule_mangle_last_dec // encrypting ld1 {v1.2d}, [x8] // vmovdqa (%r8,%r10),%xmm1 - adr x11, Lk_opt // lea Lk_opt(%rip), %r11 # prepare to output transform + adrp x11, Lk_opt@PAGE + add x11, x11, Lk_opt@PAGEOFF add x2, x2, #32 // add $32, %rdx tbl v0.16b, {v0.16b}, v1.16b // vpshufb %xmm1, %xmm0, %xmm0 # output permute @@ -767,7 +788,7 @@ Lschedule_mangle_last_dec: eor v6.16b, v6.16b, v6.16b // vpxor %xmm6, %xmm6, %xmm6 eor v7.16b, v7.16b, v7.16b // vpxor %xmm7, %xmm7, %xmm7 ldp x29, x30, [sp],#16 -.long 0xd50323bf // autiasp + AARCH64_VALIDATE_LINK_REGISTER ret @@ -980,7 +1001,7 @@ Lschedule_mangle_both: .align 4 _vpaes_set_encrypt_key: -.long 0xd503233f // paciasp + AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-16]! add x29,sp,#0 stp d8,d9,[sp,#-16]! // ABI spec says so @@ -996,7 +1017,7 @@ _vpaes_set_encrypt_key: ldp d8,d9,[sp],#16 ldp x29,x30,[sp],#16 -.long 0xd50323bf // autiasp + AARCH64_VALIDATE_LINK_REGISTER ret @@ -1004,7 +1025,7 @@ _vpaes_set_encrypt_key: .align 4 _vpaes_set_decrypt_key: -.long 0xd503233f // paciasp + AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-16]! add x29,sp,#0 stp d8,d9,[sp,#-16]! // ABI spec says so @@ -1024,18 +1045,18 @@ _vpaes_set_decrypt_key: ldp d8,d9,[sp],#16 ldp x29,x30,[sp],#16 -.long 0xd50323bf // autiasp + AARCH64_VALIDATE_LINK_REGISTER ret .globl _vpaes_cbc_encrypt .align 4 _vpaes_cbc_encrypt: + AARCH64_SIGN_LINK_REGISTER cbz x2, Lcbc_abort cmp w5, #0 // check direction b.eq vpaes_cbc_decrypt -.long 0xd503233f // paciasp stp x29,x30,[sp,#-16]! add x29,sp,#0 @@ -1058,15 +1079,16 @@ Lcbc_enc_loop: st1 {v0.16b}, [x4] // write ivec ldp x29,x30,[sp],#16 -.long 0xd50323bf // autiasp Lcbc_abort: + AARCH64_VALIDATE_LINK_REGISTER ret .align 4 vpaes_cbc_decrypt: -.long 0xd503233f // paciasp + // Not adding AARCH64_SIGN_LINK_REGISTER here because vpaes_cbc_decrypt is jumped to + // only from vpaes_cbc_encrypt which has already signed the return address. stp x29,x30,[sp,#-16]! add x29,sp,#0 stp d8,d9,[sp,#-16]! // ABI spec says so @@ -1108,14 +1130,14 @@ Lcbc_dec_done: ldp d10,d11,[sp],#16 ldp d8,d9,[sp],#16 ldp x29,x30,[sp],#16 -.long 0xd50323bf // autiasp + AARCH64_VALIDATE_LINK_REGISTER ret .globl _vpaes_ecb_encrypt .align 4 _vpaes_ecb_encrypt: -.long 0xd503233f // paciasp + AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-16]! add x29,sp,#0 stp d8,d9,[sp,#-16]! // ABI spec says so @@ -1149,7 +1171,7 @@ Lecb_enc_done: ldp d10,d11,[sp],#16 ldp d8,d9,[sp],#16 ldp x29,x30,[sp],#16 -.long 0xd50323bf // autiasp + AARCH64_VALIDATE_LINK_REGISTER ret @@ -1157,7 +1179,7 @@ Lecb_enc_done: .align 4 _vpaes_ecb_decrypt: -.long 0xd503233f // paciasp + AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-16]! add x29,sp,#0 stp d8,d9,[sp,#-16]! // ABI spec says so @@ -1191,6 +1213,6 @@ Lecb_dec_done: ldp d10,d11,[sp],#16 ldp d8,d9,[sp],#16 ldp x29,x30,[sp],#16 -.long 0xd50323bf // autiasp + AARCH64_VALIDATE_LINK_REGISTER ret diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/asm/crypto/arm64cpuid.S b/deps/openssl/config/archs/darwin64-arm64-cc/asm/crypto/arm64cpuid.S index 31d33acecc0017..b3d0764741b286 100644 --- a/deps/openssl/config/archs/darwin64-arm64-cc/asm/crypto/arm64cpuid.S +++ b/deps/openssl/config/archs/darwin64-arm64-cc/asm/crypto/arm64cpuid.S @@ -7,6 +7,7 @@ .globl __armv7_neon_probe __armv7_neon_probe: + AARCH64_VALID_CALL_TARGET orr v15.16b, v15.16b, v15.16b ret @@ -14,6 +15,7 @@ __armv7_neon_probe: .globl __armv7_tick __armv7_tick: + AARCH64_VALID_CALL_TARGET #ifdef __APPLE__ mrs x0, CNTPCT_EL0 #else @@ -25,6 +27,7 @@ __armv7_tick: .globl __armv8_aes_probe __armv8_aes_probe: + AARCH64_VALID_CALL_TARGET aese v0.16b, v0.16b ret @@ -32,6 +35,7 @@ __armv8_aes_probe: .globl __armv8_sha1_probe __armv8_sha1_probe: + AARCH64_VALID_CALL_TARGET sha1h s0, s0 ret @@ -39,6 +43,7 @@ __armv8_sha1_probe: .globl __armv8_sha256_probe __armv8_sha256_probe: + AARCH64_VALID_CALL_TARGET sha256su0 v0.4s, v0.4s ret @@ -46,28 +51,72 @@ __armv8_sha256_probe: .globl __armv8_pmull_probe __armv8_pmull_probe: + AARCH64_VALID_CALL_TARGET pmull v0.1q, v0.1d, v0.1d ret +.globl __armv8_sm4_probe + +__armv8_sm4_probe: + AARCH64_VALID_CALL_TARGET +.long 0xcec08400 // sm4e v0.4s, v0.4s + ret + + .globl __armv8_sha512_probe __armv8_sha512_probe: + AARCH64_VALID_CALL_TARGET .long 0xcec08000 // sha512su0 v0.2d,v0.2d ret +.globl __armv8_eor3_probe + +__armv8_eor3_probe: + AARCH64_VALID_CALL_TARGET +.long 0xce010800 // eor3 v0.16b, v0.16b, v1.16b, v2.16b + ret + + +.globl __armv8_sve_probe + +__armv8_sve_probe: + AARCH64_VALID_CALL_TARGET +.long 0x04a03000 // eor z0.d,z0.d,z0.d + ret + + +.globl __armv8_sve2_probe + +__armv8_sve2_probe: + AARCH64_VALID_CALL_TARGET +.long 0x04e03400 // xar z0.d,z0.d,z0.d + ret + + .globl __armv8_cpuid_probe __armv8_cpuid_probe: + AARCH64_VALID_CALL_TARGET mrs x0, midr_el1 ret +.globl __armv8_sm3_probe + +__armv8_sm3_probe: + AARCH64_VALID_CALL_TARGET +.long 0xce63c004 // sm3partw1 v4.4s, v0.4s, v3.4s + ret + + .globl _OPENSSL_cleanse .align 5 _OPENSSL_cleanse: + AARCH64_VALID_CALL_TARGET cbz x1,Lret // len==0? cmp x1,#15 b.hi Lot // len>15 @@ -99,6 +148,7 @@ Laligned: .align 4 _CRYPTO_memcmp: + AARCH64_VALID_CALL_TARGET eor w3,w3,w3 cbz x2,Lno_data // len==0? cmp x2,#16 @@ -127,3 +177,98 @@ Lno_data: lsr w0,w0,#31 ret + +.globl __armv8_rng_probe + +__armv8_rng_probe: + AARCH64_VALID_CALL_TARGET + mrs x0, s3_3_c2_c4_0 // rndr + mrs x0, s3_3_c2_c4_1 // rndrrs + ret + +// Fill buffer with Randomly Generated Bytes +// inputs: char * in x0 - Pointer to buffer +// size_t in x1 - Number of bytes to write to buffer +// outputs: size_t in x0 - Number of bytes successfully written to buffer +.globl _OPENSSL_rndr_asm + +.align 4 +_OPENSSL_rndr_asm: + AARCH64_VALID_CALL_TARGET + mov x2,xzr + mov x3,xzr + +.align 4 +Loop_rndr: + cmp x1,#0 + b.eq .rndr_done + mov x3,xzr + mrs x3,s3_3_c2_c4_0 + b.eq .rndr_done + + cmp x1,#8 + b.lt Loop_single_byte_rndr + + str x3,[x0] + add x0,x0,#8 + add x2,x2,#8 + subs x1,x1,#8 + b.ge Loop_rndr + +.align 4 +Loop_single_byte_rndr: + strb w3,[x0] + lsr x3,x3,#8 + add x2,x2,#1 + add x0,x0,#1 + subs x1,x1,#1 + b.gt Loop_single_byte_rndr + +.align 4 +.rndr_done: + mov x0,x2 + ret + +// Fill buffer with Randomly Generated Bytes +// inputs: char * in x0 - Pointer to buffer +// size_t in x1 - Number of bytes to write to buffer +// outputs: size_t in x0 - Number of bytes successfully written to buffer +.globl _OPENSSL_rndrrs_asm + +.align 4 +_OPENSSL_rndrrs_asm: + AARCH64_VALID_CALL_TARGET + mov x2,xzr + mov x3,xzr + +.align 4 +Loop_rndrrs: + cmp x1,#0 + b.eq .rndrrs_done + mov x3,xzr + mrs x3,s3_3_c2_c4_1 + b.eq .rndrrs_done + + cmp x1,#8 + b.lt Loop_single_byte_rndrrs + + str x3,[x0] + add x0,x0,#8 + add x2,x2,#8 + subs x1,x1,#8 + b.ge Loop_rndrrs + +.align 4 +Loop_single_byte_rndrrs: + strb w3,[x0] + lsr x3,x3,#8 + add x2,x2,#1 + add x0,x0,#1 + subs x1,x1,#1 + b.gt Loop_single_byte_rndrrs + +.align 4 +.rndrrs_done: + mov x0,x2 + ret + diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/asm/crypto/bn/armv8-mont.S b/deps/openssl/config/archs/darwin64-arm64-cc/asm/crypto/bn/armv8-mont.S index adb12afdb1ae24..02f9957923c030 100644 --- a/deps/openssl/config/archs/darwin64-arm64-cc/asm/crypto/bn/armv8-mont.S +++ b/deps/openssl/config/archs/darwin64-arm64-cc/asm/crypto/bn/armv8-mont.S @@ -1,5 +1,5 @@ +#include "arm_arch.h" #ifndef __KERNEL__ -# include "arm_arch.h" .private_extern _OPENSSL_armv8_rsa_neonized #endif @@ -9,6 +9,7 @@ .align 5 _bn_mul_mont: + AARCH64_SIGN_LINK_REGISTER Lbn_mul_mont: tst x5,#3 b.ne Lmul_mont @@ -221,11 +222,14 @@ Lcond_copy: mov x0,#1 ldp x23,x24,[x29,#48] ldr x29,[sp],#64 + AARCH64_VALIDATE_LINK_REGISTER ret .align 5 bn_mul8x_mont_neon: + // Not adding AARCH64_SIGN_LINK_REGISTER here because bn_mul8x_mont_neon is jumped to + // only from bn_mul_mont which has already signed the return address. stp x29,x30,[sp,#-80]! mov x16,sp stp d8,d9,[sp,#16] @@ -918,6 +922,7 @@ LCopy_2: ldp d10,d11,[sp,#32] ldp d8,d9,[sp,#16] ldr x29,[sp],#80 + AARCH64_VALIDATE_LINK_REGISTER ret // bx lr @@ -927,7 +932,8 @@ __bn_sqr8x_mont: cmp x1,x2 b.ne __bn_mul4x_mont Lsqr8x_mont: -.long 0xd503233f // paciasp + // Not adding AARCH64_SIGN_LINK_REGISTER here because __bn_sqr8x_mont is jumped to + // only from bn_mul_mont which has already signed the return address. stp x29,x30,[sp,#-128]! add x29,sp,#0 stp x19,x20,[sp,#16] @@ -1678,13 +1684,15 @@ Lsqr8x_done: ldp x25,x26,[x29,#64] ldp x27,x28,[x29,#80] ldr x29,[sp],#128 -.long 0xd50323bf // autiasp + // x30 is loaded earlier + AARCH64_VALIDATE_LINK_REGISTER ret .align 5 __bn_mul4x_mont: -.long 0xd503233f // paciasp + // Not adding AARCH64_SIGN_LINK_REGISTER here because __bn_mul4x_mont is jumped to + // only from bn_mul_mont (or __bn_sqr8x_mont from bn_mul_mont) which has already signed the return address. stp x29,x30,[sp,#-128]! add x29,sp,#0 stp x19,x20,[sp,#16] @@ -2118,9 +2126,11 @@ Lmul4x_done: ldp x25,x26,[x29,#64] ldp x27,x28,[x29,#80] ldr x29,[sp],#128 -.long 0xd50323bf // autiasp + // x30 loaded earlier + AARCH64_VALIDATE_LINK_REGISTER ret +.section __TEXT,__const .byte 77,111,110,116,103,111,109,101,114,121,32,77,117,108,116,105,112,108,105,99,97,116,105,111,110,32,102,111,114,32,65,82,77,118,56,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 .align 2 .align 4 diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/asm/crypto/buildinf.h b/deps/openssl/config/archs/darwin64-arm64-cc/asm/crypto/buildinf.h index 26de87668b8f01..02289cf8c2318c 100644 --- a/deps/openssl/config/archs/darwin64-arm64-cc/asm/crypto/buildinf.h +++ b/deps/openssl/config/archs/darwin64-arm64-cc/asm/crypto/buildinf.h @@ -11,7 +11,7 @@ */ #define PLATFORM "platform: darwin64-arm64-cc" -#define DATE "built on: Sun Jul 20 00:48:18 2025 UTC" +#define DATE "built on: Sun Jul 27 00:49:19 2025 UTC" /* * Generate compiler_flags as an array of individual characters. This is a diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/asm/crypto/chacha/chacha-armv8-sve.S b/deps/openssl/config/archs/darwin64-arm64-cc/asm/crypto/chacha/chacha-armv8-sve.S new file mode 100644 index 00000000000000..12890fac3f4b58 --- /dev/null +++ b/deps/openssl/config/archs/darwin64-arm64-cc/asm/crypto/chacha/chacha-armv8-sve.S @@ -0,0 +1,3558 @@ +// Copyright 2022-2025 The OpenSSL Project Authors. All Rights Reserved. +// +// Licensed under the Apache License 2.0 (the "License"). You may not use +// this file except in compliance with the License. You can obtain a copy +// in the file LICENSE in the source distribution or at +// https://www.openssl.org/source/license.html +// +// +// ChaCha20 for ARMv8 via SVE +// +// $output is the last argument if it looks like a file (it has an extension) +// $flavour is the first argument if it doesn't look like a file +#include "arm_arch.h" + + + + +.private_extern _OPENSSL_armcap_P + +.text + +.section __TEXT,__const +.align 5 + +_chacha_sve_consts: +Lchacha20_consts: +.quad 0x3320646e61707865,0x6b20657479622d32 // endian-neutral +Lrot8: +.word 0x02010003,0x04040404,0x02010003,0x04040404 + + +.previous + +.globl _ChaCha20_ctr32_sve + +.align 5 +_ChaCha20_ctr32_sve: + AARCH64_VALID_CALL_TARGET +.long 0x04a0e3e5 //cntw x5, ALL, MUL #1 + cmp x2,x5,lsl #6 + b.lt Lreturn + mov x7,0 + adrp x6,_OPENSSL_armcap_P@PAGE + ldr w6,[x6,_OPENSSL_armcap_P@PAGEOFF] + tst w6,#ARMV8_SVE2 + b.eq 1f + mov x7,1 + b 2f +1: + cmp x5,4 + b.le Lreturn + adrp x6,Lrot8@PAGE + add x6,x6,Lrot8@PAGEOFF + ldp w9,w10,[x6] +.long 0x04aa4d3f //index z31.s,w9,w10 +2: + AARCH64_SIGN_LINK_REGISTER + stp d8,d9,[sp,-192]! + stp d10,d11,[sp,16] + stp d12,d13,[sp,32] + stp d14,d15,[sp,48] + stp x16,x17,[sp,64] + stp x18,x19,[sp,80] + stp x20,x21,[sp,96] + stp x22,x23,[sp,112] + stp x24,x25,[sp,128] + stp x26,x27,[sp,144] + stp x28,x29,[sp,160] + str x30,[sp,176] + + adrp x6,Lchacha20_consts@PAGE + add x6,x6,Lchacha20_consts@PAGEOFF + ldp x23,x24,[x6] + ldp x25,x26,[x3] + ldp x27,x28,[x3, 16] + ldp x29,x30,[x4] +.long 0x2599e3e0 //ptrues p0.s,ALL +#ifdef __AARCH64EB__ + ror x25,x25,#32 + ror x26,x26,#32 + ror x27,x27,#32 + ror x28,x28,#32 + ror x29,x29,#32 + ror x30,x30,#32 +#endif + cbz x7, 1f +.align 5 +100: + subs x7,x2,x5,lsl #6 + b.lt 110f + mov x2,x7 + b.eq 101f + cmp x2,64 + b.lt 101f + mixin=1 + lsr x8,x23,#32 +.long 0x05a03ae0 //dup z0.s,w23 +.long 0x05a03af9 //dup z25.s,w23 +.if mixin == 1 + mov w7,w23 +.endif +.long 0x05a03904 //dup z4.s,w8 +.long 0x05a0391a //dup z26.s,w8 + lsr x10,x24,#32 +.long 0x05a03b08 //dup z8.s,w24 +.long 0x05a03b1b //dup z27.s,w24 +.if mixin == 1 + mov w9,w24 +.endif +.long 0x05a0394c //dup z12.s,w10 +.long 0x05a0395c //dup z28.s,w10 + lsr x12,x25,#32 +.long 0x05a03b21 //dup z1.s,w25 +.long 0x05a03b3d //dup z29.s,w25 +.if mixin == 1 + mov w11,w25 +.endif +.long 0x05a03985 //dup z5.s,w12 +.long 0x05a0399e //dup z30.s,w12 + lsr x14,x26,#32 +.long 0x05a03b49 //dup z9.s,w26 +.long 0x05a03b55 //dup z21.s,w26 +.if mixin == 1 + mov w13,w26 +.endif +.long 0x05a039cd //dup z13.s,w14 +.long 0x05a039d6 //dup z22.s,w14 + lsr x16,x27,#32 +.long 0x05a03b62 //dup z2.s,w27 +.long 0x05a03b77 //dup z23.s,w27 +.if mixin == 1 + mov w15,w27 +.endif +.long 0x05a03a06 //dup z6.s,w16 +.long 0x05a03a18 //dup z24.s,w16 + lsr x18,x28,#32 +.long 0x05a03b8a //dup z10.s,w28 +.long 0x05a03b91 //dup z17.s,w28 +.if mixin == 1 + mov w17,w28 +.endif +.long 0x05a03a4e //dup z14.s,w18 +.long 0x05a03a52 //dup z18.s,w18 + lsr x22,x30,#32 +.long 0x05a03bcb //dup z11.s,w30 +.long 0x05a03bd4 //dup z20.s,w30 +.if mixin == 1 + mov w21,w30 +.endif +.long 0x05a03acf //dup z15.s,w22 +.long 0x05a03adf //dup z31.s,w22 +.if mixin == 1 + add w20,w29,#1 + mov w19,w29 +.long 0x04a14690 //index z16.s,w20,1 +.long 0x04a14683 //index z3.s,w20,1 +.else +.long 0x04a147b0 //index z16.s,w29,1 +.long 0x04a147a3 //index z3.s,w29,1 +.endif + lsr x20,x29,#32 +.long 0x05a03a87 //dup z7.s,w20 +.long 0x05a03a93 //dup z19.s,w20 + mov x6,#10 +10: +.align 5 +.long 0x04a10000 //add z0.s,z0.s,z1.s +.if mixin == 1 + add w7,w7,w11 +.endif +.long 0x04a50084 //add z4.s,z4.s,z5.s +.if mixin == 1 + add w8,w8,w12 +.endif +.long 0x04a90108 //add z8.s,z8.s,z9.s +.if mixin == 1 + add w9,w9,w13 +.endif +.long 0x04ad018c //add z12.s,z12.s,z13.s +.if mixin == 1 + add w10,w10,w14 +.endif +.if mixin == 1 + eor w19,w19,w7 +.endif +.long 0x04703403 //xar z3.s,z3.s,z0.s,16 +.if mixin == 1 + ror w19,w19,16 +.endif +.if mixin == 1 + eor w20,w20,w8 +.endif +.long 0x04703487 //xar z7.s,z7.s,z4.s,16 +.if mixin == 1 + ror w20,w20,16 +.endif +.if mixin == 1 + eor w21,w21,w9 +.endif +.long 0x0470350b //xar z11.s,z11.s,z8.s,16 +.if mixin == 1 + ror w21,w21,16 +.endif +.if mixin == 1 + eor w22,w22,w10 +.endif +.long 0x0470358f //xar z15.s,z15.s,z12.s,16 +.if mixin == 1 + ror w22,w22,16 +.endif +.long 0x04a30042 //add z2.s,z2.s,z3.s +.if mixin == 1 + add w15,w15,w19 +.endif +.long 0x04a700c6 //add z6.s,z6.s,z7.s +.if mixin == 1 + add w16,w16,w20 +.endif +.long 0x04ab014a //add z10.s,z10.s,z11.s +.if mixin == 1 + add w17,w17,w21 +.endif +.long 0x04af01ce //add z14.s,z14.s,z15.s +.if mixin == 1 + add w18,w18,w22 +.endif +.if mixin == 1 + eor w11,w11,w15 +.endif +.long 0x046c3441 //xar z1.s,z1.s,z2.s,20 +.if mixin == 1 + ror w11,w11,20 +.endif +.if mixin == 1 + eor w12,w12,w16 +.endif +.long 0x046c34c5 //xar z5.s,z5.s,z6.s,20 +.if mixin == 1 + ror w12,w12,20 +.endif +.if mixin == 1 + eor w13,w13,w17 +.endif +.long 0x046c3549 //xar z9.s,z9.s,z10.s,20 +.if mixin == 1 + ror w13,w13,20 +.endif +.if mixin == 1 + eor w14,w14,w18 +.endif +.long 0x046c35cd //xar z13.s,z13.s,z14.s,20 +.if mixin == 1 + ror w14,w14,20 +.endif +.long 0x04a10000 //add z0.s,z0.s,z1.s +.if mixin == 1 + add w7,w7,w11 +.endif +.long 0x04a50084 //add z4.s,z4.s,z5.s +.if mixin == 1 + add w8,w8,w12 +.endif +.long 0x04a90108 //add z8.s,z8.s,z9.s +.if mixin == 1 + add w9,w9,w13 +.endif +.long 0x04ad018c //add z12.s,z12.s,z13.s +.if mixin == 1 + add w10,w10,w14 +.endif +.if mixin == 1 + eor w19,w19,w7 +.endif +.long 0x04683403 //xar z3.s,z3.s,z0.s,24 +.if mixin == 1 + ror w19,w19,24 +.endif +.if mixin == 1 + eor w20,w20,w8 +.endif +.long 0x04683487 //xar z7.s,z7.s,z4.s,24 +.if mixin == 1 + ror w20,w20,24 +.endif +.if mixin == 1 + eor w21,w21,w9 +.endif +.long 0x0468350b //xar z11.s,z11.s,z8.s,24 +.if mixin == 1 + ror w21,w21,24 +.endif +.if mixin == 1 + eor w22,w22,w10 +.endif +.long 0x0468358f //xar z15.s,z15.s,z12.s,24 +.if mixin == 1 + ror w22,w22,24 +.endif +.long 0x04a30042 //add z2.s,z2.s,z3.s +.if mixin == 1 + add w15,w15,w19 +.endif +.long 0x04a700c6 //add z6.s,z6.s,z7.s +.if mixin == 1 + add w16,w16,w20 +.endif +.long 0x04ab014a //add z10.s,z10.s,z11.s +.if mixin == 1 + add w17,w17,w21 +.endif +.long 0x04af01ce //add z14.s,z14.s,z15.s +.if mixin == 1 + add w18,w18,w22 +.endif +.if mixin == 1 + eor w11,w11,w15 +.endif +.long 0x04673441 //xar z1.s,z1.s,z2.s,25 +.if mixin == 1 + ror w11,w11,25 +.endif +.if mixin == 1 + eor w12,w12,w16 +.endif +.long 0x046734c5 //xar z5.s,z5.s,z6.s,25 +.if mixin == 1 + ror w12,w12,25 +.endif +.if mixin == 1 + eor w13,w13,w17 +.endif +.long 0x04673549 //xar z9.s,z9.s,z10.s,25 +.if mixin == 1 + ror w13,w13,25 +.endif +.if mixin == 1 + eor w14,w14,w18 +.endif +.long 0x046735cd //xar z13.s,z13.s,z14.s,25 +.if mixin == 1 + ror w14,w14,25 +.endif +.long 0x04a50000 //add z0.s,z0.s,z5.s +.if mixin == 1 + add w7,w7,w12 +.endif +.long 0x04a90084 //add z4.s,z4.s,z9.s +.if mixin == 1 + add w8,w8,w13 +.endif +.long 0x04ad0108 //add z8.s,z8.s,z13.s +.if mixin == 1 + add w9,w9,w14 +.endif +.long 0x04a1018c //add z12.s,z12.s,z1.s +.if mixin == 1 + add w10,w10,w11 +.endif +.if mixin == 1 + eor w22,w22,w7 +.endif +.long 0x0470340f //xar z15.s,z15.s,z0.s,16 +.if mixin == 1 + ror w22,w22,16 +.endif +.if mixin == 1 + eor w19,w19,w8 +.endif +.long 0x04703483 //xar z3.s,z3.s,z4.s,16 +.if mixin == 1 + ror w19,w19,16 +.endif +.if mixin == 1 + eor w20,w20,w9 +.endif +.long 0x04703507 //xar z7.s,z7.s,z8.s,16 +.if mixin == 1 + ror w20,w20,16 +.endif +.if mixin == 1 + eor w21,w21,w10 +.endif +.long 0x0470358b //xar z11.s,z11.s,z12.s,16 +.if mixin == 1 + ror w21,w21,16 +.endif +.long 0x04af014a //add z10.s,z10.s,z15.s +.if mixin == 1 + add w17,w17,w22 +.endif +.long 0x04a301ce //add z14.s,z14.s,z3.s +.if mixin == 1 + add w18,w18,w19 +.endif +.long 0x04a70042 //add z2.s,z2.s,z7.s +.if mixin == 1 + add w15,w15,w20 +.endif +.long 0x04ab00c6 //add z6.s,z6.s,z11.s +.if mixin == 1 + add w16,w16,w21 +.endif +.if mixin == 1 + eor w12,w12,w17 +.endif +.long 0x046c3545 //xar z5.s,z5.s,z10.s,20 +.if mixin == 1 + ror w12,w12,20 +.endif +.if mixin == 1 + eor w13,w13,w18 +.endif +.long 0x046c35c9 //xar z9.s,z9.s,z14.s,20 +.if mixin == 1 + ror w13,w13,20 +.endif +.if mixin == 1 + eor w14,w14,w15 +.endif +.long 0x046c344d //xar z13.s,z13.s,z2.s,20 +.if mixin == 1 + ror w14,w14,20 +.endif +.if mixin == 1 + eor w11,w11,w16 +.endif +.long 0x046c34c1 //xar z1.s,z1.s,z6.s,20 +.if mixin == 1 + ror w11,w11,20 +.endif +.long 0x04a50000 //add z0.s,z0.s,z5.s +.if mixin == 1 + add w7,w7,w12 +.endif +.long 0x04a90084 //add z4.s,z4.s,z9.s +.if mixin == 1 + add w8,w8,w13 +.endif +.long 0x04ad0108 //add z8.s,z8.s,z13.s +.if mixin == 1 + add w9,w9,w14 +.endif +.long 0x04a1018c //add z12.s,z12.s,z1.s +.if mixin == 1 + add w10,w10,w11 +.endif +.if mixin == 1 + eor w22,w22,w7 +.endif +.long 0x0468340f //xar z15.s,z15.s,z0.s,24 +.if mixin == 1 + ror w22,w22,24 +.endif +.if mixin == 1 + eor w19,w19,w8 +.endif +.long 0x04683483 //xar z3.s,z3.s,z4.s,24 +.if mixin == 1 + ror w19,w19,24 +.endif +.if mixin == 1 + eor w20,w20,w9 +.endif +.long 0x04683507 //xar z7.s,z7.s,z8.s,24 +.if mixin == 1 + ror w20,w20,24 +.endif +.if mixin == 1 + eor w21,w21,w10 +.endif +.long 0x0468358b //xar z11.s,z11.s,z12.s,24 +.if mixin == 1 + ror w21,w21,24 +.endif +.long 0x04af014a //add z10.s,z10.s,z15.s +.if mixin == 1 + add w17,w17,w22 +.endif +.long 0x04a301ce //add z14.s,z14.s,z3.s +.if mixin == 1 + add w18,w18,w19 +.endif +.long 0x04a70042 //add z2.s,z2.s,z7.s +.if mixin == 1 + add w15,w15,w20 +.endif +.long 0x04ab00c6 //add z6.s,z6.s,z11.s +.if mixin == 1 + add w16,w16,w21 +.endif +.if mixin == 1 + eor w12,w12,w17 +.endif +.long 0x04673545 //xar z5.s,z5.s,z10.s,25 +.if mixin == 1 + ror w12,w12,25 +.endif +.if mixin == 1 + eor w13,w13,w18 +.endif +.long 0x046735c9 //xar z9.s,z9.s,z14.s,25 +.if mixin == 1 + ror w13,w13,25 +.endif +.if mixin == 1 + eor w14,w14,w15 +.endif +.long 0x0467344d //xar z13.s,z13.s,z2.s,25 +.if mixin == 1 + ror w14,w14,25 +.endif +.if mixin == 1 + eor w11,w11,w16 +.endif +.long 0x046734c1 //xar z1.s,z1.s,z6.s,25 +.if mixin == 1 + ror w11,w11,25 +.endif + sub x6,x6,1 + cbnz x6,10b +.if mixin == 1 + add w7,w7,w23 +.endif +.long 0x04b90000 //add z0.s,z0.s,z25.s +.if mixin == 1 + add x8,x8,x23,lsr #32 +.endif +.long 0x04ba0084 //add z4.s,z4.s,z26.s +.if mixin == 1 + add x7,x7,x8,lsl #32 // pack +.endif +.if mixin == 1 + add w9,w9,w24 +.endif +.long 0x04bb0108 //add z8.s,z8.s,z27.s +.if mixin == 1 + add x10,x10,x24,lsr #32 +.endif +.long 0x04bc018c //add z12.s,z12.s,z28.s +.if mixin == 1 + add x9,x9,x10,lsl #32 // pack +.endif +.if mixin == 1 + ldp x8,x10,[x1],#16 +.endif +.if mixin == 1 + add w11,w11,w25 +.endif +.long 0x04bd0021 //add z1.s,z1.s,z29.s +.if mixin == 1 + add x12,x12,x25,lsr #32 +.endif +.long 0x04be00a5 //add z5.s,z5.s,z30.s +.if mixin == 1 + add x11,x11,x12,lsl #32 // pack +.endif +.if mixin == 1 + add w13,w13,w26 +.endif +.long 0x04b50129 //add z9.s,z9.s,z21.s +.if mixin == 1 + add x14,x14,x26,lsr #32 +.endif +.long 0x04b601ad //add z13.s,z13.s,z22.s +.if mixin == 1 + add x13,x13,x14,lsl #32 // pack +.endif +.if mixin == 1 + ldp x12,x14,[x1],#16 +.endif +.if mixin == 1 + add w15,w15,w27 +.endif +.long 0x04b70042 //add z2.s,z2.s,z23.s +.if mixin == 1 + add x16,x16,x27,lsr #32 +.endif +.long 0x04b800c6 //add z6.s,z6.s,z24.s +.if mixin == 1 + add x15,x15,x16,lsl #32 // pack +.endif +.if mixin == 1 + add w17,w17,w28 +.endif +.long 0x04b1014a //add z10.s,z10.s,z17.s +.if mixin == 1 + add x18,x18,x28,lsr #32 +.endif +.long 0x04b201ce //add z14.s,z14.s,z18.s +.if mixin == 1 + add x17,x17,x18,lsl #32 // pack +.endif +.if mixin == 1 + ldp x16,x18,[x1],#16 +.endif +.if mixin == 1 + add w19,w19,w29 +.endif +.long 0x04b00063 //add z3.s,z3.s,z16.s +.if mixin == 1 + add x20,x20,x29,lsr #32 +.endif +.long 0x04b300e7 //add z7.s,z7.s,z19.s +.if mixin == 1 + add x19,x19,x20,lsl #32 // pack +.endif +.if mixin == 1 + add w21,w21,w30 +.endif +.long 0x04b4016b //add z11.s,z11.s,z20.s +.if mixin == 1 + add x22,x22,x30,lsr #32 +.endif +.long 0x04bf01ef //add z15.s,z15.s,z31.s +.if mixin == 1 + add x21,x21,x22,lsl #32 // pack +.endif +.if mixin == 1 + ldp x20,x22,[x1],#16 +.endif +#ifdef __AARCH64EB__ + rev x7,x7 +.long 0x05a48000 //revb z0.s,p0/m,z0.s +.long 0x05a48084 //revb z4.s,p0/m,z4.s + rev x9,x9 +.long 0x05a48108 //revb z8.s,p0/m,z8.s +.long 0x05a4818c //revb z12.s,p0/m,z12.s + rev x11,x11 +.long 0x05a48021 //revb z1.s,p0/m,z1.s +.long 0x05a480a5 //revb z5.s,p0/m,z5.s + rev x13,x13 +.long 0x05a48129 //revb z9.s,p0/m,z9.s +.long 0x05a481ad //revb z13.s,p0/m,z13.s + rev x15,x15 +.long 0x05a48042 //revb z2.s,p0/m,z2.s +.long 0x05a480c6 //revb z6.s,p0/m,z6.s + rev x17,x17 +.long 0x05a4814a //revb z10.s,p0/m,z10.s +.long 0x05a481ce //revb z14.s,p0/m,z14.s + rev x19,x19 +.long 0x05a48063 //revb z3.s,p0/m,z3.s +.long 0x05a480e7 //revb z7.s,p0/m,z7.s + rev x21,x21 +.long 0x05a4816b //revb z11.s,p0/m,z11.s +.long 0x05a481ef //revb z15.s,p0/m,z15.s +#endif +.if mixin == 1 + add x29,x29,#1 +.endif + cmp x5,4 + b.ne 200f +.if mixin == 1 + eor x7,x7,x8 +.endif +.if mixin == 1 + eor x9,x9,x10 +.endif +.if mixin == 1 + eor x11,x11,x12 +.endif +.long 0x05a46011 //zip1 z17.s,z0.s,z4.s +.long 0x05a46412 //zip2 z18.s,z0.s,z4.s +.long 0x05ac6113 //zip1 z19.s,z8.s,z12.s +.long 0x05ac6514 //zip2 z20.s,z8.s,z12.s + +.long 0x05a56035 //zip1 z21.s,z1.s,z5.s +.long 0x05a56436 //zip2 z22.s,z1.s,z5.s +.long 0x05ad6137 //zip1 z23.s,z9.s,z13.s +.long 0x05ad6538 //zip2 z24.s,z9.s,z13.s + +.long 0x05f36220 //zip1 z0.d,z17.d,z19.d +.long 0x05f36624 //zip2 z4.d,z17.d,z19.d +.long 0x05f46248 //zip1 z8.d,z18.d,z20.d +.long 0x05f4664c //zip2 z12.d,z18.d,z20.d + +.long 0x05f762a1 //zip1 z1.d,z21.d,z23.d +.long 0x05f766a5 //zip2 z5.d,z21.d,z23.d +.long 0x05f862c9 //zip1 z9.d,z22.d,z24.d +.long 0x05f866cd //zip2 z13.d,z22.d,z24.d +.if mixin == 1 + eor x13,x13,x14 +.endif +.if mixin == 1 + eor x15,x15,x16 +.endif +.if mixin == 1 + eor x17,x17,x18 +.endif +.long 0x05a66051 //zip1 z17.s,z2.s,z6.s +.long 0x05a66452 //zip2 z18.s,z2.s,z6.s +.long 0x05ae6153 //zip1 z19.s,z10.s,z14.s +.long 0x05ae6554 //zip2 z20.s,z10.s,z14.s + +.long 0x05a76075 //zip1 z21.s,z3.s,z7.s +.long 0x05a76476 //zip2 z22.s,z3.s,z7.s +.long 0x05af6177 //zip1 z23.s,z11.s,z15.s +.long 0x05af6578 //zip2 z24.s,z11.s,z15.s + +.long 0x05f36222 //zip1 z2.d,z17.d,z19.d +.long 0x05f36626 //zip2 z6.d,z17.d,z19.d +.long 0x05f4624a //zip1 z10.d,z18.d,z20.d +.long 0x05f4664e //zip2 z14.d,z18.d,z20.d + +.long 0x05f762a3 //zip1 z3.d,z21.d,z23.d +.long 0x05f766a7 //zip2 z7.d,z21.d,z23.d +.long 0x05f862cb //zip1 z11.d,z22.d,z24.d +.long 0x05f866cf //zip2 z15.d,z22.d,z24.d +.if mixin == 1 + eor x19,x19,x20 +.endif +.if mixin == 1 + eor x21,x21,x22 +.endif + ld1 {v17.4s,v18.4s,v19.4s,v20.4s},[x1],#64 + ld1 {v21.4s,v22.4s,v23.4s,v24.4s},[x1],#64 +.long 0x04b13000 //eor z0.d,z0.d,z17.d +.long 0x04b23021 //eor z1.d,z1.d,z18.d +.long 0x04b33042 //eor z2.d,z2.d,z19.d +.long 0x04b43063 //eor z3.d,z3.d,z20.d +.long 0x04b53084 //eor z4.d,z4.d,z21.d +.long 0x04b630a5 //eor z5.d,z5.d,z22.d +.long 0x04b730c6 //eor z6.d,z6.d,z23.d +.long 0x04b830e7 //eor z7.d,z7.d,z24.d + ld1 {v17.4s,v18.4s,v19.4s,v20.4s},[x1],#64 + ld1 {v21.4s,v22.4s,v23.4s,v24.4s},[x1],#64 +.if mixin == 1 + stp x7,x9,[x0],#16 +.endif +.long 0x04b13108 //eor z8.d,z8.d,z17.d +.long 0x04b23129 //eor z9.d,z9.d,z18.d +.if mixin == 1 + stp x11,x13,[x0],#16 +.endif +.long 0x04b3314a //eor z10.d,z10.d,z19.d +.long 0x04b4316b //eor z11.d,z11.d,z20.d +.if mixin == 1 + stp x15,x17,[x0],#16 +.endif +.long 0x04b5318c //eor z12.d,z12.d,z21.d +.long 0x04b631ad //eor z13.d,z13.d,z22.d +.if mixin == 1 + stp x19,x21,[x0],#16 +.endif +.long 0x04b731ce //eor z14.d,z14.d,z23.d +.long 0x04b831ef //eor z15.d,z15.d,z24.d + st1 {v0.4s,v1.4s,v2.4s,v3.4s},[x0],#64 + st1 {v4.4s,v5.4s,v6.4s,v7.4s},[x0],#64 + st1 {v8.4s,v9.4s,v10.4s,v11.4s},[x0],#64 + st1 {v12.4s,v13.4s,v14.4s,v15.4s},[x0],#64 + b 210f +200: +.long 0x05a16011 //zip1 z17.s,z0.s,z1.s +.long 0x05a16412 //zip2 z18.s,z0.s,z1.s +.long 0x05a36053 //zip1 z19.s,z2.s,z3.s +.long 0x05a36454 //zip2 z20.s,z2.s,z3.s + +.long 0x05a56095 //zip1 z21.s,z4.s,z5.s +.long 0x05a56496 //zip2 z22.s,z4.s,z5.s +.long 0x05a760d7 //zip1 z23.s,z6.s,z7.s +.long 0x05a764d8 //zip2 z24.s,z6.s,z7.s + +.long 0x05f36220 //zip1 z0.d,z17.d,z19.d +.long 0x05f36621 //zip2 z1.d,z17.d,z19.d +.long 0x05f46242 //zip1 z2.d,z18.d,z20.d +.long 0x05f46643 //zip2 z3.d,z18.d,z20.d + +.long 0x05f762a4 //zip1 z4.d,z21.d,z23.d +.long 0x05f766a5 //zip2 z5.d,z21.d,z23.d +.long 0x05f862c6 //zip1 z6.d,z22.d,z24.d +.long 0x05f866c7 //zip2 z7.d,z22.d,z24.d +.if mixin == 1 + eor x7,x7,x8 +.endif +.if mixin == 1 + eor x9,x9,x10 +.endif +.long 0x05a96111 //zip1 z17.s,z8.s,z9.s +.long 0x05a96512 //zip2 z18.s,z8.s,z9.s +.long 0x05ab6153 //zip1 z19.s,z10.s,z11.s +.long 0x05ab6554 //zip2 z20.s,z10.s,z11.s + +.long 0x05ad6195 //zip1 z21.s,z12.s,z13.s +.long 0x05ad6596 //zip2 z22.s,z12.s,z13.s +.long 0x05af61d7 //zip1 z23.s,z14.s,z15.s +.long 0x05af65d8 //zip2 z24.s,z14.s,z15.s + +.long 0x05f36228 //zip1 z8.d,z17.d,z19.d +.long 0x05f36629 //zip2 z9.d,z17.d,z19.d +.long 0x05f4624a //zip1 z10.d,z18.d,z20.d +.long 0x05f4664b //zip2 z11.d,z18.d,z20.d + +.long 0x05f762ac //zip1 z12.d,z21.d,z23.d +.long 0x05f766ad //zip2 z13.d,z21.d,z23.d +.long 0x05f862ce //zip1 z14.d,z22.d,z24.d +.long 0x05f866cf //zip2 z15.d,z22.d,z24.d +.if mixin == 1 + eor x11,x11,x12 +.endif +.if mixin == 1 + eor x13,x13,x14 +.endif +.long 0x05a46011 //zip1 z17.s,z0.s,z4.s +.long 0x05a46412 //zip2 z18.s,z0.s,z4.s +.long 0x05ac6113 //zip1 z19.s,z8.s,z12.s +.long 0x05ac6514 //zip2 z20.s,z8.s,z12.s + +.long 0x05a56035 //zip1 z21.s,z1.s,z5.s +.long 0x05a56436 //zip2 z22.s,z1.s,z5.s +.long 0x05ad6137 //zip1 z23.s,z9.s,z13.s +.long 0x05ad6538 //zip2 z24.s,z9.s,z13.s + +.long 0x05f36220 //zip1 z0.d,z17.d,z19.d +.long 0x05f36624 //zip2 z4.d,z17.d,z19.d +.long 0x05f46248 //zip1 z8.d,z18.d,z20.d +.long 0x05f4664c //zip2 z12.d,z18.d,z20.d + +.long 0x05f762a1 //zip1 z1.d,z21.d,z23.d +.long 0x05f766a5 //zip2 z5.d,z21.d,z23.d +.long 0x05f862c9 //zip1 z9.d,z22.d,z24.d +.long 0x05f866cd //zip2 z13.d,z22.d,z24.d +.if mixin == 1 + eor x15,x15,x16 +.endif +.if mixin == 1 + eor x17,x17,x18 +.endif +.long 0x05a66051 //zip1 z17.s,z2.s,z6.s +.long 0x05a66452 //zip2 z18.s,z2.s,z6.s +.long 0x05ae6153 //zip1 z19.s,z10.s,z14.s +.long 0x05ae6554 //zip2 z20.s,z10.s,z14.s + +.long 0x05a76075 //zip1 z21.s,z3.s,z7.s +.long 0x05a76476 //zip2 z22.s,z3.s,z7.s +.long 0x05af6177 //zip1 z23.s,z11.s,z15.s +.long 0x05af6578 //zip2 z24.s,z11.s,z15.s + +.long 0x05f36222 //zip1 z2.d,z17.d,z19.d +.long 0x05f36626 //zip2 z6.d,z17.d,z19.d +.long 0x05f4624a //zip1 z10.d,z18.d,z20.d +.long 0x05f4664e //zip2 z14.d,z18.d,z20.d + +.long 0x05f762a3 //zip1 z3.d,z21.d,z23.d +.long 0x05f766a7 //zip2 z7.d,z21.d,z23.d +.long 0x05f862cb //zip1 z11.d,z22.d,z24.d +.long 0x05f866cf //zip2 z15.d,z22.d,z24.d +.if mixin == 1 + eor x19,x19,x20 +.endif +.if mixin == 1 + eor x21,x21,x22 +.endif +.long 0xa540a031 //ld1w {z17.s},p0/z,[x1,#0,MUL VL] +.long 0xa541a032 //ld1w {z18.s},p0/z,[x1,#1,MUL VL] +.long 0xa542a033 //ld1w {z19.s},p0/z,[x1,#2,MUL VL] +.long 0xa543a034 //ld1w {z20.s},p0/z,[x1,#3,MUL VL] +.long 0xa544a035 //ld1w {z21.s},p0/z,[x1,#4,MUL VL] +.long 0xa545a036 //ld1w {z22.s},p0/z,[x1,#5,MUL VL] +.long 0xa546a037 //ld1w {z23.s},p0/z,[x1,#6,MUL VL] +.long 0xa547a038 //ld1w {z24.s},p0/z,[x1,#7,MUL VL] +.long 0x04215101 //addvl x1,x1,8 +.long 0x04b13000 //eor z0.d,z0.d,z17.d +.long 0x04b23084 //eor z4.d,z4.d,z18.d +.long 0x04b33108 //eor z8.d,z8.d,z19.d +.long 0x04b4318c //eor z12.d,z12.d,z20.d +.long 0x04b53021 //eor z1.d,z1.d,z21.d +.long 0x04b630a5 //eor z5.d,z5.d,z22.d +.long 0x04b73129 //eor z9.d,z9.d,z23.d +.long 0x04b831ad //eor z13.d,z13.d,z24.d +.long 0xa540a031 //ld1w {z17.s},p0/z,[x1,#0,MUL VL] +.long 0xa541a032 //ld1w {z18.s},p0/z,[x1,#1,MUL VL] +.long 0xa542a033 //ld1w {z19.s},p0/z,[x1,#2,MUL VL] +.long 0xa543a034 //ld1w {z20.s},p0/z,[x1,#3,MUL VL] +.long 0xa544a035 //ld1w {z21.s},p0/z,[x1,#4,MUL VL] +.long 0xa545a036 //ld1w {z22.s},p0/z,[x1,#5,MUL VL] +.long 0xa546a037 //ld1w {z23.s},p0/z,[x1,#6,MUL VL] +.long 0xa547a038 //ld1w {z24.s},p0/z,[x1,#7,MUL VL] +.long 0x04215101 //addvl x1,x1,8 +.if mixin == 1 + stp x7,x9,[x0],#16 +.endif +.long 0x04b13042 //eor z2.d,z2.d,z17.d +.long 0x04b230c6 //eor z6.d,z6.d,z18.d +.if mixin == 1 + stp x11,x13,[x0],#16 +.endif +.long 0x04b3314a //eor z10.d,z10.d,z19.d +.long 0x04b431ce //eor z14.d,z14.d,z20.d +.if mixin == 1 + stp x15,x17,[x0],#16 +.endif +.long 0x04b53063 //eor z3.d,z3.d,z21.d +.long 0x04b630e7 //eor z7.d,z7.d,z22.d +.if mixin == 1 + stp x19,x21,[x0],#16 +.endif +.long 0x04b7316b //eor z11.d,z11.d,z23.d +.long 0x04b831ef //eor z15.d,z15.d,z24.d +.long 0xe540e000 //st1w {z0.s},p0,[x0,#0,MUL VL] +.long 0xe541e004 //st1w {z4.s},p0,[x0,#1,MUL VL] +.long 0xe542e008 //st1w {z8.s},p0,[x0,#2,MUL VL] +.long 0xe543e00c //st1w {z12.s},p0,[x0,#3,MUL VL] +.long 0xe544e001 //st1w {z1.s},p0,[x0,#4,MUL VL] +.long 0xe545e005 //st1w {z5.s},p0,[x0,#5,MUL VL] +.long 0xe546e009 //st1w {z9.s},p0,[x0,#6,MUL VL] +.long 0xe547e00d //st1w {z13.s},p0,[x0,#7,MUL VL] +.long 0x04205100 //addvl x0,x0,8 +.long 0xe540e002 //st1w {z2.s},p0,[x0,#0,MUL VL] +.long 0xe541e006 //st1w {z6.s},p0,[x0,#1,MUL VL] +.long 0xe542e00a //st1w {z10.s},p0,[x0,#2,MUL VL] +.long 0xe543e00e //st1w {z14.s},p0,[x0,#3,MUL VL] +.long 0xe544e003 //st1w {z3.s},p0,[x0,#4,MUL VL] +.long 0xe545e007 //st1w {z7.s},p0,[x0,#5,MUL VL] +.long 0xe546e00b //st1w {z11.s},p0,[x0,#6,MUL VL] +.long 0xe547e00f //st1w {z15.s},p0,[x0,#7,MUL VL] +.long 0x04205100 //addvl x0,x0,8 +210: +.long 0x04b0e3fd //incw x29, ALL, MUL #1 + subs x2,x2,64 + b.gt 100b + b 110f +101: + mixin=0 + lsr x8,x23,#32 +.long 0x05a03ae0 //dup z0.s,w23 +.long 0x05a03af9 //dup z25.s,w23 +.if mixin == 1 + mov w7,w23 +.endif +.long 0x05a03904 //dup z4.s,w8 +.long 0x05a0391a //dup z26.s,w8 + lsr x10,x24,#32 +.long 0x05a03b08 //dup z8.s,w24 +.long 0x05a03b1b //dup z27.s,w24 +.if mixin == 1 + mov w9,w24 +.endif +.long 0x05a0394c //dup z12.s,w10 +.long 0x05a0395c //dup z28.s,w10 + lsr x12,x25,#32 +.long 0x05a03b21 //dup z1.s,w25 +.long 0x05a03b3d //dup z29.s,w25 +.if mixin == 1 + mov w11,w25 +.endif +.long 0x05a03985 //dup z5.s,w12 +.long 0x05a0399e //dup z30.s,w12 + lsr x14,x26,#32 +.long 0x05a03b49 //dup z9.s,w26 +.long 0x05a03b55 //dup z21.s,w26 +.if mixin == 1 + mov w13,w26 +.endif +.long 0x05a039cd //dup z13.s,w14 +.long 0x05a039d6 //dup z22.s,w14 + lsr x16,x27,#32 +.long 0x05a03b62 //dup z2.s,w27 +.long 0x05a03b77 //dup z23.s,w27 +.if mixin == 1 + mov w15,w27 +.endif +.long 0x05a03a06 //dup z6.s,w16 +.long 0x05a03a18 //dup z24.s,w16 + lsr x18,x28,#32 +.long 0x05a03b8a //dup z10.s,w28 +.long 0x05a03b91 //dup z17.s,w28 +.if mixin == 1 + mov w17,w28 +.endif +.long 0x05a03a4e //dup z14.s,w18 +.long 0x05a03a52 //dup z18.s,w18 + lsr x22,x30,#32 +.long 0x05a03bcb //dup z11.s,w30 +.long 0x05a03bd4 //dup z20.s,w30 +.if mixin == 1 + mov w21,w30 +.endif +.long 0x05a03acf //dup z15.s,w22 +.long 0x05a03adf //dup z31.s,w22 +.if mixin == 1 + add w20,w29,#1 + mov w19,w29 +.long 0x04a14690 //index z16.s,w20,1 +.long 0x04a14683 //index z3.s,w20,1 +.else +.long 0x04a147b0 //index z16.s,w29,1 +.long 0x04a147a3 //index z3.s,w29,1 +.endif + lsr x20,x29,#32 +.long 0x05a03a87 //dup z7.s,w20 +.long 0x05a03a93 //dup z19.s,w20 + mov x6,#10 +10: +.align 5 +.long 0x04a10000 //add z0.s,z0.s,z1.s +.if mixin == 1 + add w7,w7,w11 +.endif +.long 0x04a50084 //add z4.s,z4.s,z5.s +.if mixin == 1 + add w8,w8,w12 +.endif +.long 0x04a90108 //add z8.s,z8.s,z9.s +.if mixin == 1 + add w9,w9,w13 +.endif +.long 0x04ad018c //add z12.s,z12.s,z13.s +.if mixin == 1 + add w10,w10,w14 +.endif +.if mixin == 1 + eor w19,w19,w7 +.endif +.long 0x04703403 //xar z3.s,z3.s,z0.s,16 +.if mixin == 1 + ror w19,w19,16 +.endif +.if mixin == 1 + eor w20,w20,w8 +.endif +.long 0x04703487 //xar z7.s,z7.s,z4.s,16 +.if mixin == 1 + ror w20,w20,16 +.endif +.if mixin == 1 + eor w21,w21,w9 +.endif +.long 0x0470350b //xar z11.s,z11.s,z8.s,16 +.if mixin == 1 + ror w21,w21,16 +.endif +.if mixin == 1 + eor w22,w22,w10 +.endif +.long 0x0470358f //xar z15.s,z15.s,z12.s,16 +.if mixin == 1 + ror w22,w22,16 +.endif +.long 0x04a30042 //add z2.s,z2.s,z3.s +.if mixin == 1 + add w15,w15,w19 +.endif +.long 0x04a700c6 //add z6.s,z6.s,z7.s +.if mixin == 1 + add w16,w16,w20 +.endif +.long 0x04ab014a //add z10.s,z10.s,z11.s +.if mixin == 1 + add w17,w17,w21 +.endif +.long 0x04af01ce //add z14.s,z14.s,z15.s +.if mixin == 1 + add w18,w18,w22 +.endif +.if mixin == 1 + eor w11,w11,w15 +.endif +.long 0x046c3441 //xar z1.s,z1.s,z2.s,20 +.if mixin == 1 + ror w11,w11,20 +.endif +.if mixin == 1 + eor w12,w12,w16 +.endif +.long 0x046c34c5 //xar z5.s,z5.s,z6.s,20 +.if mixin == 1 + ror w12,w12,20 +.endif +.if mixin == 1 + eor w13,w13,w17 +.endif +.long 0x046c3549 //xar z9.s,z9.s,z10.s,20 +.if mixin == 1 + ror w13,w13,20 +.endif +.if mixin == 1 + eor w14,w14,w18 +.endif +.long 0x046c35cd //xar z13.s,z13.s,z14.s,20 +.if mixin == 1 + ror w14,w14,20 +.endif +.long 0x04a10000 //add z0.s,z0.s,z1.s +.if mixin == 1 + add w7,w7,w11 +.endif +.long 0x04a50084 //add z4.s,z4.s,z5.s +.if mixin == 1 + add w8,w8,w12 +.endif +.long 0x04a90108 //add z8.s,z8.s,z9.s +.if mixin == 1 + add w9,w9,w13 +.endif +.long 0x04ad018c //add z12.s,z12.s,z13.s +.if mixin == 1 + add w10,w10,w14 +.endif +.if mixin == 1 + eor w19,w19,w7 +.endif +.long 0x04683403 //xar z3.s,z3.s,z0.s,24 +.if mixin == 1 + ror w19,w19,24 +.endif +.if mixin == 1 + eor w20,w20,w8 +.endif +.long 0x04683487 //xar z7.s,z7.s,z4.s,24 +.if mixin == 1 + ror w20,w20,24 +.endif +.if mixin == 1 + eor w21,w21,w9 +.endif +.long 0x0468350b //xar z11.s,z11.s,z8.s,24 +.if mixin == 1 + ror w21,w21,24 +.endif +.if mixin == 1 + eor w22,w22,w10 +.endif +.long 0x0468358f //xar z15.s,z15.s,z12.s,24 +.if mixin == 1 + ror w22,w22,24 +.endif +.long 0x04a30042 //add z2.s,z2.s,z3.s +.if mixin == 1 + add w15,w15,w19 +.endif +.long 0x04a700c6 //add z6.s,z6.s,z7.s +.if mixin == 1 + add w16,w16,w20 +.endif +.long 0x04ab014a //add z10.s,z10.s,z11.s +.if mixin == 1 + add w17,w17,w21 +.endif +.long 0x04af01ce //add z14.s,z14.s,z15.s +.if mixin == 1 + add w18,w18,w22 +.endif +.if mixin == 1 + eor w11,w11,w15 +.endif +.long 0x04673441 //xar z1.s,z1.s,z2.s,25 +.if mixin == 1 + ror w11,w11,25 +.endif +.if mixin == 1 + eor w12,w12,w16 +.endif +.long 0x046734c5 //xar z5.s,z5.s,z6.s,25 +.if mixin == 1 + ror w12,w12,25 +.endif +.if mixin == 1 + eor w13,w13,w17 +.endif +.long 0x04673549 //xar z9.s,z9.s,z10.s,25 +.if mixin == 1 + ror w13,w13,25 +.endif +.if mixin == 1 + eor w14,w14,w18 +.endif +.long 0x046735cd //xar z13.s,z13.s,z14.s,25 +.if mixin == 1 + ror w14,w14,25 +.endif +.long 0x04a50000 //add z0.s,z0.s,z5.s +.if mixin == 1 + add w7,w7,w12 +.endif +.long 0x04a90084 //add z4.s,z4.s,z9.s +.if mixin == 1 + add w8,w8,w13 +.endif +.long 0x04ad0108 //add z8.s,z8.s,z13.s +.if mixin == 1 + add w9,w9,w14 +.endif +.long 0x04a1018c //add z12.s,z12.s,z1.s +.if mixin == 1 + add w10,w10,w11 +.endif +.if mixin == 1 + eor w22,w22,w7 +.endif +.long 0x0470340f //xar z15.s,z15.s,z0.s,16 +.if mixin == 1 + ror w22,w22,16 +.endif +.if mixin == 1 + eor w19,w19,w8 +.endif +.long 0x04703483 //xar z3.s,z3.s,z4.s,16 +.if mixin == 1 + ror w19,w19,16 +.endif +.if mixin == 1 + eor w20,w20,w9 +.endif +.long 0x04703507 //xar z7.s,z7.s,z8.s,16 +.if mixin == 1 + ror w20,w20,16 +.endif +.if mixin == 1 + eor w21,w21,w10 +.endif +.long 0x0470358b //xar z11.s,z11.s,z12.s,16 +.if mixin == 1 + ror w21,w21,16 +.endif +.long 0x04af014a //add z10.s,z10.s,z15.s +.if mixin == 1 + add w17,w17,w22 +.endif +.long 0x04a301ce //add z14.s,z14.s,z3.s +.if mixin == 1 + add w18,w18,w19 +.endif +.long 0x04a70042 //add z2.s,z2.s,z7.s +.if mixin == 1 + add w15,w15,w20 +.endif +.long 0x04ab00c6 //add z6.s,z6.s,z11.s +.if mixin == 1 + add w16,w16,w21 +.endif +.if mixin == 1 + eor w12,w12,w17 +.endif +.long 0x046c3545 //xar z5.s,z5.s,z10.s,20 +.if mixin == 1 + ror w12,w12,20 +.endif +.if mixin == 1 + eor w13,w13,w18 +.endif +.long 0x046c35c9 //xar z9.s,z9.s,z14.s,20 +.if mixin == 1 + ror w13,w13,20 +.endif +.if mixin == 1 + eor w14,w14,w15 +.endif +.long 0x046c344d //xar z13.s,z13.s,z2.s,20 +.if mixin == 1 + ror w14,w14,20 +.endif +.if mixin == 1 + eor w11,w11,w16 +.endif +.long 0x046c34c1 //xar z1.s,z1.s,z6.s,20 +.if mixin == 1 + ror w11,w11,20 +.endif +.long 0x04a50000 //add z0.s,z0.s,z5.s +.if mixin == 1 + add w7,w7,w12 +.endif +.long 0x04a90084 //add z4.s,z4.s,z9.s +.if mixin == 1 + add w8,w8,w13 +.endif +.long 0x04ad0108 //add z8.s,z8.s,z13.s +.if mixin == 1 + add w9,w9,w14 +.endif +.long 0x04a1018c //add z12.s,z12.s,z1.s +.if mixin == 1 + add w10,w10,w11 +.endif +.if mixin == 1 + eor w22,w22,w7 +.endif +.long 0x0468340f //xar z15.s,z15.s,z0.s,24 +.if mixin == 1 + ror w22,w22,24 +.endif +.if mixin == 1 + eor w19,w19,w8 +.endif +.long 0x04683483 //xar z3.s,z3.s,z4.s,24 +.if mixin == 1 + ror w19,w19,24 +.endif +.if mixin == 1 + eor w20,w20,w9 +.endif +.long 0x04683507 //xar z7.s,z7.s,z8.s,24 +.if mixin == 1 + ror w20,w20,24 +.endif +.if mixin == 1 + eor w21,w21,w10 +.endif +.long 0x0468358b //xar z11.s,z11.s,z12.s,24 +.if mixin == 1 + ror w21,w21,24 +.endif +.long 0x04af014a //add z10.s,z10.s,z15.s +.if mixin == 1 + add w17,w17,w22 +.endif +.long 0x04a301ce //add z14.s,z14.s,z3.s +.if mixin == 1 + add w18,w18,w19 +.endif +.long 0x04a70042 //add z2.s,z2.s,z7.s +.if mixin == 1 + add w15,w15,w20 +.endif +.long 0x04ab00c6 //add z6.s,z6.s,z11.s +.if mixin == 1 + add w16,w16,w21 +.endif +.if mixin == 1 + eor w12,w12,w17 +.endif +.long 0x04673545 //xar z5.s,z5.s,z10.s,25 +.if mixin == 1 + ror w12,w12,25 +.endif +.if mixin == 1 + eor w13,w13,w18 +.endif +.long 0x046735c9 //xar z9.s,z9.s,z14.s,25 +.if mixin == 1 + ror w13,w13,25 +.endif +.if mixin == 1 + eor w14,w14,w15 +.endif +.long 0x0467344d //xar z13.s,z13.s,z2.s,25 +.if mixin == 1 + ror w14,w14,25 +.endif +.if mixin == 1 + eor w11,w11,w16 +.endif +.long 0x046734c1 //xar z1.s,z1.s,z6.s,25 +.if mixin == 1 + ror w11,w11,25 +.endif + sub x6,x6,1 + cbnz x6,10b +.if mixin == 1 + add w7,w7,w23 +.endif +.long 0x04b90000 //add z0.s,z0.s,z25.s +.if mixin == 1 + add x8,x8,x23,lsr #32 +.endif +.long 0x04ba0084 //add z4.s,z4.s,z26.s +.if mixin == 1 + add x7,x7,x8,lsl #32 // pack +.endif +.if mixin == 1 + add w9,w9,w24 +.endif +.long 0x04bb0108 //add z8.s,z8.s,z27.s +.if mixin == 1 + add x10,x10,x24,lsr #32 +.endif +.long 0x04bc018c //add z12.s,z12.s,z28.s +.if mixin == 1 + add x9,x9,x10,lsl #32 // pack +.endif +.if mixin == 1 + ldp x8,x10,[x1],#16 +.endif +.if mixin == 1 + add w11,w11,w25 +.endif +.long 0x04bd0021 //add z1.s,z1.s,z29.s +.if mixin == 1 + add x12,x12,x25,lsr #32 +.endif +.long 0x04be00a5 //add z5.s,z5.s,z30.s +.if mixin == 1 + add x11,x11,x12,lsl #32 // pack +.endif +.if mixin == 1 + add w13,w13,w26 +.endif +.long 0x04b50129 //add z9.s,z9.s,z21.s +.if mixin == 1 + add x14,x14,x26,lsr #32 +.endif +.long 0x04b601ad //add z13.s,z13.s,z22.s +.if mixin == 1 + add x13,x13,x14,lsl #32 // pack +.endif +.if mixin == 1 + ldp x12,x14,[x1],#16 +.endif +.if mixin == 1 + add w15,w15,w27 +.endif +.long 0x04b70042 //add z2.s,z2.s,z23.s +.if mixin == 1 + add x16,x16,x27,lsr #32 +.endif +.long 0x04b800c6 //add z6.s,z6.s,z24.s +.if mixin == 1 + add x15,x15,x16,lsl #32 // pack +.endif +.if mixin == 1 + add w17,w17,w28 +.endif +.long 0x04b1014a //add z10.s,z10.s,z17.s +.if mixin == 1 + add x18,x18,x28,lsr #32 +.endif +.long 0x04b201ce //add z14.s,z14.s,z18.s +.if mixin == 1 + add x17,x17,x18,lsl #32 // pack +.endif +.if mixin == 1 + ldp x16,x18,[x1],#16 +.endif +.if mixin == 1 + add w19,w19,w29 +.endif +.long 0x04b00063 //add z3.s,z3.s,z16.s +.if mixin == 1 + add x20,x20,x29,lsr #32 +.endif +.long 0x04b300e7 //add z7.s,z7.s,z19.s +.if mixin == 1 + add x19,x19,x20,lsl #32 // pack +.endif +.if mixin == 1 + add w21,w21,w30 +.endif +.long 0x04b4016b //add z11.s,z11.s,z20.s +.if mixin == 1 + add x22,x22,x30,lsr #32 +.endif +.long 0x04bf01ef //add z15.s,z15.s,z31.s +.if mixin == 1 + add x21,x21,x22,lsl #32 // pack +.endif +.if mixin == 1 + ldp x20,x22,[x1],#16 +.endif +#ifdef __AARCH64EB__ + rev x7,x7 +.long 0x05a48000 //revb z0.s,p0/m,z0.s +.long 0x05a48084 //revb z4.s,p0/m,z4.s + rev x9,x9 +.long 0x05a48108 //revb z8.s,p0/m,z8.s +.long 0x05a4818c //revb z12.s,p0/m,z12.s + rev x11,x11 +.long 0x05a48021 //revb z1.s,p0/m,z1.s +.long 0x05a480a5 //revb z5.s,p0/m,z5.s + rev x13,x13 +.long 0x05a48129 //revb z9.s,p0/m,z9.s +.long 0x05a481ad //revb z13.s,p0/m,z13.s + rev x15,x15 +.long 0x05a48042 //revb z2.s,p0/m,z2.s +.long 0x05a480c6 //revb z6.s,p0/m,z6.s + rev x17,x17 +.long 0x05a4814a //revb z10.s,p0/m,z10.s +.long 0x05a481ce //revb z14.s,p0/m,z14.s + rev x19,x19 +.long 0x05a48063 //revb z3.s,p0/m,z3.s +.long 0x05a480e7 //revb z7.s,p0/m,z7.s + rev x21,x21 +.long 0x05a4816b //revb z11.s,p0/m,z11.s +.long 0x05a481ef //revb z15.s,p0/m,z15.s +#endif +.if mixin == 1 + add x29,x29,#1 +.endif + cmp x5,4 + b.ne 200f +.if mixin == 1 + eor x7,x7,x8 +.endif +.if mixin == 1 + eor x9,x9,x10 +.endif +.if mixin == 1 + eor x11,x11,x12 +.endif +.long 0x05a46011 //zip1 z17.s,z0.s,z4.s +.long 0x05a46412 //zip2 z18.s,z0.s,z4.s +.long 0x05ac6113 //zip1 z19.s,z8.s,z12.s +.long 0x05ac6514 //zip2 z20.s,z8.s,z12.s + +.long 0x05a56035 //zip1 z21.s,z1.s,z5.s +.long 0x05a56436 //zip2 z22.s,z1.s,z5.s +.long 0x05ad6137 //zip1 z23.s,z9.s,z13.s +.long 0x05ad6538 //zip2 z24.s,z9.s,z13.s + +.long 0x05f36220 //zip1 z0.d,z17.d,z19.d +.long 0x05f36624 //zip2 z4.d,z17.d,z19.d +.long 0x05f46248 //zip1 z8.d,z18.d,z20.d +.long 0x05f4664c //zip2 z12.d,z18.d,z20.d + +.long 0x05f762a1 //zip1 z1.d,z21.d,z23.d +.long 0x05f766a5 //zip2 z5.d,z21.d,z23.d +.long 0x05f862c9 //zip1 z9.d,z22.d,z24.d +.long 0x05f866cd //zip2 z13.d,z22.d,z24.d +.if mixin == 1 + eor x13,x13,x14 +.endif +.if mixin == 1 + eor x15,x15,x16 +.endif +.if mixin == 1 + eor x17,x17,x18 +.endif +.long 0x05a66051 //zip1 z17.s,z2.s,z6.s +.long 0x05a66452 //zip2 z18.s,z2.s,z6.s +.long 0x05ae6153 //zip1 z19.s,z10.s,z14.s +.long 0x05ae6554 //zip2 z20.s,z10.s,z14.s + +.long 0x05a76075 //zip1 z21.s,z3.s,z7.s +.long 0x05a76476 //zip2 z22.s,z3.s,z7.s +.long 0x05af6177 //zip1 z23.s,z11.s,z15.s +.long 0x05af6578 //zip2 z24.s,z11.s,z15.s + +.long 0x05f36222 //zip1 z2.d,z17.d,z19.d +.long 0x05f36626 //zip2 z6.d,z17.d,z19.d +.long 0x05f4624a //zip1 z10.d,z18.d,z20.d +.long 0x05f4664e //zip2 z14.d,z18.d,z20.d + +.long 0x05f762a3 //zip1 z3.d,z21.d,z23.d +.long 0x05f766a7 //zip2 z7.d,z21.d,z23.d +.long 0x05f862cb //zip1 z11.d,z22.d,z24.d +.long 0x05f866cf //zip2 z15.d,z22.d,z24.d +.if mixin == 1 + eor x19,x19,x20 +.endif +.if mixin == 1 + eor x21,x21,x22 +.endif + ld1 {v17.4s,v18.4s,v19.4s,v20.4s},[x1],#64 + ld1 {v21.4s,v22.4s,v23.4s,v24.4s},[x1],#64 +.long 0x04b13000 //eor z0.d,z0.d,z17.d +.long 0x04b23021 //eor z1.d,z1.d,z18.d +.long 0x04b33042 //eor z2.d,z2.d,z19.d +.long 0x04b43063 //eor z3.d,z3.d,z20.d +.long 0x04b53084 //eor z4.d,z4.d,z21.d +.long 0x04b630a5 //eor z5.d,z5.d,z22.d +.long 0x04b730c6 //eor z6.d,z6.d,z23.d +.long 0x04b830e7 //eor z7.d,z7.d,z24.d + ld1 {v17.4s,v18.4s,v19.4s,v20.4s},[x1],#64 + ld1 {v21.4s,v22.4s,v23.4s,v24.4s},[x1],#64 +.if mixin == 1 + stp x7,x9,[x0],#16 +.endif +.long 0x04b13108 //eor z8.d,z8.d,z17.d +.long 0x04b23129 //eor z9.d,z9.d,z18.d +.if mixin == 1 + stp x11,x13,[x0],#16 +.endif +.long 0x04b3314a //eor z10.d,z10.d,z19.d +.long 0x04b4316b //eor z11.d,z11.d,z20.d +.if mixin == 1 + stp x15,x17,[x0],#16 +.endif +.long 0x04b5318c //eor z12.d,z12.d,z21.d +.long 0x04b631ad //eor z13.d,z13.d,z22.d +.if mixin == 1 + stp x19,x21,[x0],#16 +.endif +.long 0x04b731ce //eor z14.d,z14.d,z23.d +.long 0x04b831ef //eor z15.d,z15.d,z24.d + st1 {v0.4s,v1.4s,v2.4s,v3.4s},[x0],#64 + st1 {v4.4s,v5.4s,v6.4s,v7.4s},[x0],#64 + st1 {v8.4s,v9.4s,v10.4s,v11.4s},[x0],#64 + st1 {v12.4s,v13.4s,v14.4s,v15.4s},[x0],#64 + b 210f +200: +.long 0x05a16011 //zip1 z17.s,z0.s,z1.s +.long 0x05a16412 //zip2 z18.s,z0.s,z1.s +.long 0x05a36053 //zip1 z19.s,z2.s,z3.s +.long 0x05a36454 //zip2 z20.s,z2.s,z3.s + +.long 0x05a56095 //zip1 z21.s,z4.s,z5.s +.long 0x05a56496 //zip2 z22.s,z4.s,z5.s +.long 0x05a760d7 //zip1 z23.s,z6.s,z7.s +.long 0x05a764d8 //zip2 z24.s,z6.s,z7.s + +.long 0x05f36220 //zip1 z0.d,z17.d,z19.d +.long 0x05f36621 //zip2 z1.d,z17.d,z19.d +.long 0x05f46242 //zip1 z2.d,z18.d,z20.d +.long 0x05f46643 //zip2 z3.d,z18.d,z20.d + +.long 0x05f762a4 //zip1 z4.d,z21.d,z23.d +.long 0x05f766a5 //zip2 z5.d,z21.d,z23.d +.long 0x05f862c6 //zip1 z6.d,z22.d,z24.d +.long 0x05f866c7 //zip2 z7.d,z22.d,z24.d +.if mixin == 1 + eor x7,x7,x8 +.endif +.if mixin == 1 + eor x9,x9,x10 +.endif +.long 0x05a96111 //zip1 z17.s,z8.s,z9.s +.long 0x05a96512 //zip2 z18.s,z8.s,z9.s +.long 0x05ab6153 //zip1 z19.s,z10.s,z11.s +.long 0x05ab6554 //zip2 z20.s,z10.s,z11.s + +.long 0x05ad6195 //zip1 z21.s,z12.s,z13.s +.long 0x05ad6596 //zip2 z22.s,z12.s,z13.s +.long 0x05af61d7 //zip1 z23.s,z14.s,z15.s +.long 0x05af65d8 //zip2 z24.s,z14.s,z15.s + +.long 0x05f36228 //zip1 z8.d,z17.d,z19.d +.long 0x05f36629 //zip2 z9.d,z17.d,z19.d +.long 0x05f4624a //zip1 z10.d,z18.d,z20.d +.long 0x05f4664b //zip2 z11.d,z18.d,z20.d + +.long 0x05f762ac //zip1 z12.d,z21.d,z23.d +.long 0x05f766ad //zip2 z13.d,z21.d,z23.d +.long 0x05f862ce //zip1 z14.d,z22.d,z24.d +.long 0x05f866cf //zip2 z15.d,z22.d,z24.d +.if mixin == 1 + eor x11,x11,x12 +.endif +.if mixin == 1 + eor x13,x13,x14 +.endif +.long 0x05a46011 //zip1 z17.s,z0.s,z4.s +.long 0x05a46412 //zip2 z18.s,z0.s,z4.s +.long 0x05ac6113 //zip1 z19.s,z8.s,z12.s +.long 0x05ac6514 //zip2 z20.s,z8.s,z12.s + +.long 0x05a56035 //zip1 z21.s,z1.s,z5.s +.long 0x05a56436 //zip2 z22.s,z1.s,z5.s +.long 0x05ad6137 //zip1 z23.s,z9.s,z13.s +.long 0x05ad6538 //zip2 z24.s,z9.s,z13.s + +.long 0x05f36220 //zip1 z0.d,z17.d,z19.d +.long 0x05f36624 //zip2 z4.d,z17.d,z19.d +.long 0x05f46248 //zip1 z8.d,z18.d,z20.d +.long 0x05f4664c //zip2 z12.d,z18.d,z20.d + +.long 0x05f762a1 //zip1 z1.d,z21.d,z23.d +.long 0x05f766a5 //zip2 z5.d,z21.d,z23.d +.long 0x05f862c9 //zip1 z9.d,z22.d,z24.d +.long 0x05f866cd //zip2 z13.d,z22.d,z24.d +.if mixin == 1 + eor x15,x15,x16 +.endif +.if mixin == 1 + eor x17,x17,x18 +.endif +.long 0x05a66051 //zip1 z17.s,z2.s,z6.s +.long 0x05a66452 //zip2 z18.s,z2.s,z6.s +.long 0x05ae6153 //zip1 z19.s,z10.s,z14.s +.long 0x05ae6554 //zip2 z20.s,z10.s,z14.s + +.long 0x05a76075 //zip1 z21.s,z3.s,z7.s +.long 0x05a76476 //zip2 z22.s,z3.s,z7.s +.long 0x05af6177 //zip1 z23.s,z11.s,z15.s +.long 0x05af6578 //zip2 z24.s,z11.s,z15.s + +.long 0x05f36222 //zip1 z2.d,z17.d,z19.d +.long 0x05f36626 //zip2 z6.d,z17.d,z19.d +.long 0x05f4624a //zip1 z10.d,z18.d,z20.d +.long 0x05f4664e //zip2 z14.d,z18.d,z20.d + +.long 0x05f762a3 //zip1 z3.d,z21.d,z23.d +.long 0x05f766a7 //zip2 z7.d,z21.d,z23.d +.long 0x05f862cb //zip1 z11.d,z22.d,z24.d +.long 0x05f866cf //zip2 z15.d,z22.d,z24.d +.if mixin == 1 + eor x19,x19,x20 +.endif +.if mixin == 1 + eor x21,x21,x22 +.endif +.long 0xa540a031 //ld1w {z17.s},p0/z,[x1,#0,MUL VL] +.long 0xa541a032 //ld1w {z18.s},p0/z,[x1,#1,MUL VL] +.long 0xa542a033 //ld1w {z19.s},p0/z,[x1,#2,MUL VL] +.long 0xa543a034 //ld1w {z20.s},p0/z,[x1,#3,MUL VL] +.long 0xa544a035 //ld1w {z21.s},p0/z,[x1,#4,MUL VL] +.long 0xa545a036 //ld1w {z22.s},p0/z,[x1,#5,MUL VL] +.long 0xa546a037 //ld1w {z23.s},p0/z,[x1,#6,MUL VL] +.long 0xa547a038 //ld1w {z24.s},p0/z,[x1,#7,MUL VL] +.long 0x04215101 //addvl x1,x1,8 +.long 0x04b13000 //eor z0.d,z0.d,z17.d +.long 0x04b23084 //eor z4.d,z4.d,z18.d +.long 0x04b33108 //eor z8.d,z8.d,z19.d +.long 0x04b4318c //eor z12.d,z12.d,z20.d +.long 0x04b53021 //eor z1.d,z1.d,z21.d +.long 0x04b630a5 //eor z5.d,z5.d,z22.d +.long 0x04b73129 //eor z9.d,z9.d,z23.d +.long 0x04b831ad //eor z13.d,z13.d,z24.d +.long 0xa540a031 //ld1w {z17.s},p0/z,[x1,#0,MUL VL] +.long 0xa541a032 //ld1w {z18.s},p0/z,[x1,#1,MUL VL] +.long 0xa542a033 //ld1w {z19.s},p0/z,[x1,#2,MUL VL] +.long 0xa543a034 //ld1w {z20.s},p0/z,[x1,#3,MUL VL] +.long 0xa544a035 //ld1w {z21.s},p0/z,[x1,#4,MUL VL] +.long 0xa545a036 //ld1w {z22.s},p0/z,[x1,#5,MUL VL] +.long 0xa546a037 //ld1w {z23.s},p0/z,[x1,#6,MUL VL] +.long 0xa547a038 //ld1w {z24.s},p0/z,[x1,#7,MUL VL] +.long 0x04215101 //addvl x1,x1,8 +.if mixin == 1 + stp x7,x9,[x0],#16 +.endif +.long 0x04b13042 //eor z2.d,z2.d,z17.d +.long 0x04b230c6 //eor z6.d,z6.d,z18.d +.if mixin == 1 + stp x11,x13,[x0],#16 +.endif +.long 0x04b3314a //eor z10.d,z10.d,z19.d +.long 0x04b431ce //eor z14.d,z14.d,z20.d +.if mixin == 1 + stp x15,x17,[x0],#16 +.endif +.long 0x04b53063 //eor z3.d,z3.d,z21.d +.long 0x04b630e7 //eor z7.d,z7.d,z22.d +.if mixin == 1 + stp x19,x21,[x0],#16 +.endif +.long 0x04b7316b //eor z11.d,z11.d,z23.d +.long 0x04b831ef //eor z15.d,z15.d,z24.d +.long 0xe540e000 //st1w {z0.s},p0,[x0,#0,MUL VL] +.long 0xe541e004 //st1w {z4.s},p0,[x0,#1,MUL VL] +.long 0xe542e008 //st1w {z8.s},p0,[x0,#2,MUL VL] +.long 0xe543e00c //st1w {z12.s},p0,[x0,#3,MUL VL] +.long 0xe544e001 //st1w {z1.s},p0,[x0,#4,MUL VL] +.long 0xe545e005 //st1w {z5.s},p0,[x0,#5,MUL VL] +.long 0xe546e009 //st1w {z9.s},p0,[x0,#6,MUL VL] +.long 0xe547e00d //st1w {z13.s},p0,[x0,#7,MUL VL] +.long 0x04205100 //addvl x0,x0,8 +.long 0xe540e002 //st1w {z2.s},p0,[x0,#0,MUL VL] +.long 0xe541e006 //st1w {z6.s},p0,[x0,#1,MUL VL] +.long 0xe542e00a //st1w {z10.s},p0,[x0,#2,MUL VL] +.long 0xe543e00e //st1w {z14.s},p0,[x0,#3,MUL VL] +.long 0xe544e003 //st1w {z3.s},p0,[x0,#4,MUL VL] +.long 0xe545e007 //st1w {z7.s},p0,[x0,#5,MUL VL] +.long 0xe546e00b //st1w {z11.s},p0,[x0,#6,MUL VL] +.long 0xe547e00f //st1w {z15.s},p0,[x0,#7,MUL VL] +.long 0x04205100 //addvl x0,x0,8 +210: +.long 0x04b0e3fd //incw x29, ALL, MUL #1 +110: + b 2f +1: +.align 5 +100: + subs x7,x2,x5,lsl #6 + b.lt 110f + mov x2,x7 + b.eq 101f + cmp x2,64 + b.lt 101f + mixin=1 + lsr x8,x23,#32 +.long 0x05a03ae0 //dup z0.s,w23 +.long 0x05a03af9 //dup z25.s,w23 +.if mixin == 1 + mov w7,w23 +.endif +.long 0x05a03904 //dup z4.s,w8 +.long 0x05a0391a //dup z26.s,w8 + lsr x10,x24,#32 +.long 0x05a03b08 //dup z8.s,w24 +.long 0x05a03b1b //dup z27.s,w24 +.if mixin == 1 + mov w9,w24 +.endif +.long 0x05a0394c //dup z12.s,w10 +.long 0x05a0395c //dup z28.s,w10 + lsr x12,x25,#32 +.long 0x05a03b21 //dup z1.s,w25 +.long 0x05a03b3d //dup z29.s,w25 +.if mixin == 1 + mov w11,w25 +.endif +.long 0x05a03985 //dup z5.s,w12 +.long 0x05a0399e //dup z30.s,w12 + lsr x14,x26,#32 +.long 0x05a03b49 //dup z9.s,w26 +.long 0x05a03b55 //dup z21.s,w26 +.if mixin == 1 + mov w13,w26 +.endif +.long 0x05a039cd //dup z13.s,w14 +.long 0x05a039d6 //dup z22.s,w14 + lsr x16,x27,#32 +.long 0x05a03b62 //dup z2.s,w27 +.long 0x05a03b77 //dup z23.s,w27 +.if mixin == 1 + mov w15,w27 +.endif +.long 0x05a03a06 //dup z6.s,w16 +.long 0x05a03a18 //dup z24.s,w16 + lsr x18,x28,#32 +.long 0x05a03b8a //dup z10.s,w28 +.if mixin == 1 + mov w17,w28 +.endif +.long 0x05a03a4e //dup z14.s,w18 + lsr x22,x30,#32 +.long 0x05a03bcb //dup z11.s,w30 +.if mixin == 1 + mov w21,w30 +.endif +.long 0x05a03acf //dup z15.s,w22 +.if mixin == 1 + add w20,w29,#1 + mov w19,w29 +.long 0x04a14690 //index z16.s,w20,1 +.long 0x04a14683 //index z3.s,w20,1 +.else +.long 0x04a147b0 //index z16.s,w29,1 +.long 0x04a147a3 //index z3.s,w29,1 +.endif + lsr x20,x29,#32 +.long 0x05a03a87 //dup z7.s,w20 + mov x6,#10 +10: +.align 5 +.long 0x04a10000 //add z0.s,z0.s,z1.s +.if mixin == 1 + add w7,w7,w11 +.endif +.long 0x04a50084 //add z4.s,z4.s,z5.s +.if mixin == 1 + add w8,w8,w12 +.endif +.long 0x04a90108 //add z8.s,z8.s,z9.s +.if mixin == 1 + add w9,w9,w13 +.endif +.long 0x04ad018c //add z12.s,z12.s,z13.s +.if mixin == 1 + add w10,w10,w14 +.endif +.long 0x04a03063 //eor z3.d,z3.d,z0.d +.if mixin == 1 + eor w19,w19,w7 +.endif +.long 0x04a430e7 //eor z7.d,z7.d,z4.d +.if mixin == 1 + eor w20,w20,w8 +.endif +.long 0x04a8316b //eor z11.d,z11.d,z8.d +.if mixin == 1 + eor w21,w21,w9 +.endif +.long 0x04ac31ef //eor z15.d,z15.d,z12.d +.if mixin == 1 + eor w22,w22,w10 +.endif +.long 0x05a58063 //revh z3.s,p0/m,z3.s +.if mixin == 1 + ror w19,w19,#16 +.endif +.long 0x05a580e7 //revh z7.s,p0/m,z7.s +.if mixin == 1 + ror w20,w20,#16 +.endif +.long 0x05a5816b //revh z11.s,p0/m,z11.s +.if mixin == 1 + ror w21,w21,#16 +.endif +.long 0x05a581ef //revh z15.s,p0/m,z15.s +.if mixin == 1 + ror w22,w22,#16 +.endif +.long 0x04a30042 //add z2.s,z2.s,z3.s +.if mixin == 1 + add w15,w15,w19 +.endif +.long 0x04a700c6 //add z6.s,z6.s,z7.s +.if mixin == 1 + add w16,w16,w20 +.endif +.long 0x04ab014a //add z10.s,z10.s,z11.s +.if mixin == 1 + add w17,w17,w21 +.endif +.long 0x04af01ce //add z14.s,z14.s,z15.s +.if mixin == 1 + add w18,w18,w22 +.endif +.long 0x04a23021 //eor z1.d,z1.d,z2.d +.if mixin == 1 + eor w11,w11,w15 +.endif +.long 0x04a630a5 //eor z5.d,z5.d,z6.d +.if mixin == 1 + eor w12,w12,w16 +.endif +.long 0x04aa3129 //eor z9.d,z9.d,z10.d +.if mixin == 1 + eor w13,w13,w17 +.endif +.long 0x04ae31ad //eor z13.d,z13.d,z14.d +.if mixin == 1 + eor w14,w14,w18 +.endif +.long 0x046c9c31 //lsl z17.s,z1.s,12 +.long 0x046c9cb2 //lsl z18.s,z5.s,12 +.long 0x046c9d33 //lsl z19.s,z9.s,12 +.long 0x046c9db4 //lsl z20.s,z13.s,12 +.long 0x046c9421 //lsr z1.s,z1.s,20 +.if mixin == 1 + ror w11,w11,20 +.endif +.long 0x046c94a5 //lsr z5.s,z5.s,20 +.if mixin == 1 + ror w12,w12,20 +.endif +.long 0x046c9529 //lsr z9.s,z9.s,20 +.if mixin == 1 + ror w13,w13,20 +.endif +.long 0x046c95ad //lsr z13.s,z13.s,20 +.if mixin == 1 + ror w14,w14,20 +.endif +.long 0x04713021 //orr z1.d,z1.d,z17.d +.long 0x047230a5 //orr z5.d,z5.d,z18.d +.long 0x04733129 //orr z9.d,z9.d,z19.d +.long 0x047431ad //orr z13.d,z13.d,z20.d +.long 0x04a10000 //add z0.s,z0.s,z1.s +.if mixin == 1 + add w7,w7,w11 +.endif +.long 0x04a50084 //add z4.s,z4.s,z5.s +.if mixin == 1 + add w8,w8,w12 +.endif +.long 0x04a90108 //add z8.s,z8.s,z9.s +.if mixin == 1 + add w9,w9,w13 +.endif +.long 0x04ad018c //add z12.s,z12.s,z13.s +.if mixin == 1 + add w10,w10,w14 +.endif +.long 0x04a03063 //eor z3.d,z3.d,z0.d +.if mixin == 1 + eor w19,w19,w7 +.endif +.long 0x04a430e7 //eor z7.d,z7.d,z4.d +.if mixin == 1 + eor w20,w20,w8 +.endif +.long 0x04a8316b //eor z11.d,z11.d,z8.d +.if mixin == 1 + eor w21,w21,w9 +.endif +.long 0x04ac31ef //eor z15.d,z15.d,z12.d +.if mixin == 1 + eor w22,w22,w10 +.endif +.long 0x053f3063 //tbl z3.b,{z3.b},z31.b +.if mixin == 1 + ror w19,w19,#24 +.endif +.long 0x053f30e7 //tbl z7.b,{z7.b},z31.b +.if mixin == 1 + ror w20,w20,#24 +.endif +.long 0x053f316b //tbl z11.b,{z11.b},z31.b +.if mixin == 1 + ror w21,w21,#24 +.endif +.long 0x053f31ef //tbl z15.b,{z15.b},z31.b +.if mixin == 1 + ror w22,w22,#24 +.endif +.long 0x04a30042 //add z2.s,z2.s,z3.s +.if mixin == 1 + add w15,w15,w19 +.endif +.long 0x04a700c6 //add z6.s,z6.s,z7.s +.if mixin == 1 + add w16,w16,w20 +.endif +.long 0x04ab014a //add z10.s,z10.s,z11.s +.if mixin == 1 + add w17,w17,w21 +.endif +.long 0x04af01ce //add z14.s,z14.s,z15.s +.if mixin == 1 + add w18,w18,w22 +.endif +.long 0x04a23021 //eor z1.d,z1.d,z2.d +.if mixin == 1 + eor w11,w11,w15 +.endif +.long 0x04a630a5 //eor z5.d,z5.d,z6.d +.if mixin == 1 + eor w12,w12,w16 +.endif +.long 0x04aa3129 //eor z9.d,z9.d,z10.d +.if mixin == 1 + eor w13,w13,w17 +.endif +.long 0x04ae31ad //eor z13.d,z13.d,z14.d +.if mixin == 1 + eor w14,w14,w18 +.endif +.long 0x04679c31 //lsl z17.s,z1.s,7 +.long 0x04679cb2 //lsl z18.s,z5.s,7 +.long 0x04679d33 //lsl z19.s,z9.s,7 +.long 0x04679db4 //lsl z20.s,z13.s,7 +.long 0x04679421 //lsr z1.s,z1.s,25 +.if mixin == 1 + ror w11,w11,25 +.endif +.long 0x046794a5 //lsr z5.s,z5.s,25 +.if mixin == 1 + ror w12,w12,25 +.endif +.long 0x04679529 //lsr z9.s,z9.s,25 +.if mixin == 1 + ror w13,w13,25 +.endif +.long 0x046795ad //lsr z13.s,z13.s,25 +.if mixin == 1 + ror w14,w14,25 +.endif +.long 0x04713021 //orr z1.d,z1.d,z17.d +.long 0x047230a5 //orr z5.d,z5.d,z18.d +.long 0x04733129 //orr z9.d,z9.d,z19.d +.long 0x047431ad //orr z13.d,z13.d,z20.d +.long 0x04a50000 //add z0.s,z0.s,z5.s +.if mixin == 1 + add w7,w7,w12 +.endif +.long 0x04a90084 //add z4.s,z4.s,z9.s +.if mixin == 1 + add w8,w8,w13 +.endif +.long 0x04ad0108 //add z8.s,z8.s,z13.s +.if mixin == 1 + add w9,w9,w14 +.endif +.long 0x04a1018c //add z12.s,z12.s,z1.s +.if mixin == 1 + add w10,w10,w11 +.endif +.long 0x04a031ef //eor z15.d,z15.d,z0.d +.if mixin == 1 + eor w22,w22,w7 +.endif +.long 0x04a43063 //eor z3.d,z3.d,z4.d +.if mixin == 1 + eor w19,w19,w8 +.endif +.long 0x04a830e7 //eor z7.d,z7.d,z8.d +.if mixin == 1 + eor w20,w20,w9 +.endif +.long 0x04ac316b //eor z11.d,z11.d,z12.d +.if mixin == 1 + eor w21,w21,w10 +.endif +.long 0x05a581ef //revh z15.s,p0/m,z15.s +.if mixin == 1 + ror w22,w22,#16 +.endif +.long 0x05a58063 //revh z3.s,p0/m,z3.s +.if mixin == 1 + ror w19,w19,#16 +.endif +.long 0x05a580e7 //revh z7.s,p0/m,z7.s +.if mixin == 1 + ror w20,w20,#16 +.endif +.long 0x05a5816b //revh z11.s,p0/m,z11.s +.if mixin == 1 + ror w21,w21,#16 +.endif +.long 0x04af014a //add z10.s,z10.s,z15.s +.if mixin == 1 + add w17,w17,w22 +.endif +.long 0x04a301ce //add z14.s,z14.s,z3.s +.if mixin == 1 + add w18,w18,w19 +.endif +.long 0x04a70042 //add z2.s,z2.s,z7.s +.if mixin == 1 + add w15,w15,w20 +.endif +.long 0x04ab00c6 //add z6.s,z6.s,z11.s +.if mixin == 1 + add w16,w16,w21 +.endif +.long 0x04aa30a5 //eor z5.d,z5.d,z10.d +.if mixin == 1 + eor w12,w12,w17 +.endif +.long 0x04ae3129 //eor z9.d,z9.d,z14.d +.if mixin == 1 + eor w13,w13,w18 +.endif +.long 0x04a231ad //eor z13.d,z13.d,z2.d +.if mixin == 1 + eor w14,w14,w15 +.endif +.long 0x04a63021 //eor z1.d,z1.d,z6.d +.if mixin == 1 + eor w11,w11,w16 +.endif +.long 0x046c9cb1 //lsl z17.s,z5.s,12 +.long 0x046c9d32 //lsl z18.s,z9.s,12 +.long 0x046c9db3 //lsl z19.s,z13.s,12 +.long 0x046c9c34 //lsl z20.s,z1.s,12 +.long 0x046c94a5 //lsr z5.s,z5.s,20 +.if mixin == 1 + ror w12,w12,20 +.endif +.long 0x046c9529 //lsr z9.s,z9.s,20 +.if mixin == 1 + ror w13,w13,20 +.endif +.long 0x046c95ad //lsr z13.s,z13.s,20 +.if mixin == 1 + ror w14,w14,20 +.endif +.long 0x046c9421 //lsr z1.s,z1.s,20 +.if mixin == 1 + ror w11,w11,20 +.endif +.long 0x047130a5 //orr z5.d,z5.d,z17.d +.long 0x04723129 //orr z9.d,z9.d,z18.d +.long 0x047331ad //orr z13.d,z13.d,z19.d +.long 0x04743021 //orr z1.d,z1.d,z20.d +.long 0x04a50000 //add z0.s,z0.s,z5.s +.if mixin == 1 + add w7,w7,w12 +.endif +.long 0x04a90084 //add z4.s,z4.s,z9.s +.if mixin == 1 + add w8,w8,w13 +.endif +.long 0x04ad0108 //add z8.s,z8.s,z13.s +.if mixin == 1 + add w9,w9,w14 +.endif +.long 0x04a1018c //add z12.s,z12.s,z1.s +.if mixin == 1 + add w10,w10,w11 +.endif +.long 0x04a031ef //eor z15.d,z15.d,z0.d +.if mixin == 1 + eor w22,w22,w7 +.endif +.long 0x04a43063 //eor z3.d,z3.d,z4.d +.if mixin == 1 + eor w19,w19,w8 +.endif +.long 0x04a830e7 //eor z7.d,z7.d,z8.d +.if mixin == 1 + eor w20,w20,w9 +.endif +.long 0x04ac316b //eor z11.d,z11.d,z12.d +.if mixin == 1 + eor w21,w21,w10 +.endif +.long 0x053f31ef //tbl z15.b,{z15.b},z31.b +.if mixin == 1 + ror w22,w22,#24 +.endif +.long 0x053f3063 //tbl z3.b,{z3.b},z31.b +.if mixin == 1 + ror w19,w19,#24 +.endif +.long 0x053f30e7 //tbl z7.b,{z7.b},z31.b +.if mixin == 1 + ror w20,w20,#24 +.endif +.long 0x053f316b //tbl z11.b,{z11.b},z31.b +.if mixin == 1 + ror w21,w21,#24 +.endif +.long 0x04af014a //add z10.s,z10.s,z15.s +.if mixin == 1 + add w17,w17,w22 +.endif +.long 0x04a301ce //add z14.s,z14.s,z3.s +.if mixin == 1 + add w18,w18,w19 +.endif +.long 0x04a70042 //add z2.s,z2.s,z7.s +.if mixin == 1 + add w15,w15,w20 +.endif +.long 0x04ab00c6 //add z6.s,z6.s,z11.s +.if mixin == 1 + add w16,w16,w21 +.endif +.long 0x04aa30a5 //eor z5.d,z5.d,z10.d +.if mixin == 1 + eor w12,w12,w17 +.endif +.long 0x04ae3129 //eor z9.d,z9.d,z14.d +.if mixin == 1 + eor w13,w13,w18 +.endif +.long 0x04a231ad //eor z13.d,z13.d,z2.d +.if mixin == 1 + eor w14,w14,w15 +.endif +.long 0x04a63021 //eor z1.d,z1.d,z6.d +.if mixin == 1 + eor w11,w11,w16 +.endif +.long 0x04679cb1 //lsl z17.s,z5.s,7 +.long 0x04679d32 //lsl z18.s,z9.s,7 +.long 0x04679db3 //lsl z19.s,z13.s,7 +.long 0x04679c34 //lsl z20.s,z1.s,7 +.long 0x046794a5 //lsr z5.s,z5.s,25 +.if mixin == 1 + ror w12,w12,25 +.endif +.long 0x04679529 //lsr z9.s,z9.s,25 +.if mixin == 1 + ror w13,w13,25 +.endif +.long 0x046795ad //lsr z13.s,z13.s,25 +.if mixin == 1 + ror w14,w14,25 +.endif +.long 0x04679421 //lsr z1.s,z1.s,25 +.if mixin == 1 + ror w11,w11,25 +.endif +.long 0x047130a5 //orr z5.d,z5.d,z17.d +.long 0x04723129 //orr z9.d,z9.d,z18.d +.long 0x047331ad //orr z13.d,z13.d,z19.d +.long 0x04743021 //orr z1.d,z1.d,z20.d + sub x6,x6,1 + cbnz x6,10b + lsr x6,x28,#32 +.long 0x05a03b91 //dup z17.s,w28 +.long 0x05a038d2 //dup z18.s,w6 + lsr x6,x29,#32 +.long 0x05a038d3 //dup z19.s,w6 + lsr x6,x30,#32 +.if mixin == 1 + add w7,w7,w23 +.endif +.long 0x04b90000 //add z0.s,z0.s,z25.s +.if mixin == 1 + add x8,x8,x23,lsr #32 +.endif +.long 0x04ba0084 //add z4.s,z4.s,z26.s +.if mixin == 1 + add x7,x7,x8,lsl #32 // pack +.endif +.if mixin == 1 + add w9,w9,w24 +.endif +.long 0x04bb0108 //add z8.s,z8.s,z27.s +.if mixin == 1 + add x10,x10,x24,lsr #32 +.endif +.long 0x04bc018c //add z12.s,z12.s,z28.s +.if mixin == 1 + add x9,x9,x10,lsl #32 // pack +.endif +.if mixin == 1 + ldp x8,x10,[x1],#16 +.endif +.if mixin == 1 + add w11,w11,w25 +.endif +.long 0x04bd0021 //add z1.s,z1.s,z29.s +.if mixin == 1 + add x12,x12,x25,lsr #32 +.endif +.long 0x04be00a5 //add z5.s,z5.s,z30.s +.if mixin == 1 + add x11,x11,x12,lsl #32 // pack +.endif +.if mixin == 1 + add w13,w13,w26 +.endif +.long 0x04b50129 //add z9.s,z9.s,z21.s +.if mixin == 1 + add x14,x14,x26,lsr #32 +.endif +.long 0x04b601ad //add z13.s,z13.s,z22.s +.if mixin == 1 + add x13,x13,x14,lsl #32 // pack +.endif +.if mixin == 1 + ldp x12,x14,[x1],#16 +.endif +.if mixin == 1 + add w15,w15,w27 +.endif +.long 0x04b70042 //add z2.s,z2.s,z23.s +.if mixin == 1 + add x16,x16,x27,lsr #32 +.endif +.long 0x04b800c6 //add z6.s,z6.s,z24.s +.if mixin == 1 + add x15,x15,x16,lsl #32 // pack +.endif +.if mixin == 1 + add w17,w17,w28 +.endif +.long 0x04b1014a //add z10.s,z10.s,z17.s +.if mixin == 1 + add x18,x18,x28,lsr #32 +.endif +.long 0x04b201ce //add z14.s,z14.s,z18.s +.if mixin == 1 + add x17,x17,x18,lsl #32 // pack +.endif +.if mixin == 1 + ldp x16,x18,[x1],#16 +.endif +.long 0x05a03bd4 //dup z20.s,w30 +.long 0x05a038d9 //dup z25.s,w6 // bak[15] not available for SVE +.if mixin == 1 + add w19,w19,w29 +.endif +.long 0x04b00063 //add z3.s,z3.s,z16.s +.if mixin == 1 + add x20,x20,x29,lsr #32 +.endif +.long 0x04b300e7 //add z7.s,z7.s,z19.s +.if mixin == 1 + add x19,x19,x20,lsl #32 // pack +.endif +.if mixin == 1 + add w21,w21,w30 +.endif +.long 0x04b4016b //add z11.s,z11.s,z20.s +.if mixin == 1 + add x22,x22,x30,lsr #32 +.endif +.long 0x04b901ef //add z15.s,z15.s,z25.s +.if mixin == 1 + add x21,x21,x22,lsl #32 // pack +.endif +.if mixin == 1 + ldp x20,x22,[x1],#16 +.endif +#ifdef __AARCH64EB__ + rev x7,x7 +.long 0x05a48000 //revb z0.s,p0/m,z0.s +.long 0x05a48084 //revb z4.s,p0/m,z4.s + rev x9,x9 +.long 0x05a48108 //revb z8.s,p0/m,z8.s +.long 0x05a4818c //revb z12.s,p0/m,z12.s + rev x11,x11 +.long 0x05a48021 //revb z1.s,p0/m,z1.s +.long 0x05a480a5 //revb z5.s,p0/m,z5.s + rev x13,x13 +.long 0x05a48129 //revb z9.s,p0/m,z9.s +.long 0x05a481ad //revb z13.s,p0/m,z13.s + rev x15,x15 +.long 0x05a48042 //revb z2.s,p0/m,z2.s +.long 0x05a480c6 //revb z6.s,p0/m,z6.s + rev x17,x17 +.long 0x05a4814a //revb z10.s,p0/m,z10.s +.long 0x05a481ce //revb z14.s,p0/m,z14.s + rev x19,x19 +.long 0x05a48063 //revb z3.s,p0/m,z3.s +.long 0x05a480e7 //revb z7.s,p0/m,z7.s + rev x21,x21 +.long 0x05a4816b //revb z11.s,p0/m,z11.s +.long 0x05a481ef //revb z15.s,p0/m,z15.s +#endif +.if mixin == 1 + add x29,x29,#1 +.endif + cmp x5,4 + b.ne 200f +.if mixin == 1 + eor x7,x7,x8 +.endif +.if mixin == 1 + eor x9,x9,x10 +.endif +.if mixin == 1 + eor x11,x11,x12 +.endif +.long 0x05a46011 //zip1 z17.s,z0.s,z4.s +.long 0x05a46412 //zip2 z18.s,z0.s,z4.s +.long 0x05ac6113 //zip1 z19.s,z8.s,z12.s +.long 0x05ac6514 //zip2 z20.s,z8.s,z12.s + +.long 0x05a56035 //zip1 z21.s,z1.s,z5.s +.long 0x05a56436 //zip2 z22.s,z1.s,z5.s +.long 0x05ad6137 //zip1 z23.s,z9.s,z13.s +.long 0x05ad6538 //zip2 z24.s,z9.s,z13.s + +.long 0x05f36220 //zip1 z0.d,z17.d,z19.d +.long 0x05f36624 //zip2 z4.d,z17.d,z19.d +.long 0x05f46248 //zip1 z8.d,z18.d,z20.d +.long 0x05f4664c //zip2 z12.d,z18.d,z20.d + +.long 0x05f762a1 //zip1 z1.d,z21.d,z23.d +.long 0x05f766a5 //zip2 z5.d,z21.d,z23.d +.long 0x05f862c9 //zip1 z9.d,z22.d,z24.d +.long 0x05f866cd //zip2 z13.d,z22.d,z24.d +.if mixin == 1 + eor x13,x13,x14 +.endif +.if mixin == 1 + eor x15,x15,x16 +.endif +.if mixin == 1 + eor x17,x17,x18 +.endif +.long 0x05a66051 //zip1 z17.s,z2.s,z6.s +.long 0x05a66452 //zip2 z18.s,z2.s,z6.s +.long 0x05ae6153 //zip1 z19.s,z10.s,z14.s +.long 0x05ae6554 //zip2 z20.s,z10.s,z14.s + +.long 0x05a76075 //zip1 z21.s,z3.s,z7.s +.long 0x05a76476 //zip2 z22.s,z3.s,z7.s +.long 0x05af6177 //zip1 z23.s,z11.s,z15.s +.long 0x05af6578 //zip2 z24.s,z11.s,z15.s + +.long 0x05f36222 //zip1 z2.d,z17.d,z19.d +.long 0x05f36626 //zip2 z6.d,z17.d,z19.d +.long 0x05f4624a //zip1 z10.d,z18.d,z20.d +.long 0x05f4664e //zip2 z14.d,z18.d,z20.d + +.long 0x05f762a3 //zip1 z3.d,z21.d,z23.d +.long 0x05f766a7 //zip2 z7.d,z21.d,z23.d +.long 0x05f862cb //zip1 z11.d,z22.d,z24.d +.long 0x05f866cf //zip2 z15.d,z22.d,z24.d +.if mixin == 1 + eor x19,x19,x20 +.endif +.if mixin == 1 + eor x21,x21,x22 +.endif + ld1 {v17.4s,v18.4s,v19.4s,v20.4s},[x1],#64 + ld1 {v21.4s,v22.4s,v23.4s,v24.4s},[x1],#64 +.long 0x04b13000 //eor z0.d,z0.d,z17.d +.long 0x04b23021 //eor z1.d,z1.d,z18.d +.long 0x04b33042 //eor z2.d,z2.d,z19.d +.long 0x04b43063 //eor z3.d,z3.d,z20.d +.long 0x04b53084 //eor z4.d,z4.d,z21.d +.long 0x04b630a5 //eor z5.d,z5.d,z22.d +.long 0x04b730c6 //eor z6.d,z6.d,z23.d +.long 0x04b830e7 //eor z7.d,z7.d,z24.d + ld1 {v17.4s,v18.4s,v19.4s,v20.4s},[x1],#64 + ld1 {v21.4s,v22.4s,v23.4s,v24.4s},[x1],#64 +.if mixin == 1 + stp x7,x9,[x0],#16 +.endif +.long 0x04b13108 //eor z8.d,z8.d,z17.d +.long 0x04b23129 //eor z9.d,z9.d,z18.d +.if mixin == 1 + stp x11,x13,[x0],#16 +.endif +.long 0x04b3314a //eor z10.d,z10.d,z19.d +.long 0x04b4316b //eor z11.d,z11.d,z20.d +.if mixin == 1 + stp x15,x17,[x0],#16 +.endif +.long 0x04b5318c //eor z12.d,z12.d,z21.d +.long 0x04b631ad //eor z13.d,z13.d,z22.d +.if mixin == 1 + stp x19,x21,[x0],#16 +.endif +.long 0x04b731ce //eor z14.d,z14.d,z23.d +.long 0x04b831ef //eor z15.d,z15.d,z24.d + st1 {v0.4s,v1.4s,v2.4s,v3.4s},[x0],#64 + st1 {v4.4s,v5.4s,v6.4s,v7.4s},[x0],#64 + st1 {v8.4s,v9.4s,v10.4s,v11.4s},[x0],#64 + st1 {v12.4s,v13.4s,v14.4s,v15.4s},[x0],#64 + b 210f +200: +.long 0x05a16011 //zip1 z17.s,z0.s,z1.s +.long 0x05a16412 //zip2 z18.s,z0.s,z1.s +.long 0x05a36053 //zip1 z19.s,z2.s,z3.s +.long 0x05a36454 //zip2 z20.s,z2.s,z3.s + +.long 0x05a56095 //zip1 z21.s,z4.s,z5.s +.long 0x05a56496 //zip2 z22.s,z4.s,z5.s +.long 0x05a760d7 //zip1 z23.s,z6.s,z7.s +.long 0x05a764d8 //zip2 z24.s,z6.s,z7.s + +.long 0x05f36220 //zip1 z0.d,z17.d,z19.d +.long 0x05f36621 //zip2 z1.d,z17.d,z19.d +.long 0x05f46242 //zip1 z2.d,z18.d,z20.d +.long 0x05f46643 //zip2 z3.d,z18.d,z20.d + +.long 0x05f762a4 //zip1 z4.d,z21.d,z23.d +.long 0x05f766a5 //zip2 z5.d,z21.d,z23.d +.long 0x05f862c6 //zip1 z6.d,z22.d,z24.d +.long 0x05f866c7 //zip2 z7.d,z22.d,z24.d +.if mixin == 1 + eor x7,x7,x8 +.endif +.if mixin == 1 + eor x9,x9,x10 +.endif +.long 0x05a96111 //zip1 z17.s,z8.s,z9.s +.long 0x05a96512 //zip2 z18.s,z8.s,z9.s +.long 0x05ab6153 //zip1 z19.s,z10.s,z11.s +.long 0x05ab6554 //zip2 z20.s,z10.s,z11.s + +.long 0x05ad6195 //zip1 z21.s,z12.s,z13.s +.long 0x05ad6596 //zip2 z22.s,z12.s,z13.s +.long 0x05af61d7 //zip1 z23.s,z14.s,z15.s +.long 0x05af65d8 //zip2 z24.s,z14.s,z15.s + +.long 0x05f36228 //zip1 z8.d,z17.d,z19.d +.long 0x05f36629 //zip2 z9.d,z17.d,z19.d +.long 0x05f4624a //zip1 z10.d,z18.d,z20.d +.long 0x05f4664b //zip2 z11.d,z18.d,z20.d + +.long 0x05f762ac //zip1 z12.d,z21.d,z23.d +.long 0x05f766ad //zip2 z13.d,z21.d,z23.d +.long 0x05f862ce //zip1 z14.d,z22.d,z24.d +.long 0x05f866cf //zip2 z15.d,z22.d,z24.d +.if mixin == 1 + eor x11,x11,x12 +.endif +.if mixin == 1 + eor x13,x13,x14 +.endif +.long 0x05a46011 //zip1 z17.s,z0.s,z4.s +.long 0x05a46412 //zip2 z18.s,z0.s,z4.s +.long 0x05ac6113 //zip1 z19.s,z8.s,z12.s +.long 0x05ac6514 //zip2 z20.s,z8.s,z12.s + +.long 0x05a56035 //zip1 z21.s,z1.s,z5.s +.long 0x05a56436 //zip2 z22.s,z1.s,z5.s +.long 0x05ad6137 //zip1 z23.s,z9.s,z13.s +.long 0x05ad6538 //zip2 z24.s,z9.s,z13.s + +.long 0x05f36220 //zip1 z0.d,z17.d,z19.d +.long 0x05f36624 //zip2 z4.d,z17.d,z19.d +.long 0x05f46248 //zip1 z8.d,z18.d,z20.d +.long 0x05f4664c //zip2 z12.d,z18.d,z20.d + +.long 0x05f762a1 //zip1 z1.d,z21.d,z23.d +.long 0x05f766a5 //zip2 z5.d,z21.d,z23.d +.long 0x05f862c9 //zip1 z9.d,z22.d,z24.d +.long 0x05f866cd //zip2 z13.d,z22.d,z24.d +.if mixin == 1 + eor x15,x15,x16 +.endif +.if mixin == 1 + eor x17,x17,x18 +.endif +.long 0x05a66051 //zip1 z17.s,z2.s,z6.s +.long 0x05a66452 //zip2 z18.s,z2.s,z6.s +.long 0x05ae6153 //zip1 z19.s,z10.s,z14.s +.long 0x05ae6554 //zip2 z20.s,z10.s,z14.s + +.long 0x05a76075 //zip1 z21.s,z3.s,z7.s +.long 0x05a76476 //zip2 z22.s,z3.s,z7.s +.long 0x05af6177 //zip1 z23.s,z11.s,z15.s +.long 0x05af6578 //zip2 z24.s,z11.s,z15.s + +.long 0x05f36222 //zip1 z2.d,z17.d,z19.d +.long 0x05f36626 //zip2 z6.d,z17.d,z19.d +.long 0x05f4624a //zip1 z10.d,z18.d,z20.d +.long 0x05f4664e //zip2 z14.d,z18.d,z20.d + +.long 0x05f762a3 //zip1 z3.d,z21.d,z23.d +.long 0x05f766a7 //zip2 z7.d,z21.d,z23.d +.long 0x05f862cb //zip1 z11.d,z22.d,z24.d +.long 0x05f866cf //zip2 z15.d,z22.d,z24.d +.if mixin == 1 + eor x19,x19,x20 +.endif +.if mixin == 1 + eor x21,x21,x22 +.endif +.long 0xa540a031 //ld1w {z17.s},p0/z,[x1,#0,MUL VL] +.long 0xa541a032 //ld1w {z18.s},p0/z,[x1,#1,MUL VL] +.long 0xa542a033 //ld1w {z19.s},p0/z,[x1,#2,MUL VL] +.long 0xa543a034 //ld1w {z20.s},p0/z,[x1,#3,MUL VL] +.long 0xa544a035 //ld1w {z21.s},p0/z,[x1,#4,MUL VL] +.long 0xa545a036 //ld1w {z22.s},p0/z,[x1,#5,MUL VL] +.long 0xa546a037 //ld1w {z23.s},p0/z,[x1,#6,MUL VL] +.long 0xa547a038 //ld1w {z24.s},p0/z,[x1,#7,MUL VL] +.long 0x04215101 //addvl x1,x1,8 +.long 0x04b13000 //eor z0.d,z0.d,z17.d +.long 0x04b23084 //eor z4.d,z4.d,z18.d +.long 0x04b33108 //eor z8.d,z8.d,z19.d +.long 0x04b4318c //eor z12.d,z12.d,z20.d +.long 0x04b53021 //eor z1.d,z1.d,z21.d +.long 0x04b630a5 //eor z5.d,z5.d,z22.d +.long 0x04b73129 //eor z9.d,z9.d,z23.d +.long 0x04b831ad //eor z13.d,z13.d,z24.d +.long 0xa540a031 //ld1w {z17.s},p0/z,[x1,#0,MUL VL] +.long 0xa541a032 //ld1w {z18.s},p0/z,[x1,#1,MUL VL] +.long 0xa542a033 //ld1w {z19.s},p0/z,[x1,#2,MUL VL] +.long 0xa543a034 //ld1w {z20.s},p0/z,[x1,#3,MUL VL] +.long 0xa544a035 //ld1w {z21.s},p0/z,[x1,#4,MUL VL] +.long 0xa545a036 //ld1w {z22.s},p0/z,[x1,#5,MUL VL] +.long 0xa546a037 //ld1w {z23.s},p0/z,[x1,#6,MUL VL] +.long 0xa547a038 //ld1w {z24.s},p0/z,[x1,#7,MUL VL] +.long 0x04215101 //addvl x1,x1,8 +.if mixin == 1 + stp x7,x9,[x0],#16 +.endif +.long 0x04b13042 //eor z2.d,z2.d,z17.d +.long 0x04b230c6 //eor z6.d,z6.d,z18.d +.if mixin == 1 + stp x11,x13,[x0],#16 +.endif +.long 0x04b3314a //eor z10.d,z10.d,z19.d +.long 0x04b431ce //eor z14.d,z14.d,z20.d +.if mixin == 1 + stp x15,x17,[x0],#16 +.endif +.long 0x04b53063 //eor z3.d,z3.d,z21.d +.long 0x04b630e7 //eor z7.d,z7.d,z22.d +.if mixin == 1 + stp x19,x21,[x0],#16 +.endif +.long 0x04b7316b //eor z11.d,z11.d,z23.d +.long 0x04b831ef //eor z15.d,z15.d,z24.d +.long 0xe540e000 //st1w {z0.s},p0,[x0,#0,MUL VL] +.long 0xe541e004 //st1w {z4.s},p0,[x0,#1,MUL VL] +.long 0xe542e008 //st1w {z8.s},p0,[x0,#2,MUL VL] +.long 0xe543e00c //st1w {z12.s},p0,[x0,#3,MUL VL] +.long 0xe544e001 //st1w {z1.s},p0,[x0,#4,MUL VL] +.long 0xe545e005 //st1w {z5.s},p0,[x0,#5,MUL VL] +.long 0xe546e009 //st1w {z9.s},p0,[x0,#6,MUL VL] +.long 0xe547e00d //st1w {z13.s},p0,[x0,#7,MUL VL] +.long 0x04205100 //addvl x0,x0,8 +.long 0xe540e002 //st1w {z2.s},p0,[x0,#0,MUL VL] +.long 0xe541e006 //st1w {z6.s},p0,[x0,#1,MUL VL] +.long 0xe542e00a //st1w {z10.s},p0,[x0,#2,MUL VL] +.long 0xe543e00e //st1w {z14.s},p0,[x0,#3,MUL VL] +.long 0xe544e003 //st1w {z3.s},p0,[x0,#4,MUL VL] +.long 0xe545e007 //st1w {z7.s},p0,[x0,#5,MUL VL] +.long 0xe546e00b //st1w {z11.s},p0,[x0,#6,MUL VL] +.long 0xe547e00f //st1w {z15.s},p0,[x0,#7,MUL VL] +.long 0x04205100 //addvl x0,x0,8 +210: +.long 0x04b0e3fd //incw x29, ALL, MUL #1 + subs x2,x2,64 + b.gt 100b + b 110f +101: + mixin=0 + lsr x8,x23,#32 +.long 0x05a03ae0 //dup z0.s,w23 +.long 0x05a03af9 //dup z25.s,w23 +.if mixin == 1 + mov w7,w23 +.endif +.long 0x05a03904 //dup z4.s,w8 +.long 0x05a0391a //dup z26.s,w8 + lsr x10,x24,#32 +.long 0x05a03b08 //dup z8.s,w24 +.long 0x05a03b1b //dup z27.s,w24 +.if mixin == 1 + mov w9,w24 +.endif +.long 0x05a0394c //dup z12.s,w10 +.long 0x05a0395c //dup z28.s,w10 + lsr x12,x25,#32 +.long 0x05a03b21 //dup z1.s,w25 +.long 0x05a03b3d //dup z29.s,w25 +.if mixin == 1 + mov w11,w25 +.endif +.long 0x05a03985 //dup z5.s,w12 +.long 0x05a0399e //dup z30.s,w12 + lsr x14,x26,#32 +.long 0x05a03b49 //dup z9.s,w26 +.long 0x05a03b55 //dup z21.s,w26 +.if mixin == 1 + mov w13,w26 +.endif +.long 0x05a039cd //dup z13.s,w14 +.long 0x05a039d6 //dup z22.s,w14 + lsr x16,x27,#32 +.long 0x05a03b62 //dup z2.s,w27 +.long 0x05a03b77 //dup z23.s,w27 +.if mixin == 1 + mov w15,w27 +.endif +.long 0x05a03a06 //dup z6.s,w16 +.long 0x05a03a18 //dup z24.s,w16 + lsr x18,x28,#32 +.long 0x05a03b8a //dup z10.s,w28 +.if mixin == 1 + mov w17,w28 +.endif +.long 0x05a03a4e //dup z14.s,w18 + lsr x22,x30,#32 +.long 0x05a03bcb //dup z11.s,w30 +.if mixin == 1 + mov w21,w30 +.endif +.long 0x05a03acf //dup z15.s,w22 +.if mixin == 1 + add w20,w29,#1 + mov w19,w29 +.long 0x04a14690 //index z16.s,w20,1 +.long 0x04a14683 //index z3.s,w20,1 +.else +.long 0x04a147b0 //index z16.s,w29,1 +.long 0x04a147a3 //index z3.s,w29,1 +.endif + lsr x20,x29,#32 +.long 0x05a03a87 //dup z7.s,w20 + mov x6,#10 +10: +.align 5 +.long 0x04a10000 //add z0.s,z0.s,z1.s +.if mixin == 1 + add w7,w7,w11 +.endif +.long 0x04a50084 //add z4.s,z4.s,z5.s +.if mixin == 1 + add w8,w8,w12 +.endif +.long 0x04a90108 //add z8.s,z8.s,z9.s +.if mixin == 1 + add w9,w9,w13 +.endif +.long 0x04ad018c //add z12.s,z12.s,z13.s +.if mixin == 1 + add w10,w10,w14 +.endif +.long 0x04a03063 //eor z3.d,z3.d,z0.d +.if mixin == 1 + eor w19,w19,w7 +.endif +.long 0x04a430e7 //eor z7.d,z7.d,z4.d +.if mixin == 1 + eor w20,w20,w8 +.endif +.long 0x04a8316b //eor z11.d,z11.d,z8.d +.if mixin == 1 + eor w21,w21,w9 +.endif +.long 0x04ac31ef //eor z15.d,z15.d,z12.d +.if mixin == 1 + eor w22,w22,w10 +.endif +.long 0x05a58063 //revh z3.s,p0/m,z3.s +.if mixin == 1 + ror w19,w19,#16 +.endif +.long 0x05a580e7 //revh z7.s,p0/m,z7.s +.if mixin == 1 + ror w20,w20,#16 +.endif +.long 0x05a5816b //revh z11.s,p0/m,z11.s +.if mixin == 1 + ror w21,w21,#16 +.endif +.long 0x05a581ef //revh z15.s,p0/m,z15.s +.if mixin == 1 + ror w22,w22,#16 +.endif +.long 0x04a30042 //add z2.s,z2.s,z3.s +.if mixin == 1 + add w15,w15,w19 +.endif +.long 0x04a700c6 //add z6.s,z6.s,z7.s +.if mixin == 1 + add w16,w16,w20 +.endif +.long 0x04ab014a //add z10.s,z10.s,z11.s +.if mixin == 1 + add w17,w17,w21 +.endif +.long 0x04af01ce //add z14.s,z14.s,z15.s +.if mixin == 1 + add w18,w18,w22 +.endif +.long 0x04a23021 //eor z1.d,z1.d,z2.d +.if mixin == 1 + eor w11,w11,w15 +.endif +.long 0x04a630a5 //eor z5.d,z5.d,z6.d +.if mixin == 1 + eor w12,w12,w16 +.endif +.long 0x04aa3129 //eor z9.d,z9.d,z10.d +.if mixin == 1 + eor w13,w13,w17 +.endif +.long 0x04ae31ad //eor z13.d,z13.d,z14.d +.if mixin == 1 + eor w14,w14,w18 +.endif +.long 0x046c9c31 //lsl z17.s,z1.s,12 +.long 0x046c9cb2 //lsl z18.s,z5.s,12 +.long 0x046c9d33 //lsl z19.s,z9.s,12 +.long 0x046c9db4 //lsl z20.s,z13.s,12 +.long 0x046c9421 //lsr z1.s,z1.s,20 +.if mixin == 1 + ror w11,w11,20 +.endif +.long 0x046c94a5 //lsr z5.s,z5.s,20 +.if mixin == 1 + ror w12,w12,20 +.endif +.long 0x046c9529 //lsr z9.s,z9.s,20 +.if mixin == 1 + ror w13,w13,20 +.endif +.long 0x046c95ad //lsr z13.s,z13.s,20 +.if mixin == 1 + ror w14,w14,20 +.endif +.long 0x04713021 //orr z1.d,z1.d,z17.d +.long 0x047230a5 //orr z5.d,z5.d,z18.d +.long 0x04733129 //orr z9.d,z9.d,z19.d +.long 0x047431ad //orr z13.d,z13.d,z20.d +.long 0x04a10000 //add z0.s,z0.s,z1.s +.if mixin == 1 + add w7,w7,w11 +.endif +.long 0x04a50084 //add z4.s,z4.s,z5.s +.if mixin == 1 + add w8,w8,w12 +.endif +.long 0x04a90108 //add z8.s,z8.s,z9.s +.if mixin == 1 + add w9,w9,w13 +.endif +.long 0x04ad018c //add z12.s,z12.s,z13.s +.if mixin == 1 + add w10,w10,w14 +.endif +.long 0x04a03063 //eor z3.d,z3.d,z0.d +.if mixin == 1 + eor w19,w19,w7 +.endif +.long 0x04a430e7 //eor z7.d,z7.d,z4.d +.if mixin == 1 + eor w20,w20,w8 +.endif +.long 0x04a8316b //eor z11.d,z11.d,z8.d +.if mixin == 1 + eor w21,w21,w9 +.endif +.long 0x04ac31ef //eor z15.d,z15.d,z12.d +.if mixin == 1 + eor w22,w22,w10 +.endif +.long 0x053f3063 //tbl z3.b,{z3.b},z31.b +.if mixin == 1 + ror w19,w19,#24 +.endif +.long 0x053f30e7 //tbl z7.b,{z7.b},z31.b +.if mixin == 1 + ror w20,w20,#24 +.endif +.long 0x053f316b //tbl z11.b,{z11.b},z31.b +.if mixin == 1 + ror w21,w21,#24 +.endif +.long 0x053f31ef //tbl z15.b,{z15.b},z31.b +.if mixin == 1 + ror w22,w22,#24 +.endif +.long 0x04a30042 //add z2.s,z2.s,z3.s +.if mixin == 1 + add w15,w15,w19 +.endif +.long 0x04a700c6 //add z6.s,z6.s,z7.s +.if mixin == 1 + add w16,w16,w20 +.endif +.long 0x04ab014a //add z10.s,z10.s,z11.s +.if mixin == 1 + add w17,w17,w21 +.endif +.long 0x04af01ce //add z14.s,z14.s,z15.s +.if mixin == 1 + add w18,w18,w22 +.endif +.long 0x04a23021 //eor z1.d,z1.d,z2.d +.if mixin == 1 + eor w11,w11,w15 +.endif +.long 0x04a630a5 //eor z5.d,z5.d,z6.d +.if mixin == 1 + eor w12,w12,w16 +.endif +.long 0x04aa3129 //eor z9.d,z9.d,z10.d +.if mixin == 1 + eor w13,w13,w17 +.endif +.long 0x04ae31ad //eor z13.d,z13.d,z14.d +.if mixin == 1 + eor w14,w14,w18 +.endif +.long 0x04679c31 //lsl z17.s,z1.s,7 +.long 0x04679cb2 //lsl z18.s,z5.s,7 +.long 0x04679d33 //lsl z19.s,z9.s,7 +.long 0x04679db4 //lsl z20.s,z13.s,7 +.long 0x04679421 //lsr z1.s,z1.s,25 +.if mixin == 1 + ror w11,w11,25 +.endif +.long 0x046794a5 //lsr z5.s,z5.s,25 +.if mixin == 1 + ror w12,w12,25 +.endif +.long 0x04679529 //lsr z9.s,z9.s,25 +.if mixin == 1 + ror w13,w13,25 +.endif +.long 0x046795ad //lsr z13.s,z13.s,25 +.if mixin == 1 + ror w14,w14,25 +.endif +.long 0x04713021 //orr z1.d,z1.d,z17.d +.long 0x047230a5 //orr z5.d,z5.d,z18.d +.long 0x04733129 //orr z9.d,z9.d,z19.d +.long 0x047431ad //orr z13.d,z13.d,z20.d +.long 0x04a50000 //add z0.s,z0.s,z5.s +.if mixin == 1 + add w7,w7,w12 +.endif +.long 0x04a90084 //add z4.s,z4.s,z9.s +.if mixin == 1 + add w8,w8,w13 +.endif +.long 0x04ad0108 //add z8.s,z8.s,z13.s +.if mixin == 1 + add w9,w9,w14 +.endif +.long 0x04a1018c //add z12.s,z12.s,z1.s +.if mixin == 1 + add w10,w10,w11 +.endif +.long 0x04a031ef //eor z15.d,z15.d,z0.d +.if mixin == 1 + eor w22,w22,w7 +.endif +.long 0x04a43063 //eor z3.d,z3.d,z4.d +.if mixin == 1 + eor w19,w19,w8 +.endif +.long 0x04a830e7 //eor z7.d,z7.d,z8.d +.if mixin == 1 + eor w20,w20,w9 +.endif +.long 0x04ac316b //eor z11.d,z11.d,z12.d +.if mixin == 1 + eor w21,w21,w10 +.endif +.long 0x05a581ef //revh z15.s,p0/m,z15.s +.if mixin == 1 + ror w22,w22,#16 +.endif +.long 0x05a58063 //revh z3.s,p0/m,z3.s +.if mixin == 1 + ror w19,w19,#16 +.endif +.long 0x05a580e7 //revh z7.s,p0/m,z7.s +.if mixin == 1 + ror w20,w20,#16 +.endif +.long 0x05a5816b //revh z11.s,p0/m,z11.s +.if mixin == 1 + ror w21,w21,#16 +.endif +.long 0x04af014a //add z10.s,z10.s,z15.s +.if mixin == 1 + add w17,w17,w22 +.endif +.long 0x04a301ce //add z14.s,z14.s,z3.s +.if mixin == 1 + add w18,w18,w19 +.endif +.long 0x04a70042 //add z2.s,z2.s,z7.s +.if mixin == 1 + add w15,w15,w20 +.endif +.long 0x04ab00c6 //add z6.s,z6.s,z11.s +.if mixin == 1 + add w16,w16,w21 +.endif +.long 0x04aa30a5 //eor z5.d,z5.d,z10.d +.if mixin == 1 + eor w12,w12,w17 +.endif +.long 0x04ae3129 //eor z9.d,z9.d,z14.d +.if mixin == 1 + eor w13,w13,w18 +.endif +.long 0x04a231ad //eor z13.d,z13.d,z2.d +.if mixin == 1 + eor w14,w14,w15 +.endif +.long 0x04a63021 //eor z1.d,z1.d,z6.d +.if mixin == 1 + eor w11,w11,w16 +.endif +.long 0x046c9cb1 //lsl z17.s,z5.s,12 +.long 0x046c9d32 //lsl z18.s,z9.s,12 +.long 0x046c9db3 //lsl z19.s,z13.s,12 +.long 0x046c9c34 //lsl z20.s,z1.s,12 +.long 0x046c94a5 //lsr z5.s,z5.s,20 +.if mixin == 1 + ror w12,w12,20 +.endif +.long 0x046c9529 //lsr z9.s,z9.s,20 +.if mixin == 1 + ror w13,w13,20 +.endif +.long 0x046c95ad //lsr z13.s,z13.s,20 +.if mixin == 1 + ror w14,w14,20 +.endif +.long 0x046c9421 //lsr z1.s,z1.s,20 +.if mixin == 1 + ror w11,w11,20 +.endif +.long 0x047130a5 //orr z5.d,z5.d,z17.d +.long 0x04723129 //orr z9.d,z9.d,z18.d +.long 0x047331ad //orr z13.d,z13.d,z19.d +.long 0x04743021 //orr z1.d,z1.d,z20.d +.long 0x04a50000 //add z0.s,z0.s,z5.s +.if mixin == 1 + add w7,w7,w12 +.endif +.long 0x04a90084 //add z4.s,z4.s,z9.s +.if mixin == 1 + add w8,w8,w13 +.endif +.long 0x04ad0108 //add z8.s,z8.s,z13.s +.if mixin == 1 + add w9,w9,w14 +.endif +.long 0x04a1018c //add z12.s,z12.s,z1.s +.if mixin == 1 + add w10,w10,w11 +.endif +.long 0x04a031ef //eor z15.d,z15.d,z0.d +.if mixin == 1 + eor w22,w22,w7 +.endif +.long 0x04a43063 //eor z3.d,z3.d,z4.d +.if mixin == 1 + eor w19,w19,w8 +.endif +.long 0x04a830e7 //eor z7.d,z7.d,z8.d +.if mixin == 1 + eor w20,w20,w9 +.endif +.long 0x04ac316b //eor z11.d,z11.d,z12.d +.if mixin == 1 + eor w21,w21,w10 +.endif +.long 0x053f31ef //tbl z15.b,{z15.b},z31.b +.if mixin == 1 + ror w22,w22,#24 +.endif +.long 0x053f3063 //tbl z3.b,{z3.b},z31.b +.if mixin == 1 + ror w19,w19,#24 +.endif +.long 0x053f30e7 //tbl z7.b,{z7.b},z31.b +.if mixin == 1 + ror w20,w20,#24 +.endif +.long 0x053f316b //tbl z11.b,{z11.b},z31.b +.if mixin == 1 + ror w21,w21,#24 +.endif +.long 0x04af014a //add z10.s,z10.s,z15.s +.if mixin == 1 + add w17,w17,w22 +.endif +.long 0x04a301ce //add z14.s,z14.s,z3.s +.if mixin == 1 + add w18,w18,w19 +.endif +.long 0x04a70042 //add z2.s,z2.s,z7.s +.if mixin == 1 + add w15,w15,w20 +.endif +.long 0x04ab00c6 //add z6.s,z6.s,z11.s +.if mixin == 1 + add w16,w16,w21 +.endif +.long 0x04aa30a5 //eor z5.d,z5.d,z10.d +.if mixin == 1 + eor w12,w12,w17 +.endif +.long 0x04ae3129 //eor z9.d,z9.d,z14.d +.if mixin == 1 + eor w13,w13,w18 +.endif +.long 0x04a231ad //eor z13.d,z13.d,z2.d +.if mixin == 1 + eor w14,w14,w15 +.endif +.long 0x04a63021 //eor z1.d,z1.d,z6.d +.if mixin == 1 + eor w11,w11,w16 +.endif +.long 0x04679cb1 //lsl z17.s,z5.s,7 +.long 0x04679d32 //lsl z18.s,z9.s,7 +.long 0x04679db3 //lsl z19.s,z13.s,7 +.long 0x04679c34 //lsl z20.s,z1.s,7 +.long 0x046794a5 //lsr z5.s,z5.s,25 +.if mixin == 1 + ror w12,w12,25 +.endif +.long 0x04679529 //lsr z9.s,z9.s,25 +.if mixin == 1 + ror w13,w13,25 +.endif +.long 0x046795ad //lsr z13.s,z13.s,25 +.if mixin == 1 + ror w14,w14,25 +.endif +.long 0x04679421 //lsr z1.s,z1.s,25 +.if mixin == 1 + ror w11,w11,25 +.endif +.long 0x047130a5 //orr z5.d,z5.d,z17.d +.long 0x04723129 //orr z9.d,z9.d,z18.d +.long 0x047331ad //orr z13.d,z13.d,z19.d +.long 0x04743021 //orr z1.d,z1.d,z20.d + sub x6,x6,1 + cbnz x6,10b + lsr x6,x28,#32 +.long 0x05a03b91 //dup z17.s,w28 +.long 0x05a038d2 //dup z18.s,w6 + lsr x6,x29,#32 +.long 0x05a038d3 //dup z19.s,w6 + lsr x6,x30,#32 +.if mixin == 1 + add w7,w7,w23 +.endif +.long 0x04b90000 //add z0.s,z0.s,z25.s +.if mixin == 1 + add x8,x8,x23,lsr #32 +.endif +.long 0x04ba0084 //add z4.s,z4.s,z26.s +.if mixin == 1 + add x7,x7,x8,lsl #32 // pack +.endif +.if mixin == 1 + add w9,w9,w24 +.endif +.long 0x04bb0108 //add z8.s,z8.s,z27.s +.if mixin == 1 + add x10,x10,x24,lsr #32 +.endif +.long 0x04bc018c //add z12.s,z12.s,z28.s +.if mixin == 1 + add x9,x9,x10,lsl #32 // pack +.endif +.if mixin == 1 + ldp x8,x10,[x1],#16 +.endif +.if mixin == 1 + add w11,w11,w25 +.endif +.long 0x04bd0021 //add z1.s,z1.s,z29.s +.if mixin == 1 + add x12,x12,x25,lsr #32 +.endif +.long 0x04be00a5 //add z5.s,z5.s,z30.s +.if mixin == 1 + add x11,x11,x12,lsl #32 // pack +.endif +.if mixin == 1 + add w13,w13,w26 +.endif +.long 0x04b50129 //add z9.s,z9.s,z21.s +.if mixin == 1 + add x14,x14,x26,lsr #32 +.endif +.long 0x04b601ad //add z13.s,z13.s,z22.s +.if mixin == 1 + add x13,x13,x14,lsl #32 // pack +.endif +.if mixin == 1 + ldp x12,x14,[x1],#16 +.endif +.if mixin == 1 + add w15,w15,w27 +.endif +.long 0x04b70042 //add z2.s,z2.s,z23.s +.if mixin == 1 + add x16,x16,x27,lsr #32 +.endif +.long 0x04b800c6 //add z6.s,z6.s,z24.s +.if mixin == 1 + add x15,x15,x16,lsl #32 // pack +.endif +.if mixin == 1 + add w17,w17,w28 +.endif +.long 0x04b1014a //add z10.s,z10.s,z17.s +.if mixin == 1 + add x18,x18,x28,lsr #32 +.endif +.long 0x04b201ce //add z14.s,z14.s,z18.s +.if mixin == 1 + add x17,x17,x18,lsl #32 // pack +.endif +.if mixin == 1 + ldp x16,x18,[x1],#16 +.endif +.long 0x05a03bd4 //dup z20.s,w30 +.long 0x05a038d9 //dup z25.s,w6 // bak[15] not available for SVE +.if mixin == 1 + add w19,w19,w29 +.endif +.long 0x04b00063 //add z3.s,z3.s,z16.s +.if mixin == 1 + add x20,x20,x29,lsr #32 +.endif +.long 0x04b300e7 //add z7.s,z7.s,z19.s +.if mixin == 1 + add x19,x19,x20,lsl #32 // pack +.endif +.if mixin == 1 + add w21,w21,w30 +.endif +.long 0x04b4016b //add z11.s,z11.s,z20.s +.if mixin == 1 + add x22,x22,x30,lsr #32 +.endif +.long 0x04b901ef //add z15.s,z15.s,z25.s +.if mixin == 1 + add x21,x21,x22,lsl #32 // pack +.endif +.if mixin == 1 + ldp x20,x22,[x1],#16 +.endif +#ifdef __AARCH64EB__ + rev x7,x7 +.long 0x05a48000 //revb z0.s,p0/m,z0.s +.long 0x05a48084 //revb z4.s,p0/m,z4.s + rev x9,x9 +.long 0x05a48108 //revb z8.s,p0/m,z8.s +.long 0x05a4818c //revb z12.s,p0/m,z12.s + rev x11,x11 +.long 0x05a48021 //revb z1.s,p0/m,z1.s +.long 0x05a480a5 //revb z5.s,p0/m,z5.s + rev x13,x13 +.long 0x05a48129 //revb z9.s,p0/m,z9.s +.long 0x05a481ad //revb z13.s,p0/m,z13.s + rev x15,x15 +.long 0x05a48042 //revb z2.s,p0/m,z2.s +.long 0x05a480c6 //revb z6.s,p0/m,z6.s + rev x17,x17 +.long 0x05a4814a //revb z10.s,p0/m,z10.s +.long 0x05a481ce //revb z14.s,p0/m,z14.s + rev x19,x19 +.long 0x05a48063 //revb z3.s,p0/m,z3.s +.long 0x05a480e7 //revb z7.s,p0/m,z7.s + rev x21,x21 +.long 0x05a4816b //revb z11.s,p0/m,z11.s +.long 0x05a481ef //revb z15.s,p0/m,z15.s +#endif +.if mixin == 1 + add x29,x29,#1 +.endif + cmp x5,4 + b.ne 200f +.if mixin == 1 + eor x7,x7,x8 +.endif +.if mixin == 1 + eor x9,x9,x10 +.endif +.if mixin == 1 + eor x11,x11,x12 +.endif +.long 0x05a46011 //zip1 z17.s,z0.s,z4.s +.long 0x05a46412 //zip2 z18.s,z0.s,z4.s +.long 0x05ac6113 //zip1 z19.s,z8.s,z12.s +.long 0x05ac6514 //zip2 z20.s,z8.s,z12.s + +.long 0x05a56035 //zip1 z21.s,z1.s,z5.s +.long 0x05a56436 //zip2 z22.s,z1.s,z5.s +.long 0x05ad6137 //zip1 z23.s,z9.s,z13.s +.long 0x05ad6538 //zip2 z24.s,z9.s,z13.s + +.long 0x05f36220 //zip1 z0.d,z17.d,z19.d +.long 0x05f36624 //zip2 z4.d,z17.d,z19.d +.long 0x05f46248 //zip1 z8.d,z18.d,z20.d +.long 0x05f4664c //zip2 z12.d,z18.d,z20.d + +.long 0x05f762a1 //zip1 z1.d,z21.d,z23.d +.long 0x05f766a5 //zip2 z5.d,z21.d,z23.d +.long 0x05f862c9 //zip1 z9.d,z22.d,z24.d +.long 0x05f866cd //zip2 z13.d,z22.d,z24.d +.if mixin == 1 + eor x13,x13,x14 +.endif +.if mixin == 1 + eor x15,x15,x16 +.endif +.if mixin == 1 + eor x17,x17,x18 +.endif +.long 0x05a66051 //zip1 z17.s,z2.s,z6.s +.long 0x05a66452 //zip2 z18.s,z2.s,z6.s +.long 0x05ae6153 //zip1 z19.s,z10.s,z14.s +.long 0x05ae6554 //zip2 z20.s,z10.s,z14.s + +.long 0x05a76075 //zip1 z21.s,z3.s,z7.s +.long 0x05a76476 //zip2 z22.s,z3.s,z7.s +.long 0x05af6177 //zip1 z23.s,z11.s,z15.s +.long 0x05af6578 //zip2 z24.s,z11.s,z15.s + +.long 0x05f36222 //zip1 z2.d,z17.d,z19.d +.long 0x05f36626 //zip2 z6.d,z17.d,z19.d +.long 0x05f4624a //zip1 z10.d,z18.d,z20.d +.long 0x05f4664e //zip2 z14.d,z18.d,z20.d + +.long 0x05f762a3 //zip1 z3.d,z21.d,z23.d +.long 0x05f766a7 //zip2 z7.d,z21.d,z23.d +.long 0x05f862cb //zip1 z11.d,z22.d,z24.d +.long 0x05f866cf //zip2 z15.d,z22.d,z24.d +.if mixin == 1 + eor x19,x19,x20 +.endif +.if mixin == 1 + eor x21,x21,x22 +.endif + ld1 {v17.4s,v18.4s,v19.4s,v20.4s},[x1],#64 + ld1 {v21.4s,v22.4s,v23.4s,v24.4s},[x1],#64 +.long 0x04b13000 //eor z0.d,z0.d,z17.d +.long 0x04b23021 //eor z1.d,z1.d,z18.d +.long 0x04b33042 //eor z2.d,z2.d,z19.d +.long 0x04b43063 //eor z3.d,z3.d,z20.d +.long 0x04b53084 //eor z4.d,z4.d,z21.d +.long 0x04b630a5 //eor z5.d,z5.d,z22.d +.long 0x04b730c6 //eor z6.d,z6.d,z23.d +.long 0x04b830e7 //eor z7.d,z7.d,z24.d + ld1 {v17.4s,v18.4s,v19.4s,v20.4s},[x1],#64 + ld1 {v21.4s,v22.4s,v23.4s,v24.4s},[x1],#64 +.if mixin == 1 + stp x7,x9,[x0],#16 +.endif +.long 0x04b13108 //eor z8.d,z8.d,z17.d +.long 0x04b23129 //eor z9.d,z9.d,z18.d +.if mixin == 1 + stp x11,x13,[x0],#16 +.endif +.long 0x04b3314a //eor z10.d,z10.d,z19.d +.long 0x04b4316b //eor z11.d,z11.d,z20.d +.if mixin == 1 + stp x15,x17,[x0],#16 +.endif +.long 0x04b5318c //eor z12.d,z12.d,z21.d +.long 0x04b631ad //eor z13.d,z13.d,z22.d +.if mixin == 1 + stp x19,x21,[x0],#16 +.endif +.long 0x04b731ce //eor z14.d,z14.d,z23.d +.long 0x04b831ef //eor z15.d,z15.d,z24.d + st1 {v0.4s,v1.4s,v2.4s,v3.4s},[x0],#64 + st1 {v4.4s,v5.4s,v6.4s,v7.4s},[x0],#64 + st1 {v8.4s,v9.4s,v10.4s,v11.4s},[x0],#64 + st1 {v12.4s,v13.4s,v14.4s,v15.4s},[x0],#64 + b 210f +200: +.long 0x05a16011 //zip1 z17.s,z0.s,z1.s +.long 0x05a16412 //zip2 z18.s,z0.s,z1.s +.long 0x05a36053 //zip1 z19.s,z2.s,z3.s +.long 0x05a36454 //zip2 z20.s,z2.s,z3.s + +.long 0x05a56095 //zip1 z21.s,z4.s,z5.s +.long 0x05a56496 //zip2 z22.s,z4.s,z5.s +.long 0x05a760d7 //zip1 z23.s,z6.s,z7.s +.long 0x05a764d8 //zip2 z24.s,z6.s,z7.s + +.long 0x05f36220 //zip1 z0.d,z17.d,z19.d +.long 0x05f36621 //zip2 z1.d,z17.d,z19.d +.long 0x05f46242 //zip1 z2.d,z18.d,z20.d +.long 0x05f46643 //zip2 z3.d,z18.d,z20.d + +.long 0x05f762a4 //zip1 z4.d,z21.d,z23.d +.long 0x05f766a5 //zip2 z5.d,z21.d,z23.d +.long 0x05f862c6 //zip1 z6.d,z22.d,z24.d +.long 0x05f866c7 //zip2 z7.d,z22.d,z24.d +.if mixin == 1 + eor x7,x7,x8 +.endif +.if mixin == 1 + eor x9,x9,x10 +.endif +.long 0x05a96111 //zip1 z17.s,z8.s,z9.s +.long 0x05a96512 //zip2 z18.s,z8.s,z9.s +.long 0x05ab6153 //zip1 z19.s,z10.s,z11.s +.long 0x05ab6554 //zip2 z20.s,z10.s,z11.s + +.long 0x05ad6195 //zip1 z21.s,z12.s,z13.s +.long 0x05ad6596 //zip2 z22.s,z12.s,z13.s +.long 0x05af61d7 //zip1 z23.s,z14.s,z15.s +.long 0x05af65d8 //zip2 z24.s,z14.s,z15.s + +.long 0x05f36228 //zip1 z8.d,z17.d,z19.d +.long 0x05f36629 //zip2 z9.d,z17.d,z19.d +.long 0x05f4624a //zip1 z10.d,z18.d,z20.d +.long 0x05f4664b //zip2 z11.d,z18.d,z20.d + +.long 0x05f762ac //zip1 z12.d,z21.d,z23.d +.long 0x05f766ad //zip2 z13.d,z21.d,z23.d +.long 0x05f862ce //zip1 z14.d,z22.d,z24.d +.long 0x05f866cf //zip2 z15.d,z22.d,z24.d +.if mixin == 1 + eor x11,x11,x12 +.endif +.if mixin == 1 + eor x13,x13,x14 +.endif +.long 0x05a46011 //zip1 z17.s,z0.s,z4.s +.long 0x05a46412 //zip2 z18.s,z0.s,z4.s +.long 0x05ac6113 //zip1 z19.s,z8.s,z12.s +.long 0x05ac6514 //zip2 z20.s,z8.s,z12.s + +.long 0x05a56035 //zip1 z21.s,z1.s,z5.s +.long 0x05a56436 //zip2 z22.s,z1.s,z5.s +.long 0x05ad6137 //zip1 z23.s,z9.s,z13.s +.long 0x05ad6538 //zip2 z24.s,z9.s,z13.s + +.long 0x05f36220 //zip1 z0.d,z17.d,z19.d +.long 0x05f36624 //zip2 z4.d,z17.d,z19.d +.long 0x05f46248 //zip1 z8.d,z18.d,z20.d +.long 0x05f4664c //zip2 z12.d,z18.d,z20.d + +.long 0x05f762a1 //zip1 z1.d,z21.d,z23.d +.long 0x05f766a5 //zip2 z5.d,z21.d,z23.d +.long 0x05f862c9 //zip1 z9.d,z22.d,z24.d +.long 0x05f866cd //zip2 z13.d,z22.d,z24.d +.if mixin == 1 + eor x15,x15,x16 +.endif +.if mixin == 1 + eor x17,x17,x18 +.endif +.long 0x05a66051 //zip1 z17.s,z2.s,z6.s +.long 0x05a66452 //zip2 z18.s,z2.s,z6.s +.long 0x05ae6153 //zip1 z19.s,z10.s,z14.s +.long 0x05ae6554 //zip2 z20.s,z10.s,z14.s + +.long 0x05a76075 //zip1 z21.s,z3.s,z7.s +.long 0x05a76476 //zip2 z22.s,z3.s,z7.s +.long 0x05af6177 //zip1 z23.s,z11.s,z15.s +.long 0x05af6578 //zip2 z24.s,z11.s,z15.s + +.long 0x05f36222 //zip1 z2.d,z17.d,z19.d +.long 0x05f36626 //zip2 z6.d,z17.d,z19.d +.long 0x05f4624a //zip1 z10.d,z18.d,z20.d +.long 0x05f4664e //zip2 z14.d,z18.d,z20.d + +.long 0x05f762a3 //zip1 z3.d,z21.d,z23.d +.long 0x05f766a7 //zip2 z7.d,z21.d,z23.d +.long 0x05f862cb //zip1 z11.d,z22.d,z24.d +.long 0x05f866cf //zip2 z15.d,z22.d,z24.d +.if mixin == 1 + eor x19,x19,x20 +.endif +.if mixin == 1 + eor x21,x21,x22 +.endif +.long 0xa540a031 //ld1w {z17.s},p0/z,[x1,#0,MUL VL] +.long 0xa541a032 //ld1w {z18.s},p0/z,[x1,#1,MUL VL] +.long 0xa542a033 //ld1w {z19.s},p0/z,[x1,#2,MUL VL] +.long 0xa543a034 //ld1w {z20.s},p0/z,[x1,#3,MUL VL] +.long 0xa544a035 //ld1w {z21.s},p0/z,[x1,#4,MUL VL] +.long 0xa545a036 //ld1w {z22.s},p0/z,[x1,#5,MUL VL] +.long 0xa546a037 //ld1w {z23.s},p0/z,[x1,#6,MUL VL] +.long 0xa547a038 //ld1w {z24.s},p0/z,[x1,#7,MUL VL] +.long 0x04215101 //addvl x1,x1,8 +.long 0x04b13000 //eor z0.d,z0.d,z17.d +.long 0x04b23084 //eor z4.d,z4.d,z18.d +.long 0x04b33108 //eor z8.d,z8.d,z19.d +.long 0x04b4318c //eor z12.d,z12.d,z20.d +.long 0x04b53021 //eor z1.d,z1.d,z21.d +.long 0x04b630a5 //eor z5.d,z5.d,z22.d +.long 0x04b73129 //eor z9.d,z9.d,z23.d +.long 0x04b831ad //eor z13.d,z13.d,z24.d +.long 0xa540a031 //ld1w {z17.s},p0/z,[x1,#0,MUL VL] +.long 0xa541a032 //ld1w {z18.s},p0/z,[x1,#1,MUL VL] +.long 0xa542a033 //ld1w {z19.s},p0/z,[x1,#2,MUL VL] +.long 0xa543a034 //ld1w {z20.s},p0/z,[x1,#3,MUL VL] +.long 0xa544a035 //ld1w {z21.s},p0/z,[x1,#4,MUL VL] +.long 0xa545a036 //ld1w {z22.s},p0/z,[x1,#5,MUL VL] +.long 0xa546a037 //ld1w {z23.s},p0/z,[x1,#6,MUL VL] +.long 0xa547a038 //ld1w {z24.s},p0/z,[x1,#7,MUL VL] +.long 0x04215101 //addvl x1,x1,8 +.if mixin == 1 + stp x7,x9,[x0],#16 +.endif +.long 0x04b13042 //eor z2.d,z2.d,z17.d +.long 0x04b230c6 //eor z6.d,z6.d,z18.d +.if mixin == 1 + stp x11,x13,[x0],#16 +.endif +.long 0x04b3314a //eor z10.d,z10.d,z19.d +.long 0x04b431ce //eor z14.d,z14.d,z20.d +.if mixin == 1 + stp x15,x17,[x0],#16 +.endif +.long 0x04b53063 //eor z3.d,z3.d,z21.d +.long 0x04b630e7 //eor z7.d,z7.d,z22.d +.if mixin == 1 + stp x19,x21,[x0],#16 +.endif +.long 0x04b7316b //eor z11.d,z11.d,z23.d +.long 0x04b831ef //eor z15.d,z15.d,z24.d +.long 0xe540e000 //st1w {z0.s},p0,[x0,#0,MUL VL] +.long 0xe541e004 //st1w {z4.s},p0,[x0,#1,MUL VL] +.long 0xe542e008 //st1w {z8.s},p0,[x0,#2,MUL VL] +.long 0xe543e00c //st1w {z12.s},p0,[x0,#3,MUL VL] +.long 0xe544e001 //st1w {z1.s},p0,[x0,#4,MUL VL] +.long 0xe545e005 //st1w {z5.s},p0,[x0,#5,MUL VL] +.long 0xe546e009 //st1w {z9.s},p0,[x0,#6,MUL VL] +.long 0xe547e00d //st1w {z13.s},p0,[x0,#7,MUL VL] +.long 0x04205100 //addvl x0,x0,8 +.long 0xe540e002 //st1w {z2.s},p0,[x0,#0,MUL VL] +.long 0xe541e006 //st1w {z6.s},p0,[x0,#1,MUL VL] +.long 0xe542e00a //st1w {z10.s},p0,[x0,#2,MUL VL] +.long 0xe543e00e //st1w {z14.s},p0,[x0,#3,MUL VL] +.long 0xe544e003 //st1w {z3.s},p0,[x0,#4,MUL VL] +.long 0xe545e007 //st1w {z7.s},p0,[x0,#5,MUL VL] +.long 0xe546e00b //st1w {z11.s},p0,[x0,#6,MUL VL] +.long 0xe547e00f //st1w {z15.s},p0,[x0,#7,MUL VL] +.long 0x04205100 //addvl x0,x0,8 +210: +.long 0x04b0e3fd //incw x29, ALL, MUL #1 +110: +2: + str w29,[x4] + ldp d10,d11,[sp,16] + ldp d12,d13,[sp,32] + ldp d14,d15,[sp,48] + ldp x16,x17,[sp,64] + ldp x18,x19,[sp,80] + ldp x20,x21,[sp,96] + ldp x22,x23,[sp,112] + ldp x24,x25,[sp,128] + ldp x26,x27,[sp,144] + ldp x28,x29,[sp,160] + ldr x30,[sp,176] + ldp d8,d9,[sp],192 + AARCH64_VALIDATE_LINK_REGISTER +Lreturn: + ret + diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/asm/crypto/chacha/chacha-armv8.S b/deps/openssl/config/archs/darwin64-arm64-cc/asm/crypto/chacha/chacha-armv8.S index 1374eb45042365..c4fc9c262998ff 100644 --- a/deps/openssl/config/archs/darwin64-arm64-cc/asm/crypto/chacha/chacha-armv8.S +++ b/deps/openssl/config/archs/darwin64-arm64-cc/asm/crypto/chacha/chacha-armv8.S @@ -1,10 +1,12 @@ +#include "arm_arch.h" #ifndef __KERNEL__ -# include "arm_arch.h" .private_extern _OPENSSL_armcap_P + + #endif -.text +.section __TEXT,__const .align 5 Lsigma: @@ -16,27 +18,29 @@ Lrot24: .byte 67,104,97,67,104,97,50,48,32,102,111,114,32,65,82,77,118,56,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,64,100,111,116,45,97,115,109,0 .align 2 -.globl _ChaCha20_ctr32 +.text + +.globl _ChaCha20_ctr32_dflt .align 5 -_ChaCha20_ctr32: - cbz x2,Labort +_ChaCha20_ctr32_dflt: + AARCH64_SIGN_LINK_REGISTER cmp x2,#192 b.lo Lshort - #ifndef __KERNEL__ adrp x17,_OPENSSL_armcap_P@PAGE ldr w17,[x17,_OPENSSL_armcap_P@PAGEOFF] +Lcheck_neon: tst w17,#ARMV7_NEON b.ne LChaCha20_neon #endif Lshort: -.long 0xd503233f // paciasp stp x29,x30,[sp,#-96]! add x29,sp,#0 - adr x5,Lsigma + adrp x5,Lsigma@PAGE + add x5,x5,Lsigma@PAGEOFF stp x19,x20,[sp,#16] stp x21,x22,[sp,#32] stp x23,x24,[sp,#48] @@ -244,8 +248,8 @@ Loop: ldp x25,x26,[x29,#64] ldp x27,x28,[x29,#80] ldp x29,x30,[sp],#96 -.long 0xd50323bf // autiasp Labort: + AARCH64_VALIDATE_LINK_REGISTER ret .align 4 @@ -301,22 +305,58 @@ Loop_tail: ldp x25,x26,[x29,#64] ldp x27,x28,[x29,#80] ldp x29,x30,[sp],#96 -.long 0xd50323bf // autiasp + AARCH64_VALIDATE_LINK_REGISTER ret +.globl _ChaCha20_ctr32 + +.align 5 +_ChaCha20_ctr32: + AARCH64_SIGN_LINK_REGISTER + cbz x2,Labort + cmp x2,#192 + b.lo Lshort +#ifndef __KERNEL__ + adrp x17,_OPENSSL_armcap_P@PAGE + ldr w17,[x17,_OPENSSL_armcap_P@PAGEOFF] + tst w17,#ARMV8_SVE + b.eq Lcheck_neon + stp x29,x30,[sp,#-16]! + sub sp,sp,#16 + // SVE handling will inevitably increment the counter + // Neon/Scalar code that follows to process tail data needs to + // use new counter, unfortunately the input counter buffer + // pointed to by ctr is meant to be read-only per API contract + // we have to copy the buffer to stack to be writable by SVE + ldp x5,x6,[x4] + stp x5,x6,[sp] + mov x4,sp + bl _ChaCha20_ctr32_sve + cbz x2,1f + bl _ChaCha20_ctr32_dflt +1: + add sp,sp,#16 + ldp x29,x30,[sp],#16 + AARCH64_VALIDATE_LINK_REGISTER + ret +#endif + b Lshort + + #ifdef __KERNEL__ .globl _ChaCha20_neon #endif .align 5 _ChaCha20_neon: + AARCH64_SIGN_LINK_REGISTER LChaCha20_neon: -.long 0xd503233f // paciasp stp x29,x30,[sp,#-96]! add x29,sp,#0 - adr x5,Lsigma + adrp x5,Lsigma@PAGE + add x5,x5,Lsigma@PAGEOFF stp x19,x20,[sp,#16] stp x21,x22,[sp,#32] stp x23,x24,[sp,#48] @@ -747,7 +787,7 @@ Loop_neon: ldp x25,x26,[x29,#64] ldp x27,x28,[x29,#80] ldp x29,x30,[sp],#96 -.long 0xd50323bf // autiasp + AARCH64_VALIDATE_LINK_REGISTER ret .align 4 @@ -879,17 +919,18 @@ Ldone_neon: ldp x25,x26,[x29,#64] ldp x27,x28,[x29,#80] ldp x29,x30,[sp],#96 -.long 0xd50323bf // autiasp + AARCH64_VALIDATE_LINK_REGISTER ret .align 5 ChaCha20_512_neon: -.long 0xd503233f // paciasp + AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-96]! add x29,sp,#0 - adr x5,Lsigma + adrp x5,Lsigma@PAGE + add x5,x5,Lsigma@PAGEOFF stp x19,x20,[sp,#16] stp x21,x22,[sp,#32] stp x23,x24,[sp,#48] @@ -2029,6 +2070,6 @@ Ldone_512_neon: ldp x25,x26,[x29,#64] ldp x27,x28,[x29,#80] ldp x29,x30,[sp],#96 -.long 0xd50323bf // autiasp + AARCH64_VALIDATE_LINK_REGISTER ret diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/asm/crypto/ec/ecp_nistz256-armv8.S b/deps/openssl/config/archs/darwin64-arm64-cc/asm/crypto/ec/ecp_nistz256-armv8.S index 8bbfa9ea709381..5a7ef2ab3b6693 100644 --- a/deps/openssl/config/archs/darwin64-arm64-cc/asm/crypto/ec/ecp_nistz256-armv8.S +++ b/deps/openssl/config/archs/darwin64-arm64-cc/asm/crypto/ec/ecp_nistz256-armv8.S @@ -1,6 +1,6 @@ #include "arm_arch.h" -.text +.section __TEXT,__const .globl _ecp_nistz256_precomputed .align 12 @@ -2390,28 +2390,34 @@ LordK: .byte 69,67,80,95,78,73,83,84,90,50,53,54,32,102,111,114,32,65,82,77,118,56,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 .align 2 +.text + // void ecp_nistz256_to_mont(BN_ULONG x0[4],const BN_ULONG x1[4]); .globl _ecp_nistz256_to_mont .align 6 _ecp_nistz256_to_mont: -.long 0xd503233f // paciasp + AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-32]! add x29,sp,#0 stp x19,x20,[sp,#16] - ldr x3,LRR // bp[0] + adrp x3,LRR@PAGE + ldr x3,[x3,LRR@PAGEOFF] // bp[0] ldp x4,x5,[x1] ldp x6,x7,[x1,#16] - ldr x12,Lpoly+8 - ldr x13,Lpoly+24 - adr x2,LRR // &bp[0] + adrp x13,Lpoly@PAGE + add x13,x13,Lpoly@PAGEOFF + ldr x12,[x13,#8] + ldr x13,[x13,#24] + adrp x2,LRR@PAGE + add x2,x2,LRR@PAGEOFF bl __ecp_nistz256_mul_mont ldp x19,x20,[sp,#16] ldp x29,x30,[sp],#32 -.long 0xd50323bf // autiasp + AARCH64_VALIDATE_LINK_REGISTER ret @@ -2420,7 +2426,7 @@ _ecp_nistz256_to_mont: .align 4 _ecp_nistz256_from_mont: -.long 0xd503233f // paciasp + AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-32]! add x29,sp,#0 stp x19,x20,[sp,#16] @@ -2428,15 +2434,18 @@ _ecp_nistz256_from_mont: mov x3,#1 // bp[0] ldp x4,x5,[x1] ldp x6,x7,[x1,#16] - ldr x12,Lpoly+8 - ldr x13,Lpoly+24 - adr x2,Lone // &bp[0] + adrp x13,Lpoly@PAGE + add x13,x13,Lpoly@PAGEOFF + ldr x12,[x13,#8] + ldr x13,[x13,#24] + adrp x2,Lone@PAGE + add x2,x2,Lone@PAGEOFF bl __ecp_nistz256_mul_mont ldp x19,x20,[sp,#16] ldp x29,x30,[sp],#32 -.long 0xd50323bf // autiasp + AARCH64_VALIDATE_LINK_REGISTER ret @@ -2446,7 +2455,7 @@ _ecp_nistz256_from_mont: .align 4 _ecp_nistz256_mul_mont: -.long 0xd503233f // paciasp + AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-32]! add x29,sp,#0 stp x19,x20,[sp,#16] @@ -2454,14 +2463,16 @@ _ecp_nistz256_mul_mont: ldr x3,[x2] // bp[0] ldp x4,x5,[x1] ldp x6,x7,[x1,#16] - ldr x12,Lpoly+8 - ldr x13,Lpoly+24 + adrp x13,Lpoly@PAGE + add x13,x13,Lpoly@PAGEOFF + ldr x12,[x13,#8] + ldr x13,[x13,#24] bl __ecp_nistz256_mul_mont ldp x19,x20,[sp,#16] ldp x29,x30,[sp],#32 -.long 0xd50323bf // autiasp + AARCH64_VALIDATE_LINK_REGISTER ret @@ -2470,21 +2481,23 @@ _ecp_nistz256_mul_mont: .align 4 _ecp_nistz256_sqr_mont: -.long 0xd503233f // paciasp + AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-32]! add x29,sp,#0 stp x19,x20,[sp,#16] ldp x4,x5,[x1] ldp x6,x7,[x1,#16] - ldr x12,Lpoly+8 - ldr x13,Lpoly+24 + adrp x13,Lpoly@PAGE + add x13,x13,Lpoly@PAGEOFF + ldr x12,[x13,#8] + ldr x13,[x13,#24] bl __ecp_nistz256_sqr_mont ldp x19,x20,[sp,#16] ldp x29,x30,[sp],#32 -.long 0xd50323bf // autiasp + AARCH64_VALIDATE_LINK_REGISTER ret @@ -2494,7 +2507,7 @@ _ecp_nistz256_sqr_mont: .align 4 _ecp_nistz256_add: -.long 0xd503233f // paciasp + AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-16]! add x29,sp,#0 @@ -2502,13 +2515,15 @@ _ecp_nistz256_add: ldp x8,x9,[x2] ldp x16,x17,[x1,#16] ldp x10,x11,[x2,#16] - ldr x12,Lpoly+8 - ldr x13,Lpoly+24 + adrp x13,Lpoly@PAGE + add x13,x13,Lpoly@PAGEOFF + ldr x12,[x13,#8] + ldr x13,[x13,#24] bl __ecp_nistz256_add ldp x29,x30,[sp],#16 -.long 0xd50323bf // autiasp + AARCH64_VALIDATE_LINK_REGISTER ret @@ -2517,19 +2532,21 @@ _ecp_nistz256_add: .align 4 _ecp_nistz256_div_by_2: -.long 0xd503233f // paciasp + AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-16]! add x29,sp,#0 ldp x14,x15,[x1] ldp x16,x17,[x1,#16] - ldr x12,Lpoly+8 - ldr x13,Lpoly+24 + adrp x13,Lpoly@PAGE + add x13,x13,Lpoly@PAGEOFF + ldr x12,[x13,#8] + ldr x13,[x13,#24] bl __ecp_nistz256_div_by_2 ldp x29,x30,[sp],#16 -.long 0xd50323bf // autiasp + AARCH64_VALIDATE_LINK_REGISTER ret @@ -2538,14 +2555,16 @@ _ecp_nistz256_div_by_2: .align 4 _ecp_nistz256_mul_by_2: -.long 0xd503233f // paciasp + AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-16]! add x29,sp,#0 ldp x14,x15,[x1] ldp x16,x17,[x1,#16] - ldr x12,Lpoly+8 - ldr x13,Lpoly+24 + adrp x13,Lpoly@PAGE + add x13,x13,Lpoly@PAGEOFF + ldr x12,[x13,#8] + ldr x13,[x13,#24] mov x8,x14 mov x9,x15 mov x10,x16 @@ -2554,7 +2573,7 @@ _ecp_nistz256_mul_by_2: bl __ecp_nistz256_add // ret = a+a // 2*a ldp x29,x30,[sp],#16 -.long 0xd50323bf // autiasp + AARCH64_VALIDATE_LINK_REGISTER ret @@ -2563,14 +2582,16 @@ _ecp_nistz256_mul_by_2: .align 4 _ecp_nistz256_mul_by_3: -.long 0xd503233f // paciasp + AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-16]! add x29,sp,#0 ldp x14,x15,[x1] ldp x16,x17,[x1,#16] - ldr x12,Lpoly+8 - ldr x13,Lpoly+24 + adrp x13,Lpoly@PAGE + add x13,x13,Lpoly@PAGEOFF + ldr x12,[x13,#8] + ldr x13,[x13,#24] mov x8,x14 mov x9,x15 mov x10,x16 @@ -2590,7 +2611,7 @@ _ecp_nistz256_mul_by_3: bl __ecp_nistz256_add // ret += a // 2*a+a=3*a ldp x29,x30,[sp],#16 -.long 0xd50323bf // autiasp + AARCH64_VALIDATE_LINK_REGISTER ret @@ -2600,19 +2621,21 @@ _ecp_nistz256_mul_by_3: .align 4 _ecp_nistz256_sub: -.long 0xd503233f // paciasp + AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-16]! add x29,sp,#0 ldp x14,x15,[x1] ldp x16,x17,[x1,#16] - ldr x12,Lpoly+8 - ldr x13,Lpoly+24 + adrp x13,Lpoly@PAGE + add x13,x13,Lpoly@PAGEOFF + ldr x12,[x13,#8] + ldr x13,[x13,#24] bl __ecp_nistz256_sub_from ldp x29,x30,[sp],#16 -.long 0xd50323bf // autiasp + AARCH64_VALIDATE_LINK_REGISTER ret @@ -2621,7 +2644,7 @@ _ecp_nistz256_sub: .align 4 _ecp_nistz256_neg: -.long 0xd503233f // paciasp + AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-16]! add x29,sp,#0 @@ -2630,13 +2653,15 @@ _ecp_nistz256_neg: mov x15,xzr mov x16,xzr mov x17,xzr - ldr x12,Lpoly+8 - ldr x13,Lpoly+24 + adrp x13,Lpoly@PAGE + add x13,x13,Lpoly@PAGEOFF + ldr x12,[x13,#8] + ldr x13,[x13,#24] bl __ecp_nistz256_sub_from ldp x29,x30,[sp],#16 -.long 0xd50323bf // autiasp + AARCH64_VALIDATE_LINK_REGISTER ret @@ -3014,7 +3039,7 @@ __ecp_nistz256_div_by_2: .align 5 _ecp_nistz256_point_double: -.long 0xd503233f // paciasp + AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-96]! add x29,sp,#0 stp x19,x20,[sp,#16] @@ -3026,9 +3051,11 @@ Ldouble_shortcut: mov x21,x0 ldp x16,x17,[x1,#48] mov x22,x1 - ldr x12,Lpoly+8 + adrp x13,Lpoly@PAGE + add x13,x13,Lpoly@PAGEOFF + ldr x12,[x13,#8] mov x8,x14 - ldr x13,Lpoly+24 + ldr x13,[x13,#24] mov x9,x15 ldp x4,x5,[x22,#64] // forward load for p256_sqr_mont mov x10,x16 @@ -3149,14 +3176,14 @@ Ldouble_shortcut: ldp x19,x20,[x29,#16] ldp x21,x22,[x29,#32] ldp x29,x30,[sp],#96 -.long 0xd50323bf // autiasp + AARCH64_VALIDATE_LINK_REGISTER ret .globl _ecp_nistz256_point_add .align 5 _ecp_nistz256_point_add: -.long 0xd503233f // paciasp + AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-96]! add x29,sp,#0 stp x19,x20,[sp,#16] @@ -3171,8 +3198,10 @@ _ecp_nistz256_point_add: mov x21,x0 mov x22,x1 mov x23,x2 - ldr x12,Lpoly+8 - ldr x13,Lpoly+24 + adrp x13,Lpoly@PAGE + add x13,x13,Lpoly@PAGEOFF + ldr x12,[x13,#8] + ldr x13,[x13,#24] orr x8,x4,x5 orr x10,x6,x7 orr x25,x8,x10 @@ -3403,14 +3432,14 @@ Ladd_done: ldp x25,x26,[x29,#64] ldp x27,x28,[x29,#80] ldp x29,x30,[sp],#96 -.long 0xd50323bf // autiasp + AARCH64_VALIDATE_LINK_REGISTER ret .globl _ecp_nistz256_point_add_affine .align 5 _ecp_nistz256_point_add_affine: -.long 0xd503233f // paciasp + AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-80]! add x29,sp,#0 stp x19,x20,[sp,#16] @@ -3422,8 +3451,10 @@ _ecp_nistz256_point_add_affine: mov x21,x0 mov x22,x1 mov x23,x2 - ldr x12,Lpoly+8 - ldr x13,Lpoly+24 + adrp x13,Lpoly@PAGE + add x13,x13,Lpoly@PAGEOFF + ldr x12,[x13,#8] + ldr x13,[x13,#24] ldp x4,x5,[x1,#64] // in1_z ldp x6,x7,[x1,#64+16] @@ -3569,7 +3600,8 @@ _ecp_nistz256_point_add_affine: ldp x10,x11,[x23,#0+48] stp x14,x15,[x21,#0] stp x16,x17,[x21,#0+16] - adr x23,Lone_mont-64 + adrp x23,Lone_mont-64@PAGE + add x23,x23,Lone_mont@PAGEOFF-64 ldp x14,x15,[x22,#32] // in1 cmp x24,#0 // ~, remember? ldp x16,x17,[x22,#32+16] @@ -3609,7 +3641,7 @@ _ecp_nistz256_point_add_affine: ldp x23,x24,[x29,#48] ldp x25,x26,[x29,#64] ldp x29,x30,[sp],#80 -.long 0xd50323bf // autiasp + AARCH64_VALIDATE_LINK_REGISTER ret //////////////////////////////////////////////////////////////////////// @@ -3619,13 +3651,16 @@ _ecp_nistz256_point_add_affine: .align 4 _ecp_nistz256_ord_mul_mont: + AARCH64_VALID_CALL_TARGET + // Armv8.3-A PAuth: even though x30 is pushed to stack it is not popped later. stp x29,x30,[sp,#-64]! add x29,sp,#0 stp x19,x20,[sp,#16] stp x21,x22,[sp,#32] stp x23,x24,[sp,#48] - adr x23,Lord + adrp x23,Lord@PAGE + add x23,x23,Lord@PAGEOFF ldr x3,[x2] // bp[0] ldp x4,x5,[x1] ldp x6,x7,[x1,#16] @@ -3827,13 +3862,16 @@ _ecp_nistz256_ord_mul_mont: .align 4 _ecp_nistz256_ord_sqr_mont: + AARCH64_VALID_CALL_TARGET + // Armv8.3-A PAuth: even though x30 is pushed to stack it is not popped later. stp x29,x30,[sp,#-64]! add x29,sp,#0 stp x19,x20,[sp,#16] stp x21,x22,[sp,#32] stp x23,x24,[sp,#48] - adr x23,Lord + adrp x23,Lord@PAGE + add x23,x23,Lord@PAGEOFF ldp x4,x5,[x1] ldp x6,x7,[x1,#16] @@ -4015,6 +4053,8 @@ Loop_ord_sqr: .align 4 _ecp_nistz256_scatter_w5: + AARCH64_VALID_CALL_TARGET + // Armv8.3-A PAuth: even though x30 is pushed to stack it is not popped later. stp x29,x30,[sp,#-16]! add x29,sp,#0 @@ -4077,6 +4117,8 @@ _ecp_nistz256_scatter_w5: .align 4 _ecp_nistz256_gather_w5: + AARCH64_VALID_CALL_TARGET + // Armv8.3-A PAuth: even though x30 is pushed to stack it is not popped later. stp x29,x30,[sp,#-16]! add x29,sp,#0 @@ -4154,6 +4196,8 @@ _ecp_nistz256_gather_w5: .align 4 _ecp_nistz256_scatter_w7: + AARCH64_VALID_CALL_TARGET + // Armv8.3-A PAuth: even though x30 is pushed to stack it is not popped later. stp x29,x30,[sp,#-16]! add x29,sp,#0 @@ -4198,6 +4242,8 @@ Loop_scatter_w7: .align 4 _ecp_nistz256_gather_w7: + AARCH64_VALID_CALL_TARGET + // Armv8.3-A PAuth: even though x30 is pushed to stack it is not popped later. stp x29,x30,[sp,#-16]! add x29,sp,#0 diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/asm/crypto/ec/ecp_sm2p256-armv8.S b/deps/openssl/config/archs/darwin64-arm64-cc/asm/crypto/ec/ecp_sm2p256-armv8.S new file mode 100644 index 00000000000000..1eae4264d6f54d --- /dev/null +++ b/deps/openssl/config/archs/darwin64-arm64-cc/asm/crypto/ec/ecp_sm2p256-armv8.S @@ -0,0 +1,836 @@ +#include "arm_arch.h" + +.section __TEXT,__const + +.align 5 +// The polynomial p +Lpoly: +.quad 0xffffffffffffffff,0xffffffff00000000,0xffffffffffffffff,0xfffffffeffffffff +// The order of polynomial n +Lord: +.quad 0x53bbf40939d54123,0x7203df6b21c6052b,0xffffffffffffffff,0xfffffffeffffffff +// (p + 1) / 2 +Lpoly_div_2: +.quad 0x8000000000000000,0xffffffff80000000,0xffffffffffffffff,0x7fffffff7fffffff +// (n + 1) / 2 +Lord_div_2: +.quad 0xa9ddfa049ceaa092,0xb901efb590e30295,0xffffffffffffffff,0x7fffffff7fffffff + +.text + +// void bn_rshift1(BN_ULONG *a); +.globl _bn_rshift1 + +.align 5 +_bn_rshift1: + AARCH64_VALID_CALL_TARGET + // Load inputs + ldp x7,x8,[x0] + ldp x9,x10,[x0,#16] + + // Right shift + extr x7,x8,x7,#1 + extr x8,x9,x8,#1 + extr x9,x10,x9,#1 + lsr x10,x10,#1 + + // Store results + stp x7,x8,[x0] + stp x9,x10,[x0,#16] + + ret + + +// void bn_sub(BN_ULONG *r, const BN_ULONG *a, const BN_ULONG *b); +.globl _bn_sub + +.align 5 +_bn_sub: + AARCH64_VALID_CALL_TARGET + // Load inputs + ldp x7,x8,[x1] + ldp x9,x10,[x1,#16] + ldp x11,x12,[x2] + ldp x13,x14,[x2,#16] + + // Subtraction + subs x7,x7,x11 + sbcs x8,x8,x12 + sbcs x9,x9,x13 + sbc x10,x10,x14 + + // Store results + stp x7,x8,[x0] + stp x9,x10,[x0,#16] + + ret + + +// void ecp_sm2p256_div_by_2(BN_ULONG *r,const BN_ULONG *a); +.globl _ecp_sm2p256_div_by_2 + +.align 5 +_ecp_sm2p256_div_by_2: + AARCH64_VALID_CALL_TARGET + // Load inputs + ldp x7,x8,[x1] + ldp x9,x10,[x1,#16] + + // Save the least significant bit + mov x3,x7 + + // Right shift 1 + extr x7,x8,x7,#1 + extr x8,x9,x8,#1 + extr x9,x10,x9,#1 + lsr x10,x10,#1 + + // Load mod + adrp x2,Lpoly_div_2@PAGE + add x2,x2,Lpoly_div_2@PAGEOFF + ldp x11,x12,[x2] + ldp x13,x14,[x2,#16] + + // Parity check + tst x3,#1 + csel x11,xzr,x11,eq + csel x12,xzr,x12,eq + csel x13,xzr,x13,eq + csel x14,xzr,x14,eq + + // Add + adds x7,x7,x11 + adcs x8,x8,x12 + adcs x9,x9,x13 + adc x10,x10,x14 + + // Store results + stp x7,x8,[x0] + stp x9,x10,[x0,#16] + ret + + +// void ecp_sm2p256_div_by_2_mod_ord(BN_ULONG *r,const BN_ULONG *a); +.globl _ecp_sm2p256_div_by_2_mod_ord + +.align 5 +_ecp_sm2p256_div_by_2_mod_ord: + AARCH64_VALID_CALL_TARGET + // Load inputs + ldp x7,x8,[x1] + ldp x9,x10,[x1,#16] + + // Save the least significant bit + mov x3,x7 + + // Right shift 1 + extr x7,x8,x7,#1 + extr x8,x9,x8,#1 + extr x9,x10,x9,#1 + lsr x10,x10,#1 + + // Load mod + adrp x2,Lord_div_2@PAGE + add x2,x2,Lord_div_2@PAGEOFF + ldp x11,x12,[x2] + ldp x13,x14,[x2,#16] + + // Parity check + tst x3,#1 + csel x11,xzr,x11,eq + csel x12,xzr,x12,eq + csel x13,xzr,x13,eq + csel x14,xzr,x14,eq + + // Add + adds x7,x7,x11 + adcs x8,x8,x12 + adcs x9,x9,x13 + adc x10,x10,x14 + + // Store results + stp x7,x8,[x0] + stp x9,x10,[x0,#16] + ret + + +// void ecp_sm2p256_mul_by_3(BN_ULONG *r,const BN_ULONG *a); +.globl _ecp_sm2p256_mul_by_3 + +.align 5 +_ecp_sm2p256_mul_by_3: + AARCH64_VALID_CALL_TARGET + // Load inputs + ldp x7,x8,[x1] + ldp x9,x10,[x1,#16] + + // 2*a + adds x7,x7,x7 + adcs x8,x8,x8 + adcs x9,x9,x9 + adcs x10,x10,x10 + adcs x15,xzr,xzr + + mov x3,x7 + mov x4,x8 + mov x5,x9 + mov x6,x10 + + // Sub polynomial + adrp x2,Lpoly@PAGE + add x2,x2,Lpoly@PAGEOFF + ldp x11,x12,[x2] + ldp x13,x14,[x2,#16] + subs x7,x7,x11 + sbcs x8,x8,x12 + sbcs x9,x9,x13 + sbcs x10,x10,x14 + sbcs x15,x15,xzr + + csel x7,x7,x3,cs + csel x8,x8,x4,cs + csel x9,x9,x5,cs + csel x10,x10,x6,cs + eor x15,x15,x15 + + // 3*a + ldp x11,x12,[x1] + ldp x13,x14,[x1,#16] + adds x7,x7,x11 + adcs x8,x8,x12 + adcs x9,x9,x13 + adcs x10,x10,x14 + adcs x15,xzr,xzr + + mov x3,x7 + mov x4,x8 + mov x5,x9 + mov x6,x10 + + // Sub polynomial + adrp x2,Lpoly@PAGE + add x2,x2,Lpoly@PAGEOFF + ldp x11,x12,[x2] + ldp x13,x14,[x2,#16] + subs x7,x7,x11 + sbcs x8,x8,x12 + sbcs x9,x9,x13 + sbcs x10,x10,x14 + sbcs x15,x15,xzr + + csel x7,x7,x3,cs + csel x8,x8,x4,cs + csel x9,x9,x5,cs + csel x10,x10,x6,cs + + // Store results + stp x7,x8,[x0] + stp x9,x10,[x0,#16] + + ret + + +// void ecp_sm2p256_add(BN_ULONG *r,const BN_ULONG *a,const BN_ULONG *b); +.globl _ecp_sm2p256_add + +.align 5 +_ecp_sm2p256_add: + AARCH64_VALID_CALL_TARGET + // Load inputs + ldp x7,x8,[x1] + ldp x9,x10,[x1,#16] + ldp x11,x12,[x2] + ldp x13,x14,[x2,#16] + + // Addition + adds x7,x7,x11 + adcs x8,x8,x12 + adcs x9,x9,x13 + adcs x10,x10,x14 + adc x15,xzr,xzr + + // Load polynomial + adrp x2,Lpoly@PAGE + add x2,x2,Lpoly@PAGEOFF + ldp x11,x12,[x2] + ldp x13,x14,[x2,#16] + + // Backup Addition + mov x3,x7 + mov x4,x8 + mov x5,x9 + mov x6,x10 + + // Sub polynomial + subs x3,x3,x11 + sbcs x4,x4,x12 + sbcs x5,x5,x13 + sbcs x6,x6,x14 + sbcs x15,x15,xzr + + // Select based on carry + csel x7,x7,x3,cc + csel x8,x8,x4,cc + csel x9,x9,x5,cc + csel x10,x10,x6,cc + + // Store results + stp x7,x8,[x0] + stp x9,x10,[x0,#16] + ret + + +// void ecp_sm2p256_sub(BN_ULONG *r,const BN_ULONG *a,const BN_ULONG *b); +.globl _ecp_sm2p256_sub + +.align 5 +_ecp_sm2p256_sub: + AARCH64_VALID_CALL_TARGET + // Load inputs + ldp x7,x8,[x1] + ldp x9,x10,[x1,#16] + ldp x11,x12,[x2] + ldp x13,x14,[x2,#16] + + // Subtraction + subs x7,x7,x11 + sbcs x8,x8,x12 + sbcs x9,x9,x13 + sbcs x10,x10,x14 + sbc x15,xzr,xzr + + // Load polynomial + adrp x2,Lpoly@PAGE + add x2,x2,Lpoly@PAGEOFF + ldp x11,x12,[x2] + ldp x13,x14,[x2,#16] + + // Backup subtraction + mov x3,x7 + mov x4,x8 + mov x5,x9 + mov x6,x10 + + // Add polynomial + adds x3,x3,x11 + adcs x4,x4,x12 + adcs x5,x5,x13 + adcs x6,x6,x14 + tst x15,x15 + + // Select based on carry + csel x7,x7,x3,eq + csel x8,x8,x4,eq + csel x9,x9,x5,eq + csel x10,x10,x6,eq + + // Store results + stp x7,x8,[x0] + stp x9,x10,[x0,#16] + ret + + +// void ecp_sm2p256_sub_mod_ord(BN_ULONG *r,const BN_ULONG *a,const BN_ULONG *b); +.globl _ecp_sm2p256_sub_mod_ord + +.align 5 +_ecp_sm2p256_sub_mod_ord: + AARCH64_VALID_CALL_TARGET + // Load inputs + ldp x7,x8,[x1] + ldp x9,x10,[x1,#16] + ldp x11,x12,[x2] + ldp x13,x14,[x2,#16] + + // Subtraction + subs x7,x7,x11 + sbcs x8,x8,x12 + sbcs x9,x9,x13 + sbcs x10,x10,x14 + sbc x15,xzr,xzr + + // Load polynomial + adrp x2,Lord@PAGE + add x2,x2,Lord@PAGEOFF + ldp x11,x12,[x2] + ldp x13,x14,[x2,#16] + + // Backup subtraction + mov x3,x7 + mov x4,x8 + mov x5,x9 + mov x6,x10 + + // Add polynomial + adds x3,x3,x11 + adcs x4,x4,x12 + adcs x5,x5,x13 + adcs x6,x6,x14 + tst x15,x15 + + // Select based on carry + csel x7,x7,x3,eq + csel x8,x8,x4,eq + csel x9,x9,x5,eq + csel x10,x10,x6,eq + + // Store results + stp x7,x8,[x0] + stp x9,x10,[x0,#16] + ret + + +.macro RDC + // a = | s7 | ... | s0 |, where si are 64-bit quantities + // = |a15|a14| ... |a1|a0|, where ai are 32-bit quantities + // | s7 | s6 | s5 | s4 | + // | a15 | a14 | a13 | a12 | a11 | a10 | a9 | a8 | + // | s3 | s2 | s1 | s0 | + // | a7 | a6 | a5 | a4 | a3 | a2 | a1 | a0 | + // ================================================= + // | a8 | a11 | a10 | a9 | a8 | 0 | s4 | (+) + // | a9 | a15 | s6 | a11 | 0 | a10 | a9 | (+) + // | a10 | 0 | a14 | a13 | a12 | 0 | s5 | (+) + // | a11 | 0 | s7 | a13 | 0 | a12 | a11 | (+) + // | a12 | 0 | s7 | a13 | 0 | s6 | (+) + // | a12 | 0 | 0 | a15 | a14 | 0 | a14 | a13 | (+) + // | a13 | 0 | 0 | 0 | a15 | 0 | a14 | a13 | (+) + // | a13 | 0 | 0 | 0 | 0 | 0 | s7 | (+) + // | a14 | 0 | 0 | 0 | 0 | 0 | s7 | (+) + // | a14 | 0 | 0 | 0 | 0 | 0 | 0 | a15 | (+) + // | a15 | 0 | 0 | 0 | 0 | 0 | 0 | a15 | (+) + // | a15 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | (+) + // | s7 | 0 | 0 | 0 | 0 | 0 | 0 | (+) + // | 0 | 0 | 0 | 0 | 0 | a8 | 0 | 0 | (-) + // | 0 | 0 | 0 | 0 | 0 | a9 | 0 | 0 | (-) + // | 0 | 0 | 0 | 0 | 0 | a13 | 0 | 0 | (-) + // | 0 | 0 | 0 | 0 | 0 | a14 | 0 | 0 | (-) + // | U[7]| U[6]| U[5]| U[4]| U[3]| U[2]| U[1]| U[0]| + // | V[3] | V[2] | V[1] | V[0] | + + // 1. 64-bit addition + // t2=s6+s7+s7 + adds x5,x13,x14 + adcs x4,xzr,xzr + adds x5,x5,x14 + adcs x4,x4,xzr + // t3=s4+s5+t2 + adds x6,x11,x5 + adcs x15,x4,xzr + adds x6,x6,x12 + adcs x15,x15,xzr + // sum + adds x7,x7,x6 + adcs x8,x8,x15 + adcs x9,x9,x5 + adcs x10,x10,x14 + adcs x3,xzr,xzr + adds x10,x10,x4 + adcs x3,x3,xzr + + stp x7,x8,[sp,#32] + stp x9,x10,[sp,#48] + + // 2. 64-bit to 32-bit spread + mov x4,#0xffffffff + mov x7,x11 + mov x8,x12 + mov x9,x13 + mov x10,x14 + and x7,x7,x4 // a8 + and x8,x8,x4 // a10 + and x9,x9,x4 // a12 + and x10,x10,x4 // a14 + lsr x11,x11,#32 // a9 + lsr x12,x12,#32 // a11 + lsr x13,x13,#32 // a13 + lsr x14,x14,#32 // a15 + + // 3. 32-bit addition + add x4,x10,x9 // t1 <- a12 + a14 + add x5,x14,x13 // t2 <- a13 + a15 + add x6,x7,x11 // t3 <- a8 + a9 + add x15,x10,x8 // t4 <- a10 + a14 + add x14,x14,x12 // a15 <- a11 + a15 + add x9,x5,x4 // a12 <- a12 + a13 + a14 + a15 + add x8,x8,x9 // a10 <- a10 + a12 + a13 + a14 + a15 + add x8,x8,x9 // a10 <- a10 + 2*(a12 + a13 + a14 + a15) + add x8,x8,x6 // a10 <- a8 + a9 + a10 + 2*(a12 + a13 + a14 + a15) + add x8,x8,x12 // a10 <- a8 + a9 + a10 + a11 + 2*(a12 + a13 + a14 + a15) + add x9,x9,x13 // a12 <- a12 + 2*a13 + a14 + a15 + add x9,x9,x12 // a12 <- a11 + a12 + 2*a13 + a14 + a15 + add x9,x9,x7 // a12 <- a8 + a11 + a12 + 2*a13 + a14 + a15 + add x6,x6,x10 // t3 <- a8 + a9 + a14 + add x6,x6,x13 // t3 <- a8 + a9 + a13 + a14 + add x11,x11,x5 // a9 <- a9 + a13 + a15 + add x12,x12,x11 // a11 <- a9 + a11 + a13 + a15 + add x12,x12,x5 // a11 <- a9 + a11 + 2*(a13 + a15) + add x4,x4,x15 // t1 <- a10 + a12 + 2*a14 + + // U[0] s5 a9 + a11 + 2*(a13 + a15) + // U[1] t1 a10 + a12 + 2*a14 + // U[2] -t3 a8 + a9 + a13 + a14 + // U[3] s2 a8 + a11 + a12 + 2*a13 + a14 + a15 + // U[4] s4 a9 + a13 + a15 + // U[5] t4 a10 + a14 + // U[6] s7 a11 + a15 + // U[7] s1 a8 + a9 + a10 + a11 + 2*(a12 + a13 + a14 + a15) + + // 4. 32-bit to 64-bit + lsl x7,x4,#32 + extr x4,x9,x4,#32 + extr x9,x15,x9,#32 + extr x15,x8,x15,#32 + lsr x8,x8,#32 + + // 5. 64-bit addition + adds x12,x12,x7 + adcs x4,x4,xzr + adcs x11,x11,x9 + adcs x14,x14,x15 + adcs x3,x3,x8 + + // V[0] s5 + // V[1] t1 + // V[2] s4 + // V[3] s7 + // carry t0 + // sub t3 + + // 5. Process s0-s3 + ldp x7,x8,[sp,#32] + ldp x9,x10,[sp,#48] + // add with V0-V3 + adds x7,x7,x12 + adcs x8,x8,x4 + adcs x9,x9,x11 + adcs x10,x10,x14 + adcs x3,x3,xzr + // sub with t3 + subs x8,x8,x6 + sbcs x9,x9,xzr + sbcs x10,x10,xzr + sbcs x3,x3,xzr + + // 6. MOD + // First Mod + lsl x4,x3,#32 + subs x5,x4,x3 + + adds x7,x7,x3 + adcs x8,x8,x5 + adcs x9,x9,xzr + adcs x10,x10,x4 + + // Last Mod + // return y - p if y > p else y + mov x11,x7 + mov x12,x8 + mov x13,x9 + mov x14,x10 + + adrp x3,Lpoly@PAGE + add x3,x3,Lpoly@PAGEOFF + ldp x4,x5,[x3] + ldp x6,x15,[x3,#16] + + adcs x16,xzr,xzr + + subs x7,x7,x4 + sbcs x8,x8,x5 + sbcs x9,x9,x6 + sbcs x10,x10,x15 + sbcs x16,x16,xzr + + csel x7,x7,x11,cs + csel x8,x8,x12,cs + csel x9,x9,x13,cs + csel x10,x10,x14,cs + +.endm + +// void ecp_sm2p256_mul(BN_ULONG *r, const BN_ULONG *a, const BN_ULONG *b); +.globl _ecp_sm2p256_mul + +.align 5 +_ecp_sm2p256_mul: + AARCH64_SIGN_LINK_REGISTER + // Store scalar registers + stp x29,x30,[sp,#-80]! + add x29,sp,#0 + stp x16,x17,[sp,#16] + stp x19,x20,[sp,#64] + + // Load inputs + ldp x7,x8,[x1] + ldp x9,x10,[x1,#16] + ldp x11,x12,[x2] + ldp x13,x14,[x2,#16] + +// ### multiplication ### + // ======================== + // s3 s2 s1 s0 + // * s7 s6 s5 s4 + // ------------------------ + // + s0 s0 s0 s0 + // * * * * + // s7 s6 s5 s4 + // s1 s1 s1 s1 + // * * * * + // s7 s6 s5 s4 + // s2 s2 s2 s2 + // * * * * + // s7 s6 s5 s4 + // s3 s3 s3 s3 + // * * * * + // s7 s6 s5 s4 + // ------------------------ + // s7 s6 s5 s4 s3 s2 s1 s0 + // ======================== + +// ### s0*s4 ### + mul x16,x7,x11 + umulh x5,x7,x11 + +// ### s1*s4 + s0*s5 ### + mul x3,x8,x11 + umulh x4,x8,x11 + adds x5,x5,x3 + adcs x6,x4,xzr + + mul x3,x7,x12 + umulh x4,x7,x12 + adds x5,x5,x3 + adcs x6,x6,x4 + adcs x15,xzr,xzr + +// ### s2*s4 + s1*s5 + s0*s6 ### + mul x3,x9,x11 + umulh x4,x9,x11 + adds x6,x6,x3 + adcs x15,x15,x4 + + mul x3,x8,x12 + umulh x4,x8,x12 + adds x6,x6,x3 + adcs x15,x15,x4 + adcs x17,xzr,xzr + + mul x3,x7,x13 + umulh x4,x7,x13 + adds x6,x6,x3 + adcs x15,x15,x4 + adcs x17,x17,xzr + +// ### s3*s4 + s2*s5 + s1*s6 + s0*s7 ### + mul x3,x10,x11 + umulh x4,x10,x11 + adds x15,x15,x3 + adcs x17,x17,x4 + adcs x19,xzr,xzr + + mul x3,x9,x12 + umulh x4,x9,x12 + adds x15,x15,x3 + adcs x17,x17,x4 + adcs x19,x19,xzr + + mul x3,x8,x13 + umulh x4,x8,x13 + adds x15,x15,x3 + adcs x17,x17,x4 + adcs x19,x19,xzr + + mul x3,x7,x14 + umulh x4,x7,x14 + adds x15,x15,x3 + adcs x17,x17,x4 + adcs x19,x19,xzr + +// ### s3*s5 + s2*s6 + s1*s7 ### + mul x3,x10,x12 + umulh x4,x10,x12 + adds x17,x17,x3 + adcs x19,x19,x4 + adcs x20,xzr,xzr + + mul x3,x9,x13 + umulh x4,x9,x13 + adds x17,x17,x3 + adcs x19,x19,x4 + adcs x20,x20,xzr + + mul x3,x8,x14 + umulh x4,x8,x14 + adds x11,x17,x3 + adcs x19,x19,x4 + adcs x20,x20,xzr + +// ### s3*s6 + s2*s7 ### + mul x3,x10,x13 + umulh x4,x10,x13 + adds x19,x19,x3 + adcs x20,x20,x4 + adcs x17,xzr,xzr + + mul x3,x9,x14 + umulh x4,x9,x14 + adds x12,x19,x3 + adcs x20,x20,x4 + adcs x17,x17,xzr + +// ### s3*s7 ### + mul x3,x10,x14 + umulh x4,x10,x14 + adds x13,x20,x3 + adcs x14,x17,x4 + + mov x7,x16 + mov x8,x5 + mov x9,x6 + mov x10,x15 + + // result of mul: s7 s6 s5 s4 s3 s2 s1 s0 + +// ### Reduction ### + RDC + + stp x7,x8,[x0] + stp x9,x10,[x0,#16] + + // Restore scalar registers + ldp x16,x17,[sp,#16] + ldp x19,x20,[sp,#64] + ldp x29,x30,[sp],#80 + + AARCH64_VALIDATE_LINK_REGISTER + ret + + +// void ecp_sm2p256_sqr(BN_ULONG *r, const BN_ULONG *a); +.globl _ecp_sm2p256_sqr + +.align 5 + +_ecp_sm2p256_sqr: + AARCH64_SIGN_LINK_REGISTER + // Store scalar registers + stp x29,x30,[sp,#-80]! + add x29,sp,#0 + stp x16,x17,[sp,#16] + stp x19,x20,[sp,#64] + + // Load inputs + ldp x11,x12,[x1] + ldp x13,x14,[x1,#16] + +// ### square ### + // ======================== + // s7 s6 s5 s4 + // * s7 s6 s5 s4 + // ------------------------ + // + s4 s4 s4 s4 + // * * * * + // s7 s6 s5 s4 + // s5 s5 s5 s5 + // * * * * + // s7 s6 s5 s4 + // s6 s6 s6 s6 + // * * * * + // s7 s6 s5 s4 + // s7 s7 s7 s7 + // * * * * + // s7 s6 s5 s4 + // ------------------------ + // s7 s6 s5 s4 s3 s2 s1 s0 + // ======================== + +// ### s4*s5 ### + mul x8,x11,x12 + umulh x9,x11,x12 + +// ### s4*s6 ### + mul x3,x13,x11 + umulh x10,x13,x11 + adds x9,x9,x3 + adcs x10,x10,xzr + +// ### s4*s7 + s5*s6 ### + mul x3,x14,x11 + umulh x4,x14,x11 + adds x10,x10,x3 + adcs x7,x4,xzr + + mul x3,x13,x12 + umulh x4,x13,x12 + adds x10,x10,x3 + adcs x7,x7,x4 + adcs x5,xzr,xzr + +// ### s5*s7 ### + mul x3,x14,x12 + umulh x4,x14,x12 + adds x7,x7,x3 + adcs x5,x5,x4 + +// ### s6*s7 ### + mul x3,x14,x13 + umulh x4,x14,x13 + adds x5,x5,x3 + adcs x6,x4,xzr + +// ### 2*(t3,t2,s0,s3,s2,s1) ### + adds x8,x8,x8 + adcs x9,x9,x9 + adcs x10,x10,x10 + adcs x7,x7,x7 + adcs x5,x5,x5 + adcs x6,x6,x6 + adcs x15,xzr,xzr + +// ### s4*s4 ### + mul x16,x11,x11 + umulh x17,x11,x11 + +// ### s5*s5 ### + mul x11,x12,x12 + umulh x12,x12,x12 + +// ### s6*s6 ### + mul x3,x13,x13 + umulh x4,x13,x13 + +// ### s7*s7 ### + mul x19,x14,x14 + umulh x20,x14,x14 + + adds x8,x8,x17 + adcs x9,x9,x11 + adcs x10,x10,x12 + adcs x7,x7,x3 + adcs x5,x5,x4 + adcs x6,x6,x19 + adcs x15,x15,x20 + + mov x11,x7 + mov x7,x16 + mov x12,x5 + mov x13,x6 + mov x14,x15 + + // result of mul: s7 s6 s5 s4 s3 s2 s1 s0 + +// ### Reduction ### + RDC + + stp x7,x8,[x0] + stp x9,x10,[x0,#16] + + // Restore scalar registers + ldp x16,x17,[sp,#16] + ldp x19,x20,[sp,#64] + ldp x29,x30,[sp],#80 + + AARCH64_VALIDATE_LINK_REGISTER + ret + diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/asm/crypto/md5/md5-aarch64.S b/deps/openssl/config/archs/darwin64-arm64-cc/asm/crypto/md5/md5-aarch64.S new file mode 100644 index 00000000000000..a075d311de9a3c --- /dev/null +++ b/deps/openssl/config/archs/darwin64-arm64-cc/asm/crypto/md5/md5-aarch64.S @@ -0,0 +1,677 @@ +#include "arm_arch.h" + +.text +.globl _ossl_md5_block_asm_data_order + +_ossl_md5_block_asm_data_order: + AARCH64_VALID_CALL_TARGET + // Save all callee-saved registers + stp x19,x20,[sp,#-80]! + stp x21,x22,[sp,#16] + stp x23,x24,[sp,#32] + stp x25,x26,[sp,#48] + stp x27,x28,[sp,#64] + + ldp w10, w11, [x0, #0] // Load MD5 state->A and state->B + ldp w12, w13, [x0, #8] // Load MD5 state->C and state->D +.align 5 +ossl_md5_blocks_loop: + eor x17, x12, x13 // Begin aux function round 1 F(x,y,z)=(((y^z)&x)^z) + and x16, x17, x11 // Continue aux function round 1 F(x,y,z)=(((y^z)&x)^z) + ldp w15, w20, [x1] // Load 2 words of input data0 M[0],M[1] + ldp w3, w21, [x1, #8] // Load 2 words of input data0 M[2],M[3] +#ifdef __AARCH64EB__ + rev w15, w15 + rev w20, w20 + rev w3, w3 + rev w21, w21 +#endif + eor x14, x16, x13 // End aux function round 1 F(x,y,z)=(((y^z)&x)^z) + movz x9, #0xa478 // Load lower half of constant 0xd76aa478 + movk x9, #0xd76a, lsl #16 // Load upper half of constant 0xd76aa478 + add w8, w10, w15 // Add dest value + add w7, w8, w9 // Add constant 0xd76aa478 + add w6, w7, w14 // Add aux function result + ror w6, w6, #25 // Rotate left s=7 bits + eor x5, x11, x12 // Begin aux function round 1 F(x,y,z)=(((y^z)&x)^z) + add w4, w11, w6 // Add X parameter round 1 A=FF(A, B, C, D, 0xd76aa478, s=7, M[0]) + and x8, x5, x4 // Continue aux function round 1 F(x,y,z)=(((y^z)&x)^z) + eor x17, x8, x12 // End aux function round 1 F(x,y,z)=(((y^z)&x)^z) + movz x16, #0xb756 // Load lower half of constant 0xe8c7b756 + movk x16, #0xe8c7, lsl #16 // Load upper half of constant 0xe8c7b756 + add w9, w13, w20 // Add dest value + add w7, w9, w16 // Add constant 0xe8c7b756 + add w14, w7, w17 // Add aux function result + ror w14, w14, #20 // Rotate left s=12 bits + eor x6, x4, x11 // Begin aux function round 1 F(x,y,z)=(((y^z)&x)^z) + add w5, w4, w14 // Add X parameter round 1 D=FF(D, A, B, C, 0xe8c7b756, s=12, M[1]) + and x8, x6, x5 // Continue aux function round 1 F(x,y,z)=(((y^z)&x)^z) + eor x9, x8, x11 // End aux function round 1 F(x,y,z)=(((y^z)&x)^z) + movz x16, #0x70db // Load lower half of constant 0x242070db + movk x16, #0x2420, lsl #16 // Load upper half of constant 0x242070db + add w7, w12, w3 // Add dest value + add w17, w7, w16 // Add constant 0x242070db + add w14, w17, w9 // Add aux function result + ror w14, w14, #15 // Rotate left s=17 bits + eor x6, x5, x4 // Begin aux function round 1 F(x,y,z)=(((y^z)&x)^z) + add w8, w5, w14 // Add X parameter round 1 C=FF(C, D, A, B, 0x242070db, s=17, M[2]) + and x7, x6, x8 // Continue aux function round 1 F(x,y,z)=(((y^z)&x)^z) + eor x16, x7, x4 // End aux function round 1 F(x,y,z)=(((y^z)&x)^z) + movz x9, #0xceee // Load lower half of constant 0xc1bdceee + movk x9, #0xc1bd, lsl #16 // Load upper half of constant 0xc1bdceee + add w14, w11, w21 // Add dest value + add w6, w14, w9 // Add constant 0xc1bdceee + add w7, w6, w16 // Add aux function result + ror w7, w7, #10 // Rotate left s=22 bits + eor x17, x8, x5 // Begin aux function round 1 F(x,y,z)=(((y^z)&x)^z) + add w9, w8, w7 // Add X parameter round 1 B=FF(B, C, D, A, 0xc1bdceee, s=22, M[3]) + ldp w14, w22, [x1, #16] // Load 2 words of input data0 M[4],M[5] + ldp w7, w23, [x1, #24] // Load 2 words of input data0 M[6],M[7] +#ifdef __AARCH64EB__ + rev w14, w14 + rev w22, w22 + rev w7, w7 + rev w23, w23 +#endif + and x16, x17, x9 // Continue aux function round 1 F(x,y,z)=(((y^z)&x)^z) + eor x6, x16, x5 // End aux function round 1 F(x,y,z)=(((y^z)&x)^z) + movz x16, #0xfaf // Load lower half of constant 0xf57c0faf + movk x16, #0xf57c, lsl #16 // Load upper half of constant 0xf57c0faf + add w17, w4, w14 // Add dest value + add w16, w17, w16 // Add constant 0xf57c0faf + add w4, w16, w6 // Add aux function result + ror w4, w4, #25 // Rotate left s=7 bits + eor x16, x9, x8 // Begin aux function round 1 F(x,y,z)=(((y^z)&x)^z) + add w17, w9, w4 // Add X parameter round 1 A=FF(A, B, C, D, 0xf57c0faf, s=7, M[4]) + and x16, x16, x17 // Continue aux function round 1 F(x,y,z)=(((y^z)&x)^z) + eor x6, x16, x8 // End aux function round 1 F(x,y,z)=(((y^z)&x)^z) + movz x4, #0xc62a // Load lower half of constant 0x4787c62a + movk x4, #0x4787, lsl #16 // Load upper half of constant 0x4787c62a + add w16, w5, w22 // Add dest value + add w16, w16, w4 // Add constant 0x4787c62a + add w5, w16, w6 // Add aux function result + ror w5, w5, #20 // Rotate left s=12 bits + eor x4, x17, x9 // Begin aux function round 1 F(x,y,z)=(((y^z)&x)^z) + add w19, w17, w5 // Add X parameter round 1 D=FF(D, A, B, C, 0x4787c62a, s=12, M[5]) + and x6, x4, x19 // Continue aux function round 1 F(x,y,z)=(((y^z)&x)^z) + eor x5, x6, x9 // End aux function round 1 F(x,y,z)=(((y^z)&x)^z) + movz x4, #0x4613 // Load lower half of constant 0xa8304613 + movk x4, #0xa830, lsl #16 // Load upper half of constant 0xa8304613 + add w6, w8, w7 // Add dest value + add w8, w6, w4 // Add constant 0xa8304613 + add w4, w8, w5 // Add aux function result + ror w4, w4, #15 // Rotate left s=17 bits + eor x6, x19, x17 // Begin aux function round 1 F(x,y,z)=(((y^z)&x)^z) + add w8, w19, w4 // Add X parameter round 1 C=FF(C, D, A, B, 0xa8304613, s=17, M[6]) + and x5, x6, x8 // Continue aux function round 1 F(x,y,z)=(((y^z)&x)^z) + eor x4, x5, x17 // End aux function round 1 F(x,y,z)=(((y^z)&x)^z) + movz x6, #0x9501 // Load lower half of constant 0xfd469501 + movk x6, #0xfd46, lsl #16 // Load upper half of constant 0xfd469501 + add w9, w9, w23 // Add dest value + add w5, w9, w6 // Add constant 0xfd469501 + add w9, w5, w4 // Add aux function result + ror w9, w9, #10 // Rotate left s=22 bits + eor x6, x8, x19 // Begin aux function round 1 F(x,y,z)=(((y^z)&x)^z) + add w4, w8, w9 // Add X parameter round 1 B=FF(B, C, D, A, 0xfd469501, s=22, M[7]) + ldp w5, w24, [x1, #32] // Load 2 words of input data0 M[8],M[9] + ldp w16, w25, [x1, #40] // Load 2 words of input data0 M[10],M[11] +#ifdef __AARCH64EB__ + rev w5, w5 + rev w24, w24 + rev w16, w16 + rev w25, w25 +#endif + and x9, x6, x4 // Continue aux function round 1 F(x,y,z)=(((y^z)&x)^z) + eor x6, x9, x19 // End aux function round 1 F(x,y,z)=(((y^z)&x)^z) + movz x9, #0x98d8 // Load lower half of constant 0x698098d8 + movk x9, #0x6980, lsl #16 // Load upper half of constant 0x698098d8 + add w17, w17, w5 // Add dest value + add w9, w17, w9 // Add constant 0x698098d8 + add w17, w9, w6 // Add aux function result + ror w17, w17, #25 // Rotate left s=7 bits + eor x9, x4, x8 // Begin aux function round 1 F(x,y,z)=(((y^z)&x)^z) + add w6, w4, w17 // Add X parameter round 1 A=FF(A, B, C, D, 0x698098d8, s=7, M[8]) + and x17, x9, x6 // Continue aux function round 1 F(x,y,z)=(((y^z)&x)^z) + eor x9, x17, x8 // End aux function round 1 F(x,y,z)=(((y^z)&x)^z) + movz x17, #0xf7af // Load lower half of constant 0x8b44f7af + movk x17, #0x8b44, lsl #16 // Load upper half of constant 0x8b44f7af + add w19, w19, w24 // Add dest value + add w17, w19, w17 // Add constant 0x8b44f7af + add w19, w17, w9 // Add aux function result + ror w19, w19, #20 // Rotate left s=12 bits + eor x9, x6, x4 // Begin aux function round 1 F(x,y,z)=(((y^z)&x)^z) + add w17, w6, w19 // Add X parameter round 1 D=FF(D, A, B, C, 0x8b44f7af, s=12, M[9]) + and x9, x9, x17 // Continue aux function round 1 F(x,y,z)=(((y^z)&x)^z) + eor x9, x9, x4 // End aux function round 1 F(x,y,z)=(((y^z)&x)^z) + movz x11, #0x5bb1 // Load lower half of constant 0xffff5bb1 + movk x11, #0xffff, lsl #16 // Load upper half of constant 0xffff5bb1 + add w8, w8, w16 // Add dest value + add w8, w8, w11 // Add constant 0xffff5bb1 + add w8, w8, w9 // Add aux function result + ror w8, w8, #15 // Rotate left s=17 bits + eor x9, x17, x6 // Begin aux function round 1 F(x,y,z)=(((y^z)&x)^z) + add w8, w17, w8 // Add X parameter round 1 C=FF(C, D, A, B, 0xffff5bb1, s=17, M[10]) + and x9, x9, x8 // Continue aux function round 1 F(x,y,z)=(((y^z)&x)^z) + eor x9, x9, x6 // End aux function round 1 F(x,y,z)=(((y^z)&x)^z) + movz x11, #0xd7be // Load lower half of constant 0x895cd7be + movk x11, #0x895c, lsl #16 // Load upper half of constant 0x895cd7be + add w4, w4, w25 // Add dest value + add w4, w4, w11 // Add constant 0x895cd7be + add w9, w4, w9 // Add aux function result + ror w9, w9, #10 // Rotate left s=22 bits + eor x4, x8, x17 // Begin aux function round 1 F(x,y,z)=(((y^z)&x)^z) + add w9, w8, w9 // Add X parameter round 1 B=FF(B, C, D, A, 0x895cd7be, s=22, M[11]) + ldp w11, w26, [x1, #48] // Load 2 words of input data0 M[12],M[13] + ldp w12, w27, [x1, #56] // Load 2 words of input data0 M[14],M[15] +#ifdef __AARCH64EB__ + rev w11, w11 + rev w26, w26 + rev w12, w12 + rev w27, w27 +#endif + and x4, x4, x9 // Continue aux function round 1 F(x,y,z)=(((y^z)&x)^z) + eor x4, x4, x17 // End aux function round 1 F(x,y,z)=(((y^z)&x)^z) + movz x19, #0x1122 // Load lower half of constant 0x6b901122 + movk x19, #0x6b90, lsl #16 // Load upper half of constant 0x6b901122 + add w6, w6, w11 // Add dest value + add w6, w6, w19 // Add constant 0x6b901122 + add w4, w6, w4 // Add aux function result + ror w4, w4, #25 // Rotate left s=7 bits + eor x6, x9, x8 // Begin aux function round 1 F(x,y,z)=(((y^z)&x)^z) + add w4, w9, w4 // Add X parameter round 1 A=FF(A, B, C, D, 0x6b901122, s=7, M[12]) + and x6, x6, x4 // Continue aux function round 1 F(x,y,z)=(((y^z)&x)^z) + eor x6, x6, x8 // End aux function round 1 F(x,y,z)=(((y^z)&x)^z) + movz x19, #0x7193 // Load lower half of constant 0xfd987193 + movk x19, #0xfd98, lsl #16 // Load upper half of constant 0xfd987193 + add w17, w17, w26 // Add dest value + add w17, w17, w19 // Add constant 0xfd987193 + add w17, w17, w6 // Add aux function result + ror w17, w17, #20 // Rotate left s=12 bits + eor x6, x4, x9 // Begin aux function round 1 F(x,y,z)=(((y^z)&x)^z) + add w17, w4, w17 // Add X parameter round 1 D=FF(D, A, B, C, 0xfd987193, s=12, M[13]) + and x6, x6, x17 // Continue aux function round 1 F(x,y,z)=(((y^z)&x)^z) + eor x6, x6, x9 // End aux function round 1 F(x,y,z)=(((y^z)&x)^z) + movz x13, #0x438e // Load lower half of constant 0xa679438e + movk x13, #0xa679, lsl #16 // Load upper half of constant 0xa679438e + add w8, w8, w12 // Add dest value + add w8, w8, w13 // Add constant 0xa679438e + add w8, w8, w6 // Add aux function result + ror w8, w8, #15 // Rotate left s=17 bits + eor x6, x17, x4 // Begin aux function round 1 F(x,y,z)=(((y^z)&x)^z) + add w8, w17, w8 // Add X parameter round 1 C=FF(C, D, A, B, 0xa679438e, s=17, M[14]) + and x6, x6, x8 // Continue aux function round 1 F(x,y,z)=(((y^z)&x)^z) + eor x6, x6, x4 // End aux function round 1 F(x,y,z)=(((y^z)&x)^z) + movz x13, #0x821 // Load lower half of constant 0x49b40821 + movk x13, #0x49b4, lsl #16 // Load upper half of constant 0x49b40821 + add w9, w9, w27 // Add dest value + add w9, w9, w13 // Add constant 0x49b40821 + add w9, w9, w6 // Add aux function result + ror w9, w9, #10 // Rotate left s=22 bits + bic x6, x8, x17 // Aux function round 2 (~z & y) + add w9, w8, w9 // Add X parameter round 1 B=FF(B, C, D, A, 0x49b40821, s=22, M[15]) + movz x13, #0x2562 // Load lower half of constant 0xf61e2562 + movk x13, #0xf61e, lsl #16 // Load upper half of constant 0xf61e2562 + add w4, w4, w20 // Add dest value + add w4, w4, w13 // Add constant 0xf61e2562 + and x13, x9, x17 // Aux function round 2 (x & z) + add w4, w4, w6 // Add (~z & y) + add w4, w4, w13 // Add (x & z) + ror w4, w4, #27 // Rotate left s=5 bits + bic x6, x9, x8 // Aux function round 2 (~z & y) + add w4, w9, w4 // Add X parameter round 2 A=GG(A, B, C, D, 0xf61e2562, s=5, M[1]) + movz x13, #0xb340 // Load lower half of constant 0xc040b340 + movk x13, #0xc040, lsl #16 // Load upper half of constant 0xc040b340 + add w17, w17, w7 // Add dest value + add w17, w17, w13 // Add constant 0xc040b340 + and x13, x4, x8 // Aux function round 2 (x & z) + add w17, w17, w6 // Add (~z & y) + add w17, w17, w13 // Add (x & z) + ror w17, w17, #23 // Rotate left s=9 bits + bic x6, x4, x9 // Aux function round 2 (~z & y) + add w17, w4, w17 // Add X parameter round 2 D=GG(D, A, B, C, 0xc040b340, s=9, M[6]) + movz x13, #0x5a51 // Load lower half of constant 0x265e5a51 + movk x13, #0x265e, lsl #16 // Load upper half of constant 0x265e5a51 + add w8, w8, w25 // Add dest value + add w8, w8, w13 // Add constant 0x265e5a51 + and x13, x17, x9 // Aux function round 2 (x & z) + add w8, w8, w6 // Add (~z & y) + add w8, w8, w13 // Add (x & z) + ror w8, w8, #18 // Rotate left s=14 bits + bic x6, x17, x4 // Aux function round 2 (~z & y) + add w8, w17, w8 // Add X parameter round 2 C=GG(C, D, A, B, 0x265e5a51, s=14, M[11]) + movz x13, #0xc7aa // Load lower half of constant 0xe9b6c7aa + movk x13, #0xe9b6, lsl #16 // Load upper half of constant 0xe9b6c7aa + add w9, w9, w15 // Add dest value + add w9, w9, w13 // Add constant 0xe9b6c7aa + and x13, x8, x4 // Aux function round 2 (x & z) + add w9, w9, w6 // Add (~z & y) + add w9, w9, w13 // Add (x & z) + ror w9, w9, #12 // Rotate left s=20 bits + bic x6, x8, x17 // Aux function round 2 (~z & y) + add w9, w8, w9 // Add X parameter round 2 B=GG(B, C, D, A, 0xe9b6c7aa, s=20, M[0]) + movz x13, #0x105d // Load lower half of constant 0xd62f105d + movk x13, #0xd62f, lsl #16 // Load upper half of constant 0xd62f105d + add w4, w4, w22 // Add dest value + add w4, w4, w13 // Add constant 0xd62f105d + and x13, x9, x17 // Aux function round 2 (x & z) + add w4, w4, w6 // Add (~z & y) + add w4, w4, w13 // Add (x & z) + ror w4, w4, #27 // Rotate left s=5 bits + bic x6, x9, x8 // Aux function round 2 (~z & y) + add w4, w9, w4 // Add X parameter round 2 A=GG(A, B, C, D, 0xd62f105d, s=5, M[5]) + movz x13, #0x1453 // Load lower half of constant 0x2441453 + movk x13, #0x244, lsl #16 // Load upper half of constant 0x2441453 + add w17, w17, w16 // Add dest value + add w17, w17, w13 // Add constant 0x2441453 + and x13, x4, x8 // Aux function round 2 (x & z) + add w17, w17, w6 // Add (~z & y) + add w17, w17, w13 // Add (x & z) + ror w17, w17, #23 // Rotate left s=9 bits + bic x6, x4, x9 // Aux function round 2 (~z & y) + add w17, w4, w17 // Add X parameter round 2 D=GG(D, A, B, C, 0x2441453, s=9, M[10]) + movz x13, #0xe681 // Load lower half of constant 0xd8a1e681 + movk x13, #0xd8a1, lsl #16 // Load upper half of constant 0xd8a1e681 + add w8, w8, w27 // Add dest value + add w8, w8, w13 // Add constant 0xd8a1e681 + and x13, x17, x9 // Aux function round 2 (x & z) + add w8, w8, w6 // Add (~z & y) + add w8, w8, w13 // Add (x & z) + ror w8, w8, #18 // Rotate left s=14 bits + bic x6, x17, x4 // Aux function round 2 (~z & y) + add w8, w17, w8 // Add X parameter round 2 C=GG(C, D, A, B, 0xd8a1e681, s=14, M[15]) + movz x13, #0xfbc8 // Load lower half of constant 0xe7d3fbc8 + movk x13, #0xe7d3, lsl #16 // Load upper half of constant 0xe7d3fbc8 + add w9, w9, w14 // Add dest value + add w9, w9, w13 // Add constant 0xe7d3fbc8 + and x13, x8, x4 // Aux function round 2 (x & z) + add w9, w9, w6 // Add (~z & y) + add w9, w9, w13 // Add (x & z) + ror w9, w9, #12 // Rotate left s=20 bits + bic x6, x8, x17 // Aux function round 2 (~z & y) + add w9, w8, w9 // Add X parameter round 2 B=GG(B, C, D, A, 0xe7d3fbc8, s=20, M[4]) + movz x13, #0xcde6 // Load lower half of constant 0x21e1cde6 + movk x13, #0x21e1, lsl #16 // Load upper half of constant 0x21e1cde6 + add w4, w4, w24 // Add dest value + add w4, w4, w13 // Add constant 0x21e1cde6 + and x13, x9, x17 // Aux function round 2 (x & z) + add w4, w4, w6 // Add (~z & y) + add w4, w4, w13 // Add (x & z) + ror w4, w4, #27 // Rotate left s=5 bits + bic x6, x9, x8 // Aux function round 2 (~z & y) + add w4, w9, w4 // Add X parameter round 2 A=GG(A, B, C, D, 0x21e1cde6, s=5, M[9]) + movz x13, #0x7d6 // Load lower half of constant 0xc33707d6 + movk x13, #0xc337, lsl #16 // Load upper half of constant 0xc33707d6 + add w17, w17, w12 // Add dest value + add w17, w17, w13 // Add constant 0xc33707d6 + and x13, x4, x8 // Aux function round 2 (x & z) + add w17, w17, w6 // Add (~z & y) + add w17, w17, w13 // Add (x & z) + ror w17, w17, #23 // Rotate left s=9 bits + bic x6, x4, x9 // Aux function round 2 (~z & y) + add w17, w4, w17 // Add X parameter round 2 D=GG(D, A, B, C, 0xc33707d6, s=9, M[14]) + movz x13, #0xd87 // Load lower half of constant 0xf4d50d87 + movk x13, #0xf4d5, lsl #16 // Load upper half of constant 0xf4d50d87 + add w8, w8, w21 // Add dest value + add w8, w8, w13 // Add constant 0xf4d50d87 + and x13, x17, x9 // Aux function round 2 (x & z) + add w8, w8, w6 // Add (~z & y) + add w8, w8, w13 // Add (x & z) + ror w8, w8, #18 // Rotate left s=14 bits + bic x6, x17, x4 // Aux function round 2 (~z & y) + add w8, w17, w8 // Add X parameter round 2 C=GG(C, D, A, B, 0xf4d50d87, s=14, M[3]) + movz x13, #0x14ed // Load lower half of constant 0x455a14ed + movk x13, #0x455a, lsl #16 // Load upper half of constant 0x455a14ed + add w9, w9, w5 // Add dest value + add w9, w9, w13 // Add constant 0x455a14ed + and x13, x8, x4 // Aux function round 2 (x & z) + add w9, w9, w6 // Add (~z & y) + add w9, w9, w13 // Add (x & z) + ror w9, w9, #12 // Rotate left s=20 bits + bic x6, x8, x17 // Aux function round 2 (~z & y) + add w9, w8, w9 // Add X parameter round 2 B=GG(B, C, D, A, 0x455a14ed, s=20, M[8]) + movz x13, #0xe905 // Load lower half of constant 0xa9e3e905 + movk x13, #0xa9e3, lsl #16 // Load upper half of constant 0xa9e3e905 + add w4, w4, w26 // Add dest value + add w4, w4, w13 // Add constant 0xa9e3e905 + and x13, x9, x17 // Aux function round 2 (x & z) + add w4, w4, w6 // Add (~z & y) + add w4, w4, w13 // Add (x & z) + ror w4, w4, #27 // Rotate left s=5 bits + bic x6, x9, x8 // Aux function round 2 (~z & y) + add w4, w9, w4 // Add X parameter round 2 A=GG(A, B, C, D, 0xa9e3e905, s=5, M[13]) + movz x13, #0xa3f8 // Load lower half of constant 0xfcefa3f8 + movk x13, #0xfcef, lsl #16 // Load upper half of constant 0xfcefa3f8 + add w17, w17, w3 // Add dest value + add w17, w17, w13 // Add constant 0xfcefa3f8 + and x13, x4, x8 // Aux function round 2 (x & z) + add w17, w17, w6 // Add (~z & y) + add w17, w17, w13 // Add (x & z) + ror w17, w17, #23 // Rotate left s=9 bits + bic x6, x4, x9 // Aux function round 2 (~z & y) + add w17, w4, w17 // Add X parameter round 2 D=GG(D, A, B, C, 0xfcefa3f8, s=9, M[2]) + movz x13, #0x2d9 // Load lower half of constant 0x676f02d9 + movk x13, #0x676f, lsl #16 // Load upper half of constant 0x676f02d9 + add w8, w8, w23 // Add dest value + add w8, w8, w13 // Add constant 0x676f02d9 + and x13, x17, x9 // Aux function round 2 (x & z) + add w8, w8, w6 // Add (~z & y) + add w8, w8, w13 // Add (x & z) + ror w8, w8, #18 // Rotate left s=14 bits + bic x6, x17, x4 // Aux function round 2 (~z & y) + add w8, w17, w8 // Add X parameter round 2 C=GG(C, D, A, B, 0x676f02d9, s=14, M[7]) + movz x13, #0x4c8a // Load lower half of constant 0x8d2a4c8a + movk x13, #0x8d2a, lsl #16 // Load upper half of constant 0x8d2a4c8a + add w9, w9, w11 // Add dest value + add w9, w9, w13 // Add constant 0x8d2a4c8a + and x13, x8, x4 // Aux function round 2 (x & z) + add w9, w9, w6 // Add (~z & y) + add w9, w9, w13 // Add (x & z) + eor x6, x8, x17 // Begin aux function round 3 H(x,y,z)=(x^y^z) + ror w9, w9, #12 // Rotate left s=20 bits + movz x10, #0x3942 // Load lower half of constant 0xfffa3942 + add w9, w8, w9 // Add X parameter round 2 B=GG(B, C, D, A, 0x8d2a4c8a, s=20, M[12]) + movk x10, #0xfffa, lsl #16 // Load upper half of constant 0xfffa3942 + add w4, w4, w22 // Add dest value + eor x6, x6, x9 // End aux function round 3 H(x,y,z)=(x^y^z) + add w4, w4, w10 // Add constant 0xfffa3942 + add w4, w4, w6 // Add aux function result + ror w4, w4, #28 // Rotate left s=4 bits + eor x6, x9, x8 // Begin aux function round 3 H(x,y,z)=(x^y^z) + movz x10, #0xf681 // Load lower half of constant 0x8771f681 + add w4, w9, w4 // Add X parameter round 3 A=HH(A, B, C, D, 0xfffa3942, s=4, M[5]) + movk x10, #0x8771, lsl #16 // Load upper half of constant 0x8771f681 + add w17, w17, w5 // Add dest value + eor x6, x6, x4 // End aux function round 3 H(x,y,z)=(x^y^z) + add w17, w17, w10 // Add constant 0x8771f681 + add w17, w17, w6 // Add aux function result + eor x6, x4, x9 // Begin aux function round 3 H(x,y,z)=(x^y^z) + ror w17, w17, #21 // Rotate left s=11 bits + movz x13, #0x6122 // Load lower half of constant 0x6d9d6122 + add w17, w4, w17 // Add X parameter round 3 D=HH(D, A, B, C, 0x8771f681, s=11, M[8]) + movk x13, #0x6d9d, lsl #16 // Load upper half of constant 0x6d9d6122 + add w8, w8, w25 // Add dest value + eor x6, x6, x17 // End aux function round 3 H(x,y,z)=(x^y^z) + add w8, w8, w13 // Add constant 0x6d9d6122 + add w8, w8, w6 // Add aux function result + ror w8, w8, #16 // Rotate left s=16 bits + eor x6, x17, x4 // Begin aux function round 3 H(x,y,z)=(x^y^z) + movz x13, #0x380c // Load lower half of constant 0xfde5380c + add w8, w17, w8 // Add X parameter round 3 C=HH(C, D, A, B, 0x6d9d6122, s=16, M[11]) + movk x13, #0xfde5, lsl #16 // Load upper half of constant 0xfde5380c + add w9, w9, w12 // Add dest value + eor x6, x6, x8 // End aux function round 3 H(x,y,z)=(x^y^z) + add w9, w9, w13 // Add constant 0xfde5380c + add w9, w9, w6 // Add aux function result + eor x6, x8, x17 // Begin aux function round 3 H(x,y,z)=(x^y^z) + ror w9, w9, #9 // Rotate left s=23 bits + movz x10, #0xea44 // Load lower half of constant 0xa4beea44 + add w9, w8, w9 // Add X parameter round 3 B=HH(B, C, D, A, 0xfde5380c, s=23, M[14]) + movk x10, #0xa4be, lsl #16 // Load upper half of constant 0xa4beea44 + add w4, w4, w20 // Add dest value + eor x6, x6, x9 // End aux function round 3 H(x,y,z)=(x^y^z) + add w4, w4, w10 // Add constant 0xa4beea44 + add w4, w4, w6 // Add aux function result + ror w4, w4, #28 // Rotate left s=4 bits + eor x6, x9, x8 // Begin aux function round 3 H(x,y,z)=(x^y^z) + movz x10, #0xcfa9 // Load lower half of constant 0x4bdecfa9 + add w4, w9, w4 // Add X parameter round 3 A=HH(A, B, C, D, 0xa4beea44, s=4, M[1]) + movk x10, #0x4bde, lsl #16 // Load upper half of constant 0x4bdecfa9 + add w17, w17, w14 // Add dest value + eor x6, x6, x4 // End aux function round 3 H(x,y,z)=(x^y^z) + add w17, w17, w10 // Add constant 0x4bdecfa9 + add w17, w17, w6 // Add aux function result + eor x6, x4, x9 // Begin aux function round 3 H(x,y,z)=(x^y^z) + ror w17, w17, #21 // Rotate left s=11 bits + movz x13, #0x4b60 // Load lower half of constant 0xf6bb4b60 + add w17, w4, w17 // Add X parameter round 3 D=HH(D, A, B, C, 0x4bdecfa9, s=11, M[4]) + movk x13, #0xf6bb, lsl #16 // Load upper half of constant 0xf6bb4b60 + add w8, w8, w23 // Add dest value + eor x6, x6, x17 // End aux function round 3 H(x,y,z)=(x^y^z) + add w8, w8, w13 // Add constant 0xf6bb4b60 + add w8, w8, w6 // Add aux function result + ror w8, w8, #16 // Rotate left s=16 bits + eor x6, x17, x4 // Begin aux function round 3 H(x,y,z)=(x^y^z) + movz x13, #0xbc70 // Load lower half of constant 0xbebfbc70 + add w8, w17, w8 // Add X parameter round 3 C=HH(C, D, A, B, 0xf6bb4b60, s=16, M[7]) + movk x13, #0xbebf, lsl #16 // Load upper half of constant 0xbebfbc70 + add w9, w9, w16 // Add dest value + eor x6, x6, x8 // End aux function round 3 H(x,y,z)=(x^y^z) + add w9, w9, w13 // Add constant 0xbebfbc70 + add w9, w9, w6 // Add aux function result + eor x6, x8, x17 // Begin aux function round 3 H(x,y,z)=(x^y^z) + ror w9, w9, #9 // Rotate left s=23 bits + movz x10, #0x7ec6 // Load lower half of constant 0x289b7ec6 + add w9, w8, w9 // Add X parameter round 3 B=HH(B, C, D, A, 0xbebfbc70, s=23, M[10]) + movk x10, #0x289b, lsl #16 // Load upper half of constant 0x289b7ec6 + add w4, w4, w26 // Add dest value + eor x6, x6, x9 // End aux function round 3 H(x,y,z)=(x^y^z) + add w4, w4, w10 // Add constant 0x289b7ec6 + add w4, w4, w6 // Add aux function result + ror w4, w4, #28 // Rotate left s=4 bits + eor x6, x9, x8 // Begin aux function round 3 H(x,y,z)=(x^y^z) + movz x10, #0x27fa // Load lower half of constant 0xeaa127fa + add w4, w9, w4 // Add X parameter round 3 A=HH(A, B, C, D, 0x289b7ec6, s=4, M[13]) + movk x10, #0xeaa1, lsl #16 // Load upper half of constant 0xeaa127fa + add w17, w17, w15 // Add dest value + eor x6, x6, x4 // End aux function round 3 H(x,y,z)=(x^y^z) + add w17, w17, w10 // Add constant 0xeaa127fa + add w17, w17, w6 // Add aux function result + eor x6, x4, x9 // Begin aux function round 3 H(x,y,z)=(x^y^z) + ror w17, w17, #21 // Rotate left s=11 bits + movz x13, #0x3085 // Load lower half of constant 0xd4ef3085 + add w17, w4, w17 // Add X parameter round 3 D=HH(D, A, B, C, 0xeaa127fa, s=11, M[0]) + movk x13, #0xd4ef, lsl #16 // Load upper half of constant 0xd4ef3085 + add w8, w8, w21 // Add dest value + eor x6, x6, x17 // End aux function round 3 H(x,y,z)=(x^y^z) + add w8, w8, w13 // Add constant 0xd4ef3085 + add w8, w8, w6 // Add aux function result + ror w8, w8, #16 // Rotate left s=16 bits + eor x6, x17, x4 // Begin aux function round 3 H(x,y,z)=(x^y^z) + movz x13, #0x1d05 // Load lower half of constant 0x4881d05 + add w8, w17, w8 // Add X parameter round 3 C=HH(C, D, A, B, 0xd4ef3085, s=16, M[3]) + movk x13, #0x488, lsl #16 // Load upper half of constant 0x4881d05 + add w9, w9, w7 // Add dest value + eor x6, x6, x8 // End aux function round 3 H(x,y,z)=(x^y^z) + add w9, w9, w13 // Add constant 0x4881d05 + add w9, w9, w6 // Add aux function result + eor x6, x8, x17 // Begin aux function round 3 H(x,y,z)=(x^y^z) + ror w9, w9, #9 // Rotate left s=23 bits + movz x10, #0xd039 // Load lower half of constant 0xd9d4d039 + add w9, w8, w9 // Add X parameter round 3 B=HH(B, C, D, A, 0x4881d05, s=23, M[6]) + movk x10, #0xd9d4, lsl #16 // Load upper half of constant 0xd9d4d039 + add w4, w4, w24 // Add dest value + eor x6, x6, x9 // End aux function round 3 H(x,y,z)=(x^y^z) + add w4, w4, w10 // Add constant 0xd9d4d039 + add w4, w4, w6 // Add aux function result + ror w4, w4, #28 // Rotate left s=4 bits + eor x6, x9, x8 // Begin aux function round 3 H(x,y,z)=(x^y^z) + movz x10, #0x99e5 // Load lower half of constant 0xe6db99e5 + add w4, w9, w4 // Add X parameter round 3 A=HH(A, B, C, D, 0xd9d4d039, s=4, M[9]) + movk x10, #0xe6db, lsl #16 // Load upper half of constant 0xe6db99e5 + add w17, w17, w11 // Add dest value + eor x6, x6, x4 // End aux function round 3 H(x,y,z)=(x^y^z) + add w17, w17, w10 // Add constant 0xe6db99e5 + add w17, w17, w6 // Add aux function result + eor x6, x4, x9 // Begin aux function round 3 H(x,y,z)=(x^y^z) + ror w17, w17, #21 // Rotate left s=11 bits + movz x13, #0x7cf8 // Load lower half of constant 0x1fa27cf8 + add w17, w4, w17 // Add X parameter round 3 D=HH(D, A, B, C, 0xe6db99e5, s=11, M[12]) + movk x13, #0x1fa2, lsl #16 // Load upper half of constant 0x1fa27cf8 + add w8, w8, w27 // Add dest value + eor x6, x6, x17 // End aux function round 3 H(x,y,z)=(x^y^z) + add w8, w8, w13 // Add constant 0x1fa27cf8 + add w8, w8, w6 // Add aux function result + ror w8, w8, #16 // Rotate left s=16 bits + eor x6, x17, x4 // Begin aux function round 3 H(x,y,z)=(x^y^z) + movz x13, #0x5665 // Load lower half of constant 0xc4ac5665 + add w8, w17, w8 // Add X parameter round 3 C=HH(C, D, A, B, 0x1fa27cf8, s=16, M[15]) + movk x13, #0xc4ac, lsl #16 // Load upper half of constant 0xc4ac5665 + add w9, w9, w3 // Add dest value + eor x6, x6, x8 // End aux function round 3 H(x,y,z)=(x^y^z) + add w9, w9, w13 // Add constant 0xc4ac5665 + add w9, w9, w6 // Add aux function result + ror w9, w9, #9 // Rotate left s=23 bits + movz x6, #0x2244 // Load lower half of constant 0xf4292244 + movk x6, #0xf429, lsl #16 // Load upper half of constant 0xf4292244 + add w9, w8, w9 // Add X parameter round 3 B=HH(B, C, D, A, 0xc4ac5665, s=23, M[2]) + add w4, w4, w15 // Add dest value + orn x13, x9, x17 // Begin aux function round 4 I(x,y,z)=((~z|x)^y) + add w4, w4, w6 // Add constant 0xf4292244 + eor x6, x8, x13 // End aux function round 4 I(x,y,z)=((~z|x)^y) + add w4, w4, w6 // Add aux function result + ror w4, w4, #26 // Rotate left s=6 bits + movz x6, #0xff97 // Load lower half of constant 0x432aff97 + movk x6, #0x432a, lsl #16 // Load upper half of constant 0x432aff97 + add w4, w9, w4 // Add X parameter round 4 A=II(A, B, C, D, 0xf4292244, s=6, M[0]) + orn x10, x4, x8 // Begin aux function round 4 I(x,y,z)=((~z|x)^y) + add w17, w17, w23 // Add dest value + eor x10, x9, x10 // End aux function round 4 I(x,y,z)=((~z|x)^y) + add w17, w17, w6 // Add constant 0x432aff97 + add w6, w17, w10 // Add aux function result + ror w6, w6, #22 // Rotate left s=10 bits + movz x17, #0x23a7 // Load lower half of constant 0xab9423a7 + movk x17, #0xab94, lsl #16 // Load upper half of constant 0xab9423a7 + add w6, w4, w6 // Add X parameter round 4 D=II(D, A, B, C, 0x432aff97, s=10, M[7]) + add w8, w8, w12 // Add dest value + orn x10, x6, x9 // Begin aux function round 4 I(x,y,z)=((~z|x)^y) + add w8, w8, w17 // Add constant 0xab9423a7 + eor x17, x4, x10 // End aux function round 4 I(x,y,z)=((~z|x)^y) + add w8, w8, w17 // Add aux function result + ror w8, w8, #17 // Rotate left s=15 bits + movz x17, #0xa039 // Load lower half of constant 0xfc93a039 + movk x17, #0xfc93, lsl #16 // Load upper half of constant 0xfc93a039 + add w8, w6, w8 // Add X parameter round 4 C=II(C, D, A, B, 0xab9423a7, s=15, M[14]) + orn x13, x8, x4 // Begin aux function round 4 I(x,y,z)=((~z|x)^y) + add w9, w9, w22 // Add dest value + eor x13, x6, x13 // End aux function round 4 I(x,y,z)=((~z|x)^y) + add w9, w9, w17 // Add constant 0xfc93a039 + add w17, w9, w13 // Add aux function result + ror w17, w17, #11 // Rotate left s=21 bits + movz x9, #0x59c3 // Load lower half of constant 0x655b59c3 + movk x9, #0x655b, lsl #16 // Load upper half of constant 0x655b59c3 + add w17, w8, w17 // Add X parameter round 4 B=II(B, C, D, A, 0xfc93a039, s=21, M[5]) + add w4, w4, w11 // Add dest value + orn x13, x17, x6 // Begin aux function round 4 I(x,y,z)=((~z|x)^y) + add w9, w4, w9 // Add constant 0x655b59c3 + eor x4, x8, x13 // End aux function round 4 I(x,y,z)=((~z|x)^y) + add w9, w9, w4 // Add aux function result + ror w9, w9, #26 // Rotate left s=6 bits + movz x4, #0xcc92 // Load lower half of constant 0x8f0ccc92 + movk x4, #0x8f0c, lsl #16 // Load upper half of constant 0x8f0ccc92 + add w9, w17, w9 // Add X parameter round 4 A=II(A, B, C, D, 0x655b59c3, s=6, M[12]) + orn x10, x9, x8 // Begin aux function round 4 I(x,y,z)=((~z|x)^y) + add w6, w6, w21 // Add dest value + eor x10, x17, x10 // End aux function round 4 I(x,y,z)=((~z|x)^y) + add w4, w6, w4 // Add constant 0x8f0ccc92 + add w6, w4, w10 // Add aux function result + ror w6, w6, #22 // Rotate left s=10 bits + movz x4, #0xf47d // Load lower half of constant 0xffeff47d + movk x4, #0xffef, lsl #16 // Load upper half of constant 0xffeff47d + add w6, w9, w6 // Add X parameter round 4 D=II(D, A, B, C, 0x8f0ccc92, s=10, M[3]) + add w8, w8, w16 // Add dest value + orn x10, x6, x17 // Begin aux function round 4 I(x,y,z)=((~z|x)^y) + add w8, w8, w4 // Add constant 0xffeff47d + eor x4, x9, x10 // End aux function round 4 I(x,y,z)=((~z|x)^y) + add w8, w8, w4 // Add aux function result + ror w8, w8, #17 // Rotate left s=15 bits + movz x4, #0x5dd1 // Load lower half of constant 0x85845dd1 + movk x4, #0x8584, lsl #16 // Load upper half of constant 0x85845dd1 + add w8, w6, w8 // Add X parameter round 4 C=II(C, D, A, B, 0xffeff47d, s=15, M[10]) + orn x10, x8, x9 // Begin aux function round 4 I(x,y,z)=((~z|x)^y) + add w15, w17, w20 // Add dest value + eor x17, x6, x10 // End aux function round 4 I(x,y,z)=((~z|x)^y) + add w15, w15, w4 // Add constant 0x85845dd1 + add w4, w15, w17 // Add aux function result + ror w4, w4, #11 // Rotate left s=21 bits + movz x15, #0x7e4f // Load lower half of constant 0x6fa87e4f + movk x15, #0x6fa8, lsl #16 // Load upper half of constant 0x6fa87e4f + add w17, w8, w4 // Add X parameter round 4 B=II(B, C, D, A, 0x85845dd1, s=21, M[1]) + add w4, w9, w5 // Add dest value + orn x9, x17, x6 // Begin aux function round 4 I(x,y,z)=((~z|x)^y) + add w15, w4, w15 // Add constant 0x6fa87e4f + eor x4, x8, x9 // End aux function round 4 I(x,y,z)=((~z|x)^y) + add w9, w15, w4 // Add aux function result + ror w9, w9, #26 // Rotate left s=6 bits + movz x15, #0xe6e0 // Load lower half of constant 0xfe2ce6e0 + movk x15, #0xfe2c, lsl #16 // Load upper half of constant 0xfe2ce6e0 + add w4, w17, w9 // Add X parameter round 4 A=II(A, B, C, D, 0x6fa87e4f, s=6, M[8]) + orn x9, x4, x8 // Begin aux function round 4 I(x,y,z)=((~z|x)^y) + add w6, w6, w27 // Add dest value + eor x9, x17, x9 // End aux function round 4 I(x,y,z)=((~z|x)^y) + add w15, w6, w15 // Add constant 0xfe2ce6e0 + add w6, w15, w9 // Add aux function result + ror w6, w6, #22 // Rotate left s=10 bits + movz x9, #0x4314 // Load lower half of constant 0xa3014314 + movk x9, #0xa301, lsl #16 // Load upper half of constant 0xa3014314 + add w15, w4, w6 // Add X parameter round 4 D=II(D, A, B, C, 0xfe2ce6e0, s=10, M[15]) + add w6, w8, w7 // Add dest value + orn x7, x15, x17 // Begin aux function round 4 I(x,y,z)=((~z|x)^y) + add w8, w6, w9 // Add constant 0xa3014314 + eor x9, x4, x7 // End aux function round 4 I(x,y,z)=((~z|x)^y) + add w6, w8, w9 // Add aux function result + ror w6, w6, #17 // Rotate left s=15 bits + movz x7, #0x11a1 // Load lower half of constant 0x4e0811a1 + movk x7, #0x4e08, lsl #16 // Load upper half of constant 0x4e0811a1 + add w8, w15, w6 // Add X parameter round 4 C=II(C, D, A, B, 0xa3014314, s=15, M[6]) + orn x9, x8, x4 // Begin aux function round 4 I(x,y,z)=((~z|x)^y) + add w6, w17, w26 // Add dest value + eor x17, x15, x9 // End aux function round 4 I(x,y,z)=((~z|x)^y) + add w9, w6, w7 // Add constant 0x4e0811a1 + add w7, w9, w17 // Add aux function result + ror w7, w7, #11 // Rotate left s=21 bits + movz x6, #0x7e82 // Load lower half of constant 0xf7537e82 + movk x6, #0xf753, lsl #16 // Load upper half of constant 0xf7537e82 + add w9, w8, w7 // Add X parameter round 4 B=II(B, C, D, A, 0x4e0811a1, s=21, M[13]) + add w17, w4, w14 // Add dest value + orn x7, x9, x15 // Begin aux function round 4 I(x,y,z)=((~z|x)^y) + add w14, w17, w6 // Add constant 0xf7537e82 + eor x4, x8, x7 // End aux function round 4 I(x,y,z)=((~z|x)^y) + add w17, w14, w4 // Add aux function result + ror w17, w17, #26 // Rotate left s=6 bits + movz x6, #0xf235 // Load lower half of constant 0xbd3af235 + movk x6, #0xbd3a, lsl #16 // Load upper half of constant 0xbd3af235 + add w7, w9, w17 // Add X parameter round 4 A=II(A, B, C, D, 0xf7537e82, s=6, M[4]) + orn x14, x7, x8 // Begin aux function round 4 I(x,y,z)=((~z|x)^y) + add w4, w15, w25 // Add dest value + eor x17, x9, x14 // End aux function round 4 I(x,y,z)=((~z|x)^y) + add w15, w4, w6 // Add constant 0xbd3af235 + add w16, w15, w17 // Add aux function result + ror w16, w16, #22 // Rotate left s=10 bits + movz x14, #0xd2bb // Load lower half of constant 0x2ad7d2bb + movk x14, #0x2ad7, lsl #16 // Load upper half of constant 0x2ad7d2bb + add w4, w7, w16 // Add X parameter round 4 D=II(D, A, B, C, 0xbd3af235, s=10, M[11]) + add w6, w8, w3 // Add dest value + orn x15, x4, x9 // Begin aux function round 4 I(x,y,z)=((~z|x)^y) + add w17, w6, w14 // Add constant 0x2ad7d2bb + eor x16, x7, x15 // End aux function round 4 I(x,y,z)=((~z|x)^y) + add w8, w17, w16 // Add aux function result + ror w8, w8, #17 // Rotate left s=15 bits + movz x3, #0xd391 // Load lower half of constant 0xeb86d391 + movk x3, #0xeb86, lsl #16 // Load upper half of constant 0xeb86d391 + add w14, w4, w8 // Add X parameter round 4 C=II(C, D, A, B, 0x2ad7d2bb, s=15, M[2]) + orn x6, x14, x7 // Begin aux function round 4 I(x,y,z)=((~z|x)^y) + add w15, w9, w24 // Add dest value + eor x17, x4, x6 // End aux function round 4 I(x,y,z)=((~z|x)^y) + add w16, w15, w3 // Add constant 0xeb86d391 + add w8, w16, w17 // Add aux function result + ror w8, w8, #11 // Rotate left s=21 bits + ldp w6, w15, [x0] // Reload MD5 state->A and state->B + ldp w5, w9, [x0, #8] // Reload MD5 state->C and state->D + add w3, w14, w8 // Add X parameter round 4 B=II(B, C, D, A, 0xeb86d391, s=21, M[9]) + add w13, w4, w9 // Add result of MD5 rounds to state->D + add w12, w14, w5 // Add result of MD5 rounds to state->C + add w10, w7, w6 // Add result of MD5 rounds to state->A + add w11, w3, w15 // Add result of MD5 rounds to state->B + stp w12, w13, [x0, #8] // Store MD5 states C,D + stp w10, w11, [x0] // Store MD5 states A,B + add x1, x1, #64 // Increment data pointer + subs w2, w2, #1 // Decrement block counter + b.ne ossl_md5_blocks_loop + + ldp x21,x22,[sp,#16] + ldp x23,x24,[sp,#32] + ldp x25,x26,[sp,#48] + ldp x27,x28,[sp,#64] + ldp x19,x20,[sp],#80 + ret + diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/asm/crypto/modes/aes-gcm-armv8-unroll8_64.S b/deps/openssl/config/archs/darwin64-arm64-cc/asm/crypto/modes/aes-gcm-armv8-unroll8_64.S new file mode 100644 index 00000000000000..549f32d456502a --- /dev/null +++ b/deps/openssl/config/archs/darwin64-arm64-cc/asm/crypto/modes/aes-gcm-armv8-unroll8_64.S @@ -0,0 +1,8487 @@ +#include "arm_arch.h" + +#if __ARM_MAX_ARCH__>=8 + +.text +.globl _unroll8_eor3_aes_gcm_enc_128_kernel + +.align 4 +_unroll8_eor3_aes_gcm_enc_128_kernel: + AARCH64_VALID_CALL_TARGET + cbz x1, L128_enc_ret + stp d8, d9, [sp, #-80]! + lsr x9, x1, #3 + mov x16, x4 + mov x8, x5 + stp d10, d11, [sp, #16] + stp d12, d13, [sp, #32] + stp d14, d15, [sp, #48] + mov x5, #0xc200000000000000 + stp x5, xzr, [sp, #64] + add x10, sp, #64 + + mov x15, #0x100000000 //set up counter increment + movi v31.16b, #0x0 + mov v31.d[1], x15 + mov x5, x9 + ld1 { v0.16b}, [x16] //CTR block 0 + + sub x5, x5, #1 //byte_len - 1 + + and x5, x5, #0xffffffffffffff80 //number of bytes to be processed in main loop (at least 1 byte must be handled by tail) + + rev32 v30.16b, v0.16b //set up reversed counter + + add v30.4s, v30.4s, v31.4s //CTR block 0 + + rev32 v1.16b, v30.16b //CTR block 1 + add v30.4s, v30.4s, v31.4s //CTR block 1 + + rev32 v2.16b, v30.16b //CTR block 2 + add v30.4s, v30.4s, v31.4s //CTR block 2 + + rev32 v3.16b, v30.16b //CTR block 3 + add v30.4s, v30.4s, v31.4s //CTR block 3 + + rev32 v4.16b, v30.16b //CTR block 4 + add v30.4s, v30.4s, v31.4s //CTR block 4 + + rev32 v5.16b, v30.16b //CTR block 5 + add v30.4s, v30.4s, v31.4s //CTR block 5 + ldp q26, q27, [x8, #0] //load rk0, rk1 + + rev32 v6.16b, v30.16b //CTR block 6 + add v30.4s, v30.4s, v31.4s //CTR block 6 + + rev32 v7.16b, v30.16b //CTR block 7 + add v30.4s, v30.4s, v31.4s //CTR block 7 + + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 4 - round 0 + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 6 - round 0 + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 3 - round 0 + + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 0 - round 0 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 1 - round 0 + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 2 - round 0 + + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 7 - round 0 + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 5 - round 0 + ldp q28, q26, [x8, #32] //load rk2, rk3 + + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 3 - round 1 + + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 7 - round 1 + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 5 - round 1 + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 4 - round 1 + + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 2 - round 1 + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 6 - round 1 + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 0 - round 1 + + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 5 - round 2 + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 1 - round 1 + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 0 - round 2 + + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 2 - round 2 + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 3 - round 2 + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 7 - round 2 + + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 1 - round 2 + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 6 - round 2 + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 4 - round 2 + + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 2 - round 3 + + ldp q27, q28, [x8, #64] //load rk4, rk5 + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 5 - round 3 + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 0 - round 3 + + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 4 - round 3 + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 3 - round 3 + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 6 - round 3 + + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 7 - round 3 + + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 6 - round 4 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 1 - round 3 + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 5 - round 4 + + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 7 - round 4 + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 4 - round 4 + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 0 - round 4 + + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 1 - round 4 + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 2 - round 4 + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 3 - round 4 + + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 7 - round 5 + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 0 - round 5 + ldp q26, q27, [x8, #96] //load rk6, rk7 + + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 1 - round 5 + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 3 - round 5 + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 2 - round 5 + + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 4 - round 5 + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 5 - round 5 + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 6 - round 5 + + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 4 - round 6 + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 3 - round 6 + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 2 - round 6 + + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 7 - round 6 + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 6 - round 6 + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 5 - round 6 + + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 0 - round 6 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 1 - round 6 + ldp q28, q26, [x8, #128] //load rk8, rk9 + + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 5 - round 7 + + ld1 { v19.16b}, [x3] + ext v19.16b, v19.16b, v19.16b, #8 + rev64 v19.16b, v19.16b + + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 7 - round 7 + + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 4 - round 7 + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 3 - round 7 + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 6 - round 7 + + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 1 - round 7 + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 2 - round 7 + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 0 - round 7 + + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 8 + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 8 + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 8 + + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 8 + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 8 + ldr q27, [x8, #160] //load rk10 + + aese v3.16b, v26.16b //AES block 8k+11 - round 9 + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 8 + aese v2.16b, v26.16b //AES block 8k+10 - round 9 + + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 8 + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 8 + aese v6.16b, v26.16b //AES block 8k+14 - round 9 + + aese v4.16b, v26.16b //AES block 8k+12 - round 9 + add x5, x5, x0 + aese v0.16b, v26.16b //AES block 8k+8 - round 9 + + aese v7.16b, v26.16b //AES block 8k+15 - round 9 + aese v5.16b, v26.16b //AES block 8k+13 - round 9 + aese v1.16b, v26.16b //AES block 8k+9 - round 9 + + add x4, x0, x1, lsr #3 //end_input_ptr + cmp x0, x5 //check if we have <= 8 blocks + b.ge L128_enc_tail //handle tail + + ldp q8, q9, [x0], #32 //AES block 0, 1 - load plaintext + + ldp q10, q11, [x0], #32 //AES block 2, 3 - load plaintext + + ldp q12, q13, [x0], #32 //AES block 4, 5 - load plaintext + + ldp q14, q15, [x0], #32 //AES block 6, 7 - load plaintext + cmp x0, x5 //check if we have <= 8 blocks + +.long 0xce006d08 //eor3 v8.16b, v8.16b, v0.16b, v27.16b //AES block 0 - result + rev32 v0.16b, v30.16b //CTR block 8 + add v30.4s, v30.4s, v31.4s //CTR block 8 + +.long 0xce016d29 //eor3 v9.16b, v9.16b, v1.16b, v27.16b //AES block 1 - result + stp q8, q9, [x2], #32 //AES block 0, 1 - store result + + rev32 v1.16b, v30.16b //CTR block 9 +.long 0xce056dad //eor3 v13.16b, v13.16b, v5.16b, v27.16b //AES block 5 - result + add v30.4s, v30.4s, v31.4s //CTR block 9 + +.long 0xce026d4a //eor3 v10.16b, v10.16b, v2.16b, v27.16b //AES block 2 - result +.long 0xce066dce //eor3 v14.16b, v14.16b, v6.16b, v27.16b //AES block 6 - result +.long 0xce046d8c //eor3 v12.16b, v12.16b, v4.16b, v27.16b //AES block 4 - result + + rev32 v2.16b, v30.16b //CTR block 10 + add v30.4s, v30.4s, v31.4s //CTR block 10 + +.long 0xce036d6b //eor3 v11.16b, v11.16b, v3.16b, v27.16b //AES block 3 - result +.long 0xce076def //eor3 v15.16b, v15.16b, v7.16b,v27.16b //AES block 7 - result + stp q10, q11, [x2], #32 //AES block 2, 3 - store result + + rev32 v3.16b, v30.16b //CTR block 11 + add v30.4s, v30.4s, v31.4s //CTR block 11 + stp q12, q13, [x2], #32 //AES block 4, 5 - store result + + stp q14, q15, [x2], #32 //AES block 6, 7 - store result + + rev32 v4.16b, v30.16b //CTR block 12 + add v30.4s, v30.4s, v31.4s //CTR block 12 + b.ge L128_enc_prepretail //do prepretail + +L128_enc_main_loop: //main loop start + rev32 v5.16b, v30.16b //CTR block 8k+13 + ldr q20, [x3, #128] //load h5l | h5h + ext v20.16b, v20.16b, v20.16b, #8 + ldr q22, [x3, #160] //load h6l | h6h + ext v22.16b, v22.16b, v22.16b, #8 + add v30.4s, v30.4s, v31.4s //CTR block 8k+13 + + rev64 v9.16b, v9.16b //GHASH block 8k+1 + rev64 v8.16b, v8.16b //GHASH block 8k + ldr q23, [x3, #176] //load h7l | h7h + ext v23.16b, v23.16b, v23.16b, #8 + ldr q25, [x3, #208] //load h8l | h8h + ext v25.16b, v25.16b, v25.16b, #8 + + rev32 v6.16b, v30.16b //CTR block 8k+14 + add v30.4s, v30.4s, v31.4s //CTR block 8k+14 + ext v19.16b, v19.16b, v19.16b, #8 //PRE 0 + + ldr q21, [x3, #144] //load h6k | h5k + ldr q24, [x3, #192] //load h8k | h7k + rev64 v13.16b, v13.16b //GHASH block 8k+5 (t0, t1, t2 and t3 free) + rev64 v11.16b, v11.16b //GHASH block 8k+3 + + ldp q26, q27, [x8, #0] //load rk0, rk1 + eor v8.16b, v8.16b, v19.16b //PRE 1 + rev32 v7.16b, v30.16b //CTR block 8k+15 + + rev64 v15.16b, v15.16b //GHASH block 8k+7 (t0, t1, t2 and t3 free) + + pmull2 v16.1q, v9.2d, v23.2d //GHASH block 8k+1 - high + rev64 v10.16b, v10.16b //GHASH block 8k+2 + pmull2 v17.1q, v8.2d, v25.2d //GHASH block 8k - high + + pmull v23.1q, v9.1d, v23.1d //GHASH block 8k+1 - low + trn1 v18.2d, v9.2d, v8.2d //GHASH block 8k, 8k+1 - mid + pmull v19.1q, v8.1d, v25.1d //GHASH block 8k - low + + trn2 v8.2d, v9.2d, v8.2d //GHASH block 8k, 8k+1 - mid + pmull2 v29.1q, v10.2d, v22.2d //GHASH block 8k+2 - high + pmull2 v9.1q, v11.2d, v20.2d //GHASH block 8k+3 - high + + eor v19.16b, v19.16b, v23.16b //GHASH block 8k+1 - low + ldr q23, [x3, #80] //load h3l | h3h + ext v23.16b, v23.16b, v23.16b, #8 + ldr q25, [x3, #112] //load h3l | h3h + ext v25.16b, v25.16b, v25.16b, #8 + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 0 + + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 0 + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 0 + eor v17.16b, v17.16b, v16.16b //GHASH block 8k+1 - high + + add v30.4s, v30.4s, v31.4s //CTR block 8k+15 + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 0 + eor v8.16b, v8.16b, v18.16b //GHASH block 8k, 8k+1 - mid + + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 0 + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 1 + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 0 + + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 1 + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 0 + pmull v22.1q, v10.1d, v22.1d //GHASH block 8k+2 - low + + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 1 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 0 + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 1 + +.long 0xce1d2631 //eor3 v17.16b, v17.16b, v29.16b,v9.16b //GHASH block 8k+2, 8k+3 - high + trn1 v29.2d, v11.2d, v10.2d //GHASH block 8k+2, 8k+3 - mid + trn2 v10.2d, v11.2d, v10.2d //GHASH block 8k+2, 8k+3 - mid + + ldp q28, q26, [x8, #32] //load rk2, rk3 + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 1 + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 1 + + pmull v20.1q, v11.1d, v20.1d //GHASH block 8k+3 - low + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 1 + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 1 + + pmull2 v18.1q, v8.2d, v24.2d //GHASH block 8k - mid + eor v10.16b, v10.16b, v29.16b //GHASH block 8k+2, 8k+3 - mid + pmull v24.1q, v8.1d, v24.1d //GHASH block 8k+1 - mid + + rev64 v14.16b, v14.16b //GHASH block 8k+6 (t0, t1, and t2 free) +.long 0xce165273 //eor3 v19.16b, v19.16b, v22.16b, v20.16b //GHASH block 8k+2, 8k+3 - low + + pmull2 v29.1q, v10.2d, v21.2d //GHASH block 8k+2 - mid + eor v18.16b, v18.16b, v24.16b //GHASH block 8k+1 - mid + pmull v21.1q, v10.1d, v21.1d //GHASH block 8k+3 - mid + + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 2 + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 2 + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 2 + + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 2 +.long 0xce157652 //eor3 v18.16b, v18.16b, v21.16b, v29.16b //GHASH block 8k+2, 8k+3 - mid + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 2 + + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 2 + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 2 + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 2 + + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 3 + ldr q21, [x3, #48] //load h2k | h1k + ldr q24, [x3, #96] //load h4k | h3k + rev64 v12.16b, v12.16b //GHASH block 8k+4 (t0, t1, and t2 free) + + ldp q27, q28, [x8, #64] //load rk4, rk5 + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 3 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 3 + + ldr q20, [x3, #32] //load h1l | h1h + ext v20.16b, v20.16b, v20.16b, #8 + ldr q22, [x3, #64] //load h1l | h1h + ext v22.16b, v22.16b, v22.16b, #8 + pmull2 v8.1q, v12.2d, v25.2d //GHASH block 8k+4 - high + pmull v25.1q, v12.1d, v25.1d //GHASH block 8k+4 - low + + trn1 v16.2d, v13.2d, v12.2d //GHASH block 8k+4, 8k+5 - mid + trn2 v12.2d, v13.2d, v12.2d //GHASH block 8k+4, 8k+5 - mid + + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 3 + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 3 + + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 3 + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 3 + + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 3 + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 4 + + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 4 + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 4 + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 4 + + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 4 + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 4 + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 4 + + pmull2 v10.1q, v13.2d, v23.2d //GHASH block 8k+5 - high + eor v12.16b, v12.16b, v16.16b //GHASH block 8k+4, 8k+5 - mid + pmull v23.1q, v13.1d, v23.1d //GHASH block 8k+5 - low + + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 4 + ldp q26, q27, [x8, #96] //load rk6, rk7 + trn1 v13.2d, v15.2d, v14.2d //GHASH block 8k+6, 8k+7 - mid + + pmull2 v16.1q, v12.2d, v24.2d //GHASH block 8k+4 - mid + pmull v24.1q, v12.1d, v24.1d //GHASH block 8k+5 - mid + pmull2 v11.1q, v14.2d, v22.2d //GHASH block 8k+6 - high + + pmull2 v12.1q, v15.2d, v20.2d //GHASH block 8k+7 - high + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 5 + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 5 + + pmull v22.1q, v14.1d, v22.1d //GHASH block 8k+6 - low +.long 0xce082a31 //eor3 v17.16b, v17.16b, v8.16b, v10.16b //GHASH block 8k+4, 8k+5 - high + trn2 v14.2d, v15.2d, v14.2d //GHASH block 8k+6, 8k+7 - mid + +.long 0xce195e73 //eor3 v19.16b, v19.16b, v25.16b, v23.16b //GHASH block 8k+4, 8k+5 - low + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 5 + + eor v14.16b, v14.16b, v13.16b //GHASH block 8k+6, 8k+7 - mid + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 5 + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 5 + + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 5 + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 5 + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 5 + +.long 0xce184252 //eor3 v18.16b, v18.16b, v24.16b, v16.16b //GHASH block 8k+4, 8k+5 - mid + ldr d16, [x10] //MODULO - load modulo constant + pmull v20.1q, v15.1d, v20.1d //GHASH block 8k+7 - low + + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 6 + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 6 + + pmull2 v13.1q, v14.2d, v21.2d //GHASH block 8k+6 - mid + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 6 + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 6 + + pmull v21.1q, v14.1d, v21.1d //GHASH block 8k+7 - mid +.long 0xce165273 //eor3 v19.16b, v19.16b, v22.16b, v20.16b //GHASH block 8k+6, 8k+7 - low + ldp q8, q9, [x0], #32 //AES block 8k+8, 8k+9 - load plaintext + + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 6 + rev32 v20.16b, v30.16b //CTR block 8k+16 + add v30.4s, v30.4s, v31.4s //CTR block 8k+16 + + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 6 + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 6 + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 6 + +.long 0xce153652 //eor3 v18.16b, v18.16b, v21.16b, v13.16b //GHASH block 8k+6, 8k+7 - mid + ldp q28, q26, [x8, #128] //load rk8, rk9 +.long 0xce0b3231 //eor3 v17.16b, v17.16b, v11.16b, v12.16b //GHASH block 8k+6, 8k+7 - high + + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 7 + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 7 + ldp q10, q11, [x0], #32 //AES block 8k+10, 8k+11 - load plaintext + + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 7 + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 7 + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 7 + + pmull v21.1q, v17.1d, v16.1d //MODULO - top 64b align with mid + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 7 + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 7 + + rev32 v22.16b, v30.16b //CTR block 8k+17 + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 7 + + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 8 + ldp q12, q13, [x0], #32 //AES block 8k+12, 8k+13 - load plaintext + add v30.4s, v30.4s, v31.4s //CTR block 8k+17 + + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 8 + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 8 + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 8 + + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 8 +.long 0xce114e52 //eor3 v18.16b, v18.16b, v17.16b, v19.16b //MODULO - karatsuba tidy up + ldr q27, [x8, #160] //load rk10 + + ext v29.16b, v17.16b, v17.16b, #8 //MODULO - other top alignment + rev32 v23.16b, v30.16b //CTR block 8k+18 + add v30.4s, v30.4s, v31.4s //CTR block 8k+18 + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 8 + + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 8 +.long 0xce1d5652 //eor3 v18.16b, v18.16b, v29.16b, v21.16b //MODULO - fold into mid + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 8 + + aese v2.16b, v26.16b //AES block 8k+10 - round 9 + aese v4.16b, v26.16b //AES block 8k+12 - round 9 + aese v1.16b, v26.16b //AES block 8k+9 - round 9 + + ldp q14, q15, [x0], #32 //AES block 8k+14, 8k+15 - load plaintext + rev32 v25.16b, v30.16b //CTR block 8k+19 + add v30.4s, v30.4s, v31.4s //CTR block 8k+19 + + cmp x0, x5 //LOOP CONTROL +.long 0xce046d8c //eor3 v12.16b, v12.16b, v4.16b, v27.16b //AES block 4 - result + aese v7.16b, v26.16b //AES block 8k+15 - round 9 + + aese v6.16b, v26.16b //AES block 8k+14 - round 9 + aese v3.16b, v26.16b //AES block 8k+11 - round 9 + +.long 0xce026d4a //eor3 v10.16b, v10.16b, v2.16b, v27.16b //AES block 8k+10 - result + + mov v2.16b, v23.16b //CTR block 8k+18 + aese v0.16b, v26.16b //AES block 8k+8 - round 9 + + rev32 v4.16b, v30.16b //CTR block 8k+20 + add v30.4s, v30.4s, v31.4s //CTR block 8k+20 + +.long 0xce076def //eor3 v15.16b, v15.16b, v7.16b, v27.16b //AES block 7 - result + aese v5.16b, v26.16b //AES block 8k+13 - round 9 + pmull v17.1q, v18.1d, v16.1d //MODULO - mid 64b align with low + +.long 0xce016d29 //eor3 v9.16b, v9.16b, v1.16b, v27.16b //AES block 8k+9 - result +.long 0xce036d6b //eor3 v11.16b, v11.16b, v3.16b, v27.16b //AES block 8k+11 - result + mov v3.16b, v25.16b //CTR block 8k+19 + + ext v21.16b, v18.16b, v18.16b, #8 //MODULO - other mid alignment +.long 0xce056dad //eor3 v13.16b, v13.16b, v5.16b, v27.16b //AES block 5 - result + mov v1.16b, v22.16b //CTR block 8k+17 + +.long 0xce006d08 //eor3 v8.16b, v8.16b, v0.16b, v27.16b //AES block 8k+8 - result + mov v0.16b, v20.16b //CTR block 8k+16 + stp q8, q9, [x2], #32 //AES block 8k+8, 8k+9 - store result + + stp q10, q11, [x2], #32 //AES block 8k+10, 8k+11 - store result +.long 0xce066dce //eor3 v14.16b, v14.16b, v6.16b, v27.16b //AES block 6 - result + + stp q12, q13, [x2], #32 //AES block 8k+12, 8k+13 - store result +.long 0xce115673 //eor3 v19.16b, v19.16b, v17.16b, v21.16b //MODULO - fold into low + + stp q14, q15, [x2], #32 //AES block 8k+14, 8k+15 - store result + b.lt L128_enc_main_loop + +L128_enc_prepretail: //PREPRETAIL + rev32 v5.16b, v30.16b //CTR block 8k+13 + ldr q23, [x3, #176] //load h7l | h7h + ext v23.16b, v23.16b, v23.16b, #8 + ldr q25, [x3, #208] //load h8l | h8h + ext v25.16b, v25.16b, v25.16b, #8 + ext v19.16b, v19.16b, v19.16b, #8 //PRE 0 + + ldr q20, [x3, #128] //load h5l | h5h + ext v20.16b, v20.16b, v20.16b, #8 + ldr q22, [x3, #160] //load h6l | h6h + ext v22.16b, v22.16b, v22.16b, #8 + rev64 v8.16b, v8.16b //GHASH block 8k + rev64 v9.16b, v9.16b //GHASH block 8k+1 + + ldr q21, [x3, #144] //load h6k | h5k + ldr q24, [x3, #192] //load h6k | h5k + add v30.4s, v30.4s, v31.4s //CTR block 8k+13 + rev64 v11.16b, v11.16b //GHASH block 8k+3 + + rev64 v10.16b, v10.16b //GHASH block 8k+2 + eor v8.16b, v8.16b, v19.16b //PRE 1 + + rev32 v6.16b, v30.16b //CTR block 8k+14 + + pmull2 v16.1q, v9.2d, v23.2d //GHASH block 8k+1 - high + pmull v19.1q, v8.1d, v25.1d //GHASH block 8k - low + pmull2 v17.1q, v8.2d, v25.2d //GHASH block 8k - high + + rev64 v13.16b, v13.16b //GHASH block 8k+5 (t0, t1, t2 and t3 free) + trn1 v18.2d, v9.2d, v8.2d //GHASH block 8k, 8k+1 - mid + + pmull v23.1q, v9.1d, v23.1d //GHASH block 8k+1 - low + eor v17.16b, v17.16b, v16.16b //GHASH block 8k+1 - high + trn2 v8.2d, v9.2d, v8.2d //GHASH block 8k, 8k+1 - mid + + eor v19.16b, v19.16b, v23.16b //GHASH block 8k+1 - low + eor v8.16b, v8.16b, v18.16b //GHASH block 8k, 8k+1 - mid + + ldp q26, q27, [x8, #0] //load rk0, rk1 + add v30.4s, v30.4s, v31.4s //CTR block 8k+14 + + pmull2 v18.1q, v8.2d, v24.2d //GHASH block 8k - mid + pmull v24.1q, v8.1d, v24.1d //GHASH block 8k+1 - mid + + rev64 v12.16b, v12.16b //GHASH block 8k+4 (t0, t1, and t2 free) + rev64 v15.16b, v15.16b //GHASH block 8k+7 (t0, t1, t2 and t3 free) + + eor v18.16b, v18.16b, v24.16b //GHASH block 8k+1 - mid + + rev32 v7.16b, v30.16b //CTR block 8k+15 + + rev64 v14.16b, v14.16b //GHASH block 8k+6 (t0, t1, and t2 free) + + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 0 + + pmull2 v9.1q, v11.2d, v20.2d //GHASH block 8k+3 - high + pmull2 v29.1q, v10.2d, v22.2d //GHASH block 8k+2 - high + + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 0 + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 0 + + pmull v22.1q, v10.1d, v22.1d //GHASH block 8k+2 - low + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 0 + +.long 0xce1d2631 //eor3 v17.16b, v17.16b, v29.16b, v9.16b //GHASH block 8k+2, 8k+3 - high + trn1 v29.2d, v11.2d, v10.2d //GHASH block 8k+2, 8k+3 - mid + trn2 v10.2d, v11.2d, v10.2d //GHASH block 8k+2, 8k+3 - mid + + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 0 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 0 + + eor v10.16b, v10.16b, v29.16b //GHASH block 8k+2, 8k+3 - mid + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 0 + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 0 + + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 1 + pmull v20.1q, v11.1d, v20.1d //GHASH block 8k+3 - low + + ldr q23, [x3, #80] //load h3l | h3h + ext v23.16b, v23.16b, v23.16b, #8 + ldr q25, [x3, #112] //load h4l | h4h + ext v25.16b, v25.16b, v25.16b, #8 + + ldp q28, q26, [x8, #32] //load rk2, rk3 + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 1 + pmull2 v29.1q, v10.2d, v21.2d //GHASH block 8k+2 - mid + +.long 0xce165273 //eor3 v19.16b, v19.16b, v22.16b, v20.16b //GHASH block 8k+2, 8k+3 - low + pmull v21.1q, v10.1d, v21.1d //GHASH block 8k+3 - mid + + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 1 + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 1 + +.long 0xce157652 //eor3 v18.16b, v18.16b, v21.16b, v29.16b //GHASH block 8k+2, 8k+3 - mid + ldr q21, [x3, #48] //load h2k | h1k + ldr q24, [x3, #96] //load h4k | h3k + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 1 + + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 1 + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 1 + + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 2 + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 2 + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 2 + + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 2 + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 1 + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 2 + + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 3 + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 2 + + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 2 + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 2 + ldp q27, q28, [x8, #64] //load rk4, rk5 + + ldr q20, [x3, #32] //load h1l | h1h + ext v20.16b, v20.16b, v20.16b, #8 + ldr q22, [x3, #64] //load h1l | h1h + ext v22.16b, v22.16b, v22.16b, #8 + trn1 v16.2d, v13.2d, v12.2d //GHASH block 8k+4, 8k+5 - mid + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 3 + + pmull2 v8.1q, v12.2d, v25.2d //GHASH block 8k+4 - high + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 3 + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 3 + + pmull v25.1q, v12.1d, v25.1d //GHASH block 8k+4 - low + trn2 v12.2d, v13.2d, v12.2d //GHASH block 8k+4, 8k+5 - mid + pmull2 v10.1q, v13.2d, v23.2d //GHASH block 8k+5 - high + + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 3 + add v30.4s, v30.4s, v31.4s //CTR block 8k+15 + + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 3 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 3 + eor v12.16b, v12.16b, v16.16b //GHASH block 8k+4, 8k+5 - mid + + pmull v23.1q, v13.1d, v23.1d //GHASH block 8k+5 - low + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 3 + pmull2 v11.1q, v14.2d, v22.2d //GHASH block 8k+6 - high + + trn1 v13.2d, v15.2d, v14.2d //GHASH block 8k+6, 8k+7 - mid + pmull v22.1q, v14.1d, v22.1d //GHASH block 8k+6 - low + trn2 v14.2d, v15.2d, v14.2d //GHASH block 8k+6, 8k+7 - mid + + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 4 + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 4 +.long 0xce082a31 //eor3 v17.16b, v17.16b, v8.16b, v10.16b //GHASH block 8k+4, 8k+5 - high + +.long 0xce195e73 //eor3 v19.16b, v19.16b, v25.16b, v23.16b //GHASH block 8k+4, 8k+5 - low + eor v14.16b, v14.16b, v13.16b //GHASH block 8k+6, 8k+7 - mid + pmull2 v16.1q, v12.2d, v24.2d //GHASH block 8k+4 - mid + + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 5 + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 4 + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 4 + + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 4 + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 4 + + pmull v24.1q, v12.1d, v24.1d //GHASH block 8k+5 - mid + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 4 + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 4 + + pmull2 v12.1q, v15.2d, v20.2d //GHASH block 8k+7 - high + ldp q26, q27, [x8, #96] //load rk6, rk7 + pmull v20.1q, v15.1d, v20.1d //GHASH block 8k+7 - low + +.long 0xce184252 //eor3 v18.16b, v18.16b, v24.16b, v16.16b //GHASH block 8k+4, 8k+5 - mid + pmull2 v13.1q, v14.2d, v21.2d //GHASH block 8k+6 - mid + pmull v21.1q, v14.1d, v21.1d //GHASH block 8k+7 - mid + + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 5 + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 5 + ldr d16, [x10] //MODULO - load modulo constant + + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 5 + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 5 + +.long 0xce0b3231 //eor3 v17.16b, v17.16b, v11.16b, v12.16b //GHASH block 8k+6, 8k+7 - high + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 5 + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 5 + + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 5 + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 6 + + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 6 + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 6 + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 6 + + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 6 +.long 0xce165273 //eor3 v19.16b, v19.16b, v22.16b, v20.16b //GHASH block 8k+6, 8k+7 - low +.long 0xce153652 //eor3 v18.16b, v18.16b, v21.16b, v13.16b //GHASH block 8k+6, 8k+7 - mid + + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 6 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 6 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 6 + + pmull v21.1q, v17.1d, v16.1d //MODULO - top 64b align with mid +.long 0xce114e52 //eor3 v18.16b, v18.16b, v17.16b, v19.16b //MODULO - karatsuba tidy up + ldp q28, q26, [x8, #128] //load rk8, rk9 + + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 7 + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 7 + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 7 + ext v29.16b, v17.16b, v17.16b, #8 //MODULO - other top alignment + + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 7 + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 7 +.long 0xce1d5652 //eor3 v18.16b, v18.16b, v29.16b, v21.16b //MODULO - fold into mid + + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 7 + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 7 + + pmull v17.1q, v18.1d, v16.1d //MODULO - mid 64b align with low + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 7 + + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 8 + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 8 + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 8 + ext v18.16b, v18.16b, v18.16b, #8 //MODULO - other mid alignment + + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 8 +.long 0xce114a73 //eor3 v19.16b, v19.16b, v17.16b, v18.16b //MODULO - fold into low + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 8 + + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 8 + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 8 + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 8 + + ldr q27, [x8, #160] //load rk10 + aese v6.16b, v26.16b //AES block 8k+14 - round 9 + aese v2.16b, v26.16b //AES block 8k+10 - round 9 + + aese v0.16b, v26.16b //AES block 8k+8 - round 9 + aese v1.16b, v26.16b //AES block 8k+9 - round 9 + + aese v3.16b, v26.16b //AES block 8k+11 - round 9 + aese v5.16b, v26.16b //AES block 8k+13 - round 9 + + aese v4.16b, v26.16b //AES block 8k+12 - round 9 + aese v7.16b, v26.16b //AES block 8k+15 - round 9 +L128_enc_tail: //TAIL + + sub x5, x4, x0 //main_end_input_ptr is number of bytes left to process + ldr q8, [x0], #16 //AES block 8k+8 - load plaintext + + mov v29.16b, v27.16b + ldp q20, q21, [x3, #128] //load h5l | h5h + ext v20.16b, v20.16b, v20.16b, #8 + +.long 0xce007509 //eor3 v9.16b, v8.16b, v0.16b, v29.16b //AES block 8k+8 - result + ext v16.16b, v19.16b, v19.16b, #8 //prepare final partial tag + ldp q22, q23, [x3, #160] //load h6l | h6h + ext v22.16b, v22.16b, v22.16b, #8 + ext v23.16b, v23.16b, v23.16b, #8 + + ldp q24, q25, [x3, #192] //load h8k | h7k + ext v25.16b, v25.16b, v25.16b, #8 + cmp x5, #112 + b.gt L128_enc_blocks_more_than_7 + + mov v7.16b, v6.16b + mov v6.16b, v5.16b + movi v17.8b, #0 + + cmp x5, #96 + sub v30.4s, v30.4s, v31.4s + mov v5.16b, v4.16b + + mov v4.16b, v3.16b + mov v3.16b, v2.16b + mov v2.16b, v1.16b + + movi v19.8b, #0 + movi v18.8b, #0 + b.gt L128_enc_blocks_more_than_6 + + mov v7.16b, v6.16b + cmp x5, #80 + + sub v30.4s, v30.4s, v31.4s + mov v6.16b, v5.16b + mov v5.16b, v4.16b + + mov v4.16b, v3.16b + mov v3.16b, v1.16b + b.gt L128_enc_blocks_more_than_5 + + cmp x5, #64 + sub v30.4s, v30.4s, v31.4s + + mov v7.16b, v6.16b + mov v6.16b, v5.16b + + mov v5.16b, v4.16b + mov v4.16b, v1.16b + b.gt L128_enc_blocks_more_than_4 + + mov v7.16b, v6.16b + sub v30.4s, v30.4s, v31.4s + mov v6.16b, v5.16b + + mov v5.16b, v1.16b + cmp x5, #48 + b.gt L128_enc_blocks_more_than_3 + + sub v30.4s, v30.4s, v31.4s + mov v7.16b, v6.16b + mov v6.16b, v1.16b + + cmp x5, #32 + ldr q24, [x3, #96] //load h4k | h3k + b.gt L128_enc_blocks_more_than_2 + + cmp x5, #16 + + sub v30.4s, v30.4s, v31.4s + mov v7.16b, v1.16b + b.gt L128_enc_blocks_more_than_1 + + ldr q21, [x3, #48] //load h2k | h1k + sub v30.4s, v30.4s, v31.4s + b L128_enc_blocks_less_than_1 +L128_enc_blocks_more_than_7: //blocks left > 7 + st1 { v9.16b}, [x2], #16 //AES final-7 block - store result + + rev64 v8.16b, v9.16b //GHASH final-7 block + ldr q9, [x0], #16 //AES final-6 block - load plaintext + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + + ins v27.d[0], v8.d[1] //GHASH final-7 block - mid + + pmull2 v17.1q, v8.2d, v25.2d //GHASH final-7 block - high + + ins v18.d[0], v24.d[1] //GHASH final-7 block - mid + + eor v27.8b, v27.8b, v8.8b //GHASH final-7 block - mid + movi v16.8b, #0 //suppress further partial tag feed in + +.long 0xce017529 //eor3 v9.16b, v9.16b, v1.16b, v29.16b //AES final-6 block - result + + pmull v18.1q, v27.1d, v18.1d //GHASH final-7 block - mid + pmull v19.1q, v8.1d, v25.1d //GHASH final-7 block - low +L128_enc_blocks_more_than_6: //blocks left > 6 + + st1 { v9.16b}, [x2], #16 //AES final-6 block - store result + + rev64 v8.16b, v9.16b //GHASH final-6 block + ldr q9, [x0], #16 //AES final-5 block - load plaintext + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + + ins v27.d[0], v8.d[1] //GHASH final-6 block - mid + +.long 0xce027529 //eor3 v9.16b, v9.16b, v2.16b, v29.16b //AES final-5 block - result + pmull v26.1q, v8.1d, v23.1d //GHASH final-6 block - low + + eor v27.8b, v27.8b, v8.8b //GHASH final-6 block - mid + movi v16.8b, #0 //suppress further partial tag feed in + + pmull v27.1q, v27.1d, v24.1d //GHASH final-6 block - mid + pmull2 v28.1q, v8.2d, v23.2d //GHASH final-6 block - high + + eor v19.16b, v19.16b, v26.16b //GHASH final-6 block - low + + eor v18.16b, v18.16b, v27.16b //GHASH final-6 block - mid + eor v17.16b, v17.16b, v28.16b //GHASH final-6 block - high +L128_enc_blocks_more_than_5: //blocks left > 5 + + st1 { v9.16b}, [x2], #16 //AES final-5 block - store result + + rev64 v8.16b, v9.16b //GHASH final-5 block + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + + ins v27.d[0], v8.d[1] //GHASH final-5 block - mid + ldr q9, [x0], #16 //AES final-4 block - load plaintext + pmull2 v28.1q, v8.2d, v22.2d //GHASH final-5 block - high + + eor v17.16b, v17.16b, v28.16b //GHASH final-5 block - high + + eor v27.8b, v27.8b, v8.8b //GHASH final-5 block - mid + + ins v27.d[1], v27.d[0] //GHASH final-5 block - mid + +.long 0xce037529 //eor3 v9.16b, v9.16b, v3.16b, v29.16b //AES final-4 block - result + pmull v26.1q, v8.1d, v22.1d //GHASH final-5 block - low + movi v16.8b, #0 //suppress further partial tag feed in + + pmull2 v27.1q, v27.2d, v21.2d //GHASH final-5 block - mid + eor v19.16b, v19.16b, v26.16b //GHASH final-5 block - low + + eor v18.16b, v18.16b, v27.16b //GHASH final-5 block - mid +L128_enc_blocks_more_than_4: //blocks left > 4 + + st1 { v9.16b}, [x2], #16 //AES final-4 block - store result + + rev64 v8.16b, v9.16b //GHASH final-4 block + + ldr q9, [x0], #16 //AES final-3 block - load plaintext + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + + ins v27.d[0], v8.d[1] //GHASH final-4 block - mid + movi v16.8b, #0 //suppress further partial tag feed in + pmull2 v28.1q, v8.2d, v20.2d //GHASH final-4 block - high + + eor v27.8b, v27.8b, v8.8b //GHASH final-4 block - mid + + pmull v26.1q, v8.1d, v20.1d //GHASH final-4 block - low + + eor v17.16b, v17.16b, v28.16b //GHASH final-4 block - high + pmull v27.1q, v27.1d, v21.1d //GHASH final-4 block - mid + + eor v19.16b, v19.16b, v26.16b //GHASH final-4 block - low + +.long 0xce047529 //eor3 v9.16b, v9.16b, v4.16b, v29.16b //AES final-3 block - result + eor v18.16b, v18.16b, v27.16b //GHASH final-4 block - mid +L128_enc_blocks_more_than_3: //blocks left > 3 + + st1 { v9.16b}, [x2], #16 //AES final-3 block - store result + + ldr q25, [x3, #112] //load h4l | h4h + ext v25.16b, v25.16b, v25.16b, #8 + + rev64 v8.16b, v9.16b //GHASH final-3 block + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + movi v16.8b, #0 //suppress further partial tag feed in + + ins v27.d[0], v8.d[1] //GHASH final-3 block - mid + ldr q24, [x3, #96] //load h4k | h3k + pmull v26.1q, v8.1d, v25.1d //GHASH final-3 block - low + + ldr q9, [x0], #16 //AES final-2 block - load plaintext + + eor v27.8b, v27.8b, v8.8b //GHASH final-3 block - mid + + ins v27.d[1], v27.d[0] //GHASH final-3 block - mid + eor v19.16b, v19.16b, v26.16b //GHASH final-3 block - low + +.long 0xce057529 //eor3 v9.16b, v9.16b, v5.16b, v29.16b //AES final-2 block - result + + pmull2 v27.1q, v27.2d, v24.2d //GHASH final-3 block - mid + pmull2 v28.1q, v8.2d, v25.2d //GHASH final-3 block - high + + eor v18.16b, v18.16b, v27.16b //GHASH final-3 block - mid + eor v17.16b, v17.16b, v28.16b //GHASH final-3 block - high +L128_enc_blocks_more_than_2: //blocks left > 2 + + st1 { v9.16b}, [x2], #16 //AES final-2 block - store result + + rev64 v8.16b, v9.16b //GHASH final-2 block + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + + ldr q9, [x0], #16 //AES final-1 block - load plaintext + + ins v27.d[0], v8.d[1] //GHASH final-2 block - mid + ldr q23, [x3, #80] //load h3l | h3h + ext v23.16b, v23.16b, v23.16b, #8 + movi v16.8b, #0 //suppress further partial tag feed in + + eor v27.8b, v27.8b, v8.8b //GHASH final-2 block - mid +.long 0xce067529 //eor3 v9.16b, v9.16b, v6.16b, v29.16b //AES final-1 block - result + + pmull2 v28.1q, v8.2d, v23.2d //GHASH final-2 block - high + + pmull v26.1q, v8.1d, v23.1d //GHASH final-2 block - low + pmull v27.1q, v27.1d, v24.1d //GHASH final-2 block - mid + + eor v17.16b, v17.16b, v28.16b //GHASH final-2 block - high + + eor v18.16b, v18.16b, v27.16b //GHASH final-2 block - mid + eor v19.16b, v19.16b, v26.16b //GHASH final-2 block - low +L128_enc_blocks_more_than_1: //blocks left > 1 + + st1 { v9.16b}, [x2], #16 //AES final-1 block - store result + + ldr q22, [x3, #64] //load h2l | h2h + ext v22.16b, v22.16b, v22.16b, #8 + rev64 v8.16b, v9.16b //GHASH final-1 block + ldr q9, [x0], #16 //AES final block - load plaintext + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + + movi v16.8b, #0 //suppress further partial tag feed in + ins v27.d[0], v8.d[1] //GHASH final-1 block - mid +.long 0xce077529 //eor3 v9.16b, v9.16b, v7.16b, v29.16b //AES final block - result + + pmull2 v28.1q, v8.2d, v22.2d //GHASH final-1 block - high + + eor v27.8b, v27.8b, v8.8b //GHASH final-1 block - mid + + ldr q21, [x3, #48] //load h2k | h1k + + ins v27.d[1], v27.d[0] //GHASH final-1 block - mid + + pmull v26.1q, v8.1d, v22.1d //GHASH final-1 block - low + pmull2 v27.1q, v27.2d, v21.2d //GHASH final-1 block - mid + + eor v17.16b, v17.16b, v28.16b //GHASH final-1 block - high + + eor v18.16b, v18.16b, v27.16b //GHASH final-1 block - mid + eor v19.16b, v19.16b, v26.16b //GHASH final-1 block - low +L128_enc_blocks_less_than_1: //blocks left <= 1 + + rev32 v30.16b, v30.16b + str q30, [x16] //store the updated counter + and x1, x1, #127 //bit_length %= 128 + + sub x1, x1, #128 //bit_length -= 128 + + neg x1, x1 //bit_length = 128 - #bits in input (in range [1,128]) + + mvn x6, xzr //temp0_x = 0xffffffffffffffff + ld1 { v26.16b}, [x2] //load existing bytes where the possibly partial last block is to be stored + and x1, x1, #127 //bit_length %= 128 + + lsr x6, x6, x1 //temp0_x is mask for top 64b of last block + mvn x7, xzr //temp1_x = 0xffffffffffffffff + cmp x1, #64 + + csel x13, x7, x6, lt + csel x14, x6, xzr, lt + + mov v0.d[1], x14 + mov v0.d[0], x13 //ctr0b is mask for last block + + and v9.16b, v9.16b, v0.16b //possibly partial last block has zeroes in highest bits + + rev64 v8.16b, v9.16b //GHASH final block + + bif v9.16b, v26.16b, v0.16b //insert existing bytes in top end of result before storing + st1 { v9.16b}, [x2] //store all 16B + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + + ins v16.d[0], v8.d[1] //GHASH final block - mid + + eor v16.8b, v16.8b, v8.8b //GHASH final block - mid + ldr q20, [x3, #32] //load h1l | h1h + ext v20.16b, v20.16b, v20.16b, #8 + + pmull v16.1q, v16.1d, v21.1d //GHASH final block - mid + + pmull2 v28.1q, v8.2d, v20.2d //GHASH final block - high + eor v18.16b, v18.16b, v16.16b //GHASH final block - mid + ldr d16, [x10] //MODULO - load modulo constant + + pmull v26.1q, v8.1d, v20.1d //GHASH final block - low + + eor v17.16b, v17.16b, v28.16b //GHASH final block - high + + eor v19.16b, v19.16b, v26.16b //GHASH final block - low + + ext v21.16b, v17.16b, v17.16b, #8 //MODULO - other top alignment + pmull v29.1q, v17.1d, v16.1d //MODULO - top 64b align with mid + +.long 0xce114e52 //eor3 v18.16b, v18.16b, v17.16b, v19.16b //MODULO - karatsuba tidy up + +.long 0xce1d5652 //eor3 v18.16b, v18.16b, v29.16b, v21.16b //MODULO - fold into mid + + pmull v17.1q, v18.1d, v16.1d //MODULO - mid 64b align with low + ext v21.16b, v18.16b, v18.16b, #8 //MODULO - other mid alignment + +.long 0xce115673 //eor3 v19.16b, v19.16b, v17.16b, v21.16b //MODULO - fold into low + ext v19.16b, v19.16b, v19.16b, #8 + rev64 v19.16b, v19.16b + st1 { v19.16b }, [x3] + mov x0, x9 + + ldp d10, d11, [sp, #16] + ldp d12, d13, [sp, #32] + ldp d14, d15, [sp, #48] + ldp d8, d9, [sp], #80 + ret + +L128_enc_ret: + mov w0, #0x0 + ret + +.globl _unroll8_eor3_aes_gcm_dec_128_kernel + +.align 4 +_unroll8_eor3_aes_gcm_dec_128_kernel: + AARCH64_VALID_CALL_TARGET + cbz x1, L128_dec_ret + stp d8, d9, [sp, #-80]! + lsr x9, x1, #3 + mov x16, x4 + mov x8, x5 + stp d10, d11, [sp, #16] + stp d12, d13, [sp, #32] + stp d14, d15, [sp, #48] + mov x5, #0xc200000000000000 + stp x5, xzr, [sp, #64] + add x10, sp, #64 + + mov x5, x9 + ld1 { v0.16b}, [x16] //CTR block 0 + + ldp q26, q27, [x8, #0] //load rk0, rk1 + sub x5, x5, #1 //byte_len - 1 + + mov x15, #0x100000000 //set up counter increment + movi v31.16b, #0x0 + mov v31.d[1], x15 + ld1 { v19.16b}, [x3] + ext v19.16b, v19.16b, v19.16b, #8 + rev64 v19.16b, v19.16b + + rev32 v30.16b, v0.16b //set up reversed counter + + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 0 - round 0 + + add v30.4s, v30.4s, v31.4s //CTR block 0 + + rev32 v1.16b, v30.16b //CTR block 1 + add v30.4s, v30.4s, v31.4s //CTR block 1 + + and x5, x5, #0xffffffffffffff80 //number of bytes to be processed in main loop (at least 1 byte must be handled by tail) + + rev32 v2.16b, v30.16b //CTR block 2 + add v30.4s, v30.4s, v31.4s //CTR block 2 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 1 - round 0 + + rev32 v3.16b, v30.16b //CTR block 3 + add v30.4s, v30.4s, v31.4s //CTR block 3 + + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 0 - round 1 + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 1 - round 1 + + rev32 v4.16b, v30.16b //CTR block 4 + add v30.4s, v30.4s, v31.4s //CTR block 4 + + rev32 v5.16b, v30.16b //CTR block 5 + add v30.4s, v30.4s, v31.4s //CTR block 5 + + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 2 - round 0 + + rev32 v6.16b, v30.16b //CTR block 6 + add v30.4s, v30.4s, v31.4s //CTR block 6 + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 5 - round 0 + + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 3 - round 0 + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 4 - round 0 + + rev32 v7.16b, v30.16b //CTR block 7 + + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 6 - round 0 + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 2 - round 1 + + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 7 - round 0 + + ldp q28, q26, [x8, #32] //load rk2, rk3 + + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 6 - round 1 + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 5 - round 1 + + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 4 - round 1 + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 7 - round 1 + + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 7 - round 2 + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 0 - round 2 + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 3 - round 1 + + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 6 - round 2 + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 2 - round 2 + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 5 - round 2 + + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 4 - round 2 + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 3 - round 2 + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 1 - round 2 + + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 6 - round 3 + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 2 - round 3 + + ldp q27, q28, [x8, #64] //load rk4, rk5 + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 5 - round 3 + + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 0 - round 3 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 7 - round 3 + + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 3 - round 3 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 1 - round 3 + + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 0 - round 4 + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 7 - round 4 + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 4 - round 3 + + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 6 - round 4 + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 1 - round 4 + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 3 - round 4 + + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 5 - round 4 + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 4 - round 4 + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 2 - round 4 + + ldp q26, q27, [x8, #96] //load rk6, rk7 + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 2 - round 5 + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 3 - round 5 + + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 6 - round 5 + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 1 - round 5 + + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 7 - round 5 + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 5 - round 5 + + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 4 - round 5 + + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 3 - round 6 + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 2 - round 6 + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 0 - round 5 + + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 5 - round 6 + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 4 - round 6 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 1 - round 6 + + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 0 - round 6 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 7 - round 6 + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 6 - round 6 + + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 3 - round 7 + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 4 - round 7 + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 1 - round 7 + + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 7 - round 7 + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 5 - round 7 + ldp q28, q26, [x8, #128] //load rk8, rk9 + + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 6 - round 7 + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 2 - round 7 + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 0 - round 7 + + add x5, x5, x0 + add v30.4s, v30.4s, v31.4s //CTR block 7 + + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 6 - round 8 + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 0 - round 8 + + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 1 - round 8 + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 7 - round 8 + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 3 - round 8 + + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 5 - round 8 + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 2 - round 8 + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 4 - round 8 + + aese v0.16b, v26.16b //AES block 0 - round 9 + aese v1.16b, v26.16b //AES block 1 - round 9 + aese v6.16b, v26.16b //AES block 6 - round 9 + + ldr q27, [x8, #160] //load rk10 + aese v4.16b, v26.16b //AES block 4 - round 9 + aese v3.16b, v26.16b //AES block 3 - round 9 + + aese v2.16b, v26.16b //AES block 2 - round 9 + aese v5.16b, v26.16b //AES block 5 - round 9 + aese v7.16b, v26.16b //AES block 7 - round 9 + + add x4, x0, x1, lsr #3 //end_input_ptr + cmp x0, x5 //check if we have <= 8 blocks + b.ge L128_dec_tail //handle tail + + ldp q8, q9, [x0], #32 //AES block 0, 1 - load ciphertext + +.long 0xce006d00 //eor3 v0.16b, v8.16b, v0.16b, v27.16b //AES block 0 - result +.long 0xce016d21 //eor3 v1.16b, v9.16b, v1.16b, v27.16b //AES block 1 - result + stp q0, q1, [x2], #32 //AES block 0, 1 - store result + + rev32 v0.16b, v30.16b //CTR block 8 + add v30.4s, v30.4s, v31.4s //CTR block 8 + ldp q10, q11, [x0], #32 //AES block 2, 3 - load ciphertext + + ldp q12, q13, [x0], #32 //AES block 4, 5 - load ciphertext + + rev32 v1.16b, v30.16b //CTR block 9 + add v30.4s, v30.4s, v31.4s //CTR block 9 + ldp q14, q15, [x0], #32 //AES block 6, 7 - load ciphertext + +.long 0xce036d63 //eor3 v3.16b, v11.16b, v3.16b, v27.16b //AES block 3 - result +.long 0xce026d42 //eor3 v2.16b, v10.16b, v2.16b, v27.16b //AES block 2 - result + stp q2, q3, [x2], #32 //AES block 2, 3 - store result + + rev32 v2.16b, v30.16b //CTR block 10 + add v30.4s, v30.4s, v31.4s //CTR block 10 + +.long 0xce066dc6 //eor3 v6.16b, v14.16b, v6.16b, v27.16b //AES block 6 - result + + rev32 v3.16b, v30.16b //CTR block 11 + add v30.4s, v30.4s, v31.4s //CTR block 11 + +.long 0xce046d84 //eor3 v4.16b, v12.16b, v4.16b, v27.16b //AES block 4 - result +.long 0xce056da5 //eor3 v5.16b, v13.16b, v5.16b, v27.16b //AES block 5 - result + stp q4, q5, [x2], #32 //AES block 4, 5 - store result + +.long 0xce076de7 //eor3 v7.16b, v15.16b, v7.16b, v27.16b //AES block 7 - result + stp q6, q7, [x2], #32 //AES block 6, 7 - store result + rev32 v4.16b, v30.16b //CTR block 12 + + cmp x0, x5 //check if we have <= 8 blocks + add v30.4s, v30.4s, v31.4s //CTR block 12 + b.ge L128_dec_prepretail //do prepretail + +L128_dec_main_loop: //main loop start + ldr q23, [x3, #176] //load h7l | h7h + ext v23.16b, v23.16b, v23.16b, #8 + ldr q25, [x3, #208] //load h8l | h8h + ext v25.16b, v25.16b, v25.16b, #8 + + rev64 v9.16b, v9.16b //GHASH block 8k+1 + rev64 v8.16b, v8.16b //GHASH block 8k + ext v19.16b, v19.16b, v19.16b, #8 //PRE 0 + + rev64 v14.16b, v14.16b //GHASH block 8k+6 + ldr q20, [x3, #128] //load h5l | h5h + ext v20.16b, v20.16b, v20.16b, #8 + ldr q22, [x3, #160] //load h6l | h6h + ext v22.16b, v22.16b, v22.16b, #8 + + eor v8.16b, v8.16b, v19.16b //PRE 1 + rev32 v5.16b, v30.16b //CTR block 8k+13 + add v30.4s, v30.4s, v31.4s //CTR block 8k+13 + + rev64 v10.16b, v10.16b //GHASH block 8k+2 + rev64 v12.16b, v12.16b //GHASH block 8k+4 + ldp q26, q27, [x8, #0] //load rk0, rk1 + + rev32 v6.16b, v30.16b //CTR block 8k+14 + add v30.4s, v30.4s, v31.4s //CTR block 8k+14 + ldr q21, [x3, #144] //load h6k | h5k + ldr q24, [x3, #192] //load h8k | h7k + + pmull2 v16.1q, v9.2d, v23.2d //GHASH block 8k+1 - high + pmull2 v17.1q, v8.2d, v25.2d //GHASH block 8k - high + rev64 v11.16b, v11.16b //GHASH block 8k+3 + + rev32 v7.16b, v30.16b //CTR block 8k+15 + trn1 v18.2d, v9.2d, v8.2d //GHASH block 8k, 8k+1 - mid + rev64 v13.16b, v13.16b //GHASH block 8k+5 + + pmull v23.1q, v9.1d, v23.1d //GHASH block 8k+1 - low + pmull v19.1q, v8.1d, v25.1d //GHASH block 8k - low + trn2 v8.2d, v9.2d, v8.2d //GHASH block 8k, 8k+1 - mid + + pmull2 v29.1q, v10.2d, v22.2d //GHASH block 8k+2 - high + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 0 + pmull2 v9.1q, v11.2d, v20.2d //GHASH block 8k+3 - high + + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 0 + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 0 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 0 + + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 0 + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 0 + eor v17.16b, v17.16b, v16.16b //GHASH block 8k+1 - high + + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 0 + eor v8.16b, v8.16b, v18.16b //GHASH block 8k, 8k+1 - mid + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 0 + + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 1 + eor v19.16b, v19.16b, v23.16b //GHASH block 8k+1 - low +.long 0xce1d2631 //eor3 v17.16b, v17.16b, v29.16b, v9.16b //GHASH block 8k+2, 8k+3 - high + + ldp q28, q26, [x8, #32] //load rk2, rk3 + trn1 v29.2d, v11.2d, v10.2d //GHASH block 8k+2, 8k+3 - mid + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 1 + + pmull v22.1q, v10.1d, v22.1d //GHASH block 8k+2 - low + trn2 v10.2d, v11.2d, v10.2d //GHASH block 8k+2, 8k+3 - mid + pmull2 v18.1q, v8.2d, v24.2d //GHASH block 8k - mid + + ldr q23, [x3, #80] //load h3l | h3h + ext v23.16b, v23.16b, v23.16b, #8 + ldr q25, [x3, #112] //load h4l | h4h + ext v25.16b, v25.16b, v25.16b, #8 + pmull v24.1q, v8.1d, v24.1d //GHASH block 8k+1 - mid + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 1 + + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 1 + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 1 + pmull v20.1q, v11.1d, v20.1d //GHASH block 8k+3 - low + + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 1 + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 1 + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 1 + + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 2 + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 2 +.long 0xce165273 //eor3 v19.16b, v19.16b, v22.16b, v20.16b //GHASH block 8k+2, 8k+3 - low + + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 2 + eor v10.16b, v10.16b, v29.16b //GHASH block 8k+2, 8k+3 - mid + ldr q20, [x3, #32] //load h1l | h1h + ext v20.16b, v20.16b, v20.16b, #8 + ldr q22, [x3, #64] //load h2l | h2h + ext v22.16b, v22.16b, v22.16b, #8 + + eor v18.16b, v18.16b, v24.16b //GHASH block 8k+1 - mid + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 2 + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 2 + + trn1 v16.2d, v13.2d, v12.2d //GHASH block 8k+4, 8k+5 - mid + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 2 + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 2 + + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 2 + pmull2 v29.1q, v10.2d, v21.2d //GHASH block 8k+2 - mid + pmull v21.1q, v10.1d, v21.1d //GHASH block 8k+3 - mid + + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 3 + rev64 v15.16b, v15.16b //GHASH block 8k+7 + pmull2 v8.1q, v12.2d, v25.2d //GHASH block 8k+4 - high + + ldp q27, q28, [x8, #64] //load rk4, rk5 + pmull v25.1q, v12.1d, v25.1d //GHASH block 8k+4 - low +.long 0xce157652 //eor3 v18.16b, v18.16b, v21.16b, v29.16b //GHASH block 8k+2, 8k+3 - mid + + ldr q21, [x3, #48] //load h2k | h1k + ldr q24, [x3, #96] //load h4k | h3k + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 3 + trn2 v12.2d, v13.2d, v12.2d //GHASH block 8k+4, 8k+5 - mid + + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 3 + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 3 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 3 + + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 3 + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 3 + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 3 + + pmull2 v10.1q, v13.2d, v23.2d //GHASH block 8k+5 - high + pmull v23.1q, v13.1d, v23.1d //GHASH block 8k+5 - low + pmull2 v11.1q, v14.2d, v22.2d //GHASH block 8k+6 - high + + pmull v22.1q, v14.1d, v22.1d //GHASH block 8k+6 - low + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 4 + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 4 + + eor v12.16b, v12.16b, v16.16b //GHASH block 8k+4, 8k+5 - mid + trn1 v13.2d, v15.2d, v14.2d //GHASH block 8k+6, 8k+7 - mid + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 4 + + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 4 + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 4 + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 4 + + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 4 + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 4 + trn2 v14.2d, v15.2d, v14.2d //GHASH block 8k+6, 8k+7 - mid + + ldp q26, q27, [x8, #96] //load rk6, rk7 + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 5 + pmull2 v16.1q, v12.2d, v24.2d //GHASH block 8k+4 - mid + + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 5 + eor v14.16b, v14.16b, v13.16b //GHASH block 8k+6, 8k+7 - mid + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 5 + + pmull v24.1q, v12.1d, v24.1d //GHASH block 8k+5 - mid + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 5 + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 5 + + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 5 + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 5 + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 5 + + pmull2 v12.1q, v15.2d, v20.2d //GHASH block 8k+7 - high +.long 0xce184252 //eor3 v18.16b, v18.16b, v24.16b, v16.16b //GHASH block 8k+4, 8k+5 - mid +.long 0xce195e73 //eor3 v19.16b, v19.16b, v25.16b, v23.16b //GHASH block 8k+4, 8k+5 - low + + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 6 +.long 0xce082a31 //eor3 v17.16b, v17.16b, v8.16b, v10.16b //GHASH block 8k+4, 8k+5 - high + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 6 + + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 6 + pmull2 v13.1q, v14.2d, v21.2d //GHASH block 8k+6 - mid + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 6 + + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 6 + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 6 + pmull v20.1q, v15.1d, v20.1d //GHASH block 8k+7 - low + + pmull v21.1q, v14.1d, v21.1d //GHASH block 8k+7 - mid + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 6 + add v30.4s, v30.4s, v31.4s //CTR block 8k+15 + +.long 0xce0b3231 //eor3 v17.16b, v17.16b, v11.16b, v12.16b //GHASH block 8k+6, 8k+7 - high + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 6 + ldp q28, q26, [x8, #128] //load rk8, rk9 + + ldr d16, [x10] //MODULO - load modulo constant +.long 0xce165273 //eor3 v19.16b, v19.16b, v22.16b, v20.16b //GHASH block 8k+6, 8k+7 - low + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 7 + + rev32 v20.16b, v30.16b //CTR block 8k+16 +.long 0xce153652 //eor3 v18.16b, v18.16b, v21.16b, v13.16b //GHASH block 8k+6, 8k+7 - mid + add v30.4s, v30.4s, v31.4s //CTR block 8k+16 + + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 7 + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 7 + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 7 + + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 7 + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 7 + rev32 v22.16b, v30.16b //CTR block 8k+17 + + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 7 + ext v21.16b, v17.16b, v17.16b, #8 //MODULO - other top alignment + pmull v29.1q, v17.1d, v16.1d //MODULO - top 64b align with mid + +.long 0xce114e52 //eor3 v18.16b, v18.16b, v17.16b, v19.16b //MODULO - karatsuba tidy up + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 7 + add v30.4s, v30.4s, v31.4s //CTR block 8k+17 + + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 8 + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 8 + ldp q8, q9, [x0], #32 //AES block 8k+8, 8k+9 - load ciphertext + + ldp q10, q11, [x0], #32 //AES block 8k+10, 8k+11 - load ciphertext + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 8 + rev32 v23.16b, v30.16b //CTR block 8k+18 + + ldp q12, q13, [x0], #32 //AES block 8k+12, 8k+13 - load ciphertext + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 8 +.long 0xce1d5652 //eor3 v18.16b, v18.16b, v29.16b, v21.16b //MODULO - fold into mid + + ldp q14, q15, [x0], #32 //AES block 8k+14, 8k+15 - load ciphertext + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 8 + add v30.4s, v30.4s, v31.4s //CTR block 8k+18 + + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 8 + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 8 + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 8 + + aese v0.16b, v26.16b //AES block 8k+8 - round 9 + aese v1.16b, v26.16b //AES block 8k+9 - round 9 + ldr q27, [x8, #160] //load rk10 + + aese v6.16b, v26.16b //AES block 8k+14 - round 9 + pmull v17.1q, v18.1d, v16.1d //MODULO - mid 64b align with low + aese v2.16b, v26.16b //AES block 8k+10 - round 9 + + aese v7.16b, v26.16b //AES block 8k+15 - round 9 + aese v4.16b, v26.16b //AES block 8k+12 - round 9 + ext v21.16b, v18.16b, v18.16b, #8 //MODULO - other mid alignment + + rev32 v25.16b, v30.16b //CTR block 8k+19 + add v30.4s, v30.4s, v31.4s //CTR block 8k+19 + + aese v3.16b, v26.16b //AES block 8k+11 - round 9 + aese v5.16b, v26.16b //AES block 8k+13 - round 9 +.long 0xce016d21 //eor3 v1.16b, v9.16b, v1.16b, v27.16b //AES block 8k+9 - result + +.long 0xce006d00 //eor3 v0.16b, v8.16b, v0.16b, v27.16b //AES block 8k+8 - result +.long 0xce076de7 //eor3 v7.16b, v15.16b, v7.16b, v27.16b //AES block 8k+15 - result +.long 0xce066dc6 //eor3 v6.16b, v14.16b, v6.16b, v27.16b //AES block 8k+14 - result + +.long 0xce026d42 //eor3 v2.16b, v10.16b, v2.16b, v27.16b //AES block 8k+10 - result + stp q0, q1, [x2], #32 //AES block 8k+8, 8k+9 - store result + mov v1.16b, v22.16b //CTR block 8k+17 + +.long 0xce046d84 //eor3 v4.16b, v12.16b, v4.16b, v27.16b //AES block 8k+12 - result +.long 0xce115673 //eor3 v19.16b, v19.16b, v17.16b, v21.16b //MODULO - fold into low + mov v0.16b, v20.16b //CTR block 8k+16 + +.long 0xce036d63 //eor3 v3.16b, v11.16b, v3.16b, v27.16b //AES block 8k+11 - result + cmp x0, x5 //LOOP CONTROL + stp q2, q3, [x2], #32 //AES block 8k+10, 8k+11 - store result + +.long 0xce056da5 //eor3 v5.16b, v13.16b, v5.16b, v27.16b //AES block 8k+13 - result + mov v2.16b, v23.16b //CTR block 8k+18 + + stp q4, q5, [x2], #32 //AES block 8k+12, 8k+13 - store result + rev32 v4.16b, v30.16b //CTR block 8k+20 + add v30.4s, v30.4s, v31.4s //CTR block 8k+20 + + stp q6, q7, [x2], #32 //AES block 8k+14, 8k+15 - store result + mov v3.16b, v25.16b //CTR block 8k+19 + b.lt L128_dec_main_loop + +L128_dec_prepretail: //PREPRETAIL + rev64 v11.16b, v11.16b //GHASH block 8k+3 + ext v19.16b, v19.16b, v19.16b, #8 //PRE 0 + rev64 v8.16b, v8.16b //GHASH block 8k + + rev64 v10.16b, v10.16b //GHASH block 8k+2 + rev32 v5.16b, v30.16b //CTR block 8k+13 + ldp q26, q27, [x8, #0] //load rk0, rk1 + + ldr q23, [x3, #176] //load h7l | h7h + ext v23.16b, v23.16b, v23.16b, #8 + ldr q25, [x3, #208] //load h8l | h8h + ext v25.16b, v25.16b, v25.16b, #8 + eor v8.16b, v8.16b, v19.16b //PRE 1 + rev64 v9.16b, v9.16b //GHASH block 8k+1 + + add v30.4s, v30.4s, v31.4s //CTR block 8k+13 + ldr q20, [x3, #128] //load h5l | h5h + ext v20.16b, v20.16b, v20.16b, #8 + ldr q22, [x3, #160] //load h6l | h6h + ext v22.16b, v22.16b, v22.16b, #8 + rev64 v13.16b, v13.16b //GHASH block 8k+5 + + rev64 v12.16b, v12.16b //GHASH block 8k+4 + + rev64 v14.16b, v14.16b //GHASH block 8k+6 + + ldr q21, [x3, #144] //load h6k | h5k + ldr q24, [x3, #192] //load h8k | h7k + rev32 v6.16b, v30.16b //CTR block 8k+14 + add v30.4s, v30.4s, v31.4s //CTR block 8k+14 + + pmull2 v16.1q, v9.2d, v23.2d //GHASH block 8k+1 - high + pmull v19.1q, v8.1d, v25.1d //GHASH block 8k - low + pmull2 v17.1q, v8.2d, v25.2d //GHASH block 8k - high + + trn1 v18.2d, v9.2d, v8.2d //GHASH block 8k, 8k+1 - mid + trn2 v8.2d, v9.2d, v8.2d //GHASH block 8k, 8k+1 - mid + pmull2 v29.1q, v10.2d, v22.2d //GHASH block 8k+2 - high + + pmull v23.1q, v9.1d, v23.1d //GHASH block 8k+1 - low + pmull2 v9.1q, v11.2d, v20.2d //GHASH block 8k+3 - high + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 0 + + eor v17.16b, v17.16b, v16.16b //GHASH block 8k+1 - high + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 0 + eor v8.16b, v8.16b, v18.16b //GHASH block 8k, 8k+1 - mid + + pmull v22.1q, v10.1d, v22.1d //GHASH block 8k+2 - low + rev32 v7.16b, v30.16b //CTR block 8k+15 + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 0 + +.long 0xce1d2631 //eor3 v17.16b, v17.16b, v29.16b, v9.16b //GHASH block 8k+2, 8k+3 - high + trn1 v29.2d, v11.2d, v10.2d //GHASH block 8k+2, 8k+3 - mid + trn2 v10.2d, v11.2d, v10.2d //GHASH block 8k+2, 8k+3 - mid + + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 0 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 0 + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 0 + + pmull2 v18.1q, v8.2d, v24.2d //GHASH block 8k - mid + pmull v24.1q, v8.1d, v24.1d //GHASH block 8k+1 - mid + pmull v20.1q, v11.1d, v20.1d //GHASH block 8k+3 - low + + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 1 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 0 + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 0 + + eor v19.16b, v19.16b, v23.16b //GHASH block 8k+1 - low + eor v10.16b, v10.16b, v29.16b //GHASH block 8k+2, 8k+3 - mid + eor v18.16b, v18.16b, v24.16b //GHASH block 8k+1 - mid + + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 1 + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 1 + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 1 + + ldp q28, q26, [x8, #32] //load rk2, rk3 +.long 0xce165273 //eor3 v19.16b, v19.16b, v22.16b, v20.16b //GHASH block 8k+2, 8k+3 - low + pmull2 v29.1q, v10.2d, v21.2d //GHASH block 8k+2 - mid + + ldr q23, [x3, #80] //load h3l | h3h + ext v23.16b, v23.16b, v23.16b, #8 + ldr q25, [x3, #112] //load h4l | h4h + ext v25.16b, v25.16b, v25.16b, #8 + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 1 + pmull v21.1q, v10.1d, v21.1d //GHASH block 8k+3 - mid + + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 1 + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 1 + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 1 + + ldr q20, [x3, #32] //load h1l | h1h + ext v20.16b, v20.16b, v20.16b, #8 + ldr q22, [x3, #64] //load h2l | h2h + ext v22.16b, v22.16b, v22.16b, #8 +.long 0xce157652 //eor3 v18.16b, v18.16b, v21.16b, v29.16b //GHASH block 8k+2, 8k+3 - mid + + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 2 + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 2 + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 2 + + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 2 + trn1 v16.2d, v13.2d, v12.2d //GHASH block 8k+4, 8k+5 - mid + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 2 + + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 2 + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 2 + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 2 + + pmull2 v8.1q, v12.2d, v25.2d //GHASH block 8k+4 - high + pmull v25.1q, v12.1d, v25.1d //GHASH block 8k+4 - low + trn2 v12.2d, v13.2d, v12.2d //GHASH block 8k+4, 8k+5 - mid + + ldp q27, q28, [x8, #64] //load rk4, rk5 + rev64 v15.16b, v15.16b //GHASH block 8k+7 + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 3 + + ldr q21, [x3, #48] //load h2k | h1k + ldr q24, [x3, #96] //load h4k | h3k + pmull2 v10.1q, v13.2d, v23.2d //GHASH block 8k+5 - high + pmull v23.1q, v13.1d, v23.1d //GHASH block 8k+5 - low + + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 3 + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 3 + trn1 v13.2d, v15.2d, v14.2d //GHASH block 8k+6, 8k+7 - mid + + pmull2 v11.1q, v14.2d, v22.2d //GHASH block 8k+6 - high + pmull v22.1q, v14.1d, v22.1d //GHASH block 8k+6 - low + trn2 v14.2d, v15.2d, v14.2d //GHASH block 8k+6, 8k+7 - mid + + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 3 + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 3 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 3 + + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 3 + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 3 + eor v12.16b, v12.16b, v16.16b //GHASH block 8k+4, 8k+5 - mid + +.long 0xce082a31 //eor3 v17.16b, v17.16b, v8.16b, v10.16b //GHASH block 8k+4, 8k+5 - high + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 4 + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 4 + + eor v14.16b, v14.16b, v13.16b //GHASH block 8k+6, 8k+7 - mid + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 4 + pmull2 v16.1q, v12.2d, v24.2d //GHASH block 8k+4 - mid + + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 4 + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 4 + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 4 + + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 4 + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 4 + pmull v24.1q, v12.1d, v24.1d //GHASH block 8k+5 - mid + + pmull2 v12.1q, v15.2d, v20.2d //GHASH block 8k+7 - high + pmull2 v13.1q, v14.2d, v21.2d //GHASH block 8k+6 - mid + pmull v21.1q, v14.1d, v21.1d //GHASH block 8k+7 - mid + + ldp q26, q27, [x8, #96] //load rk6, rk7 +.long 0xce184252 //eor3 v18.16b, v18.16b, v24.16b, v16.16b //GHASH block 8k+4, 8k+5 - mid + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 5 + + ldr d16, [x10] //MODULO - load modulo constant + pmull v20.1q, v15.1d, v20.1d //GHASH block 8k+7 - low +.long 0xce195e73 //eor3 v19.16b, v19.16b, v25.16b, v23.16b //GHASH block 8k+4, 8k+5 - low + + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 5 + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 5 + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 5 + + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 5 + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 5 + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 5 + + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 5 +.long 0xce153652 //eor3 v18.16b, v18.16b, v21.16b, v13.16b //GHASH block 8k+6, 8k+7 - mid +.long 0xce165273 //eor3 v19.16b, v19.16b, v22.16b, v20.16b //GHASH block 8k+6, 8k+7 - low + + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 6 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 6 + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 6 + +.long 0xce0b3231 //eor3 v17.16b, v17.16b, v11.16b, v12.16b //GHASH block 8k+6, 8k+7 - high + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 6 + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 6 + + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 6 + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 6 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 6 + + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 7 +.long 0xce114e52 //eor3 v18.16b, v18.16b, v17.16b, v19.16b //MODULO - karatsuba tidy up + ldp q28, q26, [x8, #128] //load rk8, rk9 + + pmull v29.1q, v17.1d, v16.1d //MODULO - top 64b align with mid + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 7 + ext v21.16b, v17.16b, v17.16b, #8 //MODULO - other top alignment + + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 7 + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 7 + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 7 + + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 7 + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 7 + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 7 + +.long 0xce1d5652 //eor3 v18.16b, v18.16b, v29.16b, v21.16b //MODULO - fold into mid + ldr q27, [x8, #160] //load rk10 + + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 8 + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 8 + + pmull v17.1q, v18.1d, v16.1d //MODULO - mid 64b align with low + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 8 + ext v21.16b, v18.16b, v18.16b, #8 //MODULO - other mid alignment + + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 8 + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 8 + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 8 + + aese v6.16b, v26.16b //AES block 8k+14 - round 9 + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 8 + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 8 + +.long 0xce115673 //eor3 v19.16b, v19.16b, v17.16b, v21.16b //MODULO - fold into low + add v30.4s, v30.4s, v31.4s //CTR block 8k+15 + aese v2.16b, v26.16b //AES block 8k+10 - round 9 + + aese v3.16b, v26.16b //AES block 8k+11 - round 9 + aese v5.16b, v26.16b //AES block 8k+13 - round 9 + aese v0.16b, v26.16b //AES block 8k+8 - round 9 + + aese v4.16b, v26.16b //AES block 8k+12 - round 9 + aese v1.16b, v26.16b //AES block 8k+9 - round 9 + aese v7.16b, v26.16b //AES block 8k+15 - round 9 + +L128_dec_tail: //TAIL + + mov v29.16b, v27.16b + sub x5, x4, x0 //main_end_input_ptr is number of bytes left to process + + cmp x5, #112 + + ldp q24, q25, [x3, #192] //load h8k | h7k + ext v25.16b, v25.16b, v25.16b, #8 + ldr q9, [x0], #16 //AES block 8k+8 - load ciphertext + + ldp q20, q21, [x3, #128] //load h5l | h5h + ext v20.16b, v20.16b, v20.16b, #8 + ext v16.16b, v19.16b, v19.16b, #8 //prepare final partial tag + + ldp q22, q23, [x3, #160] //load h6l | h6h + ext v22.16b, v22.16b, v22.16b, #8 + ext v23.16b, v23.16b, v23.16b, #8 + +.long 0xce00752c //eor3 v12.16b, v9.16b, v0.16b, v29.16b //AES block 8k+8 - result + b.gt L128_dec_blocks_more_than_7 + + cmp x5, #96 + mov v7.16b, v6.16b + movi v19.8b, #0 + + movi v17.8b, #0 + mov v6.16b, v5.16b + mov v5.16b, v4.16b + + mov v4.16b, v3.16b + mov v3.16b, v2.16b + mov v2.16b, v1.16b + + movi v18.8b, #0 + sub v30.4s, v30.4s, v31.4s + b.gt L128_dec_blocks_more_than_6 + + cmp x5, #80 + sub v30.4s, v30.4s, v31.4s + + mov v7.16b, v6.16b + mov v6.16b, v5.16b + mov v5.16b, v4.16b + + mov v4.16b, v3.16b + mov v3.16b, v1.16b + b.gt L128_dec_blocks_more_than_5 + + cmp x5, #64 + + mov v7.16b, v6.16b + mov v6.16b, v5.16b + mov v5.16b, v4.16b + + mov v4.16b, v1.16b + sub v30.4s, v30.4s, v31.4s + b.gt L128_dec_blocks_more_than_4 + + sub v30.4s, v30.4s, v31.4s + mov v7.16b, v6.16b + mov v6.16b, v5.16b + + mov v5.16b, v1.16b + cmp x5, #48 + b.gt L128_dec_blocks_more_than_3 + + sub v30.4s, v30.4s, v31.4s + mov v7.16b, v6.16b + cmp x5, #32 + + ldr q24, [x3, #96] //load h4k | h3k + mov v6.16b, v1.16b + b.gt L128_dec_blocks_more_than_2 + + cmp x5, #16 + + mov v7.16b, v1.16b + sub v30.4s, v30.4s, v31.4s + b.gt L128_dec_blocks_more_than_1 + + sub v30.4s, v30.4s, v31.4s + ldr q21, [x3, #48] //load h2k | h1k + b L128_dec_blocks_less_than_1 +L128_dec_blocks_more_than_7: //blocks left > 7 + rev64 v8.16b, v9.16b //GHASH final-7 block + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + + ins v18.d[0], v24.d[1] //GHASH final-7 block - mid + + pmull v19.1q, v8.1d, v25.1d //GHASH final-7 block - low + ins v27.d[0], v8.d[1] //GHASH final-7 block - mid + + movi v16.8b, #0 //suppress further partial tag feed in + ldr q9, [x0], #16 //AES final-6 block - load ciphertext + + eor v27.8b, v27.8b, v8.8b //GHASH final-7 block - mid + + pmull2 v17.1q, v8.2d, v25.2d //GHASH final-7 block - high + st1 { v12.16b}, [x2], #16 //AES final-7 block - store result +.long 0xce01752c //eor3 v12.16b, v9.16b, v1.16b, v29.16b //AES final-6 block - result + + pmull v18.1q, v27.1d, v18.1d //GHASH final-7 block - mid +L128_dec_blocks_more_than_6: //blocks left > 6 + + rev64 v8.16b, v9.16b //GHASH final-6 block + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + + ins v27.d[0], v8.d[1] //GHASH final-6 block - mid + + eor v27.8b, v27.8b, v8.8b //GHASH final-6 block - mid + + pmull v26.1q, v8.1d, v23.1d //GHASH final-6 block - low + ldr q9, [x0], #16 //AES final-5 block - load ciphertext + movi v16.8b, #0 //suppress further partial tag feed in + + pmull v27.1q, v27.1d, v24.1d //GHASH final-6 block - mid + st1 { v12.16b}, [x2], #16 //AES final-6 block - store result + pmull2 v28.1q, v8.2d, v23.2d //GHASH final-6 block - high + + eor v19.16b, v19.16b, v26.16b //GHASH final-6 block - low + eor v17.16b, v17.16b, v28.16b //GHASH final-6 block - high + + eor v18.16b, v18.16b, v27.16b //GHASH final-6 block - mid +.long 0xce02752c //eor3 v12.16b, v9.16b, v2.16b, v29.16b //AES final-5 block - result +L128_dec_blocks_more_than_5: //blocks left > 5 + + rev64 v8.16b, v9.16b //GHASH final-5 block + + ldr q9, [x0], #16 //AES final-4 block - load ciphertext + st1 { v12.16b}, [x2], #16 //AES final-5 block - store result + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + + ins v27.d[0], v8.d[1] //GHASH final-5 block - mid + +.long 0xce03752c //eor3 v12.16b, v9.16b, v3.16b, v29.16b //AES final-4 block - result + + eor v27.8b, v27.8b, v8.8b //GHASH final-5 block - mid + + ins v27.d[1], v27.d[0] //GHASH final-5 block - mid + pmull v26.1q, v8.1d, v22.1d //GHASH final-5 block - low + movi v16.8b, #0 //suppress further partial tag feed in + + pmull2 v27.1q, v27.2d, v21.2d //GHASH final-5 block - mid + pmull2 v28.1q, v8.2d, v22.2d //GHASH final-5 block - high + eor v19.16b, v19.16b, v26.16b //GHASH final-5 block - low + + eor v18.16b, v18.16b, v27.16b //GHASH final-5 block - mid + eor v17.16b, v17.16b, v28.16b //GHASH final-5 block - high +L128_dec_blocks_more_than_4: //blocks left > 4 + + rev64 v8.16b, v9.16b //GHASH final-4 block + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + ldr q9, [x0], #16 //AES final-3 block - load ciphertext + + ins v27.d[0], v8.d[1] //GHASH final-4 block - mid + movi v16.8b, #0 //suppress further partial tag feed in + pmull2 v28.1q, v8.2d, v20.2d //GHASH final-4 block - high + + pmull v26.1q, v8.1d, v20.1d //GHASH final-4 block - low + + eor v17.16b, v17.16b, v28.16b //GHASH final-4 block - high + + st1 { v12.16b}, [x2], #16 //AES final-4 block - store result + eor v27.8b, v27.8b, v8.8b //GHASH final-4 block - mid + +.long 0xce04752c //eor3 v12.16b, v9.16b, v4.16b, v29.16b //AES final-3 block - result + eor v19.16b, v19.16b, v26.16b //GHASH final-4 block - low + + pmull v27.1q, v27.1d, v21.1d //GHASH final-4 block - mid + + eor v18.16b, v18.16b, v27.16b //GHASH final-4 block - mid +L128_dec_blocks_more_than_3: //blocks left > 3 + + st1 { v12.16b}, [x2], #16 //AES final-3 block - store result + rev64 v8.16b, v9.16b //GHASH final-3 block + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + + ins v27.d[0], v8.d[1] //GHASH final-3 block - mid + + ldr q25, [x3, #112] //load h4l | h4h + ext v25.16b, v25.16b, v25.16b, #8 + ldr q24, [x3, #96] //load h4k | h3k + + eor v27.8b, v27.8b, v8.8b //GHASH final-3 block - mid + + ldr q9, [x0], #16 //AES final-2 block - load ciphertext + + ins v27.d[1], v27.d[0] //GHASH final-3 block - mid + pmull v26.1q, v8.1d, v25.1d //GHASH final-3 block - low + pmull2 v28.1q, v8.2d, v25.2d //GHASH final-3 block - high + + movi v16.8b, #0 //suppress further partial tag feed in +.long 0xce05752c //eor3 v12.16b, v9.16b, v5.16b, v29.16b //AES final-2 block - result + eor v19.16b, v19.16b, v26.16b //GHASH final-3 block - low + + pmull2 v27.1q, v27.2d, v24.2d //GHASH final-3 block - mid + + eor v17.16b, v17.16b, v28.16b //GHASH final-3 block - high + eor v18.16b, v18.16b, v27.16b //GHASH final-3 block - mid +L128_dec_blocks_more_than_2: //blocks left > 2 + + rev64 v8.16b, v9.16b //GHASH final-2 block + + st1 { v12.16b}, [x2], #16 //AES final-2 block - store result + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + ldr q23, [x3, #80] //load h3l | h3h + ext v23.16b, v23.16b, v23.16b, #8 + movi v16.8b, #0 //suppress further partial tag feed in + + ins v27.d[0], v8.d[1] //GHASH final-2 block - mid + + eor v27.8b, v27.8b, v8.8b //GHASH final-2 block - mid + + pmull v26.1q, v8.1d, v23.1d //GHASH final-2 block - low + + pmull2 v28.1q, v8.2d, v23.2d //GHASH final-2 block - high + pmull v27.1q, v27.1d, v24.1d //GHASH final-2 block - mid + ldr q9, [x0], #16 //AES final-1 block - load ciphertext + + eor v18.16b, v18.16b, v27.16b //GHASH final-2 block - mid + + eor v19.16b, v19.16b, v26.16b //GHASH final-2 block - low + +.long 0xce06752c //eor3 v12.16b, v9.16b, v6.16b, v29.16b //AES final-1 block - result + eor v17.16b, v17.16b, v28.16b //GHASH final-2 block - high +L128_dec_blocks_more_than_1: //blocks left > 1 + + st1 { v12.16b}, [x2], #16 //AES final-1 block - store result + rev64 v8.16b, v9.16b //GHASH final-1 block + + ldr q22, [x3, #64] //load h2l | h2h + ext v22.16b, v22.16b, v22.16b, #8 + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + + movi v16.8b, #0 //suppress further partial tag feed in + + ins v27.d[0], v8.d[1] //GHASH final-1 block - mid + + ldr q9, [x0], #16 //AES final block - load ciphertext + pmull2 v28.1q, v8.2d, v22.2d //GHASH final-1 block - high + + eor v27.8b, v27.8b, v8.8b //GHASH final-1 block - mid + eor v17.16b, v17.16b, v28.16b //GHASH final-1 block - high + ldr q21, [x3, #48] //load h2k | h1k + + ins v27.d[1], v27.d[0] //GHASH final-1 block - mid +.long 0xce07752c //eor3 v12.16b, v9.16b, v7.16b, v29.16b //AES final block - result + + pmull v26.1q, v8.1d, v22.1d //GHASH final-1 block - low + + pmull2 v27.1q, v27.2d, v21.2d //GHASH final-1 block - mid + + eor v19.16b, v19.16b, v26.16b //GHASH final-1 block - low + + eor v18.16b, v18.16b, v27.16b //GHASH final-1 block - mid +L128_dec_blocks_less_than_1: //blocks left <= 1 + + and x1, x1, #127 //bit_length %= 128 + + sub x1, x1, #128 //bit_length -= 128 + + neg x1, x1 //bit_length = 128 - #bits in input (in range [1,128]) + + mvn x6, xzr //temp0_x = 0xffffffffffffffff + and x1, x1, #127 //bit_length %= 128 + + lsr x6, x6, x1 //temp0_x is mask for top 64b of last block + cmp x1, #64 + mvn x7, xzr //temp1_x = 0xffffffffffffffff + + csel x13, x7, x6, lt + csel x14, x6, xzr, lt + + mov v0.d[1], x14 + mov v0.d[0], x13 //ctr0b is mask for last block + + ldr q20, [x3, #32] //load h1l | h1h + ext v20.16b, v20.16b, v20.16b, #8 + ld1 { v26.16b}, [x2] //load existing bytes where the possibly partial last block is to be stored + + and v9.16b, v9.16b, v0.16b //possibly partial last block has zeroes in highest bits + + rev64 v8.16b, v9.16b //GHASH final block + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + + pmull2 v28.1q, v8.2d, v20.2d //GHASH final block - high + ins v16.d[0], v8.d[1] //GHASH final block - mid + + eor v17.16b, v17.16b, v28.16b //GHASH final block - high + eor v16.8b, v16.8b, v8.8b //GHASH final block - mid + + bif v12.16b, v26.16b, v0.16b //insert existing bytes in top end of result before storing + + pmull v16.1q, v16.1d, v21.1d //GHASH final block - mid + st1 { v12.16b}, [x2] //store all 16B + + pmull v26.1q, v8.1d, v20.1d //GHASH final block - low + + eor v18.16b, v18.16b, v16.16b //GHASH final block - mid + ldr d16, [x10] //MODULO - load modulo constant + + eor v19.16b, v19.16b, v26.16b //GHASH final block - low + + eor v14.16b, v17.16b, v19.16b //MODULO - karatsuba tidy up + + pmull v21.1q, v17.1d, v16.1d //MODULO - top 64b align with mid + ext v17.16b, v17.16b, v17.16b, #8 //MODULO - other top alignment + + eor v18.16b, v18.16b, v14.16b //MODULO - karatsuba tidy up + +.long 0xce115652 //eor3 v18.16b, v18.16b, v17.16b, v21.16b //MODULO - fold into mid + + pmull v17.1q, v18.1d, v16.1d //MODULO - mid 64b align with low + ext v18.16b, v18.16b, v18.16b, #8 //MODULO - other mid alignment + +.long 0xce124673 //eor3 v19.16b, v19.16b, v18.16b, v17.16b //MODULO - fold into low + ext v19.16b, v19.16b, v19.16b, #8 + rev64 v19.16b, v19.16b + st1 { v19.16b }, [x3] + rev32 v30.16b, v30.16b + + str q30, [x16] //store the updated counter + + mov x0, x9 + + ldp d10, d11, [sp, #16] + ldp d12, d13, [sp, #32] + ldp d14, d15, [sp, #48] + ldp d8, d9, [sp], #80 + ret +L128_dec_ret: + mov w0, #0x0 + ret + +.globl _unroll8_eor3_aes_gcm_enc_192_kernel + +.align 4 +_unroll8_eor3_aes_gcm_enc_192_kernel: + AARCH64_VALID_CALL_TARGET + cbz x1, L192_enc_ret + stp d8, d9, [sp, #-80]! + lsr x9, x1, #3 + mov x16, x4 + mov x8, x5 + stp d10, d11, [sp, #16] + stp d12, d13, [sp, #32] + stp d14, d15, [sp, #48] + mov x5, #0xc200000000000000 + stp x5, xzr, [sp, #64] + add x10, sp, #64 + + mov x5, x9 + ld1 { v0.16b}, [x16] //CTR block 0 + + mov x15, #0x100000000 //set up counter increment + movi v31.16b, #0x0 + mov v31.d[1], x15 + + rev32 v30.16b, v0.16b //set up reversed counter + + add v30.4s, v30.4s, v31.4s //CTR block 0 + + rev32 v1.16b, v30.16b //CTR block 1 + add v30.4s, v30.4s, v31.4s //CTR block 1 + + rev32 v2.16b, v30.16b //CTR block 2 + add v30.4s, v30.4s, v31.4s //CTR block 2 + + rev32 v3.16b, v30.16b //CTR block 3 + add v30.4s, v30.4s, v31.4s //CTR block 3 + + rev32 v4.16b, v30.16b //CTR block 4 + add v30.4s, v30.4s, v31.4s //CTR block 4 + sub x5, x5, #1 //byte_len - 1 + + and x5, x5, #0xffffffffffffff80 //number of bytes to be processed in main loop (at least 1 byte must be handled by tail) + + rev32 v5.16b, v30.16b //CTR block 5 + add v30.4s, v30.4s, v31.4s //CTR block 5 + ldp q26, q27, [x8, #0] //load rk0, rk1 + + add x5, x5, x0 + + rev32 v6.16b, v30.16b //CTR block 6 + add v30.4s, v30.4s, v31.4s //CTR block 6 + + rev32 v7.16b, v30.16b //CTR block 7 + + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 5 - round 0 + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 4 - round 0 + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 3 - round 0 + + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 0 - round 0 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 1 - round 0 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 7 - round 0 + + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 6 - round 0 + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 2 - round 0 + ldp q28, q26, [x8, #32] //load rk2, rk3 + + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 5 - round 1 + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 7 - round 1 + + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 2 - round 1 + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 3 - round 1 + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 6 - round 1 + + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 5 - round 2 + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 4 - round 1 + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 0 - round 1 + + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 1 - round 1 + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 7 - round 2 + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 3 - round 2 + + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 2 - round 2 + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 0 - round 2 + + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 1 - round 2 + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 4 - round 2 + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 6 - round 2 + + ldp q27, q28, [x8, #64] //load rk4, rk5 + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 4 - round 3 + + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 7 - round 3 + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 3 - round 3 + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 2 - round 3 + + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 1 - round 3 + + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 0 - round 3 + + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 6 - round 3 + + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 0 - round 4 + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 1 - round 4 + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 5 - round 3 + + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 3 - round 4 + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 2 - round 4 + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 4 - round 4 + + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 6 - round 4 + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 7 - round 4 + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 5 - round 4 + + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 1 - round 5 + ldp q26, q27, [x8, #96] //load rk6, rk7 + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 2 - round 5 + + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 4 - round 5 + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 7 - round 5 + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 0 - round 5 + + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 5 - round 5 + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 6 - round 5 + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 3 - round 5 + + add v30.4s, v30.4s, v31.4s //CTR block 7 + + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 5 - round 6 + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 4 - round 6 + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 3 - round 6 + + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 2 - round 6 + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 6 - round 6 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 1 - round 6 + + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 0 - round 6 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 7 - round 6 + ldp q28, q26, [x8, #128] //load rk8, rk9 + + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 6 - round 7 + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 3 - round 7 + + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 4 - round 7 + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 0 - round 7 + + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 7 - round 7 + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 1 - round 7 + + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 2 - round 7 + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 5 - round 7 + + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 7 - round 8 + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 0 - round 8 + + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 4 - round 8 + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 3 - round 8 + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 5 - round 8 + + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 2 - round 8 + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 1 - round 8 + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 6 - round 8 + + add x4, x0, x1, lsr #3 //end_input_ptr + cmp x0, x5 //check if we have <= 8 blocks + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 3 - round 9 + + ld1 { v19.16b}, [x3] + ext v19.16b, v19.16b, v19.16b, #8 + rev64 v19.16b, v19.16b + ldp q27, q28, [x8, #160] //load rk10, rk11 + + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 6 - round 9 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 1 - round 9 + + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 5 - round 9 + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 2 - round 9 + + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 0 - round 9 + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 4 - round 9 + + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 14 - round 10 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 7 - round 9 + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 11 - round 10 + + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 9 - round 10 + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 13 - round 10 + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 12 - round 10 + + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8 - round 10 + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 10 - round 10 + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 15 - round 10 + + aese v6.16b, v28.16b //AES block 14 - round 11 + aese v3.16b, v28.16b //AES block 11 - round 11 + + aese v4.16b, v28.16b //AES block 12 - round 11 + aese v7.16b, v28.16b //AES block 15 - round 11 + ldr q26, [x8, #192] //load rk12 + + aese v1.16b, v28.16b //AES block 9 - round 11 + aese v5.16b, v28.16b //AES block 13 - round 11 + + aese v2.16b, v28.16b //AES block 10 - round 11 + aese v0.16b, v28.16b //AES block 8 - round 11 + b.ge L192_enc_tail //handle tail + + ldp q8, q9, [x0], #32 //AES block 0, 1 - load plaintext + + ldp q10, q11, [x0], #32 //AES block 2, 3 - load plaintext + + ldp q12, q13, [x0], #32 //AES block 4, 5 - load plaintext + + ldp q14, q15, [x0], #32 //AES block 6, 7 - load plaintext + +.long 0xce006908 //eor3 v8.16b, v8.16b, v0.16b, v26.16b //AES block 0 - result + rev32 v0.16b, v30.16b //CTR block 8 + add v30.4s, v30.4s, v31.4s //CTR block 8 + +.long 0xce03696b //eor3 v11.16b, v11.16b, v3.16b, v26.16b //AES block 3 - result +.long 0xce016929 //eor3 v9.16b, v9.16b, v1.16b, v26.16b //AES block 1 - result + + rev32 v1.16b, v30.16b //CTR block 9 + add v30.4s, v30.4s, v31.4s //CTR block 9 +.long 0xce04698c //eor3 v12.16b, v12.16b, v4.16b, v26.16b //AES block 4 - result + +.long 0xce0569ad //eor3 v13.16b, v13.16b, v5.16b, v26.16b //AES block 5 - result +.long 0xce0769ef //eor3 v15.16b, v15.16b, v7.16b, v26.16b //AES block 7 - result + stp q8, q9, [x2], #32 //AES block 0, 1 - store result + +.long 0xce02694a //eor3 v10.16b, v10.16b, v2.16b, v26.16b //AES block 2 - result + rev32 v2.16b, v30.16b //CTR block 10 + add v30.4s, v30.4s, v31.4s //CTR block 10 + + stp q10, q11, [x2], #32 //AES block 2, 3 - store result + cmp x0, x5 //check if we have <= 8 blocks + + rev32 v3.16b, v30.16b //CTR block 11 + add v30.4s, v30.4s, v31.4s //CTR block 11 +.long 0xce0669ce //eor3 v14.16b, v14.16b, v6.16b, v26.16b //AES block 6 - result + + stp q12, q13, [x2], #32 //AES block 4, 5 - store result + + rev32 v4.16b, v30.16b //CTR block 12 + stp q14, q15, [x2], #32 //AES block 6, 7 - store result + add v30.4s, v30.4s, v31.4s //CTR block 12 + + b.ge L192_enc_prepretail //do prepretail + +L192_enc_main_loop: //main loop start + rev64 v12.16b, v12.16b //GHASH block 8k+4 (t0, t1, and t2 free) + ldp q26, q27, [x8, #0] //load rk0, rk1 + rev64 v10.16b, v10.16b //GHASH block 8k+2 + + rev32 v5.16b, v30.16b //CTR block 8k+13 + add v30.4s, v30.4s, v31.4s //CTR block 8k+13 + ldr q23, [x3, #176] //load h7l | h7h + ext v23.16b, v23.16b, v23.16b, #8 + ldr q25, [x3, #208] //load h8l | h8h + ext v25.16b, v25.16b, v25.16b, #8 + + ext v19.16b, v19.16b, v19.16b, #8 //PRE 0 + rev64 v8.16b, v8.16b //GHASH block 8k + ldr q20, [x3, #128] //load h5l | h5h + ext v20.16b, v20.16b, v20.16b, #8 + ldr q22, [x3, #160] //load h6l | h6h + ext v22.16b, v22.16b, v22.16b, #8 + + rev64 v9.16b, v9.16b //GHASH block 8k+1 + rev32 v6.16b, v30.16b //CTR block 8k+14 + add v30.4s, v30.4s, v31.4s //CTR block 8k+14 + + eor v8.16b, v8.16b, v19.16b //PRE 1 + rev64 v11.16b, v11.16b //GHASH block 8k+3 + rev64 v13.16b, v13.16b //GHASH block 8k+5 (t0, t1, t2 and t3 free) + + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 0 + rev32 v7.16b, v30.16b //CTR block 8k+15 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 0 + + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 0 + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 0 + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 0 + + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 0 + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 0 + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 0 + + ldp q28, q26, [x8, #32] //load rk2, rk3 + pmull2 v17.1q, v8.2d, v25.2d //GHASH block 8k - high + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 1 + + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 1 + pmull2 v16.1q, v9.2d, v23.2d //GHASH block 8k+1 - high + pmull v23.1q, v9.1d, v23.1d //GHASH block 8k+1 - low + + trn1 v18.2d, v9.2d, v8.2d //GHASH block 8k, 8k+1 - mid + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 1 + ldr q21, [x3, #144] //load h6k | h5k + ldr q24, [x3, #192] //load h8k | h7k + + pmull2 v29.1q, v10.2d, v22.2d //GHASH block 8k+2 - high + pmull v19.1q, v8.1d, v25.1d //GHASH block 8k - low + trn2 v8.2d, v9.2d, v8.2d //GHASH block 8k, 8k+1 - mid + + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 1 + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 1 + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 1 + + eor v17.16b, v17.16b, v16.16b //GHASH block 8k+1 - high + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 1 + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 1 + + pmull2 v9.1q, v11.2d, v20.2d //GHASH block 8k+3 - high + eor v8.16b, v8.16b, v18.16b //GHASH block 8k, 8k+1 - mid + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 2 + + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 2 + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 2 + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 2 + + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 2 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 3 +.long 0xce1d2631 //eor3 v17.16b, v17.16b, v29.16b, v9.16b //GHASH block 8k+2, 8k+3 - high + + pmull v22.1q, v10.1d, v22.1d //GHASH block 8k+2 - low + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 2 + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 3 + + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 2 + trn1 v29.2d, v11.2d, v10.2d //GHASH block 8k+2, 8k+3 - mid + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 2 + + trn2 v10.2d, v11.2d, v10.2d //GHASH block 8k+2, 8k+3 - mid + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 3 + ldp q27, q28, [x8, #64] //load rk4, rk5 + + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 3 + eor v19.16b, v19.16b, v23.16b //GHASH block 8k+1 - low + ldr q23, [x3, #80] //load h3l | h3h + ext v23.16b, v23.16b, v23.16b, #8 + ldr q25, [x3, #112] //load h4l | h4h + ext v25.16b, v25.16b, v25.16b, #8 + + pmull2 v18.1q, v8.2d, v24.2d //GHASH block 8k - mid + pmull v24.1q, v8.1d, v24.1d //GHASH block 8k+1 - mid + pmull v20.1q, v11.1d, v20.1d //GHASH block 8k+3 - low + + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 3 + eor v10.16b, v10.16b, v29.16b //GHASH block 8k+2, 8k+3 - mid + trn1 v16.2d, v13.2d, v12.2d //GHASH block 8k+4, 8k+5 - mid + + eor v18.16b, v18.16b, v24.16b //GHASH block 8k+1 - mid + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 3 +.long 0xce165273 //eor3 v19.16b, v19.16b, v22.16b, v20.16b //GHASH block 8k+2, 8k+3 - low + + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 4 + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 4 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 3 + + pmull2 v29.1q, v10.2d, v21.2d //GHASH block 8k+2 - mid + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 4 + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 3 + + pmull v21.1q, v10.1d, v21.1d //GHASH block 8k+3 - mid + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 4 + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 4 + + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 4 + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 4 + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 4 + +.long 0xce157652 //eor3 v18.16b, v18.16b, v21.16b, v29.16b //GHASH block 8k+2, 8k+3 - mid + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 5 + ldr q20, [x3, #32] //load h1l | h1h + ext v20.16b, v20.16b, v20.16b, #8 + ldr q22, [x3, #64] //load h2l | h2h + ext v22.16b, v22.16b, v22.16b, #8 + + ldp q26, q27, [x8, #96] //load rk6, rk7 + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 5 + rev64 v15.16b, v15.16b //GHASH block 8k+7 (t0, t1, t2 and t3 free) + + rev64 v14.16b, v14.16b //GHASH block 8k+6 (t0, t1, and t2 free) + pmull2 v8.1q, v12.2d, v25.2d //GHASH block 8k+4 - high + pmull v25.1q, v12.1d, v25.1d //GHASH block 8k+4 - low + + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 5 + trn2 v12.2d, v13.2d, v12.2d //GHASH block 8k+4, 8k+5 - mid + + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 5 + ldr q21, [x3, #48] //load h2k | h1k + ldr q24, [x3, #96] //load h4k | h3k + + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 5 + pmull2 v10.1q, v13.2d, v23.2d //GHASH block 8k+5 - high + eor v12.16b, v12.16b, v16.16b //GHASH block 8k+4, 8k+5 - mid + + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 5 + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 5 + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 5 + + pmull v23.1q, v13.1d, v23.1d //GHASH block 8k+5 - low + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 6 + trn1 v13.2d, v15.2d, v14.2d //GHASH block 8k+6, 8k+7 - mid + + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 6 + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 6 + pmull2 v11.1q, v14.2d, v22.2d //GHASH block 8k+6 - high + + pmull v22.1q, v14.1d, v22.1d //GHASH block 8k+6 - low + trn2 v14.2d, v15.2d, v14.2d //GHASH block 8k+6, 8k+7 - mid + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 6 + + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 6 + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 6 + + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 6 + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 7 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 6 + + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 7 + eor v14.16b, v14.16b, v13.16b //GHASH block 8k+6, 8k+7 - mid + + pmull2 v16.1q, v12.2d, v24.2d //GHASH block 8k+4 - mid + ldp q28, q26, [x8, #128] //load rk8, rk9 + pmull v24.1q, v12.1d, v24.1d //GHASH block 8k+5 - mid + + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 7 + pmull2 v12.1q, v15.2d, v20.2d //GHASH block 8k+7 - high + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 7 + +.long 0xce184252 //eor3 v18.16b, v18.16b, v24.16b, v16.16b //GHASH block 8k+4, 8k+5 - mid + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 7 + add v30.4s, v30.4s, v31.4s //CTR block 8k+15 + + ldr d16, [x10] //MODULO - load modulo constant +.long 0xce082a31 //eor3 v17.16b, v17.16b, v8.16b, v10.16b //GHASH block 8k+4, 8k+5 - high + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 7 + + pmull2 v13.1q, v14.2d, v21.2d //GHASH block 8k+6 - mid + pmull v20.1q, v15.1d, v20.1d //GHASH block 8k+7 - low + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 7 + + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 8 + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 8 + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 8 + + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 8 +.long 0xce195e73 //eor3 v19.16b, v19.16b, v25.16b, v23.16b //GHASH block 8k+4, 8k+5 - low + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 7 + + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 8 + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 8 + pmull v21.1q, v14.1d, v21.1d //GHASH block 8k+7 - mid + + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 8 + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 8 + ldp q27, q28, [x8, #160] //load rk10, rk11 + +.long 0xce165273 //eor3 v19.16b, v19.16b, v22.16b, v20.16b //GHASH block 8k+6, 8k+7 - low + rev32 v20.16b, v30.16b //CTR block 8k+16 + add v30.4s, v30.4s, v31.4s //CTR block 8k+16 + + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 9 +.long 0xce153652 //eor3 v18.16b, v18.16b, v21.16b, v13.16b //GHASH block 8k+6, 8k+7 - mid +.long 0xce0b3231 //eor3 v17.16b, v17.16b, v11.16b, v12.16b //GHASH block 8k+6, 8k+7 - high + + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 9 + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 9 + ldp q8, q9, [x0], #32 //AES block 8k+8, 8k+9 - load plaintext + + pmull v21.1q, v17.1d, v16.1d //MODULO - top 64b align with mid + rev32 v22.16b, v30.16b //CTR block 8k+17 + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 9 + + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 9 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 9 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 9 + +.long 0xce114e52 //eor3 v18.16b, v18.16b, v17.16b, v19.16b //MODULO - karatsuba tidy up + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 9 + add v30.4s, v30.4s, v31.4s //CTR block 8k+17 + + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 10 + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 10 + ldr q26, [x8, #192] //load rk12 + ext v29.16b, v17.16b, v17.16b, #8 //MODULO - other top alignment + + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 10 + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 10 + ldp q10, q11, [x0], #32 //AES block 8k+10, 8k+11 - load plaintext + + aese v4.16b, v28.16b //AES block 8k+12 - round 11 +.long 0xce1d5652 //eor3 v18.16b, v18.16b, v29.16b, v21.16b //MODULO - fold into mid + ldp q12, q13, [x0], #32 //AES block 8k+12, 8k+13 - load plaintext + + ldp q14, q15, [x0], #32 //AES block 8k+14, 8k+15 - load plaintext + aese v2.16b, v28.16b //AES block 8k+10 - round 11 + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 10 + + rev32 v23.16b, v30.16b //CTR block 8k+18 + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 10 + + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 10 + pmull v17.1q, v18.1d, v16.1d //MODULO - mid 64b align with low + + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 10 + aese v5.16b, v28.16b //AES block 8k+13 - round 11 + add v30.4s, v30.4s, v31.4s //CTR block 8k+18 + + aese v7.16b, v28.16b //AES block 8k+15 - round 11 + aese v0.16b, v28.16b //AES block 8k+8 - round 11 +.long 0xce04698c //eor3 v12.16b, v12.16b, v4.16b, v26.16b //AES block 4 - result + + aese v6.16b, v28.16b //AES block 8k+14 - round 11 + aese v3.16b, v28.16b //AES block 8k+11 - round 11 + aese v1.16b, v28.16b //AES block 8k+9 - round 11 + + rev32 v25.16b, v30.16b //CTR block 8k+19 + add v30.4s, v30.4s, v31.4s //CTR block 8k+19 +.long 0xce0769ef //eor3 v15.16b, v15.16b, v7.16b, v26.16b //AES block 7 - result + +.long 0xce02694a //eor3 v10.16b, v10.16b, v2.16b, v26.16b //AES block 8k+10 - result +.long 0xce006908 //eor3 v8.16b, v8.16b, v0.16b, v26.16b //AES block 8k+8 - result + mov v2.16b, v23.16b //CTR block 8k+18 + +.long 0xce016929 //eor3 v9.16b, v9.16b, v1.16b, v26.16b //AES block 8k+9 - result + mov v1.16b, v22.16b //CTR block 8k+17 + stp q8, q9, [x2], #32 //AES block 8k+8, 8k+9 - store result + ext v21.16b, v18.16b, v18.16b, #8 //MODULO - other mid alignment + +.long 0xce0669ce //eor3 v14.16b, v14.16b, v6.16b, v26.16b //AES block 6 - result + mov v0.16b, v20.16b //CTR block 8k+16 + rev32 v4.16b, v30.16b //CTR block 8k+20 + + add v30.4s, v30.4s, v31.4s //CTR block 8k+20 +.long 0xce0569ad //eor3 v13.16b, v13.16b, v5.16b, v26.16b //AES block 5 - result +.long 0xce115673 //eor3 v19.16b, v19.16b, v17.16b, v21.16b //MODULO - fold into low + +.long 0xce03696b //eor3 v11.16b, v11.16b, v3.16b, v26.16b //AES block 8k+11 - result + mov v3.16b, v25.16b //CTR block 8k+19 + + stp q10, q11, [x2], #32 //AES block 8k+10, 8k+11 - store result + + stp q12, q13, [x2], #32 //AES block 8k+12, 8k+13 - store result + + cmp x0, x5 //LOOP CONTROL + stp q14, q15, [x2], #32 //AES block 8k+14, 8k+15 - store result + b.lt L192_enc_main_loop + +L192_enc_prepretail: //PREPRETAIL + rev32 v5.16b, v30.16b //CTR block 8k+13 + ldp q26, q27, [x8, #0] //load rk0, rk1 + add v30.4s, v30.4s, v31.4s //CTR block 8k+13 + + ldr q23, [x3, #176] //load h7l | h7h + ext v23.16b, v23.16b, v23.16b, #8 + ldr q25, [x3, #208] //load h8l | h8h + ext v25.16b, v25.16b, v25.16b, #8 + rev64 v8.16b, v8.16b //GHASH block 8k + ext v19.16b, v19.16b, v19.16b, #8 //PRE 0 + + rev32 v6.16b, v30.16b //CTR block 8k+14 + add v30.4s, v30.4s, v31.4s //CTR block 8k+14 + ldr q21, [x3, #144] //load h6k | h5k + ldr q24, [x3, #192] //load h8k | h7k + + rev64 v11.16b, v11.16b //GHASH block 8k+3 + rev64 v10.16b, v10.16b //GHASH block 8k+2 + ldr q20, [x3, #128] //load h5l | h5h + ext v20.16b, v20.16b, v20.16b, #8 + ldr q22, [x3, #160] //load h6l | h6h + ext v22.16b, v22.16b, v22.16b, #8 + + eor v8.16b, v8.16b, v19.16b //PRE 1 + rev32 v7.16b, v30.16b //CTR block 8k+15 + rev64 v9.16b, v9.16b //GHASH block 8k+1 + + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 0 + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 0 + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 0 + + pmull2 v16.1q, v9.2d, v23.2d //GHASH block 8k+1 - high + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 0 + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 0 + + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 0 + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 0 + pmull2 v17.1q, v8.2d, v25.2d //GHASH block 8k - high + + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 1 + pmull v19.1q, v8.1d, v25.1d //GHASH block 8k - low + trn1 v18.2d, v9.2d, v8.2d //GHASH block 8k, 8k+1 - mid + + trn2 v8.2d, v9.2d, v8.2d //GHASH block 8k, 8k+1 - mid + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 0 + ldp q28, q26, [x8, #32] //load rk2, rk3 + + pmull v23.1q, v9.1d, v23.1d //GHASH block 8k+1 - low + eor v17.16b, v17.16b, v16.16b //GHASH block 8k+1 - high + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 1 + + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 1 + eor v8.16b, v8.16b, v18.16b //GHASH block 8k, 8k+1 - mid + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 1 + + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 1 + pmull2 v9.1q, v11.2d, v20.2d //GHASH block 8k+3 - high + pmull2 v29.1q, v10.2d, v22.2d //GHASH block 8k+2 - high + + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 1 + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 1 + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 1 + + pmull v22.1q, v10.1d, v22.1d //GHASH block 8k+2 - low + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 2 + eor v19.16b, v19.16b, v23.16b //GHASH block 8k+1 - low + + pmull v20.1q, v11.1d, v20.1d //GHASH block 8k+3 - low + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 2 +.long 0xce1d2631 //eor3 v17.16b, v17.16b, v29.16b, v9.16b //GHASH block 8k+2, 8k+3 - high + + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 3 + trn1 v29.2d, v11.2d, v10.2d //GHASH block 8k+2, 8k+3 - mid + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 2 + + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 2 + pmull2 v18.1q, v8.2d, v24.2d //GHASH block 8k - mid + trn2 v10.2d, v11.2d, v10.2d //GHASH block 8k+2, 8k+3 - mid + + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 2 + rev64 v13.16b, v13.16b //GHASH block 8k+5 (t0, t1, t2 and t3 free) + rev64 v14.16b, v14.16b //GHASH block 8k+6 (t0, t1, and t2 free) + + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 2 + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 2 + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 2 + + eor v10.16b, v10.16b, v29.16b //GHASH block 8k+2, 8k+3 - mid + pmull v24.1q, v8.1d, v24.1d //GHASH block 8k+1 - mid + ldp q27, q28, [x8, #64] //load rk4, rk5 + + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 3 + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 3 + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 3 + + eor v18.16b, v18.16b, v24.16b //GHASH block 8k+1 - mid +.long 0xce165273 //eor3 v19.16b, v19.16b, v22.16b, v20.16b //GHASH block 8k+2, 8k+3 - low + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 3 + + ldr q23, [x3, #80] //load h3l | h3h + ext v23.16b, v23.16b, v23.16b, #8 + ldr q25, [x3, #112] //load h4l | h4h + ext v25.16b, v25.16b, v25.16b, #8 + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 3 + pmull2 v29.1q, v10.2d, v21.2d //GHASH block 8k+2 - mid + + ldr q20, [x3, #32] //load h1l | h1h + ext v20.16b, v20.16b, v20.16b, #8 + ldr q22, [x3, #64] //load h2l | h2h + ext v22.16b, v22.16b, v22.16b, #8 + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 3 + rev64 v12.16b, v12.16b //GHASH block 8k+4 (t0, t1, and t2 free) + + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 3 + pmull v21.1q, v10.1d, v21.1d //GHASH block 8k+3 - mid + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 4 + + trn1 v16.2d, v13.2d, v12.2d //GHASH block 8k+4, 8k+5 - mid + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 4 + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 4 + +.long 0xce157652 //eor3 v18.16b, v18.16b, v21.16b, v29.16b //GHASH block 8k+2, 8k+3 - mid + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 4 + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 4 + + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 4 + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 4 + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 4 + + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 5 + rev64 v15.16b, v15.16b //GHASH block 8k+7 (t0, t1, t2 and t3 free) + ldr q21, [x3, #48] //load h2k | h1k + ldr q24, [x3, #96] //load h4k | h3k + + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 5 + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 5 + ldp q26, q27, [x8, #96] //load rk6, rk7 + + pmull2 v11.1q, v14.2d, v22.2d //GHASH block 8k+6 - high + pmull2 v8.1q, v12.2d, v25.2d //GHASH block 8k+4 - high + pmull v25.1q, v12.1d, v25.1d //GHASH block 8k+4 - low + + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 5 + trn2 v12.2d, v13.2d, v12.2d //GHASH block 8k+4, 8k+5 - mid + + pmull2 v10.1q, v13.2d, v23.2d //GHASH block 8k+5 - high + pmull v23.1q, v13.1d, v23.1d //GHASH block 8k+5 - low + pmull v22.1q, v14.1d, v22.1d //GHASH block 8k+6 - low + + trn1 v13.2d, v15.2d, v14.2d //GHASH block 8k+6, 8k+7 - mid + eor v12.16b, v12.16b, v16.16b //GHASH block 8k+4, 8k+5 - mid + trn2 v14.2d, v15.2d, v14.2d //GHASH block 8k+6, 8k+7 - mid + + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 5 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 6 + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 5 + + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 5 + eor v14.16b, v14.16b, v13.16b //GHASH block 8k+6, 8k+7 - mid + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 5 + + pmull2 v16.1q, v12.2d, v24.2d //GHASH block 8k+4 - mid + pmull v24.1q, v12.1d, v24.1d //GHASH block 8k+5 - mid + + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 6 + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 6 + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 7 + + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 6 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 6 +.long 0xce184252 //eor3 v18.16b, v18.16b, v24.16b, v16.16b //GHASH block 8k+4, 8k+5 - mid + + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 6 +.long 0xce082a31 //eor3 v17.16b, v17.16b, v8.16b, v10.16b //GHASH block 8k+4, 8k+5 - high + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 7 + + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 6 + ldr d16, [x10] //MODULO - load modulo constant + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 6 + + pmull2 v13.1q, v14.2d, v21.2d //GHASH block 8k+6 - mid + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 7 +.long 0xce195e73 //eor3 v19.16b, v19.16b, v25.16b, v23.16b //GHASH block 8k+4, 8k+5 - low + + pmull2 v12.1q, v15.2d, v20.2d //GHASH block 8k+7 - high + pmull v21.1q, v14.1d, v21.1d //GHASH block 8k+7 - mid + pmull v20.1q, v15.1d, v20.1d //GHASH block 8k+7 - low + + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 7 + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 7 + ldp q28, q26, [x8, #128] //load rk8, rk9 + + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 7 +.long 0xce153652 //eor3 v18.16b, v18.16b, v21.16b, v13.16b //GHASH block 8k+6, 8k+7 - mid + +.long 0xce165273 //eor3 v19.16b, v19.16b, v22.16b, v20.16b //GHASH block 8k+6, 8k+7 - low +.long 0xce0b3231 //eor3 v17.16b, v17.16b, v11.16b, v12.16b //GHASH block 8k+6, 8k+7 - high + +.long 0xce114e52 //eor3 v18.16b, v18.16b, v17.16b, v19.16b //MODULO - karatsuba tidy up + ext v29.16b, v17.16b, v17.16b, #8 //MODULO - other top alignment + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 7 + pmull v21.1q, v17.1d, v16.1d //MODULO - top 64b align with mid + + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 8 + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 8 + + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 7 + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 8 +.long 0xce1d5652 //eor3 v18.16b, v18.16b, v29.16b, v21.16b //MODULO - fold into mid + + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 8 + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 9 + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 8 + + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 8 + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 8 + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 8 + + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 9 + ldp q27, q28, [x8, #160] //load rk10, rk11 + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 9 + + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 9 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 9 + + ext v21.16b, v18.16b, v18.16b, #8 //MODULO - other mid alignment + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 9 + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 9 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 9 + + pmull v17.1q, v18.1d, v16.1d //MODULO - mid 64b align with low + ldr q26, [x8, #192] //load rk12 + + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 10 + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 10 + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 10 + +.long 0xce115673 //eor3 v19.16b, v19.16b, v17.16b, v21.16b //MODULO - fold into low + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 10 + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 10 + + aese v1.16b, v28.16b //AES block 8k+9 - round 11 + aese v7.16b, v28.16b //AES block 8k+15 - round 11 + + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 10 + aese v3.16b, v28.16b //AES block 8k+11 - round 11 + + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 10 + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 10 + + add v30.4s, v30.4s, v31.4s //CTR block 8k+15 + aese v2.16b, v28.16b //AES block 8k+10 - round 11 + aese v0.16b, v28.16b //AES block 8k+8 - round 11 + + aese v6.16b, v28.16b //AES block 8k+14 - round 11 + aese v4.16b, v28.16b //AES block 8k+12 - round 11 + aese v5.16b, v28.16b //AES block 8k+13 - round 11 + +L192_enc_tail: //TAIL + + ldp q20, q21, [x3, #128] //load h5l | h5h + ext v20.16b, v20.16b, v20.16b, #8 + sub x5, x4, x0 //main_end_input_ptr is number of bytes left to process + + ldr q8, [x0], #16 //AES block 8k+8 - l3ad plaintext + + ldp q24, q25, [x3, #192] //load h8k | h7k + ext v25.16b, v25.16b, v25.16b, #8 + + mov v29.16b, v26.16b + + ldp q22, q23, [x3, #160] //load h6l | h6h + ext v22.16b, v22.16b, v22.16b, #8 + ext v23.16b, v23.16b, v23.16b, #8 + cmp x5, #112 + +.long 0xce007509 //eor3 v9.16b, v8.16b, v0.16b, v29.16b //AES block 8k+8 - result + ext v16.16b, v19.16b, v19.16b, #8 //prepare final partial tag + b.gt L192_enc_blocks_more_than_7 + + cmp x5, #96 + mov v7.16b, v6.16b + movi v17.8b, #0 + + mov v6.16b, v5.16b + movi v19.8b, #0 + sub v30.4s, v30.4s, v31.4s + + mov v5.16b, v4.16b + mov v4.16b, v3.16b + mov v3.16b, v2.16b + + mov v2.16b, v1.16b + movi v18.8b, #0 + b.gt L192_enc_blocks_more_than_6 + + mov v7.16b, v6.16b + cmp x5, #80 + + mov v6.16b, v5.16b + mov v5.16b, v4.16b + mov v4.16b, v3.16b + + mov v3.16b, v1.16b + sub v30.4s, v30.4s, v31.4s + b.gt L192_enc_blocks_more_than_5 + + cmp x5, #64 + sub v30.4s, v30.4s, v31.4s + + mov v7.16b, v6.16b + mov v6.16b, v5.16b + mov v5.16b, v4.16b + + mov v4.16b, v1.16b + b.gt L192_enc_blocks_more_than_4 + + mov v7.16b, v6.16b + mov v6.16b, v5.16b + mov v5.16b, v1.16b + + sub v30.4s, v30.4s, v31.4s + cmp x5, #48 + b.gt L192_enc_blocks_more_than_3 + + mov v7.16b, v6.16b + mov v6.16b, v1.16b + sub v30.4s, v30.4s, v31.4s + + ldr q24, [x3, #96] //load h4k | h3k + cmp x5, #32 + b.gt L192_enc_blocks_more_than_2 + + sub v30.4s, v30.4s, v31.4s + + cmp x5, #16 + mov v7.16b, v1.16b + b.gt L192_enc_blocks_more_than_1 + + sub v30.4s, v30.4s, v31.4s + ldr q21, [x3, #48] //load h2k | h1k + b L192_enc_blocks_less_than_1 +L192_enc_blocks_more_than_7: //blocks left > 7 + st1 { v9.16b}, [x2], #16 //AES final-7 block - store result + + rev64 v8.16b, v9.16b //GHASH final-7 block + ins v18.d[0], v24.d[1] //GHASH final-7 block - mid + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + + ins v27.d[0], v8.d[1] //GHASH final-7 block - mid + + ldr q9, [x0], #16 //AES final-6 block - load plaintext + + eor v27.8b, v27.8b, v8.8b //GHASH final-7 block - mid + movi v16.8b, #0 //suppress further partial tag feed in + pmull v19.1q, v8.1d, v25.1d //GHASH final-7 block - low + + pmull2 v17.1q, v8.2d, v25.2d //GHASH final-7 block - high + + pmull v18.1q, v27.1d, v18.1d //GHASH final-7 block - mid +.long 0xce017529 //eor3 v9.16b, v9.16b, v1.16b, v29.16b //AES final-6 block - result +L192_enc_blocks_more_than_6: //blocks left > 6 + + st1 { v9.16b}, [x2], #16 //AES final-6 block - store result + + rev64 v8.16b, v9.16b //GHASH final-6 block + + ldr q9, [x0], #16 //AES final-5 block - load plaintext + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + + ins v27.d[0], v8.d[1] //GHASH final-6 block - mid + + pmull v26.1q, v8.1d, v23.1d //GHASH final-6 block - low +.long 0xce027529 //eor3 v9.16b, v9.16b, v2.16b, v29.16b //AES final-5 block - result + + movi v16.8b, #0 //suppress further partial tag feed in + pmull2 v28.1q, v8.2d, v23.2d //GHASH final-6 block - high + eor v27.8b, v27.8b, v8.8b //GHASH final-6 block - mid + + pmull v27.1q, v27.1d, v24.1d //GHASH final-6 block - mid + + eor v17.16b, v17.16b, v28.16b //GHASH final-6 block - high + eor v19.16b, v19.16b, v26.16b //GHASH final-6 block - low + + eor v18.16b, v18.16b, v27.16b //GHASH final-6 block - mid +L192_enc_blocks_more_than_5: //blocks left > 5 + + st1 { v9.16b}, [x2], #16 //AES final-5 block - store result + + rev64 v8.16b, v9.16b //GHASH final-5 block + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + + ins v27.d[0], v8.d[1] //GHASH final-5 block - mid + + ldr q9, [x0], #16 //AES final-4 block - load plaintext + pmull2 v28.1q, v8.2d, v22.2d //GHASH final-5 block - high + + eor v27.8b, v27.8b, v8.8b //GHASH final-5 block - mid + eor v17.16b, v17.16b, v28.16b //GHASH final-5 block - high + + ins v27.d[1], v27.d[0] //GHASH final-5 block - mid + pmull v26.1q, v8.1d, v22.1d //GHASH final-5 block - low + + eor v19.16b, v19.16b, v26.16b //GHASH final-5 block - low + pmull2 v27.1q, v27.2d, v21.2d //GHASH final-5 block - mid + +.long 0xce037529 //eor3 v9.16b, v9.16b, v3.16b, v29.16b //AES final-4 block - result + movi v16.8b, #0 //suppress further partial tag feed in + + eor v18.16b, v18.16b, v27.16b //GHASH final-5 block - mid +L192_enc_blocks_more_than_4: //blocks left > 4 + + st1 { v9.16b}, [x2], #16 //AES final-4 block - store result + + rev64 v8.16b, v9.16b //GHASH final-4 block + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + + ldr q9, [x0], #16 //AES final-3 block - load plaintext + pmull2 v28.1q, v8.2d, v20.2d //GHASH final-4 block - high + ins v27.d[0], v8.d[1] //GHASH final-4 block - mid + + pmull v26.1q, v8.1d, v20.1d //GHASH final-4 block - low + eor v17.16b, v17.16b, v28.16b //GHASH final-4 block - high + + eor v27.8b, v27.8b, v8.8b //GHASH final-4 block - mid + + movi v16.8b, #0 //suppress further partial tag feed in + eor v19.16b, v19.16b, v26.16b //GHASH final-4 block - low + + pmull v27.1q, v27.1d, v21.1d //GHASH final-4 block - mid + + eor v18.16b, v18.16b, v27.16b //GHASH final-4 block - mid +.long 0xce047529 //eor3 v9.16b, v9.16b, v4.16b, v29.16b //AES final-3 block - result +L192_enc_blocks_more_than_3: //blocks left > 3 + + ldr q24, [x3, #96] //load h4k | h3k + st1 { v9.16b}, [x2], #16 //AES final-3 block - store result + + rev64 v8.16b, v9.16b //GHASH final-3 block + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + movi v16.8b, #0 //suppress further partial tag feed in + + ldr q9, [x0], #16 //AES final-2 block - load plaintext + ldr q25, [x3, #112] //load h4l | h4h + ext v25.16b, v25.16b, v25.16b, #8 + + ins v27.d[0], v8.d[1] //GHASH final-3 block - mid + +.long 0xce057529 //eor3 v9.16b, v9.16b, v5.16b, v29.16b //AES final-2 block - result + eor v27.8b, v27.8b, v8.8b //GHASH final-3 block - mid + + ins v27.d[1], v27.d[0] //GHASH final-3 block - mid + pmull v26.1q, v8.1d, v25.1d //GHASH final-3 block - low + + pmull2 v28.1q, v8.2d, v25.2d //GHASH final-3 block - high + pmull2 v27.1q, v27.2d, v24.2d //GHASH final-3 block - mid + + eor v19.16b, v19.16b, v26.16b //GHASH final-3 block - low + + eor v18.16b, v18.16b, v27.16b //GHASH final-3 block - mid + eor v17.16b, v17.16b, v28.16b //GHASH final-3 block - high +L192_enc_blocks_more_than_2: //blocks left > 2 + + st1 { v9.16b}, [x2], #16 //AES final-2 block - store result + + rev64 v8.16b, v9.16b //GHASH final-2 block + ldr q23, [x3, #80] //load h3l | h3h + ext v23.16b, v23.16b, v23.16b, #8 + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + + ldr q9, [x0], #16 //AES final-1 block - load plaintext + ins v27.d[0], v8.d[1] //GHASH final-2 block - mid + + eor v27.8b, v27.8b, v8.8b //GHASH final-2 block - mid + + pmull v26.1q, v8.1d, v23.1d //GHASH final-2 block - low + pmull2 v28.1q, v8.2d, v23.2d //GHASH final-2 block - high + movi v16.8b, #0 //suppress further partial tag feed in + + pmull v27.1q, v27.1d, v24.1d //GHASH final-2 block - mid + + eor v19.16b, v19.16b, v26.16b //GHASH final-2 block - low + eor v17.16b, v17.16b, v28.16b //GHASH final-2 block - high + + eor v18.16b, v18.16b, v27.16b //GHASH final-2 block - mid +.long 0xce067529 //eor3 v9.16b, v9.16b, v6.16b, v29.16b //AES final-1 block - result +L192_enc_blocks_more_than_1: //blocks left > 1 + + ldr q22, [x3, #64] //load h1l | h1h + ext v22.16b, v22.16b, v22.16b, #8 + st1 { v9.16b}, [x2], #16 //AES final-1 block - store result + + rev64 v8.16b, v9.16b //GHASH final-1 block + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + + ins v27.d[0], v8.d[1] //GHASH final-1 block - mid + pmull v26.1q, v8.1d, v22.1d //GHASH final-1 block - low + + eor v19.16b, v19.16b, v26.16b //GHASH final-1 block - low + pmull2 v28.1q, v8.2d, v22.2d //GHASH final-1 block - high + eor v27.8b, v27.8b, v8.8b //GHASH final-1 block - mid + + ldr q9, [x0], #16 //AES final block - load plaintext + ldr q21, [x3, #48] //load h2k | h1k + + ins v27.d[1], v27.d[0] //GHASH final-1 block - mid + +.long 0xce077529 //eor3 v9.16b, v9.16b, v7.16b, v29.16b //AES final block - result + pmull2 v27.1q, v27.2d, v21.2d //GHASH final-1 block - mid + + movi v16.8b, #0 //suppress further partial tag feed in + + eor v18.16b, v18.16b, v27.16b //GHASH final-1 block - mid + eor v17.16b, v17.16b, v28.16b //GHASH final-1 block - high +L192_enc_blocks_less_than_1: //blocks left <= 1 + + mvn x6, xzr //temp0_x = 0xffffffffffffffff + and x1, x1, #127 //bit_length %= 128 + + sub x1, x1, #128 //bit_length -= 128 + + neg x1, x1 //bit_length = 128 - #bits in input (in range [1,128]) + + and x1, x1, #127 //bit_length %= 128 + + lsr x6, x6, x1 //temp0_x is mask for top 64b of last block + cmp x1, #64 + mvn x7, xzr //temp1_x = 0xffffffffffffffff + + csel x13, x7, x6, lt + csel x14, x6, xzr, lt + + mov v0.d[1], x14 + ldr q20, [x3, #32] //load h1l | h1h + ext v20.16b, v20.16b, v20.16b, #8 + + ld1 { v26.16b}, [x2] //load existing bytes where the possibly partial last block is to be stored + mov v0.d[0], x13 //ctr0b is mask for last block + + and v9.16b, v9.16b, v0.16b //possibly partial last block has zeroes in highest bits + + rev64 v8.16b, v9.16b //GHASH final block + bif v9.16b, v26.16b, v0.16b //insert existing bytes in top end of result before storing + + st1 { v9.16b}, [x2] //store all 16B + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + + ins v16.d[0], v8.d[1] //GHASH final block - mid + pmull2 v28.1q, v8.2d, v20.2d //GHASH final block - high + + eor v17.16b, v17.16b, v28.16b //GHASH final block - high + pmull v26.1q, v8.1d, v20.1d //GHASH final block - low + + eor v16.8b, v16.8b, v8.8b //GHASH final block - mid + + pmull v16.1q, v16.1d, v21.1d //GHASH final block - mid + + eor v18.16b, v18.16b, v16.16b //GHASH final block - mid + ldr d16, [x10] //MODULO - load modulo constant + + eor v19.16b, v19.16b, v26.16b //GHASH final block - low + ext v21.16b, v17.16b, v17.16b, #8 //MODULO - other top alignment + + rev32 v30.16b, v30.16b + + str q30, [x16] //store the updated counter +.long 0xce114e52 //eor3 v18.16b, v18.16b, v17.16b, v19.16b //MODULO - karatsuba tidy up + + pmull v29.1q, v17.1d, v16.1d //MODULO - top 64b align with mid + +.long 0xce1d5652 //eor3 v18.16b, v18.16b, v29.16b, v21.16b //MODULO - fold into mid + + pmull v17.1q, v18.1d, v16.1d //MODULO - mid 64b align with low + ext v21.16b, v18.16b, v18.16b, #8 //MODULO - other mid alignment + +.long 0xce115673 //eor3 v19.16b, v19.16b, v17.16b, v21.16b //MODULO - fold into low + ext v19.16b, v19.16b, v19.16b, #8 + rev64 v19.16b, v19.16b + st1 { v19.16b }, [x3] + + mov x0, x9 //return sizes + + ldp d10, d11, [sp, #16] + ldp d12, d13, [sp, #32] + ldp d14, d15, [sp, #48] + ldp d8, d9, [sp], #80 + ret + +L192_enc_ret: + mov w0, #0x0 + ret + +.globl _unroll8_eor3_aes_gcm_dec_192_kernel + +.align 4 +_unroll8_eor3_aes_gcm_dec_192_kernel: + AARCH64_VALID_CALL_TARGET + cbz x1, L192_dec_ret + stp d8, d9, [sp, #-80]! + lsr x9, x1, #3 + mov x16, x4 + mov x8, x5 + stp d10, d11, [sp, #16] + stp d12, d13, [sp, #32] + stp d14, d15, [sp, #48] + mov x5, #0xc200000000000000 + stp x5, xzr, [sp, #64] + add x10, sp, #64 + + mov x5, x9 + ld1 { v0.16b}, [x16] //CTR block 0 + ld1 { v19.16b}, [x3] + + mov x15, #0x100000000 //set up counter increment + movi v31.16b, #0x0 + mov v31.d[1], x15 + + rev32 v30.16b, v0.16b //set up reversed counter + + add v30.4s, v30.4s, v31.4s //CTR block 0 + + rev32 v1.16b, v30.16b //CTR block 1 + add v30.4s, v30.4s, v31.4s //CTR block 1 + + rev32 v2.16b, v30.16b //CTR block 2 + add v30.4s, v30.4s, v31.4s //CTR block 2 + + rev32 v3.16b, v30.16b //CTR block 3 + add v30.4s, v30.4s, v31.4s //CTR block 3 + + rev32 v4.16b, v30.16b //CTR block 4 + add v30.4s, v30.4s, v31.4s //CTR block 4 + + rev32 v5.16b, v30.16b //CTR block 5 + add v30.4s, v30.4s, v31.4s //CTR block 5 + ldp q26, q27, [x8, #0] //load rk0, rk1 + + rev32 v6.16b, v30.16b //CTR block 6 + add v30.4s, v30.4s, v31.4s //CTR block 6 + + rev32 v7.16b, v30.16b //CTR block 7 + + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 3 - round 0 + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 6 - round 0 + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 5 - round 0 + + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 0 - round 0 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 1 - round 0 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 7 - round 0 + + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 2 - round 0 + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 4 - round 0 + ldp q28, q26, [x8, #32] //load rk2, rk3 + + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 1 - round 1 + + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 2 - round 1 + + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 0 - round 1 + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 3 - round 1 + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 7 - round 1 + + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 5 - round 1 + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 6 - round 1 + + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 7 - round 2 + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 0 - round 2 + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 4 - round 1 + + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 5 - round 2 + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 1 - round 2 + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 2 - round 2 + + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 3 - round 2 + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 4 - round 2 + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 6 - round 2 + + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 7 - round 3 + + ldp q27, q28, [x8, #64] //load rk4, rk5 + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 2 - round 3 + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 5 - round 3 + + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 0 - round 3 + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 3 - round 3 + + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 4 - round 3 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 1 - round 3 + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 6 - round 3 + + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 3 - round 4 + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 2 - round 4 + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 5 - round 4 + + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 1 - round 4 + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 7 - round 4 + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 6 - round 4 + + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 0 - round 4 + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 5 - round 5 + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 4 - round 4 + + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 6 - round 5 + ldp q26, q27, [x8, #96] //load rk6, rk7 + + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 0 - round 5 + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 4 - round 5 + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 1 - round 5 + + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 3 - round 5 + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 2 - round 5 + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 7 - round 5 + + sub x5, x5, #1 //byte_len - 1 + + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 4 - round 6 + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 5 - round 6 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 1 - round 6 + + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 0 - round 6 + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 3 - round 6 + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 6 - round 6 + + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 7 - round 6 + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 2 - round 6 + ldp q28, q26, [x8, #128] //load rk8, rk9 + + add v30.4s, v30.4s, v31.4s //CTR block 7 + + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 3 - round 7 + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 7 - round 7 + + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 2 - round 7 + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 1 - round 7 + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 4 - round 7 + + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 6 - round 7 + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 0 - round 7 + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 5 - round 7 + + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 1 - round 8 + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 2 - round 8 + and x5, x5, #0xffffffffffffff80 //number of bytes to be processed in main loop (at least 1 byte must be handled by tail) + + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 7 - round 8 + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 6 - round 8 + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 5 - round 8 + + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 4 - round 8 + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 3 - round 8 + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 0 - round 8 + + add x4, x0, x1, lsr #3 //end_input_ptr + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 6 - round 9 + + ld1 { v19.16b}, [x3] + ext v19.16b, v19.16b, v19.16b, #8 + rev64 v19.16b, v19.16b + + ldp q27, q28, [x8, #160] //load rk10, rk11 + + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 0 - round 9 + add x5, x5, x0 + + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 1 - round 9 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 7 - round 9 + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 4 - round 9 + + cmp x0, x5 //check if we have <= 8 blocks + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 3 - round 9 + + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 5 - round 9 + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 2 - round 9 + + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 3 - round 10 + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 1 - round 10 + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 7 - round 10 + + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 4 - round 10 + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 0 - round 10 + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 2 - round 10 + + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 6 - round 10 + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 5 - round 10 + ldr q26, [x8, #192] //load rk12 + + aese v0.16b, v28.16b //AES block 0 - round 11 + aese v1.16b, v28.16b //AES block 1 - round 11 + aese v4.16b, v28.16b //AES block 4 - round 11 + + aese v6.16b, v28.16b //AES block 6 - round 11 + aese v5.16b, v28.16b //AES block 5 - round 11 + aese v7.16b, v28.16b //AES block 7 - round 11 + + aese v2.16b, v28.16b //AES block 2 - round 11 + aese v3.16b, v28.16b //AES block 3 - round 11 + b.ge L192_dec_tail //handle tail + + ldp q8, q9, [x0], #32 //AES block 0, 1 - load ciphertext + + ldp q10, q11, [x0], #32 //AES block 2, 3 - load ciphertext + + ldp q12, q13, [x0], #32 //AES block 4, 5 - load ciphertext + +.long 0xce016921 //eor3 v1.16b, v9.16b, v1.16b, v26.16b //AES block 1 - result +.long 0xce006900 //eor3 v0.16b, v8.16b, v0.16b, v26.16b //AES block 0 - result + stp q0, q1, [x2], #32 //AES block 0, 1 - store result + + rev32 v0.16b, v30.16b //CTR block 8 + add v30.4s, v30.4s, v31.4s //CTR block 8 + + rev32 v1.16b, v30.16b //CTR block 9 + add v30.4s, v30.4s, v31.4s //CTR block 9 +.long 0xce036963 //eor3 v3.16b, v11.16b, v3.16b, v26.16b //AES block 3 - result + +.long 0xce026942 //eor3 v2.16b, v10.16b, v2.16b, v26.16b //AES block 2 - result + stp q2, q3, [x2], #32 //AES block 2, 3 - store result + ldp q14, q15, [x0], #32 //AES block 6, 7 - load ciphertext + + rev32 v2.16b, v30.16b //CTR block 10 + add v30.4s, v30.4s, v31.4s //CTR block 10 + +.long 0xce046984 //eor3 v4.16b, v12.16b, v4.16b, v26.16b //AES block 4 - result + + rev32 v3.16b, v30.16b //CTR block 11 + add v30.4s, v30.4s, v31.4s //CTR block 11 + +.long 0xce0569a5 //eor3 v5.16b, v13.16b, v5.16b, v26.16b //AES block 5 - result + stp q4, q5, [x2], #32 //AES block 4, 5 - store result + cmp x0, x5 //check if we have <= 8 blocks + +.long 0xce0669c6 //eor3 v6.16b, v14.16b, v6.16b, v26.16b //AES block 6 - result +.long 0xce0769e7 //eor3 v7.16b, v15.16b, v7.16b, v26.16b //AES block 7 - result + rev32 v4.16b, v30.16b //CTR block 12 + + add v30.4s, v30.4s, v31.4s //CTR block 12 + stp q6, q7, [x2], #32 //AES block 6, 7 - store result + b.ge L192_dec_prepretail //do prepretail + +L192_dec_main_loop: //main loop start + rev64 v9.16b, v9.16b //GHASH block 8k+1 + ldp q26, q27, [x8, #0] //load rk0, rk1 + ext v19.16b, v19.16b, v19.16b, #8 //PRE 0 + + rev64 v8.16b, v8.16b //GHASH block 8k + rev32 v5.16b, v30.16b //CTR block 8k+13 + add v30.4s, v30.4s, v31.4s //CTR block 8k+13 + + ldr q23, [x3, #176] //load h7l | h7h + ext v23.16b, v23.16b, v23.16b, #8 + ldr q25, [x3, #208] //load h8l | h8h + ext v25.16b, v25.16b, v25.16b, #8 + rev64 v12.16b, v12.16b //GHASH block 8k+4 + rev64 v11.16b, v11.16b //GHASH block 8k+3 + + eor v8.16b, v8.16b, v19.16b //PRE 1 + rev32 v6.16b, v30.16b //CTR block 8k+14 + add v30.4s, v30.4s, v31.4s //CTR block 8k+14 + + rev64 v13.16b, v13.16b //GHASH block 8k+5 + + rev32 v7.16b, v30.16b //CTR block 8k+15 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 0 + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 0 + + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 0 + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 0 + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 0 + + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 0 + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 0 + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 0 + + pmull v19.1q, v8.1d, v25.1d //GHASH block 8k - low + pmull2 v16.1q, v9.2d, v23.2d //GHASH block 8k+1 - high + ldp q28, q26, [x8, #32] //load rk2, rk3 + + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 1 + pmull v23.1q, v9.1d, v23.1d //GHASH block 8k+1 - low + ldr q20, [x3, #128] //load h5l | h5h + ext v20.16b, v20.16b, v20.16b, #8 + ldr q22, [x3, #160] //load h6l | h6h + ext v22.16b, v22.16b, v22.16b, #8 + + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 1 + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 1 + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 1 + + pmull2 v17.1q, v8.2d, v25.2d //GHASH block 8k - high + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 1 + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 1 + + trn1 v18.2d, v9.2d, v8.2d //GHASH block 8k, 8k+1 - mid + rev64 v10.16b, v10.16b //GHASH block 8k+2 + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 1 + + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 1 + ldr q21, [x3, #144] //load h6k | h5k + ldr q24, [x3, #192] //load h8k | h7k + trn2 v8.2d, v9.2d, v8.2d //GHASH block 8k, 8k+1 - mid + + eor v17.16b, v17.16b, v16.16b //GHASH block 8k+1 - high + pmull2 v9.1q, v11.2d, v20.2d //GHASH block 8k+3 - high + pmull2 v29.1q, v10.2d, v22.2d //GHASH block 8k+2 - high + + eor v8.16b, v8.16b, v18.16b //GHASH block 8k, 8k+1 - mid + eor v19.16b, v19.16b, v23.16b //GHASH block 8k+1 - low + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 2 + + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 2 + pmull v20.1q, v11.1d, v20.1d //GHASH block 8k+3 - low +.long 0xce1d2631 //eor3 v17.16b, v17.16b, v29.16b, v9.16b //GHASH block 8k+2, 8k+3 - high + + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 2 + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 3 + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 2 + + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 2 + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 2 + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 2 + + ldr q23, [x3, #80] //load h3l | h3h + ext v23.16b, v23.16b, v23.16b, #8 + ldr q25, [x3, #112] //load h4l | h4h + ext v25.16b, v25.16b, v25.16b, #8 + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 2 + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 3 + + pmull v22.1q, v10.1d, v22.1d //GHASH block 8k+2 - low + trn1 v29.2d, v11.2d, v10.2d //GHASH block 8k+2, 8k+3 - mid + trn2 v10.2d, v11.2d, v10.2d //GHASH block 8k+2, 8k+3 - mid + + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 3 + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 3 + + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 3 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 3 + ldp q27, q28, [x8, #64] //load rk4, rk5 + + eor v10.16b, v10.16b, v29.16b //GHASH block 8k+2, 8k+3 - mid +.long 0xce165273 //eor3 v19.16b, v19.16b, v22.16b, v20.16b //GHASH block 8k+2, 8k+3 - low + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 3 + + trn1 v16.2d, v13.2d, v12.2d //GHASH block 8k+4, 8k+5 - mid + add v30.4s, v30.4s, v31.4s //CTR block 8k+15 + + pmull2 v29.1q, v10.2d, v21.2d //GHASH block 8k+2 - mid + pmull2 v18.1q, v8.2d, v24.2d //GHASH block 8k - mid + pmull v24.1q, v8.1d, v24.1d //GHASH block 8k+1 - mid + + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 3 + pmull v21.1q, v10.1d, v21.1d //GHASH block 8k+3 - mid + pmull2 v8.1q, v12.2d, v25.2d //GHASH block 8k+4 - high + + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 4 + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 4 + eor v18.16b, v18.16b, v24.16b //GHASH block 8k+1 - mid + + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 4 + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 4 + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 4 + + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 4 + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 4 + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 4 + + ldr q20, [x3, #32] //load h1l | h1h + ext v20.16b, v20.16b, v20.16b, #8 + ldr q22, [x3, #64] //load h2l | h2h + ext v22.16b, v22.16b, v22.16b, #8 + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 5 + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 5 + + ldp q26, q27, [x8, #96] //load rk6, rk7 + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 5 + rev64 v15.16b, v15.16b //GHASH block 8k+7 + + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 5 +.long 0xce157652 //eor3 v18.16b, v18.16b, v21.16b, v29.16b //GHASH block 8k+2, 8k+3 - mid + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 5 + + pmull v25.1q, v12.1d, v25.1d //GHASH block 8k+4 - low + trn2 v12.2d, v13.2d, v12.2d //GHASH block 8k+4, 8k+5 - mid + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 5 + + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 5 + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 5 + rev64 v14.16b, v14.16b //GHASH block 8k+6 + + ldr q21, [x3, #48] //load h2k | h1k + ldr q24, [x3, #96] //load h4k | h3k + pmull2 v10.1q, v13.2d, v23.2d //GHASH block 8k+5 - high + pmull v23.1q, v13.1d, v23.1d //GHASH block 8k+5 - low + + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 6 + eor v12.16b, v12.16b, v16.16b //GHASH block 8k+4, 8k+5 - mid + trn1 v13.2d, v15.2d, v14.2d //GHASH block 8k+6, 8k+7 - mid + + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 6 + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 6 + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 6 + + pmull2 v11.1q, v14.2d, v22.2d //GHASH block 8k+6 - high + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 6 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 6 + + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 7 + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 7 + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 6 + + pmull2 v16.1q, v12.2d, v24.2d //GHASH block 8k+4 - mid +.long 0xce082a31 //eor3 v17.16b, v17.16b, v8.16b, v10.16b //GHASH block 8k+4, 8k+5 - high +.long 0xce195e73 //eor3 v19.16b, v19.16b, v25.16b, v23.16b //GHASH block 8k+4, 8k+5 - low + + pmull v22.1q, v14.1d, v22.1d //GHASH block 8k+6 - low + trn2 v14.2d, v15.2d, v14.2d //GHASH block 8k+6, 8k+7 - mid + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 6 + + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 7 + ldp q28, q26, [x8, #128] //load rk8, rk9 + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 7 + + eor v14.16b, v14.16b, v13.16b //GHASH block 8k+6, 8k+7 - mid + pmull v24.1q, v12.1d, v24.1d //GHASH block 8k+5 - mid + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 7 + + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 7 + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 7 + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 7 + +.long 0xce184252 //eor3 v18.16b, v18.16b, v24.16b, v16.16b //GHASH block 8k+4, 8k+5 - mid + pmull2 v13.1q, v14.2d, v21.2d //GHASH block 8k+6 - mid + pmull2 v12.1q, v15.2d, v20.2d //GHASH block 8k+7 - high + + pmull v21.1q, v14.1d, v21.1d //GHASH block 8k+7 - mid + ldr d16, [x10] //MODULO - load modulo constant + pmull v20.1q, v15.1d, v20.1d //GHASH block 8k+7 - low + + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 8 + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 8 + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 8 + + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 8 + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 8 +.long 0xce165273 //eor3 v19.16b, v19.16b, v22.16b, v20.16b //GHASH block 8k+6, 8k+7 - low + + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 8 + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 8 + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 8 + +.long 0xce0b3231 //eor3 v17.16b, v17.16b, v11.16b, v12.16b //GHASH block 8k+6, 8k+7 - high + rev32 v20.16b, v30.16b //CTR block 8k+16 + add v30.4s, v30.4s, v31.4s //CTR block 8k+16 + + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 9 +.long 0xce153652 //eor3 v18.16b, v18.16b, v21.16b, v13.16b //GHASH block 8k+6, 8k+7 - mid + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 9 + + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 9 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 9 + ldp q27, q28, [x8, #160] //load rk10, rk11 + +.long 0xce114e52 //eor3 v18.16b, v18.16b, v17.16b, v19.16b //MODULO - karatsuba tidy up + ldp q8, q9, [x0], #32 //AES block 8k+8, 8k+9 - load ciphertext + + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 9 + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 9 + ldp q10, q11, [x0], #32 //AES block 8k+10, 8k+11 - load ciphertext + + rev32 v22.16b, v30.16b //CTR block 8k+17 + pmull v29.1q, v17.1d, v16.1d //MODULO - top 64b align with mid + add v30.4s, v30.4s, v31.4s //CTR block 8k+17 + + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 9 + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 9 + ext v21.16b, v17.16b, v17.16b, #8 //MODULO - other top alignment + + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 10 + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 10 + ldp q12, q13, [x0], #32 //AES block 8k+12, 8k+13 - load ciphertext + + rev32 v23.16b, v30.16b //CTR block 8k+18 + add v30.4s, v30.4s, v31.4s //CTR block 8k+18 +.long 0xce1d5652 //eor3 v18.16b, v18.16b, v29.16b, v21.16b //MODULO - fold into mid + + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 10 + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 10 + ldr q26, [x8, #192] //load rk12 + + ldp q14, q15, [x0], #32 //AES block 8k+14, 8k+15 - load ciphertext + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 10 + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 10 + + aese v0.16b, v28.16b //AES block 8k+8 - round 11 + ext v21.16b, v18.16b, v18.16b, #8 //MODULO - other mid alignment + aese v1.16b, v28.16b //AES block 8k+9 - round 11 + + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 10 + aese v6.16b, v28.16b //AES block 8k+14 - round 11 + aese v3.16b, v28.16b //AES block 8k+11 - round 11 + +.long 0xce006900 //eor3 v0.16b, v8.16b, v0.16b, v26.16b //AES block 8k+8 - result + rev32 v25.16b, v30.16b //CTR block 8k+19 + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 10 + + aese v4.16b, v28.16b //AES block 8k+12 - round 11 + aese v2.16b, v28.16b //AES block 8k+10 - round 11 + add v30.4s, v30.4s, v31.4s //CTR block 8k+19 + + aese v7.16b, v28.16b //AES block 8k+15 - round 11 + aese v5.16b, v28.16b //AES block 8k+13 - round 11 + pmull v17.1q, v18.1d, v16.1d //MODULO - mid 64b align with low + +.long 0xce016921 //eor3 v1.16b, v9.16b, v1.16b, v26.16b //AES block 8k+9 - result + stp q0, q1, [x2], #32 //AES block 8k+8, 8k+9 - store result +.long 0xce036963 //eor3 v3.16b, v11.16b, v3.16b, v26.16b //AES block 8k+11 - result + +.long 0xce026942 //eor3 v2.16b, v10.16b, v2.16b, v26.16b //AES block 8k+10 - result +.long 0xce0769e7 //eor3 v7.16b, v15.16b, v7.16b, v26.16b //AES block 8k+15 - result + stp q2, q3, [x2], #32 //AES block 8k+10, 8k+11 - store result + +.long 0xce0569a5 //eor3 v5.16b, v13.16b, v5.16b, v26.16b //AES block 8k+13 - result +.long 0xce115673 //eor3 v19.16b, v19.16b, v17.16b, v21.16b //MODULO - fold into low + mov v3.16b, v25.16b //CTR block 8k+19 + +.long 0xce046984 //eor3 v4.16b, v12.16b, v4.16b, v26.16b //AES block 8k+12 - result + stp q4, q5, [x2], #32 //AES block 8k+12, 8k+13 - store result + cmp x0, x5 //LOOP CONTROL + +.long 0xce0669c6 //eor3 v6.16b, v14.16b, v6.16b, v26.16b //AES block 8k+14 - result + stp q6, q7, [x2], #32 //AES block 8k+14, 8k+15 - store result + mov v0.16b, v20.16b //CTR block 8k+16 + + mov v1.16b, v22.16b //CTR block 8k+17 + mov v2.16b, v23.16b //CTR block 8k+18 + + rev32 v4.16b, v30.16b //CTR block 8k+20 + add v30.4s, v30.4s, v31.4s //CTR block 8k+20 + b.lt L192_dec_main_loop + +L192_dec_prepretail: //PREPRETAIL + ldp q26, q27, [x8, #0] //load rk0, rk1 + rev32 v5.16b, v30.16b //CTR block 8k+13 + add v30.4s, v30.4s, v31.4s //CTR block 8k+13 + + ldr q23, [x3, #176] //load h7l | h7h + ext v23.16b, v23.16b, v23.16b, #8 + ldr q25, [x3, #208] //load h8l | h8h + ext v25.16b, v25.16b, v25.16b, #8 + rev64 v8.16b, v8.16b //GHASH block 8k + ext v19.16b, v19.16b, v19.16b, #8 //PRE 0 + + rev64 v11.16b, v11.16b //GHASH block 8k+3 + rev32 v6.16b, v30.16b //CTR block 8k+14 + add v30.4s, v30.4s, v31.4s //CTR block 8k+14 + + eor v8.16b, v8.16b, v19.16b //PRE 1 + rev64 v10.16b, v10.16b //GHASH block 8k+2 + rev64 v9.16b, v9.16b //GHASH block 8k+1 + + ldr q20, [x3, #128] //load h5l | h5h + ext v20.16b, v20.16b, v20.16b, #8 + ldr q22, [x3, #160] //load h6l | h6h + ext v22.16b, v22.16b, v22.16b, #8 + rev32 v7.16b, v30.16b //CTR block 8k+15 + + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 0 + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 0 + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 0 + + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 0 + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 0 + pmull2 v16.1q, v9.2d, v23.2d //GHASH block 8k+1 - high + + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 0 + pmull2 v17.1q, v8.2d, v25.2d //GHASH block 8k - high + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 0 + + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 1 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 0 + ldp q28, q26, [x8, #32] //load rk2, rk3 + + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 1 + pmull2 v29.1q, v10.2d, v22.2d //GHASH block 8k+2 - high + pmull v22.1q, v10.1d, v22.1d //GHASH block 8k+2 - low + + pmull v23.1q, v9.1d, v23.1d //GHASH block 8k+1 - low + eor v17.16b, v17.16b, v16.16b //GHASH block 8k+1 - high + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 1 + + pmull v19.1q, v8.1d, v25.1d //GHASH block 8k - low + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 1 + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 1 + + trn1 v18.2d, v9.2d, v8.2d //GHASH block 8k, 8k+1 - mid + trn2 v8.2d, v9.2d, v8.2d //GHASH block 8k, 8k+1 - mid + pmull2 v9.1q, v11.2d, v20.2d //GHASH block 8k+3 - high + + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 1 + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 1 + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 1 + + ldr q21, [x3, #144] //load h6k | h5k + ldr q24, [x3, #192] //load h8k | h7k + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 2 + eor v8.16b, v8.16b, v18.16b //GHASH block 8k, 8k+1 - mid + + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 2 + rev64 v13.16b, v13.16b //GHASH block 8k+5 + pmull v20.1q, v11.1d, v20.1d //GHASH block 8k+3 - low + +.long 0xce1d2631 //eor3 v17.16b, v17.16b, v29.16b, v9.16b //GHASH block 8k+2, 8k+3 - high + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 2 + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 2 + + trn1 v29.2d, v11.2d, v10.2d //GHASH block 8k+2, 8k+3 - mid + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 3 + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 2 + + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 2 + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 2 + trn2 v10.2d, v11.2d, v10.2d //GHASH block 8k+2, 8k+3 - mid + + pmull2 v18.1q, v8.2d, v24.2d //GHASH block 8k - mid + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 2 + pmull v24.1q, v8.1d, v24.1d //GHASH block 8k+1 - mid + + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 3 + eor v10.16b, v10.16b, v29.16b //GHASH block 8k+2, 8k+3 - mid + eor v19.16b, v19.16b, v23.16b //GHASH block 8k+1 - low + + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 3 + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 3 + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 3 + +.long 0xce165273 //eor3 v19.16b, v19.16b, v22.16b, v20.16b //GHASH block 8k+2, 8k+3 - low + ldp q27, q28, [x8, #64] //load rk4, rk5 + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 3 + + ldr q23, [x3, #80] //load h3l | h3h + ext v23.16b, v23.16b, v23.16b, #8 + ldr q25, [x3, #112] //load h4l | h4h + ext v25.16b, v25.16b, v25.16b, #8 + pmull2 v29.1q, v10.2d, v21.2d //GHASH block 8k+2 - mid + pmull v21.1q, v10.1d, v21.1d //GHASH block 8k+3 - mid + + ldr q20, [x3, #32] //load h1l | h1h + ext v20.16b, v20.16b, v20.16b, #8 + ldr q22, [x3, #64] //load h2l | h2h + ext v22.16b, v22.16b, v22.16b, #8 + eor v18.16b, v18.16b, v24.16b //GHASH block 8k+1 - mid + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 3 + + rev64 v15.16b, v15.16b //GHASH block 8k+7 + +.long 0xce157652 //eor3 v18.16b, v18.16b, v21.16b, v29.16b //GHASH block 8k+2, 8k+3 - mid + rev64 v12.16b, v12.16b //GHASH block 8k+4 + + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 4 + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 4 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 3 + + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 4 + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 4 + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 4 + + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 4 + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 4 + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 4 + + rev64 v14.16b, v14.16b //GHASH block 8k+6 + ldr q21, [x3, #48] //load h2k | h1k + ldr q24, [x3, #96] //load h4k | h3k + trn1 v16.2d, v13.2d, v12.2d //GHASH block 8k+4, 8k+5 - mid + + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 5 + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 5 + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 5 + + ldp q26, q27, [x8, #96] //load rk6, rk7 + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 5 + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 5 + + pmull2 v11.1q, v14.2d, v22.2d //GHASH block 8k+6 - high + pmull2 v8.1q, v12.2d, v25.2d //GHASH block 8k+4 - high + pmull v22.1q, v14.1d, v22.1d //GHASH block 8k+6 - low + + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 5 + + pmull v25.1q, v12.1d, v25.1d //GHASH block 8k+4 - low + trn2 v12.2d, v13.2d, v12.2d //GHASH block 8k+4, 8k+5 - mid + pmull2 v10.1q, v13.2d, v23.2d //GHASH block 8k+5 - high + + pmull v23.1q, v13.1d, v23.1d //GHASH block 8k+5 - low + trn1 v13.2d, v15.2d, v14.2d //GHASH block 8k+6, 8k+7 - mid + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 5 + + trn2 v14.2d, v15.2d, v14.2d //GHASH block 8k+6, 8k+7 - mid + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 5 + eor v12.16b, v12.16b, v16.16b //GHASH block 8k+4, 8k+5 - mid + + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 6 + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 6 + + eor v14.16b, v14.16b, v13.16b //GHASH block 8k+6, 8k+7 - mid + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 6 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 6 + + pmull2 v16.1q, v12.2d, v24.2d //GHASH block 8k+4 - mid + pmull v24.1q, v12.1d, v24.1d //GHASH block 8k+5 - mid + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 6 + + pmull2 v13.1q, v14.2d, v21.2d //GHASH block 8k+6 - mid + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 6 + pmull2 v12.1q, v15.2d, v20.2d //GHASH block 8k+7 - high + +.long 0xce184252 //eor3 v18.16b, v18.16b, v24.16b, v16.16b //GHASH block 8k+4, 8k+5 - mid + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 7 +.long 0xce195e73 //eor3 v19.16b, v19.16b, v25.16b, v23.16b //GHASH block 8k+4, 8k+5 - low + + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 6 + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 6 + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 7 + + ldp q28, q26, [x8, #128] //load rk8, rk9 + pmull v21.1q, v14.1d, v21.1d //GHASH block 8k+7 - mid + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 7 + + ldr d16, [x10] //MODULO - load modulo constant +.long 0xce082a31 //eor3 v17.16b, v17.16b, v8.16b, v10.16b //GHASH block 8k+4, 8k+5 - high + pmull v20.1q, v15.1d, v20.1d //GHASH block 8k+7 - low + + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 7 + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 7 + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 7 + +.long 0xce0b3231 //eor3 v17.16b, v17.16b, v11.16b, v12.16b //GHASH block 8k+6, 8k+7 - high +.long 0xce165273 //eor3 v19.16b, v19.16b, v22.16b, v20.16b //GHASH block 8k+6, 8k+7 - low +.long 0xce153652 //eor3 v18.16b, v18.16b, v21.16b, v13.16b //GHASH block 8k+6, 8k+7 - mid + + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 7 + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 7 + +.long 0xce114e52 //eor3 v18.16b, v18.16b, v17.16b, v19.16b //MODULO - karatsuba tidy up + ext v21.16b, v17.16b, v17.16b, #8 //MODULO - other top alignment + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 8 + + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 8 + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 8 + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 8 + + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 8 + pmull v29.1q, v17.1d, v16.1d //MODULO - top 64b align with mid + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 8 + + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 8 + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 8 + ldp q27, q28, [x8, #160] //load rk10, rk11 + +.long 0xce1d5652 //eor3 v18.16b, v18.16b, v29.16b, v21.16b //MODULO - fold into mid + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 9 + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 9 + + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 9 + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 9 + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 9 + + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 9 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 9 + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 9 + + pmull v17.1q, v18.1d, v16.1d //MODULO - mid 64b align with low + ldr q26, [x8, #192] //load rk12 + ext v21.16b, v18.16b, v18.16b, #8 //MODULO - other mid alignment + + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 10 + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 10 + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 10 + + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 10 + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 10 + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 10 + + aese v0.16b, v28.16b //AES block 8k+8 - round 11 +.long 0xce115673 //eor3 v19.16b, v19.16b, v17.16b, v21.16b //MODULO - fold into low + aese v5.16b, v28.16b //AES block 8k+13 - round 11 + + aese v2.16b, v28.16b //AES block 8k+10 - round 11 + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 10 + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 10 + + aese v6.16b, v28.16b //AES block 8k+14 - round 11 + aese v4.16b, v28.16b //AES block 8k+12 - round 11 + add v30.4s, v30.4s, v31.4s //CTR block 8k+15 + + aese v3.16b, v28.16b //AES block 8k+11 - round 11 + aese v1.16b, v28.16b //AES block 8k+9 - round 11 + aese v7.16b, v28.16b //AES block 8k+15 - round 11 + +L192_dec_tail: //TAIL + + sub x5, x4, x0 //main_end_input_ptr is number of bytes left to process + + ldp q20, q21, [x3, #128] //load h5l | h5h + ext v20.16b, v20.16b, v20.16b, #8 + ldr q9, [x0], #16 //AES block 8k+8 - load ciphertext + + ldp q24, q25, [x3, #192] //load h8k | h7k + ext v25.16b, v25.16b, v25.16b, #8 + + mov v29.16b, v26.16b + + ldp q22, q23, [x3, #160] //load h6l | h6h + ext v22.16b, v22.16b, v22.16b, #8 + ext v23.16b, v23.16b, v23.16b, #8 + ext v16.16b, v19.16b, v19.16b, #8 //prepare final partial tag + +.long 0xce00752c //eor3 v12.16b, v9.16b, v0.16b, v29.16b //AES block 8k+8 - result + cmp x5, #112 + b.gt L192_dec_blocks_more_than_7 + + mov v7.16b, v6.16b + movi v17.8b, #0 + sub v30.4s, v30.4s, v31.4s + + mov v6.16b, v5.16b + mov v5.16b, v4.16b + mov v4.16b, v3.16b + + cmp x5, #96 + movi v19.8b, #0 + mov v3.16b, v2.16b + + mov v2.16b, v1.16b + movi v18.8b, #0 + b.gt L192_dec_blocks_more_than_6 + + mov v7.16b, v6.16b + mov v6.16b, v5.16b + mov v5.16b, v4.16b + + mov v4.16b, v3.16b + mov v3.16b, v1.16b + + sub v30.4s, v30.4s, v31.4s + cmp x5, #80 + b.gt L192_dec_blocks_more_than_5 + + mov v7.16b, v6.16b + mov v6.16b, v5.16b + + mov v5.16b, v4.16b + mov v4.16b, v1.16b + cmp x5, #64 + + sub v30.4s, v30.4s, v31.4s + b.gt L192_dec_blocks_more_than_4 + + sub v30.4s, v30.4s, v31.4s + mov v7.16b, v6.16b + mov v6.16b, v5.16b + + mov v5.16b, v1.16b + cmp x5, #48 + b.gt L192_dec_blocks_more_than_3 + + sub v30.4s, v30.4s, v31.4s + mov v7.16b, v6.16b + cmp x5, #32 + + mov v6.16b, v1.16b + ldr q24, [x3, #96] //load h4k | h3k + b.gt L192_dec_blocks_more_than_2 + + sub v30.4s, v30.4s, v31.4s + + mov v7.16b, v1.16b + cmp x5, #16 + b.gt L192_dec_blocks_more_than_1 + + sub v30.4s, v30.4s, v31.4s + ldr q21, [x3, #48] //load h2k | h1k + b L192_dec_blocks_less_than_1 +L192_dec_blocks_more_than_7: //blocks left > 7 + rev64 v8.16b, v9.16b //GHASH final-7 block + + ins v18.d[0], v24.d[1] //GHASH final-7 block - mid + eor v8.16b, v8.16b, v16.16b //feed in partial tag + + pmull2 v17.1q, v8.2d, v25.2d //GHASH final-7 block - high + ins v27.d[0], v8.d[1] //GHASH final-7 block - mid + ldr q9, [x0], #16 //AES final-6 block - load ciphertext + + pmull v19.1q, v8.1d, v25.1d //GHASH final-7 block - low + + eor v27.8b, v27.8b, v8.8b //GHASH final-7 block - mid + st1 { v12.16b}, [x2], #16 //AES final-7 block - store result + +.long 0xce01752c //eor3 v12.16b, v9.16b, v1.16b, v29.16b //AES final-6 block - result + + pmull v18.1q, v27.1d, v18.1d //GHASH final-7 block - mid + movi v16.8b, #0 //suppress further partial tag feed in +L192_dec_blocks_more_than_6: //blocks left > 6 + + rev64 v8.16b, v9.16b //GHASH final-6 block + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + + ldr q9, [x0], #16 //AES final-5 block - load ciphertext + ins v27.d[0], v8.d[1] //GHASH final-6 block - mid + + eor v27.8b, v27.8b, v8.8b //GHASH final-6 block - mid + movi v16.8b, #0 //suppress further partial tag feed in + pmull2 v28.1q, v8.2d, v23.2d //GHASH final-6 block - high + + st1 { v12.16b}, [x2], #16 //AES final-6 block - store result +.long 0xce02752c //eor3 v12.16b, v9.16b, v2.16b, v29.16b //AES final-5 block - result + + eor v17.16b, v17.16b, v28.16b //GHASH final-6 block - high + pmull v27.1q, v27.1d, v24.1d //GHASH final-6 block - mid + pmull v26.1q, v8.1d, v23.1d //GHASH final-6 block - low + + eor v18.16b, v18.16b, v27.16b //GHASH final-6 block - mid + eor v19.16b, v19.16b, v26.16b //GHASH final-6 block - low +L192_dec_blocks_more_than_5: //blocks left > 5 + + rev64 v8.16b, v9.16b //GHASH final-5 block + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + + ins v27.d[0], v8.d[1] //GHASH final-5 block - mid + + eor v27.8b, v27.8b, v8.8b //GHASH final-5 block - mid + + ins v27.d[1], v27.d[0] //GHASH final-5 block - mid + pmull2 v28.1q, v8.2d, v22.2d //GHASH final-5 block - high + + ldr q9, [x0], #16 //AES final-4 block - load ciphertext + + eor v17.16b, v17.16b, v28.16b //GHASH final-5 block - high + pmull v26.1q, v8.1d, v22.1d //GHASH final-5 block - low + + pmull2 v27.1q, v27.2d, v21.2d //GHASH final-5 block - mid + + eor v19.16b, v19.16b, v26.16b //GHASH final-5 block - low + movi v16.8b, #0 //suppress further partial tag feed in + st1 { v12.16b}, [x2], #16 //AES final-5 block - store result + + eor v18.16b, v18.16b, v27.16b //GHASH final-5 block - mid +.long 0xce03752c //eor3 v12.16b, v9.16b, v3.16b, v29.16b //AES final-4 block - result +L192_dec_blocks_more_than_4: //blocks left > 4 + + rev64 v8.16b, v9.16b //GHASH final-4 block + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + movi v16.8b, #0 //suppress further partial tag feed in + + ldr q9, [x0], #16 //AES final-3 block - load ciphertext + ins v27.d[0], v8.d[1] //GHASH final-4 block - mid + pmull v26.1q, v8.1d, v20.1d //GHASH final-4 block - low + + eor v27.8b, v27.8b, v8.8b //GHASH final-4 block - mid + + eor v19.16b, v19.16b, v26.16b //GHASH final-4 block - low + + pmull v27.1q, v27.1d, v21.1d //GHASH final-4 block - mid + st1 { v12.16b}, [x2], #16 //AES final-4 block - store result + pmull2 v28.1q, v8.2d, v20.2d //GHASH final-4 block - high + +.long 0xce04752c //eor3 v12.16b, v9.16b, v4.16b, v29.16b //AES final-3 block - result + + eor v18.16b, v18.16b, v27.16b //GHASH final-4 block - mid + eor v17.16b, v17.16b, v28.16b //GHASH final-4 block - high +L192_dec_blocks_more_than_3: //blocks left > 3 + + ldr q25, [x3, #112] //load h4l | h4h + ext v25.16b, v25.16b, v25.16b, #8 + rev64 v8.16b, v9.16b //GHASH final-3 block + ldr q9, [x0], #16 //AES final-2 block - load ciphertext + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + + ins v27.d[0], v8.d[1] //GHASH final-3 block - mid + pmull2 v28.1q, v8.2d, v25.2d //GHASH final-3 block - high + + eor v17.16b, v17.16b, v28.16b //GHASH final-3 block - high + movi v16.8b, #0 //suppress further partial tag feed in + pmull v26.1q, v8.1d, v25.1d //GHASH final-3 block - low + + st1 { v12.16b}, [x2], #16 //AES final-3 block - store result + eor v27.8b, v27.8b, v8.8b //GHASH final-3 block - mid +.long 0xce05752c //eor3 v12.16b, v9.16b, v5.16b, v29.16b //AES final-2 block - result + + eor v19.16b, v19.16b, v26.16b //GHASH final-3 block - low + ldr q24, [x3, #96] //load h4k | h3k + + ins v27.d[1], v27.d[0] //GHASH final-3 block - mid + + pmull2 v27.1q, v27.2d, v24.2d //GHASH final-3 block - mid + + eor v18.16b, v18.16b, v27.16b //GHASH final-3 block - mid +L192_dec_blocks_more_than_2: //blocks left > 2 + + rev64 v8.16b, v9.16b //GHASH final-2 block + ldr q23, [x3, #80] //load h3l | h3h + ext v23.16b, v23.16b, v23.16b, #8 + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + + ins v27.d[0], v8.d[1] //GHASH final-2 block - mid + ldr q9, [x0], #16 //AES final-1 block - load ciphertext + + pmull2 v28.1q, v8.2d, v23.2d //GHASH final-2 block - high + + eor v27.8b, v27.8b, v8.8b //GHASH final-2 block - mid + + eor v17.16b, v17.16b, v28.16b //GHASH final-2 block - high + pmull v26.1q, v8.1d, v23.1d //GHASH final-2 block - low + + pmull v27.1q, v27.1d, v24.1d //GHASH final-2 block - mid + movi v16.8b, #0 //suppress further partial tag feed in + + eor v19.16b, v19.16b, v26.16b //GHASH final-2 block - low + st1 { v12.16b}, [x2], #16 //AES final-2 block - store result + + eor v18.16b, v18.16b, v27.16b //GHASH final-2 block - mid +.long 0xce06752c //eor3 v12.16b, v9.16b, v6.16b, v29.16b //AES final-1 block - result +L192_dec_blocks_more_than_1: //blocks left > 1 + + rev64 v8.16b, v9.16b //GHASH final-1 block + ldr q9, [x0], #16 //AES final block - load ciphertext + ldr q22, [x3, #64] //load h1l | h1h + ext v22.16b, v22.16b, v22.16b, #8 + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + movi v16.8b, #0 //suppress further partial tag feed in + ldr q21, [x3, #48] //load h2k | h1k + + pmull v26.1q, v8.1d, v22.1d //GHASH final-1 block - low + ins v27.d[0], v8.d[1] //GHASH final-1 block - mid + st1 { v12.16b}, [x2], #16 //AES final-1 block - store result + + pmull2 v28.1q, v8.2d, v22.2d //GHASH final-1 block - high + +.long 0xce07752c //eor3 v12.16b, v9.16b, v7.16b, v29.16b //AES final block - result + + eor v27.8b, v27.8b, v8.8b //GHASH final-1 block - mid + + ins v27.d[1], v27.d[0] //GHASH final-1 block - mid + + pmull2 v27.1q, v27.2d, v21.2d //GHASH final-1 block - mid + + eor v19.16b, v19.16b, v26.16b //GHASH final-1 block - low + + eor v18.16b, v18.16b, v27.16b //GHASH final-1 block - mid + eor v17.16b, v17.16b, v28.16b //GHASH final-1 block - high +L192_dec_blocks_less_than_1: //blocks left <= 1 + + rev32 v30.16b, v30.16b + and x1, x1, #127 //bit_length %= 128 + + sub x1, x1, #128 //bit_length -= 128 + str q30, [x16] //store the updated counter + + neg x1, x1 //bit_length = 128 - #bits in input (in range [1,128]) + mvn x6, xzr //temp0_x = 0xffffffffffffffff + + and x1, x1, #127 //bit_length %= 128 + + mvn x7, xzr //temp1_x = 0xffffffffffffffff + lsr x6, x6, x1 //temp0_x is mask for top 64b of last block + cmp x1, #64 + + csel x13, x7, x6, lt + csel x14, x6, xzr, lt + ldr q20, [x3, #32] //load h1l | h1h + ext v20.16b, v20.16b, v20.16b, #8 + + mov v0.d[1], x14 + ld1 { v26.16b}, [x2] //load existing bytes where the possibly partial last block is to be stored + + mov v0.d[0], x13 //ctr0b is mask for last block + + and v9.16b, v9.16b, v0.16b //possibly partial last block has zeroes in highest bits + bif v12.16b, v26.16b, v0.16b //insert existing bytes in top end of result before storing + + rev64 v8.16b, v9.16b //GHASH final block + + st1 { v12.16b}, [x2] //store all 16B + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + + ins v16.d[0], v8.d[1] //GHASH final block - mid + pmull v26.1q, v8.1d, v20.1d //GHASH final block - low + + eor v16.8b, v16.8b, v8.8b //GHASH final block - mid + pmull2 v28.1q, v8.2d, v20.2d //GHASH final block - high + eor v19.16b, v19.16b, v26.16b //GHASH final block - low + + pmull v16.1q, v16.1d, v21.1d //GHASH final block - mid + eor v17.16b, v17.16b, v28.16b //GHASH final block - high + + eor v14.16b, v17.16b, v19.16b //MODULO - karatsuba tidy up + eor v18.16b, v18.16b, v16.16b //GHASH final block - mid + ldr d16, [x10] //MODULO - load modulo constant + + pmull v21.1q, v17.1d, v16.1d //MODULO - top 64b align with mid + ext v17.16b, v17.16b, v17.16b, #8 //MODULO - other top alignment + + eor v18.16b, v18.16b, v14.16b //MODULO - karatsuba tidy up + +.long 0xce115652 //eor3 v18.16b, v18.16b, v17.16b, v21.16b //MODULO - fold into mid + + pmull v17.1q, v18.1d, v16.1d //MODULO - mid 64b align with low + ext v18.16b, v18.16b, v18.16b, #8 //MODULO - other mid alignment + +.long 0xce124673 //eor3 v19.16b, v19.16b, v18.16b, v17.16b //MODULO - fold into low + ext v19.16b, v19.16b, v19.16b, #8 + rev64 v19.16b, v19.16b + st1 { v19.16b }, [x3] + + mov x0, x9 + + ldp d10, d11, [sp, #16] + ldp d12, d13, [sp, #32] + ldp d14, d15, [sp, #48] + ldp d8, d9, [sp], #80 + ret + +L192_dec_ret: + mov w0, #0x0 + ret + +.globl _unroll8_eor3_aes_gcm_enc_256_kernel + +.align 4 +_unroll8_eor3_aes_gcm_enc_256_kernel: + AARCH64_VALID_CALL_TARGET + cbz x1, L256_enc_ret + stp d8, d9, [sp, #-80]! + lsr x9, x1, #3 + mov x16, x4 + mov x8, x5 + stp d10, d11, [sp, #16] + stp d12, d13, [sp, #32] + stp d14, d15, [sp, #48] + mov x5, #0xc200000000000000 + stp x5, xzr, [sp, #64] + add x10, sp, #64 + + ld1 { v0.16b}, [x16] //CTR block 0 + + mov x5, x9 + + mov x15, #0x100000000 //set up counter increment + movi v31.16b, #0x0 + mov v31.d[1], x15 + sub x5, x5, #1 //byte_len - 1 + + and x5, x5, #0xffffffffffffff80 //number of bytes to be processed in main loop (at least 1 byte must be handled by tail) + + add x5, x5, x0 + + rev32 v30.16b, v0.16b //set up reversed counter + + add v30.4s, v30.4s, v31.4s //CTR block 0 + + rev32 v1.16b, v30.16b //CTR block 1 + add v30.4s, v30.4s, v31.4s //CTR block 1 + + rev32 v2.16b, v30.16b //CTR block 2 + add v30.4s, v30.4s, v31.4s //CTR block 2 + + rev32 v3.16b, v30.16b //CTR block 3 + add v30.4s, v30.4s, v31.4s //CTR block 3 + + rev32 v4.16b, v30.16b //CTR block 4 + add v30.4s, v30.4s, v31.4s //CTR block 4 + + rev32 v5.16b, v30.16b //CTR block 5 + add v30.4s, v30.4s, v31.4s //CTR block 5 + ldp q26, q27, [x8, #0] //load rk0, rk1 + + rev32 v6.16b, v30.16b //CTR block 6 + add v30.4s, v30.4s, v31.4s //CTR block 6 + + rev32 v7.16b, v30.16b //CTR block 7 + + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 3 - round 0 + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 4 - round 0 + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 2 - round 0 + + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 0 - round 0 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 1 - round 0 + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 6 - round 0 + + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 5 - round 0 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 7 - round 0 + ldp q28, q26, [x8, #32] //load rk2, rk3 + + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 4 - round 1 + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 1 - round 1 + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 3 - round 1 + + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 6 - round 1 + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 5 - round 1 + + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 2 - round 1 + + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 7 - round 1 + + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 2 - round 2 + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 3 - round 2 + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 0 - round 1 + + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 7 - round 2 + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 6 - round 2 + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 5 - round 2 + + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 4 - round 2 + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 0 - round 2 + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 1 - round 2 + + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 5 - round 3 + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 3 - round 3 + ldp q27, q28, [x8, #64] //load rk4, rk5 + + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 4 - round 3 + + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 1 - round 3 + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 6 - round 3 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 7 - round 3 + + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 2 - round 3 + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 0 - round 3 + + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 4 - round 4 + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 6 - round 4 + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 1 - round 4 + + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 2 - round 4 + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 0 - round 4 + + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 3 - round 4 + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 7 - round 4 + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 5 - round 4 + + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 0 - round 5 + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 2 - round 5 + ldp q26, q27, [x8, #96] //load rk6, rk7 + + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 1 - round 5 + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 4 - round 5 + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 5 - round 5 + + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 3 - round 5 + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 6 - round 5 + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 7 - round 5 + + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 1 - round 6 + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 5 - round 6 + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 4 - round 6 + + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 2 - round 6 + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 6 - round 6 + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 0 - round 6 + + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 7 - round 6 + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 3 - round 6 + ldp q28, q26, [x8, #128] //load rk8, rk9 + + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 2 - round 7 + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 0 - round 7 + + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 7 - round 7 + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 6 - round 7 + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 1 - round 7 + + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 5 - round 7 + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 3 - round 7 + + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 4 - round 7 + + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 6 - round 8 + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 1 - round 8 + + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 3 - round 8 + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 0 - round 8 + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 7 - round 8 + + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 5 - round 8 + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 4 - round 8 + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 2 - round 8 + + ld1 { v19.16b}, [x3] + ext v19.16b, v19.16b, v19.16b, #8 + rev64 v19.16b, v19.16b + ldp q27, q28, [x8, #160] //load rk10, rk11 + + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 6 - round 9 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 7 - round 9 + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 3 - round 9 + + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 4 - round 9 + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 5 - round 9 + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 2 - round 9 + + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 1 - round 9 + + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 7 - round 10 + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 4 - round 10 + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 0 - round 9 + + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 1 - round 10 + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 5 - round 10 + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 3 - round 10 + + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 2 - round 10 + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 0 - round 10 + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 6 - round 10 + + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 4 - round 11 + ldp q26, q27, [x8, #192] //load rk12, rk13 + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 5 - round 11 + + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 2 - round 11 + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 6 - round 11 + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 1 - round 11 + + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 0 - round 11 + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 3 - round 11 + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 7 - round 11 + + add v30.4s, v30.4s, v31.4s //CTR block 7 + ldr q28, [x8, #224] //load rk14 + + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 4 - round 12 + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 2 - round 12 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 1 - round 12 + + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 0 - round 12 + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 5 - round 12 + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 3 - round 12 + + aese v2.16b, v27.16b //AES block 2 - round 13 + aese v1.16b, v27.16b //AES block 1 - round 13 + aese v4.16b, v27.16b //AES block 4 - round 13 + + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 6 - round 12 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 7 - round 12 + + aese v0.16b, v27.16b //AES block 0 - round 13 + aese v5.16b, v27.16b //AES block 5 - round 13 + + aese v6.16b, v27.16b //AES block 6 - round 13 + aese v7.16b, v27.16b //AES block 7 - round 13 + aese v3.16b, v27.16b //AES block 3 - round 13 + + add x4, x0, x1, lsr #3 //end_input_ptr + cmp x0, x5 //check if we have <= 8 blocks + b.ge L256_enc_tail //handle tail + + ldp q8, q9, [x0], #32 //AES block 0, 1 - load plaintext + + ldp q10, q11, [x0], #32 //AES block 2, 3 - load plaintext + +.long 0xce007108 //eor3 v8.16b, v8.16b, v0.16b, v28.16b //AES block 0 - result + rev32 v0.16b, v30.16b //CTR block 8 + add v30.4s, v30.4s, v31.4s //CTR block 8 + +.long 0xce017129 //eor3 v9.16b, v9.16b, v1.16b, v28.16b //AES block 1 - result +.long 0xce03716b //eor3 v11.16b, v11.16b, v3.16b, v28.16b //AES block 3 - result + + rev32 v1.16b, v30.16b //CTR block 9 + add v30.4s, v30.4s, v31.4s //CTR block 9 + ldp q12, q13, [x0], #32 //AES block 4, 5 - load plaintext + + ldp q14, q15, [x0], #32 //AES block 6, 7 - load plaintext +.long 0xce02714a //eor3 v10.16b, v10.16b, v2.16b, v28.16b //AES block 2 - result + cmp x0, x5 //check if we have <= 8 blocks + + rev32 v2.16b, v30.16b //CTR block 10 + add v30.4s, v30.4s, v31.4s //CTR block 10 + stp q8, q9, [x2], #32 //AES block 0, 1 - store result + + stp q10, q11, [x2], #32 //AES block 2, 3 - store result + + rev32 v3.16b, v30.16b //CTR block 11 + add v30.4s, v30.4s, v31.4s //CTR block 11 + +.long 0xce04718c //eor3 v12.16b, v12.16b, v4.16b, v28.16b //AES block 4 - result + +.long 0xce0771ef //eor3 v15.16b, v15.16b, v7.16b, v28.16b //AES block 7 - result +.long 0xce0671ce //eor3 v14.16b, v14.16b, v6.16b, v28.16b //AES block 6 - result +.long 0xce0571ad //eor3 v13.16b, v13.16b, v5.16b, v28.16b //AES block 5 - result + + stp q12, q13, [x2], #32 //AES block 4, 5 - store result + rev32 v4.16b, v30.16b //CTR block 12 + + stp q14, q15, [x2], #32 //AES block 6, 7 - store result + add v30.4s, v30.4s, v31.4s //CTR block 12 + b.ge L256_enc_prepretail //do prepretail + +L256_enc_main_loop: //main loop start + ldp q26, q27, [x8, #0] //load rk0, rk1 + + rev32 v5.16b, v30.16b //CTR block 8k+13 + add v30.4s, v30.4s, v31.4s //CTR block 8k+13 + ldr q21, [x3, #144] //load h6k | h5k + ldr q24, [x3, #192] //load h8k | h7k + + rev64 v11.16b, v11.16b //GHASH block 8k+3 + ldr q20, [x3, #128] //load h5l | h5h + ext v20.16b, v20.16b, v20.16b, #8 + ldr q22, [x3, #160] //load h6l | h6h + ext v22.16b, v22.16b, v22.16b, #8 + rev64 v9.16b, v9.16b //GHASH block 8k+1 + + rev32 v6.16b, v30.16b //CTR block 8k+14 + add v30.4s, v30.4s, v31.4s //CTR block 8k+14 + rev64 v8.16b, v8.16b //GHASH block 8k + + rev64 v12.16b, v12.16b //GHASH block 8k+4 + ext v19.16b, v19.16b, v19.16b, #8 //PRE 0 + ldr q23, [x3, #176] //load h7l | h7h + ext v23.16b, v23.16b, v23.16b, #8 + ldr q25, [x3, #208] //load h8l | h8h + ext v25.16b, v25.16b, v25.16b, #8 + + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 0 + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 0 + rev32 v7.16b, v30.16b //CTR block 8k+15 + + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 0 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 0 + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 0 + + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 0 + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 0 + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 0 + + ldp q28, q26, [x8, #32] //load rk2, rk3 + eor v8.16b, v8.16b, v19.16b //PRE 1 + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 1 + + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 1 + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 1 + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 1 + + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 1 + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 1 + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 1 + + pmull2 v17.1q, v8.2d, v25.2d //GHASH block 8k - high + pmull v19.1q, v8.1d, v25.1d //GHASH block 8k - low + pmull2 v16.1q, v9.2d, v23.2d //GHASH block 8k+1 - high + + trn1 v18.2d, v9.2d, v8.2d //GHASH block 8k, 8k+1 - mid + trn2 v8.2d, v9.2d, v8.2d //GHASH block 8k, 8k+1 - mid + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 1 + + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 2 + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 2 + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 2 + + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 2 + pmull v23.1q, v9.1d, v23.1d //GHASH block 8k+1 - low + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 2 + + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 3 + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 3 + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 2 + + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 3 + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 2 + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 2 + + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 3 + rev64 v14.16b, v14.16b //GHASH block 8k+6 + pmull2 v9.1q, v11.2d, v20.2d //GHASH block 8k+3 - high + + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 3 + ldp q27, q28, [x8, #64] //load rk4, rk5 + rev64 v10.16b, v10.16b //GHASH block 8k+2 + + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 3 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 3 + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 3 + + eor v17.16b, v17.16b, v16.16b //GHASH block 8k+1 - high + pmull2 v29.1q, v10.2d, v22.2d //GHASH block 8k+2 - high + rev64 v13.16b, v13.16b //GHASH block 8k+5 + + pmull v20.1q, v11.1d, v20.1d //GHASH block 8k+3 - low + eor v19.16b, v19.16b, v23.16b //GHASH block 8k+1 - low + ldr q23, [x3, #80] //load h3l | h3h + ext v23.16b, v23.16b, v23.16b, #8 + ldr q25, [x3, #112] //load h4l | h4h + ext v25.16b, v25.16b, v25.16b, #8 + + trn1 v16.2d, v13.2d, v12.2d //GHASH block 8k+4, 8k+5 - mid +.long 0xce1d2631 //eor3 v17.16b, v17.16b, v29.16b, v9.16b //GHASH block 8k+2, 8k+3 - high + pmull v22.1q, v10.1d, v22.1d //GHASH block 8k+2 - low + + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 4 + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 4 + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 4 + + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 4 + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 4 + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 4 + + trn1 v29.2d, v11.2d, v10.2d //GHASH block 8k+2, 8k+3 - mid + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 4 + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 4 + + trn2 v10.2d, v11.2d, v10.2d //GHASH block 8k+2, 8k+3 - mid + eor v8.16b, v8.16b, v18.16b //GHASH block 8k, 8k+1 - mid + ldp q26, q27, [x8, #96] //load rk6, rk7 + + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 5 + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 5 + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 5 + + eor v10.16b, v10.16b, v29.16b //GHASH block 8k+2, 8k+3 - mid + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 5 + rev64 v15.16b, v15.16b //GHASH block 8k+7 + + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 5 + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 5 + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 5 + + pmull2 v29.1q, v10.2d, v21.2d //GHASH block 8k+2 - mid + pmull2 v18.1q, v8.2d, v24.2d //GHASH block 8k - mid + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 5 + + pmull v24.1q, v8.1d, v24.1d //GHASH block 8k+1 - mid + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 6 + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 6 + + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 6 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 6 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 6 + + eor v18.16b, v18.16b, v24.16b //GHASH block 8k+1 - mid + pmull v21.1q, v10.1d, v21.1d //GHASH block 8k+3 - mid + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 6 + +.long 0xce165273 //eor3 v19.16b, v19.16b, v22.16b, v20.16b //GHASH block 8k+2, 8k+3 - low + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 6 + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 6 + + ldp q28, q26, [x8, #128] //load rk8, rk9 + pmull2 v8.1q, v12.2d, v25.2d //GHASH block 8k+4 - high + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 7 + + ldr q20, [x3, #32] //load h1l | h1h + ext v20.16b, v20.16b, v20.16b, #8 + ldr q22, [x3, #64] //load h2l | h2h + ext v22.16b, v22.16b, v22.16b, #8 + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 7 +.long 0xce157652 //eor3 v18.16b, v18.16b, v21.16b, v29.16b //GHASH block 8k+2, 8k+3 - mid + + ldr q21, [x3, #48] //load h2k | h1k + ldr q24, [x3, #96] //load h4k | h3k + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 7 + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 7 + + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 7 + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 7 + pmull v25.1q, v12.1d, v25.1d //GHASH block 8k+4 - low + + trn2 v12.2d, v13.2d, v12.2d //GHASH block 8k+4, 8k+5 - mid + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 7 + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 7 + + pmull2 v10.1q, v13.2d, v23.2d //GHASH block 8k+5 - high + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 8 + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 8 + + pmull v23.1q, v13.1d, v23.1d //GHASH block 8k+5 - low + trn1 v13.2d, v15.2d, v14.2d //GHASH block 8k+6, 8k+7 - mid + eor v12.16b, v12.16b, v16.16b //GHASH block 8k+4, 8k+5 - mid + + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 8 + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 9 + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 8 + + pmull2 v16.1q, v12.2d, v24.2d //GHASH block 8k+4 - mid + pmull v24.1q, v12.1d, v24.1d //GHASH block 8k+5 - mid + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 8 + + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 8 + pmull2 v11.1q, v14.2d, v22.2d //GHASH block 8k+6 - high + pmull v22.1q, v14.1d, v22.1d //GHASH block 8k+6 - low + + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 8 + trn2 v14.2d, v15.2d, v14.2d //GHASH block 8k+6, 8k+7 - mid + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 8 + +.long 0xce184252 //eor3 v18.16b, v18.16b, v24.16b, v16.16b //GHASH block 8k+4, 8k+5 - mid + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 9 + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 9 + + eor v14.16b, v14.16b, v13.16b //GHASH block 8k+6, 8k+7 - mid + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 9 + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 9 + + ldp q27, q28, [x8, #160] //load rk10, rk11 + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 9 + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 9 + + pmull2 v12.1q, v15.2d, v20.2d //GHASH block 8k+7 - high +.long 0xce195e73 //eor3 v19.16b, v19.16b, v25.16b, v23.16b //GHASH block 8k+4, 8k+5 - low + pmull v20.1q, v15.1d, v20.1d //GHASH block 8k+7 - low + + ldr d16, [x10] //MODULO - load modulo constant + pmull2 v13.1q, v14.2d, v21.2d //GHASH block 8k+6 - mid + pmull v21.1q, v14.1d, v21.1d //GHASH block 8k+7 - mid + + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 9 + +.long 0xce153652 //eor3 v18.16b, v18.16b, v21.16b, v13.16b //GHASH block 8k+6, 8k+7 - mid +.long 0xce165273 //eor3 v19.16b, v19.16b, v22.16b, v20.16b //GHASH block 8k+6, 8k+7 - low +.long 0xce082a31 //eor3 v17.16b, v17.16b, v8.16b, v10.16b //GHASH block 8k+4, 8k+5 - high + + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 10 + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 10 + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 10 + + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 10 + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 10 + add v30.4s, v30.4s, v31.4s //CTR block 8k+15 + + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 10 + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 10 + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 10 + +.long 0xce0b3231 //eor3 v17.16b, v17.16b, v11.16b, v12.16b //GHASH block 8k+6, 8k+7 - high + + ldp q26, q27, [x8, #192] //load rk12, rk13 + rev32 v20.16b, v30.16b //CTR block 8k+16 + + ext v21.16b, v17.16b, v17.16b, #8 //MODULO - other top alignment + ldp q8, q9, [x0], #32 //AES block 8k+8, 8k+9 - load plaintext + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 11 + + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 11 + add v30.4s, v30.4s, v31.4s //CTR block 8k+16 + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 11 + + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 11 + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 11 + + pmull v29.1q, v17.1d, v16.1d //MODULO - top 64b align with mid + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 11 + + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 12 + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 11 + + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 12 + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 12 + rev32 v22.16b, v30.16b //CTR block 8k+17 + + add v30.4s, v30.4s, v31.4s //CTR block 8k+17 + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 11 +.long 0xce114e52 //eor3 v18.16b, v18.16b, v17.16b, v19.16b //MODULO - karatsuba tidy up + + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 12 + ldr q28, [x8, #224] //load rk14 + aese v7.16b, v27.16b //AES block 8k+15 - round 13 + + ldp q10, q11, [x0], #32 //AES block 8k+10, 8k+11 - load plaintext + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 12 + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 12 + +.long 0xce1d5652 //eor3 v18.16b, v18.16b, v29.16b, v21.16b //MODULO - fold into mid + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 12 + ldp q12, q13, [x0], #32 //AES block 4, 5 - load plaintext + + ldp q14, q15, [x0], #32 //AES block 6, 7 - load plaintext + aese v2.16b, v27.16b //AES block 8k+10 - round 13 + aese v4.16b, v27.16b //AES block 8k+12 - round 13 + + rev32 v23.16b, v30.16b //CTR block 8k+18 + add v30.4s, v30.4s, v31.4s //CTR block 8k+18 + aese v5.16b, v27.16b //AES block 8k+13 - round 13 + + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 12 + aese v3.16b, v27.16b //AES block 8k+11 - round 13 + cmp x0, x5 //LOOP CONTROL + +.long 0xce02714a //eor3 v10.16b, v10.16b, v2.16b, v28.16b //AES block 8k+10 - result + rev32 v25.16b, v30.16b //CTR block 8k+19 + add v30.4s, v30.4s, v31.4s //CTR block 8k+19 + + aese v0.16b, v27.16b //AES block 8k+8 - round 13 + aese v6.16b, v27.16b //AES block 8k+14 - round 13 +.long 0xce0571ad //eor3 v13.16b, v13.16b, v5.16b, v28.16b //AES block 5 - result + + ext v21.16b, v18.16b, v18.16b, #8 //MODULO - other mid alignment + pmull v17.1q, v18.1d, v16.1d //MODULO - mid 64b align with low + aese v1.16b, v27.16b //AES block 8k+9 - round 13 + +.long 0xce04718c //eor3 v12.16b, v12.16b, v4.16b, v28.16b //AES block 4 - result + rev32 v4.16b, v30.16b //CTR block 8k+20 +.long 0xce03716b //eor3 v11.16b, v11.16b, v3.16b, v28.16b //AES block 8k+11 - result + + mov v3.16b, v25.16b //CTR block 8k+19 +.long 0xce017129 //eor3 v9.16b, v9.16b, v1.16b, v28.16b //AES block 8k+9 - result +.long 0xce007108 //eor3 v8.16b, v8.16b, v0.16b, v28.16b //AES block 8k+8 - result + + add v30.4s, v30.4s, v31.4s //CTR block 8k+20 + stp q8, q9, [x2], #32 //AES block 8k+8, 8k+9 - store result + mov v2.16b, v23.16b //CTR block 8k+18 + +.long 0xce0771ef //eor3 v15.16b, v15.16b, v7.16b, v28.16b //AES block 7 - result +.long 0xce154673 //eor3 v19.16b, v19.16b, v21.16b, v17.16b //MODULO - fold into low + stp q10, q11, [x2], #32 //AES block 8k+10, 8k+11 - store result + +.long 0xce0671ce //eor3 v14.16b, v14.16b, v6.16b, v28.16b //AES block 6 - result + mov v1.16b, v22.16b //CTR block 8k+17 + stp q12, q13, [x2], #32 //AES block 4, 5 - store result + + stp q14, q15, [x2], #32 //AES block 6, 7 - store result + mov v0.16b, v20.16b //CTR block 8k+16 + b.lt L256_enc_main_loop + +L256_enc_prepretail: //PREPRETAIL + rev32 v5.16b, v30.16b //CTR block 8k+13 + ldp q26, q27, [x8, #0] //load rk0, rk1 + add v30.4s, v30.4s, v31.4s //CTR block 8k+13 + + rev64 v10.16b, v10.16b //GHASH block 8k+2 + + rev32 v6.16b, v30.16b //CTR block 8k+14 + add v30.4s, v30.4s, v31.4s //CTR block 8k+14 + + rev64 v13.16b, v13.16b //GHASH block 8k+5 + ldr q21, [x3, #144] //load h6k | h5k + ldr q24, [x3, #192] //load h8k | h7k + + rev32 v7.16b, v30.16b //CTR block 8k+15 + + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 0 + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 0 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 0 + + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 0 + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 0 + + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 0 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 0 + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 0 + + ext v19.16b, v19.16b, v19.16b, #8 //PRE 0 + rev64 v8.16b, v8.16b //GHASH block 8k + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 1 + + rev64 v9.16b, v9.16b //GHASH block 8k+1 + ldp q28, q26, [x8, #32] //load rk2, rk3 + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 1 + + ldr q23, [x3, #176] //load h7l | h7h + ext v23.16b, v23.16b, v23.16b, #8 + ldr q25, [x3, #208] //load h8l | h8h + ext v25.16b, v25.16b, v25.16b, #8 + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 1 + + ldr q20, [x3, #128] //load h5l | h5h + ext v20.16b, v20.16b, v20.16b, #8 + ldr q22, [x3, #160] //load h6l | h6h + ext v22.16b, v22.16b, v22.16b, #8 + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 1 + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 1 + + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 1 + eor v8.16b, v8.16b, v19.16b //PRE 1 + + rev64 v11.16b, v11.16b //GHASH block 8k+3 + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 1 + + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 2 + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 2 + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 1 + + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 2 + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 2 + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 2 + + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 2 + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 2 + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 2 + + ldp q27, q28, [x8, #64] //load rk4, rk5 + trn1 v18.2d, v9.2d, v8.2d //GHASH block 8k, 8k+1 - mid + pmull2 v17.1q, v8.2d, v25.2d //GHASH block 8k - high + + rev64 v14.16b, v14.16b //GHASH block 8k+6 + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 3 + pmull2 v16.1q, v9.2d, v23.2d //GHASH block 8k+1 - high + + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 3 + pmull v19.1q, v8.1d, v25.1d //GHASH block 8k - low + trn2 v8.2d, v9.2d, v8.2d //GHASH block 8k, 8k+1 - mid + + pmull2 v29.1q, v10.2d, v22.2d //GHASH block 8k+2 - high + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 3 + + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 3 + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 3 + eor v17.16b, v17.16b, v16.16b //GHASH block 8k+1 - high + + pmull v23.1q, v9.1d, v23.1d //GHASH block 8k+1 - low + pmull2 v9.1q, v11.2d, v20.2d //GHASH block 8k+3 - high + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 3 + + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 3 + eor v8.16b, v8.16b, v18.16b //GHASH block 8k, 8k+1 - mid + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 3 + + pmull v22.1q, v10.1d, v22.1d //GHASH block 8k+2 - low + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 4 + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 4 + + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 4 + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 4 + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 4 + + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 5 + pmull2 v18.1q, v8.2d, v24.2d //GHASH block 8k - mid +.long 0xce1d2631 //eor3 v17.16b, v17.16b, v29.16b, v9.16b //GHASH block 8k+2, 8k+3 - high + + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 4 + trn1 v29.2d, v11.2d, v10.2d //GHASH block 8k+2, 8k+3 - mid + trn2 v10.2d, v11.2d, v10.2d //GHASH block 8k+2, 8k+3 - mid + + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 4 + eor v19.16b, v19.16b, v23.16b //GHASH block 8k+1 - low + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 4 + + pmull v20.1q, v11.1d, v20.1d //GHASH block 8k+3 - low + pmull v24.1q, v8.1d, v24.1d //GHASH block 8k+1 - mid + eor v10.16b, v10.16b, v29.16b //GHASH block 8k+2, 8k+3 - mid + + rev64 v12.16b, v12.16b //GHASH block 8k+4 + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 5 + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 5 + + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 5 + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 5 + ldp q26, q27, [x8, #96] //load rk6, rk7 + + ldr q23, [x3, #80] //load h3l | h3h + ext v23.16b, v23.16b, v23.16b, #8 + ldr q25, [x3, #112] //load h4l | h4h + ext v25.16b, v25.16b, v25.16b, #8 + pmull2 v29.1q, v10.2d, v21.2d //GHASH block 8k+2 - mid + pmull v21.1q, v10.1d, v21.1d //GHASH block 8k+3 - mid + +.long 0xce165273 //eor3 v19.16b, v19.16b, v22.16b, v20.16b //GHASH block 8k+2, 8k+3 - low + eor v18.16b, v18.16b, v24.16b //GHASH block 8k+1 - mid + + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 5 + rev64 v15.16b, v15.16b //GHASH block 8k+7 + trn1 v16.2d, v13.2d, v12.2d //GHASH block 8k+4, 8k+5 - mid + + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 5 + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 5 +.long 0xce157652 //eor3 v18.16b, v18.16b, v21.16b, v29.16b //GHASH block 8k+2, 8k+3 - mid + + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 6 + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 6 + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 6 + + ldr q21, [x3, #48] //load h2k | h1k + ldr q24, [x3, #96] //load h4k | h3k + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 6 + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 6 + + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 6 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 6 + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 6 + + pmull2 v8.1q, v12.2d, v25.2d //GHASH block 8k+4 - high + pmull v25.1q, v12.1d, v25.1d //GHASH block 8k+4 - low + ldr q20, [x3, #32] //load h1l | h1h + ext v20.16b, v20.16b, v20.16b, #8 + ldr q22, [x3, #64] //load h2l | h2h + ext v22.16b, v22.16b, v22.16b, #8 + + ldp q28, q26, [x8, #128] //load rk8, rk9 + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 7 + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 7 + + pmull2 v10.1q, v13.2d, v23.2d //GHASH block 8k+5 - high + trn2 v12.2d, v13.2d, v12.2d //GHASH block 8k+4, 8k+5 - mid + + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 7 + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 7 + pmull v23.1q, v13.1d, v23.1d //GHASH block 8k+5 - low + + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 7 + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 7 + eor v12.16b, v12.16b, v16.16b //GHASH block 8k+4, 8k+5 - mid + + pmull2 v11.1q, v14.2d, v22.2d //GHASH block 8k+6 - high + pmull v22.1q, v14.1d, v22.1d //GHASH block 8k+6 - low + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 7 + + trn1 v13.2d, v15.2d, v14.2d //GHASH block 8k+6, 8k+7 - mid + trn2 v14.2d, v15.2d, v14.2d //GHASH block 8k+6, 8k+7 - mid + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 7 + + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 8 +.long 0xce195e73 //eor3 v19.16b, v19.16b, v25.16b, v23.16b //GHASH block 8k+4, 8k+5 - low + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 8 + + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 8 + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 8 + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 8 + + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 8 + eor v14.16b, v14.16b, v13.16b //GHASH block 8k+6, 8k+7 - mid + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 8 + + pmull2 v16.1q, v12.2d, v24.2d //GHASH block 8k+4 - mid + pmull v24.1q, v12.1d, v24.1d //GHASH block 8k+5 - mid + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 8 + + pmull2 v12.1q, v15.2d, v20.2d //GHASH block 8k+7 - high + pmull2 v13.1q, v14.2d, v21.2d //GHASH block 8k+6 - mid + pmull v21.1q, v14.1d, v21.1d //GHASH block 8k+7 - mid + + pmull v20.1q, v15.1d, v20.1d //GHASH block 8k+7 - low +.long 0xce184252 //eor3 v18.16b, v18.16b, v24.16b, v16.16b //GHASH block 8k+4, 8k+5 - mid +.long 0xce082a31 //eor3 v17.16b, v17.16b, v8.16b, v10.16b //GHASH block 8k+4, 8k+5 - high + + ldp q27, q28, [x8, #160] //load rk10, rk11 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 9 + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 9 + +.long 0xce0b3231 //eor3 v17.16b, v17.16b, v11.16b, v12.16b //GHASH block 8k+6, 8k+7 - high +.long 0xce153652 //eor3 v18.16b, v18.16b, v21.16b, v13.16b //GHASH block 8k+6, 8k+7 - mid + ldr d16, [x10] //MODULO - load modulo constant + +.long 0xce165273 //eor3 v19.16b, v19.16b, v22.16b, v20.16b //GHASH block 8k+6, 8k+7 - low + + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 9 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 9 + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 9 + + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 9 + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 9 + + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 10 + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 10 + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 9 + + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 10 + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 10 + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 10 + + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 10 + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 10 + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 10 + + pmull v29.1q, v17.1d, v16.1d //MODULO - top 64b align with mid +.long 0xce114e52 //eor3 v18.16b, v18.16b, v17.16b, v19.16b //MODULO - karatsuba tidy up + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 11 + + ldp q26, q27, [x8, #192] //load rk12, rk13 + ext v21.16b, v17.16b, v17.16b, #8 //MODULO - other top alignment + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 11 + +.long 0xce1d5652 //eor3 v18.16b, v18.16b, v29.16b, v21.16b //MODULO - fold into mid + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 11 + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 11 + + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 11 + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 11 + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 11 + + pmull v17.1q, v18.1d, v16.1d //MODULO - mid 64b align with low + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 11 + ldr q28, [x8, #224] //load rk14 + + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 12 + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 12 + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 12 + + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 12 + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 12 + ext v21.16b, v18.16b, v18.16b, #8 //MODULO - other mid alignment + + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 12 + add v30.4s, v30.4s, v31.4s //CTR block 8k+15 + + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 12 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 12 + aese v0.16b, v27.16b //AES block 8k+8 - round 13 + +.long 0xce154673 //eor3 v19.16b, v19.16b, v21.16b, v17.16b //MODULO - fold into low + aese v5.16b, v27.16b //AES block 8k+13 - round 13 + aese v1.16b, v27.16b //AES block 8k+9 - round 13 + + aese v3.16b, v27.16b //AES block 8k+11 - round 13 + aese v4.16b, v27.16b //AES block 8k+12 - round 13 + aese v7.16b, v27.16b //AES block 8k+15 - round 13 + + aese v2.16b, v27.16b //AES block 8k+10 - round 13 + aese v6.16b, v27.16b //AES block 8k+14 - round 13 +L256_enc_tail: //TAIL + + ldp q24, q25, [x3, #192] //load h8l | h8h + ext v25.16b, v25.16b, v25.16b, #8 + sub x5, x4, x0 //main_end_input_ptr is number of bytes left to process + + ldr q8, [x0], #16 //AES block 8k+8 - load plaintext + + ldp q20, q21, [x3, #128] //load h5l | h5h + ext v20.16b, v20.16b, v20.16b, #8 + + ext v16.16b, v19.16b, v19.16b, #8 //prepare final partial tag + ldp q22, q23, [x3, #160] //load h6l | h6h + ext v22.16b, v22.16b, v22.16b, #8 + ext v23.16b, v23.16b, v23.16b, #8 + mov v29.16b, v28.16b + + cmp x5, #112 +.long 0xce007509 //eor3 v9.16b, v8.16b, v0.16b, v29.16b //AES block 8k+8 - result + b.gt L256_enc_blocks_more_than_7 + + movi v19.8b, #0 + mov v7.16b, v6.16b + movi v17.8b, #0 + + mov v6.16b, v5.16b + mov v5.16b, v4.16b + mov v4.16b, v3.16b + + mov v3.16b, v2.16b + sub v30.4s, v30.4s, v31.4s + mov v2.16b, v1.16b + + movi v18.8b, #0 + cmp x5, #96 + b.gt L256_enc_blocks_more_than_6 + + mov v7.16b, v6.16b + mov v6.16b, v5.16b + cmp x5, #80 + + mov v5.16b, v4.16b + mov v4.16b, v3.16b + mov v3.16b, v1.16b + + sub v30.4s, v30.4s, v31.4s + b.gt L256_enc_blocks_more_than_5 + + mov v7.16b, v6.16b + sub v30.4s, v30.4s, v31.4s + + mov v6.16b, v5.16b + mov v5.16b, v4.16b + + cmp x5, #64 + mov v4.16b, v1.16b + b.gt L256_enc_blocks_more_than_4 + + cmp x5, #48 + mov v7.16b, v6.16b + mov v6.16b, v5.16b + + mov v5.16b, v1.16b + sub v30.4s, v30.4s, v31.4s + b.gt L256_enc_blocks_more_than_3 + + cmp x5, #32 + mov v7.16b, v6.16b + ldr q24, [x3, #96] //load h4k | h3k + + mov v6.16b, v1.16b + sub v30.4s, v30.4s, v31.4s + b.gt L256_enc_blocks_more_than_2 + + mov v7.16b, v1.16b + + sub v30.4s, v30.4s, v31.4s + cmp x5, #16 + b.gt L256_enc_blocks_more_than_1 + + sub v30.4s, v30.4s, v31.4s + ldr q21, [x3, #48] //load h2k | h1k + b L256_enc_blocks_less_than_1 +L256_enc_blocks_more_than_7: //blocks left > 7 + st1 { v9.16b}, [x2], #16 //AES final-7 block - store result + + rev64 v8.16b, v9.16b //GHASH final-7 block + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + + ldr q9, [x0], #16 //AES final-6 block - load plaintext + + pmull2 v17.1q, v8.2d, v25.2d //GHASH final-7 block - high + ins v27.d[0], v8.d[1] //GHASH final-7 block - mid + ins v18.d[0], v24.d[1] //GHASH final-7 block - mid + + movi v16.8b, #0 //suppress further partial tag feed in + + eor v27.8b, v27.8b, v8.8b //GHASH final-7 block - mid +.long 0xce017529 //eor3 v9.16b, v9.16b, v1.16b, v29.16b //AES final-6 block - result + + pmull v18.1q, v27.1d, v18.1d //GHASH final-7 block - mid + pmull v19.1q, v8.1d, v25.1d //GHASH final-7 block - low +L256_enc_blocks_more_than_6: //blocks left > 6 + + st1 { v9.16b}, [x2], #16 //AES final-6 block - store result + + rev64 v8.16b, v9.16b //GHASH final-6 block + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + + pmull v26.1q, v8.1d, v23.1d //GHASH final-6 block - low + ins v27.d[0], v8.d[1] //GHASH final-6 block - mid + pmull2 v28.1q, v8.2d, v23.2d //GHASH final-6 block - high + + ldr q9, [x0], #16 //AES final-5 block - load plaintext + + eor v19.16b, v19.16b, v26.16b //GHASH final-6 block - low + + eor v27.8b, v27.8b, v8.8b //GHASH final-6 block - mid + + pmull v27.1q, v27.1d, v24.1d //GHASH final-6 block - mid +.long 0xce027529 //eor3 v9.16b, v9.16b, v2.16b, v29.16b //AES final-5 block - result + + movi v16.8b, #0 //suppress further partial tag feed in + + eor v18.16b, v18.16b, v27.16b //GHASH final-6 block - mid + eor v17.16b, v17.16b, v28.16b //GHASH final-6 block - high +L256_enc_blocks_more_than_5: //blocks left > 5 + + st1 { v9.16b}, [x2], #16 //AES final-5 block - store result + + rev64 v8.16b, v9.16b //GHASH final-5 block + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + + ins v27.d[0], v8.d[1] //GHASH final-5 block - mid + + pmull2 v28.1q, v8.2d, v22.2d //GHASH final-5 block - high + + eor v17.16b, v17.16b, v28.16b //GHASH final-5 block - high + eor v27.8b, v27.8b, v8.8b //GHASH final-5 block - mid + + ins v27.d[1], v27.d[0] //GHASH final-5 block - mid + + ldr q9, [x0], #16 //AES final-4 block - load plaintext + pmull v26.1q, v8.1d, v22.1d //GHASH final-5 block - low + + pmull2 v27.1q, v27.2d, v21.2d //GHASH final-5 block - mid + movi v16.8b, #0 //suppress further partial tag feed in + eor v19.16b, v19.16b, v26.16b //GHASH final-5 block - low + + eor v18.16b, v18.16b, v27.16b //GHASH final-5 block - mid +.long 0xce037529 //eor3 v9.16b, v9.16b, v3.16b, v29.16b //AES final-4 block - result +L256_enc_blocks_more_than_4: //blocks left > 4 + + st1 { v9.16b}, [x2], #16 //AES final-4 block - store result + + rev64 v8.16b, v9.16b //GHASH final-4 block + + ldr q9, [x0], #16 //AES final-3 block - load plaintext + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + + ins v27.d[0], v8.d[1] //GHASH final-4 block - mid + pmull2 v28.1q, v8.2d, v20.2d //GHASH final-4 block - high + +.long 0xce047529 //eor3 v9.16b, v9.16b, v4.16b, v29.16b //AES final-3 block - result + pmull v26.1q, v8.1d, v20.1d //GHASH final-4 block - low + + eor v27.8b, v27.8b, v8.8b //GHASH final-4 block - mid + eor v19.16b, v19.16b, v26.16b //GHASH final-4 block - low + + pmull v27.1q, v27.1d, v21.1d //GHASH final-4 block - mid + + movi v16.8b, #0 //suppress further partial tag feed in + + eor v18.16b, v18.16b, v27.16b //GHASH final-4 block - mid + eor v17.16b, v17.16b, v28.16b //GHASH final-4 block - high +L256_enc_blocks_more_than_3: //blocks left > 3 + + st1 { v9.16b}, [x2], #16 //AES final-3 block - store result + + ldr q25, [x3, #112] //load h4l | h4h + ext v25.16b, v25.16b, v25.16b, #8 + rev64 v8.16b, v9.16b //GHASH final-3 block + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + + ins v27.d[0], v8.d[1] //GHASH final-3 block - mid + pmull2 v28.1q, v8.2d, v25.2d //GHASH final-3 block - high + + eor v17.16b, v17.16b, v28.16b //GHASH final-3 block - high + eor v27.8b, v27.8b, v8.8b //GHASH final-3 block - mid + ldr q24, [x3, #96] //load h4k | h3k + + ins v27.d[1], v27.d[0] //GHASH final-3 block - mid + ldr q9, [x0], #16 //AES final-2 block - load plaintext + + pmull2 v27.1q, v27.2d, v24.2d //GHASH final-3 block - mid + pmull v26.1q, v8.1d, v25.1d //GHASH final-3 block - low + +.long 0xce057529 //eor3 v9.16b, v9.16b, v5.16b, v29.16b //AES final-2 block - result + movi v16.8b, #0 //suppress further partial tag feed in + + eor v18.16b, v18.16b, v27.16b //GHASH final-3 block - mid + eor v19.16b, v19.16b, v26.16b //GHASH final-3 block - low +L256_enc_blocks_more_than_2: //blocks left > 2 + + ldr q23, [x3, #80] //load h3l | h3h + ext v23.16b, v23.16b, v23.16b, #8 + + st1 { v9.16b}, [x2], #16 //AES final-2 block - store result + + rev64 v8.16b, v9.16b //GHASH final-2 block + ldr q9, [x0], #16 //AES final-1 block - load plaintext + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + + ins v27.d[0], v8.d[1] //GHASH final-2 block - mid + + movi v16.8b, #0 //suppress further partial tag feed in + + pmull2 v28.1q, v8.2d, v23.2d //GHASH final-2 block - high +.long 0xce067529 //eor3 v9.16b, v9.16b, v6.16b, v29.16b //AES final-1 block - result + + eor v27.8b, v27.8b, v8.8b //GHASH final-2 block - mid + + eor v17.16b, v17.16b, v28.16b //GHASH final-2 block - high + + pmull v27.1q, v27.1d, v24.1d //GHASH final-2 block - mid + pmull v26.1q, v8.1d, v23.1d //GHASH final-2 block - low + + eor v18.16b, v18.16b, v27.16b //GHASH final-2 block - mid + eor v19.16b, v19.16b, v26.16b //GHASH final-2 block - low +L256_enc_blocks_more_than_1: //blocks left > 1 + + st1 { v9.16b}, [x2], #16 //AES final-1 block - store result + + ldr q22, [x3, #64] //load h2l | h2h + ext v22.16b, v22.16b, v22.16b, #8 + rev64 v8.16b, v9.16b //GHASH final-1 block + ldr q9, [x0], #16 //AES final block - load plaintext + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + movi v16.8b, #0 //suppress further partial tag feed in + + ins v27.d[0], v8.d[1] //GHASH final-1 block - mid + pmull2 v28.1q, v8.2d, v22.2d //GHASH final-1 block - high + +.long 0xce077529 //eor3 v9.16b, v9.16b, v7.16b, v29.16b //AES final block - result + eor v17.16b, v17.16b, v28.16b //GHASH final-1 block - high + + pmull v26.1q, v8.1d, v22.1d //GHASH final-1 block - low + eor v27.8b, v27.8b, v8.8b //GHASH final-1 block - mid + + ldr q21, [x3, #48] //load h2k | h1k + + eor v19.16b, v19.16b, v26.16b //GHASH final-1 block - low + ins v27.d[1], v27.d[0] //GHASH final-1 block - mid + + pmull2 v27.1q, v27.2d, v21.2d //GHASH final-1 block - mid + + eor v18.16b, v18.16b, v27.16b //GHASH final-1 block - mid +L256_enc_blocks_less_than_1: //blocks left <= 1 + + and x1, x1, #127 //bit_length %= 128 + + sub x1, x1, #128 //bit_length -= 128 + + neg x1, x1 //bit_length = 128 - #bits in input (in range [1,128]) + + mvn x6, xzr //temp0_x = 0xffffffffffffffff + and x1, x1, #127 //bit_length %= 128 + + lsr x6, x6, x1 //temp0_x is mask for top 64b of last block + cmp x1, #64 + mvn x7, xzr //temp1_x = 0xffffffffffffffff + + csel x14, x6, xzr, lt + csel x13, x7, x6, lt + + mov v0.d[0], x13 //ctr0b is mask for last block + ldr q20, [x3, #32] //load h1l | h1h + ext v20.16b, v20.16b, v20.16b, #8 + + ld1 { v26.16b}, [x2] //load existing bytes where the possibly partial last block is to be stored + mov v0.d[1], x14 + + and v9.16b, v9.16b, v0.16b //possibly partial last block has zeroes in highest bits + + rev64 v8.16b, v9.16b //GHASH final block + + rev32 v30.16b, v30.16b + bif v9.16b, v26.16b, v0.16b //insert existing bytes in top end of result before storing + str q30, [x16] //store the updated counter + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + st1 { v9.16b}, [x2] //store all 16B + + ins v16.d[0], v8.d[1] //GHASH final block - mid + pmull2 v28.1q, v8.2d, v20.2d //GHASH final block - high + pmull v26.1q, v8.1d, v20.1d //GHASH final block - low + + eor v17.16b, v17.16b, v28.16b //GHASH final block - high + eor v19.16b, v19.16b, v26.16b //GHASH final block - low + + eor v16.8b, v16.8b, v8.8b //GHASH final block - mid + + pmull v16.1q, v16.1d, v21.1d //GHASH final block - mid + + eor v18.16b, v18.16b, v16.16b //GHASH final block - mid + ldr d16, [x10] //MODULO - load modulo constant + + ext v21.16b, v17.16b, v17.16b, #8 //MODULO - other top alignment + +.long 0xce114e52 //eor3 v18.16b, v18.16b, v17.16b, v19.16b //MODULO - karatsuba tidy up + pmull v29.1q, v17.1d, v16.1d //MODULO - top 64b align with mid + +.long 0xce1d5652 //eor3 v18.16b, v18.16b, v29.16b, v21.16b //MODULO - fold into mid + + pmull v17.1q, v18.1d, v16.1d //MODULO - mid 64b align with low + ext v21.16b, v18.16b, v18.16b, #8 //MODULO - other mid alignment + +.long 0xce115673 //eor3 v19.16b, v19.16b, v17.16b, v21.16b //MODULO - fold into low + ext v19.16b, v19.16b, v19.16b, #8 + rev64 v19.16b, v19.16b + st1 { v19.16b }, [x3] + mov x0, x9 //return sizes + + ldp d10, d11, [sp, #16] + ldp d12, d13, [sp, #32] + ldp d14, d15, [sp, #48] + ldp d8, d9, [sp], #80 + ret + +L256_enc_ret: + mov w0, #0x0 + ret + +.globl _unroll8_eor3_aes_gcm_dec_256_kernel + +.align 4 +_unroll8_eor3_aes_gcm_dec_256_kernel: + AARCH64_VALID_CALL_TARGET + cbz x1, L256_dec_ret + stp d8, d9, [sp, #-80]! + lsr x9, x1, #3 + mov x16, x4 + mov x8, x5 + stp d10, d11, [sp, #16] + stp d12, d13, [sp, #32] + stp d14, d15, [sp, #48] + mov x5, #0xc200000000000000 + stp x5, xzr, [sp, #64] + add x10, sp, #64 + + ld1 { v0.16b}, [x16] //CTR block 0 + + mov x15, #0x100000000 //set up counter increment + movi v31.16b, #0x0 + mov v31.d[1], x15 + mov x5, x9 + + sub x5, x5, #1 //byte_len - 1 + + rev32 v30.16b, v0.16b //set up reversed counter + + add v30.4s, v30.4s, v31.4s //CTR block 0 + + rev32 v1.16b, v30.16b //CTR block 1 + add v30.4s, v30.4s, v31.4s //CTR block 1 + + rev32 v2.16b, v30.16b //CTR block 2 + add v30.4s, v30.4s, v31.4s //CTR block 2 + ldp q26, q27, [x8, #0] //load rk0, rk1 + + rev32 v3.16b, v30.16b //CTR block 3 + add v30.4s, v30.4s, v31.4s //CTR block 3 + + rev32 v4.16b, v30.16b //CTR block 4 + add v30.4s, v30.4s, v31.4s //CTR block 4 + + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 0 - round 0 + + rev32 v5.16b, v30.16b //CTR block 5 + add v30.4s, v30.4s, v31.4s //CTR block 5 + + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 1 - round 0 + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 2 - round 0 + + rev32 v6.16b, v30.16b //CTR block 6 + add v30.4s, v30.4s, v31.4s //CTR block 6 + + rev32 v7.16b, v30.16b //CTR block 7 + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 4 - round 0 + + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 6 - round 0 + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 5 - round 0 + + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 3 - round 0 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 7 - round 0 + ldp q28, q26, [x8, #32] //load rk2, rk3 + + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 6 - round 1 + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 4 - round 1 + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 0 - round 1 + + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 5 - round 1 + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 7 - round 1 + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 1 - round 1 + + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 2 - round 1 + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 3 - round 1 + + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 3 - round 2 + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 2 - round 2 + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 6 - round 2 + + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 1 - round 2 + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 7 - round 2 + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 5 - round 2 + + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 0 - round 2 + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 4 - round 2 + ldp q27, q28, [x8, #64] //load rk4, rk5 + + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 1 - round 3 + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 2 - round 3 + + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 3 - round 3 + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 4 - round 3 + + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 5 - round 3 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 7 - round 3 + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 0 - round 3 + + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 6 - round 3 + + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 7 - round 4 + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 3 - round 4 + + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 6 - round 4 + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 2 - round 4 + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 0 - round 4 + + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 4 - round 4 + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 1 - round 4 + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 5 - round 4 + + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 0 - round 5 + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 6 - round 5 + + ldp q26, q27, [x8, #96] //load rk6, rk7 + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 4 - round 5 + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 7 - round 5 + + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 5 - round 5 + + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 2 - round 5 + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 3 - round 5 + + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 1 - round 5 + + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 4 - round 6 + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 3 - round 6 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 7 - round 6 + + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 6 - round 6 + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 0 - round 6 + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 5 - round 6 + + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 2 - round 6 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 1 - round 6 + ldp q28, q26, [x8, #128] //load rk8, rk9 + + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 5 - round 7 + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 0 - round 7 + + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 3 - round 7 + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 2 - round 7 + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 7 - round 7 + + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 4 - round 7 + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 1 - round 7 + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 6 - round 7 + + and x5, x5, #0xffffffffffffff80 //number of bytes to be processed in main loop (at least 1 byte must be handled by tail) + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 7 - round 8 + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 5 - round 8 + + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 0 - round 8 + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 1 - round 8 + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 2 - round 8 + + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 4 - round 8 + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 3 - round 8 + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 6 - round 8 + + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 2 - round 9 + + ld1 { v19.16b}, [x3] + ext v19.16b, v19.16b, v19.16b, #8 + rev64 v19.16b, v19.16b + ldp q27, q28, [x8, #160] //load rk10, rk11 + add x4, x0, x1, lsr #3 //end_input_ptr + add x5, x5, x0 + + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 3 - round 9 + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 6 - round 9 + + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 4 - round 9 + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 5 - round 9 + + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 7 - round 9 + + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 0 - round 9 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 1 - round 9 + + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 4 - round 10 + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 7 - round 10 + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 5 - round 10 + + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 1 - round 10 + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 2 - round 10 + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 0 - round 10 + + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 6 - round 10 + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 3 - round 10 + ldp q26, q27, [x8, #192] //load rk12, rk13 + + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 0 - round 11 + add v30.4s, v30.4s, v31.4s //CTR block 7 + + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 7 - round 11 + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 3 - round 11 + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 1 - round 11 + + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 5 - round 11 + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 4 - round 11 + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 2 - round 11 + + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 6 - round 11 + ldr q28, [x8, #224] //load rk14 + + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 1 - round 12 + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 4 - round 12 + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 5 - round 12 + + cmp x0, x5 //check if we have <= 8 blocks + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 3 - round 12 + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 2 - round 12 + + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 6 - round 12 + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 0 - round 12 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 7 - round 12 + + aese v5.16b, v27.16b //AES block 5 - round 13 + aese v1.16b, v27.16b //AES block 1 - round 13 + aese v2.16b, v27.16b //AES block 2 - round 13 + + aese v0.16b, v27.16b //AES block 0 - round 13 + aese v4.16b, v27.16b //AES block 4 - round 13 + aese v6.16b, v27.16b //AES block 6 - round 13 + + aese v3.16b, v27.16b //AES block 3 - round 13 + aese v7.16b, v27.16b //AES block 7 - round 13 + b.ge L256_dec_tail //handle tail + + ldp q8, q9, [x0], #32 //AES block 0, 1 - load ciphertext + + ldp q10, q11, [x0], #32 //AES block 2, 3 - load ciphertext + + ldp q12, q13, [x0], #32 //AES block 4, 5 - load ciphertext + + ldp q14, q15, [x0], #32 //AES block 6, 7 - load ciphertext + cmp x0, x5 //check if we have <= 8 blocks + +.long 0xce017121 //eor3 v1.16b, v9.16b, v1.16b, v28.16b //AES block 1 - result +.long 0xce007100 //eor3 v0.16b, v8.16b, v0.16b, v28.16b //AES block 0 - result + stp q0, q1, [x2], #32 //AES block 0, 1 - store result + + rev32 v0.16b, v30.16b //CTR block 8 + add v30.4s, v30.4s, v31.4s //CTR block 8 +.long 0xce037163 //eor3 v3.16b, v11.16b, v3.16b, v28.16b //AES block 3 - result + +.long 0xce0571a5 //eor3 v5.16b, v13.16b, v5.16b, v28.16b //AES block 5 - result + +.long 0xce047184 //eor3 v4.16b, v12.16b, v4.16b, v28.16b //AES block 4 - result + rev32 v1.16b, v30.16b //CTR block 9 + add v30.4s, v30.4s, v31.4s //CTR block 9 + +.long 0xce027142 //eor3 v2.16b, v10.16b, v2.16b, v28.16b //AES block 2 - result + stp q2, q3, [x2], #32 //AES block 2, 3 - store result + + rev32 v2.16b, v30.16b //CTR block 10 + add v30.4s, v30.4s, v31.4s //CTR block 10 + +.long 0xce0671c6 //eor3 v6.16b, v14.16b, v6.16b, v28.16b //AES block 6 - result + + rev32 v3.16b, v30.16b //CTR block 11 + add v30.4s, v30.4s, v31.4s //CTR block 11 + stp q4, q5, [x2], #32 //AES block 4, 5 - store result + +.long 0xce0771e7 //eor3 v7.16b, v15.16b, v7.16b, v28.16b //AES block 7 - result + stp q6, q7, [x2], #32 //AES block 6, 7 - store result + + rev32 v4.16b, v30.16b //CTR block 12 + add v30.4s, v30.4s, v31.4s //CTR block 12 + b.ge L256_dec_prepretail //do prepretail + +L256_dec_main_loop: //main loop start + rev32 v5.16b, v30.16b //CTR block 8k+13 + ldp q26, q27, [x8, #0] //load rk0, rk1 + add v30.4s, v30.4s, v31.4s //CTR block 8k+13 + + rev64 v9.16b, v9.16b //GHASH block 8k+1 + ldr q23, [x3, #176] //load h7l | h7h + ext v23.16b, v23.16b, v23.16b, #8 + ldr q25, [x3, #208] //load h8l | h8h + ext v25.16b, v25.16b, v25.16b, #8 + + rev32 v6.16b, v30.16b //CTR block 8k+14 + add v30.4s, v30.4s, v31.4s //CTR block 8k+14 + rev64 v8.16b, v8.16b //GHASH block 8k + + ext v19.16b, v19.16b, v19.16b, #8 //PRE 0 + rev64 v12.16b, v12.16b //GHASH block 8k+4 + rev64 v11.16b, v11.16b //GHASH block 8k+3 + + rev32 v7.16b, v30.16b //CTR block 8k+15 + rev64 v15.16b, v15.16b //GHASH block 8k+7 + + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 0 + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 0 + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 0 + + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 0 + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 0 + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 0 + + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 0 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 0 + ldp q28, q26, [x8, #32] //load rk2, rk3 + + eor v8.16b, v8.16b, v19.16b //PRE 1 + ldr q20, [x3, #128] //load h5l | h5h + ext v20.16b, v20.16b, v20.16b, #8 + ldr q22, [x3, #160] //load h6l | h6h + ext v22.16b, v22.16b, v22.16b, #8 + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 1 + + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 1 + rev64 v10.16b, v10.16b //GHASH block 8k+2 + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 1 + + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 1 + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 1 + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 1 + + trn1 v18.2d, v9.2d, v8.2d //GHASH block 8k, 8k+1 - mid + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 1 + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 1 + + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 2 + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 2 + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 2 + + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 2 + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 2 + pmull v19.1q, v8.1d, v25.1d //GHASH block 8k - low + + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 2 + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 2 + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 2 + + ldp q27, q28, [x8, #64] //load rk4, rk5 + pmull2 v29.1q, v10.2d, v22.2d //GHASH block 8k+2 - high + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 3 + + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 3 + pmull2 v16.1q, v9.2d, v23.2d //GHASH block 8k+1 - high + pmull v23.1q, v9.1d, v23.1d //GHASH block 8k+1 - low + + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 3 + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 3 + pmull2 v17.1q, v8.2d, v25.2d //GHASH block 8k - high + + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 3 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 3 + trn2 v8.2d, v9.2d, v8.2d //GHASH block 8k, 8k+1 - mid + + pmull2 v9.1q, v11.2d, v20.2d //GHASH block 8k+3 - high + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 3 + eor v17.16b, v17.16b, v16.16b //GHASH block 8k+1 - high + + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 4 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 3 + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 4 + + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 4 + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 4 + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 4 + + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 4 + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 4 + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 4 + + ldr q21, [x3, #144] //load h6k | h5k + ldr q24, [x3, #192] //load h8k | h7k + eor v8.16b, v8.16b, v18.16b //GHASH block 8k, 8k+1 - mid + pmull v22.1q, v10.1d, v22.1d //GHASH block 8k+2 - low + + ldp q26, q27, [x8, #96] //load rk6, rk7 + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 5 + eor v19.16b, v19.16b, v23.16b //GHASH block 8k+1 - low + + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 5 + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 5 + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 5 + + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 5 + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 5 + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 5 + +.long 0xce1d2631 //eor3 v17.16b, v17.16b, v29.16b, v9.16b //GHASH block 8k+2, 8k+3 - high + trn1 v29.2d, v11.2d, v10.2d //GHASH block 8k+2, 8k+3 - mid + rev64 v13.16b, v13.16b //GHASH block 8k+5 + + pmull2 v18.1q, v8.2d, v24.2d //GHASH block 8k - mid + pmull v24.1q, v8.1d, v24.1d //GHASH block 8k+1 - mid + trn2 v10.2d, v11.2d, v10.2d //GHASH block 8k+2, 8k+3 - mid + + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 6 + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 6 + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 5 + + trn1 v16.2d, v13.2d, v12.2d //GHASH block 8k+4, 8k+5 - mid + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 6 + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 6 + + eor v10.16b, v10.16b, v29.16b //GHASH block 8k+2, 8k+3 - mid + pmull v20.1q, v11.1d, v20.1d //GHASH block 8k+3 - low + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 6 + + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 6 + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 6 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 6 + + pmull2 v29.1q, v10.2d, v21.2d //GHASH block 8k+2 - mid + pmull v21.1q, v10.1d, v21.1d //GHASH block 8k+3 - mid +.long 0xce165273 //eor3 v19.16b, v19.16b, v22.16b, v20.16b //GHASH block 8k+2, 8k+3 - low + + ldr q23, [x3, #80] //load h3l | h3h + ext v23.16b, v23.16b, v23.16b, #8 + ldr q25, [x3, #112] //load h4l | h4h + ext v25.16b, v25.16b, v25.16b, #8 + rev64 v14.16b, v14.16b //GHASH block 8k+6 + eor v18.16b, v18.16b, v24.16b //GHASH block 8k+1 - mid + + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 7 + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 7 + ldp q28, q26, [x8, #128] //load rk8, rk9 + + ldr q20, [x3, #32] //load h1l | h1h + ext v20.16b, v20.16b, v20.16b, #8 + ldr q22, [x3, #64] //load h2l | h2h + ext v22.16b, v22.16b, v22.16b, #8 +.long 0xce157652 //eor3 v18.16b, v18.16b, v21.16b, v29.16b //GHASH block 8k+2, 8k+3 - mid + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 7 + + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 7 + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 7 + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 7 + + ldr q21, [x3, #48] //load h2k | h1k + ldr q24, [x3, #96] //load h4k | h3k + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 7 + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 7 + + pmull2 v8.1q, v12.2d, v25.2d //GHASH block 8k+4 - high + pmull v25.1q, v12.1d, v25.1d //GHASH block 8k+4 - low + trn2 v12.2d, v13.2d, v12.2d //GHASH block 8k+4, 8k+5 - mid + + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 8 + pmull2 v10.1q, v13.2d, v23.2d //GHASH block 8k+5 - high + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 8 + + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 8 + pmull v23.1q, v13.1d, v23.1d //GHASH block 8k+5 - low + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 8 + + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 8 + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 8 + pmull2 v11.1q, v14.2d, v22.2d //GHASH block 8k+6 - high + + trn1 v13.2d, v15.2d, v14.2d //GHASH block 8k+6, 8k+7 - mid + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 8 + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 8 + + ldp q27, q28, [x8, #160] //load rk10, rk11 + pmull v22.1q, v14.1d, v22.1d //GHASH block 8k+6 - low + trn2 v14.2d, v15.2d, v14.2d //GHASH block 8k+6, 8k+7 - mid + + add v30.4s, v30.4s, v31.4s //CTR block 8k+15 +.long 0xce082a31 //eor3 v17.16b, v17.16b, v8.16b, v10.16b //GHASH block 8k+4, 8k+5 - high + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 9 + + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 9 + eor v14.16b, v14.16b, v13.16b //GHASH block 8k+6, 8k+7 - mid + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 9 + + ldp q8, q9, [x0], #32 //AES block 8k+8, 8k+9 - load ciphertext + eor v12.16b, v12.16b, v16.16b //GHASH block 8k+4, 8k+5 - mid + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 9 + + pmull2 v13.1q, v14.2d, v21.2d //GHASH block 8k+6 - mid + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 9 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 9 + + pmull2 v16.1q, v12.2d, v24.2d //GHASH block 8k+4 - mid + pmull v24.1q, v12.1d, v24.1d //GHASH block 8k+5 - mid + pmull2 v12.1q, v15.2d, v20.2d //GHASH block 8k+7 - high + + pmull v20.1q, v15.1d, v20.1d //GHASH block 8k+7 - low + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 10 + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 10 + + pmull v21.1q, v14.1d, v21.1d //GHASH block 8k+7 - mid + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 9 +.long 0xce195e73 //eor3 v19.16b, v19.16b, v25.16b, v23.16b //GHASH block 8k+4, 8k+5 - low + + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 9 +.long 0xce184252 //eor3 v18.16b, v18.16b, v24.16b, v16.16b //GHASH block 8k+4, 8k+5 - mid +.long 0xce0b3231 //eor3 v17.16b, v17.16b, v11.16b, v12.16b //GHASH block 8k+6, 8k+7 - high + + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 10 + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 10 + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 10 + + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 10 + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 10 + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 10 + +.long 0xce165273 //eor3 v19.16b, v19.16b, v22.16b, v20.16b //GHASH block 8k+6, 8k+7 - low + rev32 v20.16b, v30.16b //CTR block 8k+16 + ldr d16, [x10] //MODULO - load modulo constant + + add v30.4s, v30.4s, v31.4s //CTR block 8k+16 + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 11 + ldp q26, q27, [x8, #192] //load rk12, rk13 + + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 11 + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 11 + +.long 0xce153652 //eor3 v18.16b, v18.16b, v21.16b, v13.16b //GHASH block 8k+6, 8k+7 - mid + rev32 v22.16b, v30.16b //CTR block 8k+17 + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 11 + + ldp q10, q11, [x0], #32 //AES block 8k+10, 8k+11 - load ciphertext + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 11 + ext v21.16b, v17.16b, v17.16b, #8 //MODULO - other top alignment + + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 11 + add v30.4s, v30.4s, v31.4s //CTR block 8k+17 + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 11 + + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 12 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 12 + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 12 + + rev32 v23.16b, v30.16b //CTR block 8k+18 + add v30.4s, v30.4s, v31.4s //CTR block 8k+18 + pmull v29.1q, v17.1d, v16.1d //MODULO - top 64b align with mid + +.long 0xce114e52 //eor3 v18.16b, v18.16b, v17.16b, v19.16b //MODULO - karatsuba tidy up + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 12 + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 11 + + ldr q28, [x8, #224] //load rk14 + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 12 + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 12 + +.long 0xce1d5652 //eor3 v18.16b, v18.16b, v29.16b, v21.16b //MODULO - fold into mid + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 12 + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 12 + + ldp q12, q13, [x0], #32 //AES block 8k+12, 8k+13 - load ciphertext + aese v1.16b, v27.16b //AES block 8k+9 - round 13 + aese v2.16b, v27.16b //AES block 8k+10 - round 13 + + ldp q14, q15, [x0], #32 //AES block 8k+14, 8k+15 - load ciphertext + aese v0.16b, v27.16b //AES block 8k+8 - round 13 + aese v5.16b, v27.16b //AES block 8k+13 - round 13 + + rev32 v25.16b, v30.16b //CTR block 8k+19 +.long 0xce027142 //eor3 v2.16b, v10.16b, v2.16b, v28.16b //AES block 8k+10 - result +.long 0xce017121 //eor3 v1.16b, v9.16b, v1.16b, v28.16b //AES block 8k+9 - result + + ext v21.16b, v18.16b, v18.16b, #8 //MODULO - other mid alignment + aese v7.16b, v27.16b //AES block 8k+15 - round 13 + + add v30.4s, v30.4s, v31.4s //CTR block 8k+19 + pmull v17.1q, v18.1d, v16.1d //MODULO - mid 64b align with low + aese v4.16b, v27.16b //AES block 8k+12 - round 13 + +.long 0xce0571a5 //eor3 v5.16b, v13.16b, v5.16b, v28.16b //AES block 8k+13 - result +.long 0xce007100 //eor3 v0.16b, v8.16b, v0.16b, v28.16b //AES block 8k+8 - result + aese v3.16b, v27.16b //AES block 8k+11 - round 13 + + stp q0, q1, [x2], #32 //AES block 8k+8, 8k+9 - store result + mov v0.16b, v20.16b //CTR block 8k+16 +.long 0xce047184 //eor3 v4.16b, v12.16b, v4.16b, v28.16b //AES block 8k+12 - result + +.long 0xce154673 //eor3 v19.16b, v19.16b, v21.16b, v17.16b //MODULO - fold into low +.long 0xce037163 //eor3 v3.16b, v11.16b, v3.16b, v28.16b //AES block 8k+11 - result + stp q2, q3, [x2], #32 //AES block 8k+10, 8k+11 - store result + + mov v3.16b, v25.16b //CTR block 8k+19 + mov v2.16b, v23.16b //CTR block 8k+18 + aese v6.16b, v27.16b //AES block 8k+14 - round 13 + + mov v1.16b, v22.16b //CTR block 8k+17 + stp q4, q5, [x2], #32 //AES block 8k+12, 8k+13 - store result +.long 0xce0771e7 //eor3 v7.16b, v15.16b, v7.16b, v28.16b //AES block 8k+15 - result + +.long 0xce0671c6 //eor3 v6.16b, v14.16b, v6.16b, v28.16b //AES block 8k+14 - result + rev32 v4.16b, v30.16b //CTR block 8k+20 + add v30.4s, v30.4s, v31.4s //CTR block 8k+20 + + cmp x0, x5 //LOOP CONTROL + stp q6, q7, [x2], #32 //AES block 8k+14, 8k+15 - store result + b.lt L256_dec_main_loop + +L256_dec_prepretail: //PREPRETAIL + ldp q26, q27, [x8, #0] //load rk0, rk1 + rev32 v5.16b, v30.16b //CTR block 8k+13 + add v30.4s, v30.4s, v31.4s //CTR block 8k+13 + + rev64 v12.16b, v12.16b //GHASH block 8k+4 + ldr q21, [x3, #144] //load h6k | h5k + ldr q24, [x3, #192] //load h8k | h7k + + rev32 v6.16b, v30.16b //CTR block 8k+14 + rev64 v8.16b, v8.16b //GHASH block 8k + add v30.4s, v30.4s, v31.4s //CTR block 8k+14 + + ext v19.16b, v19.16b, v19.16b, #8 //PRE 0 + ldr q23, [x3, #176] //load h7l | h7h + ext v23.16b, v23.16b, v23.16b, #8 + ldr q25, [x3, #208] //load h8l | h8h + ext v25.16b, v25.16b, v25.16b, #8 + rev64 v9.16b, v9.16b //GHASH block 8k+1 + + rev32 v7.16b, v30.16b //CTR block 8k+15 + rev64 v10.16b, v10.16b //GHASH block 8k+2 + ldr q20, [x3, #128] //load h5l | h5h + ext v20.16b, v20.16b, v20.16b, #8 + ldr q22, [x3, #160] //load h6l | h6h + ext v22.16b, v22.16b, v22.16b, #8 + + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 0 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 0 + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 0 + + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 0 + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 0 + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 0 + + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 1 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 0 + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 0 + + ldp q28, q26, [x8, #32] //load rk2, rk3 + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 1 + eor v8.16b, v8.16b, v19.16b //PRE 1 + + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 1 + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 1 + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 1 + + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 1 + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 1 + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 1 + + pmull2 v16.1q, v9.2d, v23.2d //GHASH block 8k+1 - high + trn1 v18.2d, v9.2d, v8.2d //GHASH block 8k, 8k+1 - mid + pmull v19.1q, v8.1d, v25.1d //GHASH block 8k - low + + rev64 v11.16b, v11.16b //GHASH block 8k+3 + pmull v23.1q, v9.1d, v23.1d //GHASH block 8k+1 - low + + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 2 + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 2 + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 2 + + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 2 + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 2 + pmull2 v17.1q, v8.2d, v25.2d //GHASH block 8k - high + + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 2 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 3 + + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 3 + rev64 v14.16b, v14.16b //GHASH block 8k+6 + + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 3 + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 2 + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 3 + + pmull2 v29.1q, v10.2d, v22.2d //GHASH block 8k+2 - high + trn2 v8.2d, v9.2d, v8.2d //GHASH block 8k, 8k+1 - mid + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 2 + + ldp q27, q28, [x8, #64] //load rk4, rk5 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 3 + pmull2 v9.1q, v11.2d, v20.2d //GHASH block 8k+3 - high + + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 3 + eor v17.16b, v17.16b, v16.16b //GHASH block 8k+1 - high + eor v8.16b, v8.16b, v18.16b //GHASH block 8k, 8k+1 - mid + + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 3 + pmull v22.1q, v10.1d, v22.1d //GHASH block 8k+2 - low + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 3 + +.long 0xce1d2631 //eor3 v17.16b, v17.16b, v29.16b, v9.16b //GHASH block 8k+2, 8k+3 - high + trn1 v29.2d, v11.2d, v10.2d //GHASH block 8k+2, 8k+3 - mid + trn2 v10.2d, v11.2d, v10.2d //GHASH block 8k+2, 8k+3 - mid + + pmull2 v18.1q, v8.2d, v24.2d //GHASH block 8k - mid + pmull v20.1q, v11.1d, v20.1d //GHASH block 8k+3 - low + eor v19.16b, v19.16b, v23.16b //GHASH block 8k+1 - low + + pmull v24.1q, v8.1d, v24.1d //GHASH block 8k+1 - mid + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 4 + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 4 + +.long 0xce165273 //eor3 v19.16b, v19.16b, v22.16b, v20.16b //GHASH block 8k+2, 8k+3 - low + ldr q20, [x3, #32] //load h1l | h1h + ext v20.16b, v20.16b, v20.16b, #8 + ldr q22, [x3, #64] //load h2l | h2h + ext v22.16b, v22.16b, v22.16b, #8 + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 4 + + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 4 + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 4 + eor v18.16b, v18.16b, v24.16b //GHASH block 8k+1 - mid + + eor v10.16b, v10.16b, v29.16b //GHASH block 8k+2, 8k+3 - mid + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 5 + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 4 + + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 5 + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 4 + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 4 + + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 5 + pmull2 v29.1q, v10.2d, v21.2d //GHASH block 8k+2 - mid + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 5 + + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 5 + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 5 + pmull v21.1q, v10.1d, v21.1d //GHASH block 8k+3 - mid + + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 5 + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 5 + ldp q26, q27, [x8, #96] //load rk6, rk7 + + ldr q23, [x3, #80] //load h3l | h3h + ext v23.16b, v23.16b, v23.16b, #8 + ldr q25, [x3, #112] //load h4l | h4h + ext v25.16b, v25.16b, v25.16b, #8 + rev64 v15.16b, v15.16b //GHASH block 8k+7 + rev64 v13.16b, v13.16b //GHASH block 8k+5 + +.long 0xce157652 //eor3 v18.16b, v18.16b, v21.16b, v29.16b //GHASH block 8k+2, 8k+3 - mid + + trn1 v16.2d, v13.2d, v12.2d //GHASH block 8k+4, 8k+5 - mid + + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 6 + ldr q21, [x3, #48] //load h2k | h1k + ldr q24, [x3, #96] //load h4k | h3k + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 6 + + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 6 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 6 + + pmull2 v8.1q, v12.2d, v25.2d //GHASH block 8k+4 - high + pmull2 v10.1q, v13.2d, v23.2d //GHASH block 8k+5 - high + pmull v25.1q, v12.1d, v25.1d //GHASH block 8k+4 - low + + trn2 v12.2d, v13.2d, v12.2d //GHASH block 8k+4, 8k+5 - mid + pmull v23.1q, v13.1d, v23.1d //GHASH block 8k+5 - low + trn1 v13.2d, v15.2d, v14.2d //GHASH block 8k+6, 8k+7 - mid + + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 7 + pmull2 v11.1q, v14.2d, v22.2d //GHASH block 8k+6 - high + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 6 + + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 6 + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 6 + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 6 + + ldp q28, q26, [x8, #128] //load rk8, rk9 + pmull v22.1q, v14.1d, v22.1d //GHASH block 8k+6 - low + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 7 + + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 7 + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 7 + + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 7 + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 7 +.long 0xce082a31 //eor3 v17.16b, v17.16b, v8.16b, v10.16b //GHASH block 8k+4, 8k+5 - high + + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 7 + trn2 v14.2d, v15.2d, v14.2d //GHASH block 8k+6, 8k+7 - mid + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 7 + + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 8 + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 8 + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 8 + + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 8 + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 8 + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 8 + + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 8 + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 9 + eor v12.16b, v12.16b, v16.16b //GHASH block 8k+4, 8k+5 - mid + + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 9 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 9 + eor v14.16b, v14.16b, v13.16b //GHASH block 8k+6, 8k+7 - mid + + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 9 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 9 + pmull2 v16.1q, v12.2d, v24.2d //GHASH block 8k+4 - mid + + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 8 + pmull v24.1q, v12.1d, v24.1d //GHASH block 8k+5 - mid + pmull2 v12.1q, v15.2d, v20.2d //GHASH block 8k+7 - high + + pmull2 v13.1q, v14.2d, v21.2d //GHASH block 8k+6 - mid + pmull v21.1q, v14.1d, v21.1d //GHASH block 8k+7 - mid + pmull v20.1q, v15.1d, v20.1d //GHASH block 8k+7 - low + + ldp q27, q28, [x8, #160] //load rk10, rk11 +.long 0xce195e73 //eor3 v19.16b, v19.16b, v25.16b, v23.16b //GHASH block 8k+4, 8k+5 - low +.long 0xce184252 //eor3 v18.16b, v18.16b, v24.16b, v16.16b //GHASH block 8k+4, 8k+5 - mid + + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 9 + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 9 + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 9 + +.long 0xce0b3231 //eor3 v17.16b, v17.16b, v11.16b, v12.16b //GHASH block 8k+6, 8k+7 - high +.long 0xce165273 //eor3 v19.16b, v19.16b, v22.16b, v20.16b //GHASH block 8k+6, 8k+7 - low + ldr d16, [x10] //MODULO - load modulo constant + +.long 0xce153652 //eor3 v18.16b, v18.16b, v21.16b, v13.16b //GHASH block 8k+6, 8k+7 - mid + + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 10 + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 10 + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 10 + + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 10 + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 10 + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 10 + +.long 0xce114e52 //eor3 v18.16b, v18.16b, v17.16b, v19.16b //MODULO - karatsuba tidy up + + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 10 + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 10 + ldp q26, q27, [x8, #192] //load rk12, rk13 + + ext v21.16b, v17.16b, v17.16b, #8 //MODULO - other top alignment + + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 11 + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 11 + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 11 + + pmull v29.1q, v17.1d, v16.1d //MODULO - top 64b align with mid + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 11 + + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 11 + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 11 + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 11 + + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 11 + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 12 + +.long 0xce1d5652 //eor3 v18.16b, v18.16b, v29.16b, v21.16b //MODULO - fold into mid + + aese v3.16b, v27.16b //AES block 8k+11 - round 13 + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 12 + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 12 + + pmull v17.1q, v18.1d, v16.1d //MODULO - mid 64b align with low + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 12 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 12 + + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 12 + ldr q28, [x8, #224] //load rk14 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 12 + + aese v4.16b, v27.16b //AES block 8k+12 - round 13 + ext v21.16b, v18.16b, v18.16b, #8 //MODULO - other mid alignment + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 12 + + aese v6.16b, v27.16b //AES block 8k+14 - round 13 + aese v2.16b, v27.16b //AES block 8k+10 - round 13 + aese v1.16b, v27.16b //AES block 8k+9 - round 13 + + aese v5.16b, v27.16b //AES block 8k+13 - round 13 +.long 0xce154673 //eor3 v19.16b, v19.16b, v21.16b, v17.16b //MODULO - fold into low + add v30.4s, v30.4s, v31.4s //CTR block 8k+15 + + aese v7.16b, v27.16b //AES block 8k+15 - round 13 + aese v0.16b, v27.16b //AES block 8k+8 - round 13 +L256_dec_tail: //TAIL + + ext v16.16b, v19.16b, v19.16b, #8 //prepare final partial tag + sub x5, x4, x0 //main_end_input_ptr is number of bytes left to process + cmp x5, #112 + + ldr q9, [x0], #16 //AES block 8k+8 - load ciphertext + + ldp q24, q25, [x3, #192] //load h8k | h7k + ext v25.16b, v25.16b, v25.16b, #8 + mov v29.16b, v28.16b + + ldp q20, q21, [x3, #128] //load h5l | h5h + ext v20.16b, v20.16b, v20.16b, #8 + +.long 0xce00752c //eor3 v12.16b, v9.16b, v0.16b, v29.16b //AES block 8k+8 - result + ldp q22, q23, [x3, #160] //load h6l | h6h + ext v22.16b, v22.16b, v22.16b, #8 + ext v23.16b, v23.16b, v23.16b, #8 + b.gt L256_dec_blocks_more_than_7 + + mov v7.16b, v6.16b + sub v30.4s, v30.4s, v31.4s + mov v6.16b, v5.16b + + mov v5.16b, v4.16b + mov v4.16b, v3.16b + movi v19.8b, #0 + + movi v17.8b, #0 + movi v18.8b, #0 + mov v3.16b, v2.16b + + cmp x5, #96 + mov v2.16b, v1.16b + b.gt L256_dec_blocks_more_than_6 + + mov v7.16b, v6.16b + mov v6.16b, v5.16b + + mov v5.16b, v4.16b + cmp x5, #80 + sub v30.4s, v30.4s, v31.4s + + mov v4.16b, v3.16b + mov v3.16b, v1.16b + b.gt L256_dec_blocks_more_than_5 + + cmp x5, #64 + mov v7.16b, v6.16b + sub v30.4s, v30.4s, v31.4s + + mov v6.16b, v5.16b + + mov v5.16b, v4.16b + mov v4.16b, v1.16b + b.gt L256_dec_blocks_more_than_4 + + sub v30.4s, v30.4s, v31.4s + mov v7.16b, v6.16b + cmp x5, #48 + + mov v6.16b, v5.16b + mov v5.16b, v1.16b + b.gt L256_dec_blocks_more_than_3 + + ldr q24, [x3, #96] //load h4k | h3k + sub v30.4s, v30.4s, v31.4s + mov v7.16b, v6.16b + + cmp x5, #32 + mov v6.16b, v1.16b + b.gt L256_dec_blocks_more_than_2 + + sub v30.4s, v30.4s, v31.4s + + mov v7.16b, v1.16b + cmp x5, #16 + b.gt L256_dec_blocks_more_than_1 + + sub v30.4s, v30.4s, v31.4s + ldr q21, [x3, #48] //load h2k | h1k + b L256_dec_blocks_less_than_1 +L256_dec_blocks_more_than_7: //blocks left > 7 + rev64 v8.16b, v9.16b //GHASH final-7 block + ldr q9, [x0], #16 //AES final-6 block - load ciphertext + st1 { v12.16b}, [x2], #16 //AES final-7 block - store result + + ins v18.d[0], v24.d[1] //GHASH final-7 block - mid + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + + ins v27.d[0], v8.d[1] //GHASH final-7 block - mid +.long 0xce01752c //eor3 v12.16b, v9.16b, v1.16b, v29.16b //AES final-6 block - result + + pmull2 v17.1q, v8.2d, v25.2d //GHASH final-7 block - high + + eor v27.8b, v27.8b, v8.8b //GHASH final-7 block - mid + movi v16.8b, #0 //suppress further partial tag feed in + + pmull v19.1q, v8.1d, v25.1d //GHASH final-7 block - low + pmull v18.1q, v27.1d, v18.1d //GHASH final-7 block - mid +L256_dec_blocks_more_than_6: //blocks left > 6 + + rev64 v8.16b, v9.16b //GHASH final-6 block + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + ldr q9, [x0], #16 //AES final-5 block - load ciphertext + movi v16.8b, #0 //suppress further partial tag feed in + + ins v27.d[0], v8.d[1] //GHASH final-6 block - mid + st1 { v12.16b}, [x2], #16 //AES final-6 block - store result + pmull2 v28.1q, v8.2d, v23.2d //GHASH final-6 block - high + + pmull v26.1q, v8.1d, v23.1d //GHASH final-6 block - low + +.long 0xce02752c //eor3 v12.16b, v9.16b, v2.16b, v29.16b //AES final-5 block - result + eor v19.16b, v19.16b, v26.16b //GHASH final-6 block - low + eor v27.8b, v27.8b, v8.8b //GHASH final-6 block - mid + + pmull v27.1q, v27.1d, v24.1d //GHASH final-6 block - mid + + eor v18.16b, v18.16b, v27.16b //GHASH final-6 block - mid + eor v17.16b, v17.16b, v28.16b //GHASH final-6 block - high +L256_dec_blocks_more_than_5: //blocks left > 5 + + rev64 v8.16b, v9.16b //GHASH final-5 block + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + + pmull2 v28.1q, v8.2d, v22.2d //GHASH final-5 block - high + ins v27.d[0], v8.d[1] //GHASH final-5 block - mid + + ldr q9, [x0], #16 //AES final-4 block - load ciphertext + + eor v27.8b, v27.8b, v8.8b //GHASH final-5 block - mid + st1 { v12.16b}, [x2], #16 //AES final-5 block - store result + + pmull v26.1q, v8.1d, v22.1d //GHASH final-5 block - low + ins v27.d[1], v27.d[0] //GHASH final-5 block - mid + + pmull2 v27.1q, v27.2d, v21.2d //GHASH final-5 block - mid + + eor v17.16b, v17.16b, v28.16b //GHASH final-5 block - high +.long 0xce03752c //eor3 v12.16b, v9.16b, v3.16b, v29.16b //AES final-4 block - result + eor v19.16b, v19.16b, v26.16b //GHASH final-5 block - low + + eor v18.16b, v18.16b, v27.16b //GHASH final-5 block - mid + movi v16.8b, #0 //suppress further partial tag feed in +L256_dec_blocks_more_than_4: //blocks left > 4 + + rev64 v8.16b, v9.16b //GHASH final-4 block + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + + ins v27.d[0], v8.d[1] //GHASH final-4 block - mid + ldr q9, [x0], #16 //AES final-3 block - load ciphertext + + movi v16.8b, #0 //suppress further partial tag feed in + + pmull v26.1q, v8.1d, v20.1d //GHASH final-4 block - low + pmull2 v28.1q, v8.2d, v20.2d //GHASH final-4 block - high + + eor v27.8b, v27.8b, v8.8b //GHASH final-4 block - mid + + eor v17.16b, v17.16b, v28.16b //GHASH final-4 block - high + + pmull v27.1q, v27.1d, v21.1d //GHASH final-4 block - mid + + eor v19.16b, v19.16b, v26.16b //GHASH final-4 block - low + st1 { v12.16b}, [x2], #16 //AES final-4 block - store result + + eor v18.16b, v18.16b, v27.16b //GHASH final-4 block - mid +.long 0xce04752c //eor3 v12.16b, v9.16b, v4.16b, v29.16b //AES final-3 block - result +L256_dec_blocks_more_than_3: //blocks left > 3 + + ldr q25, [x3, #112] //load h4l | h4h + ext v25.16b, v25.16b, v25.16b, #8 + rev64 v8.16b, v9.16b //GHASH final-3 block + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + ldr q9, [x0], #16 //AES final-2 block - load ciphertext + ldr q24, [x3, #96] //load h4k | h3k + + ins v27.d[0], v8.d[1] //GHASH final-3 block - mid + st1 { v12.16b}, [x2], #16 //AES final-3 block - store result + +.long 0xce05752c //eor3 v12.16b, v9.16b, v5.16b, v29.16b //AES final-2 block - result + + eor v27.8b, v27.8b, v8.8b //GHASH final-3 block - mid + + ins v27.d[1], v27.d[0] //GHASH final-3 block - mid + pmull v26.1q, v8.1d, v25.1d //GHASH final-3 block - low + pmull2 v28.1q, v8.2d, v25.2d //GHASH final-3 block - high + + movi v16.8b, #0 //suppress further partial tag feed in + pmull2 v27.1q, v27.2d, v24.2d //GHASH final-3 block - mid + eor v19.16b, v19.16b, v26.16b //GHASH final-3 block - low + + eor v17.16b, v17.16b, v28.16b //GHASH final-3 block - high + + eor v18.16b, v18.16b, v27.16b //GHASH final-3 block - mid +L256_dec_blocks_more_than_2: //blocks left > 2 + + rev64 v8.16b, v9.16b //GHASH final-2 block + + ldr q23, [x3, #80] //load h3l | h3h + ext v23.16b, v23.16b, v23.16b, #8 + ldr q9, [x0], #16 //AES final-1 block - load ciphertext + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + + ins v27.d[0], v8.d[1] //GHASH final-2 block - mid + + pmull v26.1q, v8.1d, v23.1d //GHASH final-2 block - low + st1 { v12.16b}, [x2], #16 //AES final-2 block - store result +.long 0xce06752c //eor3 v12.16b, v9.16b, v6.16b, v29.16b //AES final-1 block - result + + eor v27.8b, v27.8b, v8.8b //GHASH final-2 block - mid + eor v19.16b, v19.16b, v26.16b //GHASH final-2 block - low + movi v16.8b, #0 //suppress further partial tag feed in + + pmull v27.1q, v27.1d, v24.1d //GHASH final-2 block - mid + pmull2 v28.1q, v8.2d, v23.2d //GHASH final-2 block - high + + eor v18.16b, v18.16b, v27.16b //GHASH final-2 block - mid + eor v17.16b, v17.16b, v28.16b //GHASH final-2 block - high +L256_dec_blocks_more_than_1: //blocks left > 1 + + rev64 v8.16b, v9.16b //GHASH final-1 block + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + + ins v27.d[0], v8.d[1] //GHASH final-1 block - mid + ldr q22, [x3, #64] //load h2l | h2h + ext v22.16b, v22.16b, v22.16b, #8 + + eor v27.8b, v27.8b, v8.8b //GHASH final-1 block - mid + ldr q9, [x0], #16 //AES final block - load ciphertext + st1 { v12.16b}, [x2], #16 //AES final-1 block - store result + + ldr q21, [x3, #48] //load h2k | h1k + pmull v26.1q, v8.1d, v22.1d //GHASH final-1 block - low + + ins v27.d[1], v27.d[0] //GHASH final-1 block - mid + + eor v19.16b, v19.16b, v26.16b //GHASH final-1 block - low + +.long 0xce07752c //eor3 v12.16b, v9.16b, v7.16b, v29.16b //AES final block - result + pmull2 v28.1q, v8.2d, v22.2d //GHASH final-1 block - high + + pmull2 v27.1q, v27.2d, v21.2d //GHASH final-1 block - mid + + movi v16.8b, #0 //suppress further partial tag feed in + eor v17.16b, v17.16b, v28.16b //GHASH final-1 block - high + + eor v18.16b, v18.16b, v27.16b //GHASH final-1 block - mid +L256_dec_blocks_less_than_1: //blocks left <= 1 + + ld1 { v26.16b}, [x2] //load existing bytes where the possibly partial last block is to be stored + mvn x6, xzr //temp0_x = 0xffffffffffffffff + and x1, x1, #127 //bit_length %= 128 + + sub x1, x1, #128 //bit_length -= 128 + rev32 v30.16b, v30.16b + str q30, [x16] //store the updated counter + + neg x1, x1 //bit_length = 128 - #bits in input (in range [1,128]) + + and x1, x1, #127 //bit_length %= 128 + + lsr x6, x6, x1 //temp0_x is mask for top 64b of last block + cmp x1, #64 + mvn x7, xzr //temp1_x = 0xffffffffffffffff + + csel x14, x6, xzr, lt + csel x13, x7, x6, lt + + mov v0.d[0], x13 //ctr0b is mask for last block + mov v0.d[1], x14 + + and v9.16b, v9.16b, v0.16b //possibly partial last block has zeroes in highest bits + ldr q20, [x3, #32] //load h1l | h1h + ext v20.16b, v20.16b, v20.16b, #8 + bif v12.16b, v26.16b, v0.16b //insert existing bytes in top end of result before storing + + rev64 v8.16b, v9.16b //GHASH final block + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + + ins v16.d[0], v8.d[1] //GHASH final block - mid + pmull2 v28.1q, v8.2d, v20.2d //GHASH final block - high + + eor v16.8b, v16.8b, v8.8b //GHASH final block - mid + + pmull v26.1q, v8.1d, v20.1d //GHASH final block - low + eor v17.16b, v17.16b, v28.16b //GHASH final block - high + + pmull v16.1q, v16.1d, v21.1d //GHASH final block - mid + + eor v18.16b, v18.16b, v16.16b //GHASH final block - mid + ldr d16, [x10] //MODULO - load modulo constant + eor v19.16b, v19.16b, v26.16b //GHASH final block - low + + pmull v21.1q, v17.1d, v16.1d //MODULO - top 64b align with mid + eor v14.16b, v17.16b, v19.16b //MODULO - karatsuba tidy up + + ext v17.16b, v17.16b, v17.16b, #8 //MODULO - other top alignment + st1 { v12.16b}, [x2] //store all 16B + + eor v18.16b, v18.16b, v14.16b //MODULO - karatsuba tidy up + + eor v21.16b, v17.16b, v21.16b //MODULO - fold into mid + eor v18.16b, v18.16b, v21.16b //MODULO - fold into mid + + pmull v17.1q, v18.1d, v16.1d //MODULO - mid 64b align with low + + ext v18.16b, v18.16b, v18.16b, #8 //MODULO - other mid alignment + eor v19.16b, v19.16b, v17.16b //MODULO - fold into low + + eor v19.16b, v19.16b, v18.16b //MODULO - fold into low + ext v19.16b, v19.16b, v19.16b, #8 + rev64 v19.16b, v19.16b + st1 { v19.16b }, [x3] + mov x0, x9 + + ldp d10, d11, [sp, #16] + ldp d12, d13, [sp, #32] + ldp d14, d15, [sp, #48] + ldp d8, d9, [sp], #80 + ret + +L256_dec_ret: + mov w0, #0x0 + ret + +.byte 65,69,83,32,71,67,77,32,109,111,100,117,108,101,32,102,111,114,32,65,82,77,118,56,44,32,83,80,68,88,32,66,83,68,45,51,45,67,108,97,117,115,101,32,98,121,32,60,120,105,97,111,107,97,110,103,46,113,105,97,110,64,97,114,109,46,99,111,109,62,0 +.align 2 +.align 2 +#endif diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/asm/crypto/modes/aes-gcm-armv8_64.S b/deps/openssl/config/archs/darwin64-arm64-cc/asm/crypto/modes/aes-gcm-armv8_64.S index 6fcafd5805448e..26fd217efcb46e 100644 --- a/deps/openssl/config/archs/darwin64-arm64-cc/asm/crypto/modes/aes-gcm-armv8_64.S +++ b/deps/openssl/config/archs/darwin64-arm64-cc/asm/crypto/modes/aes-gcm-armv8_64.S @@ -7,6 +7,7 @@ .align 4 _aes_gcm_enc_128_kernel: + AARCH64_VALID_CALL_TARGET cbz x1, L128_enc_ret stp x19, x20, [sp, #-112]! mov x16, x4 @@ -989,6 +990,7 @@ L128_enc_ret: .align 4 _aes_gcm_dec_128_kernel: + AARCH64_VALID_CALL_TARGET cbz x1, L128_dec_ret stp x19, x20, [sp, #-112]! mov x16, x4 @@ -1981,6 +1983,7 @@ L128_dec_ret: .align 4 _aes_gcm_enc_192_kernel: + AARCH64_VALID_CALL_TARGET cbz x1, L192_enc_ret stp x19, x20, [sp, #-112]! mov x16, x4 @@ -3038,6 +3041,7 @@ L192_enc_ret: .align 4 _aes_gcm_dec_192_kernel: + AARCH64_VALID_CALL_TARGET cbz x1, L192_dec_ret stp x19, x20, [sp, #-112]! mov x16, x4 @@ -4105,6 +4109,7 @@ L192_dec_ret: .align 4 _aes_gcm_enc_256_kernel: + AARCH64_VALID_CALL_TARGET cbz x1, L256_enc_ret stp x19, x20, [sp, #-112]! mov x16, x4 @@ -5229,6 +5234,7 @@ L256_enc_ret: .align 4 _aes_gcm_dec_256_kernel: + AARCH64_VALID_CALL_TARGET cbz x1, L256_dec_ret stp x19, x20, [sp, #-112]! mov x16, x4 @@ -6383,6 +6389,7 @@ L256_dec_ret: mov w0, #0x0 ret +.section __TEXT,__const .byte 71,72,65,83,72,32,102,111,114,32,65,82,77,118,56,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 .align 2 .align 2 diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/asm/crypto/modes/ghashv8-armx.S b/deps/openssl/config/archs/darwin64-arm64-cc/asm/crypto/modes/ghashv8-armx.S index dc71d8508de6f8..50ef8f658b1c1c 100644 --- a/deps/openssl/config/archs/darwin64-arm64-cc/asm/crypto/modes/ghashv8-armx.S +++ b/deps/openssl/config/archs/darwin64-arm64-cc/asm/crypto/modes/ghashv8-armx.S @@ -7,6 +7,7 @@ .align 4 _gcm_init_v8: + AARCH64_VALID_CALL_TARGET ld1 {v17.2d},[x1] //load input H movi v19.16b,#0xe1 shl v19.2d,v19.2d,#57 //0xc2.0 @@ -82,21 +83,110 @@ _gcm_init_v8: pmull v5.1q,v5.1d,v19.1d eor v18.16b,v18.16b,v2.16b eor v4.16b,v4.16b,v7.16b - eor v20.16b, v0.16b,v18.16b //H^3 - eor v22.16b,v5.16b,v4.16b //H^4 + eor v23.16b, v0.16b,v18.16b //H^3 + eor v25.16b,v5.16b,v4.16b //H^4 + + ext v16.16b,v23.16b, v23.16b,#8 //Karatsuba pre-processing + ext v17.16b,v25.16b,v25.16b,#8 + ext v18.16b,v22.16b,v22.16b,#8 + eor v16.16b,v16.16b,v23.16b + eor v17.16b,v17.16b,v25.16b + eor v18.16b,v18.16b,v22.16b + ext v24.16b,v16.16b,v17.16b,#8 //pack Karatsuba pre-processed + st1 {v23.2d,v24.2d,v25.2d},[x0],#48 //store Htable[3..5] + + //calculate H^5 and H^6 + pmull v0.1q,v22.1d, v23.1d + pmull v5.1q,v23.1d,v23.1d + pmull2 v2.1q,v22.2d, v23.2d + pmull2 v7.1q,v23.2d,v23.2d + pmull v1.1q,v16.1d,v18.1d + pmull v6.1q,v16.1d,v16.1d - ext v16.16b,v20.16b, v20.16b,#8 //Karatsuba pre-processing - ext v17.16b,v22.16b,v22.16b,#8 - eor v16.16b,v16.16b,v20.16b - eor v17.16b,v17.16b,v22.16b - ext v21.16b,v16.16b,v17.16b,#8 //pack Karatsuba pre-processed - st1 {v20.2d,v21.2d,v22.2d},[x0] //store Htable[3..5] + ext v16.16b,v0.16b,v2.16b,#8 //Karatsuba post-processing + ext v17.16b,v5.16b,v7.16b,#8 + eor v18.16b,v0.16b,v2.16b + eor v1.16b,v1.16b,v16.16b + eor v4.16b,v5.16b,v7.16b + eor v6.16b,v6.16b,v17.16b + eor v1.16b,v1.16b,v18.16b + pmull v18.1q,v0.1d,v19.1d //1st phase + eor v6.16b,v6.16b,v4.16b + pmull v4.1q,v5.1d,v19.1d + + ins v2.d[0],v1.d[1] + ins v7.d[0],v6.d[1] + ins v1.d[1],v0.d[0] + ins v6.d[1],v5.d[0] + eor v0.16b,v1.16b,v18.16b + eor v5.16b,v6.16b,v4.16b + + ext v18.16b,v0.16b,v0.16b,#8 //2nd phase + ext v4.16b,v5.16b,v5.16b,#8 + pmull v0.1q,v0.1d,v19.1d + pmull v5.1q,v5.1d,v19.1d + eor v18.16b,v18.16b,v2.16b + eor v4.16b,v4.16b,v7.16b + eor v26.16b,v0.16b,v18.16b //H^5 + eor v28.16b,v5.16b,v4.16b //H^6 + + ext v16.16b,v26.16b, v26.16b,#8 //Karatsuba pre-processing + ext v17.16b,v28.16b,v28.16b,#8 + ext v18.16b,v22.16b,v22.16b,#8 + eor v16.16b,v16.16b,v26.16b + eor v17.16b,v17.16b,v28.16b + eor v18.16b,v18.16b,v22.16b + ext v27.16b,v16.16b,v17.16b,#8 //pack Karatsuba pre-processed + st1 {v26.2d,v27.2d,v28.2d},[x0],#48 //store Htable[6..8] + + //calculate H^7 and H^8 + pmull v0.1q,v22.1d,v26.1d + pmull v5.1q,v22.1d,v28.1d + pmull2 v2.1q,v22.2d,v26.2d + pmull2 v7.1q,v22.2d,v28.2d + pmull v1.1q,v16.1d,v18.1d + pmull v6.1q,v17.1d,v18.1d + + ext v16.16b,v0.16b,v2.16b,#8 //Karatsuba post-processing + ext v17.16b,v5.16b,v7.16b,#8 + eor v18.16b,v0.16b,v2.16b + eor v1.16b,v1.16b,v16.16b + eor v4.16b,v5.16b,v7.16b + eor v6.16b,v6.16b,v17.16b + eor v1.16b,v1.16b,v18.16b + pmull v18.1q,v0.1d,v19.1d //1st phase + eor v6.16b,v6.16b,v4.16b + pmull v4.1q,v5.1d,v19.1d + + ins v2.d[0],v1.d[1] + ins v7.d[0],v6.d[1] + ins v1.d[1],v0.d[0] + ins v6.d[1],v5.d[0] + eor v0.16b,v1.16b,v18.16b + eor v5.16b,v6.16b,v4.16b + + ext v18.16b,v0.16b,v0.16b,#8 //2nd phase + ext v4.16b,v5.16b,v5.16b,#8 + pmull v0.1q,v0.1d,v19.1d + pmull v5.1q,v5.1d,v19.1d + eor v18.16b,v18.16b,v2.16b + eor v4.16b,v4.16b,v7.16b + eor v29.16b,v0.16b,v18.16b //H^7 + eor v31.16b,v5.16b,v4.16b //H^8 + + ext v16.16b,v29.16b,v29.16b,#8 //Karatsuba pre-processing + ext v17.16b,v31.16b,v31.16b,#8 + eor v16.16b,v16.16b,v29.16b + eor v17.16b,v17.16b,v31.16b + ext v30.16b,v16.16b,v17.16b,#8 //pack Karatsuba pre-processed + st1 {v29.2d,v30.2d,v31.2d},[x0] //store Htable[9..11] ret .globl _gcm_gmult_v8 .align 4 _gcm_gmult_v8: + AARCH64_VALID_CALL_TARGET ld1 {v17.2d},[x0] //load Xi movi v19.16b,#0xe1 ld1 {v20.2d,v21.2d},[x1] //load twisted H, ... @@ -138,6 +228,7 @@ _gcm_gmult_v8: .align 4 _gcm_ghash_v8: + AARCH64_VALID_CALL_TARGET cmp x3,#64 b.hs Lgcm_ghash_v8_4x ld1 {v0.2d},[x0] //load [rotated] Xi @@ -546,6 +637,7 @@ Ldone4x: ret +.section __TEXT,__const .byte 71,72,65,83,72,32,102,111,114,32,65,82,77,118,56,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 .align 2 .align 2 diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/asm/crypto/params_idx.c b/deps/openssl/config/archs/darwin64-arm64-cc/asm/crypto/params_idx.c new file mode 100644 index 00000000000000..9d76ffededc24c --- /dev/null +++ b/deps/openssl/config/archs/darwin64-arm64-cc/asm/crypto/params_idx.c @@ -0,0 +1,3366 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from crypto/params_idx.c.in + * + * Copyright 2023 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + +#include "internal/e_os.h" +#include "internal/param_names.h" +#include + +/* Machine generated TRIE -- generated by util/perl/OpenSSL/paramnames.pm */ +int ossl_param_find_pidx(const char *s) +{ + switch(s[0]) { + default: + break; + case 'a': + switch(s[1]) { + default: + break; + case 'c': + if (strcmp("vp-info", s + 2) == 0) + return PIDX_KDF_PARAM_X942_ACVPINFO; + break; + case 'd': + switch(s[2]) { + default: + break; + case 'd': + if (strcmp("itional-random", s + 3) == 0) + return PIDX_SIGNATURE_PARAM_ADD_RANDOM; + break; + case '\0': + return PIDX_KDF_PARAM_ARGON2_AD; + } + break; + case 'e': + if (strcmp("ad", s + 2) == 0) + return PIDX_CIPHER_PARAM_AEAD; + break; + case 'l': + switch(s[2]) { + default: + break; + case 'g': + switch(s[3]) { + default: + break; + case '_': + if (strcmp("id_param", s + 4) == 0) + return PIDX_CIPHER_PARAM_ALGORITHM_ID_PARAMS_OLD; + break; + case 'i': + if (strcmp("d-absent", s + 4) == 0) + return PIDX_DIGEST_PARAM_ALGID_ABSENT; + break; + case 'o': + switch(s[4]) { + default: + break; + case 'r': + switch(s[5]) { + default: + break; + case 'i': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case 'h': + switch(s[8]) { + default: + break; + case 'm': + switch(s[9]) { + default: + break; + case '-': + switch(s[10]) { + default: + break; + case 'i': + switch(s[11]) { + default: + break; + case 'd': + switch(s[12]) { + default: + break; + case '-': + if (strcmp("params", s + 13) == 0) + return PIDX_ALG_PARAM_ALGORITHM_ID_PARAMS; + break; + case '\0': + return PIDX_ALG_PARAM_ALGORITHM_ID; + } + } + } + } + } + } + } + } + } + } + break; + case 'i': + if (strcmp("as", s + 3) == 0) + return PIDX_STORE_PARAM_ALIAS; + } + break; + case '\0': + return PIDX_PKEY_PARAM_EC_A; + } + break; + case 'b': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("sis-type", s + 2) == 0) + return PIDX_PKEY_PARAM_EC_CHAR2_TYPE; + break; + case 'i': + if (strcmp("ts", s + 2) == 0) + return PIDX_PKEY_PARAM_BITS; + break; + case 'l': + switch(s[2]) { + default: + break; + case 'o': + switch(s[3]) { + default: + break; + case 'c': + switch(s[4]) { + default: + break; + case 'k': + switch(s[5]) { + default: + break; + case '-': + if (strcmp("size", s + 6) == 0) + return PIDX_MAC_PARAM_BLOCK_SIZE; + break; + case '_': + if (strcmp("padding", s + 6) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_BLOCK_PADDING; + break; + case 's': + if (strcmp("ize", s + 6) == 0) + return PIDX_DIGEST_PARAM_BLOCK_SIZE; + } + } + } + } + break; + case 'u': + if (strcmp("ildinfo", s + 2) == 0) + return PIDX_PROV_PARAM_BUILDINFO; + break; + case '\0': + return PIDX_PKEY_PARAM_EC_B; + } + break; + case 'c': + switch(s[1]) { + default: + break; + case '-': + if (strcmp("rounds", s + 2) == 0) + return PIDX_MAC_PARAM_C_ROUNDS; + break; + case 'e': + if (strcmp("kalg", s + 2) == 0) + return PIDX_KDF_PARAM_CEK_ALG; + break; + case 'i': + if (strcmp("pher", s + 2) == 0) + return PIDX_ALG_PARAM_CIPHER; + break; + case 'o': + switch(s[2]) { + default: + break; + case 'f': + if (strcmp("actor", s + 3) == 0) + return PIDX_PKEY_PARAM_EC_COFACTOR; + break; + case 'n': + switch(s[3]) { + default: + break; + case 's': + if (strcmp("tant", s + 4) == 0) + return PIDX_KDF_PARAM_CONSTANT; + break; + case 't': + if (strcmp("ext-string", s + 4) == 0) + return PIDX_SIGNATURE_PARAM_CONTEXT_STRING; + } + } + break; + case 't': + switch(s[2]) { + default: + break; + case 's': + switch(s[3]) { + default: + break; + case '_': + if (strcmp("mode", s + 4) == 0) + return PIDX_CIPHER_PARAM_CTS_MODE; + break; + case '\0': + return PIDX_CIPHER_PARAM_CTS; + } + } + break; + case 'u': + switch(s[2]) { + default: + break; + case 's': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case 'o': + switch(s[5]) { + default: + break; + case 'm': + switch(s[6]) { + default: + break; + case '-': + if (strcmp("iv", s + 7) == 0) + return PIDX_CIPHER_PARAM_CUSTOM_IV; + break; + case '\0': + return PIDX_MAC_PARAM_CUSTOM; + } + } + } + } + } + } + break; + case 'd': + switch(s[1]) { + default: + break; + case '-': + if (strcmp("rounds", s + 2) == 0) + return PIDX_MAC_PARAM_D_ROUNDS; + break; + case 'a': + switch(s[2]) { + default: + break; + case 't': + switch(s[3]) { + default: + break; + case 'a': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 's': + if (strcmp("tructure", s + 6) == 0) + return PIDX_OBJECT_PARAM_DATA_STRUCTURE; + break; + case 't': + if (strcmp("ype", s + 6) == 0) + return PIDX_OBJECT_PARAM_DATA_TYPE; + } + break; + case '\0': + return PIDX_OBJECT_PARAM_DATA; + } + } + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'c': + switch(s[3]) { + default: + break; + case 'o': + if (strcmp("ded-from-explicit", s + 4) == 0) + return PIDX_PKEY_PARAM_EC_DECODED_FROM_EXPLICIT_PARAMS; + break; + case 'r': + if (strcmp("ypt-only", s + 4) == 0) + return PIDX_CIPHER_PARAM_DECRYPT_ONLY; + } + break; + case 'f': + if (strcmp("ault-digest", s + 3) == 0) + return PIDX_PKEY_PARAM_DEFAULT_DIGEST; + break; + case 's': + if (strcmp("c", s + 3) == 0) + return PIDX_OBJECT_PARAM_DESC; + break; + case 't': + if (strcmp("erministic", s + 3) == 0) + return PIDX_SIGNATURE_PARAM_DETERMINISTIC; + } + break; + case 'h': + if (strcmp("kem-ikm", s + 2) == 0) + return PIDX_PKEY_PARAM_DHKEM_IKM; + break; + case 'i': + switch(s[2]) { + default: + break; + case 'g': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case 's': + switch(s[5]) { + default: + break; + case 't': + switch(s[6]) { + default: + break; + case '-': + switch(s[7]) { + default: + break; + case 'c': + if (strcmp("heck", s + 8) == 0) + return PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK; + break; + case 'n': + if (strcmp("oinit", s + 8) == 0) + return PIDX_MAC_PARAM_DIGEST_NOINIT; + break; + case 'o': + if (strcmp("neshot", s + 8) == 0) + return PIDX_MAC_PARAM_DIGEST_ONESHOT; + break; + case 'p': + if (strcmp("rops", s + 8) == 0) + return PIDX_ASYM_CIPHER_PARAM_OAEP_DIGEST_PROPS; + break; + case 's': + if (strcmp("ize", s + 8) == 0) + return PIDX_PKEY_PARAM_DIGEST_SIZE; + } + break; + case '\0': + return PIDX_STORE_PARAM_DIGEST; + } + } + } + } + break; + case 's': + if (strcmp("tid", s + 3) == 0) + return PIDX_PKEY_PARAM_DIST_ID; + } + break; + case 'r': + if (strcmp("bg-no-trunc-md", s + 2) == 0) + return PIDX_PROV_PARAM_DRBG_TRUNC_DIGEST; + break; + case 's': + if (strcmp("a-sign-disabled", s + 2) == 0) + return PIDX_PROV_PARAM_DSA_SIGN_DISABLED; + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_D; + } + break; + case 'e': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("rly_clean", s + 2) == 0) + return PIDX_KDF_PARAM_EARLY_CLEAN; + break; + case 'c': + switch(s[2]) { + default: + break; + case 'd': + switch(s[3]) { + default: + break; + case 'h': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'c': + switch(s[6]) { + default: + break; + case 'o': + switch(s[7]) { + default: + break; + case 'f': + switch(s[8]) { + default: + break; + case 'a': + switch(s[9]) { + default: + break; + case 'c': + switch(s[10]) { + default: + break; + case 't': + switch(s[11]) { + default: + break; + case 'o': + switch(s[12]) { + default: + break; + case 'r': + switch(s[13]) { + default: + break; + case '-': + switch(s[14]) { + default: + break; + case 'c': + if (strcmp("heck", s + 15) == 0) + return PIDX_PROV_PARAM_ECDH_COFACTOR_CHECK; + break; + case 'm': + if (strcmp("ode", s + 15) == 0) + return PIDX_EXCHANGE_PARAM_EC_ECDH_COFACTOR_MODE; + } + } + } + } + } + } + } + } + } + } + } + } + } + break; + case 'm': + if (strcmp("s_check", s + 2) == 0) + return PIDX_KDF_PARAM_FIPS_EMS_CHECK; + break; + case 'n': + switch(s[2]) { + default: + break; + case 'c': + switch(s[3]) { + default: + break; + case 'o': + switch(s[4]) { + default: + break; + case 'd': + switch(s[5]) { + default: + break; + case 'e': + if (strcmp("d-pub-key", s + 6) == 0) + return PIDX_PKEY_PARAM_ENCODED_PUBLIC_KEY; + break; + case 'i': + if (strcmp("ng", s + 6) == 0) + return PIDX_PKEY_PARAM_EC_ENCODING; + } + } + break; + case 'r': + switch(s[4]) { + default: + break; + case 'y': + switch(s[5]) { + default: + break; + case 'p': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case '-': + switch(s[8]) { + default: + break; + case 'c': + if (strcmp("heck", s + 9) == 0) + return PIDX_CIPHER_PARAM_FIPS_ENCRYPT_CHECK; + break; + case 'l': + if (strcmp("evel", s + 9) == 0) + return PIDX_ENCODER_PARAM_ENCRYPT_LEVEL; + } + } + } + } + } + } + break; + case 'g': + if (strcmp("ine", s + 3) == 0) + return PIDX_ALG_PARAM_ENGINE; + break; + case 't': + switch(s[3]) { + default: + break; + case 'r': + switch(s[4]) { + default: + break; + case 'o': + switch(s[5]) { + default: + break; + case 'p': + switch(s[6]) { + default: + break; + case 'y': + switch(s[7]) { + default: + break; + case '_': + if (strcmp("required", s + 8) == 0) + return PIDX_DRBG_PARAM_ENTROPY_REQUIRED; + break; + case '\0': + return PIDX_KDF_PARAM_HMACDRBG_ENTROPY; + } + } + } + } + } + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_E; + break; + case 'x': + if (strcmp("pect", s + 2) == 0) + return PIDX_STORE_PARAM_EXPECT; + } + break; + case 'f': + switch(s[1]) { + default: + break; + case 'i': + switch(s[2]) { + default: + break; + case 'e': + if (strcmp("ld-type", s + 3) == 0) + return PIDX_PKEY_PARAM_EC_FIELD_TYPE; + break; + case 'n': + if (strcmp("gerprint", s + 3) == 0) + return PIDX_STORE_PARAM_FINGERPRINT; + break; + case 'p': + if (strcmp("s-indicator", s + 3) == 0) + return PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR; + } + } + break; + case 'g': + switch(s[1]) { + default: + break; + case 'e': + switch(s[2]) { + default: + break; + case 'n': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case 'r': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case 'e': + switch(s[8]) { + default: + break; + case '\0': + return PIDX_RAND_PARAM_GENERATE; + } + break; + case 'o': + if (strcmp("r", s + 8) == 0) + return PIDX_PKEY_PARAM_EC_GENERATOR; + } + } + } + } + } + } + break; + case 'i': + if (strcmp("ndex", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_GINDEX; + break; + case 'r': + switch(s[2]) { + default: + break; + case 'o': + switch(s[3]) { + default: + break; + case 'u': + switch(s[4]) { + default: + break; + case 'p': + switch(s[5]) { + default: + break; + case '-': + if (strcmp("check", s + 6) == 0) + return PIDX_PKEY_PARAM_EC_GROUP_CHECK_TYPE; + break; + case '\0': + return PIDX_PKEY_PARAM_GROUP_NAME; + } + } + } + } + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_G; + } + break; + case 'h': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("s-randkey", s + 2) == 0) + return PIDX_CIPHER_PARAM_HAS_RAND_KEY; + break; + case 'i': + if (strcmp("ndex", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_H; + break; + case 'k': + switch(s[2]) { + default: + break; + case 'd': + switch(s[3]) { + default: + break; + case 'f': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 6) == 0) + return PIDX_PROV_PARAM_HKDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 6) == 0) + return PIDX_PROV_PARAM_HKDF_KEY_CHECK; + } + } + } + } + break; + case 'm': + if (strcmp("ac-key-check", s + 2) == 0) + return PIDX_PROV_PARAM_HMAC_KEY_CHECK; + break; + case 's': + if (strcmp("_padding", s + 2) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_HS_PADDING; + } + break; + case 'i': + switch(s[1]) { + default: + break; + case 'd': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_KDF_PARAM_PKCS12_ID; + } + break; + case 'k': + if (strcmp("me", s + 2) == 0) + return PIDX_KEM_PARAM_IKME; + break; + case 'm': + if (strcmp("plicit-rejection", s + 2) == 0) + return PIDX_PKEY_PARAM_IMPLICIT_REJECTION; + break; + case 'n': + switch(s[2]) { + default: + break; + case 'c': + if (strcmp("lude-public", s + 3) == 0) + return PIDX_PKEY_PARAM_EC_INCLUDE_PUBLIC; + break; + case 'f': + if (strcmp("o", s + 3) == 0) + return PIDX_PASSPHRASE_PARAM_INFO; + break; + case 'p': + if (strcmp("ut-type", s + 3) == 0) + return PIDX_STORE_PARAM_INPUT_TYPE; + break; + case 's': + if (strcmp("tance", s + 3) == 0) + return PIDX_SIGNATURE_PARAM_INSTANCE; + } + break; + case 't': + switch(s[2]) { + default: + break; + case 'e': + switch(s[3]) { + default: + break; + case 'r': + switch(s[4]) { + default: + break; + case 'a': + if (strcmp("tion", s + 5) == 0) + return PIDX_GEN_PARAM_ITERATION; + break; + case '\0': + return PIDX_KDF_PARAM_ITER; + } + } + } + break; + case 'v': + switch(s[2]) { + default: + break; + case '-': + if (strcmp("generated", s + 3) == 0) + return PIDX_CIPHER_PARAM_AEAD_IV_GENERATED; + break; + case 'l': + if (strcmp("en", s + 3) == 0) + return PIDX_CIPHER_PARAM_IVLEN; + break; + case '\0': + return PIDX_MAC_PARAM_IV; + } + } + break; + case 'j': + switch(s[1]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_COFACTOR; + } + break; + case 'k': + switch(s[1]) { + default: + break; + case '1': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_PP_K1; + } + break; + case '2': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_PP_K2; + } + break; + case '3': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_PP_K3; + } + break; + case 'a': + if (strcmp("t", s + 2) == 0) + return PIDX_SIGNATURE_PARAM_KAT; + break; + case 'b': + if (strcmp("kdf-key-check", s + 2) == 0) + return PIDX_PROV_PARAM_KBKDF_KEY_CHECK; + break; + case 'd': + switch(s[2]) { + default: + break; + case 'f': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'd': + switch(s[5]) { + default: + break; + case 'i': + switch(s[6]) { + default: + break; + case 'g': + switch(s[7]) { + default: + break; + case 'e': + switch(s[8]) { + default: + break; + case 's': + switch(s[9]) { + default: + break; + case 't': + switch(s[10]) { + default: + break; + case '-': + if (strcmp("props", s + 11) == 0) + return PIDX_EXCHANGE_PARAM_KDF_DIGEST_PROPS; + break; + case '\0': + return PIDX_EXCHANGE_PARAM_KDF_DIGEST; + } + } + } + } + } + } + break; + case 'o': + if (strcmp("utlen", s + 5) == 0) + return PIDX_EXCHANGE_PARAM_KDF_OUTLEN; + break; + case 't': + if (strcmp("ype", s + 5) == 0) + return PIDX_EXCHANGE_PARAM_KDF_TYPE; + break; + case 'u': + if (strcmp("km", s + 5) == 0) + return PIDX_EXCHANGE_PARAM_KDF_UKM; + } + } + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'y': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'c': + if (strcmp("heck", s + 5) == 0) + return PIDX_PKEY_PARAM_FIPS_KEY_CHECK; + break; + case 'l': + if (strcmp("ength", s + 5) == 0) + return PIDX_SKEY_PARAM_KEY_LENGTH; + } + break; + case 'b': + if (strcmp("its", s + 4) == 0) + return PIDX_CIPHER_PARAM_RC2_KEYBITS; + break; + case 'l': + if (strcmp("en", s + 4) == 0) + return PIDX_CIPHER_PARAM_KEYLEN; + break; + case '\0': + return PIDX_MAC_PARAM_KEY; + } + } + break; + case 'm': + if (strcmp("ac-key-check", s + 2) == 0) + return PIDX_PROV_PARAM_KMAC_KEY_CHECK; + } + break; + case 'l': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'b': + if (strcmp("el", s + 3) == 0) + return PIDX_KDF_PARAM_LABEL; + break; + case 'n': + if (strcmp("es", s + 3) == 0) + return PIDX_KDF_PARAM_ARGON2_LANES; + } + } + break; + case 'm': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'c': + switch(s[3]) { + default: + break; + case 'k': + if (strcmp("ey", s + 4) == 0) + return PIDX_CIPHER_PARAM_AEAD_MAC_KEY; + break; + case 'l': + if (strcmp("en", s + 4) == 0) + return PIDX_KDF_PARAM_MAC_SIZE; + break; + case '\0': + return PIDX_ALG_PARAM_MAC; + } + break; + case 'n': + if (strcmp("datory-digest", s + 3) == 0) + return PIDX_PKEY_PARAM_MANDATORY_DIGEST; + break; + case 'x': + switch(s[3]) { + default: + break; + case '-': + if (strcmp("size", s + 4) == 0) + return PIDX_PKEY_PARAM_MAX_SIZE; + break; + case '_': + switch(s[4]) { + default: + break; + case 'a': + if (strcmp("dinlen", s + 5) == 0) + return PIDX_DRBG_PARAM_MAX_ADINLEN; + break; + case 'e': + switch(s[5]) { + default: + break; + case 'a': + if (strcmp("rly_data", s + 6) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_MAX_EARLY_DATA; + break; + case 'n': + if (strcmp("tropylen", s + 6) == 0) + return PIDX_DRBG_PARAM_MAX_ENTROPYLEN; + } + break; + case 'f': + if (strcmp("rag_len", s + 5) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_MAX_FRAG_LEN; + break; + case 'n': + if (strcmp("oncelen", s + 5) == 0) + return PIDX_DRBG_PARAM_MAX_NONCELEN; + break; + case 'p': + if (strcmp("erslen", s + 5) == 0) + return PIDX_DRBG_PARAM_MAX_PERSLEN; + break; + case 'r': + if (strcmp("equest", s + 5) == 0) + return PIDX_RAND_PARAM_MAX_REQUEST; + } + break; + case 'i': + if (strcmp("um_length", s + 4) == 0) + return PIDX_DRBG_PARAM_MAX_LENGTH; + break; + case 'm': + if (strcmp("em_bytes", s + 4) == 0) + return PIDX_KDF_PARAM_SCRYPT_MAXMEM; + } + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'm': + if (strcmp("cost", s + 3) == 0) + return PIDX_KDF_PARAM_ARGON2_MEMCOST; + break; + case 's': + if (strcmp("sage-encoding", s + 3) == 0) + return PIDX_SIGNATURE_PARAM_MESSAGE_ENCODING; + } + break; + case 'g': + switch(s[2]) { + default: + break; + case 'f': + switch(s[3]) { + default: + break; + case '1': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'd': + if (strcmp("igest", s + 6) == 0) + return PIDX_PKEY_PARAM_MGF1_DIGEST; + break; + case 'p': + if (strcmp("roperties", s + 6) == 0) + return PIDX_PKEY_PARAM_MGF1_PROPERTIES; + } + } + break; + case '\0': + return PIDX_PKEY_PARAM_MASKGENFUNC; + } + } + break; + case 'i': + switch(s[2]) { + default: + break; + case 'c': + if (strcmp("alg", s + 3) == 0) + return PIDX_DIGEST_PARAM_MICALG; + break; + case 'n': + switch(s[3]) { + default: + break; + case '_': + switch(s[4]) { + default: + break; + case 'e': + if (strcmp("ntropylen", s + 5) == 0) + return PIDX_DRBG_PARAM_MIN_ENTROPYLEN; + break; + case 'n': + if (strcmp("oncelen", s + 5) == 0) + return PIDX_DRBG_PARAM_MIN_NONCELEN; + } + break; + case 'i': + if (strcmp("um_length", s + 4) == 0) + return PIDX_DRBG_PARAM_MIN_LENGTH; + } + } + break; + case 'l': + switch(s[2]) { + default: + break; + case '-': + switch(s[3]) { + default: + break; + case 'd': + switch(s[4]) { + default: + break; + case 's': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case '.': + switch(s[7]) { + default: + break; + case 'i': + if (strcmp("nput_formats", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_DSA_INPUT_FORMATS; + break; + case 'o': + if (strcmp("utput_formats", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_DSA_OUTPUT_FORMATS; + break; + case 'p': + if (strcmp("refer_seed", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_DSA_PREFER_SEED; + break; + case 'r': + if (strcmp("etain_seed", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_DSA_RETAIN_SEED; + } + } + } + } + break; + case 'k': + switch(s[4]) { + default: + break; + case 'e': + switch(s[5]) { + default: + break; + case 'm': + switch(s[6]) { + default: + break; + case '.': + switch(s[7]) { + default: + break; + case 'i': + switch(s[8]) { + default: + break; + case 'm': + if (strcmp("port_pct_type", s + 9) == 0) + return PIDX_PKEY_PARAM_ML_KEM_IMPORT_PCT_TYPE; + break; + case 'n': + if (strcmp("put_formats", s + 9) == 0) + return PIDX_PKEY_PARAM_ML_KEM_INPUT_FORMATS; + } + break; + case 'o': + if (strcmp("utput_formats", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_KEM_OUTPUT_FORMATS; + break; + case 'p': + if (strcmp("refer_seed", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_KEM_PREFER_SEED; + break; + case 'r': + if (strcmp("etain_seed", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_KEM_RETAIN_SEED; + } + } + } + } + } + } + break; + case 'o': + switch(s[2]) { + default: + break; + case 'd': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case '\0': + return PIDX_LIBSSL_RECORD_LAYER_PARAM_MODE; + } + break; + case 'u': + if (strcmp("le-filename", s + 4) == 0) + return PIDX_PROV_PARAM_CORE_MODULE_FILENAME; + } + } + break; + case 'u': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_SIGNATURE_PARAM_MU; + } + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_M; + } + break; + case 'n': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("me", s + 2) == 0) + return PIDX_STORE_PARAM_ISSUER; + break; + case 'o': + switch(s[2]) { + default: + break; + case '-': + if (strcmp("short-mac", s + 3) == 0) + return PIDX_PROV_PARAM_NO_SHORT_MAC; + break; + case 'n': + switch(s[3]) { + default: + break; + case 'c': + switch(s[4]) { + default: + break; + case 'e': + switch(s[5]) { + default: + break; + case '-': + if (strcmp("type", s + 6) == 0) + return PIDX_SIGNATURE_PARAM_NONCE_TYPE; + break; + case '\0': + return PIDX_KDF_PARAM_HMACDRBG_NONCE; + } + } + } + } + break; + case 'u': + if (strcmp("m", s + 2) == 0) + return PIDX_CIPHER_PARAM_NUM; + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_N; + } + break; + case 'o': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("ep-label", s + 2) == 0) + return PIDX_ASYM_CIPHER_PARAM_OAEP_LABEL; + break; + case 'p': + switch(s[2]) { + default: + break; + case 'e': + switch(s[3]) { + default: + break; + case 'n': + if (strcmp("ssl-version", s + 4) == 0) + return PIDX_PROV_PARAM_CORE_VERSION; + break; + case 'r': + if (strcmp("ation", s + 4) == 0) + return PIDX_KEM_PARAM_OPERATION; + } + break; + case 't': + if (strcmp("ions", s + 3) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_OPTIONS; + } + break; + case 'r': + if (strcmp("der", s + 2) == 0) + return PIDX_PKEY_PARAM_EC_ORDER; + } + break; + case 'p': + switch(s[1]) { + default: + break; + case '1': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_P1; + } + break; + case '2': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_P2; + } + break; + case 'a': + switch(s[2]) { + default: + break; + case 'd': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'm': + if (strcmp("ode", s + 5) == 0) + return PIDX_PKEY_PARAM_PAD_MODE; + break; + case 't': + if (strcmp("ype", s + 5) == 0) + return PIDX_DIGEST_PARAM_PAD_TYPE; + } + break; + case 'd': + if (strcmp("ing", s + 4) == 0) + return PIDX_CIPHER_PARAM_PADDING; + break; + case '\0': + return PIDX_EXCHANGE_PARAM_PAD; + } + break; + case 'r': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case 'y': + switch(s[5]) { + default: + break; + case 'u': + if (strcmp("-info", s + 6) == 0) + return PIDX_KDF_PARAM_X942_PARTYUINFO; + break; + case 'v': + if (strcmp("-info", s + 6) == 0) + return PIDX_KDF_PARAM_X942_PARTYVINFO; + } + } + } + break; + case 's': + if (strcmp("s", s + 3) == 0) + return PIDX_KDF_PARAM_PASSWORD; + } + break; + case 'b': + switch(s[2]) { + default: + break; + case 'i': + if (strcmp("ts", s + 3) == 0) + return PIDX_PKEY_PARAM_FFC_PBITS; + break; + case 'k': + if (strcmp("df2-lower-bound-check", s + 3) == 0) + return PIDX_PROV_PARAM_PBKDF2_LOWER_BOUND_CHECK; + } + break; + case 'c': + if (strcmp("ounter", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_PCOUNTER; + break; + case 'i': + if (strcmp("peline-tag", s + 2) == 0) + return PIDX_CIPHER_PARAM_PIPELINE_AEAD_TAG; + break; + case 'k': + if (strcmp("cs5", s + 2) == 0) + return PIDX_KDF_PARAM_PKCS5; + break; + case 'o': + switch(s[2]) { + default: + break; + case 'i': + if (strcmp("nt-format", s + 3) == 0) + return PIDX_PKEY_PARAM_EC_POINT_CONVERSION_FORMAT; + break; + case 't': + if (strcmp("ential", s + 3) == 0) + return PIDX_GEN_PARAM_POTENTIAL; + } + break; + case 'r': + switch(s[2]) { + default: + break; + case 'e': + switch(s[3]) { + default: + break; + case 'd': + if (strcmp("iction_resistance", s + 4) == 0) + return PIDX_DRBG_PARAM_PREDICTION_RESISTANCE; + break; + case 'f': + if (strcmp("ix", s + 4) == 0) + return PIDX_KDF_PARAM_PREFIX; + } + break; + case 'i': + switch(s[3]) { + default: + break; + case 'm': + if (strcmp("es", s + 4) == 0) + return PIDX_PKEY_PARAM_RSA_PRIMES; + break; + case 'v': + switch(s[4]) { + default: + break; + case '_': + if (strcmp("len", s + 5) == 0) + return PIDX_PKEY_PARAM_DH_PRIV_LEN; + break; + case '\0': + return PIDX_PKEY_PARAM_PRIV_KEY; + } + } + break; + case 'o': + switch(s[3]) { + default: + break; + case 'p': + if (strcmp("erties", s + 4) == 0) + return PIDX_STORE_PARAM_PROPERTIES; + break; + case 'v': + if (strcmp("ider-name", s + 4) == 0) + return PIDX_PROV_PARAM_CORE_PROV_NAME; + } + } + break; + case 'u': + if (strcmp("b", s + 2) == 0) + return PIDX_PKEY_PARAM_PUB_KEY; + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_P; + } + break; + case 'q': + switch(s[1]) { + default: + break; + case '1': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_Q1; + } + break; + case '2': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_Q2; + } + break; + case 'b': + if (strcmp("its", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_QBITS; + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_Q; + break; + case 'x': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_PUB_X; + } + break; + case 'y': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_PUB_Y; + } + } + break; + case 'r': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'n': + switch(s[3]) { + default: + break; + case 'd': + switch(s[4]) { + default: + break; + case 'k': + if (strcmp("ey", s + 5) == 0) + return PIDX_CIPHER_PARAM_RANDOM_KEY; + break; + case 'o': + if (strcmp("m_data", s + 5) == 0) + return PIDX_DRBG_PARAM_RANDOM_DATA; + } + } + break; + case 'w': + if (strcmp("-bytes", s + 3) == 0) + return PIDX_SKEY_PARAM_RAW_BYTES; + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'a': + switch(s[3]) { + default: + break; + case 'd': + switch(s[4]) { + default: + break; + case '_': + switch(s[5]) { + default: + break; + case 'a': + if (strcmp("head", s + 6) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_READ_AHEAD; + break; + case 'b': + if (strcmp("uffer_len", s + 6) == 0) + return PIDX_LIBSSL_RECORD_LAYER_READ_BUFFER_LEN; + } + } + } + break; + case 'f': + if (strcmp("erence", s + 3) == 0) + return PIDX_OBJECT_PARAM_REFERENCE; + break; + case 's': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case 'e': + switch(s[5]) { + default: + break; + case 'd': + switch(s[6]) { + default: + break; + case '_': + switch(s[7]) { + default: + break; + case 'c': + if (strcmp("ounter", s + 8) == 0) + return PIDX_DRBG_PARAM_RESEED_COUNTER; + break; + case 'r': + if (strcmp("equests", s + 8) == 0) + return PIDX_DRBG_PARAM_RESEED_REQUESTS; + break; + case 't': + switch(s[8]) { + default: + break; + case 'i': + switch(s[9]) { + default: + break; + case 'm': + switch(s[10]) { + default: + break; + case 'e': + switch(s[11]) { + default: + break; + case '_': + if (strcmp("interval", s + 12) == 0) + return PIDX_DRBG_PARAM_RESEED_TIME_INTERVAL; + break; + case '\0': + return PIDX_DRBG_PARAM_RESEED_TIME; + } + } + } + } + } + } + } + } + } + } + break; + case 'o': + if (strcmp("unds", s + 2) == 0) + return PIDX_CIPHER_PARAM_ROUNDS; + break; + case 's': + switch(s[2]) { + default: + break; + case 'a': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'c': + switch(s[5]) { + default: + break; + case 'o': + switch(s[6]) { + default: + break; + case 'e': + switch(s[7]) { + default: + break; + case 'f': + switch(s[8]) { + default: + break; + case 'f': + switch(s[9]) { + default: + break; + case 'i': + switch(s[10]) { + default: + break; + case 'c': + switch(s[11]) { + default: + break; + case 'i': + switch(s[12]) { + default: + break; + case 'e': + switch(s[13]) { + default: + break; + case 'n': + switch(s[14]) { + default: + break; + case 't': + switch(s[15]) { + default: + break; + case '1': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT1; + } + break; + case '2': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT2; + } + break; + case '3': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT3; + } + break; + case '4': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT4; + } + break; + case '5': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT5; + } + break; + case '6': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT6; + } + break; + case '7': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT7; + } + break; + case '8': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT8; + } + break; + case '9': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT9; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT; + } + } + } + } + } + } + } + } + } + } + } + break; + case 'd': + if (strcmp("erive-from-pq", s + 5) == 0) + return PIDX_PKEY_PARAM_RSA_DERIVE_FROM_PQ; + break; + case 'e': + switch(s[5]) { + default: + break; + case 'x': + switch(s[6]) { + default: + break; + case 'p': + switch(s[7]) { + default: + break; + case 'o': + switch(s[8]) { + default: + break; + case 'n': + switch(s[9]) { + default: + break; + case 'e': + switch(s[10]) { + default: + break; + case 'n': + switch(s[11]) { + default: + break; + case 't': + switch(s[12]) { + default: + break; + case '1': + switch(s[13]) { + default: + break; + case '0': + switch(s[14]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT10; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT1; + } + break; + case '2': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT2; + } + break; + case '3': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT3; + } + break; + case '4': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT4; + } + break; + case '5': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT5; + } + break; + case '6': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT6; + } + break; + case '7': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT7; + } + break; + case '8': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT8; + } + break; + case '9': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT9; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT; + } + } + } + } + } + } + } + } + break; + case 'f': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case 'c': + switch(s[7]) { + default: + break; + case 't': + switch(s[8]) { + default: + break; + case 'o': + switch(s[9]) { + default: + break; + case 'r': + switch(s[10]) { + default: + break; + case '1': + switch(s[11]) { + default: + break; + case '0': + switch(s[12]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR10; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR1; + } + break; + case '2': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR2; + } + break; + case '3': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR3; + } + break; + case '4': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR4; + } + break; + case '5': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR5; + } + break; + case '6': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR6; + } + break; + case '7': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR7; + } + break; + case '8': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR8; + } + break; + case '9': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR9; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR; + } + } + } + } + } + } + break; + case 'p': + switch(s[5]) { + default: + break; + case 'k': + if (strcmp("cs15-pad-disabled", s + 6) == 0) + return PIDX_PROV_PARAM_RSA_PKCS15_PAD_DISABLED; + break; + case 's': + if (strcmp("s-saltlen-check", s + 6) == 0) + return PIDX_SIGNATURE_PARAM_FIPS_RSA_PSS_SALTLEN_CHECK; + } + break; + case 's': + if (strcmp("ign-x931-pad-disabled", s + 5) == 0) + return PIDX_PROV_PARAM_RSA_SIGN_X931_PAD_DISABLED; + } + } + } + break; + case '\0': + return PIDX_KDF_PARAM_SCRYPT_R; + } + break; + case 's': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'f': + if (strcmp("eprime-generator", s + 3) == 0) + return PIDX_PKEY_PARAM_DH_GENERATOR; + break; + case 'l': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case 'l': + if (strcmp("en", s + 5) == 0) + return PIDX_SIGNATURE_PARAM_PSS_SALTLEN; + break; + case '\0': + return PIDX_MAC_PARAM_SALT; + } + } + break; + case 'v': + if (strcmp("e-parameters", s + 3) == 0) + return PIDX_ENCODER_PARAM_SAVE_PARAMETERS; + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'c': + switch(s[3]) { + default: + break; + case 'r': + if (strcmp("et", s + 4) == 0) + return PIDX_KDF_PARAM_SECRET; + break; + case 'u': + switch(s[4]) { + default: + break; + case 'r': + switch(s[5]) { + default: + break; + case 'i': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case 'y': + switch(s[8]) { + default: + break; + case '-': + switch(s[9]) { + default: + break; + case 'b': + if (strcmp("its", s + 10) == 0) + return PIDX_PKEY_PARAM_SECURITY_BITS; + break; + case 'c': + if (strcmp("hecks", s + 10) == 0) + return PIDX_PROV_PARAM_SECURITY_CHECKS; + } + } + } + } + } + } + } + break; + case 'e': + if (strcmp("d", s + 3) == 0) + return PIDX_PKEY_PARAM_SLH_DSA_SEED; + break; + case 'r': + if (strcmp("ial", s + 3) == 0) + return PIDX_STORE_PARAM_SERIAL; + break; + case 's': + if (strcmp("sion_id", s + 3) == 0) + return PIDX_KDF_PARAM_SSHKDF_SESSION_ID; + } + break; + case 'i': + switch(s[2]) { + default: + break; + case 'g': + switch(s[3]) { + default: + break; + case 'n': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'c': + if (strcmp("heck", s + 6) == 0) + return PIDX_PKEY_PARAM_FIPS_SIGN_CHECK; + break; + case 'x': + if (strcmp("931-pad-check", s + 6) == 0) + return PIDX_SIGNATURE_PARAM_FIPS_SIGN_X931_PAD_CHECK; + } + break; + case 'a': + switch(s[5]) { + default: + break; + case 't': + switch(s[6]) { + default: + break; + case 'u': + switch(s[7]) { + default: + break; + case 'r': + switch(s[8]) { + default: + break; + case 'e': + switch(s[9]) { + default: + break; + case '-': + if (strcmp("digest-check", s + 10) == 0) + return PIDX_PROV_PARAM_SIGNATURE_DIGEST_CHECK; + break; + case '\0': + return PIDX_SIGNATURE_PARAM_SIGNATURE; + } + } + } + } + } + } + } + break; + case 'z': + if (strcmp("e", s + 3) == 0) + return PIDX_MAC_PARAM_SIZE; + } + break; + case 'p': + if (strcmp("eed", s + 2) == 0) + return PIDX_CIPHER_PARAM_SPEED; + break; + case 's': + switch(s[2]) { + default: + break; + case 'h': + switch(s[3]) { + default: + break; + case 'k': + switch(s[4]) { + default: + break; + case 'd': + switch(s[5]) { + default: + break; + case 'f': + switch(s[6]) { + default: + break; + case '-': + switch(s[7]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 8) == 0) + return PIDX_PROV_PARAM_SSHKDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 8) == 0) + return PIDX_PROV_PARAM_SSHKDF_KEY_CHECK; + } + } + } + } + } + break; + case 'k': + switch(s[3]) { + default: + break; + case 'd': + switch(s[4]) { + default: + break; + case 'f': + switch(s[5]) { + default: + break; + case '-': + switch(s[6]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 7) == 0) + return PIDX_PROV_PARAM_SSKDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 7) == 0) + return PIDX_PROV_PARAM_SSKDF_KEY_CHECK; + } + } + } + } + break; + case 'l': + if (strcmp("3-ms", s + 3) == 0) + return PIDX_DIGEST_PARAM_SSL3_MS; + } + break; + case 't': + switch(s[2]) { + default: + break; + case '-': + switch(s[3]) { + default: + break; + case 'd': + if (strcmp("esc", s + 4) == 0) + return PIDX_PROV_PARAM_SELF_TEST_DESC; + break; + case 'p': + if (strcmp("hase", s + 4) == 0) + return PIDX_PROV_PARAM_SELF_TEST_PHASE; + break; + case 't': + if (strcmp("ype", s + 4) == 0) + return PIDX_PROV_PARAM_SELF_TEST_TYPE; + } + break; + case 'a': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case 'e': + switch(s[5]) { + default: + break; + case '\0': + return PIDX_RAND_PARAM_STATE; + } + break; + case 'u': + if (strcmp("s", s + 5) == 0) + return PIDX_PROV_PARAM_STATUS; + } + } + break; + case 'r': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case 'a': + if (strcmp("m_mac", s + 5) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_STREAM_MAC; + break; + case 'n': + if (strcmp("gth", s + 5) == 0) + return PIDX_RAND_PARAM_STRENGTH; + } + } + } + break; + case 'u': + switch(s[2]) { + default: + break; + case 'b': + if (strcmp("ject", s + 3) == 0) + return PIDX_STORE_PARAM_SUBJECT; + break; + case 'p': + switch(s[3]) { + default: + break; + case 'p': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'p': + switch(s[6]) { + default: + break; + case 'r': + if (strcmp("ivinfo", s + 7) == 0) + return PIDX_KDF_PARAM_X942_SUPP_PRIVINFO; + break; + case 'u': + if (strcmp("binfo", s + 7) == 0) + return PIDX_KDF_PARAM_X942_SUPP_PUBINFO; + } + } + } + } + } + } + break; + case 't': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'g': + switch(s[3]) { + default: + break; + case 'l': + if (strcmp("en", s + 4) == 0) + return PIDX_CIPHER_PARAM_AEAD_TAGLEN; + break; + case '\0': + return PIDX_CIPHER_PARAM_AEAD_TAG; + } + } + break; + case 'd': + if (strcmp("es-encrypt-disabled", s + 2) == 0) + return PIDX_PROV_PARAM_TDES_ENCRYPT_DISABLED; + break; + case 'e': + switch(s[2]) { + default: + break; + case 's': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case '-': + if (strcmp("entropy", s + 5) == 0) + return PIDX_SIGNATURE_PARAM_TEST_ENTROPY; + break; + case '_': + switch(s[5]) { + default: + break; + case 'e': + if (strcmp("ntropy", s + 6) == 0) + return PIDX_RAND_PARAM_TEST_ENTROPY; + break; + case 'n': + if (strcmp("once", s + 6) == 0) + return PIDX_RAND_PARAM_TEST_NONCE; + } + } + } + } + break; + case 'h': + if (strcmp("reads", s + 2) == 0) + return PIDX_KDF_PARAM_THREADS; + break; + case 'l': + switch(s[2]) { + default: + break; + case 's': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'c': + if (strcmp("lient-version", s + 5) == 0) + return PIDX_ASYM_CIPHER_PARAM_TLS_CLIENT_VERSION; + break; + case 'd': + if (strcmp("ata-size", s + 5) == 0) + return PIDX_MAC_PARAM_TLS_DATA_SIZE; + break; + case 'g': + switch(s[5]) { + default: + break; + case 'r': + switch(s[6]) { + default: + break; + case 'o': + switch(s[7]) { + default: + break; + case 'u': + switch(s[8]) { + default: + break; + case 'p': + switch(s[9]) { + default: + break; + case '-': + switch(s[10]) { + default: + break; + case 'a': + if (strcmp("lg", s + 11) == 0) + return PIDX_CAPABILITY_TLS_GROUP_ALG; + break; + case 'i': + switch(s[11]) { + default: + break; + case 'd': + switch(s[12]) { + default: + break; + case '\0': + return PIDX_CAPABILITY_TLS_GROUP_ID; + } + break; + case 's': + if (strcmp("-kem", s + 12) == 0) + return PIDX_CAPABILITY_TLS_GROUP_IS_KEM; + } + break; + case 'n': + switch(s[11]) { + default: + break; + case 'a': + switch(s[12]) { + default: + break; + case 'm': + switch(s[13]) { + default: + break; + case 'e': + switch(s[14]) { + default: + break; + case '-': + if (strcmp("internal", s + 15) == 0) + return PIDX_CAPABILITY_TLS_GROUP_NAME_INTERNAL; + break; + case '\0': + return PIDX_CAPABILITY_TLS_GROUP_NAME; + } + } + } + } + break; + case 's': + if (strcmp("ec-bits", s + 11) == 0) + return PIDX_CAPABILITY_TLS_GROUP_SECURITY_BITS; + } + } + } + } + } + } + break; + case 'm': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case 'c': + switch(s[7]) { + default: + break; + case '-': + if (strcmp("size", s + 8) == 0) + return PIDX_CIPHER_PARAM_TLS_MAC_SIZE; + break; + case '\0': + return PIDX_CIPHER_PARAM_TLS_MAC; + } + break; + case 'x': + switch(s[7]) { + default: + break; + case '-': + switch(s[8]) { + default: + break; + case 'd': + if (strcmp("tls", s + 9) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_MAX_DTLS; + break; + case 't': + if (strcmp("ls", s + 9) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_MAX_TLS; + } + } + } + break; + case 'i': + switch(s[6]) { + default: + break; + case 'n': + switch(s[7]) { + default: + break; + case '-': + switch(s[8]) { + default: + break; + case 'd': + if (strcmp("tls", s + 9) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_MIN_DTLS; + break; + case 't': + if (strcmp("ls", s + 9) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_MIN_TLS; + } + } + } + break; + case 'u': + if (strcmp("lti", s + 6) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK; + } + break; + case 'n': + if (strcmp("egotiated-version", s + 5) == 0) + return PIDX_ASYM_CIPHER_PARAM_TLS_NEGOTIATED_VERSION; + break; + case 's': + switch(s[5]) { + default: + break; + case 'i': + switch(s[6]) { + default: + break; + case 'g': + switch(s[7]) { + default: + break; + case 'a': + switch(s[8]) { + default: + break; + case 'l': + switch(s[9]) { + default: + break; + case 'g': + switch(s[10]) { + default: + break; + case '-': + switch(s[11]) { + default: + break; + case 'c': + if (strcmp("ode-point", s + 12) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_CODE_POINT; + break; + case 'h': + switch(s[12]) { + default: + break; + case 'a': + switch(s[13]) { + default: + break; + case 's': + switch(s[14]) { + default: + break; + case 'h': + switch(s[15]) { + default: + break; + case '-': + switch(s[16]) { + default: + break; + case 'n': + if (strcmp("ame", s + 17) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_HASH_NAME; + break; + case 'o': + if (strcmp("id", s + 17) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_HASH_OID; + } + } + } + } + } + break; + case 'i': + if (strcmp("ana-name", s + 12) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_IANA_NAME; + break; + case 'k': + switch(s[12]) { + default: + break; + case 'e': + switch(s[13]) { + default: + break; + case 'y': + switch(s[14]) { + default: + break; + case 't': + switch(s[15]) { + default: + break; + case 'y': + switch(s[16]) { + default: + break; + case 'p': + switch(s[17]) { + default: + break; + case 'e': + switch(s[18]) { + default: + break; + case '-': + if (strcmp("oid", s + 19) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_KEYTYPE_OID; + break; + case '\0': + return PIDX_CAPABILITY_TLS_SIGALG_KEYTYPE; + } + } + } + } + } + } + } + break; + case 'n': + if (strcmp("ame", s + 12) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_NAME; + break; + case 'o': + if (strcmp("id", s + 12) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_OID; + break; + case 's': + switch(s[12]) { + default: + break; + case 'e': + if (strcmp("c-bits", s + 13) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_SECURITY_BITS; + break; + case 'i': + switch(s[13]) { + default: + break; + case 'g': + switch(s[14]) { + default: + break; + case '-': + switch(s[15]) { + default: + break; + case 'n': + if (strcmp("ame", s + 16) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_SIG_NAME; + break; + case 'o': + if (strcmp("id", s + 16) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_SIG_OID; + } + } + } + } + } + } + } + } + } + } + } + break; + case 'v': + if (strcmp("ersion", s + 5) == 0) + return PIDX_CIPHER_PARAM_TLS_VERSION; + } + break; + case '1': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'p': + switch(s[6]) { + default: + break; + case 'r': + switch(s[7]) { + default: + break; + case 'f': + switch(s[8]) { + default: + break; + case '-': + switch(s[9]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 10) == 0) + return PIDX_PROV_PARAM_TLS1_PRF_DIGEST_CHECK; + break; + case 'e': + if (strcmp("ms-check", s + 10) == 0) + return PIDX_PROV_PARAM_TLS1_PRF_EMS_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 10) == 0) + return PIDX_PROV_PARAM_TLS1_PRF_KEY_CHECK; + } + } + } + } + } + break; + case '3': + switch(s[5]) { + default: + break; + case '-': + switch(s[6]) { + default: + break; + case 'k': + switch(s[7]) { + default: + break; + case 'd': + switch(s[8]) { + default: + break; + case 'f': + switch(s[9]) { + default: + break; + case '-': + switch(s[10]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 11) == 0) + return PIDX_PROV_PARAM_TLS13_KDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 11) == 0) + return PIDX_PROV_PARAM_TLS13_KDF_KEY_CHECK; + } + } + } + } + } + } + break; + case 'm': + switch(s[5]) { + default: + break; + case 'u': + switch(s[6]) { + default: + break; + case 'l': + switch(s[7]) { + default: + break; + case 't': + switch(s[8]) { + default: + break; + case 'i': + switch(s[9]) { + default: + break; + case '_': + switch(s[10]) { + default: + break; + case 'a': + switch(s[11]) { + default: + break; + case 'a': + switch(s[12]) { + default: + break; + case 'd': + switch(s[13]) { + default: + break; + case 'p': + if (strcmp("acklen", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD_PACKLEN; + break; + case '\0': + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD; + } + } + } + break; + case 'e': + switch(s[11]) { + default: + break; + case 'n': + switch(s[12]) { + default: + break; + case 'c': + switch(s[13]) { + default: + break; + case 'i': + if (strcmp("n", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_IN; + break; + case 'l': + if (strcmp("en", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_LEN; + break; + case '\0': + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC; + } + } + } + break; + case 'i': + if (strcmp("nterleave", s + 11) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_INTERLEAVE; + break; + case 'm': + switch(s[11]) { + default: + break; + case 'a': + switch(s[12]) { + default: + break; + case 'x': + switch(s[13]) { + default: + break; + case 'b': + if (strcmp("ufsz", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_BUFSIZE; + break; + case 's': + if (strcmp("ndfrag", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_SEND_FRAGMENT; + } + } + } + } + } + } + } + } + } + } + break; + case 'a': + switch(s[4]) { + default: + break; + case 'a': + switch(s[5]) { + default: + break; + case 'd': + switch(s[6]) { + default: + break; + case 'p': + if (strcmp("ad", s + 7) == 0) + return PIDX_CIPHER_PARAM_AEAD_TLS1_AAD_PAD; + break; + case '\0': + return PIDX_CIPHER_PARAM_AEAD_TLS1_AAD; + } + } + } + break; + case 'i': + switch(s[4]) { + default: + break; + case 'v': + switch(s[5]) { + default: + break; + case 'f': + if (strcmp("ixed", s + 6) == 0) + return PIDX_CIPHER_PARAM_AEAD_TLS1_IV_FIXED; + break; + case 'g': + if (strcmp("en", s + 6) == 0) + return PIDX_CIPHER_PARAM_AEAD_TLS1_GET_IV_GEN; + break; + case 'i': + if (strcmp("nv", s + 6) == 0) + return PIDX_CIPHER_PARAM_AEAD_TLS1_SET_IV_INV; + } + } + break; + case 't': + if (strcmp("ree", s + 4) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_TLSTREE; + } + } + break; + case 'p': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_TP_BASIS; + } + break; + case 'y': + if (strcmp("pe", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_TYPE; + } + break; + case 'u': + switch(s[1]) { + default: + break; + case 'k': + if (strcmp("m", s + 2) == 0) + return PIDX_KDF_PARAM_UKM; + break; + case 'p': + if (strcmp("dated-iv", s + 2) == 0) + return PIDX_CIPHER_PARAM_UPDATED_IV; + break; + case 's': + switch(s[2]) { + default: + break; + case 'e': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'b': + if (strcmp("its", s + 5) == 0) + return PIDX_CIPHER_PARAM_USE_BITS; + break; + case 'c': + if (strcmp("ofactor-flag", s + 5) == 0) + return PIDX_PKEY_PARAM_USE_COFACTOR_FLAG; + break; + case 'k': + if (strcmp("eybits", s + 5) == 0) + return PIDX_KDF_PARAM_X942_USE_KEYBITS; + break; + case 'l': + switch(s[5]) { + default: + break; + case '\0': + return PIDX_KDF_PARAM_KBKDF_USE_L; + } + break; + case 's': + if (strcmp("eparator", s + 5) == 0) + return PIDX_KDF_PARAM_KBKDF_USE_SEPARATOR; + } + break; + case '_': + switch(s[4]) { + default: + break; + case 'd': + if (strcmp("erivation_function", s + 5) == 0) + return PIDX_DRBG_PARAM_USE_DF; + break; + case 'e': + if (strcmp("tm", s + 5) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_USE_ETM; + } + } + } + } + break; + case 'v': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'l': + switch(s[3]) { + default: + break; + case 'i': + switch(s[4]) { + default: + break; + case 'd': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case 'e': + switch(s[8]) { + default: + break; + case '-': + switch(s[9]) { + default: + break; + case 'g': + switch(s[10]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_VALIDATE_G; + } + break; + case 'l': + if (strcmp("egacy", s + 10) == 0) + return PIDX_PKEY_PARAM_FFC_VALIDATE_LEGACY; + break; + case 'p': + if (strcmp("q", s + 10) == 0) + return PIDX_PKEY_PARAM_FFC_VALIDATE_PQ; + } + } + } + } + } + } + } + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'r': + switch(s[3]) { + default: + break; + case 'i': + if (strcmp("fy-message", s + 4) == 0) + return PIDX_SIGNATURE_PARAM_FIPS_VERIFY_MESSAGE; + break; + case 's': + if (strcmp("ion", s + 4) == 0) + return PIDX_PROV_PARAM_VERSION; + } + } + } + break; + case 'x': + switch(s[1]) { + default: + break; + case '9': + switch(s[2]) { + default: + break; + case '4': + if (strcmp("2kdf-key-check", s + 3) == 0) + return PIDX_PROV_PARAM_X942KDF_KEY_CHECK; + break; + case '6': + switch(s[3]) { + default: + break; + case '3': + switch(s[4]) { + default: + break; + case 'k': + switch(s[5]) { + default: + break; + case 'd': + switch(s[6]) { + default: + break; + case 'f': + switch(s[7]) { + default: + break; + case '-': + switch(s[8]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 9) == 0) + return PIDX_PROV_PARAM_X963KDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 9) == 0) + return PIDX_PROV_PARAM_X963KDF_KEY_CHECK; + } + } + } + } + } + } + } + break; + case 'c': + if (strcmp("ghash", s + 2) == 0) + return PIDX_KDF_PARAM_SSHKDF_XCGHASH; + break; + case 'o': + switch(s[2]) { + default: + break; + case 'f': + switch(s[3]) { + default: + break; + case 'l': + if (strcmp("en", s + 4) == 0) + return PIDX_DIGEST_PARAM_XOFLEN; + break; + case '\0': + return PIDX_MAC_PARAM_XOF; + } + } + break; + case 'p': + switch(s[2]) { + default: + break; + case '1': + switch(s[3]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XP1; + } + break; + case '2': + switch(s[3]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XP2; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XP; + } + break; + case 'q': + switch(s[2]) { + default: + break; + case '1': + switch(s[3]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XQ1; + } + break; + case '2': + switch(s[3]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XQ2; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XQ; + } + break; + case 't': + if (strcmp("s_standard", s + 2) == 0) + return PIDX_CIPHER_PARAM_XTS_STANDARD; + } + } + return -1; +} + +/* End of TRIE */ diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/asm/crypto/poly1305/poly1305-armv8.S b/deps/openssl/config/archs/darwin64-arm64-cc/asm/crypto/poly1305/poly1305-armv8.S index a044e14cb61f5f..03f80792036cbd 100644 --- a/deps/openssl/config/archs/darwin64-arm64-cc/asm/crypto/poly1305/poly1305-armv8.S +++ b/deps/openssl/config/archs/darwin64-arm64-cc/asm/crypto/poly1305/poly1305-armv8.S @@ -15,6 +15,7 @@ .align 5 _poly1305_init: + AARCH64_VALID_CALL_TARGET cmp x1,xzr stp xzr,xzr,[x0] // zero hash value stp xzr,xzr,[x0,#16] // [along with is_base2_26] @@ -39,10 +40,14 @@ _poly1305_init: tst w17,#ARMV7_NEON - adr x12,Lpoly1305_blocks - adr x7,Lpoly1305_blocks_neon - adr x13,Lpoly1305_emit - adr x8,Lpoly1305_emit_neon + adrp x12,_poly1305_blocks@PAGE + add x12,x12,Lpoly1305_blocks@PAGEOFF + adrp x7,poly1305_blocks_neon@PAGE + add x7,x7,Lpoly1305_blocks_neon@PAGEOFF + adrp x13,_poly1305_emit@PAGE + add x13,x13,Lpoly1305_emit@PAGEOFF + adrp x8,poly1305_emit_neon@PAGE + add x8,x8,Lpoly1305_emit_neon@PAGEOFF csel x12,x12,x7,eq csel x13,x13,x8,eq @@ -62,6 +67,9 @@ Lno_key: .align 5 _poly1305_blocks: Lpoly1305_blocks: + // The symbol .Lpoly1305_blocks is not a .globl symbol + // but a pointer to it is returned by poly1305_init + AARCH64_VALID_CALL_TARGET ands x2,x2,#-16 b.eq Lno_data @@ -127,6 +135,9 @@ Lno_data: .align 5 _poly1305_emit: Lpoly1305_emit: + // The symbol .poly1305_emit is not a .globl symbol + // but a pointer to it is returned by poly1305_init + AARCH64_VALID_CALL_TARGET ldp x4,x5,[x0] // load hash base 2^64 ldr x6,[x0,#16] ldp x10,x11,[x2] // load nonce @@ -222,13 +233,16 @@ poly1305_splat: .align 5 poly1305_blocks_neon: Lpoly1305_blocks_neon: + // The symbol .Lpoly1305_blocks_neon is not a .globl symbol + // but a pointer to it is returned by poly1305_init + AARCH64_VALID_CALL_TARGET ldr x17,[x0,#24] cmp x2,#128 b.hs Lblocks_neon cbz x17,Lpoly1305_blocks Lblocks_neon: -.long 0xd503233f // paciasp + AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-80]! add x29,sp,#0 @@ -363,7 +377,8 @@ Linit_neon: ldr x30,[sp,#8] add x16,x1,#32 - adr x17,Lzeros + adrp x17,Lzeros@PAGE + add x17,x17,Lzeros@PAGEOFF subs x2,x2,#64 csel x16,x17,x16,lo @@ -375,7 +390,8 @@ Linit_neon: .align 4 Leven_neon: add x16,x1,#32 - adr x17,Lzeros + adrp x17,Lzeros@PAGE + add x17,x17,Lzeros@PAGEOFF subs x2,x2,#64 csel x16,x17,x16,lo @@ -798,7 +814,7 @@ Lshort_tail: Lno_data_neon: ldr x29,[sp],#80 -.long 0xd50323bf // autiasp + AARCH64_VALIDATE_LINK_REGISTER ret @@ -806,6 +822,9 @@ Lno_data_neon: .align 5 poly1305_emit_neon: Lpoly1305_emit_neon: + // The symbol .Lpoly1305_emit_neon is not a .globl symbol + // but a pointer to it is returned by poly1305_init + AARCH64_VALID_CALL_TARGET ldr x17,[x0,#24] cbz x17,_poly1305_emit @@ -855,6 +874,8 @@ Lpoly1305_emit_neon: ret +.section __TEXT,__const + .align 5 Lzeros: .long 0,0,0,0,0,0,0,0 diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/asm/crypto/sha/keccak1600-armv8.S b/deps/openssl/config/archs/darwin64-arm64-cc/asm/crypto/sha/keccak1600-armv8.S index fcebbfeb90fd0d..3de3f4981d0179 100644 --- a/deps/openssl/config/archs/darwin64-arm64-cc/asm/crypto/sha/keccak1600-armv8.S +++ b/deps/openssl/config/archs/darwin64-arm64-cc/asm/crypto/sha/keccak1600-armv8.S @@ -1,4 +1,6 @@ -.text +#include "arm_arch.h" + +.section __TEXT,__const .align 8 // strategic alignment and padding that allows to use // address value as loop termination condition... @@ -30,11 +32,14 @@ iotas: .quad 0x0000000080000001 .quad 0x8000000080008008 +.text + .align 5 KeccakF1600_int: - adr x28,iotas -.long 0xd503233f // paciasp + AARCH64_SIGN_LINK_REGISTER + adrp x28,iotas@PAGE + add x28,x28,iotas@PAGEOFF stp x28,x30,[sp,#16] // 32 bytes on top are mine b Loop .align 4 @@ -198,14 +203,14 @@ Loop: bne Loop ldr x30,[sp,#24] -.long 0xd50323bf // autiasp + AARCH64_VALIDATE_LINK_REGISTER ret .align 5 KeccakF1600: -.long 0xd503233f // paciasp + AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-128]! add x29,sp,#0 stp x19,x20,[sp,#16] @@ -255,7 +260,7 @@ KeccakF1600: ldp x25,x26,[x29,#64] ldp x27,x28,[x29,#80] ldp x29,x30,[sp],#128 -.long 0xd50323bf // autiasp + AARCH64_VALIDATE_LINK_REGISTER ret @@ -263,7 +268,7 @@ KeccakF1600: .align 5 _SHA3_absorb: -.long 0xd503233f // paciasp + AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-128]! add x29,sp,#0 stp x19,x20,[sp,#16] @@ -497,14 +502,14 @@ Labsorbed: ldp x25,x26,[x29,#64] ldp x27,x28,[x29,#80] ldp x29,x30,[sp],#128 -.long 0xd50323bf // autiasp + AARCH64_VALIDATE_LINK_REGISTER ret .globl _SHA3_squeeze .align 5 _SHA3_squeeze: -.long 0xd503233f // paciasp + AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-48]! add x29,sp,#0 stp x19,x20,[sp,#16] @@ -514,6 +519,8 @@ _SHA3_squeeze: mov x20,x1 mov x21,x2 mov x22,x3 + cmp w4, #0 // w4 = 'next' argument + bne Lnext_block Loop_squeeze: ldr x4,[x0],#8 @@ -528,7 +535,7 @@ Loop_squeeze: subs x3,x3,#8 bhi Loop_squeeze - +Lnext_block: mov x0,x19 bl KeccakF1600 mov x0,x19 @@ -567,14 +574,15 @@ Lsqueeze_done: ldp x19,x20,[sp,#16] ldp x21,x22,[sp,#32] ldp x29,x30,[sp],#48 -.long 0xd50323bf // autiasp + AARCH64_VALIDATE_LINK_REGISTER ret .align 5 KeccakF1600_ce: mov x9,#24 - adr x10,iotas + adrp x10,iotas@PAGE + add x10,x10,iotas@PAGEOFF b Loop_ce .align 4 Loop_ce: @@ -675,7 +683,7 @@ Loop_ce: .align 5 KeccakF1600_cext: -.long 0xd503233f // paciasp + AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-80]! add x29,sp,#0 stp d8,d9,[sp,#16] // per ABI requirement @@ -716,14 +724,14 @@ KeccakF1600_cext: ldp d12,d13,[sp,#48] ldp d14,d15,[sp,#64] ldr x29,[sp],#80 -.long 0xd50323bf // autiasp + AARCH64_VALIDATE_LINK_REGISTER ret .globl _SHA3_absorb_cext .align 5 _SHA3_absorb_cext: -.long 0xd503233f // paciasp + AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-80]! add x29,sp,#0 stp d8,d9,[sp,#16] // per ABI requirement @@ -939,14 +947,14 @@ Labsorbed_ce: ldp d12,d13,[sp,#48] ldp d14,d15,[sp,#64] ldp x29,x30,[sp],#80 -.long 0xd50323bf // autiasp + AARCH64_VALIDATE_LINK_REGISTER ret .globl _SHA3_squeeze_cext .align 5 _SHA3_squeeze_cext: -.long 0xd503233f // paciasp + AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-16]! add x29,sp,#0 mov x9,x0 @@ -1002,7 +1010,7 @@ Lsqueeze_tail_ce: Lsqueeze_done_ce: ldr x29,[sp],#16 -.long 0xd50323bf // autiasp + AARCH64_VALIDATE_LINK_REGISTER ret .byte 75,101,99,99,97,107,45,49,54,48,48,32,97,98,115,111,114,98,32,97,110,100,32,115,113,117,101,101,122,101,32,102,111,114,32,65,82,77,118,56,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/asm/crypto/sha/sha1-armv8.S b/deps/openssl/config/archs/darwin64-arm64-cc/asm/crypto/sha/sha1-armv8.S index 1d453b608a04b4..a6891a4feaecd4 100644 --- a/deps/openssl/config/archs/darwin64-arm64-cc/asm/crypto/sha/sha1-armv8.S +++ b/deps/openssl/config/archs/darwin64-arm64-cc/asm/crypto/sha/sha1-armv8.S @@ -1,5 +1,5 @@ +#include "arm_arch.h" #ifndef __KERNEL__ -# include "arm_arch.h" .private_extern _OPENSSL_armcap_P #endif @@ -10,11 +10,13 @@ .align 6 _sha1_block_data_order: + AARCH64_VALID_CALL_TARGET adrp x16,_OPENSSL_armcap_P@PAGE ldr w16,[x16,_OPENSSL_armcap_P@PAGEOFF] tst w16,#ARMV8_SHA1 b.ne Lv8_entry + // Armv8.3-A PAuth: even though x30 is pushed to stack it is not popped later. stp x29,x30,[sp,#-96]! add x29,sp,#0 stp x19,x20,[sp,#16] @@ -1074,10 +1076,12 @@ Loop: .align 6 sha1_block_armv8: Lv8_entry: + // Armv8.3-A PAuth: even though x30 is pushed to stack it is not popped later. stp x29,x30,[sp,#-16]! add x29,sp,#0 - adr x4,Lconst + adrp x4,Lconst@PAGE + add x4,x4,Lconst@PAGEOFF eor v1.16b,v1.16b,v1.16b ld1 {v0.4s},[x0],#16 ld1 {v1.s}[0],[x0] @@ -1200,6 +1204,9 @@ Loop_hw: ldr x29,[sp],#16 ret + +.section __TEXT,__const + .align 6 Lconst: .long 0x5a827999,0x5a827999,0x5a827999,0x5a827999 //K_00_19 diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/asm/crypto/sha/sha256-armv8.S b/deps/openssl/config/archs/darwin64-arm64-cc/asm/crypto/sha/sha256-armv8.S index 908ea9870c9018..2fefe9b219033c 100644 --- a/deps/openssl/config/archs/darwin64-arm64-cc/asm/crypto/sha/sha256-armv8.S +++ b/deps/openssl/config/archs/darwin64-arm64-cc/asm/crypto/sha/sha256-armv8.S @@ -1,4 +1,4 @@ -// Copyright 2014-2020 The OpenSSL Project Authors. All Rights Reserved. +// Copyright 2014-2025 The OpenSSL Project Authors. All Rights Reserved. // // Licensed under the Apache License 2.0 (the "License"). You may not use // this file except in compliance with the License. You can obtain a copy @@ -55,8 +55,8 @@ // $output is the last argument if it looks like a file (it has an extension) // $flavour is the first argument if it doesn't look like a file +#include "arm_arch.h" #ifndef __KERNEL__ -# include "arm_arch.h" .private_extern _OPENSSL_armcap_P #endif @@ -67,6 +67,7 @@ .align 6 _sha256_block_data_order: + AARCH64_VALID_CALL_TARGET #ifndef __KERNEL__ adrp x16,_OPENSSL_armcap_P@PAGE ldr w16,[x16,_OPENSSL_armcap_P@PAGEOFF] @@ -75,7 +76,7 @@ _sha256_block_data_order: tst w16,#ARMV7_NEON b.ne Lneon_entry #endif -.long 0xd503233f // paciasp + AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-128]! add x29,sp,#0 @@ -91,7 +92,8 @@ _sha256_block_data_order: ldp w24,w25,[x0,#4*4] add x2,x1,x2,lsl#6 // end of input ldp w26,w27,[x0,#6*4] - adr x30,LK256 + adrp x30,LK256@PAGE + add x30,x30,LK256@PAGEOFF stp x0,x2,[x29,#96] Loop: @@ -1035,10 +1037,12 @@ Loop_16_xx: ldp x25,x26,[x29,#64] ldp x27,x28,[x29,#80] ldp x29,x30,[sp],#128 -.long 0xd50323bf // autiasp + AARCH64_VALIDATE_LINK_REGISTER ret +.section __TEXT,__const + .align 6 LK256: @@ -1063,16 +1067,20 @@ LK256: .byte 83,72,65,50,53,54,32,98,108,111,99,107,32,116,114,97,110,115,102,111,114,109,32,102,111,114,32,65,82,77,118,56,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 .align 2 .align 2 + +.text #ifndef __KERNEL__ .align 6 sha256_block_armv8: Lv8_entry: + // Armv8.3-A PAuth: even though x30 is pushed to stack it is not popped later. stp x29,x30,[sp,#-16]! add x29,sp,#0 ld1 {v0.4s,v1.4s},[x0] - adr x3,LK256 + adrp x3,LK256@PAGE + add x3,x3,LK256@PAGEOFF Loop_hw: ld1 {v4.16b,v5.16b,v6.16b,v7.16b},[x1],#64 @@ -1209,12 +1217,15 @@ Loop_hw: .align 4 _sha256_block_neon: + AARCH64_VALID_CALL_TARGET Lneon_entry: + // Armv8.3-A PAuth: even though x30 is pushed to stack it is not popped later stp x29, x30, [sp, #-16]! mov x29, sp sub sp,sp,#16*4 - adr x16,LK256 + adrp x16,LK256@PAGE + add x16,x16,LK256@PAGEOFF add x2,x1,x2,lsl#6 // len to point at the end of inp ld1 {v0.16b},[x1], #16 diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/asm/crypto/sha/sha512-armv8.S b/deps/openssl/config/archs/darwin64-arm64-cc/asm/crypto/sha/sha512-armv8.S index c36c40bb09f80d..6ad30a825a69b6 100644 --- a/deps/openssl/config/archs/darwin64-arm64-cc/asm/crypto/sha/sha512-armv8.S +++ b/deps/openssl/config/archs/darwin64-arm64-cc/asm/crypto/sha/sha512-armv8.S @@ -1,4 +1,4 @@ -// Copyright 2014-2020 The OpenSSL Project Authors. All Rights Reserved. +// Copyright 2014-2025 The OpenSSL Project Authors. All Rights Reserved. // // Licensed under the Apache License 2.0 (the "License"). You may not use // this file except in compliance with the License. You can obtain a copy @@ -55,8 +55,8 @@ // $output is the last argument if it looks like a file (it has an extension) // $flavour is the first argument if it doesn't look like a file +#include "arm_arch.h" #ifndef __KERNEL__ -# include "arm_arch.h" .private_extern _OPENSSL_armcap_P #endif @@ -67,13 +67,14 @@ .align 6 _sha512_block_data_order: + AARCH64_VALID_CALL_TARGET #ifndef __KERNEL__ adrp x16,_OPENSSL_armcap_P@PAGE ldr w16,[x16,_OPENSSL_armcap_P@PAGEOFF] tst w16,#ARMV8_SHA512 b.ne Lv8_entry #endif -.long 0xd503233f // paciasp + AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-128]! add x29,sp,#0 @@ -89,7 +90,8 @@ _sha512_block_data_order: ldp x24,x25,[x0,#4*8] add x2,x1,x2,lsl#7 // end of input ldp x26,x27,[x0,#6*8] - adr x30,LK512 + adrp x30,LK512@PAGE + add x30,x30,LK512@PAGEOFF stp x0,x2,[x29,#96] Loop: @@ -1033,10 +1035,12 @@ Loop_16_xx: ldp x25,x26,[x29,#64] ldp x27,x28,[x29,#80] ldp x29,x30,[sp],#128 -.long 0xd50323bf // autiasp + AARCH64_VALIDATE_LINK_REGISTER ret +.section __TEXT,__const + .align 6 LK512: @@ -1085,11 +1089,14 @@ LK512: .byte 83,72,65,53,49,50,32,98,108,111,99,107,32,116,114,97,110,115,102,111,114,109,32,102,111,114,32,65,82,77,118,56,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 .align 2 .align 2 + +.text #ifndef __KERNEL__ .align 6 sha512_block_armv8: Lv8_entry: + // Armv8.3-A PAuth: even though x30 is pushed to stack it is not popped later stp x29,x30,[sp,#-16]! add x29,sp,#0 @@ -1097,7 +1104,8 @@ Lv8_entry: ld1 {v20.16b,v21.16b,v22.16b,v23.16b},[x1],#64 ld1 {v0.2d,v1.2d,v2.2d,v3.2d},[x0] // load context - adr x3,LK512 + adrp x3,LK512@PAGE + add x3,x3,LK512@PAGEOFF rev64 v16.16b,v16.16b rev64 v17.16b,v17.16b diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/asm/crypto/sm3/sm3-armv8.S b/deps/openssl/config/archs/darwin64-arm64-cc/asm/crypto/sm3/sm3-armv8.S new file mode 100644 index 00000000000000..a9dd4c66ae9aa7 --- /dev/null +++ b/deps/openssl/config/archs/darwin64-arm64-cc/asm/crypto/sm3/sm3-armv8.S @@ -0,0 +1,505 @@ +// Copyright 2021-2025 The OpenSSL Project Authors. All Rights Reserved. +// +// Licensed under the Apache License 2.0 (the "License"). You may not use +// this file except in compliance with the License. You can obtain a copy +// in the file LICENSE in the source distribution or at +// https://www.openssl.org/source/license.html +// +// This module implements support for Armv8 SM3 instructions + +// $output is the last argument if it looks like a file (it has an extension) +// $flavour is the first argument if it doesn't look like a file +#include "arm_arch.h" +.text +.globl _ossl_hwsm3_block_data_order + +.align 5 +_ossl_hwsm3_block_data_order: + AARCH64_VALID_CALL_TARGET + // load state + ld1 {v5.4s,v6.4s}, [x0] + rev64 v5.4s, v5.4s + rev64 v6.4s, v6.4s + ext v5.16b, v5.16b, v5.16b, #8 + ext v6.16b, v6.16b, v6.16b, #8 + adr x8, .Tj + ldp s16, s17, [x8] + +Loop: + // load input + ld1 {v0.4s,v1.4s,v2.4s,v3.4s}, [x1], #64 + sub w2, w2, #1 + + mov v18.16b, v5.16b + mov v19.16b, v6.16b + +#ifndef __AARCH64EB__ + rev32 v0.16b, v0.16b + rev32 v1.16b, v1.16b + rev32 v2.16b, v2.16b + rev32 v3.16b, v3.16b +#endif + + ext v20.16b, v16.16b, v16.16b, #4 + // s4 = w7 | w8 | w9 | w10 + ext v4.16b, v1.16b, v2.16b, #12 + // vtmp1 = w3 | w4 | w5 | w6 + ext v22.16b, v0.16b, v1.16b, #12 + // vtmp2 = w10 | w11 | w12 | w13 + ext v23.16b, v2.16b, v3.16b, #8 +.long 0xce63c004 //sm3partw1 v4.4s, v0.4s, v3.4s +.long 0xce76c6e4 //sm3partw2 v4.4s, v23.4s, v22.4s + eor v22.16b, v0.16b, v1.16b +.long 0xce5418b7 //sm3ss1 v23.4s, v5.4s, v20.4s, v6.4s + shl v21.4s, v20.4s, #1 + sri v21.4s, v20.4s, #31 +.long 0xce5682e5 //sm3tt1a v5.4s, v23.4s, v22.4s[0] +.long 0xce408ae6 //sm3tt2a v6.4s, v23.4s, v0.4s[0] +.long 0xce5518b7 //sm3ss1 v23.4s, v5.4s, v21.4s, v6.4s + shl v20.4s, v21.4s, #1 + sri v20.4s, v21.4s, #31 +.long 0xce5692e5 //sm3tt1a v5.4s, v23.4s, v22.4s[1] +.long 0xce409ae6 //sm3tt2a v6.4s, v23.4s, v0.4s[1] +.long 0xce5418b7 //sm3ss1 v23.4s, v5.4s, v20.4s, v6.4s + shl v21.4s, v20.4s, #1 + sri v21.4s, v20.4s, #31 +.long 0xce56a2e5 //sm3tt1a v5.4s, v23.4s, v22.4s[2] +.long 0xce40aae6 //sm3tt2a v6.4s, v23.4s, v0.4s[2] +.long 0xce5518b7 //sm3ss1 v23.4s, v5.4s, v21.4s, v6.4s + shl v20.4s, v21.4s, #1 + sri v20.4s, v21.4s, #31 +.long 0xce56b2e5 //sm3tt1a v5.4s, v23.4s, v22.4s[3] +.long 0xce40bae6 //sm3tt2a v6.4s, v23.4s, v0.4s[3] + // s4 = w7 | w8 | w9 | w10 + ext v0.16b, v2.16b, v3.16b, #12 + // vtmp1 = w3 | w4 | w5 | w6 + ext v22.16b, v1.16b, v2.16b, #12 + // vtmp2 = w10 | w11 | w12 | w13 + ext v23.16b, v3.16b, v4.16b, #8 +.long 0xce64c020 //sm3partw1 v0.4s, v1.4s, v4.4s +.long 0xce76c6e0 //sm3partw2 v0.4s, v23.4s, v22.4s + eor v22.16b, v1.16b, v2.16b +.long 0xce5418b7 //sm3ss1 v23.4s, v5.4s, v20.4s, v6.4s + shl v21.4s, v20.4s, #1 + sri v21.4s, v20.4s, #31 +.long 0xce5682e5 //sm3tt1a v5.4s, v23.4s, v22.4s[0] +.long 0xce418ae6 //sm3tt2a v6.4s, v23.4s, v1.4s[0] +.long 0xce5518b7 //sm3ss1 v23.4s, v5.4s, v21.4s, v6.4s + shl v20.4s, v21.4s, #1 + sri v20.4s, v21.4s, #31 +.long 0xce5692e5 //sm3tt1a v5.4s, v23.4s, v22.4s[1] +.long 0xce419ae6 //sm3tt2a v6.4s, v23.4s, v1.4s[1] +.long 0xce5418b7 //sm3ss1 v23.4s, v5.4s, v20.4s, v6.4s + shl v21.4s, v20.4s, #1 + sri v21.4s, v20.4s, #31 +.long 0xce56a2e5 //sm3tt1a v5.4s, v23.4s, v22.4s[2] +.long 0xce41aae6 //sm3tt2a v6.4s, v23.4s, v1.4s[2] +.long 0xce5518b7 //sm3ss1 v23.4s, v5.4s, v21.4s, v6.4s + shl v20.4s, v21.4s, #1 + sri v20.4s, v21.4s, #31 +.long 0xce56b2e5 //sm3tt1a v5.4s, v23.4s, v22.4s[3] +.long 0xce41bae6 //sm3tt2a v6.4s, v23.4s, v1.4s[3] + // s4 = w7 | w8 | w9 | w10 + ext v1.16b, v3.16b, v4.16b, #12 + // vtmp1 = w3 | w4 | w5 | w6 + ext v22.16b, v2.16b, v3.16b, #12 + // vtmp2 = w10 | w11 | w12 | w13 + ext v23.16b, v4.16b, v0.16b, #8 +.long 0xce60c041 //sm3partw1 v1.4s, v2.4s, v0.4s +.long 0xce76c6e1 //sm3partw2 v1.4s, v23.4s, v22.4s + eor v22.16b, v2.16b, v3.16b +.long 0xce5418b7 //sm3ss1 v23.4s, v5.4s, v20.4s, v6.4s + shl v21.4s, v20.4s, #1 + sri v21.4s, v20.4s, #31 +.long 0xce5682e5 //sm3tt1a v5.4s, v23.4s, v22.4s[0] +.long 0xce428ae6 //sm3tt2a v6.4s, v23.4s, v2.4s[0] +.long 0xce5518b7 //sm3ss1 v23.4s, v5.4s, v21.4s, v6.4s + shl v20.4s, v21.4s, #1 + sri v20.4s, v21.4s, #31 +.long 0xce5692e5 //sm3tt1a v5.4s, v23.4s, v22.4s[1] +.long 0xce429ae6 //sm3tt2a v6.4s, v23.4s, v2.4s[1] +.long 0xce5418b7 //sm3ss1 v23.4s, v5.4s, v20.4s, v6.4s + shl v21.4s, v20.4s, #1 + sri v21.4s, v20.4s, #31 +.long 0xce56a2e5 //sm3tt1a v5.4s, v23.4s, v22.4s[2] +.long 0xce42aae6 //sm3tt2a v6.4s, v23.4s, v2.4s[2] +.long 0xce5518b7 //sm3ss1 v23.4s, v5.4s, v21.4s, v6.4s + shl v20.4s, v21.4s, #1 + sri v20.4s, v21.4s, #31 +.long 0xce56b2e5 //sm3tt1a v5.4s, v23.4s, v22.4s[3] +.long 0xce42bae6 //sm3tt2a v6.4s, v23.4s, v2.4s[3] + // s4 = w7 | w8 | w9 | w10 + ext v2.16b, v4.16b, v0.16b, #12 + // vtmp1 = w3 | w4 | w5 | w6 + ext v22.16b, v3.16b, v4.16b, #12 + // vtmp2 = w10 | w11 | w12 | w13 + ext v23.16b, v0.16b, v1.16b, #8 +.long 0xce61c062 //sm3partw1 v2.4s, v3.4s, v1.4s +.long 0xce76c6e2 //sm3partw2 v2.4s, v23.4s, v22.4s + eor v22.16b, v3.16b, v4.16b +.long 0xce5418b7 //sm3ss1 v23.4s, v5.4s, v20.4s, v6.4s + shl v21.4s, v20.4s, #1 + sri v21.4s, v20.4s, #31 +.long 0xce5682e5 //sm3tt1a v5.4s, v23.4s, v22.4s[0] +.long 0xce438ae6 //sm3tt2a v6.4s, v23.4s, v3.4s[0] +.long 0xce5518b7 //sm3ss1 v23.4s, v5.4s, v21.4s, v6.4s + shl v20.4s, v21.4s, #1 + sri v20.4s, v21.4s, #31 +.long 0xce5692e5 //sm3tt1a v5.4s, v23.4s, v22.4s[1] +.long 0xce439ae6 //sm3tt2a v6.4s, v23.4s, v3.4s[1] +.long 0xce5418b7 //sm3ss1 v23.4s, v5.4s, v20.4s, v6.4s + shl v21.4s, v20.4s, #1 + sri v21.4s, v20.4s, #31 +.long 0xce56a2e5 //sm3tt1a v5.4s, v23.4s, v22.4s[2] +.long 0xce43aae6 //sm3tt2a v6.4s, v23.4s, v3.4s[2] +.long 0xce5518b7 //sm3ss1 v23.4s, v5.4s, v21.4s, v6.4s + shl v20.4s, v21.4s, #1 + sri v20.4s, v21.4s, #31 +.long 0xce56b2e5 //sm3tt1a v5.4s, v23.4s, v22.4s[3] +.long 0xce43bae6 //sm3tt2a v6.4s, v23.4s, v3.4s[3] + ext v20.16b, v17.16b, v17.16b, #4 + // s4 = w7 | w8 | w9 | w10 + ext v3.16b, v0.16b, v1.16b, #12 + // vtmp1 = w3 | w4 | w5 | w6 + ext v22.16b, v4.16b, v0.16b, #12 + // vtmp2 = w10 | w11 | w12 | w13 + ext v23.16b, v1.16b, v2.16b, #8 +.long 0xce62c083 //sm3partw1 v3.4s, v4.4s, v2.4s +.long 0xce76c6e3 //sm3partw2 v3.4s, v23.4s, v22.4s + eor v22.16b, v4.16b, v0.16b +.long 0xce5418b7 //sm3ss1 v23.4s, v5.4s, v20.4s, v6.4s + shl v21.4s, v20.4s, #1 + sri v21.4s, v20.4s, #31 +.long 0xce5686e5 //sm3tt1b v5.4s, v23.4s, v22.4s[0] +.long 0xce448ee6 //sm3tt2b v6.4s, v23.4s, v4.4s[0] +.long 0xce5518b7 //sm3ss1 v23.4s, v5.4s, v21.4s, v6.4s + shl v20.4s, v21.4s, #1 + sri v20.4s, v21.4s, #31 +.long 0xce5696e5 //sm3tt1b v5.4s, v23.4s, v22.4s[1] +.long 0xce449ee6 //sm3tt2b v6.4s, v23.4s, v4.4s[1] +.long 0xce5418b7 //sm3ss1 v23.4s, v5.4s, v20.4s, v6.4s + shl v21.4s, v20.4s, #1 + sri v21.4s, v20.4s, #31 +.long 0xce56a6e5 //sm3tt1b v5.4s, v23.4s, v22.4s[2] +.long 0xce44aee6 //sm3tt2b v6.4s, v23.4s, v4.4s[2] +.long 0xce5518b7 //sm3ss1 v23.4s, v5.4s, v21.4s, v6.4s + shl v20.4s, v21.4s, #1 + sri v20.4s, v21.4s, #31 +.long 0xce56b6e5 //sm3tt1b v5.4s, v23.4s, v22.4s[3] +.long 0xce44bee6 //sm3tt2b v6.4s, v23.4s, v4.4s[3] + // s4 = w7 | w8 | w9 | w10 + ext v4.16b, v1.16b, v2.16b, #12 + // vtmp1 = w3 | w4 | w5 | w6 + ext v22.16b, v0.16b, v1.16b, #12 + // vtmp2 = w10 | w11 | w12 | w13 + ext v23.16b, v2.16b, v3.16b, #8 +.long 0xce63c004 //sm3partw1 v4.4s, v0.4s, v3.4s +.long 0xce76c6e4 //sm3partw2 v4.4s, v23.4s, v22.4s + eor v22.16b, v0.16b, v1.16b +.long 0xce5418b7 //sm3ss1 v23.4s, v5.4s, v20.4s, v6.4s + shl v21.4s, v20.4s, #1 + sri v21.4s, v20.4s, #31 +.long 0xce5686e5 //sm3tt1b v5.4s, v23.4s, v22.4s[0] +.long 0xce408ee6 //sm3tt2b v6.4s, v23.4s, v0.4s[0] +.long 0xce5518b7 //sm3ss1 v23.4s, v5.4s, v21.4s, v6.4s + shl v20.4s, v21.4s, #1 + sri v20.4s, v21.4s, #31 +.long 0xce5696e5 //sm3tt1b v5.4s, v23.4s, v22.4s[1] +.long 0xce409ee6 //sm3tt2b v6.4s, v23.4s, v0.4s[1] +.long 0xce5418b7 //sm3ss1 v23.4s, v5.4s, v20.4s, v6.4s + shl v21.4s, v20.4s, #1 + sri v21.4s, v20.4s, #31 +.long 0xce56a6e5 //sm3tt1b v5.4s, v23.4s, v22.4s[2] +.long 0xce40aee6 //sm3tt2b v6.4s, v23.4s, v0.4s[2] +.long 0xce5518b7 //sm3ss1 v23.4s, v5.4s, v21.4s, v6.4s + shl v20.4s, v21.4s, #1 + sri v20.4s, v21.4s, #31 +.long 0xce56b6e5 //sm3tt1b v5.4s, v23.4s, v22.4s[3] +.long 0xce40bee6 //sm3tt2b v6.4s, v23.4s, v0.4s[3] + // s4 = w7 | w8 | w9 | w10 + ext v0.16b, v2.16b, v3.16b, #12 + // vtmp1 = w3 | w4 | w5 | w6 + ext v22.16b, v1.16b, v2.16b, #12 + // vtmp2 = w10 | w11 | w12 | w13 + ext v23.16b, v3.16b, v4.16b, #8 +.long 0xce64c020 //sm3partw1 v0.4s, v1.4s, v4.4s +.long 0xce76c6e0 //sm3partw2 v0.4s, v23.4s, v22.4s + eor v22.16b, v1.16b, v2.16b +.long 0xce5418b7 //sm3ss1 v23.4s, v5.4s, v20.4s, v6.4s + shl v21.4s, v20.4s, #1 + sri v21.4s, v20.4s, #31 +.long 0xce5686e5 //sm3tt1b v5.4s, v23.4s, v22.4s[0] +.long 0xce418ee6 //sm3tt2b v6.4s, v23.4s, v1.4s[0] +.long 0xce5518b7 //sm3ss1 v23.4s, v5.4s, v21.4s, v6.4s + shl v20.4s, v21.4s, #1 + sri v20.4s, v21.4s, #31 +.long 0xce5696e5 //sm3tt1b v5.4s, v23.4s, v22.4s[1] +.long 0xce419ee6 //sm3tt2b v6.4s, v23.4s, v1.4s[1] +.long 0xce5418b7 //sm3ss1 v23.4s, v5.4s, v20.4s, v6.4s + shl v21.4s, v20.4s, #1 + sri v21.4s, v20.4s, #31 +.long 0xce56a6e5 //sm3tt1b v5.4s, v23.4s, v22.4s[2] +.long 0xce41aee6 //sm3tt2b v6.4s, v23.4s, v1.4s[2] +.long 0xce5518b7 //sm3ss1 v23.4s, v5.4s, v21.4s, v6.4s + shl v20.4s, v21.4s, #1 + sri v20.4s, v21.4s, #31 +.long 0xce56b6e5 //sm3tt1b v5.4s, v23.4s, v22.4s[3] +.long 0xce41bee6 //sm3tt2b v6.4s, v23.4s, v1.4s[3] + // s4 = w7 | w8 | w9 | w10 + ext v1.16b, v3.16b, v4.16b, #12 + // vtmp1 = w3 | w4 | w5 | w6 + ext v22.16b, v2.16b, v3.16b, #12 + // vtmp2 = w10 | w11 | w12 | w13 + ext v23.16b, v4.16b, v0.16b, #8 +.long 0xce60c041 //sm3partw1 v1.4s, v2.4s, v0.4s +.long 0xce76c6e1 //sm3partw2 v1.4s, v23.4s, v22.4s + eor v22.16b, v2.16b, v3.16b +.long 0xce5418b7 //sm3ss1 v23.4s, v5.4s, v20.4s, v6.4s + shl v21.4s, v20.4s, #1 + sri v21.4s, v20.4s, #31 +.long 0xce5686e5 //sm3tt1b v5.4s, v23.4s, v22.4s[0] +.long 0xce428ee6 //sm3tt2b v6.4s, v23.4s, v2.4s[0] +.long 0xce5518b7 //sm3ss1 v23.4s, v5.4s, v21.4s, v6.4s + shl v20.4s, v21.4s, #1 + sri v20.4s, v21.4s, #31 +.long 0xce5696e5 //sm3tt1b v5.4s, v23.4s, v22.4s[1] +.long 0xce429ee6 //sm3tt2b v6.4s, v23.4s, v2.4s[1] +.long 0xce5418b7 //sm3ss1 v23.4s, v5.4s, v20.4s, v6.4s + shl v21.4s, v20.4s, #1 + sri v21.4s, v20.4s, #31 +.long 0xce56a6e5 //sm3tt1b v5.4s, v23.4s, v22.4s[2] +.long 0xce42aee6 //sm3tt2b v6.4s, v23.4s, v2.4s[2] +.long 0xce5518b7 //sm3ss1 v23.4s, v5.4s, v21.4s, v6.4s + shl v20.4s, v21.4s, #1 + sri v20.4s, v21.4s, #31 +.long 0xce56b6e5 //sm3tt1b v5.4s, v23.4s, v22.4s[3] +.long 0xce42bee6 //sm3tt2b v6.4s, v23.4s, v2.4s[3] + // s4 = w7 | w8 | w9 | w10 + ext v2.16b, v4.16b, v0.16b, #12 + // vtmp1 = w3 | w4 | w5 | w6 + ext v22.16b, v3.16b, v4.16b, #12 + // vtmp2 = w10 | w11 | w12 | w13 + ext v23.16b, v0.16b, v1.16b, #8 +.long 0xce61c062 //sm3partw1 v2.4s, v3.4s, v1.4s +.long 0xce76c6e2 //sm3partw2 v2.4s, v23.4s, v22.4s + eor v22.16b, v3.16b, v4.16b +.long 0xce5418b7 //sm3ss1 v23.4s, v5.4s, v20.4s, v6.4s + shl v21.4s, v20.4s, #1 + sri v21.4s, v20.4s, #31 +.long 0xce5686e5 //sm3tt1b v5.4s, v23.4s, v22.4s[0] +.long 0xce438ee6 //sm3tt2b v6.4s, v23.4s, v3.4s[0] +.long 0xce5518b7 //sm3ss1 v23.4s, v5.4s, v21.4s, v6.4s + shl v20.4s, v21.4s, #1 + sri v20.4s, v21.4s, #31 +.long 0xce5696e5 //sm3tt1b v5.4s, v23.4s, v22.4s[1] +.long 0xce439ee6 //sm3tt2b v6.4s, v23.4s, v3.4s[1] +.long 0xce5418b7 //sm3ss1 v23.4s, v5.4s, v20.4s, v6.4s + shl v21.4s, v20.4s, #1 + sri v21.4s, v20.4s, #31 +.long 0xce56a6e5 //sm3tt1b v5.4s, v23.4s, v22.4s[2] +.long 0xce43aee6 //sm3tt2b v6.4s, v23.4s, v3.4s[2] +.long 0xce5518b7 //sm3ss1 v23.4s, v5.4s, v21.4s, v6.4s + shl v20.4s, v21.4s, #1 + sri v20.4s, v21.4s, #31 +.long 0xce56b6e5 //sm3tt1b v5.4s, v23.4s, v22.4s[3] +.long 0xce43bee6 //sm3tt2b v6.4s, v23.4s, v3.4s[3] + // s4 = w7 | w8 | w9 | w10 + ext v3.16b, v0.16b, v1.16b, #12 + // vtmp1 = w3 | w4 | w5 | w6 + ext v22.16b, v4.16b, v0.16b, #12 + // vtmp2 = w10 | w11 | w12 | w13 + ext v23.16b, v1.16b, v2.16b, #8 +.long 0xce62c083 //sm3partw1 v3.4s, v4.4s, v2.4s +.long 0xce76c6e3 //sm3partw2 v3.4s, v23.4s, v22.4s + eor v22.16b, v4.16b, v0.16b +.long 0xce5418b7 //sm3ss1 v23.4s, v5.4s, v20.4s, v6.4s + shl v21.4s, v20.4s, #1 + sri v21.4s, v20.4s, #31 +.long 0xce5686e5 //sm3tt1b v5.4s, v23.4s, v22.4s[0] +.long 0xce448ee6 //sm3tt2b v6.4s, v23.4s, v4.4s[0] +.long 0xce5518b7 //sm3ss1 v23.4s, v5.4s, v21.4s, v6.4s + shl v20.4s, v21.4s, #1 + sri v20.4s, v21.4s, #31 +.long 0xce5696e5 //sm3tt1b v5.4s, v23.4s, v22.4s[1] +.long 0xce449ee6 //sm3tt2b v6.4s, v23.4s, v4.4s[1] +.long 0xce5418b7 //sm3ss1 v23.4s, v5.4s, v20.4s, v6.4s + shl v21.4s, v20.4s, #1 + sri v21.4s, v20.4s, #31 +.long 0xce56a6e5 //sm3tt1b v5.4s, v23.4s, v22.4s[2] +.long 0xce44aee6 //sm3tt2b v6.4s, v23.4s, v4.4s[2] +.long 0xce5518b7 //sm3ss1 v23.4s, v5.4s, v21.4s, v6.4s + shl v20.4s, v21.4s, #1 + sri v20.4s, v21.4s, #31 +.long 0xce56b6e5 //sm3tt1b v5.4s, v23.4s, v22.4s[3] +.long 0xce44bee6 //sm3tt2b v6.4s, v23.4s, v4.4s[3] + // s4 = w7 | w8 | w9 | w10 + ext v4.16b, v1.16b, v2.16b, #12 + // vtmp1 = w3 | w4 | w5 | w6 + ext v22.16b, v0.16b, v1.16b, #12 + // vtmp2 = w10 | w11 | w12 | w13 + ext v23.16b, v2.16b, v3.16b, #8 +.long 0xce63c004 //sm3partw1 v4.4s, v0.4s, v3.4s +.long 0xce76c6e4 //sm3partw2 v4.4s, v23.4s, v22.4s + eor v22.16b, v0.16b, v1.16b +.long 0xce5418b7 //sm3ss1 v23.4s, v5.4s, v20.4s, v6.4s + shl v21.4s, v20.4s, #1 + sri v21.4s, v20.4s, #31 +.long 0xce5686e5 //sm3tt1b v5.4s, v23.4s, v22.4s[0] +.long 0xce408ee6 //sm3tt2b v6.4s, v23.4s, v0.4s[0] +.long 0xce5518b7 //sm3ss1 v23.4s, v5.4s, v21.4s, v6.4s + shl v20.4s, v21.4s, #1 + sri v20.4s, v21.4s, #31 +.long 0xce5696e5 //sm3tt1b v5.4s, v23.4s, v22.4s[1] +.long 0xce409ee6 //sm3tt2b v6.4s, v23.4s, v0.4s[1] +.long 0xce5418b7 //sm3ss1 v23.4s, v5.4s, v20.4s, v6.4s + shl v21.4s, v20.4s, #1 + sri v21.4s, v20.4s, #31 +.long 0xce56a6e5 //sm3tt1b v5.4s, v23.4s, v22.4s[2] +.long 0xce40aee6 //sm3tt2b v6.4s, v23.4s, v0.4s[2] +.long 0xce5518b7 //sm3ss1 v23.4s, v5.4s, v21.4s, v6.4s + shl v20.4s, v21.4s, #1 + sri v20.4s, v21.4s, #31 +.long 0xce56b6e5 //sm3tt1b v5.4s, v23.4s, v22.4s[3] +.long 0xce40bee6 //sm3tt2b v6.4s, v23.4s, v0.4s[3] + // s4 = w7 | w8 | w9 | w10 + ext v0.16b, v2.16b, v3.16b, #12 + // vtmp1 = w3 | w4 | w5 | w6 + ext v22.16b, v1.16b, v2.16b, #12 + // vtmp2 = w10 | w11 | w12 | w13 + ext v23.16b, v3.16b, v4.16b, #8 +.long 0xce64c020 //sm3partw1 v0.4s, v1.4s, v4.4s +.long 0xce76c6e0 //sm3partw2 v0.4s, v23.4s, v22.4s + eor v22.16b, v1.16b, v2.16b +.long 0xce5418b7 //sm3ss1 v23.4s, v5.4s, v20.4s, v6.4s + shl v21.4s, v20.4s, #1 + sri v21.4s, v20.4s, #31 +.long 0xce5686e5 //sm3tt1b v5.4s, v23.4s, v22.4s[0] +.long 0xce418ee6 //sm3tt2b v6.4s, v23.4s, v1.4s[0] +.long 0xce5518b7 //sm3ss1 v23.4s, v5.4s, v21.4s, v6.4s + shl v20.4s, v21.4s, #1 + sri v20.4s, v21.4s, #31 +.long 0xce5696e5 //sm3tt1b v5.4s, v23.4s, v22.4s[1] +.long 0xce419ee6 //sm3tt2b v6.4s, v23.4s, v1.4s[1] +.long 0xce5418b7 //sm3ss1 v23.4s, v5.4s, v20.4s, v6.4s + shl v21.4s, v20.4s, #1 + sri v21.4s, v20.4s, #31 +.long 0xce56a6e5 //sm3tt1b v5.4s, v23.4s, v22.4s[2] +.long 0xce41aee6 //sm3tt2b v6.4s, v23.4s, v1.4s[2] +.long 0xce5518b7 //sm3ss1 v23.4s, v5.4s, v21.4s, v6.4s + shl v20.4s, v21.4s, #1 + sri v20.4s, v21.4s, #31 +.long 0xce56b6e5 //sm3tt1b v5.4s, v23.4s, v22.4s[3] +.long 0xce41bee6 //sm3tt2b v6.4s, v23.4s, v1.4s[3] + // s4 = w7 | w8 | w9 | w10 + ext v1.16b, v3.16b, v4.16b, #12 + // vtmp1 = w3 | w4 | w5 | w6 + ext v22.16b, v2.16b, v3.16b, #12 + // vtmp2 = w10 | w11 | w12 | w13 + ext v23.16b, v4.16b, v0.16b, #8 +.long 0xce60c041 //sm3partw1 v1.4s, v2.4s, v0.4s +.long 0xce76c6e1 //sm3partw2 v1.4s, v23.4s, v22.4s + eor v22.16b, v2.16b, v3.16b +.long 0xce5418b7 //sm3ss1 v23.4s, v5.4s, v20.4s, v6.4s + shl v21.4s, v20.4s, #1 + sri v21.4s, v20.4s, #31 +.long 0xce5686e5 //sm3tt1b v5.4s, v23.4s, v22.4s[0] +.long 0xce428ee6 //sm3tt2b v6.4s, v23.4s, v2.4s[0] +.long 0xce5518b7 //sm3ss1 v23.4s, v5.4s, v21.4s, v6.4s + shl v20.4s, v21.4s, #1 + sri v20.4s, v21.4s, #31 +.long 0xce5696e5 //sm3tt1b v5.4s, v23.4s, v22.4s[1] +.long 0xce429ee6 //sm3tt2b v6.4s, v23.4s, v2.4s[1] +.long 0xce5418b7 //sm3ss1 v23.4s, v5.4s, v20.4s, v6.4s + shl v21.4s, v20.4s, #1 + sri v21.4s, v20.4s, #31 +.long 0xce56a6e5 //sm3tt1b v5.4s, v23.4s, v22.4s[2] +.long 0xce42aee6 //sm3tt2b v6.4s, v23.4s, v2.4s[2] +.long 0xce5518b7 //sm3ss1 v23.4s, v5.4s, v21.4s, v6.4s + shl v20.4s, v21.4s, #1 + sri v20.4s, v21.4s, #31 +.long 0xce56b6e5 //sm3tt1b v5.4s, v23.4s, v22.4s[3] +.long 0xce42bee6 //sm3tt2b v6.4s, v23.4s, v2.4s[3] + eor v22.16b, v3.16b, v4.16b +.long 0xce5418b7 //sm3ss1 v23.4s, v5.4s, v20.4s, v6.4s + shl v21.4s, v20.4s, #1 + sri v21.4s, v20.4s, #31 +.long 0xce5686e5 //sm3tt1b v5.4s, v23.4s, v22.4s[0] +.long 0xce438ee6 //sm3tt2b v6.4s, v23.4s, v3.4s[0] +.long 0xce5518b7 //sm3ss1 v23.4s, v5.4s, v21.4s, v6.4s + shl v20.4s, v21.4s, #1 + sri v20.4s, v21.4s, #31 +.long 0xce5696e5 //sm3tt1b v5.4s, v23.4s, v22.4s[1] +.long 0xce439ee6 //sm3tt2b v6.4s, v23.4s, v3.4s[1] +.long 0xce5418b7 //sm3ss1 v23.4s, v5.4s, v20.4s, v6.4s + shl v21.4s, v20.4s, #1 + sri v21.4s, v20.4s, #31 +.long 0xce56a6e5 //sm3tt1b v5.4s, v23.4s, v22.4s[2] +.long 0xce43aee6 //sm3tt2b v6.4s, v23.4s, v3.4s[2] +.long 0xce5518b7 //sm3ss1 v23.4s, v5.4s, v21.4s, v6.4s + shl v20.4s, v21.4s, #1 + sri v20.4s, v21.4s, #31 +.long 0xce56b6e5 //sm3tt1b v5.4s, v23.4s, v22.4s[3] +.long 0xce43bee6 //sm3tt2b v6.4s, v23.4s, v3.4s[3] + eor v22.16b, v4.16b, v0.16b +.long 0xce5418b7 //sm3ss1 v23.4s, v5.4s, v20.4s, v6.4s + shl v21.4s, v20.4s, #1 + sri v21.4s, v20.4s, #31 +.long 0xce5686e5 //sm3tt1b v5.4s, v23.4s, v22.4s[0] +.long 0xce448ee6 //sm3tt2b v6.4s, v23.4s, v4.4s[0] +.long 0xce5518b7 //sm3ss1 v23.4s, v5.4s, v21.4s, v6.4s + shl v20.4s, v21.4s, #1 + sri v20.4s, v21.4s, #31 +.long 0xce5696e5 //sm3tt1b v5.4s, v23.4s, v22.4s[1] +.long 0xce449ee6 //sm3tt2b v6.4s, v23.4s, v4.4s[1] +.long 0xce5418b7 //sm3ss1 v23.4s, v5.4s, v20.4s, v6.4s + shl v21.4s, v20.4s, #1 + sri v21.4s, v20.4s, #31 +.long 0xce56a6e5 //sm3tt1b v5.4s, v23.4s, v22.4s[2] +.long 0xce44aee6 //sm3tt2b v6.4s, v23.4s, v4.4s[2] +.long 0xce5518b7 //sm3ss1 v23.4s, v5.4s, v21.4s, v6.4s + shl v20.4s, v21.4s, #1 + sri v20.4s, v21.4s, #31 +.long 0xce56b6e5 //sm3tt1b v5.4s, v23.4s, v22.4s[3] +.long 0xce44bee6 //sm3tt2b v6.4s, v23.4s, v4.4s[3] + eor v22.16b, v0.16b, v1.16b +.long 0xce5418b7 //sm3ss1 v23.4s, v5.4s, v20.4s, v6.4s + shl v21.4s, v20.4s, #1 + sri v21.4s, v20.4s, #31 +.long 0xce5686e5 //sm3tt1b v5.4s, v23.4s, v22.4s[0] +.long 0xce408ee6 //sm3tt2b v6.4s, v23.4s, v0.4s[0] +.long 0xce5518b7 //sm3ss1 v23.4s, v5.4s, v21.4s, v6.4s + shl v20.4s, v21.4s, #1 + sri v20.4s, v21.4s, #31 +.long 0xce5696e5 //sm3tt1b v5.4s, v23.4s, v22.4s[1] +.long 0xce409ee6 //sm3tt2b v6.4s, v23.4s, v0.4s[1] +.long 0xce5418b7 //sm3ss1 v23.4s, v5.4s, v20.4s, v6.4s + shl v21.4s, v20.4s, #1 + sri v21.4s, v20.4s, #31 +.long 0xce56a6e5 //sm3tt1b v5.4s, v23.4s, v22.4s[2] +.long 0xce40aee6 //sm3tt2b v6.4s, v23.4s, v0.4s[2] +.long 0xce5518b7 //sm3ss1 v23.4s, v5.4s, v21.4s, v6.4s + shl v20.4s, v21.4s, #1 + sri v20.4s, v21.4s, #31 +.long 0xce56b6e5 //sm3tt1b v5.4s, v23.4s, v22.4s[3] +.long 0xce40bee6 //sm3tt2b v6.4s, v23.4s, v0.4s[3] + eor v5.16b, v5.16b, v18.16b + eor v6.16b, v6.16b, v19.16b + + // any remained blocks? + cbnz w2, Loop + + // save state + rev64 v5.4s, v5.4s + rev64 v6.4s, v6.4s + ext v5.16b, v5.16b, v5.16b, #8 + ext v6.16b, v6.16b, v6.16b, #8 + st1 {v5.4s,v6.4s}, [x0] + ret + + + +.align 3 +_sm3_consts: +.Tj: +.word 0x79cc4519, 0x9d8a7a87 + diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/asm/crypto/sm4/sm4-armv8.S b/deps/openssl/config/archs/darwin64-arm64-cc/asm/crypto/sm4/sm4-armv8.S new file mode 100644 index 00000000000000..b8475bc5c4315b --- /dev/null +++ b/deps/openssl/config/archs/darwin64-arm64-cc/asm/crypto/sm4/sm4-armv8.S @@ -0,0 +1,1092 @@ +// Copyright 2022-2025 The OpenSSL Project Authors. All Rights Reserved. +// +// Licensed under the Apache License 2.0 (the "License"). You may not use +// this file except in compliance with the License. You can obtain a copy +// in the file LICENSE in the source distribution or at +// https://www.openssl.org/source/license.html + +// +// This module implements support for SM4 hw support on aarch64 +// Oct 2021 +// + +// $output is the last argument if it looks like a file (it has an extension) +// $flavour is the first argument if it doesn't look like a file +#include "arm_arch.h" + +.text + +.section __TEXT,__const + +.align 6 +_sm4_v8_consts: +Lck: +.long 0x00070E15, 0x1C232A31, 0x383F464D, 0x545B6269 +.long 0x70777E85, 0x8C939AA1, 0xA8AFB6BD, 0xC4CBD2D9 +.long 0xE0E7EEF5, 0xFC030A11, 0x181F262D, 0x343B4249 +.long 0x50575E65, 0x6C737A81, 0x888F969D, 0xA4ABB2B9 +.long 0xC0C7CED5, 0xDCE3EAF1, 0xF8FF060D, 0x141B2229 +.long 0x30373E45, 0x4C535A61, 0x686F767D, 0x848B9299 +.long 0xA0A7AEB5, 0xBCC3CAD1, 0xD8DFE6ED, 0xF4FB0209 +.long 0x10171E25, 0x2C333A41, 0x484F565D, 0x646B7279 +Lfk: +.long 0xa3b1bac6, 0x56aa3350, 0x677d9197, 0xb27022dc + +.previous + +.globl _sm4_v8_set_encrypt_key + +.align 5 +_sm4_v8_set_encrypt_key: + AARCH64_VALID_CALL_TARGET + ld1 {v0.4s},[x0] + adrp x2,Lfk@PAGE + add x2,x2,Lfk@PAGEOFF + ld1 {v24.4s},[x2] + adrp x2,Lck@PAGE + add x2,x2,Lck@PAGEOFF + ld1 {v16.4s,v17.4s,v18.4s,v19.4s},[x2],64 +#ifndef __AARCH64EB__ + rev32 v0.16b,v0.16b +#endif + ld1 {v20.4s,v21.4s,v22.4s,v23.4s},[x2] + eor v0.16b,v0.16b,v24.16b; +.long 0xce70c800 //sm4ekey v0.4S,v0.4S,v16.4S +.long 0xce71c801 //sm4ekey v1.4S,v0.4S,v17.4S +.long 0xce72c822 //sm4ekey v2.4S,v1.4S,v18.4S +.long 0xce73c843 //sm4ekey v3.4S,v2.4S,v19.4S +.long 0xce74c864 //sm4ekey v4.4S,v3.4S,v20.4S + st1 {v0.4s,v1.4s,v2.4s,v3.4s},[x1],64 +.long 0xce75c885 //sm4ekey v5.4S,v4.4S,v21.4S +.long 0xce76c8a6 //sm4ekey v6.4S,v5.4S,v22.4S +.long 0xce77c8c7 //sm4ekey v7.4S,v6.4S,v23.4S + st1 {v4.4s,v5.4s,v6.4s,v7.4s},[x1] + ret + +.globl _sm4_v8_set_decrypt_key + +.align 5 +_sm4_v8_set_decrypt_key: + AARCH64_VALID_CALL_TARGET + ld1 {v7.4s},[x0] + adrp x2,Lfk@PAGE + add x2,x2,Lfk@PAGEOFF + ld1 {v24.4s},[x2] + adrp x2,Lck@PAGE + add x2,x2,Lck@PAGEOFF + ld1 {v16.4s,v17.4s,v18.4s,v19.4s},[x2],64 +#ifndef __AARCH64EB__ + rev32 v7.16b,v7.16b +#endif + ld1 {v20.4s,v21.4s,v22.4s,v23.4s},[x2] + eor v7.16b, v7.16b,v24.16b; +.long 0xce70c8e7 //sm4ekey v7.4S,v7.4S,v16.4S +.long 0xce71c8e6 //sm4ekey v6.4S,v7.4S,v17.4S +.long 0xce72c8c5 //sm4ekey v5.4S,v6.4S,v18.4S + rev64 v7.4s,v7.4s + rev64 v6.4s,v6.4s + ext v7.16b,v7.16b,v7.16b,#8 + ext v6.16b,v6.16b,v6.16b,#8 +.long 0xce73c8a4 //sm4ekey v4.4S,v5.4S,v19.4S +.long 0xce74c883 //sm4ekey v3.4S,v4.4S,v20.4S + rev64 v5.4s,v5.4s + rev64 v4.4s,v4.4s + ext v5.16b,v5.16b,v5.16b,#8 + ext v4.16b,v4.16b,v4.16b,#8 +.long 0xce75c862 //sm4ekey v2.4S,v3.4S,v21.4S +.long 0xce76c841 //sm4ekey v1.4S,v2.4S,v22.4S + rev64 v3.4s,v3.4s + rev64 v2.4s,v2.4s + ext v3.16b,v3.16b,v3.16b,#8 + ext v2.16b,v2.16b,v2.16b,#8 +.long 0xce77c820 //sm4ekey v0.4S,v1.4S,v23.4S + rev64 v1.4s, v1.4s + rev64 v0.4s, v0.4s + ext v1.16b,v1.16b,v1.16b,#8 + ext v0.16b,v0.16b,v0.16b,#8 + st1 {v0.4s,v1.4s,v2.4s,v3.4s},[x1],64 + st1 {v4.4s,v5.4s,v6.4s,v7.4s},[x1] + ret + +.globl _sm4_v8_encrypt + +.align 5 +_sm4_v8_encrypt: + AARCH64_VALID_CALL_TARGET + ld1 {v16.4s},[x0] + ld1 {v0.4s,v1.4s,v2.4s,v3.4s},[x2],64 + ld1 {v4.4s,v5.4s,v6.4s,v7.4s},[x2] +#ifndef __AARCH64EB__ + rev32 v16.16b,v16.16b +#endif +.long 0xcec08410 //sm4e v16.4s,v0.4s +.long 0xcec08430 //sm4e v16.4s,v1.4s +.long 0xcec08450 //sm4e v16.4s,v2.4s +.long 0xcec08470 //sm4e v16.4s,v3.4s +.long 0xcec08490 //sm4e v16.4s,v4.4s +.long 0xcec084b0 //sm4e v16.4s,v5.4s +.long 0xcec084d0 //sm4e v16.4s,v6.4s +.long 0xcec084f0 //sm4e v16.4s,v7.4s + rev64 v16.4S,v16.4S + ext v16.16b,v16.16b,v16.16b,#8 +#ifndef __AARCH64EB__ + rev32 v16.16b,v16.16b +#endif + st1 {v16.4s},[x1] + ret + +.globl _sm4_v8_decrypt + +.align 5 +_sm4_v8_decrypt: + AARCH64_VALID_CALL_TARGET + ld1 {v16.4s},[x0] + ld1 {v0.4s,v1.4s,v2.4s,v3.4s},[x2],64 + ld1 {v4.4s,v5.4s,v6.4s,v7.4s},[x2] +#ifndef __AARCH64EB__ + rev32 v16.16b,v16.16b +#endif +.long 0xcec08410 //sm4e v16.4s,v0.4s +.long 0xcec08430 //sm4e v16.4s,v1.4s +.long 0xcec08450 //sm4e v16.4s,v2.4s +.long 0xcec08470 //sm4e v16.4s,v3.4s +.long 0xcec08490 //sm4e v16.4s,v4.4s +.long 0xcec084b0 //sm4e v16.4s,v5.4s +.long 0xcec084d0 //sm4e v16.4s,v6.4s +.long 0xcec084f0 //sm4e v16.4s,v7.4s + rev64 v16.4S,v16.4S + ext v16.16b,v16.16b,v16.16b,#8 +#ifndef __AARCH64EB__ + rev32 v16.16b,v16.16b +#endif + st1 {v16.4s},[x1] + ret + +.globl _sm4_v8_ecb_encrypt + +.align 5 +_sm4_v8_ecb_encrypt: + AARCH64_VALID_CALL_TARGET + ld1 {v0.4s,v1.4s,v2.4s,v3.4s},[x3],#64 + ld1 {v4.4s,v5.4s,v6.4s,v7.4s},[x3] +1: + cmp x2,#64 + b.lt 1f + ld1 {v16.4s,v17.4s,v18.4s,v19.4s},[x0],#64 + cmp x2,#128 + b.lt 2f + ld1 {v20.4s,v21.4s,v22.4s,v23.4s},[x0],#64 + // 8 blocks +#ifndef __AARCH64EB__ + rev32 v16.16b,v16.16b +#endif +#ifndef __AARCH64EB__ + rev32 v17.16b,v17.16b +#endif +#ifndef __AARCH64EB__ + rev32 v18.16b,v18.16b +#endif +#ifndef __AARCH64EB__ + rev32 v19.16b,v19.16b +#endif +#ifndef __AARCH64EB__ + rev32 v20.16b,v20.16b +#endif +#ifndef __AARCH64EB__ + rev32 v21.16b,v21.16b +#endif +#ifndef __AARCH64EB__ + rev32 v22.16b,v22.16b +#endif +#ifndef __AARCH64EB__ + rev32 v23.16b,v23.16b +#endif +.long 0xcec08410 //sm4e v16.4s,v0.4s +.long 0xcec08411 //sm4e v17.4s,v0.4s +.long 0xcec08412 //sm4e v18.4s,v0.4s +.long 0xcec08413 //sm4e v19.4s,v0.4s + +.long 0xcec08430 //sm4e v16.4s,v1.4s +.long 0xcec08431 //sm4e v17.4s,v1.4s +.long 0xcec08432 //sm4e v18.4s,v1.4s +.long 0xcec08433 //sm4e v19.4s,v1.4s + +.long 0xcec08450 //sm4e v16.4s,v2.4s +.long 0xcec08451 //sm4e v17.4s,v2.4s +.long 0xcec08452 //sm4e v18.4s,v2.4s +.long 0xcec08453 //sm4e v19.4s,v2.4s + +.long 0xcec08470 //sm4e v16.4s,v3.4s +.long 0xcec08471 //sm4e v17.4s,v3.4s +.long 0xcec08472 //sm4e v18.4s,v3.4s +.long 0xcec08473 //sm4e v19.4s,v3.4s + +.long 0xcec08490 //sm4e v16.4s,v4.4s +.long 0xcec08491 //sm4e v17.4s,v4.4s +.long 0xcec08492 //sm4e v18.4s,v4.4s +.long 0xcec08493 //sm4e v19.4s,v4.4s + +.long 0xcec084b0 //sm4e v16.4s,v5.4s +.long 0xcec084b1 //sm4e v17.4s,v5.4s +.long 0xcec084b2 //sm4e v18.4s,v5.4s +.long 0xcec084b3 //sm4e v19.4s,v5.4s + +.long 0xcec084d0 //sm4e v16.4s,v6.4s +.long 0xcec084d1 //sm4e v17.4s,v6.4s +.long 0xcec084d2 //sm4e v18.4s,v6.4s +.long 0xcec084d3 //sm4e v19.4s,v6.4s + +.long 0xcec084f0 //sm4e v16.4s,v7.4s + rev64 v16.4S,v16.4S +.long 0xcec084f1 //sm4e v17.4s,v7.4s + ext v16.16b,v16.16b,v16.16b,#8 + rev64 v17.4S,v17.4S +.long 0xcec084f2 //sm4e v18.4s,v7.4s + ext v17.16b,v17.16b,v17.16b,#8 + rev64 v18.4S,v18.4S +.long 0xcec084f3 //sm4e v19.4s,v7.4s + ext v18.16b,v18.16b,v18.16b,#8 + rev64 v19.4S,v19.4S + ext v19.16b,v19.16b,v19.16b,#8 +.long 0xcec08414 //sm4e v20.4s,v0.4s +.long 0xcec08415 //sm4e v21.4s,v0.4s +.long 0xcec08416 //sm4e v22.4s,v0.4s +.long 0xcec08417 //sm4e v23.4s,v0.4s + +.long 0xcec08434 //sm4e v20.4s,v1.4s +.long 0xcec08435 //sm4e v21.4s,v1.4s +.long 0xcec08436 //sm4e v22.4s,v1.4s +.long 0xcec08437 //sm4e v23.4s,v1.4s + +.long 0xcec08454 //sm4e v20.4s,v2.4s +.long 0xcec08455 //sm4e v21.4s,v2.4s +.long 0xcec08456 //sm4e v22.4s,v2.4s +.long 0xcec08457 //sm4e v23.4s,v2.4s + +.long 0xcec08474 //sm4e v20.4s,v3.4s +.long 0xcec08475 //sm4e v21.4s,v3.4s +.long 0xcec08476 //sm4e v22.4s,v3.4s +.long 0xcec08477 //sm4e v23.4s,v3.4s + +.long 0xcec08494 //sm4e v20.4s,v4.4s +.long 0xcec08495 //sm4e v21.4s,v4.4s +.long 0xcec08496 //sm4e v22.4s,v4.4s +.long 0xcec08497 //sm4e v23.4s,v4.4s + +.long 0xcec084b4 //sm4e v20.4s,v5.4s +.long 0xcec084b5 //sm4e v21.4s,v5.4s +.long 0xcec084b6 //sm4e v22.4s,v5.4s +.long 0xcec084b7 //sm4e v23.4s,v5.4s + +.long 0xcec084d4 //sm4e v20.4s,v6.4s +.long 0xcec084d5 //sm4e v21.4s,v6.4s +.long 0xcec084d6 //sm4e v22.4s,v6.4s +.long 0xcec084d7 //sm4e v23.4s,v6.4s + +.long 0xcec084f4 //sm4e v20.4s,v7.4s + rev64 v20.4S,v20.4S +.long 0xcec084f5 //sm4e v21.4s,v7.4s + ext v20.16b,v20.16b,v20.16b,#8 + rev64 v21.4S,v21.4S +.long 0xcec084f6 //sm4e v22.4s,v7.4s + ext v21.16b,v21.16b,v21.16b,#8 + rev64 v22.4S,v22.4S +.long 0xcec084f7 //sm4e v23.4s,v7.4s + ext v22.16b,v22.16b,v22.16b,#8 + rev64 v23.4S,v23.4S + ext v23.16b,v23.16b,v23.16b,#8 +#ifndef __AARCH64EB__ + rev32 v16.16b,v16.16b +#endif +#ifndef __AARCH64EB__ + rev32 v17.16b,v17.16b +#endif +#ifndef __AARCH64EB__ + rev32 v18.16b,v18.16b +#endif +#ifndef __AARCH64EB__ + rev32 v19.16b,v19.16b +#endif +#ifndef __AARCH64EB__ + rev32 v20.16b,v20.16b +#endif +#ifndef __AARCH64EB__ + rev32 v21.16b,v21.16b +#endif + st1 {v16.4s,v17.4s,v18.4s,v19.4s},[x1],#64 +#ifndef __AARCH64EB__ + rev32 v22.16b,v22.16b +#endif +#ifndef __AARCH64EB__ + rev32 v23.16b,v23.16b +#endif + st1 {v20.4s,v21.4s,v22.4s,v23.4s},[x1],#64 + subs x2,x2,#128 + b.gt 1b + ret + // 4 blocks +2: +#ifndef __AARCH64EB__ + rev32 v16.16b,v16.16b +#endif +#ifndef __AARCH64EB__ + rev32 v17.16b,v17.16b +#endif +#ifndef __AARCH64EB__ + rev32 v18.16b,v18.16b +#endif +#ifndef __AARCH64EB__ + rev32 v19.16b,v19.16b +#endif +.long 0xcec08410 //sm4e v16.4s,v0.4s +.long 0xcec08411 //sm4e v17.4s,v0.4s +.long 0xcec08412 //sm4e v18.4s,v0.4s +.long 0xcec08413 //sm4e v19.4s,v0.4s + +.long 0xcec08430 //sm4e v16.4s,v1.4s +.long 0xcec08431 //sm4e v17.4s,v1.4s +.long 0xcec08432 //sm4e v18.4s,v1.4s +.long 0xcec08433 //sm4e v19.4s,v1.4s + +.long 0xcec08450 //sm4e v16.4s,v2.4s +.long 0xcec08451 //sm4e v17.4s,v2.4s +.long 0xcec08452 //sm4e v18.4s,v2.4s +.long 0xcec08453 //sm4e v19.4s,v2.4s + +.long 0xcec08470 //sm4e v16.4s,v3.4s +.long 0xcec08471 //sm4e v17.4s,v3.4s +.long 0xcec08472 //sm4e v18.4s,v3.4s +.long 0xcec08473 //sm4e v19.4s,v3.4s + +.long 0xcec08490 //sm4e v16.4s,v4.4s +.long 0xcec08491 //sm4e v17.4s,v4.4s +.long 0xcec08492 //sm4e v18.4s,v4.4s +.long 0xcec08493 //sm4e v19.4s,v4.4s + +.long 0xcec084b0 //sm4e v16.4s,v5.4s +.long 0xcec084b1 //sm4e v17.4s,v5.4s +.long 0xcec084b2 //sm4e v18.4s,v5.4s +.long 0xcec084b3 //sm4e v19.4s,v5.4s + +.long 0xcec084d0 //sm4e v16.4s,v6.4s +.long 0xcec084d1 //sm4e v17.4s,v6.4s +.long 0xcec084d2 //sm4e v18.4s,v6.4s +.long 0xcec084d3 //sm4e v19.4s,v6.4s + +.long 0xcec084f0 //sm4e v16.4s,v7.4s + rev64 v16.4S,v16.4S +.long 0xcec084f1 //sm4e v17.4s,v7.4s + ext v16.16b,v16.16b,v16.16b,#8 + rev64 v17.4S,v17.4S +.long 0xcec084f2 //sm4e v18.4s,v7.4s + ext v17.16b,v17.16b,v17.16b,#8 + rev64 v18.4S,v18.4S +.long 0xcec084f3 //sm4e v19.4s,v7.4s + ext v18.16b,v18.16b,v18.16b,#8 + rev64 v19.4S,v19.4S + ext v19.16b,v19.16b,v19.16b,#8 +#ifndef __AARCH64EB__ + rev32 v16.16b,v16.16b +#endif +#ifndef __AARCH64EB__ + rev32 v17.16b,v17.16b +#endif +#ifndef __AARCH64EB__ + rev32 v18.16b,v18.16b +#endif +#ifndef __AARCH64EB__ + rev32 v19.16b,v19.16b +#endif + st1 {v16.4s,v17.4s,v18.4s,v19.4s},[x1],#64 + subs x2,x2,#64 + b.gt 1b +1: + subs x2,x2,#16 + b.lt 1f + ld1 {v16.4s},[x0],#16 +#ifndef __AARCH64EB__ + rev32 v16.16b,v16.16b +#endif +.long 0xcec08410 //sm4e v16.4s,v0.4s +.long 0xcec08430 //sm4e v16.4s,v1.4s +.long 0xcec08450 //sm4e v16.4s,v2.4s +.long 0xcec08470 //sm4e v16.4s,v3.4s +.long 0xcec08490 //sm4e v16.4s,v4.4s +.long 0xcec084b0 //sm4e v16.4s,v5.4s +.long 0xcec084d0 //sm4e v16.4s,v6.4s +.long 0xcec084f0 //sm4e v16.4s,v7.4s + rev64 v16.4S,v16.4S + ext v16.16b,v16.16b,v16.16b,#8 +#ifndef __AARCH64EB__ + rev32 v16.16b,v16.16b +#endif + st1 {v16.4s},[x1],#16 + b.ne 1b +1: + ret + +.globl _sm4_v8_cbc_encrypt + +.align 5 +_sm4_v8_cbc_encrypt: + AARCH64_VALID_CALL_TARGET + stp d8,d9,[sp, #-16]! + + ld1 {v0.4s,v1.4s,v2.4s,v3.4s},[x3],#64 + ld1 {v4.4s,v5.4s,v6.4s,v7.4s},[x3] + ld1 {v8.4s},[x4] + cmp w5,#0 + b.eq Ldec +1: + cmp x2, #64 + b.lt 1f + ld1 {v16.4s,v17.4s,v18.4s,v19.4s},[x0],#64 + eor v16.16b,v16.16b,v8.16b +#ifndef __AARCH64EB__ + rev32 v17.16b,v17.16b +#endif +#ifndef __AARCH64EB__ + rev32 v16.16b,v16.16b +#endif +#ifndef __AARCH64EB__ + rev32 v18.16b,v18.16b +#endif +#ifndef __AARCH64EB__ + rev32 v19.16b,v19.16b +#endif +.long 0xcec08410 //sm4e v16.4s,v0.4s +.long 0xcec08430 //sm4e v16.4s,v1.4s +.long 0xcec08450 //sm4e v16.4s,v2.4s +.long 0xcec08470 //sm4e v16.4s,v3.4s +.long 0xcec08490 //sm4e v16.4s,v4.4s +.long 0xcec084b0 //sm4e v16.4s,v5.4s +.long 0xcec084d0 //sm4e v16.4s,v6.4s +.long 0xcec084f0 //sm4e v16.4s,v7.4s + rev64 v16.4S,v16.4S + ext v16.16b,v16.16b,v16.16b,#8 + eor v17.16b,v17.16b,v16.16b +.long 0xcec08411 //sm4e v17.4s,v0.4s +.long 0xcec08431 //sm4e v17.4s,v1.4s +.long 0xcec08451 //sm4e v17.4s,v2.4s +.long 0xcec08471 //sm4e v17.4s,v3.4s +.long 0xcec08491 //sm4e v17.4s,v4.4s +.long 0xcec084b1 //sm4e v17.4s,v5.4s +.long 0xcec084d1 //sm4e v17.4s,v6.4s +.long 0xcec084f1 //sm4e v17.4s,v7.4s + rev64 v17.4S,v17.4S + ext v17.16b,v17.16b,v17.16b,#8 +#ifndef __AARCH64EB__ + rev32 v16.16b,v16.16b +#endif + eor v18.16b,v18.16b,v17.16b +.long 0xcec08412 //sm4e v18.4s,v0.4s +.long 0xcec08432 //sm4e v18.4s,v1.4s +.long 0xcec08452 //sm4e v18.4s,v2.4s +.long 0xcec08472 //sm4e v18.4s,v3.4s +.long 0xcec08492 //sm4e v18.4s,v4.4s +.long 0xcec084b2 //sm4e v18.4s,v5.4s +.long 0xcec084d2 //sm4e v18.4s,v6.4s +.long 0xcec084f2 //sm4e v18.4s,v7.4s + rev64 v18.4S,v18.4S + ext v18.16b,v18.16b,v18.16b,#8 +#ifndef __AARCH64EB__ + rev32 v17.16b,v17.16b +#endif + eor v19.16b,v19.16b,v18.16b +.long 0xcec08413 //sm4e v19.4s,v0.4s +.long 0xcec08433 //sm4e v19.4s,v1.4s +.long 0xcec08453 //sm4e v19.4s,v2.4s +.long 0xcec08473 //sm4e v19.4s,v3.4s +.long 0xcec08493 //sm4e v19.4s,v4.4s +.long 0xcec084b3 //sm4e v19.4s,v5.4s +.long 0xcec084d3 //sm4e v19.4s,v6.4s +.long 0xcec084f3 //sm4e v19.4s,v7.4s + rev64 v19.4S,v19.4S + ext v19.16b,v19.16b,v19.16b,#8 +#ifndef __AARCH64EB__ + rev32 v18.16b,v18.16b +#endif +#ifndef __AARCH64EB__ + rev32 v19.16b,v19.16b +#endif + mov v8.16b,v19.16b + st1 {v16.4s,v17.4s,v18.4s,v19.4s},[x1],#64 + subs x2,x2,#64 + b.ne 1b +1: + subs x2,x2,#16 + b.lt 3f + ld1 {v16.4s},[x0],#16 + eor v8.16b,v8.16b,v16.16b +#ifndef __AARCH64EB__ + rev32 v8.16b,v8.16b +#endif +.long 0xcec08408 //sm4e v8.4s,v0.4s +.long 0xcec08428 //sm4e v8.4s,v1.4s +.long 0xcec08448 //sm4e v8.4s,v2.4s +.long 0xcec08468 //sm4e v8.4s,v3.4s +.long 0xcec08488 //sm4e v8.4s,v4.4s +.long 0xcec084a8 //sm4e v8.4s,v5.4s +.long 0xcec084c8 //sm4e v8.4s,v6.4s +.long 0xcec084e8 //sm4e v8.4s,v7.4s + rev64 v8.4S,v8.4S + ext v8.16b,v8.16b,v8.16b,#8 +#ifndef __AARCH64EB__ + rev32 v8.16b,v8.16b +#endif + st1 {v8.4s},[x1],#16 + b.ne 1b + b 3f +Ldec: +1: + cmp x2, #64 + b.lt 1f + ld1 {v16.4s,v17.4s,v18.4s,v19.4s},[x0] + ld1 {v24.4s,v25.4s,v26.4s,v27.4s},[x0],#64 + cmp x2,#128 + b.lt 2f + // 8 blocks mode + ld1 {v20.4s,v21.4s,v22.4s,v23.4s},[x0] + ld1 {v28.4s,v29.4s,v30.4s,v31.4s},[x0],#64 +#ifndef __AARCH64EB__ + rev32 v16.16b,v16.16b +#endif +#ifndef __AARCH64EB__ + rev32 v17.16b,v17.16b +#endif +#ifndef __AARCH64EB__ + rev32 v18.16b,v18.16b +#endif +#ifndef __AARCH64EB__ + rev32 v19.16b,v19.16b +#endif +#ifndef __AARCH64EB__ + rev32 v20.16b,v20.16b +#endif +#ifndef __AARCH64EB__ + rev32 v21.16b,v21.16b +#endif +#ifndef __AARCH64EB__ + rev32 v22.16b,v22.16b +#endif +#ifndef __AARCH64EB__ + rev32 v23.16b,v23.16b +#endif +.long 0xcec08410 //sm4e v16.4s,v0.4s +.long 0xcec08411 //sm4e v17.4s,v0.4s +.long 0xcec08412 //sm4e v18.4s,v0.4s +.long 0xcec08413 //sm4e v19.4s,v0.4s + +.long 0xcec08430 //sm4e v16.4s,v1.4s +.long 0xcec08431 //sm4e v17.4s,v1.4s +.long 0xcec08432 //sm4e v18.4s,v1.4s +.long 0xcec08433 //sm4e v19.4s,v1.4s + +.long 0xcec08450 //sm4e v16.4s,v2.4s +.long 0xcec08451 //sm4e v17.4s,v2.4s +.long 0xcec08452 //sm4e v18.4s,v2.4s +.long 0xcec08453 //sm4e v19.4s,v2.4s + +.long 0xcec08470 //sm4e v16.4s,v3.4s +.long 0xcec08471 //sm4e v17.4s,v3.4s +.long 0xcec08472 //sm4e v18.4s,v3.4s +.long 0xcec08473 //sm4e v19.4s,v3.4s + +.long 0xcec08490 //sm4e v16.4s,v4.4s +.long 0xcec08491 //sm4e v17.4s,v4.4s +.long 0xcec08492 //sm4e v18.4s,v4.4s +.long 0xcec08493 //sm4e v19.4s,v4.4s + +.long 0xcec084b0 //sm4e v16.4s,v5.4s +.long 0xcec084b1 //sm4e v17.4s,v5.4s +.long 0xcec084b2 //sm4e v18.4s,v5.4s +.long 0xcec084b3 //sm4e v19.4s,v5.4s + +.long 0xcec084d0 //sm4e v16.4s,v6.4s +.long 0xcec084d1 //sm4e v17.4s,v6.4s +.long 0xcec084d2 //sm4e v18.4s,v6.4s +.long 0xcec084d3 //sm4e v19.4s,v6.4s + +.long 0xcec084f0 //sm4e v16.4s,v7.4s + rev64 v16.4S,v16.4S +.long 0xcec084f1 //sm4e v17.4s,v7.4s + ext v16.16b,v16.16b,v16.16b,#8 + rev64 v17.4S,v17.4S +.long 0xcec084f2 //sm4e v18.4s,v7.4s + ext v17.16b,v17.16b,v17.16b,#8 + rev64 v18.4S,v18.4S +.long 0xcec084f3 //sm4e v19.4s,v7.4s + ext v18.16b,v18.16b,v18.16b,#8 + rev64 v19.4S,v19.4S + ext v19.16b,v19.16b,v19.16b,#8 +.long 0xcec08414 //sm4e v20.4s,v0.4s +.long 0xcec08415 //sm4e v21.4s,v0.4s +.long 0xcec08416 //sm4e v22.4s,v0.4s +.long 0xcec08417 //sm4e v23.4s,v0.4s + +.long 0xcec08434 //sm4e v20.4s,v1.4s +.long 0xcec08435 //sm4e v21.4s,v1.4s +.long 0xcec08436 //sm4e v22.4s,v1.4s +.long 0xcec08437 //sm4e v23.4s,v1.4s + +.long 0xcec08454 //sm4e v20.4s,v2.4s +.long 0xcec08455 //sm4e v21.4s,v2.4s +.long 0xcec08456 //sm4e v22.4s,v2.4s +.long 0xcec08457 //sm4e v23.4s,v2.4s + +.long 0xcec08474 //sm4e v20.4s,v3.4s +.long 0xcec08475 //sm4e v21.4s,v3.4s +.long 0xcec08476 //sm4e v22.4s,v3.4s +.long 0xcec08477 //sm4e v23.4s,v3.4s + +.long 0xcec08494 //sm4e v20.4s,v4.4s +.long 0xcec08495 //sm4e v21.4s,v4.4s +.long 0xcec08496 //sm4e v22.4s,v4.4s +.long 0xcec08497 //sm4e v23.4s,v4.4s + +.long 0xcec084b4 //sm4e v20.4s,v5.4s +.long 0xcec084b5 //sm4e v21.4s,v5.4s +.long 0xcec084b6 //sm4e v22.4s,v5.4s +.long 0xcec084b7 //sm4e v23.4s,v5.4s + +.long 0xcec084d4 //sm4e v20.4s,v6.4s +.long 0xcec084d5 //sm4e v21.4s,v6.4s +.long 0xcec084d6 //sm4e v22.4s,v6.4s +.long 0xcec084d7 //sm4e v23.4s,v6.4s + +.long 0xcec084f4 //sm4e v20.4s,v7.4s + rev64 v20.4S,v20.4S +.long 0xcec084f5 //sm4e v21.4s,v7.4s + ext v20.16b,v20.16b,v20.16b,#8 + rev64 v21.4S,v21.4S +.long 0xcec084f6 //sm4e v22.4s,v7.4s + ext v21.16b,v21.16b,v21.16b,#8 + rev64 v22.4S,v22.4S +.long 0xcec084f7 //sm4e v23.4s,v7.4s + ext v22.16b,v22.16b,v22.16b,#8 + rev64 v23.4S,v23.4S + ext v23.16b,v23.16b,v23.16b,#8 +#ifndef __AARCH64EB__ + rev32 v16.16b,v16.16b +#endif +#ifndef __AARCH64EB__ + rev32 v17.16b,v17.16b +#endif +#ifndef __AARCH64EB__ + rev32 v18.16b,v18.16b +#endif +#ifndef __AARCH64EB__ + rev32 v19.16b,v19.16b +#endif +#ifndef __AARCH64EB__ + rev32 v20.16b,v20.16b +#endif +#ifndef __AARCH64EB__ + rev32 v21.16b,v21.16b +#endif +#ifndef __AARCH64EB__ + rev32 v22.16b,v22.16b +#endif +#ifndef __AARCH64EB__ + rev32 v23.16b,v23.16b +#endif + eor v16.16b,v16.16b,v8.16b + eor v17.16b,v17.16b,v24.16b + eor v18.16b,v18.16b,v25.16b + mov v8.16b,v31.16b + eor v19.16b,v19.16b,v26.16b + eor v20.16b,v20.16b,v27.16b + eor v21.16b,v21.16b,v28.16b + eor v22.16b,v22.16b,v29.16b + eor v23.16b,v23.16b,v30.16b + st1 {v16.4s,v17.4s,v18.4s,v19.4s},[x1],#64 + st1 {v20.4s,v21.4s,v22.4s,v23.4s},[x1],#64 + subs x2,x2,128 + b.gt 1b + b 3f + // 4 blocks mode +2: +#ifndef __AARCH64EB__ + rev32 v16.16b,v16.16b +#endif +#ifndef __AARCH64EB__ + rev32 v17.16b,v17.16b +#endif +#ifndef __AARCH64EB__ + rev32 v18.16b,v18.16b +#endif +#ifndef __AARCH64EB__ + rev32 v19.16b,v19.16b +#endif +.long 0xcec08410 //sm4e v16.4s,v0.4s +.long 0xcec08411 //sm4e v17.4s,v0.4s +.long 0xcec08412 //sm4e v18.4s,v0.4s +.long 0xcec08413 //sm4e v19.4s,v0.4s + +.long 0xcec08430 //sm4e v16.4s,v1.4s +.long 0xcec08431 //sm4e v17.4s,v1.4s +.long 0xcec08432 //sm4e v18.4s,v1.4s +.long 0xcec08433 //sm4e v19.4s,v1.4s + +.long 0xcec08450 //sm4e v16.4s,v2.4s +.long 0xcec08451 //sm4e v17.4s,v2.4s +.long 0xcec08452 //sm4e v18.4s,v2.4s +.long 0xcec08453 //sm4e v19.4s,v2.4s + +.long 0xcec08470 //sm4e v16.4s,v3.4s +.long 0xcec08471 //sm4e v17.4s,v3.4s +.long 0xcec08472 //sm4e v18.4s,v3.4s +.long 0xcec08473 //sm4e v19.4s,v3.4s + +.long 0xcec08490 //sm4e v16.4s,v4.4s +.long 0xcec08491 //sm4e v17.4s,v4.4s +.long 0xcec08492 //sm4e v18.4s,v4.4s +.long 0xcec08493 //sm4e v19.4s,v4.4s + +.long 0xcec084b0 //sm4e v16.4s,v5.4s +.long 0xcec084b1 //sm4e v17.4s,v5.4s +.long 0xcec084b2 //sm4e v18.4s,v5.4s +.long 0xcec084b3 //sm4e v19.4s,v5.4s + +.long 0xcec084d0 //sm4e v16.4s,v6.4s +.long 0xcec084d1 //sm4e v17.4s,v6.4s +.long 0xcec084d2 //sm4e v18.4s,v6.4s +.long 0xcec084d3 //sm4e v19.4s,v6.4s + +.long 0xcec084f0 //sm4e v16.4s,v7.4s + rev64 v16.4S,v16.4S +.long 0xcec084f1 //sm4e v17.4s,v7.4s + ext v16.16b,v16.16b,v16.16b,#8 + rev64 v17.4S,v17.4S +.long 0xcec084f2 //sm4e v18.4s,v7.4s + ext v17.16b,v17.16b,v17.16b,#8 + rev64 v18.4S,v18.4S +.long 0xcec084f3 //sm4e v19.4s,v7.4s + ext v18.16b,v18.16b,v18.16b,#8 + rev64 v19.4S,v19.4S + ext v19.16b,v19.16b,v19.16b,#8 +#ifndef __AARCH64EB__ + rev32 v16.16b,v16.16b +#endif +#ifndef __AARCH64EB__ + rev32 v17.16b,v17.16b +#endif +#ifndef __AARCH64EB__ + rev32 v18.16b,v18.16b +#endif +#ifndef __AARCH64EB__ + rev32 v19.16b,v19.16b +#endif + eor v16.16b,v16.16b,v8.16b + eor v17.16b,v17.16b,v24.16b + mov v8.16b,v27.16b + eor v18.16b,v18.16b,v25.16b + eor v19.16b,v19.16b,v26.16b + st1 {v16.4s,v17.4s,v18.4s,v19.4s},[x1],#64 + subs x2,x2,#64 + b.gt 1b +1: + subs x2,x2,#16 + b.lt 3f + ld1 {v16.4s},[x0],#16 + mov v24.16b,v16.16b +#ifndef __AARCH64EB__ + rev32 v16.16b,v16.16b +#endif +.long 0xcec08410 //sm4e v16.4s,v0.4s +.long 0xcec08430 //sm4e v16.4s,v1.4s +.long 0xcec08450 //sm4e v16.4s,v2.4s +.long 0xcec08470 //sm4e v16.4s,v3.4s +.long 0xcec08490 //sm4e v16.4s,v4.4s +.long 0xcec084b0 //sm4e v16.4s,v5.4s +.long 0xcec084d0 //sm4e v16.4s,v6.4s +.long 0xcec084f0 //sm4e v16.4s,v7.4s + rev64 v16.4S,v16.4S + ext v16.16b,v16.16b,v16.16b,#8 +#ifndef __AARCH64EB__ + rev32 v16.16b,v16.16b +#endif + eor v16.16b,v16.16b,v8.16b + mov v8.16b,v24.16b + st1 {v16.4s},[x1],#16 + b.ne 1b +3: + // save back IV + st1 {v8.4s},[x4] + ldp d8,d9,[sp],#16 + ret + +.globl _sm4_v8_ctr32_encrypt_blocks + +.align 5 +_sm4_v8_ctr32_encrypt_blocks: + AARCH64_VALID_CALL_TARGET + stp d8,d9,[sp, #-16]! + + ld1 {v8.4s},[x4] + ld1 {v0.4s,v1.4s,v2.4s,v3.4s},[x3],64 + ld1 {v4.4s,v5.4s,v6.4s,v7.4s},[x3] +#ifndef __AARCH64EB__ + rev32 v8.16b,v8.16b +#endif + mov w5,v8.s[3] +1: + cmp x2,#4 + b.lt 1f + ld1 {v24.4s,v25.4s,v26.4s,v27.4s},[x0],#64 + mov v16.16b,v8.16b + mov v17.16b,v8.16b + mov v18.16b,v8.16b + mov v19.16b,v8.16b + add w5,w5,#1 + mov v17.s[3],w5 + add w5,w5,#1 + mov v18.s[3],w5 + add w5,w5,#1 + mov v19.s[3],w5 + cmp x2,#8 + b.lt 2f + ld1 {v28.4s,v29.4s,v30.4s,v31.4s},[x0],#64 + mov v20.16b,v8.16b + mov v21.16b,v8.16b + mov v22.16b,v8.16b + mov v23.16b,v8.16b + add w5,w5,#1 + mov v20.s[3],w5 + add w5,w5,#1 + mov v21.s[3],w5 + add w5,w5,#1 + mov v22.s[3],w5 + add w5,w5,#1 + mov v23.s[3],w5 +.long 0xcec08410 //sm4e v16.4s,v0.4s +.long 0xcec08411 //sm4e v17.4s,v0.4s +.long 0xcec08412 //sm4e v18.4s,v0.4s +.long 0xcec08413 //sm4e v19.4s,v0.4s + +.long 0xcec08430 //sm4e v16.4s,v1.4s +.long 0xcec08431 //sm4e v17.4s,v1.4s +.long 0xcec08432 //sm4e v18.4s,v1.4s +.long 0xcec08433 //sm4e v19.4s,v1.4s + +.long 0xcec08450 //sm4e v16.4s,v2.4s +.long 0xcec08451 //sm4e v17.4s,v2.4s +.long 0xcec08452 //sm4e v18.4s,v2.4s +.long 0xcec08453 //sm4e v19.4s,v2.4s + +.long 0xcec08470 //sm4e v16.4s,v3.4s +.long 0xcec08471 //sm4e v17.4s,v3.4s +.long 0xcec08472 //sm4e v18.4s,v3.4s +.long 0xcec08473 //sm4e v19.4s,v3.4s + +.long 0xcec08490 //sm4e v16.4s,v4.4s +.long 0xcec08491 //sm4e v17.4s,v4.4s +.long 0xcec08492 //sm4e v18.4s,v4.4s +.long 0xcec08493 //sm4e v19.4s,v4.4s + +.long 0xcec084b0 //sm4e v16.4s,v5.4s +.long 0xcec084b1 //sm4e v17.4s,v5.4s +.long 0xcec084b2 //sm4e v18.4s,v5.4s +.long 0xcec084b3 //sm4e v19.4s,v5.4s + +.long 0xcec084d0 //sm4e v16.4s,v6.4s +.long 0xcec084d1 //sm4e v17.4s,v6.4s +.long 0xcec084d2 //sm4e v18.4s,v6.4s +.long 0xcec084d3 //sm4e v19.4s,v6.4s + +.long 0xcec084f0 //sm4e v16.4s,v7.4s + rev64 v16.4S,v16.4S +.long 0xcec084f1 //sm4e v17.4s,v7.4s + ext v16.16b,v16.16b,v16.16b,#8 + rev64 v17.4S,v17.4S +.long 0xcec084f2 //sm4e v18.4s,v7.4s + ext v17.16b,v17.16b,v17.16b,#8 + rev64 v18.4S,v18.4S +.long 0xcec084f3 //sm4e v19.4s,v7.4s + ext v18.16b,v18.16b,v18.16b,#8 + rev64 v19.4S,v19.4S + ext v19.16b,v19.16b,v19.16b,#8 +.long 0xcec08414 //sm4e v20.4s,v0.4s +.long 0xcec08415 //sm4e v21.4s,v0.4s +.long 0xcec08416 //sm4e v22.4s,v0.4s +.long 0xcec08417 //sm4e v23.4s,v0.4s + +.long 0xcec08434 //sm4e v20.4s,v1.4s +.long 0xcec08435 //sm4e v21.4s,v1.4s +.long 0xcec08436 //sm4e v22.4s,v1.4s +.long 0xcec08437 //sm4e v23.4s,v1.4s + +.long 0xcec08454 //sm4e v20.4s,v2.4s +.long 0xcec08455 //sm4e v21.4s,v2.4s +.long 0xcec08456 //sm4e v22.4s,v2.4s +.long 0xcec08457 //sm4e v23.4s,v2.4s + +.long 0xcec08474 //sm4e v20.4s,v3.4s +.long 0xcec08475 //sm4e v21.4s,v3.4s +.long 0xcec08476 //sm4e v22.4s,v3.4s +.long 0xcec08477 //sm4e v23.4s,v3.4s + +.long 0xcec08494 //sm4e v20.4s,v4.4s +.long 0xcec08495 //sm4e v21.4s,v4.4s +.long 0xcec08496 //sm4e v22.4s,v4.4s +.long 0xcec08497 //sm4e v23.4s,v4.4s + +.long 0xcec084b4 //sm4e v20.4s,v5.4s +.long 0xcec084b5 //sm4e v21.4s,v5.4s +.long 0xcec084b6 //sm4e v22.4s,v5.4s +.long 0xcec084b7 //sm4e v23.4s,v5.4s + +.long 0xcec084d4 //sm4e v20.4s,v6.4s +.long 0xcec084d5 //sm4e v21.4s,v6.4s +.long 0xcec084d6 //sm4e v22.4s,v6.4s +.long 0xcec084d7 //sm4e v23.4s,v6.4s + +.long 0xcec084f4 //sm4e v20.4s,v7.4s + rev64 v20.4S,v20.4S +.long 0xcec084f5 //sm4e v21.4s,v7.4s + ext v20.16b,v20.16b,v20.16b,#8 + rev64 v21.4S,v21.4S +.long 0xcec084f6 //sm4e v22.4s,v7.4s + ext v21.16b,v21.16b,v21.16b,#8 + rev64 v22.4S,v22.4S +.long 0xcec084f7 //sm4e v23.4s,v7.4s + ext v22.16b,v22.16b,v22.16b,#8 + rev64 v23.4S,v23.4S + ext v23.16b,v23.16b,v23.16b,#8 +#ifndef __AARCH64EB__ + rev32 v16.16b,v16.16b +#endif +#ifndef __AARCH64EB__ + rev32 v17.16b,v17.16b +#endif +#ifndef __AARCH64EB__ + rev32 v18.16b,v18.16b +#endif +#ifndef __AARCH64EB__ + rev32 v19.16b,v19.16b +#endif +#ifndef __AARCH64EB__ + rev32 v20.16b,v20.16b +#endif +#ifndef __AARCH64EB__ + rev32 v21.16b,v21.16b +#endif +#ifndef __AARCH64EB__ + rev32 v22.16b,v22.16b +#endif +#ifndef __AARCH64EB__ + rev32 v23.16b,v23.16b +#endif + eor v16.16b,v16.16b,v24.16b + eor v17.16b,v17.16b,v25.16b + eor v18.16b,v18.16b,v26.16b + eor v19.16b,v19.16b,v27.16b + eor v20.16b,v20.16b,v28.16b + eor v21.16b,v21.16b,v29.16b + eor v22.16b,v22.16b,v30.16b + eor v23.16b,v23.16b,v31.16b + st1 {v16.4s,v17.4s,v18.4s,v19.4s},[x1],#64 + st1 {v20.4s,v21.4s,v22.4s,v23.4s},[x1],#64 + subs x2,x2,#8 + b.eq 3f + add w5,w5,#1 + mov v8.s[3],w5 + b 1b +2: +.long 0xcec08410 //sm4e v16.4s,v0.4s +.long 0xcec08411 //sm4e v17.4s,v0.4s +.long 0xcec08412 //sm4e v18.4s,v0.4s +.long 0xcec08413 //sm4e v19.4s,v0.4s + +.long 0xcec08430 //sm4e v16.4s,v1.4s +.long 0xcec08431 //sm4e v17.4s,v1.4s +.long 0xcec08432 //sm4e v18.4s,v1.4s +.long 0xcec08433 //sm4e v19.4s,v1.4s + +.long 0xcec08450 //sm4e v16.4s,v2.4s +.long 0xcec08451 //sm4e v17.4s,v2.4s +.long 0xcec08452 //sm4e v18.4s,v2.4s +.long 0xcec08453 //sm4e v19.4s,v2.4s + +.long 0xcec08470 //sm4e v16.4s,v3.4s +.long 0xcec08471 //sm4e v17.4s,v3.4s +.long 0xcec08472 //sm4e v18.4s,v3.4s +.long 0xcec08473 //sm4e v19.4s,v3.4s + +.long 0xcec08490 //sm4e v16.4s,v4.4s +.long 0xcec08491 //sm4e v17.4s,v4.4s +.long 0xcec08492 //sm4e v18.4s,v4.4s +.long 0xcec08493 //sm4e v19.4s,v4.4s + +.long 0xcec084b0 //sm4e v16.4s,v5.4s +.long 0xcec084b1 //sm4e v17.4s,v5.4s +.long 0xcec084b2 //sm4e v18.4s,v5.4s +.long 0xcec084b3 //sm4e v19.4s,v5.4s + +.long 0xcec084d0 //sm4e v16.4s,v6.4s +.long 0xcec084d1 //sm4e v17.4s,v6.4s +.long 0xcec084d2 //sm4e v18.4s,v6.4s +.long 0xcec084d3 //sm4e v19.4s,v6.4s + +.long 0xcec084f0 //sm4e v16.4s,v7.4s + rev64 v16.4S,v16.4S +.long 0xcec084f1 //sm4e v17.4s,v7.4s + ext v16.16b,v16.16b,v16.16b,#8 + rev64 v17.4S,v17.4S +.long 0xcec084f2 //sm4e v18.4s,v7.4s + ext v17.16b,v17.16b,v17.16b,#8 + rev64 v18.4S,v18.4S +.long 0xcec084f3 //sm4e v19.4s,v7.4s + ext v18.16b,v18.16b,v18.16b,#8 + rev64 v19.4S,v19.4S + ext v19.16b,v19.16b,v19.16b,#8 +#ifndef __AARCH64EB__ + rev32 v16.16b,v16.16b +#endif +#ifndef __AARCH64EB__ + rev32 v17.16b,v17.16b +#endif +#ifndef __AARCH64EB__ + rev32 v18.16b,v18.16b +#endif +#ifndef __AARCH64EB__ + rev32 v19.16b,v19.16b +#endif + eor v16.16b,v16.16b,v24.16b + eor v17.16b,v17.16b,v25.16b + eor v18.16b,v18.16b,v26.16b + eor v19.16b,v19.16b,v27.16b + st1 {v16.4s,v17.4s,v18.4s,v19.4s},[x1],#64 + subs x2,x2,#4 + b.eq 3f + add w5,w5,#1 + mov v8.s[3],w5 + b 1b +1: + subs x2,x2,#1 + b.lt 3f + mov v16.16b,v8.16b + ld1 {v24.4s},[x0],#16 +.long 0xcec08410 //sm4e v16.4s,v0.4s +.long 0xcec08430 //sm4e v16.4s,v1.4s +.long 0xcec08450 //sm4e v16.4s,v2.4s +.long 0xcec08470 //sm4e v16.4s,v3.4s +.long 0xcec08490 //sm4e v16.4s,v4.4s +.long 0xcec084b0 //sm4e v16.4s,v5.4s +.long 0xcec084d0 //sm4e v16.4s,v6.4s +.long 0xcec084f0 //sm4e v16.4s,v7.4s + rev64 v16.4S,v16.4S + ext v16.16b,v16.16b,v16.16b,#8 +#ifndef __AARCH64EB__ + rev32 v16.16b,v16.16b +#endif + eor v16.16b,v16.16b,v24.16b + st1 {v16.4s},[x1],#16 + b.eq 3f + add w5,w5,#1 + mov v8.s[3],w5 + b 1b +3: + ldp d8,d9,[sp],#16 + ret + diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/asm/crypto/sm4/vpsm4-armv8.S b/deps/openssl/config/archs/darwin64-arm64-cc/asm/crypto/sm4/vpsm4-armv8.S new file mode 100644 index 00000000000000..62f0fb261a1564 --- /dev/null +++ b/deps/openssl/config/archs/darwin64-arm64-cc/asm/crypto/sm4/vpsm4-armv8.S @@ -0,0 +1,5020 @@ +// Copyright 2020-2025 The OpenSSL Project Authors. All Rights Reserved. +// +// Licensed under the Apache License 2.0 (the "License"). You may not use +// this file except in compliance with the License. You can obtain a copy +// in the file LICENSE in the source distribution or at +// https://www.openssl.org/source/license.html + +// +// This module implements SM4 with ASIMD on aarch64 +// +// Feb 2022 +// + +// $output is the last argument if it looks like a file (it has an extension) +// $flavour is the first argument if it doesn't look like a file +#include "arm_arch.h" + +.text + +.section __TEXT,__const + +.align 7 +_vpsm4_consts: +Lsbox: +.byte 0xD6,0x90,0xE9,0xFE,0xCC,0xE1,0x3D,0xB7,0x16,0xB6,0x14,0xC2,0x28,0xFB,0x2C,0x05 +.byte 0x2B,0x67,0x9A,0x76,0x2A,0xBE,0x04,0xC3,0xAA,0x44,0x13,0x26,0x49,0x86,0x06,0x99 +.byte 0x9C,0x42,0x50,0xF4,0x91,0xEF,0x98,0x7A,0x33,0x54,0x0B,0x43,0xED,0xCF,0xAC,0x62 +.byte 0xE4,0xB3,0x1C,0xA9,0xC9,0x08,0xE8,0x95,0x80,0xDF,0x94,0xFA,0x75,0x8F,0x3F,0xA6 +.byte 0x47,0x07,0xA7,0xFC,0xF3,0x73,0x17,0xBA,0x83,0x59,0x3C,0x19,0xE6,0x85,0x4F,0xA8 +.byte 0x68,0x6B,0x81,0xB2,0x71,0x64,0xDA,0x8B,0xF8,0xEB,0x0F,0x4B,0x70,0x56,0x9D,0x35 +.byte 0x1E,0x24,0x0E,0x5E,0x63,0x58,0xD1,0xA2,0x25,0x22,0x7C,0x3B,0x01,0x21,0x78,0x87 +.byte 0xD4,0x00,0x46,0x57,0x9F,0xD3,0x27,0x52,0x4C,0x36,0x02,0xE7,0xA0,0xC4,0xC8,0x9E +.byte 0xEA,0xBF,0x8A,0xD2,0x40,0xC7,0x38,0xB5,0xA3,0xF7,0xF2,0xCE,0xF9,0x61,0x15,0xA1 +.byte 0xE0,0xAE,0x5D,0xA4,0x9B,0x34,0x1A,0x55,0xAD,0x93,0x32,0x30,0xF5,0x8C,0xB1,0xE3 +.byte 0x1D,0xF6,0xE2,0x2E,0x82,0x66,0xCA,0x60,0xC0,0x29,0x23,0xAB,0x0D,0x53,0x4E,0x6F +.byte 0xD5,0xDB,0x37,0x45,0xDE,0xFD,0x8E,0x2F,0x03,0xFF,0x6A,0x72,0x6D,0x6C,0x5B,0x51 +.byte 0x8D,0x1B,0xAF,0x92,0xBB,0xDD,0xBC,0x7F,0x11,0xD9,0x5C,0x41,0x1F,0x10,0x5A,0xD8 +.byte 0x0A,0xC1,0x31,0x88,0xA5,0xCD,0x7B,0xBD,0x2D,0x74,0xD0,0x12,0xB8,0xE5,0xB4,0xB0 +.byte 0x89,0x69,0x97,0x4A,0x0C,0x96,0x77,0x7E,0x65,0xB9,0xF1,0x09,0xC5,0x6E,0xC6,0x84 +.byte 0x18,0xF0,0x7D,0xEC,0x3A,0xDC,0x4D,0x20,0x79,0xEE,0x5F,0x3E,0xD7,0xCB,0x39,0x48 +Lck: +.long 0x00070E15, 0x1C232A31, 0x383F464D, 0x545B6269 +.long 0x70777E85, 0x8C939AA1, 0xA8AFB6BD, 0xC4CBD2D9 +.long 0xE0E7EEF5, 0xFC030A11, 0x181F262D, 0x343B4249 +.long 0x50575E65, 0x6C737A81, 0x888F969D, 0xA4ABB2B9 +.long 0xC0C7CED5, 0xDCE3EAF1, 0xF8FF060D, 0x141B2229 +.long 0x30373E45, 0x4C535A61, 0x686F767D, 0x848B9299 +.long 0xA0A7AEB5, 0xBCC3CAD1, 0xD8DFE6ED, 0xF4FB0209 +.long 0x10171E25, 0x2C333A41, 0x484F565D, 0x646B7279 +Lfk: +.quad 0x56aa3350a3b1bac6,0xb27022dc677d9197 +Lshuffles: +.quad 0x0B0A090807060504,0x030201000F0E0D0C +Lxts_magic: +.quad 0x0101010101010187,0x0101010101010101 + + + +.previous + + +.align 4 +_vpsm4_set_key: + AARCH64_VALID_CALL_TARGET + ld1 {v5.4s},[x0] + adrp x10,Lsbox@PAGE + add x10,x10,Lsbox@PAGEOFF + ld1 {v16.16b,v17.16b,v18.16b,v19.16b},[x10],#64 + ld1 {v20.16b,v21.16b,v22.16b,v23.16b},[x10],#64 + ld1 {v24.16b,v25.16b,v26.16b,v27.16b},[x10],#64 + ld1 {v28.16b,v29.16b,v30.16b,v31.16b},[x10] +#ifndef __AARCH64EB__ + rev32 v5.16b,v5.16b +#endif + adrp x5,Lshuffles@PAGE + add x5,x5,Lshuffles@PAGEOFF + ld1 {v7.2d},[x5] + adrp x5,Lfk@PAGE + add x5,x5,Lfk@PAGEOFF + ld1 {v6.2d},[x5] + eor v5.16b,v5.16b,v6.16b + mov x6,#32 + adrp x5,Lck@PAGE + add x5,x5,Lck@PAGEOFF + movi v0.16b,#64 + cbnz w2,1f + add x1,x1,124 +1: + mov w7,v5.s[1] + ldr w8,[x5],#4 + eor w8,w8,w7 + mov w7,v5.s[2] + eor w8,w8,w7 + mov w7,v5.s[3] + eor w8,w8,w7 + // sbox lookup + mov v4.s[0],w8 + tbl v1.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v4.16b + sub v4.16b,v4.16b,v0.16b + tbx v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v4.16b + sub v4.16b,v4.16b,v0.16b + tbx v1.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v4.16b + sub v4.16b,v4.16b,v0.16b + tbx v1.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v4.16b + mov w7,v1.s[0] + eor w8,w7,w7,ror #19 + eor w8,w8,w7,ror #9 + mov w7,v5.s[0] + eor w8,w8,w7 + mov v5.s[0],w8 + cbz w2,2f + str w8,[x1],#4 + b 3f +2: + str w8,[x1],#-4 +3: + tbl v5.16b,{v5.16b},v7.16b + subs x6,x6,#1 + b.ne 1b + ret + + +.align 4 +_vpsm4_enc_4blks: + AARCH64_VALID_CALL_TARGET + mov x10,x3 + mov w11,#8 +10: + ldp w7,w8,[x10],8 + dup v12.4s,w7 + dup v13.4s,w8 + + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + eor v14.16b,v6.16b,v7.16b + eor v12.16b,v5.16b,v12.16b + eor v12.16b,v14.16b,v12.16b + movi v0.16b,#64 + movi v1.16b,#128 + movi v2.16b,#192 + sub v0.16b,v12.16b,v0.16b + sub v1.16b,v12.16b,v1.16b + sub v2.16b,v12.16b,v2.16b + tbl v12.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v12.16b + tbl v0.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v0.16b + tbl v1.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v1.16b + tbl v2.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v2.16b + add v0.2d,v0.2d,v1.2d + add v2.2d,v2.2d,v12.2d + add v12.2d,v0.2d,v2.2d + + ushr v0.4s,v12.4s,32-2 + sli v0.4s,v12.4s,2 + ushr v2.4s,v12.4s,32-10 + eor v1.16b,v0.16b,v12.16b + sli v2.4s,v12.4s,10 + eor v1.16b,v2.16b,v1.16b + ushr v0.4s,v12.4s,32-18 + sli v0.4s,v12.4s,18 + ushr v2.4s,v12.4s,32-24 + eor v1.16b,v0.16b,v1.16b + sli v2.4s,v12.4s,24 + eor v12.16b,v2.16b,v1.16b + eor v4.16b,v4.16b,v12.16b + + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + eor v14.16b,v14.16b,v4.16b + eor v13.16b,v14.16b,v13.16b + movi v0.16b,#64 + movi v1.16b,#128 + movi v2.16b,#192 + sub v0.16b,v13.16b,v0.16b + sub v1.16b,v13.16b,v1.16b + sub v2.16b,v13.16b,v2.16b + tbl v13.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v13.16b + tbl v0.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v0.16b + tbl v1.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v1.16b + tbl v2.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v2.16b + add v0.2d,v0.2d,v1.2d + add v2.2d,v2.2d,v13.2d + add v13.2d,v0.2d,v2.2d + + ushr v0.4s,v13.4s,32-2 + sli v0.4s,v13.4s,2 + ushr v2.4s,v13.4s,32-10 + eor v1.16b,v0.16b,v13.16b + sli v2.4s,v13.4s,10 + eor v1.16b,v2.16b,v1.16b + ushr v0.4s,v13.4s,32-18 + sli v0.4s,v13.4s,18 + ushr v2.4s,v13.4s,32-24 + eor v1.16b,v0.16b,v1.16b + sli v2.4s,v13.4s,24 + eor v13.16b,v2.16b,v1.16b + ldp w7,w8,[x10],8 + eor v5.16b,v5.16b,v13.16b + + dup v12.4s,w7 + dup v13.4s,w8 + + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + eor v14.16b,v4.16b,v5.16b + eor v12.16b,v7.16b,v12.16b + eor v12.16b,v14.16b,v12.16b + movi v0.16b,#64 + movi v1.16b,#128 + movi v2.16b,#192 + sub v0.16b,v12.16b,v0.16b + sub v1.16b,v12.16b,v1.16b + sub v2.16b,v12.16b,v2.16b + tbl v12.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v12.16b + tbl v0.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v0.16b + tbl v1.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v1.16b + tbl v2.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v2.16b + add v0.2d,v0.2d,v1.2d + add v2.2d,v2.2d,v12.2d + add v12.2d,v0.2d,v2.2d + + ushr v0.4s,v12.4s,32-2 + sli v0.4s,v12.4s,2 + ushr v2.4s,v12.4s,32-10 + eor v1.16b,v0.16b,v12.16b + sli v2.4s,v12.4s,10 + eor v1.16b,v2.16b,v1.16b + ushr v0.4s,v12.4s,32-18 + sli v0.4s,v12.4s,18 + ushr v2.4s,v12.4s,32-24 + eor v1.16b,v0.16b,v1.16b + sli v2.4s,v12.4s,24 + eor v12.16b,v2.16b,v1.16b + eor v6.16b,v6.16b,v12.16b + + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + eor v14.16b,v14.16b,v6.16b + eor v13.16b,v14.16b,v13.16b + movi v0.16b,#64 + movi v1.16b,#128 + movi v2.16b,#192 + sub v0.16b,v13.16b,v0.16b + sub v1.16b,v13.16b,v1.16b + sub v2.16b,v13.16b,v2.16b + tbl v13.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v13.16b + tbl v0.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v0.16b + tbl v1.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v1.16b + tbl v2.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v2.16b + add v0.2d,v0.2d,v1.2d + add v2.2d,v2.2d,v13.2d + add v13.2d,v0.2d,v2.2d + + ushr v0.4s,v13.4s,32-2 + sli v0.4s,v13.4s,2 + ushr v2.4s,v13.4s,32-10 + eor v1.16b,v0.16b,v13.16b + sli v2.4s,v13.4s,10 + eor v1.16b,v2.16b,v1.16b + ushr v0.4s,v13.4s,32-18 + sli v0.4s,v13.4s,18 + ushr v2.4s,v13.4s,32-24 + eor v1.16b,v0.16b,v1.16b + sli v2.4s,v13.4s,24 + eor v13.16b,v2.16b,v1.16b + eor v7.16b,v7.16b,v13.16b + subs w11,w11,#1 + b.ne 10b +#ifndef __AARCH64EB__ + rev32 v3.16b,v4.16b +#else + mov v3.16b,v4.16b +#endif +#ifndef __AARCH64EB__ + rev32 v2.16b,v5.16b +#else + mov v2.16b,v5.16b +#endif +#ifndef __AARCH64EB__ + rev32 v1.16b,v6.16b +#else + mov v1.16b,v6.16b +#endif +#ifndef __AARCH64EB__ + rev32 v0.16b,v7.16b +#else + mov v0.16b,v7.16b +#endif + ret + + +.align 4 +_vpsm4_enc_8blks: + AARCH64_VALID_CALL_TARGET + mov x10,x3 + mov w11,#8 +10: + ldp w7,w8,[x10],8 + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + dup v12.4s,w7 + eor v14.16b,v6.16b,v7.16b + eor v15.16b,v10.16b,v11.16b + eor v0.16b,v5.16b,v12.16b + eor v1.16b,v9.16b,v12.16b + eor v12.16b,v14.16b,v0.16b + eor v13.16b,v15.16b,v1.16b + movi v3.16b,#64 + sub v0.16b,v12.16b,v3.16b + sub v1.16b,v0.16b,v3.16b + sub v2.16b,v1.16b,v3.16b + tbl v12.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v12.16b + tbl v0.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v0.16b + tbl v1.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v1.16b + tbl v2.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v2.16b + add v1.2d,v0.2d,v1.2d + add v12.2d,v2.2d,v12.2d + add v12.2d,v1.2d,v12.2d + + sub v0.16b,v13.16b,v3.16b + sub v1.16b,v0.16b,v3.16b + sub v2.16b,v1.16b,v3.16b + tbl v13.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v13.16b + tbl v0.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v0.16b + tbl v1.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v1.16b + tbl v2.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v2.16b + add v1.2d,v0.2d,v1.2d + add v13.2d,v2.2d,v13.2d + add v13.2d,v1.2d,v13.2d + + ushr v0.4s,v12.4s,32-2 + sli v0.4s,v12.4s,2 + ushr v2.4s,v13.4s,32-2 + eor v1.16b,v0.16b,v12.16b + sli v2.4s,v13.4s,2 + + ushr v0.4s,v12.4s,32-10 + eor v3.16b,v2.16b,v13.16b + sli v0.4s,v12.4s,10 + ushr v2.4s,v13.4s,32-10 + eor v1.16b,v0.16b,v1.16b + sli v2.4s,v13.4s,10 + + ushr v0.4s,v12.4s,32-18 + eor v3.16b,v2.16b,v3.16b + sli v0.4s,v12.4s,18 + ushr v2.4s,v13.4s,32-18 + eor v1.16b,v0.16b,v1.16b + sli v2.4s,v13.4s,18 + + ushr v0.4s,v12.4s,32-24 + eor v3.16b,v2.16b,v3.16b + sli v0.4s,v12.4s,24 + ushr v2.4s,v13.4s,32-24 + eor v12.16b,v0.16b,v1.16b + sli v2.4s,v13.4s,24 + eor v13.16b,v2.16b,v3.16b + eor v4.16b,v4.16b,v12.16b + eor v8.16b,v8.16b,v13.16b + + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + dup v13.4s,w8 + eor v14.16b,v14.16b,v4.16b + eor v15.16b,v15.16b,v8.16b + eor v12.16b,v14.16b,v13.16b + eor v13.16b,v15.16b,v13.16b + movi v3.16b,#64 + sub v0.16b,v12.16b,v3.16b + sub v1.16b,v0.16b,v3.16b + sub v2.16b,v1.16b,v3.16b + tbl v12.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v12.16b + tbl v0.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v0.16b + tbl v1.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v1.16b + tbl v2.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v2.16b + add v1.2d,v0.2d,v1.2d + add v12.2d,v2.2d,v12.2d + add v12.2d,v1.2d,v12.2d + + sub v0.16b,v13.16b,v3.16b + sub v1.16b,v0.16b,v3.16b + sub v2.16b,v1.16b,v3.16b + tbl v13.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v13.16b + tbl v0.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v0.16b + tbl v1.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v1.16b + tbl v2.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v2.16b + add v1.2d,v0.2d,v1.2d + add v13.2d,v2.2d,v13.2d + add v13.2d,v1.2d,v13.2d + + ushr v0.4s,v12.4s,32-2 + sli v0.4s,v12.4s,2 + ushr v2.4s,v13.4s,32-2 + eor v1.16b,v0.16b,v12.16b + sli v2.4s,v13.4s,2 + + ushr v0.4s,v12.4s,32-10 + eor v3.16b,v2.16b,v13.16b + sli v0.4s,v12.4s,10 + ushr v2.4s,v13.4s,32-10 + eor v1.16b,v0.16b,v1.16b + sli v2.4s,v13.4s,10 + + ushr v0.4s,v12.4s,32-18 + eor v3.16b,v2.16b,v3.16b + sli v0.4s,v12.4s,18 + ushr v2.4s,v13.4s,32-18 + eor v1.16b,v0.16b,v1.16b + sli v2.4s,v13.4s,18 + + ushr v0.4s,v12.4s,32-24 + eor v3.16b,v2.16b,v3.16b + sli v0.4s,v12.4s,24 + ushr v2.4s,v13.4s,32-24 + eor v12.16b,v0.16b,v1.16b + sli v2.4s,v13.4s,24 + eor v13.16b,v2.16b,v3.16b + ldp w7,w8,[x10],8 + eor v5.16b,v5.16b,v12.16b + eor v9.16b,v9.16b,v13.16b + + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + dup v12.4s,w7 + eor v14.16b,v4.16b,v5.16b + eor v15.16b,v8.16b,v9.16b + eor v0.16b,v7.16b,v12.16b + eor v1.16b,v11.16b,v12.16b + eor v12.16b,v14.16b,v0.16b + eor v13.16b,v15.16b,v1.16b + movi v3.16b,#64 + sub v0.16b,v12.16b,v3.16b + sub v1.16b,v0.16b,v3.16b + sub v2.16b,v1.16b,v3.16b + tbl v12.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v12.16b + tbl v0.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v0.16b + tbl v1.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v1.16b + tbl v2.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v2.16b + add v1.2d,v0.2d,v1.2d + add v12.2d,v2.2d,v12.2d + add v12.2d,v1.2d,v12.2d + + sub v0.16b,v13.16b,v3.16b + sub v1.16b,v0.16b,v3.16b + sub v2.16b,v1.16b,v3.16b + tbl v13.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v13.16b + tbl v0.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v0.16b + tbl v1.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v1.16b + tbl v2.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v2.16b + add v1.2d,v0.2d,v1.2d + add v13.2d,v2.2d,v13.2d + add v13.2d,v1.2d,v13.2d + + ushr v0.4s,v12.4s,32-2 + sli v0.4s,v12.4s,2 + ushr v2.4s,v13.4s,32-2 + eor v1.16b,v0.16b,v12.16b + sli v2.4s,v13.4s,2 + + ushr v0.4s,v12.4s,32-10 + eor v3.16b,v2.16b,v13.16b + sli v0.4s,v12.4s,10 + ushr v2.4s,v13.4s,32-10 + eor v1.16b,v0.16b,v1.16b + sli v2.4s,v13.4s,10 + + ushr v0.4s,v12.4s,32-18 + eor v3.16b,v2.16b,v3.16b + sli v0.4s,v12.4s,18 + ushr v2.4s,v13.4s,32-18 + eor v1.16b,v0.16b,v1.16b + sli v2.4s,v13.4s,18 + + ushr v0.4s,v12.4s,32-24 + eor v3.16b,v2.16b,v3.16b + sli v0.4s,v12.4s,24 + ushr v2.4s,v13.4s,32-24 + eor v12.16b,v0.16b,v1.16b + sli v2.4s,v13.4s,24 + eor v13.16b,v2.16b,v3.16b + eor v6.16b,v6.16b,v12.16b + eor v10.16b,v10.16b,v13.16b + + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + dup v13.4s,w8 + eor v14.16b,v14.16b,v6.16b + eor v15.16b,v15.16b,v10.16b + eor v12.16b,v14.16b,v13.16b + eor v13.16b,v15.16b,v13.16b + movi v3.16b,#64 + sub v0.16b,v12.16b,v3.16b + sub v1.16b,v0.16b,v3.16b + sub v2.16b,v1.16b,v3.16b + tbl v12.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v12.16b + tbl v0.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v0.16b + tbl v1.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v1.16b + tbl v2.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v2.16b + add v1.2d,v0.2d,v1.2d + add v12.2d,v2.2d,v12.2d + add v12.2d,v1.2d,v12.2d + + sub v0.16b,v13.16b,v3.16b + sub v1.16b,v0.16b,v3.16b + sub v2.16b,v1.16b,v3.16b + tbl v13.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v13.16b + tbl v0.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v0.16b + tbl v1.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v1.16b + tbl v2.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v2.16b + add v1.2d,v0.2d,v1.2d + add v13.2d,v2.2d,v13.2d + add v13.2d,v1.2d,v13.2d + + ushr v0.4s,v12.4s,32-2 + sli v0.4s,v12.4s,2 + ushr v2.4s,v13.4s,32-2 + eor v1.16b,v0.16b,v12.16b + sli v2.4s,v13.4s,2 + + ushr v0.4s,v12.4s,32-10 + eor v3.16b,v2.16b,v13.16b + sli v0.4s,v12.4s,10 + ushr v2.4s,v13.4s,32-10 + eor v1.16b,v0.16b,v1.16b + sli v2.4s,v13.4s,10 + + ushr v0.4s,v12.4s,32-18 + eor v3.16b,v2.16b,v3.16b + sli v0.4s,v12.4s,18 + ushr v2.4s,v13.4s,32-18 + eor v1.16b,v0.16b,v1.16b + sli v2.4s,v13.4s,18 + + ushr v0.4s,v12.4s,32-24 + eor v3.16b,v2.16b,v3.16b + sli v0.4s,v12.4s,24 + ushr v2.4s,v13.4s,32-24 + eor v12.16b,v0.16b,v1.16b + sli v2.4s,v13.4s,24 + eor v13.16b,v2.16b,v3.16b + eor v7.16b,v7.16b,v12.16b + eor v11.16b,v11.16b,v13.16b + subs w11,w11,#1 + b.ne 10b +#ifndef __AARCH64EB__ + rev32 v3.16b,v4.16b +#else + mov v3.16b,v4.16b +#endif +#ifndef __AARCH64EB__ + rev32 v2.16b,v5.16b +#else + mov v2.16b,v5.16b +#endif +#ifndef __AARCH64EB__ + rev32 v1.16b,v6.16b +#else + mov v1.16b,v6.16b +#endif +#ifndef __AARCH64EB__ + rev32 v0.16b,v7.16b +#else + mov v0.16b,v7.16b +#endif +#ifndef __AARCH64EB__ + rev32 v7.16b,v8.16b +#else + mov v7.16b,v8.16b +#endif +#ifndef __AARCH64EB__ + rev32 v6.16b,v9.16b +#else + mov v6.16b,v9.16b +#endif +#ifndef __AARCH64EB__ + rev32 v5.16b,v10.16b +#else + mov v5.16b,v10.16b +#endif +#ifndef __AARCH64EB__ + rev32 v4.16b,v11.16b +#else + mov v4.16b,v11.16b +#endif + ret + +.globl _vpsm4_set_encrypt_key + +.align 5 +_vpsm4_set_encrypt_key: + AARCH64_SIGN_LINK_REGISTER + stp x29,x30,[sp,#-16]! + mov w2,1 + bl _vpsm4_set_key + ldp x29,x30,[sp],#16 + AARCH64_VALIDATE_LINK_REGISTER + ret + +.globl _vpsm4_set_decrypt_key + +.align 5 +_vpsm4_set_decrypt_key: + AARCH64_SIGN_LINK_REGISTER + stp x29,x30,[sp,#-16]! + mov w2,0 + bl _vpsm4_set_key + ldp x29,x30,[sp],#16 + AARCH64_VALIDATE_LINK_REGISTER + ret + +.globl _vpsm4_encrypt + +.align 5 +_vpsm4_encrypt: + AARCH64_VALID_CALL_TARGET + ld1 {v4.4s},[x0] + adrp x10,Lsbox@PAGE + add x10,x10,Lsbox@PAGEOFF + ld1 {v16.16b,v17.16b,v18.16b,v19.16b},[x10],#64 + ld1 {v20.16b,v21.16b,v22.16b,v23.16b},[x10],#64 + ld1 {v24.16b,v25.16b,v26.16b,v27.16b},[x10],#64 + ld1 {v28.16b,v29.16b,v30.16b,v31.16b},[x10] +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif + mov x3,x2 + mov x10,x3 + mov w11,#8 + mov w12,v4.s[0] + mov w13,v4.s[1] + mov w14,v4.s[2] + mov w15,v4.s[3] +10: + ldp w7,w8,[x10],8 + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + eor w6,w14,w15 + eor w9,w7,w13 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w12,w12,w6 + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + eor w6,w14,w15 + eor w9,w12,w8 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + ldp w7,w8,[x10],8 + eor w13,w13,w6 + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + eor w6,w12,w13 + eor w9,w7,w15 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w14,w14,w6 + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + eor w6,w12,w13 + eor w9,w14,w8 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w15,w15,w6 + subs w11,w11,#1 + b.ne 10b + mov v4.s[0],w15 + mov v4.s[1],w14 + mov v4.s[2],w13 + mov v4.s[3],w12 +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif + st1 {v4.4s},[x1] + ret + +.globl _vpsm4_decrypt + +.align 5 +_vpsm4_decrypt: + AARCH64_VALID_CALL_TARGET + ld1 {v4.4s},[x0] + adrp x10,Lsbox@PAGE + add x10,x10,Lsbox@PAGEOFF + ld1 {v16.16b,v17.16b,v18.16b,v19.16b},[x10],#64 + ld1 {v20.16b,v21.16b,v22.16b,v23.16b},[x10],#64 + ld1 {v24.16b,v25.16b,v26.16b,v27.16b},[x10],#64 + ld1 {v28.16b,v29.16b,v30.16b,v31.16b},[x10] +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif + mov x3,x2 + mov x10,x3 + mov w11,#8 + mov w12,v4.s[0] + mov w13,v4.s[1] + mov w14,v4.s[2] + mov w15,v4.s[3] +10: + ldp w7,w8,[x10],8 + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + eor w6,w14,w15 + eor w9,w7,w13 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w12,w12,w6 + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + eor w6,w14,w15 + eor w9,w12,w8 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + ldp w7,w8,[x10],8 + eor w13,w13,w6 + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + eor w6,w12,w13 + eor w9,w7,w15 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w14,w14,w6 + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + eor w6,w12,w13 + eor w9,w14,w8 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w15,w15,w6 + subs w11,w11,#1 + b.ne 10b + mov v4.s[0],w15 + mov v4.s[1],w14 + mov v4.s[2],w13 + mov v4.s[3],w12 +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif + st1 {v4.4s},[x1] + ret + +.globl _vpsm4_ecb_encrypt + +.align 5 +_vpsm4_ecb_encrypt: + AARCH64_SIGN_LINK_REGISTER + // convert length into blocks + lsr x2,x2,4 + stp d8,d9,[sp,#-80]! + stp d10,d11,[sp,#16] + stp d12,d13,[sp,#32] + stp d14,d15,[sp,#48] + stp x29,x30,[sp,#64] + adrp x10,Lsbox@PAGE + add x10,x10,Lsbox@PAGEOFF + ld1 {v16.16b,v17.16b,v18.16b,v19.16b},[x10],#64 + ld1 {v20.16b,v21.16b,v22.16b,v23.16b},[x10],#64 + ld1 {v24.16b,v25.16b,v26.16b,v27.16b},[x10],#64 + ld1 {v28.16b,v29.16b,v30.16b,v31.16b},[x10] +Lecb_8_blocks_process: + cmp w2,#8 + b.lt Lecb_4_blocks_process + ld4 {v4.4s,v5.4s,v6.4s,v7.4s},[x0],#64 + ld4 {v8.4s,v9.4s,v10.4s,v11.4s},[x0],#64 +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif +#ifndef __AARCH64EB__ + rev32 v5.16b,v5.16b +#endif +#ifndef __AARCH64EB__ + rev32 v6.16b,v6.16b +#endif +#ifndef __AARCH64EB__ + rev32 v7.16b,v7.16b +#endif +#ifndef __AARCH64EB__ + rev32 v8.16b,v8.16b +#endif +#ifndef __AARCH64EB__ + rev32 v9.16b,v9.16b +#endif +#ifndef __AARCH64EB__ + rev32 v10.16b,v10.16b +#endif +#ifndef __AARCH64EB__ + rev32 v11.16b,v11.16b +#endif + bl _vpsm4_enc_8blks + st4 {v0.4s,v1.4s,v2.4s,v3.4s},[x1],#64 + st4 {v4.4s,v5.4s,v6.4s,v7.4s},[x1],#64 + subs w2,w2,#8 + b.gt Lecb_8_blocks_process + b 100f +Lecb_4_blocks_process: + cmp w2,#4 + b.lt 1f + ld4 {v4.4s,v5.4s,v6.4s,v7.4s},[x0],#64 +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif +#ifndef __AARCH64EB__ + rev32 v5.16b,v5.16b +#endif +#ifndef __AARCH64EB__ + rev32 v6.16b,v6.16b +#endif +#ifndef __AARCH64EB__ + rev32 v7.16b,v7.16b +#endif + bl _vpsm4_enc_4blks + st4 {v0.4s,v1.4s,v2.4s,v3.4s},[x1],#64 + sub w2,w2,#4 +1: + // process last block + cmp w2,#1 + b.lt 100f + b.gt 1f + ld1 {v4.4s},[x0] +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif + mov x10,x3 + mov w11,#8 + mov w12,v4.s[0] + mov w13,v4.s[1] + mov w14,v4.s[2] + mov w15,v4.s[3] +10: + ldp w7,w8,[x10],8 + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + eor w6,w14,w15 + eor w9,w7,w13 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w12,w12,w6 + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + eor w6,w14,w15 + eor w9,w12,w8 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + ldp w7,w8,[x10],8 + eor w13,w13,w6 + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + eor w6,w12,w13 + eor w9,w7,w15 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w14,w14,w6 + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + eor w6,w12,w13 + eor w9,w14,w8 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w15,w15,w6 + subs w11,w11,#1 + b.ne 10b + mov v4.s[0],w15 + mov v4.s[1],w14 + mov v4.s[2],w13 + mov v4.s[3],w12 +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif + st1 {v4.4s},[x1] + b 100f +1: // process last 2 blocks + ld4 {v4.s,v5.s,v6.s,v7.s}[0],[x0],#16 + ld4 {v4.s,v5.s,v6.s,v7.s}[1],[x0],#16 + cmp w2,#2 + b.gt 1f +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif +#ifndef __AARCH64EB__ + rev32 v5.16b,v5.16b +#endif +#ifndef __AARCH64EB__ + rev32 v6.16b,v6.16b +#endif +#ifndef __AARCH64EB__ + rev32 v7.16b,v7.16b +#endif + bl _vpsm4_enc_4blks + st4 {v0.s,v1.s,v2.s,v3.s}[0],[x1],#16 + st4 {v0.s,v1.s,v2.s,v3.s}[1],[x1] + b 100f +1: // process last 3 blocks + ld4 {v4.s,v5.s,v6.s,v7.s}[2],[x0],#16 +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif +#ifndef __AARCH64EB__ + rev32 v5.16b,v5.16b +#endif +#ifndef __AARCH64EB__ + rev32 v6.16b,v6.16b +#endif +#ifndef __AARCH64EB__ + rev32 v7.16b,v7.16b +#endif + bl _vpsm4_enc_4blks + st4 {v0.s,v1.s,v2.s,v3.s}[0],[x1],#16 + st4 {v0.s,v1.s,v2.s,v3.s}[1],[x1],#16 + st4 {v0.s,v1.s,v2.s,v3.s}[2],[x1] +100: + ldp d10,d11,[sp,#16] + ldp d12,d13,[sp,#32] + ldp d14,d15,[sp,#48] + ldp x29,x30,[sp,#64] + ldp d8,d9,[sp],#80 + AARCH64_VALIDATE_LINK_REGISTER + ret + +.globl _vpsm4_cbc_encrypt + +.align 5 +_vpsm4_cbc_encrypt: + AARCH64_VALID_CALL_TARGET + lsr x2,x2,4 + adrp x10,Lsbox@PAGE + add x10,x10,Lsbox@PAGEOFF + ld1 {v16.16b,v17.16b,v18.16b,v19.16b},[x10],#64 + ld1 {v20.16b,v21.16b,v22.16b,v23.16b},[x10],#64 + ld1 {v24.16b,v25.16b,v26.16b,v27.16b},[x10],#64 + ld1 {v28.16b,v29.16b,v30.16b,v31.16b},[x10] + cbz w5,Ldec + ld1 {v3.4s},[x4] +Lcbc_4_blocks_enc: + cmp w2,#4 + b.lt 1f + ld1 {v4.4s,v5.4s,v6.4s,v7.4s},[x0],#64 + eor v4.16b,v4.16b,v3.16b +#ifndef __AARCH64EB__ + rev32 v5.16b,v5.16b +#endif +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif +#ifndef __AARCH64EB__ + rev32 v6.16b,v6.16b +#endif +#ifndef __AARCH64EB__ + rev32 v7.16b,v7.16b +#endif + mov x10,x3 + mov w11,#8 + mov w12,v4.s[0] + mov w13,v4.s[1] + mov w14,v4.s[2] + mov w15,v4.s[3] +10: + ldp w7,w8,[x10],8 + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + eor w6,w14,w15 + eor w9,w7,w13 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w12,w12,w6 + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + eor w6,w14,w15 + eor w9,w12,w8 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + ldp w7,w8,[x10],8 + eor w13,w13,w6 + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + eor w6,w12,w13 + eor w9,w7,w15 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w14,w14,w6 + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + eor w6,w12,w13 + eor w9,w14,w8 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w15,w15,w6 + subs w11,w11,#1 + b.ne 10b + mov v4.s[0],w15 + mov v4.s[1],w14 + mov v4.s[2],w13 + mov v4.s[3],w12 + eor v5.16b,v5.16b,v4.16b + mov x10,x3 + mov w11,#8 + mov w12,v5.s[0] + mov w13,v5.s[1] + mov w14,v5.s[2] + mov w15,v5.s[3] +10: + ldp w7,w8,[x10],8 + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + eor w6,w14,w15 + eor w9,w7,w13 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w12,w12,w6 + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + eor w6,w14,w15 + eor w9,w12,w8 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + ldp w7,w8,[x10],8 + eor w13,w13,w6 + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + eor w6,w12,w13 + eor w9,w7,w15 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w14,w14,w6 + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + eor w6,w12,w13 + eor w9,w14,w8 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w15,w15,w6 + subs w11,w11,#1 + b.ne 10b + mov v5.s[0],w15 + mov v5.s[1],w14 + mov v5.s[2],w13 + mov v5.s[3],w12 +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif + eor v6.16b,v6.16b,v5.16b + mov x10,x3 + mov w11,#8 + mov w12,v6.s[0] + mov w13,v6.s[1] + mov w14,v6.s[2] + mov w15,v6.s[3] +10: + ldp w7,w8,[x10],8 + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + eor w6,w14,w15 + eor w9,w7,w13 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w12,w12,w6 + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + eor w6,w14,w15 + eor w9,w12,w8 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + ldp w7,w8,[x10],8 + eor w13,w13,w6 + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + eor w6,w12,w13 + eor w9,w7,w15 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w14,w14,w6 + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + eor w6,w12,w13 + eor w9,w14,w8 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w15,w15,w6 + subs w11,w11,#1 + b.ne 10b + mov v6.s[0],w15 + mov v6.s[1],w14 + mov v6.s[2],w13 + mov v6.s[3],w12 +#ifndef __AARCH64EB__ + rev32 v5.16b,v5.16b +#endif + eor v7.16b,v7.16b,v6.16b + mov x10,x3 + mov w11,#8 + mov w12,v7.s[0] + mov w13,v7.s[1] + mov w14,v7.s[2] + mov w15,v7.s[3] +10: + ldp w7,w8,[x10],8 + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + eor w6,w14,w15 + eor w9,w7,w13 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w12,w12,w6 + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + eor w6,w14,w15 + eor w9,w12,w8 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + ldp w7,w8,[x10],8 + eor w13,w13,w6 + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + eor w6,w12,w13 + eor w9,w7,w15 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w14,w14,w6 + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + eor w6,w12,w13 + eor w9,w14,w8 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w15,w15,w6 + subs w11,w11,#1 + b.ne 10b + mov v7.s[0],w15 + mov v7.s[1],w14 + mov v7.s[2],w13 + mov v7.s[3],w12 +#ifndef __AARCH64EB__ + rev32 v6.16b,v6.16b +#endif +#ifndef __AARCH64EB__ + rev32 v7.16b,v7.16b +#endif + orr v3.16b,v7.16b,v7.16b + st1 {v4.4s,v5.4s,v6.4s,v7.4s},[x1],#64 + subs w2,w2,#4 + b.ne Lcbc_4_blocks_enc + b 2f +1: + subs w2,w2,#1 + b.lt 2f + ld1 {v4.4s},[x0],#16 + eor v3.16b,v3.16b,v4.16b +#ifndef __AARCH64EB__ + rev32 v3.16b,v3.16b +#endif + mov x10,x3 + mov w11,#8 + mov w12,v3.s[0] + mov w13,v3.s[1] + mov w14,v3.s[2] + mov w15,v3.s[3] +10: + ldp w7,w8,[x10],8 + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + eor w6,w14,w15 + eor w9,w7,w13 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w12,w12,w6 + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + eor w6,w14,w15 + eor w9,w12,w8 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + ldp w7,w8,[x10],8 + eor w13,w13,w6 + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + eor w6,w12,w13 + eor w9,w7,w15 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w14,w14,w6 + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + eor w6,w12,w13 + eor w9,w14,w8 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w15,w15,w6 + subs w11,w11,#1 + b.ne 10b + mov v3.s[0],w15 + mov v3.s[1],w14 + mov v3.s[2],w13 + mov v3.s[3],w12 +#ifndef __AARCH64EB__ + rev32 v3.16b,v3.16b +#endif + st1 {v3.4s},[x1],#16 + b 1b +2: + // save back IV + st1 {v3.4s},[x4] + ret + +Ldec: + // decryption mode starts + AARCH64_SIGN_LINK_REGISTER + stp d8,d9,[sp,#-80]! + stp d10,d11,[sp,#16] + stp d12,d13,[sp,#32] + stp d14,d15,[sp,#48] + stp x29,x30,[sp,#64] +Lcbc_8_blocks_dec: + cmp w2,#8 + b.lt 1f + ld4 {v4.4s,v5.4s,v6.4s,v7.4s},[x0] + add x10,x0,#64 + ld4 {v8.4s,v9.4s,v10.4s,v11.4s},[x10] +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif +#ifndef __AARCH64EB__ + rev32 v5.16b,v5.16b +#endif +#ifndef __AARCH64EB__ + rev32 v6.16b,v6.16b +#endif +#ifndef __AARCH64EB__ + rev32 v7.16b,v7.16b +#endif +#ifndef __AARCH64EB__ + rev32 v8.16b,v8.16b +#endif +#ifndef __AARCH64EB__ + rev32 v9.16b,v9.16b +#endif +#ifndef __AARCH64EB__ + rev32 v10.16b,v10.16b +#endif +#ifndef __AARCH64EB__ + rev32 v11.16b,v11.16b +#endif + bl _vpsm4_enc_8blks + zip1 v8.4s,v0.4s,v1.4s + zip2 v9.4s,v0.4s,v1.4s + zip1 v10.4s,v2.4s,v3.4s + zip2 v11.4s,v2.4s,v3.4s + zip1 v0.2d,v8.2d,v10.2d + zip2 v1.2d,v8.2d,v10.2d + zip1 v2.2d,v9.2d,v11.2d + zip2 v3.2d,v9.2d,v11.2d + zip1 v8.4s,v4.4s,v5.4s + zip2 v9.4s,v4.4s,v5.4s + zip1 v10.4s,v6.4s,v7.4s + zip2 v11.4s,v6.4s,v7.4s + zip1 v4.2d,v8.2d,v10.2d + zip2 v5.2d,v8.2d,v10.2d + zip1 v6.2d,v9.2d,v11.2d + zip2 v7.2d,v9.2d,v11.2d + ld1 {v15.4s},[x4] + ld1 {v8.4s,v9.4s,v10.4s,v11.4s},[x0],#64 + // note ivec1 and vtmpx[3] are reusing the same register + // care needs to be taken to avoid conflict + eor v0.16b,v0.16b,v15.16b + ld1 {v12.4s,v13.4s,v14.4s,v15.4s},[x0],#64 + eor v1.16b,v1.16b,v8.16b + eor v2.16b,v2.16b,v9.16b + eor v3.16b,v3.16b,v10.16b + // save back IV + st1 {v15.4s}, [x4] + eor v4.16b,v4.16b,v11.16b + eor v5.16b,v5.16b,v12.16b + eor v6.16b,v6.16b,v13.16b + eor v7.16b,v7.16b,v14.16b + st1 {v0.4s,v1.4s,v2.4s,v3.4s},[x1],#64 + st1 {v4.4s,v5.4s,v6.4s,v7.4s},[x1],#64 + subs w2,w2,#8 + b.gt Lcbc_8_blocks_dec + b.eq 100f +1: + ld1 {v15.4s},[x4] +Lcbc_4_blocks_dec: + cmp w2,#4 + b.lt 1f + ld4 {v4.4s,v5.4s,v6.4s,v7.4s},[x0] +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif +#ifndef __AARCH64EB__ + rev32 v5.16b,v5.16b +#endif +#ifndef __AARCH64EB__ + rev32 v6.16b,v6.16b +#endif +#ifndef __AARCH64EB__ + rev32 v7.16b,v7.16b +#endif + bl _vpsm4_enc_4blks + ld1 {v4.4s,v5.4s,v6.4s,v7.4s},[x0],#64 + zip1 v8.4s,v0.4s,v1.4s + zip2 v9.4s,v0.4s,v1.4s + zip1 v10.4s,v2.4s,v3.4s + zip2 v11.4s,v2.4s,v3.4s + zip1 v0.2d,v8.2d,v10.2d + zip2 v1.2d,v8.2d,v10.2d + zip1 v2.2d,v9.2d,v11.2d + zip2 v3.2d,v9.2d,v11.2d + eor v0.16b,v0.16b,v15.16b + eor v1.16b,v1.16b,v4.16b + orr v15.16b,v7.16b,v7.16b + eor v2.16b,v2.16b,v5.16b + eor v3.16b,v3.16b,v6.16b + st1 {v0.4s,v1.4s,v2.4s,v3.4s},[x1],#64 + subs w2,w2,#4 + b.gt Lcbc_4_blocks_dec + // save back IV + st1 {v7.4s}, [x4] + b 100f +1: // last block + subs w2,w2,#1 + b.lt 100f + b.gt 1f + ld1 {v4.4s},[x0],#16 + // save back IV + st1 {v4.4s}, [x4] +#ifndef __AARCH64EB__ + rev32 v8.16b,v4.16b +#else + mov v8.16b,v4.16b +#endif + mov x10,x3 + mov w11,#8 + mov w12,v8.s[0] + mov w13,v8.s[1] + mov w14,v8.s[2] + mov w15,v8.s[3] +10: + ldp w7,w8,[x10],8 + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + eor w6,w14,w15 + eor w9,w7,w13 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w12,w12,w6 + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + eor w6,w14,w15 + eor w9,w12,w8 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + ldp w7,w8,[x10],8 + eor w13,w13,w6 + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + eor w6,w12,w13 + eor w9,w7,w15 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w14,w14,w6 + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + eor w6,w12,w13 + eor w9,w14,w8 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w15,w15,w6 + subs w11,w11,#1 + b.ne 10b + mov v8.s[0],w15 + mov v8.s[1],w14 + mov v8.s[2],w13 + mov v8.s[3],w12 +#ifndef __AARCH64EB__ + rev32 v8.16b,v8.16b +#endif + eor v8.16b,v8.16b,v15.16b + st1 {v8.4s},[x1],#16 + b 100f +1: // last two blocks + ld4 {v4.s,v5.s,v6.s,v7.s}[0],[x0] + add x10,x0,#16 + ld4 {v4.s,v5.s,v6.s,v7.s}[1],[x10],#16 + subs w2,w2,1 + b.gt 1f +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif +#ifndef __AARCH64EB__ + rev32 v5.16b,v5.16b +#endif +#ifndef __AARCH64EB__ + rev32 v6.16b,v6.16b +#endif +#ifndef __AARCH64EB__ + rev32 v7.16b,v7.16b +#endif + bl _vpsm4_enc_4blks + ld1 {v4.4s,v5.4s},[x0],#32 + zip1 v8.4s,v0.4s,v1.4s + zip2 v9.4s,v0.4s,v1.4s + zip1 v10.4s,v2.4s,v3.4s + zip2 v11.4s,v2.4s,v3.4s + zip1 v0.2d,v8.2d,v10.2d + zip2 v1.2d,v8.2d,v10.2d + zip1 v2.2d,v9.2d,v11.2d + zip2 v3.2d,v9.2d,v11.2d + eor v0.16b,v0.16b,v15.16b + eor v1.16b,v1.16b,v4.16b + st1 {v0.4s,v1.4s},[x1],#32 + // save back IV + st1 {v5.4s}, [x4] + b 100f +1: // last 3 blocks + ld4 {v4.s,v5.s,v6.s,v7.s}[2],[x10] +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif +#ifndef __AARCH64EB__ + rev32 v5.16b,v5.16b +#endif +#ifndef __AARCH64EB__ + rev32 v6.16b,v6.16b +#endif +#ifndef __AARCH64EB__ + rev32 v7.16b,v7.16b +#endif + bl _vpsm4_enc_4blks + ld1 {v4.4s,v5.4s,v6.4s},[x0],#48 + zip1 v8.4s,v0.4s,v1.4s + zip2 v9.4s,v0.4s,v1.4s + zip1 v10.4s,v2.4s,v3.4s + zip2 v11.4s,v2.4s,v3.4s + zip1 v0.2d,v8.2d,v10.2d + zip2 v1.2d,v8.2d,v10.2d + zip1 v2.2d,v9.2d,v11.2d + zip2 v3.2d,v9.2d,v11.2d + eor v0.16b,v0.16b,v15.16b + eor v1.16b,v1.16b,v4.16b + eor v2.16b,v2.16b,v5.16b + st1 {v0.4s,v1.4s,v2.4s},[x1],#48 + // save back IV + st1 {v6.4s}, [x4] +100: + ldp d10,d11,[sp,#16] + ldp d12,d13,[sp,#32] + ldp d14,d15,[sp,#48] + ldp x29,x30,[sp,#64] + ldp d8,d9,[sp],#80 + AARCH64_VALIDATE_LINK_REGISTER + ret + +.globl _vpsm4_ctr32_encrypt_blocks + +.align 5 +_vpsm4_ctr32_encrypt_blocks: + AARCH64_VALID_CALL_TARGET + ld1 {v3.4s},[x4] +#ifndef __AARCH64EB__ + rev32 v3.16b,v3.16b +#endif + adrp x10,Lsbox@PAGE + add x10,x10,Lsbox@PAGEOFF + ld1 {v16.16b,v17.16b,v18.16b,v19.16b},[x10],#64 + ld1 {v20.16b,v21.16b,v22.16b,v23.16b},[x10],#64 + ld1 {v24.16b,v25.16b,v26.16b,v27.16b},[x10],#64 + ld1 {v28.16b,v29.16b,v30.16b,v31.16b},[x10] + cmp w2,#1 + b.ne 1f + // fast processing for one single block without + // context saving overhead + mov x10,x3 + mov w11,#8 + mov w12,v3.s[0] + mov w13,v3.s[1] + mov w14,v3.s[2] + mov w15,v3.s[3] +10: + ldp w7,w8,[x10],8 + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + eor w6,w14,w15 + eor w9,w7,w13 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w12,w12,w6 + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + eor w6,w14,w15 + eor w9,w12,w8 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + ldp w7,w8,[x10],8 + eor w13,w13,w6 + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + eor w6,w12,w13 + eor w9,w7,w15 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w14,w14,w6 + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + eor w6,w12,w13 + eor w9,w14,w8 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w15,w15,w6 + subs w11,w11,#1 + b.ne 10b + mov v3.s[0],w15 + mov v3.s[1],w14 + mov v3.s[2],w13 + mov v3.s[3],w12 +#ifndef __AARCH64EB__ + rev32 v3.16b,v3.16b +#endif + ld1 {v4.4s},[x0] + eor v4.16b,v4.16b,v3.16b + st1 {v4.4s},[x1] + ret +1: + AARCH64_SIGN_LINK_REGISTER + stp d8,d9,[sp,#-80]! + stp d10,d11,[sp,#16] + stp d12,d13,[sp,#32] + stp d14,d15,[sp,#48] + stp x29,x30,[sp,#64] + mov w12,v3.s[0] + mov w13,v3.s[1] + mov w14,v3.s[2] + mov w5,v3.s[3] +Lctr32_4_blocks_process: + cmp w2,#4 + b.lt 1f + dup v4.4s,w12 + dup v5.4s,w13 + dup v6.4s,w14 + mov v7.s[0],w5 + add w5,w5,#1 + mov v7.s[1],w5 + add w5,w5,#1 + mov v7.s[2],w5 + add w5,w5,#1 + mov v7.s[3],w5 + add w5,w5,#1 + cmp w2,#8 + b.ge Lctr32_8_blocks_process + bl _vpsm4_enc_4blks + ld4 {v12.4s,v13.4s,v14.4s,v15.4s},[x0],#64 + eor v0.16b,v0.16b,v12.16b + eor v1.16b,v1.16b,v13.16b + eor v2.16b,v2.16b,v14.16b + eor v3.16b,v3.16b,v15.16b + st4 {v0.4s,v1.4s,v2.4s,v3.4s},[x1],#64 + subs w2,w2,#4 + b.ne Lctr32_4_blocks_process + b 100f +Lctr32_8_blocks_process: + dup v8.4s,w12 + dup v9.4s,w13 + dup v10.4s,w14 + mov v11.s[0],w5 + add w5,w5,#1 + mov v11.s[1],w5 + add w5,w5,#1 + mov v11.s[2],w5 + add w5,w5,#1 + mov v11.s[3],w5 + add w5,w5,#1 + bl _vpsm4_enc_8blks + ld4 {v12.4s,v13.4s,v14.4s,v15.4s},[x0],#64 + ld4 {v8.4s,v9.4s,v10.4s,v11.4s},[x0],#64 + eor v0.16b,v0.16b,v12.16b + eor v1.16b,v1.16b,v13.16b + eor v2.16b,v2.16b,v14.16b + eor v3.16b,v3.16b,v15.16b + eor v4.16b,v4.16b,v8.16b + eor v5.16b,v5.16b,v9.16b + eor v6.16b,v6.16b,v10.16b + eor v7.16b,v7.16b,v11.16b + st4 {v0.4s,v1.4s,v2.4s,v3.4s},[x1],#64 + st4 {v4.4s,v5.4s,v6.4s,v7.4s},[x1],#64 + subs w2,w2,#8 + b.ne Lctr32_4_blocks_process + b 100f +1: // last block processing + subs w2,w2,#1 + b.lt 100f + b.gt 1f + mov v3.s[0],w12 + mov v3.s[1],w13 + mov v3.s[2],w14 + mov v3.s[3],w5 + mov x10,x3 + mov w11,#8 + mov w12,v3.s[0] + mov w13,v3.s[1] + mov w14,v3.s[2] + mov w15,v3.s[3] +10: + ldp w7,w8,[x10],8 + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + eor w6,w14,w15 + eor w9,w7,w13 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w12,w12,w6 + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + eor w6,w14,w15 + eor w9,w12,w8 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + ldp w7,w8,[x10],8 + eor w13,w13,w6 + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + eor w6,w12,w13 + eor w9,w7,w15 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w14,w14,w6 + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + eor w6,w12,w13 + eor w9,w14,w8 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w15,w15,w6 + subs w11,w11,#1 + b.ne 10b + mov v3.s[0],w15 + mov v3.s[1],w14 + mov v3.s[2],w13 + mov v3.s[3],w12 +#ifndef __AARCH64EB__ + rev32 v3.16b,v3.16b +#endif + ld1 {v4.4s},[x0] + eor v4.16b,v4.16b,v3.16b + st1 {v4.4s},[x1] + b 100f +1: // last 2 blocks processing + dup v4.4s,w12 + dup v5.4s,w13 + dup v6.4s,w14 + mov v7.s[0],w5 + add w5,w5,#1 + mov v7.s[1],w5 + subs w2,w2,#1 + b.ne 1f + bl _vpsm4_enc_4blks + ld4 {v12.s,v13.s,v14.s,v15.s}[0],[x0],#16 + ld4 {v12.s,v13.s,v14.s,v15.s}[1],[x0],#16 + eor v0.16b,v0.16b,v12.16b + eor v1.16b,v1.16b,v13.16b + eor v2.16b,v2.16b,v14.16b + eor v3.16b,v3.16b,v15.16b + st4 {v0.s,v1.s,v2.s,v3.s}[0],[x1],#16 + st4 {v0.s,v1.s,v2.s,v3.s}[1],[x1],#16 + b 100f +1: // last 3 blocks processing + add w5,w5,#1 + mov v7.s[2],w5 + bl _vpsm4_enc_4blks + ld4 {v12.s,v13.s,v14.s,v15.s}[0],[x0],#16 + ld4 {v12.s,v13.s,v14.s,v15.s}[1],[x0],#16 + ld4 {v12.s,v13.s,v14.s,v15.s}[2],[x0],#16 + eor v0.16b,v0.16b,v12.16b + eor v1.16b,v1.16b,v13.16b + eor v2.16b,v2.16b,v14.16b + eor v3.16b,v3.16b,v15.16b + st4 {v0.s,v1.s,v2.s,v3.s}[0],[x1],#16 + st4 {v0.s,v1.s,v2.s,v3.s}[1],[x1],#16 + st4 {v0.s,v1.s,v2.s,v3.s}[2],[x1],#16 +100: + ldp d10,d11,[sp,#16] + ldp d12,d13,[sp,#32] + ldp d14,d15,[sp,#48] + ldp x29,x30,[sp,#64] + ldp d8,d9,[sp],#80 + AARCH64_VALIDATE_LINK_REGISTER + ret + +.globl _vpsm4_xts_encrypt_gb + +.align 5 +_vpsm4_xts_encrypt_gb: + AARCH64_SIGN_LINK_REGISTER + stp x15, x16, [sp, #-0x10]! + stp x17, x18, [sp, #-0x10]! + stp x19, x20, [sp, #-0x10]! + stp x21, x22, [sp, #-0x10]! + stp x23, x24, [sp, #-0x10]! + stp x25, x26, [sp, #-0x10]! + stp x27, x28, [sp, #-0x10]! + stp x29, x30, [sp, #-0x10]! + stp d8, d9, [sp, #-0x10]! + stp d10, d11, [sp, #-0x10]! + stp d12, d13, [sp, #-0x10]! + stp d14, d15, [sp, #-0x10]! + mov x26,x3 + mov x27,x4 + mov w28,w6 + ld1 {v8.4s}, [x5] + mov x3,x27 + adrp x10,Lsbox@PAGE + add x10,x10,Lsbox@PAGEOFF + ld1 {v16.16b,v17.16b,v18.16b,v19.16b},[x10],#64 + ld1 {v20.16b,v21.16b,v22.16b,v23.16b},[x10],#64 + ld1 {v24.16b,v25.16b,v26.16b,v27.16b},[x10],#64 + ld1 {v28.16b,v29.16b,v30.16b,v31.16b},[x10] +#ifndef __AARCH64EB__ + rev32 v8.16b,v8.16b +#endif + mov x10,x3 + mov w11,#8 + mov w12,v8.s[0] + mov w13,v8.s[1] + mov w14,v8.s[2] + mov w15,v8.s[3] +10: + ldp w7,w8,[x10],8 + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + eor w6,w14,w15 + eor w9,w7,w13 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w12,w12,w6 + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + eor w6,w14,w15 + eor w9,w12,w8 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + ldp w7,w8,[x10],8 + eor w13,w13,w6 + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + eor w6,w12,w13 + eor w9,w7,w15 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w14,w14,w6 + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + eor w6,w12,w13 + eor w9,w14,w8 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w15,w15,w6 + subs w11,w11,#1 + b.ne 10b + mov v8.s[0],w15 + mov v8.s[1],w14 + mov v8.s[2],w13 + mov v8.s[3],w12 +#ifndef __AARCH64EB__ + rev32 v8.16b,v8.16b +#endif + mov x3,x26 + and x29,x2,#0x0F + // convert length into blocks + lsr x2,x2,4 + cmp x2,#1 + b.lt .return_gb + + cmp x29,0 + // If the encryption/decryption Length is N times of 16, + // the all blocks are encrypted/decrypted in .xts_encrypt_blocks_gb + b.eq .xts_encrypt_blocks_gb + + // If the encryption/decryption length is not N times of 16, + // the last two blocks are encrypted/decrypted in .last_2blks_tweak_gb or .only_2blks_tweak_gb + // the other blocks are encrypted/decrypted in .xts_encrypt_blocks_gb + subs x2,x2,#1 + b.eq .only_2blks_tweak_gb +.xts_encrypt_blocks_gb: + rbit v8.16b,v8.16b +#ifdef __AARCH64EB__ + rev32 v8.16b,v8.16b +#endif + mov x12,v8.d[0] + mov x13,v8.d[1] + mov w7,0x87 + extr x9,x13,x13,#32 + extr x15,x13,x12,#63 + and w8,w7,w9,asr#31 + eor x14,x8,x12,lsl#1 + mov w7,0x87 + extr x9,x15,x15,#32 + extr x17,x15,x14,#63 + and w8,w7,w9,asr#31 + eor x16,x8,x14,lsl#1 + mov w7,0x87 + extr x9,x17,x17,#32 + extr x19,x17,x16,#63 + and w8,w7,w9,asr#31 + eor x18,x8,x16,lsl#1 + mov w7,0x87 + extr x9,x19,x19,#32 + extr x21,x19,x18,#63 + and w8,w7,w9,asr#31 + eor x20,x8,x18,lsl#1 + mov w7,0x87 + extr x9,x21,x21,#32 + extr x23,x21,x20,#63 + and w8,w7,w9,asr#31 + eor x22,x8,x20,lsl#1 + mov w7,0x87 + extr x9,x23,x23,#32 + extr x25,x23,x22,#63 + and w8,w7,w9,asr#31 + eor x24,x8,x22,lsl#1 + mov w7,0x87 + extr x9,x25,x25,#32 + extr x27,x25,x24,#63 + and w8,w7,w9,asr#31 + eor x26,x8,x24,lsl#1 +Lxts_8_blocks_process_gb: + cmp x2,#8 + b.lt Lxts_4_blocks_process_gb + mov v0.d[0],x12 + mov v0.d[1],x13 +#ifdef __AARCH64EB__ + rev32 v0.16b,v0.16b +#endif + mov v1.d[0],x14 + mov v1.d[1],x15 +#ifdef __AARCH64EB__ + rev32 v1.16b,v1.16b +#endif + mov v2.d[0],x16 + mov v2.d[1],x17 +#ifdef __AARCH64EB__ + rev32 v2.16b,v2.16b +#endif + mov v3.d[0],x18 + mov v3.d[1],x19 +#ifdef __AARCH64EB__ + rev32 v3.16b,v3.16b +#endif + mov v12.d[0],x20 + mov v12.d[1],x21 +#ifdef __AARCH64EB__ + rev32 v12.16b,v12.16b +#endif + mov v13.d[0],x22 + mov v13.d[1],x23 +#ifdef __AARCH64EB__ + rev32 v13.16b,v13.16b +#endif + mov v14.d[0],x24 + mov v14.d[1],x25 +#ifdef __AARCH64EB__ + rev32 v14.16b,v14.16b +#endif + mov v15.d[0],x26 + mov v15.d[1],x27 +#ifdef __AARCH64EB__ + rev32 v15.16b,v15.16b +#endif + ld1 {v4.4s,v5.4s,v6.4s,v7.4s},[x0],#64 + rbit v0.16b,v0.16b + rbit v1.16b,v1.16b + rbit v2.16b,v2.16b + rbit v3.16b,v3.16b + eor v4.16b, v4.16b, v0.16b + eor v5.16b, v5.16b, v1.16b + eor v6.16b, v6.16b, v2.16b + eor v7.16b, v7.16b, v3.16b + ld1 {v8.4s,v9.4s,v10.4s,v11.4s},[x0],#64 + rbit v12.16b,v12.16b + rbit v13.16b,v13.16b + rbit v14.16b,v14.16b + rbit v15.16b,v15.16b + eor v8.16b, v8.16b, v12.16b + eor v9.16b, v9.16b, v13.16b + eor v10.16b, v10.16b, v14.16b + eor v11.16b, v11.16b, v15.16b +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif +#ifndef __AARCH64EB__ + rev32 v5.16b,v5.16b +#endif +#ifndef __AARCH64EB__ + rev32 v6.16b,v6.16b +#endif +#ifndef __AARCH64EB__ + rev32 v7.16b,v7.16b +#endif +#ifndef __AARCH64EB__ + rev32 v8.16b,v8.16b +#endif +#ifndef __AARCH64EB__ + rev32 v9.16b,v9.16b +#endif +#ifndef __AARCH64EB__ + rev32 v10.16b,v10.16b +#endif +#ifndef __AARCH64EB__ + rev32 v11.16b,v11.16b +#endif + zip1 v0.4s,v4.4s,v5.4s + zip2 v1.4s,v4.4s,v5.4s + zip1 v2.4s,v6.4s,v7.4s + zip2 v3.4s,v6.4s,v7.4s + zip1 v4.2d,v0.2d,v2.2d + zip2 v5.2d,v0.2d,v2.2d + zip1 v6.2d,v1.2d,v3.2d + zip2 v7.2d,v1.2d,v3.2d + zip1 v0.4s,v8.4s,v9.4s + zip2 v1.4s,v8.4s,v9.4s + zip1 v2.4s,v10.4s,v11.4s + zip2 v3.4s,v10.4s,v11.4s + zip1 v8.2d,v0.2d,v2.2d + zip2 v9.2d,v0.2d,v2.2d + zip1 v10.2d,v1.2d,v3.2d + zip2 v11.2d,v1.2d,v3.2d + bl _vpsm4_enc_8blks + zip1 v8.4s,v0.4s,v1.4s + zip2 v9.4s,v0.4s,v1.4s + zip1 v10.4s,v2.4s,v3.4s + zip2 v11.4s,v2.4s,v3.4s + zip1 v0.2d,v8.2d,v10.2d + zip2 v1.2d,v8.2d,v10.2d + zip1 v2.2d,v9.2d,v11.2d + zip2 v3.2d,v9.2d,v11.2d + zip1 v8.4s,v4.4s,v5.4s + zip2 v9.4s,v4.4s,v5.4s + zip1 v10.4s,v6.4s,v7.4s + zip2 v11.4s,v6.4s,v7.4s + zip1 v4.2d,v8.2d,v10.2d + zip2 v5.2d,v8.2d,v10.2d + zip1 v6.2d,v9.2d,v11.2d + zip2 v7.2d,v9.2d,v11.2d + mov v12.d[0],x12 + mov v12.d[1],x13 +#ifdef __AARCH64EB__ + rev32 v12.16b,v12.16b +#endif + mov w7,0x87 + extr x9,x27,x27,#32 + extr x13,x27,x26,#63 + and w8,w7,w9,asr#31 + eor x12,x8,x26,lsl#1 + mov v13.d[0],x14 + mov v13.d[1],x15 +#ifdef __AARCH64EB__ + rev32 v13.16b,v13.16b +#endif + mov w7,0x87 + extr x9,x13,x13,#32 + extr x15,x13,x12,#63 + and w8,w7,w9,asr#31 + eor x14,x8,x12,lsl#1 + mov v14.d[0],x16 + mov v14.d[1],x17 +#ifdef __AARCH64EB__ + rev32 v14.16b,v14.16b +#endif + mov w7,0x87 + extr x9,x15,x15,#32 + extr x17,x15,x14,#63 + and w8,w7,w9,asr#31 + eor x16,x8,x14,lsl#1 + mov v15.d[0],x18 + mov v15.d[1],x19 +#ifdef __AARCH64EB__ + rev32 v15.16b,v15.16b +#endif + mov w7,0x87 + extr x9,x17,x17,#32 + extr x19,x17,x16,#63 + and w8,w7,w9,asr#31 + eor x18,x8,x16,lsl#1 + mov v8.d[0],x20 + mov v8.d[1],x21 +#ifdef __AARCH64EB__ + rev32 v8.16b,v8.16b +#endif + mov w7,0x87 + extr x9,x19,x19,#32 + extr x21,x19,x18,#63 + and w8,w7,w9,asr#31 + eor x20,x8,x18,lsl#1 + mov v9.d[0],x22 + mov v9.d[1],x23 +#ifdef __AARCH64EB__ + rev32 v9.16b,v9.16b +#endif + mov w7,0x87 + extr x9,x21,x21,#32 + extr x23,x21,x20,#63 + and w8,w7,w9,asr#31 + eor x22,x8,x20,lsl#1 + mov v10.d[0],x24 + mov v10.d[1],x25 +#ifdef __AARCH64EB__ + rev32 v10.16b,v10.16b +#endif + mov w7,0x87 + extr x9,x23,x23,#32 + extr x25,x23,x22,#63 + and w8,w7,w9,asr#31 + eor x24,x8,x22,lsl#1 + mov v11.d[0],x26 + mov v11.d[1],x27 +#ifdef __AARCH64EB__ + rev32 v11.16b,v11.16b +#endif + mov w7,0x87 + extr x9,x25,x25,#32 + extr x27,x25,x24,#63 + and w8,w7,w9,asr#31 + eor x26,x8,x24,lsl#1 + eor v0.16b, v0.16b, v12.16b + eor v1.16b, v1.16b, v13.16b + eor v2.16b, v2.16b, v14.16b + eor v3.16b, v3.16b, v15.16b + eor v4.16b, v4.16b, v8.16b + eor v5.16b, v5.16b, v9.16b + eor v6.16b, v6.16b, v10.16b + eor v7.16b, v7.16b, v11.16b + + // save the last tweak + st1 {v11.4s},[x5] + st1 {v0.4s,v1.4s,v2.4s,v3.4s},[x1],#64 + st1 {v4.4s,v5.4s,v6.4s,v7.4s},[x1],#64 + subs x2,x2,#8 + b.gt Lxts_8_blocks_process_gb + b 100f +Lxts_4_blocks_process_gb: + mov v8.d[0],x12 + mov v8.d[1],x13 +#ifdef __AARCH64EB__ + rev32 v8.16b,v8.16b +#endif + mov v9.d[0],x14 + mov v9.d[1],x15 +#ifdef __AARCH64EB__ + rev32 v9.16b,v9.16b +#endif + mov v10.d[0],x16 + mov v10.d[1],x17 +#ifdef __AARCH64EB__ + rev32 v10.16b,v10.16b +#endif + mov v11.d[0],x18 + mov v11.d[1],x19 +#ifdef __AARCH64EB__ + rev32 v11.16b,v11.16b +#endif + cmp x2,#4 + b.lt 1f + ld1 {v4.4s,v5.4s,v6.4s,v7.4s},[x0],#64 + rbit v8.16b,v8.16b + rbit v9.16b,v9.16b + rbit v10.16b,v10.16b + rbit v11.16b,v11.16b + eor v4.16b, v4.16b, v8.16b + eor v5.16b, v5.16b, v9.16b + eor v6.16b, v6.16b, v10.16b + eor v7.16b, v7.16b, v11.16b +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif +#ifndef __AARCH64EB__ + rev32 v5.16b,v5.16b +#endif +#ifndef __AARCH64EB__ + rev32 v6.16b,v6.16b +#endif +#ifndef __AARCH64EB__ + rev32 v7.16b,v7.16b +#endif + zip1 v0.4s,v4.4s,v5.4s + zip2 v1.4s,v4.4s,v5.4s + zip1 v2.4s,v6.4s,v7.4s + zip2 v3.4s,v6.4s,v7.4s + zip1 v4.2d,v0.2d,v2.2d + zip2 v5.2d,v0.2d,v2.2d + zip1 v6.2d,v1.2d,v3.2d + zip2 v7.2d,v1.2d,v3.2d + bl _vpsm4_enc_4blks + zip1 v4.4s,v0.4s,v1.4s + zip2 v5.4s,v0.4s,v1.4s + zip1 v6.4s,v2.4s,v3.4s + zip2 v7.4s,v2.4s,v3.4s + zip1 v0.2d,v4.2d,v6.2d + zip2 v1.2d,v4.2d,v6.2d + zip1 v2.2d,v5.2d,v7.2d + zip2 v3.2d,v5.2d,v7.2d + eor v0.16b, v0.16b, v8.16b + eor v1.16b, v1.16b, v9.16b + eor v2.16b, v2.16b, v10.16b + eor v3.16b, v3.16b, v11.16b + st1 {v0.4s,v1.4s,v2.4s,v3.4s},[x1],#64 + sub x2,x2,#4 + mov v8.d[0],x20 + mov v8.d[1],x21 +#ifdef __AARCH64EB__ + rev32 v8.16b,v8.16b +#endif + mov v9.d[0],x22 + mov v9.d[1],x23 +#ifdef __AARCH64EB__ + rev32 v9.16b,v9.16b +#endif + mov v10.d[0],x24 + mov v10.d[1],x25 +#ifdef __AARCH64EB__ + rev32 v10.16b,v10.16b +#endif + // save the last tweak + st1 {v11.4s},[x5] +1: + // process last block + cmp x2,#1 + b.lt 100f + b.gt 1f + ld1 {v4.4s},[x0],#16 + rbit v8.16b,v8.16b + eor v4.16b, v4.16b, v8.16b +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif + mov x10,x3 + mov w11,#8 + mov w12,v4.s[0] + mov w13,v4.s[1] + mov w14,v4.s[2] + mov w15,v4.s[3] +10: + ldp w7,w8,[x10],8 + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + eor w6,w14,w15 + eor w9,w7,w13 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w12,w12,w6 + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + eor w6,w14,w15 + eor w9,w12,w8 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + ldp w7,w8,[x10],8 + eor w13,w13,w6 + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + eor w6,w12,w13 + eor w9,w7,w15 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w14,w14,w6 + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + eor w6,w12,w13 + eor w9,w14,w8 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w15,w15,w6 + subs w11,w11,#1 + b.ne 10b + mov v4.s[0],w15 + mov v4.s[1],w14 + mov v4.s[2],w13 + mov v4.s[3],w12 +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif + eor v4.16b, v4.16b, v8.16b + st1 {v4.4s},[x1],#16 + // save the last tweak + st1 {v8.4s},[x5] + b 100f +1: // process last 2 blocks + cmp x2,#2 + b.gt 1f + ld1 {v4.4s,v5.4s},[x0],#32 + rbit v8.16b,v8.16b + rbit v9.16b,v9.16b + eor v4.16b, v4.16b, v8.16b + eor v5.16b, v5.16b, v9.16b +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif +#ifndef __AARCH64EB__ + rev32 v5.16b,v5.16b +#endif + zip1 v0.4s,v4.4s,v5.4s + zip2 v1.4s,v4.4s,v5.4s + zip1 v2.4s,v6.4s,v7.4s + zip2 v3.4s,v6.4s,v7.4s + zip1 v4.2d,v0.2d,v2.2d + zip2 v5.2d,v0.2d,v2.2d + zip1 v6.2d,v1.2d,v3.2d + zip2 v7.2d,v1.2d,v3.2d + bl _vpsm4_enc_4blks + zip1 v4.4s,v0.4s,v1.4s + zip2 v5.4s,v0.4s,v1.4s + zip1 v6.4s,v2.4s,v3.4s + zip2 v7.4s,v2.4s,v3.4s + zip1 v0.2d,v4.2d,v6.2d + zip2 v1.2d,v4.2d,v6.2d + zip1 v2.2d,v5.2d,v7.2d + zip2 v3.2d,v5.2d,v7.2d + eor v0.16b, v0.16b, v8.16b + eor v1.16b, v1.16b, v9.16b + st1 {v0.4s,v1.4s},[x1],#32 + // save the last tweak + st1 {v9.4s},[x5] + b 100f +1: // process last 3 blocks + ld1 {v4.4s,v5.4s,v6.4s},[x0],#48 + rbit v8.16b,v8.16b + rbit v9.16b,v9.16b + rbit v10.16b,v10.16b + eor v4.16b, v4.16b, v8.16b + eor v5.16b, v5.16b, v9.16b + eor v6.16b, v6.16b, v10.16b +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif +#ifndef __AARCH64EB__ + rev32 v5.16b,v5.16b +#endif +#ifndef __AARCH64EB__ + rev32 v6.16b,v6.16b +#endif + zip1 v0.4s,v4.4s,v5.4s + zip2 v1.4s,v4.4s,v5.4s + zip1 v2.4s,v6.4s,v7.4s + zip2 v3.4s,v6.4s,v7.4s + zip1 v4.2d,v0.2d,v2.2d + zip2 v5.2d,v0.2d,v2.2d + zip1 v6.2d,v1.2d,v3.2d + zip2 v7.2d,v1.2d,v3.2d + bl _vpsm4_enc_4blks + zip1 v4.4s,v0.4s,v1.4s + zip2 v5.4s,v0.4s,v1.4s + zip1 v6.4s,v2.4s,v3.4s + zip2 v7.4s,v2.4s,v3.4s + zip1 v0.2d,v4.2d,v6.2d + zip2 v1.2d,v4.2d,v6.2d + zip1 v2.2d,v5.2d,v7.2d + zip2 v3.2d,v5.2d,v7.2d + eor v0.16b, v0.16b, v8.16b + eor v1.16b, v1.16b, v9.16b + eor v2.16b, v2.16b, v10.16b + st1 {v0.4s,v1.4s,v2.4s},[x1],#48 + // save the last tweak + st1 {v10.4s},[x5] +100: + cmp x29,0 + b.eq .return_gb + +// This branch calculates the last two tweaks, +// while the encryption/decryption length is larger than 32 +.last_2blks_tweak_gb: + ld1 {v8.4s},[x5] +#ifdef __AARCH64EB__ + rev32 v8.16b,v8.16b +#endif + rbit v2.16b,v8.16b + adrp x10,Lxts_magic@PAGE + ldr q0, [x10, Lxts_magic@PAGEOFF] + shl v9.16b, v2.16b, #1 + ext v1.16b, v2.16b, v2.16b,#15 + ushr v1.16b, v1.16b, #7 + mul v1.16b, v1.16b, v0.16b + eor v9.16b, v9.16b, v1.16b + rbit v9.16b,v9.16b + rbit v2.16b,v9.16b + adrp x10,Lxts_magic@PAGE + ldr q0, [x10, Lxts_magic@PAGEOFF] + shl v10.16b, v2.16b, #1 + ext v1.16b, v2.16b, v2.16b,#15 + ushr v1.16b, v1.16b, #7 + mul v1.16b, v1.16b, v0.16b + eor v10.16b, v10.16b, v1.16b + rbit v10.16b,v10.16b + b .check_dec_gb + + +// This branch calculates the last two tweaks, +// while the encryption/decryption length is equal to 32, who only need two tweaks +.only_2blks_tweak_gb: + mov v9.16b,v8.16b +#ifdef __AARCH64EB__ + rev32 v9.16b,v9.16b +#endif + rbit v2.16b,v9.16b + adrp x10,Lxts_magic@PAGE + ldr q0, [x10, Lxts_magic@PAGEOFF] + shl v10.16b, v2.16b, #1 + ext v1.16b, v2.16b, v2.16b,#15 + ushr v1.16b, v1.16b, #7 + mul v1.16b, v1.16b, v0.16b + eor v10.16b, v10.16b, v1.16b + rbit v10.16b,v10.16b + b .check_dec_gb + + +// Determine whether encryption or decryption is required. +// The last two tweaks need to be swapped for decryption. +.check_dec_gb: + // encryption:1 decryption:0 + cmp w28,1 + b.eq .process_last_2blks_gb + mov v0.16B,v9.16b + mov v9.16B,v10.16b + mov v10.16B,v0.16b + +.process_last_2blks_gb: +#ifdef __AARCH64EB__ + rev32 v9.16b,v9.16b +#endif +#ifdef __AARCH64EB__ + rev32 v10.16b,v10.16b +#endif + ld1 {v4.4s},[x0],#16 + eor v4.16b, v4.16b, v9.16b +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif + mov x10,x3 + mov w11,#8 + mov w12,v4.s[0] + mov w13,v4.s[1] + mov w14,v4.s[2] + mov w15,v4.s[3] +10: + ldp w7,w8,[x10],8 + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + eor w6,w14,w15 + eor w9,w7,w13 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w12,w12,w6 + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + eor w6,w14,w15 + eor w9,w12,w8 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + ldp w7,w8,[x10],8 + eor w13,w13,w6 + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + eor w6,w12,w13 + eor w9,w7,w15 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w14,w14,w6 + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + eor w6,w12,w13 + eor w9,w14,w8 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w15,w15,w6 + subs w11,w11,#1 + b.ne 10b + mov v4.s[0],w15 + mov v4.s[1],w14 + mov v4.s[2],w13 + mov v4.s[3],w12 +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif + eor v4.16b, v4.16b, v9.16b + st1 {v4.4s},[x1],#16 + + sub x26,x1,16 +.loop_gb: + subs x29,x29,1 + ldrb w7,[x26,x29] + ldrb w8,[x0,x29] + strb w8,[x26,x29] + strb w7,[x1,x29] + b.gt .loop_gb + ld1 {v4.4s}, [x26] + eor v4.16b, v4.16b, v10.16b +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif + mov x10,x3 + mov w11,#8 + mov w12,v4.s[0] + mov w13,v4.s[1] + mov w14,v4.s[2] + mov w15,v4.s[3] +10: + ldp w7,w8,[x10],8 + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + eor w6,w14,w15 + eor w9,w7,w13 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w12,w12,w6 + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + eor w6,w14,w15 + eor w9,w12,w8 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + ldp w7,w8,[x10],8 + eor w13,w13,w6 + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + eor w6,w12,w13 + eor w9,w7,w15 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w14,w14,w6 + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + eor w6,w12,w13 + eor w9,w14,w8 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w15,w15,w6 + subs w11,w11,#1 + b.ne 10b + mov v4.s[0],w15 + mov v4.s[1],w14 + mov v4.s[2],w13 + mov v4.s[3],w12 +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif + eor v4.16b, v4.16b, v10.16b + st1 {v4.4s}, [x26] +.return_gb: + ldp d14, d15, [sp], #0x10 + ldp d12, d13, [sp], #0x10 + ldp d10, d11, [sp], #0x10 + ldp d8, d9, [sp], #0x10 + ldp x29, x30, [sp], #0x10 + ldp x27, x28, [sp], #0x10 + ldp x25, x26, [sp], #0x10 + ldp x23, x24, [sp], #0x10 + ldp x21, x22, [sp], #0x10 + ldp x19, x20, [sp], #0x10 + ldp x17, x18, [sp], #0x10 + ldp x15, x16, [sp], #0x10 + AARCH64_VALIDATE_LINK_REGISTER + ret + +.globl _vpsm4_xts_encrypt + +.align 5 +_vpsm4_xts_encrypt: + AARCH64_SIGN_LINK_REGISTER + stp x15, x16, [sp, #-0x10]! + stp x17, x18, [sp, #-0x10]! + stp x19, x20, [sp, #-0x10]! + stp x21, x22, [sp, #-0x10]! + stp x23, x24, [sp, #-0x10]! + stp x25, x26, [sp, #-0x10]! + stp x27, x28, [sp, #-0x10]! + stp x29, x30, [sp, #-0x10]! + stp d8, d9, [sp, #-0x10]! + stp d10, d11, [sp, #-0x10]! + stp d12, d13, [sp, #-0x10]! + stp d14, d15, [sp, #-0x10]! + mov x26,x3 + mov x27,x4 + mov w28,w6 + ld1 {v8.4s}, [x5] + mov x3,x27 + adrp x10,Lsbox@PAGE + add x10,x10,Lsbox@PAGEOFF + ld1 {v16.16b,v17.16b,v18.16b,v19.16b},[x10],#64 + ld1 {v20.16b,v21.16b,v22.16b,v23.16b},[x10],#64 + ld1 {v24.16b,v25.16b,v26.16b,v27.16b},[x10],#64 + ld1 {v28.16b,v29.16b,v30.16b,v31.16b},[x10] +#ifndef __AARCH64EB__ + rev32 v8.16b,v8.16b +#endif + mov x10,x3 + mov w11,#8 + mov w12,v8.s[0] + mov w13,v8.s[1] + mov w14,v8.s[2] + mov w15,v8.s[3] +10: + ldp w7,w8,[x10],8 + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + eor w6,w14,w15 + eor w9,w7,w13 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w12,w12,w6 + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + eor w6,w14,w15 + eor w9,w12,w8 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + ldp w7,w8,[x10],8 + eor w13,w13,w6 + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + eor w6,w12,w13 + eor w9,w7,w15 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w14,w14,w6 + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + eor w6,w12,w13 + eor w9,w14,w8 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w15,w15,w6 + subs w11,w11,#1 + b.ne 10b + mov v8.s[0],w15 + mov v8.s[1],w14 + mov v8.s[2],w13 + mov v8.s[3],w12 +#ifndef __AARCH64EB__ + rev32 v8.16b,v8.16b +#endif + mov x3,x26 + and x29,x2,#0x0F + // convert length into blocks + lsr x2,x2,4 + cmp x2,#1 + b.lt .return + + cmp x29,0 + // If the encryption/decryption Length is N times of 16, + // the all blocks are encrypted/decrypted in .xts_encrypt_blocks + b.eq .xts_encrypt_blocks + + // If the encryption/decryption length is not N times of 16, + // the last two blocks are encrypted/decrypted in .last_2blks_tweak or .only_2blks_tweak + // the other blocks are encrypted/decrypted in .xts_encrypt_blocks + subs x2,x2,#1 + b.eq .only_2blks_tweak +.xts_encrypt_blocks: +#ifdef __AARCH64EB__ + rev32 v8.16b,v8.16b +#endif + mov x12,v8.d[0] + mov x13,v8.d[1] + mov w7,0x87 + extr x9,x13,x13,#32 + extr x15,x13,x12,#63 + and w8,w7,w9,asr#31 + eor x14,x8,x12,lsl#1 + mov w7,0x87 + extr x9,x15,x15,#32 + extr x17,x15,x14,#63 + and w8,w7,w9,asr#31 + eor x16,x8,x14,lsl#1 + mov w7,0x87 + extr x9,x17,x17,#32 + extr x19,x17,x16,#63 + and w8,w7,w9,asr#31 + eor x18,x8,x16,lsl#1 + mov w7,0x87 + extr x9,x19,x19,#32 + extr x21,x19,x18,#63 + and w8,w7,w9,asr#31 + eor x20,x8,x18,lsl#1 + mov w7,0x87 + extr x9,x21,x21,#32 + extr x23,x21,x20,#63 + and w8,w7,w9,asr#31 + eor x22,x8,x20,lsl#1 + mov w7,0x87 + extr x9,x23,x23,#32 + extr x25,x23,x22,#63 + and w8,w7,w9,asr#31 + eor x24,x8,x22,lsl#1 + mov w7,0x87 + extr x9,x25,x25,#32 + extr x27,x25,x24,#63 + and w8,w7,w9,asr#31 + eor x26,x8,x24,lsl#1 +Lxts_8_blocks_process: + cmp x2,#8 + b.lt Lxts_4_blocks_process + mov v0.d[0],x12 + mov v0.d[1],x13 +#ifdef __AARCH64EB__ + rev32 v0.16b,v0.16b +#endif + mov v1.d[0],x14 + mov v1.d[1],x15 +#ifdef __AARCH64EB__ + rev32 v1.16b,v1.16b +#endif + mov v2.d[0],x16 + mov v2.d[1],x17 +#ifdef __AARCH64EB__ + rev32 v2.16b,v2.16b +#endif + mov v3.d[0],x18 + mov v3.d[1],x19 +#ifdef __AARCH64EB__ + rev32 v3.16b,v3.16b +#endif + mov v12.d[0],x20 + mov v12.d[1],x21 +#ifdef __AARCH64EB__ + rev32 v12.16b,v12.16b +#endif + mov v13.d[0],x22 + mov v13.d[1],x23 +#ifdef __AARCH64EB__ + rev32 v13.16b,v13.16b +#endif + mov v14.d[0],x24 + mov v14.d[1],x25 +#ifdef __AARCH64EB__ + rev32 v14.16b,v14.16b +#endif + mov v15.d[0],x26 + mov v15.d[1],x27 +#ifdef __AARCH64EB__ + rev32 v15.16b,v15.16b +#endif + ld1 {v4.4s,v5.4s,v6.4s,v7.4s},[x0],#64 + eor v4.16b, v4.16b, v0.16b + eor v5.16b, v5.16b, v1.16b + eor v6.16b, v6.16b, v2.16b + eor v7.16b, v7.16b, v3.16b + ld1 {v8.4s,v9.4s,v10.4s,v11.4s},[x0],#64 + eor v8.16b, v8.16b, v12.16b + eor v9.16b, v9.16b, v13.16b + eor v10.16b, v10.16b, v14.16b + eor v11.16b, v11.16b, v15.16b +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif +#ifndef __AARCH64EB__ + rev32 v5.16b,v5.16b +#endif +#ifndef __AARCH64EB__ + rev32 v6.16b,v6.16b +#endif +#ifndef __AARCH64EB__ + rev32 v7.16b,v7.16b +#endif +#ifndef __AARCH64EB__ + rev32 v8.16b,v8.16b +#endif +#ifndef __AARCH64EB__ + rev32 v9.16b,v9.16b +#endif +#ifndef __AARCH64EB__ + rev32 v10.16b,v10.16b +#endif +#ifndef __AARCH64EB__ + rev32 v11.16b,v11.16b +#endif + zip1 v0.4s,v4.4s,v5.4s + zip2 v1.4s,v4.4s,v5.4s + zip1 v2.4s,v6.4s,v7.4s + zip2 v3.4s,v6.4s,v7.4s + zip1 v4.2d,v0.2d,v2.2d + zip2 v5.2d,v0.2d,v2.2d + zip1 v6.2d,v1.2d,v3.2d + zip2 v7.2d,v1.2d,v3.2d + zip1 v0.4s,v8.4s,v9.4s + zip2 v1.4s,v8.4s,v9.4s + zip1 v2.4s,v10.4s,v11.4s + zip2 v3.4s,v10.4s,v11.4s + zip1 v8.2d,v0.2d,v2.2d + zip2 v9.2d,v0.2d,v2.2d + zip1 v10.2d,v1.2d,v3.2d + zip2 v11.2d,v1.2d,v3.2d + bl _vpsm4_enc_8blks + zip1 v8.4s,v0.4s,v1.4s + zip2 v9.4s,v0.4s,v1.4s + zip1 v10.4s,v2.4s,v3.4s + zip2 v11.4s,v2.4s,v3.4s + zip1 v0.2d,v8.2d,v10.2d + zip2 v1.2d,v8.2d,v10.2d + zip1 v2.2d,v9.2d,v11.2d + zip2 v3.2d,v9.2d,v11.2d + zip1 v8.4s,v4.4s,v5.4s + zip2 v9.4s,v4.4s,v5.4s + zip1 v10.4s,v6.4s,v7.4s + zip2 v11.4s,v6.4s,v7.4s + zip1 v4.2d,v8.2d,v10.2d + zip2 v5.2d,v8.2d,v10.2d + zip1 v6.2d,v9.2d,v11.2d + zip2 v7.2d,v9.2d,v11.2d + mov v12.d[0],x12 + mov v12.d[1],x13 +#ifdef __AARCH64EB__ + rev32 v12.16b,v12.16b +#endif + mov w7,0x87 + extr x9,x27,x27,#32 + extr x13,x27,x26,#63 + and w8,w7,w9,asr#31 + eor x12,x8,x26,lsl#1 + mov v13.d[0],x14 + mov v13.d[1],x15 +#ifdef __AARCH64EB__ + rev32 v13.16b,v13.16b +#endif + mov w7,0x87 + extr x9,x13,x13,#32 + extr x15,x13,x12,#63 + and w8,w7,w9,asr#31 + eor x14,x8,x12,lsl#1 + mov v14.d[0],x16 + mov v14.d[1],x17 +#ifdef __AARCH64EB__ + rev32 v14.16b,v14.16b +#endif + mov w7,0x87 + extr x9,x15,x15,#32 + extr x17,x15,x14,#63 + and w8,w7,w9,asr#31 + eor x16,x8,x14,lsl#1 + mov v15.d[0],x18 + mov v15.d[1],x19 +#ifdef __AARCH64EB__ + rev32 v15.16b,v15.16b +#endif + mov w7,0x87 + extr x9,x17,x17,#32 + extr x19,x17,x16,#63 + and w8,w7,w9,asr#31 + eor x18,x8,x16,lsl#1 + mov v8.d[0],x20 + mov v8.d[1],x21 +#ifdef __AARCH64EB__ + rev32 v8.16b,v8.16b +#endif + mov w7,0x87 + extr x9,x19,x19,#32 + extr x21,x19,x18,#63 + and w8,w7,w9,asr#31 + eor x20,x8,x18,lsl#1 + mov v9.d[0],x22 + mov v9.d[1],x23 +#ifdef __AARCH64EB__ + rev32 v9.16b,v9.16b +#endif + mov w7,0x87 + extr x9,x21,x21,#32 + extr x23,x21,x20,#63 + and w8,w7,w9,asr#31 + eor x22,x8,x20,lsl#1 + mov v10.d[0],x24 + mov v10.d[1],x25 +#ifdef __AARCH64EB__ + rev32 v10.16b,v10.16b +#endif + mov w7,0x87 + extr x9,x23,x23,#32 + extr x25,x23,x22,#63 + and w8,w7,w9,asr#31 + eor x24,x8,x22,lsl#1 + mov v11.d[0],x26 + mov v11.d[1],x27 +#ifdef __AARCH64EB__ + rev32 v11.16b,v11.16b +#endif + mov w7,0x87 + extr x9,x25,x25,#32 + extr x27,x25,x24,#63 + and w8,w7,w9,asr#31 + eor x26,x8,x24,lsl#1 + eor v0.16b, v0.16b, v12.16b + eor v1.16b, v1.16b, v13.16b + eor v2.16b, v2.16b, v14.16b + eor v3.16b, v3.16b, v15.16b + eor v4.16b, v4.16b, v8.16b + eor v5.16b, v5.16b, v9.16b + eor v6.16b, v6.16b, v10.16b + eor v7.16b, v7.16b, v11.16b + + // save the last tweak + st1 {v11.4s},[x5] + st1 {v0.4s,v1.4s,v2.4s,v3.4s},[x1],#64 + st1 {v4.4s,v5.4s,v6.4s,v7.4s},[x1],#64 + subs x2,x2,#8 + b.gt Lxts_8_blocks_process + b 100f +Lxts_4_blocks_process: + mov v8.d[0],x12 + mov v8.d[1],x13 +#ifdef __AARCH64EB__ + rev32 v8.16b,v8.16b +#endif + mov v9.d[0],x14 + mov v9.d[1],x15 +#ifdef __AARCH64EB__ + rev32 v9.16b,v9.16b +#endif + mov v10.d[0],x16 + mov v10.d[1],x17 +#ifdef __AARCH64EB__ + rev32 v10.16b,v10.16b +#endif + mov v11.d[0],x18 + mov v11.d[1],x19 +#ifdef __AARCH64EB__ + rev32 v11.16b,v11.16b +#endif + cmp x2,#4 + b.lt 1f + ld1 {v4.4s,v5.4s,v6.4s,v7.4s},[x0],#64 + eor v4.16b, v4.16b, v8.16b + eor v5.16b, v5.16b, v9.16b + eor v6.16b, v6.16b, v10.16b + eor v7.16b, v7.16b, v11.16b +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif +#ifndef __AARCH64EB__ + rev32 v5.16b,v5.16b +#endif +#ifndef __AARCH64EB__ + rev32 v6.16b,v6.16b +#endif +#ifndef __AARCH64EB__ + rev32 v7.16b,v7.16b +#endif + zip1 v0.4s,v4.4s,v5.4s + zip2 v1.4s,v4.4s,v5.4s + zip1 v2.4s,v6.4s,v7.4s + zip2 v3.4s,v6.4s,v7.4s + zip1 v4.2d,v0.2d,v2.2d + zip2 v5.2d,v0.2d,v2.2d + zip1 v6.2d,v1.2d,v3.2d + zip2 v7.2d,v1.2d,v3.2d + bl _vpsm4_enc_4blks + zip1 v4.4s,v0.4s,v1.4s + zip2 v5.4s,v0.4s,v1.4s + zip1 v6.4s,v2.4s,v3.4s + zip2 v7.4s,v2.4s,v3.4s + zip1 v0.2d,v4.2d,v6.2d + zip2 v1.2d,v4.2d,v6.2d + zip1 v2.2d,v5.2d,v7.2d + zip2 v3.2d,v5.2d,v7.2d + eor v0.16b, v0.16b, v8.16b + eor v1.16b, v1.16b, v9.16b + eor v2.16b, v2.16b, v10.16b + eor v3.16b, v3.16b, v11.16b + st1 {v0.4s,v1.4s,v2.4s,v3.4s},[x1],#64 + sub x2,x2,#4 + mov v8.d[0],x20 + mov v8.d[1],x21 +#ifdef __AARCH64EB__ + rev32 v8.16b,v8.16b +#endif + mov v9.d[0],x22 + mov v9.d[1],x23 +#ifdef __AARCH64EB__ + rev32 v9.16b,v9.16b +#endif + mov v10.d[0],x24 + mov v10.d[1],x25 +#ifdef __AARCH64EB__ + rev32 v10.16b,v10.16b +#endif + // save the last tweak + st1 {v11.4s},[x5] +1: + // process last block + cmp x2,#1 + b.lt 100f + b.gt 1f + ld1 {v4.4s},[x0],#16 + eor v4.16b, v4.16b, v8.16b +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif + mov x10,x3 + mov w11,#8 + mov w12,v4.s[0] + mov w13,v4.s[1] + mov w14,v4.s[2] + mov w15,v4.s[3] +10: + ldp w7,w8,[x10],8 + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + eor w6,w14,w15 + eor w9,w7,w13 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w12,w12,w6 + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + eor w6,w14,w15 + eor w9,w12,w8 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + ldp w7,w8,[x10],8 + eor w13,w13,w6 + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + eor w6,w12,w13 + eor w9,w7,w15 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w14,w14,w6 + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + eor w6,w12,w13 + eor w9,w14,w8 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w15,w15,w6 + subs w11,w11,#1 + b.ne 10b + mov v4.s[0],w15 + mov v4.s[1],w14 + mov v4.s[2],w13 + mov v4.s[3],w12 +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif + eor v4.16b, v4.16b, v8.16b + st1 {v4.4s},[x1],#16 + // save the last tweak + st1 {v8.4s},[x5] + b 100f +1: // process last 2 blocks + cmp x2,#2 + b.gt 1f + ld1 {v4.4s,v5.4s},[x0],#32 + eor v4.16b, v4.16b, v8.16b + eor v5.16b, v5.16b, v9.16b +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif +#ifndef __AARCH64EB__ + rev32 v5.16b,v5.16b +#endif + zip1 v0.4s,v4.4s,v5.4s + zip2 v1.4s,v4.4s,v5.4s + zip1 v2.4s,v6.4s,v7.4s + zip2 v3.4s,v6.4s,v7.4s + zip1 v4.2d,v0.2d,v2.2d + zip2 v5.2d,v0.2d,v2.2d + zip1 v6.2d,v1.2d,v3.2d + zip2 v7.2d,v1.2d,v3.2d + bl _vpsm4_enc_4blks + zip1 v4.4s,v0.4s,v1.4s + zip2 v5.4s,v0.4s,v1.4s + zip1 v6.4s,v2.4s,v3.4s + zip2 v7.4s,v2.4s,v3.4s + zip1 v0.2d,v4.2d,v6.2d + zip2 v1.2d,v4.2d,v6.2d + zip1 v2.2d,v5.2d,v7.2d + zip2 v3.2d,v5.2d,v7.2d + eor v0.16b, v0.16b, v8.16b + eor v1.16b, v1.16b, v9.16b + st1 {v0.4s,v1.4s},[x1],#32 + // save the last tweak + st1 {v9.4s},[x5] + b 100f +1: // process last 3 blocks + ld1 {v4.4s,v5.4s,v6.4s},[x0],#48 + eor v4.16b, v4.16b, v8.16b + eor v5.16b, v5.16b, v9.16b + eor v6.16b, v6.16b, v10.16b +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif +#ifndef __AARCH64EB__ + rev32 v5.16b,v5.16b +#endif +#ifndef __AARCH64EB__ + rev32 v6.16b,v6.16b +#endif + zip1 v0.4s,v4.4s,v5.4s + zip2 v1.4s,v4.4s,v5.4s + zip1 v2.4s,v6.4s,v7.4s + zip2 v3.4s,v6.4s,v7.4s + zip1 v4.2d,v0.2d,v2.2d + zip2 v5.2d,v0.2d,v2.2d + zip1 v6.2d,v1.2d,v3.2d + zip2 v7.2d,v1.2d,v3.2d + bl _vpsm4_enc_4blks + zip1 v4.4s,v0.4s,v1.4s + zip2 v5.4s,v0.4s,v1.4s + zip1 v6.4s,v2.4s,v3.4s + zip2 v7.4s,v2.4s,v3.4s + zip1 v0.2d,v4.2d,v6.2d + zip2 v1.2d,v4.2d,v6.2d + zip1 v2.2d,v5.2d,v7.2d + zip2 v3.2d,v5.2d,v7.2d + eor v0.16b, v0.16b, v8.16b + eor v1.16b, v1.16b, v9.16b + eor v2.16b, v2.16b, v10.16b + st1 {v0.4s,v1.4s,v2.4s},[x1],#48 + // save the last tweak + st1 {v10.4s},[x5] +100: + cmp x29,0 + b.eq .return + +// This branch calculates the last two tweaks, +// while the encryption/decryption length is larger than 32 +.last_2blks_tweak: + ld1 {v8.4s},[x5] +#ifdef __AARCH64EB__ + rev32 v8.16b,v8.16b +#endif + mov v2.16b,v8.16b + adrp x10,Lxts_magic@PAGE + ldr q0, [x10, Lxts_magic@PAGEOFF] + shl v9.16b, v2.16b, #1 + ext v1.16b, v2.16b, v2.16b,#15 + ushr v1.16b, v1.16b, #7 + mul v1.16b, v1.16b, v0.16b + eor v9.16b, v9.16b, v1.16b + mov v2.16b,v9.16b + adrp x10,Lxts_magic@PAGE + ldr q0, [x10, Lxts_magic@PAGEOFF] + shl v10.16b, v2.16b, #1 + ext v1.16b, v2.16b, v2.16b,#15 + ushr v1.16b, v1.16b, #7 + mul v1.16b, v1.16b, v0.16b + eor v10.16b, v10.16b, v1.16b + b .check_dec + + +// This branch calculates the last two tweaks, +// while the encryption/decryption length is equal to 32, who only need two tweaks +.only_2blks_tweak: + mov v9.16b,v8.16b +#ifdef __AARCH64EB__ + rev32 v9.16b,v9.16b +#endif + mov v2.16b,v9.16b + adrp x10,Lxts_magic@PAGE + ldr q0, [x10, Lxts_magic@PAGEOFF] + shl v10.16b, v2.16b, #1 + ext v1.16b, v2.16b, v2.16b,#15 + ushr v1.16b, v1.16b, #7 + mul v1.16b, v1.16b, v0.16b + eor v10.16b, v10.16b, v1.16b + b .check_dec + + +// Determine whether encryption or decryption is required. +// The last two tweaks need to be swapped for decryption. +.check_dec: + // encryption:1 decryption:0 + cmp w28,1 + b.eq .process_last_2blks + mov v0.16B,v9.16b + mov v9.16B,v10.16b + mov v10.16B,v0.16b + +.process_last_2blks: +#ifdef __AARCH64EB__ + rev32 v9.16b,v9.16b +#endif +#ifdef __AARCH64EB__ + rev32 v10.16b,v10.16b +#endif + ld1 {v4.4s},[x0],#16 + eor v4.16b, v4.16b, v9.16b +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif + mov x10,x3 + mov w11,#8 + mov w12,v4.s[0] + mov w13,v4.s[1] + mov w14,v4.s[2] + mov w15,v4.s[3] +10: + ldp w7,w8,[x10],8 + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + eor w6,w14,w15 + eor w9,w7,w13 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w12,w12,w6 + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + eor w6,w14,w15 + eor w9,w12,w8 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + ldp w7,w8,[x10],8 + eor w13,w13,w6 + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + eor w6,w12,w13 + eor w9,w7,w15 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w14,w14,w6 + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + eor w6,w12,w13 + eor w9,w14,w8 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w15,w15,w6 + subs w11,w11,#1 + b.ne 10b + mov v4.s[0],w15 + mov v4.s[1],w14 + mov v4.s[2],w13 + mov v4.s[3],w12 +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif + eor v4.16b, v4.16b, v9.16b + st1 {v4.4s},[x1],#16 + + sub x26,x1,16 +.loop: + subs x29,x29,1 + ldrb w7,[x26,x29] + ldrb w8,[x0,x29] + strb w8,[x26,x29] + strb w7,[x1,x29] + b.gt .loop + ld1 {v4.4s}, [x26] + eor v4.16b, v4.16b, v10.16b +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif + mov x10,x3 + mov w11,#8 + mov w12,v4.s[0] + mov w13,v4.s[1] + mov w14,v4.s[2] + mov w15,v4.s[3] +10: + ldp w7,w8,[x10],8 + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + eor w6,w14,w15 + eor w9,w7,w13 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w12,w12,w6 + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + eor w6,w14,w15 + eor w9,w12,w8 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + ldp w7,w8,[x10],8 + eor w13,w13,w6 + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + eor w6,w12,w13 + eor w9,w7,w15 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w14,w14,w6 + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + eor w6,w12,w13 + eor w9,w14,w8 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w15,w15,w6 + subs w11,w11,#1 + b.ne 10b + mov v4.s[0],w15 + mov v4.s[1],w14 + mov v4.s[2],w13 + mov v4.s[3],w12 +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif + eor v4.16b, v4.16b, v10.16b + st1 {v4.4s}, [x26] +.return: + ldp d14, d15, [sp], #0x10 + ldp d12, d13, [sp], #0x10 + ldp d10, d11, [sp], #0x10 + ldp d8, d9, [sp], #0x10 + ldp x29, x30, [sp], #0x10 + ldp x27, x28, [sp], #0x10 + ldp x25, x26, [sp], #0x10 + ldp x23, x24, [sp], #0x10 + ldp x21, x22, [sp], #0x10 + ldp x19, x20, [sp], #0x10 + ldp x17, x18, [sp], #0x10 + ldp x15, x16, [sp], #0x10 + AARCH64_VALIDATE_LINK_REGISTER + ret + diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/asm/crypto/sm4/vpsm4_ex-armv8.S b/deps/openssl/config/archs/darwin64-arm64-cc/asm/crypto/sm4/vpsm4_ex-armv8.S new file mode 100644 index 00000000000000..9df8f4f3f8277b --- /dev/null +++ b/deps/openssl/config/archs/darwin64-arm64-cc/asm/crypto/sm4/vpsm4_ex-armv8.S @@ -0,0 +1,4522 @@ +// Copyright 2022-2025 The OpenSSL Project Authors. All Rights Reserved. +// +// Licensed under the Apache License 2.0 (the "License"). You may not use +// this file except in compliance with the License. You can obtain a copy +// in the file LICENSE in the source distribution or at +// https://www.openssl.org/source/license.html + +// +// This module implements SM4 with ASIMD and AESE on AARCH64 +// +// Dec 2022 +// + +// $output is the last argument if it looks like a file (it has an extension) +// $flavour is the first argument if it doesn't look like a file +#include "arm_arch.h" + +.text + + +.align 7 +_vpsm4_ex_consts: +Lck: +.long 0x00070E15, 0x1C232A31, 0x383F464D, 0x545B6269 +.long 0x70777E85, 0x8C939AA1, 0xA8AFB6BD, 0xC4CBD2D9 +.long 0xE0E7EEF5, 0xFC030A11, 0x181F262D, 0x343B4249 +.long 0x50575E65, 0x6C737A81, 0x888F969D, 0xA4ABB2B9 +.long 0xC0C7CED5, 0xDCE3EAF1, 0xF8FF060D, 0x141B2229 +.long 0x30373E45, 0x4C535A61, 0x686F767D, 0x848B9299 +.long 0xA0A7AEB5, 0xBCC3CAD1, 0xD8DFE6ED, 0xF4FB0209 +.long 0x10171E25, 0x2C333A41, 0x484F565D, 0x646B7279 +Lfk: +.quad 0x56aa3350a3b1bac6,0xb27022dc677d9197 +Lshuffles: +.quad 0x0B0A090807060504,0x030201000F0E0D0C +Lxts_magic: +.quad 0x0101010101010187,0x0101010101010101 +Lsbox_magic: +.quad 0x0b0e0104070a0d00,0x0306090c0f020508 +.quad 0x62185a2042387a00,0x22581a6002783a40 +.quad 0x15df62a89e54e923,0xc10bb67c4a803df7 +.quad 0xb9aa6b78c1d21300,0x1407c6d56c7fbead +.quad 0x6404462679195b3b,0xe383c1a1fe9edcbc +.quad 0x0f0f0f0f0f0f0f0f,0x0f0f0f0f0f0f0f0f + + + +.align 4 +_vpsm4_ex_set_key: + AARCH64_VALID_CALL_TARGET + ld1 {v5.4s},[x0] + adrp x9, Lsbox_magic@PAGE + ldr q26, [x9, Lsbox_magic@PAGEOFF] + ldr q27, [x9, Lsbox_magic@PAGEOFF+16] + ldr q28, [x9, Lsbox_magic@PAGEOFF+32] + ldr q29, [x9, Lsbox_magic@PAGEOFF+48] + ldr q30, [x9, Lsbox_magic@PAGEOFF+64] + ldr q31, [x9, Lsbox_magic@PAGEOFF+80] +#ifndef __AARCH64EB__ + rev32 v5.16b,v5.16b +#endif + adrp x5,Lshuffles@PAGE + add x5,x5,Lshuffles@PAGEOFF + ld1 {v7.2d},[x5] + adrp x5,Lfk@PAGE + add x5,x5,Lfk@PAGEOFF + ld1 {v6.2d},[x5] + eor v5.16b,v5.16b,v6.16b + mov x6,#32 + adrp x5,Lck@PAGE + add x5,x5,Lck@PAGEOFF + movi v0.16b,#64 + cbnz w2,1f + add x1,x1,124 +1: + mov w7,v5.s[1] + ldr w8,[x5],#4 + eor w8,w8,w7 + mov w7,v5.s[2] + eor w8,w8,w7 + mov w7,v5.s[3] + eor w8,w8,w7 + // optimize sbox using AESE instruction + mov v4.s[0],w8 + tbl v0.16b, {v4.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + mov w7,v0.s[0] + eor w8,w7,w7,ror #19 + eor w8,w8,w7,ror #9 + mov w7,v5.s[0] + eor w8,w8,w7 + mov v5.s[0],w8 + cbz w2,2f + str w8,[x1],#4 + b 3f +2: + str w8,[x1],#-4 +3: + tbl v5.16b,{v5.16b},v7.16b + subs x6,x6,#1 + b.ne 1b + ret + + +.align 4 +_vpsm4_ex_enc_4blks: + AARCH64_VALID_CALL_TARGET + mov x10,x3 + mov w11,#8 +10: + ldp w7,w8,[x10],8 + dup v12.4s,w7 + dup v13.4s,w8 + + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + eor v14.16b,v6.16b,v7.16b + eor v12.16b,v5.16b,v12.16b + eor v12.16b,v14.16b,v12.16b + // optimize sbox using AESE instruction + tbl v0.16b, {v12.16b}, v26.16b + ushr v24.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v24.16b, {v27.16b}, v24.16b + eor v0.16b, v0.16b, v24.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v24.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v24.16b, {v29.16b}, v24.16b + eor v0.16b, v0.16b, v24.16b + mov v12.16b,v0.16b + + // linear transformation + ushr v0.4s,v12.4s,32-2 + ushr v1.4s,v12.4s,32-10 + ushr v2.4s,v12.4s,32-18 + ushr v3.4s,v12.4s,32-24 + sli v0.4s,v12.4s,2 + sli v1.4s,v12.4s,10 + sli v2.4s,v12.4s,18 + sli v3.4s,v12.4s,24 + eor v24.16b,v0.16b,v12.16b + eor v24.16b,v24.16b,v1.16b + eor v12.16b,v2.16b,v3.16b + eor v12.16b,v12.16b,v24.16b + eor v4.16b,v4.16b,v12.16b + + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + eor v14.16b,v14.16b,v4.16b + eor v13.16b,v14.16b,v13.16b + // optimize sbox using AESE instruction + tbl v0.16b, {v13.16b}, v26.16b + ushr v24.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v24.16b, {v27.16b}, v24.16b + eor v0.16b, v0.16b, v24.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v24.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v24.16b, {v29.16b}, v24.16b + eor v0.16b, v0.16b, v24.16b + mov v13.16b,v0.16b + + // linear transformation + ushr v0.4s,v13.4s,32-2 + ushr v1.4s,v13.4s,32-10 + ushr v2.4s,v13.4s,32-18 + ushr v3.4s,v13.4s,32-24 + sli v0.4s,v13.4s,2 + sli v1.4s,v13.4s,10 + sli v2.4s,v13.4s,18 + sli v3.4s,v13.4s,24 + eor v24.16b,v0.16b,v13.16b + eor v24.16b,v24.16b,v1.16b + eor v13.16b,v2.16b,v3.16b + eor v13.16b,v13.16b,v24.16b + ldp w7,w8,[x10],8 + eor v5.16b,v5.16b,v13.16b + + dup v12.4s,w7 + dup v13.4s,w8 + + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + eor v14.16b,v4.16b,v5.16b + eor v12.16b,v7.16b,v12.16b + eor v12.16b,v14.16b,v12.16b + // optimize sbox using AESE instruction + tbl v0.16b, {v12.16b}, v26.16b + ushr v24.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v24.16b, {v27.16b}, v24.16b + eor v0.16b, v0.16b, v24.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v24.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v24.16b, {v29.16b}, v24.16b + eor v0.16b, v0.16b, v24.16b + mov v12.16b,v0.16b + + // linear transformation + ushr v0.4s,v12.4s,32-2 + ushr v1.4s,v12.4s,32-10 + ushr v2.4s,v12.4s,32-18 + ushr v3.4s,v12.4s,32-24 + sli v0.4s,v12.4s,2 + sli v1.4s,v12.4s,10 + sli v2.4s,v12.4s,18 + sli v3.4s,v12.4s,24 + eor v24.16b,v0.16b,v12.16b + eor v24.16b,v24.16b,v1.16b + eor v12.16b,v2.16b,v3.16b + eor v12.16b,v12.16b,v24.16b + eor v6.16b,v6.16b,v12.16b + + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + eor v14.16b,v14.16b,v6.16b + eor v13.16b,v14.16b,v13.16b + // optimize sbox using AESE instruction + tbl v0.16b, {v13.16b}, v26.16b + ushr v24.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v24.16b, {v27.16b}, v24.16b + eor v0.16b, v0.16b, v24.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v24.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v24.16b, {v29.16b}, v24.16b + eor v0.16b, v0.16b, v24.16b + mov v13.16b,v0.16b + + // linear transformation + ushr v0.4s,v13.4s,32-2 + ushr v1.4s,v13.4s,32-10 + ushr v2.4s,v13.4s,32-18 + ushr v3.4s,v13.4s,32-24 + sli v0.4s,v13.4s,2 + sli v1.4s,v13.4s,10 + sli v2.4s,v13.4s,18 + sli v3.4s,v13.4s,24 + eor v24.16b,v0.16b,v13.16b + eor v24.16b,v24.16b,v1.16b + eor v13.16b,v2.16b,v3.16b + eor v13.16b,v13.16b,v24.16b + eor v7.16b,v7.16b,v13.16b + subs w11,w11,#1 + b.ne 10b +#ifndef __AARCH64EB__ + rev32 v3.16b,v4.16b +#else + mov v3.16b,v4.16b +#endif +#ifndef __AARCH64EB__ + rev32 v2.16b,v5.16b +#else + mov v2.16b,v5.16b +#endif +#ifndef __AARCH64EB__ + rev32 v1.16b,v6.16b +#else + mov v1.16b,v6.16b +#endif +#ifndef __AARCH64EB__ + rev32 v0.16b,v7.16b +#else + mov v0.16b,v7.16b +#endif + ret + + +.align 4 +_vpsm4_ex_enc_8blks: + AARCH64_VALID_CALL_TARGET + mov x10,x3 + mov w11,#8 +10: + ldp w7,w8,[x10],8 + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + dup v12.4s,w7 + eor v14.16b,v6.16b,v7.16b + eor v15.16b,v10.16b,v11.16b + eor v0.16b,v5.16b,v12.16b + eor v1.16b,v9.16b,v12.16b + eor v12.16b,v14.16b,v0.16b + eor v13.16b,v15.16b,v1.16b + // optimize sbox using AESE instruction + tbl v0.16b, {v12.16b}, v26.16b + tbl v1.16b, {v13.16b}, v26.16b + ushr v24.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v24.16b, {v27.16b}, v24.16b + eor v0.16b, v0.16b, v24.16b + ushr v24.16b, v1.16b, 4 + and v1.16b, v1.16b, v31.16b + tbl v1.16b, {v28.16b}, v1.16b + tbl v24.16b, {v27.16b}, v24.16b + eor v1.16b, v1.16b, v24.16b + eor v25.16b, v25.16b, v25.16b + aese v0.16b,v25.16b + aese v1.16b,v25.16b + ushr v24.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v24.16b, {v29.16b}, v24.16b + eor v0.16b, v0.16b, v24.16b + ushr v24.16b, v1.16b, 4 + and v1.16b, v1.16b, v31.16b + tbl v1.16b, {v30.16b}, v1.16b + tbl v24.16b, {v29.16b}, v24.16b + eor v1.16b, v1.16b, v24.16b + mov v12.16b,v0.16b + mov v13.16b,v1.16b + + // linear transformation + ushr v0.4s,v12.4s,32-2 + ushr v25.4s,v13.4s,32-2 + ushr v1.4s,v12.4s,32-10 + ushr v2.4s,v12.4s,32-18 + ushr v3.4s,v12.4s,32-24 + sli v0.4s,v12.4s,2 + sli v25.4s,v13.4s,2 + sli v1.4s,v12.4s,10 + sli v2.4s,v12.4s,18 + sli v3.4s,v12.4s,24 + eor v24.16b,v0.16b,v12.16b + eor v24.16b,v24.16b,v1.16b + eor v12.16b,v2.16b,v3.16b + eor v12.16b,v12.16b,v24.16b + ushr v1.4s,v13.4s,32-10 + ushr v2.4s,v13.4s,32-18 + ushr v3.4s,v13.4s,32-24 + sli v1.4s,v13.4s,10 + sli v2.4s,v13.4s,18 + sli v3.4s,v13.4s,24 + eor v24.16b,v25.16b,v13.16b + eor v24.16b,v24.16b,v1.16b + eor v13.16b,v2.16b,v3.16b + eor v13.16b,v13.16b,v24.16b + eor v4.16b,v4.16b,v12.16b + eor v8.16b,v8.16b,v13.16b + + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + dup v13.4s,w8 + eor v14.16b,v14.16b,v4.16b + eor v15.16b,v15.16b,v8.16b + eor v12.16b,v14.16b,v13.16b + eor v13.16b,v15.16b,v13.16b + // optimize sbox using AESE instruction + tbl v0.16b, {v12.16b}, v26.16b + tbl v1.16b, {v13.16b}, v26.16b + ushr v24.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v24.16b, {v27.16b}, v24.16b + eor v0.16b, v0.16b, v24.16b + ushr v24.16b, v1.16b, 4 + and v1.16b, v1.16b, v31.16b + tbl v1.16b, {v28.16b}, v1.16b + tbl v24.16b, {v27.16b}, v24.16b + eor v1.16b, v1.16b, v24.16b + eor v25.16b, v25.16b, v25.16b + aese v0.16b,v25.16b + aese v1.16b,v25.16b + ushr v24.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v24.16b, {v29.16b}, v24.16b + eor v0.16b, v0.16b, v24.16b + ushr v24.16b, v1.16b, 4 + and v1.16b, v1.16b, v31.16b + tbl v1.16b, {v30.16b}, v1.16b + tbl v24.16b, {v29.16b}, v24.16b + eor v1.16b, v1.16b, v24.16b + mov v12.16b,v0.16b + mov v13.16b,v1.16b + + // linear transformation + ushr v0.4s,v12.4s,32-2 + ushr v25.4s,v13.4s,32-2 + ushr v1.4s,v12.4s,32-10 + ushr v2.4s,v12.4s,32-18 + ushr v3.4s,v12.4s,32-24 + sli v0.4s,v12.4s,2 + sli v25.4s,v13.4s,2 + sli v1.4s,v12.4s,10 + sli v2.4s,v12.4s,18 + sli v3.4s,v12.4s,24 + eor v24.16b,v0.16b,v12.16b + eor v24.16b,v24.16b,v1.16b + eor v12.16b,v2.16b,v3.16b + eor v12.16b,v12.16b,v24.16b + ushr v1.4s,v13.4s,32-10 + ushr v2.4s,v13.4s,32-18 + ushr v3.4s,v13.4s,32-24 + sli v1.4s,v13.4s,10 + sli v2.4s,v13.4s,18 + sli v3.4s,v13.4s,24 + eor v24.16b,v25.16b,v13.16b + eor v24.16b,v24.16b,v1.16b + eor v13.16b,v2.16b,v3.16b + eor v13.16b,v13.16b,v24.16b + ldp w7,w8,[x10],8 + eor v5.16b,v5.16b,v12.16b + eor v9.16b,v9.16b,v13.16b + + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + dup v12.4s,w7 + eor v14.16b,v4.16b,v5.16b + eor v15.16b,v8.16b,v9.16b + eor v0.16b,v7.16b,v12.16b + eor v1.16b,v11.16b,v12.16b + eor v12.16b,v14.16b,v0.16b + eor v13.16b,v15.16b,v1.16b + // optimize sbox using AESE instruction + tbl v0.16b, {v12.16b}, v26.16b + tbl v1.16b, {v13.16b}, v26.16b + ushr v24.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v24.16b, {v27.16b}, v24.16b + eor v0.16b, v0.16b, v24.16b + ushr v24.16b, v1.16b, 4 + and v1.16b, v1.16b, v31.16b + tbl v1.16b, {v28.16b}, v1.16b + tbl v24.16b, {v27.16b}, v24.16b + eor v1.16b, v1.16b, v24.16b + eor v25.16b, v25.16b, v25.16b + aese v0.16b,v25.16b + aese v1.16b,v25.16b + ushr v24.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v24.16b, {v29.16b}, v24.16b + eor v0.16b, v0.16b, v24.16b + ushr v24.16b, v1.16b, 4 + and v1.16b, v1.16b, v31.16b + tbl v1.16b, {v30.16b}, v1.16b + tbl v24.16b, {v29.16b}, v24.16b + eor v1.16b, v1.16b, v24.16b + mov v12.16b,v0.16b + mov v13.16b,v1.16b + + // linear transformation + ushr v0.4s,v12.4s,32-2 + ushr v25.4s,v13.4s,32-2 + ushr v1.4s,v12.4s,32-10 + ushr v2.4s,v12.4s,32-18 + ushr v3.4s,v12.4s,32-24 + sli v0.4s,v12.4s,2 + sli v25.4s,v13.4s,2 + sli v1.4s,v12.4s,10 + sli v2.4s,v12.4s,18 + sli v3.4s,v12.4s,24 + eor v24.16b,v0.16b,v12.16b + eor v24.16b,v24.16b,v1.16b + eor v12.16b,v2.16b,v3.16b + eor v12.16b,v12.16b,v24.16b + ushr v1.4s,v13.4s,32-10 + ushr v2.4s,v13.4s,32-18 + ushr v3.4s,v13.4s,32-24 + sli v1.4s,v13.4s,10 + sli v2.4s,v13.4s,18 + sli v3.4s,v13.4s,24 + eor v24.16b,v25.16b,v13.16b + eor v24.16b,v24.16b,v1.16b + eor v13.16b,v2.16b,v3.16b + eor v13.16b,v13.16b,v24.16b + eor v6.16b,v6.16b,v12.16b + eor v10.16b,v10.16b,v13.16b + + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + dup v13.4s,w8 + eor v14.16b,v14.16b,v6.16b + eor v15.16b,v15.16b,v10.16b + eor v12.16b,v14.16b,v13.16b + eor v13.16b,v15.16b,v13.16b + // optimize sbox using AESE instruction + tbl v0.16b, {v12.16b}, v26.16b + tbl v1.16b, {v13.16b}, v26.16b + ushr v24.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v24.16b, {v27.16b}, v24.16b + eor v0.16b, v0.16b, v24.16b + ushr v24.16b, v1.16b, 4 + and v1.16b, v1.16b, v31.16b + tbl v1.16b, {v28.16b}, v1.16b + tbl v24.16b, {v27.16b}, v24.16b + eor v1.16b, v1.16b, v24.16b + eor v25.16b, v25.16b, v25.16b + aese v0.16b,v25.16b + aese v1.16b,v25.16b + ushr v24.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v24.16b, {v29.16b}, v24.16b + eor v0.16b, v0.16b, v24.16b + ushr v24.16b, v1.16b, 4 + and v1.16b, v1.16b, v31.16b + tbl v1.16b, {v30.16b}, v1.16b + tbl v24.16b, {v29.16b}, v24.16b + eor v1.16b, v1.16b, v24.16b + mov v12.16b,v0.16b + mov v13.16b,v1.16b + + // linear transformation + ushr v0.4s,v12.4s,32-2 + ushr v25.4s,v13.4s,32-2 + ushr v1.4s,v12.4s,32-10 + ushr v2.4s,v12.4s,32-18 + ushr v3.4s,v12.4s,32-24 + sli v0.4s,v12.4s,2 + sli v25.4s,v13.4s,2 + sli v1.4s,v12.4s,10 + sli v2.4s,v12.4s,18 + sli v3.4s,v12.4s,24 + eor v24.16b,v0.16b,v12.16b + eor v24.16b,v24.16b,v1.16b + eor v12.16b,v2.16b,v3.16b + eor v12.16b,v12.16b,v24.16b + ushr v1.4s,v13.4s,32-10 + ushr v2.4s,v13.4s,32-18 + ushr v3.4s,v13.4s,32-24 + sli v1.4s,v13.4s,10 + sli v2.4s,v13.4s,18 + sli v3.4s,v13.4s,24 + eor v24.16b,v25.16b,v13.16b + eor v24.16b,v24.16b,v1.16b + eor v13.16b,v2.16b,v3.16b + eor v13.16b,v13.16b,v24.16b + eor v7.16b,v7.16b,v12.16b + eor v11.16b,v11.16b,v13.16b + subs w11,w11,#1 + b.ne 10b +#ifndef __AARCH64EB__ + rev32 v3.16b,v4.16b +#else + mov v3.16b,v4.16b +#endif +#ifndef __AARCH64EB__ + rev32 v2.16b,v5.16b +#else + mov v2.16b,v5.16b +#endif +#ifndef __AARCH64EB__ + rev32 v1.16b,v6.16b +#else + mov v1.16b,v6.16b +#endif +#ifndef __AARCH64EB__ + rev32 v0.16b,v7.16b +#else + mov v0.16b,v7.16b +#endif +#ifndef __AARCH64EB__ + rev32 v7.16b,v8.16b +#else + mov v7.16b,v8.16b +#endif +#ifndef __AARCH64EB__ + rev32 v6.16b,v9.16b +#else + mov v6.16b,v9.16b +#endif +#ifndef __AARCH64EB__ + rev32 v5.16b,v10.16b +#else + mov v5.16b,v10.16b +#endif +#ifndef __AARCH64EB__ + rev32 v4.16b,v11.16b +#else + mov v4.16b,v11.16b +#endif + ret + +.globl _vpsm4_ex_set_encrypt_key + +.align 5 +_vpsm4_ex_set_encrypt_key: + AARCH64_SIGN_LINK_REGISTER + stp x29,x30,[sp,#-16]! + mov w2,1 + bl _vpsm4_ex_set_key + ldp x29,x30,[sp],#16 + AARCH64_VALIDATE_LINK_REGISTER + ret + +.globl _vpsm4_ex_set_decrypt_key + +.align 5 +_vpsm4_ex_set_decrypt_key: + AARCH64_SIGN_LINK_REGISTER + stp x29,x30,[sp,#-16]! + mov w2,0 + bl _vpsm4_ex_set_key + ldp x29,x30,[sp],#16 + AARCH64_VALIDATE_LINK_REGISTER + ret + +.globl _vpsm4_ex_encrypt + +.align 5 +_vpsm4_ex_encrypt: + AARCH64_VALID_CALL_TARGET + ld1 {v4.4s},[x0] + adrp x9, Lsbox_magic@PAGE + ldr q26, [x9, Lsbox_magic@PAGEOFF] + ldr q27, [x9, Lsbox_magic@PAGEOFF+16] + ldr q28, [x9, Lsbox_magic@PAGEOFF+32] + ldr q29, [x9, Lsbox_magic@PAGEOFF+48] + ldr q30, [x9, Lsbox_magic@PAGEOFF+64] + ldr q31, [x9, Lsbox_magic@PAGEOFF+80] +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif + mov x3,x2 + mov x10,x3 + mov w11,#8 + mov w12,v4.s[0] + mov w13,v4.s[1] + mov w14,v4.s[2] + mov w15,v4.s[3] +10: + ldp w7,w8,[x10],8 + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + eor w6,w14,w15 + eor w9,w7,w13 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w12,w12,w6 + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + eor w6,w14,w15 + eor w9,w12,w8 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + ldp w7,w8,[x10],8 + eor w13,w13,w6 + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + eor w6,w12,w13 + eor w9,w7,w15 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w14,w14,w6 + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + eor w6,w12,w13 + eor w9,w14,w8 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w15,w15,w6 + subs w11,w11,#1 + b.ne 10b + mov v4.s[0],w15 + mov v4.s[1],w14 + mov v4.s[2],w13 + mov v4.s[3],w12 +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif + st1 {v4.4s},[x1] + ret + +.globl _vpsm4_ex_decrypt + +.align 5 +_vpsm4_ex_decrypt: + AARCH64_VALID_CALL_TARGET + ld1 {v4.4s},[x0] + adrp x9, Lsbox_magic@PAGE + ldr q26, [x9, Lsbox_magic@PAGEOFF] + ldr q27, [x9, Lsbox_magic@PAGEOFF+16] + ldr q28, [x9, Lsbox_magic@PAGEOFF+32] + ldr q29, [x9, Lsbox_magic@PAGEOFF+48] + ldr q30, [x9, Lsbox_magic@PAGEOFF+64] + ldr q31, [x9, Lsbox_magic@PAGEOFF+80] +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif + mov x3,x2 + mov x10,x3 + mov w11,#8 + mov w12,v4.s[0] + mov w13,v4.s[1] + mov w14,v4.s[2] + mov w15,v4.s[3] +10: + ldp w7,w8,[x10],8 + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + eor w6,w14,w15 + eor w9,w7,w13 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w12,w12,w6 + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + eor w6,w14,w15 + eor w9,w12,w8 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + ldp w7,w8,[x10],8 + eor w13,w13,w6 + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + eor w6,w12,w13 + eor w9,w7,w15 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w14,w14,w6 + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + eor w6,w12,w13 + eor w9,w14,w8 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w15,w15,w6 + subs w11,w11,#1 + b.ne 10b + mov v4.s[0],w15 + mov v4.s[1],w14 + mov v4.s[2],w13 + mov v4.s[3],w12 +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif + st1 {v4.4s},[x1] + ret + +.globl _vpsm4_ex_ecb_encrypt + +.align 5 +_vpsm4_ex_ecb_encrypt: + AARCH64_SIGN_LINK_REGISTER + // convert length into blocks + lsr x2,x2,4 + stp d8,d9,[sp,#-80]! + stp d10,d11,[sp,#16] + stp d12,d13,[sp,#32] + stp d14,d15,[sp,#48] + stp x29,x30,[sp,#64] + adrp x9, Lsbox_magic@PAGE + ldr q26, [x9, Lsbox_magic@PAGEOFF] + ldr q27, [x9, Lsbox_magic@PAGEOFF+16] + ldr q28, [x9, Lsbox_magic@PAGEOFF+32] + ldr q29, [x9, Lsbox_magic@PAGEOFF+48] + ldr q30, [x9, Lsbox_magic@PAGEOFF+64] + ldr q31, [x9, Lsbox_magic@PAGEOFF+80] +Lecb_8_blocks_process: + cmp w2,#8 + b.lt Lecb_4_blocks_process + ld4 {v4.4s,v5.4s,v6.4s,v7.4s},[x0],#64 + ld4 {v8.4s,v9.4s,v10.4s,v11.4s},[x0],#64 +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif +#ifndef __AARCH64EB__ + rev32 v5.16b,v5.16b +#endif +#ifndef __AARCH64EB__ + rev32 v6.16b,v6.16b +#endif +#ifndef __AARCH64EB__ + rev32 v7.16b,v7.16b +#endif +#ifndef __AARCH64EB__ + rev32 v8.16b,v8.16b +#endif +#ifndef __AARCH64EB__ + rev32 v9.16b,v9.16b +#endif +#ifndef __AARCH64EB__ + rev32 v10.16b,v10.16b +#endif +#ifndef __AARCH64EB__ + rev32 v11.16b,v11.16b +#endif + bl _vpsm4_ex_enc_8blks + st4 {v0.4s,v1.4s,v2.4s,v3.4s},[x1],#64 + st4 {v4.4s,v5.4s,v6.4s,v7.4s},[x1],#64 + subs w2,w2,#8 + b.gt Lecb_8_blocks_process + b 100f +Lecb_4_blocks_process: + cmp w2,#4 + b.lt 1f + ld4 {v4.4s,v5.4s,v6.4s,v7.4s},[x0],#64 +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif +#ifndef __AARCH64EB__ + rev32 v5.16b,v5.16b +#endif +#ifndef __AARCH64EB__ + rev32 v6.16b,v6.16b +#endif +#ifndef __AARCH64EB__ + rev32 v7.16b,v7.16b +#endif + bl _vpsm4_ex_enc_4blks + st4 {v0.4s,v1.4s,v2.4s,v3.4s},[x1],#64 + sub w2,w2,#4 +1: + // process last block + cmp w2,#1 + b.lt 100f + b.gt 1f + ld1 {v4.4s},[x0] +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif + mov x10,x3 + mov w11,#8 + mov w12,v4.s[0] + mov w13,v4.s[1] + mov w14,v4.s[2] + mov w15,v4.s[3] +10: + ldp w7,w8,[x10],8 + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + eor w6,w14,w15 + eor w9,w7,w13 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w12,w12,w6 + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + eor w6,w14,w15 + eor w9,w12,w8 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + ldp w7,w8,[x10],8 + eor w13,w13,w6 + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + eor w6,w12,w13 + eor w9,w7,w15 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w14,w14,w6 + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + eor w6,w12,w13 + eor w9,w14,w8 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w15,w15,w6 + subs w11,w11,#1 + b.ne 10b + mov v4.s[0],w15 + mov v4.s[1],w14 + mov v4.s[2],w13 + mov v4.s[3],w12 +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif + st1 {v4.4s},[x1] + b 100f +1: // process last 2 blocks + ld4 {v4.s,v5.s,v6.s,v7.s}[0],[x0],#16 + ld4 {v4.s,v5.s,v6.s,v7.s}[1],[x0],#16 + cmp w2,#2 + b.gt 1f +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif +#ifndef __AARCH64EB__ + rev32 v5.16b,v5.16b +#endif +#ifndef __AARCH64EB__ + rev32 v6.16b,v6.16b +#endif +#ifndef __AARCH64EB__ + rev32 v7.16b,v7.16b +#endif + bl _vpsm4_ex_enc_4blks + st4 {v0.s,v1.s,v2.s,v3.s}[0],[x1],#16 + st4 {v0.s,v1.s,v2.s,v3.s}[1],[x1] + b 100f +1: // process last 3 blocks + ld4 {v4.s,v5.s,v6.s,v7.s}[2],[x0],#16 +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif +#ifndef __AARCH64EB__ + rev32 v5.16b,v5.16b +#endif +#ifndef __AARCH64EB__ + rev32 v6.16b,v6.16b +#endif +#ifndef __AARCH64EB__ + rev32 v7.16b,v7.16b +#endif + bl _vpsm4_ex_enc_4blks + st4 {v0.s,v1.s,v2.s,v3.s}[0],[x1],#16 + st4 {v0.s,v1.s,v2.s,v3.s}[1],[x1],#16 + st4 {v0.s,v1.s,v2.s,v3.s}[2],[x1] +100: + ldp d10,d11,[sp,#16] + ldp d12,d13,[sp,#32] + ldp d14,d15,[sp,#48] + ldp x29,x30,[sp,#64] + ldp d8,d9,[sp],#80 + AARCH64_VALIDATE_LINK_REGISTER + ret + +.globl _vpsm4_ex_cbc_encrypt + +.align 5 +_vpsm4_ex_cbc_encrypt: + AARCH64_VALID_CALL_TARGET + lsr x2,x2,4 + adrp x9, Lsbox_magic@PAGE + ldr q26, [x9, Lsbox_magic@PAGEOFF] + ldr q27, [x9, Lsbox_magic@PAGEOFF+16] + ldr q28, [x9, Lsbox_magic@PAGEOFF+32] + ldr q29, [x9, Lsbox_magic@PAGEOFF+48] + ldr q30, [x9, Lsbox_magic@PAGEOFF+64] + ldr q31, [x9, Lsbox_magic@PAGEOFF+80] + cbz w5,Ldec + ld1 {v3.4s},[x4] +Lcbc_4_blocks_enc: + cmp w2,#4 + b.lt 1f + ld1 {v4.4s,v5.4s,v6.4s,v7.4s},[x0],#64 + eor v4.16b,v4.16b,v3.16b +#ifndef __AARCH64EB__ + rev32 v5.16b,v5.16b +#endif +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif +#ifndef __AARCH64EB__ + rev32 v6.16b,v6.16b +#endif +#ifndef __AARCH64EB__ + rev32 v7.16b,v7.16b +#endif + mov x10,x3 + mov w11,#8 + mov w12,v4.s[0] + mov w13,v4.s[1] + mov w14,v4.s[2] + mov w15,v4.s[3] +10: + ldp w7,w8,[x10],8 + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + eor w6,w14,w15 + eor w9,w7,w13 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w12,w12,w6 + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + eor w6,w14,w15 + eor w9,w12,w8 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + ldp w7,w8,[x10],8 + eor w13,w13,w6 + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + eor w6,w12,w13 + eor w9,w7,w15 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w14,w14,w6 + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + eor w6,w12,w13 + eor w9,w14,w8 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w15,w15,w6 + subs w11,w11,#1 + b.ne 10b + mov v4.s[0],w15 + mov v4.s[1],w14 + mov v4.s[2],w13 + mov v4.s[3],w12 + eor v5.16b,v5.16b,v4.16b + mov x10,x3 + mov w11,#8 + mov w12,v5.s[0] + mov w13,v5.s[1] + mov w14,v5.s[2] + mov w15,v5.s[3] +10: + ldp w7,w8,[x10],8 + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + eor w6,w14,w15 + eor w9,w7,w13 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w12,w12,w6 + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + eor w6,w14,w15 + eor w9,w12,w8 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + ldp w7,w8,[x10],8 + eor w13,w13,w6 + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + eor w6,w12,w13 + eor w9,w7,w15 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w14,w14,w6 + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + eor w6,w12,w13 + eor w9,w14,w8 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w15,w15,w6 + subs w11,w11,#1 + b.ne 10b + mov v5.s[0],w15 + mov v5.s[1],w14 + mov v5.s[2],w13 + mov v5.s[3],w12 +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif + eor v6.16b,v6.16b,v5.16b + mov x10,x3 + mov w11,#8 + mov w12,v6.s[0] + mov w13,v6.s[1] + mov w14,v6.s[2] + mov w15,v6.s[3] +10: + ldp w7,w8,[x10],8 + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + eor w6,w14,w15 + eor w9,w7,w13 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w12,w12,w6 + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + eor w6,w14,w15 + eor w9,w12,w8 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + ldp w7,w8,[x10],8 + eor w13,w13,w6 + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + eor w6,w12,w13 + eor w9,w7,w15 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w14,w14,w6 + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + eor w6,w12,w13 + eor w9,w14,w8 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w15,w15,w6 + subs w11,w11,#1 + b.ne 10b + mov v6.s[0],w15 + mov v6.s[1],w14 + mov v6.s[2],w13 + mov v6.s[3],w12 +#ifndef __AARCH64EB__ + rev32 v5.16b,v5.16b +#endif + eor v7.16b,v7.16b,v6.16b + mov x10,x3 + mov w11,#8 + mov w12,v7.s[0] + mov w13,v7.s[1] + mov w14,v7.s[2] + mov w15,v7.s[3] +10: + ldp w7,w8,[x10],8 + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + eor w6,w14,w15 + eor w9,w7,w13 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w12,w12,w6 + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + eor w6,w14,w15 + eor w9,w12,w8 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + ldp w7,w8,[x10],8 + eor w13,w13,w6 + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + eor w6,w12,w13 + eor w9,w7,w15 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w14,w14,w6 + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + eor w6,w12,w13 + eor w9,w14,w8 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w15,w15,w6 + subs w11,w11,#1 + b.ne 10b + mov v7.s[0],w15 + mov v7.s[1],w14 + mov v7.s[2],w13 + mov v7.s[3],w12 +#ifndef __AARCH64EB__ + rev32 v6.16b,v6.16b +#endif +#ifndef __AARCH64EB__ + rev32 v7.16b,v7.16b +#endif + orr v3.16b,v7.16b,v7.16b + st1 {v4.4s,v5.4s,v6.4s,v7.4s},[x1],#64 + subs w2,w2,#4 + b.ne Lcbc_4_blocks_enc + b 2f +1: + subs w2,w2,#1 + b.lt 2f + ld1 {v4.4s},[x0],#16 + eor v3.16b,v3.16b,v4.16b +#ifndef __AARCH64EB__ + rev32 v3.16b,v3.16b +#endif + mov x10,x3 + mov w11,#8 + mov w12,v3.s[0] + mov w13,v3.s[1] + mov w14,v3.s[2] + mov w15,v3.s[3] +10: + ldp w7,w8,[x10],8 + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + eor w6,w14,w15 + eor w9,w7,w13 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w12,w12,w6 + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + eor w6,w14,w15 + eor w9,w12,w8 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + ldp w7,w8,[x10],8 + eor w13,w13,w6 + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + eor w6,w12,w13 + eor w9,w7,w15 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w14,w14,w6 + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + eor w6,w12,w13 + eor w9,w14,w8 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w15,w15,w6 + subs w11,w11,#1 + b.ne 10b + mov v3.s[0],w15 + mov v3.s[1],w14 + mov v3.s[2],w13 + mov v3.s[3],w12 +#ifndef __AARCH64EB__ + rev32 v3.16b,v3.16b +#endif + st1 {v3.4s},[x1],#16 + b 1b +2: + // save back IV + st1 {v3.4s},[x4] + ret + +Ldec: + // decryption mode starts + AARCH64_SIGN_LINK_REGISTER + stp d8,d9,[sp,#-80]! + stp d10,d11,[sp,#16] + stp d12,d13,[sp,#32] + stp d14,d15,[sp,#48] + stp x29,x30,[sp,#64] +Lcbc_8_blocks_dec: + cmp w2,#8 + b.lt 1f + ld4 {v4.4s,v5.4s,v6.4s,v7.4s},[x0] + add x10,x0,#64 + ld4 {v8.4s,v9.4s,v10.4s,v11.4s},[x10] +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif +#ifndef __AARCH64EB__ + rev32 v5.16b,v5.16b +#endif +#ifndef __AARCH64EB__ + rev32 v6.16b,v6.16b +#endif +#ifndef __AARCH64EB__ + rev32 v7.16b,v7.16b +#endif +#ifndef __AARCH64EB__ + rev32 v8.16b,v8.16b +#endif +#ifndef __AARCH64EB__ + rev32 v9.16b,v9.16b +#endif +#ifndef __AARCH64EB__ + rev32 v10.16b,v10.16b +#endif +#ifndef __AARCH64EB__ + rev32 v11.16b,v11.16b +#endif + bl _vpsm4_ex_enc_8blks + zip1 v8.4s,v0.4s,v1.4s + zip2 v9.4s,v0.4s,v1.4s + zip1 v10.4s,v2.4s,v3.4s + zip2 v11.4s,v2.4s,v3.4s + zip1 v0.2d,v8.2d,v10.2d + zip2 v1.2d,v8.2d,v10.2d + zip1 v2.2d,v9.2d,v11.2d + zip2 v3.2d,v9.2d,v11.2d + zip1 v8.4s,v4.4s,v5.4s + zip2 v9.4s,v4.4s,v5.4s + zip1 v10.4s,v6.4s,v7.4s + zip2 v11.4s,v6.4s,v7.4s + zip1 v4.2d,v8.2d,v10.2d + zip2 v5.2d,v8.2d,v10.2d + zip1 v6.2d,v9.2d,v11.2d + zip2 v7.2d,v9.2d,v11.2d + ld1 {v15.4s},[x4] + ld1 {v8.4s,v9.4s,v10.4s,v11.4s},[x0],#64 + // note ivec1 and vtmpx[3] are reusing the same register + // care needs to be taken to avoid conflict + eor v0.16b,v0.16b,v15.16b + ld1 {v12.4s,v13.4s,v14.4s,v15.4s},[x0],#64 + eor v1.16b,v1.16b,v8.16b + eor v2.16b,v2.16b,v9.16b + eor v3.16b,v3.16b,v10.16b + // save back IV + st1 {v15.4s}, [x4] + eor v4.16b,v4.16b,v11.16b + eor v5.16b,v5.16b,v12.16b + eor v6.16b,v6.16b,v13.16b + eor v7.16b,v7.16b,v14.16b + st1 {v0.4s,v1.4s,v2.4s,v3.4s},[x1],#64 + st1 {v4.4s,v5.4s,v6.4s,v7.4s},[x1],#64 + subs w2,w2,#8 + b.gt Lcbc_8_blocks_dec + b.eq 100f +1: + ld1 {v15.4s},[x4] +Lcbc_4_blocks_dec: + cmp w2,#4 + b.lt 1f + ld4 {v4.4s,v5.4s,v6.4s,v7.4s},[x0] +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif +#ifndef __AARCH64EB__ + rev32 v5.16b,v5.16b +#endif +#ifndef __AARCH64EB__ + rev32 v6.16b,v6.16b +#endif +#ifndef __AARCH64EB__ + rev32 v7.16b,v7.16b +#endif + bl _vpsm4_ex_enc_4blks + ld1 {v4.4s,v5.4s,v6.4s,v7.4s},[x0],#64 + zip1 v8.4s,v0.4s,v1.4s + zip2 v9.4s,v0.4s,v1.4s + zip1 v10.4s,v2.4s,v3.4s + zip2 v11.4s,v2.4s,v3.4s + zip1 v0.2d,v8.2d,v10.2d + zip2 v1.2d,v8.2d,v10.2d + zip1 v2.2d,v9.2d,v11.2d + zip2 v3.2d,v9.2d,v11.2d + eor v0.16b,v0.16b,v15.16b + eor v1.16b,v1.16b,v4.16b + orr v15.16b,v7.16b,v7.16b + eor v2.16b,v2.16b,v5.16b + eor v3.16b,v3.16b,v6.16b + st1 {v0.4s,v1.4s,v2.4s,v3.4s},[x1],#64 + subs w2,w2,#4 + b.gt Lcbc_4_blocks_dec + // save back IV + st1 {v7.4s}, [x4] + b 100f +1: // last block + subs w2,w2,#1 + b.lt 100f + b.gt 1f + ld1 {v4.4s},[x0],#16 + // save back IV + st1 {v4.4s}, [x4] +#ifndef __AARCH64EB__ + rev32 v8.16b,v4.16b +#else + mov v8.16b,v4.16b +#endif + mov x10,x3 + mov w11,#8 + mov w12,v8.s[0] + mov w13,v8.s[1] + mov w14,v8.s[2] + mov w15,v8.s[3] +10: + ldp w7,w8,[x10],8 + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + eor w6,w14,w15 + eor w9,w7,w13 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w12,w12,w6 + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + eor w6,w14,w15 + eor w9,w12,w8 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + ldp w7,w8,[x10],8 + eor w13,w13,w6 + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + eor w6,w12,w13 + eor w9,w7,w15 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w14,w14,w6 + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + eor w6,w12,w13 + eor w9,w14,w8 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w15,w15,w6 + subs w11,w11,#1 + b.ne 10b + mov v8.s[0],w15 + mov v8.s[1],w14 + mov v8.s[2],w13 + mov v8.s[3],w12 +#ifndef __AARCH64EB__ + rev32 v8.16b,v8.16b +#endif + eor v8.16b,v8.16b,v15.16b + st1 {v8.4s},[x1],#16 + b 100f +1: // last two blocks + ld4 {v4.s,v5.s,v6.s,v7.s}[0],[x0] + add x10,x0,#16 + ld4 {v4.s,v5.s,v6.s,v7.s}[1],[x10],#16 + subs w2,w2,1 + b.gt 1f +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif +#ifndef __AARCH64EB__ + rev32 v5.16b,v5.16b +#endif +#ifndef __AARCH64EB__ + rev32 v6.16b,v6.16b +#endif +#ifndef __AARCH64EB__ + rev32 v7.16b,v7.16b +#endif + bl _vpsm4_ex_enc_4blks + ld1 {v4.4s,v5.4s},[x0],#32 + zip1 v8.4s,v0.4s,v1.4s + zip2 v9.4s,v0.4s,v1.4s + zip1 v10.4s,v2.4s,v3.4s + zip2 v11.4s,v2.4s,v3.4s + zip1 v0.2d,v8.2d,v10.2d + zip2 v1.2d,v8.2d,v10.2d + zip1 v2.2d,v9.2d,v11.2d + zip2 v3.2d,v9.2d,v11.2d + eor v0.16b,v0.16b,v15.16b + eor v1.16b,v1.16b,v4.16b + st1 {v0.4s,v1.4s},[x1],#32 + // save back IV + st1 {v5.4s}, [x4] + b 100f +1: // last 3 blocks + ld4 {v4.s,v5.s,v6.s,v7.s}[2],[x10] +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif +#ifndef __AARCH64EB__ + rev32 v5.16b,v5.16b +#endif +#ifndef __AARCH64EB__ + rev32 v6.16b,v6.16b +#endif +#ifndef __AARCH64EB__ + rev32 v7.16b,v7.16b +#endif + bl _vpsm4_ex_enc_4blks + ld1 {v4.4s,v5.4s,v6.4s},[x0],#48 + zip1 v8.4s,v0.4s,v1.4s + zip2 v9.4s,v0.4s,v1.4s + zip1 v10.4s,v2.4s,v3.4s + zip2 v11.4s,v2.4s,v3.4s + zip1 v0.2d,v8.2d,v10.2d + zip2 v1.2d,v8.2d,v10.2d + zip1 v2.2d,v9.2d,v11.2d + zip2 v3.2d,v9.2d,v11.2d + eor v0.16b,v0.16b,v15.16b + eor v1.16b,v1.16b,v4.16b + eor v2.16b,v2.16b,v5.16b + st1 {v0.4s,v1.4s,v2.4s},[x1],#48 + // save back IV + st1 {v6.4s}, [x4] +100: + ldp d10,d11,[sp,#16] + ldp d12,d13,[sp,#32] + ldp d14,d15,[sp,#48] + ldp x29,x30,[sp,#64] + ldp d8,d9,[sp],#80 + AARCH64_VALIDATE_LINK_REGISTER + ret + +.globl _vpsm4_ex_ctr32_encrypt_blocks + +.align 5 +_vpsm4_ex_ctr32_encrypt_blocks: + AARCH64_VALID_CALL_TARGET + ld1 {v3.4s},[x4] +#ifndef __AARCH64EB__ + rev32 v3.16b,v3.16b +#endif + adrp x9, Lsbox_magic@PAGE + ldr q26, [x9, Lsbox_magic@PAGEOFF] + ldr q27, [x9, Lsbox_magic@PAGEOFF+16] + ldr q28, [x9, Lsbox_magic@PAGEOFF+32] + ldr q29, [x9, Lsbox_magic@PAGEOFF+48] + ldr q30, [x9, Lsbox_magic@PAGEOFF+64] + ldr q31, [x9, Lsbox_magic@PAGEOFF+80] + cmp w2,#1 + b.ne 1f + // fast processing for one single block without + // context saving overhead + mov x10,x3 + mov w11,#8 + mov w12,v3.s[0] + mov w13,v3.s[1] + mov w14,v3.s[2] + mov w15,v3.s[3] +10: + ldp w7,w8,[x10],8 + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + eor w6,w14,w15 + eor w9,w7,w13 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w12,w12,w6 + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + eor w6,w14,w15 + eor w9,w12,w8 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + ldp w7,w8,[x10],8 + eor w13,w13,w6 + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + eor w6,w12,w13 + eor w9,w7,w15 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w14,w14,w6 + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + eor w6,w12,w13 + eor w9,w14,w8 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w15,w15,w6 + subs w11,w11,#1 + b.ne 10b + mov v3.s[0],w15 + mov v3.s[1],w14 + mov v3.s[2],w13 + mov v3.s[3],w12 +#ifndef __AARCH64EB__ + rev32 v3.16b,v3.16b +#endif + ld1 {v4.4s},[x0] + eor v4.16b,v4.16b,v3.16b + st1 {v4.4s},[x1] + ret +1: + AARCH64_SIGN_LINK_REGISTER + stp d8,d9,[sp,#-80]! + stp d10,d11,[sp,#16] + stp d12,d13,[sp,#32] + stp d14,d15,[sp,#48] + stp x29,x30,[sp,#64] + mov w12,v3.s[0] + mov w13,v3.s[1] + mov w14,v3.s[2] + mov w5,v3.s[3] +Lctr32_4_blocks_process: + cmp w2,#4 + b.lt 1f + dup v4.4s,w12 + dup v5.4s,w13 + dup v6.4s,w14 + mov v7.s[0],w5 + add w5,w5,#1 + mov v7.s[1],w5 + add w5,w5,#1 + mov v7.s[2],w5 + add w5,w5,#1 + mov v7.s[3],w5 + add w5,w5,#1 + cmp w2,#8 + b.ge Lctr32_8_blocks_process + bl _vpsm4_ex_enc_4blks + ld4 {v12.4s,v13.4s,v14.4s,v15.4s},[x0],#64 + eor v0.16b,v0.16b,v12.16b + eor v1.16b,v1.16b,v13.16b + eor v2.16b,v2.16b,v14.16b + eor v3.16b,v3.16b,v15.16b + st4 {v0.4s,v1.4s,v2.4s,v3.4s},[x1],#64 + subs w2,w2,#4 + b.ne Lctr32_4_blocks_process + b 100f +Lctr32_8_blocks_process: + dup v8.4s,w12 + dup v9.4s,w13 + dup v10.4s,w14 + mov v11.s[0],w5 + add w5,w5,#1 + mov v11.s[1],w5 + add w5,w5,#1 + mov v11.s[2],w5 + add w5,w5,#1 + mov v11.s[3],w5 + add w5,w5,#1 + bl _vpsm4_ex_enc_8blks + ld4 {v12.4s,v13.4s,v14.4s,v15.4s},[x0],#64 + ld4 {v8.4s,v9.4s,v10.4s,v11.4s},[x0],#64 + eor v0.16b,v0.16b,v12.16b + eor v1.16b,v1.16b,v13.16b + eor v2.16b,v2.16b,v14.16b + eor v3.16b,v3.16b,v15.16b + eor v4.16b,v4.16b,v8.16b + eor v5.16b,v5.16b,v9.16b + eor v6.16b,v6.16b,v10.16b + eor v7.16b,v7.16b,v11.16b + st4 {v0.4s,v1.4s,v2.4s,v3.4s},[x1],#64 + st4 {v4.4s,v5.4s,v6.4s,v7.4s},[x1],#64 + subs w2,w2,#8 + b.ne Lctr32_4_blocks_process + b 100f +1: // last block processing + subs w2,w2,#1 + b.lt 100f + b.gt 1f + mov v3.s[0],w12 + mov v3.s[1],w13 + mov v3.s[2],w14 + mov v3.s[3],w5 + mov x10,x3 + mov w11,#8 + mov w12,v3.s[0] + mov w13,v3.s[1] + mov w14,v3.s[2] + mov w15,v3.s[3] +10: + ldp w7,w8,[x10],8 + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + eor w6,w14,w15 + eor w9,w7,w13 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w12,w12,w6 + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + eor w6,w14,w15 + eor w9,w12,w8 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + ldp w7,w8,[x10],8 + eor w13,w13,w6 + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + eor w6,w12,w13 + eor w9,w7,w15 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w14,w14,w6 + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + eor w6,w12,w13 + eor w9,w14,w8 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w15,w15,w6 + subs w11,w11,#1 + b.ne 10b + mov v3.s[0],w15 + mov v3.s[1],w14 + mov v3.s[2],w13 + mov v3.s[3],w12 +#ifndef __AARCH64EB__ + rev32 v3.16b,v3.16b +#endif + ld1 {v4.4s},[x0] + eor v4.16b,v4.16b,v3.16b + st1 {v4.4s},[x1] + b 100f +1: // last 2 blocks processing + dup v4.4s,w12 + dup v5.4s,w13 + dup v6.4s,w14 + mov v7.s[0],w5 + add w5,w5,#1 + mov v7.s[1],w5 + subs w2,w2,#1 + b.ne 1f + bl _vpsm4_ex_enc_4blks + ld4 {v12.s,v13.s,v14.s,v15.s}[0],[x0],#16 + ld4 {v12.s,v13.s,v14.s,v15.s}[1],[x0],#16 + eor v0.16b,v0.16b,v12.16b + eor v1.16b,v1.16b,v13.16b + eor v2.16b,v2.16b,v14.16b + eor v3.16b,v3.16b,v15.16b + st4 {v0.s,v1.s,v2.s,v3.s}[0],[x1],#16 + st4 {v0.s,v1.s,v2.s,v3.s}[1],[x1],#16 + b 100f +1: // last 3 blocks processing + add w5,w5,#1 + mov v7.s[2],w5 + bl _vpsm4_ex_enc_4blks + ld4 {v12.s,v13.s,v14.s,v15.s}[0],[x0],#16 + ld4 {v12.s,v13.s,v14.s,v15.s}[1],[x0],#16 + ld4 {v12.s,v13.s,v14.s,v15.s}[2],[x0],#16 + eor v0.16b,v0.16b,v12.16b + eor v1.16b,v1.16b,v13.16b + eor v2.16b,v2.16b,v14.16b + eor v3.16b,v3.16b,v15.16b + st4 {v0.s,v1.s,v2.s,v3.s}[0],[x1],#16 + st4 {v0.s,v1.s,v2.s,v3.s}[1],[x1],#16 + st4 {v0.s,v1.s,v2.s,v3.s}[2],[x1],#16 +100: + ldp d10,d11,[sp,#16] + ldp d12,d13,[sp,#32] + ldp d14,d15,[sp,#48] + ldp x29,x30,[sp,#64] + ldp d8,d9,[sp],#80 + AARCH64_VALIDATE_LINK_REGISTER + ret + +.globl _vpsm4_ex_xts_encrypt_gb + +.align 5 +_vpsm4_ex_xts_encrypt_gb: + AARCH64_SIGN_LINK_REGISTER + stp x15, x16, [sp, #-0x10]! + stp x17, x18, [sp, #-0x10]! + stp x19, x20, [sp, #-0x10]! + stp x21, x22, [sp, #-0x10]! + stp x23, x24, [sp, #-0x10]! + stp x25, x26, [sp, #-0x10]! + stp x27, x28, [sp, #-0x10]! + stp x29, x30, [sp, #-0x10]! + stp d8, d9, [sp, #-0x10]! + stp d10, d11, [sp, #-0x10]! + stp d12, d13, [sp, #-0x10]! + stp d14, d15, [sp, #-0x10]! + mov x26,x3 + mov x27,x4 + mov w28,w6 + ld1 {v16.4s}, [x5] + mov x3,x27 + adrp x9, Lsbox_magic@PAGE + ldr q26, [x9, Lsbox_magic@PAGEOFF] + ldr q27, [x9, Lsbox_magic@PAGEOFF+16] + ldr q28, [x9, Lsbox_magic@PAGEOFF+32] + ldr q29, [x9, Lsbox_magic@PAGEOFF+48] + ldr q30, [x9, Lsbox_magic@PAGEOFF+64] + ldr q31, [x9, Lsbox_magic@PAGEOFF+80] +#ifndef __AARCH64EB__ + rev32 v16.16b,v16.16b +#endif + mov x10,x3 + mov w11,#8 + mov w12,v16.s[0] + mov w13,v16.s[1] + mov w14,v16.s[2] + mov w15,v16.s[3] +10: + ldp w7,w8,[x10],8 + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + eor w6,w14,w15 + eor w9,w7,w13 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w12,w12,w6 + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + eor w6,w14,w15 + eor w9,w12,w8 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + ldp w7,w8,[x10],8 + eor w13,w13,w6 + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + eor w6,w12,w13 + eor w9,w7,w15 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w14,w14,w6 + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + eor w6,w12,w13 + eor w9,w14,w8 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w15,w15,w6 + subs w11,w11,#1 + b.ne 10b + mov v16.s[0],w15 + mov v16.s[1],w14 + mov v16.s[2],w13 + mov v16.s[3],w12 +#ifndef __AARCH64EB__ + rev32 v16.16b,v16.16b +#endif + mov x3,x26 + and x29,x2,#0x0F + // convert length into blocks + lsr x2,x2,4 + cmp x2,#1 + b.lt .return_gb + + cmp x29,0 + // If the encryption/decryption Length is N times of 16, + // the all blocks are encrypted/decrypted in .xts_encrypt_blocks_gb + b.eq .xts_encrypt_blocks_gb + + // If the encryption/decryption length is not N times of 16, + // the last two blocks are encrypted/decrypted in .last_2blks_tweak_gb or .only_2blks_tweak_gb + // the other blocks are encrypted/decrypted in .xts_encrypt_blocks_gb + subs x2,x2,#1 + b.eq .only_2blks_tweak_gb +.xts_encrypt_blocks_gb: + rbit v16.16b,v16.16b +#ifdef __AARCH64EB__ + rev32 v16.16b,v16.16b +#endif + mov x12,v16.d[0] + mov x13,v16.d[1] + mov w7,0x87 + extr x9,x13,x13,#32 + extr x15,x13,x12,#63 + and w8,w7,w9,asr#31 + eor x14,x8,x12,lsl#1 + mov w7,0x87 + extr x9,x15,x15,#32 + extr x17,x15,x14,#63 + and w8,w7,w9,asr#31 + eor x16,x8,x14,lsl#1 + mov w7,0x87 + extr x9,x17,x17,#32 + extr x19,x17,x16,#63 + and w8,w7,w9,asr#31 + eor x18,x8,x16,lsl#1 + mov w7,0x87 + extr x9,x19,x19,#32 + extr x21,x19,x18,#63 + and w8,w7,w9,asr#31 + eor x20,x8,x18,lsl#1 + mov w7,0x87 + extr x9,x21,x21,#32 + extr x23,x21,x20,#63 + and w8,w7,w9,asr#31 + eor x22,x8,x20,lsl#1 + mov w7,0x87 + extr x9,x23,x23,#32 + extr x25,x23,x22,#63 + and w8,w7,w9,asr#31 + eor x24,x8,x22,lsl#1 + mov w7,0x87 + extr x9,x25,x25,#32 + extr x27,x25,x24,#63 + and w8,w7,w9,asr#31 + eor x26,x8,x24,lsl#1 +Lxts_8_blocks_process_gb: + cmp x2,#8 + mov v16.d[0],x12 + mov v16.d[1],x13 +#ifdef __AARCH64EB__ + rev32 v16.16b,v16.16b +#endif + mov w7,0x87 + extr x9,x27,x27,#32 + extr x13,x27,x26,#63 + and w8,w7,w9,asr#31 + eor x12,x8,x26,lsl#1 + mov v17.d[0],x14 + mov v17.d[1],x15 +#ifdef __AARCH64EB__ + rev32 v17.16b,v17.16b +#endif + mov w7,0x87 + extr x9,x13,x13,#32 + extr x15,x13,x12,#63 + and w8,w7,w9,asr#31 + eor x14,x8,x12,lsl#1 + mov v18.d[0],x16 + mov v18.d[1],x17 +#ifdef __AARCH64EB__ + rev32 v18.16b,v18.16b +#endif + mov w7,0x87 + extr x9,x15,x15,#32 + extr x17,x15,x14,#63 + and w8,w7,w9,asr#31 + eor x16,x8,x14,lsl#1 + mov v19.d[0],x18 + mov v19.d[1],x19 +#ifdef __AARCH64EB__ + rev32 v19.16b,v19.16b +#endif + mov w7,0x87 + extr x9,x17,x17,#32 + extr x19,x17,x16,#63 + and w8,w7,w9,asr#31 + eor x18,x8,x16,lsl#1 + mov v20.d[0],x20 + mov v20.d[1],x21 +#ifdef __AARCH64EB__ + rev32 v20.16b,v20.16b +#endif + mov w7,0x87 + extr x9,x19,x19,#32 + extr x21,x19,x18,#63 + and w8,w7,w9,asr#31 + eor x20,x8,x18,lsl#1 + mov v21.d[0],x22 + mov v21.d[1],x23 +#ifdef __AARCH64EB__ + rev32 v21.16b,v21.16b +#endif + mov w7,0x87 + extr x9,x21,x21,#32 + extr x23,x21,x20,#63 + and w8,w7,w9,asr#31 + eor x22,x8,x20,lsl#1 + mov v22.d[0],x24 + mov v22.d[1],x25 +#ifdef __AARCH64EB__ + rev32 v22.16b,v22.16b +#endif + mov w7,0x87 + extr x9,x23,x23,#32 + extr x25,x23,x22,#63 + and w8,w7,w9,asr#31 + eor x24,x8,x22,lsl#1 + mov v23.d[0],x26 + mov v23.d[1],x27 +#ifdef __AARCH64EB__ + rev32 v23.16b,v23.16b +#endif + mov w7,0x87 + extr x9,x25,x25,#32 + extr x27,x25,x24,#63 + and w8,w7,w9,asr#31 + eor x26,x8,x24,lsl#1 + b.lt Lxts_4_blocks_process_gb + ld1 {v4.4s,v5.4s,v6.4s,v7.4s},[x0],#64 + rbit v16.16b,v16.16b + rbit v17.16b,v17.16b + rbit v18.16b,v18.16b + rbit v19.16b,v19.16b + eor v4.16b, v4.16b, v16.16b + eor v5.16b, v5.16b, v17.16b + eor v6.16b, v6.16b, v18.16b + eor v7.16b, v7.16b, v19.16b + ld1 {v8.4s,v9.4s,v10.4s,v11.4s},[x0],#64 + rbit v20.16b,v20.16b + rbit v21.16b,v21.16b + rbit v22.16b,v22.16b + rbit v23.16b,v23.16b + eor v8.16b, v8.16b, v20.16b + eor v9.16b, v9.16b, v21.16b + eor v10.16b, v10.16b, v22.16b + eor v11.16b, v11.16b, v23.16b +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif +#ifndef __AARCH64EB__ + rev32 v5.16b,v5.16b +#endif +#ifndef __AARCH64EB__ + rev32 v6.16b,v6.16b +#endif +#ifndef __AARCH64EB__ + rev32 v7.16b,v7.16b +#endif +#ifndef __AARCH64EB__ + rev32 v8.16b,v8.16b +#endif +#ifndef __AARCH64EB__ + rev32 v9.16b,v9.16b +#endif +#ifndef __AARCH64EB__ + rev32 v10.16b,v10.16b +#endif +#ifndef __AARCH64EB__ + rev32 v11.16b,v11.16b +#endif + zip1 v0.4s,v4.4s,v5.4s + zip2 v1.4s,v4.4s,v5.4s + zip1 v2.4s,v6.4s,v7.4s + zip2 v3.4s,v6.4s,v7.4s + zip1 v4.2d,v0.2d,v2.2d + zip2 v5.2d,v0.2d,v2.2d + zip1 v6.2d,v1.2d,v3.2d + zip2 v7.2d,v1.2d,v3.2d + zip1 v0.4s,v8.4s,v9.4s + zip2 v1.4s,v8.4s,v9.4s + zip1 v2.4s,v10.4s,v11.4s + zip2 v3.4s,v10.4s,v11.4s + zip1 v8.2d,v0.2d,v2.2d + zip2 v9.2d,v0.2d,v2.2d + zip1 v10.2d,v1.2d,v3.2d + zip2 v11.2d,v1.2d,v3.2d + bl _vpsm4_ex_enc_8blks + zip1 v8.4s,v0.4s,v1.4s + zip2 v9.4s,v0.4s,v1.4s + zip1 v10.4s,v2.4s,v3.4s + zip2 v11.4s,v2.4s,v3.4s + zip1 v0.2d,v8.2d,v10.2d + zip2 v1.2d,v8.2d,v10.2d + zip1 v2.2d,v9.2d,v11.2d + zip2 v3.2d,v9.2d,v11.2d + zip1 v8.4s,v4.4s,v5.4s + zip2 v9.4s,v4.4s,v5.4s + zip1 v10.4s,v6.4s,v7.4s + zip2 v11.4s,v6.4s,v7.4s + zip1 v4.2d,v8.2d,v10.2d + zip2 v5.2d,v8.2d,v10.2d + zip1 v6.2d,v9.2d,v11.2d + zip2 v7.2d,v9.2d,v11.2d + eor v0.16b, v0.16b, v16.16b + eor v1.16b, v1.16b, v17.16b + eor v2.16b, v2.16b, v18.16b + eor v3.16b, v3.16b, v19.16b + eor v4.16b, v4.16b, v20.16b + eor v5.16b, v5.16b, v21.16b + eor v6.16b, v6.16b, v22.16b + eor v7.16b, v7.16b, v23.16b + + // save the last tweak + mov v25.16b,v23.16b + st1 {v0.4s,v1.4s,v2.4s,v3.4s},[x1],#64 + st1 {v4.4s,v5.4s,v6.4s,v7.4s},[x1],#64 + subs x2,x2,#8 + b.gt Lxts_8_blocks_process_gb + b 100f +Lxts_4_blocks_process_gb: + cmp x2,#4 + b.lt 1f + ld1 {v4.4s,v5.4s,v6.4s,v7.4s},[x0],#64 + rbit v16.16b,v16.16b + rbit v17.16b,v17.16b + rbit v18.16b,v18.16b + rbit v19.16b,v19.16b + eor v4.16b, v4.16b, v16.16b + eor v5.16b, v5.16b, v17.16b + eor v6.16b, v6.16b, v18.16b + eor v7.16b, v7.16b, v19.16b +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif +#ifndef __AARCH64EB__ + rev32 v5.16b,v5.16b +#endif +#ifndef __AARCH64EB__ + rev32 v6.16b,v6.16b +#endif +#ifndef __AARCH64EB__ + rev32 v7.16b,v7.16b +#endif + zip1 v0.4s,v4.4s,v5.4s + zip2 v1.4s,v4.4s,v5.4s + zip1 v2.4s,v6.4s,v7.4s + zip2 v3.4s,v6.4s,v7.4s + zip1 v4.2d,v0.2d,v2.2d + zip2 v5.2d,v0.2d,v2.2d + zip1 v6.2d,v1.2d,v3.2d + zip2 v7.2d,v1.2d,v3.2d + bl _vpsm4_ex_enc_4blks + zip1 v4.4s,v0.4s,v1.4s + zip2 v5.4s,v0.4s,v1.4s + zip1 v6.4s,v2.4s,v3.4s + zip2 v7.4s,v2.4s,v3.4s + zip1 v0.2d,v4.2d,v6.2d + zip2 v1.2d,v4.2d,v6.2d + zip1 v2.2d,v5.2d,v7.2d + zip2 v3.2d,v5.2d,v7.2d + eor v0.16b, v0.16b, v16.16b + eor v1.16b, v1.16b, v17.16b + eor v2.16b, v2.16b, v18.16b + eor v3.16b, v3.16b, v19.16b + st1 {v0.4s,v1.4s,v2.4s,v3.4s},[x1],#64 + sub x2,x2,#4 + mov v16.16b,v20.16b + mov v17.16b,v21.16b + mov v18.16b,v22.16b + // save the last tweak + mov v25.16b,v19.16b +1: + // process last block + cmp x2,#1 + b.lt 100f + b.gt 1f + ld1 {v4.4s},[x0],#16 + rbit v16.16b,v16.16b + eor v4.16b, v4.16b, v16.16b +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif + mov x10,x3 + mov w11,#8 + mov w12,v4.s[0] + mov w13,v4.s[1] + mov w14,v4.s[2] + mov w15,v4.s[3] +10: + ldp w7,w8,[x10],8 + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + eor w6,w14,w15 + eor w9,w7,w13 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w12,w12,w6 + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + eor w6,w14,w15 + eor w9,w12,w8 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + ldp w7,w8,[x10],8 + eor w13,w13,w6 + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + eor w6,w12,w13 + eor w9,w7,w15 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w14,w14,w6 + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + eor w6,w12,w13 + eor w9,w14,w8 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w15,w15,w6 + subs w11,w11,#1 + b.ne 10b + mov v4.s[0],w15 + mov v4.s[1],w14 + mov v4.s[2],w13 + mov v4.s[3],w12 +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif + eor v4.16b, v4.16b, v16.16b + st1 {v4.4s},[x1],#16 + // save the last tweak + mov v25.16b,v16.16b + b 100f +1: // process last 2 blocks + cmp x2,#2 + b.gt 1f + ld1 {v4.4s,v5.4s},[x0],#32 + rbit v16.16b,v16.16b + rbit v17.16b,v17.16b + eor v4.16b, v4.16b, v16.16b + eor v5.16b, v5.16b, v17.16b +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif +#ifndef __AARCH64EB__ + rev32 v5.16b,v5.16b +#endif + zip1 v0.4s,v4.4s,v5.4s + zip2 v1.4s,v4.4s,v5.4s + zip1 v2.4s,v6.4s,v7.4s + zip2 v3.4s,v6.4s,v7.4s + zip1 v4.2d,v0.2d,v2.2d + zip2 v5.2d,v0.2d,v2.2d + zip1 v6.2d,v1.2d,v3.2d + zip2 v7.2d,v1.2d,v3.2d + bl _vpsm4_ex_enc_4blks + zip1 v4.4s,v0.4s,v1.4s + zip2 v5.4s,v0.4s,v1.4s + zip1 v6.4s,v2.4s,v3.4s + zip2 v7.4s,v2.4s,v3.4s + zip1 v0.2d,v4.2d,v6.2d + zip2 v1.2d,v4.2d,v6.2d + zip1 v2.2d,v5.2d,v7.2d + zip2 v3.2d,v5.2d,v7.2d + eor v0.16b, v0.16b, v16.16b + eor v1.16b, v1.16b, v17.16b + st1 {v0.4s,v1.4s},[x1],#32 + // save the last tweak + mov v25.16b,v17.16b + b 100f +1: // process last 3 blocks + ld1 {v4.4s,v5.4s,v6.4s},[x0],#48 + rbit v16.16b,v16.16b + rbit v17.16b,v17.16b + rbit v18.16b,v18.16b + eor v4.16b, v4.16b, v16.16b + eor v5.16b, v5.16b, v17.16b + eor v6.16b, v6.16b, v18.16b +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif +#ifndef __AARCH64EB__ + rev32 v5.16b,v5.16b +#endif +#ifndef __AARCH64EB__ + rev32 v6.16b,v6.16b +#endif + zip1 v0.4s,v4.4s,v5.4s + zip2 v1.4s,v4.4s,v5.4s + zip1 v2.4s,v6.4s,v7.4s + zip2 v3.4s,v6.4s,v7.4s + zip1 v4.2d,v0.2d,v2.2d + zip2 v5.2d,v0.2d,v2.2d + zip1 v6.2d,v1.2d,v3.2d + zip2 v7.2d,v1.2d,v3.2d + bl _vpsm4_ex_enc_4blks + zip1 v4.4s,v0.4s,v1.4s + zip2 v5.4s,v0.4s,v1.4s + zip1 v6.4s,v2.4s,v3.4s + zip2 v7.4s,v2.4s,v3.4s + zip1 v0.2d,v4.2d,v6.2d + zip2 v1.2d,v4.2d,v6.2d + zip1 v2.2d,v5.2d,v7.2d + zip2 v3.2d,v5.2d,v7.2d + eor v0.16b, v0.16b, v16.16b + eor v1.16b, v1.16b, v17.16b + eor v2.16b, v2.16b, v18.16b + st1 {v0.4s,v1.4s,v2.4s},[x1],#48 + // save the last tweak + mov v25.16b,v18.16b +100: + cmp x29,0 + b.eq .return_gb + +// This branch calculates the last two tweaks, +// while the encryption/decryption length is larger than 32 +.last_2blks_tweak_gb: +#ifdef __AARCH64EB__ + rev32 v25.16b,v25.16b +#endif + rbit v2.16b,v25.16b + adrp x9, Lxts_magic@PAGE + ldr q0, [x9, Lxts_magic@PAGEOFF] + shl v17.16b, v2.16b, #1 + ext v1.16b, v2.16b, v2.16b,#15 + ushr v1.16b, v1.16b, #7 + mul v1.16b, v1.16b, v0.16b + eor v17.16b, v17.16b, v1.16b + rbit v17.16b,v17.16b + rbit v2.16b,v17.16b + adrp x9, Lxts_magic@PAGE + ldr q0, [x9, Lxts_magic@PAGEOFF] + shl v18.16b, v2.16b, #1 + ext v1.16b, v2.16b, v2.16b,#15 + ushr v1.16b, v1.16b, #7 + mul v1.16b, v1.16b, v0.16b + eor v18.16b, v18.16b, v1.16b + rbit v18.16b,v18.16b + b .check_dec_gb + + +// This branch calculates the last two tweaks, +// while the encryption/decryption length is equal to 32, who only need two tweaks +.only_2blks_tweak_gb: + mov v17.16b,v16.16b +#ifdef __AARCH64EB__ + rev32 v17.16b,v17.16b +#endif + rbit v2.16b,v17.16b + adrp x9, Lxts_magic@PAGE + ldr q0, [x9, Lxts_magic@PAGEOFF] + shl v18.16b, v2.16b, #1 + ext v1.16b, v2.16b, v2.16b,#15 + ushr v1.16b, v1.16b, #7 + mul v1.16b, v1.16b, v0.16b + eor v18.16b, v18.16b, v1.16b + rbit v18.16b,v18.16b + b .check_dec_gb + + +// Determine whether encryption or decryption is required. +// The last two tweaks need to be swapped for decryption. +.check_dec_gb: + // encryption:1 decryption:0 + cmp w28,1 + b.eq .process_last_2blks_gb + mov v0.16B,v17.16b + mov v17.16B,v18.16b + mov v18.16B,v0.16b + +.process_last_2blks_gb: +#ifdef __AARCH64EB__ + rev32 v17.16b,v17.16b +#endif +#ifdef __AARCH64EB__ + rev32 v18.16b,v18.16b +#endif + ld1 {v4.4s},[x0],#16 + eor v4.16b, v4.16b, v17.16b +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif + mov x10,x3 + mov w11,#8 + mov w12,v4.s[0] + mov w13,v4.s[1] + mov w14,v4.s[2] + mov w15,v4.s[3] +10: + ldp w7,w8,[x10],8 + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + eor w6,w14,w15 + eor w9,w7,w13 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w12,w12,w6 + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + eor w6,w14,w15 + eor w9,w12,w8 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + ldp w7,w8,[x10],8 + eor w13,w13,w6 + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + eor w6,w12,w13 + eor w9,w7,w15 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w14,w14,w6 + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + eor w6,w12,w13 + eor w9,w14,w8 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w15,w15,w6 + subs w11,w11,#1 + b.ne 10b + mov v4.s[0],w15 + mov v4.s[1],w14 + mov v4.s[2],w13 + mov v4.s[3],w12 +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif + eor v4.16b, v4.16b, v17.16b + st1 {v4.4s},[x1],#16 + + sub x26,x1,16 +.loop_gb: + subs x29,x29,1 + ldrb w7,[x26,x29] + ldrb w8,[x0,x29] + strb w8,[x26,x29] + strb w7,[x1,x29] + b.gt .loop_gb + ld1 {v4.4s}, [x26] + eor v4.16b, v4.16b, v18.16b +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif + mov x10,x3 + mov w11,#8 + mov w12,v4.s[0] + mov w13,v4.s[1] + mov w14,v4.s[2] + mov w15,v4.s[3] +10: + ldp w7,w8,[x10],8 + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + eor w6,w14,w15 + eor w9,w7,w13 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w12,w12,w6 + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + eor w6,w14,w15 + eor w9,w12,w8 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + ldp w7,w8,[x10],8 + eor w13,w13,w6 + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + eor w6,w12,w13 + eor w9,w7,w15 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w14,w14,w6 + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + eor w6,w12,w13 + eor w9,w14,w8 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w15,w15,w6 + subs w11,w11,#1 + b.ne 10b + mov v4.s[0],w15 + mov v4.s[1],w14 + mov v4.s[2],w13 + mov v4.s[3],w12 +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif + eor v4.16b, v4.16b, v18.16b + st1 {v4.4s}, [x26] +.return_gb: + ldp d14, d15, [sp], #0x10 + ldp d12, d13, [sp], #0x10 + ldp d10, d11, [sp], #0x10 + ldp d8, d9, [sp], #0x10 + ldp x29, x30, [sp], #0x10 + ldp x27, x28, [sp], #0x10 + ldp x25, x26, [sp], #0x10 + ldp x23, x24, [sp], #0x10 + ldp x21, x22, [sp], #0x10 + ldp x19, x20, [sp], #0x10 + ldp x17, x18, [sp], #0x10 + ldp x15, x16, [sp], #0x10 + AARCH64_VALIDATE_LINK_REGISTER + ret + +.globl _vpsm4_ex_xts_encrypt + +.align 5 +_vpsm4_ex_xts_encrypt: + AARCH64_SIGN_LINK_REGISTER + stp x15, x16, [sp, #-0x10]! + stp x17, x18, [sp, #-0x10]! + stp x19, x20, [sp, #-0x10]! + stp x21, x22, [sp, #-0x10]! + stp x23, x24, [sp, #-0x10]! + stp x25, x26, [sp, #-0x10]! + stp x27, x28, [sp, #-0x10]! + stp x29, x30, [sp, #-0x10]! + stp d8, d9, [sp, #-0x10]! + stp d10, d11, [sp, #-0x10]! + stp d12, d13, [sp, #-0x10]! + stp d14, d15, [sp, #-0x10]! + mov x26,x3 + mov x27,x4 + mov w28,w6 + ld1 {v16.4s}, [x5] + mov x3,x27 + adrp x9, Lsbox_magic@PAGE + ldr q26, [x9, Lsbox_magic@PAGEOFF] + ldr q27, [x9, Lsbox_magic@PAGEOFF+16] + ldr q28, [x9, Lsbox_magic@PAGEOFF+32] + ldr q29, [x9, Lsbox_magic@PAGEOFF+48] + ldr q30, [x9, Lsbox_magic@PAGEOFF+64] + ldr q31, [x9, Lsbox_magic@PAGEOFF+80] +#ifndef __AARCH64EB__ + rev32 v16.16b,v16.16b +#endif + mov x10,x3 + mov w11,#8 + mov w12,v16.s[0] + mov w13,v16.s[1] + mov w14,v16.s[2] + mov w15,v16.s[3] +10: + ldp w7,w8,[x10],8 + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + eor w6,w14,w15 + eor w9,w7,w13 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w12,w12,w6 + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + eor w6,w14,w15 + eor w9,w12,w8 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + ldp w7,w8,[x10],8 + eor w13,w13,w6 + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + eor w6,w12,w13 + eor w9,w7,w15 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w14,w14,w6 + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + eor w6,w12,w13 + eor w9,w14,w8 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w15,w15,w6 + subs w11,w11,#1 + b.ne 10b + mov v16.s[0],w15 + mov v16.s[1],w14 + mov v16.s[2],w13 + mov v16.s[3],w12 +#ifndef __AARCH64EB__ + rev32 v16.16b,v16.16b +#endif + mov x3,x26 + and x29,x2,#0x0F + // convert length into blocks + lsr x2,x2,4 + cmp x2,#1 + b.lt .return + + cmp x29,0 + // If the encryption/decryption Length is N times of 16, + // the all blocks are encrypted/decrypted in .xts_encrypt_blocks + b.eq .xts_encrypt_blocks + + // If the encryption/decryption length is not N times of 16, + // the last two blocks are encrypted/decrypted in .last_2blks_tweak or .only_2blks_tweak + // the other blocks are encrypted/decrypted in .xts_encrypt_blocks + subs x2,x2,#1 + b.eq .only_2blks_tweak +.xts_encrypt_blocks: +#ifdef __AARCH64EB__ + rev32 v16.16b,v16.16b +#endif + mov x12,v16.d[0] + mov x13,v16.d[1] + mov w7,0x87 + extr x9,x13,x13,#32 + extr x15,x13,x12,#63 + and w8,w7,w9,asr#31 + eor x14,x8,x12,lsl#1 + mov w7,0x87 + extr x9,x15,x15,#32 + extr x17,x15,x14,#63 + and w8,w7,w9,asr#31 + eor x16,x8,x14,lsl#1 + mov w7,0x87 + extr x9,x17,x17,#32 + extr x19,x17,x16,#63 + and w8,w7,w9,asr#31 + eor x18,x8,x16,lsl#1 + mov w7,0x87 + extr x9,x19,x19,#32 + extr x21,x19,x18,#63 + and w8,w7,w9,asr#31 + eor x20,x8,x18,lsl#1 + mov w7,0x87 + extr x9,x21,x21,#32 + extr x23,x21,x20,#63 + and w8,w7,w9,asr#31 + eor x22,x8,x20,lsl#1 + mov w7,0x87 + extr x9,x23,x23,#32 + extr x25,x23,x22,#63 + and w8,w7,w9,asr#31 + eor x24,x8,x22,lsl#1 + mov w7,0x87 + extr x9,x25,x25,#32 + extr x27,x25,x24,#63 + and w8,w7,w9,asr#31 + eor x26,x8,x24,lsl#1 +Lxts_8_blocks_process: + cmp x2,#8 + mov v16.d[0],x12 + mov v16.d[1],x13 +#ifdef __AARCH64EB__ + rev32 v16.16b,v16.16b +#endif + mov w7,0x87 + extr x9,x27,x27,#32 + extr x13,x27,x26,#63 + and w8,w7,w9,asr#31 + eor x12,x8,x26,lsl#1 + mov v17.d[0],x14 + mov v17.d[1],x15 +#ifdef __AARCH64EB__ + rev32 v17.16b,v17.16b +#endif + mov w7,0x87 + extr x9,x13,x13,#32 + extr x15,x13,x12,#63 + and w8,w7,w9,asr#31 + eor x14,x8,x12,lsl#1 + mov v18.d[0],x16 + mov v18.d[1],x17 +#ifdef __AARCH64EB__ + rev32 v18.16b,v18.16b +#endif + mov w7,0x87 + extr x9,x15,x15,#32 + extr x17,x15,x14,#63 + and w8,w7,w9,asr#31 + eor x16,x8,x14,lsl#1 + mov v19.d[0],x18 + mov v19.d[1],x19 +#ifdef __AARCH64EB__ + rev32 v19.16b,v19.16b +#endif + mov w7,0x87 + extr x9,x17,x17,#32 + extr x19,x17,x16,#63 + and w8,w7,w9,asr#31 + eor x18,x8,x16,lsl#1 + mov v20.d[0],x20 + mov v20.d[1],x21 +#ifdef __AARCH64EB__ + rev32 v20.16b,v20.16b +#endif + mov w7,0x87 + extr x9,x19,x19,#32 + extr x21,x19,x18,#63 + and w8,w7,w9,asr#31 + eor x20,x8,x18,lsl#1 + mov v21.d[0],x22 + mov v21.d[1],x23 +#ifdef __AARCH64EB__ + rev32 v21.16b,v21.16b +#endif + mov w7,0x87 + extr x9,x21,x21,#32 + extr x23,x21,x20,#63 + and w8,w7,w9,asr#31 + eor x22,x8,x20,lsl#1 + mov v22.d[0],x24 + mov v22.d[1],x25 +#ifdef __AARCH64EB__ + rev32 v22.16b,v22.16b +#endif + mov w7,0x87 + extr x9,x23,x23,#32 + extr x25,x23,x22,#63 + and w8,w7,w9,asr#31 + eor x24,x8,x22,lsl#1 + mov v23.d[0],x26 + mov v23.d[1],x27 +#ifdef __AARCH64EB__ + rev32 v23.16b,v23.16b +#endif + mov w7,0x87 + extr x9,x25,x25,#32 + extr x27,x25,x24,#63 + and w8,w7,w9,asr#31 + eor x26,x8,x24,lsl#1 + b.lt Lxts_4_blocks_process + ld1 {v4.4s,v5.4s,v6.4s,v7.4s},[x0],#64 + eor v4.16b, v4.16b, v16.16b + eor v5.16b, v5.16b, v17.16b + eor v6.16b, v6.16b, v18.16b + eor v7.16b, v7.16b, v19.16b + ld1 {v8.4s,v9.4s,v10.4s,v11.4s},[x0],#64 + eor v8.16b, v8.16b, v20.16b + eor v9.16b, v9.16b, v21.16b + eor v10.16b, v10.16b, v22.16b + eor v11.16b, v11.16b, v23.16b +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif +#ifndef __AARCH64EB__ + rev32 v5.16b,v5.16b +#endif +#ifndef __AARCH64EB__ + rev32 v6.16b,v6.16b +#endif +#ifndef __AARCH64EB__ + rev32 v7.16b,v7.16b +#endif +#ifndef __AARCH64EB__ + rev32 v8.16b,v8.16b +#endif +#ifndef __AARCH64EB__ + rev32 v9.16b,v9.16b +#endif +#ifndef __AARCH64EB__ + rev32 v10.16b,v10.16b +#endif +#ifndef __AARCH64EB__ + rev32 v11.16b,v11.16b +#endif + zip1 v0.4s,v4.4s,v5.4s + zip2 v1.4s,v4.4s,v5.4s + zip1 v2.4s,v6.4s,v7.4s + zip2 v3.4s,v6.4s,v7.4s + zip1 v4.2d,v0.2d,v2.2d + zip2 v5.2d,v0.2d,v2.2d + zip1 v6.2d,v1.2d,v3.2d + zip2 v7.2d,v1.2d,v3.2d + zip1 v0.4s,v8.4s,v9.4s + zip2 v1.4s,v8.4s,v9.4s + zip1 v2.4s,v10.4s,v11.4s + zip2 v3.4s,v10.4s,v11.4s + zip1 v8.2d,v0.2d,v2.2d + zip2 v9.2d,v0.2d,v2.2d + zip1 v10.2d,v1.2d,v3.2d + zip2 v11.2d,v1.2d,v3.2d + bl _vpsm4_ex_enc_8blks + zip1 v8.4s,v0.4s,v1.4s + zip2 v9.4s,v0.4s,v1.4s + zip1 v10.4s,v2.4s,v3.4s + zip2 v11.4s,v2.4s,v3.4s + zip1 v0.2d,v8.2d,v10.2d + zip2 v1.2d,v8.2d,v10.2d + zip1 v2.2d,v9.2d,v11.2d + zip2 v3.2d,v9.2d,v11.2d + zip1 v8.4s,v4.4s,v5.4s + zip2 v9.4s,v4.4s,v5.4s + zip1 v10.4s,v6.4s,v7.4s + zip2 v11.4s,v6.4s,v7.4s + zip1 v4.2d,v8.2d,v10.2d + zip2 v5.2d,v8.2d,v10.2d + zip1 v6.2d,v9.2d,v11.2d + zip2 v7.2d,v9.2d,v11.2d + eor v0.16b, v0.16b, v16.16b + eor v1.16b, v1.16b, v17.16b + eor v2.16b, v2.16b, v18.16b + eor v3.16b, v3.16b, v19.16b + eor v4.16b, v4.16b, v20.16b + eor v5.16b, v5.16b, v21.16b + eor v6.16b, v6.16b, v22.16b + eor v7.16b, v7.16b, v23.16b + + // save the last tweak + mov v25.16b,v23.16b + st1 {v0.4s,v1.4s,v2.4s,v3.4s},[x1],#64 + st1 {v4.4s,v5.4s,v6.4s,v7.4s},[x1],#64 + subs x2,x2,#8 + b.gt Lxts_8_blocks_process + b 100f +Lxts_4_blocks_process: + cmp x2,#4 + b.lt 1f + ld1 {v4.4s,v5.4s,v6.4s,v7.4s},[x0],#64 + eor v4.16b, v4.16b, v16.16b + eor v5.16b, v5.16b, v17.16b + eor v6.16b, v6.16b, v18.16b + eor v7.16b, v7.16b, v19.16b +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif +#ifndef __AARCH64EB__ + rev32 v5.16b,v5.16b +#endif +#ifndef __AARCH64EB__ + rev32 v6.16b,v6.16b +#endif +#ifndef __AARCH64EB__ + rev32 v7.16b,v7.16b +#endif + zip1 v0.4s,v4.4s,v5.4s + zip2 v1.4s,v4.4s,v5.4s + zip1 v2.4s,v6.4s,v7.4s + zip2 v3.4s,v6.4s,v7.4s + zip1 v4.2d,v0.2d,v2.2d + zip2 v5.2d,v0.2d,v2.2d + zip1 v6.2d,v1.2d,v3.2d + zip2 v7.2d,v1.2d,v3.2d + bl _vpsm4_ex_enc_4blks + zip1 v4.4s,v0.4s,v1.4s + zip2 v5.4s,v0.4s,v1.4s + zip1 v6.4s,v2.4s,v3.4s + zip2 v7.4s,v2.4s,v3.4s + zip1 v0.2d,v4.2d,v6.2d + zip2 v1.2d,v4.2d,v6.2d + zip1 v2.2d,v5.2d,v7.2d + zip2 v3.2d,v5.2d,v7.2d + eor v0.16b, v0.16b, v16.16b + eor v1.16b, v1.16b, v17.16b + eor v2.16b, v2.16b, v18.16b + eor v3.16b, v3.16b, v19.16b + st1 {v0.4s,v1.4s,v2.4s,v3.4s},[x1],#64 + sub x2,x2,#4 + mov v16.16b,v20.16b + mov v17.16b,v21.16b + mov v18.16b,v22.16b + // save the last tweak + mov v25.16b,v19.16b +1: + // process last block + cmp x2,#1 + b.lt 100f + b.gt 1f + ld1 {v4.4s},[x0],#16 + eor v4.16b, v4.16b, v16.16b +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif + mov x10,x3 + mov w11,#8 + mov w12,v4.s[0] + mov w13,v4.s[1] + mov w14,v4.s[2] + mov w15,v4.s[3] +10: + ldp w7,w8,[x10],8 + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + eor w6,w14,w15 + eor w9,w7,w13 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w12,w12,w6 + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + eor w6,w14,w15 + eor w9,w12,w8 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + ldp w7,w8,[x10],8 + eor w13,w13,w6 + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + eor w6,w12,w13 + eor w9,w7,w15 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w14,w14,w6 + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + eor w6,w12,w13 + eor w9,w14,w8 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w15,w15,w6 + subs w11,w11,#1 + b.ne 10b + mov v4.s[0],w15 + mov v4.s[1],w14 + mov v4.s[2],w13 + mov v4.s[3],w12 +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif + eor v4.16b, v4.16b, v16.16b + st1 {v4.4s},[x1],#16 + // save the last tweak + mov v25.16b,v16.16b + b 100f +1: // process last 2 blocks + cmp x2,#2 + b.gt 1f + ld1 {v4.4s,v5.4s},[x0],#32 + eor v4.16b, v4.16b, v16.16b + eor v5.16b, v5.16b, v17.16b +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif +#ifndef __AARCH64EB__ + rev32 v5.16b,v5.16b +#endif + zip1 v0.4s,v4.4s,v5.4s + zip2 v1.4s,v4.4s,v5.4s + zip1 v2.4s,v6.4s,v7.4s + zip2 v3.4s,v6.4s,v7.4s + zip1 v4.2d,v0.2d,v2.2d + zip2 v5.2d,v0.2d,v2.2d + zip1 v6.2d,v1.2d,v3.2d + zip2 v7.2d,v1.2d,v3.2d + bl _vpsm4_ex_enc_4blks + zip1 v4.4s,v0.4s,v1.4s + zip2 v5.4s,v0.4s,v1.4s + zip1 v6.4s,v2.4s,v3.4s + zip2 v7.4s,v2.4s,v3.4s + zip1 v0.2d,v4.2d,v6.2d + zip2 v1.2d,v4.2d,v6.2d + zip1 v2.2d,v5.2d,v7.2d + zip2 v3.2d,v5.2d,v7.2d + eor v0.16b, v0.16b, v16.16b + eor v1.16b, v1.16b, v17.16b + st1 {v0.4s,v1.4s},[x1],#32 + // save the last tweak + mov v25.16b,v17.16b + b 100f +1: // process last 3 blocks + ld1 {v4.4s,v5.4s,v6.4s},[x0],#48 + eor v4.16b, v4.16b, v16.16b + eor v5.16b, v5.16b, v17.16b + eor v6.16b, v6.16b, v18.16b +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif +#ifndef __AARCH64EB__ + rev32 v5.16b,v5.16b +#endif +#ifndef __AARCH64EB__ + rev32 v6.16b,v6.16b +#endif + zip1 v0.4s,v4.4s,v5.4s + zip2 v1.4s,v4.4s,v5.4s + zip1 v2.4s,v6.4s,v7.4s + zip2 v3.4s,v6.4s,v7.4s + zip1 v4.2d,v0.2d,v2.2d + zip2 v5.2d,v0.2d,v2.2d + zip1 v6.2d,v1.2d,v3.2d + zip2 v7.2d,v1.2d,v3.2d + bl _vpsm4_ex_enc_4blks + zip1 v4.4s,v0.4s,v1.4s + zip2 v5.4s,v0.4s,v1.4s + zip1 v6.4s,v2.4s,v3.4s + zip2 v7.4s,v2.4s,v3.4s + zip1 v0.2d,v4.2d,v6.2d + zip2 v1.2d,v4.2d,v6.2d + zip1 v2.2d,v5.2d,v7.2d + zip2 v3.2d,v5.2d,v7.2d + eor v0.16b, v0.16b, v16.16b + eor v1.16b, v1.16b, v17.16b + eor v2.16b, v2.16b, v18.16b + st1 {v0.4s,v1.4s,v2.4s},[x1],#48 + // save the last tweak + mov v25.16b,v18.16b +100: + cmp x29,0 + b.eq .return + +// This branch calculates the last two tweaks, +// while the encryption/decryption length is larger than 32 +.last_2blks_tweak: +#ifdef __AARCH64EB__ + rev32 v25.16b,v25.16b +#endif + mov v2.16b,v25.16b + adrp x9, Lxts_magic@PAGE + ldr q0, [x9, Lxts_magic@PAGEOFF] + shl v17.16b, v2.16b, #1 + ext v1.16b, v2.16b, v2.16b,#15 + ushr v1.16b, v1.16b, #7 + mul v1.16b, v1.16b, v0.16b + eor v17.16b, v17.16b, v1.16b + mov v2.16b,v17.16b + adrp x9, Lxts_magic@PAGE + ldr q0, [x9, Lxts_magic@PAGEOFF] + shl v18.16b, v2.16b, #1 + ext v1.16b, v2.16b, v2.16b,#15 + ushr v1.16b, v1.16b, #7 + mul v1.16b, v1.16b, v0.16b + eor v18.16b, v18.16b, v1.16b + b .check_dec + + +// This branch calculates the last two tweaks, +// while the encryption/decryption length is equal to 32, who only need two tweaks +.only_2blks_tweak: + mov v17.16b,v16.16b +#ifdef __AARCH64EB__ + rev32 v17.16b,v17.16b +#endif + mov v2.16b,v17.16b + adrp x9, Lxts_magic@PAGE + ldr q0, [x9, Lxts_magic@PAGEOFF] + shl v18.16b, v2.16b, #1 + ext v1.16b, v2.16b, v2.16b,#15 + ushr v1.16b, v1.16b, #7 + mul v1.16b, v1.16b, v0.16b + eor v18.16b, v18.16b, v1.16b + b .check_dec + + +// Determine whether encryption or decryption is required. +// The last two tweaks need to be swapped for decryption. +.check_dec: + // encryption:1 decryption:0 + cmp w28,1 + b.eq .process_last_2blks + mov v0.16B,v17.16b + mov v17.16B,v18.16b + mov v18.16B,v0.16b + +.process_last_2blks: +#ifdef __AARCH64EB__ + rev32 v17.16b,v17.16b +#endif +#ifdef __AARCH64EB__ + rev32 v18.16b,v18.16b +#endif + ld1 {v4.4s},[x0],#16 + eor v4.16b, v4.16b, v17.16b +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif + mov x10,x3 + mov w11,#8 + mov w12,v4.s[0] + mov w13,v4.s[1] + mov w14,v4.s[2] + mov w15,v4.s[3] +10: + ldp w7,w8,[x10],8 + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + eor w6,w14,w15 + eor w9,w7,w13 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w12,w12,w6 + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + eor w6,w14,w15 + eor w9,w12,w8 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + ldp w7,w8,[x10],8 + eor w13,w13,w6 + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + eor w6,w12,w13 + eor w9,w7,w15 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w14,w14,w6 + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + eor w6,w12,w13 + eor w9,w14,w8 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w15,w15,w6 + subs w11,w11,#1 + b.ne 10b + mov v4.s[0],w15 + mov v4.s[1],w14 + mov v4.s[2],w13 + mov v4.s[3],w12 +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif + eor v4.16b, v4.16b, v17.16b + st1 {v4.4s},[x1],#16 + + sub x26,x1,16 +.loop: + subs x29,x29,1 + ldrb w7,[x26,x29] + ldrb w8,[x0,x29] + strb w8,[x26,x29] + strb w7,[x1,x29] + b.gt .loop + ld1 {v4.4s}, [x26] + eor v4.16b, v4.16b, v18.16b +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif + mov x10,x3 + mov w11,#8 + mov w12,v4.s[0] + mov w13,v4.s[1] + mov w14,v4.s[2] + mov w15,v4.s[3] +10: + ldp w7,w8,[x10],8 + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + eor w6,w14,w15 + eor w9,w7,w13 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w12,w12,w6 + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + eor w6,w14,w15 + eor w9,w12,w8 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + ldp w7,w8,[x10],8 + eor w13,w13,w6 + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + eor w6,w12,w13 + eor w9,w7,w15 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w14,w14,w6 + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + eor w6,w12,w13 + eor w9,w14,w8 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w15,w15,w6 + subs w11,w11,#1 + b.ne 10b + mov v4.s[0],w15 + mov v4.s[1],w14 + mov v4.s[2],w13 + mov v4.s[3],w12 +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif + eor v4.16b, v4.16b, v18.16b + st1 {v4.4s}, [x26] +.return: + ldp d14, d15, [sp], #0x10 + ldp d12, d13, [sp], #0x10 + ldp d10, d11, [sp], #0x10 + ldp d8, d9, [sp], #0x10 + ldp x29, x30, [sp], #0x10 + ldp x27, x28, [sp], #0x10 + ldp x25, x26, [sp], #0x10 + ldp x23, x24, [sp], #0x10 + ldp x21, x22, [sp], #0x10 + ldp x19, x20, [sp], #0x10 + ldp x17, x18, [sp], #0x10 + ldp x15, x16, [sp], #0x10 + AARCH64_VALIDATE_LINK_REGISTER + ret + diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/asm/include/internal/param_names.h b/deps/openssl/config/archs/darwin64-arm64-cc/asm/include/internal/param_names.h new file mode 100644 index 00000000000000..0a0404a57e82b9 --- /dev/null +++ b/deps/openssl/config/archs/darwin64-arm64-cc/asm/include/internal/param_names.h @@ -0,0 +1,469 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from include/internal/param_names.h.in + * + * Copyright 2023 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + +int ossl_param_find_pidx(const char *s); + +/* Parameter name definitions - generated by util/perl/OpenSSL/paramnames.pm */ +#define NUM_PIDX 346 + +#define PIDX_ALG_PARAM_ALGORITHM_ID 0 +#define PIDX_ALG_PARAM_ALGORITHM_ID_PARAMS 1 +#define PIDX_ALG_PARAM_CIPHER 2 +#define PIDX_ALG_PARAM_DIGEST 3 +#define PIDX_ALG_PARAM_ENGINE 4 +#define PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR 5 +#define PIDX_ALG_PARAM_MAC 6 +#define PIDX_ALG_PARAM_PROPERTIES 7 +#define PIDX_ASYM_CIPHER_PARAM_DIGEST PIDX_PKEY_PARAM_DIGEST +#define PIDX_ASYM_CIPHER_PARAM_ENGINE PIDX_PKEY_PARAM_ENGINE +#define PIDX_ASYM_CIPHER_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_ASYM_CIPHER_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_ASYM_CIPHER_PARAM_FIPS_RSA_PKCS15_PAD_DISABLED PIDX_PROV_PARAM_RSA_PKCS15_PAD_DISABLED +#define PIDX_ASYM_CIPHER_PARAM_IMPLICIT_REJECTION 8 +#define PIDX_ASYM_CIPHER_PARAM_MGF1_DIGEST PIDX_PKEY_PARAM_MGF1_DIGEST +#define PIDX_ASYM_CIPHER_PARAM_MGF1_DIGEST_PROPS PIDX_PKEY_PARAM_MGF1_PROPERTIES +#define PIDX_ASYM_CIPHER_PARAM_OAEP_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_ASYM_CIPHER_PARAM_OAEP_DIGEST_PROPS 9 +#define PIDX_ASYM_CIPHER_PARAM_OAEP_LABEL 10 +#define PIDX_ASYM_CIPHER_PARAM_PAD_MODE PIDX_PKEY_PARAM_PAD_MODE +#define PIDX_ASYM_CIPHER_PARAM_PROPERTIES PIDX_PKEY_PARAM_PROPERTIES +#define PIDX_ASYM_CIPHER_PARAM_TLS_CLIENT_VERSION 11 +#define PIDX_ASYM_CIPHER_PARAM_TLS_NEGOTIATED_VERSION 12 +#define PIDX_CAPABILITY_TLS_GROUP_ALG 13 +#define PIDX_CAPABILITY_TLS_GROUP_ID 14 +#define PIDX_CAPABILITY_TLS_GROUP_IS_KEM 15 +#define PIDX_CAPABILITY_TLS_GROUP_MAX_DTLS 16 +#define PIDX_CAPABILITY_TLS_GROUP_MAX_TLS 17 +#define PIDX_CAPABILITY_TLS_GROUP_MIN_DTLS 18 +#define PIDX_CAPABILITY_TLS_GROUP_MIN_TLS 19 +#define PIDX_CAPABILITY_TLS_GROUP_NAME 20 +#define PIDX_CAPABILITY_TLS_GROUP_NAME_INTERNAL 21 +#define PIDX_CAPABILITY_TLS_GROUP_SECURITY_BITS 22 +#define PIDX_CAPABILITY_TLS_SIGALG_CODE_POINT 23 +#define PIDX_CAPABILITY_TLS_SIGALG_HASH_NAME 24 +#define PIDX_CAPABILITY_TLS_SIGALG_HASH_OID 25 +#define PIDX_CAPABILITY_TLS_SIGALG_IANA_NAME 26 +#define PIDX_CAPABILITY_TLS_SIGALG_KEYTYPE 27 +#define PIDX_CAPABILITY_TLS_SIGALG_KEYTYPE_OID 28 +#define PIDX_CAPABILITY_TLS_SIGALG_MAX_DTLS 16 +#define PIDX_CAPABILITY_TLS_SIGALG_MAX_TLS 17 +#define PIDX_CAPABILITY_TLS_SIGALG_MIN_DTLS 18 +#define PIDX_CAPABILITY_TLS_SIGALG_MIN_TLS 19 +#define PIDX_CAPABILITY_TLS_SIGALG_NAME 29 +#define PIDX_CAPABILITY_TLS_SIGALG_OID 30 +#define PIDX_CAPABILITY_TLS_SIGALG_SECURITY_BITS 31 +#define PIDX_CAPABILITY_TLS_SIGALG_SIG_NAME 32 +#define PIDX_CAPABILITY_TLS_SIGALG_SIG_OID 33 +#define PIDX_CIPHER_PARAM_AEAD 34 +#define PIDX_CIPHER_PARAM_AEAD_IVLEN PIDX_CIPHER_PARAM_IVLEN +#define PIDX_CIPHER_PARAM_AEAD_IV_GENERATED 35 +#define PIDX_CIPHER_PARAM_AEAD_MAC_KEY 36 +#define PIDX_CIPHER_PARAM_AEAD_TAG 37 +#define PIDX_CIPHER_PARAM_AEAD_TAGLEN 38 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_AAD 39 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_AAD_PAD 40 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_GET_IV_GEN 41 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_IV_FIXED 42 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_SET_IV_INV 43 +#define PIDX_CIPHER_PARAM_ALGORITHM_ID PIDX_ALG_PARAM_ALGORITHM_ID +#define PIDX_CIPHER_PARAM_ALGORITHM_ID_PARAMS PIDX_ALG_PARAM_ALGORITHM_ID_PARAMS +#define PIDX_CIPHER_PARAM_ALGORITHM_ID_PARAMS_OLD 44 +#define PIDX_CIPHER_PARAM_BLOCK_SIZE 45 +#define PIDX_CIPHER_PARAM_CTS 46 +#define PIDX_CIPHER_PARAM_CTS_MODE 47 +#define PIDX_CIPHER_PARAM_CUSTOM_IV 48 +#define PIDX_CIPHER_PARAM_DECRYPT_ONLY 49 +#define PIDX_CIPHER_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_CIPHER_PARAM_FIPS_ENCRYPT_CHECK 50 +#define PIDX_CIPHER_PARAM_HAS_RAND_KEY 51 +#define PIDX_CIPHER_PARAM_IV 52 +#define PIDX_CIPHER_PARAM_IVLEN 53 +#define PIDX_CIPHER_PARAM_KEYLEN 54 +#define PIDX_CIPHER_PARAM_MODE 55 +#define PIDX_CIPHER_PARAM_NUM 56 +#define PIDX_CIPHER_PARAM_PADDING 57 +#define PIDX_CIPHER_PARAM_PIPELINE_AEAD_TAG 58 +#define PIDX_CIPHER_PARAM_RANDOM_KEY 59 +#define PIDX_CIPHER_PARAM_RC2_KEYBITS 60 +#define PIDX_CIPHER_PARAM_ROUNDS 61 +#define PIDX_CIPHER_PARAM_SPEED 62 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK 63 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD 64 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD_PACKLEN 65 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC 66 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_IN 67 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_LEN 68 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_INTERLEAVE 69 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_BUFSIZE 70 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_SEND_FRAGMENT 71 +#define PIDX_CIPHER_PARAM_TLS_MAC 72 +#define PIDX_CIPHER_PARAM_TLS_MAC_SIZE 73 +#define PIDX_CIPHER_PARAM_TLS_VERSION 74 +#define PIDX_CIPHER_PARAM_UPDATED_IV 75 +#define PIDX_CIPHER_PARAM_USE_BITS 76 +#define PIDX_CIPHER_PARAM_XTS_STANDARD 77 +#define PIDX_DECODER_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_DIGEST_PARAM_ALGID_ABSENT 78 +#define PIDX_DIGEST_PARAM_BLOCK_SIZE 45 +#define PIDX_DIGEST_PARAM_MICALG 79 +#define PIDX_DIGEST_PARAM_PAD_TYPE 80 +#define PIDX_DIGEST_PARAM_SIZE 81 +#define PIDX_DIGEST_PARAM_SSL3_MS 82 +#define PIDX_DIGEST_PARAM_XOF 83 +#define PIDX_DIGEST_PARAM_XOFLEN 84 +#define PIDX_DRBG_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_DRBG_PARAM_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_DRBG_PARAM_ENTROPY_REQUIRED 85 +#define PIDX_DRBG_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_DRBG_PARAM_FIPS_DIGEST_CHECK PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK +#define PIDX_DRBG_PARAM_MAC PIDX_ALG_PARAM_MAC +#define PIDX_DRBG_PARAM_MAX_ADINLEN 86 +#define PIDX_DRBG_PARAM_MAX_ENTROPYLEN 87 +#define PIDX_DRBG_PARAM_MAX_LENGTH 88 +#define PIDX_DRBG_PARAM_MAX_NONCELEN 89 +#define PIDX_DRBG_PARAM_MAX_PERSLEN 90 +#define PIDX_DRBG_PARAM_MIN_ENTROPYLEN 91 +#define PIDX_DRBG_PARAM_MIN_LENGTH 92 +#define PIDX_DRBG_PARAM_MIN_NONCELEN 93 +#define PIDX_DRBG_PARAM_PREDICTION_RESISTANCE 94 +#define PIDX_DRBG_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_DRBG_PARAM_RANDOM_DATA 95 +#define PIDX_DRBG_PARAM_RESEED_COUNTER 96 +#define PIDX_DRBG_PARAM_RESEED_REQUESTS 97 +#define PIDX_DRBG_PARAM_RESEED_TIME 98 +#define PIDX_DRBG_PARAM_RESEED_TIME_INTERVAL 99 +#define PIDX_DRBG_PARAM_SIZE 81 +#define PIDX_DRBG_PARAM_USE_DF 100 +#define PIDX_ENCODER_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_ENCODER_PARAM_ENCRYPT_LEVEL 101 +#define PIDX_ENCODER_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_ENCODER_PARAM_SAVE_PARAMETERS 102 +#define PIDX_EXCHANGE_PARAM_EC_ECDH_COFACTOR_MODE 103 +#define PIDX_EXCHANGE_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_EXCHANGE_PARAM_FIPS_DIGEST_CHECK PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK +#define PIDX_EXCHANGE_PARAM_FIPS_ECDH_COFACTOR_CHECK PIDX_PROV_PARAM_ECDH_COFACTOR_CHECK +#define PIDX_EXCHANGE_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_EXCHANGE_PARAM_KDF_DIGEST 104 +#define PIDX_EXCHANGE_PARAM_KDF_DIGEST_PROPS 105 +#define PIDX_EXCHANGE_PARAM_KDF_OUTLEN 106 +#define PIDX_EXCHANGE_PARAM_KDF_TYPE 107 +#define PIDX_EXCHANGE_PARAM_KDF_UKM 108 +#define PIDX_EXCHANGE_PARAM_PAD 109 +#define PIDX_GEN_PARAM_ITERATION 110 +#define PIDX_GEN_PARAM_POTENTIAL 111 +#define PIDX_KDF_PARAM_ARGON2_AD 112 +#define PIDX_KDF_PARAM_ARGON2_LANES 113 +#define PIDX_KDF_PARAM_ARGON2_MEMCOST 114 +#define PIDX_KDF_PARAM_ARGON2_VERSION 115 +#define PIDX_KDF_PARAM_CEK_ALG 116 +#define PIDX_KDF_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_KDF_PARAM_CONSTANT 117 +#define PIDX_KDF_PARAM_DATA 118 +#define PIDX_KDF_PARAM_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_KDF_PARAM_EARLY_CLEAN 119 +#define PIDX_KDF_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_KDF_PARAM_FIPS_DIGEST_CHECK PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK +#define PIDX_KDF_PARAM_FIPS_EMS_CHECK 120 +#define PIDX_KDF_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_KDF_PARAM_HMACDRBG_ENTROPY 121 +#define PIDX_KDF_PARAM_HMACDRBG_NONCE 122 +#define PIDX_KDF_PARAM_INFO 123 +#define PIDX_KDF_PARAM_ITER 124 +#define PIDX_KDF_PARAM_KBKDF_R 125 +#define PIDX_KDF_PARAM_KBKDF_USE_L 126 +#define PIDX_KDF_PARAM_KBKDF_USE_SEPARATOR 127 +#define PIDX_KDF_PARAM_KEY 128 +#define PIDX_KDF_PARAM_LABEL 129 +#define PIDX_KDF_PARAM_MAC PIDX_ALG_PARAM_MAC +#define PIDX_KDF_PARAM_MAC_SIZE 130 +#define PIDX_KDF_PARAM_MODE 55 +#define PIDX_KDF_PARAM_PASSWORD 131 +#define PIDX_KDF_PARAM_PKCS12_ID 132 +#define PIDX_KDF_PARAM_PKCS5 133 +#define PIDX_KDF_PARAM_PREFIX 134 +#define PIDX_KDF_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_KDF_PARAM_SALT 135 +#define PIDX_KDF_PARAM_SCRYPT_MAXMEM 136 +#define PIDX_KDF_PARAM_SCRYPT_N 137 +#define PIDX_KDF_PARAM_SCRYPT_P 138 +#define PIDX_KDF_PARAM_SCRYPT_R 125 +#define PIDX_KDF_PARAM_SECRET 139 +#define PIDX_KDF_PARAM_SEED 140 +#define PIDX_KDF_PARAM_SIZE 81 +#define PIDX_KDF_PARAM_SSHKDF_SESSION_ID 141 +#define PIDX_KDF_PARAM_SSHKDF_TYPE 142 +#define PIDX_KDF_PARAM_SSHKDF_XCGHASH 143 +#define PIDX_KDF_PARAM_THREADS 144 +#define PIDX_KDF_PARAM_UKM 145 +#define PIDX_KDF_PARAM_X942_ACVPINFO 146 +#define PIDX_KDF_PARAM_X942_PARTYUINFO 147 +#define PIDX_KDF_PARAM_X942_PARTYVINFO 148 +#define PIDX_KDF_PARAM_X942_SUPP_PRIVINFO 149 +#define PIDX_KDF_PARAM_X942_SUPP_PUBINFO 150 +#define PIDX_KDF_PARAM_X942_USE_KEYBITS 151 +#define PIDX_KEM_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_KEM_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_KEM_PARAM_IKME 152 +#define PIDX_KEM_PARAM_OPERATION 153 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_BLOCK_PADDING 154 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_HS_PADDING 155 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_MAX_EARLY_DATA 156 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_MAX_FRAG_LEN 157 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_MODE 55 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_OPTIONS 158 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_READ_AHEAD 159 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_STREAM_MAC 160 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_TLSTREE 161 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_USE_ETM 162 +#define PIDX_LIBSSL_RECORD_LAYER_READ_BUFFER_LEN 163 +#define PIDX_MAC_PARAM_BLOCK_SIZE 164 +#define PIDX_MAC_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_MAC_PARAM_CUSTOM 165 +#define PIDX_MAC_PARAM_C_ROUNDS 166 +#define PIDX_MAC_PARAM_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_MAC_PARAM_DIGEST_NOINIT 167 +#define PIDX_MAC_PARAM_DIGEST_ONESHOT 168 +#define PIDX_MAC_PARAM_D_ROUNDS 169 +#define PIDX_MAC_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_MAC_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_MAC_PARAM_FIPS_NO_SHORT_MAC PIDX_PROV_PARAM_NO_SHORT_MAC +#define PIDX_MAC_PARAM_IV 52 +#define PIDX_MAC_PARAM_KEY 128 +#define PIDX_MAC_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_MAC_PARAM_SALT 135 +#define PIDX_MAC_PARAM_SIZE 81 +#define PIDX_MAC_PARAM_TLS_DATA_SIZE 170 +#define PIDX_MAC_PARAM_XOF 83 +#define PIDX_OBJECT_PARAM_DATA 118 +#define PIDX_OBJECT_PARAM_DATA_STRUCTURE 171 +#define PIDX_OBJECT_PARAM_DATA_TYPE 172 +#define PIDX_OBJECT_PARAM_DESC 173 +#define PIDX_OBJECT_PARAM_INPUT_TYPE 174 +#define PIDX_OBJECT_PARAM_REFERENCE 175 +#define PIDX_OBJECT_PARAM_TYPE 142 +#define PIDX_PASSPHRASE_PARAM_INFO 123 +#define PIDX_PKEY_PARAM_ALGORITHM_ID PIDX_ALG_PARAM_ALGORITHM_ID +#define PIDX_PKEY_PARAM_ALGORITHM_ID_PARAMS PIDX_ALG_PARAM_ALGORITHM_ID_PARAMS +#define PIDX_PKEY_PARAM_BITS 176 +#define PIDX_PKEY_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_PKEY_PARAM_DEFAULT_DIGEST 177 +#define PIDX_PKEY_PARAM_DHKEM_IKM 178 +#define PIDX_PKEY_PARAM_DH_GENERATOR 179 +#define PIDX_PKEY_PARAM_DH_PRIV_LEN 180 +#define PIDX_PKEY_PARAM_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_PKEY_PARAM_DIGEST_SIZE 181 +#define PIDX_PKEY_PARAM_DIST_ID 182 +#define PIDX_PKEY_PARAM_EC_A 183 +#define PIDX_PKEY_PARAM_EC_B 184 +#define PIDX_PKEY_PARAM_EC_CHAR2_M 185 +#define PIDX_PKEY_PARAM_EC_CHAR2_PP_K1 186 +#define PIDX_PKEY_PARAM_EC_CHAR2_PP_K2 187 +#define PIDX_PKEY_PARAM_EC_CHAR2_PP_K3 188 +#define PIDX_PKEY_PARAM_EC_CHAR2_TP_BASIS 189 +#define PIDX_PKEY_PARAM_EC_CHAR2_TYPE 190 +#define PIDX_PKEY_PARAM_EC_COFACTOR 191 +#define PIDX_PKEY_PARAM_EC_DECODED_FROM_EXPLICIT_PARAMS 192 +#define PIDX_PKEY_PARAM_EC_ENCODING 193 +#define PIDX_PKEY_PARAM_EC_FIELD_TYPE 194 +#define PIDX_PKEY_PARAM_EC_GENERATOR 195 +#define PIDX_PKEY_PARAM_EC_GROUP_CHECK_TYPE 196 +#define PIDX_PKEY_PARAM_EC_INCLUDE_PUBLIC 197 +#define PIDX_PKEY_PARAM_EC_ORDER 198 +#define PIDX_PKEY_PARAM_EC_P 138 +#define PIDX_PKEY_PARAM_EC_POINT_CONVERSION_FORMAT 199 +#define PIDX_PKEY_PARAM_EC_PUB_X 200 +#define PIDX_PKEY_PARAM_EC_PUB_Y 201 +#define PIDX_PKEY_PARAM_EC_SEED 140 +#define PIDX_PKEY_PARAM_ENCODED_PUBLIC_KEY 202 +#define PIDX_PKEY_PARAM_ENGINE PIDX_ALG_PARAM_ENGINE +#define PIDX_PKEY_PARAM_FFC_COFACTOR 203 +#define PIDX_PKEY_PARAM_FFC_DIGEST PIDX_PKEY_PARAM_DIGEST +#define PIDX_PKEY_PARAM_FFC_DIGEST_PROPS PIDX_PKEY_PARAM_PROPERTIES +#define PIDX_PKEY_PARAM_FFC_G 204 +#define PIDX_PKEY_PARAM_FFC_GINDEX 205 +#define PIDX_PKEY_PARAM_FFC_H 206 +#define PIDX_PKEY_PARAM_FFC_P 138 +#define PIDX_PKEY_PARAM_FFC_PBITS 207 +#define PIDX_PKEY_PARAM_FFC_PCOUNTER 208 +#define PIDX_PKEY_PARAM_FFC_Q 209 +#define PIDX_PKEY_PARAM_FFC_QBITS 210 +#define PIDX_PKEY_PARAM_FFC_SEED 140 +#define PIDX_PKEY_PARAM_FFC_TYPE 142 +#define PIDX_PKEY_PARAM_FFC_VALIDATE_G 211 +#define PIDX_PKEY_PARAM_FFC_VALIDATE_LEGACY 212 +#define PIDX_PKEY_PARAM_FFC_VALIDATE_PQ 213 +#define PIDX_PKEY_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK 214 +#define PIDX_PKEY_PARAM_FIPS_KEY_CHECK 215 +#define PIDX_PKEY_PARAM_FIPS_SIGN_CHECK 216 +#define PIDX_PKEY_PARAM_GROUP_NAME 217 +#define PIDX_PKEY_PARAM_IMPLICIT_REJECTION 8 +#define PIDX_PKEY_PARAM_MANDATORY_DIGEST 218 +#define PIDX_PKEY_PARAM_MASKGENFUNC 219 +#define PIDX_PKEY_PARAM_MAX_SIZE 220 +#define PIDX_PKEY_PARAM_MGF1_DIGEST 221 +#define PIDX_PKEY_PARAM_MGF1_PROPERTIES 222 +#define PIDX_PKEY_PARAM_ML_DSA_INPUT_FORMATS 223 +#define PIDX_PKEY_PARAM_ML_DSA_OUTPUT_FORMATS 224 +#define PIDX_PKEY_PARAM_ML_DSA_PREFER_SEED 225 +#define PIDX_PKEY_PARAM_ML_DSA_RETAIN_SEED 226 +#define PIDX_PKEY_PARAM_ML_DSA_SEED 140 +#define PIDX_PKEY_PARAM_ML_KEM_IMPORT_PCT_TYPE 227 +#define PIDX_PKEY_PARAM_ML_KEM_INPUT_FORMATS 228 +#define PIDX_PKEY_PARAM_ML_KEM_OUTPUT_FORMATS 229 +#define PIDX_PKEY_PARAM_ML_KEM_PREFER_SEED 230 +#define PIDX_PKEY_PARAM_ML_KEM_RETAIN_SEED 231 +#define PIDX_PKEY_PARAM_ML_KEM_SEED 140 +#define PIDX_PKEY_PARAM_PAD_MODE 232 +#define PIDX_PKEY_PARAM_PRIV_KEY 233 +#define PIDX_PKEY_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_PKEY_PARAM_PUB_KEY 234 +#define PIDX_PKEY_PARAM_RSA_BITS PIDX_PKEY_PARAM_BITS +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT 235 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT1 236 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT2 237 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT3 238 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT4 239 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT5 240 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT6 241 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT7 242 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT8 243 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT9 244 +#define PIDX_PKEY_PARAM_RSA_D 245 +#define PIDX_PKEY_PARAM_RSA_DERIVE_FROM_PQ 246 +#define PIDX_PKEY_PARAM_RSA_DIGEST PIDX_PKEY_PARAM_DIGEST +#define PIDX_PKEY_PARAM_RSA_DIGEST_PROPS PIDX_PKEY_PARAM_PROPERTIES +#define PIDX_PKEY_PARAM_RSA_E 247 +#define PIDX_PKEY_PARAM_RSA_EXPONENT 248 +#define PIDX_PKEY_PARAM_RSA_EXPONENT1 249 +#define PIDX_PKEY_PARAM_RSA_EXPONENT10 250 +#define PIDX_PKEY_PARAM_RSA_EXPONENT2 251 +#define PIDX_PKEY_PARAM_RSA_EXPONENT3 252 +#define PIDX_PKEY_PARAM_RSA_EXPONENT4 253 +#define PIDX_PKEY_PARAM_RSA_EXPONENT5 254 +#define PIDX_PKEY_PARAM_RSA_EXPONENT6 255 +#define PIDX_PKEY_PARAM_RSA_EXPONENT7 256 +#define PIDX_PKEY_PARAM_RSA_EXPONENT8 257 +#define PIDX_PKEY_PARAM_RSA_EXPONENT9 258 +#define PIDX_PKEY_PARAM_RSA_FACTOR 259 +#define PIDX_PKEY_PARAM_RSA_FACTOR1 260 +#define PIDX_PKEY_PARAM_RSA_FACTOR10 261 +#define PIDX_PKEY_PARAM_RSA_FACTOR2 262 +#define PIDX_PKEY_PARAM_RSA_FACTOR3 263 +#define PIDX_PKEY_PARAM_RSA_FACTOR4 264 +#define PIDX_PKEY_PARAM_RSA_FACTOR5 265 +#define PIDX_PKEY_PARAM_RSA_FACTOR6 266 +#define PIDX_PKEY_PARAM_RSA_FACTOR7 267 +#define PIDX_PKEY_PARAM_RSA_FACTOR8 268 +#define PIDX_PKEY_PARAM_RSA_FACTOR9 269 +#define PIDX_PKEY_PARAM_RSA_MASKGENFUNC PIDX_PKEY_PARAM_MASKGENFUNC +#define PIDX_PKEY_PARAM_RSA_MGF1_DIGEST PIDX_PKEY_PARAM_MGF1_DIGEST +#define PIDX_PKEY_PARAM_RSA_N 137 +#define PIDX_PKEY_PARAM_RSA_PRIMES 270 +#define PIDX_PKEY_PARAM_RSA_PSS_SALTLEN 271 +#define PIDX_PKEY_PARAM_RSA_TEST_P1 272 +#define PIDX_PKEY_PARAM_RSA_TEST_P2 273 +#define PIDX_PKEY_PARAM_RSA_TEST_Q1 274 +#define PIDX_PKEY_PARAM_RSA_TEST_Q2 275 +#define PIDX_PKEY_PARAM_RSA_TEST_XP 276 +#define PIDX_PKEY_PARAM_RSA_TEST_XP1 277 +#define PIDX_PKEY_PARAM_RSA_TEST_XP2 278 +#define PIDX_PKEY_PARAM_RSA_TEST_XQ 279 +#define PIDX_PKEY_PARAM_RSA_TEST_XQ1 280 +#define PIDX_PKEY_PARAM_RSA_TEST_XQ2 281 +#define PIDX_PKEY_PARAM_SECURITY_BITS 282 +#define PIDX_PKEY_PARAM_SLH_DSA_SEED 140 +#define PIDX_PKEY_PARAM_USE_COFACTOR_ECDH PIDX_PKEY_PARAM_USE_COFACTOR_FLAG +#define PIDX_PKEY_PARAM_USE_COFACTOR_FLAG 283 +#define PIDX_PROV_PARAM_BUILDINFO 284 +#define PIDX_PROV_PARAM_CORE_MODULE_FILENAME 285 +#define PIDX_PROV_PARAM_CORE_PROV_NAME 286 +#define PIDX_PROV_PARAM_CORE_VERSION 287 +#define PIDX_PROV_PARAM_DRBG_TRUNC_DIGEST 288 +#define PIDX_PROV_PARAM_DSA_SIGN_DISABLED 289 +#define PIDX_PROV_PARAM_ECDH_COFACTOR_CHECK 290 +#define PIDX_PROV_PARAM_HKDF_DIGEST_CHECK 291 +#define PIDX_PROV_PARAM_HKDF_KEY_CHECK 292 +#define PIDX_PROV_PARAM_HMAC_KEY_CHECK 293 +#define PIDX_PROV_PARAM_KBKDF_KEY_CHECK 294 +#define PIDX_PROV_PARAM_KMAC_KEY_CHECK 295 +#define PIDX_PROV_PARAM_NAME 296 +#define PIDX_PROV_PARAM_NO_SHORT_MAC 297 +#define PIDX_PROV_PARAM_PBKDF2_LOWER_BOUND_CHECK 298 +#define PIDX_PROV_PARAM_RSA_PKCS15_PAD_DISABLED 299 +#define PIDX_PROV_PARAM_RSA_PSS_SALTLEN_CHECK 300 +#define PIDX_PROV_PARAM_RSA_SIGN_X931_PAD_DISABLED 301 +#define PIDX_PROV_PARAM_SECURITY_CHECKS 302 +#define PIDX_PROV_PARAM_SELF_TEST_DESC 303 +#define PIDX_PROV_PARAM_SELF_TEST_PHASE 304 +#define PIDX_PROV_PARAM_SELF_TEST_TYPE 305 +#define PIDX_PROV_PARAM_SIGNATURE_DIGEST_CHECK 306 +#define PIDX_PROV_PARAM_SSHKDF_DIGEST_CHECK 307 +#define PIDX_PROV_PARAM_SSHKDF_KEY_CHECK 308 +#define PIDX_PROV_PARAM_SSKDF_DIGEST_CHECK 309 +#define PIDX_PROV_PARAM_SSKDF_KEY_CHECK 310 +#define PIDX_PROV_PARAM_STATUS 311 +#define PIDX_PROV_PARAM_TDES_ENCRYPT_DISABLED 312 +#define PIDX_PROV_PARAM_TLS13_KDF_DIGEST_CHECK 313 +#define PIDX_PROV_PARAM_TLS13_KDF_KEY_CHECK 314 +#define PIDX_PROV_PARAM_TLS1_PRF_DIGEST_CHECK 315 +#define PIDX_PROV_PARAM_TLS1_PRF_EMS_CHECK 316 +#define PIDX_PROV_PARAM_TLS1_PRF_KEY_CHECK 317 +#define PIDX_PROV_PARAM_VERSION 115 +#define PIDX_PROV_PARAM_X942KDF_KEY_CHECK 318 +#define PIDX_PROV_PARAM_X963KDF_DIGEST_CHECK 319 +#define PIDX_PROV_PARAM_X963KDF_KEY_CHECK 320 +#define PIDX_RAND_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_RAND_PARAM_GENERATE 321 +#define PIDX_RAND_PARAM_MAX_REQUEST 322 +#define PIDX_RAND_PARAM_STATE 323 +#define PIDX_RAND_PARAM_STRENGTH 324 +#define PIDX_RAND_PARAM_TEST_ENTROPY 325 +#define PIDX_RAND_PARAM_TEST_NONCE 326 +#define PIDX_SIGNATURE_PARAM_ADD_RANDOM 327 +#define PIDX_SIGNATURE_PARAM_ALGORITHM_ID PIDX_PKEY_PARAM_ALGORITHM_ID +#define PIDX_SIGNATURE_PARAM_ALGORITHM_ID_PARAMS PIDX_PKEY_PARAM_ALGORITHM_ID_PARAMS +#define PIDX_SIGNATURE_PARAM_CONTEXT_STRING 328 +#define PIDX_SIGNATURE_PARAM_DETERMINISTIC 329 +#define PIDX_SIGNATURE_PARAM_DIGEST PIDX_PKEY_PARAM_DIGEST +#define PIDX_SIGNATURE_PARAM_DIGEST_SIZE PIDX_PKEY_PARAM_DIGEST_SIZE +#define PIDX_SIGNATURE_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_SIGNATURE_PARAM_FIPS_DIGEST_CHECK PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK +#define PIDX_SIGNATURE_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_SIGNATURE_PARAM_FIPS_RSA_PSS_SALTLEN_CHECK 300 +#define PIDX_SIGNATURE_PARAM_FIPS_SIGN_CHECK PIDX_PKEY_PARAM_FIPS_SIGN_CHECK +#define PIDX_SIGNATURE_PARAM_FIPS_SIGN_X931_PAD_CHECK 330 +#define PIDX_SIGNATURE_PARAM_FIPS_VERIFY_MESSAGE 331 +#define PIDX_SIGNATURE_PARAM_INSTANCE 332 +#define PIDX_SIGNATURE_PARAM_KAT 333 +#define PIDX_SIGNATURE_PARAM_MESSAGE_ENCODING 334 +#define PIDX_SIGNATURE_PARAM_MGF1_DIGEST PIDX_PKEY_PARAM_MGF1_DIGEST +#define PIDX_SIGNATURE_PARAM_MGF1_PROPERTIES PIDX_PKEY_PARAM_MGF1_PROPERTIES +#define PIDX_SIGNATURE_PARAM_MU 335 +#define PIDX_SIGNATURE_PARAM_NONCE_TYPE 336 +#define PIDX_SIGNATURE_PARAM_PAD_MODE PIDX_PKEY_PARAM_PAD_MODE +#define PIDX_SIGNATURE_PARAM_PROPERTIES PIDX_PKEY_PARAM_PROPERTIES +#define PIDX_SIGNATURE_PARAM_PSS_SALTLEN 271 +#define PIDX_SIGNATURE_PARAM_SIGNATURE 337 +#define PIDX_SIGNATURE_PARAM_TEST_ENTROPY 338 +#define PIDX_SKEY_PARAM_KEY_LENGTH 339 +#define PIDX_SKEY_PARAM_RAW_BYTES 340 +#define PIDX_STORE_PARAM_ALIAS 341 +#define PIDX_STORE_PARAM_DIGEST 3 +#define PIDX_STORE_PARAM_EXPECT 342 +#define PIDX_STORE_PARAM_FINGERPRINT 343 +#define PIDX_STORE_PARAM_INPUT_TYPE 174 +#define PIDX_STORE_PARAM_ISSUER 296 +#define PIDX_STORE_PARAM_PROPERTIES 7 +#define PIDX_STORE_PARAM_SERIAL 344 +#define PIDX_STORE_PARAM_SUBJECT 345 diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/asm/include/openssl/asn1.h b/deps/openssl/config/archs/darwin64-arm64-cc/asm/include/openssl/asn1.h index 21ff58e3d803d4..15e9e44674b0f3 100644 --- a/deps/openssl/config/archs/darwin64-arm64-cc/asm/include/openssl/asn1.h +++ b/deps/openssl/config/archs/darwin64-arm64-cc/asm/include/openssl/asn1.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/asn1.h.in * - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -21,6 +21,9 @@ # define HEADER_ASN1_H # endif +# ifndef OPENSSL_NO_STDIO +# include +# endif # include # include # include @@ -50,14 +53,14 @@ extern "C" { # define V_ASN1_PRIMITIVE_TAG 0x1f # define V_ASN1_PRIMATIVE_TAG /*compat*/ V_ASN1_PRIMITIVE_TAG -# define V_ASN1_APP_CHOOSE -2/* let the recipient choose */ -# define V_ASN1_OTHER -3/* used in ASN1_TYPE */ -# define V_ASN1_ANY -4/* used in ASN1 template code */ +# define V_ASN1_APP_CHOOSE -2 /* let the recipient choose */ +# define V_ASN1_OTHER -3 /* used in ASN1_TYPE */ +# define V_ASN1_ANY -4 /* used in ASN1 template code */ # define V_ASN1_UNDEF -1 /* ASN.1 tag values */ # define V_ASN1_EOC 0 -# define V_ASN1_BOOLEAN 1 /**/ +# define V_ASN1_BOOLEAN 1 # define V_ASN1_INTEGER 2 # define V_ASN1_BIT_STRING 3 # define V_ASN1_OCTET_STRING 4 @@ -70,19 +73,19 @@ extern "C" { # define V_ASN1_UTF8STRING 12 # define V_ASN1_SEQUENCE 16 # define V_ASN1_SET 17 -# define V_ASN1_NUMERICSTRING 18 /**/ +# define V_ASN1_NUMERICSTRING 18 # define V_ASN1_PRINTABLESTRING 19 # define V_ASN1_T61STRING 20 -# define V_ASN1_TELETEXSTRING 20/* alias */ -# define V_ASN1_VIDEOTEXSTRING 21 /**/ +# define V_ASN1_TELETEXSTRING 20 /* alias */ +# define V_ASN1_VIDEOTEXSTRING 21 # define V_ASN1_IA5STRING 22 # define V_ASN1_UTCTIME 23 -# define V_ASN1_GENERALIZEDTIME 24 /**/ -# define V_ASN1_GRAPHICSTRING 25 /**/ -# define V_ASN1_ISO64STRING 26 /**/ -# define V_ASN1_VISIBLESTRING 26/* alias */ -# define V_ASN1_GENERALSTRING 27 /**/ -# define V_ASN1_UNIVERSALSTRING 28 /**/ +# define V_ASN1_GENERALIZEDTIME 24 +# define V_ASN1_GRAPHICSTRING 25 +# define V_ASN1_ISO64STRING 26 +# define V_ASN1_VISIBLESTRING 26 /* alias */ +# define V_ASN1_GENERALSTRING 27 +# define V_ASN1_UNIVERSALSTRING 28 # define V_ASN1_BMPSTRING 30 /* @@ -155,7 +158,7 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_ALGOR, X509_ALGOR, X509_ALGOR) -# define ASN1_STRING_FLAG_BITS_LEFT 0x08/* Set if 0x07 has bits left value */ +# define ASN1_STRING_FLAG_BITS_LEFT 0x08 /* Set if 0x07 has bits left value */ /* * This indicates that the ASN1_STRING is not a real value but just a place * holder for the location where indefinite length constructed data should be @@ -275,7 +278,7 @@ typedef struct ASN1_TLC_st ASN1_TLC; /* This is just an opaque pointer */ typedef struct ASN1_VALUE_st ASN1_VALUE; -/* Declare ASN1 functions: the implement macro in in asn1t.h */ +/* Declare ASN1 functions: the implement macro is in asn1t.h */ /* * The mysterious 'extern' that's passed to some macros is innocuous, @@ -368,6 +371,7 @@ typedef struct ASN1_VALUE_st ASN1_VALUE; typedef void *d2i_of_void(void **, const unsigned char **, long); typedef int i2d_of_void(const void *, unsigned char **); +typedef int OSSL_i2d_of_void_ctx(const void *, unsigned char **, void *vctx); /*- * The following macros and typedefs allow an ASN1_ITEM @@ -996,6 +1000,8 @@ int ASN1_TYPE_get_int_octetstring(const ASN1_TYPE *a, long *num, unsigned char *data, int max_len); void *ASN1_item_unpack(const ASN1_STRING *oct, const ASN1_ITEM *it); +void *ASN1_item_unpack_ex(const ASN1_STRING *oct, const ASN1_ITEM *it, + OSSL_LIB_CTX *libctx, const char *propq); ASN1_STRING *ASN1_item_pack(void *obj, const ASN1_ITEM *it, ASN1_OCTET_STRING **oct); diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/asm/include/openssl/bio.h b/deps/openssl/config/archs/darwin64-arm64-cc/asm/include/openssl/bio.h index f9aa74731c833c..e02f867beb0ec0 100644 --- a/deps/openssl/config/archs/darwin64-arm64-cc/asm/include/openssl/bio.h +++ b/deps/openssl/config/archs/darwin64-arm64-cc/asm/include/openssl/bio.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/bio.h.in * - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -67,8 +67,13 @@ extern "C" { # define BIO_TYPE_DGRAM_SCTP (24|BIO_TYPE_SOURCE_SINK|BIO_TYPE_DESCRIPTOR) # endif # define BIO_TYPE_CORE_TO_PROV (25|BIO_TYPE_SOURCE_SINK) +# define BIO_TYPE_DGRAM_PAIR (26|BIO_TYPE_SOURCE_SINK) +# define BIO_TYPE_DGRAM_MEM (27|BIO_TYPE_SOURCE_SINK) +/* Custom type starting index returned by BIO_get_new_index() */ #define BIO_TYPE_START 128 +/* Custom type maximum index that can be returned by BIO_get_new_index() */ +#define BIO_TYPE_MASK 0xFF /* * BIO_FILENAME_READ|BIO_CLOSE to open or close on free. @@ -171,6 +176,31 @@ extern "C" { # define BIO_CTRL_SET_INDENT 80 # define BIO_CTRL_GET_INDENT 81 +# define BIO_CTRL_DGRAM_GET_LOCAL_ADDR_CAP 82 +# define BIO_CTRL_DGRAM_GET_LOCAL_ADDR_ENABLE 83 +# define BIO_CTRL_DGRAM_SET_LOCAL_ADDR_ENABLE 84 +# define BIO_CTRL_DGRAM_GET_EFFECTIVE_CAPS 85 +# define BIO_CTRL_DGRAM_GET_CAPS 86 +# define BIO_CTRL_DGRAM_SET_CAPS 87 +# define BIO_CTRL_DGRAM_GET_NO_TRUNC 88 +# define BIO_CTRL_DGRAM_SET_NO_TRUNC 89 + +/* + * internal BIO: + * # define BIO_CTRL_SET_KTLS_TX_ZEROCOPY_SENDFILE 90 + */ + +# define BIO_CTRL_GET_RPOLL_DESCRIPTOR 91 +# define BIO_CTRL_GET_WPOLL_DESCRIPTOR 92 +# define BIO_CTRL_DGRAM_DETECT_PEER_ADDR 93 +# define BIO_CTRL_DGRAM_SET0_LOCAL_ADDR 94 + +# define BIO_DGRAM_CAP_NONE 0U +# define BIO_DGRAM_CAP_HANDLES_SRC_ADDR (1U << 0) +# define BIO_DGRAM_CAP_HANDLES_DST_ADDR (1U << 1) +# define BIO_DGRAM_CAP_PROVIDES_SRC_ADDR (1U << 2) +# define BIO_DGRAM_CAP_PROVIDES_DST_ADDR (1U << 3) + # ifndef OPENSSL_NO_KTLS # define BIO_get_ktls_send(b) \ (BIO_ctrl(b, BIO_CTRL_GET_KTLS_SEND, 0, NULL) > 0) @@ -208,7 +238,7 @@ extern "C" { # define BIO_FLAGS_NONCLEAR_RST 0x400 # define BIO_FLAGS_IN_EOF 0x800 -/* the BIO FLAGS values 0x1000 to 0x4000 are reserved for internal KTLS flags */ +/* the BIO FLAGS values 0x1000 to 0x8000 are reserved for internal KTLS flags */ typedef union bio_addr_st BIO_ADDR; typedef struct bio_addrinfo_st BIO_ADDRINFO; @@ -256,12 +286,14 @@ void BIO_clear_flags(BIO *b, int flags); # define BIO_RR_ACCEPT 0x03 /* These are passed by the BIO callback */ -# define BIO_CB_FREE 0x01 -# define BIO_CB_READ 0x02 -# define BIO_CB_WRITE 0x03 -# define BIO_CB_PUTS 0x04 -# define BIO_CB_GETS 0x05 -# define BIO_CB_CTRL 0x06 +# define BIO_CB_FREE 0x01 +# define BIO_CB_READ 0x02 +# define BIO_CB_WRITE 0x03 +# define BIO_CB_PUTS 0x04 +# define BIO_CB_GETS 0x05 +# define BIO_CB_CTRL 0x06 +# define BIO_CB_RECVMMSG 0x07 +# define BIO_CB_SENDMMSG 0x08 /* * The callback is called before and after the underling operation, The @@ -362,6 +394,36 @@ struct bio_dgram_sctp_prinfo { }; # endif +/* BIO_sendmmsg/BIO_recvmmsg-related definitions */ +typedef struct bio_msg_st { + void *data; + size_t data_len; + BIO_ADDR *peer, *local; + uint64_t flags; +} BIO_MSG; + +typedef struct bio_mmsg_cb_args_st { + BIO_MSG *msg; + size_t stride, num_msg; + uint64_t flags; + size_t *msgs_processed; +} BIO_MMSG_CB_ARGS; + +#define BIO_POLL_DESCRIPTOR_TYPE_NONE 0 +#define BIO_POLL_DESCRIPTOR_TYPE_SOCK_FD 1 +#define BIO_POLL_DESCRIPTOR_TYPE_SSL 2 +#define BIO_POLL_DESCRIPTOR_CUSTOM_START 8192 + +typedef struct bio_poll_descriptor_st { + uint32_t type; + union { + int fd; + void *custom; + uintptr_t custom_ui; + SSL *ssl; + } value; +} BIO_POLL_DESCRIPTOR; + /* * #define BIO_CONN_get_param_hostname BIO_ctrl */ @@ -428,10 +490,17 @@ struct bio_dgram_sctp_prinfo { # define BIO_C_SET_CONNECT_MODE 155 +# define BIO_C_SET_TFO 156 /* like BIO_C_SET_NBIO */ + +# define BIO_C_SET_SOCK_TYPE 157 +# define BIO_C_GET_SOCK_TYPE 158 +# define BIO_C_GET_DGRAM_BIO 159 + # define BIO_set_app_data(s,arg) BIO_set_ex_data(s,0,arg) # define BIO_get_app_data(s) BIO_get_ex_data(s,0) -# define BIO_set_nbio(b,n) BIO_ctrl(b,BIO_C_SET_NBIO,(n),NULL) +# define BIO_set_nbio(b,n) BIO_ctrl(b,BIO_C_SET_NBIO,(n),NULL) +# define BIO_set_tfo(b,n) BIO_ctrl(b,BIO_C_SET_TFO,(n),NULL) # ifndef OPENSSL_NO_SOCK /* IP families we support, for BIO_s_connect() and BIO_s_accept() */ @@ -452,7 +521,11 @@ struct bio_dgram_sctp_prinfo { # define BIO_get_conn_port(b) ((const char *)BIO_ptr_ctrl(b,BIO_C_GET_CONNECT,1)) # define BIO_get_conn_address(b) ((const BIO_ADDR *)BIO_ptr_ctrl(b,BIO_C_GET_CONNECT,2)) # define BIO_get_conn_ip_family(b) BIO_ctrl(b,BIO_C_GET_CONNECT,3,NULL) +# define BIO_get_conn_mode(b) BIO_ctrl(b,BIO_C_GET_CONNECT,4,NULL) # define BIO_set_conn_mode(b,n) BIO_ctrl(b,BIO_C_SET_CONNECT_MODE,(n),NULL) +# define BIO_set_sock_type(b,t) BIO_ctrl(b,BIO_C_SET_SOCK_TYPE,(t),NULL) +# define BIO_get_sock_type(b) BIO_ctrl(b,BIO_C_GET_SOCK_TYPE,0,NULL) +# define BIO_get0_dgram_bio(b, p) BIO_ctrl(b,BIO_C_GET_DGRAM_BIO,0,(void *)(BIO **)(p)) /* BIO_s_accept() */ # define BIO_set_accept_name(b,name) BIO_ctrl(b,BIO_C_SET_ACCEPT,0, \ @@ -469,6 +542,7 @@ struct bio_dgram_sctp_prinfo { (char *)(bio)) # define BIO_set_accept_ip_family(b,f) BIO_int_ctrl(b,BIO_C_SET_ACCEPT,4,f) # define BIO_get_accept_ip_family(b) BIO_ctrl(b,BIO_C_GET_ACCEPT,4,NULL) +# define BIO_set_tfo_accept(b,n) BIO_ctrl(b,BIO_C_SET_ACCEPT,5,(n)?(void *)"a":NULL) /* Aliases kept for backward compatibility */ # define BIO_BIND_NORMAL 0 @@ -596,8 +670,32 @@ int BIO_ctrl_reset_read_request(BIO *b); (int)BIO_ctrl(b, BIO_CTRL_DGRAM_GET_PEER, 0, (char *)(peer)) # define BIO_dgram_set_peer(b,peer) \ (int)BIO_ctrl(b, BIO_CTRL_DGRAM_SET_PEER, 0, (char *)(peer)) +# define BIO_dgram_detect_peer_addr(b,peer) \ + (int)BIO_ctrl(b, BIO_CTRL_DGRAM_DETECT_PEER_ADDR, 0, (char *)(peer)) # define BIO_dgram_get_mtu_overhead(b) \ (unsigned int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_MTU_OVERHEAD, 0, NULL) +# define BIO_dgram_get_local_addr_cap(b) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_LOCAL_ADDR_CAP, 0, NULL) +# define BIO_dgram_get_local_addr_enable(b, penable) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_LOCAL_ADDR_ENABLE, 0, (char *)(penable)) +# define BIO_dgram_set_local_addr_enable(b, enable) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET_LOCAL_ADDR_ENABLE, (enable), NULL) +# define BIO_dgram_get_effective_caps(b) \ + (uint32_t)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_EFFECTIVE_CAPS, 0, NULL) +# define BIO_dgram_get_caps(b) \ + (uint32_t)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_CAPS, 0, NULL) +# define BIO_dgram_set_caps(b, caps) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET_CAPS, (long)(caps), NULL) +# define BIO_dgram_get_no_trunc(b) \ + (unsigned int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_NO_TRUNC, 0, NULL) +# define BIO_dgram_set_no_trunc(b, enable) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET_NO_TRUNC, (enable), NULL) +# define BIO_dgram_get_mtu(b) \ + (unsigned int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_MTU, 0, NULL) +# define BIO_dgram_set_mtu(b, mtu) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET_MTU, (mtu), NULL) +# define BIO_dgram_set0_local_addr(b, addr) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET0_LOCAL_ADDR, 0, (addr)) /* ctrl macros for BIO_f_prefix */ # define BIO_set_prefix(b,p) BIO_ctrl((b), BIO_CTRL_SET_PREFIX, 0, (void *)(p)) @@ -640,10 +738,18 @@ void BIO_vfree(BIO *a); int BIO_up_ref(BIO *a); int BIO_read(BIO *b, void *data, int dlen); int BIO_read_ex(BIO *b, void *data, size_t dlen, size_t *readbytes); +__owur int BIO_recvmmsg(BIO *b, BIO_MSG *msg, + size_t stride, size_t num_msg, uint64_t flags, + size_t *msgs_processed); int BIO_gets(BIO *bp, char *buf, int size); int BIO_get_line(BIO *bio, char *buf, int size); int BIO_write(BIO *b, const void *data, int dlen); int BIO_write_ex(BIO *b, const void *data, size_t dlen, size_t *written); +__owur int BIO_sendmmsg(BIO *b, BIO_MSG *msg, + size_t stride, size_t num_msg, uint64_t flags, + size_t *msgs_processed); +__owur int BIO_get_rpoll_descriptor(BIO *b, BIO_POLL_DESCRIPTOR *desc); +__owur int BIO_get_wpoll_descriptor(BIO *b, BIO_POLL_DESCRIPTOR *desc); int BIO_puts(BIO *bp, const char *buf); int BIO_indent(BIO *b, int indent, int max); long BIO_ctrl(BIO *bp, int cmd, long larg, void *parg); @@ -667,6 +773,9 @@ int BIO_nwrite0(BIO *bio, char **buf); int BIO_nwrite(BIO *bio, char **buf, int num); const BIO_METHOD *BIO_s_mem(void); +# ifndef OPENSSL_NO_DGRAM +const BIO_METHOD *BIO_s_dgram_mem(void); +# endif const BIO_METHOD *BIO_s_secmem(void); BIO *BIO_new_mem_buf(const void *buf, int len); # ifndef OPENSSL_NO_SOCK @@ -686,6 +795,7 @@ const BIO_METHOD *BIO_f_nbio_test(void); const BIO_METHOD *BIO_f_prefix(void); const BIO_METHOD *BIO_s_core(void); # ifndef OPENSSL_NO_DGRAM +const BIO_METHOD *BIO_s_dgram_pair(void); const BIO_METHOD *BIO_s_datagram(void); int BIO_dgram_non_fatal_error(int error); BIO *BIO_new_dgram(int fd, int close_flag); @@ -704,6 +814,7 @@ int BIO_dgram_sctp_msg_waiting(BIO *b); # ifndef OPENSSL_NO_SOCK int BIO_sock_should_retry(int i); int BIO_sock_non_fatal_error(int error); +int BIO_err_is_non_fatal(unsigned int errcode); int BIO_socket_wait(int fd, int for_read, time_t max_time); # endif int BIO_wait(BIO *bio, time_t max_time, unsigned int nap_milliseconds); @@ -726,6 +837,8 @@ int BIO_hex_string(BIO *out, int indent, int width, const void *data, # ifndef OPENSSL_NO_SOCK BIO_ADDR *BIO_ADDR_new(void); +int BIO_ADDR_copy(BIO_ADDR *dst, const BIO_ADDR *src); +BIO_ADDR *BIO_ADDR_dup(const BIO_ADDR *ap); int BIO_ADDR_rawmake(BIO_ADDR *ap, int family, const void *where, size_t wherelen, unsigned short port); void BIO_ADDR_free(BIO_ADDR *); @@ -788,6 +901,7 @@ int BIO_sock_info(int sock, # define BIO_SOCK_KEEPALIVE 0x04 # define BIO_SOCK_NONBLOCK 0x08 # define BIO_SOCK_NODELAY 0x10 +# define BIO_SOCK_TFO 0x20 int BIO_socket(int domain, int socktype, int protocol, int options); int BIO_connect(int sock, const BIO_ADDR *addr, int options); @@ -805,6 +919,11 @@ BIO *BIO_new_fd(int fd, int close_flag); int BIO_new_bio_pair(BIO **bio1, size_t writebuf1, BIO **bio2, size_t writebuf2); +# ifndef OPENSSL_NO_DGRAM +int BIO_new_bio_dgram_pair(BIO **bio1, size_t writebuf1, + BIO **bio2, size_t writebuf2); +# endif + /* * If successful, returns 1 and in *bio1, *bio2 two BIO pair endpoints. * Otherwise returns 0 and sets *bio1 and *bio2 to NULL. Size 0 uses default @@ -849,38 +968,54 @@ ossl_bio__attr__((__format__(ossl_bio__printf__, 3, 0))); BIO_METHOD *BIO_meth_new(int type, const char *name); void BIO_meth_free(BIO_METHOD *biom); -int (*BIO_meth_get_write(const BIO_METHOD *biom)) (BIO *, const char *, int); -int (*BIO_meth_get_write_ex(const BIO_METHOD *biom)) (BIO *, const char *, size_t, - size_t *); int BIO_meth_set_write(BIO_METHOD *biom, int (*write) (BIO *, const char *, int)); int BIO_meth_set_write_ex(BIO_METHOD *biom, int (*bwrite) (BIO *, const char *, size_t, size_t *)); -int (*BIO_meth_get_read(const BIO_METHOD *biom)) (BIO *, char *, int); -int (*BIO_meth_get_read_ex(const BIO_METHOD *biom)) (BIO *, char *, size_t, size_t *); +int BIO_meth_set_sendmmsg(BIO_METHOD *biom, + int (*f) (BIO *, BIO_MSG *, size_t, size_t, + uint64_t, size_t *)); int BIO_meth_set_read(BIO_METHOD *biom, int (*read) (BIO *, char *, int)); int BIO_meth_set_read_ex(BIO_METHOD *biom, int (*bread) (BIO *, char *, size_t, size_t *)); -int (*BIO_meth_get_puts(const BIO_METHOD *biom)) (BIO *, const char *); +int BIO_meth_set_recvmmsg(BIO_METHOD *biom, + int (*f) (BIO *, BIO_MSG *, size_t, size_t, + uint64_t, size_t *)); int BIO_meth_set_puts(BIO_METHOD *biom, int (*puts) (BIO *, const char *)); -int (*BIO_meth_get_gets(const BIO_METHOD *biom)) (BIO *, char *, int); int BIO_meth_set_gets(BIO_METHOD *biom, int (*ossl_gets) (BIO *, char *, int)); -long (*BIO_meth_get_ctrl(const BIO_METHOD *biom)) (BIO *, int, long, void *); int BIO_meth_set_ctrl(BIO_METHOD *biom, long (*ctrl) (BIO *, int, long, void *)); -int (*BIO_meth_get_create(const BIO_METHOD *bion)) (BIO *); int BIO_meth_set_create(BIO_METHOD *biom, int (*create) (BIO *)); -int (*BIO_meth_get_destroy(const BIO_METHOD *biom)) (BIO *); int BIO_meth_set_destroy(BIO_METHOD *biom, int (*destroy) (BIO *)); -long (*BIO_meth_get_callback_ctrl(const BIO_METHOD *biom)) - (BIO *, int, BIO_info_cb *); int BIO_meth_set_callback_ctrl(BIO_METHOD *biom, long (*callback_ctrl) (BIO *, int, BIO_info_cb *)); - +# ifndef OPENSSL_NO_DEPRECATED_3_5 +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_write(const BIO_METHOD *biom)) (BIO *, const char *, + int); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_write_ex(const BIO_METHOD *biom)) (BIO *, const char *, + size_t, size_t *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_sendmmsg(const BIO_METHOD *biom))(BIO *, BIO_MSG *, + size_t, size_t, + uint64_t, size_t *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_read(const BIO_METHOD *biom)) (BIO *, char *, int); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_read_ex(const BIO_METHOD *biom)) (BIO *, char *, + size_t, size_t *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_recvmmsg(const BIO_METHOD *biom))(BIO *, BIO_MSG *, + size_t, size_t, + uint64_t, size_t *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_puts(const BIO_METHOD *biom)) (BIO *, const char *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_gets(const BIO_METHOD *biom)) (BIO *, char *, int); +OSSL_DEPRECATEDIN_3_5 long (*BIO_meth_get_ctrl(const BIO_METHOD *biom)) (BIO *, int, + long, void *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_create(const BIO_METHOD *bion)) (BIO *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_destroy(const BIO_METHOD *biom)) (BIO *); +OSSL_DEPRECATEDIN_3_5 long (*BIO_meth_get_callback_ctrl(const BIO_METHOD *biom)) (BIO *, int, + BIO_info_cb *); +# endif # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/asm/include/openssl/cmp.h b/deps/openssl/config/archs/darwin64-arm64-cc/asm/include/openssl/cmp.h index 49825570d8c303..05aed3029d594c 100644 --- a/deps/openssl/config/archs/darwin64-arm64-cc/asm/include/openssl/cmp.h +++ b/deps/openssl/config/archs/darwin64-arm64-cc/asm/include/openssl/cmp.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/cmp.h.in * - * Copyright 2007-2023 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2007-2024 The OpenSSL Project Authors. All Rights Reserved. * Copyright Nokia 2007-2019 * Copyright Siemens AG 2015-2019 * @@ -35,7 +35,9 @@ extern "C" { # endif -# define OSSL_CMP_PVNO 2 +# define OSSL_CMP_PVNO_2 2 +# define OSSL_CMP_PVNO_3 3 +# define OSSL_CMP_PVNO OSSL_CMP_PVNO_2 /* v2 is the default */ /*- * PKIFailureInfo ::= BIT STRING { @@ -137,7 +139,6 @@ extern "C" { # if OSSL_CMP_PKIFAILUREINFO_MAX_BIT_PATTERN > INT_MAX # error CMP_PKIFAILUREINFO_MAX bit pattern does not fit in type int # endif - typedef ASN1_BIT_STRING OSSL_CMP_PKIFAILUREINFO; # define OSSL_CMP_CTX_FAILINFO_badAlg (1 << 0) @@ -203,8 +204,8 @@ typedef ASN1_BIT_STRING OSSL_CMP_PKIFAILUREINFO; # define OSSL_CMP_PKISTATUS_revocationWarning 4 # define OSSL_CMP_PKISTATUS_revocationNotification 5 # define OSSL_CMP_PKISTATUS_keyUpdateWarning 6 - typedef ASN1_INTEGER OSSL_CMP_PKISTATUS; + DECLARE_ASN1_ITEM(OSSL_CMP_PKISTATUS) # define OSSL_CMP_CERTORENCCERT_CERTIFICATE 0 @@ -274,6 +275,46 @@ SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CMP_ITAV, OSSL_CMP_ITAV, OSSL_CMP_ITAV) #define sk_OSSL_CMP_ITAV_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_CMP_ITAV) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_CMP_ITAV_sk_type(sk), ossl_check_OSSL_CMP_ITAV_copyfunc_type(copyfunc), ossl_check_OSSL_CMP_ITAV_freefunc_type(freefunc))) #define sk_OSSL_CMP_ITAV_set_cmp_func(sk, cmp) ((sk_OSSL_CMP_ITAV_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CMP_ITAV_sk_type(sk), ossl_check_OSSL_CMP_ITAV_compfunc_type(cmp))) + +typedef struct ossl_cmp_crlstatus_st OSSL_CMP_CRLSTATUS; +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CMP_CRLSTATUS, OSSL_CMP_CRLSTATUS, OSSL_CMP_CRLSTATUS) +#define sk_OSSL_CMP_CRLSTATUS_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_value(sk, idx) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_value(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk), (idx))) +#define sk_OSSL_CMP_CRLSTATUS_new(cmp) ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_new(ossl_check_OSSL_CMP_CRLSTATUS_compfunc_type(cmp))) +#define sk_OSSL_CMP_CRLSTATUS_new_null() ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_new_null()) +#define sk_OSSL_CMP_CRLSTATUS_new_reserve(cmp, n) ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_CMP_CRLSTATUS_compfunc_type(cmp), (n))) +#define sk_OSSL_CMP_CRLSTATUS_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), (n)) +#define sk_OSSL_CMP_CRLSTATUS_free(sk) OPENSSL_sk_free(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_delete(sk, i) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_delete(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), (i))) +#define sk_OSSL_CMP_CRLSTATUS_delete_ptr(sk, ptr) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr))) +#define sk_OSSL_CMP_CRLSTATUS_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr)) +#define sk_OSSL_CMP_CRLSTATUS_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr)) +#define sk_OSSL_CMP_CRLSTATUS_pop(sk) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_pop(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk))) +#define sk_OSSL_CMP_CRLSTATUS_shift(sk) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_shift(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk))) +#define sk_OSSL_CMP_CRLSTATUS_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk),ossl_check_OSSL_CMP_CRLSTATUS_freefunc_type(freefunc)) +#define sk_OSSL_CMP_CRLSTATUS_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr), (idx)) +#define sk_OSSL_CMP_CRLSTATUS_set(sk, idx, ptr) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_set(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), (idx), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr))) +#define sk_OSSL_CMP_CRLSTATUS_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr)) +#define sk_OSSL_CMP_CRLSTATUS_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr)) +#define sk_OSSL_CMP_CRLSTATUS_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr), pnum) +#define sk_OSSL_CMP_CRLSTATUS_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_dup(sk) ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_dup(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk))) +#define sk_OSSL_CMP_CRLSTATUS_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_copyfunc_type(copyfunc), ossl_check_OSSL_CMP_CRLSTATUS_freefunc_type(freefunc))) +#define sk_OSSL_CMP_CRLSTATUS_set_cmp_func(sk, cmp) ((sk_OSSL_CMP_CRLSTATUS_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_compfunc_type(cmp))) + + +typedef OSSL_CRMF_ATTRIBUTETYPEANDVALUE OSSL_CMP_ATAV; +# define OSSL_CMP_ATAV_free OSSL_CRMF_ATTRIBUTETYPEANDVALUE_free +typedef STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) OSSL_CMP_ATAVS; +DECLARE_ASN1_FUNCTIONS(OSSL_CMP_ATAVS) +# define stack_st_OSSL_CMP_ATAV stack_st_OSSL_CRMF_ATTRIBUTETYPEANDVALUE +# define sk_OSSL_CMP_ATAV_num sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_num +# define sk_OSSL_CMP_ATAV_value sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_value +# define sk_OSSL_CMP_ATAV_push sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_push +# define sk_OSSL_CMP_ATAV_pop_free sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_pop_free + typedef struct ossl_cmp_revrepcontent_st OSSL_CMP_REVREPCONTENT; typedef struct ossl_cmp_pkisi_st OSSL_CMP_PKISI; DECLARE_ASN1_FUNCTIONS(OSSL_CMP_PKISI) @@ -375,21 +416,75 @@ void OSSL_CMP_ITAV_set0(OSSL_CMP_ITAV *itav, ASN1_OBJECT *type, ASN1_TYPE *value); ASN1_OBJECT *OSSL_CMP_ITAV_get0_type(const OSSL_CMP_ITAV *itav); ASN1_TYPE *OSSL_CMP_ITAV_get0_value(const OSSL_CMP_ITAV *itav); -int OSSL_CMP_ITAV_push0_stack_item(STACK_OF(OSSL_CMP_ITAV) **itav_sk_p, +int OSSL_CMP_ITAV_push0_stack_item(STACK_OF(OSSL_CMP_ITAV) **sk_p, OSSL_CMP_ITAV *itav); void OSSL_CMP_ITAV_free(OSSL_CMP_ITAV *itav); + +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new0_certProfile(STACK_OF(ASN1_UTF8STRING) + *certProfile); +int OSSL_CMP_ITAV_get0_certProfile(const OSSL_CMP_ITAV *itav, + STACK_OF(ASN1_UTF8STRING) **out); +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new_caCerts(const STACK_OF(X509) *caCerts); +int OSSL_CMP_ITAV_get0_caCerts(const OSSL_CMP_ITAV *itav, STACK_OF(X509) **out); + +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new_rootCaCert(const X509 *rootCaCert); +int OSSL_CMP_ITAV_get0_rootCaCert(const OSSL_CMP_ITAV *itav, X509 **out); +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new_rootCaKeyUpdate(const X509 *newWithNew, + const X509 *newWithOld, + const X509 *oldWithNew); +int OSSL_CMP_ITAV_get0_rootCaKeyUpdate(const OSSL_CMP_ITAV *itav, + X509 **newWithNew, + X509 **newWithOld, + X509 **oldWithNew); + +OSSL_CMP_CRLSTATUS *OSSL_CMP_CRLSTATUS_create(const X509_CRL *crl, + const X509 *cert, int only_DN); +OSSL_CMP_CRLSTATUS *OSSL_CMP_CRLSTATUS_new1(const DIST_POINT_NAME *dpn, + const GENERAL_NAMES *issuer, + const ASN1_TIME *thisUpdate); +int OSSL_CMP_CRLSTATUS_get0(const OSSL_CMP_CRLSTATUS *crlstatus, + DIST_POINT_NAME **dpn, GENERAL_NAMES **issuer, + ASN1_TIME **thisUpdate); +void OSSL_CMP_CRLSTATUS_free(OSSL_CMP_CRLSTATUS *crlstatus); +OSSL_CMP_ITAV +*OSSL_CMP_ITAV_new0_crlStatusList(STACK_OF(OSSL_CMP_CRLSTATUS) *crlStatusList); +int OSSL_CMP_ITAV_get0_crlStatusList(const OSSL_CMP_ITAV *itav, + STACK_OF(OSSL_CMP_CRLSTATUS) **out); +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new_crls(const X509_CRL *crls); +int OSSL_CMP_ITAV_get0_crls(const OSSL_CMP_ITAV *it, STACK_OF(X509_CRL) **out); +OSSL_CMP_ITAV +*OSSL_CMP_ITAV_new0_certReqTemplate(OSSL_CRMF_CERTTEMPLATE *certTemplate, + OSSL_CMP_ATAVS *keySpec); +int OSSL_CMP_ITAV_get1_certReqTemplate(const OSSL_CMP_ITAV *itav, + OSSL_CRMF_CERTTEMPLATE **certTemplate, + OSSL_CMP_ATAVS **keySpec); + +OSSL_CMP_ATAV *OSSL_CMP_ATAV_create(ASN1_OBJECT *type, ASN1_TYPE *value); +void OSSL_CMP_ATAV_set0(OSSL_CMP_ATAV *itav, ASN1_OBJECT *type, + ASN1_TYPE *value); +ASN1_OBJECT *OSSL_CMP_ATAV_get0_type(const OSSL_CMP_ATAV *itav); +ASN1_TYPE *OSSL_CMP_ATAV_get0_value(const OSSL_CMP_ATAV *itav); +OSSL_CMP_ATAV *OSSL_CMP_ATAV_new_algId(const X509_ALGOR *alg); +X509_ALGOR *OSSL_CMP_ATAV_get0_algId(const OSSL_CMP_ATAV *atav); +OSSL_CMP_ATAV *OSSL_CMP_ATAV_new_rsaKeyLen(int len); +int OSSL_CMP_ATAV_get_rsaKeyLen(const OSSL_CMP_ATAV *atav); +int OSSL_CMP_ATAV_push1(OSSL_CMP_ATAVS **sk_p, const OSSL_CMP_ATAV *atav); + void OSSL_CMP_MSG_free(OSSL_CMP_MSG *msg); /* from cmp_ctx.c */ OSSL_CMP_CTX *OSSL_CMP_CTX_new(OSSL_LIB_CTX *libctx, const char *propq); void OSSL_CMP_CTX_free(OSSL_CMP_CTX *ctx); int OSSL_CMP_CTX_reinit(OSSL_CMP_CTX *ctx); +OSSL_LIB_CTX *OSSL_CMP_CTX_get0_libctx(const OSSL_CMP_CTX *ctx); +const char *OSSL_CMP_CTX_get0_propq(const OSSL_CMP_CTX *ctx); /* CMP general options: */ # define OSSL_CMP_OPT_LOG_VERBOSITY 0 /* CMP transfer options: */ -# define OSSL_CMP_OPT_KEEP_ALIVE 10 -# define OSSL_CMP_OPT_MSG_TIMEOUT 11 +# define OSSL_CMP_OPT_KEEP_ALIVE 10 +# define OSSL_CMP_OPT_MSG_TIMEOUT 11 # define OSSL_CMP_OPT_TOTAL_TIMEOUT 12 +# define OSSL_CMP_OPT_USE_TLS 13 /* CMP request options: */ # define OSSL_CMP_OPT_VALIDITY_DAYS 20 # define OSSL_CMP_OPT_SUBJECTALTNAME_NODEFAULT 21 @@ -407,6 +502,7 @@ int OSSL_CMP_CTX_reinit(OSSL_CMP_CTX *ctx); # define OSSL_CMP_OPT_DIGEST_ALGNID 34 # define OSSL_CMP_OPT_IGNORE_KEYUSAGE 35 # define OSSL_CMP_OPT_PERMIT_TA_IN_EXTRACERTS_FOR_IR 36 +# define OSSL_CMP_OPT_NO_CACHE_EXTRACERTS 37 int OSSL_CMP_CTX_set_option(OSSL_CMP_CTX *ctx, int opt, int val); int OSSL_CMP_CTX_get_option(const OSSL_CMP_CTX *ctx, int opt); /* CMP-specific callback for logging and outputting the error queue: */ @@ -420,9 +516,11 @@ int OSSL_CMP_CTX_set1_server(OSSL_CMP_CTX *ctx, const char *address); int OSSL_CMP_CTX_set_serverPort(OSSL_CMP_CTX *ctx, int port); int OSSL_CMP_CTX_set1_proxy(OSSL_CMP_CTX *ctx, const char *name); int OSSL_CMP_CTX_set1_no_proxy(OSSL_CMP_CTX *ctx, const char *names); +# ifndef OPENSSL_NO_HTTP int OSSL_CMP_CTX_set_http_cb(OSSL_CMP_CTX *ctx, OSSL_HTTP_bio_cb_t cb); int OSSL_CMP_CTX_set_http_cb_arg(OSSL_CMP_CTX *ctx, void *arg); void *OSSL_CMP_CTX_get_http_cb_arg(const OSSL_CMP_CTX *ctx); +# endif typedef OSSL_CMP_MSG *(*OSSL_CMP_transfer_cb_t) (OSSL_CMP_CTX *ctx, const OSSL_CMP_MSG *req); int OSSL_CMP_CTX_set_transfer_cb(OSSL_CMP_CTX *ctx, OSSL_CMP_transfer_cb_t cb); @@ -432,7 +530,9 @@ void *OSSL_CMP_CTX_get_transfer_cb_arg(const OSSL_CMP_CTX *ctx); int OSSL_CMP_CTX_set1_srvCert(OSSL_CMP_CTX *ctx, X509 *cert); int OSSL_CMP_CTX_set1_expected_sender(OSSL_CMP_CTX *ctx, const X509_NAME *name); int OSSL_CMP_CTX_set0_trustedStore(OSSL_CMP_CTX *ctx, X509_STORE *store); +# define OSSL_CMP_CTX_set0_trusted OSSL_CMP_CTX_set0_trustedStore X509_STORE *OSSL_CMP_CTX_get0_trustedStore(const OSSL_CMP_CTX *ctx); +# define OSSL_CMP_CTX_get0_trusted OSSL_CMP_CTX_get0_trustedStore int OSSL_CMP_CTX_set1_untrusted(OSSL_CMP_CTX *ctx, STACK_OF(X509) *certs); STACK_OF(X509) *OSSL_CMP_CTX_get0_untrusted(const OSSL_CMP_CTX *ctx); /* client authentication: */ @@ -448,12 +548,15 @@ int OSSL_CMP_CTX_set1_secretValue(OSSL_CMP_CTX *ctx, int OSSL_CMP_CTX_set1_recipient(OSSL_CMP_CTX *ctx, const X509_NAME *name); int OSSL_CMP_CTX_push0_geninfo_ITAV(OSSL_CMP_CTX *ctx, OSSL_CMP_ITAV *itav); int OSSL_CMP_CTX_reset_geninfo_ITAVs(OSSL_CMP_CTX *ctx); +STACK_OF(OSSL_CMP_ITAV) + *OSSL_CMP_CTX_get0_geninfo_ITAVs(const OSSL_CMP_CTX *ctx); int OSSL_CMP_CTX_set1_extraCertsOut(OSSL_CMP_CTX *ctx, STACK_OF(X509) *extraCertsOut); /* certificate template: */ int OSSL_CMP_CTX_set0_newPkey(OSSL_CMP_CTX *ctx, int priv, EVP_PKEY *pkey); EVP_PKEY *OSSL_CMP_CTX_get0_newPkey(const OSSL_CMP_CTX *ctx, int priv); int OSSL_CMP_CTX_set1_issuer(OSSL_CMP_CTX *ctx, const X509_NAME *name); +int OSSL_CMP_CTX_set1_serialNumber(OSSL_CMP_CTX *ctx, const ASN1_INTEGER *sn); int OSSL_CMP_CTX_set1_subjectName(OSSL_CMP_CTX *ctx, const X509_NAME *name); int OSSL_CMP_CTX_push1_subjectAltName(OSSL_CMP_CTX *ctx, const GENERAL_NAME *name); @@ -477,6 +580,7 @@ int OSSL_CMP_CTX_get_status(const OSSL_CMP_CTX *ctx); OSSL_CMP_PKIFREETEXT *OSSL_CMP_CTX_get0_statusString(const OSSL_CMP_CTX *ctx); int OSSL_CMP_CTX_get_failInfoCode(const OSSL_CMP_CTX *ctx); # define OSSL_CMP_PKISI_BUFLEN 1024 +X509 *OSSL_CMP_CTX_get0_validatedSrvCert(const OSSL_CMP_CTX *ctx); X509 *OSSL_CMP_CTX_get0_newCert(const OSSL_CMP_CTX *ctx); STACK_OF(X509) *OSSL_CMP_CTX_get1_newChain(const OSSL_CMP_CTX *ctx); STACK_OF(X509) *OSSL_CMP_CTX_get1_caPubs(const OSSL_CMP_CTX *ctx); @@ -498,10 +602,13 @@ OSSL_CMP_STATUSINFO_new(int status, int fail_info, const char *text); ASN1_OCTET_STRING *OSSL_CMP_HDR_get0_transactionID(const OSSL_CMP_PKIHEADER *hdr); ASN1_OCTET_STRING *OSSL_CMP_HDR_get0_recipNonce(const OSSL_CMP_PKIHEADER *hdr); +STACK_OF(OSSL_CMP_ITAV) + *OSSL_CMP_HDR_get0_geninfo_ITAVs(const OSSL_CMP_PKIHEADER *hdr); /* from cmp_msg.c */ OSSL_CMP_PKIHEADER *OSSL_CMP_MSG_get0_header(const OSSL_CMP_MSG *msg); int OSSL_CMP_MSG_get_bodytype(const OSSL_CMP_MSG *msg); +X509_PUBKEY *OSSL_CMP_MSG_get0_certreq_publickey(const OSSL_CMP_MSG *msg); int OSSL_CMP_MSG_update_transactionID(OSSL_CMP_CTX *ctx, OSSL_CMP_MSG *msg); int OSSL_CMP_MSG_update_recipNonce(OSSL_CMP_CTX *ctx, OSSL_CMP_MSG *msg); OSSL_CRMF_MSG *OSSL_CMP_CTX_setup_CRM(OSSL_CMP_CTX *ctx, int for_KUR, int rid); @@ -517,8 +624,10 @@ int OSSL_CMP_validate_cert_path(const OSSL_CMP_CTX *ctx, X509_STORE *trusted_store, X509 *cert); /* from cmp_http.c */ +# ifndef OPENSSL_NO_HTTP OSSL_CMP_MSG *OSSL_CMP_MSG_http_perform(OSSL_CMP_CTX *ctx, const OSSL_CMP_MSG *req); +# endif /* from cmp_server.c */ typedef struct ossl_cmp_srv_ctx_st OSSL_CMP_SRV_CTX; @@ -561,6 +670,13 @@ int OSSL_CMP_SRV_CTX_init(OSSL_CMP_SRV_CTX *srv_ctx, void *custom_ctx, OSSL_CMP_SRV_error_cb_t process_error, OSSL_CMP_SRV_certConf_cb_t process_certConf, OSSL_CMP_SRV_pollReq_cb_t process_pollReq); +typedef int (*OSSL_CMP_SRV_delayed_delivery_cb_t)(OSSL_CMP_SRV_CTX *srv_ctx, + const OSSL_CMP_MSG *req); +typedef int (*OSSL_CMP_SRV_clean_transaction_cb_t)(OSSL_CMP_SRV_CTX *srv_ctx, + const ASN1_OCTET_STRING *id); +int OSSL_CMP_SRV_CTX_init_trans(OSSL_CMP_SRV_CTX *srv_ctx, + OSSL_CMP_SRV_delayed_delivery_cb_t delay, + OSSL_CMP_SRV_clean_transaction_cb_t clean); OSSL_CMP_CTX *OSSL_CMP_SRV_CTX_get0_cmp_ctx(const OSSL_CMP_SRV_CTX *srv_ctx); void *OSSL_CMP_SRV_CTX_get0_custom_ctx(const OSSL_CMP_SRV_CTX *srv_ctx); int OSSL_CMP_SRV_CTX_set_send_unprotected_errors(OSSL_CMP_SRV_CTX *srv_ctx, @@ -577,6 +693,8 @@ X509 *OSSL_CMP_exec_certreq(OSSL_CMP_CTX *ctx, int req_type, # define OSSL_CMP_CR 2 # define OSSL_CMP_P10CR 4 # define OSSL_CMP_KUR 7 +# define OSSL_CMP_GENM 21 +# define OSSL_CMP_ERROR 23 # define OSSL_CMP_exec_IR_ses(ctx) \ OSSL_CMP_exec_certreq(ctx, OSSL_CMP_IR, NULL) # define OSSL_CMP_exec_CR_ses(ctx) \ @@ -590,6 +708,18 @@ int OSSL_CMP_try_certreq(OSSL_CMP_CTX *ctx, int req_type, int OSSL_CMP_exec_RR_ses(OSSL_CMP_CTX *ctx); STACK_OF(OSSL_CMP_ITAV) *OSSL_CMP_exec_GENM_ses(OSSL_CMP_CTX *ctx); +/* from cmp_genm.c */ +int OSSL_CMP_get1_caCerts(OSSL_CMP_CTX *ctx, STACK_OF(X509) **out); +int OSSL_CMP_get1_rootCaKeyUpdate(OSSL_CMP_CTX *ctx, + const X509 *oldWithOld, X509 **newWithNew, + X509 **newWithOld, X509 **oldWithNew); +int OSSL_CMP_get1_crlUpdate(OSSL_CMP_CTX *ctx, const X509 *crlcert, + const X509_CRL *last_crl, + X509_CRL **crl); +int OSSL_CMP_get1_certReqTemplate(OSSL_CMP_CTX *ctx, + OSSL_CRMF_CERTTEMPLATE **certTemplate, + OSSL_CMP_ATAVS **keySpec); + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/asm/include/openssl/cms.h b/deps/openssl/config/archs/darwin64-arm64-cc/asm/include/openssl/cms.h index 3b453e6a2187a2..63afab563557b0 100644 --- a/deps/openssl/config/archs/darwin64-arm64-cc/asm/include/openssl/cms.h +++ b/deps/openssl/config/archs/darwin64-arm64-cc/asm/include/openssl/cms.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/cms.h.in * - * Copyright 2008-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2008-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -31,8 +31,10 @@ extern "C" { # endif +typedef struct CMS_EnvelopedData_st CMS_EnvelopedData; typedef struct CMS_ContentInfo_st CMS_ContentInfo; typedef struct CMS_SignerInfo_st CMS_SignerInfo; +typedef struct CMS_SignedData_st CMS_SignedData; typedef struct CMS_CertificateChoices CMS_CertificateChoices; typedef struct CMS_RevocationInfoChoice_st CMS_RevocationInfoChoice; typedef struct CMS_RecipientInfo_st CMS_RecipientInfo; @@ -147,10 +149,14 @@ SKM_DEFINE_STACK_OF_INTERNAL(CMS_RevocationInfoChoice, CMS_RevocationInfoChoice, #define sk_CMS_RevocationInfoChoice_set_cmp_func(sk, cmp) ((sk_CMS_RevocationInfoChoice_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_CMS_RevocationInfoChoice_sk_type(sk), ossl_check_CMS_RevocationInfoChoice_compfunc_type(cmp))) +DECLARE_ASN1_ITEM(CMS_EnvelopedData) +DECLARE_ASN1_ALLOC_FUNCTIONS(CMS_SignedData) DECLARE_ASN1_FUNCTIONS(CMS_ContentInfo) DECLARE_ASN1_FUNCTIONS(CMS_ReceiptRequest) DECLARE_ASN1_PRINT_FUNCTION(CMS_ContentInfo) +DECLARE_ASN1_DUP_FUNCTION(CMS_EnvelopedData) + CMS_ContentInfo *CMS_ContentInfo_new_ex(OSSL_LIB_CTX *libctx, const char *propq); # define CMS_SIGNERINFO_ISSUER_SERIAL 0 @@ -190,6 +196,7 @@ CMS_ContentInfo *CMS_ContentInfo_new_ex(OSSL_LIB_CTX *libctx, const char *propq) # define CMS_ASCIICRLF 0x80000 # define CMS_CADES 0x100000 # define CMS_USE_ORIGINATOR_KEYID 0x200000 +# define CMS_NO_SIGNING_TIME 0x400000 const ASN1_OBJECT *CMS_get0_type(const CMS_ContentInfo *cms); @@ -217,13 +224,16 @@ int SMIME_write_CMS(BIO *bio, CMS_ContentInfo *cms, BIO *data, int flags); int CMS_final(CMS_ContentInfo *cms, BIO *data, BIO *dcont, unsigned int flags); +int CMS_final_digest(CMS_ContentInfo *cms, + const unsigned char *md, unsigned int mdlen, BIO *dcont, + unsigned int flags); CMS_ContentInfo *CMS_sign(X509 *signcert, EVP_PKEY *pkey, STACK_OF(X509) *certs, BIO *data, unsigned int flags); CMS_ContentInfo *CMS_sign_ex(X509 *signcert, EVP_PKEY *pkey, STACK_OF(X509) *certs, BIO *data, - unsigned int flags, OSSL_LIB_CTX *ctx, + unsigned int flags, OSSL_LIB_CTX *libctx, const char *propq); CMS_ContentInfo *CMS_sign_receipt(CMS_SignerInfo *si, @@ -233,27 +243,26 @@ CMS_ContentInfo *CMS_sign_receipt(CMS_SignerInfo *si, int CMS_data(CMS_ContentInfo *cms, BIO *out, unsigned int flags); CMS_ContentInfo *CMS_data_create(BIO *in, unsigned int flags); CMS_ContentInfo *CMS_data_create_ex(BIO *in, unsigned int flags, - OSSL_LIB_CTX *ctx, const char *propq); + OSSL_LIB_CTX *libctx, const char *propq); int CMS_digest_verify(CMS_ContentInfo *cms, BIO *dcont, BIO *out, unsigned int flags); CMS_ContentInfo *CMS_digest_create(BIO *in, const EVP_MD *md, unsigned int flags); CMS_ContentInfo *CMS_digest_create_ex(BIO *in, const EVP_MD *md, - unsigned int flags, OSSL_LIB_CTX *ctx, + unsigned int flags, OSSL_LIB_CTX *libctx, const char *propq); int CMS_EncryptedData_decrypt(CMS_ContentInfo *cms, const unsigned char *key, size_t keylen, BIO *dcont, BIO *out, unsigned int flags); - CMS_ContentInfo *CMS_EncryptedData_encrypt(BIO *in, const EVP_CIPHER *cipher, const unsigned char *key, size_t keylen, unsigned int flags); CMS_ContentInfo *CMS_EncryptedData_encrypt_ex(BIO *in, const EVP_CIPHER *cipher, const unsigned char *key, size_t keylen, unsigned int flags, - OSSL_LIB_CTX *ctx, + OSSL_LIB_CTX *libctx, const char *propq); int CMS_EncryptedData_set1_key(CMS_ContentInfo *cms, const EVP_CIPHER *ciph, @@ -272,7 +281,7 @@ CMS_ContentInfo *CMS_encrypt(STACK_OF(X509) *certs, BIO *in, const EVP_CIPHER *cipher, unsigned int flags); CMS_ContentInfo *CMS_encrypt_ex(STACK_OF(X509) *certs, BIO *in, const EVP_CIPHER *cipher, unsigned int flags, - OSSL_LIB_CTX *ctx, const char *propq); + OSSL_LIB_CTX *libctx, const char *propq); int CMS_decrypt(CMS_ContentInfo *cms, EVP_PKEY *pkey, X509 *cert, BIO *dcont, BIO *out, unsigned int flags); @@ -291,12 +300,16 @@ int CMS_RecipientInfo_type(CMS_RecipientInfo *ri); EVP_PKEY_CTX *CMS_RecipientInfo_get0_pkey_ctx(CMS_RecipientInfo *ri); CMS_ContentInfo *CMS_AuthEnvelopedData_create(const EVP_CIPHER *cipher); CMS_ContentInfo * -CMS_AuthEnvelopedData_create_ex(const EVP_CIPHER *cipher, OSSL_LIB_CTX *ctx, +CMS_AuthEnvelopedData_create_ex(const EVP_CIPHER *cipher, OSSL_LIB_CTX *libctx, const char *propq); CMS_ContentInfo *CMS_EnvelopedData_create(const EVP_CIPHER *cipher); CMS_ContentInfo *CMS_EnvelopedData_create_ex(const EVP_CIPHER *cipher, - OSSL_LIB_CTX *ctx, + OSSL_LIB_CTX *libctx, const char *propq); +BIO *CMS_EnvelopedData_decrypt(CMS_EnvelopedData *env, BIO *detached_data, + EVP_PKEY *pkey, X509 *cert, + ASN1_OCTET_STRING *secret, unsigned int flags, + OSSL_LIB_CTX *libctx, const char *propq); CMS_RecipientInfo *CMS_add1_recipient_cert(CMS_ContentInfo *cms, X509 *recip, unsigned int flags); @@ -385,6 +398,11 @@ ASN1_OCTET_STRING *CMS_SignerInfo_get0_signature(CMS_SignerInfo *si); int CMS_SignerInfo_sign(CMS_SignerInfo *si); int CMS_SignerInfo_verify(CMS_SignerInfo *si); int CMS_SignerInfo_verify_content(CMS_SignerInfo *si, BIO *chain); +BIO *CMS_SignedData_verify(CMS_SignedData *sd, BIO *detached_data, + STACK_OF(X509) *scerts, X509_STORE *store, + STACK_OF(X509) *extra, STACK_OF(X509_CRL) *crls, + unsigned int flags, + OSSL_LIB_CTX *libctx, const char *propq); int CMS_add_smimecap(CMS_SignerInfo *si, STACK_OF(X509_ALGOR) *algs); int CMS_add_simple_smimecap(STACK_OF(X509_ALGOR) **algs, @@ -441,7 +459,7 @@ CMS_ReceiptRequest *CMS_ReceiptRequest_create0_ex( unsigned char *id, int idlen, int allorfirst, STACK_OF(GENERAL_NAMES) *receiptList, STACK_OF(GENERAL_NAMES) *receiptsTo, - OSSL_LIB_CTX *ctx); + OSSL_LIB_CTX *libctx); int CMS_add1_ReceiptRequest(CMS_SignerInfo *si, CMS_ReceiptRequest *rr); void CMS_ReceiptRequest_get0_values(CMS_ReceiptRequest *rr, diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/asm/include/openssl/comp.h b/deps/openssl/config/archs/darwin64-arm64-cc/asm/include/openssl/comp.h new file mode 100644 index 00000000000000..90e39511fe8d28 --- /dev/null +++ b/deps/openssl/config/archs/darwin64-arm64-cc/asm/include/openssl/comp.h @@ -0,0 +1,98 @@ +/* + * Copyright 2015-2024 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + + +#ifndef OPENSSL_COMP_H +# define OPENSSL_COMP_H +# pragma once + +# include +# ifndef OPENSSL_NO_DEPRECATED_3_0 +# define HEADER_COMP_H +# endif + +# include + +# include +# include +# ifdef __cplusplus +extern "C" { +# endif + + + +# ifndef OPENSSL_NO_COMP + +COMP_CTX *COMP_CTX_new(COMP_METHOD *meth); +const COMP_METHOD *COMP_CTX_get_method(const COMP_CTX *ctx); +int COMP_CTX_get_type(const COMP_CTX* comp); +int COMP_get_type(const COMP_METHOD *meth); +const char *COMP_get_name(const COMP_METHOD *meth); +void COMP_CTX_free(COMP_CTX *ctx); + +int COMP_compress_block(COMP_CTX *ctx, unsigned char *out, int olen, + unsigned char *in, int ilen); +int COMP_expand_block(COMP_CTX *ctx, unsigned char *out, int olen, + unsigned char *in, int ilen); + +COMP_METHOD *COMP_zlib(void); +COMP_METHOD *COMP_zlib_oneshot(void); +COMP_METHOD *COMP_brotli(void); +COMP_METHOD *COMP_brotli_oneshot(void); +COMP_METHOD *COMP_zstd(void); +COMP_METHOD *COMP_zstd_oneshot(void); + +# ifndef OPENSSL_NO_DEPRECATED_1_1_0 +# define COMP_zlib_cleanup() while(0) continue +# endif + +# ifdef OPENSSL_BIO_H +const BIO_METHOD *BIO_f_zlib(void); +const BIO_METHOD *BIO_f_brotli(void); +const BIO_METHOD *BIO_f_zstd(void); +# endif + +# endif + +typedef struct ssl_comp_st SSL_COMP; + +SKM_DEFINE_STACK_OF_INTERNAL(SSL_COMP, SSL_COMP, SSL_COMP) +#define sk_SSL_COMP_num(sk) OPENSSL_sk_num(ossl_check_const_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_value(sk, idx) ((SSL_COMP *)OPENSSL_sk_value(ossl_check_const_SSL_COMP_sk_type(sk), (idx))) +#define sk_SSL_COMP_new(cmp) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new(ossl_check_SSL_COMP_compfunc_type(cmp))) +#define sk_SSL_COMP_new_null() ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new_null()) +#define sk_SSL_COMP_new_reserve(cmp, n) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new_reserve(ossl_check_SSL_COMP_compfunc_type(cmp), (n))) +#define sk_SSL_COMP_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_SSL_COMP_sk_type(sk), (n)) +#define sk_SSL_COMP_free(sk) OPENSSL_sk_free(ossl_check_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_zero(sk) OPENSSL_sk_zero(ossl_check_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_delete(sk, i) ((SSL_COMP *)OPENSSL_sk_delete(ossl_check_SSL_COMP_sk_type(sk), (i))) +#define sk_SSL_COMP_delete_ptr(sk, ptr) ((SSL_COMP *)OPENSSL_sk_delete_ptr(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr))) +#define sk_SSL_COMP_push(sk, ptr) OPENSSL_sk_push(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) +#define sk_SSL_COMP_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) +#define sk_SSL_COMP_pop(sk) ((SSL_COMP *)OPENSSL_sk_pop(ossl_check_SSL_COMP_sk_type(sk))) +#define sk_SSL_COMP_shift(sk) ((SSL_COMP *)OPENSSL_sk_shift(ossl_check_SSL_COMP_sk_type(sk))) +#define sk_SSL_COMP_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_SSL_COMP_sk_type(sk),ossl_check_SSL_COMP_freefunc_type(freefunc)) +#define sk_SSL_COMP_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr), (idx)) +#define sk_SSL_COMP_set(sk, idx, ptr) ((SSL_COMP *)OPENSSL_sk_set(ossl_check_SSL_COMP_sk_type(sk), (idx), ossl_check_SSL_COMP_type(ptr))) +#define sk_SSL_COMP_find(sk, ptr) OPENSSL_sk_find(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) +#define sk_SSL_COMP_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) +#define sk_SSL_COMP_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr), pnum) +#define sk_SSL_COMP_sort(sk) OPENSSL_sk_sort(ossl_check_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_dup(sk) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_dup(ossl_check_const_SSL_COMP_sk_type(sk))) +#define sk_SSL_COMP_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_deep_copy(ossl_check_const_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_copyfunc_type(copyfunc), ossl_check_SSL_COMP_freefunc_type(freefunc))) +#define sk_SSL_COMP_set_cmp_func(sk, cmp) ((sk_SSL_COMP_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_compfunc_type(cmp))) + + + +# ifdef __cplusplus +} +# endif +#endif diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/asm/include/openssl/conf.h b/deps/openssl/config/archs/darwin64-arm64-cc/asm/include/openssl/conf.h index 44989929f6c84a..38576290bf641b 100644 --- a/deps/openssl/config/archs/darwin64-arm64-cc/asm/include/openssl/conf.h +++ b/deps/openssl/config/archs/darwin64-arm64-cc/asm/include/openssl/conf.h @@ -27,6 +27,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -65,7 +68,7 @@ SKM_DEFINE_STACK_OF_INTERNAL(CONF_VALUE, CONF_VALUE, CONF_VALUE) #define sk_CONF_VALUE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(CONF_VALUE) *)OPENSSL_sk_deep_copy(ossl_check_const_CONF_VALUE_sk_type(sk), ossl_check_CONF_VALUE_copyfunc_type(copyfunc), ossl_check_CONF_VALUE_freefunc_type(freefunc))) #define sk_CONF_VALUE_set_cmp_func(sk, cmp) ((sk_CONF_VALUE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_CONF_VALUE_sk_type(sk), ossl_check_CONF_VALUE_compfunc_type(cmp))) DEFINE_LHASH_OF_INTERNAL(CONF_VALUE); -#define lh_CONF_VALUE_new(hfn, cmp) ((LHASH_OF(CONF_VALUE) *)OPENSSL_LH_new(ossl_check_CONF_VALUE_lh_hashfunc_type(hfn), ossl_check_CONF_VALUE_lh_compfunc_type(cmp))) +#define lh_CONF_VALUE_new(hfn, cmp) ((LHASH_OF(CONF_VALUE) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new(ossl_check_CONF_VALUE_lh_hashfunc_type(hfn), ossl_check_CONF_VALUE_lh_compfunc_type(cmp)), lh_CONF_VALUE_hash_thunk, lh_CONF_VALUE_comp_thunk, lh_CONF_VALUE_doall_thunk, lh_CONF_VALUE_doall_arg_thunk)) #define lh_CONF_VALUE_free(lh) OPENSSL_LH_free(ossl_check_CONF_VALUE_lh_type(lh)) #define lh_CONF_VALUE_flush(lh) OPENSSL_LH_flush(ossl_check_CONF_VALUE_lh_type(lh)) #define lh_CONF_VALUE_insert(lh, ptr) ((CONF_VALUE *)OPENSSL_LH_insert(ossl_check_CONF_VALUE_lh_type(lh), ossl_check_CONF_VALUE_lh_plain_type(ptr))) diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/asm/include/openssl/configuration.h b/deps/openssl/config/archs/darwin64-arm64-cc/asm/include/openssl/configuration.h index 0834be2fa3df77..b0ae5de064cedb 100644 --- a/deps/openssl/config/archs/darwin64-arm64-cc/asm/include/openssl/configuration.h +++ b/deps/openssl/config/archs/darwin64-arm64-cc/asm/include/openssl/configuration.h @@ -30,7 +30,7 @@ extern "C" { # ifndef OPENSSL_SYS_MACOSX # define OPENSSL_SYS_MACOSX 1 # endif -# define OPENSSL_CONFIGURED_API 30000 +# define OPENSSL_CONFIGURED_API 30500 # ifndef OPENSSL_RAND_SEED_OS # define OPENSSL_RAND_SEED_OS # endif @@ -43,6 +43,12 @@ extern "C" { # ifndef OPENSSL_NO_ASAN # define OPENSSL_NO_ASAN # endif +# ifndef OPENSSL_NO_BROTLI +# define OPENSSL_NO_BROTLI +# endif +# ifndef OPENSSL_NO_BROTLI_DYNAMIC +# define OPENSSL_NO_BROTLI_DYNAMIC +# endif # ifndef OPENSSL_NO_COMP # define OPENSSL_NO_COMP # endif @@ -52,6 +58,9 @@ extern "C" { # ifndef OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE # define OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE # endif +# ifndef OPENSSL_NO_DEMOS +# define OPENSSL_NO_DEMOS +# endif # ifndef OPENSSL_NO_DEVCRYPTOENG # define OPENSSL_NO_DEVCRYPTOENG # endif @@ -64,12 +73,24 @@ extern "C" { # ifndef OPENSSL_NO_EXTERNAL_TESTS # define OPENSSL_NO_EXTERNAL_TESTS # endif +# ifndef OPENSSL_NO_FIPS_JITTER +# define OPENSSL_NO_FIPS_JITTER +# endif # ifndef OPENSSL_NO_FUZZ_AFL # define OPENSSL_NO_FUZZ_AFL # endif # ifndef OPENSSL_NO_FUZZ_LIBFUZZER # define OPENSSL_NO_FUZZ_LIBFUZZER # endif +# ifndef OPENSSL_NO_H3DEMO +# define OPENSSL_NO_H3DEMO +# endif +# ifndef OPENSSL_NO_HQINTEROP +# define OPENSSL_NO_HQINTEROP +# endif +# ifndef OPENSSL_NO_JITTER +# define OPENSSL_NO_JITTER +# endif # ifndef OPENSSL_NO_KTLS # define OPENSSL_NO_KTLS # endif @@ -82,6 +103,9 @@ extern "C" { # ifndef OPENSSL_NO_MSAN # define OPENSSL_NO_MSAN # endif +# ifndef OPENSSL_NO_PIE +# define OPENSSL_NO_PIE +# endif # ifndef OPENSSL_NO_RC5 # define OPENSSL_NO_RC5 # endif @@ -94,6 +118,12 @@ extern "C" { # ifndef OPENSSL_NO_SSL3_METHOD # define OPENSSL_NO_SSL3_METHOD # endif +# ifndef OPENSSL_NO_SSLKEYLOG +# define OPENSSL_NO_SSLKEYLOG +# endif +# ifndef OPENSSL_NO_TFO +# define OPENSSL_NO_TFO +# endif # ifndef OPENSSL_NO_TRACE # define OPENSSL_NO_TRACE # endif @@ -109,6 +139,21 @@ extern "C" { # ifndef OPENSSL_NO_WEAK_SSL_CIPHERS # define OPENSSL_NO_WEAK_SSL_CIPHERS # endif +# ifndef OPENSSL_NO_WINSTORE +# define OPENSSL_NO_WINSTORE +# endif +# ifndef OPENSSL_NO_ZLIB +# define OPENSSL_NO_ZLIB +# endif +# ifndef OPENSSL_NO_ZLIB_DYNAMIC +# define OPENSSL_NO_ZLIB_DYNAMIC +# endif +# ifndef OPENSSL_NO_ZSTD +# define OPENSSL_NO_ZSTD +# endif +# ifndef OPENSSL_NO_ZSTD_DYNAMIC +# define OPENSSL_NO_ZSTD_DYNAMIC +# endif # ifndef OPENSSL_NO_DYNAMIC_ENGINE # define OPENSSL_NO_DYNAMIC_ENGINE # endif @@ -130,6 +175,12 @@ extern "C" { # define RC4_INT unsigned int +# if defined(OPENSSL_NO_COMP) || (defined(OPENSSL_NO_BROTLI) && defined(OPENSSL_NO_ZSTD) && defined(OPENSSL_NO_ZLIB)) +# define OPENSSL_NO_COMP_ALG +# else +# undef OPENSSL_NO_COMP_ALG +# endif + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/asm/include/openssl/core_names.h b/deps/openssl/config/archs/darwin64-arm64-cc/asm/include/openssl/core_names.h new file mode 100644 index 00000000000000..e93e79a52bc910 --- /dev/null +++ b/deps/openssl/config/archs/darwin64-arm64-cc/asm/include/openssl/core_names.h @@ -0,0 +1,575 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from include/openssl/core_names.h.in + * + * Copyright 2019-2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + +#ifndef OPENSSL_CORE_NAMES_H +# define OPENSSL_CORE_NAMES_H +# pragma once + +# ifdef __cplusplus +extern "C" { +# endif + +/* OSSL_CIPHER_PARAM_CTS_MODE Values */ +# define OSSL_CIPHER_CTS_MODE_CS1 "CS1" +# define OSSL_CIPHER_CTS_MODE_CS2 "CS2" +# define OSSL_CIPHER_CTS_MODE_CS3 "CS3" + +/* Known CIPHER names (not a complete list) */ +# define OSSL_CIPHER_NAME_AES_128_GCM_SIV "AES-128-GCM-SIV" +# define OSSL_CIPHER_NAME_AES_192_GCM_SIV "AES-192-GCM-SIV" +# define OSSL_CIPHER_NAME_AES_256_GCM_SIV "AES-256-GCM-SIV" + +/* Known DIGEST names (not a complete list) */ +# define OSSL_DIGEST_NAME_MD5 "MD5" +# define OSSL_DIGEST_NAME_MD5_SHA1 "MD5-SHA1" +# define OSSL_DIGEST_NAME_SHA1 "SHA1" +# define OSSL_DIGEST_NAME_SHA2_224 "SHA2-224" +# define OSSL_DIGEST_NAME_SHA2_256 "SHA2-256" +# define OSSL_DIGEST_NAME_SHA2_256_192 "SHA2-256/192" +# define OSSL_DIGEST_NAME_SHA2_384 "SHA2-384" +# define OSSL_DIGEST_NAME_SHA2_512 "SHA2-512" +# define OSSL_DIGEST_NAME_SHA2_512_224 "SHA2-512/224" +# define OSSL_DIGEST_NAME_SHA2_512_256 "SHA2-512/256" +# define OSSL_DIGEST_NAME_MD2 "MD2" +# define OSSL_DIGEST_NAME_MD4 "MD4" +# define OSSL_DIGEST_NAME_MDC2 "MDC2" +# define OSSL_DIGEST_NAME_RIPEMD160 "RIPEMD160" +# define OSSL_DIGEST_NAME_SHA3_224 "SHA3-224" +# define OSSL_DIGEST_NAME_SHA3_256 "SHA3-256" +# define OSSL_DIGEST_NAME_SHA3_384 "SHA3-384" +# define OSSL_DIGEST_NAME_SHA3_512 "SHA3-512" +# define OSSL_DIGEST_NAME_KECCAK_KMAC128 "KECCAK-KMAC-128" +# define OSSL_DIGEST_NAME_KECCAK_KMAC256 "KECCAK-KMAC-256" +# define OSSL_DIGEST_NAME_SM3 "SM3" + +/* Known MAC names */ +# define OSSL_MAC_NAME_BLAKE2BMAC "BLAKE2BMAC" +# define OSSL_MAC_NAME_BLAKE2SMAC "BLAKE2SMAC" +# define OSSL_MAC_NAME_CMAC "CMAC" +# define OSSL_MAC_NAME_GMAC "GMAC" +# define OSSL_MAC_NAME_HMAC "HMAC" +# define OSSL_MAC_NAME_KMAC128 "KMAC128" +# define OSSL_MAC_NAME_KMAC256 "KMAC256" +# define OSSL_MAC_NAME_POLY1305 "POLY1305" +# define OSSL_MAC_NAME_SIPHASH "SIPHASH" + +/* Known KDF names */ +# define OSSL_KDF_NAME_HKDF "HKDF" +# define OSSL_KDF_NAME_TLS1_3_KDF "TLS13-KDF" +# define OSSL_KDF_NAME_PBKDF1 "PBKDF1" +# define OSSL_KDF_NAME_PBKDF2 "PBKDF2" +# define OSSL_KDF_NAME_SCRYPT "SCRYPT" +# define OSSL_KDF_NAME_SSHKDF "SSHKDF" +# define OSSL_KDF_NAME_SSKDF "SSKDF" +# define OSSL_KDF_NAME_TLS1_PRF "TLS1-PRF" +# define OSSL_KDF_NAME_X942KDF_ASN1 "X942KDF-ASN1" +# define OSSL_KDF_NAME_X942KDF_CONCAT "X942KDF-CONCAT" +# define OSSL_KDF_NAME_X963KDF "X963KDF" +# define OSSL_KDF_NAME_KBKDF "KBKDF" +# define OSSL_KDF_NAME_KRB5KDF "KRB5KDF" +# define OSSL_KDF_NAME_HMACDRBGKDF "HMAC-DRBG-KDF" + +/* RSA padding modes */ +# define OSSL_PKEY_RSA_PAD_MODE_NONE "none" +# define OSSL_PKEY_RSA_PAD_MODE_PKCSV15 "pkcs1" +# define OSSL_PKEY_RSA_PAD_MODE_OAEP "oaep" +# define OSSL_PKEY_RSA_PAD_MODE_X931 "x931" +# define OSSL_PKEY_RSA_PAD_MODE_PSS "pss" + +/* RSA pss padding salt length */ +# define OSSL_PKEY_RSA_PSS_SALT_LEN_DIGEST "digest" +# define OSSL_PKEY_RSA_PSS_SALT_LEN_MAX "max" +# define OSSL_PKEY_RSA_PSS_SALT_LEN_AUTO "auto" +# define OSSL_PKEY_RSA_PSS_SALT_LEN_AUTO_DIGEST_MAX "auto-digestmax" + +/* OSSL_PKEY_PARAM_EC_ENCODING values */ +# define OSSL_PKEY_EC_ENCODING_EXPLICIT "explicit" +# define OSSL_PKEY_EC_ENCODING_GROUP "named_curve" + +# define OSSL_PKEY_EC_POINT_CONVERSION_FORMAT_UNCOMPRESSED "uncompressed" +# define OSSL_PKEY_EC_POINT_CONVERSION_FORMAT_COMPRESSED "compressed" +# define OSSL_PKEY_EC_POINT_CONVERSION_FORMAT_HYBRID "hybrid" + +# define OSSL_PKEY_EC_GROUP_CHECK_DEFAULT "default" +# define OSSL_PKEY_EC_GROUP_CHECK_NAMED "named" +# define OSSL_PKEY_EC_GROUP_CHECK_NAMED_NIST "named-nist" + +/* PROV_SKEY well known key types */ +# define OSSL_SKEY_TYPE_GENERIC "GENERIC-SECRET" +# define OSSL_SKEY_TYPE_AES "AES" + +/* OSSL_KEM_PARAM_OPERATION values */ +#define OSSL_KEM_PARAM_OPERATION_RSASVE "RSASVE" +#define OSSL_KEM_PARAM_OPERATION_DHKEM "DHKEM" + +/* Provider configuration variables */ +#define OSSL_PKEY_RETAIN_SEED "pkey_retain_seed" + +/* Parameter name definitions - generated by util/perl/OpenSSL/paramnames.pm */ +# define OSSL_ALG_PARAM_ALGORITHM_ID "algorithm-id" +# define OSSL_ALG_PARAM_ALGORITHM_ID_PARAMS "algorithm-id-params" +# define OSSL_ALG_PARAM_CIPHER "cipher" +# define OSSL_ALG_PARAM_DIGEST "digest" +# define OSSL_ALG_PARAM_ENGINE "engine" +# define OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR "fips-indicator" +# define OSSL_ALG_PARAM_MAC "mac" +# define OSSL_ALG_PARAM_PROPERTIES "properties" +# define OSSL_ASYM_CIPHER_PARAM_DIGEST OSSL_PKEY_PARAM_DIGEST +# define OSSL_ASYM_CIPHER_PARAM_ENGINE OSSL_PKEY_PARAM_ENGINE +# define OSSL_ASYM_CIPHER_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_ASYM_CIPHER_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_ASYM_CIPHER_PARAM_FIPS_RSA_PKCS15_PAD_DISABLED OSSL_PROV_PARAM_RSA_PKCS15_PAD_DISABLED +# define OSSL_ASYM_CIPHER_PARAM_IMPLICIT_REJECTION "implicit-rejection" +# define OSSL_ASYM_CIPHER_PARAM_MGF1_DIGEST OSSL_PKEY_PARAM_MGF1_DIGEST +# define OSSL_ASYM_CIPHER_PARAM_MGF1_DIGEST_PROPS OSSL_PKEY_PARAM_MGF1_PROPERTIES +# define OSSL_ASYM_CIPHER_PARAM_OAEP_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_ASYM_CIPHER_PARAM_OAEP_DIGEST_PROPS "digest-props" +# define OSSL_ASYM_CIPHER_PARAM_OAEP_LABEL "oaep-label" +# define OSSL_ASYM_CIPHER_PARAM_PAD_MODE OSSL_PKEY_PARAM_PAD_MODE +# define OSSL_ASYM_CIPHER_PARAM_PROPERTIES OSSL_PKEY_PARAM_PROPERTIES +# define OSSL_ASYM_CIPHER_PARAM_TLS_CLIENT_VERSION "tls-client-version" +# define OSSL_ASYM_CIPHER_PARAM_TLS_NEGOTIATED_VERSION "tls-negotiated-version" +# define OSSL_CAPABILITY_TLS_GROUP_ALG "tls-group-alg" +# define OSSL_CAPABILITY_TLS_GROUP_ID "tls-group-id" +# define OSSL_CAPABILITY_TLS_GROUP_IS_KEM "tls-group-is-kem" +# define OSSL_CAPABILITY_TLS_GROUP_MAX_DTLS "tls-max-dtls" +# define OSSL_CAPABILITY_TLS_GROUP_MAX_TLS "tls-max-tls" +# define OSSL_CAPABILITY_TLS_GROUP_MIN_DTLS "tls-min-dtls" +# define OSSL_CAPABILITY_TLS_GROUP_MIN_TLS "tls-min-tls" +# define OSSL_CAPABILITY_TLS_GROUP_NAME "tls-group-name" +# define OSSL_CAPABILITY_TLS_GROUP_NAME_INTERNAL "tls-group-name-internal" +# define OSSL_CAPABILITY_TLS_GROUP_SECURITY_BITS "tls-group-sec-bits" +# define OSSL_CAPABILITY_TLS_SIGALG_CODE_POINT "tls-sigalg-code-point" +# define OSSL_CAPABILITY_TLS_SIGALG_HASH_NAME "tls-sigalg-hash-name" +# define OSSL_CAPABILITY_TLS_SIGALG_HASH_OID "tls-sigalg-hash-oid" +# define OSSL_CAPABILITY_TLS_SIGALG_IANA_NAME "tls-sigalg-iana-name" +# define OSSL_CAPABILITY_TLS_SIGALG_KEYTYPE "tls-sigalg-keytype" +# define OSSL_CAPABILITY_TLS_SIGALG_KEYTYPE_OID "tls-sigalg-keytype-oid" +# define OSSL_CAPABILITY_TLS_SIGALG_MAX_DTLS "tls-max-dtls" +# define OSSL_CAPABILITY_TLS_SIGALG_MAX_TLS "tls-max-tls" +# define OSSL_CAPABILITY_TLS_SIGALG_MIN_DTLS "tls-min-dtls" +# define OSSL_CAPABILITY_TLS_SIGALG_MIN_TLS "tls-min-tls" +# define OSSL_CAPABILITY_TLS_SIGALG_NAME "tls-sigalg-name" +# define OSSL_CAPABILITY_TLS_SIGALG_OID "tls-sigalg-oid" +# define OSSL_CAPABILITY_TLS_SIGALG_SECURITY_BITS "tls-sigalg-sec-bits" +# define OSSL_CAPABILITY_TLS_SIGALG_SIG_NAME "tls-sigalg-sig-name" +# define OSSL_CAPABILITY_TLS_SIGALG_SIG_OID "tls-sigalg-sig-oid" +# define OSSL_CIPHER_PARAM_AEAD "aead" +# define OSSL_CIPHER_PARAM_AEAD_IVLEN OSSL_CIPHER_PARAM_IVLEN +# define OSSL_CIPHER_PARAM_AEAD_IV_GENERATED "iv-generated" +# define OSSL_CIPHER_PARAM_AEAD_MAC_KEY "mackey" +# define OSSL_CIPHER_PARAM_AEAD_TAG "tag" +# define OSSL_CIPHER_PARAM_AEAD_TAGLEN "taglen" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_AAD "tlsaad" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_AAD_PAD "tlsaadpad" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_GET_IV_GEN "tlsivgen" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_IV_FIXED "tlsivfixed" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_SET_IV_INV "tlsivinv" +# define OSSL_CIPHER_PARAM_ALGORITHM_ID OSSL_ALG_PARAM_ALGORITHM_ID +# define OSSL_CIPHER_PARAM_ALGORITHM_ID_PARAMS OSSL_ALG_PARAM_ALGORITHM_ID_PARAMS +# define OSSL_CIPHER_PARAM_ALGORITHM_ID_PARAMS_OLD "alg_id_param" +# define OSSL_CIPHER_PARAM_BLOCK_SIZE "blocksize" +# define OSSL_CIPHER_PARAM_CTS "cts" +# define OSSL_CIPHER_PARAM_CTS_MODE "cts_mode" +# define OSSL_CIPHER_PARAM_CUSTOM_IV "custom-iv" +# define OSSL_CIPHER_PARAM_DECRYPT_ONLY "decrypt-only" +# define OSSL_CIPHER_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_CIPHER_PARAM_FIPS_ENCRYPT_CHECK "encrypt-check" +# define OSSL_CIPHER_PARAM_HAS_RAND_KEY "has-randkey" +# define OSSL_CIPHER_PARAM_IV "iv" +# define OSSL_CIPHER_PARAM_IVLEN "ivlen" +# define OSSL_CIPHER_PARAM_KEYLEN "keylen" +# define OSSL_CIPHER_PARAM_MODE "mode" +# define OSSL_CIPHER_PARAM_NUM "num" +# define OSSL_CIPHER_PARAM_PADDING "padding" +# define OSSL_CIPHER_PARAM_PIPELINE_AEAD_TAG "pipeline-tag" +# define OSSL_CIPHER_PARAM_RANDOM_KEY "randkey" +# define OSSL_CIPHER_PARAM_RC2_KEYBITS "keybits" +# define OSSL_CIPHER_PARAM_ROUNDS "rounds" +# define OSSL_CIPHER_PARAM_SPEED "speed" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK "tls-multi" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD "tls1multi_aad" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD_PACKLEN "tls1multi_aadpacklen" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC "tls1multi_enc" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_IN "tls1multi_encin" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_LEN "tls1multi_enclen" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_INTERLEAVE "tls1multi_interleave" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_BUFSIZE "tls1multi_maxbufsz" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_SEND_FRAGMENT "tls1multi_maxsndfrag" +# define OSSL_CIPHER_PARAM_TLS_MAC "tls-mac" +# define OSSL_CIPHER_PARAM_TLS_MAC_SIZE "tls-mac-size" +# define OSSL_CIPHER_PARAM_TLS_VERSION "tls-version" +# define OSSL_CIPHER_PARAM_UPDATED_IV "updated-iv" +# define OSSL_CIPHER_PARAM_USE_BITS "use-bits" +# define OSSL_CIPHER_PARAM_XTS_STANDARD "xts_standard" +# define OSSL_DECODER_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_DIGEST_PARAM_ALGID_ABSENT "algid-absent" +# define OSSL_DIGEST_PARAM_BLOCK_SIZE "blocksize" +# define OSSL_DIGEST_PARAM_MICALG "micalg" +# define OSSL_DIGEST_PARAM_PAD_TYPE "pad-type" +# define OSSL_DIGEST_PARAM_SIZE "size" +# define OSSL_DIGEST_PARAM_SSL3_MS "ssl3-ms" +# define OSSL_DIGEST_PARAM_XOF "xof" +# define OSSL_DIGEST_PARAM_XOFLEN "xoflen" +# define OSSL_DRBG_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_DRBG_PARAM_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_DRBG_PARAM_ENTROPY_REQUIRED "entropy_required" +# define OSSL_DRBG_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_DRBG_PARAM_FIPS_DIGEST_CHECK OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK +# define OSSL_DRBG_PARAM_MAC OSSL_ALG_PARAM_MAC +# define OSSL_DRBG_PARAM_MAX_ADINLEN "max_adinlen" +# define OSSL_DRBG_PARAM_MAX_ENTROPYLEN "max_entropylen" +# define OSSL_DRBG_PARAM_MAX_LENGTH "maxium_length" +# define OSSL_DRBG_PARAM_MAX_NONCELEN "max_noncelen" +# define OSSL_DRBG_PARAM_MAX_PERSLEN "max_perslen" +# define OSSL_DRBG_PARAM_MIN_ENTROPYLEN "min_entropylen" +# define OSSL_DRBG_PARAM_MIN_LENGTH "minium_length" +# define OSSL_DRBG_PARAM_MIN_NONCELEN "min_noncelen" +# define OSSL_DRBG_PARAM_PREDICTION_RESISTANCE "prediction_resistance" +# define OSSL_DRBG_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_DRBG_PARAM_RANDOM_DATA "random_data" +# define OSSL_DRBG_PARAM_RESEED_COUNTER "reseed_counter" +# define OSSL_DRBG_PARAM_RESEED_REQUESTS "reseed_requests" +# define OSSL_DRBG_PARAM_RESEED_TIME "reseed_time" +# define OSSL_DRBG_PARAM_RESEED_TIME_INTERVAL "reseed_time_interval" +# define OSSL_DRBG_PARAM_SIZE "size" +# define OSSL_DRBG_PARAM_USE_DF "use_derivation_function" +# define OSSL_ENCODER_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_ENCODER_PARAM_ENCRYPT_LEVEL "encrypt-level" +# define OSSL_ENCODER_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_ENCODER_PARAM_SAVE_PARAMETERS "save-parameters" +# define OSSL_EXCHANGE_PARAM_EC_ECDH_COFACTOR_MODE "ecdh-cofactor-mode" +# define OSSL_EXCHANGE_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_EXCHANGE_PARAM_FIPS_DIGEST_CHECK OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK +# define OSSL_EXCHANGE_PARAM_FIPS_ECDH_COFACTOR_CHECK OSSL_PROV_PARAM_ECDH_COFACTOR_CHECK +# define OSSL_EXCHANGE_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_EXCHANGE_PARAM_KDF_DIGEST "kdf-digest" +# define OSSL_EXCHANGE_PARAM_KDF_DIGEST_PROPS "kdf-digest-props" +# define OSSL_EXCHANGE_PARAM_KDF_OUTLEN "kdf-outlen" +# define OSSL_EXCHANGE_PARAM_KDF_TYPE "kdf-type" +# define OSSL_EXCHANGE_PARAM_KDF_UKM "kdf-ukm" +# define OSSL_EXCHANGE_PARAM_PAD "pad" +# define OSSL_GEN_PARAM_ITERATION "iteration" +# define OSSL_GEN_PARAM_POTENTIAL "potential" +# define OSSL_KDF_PARAM_ARGON2_AD "ad" +# define OSSL_KDF_PARAM_ARGON2_LANES "lanes" +# define OSSL_KDF_PARAM_ARGON2_MEMCOST "memcost" +# define OSSL_KDF_PARAM_ARGON2_VERSION "version" +# define OSSL_KDF_PARAM_CEK_ALG "cekalg" +# define OSSL_KDF_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_KDF_PARAM_CONSTANT "constant" +# define OSSL_KDF_PARAM_DATA "data" +# define OSSL_KDF_PARAM_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_KDF_PARAM_EARLY_CLEAN "early_clean" +# define OSSL_KDF_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_KDF_PARAM_FIPS_DIGEST_CHECK OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK +# define OSSL_KDF_PARAM_FIPS_EMS_CHECK "ems_check" +# define OSSL_KDF_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_KDF_PARAM_HMACDRBG_ENTROPY "entropy" +# define OSSL_KDF_PARAM_HMACDRBG_NONCE "nonce" +# define OSSL_KDF_PARAM_INFO "info" +# define OSSL_KDF_PARAM_ITER "iter" +# define OSSL_KDF_PARAM_KBKDF_R "r" +# define OSSL_KDF_PARAM_KBKDF_USE_L "use-l" +# define OSSL_KDF_PARAM_KBKDF_USE_SEPARATOR "use-separator" +# define OSSL_KDF_PARAM_KEY "key" +# define OSSL_KDF_PARAM_LABEL "label" +# define OSSL_KDF_PARAM_MAC OSSL_ALG_PARAM_MAC +# define OSSL_KDF_PARAM_MAC_SIZE "maclen" +# define OSSL_KDF_PARAM_MODE "mode" +# define OSSL_KDF_PARAM_PASSWORD "pass" +# define OSSL_KDF_PARAM_PKCS12_ID "id" +# define OSSL_KDF_PARAM_PKCS5 "pkcs5" +# define OSSL_KDF_PARAM_PREFIX "prefix" +# define OSSL_KDF_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_KDF_PARAM_SALT "salt" +# define OSSL_KDF_PARAM_SCRYPT_MAXMEM "maxmem_bytes" +# define OSSL_KDF_PARAM_SCRYPT_N "n" +# define OSSL_KDF_PARAM_SCRYPT_P "p" +# define OSSL_KDF_PARAM_SCRYPT_R "r" +# define OSSL_KDF_PARAM_SECRET "secret" +# define OSSL_KDF_PARAM_SEED "seed" +# define OSSL_KDF_PARAM_SIZE "size" +# define OSSL_KDF_PARAM_SSHKDF_SESSION_ID "session_id" +# define OSSL_KDF_PARAM_SSHKDF_TYPE "type" +# define OSSL_KDF_PARAM_SSHKDF_XCGHASH "xcghash" +# define OSSL_KDF_PARAM_THREADS "threads" +# define OSSL_KDF_PARAM_UKM "ukm" +# define OSSL_KDF_PARAM_X942_ACVPINFO "acvp-info" +# define OSSL_KDF_PARAM_X942_PARTYUINFO "partyu-info" +# define OSSL_KDF_PARAM_X942_PARTYVINFO "partyv-info" +# define OSSL_KDF_PARAM_X942_SUPP_PRIVINFO "supp-privinfo" +# define OSSL_KDF_PARAM_X942_SUPP_PUBINFO "supp-pubinfo" +# define OSSL_KDF_PARAM_X942_USE_KEYBITS "use-keybits" +# define OSSL_KEM_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_KEM_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_KEM_PARAM_IKME "ikme" +# define OSSL_KEM_PARAM_OPERATION "operation" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_BLOCK_PADDING "block_padding" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_HS_PADDING "hs_padding" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_MAX_EARLY_DATA "max_early_data" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_MAX_FRAG_LEN "max_frag_len" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_MODE "mode" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_OPTIONS "options" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_READ_AHEAD "read_ahead" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_STREAM_MAC "stream_mac" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_TLSTREE "tlstree" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_USE_ETM "use_etm" +# define OSSL_LIBSSL_RECORD_LAYER_READ_BUFFER_LEN "read_buffer_len" +# define OSSL_MAC_PARAM_BLOCK_SIZE "block-size" +# define OSSL_MAC_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_MAC_PARAM_CUSTOM "custom" +# define OSSL_MAC_PARAM_C_ROUNDS "c-rounds" +# define OSSL_MAC_PARAM_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_MAC_PARAM_DIGEST_NOINIT "digest-noinit" +# define OSSL_MAC_PARAM_DIGEST_ONESHOT "digest-oneshot" +# define OSSL_MAC_PARAM_D_ROUNDS "d-rounds" +# define OSSL_MAC_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_MAC_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_MAC_PARAM_FIPS_NO_SHORT_MAC OSSL_PROV_PARAM_NO_SHORT_MAC +# define OSSL_MAC_PARAM_IV "iv" +# define OSSL_MAC_PARAM_KEY "key" +# define OSSL_MAC_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_MAC_PARAM_SALT "salt" +# define OSSL_MAC_PARAM_SIZE "size" +# define OSSL_MAC_PARAM_TLS_DATA_SIZE "tls-data-size" +# define OSSL_MAC_PARAM_XOF "xof" +# define OSSL_OBJECT_PARAM_DATA "data" +# define OSSL_OBJECT_PARAM_DATA_STRUCTURE "data-structure" +# define OSSL_OBJECT_PARAM_DATA_TYPE "data-type" +# define OSSL_OBJECT_PARAM_DESC "desc" +# define OSSL_OBJECT_PARAM_INPUT_TYPE "input-type" +# define OSSL_OBJECT_PARAM_REFERENCE "reference" +# define OSSL_OBJECT_PARAM_TYPE "type" +# define OSSL_PASSPHRASE_PARAM_INFO "info" +# define OSSL_PKEY_PARAM_ALGORITHM_ID OSSL_ALG_PARAM_ALGORITHM_ID +# define OSSL_PKEY_PARAM_ALGORITHM_ID_PARAMS OSSL_ALG_PARAM_ALGORITHM_ID_PARAMS +# define OSSL_PKEY_PARAM_BITS "bits" +# define OSSL_PKEY_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_PKEY_PARAM_DEFAULT_DIGEST "default-digest" +# define OSSL_PKEY_PARAM_DHKEM_IKM "dhkem-ikm" +# define OSSL_PKEY_PARAM_DH_GENERATOR "safeprime-generator" +# define OSSL_PKEY_PARAM_DH_PRIV_LEN "priv_len" +# define OSSL_PKEY_PARAM_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_PKEY_PARAM_DIGEST_SIZE "digest-size" +# define OSSL_PKEY_PARAM_DIST_ID "distid" +# define OSSL_PKEY_PARAM_EC_A "a" +# define OSSL_PKEY_PARAM_EC_B "b" +# define OSSL_PKEY_PARAM_EC_CHAR2_M "m" +# define OSSL_PKEY_PARAM_EC_CHAR2_PP_K1 "k1" +# define OSSL_PKEY_PARAM_EC_CHAR2_PP_K2 "k2" +# define OSSL_PKEY_PARAM_EC_CHAR2_PP_K3 "k3" +# define OSSL_PKEY_PARAM_EC_CHAR2_TP_BASIS "tp" +# define OSSL_PKEY_PARAM_EC_CHAR2_TYPE "basis-type" +# define OSSL_PKEY_PARAM_EC_COFACTOR "cofactor" +# define OSSL_PKEY_PARAM_EC_DECODED_FROM_EXPLICIT_PARAMS "decoded-from-explicit" +# define OSSL_PKEY_PARAM_EC_ENCODING "encoding" +# define OSSL_PKEY_PARAM_EC_FIELD_TYPE "field-type" +# define OSSL_PKEY_PARAM_EC_GENERATOR "generator" +# define OSSL_PKEY_PARAM_EC_GROUP_CHECK_TYPE "group-check" +# define OSSL_PKEY_PARAM_EC_INCLUDE_PUBLIC "include-public" +# define OSSL_PKEY_PARAM_EC_ORDER "order" +# define OSSL_PKEY_PARAM_EC_P "p" +# define OSSL_PKEY_PARAM_EC_POINT_CONVERSION_FORMAT "point-format" +# define OSSL_PKEY_PARAM_EC_PUB_X "qx" +# define OSSL_PKEY_PARAM_EC_PUB_Y "qy" +# define OSSL_PKEY_PARAM_EC_SEED "seed" +# define OSSL_PKEY_PARAM_ENCODED_PUBLIC_KEY "encoded-pub-key" +# define OSSL_PKEY_PARAM_ENGINE OSSL_ALG_PARAM_ENGINE +# define OSSL_PKEY_PARAM_FFC_COFACTOR "j" +# define OSSL_PKEY_PARAM_FFC_DIGEST OSSL_PKEY_PARAM_DIGEST +# define OSSL_PKEY_PARAM_FFC_DIGEST_PROPS OSSL_PKEY_PARAM_PROPERTIES +# define OSSL_PKEY_PARAM_FFC_G "g" +# define OSSL_PKEY_PARAM_FFC_GINDEX "gindex" +# define OSSL_PKEY_PARAM_FFC_H "hindex" +# define OSSL_PKEY_PARAM_FFC_P "p" +# define OSSL_PKEY_PARAM_FFC_PBITS "pbits" +# define OSSL_PKEY_PARAM_FFC_PCOUNTER "pcounter" +# define OSSL_PKEY_PARAM_FFC_Q "q" +# define OSSL_PKEY_PARAM_FFC_QBITS "qbits" +# define OSSL_PKEY_PARAM_FFC_SEED "seed" +# define OSSL_PKEY_PARAM_FFC_TYPE "type" +# define OSSL_PKEY_PARAM_FFC_VALIDATE_G "validate-g" +# define OSSL_PKEY_PARAM_FFC_VALIDATE_LEGACY "validate-legacy" +# define OSSL_PKEY_PARAM_FFC_VALIDATE_PQ "validate-pq" +# define OSSL_PKEY_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK "digest-check" +# define OSSL_PKEY_PARAM_FIPS_KEY_CHECK "key-check" +# define OSSL_PKEY_PARAM_FIPS_SIGN_CHECK "sign-check" +# define OSSL_PKEY_PARAM_GROUP_NAME "group" +# define OSSL_PKEY_PARAM_IMPLICIT_REJECTION "implicit-rejection" +# define OSSL_PKEY_PARAM_MANDATORY_DIGEST "mandatory-digest" +# define OSSL_PKEY_PARAM_MASKGENFUNC "mgf" +# define OSSL_PKEY_PARAM_MAX_SIZE "max-size" +# define OSSL_PKEY_PARAM_MGF1_DIGEST "mgf1-digest" +# define OSSL_PKEY_PARAM_MGF1_PROPERTIES "mgf1-properties" +# define OSSL_PKEY_PARAM_ML_DSA_INPUT_FORMATS "ml-dsa.input_formats" +# define OSSL_PKEY_PARAM_ML_DSA_OUTPUT_FORMATS "ml-dsa.output_formats" +# define OSSL_PKEY_PARAM_ML_DSA_PREFER_SEED "ml-dsa.prefer_seed" +# define OSSL_PKEY_PARAM_ML_DSA_RETAIN_SEED "ml-dsa.retain_seed" +# define OSSL_PKEY_PARAM_ML_DSA_SEED "seed" +# define OSSL_PKEY_PARAM_ML_KEM_IMPORT_PCT_TYPE "ml-kem.import_pct_type" +# define OSSL_PKEY_PARAM_ML_KEM_INPUT_FORMATS "ml-kem.input_formats" +# define OSSL_PKEY_PARAM_ML_KEM_OUTPUT_FORMATS "ml-kem.output_formats" +# define OSSL_PKEY_PARAM_ML_KEM_PREFER_SEED "ml-kem.prefer_seed" +# define OSSL_PKEY_PARAM_ML_KEM_RETAIN_SEED "ml-kem.retain_seed" +# define OSSL_PKEY_PARAM_ML_KEM_SEED "seed" +# define OSSL_PKEY_PARAM_PAD_MODE "pad-mode" +# define OSSL_PKEY_PARAM_PRIV_KEY "priv" +# define OSSL_PKEY_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_PKEY_PARAM_PUB_KEY "pub" +# define OSSL_PKEY_PARAM_RSA_BITS OSSL_PKEY_PARAM_BITS +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT "rsa-coefficient" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT1 "rsa-coefficient1" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT2 "rsa-coefficient2" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT3 "rsa-coefficient3" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT4 "rsa-coefficient4" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT5 "rsa-coefficient5" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT6 "rsa-coefficient6" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT7 "rsa-coefficient7" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT8 "rsa-coefficient8" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT9 "rsa-coefficient9" +# define OSSL_PKEY_PARAM_RSA_D "d" +# define OSSL_PKEY_PARAM_RSA_DERIVE_FROM_PQ "rsa-derive-from-pq" +# define OSSL_PKEY_PARAM_RSA_DIGEST OSSL_PKEY_PARAM_DIGEST +# define OSSL_PKEY_PARAM_RSA_DIGEST_PROPS OSSL_PKEY_PARAM_PROPERTIES +# define OSSL_PKEY_PARAM_RSA_E "e" +# define OSSL_PKEY_PARAM_RSA_EXPONENT "rsa-exponent" +# define OSSL_PKEY_PARAM_RSA_EXPONENT1 "rsa-exponent1" +# define OSSL_PKEY_PARAM_RSA_EXPONENT10 "rsa-exponent10" +# define OSSL_PKEY_PARAM_RSA_EXPONENT2 "rsa-exponent2" +# define OSSL_PKEY_PARAM_RSA_EXPONENT3 "rsa-exponent3" +# define OSSL_PKEY_PARAM_RSA_EXPONENT4 "rsa-exponent4" +# define OSSL_PKEY_PARAM_RSA_EXPONENT5 "rsa-exponent5" +# define OSSL_PKEY_PARAM_RSA_EXPONENT6 "rsa-exponent6" +# define OSSL_PKEY_PARAM_RSA_EXPONENT7 "rsa-exponent7" +# define OSSL_PKEY_PARAM_RSA_EXPONENT8 "rsa-exponent8" +# define OSSL_PKEY_PARAM_RSA_EXPONENT9 "rsa-exponent9" +# define OSSL_PKEY_PARAM_RSA_FACTOR "rsa-factor" +# define OSSL_PKEY_PARAM_RSA_FACTOR1 "rsa-factor1" +# define OSSL_PKEY_PARAM_RSA_FACTOR10 "rsa-factor10" +# define OSSL_PKEY_PARAM_RSA_FACTOR2 "rsa-factor2" +# define OSSL_PKEY_PARAM_RSA_FACTOR3 "rsa-factor3" +# define OSSL_PKEY_PARAM_RSA_FACTOR4 "rsa-factor4" +# define OSSL_PKEY_PARAM_RSA_FACTOR5 "rsa-factor5" +# define OSSL_PKEY_PARAM_RSA_FACTOR6 "rsa-factor6" +# define OSSL_PKEY_PARAM_RSA_FACTOR7 "rsa-factor7" +# define OSSL_PKEY_PARAM_RSA_FACTOR8 "rsa-factor8" +# define OSSL_PKEY_PARAM_RSA_FACTOR9 "rsa-factor9" +# define OSSL_PKEY_PARAM_RSA_MASKGENFUNC OSSL_PKEY_PARAM_MASKGENFUNC +# define OSSL_PKEY_PARAM_RSA_MGF1_DIGEST OSSL_PKEY_PARAM_MGF1_DIGEST +# define OSSL_PKEY_PARAM_RSA_N "n" +# define OSSL_PKEY_PARAM_RSA_PRIMES "primes" +# define OSSL_PKEY_PARAM_RSA_PSS_SALTLEN "saltlen" +# define OSSL_PKEY_PARAM_RSA_TEST_P1 "p1" +# define OSSL_PKEY_PARAM_RSA_TEST_P2 "p2" +# define OSSL_PKEY_PARAM_RSA_TEST_Q1 "q1" +# define OSSL_PKEY_PARAM_RSA_TEST_Q2 "q2" +# define OSSL_PKEY_PARAM_RSA_TEST_XP "xp" +# define OSSL_PKEY_PARAM_RSA_TEST_XP1 "xp1" +# define OSSL_PKEY_PARAM_RSA_TEST_XP2 "xp2" +# define OSSL_PKEY_PARAM_RSA_TEST_XQ "xq" +# define OSSL_PKEY_PARAM_RSA_TEST_XQ1 "xq1" +# define OSSL_PKEY_PARAM_RSA_TEST_XQ2 "xq2" +# define OSSL_PKEY_PARAM_SECURITY_BITS "security-bits" +# define OSSL_PKEY_PARAM_SLH_DSA_SEED "seed" +# define OSSL_PKEY_PARAM_USE_COFACTOR_ECDH OSSL_PKEY_PARAM_USE_COFACTOR_FLAG +# define OSSL_PKEY_PARAM_USE_COFACTOR_FLAG "use-cofactor-flag" +# define OSSL_PROV_PARAM_BUILDINFO "buildinfo" +# define OSSL_PROV_PARAM_CORE_MODULE_FILENAME "module-filename" +# define OSSL_PROV_PARAM_CORE_PROV_NAME "provider-name" +# define OSSL_PROV_PARAM_CORE_VERSION "openssl-version" +# define OSSL_PROV_PARAM_DRBG_TRUNC_DIGEST "drbg-no-trunc-md" +# define OSSL_PROV_PARAM_DSA_SIGN_DISABLED "dsa-sign-disabled" +# define OSSL_PROV_PARAM_ECDH_COFACTOR_CHECK "ecdh-cofactor-check" +# define OSSL_PROV_PARAM_HKDF_DIGEST_CHECK "hkdf-digest-check" +# define OSSL_PROV_PARAM_HKDF_KEY_CHECK "hkdf-key-check" +# define OSSL_PROV_PARAM_HMAC_KEY_CHECK "hmac-key-check" +# define OSSL_PROV_PARAM_KBKDF_KEY_CHECK "kbkdf-key-check" +# define OSSL_PROV_PARAM_KMAC_KEY_CHECK "kmac-key-check" +# define OSSL_PROV_PARAM_NAME "name" +# define OSSL_PROV_PARAM_NO_SHORT_MAC "no-short-mac" +# define OSSL_PROV_PARAM_PBKDF2_LOWER_BOUND_CHECK "pbkdf2-lower-bound-check" +# define OSSL_PROV_PARAM_RSA_PKCS15_PAD_DISABLED "rsa-pkcs15-pad-disabled" +# define OSSL_PROV_PARAM_RSA_PSS_SALTLEN_CHECK "rsa-pss-saltlen-check" +# define OSSL_PROV_PARAM_RSA_SIGN_X931_PAD_DISABLED "rsa-sign-x931-pad-disabled" +# define OSSL_PROV_PARAM_SECURITY_CHECKS "security-checks" +# define OSSL_PROV_PARAM_SELF_TEST_DESC "st-desc" +# define OSSL_PROV_PARAM_SELF_TEST_PHASE "st-phase" +# define OSSL_PROV_PARAM_SELF_TEST_TYPE "st-type" +# define OSSL_PROV_PARAM_SIGNATURE_DIGEST_CHECK "signature-digest-check" +# define OSSL_PROV_PARAM_SSHKDF_DIGEST_CHECK "sshkdf-digest-check" +# define OSSL_PROV_PARAM_SSHKDF_KEY_CHECK "sshkdf-key-check" +# define OSSL_PROV_PARAM_SSKDF_DIGEST_CHECK "sskdf-digest-check" +# define OSSL_PROV_PARAM_SSKDF_KEY_CHECK "sskdf-key-check" +# define OSSL_PROV_PARAM_STATUS "status" +# define OSSL_PROV_PARAM_TDES_ENCRYPT_DISABLED "tdes-encrypt-disabled" +# define OSSL_PROV_PARAM_TLS13_KDF_DIGEST_CHECK "tls13-kdf-digest-check" +# define OSSL_PROV_PARAM_TLS13_KDF_KEY_CHECK "tls13-kdf-key-check" +# define OSSL_PROV_PARAM_TLS1_PRF_DIGEST_CHECK "tls1-prf-digest-check" +# define OSSL_PROV_PARAM_TLS1_PRF_EMS_CHECK "tls1-prf-ems-check" +# define OSSL_PROV_PARAM_TLS1_PRF_KEY_CHECK "tls1-prf-key-check" +# define OSSL_PROV_PARAM_VERSION "version" +# define OSSL_PROV_PARAM_X942KDF_KEY_CHECK "x942kdf-key-check" +# define OSSL_PROV_PARAM_X963KDF_DIGEST_CHECK "x963kdf-digest-check" +# define OSSL_PROV_PARAM_X963KDF_KEY_CHECK "x963kdf-key-check" +# define OSSL_RAND_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_RAND_PARAM_GENERATE "generate" +# define OSSL_RAND_PARAM_MAX_REQUEST "max_request" +# define OSSL_RAND_PARAM_STATE "state" +# define OSSL_RAND_PARAM_STRENGTH "strength" +# define OSSL_RAND_PARAM_TEST_ENTROPY "test_entropy" +# define OSSL_RAND_PARAM_TEST_NONCE "test_nonce" +# define OSSL_SIGNATURE_PARAM_ADD_RANDOM "additional-random" +# define OSSL_SIGNATURE_PARAM_ALGORITHM_ID OSSL_PKEY_PARAM_ALGORITHM_ID +# define OSSL_SIGNATURE_PARAM_ALGORITHM_ID_PARAMS OSSL_PKEY_PARAM_ALGORITHM_ID_PARAMS +# define OSSL_SIGNATURE_PARAM_CONTEXT_STRING "context-string" +# define OSSL_SIGNATURE_PARAM_DETERMINISTIC "deterministic" +# define OSSL_SIGNATURE_PARAM_DIGEST OSSL_PKEY_PARAM_DIGEST +# define OSSL_SIGNATURE_PARAM_DIGEST_SIZE OSSL_PKEY_PARAM_DIGEST_SIZE +# define OSSL_SIGNATURE_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_SIGNATURE_PARAM_FIPS_DIGEST_CHECK OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK +# define OSSL_SIGNATURE_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_SIGNATURE_PARAM_FIPS_RSA_PSS_SALTLEN_CHECK "rsa-pss-saltlen-check" +# define OSSL_SIGNATURE_PARAM_FIPS_SIGN_CHECK OSSL_PKEY_PARAM_FIPS_SIGN_CHECK +# define OSSL_SIGNATURE_PARAM_FIPS_SIGN_X931_PAD_CHECK "sign-x931-pad-check" +# define OSSL_SIGNATURE_PARAM_FIPS_VERIFY_MESSAGE "verify-message" +# define OSSL_SIGNATURE_PARAM_INSTANCE "instance" +# define OSSL_SIGNATURE_PARAM_KAT "kat" +# define OSSL_SIGNATURE_PARAM_MESSAGE_ENCODING "message-encoding" +# define OSSL_SIGNATURE_PARAM_MGF1_DIGEST OSSL_PKEY_PARAM_MGF1_DIGEST +# define OSSL_SIGNATURE_PARAM_MGF1_PROPERTIES OSSL_PKEY_PARAM_MGF1_PROPERTIES +# define OSSL_SIGNATURE_PARAM_MU "mu" +# define OSSL_SIGNATURE_PARAM_NONCE_TYPE "nonce-type" +# define OSSL_SIGNATURE_PARAM_PAD_MODE OSSL_PKEY_PARAM_PAD_MODE +# define OSSL_SIGNATURE_PARAM_PROPERTIES OSSL_PKEY_PARAM_PROPERTIES +# define OSSL_SIGNATURE_PARAM_PSS_SALTLEN "saltlen" +# define OSSL_SIGNATURE_PARAM_SIGNATURE "signature" +# define OSSL_SIGNATURE_PARAM_TEST_ENTROPY "test-entropy" +# define OSSL_SKEY_PARAM_KEY_LENGTH "key-length" +# define OSSL_SKEY_PARAM_RAW_BYTES "raw-bytes" +# define OSSL_STORE_PARAM_ALIAS "alias" +# define OSSL_STORE_PARAM_DIGEST "digest" +# define OSSL_STORE_PARAM_EXPECT "expect" +# define OSSL_STORE_PARAM_FINGERPRINT "fingerprint" +# define OSSL_STORE_PARAM_INPUT_TYPE "input-type" +# define OSSL_STORE_PARAM_ISSUER "name" +# define OSSL_STORE_PARAM_PROPERTIES "properties" +# define OSSL_STORE_PARAM_SERIAL "serial" +# define OSSL_STORE_PARAM_SUBJECT "subject" + +# ifdef __cplusplus +} +# endif + +#endif diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/asm/include/openssl/crmf.h b/deps/openssl/config/archs/darwin64-arm64-cc/asm/include/openssl/crmf.h index 71b747ed33d239..4bf550fd47daa9 100644 --- a/deps/openssl/config/archs/darwin64-arm64-cc/asm/include/openssl/crmf.h +++ b/deps/openssl/config/archs/darwin64-arm64-cc/asm/include/openssl/crmf.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/crmf.h.in * - * Copyright 2007-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2007-2025 The OpenSSL Project Authors. All Rights Reserved. * Copyright Nokia 2007-2019 * Copyright Siemens AG 2015-2019 * @@ -26,6 +26,7 @@ # include # include # include /* for GENERAL_NAME etc. */ +# include /* explicit #includes not strictly needed since implied by the above: */ # include @@ -43,9 +44,12 @@ extern "C" { # define OSSL_CRMF_SUBSEQUENTMESSAGE_ENCRCERT 0 # define OSSL_CRMF_SUBSEQUENTMESSAGE_CHALLENGERESP 1 - typedef struct ossl_crmf_encryptedvalue_st OSSL_CRMF_ENCRYPTEDVALUE; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_ENCRYPTEDVALUE) + +typedef struct ossl_crmf_encryptedkey_st OSSL_CRMF_ENCRYPTEDKEY; +DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_ENCRYPTEDKEY) + typedef struct ossl_crmf_msg_st OSSL_CRMF_MSG; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_MSG) DECLARE_ASN1_DUP_FUNCTION(OSSL_CRMF_MSG) @@ -77,6 +81,36 @@ SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CRMF_MSG, OSSL_CRMF_MSG, OSSL_CRMF_MSG) #define sk_OSSL_CRMF_MSG_set_cmp_func(sk, cmp) ((sk_OSSL_CRMF_MSG_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CRMF_MSG_sk_type(sk), ossl_check_OSSL_CRMF_MSG_compfunc_type(cmp))) typedef struct ossl_crmf_attributetypeandvalue_st OSSL_CRMF_ATTRIBUTETYPEANDVALUE; +void OSSL_CRMF_ATTRIBUTETYPEANDVALUE_free(OSSL_CRMF_ATTRIBUTETYPEANDVALUE *v); +DECLARE_ASN1_DUP_FUNCTION(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CRMF_ATTRIBUTETYPEANDVALUE, OSSL_CRMF_ATTRIBUTETYPEANDVALUE, OSSL_CRMF_ATTRIBUTETYPEANDVALUE) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_value(sk, idx) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_value(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), (idx))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_new(cmp) ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_new(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_compfunc_type(cmp))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_new_null() ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_new_null()) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_new_reserve(cmp, n) ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_compfunc_type(cmp), (n))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), (n)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_free(sk) OPENSSL_sk_free(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_delete(sk, i) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_delete(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), (i))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_delete_ptr(sk, ptr) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_pop(sk) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_pop(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_shift(sk) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_shift(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk),ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_freefunc_type(freefunc)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr), (idx)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_set(sk, idx, ptr) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_set(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), (idx), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr), pnum) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_dup(sk) ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_dup(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_copyfunc_type(copyfunc), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_freefunc_type(freefunc))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_set_cmp_func(sk, cmp) ((sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_compfunc_type(cmp))) + + typedef struct ossl_crmf_pbmparameter_st OSSL_CRMF_PBMPARAMETER; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_PBMPARAMETER) typedef struct ossl_crmf_poposigningkey_st OSSL_CRMF_POPOSIGNINGKEY; @@ -118,6 +152,7 @@ typedef struct ossl_crmf_singlepubinfo_st OSSL_CRMF_SINGLEPUBINFO; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_SINGLEPUBINFO) typedef struct ossl_crmf_certtemplate_st OSSL_CRMF_CERTTEMPLATE; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_CERTTEMPLATE) +DECLARE_ASN1_DUP_FUNCTION(OSSL_CRMF_CERTTEMPLATE) typedef STACK_OF(OSSL_CRMF_MSG) OSSL_CRMF_MSGS; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_MSGS) @@ -198,12 +233,14 @@ int OSSL_CRMF_MSGS_verify_popo(const OSSL_CRMF_MSGS *reqs, int rid, int acceptRAVerified, OSSL_LIB_CTX *libctx, const char *propq); OSSL_CRMF_CERTTEMPLATE *OSSL_CRMF_MSG_get0_tmpl(const OSSL_CRMF_MSG *crm); -const ASN1_INTEGER -*OSSL_CRMF_CERTTEMPLATE_get0_serialNumber(const OSSL_CRMF_CERTTEMPLATE *tmpl); +X509_PUBKEY +*OSSL_CRMF_CERTTEMPLATE_get0_publicKey(const OSSL_CRMF_CERTTEMPLATE *tmpl); const X509_NAME *OSSL_CRMF_CERTTEMPLATE_get0_subject(const OSSL_CRMF_CERTTEMPLATE *tmpl); const X509_NAME *OSSL_CRMF_CERTTEMPLATE_get0_issuer(const OSSL_CRMF_CERTTEMPLATE *tmpl); +const ASN1_INTEGER +*OSSL_CRMF_CERTTEMPLATE_get0_serialNumber(const OSSL_CRMF_CERTTEMPLATE *tmpl); X509_EXTENSIONS *OSSL_CRMF_CERTTEMPLATE_get0_extensions(const OSSL_CRMF_CERTTEMPLATE *tmpl); const X509_NAME @@ -215,10 +252,24 @@ int OSSL_CRMF_CERTTEMPLATE_fill(OSSL_CRMF_CERTTEMPLATE *tmpl, const X509_NAME *subject, const X509_NAME *issuer, const ASN1_INTEGER *serial); -X509 -*OSSL_CRMF_ENCRYPTEDVALUE_get1_encCert(const OSSL_CRMF_ENCRYPTEDVALUE *ecert, - OSSL_LIB_CTX *libctx, const char *propq, - EVP_PKEY *pkey); +X509 *OSSL_CRMF_ENCRYPTEDVALUE_get1_encCert(const OSSL_CRMF_ENCRYPTEDVALUE *ecert, + OSSL_LIB_CTX *libctx, const char *propq, + EVP_PKEY *pkey); +X509 *OSSL_CRMF_ENCRYPTEDKEY_get1_encCert(const OSSL_CRMF_ENCRYPTEDKEY *ecert, + OSSL_LIB_CTX *libctx, const char *propq, + EVP_PKEY *pkey, unsigned int flags); +unsigned char +*OSSL_CRMF_ENCRYPTEDVALUE_decrypt(const OSSL_CRMF_ENCRYPTEDVALUE *enc, + OSSL_LIB_CTX *libctx, const char *propq, + EVP_PKEY *pkey, int *outlen); +EVP_PKEY *OSSL_CRMF_ENCRYPTEDKEY_get1_pkey(const OSSL_CRMF_ENCRYPTEDKEY *encryptedKey, + X509_STORE *ts, STACK_OF(X509) *extra, EVP_PKEY *pkey, + X509 *cert, ASN1_OCTET_STRING *secret, + OSSL_LIB_CTX *libctx, const char *propq); +int OSSL_CRMF_MSG_centralkeygen_requested(const OSSL_CRMF_MSG *crm, const X509_REQ *p10cr); +# ifndef OPENSSL_NO_CMS +OSSL_CRMF_ENCRYPTEDKEY *OSSL_CRMF_ENCRYPTEDKEY_init_envdata(CMS_EnvelopedData *envdata); +# endif # ifdef __cplusplus } diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/asm/include/openssl/crypto.h b/deps/openssl/config/archs/darwin64-arm64-cc/asm/include/openssl/crypto.h index 3f40be6d8c61d5..fd2cfd3e5a9ac4 100644 --- a/deps/openssl/config/archs/darwin64-arm64-cc/asm/include/openssl/crypto.h +++ b/deps/openssl/config/archs/darwin64-arm64-cc/asm/include/openssl/crypto.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/crypto.h.in * - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2024 The OpenSSL Project Authors. All Rights Reserved. * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved * * Licensed under the Apache License 2.0 (the "License"). You may not use @@ -85,9 +85,15 @@ int CRYPTO_THREAD_unlock(CRYPTO_RWLOCK *lock); void CRYPTO_THREAD_lock_free(CRYPTO_RWLOCK *lock); int CRYPTO_atomic_add(int *val, int amount, int *ret, CRYPTO_RWLOCK *lock); +int CRYPTO_atomic_add64(uint64_t *val, uint64_t op, uint64_t *ret, + CRYPTO_RWLOCK *lock); +int CRYPTO_atomic_and(uint64_t *val, uint64_t op, uint64_t *ret, + CRYPTO_RWLOCK *lock); int CRYPTO_atomic_or(uint64_t *val, uint64_t op, uint64_t *ret, CRYPTO_RWLOCK *lock); int CRYPTO_atomic_load(uint64_t *val, uint64_t *ret, CRYPTO_RWLOCK *lock); +int CRYPTO_atomic_load_int(int *val, int *ret, CRYPTO_RWLOCK *lock); +int CRYPTO_atomic_store(uint64_t *dst, uint64_t val, CRYPTO_RWLOCK *lock); /* No longer needed, so this is a no-op */ #define OPENSSL_malloc_init() while(0) continue @@ -96,6 +102,9 @@ int CRYPTO_atomic_load(uint64_t *val, uint64_t *ret, CRYPTO_RWLOCK *lock); CRYPTO_malloc(num, OPENSSL_FILE, OPENSSL_LINE) # define OPENSSL_zalloc(num) \ CRYPTO_zalloc(num, OPENSSL_FILE, OPENSSL_LINE) +# define OPENSSL_aligned_alloc(num, alignment, freeptr) \ + CRYPTO_aligned_alloc(num, alignment, freeptr, \ + OPENSSL_FILE, OPENSSL_LINE) # define OPENSSL_realloc(addr, num) \ CRYPTO_realloc(addr, num, OPENSSL_FILE, OPENSSL_LINE) # define OPENSSL_clear_realloc(addr, old_num, num) \ @@ -124,6 +133,7 @@ int CRYPTO_atomic_load(uint64_t *val, uint64_t *ret, CRYPTO_RWLOCK *lock); size_t OPENSSL_strlcpy(char *dst, const char *src, size_t siz); size_t OPENSSL_strlcat(char *dst, const char *src, size_t siz); size_t OPENSSL_strnlen(const char *str, size_t maxlen); +int OPENSSL_strtoul(const char *str, char **endptr, int base, unsigned long *num); int OPENSSL_buf2hexstr_ex(char *str, size_t str_n, size_t *strlength, const unsigned char *buf, size_t buflen, const char sep); @@ -160,6 +170,7 @@ const char *OpenSSL_version(int type); # define OPENSSL_FULL_VERSION_STRING 7 # define OPENSSL_MODULES_DIR 8 # define OPENSSL_CPU_INFO 9 +# define OPENSSL_WINCTX 10 const char *OPENSSL_info(int type); /* @@ -174,6 +185,7 @@ const char *OPENSSL_info(int type); # define OPENSSL_INFO_LIST_SEPARATOR 1006 # define OPENSSL_INFO_SEED_SOURCE 1007 # define OPENSSL_INFO_CPU_SETTINGS 1008 +# define OPENSSL_INFO_WINDOWS_CONTEXT 1009 int OPENSSL_issetugid(void); @@ -341,11 +353,14 @@ void CRYPTO_get_mem_functions(CRYPTO_malloc_fn *malloc_fn, CRYPTO_realloc_fn *realloc_fn, CRYPTO_free_fn *free_fn); -void *CRYPTO_malloc(size_t num, const char *file, int line); -void *CRYPTO_zalloc(size_t num, const char *file, int line); -void *CRYPTO_memdup(const void *str, size_t siz, const char *file, int line); -char *CRYPTO_strdup(const char *str, const char *file, int line); -char *CRYPTO_strndup(const char *str, size_t s, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_malloc(size_t num, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_zalloc(size_t num, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_aligned_alloc(size_t num, size_t align, + void **freeptr, const char *file, + int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_memdup(const void *str, size_t siz, const char *file, int line); +OSSL_CRYPTO_ALLOC char *CRYPTO_strdup(const char *str, const char *file, int line); +OSSL_CRYPTO_ALLOC char *CRYPTO_strndup(const char *str, size_t s, const char *file, int line); void CRYPTO_free(void *ptr, const char *file, int line); void CRYPTO_clear_free(void *ptr, size_t num, const char *file, int line); void *CRYPTO_realloc(void *addr, size_t num, const char *file, int line); @@ -354,8 +369,8 @@ void *CRYPTO_clear_realloc(void *addr, size_t old_num, size_t num, int CRYPTO_secure_malloc_init(size_t sz, size_t minsize); int CRYPTO_secure_malloc_done(void); -void *CRYPTO_secure_malloc(size_t num, const char *file, int line); -void *CRYPTO_secure_zalloc(size_t num, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_secure_malloc(size_t num, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_secure_zalloc(size_t num, const char *file, int line); void CRYPTO_secure_free(void *ptr, const char *file, int line); void CRYPTO_secure_clear_free(void *ptr, size_t num, const char *file, int line); @@ -376,6 +391,9 @@ void OPENSSL_cleanse(void *ptr, size_t len); # define CRYPTO_MEM_CHECK_ENABLE 0x2 /* Control and mode bit */ # define CRYPTO_MEM_CHECK_DISABLE 0x3 /* Control only */ +/* max allowed length for value of OPENSSL_MALLOC_FAILURES env var. */ +# define CRYPTO_MEM_CHECK_MAX_FS 256 + void CRYPTO_get_alloc_counts(int *mcount, int *rcount, int *fcount); # ifndef OPENSSL_NO_DEPRECATED_3_0 # define OPENSSL_mem_debug_push(info) \ @@ -551,6 +569,13 @@ int OSSL_LIB_CTX_load_config(OSSL_LIB_CTX *ctx, const char *config_file); void OSSL_LIB_CTX_free(OSSL_LIB_CTX *); OSSL_LIB_CTX *OSSL_LIB_CTX_get0_global_default(void); OSSL_LIB_CTX *OSSL_LIB_CTX_set0_default(OSSL_LIB_CTX *libctx); +int OSSL_LIB_CTX_get_conf_diagnostics(OSSL_LIB_CTX *ctx); +void OSSL_LIB_CTX_set_conf_diagnostics(OSSL_LIB_CTX *ctx, int value); + +void OSSL_sleep(uint64_t millis); + + +void *OSSL_LIB_CTX_get_data(OSSL_LIB_CTX *ctx, int index); # ifdef __cplusplus } diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/asm/include/openssl/ct.h b/deps/openssl/config/archs/darwin64-arm64-cc/asm/include/openssl/ct.h index b6dd8c3547710a..e6dd1192a4e0b3 100644 --- a/deps/openssl/config/archs/darwin64-arm64-cc/asm/include/openssl/ct.h +++ b/deps/openssl/config/archs/darwin64-arm64-cc/asm/include/openssl/ct.h @@ -133,7 +133,7 @@ typedef enum { */ CT_POLICY_EVAL_CTX *CT_POLICY_EVAL_CTX_new_ex(OSSL_LIB_CTX *libctx, const char *propq); - + /* * The same as CT_POLICY_EVAL_CTX_new_ex() but the default library * context and property query string is used. diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/asm/include/openssl/err.h b/deps/openssl/config/archs/darwin64-arm64-cc/asm/include/openssl/err.h index 2abf2483488181..daca18e7b757b0 100644 --- a/deps/openssl/config/archs/darwin64-arm64-cc/asm/include/openssl/err.h +++ b/deps/openssl/config/archs/darwin64-arm64-cc/asm/include/openssl/err.h @@ -1,5 +1,5 @@ /* - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -372,7 +372,7 @@ typedef struct ERR_string_data_st { } ERR_STRING_DATA; DEFINE_LHASH_OF_INTERNAL(ERR_STRING_DATA); -#define lh_ERR_STRING_DATA_new(hfn, cmp) ((LHASH_OF(ERR_STRING_DATA) *)OPENSSL_LH_new(ossl_check_ERR_STRING_DATA_lh_hashfunc_type(hfn), ossl_check_ERR_STRING_DATA_lh_compfunc_type(cmp))) +#define lh_ERR_STRING_DATA_new(hfn, cmp) ((LHASH_OF(ERR_STRING_DATA) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new(ossl_check_ERR_STRING_DATA_lh_hashfunc_type(hfn), ossl_check_ERR_STRING_DATA_lh_compfunc_type(cmp)), lh_ERR_STRING_DATA_hash_thunk, lh_ERR_STRING_DATA_comp_thunk, lh_ERR_STRING_DATA_doall_thunk, lh_ERR_STRING_DATA_doall_arg_thunk)) #define lh_ERR_STRING_DATA_free(lh) OPENSSL_LH_free(ossl_check_ERR_STRING_DATA_lh_type(lh)) #define lh_ERR_STRING_DATA_flush(lh) OPENSSL_LH_flush(ossl_check_ERR_STRING_DATA_lh_type(lh)) #define lh_ERR_STRING_DATA_insert(lh, ptr) ((ERR_STRING_DATA *)OPENSSL_LH_insert(ossl_check_ERR_STRING_DATA_lh_type(lh), ossl_check_ERR_STRING_DATA_lh_plain_type(ptr))) @@ -496,6 +496,14 @@ int ERR_get_next_error_library(void); int ERR_set_mark(void); int ERR_pop_to_mark(void); int ERR_clear_last_mark(void); +int ERR_count_to_mark(void); +int ERR_pop(void); + +ERR_STATE *OSSL_ERR_STATE_new(void); +void OSSL_ERR_STATE_save(ERR_STATE *es); +void OSSL_ERR_STATE_save_to_mark(ERR_STATE *es); +void OSSL_ERR_STATE_restore(const ERR_STATE *es); +void OSSL_ERR_STATE_free(ERR_STATE *es); #ifdef __cplusplus } diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/asm/include/openssl/fipskey.h b/deps/openssl/config/archs/darwin64-arm64-cc/asm/include/openssl/fipskey.h index 42ba014b313ba8..929db18c678364 100644 --- a/deps/openssl/config/archs/darwin64-arm64-cc/asm/include/openssl/fipskey.h +++ b/deps/openssl/config/archs/darwin64-arm64-cc/asm/include/openssl/fipskey.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/fipskey.h.in * - * Copyright 2020-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2020-2024 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -29,6 +29,11 @@ extern "C" { */ #define FIPS_KEY_STRING "f4556650ac31d35461610bac4ed81b1a181b2d8a43ea2854cbae22ca74560813" +/* + * The FIPS provider vendor name, as a string. + */ +#define FIPS_VENDOR "OpenSSL FIPS Provider" + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/asm/include/openssl/lhash.h b/deps/openssl/config/archs/darwin64-arm64-cc/asm/include/openssl/lhash.h index 39dd6254acdeb6..62c55b20fd9716 100644 --- a/deps/openssl/config/archs/darwin64-arm64-cc/asm/include/openssl/lhash.h +++ b/deps/openssl/config/archs/darwin64-arm64-cc/asm/include/openssl/lhash.h @@ -1,5 +1,5 @@ /* - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2024 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -24,6 +24,9 @@ # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -31,9 +34,13 @@ extern "C" { typedef struct lhash_node_st OPENSSL_LH_NODE; typedef int (*OPENSSL_LH_COMPFUNC) (const void *, const void *); +typedef int (*OPENSSL_LH_COMPFUNCTHUNK) (const void *, const void *, OPENSSL_LH_COMPFUNC cfn); typedef unsigned long (*OPENSSL_LH_HASHFUNC) (const void *); +typedef unsigned long (*OPENSSL_LH_HASHFUNCTHUNK) (const void *, OPENSSL_LH_HASHFUNC hfn); typedef void (*OPENSSL_LH_DOALL_FUNC) (void *); +typedef void (*OPENSSL_LH_DOALL_FUNC_THUNK) (void *, OPENSSL_LH_DOALL_FUNC doall); typedef void (*OPENSSL_LH_DOALL_FUNCARG) (void *, void *); +typedef void (*OPENSSL_LH_DOALL_FUNCARG_THUNK) (void *, void *, OPENSSL_LH_DOALL_FUNCARG doall); typedef struct lhash_st OPENSSL_LHASH; /* @@ -79,26 +86,40 @@ typedef struct lhash_st OPENSSL_LHASH; int OPENSSL_LH_error(OPENSSL_LHASH *lh); OPENSSL_LHASH *OPENSSL_LH_new(OPENSSL_LH_HASHFUNC h, OPENSSL_LH_COMPFUNC c); +OPENSSL_LHASH *OPENSSL_LH_set_thunks(OPENSSL_LHASH *lh, + OPENSSL_LH_HASHFUNCTHUNK hw, + OPENSSL_LH_COMPFUNCTHUNK cw, + OPENSSL_LH_DOALL_FUNC_THUNK daw, + OPENSSL_LH_DOALL_FUNCARG_THUNK daaw); void OPENSSL_LH_free(OPENSSL_LHASH *lh); void OPENSSL_LH_flush(OPENSSL_LHASH *lh); void *OPENSSL_LH_insert(OPENSSL_LHASH *lh, void *data); void *OPENSSL_LH_delete(OPENSSL_LHASH *lh, const void *data); void *OPENSSL_LH_retrieve(OPENSSL_LHASH *lh, const void *data); void OPENSSL_LH_doall(OPENSSL_LHASH *lh, OPENSSL_LH_DOALL_FUNC func); -void OPENSSL_LH_doall_arg(OPENSSL_LHASH *lh, OPENSSL_LH_DOALL_FUNCARG func, void *arg); +void OPENSSL_LH_doall_arg(OPENSSL_LHASH *lh, + OPENSSL_LH_DOALL_FUNCARG func, void *arg); +void OPENSSL_LH_doall_arg_thunk(OPENSSL_LHASH *lh, + OPENSSL_LH_DOALL_FUNCARG_THUNK daaw, + OPENSSL_LH_DOALL_FUNCARG fn, void *arg); + unsigned long OPENSSL_LH_strhash(const char *c); unsigned long OPENSSL_LH_num_items(const OPENSSL_LHASH *lh); unsigned long OPENSSL_LH_get_down_load(const OPENSSL_LHASH *lh); void OPENSSL_LH_set_down_load(OPENSSL_LHASH *lh, unsigned long down_load); # ifndef OPENSSL_NO_STDIO -void OPENSSL_LH_stats(const OPENSSL_LHASH *lh, FILE *fp); -void OPENSSL_LH_node_stats(const OPENSSL_LHASH *lh, FILE *fp); -void OPENSSL_LH_node_usage_stats(const OPENSSL_LHASH *lh, FILE *fp); +# ifndef OPENSSL_NO_DEPRECATED_3_1 +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_stats(const OPENSSL_LHASH *lh, FILE *fp); +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_node_stats(const OPENSSL_LHASH *lh, FILE *fp); +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_node_usage_stats(const OPENSSL_LHASH *lh, FILE *fp); +# endif +# endif +# ifndef OPENSSL_NO_DEPRECATED_3_1 +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_stats_bio(const OPENSSL_LHASH *lh, BIO *out); +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_node_stats_bio(const OPENSSL_LHASH *lh, BIO *out); +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_node_usage_stats_bio(const OPENSSL_LHASH *lh, BIO *out); # endif -void OPENSSL_LH_stats_bio(const OPENSSL_LHASH *lh, BIO *out); -void OPENSSL_LH_node_stats_bio(const OPENSSL_LHASH *lh, BIO *out); -void OPENSSL_LH_node_usage_stats_bio(const OPENSSL_LHASH *lh, BIO *out); # ifndef OPENSSL_NO_DEPRECATED_1_1_0 # define _LHASH OPENSSL_LHASH @@ -129,110 +150,190 @@ void OPENSSL_LH_node_usage_stats_bio(const OPENSSL_LHASH *lh, BIO *out); /* Helper macro for internal use */ # define DEFINE_LHASH_OF_INTERNAL(type) \ - LHASH_OF(type) { union lh_##type##_dummy { void* d1; unsigned long d2; int d3; } dummy; }; \ + LHASH_OF(type) { \ + union lh_##type##_dummy { void* d1; unsigned long d2; int d3; } dummy; \ + }; \ typedef int (*lh_##type##_compfunc)(const type *a, const type *b); \ typedef unsigned long (*lh_##type##_hashfunc)(const type *a); \ typedef void (*lh_##type##_doallfunc)(type *a); \ - static ossl_unused ossl_inline type *ossl_check_##type##_lh_plain_type(type *ptr) \ + static ossl_inline unsigned long lh_##type##_hash_thunk(const void *data, OPENSSL_LH_HASHFUNC hfn) \ + { \ + unsigned long (*hfn_conv)(const type *) = (unsigned long (*)(const type *))hfn; \ + return hfn_conv((const type *)data); \ + } \ + static ossl_inline int lh_##type##_comp_thunk(const void *da, const void *db, OPENSSL_LH_COMPFUNC cfn) \ + { \ + int (*cfn_conv)(const type *, const type *) = (int (*)(const type *, const type *))cfn; \ + return cfn_conv((const type *)da, (const type *)db); \ + } \ + static ossl_inline void lh_##type##_doall_thunk(void *node, OPENSSL_LH_DOALL_FUNC doall) \ + { \ + void (*doall_conv)(type *) = (void (*)(type *))doall; \ + doall_conv((type *)node); \ + } \ + static ossl_inline void lh_##type##_doall_arg_thunk(void *node, void *arg, OPENSSL_LH_DOALL_FUNCARG doall) \ + { \ + void (*doall_conv)(type *, void *) = (void (*)(type *, void *))doall; \ + doall_conv((type *)node, arg); \ + } \ + static ossl_unused ossl_inline type *\ + ossl_check_##type##_lh_plain_type(type *ptr) \ { \ return ptr; \ } \ - static ossl_unused ossl_inline const type *ossl_check_const_##type##_lh_plain_type(const type *ptr) \ + static ossl_unused ossl_inline const type * \ + ossl_check_const_##type##_lh_plain_type(const type *ptr) \ { \ return ptr; \ } \ - static ossl_unused ossl_inline const OPENSSL_LHASH *ossl_check_const_##type##_lh_type(const LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline const OPENSSL_LHASH * \ + ossl_check_const_##type##_lh_type(const LHASH_OF(type) *lh) \ { \ return (const OPENSSL_LHASH *)lh; \ } \ - static ossl_unused ossl_inline OPENSSL_LHASH *ossl_check_##type##_lh_type(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline OPENSSL_LHASH * \ + ossl_check_##type##_lh_type(LHASH_OF(type) *lh) \ { \ return (OPENSSL_LHASH *)lh; \ } \ - static ossl_unused ossl_inline OPENSSL_LH_COMPFUNC ossl_check_##type##_lh_compfunc_type(lh_##type##_compfunc cmp) \ + static ossl_unused ossl_inline OPENSSL_LH_COMPFUNC \ + ossl_check_##type##_lh_compfunc_type(lh_##type##_compfunc cmp) \ { \ return (OPENSSL_LH_COMPFUNC)cmp; \ } \ - static ossl_unused ossl_inline OPENSSL_LH_HASHFUNC ossl_check_##type##_lh_hashfunc_type(lh_##type##_hashfunc hfn) \ + static ossl_unused ossl_inline OPENSSL_LH_HASHFUNC \ + ossl_check_##type##_lh_hashfunc_type(lh_##type##_hashfunc hfn) \ { \ return (OPENSSL_LH_HASHFUNC)hfn; \ } \ - static ossl_unused ossl_inline OPENSSL_LH_DOALL_FUNC ossl_check_##type##_lh_doallfunc_type(lh_##type##_doallfunc dfn) \ + static ossl_unused ossl_inline OPENSSL_LH_DOALL_FUNC \ + ossl_check_##type##_lh_doallfunc_type(lh_##type##_doallfunc dfn) \ { \ return (OPENSSL_LH_DOALL_FUNC)dfn; \ } \ LHASH_OF(type) -# define DEFINE_LHASH_OF(type) \ - LHASH_OF(type) { union lh_##type##_dummy { void* d1; unsigned long d2; int d3; } dummy; }; \ - static ossl_unused ossl_inline LHASH_OF(type) *lh_##type##_new(unsigned long (*hfn)(const type *), \ - int (*cfn)(const type *, const type *)) \ +# ifndef OPENSSL_NO_DEPRECATED_3_1 +# define DEFINE_LHASH_OF_DEPRECATED(type) \ + static ossl_unused ossl_inline void \ + lh_##type##_node_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ { \ - return (LHASH_OF(type) *) \ - OPENSSL_LH_new((OPENSSL_LH_HASHFUNC)hfn, (OPENSSL_LH_COMPFUNC)cfn); \ + OPENSSL_LH_node_stats_bio((const OPENSSL_LHASH *)lh, out); \ } \ - static ossl_unused ossl_inline void lh_##type##_free(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline void \ + lh_##type##_node_usage_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + { \ + OPENSSL_LH_node_usage_stats_bio((const OPENSSL_LHASH *)lh, out); \ + } \ + static ossl_unused ossl_inline void \ + lh_##type##_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + { \ + OPENSSL_LH_stats_bio((const OPENSSL_LHASH *)lh, out); \ + } +# else +# define DEFINE_LHASH_OF_DEPRECATED(type) +# endif + +# define DEFINE_LHASH_OF_EX(type) \ + LHASH_OF(type) { \ + union lh_##type##_dummy { void* d1; unsigned long d2; int d3; } dummy; \ + }; \ + static unsigned long \ + lh_##type##_hfn_thunk(const void *data, OPENSSL_LH_HASHFUNC hfn) \ + { \ + unsigned long (*hfn_conv)(const type *) = (unsigned long (*)(const type *))hfn; \ + return hfn_conv((const type *)data); \ + } \ + static int lh_##type##_cfn_thunk(const void *da, const void *db, OPENSSL_LH_COMPFUNC cfn) \ + { \ + int (*cfn_conv)(const type *, const type *) = (int (*)(const type *, const type *))cfn; \ + return cfn_conv((const type *)da, (const type *)db); \ + } \ + static ossl_unused ossl_inline void \ + lh_##type##_free(LHASH_OF(type) *lh) \ { \ OPENSSL_LH_free((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline void lh_##type##_flush(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline void \ + lh_##type##_flush(LHASH_OF(type) *lh) \ { \ OPENSSL_LH_flush((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline type *lh_##type##_insert(LHASH_OF(type) *lh, type *d) \ + static ossl_unused ossl_inline type * \ + lh_##type##_insert(LHASH_OF(type) *lh, type *d) \ { \ return (type *)OPENSSL_LH_insert((OPENSSL_LHASH *)lh, d); \ } \ - static ossl_unused ossl_inline type *lh_##type##_delete(LHASH_OF(type) *lh, const type *d) \ + static ossl_unused ossl_inline type * \ + lh_##type##_delete(LHASH_OF(type) *lh, const type *d) \ { \ return (type *)OPENSSL_LH_delete((OPENSSL_LHASH *)lh, d); \ } \ - static ossl_unused ossl_inline type *lh_##type##_retrieve(LHASH_OF(type) *lh, const type *d) \ + static ossl_unused ossl_inline type * \ + lh_##type##_retrieve(LHASH_OF(type) *lh, const type *d) \ { \ return (type *)OPENSSL_LH_retrieve((OPENSSL_LHASH *)lh, d); \ } \ - static ossl_unused ossl_inline int lh_##type##_error(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline int \ + lh_##type##_error(LHASH_OF(type) *lh) \ { \ return OPENSSL_LH_error((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline unsigned long lh_##type##_num_items(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline unsigned long \ + lh_##type##_num_items(LHASH_OF(type) *lh) \ { \ return OPENSSL_LH_num_items((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline void lh_##type##_node_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + static ossl_unused ossl_inline unsigned long \ + lh_##type##_get_down_load(LHASH_OF(type) *lh) \ { \ - OPENSSL_LH_node_stats_bio((const OPENSSL_LHASH *)lh, out); \ + return OPENSSL_LH_get_down_load((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline void lh_##type##_node_usage_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + static ossl_unused ossl_inline void \ + lh_##type##_set_down_load(LHASH_OF(type) *lh, unsigned long dl) \ { \ - OPENSSL_LH_node_usage_stats_bio((const OPENSSL_LHASH *)lh, out); \ + OPENSSL_LH_set_down_load((OPENSSL_LHASH *)lh, dl); \ } \ - static ossl_unused ossl_inline void lh_##type##_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall_thunk(void *node, OPENSSL_LH_DOALL_FUNC doall) \ { \ - OPENSSL_LH_stats_bio((const OPENSSL_LHASH *)lh, out); \ + void (*doall_conv)(type *) = (void (*)(type *))doall; \ + doall_conv((type *)node); \ } \ - static ossl_unused ossl_inline unsigned long lh_##type##_get_down_load(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall_arg_thunk(void *node, void *arg, OPENSSL_LH_DOALL_FUNCARG doall) \ { \ - return OPENSSL_LH_get_down_load((OPENSSL_LHASH *)lh); \ + void (*doall_conv)(type *, void *) = (void (*)(type *, void *))doall; \ + doall_conv((type *)node, arg); \ } \ - static ossl_unused ossl_inline void lh_##type##_set_down_load(LHASH_OF(type) *lh, unsigned long dl) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall(LHASH_OF(type) *lh, void (*doall)(type *)) \ { \ - OPENSSL_LH_set_down_load((OPENSSL_LHASH *)lh, dl); \ + OPENSSL_LH_doall((OPENSSL_LHASH *)lh, (OPENSSL_LH_DOALL_FUNC)doall); \ } \ - static ossl_unused ossl_inline void lh_##type##_doall(LHASH_OF(type) *lh, \ - void (*doall)(type *)) \ + static ossl_unused ossl_inline LHASH_OF(type) * \ + lh_##type##_new(unsigned long (*hfn)(const type *), \ + int (*cfn)(const type *, const type *)) \ { \ - OPENSSL_LH_doall((OPENSSL_LHASH *)lh, (OPENSSL_LH_DOALL_FUNC)doall); \ + return (LHASH_OF(type) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new((OPENSSL_LH_HASHFUNC)hfn, (OPENSSL_LH_COMPFUNC)cfn), \ + lh_##type##_hfn_thunk, lh_##type##_cfn_thunk, \ + lh_##type##_doall_thunk, \ + lh_##type##_doall_arg_thunk); \ } \ - static ossl_unused ossl_inline void lh_##type##_doall_arg(LHASH_OF(type) *lh, \ - void (*doallarg)(type *, void *), \ - void *arg) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall_arg(LHASH_OF(type) *lh, \ + void (*doallarg)(type *, void *), void *arg) \ { \ OPENSSL_LH_doall_arg((OPENSSL_LHASH *)lh, \ (OPENSSL_LH_DOALL_FUNCARG)doallarg, arg); \ } \ LHASH_OF(type) +# define DEFINE_LHASH_OF(type) \ + DEFINE_LHASH_OF_EX(type); \ + DEFINE_LHASH_OF_DEPRECATED(type) \ + LHASH_OF(type) + #define IMPLEMENT_LHASH_DOALL_ARG_CONST(type, argtype) \ int_implement_lhash_doall(type, argtype, const type) @@ -240,17 +341,26 @@ void OPENSSL_LH_node_usage_stats_bio(const OPENSSL_LHASH *lh, BIO *out); int_implement_lhash_doall(type, argtype, type) #define int_implement_lhash_doall(type, argtype, cbargtype) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall_##argtype##_thunk(void *node, void *arg, OPENSSL_LH_DOALL_FUNCARG fn) \ + { \ + void (*fn_conv)(cbargtype *, argtype *) = (void (*)(cbargtype *, argtype *))fn; \ + fn_conv((cbargtype *)node, (argtype *)arg); \ + } \ static ossl_unused ossl_inline void \ lh_##type##_doall_##argtype(LHASH_OF(type) *lh, \ void (*fn)(cbargtype *, argtype *), \ argtype *arg) \ { \ - OPENSSL_LH_doall_arg((OPENSSL_LHASH *)lh, (OPENSSL_LH_DOALL_FUNCARG)fn, (void *)arg); \ + OPENSSL_LH_doall_arg_thunk((OPENSSL_LHASH *)lh, \ + lh_##type##_doall_##argtype##_thunk, \ + (OPENSSL_LH_DOALL_FUNCARG)fn, \ + (void *)arg); \ } \ LHASH_OF(type) DEFINE_LHASH_OF_INTERNAL(OPENSSL_STRING); -#define lh_OPENSSL_STRING_new(hfn, cmp) ((LHASH_OF(OPENSSL_STRING) *)OPENSSL_LH_new(ossl_check_OPENSSL_STRING_lh_hashfunc_type(hfn), ossl_check_OPENSSL_STRING_lh_compfunc_type(cmp))) +#define lh_OPENSSL_STRING_new(hfn, cmp) ((LHASH_OF(OPENSSL_STRING) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new(ossl_check_OPENSSL_STRING_lh_hashfunc_type(hfn), ossl_check_OPENSSL_STRING_lh_compfunc_type(cmp)), lh_OPENSSL_STRING_hash_thunk, lh_OPENSSL_STRING_comp_thunk, lh_OPENSSL_STRING_doall_thunk, lh_OPENSSL_STRING_doall_arg_thunk)) #define lh_OPENSSL_STRING_free(lh) OPENSSL_LH_free(ossl_check_OPENSSL_STRING_lh_type(lh)) #define lh_OPENSSL_STRING_flush(lh) OPENSSL_LH_flush(ossl_check_OPENSSL_STRING_lh_type(lh)) #define lh_OPENSSL_STRING_insert(lh, ptr) ((OPENSSL_STRING *)OPENSSL_LH_insert(ossl_check_OPENSSL_STRING_lh_type(lh), ossl_check_OPENSSL_STRING_lh_plain_type(ptr))) @@ -265,7 +375,7 @@ DEFINE_LHASH_OF_INTERNAL(OPENSSL_STRING); #define lh_OPENSSL_STRING_set_down_load(lh, dl) OPENSSL_LH_set_down_load(ossl_check_OPENSSL_STRING_lh_type(lh), dl) #define lh_OPENSSL_STRING_doall(lh, dfn) OPENSSL_LH_doall(ossl_check_OPENSSL_STRING_lh_type(lh), ossl_check_OPENSSL_STRING_lh_doallfunc_type(dfn)) DEFINE_LHASH_OF_INTERNAL(OPENSSL_CSTRING); -#define lh_OPENSSL_CSTRING_new(hfn, cmp) ((LHASH_OF(OPENSSL_CSTRING) *)OPENSSL_LH_new(ossl_check_OPENSSL_CSTRING_lh_hashfunc_type(hfn), ossl_check_OPENSSL_CSTRING_lh_compfunc_type(cmp))) +#define lh_OPENSSL_CSTRING_new(hfn, cmp) ((LHASH_OF(OPENSSL_CSTRING) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new(ossl_check_OPENSSL_CSTRING_lh_hashfunc_type(hfn), ossl_check_OPENSSL_CSTRING_lh_compfunc_type(cmp)), lh_OPENSSL_CSTRING_hash_thunk, lh_OPENSSL_CSTRING_comp_thunk, lh_OPENSSL_CSTRING_doall_thunk, lh_OPENSSL_CSTRING_doall_arg_thunk)) #define lh_OPENSSL_CSTRING_free(lh) OPENSSL_LH_free(ossl_check_OPENSSL_CSTRING_lh_type(lh)) #define lh_OPENSSL_CSTRING_flush(lh) OPENSSL_LH_flush(ossl_check_OPENSSL_CSTRING_lh_type(lh)) #define lh_OPENSSL_CSTRING_insert(lh, ptr) ((OPENSSL_CSTRING *)OPENSSL_LH_insert(ossl_check_OPENSSL_CSTRING_lh_type(lh), ossl_check_OPENSSL_CSTRING_lh_plain_type(ptr))) diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/asm/include/openssl/opensslv.h b/deps/openssl/config/archs/darwin64-arm64-cc/asm/include/openssl/opensslv.h index 5fb5bc63056fe0..dd50d89cb9982d 100644 --- a/deps/openssl/config/archs/darwin64-arm64-cc/asm/include/openssl/opensslv.h +++ b/deps/openssl/config/archs/darwin64-arm64-cc/asm/include/openssl/opensslv.h @@ -28,8 +28,8 @@ extern "C" { * These macros express version number MAJOR.MINOR.PATCH exactly */ # define OPENSSL_VERSION_MAJOR 3 -# define OPENSSL_VERSION_MINOR 0 -# define OPENSSL_VERSION_PATCH 17 +# define OPENSSL_VERSION_MINOR 5 +# define OPENSSL_VERSION_PATCH 1 /* * Additional version information @@ -74,8 +74,8 @@ extern "C" { * longer variant with OPENSSL_VERSION_PRE_RELEASE_STR and * OPENSSL_VERSION_BUILD_METADATA_STR appended. */ -# define OPENSSL_VERSION_STR "3.0.17" -# define OPENSSL_FULL_VERSION_STR "3.0.17" +# define OPENSSL_VERSION_STR "3.5.1" +# define OPENSSL_FULL_VERSION_STR "3.5.1" /* * SECTION 3: ADDITIONAL METADATA @@ -88,7 +88,7 @@ extern "C" { * SECTION 4: BACKWARD COMPATIBILITY */ -# define OPENSSL_VERSION_TEXT "OpenSSL 3.0.17 1 Jul 2025" +# define OPENSSL_VERSION_TEXT "OpenSSL 3.5.1 1 Jul 2025" /* Synthesize OPENSSL_VERSION_NUMBER with the layout 0xMNN00PPSL */ # ifdef OPENSSL_VERSION_PRE_RELEASE diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/asm/include/openssl/pkcs12.h b/deps/openssl/config/archs/darwin64-arm64-cc/asm/include/openssl/pkcs12.h index c5e0cab06491ec..0809645dad0bbf 100644 --- a/deps/openssl/config/archs/darwin64-arm64-cc/asm/include/openssl/pkcs12.h +++ b/deps/openssl/config/archs/darwin64-arm64-cc/asm/include/openssl/pkcs12.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/pkcs12.h.in * - * Copyright 1999-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1999-2024 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -25,6 +25,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -41,6 +44,7 @@ extern "C" { # define PKCS12_MAC_KEY_LENGTH 20 +/* The macro is expected to be used only internally. Kept for backwards compatibility. */ # define PKCS12_SALT_LEN 8 /* It's not clear if these are actually needed... */ @@ -130,7 +134,9 @@ int PKCS12_SAFEBAG_get_bag_nid(const PKCS12_SAFEBAG *bag); const ASN1_TYPE *PKCS12_SAFEBAG_get0_bag_obj(const PKCS12_SAFEBAG *bag); const ASN1_OBJECT *PKCS12_SAFEBAG_get0_bag_type(const PKCS12_SAFEBAG *bag); +X509 *PKCS12_SAFEBAG_get1_cert_ex(const PKCS12_SAFEBAG *bag, OSSL_LIB_CTX *libctx, const char *propq); X509 *PKCS12_SAFEBAG_get1_cert(const PKCS12_SAFEBAG *bag); +X509_CRL *PKCS12_SAFEBAG_get1_crl_ex(const PKCS12_SAFEBAG *bag, OSSL_LIB_CTX *libctx, const char *propq); X509_CRL *PKCS12_SAFEBAG_get1_crl(const PKCS12_SAFEBAG *bag); const STACK_OF(PKCS12_SAFEBAG) * PKCS12_SAFEBAG_get0_safes(const PKCS12_SAFEBAG *bag); @@ -218,6 +224,7 @@ ASN1_TYPE *PKCS12_get_attr_gen(const STACK_OF(X509_ATTRIBUTE) *attrs, char *PKCS12_get_friendlyname(PKCS12_SAFEBAG *bag); const STACK_OF(X509_ATTRIBUTE) * PKCS12_SAFEBAG_get0_attrs(const PKCS12_SAFEBAG *bag); +void PKCS12_SAFEBAG_set0_attrs(PKCS12_SAFEBAG *bag, STACK_OF(X509_ATTRIBUTE) *attrs); unsigned char *PKCS12_pbe_crypt(const X509_ALGOR *algor, const char *pass, int passlen, const unsigned char *in, int inlen, @@ -285,6 +292,9 @@ int PKCS12_verify_mac(PKCS12 *p12, const char *pass, int passlen); int PKCS12_set_mac(PKCS12 *p12, const char *pass, int passlen, unsigned char *salt, int saltlen, int iter, const EVP_MD *md_type); +int PKCS12_set_pbmac1_pbkdf2(PKCS12 *p12, const char *pass, int passlen, + unsigned char *salt, int saltlen, int iter, + const EVP_MD *md_type, const char *prf_md_name); int PKCS12_setup_mac(PKCS12 *p12, int iter, unsigned char *salt, int saltlen, const EVP_MD *md_type); unsigned char *OPENSSL_asc2uni(const char *asc, int asclen, @@ -305,6 +315,7 @@ DECLARE_ASN1_ITEM(PKCS12_AUTHSAFES) void PKCS12_PBE_add(void); int PKCS12_parse(PKCS12 *p12, const char *pass, EVP_PKEY **pkey, X509 **cert, STACK_OF(X509) **ca); +typedef int PKCS12_create_cb(PKCS12_SAFEBAG *bag, void *cbarg); PKCS12 *PKCS12_create(const char *pass, const char *name, EVP_PKEY *pkey, X509 *cert, STACK_OF(X509) *ca, int nid_key, int nid_cert, int iter, int mac_iter, int keytype); @@ -312,6 +323,11 @@ PKCS12 *PKCS12_create_ex(const char *pass, const char *name, EVP_PKEY *pkey, X509 *cert, STACK_OF(X509) *ca, int nid_key, int nid_cert, int iter, int mac_iter, int keytype, OSSL_LIB_CTX *ctx, const char *propq); +PKCS12 *PKCS12_create_ex2(const char *pass, const char *name, EVP_PKEY *pkey, + X509 *cert, STACK_OF(X509) *ca, int nid_key, int nid_cert, + int iter, int mac_iter, int keytype, + OSSL_LIB_CTX *ctx, const char *propq, + PKCS12_create_cb *cb, void *cbarg); PKCS12_SAFEBAG *PKCS12_add_cert(STACK_OF(PKCS12_SAFEBAG) **pbags, X509 *cert); PKCS12_SAFEBAG *PKCS12_add_key(STACK_OF(PKCS12_SAFEBAG) **pbags, diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/asm/include/openssl/pkcs7.h b/deps/openssl/config/archs/darwin64-arm64-cc/asm/include/openssl/pkcs7.h index 0ce79bf4fa160e..fa68462aff973b 100644 --- a/deps/openssl/config/archs/darwin64-arm64-cc/asm/include/openssl/pkcs7.h +++ b/deps/openssl/config/archs/darwin64-arm64-cc/asm/include/openssl/pkcs7.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/pkcs7.h.in * - * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -28,6 +28,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -131,8 +134,8 @@ SKM_DEFINE_STACK_OF_INTERNAL(PKCS7_RECIP_INFO, PKCS7_RECIP_INFO, PKCS7_RECIP_INF typedef struct pkcs7_signed_st { ASN1_INTEGER *version; /* version 1 */ STACK_OF(X509_ALGOR) *md_algs; /* md used */ - STACK_OF(X509) *cert; /* [ 0 ] */ - STACK_OF(X509_CRL) *crl; /* [ 1 ] */ + STACK_OF(X509) *cert; /* [ 0 ] */ /* name should be 'certificates' */ + STACK_OF(X509_CRL) *crl; /* [ 1 ] */ /* name should be 'crls' */ STACK_OF(PKCS7_SIGNER_INFO) *signer_info; struct pkcs7_st *contents; } PKCS7_SIGNED; @@ -158,8 +161,8 @@ typedef struct pkcs7_enveloped_st { typedef struct pkcs7_signedandenveloped_st { ASN1_INTEGER *version; /* version 1 */ STACK_OF(X509_ALGOR) *md_algs; /* md used */ - STACK_OF(X509) *cert; /* [ 0 ] */ - STACK_OF(X509_CRL) *crl; /* [ 1 ] */ + STACK_OF(X509) *cert; /* [ 0 ] */ /* name should be 'certificates' */ + STACK_OF(X509_CRL) *crl; /* [ 1 ] */ /* name should be 'crls' */ STACK_OF(PKCS7_SIGNER_INFO) *signer_info; PKCS7_ENC_CONTENT *enc_data; STACK_OF(PKCS7_RECIP_INFO) *recipientinfo; @@ -200,7 +203,7 @@ typedef struct pkcs7_st { /* NID_pkcs7_data */ ASN1_OCTET_STRING *data; /* NID_pkcs7_signed */ - PKCS7_SIGNED *sign; + PKCS7_SIGNED *sign; /* field name 'signed' would clash with C keyword */ /* NID_pkcs7_enveloped */ PKCS7_ENVELOPE *enveloped; /* NID_pkcs7_signedAndEnveloped */ @@ -341,13 +344,13 @@ int PKCS7_SIGNER_INFO_set(PKCS7_SIGNER_INFO *p7i, X509 *x509, EVP_PKEY *pkey, const EVP_MD *dgst); int PKCS7_SIGNER_INFO_sign(PKCS7_SIGNER_INFO *si); int PKCS7_add_signer(PKCS7 *p7, PKCS7_SIGNER_INFO *p7i); -int PKCS7_add_certificate(PKCS7 *p7, X509 *x509); -int PKCS7_add_crl(PKCS7 *p7, X509_CRL *x509); +int PKCS7_add_certificate(PKCS7 *p7, X509 *cert); +int PKCS7_add_crl(PKCS7 *p7, X509_CRL *crl); int PKCS7_content_new(PKCS7 *p7, int nid); int PKCS7_dataVerify(X509_STORE *cert_store, X509_STORE_CTX *ctx, BIO *bio, PKCS7 *p7, PKCS7_SIGNER_INFO *si); int PKCS7_signatureVerify(BIO *bio, PKCS7 *p7, PKCS7_SIGNER_INFO *si, - X509 *x509); + X509 *signer); BIO *PKCS7_dataInit(PKCS7 *p7, BIO *bio); int PKCS7_dataFinal(PKCS7 *p7, BIO *bio); diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/asm/include/openssl/ssl.h b/deps/openssl/config/archs/darwin64-arm64-cc/asm/include/openssl/ssl.h index 3df725c56d6c5e..7e3d89c7ef3dc9 100644 --- a/deps/openssl/config/archs/darwin64-arm64-cc/asm/include/openssl/ssl.h +++ b/deps/openssl/config/archs/darwin64-arm64-cc/asm/include/openssl/ssl.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/ssl.h.in * - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved * Copyright 2005 Nokia. All rights reserved. * @@ -24,6 +24,7 @@ # endif # include +# include # include # include # include @@ -42,6 +43,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -231,10 +235,8 @@ typedef struct ssl_cipher_st SSL_CIPHER; typedef struct ssl_session_st SSL_SESSION; typedef struct tls_sigalgs_st TLS_SIGALGS; typedef struct ssl_conf_ctx_st SSL_CONF_CTX; -typedef struct ssl_comp_st SSL_COMP; STACK_OF(SSL_CIPHER); -STACK_OF(SSL_COMP); /* SRTP protection profiles for use with the use_srtp extension (RFC 5764)*/ typedef struct srtp_protection_profile_st { @@ -278,28 +280,31 @@ typedef int (*tls_session_secret_cb_fn)(SSL *s, void *secret, int *secret_len, /* Extension context codes */ /* This extension is only allowed in TLS */ -#define SSL_EXT_TLS_ONLY 0x0001 +#define SSL_EXT_TLS_ONLY 0x00001 /* This extension is only allowed in DTLS */ -#define SSL_EXT_DTLS_ONLY 0x0002 +#define SSL_EXT_DTLS_ONLY 0x00002 /* Some extensions may be allowed in DTLS but we don't implement them for it */ -#define SSL_EXT_TLS_IMPLEMENTATION_ONLY 0x0004 +#define SSL_EXT_TLS_IMPLEMENTATION_ONLY 0x00004 /* Most extensions are not defined for SSLv3 but EXT_TYPE_renegotiate is */ -#define SSL_EXT_SSL3_ALLOWED 0x0008 +#define SSL_EXT_SSL3_ALLOWED 0x00008 /* Extension is only defined for TLS1.2 and below */ -#define SSL_EXT_TLS1_2_AND_BELOW_ONLY 0x0010 +#define SSL_EXT_TLS1_2_AND_BELOW_ONLY 0x00010 /* Extension is only defined for TLS1.3 and above */ -#define SSL_EXT_TLS1_3_ONLY 0x0020 +#define SSL_EXT_TLS1_3_ONLY 0x00020 /* Ignore this extension during parsing if we are resuming */ -#define SSL_EXT_IGNORE_ON_RESUMPTION 0x0040 -#define SSL_EXT_CLIENT_HELLO 0x0080 +#define SSL_EXT_IGNORE_ON_RESUMPTION 0x00040 +#define SSL_EXT_CLIENT_HELLO 0x00080 /* Really means TLS1.2 or below */ -#define SSL_EXT_TLS1_2_SERVER_HELLO 0x0100 -#define SSL_EXT_TLS1_3_SERVER_HELLO 0x0200 -#define SSL_EXT_TLS1_3_ENCRYPTED_EXTENSIONS 0x0400 -#define SSL_EXT_TLS1_3_HELLO_RETRY_REQUEST 0x0800 -#define SSL_EXT_TLS1_3_CERTIFICATE 0x1000 -#define SSL_EXT_TLS1_3_NEW_SESSION_TICKET 0x2000 -#define SSL_EXT_TLS1_3_CERTIFICATE_REQUEST 0x4000 +#define SSL_EXT_TLS1_2_SERVER_HELLO 0x00100 +#define SSL_EXT_TLS1_3_SERVER_HELLO 0x00200 +#define SSL_EXT_TLS1_3_ENCRYPTED_EXTENSIONS 0x00400 +#define SSL_EXT_TLS1_3_HELLO_RETRY_REQUEST 0x00800 +#define SSL_EXT_TLS1_3_CERTIFICATE 0x01000 +#define SSL_EXT_TLS1_3_NEW_SESSION_TICKET 0x02000 +#define SSL_EXT_TLS1_3_CERTIFICATE_REQUEST 0x04000 +#define SSL_EXT_TLS1_3_CERTIFICATE_COMPRESSION 0x08000 +/* When sending a raw public key in a certificate message */ +#define SSL_EXT_TLS1_3_RAW_PUBLIC_KEY 0x10000 /* Typedefs for handling custom extensions */ @@ -404,7 +409,7 @@ typedef int (*SSL_async_callback_fn)(SSL *s, void *arg); */ # define SSL_OP_CIPHER_SERVER_PREFERENCE SSL_OP_BIT(22) /* - * If set, a server will allow a client to issue a SSLv3.0 version + * If set, a server will allow a client to issue an SSLv3.0 version * number as latest version supported in the premaster secret, even when * TLSv1.0 (version 3.1) was announced in the client hello. Normally * this is forbidden to prevent version rollback attacks. @@ -430,6 +435,19 @@ typedef int (*SSL_async_callback_fn)(SSL *s, void *arg); * interoperability with CryptoPro CSP 3.x */ # define SSL_OP_CRYPTOPRO_TLSEXT_BUG SSL_OP_BIT(31) +/* + * Disable RFC8879 certificate compression + * SSL_OP_NO_TX_CERTIFICATE_COMPRESSION: don't send compressed certificates, + * and ignore the extension when received. + * SSL_OP_NO_RX_CERTIFICATE_COMPRESSION: don't send the extension, and + * subsequently indicating that receiving is not supported + */ +# define SSL_OP_NO_TX_CERTIFICATE_COMPRESSION SSL_OP_BIT(32) +# define SSL_OP_NO_RX_CERTIFICATE_COMPRESSION SSL_OP_BIT(33) + /* Enable KTLS TX zerocopy on Linux */ +# define SSL_OP_ENABLE_KTLS_TX_ZEROCOPY_SENDFILE SSL_OP_BIT(34) + +#define SSL_OP_PREFER_NO_DHE_KEX SSL_OP_BIT(35) /* * Option "collections." @@ -574,6 +592,8 @@ typedef int (*SSL_async_callback_fn)(SSL *s, void *arg); # define CERT_PKEY_CERT_TYPE 0x400 /* Cert chain suitable to Suite B */ # define CERT_PKEY_SUITEB 0x800 +/* Cert pkey valid for raw public key use */ +# define CERT_PKEY_RPK 0x1000 # define SSL_CONF_FLAG_CMDLINE 0x1 # define SSL_CONF_FLAG_FILE 0x2 @@ -965,6 +985,7 @@ uint32_t SSL_get_recv_max_early_data(const SSL *s); # include /* This is mostly sslv3 with a few tweaks */ # include /* Datagram TLS */ # include /* Support for the use_srtp extension */ +# include #ifdef __cplusplus extern "C" { @@ -1000,32 +1021,6 @@ SKM_DEFINE_STACK_OF_INTERNAL(SSL_CIPHER, const SSL_CIPHER, SSL_CIPHER) #define sk_SSL_CIPHER_dup(sk) ((STACK_OF(SSL_CIPHER) *)OPENSSL_sk_dup(ossl_check_const_SSL_CIPHER_sk_type(sk))) #define sk_SSL_CIPHER_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(SSL_CIPHER) *)OPENSSL_sk_deep_copy(ossl_check_const_SSL_CIPHER_sk_type(sk), ossl_check_SSL_CIPHER_copyfunc_type(copyfunc), ossl_check_SSL_CIPHER_freefunc_type(freefunc))) #define sk_SSL_CIPHER_set_cmp_func(sk, cmp) ((sk_SSL_CIPHER_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_SSL_CIPHER_sk_type(sk), ossl_check_SSL_CIPHER_compfunc_type(cmp))) -SKM_DEFINE_STACK_OF_INTERNAL(SSL_COMP, SSL_COMP, SSL_COMP) -#define sk_SSL_COMP_num(sk) OPENSSL_sk_num(ossl_check_const_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_value(sk, idx) ((SSL_COMP *)OPENSSL_sk_value(ossl_check_const_SSL_COMP_sk_type(sk), (idx))) -#define sk_SSL_COMP_new(cmp) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new(ossl_check_SSL_COMP_compfunc_type(cmp))) -#define sk_SSL_COMP_new_null() ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new_null()) -#define sk_SSL_COMP_new_reserve(cmp, n) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new_reserve(ossl_check_SSL_COMP_compfunc_type(cmp), (n))) -#define sk_SSL_COMP_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_SSL_COMP_sk_type(sk), (n)) -#define sk_SSL_COMP_free(sk) OPENSSL_sk_free(ossl_check_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_zero(sk) OPENSSL_sk_zero(ossl_check_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_delete(sk, i) ((SSL_COMP *)OPENSSL_sk_delete(ossl_check_SSL_COMP_sk_type(sk), (i))) -#define sk_SSL_COMP_delete_ptr(sk, ptr) ((SSL_COMP *)OPENSSL_sk_delete_ptr(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr))) -#define sk_SSL_COMP_push(sk, ptr) OPENSSL_sk_push(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) -#define sk_SSL_COMP_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) -#define sk_SSL_COMP_pop(sk) ((SSL_COMP *)OPENSSL_sk_pop(ossl_check_SSL_COMP_sk_type(sk))) -#define sk_SSL_COMP_shift(sk) ((SSL_COMP *)OPENSSL_sk_shift(ossl_check_SSL_COMP_sk_type(sk))) -#define sk_SSL_COMP_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_SSL_COMP_sk_type(sk),ossl_check_SSL_COMP_freefunc_type(freefunc)) -#define sk_SSL_COMP_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr), (idx)) -#define sk_SSL_COMP_set(sk, idx, ptr) ((SSL_COMP *)OPENSSL_sk_set(ossl_check_SSL_COMP_sk_type(sk), (idx), ossl_check_SSL_COMP_type(ptr))) -#define sk_SSL_COMP_find(sk, ptr) OPENSSL_sk_find(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) -#define sk_SSL_COMP_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) -#define sk_SSL_COMP_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr), pnum) -#define sk_SSL_COMP_sort(sk) OPENSSL_sk_sort(ossl_check_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_dup(sk) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_dup(ossl_check_const_SSL_COMP_sk_type(sk))) -#define sk_SSL_COMP_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_deep_copy(ossl_check_const_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_copyfunc_type(copyfunc), ossl_check_SSL_COMP_freefunc_type(freefunc))) -#define sk_SSL_COMP_set_cmp_func(sk, cmp) ((sk_SSL_COMP_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_compfunc_type(cmp))) /* compatibility */ @@ -1066,6 +1061,7 @@ typedef enum { DTLS_ST_CR_HELLO_VERIFY_REQUEST, TLS_ST_CR_SRVR_HELLO, TLS_ST_CR_CERT, + TLS_ST_CR_COMP_CERT, TLS_ST_CR_CERT_STATUS, TLS_ST_CR_KEY_EXCH, TLS_ST_CR_CERT_REQ, @@ -1075,6 +1071,7 @@ typedef enum { TLS_ST_CR_FINISHED, TLS_ST_CW_CLNT_HELLO, TLS_ST_CW_CERT, + TLS_ST_CW_COMP_CERT, TLS_ST_CW_KEY_EXCH, TLS_ST_CW_CERT_VRFY, TLS_ST_CW_CHANGE, @@ -1085,10 +1082,12 @@ typedef enum { DTLS_ST_SW_HELLO_VERIFY_REQUEST, TLS_ST_SW_SRVR_HELLO, TLS_ST_SW_CERT, + TLS_ST_SW_COMP_CERT, TLS_ST_SW_KEY_EXCH, TLS_ST_SW_CERT_REQ, TLS_ST_SW_SRVR_DONE, TLS_ST_SR_CERT, + TLS_ST_SR_COMP_CERT, TLS_ST_SR_KEY_EXCH, TLS_ST_SR_CERT_VRFY, TLS_ST_SR_NEXT_PROTO, @@ -1380,9 +1379,13 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) # define SSL_CTRL_GET_SIGNATURE_NID 132 # define SSL_CTRL_GET_TMP_KEY 133 # define SSL_CTRL_GET_NEGOTIATED_GROUP 134 +# define SSL_CTRL_GET_IANA_GROUPS 135 # define SSL_CTRL_SET_RETRY_VERIFY 136 # define SSL_CTRL_GET_VERIFY_CERT_STORE 137 # define SSL_CTRL_GET_CHAIN_CERT_STORE 138 +# define SSL_CTRL_GET0_IMPLEMENTED_GROUPS 139 +# define SSL_CTRL_GET_SIGNATURE_NAME 140 +# define SSL_CTRL_GET_PEER_SIGNATURE_NAME 141 # define SSL_CERT_SET_FIRST 1 # define SSL_CERT_SET_NEXT 2 # define SSL_CERT_SET_SERVER 3 @@ -1485,10 +1488,15 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) # define SSL_get1_groups(s, glist) \ SSL_ctrl(s,SSL_CTRL_GET_GROUPS,0,(int*)(glist)) +# define SSL_get0_iana_groups(s, plst) \ + SSL_ctrl(s,SSL_CTRL_GET_IANA_GROUPS,0,(uint16_t **)(plst)) # define SSL_CTX_set1_groups(ctx, glist, glistlen) \ SSL_CTX_ctrl(ctx,SSL_CTRL_SET_GROUPS,glistlen,(int *)(glist)) # define SSL_CTX_set1_groups_list(ctx, s) \ SSL_CTX_ctrl(ctx,SSL_CTRL_SET_GROUPS_LIST,0,(char *)(s)) +# define SSL_CTX_get0_implemented_groups(ctx, all, out) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_GET0_IMPLEMENTED_GROUPS, all, \ + (STACK_OF(OPENSSL_CSTRING) *)(out)) # define SSL_set1_groups(s, glist, glistlen) \ SSL_ctrl(s,SSL_CTRL_SET_GROUPS,glistlen,(char *)(glist)) # define SSL_set1_groups_list(s, str) \ @@ -1520,8 +1528,12 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) (char *)(clist)) # define SSL_set1_client_certificate_types(s, clist, clistlen) \ SSL_ctrl(s,SSL_CTRL_SET_CLIENT_CERT_TYPES,clistlen,(char *)(clist)) +# define SSL_get0_signature_name(s, str) \ + SSL_ctrl(s,SSL_CTRL_GET_SIGNATURE_NAME,0,(1?(str):(const char **)NULL)) # define SSL_get_signature_nid(s, pn) \ SSL_ctrl(s,SSL_CTRL_GET_SIGNATURE_NID,0,pn) +# define SSL_get0_peer_signature_name(s, str) \ + SSL_ctrl(s,SSL_CTRL_GET_PEER_SIGNATURE_NAME,0,(1?(str):(const char **)NULL)) # define SSL_get_peer_signature_nid(s, pn) \ SSL_ctrl(s,SSL_CTRL_GET_PEER_SIGNATURE_NID,0,pn) # define SSL_get_peer_tmp_key(s, pk) \ @@ -1549,6 +1561,7 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) # define SSL_get_max_proto_version(s) \ SSL_ctrl(s, SSL_CTRL_GET_MAX_PROTO_VERSION, 0, NULL) +const char *SSL_get0_group_name(SSL *s); const char *SSL_group_to_name(SSL *s, int id); /* Backwards compatibility, original 1.1.0 names */ @@ -1613,7 +1626,11 @@ void SSL_CTX_set1_cert_store(SSL_CTX *, X509_STORE *); __owur int SSL_want(const SSL *s); __owur int SSL_clear(SSL *s); +#ifndef OPENSSL_NO_DEPRECATED_3_4 +OSSL_DEPRECATEDIN_3_4_FOR("not Y2038-safe, replace with SSL_CTX_flush_sessions_ex()") void SSL_CTX_flush_sessions(SSL_CTX *ctx, long tm); +#endif +void SSL_CTX_flush_sessions_ex(SSL_CTX *ctx, time_t tm); __owur const SSL_CIPHER *SSL_get_current_cipher(const SSL *s); __owur const SSL_CIPHER *SSL_get_pending_cipher(const SSL *s); @@ -1725,13 +1742,21 @@ __owur const char *SSL_state_string(const SSL *s); __owur const char *SSL_rstate_string(const SSL *s); __owur const char *SSL_state_string_long(const SSL *s); __owur const char *SSL_rstate_string_long(const SSL *s); + +#ifndef OPENSSL_NO_DEPRECATED_3_4 +OSSL_DEPRECATEDIN_3_4_FOR("not Y2038-safe, replace with SSL_SESSION_get_time_ex()") __owur long SSL_SESSION_get_time(const SSL_SESSION *s); +OSSL_DEPRECATEDIN_3_4_FOR("not Y2038-safe, replace with SSL_SESSION_set_time_ex()") __owur long SSL_SESSION_set_time(SSL_SESSION *s, long t); +#endif __owur long SSL_SESSION_get_timeout(const SSL_SESSION *s); __owur long SSL_SESSION_set_timeout(SSL_SESSION *s, long t); __owur int SSL_SESSION_get_protocol_version(const SSL_SESSION *s); __owur int SSL_SESSION_set_protocol_version(SSL_SESSION *s, int version); +__owur time_t SSL_SESSION_get_time_ex(const SSL_SESSION *s); +__owur time_t SSL_SESSION_set_time_ex(SSL_SESSION *s, time_t t); + __owur const char *SSL_SESSION_get0_hostname(const SSL_SESSION *s); __owur int SSL_SESSION_set1_hostname(SSL_SESSION *s, const char *hostname); void SSL_SESSION_get0_alpn_selected(const SSL_SESSION *s, @@ -1783,6 +1808,9 @@ __owur int SSL_has_matching_session_id(const SSL *s, unsigned int id_len); SSL_SESSION *d2i_SSL_SESSION(SSL_SESSION **a, const unsigned char **pp, long length); +SSL_SESSION *d2i_SSL_SESSION_ex(SSL_SESSION **a, const unsigned char **pp, + long length, OSSL_LIB_CTX *libctx, + const char *propq); # ifdef OPENSSL_X509_H __owur X509 *SSL_get0_peer_certificate(const SSL *s); @@ -1840,6 +1868,8 @@ __owur int SSL_CTX_set_session_id_context(SSL_CTX *ctx, SSL *SSL_new(SSL_CTX *ctx); int SSL_up_ref(SSL *s); int SSL_is_dtls(const SSL *s); +int SSL_is_tls(const SSL *s); +int SSL_is_quic(const SSL *s); __owur int SSL_set_session_id_context(SSL *ssl, const unsigned char *sid_ctx, unsigned int sid_ctx_len); @@ -1848,8 +1878,8 @@ __owur int SSL_set_purpose(SSL *ssl, int purpose); __owur int SSL_CTX_set_trust(SSL_CTX *ctx, int trust); __owur int SSL_set_trust(SSL *ssl, int trust); -__owur int SSL_set1_host(SSL *s, const char *hostname); -__owur int SSL_add1_host(SSL *s, const char *hostname); +__owur int SSL_set1_host(SSL *s, const char *host); +__owur int SSL_add1_host(SSL *s, const char *host); __owur const char *SSL_get0_peername(SSL *s); void SSL_set_hostflags(SSL *s, unsigned int flags); @@ -1924,6 +1954,11 @@ OSSL_DEPRECATEDIN_3_0 __owur char *SSL_get_srp_userinfo(SSL *s); typedef int (*SSL_client_hello_cb_fn) (SSL *s, int *al, void *arg); void SSL_CTX_set_client_hello_cb(SSL_CTX *c, SSL_client_hello_cb_fn cb, void *arg); +typedef int (*SSL_new_pending_conn_cb_fn) (SSL_CTX *ctx, SSL *new_ssl, + void *arg); +void SSL_CTX_set_new_pending_conn_cb(SSL_CTX *c, SSL_new_pending_conn_cb_fn cb, + void *arg); + int SSL_client_hello_isv2(SSL *s); unsigned int SSL_client_hello_get0_legacy_version(SSL *s); size_t SSL_client_hello_get0_random(SSL *s, const unsigned char **out); @@ -1932,6 +1967,8 @@ size_t SSL_client_hello_get0_ciphers(SSL *s, const unsigned char **out); size_t SSL_client_hello_get0_compression_methods(SSL *s, const unsigned char **out); int SSL_client_hello_get1_extensions_present(SSL *s, int **out, size_t *outlen); +int SSL_client_hello_get_extension_order(SSL *s, uint16_t *exts, + size_t *num_exts); int SSL_client_hello_get0_ext(SSL *s, unsigned int type, const unsigned char **out, size_t *outlen); @@ -1978,6 +2015,12 @@ long SSL_callback_ctrl(SSL *, int, void (*)(void)); long SSL_CTX_ctrl(SSL_CTX *ctx, int cmd, long larg, void *parg); long SSL_CTX_callback_ctrl(SSL_CTX *, int, void (*)(void)); +# define SSL_WRITE_FLAG_CONCLUDE (1U << 0) + +__owur int SSL_write_ex2(SSL *s, const void *buf, size_t num, + uint64_t flags, + size_t *written); + # define SSL_EARLY_DATA_NOT_SENT 0 # define SSL_EARLY_DATA_REJECTED 1 # define SSL_EARLY_DATA_ACCEPTED 2 @@ -1986,6 +2029,7 @@ __owur int SSL_get_early_data_status(const SSL *s); __owur int SSL_get_error(const SSL *s, int ret_code); __owur const char *SSL_get_version(const SSL *s); +__owur int SSL_get_handshake_rtt(const SSL *s, uint64_t *rtt); /* This sets the 'default' SSL version that SSL_new() will create */ # ifndef OPENSSL_NO_DEPRECATED_3_0 @@ -2281,6 +2325,8 @@ void SSL_CTX_set_record_padding_callback(SSL_CTX *ctx, void SSL_CTX_set_record_padding_callback_arg(SSL_CTX *ctx, void *arg); void *SSL_CTX_get_record_padding_callback_arg(const SSL_CTX *ctx); int SSL_CTX_set_block_padding(SSL_CTX *ctx, size_t block_size); +int SSL_CTX_set_block_padding_ex(SSL_CTX *ctx, size_t app_block_size, + size_t hs_block_size); int SSL_set_record_padding_callback(SSL *ssl, size_t (*cb) (SSL *ssl, int type, @@ -2288,12 +2334,255 @@ int SSL_set_record_padding_callback(SSL *ssl, void SSL_set_record_padding_callback_arg(SSL *ssl, void *arg); void *SSL_get_record_padding_callback_arg(const SSL *ssl); int SSL_set_block_padding(SSL *ssl, size_t block_size); - +int SSL_set_block_padding_ex(SSL *ssl, size_t app_block_size, + size_t hs_block_size); int SSL_set_num_tickets(SSL *s, size_t num_tickets); size_t SSL_get_num_tickets(const SSL *s); int SSL_CTX_set_num_tickets(SSL_CTX *ctx, size_t num_tickets); size_t SSL_CTX_get_num_tickets(const SSL_CTX *ctx); +/* QUIC support */ +int SSL_handle_events(SSL *s); +__owur int SSL_get_event_timeout(SSL *s, struct timeval *tv, int *is_infinite); +__owur int SSL_get_rpoll_descriptor(SSL *s, BIO_POLL_DESCRIPTOR *desc); +__owur int SSL_get_wpoll_descriptor(SSL *s, BIO_POLL_DESCRIPTOR *desc); +__owur int SSL_net_read_desired(SSL *s); +__owur int SSL_net_write_desired(SSL *s); +__owur int SSL_set_blocking_mode(SSL *s, int blocking); +__owur int SSL_get_blocking_mode(SSL *s); +__owur int SSL_set1_initial_peer_addr(SSL *s, const BIO_ADDR *peer_addr); +__owur SSL *SSL_get0_connection(SSL *s); +__owur int SSL_is_connection(SSL *s); + +__owur int SSL_is_listener(SSL *ssl); +__owur SSL *SSL_get0_listener(SSL *s); +#define SSL_LISTENER_FLAG_NO_VALIDATE (1UL << 1) +__owur SSL *SSL_new_listener(SSL_CTX *ctx, uint64_t flags); +__owur SSL *SSL_new_listener_from(SSL *ssl, uint64_t flags); +__owur SSL *SSL_new_from_listener(SSL *ssl, uint64_t flags); +#define SSL_ACCEPT_CONNECTION_NO_BLOCK (1UL << 0) +__owur SSL *SSL_accept_connection(SSL *ssl, uint64_t flags); +__owur size_t SSL_get_accept_connection_queue_len(SSL *ssl); +__owur int SSL_listen(SSL *ssl); + +__owur int SSL_is_domain(SSL *s); +__owur SSL *SSL_get0_domain(SSL *s); +__owur SSL *SSL_new_domain(SSL_CTX *ctx, uint64_t flags); + +#define SSL_DOMAIN_FLAG_SINGLE_THREAD (1U << 0) +#define SSL_DOMAIN_FLAG_MULTI_THREAD (1U << 1) +#define SSL_DOMAIN_FLAG_THREAD_ASSISTED (1U << 2) +#define SSL_DOMAIN_FLAG_BLOCKING (1U << 3) +#define SSL_DOMAIN_FLAG_LEGACY_BLOCKING (1U << 4) + +__owur int SSL_CTX_set_domain_flags(SSL_CTX *ctx, uint64_t domain_flags); +__owur int SSL_CTX_get_domain_flags(const SSL_CTX *ctx, uint64_t *domain_flags); +__owur int SSL_get_domain_flags(const SSL *ssl, uint64_t *domain_flags); + +#define SSL_STREAM_TYPE_NONE 0 +#define SSL_STREAM_TYPE_READ (1U << 0) +#define SSL_STREAM_TYPE_WRITE (1U << 1) +#define SSL_STREAM_TYPE_BIDI (SSL_STREAM_TYPE_READ | SSL_STREAM_TYPE_WRITE) +__owur int SSL_get_stream_type(SSL *s); + +__owur uint64_t SSL_get_stream_id(SSL *s); +__owur int SSL_is_stream_local(SSL *s); + +#define SSL_DEFAULT_STREAM_MODE_NONE 0 +#define SSL_DEFAULT_STREAM_MODE_AUTO_BIDI 1 +#define SSL_DEFAULT_STREAM_MODE_AUTO_UNI 2 +__owur int SSL_set_default_stream_mode(SSL *s, uint32_t mode); + +#define SSL_STREAM_FLAG_UNI (1U << 0) +#define SSL_STREAM_FLAG_NO_BLOCK (1U << 1) +#define SSL_STREAM_FLAG_ADVANCE (1U << 2) +__owur SSL *SSL_new_stream(SSL *s, uint64_t flags); + +#define SSL_INCOMING_STREAM_POLICY_AUTO 0 +#define SSL_INCOMING_STREAM_POLICY_ACCEPT 1 +#define SSL_INCOMING_STREAM_POLICY_REJECT 2 +__owur int SSL_set_incoming_stream_policy(SSL *s, int policy, uint64_t aec); + +#define SSL_ACCEPT_STREAM_NO_BLOCK (1U << 0) +__owur SSL *SSL_accept_stream(SSL *s, uint64_t flags); +__owur size_t SSL_get_accept_stream_queue_len(SSL *s); + +# ifndef OPENSSL_NO_QUIC +__owur int SSL_inject_net_dgram(SSL *s, const unsigned char *buf, + size_t buf_len, + const BIO_ADDR *peer, + const BIO_ADDR *local); +# endif + +typedef struct ssl_shutdown_ex_args_st { + uint64_t quic_error_code; + const char *quic_reason; +} SSL_SHUTDOWN_EX_ARGS; + +#define SSL_SHUTDOWN_FLAG_RAPID (1U << 0) +#define SSL_SHUTDOWN_FLAG_NO_STREAM_FLUSH (1U << 1) +#define SSL_SHUTDOWN_FLAG_NO_BLOCK (1U << 2) +#define SSL_SHUTDOWN_FLAG_WAIT_PEER (1U << 3) + +__owur int SSL_shutdown_ex(SSL *ssl, uint64_t flags, + const SSL_SHUTDOWN_EX_ARGS *args, + size_t args_len); + +__owur int SSL_stream_conclude(SSL *ssl, uint64_t flags); + +typedef struct ssl_stream_reset_args_st { + uint64_t quic_error_code; +} SSL_STREAM_RESET_ARGS; + +__owur int SSL_stream_reset(SSL *ssl, + const SSL_STREAM_RESET_ARGS *args, + size_t args_len); + +#define SSL_STREAM_STATE_NONE 0 +#define SSL_STREAM_STATE_OK 1 +#define SSL_STREAM_STATE_WRONG_DIR 2 +#define SSL_STREAM_STATE_FINISHED 3 +#define SSL_STREAM_STATE_RESET_LOCAL 4 +#define SSL_STREAM_STATE_RESET_REMOTE 5 +#define SSL_STREAM_STATE_CONN_CLOSED 6 +__owur int SSL_get_stream_read_state(SSL *ssl); +__owur int SSL_get_stream_write_state(SSL *ssl); + +__owur int SSL_get_stream_read_error_code(SSL *ssl, uint64_t *app_error_code); +__owur int SSL_get_stream_write_error_code(SSL *ssl, uint64_t *app_error_code); + +#define SSL_CONN_CLOSE_FLAG_LOCAL (1U << 0) +#define SSL_CONN_CLOSE_FLAG_TRANSPORT (1U << 1) + +typedef struct ssl_conn_close_info_st { + uint64_t error_code, frame_type; + const char *reason; + size_t reason_len; + uint32_t flags; +} SSL_CONN_CLOSE_INFO; + +__owur int SSL_get_conn_close_info(SSL *ssl, + SSL_CONN_CLOSE_INFO *info, + size_t info_len); + +# define SSL_VALUE_CLASS_GENERIC 0 +# define SSL_VALUE_CLASS_FEATURE_REQUEST 1 +# define SSL_VALUE_CLASS_FEATURE_PEER_REQUEST 2 +# define SSL_VALUE_CLASS_FEATURE_NEGOTIATED 3 + +# define SSL_VALUE_NONE 0 +# define SSL_VALUE_QUIC_STREAM_BIDI_LOCAL_AVAIL 1 +# define SSL_VALUE_QUIC_STREAM_BIDI_REMOTE_AVAIL 2 +# define SSL_VALUE_QUIC_STREAM_UNI_LOCAL_AVAIL 3 +# define SSL_VALUE_QUIC_STREAM_UNI_REMOTE_AVAIL 4 +# define SSL_VALUE_QUIC_IDLE_TIMEOUT 5 +# define SSL_VALUE_EVENT_HANDLING_MODE 6 +# define SSL_VALUE_STREAM_WRITE_BUF_SIZE 7 +# define SSL_VALUE_STREAM_WRITE_BUF_USED 8 +# define SSL_VALUE_STREAM_WRITE_BUF_AVAIL 9 + +# define SSL_VALUE_EVENT_HANDLING_MODE_INHERIT 0 +# define SSL_VALUE_EVENT_HANDLING_MODE_IMPLICIT 1 +# define SSL_VALUE_EVENT_HANDLING_MODE_EXPLICIT 2 + +int SSL_get_value_uint(SSL *s, uint32_t class_, uint32_t id, uint64_t *v); +int SSL_set_value_uint(SSL *s, uint32_t class_, uint32_t id, uint64_t v); + +# define SSL_get_generic_value_uint(ssl, id, v) \ + SSL_get_value_uint((ssl), SSL_VALUE_CLASS_GENERIC, (id), (v)) +# define SSL_set_generic_value_uint(ssl, id, v) \ + SSL_set_value_uint((ssl), SSL_VALUE_CLASS_GENERIC, (id), (v)) +# define SSL_get_feature_request_uint(ssl, id, v) \ + SSL_get_value_uint((ssl), SSL_VALUE_CLASS_FEATURE_REQUEST, (id), (v)) +# define SSL_set_feature_request_uint(ssl, id, v) \ + SSL_set_value_uint((ssl), SSL_VALUE_CLASS_FEATURE_REQUEST, (id), (v)) +# define SSL_get_feature_peer_request_uint(ssl, id, v) \ + SSL_get_value_uint((ssl), SSL_VALUE_CLASS_FEATURE_PEER_REQUEST, (id), (v)) +# define SSL_get_feature_negotiated_uint(ssl, id, v) \ + SSL_get_value_uint((ssl), SSL_VALUE_CLASS_FEATURE_NEGOTIATED, (id), (v)) + +# define SSL_get_quic_stream_bidi_local_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_QUIC_STREAM_BIDI_LOCAL_AVAIL, \ + (value)) +# define SSL_get_quic_stream_bidi_remote_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_QUIC_STREAM_BIDI_REMOTE_AVAIL, \ + (value)) +# define SSL_get_quic_stream_uni_local_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_QUIC_STREAM_UNI_LOCAL_AVAIL, \ + (value)) +# define SSL_get_quic_stream_uni_remote_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_QUIC_STREAM_UNI_REMOTE_AVAIL, \ + (value)) + +# define SSL_get_event_handling_mode(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_EVENT_HANDLING_MODE, \ + (value)) +# define SSL_set_event_handling_mode(ssl, value) \ + SSL_set_generic_value_uint((ssl), SSL_VALUE_EVENT_HANDLING_MODE, \ + (value)) + +# define SSL_get_stream_write_buf_size(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_STREAM_WRITE_BUF_SIZE, \ + (value)) +# define SSL_get_stream_write_buf_used(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_STREAM_WRITE_BUF_USED, \ + (value)) +# define SSL_get_stream_write_buf_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_STREAM_WRITE_BUF_AVAIL, \ + (value)) + +# define SSL_POLL_EVENT_NONE 0 + +# define SSL_POLL_EVENT_F (1U << 0) /* F (Failure) */ +# define SSL_POLL_EVENT_EL (1U << 1) /* EL (Exception on Listener) */ +# define SSL_POLL_EVENT_EC (1U << 2) /* EC (Exception on Conn) */ +# define SSL_POLL_EVENT_ECD (1U << 3) /* ECD (Exception on Conn Drained) */ +# define SSL_POLL_EVENT_ER (1U << 4) /* ER (Exception on Read) */ +# define SSL_POLL_EVENT_EW (1U << 5) /* EW (Exception on Write) */ +# define SSL_POLL_EVENT_R (1U << 6) /* R (Readable) */ +# define SSL_POLL_EVENT_W (1U << 7) /* W (Writable) */ +# define SSL_POLL_EVENT_IC (1U << 8) /* IC (Incoming Connection) */ +# define SSL_POLL_EVENT_ISB (1U << 9) /* ISB (Incoming Stream: Bidi) */ +# define SSL_POLL_EVENT_ISU (1U << 10) /* ISU (Incoming Stream: Uni) */ +# define SSL_POLL_EVENT_OSB (1U << 11) /* OSB (Outgoing Stream: Bidi) */ +# define SSL_POLL_EVENT_OSU (1U << 12) /* OSU (Outgoing Stream: Uni) */ + +# define SSL_POLL_EVENT_RW (SSL_POLL_EVENT_R | SSL_POLL_EVENT_W) +# define SSL_POLL_EVENT_RE (SSL_POLL_EVENT_R | SSL_POLL_EVENT_ER) +# define SSL_POLL_EVENT_WE (SSL_POLL_EVENT_W | SSL_POLL_EVENT_EW) +# define SSL_POLL_EVENT_RWE (SSL_POLL_EVENT_RE | SSL_POLL_EVENT_WE) +# define SSL_POLL_EVENT_E (SSL_POLL_EVENT_EL | SSL_POLL_EVENT_EC \ + | SSL_POLL_EVENT_ER | SSL_POLL_EVENT_EW) +# define SSL_POLL_EVENT_IS (SSL_POLL_EVENT_ISB | SSL_POLL_EVENT_ISU) +# define SSL_POLL_EVENT_ISE (SSL_POLL_EVENT_IS | SSL_POLL_EVENT_EC) +# define SSL_POLL_EVENT_I (SSL_POLL_EVENT_IS | SSL_POLL_EVENT_IC) +# define SSL_POLL_EVENT_OS (SSL_POLL_EVENT_OSB | SSL_POLL_EVENT_OSU) +# define SSL_POLL_EVENT_OSE (SSL_POLL_EVENT_OS | SSL_POLL_EVENT_EC) + +typedef struct ssl_poll_item_st { + BIO_POLL_DESCRIPTOR desc; + uint64_t events, revents; +} SSL_POLL_ITEM; + +# define SSL_POLL_FLAG_NO_HANDLE_EVENTS (1U << 0) + +__owur int SSL_poll(SSL_POLL_ITEM *items, + size_t num_items, + size_t stride, + const struct timeval *timeout, + uint64_t flags, + size_t *result_count); + +static ossl_inline ossl_unused BIO_POLL_DESCRIPTOR +SSL_as_poll_descriptor(SSL *s) +{ + BIO_POLL_DESCRIPTOR d; + + d.type = BIO_POLL_DESCRIPTOR_TYPE_SSL; + d.value.ssl = s; + return d; +} + # ifndef OPENSSL_NO_DEPRECATED_1_1_0 # define SSL_cache_hit(s) SSL_session_reused(s) # endif @@ -2593,6 +2882,51 @@ void SSL_set_allow_early_data_cb(SSL *s, const char *OSSL_default_cipher_list(void); const char *OSSL_default_ciphersuites(void); +/* RFC8879 Certificate compression APIs */ + +int SSL_CTX_compress_certs(SSL_CTX *ctx, int alg); +int SSL_compress_certs(SSL *ssl, int alg); + +int SSL_CTX_set1_cert_comp_preference(SSL_CTX *ctx, int *algs, size_t len); +int SSL_set1_cert_comp_preference(SSL *ssl, int *algs, size_t len); + +int SSL_CTX_set1_compressed_cert(SSL_CTX *ctx, int algorithm, unsigned char *comp_data, + size_t comp_length, size_t orig_length); +int SSL_set1_compressed_cert(SSL *ssl, int algorithm, unsigned char *comp_data, + size_t comp_length, size_t orig_length); +size_t SSL_CTX_get1_compressed_cert(SSL_CTX *ctx, int alg, unsigned char **data, size_t *orig_len); +size_t SSL_get1_compressed_cert(SSL *ssl, int alg, unsigned char **data, size_t *orig_len); + +__owur int SSL_add_expected_rpk(SSL *s, EVP_PKEY *rpk); +__owur EVP_PKEY *SSL_get0_peer_rpk(const SSL *s); +__owur EVP_PKEY *SSL_SESSION_get0_peer_rpk(SSL_SESSION *s); +__owur int SSL_get_negotiated_client_cert_type(const SSL *s); +__owur int SSL_get_negotiated_server_cert_type(const SSL *s); + +__owur int SSL_set1_client_cert_type(SSL *s, const unsigned char *val, size_t len); +__owur int SSL_set1_server_cert_type(SSL *s, const unsigned char *val, size_t len); +__owur int SSL_CTX_set1_client_cert_type(SSL_CTX *ctx, const unsigned char *val, size_t len); +__owur int SSL_CTX_set1_server_cert_type(SSL_CTX *ctx, const unsigned char *val, size_t len); +__owur int SSL_get0_client_cert_type(const SSL *s, unsigned char **t, size_t *len); +__owur int SSL_get0_server_cert_type(const SSL *s, unsigned char **t, size_t *len); +__owur int SSL_CTX_get0_client_cert_type(const SSL_CTX *ctx, unsigned char **t, size_t *len); +__owur int SSL_CTX_get0_server_cert_type(const SSL_CTX *s, unsigned char **t, size_t *len); + +/* + * Protection level. For <= TLSv1.2 only "NONE" and "APPLICATION" are used. + */ +# define OSSL_RECORD_PROTECTION_LEVEL_NONE 0 +# define OSSL_RECORD_PROTECTION_LEVEL_EARLY 1 +# define OSSL_RECORD_PROTECTION_LEVEL_HANDSHAKE 2 +# define OSSL_RECORD_PROTECTION_LEVEL_APPLICATION 3 + +int SSL_set_quic_tls_cbs(SSL *s, const OSSL_DISPATCH *qtdis, void *arg); +int SSL_set_quic_tls_transport_params(SSL *s, + const unsigned char *params, + size_t params_len); + +int SSL_set_quic_tls_early_data_enabled(SSL *s, int enabled); + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/asm/include/openssl/x509.h b/deps/openssl/config/archs/darwin64-arm64-cc/asm/include/openssl/x509.h index 1f7755e5b69c75..d013458c226461 100644 --- a/deps/openssl/config/archs/darwin64-arm64-cc/asm/include/openssl/x509.h +++ b/deps/openssl/config/archs/darwin64-arm64-cc/asm/include/openssl/x509.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/x509.h.in * - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2024 The OpenSSL Project Authors. All Rights Reserved. * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved * * Licensed under the Apache License 2.0 (the "License"). You may not use @@ -40,6 +40,9 @@ # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -162,16 +165,24 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_CRL, X509_CRL, X509_CRL) # define X509_FILETYPE_ASN1 2 # define X509_FILETYPE_DEFAULT 3 -# define X509v3_KU_DIGITAL_SIGNATURE 0x0080 -# define X509v3_KU_NON_REPUDIATION 0x0040 -# define X509v3_KU_KEY_ENCIPHERMENT 0x0020 -# define X509v3_KU_DATA_ENCIPHERMENT 0x0010 -# define X509v3_KU_KEY_AGREEMENT 0x0008 -# define X509v3_KU_KEY_CERT_SIGN 0x0004 -# define X509v3_KU_CRL_SIGN 0x0002 -# define X509v3_KU_ENCIPHER_ONLY 0x0001 -# define X509v3_KU_DECIPHER_ONLY 0x8000 -# define X509v3_KU_UNDEF 0xffff +/*- + * : + * The KeyUsage BITSTRING is treated as a little-endian integer, hence bit `0` + * is 0x80, while bit `7` is 0x01 (the LSB of the integer value), bit `8` is + * then the MSB of the second octet, or 0x8000. + */ +# define X509v3_KU_DIGITAL_SIGNATURE 0x0080 /* (0) */ +# define X509v3_KU_NON_REPUDIATION 0x0040 /* (1) */ +# define X509v3_KU_KEY_ENCIPHERMENT 0x0020 /* (2) */ +# define X509v3_KU_DATA_ENCIPHERMENT 0x0010 /* (3) */ +# define X509v3_KU_KEY_AGREEMENT 0x0008 /* (4) */ +# define X509v3_KU_KEY_CERT_SIGN 0x0004 /* (5) */ +# define X509v3_KU_CRL_SIGN 0x0002 /* (6) */ +# define X509v3_KU_ENCIPHER_ONLY 0x0001 /* (7) */ +# define X509v3_KU_DECIPHER_ONLY 0x8000 /* (8) */ +# ifndef OPENSSL_NO_DEPRECATED_3_4 +# define X509v3_KU_UNDEF 0xffff /* vestigial, not used */ +# endif struct X509_algor_st { ASN1_OBJECT *algorithm; @@ -462,7 +473,12 @@ typedef struct PBKDF2PARAM_st { X509_ALGOR *prf; } PBKDF2PARAM; -#ifndef OPENSSL_NO_SCRYPT +typedef struct { + X509_ALGOR *keyDerivationFunc; + X509_ALGOR *messageAuthScheme; +} PBMAC1PARAM; + +# ifndef OPENSSL_NO_SCRYPT typedef struct SCRYPT_PARAMS_st { ASN1_OCTET_STRING *salt; ASN1_INTEGER *costParameter; @@ -470,7 +486,7 @@ typedef struct SCRYPT_PARAMS_st { ASN1_INTEGER *parallelizationParameter; ASN1_INTEGER *keyLength; } SCRYPT_PARAMS; -#endif +# endif #ifdef __cplusplus } @@ -603,6 +619,8 @@ EVP_PKEY *d2i_PrivateKey_ex_fp(FILE *fp, EVP_PKEY **a, OSSL_LIB_CTX *libctx, const char *propq); EVP_PKEY *d2i_PrivateKey_fp(FILE *fp, EVP_PKEY **a); int i2d_PUBKEY_fp(FILE *fp, const EVP_PKEY *pkey); +EVP_PKEY *d2i_PUBKEY_ex_fp(FILE *fp, EVP_PKEY **a, OSSL_LIB_CTX *libctx, + const char *propq); EVP_PKEY *d2i_PUBKEY_fp(FILE *fp, EVP_PKEY **a); # endif @@ -651,6 +669,8 @@ EVP_PKEY *d2i_PrivateKey_ex_bio(BIO *bp, EVP_PKEY **a, OSSL_LIB_CTX *libctx, const char *propq); EVP_PKEY *d2i_PrivateKey_bio(BIO *bp, EVP_PKEY **a); int i2d_PUBKEY_bio(BIO *bp, const EVP_PKEY *pkey); +EVP_PKEY *d2i_PUBKEY_ex_bio(BIO *bp, EVP_PKEY **a, OSSL_LIB_CTX *libctx, + const char *propq); EVP_PKEY *d2i_PUBKEY_bio(BIO *bp, EVP_PKEY **a); DECLARE_ASN1_DUP_FUNCTION(X509) @@ -884,12 +904,12 @@ int X509_REQ_get_signature_nid(const X509_REQ *req); int i2d_re_X509_REQ_tbs(X509_REQ *req, unsigned char **pp); int X509_REQ_set_pubkey(X509_REQ *x, EVP_PKEY *pkey); EVP_PKEY *X509_REQ_get_pubkey(X509_REQ *req); -EVP_PKEY *X509_REQ_get0_pubkey(X509_REQ *req); +EVP_PKEY *X509_REQ_get0_pubkey(const X509_REQ *req); X509_PUBKEY *X509_REQ_get_X509_PUBKEY(X509_REQ *req); int X509_REQ_extension_nid(int nid); int *X509_REQ_get_extension_nids(void); void X509_REQ_set_extension_nids(int *nids); -STACK_OF(X509_EXTENSION) *X509_REQ_get_extensions(X509_REQ *req); +STACK_OF(X509_EXTENSION) *X509_REQ_get_extensions(OSSL_FUTURE_CONST X509_REQ *req); int X509_REQ_add_extensions_nid(X509_REQ *req, const STACK_OF(X509_EXTENSION) *exts, int nid); int X509_REQ_add_extensions(X509_REQ *req, const STACK_OF(X509_EXTENSION) *ext); @@ -950,13 +970,14 @@ X509_REVOKED_get0_extensions(const X509_REVOKED *r); X509_CRL *X509_CRL_diff(X509_CRL *base, X509_CRL *newer, EVP_PKEY *skey, const EVP_MD *md, unsigned int flags); -int X509_REQ_check_private_key(X509_REQ *x509, EVP_PKEY *pkey); +int X509_REQ_check_private_key(const X509_REQ *req, EVP_PKEY *pkey); -int X509_check_private_key(const X509 *x509, const EVP_PKEY *pkey); +int X509_check_private_key(const X509 *cert, const EVP_PKEY *pkey); int X509_chain_check_suiteb(int *perror_depth, X509 *x, STACK_OF(X509) *chain, unsigned long flags); int X509_CRL_check_suiteb(X509_CRL *crl, EVP_PKEY *pk, unsigned long flags); +void OSSL_STACK_OF_X509_free(STACK_OF(X509) *certs); STACK_OF(X509) *X509_chain_up_ref(STACK_OF(X509) *chain); int X509_issuer_and_serial_cmp(const X509 *a, const X509 *b); @@ -1077,6 +1098,8 @@ X509_EXTENSION *X509v3_get_ext(const STACK_OF(X509_EXTENSION) *x, int loc); X509_EXTENSION *X509v3_delete_ext(STACK_OF(X509_EXTENSION) *x, int loc); STACK_OF(X509_EXTENSION) *X509v3_add_ext(STACK_OF(X509_EXTENSION) **x, X509_EXTENSION *ex, int loc); +STACK_OF(X509_EXTENSION) *X509v3_add_extensions(STACK_OF(X509_EXTENSION) **target, + const STACK_OF(X509_EXTENSION) *exts); int X509_get_ext_count(const X509 *x); int X509_get_ext_by_NID(const X509 *x, int nid, int lastpos); @@ -1198,9 +1221,10 @@ X509 *X509_find_by_subject(STACK_OF(X509) *sk, const X509_NAME *name); DECLARE_ASN1_FUNCTIONS(PBEPARAM) DECLARE_ASN1_FUNCTIONS(PBE2PARAM) DECLARE_ASN1_FUNCTIONS(PBKDF2PARAM) -#ifndef OPENSSL_NO_SCRYPT +DECLARE_ASN1_FUNCTIONS(PBMAC1PARAM) +# ifndef OPENSSL_NO_SCRYPT DECLARE_ASN1_FUNCTIONS(SCRYPT_PARAMS) -#endif +# endif int PKCS5_pbe_set0_algor(X509_ALGOR *algor, int alg, int iter, const unsigned char *salt, int saltlen); @@ -1237,6 +1261,7 @@ X509_ALGOR *PKCS5_pbkdf2_set_ex(int iter, unsigned char *salt, int saltlen, int prf_nid, int keylen, OSSL_LIB_CTX *libctx); +PBKDF2PARAM *PBMAC1_get1_pbkdf2_param(const X509_ALGOR *macalg); /* PKCS#8 utilities */ DECLARE_ASN1_FUNCTIONS(PKCS8_PRIV_KEY_INFO) @@ -1262,6 +1287,8 @@ int PKCS8_pkey_add1_attr_by_OBJ(PKCS8_PRIV_KEY_INFO *p8, const ASN1_OBJECT *obj, int type, const unsigned char *bytes, int len); +void X509_PUBKEY_set0_public_key(X509_PUBKEY *pub, + unsigned char *penc, int penclen); int X509_PUBKEY_set0_param(X509_PUBKEY *pub, ASN1_OBJECT *aobj, int ptype, void *pval, unsigned char *penc, int penclen); diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/asm/include/openssl/x509_acert.h b/deps/openssl/config/archs/darwin64-arm64-cc/asm/include/openssl/x509_acert.h new file mode 100644 index 00000000000000..9dde625677f9a9 --- /dev/null +++ b/deps/openssl/config/archs/darwin64-arm64-cc/asm/include/openssl/x509_acert.h @@ -0,0 +1,294 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from include/openssl/x509_acert.h.in + * + * Copyright 2022-2024 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + + +#ifndef OPENSSL_X509_ACERT_H +# define OPENSSL_X509_ACERT_H +# pragma once + +# include +# include +# include + +typedef struct X509_acert_st X509_ACERT; +typedef struct X509_acert_info_st X509_ACERT_INFO; +typedef struct ossl_object_digest_info_st OSSL_OBJECT_DIGEST_INFO; +typedef struct ossl_issuer_serial_st OSSL_ISSUER_SERIAL; +typedef struct X509_acert_issuer_v2form_st X509_ACERT_ISSUER_V2FORM; + +DECLARE_ASN1_FUNCTIONS(X509_ACERT) +DECLARE_ASN1_DUP_FUNCTION(X509_ACERT) +DECLARE_ASN1_ITEM(X509_ACERT_INFO) +DECLARE_ASN1_ALLOC_FUNCTIONS(X509_ACERT_INFO) +DECLARE_ASN1_ALLOC_FUNCTIONS(OSSL_OBJECT_DIGEST_INFO) +DECLARE_ASN1_ALLOC_FUNCTIONS(OSSL_ISSUER_SERIAL) +DECLARE_ASN1_ALLOC_FUNCTIONS(X509_ACERT_ISSUER_V2FORM) + +# ifndef OPENSSL_NO_STDIO +X509_ACERT *d2i_X509_ACERT_fp(FILE *fp, X509_ACERT **acert); +int i2d_X509_ACERT_fp(FILE *fp, const X509_ACERT *acert); +# endif + +DECLARE_PEM_rw(X509_ACERT, X509_ACERT) + +X509_ACERT *d2i_X509_ACERT_bio(BIO *bp, X509_ACERT **acert); +int i2d_X509_ACERT_bio(BIO *bp, const X509_ACERT *acert); + +int X509_ACERT_sign(X509_ACERT *x, EVP_PKEY *pkey, const EVP_MD *md); +int X509_ACERT_sign_ctx(X509_ACERT *x, EVP_MD_CTX *ctx); +int X509_ACERT_verify(X509_ACERT *a, EVP_PKEY *r); + +# define X509_ACERT_VERSION_2 1 + +const GENERAL_NAMES *X509_ACERT_get0_holder_entityName(const X509_ACERT *x); +const OSSL_ISSUER_SERIAL *X509_ACERT_get0_holder_baseCertId(const X509_ACERT *x); +const OSSL_OBJECT_DIGEST_INFO * X509_ACERT_get0_holder_digest(const X509_ACERT *x); +const X509_NAME *X509_ACERT_get0_issuerName(const X509_ACERT *x); +long X509_ACERT_get_version(const X509_ACERT *x); +void X509_ACERT_get0_signature(const X509_ACERT *x, + const ASN1_BIT_STRING **psig, + const X509_ALGOR **palg); +int X509_ACERT_get_signature_nid(const X509_ACERT *x); +const X509_ALGOR *X509_ACERT_get0_info_sigalg(const X509_ACERT *x); +const ASN1_INTEGER *X509_ACERT_get0_serialNumber(const X509_ACERT *x); +const ASN1_TIME *X509_ACERT_get0_notBefore(const X509_ACERT *x); +const ASN1_TIME *X509_ACERT_get0_notAfter(const X509_ACERT *x); +const ASN1_BIT_STRING *X509_ACERT_get0_issuerUID(const X509_ACERT *x); + +int X509_ACERT_print(BIO *bp, X509_ACERT *x); +int X509_ACERT_print_ex(BIO *bp, X509_ACERT *x, unsigned long nmflags, + unsigned long cflag); + +int X509_ACERT_get_attr_count(const X509_ACERT *x); +int X509_ACERT_get_attr_by_NID(const X509_ACERT *x, int nid, int lastpos); +int X509_ACERT_get_attr_by_OBJ(const X509_ACERT *x, const ASN1_OBJECT *obj, + int lastpos); +X509_ATTRIBUTE *X509_ACERT_get_attr(const X509_ACERT *x, int loc); +X509_ATTRIBUTE *X509_ACERT_delete_attr(X509_ACERT *x, int loc); + +void *X509_ACERT_get_ext_d2i(const X509_ACERT *x, int nid, int *crit, int *idx); +int X509_ACERT_add1_ext_i2d(X509_ACERT *x, int nid, void *value, int crit, + unsigned long flags); +const STACK_OF(X509_EXTENSION) *X509_ACERT_get0_extensions(const X509_ACERT *x); + +# define OSSL_OBJECT_DIGEST_INFO_PUBLIC_KEY 0 +# define OSSL_OBJECT_DIGEST_INFO_PUBLIC_KEY_CERT 1 +# define OSSL_OBJECT_DIGEST_INFO_OTHER 2 /* must not be used in RFC 5755 profile */ +int X509_ACERT_set_version(X509_ACERT *x, long version); +void X509_ACERT_set0_holder_entityName(X509_ACERT *x, GENERAL_NAMES *name); +void X509_ACERT_set0_holder_baseCertId(X509_ACERT *x, OSSL_ISSUER_SERIAL *isss); +void X509_ACERT_set0_holder_digest(X509_ACERT *x, + OSSL_OBJECT_DIGEST_INFO *dinfo); + +int X509_ACERT_add1_attr(X509_ACERT *x, X509_ATTRIBUTE *attr); +int X509_ACERT_add1_attr_by_OBJ(X509_ACERT *x, const ASN1_OBJECT *obj, + int type, const void *bytes, int len); +int X509_ACERT_add1_attr_by_NID(X509_ACERT *x, int nid, int type, + const void *bytes, int len); +int X509_ACERT_add1_attr_by_txt(X509_ACERT *x, const char *attrname, int type, + const unsigned char *bytes, int len); +int X509_ACERT_add_attr_nconf(CONF *conf, const char *section, + X509_ACERT *acert); + +int X509_ACERT_set1_issuerName(X509_ACERT *x, const X509_NAME *name); +int X509_ACERT_set1_serialNumber(X509_ACERT *x, const ASN1_INTEGER *serial); +int X509_ACERT_set1_notBefore(X509_ACERT *x, const ASN1_GENERALIZEDTIME *time); +int X509_ACERT_set1_notAfter(X509_ACERT *x, const ASN1_GENERALIZEDTIME *time); + +void OSSL_OBJECT_DIGEST_INFO_get0_digest(const OSSL_OBJECT_DIGEST_INFO *o, + int *digestedObjectType, + const X509_ALGOR **digestAlgorithm, + const ASN1_BIT_STRING **digest); + +int OSSL_OBJECT_DIGEST_INFO_set1_digest(OSSL_OBJECT_DIGEST_INFO *o, + int digestedObjectType, + X509_ALGOR *digestAlgorithm, + ASN1_BIT_STRING *digest); + +const X509_NAME *OSSL_ISSUER_SERIAL_get0_issuer(const OSSL_ISSUER_SERIAL *isss); +const ASN1_INTEGER *OSSL_ISSUER_SERIAL_get0_serial(const OSSL_ISSUER_SERIAL *isss); +const ASN1_BIT_STRING *OSSL_ISSUER_SERIAL_get0_issuerUID(const OSSL_ISSUER_SERIAL *isss); + +int OSSL_ISSUER_SERIAL_set1_issuer(OSSL_ISSUER_SERIAL *isss, + const X509_NAME *issuer); +int OSSL_ISSUER_SERIAL_set1_serial(OSSL_ISSUER_SERIAL *isss, + const ASN1_INTEGER *serial); +int OSSL_ISSUER_SERIAL_set1_issuerUID(OSSL_ISSUER_SERIAL *isss, + const ASN1_BIT_STRING *uid); + +# define OSSL_IETFAS_OCTETS 0 +# define OSSL_IETFAS_OID 1 +# define OSSL_IETFAS_STRING 2 + +typedef struct OSSL_IETF_ATTR_SYNTAX_VALUE_st OSSL_IETF_ATTR_SYNTAX_VALUE; +typedef struct OSSL_IETF_ATTR_SYNTAX_st OSSL_IETF_ATTR_SYNTAX; +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_IETF_ATTR_SYNTAX_VALUE, OSSL_IETF_ATTR_SYNTAX_VALUE, OSSL_IETF_ATTR_SYNTAX_VALUE) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_value(sk, idx) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_value(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), (idx))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_new(cmp) ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_new(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_compfunc_type(cmp))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_new_null() ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_new_null()) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_new_reserve(cmp, n) ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_compfunc_type(cmp), (n))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), (n)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_free(sk) OPENSSL_sk_free(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_delete(sk, i) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_delete(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), (i))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_delete_ptr(sk, ptr) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_pop(sk) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_pop(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_shift(sk) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_shift(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk),ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_freefunc_type(freefunc)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr), (idx)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_set(sk, idx, ptr) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_set(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), (idx), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr), pnum) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_dup(sk) ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_dup(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_copyfunc_type(copyfunc), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_freefunc_type(freefunc))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_set_cmp_func(sk, cmp) ((sk_OSSL_IETF_ATTR_SYNTAX_VALUE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_compfunc_type(cmp))) + + +DECLARE_ASN1_ITEM(OSSL_IETF_ATTR_SYNTAX_VALUE) +DECLARE_ASN1_ALLOC_FUNCTIONS(OSSL_IETF_ATTR_SYNTAX_VALUE) +DECLARE_ASN1_FUNCTIONS(OSSL_IETF_ATTR_SYNTAX) + +const GENERAL_NAMES * +OSSL_IETF_ATTR_SYNTAX_get0_policyAuthority(const OSSL_IETF_ATTR_SYNTAX *a); +void OSSL_IETF_ATTR_SYNTAX_set0_policyAuthority(OSSL_IETF_ATTR_SYNTAX *a, + GENERAL_NAMES *names); + +int OSSL_IETF_ATTR_SYNTAX_get_value_num(const OSSL_IETF_ATTR_SYNTAX *a); +void *OSSL_IETF_ATTR_SYNTAX_get0_value(const OSSL_IETF_ATTR_SYNTAX *a, + int ind, int *type); +int OSSL_IETF_ATTR_SYNTAX_add1_value(OSSL_IETF_ATTR_SYNTAX *a, int type, + void *data); +int OSSL_IETF_ATTR_SYNTAX_print(BIO *bp, OSSL_IETF_ATTR_SYNTAX *a, int indent); + +struct TARGET_CERT_st { + OSSL_ISSUER_SERIAL *targetCertificate; + GENERAL_NAME *targetName; + OSSL_OBJECT_DIGEST_INFO *certDigestInfo; +}; + +typedef struct TARGET_CERT_st OSSL_TARGET_CERT; + +# define OSSL_TGT_TARGET_NAME 0 +# define OSSL_TGT_TARGET_GROUP 1 +# define OSSL_TGT_TARGET_CERT 2 + +typedef struct TARGET_st { + int type; + union { + GENERAL_NAME *targetName; + GENERAL_NAME *targetGroup; + OSSL_TARGET_CERT *targetCert; + } choice; +} OSSL_TARGET; + +typedef STACK_OF(OSSL_TARGET) OSSL_TARGETS; +typedef STACK_OF(OSSL_TARGETS) OSSL_TARGETING_INFORMATION; + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_TARGET, OSSL_TARGET, OSSL_TARGET) +#define sk_OSSL_TARGET_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_value(sk, idx) ((OSSL_TARGET *)OPENSSL_sk_value(ossl_check_const_OSSL_TARGET_sk_type(sk), (idx))) +#define sk_OSSL_TARGET_new(cmp) ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_new(ossl_check_OSSL_TARGET_compfunc_type(cmp))) +#define sk_OSSL_TARGET_new_null() ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_new_null()) +#define sk_OSSL_TARGET_new_reserve(cmp, n) ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_TARGET_compfunc_type(cmp), (n))) +#define sk_OSSL_TARGET_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_TARGET_sk_type(sk), (n)) +#define sk_OSSL_TARGET_free(sk) OPENSSL_sk_free(ossl_check_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_delete(sk, i) ((OSSL_TARGET *)OPENSSL_sk_delete(ossl_check_OSSL_TARGET_sk_type(sk), (i))) +#define sk_OSSL_TARGET_delete_ptr(sk, ptr) ((OSSL_TARGET *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr))) +#define sk_OSSL_TARGET_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr)) +#define sk_OSSL_TARGET_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr)) +#define sk_OSSL_TARGET_pop(sk) ((OSSL_TARGET *)OPENSSL_sk_pop(ossl_check_OSSL_TARGET_sk_type(sk))) +#define sk_OSSL_TARGET_shift(sk) ((OSSL_TARGET *)OPENSSL_sk_shift(ossl_check_OSSL_TARGET_sk_type(sk))) +#define sk_OSSL_TARGET_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_TARGET_sk_type(sk),ossl_check_OSSL_TARGET_freefunc_type(freefunc)) +#define sk_OSSL_TARGET_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr), (idx)) +#define sk_OSSL_TARGET_set(sk, idx, ptr) ((OSSL_TARGET *)OPENSSL_sk_set(ossl_check_OSSL_TARGET_sk_type(sk), (idx), ossl_check_OSSL_TARGET_type(ptr))) +#define sk_OSSL_TARGET_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr)) +#define sk_OSSL_TARGET_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr)) +#define sk_OSSL_TARGET_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr), pnum) +#define sk_OSSL_TARGET_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_dup(sk) ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_dup(ossl_check_const_OSSL_TARGET_sk_type(sk))) +#define sk_OSSL_TARGET_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_copyfunc_type(copyfunc), ossl_check_OSSL_TARGET_freefunc_type(freefunc))) +#define sk_OSSL_TARGET_set_cmp_func(sk, cmp) ((sk_OSSL_TARGET_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_compfunc_type(cmp))) + + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_TARGETS, OSSL_TARGETS, OSSL_TARGETS) +#define sk_OSSL_TARGETS_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_value(sk, idx) ((OSSL_TARGETS *)OPENSSL_sk_value(ossl_check_const_OSSL_TARGETS_sk_type(sk), (idx))) +#define sk_OSSL_TARGETS_new(cmp) ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_new(ossl_check_OSSL_TARGETS_compfunc_type(cmp))) +#define sk_OSSL_TARGETS_new_null() ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_new_null()) +#define sk_OSSL_TARGETS_new_reserve(cmp, n) ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_TARGETS_compfunc_type(cmp), (n))) +#define sk_OSSL_TARGETS_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_TARGETS_sk_type(sk), (n)) +#define sk_OSSL_TARGETS_free(sk) OPENSSL_sk_free(ossl_check_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_delete(sk, i) ((OSSL_TARGETS *)OPENSSL_sk_delete(ossl_check_OSSL_TARGETS_sk_type(sk), (i))) +#define sk_OSSL_TARGETS_delete_ptr(sk, ptr) ((OSSL_TARGETS *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr))) +#define sk_OSSL_TARGETS_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr)) +#define sk_OSSL_TARGETS_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr)) +#define sk_OSSL_TARGETS_pop(sk) ((OSSL_TARGETS *)OPENSSL_sk_pop(ossl_check_OSSL_TARGETS_sk_type(sk))) +#define sk_OSSL_TARGETS_shift(sk) ((OSSL_TARGETS *)OPENSSL_sk_shift(ossl_check_OSSL_TARGETS_sk_type(sk))) +#define sk_OSSL_TARGETS_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_TARGETS_sk_type(sk),ossl_check_OSSL_TARGETS_freefunc_type(freefunc)) +#define sk_OSSL_TARGETS_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr), (idx)) +#define sk_OSSL_TARGETS_set(sk, idx, ptr) ((OSSL_TARGETS *)OPENSSL_sk_set(ossl_check_OSSL_TARGETS_sk_type(sk), (idx), ossl_check_OSSL_TARGETS_type(ptr))) +#define sk_OSSL_TARGETS_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr)) +#define sk_OSSL_TARGETS_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr)) +#define sk_OSSL_TARGETS_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr), pnum) +#define sk_OSSL_TARGETS_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_dup(sk) ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_dup(ossl_check_const_OSSL_TARGETS_sk_type(sk))) +#define sk_OSSL_TARGETS_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_copyfunc_type(copyfunc), ossl_check_OSSL_TARGETS_freefunc_type(freefunc))) +#define sk_OSSL_TARGETS_set_cmp_func(sk, cmp) ((sk_OSSL_TARGETS_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_compfunc_type(cmp))) + + +DECLARE_ASN1_FUNCTIONS(OSSL_TARGET) +DECLARE_ASN1_FUNCTIONS(OSSL_TARGETS) +DECLARE_ASN1_FUNCTIONS(OSSL_TARGETING_INFORMATION) + +typedef STACK_OF(OSSL_ISSUER_SERIAL) OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX; +DECLARE_ASN1_FUNCTIONS(OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ISSUER_SERIAL, OSSL_ISSUER_SERIAL, OSSL_ISSUER_SERIAL) +#define sk_OSSL_ISSUER_SERIAL_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_value(sk, idx) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_value(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk), (idx))) +#define sk_OSSL_ISSUER_SERIAL_new(cmp) ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_new(ossl_check_OSSL_ISSUER_SERIAL_compfunc_type(cmp))) +#define sk_OSSL_ISSUER_SERIAL_new_null() ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ISSUER_SERIAL_new_reserve(cmp, n) ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ISSUER_SERIAL_compfunc_type(cmp), (n))) +#define sk_OSSL_ISSUER_SERIAL_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), (n)) +#define sk_OSSL_ISSUER_SERIAL_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_delete(sk, i) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_delete(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), (i))) +#define sk_OSSL_ISSUER_SERIAL_delete_ptr(sk, ptr) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr))) +#define sk_OSSL_ISSUER_SERIAL_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr)) +#define sk_OSSL_ISSUER_SERIAL_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr)) +#define sk_OSSL_ISSUER_SERIAL_pop(sk) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_pop(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk))) +#define sk_OSSL_ISSUER_SERIAL_shift(sk) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_shift(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk))) +#define sk_OSSL_ISSUER_SERIAL_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk),ossl_check_OSSL_ISSUER_SERIAL_freefunc_type(freefunc)) +#define sk_OSSL_ISSUER_SERIAL_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr), (idx)) +#define sk_OSSL_ISSUER_SERIAL_set(sk, idx, ptr) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_set(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), (idx), ossl_check_OSSL_ISSUER_SERIAL_type(ptr))) +#define sk_OSSL_ISSUER_SERIAL_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr)) +#define sk_OSSL_ISSUER_SERIAL_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr)) +#define sk_OSSL_ISSUER_SERIAL_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr), pnum) +#define sk_OSSL_ISSUER_SERIAL_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_dup(sk) ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk))) +#define sk_OSSL_ISSUER_SERIAL_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_copyfunc_type(copyfunc), ossl_check_OSSL_ISSUER_SERIAL_freefunc_type(freefunc))) +#define sk_OSSL_ISSUER_SERIAL_set_cmp_func(sk, cmp) ((sk_OSSL_ISSUER_SERIAL_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_compfunc_type(cmp))) + + +#endif diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/asm/include/openssl/x509_vfy.h b/deps/openssl/config/archs/darwin64-arm64-cc/asm/include/openssl/x509_vfy.h index 29b0e147adcab1..c9bdc3b39d685d 100644 --- a/deps/openssl/config/archs/darwin64-arm64-cc/asm/include/openssl/x509_vfy.h +++ b/deps/openssl/config/archs/darwin64-arm64-cc/asm/include/openssl/x509_vfy.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/x509_vfy.h.in * - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -411,6 +411,7 @@ X509_LOOKUP_ctrl_ex((x), X509_L_ADD_STORE, (name), 0, NULL, \ # define X509_V_ERR_CA_CERT_MISSING_KEY_USAGE 92 # define X509_V_ERR_EXTENSIONS_REQUIRE_VERSION_3 93 # define X509_V_ERR_EC_KEY_EXPLICIT_PARAMS 94 +# define X509_V_ERR_RPK_UNTRUSTED 95 /* Certificate verify flags */ # ifndef OPENSSL_NO_DEPRECATED_1_1_0 @@ -491,71 +492,72 @@ int X509_OBJECT_set1_X509(X509_OBJECT *a, X509 *obj); X509_CRL *X509_OBJECT_get0_X509_CRL(const X509_OBJECT *a); int X509_OBJECT_set1_X509_CRL(X509_OBJECT *a, X509_CRL *obj); X509_STORE *X509_STORE_new(void); -void X509_STORE_free(X509_STORE *v); -int X509_STORE_lock(X509_STORE *ctx); -int X509_STORE_unlock(X509_STORE *ctx); -int X509_STORE_up_ref(X509_STORE *v); -STACK_OF(X509_OBJECT) *X509_STORE_get0_objects(const X509_STORE *v); -STACK_OF(X509) *X509_STORE_get1_all_certs(X509_STORE *st); -STACK_OF(X509) *X509_STORE_CTX_get1_certs(X509_STORE_CTX *st, +void X509_STORE_free(X509_STORE *xs); +int X509_STORE_lock(X509_STORE *xs); +int X509_STORE_unlock(X509_STORE *xs); +int X509_STORE_up_ref(X509_STORE *xs); +STACK_OF(X509_OBJECT) *X509_STORE_get0_objects(const X509_STORE *xs); +STACK_OF(X509_OBJECT) *X509_STORE_get1_objects(X509_STORE *xs); +STACK_OF(X509) *X509_STORE_get1_all_certs(X509_STORE *xs); +STACK_OF(X509) *X509_STORE_CTX_get1_certs(X509_STORE_CTX *xs, const X509_NAME *nm); STACK_OF(X509_CRL) *X509_STORE_CTX_get1_crls(const X509_STORE_CTX *st, const X509_NAME *nm); -int X509_STORE_set_flags(X509_STORE *ctx, unsigned long flags); -int X509_STORE_set_purpose(X509_STORE *ctx, int purpose); -int X509_STORE_set_trust(X509_STORE *ctx, int trust); -int X509_STORE_set1_param(X509_STORE *ctx, const X509_VERIFY_PARAM *pm); -X509_VERIFY_PARAM *X509_STORE_get0_param(const X509_STORE *ctx); +int X509_STORE_set_flags(X509_STORE *xs, unsigned long flags); +int X509_STORE_set_purpose(X509_STORE *xs, int purpose); +int X509_STORE_set_trust(X509_STORE *xs, int trust); +int X509_STORE_set1_param(X509_STORE *xs, const X509_VERIFY_PARAM *pm); +X509_VERIFY_PARAM *X509_STORE_get0_param(const X509_STORE *xs); -void X509_STORE_set_verify(X509_STORE *ctx, X509_STORE_CTX_verify_fn verify); +void X509_STORE_set_verify(X509_STORE *xs, X509_STORE_CTX_verify_fn verify); #define X509_STORE_set_verify_func(ctx, func) \ X509_STORE_set_verify((ctx),(func)) void X509_STORE_CTX_set_verify(X509_STORE_CTX *ctx, X509_STORE_CTX_verify_fn verify); -X509_STORE_CTX_verify_fn X509_STORE_get_verify(const X509_STORE *ctx); -void X509_STORE_set_verify_cb(X509_STORE *ctx, +X509_STORE_CTX_verify_fn X509_STORE_get_verify(const X509_STORE *xs); +void X509_STORE_set_verify_cb(X509_STORE *xs, X509_STORE_CTX_verify_cb verify_cb); # define X509_STORE_set_verify_cb_func(ctx,func) \ X509_STORE_set_verify_cb((ctx),(func)) -X509_STORE_CTX_verify_cb X509_STORE_get_verify_cb(const X509_STORE *ctx); -void X509_STORE_set_get_issuer(X509_STORE *ctx, +X509_STORE_CTX_verify_cb X509_STORE_get_verify_cb(const X509_STORE *xs); +void X509_STORE_set_get_issuer(X509_STORE *xs, X509_STORE_CTX_get_issuer_fn get_issuer); -X509_STORE_CTX_get_issuer_fn X509_STORE_get_get_issuer(const X509_STORE *ctx); -void X509_STORE_set_check_issued(X509_STORE *ctx, +X509_STORE_CTX_get_issuer_fn X509_STORE_get_get_issuer(const X509_STORE *xs); +void X509_STORE_set_check_issued(X509_STORE *xs, X509_STORE_CTX_check_issued_fn check_issued); -X509_STORE_CTX_check_issued_fn X509_STORE_get_check_issued(const X509_STORE *ctx); -void X509_STORE_set_check_revocation(X509_STORE *ctx, +X509_STORE_CTX_check_issued_fn X509_STORE_get_check_issued(const X509_STORE *s); +void X509_STORE_set_check_revocation(X509_STORE *xs, X509_STORE_CTX_check_revocation_fn check_revocation); X509_STORE_CTX_check_revocation_fn - X509_STORE_get_check_revocation(const X509_STORE *ctx); -void X509_STORE_set_get_crl(X509_STORE *ctx, + X509_STORE_get_check_revocation(const X509_STORE *xs); +void X509_STORE_set_get_crl(X509_STORE *xs, X509_STORE_CTX_get_crl_fn get_crl); -X509_STORE_CTX_get_crl_fn X509_STORE_get_get_crl(const X509_STORE *ctx); -void X509_STORE_set_check_crl(X509_STORE *ctx, +X509_STORE_CTX_get_crl_fn X509_STORE_get_get_crl(const X509_STORE *xs); +void X509_STORE_set_check_crl(X509_STORE *xs, X509_STORE_CTX_check_crl_fn check_crl); -X509_STORE_CTX_check_crl_fn X509_STORE_get_check_crl(const X509_STORE *ctx); -void X509_STORE_set_cert_crl(X509_STORE *ctx, +X509_STORE_CTX_check_crl_fn X509_STORE_get_check_crl(const X509_STORE *xs); +void X509_STORE_set_cert_crl(X509_STORE *xs, X509_STORE_CTX_cert_crl_fn cert_crl); -X509_STORE_CTX_cert_crl_fn X509_STORE_get_cert_crl(const X509_STORE *ctx); -void X509_STORE_set_check_policy(X509_STORE *ctx, +X509_STORE_CTX_cert_crl_fn X509_STORE_get_cert_crl(const X509_STORE *xs); +void X509_STORE_set_check_policy(X509_STORE *xs, X509_STORE_CTX_check_policy_fn check_policy); -X509_STORE_CTX_check_policy_fn X509_STORE_get_check_policy(const X509_STORE *ctx); -void X509_STORE_set_lookup_certs(X509_STORE *ctx, +X509_STORE_CTX_check_policy_fn X509_STORE_get_check_policy(const X509_STORE *s); +void X509_STORE_set_lookup_certs(X509_STORE *xs, X509_STORE_CTX_lookup_certs_fn lookup_certs); -X509_STORE_CTX_lookup_certs_fn X509_STORE_get_lookup_certs(const X509_STORE *ctx); -void X509_STORE_set_lookup_crls(X509_STORE *ctx, +X509_STORE_CTX_lookup_certs_fn X509_STORE_get_lookup_certs(const X509_STORE *s); +void X509_STORE_set_lookup_crls(X509_STORE *xs, X509_STORE_CTX_lookup_crls_fn lookup_crls); #define X509_STORE_set_lookup_crls_cb(ctx, func) \ X509_STORE_set_lookup_crls((ctx), (func)) -X509_STORE_CTX_lookup_crls_fn X509_STORE_get_lookup_crls(const X509_STORE *ctx); -void X509_STORE_set_cleanup(X509_STORE *ctx, +X509_STORE_CTX_lookup_crls_fn X509_STORE_get_lookup_crls(const X509_STORE *xs); +void X509_STORE_set_cleanup(X509_STORE *xs, X509_STORE_CTX_cleanup_fn cleanup); -X509_STORE_CTX_cleanup_fn X509_STORE_get_cleanup(const X509_STORE *ctx); +X509_STORE_CTX_cleanup_fn X509_STORE_get_cleanup(const X509_STORE *xs); #define X509_STORE_get_ex_new_index(l, p, newf, dupf, freef) \ CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_X509_STORE, l, p, newf, dupf, freef) -int X509_STORE_set_ex_data(X509_STORE *ctx, int idx, void *data); -void *X509_STORE_get_ex_data(const X509_STORE *ctx, int idx); +int X509_STORE_set_ex_data(X509_STORE *xs, int idx, void *data); +void *X509_STORE_get_ex_data(const X509_STORE *xs, int idx); X509_STORE_CTX *X509_STORE_CTX_new_ex(OSSL_LIB_CTX *libctx, const char *propq); X509_STORE_CTX *X509_STORE_CTX_new(void); @@ -565,11 +567,14 @@ int X509_STORE_CTX_get1_issuer(X509 **issuer, X509_STORE_CTX *ctx, X509 *x); void X509_STORE_CTX_free(X509_STORE_CTX *ctx); int X509_STORE_CTX_init(X509_STORE_CTX *ctx, X509_STORE *trust_store, X509 *target, STACK_OF(X509) *untrusted); +int X509_STORE_CTX_init_rpk(X509_STORE_CTX *ctx, X509_STORE *trust_store, + EVP_PKEY* rpk); void X509_STORE_CTX_set0_trusted_stack(X509_STORE_CTX *ctx, STACK_OF(X509) *sk); void X509_STORE_CTX_cleanup(X509_STORE_CTX *ctx); X509_STORE *X509_STORE_CTX_get0_store(const X509_STORE_CTX *ctx); X509 *X509_STORE_CTX_get0_cert(const X509_STORE_CTX *ctx); +EVP_PKEY *X509_STORE_CTX_get0_rpk(const X509_STORE_CTX *ctx); STACK_OF(X509)* X509_STORE_CTX_get0_untrusted(const X509_STORE_CTX *ctx); void X509_STORE_CTX_set0_untrusted(X509_STORE_CTX *ctx, STACK_OF(X509) *sk); void X509_STORE_CTX_set_verify_cb(X509_STORE_CTX *ctx, @@ -579,6 +584,8 @@ X509_STORE_CTX_verify_fn X509_STORE_CTX_get_verify(const X509_STORE_CTX *ctx); X509_STORE_CTX_get_issuer_fn X509_STORE_CTX_get_get_issuer(const X509_STORE_CTX *ctx); X509_STORE_CTX_check_issued_fn X509_STORE_CTX_get_check_issued(const X509_STORE_CTX *ctx); X509_STORE_CTX_check_revocation_fn X509_STORE_CTX_get_check_revocation(const X509_STORE_CTX *ctx); +void X509_STORE_CTX_set_get_crl(X509_STORE_CTX *ctx, + X509_STORE_CTX_get_crl_fn get_crl); X509_STORE_CTX_get_crl_fn X509_STORE_CTX_get_get_crl(const X509_STORE_CTX *ctx); X509_STORE_CTX_check_crl_fn X509_STORE_CTX_get_check_crl(const X509_STORE_CTX *ctx); X509_STORE_CTX_cert_crl_fn X509_STORE_CTX_get_cert_crl(const X509_STORE_CTX *ctx); @@ -600,7 +607,7 @@ X509_STORE_CTX_cleanup_fn X509_STORE_CTX_get_cleanup(const X509_STORE_CTX *ctx); # define X509_STORE_get1_crl X509_STORE_CTX_get1_crls #endif -X509_LOOKUP *X509_STORE_add_lookup(X509_STORE *v, X509_LOOKUP_METHOD *m); +X509_LOOKUP *X509_STORE_add_lookup(X509_STORE *xs, X509_LOOKUP_METHOD *m); X509_LOOKUP_METHOD *X509_LOOKUP_hash_dir(void); X509_LOOKUP_METHOD *X509_LOOKUP_file(void); X509_LOOKUP_METHOD *X509_LOOKUP_store(void); @@ -685,8 +692,8 @@ X509_LOOKUP_get_by_alias_fn X509_LOOKUP_meth_get_get_by_alias( const X509_LOOKUP_METHOD *method); -int X509_STORE_add_cert(X509_STORE *ctx, X509 *x); -int X509_STORE_add_crl(X509_STORE *ctx, X509_CRL *x); +int X509_STORE_add_cert(X509_STORE *xs, X509 *x); +int X509_STORE_add_crl(X509_STORE *xs, X509_CRL *x); int X509_STORE_CTX_get_by_subject(const X509_STORE_CTX *vs, X509_LOOKUP_TYPE type, @@ -730,23 +737,21 @@ void *X509_LOOKUP_get_method_data(const X509_LOOKUP *ctx); X509_STORE *X509_LOOKUP_get_store(const X509_LOOKUP *ctx); int X509_LOOKUP_shutdown(X509_LOOKUP *ctx); -int X509_STORE_load_file(X509_STORE *ctx, const char *file); -int X509_STORE_load_path(X509_STORE *ctx, const char *path); -int X509_STORE_load_store(X509_STORE *ctx, const char *store); -int X509_STORE_load_locations(X509_STORE *ctx, - const char *file, - const char *dir); -int X509_STORE_set_default_paths(X509_STORE *ctx); +int X509_STORE_load_file(X509_STORE *xs, const char *file); +int X509_STORE_load_path(X509_STORE *xs, const char *path); +int X509_STORE_load_store(X509_STORE *xs, const char *store); +int X509_STORE_load_locations(X509_STORE *s, const char *file, const char *dir); +int X509_STORE_set_default_paths(X509_STORE *xs); -int X509_STORE_load_file_ex(X509_STORE *ctx, const char *file, +int X509_STORE_load_file_ex(X509_STORE *xs, const char *file, OSSL_LIB_CTX *libctx, const char *propq); -int X509_STORE_load_store_ex(X509_STORE *ctx, const char *store, +int X509_STORE_load_store_ex(X509_STORE *xs, const char *store, OSSL_LIB_CTX *libctx, const char *propq); -int X509_STORE_load_locations_ex(X509_STORE *ctx, const char *file, - const char *dir, OSSL_LIB_CTX *libctx, - const char *propq); -int X509_STORE_set_default_paths_ex(X509_STORE *ctx, OSSL_LIB_CTX *libctx, - const char *propq); +int X509_STORE_load_locations_ex(X509_STORE *xs, + const char *file, const char *dir, + OSSL_LIB_CTX *libctx, const char *propq); +int X509_STORE_set_default_paths_ex(X509_STORE *xs, + OSSL_LIB_CTX *libctx, const char *propq); #define X509_STORE_CTX_get_ex_new_index(l, p, newf, dupf, freef) \ CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_X509_STORE_CTX, l, p, newf, dupf, freef) @@ -764,6 +769,7 @@ X509_STORE_CTX *X509_STORE_CTX_get0_parent_ctx(const X509_STORE_CTX *ctx); STACK_OF(X509) *X509_STORE_CTX_get0_chain(const X509_STORE_CTX *ctx); STACK_OF(X509) *X509_STORE_CTX_get1_chain(const X509_STORE_CTX *ctx); void X509_STORE_CTX_set_cert(X509_STORE_CTX *ctx, X509 *target); +void X509_STORE_CTX_set0_rpk(X509_STORE_CTX *ctx, EVP_PKEY *target); void X509_STORE_CTX_set0_verified_chain(X509_STORE_CTX *c, STACK_OF(X509) *sk); void X509_STORE_CTX_set0_crls(X509_STORE_CTX *ctx, STACK_OF(X509_CRL) *sk); int X509_STORE_CTX_set_purpose(X509_STORE_CTX *ctx, int purpose); @@ -773,6 +779,8 @@ int X509_STORE_CTX_purpose_inherit(X509_STORE_CTX *ctx, int def_purpose, void X509_STORE_CTX_set_flags(X509_STORE_CTX *ctx, unsigned long flags); void X509_STORE_CTX_set_time(X509_STORE_CTX *ctx, unsigned long flags, time_t t); +void X509_STORE_CTX_set_current_reasons(X509_STORE_CTX *ctx, + unsigned int current_reasons); X509_POLICY_TREE *X509_STORE_CTX_get0_policy_tree(const X509_STORE_CTX *ctx); int X509_STORE_CTX_get_explicit_policy(const X509_STORE_CTX *ctx); @@ -804,6 +812,7 @@ int X509_VERIFY_PARAM_clear_flags(X509_VERIFY_PARAM *param, unsigned long flags); unsigned long X509_VERIFY_PARAM_get_flags(const X509_VERIFY_PARAM *param); int X509_VERIFY_PARAM_set_purpose(X509_VERIFY_PARAM *param, int purpose); +int X509_VERIFY_PARAM_get_purpose(const X509_VERIFY_PARAM *param); int X509_VERIFY_PARAM_set_trust(X509_VERIFY_PARAM *param, int trust); void X509_VERIFY_PARAM_set_depth(X509_VERIFY_PARAM *param, int depth); void X509_VERIFY_PARAM_set_auth_level(X509_VERIFY_PARAM *param, int auth_level); diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/asm/include/openssl/x509v3.h b/deps/openssl/config/archs/darwin64-arm64-cc/asm/include/openssl/x509v3.h index 20b67455f2061d..b8dabac35a4915 100644 --- a/deps/openssl/config/archs/darwin64-arm64-cc/asm/include/openssl/x509v3.h +++ b/deps/openssl/config/archs/darwin64-arm64-cc/asm/include/openssl/x509v3.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/x509v3.h.in * - * Copyright 1999-2023 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1999-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -25,6 +25,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -146,6 +149,11 @@ typedef struct BASIC_CONSTRAINTS_st { ASN1_INTEGER *pathlen; } BASIC_CONSTRAINTS; +typedef struct OSSL_BASIC_ATTR_CONSTRAINTS_st { + int authority; + ASN1_INTEGER *pathlen; +} OSSL_BASIC_ATTR_CONSTRAINTS; + typedef struct PKEY_USAGE_PERIOD_st { ASN1_GENERALIZEDTIME *notBefore; ASN1_GENERALIZEDTIME *notAfter; @@ -198,6 +206,8 @@ typedef struct ACCESS_DESCRIPTION_st { GENERAL_NAME *location; } ACCESS_DESCRIPTION; +int GENERAL_NAME_set1_X509_NAME(GENERAL_NAME **tgt, const X509_NAME *src); + SKM_DEFINE_STACK_OF_INTERNAL(ACCESS_DESCRIPTION, ACCESS_DESCRIPTION, ACCESS_DESCRIPTION) #define sk_ACCESS_DESCRIPTION_num(sk) OPENSSL_sk_num(ossl_check_const_ACCESS_DESCRIPTION_sk_type(sk)) #define sk_ACCESS_DESCRIPTION_value(sk, idx) ((ACCESS_DESCRIPTION *)OPENSSL_sk_value(ossl_check_const_ACCESS_DESCRIPTION_sk_type(sk), (idx))) @@ -294,6 +304,7 @@ typedef struct DIST_POINT_NAME_st { /* If relativename then this contains the full distribution point name */ X509_NAME *dpname; } DIST_POINT_NAME; +DECLARE_ASN1_DUP_FUNCTION(DIST_POINT_NAME) /* All existing reasons */ # define CRLDP_ALL_REASONS 0x807f @@ -659,15 +670,16 @@ struct ISSUING_DIST_POINT_st { # define EXFLAG_SAN_CRITICAL 0x80000 # define EXFLAG_NO_FINGERPRINT 0x100000 -# define KU_DIGITAL_SIGNATURE 0x0080 -# define KU_NON_REPUDIATION 0x0040 -# define KU_KEY_ENCIPHERMENT 0x0020 -# define KU_DATA_ENCIPHERMENT 0x0010 -# define KU_KEY_AGREEMENT 0x0008 -# define KU_KEY_CERT_SIGN 0x0004 -# define KU_CRL_SIGN 0x0002 -# define KU_ENCIPHER_ONLY 0x0001 -# define KU_DECIPHER_ONLY 0x8000 +/* https://datatracker.ietf.org/doc/html/rfc5280#section-4.2.1.3 */ +# define KU_DIGITAL_SIGNATURE X509v3_KU_DIGITAL_SIGNATURE +# define KU_NON_REPUDIATION X509v3_KU_NON_REPUDIATION +# define KU_KEY_ENCIPHERMENT X509v3_KU_KEY_ENCIPHERMENT +# define KU_DATA_ENCIPHERMENT X509v3_KU_DATA_ENCIPHERMENT +# define KU_KEY_AGREEMENT X509v3_KU_KEY_AGREEMENT +# define KU_KEY_CERT_SIGN X509v3_KU_KEY_CERT_SIGN +# define KU_CRL_SIGN X509v3_KU_CRL_SIGN +# define KU_ENCIPHER_ONLY X509v3_KU_ENCIPHER_ONLY +# define KU_DECIPHER_ONLY X509v3_KU_DECIPHER_ONLY # define NS_SSL_CLIENT 0x80 # define NS_SSL_SERVER 0x40 @@ -729,7 +741,7 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_PURPOSE, X509_PURPOSE, X509_PURPOSE) #define sk_X509_PURPOSE_set_cmp_func(sk, cmp) ((sk_X509_PURPOSE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_X509_PURPOSE_sk_type(sk), ossl_check_X509_PURPOSE_compfunc_type(cmp))) - +# define X509_PURPOSE_DEFAULT_ANY 0 # define X509_PURPOSE_SSL_CLIENT 1 # define X509_PURPOSE_SSL_SERVER 2 # define X509_PURPOSE_NS_SSL_SERVER 3 @@ -739,9 +751,10 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_PURPOSE, X509_PURPOSE, X509_PURPOSE) # define X509_PURPOSE_ANY 7 # define X509_PURPOSE_OCSP_HELPER 8 # define X509_PURPOSE_TIMESTAMP_SIGN 9 +# define X509_PURPOSE_CODE_SIGN 10 # define X509_PURPOSE_MIN 1 -# define X509_PURPOSE_MAX 9 +# define X509_PURPOSE_MAX 10 /* Flags for X509V3_EXT_print() */ @@ -767,6 +780,7 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_PURPOSE, X509_PURPOSE, X509_PURPOSE) # define X509V3_ADD_SILENT 0x10 DECLARE_ASN1_FUNCTIONS(BASIC_CONSTRAINTS) +DECLARE_ASN1_FUNCTIONS(OSSL_BASIC_ATTR_CONSTRAINTS) DECLARE_ASN1_FUNCTIONS(SXNET) DECLARE_ASN1_FUNCTIONS(SXNETID) @@ -976,7 +990,6 @@ int X509V3_extensions_print(BIO *out, const char *title, int X509_check_ca(X509 *x); int X509_check_purpose(X509 *x, int id, int ca); int X509_supported_extension(X509_EXTENSION *ex); -int X509_PURPOSE_set(int *p, int purpose); int X509_check_issued(X509 *issuer, X509 *subject); int X509_check_akid(const X509 *issuer, const AUTHORITY_KEYID *akid); void X509_set_proxy_flag(X509 *x); @@ -992,22 +1005,26 @@ const GENERAL_NAMES *X509_get0_authority_issuer(X509 *x); const ASN1_INTEGER *X509_get0_authority_serial(X509 *x); int X509_PURPOSE_get_count(void); -X509_PURPOSE *X509_PURPOSE_get0(int idx); +int X509_PURPOSE_get_unused_id(OSSL_LIB_CTX *libctx); int X509_PURPOSE_get_by_sname(const char *sname); int X509_PURPOSE_get_by_id(int id); int X509_PURPOSE_add(int id, int trust, int flags, int (*ck) (const X509_PURPOSE *, const X509 *, int), const char *name, const char *sname, void *arg); +void X509_PURPOSE_cleanup(void); + +X509_PURPOSE *X509_PURPOSE_get0(int idx); +int X509_PURPOSE_get_id(const X509_PURPOSE *); char *X509_PURPOSE_get0_name(const X509_PURPOSE *xp); char *X509_PURPOSE_get0_sname(const X509_PURPOSE *xp); int X509_PURPOSE_get_trust(const X509_PURPOSE *xp); -void X509_PURPOSE_cleanup(void); -int X509_PURPOSE_get_id(const X509_PURPOSE *); +int X509_PURPOSE_set(int *p, int purpose); STACK_OF(OPENSSL_STRING) *X509_get1_email(X509 *x); STACK_OF(OPENSSL_STRING) *X509_REQ_get1_email(X509_REQ *x); void X509_email_free(STACK_OF(OPENSSL_STRING) *sk); STACK_OF(OPENSSL_STRING) *X509_get1_ocsp(X509 *x); + /* Flags for X509_check_* functions */ /* @@ -1444,6 +1461,507 @@ const ASN1_PRINTABLESTRING *PROFESSION_INFO_get0_registrationNumber( void PROFESSION_INFO_set0_registrationNumber( PROFESSION_INFO *pi, ASN1_PRINTABLESTRING *rn); +int OSSL_GENERAL_NAMES_print(BIO *out, GENERAL_NAMES *gens, int indent); + +typedef STACK_OF(X509_ATTRIBUTE) OSSL_ATTRIBUTES_SYNTAX; +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTES_SYNTAX) + +typedef STACK_OF(USERNOTICE) OSSL_USER_NOTICE_SYNTAX; +DECLARE_ASN1_FUNCTIONS(OSSL_USER_NOTICE_SYNTAX) + +SKM_DEFINE_STACK_OF_INTERNAL(USERNOTICE, USERNOTICE, USERNOTICE) +#define sk_USERNOTICE_num(sk) OPENSSL_sk_num(ossl_check_const_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_value(sk, idx) ((USERNOTICE *)OPENSSL_sk_value(ossl_check_const_USERNOTICE_sk_type(sk), (idx))) +#define sk_USERNOTICE_new(cmp) ((STACK_OF(USERNOTICE) *)OPENSSL_sk_new(ossl_check_USERNOTICE_compfunc_type(cmp))) +#define sk_USERNOTICE_new_null() ((STACK_OF(USERNOTICE) *)OPENSSL_sk_new_null()) +#define sk_USERNOTICE_new_reserve(cmp, n) ((STACK_OF(USERNOTICE) *)OPENSSL_sk_new_reserve(ossl_check_USERNOTICE_compfunc_type(cmp), (n))) +#define sk_USERNOTICE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_USERNOTICE_sk_type(sk), (n)) +#define sk_USERNOTICE_free(sk) OPENSSL_sk_free(ossl_check_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_zero(sk) OPENSSL_sk_zero(ossl_check_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_delete(sk, i) ((USERNOTICE *)OPENSSL_sk_delete(ossl_check_USERNOTICE_sk_type(sk), (i))) +#define sk_USERNOTICE_delete_ptr(sk, ptr) ((USERNOTICE *)OPENSSL_sk_delete_ptr(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr))) +#define sk_USERNOTICE_push(sk, ptr) OPENSSL_sk_push(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr)) +#define sk_USERNOTICE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr)) +#define sk_USERNOTICE_pop(sk) ((USERNOTICE *)OPENSSL_sk_pop(ossl_check_USERNOTICE_sk_type(sk))) +#define sk_USERNOTICE_shift(sk) ((USERNOTICE *)OPENSSL_sk_shift(ossl_check_USERNOTICE_sk_type(sk))) +#define sk_USERNOTICE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_USERNOTICE_sk_type(sk),ossl_check_USERNOTICE_freefunc_type(freefunc)) +#define sk_USERNOTICE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr), (idx)) +#define sk_USERNOTICE_set(sk, idx, ptr) ((USERNOTICE *)OPENSSL_sk_set(ossl_check_USERNOTICE_sk_type(sk), (idx), ossl_check_USERNOTICE_type(ptr))) +#define sk_USERNOTICE_find(sk, ptr) OPENSSL_sk_find(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr)) +#define sk_USERNOTICE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr)) +#define sk_USERNOTICE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr), pnum) +#define sk_USERNOTICE_sort(sk) OPENSSL_sk_sort(ossl_check_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_dup(sk) ((STACK_OF(USERNOTICE) *)OPENSSL_sk_dup(ossl_check_const_USERNOTICE_sk_type(sk))) +#define sk_USERNOTICE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(USERNOTICE) *)OPENSSL_sk_deep_copy(ossl_check_const_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_copyfunc_type(copyfunc), ossl_check_USERNOTICE_freefunc_type(freefunc))) +#define sk_USERNOTICE_set_cmp_func(sk, cmp) ((sk_USERNOTICE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_compfunc_type(cmp))) + + +typedef struct OSSL_ROLE_SPEC_CERT_ID_st { + GENERAL_NAME *roleName; + GENERAL_NAME *roleCertIssuer; + ASN1_INTEGER *roleCertSerialNumber; + GENERAL_NAMES *roleCertLocator; +} OSSL_ROLE_SPEC_CERT_ID; + +DECLARE_ASN1_FUNCTIONS(OSSL_ROLE_SPEC_CERT_ID) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ROLE_SPEC_CERT_ID, OSSL_ROLE_SPEC_CERT_ID, OSSL_ROLE_SPEC_CERT_ID) +#define sk_OSSL_ROLE_SPEC_CERT_ID_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_value(sk, idx) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_value(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), (idx))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_new(cmp) ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_new(ossl_check_OSSL_ROLE_SPEC_CERT_ID_compfunc_type(cmp))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_new_null() ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ROLE_SPEC_CERT_ID_new_reserve(cmp, n) ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ROLE_SPEC_CERT_ID_compfunc_type(cmp), (n))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), (n)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_delete(sk, i) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_delete(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), (i))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_delete_ptr(sk, ptr) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_pop(sk) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_pop(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_shift(sk) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_shift(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk),ossl_check_OSSL_ROLE_SPEC_CERT_ID_freefunc_type(freefunc)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr), (idx)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_set(sk, idx, ptr) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_set(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), (idx), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr), pnum) +#define sk_OSSL_ROLE_SPEC_CERT_ID_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_dup(sk) ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_copyfunc_type(copyfunc), ossl_check_OSSL_ROLE_SPEC_CERT_ID_freefunc_type(freefunc))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_set_cmp_func(sk, cmp) ((sk_OSSL_ROLE_SPEC_CERT_ID_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_compfunc_type(cmp))) + + +typedef STACK_OF(OSSL_ROLE_SPEC_CERT_ID) OSSL_ROLE_SPEC_CERT_ID_SYNTAX; + +DECLARE_ASN1_FUNCTIONS(OSSL_ROLE_SPEC_CERT_ID_SYNTAX) +typedef struct OSSL_HASH_st { + X509_ALGOR *algorithmIdentifier; + ASN1_BIT_STRING *hashValue; +} OSSL_HASH; + +typedef struct OSSL_INFO_SYNTAX_POINTER_st { + GENERAL_NAMES *name; + OSSL_HASH *hash; +} OSSL_INFO_SYNTAX_POINTER; + +# define OSSL_INFO_SYNTAX_TYPE_CONTENT 0 +# define OSSL_INFO_SYNTAX_TYPE_POINTER 1 + +typedef struct OSSL_INFO_SYNTAX_st { + int type; + union { + ASN1_STRING *content; + OSSL_INFO_SYNTAX_POINTER *pointer; + } choice; +} OSSL_INFO_SYNTAX; + +typedef struct OSSL_PRIVILEGE_POLICY_ID_st { + ASN1_OBJECT *privilegePolicy; + OSSL_INFO_SYNTAX *privPolSyntax; +} OSSL_PRIVILEGE_POLICY_ID; + +typedef struct OSSL_ATTRIBUTE_DESCRIPTOR_st { + ASN1_OBJECT *identifier; + ASN1_STRING *attributeSyntax; + ASN1_UTF8STRING *name; + ASN1_UTF8STRING *description; + OSSL_PRIVILEGE_POLICY_ID *dominationRule; +} OSSL_ATTRIBUTE_DESCRIPTOR; + +DECLARE_ASN1_FUNCTIONS(OSSL_HASH) +DECLARE_ASN1_FUNCTIONS(OSSL_INFO_SYNTAX) +DECLARE_ASN1_FUNCTIONS(OSSL_INFO_SYNTAX_POINTER) +DECLARE_ASN1_FUNCTIONS(OSSL_PRIVILEGE_POLICY_ID) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_DESCRIPTOR) + +typedef struct OSSL_TIME_SPEC_ABSOLUTE_st { + ASN1_GENERALIZEDTIME *startTime; + ASN1_GENERALIZEDTIME *endTime; +} OSSL_TIME_SPEC_ABSOLUTE; + +typedef struct OSSL_DAY_TIME_st { + ASN1_INTEGER *hour; + ASN1_INTEGER *minute; + ASN1_INTEGER *second; +} OSSL_DAY_TIME; + +typedef struct OSSL_DAY_TIME_BAND_st { + OSSL_DAY_TIME *startDayTime; + OSSL_DAY_TIME *endDayTime; +} OSSL_DAY_TIME_BAND; + +# define OSSL_NAMED_DAY_TYPE_INT 0 +# define OSSL_NAMED_DAY_TYPE_BIT 1 +# define OSSL_NAMED_DAY_INT_SUN 1 +# define OSSL_NAMED_DAY_INT_MON 2 +# define OSSL_NAMED_DAY_INT_TUE 3 +# define OSSL_NAMED_DAY_INT_WED 4 +# define OSSL_NAMED_DAY_INT_THU 5 +# define OSSL_NAMED_DAY_INT_FRI 6 +# define OSSL_NAMED_DAY_INT_SAT 7 +# define OSSL_NAMED_DAY_BIT_SUN 0 +# define OSSL_NAMED_DAY_BIT_MON 1 +# define OSSL_NAMED_DAY_BIT_TUE 2 +# define OSSL_NAMED_DAY_BIT_WED 3 +# define OSSL_NAMED_DAY_BIT_THU 4 +# define OSSL_NAMED_DAY_BIT_FRI 5 +# define OSSL_NAMED_DAY_BIT_SAT 6 + +typedef struct OSSL_NAMED_DAY_st { + int type; + union { + ASN1_INTEGER *intNamedDays; + ASN1_BIT_STRING *bitNamedDays; + } choice; +} OSSL_NAMED_DAY; + +# define OSSL_TIME_SPEC_X_DAY_OF_FIRST 0 +# define OSSL_TIME_SPEC_X_DAY_OF_SECOND 1 +# define OSSL_TIME_SPEC_X_DAY_OF_THIRD 2 +# define OSSL_TIME_SPEC_X_DAY_OF_FOURTH 3 +# define OSSL_TIME_SPEC_X_DAY_OF_FIFTH 4 + +typedef struct OSSL_TIME_SPEC_X_DAY_OF_st { + int type; + union { + OSSL_NAMED_DAY *first; + OSSL_NAMED_DAY *second; + OSSL_NAMED_DAY *third; + OSSL_NAMED_DAY *fourth; + OSSL_NAMED_DAY *fifth; + } choice; +} OSSL_TIME_SPEC_X_DAY_OF; + +# define OSSL_TIME_SPEC_DAY_TYPE_INT 0 +# define OSSL_TIME_SPEC_DAY_TYPE_BIT 1 +# define OSSL_TIME_SPEC_DAY_TYPE_DAY_OF 2 +# define OSSL_TIME_SPEC_DAY_BIT_SUN 0 +# define OSSL_TIME_SPEC_DAY_BIT_MON 1 +# define OSSL_TIME_SPEC_DAY_BIT_TUE 2 +# define OSSL_TIME_SPEC_DAY_BIT_WED 3 +# define OSSL_TIME_SPEC_DAY_BIT_THU 4 +# define OSSL_TIME_SPEC_DAY_BIT_FRI 5 +# define OSSL_TIME_SPEC_DAY_BIT_SAT 6 +# define OSSL_TIME_SPEC_DAY_INT_SUN 1 +# define OSSL_TIME_SPEC_DAY_INT_MON 2 +# define OSSL_TIME_SPEC_DAY_INT_TUE 3 +# define OSSL_TIME_SPEC_DAY_INT_WED 4 +# define OSSL_TIME_SPEC_DAY_INT_THU 5 +# define OSSL_TIME_SPEC_DAY_INT_FRI 6 +# define OSSL_TIME_SPEC_DAY_INT_SAT 7 + +typedef struct OSSL_TIME_SPEC_DAY_st { + int type; + union { + STACK_OF(ASN1_INTEGER) *intDay; + ASN1_BIT_STRING *bitDay; + OSSL_TIME_SPEC_X_DAY_OF *dayOf; + } choice; +} OSSL_TIME_SPEC_DAY; + +# define OSSL_TIME_SPEC_WEEKS_TYPE_ALL 0 +# define OSSL_TIME_SPEC_WEEKS_TYPE_INT 1 +# define OSSL_TIME_SPEC_WEEKS_TYPE_BIT 2 +# define OSSL_TIME_SPEC_BIT_WEEKS_1 0 +# define OSSL_TIME_SPEC_BIT_WEEKS_2 1 +# define OSSL_TIME_SPEC_BIT_WEEKS_3 2 +# define OSSL_TIME_SPEC_BIT_WEEKS_4 3 +# define OSSL_TIME_SPEC_BIT_WEEKS_5 4 + +typedef struct OSSL_TIME_SPEC_WEEKS_st { + int type; + union { + ASN1_NULL *allWeeks; + STACK_OF(ASN1_INTEGER) *intWeek; + ASN1_BIT_STRING *bitWeek; + } choice; +} OSSL_TIME_SPEC_WEEKS; + +# define OSSL_TIME_SPEC_MONTH_TYPE_ALL 0 +# define OSSL_TIME_SPEC_MONTH_TYPE_INT 1 +# define OSSL_TIME_SPEC_MONTH_TYPE_BIT 2 +# define OSSL_TIME_SPEC_INT_MONTH_JAN 1 +# define OSSL_TIME_SPEC_INT_MONTH_FEB 2 +# define OSSL_TIME_SPEC_INT_MONTH_MAR 3 +# define OSSL_TIME_SPEC_INT_MONTH_APR 4 +# define OSSL_TIME_SPEC_INT_MONTH_MAY 5 +# define OSSL_TIME_SPEC_INT_MONTH_JUN 6 +# define OSSL_TIME_SPEC_INT_MONTH_JUL 7 +# define OSSL_TIME_SPEC_INT_MONTH_AUG 8 +# define OSSL_TIME_SPEC_INT_MONTH_SEP 9 +# define OSSL_TIME_SPEC_INT_MONTH_OCT 10 +# define OSSL_TIME_SPEC_INT_MONTH_NOV 11 +# define OSSL_TIME_SPEC_INT_MONTH_DEC 12 +# define OSSL_TIME_SPEC_BIT_MONTH_JAN 0 +# define OSSL_TIME_SPEC_BIT_MONTH_FEB 1 +# define OSSL_TIME_SPEC_BIT_MONTH_MAR 2 +# define OSSL_TIME_SPEC_BIT_MONTH_APR 3 +# define OSSL_TIME_SPEC_BIT_MONTH_MAY 4 +# define OSSL_TIME_SPEC_BIT_MONTH_JUN 5 +# define OSSL_TIME_SPEC_BIT_MONTH_JUL 6 +# define OSSL_TIME_SPEC_BIT_MONTH_AUG 7 +# define OSSL_TIME_SPEC_BIT_MONTH_SEP 8 +# define OSSL_TIME_SPEC_BIT_MONTH_OCT 9 +# define OSSL_TIME_SPEC_BIT_MONTH_NOV 10 +# define OSSL_TIME_SPEC_BIT_MONTH_DEC 11 + +typedef struct OSSL_TIME_SPEC_MONTH_st { + int type; + union { + ASN1_NULL *allMonths; + STACK_OF(ASN1_INTEGER) *intMonth; + ASN1_BIT_STRING *bitMonth; + } choice; +} OSSL_TIME_SPEC_MONTH; + +typedef struct OSSL_TIME_PERIOD_st { + STACK_OF(OSSL_DAY_TIME_BAND) *timesOfDay; + OSSL_TIME_SPEC_DAY *days; + OSSL_TIME_SPEC_WEEKS *weeks; + OSSL_TIME_SPEC_MONTH *months; + STACK_OF(ASN1_INTEGER) *years; +} OSSL_TIME_PERIOD; + +# define OSSL_TIME_SPEC_TIME_TYPE_ABSOLUTE 0 +# define OSSL_TIME_SPEC_TIME_TYPE_PERIODIC 1 + +typedef struct OSSL_TIME_SPEC_TIME_st { + int type; + union { + OSSL_TIME_SPEC_ABSOLUTE *absolute; + STACK_OF(OSSL_TIME_PERIOD) *periodic; + } choice; +} OSSL_TIME_SPEC_TIME; + +typedef struct OSSL_TIME_SPEC_st { + OSSL_TIME_SPEC_TIME *time; + ASN1_BOOLEAN notThisTime; + ASN1_INTEGER *timeZone; +} OSSL_TIME_SPEC; + +DECLARE_ASN1_FUNCTIONS(OSSL_DAY_TIME) +DECLARE_ASN1_FUNCTIONS(OSSL_DAY_TIME_BAND) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_DAY) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_WEEKS) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_MONTH) +DECLARE_ASN1_FUNCTIONS(OSSL_NAMED_DAY) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_X_DAY_OF) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_ABSOLUTE) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_TIME) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_PERIOD) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_TIME_PERIOD, OSSL_TIME_PERIOD, OSSL_TIME_PERIOD) +#define sk_OSSL_TIME_PERIOD_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_value(sk, idx) ((OSSL_TIME_PERIOD *)OPENSSL_sk_value(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk), (idx))) +#define sk_OSSL_TIME_PERIOD_new(cmp) ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_new(ossl_check_OSSL_TIME_PERIOD_compfunc_type(cmp))) +#define sk_OSSL_TIME_PERIOD_new_null() ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_new_null()) +#define sk_OSSL_TIME_PERIOD_new_reserve(cmp, n) ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_TIME_PERIOD_compfunc_type(cmp), (n))) +#define sk_OSSL_TIME_PERIOD_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), (n)) +#define sk_OSSL_TIME_PERIOD_free(sk) OPENSSL_sk_free(ossl_check_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_delete(sk, i) ((OSSL_TIME_PERIOD *)OPENSSL_sk_delete(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), (i))) +#define sk_OSSL_TIME_PERIOD_delete_ptr(sk, ptr) ((OSSL_TIME_PERIOD *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr))) +#define sk_OSSL_TIME_PERIOD_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr)) +#define sk_OSSL_TIME_PERIOD_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr)) +#define sk_OSSL_TIME_PERIOD_pop(sk) ((OSSL_TIME_PERIOD *)OPENSSL_sk_pop(ossl_check_OSSL_TIME_PERIOD_sk_type(sk))) +#define sk_OSSL_TIME_PERIOD_shift(sk) ((OSSL_TIME_PERIOD *)OPENSSL_sk_shift(ossl_check_OSSL_TIME_PERIOD_sk_type(sk))) +#define sk_OSSL_TIME_PERIOD_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_TIME_PERIOD_sk_type(sk),ossl_check_OSSL_TIME_PERIOD_freefunc_type(freefunc)) +#define sk_OSSL_TIME_PERIOD_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr), (idx)) +#define sk_OSSL_TIME_PERIOD_set(sk, idx, ptr) ((OSSL_TIME_PERIOD *)OPENSSL_sk_set(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), (idx), ossl_check_OSSL_TIME_PERIOD_type(ptr))) +#define sk_OSSL_TIME_PERIOD_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr)) +#define sk_OSSL_TIME_PERIOD_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr)) +#define sk_OSSL_TIME_PERIOD_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr), pnum) +#define sk_OSSL_TIME_PERIOD_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_dup(sk) ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_dup(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk))) +#define sk_OSSL_TIME_PERIOD_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_copyfunc_type(copyfunc), ossl_check_OSSL_TIME_PERIOD_freefunc_type(freefunc))) +#define sk_OSSL_TIME_PERIOD_set_cmp_func(sk, cmp) ((sk_OSSL_TIME_PERIOD_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_compfunc_type(cmp))) + + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_DAY_TIME_BAND, OSSL_DAY_TIME_BAND, OSSL_DAY_TIME_BAND) +#define sk_OSSL_DAY_TIME_BAND_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_value(sk, idx) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_value(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk), (idx))) +#define sk_OSSL_DAY_TIME_BAND_new(cmp) ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_new(ossl_check_OSSL_DAY_TIME_BAND_compfunc_type(cmp))) +#define sk_OSSL_DAY_TIME_BAND_new_null() ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_new_null()) +#define sk_OSSL_DAY_TIME_BAND_new_reserve(cmp, n) ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_DAY_TIME_BAND_compfunc_type(cmp), (n))) +#define sk_OSSL_DAY_TIME_BAND_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), (n)) +#define sk_OSSL_DAY_TIME_BAND_free(sk) OPENSSL_sk_free(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_delete(sk, i) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_delete(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), (i))) +#define sk_OSSL_DAY_TIME_BAND_delete_ptr(sk, ptr) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr))) +#define sk_OSSL_DAY_TIME_BAND_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr)) +#define sk_OSSL_DAY_TIME_BAND_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr)) +#define sk_OSSL_DAY_TIME_BAND_pop(sk) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_pop(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk))) +#define sk_OSSL_DAY_TIME_BAND_shift(sk) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_shift(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk))) +#define sk_OSSL_DAY_TIME_BAND_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk),ossl_check_OSSL_DAY_TIME_BAND_freefunc_type(freefunc)) +#define sk_OSSL_DAY_TIME_BAND_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr), (idx)) +#define sk_OSSL_DAY_TIME_BAND_set(sk, idx, ptr) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_set(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), (idx), ossl_check_OSSL_DAY_TIME_BAND_type(ptr))) +#define sk_OSSL_DAY_TIME_BAND_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr)) +#define sk_OSSL_DAY_TIME_BAND_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr)) +#define sk_OSSL_DAY_TIME_BAND_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr), pnum) +#define sk_OSSL_DAY_TIME_BAND_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_dup(sk) ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_dup(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk))) +#define sk_OSSL_DAY_TIME_BAND_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_copyfunc_type(copyfunc), ossl_check_OSSL_DAY_TIME_BAND_freefunc_type(freefunc))) +#define sk_OSSL_DAY_TIME_BAND_set_cmp_func(sk, cmp) ((sk_OSSL_DAY_TIME_BAND_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_compfunc_type(cmp))) + + +/* Attribute Type and Value */ +typedef struct atav_st { + ASN1_OBJECT *type; + ASN1_TYPE *value; +} OSSL_ATAV; + +typedef struct ATTRIBUTE_TYPE_MAPPING_st { + ASN1_OBJECT *local; + ASN1_OBJECT *remote; +} OSSL_ATTRIBUTE_TYPE_MAPPING; + +typedef struct ATTRIBUTE_VALUE_MAPPING_st { + OSSL_ATAV *local; + OSSL_ATAV *remote; +} OSSL_ATTRIBUTE_VALUE_MAPPING; + +# define OSSL_ATTR_MAP_TYPE 0 +# define OSSL_ATTR_MAP_VALUE 1 + +typedef struct ATTRIBUTE_MAPPING_st { + int type; + union { + OSSL_ATTRIBUTE_TYPE_MAPPING *typeMappings; + OSSL_ATTRIBUTE_VALUE_MAPPING *typeValueMappings; + } choice; +} OSSL_ATTRIBUTE_MAPPING; + +typedef STACK_OF(OSSL_ATTRIBUTE_MAPPING) OSSL_ATTRIBUTE_MAPPINGS; +DECLARE_ASN1_FUNCTIONS(OSSL_ATAV) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_TYPE_MAPPING) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_VALUE_MAPPING) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_MAPPING) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_MAPPINGS) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ATTRIBUTE_MAPPING, OSSL_ATTRIBUTE_MAPPING, OSSL_ATTRIBUTE_MAPPING) +#define sk_OSSL_ATTRIBUTE_MAPPING_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_value(sk, idx) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_value(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), (idx))) +#define sk_OSSL_ATTRIBUTE_MAPPING_new(cmp) ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_new(ossl_check_OSSL_ATTRIBUTE_MAPPING_compfunc_type(cmp))) +#define sk_OSSL_ATTRIBUTE_MAPPING_new_null() ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ATTRIBUTE_MAPPING_new_reserve(cmp, n) ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ATTRIBUTE_MAPPING_compfunc_type(cmp), (n))) +#define sk_OSSL_ATTRIBUTE_MAPPING_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), (n)) +#define sk_OSSL_ATTRIBUTE_MAPPING_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_delete(sk, i) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_delete(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), (i))) +#define sk_OSSL_ATTRIBUTE_MAPPING_delete_ptr(sk, ptr) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr))) +#define sk_OSSL_ATTRIBUTE_MAPPING_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr)) +#define sk_OSSL_ATTRIBUTE_MAPPING_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr)) +#define sk_OSSL_ATTRIBUTE_MAPPING_pop(sk) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_pop(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk))) +#define sk_OSSL_ATTRIBUTE_MAPPING_shift(sk) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_shift(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk))) +#define sk_OSSL_ATTRIBUTE_MAPPING_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk),ossl_check_OSSL_ATTRIBUTE_MAPPING_freefunc_type(freefunc)) +#define sk_OSSL_ATTRIBUTE_MAPPING_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr), (idx)) +#define sk_OSSL_ATTRIBUTE_MAPPING_set(sk, idx, ptr) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_set(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), (idx), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr))) +#define sk_OSSL_ATTRIBUTE_MAPPING_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr)) +#define sk_OSSL_ATTRIBUTE_MAPPING_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr)) +#define sk_OSSL_ATTRIBUTE_MAPPING_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr), pnum) +#define sk_OSSL_ATTRIBUTE_MAPPING_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_dup(sk) ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk))) +#define sk_OSSL_ATTRIBUTE_MAPPING_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_copyfunc_type(copyfunc), ossl_check_OSSL_ATTRIBUTE_MAPPING_freefunc_type(freefunc))) +#define sk_OSSL_ATTRIBUTE_MAPPING_set_cmp_func(sk, cmp) ((sk_OSSL_ATTRIBUTE_MAPPING_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_compfunc_type(cmp))) + + +# define OSSL_AAA_ATTRIBUTE_TYPE 0 +# define OSSL_AAA_ATTRIBUTE_VALUES 1 + +typedef struct ALLOWED_ATTRIBUTES_CHOICE_st { + int type; + union { + ASN1_OBJECT *attributeType; + X509_ATTRIBUTE *attributeTypeandValues; + } choice; +} OSSL_ALLOWED_ATTRIBUTES_CHOICE; + +typedef struct ALLOWED_ATTRIBUTES_ITEM_st { + STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *attributes; + GENERAL_NAME *holderDomain; +} OSSL_ALLOWED_ATTRIBUTES_ITEM; + +typedef STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) OSSL_ALLOWED_ATTRIBUTES_SYNTAX; + +DECLARE_ASN1_FUNCTIONS(OSSL_ALLOWED_ATTRIBUTES_CHOICE) +DECLARE_ASN1_FUNCTIONS(OSSL_ALLOWED_ATTRIBUTES_ITEM) +DECLARE_ASN1_FUNCTIONS(OSSL_ALLOWED_ATTRIBUTES_SYNTAX) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ALLOWED_ATTRIBUTES_CHOICE, OSSL_ALLOWED_ATTRIBUTES_CHOICE, OSSL_ALLOWED_ATTRIBUTES_CHOICE) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_value(sk, idx) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_value(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), (idx))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_new(cmp) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_new(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_compfunc_type(cmp))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_new_null() ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_new_reserve(cmp, n) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_compfunc_type(cmp), (n))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), (n)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_delete(sk, i) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_delete(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), (i))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_delete_ptr(sk, ptr) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_pop(sk) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_pop(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_shift(sk) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_shift(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk),ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_freefunc_type(freefunc)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr), (idx)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_set(sk, idx, ptr) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_set(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), (idx), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr), pnum) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_dup(sk) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_copyfunc_type(copyfunc), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_freefunc_type(freefunc))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_set_cmp_func(sk, cmp) ((sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_compfunc_type(cmp))) + + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ALLOWED_ATTRIBUTES_ITEM, OSSL_ALLOWED_ATTRIBUTES_ITEM, OSSL_ALLOWED_ATTRIBUTES_ITEM) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_value(sk, idx) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_value(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), (idx))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_new(cmp) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_new(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_compfunc_type(cmp))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_new_null() ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_new_reserve(cmp, n) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_compfunc_type(cmp), (n))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), (n)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_delete(sk, i) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_delete(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), (i))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_delete_ptr(sk, ptr) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_pop(sk) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_pop(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_shift(sk) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_shift(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk),ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_freefunc_type(freefunc)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr), (idx)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_set(sk, idx, ptr) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_set(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), (idx), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr), pnum) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_dup(sk) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_copyfunc_type(copyfunc), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_freefunc_type(freefunc))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_set_cmp_func(sk, cmp) ((sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_compfunc_type(cmp))) + + +typedef struct AA_DIST_POINT_st { + DIST_POINT_NAME *distpoint; + ASN1_BIT_STRING *reasons; + int dp_reasons; + ASN1_BOOLEAN indirectCRL; + ASN1_BOOLEAN containsUserAttributeCerts; + ASN1_BOOLEAN containsAACerts; + ASN1_BOOLEAN containsSOAPublicKeyCerts; +} OSSL_AA_DIST_POINT; + +DECLARE_ASN1_FUNCTIONS(OSSL_AA_DIST_POINT) + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/asm/include/progs.h b/deps/openssl/config/archs/darwin64-arm64-cc/asm/include/progs.h index be55f61503d405..1b62ec37dec130 100644 --- a/deps/openssl/config/archs/darwin64-arm64-cc/asm/include/progs.h +++ b/deps/openssl/config/archs/darwin64-arm64-cc/asm/include/progs.h @@ -56,6 +56,7 @@ extern int s_client_main(int argc, char *argv[]); extern int s_server_main(int argc, char *argv[]); extern int s_time_main(int argc, char *argv[]); extern int sess_id_main(int argc, char *argv[]); +extern int skeyutl_main(int argc, char *argv[]); extern int smime_main(int argc, char *argv[]); extern int speed_main(int argc, char *argv[]); extern int spkac_main(int argc, char *argv[]); @@ -110,6 +111,7 @@ extern const OPTIONS s_client_options[]; extern const OPTIONS s_server_options[]; extern const OPTIONS s_time_options[]; extern const OPTIONS sess_id_options[]; +extern const OPTIONS skeyutl_options[]; extern const OPTIONS smime_options[]; extern const OPTIONS speed_options[]; extern const OPTIONS spkac_options[]; diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/asm/openssl-cl.gypi b/deps/openssl/config/archs/darwin64-arm64-cc/asm/openssl-cl.gypi index 211af61d7ae9ca..6d8634febd3575 100644 --- a/deps/openssl/config/archs/darwin64-arm64-cc/asm/openssl-cl.gypi +++ b/deps/openssl/config/archs/darwin64-arm64-cc/asm/openssl-cl.gypi @@ -4,15 +4,21 @@ 'NDEBUG', 'L_ENDIAN', 'OPENSSL_BUILDING_OPENSSL', + 'BSAES_ASM', 'ECP_NISTZ256_ASM', + 'ECP_SM2P256_ASM', 'KECCAK1600_ASM', + 'MD5_ASM', 'OPENSSL_BN_ASM_MONT', 'OPENSSL_CPUID_OBJ', + 'OPENSSL_SM3_ASM', 'POLY1305_ASM', 'SHA1_ASM', 'SHA256_ASM', 'SHA512_ASM', + 'SM4_ASM', 'VPAES_ASM', + 'VPSM4_ASM', 'OPENSSL_PIC', ], 'openssl_cflags_darwin64-arm64-cc': [ @@ -71,6 +77,7 @@ 'openssl/apps/s_server.c', 'openssl/apps/s_time.c', 'openssl/apps/sess_id.c', + 'openssl/apps/skeyutl.c', 'openssl/apps/smime.c', 'openssl/apps/speed.c', 'openssl/apps/spkac.c', @@ -86,12 +93,14 @@ 'openssl/apps/lib/app_rand.c', 'openssl/apps/lib/app_x509.c', 'openssl/apps/lib/apps.c', + 'openssl/apps/lib/apps_opt_printf.c', 'openssl/apps/lib/apps_ui.c', 'openssl/apps/lib/columns.c', 'openssl/apps/lib/engine.c', 'openssl/apps/lib/engine_loader.c', 'openssl/apps/lib/fmt.c', 'openssl/apps/lib/http_server.c', + 'openssl/apps/lib/log.c', 'openssl/apps/lib/names.c', 'openssl/apps/lib/opt.c', 'openssl/apps/lib/s_cb.c', diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/asm/openssl-fips.gypi b/deps/openssl/config/archs/darwin64-arm64-cc/asm/openssl-fips.gypi index 92ce5d9a95d7db..d942744f24a951 100644 --- a/deps/openssl/config/archs/darwin64-arm64-cc/asm/openssl-fips.gypi +++ b/deps/openssl/config/archs/darwin64-arm64-cc/asm/openssl-fips.gypi @@ -83,6 +83,8 @@ 'openssl/crypto/ec/ecp_nist.c', 'openssl/crypto/ec/ecp_nistz256.c', 'openssl/crypto/ec/ecp_oct.c', + 'openssl/crypto/ec/ecp_sm2p256.c', + 'openssl/crypto/ec/ecp_sm2p256_table.c', 'openssl/crypto/ec/ecp_smpl.c', 'openssl/crypto/ec/ecx_backend.c', 'openssl/crypto/ec/ecx_key.c', @@ -101,14 +103,15 @@ 'openssl/crypto/evp/kem.c', 'openssl/crypto/evp/keymgmt_lib.c', 'openssl/crypto/evp/keymgmt_meth.c', - 'openssl/crypto/evp/m_sigver.c', 'openssl/crypto/evp/mac_lib.c', 'openssl/crypto/evp/mac_meth.c', 'openssl/crypto/evp/p_lib.c', 'openssl/crypto/evp/pmeth_check.c', 'openssl/crypto/evp/pmeth_gn.c', 'openssl/crypto/evp/pmeth_lib.c', + 'openssl/crypto/evp/s_lib.c', 'openssl/crypto/evp/signature.c', + 'openssl/crypto/evp/skeymgmt_meth.c', 'openssl/crypto/ffc/ffc_backend.c', 'openssl/crypto/ffc/ffc_dh.c', 'openssl/crypto/ffc/ffc_key_generate.c', @@ -116,6 +119,8 @@ 'openssl/crypto/ffc/ffc_params.c', 'openssl/crypto/ffc/ffc_params_generate.c', 'openssl/crypto/ffc/ffc_params_validate.c', + 'openssl/crypto/hashtable/hashfunc.c', + 'openssl/crypto/hashtable/hashtable.c', 'openssl/crypto/hmac/hmac.c', 'openssl/crypto/lhash/lhash.c', 'openssl/crypto/armcap.c', @@ -146,6 +151,16 @@ 'openssl/crypto/threads_none.c', 'openssl/crypto/threads_pthread.c', 'openssl/crypto/threads_win.c', + 'openssl/crypto/time.c', + 'openssl/crypto/ml_dsa/ml_dsa_encoders.c', + 'openssl/crypto/ml_dsa/ml_dsa_key.c', + 'openssl/crypto/ml_dsa/ml_dsa_key_compress.c', + 'openssl/crypto/ml_dsa/ml_dsa_matrix.c', + 'openssl/crypto/ml_dsa/ml_dsa_ntt.c', + 'openssl/crypto/ml_dsa/ml_dsa_params.c', + 'openssl/crypto/ml_dsa/ml_dsa_sample.c', + 'openssl/crypto/ml_dsa/ml_dsa_sign.c', + 'openssl/crypto/ml_kem/ml_kem.c', 'openssl/crypto/modes/cbc128.c', 'openssl/crypto/modes/ccm128.c', 'openssl/crypto/modes/cfb128.c', @@ -154,6 +169,7 @@ 'openssl/crypto/modes/ofb128.c', 'openssl/crypto/modes/wrap128.c', 'openssl/crypto/modes/xts128.c', + 'openssl/crypto/modes/xts128gb.c', 'openssl/crypto/property/defn_cache.c', 'openssl/crypto/property/property.c', 'openssl/crypto/property/property_parse.c', @@ -181,7 +197,23 @@ 'openssl/crypto/sha/sha256.c', 'openssl/crypto/sha/sha3.c', 'openssl/crypto/sha/sha512.c', + 'openssl/crypto/slh_dsa/slh_adrs.c', + 'openssl/crypto/slh_dsa/slh_dsa.c', + 'openssl/crypto/slh_dsa/slh_dsa_hash_ctx.c', + 'openssl/crypto/slh_dsa/slh_dsa_key.c', + 'openssl/crypto/slh_dsa/slh_fors.c', + 'openssl/crypto/slh_dsa/slh_hash.c', + 'openssl/crypto/slh_dsa/slh_hypertree.c', + 'openssl/crypto/slh_dsa/slh_params.c', + 'openssl/crypto/slh_dsa/slh_wots.c', + 'openssl/crypto/slh_dsa/slh_xmss.c', 'openssl/crypto/stack/stack.c', + 'openssl/crypto/thread/arch/thread_none.c', + 'openssl/crypto/thread/arch/thread_posix.c', + 'openssl/crypto/thread/arch/thread_win.c', + 'openssl/crypto/thread/api.c', + 'openssl/crypto/thread/arch.c', + 'openssl/crypto/thread/internal.c', 'openssl/providers/common/der/der_rsa_sig.c', 'openssl/providers/common/bio_prov.c', 'openssl/providers/common/capabilities.c', @@ -190,6 +222,7 @@ 'openssl/providers/common/provider_util.c', 'openssl/providers/common/securitycheck.c', 'openssl/providers/common/securitycheck_fips.c', + 'openssl/providers/fips/fipsindicator.c', 'openssl/providers/fips/fipsprov.c', 'openssl/providers/fips/self_test.c', 'openssl/providers/fips/self_test_kats.c', @@ -227,6 +260,8 @@ 'openssl/providers/implementations/kdfs/sskdf.c', 'openssl/providers/implementations/kdfs/tls1_prf.c', 'openssl/providers/implementations/kdfs/x942kdf.c', + 'openssl/providers/implementations/kem/ml_kem_kem.c', + 'openssl/providers/implementations/kem/mlx_kem.c', 'openssl/providers/implementations/kem/rsa_kem.c', 'openssl/providers/implementations/keymgmt/dh_kmgmt.c', 'openssl/providers/implementations/keymgmt/dsa_kmgmt.c', @@ -234,29 +269,39 @@ 'openssl/providers/implementations/keymgmt/ecx_kmgmt.c', 'openssl/providers/implementations/keymgmt/kdf_legacy_kmgmt.c', 'openssl/providers/implementations/keymgmt/mac_legacy_kmgmt.c', + 'openssl/providers/implementations/keymgmt/ml_dsa_kmgmt.c', + 'openssl/providers/implementations/keymgmt/ml_kem_kmgmt.c', + 'openssl/providers/implementations/keymgmt/mlx_kmgmt.c', 'openssl/providers/implementations/keymgmt/rsa_kmgmt.c', + 'openssl/providers/implementations/keymgmt/slh_dsa_kmgmt.c', 'openssl/providers/implementations/macs/cmac_prov.c', 'openssl/providers/implementations/macs/gmac_prov.c', 'openssl/providers/implementations/macs/hmac_prov.c', 'openssl/providers/implementations/macs/kmac_prov.c', - 'openssl/providers/implementations/rands/crngt.c', 'openssl/providers/implementations/rands/drbg.c', 'openssl/providers/implementations/rands/drbg_ctr.c', 'openssl/providers/implementations/rands/drbg_hash.c', 'openssl/providers/implementations/rands/drbg_hmac.c', + 'openssl/providers/implementations/rands/fips_crng_test.c', 'openssl/providers/implementations/rands/test_rng.c', 'openssl/providers/implementations/signature/dsa_sig.c', 'openssl/providers/implementations/signature/ecdsa_sig.c', 'openssl/providers/implementations/signature/eddsa_sig.c', 'openssl/providers/implementations/signature/mac_legacy_sig.c', + 'openssl/providers/implementations/signature/ml_dsa_sig.c', 'openssl/providers/implementations/signature/rsa_sig.c', - 'openssl/ssl/s3_cbc.c', + 'openssl/providers/implementations/signature/slh_dsa_sig.c', + 'openssl/providers/implementations/skeymgmt/aes_skmgmt.c', + 'openssl/providers/implementations/skeymgmt/generic.c', + 'openssl/ssl/record/methods/ssl3_cbc.c', 'openssl/providers/common/der/der_dsa_key.c', 'openssl/providers/common/der/der_dsa_sig.c', 'openssl/providers/common/der/der_ec_key.c', 'openssl/providers/common/der/der_ec_sig.c', 'openssl/providers/common/der/der_ecx_key.c', + 'openssl/providers/common/der/der_ml_dsa_key.c', 'openssl/providers/common/der/der_rsa_key.c', + 'openssl/providers/common/der/der_slh_dsa_key.c', 'openssl/providers/common/provider_ctx.c', 'openssl/providers/common/provider_err.c', 'openssl/providers/implementations/ciphers/ciphercommon.c', @@ -267,17 +312,23 @@ 'openssl/providers/implementations/ciphers/ciphercommon_gcm_hw.c', 'openssl/providers/implementations/ciphers/ciphercommon_hw.c', 'openssl/providers/implementations/digests/digestcommon.c', - 'openssl/ssl/record/tls_pad.c', + 'openssl/ssl/record/methods/tls_pad.c', 'openssl/providers/fips/fips_entry.c', ], 'openssl_sources_darwin64-arm64-cc': [ './config/archs/darwin64-arm64-cc/asm/crypto/aes/aesv8-armx.S', + './config/archs/darwin64-arm64-cc/asm/crypto/aes/bsaes-armv8.S', './config/archs/darwin64-arm64-cc/asm/crypto/aes/vpaes-armv8.S', './config/archs/darwin64-arm64-cc/asm/crypto/bn/armv8-mont.S', + './config/archs/darwin64-arm64-cc/asm/crypto/chacha/chacha-armv8-sve.S', './config/archs/darwin64-arm64-cc/asm/crypto/chacha/chacha-armv8.S', './config/archs/darwin64-arm64-cc/asm/crypto/ec/ecp_nistz256-armv8.S', + './config/archs/darwin64-arm64-cc/asm/crypto/ec/ecp_sm2p256-armv8.S', './config/archs/darwin64-arm64-cc/asm/crypto/arm64cpuid.S', + './config/archs/darwin64-arm64-cc/asm/crypto/params_idx.c', + './config/archs/darwin64-arm64-cc/asm/crypto/md5/md5-aarch64.S', + './config/archs/darwin64-arm64-cc/asm/crypto/modes/aes-gcm-armv8-unroll8_64.S', './config/archs/darwin64-arm64-cc/asm/crypto/modes/aes-gcm-armv8_64.S', './config/archs/darwin64-arm64-cc/asm/crypto/modes/ghashv8-armx.S', './config/archs/darwin64-arm64-cc/asm/crypto/poly1305/poly1305-armv8.S', @@ -285,12 +336,18 @@ './config/archs/darwin64-arm64-cc/asm/crypto/sha/sha1-armv8.S', './config/archs/darwin64-arm64-cc/asm/crypto/sha/sha256-armv8.S', './config/archs/darwin64-arm64-cc/asm/crypto/sha/sha512-armv8.S', + './config/archs/darwin64-arm64-cc/asm/crypto/sm3/sm3-armv8.S', + './config/archs/darwin64-arm64-cc/asm/crypto/sm4/sm4-armv8.S', + './config/archs/darwin64-arm64-cc/asm/crypto/sm4/vpsm4-armv8.S', + './config/archs/darwin64-arm64-cc/asm/crypto/sm4/vpsm4_ex-armv8.S', './config/archs/darwin64-arm64-cc/asm/providers/common/der/der_sm2_gen.c', './config/archs/darwin64-arm64-cc/asm/providers/common/der/der_digests_gen.c', './config/archs/darwin64-arm64-cc/asm/providers/common/der/der_dsa_gen.c', './config/archs/darwin64-arm64-cc/asm/providers/common/der/der_ec_gen.c', './config/archs/darwin64-arm64-cc/asm/providers/common/der/der_ecx_gen.c', + './config/archs/darwin64-arm64-cc/asm/providers/common/der/der_ml_dsa_gen.c', './config/archs/darwin64-arm64-cc/asm/providers/common/der/der_rsa_gen.c', + './config/archs/darwin64-arm64-cc/asm/providers/common/der/der_slh_dsa_gen.c', './config/archs/darwin64-arm64-cc/asm/providers/common/der/der_wrap_gen.c', ], @@ -298,7 +355,9 @@ 'NDEBUG', 'L_ENDIAN', 'OPENSSL_BUILDING_OPENSSL', + 'BSAES_ASM', 'ECP_NISTZ256_ASM', + 'ECP_SM2P256_ASM', 'FIPS_MODULE', 'KECCAK1600_ASM', 'OPENSSL_BN_ASM_MONT', @@ -306,7 +365,9 @@ 'SHA1_ASM', 'SHA256_ASM', 'SHA512_ASM', + 'SM4_ASM', 'VPAES_ASM', + 'VPSM4_ASM', 'FIPS_MODULE', ], 'openssl_cflags_darwin64-arm64-cc': [ diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/asm/openssl.gypi b/deps/openssl/config/archs/darwin64-arm64-cc/asm/openssl.gypi index 5028c50d6ab6e8..b3ddc67124bc4d 100644 --- a/deps/openssl/config/archs/darwin64-arm64-cc/asm/openssl.gypi +++ b/deps/openssl/config/archs/darwin64-arm64-cc/asm/openssl.gypi @@ -7,14 +7,15 @@ 'openssl/ssl/d1_srtp.c', 'openssl/ssl/methods.c', 'openssl/ssl/pqueue.c', + 'openssl/ssl/priority_queue.c', 'openssl/ssl/s3_enc.c', 'openssl/ssl/s3_lib.c', 'openssl/ssl/s3_msg.c', 'openssl/ssl/ssl_asn1.c', 'openssl/ssl/ssl_cert.c', + 'openssl/ssl/ssl_cert_comp.c', 'openssl/ssl/ssl_ciph.c', 'openssl/ssl/ssl_conf.c', - 'openssl/ssl/ssl_err.c', 'openssl/ssl/ssl_err_legacy.c', 'openssl/ssl/ssl_init.c', 'openssl/ssl/ssl_lib.c', @@ -31,12 +32,60 @@ 'openssl/ssl/tls13_enc.c', 'openssl/ssl/tls_depr.c', 'openssl/ssl/tls_srp.c', - 'openssl/ssl/record/dtls1_bitmap.c', + 'openssl/ssl/quic/cc_newreno.c', + 'openssl/ssl/quic/json_enc.c', + 'openssl/ssl/quic/qlog.c', + 'openssl/ssl/quic/qlog_event_helpers.c', + 'openssl/ssl/quic/quic_ackm.c', + 'openssl/ssl/quic/quic_cfq.c', + 'openssl/ssl/quic/quic_channel.c', + 'openssl/ssl/quic/quic_demux.c', + 'openssl/ssl/quic/quic_engine.c', + 'openssl/ssl/quic/quic_fc.c', + 'openssl/ssl/quic/quic_fifd.c', + 'openssl/ssl/quic/quic_impl.c', + 'openssl/ssl/quic/quic_lcidm.c', + 'openssl/ssl/quic/quic_method.c', + 'openssl/ssl/quic/quic_obj.c', + 'openssl/ssl/quic/quic_port.c', + 'openssl/ssl/quic/quic_rcidm.c', + 'openssl/ssl/quic/quic_reactor.c', + 'openssl/ssl/quic/quic_reactor_wait_ctx.c', + 'openssl/ssl/quic/quic_record_rx.c', + 'openssl/ssl/quic/quic_record_shared.c', + 'openssl/ssl/quic/quic_record_tx.c', + 'openssl/ssl/quic/quic_record_util.c', + 'openssl/ssl/quic/quic_rstream.c', + 'openssl/ssl/quic/quic_rx_depack.c', + 'openssl/ssl/quic/quic_sf_list.c', + 'openssl/ssl/quic/quic_srt_gen.c', + 'openssl/ssl/quic/quic_srtm.c', + 'openssl/ssl/quic/quic_sstream.c', + 'openssl/ssl/quic/quic_statm.c', + 'openssl/ssl/quic/quic_stream_map.c', + 'openssl/ssl/quic/quic_thread_assist.c', + 'openssl/ssl/quic/quic_tls.c', + 'openssl/ssl/quic/quic_tls_api.c', + 'openssl/ssl/quic/quic_trace.c', + 'openssl/ssl/quic/quic_tserver.c', + 'openssl/ssl/quic/quic_txp.c', + 'openssl/ssl/quic/quic_txpim.c', + 'openssl/ssl/quic/quic_types.c', + 'openssl/ssl/quic/quic_wire.c', + 'openssl/ssl/quic/quic_wire_pkt.c', + 'openssl/ssl/quic/uint_set.c', 'openssl/ssl/record/rec_layer_d1.c', 'openssl/ssl/record/rec_layer_s3.c', - 'openssl/ssl/record/ssl3_buffer.c', - 'openssl/ssl/record/ssl3_record.c', - 'openssl/ssl/record/ssl3_record_tls13.c', + 'openssl/ssl/record/methods/dtls_meth.c', + 'openssl/ssl/record/methods/ssl3_meth.c', + 'openssl/ssl/record/methods/tls13_meth.c', + 'openssl/ssl/record/methods/tls1_meth.c', + 'openssl/ssl/record/methods/tls_common.c', + 'openssl/ssl/record/methods/tls_multib.c', + 'openssl/ssl/record/methods/tlsany_meth.c', + 'openssl/ssl/rio/poll_builder.c', + 'openssl/ssl/rio/poll_immediate.c', + 'openssl/ssl/rio/rio_notifier.c', 'openssl/ssl/statem/extensions.c', 'openssl/ssl/statem/extensions_clnt.c', 'openssl/ssl/statem/extensions_cust.c', @@ -150,6 +199,7 @@ 'openssl/crypto/bio/bss_conn.c', 'openssl/crypto/bio/bss_core.c', 'openssl/crypto/bio/bss_dgram.c', + 'openssl/crypto/bio/bss_dgram_pair.c', 'openssl/crypto/bio/bss_fd.c', 'openssl/crypto/bio/bss_file.c', 'openssl/crypto/bio/bss_log.c', @@ -209,6 +259,7 @@ 'openssl/crypto/cmp/cmp_client.c', 'openssl/crypto/cmp/cmp_ctx.c', 'openssl/crypto/cmp/cmp_err.c', + 'openssl/crypto/cmp/cmp_genm.c', 'openssl/crypto/cmp/cmp_hdr.c', 'openssl/crypto/cmp/cmp_http.c', 'openssl/crypto/cmp/cmp_msg.c', @@ -347,6 +398,8 @@ 'openssl/crypto/ec/ecp_nist.c', 'openssl/crypto/ec/ecp_nistz256.c', 'openssl/crypto/ec/ecp_oct.c', + 'openssl/crypto/ec/ecp_sm2p256.c', + 'openssl/crypto/ec/ecp_sm2p256_table.c', 'openssl/crypto/ec/ecp_smpl.c', 'openssl/crypto/ec/ecx_backend.c', 'openssl/crypto/ec/ecx_key.c', @@ -385,7 +438,9 @@ 'openssl/crypto/err/err_all.c', 'openssl/crypto/err/err_all_legacy.c', 'openssl/crypto/err/err_blocks.c', + 'openssl/crypto/err/err_mark.c', 'openssl/crypto/err/err_prn.c', + 'openssl/crypto/err/err_save.c', 'openssl/crypto/ess/ess_asn1.c', 'openssl/crypto/ess/ess_err.c', 'openssl/crypto/ess/ess_lib.c', @@ -468,7 +523,9 @@ 'openssl/crypto/evp/pmeth_check.c', 'openssl/crypto/evp/pmeth_gn.c', 'openssl/crypto/evp/pmeth_lib.c', + 'openssl/crypto/evp/s_lib.c', 'openssl/crypto/evp/signature.c', + 'openssl/crypto/evp/skeymgmt_meth.c', 'openssl/crypto/ffc/ffc_backend.c', 'openssl/crypto/ffc/ffc_dh.c', 'openssl/crypto/ffc/ffc_key_generate.c', @@ -476,7 +533,11 @@ 'openssl/crypto/ffc/ffc_params.c', 'openssl/crypto/ffc/ffc_params_generate.c', 'openssl/crypto/ffc/ffc_params_validate.c', + 'openssl/crypto/hashtable/hashfunc.c', + 'openssl/crypto/hashtable/hashtable.c', 'openssl/crypto/hmac/hmac.c', + 'openssl/crypto/hpke/hpke.c', + 'openssl/crypto/hpke/hpke_util.c', 'openssl/crypto/http/http_client.c', 'openssl/crypto/http/http_err.c', 'openssl/crypto/http/http_lib.c', @@ -491,6 +552,7 @@ 'openssl/crypto/armcap.c', 'openssl/crypto/asn1_dsa.c', 'openssl/crypto/bsearch.c', + 'openssl/crypto/comp_methods.c', 'openssl/crypto/context.c', 'openssl/crypto/core_algorithm.c', 'openssl/crypto/core_fetch.c', @@ -500,10 +562,13 @@ 'openssl/crypto/cryptlib.c', 'openssl/crypto/ctype.c', 'openssl/crypto/cversion.c', + 'openssl/crypto/defaults.c', 'openssl/crypto/der_writer.c', + 'openssl/crypto/deterministic_nonce.c', 'openssl/crypto/ebcdic.c', 'openssl/crypto/ex_data.c', 'openssl/crypto/getenv.c', + 'openssl/crypto/indicator_core.c', 'openssl/crypto/info.c', 'openssl/crypto/init.c', 'openssl/crypto/initthread.c', @@ -527,12 +592,16 @@ 'openssl/crypto/provider_core.c', 'openssl/crypto/provider_predefined.c', 'openssl/crypto/punycode.c', + 'openssl/crypto/quic_vlint.c', 'openssl/crypto/self_test_core.c', + 'openssl/crypto/sleep.c', 'openssl/crypto/sparse_array.c', + 'openssl/crypto/ssl_err.c', 'openssl/crypto/threads_lib.c', 'openssl/crypto/threads_none.c', 'openssl/crypto/threads_pthread.c', 'openssl/crypto/threads_win.c', + 'openssl/crypto/time.c', 'openssl/crypto/trace.c', 'openssl/crypto/uid.c', 'openssl/crypto/md4/md4_dgst.c', @@ -542,6 +611,15 @@ 'openssl/crypto/md5/md5_sha1.c', 'openssl/crypto/mdc2/mdc2_one.c', 'openssl/crypto/mdc2/mdc2dgst.c', + 'openssl/crypto/ml_dsa/ml_dsa_encoders.c', + 'openssl/crypto/ml_dsa/ml_dsa_key.c', + 'openssl/crypto/ml_dsa/ml_dsa_key_compress.c', + 'openssl/crypto/ml_dsa/ml_dsa_matrix.c', + 'openssl/crypto/ml_dsa/ml_dsa_ntt.c', + 'openssl/crypto/ml_dsa/ml_dsa_params.c', + 'openssl/crypto/ml_dsa/ml_dsa_sample.c', + 'openssl/crypto/ml_dsa/ml_dsa_sign.c', + 'openssl/crypto/ml_kem/ml_kem.c', 'openssl/crypto/modes/cbc128.c', 'openssl/crypto/modes/ccm128.c', 'openssl/crypto/modes/cfb128.c', @@ -553,6 +631,7 @@ 'openssl/crypto/modes/siv128.c', 'openssl/crypto/modes/wrap128.c', 'openssl/crypto/modes/xts128.c', + 'openssl/crypto/modes/xts128gb.c', 'openssl/crypto/objects/o_names.c', 'openssl/crypto/objects/obj_dat.c', 'openssl/crypto/objects/obj_err.c', @@ -616,6 +695,7 @@ 'openssl/crypto/rand/rand_lib.c', 'openssl/crypto/rand/rand_meth.c', 'openssl/crypto/rand/rand_pool.c', + 'openssl/crypto/rand/rand_uniform.c', 'openssl/crypto/rand/randfile.c', 'openssl/crypto/rc2/rc2_cbc.c', 'openssl/crypto/rc2/rc2_ecb.c', @@ -663,6 +743,16 @@ 'openssl/crypto/sha/sha3.c', 'openssl/crypto/sha/sha512.c', 'openssl/crypto/siphash/siphash.c', + 'openssl/crypto/slh_dsa/slh_adrs.c', + 'openssl/crypto/slh_dsa/slh_dsa.c', + 'openssl/crypto/slh_dsa/slh_dsa_hash_ctx.c', + 'openssl/crypto/slh_dsa/slh_dsa_key.c', + 'openssl/crypto/slh_dsa/slh_fors.c', + 'openssl/crypto/slh_dsa/slh_hash.c', + 'openssl/crypto/slh_dsa/slh_hypertree.c', + 'openssl/crypto/slh_dsa/slh_params.c', + 'openssl/crypto/slh_dsa/slh_wots.c', + 'openssl/crypto/slh_dsa/slh_xmss.c', 'openssl/crypto/sm2/sm2_crypt.c', 'openssl/crypto/sm2/sm2_err.c', 'openssl/crypto/sm2/sm2_key.c', @@ -680,6 +770,12 @@ 'openssl/crypto/store/store_register.c', 'openssl/crypto/store/store_result.c', 'openssl/crypto/store/store_strings.c', + 'openssl/crypto/thread/arch/thread_none.c', + 'openssl/crypto/thread/arch/thread_posix.c', + 'openssl/crypto/thread/arch/thread_win.c', + 'openssl/crypto/thread/api.c', + 'openssl/crypto/thread/arch.c', + 'openssl/crypto/thread/internal.c', 'openssl/crypto/ts/ts_asn1.c', 'openssl/crypto/ts/ts_conf.c', 'openssl/crypto/ts/ts_err.c', @@ -708,14 +804,22 @@ 'openssl/crypto/x509/pcy_map.c', 'openssl/crypto/x509/pcy_node.c', 'openssl/crypto/x509/pcy_tree.c', + 'openssl/crypto/x509/t_acert.c', 'openssl/crypto/x509/t_crl.c', 'openssl/crypto/x509/t_req.c', 'openssl/crypto/x509/t_x509.c', + 'openssl/crypto/x509/v3_aaa.c', + 'openssl/crypto/x509/v3_ac_tgt.c', 'openssl/crypto/x509/v3_addr.c', 'openssl/crypto/x509/v3_admis.c', 'openssl/crypto/x509/v3_akeya.c', 'openssl/crypto/x509/v3_akid.c', 'openssl/crypto/x509/v3_asid.c', + 'openssl/crypto/x509/v3_attrdesc.c', + 'openssl/crypto/x509/v3_attrmap.c', + 'openssl/crypto/x509/v3_audit_id.c', + 'openssl/crypto/x509/v3_authattid.c', + 'openssl/crypto/x509/v3_battcons.c', 'openssl/crypto/x509/v3_bcons.c', 'openssl/crypto/x509/v3_bitst.c', 'openssl/crypto/x509/v3_conf.c', @@ -724,12 +828,17 @@ 'openssl/crypto/x509/v3_enum.c', 'openssl/crypto/x509/v3_extku.c', 'openssl/crypto/x509/v3_genn.c', + 'openssl/crypto/x509/v3_group_ac.c', 'openssl/crypto/x509/v3_ia5.c', + 'openssl/crypto/x509/v3_ind_iss.c', 'openssl/crypto/x509/v3_info.c', 'openssl/crypto/x509/v3_int.c', + 'openssl/crypto/x509/v3_iobo.c', 'openssl/crypto/x509/v3_ist.c', 'openssl/crypto/x509/v3_lib.c', 'openssl/crypto/x509/v3_ncons.c', + 'openssl/crypto/x509/v3_no_ass.c', + 'openssl/crypto/x509/v3_no_rev_avail.c', 'openssl/crypto/x509/v3_pci.c', 'openssl/crypto/x509/v3_pcia.c', 'openssl/crypto/x509/v3_pcons.c', @@ -737,13 +846,20 @@ 'openssl/crypto/x509/v3_pmaps.c', 'openssl/crypto/x509/v3_prn.c', 'openssl/crypto/x509/v3_purp.c', + 'openssl/crypto/x509/v3_rolespec.c', 'openssl/crypto/x509/v3_san.c', + 'openssl/crypto/x509/v3_sda.c', + 'openssl/crypto/x509/v3_single_use.c', 'openssl/crypto/x509/v3_skid.c', + 'openssl/crypto/x509/v3_soa_id.c', 'openssl/crypto/x509/v3_sxnet.c', + 'openssl/crypto/x509/v3_timespec.c', 'openssl/crypto/x509/v3_tlsf.c', + 'openssl/crypto/x509/v3_usernotice.c', 'openssl/crypto/x509/v3_utf8.c', 'openssl/crypto/x509/v3_utl.c', 'openssl/crypto/x509/v3err.c', + 'openssl/crypto/x509/x509_acert.c', 'openssl/crypto/x509/x509_att.c', 'openssl/crypto/x509/x509_cmp.c', 'openssl/crypto/x509/x509_d2.c', @@ -761,6 +877,7 @@ 'openssl/crypto/x509/x509_v3.c', 'openssl/crypto/x509/x509_vfy.c', 'openssl/crypto/x509/x509_vpm.c', + 'openssl/crypto/x509/x509aset.c', 'openssl/crypto/x509/x509cset.c', 'openssl/crypto/x509/x509name.c', 'openssl/crypto/x509/x509rset.c', @@ -770,6 +887,7 @@ 'openssl/crypto/x509/x_attrib.c', 'openssl/crypto/x509/x_crl.c', 'openssl/crypto/x509/x_exten.c', + 'openssl/crypto/x509/x_ietfatt.c', 'openssl/crypto/x509/x_name.c', 'openssl/crypto/x509/x_pubkey.c', 'openssl/crypto/x509/x_req.c', @@ -801,6 +919,9 @@ 'openssl/providers/implementations/ciphers/cipher_aes_ccm_hw.c', 'openssl/providers/implementations/ciphers/cipher_aes_gcm.c', 'openssl/providers/implementations/ciphers/cipher_aes_gcm_hw.c', + 'openssl/providers/implementations/ciphers/cipher_aes_gcm_siv.c', + 'openssl/providers/implementations/ciphers/cipher_aes_gcm_siv_hw.c', + 'openssl/providers/implementations/ciphers/cipher_aes_gcm_siv_polyval.c', 'openssl/providers/implementations/ciphers/cipher_aes_hw.c', 'openssl/providers/implementations/ciphers/cipher_aes_ocb.c', 'openssl/providers/implementations/ciphers/cipher_aes_ocb_hw.c', @@ -825,7 +946,13 @@ 'openssl/providers/implementations/ciphers/cipher_cts.c', 'openssl/providers/implementations/ciphers/cipher_null.c', 'openssl/providers/implementations/ciphers/cipher_sm4.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_ccm.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_ccm_hw.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_gcm.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_gcm_hw.c', 'openssl/providers/implementations/ciphers/cipher_sm4_hw.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_xts.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_xts_hw.c', 'openssl/providers/implementations/ciphers/cipher_tdes.c', 'openssl/providers/implementations/ciphers/cipher_tdes_common.c', 'openssl/providers/implementations/ciphers/cipher_tdes_default.c', @@ -854,11 +981,16 @@ 'openssl/providers/implementations/encode_decode/encode_key2ms.c', 'openssl/providers/implementations/encode_decode/encode_key2text.c', 'openssl/providers/implementations/encode_decode/endecoder_common.c', + 'openssl/providers/implementations/encode_decode/ml_common_codecs.c', + 'openssl/providers/implementations/encode_decode/ml_dsa_codecs.c', + 'openssl/providers/implementations/encode_decode/ml_kem_codecs.c', 'openssl/providers/implementations/exchange/dh_exch.c', 'openssl/providers/implementations/exchange/ecdh_exch.c', 'openssl/providers/implementations/exchange/ecx_exch.c', 'openssl/providers/implementations/exchange/kdf_exch.c', + 'openssl/providers/implementations/kdfs/argon2.c', 'openssl/providers/implementations/kdfs/hkdf.c', + 'openssl/providers/implementations/kdfs/hmacdrbg_kdf.c', 'openssl/providers/implementations/kdfs/kbkdf.c', 'openssl/providers/implementations/kdfs/krb5kdf.c', 'openssl/providers/implementations/kdfs/pbkdf2.c', @@ -869,6 +1001,11 @@ 'openssl/providers/implementations/kdfs/sskdf.c', 'openssl/providers/implementations/kdfs/tls1_prf.c', 'openssl/providers/implementations/kdfs/x942kdf.c', + 'openssl/providers/implementations/kem/ec_kem.c', + 'openssl/providers/implementations/kem/ecx_kem.c', + 'openssl/providers/implementations/kem/kem_util.c', + 'openssl/providers/implementations/kem/ml_kem_kem.c', + 'openssl/providers/implementations/kem/mlx_kem.c', 'openssl/providers/implementations/kem/rsa_kem.c', 'openssl/providers/implementations/keymgmt/dh_kmgmt.c', 'openssl/providers/implementations/keymgmt/dsa_kmgmt.c', @@ -876,7 +1013,11 @@ 'openssl/providers/implementations/keymgmt/ecx_kmgmt.c', 'openssl/providers/implementations/keymgmt/kdf_legacy_kmgmt.c', 'openssl/providers/implementations/keymgmt/mac_legacy_kmgmt.c', + 'openssl/providers/implementations/keymgmt/ml_dsa_kmgmt.c', + 'openssl/providers/implementations/keymgmt/ml_kem_kmgmt.c', + 'openssl/providers/implementations/keymgmt/mlx_kmgmt.c', 'openssl/providers/implementations/keymgmt/rsa_kmgmt.c', + 'openssl/providers/implementations/keymgmt/slh_dsa_kmgmt.c', 'openssl/providers/implementations/macs/blake2b_mac.c', 'openssl/providers/implementations/macs/blake2s_mac.c', 'openssl/providers/implementations/macs/cmac_prov.c', @@ -885,12 +1026,12 @@ 'openssl/providers/implementations/macs/kmac_prov.c', 'openssl/providers/implementations/macs/poly1305_prov.c', 'openssl/providers/implementations/macs/siphash_prov.c', - 'openssl/providers/implementations/rands/crngt.c', 'openssl/providers/implementations/rands/drbg.c', 'openssl/providers/implementations/rands/drbg_ctr.c', 'openssl/providers/implementations/rands/drbg_hash.c', 'openssl/providers/implementations/rands/drbg_hmac.c', 'openssl/providers/implementations/rands/seed_src.c', + 'openssl/providers/implementations/rands/seed_src_jitter.c', 'openssl/providers/implementations/rands/test_rng.c', 'openssl/providers/implementations/rands/seeding/rand_cpu_x86.c', 'openssl/providers/implementations/rands/seeding/rand_tsc.c', @@ -900,17 +1041,23 @@ 'openssl/providers/implementations/signature/ecdsa_sig.c', 'openssl/providers/implementations/signature/eddsa_sig.c', 'openssl/providers/implementations/signature/mac_legacy_sig.c', + 'openssl/providers/implementations/signature/ml_dsa_sig.c', 'openssl/providers/implementations/signature/rsa_sig.c', + 'openssl/providers/implementations/signature/slh_dsa_sig.c', 'openssl/providers/implementations/signature/sm2_sig.c', + 'openssl/providers/implementations/skeymgmt/aes_skmgmt.c', + 'openssl/providers/implementations/skeymgmt/generic.c', 'openssl/providers/implementations/storemgmt/file_store.c', 'openssl/providers/implementations/storemgmt/file_store_any2obj.c', - 'openssl/ssl/s3_cbc.c', + 'openssl/ssl/record/methods/ssl3_cbc.c', 'openssl/providers/common/der/der_dsa_key.c', 'openssl/providers/common/der/der_dsa_sig.c', 'openssl/providers/common/der/der_ec_key.c', 'openssl/providers/common/der/der_ec_sig.c', 'openssl/providers/common/der/der_ecx_key.c', + 'openssl/providers/common/der/der_ml_dsa_key.c', 'openssl/providers/common/der/der_rsa_key.c', + 'openssl/providers/common/der/der_slh_dsa_key.c', 'openssl/providers/common/provider_ctx.c', 'openssl/providers/common/provider_err.c', 'openssl/providers/implementations/ciphers/ciphercommon.c', @@ -921,7 +1068,7 @@ 'openssl/providers/implementations/ciphers/ciphercommon_gcm_hw.c', 'openssl/providers/implementations/ciphers/ciphercommon_hw.c', 'openssl/providers/implementations/digests/digestcommon.c', - 'openssl/ssl/record/tls_pad.c', + 'openssl/ssl/record/methods/tls_pad.c', 'openssl/providers/implementations/ciphers/cipher_blowfish.c', 'openssl/providers/implementations/ciphers/cipher_blowfish_hw.c', 'openssl/providers/implementations/ciphers/cipher_cast5.c', @@ -946,16 +1093,23 @@ 'openssl/providers/implementations/digests/ripemd_prov.c', 'openssl/providers/implementations/digests/wp_prov.c', 'openssl/providers/implementations/kdfs/pbkdf1.c', + 'openssl/providers/implementations/kdfs/pvkkdf.c', 'openssl/providers/prov_running.c', 'openssl/providers/legacyprov.c', ], 'openssl_sources_darwin64-arm64-cc': [ './config/archs/darwin64-arm64-cc/asm/crypto/aes/aesv8-armx.S', + './config/archs/darwin64-arm64-cc/asm/crypto/aes/bsaes-armv8.S', './config/archs/darwin64-arm64-cc/asm/crypto/aes/vpaes-armv8.S', './config/archs/darwin64-arm64-cc/asm/crypto/bn/armv8-mont.S', + './config/archs/darwin64-arm64-cc/asm/crypto/chacha/chacha-armv8-sve.S', './config/archs/darwin64-arm64-cc/asm/crypto/chacha/chacha-armv8.S', './config/archs/darwin64-arm64-cc/asm/crypto/ec/ecp_nistz256-armv8.S', + './config/archs/darwin64-arm64-cc/asm/crypto/ec/ecp_sm2p256-armv8.S', './config/archs/darwin64-arm64-cc/asm/crypto/arm64cpuid.S', + './config/archs/darwin64-arm64-cc/asm/crypto/params_idx.c', + './config/archs/darwin64-arm64-cc/asm/crypto/md5/md5-aarch64.S', + './config/archs/darwin64-arm64-cc/asm/crypto/modes/aes-gcm-armv8-unroll8_64.S', './config/archs/darwin64-arm64-cc/asm/crypto/modes/aes-gcm-armv8_64.S', './config/archs/darwin64-arm64-cc/asm/crypto/modes/ghashv8-armx.S', './config/archs/darwin64-arm64-cc/asm/crypto/poly1305/poly1305-armv8.S', @@ -963,27 +1117,39 @@ './config/archs/darwin64-arm64-cc/asm/crypto/sha/sha1-armv8.S', './config/archs/darwin64-arm64-cc/asm/crypto/sha/sha256-armv8.S', './config/archs/darwin64-arm64-cc/asm/crypto/sha/sha512-armv8.S', + './config/archs/darwin64-arm64-cc/asm/crypto/sm3/sm3-armv8.S', + './config/archs/darwin64-arm64-cc/asm/crypto/sm4/sm4-armv8.S', + './config/archs/darwin64-arm64-cc/asm/crypto/sm4/vpsm4-armv8.S', + './config/archs/darwin64-arm64-cc/asm/crypto/sm4/vpsm4_ex-armv8.S', './config/archs/darwin64-arm64-cc/asm/providers/common/der/der_sm2_gen.c', './config/archs/darwin64-arm64-cc/asm/providers/common/der/der_digests_gen.c', './config/archs/darwin64-arm64-cc/asm/providers/common/der/der_dsa_gen.c', './config/archs/darwin64-arm64-cc/asm/providers/common/der/der_ec_gen.c', './config/archs/darwin64-arm64-cc/asm/providers/common/der/der_ecx_gen.c', + './config/archs/darwin64-arm64-cc/asm/providers/common/der/der_ml_dsa_gen.c', './config/archs/darwin64-arm64-cc/asm/providers/common/der/der_rsa_gen.c', + './config/archs/darwin64-arm64-cc/asm/providers/common/der/der_slh_dsa_gen.c', './config/archs/darwin64-arm64-cc/asm/providers/common/der/der_wrap_gen.c', ], 'openssl_defines_darwin64-arm64-cc': [ 'NDEBUG', 'L_ENDIAN', 'OPENSSL_BUILDING_OPENSSL', + 'BSAES_ASM', 'ECP_NISTZ256_ASM', + 'ECP_SM2P256_ASM', 'KECCAK1600_ASM', + 'MD5_ASM', 'OPENSSL_BN_ASM_MONT', 'OPENSSL_CPUID_OBJ', + 'OPENSSL_SM3_ASM', 'POLY1305_ASM', 'SHA1_ASM', 'SHA256_ASM', 'SHA512_ASM', + 'SM4_ASM', 'VPAES_ASM', + 'VPSM4_ASM', 'OPENSSL_PIC', ], 'openssl_cflags_darwin64-arm64-cc': [ diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/asm/providers/common/der/der_ml_dsa_gen.c b/deps/openssl/config/archs/darwin64-arm64-cc/asm/providers/common/der/der_ml_dsa_gen.c new file mode 100644 index 00000000000000..4a8a113a268578 --- /dev/null +++ b/deps/openssl/config/archs/darwin64-arm64-cc/asm/providers/common/der/der_ml_dsa_gen.c @@ -0,0 +1,37 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from providers/common/der/der_ml_dsa_gen.c.in + * + * Copyright 2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include "prov/der_ml_dsa.h" + +/* Well known OIDs precompiled */ + +/* + * id-ml-dsa-44 OBJECT IDENTIFIER ::= { sigAlgs 17 } + */ +const unsigned char ossl_der_oid_id_ml_dsa_44[DER_OID_SZ_id_ml_dsa_44] = { + DER_OID_V_id_ml_dsa_44 +}; + +/* + * id-ml-dsa-65 OBJECT IDENTIFIER ::= { sigAlgs 18 } + */ +const unsigned char ossl_der_oid_id_ml_dsa_65[DER_OID_SZ_id_ml_dsa_65] = { + DER_OID_V_id_ml_dsa_65 +}; + +/* + * id-ml-dsa-87 OBJECT IDENTIFIER ::= { sigAlgs 19 } + */ +const unsigned char ossl_der_oid_id_ml_dsa_87[DER_OID_SZ_id_ml_dsa_87] = { + DER_OID_V_id_ml_dsa_87 +}; + diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/asm/providers/common/der/der_slh_dsa_gen.c b/deps/openssl/config/archs/darwin64-arm64-cc/asm/providers/common/der/der_slh_dsa_gen.c new file mode 100644 index 00000000000000..1419a9515097dd --- /dev/null +++ b/deps/openssl/config/archs/darwin64-arm64-cc/asm/providers/common/der/der_slh_dsa_gen.c @@ -0,0 +1,100 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from providers/common/der/der_slh_dsa_gen.c.in + * + * Copyright 2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include "prov/der_slh_dsa.h" + +/* Well known OIDs precompiled */ + +/* + * id-slh-dsa-sha2-128s OBJECT IDENTIFIER ::= { sigAlgs 20 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_128s[DER_OID_SZ_id_slh_dsa_sha2_128s] = { + DER_OID_V_id_slh_dsa_sha2_128s +}; + +/* + * id-slh-dsa-sha2-128f OBJECT IDENTIFIER ::= { sigAlgs 21 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_128f[DER_OID_SZ_id_slh_dsa_sha2_128f] = { + DER_OID_V_id_slh_dsa_sha2_128f +}; + +/* + * id-slh-dsa-sha2-192s OBJECT IDENTIFIER ::= { sigAlgs 22 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_192s[DER_OID_SZ_id_slh_dsa_sha2_192s] = { + DER_OID_V_id_slh_dsa_sha2_192s +}; + +/* + * id-slh-dsa-sha2-192f OBJECT IDENTIFIER ::= { sigAlgs 23 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_192f[DER_OID_SZ_id_slh_dsa_sha2_192f] = { + DER_OID_V_id_slh_dsa_sha2_192f +}; + +/* + * id-slh-dsa-sha2-256s OBJECT IDENTIFIER ::= { sigAlgs 24 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_256s[DER_OID_SZ_id_slh_dsa_sha2_256s] = { + DER_OID_V_id_slh_dsa_sha2_256s +}; + +/* + * id-slh-dsa-sha2-256f OBJECT IDENTIFIER ::= { sigAlgs 25 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_256f[DER_OID_SZ_id_slh_dsa_sha2_256f] = { + DER_OID_V_id_slh_dsa_sha2_256f +}; + +/* + * id-slh-dsa-shake-128s OBJECT IDENTIFIER ::= { sigAlgs 26 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_128s[DER_OID_SZ_id_slh_dsa_shake_128s] = { + DER_OID_V_id_slh_dsa_shake_128s +}; + +/* + * id-slh-dsa-shake-128f OBJECT IDENTIFIER ::= { sigAlgs 27 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_128f[DER_OID_SZ_id_slh_dsa_shake_128f] = { + DER_OID_V_id_slh_dsa_shake_128f +}; + +/* + * id-slh-dsa-shake-192s OBJECT IDENTIFIER ::= { sigAlgs 28 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_192s[DER_OID_SZ_id_slh_dsa_shake_192s] = { + DER_OID_V_id_slh_dsa_shake_192s +}; + +/* + * id-slh-dsa-shake-192f OBJECT IDENTIFIER ::= { sigAlgs 29 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_192f[DER_OID_SZ_id_slh_dsa_shake_192f] = { + DER_OID_V_id_slh_dsa_shake_192f +}; + +/* + * id-slh-dsa-shake-256s OBJECT IDENTIFIER ::= { sigAlgs 30 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_256s[DER_OID_SZ_id_slh_dsa_shake_256s] = { + DER_OID_V_id_slh_dsa_shake_256s +}; + +/* + * id-slh-dsa-shake-256f OBJECT IDENTIFIER ::= { sigAlgs 31 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_256f[DER_OID_SZ_id_slh_dsa_shake_256f] = { + DER_OID_V_id_slh_dsa_shake_256f +}; + diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/asm/providers/common/include/prov/der_ml_dsa.h b/deps/openssl/config/archs/darwin64-arm64-cc/asm/providers/common/include/prov/der_ml_dsa.h new file mode 100644 index 00000000000000..c55f780ab4527c --- /dev/null +++ b/deps/openssl/config/archs/darwin64-arm64-cc/asm/providers/common/include/prov/der_ml_dsa.h @@ -0,0 +1,40 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from providers/common/include/prov/der_ml_dsa.h.in + * + * Copyright 2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include "internal/der.h" +#include "crypto/ml_dsa.h" + +/* Well known OIDs precompiled */ + +/* + * id-ml-dsa-44 OBJECT IDENTIFIER ::= { sigAlgs 17 } + */ +#define DER_OID_V_id_ml_dsa_44 DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x11 +#define DER_OID_SZ_id_ml_dsa_44 11 +extern const unsigned char ossl_der_oid_id_ml_dsa_44[DER_OID_SZ_id_ml_dsa_44]; + +/* + * id-ml-dsa-65 OBJECT IDENTIFIER ::= { sigAlgs 18 } + */ +#define DER_OID_V_id_ml_dsa_65 DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x12 +#define DER_OID_SZ_id_ml_dsa_65 11 +extern const unsigned char ossl_der_oid_id_ml_dsa_65[DER_OID_SZ_id_ml_dsa_65]; + +/* + * id-ml-dsa-87 OBJECT IDENTIFIER ::= { sigAlgs 19 } + */ +#define DER_OID_V_id_ml_dsa_87 DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x13 +#define DER_OID_SZ_id_ml_dsa_87 11 +extern const unsigned char ossl_der_oid_id_ml_dsa_87[DER_OID_SZ_id_ml_dsa_87]; + + +int ossl_DER_w_algorithmIdentifier_ML_DSA(WPACKET *pkt, int tag, ML_DSA_KEY *key); diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/asm/providers/common/include/prov/der_slh_dsa.h b/deps/openssl/config/archs/darwin64-arm64-cc/asm/providers/common/include/prov/der_slh_dsa.h new file mode 100644 index 00000000000000..760f8e7699be72 --- /dev/null +++ b/deps/openssl/config/archs/darwin64-arm64-cc/asm/providers/common/include/prov/der_slh_dsa.h @@ -0,0 +1,103 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from providers/common/include/prov/der_slh_dsa.h.in + * + * Copyright 2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include "internal/der.h" +#include "crypto/slh_dsa.h" + +/* Well known OIDs precompiled */ + +/* + * id-slh-dsa-sha2-128s OBJECT IDENTIFIER ::= { sigAlgs 20 } + */ +#define DER_OID_V_id_slh_dsa_sha2_128s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x14 +#define DER_OID_SZ_id_slh_dsa_sha2_128s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_128s[DER_OID_SZ_id_slh_dsa_sha2_128s]; + +/* + * id-slh-dsa-sha2-128f OBJECT IDENTIFIER ::= { sigAlgs 21 } + */ +#define DER_OID_V_id_slh_dsa_sha2_128f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x15 +#define DER_OID_SZ_id_slh_dsa_sha2_128f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_128f[DER_OID_SZ_id_slh_dsa_sha2_128f]; + +/* + * id-slh-dsa-sha2-192s OBJECT IDENTIFIER ::= { sigAlgs 22 } + */ +#define DER_OID_V_id_slh_dsa_sha2_192s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x16 +#define DER_OID_SZ_id_slh_dsa_sha2_192s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_192s[DER_OID_SZ_id_slh_dsa_sha2_192s]; + +/* + * id-slh-dsa-sha2-192f OBJECT IDENTIFIER ::= { sigAlgs 23 } + */ +#define DER_OID_V_id_slh_dsa_sha2_192f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x17 +#define DER_OID_SZ_id_slh_dsa_sha2_192f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_192f[DER_OID_SZ_id_slh_dsa_sha2_192f]; + +/* + * id-slh-dsa-sha2-256s OBJECT IDENTIFIER ::= { sigAlgs 24 } + */ +#define DER_OID_V_id_slh_dsa_sha2_256s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x18 +#define DER_OID_SZ_id_slh_dsa_sha2_256s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_256s[DER_OID_SZ_id_slh_dsa_sha2_256s]; + +/* + * id-slh-dsa-sha2-256f OBJECT IDENTIFIER ::= { sigAlgs 25 } + */ +#define DER_OID_V_id_slh_dsa_sha2_256f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x19 +#define DER_OID_SZ_id_slh_dsa_sha2_256f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_256f[DER_OID_SZ_id_slh_dsa_sha2_256f]; + +/* + * id-slh-dsa-shake-128s OBJECT IDENTIFIER ::= { sigAlgs 26 } + */ +#define DER_OID_V_id_slh_dsa_shake_128s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1A +#define DER_OID_SZ_id_slh_dsa_shake_128s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_128s[DER_OID_SZ_id_slh_dsa_shake_128s]; + +/* + * id-slh-dsa-shake-128f OBJECT IDENTIFIER ::= { sigAlgs 27 } + */ +#define DER_OID_V_id_slh_dsa_shake_128f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1B +#define DER_OID_SZ_id_slh_dsa_shake_128f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_128f[DER_OID_SZ_id_slh_dsa_shake_128f]; + +/* + * id-slh-dsa-shake-192s OBJECT IDENTIFIER ::= { sigAlgs 28 } + */ +#define DER_OID_V_id_slh_dsa_shake_192s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1C +#define DER_OID_SZ_id_slh_dsa_shake_192s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_192s[DER_OID_SZ_id_slh_dsa_shake_192s]; + +/* + * id-slh-dsa-shake-192f OBJECT IDENTIFIER ::= { sigAlgs 29 } + */ +#define DER_OID_V_id_slh_dsa_shake_192f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1D +#define DER_OID_SZ_id_slh_dsa_shake_192f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_192f[DER_OID_SZ_id_slh_dsa_shake_192f]; + +/* + * id-slh-dsa-shake-256s OBJECT IDENTIFIER ::= { sigAlgs 30 } + */ +#define DER_OID_V_id_slh_dsa_shake_256s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1E +#define DER_OID_SZ_id_slh_dsa_shake_256s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_256s[DER_OID_SZ_id_slh_dsa_shake_256s]; + +/* + * id-slh-dsa-shake-256f OBJECT IDENTIFIER ::= { sigAlgs 31 } + */ +#define DER_OID_V_id_slh_dsa_shake_256f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1F +#define DER_OID_SZ_id_slh_dsa_shake_256f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_256f[DER_OID_SZ_id_slh_dsa_shake_256f]; + + +int ossl_DER_w_algorithmIdentifier_SLH_DSA(WPACKET *pkt, int tag, SLH_DSA_KEY *key); diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/apps/progs.c b/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/apps/progs.c index 43cef00799b86e..acc204a3e6e781 100644 --- a/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/apps/progs.c +++ b/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/apps/progs.c @@ -89,6 +89,7 @@ FUNCTION functions[] = { {FT_general, "s_time", s_time_main, s_time_options, NULL, NULL}, #endif {FT_general, "sess_id", sess_id_main, sess_id_options, NULL, NULL}, + {FT_general, "skeyutl", skeyutl_main, skeyutl_options, NULL, NULL}, {FT_general, "smime", smime_main, smime_options, NULL, NULL}, {FT_general, "speed", speed_main, speed_options, NULL, NULL}, {FT_general, "spkac", spkac_main, spkac_options, NULL, NULL}, @@ -225,9 +226,15 @@ FUNCTION functions[] = { {FT_cipher, "camellia-256-ecb", enc_main, enc_options, NULL}, #endif {FT_cipher, "base64", enc_main, enc_options, NULL}, -#ifdef ZLIB +#ifndef OPENSSL_NO_ZLIB {FT_cipher, "zlib", enc_main, enc_options, NULL}, #endif +#ifndef OPENSSL_NO_BROTLI + {FT_cipher, "brotli", enc_main, enc_options, NULL}, +#endif +#ifndef OPENSSL_NO_ZSTD + {FT_cipher, "zstd", enc_main, enc_options, NULL}, +#endif #ifndef OPENSSL_NO_DES {FT_cipher, "des", enc_main, enc_options, NULL}, #endif diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/configdata.pm b/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/configdata.pm index a623e9af23019a..6510c746c05430 100644 --- a/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/configdata.pm +++ b/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/configdata.pm @@ -18,6 +18,7 @@ our %config = ( "ARFLAGS" => [ "qc" ], + "ASFLAGS" => [], "CC" => "../config/fake_gcc.pl", "CFLAGS" => [ "-O3 -Wall" @@ -27,14 +28,16 @@ our %config = ( "CPPINCLUDES" => [], "CXXFLAGS" => [], "FIPSKEY" => "f4556650ac31d35461610bac4ed81b1a181b2d8a43ea2854cbae22ca74560813", + "FIPS_VENDOR" => "OpenSSL FIPS Provider", "HASHBANGPERL" => "/usr/bin/env perl", "LDFLAGS" => [], "LDLIBS" => [], + "OBJCOPY" => "objcopy", "PERL" => "/usr/bin/perl", "RANLIB" => "ranlib -c", "RC" => "windres", "RCFLAGS" => [], - "api" => "30000", + "api" => "30500", "b32" => "0", "b64" => "0", "b64l" => "1", @@ -56,11 +59,13 @@ our %config = ( "doc/build.info", "test/build.info", "engines/build.info", + "exporters/build.info", "crypto/objects/build.info", "crypto/buffer/build.info", "crypto/bio/build.info", "crypto/stack/build.info", "crypto/lhash/build.info", + "crypto/hashtable/build.info", "crypto/rand/build.info", "crypto/evp/build.info", "crypto/asn1/build.info", @@ -78,6 +83,7 @@ our %config = ( "crypto/md5/build.info", "crypto/sha/build.info", "crypto/mdc2/build.info", + "crypto/ml_kem/build.info", "crypto/hmac/build.info", "crypto/ripemd/build.info", "crypto/whrlpool/build.info", @@ -119,11 +125,19 @@ our %config = ( "crypto/cmp/build.info", "crypto/encode_decode/build.info", "crypto/ffc/build.info", + "crypto/hpke/build.info", + "crypto/thread/build.info", + "crypto/ml_dsa/build.info", + "crypto/slh_dsa/build.info", + "ssl/record/build.info", + "ssl/rio/build.info", + "ssl/quic/build.info", "apps/lib/build.info", "providers/common/build.info", "providers/implementations/build.info", "providers/fips/build.info", "doc/man1/build.info", + "ssl/record/methods/build.info", "providers/common/der/build.info", "providers/implementations/digests/build.info", "providers/implementations/ciphers/build.info", @@ -137,6 +151,7 @@ our %config = ( "providers/implementations/encode_decode/build.info", "providers/implementations/storemgmt/build.info", "providers/implementations/kem/build.info", + "providers/implementations/skeymgmt/build.info", "providers/implementations/rands/seeding/build.info" ], "build_metadata" => "", @@ -156,7 +171,7 @@ our %config = ( ], "dynamic_engines" => "0", "ex_libs" => [], - "full_version" => "3.0.17", + "full_version" => "3.5.1", "includes" => [], "lflags" => [], "lib_defines" => [ @@ -165,37 +180,52 @@ our %config = ( "libdir" => "", "major" => "3", "makedep_scheme" => "gcc", - "minor" => "0", + "minor" => "5", "openssl_api_defines" => [ - "OPENSSL_CONFIGURED_API=30000" + "OPENSSL_CONFIGURED_API=30500" ], "openssl_feature_defines" => [ "OPENSSL_RAND_SEED_OS", "OPENSSL_THREADS", "OPENSSL_NO_AFALGENG", "OPENSSL_NO_ASAN", + "OPENSSL_NO_BROTLI", + "OPENSSL_NO_BROTLI_DYNAMIC", "OPENSSL_NO_COMP", "OPENSSL_NO_CRYPTO_MDEBUG", "OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE", + "OPENSSL_NO_DEMOS", "OPENSSL_NO_DEVCRYPTOENG", "OPENSSL_NO_EC_NISTP_64_GCC_128", "OPENSSL_NO_EGD", "OPENSSL_NO_EXTERNAL_TESTS", + "OPENSSL_NO_FIPS_JITTER", "OPENSSL_NO_FUZZ_AFL", "OPENSSL_NO_FUZZ_LIBFUZZER", + "OPENSSL_NO_H3DEMO", + "OPENSSL_NO_HQINTEROP", + "OPENSSL_NO_JITTER", "OPENSSL_NO_KTLS", "OPENSSL_NO_LOADERENG", "OPENSSL_NO_MD2", "OPENSSL_NO_MSAN", + "OPENSSL_NO_PIE", "OPENSSL_NO_RC5", "OPENSSL_NO_SCTP", "OPENSSL_NO_SSL3", "OPENSSL_NO_SSL3_METHOD", + "OPENSSL_NO_SSLKEYLOG", + "OPENSSL_NO_TFO", "OPENSSL_NO_TRACE", "OPENSSL_NO_UBSAN", "OPENSSL_NO_UNIT_TEST", "OPENSSL_NO_UPLINK", "OPENSSL_NO_WEAK_SSL_CIPHERS", + "OPENSSL_NO_WINSTORE", + "OPENSSL_NO_ZLIB", + "OPENSSL_NO_ZLIB_DYNAMIC", + "OPENSSL_NO_ZSTD", + "OPENSSL_NO_ZSTD_DYNAMIC", "OPENSSL_NO_DYNAMIC_ENGINE" ], "openssl_other_defines" => [ @@ -205,11 +235,11 @@ our %config = ( "OPENSSL_SYS_MACOSX" ], "openssldir" => "", - "options" => "enable-ssl-trace enable-fips no-afalgeng no-asan no-buildtest-c++ no-comp no-crypto-mdebug no-crypto-mdebug-backtrace no-devcryptoeng no-dynamic-engine no-ec_nistp_64_gcc_128 no-egd no-external-tests no-fuzz-afl no-fuzz-libfuzzer no-ktls no-loadereng no-md2 no-msan no-rc5 no-sctp no-shared no-ssl3 no-ssl3-method no-trace no-ubsan no-unit-test no-uplink no-weak-ssl-ciphers no-zlib no-zlib-dynamic", - "patch" => "17", + "options" => "enable-ssl-trace enable-fips no-afalgeng no-asan no-brotli no-brotli-dynamic no-buildtest-c++ no-comp no-crypto-mdebug no-crypto-mdebug-backtrace no-demos no-devcryptoeng no-dynamic-engine no-ec_nistp_64_gcc_128 no-egd no-external-tests no-fips-jitter no-fuzz-afl no-fuzz-libfuzzer no-h3demo no-hqinterop no-jitter no-ktls no-loadereng no-md2 no-msan no-pie no-rc5 no-sctp no-shared no-ssl3 no-ssl3-method no-sslkeylog no-tfo no-trace no-ubsan no-unit-test no-uplink no-weak-ssl-ciphers no-winstore no-zlib no-zlib-dynamic no-zstd no-zstd-dynamic", + "patch" => "1", "perl_archname" => "x86_64-linux-gnu-thread-multi", "perl_cmd" => "/usr/bin/perl", - "perl_version" => "5.38.2", + "perl_version" => "5.34.0", "perlargv" => [ "no-comp", "no-shared", @@ -239,6 +269,7 @@ our %config = ( "LDLIBS" => undef, "MT" => undef, "MTFLAGS" => undef, + "OBJCOPY" => undef, "OPENSSL_LOCAL_CONFIG_DIR" => undef, "PERL" => undef, "RANLIB" => undef, @@ -262,7 +293,7 @@ our %config = ( "shlib_version" => "3", "sourcedir" => ".", "target" => "darwin64-arm64-cc", - "version" => "3.0.17" + "version" => "3.5.1" ); our %target = ( "AR" => "ar", @@ -270,6 +301,7 @@ our %target = ( "CC" => "cc", "CFLAGS" => "-O3 -Wall", "HASHBANGPERL" => "/usr/bin/env perl", + "OBJCOPY" => "objcopy", "RANLIB" => "ranlib -c", "RC" => "windres", "_conf_fname_int" => [ @@ -281,6 +313,8 @@ our %target = ( "Configurations/shared-info.pl" ], "asm_arch" => "aarch64", + "bin_cflags" => "", + "bin_lflags" => "", "bn_ops" => "SIXTY_FOUR_BIT_LONG", "build_file" => "Makefile", "build_scheme" => [ @@ -295,6 +329,7 @@ our %target = ( "disable" => [], "dso_scheme" => "dlfcn", "enable" => [], + "ex_libs" => "", "includes" => [], "lflags" => "-Wl,-search_paths_first", "lib_cflags" => "", @@ -321,6 +356,8 @@ our %target = ( our @disablables = ( "acvp-tests", "afalgeng", + "apps", + "argon2", "aria", "asan", "asm", @@ -331,11 +368,14 @@ our @disablables = ( "autoload-config", "bf", "blake2", + "brotli", + "brotli-dynamic", "buildtest-c++", "bulk", "cached-fetch", "camellia", "capieng", + "winstore", "cast", "chacha", "cmac", @@ -344,11 +384,16 @@ our @disablables = ( "comp", "crypto-mdebug", "ct", + "default-thread-pool", + "demos", + "h3demo", + "hqinterop", "deprecated", "des", "devcryptoeng", "dgram", "dh", + "docs", "dsa", "dso", "dtls", @@ -358,6 +403,7 @@ our @disablables = ( "ec_nistp_64_gcc_128", "ecdh", "ecdsa", + "ecx", "egd", "engine", "err", @@ -365,10 +411,15 @@ our @disablables = ( "filenames", "fips", "fips-securitychecks", + "fips-post", + "fips-jitter", "fuzz-afl", "fuzz-libfuzzer", "gost", + "http", "idea", + "integrity-only-ciphers", + "jitter", "ktls", "legacy", "loadereng", @@ -376,6 +427,8 @@ our @disablables = ( "md2", "md4", "mdc2", + "ml-dsa", + "ml-kem", "module", "msan", "multiblock", @@ -384,10 +437,13 @@ our @disablables = ( "ocsp", "padlockeng", "pic", + "pie", "pinshared", "poly1305", "posix-io", "psk", + "quic", + "unstable-qlog", "rc2", "rc4", "rc5", @@ -401,7 +457,9 @@ our @disablables = ( "shared", "siphash", "siv", + "slh-dsa", "sm2", + "sm2-precomp", "sm3", "sm4", "sock", @@ -412,9 +470,13 @@ our @disablables = ( "ssl-trace", "static-engine", "stdio", + "sslkeylog", "tests", + "tfo", + "thread-pool", "threads", "tls", + "tls-deprecated-ec", "trace", "ts", "ubsan", @@ -425,6 +487,8 @@ our @disablables = ( "whirlpool", "zlib", "zlib-dynamic", + "zstd", + "zstd-dynamic", "ssl3", "ssl3-method", "tls1", @@ -445,33 +509,46 @@ our @disablables_int = ( our %disabled = ( "afalgeng" => "option", "asan" => "default", + "brotli" => "default", + "brotli-dynamic" => "default", "buildtest-c++" => "default", "comp" => "option", "crypto-mdebug" => "default", "crypto-mdebug-backtrace" => "default", + "demos" => "default", "devcryptoeng" => "default", "dynamic-engine" => "cascade", "ec_nistp_64_gcc_128" => "default", "egd" => "default", "external-tests" => "default", + "fips-jitter" => "default", "fuzz-afl" => "default", "fuzz-libfuzzer" => "default", + "h3demo" => "default", + "hqinterop" => "default", + "jitter" => "default", "ktls" => "default", "loadereng" => "cascade", "md2" => "default", "msan" => "default", + "pie" => "default", "rc5" => "default", "sctp" => "default", "shared" => "option", "ssl3" => "default", "ssl3-method" => "default", + "sslkeylog" => "default", + "tfo" => "default", "trace" => "default", "ubsan" => "default", "unit-test" => "default", "uplink" => "no uplink_arch", "weak-ssl-ciphers" => "default", + "winstore" => "not-windows", "zlib" => "default", - "zlib-dynamic" => "default" + "zlib-dynamic" => "default", + "zstd" => "default", + "zstd-dynamic" => "default" ); our %withargs = (); our %unified_info = ( @@ -697,6 +774,11 @@ our %unified_info = ( "pod" => "1" } }, + "doc/man1/openssl-skeyutl.pod" => { + "doc/man1/openssl-skeyutl.pod.in" => { + "pod" => "1" + } + }, "doc/man1/openssl-smime.pod" => { "doc/man1/openssl-smime.pod.in" => { "pod" => "1" @@ -754,6 +836,21 @@ our %unified_info = ( } }, "generate" => { + "exporters/OpenSSLConfig.cmake" => { + "exporter" => "cmake" + }, + "exporters/OpenSSLConfigVersion.cmake" => { + "exporter" => "cmake" + }, + "exporters/libcrypto.pc" => { + "exporter" => "pkg-config" + }, + "exporters/libssl.pc" => { + "exporter" => "pkg-config" + }, + "exporters/openssl.pc" => { + "exporter" => "pkg-config" + }, "include/openssl/configuration.h" => { "skip" => "1" } @@ -774,6 +871,9 @@ our %unified_info = ( "providers/liblegacy.a" => { "noinst" => "1" }, + "providers/libtemplate.a" => { + "noinst" => "1" + }, "test/libtestutil.a" => { "has_main" => "1", "noinst" => "1" @@ -791,6 +891,9 @@ our %unified_info = ( } }, "programs" => { + "fuzz/acert-test" => { + "noinst" => "1" + }, "fuzz/asn1-test" => { "noinst" => "1" }, @@ -821,9 +924,60 @@ our %unified_info = ( "fuzz/ct-test" => { "noinst" => "1" }, + "fuzz/decoder-test" => { + "noinst" => "1" + }, + "fuzz/dtlsclient-test" => { + "noinst" => "1" + }, + "fuzz/dtlsserver-test" => { + "noinst" => "1" + }, + "fuzz/hashtable-test" => { + "noinst" => "1" + }, + "fuzz/ml-dsa-test" => { + "noinst" => "1" + }, + "fuzz/ml-kem-test" => { + "noinst" => "1" + }, + "fuzz/pem-test" => { + "noinst" => "1" + }, + "fuzz/provider-test" => { + "noinst" => "1" + }, + "fuzz/punycode-test" => { + "noinst" => "1" + }, + "fuzz/quic-client-test" => { + "noinst" => "1" + }, + "fuzz/quic-lcidm-test" => { + "noinst" => "1" + }, + "fuzz/quic-rcidm-test" => { + "noinst" => "1" + }, + "fuzz/quic-server-test" => { + "noinst" => "1" + }, + "fuzz/quic-srtm-test" => { + "noinst" => "1" + }, "fuzz/server-test" => { "noinst" => "1" }, + "fuzz/slh-dsa-test" => { + "noinst" => "1" + }, + "fuzz/smime-test" => { + "noinst" => "1" + }, + "fuzz/v3name-test" => { + "noinst" => "1" + }, "fuzz/x509-test" => { "noinst" => "1" }, @@ -875,18 +1029,30 @@ our %unified_info = ( "test/bftest" => { "noinst" => "1" }, + "test/bio_addr_test" => { + "noinst" => "1" + }, + "test/bio_base64_test" => { + "noinst" => "1" + }, "test/bio_callback_test" => { "noinst" => "1" }, "test/bio_core_test" => { "noinst" => "1" }, + "test/bio_dgram_test" => { + "noinst" => "1" + }, "test/bio_enc_test" => { "noinst" => "1" }, "test/bio_memleak_test" => { "noinst" => "1" }, + "test/bio_meth_test" => { + "noinst" => "1" + }, "test/bio_prefix_text" => { "noinst" => "1" }, @@ -896,6 +1062,9 @@ our %unified_info = ( "test/bio_readbuffer_test" => { "noinst" => "1" }, + "test/bio_tfo_test" => { + "noinst" => "1" + }, "test/bioprinttest" => { "noinst" => "1" }, @@ -905,6 +1074,9 @@ our %unified_info = ( "test/bntest" => { "noinst" => "1" }, + "test/build_wincrypt_test" => { + "noinst" => "1" + }, "test/buildtest_c_aes" => { "noinst" => "1" }, @@ -920,6 +1092,9 @@ our %unified_info = ( "test/buildtest_c_buffer" => { "noinst" => "1" }, + "test/buildtest_c_byteorder" => { + "noinst" => "1" + }, "test/buildtest_c_camellia" => { "noinst" => "1" }, @@ -944,9 +1119,6 @@ our %unified_info = ( "test/buildtest_c_core_dispatch" => { "noinst" => "1" }, - "test/buildtest_c_core_names" => { - "noinst" => "1" - }, "test/buildtest_c_core_object" => { "noinst" => "1" }, @@ -971,6 +1143,9 @@ our %unified_info = ( "test/buildtest_c_e_os2" => { "noinst" => "1" }, + "test/buildtest_c_e_ostime" => { + "noinst" => "1" + }, "test/buildtest_c_ebcdic" => { "noinst" => "1" }, @@ -998,12 +1173,18 @@ our %unified_info = ( "test/buildtest_c_hmac" => { "noinst" => "1" }, + "test/buildtest_c_hpke" => { + "noinst" => "1" + }, "test/buildtest_c_http" => { "noinst" => "1" }, "test/buildtest_c_idea" => { "noinst" => "1" }, + "test/buildtest_c_indicator" => { + "noinst" => "1" + }, "test/buildtest_c_kdf" => { "noinst" => "1" }, @@ -1019,6 +1200,9 @@ our %unified_info = ( "test/buildtest_c_mdc2" => { "noinst" => "1" }, + "test/buildtest_c_ml_kem" => { + "noinst" => "1" + }, "test/buildtest_c_modes" => { "noinst" => "1" }, @@ -1049,6 +1233,9 @@ our %unified_info = ( "test/buildtest_c_provider" => { "noinst" => "1" }, + "test/buildtest_c_quic" => { + "noinst" => "1" + }, "test/buildtest_c_rand" => { "noinst" => "1" }, @@ -1091,6 +1278,9 @@ our %unified_info = ( "test/buildtest_c_symhacks" => { "noinst" => "1" }, + "test/buildtest_c_thread" => { + "noinst" => "1" + }, "test/buildtest_c_tls1" => { "noinst" => "1" }, @@ -1106,6 +1296,12 @@ our %unified_info = ( "test/buildtest_c_whrlpool" => { "noinst" => "1" }, + "test/byteorder_test" => { + "noinst" => "1" + }, + "test/ca_internals_test" => { + "noinst" => "1" + }, "test/casttest" => { "noinst" => "1" }, @@ -1190,6 +1386,9 @@ our %unified_info = ( "test/danetest" => { "noinst" => "1" }, + "test/decoder_propq_test" => { + "noinst" => "1" + }, "test/defltfips_test" => { "noinst" => "1" }, @@ -1262,15 +1461,24 @@ our %unified_info = ( "test/evp_pkey_ctx_new_from_name" => { "noinst" => "1" }, + "test/evp_pkey_dhkem_test" => { + "noinst" => "1" + }, "test/evp_pkey_dparams_test" => { "noinst" => "1" }, "test/evp_pkey_provided_test" => { "noinst" => "1" }, + "test/evp_skey_test" => { + "noinst" => "1" + }, "test/evp_test" => { "noinst" => "1" }, + "test/evp_xof_test" => { + "noinst" => "1" + }, "test/exdatatest" => { "noinst" => "1" }, @@ -1298,6 +1506,9 @@ our %unified_info = ( "test/hmactest" => { "noinst" => "1" }, + "test/hpke_test" => { + "noinst" => "1" + }, "test/http_test" => { "noinst" => "1" }, @@ -1307,12 +1518,18 @@ our %unified_info = ( "test/igetest" => { "noinst" => "1" }, + "test/json_test" => { + "noinst" => "1" + }, "test/keymgmt_internal_test" => { "noinst" => "1" }, "test/lhash_test" => { "noinst" => "1" }, + "test/list_test" => { + "noinst" => "1" + }, "test/localetest" => { "noinst" => "1" }, @@ -1322,9 +1539,21 @@ our %unified_info = ( "test/mdc2test" => { "noinst" => "1" }, + "test/membio_test" => { + "noinst" => "1" + }, "test/memleaktest" => { "noinst" => "1" }, + "test/ml_dsa_test" => { + "noinst" => "1" + }, + "test/ml_kem_evp_extra_test" => { + "noinst" => "1" + }, + "test/ml_kem_internal_test" => { + "noinst" => "1" + }, "test/modes_internal_test" => { "noinst" => "1" }, @@ -1343,6 +1572,9 @@ our %unified_info = ( "test/packettest" => { "noinst" => "1" }, + "test/pairwise_fail_test" => { + "noinst" => "1" + }, "test/param_build_test" => { "noinst" => "1" }, @@ -1367,6 +1599,9 @@ our %unified_info = ( "test/pemtest" => { "noinst" => "1" }, + "test/pkcs12_api_test" => { + "noinst" => "1" + }, "test/pkcs12_format_test" => { "noinst" => "1" }, @@ -1382,6 +1617,9 @@ our %unified_info = ( "test/poly1305_internal_test" => { "noinst" => "1" }, + "test/priority_queue_test" => { + "noinst" => "1" + }, "test/property_test" => { "noinst" => "1" }, @@ -1391,6 +1629,9 @@ our %unified_info = ( "test/provfetchtest" => { "noinst" => "1" }, + "test/provider_default_search_path_test" => { + "noinst" => "1" + }, "test/provider_fallback_test" => { "noinst" => "1" }, @@ -1409,6 +1650,72 @@ our %unified_info = ( "test/punycode_test" => { "noinst" => "1" }, + "test/quic_ackm_test" => { + "noinst" => "1" + }, + "test/quic_cc_test" => { + "noinst" => "1" + }, + "test/quic_cfq_test" => { + "noinst" => "1" + }, + "test/quic_client_test" => { + "noinst" => "1" + }, + "test/quic_fc_test" => { + "noinst" => "1" + }, + "test/quic_fifd_test" => { + "noinst" => "1" + }, + "test/quic_lcidm_test" => { + "noinst" => "1" + }, + "test/quic_multistream_test" => { + "noinst" => "1" + }, + "test/quic_newcid_test" => { + "noinst" => "1" + }, + "test/quic_qlog_test" => { + "noinst" => "1" + }, + "test/quic_radix_test" => { + "noinst" => "1" + }, + "test/quic_rcidm_test" => { + "noinst" => "1" + }, + "test/quic_record_test" => { + "noinst" => "1" + }, + "test/quic_srt_gen_test" => { + "noinst" => "1" + }, + "test/quic_srtm_test" => { + "noinst" => "1" + }, + "test/quic_stream_test" => { + "noinst" => "1" + }, + "test/quic_tserver_test" => { + "noinst" => "1" + }, + "test/quic_txp_test" => { + "noinst" => "1" + }, + "test/quic_txpim_test" => { + "noinst" => "1" + }, + "test/quic_wire_test" => { + "noinst" => "1" + }, + "test/quicapitest" => { + "noinst" => "1" + }, + "test/quicfaultstest" => { + "noinst" => "1" + }, "test/rand_status_test" => { "noinst" => "1" }, @@ -1424,12 +1731,15 @@ our %unified_info = ( "test/rc5test" => { "noinst" => "1" }, - "test/rdrand_sanitytest" => { + "test/rdcpu_sanitytest" => { "noinst" => "1" }, "test/recordlentest" => { "noinst" => "1" }, + "test/rpktest" => { + "noinst" => "1" + }, "test/rsa_complex" => { "noinst" => "1" }, @@ -1442,6 +1752,12 @@ our %unified_info = ( "test/rsa_test" => { "noinst" => "1" }, + "test/rsa_x931_test" => { + "noinst" => "1" + }, + "test/safe_math_test" => { + "noinst" => "1" + }, "test/sanitytest" => { "noinst" => "1" }, @@ -1457,6 +1773,9 @@ our %unified_info = ( "test/siphash_internal_test" => { "noinst" => "1" }, + "test/slh_dsa_test" => { + "noinst" => "1" + }, "test/sm2_internal_test" => { "noinst" => "1" }, @@ -1478,6 +1797,9 @@ our %unified_info = ( "test/ssl_ctx_test" => { "noinst" => "1" }, + "test/ssl_handshake_rtt_test" => { + "noinst" => "1" + }, "test/ssl_old_test" => { "noinst" => "1" }, @@ -1499,12 +1821,18 @@ our %unified_info = ( "test/stack_test" => { "noinst" => "1" }, + "test/strtoultest" => { + "noinst" => "1" + }, "test/sysdefaulttest" => { "noinst" => "1" }, "test/test_test" => { "noinst" => "1" }, + "test/threadpool_test" => { + "noinst" => "1" + }, "test/threadstest" => { "noinst" => "1" }, @@ -1514,12 +1842,18 @@ our %unified_info = ( "test/time_offset_test" => { "noinst" => "1" }, + "test/time_test" => { + "noinst" => "1" + }, "test/tls13ccstest" => { "noinst" => "1" }, "test/tls13encryptiontest" => { "noinst" => "1" }, + "test/tls13groupselection_test" => { + "noinst" => "1" + }, "test/trace_api_test" => { "noinst" => "1" }, @@ -1547,6 +1881,9 @@ our %unified_info = ( "test/wpackettest" => { "noinst" => "1" }, + "test/x509_acert_test" => { + "noinst" => "1" + }, "test/x509_check_cert_pkey_test" => { "noinst" => "1" }, @@ -1556,6 +1893,15 @@ our %unified_info = ( "test/x509_internal_test" => { "noinst" => "1" }, + "test/x509_load_cert_file_test" => { + "noinst" => "1" + }, + "test/x509_req_test" => { + "noinst" => "1" + }, + "test/x509_test" => { + "noinst" => "1" + }, "test/x509_time_test" => { "noinst" => "1" }, @@ -1594,15 +1940,21 @@ our %unified_info = ( }, "defines" => { "libcrypto" => [ + "BSAES_ASM", "ECP_NISTZ256_ASM", + "ECP_SM2P256_ASM", "KECCAK1600_ASM", + "MD5_ASM", "OPENSSL_BN_ASM_MONT", "OPENSSL_CPUID_OBJ", + "OPENSSL_SM3_ASM", "POLY1305_ASM", "SHA1_ASM", "SHA256_ASM", "SHA512_ASM", - "VPAES_ASM" + "SM4_ASM", + "VPAES_ASM", + "VPSM4_ASM" ], "providers/fips" => [ "FIPS_MODULE" @@ -1612,16 +1964,22 @@ our %unified_info = ( "OPENSSL_CPUID_OBJ" ], "providers/libdefault.a" => [ + "BSAES_ASM", "ECP_NISTZ256_ASM", + "ECP_SM2P256_ASM", "KECCAK1600_ASM", "OPENSSL_CPUID_OBJ", "SHA1_ASM", "SHA256_ASM", "SHA512_ASM", - "VPAES_ASM" + "SM4_ASM", + "VPAES_ASM", + "VPSM4_ASM" ], "providers/libfips.a" => [ + "BSAES_ASM", "ECP_NISTZ256_ASM", + "ECP_SM2P256_ASM", "FIPS_MODULE", "KECCAK1600_ASM", "OPENSSL_BN_ASM_MONT", @@ -1629,7 +1987,15 @@ our %unified_info = ( "SHA1_ASM", "SHA256_ASM", "SHA512_ASM", - "VPAES_ASM" + "SM4_ASM", + "VPAES_ASM", + "VPSM4_ASM" + ], + "providers/liblegacy.a" => [ + "MD5_ASM" + ], + "test/endecode_test" => [ + "STATIC_LEGACY" ], "test/evp_extra_test" => [ "STATIC_LEGACY" @@ -1643,14 +2009,21 @@ our %unified_info = ( }, "depends" => { "" => [ + "OpenSSLConfigVersion.cmake", + "crypto/params_idx.c", + "exporters/OpenSSLConfigVersion.cmake", + "exporters/openssl.pc", "include/crypto/bn_conf.h", "include/crypto/dso_conf.h", + "include/internal/param_names.h", "include/openssl/asn1.h", "include/openssl/asn1t.h", "include/openssl/bio.h", "include/openssl/cmp.h", "include/openssl/cms.h", + "include/openssl/comp.h", "include/openssl/conf.h", + "include/openssl/core_names.h", "include/openssl/crmf.h", "include/openssl/crypto.h", "include/openssl/ct.h", @@ -1667,10 +2040,22 @@ our %unified_info = ( "include/openssl/ssl.h", "include/openssl/ui.h", "include/openssl/x509.h", + "include/openssl/x509_acert.h", "include/openssl/x509_vfy.h", "include/openssl/x509v3.h", + "openssl.pc", "test/provider_internal_test.cnf" ], + "OpenSSLConfig.cmake" => [ + "builddata.pm" + ], + "OpenSSLConfigVersion.cmake" => [ + "OpenSSLConfig.cmake", + "builddata.pm" + ], + "apps/ca_internals_test-bin-ca.o" => [ + "apps/progs.h" + ], "apps/lib/cmp_client_test-bin-cmp_mock_srv.o" => [ "apps/progs.h" ], @@ -1816,6 +2201,9 @@ our %unified_info = ( "apps/openssl-bin-sess_id.o" => [ "apps/progs.h" ], + "apps/openssl-bin-skeyutl.o" => [ + "apps/progs.h" + ], "apps/openssl-bin-smime.o" => [ "apps/progs.h" ], @@ -1904,6 +2292,9 @@ our %unified_info = ( "crypto/libcrypto-lib-info.o" => [ "crypto/buildinf.h" ], + "crypto/params_idx.c" => [ + "util/perl|OpenSSL/paramnames.pm" + ], "crypto/rc4/rc4-586.S" => [ "crypto/perlasm/x86asm.pl" ], @@ -2069,6 +2460,9 @@ our %unified_info = ( "doc/html/man1/openssl-sess_id.html" => [ "doc/man1/openssl-sess_id.pod" ], + "doc/html/man1/openssl-skeyutl.html" => [ + "doc/man1/openssl-skeyutl.pod" + ], "doc/html/man1/openssl-smime.html" => [ "doc/man1/openssl-smime.pod" ], @@ -2210,6 +2604,9 @@ our %unified_info = ( "doc/html/man3/BIO_get_ex_new_index.html" => [ "doc/man3/BIO_get_ex_new_index.pod" ], + "doc/html/man3/BIO_get_rpoll_descriptor.html" => [ + "doc/man3/BIO_get_rpoll_descriptor.pod" + ], "doc/html/man3/BIO_meth_new.html" => [ "doc/man3/BIO_meth_new.pod" ], @@ -2246,6 +2643,9 @@ our %unified_info = ( "doc/html/man3/BIO_s_datagram.html" => [ "doc/man3/BIO_s_datagram.pod" ], + "doc/html/man3/BIO_s_dgram_pair.html" => [ + "doc/man3/BIO_s_dgram_pair.pod" + ], "doc/html/man3/BIO_s_fd.html" => [ "doc/man3/BIO_s_fd.pod" ], @@ -2261,6 +2661,9 @@ our %unified_info = ( "doc/html/man3/BIO_s_socket.html" => [ "doc/man3/BIO_s_socket.pod" ], + "doc/html/man3/BIO_sendmmsg.html" => [ + "doc/man3/BIO_sendmmsg.pod" + ], "doc/html/man3/BIO_set_callback.html" => [ "doc/man3/BIO_set_callback.pod" ], @@ -2333,6 +2736,9 @@ our %unified_info = ( "doc/html/man3/BUF_MEM_new.html" => [ "doc/man3/BUF_MEM_new.pod" ], + "doc/html/man3/CMAC_CTX.html" => [ + "doc/man3/CMAC_CTX.pod" + ], "doc/html/man3/CMS_EncryptedData_decrypt.html" => [ "doc/man3/CMS_EncryptedData_decrypt.pod" ], @@ -2399,6 +2805,9 @@ our %unified_info = ( "doc/html/man3/CMS_verify_receipt.html" => [ "doc/man3/CMS_verify_receipt.pod" ], + "doc/html/man3/COMP_CTX_new.html" => [ + "doc/man3/COMP_CTX_new.pod" + ], "doc/html/man3/CONF_modules_free.html" => [ "doc/man3/CONF_modules_free.pod" ], @@ -2498,6 +2907,12 @@ our %unified_info = ( "doc/html/man3/DTLS_set_timer_cb.html" => [ "doc/man3/DTLS_set_timer_cb.pod" ], + "doc/html/man3/DTLSv1_get_timeout.html" => [ + "doc/man3/DTLSv1_get_timeout.pod" + ], + "doc/html/man3/DTLSv1_handle_timeout.html" => [ + "doc/man3/DTLSv1_handle_timeout.pod" + ], "doc/html/man3/DTLSv1_listen.html" => [ "doc/man3/DTLSv1_listen.pod" ], @@ -2636,6 +3051,9 @@ our %unified_info = ( "doc/html/man3/EVP_PKEY_CTX_get0_pkey.html" => [ "doc/man3/EVP_PKEY_CTX_get0_pkey.pod" ], + "doc/html/man3/EVP_PKEY_CTX_get_algor.html" => [ + "doc/man3/EVP_PKEY_CTX_get_algor.pod" + ], "doc/html/man3/EVP_PKEY_CTX_new.html" => [ "doc/man3/EVP_PKEY_CTX_new.pod" ], @@ -2753,6 +3171,12 @@ our %unified_info = ( "doc/html/man3/EVP_SIGNATURE.html" => [ "doc/man3/EVP_SIGNATURE.pod" ], + "doc/html/man3/EVP_SKEY.html" => [ + "doc/man3/EVP_SKEY.pod" + ], + "doc/html/man3/EVP_SKEYMGMT.html" => [ + "doc/man3/EVP_SKEYMGMT.pod" + ], "doc/html/man3/EVP_SealInit.html" => [ "doc/man3/EVP_SealInit.pod" ], @@ -2840,6 +3264,9 @@ our %unified_info = ( "doc/html/man3/EVP_whirlpool.html" => [ "doc/man3/EVP_whirlpool.pod" ], + "doc/html/man3/GENERAL_NAME.html" => [ + "doc/man3/GENERAL_NAME.pod" + ], "doc/html/man3/HMAC.html" => [ "doc/man3/HMAC.pod" ], @@ -2912,9 +3339,15 @@ our %unified_info = ( "doc/html/man3/OPENSSL_load_builtin_modules.html" => [ "doc/man3/OPENSSL_load_builtin_modules.pod" ], + "doc/html/man3/OPENSSL_load_u16_le.html" => [ + "doc/man3/OPENSSL_load_u16_le.pod" + ], "doc/html/man3/OPENSSL_malloc.html" => [ "doc/man3/OPENSSL_malloc.pod" ], + "doc/html/man3/OPENSSL_riscvcap.html" => [ + "doc/man3/OPENSSL_riscvcap.pod" + ], "doc/html/man3/OPENSSL_s390xcap.html" => [ "doc/man3/OPENSSL_s390xcap.pod" ], @@ -2930,12 +3363,18 @@ our %unified_info = ( "doc/html/man3/OSSL_CALLBACK.html" => [ "doc/man3/OSSL_CALLBACK.pod" ], + "doc/html/man3/OSSL_CMP_ATAV_set0.html" => [ + "doc/man3/OSSL_CMP_ATAV_set0.pod" + ], "doc/html/man3/OSSL_CMP_CTX_new.html" => [ "doc/man3/OSSL_CMP_CTX_new.pod" ], "doc/html/man3/OSSL_CMP_HDR_get0_transactionID.html" => [ "doc/man3/OSSL_CMP_HDR_get0_transactionID.pod" ], + "doc/html/man3/OSSL_CMP_ITAV_new_caCerts.html" => [ + "doc/man3/OSSL_CMP_ITAV_new_caCerts.pod" + ], "doc/html/man3/OSSL_CMP_ITAV_set0.html" => [ "doc/man3/OSSL_CMP_ITAV_set0.pod" ], @@ -3005,9 +3444,18 @@ our %unified_info = ( "doc/html/man3/OSSL_ENCODER_to_bio.html" => [ "doc/man3/OSSL_ENCODER_to_bio.pod" ], + "doc/html/man3/OSSL_ERR_STATE_save.html" => [ + "doc/man3/OSSL_ERR_STATE_save.pod" + ], "doc/html/man3/OSSL_ESS_check_signing_certs.html" => [ "doc/man3/OSSL_ESS_check_signing_certs.pod" ], + "doc/html/man3/OSSL_GENERAL_NAMES_print.html" => [ + "doc/man3/OSSL_GENERAL_NAMES_print.pod" + ], + "doc/html/man3/OSSL_HPKE_CTX_new.html" => [ + "doc/man3/OSSL_HPKE_CTX_new.pod" + ], "doc/html/man3/OSSL_HTTP_REQ_CTX.html" => [ "doc/man3/OSSL_HTTP_REQ_CTX.pod" ], @@ -3017,12 +3465,24 @@ our %unified_info = ( "doc/html/man3/OSSL_HTTP_transfer.html" => [ "doc/man3/OSSL_HTTP_transfer.pod" ], + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX.html" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX.pod" + ], + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX_print.html" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX_print.pod" + ], + "doc/html/man3/OSSL_INDICATOR_set_callback.html" => [ + "doc/man3/OSSL_INDICATOR_set_callback.pod" + ], "doc/html/man3/OSSL_ITEM.html" => [ "doc/man3/OSSL_ITEM.pod" ], "doc/html/man3/OSSL_LIB_CTX.html" => [ "doc/man3/OSSL_LIB_CTX.pod" ], + "doc/html/man3/OSSL_LIB_CTX_set_conf_diagnostics.html" => [ + "doc/man3/OSSL_LIB_CTX_set_conf_diagnostics.pod" + ], "doc/html/man3/OSSL_PARAM.html" => [ "doc/man3/OSSL_PARAM.pod" ], @@ -3038,9 +3498,15 @@ our %unified_info = ( "doc/html/man3/OSSL_PARAM_int.html" => [ "doc/man3/OSSL_PARAM_int.pod" ], + "doc/html/man3/OSSL_PARAM_print_to_bio.html" => [ + "doc/man3/OSSL_PARAM_print_to_bio.pod" + ], "doc/html/man3/OSSL_PROVIDER.html" => [ "doc/man3/OSSL_PROVIDER.pod" ], + "doc/html/man3/OSSL_QUIC_client_method.html" => [ + "doc/man3/OSSL_QUIC_client_method.pod" + ], "doc/html/man3/OSSL_SELF_TEST_new.html" => [ "doc/man3/OSSL_SELF_TEST_new.pod" ], @@ -3065,6 +3531,9 @@ our %unified_info = ( "doc/html/man3/OSSL_STORE_open.html" => [ "doc/man3/OSSL_STORE_open.pod" ], + "doc/html/man3/OSSL_sleep.html" => [ + "doc/man3/OSSL_sleep.pod" + ], "doc/html/man3/OSSL_trace_enabled.html" => [ "doc/man3/OSSL_trace_enabled.pod" ], @@ -3080,6 +3549,9 @@ our %unified_info = ( "doc/html/man3/OpenSSL_version.html" => [ "doc/man3/OpenSSL_version.pod" ], + "doc/html/man3/PBMAC1_get1_pbkdf2_param.html" => [ + "doc/man3/PBMAC1_get1_pbkdf2_param.pod" + ], "doc/html/man3/PEM_X509_INFO_read_bio_ex.html" => [ "doc/man3/PEM_X509_INFO_read_bio_ex.pod" ], @@ -3116,6 +3588,9 @@ our %unified_info = ( "doc/html/man3/PKCS12_SAFEBAG_get1_cert.html" => [ "doc/man3/PKCS12_SAFEBAG_get1_cert.pod" ], + "doc/html/man3/PKCS12_SAFEBAG_set0_attrs.html" => [ + "doc/man3/PKCS12_SAFEBAG_set0_attrs.pod" + ], "doc/html/man3/PKCS12_add1_attr_by_NID.html" => [ "doc/man3/PKCS12_add1_attr_by_NID.pod" ], @@ -3389,6 +3864,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set0_CA_list.html" => [ "doc/man3/SSL_CTX_set0_CA_list.pod" ], + "doc/html/man3/SSL_CTX_set1_cert_comp_preference.html" => [ + "doc/man3/SSL_CTX_set1_cert_comp_preference.pod" + ], "doc/html/man3/SSL_CTX_set1_curves.html" => [ "doc/man3/SSL_CTX_set1_curves.pod" ], @@ -3428,6 +3906,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_default_passwd_cb.html" => [ "doc/man3/SSL_CTX_set_default_passwd_cb.pod" ], + "doc/html/man3/SSL_CTX_set_domain_flags.html" => [ + "doc/man3/SSL_CTX_set_domain_flags.pod" + ], "doc/html/man3/SSL_CTX_set_generate_session_id.html" => [ "doc/man3/SSL_CTX_set_generate_session_id.pod" ], @@ -3449,6 +3930,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_msg_callback.html" => [ "doc/man3/SSL_CTX_set_msg_callback.pod" ], + "doc/html/man3/SSL_CTX_set_new_pending_conn_cb.html" => [ + "doc/man3/SSL_CTX_set_new_pending_conn_cb.pod" + ], "doc/html/man3/SSL_CTX_set_num_tickets.html" => [ "doc/man3/SSL_CTX_set_num_tickets.pod" ], @@ -3563,6 +4047,9 @@ our %unified_info = ( "doc/html/man3/SSL_accept.html" => [ "doc/man3/SSL_accept.pod" ], + "doc/html/man3/SSL_accept_stream.html" => [ + "doc/man3/SSL_accept_stream.pod" + ], "doc/html/man3/SSL_alert_type_string.html" => [ "doc/man3/SSL_alert_type_string.pod" ], @@ -3590,9 +4077,21 @@ our %unified_info = ( "doc/html/man3/SSL_free.html" => [ "doc/man3/SSL_free.pod" ], + "doc/html/man3/SSL_get0_connection.html" => [ + "doc/man3/SSL_get0_connection.pod" + ], + "doc/html/man3/SSL_get0_group_name.html" => [ + "doc/man3/SSL_get0_group_name.pod" + ], + "doc/html/man3/SSL_get0_peer_rpk.html" => [ + "doc/man3/SSL_get0_peer_rpk.pod" + ], "doc/html/man3/SSL_get0_peer_scts.html" => [ "doc/man3/SSL_get0_peer_scts.pod" ], + "doc/html/man3/SSL_get1_builtin_sigalgs.html" => [ + "doc/man3/SSL_get1_builtin_sigalgs.pod" + ], "doc/html/man3/SSL_get_SSL_CTX.html" => [ "doc/man3/SSL_get_SSL_CTX.pod" ], @@ -3608,6 +4107,9 @@ our %unified_info = ( "doc/html/man3/SSL_get_client_random.html" => [ "doc/man3/SSL_get_client_random.pod" ], + "doc/html/man3/SSL_get_conn_close_info.html" => [ + "doc/man3/SSL_get_conn_close_info.pod" + ], "doc/html/man3/SSL_get_current_cipher.html" => [ "doc/man3/SSL_get_current_cipher.pod" ], @@ -3617,12 +4119,18 @@ our %unified_info = ( "doc/html/man3/SSL_get_error.html" => [ "doc/man3/SSL_get_error.pod" ], + "doc/html/man3/SSL_get_event_timeout.html" => [ + "doc/man3/SSL_get_event_timeout.pod" + ], "doc/html/man3/SSL_get_extms_support.html" => [ "doc/man3/SSL_get_extms_support.pod" ], "doc/html/man3/SSL_get_fd.html" => [ "doc/man3/SSL_get_fd.pod" ], + "doc/html/man3/SSL_get_handshake_rtt.html" => [ + "doc/man3/SSL_get_handshake_rtt.pod" + ], "doc/html/man3/SSL_get_peer_cert_chain.html" => [ "doc/man3/SSL_get_peer_cert_chain.pod" ], @@ -3641,12 +4149,24 @@ our %unified_info = ( "doc/html/man3/SSL_get_rbio.html" => [ "doc/man3/SSL_get_rbio.pod" ], + "doc/html/man3/SSL_get_rpoll_descriptor.html" => [ + "doc/man3/SSL_get_rpoll_descriptor.pod" + ], "doc/html/man3/SSL_get_session.html" => [ "doc/man3/SSL_get_session.pod" ], "doc/html/man3/SSL_get_shared_sigalgs.html" => [ "doc/man3/SSL_get_shared_sigalgs.pod" ], + "doc/html/man3/SSL_get_stream_id.html" => [ + "doc/man3/SSL_get_stream_id.pod" + ], + "doc/html/man3/SSL_get_stream_read_state.html" => [ + "doc/man3/SSL_get_stream_read_state.pod" + ], + "doc/html/man3/SSL_get_value_uint.html" => [ + "doc/man3/SSL_get_value_uint.pod" + ], "doc/html/man3/SSL_get_verify_result.html" => [ "doc/man3/SSL_get_verify_result.pod" ], @@ -3656,9 +4176,15 @@ our %unified_info = ( "doc/html/man3/SSL_group_to_name.html" => [ "doc/man3/SSL_group_to_name.pod" ], + "doc/html/man3/SSL_handle_events.html" => [ + "doc/man3/SSL_handle_events.pod" + ], "doc/html/man3/SSL_in_init.html" => [ "doc/man3/SSL_in_init.pod" ], + "doc/html/man3/SSL_inject_net_dgram.html" => [ + "doc/man3/SSL_inject_net_dgram.pod" + ], "doc/html/man3/SSL_key_update.html" => [ "doc/man3/SSL_key_update.pod" ], @@ -3671,9 +4197,21 @@ our %unified_info = ( "doc/html/man3/SSL_new.html" => [ "doc/man3/SSL_new.pod" ], + "doc/html/man3/SSL_new_domain.html" => [ + "doc/man3/SSL_new_domain.pod" + ], + "doc/html/man3/SSL_new_listener.html" => [ + "doc/man3/SSL_new_listener.pod" + ], + "doc/html/man3/SSL_new_stream.html" => [ + "doc/man3/SSL_new_stream.pod" + ], "doc/html/man3/SSL_pending.html" => [ "doc/man3/SSL_pending.pod" ], + "doc/html/man3/SSL_poll.html" => [ + "doc/man3/SSL_poll.pod" + ], "doc/html/man3/SSL_read.html" => [ "doc/man3/SSL_read.pod" ], @@ -3689,24 +4227,45 @@ our %unified_info = ( "doc/html/man3/SSL_set1_host.html" => [ "doc/man3/SSL_set1_host.pod" ], + "doc/html/man3/SSL_set1_initial_peer_addr.html" => [ + "doc/man3/SSL_set1_initial_peer_addr.pod" + ], + "doc/html/man3/SSL_set1_server_cert_type.html" => [ + "doc/man3/SSL_set1_server_cert_type.pod" + ], "doc/html/man3/SSL_set_async_callback.html" => [ "doc/man3/SSL_set_async_callback.pod" ], "doc/html/man3/SSL_set_bio.html" => [ "doc/man3/SSL_set_bio.pod" ], + "doc/html/man3/SSL_set_blocking_mode.html" => [ + "doc/man3/SSL_set_blocking_mode.pod" + ], "doc/html/man3/SSL_set_connect_state.html" => [ "doc/man3/SSL_set_connect_state.pod" ], + "doc/html/man3/SSL_set_default_stream_mode.html" => [ + "doc/man3/SSL_set_default_stream_mode.pod" + ], "doc/html/man3/SSL_set_fd.html" => [ "doc/man3/SSL_set_fd.pod" ], + "doc/html/man3/SSL_set_incoming_stream_policy.html" => [ + "doc/man3/SSL_set_incoming_stream_policy.pod" + ], + "doc/html/man3/SSL_set_quic_tls_cbs.html" => [ + "doc/man3/SSL_set_quic_tls_cbs.pod" + ], "doc/html/man3/SSL_set_retry_verify.html" => [ "doc/man3/SSL_set_retry_verify.pod" ], "doc/html/man3/SSL_set_session.html" => [ "doc/man3/SSL_set_session.pod" ], + "doc/html/man3/SSL_set_session_secret_cb.html" => [ + "doc/man3/SSL_set_session_secret_cb.pod" + ], "doc/html/man3/SSL_set_shutdown.html" => [ "doc/man3/SSL_set_shutdown.pod" ], @@ -3719,6 +4278,12 @@ our %unified_info = ( "doc/html/man3/SSL_state_string.html" => [ "doc/man3/SSL_state_string.pod" ], + "doc/html/man3/SSL_stream_conclude.html" => [ + "doc/man3/SSL_stream_conclude.pod" + ], + "doc/html/man3/SSL_stream_reset.html" => [ + "doc/man3/SSL_stream_reset.pod" + ], "doc/html/man3/SSL_want.html" => [ "doc/man3/SSL_want.pod" ], @@ -3728,8 +4293,8 @@ our %unified_info = ( "doc/html/man3/TS_RESP_CTX_new.html" => [ "doc/man3/TS_RESP_CTX_new.pod" ], - "doc/html/man3/TS_VERIFY_CTX_set_certs.html" => [ - "doc/man3/TS_VERIFY_CTX_set_certs.pod" + "doc/html/man3/TS_VERIFY_CTX.html" => [ + "doc/man3/TS_VERIFY_CTX.pod" ], "doc/html/man3/UI_STRING.html" => [ "doc/man3/UI_STRING.pod" @@ -3749,6 +4314,21 @@ our %unified_info = ( "doc/html/man3/X509V3_set_ctx.html" => [ "doc/man3/X509V3_set_ctx.pod" ], + "doc/html/man3/X509_ACERT_add1_attr.html" => [ + "doc/man3/X509_ACERT_add1_attr.pod" + ], + "doc/html/man3/X509_ACERT_add_attr_nconf.html" => [ + "doc/man3/X509_ACERT_add_attr_nconf.pod" + ], + "doc/html/man3/X509_ACERT_get0_holder_baseCertId.html" => [ + "doc/man3/X509_ACERT_get0_holder_baseCertId.pod" + ], + "doc/html/man3/X509_ACERT_get_attr.html" => [ + "doc/man3/X509_ACERT_get_attr.pod" + ], + "doc/html/man3/X509_ACERT_print_ex.html" => [ + "doc/man3/X509_ACERT_print_ex.pod" + ], "doc/html/man3/X509_ALGOR_dup.html" => [ "doc/man3/X509_ALGOR_dup.pod" ], @@ -3797,6 +4377,9 @@ our %unified_info = ( "doc/html/man3/X509_SIG_get0.html" => [ "doc/man3/X509_SIG_get0.pod" ], + "doc/html/man3/X509_STORE_CTX_get_by_subject.html" => [ + "doc/man3/X509_STORE_CTX_get_by_subject.pod" + ], "doc/html/man3/X509_STORE_CTX_get_error.html" => [ "doc/man3/X509_STORE_CTX_get_error.pod" ], @@ -3863,6 +4446,9 @@ our %unified_info = ( "doc/html/man3/X509_get0_uids.html" => [ "doc/man3/X509_get0_uids.pod" ], + "doc/html/man3/X509_get_default_cert_file.html" => [ + "doc/man3/X509_get_default_cert_file.pod" + ], "doc/html/man3/X509_get_extension_flags.html" => [ "doc/man3/X509_get_extension_flags.pod" ], @@ -3986,9 +4572,15 @@ our %unified_info = ( "doc/html/man7/EVP_CIPHER-SM4.html" => [ "doc/man7/EVP_CIPHER-SM4.pod" ], + "doc/html/man7/EVP_KDF-ARGON2.html" => [ + "doc/man7/EVP_KDF-ARGON2.pod" + ], "doc/html/man7/EVP_KDF-HKDF.html" => [ "doc/man7/EVP_KDF-HKDF.pod" ], + "doc/html/man7/EVP_KDF-HMAC-DRBG.html" => [ + "doc/man7/EVP_KDF-HMAC-DRBG.pod" + ], "doc/html/man7/EVP_KDF-KB.html" => [ "doc/man7/EVP_KDF-KB.pod" ], @@ -4004,6 +4596,9 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-PKCS12KDF.html" => [ "doc/man7/EVP_KDF-PKCS12KDF.pod" ], + "doc/html/man7/EVP_KDF-PVKKDF.html" => [ + "doc/man7/EVP_KDF-PVKKDF.pod" + ], "doc/html/man7/EVP_KDF-SCRYPT.html" => [ "doc/man7/EVP_KDF-SCRYPT.pod" ], @@ -4028,9 +4623,18 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-X963.html" => [ "doc/man7/EVP_KDF-X963.pod" ], + "doc/html/man7/EVP_KEM-EC.html" => [ + "doc/man7/EVP_KEM-EC.pod" + ], + "doc/html/man7/EVP_KEM-ML-KEM.html" => [ + "doc/man7/EVP_KEM-ML-KEM.pod" + ], "doc/html/man7/EVP_KEM-RSA.html" => [ "doc/man7/EVP_KEM-RSA.pod" ], + "doc/html/man7/EVP_KEM-X25519.html" => [ + "doc/man7/EVP_KEM-X25519.pod" + ], "doc/html/man7/EVP_KEYEXCH-DH.html" => [ "doc/man7/EVP_KEYEXCH-DH.pod" ], @@ -4064,6 +4668,9 @@ our %unified_info = ( "doc/html/man7/EVP_MD-BLAKE2.html" => [ "doc/man7/EVP_MD-BLAKE2.pod" ], + "doc/html/man7/EVP_MD-KECCAK.html" => [ + "doc/man7/EVP_MD-KECCAK.pod" + ], "doc/html/man7/EVP_MD-MD2.html" => [ "doc/man7/EVP_MD-MD2.pod" ], @@ -4121,15 +4728,27 @@ our %unified_info = ( "doc/html/man7/EVP_PKEY-HMAC.html" => [ "doc/man7/EVP_PKEY-HMAC.pod" ], + "doc/html/man7/EVP_PKEY-ML-DSA.html" => [ + "doc/man7/EVP_PKEY-ML-DSA.pod" + ], + "doc/html/man7/EVP_PKEY-ML-KEM.html" => [ + "doc/man7/EVP_PKEY-ML-KEM.pod" + ], "doc/html/man7/EVP_PKEY-RSA.html" => [ "doc/man7/EVP_PKEY-RSA.pod" ], + "doc/html/man7/EVP_PKEY-SLH-DSA.html" => [ + "doc/man7/EVP_PKEY-SLH-DSA.pod" + ], "doc/html/man7/EVP_PKEY-SM2.html" => [ "doc/man7/EVP_PKEY-SM2.pod" ], "doc/html/man7/EVP_PKEY-X25519.html" => [ "doc/man7/EVP_PKEY-X25519.pod" ], + "doc/html/man7/EVP_RAND-CRNG-TEST.html" => [ + "doc/man7/EVP_RAND-CRNG-TEST.pod" + ], "doc/html/man7/EVP_RAND-CTR-DRBG.html" => [ "doc/man7/EVP_RAND-CTR-DRBG.pod" ], @@ -4139,6 +4758,9 @@ our %unified_info = ( "doc/html/man7/EVP_RAND-HMAC-DRBG.html" => [ "doc/man7/EVP_RAND-HMAC-DRBG.pod" ], + "doc/html/man7/EVP_RAND-JITTER.html" => [ + "doc/man7/EVP_RAND-JITTER.pod" + ], "doc/html/man7/EVP_RAND-SEED-SRC.html" => [ "doc/man7/EVP_RAND-SEED-SRC.pod" ], @@ -4160,9 +4782,15 @@ our %unified_info = ( "doc/html/man7/EVP_SIGNATURE-HMAC.html" => [ "doc/man7/EVP_SIGNATURE-HMAC.pod" ], + "doc/html/man7/EVP_SIGNATURE-ML-DSA.html" => [ + "doc/man7/EVP_SIGNATURE-ML-DSA.pod" + ], "doc/html/man7/EVP_SIGNATURE-RSA.html" => [ "doc/man7/EVP_SIGNATURE-RSA.pod" ], + "doc/html/man7/EVP_SIGNATURE-SLH-DSA.html" => [ + "doc/man7/EVP_SIGNATURE-SLH-DSA.pod" + ], "doc/html/man7/OSSL_PROVIDER-FIPS.html" => [ "doc/man7/OSSL_PROVIDER-FIPS.pod" ], @@ -4178,6 +4806,9 @@ our %unified_info = ( "doc/html/man7/OSSL_PROVIDER-null.html" => [ "doc/man7/OSSL_PROVIDER-null.pod" ], + "doc/html/man7/OSSL_STORE-winstore.html" => [ + "doc/man7/OSSL_STORE-winstore.pod" + ], "doc/html/man7/RAND.html" => [ "doc/man7/RAND.pod" ], @@ -4190,9 +4821,6 @@ our %unified_info = ( "doc/html/man7/bio.html" => [ "doc/man7/bio.pod" ], - "doc/html/man7/crypto.html" => [ - "doc/man7/crypto.pod" - ], "doc/html/man7/ct.html" => [ "doc/man7/ct.pod" ], @@ -4223,9 +4851,6 @@ our %unified_info = ( "doc/html/man7/life_cycle-rand.html" => [ "doc/man7/life_cycle-rand.pod" ], - "doc/html/man7/migration_guide.html" => [ - "doc/man7/migration_guide.pod" - ], "doc/html/man7/openssl-core.h.html" => [ "doc/man7/openssl-core.h.pod" ], @@ -4241,12 +4866,66 @@ our %unified_info = ( "doc/html/man7/openssl-glossary.html" => [ "doc/man7/openssl-glossary.pod" ], + "doc/html/man7/openssl-qlog.html" => [ + "doc/man7/openssl-qlog.pod" + ], + "doc/html/man7/openssl-quic-concurrency.html" => [ + "doc/man7/openssl-quic-concurrency.pod" + ], + "doc/html/man7/openssl-quic.html" => [ + "doc/man7/openssl-quic.pod" + ], "doc/html/man7/openssl-threads.html" => [ "doc/man7/openssl-threads.pod" ], "doc/html/man7/openssl_user_macros.html" => [ "doc/man7/openssl_user_macros.pod" ], + "doc/html/man7/ossl-guide-introduction.html" => [ + "doc/man7/ossl-guide-introduction.pod" + ], + "doc/html/man7/ossl-guide-libcrypto-introduction.html" => [ + "doc/man7/ossl-guide-libcrypto-introduction.pod" + ], + "doc/html/man7/ossl-guide-libraries-introduction.html" => [ + "doc/man7/ossl-guide-libraries-introduction.pod" + ], + "doc/html/man7/ossl-guide-libssl-introduction.html" => [ + "doc/man7/ossl-guide-libssl-introduction.pod" + ], + "doc/html/man7/ossl-guide-migration.html" => [ + "doc/man7/ossl-guide-migration.pod" + ], + "doc/html/man7/ossl-guide-quic-client-block.html" => [ + "doc/man7/ossl-guide-quic-client-block.pod" + ], + "doc/html/man7/ossl-guide-quic-client-non-block.html" => [ + "doc/man7/ossl-guide-quic-client-non-block.pod" + ], + "doc/html/man7/ossl-guide-quic-introduction.html" => [ + "doc/man7/ossl-guide-quic-introduction.pod" + ], + "doc/html/man7/ossl-guide-quic-multi-stream.html" => [ + "doc/man7/ossl-guide-quic-multi-stream.pod" + ], + "doc/html/man7/ossl-guide-quic-server-block.html" => [ + "doc/man7/ossl-guide-quic-server-block.pod" + ], + "doc/html/man7/ossl-guide-quic-server-non-block.html" => [ + "doc/man7/ossl-guide-quic-server-non-block.pod" + ], + "doc/html/man7/ossl-guide-tls-client-block.html" => [ + "doc/man7/ossl-guide-tls-client-block.pod" + ], + "doc/html/man7/ossl-guide-tls-client-non-block.html" => [ + "doc/man7/ossl-guide-tls-client-non-block.pod" + ], + "doc/html/man7/ossl-guide-tls-introduction.html" => [ + "doc/man7/ossl-guide-tls-introduction.pod" + ], + "doc/html/man7/ossl-guide-tls-server-block.html" => [ + "doc/man7/ossl-guide-tls-server-block.pod" + ], "doc/html/man7/ossl_store-file.html" => [ "doc/man7/ossl_store-file.pod" ], @@ -4301,6 +4980,9 @@ our %unified_info = ( "doc/html/man7/provider-signature.html" => [ "doc/man7/provider-signature.pod" ], + "doc/html/man7/provider-skeymgmt.html" => [ + "doc/man7/provider-skeymgmt.pod" + ], "doc/html/man7/provider-storemgmt.html" => [ "doc/man7/provider-storemgmt.pod" ], @@ -4310,9 +4992,6 @@ our %unified_info = ( "doc/html/man7/proxy-certificates.html" => [ "doc/man7/proxy-certificates.pod" ], - "doc/html/man7/ssl.html" => [ - "doc/man7/ssl.pod" - ], "doc/html/man7/x509.html" => [ "doc/man7/x509.pod" ], @@ -4460,6 +5139,9 @@ our %unified_info = ( "doc/man/man1/openssl-sess_id.1" => [ "doc/man1/openssl-sess_id.pod" ], + "doc/man/man1/openssl-skeyutl.1" => [ + "doc/man1/openssl-skeyutl.pod" + ], "doc/man/man1/openssl-smime.1" => [ "doc/man1/openssl-smime.pod" ], @@ -4601,6 +5283,9 @@ our %unified_info = ( "doc/man/man3/BIO_get_ex_new_index.3" => [ "doc/man3/BIO_get_ex_new_index.pod" ], + "doc/man/man3/BIO_get_rpoll_descriptor.3" => [ + "doc/man3/BIO_get_rpoll_descriptor.pod" + ], "doc/man/man3/BIO_meth_new.3" => [ "doc/man3/BIO_meth_new.pod" ], @@ -4637,6 +5322,9 @@ our %unified_info = ( "doc/man/man3/BIO_s_datagram.3" => [ "doc/man3/BIO_s_datagram.pod" ], + "doc/man/man3/BIO_s_dgram_pair.3" => [ + "doc/man3/BIO_s_dgram_pair.pod" + ], "doc/man/man3/BIO_s_fd.3" => [ "doc/man3/BIO_s_fd.pod" ], @@ -4652,6 +5340,9 @@ our %unified_info = ( "doc/man/man3/BIO_s_socket.3" => [ "doc/man3/BIO_s_socket.pod" ], + "doc/man/man3/BIO_sendmmsg.3" => [ + "doc/man3/BIO_sendmmsg.pod" + ], "doc/man/man3/BIO_set_callback.3" => [ "doc/man3/BIO_set_callback.pod" ], @@ -4724,6 +5415,9 @@ our %unified_info = ( "doc/man/man3/BUF_MEM_new.3" => [ "doc/man3/BUF_MEM_new.pod" ], + "doc/man/man3/CMAC_CTX.3" => [ + "doc/man3/CMAC_CTX.pod" + ], "doc/man/man3/CMS_EncryptedData_decrypt.3" => [ "doc/man3/CMS_EncryptedData_decrypt.pod" ], @@ -4790,6 +5484,9 @@ our %unified_info = ( "doc/man/man3/CMS_verify_receipt.3" => [ "doc/man3/CMS_verify_receipt.pod" ], + "doc/man/man3/COMP_CTX_new.3" => [ + "doc/man3/COMP_CTX_new.pod" + ], "doc/man/man3/CONF_modules_free.3" => [ "doc/man3/CONF_modules_free.pod" ], @@ -4889,6 +5586,12 @@ our %unified_info = ( "doc/man/man3/DTLS_set_timer_cb.3" => [ "doc/man3/DTLS_set_timer_cb.pod" ], + "doc/man/man3/DTLSv1_get_timeout.3" => [ + "doc/man3/DTLSv1_get_timeout.pod" + ], + "doc/man/man3/DTLSv1_handle_timeout.3" => [ + "doc/man3/DTLSv1_handle_timeout.pod" + ], "doc/man/man3/DTLSv1_listen.3" => [ "doc/man3/DTLSv1_listen.pod" ], @@ -5027,6 +5730,9 @@ our %unified_info = ( "doc/man/man3/EVP_PKEY_CTX_get0_pkey.3" => [ "doc/man3/EVP_PKEY_CTX_get0_pkey.pod" ], + "doc/man/man3/EVP_PKEY_CTX_get_algor.3" => [ + "doc/man3/EVP_PKEY_CTX_get_algor.pod" + ], "doc/man/man3/EVP_PKEY_CTX_new.3" => [ "doc/man3/EVP_PKEY_CTX_new.pod" ], @@ -5144,6 +5850,12 @@ our %unified_info = ( "doc/man/man3/EVP_SIGNATURE.3" => [ "doc/man3/EVP_SIGNATURE.pod" ], + "doc/man/man3/EVP_SKEY.3" => [ + "doc/man3/EVP_SKEY.pod" + ], + "doc/man/man3/EVP_SKEYMGMT.3" => [ + "doc/man3/EVP_SKEYMGMT.pod" + ], "doc/man/man3/EVP_SealInit.3" => [ "doc/man3/EVP_SealInit.pod" ], @@ -5231,6 +5943,9 @@ our %unified_info = ( "doc/man/man3/EVP_whirlpool.3" => [ "doc/man3/EVP_whirlpool.pod" ], + "doc/man/man3/GENERAL_NAME.3" => [ + "doc/man3/GENERAL_NAME.pod" + ], "doc/man/man3/HMAC.3" => [ "doc/man3/HMAC.pod" ], @@ -5303,9 +6018,15 @@ our %unified_info = ( "doc/man/man3/OPENSSL_load_builtin_modules.3" => [ "doc/man3/OPENSSL_load_builtin_modules.pod" ], + "doc/man/man3/OPENSSL_load_u16_le.3" => [ + "doc/man3/OPENSSL_load_u16_le.pod" + ], "doc/man/man3/OPENSSL_malloc.3" => [ "doc/man3/OPENSSL_malloc.pod" ], + "doc/man/man3/OPENSSL_riscvcap.3" => [ + "doc/man3/OPENSSL_riscvcap.pod" + ], "doc/man/man3/OPENSSL_s390xcap.3" => [ "doc/man3/OPENSSL_s390xcap.pod" ], @@ -5321,12 +6042,18 @@ our %unified_info = ( "doc/man/man3/OSSL_CALLBACK.3" => [ "doc/man3/OSSL_CALLBACK.pod" ], + "doc/man/man3/OSSL_CMP_ATAV_set0.3" => [ + "doc/man3/OSSL_CMP_ATAV_set0.pod" + ], "doc/man/man3/OSSL_CMP_CTX_new.3" => [ "doc/man3/OSSL_CMP_CTX_new.pod" ], "doc/man/man3/OSSL_CMP_HDR_get0_transactionID.3" => [ "doc/man3/OSSL_CMP_HDR_get0_transactionID.pod" ], + "doc/man/man3/OSSL_CMP_ITAV_new_caCerts.3" => [ + "doc/man3/OSSL_CMP_ITAV_new_caCerts.pod" + ], "doc/man/man3/OSSL_CMP_ITAV_set0.3" => [ "doc/man3/OSSL_CMP_ITAV_set0.pod" ], @@ -5396,9 +6123,18 @@ our %unified_info = ( "doc/man/man3/OSSL_ENCODER_to_bio.3" => [ "doc/man3/OSSL_ENCODER_to_bio.pod" ], + "doc/man/man3/OSSL_ERR_STATE_save.3" => [ + "doc/man3/OSSL_ERR_STATE_save.pod" + ], "doc/man/man3/OSSL_ESS_check_signing_certs.3" => [ "doc/man3/OSSL_ESS_check_signing_certs.pod" ], + "doc/man/man3/OSSL_GENERAL_NAMES_print.3" => [ + "doc/man3/OSSL_GENERAL_NAMES_print.pod" + ], + "doc/man/man3/OSSL_HPKE_CTX_new.3" => [ + "doc/man3/OSSL_HPKE_CTX_new.pod" + ], "doc/man/man3/OSSL_HTTP_REQ_CTX.3" => [ "doc/man3/OSSL_HTTP_REQ_CTX.pod" ], @@ -5408,12 +6144,24 @@ our %unified_info = ( "doc/man/man3/OSSL_HTTP_transfer.3" => [ "doc/man3/OSSL_HTTP_transfer.pod" ], + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX.3" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX.pod" + ], + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX_print.3" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX_print.pod" + ], + "doc/man/man3/OSSL_INDICATOR_set_callback.3" => [ + "doc/man3/OSSL_INDICATOR_set_callback.pod" + ], "doc/man/man3/OSSL_ITEM.3" => [ "doc/man3/OSSL_ITEM.pod" ], "doc/man/man3/OSSL_LIB_CTX.3" => [ "doc/man3/OSSL_LIB_CTX.pod" ], + "doc/man/man3/OSSL_LIB_CTX_set_conf_diagnostics.3" => [ + "doc/man3/OSSL_LIB_CTX_set_conf_diagnostics.pod" + ], "doc/man/man3/OSSL_PARAM.3" => [ "doc/man3/OSSL_PARAM.pod" ], @@ -5429,9 +6177,15 @@ our %unified_info = ( "doc/man/man3/OSSL_PARAM_int.3" => [ "doc/man3/OSSL_PARAM_int.pod" ], + "doc/man/man3/OSSL_PARAM_print_to_bio.3" => [ + "doc/man3/OSSL_PARAM_print_to_bio.pod" + ], "doc/man/man3/OSSL_PROVIDER.3" => [ "doc/man3/OSSL_PROVIDER.pod" ], + "doc/man/man3/OSSL_QUIC_client_method.3" => [ + "doc/man3/OSSL_QUIC_client_method.pod" + ], "doc/man/man3/OSSL_SELF_TEST_new.3" => [ "doc/man3/OSSL_SELF_TEST_new.pod" ], @@ -5456,6 +6210,9 @@ our %unified_info = ( "doc/man/man3/OSSL_STORE_open.3" => [ "doc/man3/OSSL_STORE_open.pod" ], + "doc/man/man3/OSSL_sleep.3" => [ + "doc/man3/OSSL_sleep.pod" + ], "doc/man/man3/OSSL_trace_enabled.3" => [ "doc/man3/OSSL_trace_enabled.pod" ], @@ -5471,6 +6228,9 @@ our %unified_info = ( "doc/man/man3/OpenSSL_version.3" => [ "doc/man3/OpenSSL_version.pod" ], + "doc/man/man3/PBMAC1_get1_pbkdf2_param.3" => [ + "doc/man3/PBMAC1_get1_pbkdf2_param.pod" + ], "doc/man/man3/PEM_X509_INFO_read_bio_ex.3" => [ "doc/man3/PEM_X509_INFO_read_bio_ex.pod" ], @@ -5507,6 +6267,9 @@ our %unified_info = ( "doc/man/man3/PKCS12_SAFEBAG_get1_cert.3" => [ "doc/man3/PKCS12_SAFEBAG_get1_cert.pod" ], + "doc/man/man3/PKCS12_SAFEBAG_set0_attrs.3" => [ + "doc/man3/PKCS12_SAFEBAG_set0_attrs.pod" + ], "doc/man/man3/PKCS12_add1_attr_by_NID.3" => [ "doc/man3/PKCS12_add1_attr_by_NID.pod" ], @@ -5780,6 +6543,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set0_CA_list.3" => [ "doc/man3/SSL_CTX_set0_CA_list.pod" ], + "doc/man/man3/SSL_CTX_set1_cert_comp_preference.3" => [ + "doc/man3/SSL_CTX_set1_cert_comp_preference.pod" + ], "doc/man/man3/SSL_CTX_set1_curves.3" => [ "doc/man3/SSL_CTX_set1_curves.pod" ], @@ -5819,6 +6585,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_default_passwd_cb.3" => [ "doc/man3/SSL_CTX_set_default_passwd_cb.pod" ], + "doc/man/man3/SSL_CTX_set_domain_flags.3" => [ + "doc/man3/SSL_CTX_set_domain_flags.pod" + ], "doc/man/man3/SSL_CTX_set_generate_session_id.3" => [ "doc/man3/SSL_CTX_set_generate_session_id.pod" ], @@ -5840,6 +6609,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_msg_callback.3" => [ "doc/man3/SSL_CTX_set_msg_callback.pod" ], + "doc/man/man3/SSL_CTX_set_new_pending_conn_cb.3" => [ + "doc/man3/SSL_CTX_set_new_pending_conn_cb.pod" + ], "doc/man/man3/SSL_CTX_set_num_tickets.3" => [ "doc/man3/SSL_CTX_set_num_tickets.pod" ], @@ -5954,6 +6726,9 @@ our %unified_info = ( "doc/man/man3/SSL_accept.3" => [ "doc/man3/SSL_accept.pod" ], + "doc/man/man3/SSL_accept_stream.3" => [ + "doc/man3/SSL_accept_stream.pod" + ], "doc/man/man3/SSL_alert_type_string.3" => [ "doc/man3/SSL_alert_type_string.pod" ], @@ -5981,9 +6756,21 @@ our %unified_info = ( "doc/man/man3/SSL_free.3" => [ "doc/man3/SSL_free.pod" ], + "doc/man/man3/SSL_get0_connection.3" => [ + "doc/man3/SSL_get0_connection.pod" + ], + "doc/man/man3/SSL_get0_group_name.3" => [ + "doc/man3/SSL_get0_group_name.pod" + ], + "doc/man/man3/SSL_get0_peer_rpk.3" => [ + "doc/man3/SSL_get0_peer_rpk.pod" + ], "doc/man/man3/SSL_get0_peer_scts.3" => [ "doc/man3/SSL_get0_peer_scts.pod" ], + "doc/man/man3/SSL_get1_builtin_sigalgs.3" => [ + "doc/man3/SSL_get1_builtin_sigalgs.pod" + ], "doc/man/man3/SSL_get_SSL_CTX.3" => [ "doc/man3/SSL_get_SSL_CTX.pod" ], @@ -5999,6 +6786,9 @@ our %unified_info = ( "doc/man/man3/SSL_get_client_random.3" => [ "doc/man3/SSL_get_client_random.pod" ], + "doc/man/man3/SSL_get_conn_close_info.3" => [ + "doc/man3/SSL_get_conn_close_info.pod" + ], "doc/man/man3/SSL_get_current_cipher.3" => [ "doc/man3/SSL_get_current_cipher.pod" ], @@ -6008,12 +6798,18 @@ our %unified_info = ( "doc/man/man3/SSL_get_error.3" => [ "doc/man3/SSL_get_error.pod" ], + "doc/man/man3/SSL_get_event_timeout.3" => [ + "doc/man3/SSL_get_event_timeout.pod" + ], "doc/man/man3/SSL_get_extms_support.3" => [ "doc/man3/SSL_get_extms_support.pod" ], "doc/man/man3/SSL_get_fd.3" => [ "doc/man3/SSL_get_fd.pod" ], + "doc/man/man3/SSL_get_handshake_rtt.3" => [ + "doc/man3/SSL_get_handshake_rtt.pod" + ], "doc/man/man3/SSL_get_peer_cert_chain.3" => [ "doc/man3/SSL_get_peer_cert_chain.pod" ], @@ -6032,12 +6828,24 @@ our %unified_info = ( "doc/man/man3/SSL_get_rbio.3" => [ "doc/man3/SSL_get_rbio.pod" ], + "doc/man/man3/SSL_get_rpoll_descriptor.3" => [ + "doc/man3/SSL_get_rpoll_descriptor.pod" + ], "doc/man/man3/SSL_get_session.3" => [ "doc/man3/SSL_get_session.pod" ], "doc/man/man3/SSL_get_shared_sigalgs.3" => [ "doc/man3/SSL_get_shared_sigalgs.pod" ], + "doc/man/man3/SSL_get_stream_id.3" => [ + "doc/man3/SSL_get_stream_id.pod" + ], + "doc/man/man3/SSL_get_stream_read_state.3" => [ + "doc/man3/SSL_get_stream_read_state.pod" + ], + "doc/man/man3/SSL_get_value_uint.3" => [ + "doc/man3/SSL_get_value_uint.pod" + ], "doc/man/man3/SSL_get_verify_result.3" => [ "doc/man3/SSL_get_verify_result.pod" ], @@ -6047,9 +6855,15 @@ our %unified_info = ( "doc/man/man3/SSL_group_to_name.3" => [ "doc/man3/SSL_group_to_name.pod" ], + "doc/man/man3/SSL_handle_events.3" => [ + "doc/man3/SSL_handle_events.pod" + ], "doc/man/man3/SSL_in_init.3" => [ "doc/man3/SSL_in_init.pod" ], + "doc/man/man3/SSL_inject_net_dgram.3" => [ + "doc/man3/SSL_inject_net_dgram.pod" + ], "doc/man/man3/SSL_key_update.3" => [ "doc/man3/SSL_key_update.pod" ], @@ -6062,9 +6876,21 @@ our %unified_info = ( "doc/man/man3/SSL_new.3" => [ "doc/man3/SSL_new.pod" ], + "doc/man/man3/SSL_new_domain.3" => [ + "doc/man3/SSL_new_domain.pod" + ], + "doc/man/man3/SSL_new_listener.3" => [ + "doc/man3/SSL_new_listener.pod" + ], + "doc/man/man3/SSL_new_stream.3" => [ + "doc/man3/SSL_new_stream.pod" + ], "doc/man/man3/SSL_pending.3" => [ "doc/man3/SSL_pending.pod" ], + "doc/man/man3/SSL_poll.3" => [ + "doc/man3/SSL_poll.pod" + ], "doc/man/man3/SSL_read.3" => [ "doc/man3/SSL_read.pod" ], @@ -6080,24 +6906,45 @@ our %unified_info = ( "doc/man/man3/SSL_set1_host.3" => [ "doc/man3/SSL_set1_host.pod" ], + "doc/man/man3/SSL_set1_initial_peer_addr.3" => [ + "doc/man3/SSL_set1_initial_peer_addr.pod" + ], + "doc/man/man3/SSL_set1_server_cert_type.3" => [ + "doc/man3/SSL_set1_server_cert_type.pod" + ], "doc/man/man3/SSL_set_async_callback.3" => [ "doc/man3/SSL_set_async_callback.pod" ], "doc/man/man3/SSL_set_bio.3" => [ "doc/man3/SSL_set_bio.pod" ], + "doc/man/man3/SSL_set_blocking_mode.3" => [ + "doc/man3/SSL_set_blocking_mode.pod" + ], "doc/man/man3/SSL_set_connect_state.3" => [ "doc/man3/SSL_set_connect_state.pod" ], + "doc/man/man3/SSL_set_default_stream_mode.3" => [ + "doc/man3/SSL_set_default_stream_mode.pod" + ], "doc/man/man3/SSL_set_fd.3" => [ "doc/man3/SSL_set_fd.pod" ], + "doc/man/man3/SSL_set_incoming_stream_policy.3" => [ + "doc/man3/SSL_set_incoming_stream_policy.pod" + ], + "doc/man/man3/SSL_set_quic_tls_cbs.3" => [ + "doc/man3/SSL_set_quic_tls_cbs.pod" + ], "doc/man/man3/SSL_set_retry_verify.3" => [ "doc/man3/SSL_set_retry_verify.pod" ], "doc/man/man3/SSL_set_session.3" => [ "doc/man3/SSL_set_session.pod" ], + "doc/man/man3/SSL_set_session_secret_cb.3" => [ + "doc/man3/SSL_set_session_secret_cb.pod" + ], "doc/man/man3/SSL_set_shutdown.3" => [ "doc/man3/SSL_set_shutdown.pod" ], @@ -6110,6 +6957,12 @@ our %unified_info = ( "doc/man/man3/SSL_state_string.3" => [ "doc/man3/SSL_state_string.pod" ], + "doc/man/man3/SSL_stream_conclude.3" => [ + "doc/man3/SSL_stream_conclude.pod" + ], + "doc/man/man3/SSL_stream_reset.3" => [ + "doc/man3/SSL_stream_reset.pod" + ], "doc/man/man3/SSL_want.3" => [ "doc/man3/SSL_want.pod" ], @@ -6119,8 +6972,8 @@ our %unified_info = ( "doc/man/man3/TS_RESP_CTX_new.3" => [ "doc/man3/TS_RESP_CTX_new.pod" ], - "doc/man/man3/TS_VERIFY_CTX_set_certs.3" => [ - "doc/man3/TS_VERIFY_CTX_set_certs.pod" + "doc/man/man3/TS_VERIFY_CTX.3" => [ + "doc/man3/TS_VERIFY_CTX.pod" ], "doc/man/man3/UI_STRING.3" => [ "doc/man3/UI_STRING.pod" @@ -6140,6 +6993,21 @@ our %unified_info = ( "doc/man/man3/X509V3_set_ctx.3" => [ "doc/man3/X509V3_set_ctx.pod" ], + "doc/man/man3/X509_ACERT_add1_attr.3" => [ + "doc/man3/X509_ACERT_add1_attr.pod" + ], + "doc/man/man3/X509_ACERT_add_attr_nconf.3" => [ + "doc/man3/X509_ACERT_add_attr_nconf.pod" + ], + "doc/man/man3/X509_ACERT_get0_holder_baseCertId.3" => [ + "doc/man3/X509_ACERT_get0_holder_baseCertId.pod" + ], + "doc/man/man3/X509_ACERT_get_attr.3" => [ + "doc/man3/X509_ACERT_get_attr.pod" + ], + "doc/man/man3/X509_ACERT_print_ex.3" => [ + "doc/man3/X509_ACERT_print_ex.pod" + ], "doc/man/man3/X509_ALGOR_dup.3" => [ "doc/man3/X509_ALGOR_dup.pod" ], @@ -6188,6 +7056,9 @@ our %unified_info = ( "doc/man/man3/X509_SIG_get0.3" => [ "doc/man3/X509_SIG_get0.pod" ], + "doc/man/man3/X509_STORE_CTX_get_by_subject.3" => [ + "doc/man3/X509_STORE_CTX_get_by_subject.pod" + ], "doc/man/man3/X509_STORE_CTX_get_error.3" => [ "doc/man3/X509_STORE_CTX_get_error.pod" ], @@ -6254,6 +7125,9 @@ our %unified_info = ( "doc/man/man3/X509_get0_uids.3" => [ "doc/man3/X509_get0_uids.pod" ], + "doc/man/man3/X509_get_default_cert_file.3" => [ + "doc/man3/X509_get_default_cert_file.pod" + ], "doc/man/man3/X509_get_extension_flags.3" => [ "doc/man3/X509_get_extension_flags.pod" ], @@ -6377,9 +7251,15 @@ our %unified_info = ( "doc/man/man7/EVP_CIPHER-SM4.7" => [ "doc/man7/EVP_CIPHER-SM4.pod" ], + "doc/man/man7/EVP_KDF-ARGON2.7" => [ + "doc/man7/EVP_KDF-ARGON2.pod" + ], "doc/man/man7/EVP_KDF-HKDF.7" => [ "doc/man7/EVP_KDF-HKDF.pod" ], + "doc/man/man7/EVP_KDF-HMAC-DRBG.7" => [ + "doc/man7/EVP_KDF-HMAC-DRBG.pod" + ], "doc/man/man7/EVP_KDF-KB.7" => [ "doc/man7/EVP_KDF-KB.pod" ], @@ -6395,6 +7275,9 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-PKCS12KDF.7" => [ "doc/man7/EVP_KDF-PKCS12KDF.pod" ], + "doc/man/man7/EVP_KDF-PVKKDF.7" => [ + "doc/man7/EVP_KDF-PVKKDF.pod" + ], "doc/man/man7/EVP_KDF-SCRYPT.7" => [ "doc/man7/EVP_KDF-SCRYPT.pod" ], @@ -6419,9 +7302,18 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-X963.7" => [ "doc/man7/EVP_KDF-X963.pod" ], + "doc/man/man7/EVP_KEM-EC.7" => [ + "doc/man7/EVP_KEM-EC.pod" + ], + "doc/man/man7/EVP_KEM-ML-KEM.7" => [ + "doc/man7/EVP_KEM-ML-KEM.pod" + ], "doc/man/man7/EVP_KEM-RSA.7" => [ "doc/man7/EVP_KEM-RSA.pod" ], + "doc/man/man7/EVP_KEM-X25519.7" => [ + "doc/man7/EVP_KEM-X25519.pod" + ], "doc/man/man7/EVP_KEYEXCH-DH.7" => [ "doc/man7/EVP_KEYEXCH-DH.pod" ], @@ -6455,6 +7347,9 @@ our %unified_info = ( "doc/man/man7/EVP_MD-BLAKE2.7" => [ "doc/man7/EVP_MD-BLAKE2.pod" ], + "doc/man/man7/EVP_MD-KECCAK.7" => [ + "doc/man7/EVP_MD-KECCAK.pod" + ], "doc/man/man7/EVP_MD-MD2.7" => [ "doc/man7/EVP_MD-MD2.pod" ], @@ -6512,15 +7407,27 @@ our %unified_info = ( "doc/man/man7/EVP_PKEY-HMAC.7" => [ "doc/man7/EVP_PKEY-HMAC.pod" ], + "doc/man/man7/EVP_PKEY-ML-DSA.7" => [ + "doc/man7/EVP_PKEY-ML-DSA.pod" + ], + "doc/man/man7/EVP_PKEY-ML-KEM.7" => [ + "doc/man7/EVP_PKEY-ML-KEM.pod" + ], "doc/man/man7/EVP_PKEY-RSA.7" => [ "doc/man7/EVP_PKEY-RSA.pod" ], + "doc/man/man7/EVP_PKEY-SLH-DSA.7" => [ + "doc/man7/EVP_PKEY-SLH-DSA.pod" + ], "doc/man/man7/EVP_PKEY-SM2.7" => [ "doc/man7/EVP_PKEY-SM2.pod" ], "doc/man/man7/EVP_PKEY-X25519.7" => [ "doc/man7/EVP_PKEY-X25519.pod" ], + "doc/man/man7/EVP_RAND-CRNG-TEST.7" => [ + "doc/man7/EVP_RAND-CRNG-TEST.pod" + ], "doc/man/man7/EVP_RAND-CTR-DRBG.7" => [ "doc/man7/EVP_RAND-CTR-DRBG.pod" ], @@ -6530,6 +7437,9 @@ our %unified_info = ( "doc/man/man7/EVP_RAND-HMAC-DRBG.7" => [ "doc/man7/EVP_RAND-HMAC-DRBG.pod" ], + "doc/man/man7/EVP_RAND-JITTER.7" => [ + "doc/man7/EVP_RAND-JITTER.pod" + ], "doc/man/man7/EVP_RAND-SEED-SRC.7" => [ "doc/man7/EVP_RAND-SEED-SRC.pod" ], @@ -6551,9 +7461,15 @@ our %unified_info = ( "doc/man/man7/EVP_SIGNATURE-HMAC.7" => [ "doc/man7/EVP_SIGNATURE-HMAC.pod" ], + "doc/man/man7/EVP_SIGNATURE-ML-DSA.7" => [ + "doc/man7/EVP_SIGNATURE-ML-DSA.pod" + ], "doc/man/man7/EVP_SIGNATURE-RSA.7" => [ "doc/man7/EVP_SIGNATURE-RSA.pod" ], + "doc/man/man7/EVP_SIGNATURE-SLH-DSA.7" => [ + "doc/man7/EVP_SIGNATURE-SLH-DSA.pod" + ], "doc/man/man7/OSSL_PROVIDER-FIPS.7" => [ "doc/man7/OSSL_PROVIDER-FIPS.pod" ], @@ -6569,6 +7485,9 @@ our %unified_info = ( "doc/man/man7/OSSL_PROVIDER-null.7" => [ "doc/man7/OSSL_PROVIDER-null.pod" ], + "doc/man/man7/OSSL_STORE-winstore.7" => [ + "doc/man7/OSSL_STORE-winstore.pod" + ], "doc/man/man7/RAND.7" => [ "doc/man7/RAND.pod" ], @@ -6581,9 +7500,6 @@ our %unified_info = ( "doc/man/man7/bio.7" => [ "doc/man7/bio.pod" ], - "doc/man/man7/crypto.7" => [ - "doc/man7/crypto.pod" - ], "doc/man/man7/ct.7" => [ "doc/man7/ct.pod" ], @@ -6614,9 +7530,6 @@ our %unified_info = ( "doc/man/man7/life_cycle-rand.7" => [ "doc/man7/life_cycle-rand.pod" ], - "doc/man/man7/migration_guide.7" => [ - "doc/man7/migration_guide.pod" - ], "doc/man/man7/openssl-core.h.7" => [ "doc/man7/openssl-core.h.pod" ], @@ -6632,12 +7545,66 @@ our %unified_info = ( "doc/man/man7/openssl-glossary.7" => [ "doc/man7/openssl-glossary.pod" ], + "doc/man/man7/openssl-qlog.7" => [ + "doc/man7/openssl-qlog.pod" + ], + "doc/man/man7/openssl-quic-concurrency.7" => [ + "doc/man7/openssl-quic-concurrency.pod" + ], + "doc/man/man7/openssl-quic.7" => [ + "doc/man7/openssl-quic.pod" + ], "doc/man/man7/openssl-threads.7" => [ "doc/man7/openssl-threads.pod" ], "doc/man/man7/openssl_user_macros.7" => [ "doc/man7/openssl_user_macros.pod" ], + "doc/man/man7/ossl-guide-introduction.7" => [ + "doc/man7/ossl-guide-introduction.pod" + ], + "doc/man/man7/ossl-guide-libcrypto-introduction.7" => [ + "doc/man7/ossl-guide-libcrypto-introduction.pod" + ], + "doc/man/man7/ossl-guide-libraries-introduction.7" => [ + "doc/man7/ossl-guide-libraries-introduction.pod" + ], + "doc/man/man7/ossl-guide-libssl-introduction.7" => [ + "doc/man7/ossl-guide-libssl-introduction.pod" + ], + "doc/man/man7/ossl-guide-migration.7" => [ + "doc/man7/ossl-guide-migration.pod" + ], + "doc/man/man7/ossl-guide-quic-client-block.7" => [ + "doc/man7/ossl-guide-quic-client-block.pod" + ], + "doc/man/man7/ossl-guide-quic-client-non-block.7" => [ + "doc/man7/ossl-guide-quic-client-non-block.pod" + ], + "doc/man/man7/ossl-guide-quic-introduction.7" => [ + "doc/man7/ossl-guide-quic-introduction.pod" + ], + "doc/man/man7/ossl-guide-quic-multi-stream.7" => [ + "doc/man7/ossl-guide-quic-multi-stream.pod" + ], + "doc/man/man7/ossl-guide-quic-server-block.7" => [ + "doc/man7/ossl-guide-quic-server-block.pod" + ], + "doc/man/man7/ossl-guide-quic-server-non-block.7" => [ + "doc/man7/ossl-guide-quic-server-non-block.pod" + ], + "doc/man/man7/ossl-guide-tls-client-block.7" => [ + "doc/man7/ossl-guide-tls-client-block.pod" + ], + "doc/man/man7/ossl-guide-tls-client-non-block.7" => [ + "doc/man7/ossl-guide-tls-client-non-block.pod" + ], + "doc/man/man7/ossl-guide-tls-introduction.7" => [ + "doc/man7/ossl-guide-tls-introduction.pod" + ], + "doc/man/man7/ossl-guide-tls-server-block.7" => [ + "doc/man7/ossl-guide-tls-server-block.pod" + ], "doc/man/man7/ossl_store-file.7" => [ "doc/man7/ossl_store-file.pod" ], @@ -6692,6 +7659,9 @@ our %unified_info = ( "doc/man/man7/provider-signature.7" => [ "doc/man7/provider-signature.pod" ], + "doc/man/man7/provider-skeymgmt.7" => [ + "doc/man7/provider-skeymgmt.pod" + ], "doc/man/man7/provider-storemgmt.7" => [ "doc/man7/provider-storemgmt.pod" ], @@ -6701,9 +7671,6 @@ our %unified_info = ( "doc/man/man7/proxy-certificates.7" => [ "doc/man7/proxy-certificates.pod" ], - "doc/man/man7/ssl.7" => [ - "doc/man7/ssl.pod" - ], "doc/man/man7/x509.7" => [ "doc/man7/x509.pod" ], @@ -6883,6 +7850,10 @@ our %unified_info = ( "doc/man1/openssl-sess_id.pod.in", "doc/perlvars.pm" ], + "doc/man1/openssl-skeyutl.pod" => [ + "doc/man1/openssl-skeyutl.pod.in", + "doc/perlvars.pm" + ], "doc/man1/openssl-smime.pod" => [ "doc/man1/openssl-smime.pod.in", "doc/perlvars.pm" @@ -6922,6 +7893,27 @@ our %unified_info = ( "doc/man7/openssl_user_macros.pod" => [ "doc/man7/openssl_user_macros.pod.in" ], + "exporters/OpenSSLConfig.cmake" => [ + "installdata.pm" + ], + "exporters/OpenSSLConfigVersion.cmake" => [ + "exporters/OpenSSLConfig.cmake", + "installdata.pm" + ], + "exporters/libcrypto.pc" => [ + "installdata.pm" + ], + "exporters/libssl.pc" => [ + "installdata.pm" + ], + "exporters/openssl.pc" => [ + "exporters/libcrypto.pc", + "exporters/libssl.pc", + "installdata.pm" + ], + "fuzz/acert-test" => [ + "libcrypto" + ], "fuzz/asn1-test" => [ "libcrypto", "libssl" @@ -6954,16 +7946,92 @@ our %unified_info = ( "fuzz/ct-test" => [ "libcrypto" ], + "fuzz/decoder-test" => [ + "libcrypto" + ], + "fuzz/dtlsclient-test" => [ + "libcrypto", + "libssl" + ], + "fuzz/dtlsserver-test" => [ + "libcrypto", + "libssl" + ], + "fuzz/hashtable-test" => [ + "libcrypto.a" + ], + "fuzz/ml-dsa-test" => [ + "libcrypto.a" + ], + "fuzz/ml-kem-test" => [ + "libcrypto.a" + ], + "fuzz/pem-test" => [ + "libcrypto.a" + ], + "fuzz/provider-test" => [ + "libcrypto" + ], + "fuzz/punycode-test" => [ + "libcrypto.a" + ], + "fuzz/quic-client-test" => [ + "libcrypto.a", + "libssl.a" + ], + "fuzz/quic-lcidm-test" => [ + "libcrypto.a", + "libssl.a" + ], + "fuzz/quic-rcidm-test" => [ + "libcrypto.a", + "libssl.a" + ], + "fuzz/quic-server-test" => [ + "libcrypto.a", + "libssl.a" + ], + "fuzz/quic-srtm-test" => [ + "libcrypto.a", + "libssl.a" + ], "fuzz/server-test" => [ "libcrypto", "libssl" ], + "fuzz/slh-dsa-test" => [ + "libcrypto.a" + ], + "fuzz/smime-test" => [ + "libcrypto", + "libssl" + ], + "fuzz/v3name-test" => [ + "libcrypto.a" + ], "fuzz/x509-test" => [ "libcrypto" ], + "include/internal/param_names.h" => [ + "util/perl|OpenSSL/paramnames.pm" + ], + "include/openssl/core_names.h" => [ + "util/perl|OpenSSL/paramnames.pm" + ], + "libcrypto.pc" => [ + "builddata.pm" + ], "libssl" => [ "libcrypto" ], + "libssl.pc" => [ + "builddata.pm" + ], + "openssl.pc" => [ + "builddata.pm", + "libcrypto.pc", + "libssl.pc" + ], "providers/common/der/der_digests_gen.c" => [ "providers/common/der/DIGESTS.asn1", "providers/common/der/NIST.asn1", @@ -6981,11 +8049,19 @@ our %unified_info = ( "providers/common/der/ECX.asn1", "providers/common/der/oids_to_c.pm" ], + "providers/common/der/der_ml_dsa_gen.c" => [ + "providers/common/der/ML_DSA.asn1", + "providers/common/der/oids_to_c.pm" + ], "providers/common/der/der_rsa_gen.c" => [ "providers/common/der/NIST.asn1", "providers/common/der/RSA.asn1", "providers/common/der/oids_to_c.pm" ], + "providers/common/der/der_slh_dsa_gen.c" => [ + "providers/common/der/SLH_DSA.asn1", + "providers/common/der/oids_to_c.pm" + ], "providers/common/der/der_sm2_gen.c" => [ "providers/common/der/SM2.asn1", "providers/common/der/oids_to_c.pm" @@ -7025,6 +8101,12 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ecx_key.o" => [ "providers/common/include/prov/der_ecx.h" ], + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o" => [ + "providers/common/include/prov/der_ml_dsa.h" + ], + "providers/common/der/libcommon-lib-der_ml_dsa_key.o" => [ + "providers/common/include/prov/der_ml_dsa.h" + ], "providers/common/der/libcommon-lib-der_rsa_gen.o" => [ "providers/common/include/prov/der_rsa.h" ], @@ -7032,6 +8114,12 @@ our %unified_info = ( "providers/common/include/prov/der_digests.h", "providers/common/include/prov/der_rsa.h" ], + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o" => [ + "providers/common/include/prov/der_slh_dsa.h" + ], + "providers/common/der/libcommon-lib-der_slh_dsa_key.o" => [ + "providers/common/include/prov/der_slh_dsa.h" + ], "providers/common/der/libcommon-lib-der_wrap_gen.o" => [ "providers/common/include/prov/der_wrap.h" ], @@ -7071,11 +8159,19 @@ our %unified_info = ( "providers/common/der/ECX.asn1", "providers/common/der/oids_to_c.pm" ], + "providers/common/include/prov/der_ml_dsa.h" => [ + "providers/common/der/ML_DSA.asn1", + "providers/common/der/oids_to_c.pm" + ], "providers/common/include/prov/der_rsa.h" => [ "providers/common/der/NIST.asn1", "providers/common/der/RSA.asn1", "providers/common/der/oids_to_c.pm" ], + "providers/common/include/prov/der_slh_dsa.h" => [ + "providers/common/der/SLH_DSA.asn1", + "providers/common/der/oids_to_c.pm" + ], "providers/common/include/prov/der_sm2.h" => [ "providers/common/der/SM2.asn1", "providers/common/der/oids_to_c.pm" @@ -7108,9 +8204,15 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-eddsa_sig.o" => [ "providers/common/include/prov/der_ecx.h" ], + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o" => [ + "providers/common/include/prov/der_ml_dsa.h" + ], "providers/implementations/signature/libdefault-lib-rsa_sig.o" => [ "providers/common/include/prov/der_rsa.h" ], + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o" => [ + "providers/common/include/prov/der_slh_dsa.h" + ], "providers/implementations/signature/libdefault-lib-sm2_sig.o" => [ "providers/common/include/prov/der_sm2.h" ], @@ -7123,9 +8225,15 @@ our %unified_info = ( "providers/implementations/signature/libfips-lib-eddsa_sig.o" => [ "providers/common/include/prov/der_ecx.h" ], + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o" => [ + "providers/common/include/prov/der_ml_dsa.h" + ], "providers/implementations/signature/libfips-lib-rsa_sig.o" => [ "providers/common/include/prov/der_rsa.h" ], + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o" => [ + "providers/common/include/prov/der_slh_dsa.h" + ], "providers/legacy" => [ "libcrypto", "providers/liblegacy.a" @@ -7203,6 +8311,14 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/bio_addr_test" => [ + "libcrypto", + "test/libtestutil.a" + ], + "test/bio_base64_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/bio_callback_test" => [ "libcrypto", "test/libtestutil.a" @@ -7211,6 +8327,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/bio_dgram_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/bio_enc_test" => [ "libcrypto", "test/libtestutil.a" @@ -7219,6 +8339,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/bio_meth_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/bio_prefix_text" => [ "libcrypto", "test/libtestutil.a" @@ -7231,6 +8355,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/bio_tfo_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/bioprinttest" => [ "libcrypto", "test/libtestutil.a" @@ -7243,6 +8371,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/build_wincrypt_test" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_aes" => [ "libcrypto", "libssl" @@ -7263,6 +8395,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_byteorder" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_camellia" => [ "libcrypto", "libssl" @@ -7295,10 +8431,6 @@ our %unified_info = ( "libcrypto", "libssl" ], - "test/buildtest_c_core_names" => [ - "libcrypto", - "libssl" - ], "test/buildtest_c_core_object" => [ "libcrypto", "libssl" @@ -7331,6 +8463,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_e_ostime" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_ebcdic" => [ "libcrypto", "libssl" @@ -7367,6 +8503,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_hpke" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_http" => [ "libcrypto", "libssl" @@ -7375,6 +8515,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_indicator" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_kdf" => [ "libcrypto", "libssl" @@ -7395,6 +8539,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_ml_kem" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_modes" => [ "libcrypto", "libssl" @@ -7435,6 +8583,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_quic" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_rand" => [ "libcrypto", "libssl" @@ -7491,6 +8643,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_thread" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_tls1" => [ "libcrypto", "libssl" @@ -7511,15 +8667,28 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/byteorder_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], + "test/ca_internals_test" => [ + "libssl", + "test/libtestutil.a" + ], "test/casttest" => [ "libcrypto", "test/libtestutil.a" ], - "test/chacha_internal_test" => [ + "test/cert_comp_test" => [ "libcrypto.a", + "libssl.a", "test/libtestutil.a" ], - "test/cipher_overhead_test" => [ + "test/chacha_internal_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], + "test/cipher_overhead_test" => [ "libcrypto.a", "libssl.a", "test/libtestutil.a" @@ -7628,6 +8797,10 @@ our %unified_info = ( "libssl", "test/libtestutil.a" ], + "test/decoder_propq_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/defltfips_test" => [ "libcrypto", "test/libtestutil.a" @@ -7684,6 +8857,8 @@ our %unified_info = ( ], "test/endecode_test" => [ "libcrypto.a", + "providers/libcommon.a", + "providers/liblegacy.a", "test/libtestutil.a" ], "test/endecoder_legacy_test" => [ @@ -7727,6 +8902,10 @@ our %unified_info = ( "test/evp_pkey_ctx_new_from_name" => [ "libcrypto" ], + "test/evp_pkey_dhkem_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/evp_pkey_dparams_test" => [ "libcrypto", "test/libtestutil.a" @@ -7735,10 +8914,18 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/evp_skey_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/evp_test" => [ "libcrypto", "test/libtestutil.a" ], + "test/evp_xof_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/exdatatest" => [ "libcrypto", "test/libtestutil.a" @@ -7777,6 +8964,10 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/hpke_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/http_test" => [ "libcrypto", "test/libtestutil.a" @@ -7789,17 +8980,25 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/json_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], "test/keymgmt_internal_test" => [ "libcrypto.a", "test/libtestutil.a" ], "test/lhash_test" => [ - "libcrypto", + "libcrypto.a", "test/libtestutil.a" ], "test/libtestutil.a" => [ "libcrypto" ], + "test/list_test" => [ + "test/libtestutil.a" + ], "test/localetest" => [ "libcrypto", "test/libtestutil.a" @@ -7812,10 +9011,26 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/membio_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/memleaktest" => [ "libcrypto", "test/libtestutil.a" ], + "test/ml_dsa_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], + "test/ml_kem_evp_extra_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], + "test/ml_kem_internal_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/modes_internal_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -7840,6 +9055,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/pairwise_fail_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/param_build_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -7872,6 +9091,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/pkcs12_api_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/pkcs12_format_test" => [ "libcrypto", "test/libtestutil.a" @@ -7892,6 +9115,11 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/priority_queue_test" => [ + "libcrypto", + "libssl.a", + "test/libtestutil.a" + ], "test/property_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -7904,6 +9132,10 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/provider_default_search_path_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/provider_fallback_test" => [ "libcrypto", "test/libtestutil.a" @@ -7928,12 +9160,122 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/quic_ackm_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_cc_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_cfq_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_client_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_fc_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_fifd_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_lcidm_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_multistream_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_newcid_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_qlog_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_radix_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_rcidm_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_record_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_srt_gen_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_srtm_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_stream_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_tserver_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_txp_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_txpim_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_wire_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quicapitest" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quicfaultstest" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], "test/rand_status_test" => [ "libcrypto", "test/libtestutil.a" ], "test/rand_test" => [ - "libcrypto", + "libcrypto.a", "test/libtestutil.a" ], "test/rc2test" => [ @@ -7948,7 +9290,7 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], - "test/rdrand_sanitytest" => [ + "test/rdcpu_sanitytest" => [ "libcrypto.a", "test/libtestutil.a" ], @@ -7957,6 +9299,11 @@ our %unified_info = ( "libssl", "test/libtestutil.a" ], + "test/rpktest" => [ + "libcrypto", + "libssl", + "test/libtestutil.a" + ], "test/rsa_mp_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -7969,10 +9316,18 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], - "test/sanitytest" => [ + "test/rsa_x931_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], + "test/safe_math_test" => [ "libcrypto", "test/libtestutil.a" ], + "test/sanitytest" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/secmemtest" => [ "libcrypto", "test/libtestutil.a" @@ -7990,6 +9345,10 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/slh_dsa_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/sm2_internal_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -8019,6 +9378,11 @@ our %unified_info = ( "libssl", "test/libtestutil.a" ], + "test/ssl_handshake_rtt_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], "test/ssl_old_test" => [ "libcrypto.a", "libssl.a", @@ -8035,8 +9399,8 @@ our %unified_info = ( "test/libtestutil.a" ], "test/sslapitest" => [ - "libcrypto", - "libssl", + "libcrypto.a", + "libssl.a", "test/libtestutil.a" ], "test/sslbuffertest" => [ @@ -8053,6 +9417,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/strtoultest" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/sysdefaulttest" => [ "libcrypto", "libssl", @@ -8062,8 +9430,12 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/threadpool_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/threadstest" => [ - "libcrypto", + "libcrypto.a", "test/libtestutil.a" ], "test/threadstest_fips" => [ @@ -8074,6 +9446,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/time_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/tls13ccstest" => [ "libcrypto", "libssl", @@ -8084,6 +9460,11 @@ our %unified_info = ( "libssl.a", "test/libtestutil.a" ], + "test/tls13groupselection_test" => [ + "libcrypto", + "libssl", + "test/libtestutil.a" + ], "test/trace_api_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -8121,6 +9502,10 @@ our %unified_info = ( "libssl.a", "test/libtestutil.a" ], + "test/x509_acert_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/x509_check_cert_pkey_test" => [ "libcrypto", "test/libtestutil.a" @@ -8133,6 +9518,18 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/x509_load_cert_file_test" => [ + "libcrypto", + "test/libtestutil.a" + ], + "test/x509_req_test" => [ + "libcrypto", + "test/libtestutil.a" + ], + "test/x509_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/x509_time_test" => [ "libcrypto", "test/libtestutil.a" @@ -8147,9 +9544,13 @@ our %unified_info = ( }, "dirinfo" => { "apps" => { + "deps" => [ + "apps/ca_internals_test-bin-ca.o" + ], "products" => { "bin" => [ - "apps/openssl" + "apps/openssl", + "test/ca_internals_test" ], "script" => [ "apps/CA.pl", @@ -8160,6 +9561,14 @@ our %unified_info = ( "apps/lib" => { "deps" => [ "apps/lib/openssl-bin-cmp_mock_srv.o", + "apps/lib/ca_internals_test-bin-app_libctx.o", + "apps/lib/ca_internals_test-bin-app_provider.o", + "apps/lib/ca_internals_test-bin-app_rand.o", + "apps/lib/ca_internals_test-bin-app_x509.o", + "apps/lib/ca_internals_test-bin-apps.o", + "apps/lib/ca_internals_test-bin-apps_ui.o", + "apps/lib/ca_internals_test-bin-engine.o", + "apps/lib/ca_internals_test-bin-fmt.o", "apps/lib/cmp_client_test-bin-cmp_mock_srv.o", "apps/lib/uitest-bin-apps_ui.o", "apps/lib/libapps-lib-app_libctx.o", @@ -8168,12 +9577,14 @@ our %unified_info = ( "apps/lib/libapps-lib-app_rand.o", "apps/lib/libapps-lib-app_x509.o", "apps/lib/libapps-lib-apps.o", + "apps/lib/libapps-lib-apps_opt_printf.o", "apps/lib/libapps-lib-apps_ui.o", "apps/lib/libapps-lib-columns.o", "apps/lib/libapps-lib-engine.o", "apps/lib/libapps-lib-engine_loader.o", "apps/lib/libapps-lib-fmt.o", "apps/lib/libapps-lib-http_server.o", + "apps/lib/libapps-lib-log.o", "apps/lib/libapps-lib-names.o", "apps/lib/libapps-lib-opt.o", "apps/lib/libapps-lib-s_cb.o", @@ -8184,6 +9595,7 @@ our %unified_info = ( "products" => { "bin" => [ "apps/openssl", + "test/ca_internals_test", "test/cmp_client_test", "test/uitest" ], @@ -8195,10 +9607,14 @@ our %unified_info = ( }, "crypto" => { "deps" => [ + "crypto/asn1_time_test-bin-ctype.o", + "crypto/ca_internals_test-bin-ctype.o", + "crypto/packettest-bin-quic_vlint.o", "crypto/libcrypto-lib-arm64cpuid.o", "crypto/libcrypto-lib-armcap.o", "crypto/libcrypto-lib-asn1_dsa.o", "crypto/libcrypto-lib-bsearch.o", + "crypto/libcrypto-lib-comp_methods.o", "crypto/libcrypto-lib-context.o", "crypto/libcrypto-lib-core_algorithm.o", "crypto/libcrypto-lib-core_fetch.o", @@ -8208,10 +9624,13 @@ our %unified_info = ( "crypto/libcrypto-lib-cryptlib.o", "crypto/libcrypto-lib-ctype.o", "crypto/libcrypto-lib-cversion.o", + "crypto/libcrypto-lib-defaults.o", "crypto/libcrypto-lib-der_writer.o", + "crypto/libcrypto-lib-deterministic_nonce.o", "crypto/libcrypto-lib-ebcdic.o", "crypto/libcrypto-lib-ex_data.o", "crypto/libcrypto-lib-getenv.o", + "crypto/libcrypto-lib-indicator_core.o", "crypto/libcrypto-lib-info.o", "crypto/libcrypto-lib-init.o", "crypto/libcrypto-lib-initthread.o", @@ -8228,6 +9647,7 @@ our %unified_info = ( "crypto/libcrypto-lib-params.o", "crypto/libcrypto-lib-params_dup.o", "crypto/libcrypto-lib-params_from_text.o", + "crypto/libcrypto-lib-params_idx.o", "crypto/libcrypto-lib-passphrase.o", "crypto/libcrypto-lib-provider.o", "crypto/libcrypto-lib-provider_child.o", @@ -8235,12 +9655,16 @@ our %unified_info = ( "crypto/libcrypto-lib-provider_core.o", "crypto/libcrypto-lib-provider_predefined.o", "crypto/libcrypto-lib-punycode.o", + "crypto/libcrypto-lib-quic_vlint.o", "crypto/libcrypto-lib-self_test_core.o", + "crypto/libcrypto-lib-sleep.o", "crypto/libcrypto-lib-sparse_array.o", + "crypto/libcrypto-lib-ssl_err.o", "crypto/libcrypto-lib-threads_lib.o", "crypto/libcrypto-lib-threads_none.o", "crypto/libcrypto-lib-threads_pthread.o", "crypto/libcrypto-lib-threads_win.o", + "crypto/libcrypto-lib-time.o", "crypto/libcrypto-lib-trace.o", "crypto/libcrypto-lib-uid.o", "crypto/libfips-lib-arm64cpuid.o", @@ -8264,6 +9688,7 @@ our %unified_info = ( "crypto/libfips-lib-params.o", "crypto/libfips-lib-params_dup.o", "crypto/libfips-lib-params_from_text.o", + "crypto/libfips-lib-params_idx.o", "crypto/libfips-lib-provider_core.o", "crypto/libfips-lib-provider_predefined.o", "crypto/libfips-lib-self_test_core.o", @@ -8271,9 +9696,15 @@ our %unified_info = ( "crypto/libfips-lib-threads_lib.o", "crypto/libfips-lib-threads_none.o", "crypto/libfips-lib-threads_pthread.o", - "crypto/libfips-lib-threads_win.o" + "crypto/libfips-lib-threads_win.o", + "crypto/libfips-lib-time.o" ], "products" => { + "bin" => [ + "test/asn1_time_test", + "test/ca_internals_test", + "test/packettest" + ], "lib" => [ "libcrypto", "providers/libfips.a" @@ -8291,12 +9722,14 @@ our %unified_info = ( "crypto/aes/libcrypto-lib-aes_ofb.o", "crypto/aes/libcrypto-lib-aes_wrap.o", "crypto/aes/libcrypto-lib-aesv8-armx.o", + "crypto/aes/libcrypto-lib-bsaes-armv8.o", "crypto/aes/libcrypto-lib-vpaes-armv8.o", "crypto/aes/libfips-lib-aes_cbc.o", "crypto/aes/libfips-lib-aes_core.o", "crypto/aes/libfips-lib-aes_ecb.o", "crypto/aes/libfips-lib-aes_misc.o", "crypto/aes/libfips-lib-aesv8-armx.o", + "crypto/aes/libfips-lib-bsaes-armv8.o", "crypto/aes/libfips-lib-vpaes-armv8.o" ], "products" => { @@ -8318,6 +9751,8 @@ our %unified_info = ( }, "crypto/asn1" => { "deps" => [ + "crypto/asn1/asn1_time_test-bin-a_time.o", + "crypto/asn1/ca_internals_test-bin-a_time.o", "crypto/asn1/libcrypto-lib-a_bitstr.o", "crypto/asn1/libcrypto-lib-a_d2i_fp.o", "crypto/asn1/libcrypto-lib-a_digest.o", @@ -8384,6 +9819,10 @@ our %unified_info = ( "crypto/asn1/libcrypto-lib-x_val.o" ], "products" => { + "bin" => [ + "test/asn1_time_test", + "test/ca_internals_test" + ], "lib" => [ "libcrypto" ] @@ -8449,6 +9888,7 @@ our %unified_info = ( "crypto/bio/libcrypto-lib-bss_conn.o", "crypto/bio/libcrypto-lib-bss_core.o", "crypto/bio/libcrypto-lib-bss_dgram.o", + "crypto/bio/libcrypto-lib-bss_dgram_pair.o", "crypto/bio/libcrypto-lib-bss_fd.o", "crypto/bio/libcrypto-lib-bss_file.o", "crypto/bio/libcrypto-lib-bss_log.o", @@ -8581,6 +10021,7 @@ our %unified_info = ( }, "crypto/chacha" => { "deps" => [ + "crypto/chacha/libcrypto-lib-chacha-armv8-sve.o", "crypto/chacha/libcrypto-lib-chacha-armv8.o" ], "products" => { @@ -8607,6 +10048,7 @@ our %unified_info = ( "crypto/cmp/libcrypto-lib-cmp_client.o", "crypto/cmp/libcrypto-lib-cmp_ctx.o", "crypto/cmp/libcrypto-lib-cmp_err.o", + "crypto/cmp/libcrypto-lib-cmp_genm.o", "crypto/cmp/libcrypto-lib-cmp_hdr.o", "crypto/cmp/libcrypto-lib-cmp_http.o", "crypto/cmp/libcrypto-lib-cmp_msg.o", @@ -8842,6 +10284,9 @@ our %unified_info = ( "crypto/ec/libcrypto-lib-ecp_nistz256-armv8.o", "crypto/ec/libcrypto-lib-ecp_nistz256.o", "crypto/ec/libcrypto-lib-ecp_oct.o", + "crypto/ec/libcrypto-lib-ecp_sm2p256-armv8.o", + "crypto/ec/libcrypto-lib-ecp_sm2p256.o", + "crypto/ec/libcrypto-lib-ecp_sm2p256_table.o", "crypto/ec/libcrypto-lib-ecp_smpl.o", "crypto/ec/libcrypto-lib-ecx_backend.o", "crypto/ec/libcrypto-lib-ecx_key.o", @@ -8869,6 +10314,9 @@ our %unified_info = ( "crypto/ec/libfips-lib-ecp_nistz256-armv8.o", "crypto/ec/libfips-lib-ecp_nistz256.o", "crypto/ec/libfips-lib-ecp_oct.o", + "crypto/ec/libfips-lib-ecp_sm2p256-armv8.o", + "crypto/ec/libfips-lib-ecp_sm2p256.o", + "crypto/ec/libfips-lib-ecp_sm2p256_table.o", "crypto/ec/libfips-lib-ecp_smpl.o", "crypto/ec/libfips-lib-ecx_backend.o", "crypto/ec/libfips-lib-ecx_key.o" @@ -8978,7 +10426,9 @@ our %unified_info = ( "crypto/err/libcrypto-lib-err_all.o", "crypto/err/libcrypto-lib-err_all_legacy.o", "crypto/err/libcrypto-lib-err_blocks.o", - "crypto/err/libcrypto-lib-err_prn.o" + "crypto/err/libcrypto-lib-err_mark.o", + "crypto/err/libcrypto-lib-err_prn.o", + "crypto/err/libcrypto-lib-err_save.o" ], "products" => { "lib" => [ @@ -9079,7 +10529,9 @@ our %unified_info = ( "crypto/evp/libcrypto-lib-pmeth_check.o", "crypto/evp/libcrypto-lib-pmeth_gn.o", "crypto/evp/libcrypto-lib-pmeth_lib.o", + "crypto/evp/libcrypto-lib-s_lib.o", "crypto/evp/libcrypto-lib-signature.o", + "crypto/evp/libcrypto-lib-skeymgmt_meth.o", "crypto/evp/libfips-lib-asymcipher.o", "crypto/evp/libfips-lib-dh_support.o", "crypto/evp/libfips-lib-digest.o", @@ -9095,14 +10547,15 @@ our %unified_info = ( "crypto/evp/libfips-lib-kem.o", "crypto/evp/libfips-lib-keymgmt_lib.o", "crypto/evp/libfips-lib-keymgmt_meth.o", - "crypto/evp/libfips-lib-m_sigver.o", "crypto/evp/libfips-lib-mac_lib.o", "crypto/evp/libfips-lib-mac_meth.o", "crypto/evp/libfips-lib-p_lib.o", "crypto/evp/libfips-lib-pmeth_check.o", "crypto/evp/libfips-lib-pmeth_gn.o", "crypto/evp/libfips-lib-pmeth_lib.o", - "crypto/evp/libfips-lib-signature.o" + "crypto/evp/libfips-lib-s_lib.o", + "crypto/evp/libfips-lib-signature.o", + "crypto/evp/libfips-lib-skeymgmt_meth.o" ], "products" => { "lib" => [ @@ -9135,6 +10588,20 @@ our %unified_info = ( ] } }, + "crypto/hashtable" => { + "deps" => [ + "crypto/hashtable/libcrypto-lib-hashfunc.o", + "crypto/hashtable/libcrypto-lib-hashtable.o", + "crypto/hashtable/libfips-lib-hashfunc.o", + "crypto/hashtable/libfips-lib-hashtable.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, "crypto/hmac" => { "deps" => [ "crypto/hmac/libcrypto-lib-hmac.o", @@ -9147,6 +10614,17 @@ our %unified_info = ( ] } }, + "crypto/hpke" => { + "deps" => [ + "crypto/hpke/libcrypto-lib-hpke.o", + "crypto/hpke/libcrypto-lib-hpke_util.o" + ], + "products" => { + "lib" => [ + "libcrypto" + ] + } + }, "crypto/http" => { "deps" => [ "crypto/http/libcrypto-lib-http_client.o", @@ -9209,6 +10687,7 @@ our %unified_info = ( }, "crypto/md5" => { "deps" => [ + "crypto/md5/libcrypto-lib-md5-aarch64.o", "crypto/md5/libcrypto-lib-md5_dgst.o", "crypto/md5/libcrypto-lib-md5_one.o", "crypto/md5/libcrypto-lib-md5_sha1.o" @@ -9230,8 +10709,47 @@ our %unified_info = ( ] } }, + "crypto/ml_dsa" => { + "deps" => [ + "crypto/ml_dsa/libcrypto-lib-ml_dsa_encoders.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key_compress.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_matrix.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_ntt.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_params.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sample.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sign.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_encoders.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_key.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_key_compress.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_matrix.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_ntt.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_params.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_sample.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_sign.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, + "crypto/ml_kem" => { + "deps" => [ + "crypto/ml_kem/libcrypto-lib-ml_kem.o", + "crypto/ml_kem/libfips-lib-ml_kem.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, "crypto/modes" => { "deps" => [ + "crypto/modes/libcrypto-lib-aes-gcm-armv8-unroll8_64.o", "crypto/modes/libcrypto-lib-aes-gcm-armv8_64.o", "crypto/modes/libcrypto-lib-cbc128.o", "crypto/modes/libcrypto-lib-ccm128.o", @@ -9245,6 +10763,8 @@ our %unified_info = ( "crypto/modes/libcrypto-lib-siv128.o", "crypto/modes/libcrypto-lib-wrap128.o", "crypto/modes/libcrypto-lib-xts128.o", + "crypto/modes/libcrypto-lib-xts128gb.o", + "crypto/modes/libfips-lib-aes-gcm-armv8-unroll8_64.o", "crypto/modes/libfips-lib-aes-gcm-armv8_64.o", "crypto/modes/libfips-lib-cbc128.o", "crypto/modes/libfips-lib-ccm128.o", @@ -9254,7 +10774,8 @@ our %unified_info = ( "crypto/modes/libfips-lib-ghashv8-armx.o", "crypto/modes/libfips-lib-ofb128.o", "crypto/modes/libfips-lib-wrap128.o", - "crypto/modes/libfips-lib-xts128.o" + "crypto/modes/libfips-lib-xts128.o", + "crypto/modes/libfips-lib-xts128gb.o" ], "products" => { "lib" => [ @@ -9398,6 +10919,7 @@ our %unified_info = ( "crypto/rand/libcrypto-lib-rand_lib.o", "crypto/rand/libcrypto-lib-rand_meth.o", "crypto/rand/libcrypto-lib-rand_pool.o", + "crypto/rand/libcrypto-lib-rand_uniform.o", "crypto/rand/libcrypto-lib-randfile.o", "crypto/rand/libfips-lib-rand_lib.o" ], @@ -9548,6 +11070,36 @@ our %unified_info = ( ] } }, + "crypto/slh_dsa" => { + "deps" => [ + "crypto/slh_dsa/libcrypto-lib-slh_adrs.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa_hash_ctx.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa_key.o", + "crypto/slh_dsa/libcrypto-lib-slh_fors.o", + "crypto/slh_dsa/libcrypto-lib-slh_hash.o", + "crypto/slh_dsa/libcrypto-lib-slh_hypertree.o", + "crypto/slh_dsa/libcrypto-lib-slh_params.o", + "crypto/slh_dsa/libcrypto-lib-slh_wots.o", + "crypto/slh_dsa/libcrypto-lib-slh_xmss.o", + "crypto/slh_dsa/libfips-lib-slh_adrs.o", + "crypto/slh_dsa/libfips-lib-slh_dsa.o", + "crypto/slh_dsa/libfips-lib-slh_dsa_hash_ctx.o", + "crypto/slh_dsa/libfips-lib-slh_dsa_key.o", + "crypto/slh_dsa/libfips-lib-slh_fors.o", + "crypto/slh_dsa/libfips-lib-slh_hash.o", + "crypto/slh_dsa/libfips-lib-slh_hypertree.o", + "crypto/slh_dsa/libfips-lib-slh_params.o", + "crypto/slh_dsa/libfips-lib-slh_wots.o", + "crypto/slh_dsa/libfips-lib-slh_xmss.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, "crypto/sm2" => { "deps" => [ "crypto/sm2/libcrypto-lib-sm2_crypt.o", @@ -9564,6 +11116,7 @@ our %unified_info = ( "crypto/sm3" => { "deps" => [ "crypto/sm3/libcrypto-lib-legacy_sm3.o", + "crypto/sm3/libcrypto-lib-sm3-armv8.o", "crypto/sm3/libcrypto-lib-sm3.o" ], "products" => { @@ -9574,7 +11127,10 @@ our %unified_info = ( }, "crypto/sm4" => { "deps" => [ - "crypto/sm4/libcrypto-lib-sm4.o" + "crypto/sm4/libcrypto-lib-sm4-armv8.o", + "crypto/sm4/libcrypto-lib-sm4.o", + "crypto/sm4/libcrypto-lib-vpsm4-armv8.o", + "crypto/sm4/libcrypto-lib-vpsm4_ex-armv8.o" ], "products" => { "lib" => [ @@ -9621,6 +11177,38 @@ our %unified_info = ( ] } }, + "crypto/thread" => { + "deps" => [ + "crypto/thread/libcrypto-lib-api.o", + "crypto/thread/libcrypto-lib-arch.o", + "crypto/thread/libcrypto-lib-internal.o", + "crypto/thread/libfips-lib-api.o", + "crypto/thread/libfips-lib-arch.o", + "crypto/thread/libfips-lib-internal.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, + "crypto/thread/arch" => { + "deps" => [ + "crypto/thread/arch/libcrypto-lib-thread_none.o", + "crypto/thread/arch/libcrypto-lib-thread_posix.o", + "crypto/thread/arch/libcrypto-lib-thread_win.o", + "crypto/thread/arch/libfips-lib-thread_none.o", + "crypto/thread/arch/libfips-lib-thread_posix.o", + "crypto/thread/arch/libfips-lib-thread_win.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, "crypto/ts" => { "deps" => [ "crypto/ts/libcrypto-lib-ts_asn1.o", @@ -9687,14 +11275,22 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-pcy_map.o", "crypto/x509/libcrypto-lib-pcy_node.o", "crypto/x509/libcrypto-lib-pcy_tree.o", + "crypto/x509/libcrypto-lib-t_acert.o", "crypto/x509/libcrypto-lib-t_crl.o", "crypto/x509/libcrypto-lib-t_req.o", "crypto/x509/libcrypto-lib-t_x509.o", + "crypto/x509/libcrypto-lib-v3_aaa.o", + "crypto/x509/libcrypto-lib-v3_ac_tgt.o", "crypto/x509/libcrypto-lib-v3_addr.o", "crypto/x509/libcrypto-lib-v3_admis.o", "crypto/x509/libcrypto-lib-v3_akeya.o", "crypto/x509/libcrypto-lib-v3_akid.o", "crypto/x509/libcrypto-lib-v3_asid.o", + "crypto/x509/libcrypto-lib-v3_attrdesc.o", + "crypto/x509/libcrypto-lib-v3_attrmap.o", + "crypto/x509/libcrypto-lib-v3_audit_id.o", + "crypto/x509/libcrypto-lib-v3_authattid.o", + "crypto/x509/libcrypto-lib-v3_battcons.o", "crypto/x509/libcrypto-lib-v3_bcons.o", "crypto/x509/libcrypto-lib-v3_bitst.o", "crypto/x509/libcrypto-lib-v3_conf.o", @@ -9703,12 +11299,17 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_enum.o", "crypto/x509/libcrypto-lib-v3_extku.o", "crypto/x509/libcrypto-lib-v3_genn.o", + "crypto/x509/libcrypto-lib-v3_group_ac.o", "crypto/x509/libcrypto-lib-v3_ia5.o", + "crypto/x509/libcrypto-lib-v3_ind_iss.o", "crypto/x509/libcrypto-lib-v3_info.o", "crypto/x509/libcrypto-lib-v3_int.o", + "crypto/x509/libcrypto-lib-v3_iobo.o", "crypto/x509/libcrypto-lib-v3_ist.o", "crypto/x509/libcrypto-lib-v3_lib.o", "crypto/x509/libcrypto-lib-v3_ncons.o", + "crypto/x509/libcrypto-lib-v3_no_ass.o", + "crypto/x509/libcrypto-lib-v3_no_rev_avail.o", "crypto/x509/libcrypto-lib-v3_pci.o", "crypto/x509/libcrypto-lib-v3_pcia.o", "crypto/x509/libcrypto-lib-v3_pcons.o", @@ -9716,13 +11317,20 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_pmaps.o", "crypto/x509/libcrypto-lib-v3_prn.o", "crypto/x509/libcrypto-lib-v3_purp.o", + "crypto/x509/libcrypto-lib-v3_rolespec.o", "crypto/x509/libcrypto-lib-v3_san.o", + "crypto/x509/libcrypto-lib-v3_sda.o", + "crypto/x509/libcrypto-lib-v3_single_use.o", "crypto/x509/libcrypto-lib-v3_skid.o", + "crypto/x509/libcrypto-lib-v3_soa_id.o", "crypto/x509/libcrypto-lib-v3_sxnet.o", + "crypto/x509/libcrypto-lib-v3_timespec.o", "crypto/x509/libcrypto-lib-v3_tlsf.o", + "crypto/x509/libcrypto-lib-v3_usernotice.o", "crypto/x509/libcrypto-lib-v3_utf8.o", "crypto/x509/libcrypto-lib-v3_utl.o", "crypto/x509/libcrypto-lib-v3err.o", + "crypto/x509/libcrypto-lib-x509_acert.o", "crypto/x509/libcrypto-lib-x509_att.o", "crypto/x509/libcrypto-lib-x509_cmp.o", "crypto/x509/libcrypto-lib-x509_d2.o", @@ -9740,6 +11348,7 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x509_v3.o", "crypto/x509/libcrypto-lib-x509_vfy.o", "crypto/x509/libcrypto-lib-x509_vpm.o", + "crypto/x509/libcrypto-lib-x509aset.o", "crypto/x509/libcrypto-lib-x509cset.o", "crypto/x509/libcrypto-lib-x509name.o", "crypto/x509/libcrypto-lib-x509rset.o", @@ -9749,6 +11358,7 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x_attrib.o", "crypto/x509/libcrypto-lib-x_crl.o", "crypto/x509/libcrypto-lib-x_exten.o", + "crypto/x509/libcrypto-lib-x_ietfatt.o", "crypto/x509/libcrypto-lib-x_name.o", "crypto/x509/libcrypto-lib-x_pubkey.o", "crypto/x509/libcrypto-lib-x_req.o", @@ -9775,6 +11385,7 @@ our %unified_info = ( "fuzz" => { "products" => { "bin" => [ + "fuzz/acert-test", "fuzz/asn1-test", "fuzz/asn1parse-test", "fuzz/bignum-test", @@ -9785,13 +11396,31 @@ our %unified_info = ( "fuzz/conf-test", "fuzz/crl-test", "fuzz/ct-test", + "fuzz/decoder-test", + "fuzz/dtlsclient-test", + "fuzz/dtlsserver-test", + "fuzz/hashtable-test", + "fuzz/ml-dsa-test", + "fuzz/ml-kem-test", + "fuzz/pem-test", + "fuzz/provider-test", + "fuzz/punycode-test", + "fuzz/quic-client-test", + "fuzz/quic-lcidm-test", + "fuzz/quic-rcidm-test", + "fuzz/quic-server-test", + "fuzz/quic-srtm-test", "fuzz/server-test", + "fuzz/slh-dsa-test", + "fuzz/smime-test", + "fuzz/v3name-test", "fuzz/x509-test" ] } }, "providers" => { "deps" => [ + "providers/endecode_test-bin-legacyprov.o", "providers/evp_extra_test-bin-legacyprov.o", "providers/libcrypto-lib-baseprov.o", "providers/libcrypto-lib-defltprov.o", @@ -9801,6 +11430,7 @@ our %unified_info = ( ], "products" => { "bin" => [ + "test/endecode_test", "test/evp_extra_test" ], "dso" => [ @@ -9851,8 +11481,12 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ec_sig.o", "providers/common/der/libcommon-lib-der_ecx_gen.o", "providers/common/der/libcommon-lib-der_ecx_key.o", + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o", + "providers/common/der/libcommon-lib-der_ml_dsa_key.o", "providers/common/der/libcommon-lib-der_rsa_gen.o", "providers/common/der/libcommon-lib-der_rsa_key.o", + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o", + "providers/common/der/libcommon-lib-der_slh_dsa_key.o", "providers/common/der/libcommon-lib-der_wrap_gen.o", "providers/common/der/libdefault-lib-der_rsa_sig.o", "providers/common/der/libdefault-lib-der_sm2_gen.o", @@ -9871,6 +11505,7 @@ our %unified_info = ( "providers/fips" => { "deps" => [ "providers/fips/fips-dso-fips_entry.o", + "providers/fips/libfips-lib-fipsindicator.o", "providers/fips/libfips-lib-fipsprov.o", "providers/fips/libfips-lib-self_test.o", "providers/fips/libfips-lib-self_test_kats.o" @@ -9914,6 +11549,9 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_aes_ccm_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_polyval.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_ocb.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_ocb_hw.o", @@ -9938,7 +11576,13 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_cts.o", "providers/implementations/ciphers/libdefault-lib-cipher_null.o", "providers/implementations/ciphers/libdefault-lib-cipher_sm4.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_sm4_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes_common.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes_default.o", @@ -10035,7 +11679,10 @@ our %unified_info = ( "providers/implementations/encode_decode/libdefault-lib-encode_key2blob.o", "providers/implementations/encode_decode/libdefault-lib-encode_key2ms.o", "providers/implementations/encode_decode/libdefault-lib-encode_key2text.o", - "providers/implementations/encode_decode/libdefault-lib-endecoder_common.o" + "providers/implementations/encode_decode/libdefault-lib-endecoder_common.o", + "providers/implementations/encode_decode/libdefault-lib-ml_common_codecs.o", + "providers/implementations/encode_decode/libdefault-lib-ml_dsa_codecs.o", + "providers/implementations/encode_decode/libdefault-lib-ml_kem_codecs.o" ], "products" => { "lib" => [ @@ -10063,7 +11710,9 @@ our %unified_info = ( }, "providers/implementations/kdfs" => { "deps" => [ + "providers/implementations/kdfs/libdefault-lib-argon2.o", "providers/implementations/kdfs/libdefault-lib-hkdf.o", + "providers/implementations/kdfs/libdefault-lib-hmacdrbg_kdf.o", "providers/implementations/kdfs/libdefault-lib-kbkdf.o", "providers/implementations/kdfs/libdefault-lib-krb5kdf.o", "providers/implementations/kdfs/libdefault-lib-pbkdf2.o", @@ -10082,7 +11731,8 @@ our %unified_info = ( "providers/implementations/kdfs/libfips-lib-sskdf.o", "providers/implementations/kdfs/libfips-lib-tls1_prf.o", "providers/implementations/kdfs/libfips-lib-x942kdf.o", - "providers/implementations/kdfs/liblegacy-lib-pbkdf1.o" + "providers/implementations/kdfs/liblegacy-lib-pbkdf1.o", + "providers/implementations/kdfs/liblegacy-lib-pvkkdf.o" ], "products" => { "lib" => [ @@ -10094,13 +11744,22 @@ our %unified_info = ( }, "providers/implementations/kem" => { "deps" => [ + "providers/implementations/kem/libdefault-lib-ec_kem.o", + "providers/implementations/kem/libdefault-lib-ecx_kem.o", + "providers/implementations/kem/libdefault-lib-kem_util.o", + "providers/implementations/kem/libdefault-lib-ml_kem_kem.o", + "providers/implementations/kem/libdefault-lib-mlx_kem.o", "providers/implementations/kem/libdefault-lib-rsa_kem.o", - "providers/implementations/kem/libfips-lib-rsa_kem.o" + "providers/implementations/kem/libfips-lib-ml_kem_kem.o", + "providers/implementations/kem/libfips-lib-mlx_kem.o", + "providers/implementations/kem/libfips-lib-rsa_kem.o", + "providers/implementations/kem/libtemplate-lib-template_kem.o" ], "products" => { "lib" => [ "providers/libdefault.a", - "providers/libfips.a" + "providers/libfips.a", + "providers/libtemplate.a" ] } }, @@ -10112,19 +11771,29 @@ our %unified_info = ( "providers/implementations/keymgmt/libdefault-lib-ecx_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-kdf_legacy_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-mac_legacy_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-ml_dsa_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-ml_kem_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-mlx_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-rsa_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-slh_dsa_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-dh_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-dsa_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-ec_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-ecx_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-kdf_legacy_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-mac_legacy_kmgmt.o", - "providers/implementations/keymgmt/libfips-lib-rsa_kmgmt.o" + "providers/implementations/keymgmt/libfips-lib-ml_dsa_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-ml_kem_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-mlx_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-rsa_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-slh_dsa_kmgmt.o", + "providers/implementations/keymgmt/libtemplate-lib-template_kmgmt.o" ], "products" => { "lib" => [ "providers/libdefault.a", - "providers/libfips.a" + "providers/libfips.a", + "providers/libtemplate.a" ] } }, @@ -10152,18 +11821,18 @@ our %unified_info = ( }, "providers/implementations/rands" => { "deps" => [ - "providers/implementations/rands/libdefault-lib-crngt.o", "providers/implementations/rands/libdefault-lib-drbg.o", "providers/implementations/rands/libdefault-lib-drbg_ctr.o", "providers/implementations/rands/libdefault-lib-drbg_hash.o", "providers/implementations/rands/libdefault-lib-drbg_hmac.o", "providers/implementations/rands/libdefault-lib-seed_src.o", + "providers/implementations/rands/libdefault-lib-seed_src_jitter.o", "providers/implementations/rands/libdefault-lib-test_rng.o", - "providers/implementations/rands/libfips-lib-crngt.o", "providers/implementations/rands/libfips-lib-drbg.o", "providers/implementations/rands/libfips-lib-drbg_ctr.o", "providers/implementations/rands/libfips-lib-drbg_hash.o", "providers/implementations/rands/libfips-lib-drbg_hmac.o", + "providers/implementations/rands/libfips-lib-fips_crng_test.o", "providers/implementations/rands/libfips-lib-test_rng.o" ], "products" => { @@ -10192,13 +11861,31 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-ecdsa_sig.o", "providers/implementations/signature/libdefault-lib-eddsa_sig.o", "providers/implementations/signature/libdefault-lib-mac_legacy_sig.o", + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o", "providers/implementations/signature/libdefault-lib-rsa_sig.o", + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o", "providers/implementations/signature/libdefault-lib-sm2_sig.o", "providers/implementations/signature/libfips-lib-dsa_sig.o", "providers/implementations/signature/libfips-lib-ecdsa_sig.o", "providers/implementations/signature/libfips-lib-eddsa_sig.o", "providers/implementations/signature/libfips-lib-mac_legacy_sig.o", - "providers/implementations/signature/libfips-lib-rsa_sig.o" + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o", + "providers/implementations/signature/libfips-lib-rsa_sig.o", + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o" + ], + "products" => { + "lib" => [ + "providers/libdefault.a", + "providers/libfips.a" + ] + } + }, + "providers/implementations/skeymgmt" => { + "deps" => [ + "providers/implementations/skeymgmt/libdefault-lib-aes_skmgmt.o", + "providers/implementations/skeymgmt/libdefault-lib-generic.o", + "providers/implementations/skeymgmt/libfips-lib-aes_skmgmt.o", + "providers/implementations/skeymgmt/libfips-lib-generic.o" ], "products" => { "lib" => [ @@ -10226,14 +11913,15 @@ our %unified_info = ( "ssl/libssl-lib-d1_srtp.o", "ssl/libssl-lib-methods.o", "ssl/libssl-lib-pqueue.o", + "ssl/libssl-lib-priority_queue.o", "ssl/libssl-lib-s3_enc.o", "ssl/libssl-lib-s3_lib.o", "ssl/libssl-lib-s3_msg.o", "ssl/libssl-lib-ssl_asn1.o", "ssl/libssl-lib-ssl_cert.o", + "ssl/libssl-lib-ssl_cert_comp.o", "ssl/libssl-lib-ssl_ciph.o", "ssl/libssl-lib-ssl_conf.o", - "ssl/libssl-lib-ssl_err.o", "ssl/libssl-lib-ssl_err_legacy.o", "ssl/libssl-lib-ssl_init.o", "ssl/libssl-lib-ssl_lib.o", @@ -10249,32 +11937,107 @@ our %unified_info = ( "ssl/libssl-lib-t1_trce.o", "ssl/libssl-lib-tls13_enc.o", "ssl/libssl-lib-tls_depr.o", - "ssl/libssl-lib-tls_srp.o", - "ssl/libdefault-lib-s3_cbc.o", - "ssl/libfips-lib-s3_cbc.o" + "ssl/libssl-lib-tls_srp.o" ], "products" => { "lib" => [ - "libssl", - "providers/libdefault.a", - "providers/libfips.a" + "libssl" + ] + } + }, + "ssl/quic" => { + "deps" => [ + "ssl/quic/libssl-lib-cc_newreno.o", + "ssl/quic/libssl-lib-json_enc.o", + "ssl/quic/libssl-lib-qlog.o", + "ssl/quic/libssl-lib-qlog_event_helpers.o", + "ssl/quic/libssl-lib-quic_ackm.o", + "ssl/quic/libssl-lib-quic_cfq.o", + "ssl/quic/libssl-lib-quic_channel.o", + "ssl/quic/libssl-lib-quic_demux.o", + "ssl/quic/libssl-lib-quic_engine.o", + "ssl/quic/libssl-lib-quic_fc.o", + "ssl/quic/libssl-lib-quic_fifd.o", + "ssl/quic/libssl-lib-quic_impl.o", + "ssl/quic/libssl-lib-quic_lcidm.o", + "ssl/quic/libssl-lib-quic_method.o", + "ssl/quic/libssl-lib-quic_obj.o", + "ssl/quic/libssl-lib-quic_port.o", + "ssl/quic/libssl-lib-quic_rcidm.o", + "ssl/quic/libssl-lib-quic_reactor.o", + "ssl/quic/libssl-lib-quic_reactor_wait_ctx.o", + "ssl/quic/libssl-lib-quic_record_rx.o", + "ssl/quic/libssl-lib-quic_record_shared.o", + "ssl/quic/libssl-lib-quic_record_tx.o", + "ssl/quic/libssl-lib-quic_record_util.o", + "ssl/quic/libssl-lib-quic_rstream.o", + "ssl/quic/libssl-lib-quic_rx_depack.o", + "ssl/quic/libssl-lib-quic_sf_list.o", + "ssl/quic/libssl-lib-quic_srt_gen.o", + "ssl/quic/libssl-lib-quic_srtm.o", + "ssl/quic/libssl-lib-quic_sstream.o", + "ssl/quic/libssl-lib-quic_statm.o", + "ssl/quic/libssl-lib-quic_stream_map.o", + "ssl/quic/libssl-lib-quic_thread_assist.o", + "ssl/quic/libssl-lib-quic_tls.o", + "ssl/quic/libssl-lib-quic_tls_api.o", + "ssl/quic/libssl-lib-quic_trace.o", + "ssl/quic/libssl-lib-quic_tserver.o", + "ssl/quic/libssl-lib-quic_txp.o", + "ssl/quic/libssl-lib-quic_txpim.o", + "ssl/quic/libssl-lib-quic_types.o", + "ssl/quic/libssl-lib-quic_wire.o", + "ssl/quic/libssl-lib-quic_wire_pkt.o", + "ssl/quic/libssl-lib-uint_set.o" + ], + "products" => { + "lib" => [ + "libssl" ] } }, "ssl/record" => { "deps" => [ - "ssl/record/libssl-lib-dtls1_bitmap.o", "ssl/record/libssl-lib-rec_layer_d1.o", - "ssl/record/libssl-lib-rec_layer_s3.o", - "ssl/record/libssl-lib-ssl3_buffer.o", - "ssl/record/libssl-lib-ssl3_record.o", - "ssl/record/libssl-lib-ssl3_record_tls13.o", - "ssl/record/libcommon-lib-tls_pad.o" + "ssl/record/libssl-lib-rec_layer_s3.o" + ], + "products" => { + "lib" => [ + "libssl" + ] + } + }, + "ssl/record/methods" => { + "deps" => [ + "ssl/record/methods/libssl-lib-dtls_meth.o", + "ssl/record/methods/libssl-lib-ssl3_meth.o", + "ssl/record/methods/libssl-lib-tls13_meth.o", + "ssl/record/methods/libssl-lib-tls1_meth.o", + "ssl/record/methods/libssl-lib-tls_common.o", + "ssl/record/methods/libssl-lib-tls_multib.o", + "ssl/record/methods/libssl-lib-tlsany_meth.o", + "ssl/record/methods/libcommon-lib-tls_pad.o", + "ssl/record/methods/libdefault-lib-ssl3_cbc.o", + "ssl/record/methods/libfips-lib-ssl3_cbc.o" ], "products" => { "lib" => [ "libssl", - "providers/libcommon.a" + "providers/libcommon.a", + "providers/libdefault.a", + "providers/libfips.a" + ] + } + }, + "ssl/rio" => { + "deps" => [ + "ssl/rio/libssl-lib-poll_builder.o", + "ssl/rio/libssl-lib-poll_immediate.o", + "ssl/rio/libssl-lib-rio_notifier.o" + ], + "products" => { + "lib" => [ + "libssl" ] } }, @@ -10312,9 +12075,40 @@ our %unified_info = ( "test/helpers/dtlstest-bin-ssltestlib.o", "test/helpers/endecode_test-bin-predefined_dhparams.o", "test/helpers/fatalerrtest-bin-ssltestlib.o", + "test/helpers/json_test-bin-noisydgrambio.o", + "test/helpers/json_test-bin-pktsplitbio.o", + "test/helpers/json_test-bin-quictestlib.o", + "test/helpers/json_test-bin-ssltestlib.o", + "test/helpers/pkcs12_api_test-bin-pkcs12.o", "test/helpers/pkcs12_format_test-bin-pkcs12.o", + "test/helpers/quic_multistream_test-bin-noisydgrambio.o", + "test/helpers/quic_multistream_test-bin-pktsplitbio.o", + "test/helpers/quic_multistream_test-bin-quictestlib.o", + "test/helpers/quic_multistream_test-bin-ssltestlib.o", + "test/helpers/quic_newcid_test-bin-noisydgrambio.o", + "test/helpers/quic_newcid_test-bin-pktsplitbio.o", + "test/helpers/quic_newcid_test-bin-quictestlib.o", + "test/helpers/quic_newcid_test-bin-ssltestlib.o", + "test/helpers/quic_radix_test-bin-noisydgrambio.o", + "test/helpers/quic_radix_test-bin-pktsplitbio.o", + "test/helpers/quic_radix_test-bin-quictestlib.o", + "test/helpers/quic_radix_test-bin-ssltestlib.o", + "test/helpers/quic_srt_gen_test-bin-noisydgrambio.o", + "test/helpers/quic_srt_gen_test-bin-pktsplitbio.o", + "test/helpers/quic_srt_gen_test-bin-quictestlib.o", + "test/helpers/quic_srt_gen_test-bin-ssltestlib.o", + "test/helpers/quicapitest-bin-noisydgrambio.o", + "test/helpers/quicapitest-bin-pktsplitbio.o", + "test/helpers/quicapitest-bin-quictestlib.o", + "test/helpers/quicapitest-bin-ssltestlib.o", + "test/helpers/quicfaultstest-bin-noisydgrambio.o", + "test/helpers/quicfaultstest-bin-pktsplitbio.o", + "test/helpers/quicfaultstest-bin-quictestlib.o", + "test/helpers/quicfaultstest-bin-ssltestlib.o", "test/helpers/recordlentest-bin-ssltestlib.o", + "test/helpers/rpktest-bin-ssltestlib.o", "test/helpers/servername_test-bin-ssltestlib.o", + "test/helpers/ssl_handshake_rtt_test-bin-ssltestlib.o", "test/helpers/ssl_old_test-bin-predefined_dhparams.o", "test/helpers/ssl_test-bin-handshake.o", "test/helpers/ssl_test-bin-handshake_srp.o", @@ -10323,7 +12117,8 @@ our %unified_info = ( "test/helpers/sslapitest-bin-ssltestlib.o", "test/helpers/sslbuffertest-bin-ssltestlib.o", "test/helpers/sslcorrupttest-bin-ssltestlib.o", - "test/helpers/tls13ccstest-bin-ssltestlib.o" + "test/helpers/tls13ccstest-bin-ssltestlib.o", + "test/helpers/tls13groupselection_test-bin-ssltestlib.o" ], "products" => { "bin" => [ @@ -10341,16 +12136,37 @@ our %unified_info = ( "test/dtlstest", "test/endecode_test", "test/fatalerrtest", + "test/json_test", + "test/pkcs12_api_test", "test/pkcs12_format_test", + "test/quic_multistream_test", + "test/quic_newcid_test", + "test/quic_radix_test", + "test/quic_srt_gen_test", + "test/quicapitest", + "test/quicfaultstest", "test/recordlentest", + "test/rpktest", "test/servername_test", + "test/ssl_handshake_rtt_test", "test/ssl_old_test", "test/ssl_test", "test/ssl_test_ctx_test", "test/sslapitest", "test/sslbuffertest", "test/sslcorrupttest", - "test/tls13ccstest" + "test/tls13ccstest", + "test/tls13groupselection_test" + ] + } + }, + "test/radix" => { + "deps" => [ + "test/radix/quic_radix_test-bin-quic_radix.o" + ], + "products" => { + "bin" => [ + "test/quic_radix_test" ] } }, @@ -10362,6 +12178,7 @@ our %unified_info = ( "test/testutil/libtestutil-lib-driver.o", "test/testutil/libtestutil-lib-fake_random.o", "test/testutil/libtestutil-lib-format_output.o", + "test/testutil/libtestutil-lib-helper.o", "test/testutil/libtestutil-lib-load.o", "test/testutil/libtestutil-lib-main.o", "test/testutil/libtestutil-lib-options.o", @@ -10397,6 +12214,12 @@ our %unified_info = ( } }, "generate" => { + "OpenSSLConfig.cmake" => [ + "exporters/cmake/OpenSSLConfig.cmake.in" + ], + "OpenSSLConfigVersion.cmake" => [ + "exporters/cmake/OpenSSLConfigVersion.cmake.in" + ], "apps/progs.c" => [ "apps/progs.pl", "\"-C\"", @@ -10407,6 +12230,19 @@ our %unified_info = ( "\"-H\"", "\$(APPS_OPENSSL)" ], + "builddata.pm" => [ + "util/mkinstallvars.pl", + "PREFIX=.", + "BINDIR=apps", + "APPLINKDIR=ms", + "LIBDIR=", + "INCLUDEDIR=include", + "\"INCLUDEDIR=\$(SRCDIR)/include\"", + "ENGINESDIR=engines", + "MODULESDIR=providers", + "\"VERSION=\$(VERSION)\"", + "\"LDLIBS=\$(LIB_EX_LIBS)\"" + ], "crypto/aes/aes-586.S" => [ "crypto/aes/asm/aes-586.pl" ], @@ -10425,8 +12261,26 @@ our %unified_info = ( "crypto/aes/aes-parisc.s" => [ "crypto/aes/asm/aes-parisc.pl" ], - "crypto/aes/aes-ppc.s" => [ - "crypto/aes/asm/aes-ppc.pl" + "crypto/aes/aes-ppc.s" => [ + "crypto/aes/asm/aes-ppc.pl" + ], + "crypto/aes/aes-riscv32-zkn.s" => [ + "crypto/aes/asm/aes-riscv32-zkn.pl" + ], + "crypto/aes/aes-riscv64-zkn.s" => [ + "crypto/aes/asm/aes-riscv64-zkn.pl" + ], + "crypto/aes/aes-riscv64-zvbb-zvkg-zvkned.s" => [ + "crypto/aes/asm/aes-riscv64-zvbb-zvkg-zvkned.pl" + ], + "crypto/aes/aes-riscv64-zvkb-zvkned.s" => [ + "crypto/aes/asm/aes-riscv64-zvkb-zvkned.pl" + ], + "crypto/aes/aes-riscv64-zvkned.s" => [ + "crypto/aes/asm/aes-riscv64-zvkned.pl" + ], + "crypto/aes/aes-riscv64.s" => [ + "crypto/aes/asm/aes-riscv64.pl" ], "crypto/aes/aes-s390x.S" => [ "crypto/aes/asm/aes-s390x.pl" @@ -10455,6 +12309,9 @@ our %unified_info = ( "crypto/aes/aesni-x86_64.s" => [ "crypto/aes/asm/aesni-x86_64.pl" ], + "crypto/aes/aesni-xts-avx512.s" => [ + "crypto/aes/asm/aesni-xts-avx512.pl" + ], "crypto/aes/aesp8-ppc.s" => [ "crypto/aes/asm/aesp8-ppc.pl" ], @@ -10467,12 +12324,18 @@ our %unified_info = ( "crypto/aes/bsaes-armv7.S" => [ "crypto/aes/asm/bsaes-armv7.pl" ], + "crypto/aes/bsaes-armv8.S" => [ + "crypto/aes/asm/bsaes-armv8.pl" + ], "crypto/aes/bsaes-x86_64.s" => [ "crypto/aes/asm/bsaes-x86_64.pl" ], "crypto/aes/vpaes-armv8.S" => [ "crypto/aes/asm/vpaes-armv8.pl" ], + "crypto/aes/vpaes-loongarch64.S" => [ + "crypto/aes/asm/vpaes-loongarch64.pl" + ], "crypto/aes/vpaes-ppc.s" => [ "crypto/aes/asm/vpaes-ppc.pl" ], @@ -10533,15 +12396,33 @@ our %unified_info = ( "crypto/bn/ppc-mont.s" => [ "crypto/bn/asm/ppc-mont.pl" ], + "crypto/bn/ppc64-mont-fixed.s" => [ + "crypto/bn/asm/ppc64-mont-fixed.pl" + ], "crypto/bn/ppc64-mont.s" => [ "crypto/bn/asm/ppc64-mont.pl" ], + "crypto/bn/rsaz-2k-avx512.s" => [ + "crypto/bn/asm/rsaz-2k-avx512.pl" + ], + "crypto/bn/rsaz-2k-avxifma.s" => [ + "crypto/bn/asm/rsaz-2k-avxifma.pl" + ], + "crypto/bn/rsaz-3k-avx512.s" => [ + "crypto/bn/asm/rsaz-3k-avx512.pl" + ], + "crypto/bn/rsaz-3k-avxifma.s" => [ + "crypto/bn/asm/rsaz-3k-avxifma.pl" + ], + "crypto/bn/rsaz-4k-avx512.s" => [ + "crypto/bn/asm/rsaz-4k-avx512.pl" + ], + "crypto/bn/rsaz-4k-avxifma.s" => [ + "crypto/bn/asm/rsaz-4k-avxifma.pl" + ], "crypto/bn/rsaz-avx2.s" => [ "crypto/bn/asm/rsaz-avx2.pl" ], - "crypto/bn/rsaz-avx512.s" => [ - "crypto/bn/asm/rsaz-avx512.pl" - ], "crypto/bn/rsaz-x86_64.s" => [ "crypto/bn/asm/rsaz-x86_64.pl" ], @@ -10603,6 +12484,9 @@ our %unified_info = ( "crypto/chacha/chacha-armv4.S" => [ "crypto/chacha/asm/chacha-armv4.pl" ], + "crypto/chacha/chacha-armv8-sve.S" => [ + "crypto/chacha/asm/chacha-armv8-sve.pl" + ], "crypto/chacha/chacha-armv8.S" => [ "crypto/chacha/asm/chacha-armv8.pl" ], @@ -10615,9 +12499,19 @@ our %unified_info = ( "crypto/chacha/chacha-ia64.s" => [ "crypto/chacha/chacha-ia64.S" ], + "crypto/chacha/chacha-loongarch64.S" => [ + "crypto/chacha/asm/chacha-loongarch64.pl" + ], "crypto/chacha/chacha-ppc.s" => [ "crypto/chacha/asm/chacha-ppc.pl" ], + "crypto/chacha/chacha-riscv64-v-zbb-zvkb.s" => [ + "crypto/chacha/asm/chacha-riscv64-v-zbb.pl", + "zvkb" + ], + "crypto/chacha/chacha-riscv64-v-zbb.s" => [ + "crypto/chacha/asm/chacha-riscv64-v-zbb.pl" + ], "crypto/chacha/chacha-s390x.S" => [ "crypto/chacha/asm/chacha-s390x.pl" ], @@ -10627,6 +12521,9 @@ our %unified_info = ( "crypto/chacha/chacha-x86_64.s" => [ "crypto/chacha/asm/chacha-x86_64.pl" ], + "crypto/chacha/chachap10-ppc.s" => [ + "crypto/chacha/asm/chachap10-ppc.pl" + ], "crypto/des/crypt586.S" => [ "crypto/des/asm/crypt586.pl" ], @@ -10639,6 +12536,9 @@ our %unified_info = ( "crypto/des/dest4-sparcv9.S" => [ "crypto/des/asm/dest4-sparcv9.pl" ], + "crypto/ec/ecp_nistp384-ppc64.s" => [ + "crypto/ec/asm/ecp_nistp384-ppc64.pl" + ], "crypto/ec/ecp_nistp521-ppc64.s" => [ "crypto/ec/asm/ecp_nistp521-ppc64.pl" ], @@ -10663,6 +12563,9 @@ our %unified_info = ( "crypto/ec/ecp_nistz256-x86_64.s" => [ "crypto/ec/asm/ecp_nistz256-x86_64.pl" ], + "crypto/ec/ecp_sm2p256-armv8.S" => [ + "crypto/ec/asm/ecp_sm2p256-armv8.pl" + ], "crypto/ec/x25519-ppc64.s" => [ "crypto/ec/asm/x25519-ppc64.pl" ], @@ -10672,18 +12575,39 @@ our %unified_info = ( "crypto/ia64cpuid.s" => [ "crypto/ia64cpuid.S" ], + "crypto/loongarch64cpuid.s" => [ + "crypto/loongarch64cpuid.pl" + ], "crypto/md5/md5-586.S" => [ "crypto/md5/asm/md5-586.pl" ], + "crypto/md5/md5-aarch64.S" => [ + "crypto/md5/asm/md5-aarch64.pl" + ], + "crypto/md5/md5-loongarch64.S" => [ + "crypto/md5/asm/md5-loongarch64.pl" + ], "crypto/md5/md5-sparcv9.S" => [ "crypto/md5/asm/md5-sparcv9.pl" ], "crypto/md5/md5-x86_64.s" => [ "crypto/md5/asm/md5-x86_64.pl" ], + "crypto/modes/aes-gcm-armv8-unroll8_64.S" => [ + "crypto/modes/asm/aes-gcm-armv8-unroll8_64.pl" + ], "crypto/modes/aes-gcm-armv8_64.S" => [ "crypto/modes/asm/aes-gcm-armv8_64.pl" ], + "crypto/modes/aes-gcm-avx512.s" => [ + "crypto/modes/asm/aes-gcm-avx512.pl" + ], + "crypto/modes/aes-gcm-ppc.s" => [ + "crypto/modes/asm/aes-gcm-ppc.pl" + ], + "crypto/modes/aes-gcm-riscv64-zvkb-zvkg-zvkned.s" => [ + "crypto/modes/asm/aes-gcm-riscv64-zvkb-zvkg-zvkned.pl" + ], "crypto/modes/aesni-gcm-x86_64.s" => [ "crypto/modes/asm/aesni-gcm-x86_64.pl" ], @@ -10702,6 +12626,15 @@ our %unified_info = ( "crypto/modes/ghash-parisc.s" => [ "crypto/modes/asm/ghash-parisc.pl" ], + "crypto/modes/ghash-riscv64-zvkb-zvbc.s" => [ + "crypto/modes/asm/ghash-riscv64-zvkb-zvbc.pl" + ], + "crypto/modes/ghash-riscv64-zvkg.s" => [ + "crypto/modes/asm/ghash-riscv64-zvkg.pl" + ], + "crypto/modes/ghash-riscv64.s" => [ + "crypto/modes/asm/ghash-riscv64.pl" + ], "crypto/modes/ghash-s390x.S" => [ "crypto/modes/asm/ghash-s390x.pl" ], @@ -10720,6 +12653,9 @@ our %unified_info = ( "crypto/modes/ghashv8-armx.S" => [ "crypto/modes/asm/ghashv8-armx.pl" ], + "crypto/params_idx.c" => [ + "crypto/params_idx.c.in" + ], "crypto/pariscid.s" => [ "crypto/pariscid.pl" ], @@ -10780,6 +12716,12 @@ our %unified_info = ( "crypto/ripemd/rmd-586.S" => [ "crypto/ripemd/asm/rmd-586.pl" ], + "crypto/riscv32cpuid.s" => [ + "crypto/riscv32cpuid.pl" + ], + "crypto/riscv64cpuid.s" => [ + "crypto/riscv64cpuid.pl" + ], "crypto/s390xcpuid.S" => [ "crypto/s390xcpuid.pl" ], @@ -10888,6 +12830,9 @@ our %unified_info = ( "crypto/sha/sha256-ppc.s" => [ "crypto/sha/asm/sha512-ppc.pl" ], + "crypto/sha/sha256-riscv64-zvkb-zvknha_or_zvknhb.S" => [ + "crypto/sha/asm/sha256-riscv64-zvkb-zvknha_or_zvknhb.pl" + ], "crypto/sha/sha256-s390x.S" => [ "crypto/sha/asm/sha512-s390x.pl" ], @@ -10924,6 +12869,9 @@ our %unified_info = ( "crypto/sha/sha512-ppc.s" => [ "crypto/sha/asm/sha512-ppc.pl" ], + "crypto/sha/sha512-riscv64-zvkb-zvknhb.S" => [ + "crypto/sha/asm/sha512-riscv64-zvkb-zvknhb.pl" + ], "crypto/sha/sha512-s390x.S" => [ "crypto/sha/asm/sha512-s390x.pl" ], @@ -10936,6 +12884,24 @@ our %unified_info = ( "crypto/sha/sha512p8-ppc.s" => [ "crypto/sha/asm/sha512p8-ppc.pl" ], + "crypto/sm3/sm3-armv8.S" => [ + "crypto/sm3/asm/sm3-armv8.pl" + ], + "crypto/sm3/sm3-riscv64-zvksh.S" => [ + "crypto/sm3/asm/sm3-riscv64-zvksh.pl" + ], + "crypto/sm4/sm4-armv8.S" => [ + "crypto/sm4/asm/sm4-armv8.pl" + ], + "crypto/sm4/sm4-riscv64-zvksed.s" => [ + "crypto/sm4/asm/sm4-riscv64-zvksed.pl" + ], + "crypto/sm4/vpsm4-armv8.S" => [ + "crypto/sm4/asm/vpsm4-armv8.pl" + ], + "crypto/sm4/vpsm4_ex-armv8.S" => [ + "crypto/sm4/asm/vpsm4_ex-armv8.pl" + ], "crypto/uplink-ia64.s" => [ "ms/uplink-ia64.pl" ], @@ -11101,6 +13067,9 @@ our %unified_info = ( "doc/html/man1/openssl-sess_id.html" => [ "doc/man1/openssl-sess_id.pod" ], + "doc/html/man1/openssl-skeyutl.html" => [ + "doc/man1/openssl-skeyutl.pod" + ], "doc/html/man1/openssl-smime.html" => [ "doc/man1/openssl-smime.pod" ], @@ -11242,6 +13211,9 @@ our %unified_info = ( "doc/html/man3/BIO_get_ex_new_index.html" => [ "doc/man3/BIO_get_ex_new_index.pod" ], + "doc/html/man3/BIO_get_rpoll_descriptor.html" => [ + "doc/man3/BIO_get_rpoll_descriptor.pod" + ], "doc/html/man3/BIO_meth_new.html" => [ "doc/man3/BIO_meth_new.pod" ], @@ -11278,6 +13250,9 @@ our %unified_info = ( "doc/html/man3/BIO_s_datagram.html" => [ "doc/man3/BIO_s_datagram.pod" ], + "doc/html/man3/BIO_s_dgram_pair.html" => [ + "doc/man3/BIO_s_dgram_pair.pod" + ], "doc/html/man3/BIO_s_fd.html" => [ "doc/man3/BIO_s_fd.pod" ], @@ -11293,6 +13268,9 @@ our %unified_info = ( "doc/html/man3/BIO_s_socket.html" => [ "doc/man3/BIO_s_socket.pod" ], + "doc/html/man3/BIO_sendmmsg.html" => [ + "doc/man3/BIO_sendmmsg.pod" + ], "doc/html/man3/BIO_set_callback.html" => [ "doc/man3/BIO_set_callback.pod" ], @@ -11365,6 +13343,9 @@ our %unified_info = ( "doc/html/man3/BUF_MEM_new.html" => [ "doc/man3/BUF_MEM_new.pod" ], + "doc/html/man3/CMAC_CTX.html" => [ + "doc/man3/CMAC_CTX.pod" + ], "doc/html/man3/CMS_EncryptedData_decrypt.html" => [ "doc/man3/CMS_EncryptedData_decrypt.pod" ], @@ -11431,6 +13412,9 @@ our %unified_info = ( "doc/html/man3/CMS_verify_receipt.html" => [ "doc/man3/CMS_verify_receipt.pod" ], + "doc/html/man3/COMP_CTX_new.html" => [ + "doc/man3/COMP_CTX_new.pod" + ], "doc/html/man3/CONF_modules_free.html" => [ "doc/man3/CONF_modules_free.pod" ], @@ -11530,6 +13514,12 @@ our %unified_info = ( "doc/html/man3/DTLS_set_timer_cb.html" => [ "doc/man3/DTLS_set_timer_cb.pod" ], + "doc/html/man3/DTLSv1_get_timeout.html" => [ + "doc/man3/DTLSv1_get_timeout.pod" + ], + "doc/html/man3/DTLSv1_handle_timeout.html" => [ + "doc/man3/DTLSv1_handle_timeout.pod" + ], "doc/html/man3/DTLSv1_listen.html" => [ "doc/man3/DTLSv1_listen.pod" ], @@ -11668,6 +13658,9 @@ our %unified_info = ( "doc/html/man3/EVP_PKEY_CTX_get0_pkey.html" => [ "doc/man3/EVP_PKEY_CTX_get0_pkey.pod" ], + "doc/html/man3/EVP_PKEY_CTX_get_algor.html" => [ + "doc/man3/EVP_PKEY_CTX_get_algor.pod" + ], "doc/html/man3/EVP_PKEY_CTX_new.html" => [ "doc/man3/EVP_PKEY_CTX_new.pod" ], @@ -11785,6 +13778,12 @@ our %unified_info = ( "doc/html/man3/EVP_SIGNATURE.html" => [ "doc/man3/EVP_SIGNATURE.pod" ], + "doc/html/man3/EVP_SKEY.html" => [ + "doc/man3/EVP_SKEY.pod" + ], + "doc/html/man3/EVP_SKEYMGMT.html" => [ + "doc/man3/EVP_SKEYMGMT.pod" + ], "doc/html/man3/EVP_SealInit.html" => [ "doc/man3/EVP_SealInit.pod" ], @@ -11872,6 +13871,9 @@ our %unified_info = ( "doc/html/man3/EVP_whirlpool.html" => [ "doc/man3/EVP_whirlpool.pod" ], + "doc/html/man3/GENERAL_NAME.html" => [ + "doc/man3/GENERAL_NAME.pod" + ], "doc/html/man3/HMAC.html" => [ "doc/man3/HMAC.pod" ], @@ -11944,9 +13946,15 @@ our %unified_info = ( "doc/html/man3/OPENSSL_load_builtin_modules.html" => [ "doc/man3/OPENSSL_load_builtin_modules.pod" ], + "doc/html/man3/OPENSSL_load_u16_le.html" => [ + "doc/man3/OPENSSL_load_u16_le.pod" + ], "doc/html/man3/OPENSSL_malloc.html" => [ "doc/man3/OPENSSL_malloc.pod" ], + "doc/html/man3/OPENSSL_riscvcap.html" => [ + "doc/man3/OPENSSL_riscvcap.pod" + ], "doc/html/man3/OPENSSL_s390xcap.html" => [ "doc/man3/OPENSSL_s390xcap.pod" ], @@ -11962,12 +13970,18 @@ our %unified_info = ( "doc/html/man3/OSSL_CALLBACK.html" => [ "doc/man3/OSSL_CALLBACK.pod" ], + "doc/html/man3/OSSL_CMP_ATAV_set0.html" => [ + "doc/man3/OSSL_CMP_ATAV_set0.pod" + ], "doc/html/man3/OSSL_CMP_CTX_new.html" => [ "doc/man3/OSSL_CMP_CTX_new.pod" ], "doc/html/man3/OSSL_CMP_HDR_get0_transactionID.html" => [ "doc/man3/OSSL_CMP_HDR_get0_transactionID.pod" ], + "doc/html/man3/OSSL_CMP_ITAV_new_caCerts.html" => [ + "doc/man3/OSSL_CMP_ITAV_new_caCerts.pod" + ], "doc/html/man3/OSSL_CMP_ITAV_set0.html" => [ "doc/man3/OSSL_CMP_ITAV_set0.pod" ], @@ -12037,9 +14051,18 @@ our %unified_info = ( "doc/html/man3/OSSL_ENCODER_to_bio.html" => [ "doc/man3/OSSL_ENCODER_to_bio.pod" ], + "doc/html/man3/OSSL_ERR_STATE_save.html" => [ + "doc/man3/OSSL_ERR_STATE_save.pod" + ], "doc/html/man3/OSSL_ESS_check_signing_certs.html" => [ "doc/man3/OSSL_ESS_check_signing_certs.pod" ], + "doc/html/man3/OSSL_GENERAL_NAMES_print.html" => [ + "doc/man3/OSSL_GENERAL_NAMES_print.pod" + ], + "doc/html/man3/OSSL_HPKE_CTX_new.html" => [ + "doc/man3/OSSL_HPKE_CTX_new.pod" + ], "doc/html/man3/OSSL_HTTP_REQ_CTX.html" => [ "doc/man3/OSSL_HTTP_REQ_CTX.pod" ], @@ -12049,12 +14072,24 @@ our %unified_info = ( "doc/html/man3/OSSL_HTTP_transfer.html" => [ "doc/man3/OSSL_HTTP_transfer.pod" ], + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX.html" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX.pod" + ], + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX_print.html" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX_print.pod" + ], + "doc/html/man3/OSSL_INDICATOR_set_callback.html" => [ + "doc/man3/OSSL_INDICATOR_set_callback.pod" + ], "doc/html/man3/OSSL_ITEM.html" => [ "doc/man3/OSSL_ITEM.pod" ], "doc/html/man3/OSSL_LIB_CTX.html" => [ "doc/man3/OSSL_LIB_CTX.pod" ], + "doc/html/man3/OSSL_LIB_CTX_set_conf_diagnostics.html" => [ + "doc/man3/OSSL_LIB_CTX_set_conf_diagnostics.pod" + ], "doc/html/man3/OSSL_PARAM.html" => [ "doc/man3/OSSL_PARAM.pod" ], @@ -12070,9 +14105,15 @@ our %unified_info = ( "doc/html/man3/OSSL_PARAM_int.html" => [ "doc/man3/OSSL_PARAM_int.pod" ], + "doc/html/man3/OSSL_PARAM_print_to_bio.html" => [ + "doc/man3/OSSL_PARAM_print_to_bio.pod" + ], "doc/html/man3/OSSL_PROVIDER.html" => [ "doc/man3/OSSL_PROVIDER.pod" ], + "doc/html/man3/OSSL_QUIC_client_method.html" => [ + "doc/man3/OSSL_QUIC_client_method.pod" + ], "doc/html/man3/OSSL_SELF_TEST_new.html" => [ "doc/man3/OSSL_SELF_TEST_new.pod" ], @@ -12097,6 +14138,9 @@ our %unified_info = ( "doc/html/man3/OSSL_STORE_open.html" => [ "doc/man3/OSSL_STORE_open.pod" ], + "doc/html/man3/OSSL_sleep.html" => [ + "doc/man3/OSSL_sleep.pod" + ], "doc/html/man3/OSSL_trace_enabled.html" => [ "doc/man3/OSSL_trace_enabled.pod" ], @@ -12112,6 +14156,9 @@ our %unified_info = ( "doc/html/man3/OpenSSL_version.html" => [ "doc/man3/OpenSSL_version.pod" ], + "doc/html/man3/PBMAC1_get1_pbkdf2_param.html" => [ + "doc/man3/PBMAC1_get1_pbkdf2_param.pod" + ], "doc/html/man3/PEM_X509_INFO_read_bio_ex.html" => [ "doc/man3/PEM_X509_INFO_read_bio_ex.pod" ], @@ -12148,6 +14195,9 @@ our %unified_info = ( "doc/html/man3/PKCS12_SAFEBAG_get1_cert.html" => [ "doc/man3/PKCS12_SAFEBAG_get1_cert.pod" ], + "doc/html/man3/PKCS12_SAFEBAG_set0_attrs.html" => [ + "doc/man3/PKCS12_SAFEBAG_set0_attrs.pod" + ], "doc/html/man3/PKCS12_add1_attr_by_NID.html" => [ "doc/man3/PKCS12_add1_attr_by_NID.pod" ], @@ -12421,6 +14471,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set0_CA_list.html" => [ "doc/man3/SSL_CTX_set0_CA_list.pod" ], + "doc/html/man3/SSL_CTX_set1_cert_comp_preference.html" => [ + "doc/man3/SSL_CTX_set1_cert_comp_preference.pod" + ], "doc/html/man3/SSL_CTX_set1_curves.html" => [ "doc/man3/SSL_CTX_set1_curves.pod" ], @@ -12460,6 +14513,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_default_passwd_cb.html" => [ "doc/man3/SSL_CTX_set_default_passwd_cb.pod" ], + "doc/html/man3/SSL_CTX_set_domain_flags.html" => [ + "doc/man3/SSL_CTX_set_domain_flags.pod" + ], "doc/html/man3/SSL_CTX_set_generate_session_id.html" => [ "doc/man3/SSL_CTX_set_generate_session_id.pod" ], @@ -12481,6 +14537,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_msg_callback.html" => [ "doc/man3/SSL_CTX_set_msg_callback.pod" ], + "doc/html/man3/SSL_CTX_set_new_pending_conn_cb.html" => [ + "doc/man3/SSL_CTX_set_new_pending_conn_cb.pod" + ], "doc/html/man3/SSL_CTX_set_num_tickets.html" => [ "doc/man3/SSL_CTX_set_num_tickets.pod" ], @@ -12595,6 +14654,9 @@ our %unified_info = ( "doc/html/man3/SSL_accept.html" => [ "doc/man3/SSL_accept.pod" ], + "doc/html/man3/SSL_accept_stream.html" => [ + "doc/man3/SSL_accept_stream.pod" + ], "doc/html/man3/SSL_alert_type_string.html" => [ "doc/man3/SSL_alert_type_string.pod" ], @@ -12622,9 +14684,21 @@ our %unified_info = ( "doc/html/man3/SSL_free.html" => [ "doc/man3/SSL_free.pod" ], + "doc/html/man3/SSL_get0_connection.html" => [ + "doc/man3/SSL_get0_connection.pod" + ], + "doc/html/man3/SSL_get0_group_name.html" => [ + "doc/man3/SSL_get0_group_name.pod" + ], + "doc/html/man3/SSL_get0_peer_rpk.html" => [ + "doc/man3/SSL_get0_peer_rpk.pod" + ], "doc/html/man3/SSL_get0_peer_scts.html" => [ "doc/man3/SSL_get0_peer_scts.pod" ], + "doc/html/man3/SSL_get1_builtin_sigalgs.html" => [ + "doc/man3/SSL_get1_builtin_sigalgs.pod" + ], "doc/html/man3/SSL_get_SSL_CTX.html" => [ "doc/man3/SSL_get_SSL_CTX.pod" ], @@ -12640,6 +14714,9 @@ our %unified_info = ( "doc/html/man3/SSL_get_client_random.html" => [ "doc/man3/SSL_get_client_random.pod" ], + "doc/html/man3/SSL_get_conn_close_info.html" => [ + "doc/man3/SSL_get_conn_close_info.pod" + ], "doc/html/man3/SSL_get_current_cipher.html" => [ "doc/man3/SSL_get_current_cipher.pod" ], @@ -12649,12 +14726,18 @@ our %unified_info = ( "doc/html/man3/SSL_get_error.html" => [ "doc/man3/SSL_get_error.pod" ], + "doc/html/man3/SSL_get_event_timeout.html" => [ + "doc/man3/SSL_get_event_timeout.pod" + ], "doc/html/man3/SSL_get_extms_support.html" => [ "doc/man3/SSL_get_extms_support.pod" ], "doc/html/man3/SSL_get_fd.html" => [ "doc/man3/SSL_get_fd.pod" ], + "doc/html/man3/SSL_get_handshake_rtt.html" => [ + "doc/man3/SSL_get_handshake_rtt.pod" + ], "doc/html/man3/SSL_get_peer_cert_chain.html" => [ "doc/man3/SSL_get_peer_cert_chain.pod" ], @@ -12673,12 +14756,24 @@ our %unified_info = ( "doc/html/man3/SSL_get_rbio.html" => [ "doc/man3/SSL_get_rbio.pod" ], + "doc/html/man3/SSL_get_rpoll_descriptor.html" => [ + "doc/man3/SSL_get_rpoll_descriptor.pod" + ], "doc/html/man3/SSL_get_session.html" => [ "doc/man3/SSL_get_session.pod" ], "doc/html/man3/SSL_get_shared_sigalgs.html" => [ "doc/man3/SSL_get_shared_sigalgs.pod" ], + "doc/html/man3/SSL_get_stream_id.html" => [ + "doc/man3/SSL_get_stream_id.pod" + ], + "doc/html/man3/SSL_get_stream_read_state.html" => [ + "doc/man3/SSL_get_stream_read_state.pod" + ], + "doc/html/man3/SSL_get_value_uint.html" => [ + "doc/man3/SSL_get_value_uint.pod" + ], "doc/html/man3/SSL_get_verify_result.html" => [ "doc/man3/SSL_get_verify_result.pod" ], @@ -12688,9 +14783,15 @@ our %unified_info = ( "doc/html/man3/SSL_group_to_name.html" => [ "doc/man3/SSL_group_to_name.pod" ], + "doc/html/man3/SSL_handle_events.html" => [ + "doc/man3/SSL_handle_events.pod" + ], "doc/html/man3/SSL_in_init.html" => [ "doc/man3/SSL_in_init.pod" ], + "doc/html/man3/SSL_inject_net_dgram.html" => [ + "doc/man3/SSL_inject_net_dgram.pod" + ], "doc/html/man3/SSL_key_update.html" => [ "doc/man3/SSL_key_update.pod" ], @@ -12703,9 +14804,21 @@ our %unified_info = ( "doc/html/man3/SSL_new.html" => [ "doc/man3/SSL_new.pod" ], + "doc/html/man3/SSL_new_domain.html" => [ + "doc/man3/SSL_new_domain.pod" + ], + "doc/html/man3/SSL_new_listener.html" => [ + "doc/man3/SSL_new_listener.pod" + ], + "doc/html/man3/SSL_new_stream.html" => [ + "doc/man3/SSL_new_stream.pod" + ], "doc/html/man3/SSL_pending.html" => [ "doc/man3/SSL_pending.pod" ], + "doc/html/man3/SSL_poll.html" => [ + "doc/man3/SSL_poll.pod" + ], "doc/html/man3/SSL_read.html" => [ "doc/man3/SSL_read.pod" ], @@ -12721,24 +14834,45 @@ our %unified_info = ( "doc/html/man3/SSL_set1_host.html" => [ "doc/man3/SSL_set1_host.pod" ], + "doc/html/man3/SSL_set1_initial_peer_addr.html" => [ + "doc/man3/SSL_set1_initial_peer_addr.pod" + ], + "doc/html/man3/SSL_set1_server_cert_type.html" => [ + "doc/man3/SSL_set1_server_cert_type.pod" + ], "doc/html/man3/SSL_set_async_callback.html" => [ "doc/man3/SSL_set_async_callback.pod" ], "doc/html/man3/SSL_set_bio.html" => [ "doc/man3/SSL_set_bio.pod" ], + "doc/html/man3/SSL_set_blocking_mode.html" => [ + "doc/man3/SSL_set_blocking_mode.pod" + ], "doc/html/man3/SSL_set_connect_state.html" => [ "doc/man3/SSL_set_connect_state.pod" ], + "doc/html/man3/SSL_set_default_stream_mode.html" => [ + "doc/man3/SSL_set_default_stream_mode.pod" + ], "doc/html/man3/SSL_set_fd.html" => [ "doc/man3/SSL_set_fd.pod" ], + "doc/html/man3/SSL_set_incoming_stream_policy.html" => [ + "doc/man3/SSL_set_incoming_stream_policy.pod" + ], + "doc/html/man3/SSL_set_quic_tls_cbs.html" => [ + "doc/man3/SSL_set_quic_tls_cbs.pod" + ], "doc/html/man3/SSL_set_retry_verify.html" => [ "doc/man3/SSL_set_retry_verify.pod" ], "doc/html/man3/SSL_set_session.html" => [ "doc/man3/SSL_set_session.pod" ], + "doc/html/man3/SSL_set_session_secret_cb.html" => [ + "doc/man3/SSL_set_session_secret_cb.pod" + ], "doc/html/man3/SSL_set_shutdown.html" => [ "doc/man3/SSL_set_shutdown.pod" ], @@ -12751,6 +14885,12 @@ our %unified_info = ( "doc/html/man3/SSL_state_string.html" => [ "doc/man3/SSL_state_string.pod" ], + "doc/html/man3/SSL_stream_conclude.html" => [ + "doc/man3/SSL_stream_conclude.pod" + ], + "doc/html/man3/SSL_stream_reset.html" => [ + "doc/man3/SSL_stream_reset.pod" + ], "doc/html/man3/SSL_want.html" => [ "doc/man3/SSL_want.pod" ], @@ -12760,8 +14900,8 @@ our %unified_info = ( "doc/html/man3/TS_RESP_CTX_new.html" => [ "doc/man3/TS_RESP_CTX_new.pod" ], - "doc/html/man3/TS_VERIFY_CTX_set_certs.html" => [ - "doc/man3/TS_VERIFY_CTX_set_certs.pod" + "doc/html/man3/TS_VERIFY_CTX.html" => [ + "doc/man3/TS_VERIFY_CTX.pod" ], "doc/html/man3/UI_STRING.html" => [ "doc/man3/UI_STRING.pod" @@ -12781,6 +14921,21 @@ our %unified_info = ( "doc/html/man3/X509V3_set_ctx.html" => [ "doc/man3/X509V3_set_ctx.pod" ], + "doc/html/man3/X509_ACERT_add1_attr.html" => [ + "doc/man3/X509_ACERT_add1_attr.pod" + ], + "doc/html/man3/X509_ACERT_add_attr_nconf.html" => [ + "doc/man3/X509_ACERT_add_attr_nconf.pod" + ], + "doc/html/man3/X509_ACERT_get0_holder_baseCertId.html" => [ + "doc/man3/X509_ACERT_get0_holder_baseCertId.pod" + ], + "doc/html/man3/X509_ACERT_get_attr.html" => [ + "doc/man3/X509_ACERT_get_attr.pod" + ], + "doc/html/man3/X509_ACERT_print_ex.html" => [ + "doc/man3/X509_ACERT_print_ex.pod" + ], "doc/html/man3/X509_ALGOR_dup.html" => [ "doc/man3/X509_ALGOR_dup.pod" ], @@ -12829,6 +14984,9 @@ our %unified_info = ( "doc/html/man3/X509_SIG_get0.html" => [ "doc/man3/X509_SIG_get0.pod" ], + "doc/html/man3/X509_STORE_CTX_get_by_subject.html" => [ + "doc/man3/X509_STORE_CTX_get_by_subject.pod" + ], "doc/html/man3/X509_STORE_CTX_get_error.html" => [ "doc/man3/X509_STORE_CTX_get_error.pod" ], @@ -12895,6 +15053,9 @@ our %unified_info = ( "doc/html/man3/X509_get0_uids.html" => [ "doc/man3/X509_get0_uids.pod" ], + "doc/html/man3/X509_get_default_cert_file.html" => [ + "doc/man3/X509_get_default_cert_file.pod" + ], "doc/html/man3/X509_get_extension_flags.html" => [ "doc/man3/X509_get_extension_flags.pod" ], @@ -13018,9 +15179,15 @@ our %unified_info = ( "doc/html/man7/EVP_CIPHER-SM4.html" => [ "doc/man7/EVP_CIPHER-SM4.pod" ], + "doc/html/man7/EVP_KDF-ARGON2.html" => [ + "doc/man7/EVP_KDF-ARGON2.pod" + ], "doc/html/man7/EVP_KDF-HKDF.html" => [ "doc/man7/EVP_KDF-HKDF.pod" ], + "doc/html/man7/EVP_KDF-HMAC-DRBG.html" => [ + "doc/man7/EVP_KDF-HMAC-DRBG.pod" + ], "doc/html/man7/EVP_KDF-KB.html" => [ "doc/man7/EVP_KDF-KB.pod" ], @@ -13036,6 +15203,9 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-PKCS12KDF.html" => [ "doc/man7/EVP_KDF-PKCS12KDF.pod" ], + "doc/html/man7/EVP_KDF-PVKKDF.html" => [ + "doc/man7/EVP_KDF-PVKKDF.pod" + ], "doc/html/man7/EVP_KDF-SCRYPT.html" => [ "doc/man7/EVP_KDF-SCRYPT.pod" ], @@ -13060,9 +15230,18 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-X963.html" => [ "doc/man7/EVP_KDF-X963.pod" ], + "doc/html/man7/EVP_KEM-EC.html" => [ + "doc/man7/EVP_KEM-EC.pod" + ], + "doc/html/man7/EVP_KEM-ML-KEM.html" => [ + "doc/man7/EVP_KEM-ML-KEM.pod" + ], "doc/html/man7/EVP_KEM-RSA.html" => [ "doc/man7/EVP_KEM-RSA.pod" ], + "doc/html/man7/EVP_KEM-X25519.html" => [ + "doc/man7/EVP_KEM-X25519.pod" + ], "doc/html/man7/EVP_KEYEXCH-DH.html" => [ "doc/man7/EVP_KEYEXCH-DH.pod" ], @@ -13096,6 +15275,9 @@ our %unified_info = ( "doc/html/man7/EVP_MD-BLAKE2.html" => [ "doc/man7/EVP_MD-BLAKE2.pod" ], + "doc/html/man7/EVP_MD-KECCAK.html" => [ + "doc/man7/EVP_MD-KECCAK.pod" + ], "doc/html/man7/EVP_MD-MD2.html" => [ "doc/man7/EVP_MD-MD2.pod" ], @@ -13153,15 +15335,27 @@ our %unified_info = ( "doc/html/man7/EVP_PKEY-HMAC.html" => [ "doc/man7/EVP_PKEY-HMAC.pod" ], + "doc/html/man7/EVP_PKEY-ML-DSA.html" => [ + "doc/man7/EVP_PKEY-ML-DSA.pod" + ], + "doc/html/man7/EVP_PKEY-ML-KEM.html" => [ + "doc/man7/EVP_PKEY-ML-KEM.pod" + ], "doc/html/man7/EVP_PKEY-RSA.html" => [ "doc/man7/EVP_PKEY-RSA.pod" ], + "doc/html/man7/EVP_PKEY-SLH-DSA.html" => [ + "doc/man7/EVP_PKEY-SLH-DSA.pod" + ], "doc/html/man7/EVP_PKEY-SM2.html" => [ "doc/man7/EVP_PKEY-SM2.pod" ], "doc/html/man7/EVP_PKEY-X25519.html" => [ "doc/man7/EVP_PKEY-X25519.pod" ], + "doc/html/man7/EVP_RAND-CRNG-TEST.html" => [ + "doc/man7/EVP_RAND-CRNG-TEST.pod" + ], "doc/html/man7/EVP_RAND-CTR-DRBG.html" => [ "doc/man7/EVP_RAND-CTR-DRBG.pod" ], @@ -13171,6 +15365,9 @@ our %unified_info = ( "doc/html/man7/EVP_RAND-HMAC-DRBG.html" => [ "doc/man7/EVP_RAND-HMAC-DRBG.pod" ], + "doc/html/man7/EVP_RAND-JITTER.html" => [ + "doc/man7/EVP_RAND-JITTER.pod" + ], "doc/html/man7/EVP_RAND-SEED-SRC.html" => [ "doc/man7/EVP_RAND-SEED-SRC.pod" ], @@ -13192,9 +15389,15 @@ our %unified_info = ( "doc/html/man7/EVP_SIGNATURE-HMAC.html" => [ "doc/man7/EVP_SIGNATURE-HMAC.pod" ], + "doc/html/man7/EVP_SIGNATURE-ML-DSA.html" => [ + "doc/man7/EVP_SIGNATURE-ML-DSA.pod" + ], "doc/html/man7/EVP_SIGNATURE-RSA.html" => [ "doc/man7/EVP_SIGNATURE-RSA.pod" ], + "doc/html/man7/EVP_SIGNATURE-SLH-DSA.html" => [ + "doc/man7/EVP_SIGNATURE-SLH-DSA.pod" + ], "doc/html/man7/OSSL_PROVIDER-FIPS.html" => [ "doc/man7/OSSL_PROVIDER-FIPS.pod" ], @@ -13210,6 +15413,9 @@ our %unified_info = ( "doc/html/man7/OSSL_PROVIDER-null.html" => [ "doc/man7/OSSL_PROVIDER-null.pod" ], + "doc/html/man7/OSSL_STORE-winstore.html" => [ + "doc/man7/OSSL_STORE-winstore.pod" + ], "doc/html/man7/RAND.html" => [ "doc/man7/RAND.pod" ], @@ -13222,9 +15428,6 @@ our %unified_info = ( "doc/html/man7/bio.html" => [ "doc/man7/bio.pod" ], - "doc/html/man7/crypto.html" => [ - "doc/man7/crypto.pod" - ], "doc/html/man7/ct.html" => [ "doc/man7/ct.pod" ], @@ -13255,9 +15458,6 @@ our %unified_info = ( "doc/html/man7/life_cycle-rand.html" => [ "doc/man7/life_cycle-rand.pod" ], - "doc/html/man7/migration_guide.html" => [ - "doc/man7/migration_guide.pod" - ], "doc/html/man7/openssl-core.h.html" => [ "doc/man7/openssl-core.h.pod" ], @@ -13273,12 +15473,66 @@ our %unified_info = ( "doc/html/man7/openssl-glossary.html" => [ "doc/man7/openssl-glossary.pod" ], + "doc/html/man7/openssl-qlog.html" => [ + "doc/man7/openssl-qlog.pod" + ], + "doc/html/man7/openssl-quic-concurrency.html" => [ + "doc/man7/openssl-quic-concurrency.pod" + ], + "doc/html/man7/openssl-quic.html" => [ + "doc/man7/openssl-quic.pod" + ], "doc/html/man7/openssl-threads.html" => [ "doc/man7/openssl-threads.pod" ], "doc/html/man7/openssl_user_macros.html" => [ "doc/man7/openssl_user_macros.pod" ], + "doc/html/man7/ossl-guide-introduction.html" => [ + "doc/man7/ossl-guide-introduction.pod" + ], + "doc/html/man7/ossl-guide-libcrypto-introduction.html" => [ + "doc/man7/ossl-guide-libcrypto-introduction.pod" + ], + "doc/html/man7/ossl-guide-libraries-introduction.html" => [ + "doc/man7/ossl-guide-libraries-introduction.pod" + ], + "doc/html/man7/ossl-guide-libssl-introduction.html" => [ + "doc/man7/ossl-guide-libssl-introduction.pod" + ], + "doc/html/man7/ossl-guide-migration.html" => [ + "doc/man7/ossl-guide-migration.pod" + ], + "doc/html/man7/ossl-guide-quic-client-block.html" => [ + "doc/man7/ossl-guide-quic-client-block.pod" + ], + "doc/html/man7/ossl-guide-quic-client-non-block.html" => [ + "doc/man7/ossl-guide-quic-client-non-block.pod" + ], + "doc/html/man7/ossl-guide-quic-introduction.html" => [ + "doc/man7/ossl-guide-quic-introduction.pod" + ], + "doc/html/man7/ossl-guide-quic-multi-stream.html" => [ + "doc/man7/ossl-guide-quic-multi-stream.pod" + ], + "doc/html/man7/ossl-guide-quic-server-block.html" => [ + "doc/man7/ossl-guide-quic-server-block.pod" + ], + "doc/html/man7/ossl-guide-quic-server-non-block.html" => [ + "doc/man7/ossl-guide-quic-server-non-block.pod" + ], + "doc/html/man7/ossl-guide-tls-client-block.html" => [ + "doc/man7/ossl-guide-tls-client-block.pod" + ], + "doc/html/man7/ossl-guide-tls-client-non-block.html" => [ + "doc/man7/ossl-guide-tls-client-non-block.pod" + ], + "doc/html/man7/ossl-guide-tls-introduction.html" => [ + "doc/man7/ossl-guide-tls-introduction.pod" + ], + "doc/html/man7/ossl-guide-tls-server-block.html" => [ + "doc/man7/ossl-guide-tls-server-block.pod" + ], "doc/html/man7/ossl_store-file.html" => [ "doc/man7/ossl_store-file.pod" ], @@ -13333,6 +15587,9 @@ our %unified_info = ( "doc/html/man7/provider-signature.html" => [ "doc/man7/provider-signature.pod" ], + "doc/html/man7/provider-skeymgmt.html" => [ + "doc/man7/provider-skeymgmt.pod" + ], "doc/html/man7/provider-storemgmt.html" => [ "doc/man7/provider-storemgmt.pod" ], @@ -13342,9 +15599,6 @@ our %unified_info = ( "doc/html/man7/proxy-certificates.html" => [ "doc/man7/proxy-certificates.pod" ], - "doc/html/man7/ssl.html" => [ - "doc/man7/ssl.pod" - ], "doc/html/man7/x509.html" => [ "doc/man7/x509.pod" ], @@ -13492,6 +15746,9 @@ our %unified_info = ( "doc/man/man1/openssl-sess_id.1" => [ "doc/man1/openssl-sess_id.pod" ], + "doc/man/man1/openssl-skeyutl.1" => [ + "doc/man1/openssl-skeyutl.pod" + ], "doc/man/man1/openssl-smime.1" => [ "doc/man1/openssl-smime.pod" ], @@ -13633,6 +15890,9 @@ our %unified_info = ( "doc/man/man3/BIO_get_ex_new_index.3" => [ "doc/man3/BIO_get_ex_new_index.pod" ], + "doc/man/man3/BIO_get_rpoll_descriptor.3" => [ + "doc/man3/BIO_get_rpoll_descriptor.pod" + ], "doc/man/man3/BIO_meth_new.3" => [ "doc/man3/BIO_meth_new.pod" ], @@ -13669,6 +15929,9 @@ our %unified_info = ( "doc/man/man3/BIO_s_datagram.3" => [ "doc/man3/BIO_s_datagram.pod" ], + "doc/man/man3/BIO_s_dgram_pair.3" => [ + "doc/man3/BIO_s_dgram_pair.pod" + ], "doc/man/man3/BIO_s_fd.3" => [ "doc/man3/BIO_s_fd.pod" ], @@ -13684,6 +15947,9 @@ our %unified_info = ( "doc/man/man3/BIO_s_socket.3" => [ "doc/man3/BIO_s_socket.pod" ], + "doc/man/man3/BIO_sendmmsg.3" => [ + "doc/man3/BIO_sendmmsg.pod" + ], "doc/man/man3/BIO_set_callback.3" => [ "doc/man3/BIO_set_callback.pod" ], @@ -13756,6 +16022,9 @@ our %unified_info = ( "doc/man/man3/BUF_MEM_new.3" => [ "doc/man3/BUF_MEM_new.pod" ], + "doc/man/man3/CMAC_CTX.3" => [ + "doc/man3/CMAC_CTX.pod" + ], "doc/man/man3/CMS_EncryptedData_decrypt.3" => [ "doc/man3/CMS_EncryptedData_decrypt.pod" ], @@ -13822,6 +16091,9 @@ our %unified_info = ( "doc/man/man3/CMS_verify_receipt.3" => [ "doc/man3/CMS_verify_receipt.pod" ], + "doc/man/man3/COMP_CTX_new.3" => [ + "doc/man3/COMP_CTX_new.pod" + ], "doc/man/man3/CONF_modules_free.3" => [ "doc/man3/CONF_modules_free.pod" ], @@ -13921,6 +16193,12 @@ our %unified_info = ( "doc/man/man3/DTLS_set_timer_cb.3" => [ "doc/man3/DTLS_set_timer_cb.pod" ], + "doc/man/man3/DTLSv1_get_timeout.3" => [ + "doc/man3/DTLSv1_get_timeout.pod" + ], + "doc/man/man3/DTLSv1_handle_timeout.3" => [ + "doc/man3/DTLSv1_handle_timeout.pod" + ], "doc/man/man3/DTLSv1_listen.3" => [ "doc/man3/DTLSv1_listen.pod" ], @@ -14059,6 +16337,9 @@ our %unified_info = ( "doc/man/man3/EVP_PKEY_CTX_get0_pkey.3" => [ "doc/man3/EVP_PKEY_CTX_get0_pkey.pod" ], + "doc/man/man3/EVP_PKEY_CTX_get_algor.3" => [ + "doc/man3/EVP_PKEY_CTX_get_algor.pod" + ], "doc/man/man3/EVP_PKEY_CTX_new.3" => [ "doc/man3/EVP_PKEY_CTX_new.pod" ], @@ -14176,6 +16457,12 @@ our %unified_info = ( "doc/man/man3/EVP_SIGNATURE.3" => [ "doc/man3/EVP_SIGNATURE.pod" ], + "doc/man/man3/EVP_SKEY.3" => [ + "doc/man3/EVP_SKEY.pod" + ], + "doc/man/man3/EVP_SKEYMGMT.3" => [ + "doc/man3/EVP_SKEYMGMT.pod" + ], "doc/man/man3/EVP_SealInit.3" => [ "doc/man3/EVP_SealInit.pod" ], @@ -14263,6 +16550,9 @@ our %unified_info = ( "doc/man/man3/EVP_whirlpool.3" => [ "doc/man3/EVP_whirlpool.pod" ], + "doc/man/man3/GENERAL_NAME.3" => [ + "doc/man3/GENERAL_NAME.pod" + ], "doc/man/man3/HMAC.3" => [ "doc/man3/HMAC.pod" ], @@ -14335,9 +16625,15 @@ our %unified_info = ( "doc/man/man3/OPENSSL_load_builtin_modules.3" => [ "doc/man3/OPENSSL_load_builtin_modules.pod" ], + "doc/man/man3/OPENSSL_load_u16_le.3" => [ + "doc/man3/OPENSSL_load_u16_le.pod" + ], "doc/man/man3/OPENSSL_malloc.3" => [ "doc/man3/OPENSSL_malloc.pod" ], + "doc/man/man3/OPENSSL_riscvcap.3" => [ + "doc/man3/OPENSSL_riscvcap.pod" + ], "doc/man/man3/OPENSSL_s390xcap.3" => [ "doc/man3/OPENSSL_s390xcap.pod" ], @@ -14353,12 +16649,18 @@ our %unified_info = ( "doc/man/man3/OSSL_CALLBACK.3" => [ "doc/man3/OSSL_CALLBACK.pod" ], + "doc/man/man3/OSSL_CMP_ATAV_set0.3" => [ + "doc/man3/OSSL_CMP_ATAV_set0.pod" + ], "doc/man/man3/OSSL_CMP_CTX_new.3" => [ "doc/man3/OSSL_CMP_CTX_new.pod" ], "doc/man/man3/OSSL_CMP_HDR_get0_transactionID.3" => [ "doc/man3/OSSL_CMP_HDR_get0_transactionID.pod" ], + "doc/man/man3/OSSL_CMP_ITAV_new_caCerts.3" => [ + "doc/man3/OSSL_CMP_ITAV_new_caCerts.pod" + ], "doc/man/man3/OSSL_CMP_ITAV_set0.3" => [ "doc/man3/OSSL_CMP_ITAV_set0.pod" ], @@ -14428,9 +16730,18 @@ our %unified_info = ( "doc/man/man3/OSSL_ENCODER_to_bio.3" => [ "doc/man3/OSSL_ENCODER_to_bio.pod" ], + "doc/man/man3/OSSL_ERR_STATE_save.3" => [ + "doc/man3/OSSL_ERR_STATE_save.pod" + ], "doc/man/man3/OSSL_ESS_check_signing_certs.3" => [ "doc/man3/OSSL_ESS_check_signing_certs.pod" ], + "doc/man/man3/OSSL_GENERAL_NAMES_print.3" => [ + "doc/man3/OSSL_GENERAL_NAMES_print.pod" + ], + "doc/man/man3/OSSL_HPKE_CTX_new.3" => [ + "doc/man3/OSSL_HPKE_CTX_new.pod" + ], "doc/man/man3/OSSL_HTTP_REQ_CTX.3" => [ "doc/man3/OSSL_HTTP_REQ_CTX.pod" ], @@ -14440,12 +16751,24 @@ our %unified_info = ( "doc/man/man3/OSSL_HTTP_transfer.3" => [ "doc/man3/OSSL_HTTP_transfer.pod" ], + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX.3" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX.pod" + ], + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX_print.3" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX_print.pod" + ], + "doc/man/man3/OSSL_INDICATOR_set_callback.3" => [ + "doc/man3/OSSL_INDICATOR_set_callback.pod" + ], "doc/man/man3/OSSL_ITEM.3" => [ "doc/man3/OSSL_ITEM.pod" ], "doc/man/man3/OSSL_LIB_CTX.3" => [ "doc/man3/OSSL_LIB_CTX.pod" ], + "doc/man/man3/OSSL_LIB_CTX_set_conf_diagnostics.3" => [ + "doc/man3/OSSL_LIB_CTX_set_conf_diagnostics.pod" + ], "doc/man/man3/OSSL_PARAM.3" => [ "doc/man3/OSSL_PARAM.pod" ], @@ -14461,9 +16784,15 @@ our %unified_info = ( "doc/man/man3/OSSL_PARAM_int.3" => [ "doc/man3/OSSL_PARAM_int.pod" ], + "doc/man/man3/OSSL_PARAM_print_to_bio.3" => [ + "doc/man3/OSSL_PARAM_print_to_bio.pod" + ], "doc/man/man3/OSSL_PROVIDER.3" => [ "doc/man3/OSSL_PROVIDER.pod" ], + "doc/man/man3/OSSL_QUIC_client_method.3" => [ + "doc/man3/OSSL_QUIC_client_method.pod" + ], "doc/man/man3/OSSL_SELF_TEST_new.3" => [ "doc/man3/OSSL_SELF_TEST_new.pod" ], @@ -14488,6 +16817,9 @@ our %unified_info = ( "doc/man/man3/OSSL_STORE_open.3" => [ "doc/man3/OSSL_STORE_open.pod" ], + "doc/man/man3/OSSL_sleep.3" => [ + "doc/man3/OSSL_sleep.pod" + ], "doc/man/man3/OSSL_trace_enabled.3" => [ "doc/man3/OSSL_trace_enabled.pod" ], @@ -14503,6 +16835,9 @@ our %unified_info = ( "doc/man/man3/OpenSSL_version.3" => [ "doc/man3/OpenSSL_version.pod" ], + "doc/man/man3/PBMAC1_get1_pbkdf2_param.3" => [ + "doc/man3/PBMAC1_get1_pbkdf2_param.pod" + ], "doc/man/man3/PEM_X509_INFO_read_bio_ex.3" => [ "doc/man3/PEM_X509_INFO_read_bio_ex.pod" ], @@ -14539,6 +16874,9 @@ our %unified_info = ( "doc/man/man3/PKCS12_SAFEBAG_get1_cert.3" => [ "doc/man3/PKCS12_SAFEBAG_get1_cert.pod" ], + "doc/man/man3/PKCS12_SAFEBAG_set0_attrs.3" => [ + "doc/man3/PKCS12_SAFEBAG_set0_attrs.pod" + ], "doc/man/man3/PKCS12_add1_attr_by_NID.3" => [ "doc/man3/PKCS12_add1_attr_by_NID.pod" ], @@ -14812,6 +17150,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set0_CA_list.3" => [ "doc/man3/SSL_CTX_set0_CA_list.pod" ], + "doc/man/man3/SSL_CTX_set1_cert_comp_preference.3" => [ + "doc/man3/SSL_CTX_set1_cert_comp_preference.pod" + ], "doc/man/man3/SSL_CTX_set1_curves.3" => [ "doc/man3/SSL_CTX_set1_curves.pod" ], @@ -14851,6 +17192,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_default_passwd_cb.3" => [ "doc/man3/SSL_CTX_set_default_passwd_cb.pod" ], + "doc/man/man3/SSL_CTX_set_domain_flags.3" => [ + "doc/man3/SSL_CTX_set_domain_flags.pod" + ], "doc/man/man3/SSL_CTX_set_generate_session_id.3" => [ "doc/man3/SSL_CTX_set_generate_session_id.pod" ], @@ -14872,6 +17216,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_msg_callback.3" => [ "doc/man3/SSL_CTX_set_msg_callback.pod" ], + "doc/man/man3/SSL_CTX_set_new_pending_conn_cb.3" => [ + "doc/man3/SSL_CTX_set_new_pending_conn_cb.pod" + ], "doc/man/man3/SSL_CTX_set_num_tickets.3" => [ "doc/man3/SSL_CTX_set_num_tickets.pod" ], @@ -14986,6 +17333,9 @@ our %unified_info = ( "doc/man/man3/SSL_accept.3" => [ "doc/man3/SSL_accept.pod" ], + "doc/man/man3/SSL_accept_stream.3" => [ + "doc/man3/SSL_accept_stream.pod" + ], "doc/man/man3/SSL_alert_type_string.3" => [ "doc/man3/SSL_alert_type_string.pod" ], @@ -15013,9 +17363,21 @@ our %unified_info = ( "doc/man/man3/SSL_free.3" => [ "doc/man3/SSL_free.pod" ], + "doc/man/man3/SSL_get0_connection.3" => [ + "doc/man3/SSL_get0_connection.pod" + ], + "doc/man/man3/SSL_get0_group_name.3" => [ + "doc/man3/SSL_get0_group_name.pod" + ], + "doc/man/man3/SSL_get0_peer_rpk.3" => [ + "doc/man3/SSL_get0_peer_rpk.pod" + ], "doc/man/man3/SSL_get0_peer_scts.3" => [ "doc/man3/SSL_get0_peer_scts.pod" ], + "doc/man/man3/SSL_get1_builtin_sigalgs.3" => [ + "doc/man3/SSL_get1_builtin_sigalgs.pod" + ], "doc/man/man3/SSL_get_SSL_CTX.3" => [ "doc/man3/SSL_get_SSL_CTX.pod" ], @@ -15031,6 +17393,9 @@ our %unified_info = ( "doc/man/man3/SSL_get_client_random.3" => [ "doc/man3/SSL_get_client_random.pod" ], + "doc/man/man3/SSL_get_conn_close_info.3" => [ + "doc/man3/SSL_get_conn_close_info.pod" + ], "doc/man/man3/SSL_get_current_cipher.3" => [ "doc/man3/SSL_get_current_cipher.pod" ], @@ -15040,12 +17405,18 @@ our %unified_info = ( "doc/man/man3/SSL_get_error.3" => [ "doc/man3/SSL_get_error.pod" ], + "doc/man/man3/SSL_get_event_timeout.3" => [ + "doc/man3/SSL_get_event_timeout.pod" + ], "doc/man/man3/SSL_get_extms_support.3" => [ "doc/man3/SSL_get_extms_support.pod" ], "doc/man/man3/SSL_get_fd.3" => [ "doc/man3/SSL_get_fd.pod" ], + "doc/man/man3/SSL_get_handshake_rtt.3" => [ + "doc/man3/SSL_get_handshake_rtt.pod" + ], "doc/man/man3/SSL_get_peer_cert_chain.3" => [ "doc/man3/SSL_get_peer_cert_chain.pod" ], @@ -15064,12 +17435,24 @@ our %unified_info = ( "doc/man/man3/SSL_get_rbio.3" => [ "doc/man3/SSL_get_rbio.pod" ], + "doc/man/man3/SSL_get_rpoll_descriptor.3" => [ + "doc/man3/SSL_get_rpoll_descriptor.pod" + ], "doc/man/man3/SSL_get_session.3" => [ "doc/man3/SSL_get_session.pod" ], "doc/man/man3/SSL_get_shared_sigalgs.3" => [ "doc/man3/SSL_get_shared_sigalgs.pod" ], + "doc/man/man3/SSL_get_stream_id.3" => [ + "doc/man3/SSL_get_stream_id.pod" + ], + "doc/man/man3/SSL_get_stream_read_state.3" => [ + "doc/man3/SSL_get_stream_read_state.pod" + ], + "doc/man/man3/SSL_get_value_uint.3" => [ + "doc/man3/SSL_get_value_uint.pod" + ], "doc/man/man3/SSL_get_verify_result.3" => [ "doc/man3/SSL_get_verify_result.pod" ], @@ -15079,9 +17462,15 @@ our %unified_info = ( "doc/man/man3/SSL_group_to_name.3" => [ "doc/man3/SSL_group_to_name.pod" ], + "doc/man/man3/SSL_handle_events.3" => [ + "doc/man3/SSL_handle_events.pod" + ], "doc/man/man3/SSL_in_init.3" => [ "doc/man3/SSL_in_init.pod" ], + "doc/man/man3/SSL_inject_net_dgram.3" => [ + "doc/man3/SSL_inject_net_dgram.pod" + ], "doc/man/man3/SSL_key_update.3" => [ "doc/man3/SSL_key_update.pod" ], @@ -15094,9 +17483,21 @@ our %unified_info = ( "doc/man/man3/SSL_new.3" => [ "doc/man3/SSL_new.pod" ], + "doc/man/man3/SSL_new_domain.3" => [ + "doc/man3/SSL_new_domain.pod" + ], + "doc/man/man3/SSL_new_listener.3" => [ + "doc/man3/SSL_new_listener.pod" + ], + "doc/man/man3/SSL_new_stream.3" => [ + "doc/man3/SSL_new_stream.pod" + ], "doc/man/man3/SSL_pending.3" => [ "doc/man3/SSL_pending.pod" ], + "doc/man/man3/SSL_poll.3" => [ + "doc/man3/SSL_poll.pod" + ], "doc/man/man3/SSL_read.3" => [ "doc/man3/SSL_read.pod" ], @@ -15112,24 +17513,45 @@ our %unified_info = ( "doc/man/man3/SSL_set1_host.3" => [ "doc/man3/SSL_set1_host.pod" ], + "doc/man/man3/SSL_set1_initial_peer_addr.3" => [ + "doc/man3/SSL_set1_initial_peer_addr.pod" + ], + "doc/man/man3/SSL_set1_server_cert_type.3" => [ + "doc/man3/SSL_set1_server_cert_type.pod" + ], "doc/man/man3/SSL_set_async_callback.3" => [ "doc/man3/SSL_set_async_callback.pod" ], "doc/man/man3/SSL_set_bio.3" => [ "doc/man3/SSL_set_bio.pod" ], + "doc/man/man3/SSL_set_blocking_mode.3" => [ + "doc/man3/SSL_set_blocking_mode.pod" + ], "doc/man/man3/SSL_set_connect_state.3" => [ "doc/man3/SSL_set_connect_state.pod" ], + "doc/man/man3/SSL_set_default_stream_mode.3" => [ + "doc/man3/SSL_set_default_stream_mode.pod" + ], "doc/man/man3/SSL_set_fd.3" => [ "doc/man3/SSL_set_fd.pod" ], + "doc/man/man3/SSL_set_incoming_stream_policy.3" => [ + "doc/man3/SSL_set_incoming_stream_policy.pod" + ], + "doc/man/man3/SSL_set_quic_tls_cbs.3" => [ + "doc/man3/SSL_set_quic_tls_cbs.pod" + ], "doc/man/man3/SSL_set_retry_verify.3" => [ "doc/man3/SSL_set_retry_verify.pod" ], "doc/man/man3/SSL_set_session.3" => [ "doc/man3/SSL_set_session.pod" ], + "doc/man/man3/SSL_set_session_secret_cb.3" => [ + "doc/man3/SSL_set_session_secret_cb.pod" + ], "doc/man/man3/SSL_set_shutdown.3" => [ "doc/man3/SSL_set_shutdown.pod" ], @@ -15142,6 +17564,12 @@ our %unified_info = ( "doc/man/man3/SSL_state_string.3" => [ "doc/man3/SSL_state_string.pod" ], + "doc/man/man3/SSL_stream_conclude.3" => [ + "doc/man3/SSL_stream_conclude.pod" + ], + "doc/man/man3/SSL_stream_reset.3" => [ + "doc/man3/SSL_stream_reset.pod" + ], "doc/man/man3/SSL_want.3" => [ "doc/man3/SSL_want.pod" ], @@ -15151,8 +17579,8 @@ our %unified_info = ( "doc/man/man3/TS_RESP_CTX_new.3" => [ "doc/man3/TS_RESP_CTX_new.pod" ], - "doc/man/man3/TS_VERIFY_CTX_set_certs.3" => [ - "doc/man3/TS_VERIFY_CTX_set_certs.pod" + "doc/man/man3/TS_VERIFY_CTX.3" => [ + "doc/man3/TS_VERIFY_CTX.pod" ], "doc/man/man3/UI_STRING.3" => [ "doc/man3/UI_STRING.pod" @@ -15172,6 +17600,21 @@ our %unified_info = ( "doc/man/man3/X509V3_set_ctx.3" => [ "doc/man3/X509V3_set_ctx.pod" ], + "doc/man/man3/X509_ACERT_add1_attr.3" => [ + "doc/man3/X509_ACERT_add1_attr.pod" + ], + "doc/man/man3/X509_ACERT_add_attr_nconf.3" => [ + "doc/man3/X509_ACERT_add_attr_nconf.pod" + ], + "doc/man/man3/X509_ACERT_get0_holder_baseCertId.3" => [ + "doc/man3/X509_ACERT_get0_holder_baseCertId.pod" + ], + "doc/man/man3/X509_ACERT_get_attr.3" => [ + "doc/man3/X509_ACERT_get_attr.pod" + ], + "doc/man/man3/X509_ACERT_print_ex.3" => [ + "doc/man3/X509_ACERT_print_ex.pod" + ], "doc/man/man3/X509_ALGOR_dup.3" => [ "doc/man3/X509_ALGOR_dup.pod" ], @@ -15220,6 +17663,9 @@ our %unified_info = ( "doc/man/man3/X509_SIG_get0.3" => [ "doc/man3/X509_SIG_get0.pod" ], + "doc/man/man3/X509_STORE_CTX_get_by_subject.3" => [ + "doc/man3/X509_STORE_CTX_get_by_subject.pod" + ], "doc/man/man3/X509_STORE_CTX_get_error.3" => [ "doc/man3/X509_STORE_CTX_get_error.pod" ], @@ -15286,6 +17732,9 @@ our %unified_info = ( "doc/man/man3/X509_get0_uids.3" => [ "doc/man3/X509_get0_uids.pod" ], + "doc/man/man3/X509_get_default_cert_file.3" => [ + "doc/man3/X509_get_default_cert_file.pod" + ], "doc/man/man3/X509_get_extension_flags.3" => [ "doc/man3/X509_get_extension_flags.pod" ], @@ -15409,9 +17858,15 @@ our %unified_info = ( "doc/man/man7/EVP_CIPHER-SM4.7" => [ "doc/man7/EVP_CIPHER-SM4.pod" ], + "doc/man/man7/EVP_KDF-ARGON2.7" => [ + "doc/man7/EVP_KDF-ARGON2.pod" + ], "doc/man/man7/EVP_KDF-HKDF.7" => [ "doc/man7/EVP_KDF-HKDF.pod" ], + "doc/man/man7/EVP_KDF-HMAC-DRBG.7" => [ + "doc/man7/EVP_KDF-HMAC-DRBG.pod" + ], "doc/man/man7/EVP_KDF-KB.7" => [ "doc/man7/EVP_KDF-KB.pod" ], @@ -15427,6 +17882,9 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-PKCS12KDF.7" => [ "doc/man7/EVP_KDF-PKCS12KDF.pod" ], + "doc/man/man7/EVP_KDF-PVKKDF.7" => [ + "doc/man7/EVP_KDF-PVKKDF.pod" + ], "doc/man/man7/EVP_KDF-SCRYPT.7" => [ "doc/man7/EVP_KDF-SCRYPT.pod" ], @@ -15451,9 +17909,18 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-X963.7" => [ "doc/man7/EVP_KDF-X963.pod" ], + "doc/man/man7/EVP_KEM-EC.7" => [ + "doc/man7/EVP_KEM-EC.pod" + ], + "doc/man/man7/EVP_KEM-ML-KEM.7" => [ + "doc/man7/EVP_KEM-ML-KEM.pod" + ], "doc/man/man7/EVP_KEM-RSA.7" => [ "doc/man7/EVP_KEM-RSA.pod" ], + "doc/man/man7/EVP_KEM-X25519.7" => [ + "doc/man7/EVP_KEM-X25519.pod" + ], "doc/man/man7/EVP_KEYEXCH-DH.7" => [ "doc/man7/EVP_KEYEXCH-DH.pod" ], @@ -15487,6 +17954,9 @@ our %unified_info = ( "doc/man/man7/EVP_MD-BLAKE2.7" => [ "doc/man7/EVP_MD-BLAKE2.pod" ], + "doc/man/man7/EVP_MD-KECCAK.7" => [ + "doc/man7/EVP_MD-KECCAK.pod" + ], "doc/man/man7/EVP_MD-MD2.7" => [ "doc/man7/EVP_MD-MD2.pod" ], @@ -15544,15 +18014,27 @@ our %unified_info = ( "doc/man/man7/EVP_PKEY-HMAC.7" => [ "doc/man7/EVP_PKEY-HMAC.pod" ], + "doc/man/man7/EVP_PKEY-ML-DSA.7" => [ + "doc/man7/EVP_PKEY-ML-DSA.pod" + ], + "doc/man/man7/EVP_PKEY-ML-KEM.7" => [ + "doc/man7/EVP_PKEY-ML-KEM.pod" + ], "doc/man/man7/EVP_PKEY-RSA.7" => [ "doc/man7/EVP_PKEY-RSA.pod" ], + "doc/man/man7/EVP_PKEY-SLH-DSA.7" => [ + "doc/man7/EVP_PKEY-SLH-DSA.pod" + ], "doc/man/man7/EVP_PKEY-SM2.7" => [ "doc/man7/EVP_PKEY-SM2.pod" ], "doc/man/man7/EVP_PKEY-X25519.7" => [ "doc/man7/EVP_PKEY-X25519.pod" ], + "doc/man/man7/EVP_RAND-CRNG-TEST.7" => [ + "doc/man7/EVP_RAND-CRNG-TEST.pod" + ], "doc/man/man7/EVP_RAND-CTR-DRBG.7" => [ "doc/man7/EVP_RAND-CTR-DRBG.pod" ], @@ -15562,6 +18044,9 @@ our %unified_info = ( "doc/man/man7/EVP_RAND-HMAC-DRBG.7" => [ "doc/man7/EVP_RAND-HMAC-DRBG.pod" ], + "doc/man/man7/EVP_RAND-JITTER.7" => [ + "doc/man7/EVP_RAND-JITTER.pod" + ], "doc/man/man7/EVP_RAND-SEED-SRC.7" => [ "doc/man7/EVP_RAND-SEED-SRC.pod" ], @@ -15583,9 +18068,15 @@ our %unified_info = ( "doc/man/man7/EVP_SIGNATURE-HMAC.7" => [ "doc/man7/EVP_SIGNATURE-HMAC.pod" ], + "doc/man/man7/EVP_SIGNATURE-ML-DSA.7" => [ + "doc/man7/EVP_SIGNATURE-ML-DSA.pod" + ], "doc/man/man7/EVP_SIGNATURE-RSA.7" => [ "doc/man7/EVP_SIGNATURE-RSA.pod" ], + "doc/man/man7/EVP_SIGNATURE-SLH-DSA.7" => [ + "doc/man7/EVP_SIGNATURE-SLH-DSA.pod" + ], "doc/man/man7/OSSL_PROVIDER-FIPS.7" => [ "doc/man7/OSSL_PROVIDER-FIPS.pod" ], @@ -15601,6 +18092,9 @@ our %unified_info = ( "doc/man/man7/OSSL_PROVIDER-null.7" => [ "doc/man7/OSSL_PROVIDER-null.pod" ], + "doc/man/man7/OSSL_STORE-winstore.7" => [ + "doc/man7/OSSL_STORE-winstore.pod" + ], "doc/man/man7/RAND.7" => [ "doc/man7/RAND.pod" ], @@ -15613,9 +18107,6 @@ our %unified_info = ( "doc/man/man7/bio.7" => [ "doc/man7/bio.pod" ], - "doc/man/man7/crypto.7" => [ - "doc/man7/crypto.pod" - ], "doc/man/man7/ct.7" => [ "doc/man7/ct.pod" ], @@ -15646,29 +18137,80 @@ our %unified_info = ( "doc/man/man7/life_cycle-rand.7" => [ "doc/man7/life_cycle-rand.pod" ], - "doc/man/man7/migration_guide.7" => [ - "doc/man7/migration_guide.pod" + "doc/man/man7/openssl-core.h.7" => [ + "doc/man7/openssl-core.h.pod" + ], + "doc/man/man7/openssl-core_dispatch.h.7" => [ + "doc/man7/openssl-core_dispatch.h.pod" + ], + "doc/man/man7/openssl-core_names.h.7" => [ + "doc/man7/openssl-core_names.h.pod" + ], + "doc/man/man7/openssl-env.7" => [ + "doc/man7/openssl-env.pod" + ], + "doc/man/man7/openssl-glossary.7" => [ + "doc/man7/openssl-glossary.pod" + ], + "doc/man/man7/openssl-qlog.7" => [ + "doc/man7/openssl-qlog.pod" + ], + "doc/man/man7/openssl-quic-concurrency.7" => [ + "doc/man7/openssl-quic-concurrency.pod" + ], + "doc/man/man7/openssl-quic.7" => [ + "doc/man7/openssl-quic.pod" + ], + "doc/man/man7/openssl-threads.7" => [ + "doc/man7/openssl-threads.pod" + ], + "doc/man/man7/openssl_user_macros.7" => [ + "doc/man7/openssl_user_macros.pod" + ], + "doc/man/man7/ossl-guide-introduction.7" => [ + "doc/man7/ossl-guide-introduction.pod" + ], + "doc/man/man7/ossl-guide-libcrypto-introduction.7" => [ + "doc/man7/ossl-guide-libcrypto-introduction.pod" + ], + "doc/man/man7/ossl-guide-libraries-introduction.7" => [ + "doc/man7/ossl-guide-libraries-introduction.pod" + ], + "doc/man/man7/ossl-guide-libssl-introduction.7" => [ + "doc/man7/ossl-guide-libssl-introduction.pod" + ], + "doc/man/man7/ossl-guide-migration.7" => [ + "doc/man7/ossl-guide-migration.pod" + ], + "doc/man/man7/ossl-guide-quic-client-block.7" => [ + "doc/man7/ossl-guide-quic-client-block.pod" + ], + "doc/man/man7/ossl-guide-quic-client-non-block.7" => [ + "doc/man7/ossl-guide-quic-client-non-block.pod" + ], + "doc/man/man7/ossl-guide-quic-introduction.7" => [ + "doc/man7/ossl-guide-quic-introduction.pod" ], - "doc/man/man7/openssl-core.h.7" => [ - "doc/man7/openssl-core.h.pod" + "doc/man/man7/ossl-guide-quic-multi-stream.7" => [ + "doc/man7/ossl-guide-quic-multi-stream.pod" ], - "doc/man/man7/openssl-core_dispatch.h.7" => [ - "doc/man7/openssl-core_dispatch.h.pod" + "doc/man/man7/ossl-guide-quic-server-block.7" => [ + "doc/man7/ossl-guide-quic-server-block.pod" ], - "doc/man/man7/openssl-core_names.h.7" => [ - "doc/man7/openssl-core_names.h.pod" + "doc/man/man7/ossl-guide-quic-server-non-block.7" => [ + "doc/man7/ossl-guide-quic-server-non-block.pod" ], - "doc/man/man7/openssl-env.7" => [ - "doc/man7/openssl-env.pod" + "doc/man/man7/ossl-guide-tls-client-block.7" => [ + "doc/man7/ossl-guide-tls-client-block.pod" ], - "doc/man/man7/openssl-glossary.7" => [ - "doc/man7/openssl-glossary.pod" + "doc/man/man7/ossl-guide-tls-client-non-block.7" => [ + "doc/man7/ossl-guide-tls-client-non-block.pod" ], - "doc/man/man7/openssl-threads.7" => [ - "doc/man7/openssl-threads.pod" + "doc/man/man7/ossl-guide-tls-introduction.7" => [ + "doc/man7/ossl-guide-tls-introduction.pod" ], - "doc/man/man7/openssl_user_macros.7" => [ - "doc/man7/openssl_user_macros.pod" + "doc/man/man7/ossl-guide-tls-server-block.7" => [ + "doc/man7/ossl-guide-tls-server-block.pod" ], "doc/man/man7/ossl_store-file.7" => [ "doc/man7/ossl_store-file.pod" @@ -15724,6 +18266,9 @@ our %unified_info = ( "doc/man/man7/provider-signature.7" => [ "doc/man7/provider-signature.pod" ], + "doc/man/man7/provider-skeymgmt.7" => [ + "doc/man7/provider-skeymgmt.pod" + ], "doc/man/man7/provider-storemgmt.7" => [ "doc/man7/provider-storemgmt.pod" ], @@ -15733,9 +18278,6 @@ our %unified_info = ( "doc/man/man7/proxy-certificates.7" => [ "doc/man7/proxy-certificates.pod" ], - "doc/man/man7/ssl.7" => [ - "doc/man7/ssl.pod" - ], "doc/man/man7/x509.7" => [ "doc/man7/x509.pod" ], @@ -15871,6 +18413,9 @@ our %unified_info = ( "doc/man1/openssl-sess_id.pod" => [ "doc/man1/openssl-sess_id.pod.in" ], + "doc/man1/openssl-skeyutl.pod" => [ + "doc/man1/openssl-skeyutl.pod.in" + ], "doc/man1/openssl-smime.pod" => [ "doc/man1/openssl-smime.pod.in" ], @@ -15907,12 +18452,30 @@ our %unified_info = ( "engines/e_padlock-x86_64.s" => [ "engines/asm/e_padlock-x86_64.pl" ], + "exporters/OpenSSLConfig.cmake" => [ + "exporters/cmake/OpenSSLConfig.cmake.in" + ], + "exporters/OpenSSLConfigVersion.cmake" => [ + "exporters/cmake/OpenSSLConfigVersion.cmake.in" + ], + "exporters/libcrypto.pc" => [ + "exporters/pkg-config/libcrypto.pc.in" + ], + "exporters/libssl.pc" => [ + "exporters/pkg-config/libssl.pc.in" + ], + "exporters/openssl.pc" => [ + "exporters/pkg-config/openssl.pc.in" + ], "include/crypto/bn_conf.h" => [ "include/crypto/bn_conf.h.in" ], "include/crypto/dso_conf.h" => [ "include/crypto/dso_conf.h.in" ], + "include/internal/param_names.h" => [ + "include/internal/param_names.h.in" + ], "include/openssl/asn1.h" => [ "include/openssl/asn1.h.in" ], @@ -15928,12 +18491,18 @@ our %unified_info = ( "include/openssl/cms.h" => [ "include/openssl/cms.h.in" ], + "include/openssl/comp.h" => [ + "include/openssl/comp.h.in" + ], "include/openssl/conf.h" => [ "include/openssl/conf.h.in" ], "include/openssl/configuration.h" => [ "include/openssl/configuration.h.in" ], + "include/openssl/core_names.h" => [ + "include/openssl/core_names.h.in" + ], "include/openssl/crmf.h" => [ "include/openssl/crmf.h.in" ], @@ -15982,12 +18551,39 @@ our %unified_info = ( "include/openssl/x509.h" => [ "include/openssl/x509.h.in" ], + "include/openssl/x509_acert.h" => [ + "include/openssl/x509_acert.h.in" + ], "include/openssl/x509_vfy.h" => [ "include/openssl/x509_vfy.h.in" ], "include/openssl/x509v3.h" => [ "include/openssl/x509v3.h.in" ], + "installdata.pm" => [ + "util/mkinstallvars.pl", + "\"PREFIX=\$(INSTALLTOP)\"", + "BINDIR=bin", + "\"LIBDIR=\$(LIBDIR)\"", + "\"libdir=\$(libdir)\"", + "INCLUDEDIR=include", + "APPLINKDIR=include/openssl", + "\"ENGINESDIR=\$(ENGINESDIR)\"", + "\"MODULESDIR=\$(MODULESDIR)\"", + "\"PKGCONFIGDIR=\$(PKGCONFIGDIR)\"", + "\"CMAKECONFIGDIR=\$(CMAKECONFIGDIR)\"", + "\"LDLIBS=\$(LIB_EX_LIBS)\"", + "\"VERSION=\$(VERSION)\"" + ], + "libcrypto.pc" => [ + "exporters/pkg-config/libcrypto.pc.in" + ], + "libssl.pc" => [ + "exporters/pkg-config/libssl.pc.in" + ], + "openssl.pc" => [ + "exporters/pkg-config/openssl.pc.in" + ], "providers/common/der/der_digests_gen.c" => [ "providers/common/der/der_digests_gen.c.in" ], @@ -16000,9 +18596,15 @@ our %unified_info = ( "providers/common/der/der_ecx_gen.c" => [ "providers/common/der/der_ecx_gen.c.in" ], + "providers/common/der/der_ml_dsa_gen.c" => [ + "providers/common/der/der_ml_dsa_gen.c.in" + ], "providers/common/der/der_rsa_gen.c" => [ "providers/common/der/der_rsa_gen.c.in" ], + "providers/common/der/der_slh_dsa_gen.c" => [ + "providers/common/der/der_slh_dsa_gen.c.in" + ], "providers/common/der/der_sm2_gen.c" => [ "providers/common/der/der_sm2_gen.c.in" ], @@ -16021,9 +18623,15 @@ our %unified_info = ( "providers/common/include/prov/der_ecx.h" => [ "providers/common/include/prov/der_ecx.h.in" ], + "providers/common/include/prov/der_ml_dsa.h" => [ + "providers/common/include/prov/der_ml_dsa.h.in" + ], "providers/common/include/prov/der_rsa.h" => [ "providers/common/include/prov/der_rsa.h.in" ], + "providers/common/include/prov/der_slh_dsa.h" => [ + "providers/common/include/prov/der_slh_dsa.h.in" + ], "providers/common/include/prov/der_sm2.h" => [ "providers/common/include/prov/der_sm2.h.in" ], @@ -16059,6 +18667,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "buffer" ], + "test/buildtest_byteorder.c" => [ + "test/generate_buildtest.pl", + "byteorder" + ], "test/buildtest_camellia.c" => [ "test/generate_buildtest.pl", "camellia" @@ -16091,10 +18703,6 @@ our %unified_info = ( "test/generate_buildtest.pl", "core_dispatch" ], - "test/buildtest_core_names.c" => [ - "test/generate_buildtest.pl", - "core_names" - ], "test/buildtest_core_object.c" => [ "test/generate_buildtest.pl", "core_object" @@ -16127,6 +18735,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "e_os2" ], + "test/buildtest_e_ostime.c" => [ + "test/generate_buildtest.pl", + "e_ostime" + ], "test/buildtest_ebcdic.c" => [ "test/generate_buildtest.pl", "ebcdic" @@ -16163,6 +18775,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "hmac" ], + "test/buildtest_hpke.c" => [ + "test/generate_buildtest.pl", + "hpke" + ], "test/buildtest_http.c" => [ "test/generate_buildtest.pl", "http" @@ -16171,6 +18787,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "idea" ], + "test/buildtest_indicator.c" => [ + "test/generate_buildtest.pl", + "indicator" + ], "test/buildtest_kdf.c" => [ "test/generate_buildtest.pl", "kdf" @@ -16191,6 +18811,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "mdc2" ], + "test/buildtest_ml_kem.c" => [ + "test/generate_buildtest.pl", + "ml_kem" + ], "test/buildtest_modes.c" => [ "test/generate_buildtest.pl", "modes" @@ -16231,6 +18855,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "provider" ], + "test/buildtest_quic.c" => [ + "test/generate_buildtest.pl", + "quic" + ], "test/buildtest_rand.c" => [ "test/generate_buildtest.pl", "rand" @@ -16287,6 +18915,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "symhacks" ], + "test/buildtest_thread.c" => [ + "test/generate_buildtest.pl", + "thread" + ], "test/buildtest_tls1.c" => [ "test/generate_buildtest.pl", "tls1" @@ -16361,6 +18993,7 @@ our %unified_info = ( "doc/html/man1/openssl-s_server.html", "doc/html/man1/openssl-s_time.html", "doc/html/man1/openssl-sess_id.html", + "doc/html/man1/openssl-skeyutl.html", "doc/html/man1/openssl-smime.html", "doc/html/man1/openssl-speed.html", "doc/html/man1/openssl-spkac.html", @@ -16410,6 +19043,7 @@ our %unified_info = ( "doc/html/man3/BIO_find_type.html", "doc/html/man3/BIO_get_data.html", "doc/html/man3/BIO_get_ex_new_index.html", + "doc/html/man3/BIO_get_rpoll_descriptor.html", "doc/html/man3/BIO_meth_new.html", "doc/html/man3/BIO_new.html", "doc/html/man3/BIO_new_CMS.html", @@ -16422,11 +19056,13 @@ our %unified_info = ( "doc/html/man3/BIO_s_connect.html", "doc/html/man3/BIO_s_core.html", "doc/html/man3/BIO_s_datagram.html", + "doc/html/man3/BIO_s_dgram_pair.html", "doc/html/man3/BIO_s_fd.html", "doc/html/man3/BIO_s_file.html", "doc/html/man3/BIO_s_mem.html", "doc/html/man3/BIO_s_null.html", "doc/html/man3/BIO_s_socket.html", + "doc/html/man3/BIO_sendmmsg.html", "doc/html/man3/BIO_set_callback.html", "doc/html/man3/BIO_should_retry.html", "doc/html/man3/BIO_socket_wait.html", @@ -16451,6 +19087,7 @@ our %unified_info = ( "doc/html/man3/BN_swap.html", "doc/html/man3/BN_zero.html", "doc/html/man3/BUF_MEM_new.html", + "doc/html/man3/CMAC_CTX.html", "doc/html/man3/CMS_EncryptedData_decrypt.html", "doc/html/man3/CMS_EncryptedData_encrypt.html", "doc/html/man3/CMS_EnvelopedData_create.html", @@ -16473,6 +19110,7 @@ our %unified_info = ( "doc/html/man3/CMS_uncompress.html", "doc/html/man3/CMS_verify.html", "doc/html/man3/CMS_verify_receipt.html", + "doc/html/man3/COMP_CTX_new.html", "doc/html/man3/CONF_modules_free.html", "doc/html/man3/CONF_modules_load_file.html", "doc/html/man3/CRYPTO_THREAD_run_once.html", @@ -16506,6 +19144,8 @@ our %unified_info = ( "doc/html/man3/DSA_size.html", "doc/html/man3/DTLS_get_data_mtu.html", "doc/html/man3/DTLS_set_timer_cb.html", + "doc/html/man3/DTLSv1_get_timeout.html", + "doc/html/man3/DTLSv1_handle_timeout.html", "doc/html/man3/DTLSv1_listen.html", "doc/html/man3/ECDSA_SIG_new.html", "doc/html/man3/ECDSA_sign.html", @@ -16552,6 +19192,7 @@ our %unified_info = ( "doc/html/man3/EVP_PKEY_CTX_ctrl.html", "doc/html/man3/EVP_PKEY_CTX_get0_libctx.html", "doc/html/man3/EVP_PKEY_CTX_get0_pkey.html", + "doc/html/man3/EVP_PKEY_CTX_get_algor.html", "doc/html/man3/EVP_PKEY_CTX_new.html", "doc/html/man3/EVP_PKEY_CTX_set1_pbe_pass.html", "doc/html/man3/EVP_PKEY_CTX_set_hkdf_md.html", @@ -16591,6 +19232,8 @@ our %unified_info = ( "doc/html/man3/EVP_PKEY_verify_recover.html", "doc/html/man3/EVP_RAND.html", "doc/html/man3/EVP_SIGNATURE.html", + "doc/html/man3/EVP_SKEY.html", + "doc/html/man3/EVP_SKEYMGMT.html", "doc/html/man3/EVP_SealInit.html", "doc/html/man3/EVP_SignInit.html", "doc/html/man3/EVP_VerifyInit.html", @@ -16620,6 +19263,7 @@ our %unified_info = ( "doc/html/man3/EVP_sm3.html", "doc/html/man3/EVP_sm4_cbc.html", "doc/html/man3/EVP_whirlpool.html", + "doc/html/man3/GENERAL_NAME.html", "doc/html/man3/HMAC.html", "doc/html/man3/MD5.html", "doc/html/man3/MDC2_Init.html", @@ -16644,14 +19288,18 @@ our %unified_info = ( "doc/html/man3/OPENSSL_init_ssl.html", "doc/html/man3/OPENSSL_instrument_bus.html", "doc/html/man3/OPENSSL_load_builtin_modules.html", + "doc/html/man3/OPENSSL_load_u16_le.html", "doc/html/man3/OPENSSL_malloc.html", + "doc/html/man3/OPENSSL_riscvcap.html", "doc/html/man3/OPENSSL_s390xcap.html", "doc/html/man3/OPENSSL_secure_malloc.html", "doc/html/man3/OPENSSL_strcasecmp.html", "doc/html/man3/OSSL_ALGORITHM.html", "doc/html/man3/OSSL_CALLBACK.html", + "doc/html/man3/OSSL_CMP_ATAV_set0.html", "doc/html/man3/OSSL_CMP_CTX_new.html", "doc/html/man3/OSSL_CMP_HDR_get0_transactionID.html", + "doc/html/man3/OSSL_CMP_ITAV_new_caCerts.html", "doc/html/man3/OSSL_CMP_ITAV_set0.html", "doc/html/man3/OSSL_CMP_MSG_get0_header.html", "doc/html/man3/OSSL_CMP_MSG_http_perform.html", @@ -16675,18 +19323,27 @@ our %unified_info = ( "doc/html/man3/OSSL_ENCODER_CTX.html", "doc/html/man3/OSSL_ENCODER_CTX_new_for_pkey.html", "doc/html/man3/OSSL_ENCODER_to_bio.html", + "doc/html/man3/OSSL_ERR_STATE_save.html", "doc/html/man3/OSSL_ESS_check_signing_certs.html", + "doc/html/man3/OSSL_GENERAL_NAMES_print.html", + "doc/html/man3/OSSL_HPKE_CTX_new.html", "doc/html/man3/OSSL_HTTP_REQ_CTX.html", "doc/html/man3/OSSL_HTTP_parse_url.html", "doc/html/man3/OSSL_HTTP_transfer.html", + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX.html", + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX_print.html", + "doc/html/man3/OSSL_INDICATOR_set_callback.html", "doc/html/man3/OSSL_ITEM.html", "doc/html/man3/OSSL_LIB_CTX.html", + "doc/html/man3/OSSL_LIB_CTX_set_conf_diagnostics.html", "doc/html/man3/OSSL_PARAM.html", "doc/html/man3/OSSL_PARAM_BLD.html", "doc/html/man3/OSSL_PARAM_allocate_from_text.html", "doc/html/man3/OSSL_PARAM_dup.html", "doc/html/man3/OSSL_PARAM_int.html", + "doc/html/man3/OSSL_PARAM_print_to_bio.html", "doc/html/man3/OSSL_PROVIDER.html", + "doc/html/man3/OSSL_QUIC_client_method.html", "doc/html/man3/OSSL_SELF_TEST_new.html", "doc/html/man3/OSSL_SELF_TEST_set_callback.html", "doc/html/man3/OSSL_STORE_INFO.html", @@ -16695,11 +19352,13 @@ our %unified_info = ( "doc/html/man3/OSSL_STORE_attach.html", "doc/html/man3/OSSL_STORE_expect.html", "doc/html/man3/OSSL_STORE_open.html", + "doc/html/man3/OSSL_sleep.html", "doc/html/man3/OSSL_trace_enabled.html", "doc/html/man3/OSSL_trace_get_category_num.html", "doc/html/man3/OSSL_trace_set_channel.html", "doc/html/man3/OpenSSL_add_all_algorithms.html", "doc/html/man3/OpenSSL_version.html", + "doc/html/man3/PBMAC1_get1_pbkdf2_param.html", "doc/html/man3/PEM_X509_INFO_read_bio_ex.html", "doc/html/man3/PEM_bytes_read_bio.html", "doc/html/man3/PEM_read.html", @@ -16712,6 +19371,7 @@ our %unified_info = ( "doc/html/man3/PKCS12_SAFEBAG_create_cert.html", "doc/html/man3/PKCS12_SAFEBAG_get0_attrs.html", "doc/html/man3/PKCS12_SAFEBAG_get1_cert.html", + "doc/html/man3/PKCS12_SAFEBAG_set0_attrs.html", "doc/html/man3/PKCS12_add1_attr_by_NID.html", "doc/html/man3/PKCS12_add_CSPName_asc.html", "doc/html/man3/PKCS12_add_cert.html", @@ -16803,6 +19463,7 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_sess_set_get_cb.html", "doc/html/man3/SSL_CTX_sessions.html", "doc/html/man3/SSL_CTX_set0_CA_list.html", + "doc/html/man3/SSL_CTX_set1_cert_comp_preference.html", "doc/html/man3/SSL_CTX_set1_curves.html", "doc/html/man3/SSL_CTX_set1_sigalgs.html", "doc/html/man3/SSL_CTX_set1_verify_cert_store.html", @@ -16816,6 +19477,7 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_ct_validation_callback.html", "doc/html/man3/SSL_CTX_set_ctlog_list_file.html", "doc/html/man3/SSL_CTX_set_default_passwd_cb.html", + "doc/html/man3/SSL_CTX_set_domain_flags.html", "doc/html/man3/SSL_CTX_set_generate_session_id.html", "doc/html/man3/SSL_CTX_set_info_callback.html", "doc/html/man3/SSL_CTX_set_keylog_callback.html", @@ -16823,6 +19485,7 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_min_proto_version.html", "doc/html/man3/SSL_CTX_set_mode.html", "doc/html/man3/SSL_CTX_set_msg_callback.html", + "doc/html/man3/SSL_CTX_set_new_pending_conn_cb.html", "doc/html/man3/SSL_CTX_set_num_tickets.html", "doc/html/man3/SSL_CTX_set_options.html", "doc/html/man3/SSL_CTX_set_psk_client_callback.html", @@ -16861,6 +19524,7 @@ our %unified_info = ( "doc/html/man3/SSL_SESSION_print.html", "doc/html/man3/SSL_SESSION_set1_id.html", "doc/html/man3/SSL_accept.html", + "doc/html/man3/SSL_accept_stream.html", "doc/html/man3/SSL_alert_type_string.html", "doc/html/man3/SSL_alloc_buffers.html", "doc/html/man3/SSL_check_chain.html", @@ -16870,59 +19534,90 @@ our %unified_info = ( "doc/html/man3/SSL_export_keying_material.html", "doc/html/man3/SSL_extension_supported.html", "doc/html/man3/SSL_free.html", + "doc/html/man3/SSL_get0_connection.html", + "doc/html/man3/SSL_get0_group_name.html", + "doc/html/man3/SSL_get0_peer_rpk.html", "doc/html/man3/SSL_get0_peer_scts.html", + "doc/html/man3/SSL_get1_builtin_sigalgs.html", "doc/html/man3/SSL_get_SSL_CTX.html", "doc/html/man3/SSL_get_all_async_fds.html", "doc/html/man3/SSL_get_certificate.html", "doc/html/man3/SSL_get_ciphers.html", "doc/html/man3/SSL_get_client_random.html", + "doc/html/man3/SSL_get_conn_close_info.html", "doc/html/man3/SSL_get_current_cipher.html", "doc/html/man3/SSL_get_default_timeout.html", "doc/html/man3/SSL_get_error.html", + "doc/html/man3/SSL_get_event_timeout.html", "doc/html/man3/SSL_get_extms_support.html", "doc/html/man3/SSL_get_fd.html", + "doc/html/man3/SSL_get_handshake_rtt.html", "doc/html/man3/SSL_get_peer_cert_chain.html", "doc/html/man3/SSL_get_peer_certificate.html", "doc/html/man3/SSL_get_peer_signature_nid.html", "doc/html/man3/SSL_get_peer_tmp_key.html", "doc/html/man3/SSL_get_psk_identity.html", "doc/html/man3/SSL_get_rbio.html", + "doc/html/man3/SSL_get_rpoll_descriptor.html", "doc/html/man3/SSL_get_session.html", "doc/html/man3/SSL_get_shared_sigalgs.html", + "doc/html/man3/SSL_get_stream_id.html", + "doc/html/man3/SSL_get_stream_read_state.html", + "doc/html/man3/SSL_get_value_uint.html", "doc/html/man3/SSL_get_verify_result.html", "doc/html/man3/SSL_get_version.html", "doc/html/man3/SSL_group_to_name.html", + "doc/html/man3/SSL_handle_events.html", "doc/html/man3/SSL_in_init.html", + "doc/html/man3/SSL_inject_net_dgram.html", "doc/html/man3/SSL_key_update.html", "doc/html/man3/SSL_library_init.html", "doc/html/man3/SSL_load_client_CA_file.html", "doc/html/man3/SSL_new.html", + "doc/html/man3/SSL_new_domain.html", + "doc/html/man3/SSL_new_listener.html", + "doc/html/man3/SSL_new_stream.html", "doc/html/man3/SSL_pending.html", + "doc/html/man3/SSL_poll.html", "doc/html/man3/SSL_read.html", "doc/html/man3/SSL_read_early_data.html", "doc/html/man3/SSL_rstate_string.html", "doc/html/man3/SSL_session_reused.html", "doc/html/man3/SSL_set1_host.html", + "doc/html/man3/SSL_set1_initial_peer_addr.html", + "doc/html/man3/SSL_set1_server_cert_type.html", "doc/html/man3/SSL_set_async_callback.html", "doc/html/man3/SSL_set_bio.html", + "doc/html/man3/SSL_set_blocking_mode.html", "doc/html/man3/SSL_set_connect_state.html", + "doc/html/man3/SSL_set_default_stream_mode.html", "doc/html/man3/SSL_set_fd.html", + "doc/html/man3/SSL_set_incoming_stream_policy.html", + "doc/html/man3/SSL_set_quic_tls_cbs.html", "doc/html/man3/SSL_set_retry_verify.html", "doc/html/man3/SSL_set_session.html", + "doc/html/man3/SSL_set_session_secret_cb.html", "doc/html/man3/SSL_set_shutdown.html", "doc/html/man3/SSL_set_verify_result.html", "doc/html/man3/SSL_shutdown.html", "doc/html/man3/SSL_state_string.html", + "doc/html/man3/SSL_stream_conclude.html", + "doc/html/man3/SSL_stream_reset.html", "doc/html/man3/SSL_want.html", "doc/html/man3/SSL_write.html", "doc/html/man3/TS_RESP_CTX_new.html", - "doc/html/man3/TS_VERIFY_CTX_set_certs.html", + "doc/html/man3/TS_VERIFY_CTX.html", "doc/html/man3/UI_STRING.html", "doc/html/man3/UI_UTIL_read_pw.html", "doc/html/man3/UI_create_method.html", "doc/html/man3/UI_new.html", "doc/html/man3/X509V3_get_d2i.html", "doc/html/man3/X509V3_set_ctx.html", + "doc/html/man3/X509_ACERT_add1_attr.html", + "doc/html/man3/X509_ACERT_add_attr_nconf.html", + "doc/html/man3/X509_ACERT_get0_holder_baseCertId.html", + "doc/html/man3/X509_ACERT_get_attr.html", + "doc/html/man3/X509_ACERT_print_ex.html", "doc/html/man3/X509_ALGOR_dup.html", "doc/html/man3/X509_ATTRIBUTE.html", "doc/html/man3/X509_CRL_get0_by_serial.html", @@ -16939,6 +19634,7 @@ our %unified_info = ( "doc/html/man3/X509_REQ_get_attr.html", "doc/html/man3/X509_REQ_get_extensions.html", "doc/html/man3/X509_SIG_get0.html", + "doc/html/man3/X509_STORE_CTX_get_by_subject.html", "doc/html/man3/X509_STORE_CTX_get_error.html", "doc/html/man3/X509_STORE_CTX_new.html", "doc/html/man3/X509_STORE_CTX_set_verify_cb.html", @@ -16961,6 +19657,7 @@ our %unified_info = ( "doc/html/man3/X509_get0_notBefore.html", "doc/html/man3/X509_get0_signature.html", "doc/html/man3/X509_get0_uids.html", + "doc/html/man3/X509_get_default_cert_file.html", "doc/html/man3/X509_get_extension_flags.html", "doc/html/man3/X509_get_pubkey.html", "doc/html/man3/X509_get_serialNumber.html", @@ -17006,12 +19703,15 @@ our %unified_info = ( "doc/html/man7/EVP_CIPHER-RC5.html", "doc/html/man7/EVP_CIPHER-SEED.html", "doc/html/man7/EVP_CIPHER-SM4.html", + "doc/html/man7/EVP_KDF-ARGON2.html", "doc/html/man7/EVP_KDF-HKDF.html", + "doc/html/man7/EVP_KDF-HMAC-DRBG.html", "doc/html/man7/EVP_KDF-KB.html", "doc/html/man7/EVP_KDF-KRB5KDF.html", "doc/html/man7/EVP_KDF-PBKDF1.html", "doc/html/man7/EVP_KDF-PBKDF2.html", "doc/html/man7/EVP_KDF-PKCS12KDF.html", + "doc/html/man7/EVP_KDF-PVKKDF.html", "doc/html/man7/EVP_KDF-SCRYPT.html", "doc/html/man7/EVP_KDF-SS.html", "doc/html/man7/EVP_KDF-SSHKDF.html", @@ -17020,7 +19720,10 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-X942-ASN1.html", "doc/html/man7/EVP_KDF-X942-CONCAT.html", "doc/html/man7/EVP_KDF-X963.html", + "doc/html/man7/EVP_KEM-EC.html", + "doc/html/man7/EVP_KEM-ML-KEM.html", "doc/html/man7/EVP_KEM-RSA.html", + "doc/html/man7/EVP_KEM-X25519.html", "doc/html/man7/EVP_KEYEXCH-DH.html", "doc/html/man7/EVP_KEYEXCH-ECDH.html", "doc/html/man7/EVP_KEYEXCH-X25519.html", @@ -17032,6 +19735,7 @@ our %unified_info = ( "doc/html/man7/EVP_MAC-Poly1305.html", "doc/html/man7/EVP_MAC-Siphash.html", "doc/html/man7/EVP_MD-BLAKE2.html", + "doc/html/man7/EVP_MD-KECCAK.html", "doc/html/man7/EVP_MD-MD2.html", "doc/html/man7/EVP_MD-MD4.html", "doc/html/man7/EVP_MD-MD5-SHA1.html", @@ -17051,12 +19755,17 @@ our %unified_info = ( "doc/html/man7/EVP_PKEY-EC.html", "doc/html/man7/EVP_PKEY-FFC.html", "doc/html/man7/EVP_PKEY-HMAC.html", + "doc/html/man7/EVP_PKEY-ML-DSA.html", + "doc/html/man7/EVP_PKEY-ML-KEM.html", "doc/html/man7/EVP_PKEY-RSA.html", + "doc/html/man7/EVP_PKEY-SLH-DSA.html", "doc/html/man7/EVP_PKEY-SM2.html", "doc/html/man7/EVP_PKEY-X25519.html", + "doc/html/man7/EVP_RAND-CRNG-TEST.html", "doc/html/man7/EVP_RAND-CTR-DRBG.html", "doc/html/man7/EVP_RAND-HASH-DRBG.html", "doc/html/man7/EVP_RAND-HMAC-DRBG.html", + "doc/html/man7/EVP_RAND-JITTER.html", "doc/html/man7/EVP_RAND-SEED-SRC.html", "doc/html/man7/EVP_RAND-TEST-RAND.html", "doc/html/man7/EVP_RAND.html", @@ -17064,17 +19773,19 @@ our %unified_info = ( "doc/html/man7/EVP_SIGNATURE-ECDSA.html", "doc/html/man7/EVP_SIGNATURE-ED25519.html", "doc/html/man7/EVP_SIGNATURE-HMAC.html", + "doc/html/man7/EVP_SIGNATURE-ML-DSA.html", "doc/html/man7/EVP_SIGNATURE-RSA.html", + "doc/html/man7/EVP_SIGNATURE-SLH-DSA.html", "doc/html/man7/OSSL_PROVIDER-FIPS.html", "doc/html/man7/OSSL_PROVIDER-base.html", "doc/html/man7/OSSL_PROVIDER-default.html", "doc/html/man7/OSSL_PROVIDER-legacy.html", "doc/html/man7/OSSL_PROVIDER-null.html", + "doc/html/man7/OSSL_STORE-winstore.html", "doc/html/man7/RAND.html", "doc/html/man7/RSA-PSS.html", "doc/html/man7/X25519.html", "doc/html/man7/bio.html", - "doc/html/man7/crypto.html", "doc/html/man7/ct.html", "doc/html/man7/des_modes.html", "doc/html/man7/evp.html", @@ -17085,14 +19796,31 @@ our %unified_info = ( "doc/html/man7/life_cycle-mac.html", "doc/html/man7/life_cycle-pkey.html", "doc/html/man7/life_cycle-rand.html", - "doc/html/man7/migration_guide.html", "doc/html/man7/openssl-core.h.html", "doc/html/man7/openssl-core_dispatch.h.html", "doc/html/man7/openssl-core_names.h.html", "doc/html/man7/openssl-env.html", "doc/html/man7/openssl-glossary.html", + "doc/html/man7/openssl-qlog.html", + "doc/html/man7/openssl-quic-concurrency.html", + "doc/html/man7/openssl-quic.html", "doc/html/man7/openssl-threads.html", "doc/html/man7/openssl_user_macros.html", + "doc/html/man7/ossl-guide-introduction.html", + "doc/html/man7/ossl-guide-libcrypto-introduction.html", + "doc/html/man7/ossl-guide-libraries-introduction.html", + "doc/html/man7/ossl-guide-libssl-introduction.html", + "doc/html/man7/ossl-guide-migration.html", + "doc/html/man7/ossl-guide-quic-client-block.html", + "doc/html/man7/ossl-guide-quic-client-non-block.html", + "doc/html/man7/ossl-guide-quic-introduction.html", + "doc/html/man7/ossl-guide-quic-multi-stream.html", + "doc/html/man7/ossl-guide-quic-server-block.html", + "doc/html/man7/ossl-guide-quic-server-non-block.html", + "doc/html/man7/ossl-guide-tls-client-block.html", + "doc/html/man7/ossl-guide-tls-client-non-block.html", + "doc/html/man7/ossl-guide-tls-introduction.html", + "doc/html/man7/ossl-guide-tls-server-block.html", "doc/html/man7/ossl_store-file.html", "doc/html/man7/ossl_store.html", "doc/html/man7/passphrase-encoding.html", @@ -17111,10 +19839,10 @@ our %unified_info = ( "doc/html/man7/provider-object.html", "doc/html/man7/provider-rand.html", "doc/html/man7/provider-signature.html", + "doc/html/man7/provider-skeymgmt.html", "doc/html/man7/provider-storemgmt.html", "doc/html/man7/provider.html", "doc/html/man7/proxy-certificates.html", - "doc/html/man7/ssl.html", "doc/html/man7/x509.html" ] }, @@ -17129,12 +19857,21 @@ our %unified_info = ( ] }, "includes" => { + "OpenSSLConfig.cmake" => [ + "." + ], + "OpenSSLConfigVersion.cmake" => [ + "." + ], "apps/asn1parse.o" => [ "apps" ], "apps/ca.o" => [ "apps" ], + "apps/ca_internals_test-bin-ca.o" => [ + "apps" + ], "apps/ciphers.o" => [ "apps" ], @@ -17361,6 +20098,9 @@ our %unified_info = ( "apps/openssl-bin-sess_id.o" => [ "apps" ], + "apps/openssl-bin-skeyutl.o" => [ + "apps" + ], "apps/openssl-bin-smime.o" => [ "apps" ], @@ -17448,6 +20188,9 @@ our %unified_info = ( "apps/sess_id.o" => [ "apps" ], + "apps/skeyutl.o" => [ + "apps" + ], "apps/smime.o" => [ "apps" ], @@ -17502,9 +20245,21 @@ our %unified_info = ( "crypto/aes/libcrypto-lib-aesv8-armx.o" => [ "crypto" ], + "crypto/aes/libcrypto-lib-vpaes-armv8.o" => [ + "crypto" + ], "crypto/aes/libfips-lib-aesv8-armx.o" => [ "crypto" ], + "crypto/aes/libfips-lib-vpaes-armv8.o" => [ + "crypto" + ], + "crypto/aes/vpaes-armv8.o" => [ + "crypto" + ], + "crypto/aes/vpaes-loongarch64.o" => [ + "crypto" + ], "crypto/arm64cpuid.o" => [ "crypto" ], @@ -17562,12 +20317,21 @@ our %unified_info = ( "crypto/chacha/chacha-armv4.o" => [ "crypto" ], + "crypto/chacha/chacha-armv8-sve.o" => [ + "crypto" + ], "crypto/chacha/chacha-armv8.o" => [ "crypto" ], + "crypto/chacha/chacha-loongarch64.o" => [ + "crypto" + ], "crypto/chacha/chacha-s390x.o" => [ "crypto" ], + "crypto/chacha/libcrypto-lib-chacha-armv8-sve.o" => [ + "crypto" + ], "crypto/chacha/libcrypto-lib-chacha-armv8.o" => [ "crypto" ], @@ -17592,6 +20356,12 @@ our %unified_info = ( "crypto/ec/ecp_s390x_nistp.o" => [ "crypto" ], + "crypto/ec/ecp_sm2p256-armv8.o" => [ + "crypto" + ], + "crypto/ec/ecx_key.o" => [ + "crypto" + ], "crypto/ec/ecx_meth.o" => [ "crypto" ], @@ -17601,12 +20371,24 @@ our %unified_info = ( "crypto/ec/libcrypto-lib-ecp_nistz256-armv8.o" => [ "crypto" ], + "crypto/ec/libcrypto-lib-ecp_sm2p256-armv8.o" => [ + "crypto" + ], + "crypto/ec/libcrypto-lib-ecx_key.o" => [ + "crypto" + ], "crypto/ec/libcrypto-lib-ecx_meth.o" => [ "crypto" ], "crypto/ec/libfips-lib-ecp_nistz256-armv8.o" => [ "crypto" ], + "crypto/ec/libfips-lib-ecp_sm2p256-armv8.o" => [ + "crypto" + ], + "crypto/ec/libfips-lib-ecx_key.o" => [ + "crypto" + ], "crypto/evp/e_aes.o" => [ "crypto", "crypto/modes" @@ -17684,9 +20466,21 @@ our %unified_info = ( "crypto/libfips-lib-cpuid.o" => [ "." ], + "crypto/md5/libcrypto-lib-md5-aarch64.o" => [ + "crypto" + ], + "crypto/md5/md5-aarch64.o" => [ + "crypto" + ], + "crypto/md5/md5-loongarch64.o" => [ + "crypto" + ], "crypto/md5/md5-sparcv9.o" => [ "crypto" ], + "crypto/modes/aes-gcm-armv8-unroll8_64.o" => [ + "crypto" + ], "crypto/modes/aes-gcm-armv8_64.o" => [ "crypto" ], @@ -17705,6 +20499,9 @@ our %unified_info = ( "crypto/modes/ghashv8-armx.o" => [ "crypto" ], + "crypto/modes/libcrypto-lib-aes-gcm-armv8-unroll8_64.o" => [ + "crypto" + ], "crypto/modes/libcrypto-lib-aes-gcm-armv8_64.o" => [ "crypto" ], @@ -17714,6 +20511,9 @@ our %unified_info = ( "crypto/modes/libcrypto-lib-ghashv8-armx.o" => [ "crypto" ], + "crypto/modes/libfips-lib-aes-gcm-armv8-unroll8_64.o" => [ + "crypto" + ], "crypto/modes/libfips-lib-aes-gcm-armv8_64.o" => [ "crypto" ], @@ -17723,6 +20523,9 @@ our %unified_info = ( "crypto/modes/libfips-lib-ghashv8-armx.o" => [ "crypto" ], + "crypto/params_idx.c" => [ + "util/perl" + ], "crypto/poly1305/libcrypto-lib-poly1305-armv8.o" => [ "crypto" ], @@ -17747,6 +20550,12 @@ our %unified_info = ( "crypto/sha/keccak1600-armv4.o" => [ "crypto" ], + "crypto/sha/keccak1600-armv8.o" => [ + "crypto" + ], + "crypto/sha/libcrypto-lib-keccak1600-armv8.o" => [ + "crypto" + ], "crypto/sha/libcrypto-lib-sha1-armv8.o" => [ "crypto" ], @@ -17756,6 +20565,9 @@ our %unified_info = ( "crypto/sha/libcrypto-lib-sha512-armv8.o" => [ "crypto" ], + "crypto/sha/libfips-lib-keccak1600-armv8.o" => [ + "crypto" + ], "crypto/sha/libfips-lib-sha1-armv8.o" => [ "crypto" ], @@ -17810,6 +20622,30 @@ our %unified_info = ( "crypto/sha/sha512-sparcv9.o" => [ "crypto" ], + "crypto/sm3/libcrypto-lib-sm3-armv8.o" => [ + "crypto" + ], + "crypto/sm3/sm3-armv8.o" => [ + "crypto" + ], + "crypto/sm4/libcrypto-lib-sm4-armv8.o" => [ + "crypto" + ], + "crypto/sm4/libcrypto-lib-vpsm4-armv8.o" => [ + "crypto" + ], + "crypto/sm4/libcrypto-lib-vpsm4_ex-armv8.o" => [ + "crypto" + ], + "crypto/sm4/sm4-armv8.o" => [ + "crypto" + ], + "crypto/sm4/vpsm4-armv8.o" => [ + "crypto" + ], + "crypto/sm4/vpsm4_ex-armv8.o" => [ + "crypto" + ], "doc/man1/openssl-asn1parse.pod" => [ "doc" ], @@ -17942,6 +20778,9 @@ our %unified_info = ( "doc/man1/openssl-sess_id.pod" => [ "doc" ], + "doc/man1/openssl-skeyutl.pod" => [ + "doc" + ], "doc/man1/openssl-smime.pod" => [ "doc" ], @@ -17969,6 +20808,24 @@ our %unified_info = ( "doc/man1/openssl-x509.pod" => [ "doc" ], + "exporters/OpenSSLConfig.cmake" => [ + "." + ], + "exporters/OpenSSLConfigVersion.cmake" => [ + "." + ], + "exporters/libcrypto.pc" => [ + "." + ], + "exporters/libssl.pc" => [ + "." + ], + "exporters/openssl.pc" => [ + "." + ], + "fuzz/acert-test" => [ + "include" + ], "fuzz/asn1-test" => [ "include" ], @@ -17999,22 +20856,88 @@ our %unified_info = ( "fuzz/ct-test" => [ "include" ], + "fuzz/decoder-test" => [ + "include" + ], + "fuzz/dtlsclient-test" => [ + "include" + ], + "fuzz/dtlsserver-test" => [ + "include" + ], + "fuzz/hashtable-test" => [ + "include" + ], + "fuzz/ml-dsa-test" => [ + "include" + ], + "fuzz/ml-kem-test" => [ + "include" + ], + "fuzz/pem-test" => [ + "include" + ], + "fuzz/provider-test" => [ + "include" + ], + "fuzz/punycode-test" => [ + "include" + ], + "fuzz/quic-client-test" => [ + "include" + ], + "fuzz/quic-lcidm-test" => [ + "include" + ], + "fuzz/quic-rcidm-test" => [ + "include" + ], + "fuzz/quic-server-test" => [ + "include" + ], + "fuzz/quic-srtm-test" => [ + "include" + ], "fuzz/server-test" => [ "include" ], + "fuzz/slh-dsa-test" => [ + "include" + ], + "fuzz/smime-test" => [ + "include" + ], + "fuzz/v3name-test" => [ + "include" + ], "fuzz/x509-test" => [ "include" ], + "include/internal/param_names.h" => [ + "util/perl" + ], + "include/openssl/core_names.h" => [ + "util/perl" + ], "libcrypto" => [ ".", "include", "providers/common/include", "providers/implementations/include" ], + "libcrypto.pc" => [ + "." + ], "libssl" => [ ".", "include" ], + "libssl.pc" => [ + "." + ], + "openssl.pc" => [ + "." + ], "providers/common/der/der_digests_gen.c" => [ "providers/common/der" ], @@ -18054,6 +20977,15 @@ our %unified_info = ( "providers/common/der/der_ecx_key.o" => [ "providers/common/include/prov" ], + "providers/common/der/der_ml_dsa_gen.c" => [ + "providers/common/der" + ], + "providers/common/der/der_ml_dsa_gen.o" => [ + "providers/common/include/prov" + ], + "providers/common/der/der_ml_dsa_key.o" => [ + "providers/common/include/prov" + ], "providers/common/der/der_rsa_gen.c" => [ "providers/common/der" ], @@ -18066,6 +20998,15 @@ our %unified_info = ( "providers/common/der/der_rsa_sig.o" => [ "providers/common/include/prov" ], + "providers/common/der/der_slh_dsa_gen.c" => [ + "providers/common/der" + ], + "providers/common/der/der_slh_dsa_gen.o" => [ + "providers/common/include/prov" + ], + "providers/common/der/der_slh_dsa_key.o" => [ + "providers/common/include/prov" + ], "providers/common/der/der_sm2_gen.c" => [ "providers/common/der" ], @@ -18111,12 +21052,24 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ecx_key.o" => [ "providers/common/include/prov" ], + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o" => [ + "providers/common/include/prov" + ], + "providers/common/der/libcommon-lib-der_ml_dsa_key.o" => [ + "providers/common/include/prov" + ], "providers/common/der/libcommon-lib-der_rsa_gen.o" => [ "providers/common/include/prov" ], "providers/common/der/libcommon-lib-der_rsa_key.o" => [ "providers/common/include/prov" ], + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o" => [ + "providers/common/include/prov" + ], + "providers/common/der/libcommon-lib-der_slh_dsa_key.o" => [ + "providers/common/include/prov" + ], "providers/common/der/libcommon-lib-der_wrap_gen.o" => [ "providers/common/include/prov" ], @@ -18147,9 +21100,15 @@ our %unified_info = ( "providers/common/include/prov/der_ecx.h" => [ "providers/common/der" ], + "providers/common/include/prov/der_ml_dsa.h" => [ + "providers/common/der" + ], "providers/common/include/prov/der_rsa.h" => [ "providers/common/der" ], + "providers/common/include/prov/der_slh_dsa.h" => [ + "providers/common/der" + ], "providers/common/include/prov/der_sm2.h" => [ "providers/common/der" ], @@ -18192,9 +21151,15 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-eddsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/libdefault-lib-rsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/libdefault-lib-sm2_sig.o" => [ "providers/common/include/prov" ], @@ -18207,12 +21172,24 @@ our %unified_info = ( "providers/implementations/signature/libfips-lib-eddsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/libfips-lib-rsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o" => [ + "providers/common/include/prov" + ], + "providers/implementations/signature/ml_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/rsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/slh_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/sm2_sig.o" => [ "providers/common/include/prov" ], @@ -18225,28 +21202,39 @@ our %unified_info = ( "crypto", "include", "providers/implementations/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" ], "providers/libdefault.a" => [ ".", "crypto", "include", "providers/implementations/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" ], "providers/libfips.a" => [ ".", "crypto", "include", "providers/implementations/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" ], "providers/liblegacy.a" => [ ".", "crypto", "include", "providers/implementations/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" + ], + "providers/libtemplate.a" => [ + "crypto", + "include", + "providers/implementations/include", + "providers/common/include", + "providers/fips/include" ], "test/aborttest" => [ "include", @@ -18315,6 +21303,14 @@ our %unified_info = ( "include", "apps/include" ], + "test/bio_addr_test" => [ + "include", + "apps/include" + ], + "test/bio_base64_test" => [ + "include", + "apps/include" + ], "test/bio_callback_test" => [ "include", "apps/include" @@ -18323,6 +21319,11 @@ our %unified_info = ( "include", "apps/include" ], + "test/bio_dgram_test" => [ + "include", + "apps/include", + "." + ], "test/bio_enc_test" => [ "include", "apps/include" @@ -18331,6 +21332,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/bio_meth_test" => [ + "include", + "apps/include" + ], "test/bio_prefix_text" => [ ".", "include", @@ -18344,6 +21349,11 @@ our %unified_info = ( "include", "apps/include" ], + "test/bio_tfo_test" => [ + "include", + "apps/include", + "." + ], "test/bioprinttest" => [ "include", "apps/include" @@ -18358,6 +21368,9 @@ our %unified_info = ( "include", "apps/include" ], + "test/build_wincrypt_test" => [ + "include" + ], "test/buildtest_c_aes" => [ "include" ], @@ -18373,6 +21386,9 @@ our %unified_info = ( "test/buildtest_c_buffer" => [ "include" ], + "test/buildtest_c_byteorder" => [ + "include" + ], "test/buildtest_c_camellia" => [ "include" ], @@ -18397,9 +21413,6 @@ our %unified_info = ( "test/buildtest_c_core_dispatch" => [ "include" ], - "test/buildtest_c_core_names" => [ - "include" - ], "test/buildtest_c_core_object" => [ "include" ], @@ -18424,6 +21437,9 @@ our %unified_info = ( "test/buildtest_c_e_os2" => [ "include" ], + "test/buildtest_c_e_ostime" => [ + "include" + ], "test/buildtest_c_ebcdic" => [ "include" ], @@ -18451,12 +21467,18 @@ our %unified_info = ( "test/buildtest_c_hmac" => [ "include" ], + "test/buildtest_c_hpke" => [ + "include" + ], "test/buildtest_c_http" => [ "include" ], "test/buildtest_c_idea" => [ "include" ], + "test/buildtest_c_indicator" => [ + "include" + ], "test/buildtest_c_kdf" => [ "include" ], @@ -18472,6 +21494,9 @@ our %unified_info = ( "test/buildtest_c_mdc2" => [ "include" ], + "test/buildtest_c_ml_kem" => [ + "include" + ], "test/buildtest_c_modes" => [ "include" ], @@ -18502,6 +21527,9 @@ our %unified_info = ( "test/buildtest_c_provider" => [ "include" ], + "test/buildtest_c_quic" => [ + "include" + ], "test/buildtest_c_rand" => [ "include" ], @@ -18544,6 +21572,9 @@ our %unified_info = ( "test/buildtest_c_symhacks" => [ "include" ], + "test/buildtest_c_thread" => [ + "include" + ], "test/buildtest_c_tls1" => [ "include" ], @@ -18559,10 +21590,24 @@ our %unified_info = ( "test/buildtest_c_whrlpool" => [ "include" ], + "test/byteorder_test" => [ + "include", + "apps/include" + ], + "test/ca_internals_test" => [ + ".", + "include", + "apps/include" + ], "test/casttest" => [ "include", "apps/include" ], + "test/cert_comp_test" => [ + "include", + "apps/include", + "." + ], "test/chacha_internal_test" => [ ".", "include", @@ -18686,6 +21731,11 @@ our %unified_info = ( "include", "apps/include" ], + "test/decoder_propq_test" => [ + ".", + "include", + "apps/include" + ], "test/defltfips_test" => [ "include", "apps/include" @@ -18701,7 +21751,8 @@ our %unified_info = ( "test/drbgtest" => [ "include", "apps/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" ], "test/dsa_no_digest_size_test" => [ "include", @@ -18744,7 +21795,9 @@ our %unified_info = ( "test/endecode_test" => [ ".", "include", - "apps/include" + "apps/include", + "providers/common/include", + "providers/implementations/include" ], "test/endecoder_legacy_test" => [ ".", @@ -18789,6 +21842,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/evp_pkey_dhkem_test" => [ + "include", + "apps/include" + ], "test/evp_pkey_dparams_test" => [ "include", "apps/include" @@ -18797,10 +21854,18 @@ our %unified_info = ( "include", "apps/include" ], + "test/evp_skey_test" => [ + "include", + "apps/include" + ], "test/evp_test" => [ "include", "apps/include" ], + "test/evp_xof_test" => [ + "include", + "apps/include" + ], "test/exdatatest" => [ "include", "apps/include" @@ -18901,22 +21966,62 @@ our %unified_info = ( ".", "include" ], + "test/helpers/json_test-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/helpers/pkcs12.o" => [ ".", "include" ], + "test/helpers/pkcs12_api_test-bin-pkcs12.o" => [ + ".", + "include" + ], "test/helpers/pkcs12_format_test-bin-pkcs12.o" => [ ".", "include" ], + "test/helpers/quic_multistream_test-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quic_newcid_test-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quic_radix_test-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quic_srt_gen_test-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quicapitest-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quicfaultstest-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/helpers/recordlentest-bin-ssltestlib.o" => [ ".", "include" ], + "test/helpers/rpktest-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/helpers/servername_test-bin-ssltestlib.o" => [ ".", "include" ], + "test/helpers/ssl_handshake_rtt_test-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/helpers/ssl_test-bin-handshake.o" => [ ".", "include" @@ -18950,6 +22055,10 @@ our %unified_info = ( ".", "include" ], + "test/helpers/tls13groupselection_test-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/hexstr_test" => [ ".", "include", @@ -18959,6 +22068,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/hpke_test" => [ + "include", + "apps/include" + ], "test/http_test" => [ "include", "apps/include" @@ -18971,6 +22084,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/json_test" => [ + "include", + "apps/include" + ], "test/keymgmt_internal_test" => [ ".", "include", @@ -18985,6 +22102,10 @@ our %unified_info = ( "apps/include", "." ], + "test/list_test" => [ + "include", + "apps/include" + ], "test/localetest" => [ "include", "apps/include" @@ -18998,10 +22119,27 @@ our %unified_info = ( "include", "apps/include" ], + "test/membio_test" => [ + "include", + "apps/include", + "." + ], "test/memleaktest" => [ "include", "apps/include" ], + "test/ml_dsa_test" => [ + "include", + "apps/include" + ], + "test/ml_kem_evp_extra_test" => [ + "include", + "apps/include" + ], + "test/ml_kem_internal_test" => [ + "include", + "apps/include" + ], "test/modes_internal_test" => [ ".", "include", @@ -19036,6 +22174,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/pairwise_fail_test" => [ + "include", + "apps/include" + ], "test/param_build_test" => [ "include", "apps/include" @@ -19069,6 +22211,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/pkcs12_api_test" => [ + "include", + "apps/include" + ], "test/pkcs12_format_test" => [ "include", "apps/include" @@ -19090,6 +22236,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/priority_queue_test" => [ + "include", + "apps/include" + ], "test/property_test" => [ ".", "include", @@ -19103,6 +22253,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/provider_default_search_path_test" => [ + "include", + "apps/include" + ], "test/provider_fallback_test" => [ "include", "apps/include" @@ -19129,6 +22283,97 @@ our %unified_info = ( "include", "apps/include" ], + "test/quic_ackm_test" => [ + "include", + "apps/include" + ], + "test/quic_cc_test" => [ + "include", + "apps/include" + ], + "test/quic_cfq_test" => [ + "include", + "apps/include" + ], + "test/quic_client_test" => [ + "include", + "apps/include" + ], + "test/quic_fc_test" => [ + "include", + "apps/include" + ], + "test/quic_fifd_test" => [ + "include", + "apps/include" + ], + "test/quic_lcidm_test" => [ + "include", + "apps/include" + ], + "test/quic_multistream_test" => [ + "include", + "apps/include" + ], + "test/quic_newcid_test" => [ + "include", + "apps/include", + "." + ], + "test/quic_qlog_test" => [ + "include", + "apps/include" + ], + "test/quic_radix_test" => [ + "include", + "apps/include" + ], + "test/quic_rcidm_test" => [ + "include", + "apps/include" + ], + "test/quic_record_test" => [ + "include", + "apps/include" + ], + "test/quic_srt_gen_test" => [ + "include", + "apps/include", + "." + ], + "test/quic_srtm_test" => [ + "include", + "apps/include" + ], + "test/quic_stream_test" => [ + "include", + "apps/include" + ], + "test/quic_tserver_test" => [ + "include", + "apps/include" + ], + "test/quic_txp_test" => [ + "include", + "apps/include" + ], + "test/quic_txpim_test" => [ + "include", + "apps/include" + ], + "test/quic_wire_test" => [ + "include", + "apps/include" + ], + "test/quicapitest" => [ + "include", + "apps/include" + ], + "test/quicfaultstest" => [ + "include", + "apps/include", + "." + ], "test/rand_status_test" => [ "include", "apps/include" @@ -19149,14 +22394,20 @@ our %unified_info = ( "include", "apps/include" ], - "test/rdrand_sanitytest" => [ + "test/rdcpu_sanitytest" => [ "include", - "apps/include" + "apps/include", + "crypto" ], "test/recordlentest" => [ "include", "apps/include" ], + "test/rpktest" => [ + "include", + "apps/include", + "." + ], "test/rsa_complex" => [ "include", "apps/include" @@ -19175,6 +22426,15 @@ our %unified_info = ( "include", "apps/include" ], + "test/rsa_x931_test" => [ + ".", + "include", + "apps/include" + ], + "test/safe_math_test" => [ + "include", + "apps/include" + ], "test/sanitytest" => [ "include", "apps/include" @@ -19196,6 +22456,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/slh_dsa_test" => [ + "include", + "apps/include" + ], "test/sm2_internal_test" => [ "include", "apps/include" @@ -19226,6 +22490,11 @@ our %unified_info = ( "include", "apps/include" ], + "test/ssl_handshake_rtt_test" => [ + "include", + "apps/include", + "." + ], "test/ssl_old_test" => [ ".", "include", @@ -19242,6 +22511,7 @@ our %unified_info = ( "test/sslapitest" => [ "include", "apps/include", + "providers/common/include", "." ], "test/sslbuffertest" => [ @@ -19256,6 +22526,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/strtoultest" => [ + "include", + "apps/include" + ], "test/sysdefaulttest" => [ "include", "apps/include" @@ -19264,7 +22538,13 @@ our %unified_info = ( "include", "apps/include" ], + "test/threadpool_test" => [ + ".", + "include", + "apps/include" + ], "test/threadstest" => [ + ".", "include", "apps/include" ], @@ -19276,6 +22556,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/time_test" => [ + "include", + "apps/include" + ], "test/tls13ccstest" => [ "include", "apps/include" @@ -19285,6 +22569,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/tls13groupselection_test" => [ + "include", + "apps/include" + ], "test/trace_api_test" => [ ".", "include", @@ -19323,6 +22611,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/x509_acert_test" => [ + "include", + "apps/include" + ], "test/x509_check_cert_pkey_test" => [ "include", "apps/include" @@ -19336,6 +22628,18 @@ our %unified_info = ( "include", "apps/include" ], + "test/x509_load_cert_file_test" => [ + "include", + "apps/include" + ], + "test/x509_req_test" => [ + "include", + "apps/include" + ], + "test/x509_test" => [ + "include", + "apps/include" + ], "test/x509_time_test" => [ "include", "apps/include" @@ -19357,6 +22661,7 @@ our %unified_info = ( "providers/libdefault.a", "providers/libfips.a", "providers/liblegacy.a", + "providers/libtemplate.a", "test/libtestutil.a" ], "mandocs" => { @@ -19409,6 +22714,7 @@ our %unified_info = ( "doc/man/man1/openssl-s_server.1", "doc/man/man1/openssl-s_time.1", "doc/man/man1/openssl-sess_id.1", + "doc/man/man1/openssl-skeyutl.1", "doc/man/man1/openssl-smime.1", "doc/man/man1/openssl-speed.1", "doc/man/man1/openssl-spkac.1", @@ -19458,6 +22764,7 @@ our %unified_info = ( "doc/man/man3/BIO_find_type.3", "doc/man/man3/BIO_get_data.3", "doc/man/man3/BIO_get_ex_new_index.3", + "doc/man/man3/BIO_get_rpoll_descriptor.3", "doc/man/man3/BIO_meth_new.3", "doc/man/man3/BIO_new.3", "doc/man/man3/BIO_new_CMS.3", @@ -19470,11 +22777,13 @@ our %unified_info = ( "doc/man/man3/BIO_s_connect.3", "doc/man/man3/BIO_s_core.3", "doc/man/man3/BIO_s_datagram.3", + "doc/man/man3/BIO_s_dgram_pair.3", "doc/man/man3/BIO_s_fd.3", "doc/man/man3/BIO_s_file.3", "doc/man/man3/BIO_s_mem.3", "doc/man/man3/BIO_s_null.3", "doc/man/man3/BIO_s_socket.3", + "doc/man/man3/BIO_sendmmsg.3", "doc/man/man3/BIO_set_callback.3", "doc/man/man3/BIO_should_retry.3", "doc/man/man3/BIO_socket_wait.3", @@ -19499,6 +22808,7 @@ our %unified_info = ( "doc/man/man3/BN_swap.3", "doc/man/man3/BN_zero.3", "doc/man/man3/BUF_MEM_new.3", + "doc/man/man3/CMAC_CTX.3", "doc/man/man3/CMS_EncryptedData_decrypt.3", "doc/man/man3/CMS_EncryptedData_encrypt.3", "doc/man/man3/CMS_EnvelopedData_create.3", @@ -19521,6 +22831,7 @@ our %unified_info = ( "doc/man/man3/CMS_uncompress.3", "doc/man/man3/CMS_verify.3", "doc/man/man3/CMS_verify_receipt.3", + "doc/man/man3/COMP_CTX_new.3", "doc/man/man3/CONF_modules_free.3", "doc/man/man3/CONF_modules_load_file.3", "doc/man/man3/CRYPTO_THREAD_run_once.3", @@ -19554,6 +22865,8 @@ our %unified_info = ( "doc/man/man3/DSA_size.3", "doc/man/man3/DTLS_get_data_mtu.3", "doc/man/man3/DTLS_set_timer_cb.3", + "doc/man/man3/DTLSv1_get_timeout.3", + "doc/man/man3/DTLSv1_handle_timeout.3", "doc/man/man3/DTLSv1_listen.3", "doc/man/man3/ECDSA_SIG_new.3", "doc/man/man3/ECDSA_sign.3", @@ -19600,6 +22913,7 @@ our %unified_info = ( "doc/man/man3/EVP_PKEY_CTX_ctrl.3", "doc/man/man3/EVP_PKEY_CTX_get0_libctx.3", "doc/man/man3/EVP_PKEY_CTX_get0_pkey.3", + "doc/man/man3/EVP_PKEY_CTX_get_algor.3", "doc/man/man3/EVP_PKEY_CTX_new.3", "doc/man/man3/EVP_PKEY_CTX_set1_pbe_pass.3", "doc/man/man3/EVP_PKEY_CTX_set_hkdf_md.3", @@ -19639,6 +22953,8 @@ our %unified_info = ( "doc/man/man3/EVP_PKEY_verify_recover.3", "doc/man/man3/EVP_RAND.3", "doc/man/man3/EVP_SIGNATURE.3", + "doc/man/man3/EVP_SKEY.3", + "doc/man/man3/EVP_SKEYMGMT.3", "doc/man/man3/EVP_SealInit.3", "doc/man/man3/EVP_SignInit.3", "doc/man/man3/EVP_VerifyInit.3", @@ -19668,6 +22984,7 @@ our %unified_info = ( "doc/man/man3/EVP_sm3.3", "doc/man/man3/EVP_sm4_cbc.3", "doc/man/man3/EVP_whirlpool.3", + "doc/man/man3/GENERAL_NAME.3", "doc/man/man3/HMAC.3", "doc/man/man3/MD5.3", "doc/man/man3/MDC2_Init.3", @@ -19692,14 +23009,18 @@ our %unified_info = ( "doc/man/man3/OPENSSL_init_ssl.3", "doc/man/man3/OPENSSL_instrument_bus.3", "doc/man/man3/OPENSSL_load_builtin_modules.3", + "doc/man/man3/OPENSSL_load_u16_le.3", "doc/man/man3/OPENSSL_malloc.3", + "doc/man/man3/OPENSSL_riscvcap.3", "doc/man/man3/OPENSSL_s390xcap.3", "doc/man/man3/OPENSSL_secure_malloc.3", "doc/man/man3/OPENSSL_strcasecmp.3", "doc/man/man3/OSSL_ALGORITHM.3", "doc/man/man3/OSSL_CALLBACK.3", + "doc/man/man3/OSSL_CMP_ATAV_set0.3", "doc/man/man3/OSSL_CMP_CTX_new.3", "doc/man/man3/OSSL_CMP_HDR_get0_transactionID.3", + "doc/man/man3/OSSL_CMP_ITAV_new_caCerts.3", "doc/man/man3/OSSL_CMP_ITAV_set0.3", "doc/man/man3/OSSL_CMP_MSG_get0_header.3", "doc/man/man3/OSSL_CMP_MSG_http_perform.3", @@ -19723,18 +23044,27 @@ our %unified_info = ( "doc/man/man3/OSSL_ENCODER_CTX.3", "doc/man/man3/OSSL_ENCODER_CTX_new_for_pkey.3", "doc/man/man3/OSSL_ENCODER_to_bio.3", + "doc/man/man3/OSSL_ERR_STATE_save.3", "doc/man/man3/OSSL_ESS_check_signing_certs.3", + "doc/man/man3/OSSL_GENERAL_NAMES_print.3", + "doc/man/man3/OSSL_HPKE_CTX_new.3", "doc/man/man3/OSSL_HTTP_REQ_CTX.3", "doc/man/man3/OSSL_HTTP_parse_url.3", "doc/man/man3/OSSL_HTTP_transfer.3", + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX.3", + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX_print.3", + "doc/man/man3/OSSL_INDICATOR_set_callback.3", "doc/man/man3/OSSL_ITEM.3", "doc/man/man3/OSSL_LIB_CTX.3", + "doc/man/man3/OSSL_LIB_CTX_set_conf_diagnostics.3", "doc/man/man3/OSSL_PARAM.3", "doc/man/man3/OSSL_PARAM_BLD.3", "doc/man/man3/OSSL_PARAM_allocate_from_text.3", "doc/man/man3/OSSL_PARAM_dup.3", "doc/man/man3/OSSL_PARAM_int.3", + "doc/man/man3/OSSL_PARAM_print_to_bio.3", "doc/man/man3/OSSL_PROVIDER.3", + "doc/man/man3/OSSL_QUIC_client_method.3", "doc/man/man3/OSSL_SELF_TEST_new.3", "doc/man/man3/OSSL_SELF_TEST_set_callback.3", "doc/man/man3/OSSL_STORE_INFO.3", @@ -19743,11 +23073,13 @@ our %unified_info = ( "doc/man/man3/OSSL_STORE_attach.3", "doc/man/man3/OSSL_STORE_expect.3", "doc/man/man3/OSSL_STORE_open.3", + "doc/man/man3/OSSL_sleep.3", "doc/man/man3/OSSL_trace_enabled.3", "doc/man/man3/OSSL_trace_get_category_num.3", "doc/man/man3/OSSL_trace_set_channel.3", "doc/man/man3/OpenSSL_add_all_algorithms.3", "doc/man/man3/OpenSSL_version.3", + "doc/man/man3/PBMAC1_get1_pbkdf2_param.3", "doc/man/man3/PEM_X509_INFO_read_bio_ex.3", "doc/man/man3/PEM_bytes_read_bio.3", "doc/man/man3/PEM_read.3", @@ -19760,6 +23092,7 @@ our %unified_info = ( "doc/man/man3/PKCS12_SAFEBAG_create_cert.3", "doc/man/man3/PKCS12_SAFEBAG_get0_attrs.3", "doc/man/man3/PKCS12_SAFEBAG_get1_cert.3", + "doc/man/man3/PKCS12_SAFEBAG_set0_attrs.3", "doc/man/man3/PKCS12_add1_attr_by_NID.3", "doc/man/man3/PKCS12_add_CSPName_asc.3", "doc/man/man3/PKCS12_add_cert.3", @@ -19851,6 +23184,7 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_sess_set_get_cb.3", "doc/man/man3/SSL_CTX_sessions.3", "doc/man/man3/SSL_CTX_set0_CA_list.3", + "doc/man/man3/SSL_CTX_set1_cert_comp_preference.3", "doc/man/man3/SSL_CTX_set1_curves.3", "doc/man/man3/SSL_CTX_set1_sigalgs.3", "doc/man/man3/SSL_CTX_set1_verify_cert_store.3", @@ -19864,6 +23198,7 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_ct_validation_callback.3", "doc/man/man3/SSL_CTX_set_ctlog_list_file.3", "doc/man/man3/SSL_CTX_set_default_passwd_cb.3", + "doc/man/man3/SSL_CTX_set_domain_flags.3", "doc/man/man3/SSL_CTX_set_generate_session_id.3", "doc/man/man3/SSL_CTX_set_info_callback.3", "doc/man/man3/SSL_CTX_set_keylog_callback.3", @@ -19871,6 +23206,7 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_min_proto_version.3", "doc/man/man3/SSL_CTX_set_mode.3", "doc/man/man3/SSL_CTX_set_msg_callback.3", + "doc/man/man3/SSL_CTX_set_new_pending_conn_cb.3", "doc/man/man3/SSL_CTX_set_num_tickets.3", "doc/man/man3/SSL_CTX_set_options.3", "doc/man/man3/SSL_CTX_set_psk_client_callback.3", @@ -19909,6 +23245,7 @@ our %unified_info = ( "doc/man/man3/SSL_SESSION_print.3", "doc/man/man3/SSL_SESSION_set1_id.3", "doc/man/man3/SSL_accept.3", + "doc/man/man3/SSL_accept_stream.3", "doc/man/man3/SSL_alert_type_string.3", "doc/man/man3/SSL_alloc_buffers.3", "doc/man/man3/SSL_check_chain.3", @@ -19918,59 +23255,90 @@ our %unified_info = ( "doc/man/man3/SSL_export_keying_material.3", "doc/man/man3/SSL_extension_supported.3", "doc/man/man3/SSL_free.3", + "doc/man/man3/SSL_get0_connection.3", + "doc/man/man3/SSL_get0_group_name.3", + "doc/man/man3/SSL_get0_peer_rpk.3", "doc/man/man3/SSL_get0_peer_scts.3", + "doc/man/man3/SSL_get1_builtin_sigalgs.3", "doc/man/man3/SSL_get_SSL_CTX.3", "doc/man/man3/SSL_get_all_async_fds.3", "doc/man/man3/SSL_get_certificate.3", "doc/man/man3/SSL_get_ciphers.3", "doc/man/man3/SSL_get_client_random.3", + "doc/man/man3/SSL_get_conn_close_info.3", "doc/man/man3/SSL_get_current_cipher.3", "doc/man/man3/SSL_get_default_timeout.3", "doc/man/man3/SSL_get_error.3", + "doc/man/man3/SSL_get_event_timeout.3", "doc/man/man3/SSL_get_extms_support.3", "doc/man/man3/SSL_get_fd.3", + "doc/man/man3/SSL_get_handshake_rtt.3", "doc/man/man3/SSL_get_peer_cert_chain.3", "doc/man/man3/SSL_get_peer_certificate.3", "doc/man/man3/SSL_get_peer_signature_nid.3", "doc/man/man3/SSL_get_peer_tmp_key.3", "doc/man/man3/SSL_get_psk_identity.3", "doc/man/man3/SSL_get_rbio.3", + "doc/man/man3/SSL_get_rpoll_descriptor.3", "doc/man/man3/SSL_get_session.3", "doc/man/man3/SSL_get_shared_sigalgs.3", + "doc/man/man3/SSL_get_stream_id.3", + "doc/man/man3/SSL_get_stream_read_state.3", + "doc/man/man3/SSL_get_value_uint.3", "doc/man/man3/SSL_get_verify_result.3", "doc/man/man3/SSL_get_version.3", "doc/man/man3/SSL_group_to_name.3", + "doc/man/man3/SSL_handle_events.3", "doc/man/man3/SSL_in_init.3", + "doc/man/man3/SSL_inject_net_dgram.3", "doc/man/man3/SSL_key_update.3", "doc/man/man3/SSL_library_init.3", "doc/man/man3/SSL_load_client_CA_file.3", "doc/man/man3/SSL_new.3", + "doc/man/man3/SSL_new_domain.3", + "doc/man/man3/SSL_new_listener.3", + "doc/man/man3/SSL_new_stream.3", "doc/man/man3/SSL_pending.3", + "doc/man/man3/SSL_poll.3", "doc/man/man3/SSL_read.3", "doc/man/man3/SSL_read_early_data.3", "doc/man/man3/SSL_rstate_string.3", "doc/man/man3/SSL_session_reused.3", "doc/man/man3/SSL_set1_host.3", + "doc/man/man3/SSL_set1_initial_peer_addr.3", + "doc/man/man3/SSL_set1_server_cert_type.3", "doc/man/man3/SSL_set_async_callback.3", "doc/man/man3/SSL_set_bio.3", + "doc/man/man3/SSL_set_blocking_mode.3", "doc/man/man3/SSL_set_connect_state.3", + "doc/man/man3/SSL_set_default_stream_mode.3", "doc/man/man3/SSL_set_fd.3", + "doc/man/man3/SSL_set_incoming_stream_policy.3", + "doc/man/man3/SSL_set_quic_tls_cbs.3", "doc/man/man3/SSL_set_retry_verify.3", "doc/man/man3/SSL_set_session.3", + "doc/man/man3/SSL_set_session_secret_cb.3", "doc/man/man3/SSL_set_shutdown.3", "doc/man/man3/SSL_set_verify_result.3", "doc/man/man3/SSL_shutdown.3", "doc/man/man3/SSL_state_string.3", + "doc/man/man3/SSL_stream_conclude.3", + "doc/man/man3/SSL_stream_reset.3", "doc/man/man3/SSL_want.3", "doc/man/man3/SSL_write.3", "doc/man/man3/TS_RESP_CTX_new.3", - "doc/man/man3/TS_VERIFY_CTX_set_certs.3", + "doc/man/man3/TS_VERIFY_CTX.3", "doc/man/man3/UI_STRING.3", "doc/man/man3/UI_UTIL_read_pw.3", "doc/man/man3/UI_create_method.3", "doc/man/man3/UI_new.3", "doc/man/man3/X509V3_get_d2i.3", "doc/man/man3/X509V3_set_ctx.3", + "doc/man/man3/X509_ACERT_add1_attr.3", + "doc/man/man3/X509_ACERT_add_attr_nconf.3", + "doc/man/man3/X509_ACERT_get0_holder_baseCertId.3", + "doc/man/man3/X509_ACERT_get_attr.3", + "doc/man/man3/X509_ACERT_print_ex.3", "doc/man/man3/X509_ALGOR_dup.3", "doc/man/man3/X509_ATTRIBUTE.3", "doc/man/man3/X509_CRL_get0_by_serial.3", @@ -19987,6 +23355,7 @@ our %unified_info = ( "doc/man/man3/X509_REQ_get_attr.3", "doc/man/man3/X509_REQ_get_extensions.3", "doc/man/man3/X509_SIG_get0.3", + "doc/man/man3/X509_STORE_CTX_get_by_subject.3", "doc/man/man3/X509_STORE_CTX_get_error.3", "doc/man/man3/X509_STORE_CTX_new.3", "doc/man/man3/X509_STORE_CTX_set_verify_cb.3", @@ -20009,6 +23378,7 @@ our %unified_info = ( "doc/man/man3/X509_get0_notBefore.3", "doc/man/man3/X509_get0_signature.3", "doc/man/man3/X509_get0_uids.3", + "doc/man/man3/X509_get_default_cert_file.3", "doc/man/man3/X509_get_extension_flags.3", "doc/man/man3/X509_get_pubkey.3", "doc/man/man3/X509_get_serialNumber.3", @@ -20054,12 +23424,15 @@ our %unified_info = ( "doc/man/man7/EVP_CIPHER-RC5.7", "doc/man/man7/EVP_CIPHER-SEED.7", "doc/man/man7/EVP_CIPHER-SM4.7", + "doc/man/man7/EVP_KDF-ARGON2.7", "doc/man/man7/EVP_KDF-HKDF.7", + "doc/man/man7/EVP_KDF-HMAC-DRBG.7", "doc/man/man7/EVP_KDF-KB.7", "doc/man/man7/EVP_KDF-KRB5KDF.7", "doc/man/man7/EVP_KDF-PBKDF1.7", "doc/man/man7/EVP_KDF-PBKDF2.7", "doc/man/man7/EVP_KDF-PKCS12KDF.7", + "doc/man/man7/EVP_KDF-PVKKDF.7", "doc/man/man7/EVP_KDF-SCRYPT.7", "doc/man/man7/EVP_KDF-SS.7", "doc/man/man7/EVP_KDF-SSHKDF.7", @@ -20068,7 +23441,10 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-X942-ASN1.7", "doc/man/man7/EVP_KDF-X942-CONCAT.7", "doc/man/man7/EVP_KDF-X963.7", + "doc/man/man7/EVP_KEM-EC.7", + "doc/man/man7/EVP_KEM-ML-KEM.7", "doc/man/man7/EVP_KEM-RSA.7", + "doc/man/man7/EVP_KEM-X25519.7", "doc/man/man7/EVP_KEYEXCH-DH.7", "doc/man/man7/EVP_KEYEXCH-ECDH.7", "doc/man/man7/EVP_KEYEXCH-X25519.7", @@ -20080,6 +23456,7 @@ our %unified_info = ( "doc/man/man7/EVP_MAC-Poly1305.7", "doc/man/man7/EVP_MAC-Siphash.7", "doc/man/man7/EVP_MD-BLAKE2.7", + "doc/man/man7/EVP_MD-KECCAK.7", "doc/man/man7/EVP_MD-MD2.7", "doc/man/man7/EVP_MD-MD4.7", "doc/man/man7/EVP_MD-MD5-SHA1.7", @@ -20099,12 +23476,17 @@ our %unified_info = ( "doc/man/man7/EVP_PKEY-EC.7", "doc/man/man7/EVP_PKEY-FFC.7", "doc/man/man7/EVP_PKEY-HMAC.7", + "doc/man/man7/EVP_PKEY-ML-DSA.7", + "doc/man/man7/EVP_PKEY-ML-KEM.7", "doc/man/man7/EVP_PKEY-RSA.7", + "doc/man/man7/EVP_PKEY-SLH-DSA.7", "doc/man/man7/EVP_PKEY-SM2.7", "doc/man/man7/EVP_PKEY-X25519.7", + "doc/man/man7/EVP_RAND-CRNG-TEST.7", "doc/man/man7/EVP_RAND-CTR-DRBG.7", "doc/man/man7/EVP_RAND-HASH-DRBG.7", "doc/man/man7/EVP_RAND-HMAC-DRBG.7", + "doc/man/man7/EVP_RAND-JITTER.7", "doc/man/man7/EVP_RAND-SEED-SRC.7", "doc/man/man7/EVP_RAND-TEST-RAND.7", "doc/man/man7/EVP_RAND.7", @@ -20112,17 +23494,19 @@ our %unified_info = ( "doc/man/man7/EVP_SIGNATURE-ECDSA.7", "doc/man/man7/EVP_SIGNATURE-ED25519.7", "doc/man/man7/EVP_SIGNATURE-HMAC.7", + "doc/man/man7/EVP_SIGNATURE-ML-DSA.7", "doc/man/man7/EVP_SIGNATURE-RSA.7", + "doc/man/man7/EVP_SIGNATURE-SLH-DSA.7", "doc/man/man7/OSSL_PROVIDER-FIPS.7", "doc/man/man7/OSSL_PROVIDER-base.7", "doc/man/man7/OSSL_PROVIDER-default.7", "doc/man/man7/OSSL_PROVIDER-legacy.7", "doc/man/man7/OSSL_PROVIDER-null.7", + "doc/man/man7/OSSL_STORE-winstore.7", "doc/man/man7/RAND.7", "doc/man/man7/RSA-PSS.7", "doc/man/man7/X25519.7", "doc/man/man7/bio.7", - "doc/man/man7/crypto.7", "doc/man/man7/ct.7", "doc/man/man7/des_modes.7", "doc/man/man7/evp.7", @@ -20133,14 +23517,31 @@ our %unified_info = ( "doc/man/man7/life_cycle-mac.7", "doc/man/man7/life_cycle-pkey.7", "doc/man/man7/life_cycle-rand.7", - "doc/man/man7/migration_guide.7", "doc/man/man7/openssl-core.h.7", "doc/man/man7/openssl-core_dispatch.h.7", "doc/man/man7/openssl-core_names.h.7", "doc/man/man7/openssl-env.7", "doc/man/man7/openssl-glossary.7", + "doc/man/man7/openssl-qlog.7", + "doc/man/man7/openssl-quic-concurrency.7", + "doc/man/man7/openssl-quic.7", "doc/man/man7/openssl-threads.7", "doc/man/man7/openssl_user_macros.7", + "doc/man/man7/ossl-guide-introduction.7", + "doc/man/man7/ossl-guide-libcrypto-introduction.7", + "doc/man/man7/ossl-guide-libraries-introduction.7", + "doc/man/man7/ossl-guide-libssl-introduction.7", + "doc/man/man7/ossl-guide-migration.7", + "doc/man/man7/ossl-guide-quic-client-block.7", + "doc/man/man7/ossl-guide-quic-client-non-block.7", + "doc/man/man7/ossl-guide-quic-introduction.7", + "doc/man/man7/ossl-guide-quic-multi-stream.7", + "doc/man/man7/ossl-guide-quic-server-block.7", + "doc/man/man7/ossl-guide-quic-server-non-block.7", + "doc/man/man7/ossl-guide-tls-client-block.7", + "doc/man/man7/ossl-guide-tls-client-non-block.7", + "doc/man/man7/ossl-guide-tls-introduction.7", + "doc/man/man7/ossl-guide-tls-server-block.7", "doc/man/man7/ossl_store-file.7", "doc/man/man7/ossl_store.7", "doc/man/man7/passphrase-encoding.7", @@ -20159,10 +23560,10 @@ our %unified_info = ( "doc/man/man7/provider-object.7", "doc/man/man7/provider-rand.7", "doc/man/man7/provider-signature.7", + "doc/man/man7/provider-skeymgmt.7", "doc/man/man7/provider-storemgmt.7", "doc/man/man7/provider.7", "doc/man/man7/proxy-certificates.7", - "doc/man/man7/ssl.7", "doc/man/man7/x509.7" ] }, @@ -20174,6 +23575,7 @@ our %unified_info = ( ], "programs" => [ "apps/openssl", + "fuzz/acert-test", "fuzz/asn1-test", "fuzz/asn1parse-test", "fuzz/bignum-test", @@ -20184,7 +23586,24 @@ our %unified_info = ( "fuzz/conf-test", "fuzz/crl-test", "fuzz/ct-test", + "fuzz/decoder-test", + "fuzz/dtlsclient-test", + "fuzz/dtlsserver-test", + "fuzz/hashtable-test", + "fuzz/ml-dsa-test", + "fuzz/ml-kem-test", + "fuzz/pem-test", + "fuzz/provider-test", + "fuzz/punycode-test", + "fuzz/quic-client-test", + "fuzz/quic-lcidm-test", + "fuzz/quic-rcidm-test", + "fuzz/quic-server-test", + "fuzz/quic-srtm-test", "fuzz/server-test", + "fuzz/slh-dsa-test", + "fuzz/smime-test", + "fuzz/v3name-test", "fuzz/x509-test", "test/aborttest", "test/acvp_test", @@ -20202,21 +23621,28 @@ our %unified_info = ( "test/asynctest", "test/bad_dtls_test", "test/bftest", + "test/bio_addr_test", + "test/bio_base64_test", "test/bio_callback_test", "test/bio_core_test", + "test/bio_dgram_test", "test/bio_enc_test", "test/bio_memleak_test", + "test/bio_meth_test", "test/bio_prefix_text", "test/bio_pw_callback_test", "test/bio_readbuffer_test", + "test/bio_tfo_test", "test/bioprinttest", "test/bn_internal_test", "test/bntest", + "test/build_wincrypt_test", "test/buildtest_c_aes", "test/buildtest_c_async", "test/buildtest_c_blowfish", "test/buildtest_c_bn", "test/buildtest_c_buffer", + "test/buildtest_c_byteorder", "test/buildtest_c_camellia", "test/buildtest_c_cast", "test/buildtest_c_cmac", @@ -20225,7 +23651,6 @@ our %unified_info = ( "test/buildtest_c_conftypes", "test/buildtest_c_core", "test/buildtest_c_core_dispatch", - "test/buildtest_c_core_names", "test/buildtest_c_core_object", "test/buildtest_c_cryptoerr_legacy", "test/buildtest_c_decoder", @@ -20234,6 +23659,7 @@ our %unified_info = ( "test/buildtest_c_dsa", "test/buildtest_c_dtls1", "test/buildtest_c_e_os2", + "test/buildtest_c_e_ostime", "test/buildtest_c_ebcdic", "test/buildtest_c_ec", "test/buildtest_c_ecdh", @@ -20243,13 +23669,16 @@ our %unified_info = ( "test/buildtest_c_evp", "test/buildtest_c_fips_names", "test/buildtest_c_hmac", + "test/buildtest_c_hpke", "test/buildtest_c_http", "test/buildtest_c_idea", + "test/buildtest_c_indicator", "test/buildtest_c_kdf", "test/buildtest_c_macros", "test/buildtest_c_md4", "test/buildtest_c_md5", "test/buildtest_c_mdc2", + "test/buildtest_c_ml_kem", "test/buildtest_c_modes", "test/buildtest_c_obj_mac", "test/buildtest_c_objects", @@ -20260,6 +23689,7 @@ our %unified_info = ( "test/buildtest_c_pem2", "test/buildtest_c_prov_ssl", "test/buildtest_c_provider", + "test/buildtest_c_quic", "test/buildtest_c_rand", "test/buildtest_c_rc2", "test/buildtest_c_rc4", @@ -20274,11 +23704,14 @@ our %unified_info = ( "test/buildtest_c_stack", "test/buildtest_c_store", "test/buildtest_c_symhacks", + "test/buildtest_c_thread", "test/buildtest_c_tls1", "test/buildtest_c_ts", "test/buildtest_c_txt_db", "test/buildtest_c_types", "test/buildtest_c_whrlpool", + "test/byteorder_test", + "test/ca_internals_test", "test/casttest", "test/chacha_internal_test", "test/cipher_overhead_test", @@ -20307,6 +23740,7 @@ our %unified_info = ( "test/curve448_internal_test", "test/d2i_test", "test/danetest", + "test/decoder_propq_test", "test/defltfips_test", "test/destest", "test/dhtest", @@ -20331,9 +23765,12 @@ our %unified_info = ( "test/evp_kdf_test", "test/evp_libctx_test", "test/evp_pkey_ctx_new_from_name", + "test/evp_pkey_dhkem_test", "test/evp_pkey_dparams_test", "test/evp_pkey_provided_test", + "test/evp_skey_test", "test/evp_test", + "test/evp_xof_test", "test/exdatatest", "test/exptest", "test/ext_internal_test", @@ -20343,21 +23780,29 @@ our %unified_info = ( "test/gmdifftest", "test/hexstr_test", "test/hmactest", + "test/hpke_test", "test/http_test", "test/ideatest", "test/igetest", + "test/json_test", "test/keymgmt_internal_test", "test/lhash_test", + "test/list_test", "test/localetest", "test/mdc2_internal_test", "test/mdc2test", + "test/membio_test", "test/memleaktest", + "test/ml_dsa_test", + "test/ml_kem_evp_extra_test", + "test/ml_kem_internal_test", "test/modes_internal_test", "test/namemap_internal_test", "test/nodefltctxtest", "test/ocspapitest", "test/ossl_store_test", "test/packettest", + "test/pairwise_fail_test", "test/param_build_test", "test/params_api_test", "test/params_conversion_test", @@ -20366,36 +23811,65 @@ our %unified_info = ( "test/pbetest", "test/pem_read_depr_test", "test/pemtest", + "test/pkcs12_api_test", "test/pkcs12_format_test", "test/pkcs7_test", "test/pkey_meth_kdf_test", "test/pkey_meth_test", "test/poly1305_internal_test", + "test/priority_queue_test", "test/property_test", "test/prov_config_test", "test/provfetchtest", + "test/provider_default_search_path_test", "test/provider_fallback_test", "test/provider_internal_test", "test/provider_pkey_test", "test/provider_status_test", "test/provider_test", "test/punycode_test", + "test/quic_ackm_test", + "test/quic_cc_test", + "test/quic_cfq_test", + "test/quic_client_test", + "test/quic_fc_test", + "test/quic_fifd_test", + "test/quic_lcidm_test", + "test/quic_multistream_test", + "test/quic_newcid_test", + "test/quic_qlog_test", + "test/quic_radix_test", + "test/quic_rcidm_test", + "test/quic_record_test", + "test/quic_srt_gen_test", + "test/quic_srtm_test", + "test/quic_stream_test", + "test/quic_tserver_test", + "test/quic_txp_test", + "test/quic_txpim_test", + "test/quic_wire_test", + "test/quicapitest", + "test/quicfaultstest", "test/rand_status_test", "test/rand_test", "test/rc2test", "test/rc4test", "test/rc5test", - "test/rdrand_sanitytest", + "test/rdcpu_sanitytest", "test/recordlentest", + "test/rpktest", "test/rsa_complex", "test/rsa_mp_test", "test/rsa_sp800_56b_test", "test/rsa_test", + "test/rsa_x931_test", + "test/safe_math_test", "test/sanitytest", "test/secmemtest", "test/servername_test", "test/sha_test", "test/siphash_internal_test", + "test/slh_dsa_test", "test/sm2_internal_test", "test/sm3_internal_test", "test/sm4_internal_test", @@ -20403,6 +23877,7 @@ our %unified_info = ( "test/srptest", "test/ssl_cert_table_internal_test", "test/ssl_ctx_test", + "test/ssl_handshake_rtt_test", "test/ssl_old_test", "test/ssl_test", "test/ssl_test_ctx_test", @@ -20410,13 +23885,17 @@ our %unified_info = ( "test/sslbuffertest", "test/sslcorrupttest", "test/stack_test", + "test/strtoultest", "test/sysdefaulttest", "test/test_test", + "test/threadpool_test", "test/threadstest", "test/threadstest_fips", "test/time_offset_test", + "test/time_test", "test/tls13ccstest", "test/tls13encryptiontest", + "test/tls13groupselection_test", "test/trace_api_test", "test/uitest", "test/upcallstest", @@ -20426,9 +23905,13 @@ our %unified_info = ( "test/verify_extra_test", "test/versions", "test/wpackettest", + "test/x509_acert_test", "test/x509_check_cert_pkey_test", "test/x509_dup_cert_test", "test/x509_internal_test", + "test/x509_load_cert_file_test", + "test/x509_req_test", + "test/x509_test", "test/x509_time_test", "test/x509aux" ], @@ -20444,6 +23927,33 @@ our %unified_info = ( "apps/CA.pl" => [ "apps/CA.pl.in" ], + "apps/ca_internals_test-bin-ca.o" => [ + "apps/ca.c" + ], + "apps/lib/ca_internals_test-bin-app_libctx.o" => [ + "apps/lib/app_libctx.c" + ], + "apps/lib/ca_internals_test-bin-app_provider.o" => [ + "apps/lib/app_provider.c" + ], + "apps/lib/ca_internals_test-bin-app_rand.o" => [ + "apps/lib/app_rand.c" + ], + "apps/lib/ca_internals_test-bin-app_x509.o" => [ + "apps/lib/app_x509.c" + ], + "apps/lib/ca_internals_test-bin-apps.o" => [ + "apps/lib/apps.c" + ], + "apps/lib/ca_internals_test-bin-apps_ui.o" => [ + "apps/lib/apps_ui.c" + ], + "apps/lib/ca_internals_test-bin-engine.o" => [ + "apps/lib/engine.c" + ], + "apps/lib/ca_internals_test-bin-fmt.o" => [ + "apps/lib/fmt.c" + ], "apps/lib/cmp_client_test-bin-cmp_mock_srv.o" => [ "apps/lib/cmp_mock_srv.c" ], @@ -20465,6 +23975,9 @@ our %unified_info = ( "apps/lib/libapps-lib-apps.o" => [ "apps/lib/apps.c" ], + "apps/lib/libapps-lib-apps_opt_printf.o" => [ + "apps/lib/apps_opt_printf.c" + ], "apps/lib/libapps-lib-apps_ui.o" => [ "apps/lib/apps_ui.c" ], @@ -20483,6 +23996,9 @@ our %unified_info = ( "apps/lib/libapps-lib-http_server.o" => [ "apps/lib/http_server.c" ], + "apps/lib/libapps-lib-log.o" => [ + "apps/lib/log.c" + ], "apps/lib/libapps-lib-names.o" => [ "apps/lib/names.c" ], @@ -20514,12 +24030,14 @@ our %unified_info = ( "apps/lib/libapps-lib-app_rand.o", "apps/lib/libapps-lib-app_x509.o", "apps/lib/libapps-lib-apps.o", + "apps/lib/libapps-lib-apps_opt_printf.o", "apps/lib/libapps-lib-apps_ui.o", "apps/lib/libapps-lib-columns.o", "apps/lib/libapps-lib-engine.o", "apps/lib/libapps-lib-engine_loader.o", "apps/lib/libapps-lib-fmt.o", "apps/lib/libapps-lib-http_server.o", + "apps/lib/libapps-lib-log.o", "apps/lib/libapps-lib-names.o", "apps/lib/libapps-lib-opt.o", "apps/lib/libapps-lib-s_cb.o", @@ -20573,6 +24091,7 @@ our %unified_info = ( "apps/openssl-bin-s_server.o", "apps/openssl-bin-s_time.o", "apps/openssl-bin-sess_id.o", + "apps/openssl-bin-skeyutl.o", "apps/openssl-bin-smime.o", "apps/openssl-bin-speed.o", "apps/openssl-bin-spkac.o", @@ -20718,6 +24237,9 @@ our %unified_info = ( "apps/openssl-bin-sess_id.o" => [ "apps/sess_id.c" ], + "apps/openssl-bin-skeyutl.o" => [ + "apps/skeyutl.c" + ], "apps/openssl-bin-smime.o" => [ "apps/smime.c" ], @@ -20775,6 +24297,9 @@ our %unified_info = ( "crypto/aes/libcrypto-lib-aesv8-armx.o" => [ "crypto/aes/aesv8-armx.S" ], + "crypto/aes/libcrypto-lib-bsaes-armv8.o" => [ + "crypto/aes/bsaes-armv8.S" + ], "crypto/aes/libcrypto-lib-vpaes-armv8.o" => [ "crypto/aes/vpaes-armv8.S" ], @@ -20793,12 +24318,21 @@ our %unified_info = ( "crypto/aes/libfips-lib-aesv8-armx.o" => [ "crypto/aes/aesv8-armx.S" ], + "crypto/aes/libfips-lib-bsaes-armv8.o" => [ + "crypto/aes/bsaes-armv8.S" + ], "crypto/aes/libfips-lib-vpaes-armv8.o" => [ "crypto/aes/vpaes-armv8.S" ], "crypto/aria/libcrypto-lib-aria.o" => [ "crypto/aria/aria.c" ], + "crypto/asn1/asn1_time_test-bin-a_time.o" => [ + "crypto/asn1/a_time.c" + ], + "crypto/asn1/ca_internals_test-bin-a_time.o" => [ + "crypto/asn1/a_time.c" + ], "crypto/asn1/libcrypto-lib-a_bitstr.o" => [ "crypto/asn1/a_bitstr.c" ], @@ -20991,6 +24525,9 @@ our %unified_info = ( "crypto/asn1/libcrypto-lib-x_val.o" => [ "crypto/asn1/x_val.c" ], + "crypto/asn1_time_test-bin-ctype.o" => [ + "crypto/ctype.c" + ], "crypto/async/arch/libcrypto-lib-async_null.o" => [ "crypto/async/arch/async_null.c" ], @@ -21084,6 +24621,9 @@ our %unified_info = ( "crypto/bio/libcrypto-lib-bss_dgram.o" => [ "crypto/bio/bss_dgram.c" ], + "crypto/bio/libcrypto-lib-bss_dgram_pair.o" => [ + "crypto/bio/bss_dgram_pair.c" + ], "crypto/bio/libcrypto-lib-bss_fd.o" => [ "crypto/bio/bss_fd.c" ], @@ -21303,6 +24843,9 @@ our %unified_info = ( "crypto/buffer/libfips-lib-buffer.o" => [ "crypto/buffer/buffer.c" ], + "crypto/ca_internals_test-bin-ctype.o" => [ + "crypto/ctype.c" + ], "crypto/camellia/libcrypto-lib-camellia.o" => [ "crypto/camellia/camellia.c" ], @@ -21339,6 +24882,9 @@ our %unified_info = ( "crypto/cast/libcrypto-lib-c_skey.o" => [ "crypto/cast/c_skey.c" ], + "crypto/chacha/libcrypto-lib-chacha-armv8-sve.o" => [ + "crypto/chacha/chacha-armv8-sve.S" + ], "crypto/chacha/libcrypto-lib-chacha-armv8.o" => [ "crypto/chacha/chacha-armv8.S" ], @@ -21360,6 +24906,9 @@ our %unified_info = ( "crypto/cmp/libcrypto-lib-cmp_err.o" => [ "crypto/cmp/cmp_err.c" ], + "crypto/cmp/libcrypto-lib-cmp_genm.o" => [ + "crypto/cmp/cmp_genm.c" + ], "crypto/cmp/libcrypto-lib-cmp_hdr.o" => [ "crypto/cmp/cmp_hdr.c" ], @@ -21855,6 +25404,15 @@ our %unified_info = ( "crypto/ec/libcrypto-lib-ecp_oct.o" => [ "crypto/ec/ecp_oct.c" ], + "crypto/ec/libcrypto-lib-ecp_sm2p256-armv8.o" => [ + "crypto/ec/ecp_sm2p256-armv8.S" + ], + "crypto/ec/libcrypto-lib-ecp_sm2p256.o" => [ + "crypto/ec/ecp_sm2p256.c" + ], + "crypto/ec/libcrypto-lib-ecp_sm2p256_table.o" => [ + "crypto/ec/ecp_sm2p256_table.c" + ], "crypto/ec/libcrypto-lib-ecp_smpl.o" => [ "crypto/ec/ecp_smpl.c" ], @@ -21936,6 +25494,15 @@ our %unified_info = ( "crypto/ec/libfips-lib-ecp_oct.o" => [ "crypto/ec/ecp_oct.c" ], + "crypto/ec/libfips-lib-ecp_sm2p256-armv8.o" => [ + "crypto/ec/ecp_sm2p256-armv8.S" + ], + "crypto/ec/libfips-lib-ecp_sm2p256.o" => [ + "crypto/ec/ecp_sm2p256.c" + ], + "crypto/ec/libfips-lib-ecp_sm2p256_table.o" => [ + "crypto/ec/ecp_sm2p256_table.c" + ], "crypto/ec/libfips-lib-ecp_smpl.o" => [ "crypto/ec/ecp_smpl.c" ], @@ -22047,9 +25614,15 @@ our %unified_info = ( "crypto/err/libcrypto-lib-err_blocks.o" => [ "crypto/err/err_blocks.c" ], + "crypto/err/libcrypto-lib-err_mark.o" => [ + "crypto/err/err_mark.c" + ], "crypto/err/libcrypto-lib-err_prn.o" => [ "crypto/err/err_prn.c" ], + "crypto/err/libcrypto-lib-err_save.o" => [ + "crypto/err/err_save.c" + ], "crypto/ess/libcrypto-lib-ess_asn1.o" => [ "crypto/ess/ess_asn1.c" ], @@ -22296,9 +25869,15 @@ our %unified_info = ( "crypto/evp/libcrypto-lib-pmeth_lib.o" => [ "crypto/evp/pmeth_lib.c" ], + "crypto/evp/libcrypto-lib-s_lib.o" => [ + "crypto/evp/s_lib.c" + ], "crypto/evp/libcrypto-lib-signature.o" => [ "crypto/evp/signature.c" ], + "crypto/evp/libcrypto-lib-skeymgmt_meth.o" => [ + "crypto/evp/skeymgmt_meth.c" + ], "crypto/evp/libfips-lib-asymcipher.o" => [ "crypto/evp/asymcipher.c" ], @@ -22344,9 +25923,6 @@ our %unified_info = ( "crypto/evp/libfips-lib-keymgmt_meth.o" => [ "crypto/evp/keymgmt_meth.c" ], - "crypto/evp/libfips-lib-m_sigver.o" => [ - "crypto/evp/m_sigver.c" - ], "crypto/evp/libfips-lib-mac_lib.o" => [ "crypto/evp/mac_lib.c" ], @@ -22365,9 +25941,15 @@ our %unified_info = ( "crypto/evp/libfips-lib-pmeth_lib.o" => [ "crypto/evp/pmeth_lib.c" ], + "crypto/evp/libfips-lib-s_lib.o" => [ + "crypto/evp/s_lib.c" + ], "crypto/evp/libfips-lib-signature.o" => [ "crypto/evp/signature.c" ], + "crypto/evp/libfips-lib-skeymgmt_meth.o" => [ + "crypto/evp/skeymgmt_meth.c" + ], "crypto/ffc/libcrypto-lib-ffc_backend.o" => [ "crypto/ffc/ffc_backend.c" ], @@ -22410,12 +25992,30 @@ our %unified_info = ( "crypto/ffc/libfips-lib-ffc_params_validate.o" => [ "crypto/ffc/ffc_params_validate.c" ], + "crypto/hashtable/libcrypto-lib-hashfunc.o" => [ + "crypto/hashtable/hashfunc.c" + ], + "crypto/hashtable/libcrypto-lib-hashtable.o" => [ + "crypto/hashtable/hashtable.c" + ], + "crypto/hashtable/libfips-lib-hashfunc.o" => [ + "crypto/hashtable/hashfunc.c" + ], + "crypto/hashtable/libfips-lib-hashtable.o" => [ + "crypto/hashtable/hashtable.c" + ], "crypto/hmac/libcrypto-lib-hmac.o" => [ "crypto/hmac/hmac.c" ], "crypto/hmac/libfips-lib-hmac.o" => [ "crypto/hmac/hmac.c" ], + "crypto/hpke/libcrypto-lib-hpke.o" => [ + "crypto/hpke/hpke.c" + ], + "crypto/hpke/libcrypto-lib-hpke_util.o" => [ + "crypto/hpke/hpke_util.c" + ], "crypto/http/libcrypto-lib-http_client.o" => [ "crypto/http/http_client.c" ], @@ -22464,6 +26064,9 @@ our %unified_info = ( "crypto/libcrypto-lib-bsearch.o" => [ "crypto/bsearch.c" ], + "crypto/libcrypto-lib-comp_methods.o" => [ + "crypto/comp_methods.c" + ], "crypto/libcrypto-lib-context.o" => [ "crypto/context.c" ], @@ -22491,9 +26094,15 @@ our %unified_info = ( "crypto/libcrypto-lib-cversion.o" => [ "crypto/cversion.c" ], + "crypto/libcrypto-lib-defaults.o" => [ + "crypto/defaults.c" + ], "crypto/libcrypto-lib-der_writer.o" => [ "crypto/der_writer.c" ], + "crypto/libcrypto-lib-deterministic_nonce.o" => [ + "crypto/deterministic_nonce.c" + ], "crypto/libcrypto-lib-ebcdic.o" => [ "crypto/ebcdic.c" ], @@ -22503,6 +26112,9 @@ our %unified_info = ( "crypto/libcrypto-lib-getenv.o" => [ "crypto/getenv.c" ], + "crypto/libcrypto-lib-indicator_core.o" => [ + "crypto/indicator_core.c" + ], "crypto/libcrypto-lib-info.o" => [ "crypto/info.c" ], @@ -22551,6 +26163,9 @@ our %unified_info = ( "crypto/libcrypto-lib-params_from_text.o" => [ "crypto/params_from_text.c" ], + "crypto/libcrypto-lib-params_idx.o" => [ + "crypto/params_idx.c" + ], "crypto/libcrypto-lib-passphrase.o" => [ "crypto/passphrase.c" ], @@ -22572,12 +26187,21 @@ our %unified_info = ( "crypto/libcrypto-lib-punycode.o" => [ "crypto/punycode.c" ], + "crypto/libcrypto-lib-quic_vlint.o" => [ + "crypto/quic_vlint.c" + ], "crypto/libcrypto-lib-self_test_core.o" => [ "crypto/self_test_core.c" ], + "crypto/libcrypto-lib-sleep.o" => [ + "crypto/sleep.c" + ], "crypto/libcrypto-lib-sparse_array.o" => [ "crypto/sparse_array.c" ], + "crypto/libcrypto-lib-ssl_err.o" => [ + "crypto/ssl_err.c" + ], "crypto/libcrypto-lib-threads_lib.o" => [ "crypto/threads_lib.c" ], @@ -22590,6 +26214,9 @@ our %unified_info = ( "crypto/libcrypto-lib-threads_win.o" => [ "crypto/threads_win.c" ], + "crypto/libcrypto-lib-time.o" => [ + "crypto/time.c" + ], "crypto/libcrypto-lib-trace.o" => [ "crypto/trace.c" ], @@ -22659,6 +26286,9 @@ our %unified_info = ( "crypto/libfips-lib-params_from_text.o" => [ "crypto/params_from_text.c" ], + "crypto/libfips-lib-params_idx.o" => [ + "crypto/params_idx.c" + ], "crypto/libfips-lib-provider_core.o" => [ "crypto/provider_core.c" ], @@ -22683,12 +26313,18 @@ our %unified_info = ( "crypto/libfips-lib-threads_win.o" => [ "crypto/threads_win.c" ], + "crypto/libfips-lib-time.o" => [ + "crypto/time.c" + ], "crypto/md4/libcrypto-lib-md4_dgst.o" => [ "crypto/md4/md4_dgst.c" ], "crypto/md4/libcrypto-lib-md4_one.o" => [ "crypto/md4/md4_one.c" ], + "crypto/md5/libcrypto-lib-md5-aarch64.o" => [ + "crypto/md5/md5-aarch64.S" + ], "crypto/md5/libcrypto-lib-md5_dgst.o" => [ "crypto/md5/md5_dgst.c" ], @@ -22704,6 +26340,63 @@ our %unified_info = ( "crypto/mdc2/libcrypto-lib-mdc2dgst.o" => [ "crypto/mdc2/mdc2dgst.c" ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_encoders.o" => [ + "crypto/ml_dsa/ml_dsa_encoders.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key.o" => [ + "crypto/ml_dsa/ml_dsa_key.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key_compress.o" => [ + "crypto/ml_dsa/ml_dsa_key_compress.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_matrix.o" => [ + "crypto/ml_dsa/ml_dsa_matrix.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_ntt.o" => [ + "crypto/ml_dsa/ml_dsa_ntt.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_params.o" => [ + "crypto/ml_dsa/ml_dsa_params.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sample.o" => [ + "crypto/ml_dsa/ml_dsa_sample.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sign.o" => [ + "crypto/ml_dsa/ml_dsa_sign.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_encoders.o" => [ + "crypto/ml_dsa/ml_dsa_encoders.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_key.o" => [ + "crypto/ml_dsa/ml_dsa_key.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_key_compress.o" => [ + "crypto/ml_dsa/ml_dsa_key_compress.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_matrix.o" => [ + "crypto/ml_dsa/ml_dsa_matrix.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_ntt.o" => [ + "crypto/ml_dsa/ml_dsa_ntt.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_params.o" => [ + "crypto/ml_dsa/ml_dsa_params.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_sample.o" => [ + "crypto/ml_dsa/ml_dsa_sample.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_sign.o" => [ + "crypto/ml_dsa/ml_dsa_sign.c" + ], + "crypto/ml_kem/libcrypto-lib-ml_kem.o" => [ + "crypto/ml_kem/ml_kem.c" + ], + "crypto/ml_kem/libfips-lib-ml_kem.o" => [ + "crypto/ml_kem/ml_kem.c" + ], + "crypto/modes/libcrypto-lib-aes-gcm-armv8-unroll8_64.o" => [ + "crypto/modes/aes-gcm-armv8-unroll8_64.S" + ], "crypto/modes/libcrypto-lib-aes-gcm-armv8_64.o" => [ "crypto/modes/aes-gcm-armv8_64.S" ], @@ -22743,6 +26436,12 @@ our %unified_info = ( "crypto/modes/libcrypto-lib-xts128.o" => [ "crypto/modes/xts128.c" ], + "crypto/modes/libcrypto-lib-xts128gb.o" => [ + "crypto/modes/xts128gb.c" + ], + "crypto/modes/libfips-lib-aes-gcm-armv8-unroll8_64.o" => [ + "crypto/modes/aes-gcm-armv8-unroll8_64.S" + ], "crypto/modes/libfips-lib-aes-gcm-armv8_64.o" => [ "crypto/modes/aes-gcm-armv8_64.S" ], @@ -22773,6 +26472,9 @@ our %unified_info = ( "crypto/modes/libfips-lib-xts128.o" => [ "crypto/modes/xts128.c" ], + "crypto/modes/libfips-lib-xts128gb.o" => [ + "crypto/modes/xts128gb.c" + ], "crypto/objects/libcrypto-lib-o_names.o" => [ "crypto/objects/o_names.c" ], @@ -22818,6 +26520,9 @@ our %unified_info = ( "crypto/ocsp/libcrypto-lib-v3_ocsp.o" => [ "crypto/ocsp/v3_ocsp.c" ], + "crypto/packettest-bin-quic_vlint.o" => [ + "crypto/quic_vlint.c" + ], "crypto/pem/libcrypto-lib-pem_all.o" => [ "crypto/pem/pem_all.c" ], @@ -22980,6 +26685,9 @@ our %unified_info = ( "crypto/rand/libcrypto-lib-rand_pool.o" => [ "crypto/rand/rand_pool.c" ], + "crypto/rand/libcrypto-lib-rand_uniform.o" => [ + "crypto/rand/rand_uniform.c" + ], "crypto/rand/libcrypto-lib-randfile.o" => [ "crypto/rand/randfile.c" ], @@ -23211,6 +26919,66 @@ our %unified_info = ( "crypto/siphash/libcrypto-lib-siphash.o" => [ "crypto/siphash/siphash.c" ], + "crypto/slh_dsa/libcrypto-lib-slh_adrs.o" => [ + "crypto/slh_dsa/slh_adrs.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_dsa.o" => [ + "crypto/slh_dsa/slh_dsa.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_dsa_hash_ctx.o" => [ + "crypto/slh_dsa/slh_dsa_hash_ctx.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_dsa_key.o" => [ + "crypto/slh_dsa/slh_dsa_key.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_fors.o" => [ + "crypto/slh_dsa/slh_fors.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_hash.o" => [ + "crypto/slh_dsa/slh_hash.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_hypertree.o" => [ + "crypto/slh_dsa/slh_hypertree.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_params.o" => [ + "crypto/slh_dsa/slh_params.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_wots.o" => [ + "crypto/slh_dsa/slh_wots.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_xmss.o" => [ + "crypto/slh_dsa/slh_xmss.c" + ], + "crypto/slh_dsa/libfips-lib-slh_adrs.o" => [ + "crypto/slh_dsa/slh_adrs.c" + ], + "crypto/slh_dsa/libfips-lib-slh_dsa.o" => [ + "crypto/slh_dsa/slh_dsa.c" + ], + "crypto/slh_dsa/libfips-lib-slh_dsa_hash_ctx.o" => [ + "crypto/slh_dsa/slh_dsa_hash_ctx.c" + ], + "crypto/slh_dsa/libfips-lib-slh_dsa_key.o" => [ + "crypto/slh_dsa/slh_dsa_key.c" + ], + "crypto/slh_dsa/libfips-lib-slh_fors.o" => [ + "crypto/slh_dsa/slh_fors.c" + ], + "crypto/slh_dsa/libfips-lib-slh_hash.o" => [ + "crypto/slh_dsa/slh_hash.c" + ], + "crypto/slh_dsa/libfips-lib-slh_hypertree.o" => [ + "crypto/slh_dsa/slh_hypertree.c" + ], + "crypto/slh_dsa/libfips-lib-slh_params.o" => [ + "crypto/slh_dsa/slh_params.c" + ], + "crypto/slh_dsa/libfips-lib-slh_wots.o" => [ + "crypto/slh_dsa/slh_wots.c" + ], + "crypto/slh_dsa/libfips-lib-slh_xmss.o" => [ + "crypto/slh_dsa/slh_xmss.c" + ], "crypto/sm2/libcrypto-lib-sm2_crypt.o" => [ "crypto/sm2/sm2_crypt.c" ], @@ -23226,12 +26994,24 @@ our %unified_info = ( "crypto/sm3/libcrypto-lib-legacy_sm3.o" => [ "crypto/sm3/legacy_sm3.c" ], + "crypto/sm3/libcrypto-lib-sm3-armv8.o" => [ + "crypto/sm3/sm3-armv8.S" + ], "crypto/sm3/libcrypto-lib-sm3.o" => [ "crypto/sm3/sm3.c" ], + "crypto/sm4/libcrypto-lib-sm4-armv8.o" => [ + "crypto/sm4/sm4-armv8.S" + ], "crypto/sm4/libcrypto-lib-sm4.o" => [ "crypto/sm4/sm4.c" ], + "crypto/sm4/libcrypto-lib-vpsm4-armv8.o" => [ + "crypto/sm4/vpsm4-armv8.S" + ], + "crypto/sm4/libcrypto-lib-vpsm4_ex-armv8.o" => [ + "crypto/sm4/vpsm4_ex-armv8.S" + ], "crypto/srp/libcrypto-lib-srp_lib.o" => [ "crypto/srp/srp_lib.c" ], @@ -23265,6 +27045,42 @@ our %unified_info = ( "crypto/store/libcrypto-lib-store_strings.o" => [ "crypto/store/store_strings.c" ], + "crypto/thread/arch/libcrypto-lib-thread_none.o" => [ + "crypto/thread/arch/thread_none.c" + ], + "crypto/thread/arch/libcrypto-lib-thread_posix.o" => [ + "crypto/thread/arch/thread_posix.c" + ], + "crypto/thread/arch/libcrypto-lib-thread_win.o" => [ + "crypto/thread/arch/thread_win.c" + ], + "crypto/thread/arch/libfips-lib-thread_none.o" => [ + "crypto/thread/arch/thread_none.c" + ], + "crypto/thread/arch/libfips-lib-thread_posix.o" => [ + "crypto/thread/arch/thread_posix.c" + ], + "crypto/thread/arch/libfips-lib-thread_win.o" => [ + "crypto/thread/arch/thread_win.c" + ], + "crypto/thread/libcrypto-lib-api.o" => [ + "crypto/thread/api.c" + ], + "crypto/thread/libcrypto-lib-arch.o" => [ + "crypto/thread/arch.c" + ], + "crypto/thread/libcrypto-lib-internal.o" => [ + "crypto/thread/internal.c" + ], + "crypto/thread/libfips-lib-api.o" => [ + "crypto/thread/api.c" + ], + "crypto/thread/libfips-lib-arch.o" => [ + "crypto/thread/arch.c" + ], + "crypto/thread/libfips-lib-internal.o" => [ + "crypto/thread/internal.c" + ], "crypto/ts/libcrypto-lib-ts_asn1.o" => [ "crypto/ts/ts_asn1.c" ], @@ -23349,6 +27165,9 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-pcy_tree.o" => [ "crypto/x509/pcy_tree.c" ], + "crypto/x509/libcrypto-lib-t_acert.o" => [ + "crypto/x509/t_acert.c" + ], "crypto/x509/libcrypto-lib-t_crl.o" => [ "crypto/x509/t_crl.c" ], @@ -23358,6 +27177,12 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-t_x509.o" => [ "crypto/x509/t_x509.c" ], + "crypto/x509/libcrypto-lib-v3_aaa.o" => [ + "crypto/x509/v3_aaa.c" + ], + "crypto/x509/libcrypto-lib-v3_ac_tgt.o" => [ + "crypto/x509/v3_ac_tgt.c" + ], "crypto/x509/libcrypto-lib-v3_addr.o" => [ "crypto/x509/v3_addr.c" ], @@ -23373,6 +27198,21 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_asid.o" => [ "crypto/x509/v3_asid.c" ], + "crypto/x509/libcrypto-lib-v3_attrdesc.o" => [ + "crypto/x509/v3_attrdesc.c" + ], + "crypto/x509/libcrypto-lib-v3_attrmap.o" => [ + "crypto/x509/v3_attrmap.c" + ], + "crypto/x509/libcrypto-lib-v3_audit_id.o" => [ + "crypto/x509/v3_audit_id.c" + ], + "crypto/x509/libcrypto-lib-v3_authattid.o" => [ + "crypto/x509/v3_authattid.c" + ], + "crypto/x509/libcrypto-lib-v3_battcons.o" => [ + "crypto/x509/v3_battcons.c" + ], "crypto/x509/libcrypto-lib-v3_bcons.o" => [ "crypto/x509/v3_bcons.c" ], @@ -23397,15 +27237,24 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_genn.o" => [ "crypto/x509/v3_genn.c" ], + "crypto/x509/libcrypto-lib-v3_group_ac.o" => [ + "crypto/x509/v3_group_ac.c" + ], "crypto/x509/libcrypto-lib-v3_ia5.o" => [ "crypto/x509/v3_ia5.c" ], + "crypto/x509/libcrypto-lib-v3_ind_iss.o" => [ + "crypto/x509/v3_ind_iss.c" + ], "crypto/x509/libcrypto-lib-v3_info.o" => [ "crypto/x509/v3_info.c" ], "crypto/x509/libcrypto-lib-v3_int.o" => [ "crypto/x509/v3_int.c" ], + "crypto/x509/libcrypto-lib-v3_iobo.o" => [ + "crypto/x509/v3_iobo.c" + ], "crypto/x509/libcrypto-lib-v3_ist.o" => [ "crypto/x509/v3_ist.c" ], @@ -23415,6 +27264,12 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_ncons.o" => [ "crypto/x509/v3_ncons.c" ], + "crypto/x509/libcrypto-lib-v3_no_ass.o" => [ + "crypto/x509/v3_no_ass.c" + ], + "crypto/x509/libcrypto-lib-v3_no_rev_avail.o" => [ + "crypto/x509/v3_no_rev_avail.c" + ], "crypto/x509/libcrypto-lib-v3_pci.o" => [ "crypto/x509/v3_pci.c" ], @@ -23436,18 +27291,36 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_purp.o" => [ "crypto/x509/v3_purp.c" ], + "crypto/x509/libcrypto-lib-v3_rolespec.o" => [ + "crypto/x509/v3_rolespec.c" + ], "crypto/x509/libcrypto-lib-v3_san.o" => [ "crypto/x509/v3_san.c" ], + "crypto/x509/libcrypto-lib-v3_sda.o" => [ + "crypto/x509/v3_sda.c" + ], + "crypto/x509/libcrypto-lib-v3_single_use.o" => [ + "crypto/x509/v3_single_use.c" + ], "crypto/x509/libcrypto-lib-v3_skid.o" => [ "crypto/x509/v3_skid.c" ], + "crypto/x509/libcrypto-lib-v3_soa_id.o" => [ + "crypto/x509/v3_soa_id.c" + ], "crypto/x509/libcrypto-lib-v3_sxnet.o" => [ "crypto/x509/v3_sxnet.c" ], + "crypto/x509/libcrypto-lib-v3_timespec.o" => [ + "crypto/x509/v3_timespec.c" + ], "crypto/x509/libcrypto-lib-v3_tlsf.o" => [ "crypto/x509/v3_tlsf.c" ], + "crypto/x509/libcrypto-lib-v3_usernotice.o" => [ + "crypto/x509/v3_usernotice.c" + ], "crypto/x509/libcrypto-lib-v3_utf8.o" => [ "crypto/x509/v3_utf8.c" ], @@ -23457,6 +27330,9 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3err.o" => [ "crypto/x509/v3err.c" ], + "crypto/x509/libcrypto-lib-x509_acert.o" => [ + "crypto/x509/x509_acert.c" + ], "crypto/x509/libcrypto-lib-x509_att.o" => [ "crypto/x509/x509_att.c" ], @@ -23508,6 +27384,9 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x509_vpm.o" => [ "crypto/x509/x509_vpm.c" ], + "crypto/x509/libcrypto-lib-x509aset.o" => [ + "crypto/x509/x509aset.c" + ], "crypto/x509/libcrypto-lib-x509cset.o" => [ "crypto/x509/x509cset.c" ], @@ -23535,6 +27414,9 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x_exten.o" => [ "crypto/x509/x_exten.c" ], + "crypto/x509/libcrypto-lib-x_ietfatt.o" => [ + "crypto/x509/x_ietfatt.c" + ], "crypto/x509/libcrypto-lib-x_name.o" => [ "crypto/x509/x_name.c" ], @@ -23556,6 +27438,16 @@ our %unified_info = ( "engines/libcrypto-lib-e_padlock.o" => [ "engines/e_padlock.c" ], + "fuzz/acert-test" => [ + "fuzz/acert-test-bin-acert.o", + "fuzz/acert-test-bin-test-corpus.o" + ], + "fuzz/acert-test-bin-acert.o" => [ + "fuzz/acert.c" + ], + "fuzz/acert-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], "fuzz/asn1-test" => [ "fuzz/asn1-test-bin-asn1.o", "fuzz/asn1-test-bin-fuzz_rand.o", @@ -23668,6 +27560,190 @@ our %unified_info = ( "fuzz/ct-test-bin-test-corpus.o" => [ "fuzz/test-corpus.c" ], + "fuzz/decoder-test" => [ + "fuzz/decoder-test-bin-decoder.o", + "fuzz/decoder-test-bin-fuzz_rand.o", + "fuzz/decoder-test-bin-test-corpus.o" + ], + "fuzz/decoder-test-bin-decoder.o" => [ + "fuzz/decoder.c" + ], + "fuzz/decoder-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/decoder-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/dtlsclient-test" => [ + "fuzz/dtlsclient-test-bin-dtlsclient.o", + "fuzz/dtlsclient-test-bin-fuzz_rand.o", + "fuzz/dtlsclient-test-bin-test-corpus.o" + ], + "fuzz/dtlsclient-test-bin-dtlsclient.o" => [ + "fuzz/dtlsclient.c" + ], + "fuzz/dtlsclient-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/dtlsclient-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/dtlsserver-test" => [ + "fuzz/dtlsserver-test-bin-dtlsserver.o", + "fuzz/dtlsserver-test-bin-fuzz_rand.o", + "fuzz/dtlsserver-test-bin-test-corpus.o" + ], + "fuzz/dtlsserver-test-bin-dtlsserver.o" => [ + "fuzz/dtlsserver.c" + ], + "fuzz/dtlsserver-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/dtlsserver-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/hashtable-test" => [ + "fuzz/hashtable-test-bin-fuzz_rand.o", + "fuzz/hashtable-test-bin-hashtable.o", + "fuzz/hashtable-test-bin-test-corpus.o" + ], + "fuzz/hashtable-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/hashtable-test-bin-hashtable.o" => [ + "fuzz/hashtable.c" + ], + "fuzz/hashtable-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/ml-dsa-test" => [ + "fuzz/ml-dsa-test-bin-fuzz_rand.o", + "fuzz/ml-dsa-test-bin-ml-dsa.o", + "fuzz/ml-dsa-test-bin-test-corpus.o" + ], + "fuzz/ml-dsa-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/ml-dsa-test-bin-ml-dsa.o" => [ + "fuzz/ml-dsa.c" + ], + "fuzz/ml-dsa-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/ml-kem-test" => [ + "fuzz/ml-kem-test-bin-fuzz_rand.o", + "fuzz/ml-kem-test-bin-ml-kem.o", + "fuzz/ml-kem-test-bin-test-corpus.o" + ], + "fuzz/ml-kem-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/ml-kem-test-bin-ml-kem.o" => [ + "fuzz/ml-kem.c" + ], + "fuzz/ml-kem-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/pem-test" => [ + "fuzz/pem-test-bin-pem.o", + "fuzz/pem-test-bin-test-corpus.o" + ], + "fuzz/pem-test-bin-pem.o" => [ + "fuzz/pem.c" + ], + "fuzz/pem-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/provider-test" => [ + "fuzz/provider-test-bin-provider.o", + "fuzz/provider-test-bin-test-corpus.o" + ], + "fuzz/provider-test-bin-provider.o" => [ + "fuzz/provider.c" + ], + "fuzz/provider-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/punycode-test" => [ + "fuzz/punycode-test-bin-punycode.o", + "fuzz/punycode-test-bin-test-corpus.o" + ], + "fuzz/punycode-test-bin-punycode.o" => [ + "fuzz/punycode.c" + ], + "fuzz/punycode-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-client-test" => [ + "fuzz/quic-client-test-bin-fuzz_rand.o", + "fuzz/quic-client-test-bin-quic-client.o", + "fuzz/quic-client-test-bin-test-corpus.o" + ], + "fuzz/quic-client-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-client-test-bin-quic-client.o" => [ + "fuzz/quic-client.c" + ], + "fuzz/quic-client-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-lcidm-test" => [ + "fuzz/quic-lcidm-test-bin-fuzz_rand.o", + "fuzz/quic-lcidm-test-bin-quic-lcidm.o", + "fuzz/quic-lcidm-test-bin-test-corpus.o" + ], + "fuzz/quic-lcidm-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-lcidm-test-bin-quic-lcidm.o" => [ + "fuzz/quic-lcidm.c" + ], + "fuzz/quic-lcidm-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-rcidm-test" => [ + "fuzz/quic-rcidm-test-bin-fuzz_rand.o", + "fuzz/quic-rcidm-test-bin-quic-rcidm.o", + "fuzz/quic-rcidm-test-bin-test-corpus.o" + ], + "fuzz/quic-rcidm-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-rcidm-test-bin-quic-rcidm.o" => [ + "fuzz/quic-rcidm.c" + ], + "fuzz/quic-rcidm-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-server-test" => [ + "fuzz/quic-server-test-bin-fuzz_rand.o", + "fuzz/quic-server-test-bin-quic-server.o", + "fuzz/quic-server-test-bin-test-corpus.o" + ], + "fuzz/quic-server-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-server-test-bin-quic-server.o" => [ + "fuzz/quic-server.c" + ], + "fuzz/quic-server-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-srtm-test" => [ + "fuzz/quic-srtm-test-bin-fuzz_rand.o", + "fuzz/quic-srtm-test-bin-quic-srtm.o", + "fuzz/quic-srtm-test-bin-test-corpus.o" + ], + "fuzz/quic-srtm-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-srtm-test-bin-quic-srtm.o" => [ + "fuzz/quic-srtm.c" + ], + "fuzz/quic-srtm-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], "fuzz/server-test" => [ "fuzz/server-test-bin-fuzz_rand.o", "fuzz/server-test-bin-server.o", @@ -23682,6 +27758,40 @@ our %unified_info = ( "fuzz/server-test-bin-test-corpus.o" => [ "fuzz/test-corpus.c" ], + "fuzz/slh-dsa-test" => [ + "fuzz/slh-dsa-test-bin-fuzz_rand.o", + "fuzz/slh-dsa-test-bin-slh-dsa.o", + "fuzz/slh-dsa-test-bin-test-corpus.o" + ], + "fuzz/slh-dsa-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/slh-dsa-test-bin-slh-dsa.o" => [ + "fuzz/slh-dsa.c" + ], + "fuzz/slh-dsa-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/smime-test" => [ + "fuzz/smime-test-bin-smime.o", + "fuzz/smime-test-bin-test-corpus.o" + ], + "fuzz/smime-test-bin-smime.o" => [ + "fuzz/smime.c" + ], + "fuzz/smime-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/v3name-test" => [ + "fuzz/v3name-test-bin-test-corpus.o", + "fuzz/v3name-test-bin-v3name.o" + ], + "fuzz/v3name-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/v3name-test-bin-v3name.o" => [ + "fuzz/v3name.c" + ], "fuzz/x509-test" => [ "fuzz/x509-test-bin-fuzz_rand.o", "fuzz/x509-test-bin-test-corpus.o", @@ -23706,6 +27816,7 @@ our %unified_info = ( "crypto/aes/libcrypto-lib-aes_ofb.o", "crypto/aes/libcrypto-lib-aes_wrap.o", "crypto/aes/libcrypto-lib-aesv8-armx.o", + "crypto/aes/libcrypto-lib-bsaes-armv8.o", "crypto/aes/libcrypto-lib-vpaes-armv8.o", "crypto/aria/libcrypto-lib-aria.o", "crypto/asn1/libcrypto-lib-a_bitstr.o", @@ -23803,6 +27914,7 @@ our %unified_info = ( "crypto/bio/libcrypto-lib-bss_conn.o", "crypto/bio/libcrypto-lib-bss_core.o", "crypto/bio/libcrypto-lib-bss_dgram.o", + "crypto/bio/libcrypto-lib-bss_dgram_pair.o", "crypto/bio/libcrypto-lib-bss_fd.o", "crypto/bio/libcrypto-lib-bss_file.o", "crypto/bio/libcrypto-lib-bss_log.o", @@ -23858,12 +27970,14 @@ our %unified_info = ( "crypto/cast/libcrypto-lib-c_enc.o", "crypto/cast/libcrypto-lib-c_ofb64.o", "crypto/cast/libcrypto-lib-c_skey.o", + "crypto/chacha/libcrypto-lib-chacha-armv8-sve.o", "crypto/chacha/libcrypto-lib-chacha-armv8.o", "crypto/cmac/libcrypto-lib-cmac.o", "crypto/cmp/libcrypto-lib-cmp_asn.o", "crypto/cmp/libcrypto-lib-cmp_client.o", "crypto/cmp/libcrypto-lib-cmp_ctx.o", "crypto/cmp/libcrypto-lib-cmp_err.o", + "crypto/cmp/libcrypto-lib-cmp_genm.o", "crypto/cmp/libcrypto-lib-cmp_hdr.o", "crypto/cmp/libcrypto-lib-cmp_http.o", "crypto/cmp/libcrypto-lib-cmp_msg.o", @@ -24003,6 +28117,9 @@ our %unified_info = ( "crypto/ec/libcrypto-lib-ecp_nistz256-armv8.o", "crypto/ec/libcrypto-lib-ecp_nistz256.o", "crypto/ec/libcrypto-lib-ecp_oct.o", + "crypto/ec/libcrypto-lib-ecp_sm2p256-armv8.o", + "crypto/ec/libcrypto-lib-ecp_sm2p256.o", + "crypto/ec/libcrypto-lib-ecp_sm2p256_table.o", "crypto/ec/libcrypto-lib-ecp_smpl.o", "crypto/ec/libcrypto-lib-ecx_backend.o", "crypto/ec/libcrypto-lib-ecx_key.o", @@ -24041,7 +28158,9 @@ our %unified_info = ( "crypto/err/libcrypto-lib-err_all.o", "crypto/err/libcrypto-lib-err_all_legacy.o", "crypto/err/libcrypto-lib-err_blocks.o", + "crypto/err/libcrypto-lib-err_mark.o", "crypto/err/libcrypto-lib-err_prn.o", + "crypto/err/libcrypto-lib-err_save.o", "crypto/ess/libcrypto-lib-ess_asn1.o", "crypto/ess/libcrypto-lib-ess_err.o", "crypto/ess/libcrypto-lib-ess_lib.o", @@ -24124,7 +28243,9 @@ our %unified_info = ( "crypto/evp/libcrypto-lib-pmeth_check.o", "crypto/evp/libcrypto-lib-pmeth_gn.o", "crypto/evp/libcrypto-lib-pmeth_lib.o", + "crypto/evp/libcrypto-lib-s_lib.o", "crypto/evp/libcrypto-lib-signature.o", + "crypto/evp/libcrypto-lib-skeymgmt_meth.o", "crypto/ffc/libcrypto-lib-ffc_backend.o", "crypto/ffc/libcrypto-lib-ffc_dh.o", "crypto/ffc/libcrypto-lib-ffc_key_generate.o", @@ -24132,7 +28253,11 @@ our %unified_info = ( "crypto/ffc/libcrypto-lib-ffc_params.o", "crypto/ffc/libcrypto-lib-ffc_params_generate.o", "crypto/ffc/libcrypto-lib-ffc_params_validate.o", + "crypto/hashtable/libcrypto-lib-hashfunc.o", + "crypto/hashtable/libcrypto-lib-hashtable.o", "crypto/hmac/libcrypto-lib-hmac.o", + "crypto/hpke/libcrypto-lib-hpke.o", + "crypto/hpke/libcrypto-lib-hpke_util.o", "crypto/http/libcrypto-lib-http_client.o", "crypto/http/libcrypto-lib-http_err.o", "crypto/http/libcrypto-lib-http_lib.o", @@ -24148,6 +28273,7 @@ our %unified_info = ( "crypto/libcrypto-lib-armcap.o", "crypto/libcrypto-lib-asn1_dsa.o", "crypto/libcrypto-lib-bsearch.o", + "crypto/libcrypto-lib-comp_methods.o", "crypto/libcrypto-lib-context.o", "crypto/libcrypto-lib-core_algorithm.o", "crypto/libcrypto-lib-core_fetch.o", @@ -24157,10 +28283,13 @@ our %unified_info = ( "crypto/libcrypto-lib-cryptlib.o", "crypto/libcrypto-lib-ctype.o", "crypto/libcrypto-lib-cversion.o", + "crypto/libcrypto-lib-defaults.o", "crypto/libcrypto-lib-der_writer.o", + "crypto/libcrypto-lib-deterministic_nonce.o", "crypto/libcrypto-lib-ebcdic.o", "crypto/libcrypto-lib-ex_data.o", "crypto/libcrypto-lib-getenv.o", + "crypto/libcrypto-lib-indicator_core.o", "crypto/libcrypto-lib-info.o", "crypto/libcrypto-lib-init.o", "crypto/libcrypto-lib-initthread.o", @@ -24177,6 +28306,7 @@ our %unified_info = ( "crypto/libcrypto-lib-params.o", "crypto/libcrypto-lib-params_dup.o", "crypto/libcrypto-lib-params_from_text.o", + "crypto/libcrypto-lib-params_idx.o", "crypto/libcrypto-lib-passphrase.o", "crypto/libcrypto-lib-provider.o", "crypto/libcrypto-lib-provider_child.o", @@ -24184,21 +28314,36 @@ our %unified_info = ( "crypto/libcrypto-lib-provider_core.o", "crypto/libcrypto-lib-provider_predefined.o", "crypto/libcrypto-lib-punycode.o", + "crypto/libcrypto-lib-quic_vlint.o", "crypto/libcrypto-lib-self_test_core.o", + "crypto/libcrypto-lib-sleep.o", "crypto/libcrypto-lib-sparse_array.o", + "crypto/libcrypto-lib-ssl_err.o", "crypto/libcrypto-lib-threads_lib.o", "crypto/libcrypto-lib-threads_none.o", "crypto/libcrypto-lib-threads_pthread.o", "crypto/libcrypto-lib-threads_win.o", + "crypto/libcrypto-lib-time.o", "crypto/libcrypto-lib-trace.o", "crypto/libcrypto-lib-uid.o", "crypto/md4/libcrypto-lib-md4_dgst.o", "crypto/md4/libcrypto-lib-md4_one.o", + "crypto/md5/libcrypto-lib-md5-aarch64.o", "crypto/md5/libcrypto-lib-md5_dgst.o", "crypto/md5/libcrypto-lib-md5_one.o", "crypto/md5/libcrypto-lib-md5_sha1.o", "crypto/mdc2/libcrypto-lib-mdc2_one.o", "crypto/mdc2/libcrypto-lib-mdc2dgst.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_encoders.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key_compress.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_matrix.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_ntt.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_params.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sample.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sign.o", + "crypto/ml_kem/libcrypto-lib-ml_kem.o", + "crypto/modes/libcrypto-lib-aes-gcm-armv8-unroll8_64.o", "crypto/modes/libcrypto-lib-aes-gcm-armv8_64.o", "crypto/modes/libcrypto-lib-cbc128.o", "crypto/modes/libcrypto-lib-ccm128.o", @@ -24212,6 +28357,7 @@ our %unified_info = ( "crypto/modes/libcrypto-lib-siv128.o", "crypto/modes/libcrypto-lib-wrap128.o", "crypto/modes/libcrypto-lib-xts128.o", + "crypto/modes/libcrypto-lib-xts128gb.o", "crypto/objects/libcrypto-lib-o_names.o", "crypto/objects/libcrypto-lib-obj_dat.o", "crypto/objects/libcrypto-lib-obj_err.o", @@ -24276,6 +28422,7 @@ our %unified_info = ( "crypto/rand/libcrypto-lib-rand_lib.o", "crypto/rand/libcrypto-lib-rand_meth.o", "crypto/rand/libcrypto-lib-rand_pool.o", + "crypto/rand/libcrypto-lib-rand_uniform.o", "crypto/rand/libcrypto-lib-randfile.o", "crypto/rc2/libcrypto-lib-rc2_cbc.o", "crypto/rc2/libcrypto-lib-rc2_ecb.o", @@ -24327,13 +28474,27 @@ our %unified_info = ( "crypto/sha/libcrypto-lib-sha512-armv8.o", "crypto/sha/libcrypto-lib-sha512.o", "crypto/siphash/libcrypto-lib-siphash.o", + "crypto/slh_dsa/libcrypto-lib-slh_adrs.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa_hash_ctx.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa_key.o", + "crypto/slh_dsa/libcrypto-lib-slh_fors.o", + "crypto/slh_dsa/libcrypto-lib-slh_hash.o", + "crypto/slh_dsa/libcrypto-lib-slh_hypertree.o", + "crypto/slh_dsa/libcrypto-lib-slh_params.o", + "crypto/slh_dsa/libcrypto-lib-slh_wots.o", + "crypto/slh_dsa/libcrypto-lib-slh_xmss.o", "crypto/sm2/libcrypto-lib-sm2_crypt.o", "crypto/sm2/libcrypto-lib-sm2_err.o", "crypto/sm2/libcrypto-lib-sm2_key.o", "crypto/sm2/libcrypto-lib-sm2_sign.o", "crypto/sm3/libcrypto-lib-legacy_sm3.o", + "crypto/sm3/libcrypto-lib-sm3-armv8.o", "crypto/sm3/libcrypto-lib-sm3.o", + "crypto/sm4/libcrypto-lib-sm4-armv8.o", "crypto/sm4/libcrypto-lib-sm4.o", + "crypto/sm4/libcrypto-lib-vpsm4-armv8.o", + "crypto/sm4/libcrypto-lib-vpsm4_ex-armv8.o", "crypto/srp/libcrypto-lib-srp_lib.o", "crypto/srp/libcrypto-lib-srp_vfy.o", "crypto/stack/libcrypto-lib-stack.o", @@ -24344,6 +28505,12 @@ our %unified_info = ( "crypto/store/libcrypto-lib-store_register.o", "crypto/store/libcrypto-lib-store_result.o", "crypto/store/libcrypto-lib-store_strings.o", + "crypto/thread/arch/libcrypto-lib-thread_none.o", + "crypto/thread/arch/libcrypto-lib-thread_posix.o", + "crypto/thread/arch/libcrypto-lib-thread_win.o", + "crypto/thread/libcrypto-lib-api.o", + "crypto/thread/libcrypto-lib-arch.o", + "crypto/thread/libcrypto-lib-internal.o", "crypto/ts/libcrypto-lib-ts_asn1.o", "crypto/ts/libcrypto-lib-ts_conf.o", "crypto/ts/libcrypto-lib-ts_err.o", @@ -24372,14 +28539,22 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-pcy_map.o", "crypto/x509/libcrypto-lib-pcy_node.o", "crypto/x509/libcrypto-lib-pcy_tree.o", + "crypto/x509/libcrypto-lib-t_acert.o", "crypto/x509/libcrypto-lib-t_crl.o", "crypto/x509/libcrypto-lib-t_req.o", "crypto/x509/libcrypto-lib-t_x509.o", + "crypto/x509/libcrypto-lib-v3_aaa.o", + "crypto/x509/libcrypto-lib-v3_ac_tgt.o", "crypto/x509/libcrypto-lib-v3_addr.o", "crypto/x509/libcrypto-lib-v3_admis.o", "crypto/x509/libcrypto-lib-v3_akeya.o", "crypto/x509/libcrypto-lib-v3_akid.o", "crypto/x509/libcrypto-lib-v3_asid.o", + "crypto/x509/libcrypto-lib-v3_attrdesc.o", + "crypto/x509/libcrypto-lib-v3_attrmap.o", + "crypto/x509/libcrypto-lib-v3_audit_id.o", + "crypto/x509/libcrypto-lib-v3_authattid.o", + "crypto/x509/libcrypto-lib-v3_battcons.o", "crypto/x509/libcrypto-lib-v3_bcons.o", "crypto/x509/libcrypto-lib-v3_bitst.o", "crypto/x509/libcrypto-lib-v3_conf.o", @@ -24388,12 +28563,17 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_enum.o", "crypto/x509/libcrypto-lib-v3_extku.o", "crypto/x509/libcrypto-lib-v3_genn.o", + "crypto/x509/libcrypto-lib-v3_group_ac.o", "crypto/x509/libcrypto-lib-v3_ia5.o", + "crypto/x509/libcrypto-lib-v3_ind_iss.o", "crypto/x509/libcrypto-lib-v3_info.o", "crypto/x509/libcrypto-lib-v3_int.o", + "crypto/x509/libcrypto-lib-v3_iobo.o", "crypto/x509/libcrypto-lib-v3_ist.o", "crypto/x509/libcrypto-lib-v3_lib.o", "crypto/x509/libcrypto-lib-v3_ncons.o", + "crypto/x509/libcrypto-lib-v3_no_ass.o", + "crypto/x509/libcrypto-lib-v3_no_rev_avail.o", "crypto/x509/libcrypto-lib-v3_pci.o", "crypto/x509/libcrypto-lib-v3_pcia.o", "crypto/x509/libcrypto-lib-v3_pcons.o", @@ -24401,13 +28581,20 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_pmaps.o", "crypto/x509/libcrypto-lib-v3_prn.o", "crypto/x509/libcrypto-lib-v3_purp.o", + "crypto/x509/libcrypto-lib-v3_rolespec.o", "crypto/x509/libcrypto-lib-v3_san.o", + "crypto/x509/libcrypto-lib-v3_sda.o", + "crypto/x509/libcrypto-lib-v3_single_use.o", "crypto/x509/libcrypto-lib-v3_skid.o", + "crypto/x509/libcrypto-lib-v3_soa_id.o", "crypto/x509/libcrypto-lib-v3_sxnet.o", + "crypto/x509/libcrypto-lib-v3_timespec.o", "crypto/x509/libcrypto-lib-v3_tlsf.o", + "crypto/x509/libcrypto-lib-v3_usernotice.o", "crypto/x509/libcrypto-lib-v3_utf8.o", "crypto/x509/libcrypto-lib-v3_utl.o", "crypto/x509/libcrypto-lib-v3err.o", + "crypto/x509/libcrypto-lib-x509_acert.o", "crypto/x509/libcrypto-lib-x509_att.o", "crypto/x509/libcrypto-lib-x509_cmp.o", "crypto/x509/libcrypto-lib-x509_d2.o", @@ -24425,6 +28612,7 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x509_v3.o", "crypto/x509/libcrypto-lib-x509_vfy.o", "crypto/x509/libcrypto-lib-x509_vpm.o", + "crypto/x509/libcrypto-lib-x509aset.o", "crypto/x509/libcrypto-lib-x509cset.o", "crypto/x509/libcrypto-lib-x509name.o", "crypto/x509/libcrypto-lib-x509rset.o", @@ -24434,6 +28622,7 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x_attrib.o", "crypto/x509/libcrypto-lib-x_crl.o", "crypto/x509/libcrypto-lib-x_exten.o", + "crypto/x509/libcrypto-lib-x_ietfatt.o", "crypto/x509/libcrypto-lib-x_name.o", "crypto/x509/libcrypto-lib-x_pubkey.o", "crypto/x509/libcrypto-lib-x_req.o", @@ -24454,14 +28643,15 @@ our %unified_info = ( "ssl/libssl-lib-d1_srtp.o", "ssl/libssl-lib-methods.o", "ssl/libssl-lib-pqueue.o", + "ssl/libssl-lib-priority_queue.o", "ssl/libssl-lib-s3_enc.o", "ssl/libssl-lib-s3_lib.o", "ssl/libssl-lib-s3_msg.o", "ssl/libssl-lib-ssl_asn1.o", "ssl/libssl-lib-ssl_cert.o", + "ssl/libssl-lib-ssl_cert_comp.o", "ssl/libssl-lib-ssl_ciph.o", "ssl/libssl-lib-ssl_conf.o", - "ssl/libssl-lib-ssl_err.o", "ssl/libssl-lib-ssl_err_legacy.o", "ssl/libssl-lib-ssl_init.o", "ssl/libssl-lib-ssl_lib.o", @@ -24478,12 +28668,60 @@ our %unified_info = ( "ssl/libssl-lib-tls13_enc.o", "ssl/libssl-lib-tls_depr.o", "ssl/libssl-lib-tls_srp.o", - "ssl/record/libssl-lib-dtls1_bitmap.o", + "ssl/quic/libssl-lib-cc_newreno.o", + "ssl/quic/libssl-lib-json_enc.o", + "ssl/quic/libssl-lib-qlog.o", + "ssl/quic/libssl-lib-qlog_event_helpers.o", + "ssl/quic/libssl-lib-quic_ackm.o", + "ssl/quic/libssl-lib-quic_cfq.o", + "ssl/quic/libssl-lib-quic_channel.o", + "ssl/quic/libssl-lib-quic_demux.o", + "ssl/quic/libssl-lib-quic_engine.o", + "ssl/quic/libssl-lib-quic_fc.o", + "ssl/quic/libssl-lib-quic_fifd.o", + "ssl/quic/libssl-lib-quic_impl.o", + "ssl/quic/libssl-lib-quic_lcidm.o", + "ssl/quic/libssl-lib-quic_method.o", + "ssl/quic/libssl-lib-quic_obj.o", + "ssl/quic/libssl-lib-quic_port.o", + "ssl/quic/libssl-lib-quic_rcidm.o", + "ssl/quic/libssl-lib-quic_reactor.o", + "ssl/quic/libssl-lib-quic_reactor_wait_ctx.o", + "ssl/quic/libssl-lib-quic_record_rx.o", + "ssl/quic/libssl-lib-quic_record_shared.o", + "ssl/quic/libssl-lib-quic_record_tx.o", + "ssl/quic/libssl-lib-quic_record_util.o", + "ssl/quic/libssl-lib-quic_rstream.o", + "ssl/quic/libssl-lib-quic_rx_depack.o", + "ssl/quic/libssl-lib-quic_sf_list.o", + "ssl/quic/libssl-lib-quic_srt_gen.o", + "ssl/quic/libssl-lib-quic_srtm.o", + "ssl/quic/libssl-lib-quic_sstream.o", + "ssl/quic/libssl-lib-quic_statm.o", + "ssl/quic/libssl-lib-quic_stream_map.o", + "ssl/quic/libssl-lib-quic_thread_assist.o", + "ssl/quic/libssl-lib-quic_tls.o", + "ssl/quic/libssl-lib-quic_tls_api.o", + "ssl/quic/libssl-lib-quic_trace.o", + "ssl/quic/libssl-lib-quic_tserver.o", + "ssl/quic/libssl-lib-quic_txp.o", + "ssl/quic/libssl-lib-quic_txpim.o", + "ssl/quic/libssl-lib-quic_types.o", + "ssl/quic/libssl-lib-quic_wire.o", + "ssl/quic/libssl-lib-quic_wire_pkt.o", + "ssl/quic/libssl-lib-uint_set.o", "ssl/record/libssl-lib-rec_layer_d1.o", "ssl/record/libssl-lib-rec_layer_s3.o", - "ssl/record/libssl-lib-ssl3_buffer.o", - "ssl/record/libssl-lib-ssl3_record.o", - "ssl/record/libssl-lib-ssl3_record_tls13.o", + "ssl/record/methods/libssl-lib-dtls_meth.o", + "ssl/record/methods/libssl-lib-ssl3_meth.o", + "ssl/record/methods/libssl-lib-tls13_meth.o", + "ssl/record/methods/libssl-lib-tls1_meth.o", + "ssl/record/methods/libssl-lib-tls_common.o", + "ssl/record/methods/libssl-lib-tls_multib.o", + "ssl/record/methods/libssl-lib-tlsany_meth.o", + "ssl/rio/libssl-lib-poll_builder.o", + "ssl/rio/libssl-lib-poll_immediate.o", + "ssl/rio/libssl-lib-rio_notifier.o", "ssl/statem/libssl-lib-extensions.o", "ssl/statem/libssl-lib-extensions_clnt.o", "ssl/statem/libssl-lib-extensions_cust.o", @@ -24521,12 +28759,24 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ecx_key.o" => [ "providers/common/der/der_ecx_key.c" ], + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o" => [ + "providers/common/der/der_ml_dsa_gen.c" + ], + "providers/common/der/libcommon-lib-der_ml_dsa_key.o" => [ + "providers/common/der/der_ml_dsa_key.c" + ], "providers/common/der/libcommon-lib-der_rsa_gen.o" => [ "providers/common/der/der_rsa_gen.c" ], "providers/common/der/libcommon-lib-der_rsa_key.o" => [ "providers/common/der/der_rsa_key.c" ], + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o" => [ + "providers/common/der/der_slh_dsa_gen.c" + ], + "providers/common/der/libcommon-lib-der_slh_dsa_key.o" => [ + "providers/common/der/der_slh_dsa_key.c" + ], "providers/common/der/libcommon-lib-der_wrap_gen.o" => [ "providers/common/der/der_wrap_gen.c" ], @@ -24593,6 +28843,9 @@ our %unified_info = ( "providers/common/libfips-lib-securitycheck_fips.o" => [ "providers/common/securitycheck_fips.c" ], + "providers/endecode_test-bin-legacyprov.o" => [ + "providers/legacyprov.c" + ], "providers/evp_extra_test-bin-legacyprov.o" => [ "providers/legacyprov.c" ], @@ -24602,6 +28855,9 @@ our %unified_info = ( "providers/fips/fips-dso-fips_entry.o" => [ "providers/fips/fips_entry.c" ], + "providers/fips/libfips-lib-fipsindicator.o" => [ + "providers/fips/fipsindicator.c" + ], "providers/fips/libfips-lib-fipsprov.o" => [ "providers/fips/fipsprov.c" ], @@ -24665,6 +28921,15 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_hw.o" => [ "providers/implementations/ciphers/cipher_aes_gcm_hw.c" ], + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv.o" => [ + "providers/implementations/ciphers/cipher_aes_gcm_siv.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_hw.o" => [ + "providers/implementations/ciphers/cipher_aes_gcm_siv_hw.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_polyval.o" => [ + "providers/implementations/ciphers/cipher_aes_gcm_siv_polyval.c" + ], "providers/implementations/ciphers/libdefault-lib-cipher_aes_hw.o" => [ "providers/implementations/ciphers/cipher_aes_hw.c" ], @@ -24737,9 +29002,27 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_sm4.o" => [ "providers/implementations/ciphers/cipher_sm4.c" ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm.o" => [ + "providers/implementations/ciphers/cipher_sm4_ccm.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm_hw.o" => [ + "providers/implementations/ciphers/cipher_sm4_ccm_hw.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm.o" => [ + "providers/implementations/ciphers/cipher_sm4_gcm.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm_hw.o" => [ + "providers/implementations/ciphers/cipher_sm4_gcm_hw.c" + ], "providers/implementations/ciphers/libdefault-lib-cipher_sm4_hw.o" => [ "providers/implementations/ciphers/cipher_sm4_hw.c" ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts.o" => [ + "providers/implementations/ciphers/cipher_sm4_xts.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts_hw.o" => [ + "providers/implementations/ciphers/cipher_sm4_xts_hw.c" + ], "providers/implementations/ciphers/libdefault-lib-cipher_tdes.o" => [ "providers/implementations/ciphers/cipher_tdes.c" ], @@ -24959,6 +29242,15 @@ our %unified_info = ( "providers/implementations/encode_decode/libdefault-lib-endecoder_common.o" => [ "providers/implementations/encode_decode/endecoder_common.c" ], + "providers/implementations/encode_decode/libdefault-lib-ml_common_codecs.o" => [ + "providers/implementations/encode_decode/ml_common_codecs.c" + ], + "providers/implementations/encode_decode/libdefault-lib-ml_dsa_codecs.o" => [ + "providers/implementations/encode_decode/ml_dsa_codecs.c" + ], + "providers/implementations/encode_decode/libdefault-lib-ml_kem_codecs.o" => [ + "providers/implementations/encode_decode/ml_kem_codecs.c" + ], "providers/implementations/exchange/libdefault-lib-dh_exch.o" => [ "providers/implementations/exchange/dh_exch.c" ], @@ -24983,9 +29275,15 @@ our %unified_info = ( "providers/implementations/exchange/libfips-lib-kdf_exch.o" => [ "providers/implementations/exchange/kdf_exch.c" ], + "providers/implementations/kdfs/libdefault-lib-argon2.o" => [ + "providers/implementations/kdfs/argon2.c" + ], "providers/implementations/kdfs/libdefault-lib-hkdf.o" => [ "providers/implementations/kdfs/hkdf.c" ], + "providers/implementations/kdfs/libdefault-lib-hmacdrbg_kdf.o" => [ + "providers/implementations/kdfs/hmacdrbg_kdf.c" + ], "providers/implementations/kdfs/libdefault-lib-kbkdf.o" => [ "providers/implementations/kdfs/kbkdf.c" ], @@ -25043,12 +29341,39 @@ our %unified_info = ( "providers/implementations/kdfs/liblegacy-lib-pbkdf1.o" => [ "providers/implementations/kdfs/pbkdf1.c" ], + "providers/implementations/kdfs/liblegacy-lib-pvkkdf.o" => [ + "providers/implementations/kdfs/pvkkdf.c" + ], + "providers/implementations/kem/libdefault-lib-ec_kem.o" => [ + "providers/implementations/kem/ec_kem.c" + ], + "providers/implementations/kem/libdefault-lib-ecx_kem.o" => [ + "providers/implementations/kem/ecx_kem.c" + ], + "providers/implementations/kem/libdefault-lib-kem_util.o" => [ + "providers/implementations/kem/kem_util.c" + ], + "providers/implementations/kem/libdefault-lib-ml_kem_kem.o" => [ + "providers/implementations/kem/ml_kem_kem.c" + ], + "providers/implementations/kem/libdefault-lib-mlx_kem.o" => [ + "providers/implementations/kem/mlx_kem.c" + ], "providers/implementations/kem/libdefault-lib-rsa_kem.o" => [ "providers/implementations/kem/rsa_kem.c" ], + "providers/implementations/kem/libfips-lib-ml_kem_kem.o" => [ + "providers/implementations/kem/ml_kem_kem.c" + ], + "providers/implementations/kem/libfips-lib-mlx_kem.o" => [ + "providers/implementations/kem/mlx_kem.c" + ], "providers/implementations/kem/libfips-lib-rsa_kem.o" => [ "providers/implementations/kem/rsa_kem.c" ], + "providers/implementations/kem/libtemplate-lib-template_kem.o" => [ + "providers/implementations/kem/template_kem.c" + ], "providers/implementations/keymgmt/libdefault-lib-dh_kmgmt.o" => [ "providers/implementations/keymgmt/dh_kmgmt.c" ], @@ -25067,9 +29392,21 @@ our %unified_info = ( "providers/implementations/keymgmt/libdefault-lib-mac_legacy_kmgmt.o" => [ "providers/implementations/keymgmt/mac_legacy_kmgmt.c" ], + "providers/implementations/keymgmt/libdefault-lib-ml_dsa_kmgmt.o" => [ + "providers/implementations/keymgmt/ml_dsa_kmgmt.c" + ], + "providers/implementations/keymgmt/libdefault-lib-ml_kem_kmgmt.o" => [ + "providers/implementations/keymgmt/ml_kem_kmgmt.c" + ], + "providers/implementations/keymgmt/libdefault-lib-mlx_kmgmt.o" => [ + "providers/implementations/keymgmt/mlx_kmgmt.c" + ], "providers/implementations/keymgmt/libdefault-lib-rsa_kmgmt.o" => [ "providers/implementations/keymgmt/rsa_kmgmt.c" ], + "providers/implementations/keymgmt/libdefault-lib-slh_dsa_kmgmt.o" => [ + "providers/implementations/keymgmt/slh_dsa_kmgmt.c" + ], "providers/implementations/keymgmt/libfips-lib-dh_kmgmt.o" => [ "providers/implementations/keymgmt/dh_kmgmt.c" ], @@ -25088,9 +29425,24 @@ our %unified_info = ( "providers/implementations/keymgmt/libfips-lib-mac_legacy_kmgmt.o" => [ "providers/implementations/keymgmt/mac_legacy_kmgmt.c" ], + "providers/implementations/keymgmt/libfips-lib-ml_dsa_kmgmt.o" => [ + "providers/implementations/keymgmt/ml_dsa_kmgmt.c" + ], + "providers/implementations/keymgmt/libfips-lib-ml_kem_kmgmt.o" => [ + "providers/implementations/keymgmt/ml_kem_kmgmt.c" + ], + "providers/implementations/keymgmt/libfips-lib-mlx_kmgmt.o" => [ + "providers/implementations/keymgmt/mlx_kmgmt.c" + ], "providers/implementations/keymgmt/libfips-lib-rsa_kmgmt.o" => [ "providers/implementations/keymgmt/rsa_kmgmt.c" ], + "providers/implementations/keymgmt/libfips-lib-slh_dsa_kmgmt.o" => [ + "providers/implementations/keymgmt/slh_dsa_kmgmt.c" + ], + "providers/implementations/keymgmt/libtemplate-lib-template_kmgmt.o" => [ + "providers/implementations/keymgmt/template_kmgmt.c" + ], "providers/implementations/macs/libdefault-lib-blake2b_mac.o" => [ "providers/implementations/macs/blake2b_mac.c" ], @@ -25127,9 +29479,6 @@ our %unified_info = ( "providers/implementations/macs/libfips-lib-kmac_prov.o" => [ "providers/implementations/macs/kmac_prov.c" ], - "providers/implementations/rands/libdefault-lib-crngt.o" => [ - "providers/implementations/rands/crngt.c" - ], "providers/implementations/rands/libdefault-lib-drbg.o" => [ "providers/implementations/rands/drbg.c" ], @@ -25145,12 +29494,12 @@ our %unified_info = ( "providers/implementations/rands/libdefault-lib-seed_src.o" => [ "providers/implementations/rands/seed_src.c" ], + "providers/implementations/rands/libdefault-lib-seed_src_jitter.o" => [ + "providers/implementations/rands/seed_src_jitter.c" + ], "providers/implementations/rands/libdefault-lib-test_rng.o" => [ "providers/implementations/rands/test_rng.c" ], - "providers/implementations/rands/libfips-lib-crngt.o" => [ - "providers/implementations/rands/crngt.c" - ], "providers/implementations/rands/libfips-lib-drbg.o" => [ "providers/implementations/rands/drbg.c" ], @@ -25163,6 +29512,9 @@ our %unified_info = ( "providers/implementations/rands/libfips-lib-drbg_hmac.o" => [ "providers/implementations/rands/drbg_hmac.c" ], + "providers/implementations/rands/libfips-lib-fips_crng_test.o" => [ + "providers/implementations/rands/fips_crng_test.c" + ], "providers/implementations/rands/libfips-lib-test_rng.o" => [ "providers/implementations/rands/test_rng.c" ], @@ -25190,9 +29542,15 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-mac_legacy_sig.o" => [ "providers/implementations/signature/mac_legacy_sig.c" ], + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o" => [ + "providers/implementations/signature/ml_dsa_sig.c" + ], "providers/implementations/signature/libdefault-lib-rsa_sig.o" => [ "providers/implementations/signature/rsa_sig.c" ], + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o" => [ + "providers/implementations/signature/slh_dsa_sig.c" + ], "providers/implementations/signature/libdefault-lib-sm2_sig.o" => [ "providers/implementations/signature/sm2_sig.c" ], @@ -25208,9 +29566,27 @@ our %unified_info = ( "providers/implementations/signature/libfips-lib-mac_legacy_sig.o" => [ "providers/implementations/signature/mac_legacy_sig.c" ], + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o" => [ + "providers/implementations/signature/ml_dsa_sig.c" + ], "providers/implementations/signature/libfips-lib-rsa_sig.o" => [ "providers/implementations/signature/rsa_sig.c" ], + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o" => [ + "providers/implementations/signature/slh_dsa_sig.c" + ], + "providers/implementations/skeymgmt/libdefault-lib-aes_skmgmt.o" => [ + "providers/implementations/skeymgmt/aes_skmgmt.c" + ], + "providers/implementations/skeymgmt/libdefault-lib-generic.o" => [ + "providers/implementations/skeymgmt/generic.c" + ], + "providers/implementations/skeymgmt/libfips-lib-aes_skmgmt.o" => [ + "providers/implementations/skeymgmt/aes_skmgmt.c" + ], + "providers/implementations/skeymgmt/libfips-lib-generic.o" => [ + "providers/implementations/skeymgmt/generic.c" + ], "providers/implementations/storemgmt/libdefault-lib-file_store.o" => [ "providers/implementations/storemgmt/file_store.c" ], @@ -25233,8 +29609,12 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ec_sig.o", "providers/common/der/libcommon-lib-der_ecx_gen.o", "providers/common/der/libcommon-lib-der_ecx_key.o", + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o", + "providers/common/der/libcommon-lib-der_ml_dsa_key.o", "providers/common/der/libcommon-lib-der_rsa_gen.o", "providers/common/der/libcommon-lib-der_rsa_key.o", + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o", + "providers/common/der/libcommon-lib-der_slh_dsa_key.o", "providers/common/der/libcommon-lib-der_wrap_gen.o", "providers/common/libcommon-lib-provider_ctx.o", "providers/common/libcommon-lib-provider_err.o", @@ -25246,7 +29626,7 @@ our %unified_info = ( "providers/implementations/ciphers/libcommon-lib-ciphercommon_gcm_hw.o", "providers/implementations/ciphers/libcommon-lib-ciphercommon_hw.o", "providers/implementations/digests/libcommon-lib-digestcommon.o", - "ssl/record/libcommon-lib-tls_pad.o" + "ssl/record/methods/libcommon-lib-tls_pad.o" ], "providers/libcrypto-lib-baseprov.o" => [ "providers/baseprov.c" @@ -25282,6 +29662,9 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_aes_ccm_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_polyval.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_ocb.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_ocb_hw.o", @@ -25306,7 +29689,13 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_cts.o", "providers/implementations/ciphers/libdefault-lib-cipher_null.o", "providers/implementations/ciphers/libdefault-lib-cipher_sm4.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_sm4_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes_common.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes_default.o", @@ -25335,11 +29724,16 @@ our %unified_info = ( "providers/implementations/encode_decode/libdefault-lib-encode_key2ms.o", "providers/implementations/encode_decode/libdefault-lib-encode_key2text.o", "providers/implementations/encode_decode/libdefault-lib-endecoder_common.o", + "providers/implementations/encode_decode/libdefault-lib-ml_common_codecs.o", + "providers/implementations/encode_decode/libdefault-lib-ml_dsa_codecs.o", + "providers/implementations/encode_decode/libdefault-lib-ml_kem_codecs.o", "providers/implementations/exchange/libdefault-lib-dh_exch.o", "providers/implementations/exchange/libdefault-lib-ecdh_exch.o", "providers/implementations/exchange/libdefault-lib-ecx_exch.o", "providers/implementations/exchange/libdefault-lib-kdf_exch.o", + "providers/implementations/kdfs/libdefault-lib-argon2.o", "providers/implementations/kdfs/libdefault-lib-hkdf.o", + "providers/implementations/kdfs/libdefault-lib-hmacdrbg_kdf.o", "providers/implementations/kdfs/libdefault-lib-kbkdf.o", "providers/implementations/kdfs/libdefault-lib-krb5kdf.o", "providers/implementations/kdfs/libdefault-lib-pbkdf2.o", @@ -25350,6 +29744,11 @@ our %unified_info = ( "providers/implementations/kdfs/libdefault-lib-sskdf.o", "providers/implementations/kdfs/libdefault-lib-tls1_prf.o", "providers/implementations/kdfs/libdefault-lib-x942kdf.o", + "providers/implementations/kem/libdefault-lib-ec_kem.o", + "providers/implementations/kem/libdefault-lib-ecx_kem.o", + "providers/implementations/kem/libdefault-lib-kem_util.o", + "providers/implementations/kem/libdefault-lib-ml_kem_kem.o", + "providers/implementations/kem/libdefault-lib-mlx_kem.o", "providers/implementations/kem/libdefault-lib-rsa_kem.o", "providers/implementations/keymgmt/libdefault-lib-dh_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-dsa_kmgmt.o", @@ -25357,7 +29756,11 @@ our %unified_info = ( "providers/implementations/keymgmt/libdefault-lib-ecx_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-kdf_legacy_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-mac_legacy_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-ml_dsa_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-ml_kem_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-mlx_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-rsa_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-slh_dsa_kmgmt.o", "providers/implementations/macs/libdefault-lib-blake2b_mac.o", "providers/implementations/macs/libdefault-lib-blake2s_mac.o", "providers/implementations/macs/libdefault-lib-cmac_prov.o", @@ -25366,12 +29769,12 @@ our %unified_info = ( "providers/implementations/macs/libdefault-lib-kmac_prov.o", "providers/implementations/macs/libdefault-lib-poly1305_prov.o", "providers/implementations/macs/libdefault-lib-siphash_prov.o", - "providers/implementations/rands/libdefault-lib-crngt.o", "providers/implementations/rands/libdefault-lib-drbg.o", "providers/implementations/rands/libdefault-lib-drbg_ctr.o", "providers/implementations/rands/libdefault-lib-drbg_hash.o", "providers/implementations/rands/libdefault-lib-drbg_hmac.o", "providers/implementations/rands/libdefault-lib-seed_src.o", + "providers/implementations/rands/libdefault-lib-seed_src_jitter.o", "providers/implementations/rands/libdefault-lib-test_rng.o", "providers/implementations/rands/seeding/libdefault-lib-rand_cpu_x86.o", "providers/implementations/rands/seeding/libdefault-lib-rand_tsc.o", @@ -25381,11 +29784,15 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-ecdsa_sig.o", "providers/implementations/signature/libdefault-lib-eddsa_sig.o", "providers/implementations/signature/libdefault-lib-mac_legacy_sig.o", + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o", "providers/implementations/signature/libdefault-lib-rsa_sig.o", + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o", "providers/implementations/signature/libdefault-lib-sm2_sig.o", + "providers/implementations/skeymgmt/libdefault-lib-aes_skmgmt.o", + "providers/implementations/skeymgmt/libdefault-lib-generic.o", "providers/implementations/storemgmt/libdefault-lib-file_store.o", "providers/implementations/storemgmt/libdefault-lib-file_store_any2obj.o", - "ssl/libdefault-lib-s3_cbc.o" + "ssl/record/methods/libdefault-lib-ssl3_cbc.o" ], "providers/libfips.a" => [ "crypto/aes/libfips-lib-aes_cbc.o", @@ -25393,6 +29800,7 @@ our %unified_info = ( "crypto/aes/libfips-lib-aes_ecb.o", "crypto/aes/libfips-lib-aes_misc.o", "crypto/aes/libfips-lib-aesv8-armx.o", + "crypto/aes/libfips-lib-bsaes-armv8.o", "crypto/aes/libfips-lib-vpaes-armv8.o", "crypto/bn/libfips-lib-armv8-mont.o", "crypto/bn/libfips-lib-bn_add.o", @@ -25474,6 +29882,9 @@ our %unified_info = ( "crypto/ec/libfips-lib-ecp_nistz256-armv8.o", "crypto/ec/libfips-lib-ecp_nistz256.o", "crypto/ec/libfips-lib-ecp_oct.o", + "crypto/ec/libfips-lib-ecp_sm2p256-armv8.o", + "crypto/ec/libfips-lib-ecp_sm2p256.o", + "crypto/ec/libfips-lib-ecp_sm2p256_table.o", "crypto/ec/libfips-lib-ecp_smpl.o", "crypto/ec/libfips-lib-ecx_backend.o", "crypto/ec/libfips-lib-ecx_key.o", @@ -25492,14 +29903,15 @@ our %unified_info = ( "crypto/evp/libfips-lib-kem.o", "crypto/evp/libfips-lib-keymgmt_lib.o", "crypto/evp/libfips-lib-keymgmt_meth.o", - "crypto/evp/libfips-lib-m_sigver.o", "crypto/evp/libfips-lib-mac_lib.o", "crypto/evp/libfips-lib-mac_meth.o", "crypto/evp/libfips-lib-p_lib.o", "crypto/evp/libfips-lib-pmeth_check.o", "crypto/evp/libfips-lib-pmeth_gn.o", "crypto/evp/libfips-lib-pmeth_lib.o", + "crypto/evp/libfips-lib-s_lib.o", "crypto/evp/libfips-lib-signature.o", + "crypto/evp/libfips-lib-skeymgmt_meth.o", "crypto/ffc/libfips-lib-ffc_backend.o", "crypto/ffc/libfips-lib-ffc_dh.o", "crypto/ffc/libfips-lib-ffc_key_generate.o", @@ -25507,6 +29919,8 @@ our %unified_info = ( "crypto/ffc/libfips-lib-ffc_params.o", "crypto/ffc/libfips-lib-ffc_params_generate.o", "crypto/ffc/libfips-lib-ffc_params_validate.o", + "crypto/hashtable/libfips-lib-hashfunc.o", + "crypto/hashtable/libfips-lib-hashtable.o", "crypto/hmac/libfips-lib-hmac.o", "crypto/lhash/libfips-lib-lhash.o", "crypto/libfips-lib-arm64cpuid.o", @@ -25530,6 +29944,7 @@ our %unified_info = ( "crypto/libfips-lib-params.o", "crypto/libfips-lib-params_dup.o", "crypto/libfips-lib-params_from_text.o", + "crypto/libfips-lib-params_idx.o", "crypto/libfips-lib-provider_core.o", "crypto/libfips-lib-provider_predefined.o", "crypto/libfips-lib-self_test_core.o", @@ -25538,6 +29953,17 @@ our %unified_info = ( "crypto/libfips-lib-threads_none.o", "crypto/libfips-lib-threads_pthread.o", "crypto/libfips-lib-threads_win.o", + "crypto/libfips-lib-time.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_encoders.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_key.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_key_compress.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_matrix.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_ntt.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_params.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_sample.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_sign.o", + "crypto/ml_kem/libfips-lib-ml_kem.o", + "crypto/modes/libfips-lib-aes-gcm-armv8-unroll8_64.o", "crypto/modes/libfips-lib-aes-gcm-armv8_64.o", "crypto/modes/libfips-lib-cbc128.o", "crypto/modes/libfips-lib-ccm128.o", @@ -25548,6 +29974,7 @@ our %unified_info = ( "crypto/modes/libfips-lib-ofb128.o", "crypto/modes/libfips-lib-wrap128.o", "crypto/modes/libfips-lib-xts128.o", + "crypto/modes/libfips-lib-xts128gb.o", "crypto/property/libfips-lib-defn_cache.o", "crypto/property/libfips-lib-property.o", "crypto/property/libfips-lib-property_parse.o", @@ -25579,7 +30006,23 @@ our %unified_info = ( "crypto/sha/libfips-lib-sha3.o", "crypto/sha/libfips-lib-sha512-armv8.o", "crypto/sha/libfips-lib-sha512.o", + "crypto/slh_dsa/libfips-lib-slh_adrs.o", + "crypto/slh_dsa/libfips-lib-slh_dsa.o", + "crypto/slh_dsa/libfips-lib-slh_dsa_hash_ctx.o", + "crypto/slh_dsa/libfips-lib-slh_dsa_key.o", + "crypto/slh_dsa/libfips-lib-slh_fors.o", + "crypto/slh_dsa/libfips-lib-slh_hash.o", + "crypto/slh_dsa/libfips-lib-slh_hypertree.o", + "crypto/slh_dsa/libfips-lib-slh_params.o", + "crypto/slh_dsa/libfips-lib-slh_wots.o", + "crypto/slh_dsa/libfips-lib-slh_xmss.o", "crypto/stack/libfips-lib-stack.o", + "crypto/thread/arch/libfips-lib-thread_none.o", + "crypto/thread/arch/libfips-lib-thread_posix.o", + "crypto/thread/arch/libfips-lib-thread_win.o", + "crypto/thread/libfips-lib-api.o", + "crypto/thread/libfips-lib-arch.o", + "crypto/thread/libfips-lib-internal.o", "providers/common/der/libfips-lib-der_rsa_sig.o", "providers/common/libfips-lib-bio_prov.o", "providers/common/libfips-lib-capabilities.o", @@ -25588,6 +30031,7 @@ our %unified_info = ( "providers/common/libfips-lib-provider_util.o", "providers/common/libfips-lib-securitycheck.o", "providers/common/libfips-lib-securitycheck_fips.o", + "providers/fips/libfips-lib-fipsindicator.o", "providers/fips/libfips-lib-fipsprov.o", "providers/fips/libfips-lib-self_test.o", "providers/fips/libfips-lib-self_test_kats.o", @@ -25625,6 +30069,8 @@ our %unified_info = ( "providers/implementations/kdfs/libfips-lib-sskdf.o", "providers/implementations/kdfs/libfips-lib-tls1_prf.o", "providers/implementations/kdfs/libfips-lib-x942kdf.o", + "providers/implementations/kem/libfips-lib-ml_kem_kem.o", + "providers/implementations/kem/libfips-lib-mlx_kem.o", "providers/implementations/kem/libfips-lib-rsa_kem.o", "providers/implementations/keymgmt/libfips-lib-dh_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-dsa_kmgmt.o", @@ -25632,24 +30078,32 @@ our %unified_info = ( "providers/implementations/keymgmt/libfips-lib-ecx_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-kdf_legacy_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-mac_legacy_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-ml_dsa_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-ml_kem_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-mlx_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-rsa_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-slh_dsa_kmgmt.o", "providers/implementations/macs/libfips-lib-cmac_prov.o", "providers/implementations/macs/libfips-lib-gmac_prov.o", "providers/implementations/macs/libfips-lib-hmac_prov.o", "providers/implementations/macs/libfips-lib-kmac_prov.o", - "providers/implementations/rands/libfips-lib-crngt.o", "providers/implementations/rands/libfips-lib-drbg.o", "providers/implementations/rands/libfips-lib-drbg_ctr.o", "providers/implementations/rands/libfips-lib-drbg_hash.o", "providers/implementations/rands/libfips-lib-drbg_hmac.o", + "providers/implementations/rands/libfips-lib-fips_crng_test.o", "providers/implementations/rands/libfips-lib-test_rng.o", "providers/implementations/signature/libfips-lib-dsa_sig.o", "providers/implementations/signature/libfips-lib-ecdsa_sig.o", "providers/implementations/signature/libfips-lib-eddsa_sig.o", "providers/implementations/signature/libfips-lib-mac_legacy_sig.o", + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o", "providers/implementations/signature/libfips-lib-rsa_sig.o", + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o", + "providers/implementations/skeymgmt/libfips-lib-aes_skmgmt.o", + "providers/implementations/skeymgmt/libfips-lib-generic.o", "providers/libcommon.a", - "ssl/libfips-lib-s3_cbc.o" + "ssl/record/methods/libfips-lib-ssl3_cbc.o" ], "providers/liblegacy-lib-prov_running.o" => [ "providers/prov_running.c" @@ -25679,13 +30133,12 @@ our %unified_info = ( "providers/implementations/digests/liblegacy-lib-ripemd_prov.o", "providers/implementations/digests/liblegacy-lib-wp_prov.o", "providers/implementations/kdfs/liblegacy-lib-pbkdf1.o", + "providers/implementations/kdfs/liblegacy-lib-pvkkdf.o", "providers/liblegacy-lib-prov_running.o" ], - "ssl/libdefault-lib-s3_cbc.o" => [ - "ssl/s3_cbc.c" - ], - "ssl/libfips-lib-s3_cbc.o" => [ - "ssl/s3_cbc.c" + "providers/libtemplate.a" => [ + "providers/implementations/kem/libtemplate-lib-template_kem.o", + "providers/implementations/keymgmt/libtemplate-lib-template_kmgmt.o" ], "ssl/libssl-lib-bio_ssl.o" => [ "ssl/bio_ssl.c" @@ -25705,6 +30158,9 @@ our %unified_info = ( "ssl/libssl-lib-pqueue.o" => [ "ssl/pqueue.c" ], + "ssl/libssl-lib-priority_queue.o" => [ + "ssl/priority_queue.c" + ], "ssl/libssl-lib-s3_enc.o" => [ "ssl/s3_enc.c" ], @@ -25720,15 +30176,15 @@ our %unified_info = ( "ssl/libssl-lib-ssl_cert.o" => [ "ssl/ssl_cert.c" ], + "ssl/libssl-lib-ssl_cert_comp.o" => [ + "ssl/ssl_cert_comp.c" + ], "ssl/libssl-lib-ssl_ciph.o" => [ "ssl/ssl_ciph.c" ], "ssl/libssl-lib-ssl_conf.o" => [ "ssl/ssl_conf.c" ], - "ssl/libssl-lib-ssl_err.o" => [ - "ssl/ssl_err.c" - ], "ssl/libssl-lib-ssl_err_legacy.o" => [ "ssl/ssl_err_legacy.c" ], @@ -25777,11 +30233,131 @@ our %unified_info = ( "ssl/libssl-lib-tls_srp.o" => [ "ssl/tls_srp.c" ], - "ssl/record/libcommon-lib-tls_pad.o" => [ - "ssl/record/tls_pad.c" + "ssl/quic/libssl-lib-cc_newreno.o" => [ + "ssl/quic/cc_newreno.c" + ], + "ssl/quic/libssl-lib-json_enc.o" => [ + "ssl/quic/json_enc.c" + ], + "ssl/quic/libssl-lib-qlog.o" => [ + "ssl/quic/qlog.c" + ], + "ssl/quic/libssl-lib-qlog_event_helpers.o" => [ + "ssl/quic/qlog_event_helpers.c" + ], + "ssl/quic/libssl-lib-quic_ackm.o" => [ + "ssl/quic/quic_ackm.c" + ], + "ssl/quic/libssl-lib-quic_cfq.o" => [ + "ssl/quic/quic_cfq.c" + ], + "ssl/quic/libssl-lib-quic_channel.o" => [ + "ssl/quic/quic_channel.c" + ], + "ssl/quic/libssl-lib-quic_demux.o" => [ + "ssl/quic/quic_demux.c" + ], + "ssl/quic/libssl-lib-quic_engine.o" => [ + "ssl/quic/quic_engine.c" + ], + "ssl/quic/libssl-lib-quic_fc.o" => [ + "ssl/quic/quic_fc.c" + ], + "ssl/quic/libssl-lib-quic_fifd.o" => [ + "ssl/quic/quic_fifd.c" + ], + "ssl/quic/libssl-lib-quic_impl.o" => [ + "ssl/quic/quic_impl.c" + ], + "ssl/quic/libssl-lib-quic_lcidm.o" => [ + "ssl/quic/quic_lcidm.c" + ], + "ssl/quic/libssl-lib-quic_method.o" => [ + "ssl/quic/quic_method.c" + ], + "ssl/quic/libssl-lib-quic_obj.o" => [ + "ssl/quic/quic_obj.c" + ], + "ssl/quic/libssl-lib-quic_port.o" => [ + "ssl/quic/quic_port.c" + ], + "ssl/quic/libssl-lib-quic_rcidm.o" => [ + "ssl/quic/quic_rcidm.c" + ], + "ssl/quic/libssl-lib-quic_reactor.o" => [ + "ssl/quic/quic_reactor.c" + ], + "ssl/quic/libssl-lib-quic_reactor_wait_ctx.o" => [ + "ssl/quic/quic_reactor_wait_ctx.c" + ], + "ssl/quic/libssl-lib-quic_record_rx.o" => [ + "ssl/quic/quic_record_rx.c" + ], + "ssl/quic/libssl-lib-quic_record_shared.o" => [ + "ssl/quic/quic_record_shared.c" + ], + "ssl/quic/libssl-lib-quic_record_tx.o" => [ + "ssl/quic/quic_record_tx.c" + ], + "ssl/quic/libssl-lib-quic_record_util.o" => [ + "ssl/quic/quic_record_util.c" + ], + "ssl/quic/libssl-lib-quic_rstream.o" => [ + "ssl/quic/quic_rstream.c" ], - "ssl/record/libssl-lib-dtls1_bitmap.o" => [ - "ssl/record/dtls1_bitmap.c" + "ssl/quic/libssl-lib-quic_rx_depack.o" => [ + "ssl/quic/quic_rx_depack.c" + ], + "ssl/quic/libssl-lib-quic_sf_list.o" => [ + "ssl/quic/quic_sf_list.c" + ], + "ssl/quic/libssl-lib-quic_srt_gen.o" => [ + "ssl/quic/quic_srt_gen.c" + ], + "ssl/quic/libssl-lib-quic_srtm.o" => [ + "ssl/quic/quic_srtm.c" + ], + "ssl/quic/libssl-lib-quic_sstream.o" => [ + "ssl/quic/quic_sstream.c" + ], + "ssl/quic/libssl-lib-quic_statm.o" => [ + "ssl/quic/quic_statm.c" + ], + "ssl/quic/libssl-lib-quic_stream_map.o" => [ + "ssl/quic/quic_stream_map.c" + ], + "ssl/quic/libssl-lib-quic_thread_assist.o" => [ + "ssl/quic/quic_thread_assist.c" + ], + "ssl/quic/libssl-lib-quic_tls.o" => [ + "ssl/quic/quic_tls.c" + ], + "ssl/quic/libssl-lib-quic_tls_api.o" => [ + "ssl/quic/quic_tls_api.c" + ], + "ssl/quic/libssl-lib-quic_trace.o" => [ + "ssl/quic/quic_trace.c" + ], + "ssl/quic/libssl-lib-quic_tserver.o" => [ + "ssl/quic/quic_tserver.c" + ], + "ssl/quic/libssl-lib-quic_txp.o" => [ + "ssl/quic/quic_txp.c" + ], + "ssl/quic/libssl-lib-quic_txpim.o" => [ + "ssl/quic/quic_txpim.c" + ], + "ssl/quic/libssl-lib-quic_types.o" => [ + "ssl/quic/quic_types.c" + ], + "ssl/quic/libssl-lib-quic_wire.o" => [ + "ssl/quic/quic_wire.c" + ], + "ssl/quic/libssl-lib-quic_wire_pkt.o" => [ + "ssl/quic/quic_wire_pkt.c" + ], + "ssl/quic/libssl-lib-uint_set.o" => [ + "ssl/quic/uint_set.c" ], "ssl/record/libssl-lib-rec_layer_d1.o" => [ "ssl/record/rec_layer_d1.c" @@ -25789,14 +30365,44 @@ our %unified_info = ( "ssl/record/libssl-lib-rec_layer_s3.o" => [ "ssl/record/rec_layer_s3.c" ], - "ssl/record/libssl-lib-ssl3_buffer.o" => [ - "ssl/record/ssl3_buffer.c" + "ssl/record/methods/libcommon-lib-tls_pad.o" => [ + "ssl/record/methods/tls_pad.c" + ], + "ssl/record/methods/libdefault-lib-ssl3_cbc.o" => [ + "ssl/record/methods/ssl3_cbc.c" + ], + "ssl/record/methods/libfips-lib-ssl3_cbc.o" => [ + "ssl/record/methods/ssl3_cbc.c" + ], + "ssl/record/methods/libssl-lib-dtls_meth.o" => [ + "ssl/record/methods/dtls_meth.c" + ], + "ssl/record/methods/libssl-lib-ssl3_meth.o" => [ + "ssl/record/methods/ssl3_meth.c" + ], + "ssl/record/methods/libssl-lib-tls13_meth.o" => [ + "ssl/record/methods/tls13_meth.c" + ], + "ssl/record/methods/libssl-lib-tls1_meth.o" => [ + "ssl/record/methods/tls1_meth.c" + ], + "ssl/record/methods/libssl-lib-tls_common.o" => [ + "ssl/record/methods/tls_common.c" ], - "ssl/record/libssl-lib-ssl3_record.o" => [ - "ssl/record/ssl3_record.c" + "ssl/record/methods/libssl-lib-tls_multib.o" => [ + "ssl/record/methods/tls_multib.c" ], - "ssl/record/libssl-lib-ssl3_record_tls13.o" => [ - "ssl/record/ssl3_record_tls13.c" + "ssl/record/methods/libssl-lib-tlsany_meth.o" => [ + "ssl/record/methods/tlsany_meth.c" + ], + "ssl/rio/libssl-lib-poll_builder.o" => [ + "ssl/rio/poll_builder.c" + ], + "ssl/rio/libssl-lib-poll_immediate.o" => [ + "ssl/rio/poll_immediate.c" + ], + "ssl/rio/libssl-lib-rio_notifier.o" => [ + "ssl/rio/rio_notifier.c" ], "ssl/statem/libssl-lib-extensions.o" => [ "ssl/statem/extensions.c" @@ -25892,6 +30498,8 @@ our %unified_info = ( "test/asn1_string_table_test.c" ], "test/asn1_time_test" => [ + "crypto/asn1/asn1_time_test-bin-a_time.o", + "crypto/asn1_time_test-bin-ctype.o", "test/asn1_time_test-bin-asn1_time_test.o" ], "test/asn1_time_test-bin-asn1_time_test.o" => [ @@ -25922,6 +30530,18 @@ our %unified_info = ( "test/bftest-bin-bftest.o" => [ "test/bftest.c" ], + "test/bio_addr_test" => [ + "test/bio_addr_test-bin-bio_addr_test.o" + ], + "test/bio_addr_test-bin-bio_addr_test.o" => [ + "test/bio_addr_test.c" + ], + "test/bio_base64_test" => [ + "test/bio_base64_test-bin-bio_base64_test.o" + ], + "test/bio_base64_test-bin-bio_base64_test.o" => [ + "test/bio_base64_test.c" + ], "test/bio_callback_test" => [ "test/bio_callback_test-bin-bio_callback_test.o" ], @@ -25934,6 +30554,12 @@ our %unified_info = ( "test/bio_core_test-bin-bio_core_test.o" => [ "test/bio_core_test.c" ], + "test/bio_dgram_test" => [ + "test/bio_dgram_test-bin-bio_dgram_test.o" + ], + "test/bio_dgram_test-bin-bio_dgram_test.o" => [ + "test/bio_dgram_test.c" + ], "test/bio_enc_test" => [ "test/bio_enc_test-bin-bio_enc_test.o" ], @@ -25946,6 +30572,12 @@ our %unified_info = ( "test/bio_memleak_test-bin-bio_memleak_test.o" => [ "test/bio_memleak_test.c" ], + "test/bio_meth_test" => [ + "test/bio_meth_test-bin-bio_meth_test.o" + ], + "test/bio_meth_test-bin-bio_meth_test.o" => [ + "test/bio_meth_test.c" + ], "test/bio_prefix_text" => [ "test/bio_prefix_text-bin-bio_prefix_text.o" ], @@ -25964,6 +30596,12 @@ our %unified_info = ( "test/bio_readbuffer_test-bin-bio_readbuffer_test.o" => [ "test/bio_readbuffer_test.c" ], + "test/bio_tfo_test" => [ + "test/bio_tfo_test-bin-bio_tfo_test.o" + ], + "test/bio_tfo_test-bin-bio_tfo_test.o" => [ + "test/bio_tfo_test.c" + ], "test/bioprinttest" => [ "test/bioprinttest-bin-bioprinttest.o" ], @@ -25982,6 +30620,12 @@ our %unified_info = ( "test/bntest-bin-bntest.o" => [ "test/bntest.c" ], + "test/build_wincrypt_test" => [ + "test/build_wincrypt_test-bin-build_wincrypt_test.o" + ], + "test/build_wincrypt_test-bin-build_wincrypt_test.o" => [ + "test/build_wincrypt_test.c" + ], "test/buildtest_c_aes" => [ "test/buildtest_c_aes-bin-buildtest_aes.o" ], @@ -26012,6 +30656,12 @@ our %unified_info = ( "test/buildtest_c_buffer-bin-buildtest_buffer.o" => [ "test/buildtest_buffer.c" ], + "test/buildtest_c_byteorder" => [ + "test/buildtest_c_byteorder-bin-buildtest_byteorder.o" + ], + "test/buildtest_c_byteorder-bin-buildtest_byteorder.o" => [ + "test/buildtest_byteorder.c" + ], "test/buildtest_c_camellia" => [ "test/buildtest_c_camellia-bin-buildtest_camellia.o" ], @@ -26060,12 +30710,6 @@ our %unified_info = ( "test/buildtest_c_core_dispatch-bin-buildtest_core_dispatch.o" => [ "test/buildtest_core_dispatch.c" ], - "test/buildtest_c_core_names" => [ - "test/buildtest_c_core_names-bin-buildtest_core_names.o" - ], - "test/buildtest_c_core_names-bin-buildtest_core_names.o" => [ - "test/buildtest_core_names.c" - ], "test/buildtest_c_core_object" => [ "test/buildtest_c_core_object-bin-buildtest_core_object.o" ], @@ -26114,6 +30758,12 @@ our %unified_info = ( "test/buildtest_c_e_os2-bin-buildtest_e_os2.o" => [ "test/buildtest_e_os2.c" ], + "test/buildtest_c_e_ostime" => [ + "test/buildtest_c_e_ostime-bin-buildtest_e_ostime.o" + ], + "test/buildtest_c_e_ostime-bin-buildtest_e_ostime.o" => [ + "test/buildtest_e_ostime.c" + ], "test/buildtest_c_ebcdic" => [ "test/buildtest_c_ebcdic-bin-buildtest_ebcdic.o" ], @@ -26168,6 +30818,12 @@ our %unified_info = ( "test/buildtest_c_hmac-bin-buildtest_hmac.o" => [ "test/buildtest_hmac.c" ], + "test/buildtest_c_hpke" => [ + "test/buildtest_c_hpke-bin-buildtest_hpke.o" + ], + "test/buildtest_c_hpke-bin-buildtest_hpke.o" => [ + "test/buildtest_hpke.c" + ], "test/buildtest_c_http" => [ "test/buildtest_c_http-bin-buildtest_http.o" ], @@ -26180,6 +30836,12 @@ our %unified_info = ( "test/buildtest_c_idea-bin-buildtest_idea.o" => [ "test/buildtest_idea.c" ], + "test/buildtest_c_indicator" => [ + "test/buildtest_c_indicator-bin-buildtest_indicator.o" + ], + "test/buildtest_c_indicator-bin-buildtest_indicator.o" => [ + "test/buildtest_indicator.c" + ], "test/buildtest_c_kdf" => [ "test/buildtest_c_kdf-bin-buildtest_kdf.o" ], @@ -26210,6 +30872,12 @@ our %unified_info = ( "test/buildtest_c_mdc2-bin-buildtest_mdc2.o" => [ "test/buildtest_mdc2.c" ], + "test/buildtest_c_ml_kem" => [ + "test/buildtest_c_ml_kem-bin-buildtest_ml_kem.o" + ], + "test/buildtest_c_ml_kem-bin-buildtest_ml_kem.o" => [ + "test/buildtest_ml_kem.c" + ], "test/buildtest_c_modes" => [ "test/buildtest_c_modes-bin-buildtest_modes.o" ], @@ -26270,6 +30938,12 @@ our %unified_info = ( "test/buildtest_c_provider-bin-buildtest_provider.o" => [ "test/buildtest_provider.c" ], + "test/buildtest_c_quic" => [ + "test/buildtest_c_quic-bin-buildtest_quic.o" + ], + "test/buildtest_c_quic-bin-buildtest_quic.o" => [ + "test/buildtest_quic.c" + ], "test/buildtest_c_rand" => [ "test/buildtest_c_rand-bin-buildtest_rand.o" ], @@ -26354,6 +31028,12 @@ our %unified_info = ( "test/buildtest_c_symhacks-bin-buildtest_symhacks.o" => [ "test/buildtest_symhacks.c" ], + "test/buildtest_c_thread" => [ + "test/buildtest_c_thread-bin-buildtest_thread.o" + ], + "test/buildtest_c_thread-bin-buildtest_thread.o" => [ + "test/buildtest_thread.c" + ], "test/buildtest_c_tls1" => [ "test/buildtest_c_tls1-bin-buildtest_tls1.o" ], @@ -26384,6 +31064,29 @@ our %unified_info = ( "test/buildtest_c_whrlpool-bin-buildtest_whrlpool.o" => [ "test/buildtest_whrlpool.c" ], + "test/byteorder_test" => [ + "test/byteorder_test-bin-byteorder_test.o" + ], + "test/byteorder_test-bin-byteorder_test.o" => [ + "test/byteorder_test.c" + ], + "test/ca_internals_test" => [ + "apps/ca_internals_test-bin-ca.o", + "apps/lib/ca_internals_test-bin-app_libctx.o", + "apps/lib/ca_internals_test-bin-app_provider.o", + "apps/lib/ca_internals_test-bin-app_rand.o", + "apps/lib/ca_internals_test-bin-app_x509.o", + "apps/lib/ca_internals_test-bin-apps.o", + "apps/lib/ca_internals_test-bin-apps_ui.o", + "apps/lib/ca_internals_test-bin-engine.o", + "apps/lib/ca_internals_test-bin-fmt.o", + "crypto/asn1/ca_internals_test-bin-a_time.o", + "crypto/ca_internals_test-bin-ctype.o", + "test/ca_internals_test-bin-ca_internals_test.o" + ], + "test/ca_internals_test-bin-ca_internals_test.o" => [ + "test/ca_internals_test.c" + ], "test/casttest" => [ "test/casttest-bin-casttest.o" ], @@ -26562,6 +31265,12 @@ our %unified_info = ( "test/danetest-bin-danetest.o" => [ "test/danetest.c" ], + "test/decoder_propq_test" => [ + "test/decoder_propq_test-bin-decoder_propq_test.o" + ], + "test/decoder_propq_test-bin-decoder_propq_test.o" => [ + "test/decoder_propq_test.c" + ], "test/defltfips_test" => [ "test/defltfips_test-bin-defltfips_test.o" ], @@ -26643,6 +31352,7 @@ our %unified_info = ( "test/ectest.c" ], "test/endecode_test" => [ + "providers/endecode_test-bin-legacyprov.o", "test/endecode_test-bin-endecode_test.o", "test/helpers/endecode_test-bin-predefined_dhparams.o" ], @@ -26675,17 +31385,29 @@ our %unified_info = ( ], "test/evp_extra_test" => [ "providers/evp_extra_test-bin-legacyprov.o", - "test/evp_extra_test-bin-evp_extra_test.o" + "test/evp_extra_test-bin-evp_extra_test.o", + "test/evp_extra_test-bin-fake_pipelineprov.o", + "test/evp_extra_test-bin-fake_rsaprov.o" ], "test/evp_extra_test-bin-evp_extra_test.o" => [ "test/evp_extra_test.c" ], + "test/evp_extra_test-bin-fake_pipelineprov.o" => [ + "test/fake_pipelineprov.c" + ], + "test/evp_extra_test-bin-fake_rsaprov.o" => [ + "test/fake_rsaprov.c" + ], "test/evp_extra_test2" => [ - "test/evp_extra_test2-bin-evp_extra_test2.o" + "test/evp_extra_test2-bin-evp_extra_test2.o", + "test/evp_extra_test2-bin-tls-provider.o" ], "test/evp_extra_test2-bin-evp_extra_test2.o" => [ "test/evp_extra_test2.c" ], + "test/evp_extra_test2-bin-tls-provider.o" => [ + "test/tls-provider.c" + ], "test/evp_fetch_prov_test" => [ "test/evp_fetch_prov_test-bin-evp_fetch_prov_test.o" ], @@ -26710,6 +31432,12 @@ our %unified_info = ( "test/evp_pkey_ctx_new_from_name-bin-evp_pkey_ctx_new_from_name.o" => [ "test/evp_pkey_ctx_new_from_name.c" ], + "test/evp_pkey_dhkem_test" => [ + "test/evp_pkey_dhkem_test-bin-evp_pkey_dhkem_test.o" + ], + "test/evp_pkey_dhkem_test-bin-evp_pkey_dhkem_test.o" => [ + "test/evp_pkey_dhkem_test.c" + ], "test/evp_pkey_dparams_test" => [ "test/evp_pkey_dparams_test-bin-evp_pkey_dparams_test.o" ], @@ -26722,12 +31450,28 @@ our %unified_info = ( "test/evp_pkey_provided_test-bin-evp_pkey_provided_test.o" => [ "test/evp_pkey_provided_test.c" ], + "test/evp_skey_test" => [ + "test/evp_skey_test-bin-evp_skey_test.o", + "test/evp_skey_test-bin-fake_cipherprov.o" + ], + "test/evp_skey_test-bin-evp_skey_test.o" => [ + "test/evp_skey_test.c" + ], + "test/evp_skey_test-bin-fake_cipherprov.o" => [ + "test/fake_cipherprov.c" + ], "test/evp_test" => [ "test/evp_test-bin-evp_test.o" ], "test/evp_test-bin-evp_test.o" => [ "test/evp_test.c" ], + "test/evp_xof_test" => [ + "test/evp_xof_test-bin-evp_xof_test.o" + ], + "test/evp_xof_test-bin-evp_xof_test.o" => [ + "test/evp_xof_test.c" + ], "test/exdatatest" => [ "test/exdatatest-bin-exdatatest.o" ], @@ -26813,15 +31557,108 @@ our %unified_info = ( "test/helpers/fatalerrtest-bin-ssltestlib.o" => [ "test/helpers/ssltestlib.c" ], + "test/helpers/json_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/json_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/json_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/json_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/pkcs12_api_test-bin-pkcs12.o" => [ + "test/helpers/pkcs12.c" + ], "test/helpers/pkcs12_format_test-bin-pkcs12.o" => [ "test/helpers/pkcs12.c" ], + "test/helpers/quic_multistream_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quic_multistream_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quic_multistream_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quic_multistream_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quic_newcid_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quic_newcid_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quic_newcid_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quic_newcid_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quic_radix_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quic_radix_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quic_radix_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quic_radix_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quic_srt_gen_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quic_srt_gen_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quic_srt_gen_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quic_srt_gen_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quicapitest-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quicapitest-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quicapitest-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quicapitest-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quicfaultstest-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quicfaultstest-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quicfaultstest-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quicfaultstest-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], "test/helpers/recordlentest-bin-ssltestlib.o" => [ "test/helpers/ssltestlib.c" ], + "test/helpers/rpktest-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], "test/helpers/servername_test-bin-ssltestlib.o" => [ "test/helpers/ssltestlib.c" ], + "test/helpers/ssl_handshake_rtt_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], "test/helpers/ssl_old_test-bin-predefined_dhparams.o" => [ "test/helpers/predefined_dhparams.c" ], @@ -26849,6 +31686,9 @@ our %unified_info = ( "test/helpers/tls13ccstest-bin-ssltestlib.o" => [ "test/helpers/ssltestlib.c" ], + "test/helpers/tls13groupselection_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], "test/hexstr_test" => [ "test/hexstr_test-bin-hexstr_test.o" ], @@ -26861,6 +31701,12 @@ our %unified_info = ( "test/hmactest-bin-hmactest.o" => [ "test/hmactest.c" ], + "test/hpke_test" => [ + "test/hpke_test-bin-hpke_test.o" + ], + "test/hpke_test-bin-hpke_test.o" => [ + "test/hpke_test.c" + ], "test/http_test" => [ "test/http_test-bin-http_test.o" ], @@ -26879,6 +31725,16 @@ our %unified_info = ( "test/igetest-bin-igetest.o" => [ "test/igetest.c" ], + "test/json_test" => [ + "test/helpers/json_test-bin-noisydgrambio.o", + "test/helpers/json_test-bin-pktsplitbio.o", + "test/helpers/json_test-bin-quictestlib.o", + "test/helpers/json_test-bin-ssltestlib.o", + "test/json_test-bin-json_test.o" + ], + "test/json_test-bin-json_test.o" => [ + "test/json_test.c" + ], "test/keymgmt_internal_test" => [ "test/keymgmt_internal_test-bin-keymgmt_internal_test.o" ], @@ -26899,6 +31755,7 @@ our %unified_info = ( "test/testutil/libtestutil-lib-driver.o", "test/testutil/libtestutil-lib-fake_random.o", "test/testutil/libtestutil-lib-format_output.o", + "test/testutil/libtestutil-lib-helper.o", "test/testutil/libtestutil-lib-load.o", "test/testutil/libtestutil-lib-main.o", "test/testutil/libtestutil-lib-options.o", @@ -26911,6 +31768,12 @@ our %unified_info = ( "test/testutil/libtestutil-lib-tests.o", "test/testutil/libtestutil-lib-testutil_init.o" ], + "test/list_test" => [ + "test/list_test-bin-list_test.o" + ], + "test/list_test-bin-list_test.o" => [ + "test/list_test.c" + ], "test/localetest" => [ "test/localetest-bin-localetest.o" ], @@ -26929,12 +31792,36 @@ our %unified_info = ( "test/mdc2test-bin-mdc2test.o" => [ "test/mdc2test.c" ], + "test/membio_test" => [ + "test/membio_test-bin-membio_test.o" + ], + "test/membio_test-bin-membio_test.o" => [ + "test/membio_test.c" + ], "test/memleaktest" => [ "test/memleaktest-bin-memleaktest.o" ], "test/memleaktest-bin-memleaktest.o" => [ "test/memleaktest.c" ], + "test/ml_dsa_test" => [ + "test/ml_dsa_test-bin-ml_dsa_test.o" + ], + "test/ml_dsa_test-bin-ml_dsa_test.o" => [ + "test/ml_dsa_test.c" + ], + "test/ml_kem_evp_extra_test" => [ + "test/ml_kem_evp_extra_test-bin-ml_kem_evp_extra_test.o" + ], + "test/ml_kem_evp_extra_test-bin-ml_kem_evp_extra_test.o" => [ + "test/ml_kem_evp_extra_test.c" + ], + "test/ml_kem_internal_test" => [ + "test/ml_kem_internal_test-bin-ml_kem_internal_test.o" + ], + "test/ml_kem_internal_test-bin-ml_kem_internal_test.o" => [ + "test/ml_kem_internal_test.c" + ], "test/modes_internal_test" => [ "test/modes_internal_test-bin-modes_internal_test.o" ], @@ -26978,11 +31865,18 @@ our %unified_info = ( "test/p_test.c" ], "test/packettest" => [ + "crypto/packettest-bin-quic_vlint.o", "test/packettest-bin-packettest.o" ], "test/packettest-bin-packettest.o" => [ "test/packettest.c" ], + "test/pairwise_fail_test" => [ + "test/pairwise_fail_test-bin-pairwise_fail_test.o" + ], + "test/pairwise_fail_test-bin-pairwise_fail_test.o" => [ + "test/pairwise_fail_test.c" + ], "test/param_build_test" => [ "test/param_build_test-bin-param_build_test.o" ], @@ -27031,6 +31925,13 @@ our %unified_info = ( "test/pemtest-bin-pemtest.o" => [ "test/pemtest.c" ], + "test/pkcs12_api_test" => [ + "test/helpers/pkcs12_api_test-bin-pkcs12.o", + "test/pkcs12_api_test-bin-pkcs12_api_test.o" + ], + "test/pkcs12_api_test-bin-pkcs12_api_test.o" => [ + "test/pkcs12_api_test.c" + ], "test/pkcs12_format_test" => [ "test/helpers/pkcs12_format_test-bin-pkcs12.o", "test/pkcs12_format_test-bin-pkcs12_format_test.o" @@ -27062,6 +31963,12 @@ our %unified_info = ( "test/poly1305_internal_test-bin-poly1305_internal_test.o" => [ "test/poly1305_internal_test.c" ], + "test/priority_queue_test" => [ + "test/priority_queue_test-bin-priority_queue_test.o" + ], + "test/priority_queue_test-bin-priority_queue_test.o" => [ + "test/priority_queue_test.c" + ], "test/property_test" => [ "test/property_test-bin-property_test.o" ], @@ -27080,6 +31987,12 @@ our %unified_info = ( "test/provfetchtest-bin-provfetchtest.o" => [ "test/provfetchtest.c" ], + "test/provider_default_search_path_test" => [ + "test/provider_default_search_path_test-bin-provider_default_search_path_test.o" + ], + "test/provider_default_search_path_test-bin-provider_default_search_path_test.o" => [ + "test/provider_default_search_path_test.c" + ], "test/provider_fallback_test" => [ "test/provider_fallback_test-bin-provider_fallback_test.o" ], @@ -27128,6 +32041,174 @@ our %unified_info = ( "test/punycode_test-bin-punycode_test.o" => [ "test/punycode_test.c" ], + "test/quic_ackm_test" => [ + "test/quic_ackm_test-bin-cc_dummy.o", + "test/quic_ackm_test-bin-quic_ackm_test.o" + ], + "test/quic_ackm_test-bin-cc_dummy.o" => [ + "test/cc_dummy.c" + ], + "test/quic_ackm_test-bin-quic_ackm_test.o" => [ + "test/quic_ackm_test.c" + ], + "test/quic_cc_test" => [ + "test/quic_cc_test-bin-quic_cc_test.o" + ], + "test/quic_cc_test-bin-quic_cc_test.o" => [ + "test/quic_cc_test.c" + ], + "test/quic_cfq_test" => [ + "test/quic_cfq_test-bin-quic_cfq_test.o" + ], + "test/quic_cfq_test-bin-quic_cfq_test.o" => [ + "test/quic_cfq_test.c" + ], + "test/quic_client_test" => [ + "test/quic_client_test-bin-quic_client_test.o" + ], + "test/quic_client_test-bin-quic_client_test.o" => [ + "test/quic_client_test.c" + ], + "test/quic_fc_test" => [ + "test/quic_fc_test-bin-quic_fc_test.o" + ], + "test/quic_fc_test-bin-quic_fc_test.o" => [ + "test/quic_fc_test.c" + ], + "test/quic_fifd_test" => [ + "test/quic_fifd_test-bin-cc_dummy.o", + "test/quic_fifd_test-bin-quic_fifd_test.o" + ], + "test/quic_fifd_test-bin-cc_dummy.o" => [ + "test/cc_dummy.c" + ], + "test/quic_fifd_test-bin-quic_fifd_test.o" => [ + "test/quic_fifd_test.c" + ], + "test/quic_lcidm_test" => [ + "test/quic_lcidm_test-bin-quic_lcidm_test.o" + ], + "test/quic_lcidm_test-bin-quic_lcidm_test.o" => [ + "test/quic_lcidm_test.c" + ], + "test/quic_multistream_test" => [ + "test/helpers/quic_multistream_test-bin-noisydgrambio.o", + "test/helpers/quic_multistream_test-bin-pktsplitbio.o", + "test/helpers/quic_multistream_test-bin-quictestlib.o", + "test/helpers/quic_multistream_test-bin-ssltestlib.o", + "test/quic_multistream_test-bin-quic_multistream_test.o" + ], + "test/quic_multistream_test-bin-quic_multistream_test.o" => [ + "test/quic_multistream_test.c" + ], + "test/quic_newcid_test" => [ + "test/helpers/quic_newcid_test-bin-noisydgrambio.o", + "test/helpers/quic_newcid_test-bin-pktsplitbio.o", + "test/helpers/quic_newcid_test-bin-quictestlib.o", + "test/helpers/quic_newcid_test-bin-ssltestlib.o", + "test/quic_newcid_test-bin-quic_newcid_test.o" + ], + "test/quic_newcid_test-bin-quic_newcid_test.o" => [ + "test/quic_newcid_test.c" + ], + "test/quic_qlog_test" => [ + "test/quic_qlog_test-bin-quic_qlog_test.o" + ], + "test/quic_qlog_test-bin-quic_qlog_test.o" => [ + "test/quic_qlog_test.c" + ], + "test/quic_radix_test" => [ + "test/helpers/quic_radix_test-bin-noisydgrambio.o", + "test/helpers/quic_radix_test-bin-pktsplitbio.o", + "test/helpers/quic_radix_test-bin-quictestlib.o", + "test/helpers/quic_radix_test-bin-ssltestlib.o", + "test/radix/quic_radix_test-bin-quic_radix.o" + ], + "test/quic_rcidm_test" => [ + "test/quic_rcidm_test-bin-quic_rcidm_test.o" + ], + "test/quic_rcidm_test-bin-quic_rcidm_test.o" => [ + "test/quic_rcidm_test.c" + ], + "test/quic_record_test" => [ + "test/quic_record_test-bin-quic_record_test.o" + ], + "test/quic_record_test-bin-quic_record_test.o" => [ + "test/quic_record_test.c" + ], + "test/quic_srt_gen_test" => [ + "test/helpers/quic_srt_gen_test-bin-noisydgrambio.o", + "test/helpers/quic_srt_gen_test-bin-pktsplitbio.o", + "test/helpers/quic_srt_gen_test-bin-quictestlib.o", + "test/helpers/quic_srt_gen_test-bin-ssltestlib.o", + "test/quic_srt_gen_test-bin-quic_srt_gen_test.o" + ], + "test/quic_srt_gen_test-bin-quic_srt_gen_test.o" => [ + "test/quic_srt_gen_test.c" + ], + "test/quic_srtm_test" => [ + "test/quic_srtm_test-bin-quic_srtm_test.o" + ], + "test/quic_srtm_test-bin-quic_srtm_test.o" => [ + "test/quic_srtm_test.c" + ], + "test/quic_stream_test" => [ + "test/quic_stream_test-bin-quic_stream_test.o" + ], + "test/quic_stream_test-bin-quic_stream_test.o" => [ + "test/quic_stream_test.c" + ], + "test/quic_tserver_test" => [ + "test/quic_tserver_test-bin-quic_tserver_test.o" + ], + "test/quic_tserver_test-bin-quic_tserver_test.o" => [ + "test/quic_tserver_test.c" + ], + "test/quic_txp_test" => [ + "test/quic_txp_test-bin-cc_dummy.o", + "test/quic_txp_test-bin-quic_txp_test.o" + ], + "test/quic_txp_test-bin-cc_dummy.o" => [ + "test/cc_dummy.c" + ], + "test/quic_txp_test-bin-quic_txp_test.o" => [ + "test/quic_txp_test.c" + ], + "test/quic_txpim_test" => [ + "test/quic_txpim_test-bin-quic_txpim_test.o" + ], + "test/quic_txpim_test-bin-quic_txpim_test.o" => [ + "test/quic_txpim_test.c" + ], + "test/quic_wire_test" => [ + "test/quic_wire_test-bin-quic_wire_test.o" + ], + "test/quic_wire_test-bin-quic_wire_test.o" => [ + "test/quic_wire_test.c" + ], + "test/quicapitest" => [ + "test/helpers/quicapitest-bin-noisydgrambio.o", + "test/helpers/quicapitest-bin-pktsplitbio.o", + "test/helpers/quicapitest-bin-quictestlib.o", + "test/helpers/quicapitest-bin-ssltestlib.o", + "test/quicapitest-bin-quicapitest.o" + ], + "test/quicapitest-bin-quicapitest.o" => [ + "test/quicapitest.c" + ], + "test/quicfaultstest" => [ + "test/helpers/quicfaultstest-bin-noisydgrambio.o", + "test/helpers/quicfaultstest-bin-pktsplitbio.o", + "test/helpers/quicfaultstest-bin-quictestlib.o", + "test/helpers/quicfaultstest-bin-ssltestlib.o", + "test/quicfaultstest-bin-quicfaultstest.o" + ], + "test/quicfaultstest-bin-quicfaultstest.o" => [ + "test/quicfaultstest.c" + ], + "test/radix/quic_radix_test-bin-quic_radix.o" => [ + "test/radix/quic_radix.c" + ], "test/rand_status_test" => [ "test/rand_status_test-bin-rand_status_test.o" ], @@ -27158,11 +32239,11 @@ our %unified_info = ( "test/rc5test-bin-rc5test.o" => [ "test/rc5test.c" ], - "test/rdrand_sanitytest" => [ - "test/rdrand_sanitytest-bin-rdrand_sanitytest.o" + "test/rdcpu_sanitytest" => [ + "test/rdcpu_sanitytest-bin-rdcpu_sanitytest.o" ], - "test/rdrand_sanitytest-bin-rdrand_sanitytest.o" => [ - "test/rdrand_sanitytest.c" + "test/rdcpu_sanitytest-bin-rdcpu_sanitytest.o" => [ + "test/rdcpu_sanitytest.c" ], "test/recordlentest" => [ "test/helpers/recordlentest-bin-ssltestlib.o", @@ -27171,6 +32252,13 @@ our %unified_info = ( "test/recordlentest-bin-recordlentest.o" => [ "test/recordlentest.c" ], + "test/rpktest" => [ + "test/helpers/rpktest-bin-ssltestlib.o", + "test/rpktest-bin-rpktest.o" + ], + "test/rpktest-bin-rpktest.o" => [ + "test/rpktest.c" + ], "test/rsa_complex" => [ "test/rsa_complex-bin-rsa_complex.o" ], @@ -27195,6 +32283,18 @@ our %unified_info = ( "test/rsa_test-bin-rsa_test.o" => [ "test/rsa_test.c" ], + "test/rsa_x931_test" => [ + "test/rsa_x931_test-bin-rsa_x931_test.o" + ], + "test/rsa_x931_test-bin-rsa_x931_test.o" => [ + "test/rsa_x931_test.c" + ], + "test/safe_math_test" => [ + "test/safe_math_test-bin-safe_math_test.o" + ], + "test/safe_math_test-bin-safe_math_test.o" => [ + "test/safe_math_test.c" + ], "test/sanitytest" => [ "test/sanitytest-bin-sanitytest.o" ], @@ -27226,6 +32326,12 @@ our %unified_info = ( "test/siphash_internal_test-bin-siphash_internal_test.o" => [ "test/siphash_internal_test.c" ], + "test/slh_dsa_test" => [ + "test/slh_dsa_test-bin-slh_dsa_test.o" + ], + "test/slh_dsa_test-bin-slh_dsa_test.o" => [ + "test/slh_dsa_test.c" + ], "test/sm2_internal_test" => [ "test/sm2_internal_test-bin-sm2_internal_test.o" ], @@ -27268,6 +32374,13 @@ our %unified_info = ( "test/ssl_ctx_test-bin-ssl_ctx_test.o" => [ "test/ssl_ctx_test.c" ], + "test/ssl_handshake_rtt_test" => [ + "test/helpers/ssl_handshake_rtt_test-bin-ssltestlib.o", + "test/ssl_handshake_rtt_test-bin-ssl_handshake_rtt_test.o" + ], + "test/ssl_handshake_rtt_test-bin-ssl_handshake_rtt_test.o" => [ + "test/ssl_handshake_rtt_test.c" + ], "test/ssl_old_test" => [ "test/helpers/ssl_old_test-bin-predefined_dhparams.o", "test/ssl_old_test-bin-ssl_old_test.o" @@ -27326,6 +32439,12 @@ our %unified_info = ( "test/stack_test-bin-stack_test.o" => [ "test/stack_test.c" ], + "test/strtoultest" => [ + "test/strtoultest-bin-strtoultest.o" + ], + "test/strtoultest-bin-strtoultest.o" => [ + "test/strtoultest.c" + ], "test/sysdefaulttest" => [ "test/sysdefaulttest-bin-sysdefaulttest.o" ], @@ -27356,6 +32475,9 @@ our %unified_info = ( "test/testutil/libtestutil-lib-format_output.o" => [ "test/testutil/format_output.c" ], + "test/testutil/libtestutil-lib-helper.o" => [ + "test/testutil/helper.c" + ], "test/testutil/libtestutil-lib-load.o" => [ "test/testutil/load.c" ], @@ -27389,6 +32511,12 @@ our %unified_info = ( "test/testutil/libtestutil-lib-testutil_init.o" => [ "test/testutil/testutil_init.c" ], + "test/threadpool_test" => [ + "test/threadpool_test-bin-threadpool_test.o" + ], + "test/threadpool_test-bin-threadpool_test.o" => [ + "test/threadpool_test.c" + ], "test/threadstest" => [ "test/threadstest-bin-threadstest.o" ], @@ -27407,6 +32535,12 @@ our %unified_info = ( "test/time_offset_test-bin-time_offset_test.o" => [ "test/time_offset_test.c" ], + "test/time_test" => [ + "test/time_test-bin-time_test.o" + ], + "test/time_test-bin-time_test.o" => [ + "test/time_test.c" + ], "test/tls13ccstest" => [ "test/helpers/tls13ccstest-bin-ssltestlib.o", "test/tls13ccstest-bin-tls13ccstest.o" @@ -27420,6 +32554,13 @@ our %unified_info = ( "test/tls13encryptiontest-bin-tls13encryptiontest.o" => [ "test/tls13encryptiontest.c" ], + "test/tls13groupselection_test" => [ + "test/helpers/tls13groupselection_test-bin-ssltestlib.o", + "test/tls13groupselection_test-bin-tls13groupselection_test.o" + ], + "test/tls13groupselection_test-bin-tls13groupselection_test.o" => [ + "test/tls13groupselection_test.c" + ], "test/trace_api_test" => [ "test/trace_api_test-bin-trace_api_test.o" ], @@ -27475,6 +32616,12 @@ our %unified_info = ( "test/wpackettest-bin-wpackettest.o" => [ "test/wpackettest.c" ], + "test/x509_acert_test" => [ + "test/x509_acert_test-bin-x509_acert_test.o" + ], + "test/x509_acert_test-bin-x509_acert_test.o" => [ + "test/x509_acert_test.c" + ], "test/x509_check_cert_pkey_test" => [ "test/x509_check_cert_pkey_test-bin-x509_check_cert_pkey_test.o" ], @@ -27493,6 +32640,24 @@ our %unified_info = ( "test/x509_internal_test-bin-x509_internal_test.o" => [ "test/x509_internal_test.c" ], + "test/x509_load_cert_file_test" => [ + "test/x509_load_cert_file_test-bin-x509_load_cert_file_test.o" + ], + "test/x509_load_cert_file_test-bin-x509_load_cert_file_test.o" => [ + "test/x509_load_cert_file_test.c" + ], + "test/x509_req_test" => [ + "test/x509_req_test-bin-x509_req_test.o" + ], + "test/x509_req_test-bin-x509_req_test.o" => [ + "test/x509_req_test.c" + ], + "test/x509_test" => [ + "test/x509_test-bin-x509_test.o" + ], + "test/x509_test-bin-x509_test.o" => [ + "test/x509_test.c" + ], "test/x509_time_test" => [ "test/x509_time_test-bin-x509_time_test.o" ], @@ -27556,6 +32721,7 @@ my @makevars = ( "LDLIBS", "MT", "MTFLAGS", + "OBJCOPY", "PERL", "RANLIB", "RC", @@ -27569,6 +32735,12 @@ my %disabled_info = ( "asan" => { "macro" => "OPENSSL_NO_ASAN" }, + "brotli" => { + "macro" => "OPENSSL_NO_BROTLI" + }, + "brotli-dynamic" => { + "macro" => "OPENSSL_NO_BROTLI_DYNAMIC" + }, "comp" => { "macro" => "OPENSSL_NO_COMP", "skipped" => [ @@ -27581,6 +32753,9 @@ my %disabled_info = ( "crypto-mdebug-backtrace" => { "macro" => "OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE" }, + "demos" => { + "macro" => "OPENSSL_NO_DEMOS" + }, "devcryptoeng" => { "macro" => "OPENSSL_NO_DEVCRYPTOENG" }, @@ -27593,12 +32768,24 @@ my %disabled_info = ( "external-tests" => { "macro" => "OPENSSL_NO_EXTERNAL_TESTS" }, + "fips-jitter" => { + "macro" => "OPENSSL_NO_FIPS_JITTER" + }, "fuzz-afl" => { "macro" => "OPENSSL_NO_FUZZ_AFL" }, "fuzz-libfuzzer" => { "macro" => "OPENSSL_NO_FUZZ_LIBFUZZER" }, + "h3demo" => { + "macro" => "OPENSSL_NO_H3DEMO" + }, + "hqinterop" => { + "macro" => "OPENSSL_NO_HQINTEROP" + }, + "jitter" => { + "macro" => "OPENSSL_NO_JITTER" + }, "ktls" => { "macro" => "OPENSSL_NO_KTLS" }, @@ -27614,6 +32801,9 @@ my %disabled_info = ( "msan" => { "macro" => "OPENSSL_NO_MSAN" }, + "pie" => { + "macro" => "OPENSSL_NO_PIE" + }, "rc5" => { "macro" => "OPENSSL_NO_RC5", "skipped" => [ @@ -27629,6 +32819,12 @@ my %disabled_info = ( "ssl3-method" => { "macro" => "OPENSSL_NO_SSL3_METHOD" }, + "sslkeylog" => { + "macro" => "OPENSSL_NO_SSLKEYLOG" + }, + "tfo" => { + "macro" => "OPENSSL_NO_TFO" + }, "trace" => { "macro" => "OPENSSL_NO_TRACE" }, @@ -27643,6 +32839,21 @@ my %disabled_info = ( }, "weak-ssl-ciphers" => { "macro" => "OPENSSL_NO_WEAK_SSL_CIPHERS" + }, + "winstore" => { + "macro" => "OPENSSL_NO_WINSTORE" + }, + "zlib" => { + "macro" => "OPENSSL_NO_ZLIB" + }, + "zlib-dynamic" => { + "macro" => "OPENSSL_NO_ZLIB_DYNAMIC" + }, + "zstd" => { + "macro" => "OPENSSL_NO_ZSTD" + }, + "zstd-dynamic" => { + "macro" => "OPENSSL_NO_ZSTD_DYNAMIC" } ); my @user_crossable = qw( AR AS CC CXX CPP LD MT RANLIB RC ); @@ -27656,15 +32867,15 @@ unless (caller) { use File::Copy; use Pod::Usage; - use lib '/home/runner/work/node/node/deps/openssl/openssl/util/perl'; - use OpenSSL::fallback '/home/runner/work/node/node/deps/openssl/openssl/external/perl/MODULES.txt'; + use lib '/node/deps/openssl/openssl/util/perl'; + use OpenSSL::fallback '/node/deps/openssl/openssl/external/perl/MODULES.txt'; my $here = dirname($0); if (scalar @ARGV == 0) { # With no arguments, re-create the build file # We do that in two steps, where the first step emits perl - # snipets. + # snippets. my $buildfile = $config{build_file}; my $buildfile_template = "$buildfile.in"; @@ -27684,7 +32895,7 @@ unless (caller) { ); use lib '.'; - use lib '/home/runner/work/node/node/deps/openssl/openssl/Configurations'; + use lib '/node/deps/openssl/openssl/Configurations'; use gentemplate; open my $buildfile_template_fh, ">$buildfile_template" @@ -27701,8 +32912,8 @@ unless (caller) { my $prepend = <<'_____'; use File::Spec::Functions; -use lib '/home/runner/work/node/node/deps/openssl/openssl/util/perl'; -use lib '/home/runner/work/node/node/deps/openssl/openssl/Configurations'; +use lib '/node/deps/openssl/openssl/util/perl'; +use lib '/node/deps/openssl/openssl/Configurations'; use lib '.'; use platform; _____ diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/crypto/aes/aesv8-armx.S b/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/crypto/aes/aesv8-armx.S index ae20ad9ff6fbcb..9fe820bbe1e7bb 100644 --- a/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/crypto/aes/aesv8-armx.S +++ b/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/crypto/aes/aesv8-armx.S @@ -3,17 +3,20 @@ #if __ARM_MAX_ARCH__>=7 .text +.section __TEXT,__const .align 5 Lrcon: .long 0x01,0x01,0x01,0x01 .long 0x0c0f0e0d,0x0c0f0e0d,0x0c0f0e0d,0x0c0f0e0d // rotate-n-splat .long 0x1b,0x1b,0x1b,0x1b - +.previous .globl _aes_v8_set_encrypt_key .align 5 _aes_v8_set_encrypt_key: Lenc_key: + AARCH64_VALID_CALL_TARGET + // Armv8.3-A PAuth: even though x30 is pushed to stack it is not popped later. stp x29,x30,[sp,#-16]! add x29,sp,#0 mov x3,#-1 @@ -29,7 +32,8 @@ Lenc_key: tst w1,#0x3f b.ne Lenc_key_abort - adr x3,Lrcon + adrp x3,Lrcon@PAGE + add x3,x3,Lrcon@PAGEOFF cmp w1,#192 eor v0.16b,v0.16b,v0.16b @@ -185,7 +189,7 @@ Lenc_key_abort: .align 5 _aes_v8_set_decrypt_key: -.long 0xd503233f // paciasp + AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-16]! add x29,sp,#0 bl Lenc_key @@ -219,13 +223,14 @@ Loop_imc: eor x0,x0,x0 // return value Ldec_key_abort: ldp x29,x30,[sp],#16 -.long 0xd50323bf // autiasp + AARCH64_VALIDATE_LINK_REGISTER ret .globl _aes_v8_encrypt .align 5 _aes_v8_encrypt: + AARCH64_VALID_CALL_TARGET ldr w3,[x2,#240] ld1 {v0.4s},[x2],#16 ld1 {v2.16b},[x0] @@ -255,6 +260,7 @@ Loop_enc: .align 5 _aes_v8_decrypt: + AARCH64_VALID_CALL_TARGET ldr w3,[x2,#240] ld1 {v0.4s},[x2],#16 ld1 {v2.16b},[x0] @@ -284,6 +290,7 @@ Loop_dec: .align 5 _aes_v8_ecb_encrypt: + AARCH64_VALID_CALL_TARGET subs x2,x2,#16 // Original input data size bigger than 16, jump to big size processing. b.ne Lecb_big_size @@ -1030,6 +1037,8 @@ Lecb_Final_abort: .align 5 _aes_v8_cbc_encrypt: + AARCH64_VALID_CALL_TARGET + // Armv8.3-A PAuth: even though x30 is pushed to stack it is not popped later. stp x29,x30,[sp,#-16]! add x29,sp,#0 subs x2,x2,#16 @@ -1501,10 +1510,735 @@ Lcbc_abort: ldr x29,[sp],#16 ret +.globl _aes_v8_ctr32_encrypt_blocks_unroll12_eor3 + +.align 5 +_aes_v8_ctr32_encrypt_blocks_unroll12_eor3: + AARCH64_VALID_CALL_TARGET + // Armv8.3-A PAuth: even though x30 is pushed to stack it is not popped later. + stp x29,x30,[sp,#-80]! + stp d8,d9,[sp, #16] + stp d10,d11,[sp, #32] + stp d12,d13,[sp, #48] + stp d14,d15,[sp, #64] + add x29,sp,#0 + + ldr w5,[x3,#240] + + ldr w8, [x4, #12] +#ifdef __AARCH64EB__ + ld1 {v24.16b},[x4] +#else + ld1 {v24.4s},[x4] +#endif + ld1 {v2.4s,v3.4s},[x3] // load key schedule... + sub w5,w5,#4 + cmp x2,#2 + add x7,x3,x5,lsl#4 // pointer to last round key + sub w5,w5,#2 + add x7, x7, #64 + ld1 {v1.4s},[x7] + add x7,x3,#32 + mov w6,w5 +#ifndef __AARCH64EB__ + rev w8, w8 +#endif + + orr v25.16b,v24.16b,v24.16b + add w10, w8, #1 + orr v26.16b,v24.16b,v24.16b + add w8, w8, #2 + orr v0.16b,v24.16b,v24.16b + rev w10, w10 + mov v25.s[3],w10 + b.ls Lctr32_tail_unroll + cmp x2,#6 + rev w12, w8 + sub x2,x2,#3 // bias + mov v26.s[3],w12 + b.lo Loop3x_ctr32_unroll + cmp x2,#9 + orr v27.16b,v24.16b,v24.16b + add w11, w8, #1 + orr v28.16b,v24.16b,v24.16b + add w13, w8, #2 + rev w11, w11 + orr v29.16b,v24.16b,v24.16b + add w8, w8, #3 + rev w13, w13 + mov v27.s[3],w11 + rev w14, w8 + mov v28.s[3],w13 + mov v29.s[3],w14 + sub x2,x2,#3 + b.lo Loop6x_ctr32_unroll + + // push regs to stack when 12 data chunks are interleaved + stp x19,x20,[sp,#-16]! + stp x21,x22,[sp,#-16]! + stp x23,x24,[sp,#-16]! + stp d8,d9,[sp,#-32]! + stp d10,d11,[sp,#-32]! + + add w15,w8,#1 + add w19,w8,#2 + add w20,w8,#3 + add w21,w8,#4 + add w22,w8,#5 + add w8,w8,#6 + orr v30.16b,v24.16b,v24.16b + rev w15,w15 + orr v31.16b,v24.16b,v24.16b + rev w19,w19 + orr v8.16b,v24.16b,v24.16b + rev w20,w20 + orr v9.16b,v24.16b,v24.16b + rev w21,w21 + orr v10.16b,v24.16b,v24.16b + rev w22,w22 + orr v11.16b,v24.16b,v24.16b + rev w23,w8 + + sub x2,x2,#6 // bias + mov v30.s[3],w15 + mov v31.s[3],w19 + mov v8.s[3],w20 + mov v9.s[3],w21 + mov v10.s[3],w22 + mov v11.s[3],w23 + b Loop12x_ctr32_unroll + +.align 4 +Loop12x_ctr32_unroll: + aese v24.16b,v2.16b + aesmc v24.16b,v24.16b + aese v25.16b,v2.16b + aesmc v25.16b,v25.16b + aese v26.16b,v2.16b + aesmc v26.16b,v26.16b + aese v27.16b,v2.16b + aesmc v27.16b,v27.16b + aese v28.16b,v2.16b + aesmc v28.16b,v28.16b + aese v29.16b,v2.16b + aesmc v29.16b,v29.16b + aese v30.16b,v2.16b + aesmc v30.16b,v30.16b + aese v31.16b,v2.16b + aesmc v31.16b,v31.16b + aese v8.16b,v2.16b + aesmc v8.16b,v8.16b + aese v9.16b,v2.16b + aesmc v9.16b,v9.16b + aese v10.16b,v2.16b + aesmc v10.16b,v10.16b + aese v11.16b,v2.16b + aesmc v11.16b,v11.16b + ld1 {v2.4s},[x7],#16 + subs w6,w6,#2 + aese v24.16b,v3.16b + aesmc v24.16b,v24.16b + aese v25.16b,v3.16b + aesmc v25.16b,v25.16b + aese v26.16b,v3.16b + aesmc v26.16b,v26.16b + aese v27.16b,v3.16b + aesmc v27.16b,v27.16b + aese v28.16b,v3.16b + aesmc v28.16b,v28.16b + aese v29.16b,v3.16b + aesmc v29.16b,v29.16b + aese v30.16b,v3.16b + aesmc v30.16b,v30.16b + aese v31.16b,v3.16b + aesmc v31.16b,v31.16b + aese v8.16b,v3.16b + aesmc v8.16b,v8.16b + aese v9.16b,v3.16b + aesmc v9.16b,v9.16b + aese v10.16b,v3.16b + aesmc v10.16b,v10.16b + aese v11.16b,v3.16b + aesmc v11.16b,v11.16b + ld1 {v3.4s},[x7],#16 + b.gt Loop12x_ctr32_unroll + + aese v24.16b,v2.16b + aesmc v24.16b,v24.16b + aese v25.16b,v2.16b + aesmc v25.16b,v25.16b + aese v26.16b,v2.16b + aesmc v26.16b,v26.16b + aese v27.16b,v2.16b + aesmc v27.16b,v27.16b + aese v28.16b,v2.16b + aesmc v28.16b,v28.16b + aese v29.16b,v2.16b + aesmc v29.16b,v29.16b + aese v30.16b,v2.16b + aesmc v30.16b,v30.16b + aese v31.16b,v2.16b + aesmc v31.16b,v31.16b + aese v8.16b,v2.16b + aesmc v8.16b,v8.16b + aese v9.16b,v2.16b + aesmc v9.16b,v9.16b + aese v10.16b,v2.16b + aesmc v10.16b,v10.16b + aese v11.16b,v2.16b + aesmc v11.16b,v11.16b + ld1 {v2.4s},[x7],#16 + + aese v24.16b,v3.16b + aesmc v24.16b,v24.16b + aese v25.16b,v3.16b + aesmc v25.16b,v25.16b + aese v26.16b,v3.16b + aesmc v26.16b,v26.16b + aese v27.16b,v3.16b + aesmc v27.16b,v27.16b + aese v28.16b,v3.16b + aesmc v28.16b,v28.16b + aese v29.16b,v3.16b + aesmc v29.16b,v29.16b + aese v30.16b,v3.16b + aesmc v30.16b,v30.16b + aese v31.16b,v3.16b + aesmc v31.16b,v31.16b + aese v8.16b,v3.16b + aesmc v8.16b,v8.16b + aese v9.16b,v3.16b + aesmc v9.16b,v9.16b + aese v10.16b,v3.16b + aesmc v10.16b,v10.16b + aese v11.16b,v3.16b + aesmc v11.16b,v11.16b + ld1 {v3.4s},[x7],#16 + + aese v24.16b,v2.16b + aesmc v24.16b,v24.16b + add w9,w8,#1 + add w10,w8,#2 + aese v25.16b,v2.16b + aesmc v25.16b,v25.16b + add w12,w8,#3 + add w11,w8,#4 + aese v26.16b,v2.16b + aesmc v26.16b,v26.16b + add w13,w8,#5 + add w14,w8,#6 + rev w9,w9 + aese v27.16b,v2.16b + aesmc v27.16b,v27.16b + add w15,w8,#7 + add w19,w8,#8 + rev w10,w10 + rev w12,w12 + aese v28.16b,v2.16b + aesmc v28.16b,v28.16b + add w20,w8,#9 + add w21,w8,#10 + rev w11,w11 + rev w13,w13 + aese v29.16b,v2.16b + aesmc v29.16b,v29.16b + add w22,w8,#11 + add w23,w8,#12 + rev w14,w14 + rev w15,w15 + aese v30.16b,v2.16b + aesmc v30.16b,v30.16b + rev w19,w19 + rev w20,w20 + aese v31.16b,v2.16b + aesmc v31.16b,v31.16b + rev w21,w21 + rev w22,w22 + aese v8.16b,v2.16b + aesmc v8.16b,v8.16b + rev w23,w23 + aese v9.16b,v2.16b + aesmc v9.16b,v9.16b + aese v10.16b,v2.16b + aesmc v10.16b,v10.16b + aese v11.16b,v2.16b + aesmc v11.16b,v11.16b + ld1 {v2.4s},[x7],#16 + + aese v24.16b,v3.16b + aesmc v24.16b,v24.16b + aese v25.16b,v3.16b + aesmc v25.16b,v25.16b + aese v26.16b,v3.16b + aesmc v26.16b,v26.16b + aese v27.16b,v3.16b + aesmc v27.16b,v27.16b + ld1 {v4.16b,v5.16b,v6.16b,v7.16b},[x0],#64 + aese v28.16b,v3.16b + aesmc v28.16b,v28.16b + aese v29.16b,v3.16b + aesmc v29.16b,v29.16b + aese v30.16b,v3.16b + aesmc v30.16b,v30.16b + aese v31.16b,v3.16b + aesmc v31.16b,v31.16b + ld1 {v16.16b,v17.16b,v18.16b,v19.16b},[x0],#64 + aese v8.16b,v3.16b + aesmc v8.16b,v8.16b + aese v9.16b,v3.16b + aesmc v9.16b,v9.16b + aese v10.16b,v3.16b + aesmc v10.16b,v10.16b + aese v11.16b,v3.16b + aesmc v11.16b,v11.16b + ld1 {v20.16b,v21.16b,v22.16b,v23.16b},[x0],#64 + ld1 {v3.4s},[x7],#16 + + mov x7, x3 + aese v24.16b,v2.16b + aesmc v24.16b,v24.16b + aese v25.16b,v2.16b + aesmc v25.16b,v25.16b + aese v26.16b,v2.16b + aesmc v26.16b,v26.16b + aese v27.16b,v2.16b + aesmc v27.16b,v27.16b + aese v28.16b,v2.16b + aesmc v28.16b,v28.16b + aese v29.16b,v2.16b + aesmc v29.16b,v29.16b + aese v30.16b,v2.16b + aesmc v30.16b,v30.16b + aese v31.16b,v2.16b + aesmc v31.16b,v31.16b + aese v8.16b,v2.16b + aesmc v8.16b,v8.16b + aese v9.16b,v2.16b + aesmc v9.16b,v9.16b + aese v10.16b,v2.16b + aesmc v10.16b,v10.16b + aese v11.16b,v2.16b + aesmc v11.16b,v11.16b + ld1 {v2.4s},[x7],#16 // re-pre-load rndkey[0] + + aese v24.16b,v3.16b +.long 0xce016084 //eor3 v4.16b,v4.16b,v1.16b,v24.16b + orr v24.16b,v0.16b,v0.16b + aese v25.16b,v3.16b +.long 0xce0164a5 //eor3 v5.16b,v5.16b,v1.16b,v25.16b + orr v25.16b,v0.16b,v0.16b + aese v26.16b,v3.16b +.long 0xce0168c6 //eor3 v6.16b,v6.16b,v1.16b,v26.16b + orr v26.16b,v0.16b,v0.16b + aese v27.16b,v3.16b +.long 0xce016ce7 //eor3 v7.16b,v7.16b,v1.16b,v27.16b + orr v27.16b,v0.16b,v0.16b + aese v28.16b,v3.16b +.long 0xce017210 //eor3 v16.16b,v16.16b,v1.16b,v28.16b + orr v28.16b,v0.16b,v0.16b + aese v29.16b,v3.16b +.long 0xce017631 //eor3 v17.16b,v17.16b,v1.16b,v29.16b + orr v29.16b,v0.16b,v0.16b + aese v30.16b,v3.16b +.long 0xce017a52 //eor3 v18.16b,v18.16b,v1.16b,v30.16b + orr v30.16b,v0.16b,v0.16b + aese v31.16b,v3.16b +.long 0xce017e73 //eor3 v19.16b,v19.16b,v1.16b,v31.16b + orr v31.16b,v0.16b,v0.16b + aese v8.16b,v3.16b +.long 0xce012294 //eor3 v20.16b,v20.16b,v1.16b,v8.16b + orr v8.16b,v0.16b,v0.16b + aese v9.16b,v3.16b +.long 0xce0126b5 //eor3 v21.16b,v21.16b,v1.16b,v9.16b + orr v9.16b,v0.16b,v0.16b + aese v10.16b,v3.16b +.long 0xce012ad6 //eor3 v22.16b,v22.16b,v1.16b,v10.16b + orr v10.16b,v0.16b,v0.16b + aese v11.16b,v3.16b +.long 0xce012ef7 //eor3 v23.16b,v23.16b,v1.16b,v11.16b + orr v11.16b,v0.16b,v0.16b + ld1 {v3.4s},[x7],#16 // re-pre-load rndkey[1] + + mov v24.s[3],w9 + mov v25.s[3],w10 + mov v26.s[3],w12 + mov v27.s[3],w11 + st1 {v4.16b,v5.16b,v6.16b,v7.16b},[x1],#64 + mov v28.s[3],w13 + mov v29.s[3],w14 + mov v30.s[3],w15 + mov v31.s[3],w19 + st1 {v16.16b,v17.16b,v18.16b,v19.16b},[x1],#64 + mov v8.s[3],w20 + mov v9.s[3],w21 + mov v10.s[3],w22 + mov v11.s[3],w23 + st1 {v20.16b,v21.16b,v22.16b,v23.16b},[x1],#64 + + mov w6,w5 + + add w8,w8,#12 + subs x2,x2,#12 + b.hs Loop12x_ctr32_unroll + + // pop regs from stack when 12 data chunks are interleaved + ldp d10,d11,[sp],#32 + ldp d8,d9,[sp],#32 + ldp x23,x24,[sp],#16 + ldp x21,x22,[sp],#16 + ldp x19,x20,[sp],#16 + + add x2,x2,#12 + cbz x2,Lctr32_done_unroll + sub w8,w8,#12 + + cmp x2,#2 + b.ls Lctr32_tail_unroll + + cmp x2,#6 + sub x2,x2,#3 // bias + add w8,w8,#3 + b.lo Loop3x_ctr32_unroll + + sub x2,x2,#3 + add w8,w8,#3 + b.lo Loop6x_ctr32_unroll + +.align 4 +Loop6x_ctr32_unroll: + aese v24.16b,v2.16b + aesmc v24.16b,v24.16b + aese v25.16b,v2.16b + aesmc v25.16b,v25.16b + aese v26.16b,v2.16b + aesmc v26.16b,v26.16b + aese v27.16b,v2.16b + aesmc v27.16b,v27.16b + aese v28.16b,v2.16b + aesmc v28.16b,v28.16b + aese v29.16b,v2.16b + aesmc v29.16b,v29.16b + ld1 {v2.4s},[x7],#16 + subs w6,w6,#2 + aese v24.16b,v3.16b + aesmc v24.16b,v24.16b + aese v25.16b,v3.16b + aesmc v25.16b,v25.16b + aese v26.16b,v3.16b + aesmc v26.16b,v26.16b + aese v27.16b,v3.16b + aesmc v27.16b,v27.16b + aese v28.16b,v3.16b + aesmc v28.16b,v28.16b + aese v29.16b,v3.16b + aesmc v29.16b,v29.16b + ld1 {v3.4s},[x7],#16 + b.gt Loop6x_ctr32_unroll + + aese v24.16b,v2.16b + aesmc v24.16b,v24.16b + aese v25.16b,v2.16b + aesmc v25.16b,v25.16b + aese v26.16b,v2.16b + aesmc v26.16b,v26.16b + aese v27.16b,v2.16b + aesmc v27.16b,v27.16b + aese v28.16b,v2.16b + aesmc v28.16b,v28.16b + aese v29.16b,v2.16b + aesmc v29.16b,v29.16b + ld1 {v2.4s},[x7],#16 + + aese v24.16b,v3.16b + aesmc v24.16b,v24.16b + aese v25.16b,v3.16b + aesmc v25.16b,v25.16b + aese v26.16b,v3.16b + aesmc v26.16b,v26.16b + aese v27.16b,v3.16b + aesmc v27.16b,v27.16b + aese v28.16b,v3.16b + aesmc v28.16b,v28.16b + aese v29.16b,v3.16b + aesmc v29.16b,v29.16b + ld1 {v3.4s},[x7],#16 + + aese v24.16b,v2.16b + aesmc v24.16b,v24.16b + add w9,w8,#1 + add w10,w8,#2 + aese v25.16b,v2.16b + aesmc v25.16b,v25.16b + add w12,w8,#3 + add w11,w8,#4 + aese v26.16b,v2.16b + aesmc v26.16b,v26.16b + add w13,w8,#5 + add w14,w8,#6 + rev w9,w9 + aese v27.16b,v2.16b + aesmc v27.16b,v27.16b + rev w10,w10 + rev w12,w12 + aese v28.16b,v2.16b + aesmc v28.16b,v28.16b + rev w11,w11 + rev w13,w13 + aese v29.16b,v2.16b + aesmc v29.16b,v29.16b + rev w14,w14 + ld1 {v2.4s},[x7],#16 + + aese v24.16b,v3.16b + aesmc v24.16b,v24.16b + aese v25.16b,v3.16b + aesmc v25.16b,v25.16b + ld1 {v4.16b,v5.16b,v6.16b,v7.16b},[x0],#64 + aese v26.16b,v3.16b + aesmc v26.16b,v26.16b + aese v27.16b,v3.16b + aesmc v27.16b,v27.16b + ld1 {v16.16b,v17.16b},[x0],#32 + aese v28.16b,v3.16b + aesmc v28.16b,v28.16b + aese v29.16b,v3.16b + aesmc v29.16b,v29.16b + ld1 {v3.4s},[x7],#16 + + mov x7, x3 + aese v24.16b,v2.16b + aesmc v24.16b,v24.16b + aese v25.16b,v2.16b + aesmc v25.16b,v25.16b + aese v26.16b,v2.16b + aesmc v26.16b,v26.16b + aese v27.16b,v2.16b + aesmc v27.16b,v27.16b + aese v28.16b,v2.16b + aesmc v28.16b,v28.16b + aese v29.16b,v2.16b + aesmc v29.16b,v29.16b + ld1 {v2.4s},[x7],#16 // re-pre-load rndkey[0] + + aese v24.16b,v3.16b +.long 0xce016084 //eor3 v4.16b,v4.16b,v1.16b,v24.16b + aese v25.16b,v3.16b +.long 0xce0164a5 //eor3 v5.16b,v5.16b,v1.16b,v25.16b + aese v26.16b,v3.16b +.long 0xce0168c6 //eor3 v6.16b,v6.16b,v1.16b,v26.16b + aese v27.16b,v3.16b +.long 0xce016ce7 //eor3 v7.16b,v7.16b,v1.16b,v27.16b + aese v28.16b,v3.16b +.long 0xce017210 //eor3 v16.16b,v16.16b,v1.16b,v28.16b + aese v29.16b,v3.16b +.long 0xce017631 //eor3 v17.16b,v17.16b,v1.16b,v29.16b + ld1 {v3.4s},[x7],#16 // re-pre-load rndkey[1] + + orr v24.16b,v0.16b,v0.16b + orr v25.16b,v0.16b,v0.16b + orr v26.16b,v0.16b,v0.16b + orr v27.16b,v0.16b,v0.16b + orr v28.16b,v0.16b,v0.16b + orr v29.16b,v0.16b,v0.16b + + mov v24.s[3],w9 + mov v25.s[3],w10 + st1 {v4.16b,v5.16b,v6.16b,v7.16b},[x1],#64 + mov v26.s[3],w12 + mov v27.s[3],w11 + st1 {v16.16b,v17.16b},[x1],#32 + mov v28.s[3],w13 + mov v29.s[3],w14 + + cbz x2,Lctr32_done_unroll + mov w6,w5 + + cmp x2,#2 + b.ls Lctr32_tail_unroll + + sub x2,x2,#3 // bias + add w8,w8,#3 + b Loop3x_ctr32_unroll + +.align 4 +Loop3x_ctr32_unroll: + aese v24.16b,v2.16b + aesmc v24.16b,v24.16b + aese v25.16b,v2.16b + aesmc v25.16b,v25.16b + aese v26.16b,v2.16b + aesmc v26.16b,v26.16b + ld1 {v2.4s},[x7],#16 + subs w6,w6,#2 + aese v24.16b,v3.16b + aesmc v24.16b,v24.16b + aese v25.16b,v3.16b + aesmc v25.16b,v25.16b + aese v26.16b,v3.16b + aesmc v26.16b,v26.16b + ld1 {v3.4s},[x7],#16 + b.gt Loop3x_ctr32_unroll + + aese v24.16b,v2.16b + aesmc v9.16b,v24.16b + aese v25.16b,v2.16b + aesmc v10.16b,v25.16b + ld1 {v4.16b,v5.16b,v6.16b},[x0],#48 + orr v24.16b,v0.16b,v0.16b + aese v26.16b,v2.16b + aesmc v26.16b,v26.16b + ld1 {v2.4s},[x7],#16 + orr v25.16b,v0.16b,v0.16b + aese v9.16b,v3.16b + aesmc v9.16b,v9.16b + aese v10.16b,v3.16b + aesmc v10.16b,v10.16b + aese v26.16b,v3.16b + aesmc v11.16b,v26.16b + ld1 {v3.4s},[x7],#16 + orr v26.16b,v0.16b,v0.16b + add w9,w8,#1 + aese v9.16b,v2.16b + aesmc v9.16b,v9.16b + aese v10.16b,v2.16b + aesmc v10.16b,v10.16b + add w10,w8,#2 + aese v11.16b,v2.16b + aesmc v11.16b,v11.16b + ld1 {v2.4s},[x7],#16 + add w8,w8,#3 + aese v9.16b,v3.16b + aesmc v9.16b,v9.16b + aese v10.16b,v3.16b + aesmc v10.16b,v10.16b + + rev w9,w9 + aese v11.16b,v3.16b + aesmc v11.16b,v11.16b + ld1 {v3.4s},[x7],#16 + mov v24.s[3], w9 + mov x7,x3 + rev w10,w10 + aese v9.16b,v2.16b + aesmc v9.16b,v9.16b + + aese v10.16b,v2.16b + aesmc v10.16b,v10.16b + mov v25.s[3], w10 + rev w12,w8 + aese v11.16b,v2.16b + aesmc v11.16b,v11.16b + mov v26.s[3], w12 + + aese v9.16b,v3.16b + aese v10.16b,v3.16b + aese v11.16b,v3.16b + +.long 0xce012484 //eor3 v4.16b,v4.16b,v1.16b,v9.16b + ld1 {v2.4s},[x7],#16 // re-pre-load rndkey[0] +.long 0xce0128a5 //eor3 v5.16b,v5.16b,v1.16b,v10.16b + mov w6,w5 +.long 0xce012cc6 //eor3 v6.16b,v6.16b,v1.16b,v11.16b + ld1 {v3.4s},[x7],#16 // re-pre-load rndkey[1] + st1 {v4.16b,v5.16b,v6.16b},[x1],#48 + + cbz x2,Lctr32_done_unroll + +Lctr32_tail_unroll: + cmp x2,#1 + b.eq Lctr32_tail_1_unroll + +Lctr32_tail_2_unroll: + aese v24.16b,v2.16b + aesmc v24.16b,v24.16b + aese v25.16b,v2.16b + aesmc v25.16b,v25.16b + ld1 {v2.4s},[x7],#16 + subs w6,w6,#2 + aese v24.16b,v3.16b + aesmc v24.16b,v24.16b + aese v25.16b,v3.16b + aesmc v25.16b,v25.16b + ld1 {v3.4s},[x7],#16 + b.gt Lctr32_tail_2_unroll + + aese v24.16b,v2.16b + aesmc v24.16b,v24.16b + aese v25.16b,v2.16b + aesmc v25.16b,v25.16b + ld1 {v2.4s},[x7],#16 + aese v24.16b,v3.16b + aesmc v24.16b,v24.16b + aese v25.16b,v3.16b + aesmc v25.16b,v25.16b + ld1 {v3.4s},[x7],#16 + ld1 {v4.16b,v5.16b},[x0],#32 + aese v24.16b,v2.16b + aesmc v24.16b,v24.16b + aese v25.16b,v2.16b + aesmc v25.16b,v25.16b + ld1 {v2.4s},[x7],#16 + aese v24.16b,v3.16b + aesmc v24.16b,v24.16b + aese v25.16b,v3.16b + aesmc v25.16b,v25.16b + ld1 {v3.4s},[x7],#16 + aese v24.16b,v2.16b + aesmc v24.16b,v24.16b + aese v25.16b,v2.16b + aesmc v25.16b,v25.16b + aese v24.16b,v3.16b + aese v25.16b,v3.16b + +.long 0xce016084 //eor3 v4.16b,v4.16b,v1.16b,v24.16b +.long 0xce0164a5 //eor3 v5.16b,v5.16b,v1.16b,v25.16b + st1 {v4.16b,v5.16b},[x1],#32 + b Lctr32_done_unroll + +Lctr32_tail_1_unroll: + aese v24.16b,v2.16b + aesmc v24.16b,v24.16b + ld1 {v2.4s},[x7],#16 + subs w6,w6,#2 + aese v24.16b,v3.16b + aesmc v24.16b,v24.16b + ld1 {v3.4s},[x7],#16 + b.gt Lctr32_tail_1_unroll + + aese v24.16b,v2.16b + aesmc v24.16b,v24.16b + ld1 {v2.4s},[x7],#16 + aese v24.16b,v3.16b + aesmc v24.16b,v24.16b + ld1 {v3.4s},[x7],#16 + ld1 {v4.16b},[x0] + aese v24.16b,v2.16b + aesmc v24.16b,v24.16b + ld1 {v2.4s},[x7],#16 + aese v24.16b,v3.16b + aesmc v24.16b,v24.16b + ld1 {v3.4s},[x7],#16 + aese v24.16b,v2.16b + aesmc v24.16b,v24.16b + aese v24.16b,v3.16b + +.long 0xce016084 //eor3 v4.16b,v4.16b,v1.16b,v24.16b + st1 {v4.16b},[x1],#16 + +Lctr32_done_unroll: + ldp d8,d9,[sp, #16] + ldp d10,d11,[sp, #32] + ldp d12,d13,[sp, #48] + ldp d14,d15,[sp, #64] + ldr x29,[sp],#80 + ret + .globl _aes_v8_ctr32_encrypt_blocks .align 5 _aes_v8_ctr32_encrypt_blocks: + AARCH64_VALID_CALL_TARGET + // Armv8.3-A PAuth: even though x30 is pushed to stack it is not popped later. stp x29,x30,[sp,#-16]! add x29,sp,#0 ldr w5,[x3,#240] @@ -1854,6 +2588,7 @@ Lctr32_done: .align 5 _aes_v8_xts_encrypt: + AARCH64_VALID_CALL_TARGET cmp x2,#16 // Original input data size bigger than 16, jump to big size processing. b.ne Lxts_enc_big_size @@ -2495,6 +3230,7 @@ Lxts_enc_final_abort: .align 5 _aes_v8_xts_decrypt: + AARCH64_VALID_CALL_TARGET cmp x2,#16 // Original input data size bigger than 16, jump to big size processing. b.ne Lxts_dec_big_size @@ -3104,7 +3840,7 @@ Lxts_done: cbnz x2,Lxts_dec_1st_done ld1 {v0.16b},[x0],#16 - // Decrypt the last secod block to get the last plain text block + // Decrypt the last second block to get the last plain text block Lxts_dec_1st_done: eor v26.16b,v0.16b,v8.16b ldr w6,[x3,#240] diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/crypto/aes/bsaes-armv8.S b/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/crypto/aes/bsaes-armv8.S new file mode 100644 index 00000000000000..f6e0c3b51f0295 --- /dev/null +++ b/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/crypto/aes/bsaes-armv8.S @@ -0,0 +1,2355 @@ +// Copyright 2021-2025 The OpenSSL Project Authors. All Rights Reserved. +// +// Licensed under the OpenSSL license (the "License"). You may not use +// this file except in compliance with the License. You can obtain a copy +// in the file LICENSE in the source distribution or at +// https://www.openssl.org/source/license.html +// +// ==================================================================== +// Written by Ben Avison for the OpenSSL +// project. Rights for redistribution and usage in source and binary +// forms are granted according to the OpenSSL license. +// ==================================================================== +// +// This implementation is a translation of bsaes-armv7 for AArch64. +// No attempt has been made to carry across the build switches for +// kernel targets, since the Linux kernel crypto support has moved on +// from when it was based on OpenSSL. + +// A lot of hand-scheduling has been performed. Consequently, this code +// doesn't factor out neatly into macros in the same way that the +// AArch32 version did, and there is little to be gained by wrapping it +// up in Perl, and it is presented as pure assembly. + + +#include "crypto/arm_arch.h" + +.text + + + + + + +.align 4 +// On entry: +// x9 -> key (previously expanded using _bsaes_key_convert) +// x10 = number of rounds +// v0-v7 input data +// On exit: +// x9-x11 corrupted +// other general-purpose registers preserved +// v0-v7 output data +// v11-v15 preserved +// other SIMD registers corrupted +_bsaes_decrypt8: + ldr q8, [x9], #16 + adrp x11, LM0ISR@PAGE + add x11, x11, LM0ISR@PAGEOFF + movi v9.16b, #0x55 + ldr q10, [x11], #16 + movi v16.16b, #0x33 + movi v17.16b, #0x0f + sub x10, x10, #1 + eor v0.16b, v0.16b, v8.16b + eor v1.16b, v1.16b, v8.16b + eor v2.16b, v2.16b, v8.16b + eor v4.16b, v4.16b, v8.16b + eor v3.16b, v3.16b, v8.16b + eor v5.16b, v5.16b, v8.16b + tbl v0.16b, {v0.16b}, v10.16b + tbl v1.16b, {v1.16b}, v10.16b + tbl v2.16b, {v2.16b}, v10.16b + tbl v4.16b, {v4.16b}, v10.16b + eor v6.16b, v6.16b, v8.16b + eor v7.16b, v7.16b, v8.16b + tbl v3.16b, {v3.16b}, v10.16b + tbl v5.16b, {v5.16b}, v10.16b + tbl v6.16b, {v6.16b}, v10.16b + ushr v8.2d, v0.2d, #1 + tbl v7.16b, {v7.16b}, v10.16b + ushr v10.2d, v4.2d, #1 + ushr v18.2d, v2.2d, #1 + eor v8.16b, v8.16b, v1.16b + ushr v19.2d, v6.2d, #1 + eor v10.16b, v10.16b, v5.16b + eor v18.16b, v18.16b, v3.16b + and v8.16b, v8.16b, v9.16b + eor v19.16b, v19.16b, v7.16b + and v10.16b, v10.16b, v9.16b + and v18.16b, v18.16b, v9.16b + eor v1.16b, v1.16b, v8.16b + shl v8.2d, v8.2d, #1 + and v9.16b, v19.16b, v9.16b + eor v5.16b, v5.16b, v10.16b + shl v10.2d, v10.2d, #1 + eor v3.16b, v3.16b, v18.16b + shl v18.2d, v18.2d, #1 + eor v0.16b, v0.16b, v8.16b + shl v8.2d, v9.2d, #1 + eor v7.16b, v7.16b, v9.16b + eor v4.16b, v4.16b, v10.16b + eor v2.16b, v2.16b, v18.16b + ushr v9.2d, v1.2d, #2 + eor v6.16b, v6.16b, v8.16b + ushr v8.2d, v0.2d, #2 + ushr v10.2d, v5.2d, #2 + ushr v18.2d, v4.2d, #2 + eor v9.16b, v9.16b, v3.16b + eor v8.16b, v8.16b, v2.16b + eor v10.16b, v10.16b, v7.16b + eor v18.16b, v18.16b, v6.16b + and v9.16b, v9.16b, v16.16b + and v8.16b, v8.16b, v16.16b + and v10.16b, v10.16b, v16.16b + and v16.16b, v18.16b, v16.16b + eor v3.16b, v3.16b, v9.16b + shl v9.2d, v9.2d, #2 + eor v2.16b, v2.16b, v8.16b + shl v8.2d, v8.2d, #2 + eor v7.16b, v7.16b, v10.16b + shl v10.2d, v10.2d, #2 + eor v6.16b, v6.16b, v16.16b + shl v16.2d, v16.2d, #2 + eor v1.16b, v1.16b, v9.16b + eor v0.16b, v0.16b, v8.16b + eor v5.16b, v5.16b, v10.16b + eor v4.16b, v4.16b, v16.16b + ushr v8.2d, v3.2d, #4 + ushr v9.2d, v2.2d, #4 + ushr v10.2d, v1.2d, #4 + ushr v16.2d, v0.2d, #4 + eor v8.16b, v8.16b, v7.16b + eor v9.16b, v9.16b, v6.16b + eor v10.16b, v10.16b, v5.16b + eor v16.16b, v16.16b, v4.16b + and v8.16b, v8.16b, v17.16b + and v9.16b, v9.16b, v17.16b + and v10.16b, v10.16b, v17.16b + and v16.16b, v16.16b, v17.16b + eor v7.16b, v7.16b, v8.16b + shl v8.2d, v8.2d, #4 + eor v6.16b, v6.16b, v9.16b + shl v9.2d, v9.2d, #4 + eor v5.16b, v5.16b, v10.16b + shl v10.2d, v10.2d, #4 + eor v4.16b, v4.16b, v16.16b + shl v16.2d, v16.2d, #4 + eor v3.16b, v3.16b, v8.16b + eor v2.16b, v2.16b, v9.16b + eor v1.16b, v1.16b, v10.16b + eor v0.16b, v0.16b, v16.16b + b Ldec_sbox +.align 4 +Ldec_loop: + ld1 {v16.16b, v17.16b, v18.16b, v19.16b}, [x9], #64 + ldp q8, q9, [x9], #32 + eor v0.16b, v16.16b, v0.16b + ldr q10, [x9], #16 + eor v1.16b, v17.16b, v1.16b + ldr q16, [x9], #16 + eor v2.16b, v18.16b, v2.16b + eor v3.16b, v19.16b, v3.16b + eor v4.16b, v8.16b, v4.16b + eor v5.16b, v9.16b, v5.16b + eor v6.16b, v10.16b, v6.16b + eor v7.16b, v16.16b, v7.16b + tbl v0.16b, {v0.16b}, v28.16b + tbl v1.16b, {v1.16b}, v28.16b + tbl v2.16b, {v2.16b}, v28.16b + tbl v3.16b, {v3.16b}, v28.16b + tbl v4.16b, {v4.16b}, v28.16b + tbl v5.16b, {v5.16b}, v28.16b + tbl v6.16b, {v6.16b}, v28.16b + tbl v7.16b, {v7.16b}, v28.16b +Ldec_sbox: + eor v1.16b, v1.16b, v4.16b + eor v3.16b, v3.16b, v4.16b + subs x10, x10, #1 + eor v4.16b, v4.16b, v7.16b + eor v2.16b, v2.16b, v7.16b + eor v1.16b, v1.16b, v6.16b + eor v6.16b, v6.16b, v4.16b + eor v2.16b, v2.16b, v5.16b + eor v0.16b, v0.16b, v1.16b + eor v7.16b, v7.16b, v6.16b + eor v8.16b, v6.16b, v2.16b + and v9.16b, v4.16b, v6.16b + eor v10.16b, v2.16b, v6.16b + eor v3.16b, v3.16b, v0.16b + eor v5.16b, v5.16b, v0.16b + eor v16.16b, v7.16b, v4.16b + eor v17.16b, v4.16b, v0.16b + and v18.16b, v0.16b, v2.16b + eor v19.16b, v7.16b, v4.16b + eor v1.16b, v1.16b, v3.16b + eor v20.16b, v3.16b, v0.16b + eor v21.16b, v5.16b, v2.16b + eor v22.16b, v3.16b, v7.16b + and v8.16b, v17.16b, v8.16b + orr v17.16b, v3.16b, v5.16b + eor v23.16b, v1.16b, v6.16b + eor v24.16b, v20.16b, v16.16b + eor v25.16b, v1.16b, v5.16b + orr v26.16b, v20.16b, v21.16b + and v20.16b, v20.16b, v21.16b + and v27.16b, v7.16b, v1.16b + eor v21.16b, v21.16b, v23.16b + orr v28.16b, v16.16b, v23.16b + orr v29.16b, v22.16b, v25.16b + eor v26.16b, v26.16b, v8.16b + and v16.16b, v16.16b, v23.16b + and v22.16b, v22.16b, v25.16b + and v21.16b, v24.16b, v21.16b + eor v8.16b, v28.16b, v8.16b + eor v23.16b, v5.16b, v2.16b + eor v24.16b, v1.16b, v6.16b + eor v16.16b, v16.16b, v22.16b + eor v22.16b, v3.16b, v0.16b + eor v25.16b, v29.16b, v21.16b + eor v21.16b, v26.16b, v21.16b + eor v8.16b, v8.16b, v20.16b + eor v26.16b, v23.16b, v24.16b + eor v16.16b, v16.16b, v20.16b + eor v28.16b, v22.16b, v19.16b + eor v20.16b, v25.16b, v20.16b + eor v9.16b, v21.16b, v9.16b + eor v8.16b, v8.16b, v18.16b + eor v18.16b, v5.16b, v1.16b + eor v21.16b, v16.16b, v17.16b + eor v16.16b, v16.16b, v17.16b + eor v17.16b, v20.16b, v27.16b + eor v20.16b, v3.16b, v7.16b + eor v25.16b, v9.16b, v8.16b + eor v27.16b, v0.16b, v4.16b + and v29.16b, v9.16b, v17.16b + eor v30.16b, v8.16b, v29.16b + eor v31.16b, v21.16b, v29.16b + eor v29.16b, v21.16b, v29.16b + bsl v30.16b, v17.16b, v21.16b + bsl v31.16b, v9.16b, v8.16b + bsl v16.16b, v30.16b, v29.16b + bsl v21.16b, v29.16b, v30.16b + eor v8.16b, v31.16b, v30.16b + and v1.16b, v1.16b, v31.16b + and v9.16b, v16.16b, v31.16b + and v6.16b, v6.16b, v30.16b + eor v16.16b, v17.16b, v21.16b + and v4.16b, v4.16b, v30.16b + eor v17.16b, v8.16b, v30.16b + and v21.16b, v24.16b, v8.16b + eor v9.16b, v9.16b, v25.16b + and v19.16b, v19.16b, v8.16b + eor v24.16b, v30.16b, v16.16b + eor v25.16b, v30.16b, v16.16b + and v7.16b, v7.16b, v17.16b + and v10.16b, v10.16b, v16.16b + eor v29.16b, v9.16b, v16.16b + eor v30.16b, v31.16b, v9.16b + and v0.16b, v24.16b, v0.16b + and v9.16b, v18.16b, v9.16b + and v2.16b, v25.16b, v2.16b + eor v10.16b, v10.16b, v6.16b + eor v18.16b, v29.16b, v16.16b + and v5.16b, v30.16b, v5.16b + eor v24.16b, v8.16b, v29.16b + and v25.16b, v26.16b, v29.16b + and v26.16b, v28.16b, v29.16b + eor v8.16b, v8.16b, v29.16b + eor v17.16b, v17.16b, v18.16b + eor v5.16b, v1.16b, v5.16b + and v23.16b, v24.16b, v23.16b + eor v21.16b, v21.16b, v25.16b + eor v19.16b, v19.16b, v26.16b + eor v0.16b, v4.16b, v0.16b + and v3.16b, v17.16b, v3.16b + eor v1.16b, v9.16b, v1.16b + eor v9.16b, v25.16b, v23.16b + eor v5.16b, v5.16b, v21.16b + eor v2.16b, v6.16b, v2.16b + and v6.16b, v8.16b, v22.16b + eor v3.16b, v7.16b, v3.16b + and v8.16b, v20.16b, v18.16b + eor v10.16b, v10.16b, v9.16b + eor v0.16b, v0.16b, v19.16b + eor v9.16b, v1.16b, v9.16b + eor v1.16b, v2.16b, v21.16b + eor v3.16b, v3.16b, v19.16b + and v16.16b, v27.16b, v16.16b + eor v17.16b, v26.16b, v6.16b + eor v6.16b, v8.16b, v7.16b + eor v7.16b, v1.16b, v9.16b + eor v1.16b, v5.16b, v3.16b + eor v2.16b, v10.16b, v3.16b + eor v4.16b, v16.16b, v4.16b + eor v8.16b, v6.16b, v17.16b + eor v5.16b, v9.16b, v3.16b + eor v9.16b, v0.16b, v1.16b + eor v6.16b, v7.16b, v1.16b + eor v0.16b, v4.16b, v17.16b + eor v4.16b, v8.16b, v7.16b + eor v7.16b, v9.16b, v2.16b + eor v8.16b, v3.16b, v0.16b + eor v7.16b, v7.16b, v5.16b + eor v3.16b, v4.16b, v7.16b + eor v4.16b, v7.16b, v0.16b + eor v7.16b, v8.16b, v3.16b + bcc Ldec_done + ext v8.16b, v0.16b, v0.16b, #8 + ext v9.16b, v1.16b, v1.16b, #8 + ldr q28, [x11] // load from LISR in common case (x10 > 0) + ext v10.16b, v6.16b, v6.16b, #8 + ext v16.16b, v3.16b, v3.16b, #8 + ext v17.16b, v5.16b, v5.16b, #8 + ext v18.16b, v4.16b, v4.16b, #8 + eor v8.16b, v8.16b, v0.16b + eor v9.16b, v9.16b, v1.16b + eor v10.16b, v10.16b, v6.16b + eor v16.16b, v16.16b, v3.16b + eor v17.16b, v17.16b, v5.16b + ext v19.16b, v2.16b, v2.16b, #8 + ext v20.16b, v7.16b, v7.16b, #8 + eor v18.16b, v18.16b, v4.16b + eor v6.16b, v6.16b, v8.16b + eor v8.16b, v2.16b, v10.16b + eor v4.16b, v4.16b, v9.16b + eor v2.16b, v19.16b, v2.16b + eor v9.16b, v20.16b, v7.16b + eor v0.16b, v0.16b, v16.16b + eor v1.16b, v1.16b, v16.16b + eor v6.16b, v6.16b, v17.16b + eor v8.16b, v8.16b, v16.16b + eor v7.16b, v7.16b, v18.16b + eor v4.16b, v4.16b, v16.16b + eor v2.16b, v3.16b, v2.16b + eor v1.16b, v1.16b, v17.16b + eor v3.16b, v5.16b, v9.16b + eor v5.16b, v8.16b, v17.16b + eor v7.16b, v7.16b, v17.16b + ext v8.16b, v0.16b, v0.16b, #12 + ext v9.16b, v6.16b, v6.16b, #12 + ext v10.16b, v4.16b, v4.16b, #12 + ext v16.16b, v1.16b, v1.16b, #12 + ext v17.16b, v5.16b, v5.16b, #12 + ext v18.16b, v7.16b, v7.16b, #12 + eor v0.16b, v0.16b, v8.16b + eor v6.16b, v6.16b, v9.16b + eor v4.16b, v4.16b, v10.16b + ext v19.16b, v2.16b, v2.16b, #12 + ext v20.16b, v3.16b, v3.16b, #12 + eor v1.16b, v1.16b, v16.16b + eor v5.16b, v5.16b, v17.16b + eor v7.16b, v7.16b, v18.16b + eor v2.16b, v2.16b, v19.16b + eor v16.16b, v16.16b, v0.16b + eor v3.16b, v3.16b, v20.16b + eor v17.16b, v17.16b, v4.16b + eor v10.16b, v10.16b, v6.16b + ext v0.16b, v0.16b, v0.16b, #8 + eor v9.16b, v9.16b, v1.16b + ext v1.16b, v1.16b, v1.16b, #8 + eor v8.16b, v8.16b, v3.16b + eor v16.16b, v16.16b, v3.16b + eor v18.16b, v18.16b, v5.16b + eor v19.16b, v19.16b, v7.16b + ext v21.16b, v5.16b, v5.16b, #8 + ext v5.16b, v7.16b, v7.16b, #8 + eor v7.16b, v20.16b, v2.16b + ext v4.16b, v4.16b, v4.16b, #8 + ext v20.16b, v3.16b, v3.16b, #8 + eor v17.16b, v17.16b, v3.16b + ext v2.16b, v2.16b, v2.16b, #8 + eor v3.16b, v10.16b, v3.16b + ext v10.16b, v6.16b, v6.16b, #8 + eor v0.16b, v0.16b, v8.16b + eor v1.16b, v1.16b, v16.16b + eor v5.16b, v5.16b, v18.16b + eor v3.16b, v3.16b, v4.16b + eor v7.16b, v20.16b, v7.16b + eor v6.16b, v2.16b, v19.16b + eor v4.16b, v21.16b, v17.16b + eor v2.16b, v10.16b, v9.16b + bne Ldec_loop + ldr q28, [x11, #16]! // load from LISRM0 on last round (x10 == 0) + b Ldec_loop +.align 4 +Ldec_done: + ushr v8.2d, v0.2d, #1 + movi v9.16b, #0x55 + ldr q10, [x9] + ushr v16.2d, v2.2d, #1 + movi v17.16b, #0x33 + ushr v18.2d, v6.2d, #1 + movi v19.16b, #0x0f + eor v8.16b, v8.16b, v1.16b + ushr v20.2d, v3.2d, #1 + eor v16.16b, v16.16b, v7.16b + eor v18.16b, v18.16b, v4.16b + and v8.16b, v8.16b, v9.16b + eor v20.16b, v20.16b, v5.16b + and v16.16b, v16.16b, v9.16b + and v18.16b, v18.16b, v9.16b + shl v21.2d, v8.2d, #1 + eor v1.16b, v1.16b, v8.16b + and v8.16b, v20.16b, v9.16b + eor v7.16b, v7.16b, v16.16b + shl v9.2d, v16.2d, #1 + eor v4.16b, v4.16b, v18.16b + shl v16.2d, v18.2d, #1 + eor v0.16b, v0.16b, v21.16b + shl v18.2d, v8.2d, #1 + eor v5.16b, v5.16b, v8.16b + eor v2.16b, v2.16b, v9.16b + eor v6.16b, v6.16b, v16.16b + ushr v8.2d, v1.2d, #2 + eor v3.16b, v3.16b, v18.16b + ushr v9.2d, v0.2d, #2 + ushr v16.2d, v7.2d, #2 + ushr v18.2d, v2.2d, #2 + eor v8.16b, v8.16b, v4.16b + eor v9.16b, v9.16b, v6.16b + eor v16.16b, v16.16b, v5.16b + eor v18.16b, v18.16b, v3.16b + and v8.16b, v8.16b, v17.16b + and v9.16b, v9.16b, v17.16b + and v16.16b, v16.16b, v17.16b + and v17.16b, v18.16b, v17.16b + eor v4.16b, v4.16b, v8.16b + shl v8.2d, v8.2d, #2 + eor v6.16b, v6.16b, v9.16b + shl v9.2d, v9.2d, #2 + eor v5.16b, v5.16b, v16.16b + shl v16.2d, v16.2d, #2 + eor v3.16b, v3.16b, v17.16b + shl v17.2d, v17.2d, #2 + eor v1.16b, v1.16b, v8.16b + eor v0.16b, v0.16b, v9.16b + eor v7.16b, v7.16b, v16.16b + eor v2.16b, v2.16b, v17.16b + ushr v8.2d, v4.2d, #4 + ushr v9.2d, v6.2d, #4 + ushr v16.2d, v1.2d, #4 + ushr v17.2d, v0.2d, #4 + eor v8.16b, v8.16b, v5.16b + eor v9.16b, v9.16b, v3.16b + eor v16.16b, v16.16b, v7.16b + eor v17.16b, v17.16b, v2.16b + and v8.16b, v8.16b, v19.16b + and v9.16b, v9.16b, v19.16b + and v16.16b, v16.16b, v19.16b + and v17.16b, v17.16b, v19.16b + eor v5.16b, v5.16b, v8.16b + shl v8.2d, v8.2d, #4 + eor v3.16b, v3.16b, v9.16b + shl v9.2d, v9.2d, #4 + eor v7.16b, v7.16b, v16.16b + shl v16.2d, v16.2d, #4 + eor v2.16b, v2.16b, v17.16b + shl v17.2d, v17.2d, #4 + eor v4.16b, v4.16b, v8.16b + eor v6.16b, v6.16b, v9.16b + eor v7.16b, v7.16b, v10.16b + eor v1.16b, v1.16b, v16.16b + eor v2.16b, v2.16b, v10.16b + eor v0.16b, v0.16b, v17.16b + eor v4.16b, v4.16b, v10.16b + eor v6.16b, v6.16b, v10.16b + eor v3.16b, v3.16b, v10.16b + eor v5.16b, v5.16b, v10.16b + eor v1.16b, v1.16b, v10.16b + eor v0.16b, v0.16b, v10.16b + ret + + +.section __TEXT,__const + +.align 6 +_bsaes_consts: +// InvShiftRows constants +// Used in _bsaes_decrypt8, which assumes contiguity +// .LM0ISR used with round 0 key +// .LISR used with middle round keys +// .LISRM0 used with final round key +LM0ISR: +.quad 0x0a0e0206070b0f03, 0x0004080c0d010509 +LISR: +.quad 0x0504070602010003, 0x0f0e0d0c080b0a09 +LISRM0: +.quad 0x01040b0e0205080f, 0x0306090c00070a0d + +// ShiftRows constants +// Used in _bsaes_encrypt8, which assumes contiguity +// .LM0SR used with round 0 key +// .LSR used with middle round keys +// .LSRM0 used with final round key +LM0SR: +.quad 0x0a0e02060f03070b, 0x0004080c05090d01 +LSR: +.quad 0x0504070600030201, 0x0f0e0d0c0a09080b +LSRM0: +.quad 0x0304090e00050a0f, 0x01060b0c0207080d + +LM0_bigendian: +.quad 0x02060a0e03070b0f, 0x0004080c0105090d +LM0_littleendian: +.quad 0x0105090d0004080c, 0x03070b0f02060a0e + +// Used in ossl_bsaes_ctr32_encrypt_blocks, prior to dropping into +// _bsaes_encrypt8_alt, for round 0 key in place of .LM0SR +LREVM0SR: +.quad 0x090d01050c000408, 0x03070b0f060a0e02 + +.align 6 + + +.previous + + +.align 4 +// On entry: +// x9 -> key (previously expanded using _bsaes_key_convert) +// x10 = number of rounds +// v0-v7 input data +// On exit: +// x9-x11 corrupted +// other general-purpose registers preserved +// v0-v7 output data +// v11-v15 preserved +// other SIMD registers corrupted +_bsaes_encrypt8: + ldr q8, [x9], #16 + adrp x11, LM0SR@PAGE + add x11, x11, LM0SR@PAGEOFF + ldr q9, [x11], #16 +_bsaes_encrypt8_alt: + eor v0.16b, v0.16b, v8.16b + eor v1.16b, v1.16b, v8.16b + sub x10, x10, #1 + eor v2.16b, v2.16b, v8.16b + eor v4.16b, v4.16b, v8.16b + eor v3.16b, v3.16b, v8.16b + eor v5.16b, v5.16b, v8.16b + tbl v0.16b, {v0.16b}, v9.16b + tbl v1.16b, {v1.16b}, v9.16b + tbl v2.16b, {v2.16b}, v9.16b + tbl v4.16b, {v4.16b}, v9.16b + eor v6.16b, v6.16b, v8.16b + eor v7.16b, v7.16b, v8.16b + tbl v3.16b, {v3.16b}, v9.16b + tbl v5.16b, {v5.16b}, v9.16b + tbl v6.16b, {v6.16b}, v9.16b + ushr v8.2d, v0.2d, #1 + movi v10.16b, #0x55 + tbl v7.16b, {v7.16b}, v9.16b + ushr v9.2d, v4.2d, #1 + movi v16.16b, #0x33 + ushr v17.2d, v2.2d, #1 + eor v8.16b, v8.16b, v1.16b + movi v18.16b, #0x0f + ushr v19.2d, v6.2d, #1 + eor v9.16b, v9.16b, v5.16b + eor v17.16b, v17.16b, v3.16b + and v8.16b, v8.16b, v10.16b + eor v19.16b, v19.16b, v7.16b + and v9.16b, v9.16b, v10.16b + and v17.16b, v17.16b, v10.16b + eor v1.16b, v1.16b, v8.16b + shl v8.2d, v8.2d, #1 + and v10.16b, v19.16b, v10.16b + eor v5.16b, v5.16b, v9.16b + shl v9.2d, v9.2d, #1 + eor v3.16b, v3.16b, v17.16b + shl v17.2d, v17.2d, #1 + eor v0.16b, v0.16b, v8.16b + shl v8.2d, v10.2d, #1 + eor v7.16b, v7.16b, v10.16b + eor v4.16b, v4.16b, v9.16b + eor v2.16b, v2.16b, v17.16b + ushr v9.2d, v1.2d, #2 + eor v6.16b, v6.16b, v8.16b + ushr v8.2d, v0.2d, #2 + ushr v10.2d, v5.2d, #2 + ushr v17.2d, v4.2d, #2 + eor v9.16b, v9.16b, v3.16b + eor v8.16b, v8.16b, v2.16b + eor v10.16b, v10.16b, v7.16b + eor v17.16b, v17.16b, v6.16b + and v9.16b, v9.16b, v16.16b + and v8.16b, v8.16b, v16.16b + and v10.16b, v10.16b, v16.16b + and v16.16b, v17.16b, v16.16b + eor v3.16b, v3.16b, v9.16b + shl v9.2d, v9.2d, #2 + eor v2.16b, v2.16b, v8.16b + shl v8.2d, v8.2d, #2 + eor v7.16b, v7.16b, v10.16b + shl v10.2d, v10.2d, #2 + eor v6.16b, v6.16b, v16.16b + shl v16.2d, v16.2d, #2 + eor v1.16b, v1.16b, v9.16b + eor v0.16b, v0.16b, v8.16b + eor v5.16b, v5.16b, v10.16b + eor v4.16b, v4.16b, v16.16b + ushr v8.2d, v3.2d, #4 + ushr v9.2d, v2.2d, #4 + ushr v10.2d, v1.2d, #4 + ushr v16.2d, v0.2d, #4 + eor v8.16b, v8.16b, v7.16b + eor v9.16b, v9.16b, v6.16b + eor v10.16b, v10.16b, v5.16b + eor v16.16b, v16.16b, v4.16b + and v8.16b, v8.16b, v18.16b + and v9.16b, v9.16b, v18.16b + and v10.16b, v10.16b, v18.16b + and v16.16b, v16.16b, v18.16b + eor v7.16b, v7.16b, v8.16b + shl v8.2d, v8.2d, #4 + eor v6.16b, v6.16b, v9.16b + shl v9.2d, v9.2d, #4 + eor v5.16b, v5.16b, v10.16b + shl v10.2d, v10.2d, #4 + eor v4.16b, v4.16b, v16.16b + shl v16.2d, v16.2d, #4 + eor v3.16b, v3.16b, v8.16b + eor v2.16b, v2.16b, v9.16b + eor v1.16b, v1.16b, v10.16b + eor v0.16b, v0.16b, v16.16b + b Lenc_sbox +.align 4 +Lenc_loop: + ld1 {v16.16b, v17.16b, v18.16b, v19.16b}, [x9], #64 + ldp q8, q9, [x9], #32 + eor v0.16b, v16.16b, v0.16b + ldr q10, [x9], #16 + eor v1.16b, v17.16b, v1.16b + ldr q16, [x9], #16 + eor v2.16b, v18.16b, v2.16b + eor v3.16b, v19.16b, v3.16b + eor v4.16b, v8.16b, v4.16b + eor v5.16b, v9.16b, v5.16b + eor v6.16b, v10.16b, v6.16b + eor v7.16b, v16.16b, v7.16b + tbl v0.16b, {v0.16b}, v28.16b + tbl v1.16b, {v1.16b}, v28.16b + tbl v2.16b, {v2.16b}, v28.16b + tbl v3.16b, {v3.16b}, v28.16b + tbl v4.16b, {v4.16b}, v28.16b + tbl v5.16b, {v5.16b}, v28.16b + tbl v6.16b, {v6.16b}, v28.16b + tbl v7.16b, {v7.16b}, v28.16b +Lenc_sbox: + eor v5.16b, v5.16b, v6.16b + eor v3.16b, v3.16b, v0.16b + subs x10, x10, #1 + eor v2.16b, v2.16b, v1.16b + eor v5.16b, v5.16b, v0.16b + eor v8.16b, v3.16b, v7.16b + eor v6.16b, v6.16b, v2.16b + eor v7.16b, v7.16b, v5.16b + eor v8.16b, v8.16b, v4.16b + eor v3.16b, v6.16b, v3.16b + eor v4.16b, v4.16b, v5.16b + eor v6.16b, v1.16b, v5.16b + eor v2.16b, v2.16b, v7.16b + eor v1.16b, v8.16b, v1.16b + eor v8.16b, v7.16b, v4.16b + eor v9.16b, v3.16b, v0.16b + eor v10.16b, v7.16b, v6.16b + eor v16.16b, v5.16b, v3.16b + eor v17.16b, v6.16b, v2.16b + eor v18.16b, v5.16b, v1.16b + eor v19.16b, v2.16b, v4.16b + eor v20.16b, v1.16b, v0.16b + orr v21.16b, v8.16b, v9.16b + orr v22.16b, v10.16b, v16.16b + eor v23.16b, v8.16b, v17.16b + eor v24.16b, v9.16b, v18.16b + and v19.16b, v19.16b, v20.16b + orr v20.16b, v17.16b, v18.16b + and v8.16b, v8.16b, v9.16b + and v9.16b, v17.16b, v18.16b + and v17.16b, v23.16b, v24.16b + and v10.16b, v10.16b, v16.16b + eor v16.16b, v21.16b, v19.16b + eor v18.16b, v20.16b, v19.16b + and v19.16b, v2.16b, v1.16b + and v20.16b, v6.16b, v5.16b + eor v21.16b, v22.16b, v17.16b + eor v9.16b, v9.16b, v10.16b + eor v10.16b, v16.16b, v17.16b + eor v16.16b, v18.16b, v8.16b + and v17.16b, v4.16b, v0.16b + orr v18.16b, v7.16b, v3.16b + eor v21.16b, v21.16b, v8.16b + eor v8.16b, v9.16b, v8.16b + eor v9.16b, v10.16b, v19.16b + eor v10.16b, v3.16b, v0.16b + eor v16.16b, v16.16b, v17.16b + eor v17.16b, v5.16b, v1.16b + eor v19.16b, v21.16b, v20.16b + eor v20.16b, v8.16b, v18.16b + eor v8.16b, v8.16b, v18.16b + eor v18.16b, v7.16b, v4.16b + eor v21.16b, v9.16b, v16.16b + eor v22.16b, v6.16b, v2.16b + and v23.16b, v9.16b, v19.16b + eor v24.16b, v10.16b, v17.16b + eor v25.16b, v0.16b, v1.16b + eor v26.16b, v7.16b, v6.16b + eor v27.16b, v18.16b, v22.16b + eor v28.16b, v3.16b, v5.16b + eor v29.16b, v16.16b, v23.16b + eor v30.16b, v20.16b, v23.16b + eor v23.16b, v20.16b, v23.16b + eor v31.16b, v4.16b, v2.16b + bsl v29.16b, v19.16b, v20.16b + bsl v30.16b, v9.16b, v16.16b + bsl v8.16b, v29.16b, v23.16b + bsl v20.16b, v23.16b, v29.16b + eor v9.16b, v30.16b, v29.16b + and v5.16b, v5.16b, v30.16b + and v8.16b, v8.16b, v30.16b + and v1.16b, v1.16b, v29.16b + eor v16.16b, v19.16b, v20.16b + and v2.16b, v2.16b, v29.16b + eor v19.16b, v9.16b, v29.16b + and v17.16b, v17.16b, v9.16b + eor v8.16b, v8.16b, v21.16b + and v20.16b, v22.16b, v9.16b + eor v21.16b, v29.16b, v16.16b + eor v22.16b, v29.16b, v16.16b + and v23.16b, v25.16b, v16.16b + and v6.16b, v6.16b, v19.16b + eor v25.16b, v8.16b, v16.16b + eor v29.16b, v30.16b, v8.16b + and v4.16b, v21.16b, v4.16b + and v8.16b, v28.16b, v8.16b + and v0.16b, v22.16b, v0.16b + eor v21.16b, v23.16b, v1.16b + eor v22.16b, v9.16b, v25.16b + eor v9.16b, v9.16b, v25.16b + eor v23.16b, v25.16b, v16.16b + and v3.16b, v29.16b, v3.16b + and v24.16b, v24.16b, v25.16b + and v25.16b, v27.16b, v25.16b + and v10.16b, v22.16b, v10.16b + and v9.16b, v9.16b, v18.16b + eor v18.16b, v19.16b, v23.16b + and v19.16b, v26.16b, v23.16b + eor v3.16b, v5.16b, v3.16b + eor v17.16b, v17.16b, v24.16b + eor v10.16b, v24.16b, v10.16b + and v16.16b, v31.16b, v16.16b + eor v20.16b, v20.16b, v25.16b + eor v9.16b, v25.16b, v9.16b + eor v4.16b, v2.16b, v4.16b + and v7.16b, v18.16b, v7.16b + eor v18.16b, v19.16b, v6.16b + eor v5.16b, v8.16b, v5.16b + eor v0.16b, v1.16b, v0.16b + eor v1.16b, v21.16b, v10.16b + eor v8.16b, v3.16b, v17.16b + eor v2.16b, v16.16b, v2.16b + eor v3.16b, v6.16b, v7.16b + eor v6.16b, v18.16b, v9.16b + eor v4.16b, v4.16b, v20.16b + eor v10.16b, v5.16b, v10.16b + eor v0.16b, v0.16b, v17.16b + eor v9.16b, v2.16b, v9.16b + eor v3.16b, v3.16b, v20.16b + eor v7.16b, v6.16b, v1.16b + eor v5.16b, v8.16b, v4.16b + eor v6.16b, v10.16b, v1.16b + eor v2.16b, v4.16b, v0.16b + eor v4.16b, v3.16b, v10.16b + eor v9.16b, v9.16b, v7.16b + eor v3.16b, v0.16b, v5.16b + eor v0.16b, v1.16b, v4.16b + eor v1.16b, v4.16b, v8.16b + eor v4.16b, v9.16b, v5.16b + eor v6.16b, v6.16b, v3.16b + bcc Lenc_done + ext v8.16b, v0.16b, v0.16b, #12 + ext v9.16b, v4.16b, v4.16b, #12 + ldr q28, [x11] + ext v10.16b, v6.16b, v6.16b, #12 + ext v16.16b, v1.16b, v1.16b, #12 + ext v17.16b, v3.16b, v3.16b, #12 + ext v18.16b, v7.16b, v7.16b, #12 + eor v0.16b, v0.16b, v8.16b + eor v4.16b, v4.16b, v9.16b + eor v6.16b, v6.16b, v10.16b + ext v19.16b, v2.16b, v2.16b, #12 + ext v20.16b, v5.16b, v5.16b, #12 + eor v1.16b, v1.16b, v16.16b + eor v3.16b, v3.16b, v17.16b + eor v7.16b, v7.16b, v18.16b + eor v2.16b, v2.16b, v19.16b + eor v16.16b, v16.16b, v0.16b + eor v5.16b, v5.16b, v20.16b + eor v17.16b, v17.16b, v6.16b + eor v10.16b, v10.16b, v4.16b + ext v0.16b, v0.16b, v0.16b, #8 + eor v9.16b, v9.16b, v1.16b + ext v1.16b, v1.16b, v1.16b, #8 + eor v8.16b, v8.16b, v5.16b + eor v16.16b, v16.16b, v5.16b + eor v18.16b, v18.16b, v3.16b + eor v19.16b, v19.16b, v7.16b + ext v3.16b, v3.16b, v3.16b, #8 + ext v7.16b, v7.16b, v7.16b, #8 + eor v20.16b, v20.16b, v2.16b + ext v6.16b, v6.16b, v6.16b, #8 + ext v21.16b, v5.16b, v5.16b, #8 + eor v17.16b, v17.16b, v5.16b + ext v2.16b, v2.16b, v2.16b, #8 + eor v10.16b, v10.16b, v5.16b + ext v22.16b, v4.16b, v4.16b, #8 + eor v0.16b, v0.16b, v8.16b + eor v1.16b, v1.16b, v16.16b + eor v5.16b, v7.16b, v18.16b + eor v4.16b, v3.16b, v17.16b + eor v3.16b, v6.16b, v10.16b + eor v7.16b, v21.16b, v20.16b + eor v6.16b, v2.16b, v19.16b + eor v2.16b, v22.16b, v9.16b + bne Lenc_loop + ldr q28, [x11, #16]! // load from LSRM0 on last round (x10 == 0) + b Lenc_loop +.align 4 +Lenc_done: + ushr v8.2d, v0.2d, #1 + movi v9.16b, #0x55 + ldr q10, [x9] + ushr v16.2d, v3.2d, #1 + movi v17.16b, #0x33 + ushr v18.2d, v4.2d, #1 + movi v19.16b, #0x0f + eor v8.16b, v8.16b, v1.16b + ushr v20.2d, v2.2d, #1 + eor v16.16b, v16.16b, v7.16b + eor v18.16b, v18.16b, v6.16b + and v8.16b, v8.16b, v9.16b + eor v20.16b, v20.16b, v5.16b + and v16.16b, v16.16b, v9.16b + and v18.16b, v18.16b, v9.16b + shl v21.2d, v8.2d, #1 + eor v1.16b, v1.16b, v8.16b + and v8.16b, v20.16b, v9.16b + eor v7.16b, v7.16b, v16.16b + shl v9.2d, v16.2d, #1 + eor v6.16b, v6.16b, v18.16b + shl v16.2d, v18.2d, #1 + eor v0.16b, v0.16b, v21.16b + shl v18.2d, v8.2d, #1 + eor v5.16b, v5.16b, v8.16b + eor v3.16b, v3.16b, v9.16b + eor v4.16b, v4.16b, v16.16b + ushr v8.2d, v1.2d, #2 + eor v2.16b, v2.16b, v18.16b + ushr v9.2d, v0.2d, #2 + ushr v16.2d, v7.2d, #2 + ushr v18.2d, v3.2d, #2 + eor v8.16b, v8.16b, v6.16b + eor v9.16b, v9.16b, v4.16b + eor v16.16b, v16.16b, v5.16b + eor v18.16b, v18.16b, v2.16b + and v8.16b, v8.16b, v17.16b + and v9.16b, v9.16b, v17.16b + and v16.16b, v16.16b, v17.16b + and v17.16b, v18.16b, v17.16b + eor v6.16b, v6.16b, v8.16b + shl v8.2d, v8.2d, #2 + eor v4.16b, v4.16b, v9.16b + shl v9.2d, v9.2d, #2 + eor v5.16b, v5.16b, v16.16b + shl v16.2d, v16.2d, #2 + eor v2.16b, v2.16b, v17.16b + shl v17.2d, v17.2d, #2 + eor v1.16b, v1.16b, v8.16b + eor v0.16b, v0.16b, v9.16b + eor v7.16b, v7.16b, v16.16b + eor v3.16b, v3.16b, v17.16b + ushr v8.2d, v6.2d, #4 + ushr v9.2d, v4.2d, #4 + ushr v16.2d, v1.2d, #4 + ushr v17.2d, v0.2d, #4 + eor v8.16b, v8.16b, v5.16b + eor v9.16b, v9.16b, v2.16b + eor v16.16b, v16.16b, v7.16b + eor v17.16b, v17.16b, v3.16b + and v8.16b, v8.16b, v19.16b + and v9.16b, v9.16b, v19.16b + and v16.16b, v16.16b, v19.16b + and v17.16b, v17.16b, v19.16b + eor v5.16b, v5.16b, v8.16b + shl v8.2d, v8.2d, #4 + eor v2.16b, v2.16b, v9.16b + shl v9.2d, v9.2d, #4 + eor v7.16b, v7.16b, v16.16b + shl v16.2d, v16.2d, #4 + eor v3.16b, v3.16b, v17.16b + shl v17.2d, v17.2d, #4 + eor v6.16b, v6.16b, v8.16b + eor v4.16b, v4.16b, v9.16b + eor v7.16b, v7.16b, v10.16b + eor v1.16b, v1.16b, v16.16b + eor v3.16b, v3.16b, v10.16b + eor v0.16b, v0.16b, v17.16b + eor v6.16b, v6.16b, v10.16b + eor v4.16b, v4.16b, v10.16b + eor v2.16b, v2.16b, v10.16b + eor v5.16b, v5.16b, v10.16b + eor v1.16b, v1.16b, v10.16b + eor v0.16b, v0.16b, v10.16b + ret + + + +.align 4 +// On entry: +// x9 -> input key (big-endian) +// x10 = number of rounds +// x17 -> output key (native endianness) +// On exit: +// x9, x10 corrupted +// x11 -> .LM0_bigendian +// x17 -> last quadword of output key +// other general-purpose registers preserved +// v2-v6 preserved +// v7.16b[] = 0x63 +// v8-v14 preserved +// v15 = last round key (converted to native endianness) +// other SIMD registers corrupted +_bsaes_key_convert: +#ifdef __AARCH64EL__ + adrp x11, LM0_littleendian@PAGE + add x11, x11, LM0_littleendian@PAGEOFF +#else + adrp x11, LM0_bigendian@PAGE + add x11, x11, LM0_bigendian@PAGEOFF +#endif + ldr q0, [x9], #16 // load round 0 key + ldr q1, [x11] // LM0 + ldr q15, [x9], #16 // load round 1 key + + movi v7.16b, #0x63 // compose L63 + movi v16.16b, #0x01 // bit masks + movi v17.16b, #0x02 + movi v18.16b, #0x04 + movi v19.16b, #0x08 + movi v20.16b, #0x10 + movi v21.16b, #0x20 + movi v22.16b, #0x40 + movi v23.16b, #0x80 + +#ifdef __AARCH64EL__ + rev32 v0.16b, v0.16b +#endif + sub x10, x10, #1 + str q0, [x17], #16 // save round 0 key + +.align 4 +Lkey_loop: + tbl v0.16b, {v15.16b}, v1.16b + ldr q15, [x9], #16 // load next round key + + eor v0.16b, v0.16b, v7.16b + cmtst v24.16b, v0.16b, v16.16b + cmtst v25.16b, v0.16b, v17.16b + cmtst v26.16b, v0.16b, v18.16b + cmtst v27.16b, v0.16b, v19.16b + cmtst v28.16b, v0.16b, v20.16b + cmtst v29.16b, v0.16b, v21.16b + cmtst v30.16b, v0.16b, v22.16b + cmtst v31.16b, v0.16b, v23.16b + sub x10, x10, #1 + st1 {v24.16b,v25.16b,v26.16b,v27.16b}, [x17], #64 // write bit-sliced round key + st1 {v28.16b,v29.16b,v30.16b,v31.16b}, [x17], #64 + cbnz x10, Lkey_loop + + // don't save last round key +#ifdef __AARCH64EL__ + rev32 v15.16b, v15.16b + adrp x11, LM0_bigendian@PAGE + add x11, x11, LM0_bigendian@PAGEOFF +#endif + ret + + +.globl _ossl_bsaes_cbc_encrypt + +.align 4 +// On entry: +// x0 -> input ciphertext +// x1 -> output plaintext +// x2 = size of ciphertext and plaintext in bytes (assumed a multiple of 16) +// x3 -> key +// x4 -> 128-bit initialisation vector (or preceding 128-bit block of ciphertext if continuing after an earlier call) +// w5 must be == 0 +// On exit: +// Output plaintext filled in +// Initialisation vector overwritten with last quadword of ciphertext +// No output registers, usual AAPCS64 register preservation +_ossl_bsaes_cbc_encrypt: + AARCH64_VALID_CALL_TARGET + cmp x2, #128 + bhs Lcbc_do_bsaes + b _AES_cbc_encrypt +Lcbc_do_bsaes: + + // it is up to the caller to make sure we are called with enc == 0 + + stp x29, x30, [sp, #-48]! + stp d8, d9, [sp, #16] + stp d10, d15, [sp, #32] + lsr x2, x2, #4 // len in 16 byte blocks + + ldr w15, [x3, #240] // get # of rounds + mov x14, sp + + // allocate the key schedule on the stack + add x17, sp, #96 + sub x17, x17, x15, lsl #7 // 128 bytes per inner round key, less 96 bytes + + // populate the key schedule + mov x9, x3 // pass key + mov x10, x15 // pass # of rounds + mov sp, x17 // sp is sp + bl _bsaes_key_convert + ldr q6, [sp] + str q15, [x17] // save last round key + eor v6.16b, v6.16b, v7.16b // fix up round 0 key (by XORing with 0x63) + str q6, [sp] + + ldr q15, [x4] // load IV + b Lcbc_dec_loop + +.align 4 +Lcbc_dec_loop: + subs x2, x2, #0x8 + bmi Lcbc_dec_loop_finish + + ldr q0, [x0], #16 // load input + mov x9, sp // pass the key + ldr q1, [x0], #16 + mov x10, x15 + ldr q2, [x0], #16 + ldr q3, [x0], #16 + ldr q4, [x0], #16 + ldr q5, [x0], #16 + ldr q6, [x0], #16 + ldr q7, [x0], #-7*16 + + bl _bsaes_decrypt8 + + ldr q16, [x0], #16 // reload input + eor v0.16b, v0.16b, v15.16b // ^= IV + eor v1.16b, v1.16b, v16.16b + str q0, [x1], #16 // write output + ldr q0, [x0], #16 + str q1, [x1], #16 + ldr q1, [x0], #16 + eor v1.16b, v4.16b, v1.16b + ldr q4, [x0], #16 + eor v2.16b, v2.16b, v4.16b + eor v0.16b, v6.16b, v0.16b + ldr q4, [x0], #16 + str q0, [x1], #16 + str q1, [x1], #16 + eor v0.16b, v7.16b, v4.16b + ldr q1, [x0], #16 + str q2, [x1], #16 + ldr q2, [x0], #16 + ldr q15, [x0], #16 + str q0, [x1], #16 + eor v0.16b, v5.16b, v2.16b + eor v1.16b, v3.16b, v1.16b + str q1, [x1], #16 + str q0, [x1], #16 + + b Lcbc_dec_loop + +Lcbc_dec_loop_finish: + adds x2, x2, #8 + beq Lcbc_dec_done + + ldr q0, [x0], #16 // load input + cmp x2, #2 + blo Lcbc_dec_one + ldr q1, [x0], #16 + mov x9, sp // pass the key + mov x10, x15 + beq Lcbc_dec_two + ldr q2, [x0], #16 + cmp x2, #4 + blo Lcbc_dec_three + ldr q3, [x0], #16 + beq Lcbc_dec_four + ldr q4, [x0], #16 + cmp x2, #6 + blo Lcbc_dec_five + ldr q5, [x0], #16 + beq Lcbc_dec_six + ldr q6, [x0], #-6*16 + + bl _bsaes_decrypt8 + + ldr q5, [x0], #16 // reload input + eor v0.16b, v0.16b, v15.16b // ^= IV + ldr q8, [x0], #16 + ldr q9, [x0], #16 + ldr q10, [x0], #16 + str q0, [x1], #16 // write output + ldr q0, [x0], #16 + eor v1.16b, v1.16b, v5.16b + ldr q5, [x0], #16 + eor v6.16b, v6.16b, v8.16b + ldr q15, [x0] + eor v4.16b, v4.16b, v9.16b + eor v2.16b, v2.16b, v10.16b + str q1, [x1], #16 + eor v0.16b, v7.16b, v0.16b + str q6, [x1], #16 + eor v1.16b, v3.16b, v5.16b + str q4, [x1], #16 + str q2, [x1], #16 + str q0, [x1], #16 + str q1, [x1] + b Lcbc_dec_done +.align 4 +Lcbc_dec_six: + sub x0, x0, #0x60 + bl _bsaes_decrypt8 + ldr q3, [x0], #16 // reload input + eor v0.16b, v0.16b, v15.16b // ^= IV + ldr q5, [x0], #16 + ldr q8, [x0], #16 + ldr q9, [x0], #16 + str q0, [x1], #16 // write output + ldr q0, [x0], #16 + eor v1.16b, v1.16b, v3.16b + ldr q15, [x0] + eor v3.16b, v6.16b, v5.16b + eor v4.16b, v4.16b, v8.16b + eor v2.16b, v2.16b, v9.16b + str q1, [x1], #16 + eor v0.16b, v7.16b, v0.16b + str q3, [x1], #16 + str q4, [x1], #16 + str q2, [x1], #16 + str q0, [x1] + b Lcbc_dec_done +.align 4 +Lcbc_dec_five: + sub x0, x0, #0x50 + bl _bsaes_decrypt8 + ldr q3, [x0], #16 // reload input + eor v0.16b, v0.16b, v15.16b // ^= IV + ldr q5, [x0], #16 + ldr q7, [x0], #16 + ldr q8, [x0], #16 + str q0, [x1], #16 // write output + ldr q15, [x0] + eor v0.16b, v1.16b, v3.16b + eor v1.16b, v6.16b, v5.16b + eor v3.16b, v4.16b, v7.16b + str q0, [x1], #16 + eor v0.16b, v2.16b, v8.16b + str q1, [x1], #16 + str q3, [x1], #16 + str q0, [x1] + b Lcbc_dec_done +.align 4 +Lcbc_dec_four: + sub x0, x0, #0x40 + bl _bsaes_decrypt8 + ldr q2, [x0], #16 // reload input + eor v0.16b, v0.16b, v15.16b // ^= IV + ldr q3, [x0], #16 + ldr q5, [x0], #16 + str q0, [x1], #16 // write output + ldr q15, [x0] + eor v0.16b, v1.16b, v2.16b + eor v1.16b, v6.16b, v3.16b + eor v2.16b, v4.16b, v5.16b + str q0, [x1], #16 + str q1, [x1], #16 + str q2, [x1] + b Lcbc_dec_done +.align 4 +Lcbc_dec_three: + sub x0, x0, #0x30 + bl _bsaes_decrypt8 + ldr q2, [x0], #16 // reload input + eor v0.16b, v0.16b, v15.16b // ^= IV + ldr q3, [x0], #16 + ldr q15, [x0] + str q0, [x1], #16 // write output + eor v0.16b, v1.16b, v2.16b + eor v1.16b, v6.16b, v3.16b + str q0, [x1], #16 + str q1, [x1] + b Lcbc_dec_done +.align 4 +Lcbc_dec_two: + sub x0, x0, #0x20 + bl _bsaes_decrypt8 + ldr q2, [x0], #16 // reload input + eor v0.16b, v0.16b, v15.16b // ^= IV + ldr q15, [x0] + str q0, [x1], #16 // write output + eor v0.16b, v1.16b, v2.16b + str q0, [x1] + b Lcbc_dec_done +.align 4 +Lcbc_dec_one: + sub x0, x0, #0x10 + stp x1, x4, [sp, #-32]! + str x14, [sp, #16] + mov v8.16b, v15.16b + mov v15.16b, v0.16b + mov x2, x3 + bl _AES_decrypt + ldr x14, [sp, #16] + ldp x1, x4, [sp], #32 + ldr q0, [x1] // load result + eor v0.16b, v0.16b, v8.16b // ^= IV + str q0, [x1] // write output + +.align 4 +Lcbc_dec_done: + movi v0.16b, #0 + movi v1.16b, #0 +Lcbc_dec_bzero: // wipe key schedule [if any] + stp q0, q1, [sp], #32 + cmp sp, x14 + bne Lcbc_dec_bzero + str q15, [x4] // return IV + ldp d8, d9, [sp, #16] + ldp d10, d15, [sp, #32] + ldp x29, x30, [sp], #48 + ret + + +.globl _ossl_bsaes_ctr32_encrypt_blocks + +.align 4 +// On entry: +// x0 -> input text (whole 16-byte blocks) +// x1 -> output text (whole 16-byte blocks) +// x2 = number of 16-byte blocks to encrypt/decrypt (> 0) +// x3 -> key +// x4 -> initial value of 128-bit counter (stored big-endian) which increments, modulo 2^32, for each block +// On exit: +// Output text filled in +// No output registers, usual AAPCS64 register preservation +_ossl_bsaes_ctr32_encrypt_blocks: + AARCH64_VALID_CALL_TARGET + cmp x2, #8 // use plain AES for + blo Lctr_enc_short // small sizes + + stp x29, x30, [sp, #-80]! + stp d8, d9, [sp, #16] + stp d10, d11, [sp, #32] + stp d12, d13, [sp, #48] + stp d14, d15, [sp, #64] + + ldr w15, [x3, #240] // get # of rounds + mov x14, sp + + // allocate the key schedule on the stack + add x17, sp, #96 + sub x17, x17, x15, lsl #7 // 128 bytes per inner round key, less 96 bytes + + // populate the key schedule + mov x9, x3 // pass key + mov x10, x15 // pass # of rounds + mov sp, x17 // sp is sp + bl _bsaes_key_convert + eor v7.16b, v7.16b, v15.16b // fix up last round key + str q7, [x17] // save last round key + + ldr q0, [x4] // load counter + add x13, x11, #LREVM0SR-LM0_bigendian + ldr q4, [sp] // load round0 key + + movi v8.4s, #1 // compose 1<<96 + movi v9.16b, #0 + rev32 v15.16b, v0.16b + rev32 v0.16b, v0.16b + ext v11.16b, v9.16b, v8.16b, #4 + rev32 v4.16b, v4.16b + add v12.4s, v11.4s, v11.4s // compose 2<<96 + str q4, [sp] // save adjusted round0 key + add v13.4s, v11.4s, v12.4s // compose 3<<96 + add v14.4s, v12.4s, v12.4s // compose 4<<96 + b Lctr_enc_loop + +.align 4 +Lctr_enc_loop: + // Intermix prologue from _bsaes_encrypt8 to use the opportunity + // to flip byte order in 32-bit counter + + add v1.4s, v15.4s, v11.4s // +1 + add x9, sp, #0x10 // pass next round key + add v2.4s, v15.4s, v12.4s // +2 + ldr q9, [x13] // LREVM0SR + ldr q8, [sp] // load round0 key + add v3.4s, v15.4s, v13.4s // +3 + mov x10, x15 // pass rounds + sub x11, x13, #LREVM0SR-LSR // pass constants + add v6.4s, v2.4s, v14.4s + add v4.4s, v15.4s, v14.4s // +4 + add v7.4s, v3.4s, v14.4s + add v15.4s, v4.4s, v14.4s // next counter + add v5.4s, v1.4s, v14.4s + + bl _bsaes_encrypt8_alt + + subs x2, x2, #8 + blo Lctr_enc_loop_done + + ldr q16, [x0], #16 + ldr q17, [x0], #16 + eor v1.16b, v1.16b, v17.16b + ldr q17, [x0], #16 + eor v0.16b, v0.16b, v16.16b + eor v4.16b, v4.16b, v17.16b + str q0, [x1], #16 + ldr q16, [x0], #16 + str q1, [x1], #16 + mov v0.16b, v15.16b + str q4, [x1], #16 + ldr q1, [x0], #16 + eor v4.16b, v6.16b, v16.16b + eor v1.16b, v3.16b, v1.16b + ldr q3, [x0], #16 + eor v3.16b, v7.16b, v3.16b + ldr q6, [x0], #16 + eor v2.16b, v2.16b, v6.16b + ldr q6, [x0], #16 + eor v5.16b, v5.16b, v6.16b + str q4, [x1], #16 + str q1, [x1], #16 + str q3, [x1], #16 + str q2, [x1], #16 + str q5, [x1], #16 + + bne Lctr_enc_loop + b Lctr_enc_done + +.align 4 +Lctr_enc_loop_done: + add x2, x2, #8 + ldr q16, [x0], #16 // load input + eor v0.16b, v0.16b, v16.16b + str q0, [x1], #16 // write output + cmp x2, #2 + blo Lctr_enc_done + ldr q17, [x0], #16 + eor v1.16b, v1.16b, v17.16b + str q1, [x1], #16 + beq Lctr_enc_done + ldr q18, [x0], #16 + eor v4.16b, v4.16b, v18.16b + str q4, [x1], #16 + cmp x2, #4 + blo Lctr_enc_done + ldr q19, [x0], #16 + eor v6.16b, v6.16b, v19.16b + str q6, [x1], #16 + beq Lctr_enc_done + ldr q20, [x0], #16 + eor v3.16b, v3.16b, v20.16b + str q3, [x1], #16 + cmp x2, #6 + blo Lctr_enc_done + ldr q21, [x0], #16 + eor v7.16b, v7.16b, v21.16b + str q7, [x1], #16 + beq Lctr_enc_done + ldr q22, [x0] + eor v2.16b, v2.16b, v22.16b + str q2, [x1], #16 + +Lctr_enc_done: + movi v0.16b, #0 + movi v1.16b, #0 +Lctr_enc_bzero: // wipe key schedule [if any] + stp q0, q1, [sp], #32 + cmp sp, x14 + bne Lctr_enc_bzero + + ldp d8, d9, [sp, #16] + ldp d10, d11, [sp, #32] + ldp d12, d13, [sp, #48] + ldp d14, d15, [sp, #64] + ldp x29, x30, [sp], #80 + ret + +Lctr_enc_short: + stp x29, x30, [sp, #-96]! + stp x19, x20, [sp, #16] + stp x21, x22, [sp, #32] + str x23, [sp, #48] + + mov x19, x0 // copy arguments + mov x20, x1 + mov x21, x2 + mov x22, x3 + ldr w23, [x4, #12] // load counter LSW + ldr q1, [x4] // load whole counter value +#ifdef __AARCH64EL__ + rev w23, w23 +#endif + str q1, [sp, #80] // copy counter value + +Lctr_enc_short_loop: + add x0, sp, #80 // input counter value + add x1, sp, #64 // output on the stack + mov x2, x22 // key + + bl _AES_encrypt + + ldr q0, [x19], #16 // load input + ldr q1, [sp, #64] // load encrypted counter + add x23, x23, #1 +#ifdef __AARCH64EL__ + rev w0, w23 + str w0, [sp, #80+12] // next counter value +#else + str w23, [sp, #80+12] // next counter value +#endif + eor v0.16b, v0.16b, v1.16b + str q0, [x20], #16 // store output + subs x21, x21, #1 + bne Lctr_enc_short_loop + + movi v0.16b, #0 + movi v1.16b, #0 + stp q0, q1, [sp, #64] + + ldr x23, [sp, #48] + ldp x21, x22, [sp, #32] + ldp x19, x20, [sp, #16] + ldp x29, x30, [sp], #96 + ret + + +.globl _ossl_bsaes_xts_encrypt + +.align 4 +// On entry: +// x0 -> input plaintext +// x1 -> output ciphertext +// x2 -> length of text in bytes (must be at least 16) +// x3 -> key1 (used to encrypt the XORed plaintext blocks) +// x4 -> key2 (used to encrypt the initial vector to yield the initial tweak) +// x5 -> 16-byte initial vector (typically, sector number) +// On exit: +// Output ciphertext filled in +// No output registers, usual AAPCS64 register preservation +_ossl_bsaes_xts_encrypt: + AARCH64_VALID_CALL_TARGET + // Stack layout: + // sp -> + // nrounds*128-96 bytes: key schedule + // x19 -> + // 16 bytes: frame record + // 4*16 bytes: tweak storage across _bsaes_encrypt8 + // 6*8 bytes: storage for 5 callee-saved general-purpose registers + // 8*8 bytes: storage for 8 callee-saved SIMD registers + stp x29, x30, [sp, #-192]! + stp x19, x20, [sp, #80] + stp x21, x22, [sp, #96] + str x23, [sp, #112] + stp d8, d9, [sp, #128] + stp d10, d11, [sp, #144] + stp d12, d13, [sp, #160] + stp d14, d15, [sp, #176] + + mov x19, sp + mov x20, x0 + mov x21, x1 + mov x22, x2 + mov x23, x3 + + // generate initial tweak + sub sp, sp, #16 + mov x0, x5 // iv[] + mov x1, sp + mov x2, x4 // key2 + bl _AES_encrypt + ldr q11, [sp], #16 + + ldr w1, [x23, #240] // get # of rounds + // allocate the key schedule on the stack + add x17, sp, #96 + sub x17, x17, x1, lsl #7 // 128 bytes per inner round key, less 96 bytes + + // populate the key schedule + mov x9, x23 // pass key + mov x10, x1 // pass # of rounds + mov sp, x17 + bl _bsaes_key_convert + eor v15.16b, v15.16b, v7.16b // fix up last round key + str q15, [x17] // save last round key + + subs x22, x22, #0x80 + blo Lxts_enc_short + b Lxts_enc_loop + +.align 4 +Lxts_enc_loop: + ldr q8, Lxts_magic + mov x10, x1 // pass rounds + add x2, x19, #16 + ldr q0, [x20], #16 + sshr v1.2d, v11.2d, #63 + mov x9, sp // pass key schedule + ldr q6, Lxts_magic+16 + add v2.2d, v11.2d, v11.2d + cmtst v3.2d, v11.2d, v6.2d + and v1.16b, v1.16b, v8.16b + ext v1.16b, v1.16b, v1.16b, #8 + and v3.16b, v3.16b, v8.16b + ldr q4, [x20], #16 + eor v12.16b, v2.16b, v1.16b + eor v1.16b, v4.16b, v12.16b + eor v0.16b, v0.16b, v11.16b + cmtst v2.2d, v12.2d, v6.2d + add v4.2d, v12.2d, v12.2d + add x0, x19, #16 + ext v3.16b, v3.16b, v3.16b, #8 + and v2.16b, v2.16b, v8.16b + eor v13.16b, v4.16b, v3.16b + ldr q3, [x20], #16 + ext v4.16b, v2.16b, v2.16b, #8 + eor v2.16b, v3.16b, v13.16b + ldr q3, [x20], #16 + add v5.2d, v13.2d, v13.2d + cmtst v7.2d, v13.2d, v6.2d + and v7.16b, v7.16b, v8.16b + ldr q9, [x20], #16 + ext v7.16b, v7.16b, v7.16b, #8 + ldr q10, [x20], #16 + eor v14.16b, v5.16b, v4.16b + ldr q16, [x20], #16 + add v4.2d, v14.2d, v14.2d + eor v3.16b, v3.16b, v14.16b + eor v15.16b, v4.16b, v7.16b + add v5.2d, v15.2d, v15.2d + ldr q7, [x20], #16 + cmtst v4.2d, v14.2d, v6.2d + and v17.16b, v4.16b, v8.16b + cmtst v18.2d, v15.2d, v6.2d + eor v4.16b, v9.16b, v15.16b + ext v9.16b, v17.16b, v17.16b, #8 + eor v9.16b, v5.16b, v9.16b + add v17.2d, v9.2d, v9.2d + and v18.16b, v18.16b, v8.16b + eor v5.16b, v10.16b, v9.16b + str q9, [x2], #16 + ext v10.16b, v18.16b, v18.16b, #8 + cmtst v9.2d, v9.2d, v6.2d + and v9.16b, v9.16b, v8.16b + eor v10.16b, v17.16b, v10.16b + cmtst v17.2d, v10.2d, v6.2d + eor v6.16b, v16.16b, v10.16b + str q10, [x2], #16 + ext v9.16b, v9.16b, v9.16b, #8 + add v10.2d, v10.2d, v10.2d + eor v9.16b, v10.16b, v9.16b + str q9, [x2], #16 + eor v7.16b, v7.16b, v9.16b + add v9.2d, v9.2d, v9.2d + and v8.16b, v17.16b, v8.16b + ext v8.16b, v8.16b, v8.16b, #8 + eor v8.16b, v9.16b, v8.16b + str q8, [x2] // next round tweak + + bl _bsaes_encrypt8 + + ldr q8, [x0], #16 + eor v0.16b, v0.16b, v11.16b + eor v1.16b, v1.16b, v12.16b + ldr q9, [x0], #16 + eor v4.16b, v4.16b, v13.16b + eor v6.16b, v6.16b, v14.16b + ldr q10, [x0], #16 + eor v3.16b, v3.16b, v15.16b + subs x22, x22, #0x80 + str q0, [x21], #16 + ldr q11, [x0] // next round tweak + str q1, [x21], #16 + eor v0.16b, v7.16b, v8.16b + eor v1.16b, v2.16b, v9.16b + str q4, [x21], #16 + eor v2.16b, v5.16b, v10.16b + str q6, [x21], #16 + str q3, [x21], #16 + str q0, [x21], #16 + str q1, [x21], #16 + str q2, [x21], #16 + bpl Lxts_enc_loop + +Lxts_enc_short: + adds x22, x22, #0x70 + bmi Lxts_enc_done + + ldr q8, Lxts_magic + sshr v1.2d, v11.2d, #63 + add v2.2d, v11.2d, v11.2d + ldr q9, Lxts_magic+16 + subs x22, x22, #0x10 + ldr q0, [x20], #16 + and v1.16b, v1.16b, v8.16b + cmtst v3.2d, v11.2d, v9.2d + ext v1.16b, v1.16b, v1.16b, #8 + and v3.16b, v3.16b, v8.16b + eor v12.16b, v2.16b, v1.16b + ext v1.16b, v3.16b, v3.16b, #8 + add v2.2d, v12.2d, v12.2d + cmtst v3.2d, v12.2d, v9.2d + eor v13.16b, v2.16b, v1.16b + and v22.16b, v3.16b, v8.16b + bmi Lxts_enc_1 + + ext v2.16b, v22.16b, v22.16b, #8 + add v3.2d, v13.2d, v13.2d + ldr q1, [x20], #16 + cmtst v4.2d, v13.2d, v9.2d + subs x22, x22, #0x10 + eor v14.16b, v3.16b, v2.16b + and v23.16b, v4.16b, v8.16b + bmi Lxts_enc_2 + + ext v3.16b, v23.16b, v23.16b, #8 + add v4.2d, v14.2d, v14.2d + ldr q2, [x20], #16 + cmtst v5.2d, v14.2d, v9.2d + eor v0.16b, v0.16b, v11.16b + subs x22, x22, #0x10 + eor v15.16b, v4.16b, v3.16b + and v24.16b, v5.16b, v8.16b + bmi Lxts_enc_3 + + ext v4.16b, v24.16b, v24.16b, #8 + add v5.2d, v15.2d, v15.2d + ldr q3, [x20], #16 + cmtst v6.2d, v15.2d, v9.2d + eor v1.16b, v1.16b, v12.16b + subs x22, x22, #0x10 + eor v16.16b, v5.16b, v4.16b + and v25.16b, v6.16b, v8.16b + bmi Lxts_enc_4 + + ext v5.16b, v25.16b, v25.16b, #8 + add v6.2d, v16.2d, v16.2d + add x0, x19, #16 + cmtst v7.2d, v16.2d, v9.2d + ldr q4, [x20], #16 + eor v2.16b, v2.16b, v13.16b + str q16, [x0], #16 + subs x22, x22, #0x10 + eor v17.16b, v6.16b, v5.16b + and v26.16b, v7.16b, v8.16b + bmi Lxts_enc_5 + + ext v7.16b, v26.16b, v26.16b, #8 + add v18.2d, v17.2d, v17.2d + ldr q5, [x20], #16 + eor v3.16b, v3.16b, v14.16b + str q17, [x0], #16 + subs x22, x22, #0x10 + eor v18.16b, v18.16b, v7.16b + bmi Lxts_enc_6 + + ldr q6, [x20], #16 + eor v4.16b, v4.16b, v15.16b + eor v5.16b, v5.16b, v16.16b + str q18, [x0] // next round tweak + mov x9, sp // pass key schedule + mov x10, x1 + add x0, x19, #16 + sub x22, x22, #0x10 + eor v6.16b, v6.16b, v17.16b + + bl _bsaes_encrypt8 + + ldr q16, [x0], #16 + eor v0.16b, v0.16b, v11.16b + eor v1.16b, v1.16b, v12.16b + ldr q17, [x0], #16 + eor v4.16b, v4.16b, v13.16b + eor v6.16b, v6.16b, v14.16b + eor v3.16b, v3.16b, v15.16b + ldr q11, [x0] // next round tweak + str q0, [x21], #16 + str q1, [x21], #16 + eor v0.16b, v7.16b, v16.16b + eor v1.16b, v2.16b, v17.16b + str q4, [x21], #16 + str q6, [x21], #16 + str q3, [x21], #16 + str q0, [x21], #16 + str q1, [x21], #16 + b Lxts_enc_done + +.align 4 +Lxts_enc_6: + eor v4.16b, v4.16b, v15.16b + eor v5.16b, v5.16b, v16.16b + mov x9, sp // pass key schedule + mov x10, x1 // pass rounds + add x0, x19, #16 + + bl _bsaes_encrypt8 + + ldr q16, [x0], #16 + eor v0.16b, v0.16b, v11.16b + eor v1.16b, v1.16b, v12.16b + eor v4.16b, v4.16b, v13.16b + eor v6.16b, v6.16b, v14.16b + ldr q11, [x0] // next round tweak + eor v3.16b, v3.16b, v15.16b + str q0, [x21], #16 + str q1, [x21], #16 + eor v0.16b, v7.16b, v16.16b + str q4, [x21], #16 + str q6, [x21], #16 + str q3, [x21], #16 + str q0, [x21], #16 + b Lxts_enc_done + +.align 4 +Lxts_enc_5: + eor v3.16b, v3.16b, v14.16b + eor v4.16b, v4.16b, v15.16b + mov x9, sp // pass key schedule + mov x10, x1 // pass rounds + add x0, x19, #16 + + bl _bsaes_encrypt8 + + eor v0.16b, v0.16b, v11.16b + eor v1.16b, v1.16b, v12.16b + ldr q11, [x0] // next round tweak + eor v4.16b, v4.16b, v13.16b + eor v6.16b, v6.16b, v14.16b + eor v3.16b, v3.16b, v15.16b + str q0, [x21], #16 + str q1, [x21], #16 + str q4, [x21], #16 + str q6, [x21], #16 + str q3, [x21], #16 + b Lxts_enc_done + +.align 4 +Lxts_enc_4: + eor v2.16b, v2.16b, v13.16b + eor v3.16b, v3.16b, v14.16b + mov x9, sp // pass key schedule + mov x10, x1 // pass rounds + add x0, x19, #16 + + bl _bsaes_encrypt8 + + eor v0.16b, v0.16b, v11.16b + eor v1.16b, v1.16b, v12.16b + eor v4.16b, v4.16b, v13.16b + eor v6.16b, v6.16b, v14.16b + mov v11.16b, v15.16b // next round tweak + str q0, [x21], #16 + str q1, [x21], #16 + str q4, [x21], #16 + str q6, [x21], #16 + b Lxts_enc_done + +.align 4 +Lxts_enc_3: + eor v1.16b, v1.16b, v12.16b + eor v2.16b, v2.16b, v13.16b + mov x9, sp // pass key schedule + mov x10, x1 // pass rounds + add x0, x19, #16 + + bl _bsaes_encrypt8 + + eor v0.16b, v0.16b, v11.16b + eor v1.16b, v1.16b, v12.16b + eor v4.16b, v4.16b, v13.16b + mov v11.16b, v14.16b // next round tweak + str q0, [x21], #16 + str q1, [x21], #16 + str q4, [x21], #16 + b Lxts_enc_done + +.align 4 +Lxts_enc_2: + eor v0.16b, v0.16b, v11.16b + eor v1.16b, v1.16b, v12.16b + mov x9, sp // pass key schedule + mov x10, x1 // pass rounds + add x0, x19, #16 + + bl _bsaes_encrypt8 + + eor v0.16b, v0.16b, v11.16b + eor v1.16b, v1.16b, v12.16b + mov v11.16b, v13.16b // next round tweak + str q0, [x21], #16 + str q1, [x21], #16 + b Lxts_enc_done + +.align 4 +Lxts_enc_1: + eor v0.16b, v0.16b, v11.16b + sub x0, sp, #16 + sub x1, sp, #16 + mov x2, x23 + mov v13.d[0], v11.d[1] // just in case _AES_encrypt corrupts top half of callee-saved SIMD registers + mov v14.d[0], v12.d[1] + str q0, [sp, #-16]! + + bl _AES_encrypt + + ldr q0, [sp], #16 + trn1 v13.2d, v11.2d, v13.2d + trn1 v11.2d, v12.2d, v14.2d // next round tweak + eor v0.16b, v0.16b, v13.16b + str q0, [x21], #16 + +Lxts_enc_done: + adds x22, x22, #0x10 + beq Lxts_enc_ret + + sub x6, x21, #0x10 + // Penultimate plaintext block produces final ciphertext part-block + // plus remaining part of final plaintext block. Move ciphertext part + // to final position and reuse penultimate ciphertext block buffer to + // construct final plaintext block +Lxts_enc_steal: + ldrb w0, [x20], #1 + ldrb w1, [x21, #-0x10] + strb w0, [x21, #-0x10] + strb w1, [x21], #1 + + subs x22, x22, #1 + bhi Lxts_enc_steal + + // Finally encrypt the penultimate ciphertext block using the + // last tweak + ldr q0, [x6] + eor v0.16b, v0.16b, v11.16b + str q0, [sp, #-16]! + mov x0, sp + mov x1, sp + mov x2, x23 + mov x21, x6 + mov v13.d[0], v11.d[1] // just in case _AES_encrypt corrupts top half of callee-saved SIMD registers + + bl _AES_encrypt + + trn1 v11.2d, v11.2d, v13.2d + ldr q0, [sp], #16 + eor v0.16b, v0.16b, v11.16b + str q0, [x21] + +Lxts_enc_ret: + + movi v0.16b, #0 + movi v1.16b, #0 +Lxts_enc_bzero: // wipe key schedule + stp q0, q1, [sp], #32 + cmp sp, x19 + bne Lxts_enc_bzero + + ldp x19, x20, [sp, #80] + ldp x21, x22, [sp, #96] + ldr x23, [sp, #112] + ldp d8, d9, [sp, #128] + ldp d10, d11, [sp, #144] + ldp d12, d13, [sp, #160] + ldp d14, d15, [sp, #176] + ldp x29, x30, [sp], #192 + ret + + +// The assembler doesn't seem capable of de-duplicating these when expressed +// using `ldr qd,=` syntax, so assign a symbolic address +.align 5 +Lxts_magic: +.quad 1, 0x87, 0x4000000000000000, 0x4000000000000000 + +.globl _ossl_bsaes_xts_decrypt + +.align 4 +// On entry: +// x0 -> input ciphertext +// x1 -> output plaintext +// x2 -> length of text in bytes (must be at least 16) +// x3 -> key1 (used to decrypt the XORed ciphertext blocks) +// x4 -> key2 (used to encrypt the initial vector to yield the initial tweak) +// x5 -> 16-byte initial vector (typically, sector number) +// On exit: +// Output plaintext filled in +// No output registers, usual AAPCS64 register preservation +_ossl_bsaes_xts_decrypt: + AARCH64_VALID_CALL_TARGET + // Stack layout: + // sp -> + // nrounds*128-96 bytes: key schedule + // x19 -> + // 16 bytes: frame record + // 4*16 bytes: tweak storage across _bsaes_decrypt8 + // 6*8 bytes: storage for 5 callee-saved general-purpose registers + // 8*8 bytes: storage for 8 callee-saved SIMD registers + stp x29, x30, [sp, #-192]! + stp x19, x20, [sp, #80] + stp x21, x22, [sp, #96] + str x23, [sp, #112] + stp d8, d9, [sp, #128] + stp d10, d11, [sp, #144] + stp d12, d13, [sp, #160] + stp d14, d15, [sp, #176] + + mov x19, sp + mov x20, x0 + mov x21, x1 + mov x22, x2 + mov x23, x3 + + // generate initial tweak + sub sp, sp, #16 + mov x0, x5 // iv[] + mov x1, sp + mov x2, x4 // key2 + bl _AES_encrypt + ldr q11, [sp], #16 + + ldr w1, [x23, #240] // get # of rounds + // allocate the key schedule on the stack + add x17, sp, #96 + sub x17, x17, x1, lsl #7 // 128 bytes per inner round key, less 96 bytes + + // populate the key schedule + mov x9, x23 // pass key + mov x10, x1 // pass # of rounds + mov sp, x17 + bl _bsaes_key_convert + ldr q6, [sp] + str q15, [x17] // save last round key + eor v6.16b, v6.16b, v7.16b // fix up round 0 key (by XORing with 0x63) + str q6, [sp] + + sub x30, x22, #0x10 + tst x22, #0xf // if not multiple of 16 + csel x22, x30, x22, ne // subtract another 16 bytes + subs x22, x22, #0x80 + + blo Lxts_dec_short + b Lxts_dec_loop + +.align 4 +Lxts_dec_loop: + ldr q8, Lxts_magic + mov x10, x1 // pass rounds + add x2, x19, #16 + ldr q0, [x20], #16 + sshr v1.2d, v11.2d, #63 + mov x9, sp // pass key schedule + ldr q6, Lxts_magic+16 + add v2.2d, v11.2d, v11.2d + cmtst v3.2d, v11.2d, v6.2d + and v1.16b, v1.16b, v8.16b + ext v1.16b, v1.16b, v1.16b, #8 + and v3.16b, v3.16b, v8.16b + ldr q4, [x20], #16 + eor v12.16b, v2.16b, v1.16b + eor v1.16b, v4.16b, v12.16b + eor v0.16b, v0.16b, v11.16b + cmtst v2.2d, v12.2d, v6.2d + add v4.2d, v12.2d, v12.2d + add x0, x19, #16 + ext v3.16b, v3.16b, v3.16b, #8 + and v2.16b, v2.16b, v8.16b + eor v13.16b, v4.16b, v3.16b + ldr q3, [x20], #16 + ext v4.16b, v2.16b, v2.16b, #8 + eor v2.16b, v3.16b, v13.16b + ldr q3, [x20], #16 + add v5.2d, v13.2d, v13.2d + cmtst v7.2d, v13.2d, v6.2d + and v7.16b, v7.16b, v8.16b + ldr q9, [x20], #16 + ext v7.16b, v7.16b, v7.16b, #8 + ldr q10, [x20], #16 + eor v14.16b, v5.16b, v4.16b + ldr q16, [x20], #16 + add v4.2d, v14.2d, v14.2d + eor v3.16b, v3.16b, v14.16b + eor v15.16b, v4.16b, v7.16b + add v5.2d, v15.2d, v15.2d + ldr q7, [x20], #16 + cmtst v4.2d, v14.2d, v6.2d + and v17.16b, v4.16b, v8.16b + cmtst v18.2d, v15.2d, v6.2d + eor v4.16b, v9.16b, v15.16b + ext v9.16b, v17.16b, v17.16b, #8 + eor v9.16b, v5.16b, v9.16b + add v17.2d, v9.2d, v9.2d + and v18.16b, v18.16b, v8.16b + eor v5.16b, v10.16b, v9.16b + str q9, [x2], #16 + ext v10.16b, v18.16b, v18.16b, #8 + cmtst v9.2d, v9.2d, v6.2d + and v9.16b, v9.16b, v8.16b + eor v10.16b, v17.16b, v10.16b + cmtst v17.2d, v10.2d, v6.2d + eor v6.16b, v16.16b, v10.16b + str q10, [x2], #16 + ext v9.16b, v9.16b, v9.16b, #8 + add v10.2d, v10.2d, v10.2d + eor v9.16b, v10.16b, v9.16b + str q9, [x2], #16 + eor v7.16b, v7.16b, v9.16b + add v9.2d, v9.2d, v9.2d + and v8.16b, v17.16b, v8.16b + ext v8.16b, v8.16b, v8.16b, #8 + eor v8.16b, v9.16b, v8.16b + str q8, [x2] // next round tweak + + bl _bsaes_decrypt8 + + eor v6.16b, v6.16b, v13.16b + eor v0.16b, v0.16b, v11.16b + ldr q8, [x0], #16 + eor v7.16b, v7.16b, v8.16b + str q0, [x21], #16 + eor v0.16b, v1.16b, v12.16b + ldr q1, [x0], #16 + eor v1.16b, v3.16b, v1.16b + subs x22, x22, #0x80 + eor v2.16b, v2.16b, v15.16b + eor v3.16b, v4.16b, v14.16b + ldr q4, [x0], #16 + str q0, [x21], #16 + ldr q11, [x0] // next round tweak + eor v0.16b, v5.16b, v4.16b + str q6, [x21], #16 + str q3, [x21], #16 + str q2, [x21], #16 + str q7, [x21], #16 + str q1, [x21], #16 + str q0, [x21], #16 + bpl Lxts_dec_loop + +Lxts_dec_short: + adds x22, x22, #0x70 + bmi Lxts_dec_done + + ldr q8, Lxts_magic + sshr v1.2d, v11.2d, #63 + add v2.2d, v11.2d, v11.2d + ldr q9, Lxts_magic+16 + subs x22, x22, #0x10 + ldr q0, [x20], #16 + and v1.16b, v1.16b, v8.16b + cmtst v3.2d, v11.2d, v9.2d + ext v1.16b, v1.16b, v1.16b, #8 + and v3.16b, v3.16b, v8.16b + eor v12.16b, v2.16b, v1.16b + ext v1.16b, v3.16b, v3.16b, #8 + add v2.2d, v12.2d, v12.2d + cmtst v3.2d, v12.2d, v9.2d + eor v13.16b, v2.16b, v1.16b + and v22.16b, v3.16b, v8.16b + bmi Lxts_dec_1 + + ext v2.16b, v22.16b, v22.16b, #8 + add v3.2d, v13.2d, v13.2d + ldr q1, [x20], #16 + cmtst v4.2d, v13.2d, v9.2d + subs x22, x22, #0x10 + eor v14.16b, v3.16b, v2.16b + and v23.16b, v4.16b, v8.16b + bmi Lxts_dec_2 + + ext v3.16b, v23.16b, v23.16b, #8 + add v4.2d, v14.2d, v14.2d + ldr q2, [x20], #16 + cmtst v5.2d, v14.2d, v9.2d + eor v0.16b, v0.16b, v11.16b + subs x22, x22, #0x10 + eor v15.16b, v4.16b, v3.16b + and v24.16b, v5.16b, v8.16b + bmi Lxts_dec_3 + + ext v4.16b, v24.16b, v24.16b, #8 + add v5.2d, v15.2d, v15.2d + ldr q3, [x20], #16 + cmtst v6.2d, v15.2d, v9.2d + eor v1.16b, v1.16b, v12.16b + subs x22, x22, #0x10 + eor v16.16b, v5.16b, v4.16b + and v25.16b, v6.16b, v8.16b + bmi Lxts_dec_4 + + ext v5.16b, v25.16b, v25.16b, #8 + add v6.2d, v16.2d, v16.2d + add x0, x19, #16 + cmtst v7.2d, v16.2d, v9.2d + ldr q4, [x20], #16 + eor v2.16b, v2.16b, v13.16b + str q16, [x0], #16 + subs x22, x22, #0x10 + eor v17.16b, v6.16b, v5.16b + and v26.16b, v7.16b, v8.16b + bmi Lxts_dec_5 + + ext v7.16b, v26.16b, v26.16b, #8 + add v18.2d, v17.2d, v17.2d + ldr q5, [x20], #16 + eor v3.16b, v3.16b, v14.16b + str q17, [x0], #16 + subs x22, x22, #0x10 + eor v18.16b, v18.16b, v7.16b + bmi Lxts_dec_6 + + ldr q6, [x20], #16 + eor v4.16b, v4.16b, v15.16b + eor v5.16b, v5.16b, v16.16b + str q18, [x0] // next round tweak + mov x9, sp // pass key schedule + mov x10, x1 + add x0, x19, #16 + sub x22, x22, #0x10 + eor v6.16b, v6.16b, v17.16b + + bl _bsaes_decrypt8 + + ldr q16, [x0], #16 + eor v0.16b, v0.16b, v11.16b + eor v1.16b, v1.16b, v12.16b + ldr q17, [x0], #16 + eor v6.16b, v6.16b, v13.16b + eor v4.16b, v4.16b, v14.16b + eor v2.16b, v2.16b, v15.16b + ldr q11, [x0] // next round tweak + str q0, [x21], #16 + str q1, [x21], #16 + eor v0.16b, v7.16b, v16.16b + eor v1.16b, v3.16b, v17.16b + str q6, [x21], #16 + str q4, [x21], #16 + str q2, [x21], #16 + str q0, [x21], #16 + str q1, [x21], #16 + b Lxts_dec_done + +.align 4 +Lxts_dec_6: + eor v4.16b, v4.16b, v15.16b + eor v5.16b, v5.16b, v16.16b + mov x9, sp // pass key schedule + mov x10, x1 // pass rounds + add x0, x19, #16 + + bl _bsaes_decrypt8 + + ldr q16, [x0], #16 + eor v0.16b, v0.16b, v11.16b + eor v1.16b, v1.16b, v12.16b + eor v6.16b, v6.16b, v13.16b + eor v4.16b, v4.16b, v14.16b + ldr q11, [x0] // next round tweak + eor v2.16b, v2.16b, v15.16b + str q0, [x21], #16 + str q1, [x21], #16 + eor v0.16b, v7.16b, v16.16b + str q6, [x21], #16 + str q4, [x21], #16 + str q2, [x21], #16 + str q0, [x21], #16 + b Lxts_dec_done + +.align 4 +Lxts_dec_5: + eor v3.16b, v3.16b, v14.16b + eor v4.16b, v4.16b, v15.16b + mov x9, sp // pass key schedule + mov x10, x1 // pass rounds + add x0, x19, #16 + + bl _bsaes_decrypt8 + + eor v0.16b, v0.16b, v11.16b + eor v1.16b, v1.16b, v12.16b + ldr q11, [x0] // next round tweak + eor v6.16b, v6.16b, v13.16b + eor v4.16b, v4.16b, v14.16b + eor v2.16b, v2.16b, v15.16b + str q0, [x21], #16 + str q1, [x21], #16 + str q6, [x21], #16 + str q4, [x21], #16 + str q2, [x21], #16 + b Lxts_dec_done + +.align 4 +Lxts_dec_4: + eor v2.16b, v2.16b, v13.16b + eor v3.16b, v3.16b, v14.16b + mov x9, sp // pass key schedule + mov x10, x1 // pass rounds + add x0, x19, #16 + + bl _bsaes_decrypt8 + + eor v0.16b, v0.16b, v11.16b + eor v1.16b, v1.16b, v12.16b + eor v6.16b, v6.16b, v13.16b + eor v4.16b, v4.16b, v14.16b + mov v11.16b, v15.16b // next round tweak + str q0, [x21], #16 + str q1, [x21], #16 + str q6, [x21], #16 + str q4, [x21], #16 + b Lxts_dec_done + +.align 4 +Lxts_dec_3: + eor v1.16b, v1.16b, v12.16b + eor v2.16b, v2.16b, v13.16b + mov x9, sp // pass key schedule + mov x10, x1 // pass rounds + add x0, x19, #16 + + bl _bsaes_decrypt8 + + eor v0.16b, v0.16b, v11.16b + eor v1.16b, v1.16b, v12.16b + eor v6.16b, v6.16b, v13.16b + mov v11.16b, v14.16b // next round tweak + str q0, [x21], #16 + str q1, [x21], #16 + str q6, [x21], #16 + b Lxts_dec_done + +.align 4 +Lxts_dec_2: + eor v0.16b, v0.16b, v11.16b + eor v1.16b, v1.16b, v12.16b + mov x9, sp // pass key schedule + mov x10, x1 // pass rounds + add x0, x19, #16 + + bl _bsaes_decrypt8 + + eor v0.16b, v0.16b, v11.16b + eor v1.16b, v1.16b, v12.16b + mov v11.16b, v13.16b // next round tweak + str q0, [x21], #16 + str q1, [x21], #16 + b Lxts_dec_done + +.align 4 +Lxts_dec_1: + eor v0.16b, v0.16b, v11.16b + sub x0, sp, #16 + sub x1, sp, #16 + mov x2, x23 + mov v13.d[0], v11.d[1] // just in case _AES_decrypt corrupts top half of callee-saved SIMD registers + mov v14.d[0], v12.d[1] + str q0, [sp, #-16]! + + bl _AES_decrypt + + ldr q0, [sp], #16 + trn1 v13.2d, v11.2d, v13.2d + trn1 v11.2d, v12.2d, v14.2d // next round tweak + eor v0.16b, v0.16b, v13.16b + str q0, [x21], #16 + +Lxts_dec_done: + adds x22, x22, #0x10 + beq Lxts_dec_ret + + // calculate one round of extra tweak for the stolen ciphertext + ldr q8, Lxts_magic + sshr v6.2d, v11.2d, #63 + and v6.16b, v6.16b, v8.16b + add v12.2d, v11.2d, v11.2d + ext v6.16b, v6.16b, v6.16b, #8 + eor v12.16b, v12.16b, v6.16b + + // perform the final decryption with the last tweak value + ldr q0, [x20], #16 + eor v0.16b, v0.16b, v12.16b + str q0, [sp, #-16]! + mov x0, sp + mov x1, sp + mov x2, x23 + mov v13.d[0], v11.d[1] // just in case _AES_decrypt corrupts top half of callee-saved SIMD registers + mov v14.d[0], v12.d[1] + + bl _AES_decrypt + + trn1 v12.2d, v12.2d, v14.2d + trn1 v11.2d, v11.2d, v13.2d + ldr q0, [sp], #16 + eor v0.16b, v0.16b, v12.16b + str q0, [x21] + + mov x6, x21 + // Penultimate ciphertext block produces final plaintext part-block + // plus remaining part of final ciphertext block. Move plaintext part + // to final position and reuse penultimate plaintext block buffer to + // construct final ciphertext block +Lxts_dec_steal: + ldrb w1, [x21] + ldrb w0, [x20], #1 + strb w1, [x21, #0x10] + strb w0, [x21], #1 + + subs x22, x22, #1 + bhi Lxts_dec_steal + + // Finally decrypt the penultimate plaintext block using the + // penultimate tweak + ldr q0, [x6] + eor v0.16b, v0.16b, v11.16b + str q0, [sp, #-16]! + mov x0, sp + mov x1, sp + mov x2, x23 + mov x21, x6 + + bl _AES_decrypt + + trn1 v11.2d, v11.2d, v13.2d + ldr q0, [sp], #16 + eor v0.16b, v0.16b, v11.16b + str q0, [x21] + +Lxts_dec_ret: + + movi v0.16b, #0 + movi v1.16b, #0 +Lxts_dec_bzero: // wipe key schedule + stp q0, q1, [sp], #32 + cmp sp, x19 + bne Lxts_dec_bzero + + ldp x19, x20, [sp, #80] + ldp x21, x22, [sp, #96] + ldr x23, [sp, #112] + ldp d8, d9, [sp, #128] + ldp d10, d11, [sp, #144] + ldp d12, d13, [sp, #160] + ldp d14, d15, [sp, #176] + ldp x29, x30, [sp], #192 + ret + diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/crypto/aes/vpaes-armv8.S b/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/crypto/aes/vpaes-armv8.S index 0823766c765dfb..b4153363c6829a 100644 --- a/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/crypto/aes/vpaes-armv8.S +++ b/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/crypto/aes/vpaes-armv8.S @@ -1,4 +1,6 @@ -.text +#include "arm_arch.h" + +.section __TEXT,__const .align 7 // totally strategic alignment @@ -90,6 +92,9 @@ Lk_deskew: // deskew tables: inverts the sbox's "skew" .align 2 .align 6 + +.text + // // _aes_preheat // @@ -99,7 +104,8 @@ Lk_deskew: // deskew tables: inverts the sbox's "skew" .align 4 _vpaes_encrypt_preheat: - adr x10, Lk_inv + adrp x10, Lk_inv@PAGE + add x10, x10, Lk_inv@PAGEOFF movi v17.16b, #0x0f ld1 {v18.2d,v19.2d}, [x10],#32 // Lk_inv ld1 {v20.2d,v21.2d,v22.2d,v23.2d}, [x10],#64 // Lk_ipt, Lk_sbo @@ -127,7 +133,8 @@ _vpaes_encrypt_preheat: _vpaes_encrypt_core: mov x9, x2 ldr w8, [x2,#240] // pull rounds - adr x11, Lk_mc_forward+16 + adrp x11, Lk_mc_forward+16@PAGE + add x11, x11, Lk_mc_forward@PAGEOFF+16 // vmovdqa .Lk_ipt(%rip), %xmm2 # iptlo ld1 {v16.2d}, [x9], #16 // vmovdqu (%r9), %xmm5 # round0 key and v1.16b, v7.16b, v17.16b // vpand %xmm9, %xmm0, %xmm1 @@ -195,7 +202,7 @@ Lenc_entry: .align 4 _vpaes_encrypt: -.long 0xd503233f // paciasp + AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-16]! add x29,sp,#0 @@ -205,7 +212,7 @@ _vpaes_encrypt: st1 {v0.16b}, [x1] ldp x29,x30,[sp],#16 -.long 0xd50323bf // autiasp + AARCH64_VALIDATE_LINK_REGISTER ret @@ -214,7 +221,8 @@ _vpaes_encrypt: _vpaes_encrypt_2x: mov x9, x2 ldr w8, [x2,#240] // pull rounds - adr x11, Lk_mc_forward+16 + adrp x11, Lk_mc_forward+16@PAGE + add x11, x11, Lk_mc_forward@PAGEOFF+16 // vmovdqa .Lk_ipt(%rip), %xmm2 # iptlo ld1 {v16.2d}, [x9], #16 // vmovdqu (%r9), %xmm5 # round0 key and v1.16b, v14.16b, v17.16b // vpand %xmm9, %xmm0, %xmm1 @@ -317,9 +325,11 @@ Lenc_2x_entry: .align 4 _vpaes_decrypt_preheat: - adr x10, Lk_inv + adrp x10, Lk_inv@PAGE + add x10, x10, Lk_inv@PAGEOFF movi v17.16b, #0x0f - adr x11, Lk_dipt + adrp x11, Lk_dipt@PAGE + add x11, x11, Lk_dipt@PAGEOFF ld1 {v18.2d,v19.2d}, [x10],#32 // Lk_inv ld1 {v20.2d,v21.2d,v22.2d,v23.2d}, [x11],#64 // Lk_dipt, Lk_dsbo ld1 {v24.2d,v25.2d,v26.2d,v27.2d}, [x11],#64 // Lk_dsb9, Lk_dsbd @@ -341,10 +351,12 @@ _vpaes_decrypt_core: // vmovdqa .Lk_dipt(%rip), %xmm2 # iptlo lsl x11, x8, #4 // mov %rax, %r11; shl $4, %r11 eor x11, x11, #0x30 // xor $0x30, %r11 - adr x10, Lk_sr + adrp x10, Lk_sr@PAGE + add x10, x10, Lk_sr@PAGEOFF and x11, x11, #0x30 // and $0x30, %r11 add x11, x11, x10 - adr x10, Lk_mc_forward+48 + adrp x10, Lk_mc_forward+48@PAGE + add x10, x10, Lk_mc_forward@PAGEOFF+48 ld1 {v16.2d}, [x9],#16 // vmovdqu (%r9), %xmm4 # round0 key and v1.16b, v7.16b, v17.16b // vpand %xmm9, %xmm0, %xmm1 @@ -428,7 +440,7 @@ Ldec_entry: .align 4 _vpaes_decrypt: -.long 0xd503233f // paciasp + AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-16]! add x29,sp,#0 @@ -438,7 +450,7 @@ _vpaes_decrypt: st1 {v0.16b}, [x1] ldp x29,x30,[sp],#16 -.long 0xd50323bf // autiasp + AARCH64_VALIDATE_LINK_REGISTER ret @@ -452,10 +464,12 @@ _vpaes_decrypt_2x: // vmovdqa .Lk_dipt(%rip), %xmm2 # iptlo lsl x11, x8, #4 // mov %rax, %r11; shl $4, %r11 eor x11, x11, #0x30 // xor $0x30, %r11 - adr x10, Lk_sr + adrp x10, Lk_sr@PAGE + add x10, x10, Lk_sr@PAGEOFF and x11, x11, #0x30 // and $0x30, %r11 add x11, x11, x10 - adr x10, Lk_mc_forward+48 + adrp x10, Lk_mc_forward+48@PAGE + add x10, x10, Lk_mc_forward@PAGEOFF+48 ld1 {v16.2d}, [x9],#16 // vmovdqu (%r9), %xmm4 # round0 key and v1.16b, v14.16b, v17.16b // vpand %xmm9, %xmm0, %xmm1 @@ -584,14 +598,18 @@ Ldec_2x_entry: .align 4 _vpaes_key_preheat: - adr x10, Lk_inv + adrp x10, Lk_inv@PAGE + add x10, x10, Lk_inv@PAGEOFF movi v16.16b, #0x5b // Lk_s63 - adr x11, Lk_sb1 + adrp x11, Lk_sb1@PAGE + add x11, x11, Lk_sb1@PAGEOFF movi v17.16b, #0x0f // Lk_s0F ld1 {v18.2d,v19.2d,v20.2d,v21.2d}, [x10] // Lk_inv, Lk_ipt - adr x10, Lk_dksd + adrp x10, Lk_dksd@PAGE + add x10, x10, Lk_dksd@PAGEOFF ld1 {v22.2d,v23.2d}, [x11] // Lk_sb1 - adr x11, Lk_mc_forward + adrp x11, Lk_mc_forward@PAGE + add x11, x11, Lk_mc_forward@PAGEOFF ld1 {v24.2d,v25.2d,v26.2d,v27.2d}, [x10],#64 // Lk_dksd, Lk_dksb ld1 {v28.2d,v29.2d,v30.2d,v31.2d}, [x10],#64 // Lk_dkse, Lk_dks9 ld1 {v8.2d}, [x10] // Lk_rcon @@ -602,7 +620,7 @@ _vpaes_key_preheat: .align 4 _vpaes_schedule_core: -.long 0xd503233f // paciasp + AARCH64_SIGN_LINK_REGISTER stp x29, x30, [sp,#-16]! add x29,sp,#0 @@ -615,7 +633,8 @@ _vpaes_schedule_core: bl _vpaes_schedule_transform mov v7.16b, v0.16b // vmovdqa %xmm0, %xmm7 - adr x10, Lk_sr // lea Lk_sr(%rip),%r10 + adrp x10, Lk_sr@PAGE + add x10, x10, Lk_sr@PAGEOFF add x8, x8, x10 cbnz w3, Lschedule_am_decrypting @@ -741,12 +760,14 @@ Loop_schedule_256: .align 4 Lschedule_mangle_last: // schedule last round key from xmm0 - adr x11, Lk_deskew // lea Lk_deskew(%rip),%r11 # prepare to deskew + adrp x11, Lk_deskew@PAGE + add x11, x11, Lk_deskew@PAGEOFF cbnz w3, Lschedule_mangle_last_dec // encrypting ld1 {v1.2d}, [x8] // vmovdqa (%r8,%r10),%xmm1 - adr x11, Lk_opt // lea Lk_opt(%rip), %r11 # prepare to output transform + adrp x11, Lk_opt@PAGE + add x11, x11, Lk_opt@PAGEOFF add x2, x2, #32 // add $32, %rdx tbl v0.16b, {v0.16b}, v1.16b // vpshufb %xmm1, %xmm0, %xmm0 # output permute @@ -767,7 +788,7 @@ Lschedule_mangle_last_dec: eor v6.16b, v6.16b, v6.16b // vpxor %xmm6, %xmm6, %xmm6 eor v7.16b, v7.16b, v7.16b // vpxor %xmm7, %xmm7, %xmm7 ldp x29, x30, [sp],#16 -.long 0xd50323bf // autiasp + AARCH64_VALIDATE_LINK_REGISTER ret @@ -980,7 +1001,7 @@ Lschedule_mangle_both: .align 4 _vpaes_set_encrypt_key: -.long 0xd503233f // paciasp + AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-16]! add x29,sp,#0 stp d8,d9,[sp,#-16]! // ABI spec says so @@ -996,7 +1017,7 @@ _vpaes_set_encrypt_key: ldp d8,d9,[sp],#16 ldp x29,x30,[sp],#16 -.long 0xd50323bf // autiasp + AARCH64_VALIDATE_LINK_REGISTER ret @@ -1004,7 +1025,7 @@ _vpaes_set_encrypt_key: .align 4 _vpaes_set_decrypt_key: -.long 0xd503233f // paciasp + AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-16]! add x29,sp,#0 stp d8,d9,[sp,#-16]! // ABI spec says so @@ -1024,18 +1045,18 @@ _vpaes_set_decrypt_key: ldp d8,d9,[sp],#16 ldp x29,x30,[sp],#16 -.long 0xd50323bf // autiasp + AARCH64_VALIDATE_LINK_REGISTER ret .globl _vpaes_cbc_encrypt .align 4 _vpaes_cbc_encrypt: + AARCH64_SIGN_LINK_REGISTER cbz x2, Lcbc_abort cmp w5, #0 // check direction b.eq vpaes_cbc_decrypt -.long 0xd503233f // paciasp stp x29,x30,[sp,#-16]! add x29,sp,#0 @@ -1058,15 +1079,16 @@ Lcbc_enc_loop: st1 {v0.16b}, [x4] // write ivec ldp x29,x30,[sp],#16 -.long 0xd50323bf // autiasp Lcbc_abort: + AARCH64_VALIDATE_LINK_REGISTER ret .align 4 vpaes_cbc_decrypt: -.long 0xd503233f // paciasp + // Not adding AARCH64_SIGN_LINK_REGISTER here because vpaes_cbc_decrypt is jumped to + // only from vpaes_cbc_encrypt which has already signed the return address. stp x29,x30,[sp,#-16]! add x29,sp,#0 stp d8,d9,[sp,#-16]! // ABI spec says so @@ -1108,14 +1130,14 @@ Lcbc_dec_done: ldp d10,d11,[sp],#16 ldp d8,d9,[sp],#16 ldp x29,x30,[sp],#16 -.long 0xd50323bf // autiasp + AARCH64_VALIDATE_LINK_REGISTER ret .globl _vpaes_ecb_encrypt .align 4 _vpaes_ecb_encrypt: -.long 0xd503233f // paciasp + AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-16]! add x29,sp,#0 stp d8,d9,[sp,#-16]! // ABI spec says so @@ -1149,7 +1171,7 @@ Lecb_enc_done: ldp d10,d11,[sp],#16 ldp d8,d9,[sp],#16 ldp x29,x30,[sp],#16 -.long 0xd50323bf // autiasp + AARCH64_VALIDATE_LINK_REGISTER ret @@ -1157,7 +1179,7 @@ Lecb_enc_done: .align 4 _vpaes_ecb_decrypt: -.long 0xd503233f // paciasp + AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-16]! add x29,sp,#0 stp d8,d9,[sp,#-16]! // ABI spec says so @@ -1191,6 +1213,6 @@ Lecb_dec_done: ldp d10,d11,[sp],#16 ldp d8,d9,[sp],#16 ldp x29,x30,[sp],#16 -.long 0xd50323bf // autiasp + AARCH64_VALIDATE_LINK_REGISTER ret diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/crypto/arm64cpuid.S b/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/crypto/arm64cpuid.S index 31d33acecc0017..b3d0764741b286 100644 --- a/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/crypto/arm64cpuid.S +++ b/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/crypto/arm64cpuid.S @@ -7,6 +7,7 @@ .globl __armv7_neon_probe __armv7_neon_probe: + AARCH64_VALID_CALL_TARGET orr v15.16b, v15.16b, v15.16b ret @@ -14,6 +15,7 @@ __armv7_neon_probe: .globl __armv7_tick __armv7_tick: + AARCH64_VALID_CALL_TARGET #ifdef __APPLE__ mrs x0, CNTPCT_EL0 #else @@ -25,6 +27,7 @@ __armv7_tick: .globl __armv8_aes_probe __armv8_aes_probe: + AARCH64_VALID_CALL_TARGET aese v0.16b, v0.16b ret @@ -32,6 +35,7 @@ __armv8_aes_probe: .globl __armv8_sha1_probe __armv8_sha1_probe: + AARCH64_VALID_CALL_TARGET sha1h s0, s0 ret @@ -39,6 +43,7 @@ __armv8_sha1_probe: .globl __armv8_sha256_probe __armv8_sha256_probe: + AARCH64_VALID_CALL_TARGET sha256su0 v0.4s, v0.4s ret @@ -46,28 +51,72 @@ __armv8_sha256_probe: .globl __armv8_pmull_probe __armv8_pmull_probe: + AARCH64_VALID_CALL_TARGET pmull v0.1q, v0.1d, v0.1d ret +.globl __armv8_sm4_probe + +__armv8_sm4_probe: + AARCH64_VALID_CALL_TARGET +.long 0xcec08400 // sm4e v0.4s, v0.4s + ret + + .globl __armv8_sha512_probe __armv8_sha512_probe: + AARCH64_VALID_CALL_TARGET .long 0xcec08000 // sha512su0 v0.2d,v0.2d ret +.globl __armv8_eor3_probe + +__armv8_eor3_probe: + AARCH64_VALID_CALL_TARGET +.long 0xce010800 // eor3 v0.16b, v0.16b, v1.16b, v2.16b + ret + + +.globl __armv8_sve_probe + +__armv8_sve_probe: + AARCH64_VALID_CALL_TARGET +.long 0x04a03000 // eor z0.d,z0.d,z0.d + ret + + +.globl __armv8_sve2_probe + +__armv8_sve2_probe: + AARCH64_VALID_CALL_TARGET +.long 0x04e03400 // xar z0.d,z0.d,z0.d + ret + + .globl __armv8_cpuid_probe __armv8_cpuid_probe: + AARCH64_VALID_CALL_TARGET mrs x0, midr_el1 ret +.globl __armv8_sm3_probe + +__armv8_sm3_probe: + AARCH64_VALID_CALL_TARGET +.long 0xce63c004 // sm3partw1 v4.4s, v0.4s, v3.4s + ret + + .globl _OPENSSL_cleanse .align 5 _OPENSSL_cleanse: + AARCH64_VALID_CALL_TARGET cbz x1,Lret // len==0? cmp x1,#15 b.hi Lot // len>15 @@ -99,6 +148,7 @@ Laligned: .align 4 _CRYPTO_memcmp: + AARCH64_VALID_CALL_TARGET eor w3,w3,w3 cbz x2,Lno_data // len==0? cmp x2,#16 @@ -127,3 +177,98 @@ Lno_data: lsr w0,w0,#31 ret + +.globl __armv8_rng_probe + +__armv8_rng_probe: + AARCH64_VALID_CALL_TARGET + mrs x0, s3_3_c2_c4_0 // rndr + mrs x0, s3_3_c2_c4_1 // rndrrs + ret + +// Fill buffer with Randomly Generated Bytes +// inputs: char * in x0 - Pointer to buffer +// size_t in x1 - Number of bytes to write to buffer +// outputs: size_t in x0 - Number of bytes successfully written to buffer +.globl _OPENSSL_rndr_asm + +.align 4 +_OPENSSL_rndr_asm: + AARCH64_VALID_CALL_TARGET + mov x2,xzr + mov x3,xzr + +.align 4 +Loop_rndr: + cmp x1,#0 + b.eq .rndr_done + mov x3,xzr + mrs x3,s3_3_c2_c4_0 + b.eq .rndr_done + + cmp x1,#8 + b.lt Loop_single_byte_rndr + + str x3,[x0] + add x0,x0,#8 + add x2,x2,#8 + subs x1,x1,#8 + b.ge Loop_rndr + +.align 4 +Loop_single_byte_rndr: + strb w3,[x0] + lsr x3,x3,#8 + add x2,x2,#1 + add x0,x0,#1 + subs x1,x1,#1 + b.gt Loop_single_byte_rndr + +.align 4 +.rndr_done: + mov x0,x2 + ret + +// Fill buffer with Randomly Generated Bytes +// inputs: char * in x0 - Pointer to buffer +// size_t in x1 - Number of bytes to write to buffer +// outputs: size_t in x0 - Number of bytes successfully written to buffer +.globl _OPENSSL_rndrrs_asm + +.align 4 +_OPENSSL_rndrrs_asm: + AARCH64_VALID_CALL_TARGET + mov x2,xzr + mov x3,xzr + +.align 4 +Loop_rndrrs: + cmp x1,#0 + b.eq .rndrrs_done + mov x3,xzr + mrs x3,s3_3_c2_c4_1 + b.eq .rndrrs_done + + cmp x1,#8 + b.lt Loop_single_byte_rndrrs + + str x3,[x0] + add x0,x0,#8 + add x2,x2,#8 + subs x1,x1,#8 + b.ge Loop_rndrrs + +.align 4 +Loop_single_byte_rndrrs: + strb w3,[x0] + lsr x3,x3,#8 + add x2,x2,#1 + add x0,x0,#1 + subs x1,x1,#1 + b.gt Loop_single_byte_rndrrs + +.align 4 +.rndrrs_done: + mov x0,x2 + ret + diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/crypto/bn/armv8-mont.S b/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/crypto/bn/armv8-mont.S index adb12afdb1ae24..02f9957923c030 100644 --- a/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/crypto/bn/armv8-mont.S +++ b/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/crypto/bn/armv8-mont.S @@ -1,5 +1,5 @@ +#include "arm_arch.h" #ifndef __KERNEL__ -# include "arm_arch.h" .private_extern _OPENSSL_armv8_rsa_neonized #endif @@ -9,6 +9,7 @@ .align 5 _bn_mul_mont: + AARCH64_SIGN_LINK_REGISTER Lbn_mul_mont: tst x5,#3 b.ne Lmul_mont @@ -221,11 +222,14 @@ Lcond_copy: mov x0,#1 ldp x23,x24,[x29,#48] ldr x29,[sp],#64 + AARCH64_VALIDATE_LINK_REGISTER ret .align 5 bn_mul8x_mont_neon: + // Not adding AARCH64_SIGN_LINK_REGISTER here because bn_mul8x_mont_neon is jumped to + // only from bn_mul_mont which has already signed the return address. stp x29,x30,[sp,#-80]! mov x16,sp stp d8,d9,[sp,#16] @@ -918,6 +922,7 @@ LCopy_2: ldp d10,d11,[sp,#32] ldp d8,d9,[sp,#16] ldr x29,[sp],#80 + AARCH64_VALIDATE_LINK_REGISTER ret // bx lr @@ -927,7 +932,8 @@ __bn_sqr8x_mont: cmp x1,x2 b.ne __bn_mul4x_mont Lsqr8x_mont: -.long 0xd503233f // paciasp + // Not adding AARCH64_SIGN_LINK_REGISTER here because __bn_sqr8x_mont is jumped to + // only from bn_mul_mont which has already signed the return address. stp x29,x30,[sp,#-128]! add x29,sp,#0 stp x19,x20,[sp,#16] @@ -1678,13 +1684,15 @@ Lsqr8x_done: ldp x25,x26,[x29,#64] ldp x27,x28,[x29,#80] ldr x29,[sp],#128 -.long 0xd50323bf // autiasp + // x30 is loaded earlier + AARCH64_VALIDATE_LINK_REGISTER ret .align 5 __bn_mul4x_mont: -.long 0xd503233f // paciasp + // Not adding AARCH64_SIGN_LINK_REGISTER here because __bn_mul4x_mont is jumped to + // only from bn_mul_mont (or __bn_sqr8x_mont from bn_mul_mont) which has already signed the return address. stp x29,x30,[sp,#-128]! add x29,sp,#0 stp x19,x20,[sp,#16] @@ -2118,9 +2126,11 @@ Lmul4x_done: ldp x25,x26,[x29,#64] ldp x27,x28,[x29,#80] ldr x29,[sp],#128 -.long 0xd50323bf // autiasp + // x30 loaded earlier + AARCH64_VALIDATE_LINK_REGISTER ret +.section __TEXT,__const .byte 77,111,110,116,103,111,109,101,114,121,32,77,117,108,116,105,112,108,105,99,97,116,105,111,110,32,102,111,114,32,65,82,77,118,56,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 .align 2 .align 4 diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/crypto/buildinf.h b/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/crypto/buildinf.h index ae034bdf04e5bb..67883b363b46e4 100644 --- a/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/crypto/buildinf.h +++ b/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/crypto/buildinf.h @@ -11,7 +11,7 @@ */ #define PLATFORM "platform: darwin64-arm64-cc" -#define DATE "built on: Sun Jul 20 00:48:30 2025 UTC" +#define DATE "built on: Sun Jul 27 00:49:36 2025 UTC" /* * Generate compiler_flags as an array of individual characters. This is a diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/crypto/chacha/chacha-armv8-sve.S b/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/crypto/chacha/chacha-armv8-sve.S new file mode 100644 index 00000000000000..12890fac3f4b58 --- /dev/null +++ b/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/crypto/chacha/chacha-armv8-sve.S @@ -0,0 +1,3558 @@ +// Copyright 2022-2025 The OpenSSL Project Authors. All Rights Reserved. +// +// Licensed under the Apache License 2.0 (the "License"). You may not use +// this file except in compliance with the License. You can obtain a copy +// in the file LICENSE in the source distribution or at +// https://www.openssl.org/source/license.html +// +// +// ChaCha20 for ARMv8 via SVE +// +// $output is the last argument if it looks like a file (it has an extension) +// $flavour is the first argument if it doesn't look like a file +#include "arm_arch.h" + + + + +.private_extern _OPENSSL_armcap_P + +.text + +.section __TEXT,__const +.align 5 + +_chacha_sve_consts: +Lchacha20_consts: +.quad 0x3320646e61707865,0x6b20657479622d32 // endian-neutral +Lrot8: +.word 0x02010003,0x04040404,0x02010003,0x04040404 + + +.previous + +.globl _ChaCha20_ctr32_sve + +.align 5 +_ChaCha20_ctr32_sve: + AARCH64_VALID_CALL_TARGET +.long 0x04a0e3e5 //cntw x5, ALL, MUL #1 + cmp x2,x5,lsl #6 + b.lt Lreturn + mov x7,0 + adrp x6,_OPENSSL_armcap_P@PAGE + ldr w6,[x6,_OPENSSL_armcap_P@PAGEOFF] + tst w6,#ARMV8_SVE2 + b.eq 1f + mov x7,1 + b 2f +1: + cmp x5,4 + b.le Lreturn + adrp x6,Lrot8@PAGE + add x6,x6,Lrot8@PAGEOFF + ldp w9,w10,[x6] +.long 0x04aa4d3f //index z31.s,w9,w10 +2: + AARCH64_SIGN_LINK_REGISTER + stp d8,d9,[sp,-192]! + stp d10,d11,[sp,16] + stp d12,d13,[sp,32] + stp d14,d15,[sp,48] + stp x16,x17,[sp,64] + stp x18,x19,[sp,80] + stp x20,x21,[sp,96] + stp x22,x23,[sp,112] + stp x24,x25,[sp,128] + stp x26,x27,[sp,144] + stp x28,x29,[sp,160] + str x30,[sp,176] + + adrp x6,Lchacha20_consts@PAGE + add x6,x6,Lchacha20_consts@PAGEOFF + ldp x23,x24,[x6] + ldp x25,x26,[x3] + ldp x27,x28,[x3, 16] + ldp x29,x30,[x4] +.long 0x2599e3e0 //ptrues p0.s,ALL +#ifdef __AARCH64EB__ + ror x25,x25,#32 + ror x26,x26,#32 + ror x27,x27,#32 + ror x28,x28,#32 + ror x29,x29,#32 + ror x30,x30,#32 +#endif + cbz x7, 1f +.align 5 +100: + subs x7,x2,x5,lsl #6 + b.lt 110f + mov x2,x7 + b.eq 101f + cmp x2,64 + b.lt 101f + mixin=1 + lsr x8,x23,#32 +.long 0x05a03ae0 //dup z0.s,w23 +.long 0x05a03af9 //dup z25.s,w23 +.if mixin == 1 + mov w7,w23 +.endif +.long 0x05a03904 //dup z4.s,w8 +.long 0x05a0391a //dup z26.s,w8 + lsr x10,x24,#32 +.long 0x05a03b08 //dup z8.s,w24 +.long 0x05a03b1b //dup z27.s,w24 +.if mixin == 1 + mov w9,w24 +.endif +.long 0x05a0394c //dup z12.s,w10 +.long 0x05a0395c //dup z28.s,w10 + lsr x12,x25,#32 +.long 0x05a03b21 //dup z1.s,w25 +.long 0x05a03b3d //dup z29.s,w25 +.if mixin == 1 + mov w11,w25 +.endif +.long 0x05a03985 //dup z5.s,w12 +.long 0x05a0399e //dup z30.s,w12 + lsr x14,x26,#32 +.long 0x05a03b49 //dup z9.s,w26 +.long 0x05a03b55 //dup z21.s,w26 +.if mixin == 1 + mov w13,w26 +.endif +.long 0x05a039cd //dup z13.s,w14 +.long 0x05a039d6 //dup z22.s,w14 + lsr x16,x27,#32 +.long 0x05a03b62 //dup z2.s,w27 +.long 0x05a03b77 //dup z23.s,w27 +.if mixin == 1 + mov w15,w27 +.endif +.long 0x05a03a06 //dup z6.s,w16 +.long 0x05a03a18 //dup z24.s,w16 + lsr x18,x28,#32 +.long 0x05a03b8a //dup z10.s,w28 +.long 0x05a03b91 //dup z17.s,w28 +.if mixin == 1 + mov w17,w28 +.endif +.long 0x05a03a4e //dup z14.s,w18 +.long 0x05a03a52 //dup z18.s,w18 + lsr x22,x30,#32 +.long 0x05a03bcb //dup z11.s,w30 +.long 0x05a03bd4 //dup z20.s,w30 +.if mixin == 1 + mov w21,w30 +.endif +.long 0x05a03acf //dup z15.s,w22 +.long 0x05a03adf //dup z31.s,w22 +.if mixin == 1 + add w20,w29,#1 + mov w19,w29 +.long 0x04a14690 //index z16.s,w20,1 +.long 0x04a14683 //index z3.s,w20,1 +.else +.long 0x04a147b0 //index z16.s,w29,1 +.long 0x04a147a3 //index z3.s,w29,1 +.endif + lsr x20,x29,#32 +.long 0x05a03a87 //dup z7.s,w20 +.long 0x05a03a93 //dup z19.s,w20 + mov x6,#10 +10: +.align 5 +.long 0x04a10000 //add z0.s,z0.s,z1.s +.if mixin == 1 + add w7,w7,w11 +.endif +.long 0x04a50084 //add z4.s,z4.s,z5.s +.if mixin == 1 + add w8,w8,w12 +.endif +.long 0x04a90108 //add z8.s,z8.s,z9.s +.if mixin == 1 + add w9,w9,w13 +.endif +.long 0x04ad018c //add z12.s,z12.s,z13.s +.if mixin == 1 + add w10,w10,w14 +.endif +.if mixin == 1 + eor w19,w19,w7 +.endif +.long 0x04703403 //xar z3.s,z3.s,z0.s,16 +.if mixin == 1 + ror w19,w19,16 +.endif +.if mixin == 1 + eor w20,w20,w8 +.endif +.long 0x04703487 //xar z7.s,z7.s,z4.s,16 +.if mixin == 1 + ror w20,w20,16 +.endif +.if mixin == 1 + eor w21,w21,w9 +.endif +.long 0x0470350b //xar z11.s,z11.s,z8.s,16 +.if mixin == 1 + ror w21,w21,16 +.endif +.if mixin == 1 + eor w22,w22,w10 +.endif +.long 0x0470358f //xar z15.s,z15.s,z12.s,16 +.if mixin == 1 + ror w22,w22,16 +.endif +.long 0x04a30042 //add z2.s,z2.s,z3.s +.if mixin == 1 + add w15,w15,w19 +.endif +.long 0x04a700c6 //add z6.s,z6.s,z7.s +.if mixin == 1 + add w16,w16,w20 +.endif +.long 0x04ab014a //add z10.s,z10.s,z11.s +.if mixin == 1 + add w17,w17,w21 +.endif +.long 0x04af01ce //add z14.s,z14.s,z15.s +.if mixin == 1 + add w18,w18,w22 +.endif +.if mixin == 1 + eor w11,w11,w15 +.endif +.long 0x046c3441 //xar z1.s,z1.s,z2.s,20 +.if mixin == 1 + ror w11,w11,20 +.endif +.if mixin == 1 + eor w12,w12,w16 +.endif +.long 0x046c34c5 //xar z5.s,z5.s,z6.s,20 +.if mixin == 1 + ror w12,w12,20 +.endif +.if mixin == 1 + eor w13,w13,w17 +.endif +.long 0x046c3549 //xar z9.s,z9.s,z10.s,20 +.if mixin == 1 + ror w13,w13,20 +.endif +.if mixin == 1 + eor w14,w14,w18 +.endif +.long 0x046c35cd //xar z13.s,z13.s,z14.s,20 +.if mixin == 1 + ror w14,w14,20 +.endif +.long 0x04a10000 //add z0.s,z0.s,z1.s +.if mixin == 1 + add w7,w7,w11 +.endif +.long 0x04a50084 //add z4.s,z4.s,z5.s +.if mixin == 1 + add w8,w8,w12 +.endif +.long 0x04a90108 //add z8.s,z8.s,z9.s +.if mixin == 1 + add w9,w9,w13 +.endif +.long 0x04ad018c //add z12.s,z12.s,z13.s +.if mixin == 1 + add w10,w10,w14 +.endif +.if mixin == 1 + eor w19,w19,w7 +.endif +.long 0x04683403 //xar z3.s,z3.s,z0.s,24 +.if mixin == 1 + ror w19,w19,24 +.endif +.if mixin == 1 + eor w20,w20,w8 +.endif +.long 0x04683487 //xar z7.s,z7.s,z4.s,24 +.if mixin == 1 + ror w20,w20,24 +.endif +.if mixin == 1 + eor w21,w21,w9 +.endif +.long 0x0468350b //xar z11.s,z11.s,z8.s,24 +.if mixin == 1 + ror w21,w21,24 +.endif +.if mixin == 1 + eor w22,w22,w10 +.endif +.long 0x0468358f //xar z15.s,z15.s,z12.s,24 +.if mixin == 1 + ror w22,w22,24 +.endif +.long 0x04a30042 //add z2.s,z2.s,z3.s +.if mixin == 1 + add w15,w15,w19 +.endif +.long 0x04a700c6 //add z6.s,z6.s,z7.s +.if mixin == 1 + add w16,w16,w20 +.endif +.long 0x04ab014a //add z10.s,z10.s,z11.s +.if mixin == 1 + add w17,w17,w21 +.endif +.long 0x04af01ce //add z14.s,z14.s,z15.s +.if mixin == 1 + add w18,w18,w22 +.endif +.if mixin == 1 + eor w11,w11,w15 +.endif +.long 0x04673441 //xar z1.s,z1.s,z2.s,25 +.if mixin == 1 + ror w11,w11,25 +.endif +.if mixin == 1 + eor w12,w12,w16 +.endif +.long 0x046734c5 //xar z5.s,z5.s,z6.s,25 +.if mixin == 1 + ror w12,w12,25 +.endif +.if mixin == 1 + eor w13,w13,w17 +.endif +.long 0x04673549 //xar z9.s,z9.s,z10.s,25 +.if mixin == 1 + ror w13,w13,25 +.endif +.if mixin == 1 + eor w14,w14,w18 +.endif +.long 0x046735cd //xar z13.s,z13.s,z14.s,25 +.if mixin == 1 + ror w14,w14,25 +.endif +.long 0x04a50000 //add z0.s,z0.s,z5.s +.if mixin == 1 + add w7,w7,w12 +.endif +.long 0x04a90084 //add z4.s,z4.s,z9.s +.if mixin == 1 + add w8,w8,w13 +.endif +.long 0x04ad0108 //add z8.s,z8.s,z13.s +.if mixin == 1 + add w9,w9,w14 +.endif +.long 0x04a1018c //add z12.s,z12.s,z1.s +.if mixin == 1 + add w10,w10,w11 +.endif +.if mixin == 1 + eor w22,w22,w7 +.endif +.long 0x0470340f //xar z15.s,z15.s,z0.s,16 +.if mixin == 1 + ror w22,w22,16 +.endif +.if mixin == 1 + eor w19,w19,w8 +.endif +.long 0x04703483 //xar z3.s,z3.s,z4.s,16 +.if mixin == 1 + ror w19,w19,16 +.endif +.if mixin == 1 + eor w20,w20,w9 +.endif +.long 0x04703507 //xar z7.s,z7.s,z8.s,16 +.if mixin == 1 + ror w20,w20,16 +.endif +.if mixin == 1 + eor w21,w21,w10 +.endif +.long 0x0470358b //xar z11.s,z11.s,z12.s,16 +.if mixin == 1 + ror w21,w21,16 +.endif +.long 0x04af014a //add z10.s,z10.s,z15.s +.if mixin == 1 + add w17,w17,w22 +.endif +.long 0x04a301ce //add z14.s,z14.s,z3.s +.if mixin == 1 + add w18,w18,w19 +.endif +.long 0x04a70042 //add z2.s,z2.s,z7.s +.if mixin == 1 + add w15,w15,w20 +.endif +.long 0x04ab00c6 //add z6.s,z6.s,z11.s +.if mixin == 1 + add w16,w16,w21 +.endif +.if mixin == 1 + eor w12,w12,w17 +.endif +.long 0x046c3545 //xar z5.s,z5.s,z10.s,20 +.if mixin == 1 + ror w12,w12,20 +.endif +.if mixin == 1 + eor w13,w13,w18 +.endif +.long 0x046c35c9 //xar z9.s,z9.s,z14.s,20 +.if mixin == 1 + ror w13,w13,20 +.endif +.if mixin == 1 + eor w14,w14,w15 +.endif +.long 0x046c344d //xar z13.s,z13.s,z2.s,20 +.if mixin == 1 + ror w14,w14,20 +.endif +.if mixin == 1 + eor w11,w11,w16 +.endif +.long 0x046c34c1 //xar z1.s,z1.s,z6.s,20 +.if mixin == 1 + ror w11,w11,20 +.endif +.long 0x04a50000 //add z0.s,z0.s,z5.s +.if mixin == 1 + add w7,w7,w12 +.endif +.long 0x04a90084 //add z4.s,z4.s,z9.s +.if mixin == 1 + add w8,w8,w13 +.endif +.long 0x04ad0108 //add z8.s,z8.s,z13.s +.if mixin == 1 + add w9,w9,w14 +.endif +.long 0x04a1018c //add z12.s,z12.s,z1.s +.if mixin == 1 + add w10,w10,w11 +.endif +.if mixin == 1 + eor w22,w22,w7 +.endif +.long 0x0468340f //xar z15.s,z15.s,z0.s,24 +.if mixin == 1 + ror w22,w22,24 +.endif +.if mixin == 1 + eor w19,w19,w8 +.endif +.long 0x04683483 //xar z3.s,z3.s,z4.s,24 +.if mixin == 1 + ror w19,w19,24 +.endif +.if mixin == 1 + eor w20,w20,w9 +.endif +.long 0x04683507 //xar z7.s,z7.s,z8.s,24 +.if mixin == 1 + ror w20,w20,24 +.endif +.if mixin == 1 + eor w21,w21,w10 +.endif +.long 0x0468358b //xar z11.s,z11.s,z12.s,24 +.if mixin == 1 + ror w21,w21,24 +.endif +.long 0x04af014a //add z10.s,z10.s,z15.s +.if mixin == 1 + add w17,w17,w22 +.endif +.long 0x04a301ce //add z14.s,z14.s,z3.s +.if mixin == 1 + add w18,w18,w19 +.endif +.long 0x04a70042 //add z2.s,z2.s,z7.s +.if mixin == 1 + add w15,w15,w20 +.endif +.long 0x04ab00c6 //add z6.s,z6.s,z11.s +.if mixin == 1 + add w16,w16,w21 +.endif +.if mixin == 1 + eor w12,w12,w17 +.endif +.long 0x04673545 //xar z5.s,z5.s,z10.s,25 +.if mixin == 1 + ror w12,w12,25 +.endif +.if mixin == 1 + eor w13,w13,w18 +.endif +.long 0x046735c9 //xar z9.s,z9.s,z14.s,25 +.if mixin == 1 + ror w13,w13,25 +.endif +.if mixin == 1 + eor w14,w14,w15 +.endif +.long 0x0467344d //xar z13.s,z13.s,z2.s,25 +.if mixin == 1 + ror w14,w14,25 +.endif +.if mixin == 1 + eor w11,w11,w16 +.endif +.long 0x046734c1 //xar z1.s,z1.s,z6.s,25 +.if mixin == 1 + ror w11,w11,25 +.endif + sub x6,x6,1 + cbnz x6,10b +.if mixin == 1 + add w7,w7,w23 +.endif +.long 0x04b90000 //add z0.s,z0.s,z25.s +.if mixin == 1 + add x8,x8,x23,lsr #32 +.endif +.long 0x04ba0084 //add z4.s,z4.s,z26.s +.if mixin == 1 + add x7,x7,x8,lsl #32 // pack +.endif +.if mixin == 1 + add w9,w9,w24 +.endif +.long 0x04bb0108 //add z8.s,z8.s,z27.s +.if mixin == 1 + add x10,x10,x24,lsr #32 +.endif +.long 0x04bc018c //add z12.s,z12.s,z28.s +.if mixin == 1 + add x9,x9,x10,lsl #32 // pack +.endif +.if mixin == 1 + ldp x8,x10,[x1],#16 +.endif +.if mixin == 1 + add w11,w11,w25 +.endif +.long 0x04bd0021 //add z1.s,z1.s,z29.s +.if mixin == 1 + add x12,x12,x25,lsr #32 +.endif +.long 0x04be00a5 //add z5.s,z5.s,z30.s +.if mixin == 1 + add x11,x11,x12,lsl #32 // pack +.endif +.if mixin == 1 + add w13,w13,w26 +.endif +.long 0x04b50129 //add z9.s,z9.s,z21.s +.if mixin == 1 + add x14,x14,x26,lsr #32 +.endif +.long 0x04b601ad //add z13.s,z13.s,z22.s +.if mixin == 1 + add x13,x13,x14,lsl #32 // pack +.endif +.if mixin == 1 + ldp x12,x14,[x1],#16 +.endif +.if mixin == 1 + add w15,w15,w27 +.endif +.long 0x04b70042 //add z2.s,z2.s,z23.s +.if mixin == 1 + add x16,x16,x27,lsr #32 +.endif +.long 0x04b800c6 //add z6.s,z6.s,z24.s +.if mixin == 1 + add x15,x15,x16,lsl #32 // pack +.endif +.if mixin == 1 + add w17,w17,w28 +.endif +.long 0x04b1014a //add z10.s,z10.s,z17.s +.if mixin == 1 + add x18,x18,x28,lsr #32 +.endif +.long 0x04b201ce //add z14.s,z14.s,z18.s +.if mixin == 1 + add x17,x17,x18,lsl #32 // pack +.endif +.if mixin == 1 + ldp x16,x18,[x1],#16 +.endif +.if mixin == 1 + add w19,w19,w29 +.endif +.long 0x04b00063 //add z3.s,z3.s,z16.s +.if mixin == 1 + add x20,x20,x29,lsr #32 +.endif +.long 0x04b300e7 //add z7.s,z7.s,z19.s +.if mixin == 1 + add x19,x19,x20,lsl #32 // pack +.endif +.if mixin == 1 + add w21,w21,w30 +.endif +.long 0x04b4016b //add z11.s,z11.s,z20.s +.if mixin == 1 + add x22,x22,x30,lsr #32 +.endif +.long 0x04bf01ef //add z15.s,z15.s,z31.s +.if mixin == 1 + add x21,x21,x22,lsl #32 // pack +.endif +.if mixin == 1 + ldp x20,x22,[x1],#16 +.endif +#ifdef __AARCH64EB__ + rev x7,x7 +.long 0x05a48000 //revb z0.s,p0/m,z0.s +.long 0x05a48084 //revb z4.s,p0/m,z4.s + rev x9,x9 +.long 0x05a48108 //revb z8.s,p0/m,z8.s +.long 0x05a4818c //revb z12.s,p0/m,z12.s + rev x11,x11 +.long 0x05a48021 //revb z1.s,p0/m,z1.s +.long 0x05a480a5 //revb z5.s,p0/m,z5.s + rev x13,x13 +.long 0x05a48129 //revb z9.s,p0/m,z9.s +.long 0x05a481ad //revb z13.s,p0/m,z13.s + rev x15,x15 +.long 0x05a48042 //revb z2.s,p0/m,z2.s +.long 0x05a480c6 //revb z6.s,p0/m,z6.s + rev x17,x17 +.long 0x05a4814a //revb z10.s,p0/m,z10.s +.long 0x05a481ce //revb z14.s,p0/m,z14.s + rev x19,x19 +.long 0x05a48063 //revb z3.s,p0/m,z3.s +.long 0x05a480e7 //revb z7.s,p0/m,z7.s + rev x21,x21 +.long 0x05a4816b //revb z11.s,p0/m,z11.s +.long 0x05a481ef //revb z15.s,p0/m,z15.s +#endif +.if mixin == 1 + add x29,x29,#1 +.endif + cmp x5,4 + b.ne 200f +.if mixin == 1 + eor x7,x7,x8 +.endif +.if mixin == 1 + eor x9,x9,x10 +.endif +.if mixin == 1 + eor x11,x11,x12 +.endif +.long 0x05a46011 //zip1 z17.s,z0.s,z4.s +.long 0x05a46412 //zip2 z18.s,z0.s,z4.s +.long 0x05ac6113 //zip1 z19.s,z8.s,z12.s +.long 0x05ac6514 //zip2 z20.s,z8.s,z12.s + +.long 0x05a56035 //zip1 z21.s,z1.s,z5.s +.long 0x05a56436 //zip2 z22.s,z1.s,z5.s +.long 0x05ad6137 //zip1 z23.s,z9.s,z13.s +.long 0x05ad6538 //zip2 z24.s,z9.s,z13.s + +.long 0x05f36220 //zip1 z0.d,z17.d,z19.d +.long 0x05f36624 //zip2 z4.d,z17.d,z19.d +.long 0x05f46248 //zip1 z8.d,z18.d,z20.d +.long 0x05f4664c //zip2 z12.d,z18.d,z20.d + +.long 0x05f762a1 //zip1 z1.d,z21.d,z23.d +.long 0x05f766a5 //zip2 z5.d,z21.d,z23.d +.long 0x05f862c9 //zip1 z9.d,z22.d,z24.d +.long 0x05f866cd //zip2 z13.d,z22.d,z24.d +.if mixin == 1 + eor x13,x13,x14 +.endif +.if mixin == 1 + eor x15,x15,x16 +.endif +.if mixin == 1 + eor x17,x17,x18 +.endif +.long 0x05a66051 //zip1 z17.s,z2.s,z6.s +.long 0x05a66452 //zip2 z18.s,z2.s,z6.s +.long 0x05ae6153 //zip1 z19.s,z10.s,z14.s +.long 0x05ae6554 //zip2 z20.s,z10.s,z14.s + +.long 0x05a76075 //zip1 z21.s,z3.s,z7.s +.long 0x05a76476 //zip2 z22.s,z3.s,z7.s +.long 0x05af6177 //zip1 z23.s,z11.s,z15.s +.long 0x05af6578 //zip2 z24.s,z11.s,z15.s + +.long 0x05f36222 //zip1 z2.d,z17.d,z19.d +.long 0x05f36626 //zip2 z6.d,z17.d,z19.d +.long 0x05f4624a //zip1 z10.d,z18.d,z20.d +.long 0x05f4664e //zip2 z14.d,z18.d,z20.d + +.long 0x05f762a3 //zip1 z3.d,z21.d,z23.d +.long 0x05f766a7 //zip2 z7.d,z21.d,z23.d +.long 0x05f862cb //zip1 z11.d,z22.d,z24.d +.long 0x05f866cf //zip2 z15.d,z22.d,z24.d +.if mixin == 1 + eor x19,x19,x20 +.endif +.if mixin == 1 + eor x21,x21,x22 +.endif + ld1 {v17.4s,v18.4s,v19.4s,v20.4s},[x1],#64 + ld1 {v21.4s,v22.4s,v23.4s,v24.4s},[x1],#64 +.long 0x04b13000 //eor z0.d,z0.d,z17.d +.long 0x04b23021 //eor z1.d,z1.d,z18.d +.long 0x04b33042 //eor z2.d,z2.d,z19.d +.long 0x04b43063 //eor z3.d,z3.d,z20.d +.long 0x04b53084 //eor z4.d,z4.d,z21.d +.long 0x04b630a5 //eor z5.d,z5.d,z22.d +.long 0x04b730c6 //eor z6.d,z6.d,z23.d +.long 0x04b830e7 //eor z7.d,z7.d,z24.d + ld1 {v17.4s,v18.4s,v19.4s,v20.4s},[x1],#64 + ld1 {v21.4s,v22.4s,v23.4s,v24.4s},[x1],#64 +.if mixin == 1 + stp x7,x9,[x0],#16 +.endif +.long 0x04b13108 //eor z8.d,z8.d,z17.d +.long 0x04b23129 //eor z9.d,z9.d,z18.d +.if mixin == 1 + stp x11,x13,[x0],#16 +.endif +.long 0x04b3314a //eor z10.d,z10.d,z19.d +.long 0x04b4316b //eor z11.d,z11.d,z20.d +.if mixin == 1 + stp x15,x17,[x0],#16 +.endif +.long 0x04b5318c //eor z12.d,z12.d,z21.d +.long 0x04b631ad //eor z13.d,z13.d,z22.d +.if mixin == 1 + stp x19,x21,[x0],#16 +.endif +.long 0x04b731ce //eor z14.d,z14.d,z23.d +.long 0x04b831ef //eor z15.d,z15.d,z24.d + st1 {v0.4s,v1.4s,v2.4s,v3.4s},[x0],#64 + st1 {v4.4s,v5.4s,v6.4s,v7.4s},[x0],#64 + st1 {v8.4s,v9.4s,v10.4s,v11.4s},[x0],#64 + st1 {v12.4s,v13.4s,v14.4s,v15.4s},[x0],#64 + b 210f +200: +.long 0x05a16011 //zip1 z17.s,z0.s,z1.s +.long 0x05a16412 //zip2 z18.s,z0.s,z1.s +.long 0x05a36053 //zip1 z19.s,z2.s,z3.s +.long 0x05a36454 //zip2 z20.s,z2.s,z3.s + +.long 0x05a56095 //zip1 z21.s,z4.s,z5.s +.long 0x05a56496 //zip2 z22.s,z4.s,z5.s +.long 0x05a760d7 //zip1 z23.s,z6.s,z7.s +.long 0x05a764d8 //zip2 z24.s,z6.s,z7.s + +.long 0x05f36220 //zip1 z0.d,z17.d,z19.d +.long 0x05f36621 //zip2 z1.d,z17.d,z19.d +.long 0x05f46242 //zip1 z2.d,z18.d,z20.d +.long 0x05f46643 //zip2 z3.d,z18.d,z20.d + +.long 0x05f762a4 //zip1 z4.d,z21.d,z23.d +.long 0x05f766a5 //zip2 z5.d,z21.d,z23.d +.long 0x05f862c6 //zip1 z6.d,z22.d,z24.d +.long 0x05f866c7 //zip2 z7.d,z22.d,z24.d +.if mixin == 1 + eor x7,x7,x8 +.endif +.if mixin == 1 + eor x9,x9,x10 +.endif +.long 0x05a96111 //zip1 z17.s,z8.s,z9.s +.long 0x05a96512 //zip2 z18.s,z8.s,z9.s +.long 0x05ab6153 //zip1 z19.s,z10.s,z11.s +.long 0x05ab6554 //zip2 z20.s,z10.s,z11.s + +.long 0x05ad6195 //zip1 z21.s,z12.s,z13.s +.long 0x05ad6596 //zip2 z22.s,z12.s,z13.s +.long 0x05af61d7 //zip1 z23.s,z14.s,z15.s +.long 0x05af65d8 //zip2 z24.s,z14.s,z15.s + +.long 0x05f36228 //zip1 z8.d,z17.d,z19.d +.long 0x05f36629 //zip2 z9.d,z17.d,z19.d +.long 0x05f4624a //zip1 z10.d,z18.d,z20.d +.long 0x05f4664b //zip2 z11.d,z18.d,z20.d + +.long 0x05f762ac //zip1 z12.d,z21.d,z23.d +.long 0x05f766ad //zip2 z13.d,z21.d,z23.d +.long 0x05f862ce //zip1 z14.d,z22.d,z24.d +.long 0x05f866cf //zip2 z15.d,z22.d,z24.d +.if mixin == 1 + eor x11,x11,x12 +.endif +.if mixin == 1 + eor x13,x13,x14 +.endif +.long 0x05a46011 //zip1 z17.s,z0.s,z4.s +.long 0x05a46412 //zip2 z18.s,z0.s,z4.s +.long 0x05ac6113 //zip1 z19.s,z8.s,z12.s +.long 0x05ac6514 //zip2 z20.s,z8.s,z12.s + +.long 0x05a56035 //zip1 z21.s,z1.s,z5.s +.long 0x05a56436 //zip2 z22.s,z1.s,z5.s +.long 0x05ad6137 //zip1 z23.s,z9.s,z13.s +.long 0x05ad6538 //zip2 z24.s,z9.s,z13.s + +.long 0x05f36220 //zip1 z0.d,z17.d,z19.d +.long 0x05f36624 //zip2 z4.d,z17.d,z19.d +.long 0x05f46248 //zip1 z8.d,z18.d,z20.d +.long 0x05f4664c //zip2 z12.d,z18.d,z20.d + +.long 0x05f762a1 //zip1 z1.d,z21.d,z23.d +.long 0x05f766a5 //zip2 z5.d,z21.d,z23.d +.long 0x05f862c9 //zip1 z9.d,z22.d,z24.d +.long 0x05f866cd //zip2 z13.d,z22.d,z24.d +.if mixin == 1 + eor x15,x15,x16 +.endif +.if mixin == 1 + eor x17,x17,x18 +.endif +.long 0x05a66051 //zip1 z17.s,z2.s,z6.s +.long 0x05a66452 //zip2 z18.s,z2.s,z6.s +.long 0x05ae6153 //zip1 z19.s,z10.s,z14.s +.long 0x05ae6554 //zip2 z20.s,z10.s,z14.s + +.long 0x05a76075 //zip1 z21.s,z3.s,z7.s +.long 0x05a76476 //zip2 z22.s,z3.s,z7.s +.long 0x05af6177 //zip1 z23.s,z11.s,z15.s +.long 0x05af6578 //zip2 z24.s,z11.s,z15.s + +.long 0x05f36222 //zip1 z2.d,z17.d,z19.d +.long 0x05f36626 //zip2 z6.d,z17.d,z19.d +.long 0x05f4624a //zip1 z10.d,z18.d,z20.d +.long 0x05f4664e //zip2 z14.d,z18.d,z20.d + +.long 0x05f762a3 //zip1 z3.d,z21.d,z23.d +.long 0x05f766a7 //zip2 z7.d,z21.d,z23.d +.long 0x05f862cb //zip1 z11.d,z22.d,z24.d +.long 0x05f866cf //zip2 z15.d,z22.d,z24.d +.if mixin == 1 + eor x19,x19,x20 +.endif +.if mixin == 1 + eor x21,x21,x22 +.endif +.long 0xa540a031 //ld1w {z17.s},p0/z,[x1,#0,MUL VL] +.long 0xa541a032 //ld1w {z18.s},p0/z,[x1,#1,MUL VL] +.long 0xa542a033 //ld1w {z19.s},p0/z,[x1,#2,MUL VL] +.long 0xa543a034 //ld1w {z20.s},p0/z,[x1,#3,MUL VL] +.long 0xa544a035 //ld1w {z21.s},p0/z,[x1,#4,MUL VL] +.long 0xa545a036 //ld1w {z22.s},p0/z,[x1,#5,MUL VL] +.long 0xa546a037 //ld1w {z23.s},p0/z,[x1,#6,MUL VL] +.long 0xa547a038 //ld1w {z24.s},p0/z,[x1,#7,MUL VL] +.long 0x04215101 //addvl x1,x1,8 +.long 0x04b13000 //eor z0.d,z0.d,z17.d +.long 0x04b23084 //eor z4.d,z4.d,z18.d +.long 0x04b33108 //eor z8.d,z8.d,z19.d +.long 0x04b4318c //eor z12.d,z12.d,z20.d +.long 0x04b53021 //eor z1.d,z1.d,z21.d +.long 0x04b630a5 //eor z5.d,z5.d,z22.d +.long 0x04b73129 //eor z9.d,z9.d,z23.d +.long 0x04b831ad //eor z13.d,z13.d,z24.d +.long 0xa540a031 //ld1w {z17.s},p0/z,[x1,#0,MUL VL] +.long 0xa541a032 //ld1w {z18.s},p0/z,[x1,#1,MUL VL] +.long 0xa542a033 //ld1w {z19.s},p0/z,[x1,#2,MUL VL] +.long 0xa543a034 //ld1w {z20.s},p0/z,[x1,#3,MUL VL] +.long 0xa544a035 //ld1w {z21.s},p0/z,[x1,#4,MUL VL] +.long 0xa545a036 //ld1w {z22.s},p0/z,[x1,#5,MUL VL] +.long 0xa546a037 //ld1w {z23.s},p0/z,[x1,#6,MUL VL] +.long 0xa547a038 //ld1w {z24.s},p0/z,[x1,#7,MUL VL] +.long 0x04215101 //addvl x1,x1,8 +.if mixin == 1 + stp x7,x9,[x0],#16 +.endif +.long 0x04b13042 //eor z2.d,z2.d,z17.d +.long 0x04b230c6 //eor z6.d,z6.d,z18.d +.if mixin == 1 + stp x11,x13,[x0],#16 +.endif +.long 0x04b3314a //eor z10.d,z10.d,z19.d +.long 0x04b431ce //eor z14.d,z14.d,z20.d +.if mixin == 1 + stp x15,x17,[x0],#16 +.endif +.long 0x04b53063 //eor z3.d,z3.d,z21.d +.long 0x04b630e7 //eor z7.d,z7.d,z22.d +.if mixin == 1 + stp x19,x21,[x0],#16 +.endif +.long 0x04b7316b //eor z11.d,z11.d,z23.d +.long 0x04b831ef //eor z15.d,z15.d,z24.d +.long 0xe540e000 //st1w {z0.s},p0,[x0,#0,MUL VL] +.long 0xe541e004 //st1w {z4.s},p0,[x0,#1,MUL VL] +.long 0xe542e008 //st1w {z8.s},p0,[x0,#2,MUL VL] +.long 0xe543e00c //st1w {z12.s},p0,[x0,#3,MUL VL] +.long 0xe544e001 //st1w {z1.s},p0,[x0,#4,MUL VL] +.long 0xe545e005 //st1w {z5.s},p0,[x0,#5,MUL VL] +.long 0xe546e009 //st1w {z9.s},p0,[x0,#6,MUL VL] +.long 0xe547e00d //st1w {z13.s},p0,[x0,#7,MUL VL] +.long 0x04205100 //addvl x0,x0,8 +.long 0xe540e002 //st1w {z2.s},p0,[x0,#0,MUL VL] +.long 0xe541e006 //st1w {z6.s},p0,[x0,#1,MUL VL] +.long 0xe542e00a //st1w {z10.s},p0,[x0,#2,MUL VL] +.long 0xe543e00e //st1w {z14.s},p0,[x0,#3,MUL VL] +.long 0xe544e003 //st1w {z3.s},p0,[x0,#4,MUL VL] +.long 0xe545e007 //st1w {z7.s},p0,[x0,#5,MUL VL] +.long 0xe546e00b //st1w {z11.s},p0,[x0,#6,MUL VL] +.long 0xe547e00f //st1w {z15.s},p0,[x0,#7,MUL VL] +.long 0x04205100 //addvl x0,x0,8 +210: +.long 0x04b0e3fd //incw x29, ALL, MUL #1 + subs x2,x2,64 + b.gt 100b + b 110f +101: + mixin=0 + lsr x8,x23,#32 +.long 0x05a03ae0 //dup z0.s,w23 +.long 0x05a03af9 //dup z25.s,w23 +.if mixin == 1 + mov w7,w23 +.endif +.long 0x05a03904 //dup z4.s,w8 +.long 0x05a0391a //dup z26.s,w8 + lsr x10,x24,#32 +.long 0x05a03b08 //dup z8.s,w24 +.long 0x05a03b1b //dup z27.s,w24 +.if mixin == 1 + mov w9,w24 +.endif +.long 0x05a0394c //dup z12.s,w10 +.long 0x05a0395c //dup z28.s,w10 + lsr x12,x25,#32 +.long 0x05a03b21 //dup z1.s,w25 +.long 0x05a03b3d //dup z29.s,w25 +.if mixin == 1 + mov w11,w25 +.endif +.long 0x05a03985 //dup z5.s,w12 +.long 0x05a0399e //dup z30.s,w12 + lsr x14,x26,#32 +.long 0x05a03b49 //dup z9.s,w26 +.long 0x05a03b55 //dup z21.s,w26 +.if mixin == 1 + mov w13,w26 +.endif +.long 0x05a039cd //dup z13.s,w14 +.long 0x05a039d6 //dup z22.s,w14 + lsr x16,x27,#32 +.long 0x05a03b62 //dup z2.s,w27 +.long 0x05a03b77 //dup z23.s,w27 +.if mixin == 1 + mov w15,w27 +.endif +.long 0x05a03a06 //dup z6.s,w16 +.long 0x05a03a18 //dup z24.s,w16 + lsr x18,x28,#32 +.long 0x05a03b8a //dup z10.s,w28 +.long 0x05a03b91 //dup z17.s,w28 +.if mixin == 1 + mov w17,w28 +.endif +.long 0x05a03a4e //dup z14.s,w18 +.long 0x05a03a52 //dup z18.s,w18 + lsr x22,x30,#32 +.long 0x05a03bcb //dup z11.s,w30 +.long 0x05a03bd4 //dup z20.s,w30 +.if mixin == 1 + mov w21,w30 +.endif +.long 0x05a03acf //dup z15.s,w22 +.long 0x05a03adf //dup z31.s,w22 +.if mixin == 1 + add w20,w29,#1 + mov w19,w29 +.long 0x04a14690 //index z16.s,w20,1 +.long 0x04a14683 //index z3.s,w20,1 +.else +.long 0x04a147b0 //index z16.s,w29,1 +.long 0x04a147a3 //index z3.s,w29,1 +.endif + lsr x20,x29,#32 +.long 0x05a03a87 //dup z7.s,w20 +.long 0x05a03a93 //dup z19.s,w20 + mov x6,#10 +10: +.align 5 +.long 0x04a10000 //add z0.s,z0.s,z1.s +.if mixin == 1 + add w7,w7,w11 +.endif +.long 0x04a50084 //add z4.s,z4.s,z5.s +.if mixin == 1 + add w8,w8,w12 +.endif +.long 0x04a90108 //add z8.s,z8.s,z9.s +.if mixin == 1 + add w9,w9,w13 +.endif +.long 0x04ad018c //add z12.s,z12.s,z13.s +.if mixin == 1 + add w10,w10,w14 +.endif +.if mixin == 1 + eor w19,w19,w7 +.endif +.long 0x04703403 //xar z3.s,z3.s,z0.s,16 +.if mixin == 1 + ror w19,w19,16 +.endif +.if mixin == 1 + eor w20,w20,w8 +.endif +.long 0x04703487 //xar z7.s,z7.s,z4.s,16 +.if mixin == 1 + ror w20,w20,16 +.endif +.if mixin == 1 + eor w21,w21,w9 +.endif +.long 0x0470350b //xar z11.s,z11.s,z8.s,16 +.if mixin == 1 + ror w21,w21,16 +.endif +.if mixin == 1 + eor w22,w22,w10 +.endif +.long 0x0470358f //xar z15.s,z15.s,z12.s,16 +.if mixin == 1 + ror w22,w22,16 +.endif +.long 0x04a30042 //add z2.s,z2.s,z3.s +.if mixin == 1 + add w15,w15,w19 +.endif +.long 0x04a700c6 //add z6.s,z6.s,z7.s +.if mixin == 1 + add w16,w16,w20 +.endif +.long 0x04ab014a //add z10.s,z10.s,z11.s +.if mixin == 1 + add w17,w17,w21 +.endif +.long 0x04af01ce //add z14.s,z14.s,z15.s +.if mixin == 1 + add w18,w18,w22 +.endif +.if mixin == 1 + eor w11,w11,w15 +.endif +.long 0x046c3441 //xar z1.s,z1.s,z2.s,20 +.if mixin == 1 + ror w11,w11,20 +.endif +.if mixin == 1 + eor w12,w12,w16 +.endif +.long 0x046c34c5 //xar z5.s,z5.s,z6.s,20 +.if mixin == 1 + ror w12,w12,20 +.endif +.if mixin == 1 + eor w13,w13,w17 +.endif +.long 0x046c3549 //xar z9.s,z9.s,z10.s,20 +.if mixin == 1 + ror w13,w13,20 +.endif +.if mixin == 1 + eor w14,w14,w18 +.endif +.long 0x046c35cd //xar z13.s,z13.s,z14.s,20 +.if mixin == 1 + ror w14,w14,20 +.endif +.long 0x04a10000 //add z0.s,z0.s,z1.s +.if mixin == 1 + add w7,w7,w11 +.endif +.long 0x04a50084 //add z4.s,z4.s,z5.s +.if mixin == 1 + add w8,w8,w12 +.endif +.long 0x04a90108 //add z8.s,z8.s,z9.s +.if mixin == 1 + add w9,w9,w13 +.endif +.long 0x04ad018c //add z12.s,z12.s,z13.s +.if mixin == 1 + add w10,w10,w14 +.endif +.if mixin == 1 + eor w19,w19,w7 +.endif +.long 0x04683403 //xar z3.s,z3.s,z0.s,24 +.if mixin == 1 + ror w19,w19,24 +.endif +.if mixin == 1 + eor w20,w20,w8 +.endif +.long 0x04683487 //xar z7.s,z7.s,z4.s,24 +.if mixin == 1 + ror w20,w20,24 +.endif +.if mixin == 1 + eor w21,w21,w9 +.endif +.long 0x0468350b //xar z11.s,z11.s,z8.s,24 +.if mixin == 1 + ror w21,w21,24 +.endif +.if mixin == 1 + eor w22,w22,w10 +.endif +.long 0x0468358f //xar z15.s,z15.s,z12.s,24 +.if mixin == 1 + ror w22,w22,24 +.endif +.long 0x04a30042 //add z2.s,z2.s,z3.s +.if mixin == 1 + add w15,w15,w19 +.endif +.long 0x04a700c6 //add z6.s,z6.s,z7.s +.if mixin == 1 + add w16,w16,w20 +.endif +.long 0x04ab014a //add z10.s,z10.s,z11.s +.if mixin == 1 + add w17,w17,w21 +.endif +.long 0x04af01ce //add z14.s,z14.s,z15.s +.if mixin == 1 + add w18,w18,w22 +.endif +.if mixin == 1 + eor w11,w11,w15 +.endif +.long 0x04673441 //xar z1.s,z1.s,z2.s,25 +.if mixin == 1 + ror w11,w11,25 +.endif +.if mixin == 1 + eor w12,w12,w16 +.endif +.long 0x046734c5 //xar z5.s,z5.s,z6.s,25 +.if mixin == 1 + ror w12,w12,25 +.endif +.if mixin == 1 + eor w13,w13,w17 +.endif +.long 0x04673549 //xar z9.s,z9.s,z10.s,25 +.if mixin == 1 + ror w13,w13,25 +.endif +.if mixin == 1 + eor w14,w14,w18 +.endif +.long 0x046735cd //xar z13.s,z13.s,z14.s,25 +.if mixin == 1 + ror w14,w14,25 +.endif +.long 0x04a50000 //add z0.s,z0.s,z5.s +.if mixin == 1 + add w7,w7,w12 +.endif +.long 0x04a90084 //add z4.s,z4.s,z9.s +.if mixin == 1 + add w8,w8,w13 +.endif +.long 0x04ad0108 //add z8.s,z8.s,z13.s +.if mixin == 1 + add w9,w9,w14 +.endif +.long 0x04a1018c //add z12.s,z12.s,z1.s +.if mixin == 1 + add w10,w10,w11 +.endif +.if mixin == 1 + eor w22,w22,w7 +.endif +.long 0x0470340f //xar z15.s,z15.s,z0.s,16 +.if mixin == 1 + ror w22,w22,16 +.endif +.if mixin == 1 + eor w19,w19,w8 +.endif +.long 0x04703483 //xar z3.s,z3.s,z4.s,16 +.if mixin == 1 + ror w19,w19,16 +.endif +.if mixin == 1 + eor w20,w20,w9 +.endif +.long 0x04703507 //xar z7.s,z7.s,z8.s,16 +.if mixin == 1 + ror w20,w20,16 +.endif +.if mixin == 1 + eor w21,w21,w10 +.endif +.long 0x0470358b //xar z11.s,z11.s,z12.s,16 +.if mixin == 1 + ror w21,w21,16 +.endif +.long 0x04af014a //add z10.s,z10.s,z15.s +.if mixin == 1 + add w17,w17,w22 +.endif +.long 0x04a301ce //add z14.s,z14.s,z3.s +.if mixin == 1 + add w18,w18,w19 +.endif +.long 0x04a70042 //add z2.s,z2.s,z7.s +.if mixin == 1 + add w15,w15,w20 +.endif +.long 0x04ab00c6 //add z6.s,z6.s,z11.s +.if mixin == 1 + add w16,w16,w21 +.endif +.if mixin == 1 + eor w12,w12,w17 +.endif +.long 0x046c3545 //xar z5.s,z5.s,z10.s,20 +.if mixin == 1 + ror w12,w12,20 +.endif +.if mixin == 1 + eor w13,w13,w18 +.endif +.long 0x046c35c9 //xar z9.s,z9.s,z14.s,20 +.if mixin == 1 + ror w13,w13,20 +.endif +.if mixin == 1 + eor w14,w14,w15 +.endif +.long 0x046c344d //xar z13.s,z13.s,z2.s,20 +.if mixin == 1 + ror w14,w14,20 +.endif +.if mixin == 1 + eor w11,w11,w16 +.endif +.long 0x046c34c1 //xar z1.s,z1.s,z6.s,20 +.if mixin == 1 + ror w11,w11,20 +.endif +.long 0x04a50000 //add z0.s,z0.s,z5.s +.if mixin == 1 + add w7,w7,w12 +.endif +.long 0x04a90084 //add z4.s,z4.s,z9.s +.if mixin == 1 + add w8,w8,w13 +.endif +.long 0x04ad0108 //add z8.s,z8.s,z13.s +.if mixin == 1 + add w9,w9,w14 +.endif +.long 0x04a1018c //add z12.s,z12.s,z1.s +.if mixin == 1 + add w10,w10,w11 +.endif +.if mixin == 1 + eor w22,w22,w7 +.endif +.long 0x0468340f //xar z15.s,z15.s,z0.s,24 +.if mixin == 1 + ror w22,w22,24 +.endif +.if mixin == 1 + eor w19,w19,w8 +.endif +.long 0x04683483 //xar z3.s,z3.s,z4.s,24 +.if mixin == 1 + ror w19,w19,24 +.endif +.if mixin == 1 + eor w20,w20,w9 +.endif +.long 0x04683507 //xar z7.s,z7.s,z8.s,24 +.if mixin == 1 + ror w20,w20,24 +.endif +.if mixin == 1 + eor w21,w21,w10 +.endif +.long 0x0468358b //xar z11.s,z11.s,z12.s,24 +.if mixin == 1 + ror w21,w21,24 +.endif +.long 0x04af014a //add z10.s,z10.s,z15.s +.if mixin == 1 + add w17,w17,w22 +.endif +.long 0x04a301ce //add z14.s,z14.s,z3.s +.if mixin == 1 + add w18,w18,w19 +.endif +.long 0x04a70042 //add z2.s,z2.s,z7.s +.if mixin == 1 + add w15,w15,w20 +.endif +.long 0x04ab00c6 //add z6.s,z6.s,z11.s +.if mixin == 1 + add w16,w16,w21 +.endif +.if mixin == 1 + eor w12,w12,w17 +.endif +.long 0x04673545 //xar z5.s,z5.s,z10.s,25 +.if mixin == 1 + ror w12,w12,25 +.endif +.if mixin == 1 + eor w13,w13,w18 +.endif +.long 0x046735c9 //xar z9.s,z9.s,z14.s,25 +.if mixin == 1 + ror w13,w13,25 +.endif +.if mixin == 1 + eor w14,w14,w15 +.endif +.long 0x0467344d //xar z13.s,z13.s,z2.s,25 +.if mixin == 1 + ror w14,w14,25 +.endif +.if mixin == 1 + eor w11,w11,w16 +.endif +.long 0x046734c1 //xar z1.s,z1.s,z6.s,25 +.if mixin == 1 + ror w11,w11,25 +.endif + sub x6,x6,1 + cbnz x6,10b +.if mixin == 1 + add w7,w7,w23 +.endif +.long 0x04b90000 //add z0.s,z0.s,z25.s +.if mixin == 1 + add x8,x8,x23,lsr #32 +.endif +.long 0x04ba0084 //add z4.s,z4.s,z26.s +.if mixin == 1 + add x7,x7,x8,lsl #32 // pack +.endif +.if mixin == 1 + add w9,w9,w24 +.endif +.long 0x04bb0108 //add z8.s,z8.s,z27.s +.if mixin == 1 + add x10,x10,x24,lsr #32 +.endif +.long 0x04bc018c //add z12.s,z12.s,z28.s +.if mixin == 1 + add x9,x9,x10,lsl #32 // pack +.endif +.if mixin == 1 + ldp x8,x10,[x1],#16 +.endif +.if mixin == 1 + add w11,w11,w25 +.endif +.long 0x04bd0021 //add z1.s,z1.s,z29.s +.if mixin == 1 + add x12,x12,x25,lsr #32 +.endif +.long 0x04be00a5 //add z5.s,z5.s,z30.s +.if mixin == 1 + add x11,x11,x12,lsl #32 // pack +.endif +.if mixin == 1 + add w13,w13,w26 +.endif +.long 0x04b50129 //add z9.s,z9.s,z21.s +.if mixin == 1 + add x14,x14,x26,lsr #32 +.endif +.long 0x04b601ad //add z13.s,z13.s,z22.s +.if mixin == 1 + add x13,x13,x14,lsl #32 // pack +.endif +.if mixin == 1 + ldp x12,x14,[x1],#16 +.endif +.if mixin == 1 + add w15,w15,w27 +.endif +.long 0x04b70042 //add z2.s,z2.s,z23.s +.if mixin == 1 + add x16,x16,x27,lsr #32 +.endif +.long 0x04b800c6 //add z6.s,z6.s,z24.s +.if mixin == 1 + add x15,x15,x16,lsl #32 // pack +.endif +.if mixin == 1 + add w17,w17,w28 +.endif +.long 0x04b1014a //add z10.s,z10.s,z17.s +.if mixin == 1 + add x18,x18,x28,lsr #32 +.endif +.long 0x04b201ce //add z14.s,z14.s,z18.s +.if mixin == 1 + add x17,x17,x18,lsl #32 // pack +.endif +.if mixin == 1 + ldp x16,x18,[x1],#16 +.endif +.if mixin == 1 + add w19,w19,w29 +.endif +.long 0x04b00063 //add z3.s,z3.s,z16.s +.if mixin == 1 + add x20,x20,x29,lsr #32 +.endif +.long 0x04b300e7 //add z7.s,z7.s,z19.s +.if mixin == 1 + add x19,x19,x20,lsl #32 // pack +.endif +.if mixin == 1 + add w21,w21,w30 +.endif +.long 0x04b4016b //add z11.s,z11.s,z20.s +.if mixin == 1 + add x22,x22,x30,lsr #32 +.endif +.long 0x04bf01ef //add z15.s,z15.s,z31.s +.if mixin == 1 + add x21,x21,x22,lsl #32 // pack +.endif +.if mixin == 1 + ldp x20,x22,[x1],#16 +.endif +#ifdef __AARCH64EB__ + rev x7,x7 +.long 0x05a48000 //revb z0.s,p0/m,z0.s +.long 0x05a48084 //revb z4.s,p0/m,z4.s + rev x9,x9 +.long 0x05a48108 //revb z8.s,p0/m,z8.s +.long 0x05a4818c //revb z12.s,p0/m,z12.s + rev x11,x11 +.long 0x05a48021 //revb z1.s,p0/m,z1.s +.long 0x05a480a5 //revb z5.s,p0/m,z5.s + rev x13,x13 +.long 0x05a48129 //revb z9.s,p0/m,z9.s +.long 0x05a481ad //revb z13.s,p0/m,z13.s + rev x15,x15 +.long 0x05a48042 //revb z2.s,p0/m,z2.s +.long 0x05a480c6 //revb z6.s,p0/m,z6.s + rev x17,x17 +.long 0x05a4814a //revb z10.s,p0/m,z10.s +.long 0x05a481ce //revb z14.s,p0/m,z14.s + rev x19,x19 +.long 0x05a48063 //revb z3.s,p0/m,z3.s +.long 0x05a480e7 //revb z7.s,p0/m,z7.s + rev x21,x21 +.long 0x05a4816b //revb z11.s,p0/m,z11.s +.long 0x05a481ef //revb z15.s,p0/m,z15.s +#endif +.if mixin == 1 + add x29,x29,#1 +.endif + cmp x5,4 + b.ne 200f +.if mixin == 1 + eor x7,x7,x8 +.endif +.if mixin == 1 + eor x9,x9,x10 +.endif +.if mixin == 1 + eor x11,x11,x12 +.endif +.long 0x05a46011 //zip1 z17.s,z0.s,z4.s +.long 0x05a46412 //zip2 z18.s,z0.s,z4.s +.long 0x05ac6113 //zip1 z19.s,z8.s,z12.s +.long 0x05ac6514 //zip2 z20.s,z8.s,z12.s + +.long 0x05a56035 //zip1 z21.s,z1.s,z5.s +.long 0x05a56436 //zip2 z22.s,z1.s,z5.s +.long 0x05ad6137 //zip1 z23.s,z9.s,z13.s +.long 0x05ad6538 //zip2 z24.s,z9.s,z13.s + +.long 0x05f36220 //zip1 z0.d,z17.d,z19.d +.long 0x05f36624 //zip2 z4.d,z17.d,z19.d +.long 0x05f46248 //zip1 z8.d,z18.d,z20.d +.long 0x05f4664c //zip2 z12.d,z18.d,z20.d + +.long 0x05f762a1 //zip1 z1.d,z21.d,z23.d +.long 0x05f766a5 //zip2 z5.d,z21.d,z23.d +.long 0x05f862c9 //zip1 z9.d,z22.d,z24.d +.long 0x05f866cd //zip2 z13.d,z22.d,z24.d +.if mixin == 1 + eor x13,x13,x14 +.endif +.if mixin == 1 + eor x15,x15,x16 +.endif +.if mixin == 1 + eor x17,x17,x18 +.endif +.long 0x05a66051 //zip1 z17.s,z2.s,z6.s +.long 0x05a66452 //zip2 z18.s,z2.s,z6.s +.long 0x05ae6153 //zip1 z19.s,z10.s,z14.s +.long 0x05ae6554 //zip2 z20.s,z10.s,z14.s + +.long 0x05a76075 //zip1 z21.s,z3.s,z7.s +.long 0x05a76476 //zip2 z22.s,z3.s,z7.s +.long 0x05af6177 //zip1 z23.s,z11.s,z15.s +.long 0x05af6578 //zip2 z24.s,z11.s,z15.s + +.long 0x05f36222 //zip1 z2.d,z17.d,z19.d +.long 0x05f36626 //zip2 z6.d,z17.d,z19.d +.long 0x05f4624a //zip1 z10.d,z18.d,z20.d +.long 0x05f4664e //zip2 z14.d,z18.d,z20.d + +.long 0x05f762a3 //zip1 z3.d,z21.d,z23.d +.long 0x05f766a7 //zip2 z7.d,z21.d,z23.d +.long 0x05f862cb //zip1 z11.d,z22.d,z24.d +.long 0x05f866cf //zip2 z15.d,z22.d,z24.d +.if mixin == 1 + eor x19,x19,x20 +.endif +.if mixin == 1 + eor x21,x21,x22 +.endif + ld1 {v17.4s,v18.4s,v19.4s,v20.4s},[x1],#64 + ld1 {v21.4s,v22.4s,v23.4s,v24.4s},[x1],#64 +.long 0x04b13000 //eor z0.d,z0.d,z17.d +.long 0x04b23021 //eor z1.d,z1.d,z18.d +.long 0x04b33042 //eor z2.d,z2.d,z19.d +.long 0x04b43063 //eor z3.d,z3.d,z20.d +.long 0x04b53084 //eor z4.d,z4.d,z21.d +.long 0x04b630a5 //eor z5.d,z5.d,z22.d +.long 0x04b730c6 //eor z6.d,z6.d,z23.d +.long 0x04b830e7 //eor z7.d,z7.d,z24.d + ld1 {v17.4s,v18.4s,v19.4s,v20.4s},[x1],#64 + ld1 {v21.4s,v22.4s,v23.4s,v24.4s},[x1],#64 +.if mixin == 1 + stp x7,x9,[x0],#16 +.endif +.long 0x04b13108 //eor z8.d,z8.d,z17.d +.long 0x04b23129 //eor z9.d,z9.d,z18.d +.if mixin == 1 + stp x11,x13,[x0],#16 +.endif +.long 0x04b3314a //eor z10.d,z10.d,z19.d +.long 0x04b4316b //eor z11.d,z11.d,z20.d +.if mixin == 1 + stp x15,x17,[x0],#16 +.endif +.long 0x04b5318c //eor z12.d,z12.d,z21.d +.long 0x04b631ad //eor z13.d,z13.d,z22.d +.if mixin == 1 + stp x19,x21,[x0],#16 +.endif +.long 0x04b731ce //eor z14.d,z14.d,z23.d +.long 0x04b831ef //eor z15.d,z15.d,z24.d + st1 {v0.4s,v1.4s,v2.4s,v3.4s},[x0],#64 + st1 {v4.4s,v5.4s,v6.4s,v7.4s},[x0],#64 + st1 {v8.4s,v9.4s,v10.4s,v11.4s},[x0],#64 + st1 {v12.4s,v13.4s,v14.4s,v15.4s},[x0],#64 + b 210f +200: +.long 0x05a16011 //zip1 z17.s,z0.s,z1.s +.long 0x05a16412 //zip2 z18.s,z0.s,z1.s +.long 0x05a36053 //zip1 z19.s,z2.s,z3.s +.long 0x05a36454 //zip2 z20.s,z2.s,z3.s + +.long 0x05a56095 //zip1 z21.s,z4.s,z5.s +.long 0x05a56496 //zip2 z22.s,z4.s,z5.s +.long 0x05a760d7 //zip1 z23.s,z6.s,z7.s +.long 0x05a764d8 //zip2 z24.s,z6.s,z7.s + +.long 0x05f36220 //zip1 z0.d,z17.d,z19.d +.long 0x05f36621 //zip2 z1.d,z17.d,z19.d +.long 0x05f46242 //zip1 z2.d,z18.d,z20.d +.long 0x05f46643 //zip2 z3.d,z18.d,z20.d + +.long 0x05f762a4 //zip1 z4.d,z21.d,z23.d +.long 0x05f766a5 //zip2 z5.d,z21.d,z23.d +.long 0x05f862c6 //zip1 z6.d,z22.d,z24.d +.long 0x05f866c7 //zip2 z7.d,z22.d,z24.d +.if mixin == 1 + eor x7,x7,x8 +.endif +.if mixin == 1 + eor x9,x9,x10 +.endif +.long 0x05a96111 //zip1 z17.s,z8.s,z9.s +.long 0x05a96512 //zip2 z18.s,z8.s,z9.s +.long 0x05ab6153 //zip1 z19.s,z10.s,z11.s +.long 0x05ab6554 //zip2 z20.s,z10.s,z11.s + +.long 0x05ad6195 //zip1 z21.s,z12.s,z13.s +.long 0x05ad6596 //zip2 z22.s,z12.s,z13.s +.long 0x05af61d7 //zip1 z23.s,z14.s,z15.s +.long 0x05af65d8 //zip2 z24.s,z14.s,z15.s + +.long 0x05f36228 //zip1 z8.d,z17.d,z19.d +.long 0x05f36629 //zip2 z9.d,z17.d,z19.d +.long 0x05f4624a //zip1 z10.d,z18.d,z20.d +.long 0x05f4664b //zip2 z11.d,z18.d,z20.d + +.long 0x05f762ac //zip1 z12.d,z21.d,z23.d +.long 0x05f766ad //zip2 z13.d,z21.d,z23.d +.long 0x05f862ce //zip1 z14.d,z22.d,z24.d +.long 0x05f866cf //zip2 z15.d,z22.d,z24.d +.if mixin == 1 + eor x11,x11,x12 +.endif +.if mixin == 1 + eor x13,x13,x14 +.endif +.long 0x05a46011 //zip1 z17.s,z0.s,z4.s +.long 0x05a46412 //zip2 z18.s,z0.s,z4.s +.long 0x05ac6113 //zip1 z19.s,z8.s,z12.s +.long 0x05ac6514 //zip2 z20.s,z8.s,z12.s + +.long 0x05a56035 //zip1 z21.s,z1.s,z5.s +.long 0x05a56436 //zip2 z22.s,z1.s,z5.s +.long 0x05ad6137 //zip1 z23.s,z9.s,z13.s +.long 0x05ad6538 //zip2 z24.s,z9.s,z13.s + +.long 0x05f36220 //zip1 z0.d,z17.d,z19.d +.long 0x05f36624 //zip2 z4.d,z17.d,z19.d +.long 0x05f46248 //zip1 z8.d,z18.d,z20.d +.long 0x05f4664c //zip2 z12.d,z18.d,z20.d + +.long 0x05f762a1 //zip1 z1.d,z21.d,z23.d +.long 0x05f766a5 //zip2 z5.d,z21.d,z23.d +.long 0x05f862c9 //zip1 z9.d,z22.d,z24.d +.long 0x05f866cd //zip2 z13.d,z22.d,z24.d +.if mixin == 1 + eor x15,x15,x16 +.endif +.if mixin == 1 + eor x17,x17,x18 +.endif +.long 0x05a66051 //zip1 z17.s,z2.s,z6.s +.long 0x05a66452 //zip2 z18.s,z2.s,z6.s +.long 0x05ae6153 //zip1 z19.s,z10.s,z14.s +.long 0x05ae6554 //zip2 z20.s,z10.s,z14.s + +.long 0x05a76075 //zip1 z21.s,z3.s,z7.s +.long 0x05a76476 //zip2 z22.s,z3.s,z7.s +.long 0x05af6177 //zip1 z23.s,z11.s,z15.s +.long 0x05af6578 //zip2 z24.s,z11.s,z15.s + +.long 0x05f36222 //zip1 z2.d,z17.d,z19.d +.long 0x05f36626 //zip2 z6.d,z17.d,z19.d +.long 0x05f4624a //zip1 z10.d,z18.d,z20.d +.long 0x05f4664e //zip2 z14.d,z18.d,z20.d + +.long 0x05f762a3 //zip1 z3.d,z21.d,z23.d +.long 0x05f766a7 //zip2 z7.d,z21.d,z23.d +.long 0x05f862cb //zip1 z11.d,z22.d,z24.d +.long 0x05f866cf //zip2 z15.d,z22.d,z24.d +.if mixin == 1 + eor x19,x19,x20 +.endif +.if mixin == 1 + eor x21,x21,x22 +.endif +.long 0xa540a031 //ld1w {z17.s},p0/z,[x1,#0,MUL VL] +.long 0xa541a032 //ld1w {z18.s},p0/z,[x1,#1,MUL VL] +.long 0xa542a033 //ld1w {z19.s},p0/z,[x1,#2,MUL VL] +.long 0xa543a034 //ld1w {z20.s},p0/z,[x1,#3,MUL VL] +.long 0xa544a035 //ld1w {z21.s},p0/z,[x1,#4,MUL VL] +.long 0xa545a036 //ld1w {z22.s},p0/z,[x1,#5,MUL VL] +.long 0xa546a037 //ld1w {z23.s},p0/z,[x1,#6,MUL VL] +.long 0xa547a038 //ld1w {z24.s},p0/z,[x1,#7,MUL VL] +.long 0x04215101 //addvl x1,x1,8 +.long 0x04b13000 //eor z0.d,z0.d,z17.d +.long 0x04b23084 //eor z4.d,z4.d,z18.d +.long 0x04b33108 //eor z8.d,z8.d,z19.d +.long 0x04b4318c //eor z12.d,z12.d,z20.d +.long 0x04b53021 //eor z1.d,z1.d,z21.d +.long 0x04b630a5 //eor z5.d,z5.d,z22.d +.long 0x04b73129 //eor z9.d,z9.d,z23.d +.long 0x04b831ad //eor z13.d,z13.d,z24.d +.long 0xa540a031 //ld1w {z17.s},p0/z,[x1,#0,MUL VL] +.long 0xa541a032 //ld1w {z18.s},p0/z,[x1,#1,MUL VL] +.long 0xa542a033 //ld1w {z19.s},p0/z,[x1,#2,MUL VL] +.long 0xa543a034 //ld1w {z20.s},p0/z,[x1,#3,MUL VL] +.long 0xa544a035 //ld1w {z21.s},p0/z,[x1,#4,MUL VL] +.long 0xa545a036 //ld1w {z22.s},p0/z,[x1,#5,MUL VL] +.long 0xa546a037 //ld1w {z23.s},p0/z,[x1,#6,MUL VL] +.long 0xa547a038 //ld1w {z24.s},p0/z,[x1,#7,MUL VL] +.long 0x04215101 //addvl x1,x1,8 +.if mixin == 1 + stp x7,x9,[x0],#16 +.endif +.long 0x04b13042 //eor z2.d,z2.d,z17.d +.long 0x04b230c6 //eor z6.d,z6.d,z18.d +.if mixin == 1 + stp x11,x13,[x0],#16 +.endif +.long 0x04b3314a //eor z10.d,z10.d,z19.d +.long 0x04b431ce //eor z14.d,z14.d,z20.d +.if mixin == 1 + stp x15,x17,[x0],#16 +.endif +.long 0x04b53063 //eor z3.d,z3.d,z21.d +.long 0x04b630e7 //eor z7.d,z7.d,z22.d +.if mixin == 1 + stp x19,x21,[x0],#16 +.endif +.long 0x04b7316b //eor z11.d,z11.d,z23.d +.long 0x04b831ef //eor z15.d,z15.d,z24.d +.long 0xe540e000 //st1w {z0.s},p0,[x0,#0,MUL VL] +.long 0xe541e004 //st1w {z4.s},p0,[x0,#1,MUL VL] +.long 0xe542e008 //st1w {z8.s},p0,[x0,#2,MUL VL] +.long 0xe543e00c //st1w {z12.s},p0,[x0,#3,MUL VL] +.long 0xe544e001 //st1w {z1.s},p0,[x0,#4,MUL VL] +.long 0xe545e005 //st1w {z5.s},p0,[x0,#5,MUL VL] +.long 0xe546e009 //st1w {z9.s},p0,[x0,#6,MUL VL] +.long 0xe547e00d //st1w {z13.s},p0,[x0,#7,MUL VL] +.long 0x04205100 //addvl x0,x0,8 +.long 0xe540e002 //st1w {z2.s},p0,[x0,#0,MUL VL] +.long 0xe541e006 //st1w {z6.s},p0,[x0,#1,MUL VL] +.long 0xe542e00a //st1w {z10.s},p0,[x0,#2,MUL VL] +.long 0xe543e00e //st1w {z14.s},p0,[x0,#3,MUL VL] +.long 0xe544e003 //st1w {z3.s},p0,[x0,#4,MUL VL] +.long 0xe545e007 //st1w {z7.s},p0,[x0,#5,MUL VL] +.long 0xe546e00b //st1w {z11.s},p0,[x0,#6,MUL VL] +.long 0xe547e00f //st1w {z15.s},p0,[x0,#7,MUL VL] +.long 0x04205100 //addvl x0,x0,8 +210: +.long 0x04b0e3fd //incw x29, ALL, MUL #1 +110: + b 2f +1: +.align 5 +100: + subs x7,x2,x5,lsl #6 + b.lt 110f + mov x2,x7 + b.eq 101f + cmp x2,64 + b.lt 101f + mixin=1 + lsr x8,x23,#32 +.long 0x05a03ae0 //dup z0.s,w23 +.long 0x05a03af9 //dup z25.s,w23 +.if mixin == 1 + mov w7,w23 +.endif +.long 0x05a03904 //dup z4.s,w8 +.long 0x05a0391a //dup z26.s,w8 + lsr x10,x24,#32 +.long 0x05a03b08 //dup z8.s,w24 +.long 0x05a03b1b //dup z27.s,w24 +.if mixin == 1 + mov w9,w24 +.endif +.long 0x05a0394c //dup z12.s,w10 +.long 0x05a0395c //dup z28.s,w10 + lsr x12,x25,#32 +.long 0x05a03b21 //dup z1.s,w25 +.long 0x05a03b3d //dup z29.s,w25 +.if mixin == 1 + mov w11,w25 +.endif +.long 0x05a03985 //dup z5.s,w12 +.long 0x05a0399e //dup z30.s,w12 + lsr x14,x26,#32 +.long 0x05a03b49 //dup z9.s,w26 +.long 0x05a03b55 //dup z21.s,w26 +.if mixin == 1 + mov w13,w26 +.endif +.long 0x05a039cd //dup z13.s,w14 +.long 0x05a039d6 //dup z22.s,w14 + lsr x16,x27,#32 +.long 0x05a03b62 //dup z2.s,w27 +.long 0x05a03b77 //dup z23.s,w27 +.if mixin == 1 + mov w15,w27 +.endif +.long 0x05a03a06 //dup z6.s,w16 +.long 0x05a03a18 //dup z24.s,w16 + lsr x18,x28,#32 +.long 0x05a03b8a //dup z10.s,w28 +.if mixin == 1 + mov w17,w28 +.endif +.long 0x05a03a4e //dup z14.s,w18 + lsr x22,x30,#32 +.long 0x05a03bcb //dup z11.s,w30 +.if mixin == 1 + mov w21,w30 +.endif +.long 0x05a03acf //dup z15.s,w22 +.if mixin == 1 + add w20,w29,#1 + mov w19,w29 +.long 0x04a14690 //index z16.s,w20,1 +.long 0x04a14683 //index z3.s,w20,1 +.else +.long 0x04a147b0 //index z16.s,w29,1 +.long 0x04a147a3 //index z3.s,w29,1 +.endif + lsr x20,x29,#32 +.long 0x05a03a87 //dup z7.s,w20 + mov x6,#10 +10: +.align 5 +.long 0x04a10000 //add z0.s,z0.s,z1.s +.if mixin == 1 + add w7,w7,w11 +.endif +.long 0x04a50084 //add z4.s,z4.s,z5.s +.if mixin == 1 + add w8,w8,w12 +.endif +.long 0x04a90108 //add z8.s,z8.s,z9.s +.if mixin == 1 + add w9,w9,w13 +.endif +.long 0x04ad018c //add z12.s,z12.s,z13.s +.if mixin == 1 + add w10,w10,w14 +.endif +.long 0x04a03063 //eor z3.d,z3.d,z0.d +.if mixin == 1 + eor w19,w19,w7 +.endif +.long 0x04a430e7 //eor z7.d,z7.d,z4.d +.if mixin == 1 + eor w20,w20,w8 +.endif +.long 0x04a8316b //eor z11.d,z11.d,z8.d +.if mixin == 1 + eor w21,w21,w9 +.endif +.long 0x04ac31ef //eor z15.d,z15.d,z12.d +.if mixin == 1 + eor w22,w22,w10 +.endif +.long 0x05a58063 //revh z3.s,p0/m,z3.s +.if mixin == 1 + ror w19,w19,#16 +.endif +.long 0x05a580e7 //revh z7.s,p0/m,z7.s +.if mixin == 1 + ror w20,w20,#16 +.endif +.long 0x05a5816b //revh z11.s,p0/m,z11.s +.if mixin == 1 + ror w21,w21,#16 +.endif +.long 0x05a581ef //revh z15.s,p0/m,z15.s +.if mixin == 1 + ror w22,w22,#16 +.endif +.long 0x04a30042 //add z2.s,z2.s,z3.s +.if mixin == 1 + add w15,w15,w19 +.endif +.long 0x04a700c6 //add z6.s,z6.s,z7.s +.if mixin == 1 + add w16,w16,w20 +.endif +.long 0x04ab014a //add z10.s,z10.s,z11.s +.if mixin == 1 + add w17,w17,w21 +.endif +.long 0x04af01ce //add z14.s,z14.s,z15.s +.if mixin == 1 + add w18,w18,w22 +.endif +.long 0x04a23021 //eor z1.d,z1.d,z2.d +.if mixin == 1 + eor w11,w11,w15 +.endif +.long 0x04a630a5 //eor z5.d,z5.d,z6.d +.if mixin == 1 + eor w12,w12,w16 +.endif +.long 0x04aa3129 //eor z9.d,z9.d,z10.d +.if mixin == 1 + eor w13,w13,w17 +.endif +.long 0x04ae31ad //eor z13.d,z13.d,z14.d +.if mixin == 1 + eor w14,w14,w18 +.endif +.long 0x046c9c31 //lsl z17.s,z1.s,12 +.long 0x046c9cb2 //lsl z18.s,z5.s,12 +.long 0x046c9d33 //lsl z19.s,z9.s,12 +.long 0x046c9db4 //lsl z20.s,z13.s,12 +.long 0x046c9421 //lsr z1.s,z1.s,20 +.if mixin == 1 + ror w11,w11,20 +.endif +.long 0x046c94a5 //lsr z5.s,z5.s,20 +.if mixin == 1 + ror w12,w12,20 +.endif +.long 0x046c9529 //lsr z9.s,z9.s,20 +.if mixin == 1 + ror w13,w13,20 +.endif +.long 0x046c95ad //lsr z13.s,z13.s,20 +.if mixin == 1 + ror w14,w14,20 +.endif +.long 0x04713021 //orr z1.d,z1.d,z17.d +.long 0x047230a5 //orr z5.d,z5.d,z18.d +.long 0x04733129 //orr z9.d,z9.d,z19.d +.long 0x047431ad //orr z13.d,z13.d,z20.d +.long 0x04a10000 //add z0.s,z0.s,z1.s +.if mixin == 1 + add w7,w7,w11 +.endif +.long 0x04a50084 //add z4.s,z4.s,z5.s +.if mixin == 1 + add w8,w8,w12 +.endif +.long 0x04a90108 //add z8.s,z8.s,z9.s +.if mixin == 1 + add w9,w9,w13 +.endif +.long 0x04ad018c //add z12.s,z12.s,z13.s +.if mixin == 1 + add w10,w10,w14 +.endif +.long 0x04a03063 //eor z3.d,z3.d,z0.d +.if mixin == 1 + eor w19,w19,w7 +.endif +.long 0x04a430e7 //eor z7.d,z7.d,z4.d +.if mixin == 1 + eor w20,w20,w8 +.endif +.long 0x04a8316b //eor z11.d,z11.d,z8.d +.if mixin == 1 + eor w21,w21,w9 +.endif +.long 0x04ac31ef //eor z15.d,z15.d,z12.d +.if mixin == 1 + eor w22,w22,w10 +.endif +.long 0x053f3063 //tbl z3.b,{z3.b},z31.b +.if mixin == 1 + ror w19,w19,#24 +.endif +.long 0x053f30e7 //tbl z7.b,{z7.b},z31.b +.if mixin == 1 + ror w20,w20,#24 +.endif +.long 0x053f316b //tbl z11.b,{z11.b},z31.b +.if mixin == 1 + ror w21,w21,#24 +.endif +.long 0x053f31ef //tbl z15.b,{z15.b},z31.b +.if mixin == 1 + ror w22,w22,#24 +.endif +.long 0x04a30042 //add z2.s,z2.s,z3.s +.if mixin == 1 + add w15,w15,w19 +.endif +.long 0x04a700c6 //add z6.s,z6.s,z7.s +.if mixin == 1 + add w16,w16,w20 +.endif +.long 0x04ab014a //add z10.s,z10.s,z11.s +.if mixin == 1 + add w17,w17,w21 +.endif +.long 0x04af01ce //add z14.s,z14.s,z15.s +.if mixin == 1 + add w18,w18,w22 +.endif +.long 0x04a23021 //eor z1.d,z1.d,z2.d +.if mixin == 1 + eor w11,w11,w15 +.endif +.long 0x04a630a5 //eor z5.d,z5.d,z6.d +.if mixin == 1 + eor w12,w12,w16 +.endif +.long 0x04aa3129 //eor z9.d,z9.d,z10.d +.if mixin == 1 + eor w13,w13,w17 +.endif +.long 0x04ae31ad //eor z13.d,z13.d,z14.d +.if mixin == 1 + eor w14,w14,w18 +.endif +.long 0x04679c31 //lsl z17.s,z1.s,7 +.long 0x04679cb2 //lsl z18.s,z5.s,7 +.long 0x04679d33 //lsl z19.s,z9.s,7 +.long 0x04679db4 //lsl z20.s,z13.s,7 +.long 0x04679421 //lsr z1.s,z1.s,25 +.if mixin == 1 + ror w11,w11,25 +.endif +.long 0x046794a5 //lsr z5.s,z5.s,25 +.if mixin == 1 + ror w12,w12,25 +.endif +.long 0x04679529 //lsr z9.s,z9.s,25 +.if mixin == 1 + ror w13,w13,25 +.endif +.long 0x046795ad //lsr z13.s,z13.s,25 +.if mixin == 1 + ror w14,w14,25 +.endif +.long 0x04713021 //orr z1.d,z1.d,z17.d +.long 0x047230a5 //orr z5.d,z5.d,z18.d +.long 0x04733129 //orr z9.d,z9.d,z19.d +.long 0x047431ad //orr z13.d,z13.d,z20.d +.long 0x04a50000 //add z0.s,z0.s,z5.s +.if mixin == 1 + add w7,w7,w12 +.endif +.long 0x04a90084 //add z4.s,z4.s,z9.s +.if mixin == 1 + add w8,w8,w13 +.endif +.long 0x04ad0108 //add z8.s,z8.s,z13.s +.if mixin == 1 + add w9,w9,w14 +.endif +.long 0x04a1018c //add z12.s,z12.s,z1.s +.if mixin == 1 + add w10,w10,w11 +.endif +.long 0x04a031ef //eor z15.d,z15.d,z0.d +.if mixin == 1 + eor w22,w22,w7 +.endif +.long 0x04a43063 //eor z3.d,z3.d,z4.d +.if mixin == 1 + eor w19,w19,w8 +.endif +.long 0x04a830e7 //eor z7.d,z7.d,z8.d +.if mixin == 1 + eor w20,w20,w9 +.endif +.long 0x04ac316b //eor z11.d,z11.d,z12.d +.if mixin == 1 + eor w21,w21,w10 +.endif +.long 0x05a581ef //revh z15.s,p0/m,z15.s +.if mixin == 1 + ror w22,w22,#16 +.endif +.long 0x05a58063 //revh z3.s,p0/m,z3.s +.if mixin == 1 + ror w19,w19,#16 +.endif +.long 0x05a580e7 //revh z7.s,p0/m,z7.s +.if mixin == 1 + ror w20,w20,#16 +.endif +.long 0x05a5816b //revh z11.s,p0/m,z11.s +.if mixin == 1 + ror w21,w21,#16 +.endif +.long 0x04af014a //add z10.s,z10.s,z15.s +.if mixin == 1 + add w17,w17,w22 +.endif +.long 0x04a301ce //add z14.s,z14.s,z3.s +.if mixin == 1 + add w18,w18,w19 +.endif +.long 0x04a70042 //add z2.s,z2.s,z7.s +.if mixin == 1 + add w15,w15,w20 +.endif +.long 0x04ab00c6 //add z6.s,z6.s,z11.s +.if mixin == 1 + add w16,w16,w21 +.endif +.long 0x04aa30a5 //eor z5.d,z5.d,z10.d +.if mixin == 1 + eor w12,w12,w17 +.endif +.long 0x04ae3129 //eor z9.d,z9.d,z14.d +.if mixin == 1 + eor w13,w13,w18 +.endif +.long 0x04a231ad //eor z13.d,z13.d,z2.d +.if mixin == 1 + eor w14,w14,w15 +.endif +.long 0x04a63021 //eor z1.d,z1.d,z6.d +.if mixin == 1 + eor w11,w11,w16 +.endif +.long 0x046c9cb1 //lsl z17.s,z5.s,12 +.long 0x046c9d32 //lsl z18.s,z9.s,12 +.long 0x046c9db3 //lsl z19.s,z13.s,12 +.long 0x046c9c34 //lsl z20.s,z1.s,12 +.long 0x046c94a5 //lsr z5.s,z5.s,20 +.if mixin == 1 + ror w12,w12,20 +.endif +.long 0x046c9529 //lsr z9.s,z9.s,20 +.if mixin == 1 + ror w13,w13,20 +.endif +.long 0x046c95ad //lsr z13.s,z13.s,20 +.if mixin == 1 + ror w14,w14,20 +.endif +.long 0x046c9421 //lsr z1.s,z1.s,20 +.if mixin == 1 + ror w11,w11,20 +.endif +.long 0x047130a5 //orr z5.d,z5.d,z17.d +.long 0x04723129 //orr z9.d,z9.d,z18.d +.long 0x047331ad //orr z13.d,z13.d,z19.d +.long 0x04743021 //orr z1.d,z1.d,z20.d +.long 0x04a50000 //add z0.s,z0.s,z5.s +.if mixin == 1 + add w7,w7,w12 +.endif +.long 0x04a90084 //add z4.s,z4.s,z9.s +.if mixin == 1 + add w8,w8,w13 +.endif +.long 0x04ad0108 //add z8.s,z8.s,z13.s +.if mixin == 1 + add w9,w9,w14 +.endif +.long 0x04a1018c //add z12.s,z12.s,z1.s +.if mixin == 1 + add w10,w10,w11 +.endif +.long 0x04a031ef //eor z15.d,z15.d,z0.d +.if mixin == 1 + eor w22,w22,w7 +.endif +.long 0x04a43063 //eor z3.d,z3.d,z4.d +.if mixin == 1 + eor w19,w19,w8 +.endif +.long 0x04a830e7 //eor z7.d,z7.d,z8.d +.if mixin == 1 + eor w20,w20,w9 +.endif +.long 0x04ac316b //eor z11.d,z11.d,z12.d +.if mixin == 1 + eor w21,w21,w10 +.endif +.long 0x053f31ef //tbl z15.b,{z15.b},z31.b +.if mixin == 1 + ror w22,w22,#24 +.endif +.long 0x053f3063 //tbl z3.b,{z3.b},z31.b +.if mixin == 1 + ror w19,w19,#24 +.endif +.long 0x053f30e7 //tbl z7.b,{z7.b},z31.b +.if mixin == 1 + ror w20,w20,#24 +.endif +.long 0x053f316b //tbl z11.b,{z11.b},z31.b +.if mixin == 1 + ror w21,w21,#24 +.endif +.long 0x04af014a //add z10.s,z10.s,z15.s +.if mixin == 1 + add w17,w17,w22 +.endif +.long 0x04a301ce //add z14.s,z14.s,z3.s +.if mixin == 1 + add w18,w18,w19 +.endif +.long 0x04a70042 //add z2.s,z2.s,z7.s +.if mixin == 1 + add w15,w15,w20 +.endif +.long 0x04ab00c6 //add z6.s,z6.s,z11.s +.if mixin == 1 + add w16,w16,w21 +.endif +.long 0x04aa30a5 //eor z5.d,z5.d,z10.d +.if mixin == 1 + eor w12,w12,w17 +.endif +.long 0x04ae3129 //eor z9.d,z9.d,z14.d +.if mixin == 1 + eor w13,w13,w18 +.endif +.long 0x04a231ad //eor z13.d,z13.d,z2.d +.if mixin == 1 + eor w14,w14,w15 +.endif +.long 0x04a63021 //eor z1.d,z1.d,z6.d +.if mixin == 1 + eor w11,w11,w16 +.endif +.long 0x04679cb1 //lsl z17.s,z5.s,7 +.long 0x04679d32 //lsl z18.s,z9.s,7 +.long 0x04679db3 //lsl z19.s,z13.s,7 +.long 0x04679c34 //lsl z20.s,z1.s,7 +.long 0x046794a5 //lsr z5.s,z5.s,25 +.if mixin == 1 + ror w12,w12,25 +.endif +.long 0x04679529 //lsr z9.s,z9.s,25 +.if mixin == 1 + ror w13,w13,25 +.endif +.long 0x046795ad //lsr z13.s,z13.s,25 +.if mixin == 1 + ror w14,w14,25 +.endif +.long 0x04679421 //lsr z1.s,z1.s,25 +.if mixin == 1 + ror w11,w11,25 +.endif +.long 0x047130a5 //orr z5.d,z5.d,z17.d +.long 0x04723129 //orr z9.d,z9.d,z18.d +.long 0x047331ad //orr z13.d,z13.d,z19.d +.long 0x04743021 //orr z1.d,z1.d,z20.d + sub x6,x6,1 + cbnz x6,10b + lsr x6,x28,#32 +.long 0x05a03b91 //dup z17.s,w28 +.long 0x05a038d2 //dup z18.s,w6 + lsr x6,x29,#32 +.long 0x05a038d3 //dup z19.s,w6 + lsr x6,x30,#32 +.if mixin == 1 + add w7,w7,w23 +.endif +.long 0x04b90000 //add z0.s,z0.s,z25.s +.if mixin == 1 + add x8,x8,x23,lsr #32 +.endif +.long 0x04ba0084 //add z4.s,z4.s,z26.s +.if mixin == 1 + add x7,x7,x8,lsl #32 // pack +.endif +.if mixin == 1 + add w9,w9,w24 +.endif +.long 0x04bb0108 //add z8.s,z8.s,z27.s +.if mixin == 1 + add x10,x10,x24,lsr #32 +.endif +.long 0x04bc018c //add z12.s,z12.s,z28.s +.if mixin == 1 + add x9,x9,x10,lsl #32 // pack +.endif +.if mixin == 1 + ldp x8,x10,[x1],#16 +.endif +.if mixin == 1 + add w11,w11,w25 +.endif +.long 0x04bd0021 //add z1.s,z1.s,z29.s +.if mixin == 1 + add x12,x12,x25,lsr #32 +.endif +.long 0x04be00a5 //add z5.s,z5.s,z30.s +.if mixin == 1 + add x11,x11,x12,lsl #32 // pack +.endif +.if mixin == 1 + add w13,w13,w26 +.endif +.long 0x04b50129 //add z9.s,z9.s,z21.s +.if mixin == 1 + add x14,x14,x26,lsr #32 +.endif +.long 0x04b601ad //add z13.s,z13.s,z22.s +.if mixin == 1 + add x13,x13,x14,lsl #32 // pack +.endif +.if mixin == 1 + ldp x12,x14,[x1],#16 +.endif +.if mixin == 1 + add w15,w15,w27 +.endif +.long 0x04b70042 //add z2.s,z2.s,z23.s +.if mixin == 1 + add x16,x16,x27,lsr #32 +.endif +.long 0x04b800c6 //add z6.s,z6.s,z24.s +.if mixin == 1 + add x15,x15,x16,lsl #32 // pack +.endif +.if mixin == 1 + add w17,w17,w28 +.endif +.long 0x04b1014a //add z10.s,z10.s,z17.s +.if mixin == 1 + add x18,x18,x28,lsr #32 +.endif +.long 0x04b201ce //add z14.s,z14.s,z18.s +.if mixin == 1 + add x17,x17,x18,lsl #32 // pack +.endif +.if mixin == 1 + ldp x16,x18,[x1],#16 +.endif +.long 0x05a03bd4 //dup z20.s,w30 +.long 0x05a038d9 //dup z25.s,w6 // bak[15] not available for SVE +.if mixin == 1 + add w19,w19,w29 +.endif +.long 0x04b00063 //add z3.s,z3.s,z16.s +.if mixin == 1 + add x20,x20,x29,lsr #32 +.endif +.long 0x04b300e7 //add z7.s,z7.s,z19.s +.if mixin == 1 + add x19,x19,x20,lsl #32 // pack +.endif +.if mixin == 1 + add w21,w21,w30 +.endif +.long 0x04b4016b //add z11.s,z11.s,z20.s +.if mixin == 1 + add x22,x22,x30,lsr #32 +.endif +.long 0x04b901ef //add z15.s,z15.s,z25.s +.if mixin == 1 + add x21,x21,x22,lsl #32 // pack +.endif +.if mixin == 1 + ldp x20,x22,[x1],#16 +.endif +#ifdef __AARCH64EB__ + rev x7,x7 +.long 0x05a48000 //revb z0.s,p0/m,z0.s +.long 0x05a48084 //revb z4.s,p0/m,z4.s + rev x9,x9 +.long 0x05a48108 //revb z8.s,p0/m,z8.s +.long 0x05a4818c //revb z12.s,p0/m,z12.s + rev x11,x11 +.long 0x05a48021 //revb z1.s,p0/m,z1.s +.long 0x05a480a5 //revb z5.s,p0/m,z5.s + rev x13,x13 +.long 0x05a48129 //revb z9.s,p0/m,z9.s +.long 0x05a481ad //revb z13.s,p0/m,z13.s + rev x15,x15 +.long 0x05a48042 //revb z2.s,p0/m,z2.s +.long 0x05a480c6 //revb z6.s,p0/m,z6.s + rev x17,x17 +.long 0x05a4814a //revb z10.s,p0/m,z10.s +.long 0x05a481ce //revb z14.s,p0/m,z14.s + rev x19,x19 +.long 0x05a48063 //revb z3.s,p0/m,z3.s +.long 0x05a480e7 //revb z7.s,p0/m,z7.s + rev x21,x21 +.long 0x05a4816b //revb z11.s,p0/m,z11.s +.long 0x05a481ef //revb z15.s,p0/m,z15.s +#endif +.if mixin == 1 + add x29,x29,#1 +.endif + cmp x5,4 + b.ne 200f +.if mixin == 1 + eor x7,x7,x8 +.endif +.if mixin == 1 + eor x9,x9,x10 +.endif +.if mixin == 1 + eor x11,x11,x12 +.endif +.long 0x05a46011 //zip1 z17.s,z0.s,z4.s +.long 0x05a46412 //zip2 z18.s,z0.s,z4.s +.long 0x05ac6113 //zip1 z19.s,z8.s,z12.s +.long 0x05ac6514 //zip2 z20.s,z8.s,z12.s + +.long 0x05a56035 //zip1 z21.s,z1.s,z5.s +.long 0x05a56436 //zip2 z22.s,z1.s,z5.s +.long 0x05ad6137 //zip1 z23.s,z9.s,z13.s +.long 0x05ad6538 //zip2 z24.s,z9.s,z13.s + +.long 0x05f36220 //zip1 z0.d,z17.d,z19.d +.long 0x05f36624 //zip2 z4.d,z17.d,z19.d +.long 0x05f46248 //zip1 z8.d,z18.d,z20.d +.long 0x05f4664c //zip2 z12.d,z18.d,z20.d + +.long 0x05f762a1 //zip1 z1.d,z21.d,z23.d +.long 0x05f766a5 //zip2 z5.d,z21.d,z23.d +.long 0x05f862c9 //zip1 z9.d,z22.d,z24.d +.long 0x05f866cd //zip2 z13.d,z22.d,z24.d +.if mixin == 1 + eor x13,x13,x14 +.endif +.if mixin == 1 + eor x15,x15,x16 +.endif +.if mixin == 1 + eor x17,x17,x18 +.endif +.long 0x05a66051 //zip1 z17.s,z2.s,z6.s +.long 0x05a66452 //zip2 z18.s,z2.s,z6.s +.long 0x05ae6153 //zip1 z19.s,z10.s,z14.s +.long 0x05ae6554 //zip2 z20.s,z10.s,z14.s + +.long 0x05a76075 //zip1 z21.s,z3.s,z7.s +.long 0x05a76476 //zip2 z22.s,z3.s,z7.s +.long 0x05af6177 //zip1 z23.s,z11.s,z15.s +.long 0x05af6578 //zip2 z24.s,z11.s,z15.s + +.long 0x05f36222 //zip1 z2.d,z17.d,z19.d +.long 0x05f36626 //zip2 z6.d,z17.d,z19.d +.long 0x05f4624a //zip1 z10.d,z18.d,z20.d +.long 0x05f4664e //zip2 z14.d,z18.d,z20.d + +.long 0x05f762a3 //zip1 z3.d,z21.d,z23.d +.long 0x05f766a7 //zip2 z7.d,z21.d,z23.d +.long 0x05f862cb //zip1 z11.d,z22.d,z24.d +.long 0x05f866cf //zip2 z15.d,z22.d,z24.d +.if mixin == 1 + eor x19,x19,x20 +.endif +.if mixin == 1 + eor x21,x21,x22 +.endif + ld1 {v17.4s,v18.4s,v19.4s,v20.4s},[x1],#64 + ld1 {v21.4s,v22.4s,v23.4s,v24.4s},[x1],#64 +.long 0x04b13000 //eor z0.d,z0.d,z17.d +.long 0x04b23021 //eor z1.d,z1.d,z18.d +.long 0x04b33042 //eor z2.d,z2.d,z19.d +.long 0x04b43063 //eor z3.d,z3.d,z20.d +.long 0x04b53084 //eor z4.d,z4.d,z21.d +.long 0x04b630a5 //eor z5.d,z5.d,z22.d +.long 0x04b730c6 //eor z6.d,z6.d,z23.d +.long 0x04b830e7 //eor z7.d,z7.d,z24.d + ld1 {v17.4s,v18.4s,v19.4s,v20.4s},[x1],#64 + ld1 {v21.4s,v22.4s,v23.4s,v24.4s},[x1],#64 +.if mixin == 1 + stp x7,x9,[x0],#16 +.endif +.long 0x04b13108 //eor z8.d,z8.d,z17.d +.long 0x04b23129 //eor z9.d,z9.d,z18.d +.if mixin == 1 + stp x11,x13,[x0],#16 +.endif +.long 0x04b3314a //eor z10.d,z10.d,z19.d +.long 0x04b4316b //eor z11.d,z11.d,z20.d +.if mixin == 1 + stp x15,x17,[x0],#16 +.endif +.long 0x04b5318c //eor z12.d,z12.d,z21.d +.long 0x04b631ad //eor z13.d,z13.d,z22.d +.if mixin == 1 + stp x19,x21,[x0],#16 +.endif +.long 0x04b731ce //eor z14.d,z14.d,z23.d +.long 0x04b831ef //eor z15.d,z15.d,z24.d + st1 {v0.4s,v1.4s,v2.4s,v3.4s},[x0],#64 + st1 {v4.4s,v5.4s,v6.4s,v7.4s},[x0],#64 + st1 {v8.4s,v9.4s,v10.4s,v11.4s},[x0],#64 + st1 {v12.4s,v13.4s,v14.4s,v15.4s},[x0],#64 + b 210f +200: +.long 0x05a16011 //zip1 z17.s,z0.s,z1.s +.long 0x05a16412 //zip2 z18.s,z0.s,z1.s +.long 0x05a36053 //zip1 z19.s,z2.s,z3.s +.long 0x05a36454 //zip2 z20.s,z2.s,z3.s + +.long 0x05a56095 //zip1 z21.s,z4.s,z5.s +.long 0x05a56496 //zip2 z22.s,z4.s,z5.s +.long 0x05a760d7 //zip1 z23.s,z6.s,z7.s +.long 0x05a764d8 //zip2 z24.s,z6.s,z7.s + +.long 0x05f36220 //zip1 z0.d,z17.d,z19.d +.long 0x05f36621 //zip2 z1.d,z17.d,z19.d +.long 0x05f46242 //zip1 z2.d,z18.d,z20.d +.long 0x05f46643 //zip2 z3.d,z18.d,z20.d + +.long 0x05f762a4 //zip1 z4.d,z21.d,z23.d +.long 0x05f766a5 //zip2 z5.d,z21.d,z23.d +.long 0x05f862c6 //zip1 z6.d,z22.d,z24.d +.long 0x05f866c7 //zip2 z7.d,z22.d,z24.d +.if mixin == 1 + eor x7,x7,x8 +.endif +.if mixin == 1 + eor x9,x9,x10 +.endif +.long 0x05a96111 //zip1 z17.s,z8.s,z9.s +.long 0x05a96512 //zip2 z18.s,z8.s,z9.s +.long 0x05ab6153 //zip1 z19.s,z10.s,z11.s +.long 0x05ab6554 //zip2 z20.s,z10.s,z11.s + +.long 0x05ad6195 //zip1 z21.s,z12.s,z13.s +.long 0x05ad6596 //zip2 z22.s,z12.s,z13.s +.long 0x05af61d7 //zip1 z23.s,z14.s,z15.s +.long 0x05af65d8 //zip2 z24.s,z14.s,z15.s + +.long 0x05f36228 //zip1 z8.d,z17.d,z19.d +.long 0x05f36629 //zip2 z9.d,z17.d,z19.d +.long 0x05f4624a //zip1 z10.d,z18.d,z20.d +.long 0x05f4664b //zip2 z11.d,z18.d,z20.d + +.long 0x05f762ac //zip1 z12.d,z21.d,z23.d +.long 0x05f766ad //zip2 z13.d,z21.d,z23.d +.long 0x05f862ce //zip1 z14.d,z22.d,z24.d +.long 0x05f866cf //zip2 z15.d,z22.d,z24.d +.if mixin == 1 + eor x11,x11,x12 +.endif +.if mixin == 1 + eor x13,x13,x14 +.endif +.long 0x05a46011 //zip1 z17.s,z0.s,z4.s +.long 0x05a46412 //zip2 z18.s,z0.s,z4.s +.long 0x05ac6113 //zip1 z19.s,z8.s,z12.s +.long 0x05ac6514 //zip2 z20.s,z8.s,z12.s + +.long 0x05a56035 //zip1 z21.s,z1.s,z5.s +.long 0x05a56436 //zip2 z22.s,z1.s,z5.s +.long 0x05ad6137 //zip1 z23.s,z9.s,z13.s +.long 0x05ad6538 //zip2 z24.s,z9.s,z13.s + +.long 0x05f36220 //zip1 z0.d,z17.d,z19.d +.long 0x05f36624 //zip2 z4.d,z17.d,z19.d +.long 0x05f46248 //zip1 z8.d,z18.d,z20.d +.long 0x05f4664c //zip2 z12.d,z18.d,z20.d + +.long 0x05f762a1 //zip1 z1.d,z21.d,z23.d +.long 0x05f766a5 //zip2 z5.d,z21.d,z23.d +.long 0x05f862c9 //zip1 z9.d,z22.d,z24.d +.long 0x05f866cd //zip2 z13.d,z22.d,z24.d +.if mixin == 1 + eor x15,x15,x16 +.endif +.if mixin == 1 + eor x17,x17,x18 +.endif +.long 0x05a66051 //zip1 z17.s,z2.s,z6.s +.long 0x05a66452 //zip2 z18.s,z2.s,z6.s +.long 0x05ae6153 //zip1 z19.s,z10.s,z14.s +.long 0x05ae6554 //zip2 z20.s,z10.s,z14.s + +.long 0x05a76075 //zip1 z21.s,z3.s,z7.s +.long 0x05a76476 //zip2 z22.s,z3.s,z7.s +.long 0x05af6177 //zip1 z23.s,z11.s,z15.s +.long 0x05af6578 //zip2 z24.s,z11.s,z15.s + +.long 0x05f36222 //zip1 z2.d,z17.d,z19.d +.long 0x05f36626 //zip2 z6.d,z17.d,z19.d +.long 0x05f4624a //zip1 z10.d,z18.d,z20.d +.long 0x05f4664e //zip2 z14.d,z18.d,z20.d + +.long 0x05f762a3 //zip1 z3.d,z21.d,z23.d +.long 0x05f766a7 //zip2 z7.d,z21.d,z23.d +.long 0x05f862cb //zip1 z11.d,z22.d,z24.d +.long 0x05f866cf //zip2 z15.d,z22.d,z24.d +.if mixin == 1 + eor x19,x19,x20 +.endif +.if mixin == 1 + eor x21,x21,x22 +.endif +.long 0xa540a031 //ld1w {z17.s},p0/z,[x1,#0,MUL VL] +.long 0xa541a032 //ld1w {z18.s},p0/z,[x1,#1,MUL VL] +.long 0xa542a033 //ld1w {z19.s},p0/z,[x1,#2,MUL VL] +.long 0xa543a034 //ld1w {z20.s},p0/z,[x1,#3,MUL VL] +.long 0xa544a035 //ld1w {z21.s},p0/z,[x1,#4,MUL VL] +.long 0xa545a036 //ld1w {z22.s},p0/z,[x1,#5,MUL VL] +.long 0xa546a037 //ld1w {z23.s},p0/z,[x1,#6,MUL VL] +.long 0xa547a038 //ld1w {z24.s},p0/z,[x1,#7,MUL VL] +.long 0x04215101 //addvl x1,x1,8 +.long 0x04b13000 //eor z0.d,z0.d,z17.d +.long 0x04b23084 //eor z4.d,z4.d,z18.d +.long 0x04b33108 //eor z8.d,z8.d,z19.d +.long 0x04b4318c //eor z12.d,z12.d,z20.d +.long 0x04b53021 //eor z1.d,z1.d,z21.d +.long 0x04b630a5 //eor z5.d,z5.d,z22.d +.long 0x04b73129 //eor z9.d,z9.d,z23.d +.long 0x04b831ad //eor z13.d,z13.d,z24.d +.long 0xa540a031 //ld1w {z17.s},p0/z,[x1,#0,MUL VL] +.long 0xa541a032 //ld1w {z18.s},p0/z,[x1,#1,MUL VL] +.long 0xa542a033 //ld1w {z19.s},p0/z,[x1,#2,MUL VL] +.long 0xa543a034 //ld1w {z20.s},p0/z,[x1,#3,MUL VL] +.long 0xa544a035 //ld1w {z21.s},p0/z,[x1,#4,MUL VL] +.long 0xa545a036 //ld1w {z22.s},p0/z,[x1,#5,MUL VL] +.long 0xa546a037 //ld1w {z23.s},p0/z,[x1,#6,MUL VL] +.long 0xa547a038 //ld1w {z24.s},p0/z,[x1,#7,MUL VL] +.long 0x04215101 //addvl x1,x1,8 +.if mixin == 1 + stp x7,x9,[x0],#16 +.endif +.long 0x04b13042 //eor z2.d,z2.d,z17.d +.long 0x04b230c6 //eor z6.d,z6.d,z18.d +.if mixin == 1 + stp x11,x13,[x0],#16 +.endif +.long 0x04b3314a //eor z10.d,z10.d,z19.d +.long 0x04b431ce //eor z14.d,z14.d,z20.d +.if mixin == 1 + stp x15,x17,[x0],#16 +.endif +.long 0x04b53063 //eor z3.d,z3.d,z21.d +.long 0x04b630e7 //eor z7.d,z7.d,z22.d +.if mixin == 1 + stp x19,x21,[x0],#16 +.endif +.long 0x04b7316b //eor z11.d,z11.d,z23.d +.long 0x04b831ef //eor z15.d,z15.d,z24.d +.long 0xe540e000 //st1w {z0.s},p0,[x0,#0,MUL VL] +.long 0xe541e004 //st1w {z4.s},p0,[x0,#1,MUL VL] +.long 0xe542e008 //st1w {z8.s},p0,[x0,#2,MUL VL] +.long 0xe543e00c //st1w {z12.s},p0,[x0,#3,MUL VL] +.long 0xe544e001 //st1w {z1.s},p0,[x0,#4,MUL VL] +.long 0xe545e005 //st1w {z5.s},p0,[x0,#5,MUL VL] +.long 0xe546e009 //st1w {z9.s},p0,[x0,#6,MUL VL] +.long 0xe547e00d //st1w {z13.s},p0,[x0,#7,MUL VL] +.long 0x04205100 //addvl x0,x0,8 +.long 0xe540e002 //st1w {z2.s},p0,[x0,#0,MUL VL] +.long 0xe541e006 //st1w {z6.s},p0,[x0,#1,MUL VL] +.long 0xe542e00a //st1w {z10.s},p0,[x0,#2,MUL VL] +.long 0xe543e00e //st1w {z14.s},p0,[x0,#3,MUL VL] +.long 0xe544e003 //st1w {z3.s},p0,[x0,#4,MUL VL] +.long 0xe545e007 //st1w {z7.s},p0,[x0,#5,MUL VL] +.long 0xe546e00b //st1w {z11.s},p0,[x0,#6,MUL VL] +.long 0xe547e00f //st1w {z15.s},p0,[x0,#7,MUL VL] +.long 0x04205100 //addvl x0,x0,8 +210: +.long 0x04b0e3fd //incw x29, ALL, MUL #1 + subs x2,x2,64 + b.gt 100b + b 110f +101: + mixin=0 + lsr x8,x23,#32 +.long 0x05a03ae0 //dup z0.s,w23 +.long 0x05a03af9 //dup z25.s,w23 +.if mixin == 1 + mov w7,w23 +.endif +.long 0x05a03904 //dup z4.s,w8 +.long 0x05a0391a //dup z26.s,w8 + lsr x10,x24,#32 +.long 0x05a03b08 //dup z8.s,w24 +.long 0x05a03b1b //dup z27.s,w24 +.if mixin == 1 + mov w9,w24 +.endif +.long 0x05a0394c //dup z12.s,w10 +.long 0x05a0395c //dup z28.s,w10 + lsr x12,x25,#32 +.long 0x05a03b21 //dup z1.s,w25 +.long 0x05a03b3d //dup z29.s,w25 +.if mixin == 1 + mov w11,w25 +.endif +.long 0x05a03985 //dup z5.s,w12 +.long 0x05a0399e //dup z30.s,w12 + lsr x14,x26,#32 +.long 0x05a03b49 //dup z9.s,w26 +.long 0x05a03b55 //dup z21.s,w26 +.if mixin == 1 + mov w13,w26 +.endif +.long 0x05a039cd //dup z13.s,w14 +.long 0x05a039d6 //dup z22.s,w14 + lsr x16,x27,#32 +.long 0x05a03b62 //dup z2.s,w27 +.long 0x05a03b77 //dup z23.s,w27 +.if mixin == 1 + mov w15,w27 +.endif +.long 0x05a03a06 //dup z6.s,w16 +.long 0x05a03a18 //dup z24.s,w16 + lsr x18,x28,#32 +.long 0x05a03b8a //dup z10.s,w28 +.if mixin == 1 + mov w17,w28 +.endif +.long 0x05a03a4e //dup z14.s,w18 + lsr x22,x30,#32 +.long 0x05a03bcb //dup z11.s,w30 +.if mixin == 1 + mov w21,w30 +.endif +.long 0x05a03acf //dup z15.s,w22 +.if mixin == 1 + add w20,w29,#1 + mov w19,w29 +.long 0x04a14690 //index z16.s,w20,1 +.long 0x04a14683 //index z3.s,w20,1 +.else +.long 0x04a147b0 //index z16.s,w29,1 +.long 0x04a147a3 //index z3.s,w29,1 +.endif + lsr x20,x29,#32 +.long 0x05a03a87 //dup z7.s,w20 + mov x6,#10 +10: +.align 5 +.long 0x04a10000 //add z0.s,z0.s,z1.s +.if mixin == 1 + add w7,w7,w11 +.endif +.long 0x04a50084 //add z4.s,z4.s,z5.s +.if mixin == 1 + add w8,w8,w12 +.endif +.long 0x04a90108 //add z8.s,z8.s,z9.s +.if mixin == 1 + add w9,w9,w13 +.endif +.long 0x04ad018c //add z12.s,z12.s,z13.s +.if mixin == 1 + add w10,w10,w14 +.endif +.long 0x04a03063 //eor z3.d,z3.d,z0.d +.if mixin == 1 + eor w19,w19,w7 +.endif +.long 0x04a430e7 //eor z7.d,z7.d,z4.d +.if mixin == 1 + eor w20,w20,w8 +.endif +.long 0x04a8316b //eor z11.d,z11.d,z8.d +.if mixin == 1 + eor w21,w21,w9 +.endif +.long 0x04ac31ef //eor z15.d,z15.d,z12.d +.if mixin == 1 + eor w22,w22,w10 +.endif +.long 0x05a58063 //revh z3.s,p0/m,z3.s +.if mixin == 1 + ror w19,w19,#16 +.endif +.long 0x05a580e7 //revh z7.s,p0/m,z7.s +.if mixin == 1 + ror w20,w20,#16 +.endif +.long 0x05a5816b //revh z11.s,p0/m,z11.s +.if mixin == 1 + ror w21,w21,#16 +.endif +.long 0x05a581ef //revh z15.s,p0/m,z15.s +.if mixin == 1 + ror w22,w22,#16 +.endif +.long 0x04a30042 //add z2.s,z2.s,z3.s +.if mixin == 1 + add w15,w15,w19 +.endif +.long 0x04a700c6 //add z6.s,z6.s,z7.s +.if mixin == 1 + add w16,w16,w20 +.endif +.long 0x04ab014a //add z10.s,z10.s,z11.s +.if mixin == 1 + add w17,w17,w21 +.endif +.long 0x04af01ce //add z14.s,z14.s,z15.s +.if mixin == 1 + add w18,w18,w22 +.endif +.long 0x04a23021 //eor z1.d,z1.d,z2.d +.if mixin == 1 + eor w11,w11,w15 +.endif +.long 0x04a630a5 //eor z5.d,z5.d,z6.d +.if mixin == 1 + eor w12,w12,w16 +.endif +.long 0x04aa3129 //eor z9.d,z9.d,z10.d +.if mixin == 1 + eor w13,w13,w17 +.endif +.long 0x04ae31ad //eor z13.d,z13.d,z14.d +.if mixin == 1 + eor w14,w14,w18 +.endif +.long 0x046c9c31 //lsl z17.s,z1.s,12 +.long 0x046c9cb2 //lsl z18.s,z5.s,12 +.long 0x046c9d33 //lsl z19.s,z9.s,12 +.long 0x046c9db4 //lsl z20.s,z13.s,12 +.long 0x046c9421 //lsr z1.s,z1.s,20 +.if mixin == 1 + ror w11,w11,20 +.endif +.long 0x046c94a5 //lsr z5.s,z5.s,20 +.if mixin == 1 + ror w12,w12,20 +.endif +.long 0x046c9529 //lsr z9.s,z9.s,20 +.if mixin == 1 + ror w13,w13,20 +.endif +.long 0x046c95ad //lsr z13.s,z13.s,20 +.if mixin == 1 + ror w14,w14,20 +.endif +.long 0x04713021 //orr z1.d,z1.d,z17.d +.long 0x047230a5 //orr z5.d,z5.d,z18.d +.long 0x04733129 //orr z9.d,z9.d,z19.d +.long 0x047431ad //orr z13.d,z13.d,z20.d +.long 0x04a10000 //add z0.s,z0.s,z1.s +.if mixin == 1 + add w7,w7,w11 +.endif +.long 0x04a50084 //add z4.s,z4.s,z5.s +.if mixin == 1 + add w8,w8,w12 +.endif +.long 0x04a90108 //add z8.s,z8.s,z9.s +.if mixin == 1 + add w9,w9,w13 +.endif +.long 0x04ad018c //add z12.s,z12.s,z13.s +.if mixin == 1 + add w10,w10,w14 +.endif +.long 0x04a03063 //eor z3.d,z3.d,z0.d +.if mixin == 1 + eor w19,w19,w7 +.endif +.long 0x04a430e7 //eor z7.d,z7.d,z4.d +.if mixin == 1 + eor w20,w20,w8 +.endif +.long 0x04a8316b //eor z11.d,z11.d,z8.d +.if mixin == 1 + eor w21,w21,w9 +.endif +.long 0x04ac31ef //eor z15.d,z15.d,z12.d +.if mixin == 1 + eor w22,w22,w10 +.endif +.long 0x053f3063 //tbl z3.b,{z3.b},z31.b +.if mixin == 1 + ror w19,w19,#24 +.endif +.long 0x053f30e7 //tbl z7.b,{z7.b},z31.b +.if mixin == 1 + ror w20,w20,#24 +.endif +.long 0x053f316b //tbl z11.b,{z11.b},z31.b +.if mixin == 1 + ror w21,w21,#24 +.endif +.long 0x053f31ef //tbl z15.b,{z15.b},z31.b +.if mixin == 1 + ror w22,w22,#24 +.endif +.long 0x04a30042 //add z2.s,z2.s,z3.s +.if mixin == 1 + add w15,w15,w19 +.endif +.long 0x04a700c6 //add z6.s,z6.s,z7.s +.if mixin == 1 + add w16,w16,w20 +.endif +.long 0x04ab014a //add z10.s,z10.s,z11.s +.if mixin == 1 + add w17,w17,w21 +.endif +.long 0x04af01ce //add z14.s,z14.s,z15.s +.if mixin == 1 + add w18,w18,w22 +.endif +.long 0x04a23021 //eor z1.d,z1.d,z2.d +.if mixin == 1 + eor w11,w11,w15 +.endif +.long 0x04a630a5 //eor z5.d,z5.d,z6.d +.if mixin == 1 + eor w12,w12,w16 +.endif +.long 0x04aa3129 //eor z9.d,z9.d,z10.d +.if mixin == 1 + eor w13,w13,w17 +.endif +.long 0x04ae31ad //eor z13.d,z13.d,z14.d +.if mixin == 1 + eor w14,w14,w18 +.endif +.long 0x04679c31 //lsl z17.s,z1.s,7 +.long 0x04679cb2 //lsl z18.s,z5.s,7 +.long 0x04679d33 //lsl z19.s,z9.s,7 +.long 0x04679db4 //lsl z20.s,z13.s,7 +.long 0x04679421 //lsr z1.s,z1.s,25 +.if mixin == 1 + ror w11,w11,25 +.endif +.long 0x046794a5 //lsr z5.s,z5.s,25 +.if mixin == 1 + ror w12,w12,25 +.endif +.long 0x04679529 //lsr z9.s,z9.s,25 +.if mixin == 1 + ror w13,w13,25 +.endif +.long 0x046795ad //lsr z13.s,z13.s,25 +.if mixin == 1 + ror w14,w14,25 +.endif +.long 0x04713021 //orr z1.d,z1.d,z17.d +.long 0x047230a5 //orr z5.d,z5.d,z18.d +.long 0x04733129 //orr z9.d,z9.d,z19.d +.long 0x047431ad //orr z13.d,z13.d,z20.d +.long 0x04a50000 //add z0.s,z0.s,z5.s +.if mixin == 1 + add w7,w7,w12 +.endif +.long 0x04a90084 //add z4.s,z4.s,z9.s +.if mixin == 1 + add w8,w8,w13 +.endif +.long 0x04ad0108 //add z8.s,z8.s,z13.s +.if mixin == 1 + add w9,w9,w14 +.endif +.long 0x04a1018c //add z12.s,z12.s,z1.s +.if mixin == 1 + add w10,w10,w11 +.endif +.long 0x04a031ef //eor z15.d,z15.d,z0.d +.if mixin == 1 + eor w22,w22,w7 +.endif +.long 0x04a43063 //eor z3.d,z3.d,z4.d +.if mixin == 1 + eor w19,w19,w8 +.endif +.long 0x04a830e7 //eor z7.d,z7.d,z8.d +.if mixin == 1 + eor w20,w20,w9 +.endif +.long 0x04ac316b //eor z11.d,z11.d,z12.d +.if mixin == 1 + eor w21,w21,w10 +.endif +.long 0x05a581ef //revh z15.s,p0/m,z15.s +.if mixin == 1 + ror w22,w22,#16 +.endif +.long 0x05a58063 //revh z3.s,p0/m,z3.s +.if mixin == 1 + ror w19,w19,#16 +.endif +.long 0x05a580e7 //revh z7.s,p0/m,z7.s +.if mixin == 1 + ror w20,w20,#16 +.endif +.long 0x05a5816b //revh z11.s,p0/m,z11.s +.if mixin == 1 + ror w21,w21,#16 +.endif +.long 0x04af014a //add z10.s,z10.s,z15.s +.if mixin == 1 + add w17,w17,w22 +.endif +.long 0x04a301ce //add z14.s,z14.s,z3.s +.if mixin == 1 + add w18,w18,w19 +.endif +.long 0x04a70042 //add z2.s,z2.s,z7.s +.if mixin == 1 + add w15,w15,w20 +.endif +.long 0x04ab00c6 //add z6.s,z6.s,z11.s +.if mixin == 1 + add w16,w16,w21 +.endif +.long 0x04aa30a5 //eor z5.d,z5.d,z10.d +.if mixin == 1 + eor w12,w12,w17 +.endif +.long 0x04ae3129 //eor z9.d,z9.d,z14.d +.if mixin == 1 + eor w13,w13,w18 +.endif +.long 0x04a231ad //eor z13.d,z13.d,z2.d +.if mixin == 1 + eor w14,w14,w15 +.endif +.long 0x04a63021 //eor z1.d,z1.d,z6.d +.if mixin == 1 + eor w11,w11,w16 +.endif +.long 0x046c9cb1 //lsl z17.s,z5.s,12 +.long 0x046c9d32 //lsl z18.s,z9.s,12 +.long 0x046c9db3 //lsl z19.s,z13.s,12 +.long 0x046c9c34 //lsl z20.s,z1.s,12 +.long 0x046c94a5 //lsr z5.s,z5.s,20 +.if mixin == 1 + ror w12,w12,20 +.endif +.long 0x046c9529 //lsr z9.s,z9.s,20 +.if mixin == 1 + ror w13,w13,20 +.endif +.long 0x046c95ad //lsr z13.s,z13.s,20 +.if mixin == 1 + ror w14,w14,20 +.endif +.long 0x046c9421 //lsr z1.s,z1.s,20 +.if mixin == 1 + ror w11,w11,20 +.endif +.long 0x047130a5 //orr z5.d,z5.d,z17.d +.long 0x04723129 //orr z9.d,z9.d,z18.d +.long 0x047331ad //orr z13.d,z13.d,z19.d +.long 0x04743021 //orr z1.d,z1.d,z20.d +.long 0x04a50000 //add z0.s,z0.s,z5.s +.if mixin == 1 + add w7,w7,w12 +.endif +.long 0x04a90084 //add z4.s,z4.s,z9.s +.if mixin == 1 + add w8,w8,w13 +.endif +.long 0x04ad0108 //add z8.s,z8.s,z13.s +.if mixin == 1 + add w9,w9,w14 +.endif +.long 0x04a1018c //add z12.s,z12.s,z1.s +.if mixin == 1 + add w10,w10,w11 +.endif +.long 0x04a031ef //eor z15.d,z15.d,z0.d +.if mixin == 1 + eor w22,w22,w7 +.endif +.long 0x04a43063 //eor z3.d,z3.d,z4.d +.if mixin == 1 + eor w19,w19,w8 +.endif +.long 0x04a830e7 //eor z7.d,z7.d,z8.d +.if mixin == 1 + eor w20,w20,w9 +.endif +.long 0x04ac316b //eor z11.d,z11.d,z12.d +.if mixin == 1 + eor w21,w21,w10 +.endif +.long 0x053f31ef //tbl z15.b,{z15.b},z31.b +.if mixin == 1 + ror w22,w22,#24 +.endif +.long 0x053f3063 //tbl z3.b,{z3.b},z31.b +.if mixin == 1 + ror w19,w19,#24 +.endif +.long 0x053f30e7 //tbl z7.b,{z7.b},z31.b +.if mixin == 1 + ror w20,w20,#24 +.endif +.long 0x053f316b //tbl z11.b,{z11.b},z31.b +.if mixin == 1 + ror w21,w21,#24 +.endif +.long 0x04af014a //add z10.s,z10.s,z15.s +.if mixin == 1 + add w17,w17,w22 +.endif +.long 0x04a301ce //add z14.s,z14.s,z3.s +.if mixin == 1 + add w18,w18,w19 +.endif +.long 0x04a70042 //add z2.s,z2.s,z7.s +.if mixin == 1 + add w15,w15,w20 +.endif +.long 0x04ab00c6 //add z6.s,z6.s,z11.s +.if mixin == 1 + add w16,w16,w21 +.endif +.long 0x04aa30a5 //eor z5.d,z5.d,z10.d +.if mixin == 1 + eor w12,w12,w17 +.endif +.long 0x04ae3129 //eor z9.d,z9.d,z14.d +.if mixin == 1 + eor w13,w13,w18 +.endif +.long 0x04a231ad //eor z13.d,z13.d,z2.d +.if mixin == 1 + eor w14,w14,w15 +.endif +.long 0x04a63021 //eor z1.d,z1.d,z6.d +.if mixin == 1 + eor w11,w11,w16 +.endif +.long 0x04679cb1 //lsl z17.s,z5.s,7 +.long 0x04679d32 //lsl z18.s,z9.s,7 +.long 0x04679db3 //lsl z19.s,z13.s,7 +.long 0x04679c34 //lsl z20.s,z1.s,7 +.long 0x046794a5 //lsr z5.s,z5.s,25 +.if mixin == 1 + ror w12,w12,25 +.endif +.long 0x04679529 //lsr z9.s,z9.s,25 +.if mixin == 1 + ror w13,w13,25 +.endif +.long 0x046795ad //lsr z13.s,z13.s,25 +.if mixin == 1 + ror w14,w14,25 +.endif +.long 0x04679421 //lsr z1.s,z1.s,25 +.if mixin == 1 + ror w11,w11,25 +.endif +.long 0x047130a5 //orr z5.d,z5.d,z17.d +.long 0x04723129 //orr z9.d,z9.d,z18.d +.long 0x047331ad //orr z13.d,z13.d,z19.d +.long 0x04743021 //orr z1.d,z1.d,z20.d + sub x6,x6,1 + cbnz x6,10b + lsr x6,x28,#32 +.long 0x05a03b91 //dup z17.s,w28 +.long 0x05a038d2 //dup z18.s,w6 + lsr x6,x29,#32 +.long 0x05a038d3 //dup z19.s,w6 + lsr x6,x30,#32 +.if mixin == 1 + add w7,w7,w23 +.endif +.long 0x04b90000 //add z0.s,z0.s,z25.s +.if mixin == 1 + add x8,x8,x23,lsr #32 +.endif +.long 0x04ba0084 //add z4.s,z4.s,z26.s +.if mixin == 1 + add x7,x7,x8,lsl #32 // pack +.endif +.if mixin == 1 + add w9,w9,w24 +.endif +.long 0x04bb0108 //add z8.s,z8.s,z27.s +.if mixin == 1 + add x10,x10,x24,lsr #32 +.endif +.long 0x04bc018c //add z12.s,z12.s,z28.s +.if mixin == 1 + add x9,x9,x10,lsl #32 // pack +.endif +.if mixin == 1 + ldp x8,x10,[x1],#16 +.endif +.if mixin == 1 + add w11,w11,w25 +.endif +.long 0x04bd0021 //add z1.s,z1.s,z29.s +.if mixin == 1 + add x12,x12,x25,lsr #32 +.endif +.long 0x04be00a5 //add z5.s,z5.s,z30.s +.if mixin == 1 + add x11,x11,x12,lsl #32 // pack +.endif +.if mixin == 1 + add w13,w13,w26 +.endif +.long 0x04b50129 //add z9.s,z9.s,z21.s +.if mixin == 1 + add x14,x14,x26,lsr #32 +.endif +.long 0x04b601ad //add z13.s,z13.s,z22.s +.if mixin == 1 + add x13,x13,x14,lsl #32 // pack +.endif +.if mixin == 1 + ldp x12,x14,[x1],#16 +.endif +.if mixin == 1 + add w15,w15,w27 +.endif +.long 0x04b70042 //add z2.s,z2.s,z23.s +.if mixin == 1 + add x16,x16,x27,lsr #32 +.endif +.long 0x04b800c6 //add z6.s,z6.s,z24.s +.if mixin == 1 + add x15,x15,x16,lsl #32 // pack +.endif +.if mixin == 1 + add w17,w17,w28 +.endif +.long 0x04b1014a //add z10.s,z10.s,z17.s +.if mixin == 1 + add x18,x18,x28,lsr #32 +.endif +.long 0x04b201ce //add z14.s,z14.s,z18.s +.if mixin == 1 + add x17,x17,x18,lsl #32 // pack +.endif +.if mixin == 1 + ldp x16,x18,[x1],#16 +.endif +.long 0x05a03bd4 //dup z20.s,w30 +.long 0x05a038d9 //dup z25.s,w6 // bak[15] not available for SVE +.if mixin == 1 + add w19,w19,w29 +.endif +.long 0x04b00063 //add z3.s,z3.s,z16.s +.if mixin == 1 + add x20,x20,x29,lsr #32 +.endif +.long 0x04b300e7 //add z7.s,z7.s,z19.s +.if mixin == 1 + add x19,x19,x20,lsl #32 // pack +.endif +.if mixin == 1 + add w21,w21,w30 +.endif +.long 0x04b4016b //add z11.s,z11.s,z20.s +.if mixin == 1 + add x22,x22,x30,lsr #32 +.endif +.long 0x04b901ef //add z15.s,z15.s,z25.s +.if mixin == 1 + add x21,x21,x22,lsl #32 // pack +.endif +.if mixin == 1 + ldp x20,x22,[x1],#16 +.endif +#ifdef __AARCH64EB__ + rev x7,x7 +.long 0x05a48000 //revb z0.s,p0/m,z0.s +.long 0x05a48084 //revb z4.s,p0/m,z4.s + rev x9,x9 +.long 0x05a48108 //revb z8.s,p0/m,z8.s +.long 0x05a4818c //revb z12.s,p0/m,z12.s + rev x11,x11 +.long 0x05a48021 //revb z1.s,p0/m,z1.s +.long 0x05a480a5 //revb z5.s,p0/m,z5.s + rev x13,x13 +.long 0x05a48129 //revb z9.s,p0/m,z9.s +.long 0x05a481ad //revb z13.s,p0/m,z13.s + rev x15,x15 +.long 0x05a48042 //revb z2.s,p0/m,z2.s +.long 0x05a480c6 //revb z6.s,p0/m,z6.s + rev x17,x17 +.long 0x05a4814a //revb z10.s,p0/m,z10.s +.long 0x05a481ce //revb z14.s,p0/m,z14.s + rev x19,x19 +.long 0x05a48063 //revb z3.s,p0/m,z3.s +.long 0x05a480e7 //revb z7.s,p0/m,z7.s + rev x21,x21 +.long 0x05a4816b //revb z11.s,p0/m,z11.s +.long 0x05a481ef //revb z15.s,p0/m,z15.s +#endif +.if mixin == 1 + add x29,x29,#1 +.endif + cmp x5,4 + b.ne 200f +.if mixin == 1 + eor x7,x7,x8 +.endif +.if mixin == 1 + eor x9,x9,x10 +.endif +.if mixin == 1 + eor x11,x11,x12 +.endif +.long 0x05a46011 //zip1 z17.s,z0.s,z4.s +.long 0x05a46412 //zip2 z18.s,z0.s,z4.s +.long 0x05ac6113 //zip1 z19.s,z8.s,z12.s +.long 0x05ac6514 //zip2 z20.s,z8.s,z12.s + +.long 0x05a56035 //zip1 z21.s,z1.s,z5.s +.long 0x05a56436 //zip2 z22.s,z1.s,z5.s +.long 0x05ad6137 //zip1 z23.s,z9.s,z13.s +.long 0x05ad6538 //zip2 z24.s,z9.s,z13.s + +.long 0x05f36220 //zip1 z0.d,z17.d,z19.d +.long 0x05f36624 //zip2 z4.d,z17.d,z19.d +.long 0x05f46248 //zip1 z8.d,z18.d,z20.d +.long 0x05f4664c //zip2 z12.d,z18.d,z20.d + +.long 0x05f762a1 //zip1 z1.d,z21.d,z23.d +.long 0x05f766a5 //zip2 z5.d,z21.d,z23.d +.long 0x05f862c9 //zip1 z9.d,z22.d,z24.d +.long 0x05f866cd //zip2 z13.d,z22.d,z24.d +.if mixin == 1 + eor x13,x13,x14 +.endif +.if mixin == 1 + eor x15,x15,x16 +.endif +.if mixin == 1 + eor x17,x17,x18 +.endif +.long 0x05a66051 //zip1 z17.s,z2.s,z6.s +.long 0x05a66452 //zip2 z18.s,z2.s,z6.s +.long 0x05ae6153 //zip1 z19.s,z10.s,z14.s +.long 0x05ae6554 //zip2 z20.s,z10.s,z14.s + +.long 0x05a76075 //zip1 z21.s,z3.s,z7.s +.long 0x05a76476 //zip2 z22.s,z3.s,z7.s +.long 0x05af6177 //zip1 z23.s,z11.s,z15.s +.long 0x05af6578 //zip2 z24.s,z11.s,z15.s + +.long 0x05f36222 //zip1 z2.d,z17.d,z19.d +.long 0x05f36626 //zip2 z6.d,z17.d,z19.d +.long 0x05f4624a //zip1 z10.d,z18.d,z20.d +.long 0x05f4664e //zip2 z14.d,z18.d,z20.d + +.long 0x05f762a3 //zip1 z3.d,z21.d,z23.d +.long 0x05f766a7 //zip2 z7.d,z21.d,z23.d +.long 0x05f862cb //zip1 z11.d,z22.d,z24.d +.long 0x05f866cf //zip2 z15.d,z22.d,z24.d +.if mixin == 1 + eor x19,x19,x20 +.endif +.if mixin == 1 + eor x21,x21,x22 +.endif + ld1 {v17.4s,v18.4s,v19.4s,v20.4s},[x1],#64 + ld1 {v21.4s,v22.4s,v23.4s,v24.4s},[x1],#64 +.long 0x04b13000 //eor z0.d,z0.d,z17.d +.long 0x04b23021 //eor z1.d,z1.d,z18.d +.long 0x04b33042 //eor z2.d,z2.d,z19.d +.long 0x04b43063 //eor z3.d,z3.d,z20.d +.long 0x04b53084 //eor z4.d,z4.d,z21.d +.long 0x04b630a5 //eor z5.d,z5.d,z22.d +.long 0x04b730c6 //eor z6.d,z6.d,z23.d +.long 0x04b830e7 //eor z7.d,z7.d,z24.d + ld1 {v17.4s,v18.4s,v19.4s,v20.4s},[x1],#64 + ld1 {v21.4s,v22.4s,v23.4s,v24.4s},[x1],#64 +.if mixin == 1 + stp x7,x9,[x0],#16 +.endif +.long 0x04b13108 //eor z8.d,z8.d,z17.d +.long 0x04b23129 //eor z9.d,z9.d,z18.d +.if mixin == 1 + stp x11,x13,[x0],#16 +.endif +.long 0x04b3314a //eor z10.d,z10.d,z19.d +.long 0x04b4316b //eor z11.d,z11.d,z20.d +.if mixin == 1 + stp x15,x17,[x0],#16 +.endif +.long 0x04b5318c //eor z12.d,z12.d,z21.d +.long 0x04b631ad //eor z13.d,z13.d,z22.d +.if mixin == 1 + stp x19,x21,[x0],#16 +.endif +.long 0x04b731ce //eor z14.d,z14.d,z23.d +.long 0x04b831ef //eor z15.d,z15.d,z24.d + st1 {v0.4s,v1.4s,v2.4s,v3.4s},[x0],#64 + st1 {v4.4s,v5.4s,v6.4s,v7.4s},[x0],#64 + st1 {v8.4s,v9.4s,v10.4s,v11.4s},[x0],#64 + st1 {v12.4s,v13.4s,v14.4s,v15.4s},[x0],#64 + b 210f +200: +.long 0x05a16011 //zip1 z17.s,z0.s,z1.s +.long 0x05a16412 //zip2 z18.s,z0.s,z1.s +.long 0x05a36053 //zip1 z19.s,z2.s,z3.s +.long 0x05a36454 //zip2 z20.s,z2.s,z3.s + +.long 0x05a56095 //zip1 z21.s,z4.s,z5.s +.long 0x05a56496 //zip2 z22.s,z4.s,z5.s +.long 0x05a760d7 //zip1 z23.s,z6.s,z7.s +.long 0x05a764d8 //zip2 z24.s,z6.s,z7.s + +.long 0x05f36220 //zip1 z0.d,z17.d,z19.d +.long 0x05f36621 //zip2 z1.d,z17.d,z19.d +.long 0x05f46242 //zip1 z2.d,z18.d,z20.d +.long 0x05f46643 //zip2 z3.d,z18.d,z20.d + +.long 0x05f762a4 //zip1 z4.d,z21.d,z23.d +.long 0x05f766a5 //zip2 z5.d,z21.d,z23.d +.long 0x05f862c6 //zip1 z6.d,z22.d,z24.d +.long 0x05f866c7 //zip2 z7.d,z22.d,z24.d +.if mixin == 1 + eor x7,x7,x8 +.endif +.if mixin == 1 + eor x9,x9,x10 +.endif +.long 0x05a96111 //zip1 z17.s,z8.s,z9.s +.long 0x05a96512 //zip2 z18.s,z8.s,z9.s +.long 0x05ab6153 //zip1 z19.s,z10.s,z11.s +.long 0x05ab6554 //zip2 z20.s,z10.s,z11.s + +.long 0x05ad6195 //zip1 z21.s,z12.s,z13.s +.long 0x05ad6596 //zip2 z22.s,z12.s,z13.s +.long 0x05af61d7 //zip1 z23.s,z14.s,z15.s +.long 0x05af65d8 //zip2 z24.s,z14.s,z15.s + +.long 0x05f36228 //zip1 z8.d,z17.d,z19.d +.long 0x05f36629 //zip2 z9.d,z17.d,z19.d +.long 0x05f4624a //zip1 z10.d,z18.d,z20.d +.long 0x05f4664b //zip2 z11.d,z18.d,z20.d + +.long 0x05f762ac //zip1 z12.d,z21.d,z23.d +.long 0x05f766ad //zip2 z13.d,z21.d,z23.d +.long 0x05f862ce //zip1 z14.d,z22.d,z24.d +.long 0x05f866cf //zip2 z15.d,z22.d,z24.d +.if mixin == 1 + eor x11,x11,x12 +.endif +.if mixin == 1 + eor x13,x13,x14 +.endif +.long 0x05a46011 //zip1 z17.s,z0.s,z4.s +.long 0x05a46412 //zip2 z18.s,z0.s,z4.s +.long 0x05ac6113 //zip1 z19.s,z8.s,z12.s +.long 0x05ac6514 //zip2 z20.s,z8.s,z12.s + +.long 0x05a56035 //zip1 z21.s,z1.s,z5.s +.long 0x05a56436 //zip2 z22.s,z1.s,z5.s +.long 0x05ad6137 //zip1 z23.s,z9.s,z13.s +.long 0x05ad6538 //zip2 z24.s,z9.s,z13.s + +.long 0x05f36220 //zip1 z0.d,z17.d,z19.d +.long 0x05f36624 //zip2 z4.d,z17.d,z19.d +.long 0x05f46248 //zip1 z8.d,z18.d,z20.d +.long 0x05f4664c //zip2 z12.d,z18.d,z20.d + +.long 0x05f762a1 //zip1 z1.d,z21.d,z23.d +.long 0x05f766a5 //zip2 z5.d,z21.d,z23.d +.long 0x05f862c9 //zip1 z9.d,z22.d,z24.d +.long 0x05f866cd //zip2 z13.d,z22.d,z24.d +.if mixin == 1 + eor x15,x15,x16 +.endif +.if mixin == 1 + eor x17,x17,x18 +.endif +.long 0x05a66051 //zip1 z17.s,z2.s,z6.s +.long 0x05a66452 //zip2 z18.s,z2.s,z6.s +.long 0x05ae6153 //zip1 z19.s,z10.s,z14.s +.long 0x05ae6554 //zip2 z20.s,z10.s,z14.s + +.long 0x05a76075 //zip1 z21.s,z3.s,z7.s +.long 0x05a76476 //zip2 z22.s,z3.s,z7.s +.long 0x05af6177 //zip1 z23.s,z11.s,z15.s +.long 0x05af6578 //zip2 z24.s,z11.s,z15.s + +.long 0x05f36222 //zip1 z2.d,z17.d,z19.d +.long 0x05f36626 //zip2 z6.d,z17.d,z19.d +.long 0x05f4624a //zip1 z10.d,z18.d,z20.d +.long 0x05f4664e //zip2 z14.d,z18.d,z20.d + +.long 0x05f762a3 //zip1 z3.d,z21.d,z23.d +.long 0x05f766a7 //zip2 z7.d,z21.d,z23.d +.long 0x05f862cb //zip1 z11.d,z22.d,z24.d +.long 0x05f866cf //zip2 z15.d,z22.d,z24.d +.if mixin == 1 + eor x19,x19,x20 +.endif +.if mixin == 1 + eor x21,x21,x22 +.endif +.long 0xa540a031 //ld1w {z17.s},p0/z,[x1,#0,MUL VL] +.long 0xa541a032 //ld1w {z18.s},p0/z,[x1,#1,MUL VL] +.long 0xa542a033 //ld1w {z19.s},p0/z,[x1,#2,MUL VL] +.long 0xa543a034 //ld1w {z20.s},p0/z,[x1,#3,MUL VL] +.long 0xa544a035 //ld1w {z21.s},p0/z,[x1,#4,MUL VL] +.long 0xa545a036 //ld1w {z22.s},p0/z,[x1,#5,MUL VL] +.long 0xa546a037 //ld1w {z23.s},p0/z,[x1,#6,MUL VL] +.long 0xa547a038 //ld1w {z24.s},p0/z,[x1,#7,MUL VL] +.long 0x04215101 //addvl x1,x1,8 +.long 0x04b13000 //eor z0.d,z0.d,z17.d +.long 0x04b23084 //eor z4.d,z4.d,z18.d +.long 0x04b33108 //eor z8.d,z8.d,z19.d +.long 0x04b4318c //eor z12.d,z12.d,z20.d +.long 0x04b53021 //eor z1.d,z1.d,z21.d +.long 0x04b630a5 //eor z5.d,z5.d,z22.d +.long 0x04b73129 //eor z9.d,z9.d,z23.d +.long 0x04b831ad //eor z13.d,z13.d,z24.d +.long 0xa540a031 //ld1w {z17.s},p0/z,[x1,#0,MUL VL] +.long 0xa541a032 //ld1w {z18.s},p0/z,[x1,#1,MUL VL] +.long 0xa542a033 //ld1w {z19.s},p0/z,[x1,#2,MUL VL] +.long 0xa543a034 //ld1w {z20.s},p0/z,[x1,#3,MUL VL] +.long 0xa544a035 //ld1w {z21.s},p0/z,[x1,#4,MUL VL] +.long 0xa545a036 //ld1w {z22.s},p0/z,[x1,#5,MUL VL] +.long 0xa546a037 //ld1w {z23.s},p0/z,[x1,#6,MUL VL] +.long 0xa547a038 //ld1w {z24.s},p0/z,[x1,#7,MUL VL] +.long 0x04215101 //addvl x1,x1,8 +.if mixin == 1 + stp x7,x9,[x0],#16 +.endif +.long 0x04b13042 //eor z2.d,z2.d,z17.d +.long 0x04b230c6 //eor z6.d,z6.d,z18.d +.if mixin == 1 + stp x11,x13,[x0],#16 +.endif +.long 0x04b3314a //eor z10.d,z10.d,z19.d +.long 0x04b431ce //eor z14.d,z14.d,z20.d +.if mixin == 1 + stp x15,x17,[x0],#16 +.endif +.long 0x04b53063 //eor z3.d,z3.d,z21.d +.long 0x04b630e7 //eor z7.d,z7.d,z22.d +.if mixin == 1 + stp x19,x21,[x0],#16 +.endif +.long 0x04b7316b //eor z11.d,z11.d,z23.d +.long 0x04b831ef //eor z15.d,z15.d,z24.d +.long 0xe540e000 //st1w {z0.s},p0,[x0,#0,MUL VL] +.long 0xe541e004 //st1w {z4.s},p0,[x0,#1,MUL VL] +.long 0xe542e008 //st1w {z8.s},p0,[x0,#2,MUL VL] +.long 0xe543e00c //st1w {z12.s},p0,[x0,#3,MUL VL] +.long 0xe544e001 //st1w {z1.s},p0,[x0,#4,MUL VL] +.long 0xe545e005 //st1w {z5.s},p0,[x0,#5,MUL VL] +.long 0xe546e009 //st1w {z9.s},p0,[x0,#6,MUL VL] +.long 0xe547e00d //st1w {z13.s},p0,[x0,#7,MUL VL] +.long 0x04205100 //addvl x0,x0,8 +.long 0xe540e002 //st1w {z2.s},p0,[x0,#0,MUL VL] +.long 0xe541e006 //st1w {z6.s},p0,[x0,#1,MUL VL] +.long 0xe542e00a //st1w {z10.s},p0,[x0,#2,MUL VL] +.long 0xe543e00e //st1w {z14.s},p0,[x0,#3,MUL VL] +.long 0xe544e003 //st1w {z3.s},p0,[x0,#4,MUL VL] +.long 0xe545e007 //st1w {z7.s},p0,[x0,#5,MUL VL] +.long 0xe546e00b //st1w {z11.s},p0,[x0,#6,MUL VL] +.long 0xe547e00f //st1w {z15.s},p0,[x0,#7,MUL VL] +.long 0x04205100 //addvl x0,x0,8 +210: +.long 0x04b0e3fd //incw x29, ALL, MUL #1 +110: +2: + str w29,[x4] + ldp d10,d11,[sp,16] + ldp d12,d13,[sp,32] + ldp d14,d15,[sp,48] + ldp x16,x17,[sp,64] + ldp x18,x19,[sp,80] + ldp x20,x21,[sp,96] + ldp x22,x23,[sp,112] + ldp x24,x25,[sp,128] + ldp x26,x27,[sp,144] + ldp x28,x29,[sp,160] + ldr x30,[sp,176] + ldp d8,d9,[sp],192 + AARCH64_VALIDATE_LINK_REGISTER +Lreturn: + ret + diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/crypto/chacha/chacha-armv8.S b/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/crypto/chacha/chacha-armv8.S index 1374eb45042365..c4fc9c262998ff 100644 --- a/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/crypto/chacha/chacha-armv8.S +++ b/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/crypto/chacha/chacha-armv8.S @@ -1,10 +1,12 @@ +#include "arm_arch.h" #ifndef __KERNEL__ -# include "arm_arch.h" .private_extern _OPENSSL_armcap_P + + #endif -.text +.section __TEXT,__const .align 5 Lsigma: @@ -16,27 +18,29 @@ Lrot24: .byte 67,104,97,67,104,97,50,48,32,102,111,114,32,65,82,77,118,56,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,64,100,111,116,45,97,115,109,0 .align 2 -.globl _ChaCha20_ctr32 +.text + +.globl _ChaCha20_ctr32_dflt .align 5 -_ChaCha20_ctr32: - cbz x2,Labort +_ChaCha20_ctr32_dflt: + AARCH64_SIGN_LINK_REGISTER cmp x2,#192 b.lo Lshort - #ifndef __KERNEL__ adrp x17,_OPENSSL_armcap_P@PAGE ldr w17,[x17,_OPENSSL_armcap_P@PAGEOFF] +Lcheck_neon: tst w17,#ARMV7_NEON b.ne LChaCha20_neon #endif Lshort: -.long 0xd503233f // paciasp stp x29,x30,[sp,#-96]! add x29,sp,#0 - adr x5,Lsigma + adrp x5,Lsigma@PAGE + add x5,x5,Lsigma@PAGEOFF stp x19,x20,[sp,#16] stp x21,x22,[sp,#32] stp x23,x24,[sp,#48] @@ -244,8 +248,8 @@ Loop: ldp x25,x26,[x29,#64] ldp x27,x28,[x29,#80] ldp x29,x30,[sp],#96 -.long 0xd50323bf // autiasp Labort: + AARCH64_VALIDATE_LINK_REGISTER ret .align 4 @@ -301,22 +305,58 @@ Loop_tail: ldp x25,x26,[x29,#64] ldp x27,x28,[x29,#80] ldp x29,x30,[sp],#96 -.long 0xd50323bf // autiasp + AARCH64_VALIDATE_LINK_REGISTER ret +.globl _ChaCha20_ctr32 + +.align 5 +_ChaCha20_ctr32: + AARCH64_SIGN_LINK_REGISTER + cbz x2,Labort + cmp x2,#192 + b.lo Lshort +#ifndef __KERNEL__ + adrp x17,_OPENSSL_armcap_P@PAGE + ldr w17,[x17,_OPENSSL_armcap_P@PAGEOFF] + tst w17,#ARMV8_SVE + b.eq Lcheck_neon + stp x29,x30,[sp,#-16]! + sub sp,sp,#16 + // SVE handling will inevitably increment the counter + // Neon/Scalar code that follows to process tail data needs to + // use new counter, unfortunately the input counter buffer + // pointed to by ctr is meant to be read-only per API contract + // we have to copy the buffer to stack to be writable by SVE + ldp x5,x6,[x4] + stp x5,x6,[sp] + mov x4,sp + bl _ChaCha20_ctr32_sve + cbz x2,1f + bl _ChaCha20_ctr32_dflt +1: + add sp,sp,#16 + ldp x29,x30,[sp],#16 + AARCH64_VALIDATE_LINK_REGISTER + ret +#endif + b Lshort + + #ifdef __KERNEL__ .globl _ChaCha20_neon #endif .align 5 _ChaCha20_neon: + AARCH64_SIGN_LINK_REGISTER LChaCha20_neon: -.long 0xd503233f // paciasp stp x29,x30,[sp,#-96]! add x29,sp,#0 - adr x5,Lsigma + adrp x5,Lsigma@PAGE + add x5,x5,Lsigma@PAGEOFF stp x19,x20,[sp,#16] stp x21,x22,[sp,#32] stp x23,x24,[sp,#48] @@ -747,7 +787,7 @@ Loop_neon: ldp x25,x26,[x29,#64] ldp x27,x28,[x29,#80] ldp x29,x30,[sp],#96 -.long 0xd50323bf // autiasp + AARCH64_VALIDATE_LINK_REGISTER ret .align 4 @@ -879,17 +919,18 @@ Ldone_neon: ldp x25,x26,[x29,#64] ldp x27,x28,[x29,#80] ldp x29,x30,[sp],#96 -.long 0xd50323bf // autiasp + AARCH64_VALIDATE_LINK_REGISTER ret .align 5 ChaCha20_512_neon: -.long 0xd503233f // paciasp + AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-96]! add x29,sp,#0 - adr x5,Lsigma + adrp x5,Lsigma@PAGE + add x5,x5,Lsigma@PAGEOFF stp x19,x20,[sp,#16] stp x21,x22,[sp,#32] stp x23,x24,[sp,#48] @@ -2029,6 +2070,6 @@ Ldone_512_neon: ldp x25,x26,[x29,#64] ldp x27,x28,[x29,#80] ldp x29,x30,[sp],#96 -.long 0xd50323bf // autiasp + AARCH64_VALIDATE_LINK_REGISTER ret diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/crypto/ec/ecp_nistz256-armv8.S b/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/crypto/ec/ecp_nistz256-armv8.S index 8bbfa9ea709381..5a7ef2ab3b6693 100644 --- a/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/crypto/ec/ecp_nistz256-armv8.S +++ b/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/crypto/ec/ecp_nistz256-armv8.S @@ -1,6 +1,6 @@ #include "arm_arch.h" -.text +.section __TEXT,__const .globl _ecp_nistz256_precomputed .align 12 @@ -2390,28 +2390,34 @@ LordK: .byte 69,67,80,95,78,73,83,84,90,50,53,54,32,102,111,114,32,65,82,77,118,56,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 .align 2 +.text + // void ecp_nistz256_to_mont(BN_ULONG x0[4],const BN_ULONG x1[4]); .globl _ecp_nistz256_to_mont .align 6 _ecp_nistz256_to_mont: -.long 0xd503233f // paciasp + AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-32]! add x29,sp,#0 stp x19,x20,[sp,#16] - ldr x3,LRR // bp[0] + adrp x3,LRR@PAGE + ldr x3,[x3,LRR@PAGEOFF] // bp[0] ldp x4,x5,[x1] ldp x6,x7,[x1,#16] - ldr x12,Lpoly+8 - ldr x13,Lpoly+24 - adr x2,LRR // &bp[0] + adrp x13,Lpoly@PAGE + add x13,x13,Lpoly@PAGEOFF + ldr x12,[x13,#8] + ldr x13,[x13,#24] + adrp x2,LRR@PAGE + add x2,x2,LRR@PAGEOFF bl __ecp_nistz256_mul_mont ldp x19,x20,[sp,#16] ldp x29,x30,[sp],#32 -.long 0xd50323bf // autiasp + AARCH64_VALIDATE_LINK_REGISTER ret @@ -2420,7 +2426,7 @@ _ecp_nistz256_to_mont: .align 4 _ecp_nistz256_from_mont: -.long 0xd503233f // paciasp + AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-32]! add x29,sp,#0 stp x19,x20,[sp,#16] @@ -2428,15 +2434,18 @@ _ecp_nistz256_from_mont: mov x3,#1 // bp[0] ldp x4,x5,[x1] ldp x6,x7,[x1,#16] - ldr x12,Lpoly+8 - ldr x13,Lpoly+24 - adr x2,Lone // &bp[0] + adrp x13,Lpoly@PAGE + add x13,x13,Lpoly@PAGEOFF + ldr x12,[x13,#8] + ldr x13,[x13,#24] + adrp x2,Lone@PAGE + add x2,x2,Lone@PAGEOFF bl __ecp_nistz256_mul_mont ldp x19,x20,[sp,#16] ldp x29,x30,[sp],#32 -.long 0xd50323bf // autiasp + AARCH64_VALIDATE_LINK_REGISTER ret @@ -2446,7 +2455,7 @@ _ecp_nistz256_from_mont: .align 4 _ecp_nistz256_mul_mont: -.long 0xd503233f // paciasp + AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-32]! add x29,sp,#0 stp x19,x20,[sp,#16] @@ -2454,14 +2463,16 @@ _ecp_nistz256_mul_mont: ldr x3,[x2] // bp[0] ldp x4,x5,[x1] ldp x6,x7,[x1,#16] - ldr x12,Lpoly+8 - ldr x13,Lpoly+24 + adrp x13,Lpoly@PAGE + add x13,x13,Lpoly@PAGEOFF + ldr x12,[x13,#8] + ldr x13,[x13,#24] bl __ecp_nistz256_mul_mont ldp x19,x20,[sp,#16] ldp x29,x30,[sp],#32 -.long 0xd50323bf // autiasp + AARCH64_VALIDATE_LINK_REGISTER ret @@ -2470,21 +2481,23 @@ _ecp_nistz256_mul_mont: .align 4 _ecp_nistz256_sqr_mont: -.long 0xd503233f // paciasp + AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-32]! add x29,sp,#0 stp x19,x20,[sp,#16] ldp x4,x5,[x1] ldp x6,x7,[x1,#16] - ldr x12,Lpoly+8 - ldr x13,Lpoly+24 + adrp x13,Lpoly@PAGE + add x13,x13,Lpoly@PAGEOFF + ldr x12,[x13,#8] + ldr x13,[x13,#24] bl __ecp_nistz256_sqr_mont ldp x19,x20,[sp,#16] ldp x29,x30,[sp],#32 -.long 0xd50323bf // autiasp + AARCH64_VALIDATE_LINK_REGISTER ret @@ -2494,7 +2507,7 @@ _ecp_nistz256_sqr_mont: .align 4 _ecp_nistz256_add: -.long 0xd503233f // paciasp + AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-16]! add x29,sp,#0 @@ -2502,13 +2515,15 @@ _ecp_nistz256_add: ldp x8,x9,[x2] ldp x16,x17,[x1,#16] ldp x10,x11,[x2,#16] - ldr x12,Lpoly+8 - ldr x13,Lpoly+24 + adrp x13,Lpoly@PAGE + add x13,x13,Lpoly@PAGEOFF + ldr x12,[x13,#8] + ldr x13,[x13,#24] bl __ecp_nistz256_add ldp x29,x30,[sp],#16 -.long 0xd50323bf // autiasp + AARCH64_VALIDATE_LINK_REGISTER ret @@ -2517,19 +2532,21 @@ _ecp_nistz256_add: .align 4 _ecp_nistz256_div_by_2: -.long 0xd503233f // paciasp + AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-16]! add x29,sp,#0 ldp x14,x15,[x1] ldp x16,x17,[x1,#16] - ldr x12,Lpoly+8 - ldr x13,Lpoly+24 + adrp x13,Lpoly@PAGE + add x13,x13,Lpoly@PAGEOFF + ldr x12,[x13,#8] + ldr x13,[x13,#24] bl __ecp_nistz256_div_by_2 ldp x29,x30,[sp],#16 -.long 0xd50323bf // autiasp + AARCH64_VALIDATE_LINK_REGISTER ret @@ -2538,14 +2555,16 @@ _ecp_nistz256_div_by_2: .align 4 _ecp_nistz256_mul_by_2: -.long 0xd503233f // paciasp + AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-16]! add x29,sp,#0 ldp x14,x15,[x1] ldp x16,x17,[x1,#16] - ldr x12,Lpoly+8 - ldr x13,Lpoly+24 + adrp x13,Lpoly@PAGE + add x13,x13,Lpoly@PAGEOFF + ldr x12,[x13,#8] + ldr x13,[x13,#24] mov x8,x14 mov x9,x15 mov x10,x16 @@ -2554,7 +2573,7 @@ _ecp_nistz256_mul_by_2: bl __ecp_nistz256_add // ret = a+a // 2*a ldp x29,x30,[sp],#16 -.long 0xd50323bf // autiasp + AARCH64_VALIDATE_LINK_REGISTER ret @@ -2563,14 +2582,16 @@ _ecp_nistz256_mul_by_2: .align 4 _ecp_nistz256_mul_by_3: -.long 0xd503233f // paciasp + AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-16]! add x29,sp,#0 ldp x14,x15,[x1] ldp x16,x17,[x1,#16] - ldr x12,Lpoly+8 - ldr x13,Lpoly+24 + adrp x13,Lpoly@PAGE + add x13,x13,Lpoly@PAGEOFF + ldr x12,[x13,#8] + ldr x13,[x13,#24] mov x8,x14 mov x9,x15 mov x10,x16 @@ -2590,7 +2611,7 @@ _ecp_nistz256_mul_by_3: bl __ecp_nistz256_add // ret += a // 2*a+a=3*a ldp x29,x30,[sp],#16 -.long 0xd50323bf // autiasp + AARCH64_VALIDATE_LINK_REGISTER ret @@ -2600,19 +2621,21 @@ _ecp_nistz256_mul_by_3: .align 4 _ecp_nistz256_sub: -.long 0xd503233f // paciasp + AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-16]! add x29,sp,#0 ldp x14,x15,[x1] ldp x16,x17,[x1,#16] - ldr x12,Lpoly+8 - ldr x13,Lpoly+24 + adrp x13,Lpoly@PAGE + add x13,x13,Lpoly@PAGEOFF + ldr x12,[x13,#8] + ldr x13,[x13,#24] bl __ecp_nistz256_sub_from ldp x29,x30,[sp],#16 -.long 0xd50323bf // autiasp + AARCH64_VALIDATE_LINK_REGISTER ret @@ -2621,7 +2644,7 @@ _ecp_nistz256_sub: .align 4 _ecp_nistz256_neg: -.long 0xd503233f // paciasp + AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-16]! add x29,sp,#0 @@ -2630,13 +2653,15 @@ _ecp_nistz256_neg: mov x15,xzr mov x16,xzr mov x17,xzr - ldr x12,Lpoly+8 - ldr x13,Lpoly+24 + adrp x13,Lpoly@PAGE + add x13,x13,Lpoly@PAGEOFF + ldr x12,[x13,#8] + ldr x13,[x13,#24] bl __ecp_nistz256_sub_from ldp x29,x30,[sp],#16 -.long 0xd50323bf // autiasp + AARCH64_VALIDATE_LINK_REGISTER ret @@ -3014,7 +3039,7 @@ __ecp_nistz256_div_by_2: .align 5 _ecp_nistz256_point_double: -.long 0xd503233f // paciasp + AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-96]! add x29,sp,#0 stp x19,x20,[sp,#16] @@ -3026,9 +3051,11 @@ Ldouble_shortcut: mov x21,x0 ldp x16,x17,[x1,#48] mov x22,x1 - ldr x12,Lpoly+8 + adrp x13,Lpoly@PAGE + add x13,x13,Lpoly@PAGEOFF + ldr x12,[x13,#8] mov x8,x14 - ldr x13,Lpoly+24 + ldr x13,[x13,#24] mov x9,x15 ldp x4,x5,[x22,#64] // forward load for p256_sqr_mont mov x10,x16 @@ -3149,14 +3176,14 @@ Ldouble_shortcut: ldp x19,x20,[x29,#16] ldp x21,x22,[x29,#32] ldp x29,x30,[sp],#96 -.long 0xd50323bf // autiasp + AARCH64_VALIDATE_LINK_REGISTER ret .globl _ecp_nistz256_point_add .align 5 _ecp_nistz256_point_add: -.long 0xd503233f // paciasp + AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-96]! add x29,sp,#0 stp x19,x20,[sp,#16] @@ -3171,8 +3198,10 @@ _ecp_nistz256_point_add: mov x21,x0 mov x22,x1 mov x23,x2 - ldr x12,Lpoly+8 - ldr x13,Lpoly+24 + adrp x13,Lpoly@PAGE + add x13,x13,Lpoly@PAGEOFF + ldr x12,[x13,#8] + ldr x13,[x13,#24] orr x8,x4,x5 orr x10,x6,x7 orr x25,x8,x10 @@ -3403,14 +3432,14 @@ Ladd_done: ldp x25,x26,[x29,#64] ldp x27,x28,[x29,#80] ldp x29,x30,[sp],#96 -.long 0xd50323bf // autiasp + AARCH64_VALIDATE_LINK_REGISTER ret .globl _ecp_nistz256_point_add_affine .align 5 _ecp_nistz256_point_add_affine: -.long 0xd503233f // paciasp + AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-80]! add x29,sp,#0 stp x19,x20,[sp,#16] @@ -3422,8 +3451,10 @@ _ecp_nistz256_point_add_affine: mov x21,x0 mov x22,x1 mov x23,x2 - ldr x12,Lpoly+8 - ldr x13,Lpoly+24 + adrp x13,Lpoly@PAGE + add x13,x13,Lpoly@PAGEOFF + ldr x12,[x13,#8] + ldr x13,[x13,#24] ldp x4,x5,[x1,#64] // in1_z ldp x6,x7,[x1,#64+16] @@ -3569,7 +3600,8 @@ _ecp_nistz256_point_add_affine: ldp x10,x11,[x23,#0+48] stp x14,x15,[x21,#0] stp x16,x17,[x21,#0+16] - adr x23,Lone_mont-64 + adrp x23,Lone_mont-64@PAGE + add x23,x23,Lone_mont@PAGEOFF-64 ldp x14,x15,[x22,#32] // in1 cmp x24,#0 // ~, remember? ldp x16,x17,[x22,#32+16] @@ -3609,7 +3641,7 @@ _ecp_nistz256_point_add_affine: ldp x23,x24,[x29,#48] ldp x25,x26,[x29,#64] ldp x29,x30,[sp],#80 -.long 0xd50323bf // autiasp + AARCH64_VALIDATE_LINK_REGISTER ret //////////////////////////////////////////////////////////////////////// @@ -3619,13 +3651,16 @@ _ecp_nistz256_point_add_affine: .align 4 _ecp_nistz256_ord_mul_mont: + AARCH64_VALID_CALL_TARGET + // Armv8.3-A PAuth: even though x30 is pushed to stack it is not popped later. stp x29,x30,[sp,#-64]! add x29,sp,#0 stp x19,x20,[sp,#16] stp x21,x22,[sp,#32] stp x23,x24,[sp,#48] - adr x23,Lord + adrp x23,Lord@PAGE + add x23,x23,Lord@PAGEOFF ldr x3,[x2] // bp[0] ldp x4,x5,[x1] ldp x6,x7,[x1,#16] @@ -3827,13 +3862,16 @@ _ecp_nistz256_ord_mul_mont: .align 4 _ecp_nistz256_ord_sqr_mont: + AARCH64_VALID_CALL_TARGET + // Armv8.3-A PAuth: even though x30 is pushed to stack it is not popped later. stp x29,x30,[sp,#-64]! add x29,sp,#0 stp x19,x20,[sp,#16] stp x21,x22,[sp,#32] stp x23,x24,[sp,#48] - adr x23,Lord + adrp x23,Lord@PAGE + add x23,x23,Lord@PAGEOFF ldp x4,x5,[x1] ldp x6,x7,[x1,#16] @@ -4015,6 +4053,8 @@ Loop_ord_sqr: .align 4 _ecp_nistz256_scatter_w5: + AARCH64_VALID_CALL_TARGET + // Armv8.3-A PAuth: even though x30 is pushed to stack it is not popped later. stp x29,x30,[sp,#-16]! add x29,sp,#0 @@ -4077,6 +4117,8 @@ _ecp_nistz256_scatter_w5: .align 4 _ecp_nistz256_gather_w5: + AARCH64_VALID_CALL_TARGET + // Armv8.3-A PAuth: even though x30 is pushed to stack it is not popped later. stp x29,x30,[sp,#-16]! add x29,sp,#0 @@ -4154,6 +4196,8 @@ _ecp_nistz256_gather_w5: .align 4 _ecp_nistz256_scatter_w7: + AARCH64_VALID_CALL_TARGET + // Armv8.3-A PAuth: even though x30 is pushed to stack it is not popped later. stp x29,x30,[sp,#-16]! add x29,sp,#0 @@ -4198,6 +4242,8 @@ Loop_scatter_w7: .align 4 _ecp_nistz256_gather_w7: + AARCH64_VALID_CALL_TARGET + // Armv8.3-A PAuth: even though x30 is pushed to stack it is not popped later. stp x29,x30,[sp,#-16]! add x29,sp,#0 diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/crypto/ec/ecp_sm2p256-armv8.S b/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/crypto/ec/ecp_sm2p256-armv8.S new file mode 100644 index 00000000000000..1eae4264d6f54d --- /dev/null +++ b/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/crypto/ec/ecp_sm2p256-armv8.S @@ -0,0 +1,836 @@ +#include "arm_arch.h" + +.section __TEXT,__const + +.align 5 +// The polynomial p +Lpoly: +.quad 0xffffffffffffffff,0xffffffff00000000,0xffffffffffffffff,0xfffffffeffffffff +// The order of polynomial n +Lord: +.quad 0x53bbf40939d54123,0x7203df6b21c6052b,0xffffffffffffffff,0xfffffffeffffffff +// (p + 1) / 2 +Lpoly_div_2: +.quad 0x8000000000000000,0xffffffff80000000,0xffffffffffffffff,0x7fffffff7fffffff +// (n + 1) / 2 +Lord_div_2: +.quad 0xa9ddfa049ceaa092,0xb901efb590e30295,0xffffffffffffffff,0x7fffffff7fffffff + +.text + +// void bn_rshift1(BN_ULONG *a); +.globl _bn_rshift1 + +.align 5 +_bn_rshift1: + AARCH64_VALID_CALL_TARGET + // Load inputs + ldp x7,x8,[x0] + ldp x9,x10,[x0,#16] + + // Right shift + extr x7,x8,x7,#1 + extr x8,x9,x8,#1 + extr x9,x10,x9,#1 + lsr x10,x10,#1 + + // Store results + stp x7,x8,[x0] + stp x9,x10,[x0,#16] + + ret + + +// void bn_sub(BN_ULONG *r, const BN_ULONG *a, const BN_ULONG *b); +.globl _bn_sub + +.align 5 +_bn_sub: + AARCH64_VALID_CALL_TARGET + // Load inputs + ldp x7,x8,[x1] + ldp x9,x10,[x1,#16] + ldp x11,x12,[x2] + ldp x13,x14,[x2,#16] + + // Subtraction + subs x7,x7,x11 + sbcs x8,x8,x12 + sbcs x9,x9,x13 + sbc x10,x10,x14 + + // Store results + stp x7,x8,[x0] + stp x9,x10,[x0,#16] + + ret + + +// void ecp_sm2p256_div_by_2(BN_ULONG *r,const BN_ULONG *a); +.globl _ecp_sm2p256_div_by_2 + +.align 5 +_ecp_sm2p256_div_by_2: + AARCH64_VALID_CALL_TARGET + // Load inputs + ldp x7,x8,[x1] + ldp x9,x10,[x1,#16] + + // Save the least significant bit + mov x3,x7 + + // Right shift 1 + extr x7,x8,x7,#1 + extr x8,x9,x8,#1 + extr x9,x10,x9,#1 + lsr x10,x10,#1 + + // Load mod + adrp x2,Lpoly_div_2@PAGE + add x2,x2,Lpoly_div_2@PAGEOFF + ldp x11,x12,[x2] + ldp x13,x14,[x2,#16] + + // Parity check + tst x3,#1 + csel x11,xzr,x11,eq + csel x12,xzr,x12,eq + csel x13,xzr,x13,eq + csel x14,xzr,x14,eq + + // Add + adds x7,x7,x11 + adcs x8,x8,x12 + adcs x9,x9,x13 + adc x10,x10,x14 + + // Store results + stp x7,x8,[x0] + stp x9,x10,[x0,#16] + ret + + +// void ecp_sm2p256_div_by_2_mod_ord(BN_ULONG *r,const BN_ULONG *a); +.globl _ecp_sm2p256_div_by_2_mod_ord + +.align 5 +_ecp_sm2p256_div_by_2_mod_ord: + AARCH64_VALID_CALL_TARGET + // Load inputs + ldp x7,x8,[x1] + ldp x9,x10,[x1,#16] + + // Save the least significant bit + mov x3,x7 + + // Right shift 1 + extr x7,x8,x7,#1 + extr x8,x9,x8,#1 + extr x9,x10,x9,#1 + lsr x10,x10,#1 + + // Load mod + adrp x2,Lord_div_2@PAGE + add x2,x2,Lord_div_2@PAGEOFF + ldp x11,x12,[x2] + ldp x13,x14,[x2,#16] + + // Parity check + tst x3,#1 + csel x11,xzr,x11,eq + csel x12,xzr,x12,eq + csel x13,xzr,x13,eq + csel x14,xzr,x14,eq + + // Add + adds x7,x7,x11 + adcs x8,x8,x12 + adcs x9,x9,x13 + adc x10,x10,x14 + + // Store results + stp x7,x8,[x0] + stp x9,x10,[x0,#16] + ret + + +// void ecp_sm2p256_mul_by_3(BN_ULONG *r,const BN_ULONG *a); +.globl _ecp_sm2p256_mul_by_3 + +.align 5 +_ecp_sm2p256_mul_by_3: + AARCH64_VALID_CALL_TARGET + // Load inputs + ldp x7,x8,[x1] + ldp x9,x10,[x1,#16] + + // 2*a + adds x7,x7,x7 + adcs x8,x8,x8 + adcs x9,x9,x9 + adcs x10,x10,x10 + adcs x15,xzr,xzr + + mov x3,x7 + mov x4,x8 + mov x5,x9 + mov x6,x10 + + // Sub polynomial + adrp x2,Lpoly@PAGE + add x2,x2,Lpoly@PAGEOFF + ldp x11,x12,[x2] + ldp x13,x14,[x2,#16] + subs x7,x7,x11 + sbcs x8,x8,x12 + sbcs x9,x9,x13 + sbcs x10,x10,x14 + sbcs x15,x15,xzr + + csel x7,x7,x3,cs + csel x8,x8,x4,cs + csel x9,x9,x5,cs + csel x10,x10,x6,cs + eor x15,x15,x15 + + // 3*a + ldp x11,x12,[x1] + ldp x13,x14,[x1,#16] + adds x7,x7,x11 + adcs x8,x8,x12 + adcs x9,x9,x13 + adcs x10,x10,x14 + adcs x15,xzr,xzr + + mov x3,x7 + mov x4,x8 + mov x5,x9 + mov x6,x10 + + // Sub polynomial + adrp x2,Lpoly@PAGE + add x2,x2,Lpoly@PAGEOFF + ldp x11,x12,[x2] + ldp x13,x14,[x2,#16] + subs x7,x7,x11 + sbcs x8,x8,x12 + sbcs x9,x9,x13 + sbcs x10,x10,x14 + sbcs x15,x15,xzr + + csel x7,x7,x3,cs + csel x8,x8,x4,cs + csel x9,x9,x5,cs + csel x10,x10,x6,cs + + // Store results + stp x7,x8,[x0] + stp x9,x10,[x0,#16] + + ret + + +// void ecp_sm2p256_add(BN_ULONG *r,const BN_ULONG *a,const BN_ULONG *b); +.globl _ecp_sm2p256_add + +.align 5 +_ecp_sm2p256_add: + AARCH64_VALID_CALL_TARGET + // Load inputs + ldp x7,x8,[x1] + ldp x9,x10,[x1,#16] + ldp x11,x12,[x2] + ldp x13,x14,[x2,#16] + + // Addition + adds x7,x7,x11 + adcs x8,x8,x12 + adcs x9,x9,x13 + adcs x10,x10,x14 + adc x15,xzr,xzr + + // Load polynomial + adrp x2,Lpoly@PAGE + add x2,x2,Lpoly@PAGEOFF + ldp x11,x12,[x2] + ldp x13,x14,[x2,#16] + + // Backup Addition + mov x3,x7 + mov x4,x8 + mov x5,x9 + mov x6,x10 + + // Sub polynomial + subs x3,x3,x11 + sbcs x4,x4,x12 + sbcs x5,x5,x13 + sbcs x6,x6,x14 + sbcs x15,x15,xzr + + // Select based on carry + csel x7,x7,x3,cc + csel x8,x8,x4,cc + csel x9,x9,x5,cc + csel x10,x10,x6,cc + + // Store results + stp x7,x8,[x0] + stp x9,x10,[x0,#16] + ret + + +// void ecp_sm2p256_sub(BN_ULONG *r,const BN_ULONG *a,const BN_ULONG *b); +.globl _ecp_sm2p256_sub + +.align 5 +_ecp_sm2p256_sub: + AARCH64_VALID_CALL_TARGET + // Load inputs + ldp x7,x8,[x1] + ldp x9,x10,[x1,#16] + ldp x11,x12,[x2] + ldp x13,x14,[x2,#16] + + // Subtraction + subs x7,x7,x11 + sbcs x8,x8,x12 + sbcs x9,x9,x13 + sbcs x10,x10,x14 + sbc x15,xzr,xzr + + // Load polynomial + adrp x2,Lpoly@PAGE + add x2,x2,Lpoly@PAGEOFF + ldp x11,x12,[x2] + ldp x13,x14,[x2,#16] + + // Backup subtraction + mov x3,x7 + mov x4,x8 + mov x5,x9 + mov x6,x10 + + // Add polynomial + adds x3,x3,x11 + adcs x4,x4,x12 + adcs x5,x5,x13 + adcs x6,x6,x14 + tst x15,x15 + + // Select based on carry + csel x7,x7,x3,eq + csel x8,x8,x4,eq + csel x9,x9,x5,eq + csel x10,x10,x6,eq + + // Store results + stp x7,x8,[x0] + stp x9,x10,[x0,#16] + ret + + +// void ecp_sm2p256_sub_mod_ord(BN_ULONG *r,const BN_ULONG *a,const BN_ULONG *b); +.globl _ecp_sm2p256_sub_mod_ord + +.align 5 +_ecp_sm2p256_sub_mod_ord: + AARCH64_VALID_CALL_TARGET + // Load inputs + ldp x7,x8,[x1] + ldp x9,x10,[x1,#16] + ldp x11,x12,[x2] + ldp x13,x14,[x2,#16] + + // Subtraction + subs x7,x7,x11 + sbcs x8,x8,x12 + sbcs x9,x9,x13 + sbcs x10,x10,x14 + sbc x15,xzr,xzr + + // Load polynomial + adrp x2,Lord@PAGE + add x2,x2,Lord@PAGEOFF + ldp x11,x12,[x2] + ldp x13,x14,[x2,#16] + + // Backup subtraction + mov x3,x7 + mov x4,x8 + mov x5,x9 + mov x6,x10 + + // Add polynomial + adds x3,x3,x11 + adcs x4,x4,x12 + adcs x5,x5,x13 + adcs x6,x6,x14 + tst x15,x15 + + // Select based on carry + csel x7,x7,x3,eq + csel x8,x8,x4,eq + csel x9,x9,x5,eq + csel x10,x10,x6,eq + + // Store results + stp x7,x8,[x0] + stp x9,x10,[x0,#16] + ret + + +.macro RDC + // a = | s7 | ... | s0 |, where si are 64-bit quantities + // = |a15|a14| ... |a1|a0|, where ai are 32-bit quantities + // | s7 | s6 | s5 | s4 | + // | a15 | a14 | a13 | a12 | a11 | a10 | a9 | a8 | + // | s3 | s2 | s1 | s0 | + // | a7 | a6 | a5 | a4 | a3 | a2 | a1 | a0 | + // ================================================= + // | a8 | a11 | a10 | a9 | a8 | 0 | s4 | (+) + // | a9 | a15 | s6 | a11 | 0 | a10 | a9 | (+) + // | a10 | 0 | a14 | a13 | a12 | 0 | s5 | (+) + // | a11 | 0 | s7 | a13 | 0 | a12 | a11 | (+) + // | a12 | 0 | s7 | a13 | 0 | s6 | (+) + // | a12 | 0 | 0 | a15 | a14 | 0 | a14 | a13 | (+) + // | a13 | 0 | 0 | 0 | a15 | 0 | a14 | a13 | (+) + // | a13 | 0 | 0 | 0 | 0 | 0 | s7 | (+) + // | a14 | 0 | 0 | 0 | 0 | 0 | s7 | (+) + // | a14 | 0 | 0 | 0 | 0 | 0 | 0 | a15 | (+) + // | a15 | 0 | 0 | 0 | 0 | 0 | 0 | a15 | (+) + // | a15 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | (+) + // | s7 | 0 | 0 | 0 | 0 | 0 | 0 | (+) + // | 0 | 0 | 0 | 0 | 0 | a8 | 0 | 0 | (-) + // | 0 | 0 | 0 | 0 | 0 | a9 | 0 | 0 | (-) + // | 0 | 0 | 0 | 0 | 0 | a13 | 0 | 0 | (-) + // | 0 | 0 | 0 | 0 | 0 | a14 | 0 | 0 | (-) + // | U[7]| U[6]| U[5]| U[4]| U[3]| U[2]| U[1]| U[0]| + // | V[3] | V[2] | V[1] | V[0] | + + // 1. 64-bit addition + // t2=s6+s7+s7 + adds x5,x13,x14 + adcs x4,xzr,xzr + adds x5,x5,x14 + adcs x4,x4,xzr + // t3=s4+s5+t2 + adds x6,x11,x5 + adcs x15,x4,xzr + adds x6,x6,x12 + adcs x15,x15,xzr + // sum + adds x7,x7,x6 + adcs x8,x8,x15 + adcs x9,x9,x5 + adcs x10,x10,x14 + adcs x3,xzr,xzr + adds x10,x10,x4 + adcs x3,x3,xzr + + stp x7,x8,[sp,#32] + stp x9,x10,[sp,#48] + + // 2. 64-bit to 32-bit spread + mov x4,#0xffffffff + mov x7,x11 + mov x8,x12 + mov x9,x13 + mov x10,x14 + and x7,x7,x4 // a8 + and x8,x8,x4 // a10 + and x9,x9,x4 // a12 + and x10,x10,x4 // a14 + lsr x11,x11,#32 // a9 + lsr x12,x12,#32 // a11 + lsr x13,x13,#32 // a13 + lsr x14,x14,#32 // a15 + + // 3. 32-bit addition + add x4,x10,x9 // t1 <- a12 + a14 + add x5,x14,x13 // t2 <- a13 + a15 + add x6,x7,x11 // t3 <- a8 + a9 + add x15,x10,x8 // t4 <- a10 + a14 + add x14,x14,x12 // a15 <- a11 + a15 + add x9,x5,x4 // a12 <- a12 + a13 + a14 + a15 + add x8,x8,x9 // a10 <- a10 + a12 + a13 + a14 + a15 + add x8,x8,x9 // a10 <- a10 + 2*(a12 + a13 + a14 + a15) + add x8,x8,x6 // a10 <- a8 + a9 + a10 + 2*(a12 + a13 + a14 + a15) + add x8,x8,x12 // a10 <- a8 + a9 + a10 + a11 + 2*(a12 + a13 + a14 + a15) + add x9,x9,x13 // a12 <- a12 + 2*a13 + a14 + a15 + add x9,x9,x12 // a12 <- a11 + a12 + 2*a13 + a14 + a15 + add x9,x9,x7 // a12 <- a8 + a11 + a12 + 2*a13 + a14 + a15 + add x6,x6,x10 // t3 <- a8 + a9 + a14 + add x6,x6,x13 // t3 <- a8 + a9 + a13 + a14 + add x11,x11,x5 // a9 <- a9 + a13 + a15 + add x12,x12,x11 // a11 <- a9 + a11 + a13 + a15 + add x12,x12,x5 // a11 <- a9 + a11 + 2*(a13 + a15) + add x4,x4,x15 // t1 <- a10 + a12 + 2*a14 + + // U[0] s5 a9 + a11 + 2*(a13 + a15) + // U[1] t1 a10 + a12 + 2*a14 + // U[2] -t3 a8 + a9 + a13 + a14 + // U[3] s2 a8 + a11 + a12 + 2*a13 + a14 + a15 + // U[4] s4 a9 + a13 + a15 + // U[5] t4 a10 + a14 + // U[6] s7 a11 + a15 + // U[7] s1 a8 + a9 + a10 + a11 + 2*(a12 + a13 + a14 + a15) + + // 4. 32-bit to 64-bit + lsl x7,x4,#32 + extr x4,x9,x4,#32 + extr x9,x15,x9,#32 + extr x15,x8,x15,#32 + lsr x8,x8,#32 + + // 5. 64-bit addition + adds x12,x12,x7 + adcs x4,x4,xzr + adcs x11,x11,x9 + adcs x14,x14,x15 + adcs x3,x3,x8 + + // V[0] s5 + // V[1] t1 + // V[2] s4 + // V[3] s7 + // carry t0 + // sub t3 + + // 5. Process s0-s3 + ldp x7,x8,[sp,#32] + ldp x9,x10,[sp,#48] + // add with V0-V3 + adds x7,x7,x12 + adcs x8,x8,x4 + adcs x9,x9,x11 + adcs x10,x10,x14 + adcs x3,x3,xzr + // sub with t3 + subs x8,x8,x6 + sbcs x9,x9,xzr + sbcs x10,x10,xzr + sbcs x3,x3,xzr + + // 6. MOD + // First Mod + lsl x4,x3,#32 + subs x5,x4,x3 + + adds x7,x7,x3 + adcs x8,x8,x5 + adcs x9,x9,xzr + adcs x10,x10,x4 + + // Last Mod + // return y - p if y > p else y + mov x11,x7 + mov x12,x8 + mov x13,x9 + mov x14,x10 + + adrp x3,Lpoly@PAGE + add x3,x3,Lpoly@PAGEOFF + ldp x4,x5,[x3] + ldp x6,x15,[x3,#16] + + adcs x16,xzr,xzr + + subs x7,x7,x4 + sbcs x8,x8,x5 + sbcs x9,x9,x6 + sbcs x10,x10,x15 + sbcs x16,x16,xzr + + csel x7,x7,x11,cs + csel x8,x8,x12,cs + csel x9,x9,x13,cs + csel x10,x10,x14,cs + +.endm + +// void ecp_sm2p256_mul(BN_ULONG *r, const BN_ULONG *a, const BN_ULONG *b); +.globl _ecp_sm2p256_mul + +.align 5 +_ecp_sm2p256_mul: + AARCH64_SIGN_LINK_REGISTER + // Store scalar registers + stp x29,x30,[sp,#-80]! + add x29,sp,#0 + stp x16,x17,[sp,#16] + stp x19,x20,[sp,#64] + + // Load inputs + ldp x7,x8,[x1] + ldp x9,x10,[x1,#16] + ldp x11,x12,[x2] + ldp x13,x14,[x2,#16] + +// ### multiplication ### + // ======================== + // s3 s2 s1 s0 + // * s7 s6 s5 s4 + // ------------------------ + // + s0 s0 s0 s0 + // * * * * + // s7 s6 s5 s4 + // s1 s1 s1 s1 + // * * * * + // s7 s6 s5 s4 + // s2 s2 s2 s2 + // * * * * + // s7 s6 s5 s4 + // s3 s3 s3 s3 + // * * * * + // s7 s6 s5 s4 + // ------------------------ + // s7 s6 s5 s4 s3 s2 s1 s0 + // ======================== + +// ### s0*s4 ### + mul x16,x7,x11 + umulh x5,x7,x11 + +// ### s1*s4 + s0*s5 ### + mul x3,x8,x11 + umulh x4,x8,x11 + adds x5,x5,x3 + adcs x6,x4,xzr + + mul x3,x7,x12 + umulh x4,x7,x12 + adds x5,x5,x3 + adcs x6,x6,x4 + adcs x15,xzr,xzr + +// ### s2*s4 + s1*s5 + s0*s6 ### + mul x3,x9,x11 + umulh x4,x9,x11 + adds x6,x6,x3 + adcs x15,x15,x4 + + mul x3,x8,x12 + umulh x4,x8,x12 + adds x6,x6,x3 + adcs x15,x15,x4 + adcs x17,xzr,xzr + + mul x3,x7,x13 + umulh x4,x7,x13 + adds x6,x6,x3 + adcs x15,x15,x4 + adcs x17,x17,xzr + +// ### s3*s4 + s2*s5 + s1*s6 + s0*s7 ### + mul x3,x10,x11 + umulh x4,x10,x11 + adds x15,x15,x3 + adcs x17,x17,x4 + adcs x19,xzr,xzr + + mul x3,x9,x12 + umulh x4,x9,x12 + adds x15,x15,x3 + adcs x17,x17,x4 + adcs x19,x19,xzr + + mul x3,x8,x13 + umulh x4,x8,x13 + adds x15,x15,x3 + adcs x17,x17,x4 + adcs x19,x19,xzr + + mul x3,x7,x14 + umulh x4,x7,x14 + adds x15,x15,x3 + adcs x17,x17,x4 + adcs x19,x19,xzr + +// ### s3*s5 + s2*s6 + s1*s7 ### + mul x3,x10,x12 + umulh x4,x10,x12 + adds x17,x17,x3 + adcs x19,x19,x4 + adcs x20,xzr,xzr + + mul x3,x9,x13 + umulh x4,x9,x13 + adds x17,x17,x3 + adcs x19,x19,x4 + adcs x20,x20,xzr + + mul x3,x8,x14 + umulh x4,x8,x14 + adds x11,x17,x3 + adcs x19,x19,x4 + adcs x20,x20,xzr + +// ### s3*s6 + s2*s7 ### + mul x3,x10,x13 + umulh x4,x10,x13 + adds x19,x19,x3 + adcs x20,x20,x4 + adcs x17,xzr,xzr + + mul x3,x9,x14 + umulh x4,x9,x14 + adds x12,x19,x3 + adcs x20,x20,x4 + adcs x17,x17,xzr + +// ### s3*s7 ### + mul x3,x10,x14 + umulh x4,x10,x14 + adds x13,x20,x3 + adcs x14,x17,x4 + + mov x7,x16 + mov x8,x5 + mov x9,x6 + mov x10,x15 + + // result of mul: s7 s6 s5 s4 s3 s2 s1 s0 + +// ### Reduction ### + RDC + + stp x7,x8,[x0] + stp x9,x10,[x0,#16] + + // Restore scalar registers + ldp x16,x17,[sp,#16] + ldp x19,x20,[sp,#64] + ldp x29,x30,[sp],#80 + + AARCH64_VALIDATE_LINK_REGISTER + ret + + +// void ecp_sm2p256_sqr(BN_ULONG *r, const BN_ULONG *a); +.globl _ecp_sm2p256_sqr + +.align 5 + +_ecp_sm2p256_sqr: + AARCH64_SIGN_LINK_REGISTER + // Store scalar registers + stp x29,x30,[sp,#-80]! + add x29,sp,#0 + stp x16,x17,[sp,#16] + stp x19,x20,[sp,#64] + + // Load inputs + ldp x11,x12,[x1] + ldp x13,x14,[x1,#16] + +// ### square ### + // ======================== + // s7 s6 s5 s4 + // * s7 s6 s5 s4 + // ------------------------ + // + s4 s4 s4 s4 + // * * * * + // s7 s6 s5 s4 + // s5 s5 s5 s5 + // * * * * + // s7 s6 s5 s4 + // s6 s6 s6 s6 + // * * * * + // s7 s6 s5 s4 + // s7 s7 s7 s7 + // * * * * + // s7 s6 s5 s4 + // ------------------------ + // s7 s6 s5 s4 s3 s2 s1 s0 + // ======================== + +// ### s4*s5 ### + mul x8,x11,x12 + umulh x9,x11,x12 + +// ### s4*s6 ### + mul x3,x13,x11 + umulh x10,x13,x11 + adds x9,x9,x3 + adcs x10,x10,xzr + +// ### s4*s7 + s5*s6 ### + mul x3,x14,x11 + umulh x4,x14,x11 + adds x10,x10,x3 + adcs x7,x4,xzr + + mul x3,x13,x12 + umulh x4,x13,x12 + adds x10,x10,x3 + adcs x7,x7,x4 + adcs x5,xzr,xzr + +// ### s5*s7 ### + mul x3,x14,x12 + umulh x4,x14,x12 + adds x7,x7,x3 + adcs x5,x5,x4 + +// ### s6*s7 ### + mul x3,x14,x13 + umulh x4,x14,x13 + adds x5,x5,x3 + adcs x6,x4,xzr + +// ### 2*(t3,t2,s0,s3,s2,s1) ### + adds x8,x8,x8 + adcs x9,x9,x9 + adcs x10,x10,x10 + adcs x7,x7,x7 + adcs x5,x5,x5 + adcs x6,x6,x6 + adcs x15,xzr,xzr + +// ### s4*s4 ### + mul x16,x11,x11 + umulh x17,x11,x11 + +// ### s5*s5 ### + mul x11,x12,x12 + umulh x12,x12,x12 + +// ### s6*s6 ### + mul x3,x13,x13 + umulh x4,x13,x13 + +// ### s7*s7 ### + mul x19,x14,x14 + umulh x20,x14,x14 + + adds x8,x8,x17 + adcs x9,x9,x11 + adcs x10,x10,x12 + adcs x7,x7,x3 + adcs x5,x5,x4 + adcs x6,x6,x19 + adcs x15,x15,x20 + + mov x11,x7 + mov x7,x16 + mov x12,x5 + mov x13,x6 + mov x14,x15 + + // result of mul: s7 s6 s5 s4 s3 s2 s1 s0 + +// ### Reduction ### + RDC + + stp x7,x8,[x0] + stp x9,x10,[x0,#16] + + // Restore scalar registers + ldp x16,x17,[sp,#16] + ldp x19,x20,[sp,#64] + ldp x29,x30,[sp],#80 + + AARCH64_VALIDATE_LINK_REGISTER + ret + diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/crypto/md5/md5-aarch64.S b/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/crypto/md5/md5-aarch64.S new file mode 100644 index 00000000000000..a075d311de9a3c --- /dev/null +++ b/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/crypto/md5/md5-aarch64.S @@ -0,0 +1,677 @@ +#include "arm_arch.h" + +.text +.globl _ossl_md5_block_asm_data_order + +_ossl_md5_block_asm_data_order: + AARCH64_VALID_CALL_TARGET + // Save all callee-saved registers + stp x19,x20,[sp,#-80]! + stp x21,x22,[sp,#16] + stp x23,x24,[sp,#32] + stp x25,x26,[sp,#48] + stp x27,x28,[sp,#64] + + ldp w10, w11, [x0, #0] // Load MD5 state->A and state->B + ldp w12, w13, [x0, #8] // Load MD5 state->C and state->D +.align 5 +ossl_md5_blocks_loop: + eor x17, x12, x13 // Begin aux function round 1 F(x,y,z)=(((y^z)&x)^z) + and x16, x17, x11 // Continue aux function round 1 F(x,y,z)=(((y^z)&x)^z) + ldp w15, w20, [x1] // Load 2 words of input data0 M[0],M[1] + ldp w3, w21, [x1, #8] // Load 2 words of input data0 M[2],M[3] +#ifdef __AARCH64EB__ + rev w15, w15 + rev w20, w20 + rev w3, w3 + rev w21, w21 +#endif + eor x14, x16, x13 // End aux function round 1 F(x,y,z)=(((y^z)&x)^z) + movz x9, #0xa478 // Load lower half of constant 0xd76aa478 + movk x9, #0xd76a, lsl #16 // Load upper half of constant 0xd76aa478 + add w8, w10, w15 // Add dest value + add w7, w8, w9 // Add constant 0xd76aa478 + add w6, w7, w14 // Add aux function result + ror w6, w6, #25 // Rotate left s=7 bits + eor x5, x11, x12 // Begin aux function round 1 F(x,y,z)=(((y^z)&x)^z) + add w4, w11, w6 // Add X parameter round 1 A=FF(A, B, C, D, 0xd76aa478, s=7, M[0]) + and x8, x5, x4 // Continue aux function round 1 F(x,y,z)=(((y^z)&x)^z) + eor x17, x8, x12 // End aux function round 1 F(x,y,z)=(((y^z)&x)^z) + movz x16, #0xb756 // Load lower half of constant 0xe8c7b756 + movk x16, #0xe8c7, lsl #16 // Load upper half of constant 0xe8c7b756 + add w9, w13, w20 // Add dest value + add w7, w9, w16 // Add constant 0xe8c7b756 + add w14, w7, w17 // Add aux function result + ror w14, w14, #20 // Rotate left s=12 bits + eor x6, x4, x11 // Begin aux function round 1 F(x,y,z)=(((y^z)&x)^z) + add w5, w4, w14 // Add X parameter round 1 D=FF(D, A, B, C, 0xe8c7b756, s=12, M[1]) + and x8, x6, x5 // Continue aux function round 1 F(x,y,z)=(((y^z)&x)^z) + eor x9, x8, x11 // End aux function round 1 F(x,y,z)=(((y^z)&x)^z) + movz x16, #0x70db // Load lower half of constant 0x242070db + movk x16, #0x2420, lsl #16 // Load upper half of constant 0x242070db + add w7, w12, w3 // Add dest value + add w17, w7, w16 // Add constant 0x242070db + add w14, w17, w9 // Add aux function result + ror w14, w14, #15 // Rotate left s=17 bits + eor x6, x5, x4 // Begin aux function round 1 F(x,y,z)=(((y^z)&x)^z) + add w8, w5, w14 // Add X parameter round 1 C=FF(C, D, A, B, 0x242070db, s=17, M[2]) + and x7, x6, x8 // Continue aux function round 1 F(x,y,z)=(((y^z)&x)^z) + eor x16, x7, x4 // End aux function round 1 F(x,y,z)=(((y^z)&x)^z) + movz x9, #0xceee // Load lower half of constant 0xc1bdceee + movk x9, #0xc1bd, lsl #16 // Load upper half of constant 0xc1bdceee + add w14, w11, w21 // Add dest value + add w6, w14, w9 // Add constant 0xc1bdceee + add w7, w6, w16 // Add aux function result + ror w7, w7, #10 // Rotate left s=22 bits + eor x17, x8, x5 // Begin aux function round 1 F(x,y,z)=(((y^z)&x)^z) + add w9, w8, w7 // Add X parameter round 1 B=FF(B, C, D, A, 0xc1bdceee, s=22, M[3]) + ldp w14, w22, [x1, #16] // Load 2 words of input data0 M[4],M[5] + ldp w7, w23, [x1, #24] // Load 2 words of input data0 M[6],M[7] +#ifdef __AARCH64EB__ + rev w14, w14 + rev w22, w22 + rev w7, w7 + rev w23, w23 +#endif + and x16, x17, x9 // Continue aux function round 1 F(x,y,z)=(((y^z)&x)^z) + eor x6, x16, x5 // End aux function round 1 F(x,y,z)=(((y^z)&x)^z) + movz x16, #0xfaf // Load lower half of constant 0xf57c0faf + movk x16, #0xf57c, lsl #16 // Load upper half of constant 0xf57c0faf + add w17, w4, w14 // Add dest value + add w16, w17, w16 // Add constant 0xf57c0faf + add w4, w16, w6 // Add aux function result + ror w4, w4, #25 // Rotate left s=7 bits + eor x16, x9, x8 // Begin aux function round 1 F(x,y,z)=(((y^z)&x)^z) + add w17, w9, w4 // Add X parameter round 1 A=FF(A, B, C, D, 0xf57c0faf, s=7, M[4]) + and x16, x16, x17 // Continue aux function round 1 F(x,y,z)=(((y^z)&x)^z) + eor x6, x16, x8 // End aux function round 1 F(x,y,z)=(((y^z)&x)^z) + movz x4, #0xc62a // Load lower half of constant 0x4787c62a + movk x4, #0x4787, lsl #16 // Load upper half of constant 0x4787c62a + add w16, w5, w22 // Add dest value + add w16, w16, w4 // Add constant 0x4787c62a + add w5, w16, w6 // Add aux function result + ror w5, w5, #20 // Rotate left s=12 bits + eor x4, x17, x9 // Begin aux function round 1 F(x,y,z)=(((y^z)&x)^z) + add w19, w17, w5 // Add X parameter round 1 D=FF(D, A, B, C, 0x4787c62a, s=12, M[5]) + and x6, x4, x19 // Continue aux function round 1 F(x,y,z)=(((y^z)&x)^z) + eor x5, x6, x9 // End aux function round 1 F(x,y,z)=(((y^z)&x)^z) + movz x4, #0x4613 // Load lower half of constant 0xa8304613 + movk x4, #0xa830, lsl #16 // Load upper half of constant 0xa8304613 + add w6, w8, w7 // Add dest value + add w8, w6, w4 // Add constant 0xa8304613 + add w4, w8, w5 // Add aux function result + ror w4, w4, #15 // Rotate left s=17 bits + eor x6, x19, x17 // Begin aux function round 1 F(x,y,z)=(((y^z)&x)^z) + add w8, w19, w4 // Add X parameter round 1 C=FF(C, D, A, B, 0xa8304613, s=17, M[6]) + and x5, x6, x8 // Continue aux function round 1 F(x,y,z)=(((y^z)&x)^z) + eor x4, x5, x17 // End aux function round 1 F(x,y,z)=(((y^z)&x)^z) + movz x6, #0x9501 // Load lower half of constant 0xfd469501 + movk x6, #0xfd46, lsl #16 // Load upper half of constant 0xfd469501 + add w9, w9, w23 // Add dest value + add w5, w9, w6 // Add constant 0xfd469501 + add w9, w5, w4 // Add aux function result + ror w9, w9, #10 // Rotate left s=22 bits + eor x6, x8, x19 // Begin aux function round 1 F(x,y,z)=(((y^z)&x)^z) + add w4, w8, w9 // Add X parameter round 1 B=FF(B, C, D, A, 0xfd469501, s=22, M[7]) + ldp w5, w24, [x1, #32] // Load 2 words of input data0 M[8],M[9] + ldp w16, w25, [x1, #40] // Load 2 words of input data0 M[10],M[11] +#ifdef __AARCH64EB__ + rev w5, w5 + rev w24, w24 + rev w16, w16 + rev w25, w25 +#endif + and x9, x6, x4 // Continue aux function round 1 F(x,y,z)=(((y^z)&x)^z) + eor x6, x9, x19 // End aux function round 1 F(x,y,z)=(((y^z)&x)^z) + movz x9, #0x98d8 // Load lower half of constant 0x698098d8 + movk x9, #0x6980, lsl #16 // Load upper half of constant 0x698098d8 + add w17, w17, w5 // Add dest value + add w9, w17, w9 // Add constant 0x698098d8 + add w17, w9, w6 // Add aux function result + ror w17, w17, #25 // Rotate left s=7 bits + eor x9, x4, x8 // Begin aux function round 1 F(x,y,z)=(((y^z)&x)^z) + add w6, w4, w17 // Add X parameter round 1 A=FF(A, B, C, D, 0x698098d8, s=7, M[8]) + and x17, x9, x6 // Continue aux function round 1 F(x,y,z)=(((y^z)&x)^z) + eor x9, x17, x8 // End aux function round 1 F(x,y,z)=(((y^z)&x)^z) + movz x17, #0xf7af // Load lower half of constant 0x8b44f7af + movk x17, #0x8b44, lsl #16 // Load upper half of constant 0x8b44f7af + add w19, w19, w24 // Add dest value + add w17, w19, w17 // Add constant 0x8b44f7af + add w19, w17, w9 // Add aux function result + ror w19, w19, #20 // Rotate left s=12 bits + eor x9, x6, x4 // Begin aux function round 1 F(x,y,z)=(((y^z)&x)^z) + add w17, w6, w19 // Add X parameter round 1 D=FF(D, A, B, C, 0x8b44f7af, s=12, M[9]) + and x9, x9, x17 // Continue aux function round 1 F(x,y,z)=(((y^z)&x)^z) + eor x9, x9, x4 // End aux function round 1 F(x,y,z)=(((y^z)&x)^z) + movz x11, #0x5bb1 // Load lower half of constant 0xffff5bb1 + movk x11, #0xffff, lsl #16 // Load upper half of constant 0xffff5bb1 + add w8, w8, w16 // Add dest value + add w8, w8, w11 // Add constant 0xffff5bb1 + add w8, w8, w9 // Add aux function result + ror w8, w8, #15 // Rotate left s=17 bits + eor x9, x17, x6 // Begin aux function round 1 F(x,y,z)=(((y^z)&x)^z) + add w8, w17, w8 // Add X parameter round 1 C=FF(C, D, A, B, 0xffff5bb1, s=17, M[10]) + and x9, x9, x8 // Continue aux function round 1 F(x,y,z)=(((y^z)&x)^z) + eor x9, x9, x6 // End aux function round 1 F(x,y,z)=(((y^z)&x)^z) + movz x11, #0xd7be // Load lower half of constant 0x895cd7be + movk x11, #0x895c, lsl #16 // Load upper half of constant 0x895cd7be + add w4, w4, w25 // Add dest value + add w4, w4, w11 // Add constant 0x895cd7be + add w9, w4, w9 // Add aux function result + ror w9, w9, #10 // Rotate left s=22 bits + eor x4, x8, x17 // Begin aux function round 1 F(x,y,z)=(((y^z)&x)^z) + add w9, w8, w9 // Add X parameter round 1 B=FF(B, C, D, A, 0x895cd7be, s=22, M[11]) + ldp w11, w26, [x1, #48] // Load 2 words of input data0 M[12],M[13] + ldp w12, w27, [x1, #56] // Load 2 words of input data0 M[14],M[15] +#ifdef __AARCH64EB__ + rev w11, w11 + rev w26, w26 + rev w12, w12 + rev w27, w27 +#endif + and x4, x4, x9 // Continue aux function round 1 F(x,y,z)=(((y^z)&x)^z) + eor x4, x4, x17 // End aux function round 1 F(x,y,z)=(((y^z)&x)^z) + movz x19, #0x1122 // Load lower half of constant 0x6b901122 + movk x19, #0x6b90, lsl #16 // Load upper half of constant 0x6b901122 + add w6, w6, w11 // Add dest value + add w6, w6, w19 // Add constant 0x6b901122 + add w4, w6, w4 // Add aux function result + ror w4, w4, #25 // Rotate left s=7 bits + eor x6, x9, x8 // Begin aux function round 1 F(x,y,z)=(((y^z)&x)^z) + add w4, w9, w4 // Add X parameter round 1 A=FF(A, B, C, D, 0x6b901122, s=7, M[12]) + and x6, x6, x4 // Continue aux function round 1 F(x,y,z)=(((y^z)&x)^z) + eor x6, x6, x8 // End aux function round 1 F(x,y,z)=(((y^z)&x)^z) + movz x19, #0x7193 // Load lower half of constant 0xfd987193 + movk x19, #0xfd98, lsl #16 // Load upper half of constant 0xfd987193 + add w17, w17, w26 // Add dest value + add w17, w17, w19 // Add constant 0xfd987193 + add w17, w17, w6 // Add aux function result + ror w17, w17, #20 // Rotate left s=12 bits + eor x6, x4, x9 // Begin aux function round 1 F(x,y,z)=(((y^z)&x)^z) + add w17, w4, w17 // Add X parameter round 1 D=FF(D, A, B, C, 0xfd987193, s=12, M[13]) + and x6, x6, x17 // Continue aux function round 1 F(x,y,z)=(((y^z)&x)^z) + eor x6, x6, x9 // End aux function round 1 F(x,y,z)=(((y^z)&x)^z) + movz x13, #0x438e // Load lower half of constant 0xa679438e + movk x13, #0xa679, lsl #16 // Load upper half of constant 0xa679438e + add w8, w8, w12 // Add dest value + add w8, w8, w13 // Add constant 0xa679438e + add w8, w8, w6 // Add aux function result + ror w8, w8, #15 // Rotate left s=17 bits + eor x6, x17, x4 // Begin aux function round 1 F(x,y,z)=(((y^z)&x)^z) + add w8, w17, w8 // Add X parameter round 1 C=FF(C, D, A, B, 0xa679438e, s=17, M[14]) + and x6, x6, x8 // Continue aux function round 1 F(x,y,z)=(((y^z)&x)^z) + eor x6, x6, x4 // End aux function round 1 F(x,y,z)=(((y^z)&x)^z) + movz x13, #0x821 // Load lower half of constant 0x49b40821 + movk x13, #0x49b4, lsl #16 // Load upper half of constant 0x49b40821 + add w9, w9, w27 // Add dest value + add w9, w9, w13 // Add constant 0x49b40821 + add w9, w9, w6 // Add aux function result + ror w9, w9, #10 // Rotate left s=22 bits + bic x6, x8, x17 // Aux function round 2 (~z & y) + add w9, w8, w9 // Add X parameter round 1 B=FF(B, C, D, A, 0x49b40821, s=22, M[15]) + movz x13, #0x2562 // Load lower half of constant 0xf61e2562 + movk x13, #0xf61e, lsl #16 // Load upper half of constant 0xf61e2562 + add w4, w4, w20 // Add dest value + add w4, w4, w13 // Add constant 0xf61e2562 + and x13, x9, x17 // Aux function round 2 (x & z) + add w4, w4, w6 // Add (~z & y) + add w4, w4, w13 // Add (x & z) + ror w4, w4, #27 // Rotate left s=5 bits + bic x6, x9, x8 // Aux function round 2 (~z & y) + add w4, w9, w4 // Add X parameter round 2 A=GG(A, B, C, D, 0xf61e2562, s=5, M[1]) + movz x13, #0xb340 // Load lower half of constant 0xc040b340 + movk x13, #0xc040, lsl #16 // Load upper half of constant 0xc040b340 + add w17, w17, w7 // Add dest value + add w17, w17, w13 // Add constant 0xc040b340 + and x13, x4, x8 // Aux function round 2 (x & z) + add w17, w17, w6 // Add (~z & y) + add w17, w17, w13 // Add (x & z) + ror w17, w17, #23 // Rotate left s=9 bits + bic x6, x4, x9 // Aux function round 2 (~z & y) + add w17, w4, w17 // Add X parameter round 2 D=GG(D, A, B, C, 0xc040b340, s=9, M[6]) + movz x13, #0x5a51 // Load lower half of constant 0x265e5a51 + movk x13, #0x265e, lsl #16 // Load upper half of constant 0x265e5a51 + add w8, w8, w25 // Add dest value + add w8, w8, w13 // Add constant 0x265e5a51 + and x13, x17, x9 // Aux function round 2 (x & z) + add w8, w8, w6 // Add (~z & y) + add w8, w8, w13 // Add (x & z) + ror w8, w8, #18 // Rotate left s=14 bits + bic x6, x17, x4 // Aux function round 2 (~z & y) + add w8, w17, w8 // Add X parameter round 2 C=GG(C, D, A, B, 0x265e5a51, s=14, M[11]) + movz x13, #0xc7aa // Load lower half of constant 0xe9b6c7aa + movk x13, #0xe9b6, lsl #16 // Load upper half of constant 0xe9b6c7aa + add w9, w9, w15 // Add dest value + add w9, w9, w13 // Add constant 0xe9b6c7aa + and x13, x8, x4 // Aux function round 2 (x & z) + add w9, w9, w6 // Add (~z & y) + add w9, w9, w13 // Add (x & z) + ror w9, w9, #12 // Rotate left s=20 bits + bic x6, x8, x17 // Aux function round 2 (~z & y) + add w9, w8, w9 // Add X parameter round 2 B=GG(B, C, D, A, 0xe9b6c7aa, s=20, M[0]) + movz x13, #0x105d // Load lower half of constant 0xd62f105d + movk x13, #0xd62f, lsl #16 // Load upper half of constant 0xd62f105d + add w4, w4, w22 // Add dest value + add w4, w4, w13 // Add constant 0xd62f105d + and x13, x9, x17 // Aux function round 2 (x & z) + add w4, w4, w6 // Add (~z & y) + add w4, w4, w13 // Add (x & z) + ror w4, w4, #27 // Rotate left s=5 bits + bic x6, x9, x8 // Aux function round 2 (~z & y) + add w4, w9, w4 // Add X parameter round 2 A=GG(A, B, C, D, 0xd62f105d, s=5, M[5]) + movz x13, #0x1453 // Load lower half of constant 0x2441453 + movk x13, #0x244, lsl #16 // Load upper half of constant 0x2441453 + add w17, w17, w16 // Add dest value + add w17, w17, w13 // Add constant 0x2441453 + and x13, x4, x8 // Aux function round 2 (x & z) + add w17, w17, w6 // Add (~z & y) + add w17, w17, w13 // Add (x & z) + ror w17, w17, #23 // Rotate left s=9 bits + bic x6, x4, x9 // Aux function round 2 (~z & y) + add w17, w4, w17 // Add X parameter round 2 D=GG(D, A, B, C, 0x2441453, s=9, M[10]) + movz x13, #0xe681 // Load lower half of constant 0xd8a1e681 + movk x13, #0xd8a1, lsl #16 // Load upper half of constant 0xd8a1e681 + add w8, w8, w27 // Add dest value + add w8, w8, w13 // Add constant 0xd8a1e681 + and x13, x17, x9 // Aux function round 2 (x & z) + add w8, w8, w6 // Add (~z & y) + add w8, w8, w13 // Add (x & z) + ror w8, w8, #18 // Rotate left s=14 bits + bic x6, x17, x4 // Aux function round 2 (~z & y) + add w8, w17, w8 // Add X parameter round 2 C=GG(C, D, A, B, 0xd8a1e681, s=14, M[15]) + movz x13, #0xfbc8 // Load lower half of constant 0xe7d3fbc8 + movk x13, #0xe7d3, lsl #16 // Load upper half of constant 0xe7d3fbc8 + add w9, w9, w14 // Add dest value + add w9, w9, w13 // Add constant 0xe7d3fbc8 + and x13, x8, x4 // Aux function round 2 (x & z) + add w9, w9, w6 // Add (~z & y) + add w9, w9, w13 // Add (x & z) + ror w9, w9, #12 // Rotate left s=20 bits + bic x6, x8, x17 // Aux function round 2 (~z & y) + add w9, w8, w9 // Add X parameter round 2 B=GG(B, C, D, A, 0xe7d3fbc8, s=20, M[4]) + movz x13, #0xcde6 // Load lower half of constant 0x21e1cde6 + movk x13, #0x21e1, lsl #16 // Load upper half of constant 0x21e1cde6 + add w4, w4, w24 // Add dest value + add w4, w4, w13 // Add constant 0x21e1cde6 + and x13, x9, x17 // Aux function round 2 (x & z) + add w4, w4, w6 // Add (~z & y) + add w4, w4, w13 // Add (x & z) + ror w4, w4, #27 // Rotate left s=5 bits + bic x6, x9, x8 // Aux function round 2 (~z & y) + add w4, w9, w4 // Add X parameter round 2 A=GG(A, B, C, D, 0x21e1cde6, s=5, M[9]) + movz x13, #0x7d6 // Load lower half of constant 0xc33707d6 + movk x13, #0xc337, lsl #16 // Load upper half of constant 0xc33707d6 + add w17, w17, w12 // Add dest value + add w17, w17, w13 // Add constant 0xc33707d6 + and x13, x4, x8 // Aux function round 2 (x & z) + add w17, w17, w6 // Add (~z & y) + add w17, w17, w13 // Add (x & z) + ror w17, w17, #23 // Rotate left s=9 bits + bic x6, x4, x9 // Aux function round 2 (~z & y) + add w17, w4, w17 // Add X parameter round 2 D=GG(D, A, B, C, 0xc33707d6, s=9, M[14]) + movz x13, #0xd87 // Load lower half of constant 0xf4d50d87 + movk x13, #0xf4d5, lsl #16 // Load upper half of constant 0xf4d50d87 + add w8, w8, w21 // Add dest value + add w8, w8, w13 // Add constant 0xf4d50d87 + and x13, x17, x9 // Aux function round 2 (x & z) + add w8, w8, w6 // Add (~z & y) + add w8, w8, w13 // Add (x & z) + ror w8, w8, #18 // Rotate left s=14 bits + bic x6, x17, x4 // Aux function round 2 (~z & y) + add w8, w17, w8 // Add X parameter round 2 C=GG(C, D, A, B, 0xf4d50d87, s=14, M[3]) + movz x13, #0x14ed // Load lower half of constant 0x455a14ed + movk x13, #0x455a, lsl #16 // Load upper half of constant 0x455a14ed + add w9, w9, w5 // Add dest value + add w9, w9, w13 // Add constant 0x455a14ed + and x13, x8, x4 // Aux function round 2 (x & z) + add w9, w9, w6 // Add (~z & y) + add w9, w9, w13 // Add (x & z) + ror w9, w9, #12 // Rotate left s=20 bits + bic x6, x8, x17 // Aux function round 2 (~z & y) + add w9, w8, w9 // Add X parameter round 2 B=GG(B, C, D, A, 0x455a14ed, s=20, M[8]) + movz x13, #0xe905 // Load lower half of constant 0xa9e3e905 + movk x13, #0xa9e3, lsl #16 // Load upper half of constant 0xa9e3e905 + add w4, w4, w26 // Add dest value + add w4, w4, w13 // Add constant 0xa9e3e905 + and x13, x9, x17 // Aux function round 2 (x & z) + add w4, w4, w6 // Add (~z & y) + add w4, w4, w13 // Add (x & z) + ror w4, w4, #27 // Rotate left s=5 bits + bic x6, x9, x8 // Aux function round 2 (~z & y) + add w4, w9, w4 // Add X parameter round 2 A=GG(A, B, C, D, 0xa9e3e905, s=5, M[13]) + movz x13, #0xa3f8 // Load lower half of constant 0xfcefa3f8 + movk x13, #0xfcef, lsl #16 // Load upper half of constant 0xfcefa3f8 + add w17, w17, w3 // Add dest value + add w17, w17, w13 // Add constant 0xfcefa3f8 + and x13, x4, x8 // Aux function round 2 (x & z) + add w17, w17, w6 // Add (~z & y) + add w17, w17, w13 // Add (x & z) + ror w17, w17, #23 // Rotate left s=9 bits + bic x6, x4, x9 // Aux function round 2 (~z & y) + add w17, w4, w17 // Add X parameter round 2 D=GG(D, A, B, C, 0xfcefa3f8, s=9, M[2]) + movz x13, #0x2d9 // Load lower half of constant 0x676f02d9 + movk x13, #0x676f, lsl #16 // Load upper half of constant 0x676f02d9 + add w8, w8, w23 // Add dest value + add w8, w8, w13 // Add constant 0x676f02d9 + and x13, x17, x9 // Aux function round 2 (x & z) + add w8, w8, w6 // Add (~z & y) + add w8, w8, w13 // Add (x & z) + ror w8, w8, #18 // Rotate left s=14 bits + bic x6, x17, x4 // Aux function round 2 (~z & y) + add w8, w17, w8 // Add X parameter round 2 C=GG(C, D, A, B, 0x676f02d9, s=14, M[7]) + movz x13, #0x4c8a // Load lower half of constant 0x8d2a4c8a + movk x13, #0x8d2a, lsl #16 // Load upper half of constant 0x8d2a4c8a + add w9, w9, w11 // Add dest value + add w9, w9, w13 // Add constant 0x8d2a4c8a + and x13, x8, x4 // Aux function round 2 (x & z) + add w9, w9, w6 // Add (~z & y) + add w9, w9, w13 // Add (x & z) + eor x6, x8, x17 // Begin aux function round 3 H(x,y,z)=(x^y^z) + ror w9, w9, #12 // Rotate left s=20 bits + movz x10, #0x3942 // Load lower half of constant 0xfffa3942 + add w9, w8, w9 // Add X parameter round 2 B=GG(B, C, D, A, 0x8d2a4c8a, s=20, M[12]) + movk x10, #0xfffa, lsl #16 // Load upper half of constant 0xfffa3942 + add w4, w4, w22 // Add dest value + eor x6, x6, x9 // End aux function round 3 H(x,y,z)=(x^y^z) + add w4, w4, w10 // Add constant 0xfffa3942 + add w4, w4, w6 // Add aux function result + ror w4, w4, #28 // Rotate left s=4 bits + eor x6, x9, x8 // Begin aux function round 3 H(x,y,z)=(x^y^z) + movz x10, #0xf681 // Load lower half of constant 0x8771f681 + add w4, w9, w4 // Add X parameter round 3 A=HH(A, B, C, D, 0xfffa3942, s=4, M[5]) + movk x10, #0x8771, lsl #16 // Load upper half of constant 0x8771f681 + add w17, w17, w5 // Add dest value + eor x6, x6, x4 // End aux function round 3 H(x,y,z)=(x^y^z) + add w17, w17, w10 // Add constant 0x8771f681 + add w17, w17, w6 // Add aux function result + eor x6, x4, x9 // Begin aux function round 3 H(x,y,z)=(x^y^z) + ror w17, w17, #21 // Rotate left s=11 bits + movz x13, #0x6122 // Load lower half of constant 0x6d9d6122 + add w17, w4, w17 // Add X parameter round 3 D=HH(D, A, B, C, 0x8771f681, s=11, M[8]) + movk x13, #0x6d9d, lsl #16 // Load upper half of constant 0x6d9d6122 + add w8, w8, w25 // Add dest value + eor x6, x6, x17 // End aux function round 3 H(x,y,z)=(x^y^z) + add w8, w8, w13 // Add constant 0x6d9d6122 + add w8, w8, w6 // Add aux function result + ror w8, w8, #16 // Rotate left s=16 bits + eor x6, x17, x4 // Begin aux function round 3 H(x,y,z)=(x^y^z) + movz x13, #0x380c // Load lower half of constant 0xfde5380c + add w8, w17, w8 // Add X parameter round 3 C=HH(C, D, A, B, 0x6d9d6122, s=16, M[11]) + movk x13, #0xfde5, lsl #16 // Load upper half of constant 0xfde5380c + add w9, w9, w12 // Add dest value + eor x6, x6, x8 // End aux function round 3 H(x,y,z)=(x^y^z) + add w9, w9, w13 // Add constant 0xfde5380c + add w9, w9, w6 // Add aux function result + eor x6, x8, x17 // Begin aux function round 3 H(x,y,z)=(x^y^z) + ror w9, w9, #9 // Rotate left s=23 bits + movz x10, #0xea44 // Load lower half of constant 0xa4beea44 + add w9, w8, w9 // Add X parameter round 3 B=HH(B, C, D, A, 0xfde5380c, s=23, M[14]) + movk x10, #0xa4be, lsl #16 // Load upper half of constant 0xa4beea44 + add w4, w4, w20 // Add dest value + eor x6, x6, x9 // End aux function round 3 H(x,y,z)=(x^y^z) + add w4, w4, w10 // Add constant 0xa4beea44 + add w4, w4, w6 // Add aux function result + ror w4, w4, #28 // Rotate left s=4 bits + eor x6, x9, x8 // Begin aux function round 3 H(x,y,z)=(x^y^z) + movz x10, #0xcfa9 // Load lower half of constant 0x4bdecfa9 + add w4, w9, w4 // Add X parameter round 3 A=HH(A, B, C, D, 0xa4beea44, s=4, M[1]) + movk x10, #0x4bde, lsl #16 // Load upper half of constant 0x4bdecfa9 + add w17, w17, w14 // Add dest value + eor x6, x6, x4 // End aux function round 3 H(x,y,z)=(x^y^z) + add w17, w17, w10 // Add constant 0x4bdecfa9 + add w17, w17, w6 // Add aux function result + eor x6, x4, x9 // Begin aux function round 3 H(x,y,z)=(x^y^z) + ror w17, w17, #21 // Rotate left s=11 bits + movz x13, #0x4b60 // Load lower half of constant 0xf6bb4b60 + add w17, w4, w17 // Add X parameter round 3 D=HH(D, A, B, C, 0x4bdecfa9, s=11, M[4]) + movk x13, #0xf6bb, lsl #16 // Load upper half of constant 0xf6bb4b60 + add w8, w8, w23 // Add dest value + eor x6, x6, x17 // End aux function round 3 H(x,y,z)=(x^y^z) + add w8, w8, w13 // Add constant 0xf6bb4b60 + add w8, w8, w6 // Add aux function result + ror w8, w8, #16 // Rotate left s=16 bits + eor x6, x17, x4 // Begin aux function round 3 H(x,y,z)=(x^y^z) + movz x13, #0xbc70 // Load lower half of constant 0xbebfbc70 + add w8, w17, w8 // Add X parameter round 3 C=HH(C, D, A, B, 0xf6bb4b60, s=16, M[7]) + movk x13, #0xbebf, lsl #16 // Load upper half of constant 0xbebfbc70 + add w9, w9, w16 // Add dest value + eor x6, x6, x8 // End aux function round 3 H(x,y,z)=(x^y^z) + add w9, w9, w13 // Add constant 0xbebfbc70 + add w9, w9, w6 // Add aux function result + eor x6, x8, x17 // Begin aux function round 3 H(x,y,z)=(x^y^z) + ror w9, w9, #9 // Rotate left s=23 bits + movz x10, #0x7ec6 // Load lower half of constant 0x289b7ec6 + add w9, w8, w9 // Add X parameter round 3 B=HH(B, C, D, A, 0xbebfbc70, s=23, M[10]) + movk x10, #0x289b, lsl #16 // Load upper half of constant 0x289b7ec6 + add w4, w4, w26 // Add dest value + eor x6, x6, x9 // End aux function round 3 H(x,y,z)=(x^y^z) + add w4, w4, w10 // Add constant 0x289b7ec6 + add w4, w4, w6 // Add aux function result + ror w4, w4, #28 // Rotate left s=4 bits + eor x6, x9, x8 // Begin aux function round 3 H(x,y,z)=(x^y^z) + movz x10, #0x27fa // Load lower half of constant 0xeaa127fa + add w4, w9, w4 // Add X parameter round 3 A=HH(A, B, C, D, 0x289b7ec6, s=4, M[13]) + movk x10, #0xeaa1, lsl #16 // Load upper half of constant 0xeaa127fa + add w17, w17, w15 // Add dest value + eor x6, x6, x4 // End aux function round 3 H(x,y,z)=(x^y^z) + add w17, w17, w10 // Add constant 0xeaa127fa + add w17, w17, w6 // Add aux function result + eor x6, x4, x9 // Begin aux function round 3 H(x,y,z)=(x^y^z) + ror w17, w17, #21 // Rotate left s=11 bits + movz x13, #0x3085 // Load lower half of constant 0xd4ef3085 + add w17, w4, w17 // Add X parameter round 3 D=HH(D, A, B, C, 0xeaa127fa, s=11, M[0]) + movk x13, #0xd4ef, lsl #16 // Load upper half of constant 0xd4ef3085 + add w8, w8, w21 // Add dest value + eor x6, x6, x17 // End aux function round 3 H(x,y,z)=(x^y^z) + add w8, w8, w13 // Add constant 0xd4ef3085 + add w8, w8, w6 // Add aux function result + ror w8, w8, #16 // Rotate left s=16 bits + eor x6, x17, x4 // Begin aux function round 3 H(x,y,z)=(x^y^z) + movz x13, #0x1d05 // Load lower half of constant 0x4881d05 + add w8, w17, w8 // Add X parameter round 3 C=HH(C, D, A, B, 0xd4ef3085, s=16, M[3]) + movk x13, #0x488, lsl #16 // Load upper half of constant 0x4881d05 + add w9, w9, w7 // Add dest value + eor x6, x6, x8 // End aux function round 3 H(x,y,z)=(x^y^z) + add w9, w9, w13 // Add constant 0x4881d05 + add w9, w9, w6 // Add aux function result + eor x6, x8, x17 // Begin aux function round 3 H(x,y,z)=(x^y^z) + ror w9, w9, #9 // Rotate left s=23 bits + movz x10, #0xd039 // Load lower half of constant 0xd9d4d039 + add w9, w8, w9 // Add X parameter round 3 B=HH(B, C, D, A, 0x4881d05, s=23, M[6]) + movk x10, #0xd9d4, lsl #16 // Load upper half of constant 0xd9d4d039 + add w4, w4, w24 // Add dest value + eor x6, x6, x9 // End aux function round 3 H(x,y,z)=(x^y^z) + add w4, w4, w10 // Add constant 0xd9d4d039 + add w4, w4, w6 // Add aux function result + ror w4, w4, #28 // Rotate left s=4 bits + eor x6, x9, x8 // Begin aux function round 3 H(x,y,z)=(x^y^z) + movz x10, #0x99e5 // Load lower half of constant 0xe6db99e5 + add w4, w9, w4 // Add X parameter round 3 A=HH(A, B, C, D, 0xd9d4d039, s=4, M[9]) + movk x10, #0xe6db, lsl #16 // Load upper half of constant 0xe6db99e5 + add w17, w17, w11 // Add dest value + eor x6, x6, x4 // End aux function round 3 H(x,y,z)=(x^y^z) + add w17, w17, w10 // Add constant 0xe6db99e5 + add w17, w17, w6 // Add aux function result + eor x6, x4, x9 // Begin aux function round 3 H(x,y,z)=(x^y^z) + ror w17, w17, #21 // Rotate left s=11 bits + movz x13, #0x7cf8 // Load lower half of constant 0x1fa27cf8 + add w17, w4, w17 // Add X parameter round 3 D=HH(D, A, B, C, 0xe6db99e5, s=11, M[12]) + movk x13, #0x1fa2, lsl #16 // Load upper half of constant 0x1fa27cf8 + add w8, w8, w27 // Add dest value + eor x6, x6, x17 // End aux function round 3 H(x,y,z)=(x^y^z) + add w8, w8, w13 // Add constant 0x1fa27cf8 + add w8, w8, w6 // Add aux function result + ror w8, w8, #16 // Rotate left s=16 bits + eor x6, x17, x4 // Begin aux function round 3 H(x,y,z)=(x^y^z) + movz x13, #0x5665 // Load lower half of constant 0xc4ac5665 + add w8, w17, w8 // Add X parameter round 3 C=HH(C, D, A, B, 0x1fa27cf8, s=16, M[15]) + movk x13, #0xc4ac, lsl #16 // Load upper half of constant 0xc4ac5665 + add w9, w9, w3 // Add dest value + eor x6, x6, x8 // End aux function round 3 H(x,y,z)=(x^y^z) + add w9, w9, w13 // Add constant 0xc4ac5665 + add w9, w9, w6 // Add aux function result + ror w9, w9, #9 // Rotate left s=23 bits + movz x6, #0x2244 // Load lower half of constant 0xf4292244 + movk x6, #0xf429, lsl #16 // Load upper half of constant 0xf4292244 + add w9, w8, w9 // Add X parameter round 3 B=HH(B, C, D, A, 0xc4ac5665, s=23, M[2]) + add w4, w4, w15 // Add dest value + orn x13, x9, x17 // Begin aux function round 4 I(x,y,z)=((~z|x)^y) + add w4, w4, w6 // Add constant 0xf4292244 + eor x6, x8, x13 // End aux function round 4 I(x,y,z)=((~z|x)^y) + add w4, w4, w6 // Add aux function result + ror w4, w4, #26 // Rotate left s=6 bits + movz x6, #0xff97 // Load lower half of constant 0x432aff97 + movk x6, #0x432a, lsl #16 // Load upper half of constant 0x432aff97 + add w4, w9, w4 // Add X parameter round 4 A=II(A, B, C, D, 0xf4292244, s=6, M[0]) + orn x10, x4, x8 // Begin aux function round 4 I(x,y,z)=((~z|x)^y) + add w17, w17, w23 // Add dest value + eor x10, x9, x10 // End aux function round 4 I(x,y,z)=((~z|x)^y) + add w17, w17, w6 // Add constant 0x432aff97 + add w6, w17, w10 // Add aux function result + ror w6, w6, #22 // Rotate left s=10 bits + movz x17, #0x23a7 // Load lower half of constant 0xab9423a7 + movk x17, #0xab94, lsl #16 // Load upper half of constant 0xab9423a7 + add w6, w4, w6 // Add X parameter round 4 D=II(D, A, B, C, 0x432aff97, s=10, M[7]) + add w8, w8, w12 // Add dest value + orn x10, x6, x9 // Begin aux function round 4 I(x,y,z)=((~z|x)^y) + add w8, w8, w17 // Add constant 0xab9423a7 + eor x17, x4, x10 // End aux function round 4 I(x,y,z)=((~z|x)^y) + add w8, w8, w17 // Add aux function result + ror w8, w8, #17 // Rotate left s=15 bits + movz x17, #0xa039 // Load lower half of constant 0xfc93a039 + movk x17, #0xfc93, lsl #16 // Load upper half of constant 0xfc93a039 + add w8, w6, w8 // Add X parameter round 4 C=II(C, D, A, B, 0xab9423a7, s=15, M[14]) + orn x13, x8, x4 // Begin aux function round 4 I(x,y,z)=((~z|x)^y) + add w9, w9, w22 // Add dest value + eor x13, x6, x13 // End aux function round 4 I(x,y,z)=((~z|x)^y) + add w9, w9, w17 // Add constant 0xfc93a039 + add w17, w9, w13 // Add aux function result + ror w17, w17, #11 // Rotate left s=21 bits + movz x9, #0x59c3 // Load lower half of constant 0x655b59c3 + movk x9, #0x655b, lsl #16 // Load upper half of constant 0x655b59c3 + add w17, w8, w17 // Add X parameter round 4 B=II(B, C, D, A, 0xfc93a039, s=21, M[5]) + add w4, w4, w11 // Add dest value + orn x13, x17, x6 // Begin aux function round 4 I(x,y,z)=((~z|x)^y) + add w9, w4, w9 // Add constant 0x655b59c3 + eor x4, x8, x13 // End aux function round 4 I(x,y,z)=((~z|x)^y) + add w9, w9, w4 // Add aux function result + ror w9, w9, #26 // Rotate left s=6 bits + movz x4, #0xcc92 // Load lower half of constant 0x8f0ccc92 + movk x4, #0x8f0c, lsl #16 // Load upper half of constant 0x8f0ccc92 + add w9, w17, w9 // Add X parameter round 4 A=II(A, B, C, D, 0x655b59c3, s=6, M[12]) + orn x10, x9, x8 // Begin aux function round 4 I(x,y,z)=((~z|x)^y) + add w6, w6, w21 // Add dest value + eor x10, x17, x10 // End aux function round 4 I(x,y,z)=((~z|x)^y) + add w4, w6, w4 // Add constant 0x8f0ccc92 + add w6, w4, w10 // Add aux function result + ror w6, w6, #22 // Rotate left s=10 bits + movz x4, #0xf47d // Load lower half of constant 0xffeff47d + movk x4, #0xffef, lsl #16 // Load upper half of constant 0xffeff47d + add w6, w9, w6 // Add X parameter round 4 D=II(D, A, B, C, 0x8f0ccc92, s=10, M[3]) + add w8, w8, w16 // Add dest value + orn x10, x6, x17 // Begin aux function round 4 I(x,y,z)=((~z|x)^y) + add w8, w8, w4 // Add constant 0xffeff47d + eor x4, x9, x10 // End aux function round 4 I(x,y,z)=((~z|x)^y) + add w8, w8, w4 // Add aux function result + ror w8, w8, #17 // Rotate left s=15 bits + movz x4, #0x5dd1 // Load lower half of constant 0x85845dd1 + movk x4, #0x8584, lsl #16 // Load upper half of constant 0x85845dd1 + add w8, w6, w8 // Add X parameter round 4 C=II(C, D, A, B, 0xffeff47d, s=15, M[10]) + orn x10, x8, x9 // Begin aux function round 4 I(x,y,z)=((~z|x)^y) + add w15, w17, w20 // Add dest value + eor x17, x6, x10 // End aux function round 4 I(x,y,z)=((~z|x)^y) + add w15, w15, w4 // Add constant 0x85845dd1 + add w4, w15, w17 // Add aux function result + ror w4, w4, #11 // Rotate left s=21 bits + movz x15, #0x7e4f // Load lower half of constant 0x6fa87e4f + movk x15, #0x6fa8, lsl #16 // Load upper half of constant 0x6fa87e4f + add w17, w8, w4 // Add X parameter round 4 B=II(B, C, D, A, 0x85845dd1, s=21, M[1]) + add w4, w9, w5 // Add dest value + orn x9, x17, x6 // Begin aux function round 4 I(x,y,z)=((~z|x)^y) + add w15, w4, w15 // Add constant 0x6fa87e4f + eor x4, x8, x9 // End aux function round 4 I(x,y,z)=((~z|x)^y) + add w9, w15, w4 // Add aux function result + ror w9, w9, #26 // Rotate left s=6 bits + movz x15, #0xe6e0 // Load lower half of constant 0xfe2ce6e0 + movk x15, #0xfe2c, lsl #16 // Load upper half of constant 0xfe2ce6e0 + add w4, w17, w9 // Add X parameter round 4 A=II(A, B, C, D, 0x6fa87e4f, s=6, M[8]) + orn x9, x4, x8 // Begin aux function round 4 I(x,y,z)=((~z|x)^y) + add w6, w6, w27 // Add dest value + eor x9, x17, x9 // End aux function round 4 I(x,y,z)=((~z|x)^y) + add w15, w6, w15 // Add constant 0xfe2ce6e0 + add w6, w15, w9 // Add aux function result + ror w6, w6, #22 // Rotate left s=10 bits + movz x9, #0x4314 // Load lower half of constant 0xa3014314 + movk x9, #0xa301, lsl #16 // Load upper half of constant 0xa3014314 + add w15, w4, w6 // Add X parameter round 4 D=II(D, A, B, C, 0xfe2ce6e0, s=10, M[15]) + add w6, w8, w7 // Add dest value + orn x7, x15, x17 // Begin aux function round 4 I(x,y,z)=((~z|x)^y) + add w8, w6, w9 // Add constant 0xa3014314 + eor x9, x4, x7 // End aux function round 4 I(x,y,z)=((~z|x)^y) + add w6, w8, w9 // Add aux function result + ror w6, w6, #17 // Rotate left s=15 bits + movz x7, #0x11a1 // Load lower half of constant 0x4e0811a1 + movk x7, #0x4e08, lsl #16 // Load upper half of constant 0x4e0811a1 + add w8, w15, w6 // Add X parameter round 4 C=II(C, D, A, B, 0xa3014314, s=15, M[6]) + orn x9, x8, x4 // Begin aux function round 4 I(x,y,z)=((~z|x)^y) + add w6, w17, w26 // Add dest value + eor x17, x15, x9 // End aux function round 4 I(x,y,z)=((~z|x)^y) + add w9, w6, w7 // Add constant 0x4e0811a1 + add w7, w9, w17 // Add aux function result + ror w7, w7, #11 // Rotate left s=21 bits + movz x6, #0x7e82 // Load lower half of constant 0xf7537e82 + movk x6, #0xf753, lsl #16 // Load upper half of constant 0xf7537e82 + add w9, w8, w7 // Add X parameter round 4 B=II(B, C, D, A, 0x4e0811a1, s=21, M[13]) + add w17, w4, w14 // Add dest value + orn x7, x9, x15 // Begin aux function round 4 I(x,y,z)=((~z|x)^y) + add w14, w17, w6 // Add constant 0xf7537e82 + eor x4, x8, x7 // End aux function round 4 I(x,y,z)=((~z|x)^y) + add w17, w14, w4 // Add aux function result + ror w17, w17, #26 // Rotate left s=6 bits + movz x6, #0xf235 // Load lower half of constant 0xbd3af235 + movk x6, #0xbd3a, lsl #16 // Load upper half of constant 0xbd3af235 + add w7, w9, w17 // Add X parameter round 4 A=II(A, B, C, D, 0xf7537e82, s=6, M[4]) + orn x14, x7, x8 // Begin aux function round 4 I(x,y,z)=((~z|x)^y) + add w4, w15, w25 // Add dest value + eor x17, x9, x14 // End aux function round 4 I(x,y,z)=((~z|x)^y) + add w15, w4, w6 // Add constant 0xbd3af235 + add w16, w15, w17 // Add aux function result + ror w16, w16, #22 // Rotate left s=10 bits + movz x14, #0xd2bb // Load lower half of constant 0x2ad7d2bb + movk x14, #0x2ad7, lsl #16 // Load upper half of constant 0x2ad7d2bb + add w4, w7, w16 // Add X parameter round 4 D=II(D, A, B, C, 0xbd3af235, s=10, M[11]) + add w6, w8, w3 // Add dest value + orn x15, x4, x9 // Begin aux function round 4 I(x,y,z)=((~z|x)^y) + add w17, w6, w14 // Add constant 0x2ad7d2bb + eor x16, x7, x15 // End aux function round 4 I(x,y,z)=((~z|x)^y) + add w8, w17, w16 // Add aux function result + ror w8, w8, #17 // Rotate left s=15 bits + movz x3, #0xd391 // Load lower half of constant 0xeb86d391 + movk x3, #0xeb86, lsl #16 // Load upper half of constant 0xeb86d391 + add w14, w4, w8 // Add X parameter round 4 C=II(C, D, A, B, 0x2ad7d2bb, s=15, M[2]) + orn x6, x14, x7 // Begin aux function round 4 I(x,y,z)=((~z|x)^y) + add w15, w9, w24 // Add dest value + eor x17, x4, x6 // End aux function round 4 I(x,y,z)=((~z|x)^y) + add w16, w15, w3 // Add constant 0xeb86d391 + add w8, w16, w17 // Add aux function result + ror w8, w8, #11 // Rotate left s=21 bits + ldp w6, w15, [x0] // Reload MD5 state->A and state->B + ldp w5, w9, [x0, #8] // Reload MD5 state->C and state->D + add w3, w14, w8 // Add X parameter round 4 B=II(B, C, D, A, 0xeb86d391, s=21, M[9]) + add w13, w4, w9 // Add result of MD5 rounds to state->D + add w12, w14, w5 // Add result of MD5 rounds to state->C + add w10, w7, w6 // Add result of MD5 rounds to state->A + add w11, w3, w15 // Add result of MD5 rounds to state->B + stp w12, w13, [x0, #8] // Store MD5 states C,D + stp w10, w11, [x0] // Store MD5 states A,B + add x1, x1, #64 // Increment data pointer + subs w2, w2, #1 // Decrement block counter + b.ne ossl_md5_blocks_loop + + ldp x21,x22,[sp,#16] + ldp x23,x24,[sp,#32] + ldp x25,x26,[sp,#48] + ldp x27,x28,[sp,#64] + ldp x19,x20,[sp],#80 + ret + diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/crypto/modes/aes-gcm-armv8-unroll8_64.S b/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/crypto/modes/aes-gcm-armv8-unroll8_64.S new file mode 100644 index 00000000000000..549f32d456502a --- /dev/null +++ b/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/crypto/modes/aes-gcm-armv8-unroll8_64.S @@ -0,0 +1,8487 @@ +#include "arm_arch.h" + +#if __ARM_MAX_ARCH__>=8 + +.text +.globl _unroll8_eor3_aes_gcm_enc_128_kernel + +.align 4 +_unroll8_eor3_aes_gcm_enc_128_kernel: + AARCH64_VALID_CALL_TARGET + cbz x1, L128_enc_ret + stp d8, d9, [sp, #-80]! + lsr x9, x1, #3 + mov x16, x4 + mov x8, x5 + stp d10, d11, [sp, #16] + stp d12, d13, [sp, #32] + stp d14, d15, [sp, #48] + mov x5, #0xc200000000000000 + stp x5, xzr, [sp, #64] + add x10, sp, #64 + + mov x15, #0x100000000 //set up counter increment + movi v31.16b, #0x0 + mov v31.d[1], x15 + mov x5, x9 + ld1 { v0.16b}, [x16] //CTR block 0 + + sub x5, x5, #1 //byte_len - 1 + + and x5, x5, #0xffffffffffffff80 //number of bytes to be processed in main loop (at least 1 byte must be handled by tail) + + rev32 v30.16b, v0.16b //set up reversed counter + + add v30.4s, v30.4s, v31.4s //CTR block 0 + + rev32 v1.16b, v30.16b //CTR block 1 + add v30.4s, v30.4s, v31.4s //CTR block 1 + + rev32 v2.16b, v30.16b //CTR block 2 + add v30.4s, v30.4s, v31.4s //CTR block 2 + + rev32 v3.16b, v30.16b //CTR block 3 + add v30.4s, v30.4s, v31.4s //CTR block 3 + + rev32 v4.16b, v30.16b //CTR block 4 + add v30.4s, v30.4s, v31.4s //CTR block 4 + + rev32 v5.16b, v30.16b //CTR block 5 + add v30.4s, v30.4s, v31.4s //CTR block 5 + ldp q26, q27, [x8, #0] //load rk0, rk1 + + rev32 v6.16b, v30.16b //CTR block 6 + add v30.4s, v30.4s, v31.4s //CTR block 6 + + rev32 v7.16b, v30.16b //CTR block 7 + add v30.4s, v30.4s, v31.4s //CTR block 7 + + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 4 - round 0 + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 6 - round 0 + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 3 - round 0 + + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 0 - round 0 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 1 - round 0 + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 2 - round 0 + + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 7 - round 0 + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 5 - round 0 + ldp q28, q26, [x8, #32] //load rk2, rk3 + + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 3 - round 1 + + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 7 - round 1 + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 5 - round 1 + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 4 - round 1 + + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 2 - round 1 + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 6 - round 1 + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 0 - round 1 + + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 5 - round 2 + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 1 - round 1 + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 0 - round 2 + + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 2 - round 2 + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 3 - round 2 + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 7 - round 2 + + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 1 - round 2 + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 6 - round 2 + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 4 - round 2 + + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 2 - round 3 + + ldp q27, q28, [x8, #64] //load rk4, rk5 + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 5 - round 3 + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 0 - round 3 + + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 4 - round 3 + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 3 - round 3 + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 6 - round 3 + + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 7 - round 3 + + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 6 - round 4 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 1 - round 3 + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 5 - round 4 + + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 7 - round 4 + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 4 - round 4 + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 0 - round 4 + + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 1 - round 4 + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 2 - round 4 + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 3 - round 4 + + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 7 - round 5 + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 0 - round 5 + ldp q26, q27, [x8, #96] //load rk6, rk7 + + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 1 - round 5 + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 3 - round 5 + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 2 - round 5 + + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 4 - round 5 + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 5 - round 5 + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 6 - round 5 + + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 4 - round 6 + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 3 - round 6 + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 2 - round 6 + + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 7 - round 6 + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 6 - round 6 + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 5 - round 6 + + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 0 - round 6 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 1 - round 6 + ldp q28, q26, [x8, #128] //load rk8, rk9 + + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 5 - round 7 + + ld1 { v19.16b}, [x3] + ext v19.16b, v19.16b, v19.16b, #8 + rev64 v19.16b, v19.16b + + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 7 - round 7 + + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 4 - round 7 + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 3 - round 7 + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 6 - round 7 + + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 1 - round 7 + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 2 - round 7 + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 0 - round 7 + + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 8 + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 8 + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 8 + + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 8 + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 8 + ldr q27, [x8, #160] //load rk10 + + aese v3.16b, v26.16b //AES block 8k+11 - round 9 + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 8 + aese v2.16b, v26.16b //AES block 8k+10 - round 9 + + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 8 + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 8 + aese v6.16b, v26.16b //AES block 8k+14 - round 9 + + aese v4.16b, v26.16b //AES block 8k+12 - round 9 + add x5, x5, x0 + aese v0.16b, v26.16b //AES block 8k+8 - round 9 + + aese v7.16b, v26.16b //AES block 8k+15 - round 9 + aese v5.16b, v26.16b //AES block 8k+13 - round 9 + aese v1.16b, v26.16b //AES block 8k+9 - round 9 + + add x4, x0, x1, lsr #3 //end_input_ptr + cmp x0, x5 //check if we have <= 8 blocks + b.ge L128_enc_tail //handle tail + + ldp q8, q9, [x0], #32 //AES block 0, 1 - load plaintext + + ldp q10, q11, [x0], #32 //AES block 2, 3 - load plaintext + + ldp q12, q13, [x0], #32 //AES block 4, 5 - load plaintext + + ldp q14, q15, [x0], #32 //AES block 6, 7 - load plaintext + cmp x0, x5 //check if we have <= 8 blocks + +.long 0xce006d08 //eor3 v8.16b, v8.16b, v0.16b, v27.16b //AES block 0 - result + rev32 v0.16b, v30.16b //CTR block 8 + add v30.4s, v30.4s, v31.4s //CTR block 8 + +.long 0xce016d29 //eor3 v9.16b, v9.16b, v1.16b, v27.16b //AES block 1 - result + stp q8, q9, [x2], #32 //AES block 0, 1 - store result + + rev32 v1.16b, v30.16b //CTR block 9 +.long 0xce056dad //eor3 v13.16b, v13.16b, v5.16b, v27.16b //AES block 5 - result + add v30.4s, v30.4s, v31.4s //CTR block 9 + +.long 0xce026d4a //eor3 v10.16b, v10.16b, v2.16b, v27.16b //AES block 2 - result +.long 0xce066dce //eor3 v14.16b, v14.16b, v6.16b, v27.16b //AES block 6 - result +.long 0xce046d8c //eor3 v12.16b, v12.16b, v4.16b, v27.16b //AES block 4 - result + + rev32 v2.16b, v30.16b //CTR block 10 + add v30.4s, v30.4s, v31.4s //CTR block 10 + +.long 0xce036d6b //eor3 v11.16b, v11.16b, v3.16b, v27.16b //AES block 3 - result +.long 0xce076def //eor3 v15.16b, v15.16b, v7.16b,v27.16b //AES block 7 - result + stp q10, q11, [x2], #32 //AES block 2, 3 - store result + + rev32 v3.16b, v30.16b //CTR block 11 + add v30.4s, v30.4s, v31.4s //CTR block 11 + stp q12, q13, [x2], #32 //AES block 4, 5 - store result + + stp q14, q15, [x2], #32 //AES block 6, 7 - store result + + rev32 v4.16b, v30.16b //CTR block 12 + add v30.4s, v30.4s, v31.4s //CTR block 12 + b.ge L128_enc_prepretail //do prepretail + +L128_enc_main_loop: //main loop start + rev32 v5.16b, v30.16b //CTR block 8k+13 + ldr q20, [x3, #128] //load h5l | h5h + ext v20.16b, v20.16b, v20.16b, #8 + ldr q22, [x3, #160] //load h6l | h6h + ext v22.16b, v22.16b, v22.16b, #8 + add v30.4s, v30.4s, v31.4s //CTR block 8k+13 + + rev64 v9.16b, v9.16b //GHASH block 8k+1 + rev64 v8.16b, v8.16b //GHASH block 8k + ldr q23, [x3, #176] //load h7l | h7h + ext v23.16b, v23.16b, v23.16b, #8 + ldr q25, [x3, #208] //load h8l | h8h + ext v25.16b, v25.16b, v25.16b, #8 + + rev32 v6.16b, v30.16b //CTR block 8k+14 + add v30.4s, v30.4s, v31.4s //CTR block 8k+14 + ext v19.16b, v19.16b, v19.16b, #8 //PRE 0 + + ldr q21, [x3, #144] //load h6k | h5k + ldr q24, [x3, #192] //load h8k | h7k + rev64 v13.16b, v13.16b //GHASH block 8k+5 (t0, t1, t2 and t3 free) + rev64 v11.16b, v11.16b //GHASH block 8k+3 + + ldp q26, q27, [x8, #0] //load rk0, rk1 + eor v8.16b, v8.16b, v19.16b //PRE 1 + rev32 v7.16b, v30.16b //CTR block 8k+15 + + rev64 v15.16b, v15.16b //GHASH block 8k+7 (t0, t1, t2 and t3 free) + + pmull2 v16.1q, v9.2d, v23.2d //GHASH block 8k+1 - high + rev64 v10.16b, v10.16b //GHASH block 8k+2 + pmull2 v17.1q, v8.2d, v25.2d //GHASH block 8k - high + + pmull v23.1q, v9.1d, v23.1d //GHASH block 8k+1 - low + trn1 v18.2d, v9.2d, v8.2d //GHASH block 8k, 8k+1 - mid + pmull v19.1q, v8.1d, v25.1d //GHASH block 8k - low + + trn2 v8.2d, v9.2d, v8.2d //GHASH block 8k, 8k+1 - mid + pmull2 v29.1q, v10.2d, v22.2d //GHASH block 8k+2 - high + pmull2 v9.1q, v11.2d, v20.2d //GHASH block 8k+3 - high + + eor v19.16b, v19.16b, v23.16b //GHASH block 8k+1 - low + ldr q23, [x3, #80] //load h3l | h3h + ext v23.16b, v23.16b, v23.16b, #8 + ldr q25, [x3, #112] //load h3l | h3h + ext v25.16b, v25.16b, v25.16b, #8 + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 0 + + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 0 + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 0 + eor v17.16b, v17.16b, v16.16b //GHASH block 8k+1 - high + + add v30.4s, v30.4s, v31.4s //CTR block 8k+15 + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 0 + eor v8.16b, v8.16b, v18.16b //GHASH block 8k, 8k+1 - mid + + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 0 + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 1 + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 0 + + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 1 + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 0 + pmull v22.1q, v10.1d, v22.1d //GHASH block 8k+2 - low + + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 1 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 0 + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 1 + +.long 0xce1d2631 //eor3 v17.16b, v17.16b, v29.16b,v9.16b //GHASH block 8k+2, 8k+3 - high + trn1 v29.2d, v11.2d, v10.2d //GHASH block 8k+2, 8k+3 - mid + trn2 v10.2d, v11.2d, v10.2d //GHASH block 8k+2, 8k+3 - mid + + ldp q28, q26, [x8, #32] //load rk2, rk3 + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 1 + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 1 + + pmull v20.1q, v11.1d, v20.1d //GHASH block 8k+3 - low + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 1 + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 1 + + pmull2 v18.1q, v8.2d, v24.2d //GHASH block 8k - mid + eor v10.16b, v10.16b, v29.16b //GHASH block 8k+2, 8k+3 - mid + pmull v24.1q, v8.1d, v24.1d //GHASH block 8k+1 - mid + + rev64 v14.16b, v14.16b //GHASH block 8k+6 (t0, t1, and t2 free) +.long 0xce165273 //eor3 v19.16b, v19.16b, v22.16b, v20.16b //GHASH block 8k+2, 8k+3 - low + + pmull2 v29.1q, v10.2d, v21.2d //GHASH block 8k+2 - mid + eor v18.16b, v18.16b, v24.16b //GHASH block 8k+1 - mid + pmull v21.1q, v10.1d, v21.1d //GHASH block 8k+3 - mid + + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 2 + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 2 + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 2 + + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 2 +.long 0xce157652 //eor3 v18.16b, v18.16b, v21.16b, v29.16b //GHASH block 8k+2, 8k+3 - mid + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 2 + + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 2 + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 2 + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 2 + + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 3 + ldr q21, [x3, #48] //load h2k | h1k + ldr q24, [x3, #96] //load h4k | h3k + rev64 v12.16b, v12.16b //GHASH block 8k+4 (t0, t1, and t2 free) + + ldp q27, q28, [x8, #64] //load rk4, rk5 + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 3 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 3 + + ldr q20, [x3, #32] //load h1l | h1h + ext v20.16b, v20.16b, v20.16b, #8 + ldr q22, [x3, #64] //load h1l | h1h + ext v22.16b, v22.16b, v22.16b, #8 + pmull2 v8.1q, v12.2d, v25.2d //GHASH block 8k+4 - high + pmull v25.1q, v12.1d, v25.1d //GHASH block 8k+4 - low + + trn1 v16.2d, v13.2d, v12.2d //GHASH block 8k+4, 8k+5 - mid + trn2 v12.2d, v13.2d, v12.2d //GHASH block 8k+4, 8k+5 - mid + + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 3 + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 3 + + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 3 + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 3 + + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 3 + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 4 + + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 4 + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 4 + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 4 + + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 4 + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 4 + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 4 + + pmull2 v10.1q, v13.2d, v23.2d //GHASH block 8k+5 - high + eor v12.16b, v12.16b, v16.16b //GHASH block 8k+4, 8k+5 - mid + pmull v23.1q, v13.1d, v23.1d //GHASH block 8k+5 - low + + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 4 + ldp q26, q27, [x8, #96] //load rk6, rk7 + trn1 v13.2d, v15.2d, v14.2d //GHASH block 8k+6, 8k+7 - mid + + pmull2 v16.1q, v12.2d, v24.2d //GHASH block 8k+4 - mid + pmull v24.1q, v12.1d, v24.1d //GHASH block 8k+5 - mid + pmull2 v11.1q, v14.2d, v22.2d //GHASH block 8k+6 - high + + pmull2 v12.1q, v15.2d, v20.2d //GHASH block 8k+7 - high + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 5 + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 5 + + pmull v22.1q, v14.1d, v22.1d //GHASH block 8k+6 - low +.long 0xce082a31 //eor3 v17.16b, v17.16b, v8.16b, v10.16b //GHASH block 8k+4, 8k+5 - high + trn2 v14.2d, v15.2d, v14.2d //GHASH block 8k+6, 8k+7 - mid + +.long 0xce195e73 //eor3 v19.16b, v19.16b, v25.16b, v23.16b //GHASH block 8k+4, 8k+5 - low + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 5 + + eor v14.16b, v14.16b, v13.16b //GHASH block 8k+6, 8k+7 - mid + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 5 + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 5 + + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 5 + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 5 + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 5 + +.long 0xce184252 //eor3 v18.16b, v18.16b, v24.16b, v16.16b //GHASH block 8k+4, 8k+5 - mid + ldr d16, [x10] //MODULO - load modulo constant + pmull v20.1q, v15.1d, v20.1d //GHASH block 8k+7 - low + + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 6 + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 6 + + pmull2 v13.1q, v14.2d, v21.2d //GHASH block 8k+6 - mid + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 6 + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 6 + + pmull v21.1q, v14.1d, v21.1d //GHASH block 8k+7 - mid +.long 0xce165273 //eor3 v19.16b, v19.16b, v22.16b, v20.16b //GHASH block 8k+6, 8k+7 - low + ldp q8, q9, [x0], #32 //AES block 8k+8, 8k+9 - load plaintext + + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 6 + rev32 v20.16b, v30.16b //CTR block 8k+16 + add v30.4s, v30.4s, v31.4s //CTR block 8k+16 + + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 6 + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 6 + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 6 + +.long 0xce153652 //eor3 v18.16b, v18.16b, v21.16b, v13.16b //GHASH block 8k+6, 8k+7 - mid + ldp q28, q26, [x8, #128] //load rk8, rk9 +.long 0xce0b3231 //eor3 v17.16b, v17.16b, v11.16b, v12.16b //GHASH block 8k+6, 8k+7 - high + + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 7 + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 7 + ldp q10, q11, [x0], #32 //AES block 8k+10, 8k+11 - load plaintext + + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 7 + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 7 + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 7 + + pmull v21.1q, v17.1d, v16.1d //MODULO - top 64b align with mid + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 7 + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 7 + + rev32 v22.16b, v30.16b //CTR block 8k+17 + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 7 + + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 8 + ldp q12, q13, [x0], #32 //AES block 8k+12, 8k+13 - load plaintext + add v30.4s, v30.4s, v31.4s //CTR block 8k+17 + + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 8 + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 8 + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 8 + + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 8 +.long 0xce114e52 //eor3 v18.16b, v18.16b, v17.16b, v19.16b //MODULO - karatsuba tidy up + ldr q27, [x8, #160] //load rk10 + + ext v29.16b, v17.16b, v17.16b, #8 //MODULO - other top alignment + rev32 v23.16b, v30.16b //CTR block 8k+18 + add v30.4s, v30.4s, v31.4s //CTR block 8k+18 + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 8 + + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 8 +.long 0xce1d5652 //eor3 v18.16b, v18.16b, v29.16b, v21.16b //MODULO - fold into mid + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 8 + + aese v2.16b, v26.16b //AES block 8k+10 - round 9 + aese v4.16b, v26.16b //AES block 8k+12 - round 9 + aese v1.16b, v26.16b //AES block 8k+9 - round 9 + + ldp q14, q15, [x0], #32 //AES block 8k+14, 8k+15 - load plaintext + rev32 v25.16b, v30.16b //CTR block 8k+19 + add v30.4s, v30.4s, v31.4s //CTR block 8k+19 + + cmp x0, x5 //LOOP CONTROL +.long 0xce046d8c //eor3 v12.16b, v12.16b, v4.16b, v27.16b //AES block 4 - result + aese v7.16b, v26.16b //AES block 8k+15 - round 9 + + aese v6.16b, v26.16b //AES block 8k+14 - round 9 + aese v3.16b, v26.16b //AES block 8k+11 - round 9 + +.long 0xce026d4a //eor3 v10.16b, v10.16b, v2.16b, v27.16b //AES block 8k+10 - result + + mov v2.16b, v23.16b //CTR block 8k+18 + aese v0.16b, v26.16b //AES block 8k+8 - round 9 + + rev32 v4.16b, v30.16b //CTR block 8k+20 + add v30.4s, v30.4s, v31.4s //CTR block 8k+20 + +.long 0xce076def //eor3 v15.16b, v15.16b, v7.16b, v27.16b //AES block 7 - result + aese v5.16b, v26.16b //AES block 8k+13 - round 9 + pmull v17.1q, v18.1d, v16.1d //MODULO - mid 64b align with low + +.long 0xce016d29 //eor3 v9.16b, v9.16b, v1.16b, v27.16b //AES block 8k+9 - result +.long 0xce036d6b //eor3 v11.16b, v11.16b, v3.16b, v27.16b //AES block 8k+11 - result + mov v3.16b, v25.16b //CTR block 8k+19 + + ext v21.16b, v18.16b, v18.16b, #8 //MODULO - other mid alignment +.long 0xce056dad //eor3 v13.16b, v13.16b, v5.16b, v27.16b //AES block 5 - result + mov v1.16b, v22.16b //CTR block 8k+17 + +.long 0xce006d08 //eor3 v8.16b, v8.16b, v0.16b, v27.16b //AES block 8k+8 - result + mov v0.16b, v20.16b //CTR block 8k+16 + stp q8, q9, [x2], #32 //AES block 8k+8, 8k+9 - store result + + stp q10, q11, [x2], #32 //AES block 8k+10, 8k+11 - store result +.long 0xce066dce //eor3 v14.16b, v14.16b, v6.16b, v27.16b //AES block 6 - result + + stp q12, q13, [x2], #32 //AES block 8k+12, 8k+13 - store result +.long 0xce115673 //eor3 v19.16b, v19.16b, v17.16b, v21.16b //MODULO - fold into low + + stp q14, q15, [x2], #32 //AES block 8k+14, 8k+15 - store result + b.lt L128_enc_main_loop + +L128_enc_prepretail: //PREPRETAIL + rev32 v5.16b, v30.16b //CTR block 8k+13 + ldr q23, [x3, #176] //load h7l | h7h + ext v23.16b, v23.16b, v23.16b, #8 + ldr q25, [x3, #208] //load h8l | h8h + ext v25.16b, v25.16b, v25.16b, #8 + ext v19.16b, v19.16b, v19.16b, #8 //PRE 0 + + ldr q20, [x3, #128] //load h5l | h5h + ext v20.16b, v20.16b, v20.16b, #8 + ldr q22, [x3, #160] //load h6l | h6h + ext v22.16b, v22.16b, v22.16b, #8 + rev64 v8.16b, v8.16b //GHASH block 8k + rev64 v9.16b, v9.16b //GHASH block 8k+1 + + ldr q21, [x3, #144] //load h6k | h5k + ldr q24, [x3, #192] //load h6k | h5k + add v30.4s, v30.4s, v31.4s //CTR block 8k+13 + rev64 v11.16b, v11.16b //GHASH block 8k+3 + + rev64 v10.16b, v10.16b //GHASH block 8k+2 + eor v8.16b, v8.16b, v19.16b //PRE 1 + + rev32 v6.16b, v30.16b //CTR block 8k+14 + + pmull2 v16.1q, v9.2d, v23.2d //GHASH block 8k+1 - high + pmull v19.1q, v8.1d, v25.1d //GHASH block 8k - low + pmull2 v17.1q, v8.2d, v25.2d //GHASH block 8k - high + + rev64 v13.16b, v13.16b //GHASH block 8k+5 (t0, t1, t2 and t3 free) + trn1 v18.2d, v9.2d, v8.2d //GHASH block 8k, 8k+1 - mid + + pmull v23.1q, v9.1d, v23.1d //GHASH block 8k+1 - low + eor v17.16b, v17.16b, v16.16b //GHASH block 8k+1 - high + trn2 v8.2d, v9.2d, v8.2d //GHASH block 8k, 8k+1 - mid + + eor v19.16b, v19.16b, v23.16b //GHASH block 8k+1 - low + eor v8.16b, v8.16b, v18.16b //GHASH block 8k, 8k+1 - mid + + ldp q26, q27, [x8, #0] //load rk0, rk1 + add v30.4s, v30.4s, v31.4s //CTR block 8k+14 + + pmull2 v18.1q, v8.2d, v24.2d //GHASH block 8k - mid + pmull v24.1q, v8.1d, v24.1d //GHASH block 8k+1 - mid + + rev64 v12.16b, v12.16b //GHASH block 8k+4 (t0, t1, and t2 free) + rev64 v15.16b, v15.16b //GHASH block 8k+7 (t0, t1, t2 and t3 free) + + eor v18.16b, v18.16b, v24.16b //GHASH block 8k+1 - mid + + rev32 v7.16b, v30.16b //CTR block 8k+15 + + rev64 v14.16b, v14.16b //GHASH block 8k+6 (t0, t1, and t2 free) + + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 0 + + pmull2 v9.1q, v11.2d, v20.2d //GHASH block 8k+3 - high + pmull2 v29.1q, v10.2d, v22.2d //GHASH block 8k+2 - high + + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 0 + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 0 + + pmull v22.1q, v10.1d, v22.1d //GHASH block 8k+2 - low + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 0 + +.long 0xce1d2631 //eor3 v17.16b, v17.16b, v29.16b, v9.16b //GHASH block 8k+2, 8k+3 - high + trn1 v29.2d, v11.2d, v10.2d //GHASH block 8k+2, 8k+3 - mid + trn2 v10.2d, v11.2d, v10.2d //GHASH block 8k+2, 8k+3 - mid + + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 0 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 0 + + eor v10.16b, v10.16b, v29.16b //GHASH block 8k+2, 8k+3 - mid + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 0 + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 0 + + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 1 + pmull v20.1q, v11.1d, v20.1d //GHASH block 8k+3 - low + + ldr q23, [x3, #80] //load h3l | h3h + ext v23.16b, v23.16b, v23.16b, #8 + ldr q25, [x3, #112] //load h4l | h4h + ext v25.16b, v25.16b, v25.16b, #8 + + ldp q28, q26, [x8, #32] //load rk2, rk3 + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 1 + pmull2 v29.1q, v10.2d, v21.2d //GHASH block 8k+2 - mid + +.long 0xce165273 //eor3 v19.16b, v19.16b, v22.16b, v20.16b //GHASH block 8k+2, 8k+3 - low + pmull v21.1q, v10.1d, v21.1d //GHASH block 8k+3 - mid + + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 1 + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 1 + +.long 0xce157652 //eor3 v18.16b, v18.16b, v21.16b, v29.16b //GHASH block 8k+2, 8k+3 - mid + ldr q21, [x3, #48] //load h2k | h1k + ldr q24, [x3, #96] //load h4k | h3k + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 1 + + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 1 + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 1 + + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 2 + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 2 + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 2 + + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 2 + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 1 + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 2 + + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 3 + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 2 + + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 2 + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 2 + ldp q27, q28, [x8, #64] //load rk4, rk5 + + ldr q20, [x3, #32] //load h1l | h1h + ext v20.16b, v20.16b, v20.16b, #8 + ldr q22, [x3, #64] //load h1l | h1h + ext v22.16b, v22.16b, v22.16b, #8 + trn1 v16.2d, v13.2d, v12.2d //GHASH block 8k+4, 8k+5 - mid + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 3 + + pmull2 v8.1q, v12.2d, v25.2d //GHASH block 8k+4 - high + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 3 + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 3 + + pmull v25.1q, v12.1d, v25.1d //GHASH block 8k+4 - low + trn2 v12.2d, v13.2d, v12.2d //GHASH block 8k+4, 8k+5 - mid + pmull2 v10.1q, v13.2d, v23.2d //GHASH block 8k+5 - high + + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 3 + add v30.4s, v30.4s, v31.4s //CTR block 8k+15 + + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 3 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 3 + eor v12.16b, v12.16b, v16.16b //GHASH block 8k+4, 8k+5 - mid + + pmull v23.1q, v13.1d, v23.1d //GHASH block 8k+5 - low + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 3 + pmull2 v11.1q, v14.2d, v22.2d //GHASH block 8k+6 - high + + trn1 v13.2d, v15.2d, v14.2d //GHASH block 8k+6, 8k+7 - mid + pmull v22.1q, v14.1d, v22.1d //GHASH block 8k+6 - low + trn2 v14.2d, v15.2d, v14.2d //GHASH block 8k+6, 8k+7 - mid + + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 4 + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 4 +.long 0xce082a31 //eor3 v17.16b, v17.16b, v8.16b, v10.16b //GHASH block 8k+4, 8k+5 - high + +.long 0xce195e73 //eor3 v19.16b, v19.16b, v25.16b, v23.16b //GHASH block 8k+4, 8k+5 - low + eor v14.16b, v14.16b, v13.16b //GHASH block 8k+6, 8k+7 - mid + pmull2 v16.1q, v12.2d, v24.2d //GHASH block 8k+4 - mid + + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 5 + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 4 + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 4 + + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 4 + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 4 + + pmull v24.1q, v12.1d, v24.1d //GHASH block 8k+5 - mid + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 4 + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 4 + + pmull2 v12.1q, v15.2d, v20.2d //GHASH block 8k+7 - high + ldp q26, q27, [x8, #96] //load rk6, rk7 + pmull v20.1q, v15.1d, v20.1d //GHASH block 8k+7 - low + +.long 0xce184252 //eor3 v18.16b, v18.16b, v24.16b, v16.16b //GHASH block 8k+4, 8k+5 - mid + pmull2 v13.1q, v14.2d, v21.2d //GHASH block 8k+6 - mid + pmull v21.1q, v14.1d, v21.1d //GHASH block 8k+7 - mid + + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 5 + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 5 + ldr d16, [x10] //MODULO - load modulo constant + + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 5 + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 5 + +.long 0xce0b3231 //eor3 v17.16b, v17.16b, v11.16b, v12.16b //GHASH block 8k+6, 8k+7 - high + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 5 + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 5 + + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 5 + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 6 + + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 6 + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 6 + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 6 + + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 6 +.long 0xce165273 //eor3 v19.16b, v19.16b, v22.16b, v20.16b //GHASH block 8k+6, 8k+7 - low +.long 0xce153652 //eor3 v18.16b, v18.16b, v21.16b, v13.16b //GHASH block 8k+6, 8k+7 - mid + + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 6 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 6 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 6 + + pmull v21.1q, v17.1d, v16.1d //MODULO - top 64b align with mid +.long 0xce114e52 //eor3 v18.16b, v18.16b, v17.16b, v19.16b //MODULO - karatsuba tidy up + ldp q28, q26, [x8, #128] //load rk8, rk9 + + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 7 + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 7 + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 7 + ext v29.16b, v17.16b, v17.16b, #8 //MODULO - other top alignment + + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 7 + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 7 +.long 0xce1d5652 //eor3 v18.16b, v18.16b, v29.16b, v21.16b //MODULO - fold into mid + + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 7 + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 7 + + pmull v17.1q, v18.1d, v16.1d //MODULO - mid 64b align with low + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 7 + + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 8 + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 8 + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 8 + ext v18.16b, v18.16b, v18.16b, #8 //MODULO - other mid alignment + + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 8 +.long 0xce114a73 //eor3 v19.16b, v19.16b, v17.16b, v18.16b //MODULO - fold into low + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 8 + + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 8 + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 8 + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 8 + + ldr q27, [x8, #160] //load rk10 + aese v6.16b, v26.16b //AES block 8k+14 - round 9 + aese v2.16b, v26.16b //AES block 8k+10 - round 9 + + aese v0.16b, v26.16b //AES block 8k+8 - round 9 + aese v1.16b, v26.16b //AES block 8k+9 - round 9 + + aese v3.16b, v26.16b //AES block 8k+11 - round 9 + aese v5.16b, v26.16b //AES block 8k+13 - round 9 + + aese v4.16b, v26.16b //AES block 8k+12 - round 9 + aese v7.16b, v26.16b //AES block 8k+15 - round 9 +L128_enc_tail: //TAIL + + sub x5, x4, x0 //main_end_input_ptr is number of bytes left to process + ldr q8, [x0], #16 //AES block 8k+8 - load plaintext + + mov v29.16b, v27.16b + ldp q20, q21, [x3, #128] //load h5l | h5h + ext v20.16b, v20.16b, v20.16b, #8 + +.long 0xce007509 //eor3 v9.16b, v8.16b, v0.16b, v29.16b //AES block 8k+8 - result + ext v16.16b, v19.16b, v19.16b, #8 //prepare final partial tag + ldp q22, q23, [x3, #160] //load h6l | h6h + ext v22.16b, v22.16b, v22.16b, #8 + ext v23.16b, v23.16b, v23.16b, #8 + + ldp q24, q25, [x3, #192] //load h8k | h7k + ext v25.16b, v25.16b, v25.16b, #8 + cmp x5, #112 + b.gt L128_enc_blocks_more_than_7 + + mov v7.16b, v6.16b + mov v6.16b, v5.16b + movi v17.8b, #0 + + cmp x5, #96 + sub v30.4s, v30.4s, v31.4s + mov v5.16b, v4.16b + + mov v4.16b, v3.16b + mov v3.16b, v2.16b + mov v2.16b, v1.16b + + movi v19.8b, #0 + movi v18.8b, #0 + b.gt L128_enc_blocks_more_than_6 + + mov v7.16b, v6.16b + cmp x5, #80 + + sub v30.4s, v30.4s, v31.4s + mov v6.16b, v5.16b + mov v5.16b, v4.16b + + mov v4.16b, v3.16b + mov v3.16b, v1.16b + b.gt L128_enc_blocks_more_than_5 + + cmp x5, #64 + sub v30.4s, v30.4s, v31.4s + + mov v7.16b, v6.16b + mov v6.16b, v5.16b + + mov v5.16b, v4.16b + mov v4.16b, v1.16b + b.gt L128_enc_blocks_more_than_4 + + mov v7.16b, v6.16b + sub v30.4s, v30.4s, v31.4s + mov v6.16b, v5.16b + + mov v5.16b, v1.16b + cmp x5, #48 + b.gt L128_enc_blocks_more_than_3 + + sub v30.4s, v30.4s, v31.4s + mov v7.16b, v6.16b + mov v6.16b, v1.16b + + cmp x5, #32 + ldr q24, [x3, #96] //load h4k | h3k + b.gt L128_enc_blocks_more_than_2 + + cmp x5, #16 + + sub v30.4s, v30.4s, v31.4s + mov v7.16b, v1.16b + b.gt L128_enc_blocks_more_than_1 + + ldr q21, [x3, #48] //load h2k | h1k + sub v30.4s, v30.4s, v31.4s + b L128_enc_blocks_less_than_1 +L128_enc_blocks_more_than_7: //blocks left > 7 + st1 { v9.16b}, [x2], #16 //AES final-7 block - store result + + rev64 v8.16b, v9.16b //GHASH final-7 block + ldr q9, [x0], #16 //AES final-6 block - load plaintext + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + + ins v27.d[0], v8.d[1] //GHASH final-7 block - mid + + pmull2 v17.1q, v8.2d, v25.2d //GHASH final-7 block - high + + ins v18.d[0], v24.d[1] //GHASH final-7 block - mid + + eor v27.8b, v27.8b, v8.8b //GHASH final-7 block - mid + movi v16.8b, #0 //suppress further partial tag feed in + +.long 0xce017529 //eor3 v9.16b, v9.16b, v1.16b, v29.16b //AES final-6 block - result + + pmull v18.1q, v27.1d, v18.1d //GHASH final-7 block - mid + pmull v19.1q, v8.1d, v25.1d //GHASH final-7 block - low +L128_enc_blocks_more_than_6: //blocks left > 6 + + st1 { v9.16b}, [x2], #16 //AES final-6 block - store result + + rev64 v8.16b, v9.16b //GHASH final-6 block + ldr q9, [x0], #16 //AES final-5 block - load plaintext + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + + ins v27.d[0], v8.d[1] //GHASH final-6 block - mid + +.long 0xce027529 //eor3 v9.16b, v9.16b, v2.16b, v29.16b //AES final-5 block - result + pmull v26.1q, v8.1d, v23.1d //GHASH final-6 block - low + + eor v27.8b, v27.8b, v8.8b //GHASH final-6 block - mid + movi v16.8b, #0 //suppress further partial tag feed in + + pmull v27.1q, v27.1d, v24.1d //GHASH final-6 block - mid + pmull2 v28.1q, v8.2d, v23.2d //GHASH final-6 block - high + + eor v19.16b, v19.16b, v26.16b //GHASH final-6 block - low + + eor v18.16b, v18.16b, v27.16b //GHASH final-6 block - mid + eor v17.16b, v17.16b, v28.16b //GHASH final-6 block - high +L128_enc_blocks_more_than_5: //blocks left > 5 + + st1 { v9.16b}, [x2], #16 //AES final-5 block - store result + + rev64 v8.16b, v9.16b //GHASH final-5 block + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + + ins v27.d[0], v8.d[1] //GHASH final-5 block - mid + ldr q9, [x0], #16 //AES final-4 block - load plaintext + pmull2 v28.1q, v8.2d, v22.2d //GHASH final-5 block - high + + eor v17.16b, v17.16b, v28.16b //GHASH final-5 block - high + + eor v27.8b, v27.8b, v8.8b //GHASH final-5 block - mid + + ins v27.d[1], v27.d[0] //GHASH final-5 block - mid + +.long 0xce037529 //eor3 v9.16b, v9.16b, v3.16b, v29.16b //AES final-4 block - result + pmull v26.1q, v8.1d, v22.1d //GHASH final-5 block - low + movi v16.8b, #0 //suppress further partial tag feed in + + pmull2 v27.1q, v27.2d, v21.2d //GHASH final-5 block - mid + eor v19.16b, v19.16b, v26.16b //GHASH final-5 block - low + + eor v18.16b, v18.16b, v27.16b //GHASH final-5 block - mid +L128_enc_blocks_more_than_4: //blocks left > 4 + + st1 { v9.16b}, [x2], #16 //AES final-4 block - store result + + rev64 v8.16b, v9.16b //GHASH final-4 block + + ldr q9, [x0], #16 //AES final-3 block - load plaintext + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + + ins v27.d[0], v8.d[1] //GHASH final-4 block - mid + movi v16.8b, #0 //suppress further partial tag feed in + pmull2 v28.1q, v8.2d, v20.2d //GHASH final-4 block - high + + eor v27.8b, v27.8b, v8.8b //GHASH final-4 block - mid + + pmull v26.1q, v8.1d, v20.1d //GHASH final-4 block - low + + eor v17.16b, v17.16b, v28.16b //GHASH final-4 block - high + pmull v27.1q, v27.1d, v21.1d //GHASH final-4 block - mid + + eor v19.16b, v19.16b, v26.16b //GHASH final-4 block - low + +.long 0xce047529 //eor3 v9.16b, v9.16b, v4.16b, v29.16b //AES final-3 block - result + eor v18.16b, v18.16b, v27.16b //GHASH final-4 block - mid +L128_enc_blocks_more_than_3: //blocks left > 3 + + st1 { v9.16b}, [x2], #16 //AES final-3 block - store result + + ldr q25, [x3, #112] //load h4l | h4h + ext v25.16b, v25.16b, v25.16b, #8 + + rev64 v8.16b, v9.16b //GHASH final-3 block + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + movi v16.8b, #0 //suppress further partial tag feed in + + ins v27.d[0], v8.d[1] //GHASH final-3 block - mid + ldr q24, [x3, #96] //load h4k | h3k + pmull v26.1q, v8.1d, v25.1d //GHASH final-3 block - low + + ldr q9, [x0], #16 //AES final-2 block - load plaintext + + eor v27.8b, v27.8b, v8.8b //GHASH final-3 block - mid + + ins v27.d[1], v27.d[0] //GHASH final-3 block - mid + eor v19.16b, v19.16b, v26.16b //GHASH final-3 block - low + +.long 0xce057529 //eor3 v9.16b, v9.16b, v5.16b, v29.16b //AES final-2 block - result + + pmull2 v27.1q, v27.2d, v24.2d //GHASH final-3 block - mid + pmull2 v28.1q, v8.2d, v25.2d //GHASH final-3 block - high + + eor v18.16b, v18.16b, v27.16b //GHASH final-3 block - mid + eor v17.16b, v17.16b, v28.16b //GHASH final-3 block - high +L128_enc_blocks_more_than_2: //blocks left > 2 + + st1 { v9.16b}, [x2], #16 //AES final-2 block - store result + + rev64 v8.16b, v9.16b //GHASH final-2 block + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + + ldr q9, [x0], #16 //AES final-1 block - load plaintext + + ins v27.d[0], v8.d[1] //GHASH final-2 block - mid + ldr q23, [x3, #80] //load h3l | h3h + ext v23.16b, v23.16b, v23.16b, #8 + movi v16.8b, #0 //suppress further partial tag feed in + + eor v27.8b, v27.8b, v8.8b //GHASH final-2 block - mid +.long 0xce067529 //eor3 v9.16b, v9.16b, v6.16b, v29.16b //AES final-1 block - result + + pmull2 v28.1q, v8.2d, v23.2d //GHASH final-2 block - high + + pmull v26.1q, v8.1d, v23.1d //GHASH final-2 block - low + pmull v27.1q, v27.1d, v24.1d //GHASH final-2 block - mid + + eor v17.16b, v17.16b, v28.16b //GHASH final-2 block - high + + eor v18.16b, v18.16b, v27.16b //GHASH final-2 block - mid + eor v19.16b, v19.16b, v26.16b //GHASH final-2 block - low +L128_enc_blocks_more_than_1: //blocks left > 1 + + st1 { v9.16b}, [x2], #16 //AES final-1 block - store result + + ldr q22, [x3, #64] //load h2l | h2h + ext v22.16b, v22.16b, v22.16b, #8 + rev64 v8.16b, v9.16b //GHASH final-1 block + ldr q9, [x0], #16 //AES final block - load plaintext + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + + movi v16.8b, #0 //suppress further partial tag feed in + ins v27.d[0], v8.d[1] //GHASH final-1 block - mid +.long 0xce077529 //eor3 v9.16b, v9.16b, v7.16b, v29.16b //AES final block - result + + pmull2 v28.1q, v8.2d, v22.2d //GHASH final-1 block - high + + eor v27.8b, v27.8b, v8.8b //GHASH final-1 block - mid + + ldr q21, [x3, #48] //load h2k | h1k + + ins v27.d[1], v27.d[0] //GHASH final-1 block - mid + + pmull v26.1q, v8.1d, v22.1d //GHASH final-1 block - low + pmull2 v27.1q, v27.2d, v21.2d //GHASH final-1 block - mid + + eor v17.16b, v17.16b, v28.16b //GHASH final-1 block - high + + eor v18.16b, v18.16b, v27.16b //GHASH final-1 block - mid + eor v19.16b, v19.16b, v26.16b //GHASH final-1 block - low +L128_enc_blocks_less_than_1: //blocks left <= 1 + + rev32 v30.16b, v30.16b + str q30, [x16] //store the updated counter + and x1, x1, #127 //bit_length %= 128 + + sub x1, x1, #128 //bit_length -= 128 + + neg x1, x1 //bit_length = 128 - #bits in input (in range [1,128]) + + mvn x6, xzr //temp0_x = 0xffffffffffffffff + ld1 { v26.16b}, [x2] //load existing bytes where the possibly partial last block is to be stored + and x1, x1, #127 //bit_length %= 128 + + lsr x6, x6, x1 //temp0_x is mask for top 64b of last block + mvn x7, xzr //temp1_x = 0xffffffffffffffff + cmp x1, #64 + + csel x13, x7, x6, lt + csel x14, x6, xzr, lt + + mov v0.d[1], x14 + mov v0.d[0], x13 //ctr0b is mask for last block + + and v9.16b, v9.16b, v0.16b //possibly partial last block has zeroes in highest bits + + rev64 v8.16b, v9.16b //GHASH final block + + bif v9.16b, v26.16b, v0.16b //insert existing bytes in top end of result before storing + st1 { v9.16b}, [x2] //store all 16B + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + + ins v16.d[0], v8.d[1] //GHASH final block - mid + + eor v16.8b, v16.8b, v8.8b //GHASH final block - mid + ldr q20, [x3, #32] //load h1l | h1h + ext v20.16b, v20.16b, v20.16b, #8 + + pmull v16.1q, v16.1d, v21.1d //GHASH final block - mid + + pmull2 v28.1q, v8.2d, v20.2d //GHASH final block - high + eor v18.16b, v18.16b, v16.16b //GHASH final block - mid + ldr d16, [x10] //MODULO - load modulo constant + + pmull v26.1q, v8.1d, v20.1d //GHASH final block - low + + eor v17.16b, v17.16b, v28.16b //GHASH final block - high + + eor v19.16b, v19.16b, v26.16b //GHASH final block - low + + ext v21.16b, v17.16b, v17.16b, #8 //MODULO - other top alignment + pmull v29.1q, v17.1d, v16.1d //MODULO - top 64b align with mid + +.long 0xce114e52 //eor3 v18.16b, v18.16b, v17.16b, v19.16b //MODULO - karatsuba tidy up + +.long 0xce1d5652 //eor3 v18.16b, v18.16b, v29.16b, v21.16b //MODULO - fold into mid + + pmull v17.1q, v18.1d, v16.1d //MODULO - mid 64b align with low + ext v21.16b, v18.16b, v18.16b, #8 //MODULO - other mid alignment + +.long 0xce115673 //eor3 v19.16b, v19.16b, v17.16b, v21.16b //MODULO - fold into low + ext v19.16b, v19.16b, v19.16b, #8 + rev64 v19.16b, v19.16b + st1 { v19.16b }, [x3] + mov x0, x9 + + ldp d10, d11, [sp, #16] + ldp d12, d13, [sp, #32] + ldp d14, d15, [sp, #48] + ldp d8, d9, [sp], #80 + ret + +L128_enc_ret: + mov w0, #0x0 + ret + +.globl _unroll8_eor3_aes_gcm_dec_128_kernel + +.align 4 +_unroll8_eor3_aes_gcm_dec_128_kernel: + AARCH64_VALID_CALL_TARGET + cbz x1, L128_dec_ret + stp d8, d9, [sp, #-80]! + lsr x9, x1, #3 + mov x16, x4 + mov x8, x5 + stp d10, d11, [sp, #16] + stp d12, d13, [sp, #32] + stp d14, d15, [sp, #48] + mov x5, #0xc200000000000000 + stp x5, xzr, [sp, #64] + add x10, sp, #64 + + mov x5, x9 + ld1 { v0.16b}, [x16] //CTR block 0 + + ldp q26, q27, [x8, #0] //load rk0, rk1 + sub x5, x5, #1 //byte_len - 1 + + mov x15, #0x100000000 //set up counter increment + movi v31.16b, #0x0 + mov v31.d[1], x15 + ld1 { v19.16b}, [x3] + ext v19.16b, v19.16b, v19.16b, #8 + rev64 v19.16b, v19.16b + + rev32 v30.16b, v0.16b //set up reversed counter + + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 0 - round 0 + + add v30.4s, v30.4s, v31.4s //CTR block 0 + + rev32 v1.16b, v30.16b //CTR block 1 + add v30.4s, v30.4s, v31.4s //CTR block 1 + + and x5, x5, #0xffffffffffffff80 //number of bytes to be processed in main loop (at least 1 byte must be handled by tail) + + rev32 v2.16b, v30.16b //CTR block 2 + add v30.4s, v30.4s, v31.4s //CTR block 2 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 1 - round 0 + + rev32 v3.16b, v30.16b //CTR block 3 + add v30.4s, v30.4s, v31.4s //CTR block 3 + + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 0 - round 1 + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 1 - round 1 + + rev32 v4.16b, v30.16b //CTR block 4 + add v30.4s, v30.4s, v31.4s //CTR block 4 + + rev32 v5.16b, v30.16b //CTR block 5 + add v30.4s, v30.4s, v31.4s //CTR block 5 + + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 2 - round 0 + + rev32 v6.16b, v30.16b //CTR block 6 + add v30.4s, v30.4s, v31.4s //CTR block 6 + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 5 - round 0 + + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 3 - round 0 + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 4 - round 0 + + rev32 v7.16b, v30.16b //CTR block 7 + + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 6 - round 0 + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 2 - round 1 + + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 7 - round 0 + + ldp q28, q26, [x8, #32] //load rk2, rk3 + + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 6 - round 1 + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 5 - round 1 + + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 4 - round 1 + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 7 - round 1 + + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 7 - round 2 + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 0 - round 2 + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 3 - round 1 + + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 6 - round 2 + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 2 - round 2 + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 5 - round 2 + + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 4 - round 2 + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 3 - round 2 + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 1 - round 2 + + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 6 - round 3 + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 2 - round 3 + + ldp q27, q28, [x8, #64] //load rk4, rk5 + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 5 - round 3 + + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 0 - round 3 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 7 - round 3 + + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 3 - round 3 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 1 - round 3 + + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 0 - round 4 + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 7 - round 4 + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 4 - round 3 + + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 6 - round 4 + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 1 - round 4 + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 3 - round 4 + + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 5 - round 4 + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 4 - round 4 + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 2 - round 4 + + ldp q26, q27, [x8, #96] //load rk6, rk7 + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 2 - round 5 + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 3 - round 5 + + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 6 - round 5 + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 1 - round 5 + + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 7 - round 5 + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 5 - round 5 + + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 4 - round 5 + + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 3 - round 6 + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 2 - round 6 + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 0 - round 5 + + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 5 - round 6 + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 4 - round 6 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 1 - round 6 + + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 0 - round 6 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 7 - round 6 + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 6 - round 6 + + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 3 - round 7 + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 4 - round 7 + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 1 - round 7 + + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 7 - round 7 + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 5 - round 7 + ldp q28, q26, [x8, #128] //load rk8, rk9 + + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 6 - round 7 + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 2 - round 7 + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 0 - round 7 + + add x5, x5, x0 + add v30.4s, v30.4s, v31.4s //CTR block 7 + + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 6 - round 8 + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 0 - round 8 + + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 1 - round 8 + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 7 - round 8 + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 3 - round 8 + + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 5 - round 8 + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 2 - round 8 + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 4 - round 8 + + aese v0.16b, v26.16b //AES block 0 - round 9 + aese v1.16b, v26.16b //AES block 1 - round 9 + aese v6.16b, v26.16b //AES block 6 - round 9 + + ldr q27, [x8, #160] //load rk10 + aese v4.16b, v26.16b //AES block 4 - round 9 + aese v3.16b, v26.16b //AES block 3 - round 9 + + aese v2.16b, v26.16b //AES block 2 - round 9 + aese v5.16b, v26.16b //AES block 5 - round 9 + aese v7.16b, v26.16b //AES block 7 - round 9 + + add x4, x0, x1, lsr #3 //end_input_ptr + cmp x0, x5 //check if we have <= 8 blocks + b.ge L128_dec_tail //handle tail + + ldp q8, q9, [x0], #32 //AES block 0, 1 - load ciphertext + +.long 0xce006d00 //eor3 v0.16b, v8.16b, v0.16b, v27.16b //AES block 0 - result +.long 0xce016d21 //eor3 v1.16b, v9.16b, v1.16b, v27.16b //AES block 1 - result + stp q0, q1, [x2], #32 //AES block 0, 1 - store result + + rev32 v0.16b, v30.16b //CTR block 8 + add v30.4s, v30.4s, v31.4s //CTR block 8 + ldp q10, q11, [x0], #32 //AES block 2, 3 - load ciphertext + + ldp q12, q13, [x0], #32 //AES block 4, 5 - load ciphertext + + rev32 v1.16b, v30.16b //CTR block 9 + add v30.4s, v30.4s, v31.4s //CTR block 9 + ldp q14, q15, [x0], #32 //AES block 6, 7 - load ciphertext + +.long 0xce036d63 //eor3 v3.16b, v11.16b, v3.16b, v27.16b //AES block 3 - result +.long 0xce026d42 //eor3 v2.16b, v10.16b, v2.16b, v27.16b //AES block 2 - result + stp q2, q3, [x2], #32 //AES block 2, 3 - store result + + rev32 v2.16b, v30.16b //CTR block 10 + add v30.4s, v30.4s, v31.4s //CTR block 10 + +.long 0xce066dc6 //eor3 v6.16b, v14.16b, v6.16b, v27.16b //AES block 6 - result + + rev32 v3.16b, v30.16b //CTR block 11 + add v30.4s, v30.4s, v31.4s //CTR block 11 + +.long 0xce046d84 //eor3 v4.16b, v12.16b, v4.16b, v27.16b //AES block 4 - result +.long 0xce056da5 //eor3 v5.16b, v13.16b, v5.16b, v27.16b //AES block 5 - result + stp q4, q5, [x2], #32 //AES block 4, 5 - store result + +.long 0xce076de7 //eor3 v7.16b, v15.16b, v7.16b, v27.16b //AES block 7 - result + stp q6, q7, [x2], #32 //AES block 6, 7 - store result + rev32 v4.16b, v30.16b //CTR block 12 + + cmp x0, x5 //check if we have <= 8 blocks + add v30.4s, v30.4s, v31.4s //CTR block 12 + b.ge L128_dec_prepretail //do prepretail + +L128_dec_main_loop: //main loop start + ldr q23, [x3, #176] //load h7l | h7h + ext v23.16b, v23.16b, v23.16b, #8 + ldr q25, [x3, #208] //load h8l | h8h + ext v25.16b, v25.16b, v25.16b, #8 + + rev64 v9.16b, v9.16b //GHASH block 8k+1 + rev64 v8.16b, v8.16b //GHASH block 8k + ext v19.16b, v19.16b, v19.16b, #8 //PRE 0 + + rev64 v14.16b, v14.16b //GHASH block 8k+6 + ldr q20, [x3, #128] //load h5l | h5h + ext v20.16b, v20.16b, v20.16b, #8 + ldr q22, [x3, #160] //load h6l | h6h + ext v22.16b, v22.16b, v22.16b, #8 + + eor v8.16b, v8.16b, v19.16b //PRE 1 + rev32 v5.16b, v30.16b //CTR block 8k+13 + add v30.4s, v30.4s, v31.4s //CTR block 8k+13 + + rev64 v10.16b, v10.16b //GHASH block 8k+2 + rev64 v12.16b, v12.16b //GHASH block 8k+4 + ldp q26, q27, [x8, #0] //load rk0, rk1 + + rev32 v6.16b, v30.16b //CTR block 8k+14 + add v30.4s, v30.4s, v31.4s //CTR block 8k+14 + ldr q21, [x3, #144] //load h6k | h5k + ldr q24, [x3, #192] //load h8k | h7k + + pmull2 v16.1q, v9.2d, v23.2d //GHASH block 8k+1 - high + pmull2 v17.1q, v8.2d, v25.2d //GHASH block 8k - high + rev64 v11.16b, v11.16b //GHASH block 8k+3 + + rev32 v7.16b, v30.16b //CTR block 8k+15 + trn1 v18.2d, v9.2d, v8.2d //GHASH block 8k, 8k+1 - mid + rev64 v13.16b, v13.16b //GHASH block 8k+5 + + pmull v23.1q, v9.1d, v23.1d //GHASH block 8k+1 - low + pmull v19.1q, v8.1d, v25.1d //GHASH block 8k - low + trn2 v8.2d, v9.2d, v8.2d //GHASH block 8k, 8k+1 - mid + + pmull2 v29.1q, v10.2d, v22.2d //GHASH block 8k+2 - high + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 0 + pmull2 v9.1q, v11.2d, v20.2d //GHASH block 8k+3 - high + + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 0 + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 0 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 0 + + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 0 + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 0 + eor v17.16b, v17.16b, v16.16b //GHASH block 8k+1 - high + + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 0 + eor v8.16b, v8.16b, v18.16b //GHASH block 8k, 8k+1 - mid + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 0 + + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 1 + eor v19.16b, v19.16b, v23.16b //GHASH block 8k+1 - low +.long 0xce1d2631 //eor3 v17.16b, v17.16b, v29.16b, v9.16b //GHASH block 8k+2, 8k+3 - high + + ldp q28, q26, [x8, #32] //load rk2, rk3 + trn1 v29.2d, v11.2d, v10.2d //GHASH block 8k+2, 8k+3 - mid + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 1 + + pmull v22.1q, v10.1d, v22.1d //GHASH block 8k+2 - low + trn2 v10.2d, v11.2d, v10.2d //GHASH block 8k+2, 8k+3 - mid + pmull2 v18.1q, v8.2d, v24.2d //GHASH block 8k - mid + + ldr q23, [x3, #80] //load h3l | h3h + ext v23.16b, v23.16b, v23.16b, #8 + ldr q25, [x3, #112] //load h4l | h4h + ext v25.16b, v25.16b, v25.16b, #8 + pmull v24.1q, v8.1d, v24.1d //GHASH block 8k+1 - mid + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 1 + + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 1 + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 1 + pmull v20.1q, v11.1d, v20.1d //GHASH block 8k+3 - low + + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 1 + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 1 + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 1 + + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 2 + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 2 +.long 0xce165273 //eor3 v19.16b, v19.16b, v22.16b, v20.16b //GHASH block 8k+2, 8k+3 - low + + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 2 + eor v10.16b, v10.16b, v29.16b //GHASH block 8k+2, 8k+3 - mid + ldr q20, [x3, #32] //load h1l | h1h + ext v20.16b, v20.16b, v20.16b, #8 + ldr q22, [x3, #64] //load h2l | h2h + ext v22.16b, v22.16b, v22.16b, #8 + + eor v18.16b, v18.16b, v24.16b //GHASH block 8k+1 - mid + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 2 + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 2 + + trn1 v16.2d, v13.2d, v12.2d //GHASH block 8k+4, 8k+5 - mid + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 2 + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 2 + + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 2 + pmull2 v29.1q, v10.2d, v21.2d //GHASH block 8k+2 - mid + pmull v21.1q, v10.1d, v21.1d //GHASH block 8k+3 - mid + + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 3 + rev64 v15.16b, v15.16b //GHASH block 8k+7 + pmull2 v8.1q, v12.2d, v25.2d //GHASH block 8k+4 - high + + ldp q27, q28, [x8, #64] //load rk4, rk5 + pmull v25.1q, v12.1d, v25.1d //GHASH block 8k+4 - low +.long 0xce157652 //eor3 v18.16b, v18.16b, v21.16b, v29.16b //GHASH block 8k+2, 8k+3 - mid + + ldr q21, [x3, #48] //load h2k | h1k + ldr q24, [x3, #96] //load h4k | h3k + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 3 + trn2 v12.2d, v13.2d, v12.2d //GHASH block 8k+4, 8k+5 - mid + + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 3 + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 3 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 3 + + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 3 + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 3 + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 3 + + pmull2 v10.1q, v13.2d, v23.2d //GHASH block 8k+5 - high + pmull v23.1q, v13.1d, v23.1d //GHASH block 8k+5 - low + pmull2 v11.1q, v14.2d, v22.2d //GHASH block 8k+6 - high + + pmull v22.1q, v14.1d, v22.1d //GHASH block 8k+6 - low + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 4 + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 4 + + eor v12.16b, v12.16b, v16.16b //GHASH block 8k+4, 8k+5 - mid + trn1 v13.2d, v15.2d, v14.2d //GHASH block 8k+6, 8k+7 - mid + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 4 + + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 4 + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 4 + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 4 + + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 4 + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 4 + trn2 v14.2d, v15.2d, v14.2d //GHASH block 8k+6, 8k+7 - mid + + ldp q26, q27, [x8, #96] //load rk6, rk7 + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 5 + pmull2 v16.1q, v12.2d, v24.2d //GHASH block 8k+4 - mid + + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 5 + eor v14.16b, v14.16b, v13.16b //GHASH block 8k+6, 8k+7 - mid + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 5 + + pmull v24.1q, v12.1d, v24.1d //GHASH block 8k+5 - mid + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 5 + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 5 + + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 5 + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 5 + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 5 + + pmull2 v12.1q, v15.2d, v20.2d //GHASH block 8k+7 - high +.long 0xce184252 //eor3 v18.16b, v18.16b, v24.16b, v16.16b //GHASH block 8k+4, 8k+5 - mid +.long 0xce195e73 //eor3 v19.16b, v19.16b, v25.16b, v23.16b //GHASH block 8k+4, 8k+5 - low + + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 6 +.long 0xce082a31 //eor3 v17.16b, v17.16b, v8.16b, v10.16b //GHASH block 8k+4, 8k+5 - high + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 6 + + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 6 + pmull2 v13.1q, v14.2d, v21.2d //GHASH block 8k+6 - mid + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 6 + + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 6 + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 6 + pmull v20.1q, v15.1d, v20.1d //GHASH block 8k+7 - low + + pmull v21.1q, v14.1d, v21.1d //GHASH block 8k+7 - mid + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 6 + add v30.4s, v30.4s, v31.4s //CTR block 8k+15 + +.long 0xce0b3231 //eor3 v17.16b, v17.16b, v11.16b, v12.16b //GHASH block 8k+6, 8k+7 - high + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 6 + ldp q28, q26, [x8, #128] //load rk8, rk9 + + ldr d16, [x10] //MODULO - load modulo constant +.long 0xce165273 //eor3 v19.16b, v19.16b, v22.16b, v20.16b //GHASH block 8k+6, 8k+7 - low + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 7 + + rev32 v20.16b, v30.16b //CTR block 8k+16 +.long 0xce153652 //eor3 v18.16b, v18.16b, v21.16b, v13.16b //GHASH block 8k+6, 8k+7 - mid + add v30.4s, v30.4s, v31.4s //CTR block 8k+16 + + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 7 + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 7 + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 7 + + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 7 + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 7 + rev32 v22.16b, v30.16b //CTR block 8k+17 + + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 7 + ext v21.16b, v17.16b, v17.16b, #8 //MODULO - other top alignment + pmull v29.1q, v17.1d, v16.1d //MODULO - top 64b align with mid + +.long 0xce114e52 //eor3 v18.16b, v18.16b, v17.16b, v19.16b //MODULO - karatsuba tidy up + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 7 + add v30.4s, v30.4s, v31.4s //CTR block 8k+17 + + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 8 + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 8 + ldp q8, q9, [x0], #32 //AES block 8k+8, 8k+9 - load ciphertext + + ldp q10, q11, [x0], #32 //AES block 8k+10, 8k+11 - load ciphertext + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 8 + rev32 v23.16b, v30.16b //CTR block 8k+18 + + ldp q12, q13, [x0], #32 //AES block 8k+12, 8k+13 - load ciphertext + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 8 +.long 0xce1d5652 //eor3 v18.16b, v18.16b, v29.16b, v21.16b //MODULO - fold into mid + + ldp q14, q15, [x0], #32 //AES block 8k+14, 8k+15 - load ciphertext + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 8 + add v30.4s, v30.4s, v31.4s //CTR block 8k+18 + + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 8 + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 8 + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 8 + + aese v0.16b, v26.16b //AES block 8k+8 - round 9 + aese v1.16b, v26.16b //AES block 8k+9 - round 9 + ldr q27, [x8, #160] //load rk10 + + aese v6.16b, v26.16b //AES block 8k+14 - round 9 + pmull v17.1q, v18.1d, v16.1d //MODULO - mid 64b align with low + aese v2.16b, v26.16b //AES block 8k+10 - round 9 + + aese v7.16b, v26.16b //AES block 8k+15 - round 9 + aese v4.16b, v26.16b //AES block 8k+12 - round 9 + ext v21.16b, v18.16b, v18.16b, #8 //MODULO - other mid alignment + + rev32 v25.16b, v30.16b //CTR block 8k+19 + add v30.4s, v30.4s, v31.4s //CTR block 8k+19 + + aese v3.16b, v26.16b //AES block 8k+11 - round 9 + aese v5.16b, v26.16b //AES block 8k+13 - round 9 +.long 0xce016d21 //eor3 v1.16b, v9.16b, v1.16b, v27.16b //AES block 8k+9 - result + +.long 0xce006d00 //eor3 v0.16b, v8.16b, v0.16b, v27.16b //AES block 8k+8 - result +.long 0xce076de7 //eor3 v7.16b, v15.16b, v7.16b, v27.16b //AES block 8k+15 - result +.long 0xce066dc6 //eor3 v6.16b, v14.16b, v6.16b, v27.16b //AES block 8k+14 - result + +.long 0xce026d42 //eor3 v2.16b, v10.16b, v2.16b, v27.16b //AES block 8k+10 - result + stp q0, q1, [x2], #32 //AES block 8k+8, 8k+9 - store result + mov v1.16b, v22.16b //CTR block 8k+17 + +.long 0xce046d84 //eor3 v4.16b, v12.16b, v4.16b, v27.16b //AES block 8k+12 - result +.long 0xce115673 //eor3 v19.16b, v19.16b, v17.16b, v21.16b //MODULO - fold into low + mov v0.16b, v20.16b //CTR block 8k+16 + +.long 0xce036d63 //eor3 v3.16b, v11.16b, v3.16b, v27.16b //AES block 8k+11 - result + cmp x0, x5 //LOOP CONTROL + stp q2, q3, [x2], #32 //AES block 8k+10, 8k+11 - store result + +.long 0xce056da5 //eor3 v5.16b, v13.16b, v5.16b, v27.16b //AES block 8k+13 - result + mov v2.16b, v23.16b //CTR block 8k+18 + + stp q4, q5, [x2], #32 //AES block 8k+12, 8k+13 - store result + rev32 v4.16b, v30.16b //CTR block 8k+20 + add v30.4s, v30.4s, v31.4s //CTR block 8k+20 + + stp q6, q7, [x2], #32 //AES block 8k+14, 8k+15 - store result + mov v3.16b, v25.16b //CTR block 8k+19 + b.lt L128_dec_main_loop + +L128_dec_prepretail: //PREPRETAIL + rev64 v11.16b, v11.16b //GHASH block 8k+3 + ext v19.16b, v19.16b, v19.16b, #8 //PRE 0 + rev64 v8.16b, v8.16b //GHASH block 8k + + rev64 v10.16b, v10.16b //GHASH block 8k+2 + rev32 v5.16b, v30.16b //CTR block 8k+13 + ldp q26, q27, [x8, #0] //load rk0, rk1 + + ldr q23, [x3, #176] //load h7l | h7h + ext v23.16b, v23.16b, v23.16b, #8 + ldr q25, [x3, #208] //load h8l | h8h + ext v25.16b, v25.16b, v25.16b, #8 + eor v8.16b, v8.16b, v19.16b //PRE 1 + rev64 v9.16b, v9.16b //GHASH block 8k+1 + + add v30.4s, v30.4s, v31.4s //CTR block 8k+13 + ldr q20, [x3, #128] //load h5l | h5h + ext v20.16b, v20.16b, v20.16b, #8 + ldr q22, [x3, #160] //load h6l | h6h + ext v22.16b, v22.16b, v22.16b, #8 + rev64 v13.16b, v13.16b //GHASH block 8k+5 + + rev64 v12.16b, v12.16b //GHASH block 8k+4 + + rev64 v14.16b, v14.16b //GHASH block 8k+6 + + ldr q21, [x3, #144] //load h6k | h5k + ldr q24, [x3, #192] //load h8k | h7k + rev32 v6.16b, v30.16b //CTR block 8k+14 + add v30.4s, v30.4s, v31.4s //CTR block 8k+14 + + pmull2 v16.1q, v9.2d, v23.2d //GHASH block 8k+1 - high + pmull v19.1q, v8.1d, v25.1d //GHASH block 8k - low + pmull2 v17.1q, v8.2d, v25.2d //GHASH block 8k - high + + trn1 v18.2d, v9.2d, v8.2d //GHASH block 8k, 8k+1 - mid + trn2 v8.2d, v9.2d, v8.2d //GHASH block 8k, 8k+1 - mid + pmull2 v29.1q, v10.2d, v22.2d //GHASH block 8k+2 - high + + pmull v23.1q, v9.1d, v23.1d //GHASH block 8k+1 - low + pmull2 v9.1q, v11.2d, v20.2d //GHASH block 8k+3 - high + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 0 + + eor v17.16b, v17.16b, v16.16b //GHASH block 8k+1 - high + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 0 + eor v8.16b, v8.16b, v18.16b //GHASH block 8k, 8k+1 - mid + + pmull v22.1q, v10.1d, v22.1d //GHASH block 8k+2 - low + rev32 v7.16b, v30.16b //CTR block 8k+15 + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 0 + +.long 0xce1d2631 //eor3 v17.16b, v17.16b, v29.16b, v9.16b //GHASH block 8k+2, 8k+3 - high + trn1 v29.2d, v11.2d, v10.2d //GHASH block 8k+2, 8k+3 - mid + trn2 v10.2d, v11.2d, v10.2d //GHASH block 8k+2, 8k+3 - mid + + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 0 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 0 + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 0 + + pmull2 v18.1q, v8.2d, v24.2d //GHASH block 8k - mid + pmull v24.1q, v8.1d, v24.1d //GHASH block 8k+1 - mid + pmull v20.1q, v11.1d, v20.1d //GHASH block 8k+3 - low + + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 1 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 0 + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 0 + + eor v19.16b, v19.16b, v23.16b //GHASH block 8k+1 - low + eor v10.16b, v10.16b, v29.16b //GHASH block 8k+2, 8k+3 - mid + eor v18.16b, v18.16b, v24.16b //GHASH block 8k+1 - mid + + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 1 + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 1 + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 1 + + ldp q28, q26, [x8, #32] //load rk2, rk3 +.long 0xce165273 //eor3 v19.16b, v19.16b, v22.16b, v20.16b //GHASH block 8k+2, 8k+3 - low + pmull2 v29.1q, v10.2d, v21.2d //GHASH block 8k+2 - mid + + ldr q23, [x3, #80] //load h3l | h3h + ext v23.16b, v23.16b, v23.16b, #8 + ldr q25, [x3, #112] //load h4l | h4h + ext v25.16b, v25.16b, v25.16b, #8 + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 1 + pmull v21.1q, v10.1d, v21.1d //GHASH block 8k+3 - mid + + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 1 + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 1 + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 1 + + ldr q20, [x3, #32] //load h1l | h1h + ext v20.16b, v20.16b, v20.16b, #8 + ldr q22, [x3, #64] //load h2l | h2h + ext v22.16b, v22.16b, v22.16b, #8 +.long 0xce157652 //eor3 v18.16b, v18.16b, v21.16b, v29.16b //GHASH block 8k+2, 8k+3 - mid + + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 2 + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 2 + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 2 + + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 2 + trn1 v16.2d, v13.2d, v12.2d //GHASH block 8k+4, 8k+5 - mid + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 2 + + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 2 + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 2 + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 2 + + pmull2 v8.1q, v12.2d, v25.2d //GHASH block 8k+4 - high + pmull v25.1q, v12.1d, v25.1d //GHASH block 8k+4 - low + trn2 v12.2d, v13.2d, v12.2d //GHASH block 8k+4, 8k+5 - mid + + ldp q27, q28, [x8, #64] //load rk4, rk5 + rev64 v15.16b, v15.16b //GHASH block 8k+7 + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 3 + + ldr q21, [x3, #48] //load h2k | h1k + ldr q24, [x3, #96] //load h4k | h3k + pmull2 v10.1q, v13.2d, v23.2d //GHASH block 8k+5 - high + pmull v23.1q, v13.1d, v23.1d //GHASH block 8k+5 - low + + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 3 + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 3 + trn1 v13.2d, v15.2d, v14.2d //GHASH block 8k+6, 8k+7 - mid + + pmull2 v11.1q, v14.2d, v22.2d //GHASH block 8k+6 - high + pmull v22.1q, v14.1d, v22.1d //GHASH block 8k+6 - low + trn2 v14.2d, v15.2d, v14.2d //GHASH block 8k+6, 8k+7 - mid + + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 3 + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 3 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 3 + + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 3 + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 3 + eor v12.16b, v12.16b, v16.16b //GHASH block 8k+4, 8k+5 - mid + +.long 0xce082a31 //eor3 v17.16b, v17.16b, v8.16b, v10.16b //GHASH block 8k+4, 8k+5 - high + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 4 + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 4 + + eor v14.16b, v14.16b, v13.16b //GHASH block 8k+6, 8k+7 - mid + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 4 + pmull2 v16.1q, v12.2d, v24.2d //GHASH block 8k+4 - mid + + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 4 + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 4 + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 4 + + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 4 + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 4 + pmull v24.1q, v12.1d, v24.1d //GHASH block 8k+5 - mid + + pmull2 v12.1q, v15.2d, v20.2d //GHASH block 8k+7 - high + pmull2 v13.1q, v14.2d, v21.2d //GHASH block 8k+6 - mid + pmull v21.1q, v14.1d, v21.1d //GHASH block 8k+7 - mid + + ldp q26, q27, [x8, #96] //load rk6, rk7 +.long 0xce184252 //eor3 v18.16b, v18.16b, v24.16b, v16.16b //GHASH block 8k+4, 8k+5 - mid + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 5 + + ldr d16, [x10] //MODULO - load modulo constant + pmull v20.1q, v15.1d, v20.1d //GHASH block 8k+7 - low +.long 0xce195e73 //eor3 v19.16b, v19.16b, v25.16b, v23.16b //GHASH block 8k+4, 8k+5 - low + + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 5 + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 5 + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 5 + + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 5 + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 5 + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 5 + + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 5 +.long 0xce153652 //eor3 v18.16b, v18.16b, v21.16b, v13.16b //GHASH block 8k+6, 8k+7 - mid +.long 0xce165273 //eor3 v19.16b, v19.16b, v22.16b, v20.16b //GHASH block 8k+6, 8k+7 - low + + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 6 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 6 + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 6 + +.long 0xce0b3231 //eor3 v17.16b, v17.16b, v11.16b, v12.16b //GHASH block 8k+6, 8k+7 - high + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 6 + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 6 + + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 6 + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 6 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 6 + + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 7 +.long 0xce114e52 //eor3 v18.16b, v18.16b, v17.16b, v19.16b //MODULO - karatsuba tidy up + ldp q28, q26, [x8, #128] //load rk8, rk9 + + pmull v29.1q, v17.1d, v16.1d //MODULO - top 64b align with mid + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 7 + ext v21.16b, v17.16b, v17.16b, #8 //MODULO - other top alignment + + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 7 + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 7 + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 7 + + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 7 + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 7 + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 7 + +.long 0xce1d5652 //eor3 v18.16b, v18.16b, v29.16b, v21.16b //MODULO - fold into mid + ldr q27, [x8, #160] //load rk10 + + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 8 + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 8 + + pmull v17.1q, v18.1d, v16.1d //MODULO - mid 64b align with low + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 8 + ext v21.16b, v18.16b, v18.16b, #8 //MODULO - other mid alignment + + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 8 + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 8 + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 8 + + aese v6.16b, v26.16b //AES block 8k+14 - round 9 + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 8 + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 8 + +.long 0xce115673 //eor3 v19.16b, v19.16b, v17.16b, v21.16b //MODULO - fold into low + add v30.4s, v30.4s, v31.4s //CTR block 8k+15 + aese v2.16b, v26.16b //AES block 8k+10 - round 9 + + aese v3.16b, v26.16b //AES block 8k+11 - round 9 + aese v5.16b, v26.16b //AES block 8k+13 - round 9 + aese v0.16b, v26.16b //AES block 8k+8 - round 9 + + aese v4.16b, v26.16b //AES block 8k+12 - round 9 + aese v1.16b, v26.16b //AES block 8k+9 - round 9 + aese v7.16b, v26.16b //AES block 8k+15 - round 9 + +L128_dec_tail: //TAIL + + mov v29.16b, v27.16b + sub x5, x4, x0 //main_end_input_ptr is number of bytes left to process + + cmp x5, #112 + + ldp q24, q25, [x3, #192] //load h8k | h7k + ext v25.16b, v25.16b, v25.16b, #8 + ldr q9, [x0], #16 //AES block 8k+8 - load ciphertext + + ldp q20, q21, [x3, #128] //load h5l | h5h + ext v20.16b, v20.16b, v20.16b, #8 + ext v16.16b, v19.16b, v19.16b, #8 //prepare final partial tag + + ldp q22, q23, [x3, #160] //load h6l | h6h + ext v22.16b, v22.16b, v22.16b, #8 + ext v23.16b, v23.16b, v23.16b, #8 + +.long 0xce00752c //eor3 v12.16b, v9.16b, v0.16b, v29.16b //AES block 8k+8 - result + b.gt L128_dec_blocks_more_than_7 + + cmp x5, #96 + mov v7.16b, v6.16b + movi v19.8b, #0 + + movi v17.8b, #0 + mov v6.16b, v5.16b + mov v5.16b, v4.16b + + mov v4.16b, v3.16b + mov v3.16b, v2.16b + mov v2.16b, v1.16b + + movi v18.8b, #0 + sub v30.4s, v30.4s, v31.4s + b.gt L128_dec_blocks_more_than_6 + + cmp x5, #80 + sub v30.4s, v30.4s, v31.4s + + mov v7.16b, v6.16b + mov v6.16b, v5.16b + mov v5.16b, v4.16b + + mov v4.16b, v3.16b + mov v3.16b, v1.16b + b.gt L128_dec_blocks_more_than_5 + + cmp x5, #64 + + mov v7.16b, v6.16b + mov v6.16b, v5.16b + mov v5.16b, v4.16b + + mov v4.16b, v1.16b + sub v30.4s, v30.4s, v31.4s + b.gt L128_dec_blocks_more_than_4 + + sub v30.4s, v30.4s, v31.4s + mov v7.16b, v6.16b + mov v6.16b, v5.16b + + mov v5.16b, v1.16b + cmp x5, #48 + b.gt L128_dec_blocks_more_than_3 + + sub v30.4s, v30.4s, v31.4s + mov v7.16b, v6.16b + cmp x5, #32 + + ldr q24, [x3, #96] //load h4k | h3k + mov v6.16b, v1.16b + b.gt L128_dec_blocks_more_than_2 + + cmp x5, #16 + + mov v7.16b, v1.16b + sub v30.4s, v30.4s, v31.4s + b.gt L128_dec_blocks_more_than_1 + + sub v30.4s, v30.4s, v31.4s + ldr q21, [x3, #48] //load h2k | h1k + b L128_dec_blocks_less_than_1 +L128_dec_blocks_more_than_7: //blocks left > 7 + rev64 v8.16b, v9.16b //GHASH final-7 block + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + + ins v18.d[0], v24.d[1] //GHASH final-7 block - mid + + pmull v19.1q, v8.1d, v25.1d //GHASH final-7 block - low + ins v27.d[0], v8.d[1] //GHASH final-7 block - mid + + movi v16.8b, #0 //suppress further partial tag feed in + ldr q9, [x0], #16 //AES final-6 block - load ciphertext + + eor v27.8b, v27.8b, v8.8b //GHASH final-7 block - mid + + pmull2 v17.1q, v8.2d, v25.2d //GHASH final-7 block - high + st1 { v12.16b}, [x2], #16 //AES final-7 block - store result +.long 0xce01752c //eor3 v12.16b, v9.16b, v1.16b, v29.16b //AES final-6 block - result + + pmull v18.1q, v27.1d, v18.1d //GHASH final-7 block - mid +L128_dec_blocks_more_than_6: //blocks left > 6 + + rev64 v8.16b, v9.16b //GHASH final-6 block + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + + ins v27.d[0], v8.d[1] //GHASH final-6 block - mid + + eor v27.8b, v27.8b, v8.8b //GHASH final-6 block - mid + + pmull v26.1q, v8.1d, v23.1d //GHASH final-6 block - low + ldr q9, [x0], #16 //AES final-5 block - load ciphertext + movi v16.8b, #0 //suppress further partial tag feed in + + pmull v27.1q, v27.1d, v24.1d //GHASH final-6 block - mid + st1 { v12.16b}, [x2], #16 //AES final-6 block - store result + pmull2 v28.1q, v8.2d, v23.2d //GHASH final-6 block - high + + eor v19.16b, v19.16b, v26.16b //GHASH final-6 block - low + eor v17.16b, v17.16b, v28.16b //GHASH final-6 block - high + + eor v18.16b, v18.16b, v27.16b //GHASH final-6 block - mid +.long 0xce02752c //eor3 v12.16b, v9.16b, v2.16b, v29.16b //AES final-5 block - result +L128_dec_blocks_more_than_5: //blocks left > 5 + + rev64 v8.16b, v9.16b //GHASH final-5 block + + ldr q9, [x0], #16 //AES final-4 block - load ciphertext + st1 { v12.16b}, [x2], #16 //AES final-5 block - store result + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + + ins v27.d[0], v8.d[1] //GHASH final-5 block - mid + +.long 0xce03752c //eor3 v12.16b, v9.16b, v3.16b, v29.16b //AES final-4 block - result + + eor v27.8b, v27.8b, v8.8b //GHASH final-5 block - mid + + ins v27.d[1], v27.d[0] //GHASH final-5 block - mid + pmull v26.1q, v8.1d, v22.1d //GHASH final-5 block - low + movi v16.8b, #0 //suppress further partial tag feed in + + pmull2 v27.1q, v27.2d, v21.2d //GHASH final-5 block - mid + pmull2 v28.1q, v8.2d, v22.2d //GHASH final-5 block - high + eor v19.16b, v19.16b, v26.16b //GHASH final-5 block - low + + eor v18.16b, v18.16b, v27.16b //GHASH final-5 block - mid + eor v17.16b, v17.16b, v28.16b //GHASH final-5 block - high +L128_dec_blocks_more_than_4: //blocks left > 4 + + rev64 v8.16b, v9.16b //GHASH final-4 block + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + ldr q9, [x0], #16 //AES final-3 block - load ciphertext + + ins v27.d[0], v8.d[1] //GHASH final-4 block - mid + movi v16.8b, #0 //suppress further partial tag feed in + pmull2 v28.1q, v8.2d, v20.2d //GHASH final-4 block - high + + pmull v26.1q, v8.1d, v20.1d //GHASH final-4 block - low + + eor v17.16b, v17.16b, v28.16b //GHASH final-4 block - high + + st1 { v12.16b}, [x2], #16 //AES final-4 block - store result + eor v27.8b, v27.8b, v8.8b //GHASH final-4 block - mid + +.long 0xce04752c //eor3 v12.16b, v9.16b, v4.16b, v29.16b //AES final-3 block - result + eor v19.16b, v19.16b, v26.16b //GHASH final-4 block - low + + pmull v27.1q, v27.1d, v21.1d //GHASH final-4 block - mid + + eor v18.16b, v18.16b, v27.16b //GHASH final-4 block - mid +L128_dec_blocks_more_than_3: //blocks left > 3 + + st1 { v12.16b}, [x2], #16 //AES final-3 block - store result + rev64 v8.16b, v9.16b //GHASH final-3 block + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + + ins v27.d[0], v8.d[1] //GHASH final-3 block - mid + + ldr q25, [x3, #112] //load h4l | h4h + ext v25.16b, v25.16b, v25.16b, #8 + ldr q24, [x3, #96] //load h4k | h3k + + eor v27.8b, v27.8b, v8.8b //GHASH final-3 block - mid + + ldr q9, [x0], #16 //AES final-2 block - load ciphertext + + ins v27.d[1], v27.d[0] //GHASH final-3 block - mid + pmull v26.1q, v8.1d, v25.1d //GHASH final-3 block - low + pmull2 v28.1q, v8.2d, v25.2d //GHASH final-3 block - high + + movi v16.8b, #0 //suppress further partial tag feed in +.long 0xce05752c //eor3 v12.16b, v9.16b, v5.16b, v29.16b //AES final-2 block - result + eor v19.16b, v19.16b, v26.16b //GHASH final-3 block - low + + pmull2 v27.1q, v27.2d, v24.2d //GHASH final-3 block - mid + + eor v17.16b, v17.16b, v28.16b //GHASH final-3 block - high + eor v18.16b, v18.16b, v27.16b //GHASH final-3 block - mid +L128_dec_blocks_more_than_2: //blocks left > 2 + + rev64 v8.16b, v9.16b //GHASH final-2 block + + st1 { v12.16b}, [x2], #16 //AES final-2 block - store result + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + ldr q23, [x3, #80] //load h3l | h3h + ext v23.16b, v23.16b, v23.16b, #8 + movi v16.8b, #0 //suppress further partial tag feed in + + ins v27.d[0], v8.d[1] //GHASH final-2 block - mid + + eor v27.8b, v27.8b, v8.8b //GHASH final-2 block - mid + + pmull v26.1q, v8.1d, v23.1d //GHASH final-2 block - low + + pmull2 v28.1q, v8.2d, v23.2d //GHASH final-2 block - high + pmull v27.1q, v27.1d, v24.1d //GHASH final-2 block - mid + ldr q9, [x0], #16 //AES final-1 block - load ciphertext + + eor v18.16b, v18.16b, v27.16b //GHASH final-2 block - mid + + eor v19.16b, v19.16b, v26.16b //GHASH final-2 block - low + +.long 0xce06752c //eor3 v12.16b, v9.16b, v6.16b, v29.16b //AES final-1 block - result + eor v17.16b, v17.16b, v28.16b //GHASH final-2 block - high +L128_dec_blocks_more_than_1: //blocks left > 1 + + st1 { v12.16b}, [x2], #16 //AES final-1 block - store result + rev64 v8.16b, v9.16b //GHASH final-1 block + + ldr q22, [x3, #64] //load h2l | h2h + ext v22.16b, v22.16b, v22.16b, #8 + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + + movi v16.8b, #0 //suppress further partial tag feed in + + ins v27.d[0], v8.d[1] //GHASH final-1 block - mid + + ldr q9, [x0], #16 //AES final block - load ciphertext + pmull2 v28.1q, v8.2d, v22.2d //GHASH final-1 block - high + + eor v27.8b, v27.8b, v8.8b //GHASH final-1 block - mid + eor v17.16b, v17.16b, v28.16b //GHASH final-1 block - high + ldr q21, [x3, #48] //load h2k | h1k + + ins v27.d[1], v27.d[0] //GHASH final-1 block - mid +.long 0xce07752c //eor3 v12.16b, v9.16b, v7.16b, v29.16b //AES final block - result + + pmull v26.1q, v8.1d, v22.1d //GHASH final-1 block - low + + pmull2 v27.1q, v27.2d, v21.2d //GHASH final-1 block - mid + + eor v19.16b, v19.16b, v26.16b //GHASH final-1 block - low + + eor v18.16b, v18.16b, v27.16b //GHASH final-1 block - mid +L128_dec_blocks_less_than_1: //blocks left <= 1 + + and x1, x1, #127 //bit_length %= 128 + + sub x1, x1, #128 //bit_length -= 128 + + neg x1, x1 //bit_length = 128 - #bits in input (in range [1,128]) + + mvn x6, xzr //temp0_x = 0xffffffffffffffff + and x1, x1, #127 //bit_length %= 128 + + lsr x6, x6, x1 //temp0_x is mask for top 64b of last block + cmp x1, #64 + mvn x7, xzr //temp1_x = 0xffffffffffffffff + + csel x13, x7, x6, lt + csel x14, x6, xzr, lt + + mov v0.d[1], x14 + mov v0.d[0], x13 //ctr0b is mask for last block + + ldr q20, [x3, #32] //load h1l | h1h + ext v20.16b, v20.16b, v20.16b, #8 + ld1 { v26.16b}, [x2] //load existing bytes where the possibly partial last block is to be stored + + and v9.16b, v9.16b, v0.16b //possibly partial last block has zeroes in highest bits + + rev64 v8.16b, v9.16b //GHASH final block + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + + pmull2 v28.1q, v8.2d, v20.2d //GHASH final block - high + ins v16.d[0], v8.d[1] //GHASH final block - mid + + eor v17.16b, v17.16b, v28.16b //GHASH final block - high + eor v16.8b, v16.8b, v8.8b //GHASH final block - mid + + bif v12.16b, v26.16b, v0.16b //insert existing bytes in top end of result before storing + + pmull v16.1q, v16.1d, v21.1d //GHASH final block - mid + st1 { v12.16b}, [x2] //store all 16B + + pmull v26.1q, v8.1d, v20.1d //GHASH final block - low + + eor v18.16b, v18.16b, v16.16b //GHASH final block - mid + ldr d16, [x10] //MODULO - load modulo constant + + eor v19.16b, v19.16b, v26.16b //GHASH final block - low + + eor v14.16b, v17.16b, v19.16b //MODULO - karatsuba tidy up + + pmull v21.1q, v17.1d, v16.1d //MODULO - top 64b align with mid + ext v17.16b, v17.16b, v17.16b, #8 //MODULO - other top alignment + + eor v18.16b, v18.16b, v14.16b //MODULO - karatsuba tidy up + +.long 0xce115652 //eor3 v18.16b, v18.16b, v17.16b, v21.16b //MODULO - fold into mid + + pmull v17.1q, v18.1d, v16.1d //MODULO - mid 64b align with low + ext v18.16b, v18.16b, v18.16b, #8 //MODULO - other mid alignment + +.long 0xce124673 //eor3 v19.16b, v19.16b, v18.16b, v17.16b //MODULO - fold into low + ext v19.16b, v19.16b, v19.16b, #8 + rev64 v19.16b, v19.16b + st1 { v19.16b }, [x3] + rev32 v30.16b, v30.16b + + str q30, [x16] //store the updated counter + + mov x0, x9 + + ldp d10, d11, [sp, #16] + ldp d12, d13, [sp, #32] + ldp d14, d15, [sp, #48] + ldp d8, d9, [sp], #80 + ret +L128_dec_ret: + mov w0, #0x0 + ret + +.globl _unroll8_eor3_aes_gcm_enc_192_kernel + +.align 4 +_unroll8_eor3_aes_gcm_enc_192_kernel: + AARCH64_VALID_CALL_TARGET + cbz x1, L192_enc_ret + stp d8, d9, [sp, #-80]! + lsr x9, x1, #3 + mov x16, x4 + mov x8, x5 + stp d10, d11, [sp, #16] + stp d12, d13, [sp, #32] + stp d14, d15, [sp, #48] + mov x5, #0xc200000000000000 + stp x5, xzr, [sp, #64] + add x10, sp, #64 + + mov x5, x9 + ld1 { v0.16b}, [x16] //CTR block 0 + + mov x15, #0x100000000 //set up counter increment + movi v31.16b, #0x0 + mov v31.d[1], x15 + + rev32 v30.16b, v0.16b //set up reversed counter + + add v30.4s, v30.4s, v31.4s //CTR block 0 + + rev32 v1.16b, v30.16b //CTR block 1 + add v30.4s, v30.4s, v31.4s //CTR block 1 + + rev32 v2.16b, v30.16b //CTR block 2 + add v30.4s, v30.4s, v31.4s //CTR block 2 + + rev32 v3.16b, v30.16b //CTR block 3 + add v30.4s, v30.4s, v31.4s //CTR block 3 + + rev32 v4.16b, v30.16b //CTR block 4 + add v30.4s, v30.4s, v31.4s //CTR block 4 + sub x5, x5, #1 //byte_len - 1 + + and x5, x5, #0xffffffffffffff80 //number of bytes to be processed in main loop (at least 1 byte must be handled by tail) + + rev32 v5.16b, v30.16b //CTR block 5 + add v30.4s, v30.4s, v31.4s //CTR block 5 + ldp q26, q27, [x8, #0] //load rk0, rk1 + + add x5, x5, x0 + + rev32 v6.16b, v30.16b //CTR block 6 + add v30.4s, v30.4s, v31.4s //CTR block 6 + + rev32 v7.16b, v30.16b //CTR block 7 + + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 5 - round 0 + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 4 - round 0 + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 3 - round 0 + + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 0 - round 0 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 1 - round 0 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 7 - round 0 + + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 6 - round 0 + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 2 - round 0 + ldp q28, q26, [x8, #32] //load rk2, rk3 + + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 5 - round 1 + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 7 - round 1 + + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 2 - round 1 + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 3 - round 1 + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 6 - round 1 + + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 5 - round 2 + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 4 - round 1 + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 0 - round 1 + + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 1 - round 1 + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 7 - round 2 + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 3 - round 2 + + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 2 - round 2 + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 0 - round 2 + + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 1 - round 2 + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 4 - round 2 + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 6 - round 2 + + ldp q27, q28, [x8, #64] //load rk4, rk5 + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 4 - round 3 + + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 7 - round 3 + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 3 - round 3 + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 2 - round 3 + + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 1 - round 3 + + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 0 - round 3 + + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 6 - round 3 + + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 0 - round 4 + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 1 - round 4 + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 5 - round 3 + + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 3 - round 4 + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 2 - round 4 + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 4 - round 4 + + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 6 - round 4 + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 7 - round 4 + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 5 - round 4 + + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 1 - round 5 + ldp q26, q27, [x8, #96] //load rk6, rk7 + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 2 - round 5 + + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 4 - round 5 + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 7 - round 5 + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 0 - round 5 + + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 5 - round 5 + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 6 - round 5 + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 3 - round 5 + + add v30.4s, v30.4s, v31.4s //CTR block 7 + + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 5 - round 6 + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 4 - round 6 + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 3 - round 6 + + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 2 - round 6 + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 6 - round 6 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 1 - round 6 + + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 0 - round 6 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 7 - round 6 + ldp q28, q26, [x8, #128] //load rk8, rk9 + + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 6 - round 7 + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 3 - round 7 + + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 4 - round 7 + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 0 - round 7 + + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 7 - round 7 + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 1 - round 7 + + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 2 - round 7 + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 5 - round 7 + + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 7 - round 8 + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 0 - round 8 + + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 4 - round 8 + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 3 - round 8 + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 5 - round 8 + + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 2 - round 8 + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 1 - round 8 + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 6 - round 8 + + add x4, x0, x1, lsr #3 //end_input_ptr + cmp x0, x5 //check if we have <= 8 blocks + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 3 - round 9 + + ld1 { v19.16b}, [x3] + ext v19.16b, v19.16b, v19.16b, #8 + rev64 v19.16b, v19.16b + ldp q27, q28, [x8, #160] //load rk10, rk11 + + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 6 - round 9 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 1 - round 9 + + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 5 - round 9 + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 2 - round 9 + + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 0 - round 9 + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 4 - round 9 + + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 14 - round 10 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 7 - round 9 + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 11 - round 10 + + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 9 - round 10 + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 13 - round 10 + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 12 - round 10 + + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8 - round 10 + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 10 - round 10 + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 15 - round 10 + + aese v6.16b, v28.16b //AES block 14 - round 11 + aese v3.16b, v28.16b //AES block 11 - round 11 + + aese v4.16b, v28.16b //AES block 12 - round 11 + aese v7.16b, v28.16b //AES block 15 - round 11 + ldr q26, [x8, #192] //load rk12 + + aese v1.16b, v28.16b //AES block 9 - round 11 + aese v5.16b, v28.16b //AES block 13 - round 11 + + aese v2.16b, v28.16b //AES block 10 - round 11 + aese v0.16b, v28.16b //AES block 8 - round 11 + b.ge L192_enc_tail //handle tail + + ldp q8, q9, [x0], #32 //AES block 0, 1 - load plaintext + + ldp q10, q11, [x0], #32 //AES block 2, 3 - load plaintext + + ldp q12, q13, [x0], #32 //AES block 4, 5 - load plaintext + + ldp q14, q15, [x0], #32 //AES block 6, 7 - load plaintext + +.long 0xce006908 //eor3 v8.16b, v8.16b, v0.16b, v26.16b //AES block 0 - result + rev32 v0.16b, v30.16b //CTR block 8 + add v30.4s, v30.4s, v31.4s //CTR block 8 + +.long 0xce03696b //eor3 v11.16b, v11.16b, v3.16b, v26.16b //AES block 3 - result +.long 0xce016929 //eor3 v9.16b, v9.16b, v1.16b, v26.16b //AES block 1 - result + + rev32 v1.16b, v30.16b //CTR block 9 + add v30.4s, v30.4s, v31.4s //CTR block 9 +.long 0xce04698c //eor3 v12.16b, v12.16b, v4.16b, v26.16b //AES block 4 - result + +.long 0xce0569ad //eor3 v13.16b, v13.16b, v5.16b, v26.16b //AES block 5 - result +.long 0xce0769ef //eor3 v15.16b, v15.16b, v7.16b, v26.16b //AES block 7 - result + stp q8, q9, [x2], #32 //AES block 0, 1 - store result + +.long 0xce02694a //eor3 v10.16b, v10.16b, v2.16b, v26.16b //AES block 2 - result + rev32 v2.16b, v30.16b //CTR block 10 + add v30.4s, v30.4s, v31.4s //CTR block 10 + + stp q10, q11, [x2], #32 //AES block 2, 3 - store result + cmp x0, x5 //check if we have <= 8 blocks + + rev32 v3.16b, v30.16b //CTR block 11 + add v30.4s, v30.4s, v31.4s //CTR block 11 +.long 0xce0669ce //eor3 v14.16b, v14.16b, v6.16b, v26.16b //AES block 6 - result + + stp q12, q13, [x2], #32 //AES block 4, 5 - store result + + rev32 v4.16b, v30.16b //CTR block 12 + stp q14, q15, [x2], #32 //AES block 6, 7 - store result + add v30.4s, v30.4s, v31.4s //CTR block 12 + + b.ge L192_enc_prepretail //do prepretail + +L192_enc_main_loop: //main loop start + rev64 v12.16b, v12.16b //GHASH block 8k+4 (t0, t1, and t2 free) + ldp q26, q27, [x8, #0] //load rk0, rk1 + rev64 v10.16b, v10.16b //GHASH block 8k+2 + + rev32 v5.16b, v30.16b //CTR block 8k+13 + add v30.4s, v30.4s, v31.4s //CTR block 8k+13 + ldr q23, [x3, #176] //load h7l | h7h + ext v23.16b, v23.16b, v23.16b, #8 + ldr q25, [x3, #208] //load h8l | h8h + ext v25.16b, v25.16b, v25.16b, #8 + + ext v19.16b, v19.16b, v19.16b, #8 //PRE 0 + rev64 v8.16b, v8.16b //GHASH block 8k + ldr q20, [x3, #128] //load h5l | h5h + ext v20.16b, v20.16b, v20.16b, #8 + ldr q22, [x3, #160] //load h6l | h6h + ext v22.16b, v22.16b, v22.16b, #8 + + rev64 v9.16b, v9.16b //GHASH block 8k+1 + rev32 v6.16b, v30.16b //CTR block 8k+14 + add v30.4s, v30.4s, v31.4s //CTR block 8k+14 + + eor v8.16b, v8.16b, v19.16b //PRE 1 + rev64 v11.16b, v11.16b //GHASH block 8k+3 + rev64 v13.16b, v13.16b //GHASH block 8k+5 (t0, t1, t2 and t3 free) + + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 0 + rev32 v7.16b, v30.16b //CTR block 8k+15 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 0 + + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 0 + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 0 + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 0 + + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 0 + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 0 + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 0 + + ldp q28, q26, [x8, #32] //load rk2, rk3 + pmull2 v17.1q, v8.2d, v25.2d //GHASH block 8k - high + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 1 + + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 1 + pmull2 v16.1q, v9.2d, v23.2d //GHASH block 8k+1 - high + pmull v23.1q, v9.1d, v23.1d //GHASH block 8k+1 - low + + trn1 v18.2d, v9.2d, v8.2d //GHASH block 8k, 8k+1 - mid + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 1 + ldr q21, [x3, #144] //load h6k | h5k + ldr q24, [x3, #192] //load h8k | h7k + + pmull2 v29.1q, v10.2d, v22.2d //GHASH block 8k+2 - high + pmull v19.1q, v8.1d, v25.1d //GHASH block 8k - low + trn2 v8.2d, v9.2d, v8.2d //GHASH block 8k, 8k+1 - mid + + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 1 + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 1 + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 1 + + eor v17.16b, v17.16b, v16.16b //GHASH block 8k+1 - high + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 1 + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 1 + + pmull2 v9.1q, v11.2d, v20.2d //GHASH block 8k+3 - high + eor v8.16b, v8.16b, v18.16b //GHASH block 8k, 8k+1 - mid + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 2 + + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 2 + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 2 + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 2 + + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 2 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 3 +.long 0xce1d2631 //eor3 v17.16b, v17.16b, v29.16b, v9.16b //GHASH block 8k+2, 8k+3 - high + + pmull v22.1q, v10.1d, v22.1d //GHASH block 8k+2 - low + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 2 + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 3 + + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 2 + trn1 v29.2d, v11.2d, v10.2d //GHASH block 8k+2, 8k+3 - mid + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 2 + + trn2 v10.2d, v11.2d, v10.2d //GHASH block 8k+2, 8k+3 - mid + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 3 + ldp q27, q28, [x8, #64] //load rk4, rk5 + + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 3 + eor v19.16b, v19.16b, v23.16b //GHASH block 8k+1 - low + ldr q23, [x3, #80] //load h3l | h3h + ext v23.16b, v23.16b, v23.16b, #8 + ldr q25, [x3, #112] //load h4l | h4h + ext v25.16b, v25.16b, v25.16b, #8 + + pmull2 v18.1q, v8.2d, v24.2d //GHASH block 8k - mid + pmull v24.1q, v8.1d, v24.1d //GHASH block 8k+1 - mid + pmull v20.1q, v11.1d, v20.1d //GHASH block 8k+3 - low + + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 3 + eor v10.16b, v10.16b, v29.16b //GHASH block 8k+2, 8k+3 - mid + trn1 v16.2d, v13.2d, v12.2d //GHASH block 8k+4, 8k+5 - mid + + eor v18.16b, v18.16b, v24.16b //GHASH block 8k+1 - mid + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 3 +.long 0xce165273 //eor3 v19.16b, v19.16b, v22.16b, v20.16b //GHASH block 8k+2, 8k+3 - low + + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 4 + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 4 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 3 + + pmull2 v29.1q, v10.2d, v21.2d //GHASH block 8k+2 - mid + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 4 + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 3 + + pmull v21.1q, v10.1d, v21.1d //GHASH block 8k+3 - mid + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 4 + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 4 + + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 4 + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 4 + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 4 + +.long 0xce157652 //eor3 v18.16b, v18.16b, v21.16b, v29.16b //GHASH block 8k+2, 8k+3 - mid + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 5 + ldr q20, [x3, #32] //load h1l | h1h + ext v20.16b, v20.16b, v20.16b, #8 + ldr q22, [x3, #64] //load h2l | h2h + ext v22.16b, v22.16b, v22.16b, #8 + + ldp q26, q27, [x8, #96] //load rk6, rk7 + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 5 + rev64 v15.16b, v15.16b //GHASH block 8k+7 (t0, t1, t2 and t3 free) + + rev64 v14.16b, v14.16b //GHASH block 8k+6 (t0, t1, and t2 free) + pmull2 v8.1q, v12.2d, v25.2d //GHASH block 8k+4 - high + pmull v25.1q, v12.1d, v25.1d //GHASH block 8k+4 - low + + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 5 + trn2 v12.2d, v13.2d, v12.2d //GHASH block 8k+4, 8k+5 - mid + + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 5 + ldr q21, [x3, #48] //load h2k | h1k + ldr q24, [x3, #96] //load h4k | h3k + + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 5 + pmull2 v10.1q, v13.2d, v23.2d //GHASH block 8k+5 - high + eor v12.16b, v12.16b, v16.16b //GHASH block 8k+4, 8k+5 - mid + + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 5 + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 5 + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 5 + + pmull v23.1q, v13.1d, v23.1d //GHASH block 8k+5 - low + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 6 + trn1 v13.2d, v15.2d, v14.2d //GHASH block 8k+6, 8k+7 - mid + + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 6 + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 6 + pmull2 v11.1q, v14.2d, v22.2d //GHASH block 8k+6 - high + + pmull v22.1q, v14.1d, v22.1d //GHASH block 8k+6 - low + trn2 v14.2d, v15.2d, v14.2d //GHASH block 8k+6, 8k+7 - mid + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 6 + + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 6 + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 6 + + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 6 + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 7 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 6 + + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 7 + eor v14.16b, v14.16b, v13.16b //GHASH block 8k+6, 8k+7 - mid + + pmull2 v16.1q, v12.2d, v24.2d //GHASH block 8k+4 - mid + ldp q28, q26, [x8, #128] //load rk8, rk9 + pmull v24.1q, v12.1d, v24.1d //GHASH block 8k+5 - mid + + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 7 + pmull2 v12.1q, v15.2d, v20.2d //GHASH block 8k+7 - high + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 7 + +.long 0xce184252 //eor3 v18.16b, v18.16b, v24.16b, v16.16b //GHASH block 8k+4, 8k+5 - mid + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 7 + add v30.4s, v30.4s, v31.4s //CTR block 8k+15 + + ldr d16, [x10] //MODULO - load modulo constant +.long 0xce082a31 //eor3 v17.16b, v17.16b, v8.16b, v10.16b //GHASH block 8k+4, 8k+5 - high + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 7 + + pmull2 v13.1q, v14.2d, v21.2d //GHASH block 8k+6 - mid + pmull v20.1q, v15.1d, v20.1d //GHASH block 8k+7 - low + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 7 + + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 8 + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 8 + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 8 + + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 8 +.long 0xce195e73 //eor3 v19.16b, v19.16b, v25.16b, v23.16b //GHASH block 8k+4, 8k+5 - low + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 7 + + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 8 + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 8 + pmull v21.1q, v14.1d, v21.1d //GHASH block 8k+7 - mid + + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 8 + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 8 + ldp q27, q28, [x8, #160] //load rk10, rk11 + +.long 0xce165273 //eor3 v19.16b, v19.16b, v22.16b, v20.16b //GHASH block 8k+6, 8k+7 - low + rev32 v20.16b, v30.16b //CTR block 8k+16 + add v30.4s, v30.4s, v31.4s //CTR block 8k+16 + + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 9 +.long 0xce153652 //eor3 v18.16b, v18.16b, v21.16b, v13.16b //GHASH block 8k+6, 8k+7 - mid +.long 0xce0b3231 //eor3 v17.16b, v17.16b, v11.16b, v12.16b //GHASH block 8k+6, 8k+7 - high + + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 9 + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 9 + ldp q8, q9, [x0], #32 //AES block 8k+8, 8k+9 - load plaintext + + pmull v21.1q, v17.1d, v16.1d //MODULO - top 64b align with mid + rev32 v22.16b, v30.16b //CTR block 8k+17 + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 9 + + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 9 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 9 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 9 + +.long 0xce114e52 //eor3 v18.16b, v18.16b, v17.16b, v19.16b //MODULO - karatsuba tidy up + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 9 + add v30.4s, v30.4s, v31.4s //CTR block 8k+17 + + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 10 + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 10 + ldr q26, [x8, #192] //load rk12 + ext v29.16b, v17.16b, v17.16b, #8 //MODULO - other top alignment + + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 10 + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 10 + ldp q10, q11, [x0], #32 //AES block 8k+10, 8k+11 - load plaintext + + aese v4.16b, v28.16b //AES block 8k+12 - round 11 +.long 0xce1d5652 //eor3 v18.16b, v18.16b, v29.16b, v21.16b //MODULO - fold into mid + ldp q12, q13, [x0], #32 //AES block 8k+12, 8k+13 - load plaintext + + ldp q14, q15, [x0], #32 //AES block 8k+14, 8k+15 - load plaintext + aese v2.16b, v28.16b //AES block 8k+10 - round 11 + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 10 + + rev32 v23.16b, v30.16b //CTR block 8k+18 + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 10 + + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 10 + pmull v17.1q, v18.1d, v16.1d //MODULO - mid 64b align with low + + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 10 + aese v5.16b, v28.16b //AES block 8k+13 - round 11 + add v30.4s, v30.4s, v31.4s //CTR block 8k+18 + + aese v7.16b, v28.16b //AES block 8k+15 - round 11 + aese v0.16b, v28.16b //AES block 8k+8 - round 11 +.long 0xce04698c //eor3 v12.16b, v12.16b, v4.16b, v26.16b //AES block 4 - result + + aese v6.16b, v28.16b //AES block 8k+14 - round 11 + aese v3.16b, v28.16b //AES block 8k+11 - round 11 + aese v1.16b, v28.16b //AES block 8k+9 - round 11 + + rev32 v25.16b, v30.16b //CTR block 8k+19 + add v30.4s, v30.4s, v31.4s //CTR block 8k+19 +.long 0xce0769ef //eor3 v15.16b, v15.16b, v7.16b, v26.16b //AES block 7 - result + +.long 0xce02694a //eor3 v10.16b, v10.16b, v2.16b, v26.16b //AES block 8k+10 - result +.long 0xce006908 //eor3 v8.16b, v8.16b, v0.16b, v26.16b //AES block 8k+8 - result + mov v2.16b, v23.16b //CTR block 8k+18 + +.long 0xce016929 //eor3 v9.16b, v9.16b, v1.16b, v26.16b //AES block 8k+9 - result + mov v1.16b, v22.16b //CTR block 8k+17 + stp q8, q9, [x2], #32 //AES block 8k+8, 8k+9 - store result + ext v21.16b, v18.16b, v18.16b, #8 //MODULO - other mid alignment + +.long 0xce0669ce //eor3 v14.16b, v14.16b, v6.16b, v26.16b //AES block 6 - result + mov v0.16b, v20.16b //CTR block 8k+16 + rev32 v4.16b, v30.16b //CTR block 8k+20 + + add v30.4s, v30.4s, v31.4s //CTR block 8k+20 +.long 0xce0569ad //eor3 v13.16b, v13.16b, v5.16b, v26.16b //AES block 5 - result +.long 0xce115673 //eor3 v19.16b, v19.16b, v17.16b, v21.16b //MODULO - fold into low + +.long 0xce03696b //eor3 v11.16b, v11.16b, v3.16b, v26.16b //AES block 8k+11 - result + mov v3.16b, v25.16b //CTR block 8k+19 + + stp q10, q11, [x2], #32 //AES block 8k+10, 8k+11 - store result + + stp q12, q13, [x2], #32 //AES block 8k+12, 8k+13 - store result + + cmp x0, x5 //LOOP CONTROL + stp q14, q15, [x2], #32 //AES block 8k+14, 8k+15 - store result + b.lt L192_enc_main_loop + +L192_enc_prepretail: //PREPRETAIL + rev32 v5.16b, v30.16b //CTR block 8k+13 + ldp q26, q27, [x8, #0] //load rk0, rk1 + add v30.4s, v30.4s, v31.4s //CTR block 8k+13 + + ldr q23, [x3, #176] //load h7l | h7h + ext v23.16b, v23.16b, v23.16b, #8 + ldr q25, [x3, #208] //load h8l | h8h + ext v25.16b, v25.16b, v25.16b, #8 + rev64 v8.16b, v8.16b //GHASH block 8k + ext v19.16b, v19.16b, v19.16b, #8 //PRE 0 + + rev32 v6.16b, v30.16b //CTR block 8k+14 + add v30.4s, v30.4s, v31.4s //CTR block 8k+14 + ldr q21, [x3, #144] //load h6k | h5k + ldr q24, [x3, #192] //load h8k | h7k + + rev64 v11.16b, v11.16b //GHASH block 8k+3 + rev64 v10.16b, v10.16b //GHASH block 8k+2 + ldr q20, [x3, #128] //load h5l | h5h + ext v20.16b, v20.16b, v20.16b, #8 + ldr q22, [x3, #160] //load h6l | h6h + ext v22.16b, v22.16b, v22.16b, #8 + + eor v8.16b, v8.16b, v19.16b //PRE 1 + rev32 v7.16b, v30.16b //CTR block 8k+15 + rev64 v9.16b, v9.16b //GHASH block 8k+1 + + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 0 + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 0 + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 0 + + pmull2 v16.1q, v9.2d, v23.2d //GHASH block 8k+1 - high + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 0 + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 0 + + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 0 + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 0 + pmull2 v17.1q, v8.2d, v25.2d //GHASH block 8k - high + + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 1 + pmull v19.1q, v8.1d, v25.1d //GHASH block 8k - low + trn1 v18.2d, v9.2d, v8.2d //GHASH block 8k, 8k+1 - mid + + trn2 v8.2d, v9.2d, v8.2d //GHASH block 8k, 8k+1 - mid + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 0 + ldp q28, q26, [x8, #32] //load rk2, rk3 + + pmull v23.1q, v9.1d, v23.1d //GHASH block 8k+1 - low + eor v17.16b, v17.16b, v16.16b //GHASH block 8k+1 - high + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 1 + + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 1 + eor v8.16b, v8.16b, v18.16b //GHASH block 8k, 8k+1 - mid + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 1 + + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 1 + pmull2 v9.1q, v11.2d, v20.2d //GHASH block 8k+3 - high + pmull2 v29.1q, v10.2d, v22.2d //GHASH block 8k+2 - high + + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 1 + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 1 + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 1 + + pmull v22.1q, v10.1d, v22.1d //GHASH block 8k+2 - low + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 2 + eor v19.16b, v19.16b, v23.16b //GHASH block 8k+1 - low + + pmull v20.1q, v11.1d, v20.1d //GHASH block 8k+3 - low + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 2 +.long 0xce1d2631 //eor3 v17.16b, v17.16b, v29.16b, v9.16b //GHASH block 8k+2, 8k+3 - high + + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 3 + trn1 v29.2d, v11.2d, v10.2d //GHASH block 8k+2, 8k+3 - mid + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 2 + + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 2 + pmull2 v18.1q, v8.2d, v24.2d //GHASH block 8k - mid + trn2 v10.2d, v11.2d, v10.2d //GHASH block 8k+2, 8k+3 - mid + + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 2 + rev64 v13.16b, v13.16b //GHASH block 8k+5 (t0, t1, t2 and t3 free) + rev64 v14.16b, v14.16b //GHASH block 8k+6 (t0, t1, and t2 free) + + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 2 + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 2 + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 2 + + eor v10.16b, v10.16b, v29.16b //GHASH block 8k+2, 8k+3 - mid + pmull v24.1q, v8.1d, v24.1d //GHASH block 8k+1 - mid + ldp q27, q28, [x8, #64] //load rk4, rk5 + + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 3 + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 3 + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 3 + + eor v18.16b, v18.16b, v24.16b //GHASH block 8k+1 - mid +.long 0xce165273 //eor3 v19.16b, v19.16b, v22.16b, v20.16b //GHASH block 8k+2, 8k+3 - low + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 3 + + ldr q23, [x3, #80] //load h3l | h3h + ext v23.16b, v23.16b, v23.16b, #8 + ldr q25, [x3, #112] //load h4l | h4h + ext v25.16b, v25.16b, v25.16b, #8 + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 3 + pmull2 v29.1q, v10.2d, v21.2d //GHASH block 8k+2 - mid + + ldr q20, [x3, #32] //load h1l | h1h + ext v20.16b, v20.16b, v20.16b, #8 + ldr q22, [x3, #64] //load h2l | h2h + ext v22.16b, v22.16b, v22.16b, #8 + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 3 + rev64 v12.16b, v12.16b //GHASH block 8k+4 (t0, t1, and t2 free) + + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 3 + pmull v21.1q, v10.1d, v21.1d //GHASH block 8k+3 - mid + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 4 + + trn1 v16.2d, v13.2d, v12.2d //GHASH block 8k+4, 8k+5 - mid + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 4 + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 4 + +.long 0xce157652 //eor3 v18.16b, v18.16b, v21.16b, v29.16b //GHASH block 8k+2, 8k+3 - mid + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 4 + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 4 + + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 4 + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 4 + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 4 + + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 5 + rev64 v15.16b, v15.16b //GHASH block 8k+7 (t0, t1, t2 and t3 free) + ldr q21, [x3, #48] //load h2k | h1k + ldr q24, [x3, #96] //load h4k | h3k + + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 5 + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 5 + ldp q26, q27, [x8, #96] //load rk6, rk7 + + pmull2 v11.1q, v14.2d, v22.2d //GHASH block 8k+6 - high + pmull2 v8.1q, v12.2d, v25.2d //GHASH block 8k+4 - high + pmull v25.1q, v12.1d, v25.1d //GHASH block 8k+4 - low + + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 5 + trn2 v12.2d, v13.2d, v12.2d //GHASH block 8k+4, 8k+5 - mid + + pmull2 v10.1q, v13.2d, v23.2d //GHASH block 8k+5 - high + pmull v23.1q, v13.1d, v23.1d //GHASH block 8k+5 - low + pmull v22.1q, v14.1d, v22.1d //GHASH block 8k+6 - low + + trn1 v13.2d, v15.2d, v14.2d //GHASH block 8k+6, 8k+7 - mid + eor v12.16b, v12.16b, v16.16b //GHASH block 8k+4, 8k+5 - mid + trn2 v14.2d, v15.2d, v14.2d //GHASH block 8k+6, 8k+7 - mid + + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 5 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 6 + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 5 + + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 5 + eor v14.16b, v14.16b, v13.16b //GHASH block 8k+6, 8k+7 - mid + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 5 + + pmull2 v16.1q, v12.2d, v24.2d //GHASH block 8k+4 - mid + pmull v24.1q, v12.1d, v24.1d //GHASH block 8k+5 - mid + + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 6 + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 6 + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 7 + + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 6 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 6 +.long 0xce184252 //eor3 v18.16b, v18.16b, v24.16b, v16.16b //GHASH block 8k+4, 8k+5 - mid + + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 6 +.long 0xce082a31 //eor3 v17.16b, v17.16b, v8.16b, v10.16b //GHASH block 8k+4, 8k+5 - high + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 7 + + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 6 + ldr d16, [x10] //MODULO - load modulo constant + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 6 + + pmull2 v13.1q, v14.2d, v21.2d //GHASH block 8k+6 - mid + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 7 +.long 0xce195e73 //eor3 v19.16b, v19.16b, v25.16b, v23.16b //GHASH block 8k+4, 8k+5 - low + + pmull2 v12.1q, v15.2d, v20.2d //GHASH block 8k+7 - high + pmull v21.1q, v14.1d, v21.1d //GHASH block 8k+7 - mid + pmull v20.1q, v15.1d, v20.1d //GHASH block 8k+7 - low + + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 7 + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 7 + ldp q28, q26, [x8, #128] //load rk8, rk9 + + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 7 +.long 0xce153652 //eor3 v18.16b, v18.16b, v21.16b, v13.16b //GHASH block 8k+6, 8k+7 - mid + +.long 0xce165273 //eor3 v19.16b, v19.16b, v22.16b, v20.16b //GHASH block 8k+6, 8k+7 - low +.long 0xce0b3231 //eor3 v17.16b, v17.16b, v11.16b, v12.16b //GHASH block 8k+6, 8k+7 - high + +.long 0xce114e52 //eor3 v18.16b, v18.16b, v17.16b, v19.16b //MODULO - karatsuba tidy up + ext v29.16b, v17.16b, v17.16b, #8 //MODULO - other top alignment + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 7 + pmull v21.1q, v17.1d, v16.1d //MODULO - top 64b align with mid + + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 8 + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 8 + + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 7 + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 8 +.long 0xce1d5652 //eor3 v18.16b, v18.16b, v29.16b, v21.16b //MODULO - fold into mid + + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 8 + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 9 + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 8 + + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 8 + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 8 + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 8 + + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 9 + ldp q27, q28, [x8, #160] //load rk10, rk11 + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 9 + + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 9 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 9 + + ext v21.16b, v18.16b, v18.16b, #8 //MODULO - other mid alignment + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 9 + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 9 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 9 + + pmull v17.1q, v18.1d, v16.1d //MODULO - mid 64b align with low + ldr q26, [x8, #192] //load rk12 + + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 10 + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 10 + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 10 + +.long 0xce115673 //eor3 v19.16b, v19.16b, v17.16b, v21.16b //MODULO - fold into low + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 10 + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 10 + + aese v1.16b, v28.16b //AES block 8k+9 - round 11 + aese v7.16b, v28.16b //AES block 8k+15 - round 11 + + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 10 + aese v3.16b, v28.16b //AES block 8k+11 - round 11 + + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 10 + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 10 + + add v30.4s, v30.4s, v31.4s //CTR block 8k+15 + aese v2.16b, v28.16b //AES block 8k+10 - round 11 + aese v0.16b, v28.16b //AES block 8k+8 - round 11 + + aese v6.16b, v28.16b //AES block 8k+14 - round 11 + aese v4.16b, v28.16b //AES block 8k+12 - round 11 + aese v5.16b, v28.16b //AES block 8k+13 - round 11 + +L192_enc_tail: //TAIL + + ldp q20, q21, [x3, #128] //load h5l | h5h + ext v20.16b, v20.16b, v20.16b, #8 + sub x5, x4, x0 //main_end_input_ptr is number of bytes left to process + + ldr q8, [x0], #16 //AES block 8k+8 - l3ad plaintext + + ldp q24, q25, [x3, #192] //load h8k | h7k + ext v25.16b, v25.16b, v25.16b, #8 + + mov v29.16b, v26.16b + + ldp q22, q23, [x3, #160] //load h6l | h6h + ext v22.16b, v22.16b, v22.16b, #8 + ext v23.16b, v23.16b, v23.16b, #8 + cmp x5, #112 + +.long 0xce007509 //eor3 v9.16b, v8.16b, v0.16b, v29.16b //AES block 8k+8 - result + ext v16.16b, v19.16b, v19.16b, #8 //prepare final partial tag + b.gt L192_enc_blocks_more_than_7 + + cmp x5, #96 + mov v7.16b, v6.16b + movi v17.8b, #0 + + mov v6.16b, v5.16b + movi v19.8b, #0 + sub v30.4s, v30.4s, v31.4s + + mov v5.16b, v4.16b + mov v4.16b, v3.16b + mov v3.16b, v2.16b + + mov v2.16b, v1.16b + movi v18.8b, #0 + b.gt L192_enc_blocks_more_than_6 + + mov v7.16b, v6.16b + cmp x5, #80 + + mov v6.16b, v5.16b + mov v5.16b, v4.16b + mov v4.16b, v3.16b + + mov v3.16b, v1.16b + sub v30.4s, v30.4s, v31.4s + b.gt L192_enc_blocks_more_than_5 + + cmp x5, #64 + sub v30.4s, v30.4s, v31.4s + + mov v7.16b, v6.16b + mov v6.16b, v5.16b + mov v5.16b, v4.16b + + mov v4.16b, v1.16b + b.gt L192_enc_blocks_more_than_4 + + mov v7.16b, v6.16b + mov v6.16b, v5.16b + mov v5.16b, v1.16b + + sub v30.4s, v30.4s, v31.4s + cmp x5, #48 + b.gt L192_enc_blocks_more_than_3 + + mov v7.16b, v6.16b + mov v6.16b, v1.16b + sub v30.4s, v30.4s, v31.4s + + ldr q24, [x3, #96] //load h4k | h3k + cmp x5, #32 + b.gt L192_enc_blocks_more_than_2 + + sub v30.4s, v30.4s, v31.4s + + cmp x5, #16 + mov v7.16b, v1.16b + b.gt L192_enc_blocks_more_than_1 + + sub v30.4s, v30.4s, v31.4s + ldr q21, [x3, #48] //load h2k | h1k + b L192_enc_blocks_less_than_1 +L192_enc_blocks_more_than_7: //blocks left > 7 + st1 { v9.16b}, [x2], #16 //AES final-7 block - store result + + rev64 v8.16b, v9.16b //GHASH final-7 block + ins v18.d[0], v24.d[1] //GHASH final-7 block - mid + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + + ins v27.d[0], v8.d[1] //GHASH final-7 block - mid + + ldr q9, [x0], #16 //AES final-6 block - load plaintext + + eor v27.8b, v27.8b, v8.8b //GHASH final-7 block - mid + movi v16.8b, #0 //suppress further partial tag feed in + pmull v19.1q, v8.1d, v25.1d //GHASH final-7 block - low + + pmull2 v17.1q, v8.2d, v25.2d //GHASH final-7 block - high + + pmull v18.1q, v27.1d, v18.1d //GHASH final-7 block - mid +.long 0xce017529 //eor3 v9.16b, v9.16b, v1.16b, v29.16b //AES final-6 block - result +L192_enc_blocks_more_than_6: //blocks left > 6 + + st1 { v9.16b}, [x2], #16 //AES final-6 block - store result + + rev64 v8.16b, v9.16b //GHASH final-6 block + + ldr q9, [x0], #16 //AES final-5 block - load plaintext + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + + ins v27.d[0], v8.d[1] //GHASH final-6 block - mid + + pmull v26.1q, v8.1d, v23.1d //GHASH final-6 block - low +.long 0xce027529 //eor3 v9.16b, v9.16b, v2.16b, v29.16b //AES final-5 block - result + + movi v16.8b, #0 //suppress further partial tag feed in + pmull2 v28.1q, v8.2d, v23.2d //GHASH final-6 block - high + eor v27.8b, v27.8b, v8.8b //GHASH final-6 block - mid + + pmull v27.1q, v27.1d, v24.1d //GHASH final-6 block - mid + + eor v17.16b, v17.16b, v28.16b //GHASH final-6 block - high + eor v19.16b, v19.16b, v26.16b //GHASH final-6 block - low + + eor v18.16b, v18.16b, v27.16b //GHASH final-6 block - mid +L192_enc_blocks_more_than_5: //blocks left > 5 + + st1 { v9.16b}, [x2], #16 //AES final-5 block - store result + + rev64 v8.16b, v9.16b //GHASH final-5 block + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + + ins v27.d[0], v8.d[1] //GHASH final-5 block - mid + + ldr q9, [x0], #16 //AES final-4 block - load plaintext + pmull2 v28.1q, v8.2d, v22.2d //GHASH final-5 block - high + + eor v27.8b, v27.8b, v8.8b //GHASH final-5 block - mid + eor v17.16b, v17.16b, v28.16b //GHASH final-5 block - high + + ins v27.d[1], v27.d[0] //GHASH final-5 block - mid + pmull v26.1q, v8.1d, v22.1d //GHASH final-5 block - low + + eor v19.16b, v19.16b, v26.16b //GHASH final-5 block - low + pmull2 v27.1q, v27.2d, v21.2d //GHASH final-5 block - mid + +.long 0xce037529 //eor3 v9.16b, v9.16b, v3.16b, v29.16b //AES final-4 block - result + movi v16.8b, #0 //suppress further partial tag feed in + + eor v18.16b, v18.16b, v27.16b //GHASH final-5 block - mid +L192_enc_blocks_more_than_4: //blocks left > 4 + + st1 { v9.16b}, [x2], #16 //AES final-4 block - store result + + rev64 v8.16b, v9.16b //GHASH final-4 block + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + + ldr q9, [x0], #16 //AES final-3 block - load plaintext + pmull2 v28.1q, v8.2d, v20.2d //GHASH final-4 block - high + ins v27.d[0], v8.d[1] //GHASH final-4 block - mid + + pmull v26.1q, v8.1d, v20.1d //GHASH final-4 block - low + eor v17.16b, v17.16b, v28.16b //GHASH final-4 block - high + + eor v27.8b, v27.8b, v8.8b //GHASH final-4 block - mid + + movi v16.8b, #0 //suppress further partial tag feed in + eor v19.16b, v19.16b, v26.16b //GHASH final-4 block - low + + pmull v27.1q, v27.1d, v21.1d //GHASH final-4 block - mid + + eor v18.16b, v18.16b, v27.16b //GHASH final-4 block - mid +.long 0xce047529 //eor3 v9.16b, v9.16b, v4.16b, v29.16b //AES final-3 block - result +L192_enc_blocks_more_than_3: //blocks left > 3 + + ldr q24, [x3, #96] //load h4k | h3k + st1 { v9.16b}, [x2], #16 //AES final-3 block - store result + + rev64 v8.16b, v9.16b //GHASH final-3 block + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + movi v16.8b, #0 //suppress further partial tag feed in + + ldr q9, [x0], #16 //AES final-2 block - load plaintext + ldr q25, [x3, #112] //load h4l | h4h + ext v25.16b, v25.16b, v25.16b, #8 + + ins v27.d[0], v8.d[1] //GHASH final-3 block - mid + +.long 0xce057529 //eor3 v9.16b, v9.16b, v5.16b, v29.16b //AES final-2 block - result + eor v27.8b, v27.8b, v8.8b //GHASH final-3 block - mid + + ins v27.d[1], v27.d[0] //GHASH final-3 block - mid + pmull v26.1q, v8.1d, v25.1d //GHASH final-3 block - low + + pmull2 v28.1q, v8.2d, v25.2d //GHASH final-3 block - high + pmull2 v27.1q, v27.2d, v24.2d //GHASH final-3 block - mid + + eor v19.16b, v19.16b, v26.16b //GHASH final-3 block - low + + eor v18.16b, v18.16b, v27.16b //GHASH final-3 block - mid + eor v17.16b, v17.16b, v28.16b //GHASH final-3 block - high +L192_enc_blocks_more_than_2: //blocks left > 2 + + st1 { v9.16b}, [x2], #16 //AES final-2 block - store result + + rev64 v8.16b, v9.16b //GHASH final-2 block + ldr q23, [x3, #80] //load h3l | h3h + ext v23.16b, v23.16b, v23.16b, #8 + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + + ldr q9, [x0], #16 //AES final-1 block - load plaintext + ins v27.d[0], v8.d[1] //GHASH final-2 block - mid + + eor v27.8b, v27.8b, v8.8b //GHASH final-2 block - mid + + pmull v26.1q, v8.1d, v23.1d //GHASH final-2 block - low + pmull2 v28.1q, v8.2d, v23.2d //GHASH final-2 block - high + movi v16.8b, #0 //suppress further partial tag feed in + + pmull v27.1q, v27.1d, v24.1d //GHASH final-2 block - mid + + eor v19.16b, v19.16b, v26.16b //GHASH final-2 block - low + eor v17.16b, v17.16b, v28.16b //GHASH final-2 block - high + + eor v18.16b, v18.16b, v27.16b //GHASH final-2 block - mid +.long 0xce067529 //eor3 v9.16b, v9.16b, v6.16b, v29.16b //AES final-1 block - result +L192_enc_blocks_more_than_1: //blocks left > 1 + + ldr q22, [x3, #64] //load h1l | h1h + ext v22.16b, v22.16b, v22.16b, #8 + st1 { v9.16b}, [x2], #16 //AES final-1 block - store result + + rev64 v8.16b, v9.16b //GHASH final-1 block + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + + ins v27.d[0], v8.d[1] //GHASH final-1 block - mid + pmull v26.1q, v8.1d, v22.1d //GHASH final-1 block - low + + eor v19.16b, v19.16b, v26.16b //GHASH final-1 block - low + pmull2 v28.1q, v8.2d, v22.2d //GHASH final-1 block - high + eor v27.8b, v27.8b, v8.8b //GHASH final-1 block - mid + + ldr q9, [x0], #16 //AES final block - load plaintext + ldr q21, [x3, #48] //load h2k | h1k + + ins v27.d[1], v27.d[0] //GHASH final-1 block - mid + +.long 0xce077529 //eor3 v9.16b, v9.16b, v7.16b, v29.16b //AES final block - result + pmull2 v27.1q, v27.2d, v21.2d //GHASH final-1 block - mid + + movi v16.8b, #0 //suppress further partial tag feed in + + eor v18.16b, v18.16b, v27.16b //GHASH final-1 block - mid + eor v17.16b, v17.16b, v28.16b //GHASH final-1 block - high +L192_enc_blocks_less_than_1: //blocks left <= 1 + + mvn x6, xzr //temp0_x = 0xffffffffffffffff + and x1, x1, #127 //bit_length %= 128 + + sub x1, x1, #128 //bit_length -= 128 + + neg x1, x1 //bit_length = 128 - #bits in input (in range [1,128]) + + and x1, x1, #127 //bit_length %= 128 + + lsr x6, x6, x1 //temp0_x is mask for top 64b of last block + cmp x1, #64 + mvn x7, xzr //temp1_x = 0xffffffffffffffff + + csel x13, x7, x6, lt + csel x14, x6, xzr, lt + + mov v0.d[1], x14 + ldr q20, [x3, #32] //load h1l | h1h + ext v20.16b, v20.16b, v20.16b, #8 + + ld1 { v26.16b}, [x2] //load existing bytes where the possibly partial last block is to be stored + mov v0.d[0], x13 //ctr0b is mask for last block + + and v9.16b, v9.16b, v0.16b //possibly partial last block has zeroes in highest bits + + rev64 v8.16b, v9.16b //GHASH final block + bif v9.16b, v26.16b, v0.16b //insert existing bytes in top end of result before storing + + st1 { v9.16b}, [x2] //store all 16B + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + + ins v16.d[0], v8.d[1] //GHASH final block - mid + pmull2 v28.1q, v8.2d, v20.2d //GHASH final block - high + + eor v17.16b, v17.16b, v28.16b //GHASH final block - high + pmull v26.1q, v8.1d, v20.1d //GHASH final block - low + + eor v16.8b, v16.8b, v8.8b //GHASH final block - mid + + pmull v16.1q, v16.1d, v21.1d //GHASH final block - mid + + eor v18.16b, v18.16b, v16.16b //GHASH final block - mid + ldr d16, [x10] //MODULO - load modulo constant + + eor v19.16b, v19.16b, v26.16b //GHASH final block - low + ext v21.16b, v17.16b, v17.16b, #8 //MODULO - other top alignment + + rev32 v30.16b, v30.16b + + str q30, [x16] //store the updated counter +.long 0xce114e52 //eor3 v18.16b, v18.16b, v17.16b, v19.16b //MODULO - karatsuba tidy up + + pmull v29.1q, v17.1d, v16.1d //MODULO - top 64b align with mid + +.long 0xce1d5652 //eor3 v18.16b, v18.16b, v29.16b, v21.16b //MODULO - fold into mid + + pmull v17.1q, v18.1d, v16.1d //MODULO - mid 64b align with low + ext v21.16b, v18.16b, v18.16b, #8 //MODULO - other mid alignment + +.long 0xce115673 //eor3 v19.16b, v19.16b, v17.16b, v21.16b //MODULO - fold into low + ext v19.16b, v19.16b, v19.16b, #8 + rev64 v19.16b, v19.16b + st1 { v19.16b }, [x3] + + mov x0, x9 //return sizes + + ldp d10, d11, [sp, #16] + ldp d12, d13, [sp, #32] + ldp d14, d15, [sp, #48] + ldp d8, d9, [sp], #80 + ret + +L192_enc_ret: + mov w0, #0x0 + ret + +.globl _unroll8_eor3_aes_gcm_dec_192_kernel + +.align 4 +_unroll8_eor3_aes_gcm_dec_192_kernel: + AARCH64_VALID_CALL_TARGET + cbz x1, L192_dec_ret + stp d8, d9, [sp, #-80]! + lsr x9, x1, #3 + mov x16, x4 + mov x8, x5 + stp d10, d11, [sp, #16] + stp d12, d13, [sp, #32] + stp d14, d15, [sp, #48] + mov x5, #0xc200000000000000 + stp x5, xzr, [sp, #64] + add x10, sp, #64 + + mov x5, x9 + ld1 { v0.16b}, [x16] //CTR block 0 + ld1 { v19.16b}, [x3] + + mov x15, #0x100000000 //set up counter increment + movi v31.16b, #0x0 + mov v31.d[1], x15 + + rev32 v30.16b, v0.16b //set up reversed counter + + add v30.4s, v30.4s, v31.4s //CTR block 0 + + rev32 v1.16b, v30.16b //CTR block 1 + add v30.4s, v30.4s, v31.4s //CTR block 1 + + rev32 v2.16b, v30.16b //CTR block 2 + add v30.4s, v30.4s, v31.4s //CTR block 2 + + rev32 v3.16b, v30.16b //CTR block 3 + add v30.4s, v30.4s, v31.4s //CTR block 3 + + rev32 v4.16b, v30.16b //CTR block 4 + add v30.4s, v30.4s, v31.4s //CTR block 4 + + rev32 v5.16b, v30.16b //CTR block 5 + add v30.4s, v30.4s, v31.4s //CTR block 5 + ldp q26, q27, [x8, #0] //load rk0, rk1 + + rev32 v6.16b, v30.16b //CTR block 6 + add v30.4s, v30.4s, v31.4s //CTR block 6 + + rev32 v7.16b, v30.16b //CTR block 7 + + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 3 - round 0 + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 6 - round 0 + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 5 - round 0 + + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 0 - round 0 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 1 - round 0 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 7 - round 0 + + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 2 - round 0 + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 4 - round 0 + ldp q28, q26, [x8, #32] //load rk2, rk3 + + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 1 - round 1 + + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 2 - round 1 + + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 0 - round 1 + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 3 - round 1 + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 7 - round 1 + + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 5 - round 1 + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 6 - round 1 + + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 7 - round 2 + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 0 - round 2 + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 4 - round 1 + + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 5 - round 2 + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 1 - round 2 + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 2 - round 2 + + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 3 - round 2 + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 4 - round 2 + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 6 - round 2 + + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 7 - round 3 + + ldp q27, q28, [x8, #64] //load rk4, rk5 + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 2 - round 3 + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 5 - round 3 + + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 0 - round 3 + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 3 - round 3 + + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 4 - round 3 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 1 - round 3 + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 6 - round 3 + + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 3 - round 4 + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 2 - round 4 + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 5 - round 4 + + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 1 - round 4 + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 7 - round 4 + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 6 - round 4 + + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 0 - round 4 + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 5 - round 5 + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 4 - round 4 + + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 6 - round 5 + ldp q26, q27, [x8, #96] //load rk6, rk7 + + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 0 - round 5 + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 4 - round 5 + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 1 - round 5 + + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 3 - round 5 + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 2 - round 5 + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 7 - round 5 + + sub x5, x5, #1 //byte_len - 1 + + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 4 - round 6 + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 5 - round 6 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 1 - round 6 + + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 0 - round 6 + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 3 - round 6 + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 6 - round 6 + + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 7 - round 6 + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 2 - round 6 + ldp q28, q26, [x8, #128] //load rk8, rk9 + + add v30.4s, v30.4s, v31.4s //CTR block 7 + + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 3 - round 7 + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 7 - round 7 + + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 2 - round 7 + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 1 - round 7 + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 4 - round 7 + + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 6 - round 7 + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 0 - round 7 + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 5 - round 7 + + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 1 - round 8 + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 2 - round 8 + and x5, x5, #0xffffffffffffff80 //number of bytes to be processed in main loop (at least 1 byte must be handled by tail) + + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 7 - round 8 + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 6 - round 8 + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 5 - round 8 + + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 4 - round 8 + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 3 - round 8 + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 0 - round 8 + + add x4, x0, x1, lsr #3 //end_input_ptr + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 6 - round 9 + + ld1 { v19.16b}, [x3] + ext v19.16b, v19.16b, v19.16b, #8 + rev64 v19.16b, v19.16b + + ldp q27, q28, [x8, #160] //load rk10, rk11 + + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 0 - round 9 + add x5, x5, x0 + + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 1 - round 9 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 7 - round 9 + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 4 - round 9 + + cmp x0, x5 //check if we have <= 8 blocks + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 3 - round 9 + + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 5 - round 9 + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 2 - round 9 + + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 3 - round 10 + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 1 - round 10 + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 7 - round 10 + + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 4 - round 10 + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 0 - round 10 + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 2 - round 10 + + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 6 - round 10 + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 5 - round 10 + ldr q26, [x8, #192] //load rk12 + + aese v0.16b, v28.16b //AES block 0 - round 11 + aese v1.16b, v28.16b //AES block 1 - round 11 + aese v4.16b, v28.16b //AES block 4 - round 11 + + aese v6.16b, v28.16b //AES block 6 - round 11 + aese v5.16b, v28.16b //AES block 5 - round 11 + aese v7.16b, v28.16b //AES block 7 - round 11 + + aese v2.16b, v28.16b //AES block 2 - round 11 + aese v3.16b, v28.16b //AES block 3 - round 11 + b.ge L192_dec_tail //handle tail + + ldp q8, q9, [x0], #32 //AES block 0, 1 - load ciphertext + + ldp q10, q11, [x0], #32 //AES block 2, 3 - load ciphertext + + ldp q12, q13, [x0], #32 //AES block 4, 5 - load ciphertext + +.long 0xce016921 //eor3 v1.16b, v9.16b, v1.16b, v26.16b //AES block 1 - result +.long 0xce006900 //eor3 v0.16b, v8.16b, v0.16b, v26.16b //AES block 0 - result + stp q0, q1, [x2], #32 //AES block 0, 1 - store result + + rev32 v0.16b, v30.16b //CTR block 8 + add v30.4s, v30.4s, v31.4s //CTR block 8 + + rev32 v1.16b, v30.16b //CTR block 9 + add v30.4s, v30.4s, v31.4s //CTR block 9 +.long 0xce036963 //eor3 v3.16b, v11.16b, v3.16b, v26.16b //AES block 3 - result + +.long 0xce026942 //eor3 v2.16b, v10.16b, v2.16b, v26.16b //AES block 2 - result + stp q2, q3, [x2], #32 //AES block 2, 3 - store result + ldp q14, q15, [x0], #32 //AES block 6, 7 - load ciphertext + + rev32 v2.16b, v30.16b //CTR block 10 + add v30.4s, v30.4s, v31.4s //CTR block 10 + +.long 0xce046984 //eor3 v4.16b, v12.16b, v4.16b, v26.16b //AES block 4 - result + + rev32 v3.16b, v30.16b //CTR block 11 + add v30.4s, v30.4s, v31.4s //CTR block 11 + +.long 0xce0569a5 //eor3 v5.16b, v13.16b, v5.16b, v26.16b //AES block 5 - result + stp q4, q5, [x2], #32 //AES block 4, 5 - store result + cmp x0, x5 //check if we have <= 8 blocks + +.long 0xce0669c6 //eor3 v6.16b, v14.16b, v6.16b, v26.16b //AES block 6 - result +.long 0xce0769e7 //eor3 v7.16b, v15.16b, v7.16b, v26.16b //AES block 7 - result + rev32 v4.16b, v30.16b //CTR block 12 + + add v30.4s, v30.4s, v31.4s //CTR block 12 + stp q6, q7, [x2], #32 //AES block 6, 7 - store result + b.ge L192_dec_prepretail //do prepretail + +L192_dec_main_loop: //main loop start + rev64 v9.16b, v9.16b //GHASH block 8k+1 + ldp q26, q27, [x8, #0] //load rk0, rk1 + ext v19.16b, v19.16b, v19.16b, #8 //PRE 0 + + rev64 v8.16b, v8.16b //GHASH block 8k + rev32 v5.16b, v30.16b //CTR block 8k+13 + add v30.4s, v30.4s, v31.4s //CTR block 8k+13 + + ldr q23, [x3, #176] //load h7l | h7h + ext v23.16b, v23.16b, v23.16b, #8 + ldr q25, [x3, #208] //load h8l | h8h + ext v25.16b, v25.16b, v25.16b, #8 + rev64 v12.16b, v12.16b //GHASH block 8k+4 + rev64 v11.16b, v11.16b //GHASH block 8k+3 + + eor v8.16b, v8.16b, v19.16b //PRE 1 + rev32 v6.16b, v30.16b //CTR block 8k+14 + add v30.4s, v30.4s, v31.4s //CTR block 8k+14 + + rev64 v13.16b, v13.16b //GHASH block 8k+5 + + rev32 v7.16b, v30.16b //CTR block 8k+15 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 0 + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 0 + + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 0 + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 0 + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 0 + + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 0 + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 0 + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 0 + + pmull v19.1q, v8.1d, v25.1d //GHASH block 8k - low + pmull2 v16.1q, v9.2d, v23.2d //GHASH block 8k+1 - high + ldp q28, q26, [x8, #32] //load rk2, rk3 + + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 1 + pmull v23.1q, v9.1d, v23.1d //GHASH block 8k+1 - low + ldr q20, [x3, #128] //load h5l | h5h + ext v20.16b, v20.16b, v20.16b, #8 + ldr q22, [x3, #160] //load h6l | h6h + ext v22.16b, v22.16b, v22.16b, #8 + + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 1 + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 1 + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 1 + + pmull2 v17.1q, v8.2d, v25.2d //GHASH block 8k - high + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 1 + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 1 + + trn1 v18.2d, v9.2d, v8.2d //GHASH block 8k, 8k+1 - mid + rev64 v10.16b, v10.16b //GHASH block 8k+2 + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 1 + + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 1 + ldr q21, [x3, #144] //load h6k | h5k + ldr q24, [x3, #192] //load h8k | h7k + trn2 v8.2d, v9.2d, v8.2d //GHASH block 8k, 8k+1 - mid + + eor v17.16b, v17.16b, v16.16b //GHASH block 8k+1 - high + pmull2 v9.1q, v11.2d, v20.2d //GHASH block 8k+3 - high + pmull2 v29.1q, v10.2d, v22.2d //GHASH block 8k+2 - high + + eor v8.16b, v8.16b, v18.16b //GHASH block 8k, 8k+1 - mid + eor v19.16b, v19.16b, v23.16b //GHASH block 8k+1 - low + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 2 + + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 2 + pmull v20.1q, v11.1d, v20.1d //GHASH block 8k+3 - low +.long 0xce1d2631 //eor3 v17.16b, v17.16b, v29.16b, v9.16b //GHASH block 8k+2, 8k+3 - high + + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 2 + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 3 + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 2 + + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 2 + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 2 + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 2 + + ldr q23, [x3, #80] //load h3l | h3h + ext v23.16b, v23.16b, v23.16b, #8 + ldr q25, [x3, #112] //load h4l | h4h + ext v25.16b, v25.16b, v25.16b, #8 + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 2 + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 3 + + pmull v22.1q, v10.1d, v22.1d //GHASH block 8k+2 - low + trn1 v29.2d, v11.2d, v10.2d //GHASH block 8k+2, 8k+3 - mid + trn2 v10.2d, v11.2d, v10.2d //GHASH block 8k+2, 8k+3 - mid + + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 3 + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 3 + + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 3 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 3 + ldp q27, q28, [x8, #64] //load rk4, rk5 + + eor v10.16b, v10.16b, v29.16b //GHASH block 8k+2, 8k+3 - mid +.long 0xce165273 //eor3 v19.16b, v19.16b, v22.16b, v20.16b //GHASH block 8k+2, 8k+3 - low + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 3 + + trn1 v16.2d, v13.2d, v12.2d //GHASH block 8k+4, 8k+5 - mid + add v30.4s, v30.4s, v31.4s //CTR block 8k+15 + + pmull2 v29.1q, v10.2d, v21.2d //GHASH block 8k+2 - mid + pmull2 v18.1q, v8.2d, v24.2d //GHASH block 8k - mid + pmull v24.1q, v8.1d, v24.1d //GHASH block 8k+1 - mid + + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 3 + pmull v21.1q, v10.1d, v21.1d //GHASH block 8k+3 - mid + pmull2 v8.1q, v12.2d, v25.2d //GHASH block 8k+4 - high + + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 4 + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 4 + eor v18.16b, v18.16b, v24.16b //GHASH block 8k+1 - mid + + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 4 + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 4 + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 4 + + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 4 + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 4 + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 4 + + ldr q20, [x3, #32] //load h1l | h1h + ext v20.16b, v20.16b, v20.16b, #8 + ldr q22, [x3, #64] //load h2l | h2h + ext v22.16b, v22.16b, v22.16b, #8 + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 5 + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 5 + + ldp q26, q27, [x8, #96] //load rk6, rk7 + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 5 + rev64 v15.16b, v15.16b //GHASH block 8k+7 + + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 5 +.long 0xce157652 //eor3 v18.16b, v18.16b, v21.16b, v29.16b //GHASH block 8k+2, 8k+3 - mid + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 5 + + pmull v25.1q, v12.1d, v25.1d //GHASH block 8k+4 - low + trn2 v12.2d, v13.2d, v12.2d //GHASH block 8k+4, 8k+5 - mid + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 5 + + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 5 + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 5 + rev64 v14.16b, v14.16b //GHASH block 8k+6 + + ldr q21, [x3, #48] //load h2k | h1k + ldr q24, [x3, #96] //load h4k | h3k + pmull2 v10.1q, v13.2d, v23.2d //GHASH block 8k+5 - high + pmull v23.1q, v13.1d, v23.1d //GHASH block 8k+5 - low + + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 6 + eor v12.16b, v12.16b, v16.16b //GHASH block 8k+4, 8k+5 - mid + trn1 v13.2d, v15.2d, v14.2d //GHASH block 8k+6, 8k+7 - mid + + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 6 + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 6 + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 6 + + pmull2 v11.1q, v14.2d, v22.2d //GHASH block 8k+6 - high + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 6 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 6 + + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 7 + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 7 + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 6 + + pmull2 v16.1q, v12.2d, v24.2d //GHASH block 8k+4 - mid +.long 0xce082a31 //eor3 v17.16b, v17.16b, v8.16b, v10.16b //GHASH block 8k+4, 8k+5 - high +.long 0xce195e73 //eor3 v19.16b, v19.16b, v25.16b, v23.16b //GHASH block 8k+4, 8k+5 - low + + pmull v22.1q, v14.1d, v22.1d //GHASH block 8k+6 - low + trn2 v14.2d, v15.2d, v14.2d //GHASH block 8k+6, 8k+7 - mid + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 6 + + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 7 + ldp q28, q26, [x8, #128] //load rk8, rk9 + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 7 + + eor v14.16b, v14.16b, v13.16b //GHASH block 8k+6, 8k+7 - mid + pmull v24.1q, v12.1d, v24.1d //GHASH block 8k+5 - mid + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 7 + + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 7 + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 7 + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 7 + +.long 0xce184252 //eor3 v18.16b, v18.16b, v24.16b, v16.16b //GHASH block 8k+4, 8k+5 - mid + pmull2 v13.1q, v14.2d, v21.2d //GHASH block 8k+6 - mid + pmull2 v12.1q, v15.2d, v20.2d //GHASH block 8k+7 - high + + pmull v21.1q, v14.1d, v21.1d //GHASH block 8k+7 - mid + ldr d16, [x10] //MODULO - load modulo constant + pmull v20.1q, v15.1d, v20.1d //GHASH block 8k+7 - low + + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 8 + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 8 + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 8 + + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 8 + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 8 +.long 0xce165273 //eor3 v19.16b, v19.16b, v22.16b, v20.16b //GHASH block 8k+6, 8k+7 - low + + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 8 + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 8 + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 8 + +.long 0xce0b3231 //eor3 v17.16b, v17.16b, v11.16b, v12.16b //GHASH block 8k+6, 8k+7 - high + rev32 v20.16b, v30.16b //CTR block 8k+16 + add v30.4s, v30.4s, v31.4s //CTR block 8k+16 + + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 9 +.long 0xce153652 //eor3 v18.16b, v18.16b, v21.16b, v13.16b //GHASH block 8k+6, 8k+7 - mid + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 9 + + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 9 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 9 + ldp q27, q28, [x8, #160] //load rk10, rk11 + +.long 0xce114e52 //eor3 v18.16b, v18.16b, v17.16b, v19.16b //MODULO - karatsuba tidy up + ldp q8, q9, [x0], #32 //AES block 8k+8, 8k+9 - load ciphertext + + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 9 + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 9 + ldp q10, q11, [x0], #32 //AES block 8k+10, 8k+11 - load ciphertext + + rev32 v22.16b, v30.16b //CTR block 8k+17 + pmull v29.1q, v17.1d, v16.1d //MODULO - top 64b align with mid + add v30.4s, v30.4s, v31.4s //CTR block 8k+17 + + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 9 + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 9 + ext v21.16b, v17.16b, v17.16b, #8 //MODULO - other top alignment + + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 10 + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 10 + ldp q12, q13, [x0], #32 //AES block 8k+12, 8k+13 - load ciphertext + + rev32 v23.16b, v30.16b //CTR block 8k+18 + add v30.4s, v30.4s, v31.4s //CTR block 8k+18 +.long 0xce1d5652 //eor3 v18.16b, v18.16b, v29.16b, v21.16b //MODULO - fold into mid + + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 10 + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 10 + ldr q26, [x8, #192] //load rk12 + + ldp q14, q15, [x0], #32 //AES block 8k+14, 8k+15 - load ciphertext + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 10 + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 10 + + aese v0.16b, v28.16b //AES block 8k+8 - round 11 + ext v21.16b, v18.16b, v18.16b, #8 //MODULO - other mid alignment + aese v1.16b, v28.16b //AES block 8k+9 - round 11 + + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 10 + aese v6.16b, v28.16b //AES block 8k+14 - round 11 + aese v3.16b, v28.16b //AES block 8k+11 - round 11 + +.long 0xce006900 //eor3 v0.16b, v8.16b, v0.16b, v26.16b //AES block 8k+8 - result + rev32 v25.16b, v30.16b //CTR block 8k+19 + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 10 + + aese v4.16b, v28.16b //AES block 8k+12 - round 11 + aese v2.16b, v28.16b //AES block 8k+10 - round 11 + add v30.4s, v30.4s, v31.4s //CTR block 8k+19 + + aese v7.16b, v28.16b //AES block 8k+15 - round 11 + aese v5.16b, v28.16b //AES block 8k+13 - round 11 + pmull v17.1q, v18.1d, v16.1d //MODULO - mid 64b align with low + +.long 0xce016921 //eor3 v1.16b, v9.16b, v1.16b, v26.16b //AES block 8k+9 - result + stp q0, q1, [x2], #32 //AES block 8k+8, 8k+9 - store result +.long 0xce036963 //eor3 v3.16b, v11.16b, v3.16b, v26.16b //AES block 8k+11 - result + +.long 0xce026942 //eor3 v2.16b, v10.16b, v2.16b, v26.16b //AES block 8k+10 - result +.long 0xce0769e7 //eor3 v7.16b, v15.16b, v7.16b, v26.16b //AES block 8k+15 - result + stp q2, q3, [x2], #32 //AES block 8k+10, 8k+11 - store result + +.long 0xce0569a5 //eor3 v5.16b, v13.16b, v5.16b, v26.16b //AES block 8k+13 - result +.long 0xce115673 //eor3 v19.16b, v19.16b, v17.16b, v21.16b //MODULO - fold into low + mov v3.16b, v25.16b //CTR block 8k+19 + +.long 0xce046984 //eor3 v4.16b, v12.16b, v4.16b, v26.16b //AES block 8k+12 - result + stp q4, q5, [x2], #32 //AES block 8k+12, 8k+13 - store result + cmp x0, x5 //LOOP CONTROL + +.long 0xce0669c6 //eor3 v6.16b, v14.16b, v6.16b, v26.16b //AES block 8k+14 - result + stp q6, q7, [x2], #32 //AES block 8k+14, 8k+15 - store result + mov v0.16b, v20.16b //CTR block 8k+16 + + mov v1.16b, v22.16b //CTR block 8k+17 + mov v2.16b, v23.16b //CTR block 8k+18 + + rev32 v4.16b, v30.16b //CTR block 8k+20 + add v30.4s, v30.4s, v31.4s //CTR block 8k+20 + b.lt L192_dec_main_loop + +L192_dec_prepretail: //PREPRETAIL + ldp q26, q27, [x8, #0] //load rk0, rk1 + rev32 v5.16b, v30.16b //CTR block 8k+13 + add v30.4s, v30.4s, v31.4s //CTR block 8k+13 + + ldr q23, [x3, #176] //load h7l | h7h + ext v23.16b, v23.16b, v23.16b, #8 + ldr q25, [x3, #208] //load h8l | h8h + ext v25.16b, v25.16b, v25.16b, #8 + rev64 v8.16b, v8.16b //GHASH block 8k + ext v19.16b, v19.16b, v19.16b, #8 //PRE 0 + + rev64 v11.16b, v11.16b //GHASH block 8k+3 + rev32 v6.16b, v30.16b //CTR block 8k+14 + add v30.4s, v30.4s, v31.4s //CTR block 8k+14 + + eor v8.16b, v8.16b, v19.16b //PRE 1 + rev64 v10.16b, v10.16b //GHASH block 8k+2 + rev64 v9.16b, v9.16b //GHASH block 8k+1 + + ldr q20, [x3, #128] //load h5l | h5h + ext v20.16b, v20.16b, v20.16b, #8 + ldr q22, [x3, #160] //load h6l | h6h + ext v22.16b, v22.16b, v22.16b, #8 + rev32 v7.16b, v30.16b //CTR block 8k+15 + + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 0 + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 0 + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 0 + + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 0 + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 0 + pmull2 v16.1q, v9.2d, v23.2d //GHASH block 8k+1 - high + + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 0 + pmull2 v17.1q, v8.2d, v25.2d //GHASH block 8k - high + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 0 + + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 1 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 0 + ldp q28, q26, [x8, #32] //load rk2, rk3 + + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 1 + pmull2 v29.1q, v10.2d, v22.2d //GHASH block 8k+2 - high + pmull v22.1q, v10.1d, v22.1d //GHASH block 8k+2 - low + + pmull v23.1q, v9.1d, v23.1d //GHASH block 8k+1 - low + eor v17.16b, v17.16b, v16.16b //GHASH block 8k+1 - high + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 1 + + pmull v19.1q, v8.1d, v25.1d //GHASH block 8k - low + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 1 + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 1 + + trn1 v18.2d, v9.2d, v8.2d //GHASH block 8k, 8k+1 - mid + trn2 v8.2d, v9.2d, v8.2d //GHASH block 8k, 8k+1 - mid + pmull2 v9.1q, v11.2d, v20.2d //GHASH block 8k+3 - high + + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 1 + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 1 + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 1 + + ldr q21, [x3, #144] //load h6k | h5k + ldr q24, [x3, #192] //load h8k | h7k + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 2 + eor v8.16b, v8.16b, v18.16b //GHASH block 8k, 8k+1 - mid + + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 2 + rev64 v13.16b, v13.16b //GHASH block 8k+5 + pmull v20.1q, v11.1d, v20.1d //GHASH block 8k+3 - low + +.long 0xce1d2631 //eor3 v17.16b, v17.16b, v29.16b, v9.16b //GHASH block 8k+2, 8k+3 - high + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 2 + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 2 + + trn1 v29.2d, v11.2d, v10.2d //GHASH block 8k+2, 8k+3 - mid + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 3 + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 2 + + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 2 + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 2 + trn2 v10.2d, v11.2d, v10.2d //GHASH block 8k+2, 8k+3 - mid + + pmull2 v18.1q, v8.2d, v24.2d //GHASH block 8k - mid + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 2 + pmull v24.1q, v8.1d, v24.1d //GHASH block 8k+1 - mid + + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 3 + eor v10.16b, v10.16b, v29.16b //GHASH block 8k+2, 8k+3 - mid + eor v19.16b, v19.16b, v23.16b //GHASH block 8k+1 - low + + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 3 + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 3 + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 3 + +.long 0xce165273 //eor3 v19.16b, v19.16b, v22.16b, v20.16b //GHASH block 8k+2, 8k+3 - low + ldp q27, q28, [x8, #64] //load rk4, rk5 + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 3 + + ldr q23, [x3, #80] //load h3l | h3h + ext v23.16b, v23.16b, v23.16b, #8 + ldr q25, [x3, #112] //load h4l | h4h + ext v25.16b, v25.16b, v25.16b, #8 + pmull2 v29.1q, v10.2d, v21.2d //GHASH block 8k+2 - mid + pmull v21.1q, v10.1d, v21.1d //GHASH block 8k+3 - mid + + ldr q20, [x3, #32] //load h1l | h1h + ext v20.16b, v20.16b, v20.16b, #8 + ldr q22, [x3, #64] //load h2l | h2h + ext v22.16b, v22.16b, v22.16b, #8 + eor v18.16b, v18.16b, v24.16b //GHASH block 8k+1 - mid + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 3 + + rev64 v15.16b, v15.16b //GHASH block 8k+7 + +.long 0xce157652 //eor3 v18.16b, v18.16b, v21.16b, v29.16b //GHASH block 8k+2, 8k+3 - mid + rev64 v12.16b, v12.16b //GHASH block 8k+4 + + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 4 + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 4 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 3 + + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 4 + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 4 + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 4 + + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 4 + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 4 + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 4 + + rev64 v14.16b, v14.16b //GHASH block 8k+6 + ldr q21, [x3, #48] //load h2k | h1k + ldr q24, [x3, #96] //load h4k | h3k + trn1 v16.2d, v13.2d, v12.2d //GHASH block 8k+4, 8k+5 - mid + + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 5 + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 5 + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 5 + + ldp q26, q27, [x8, #96] //load rk6, rk7 + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 5 + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 5 + + pmull2 v11.1q, v14.2d, v22.2d //GHASH block 8k+6 - high + pmull2 v8.1q, v12.2d, v25.2d //GHASH block 8k+4 - high + pmull v22.1q, v14.1d, v22.1d //GHASH block 8k+6 - low + + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 5 + + pmull v25.1q, v12.1d, v25.1d //GHASH block 8k+4 - low + trn2 v12.2d, v13.2d, v12.2d //GHASH block 8k+4, 8k+5 - mid + pmull2 v10.1q, v13.2d, v23.2d //GHASH block 8k+5 - high + + pmull v23.1q, v13.1d, v23.1d //GHASH block 8k+5 - low + trn1 v13.2d, v15.2d, v14.2d //GHASH block 8k+6, 8k+7 - mid + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 5 + + trn2 v14.2d, v15.2d, v14.2d //GHASH block 8k+6, 8k+7 - mid + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 5 + eor v12.16b, v12.16b, v16.16b //GHASH block 8k+4, 8k+5 - mid + + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 6 + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 6 + + eor v14.16b, v14.16b, v13.16b //GHASH block 8k+6, 8k+7 - mid + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 6 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 6 + + pmull2 v16.1q, v12.2d, v24.2d //GHASH block 8k+4 - mid + pmull v24.1q, v12.1d, v24.1d //GHASH block 8k+5 - mid + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 6 + + pmull2 v13.1q, v14.2d, v21.2d //GHASH block 8k+6 - mid + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 6 + pmull2 v12.1q, v15.2d, v20.2d //GHASH block 8k+7 - high + +.long 0xce184252 //eor3 v18.16b, v18.16b, v24.16b, v16.16b //GHASH block 8k+4, 8k+5 - mid + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 7 +.long 0xce195e73 //eor3 v19.16b, v19.16b, v25.16b, v23.16b //GHASH block 8k+4, 8k+5 - low + + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 6 + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 6 + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 7 + + ldp q28, q26, [x8, #128] //load rk8, rk9 + pmull v21.1q, v14.1d, v21.1d //GHASH block 8k+7 - mid + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 7 + + ldr d16, [x10] //MODULO - load modulo constant +.long 0xce082a31 //eor3 v17.16b, v17.16b, v8.16b, v10.16b //GHASH block 8k+4, 8k+5 - high + pmull v20.1q, v15.1d, v20.1d //GHASH block 8k+7 - low + + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 7 + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 7 + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 7 + +.long 0xce0b3231 //eor3 v17.16b, v17.16b, v11.16b, v12.16b //GHASH block 8k+6, 8k+7 - high +.long 0xce165273 //eor3 v19.16b, v19.16b, v22.16b, v20.16b //GHASH block 8k+6, 8k+7 - low +.long 0xce153652 //eor3 v18.16b, v18.16b, v21.16b, v13.16b //GHASH block 8k+6, 8k+7 - mid + + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 7 + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 7 + +.long 0xce114e52 //eor3 v18.16b, v18.16b, v17.16b, v19.16b //MODULO - karatsuba tidy up + ext v21.16b, v17.16b, v17.16b, #8 //MODULO - other top alignment + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 8 + + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 8 + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 8 + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 8 + + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 8 + pmull v29.1q, v17.1d, v16.1d //MODULO - top 64b align with mid + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 8 + + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 8 + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 8 + ldp q27, q28, [x8, #160] //load rk10, rk11 + +.long 0xce1d5652 //eor3 v18.16b, v18.16b, v29.16b, v21.16b //MODULO - fold into mid + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 9 + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 9 + + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 9 + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 9 + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 9 + + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 9 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 9 + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 9 + + pmull v17.1q, v18.1d, v16.1d //MODULO - mid 64b align with low + ldr q26, [x8, #192] //load rk12 + ext v21.16b, v18.16b, v18.16b, #8 //MODULO - other mid alignment + + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 10 + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 10 + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 10 + + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 10 + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 10 + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 10 + + aese v0.16b, v28.16b //AES block 8k+8 - round 11 +.long 0xce115673 //eor3 v19.16b, v19.16b, v17.16b, v21.16b //MODULO - fold into low + aese v5.16b, v28.16b //AES block 8k+13 - round 11 + + aese v2.16b, v28.16b //AES block 8k+10 - round 11 + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 10 + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 10 + + aese v6.16b, v28.16b //AES block 8k+14 - round 11 + aese v4.16b, v28.16b //AES block 8k+12 - round 11 + add v30.4s, v30.4s, v31.4s //CTR block 8k+15 + + aese v3.16b, v28.16b //AES block 8k+11 - round 11 + aese v1.16b, v28.16b //AES block 8k+9 - round 11 + aese v7.16b, v28.16b //AES block 8k+15 - round 11 + +L192_dec_tail: //TAIL + + sub x5, x4, x0 //main_end_input_ptr is number of bytes left to process + + ldp q20, q21, [x3, #128] //load h5l | h5h + ext v20.16b, v20.16b, v20.16b, #8 + ldr q9, [x0], #16 //AES block 8k+8 - load ciphertext + + ldp q24, q25, [x3, #192] //load h8k | h7k + ext v25.16b, v25.16b, v25.16b, #8 + + mov v29.16b, v26.16b + + ldp q22, q23, [x3, #160] //load h6l | h6h + ext v22.16b, v22.16b, v22.16b, #8 + ext v23.16b, v23.16b, v23.16b, #8 + ext v16.16b, v19.16b, v19.16b, #8 //prepare final partial tag + +.long 0xce00752c //eor3 v12.16b, v9.16b, v0.16b, v29.16b //AES block 8k+8 - result + cmp x5, #112 + b.gt L192_dec_blocks_more_than_7 + + mov v7.16b, v6.16b + movi v17.8b, #0 + sub v30.4s, v30.4s, v31.4s + + mov v6.16b, v5.16b + mov v5.16b, v4.16b + mov v4.16b, v3.16b + + cmp x5, #96 + movi v19.8b, #0 + mov v3.16b, v2.16b + + mov v2.16b, v1.16b + movi v18.8b, #0 + b.gt L192_dec_blocks_more_than_6 + + mov v7.16b, v6.16b + mov v6.16b, v5.16b + mov v5.16b, v4.16b + + mov v4.16b, v3.16b + mov v3.16b, v1.16b + + sub v30.4s, v30.4s, v31.4s + cmp x5, #80 + b.gt L192_dec_blocks_more_than_5 + + mov v7.16b, v6.16b + mov v6.16b, v5.16b + + mov v5.16b, v4.16b + mov v4.16b, v1.16b + cmp x5, #64 + + sub v30.4s, v30.4s, v31.4s + b.gt L192_dec_blocks_more_than_4 + + sub v30.4s, v30.4s, v31.4s + mov v7.16b, v6.16b + mov v6.16b, v5.16b + + mov v5.16b, v1.16b + cmp x5, #48 + b.gt L192_dec_blocks_more_than_3 + + sub v30.4s, v30.4s, v31.4s + mov v7.16b, v6.16b + cmp x5, #32 + + mov v6.16b, v1.16b + ldr q24, [x3, #96] //load h4k | h3k + b.gt L192_dec_blocks_more_than_2 + + sub v30.4s, v30.4s, v31.4s + + mov v7.16b, v1.16b + cmp x5, #16 + b.gt L192_dec_blocks_more_than_1 + + sub v30.4s, v30.4s, v31.4s + ldr q21, [x3, #48] //load h2k | h1k + b L192_dec_blocks_less_than_1 +L192_dec_blocks_more_than_7: //blocks left > 7 + rev64 v8.16b, v9.16b //GHASH final-7 block + + ins v18.d[0], v24.d[1] //GHASH final-7 block - mid + eor v8.16b, v8.16b, v16.16b //feed in partial tag + + pmull2 v17.1q, v8.2d, v25.2d //GHASH final-7 block - high + ins v27.d[0], v8.d[1] //GHASH final-7 block - mid + ldr q9, [x0], #16 //AES final-6 block - load ciphertext + + pmull v19.1q, v8.1d, v25.1d //GHASH final-7 block - low + + eor v27.8b, v27.8b, v8.8b //GHASH final-7 block - mid + st1 { v12.16b}, [x2], #16 //AES final-7 block - store result + +.long 0xce01752c //eor3 v12.16b, v9.16b, v1.16b, v29.16b //AES final-6 block - result + + pmull v18.1q, v27.1d, v18.1d //GHASH final-7 block - mid + movi v16.8b, #0 //suppress further partial tag feed in +L192_dec_blocks_more_than_6: //blocks left > 6 + + rev64 v8.16b, v9.16b //GHASH final-6 block + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + + ldr q9, [x0], #16 //AES final-5 block - load ciphertext + ins v27.d[0], v8.d[1] //GHASH final-6 block - mid + + eor v27.8b, v27.8b, v8.8b //GHASH final-6 block - mid + movi v16.8b, #0 //suppress further partial tag feed in + pmull2 v28.1q, v8.2d, v23.2d //GHASH final-6 block - high + + st1 { v12.16b}, [x2], #16 //AES final-6 block - store result +.long 0xce02752c //eor3 v12.16b, v9.16b, v2.16b, v29.16b //AES final-5 block - result + + eor v17.16b, v17.16b, v28.16b //GHASH final-6 block - high + pmull v27.1q, v27.1d, v24.1d //GHASH final-6 block - mid + pmull v26.1q, v8.1d, v23.1d //GHASH final-6 block - low + + eor v18.16b, v18.16b, v27.16b //GHASH final-6 block - mid + eor v19.16b, v19.16b, v26.16b //GHASH final-6 block - low +L192_dec_blocks_more_than_5: //blocks left > 5 + + rev64 v8.16b, v9.16b //GHASH final-5 block + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + + ins v27.d[0], v8.d[1] //GHASH final-5 block - mid + + eor v27.8b, v27.8b, v8.8b //GHASH final-5 block - mid + + ins v27.d[1], v27.d[0] //GHASH final-5 block - mid + pmull2 v28.1q, v8.2d, v22.2d //GHASH final-5 block - high + + ldr q9, [x0], #16 //AES final-4 block - load ciphertext + + eor v17.16b, v17.16b, v28.16b //GHASH final-5 block - high + pmull v26.1q, v8.1d, v22.1d //GHASH final-5 block - low + + pmull2 v27.1q, v27.2d, v21.2d //GHASH final-5 block - mid + + eor v19.16b, v19.16b, v26.16b //GHASH final-5 block - low + movi v16.8b, #0 //suppress further partial tag feed in + st1 { v12.16b}, [x2], #16 //AES final-5 block - store result + + eor v18.16b, v18.16b, v27.16b //GHASH final-5 block - mid +.long 0xce03752c //eor3 v12.16b, v9.16b, v3.16b, v29.16b //AES final-4 block - result +L192_dec_blocks_more_than_4: //blocks left > 4 + + rev64 v8.16b, v9.16b //GHASH final-4 block + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + movi v16.8b, #0 //suppress further partial tag feed in + + ldr q9, [x0], #16 //AES final-3 block - load ciphertext + ins v27.d[0], v8.d[1] //GHASH final-4 block - mid + pmull v26.1q, v8.1d, v20.1d //GHASH final-4 block - low + + eor v27.8b, v27.8b, v8.8b //GHASH final-4 block - mid + + eor v19.16b, v19.16b, v26.16b //GHASH final-4 block - low + + pmull v27.1q, v27.1d, v21.1d //GHASH final-4 block - mid + st1 { v12.16b}, [x2], #16 //AES final-4 block - store result + pmull2 v28.1q, v8.2d, v20.2d //GHASH final-4 block - high + +.long 0xce04752c //eor3 v12.16b, v9.16b, v4.16b, v29.16b //AES final-3 block - result + + eor v18.16b, v18.16b, v27.16b //GHASH final-4 block - mid + eor v17.16b, v17.16b, v28.16b //GHASH final-4 block - high +L192_dec_blocks_more_than_3: //blocks left > 3 + + ldr q25, [x3, #112] //load h4l | h4h + ext v25.16b, v25.16b, v25.16b, #8 + rev64 v8.16b, v9.16b //GHASH final-3 block + ldr q9, [x0], #16 //AES final-2 block - load ciphertext + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + + ins v27.d[0], v8.d[1] //GHASH final-3 block - mid + pmull2 v28.1q, v8.2d, v25.2d //GHASH final-3 block - high + + eor v17.16b, v17.16b, v28.16b //GHASH final-3 block - high + movi v16.8b, #0 //suppress further partial tag feed in + pmull v26.1q, v8.1d, v25.1d //GHASH final-3 block - low + + st1 { v12.16b}, [x2], #16 //AES final-3 block - store result + eor v27.8b, v27.8b, v8.8b //GHASH final-3 block - mid +.long 0xce05752c //eor3 v12.16b, v9.16b, v5.16b, v29.16b //AES final-2 block - result + + eor v19.16b, v19.16b, v26.16b //GHASH final-3 block - low + ldr q24, [x3, #96] //load h4k | h3k + + ins v27.d[1], v27.d[0] //GHASH final-3 block - mid + + pmull2 v27.1q, v27.2d, v24.2d //GHASH final-3 block - mid + + eor v18.16b, v18.16b, v27.16b //GHASH final-3 block - mid +L192_dec_blocks_more_than_2: //blocks left > 2 + + rev64 v8.16b, v9.16b //GHASH final-2 block + ldr q23, [x3, #80] //load h3l | h3h + ext v23.16b, v23.16b, v23.16b, #8 + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + + ins v27.d[0], v8.d[1] //GHASH final-2 block - mid + ldr q9, [x0], #16 //AES final-1 block - load ciphertext + + pmull2 v28.1q, v8.2d, v23.2d //GHASH final-2 block - high + + eor v27.8b, v27.8b, v8.8b //GHASH final-2 block - mid + + eor v17.16b, v17.16b, v28.16b //GHASH final-2 block - high + pmull v26.1q, v8.1d, v23.1d //GHASH final-2 block - low + + pmull v27.1q, v27.1d, v24.1d //GHASH final-2 block - mid + movi v16.8b, #0 //suppress further partial tag feed in + + eor v19.16b, v19.16b, v26.16b //GHASH final-2 block - low + st1 { v12.16b}, [x2], #16 //AES final-2 block - store result + + eor v18.16b, v18.16b, v27.16b //GHASH final-2 block - mid +.long 0xce06752c //eor3 v12.16b, v9.16b, v6.16b, v29.16b //AES final-1 block - result +L192_dec_blocks_more_than_1: //blocks left > 1 + + rev64 v8.16b, v9.16b //GHASH final-1 block + ldr q9, [x0], #16 //AES final block - load ciphertext + ldr q22, [x3, #64] //load h1l | h1h + ext v22.16b, v22.16b, v22.16b, #8 + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + movi v16.8b, #0 //suppress further partial tag feed in + ldr q21, [x3, #48] //load h2k | h1k + + pmull v26.1q, v8.1d, v22.1d //GHASH final-1 block - low + ins v27.d[0], v8.d[1] //GHASH final-1 block - mid + st1 { v12.16b}, [x2], #16 //AES final-1 block - store result + + pmull2 v28.1q, v8.2d, v22.2d //GHASH final-1 block - high + +.long 0xce07752c //eor3 v12.16b, v9.16b, v7.16b, v29.16b //AES final block - result + + eor v27.8b, v27.8b, v8.8b //GHASH final-1 block - mid + + ins v27.d[1], v27.d[0] //GHASH final-1 block - mid + + pmull2 v27.1q, v27.2d, v21.2d //GHASH final-1 block - mid + + eor v19.16b, v19.16b, v26.16b //GHASH final-1 block - low + + eor v18.16b, v18.16b, v27.16b //GHASH final-1 block - mid + eor v17.16b, v17.16b, v28.16b //GHASH final-1 block - high +L192_dec_blocks_less_than_1: //blocks left <= 1 + + rev32 v30.16b, v30.16b + and x1, x1, #127 //bit_length %= 128 + + sub x1, x1, #128 //bit_length -= 128 + str q30, [x16] //store the updated counter + + neg x1, x1 //bit_length = 128 - #bits in input (in range [1,128]) + mvn x6, xzr //temp0_x = 0xffffffffffffffff + + and x1, x1, #127 //bit_length %= 128 + + mvn x7, xzr //temp1_x = 0xffffffffffffffff + lsr x6, x6, x1 //temp0_x is mask for top 64b of last block + cmp x1, #64 + + csel x13, x7, x6, lt + csel x14, x6, xzr, lt + ldr q20, [x3, #32] //load h1l | h1h + ext v20.16b, v20.16b, v20.16b, #8 + + mov v0.d[1], x14 + ld1 { v26.16b}, [x2] //load existing bytes where the possibly partial last block is to be stored + + mov v0.d[0], x13 //ctr0b is mask for last block + + and v9.16b, v9.16b, v0.16b //possibly partial last block has zeroes in highest bits + bif v12.16b, v26.16b, v0.16b //insert existing bytes in top end of result before storing + + rev64 v8.16b, v9.16b //GHASH final block + + st1 { v12.16b}, [x2] //store all 16B + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + + ins v16.d[0], v8.d[1] //GHASH final block - mid + pmull v26.1q, v8.1d, v20.1d //GHASH final block - low + + eor v16.8b, v16.8b, v8.8b //GHASH final block - mid + pmull2 v28.1q, v8.2d, v20.2d //GHASH final block - high + eor v19.16b, v19.16b, v26.16b //GHASH final block - low + + pmull v16.1q, v16.1d, v21.1d //GHASH final block - mid + eor v17.16b, v17.16b, v28.16b //GHASH final block - high + + eor v14.16b, v17.16b, v19.16b //MODULO - karatsuba tidy up + eor v18.16b, v18.16b, v16.16b //GHASH final block - mid + ldr d16, [x10] //MODULO - load modulo constant + + pmull v21.1q, v17.1d, v16.1d //MODULO - top 64b align with mid + ext v17.16b, v17.16b, v17.16b, #8 //MODULO - other top alignment + + eor v18.16b, v18.16b, v14.16b //MODULO - karatsuba tidy up + +.long 0xce115652 //eor3 v18.16b, v18.16b, v17.16b, v21.16b //MODULO - fold into mid + + pmull v17.1q, v18.1d, v16.1d //MODULO - mid 64b align with low + ext v18.16b, v18.16b, v18.16b, #8 //MODULO - other mid alignment + +.long 0xce124673 //eor3 v19.16b, v19.16b, v18.16b, v17.16b //MODULO - fold into low + ext v19.16b, v19.16b, v19.16b, #8 + rev64 v19.16b, v19.16b + st1 { v19.16b }, [x3] + + mov x0, x9 + + ldp d10, d11, [sp, #16] + ldp d12, d13, [sp, #32] + ldp d14, d15, [sp, #48] + ldp d8, d9, [sp], #80 + ret + +L192_dec_ret: + mov w0, #0x0 + ret + +.globl _unroll8_eor3_aes_gcm_enc_256_kernel + +.align 4 +_unroll8_eor3_aes_gcm_enc_256_kernel: + AARCH64_VALID_CALL_TARGET + cbz x1, L256_enc_ret + stp d8, d9, [sp, #-80]! + lsr x9, x1, #3 + mov x16, x4 + mov x8, x5 + stp d10, d11, [sp, #16] + stp d12, d13, [sp, #32] + stp d14, d15, [sp, #48] + mov x5, #0xc200000000000000 + stp x5, xzr, [sp, #64] + add x10, sp, #64 + + ld1 { v0.16b}, [x16] //CTR block 0 + + mov x5, x9 + + mov x15, #0x100000000 //set up counter increment + movi v31.16b, #0x0 + mov v31.d[1], x15 + sub x5, x5, #1 //byte_len - 1 + + and x5, x5, #0xffffffffffffff80 //number of bytes to be processed in main loop (at least 1 byte must be handled by tail) + + add x5, x5, x0 + + rev32 v30.16b, v0.16b //set up reversed counter + + add v30.4s, v30.4s, v31.4s //CTR block 0 + + rev32 v1.16b, v30.16b //CTR block 1 + add v30.4s, v30.4s, v31.4s //CTR block 1 + + rev32 v2.16b, v30.16b //CTR block 2 + add v30.4s, v30.4s, v31.4s //CTR block 2 + + rev32 v3.16b, v30.16b //CTR block 3 + add v30.4s, v30.4s, v31.4s //CTR block 3 + + rev32 v4.16b, v30.16b //CTR block 4 + add v30.4s, v30.4s, v31.4s //CTR block 4 + + rev32 v5.16b, v30.16b //CTR block 5 + add v30.4s, v30.4s, v31.4s //CTR block 5 + ldp q26, q27, [x8, #0] //load rk0, rk1 + + rev32 v6.16b, v30.16b //CTR block 6 + add v30.4s, v30.4s, v31.4s //CTR block 6 + + rev32 v7.16b, v30.16b //CTR block 7 + + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 3 - round 0 + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 4 - round 0 + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 2 - round 0 + + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 0 - round 0 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 1 - round 0 + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 6 - round 0 + + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 5 - round 0 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 7 - round 0 + ldp q28, q26, [x8, #32] //load rk2, rk3 + + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 4 - round 1 + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 1 - round 1 + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 3 - round 1 + + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 6 - round 1 + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 5 - round 1 + + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 2 - round 1 + + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 7 - round 1 + + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 2 - round 2 + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 3 - round 2 + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 0 - round 1 + + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 7 - round 2 + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 6 - round 2 + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 5 - round 2 + + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 4 - round 2 + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 0 - round 2 + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 1 - round 2 + + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 5 - round 3 + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 3 - round 3 + ldp q27, q28, [x8, #64] //load rk4, rk5 + + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 4 - round 3 + + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 1 - round 3 + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 6 - round 3 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 7 - round 3 + + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 2 - round 3 + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 0 - round 3 + + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 4 - round 4 + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 6 - round 4 + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 1 - round 4 + + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 2 - round 4 + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 0 - round 4 + + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 3 - round 4 + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 7 - round 4 + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 5 - round 4 + + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 0 - round 5 + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 2 - round 5 + ldp q26, q27, [x8, #96] //load rk6, rk7 + + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 1 - round 5 + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 4 - round 5 + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 5 - round 5 + + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 3 - round 5 + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 6 - round 5 + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 7 - round 5 + + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 1 - round 6 + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 5 - round 6 + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 4 - round 6 + + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 2 - round 6 + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 6 - round 6 + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 0 - round 6 + + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 7 - round 6 + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 3 - round 6 + ldp q28, q26, [x8, #128] //load rk8, rk9 + + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 2 - round 7 + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 0 - round 7 + + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 7 - round 7 + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 6 - round 7 + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 1 - round 7 + + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 5 - round 7 + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 3 - round 7 + + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 4 - round 7 + + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 6 - round 8 + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 1 - round 8 + + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 3 - round 8 + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 0 - round 8 + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 7 - round 8 + + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 5 - round 8 + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 4 - round 8 + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 2 - round 8 + + ld1 { v19.16b}, [x3] + ext v19.16b, v19.16b, v19.16b, #8 + rev64 v19.16b, v19.16b + ldp q27, q28, [x8, #160] //load rk10, rk11 + + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 6 - round 9 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 7 - round 9 + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 3 - round 9 + + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 4 - round 9 + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 5 - round 9 + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 2 - round 9 + + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 1 - round 9 + + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 7 - round 10 + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 4 - round 10 + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 0 - round 9 + + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 1 - round 10 + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 5 - round 10 + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 3 - round 10 + + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 2 - round 10 + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 0 - round 10 + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 6 - round 10 + + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 4 - round 11 + ldp q26, q27, [x8, #192] //load rk12, rk13 + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 5 - round 11 + + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 2 - round 11 + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 6 - round 11 + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 1 - round 11 + + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 0 - round 11 + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 3 - round 11 + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 7 - round 11 + + add v30.4s, v30.4s, v31.4s //CTR block 7 + ldr q28, [x8, #224] //load rk14 + + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 4 - round 12 + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 2 - round 12 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 1 - round 12 + + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 0 - round 12 + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 5 - round 12 + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 3 - round 12 + + aese v2.16b, v27.16b //AES block 2 - round 13 + aese v1.16b, v27.16b //AES block 1 - round 13 + aese v4.16b, v27.16b //AES block 4 - round 13 + + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 6 - round 12 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 7 - round 12 + + aese v0.16b, v27.16b //AES block 0 - round 13 + aese v5.16b, v27.16b //AES block 5 - round 13 + + aese v6.16b, v27.16b //AES block 6 - round 13 + aese v7.16b, v27.16b //AES block 7 - round 13 + aese v3.16b, v27.16b //AES block 3 - round 13 + + add x4, x0, x1, lsr #3 //end_input_ptr + cmp x0, x5 //check if we have <= 8 blocks + b.ge L256_enc_tail //handle tail + + ldp q8, q9, [x0], #32 //AES block 0, 1 - load plaintext + + ldp q10, q11, [x0], #32 //AES block 2, 3 - load plaintext + +.long 0xce007108 //eor3 v8.16b, v8.16b, v0.16b, v28.16b //AES block 0 - result + rev32 v0.16b, v30.16b //CTR block 8 + add v30.4s, v30.4s, v31.4s //CTR block 8 + +.long 0xce017129 //eor3 v9.16b, v9.16b, v1.16b, v28.16b //AES block 1 - result +.long 0xce03716b //eor3 v11.16b, v11.16b, v3.16b, v28.16b //AES block 3 - result + + rev32 v1.16b, v30.16b //CTR block 9 + add v30.4s, v30.4s, v31.4s //CTR block 9 + ldp q12, q13, [x0], #32 //AES block 4, 5 - load plaintext + + ldp q14, q15, [x0], #32 //AES block 6, 7 - load plaintext +.long 0xce02714a //eor3 v10.16b, v10.16b, v2.16b, v28.16b //AES block 2 - result + cmp x0, x5 //check if we have <= 8 blocks + + rev32 v2.16b, v30.16b //CTR block 10 + add v30.4s, v30.4s, v31.4s //CTR block 10 + stp q8, q9, [x2], #32 //AES block 0, 1 - store result + + stp q10, q11, [x2], #32 //AES block 2, 3 - store result + + rev32 v3.16b, v30.16b //CTR block 11 + add v30.4s, v30.4s, v31.4s //CTR block 11 + +.long 0xce04718c //eor3 v12.16b, v12.16b, v4.16b, v28.16b //AES block 4 - result + +.long 0xce0771ef //eor3 v15.16b, v15.16b, v7.16b, v28.16b //AES block 7 - result +.long 0xce0671ce //eor3 v14.16b, v14.16b, v6.16b, v28.16b //AES block 6 - result +.long 0xce0571ad //eor3 v13.16b, v13.16b, v5.16b, v28.16b //AES block 5 - result + + stp q12, q13, [x2], #32 //AES block 4, 5 - store result + rev32 v4.16b, v30.16b //CTR block 12 + + stp q14, q15, [x2], #32 //AES block 6, 7 - store result + add v30.4s, v30.4s, v31.4s //CTR block 12 + b.ge L256_enc_prepretail //do prepretail + +L256_enc_main_loop: //main loop start + ldp q26, q27, [x8, #0] //load rk0, rk1 + + rev32 v5.16b, v30.16b //CTR block 8k+13 + add v30.4s, v30.4s, v31.4s //CTR block 8k+13 + ldr q21, [x3, #144] //load h6k | h5k + ldr q24, [x3, #192] //load h8k | h7k + + rev64 v11.16b, v11.16b //GHASH block 8k+3 + ldr q20, [x3, #128] //load h5l | h5h + ext v20.16b, v20.16b, v20.16b, #8 + ldr q22, [x3, #160] //load h6l | h6h + ext v22.16b, v22.16b, v22.16b, #8 + rev64 v9.16b, v9.16b //GHASH block 8k+1 + + rev32 v6.16b, v30.16b //CTR block 8k+14 + add v30.4s, v30.4s, v31.4s //CTR block 8k+14 + rev64 v8.16b, v8.16b //GHASH block 8k + + rev64 v12.16b, v12.16b //GHASH block 8k+4 + ext v19.16b, v19.16b, v19.16b, #8 //PRE 0 + ldr q23, [x3, #176] //load h7l | h7h + ext v23.16b, v23.16b, v23.16b, #8 + ldr q25, [x3, #208] //load h8l | h8h + ext v25.16b, v25.16b, v25.16b, #8 + + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 0 + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 0 + rev32 v7.16b, v30.16b //CTR block 8k+15 + + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 0 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 0 + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 0 + + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 0 + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 0 + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 0 + + ldp q28, q26, [x8, #32] //load rk2, rk3 + eor v8.16b, v8.16b, v19.16b //PRE 1 + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 1 + + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 1 + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 1 + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 1 + + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 1 + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 1 + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 1 + + pmull2 v17.1q, v8.2d, v25.2d //GHASH block 8k - high + pmull v19.1q, v8.1d, v25.1d //GHASH block 8k - low + pmull2 v16.1q, v9.2d, v23.2d //GHASH block 8k+1 - high + + trn1 v18.2d, v9.2d, v8.2d //GHASH block 8k, 8k+1 - mid + trn2 v8.2d, v9.2d, v8.2d //GHASH block 8k, 8k+1 - mid + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 1 + + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 2 + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 2 + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 2 + + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 2 + pmull v23.1q, v9.1d, v23.1d //GHASH block 8k+1 - low + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 2 + + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 3 + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 3 + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 2 + + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 3 + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 2 + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 2 + + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 3 + rev64 v14.16b, v14.16b //GHASH block 8k+6 + pmull2 v9.1q, v11.2d, v20.2d //GHASH block 8k+3 - high + + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 3 + ldp q27, q28, [x8, #64] //load rk4, rk5 + rev64 v10.16b, v10.16b //GHASH block 8k+2 + + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 3 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 3 + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 3 + + eor v17.16b, v17.16b, v16.16b //GHASH block 8k+1 - high + pmull2 v29.1q, v10.2d, v22.2d //GHASH block 8k+2 - high + rev64 v13.16b, v13.16b //GHASH block 8k+5 + + pmull v20.1q, v11.1d, v20.1d //GHASH block 8k+3 - low + eor v19.16b, v19.16b, v23.16b //GHASH block 8k+1 - low + ldr q23, [x3, #80] //load h3l | h3h + ext v23.16b, v23.16b, v23.16b, #8 + ldr q25, [x3, #112] //load h4l | h4h + ext v25.16b, v25.16b, v25.16b, #8 + + trn1 v16.2d, v13.2d, v12.2d //GHASH block 8k+4, 8k+5 - mid +.long 0xce1d2631 //eor3 v17.16b, v17.16b, v29.16b, v9.16b //GHASH block 8k+2, 8k+3 - high + pmull v22.1q, v10.1d, v22.1d //GHASH block 8k+2 - low + + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 4 + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 4 + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 4 + + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 4 + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 4 + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 4 + + trn1 v29.2d, v11.2d, v10.2d //GHASH block 8k+2, 8k+3 - mid + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 4 + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 4 + + trn2 v10.2d, v11.2d, v10.2d //GHASH block 8k+2, 8k+3 - mid + eor v8.16b, v8.16b, v18.16b //GHASH block 8k, 8k+1 - mid + ldp q26, q27, [x8, #96] //load rk6, rk7 + + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 5 + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 5 + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 5 + + eor v10.16b, v10.16b, v29.16b //GHASH block 8k+2, 8k+3 - mid + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 5 + rev64 v15.16b, v15.16b //GHASH block 8k+7 + + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 5 + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 5 + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 5 + + pmull2 v29.1q, v10.2d, v21.2d //GHASH block 8k+2 - mid + pmull2 v18.1q, v8.2d, v24.2d //GHASH block 8k - mid + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 5 + + pmull v24.1q, v8.1d, v24.1d //GHASH block 8k+1 - mid + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 6 + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 6 + + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 6 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 6 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 6 + + eor v18.16b, v18.16b, v24.16b //GHASH block 8k+1 - mid + pmull v21.1q, v10.1d, v21.1d //GHASH block 8k+3 - mid + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 6 + +.long 0xce165273 //eor3 v19.16b, v19.16b, v22.16b, v20.16b //GHASH block 8k+2, 8k+3 - low + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 6 + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 6 + + ldp q28, q26, [x8, #128] //load rk8, rk9 + pmull2 v8.1q, v12.2d, v25.2d //GHASH block 8k+4 - high + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 7 + + ldr q20, [x3, #32] //load h1l | h1h + ext v20.16b, v20.16b, v20.16b, #8 + ldr q22, [x3, #64] //load h2l | h2h + ext v22.16b, v22.16b, v22.16b, #8 + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 7 +.long 0xce157652 //eor3 v18.16b, v18.16b, v21.16b, v29.16b //GHASH block 8k+2, 8k+3 - mid + + ldr q21, [x3, #48] //load h2k | h1k + ldr q24, [x3, #96] //load h4k | h3k + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 7 + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 7 + + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 7 + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 7 + pmull v25.1q, v12.1d, v25.1d //GHASH block 8k+4 - low + + trn2 v12.2d, v13.2d, v12.2d //GHASH block 8k+4, 8k+5 - mid + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 7 + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 7 + + pmull2 v10.1q, v13.2d, v23.2d //GHASH block 8k+5 - high + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 8 + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 8 + + pmull v23.1q, v13.1d, v23.1d //GHASH block 8k+5 - low + trn1 v13.2d, v15.2d, v14.2d //GHASH block 8k+6, 8k+7 - mid + eor v12.16b, v12.16b, v16.16b //GHASH block 8k+4, 8k+5 - mid + + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 8 + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 9 + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 8 + + pmull2 v16.1q, v12.2d, v24.2d //GHASH block 8k+4 - mid + pmull v24.1q, v12.1d, v24.1d //GHASH block 8k+5 - mid + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 8 + + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 8 + pmull2 v11.1q, v14.2d, v22.2d //GHASH block 8k+6 - high + pmull v22.1q, v14.1d, v22.1d //GHASH block 8k+6 - low + + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 8 + trn2 v14.2d, v15.2d, v14.2d //GHASH block 8k+6, 8k+7 - mid + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 8 + +.long 0xce184252 //eor3 v18.16b, v18.16b, v24.16b, v16.16b //GHASH block 8k+4, 8k+5 - mid + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 9 + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 9 + + eor v14.16b, v14.16b, v13.16b //GHASH block 8k+6, 8k+7 - mid + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 9 + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 9 + + ldp q27, q28, [x8, #160] //load rk10, rk11 + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 9 + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 9 + + pmull2 v12.1q, v15.2d, v20.2d //GHASH block 8k+7 - high +.long 0xce195e73 //eor3 v19.16b, v19.16b, v25.16b, v23.16b //GHASH block 8k+4, 8k+5 - low + pmull v20.1q, v15.1d, v20.1d //GHASH block 8k+7 - low + + ldr d16, [x10] //MODULO - load modulo constant + pmull2 v13.1q, v14.2d, v21.2d //GHASH block 8k+6 - mid + pmull v21.1q, v14.1d, v21.1d //GHASH block 8k+7 - mid + + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 9 + +.long 0xce153652 //eor3 v18.16b, v18.16b, v21.16b, v13.16b //GHASH block 8k+6, 8k+7 - mid +.long 0xce165273 //eor3 v19.16b, v19.16b, v22.16b, v20.16b //GHASH block 8k+6, 8k+7 - low +.long 0xce082a31 //eor3 v17.16b, v17.16b, v8.16b, v10.16b //GHASH block 8k+4, 8k+5 - high + + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 10 + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 10 + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 10 + + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 10 + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 10 + add v30.4s, v30.4s, v31.4s //CTR block 8k+15 + + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 10 + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 10 + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 10 + +.long 0xce0b3231 //eor3 v17.16b, v17.16b, v11.16b, v12.16b //GHASH block 8k+6, 8k+7 - high + + ldp q26, q27, [x8, #192] //load rk12, rk13 + rev32 v20.16b, v30.16b //CTR block 8k+16 + + ext v21.16b, v17.16b, v17.16b, #8 //MODULO - other top alignment + ldp q8, q9, [x0], #32 //AES block 8k+8, 8k+9 - load plaintext + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 11 + + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 11 + add v30.4s, v30.4s, v31.4s //CTR block 8k+16 + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 11 + + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 11 + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 11 + + pmull v29.1q, v17.1d, v16.1d //MODULO - top 64b align with mid + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 11 + + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 12 + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 11 + + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 12 + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 12 + rev32 v22.16b, v30.16b //CTR block 8k+17 + + add v30.4s, v30.4s, v31.4s //CTR block 8k+17 + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 11 +.long 0xce114e52 //eor3 v18.16b, v18.16b, v17.16b, v19.16b //MODULO - karatsuba tidy up + + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 12 + ldr q28, [x8, #224] //load rk14 + aese v7.16b, v27.16b //AES block 8k+15 - round 13 + + ldp q10, q11, [x0], #32 //AES block 8k+10, 8k+11 - load plaintext + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 12 + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 12 + +.long 0xce1d5652 //eor3 v18.16b, v18.16b, v29.16b, v21.16b //MODULO - fold into mid + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 12 + ldp q12, q13, [x0], #32 //AES block 4, 5 - load plaintext + + ldp q14, q15, [x0], #32 //AES block 6, 7 - load plaintext + aese v2.16b, v27.16b //AES block 8k+10 - round 13 + aese v4.16b, v27.16b //AES block 8k+12 - round 13 + + rev32 v23.16b, v30.16b //CTR block 8k+18 + add v30.4s, v30.4s, v31.4s //CTR block 8k+18 + aese v5.16b, v27.16b //AES block 8k+13 - round 13 + + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 12 + aese v3.16b, v27.16b //AES block 8k+11 - round 13 + cmp x0, x5 //LOOP CONTROL + +.long 0xce02714a //eor3 v10.16b, v10.16b, v2.16b, v28.16b //AES block 8k+10 - result + rev32 v25.16b, v30.16b //CTR block 8k+19 + add v30.4s, v30.4s, v31.4s //CTR block 8k+19 + + aese v0.16b, v27.16b //AES block 8k+8 - round 13 + aese v6.16b, v27.16b //AES block 8k+14 - round 13 +.long 0xce0571ad //eor3 v13.16b, v13.16b, v5.16b, v28.16b //AES block 5 - result + + ext v21.16b, v18.16b, v18.16b, #8 //MODULO - other mid alignment + pmull v17.1q, v18.1d, v16.1d //MODULO - mid 64b align with low + aese v1.16b, v27.16b //AES block 8k+9 - round 13 + +.long 0xce04718c //eor3 v12.16b, v12.16b, v4.16b, v28.16b //AES block 4 - result + rev32 v4.16b, v30.16b //CTR block 8k+20 +.long 0xce03716b //eor3 v11.16b, v11.16b, v3.16b, v28.16b //AES block 8k+11 - result + + mov v3.16b, v25.16b //CTR block 8k+19 +.long 0xce017129 //eor3 v9.16b, v9.16b, v1.16b, v28.16b //AES block 8k+9 - result +.long 0xce007108 //eor3 v8.16b, v8.16b, v0.16b, v28.16b //AES block 8k+8 - result + + add v30.4s, v30.4s, v31.4s //CTR block 8k+20 + stp q8, q9, [x2], #32 //AES block 8k+8, 8k+9 - store result + mov v2.16b, v23.16b //CTR block 8k+18 + +.long 0xce0771ef //eor3 v15.16b, v15.16b, v7.16b, v28.16b //AES block 7 - result +.long 0xce154673 //eor3 v19.16b, v19.16b, v21.16b, v17.16b //MODULO - fold into low + stp q10, q11, [x2], #32 //AES block 8k+10, 8k+11 - store result + +.long 0xce0671ce //eor3 v14.16b, v14.16b, v6.16b, v28.16b //AES block 6 - result + mov v1.16b, v22.16b //CTR block 8k+17 + stp q12, q13, [x2], #32 //AES block 4, 5 - store result + + stp q14, q15, [x2], #32 //AES block 6, 7 - store result + mov v0.16b, v20.16b //CTR block 8k+16 + b.lt L256_enc_main_loop + +L256_enc_prepretail: //PREPRETAIL + rev32 v5.16b, v30.16b //CTR block 8k+13 + ldp q26, q27, [x8, #0] //load rk0, rk1 + add v30.4s, v30.4s, v31.4s //CTR block 8k+13 + + rev64 v10.16b, v10.16b //GHASH block 8k+2 + + rev32 v6.16b, v30.16b //CTR block 8k+14 + add v30.4s, v30.4s, v31.4s //CTR block 8k+14 + + rev64 v13.16b, v13.16b //GHASH block 8k+5 + ldr q21, [x3, #144] //load h6k | h5k + ldr q24, [x3, #192] //load h8k | h7k + + rev32 v7.16b, v30.16b //CTR block 8k+15 + + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 0 + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 0 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 0 + + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 0 + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 0 + + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 0 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 0 + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 0 + + ext v19.16b, v19.16b, v19.16b, #8 //PRE 0 + rev64 v8.16b, v8.16b //GHASH block 8k + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 1 + + rev64 v9.16b, v9.16b //GHASH block 8k+1 + ldp q28, q26, [x8, #32] //load rk2, rk3 + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 1 + + ldr q23, [x3, #176] //load h7l | h7h + ext v23.16b, v23.16b, v23.16b, #8 + ldr q25, [x3, #208] //load h8l | h8h + ext v25.16b, v25.16b, v25.16b, #8 + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 1 + + ldr q20, [x3, #128] //load h5l | h5h + ext v20.16b, v20.16b, v20.16b, #8 + ldr q22, [x3, #160] //load h6l | h6h + ext v22.16b, v22.16b, v22.16b, #8 + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 1 + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 1 + + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 1 + eor v8.16b, v8.16b, v19.16b //PRE 1 + + rev64 v11.16b, v11.16b //GHASH block 8k+3 + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 1 + + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 2 + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 2 + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 1 + + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 2 + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 2 + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 2 + + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 2 + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 2 + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 2 + + ldp q27, q28, [x8, #64] //load rk4, rk5 + trn1 v18.2d, v9.2d, v8.2d //GHASH block 8k, 8k+1 - mid + pmull2 v17.1q, v8.2d, v25.2d //GHASH block 8k - high + + rev64 v14.16b, v14.16b //GHASH block 8k+6 + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 3 + pmull2 v16.1q, v9.2d, v23.2d //GHASH block 8k+1 - high + + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 3 + pmull v19.1q, v8.1d, v25.1d //GHASH block 8k - low + trn2 v8.2d, v9.2d, v8.2d //GHASH block 8k, 8k+1 - mid + + pmull2 v29.1q, v10.2d, v22.2d //GHASH block 8k+2 - high + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 3 + + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 3 + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 3 + eor v17.16b, v17.16b, v16.16b //GHASH block 8k+1 - high + + pmull v23.1q, v9.1d, v23.1d //GHASH block 8k+1 - low + pmull2 v9.1q, v11.2d, v20.2d //GHASH block 8k+3 - high + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 3 + + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 3 + eor v8.16b, v8.16b, v18.16b //GHASH block 8k, 8k+1 - mid + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 3 + + pmull v22.1q, v10.1d, v22.1d //GHASH block 8k+2 - low + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 4 + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 4 + + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 4 + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 4 + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 4 + + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 5 + pmull2 v18.1q, v8.2d, v24.2d //GHASH block 8k - mid +.long 0xce1d2631 //eor3 v17.16b, v17.16b, v29.16b, v9.16b //GHASH block 8k+2, 8k+3 - high + + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 4 + trn1 v29.2d, v11.2d, v10.2d //GHASH block 8k+2, 8k+3 - mid + trn2 v10.2d, v11.2d, v10.2d //GHASH block 8k+2, 8k+3 - mid + + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 4 + eor v19.16b, v19.16b, v23.16b //GHASH block 8k+1 - low + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 4 + + pmull v20.1q, v11.1d, v20.1d //GHASH block 8k+3 - low + pmull v24.1q, v8.1d, v24.1d //GHASH block 8k+1 - mid + eor v10.16b, v10.16b, v29.16b //GHASH block 8k+2, 8k+3 - mid + + rev64 v12.16b, v12.16b //GHASH block 8k+4 + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 5 + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 5 + + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 5 + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 5 + ldp q26, q27, [x8, #96] //load rk6, rk7 + + ldr q23, [x3, #80] //load h3l | h3h + ext v23.16b, v23.16b, v23.16b, #8 + ldr q25, [x3, #112] //load h4l | h4h + ext v25.16b, v25.16b, v25.16b, #8 + pmull2 v29.1q, v10.2d, v21.2d //GHASH block 8k+2 - mid + pmull v21.1q, v10.1d, v21.1d //GHASH block 8k+3 - mid + +.long 0xce165273 //eor3 v19.16b, v19.16b, v22.16b, v20.16b //GHASH block 8k+2, 8k+3 - low + eor v18.16b, v18.16b, v24.16b //GHASH block 8k+1 - mid + + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 5 + rev64 v15.16b, v15.16b //GHASH block 8k+7 + trn1 v16.2d, v13.2d, v12.2d //GHASH block 8k+4, 8k+5 - mid + + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 5 + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 5 +.long 0xce157652 //eor3 v18.16b, v18.16b, v21.16b, v29.16b //GHASH block 8k+2, 8k+3 - mid + + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 6 + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 6 + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 6 + + ldr q21, [x3, #48] //load h2k | h1k + ldr q24, [x3, #96] //load h4k | h3k + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 6 + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 6 + + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 6 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 6 + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 6 + + pmull2 v8.1q, v12.2d, v25.2d //GHASH block 8k+4 - high + pmull v25.1q, v12.1d, v25.1d //GHASH block 8k+4 - low + ldr q20, [x3, #32] //load h1l | h1h + ext v20.16b, v20.16b, v20.16b, #8 + ldr q22, [x3, #64] //load h2l | h2h + ext v22.16b, v22.16b, v22.16b, #8 + + ldp q28, q26, [x8, #128] //load rk8, rk9 + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 7 + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 7 + + pmull2 v10.1q, v13.2d, v23.2d //GHASH block 8k+5 - high + trn2 v12.2d, v13.2d, v12.2d //GHASH block 8k+4, 8k+5 - mid + + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 7 + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 7 + pmull v23.1q, v13.1d, v23.1d //GHASH block 8k+5 - low + + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 7 + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 7 + eor v12.16b, v12.16b, v16.16b //GHASH block 8k+4, 8k+5 - mid + + pmull2 v11.1q, v14.2d, v22.2d //GHASH block 8k+6 - high + pmull v22.1q, v14.1d, v22.1d //GHASH block 8k+6 - low + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 7 + + trn1 v13.2d, v15.2d, v14.2d //GHASH block 8k+6, 8k+7 - mid + trn2 v14.2d, v15.2d, v14.2d //GHASH block 8k+6, 8k+7 - mid + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 7 + + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 8 +.long 0xce195e73 //eor3 v19.16b, v19.16b, v25.16b, v23.16b //GHASH block 8k+4, 8k+5 - low + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 8 + + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 8 + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 8 + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 8 + + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 8 + eor v14.16b, v14.16b, v13.16b //GHASH block 8k+6, 8k+7 - mid + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 8 + + pmull2 v16.1q, v12.2d, v24.2d //GHASH block 8k+4 - mid + pmull v24.1q, v12.1d, v24.1d //GHASH block 8k+5 - mid + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 8 + + pmull2 v12.1q, v15.2d, v20.2d //GHASH block 8k+7 - high + pmull2 v13.1q, v14.2d, v21.2d //GHASH block 8k+6 - mid + pmull v21.1q, v14.1d, v21.1d //GHASH block 8k+7 - mid + + pmull v20.1q, v15.1d, v20.1d //GHASH block 8k+7 - low +.long 0xce184252 //eor3 v18.16b, v18.16b, v24.16b, v16.16b //GHASH block 8k+4, 8k+5 - mid +.long 0xce082a31 //eor3 v17.16b, v17.16b, v8.16b, v10.16b //GHASH block 8k+4, 8k+5 - high + + ldp q27, q28, [x8, #160] //load rk10, rk11 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 9 + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 9 + +.long 0xce0b3231 //eor3 v17.16b, v17.16b, v11.16b, v12.16b //GHASH block 8k+6, 8k+7 - high +.long 0xce153652 //eor3 v18.16b, v18.16b, v21.16b, v13.16b //GHASH block 8k+6, 8k+7 - mid + ldr d16, [x10] //MODULO - load modulo constant + +.long 0xce165273 //eor3 v19.16b, v19.16b, v22.16b, v20.16b //GHASH block 8k+6, 8k+7 - low + + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 9 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 9 + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 9 + + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 9 + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 9 + + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 10 + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 10 + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 9 + + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 10 + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 10 + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 10 + + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 10 + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 10 + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 10 + + pmull v29.1q, v17.1d, v16.1d //MODULO - top 64b align with mid +.long 0xce114e52 //eor3 v18.16b, v18.16b, v17.16b, v19.16b //MODULO - karatsuba tidy up + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 11 + + ldp q26, q27, [x8, #192] //load rk12, rk13 + ext v21.16b, v17.16b, v17.16b, #8 //MODULO - other top alignment + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 11 + +.long 0xce1d5652 //eor3 v18.16b, v18.16b, v29.16b, v21.16b //MODULO - fold into mid + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 11 + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 11 + + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 11 + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 11 + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 11 + + pmull v17.1q, v18.1d, v16.1d //MODULO - mid 64b align with low + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 11 + ldr q28, [x8, #224] //load rk14 + + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 12 + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 12 + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 12 + + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 12 + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 12 + ext v21.16b, v18.16b, v18.16b, #8 //MODULO - other mid alignment + + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 12 + add v30.4s, v30.4s, v31.4s //CTR block 8k+15 + + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 12 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 12 + aese v0.16b, v27.16b //AES block 8k+8 - round 13 + +.long 0xce154673 //eor3 v19.16b, v19.16b, v21.16b, v17.16b //MODULO - fold into low + aese v5.16b, v27.16b //AES block 8k+13 - round 13 + aese v1.16b, v27.16b //AES block 8k+9 - round 13 + + aese v3.16b, v27.16b //AES block 8k+11 - round 13 + aese v4.16b, v27.16b //AES block 8k+12 - round 13 + aese v7.16b, v27.16b //AES block 8k+15 - round 13 + + aese v2.16b, v27.16b //AES block 8k+10 - round 13 + aese v6.16b, v27.16b //AES block 8k+14 - round 13 +L256_enc_tail: //TAIL + + ldp q24, q25, [x3, #192] //load h8l | h8h + ext v25.16b, v25.16b, v25.16b, #8 + sub x5, x4, x0 //main_end_input_ptr is number of bytes left to process + + ldr q8, [x0], #16 //AES block 8k+8 - load plaintext + + ldp q20, q21, [x3, #128] //load h5l | h5h + ext v20.16b, v20.16b, v20.16b, #8 + + ext v16.16b, v19.16b, v19.16b, #8 //prepare final partial tag + ldp q22, q23, [x3, #160] //load h6l | h6h + ext v22.16b, v22.16b, v22.16b, #8 + ext v23.16b, v23.16b, v23.16b, #8 + mov v29.16b, v28.16b + + cmp x5, #112 +.long 0xce007509 //eor3 v9.16b, v8.16b, v0.16b, v29.16b //AES block 8k+8 - result + b.gt L256_enc_blocks_more_than_7 + + movi v19.8b, #0 + mov v7.16b, v6.16b + movi v17.8b, #0 + + mov v6.16b, v5.16b + mov v5.16b, v4.16b + mov v4.16b, v3.16b + + mov v3.16b, v2.16b + sub v30.4s, v30.4s, v31.4s + mov v2.16b, v1.16b + + movi v18.8b, #0 + cmp x5, #96 + b.gt L256_enc_blocks_more_than_6 + + mov v7.16b, v6.16b + mov v6.16b, v5.16b + cmp x5, #80 + + mov v5.16b, v4.16b + mov v4.16b, v3.16b + mov v3.16b, v1.16b + + sub v30.4s, v30.4s, v31.4s + b.gt L256_enc_blocks_more_than_5 + + mov v7.16b, v6.16b + sub v30.4s, v30.4s, v31.4s + + mov v6.16b, v5.16b + mov v5.16b, v4.16b + + cmp x5, #64 + mov v4.16b, v1.16b + b.gt L256_enc_blocks_more_than_4 + + cmp x5, #48 + mov v7.16b, v6.16b + mov v6.16b, v5.16b + + mov v5.16b, v1.16b + sub v30.4s, v30.4s, v31.4s + b.gt L256_enc_blocks_more_than_3 + + cmp x5, #32 + mov v7.16b, v6.16b + ldr q24, [x3, #96] //load h4k | h3k + + mov v6.16b, v1.16b + sub v30.4s, v30.4s, v31.4s + b.gt L256_enc_blocks_more_than_2 + + mov v7.16b, v1.16b + + sub v30.4s, v30.4s, v31.4s + cmp x5, #16 + b.gt L256_enc_blocks_more_than_1 + + sub v30.4s, v30.4s, v31.4s + ldr q21, [x3, #48] //load h2k | h1k + b L256_enc_blocks_less_than_1 +L256_enc_blocks_more_than_7: //blocks left > 7 + st1 { v9.16b}, [x2], #16 //AES final-7 block - store result + + rev64 v8.16b, v9.16b //GHASH final-7 block + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + + ldr q9, [x0], #16 //AES final-6 block - load plaintext + + pmull2 v17.1q, v8.2d, v25.2d //GHASH final-7 block - high + ins v27.d[0], v8.d[1] //GHASH final-7 block - mid + ins v18.d[0], v24.d[1] //GHASH final-7 block - mid + + movi v16.8b, #0 //suppress further partial tag feed in + + eor v27.8b, v27.8b, v8.8b //GHASH final-7 block - mid +.long 0xce017529 //eor3 v9.16b, v9.16b, v1.16b, v29.16b //AES final-6 block - result + + pmull v18.1q, v27.1d, v18.1d //GHASH final-7 block - mid + pmull v19.1q, v8.1d, v25.1d //GHASH final-7 block - low +L256_enc_blocks_more_than_6: //blocks left > 6 + + st1 { v9.16b}, [x2], #16 //AES final-6 block - store result + + rev64 v8.16b, v9.16b //GHASH final-6 block + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + + pmull v26.1q, v8.1d, v23.1d //GHASH final-6 block - low + ins v27.d[0], v8.d[1] //GHASH final-6 block - mid + pmull2 v28.1q, v8.2d, v23.2d //GHASH final-6 block - high + + ldr q9, [x0], #16 //AES final-5 block - load plaintext + + eor v19.16b, v19.16b, v26.16b //GHASH final-6 block - low + + eor v27.8b, v27.8b, v8.8b //GHASH final-6 block - mid + + pmull v27.1q, v27.1d, v24.1d //GHASH final-6 block - mid +.long 0xce027529 //eor3 v9.16b, v9.16b, v2.16b, v29.16b //AES final-5 block - result + + movi v16.8b, #0 //suppress further partial tag feed in + + eor v18.16b, v18.16b, v27.16b //GHASH final-6 block - mid + eor v17.16b, v17.16b, v28.16b //GHASH final-6 block - high +L256_enc_blocks_more_than_5: //blocks left > 5 + + st1 { v9.16b}, [x2], #16 //AES final-5 block - store result + + rev64 v8.16b, v9.16b //GHASH final-5 block + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + + ins v27.d[0], v8.d[1] //GHASH final-5 block - mid + + pmull2 v28.1q, v8.2d, v22.2d //GHASH final-5 block - high + + eor v17.16b, v17.16b, v28.16b //GHASH final-5 block - high + eor v27.8b, v27.8b, v8.8b //GHASH final-5 block - mid + + ins v27.d[1], v27.d[0] //GHASH final-5 block - mid + + ldr q9, [x0], #16 //AES final-4 block - load plaintext + pmull v26.1q, v8.1d, v22.1d //GHASH final-5 block - low + + pmull2 v27.1q, v27.2d, v21.2d //GHASH final-5 block - mid + movi v16.8b, #0 //suppress further partial tag feed in + eor v19.16b, v19.16b, v26.16b //GHASH final-5 block - low + + eor v18.16b, v18.16b, v27.16b //GHASH final-5 block - mid +.long 0xce037529 //eor3 v9.16b, v9.16b, v3.16b, v29.16b //AES final-4 block - result +L256_enc_blocks_more_than_4: //blocks left > 4 + + st1 { v9.16b}, [x2], #16 //AES final-4 block - store result + + rev64 v8.16b, v9.16b //GHASH final-4 block + + ldr q9, [x0], #16 //AES final-3 block - load plaintext + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + + ins v27.d[0], v8.d[1] //GHASH final-4 block - mid + pmull2 v28.1q, v8.2d, v20.2d //GHASH final-4 block - high + +.long 0xce047529 //eor3 v9.16b, v9.16b, v4.16b, v29.16b //AES final-3 block - result + pmull v26.1q, v8.1d, v20.1d //GHASH final-4 block - low + + eor v27.8b, v27.8b, v8.8b //GHASH final-4 block - mid + eor v19.16b, v19.16b, v26.16b //GHASH final-4 block - low + + pmull v27.1q, v27.1d, v21.1d //GHASH final-4 block - mid + + movi v16.8b, #0 //suppress further partial tag feed in + + eor v18.16b, v18.16b, v27.16b //GHASH final-4 block - mid + eor v17.16b, v17.16b, v28.16b //GHASH final-4 block - high +L256_enc_blocks_more_than_3: //blocks left > 3 + + st1 { v9.16b}, [x2], #16 //AES final-3 block - store result + + ldr q25, [x3, #112] //load h4l | h4h + ext v25.16b, v25.16b, v25.16b, #8 + rev64 v8.16b, v9.16b //GHASH final-3 block + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + + ins v27.d[0], v8.d[1] //GHASH final-3 block - mid + pmull2 v28.1q, v8.2d, v25.2d //GHASH final-3 block - high + + eor v17.16b, v17.16b, v28.16b //GHASH final-3 block - high + eor v27.8b, v27.8b, v8.8b //GHASH final-3 block - mid + ldr q24, [x3, #96] //load h4k | h3k + + ins v27.d[1], v27.d[0] //GHASH final-3 block - mid + ldr q9, [x0], #16 //AES final-2 block - load plaintext + + pmull2 v27.1q, v27.2d, v24.2d //GHASH final-3 block - mid + pmull v26.1q, v8.1d, v25.1d //GHASH final-3 block - low + +.long 0xce057529 //eor3 v9.16b, v9.16b, v5.16b, v29.16b //AES final-2 block - result + movi v16.8b, #0 //suppress further partial tag feed in + + eor v18.16b, v18.16b, v27.16b //GHASH final-3 block - mid + eor v19.16b, v19.16b, v26.16b //GHASH final-3 block - low +L256_enc_blocks_more_than_2: //blocks left > 2 + + ldr q23, [x3, #80] //load h3l | h3h + ext v23.16b, v23.16b, v23.16b, #8 + + st1 { v9.16b}, [x2], #16 //AES final-2 block - store result + + rev64 v8.16b, v9.16b //GHASH final-2 block + ldr q9, [x0], #16 //AES final-1 block - load plaintext + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + + ins v27.d[0], v8.d[1] //GHASH final-2 block - mid + + movi v16.8b, #0 //suppress further partial tag feed in + + pmull2 v28.1q, v8.2d, v23.2d //GHASH final-2 block - high +.long 0xce067529 //eor3 v9.16b, v9.16b, v6.16b, v29.16b //AES final-1 block - result + + eor v27.8b, v27.8b, v8.8b //GHASH final-2 block - mid + + eor v17.16b, v17.16b, v28.16b //GHASH final-2 block - high + + pmull v27.1q, v27.1d, v24.1d //GHASH final-2 block - mid + pmull v26.1q, v8.1d, v23.1d //GHASH final-2 block - low + + eor v18.16b, v18.16b, v27.16b //GHASH final-2 block - mid + eor v19.16b, v19.16b, v26.16b //GHASH final-2 block - low +L256_enc_blocks_more_than_1: //blocks left > 1 + + st1 { v9.16b}, [x2], #16 //AES final-1 block - store result + + ldr q22, [x3, #64] //load h2l | h2h + ext v22.16b, v22.16b, v22.16b, #8 + rev64 v8.16b, v9.16b //GHASH final-1 block + ldr q9, [x0], #16 //AES final block - load plaintext + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + movi v16.8b, #0 //suppress further partial tag feed in + + ins v27.d[0], v8.d[1] //GHASH final-1 block - mid + pmull2 v28.1q, v8.2d, v22.2d //GHASH final-1 block - high + +.long 0xce077529 //eor3 v9.16b, v9.16b, v7.16b, v29.16b //AES final block - result + eor v17.16b, v17.16b, v28.16b //GHASH final-1 block - high + + pmull v26.1q, v8.1d, v22.1d //GHASH final-1 block - low + eor v27.8b, v27.8b, v8.8b //GHASH final-1 block - mid + + ldr q21, [x3, #48] //load h2k | h1k + + eor v19.16b, v19.16b, v26.16b //GHASH final-1 block - low + ins v27.d[1], v27.d[0] //GHASH final-1 block - mid + + pmull2 v27.1q, v27.2d, v21.2d //GHASH final-1 block - mid + + eor v18.16b, v18.16b, v27.16b //GHASH final-1 block - mid +L256_enc_blocks_less_than_1: //blocks left <= 1 + + and x1, x1, #127 //bit_length %= 128 + + sub x1, x1, #128 //bit_length -= 128 + + neg x1, x1 //bit_length = 128 - #bits in input (in range [1,128]) + + mvn x6, xzr //temp0_x = 0xffffffffffffffff + and x1, x1, #127 //bit_length %= 128 + + lsr x6, x6, x1 //temp0_x is mask for top 64b of last block + cmp x1, #64 + mvn x7, xzr //temp1_x = 0xffffffffffffffff + + csel x14, x6, xzr, lt + csel x13, x7, x6, lt + + mov v0.d[0], x13 //ctr0b is mask for last block + ldr q20, [x3, #32] //load h1l | h1h + ext v20.16b, v20.16b, v20.16b, #8 + + ld1 { v26.16b}, [x2] //load existing bytes where the possibly partial last block is to be stored + mov v0.d[1], x14 + + and v9.16b, v9.16b, v0.16b //possibly partial last block has zeroes in highest bits + + rev64 v8.16b, v9.16b //GHASH final block + + rev32 v30.16b, v30.16b + bif v9.16b, v26.16b, v0.16b //insert existing bytes in top end of result before storing + str q30, [x16] //store the updated counter + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + st1 { v9.16b}, [x2] //store all 16B + + ins v16.d[0], v8.d[1] //GHASH final block - mid + pmull2 v28.1q, v8.2d, v20.2d //GHASH final block - high + pmull v26.1q, v8.1d, v20.1d //GHASH final block - low + + eor v17.16b, v17.16b, v28.16b //GHASH final block - high + eor v19.16b, v19.16b, v26.16b //GHASH final block - low + + eor v16.8b, v16.8b, v8.8b //GHASH final block - mid + + pmull v16.1q, v16.1d, v21.1d //GHASH final block - mid + + eor v18.16b, v18.16b, v16.16b //GHASH final block - mid + ldr d16, [x10] //MODULO - load modulo constant + + ext v21.16b, v17.16b, v17.16b, #8 //MODULO - other top alignment + +.long 0xce114e52 //eor3 v18.16b, v18.16b, v17.16b, v19.16b //MODULO - karatsuba tidy up + pmull v29.1q, v17.1d, v16.1d //MODULO - top 64b align with mid + +.long 0xce1d5652 //eor3 v18.16b, v18.16b, v29.16b, v21.16b //MODULO - fold into mid + + pmull v17.1q, v18.1d, v16.1d //MODULO - mid 64b align with low + ext v21.16b, v18.16b, v18.16b, #8 //MODULO - other mid alignment + +.long 0xce115673 //eor3 v19.16b, v19.16b, v17.16b, v21.16b //MODULO - fold into low + ext v19.16b, v19.16b, v19.16b, #8 + rev64 v19.16b, v19.16b + st1 { v19.16b }, [x3] + mov x0, x9 //return sizes + + ldp d10, d11, [sp, #16] + ldp d12, d13, [sp, #32] + ldp d14, d15, [sp, #48] + ldp d8, d9, [sp], #80 + ret + +L256_enc_ret: + mov w0, #0x0 + ret + +.globl _unroll8_eor3_aes_gcm_dec_256_kernel + +.align 4 +_unroll8_eor3_aes_gcm_dec_256_kernel: + AARCH64_VALID_CALL_TARGET + cbz x1, L256_dec_ret + stp d8, d9, [sp, #-80]! + lsr x9, x1, #3 + mov x16, x4 + mov x8, x5 + stp d10, d11, [sp, #16] + stp d12, d13, [sp, #32] + stp d14, d15, [sp, #48] + mov x5, #0xc200000000000000 + stp x5, xzr, [sp, #64] + add x10, sp, #64 + + ld1 { v0.16b}, [x16] //CTR block 0 + + mov x15, #0x100000000 //set up counter increment + movi v31.16b, #0x0 + mov v31.d[1], x15 + mov x5, x9 + + sub x5, x5, #1 //byte_len - 1 + + rev32 v30.16b, v0.16b //set up reversed counter + + add v30.4s, v30.4s, v31.4s //CTR block 0 + + rev32 v1.16b, v30.16b //CTR block 1 + add v30.4s, v30.4s, v31.4s //CTR block 1 + + rev32 v2.16b, v30.16b //CTR block 2 + add v30.4s, v30.4s, v31.4s //CTR block 2 + ldp q26, q27, [x8, #0] //load rk0, rk1 + + rev32 v3.16b, v30.16b //CTR block 3 + add v30.4s, v30.4s, v31.4s //CTR block 3 + + rev32 v4.16b, v30.16b //CTR block 4 + add v30.4s, v30.4s, v31.4s //CTR block 4 + + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 0 - round 0 + + rev32 v5.16b, v30.16b //CTR block 5 + add v30.4s, v30.4s, v31.4s //CTR block 5 + + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 1 - round 0 + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 2 - round 0 + + rev32 v6.16b, v30.16b //CTR block 6 + add v30.4s, v30.4s, v31.4s //CTR block 6 + + rev32 v7.16b, v30.16b //CTR block 7 + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 4 - round 0 + + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 6 - round 0 + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 5 - round 0 + + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 3 - round 0 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 7 - round 0 + ldp q28, q26, [x8, #32] //load rk2, rk3 + + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 6 - round 1 + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 4 - round 1 + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 0 - round 1 + + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 5 - round 1 + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 7 - round 1 + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 1 - round 1 + + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 2 - round 1 + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 3 - round 1 + + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 3 - round 2 + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 2 - round 2 + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 6 - round 2 + + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 1 - round 2 + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 7 - round 2 + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 5 - round 2 + + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 0 - round 2 + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 4 - round 2 + ldp q27, q28, [x8, #64] //load rk4, rk5 + + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 1 - round 3 + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 2 - round 3 + + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 3 - round 3 + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 4 - round 3 + + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 5 - round 3 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 7 - round 3 + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 0 - round 3 + + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 6 - round 3 + + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 7 - round 4 + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 3 - round 4 + + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 6 - round 4 + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 2 - round 4 + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 0 - round 4 + + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 4 - round 4 + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 1 - round 4 + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 5 - round 4 + + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 0 - round 5 + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 6 - round 5 + + ldp q26, q27, [x8, #96] //load rk6, rk7 + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 4 - round 5 + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 7 - round 5 + + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 5 - round 5 + + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 2 - round 5 + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 3 - round 5 + + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 1 - round 5 + + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 4 - round 6 + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 3 - round 6 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 7 - round 6 + + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 6 - round 6 + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 0 - round 6 + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 5 - round 6 + + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 2 - round 6 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 1 - round 6 + ldp q28, q26, [x8, #128] //load rk8, rk9 + + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 5 - round 7 + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 0 - round 7 + + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 3 - round 7 + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 2 - round 7 + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 7 - round 7 + + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 4 - round 7 + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 1 - round 7 + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 6 - round 7 + + and x5, x5, #0xffffffffffffff80 //number of bytes to be processed in main loop (at least 1 byte must be handled by tail) + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 7 - round 8 + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 5 - round 8 + + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 0 - round 8 + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 1 - round 8 + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 2 - round 8 + + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 4 - round 8 + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 3 - round 8 + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 6 - round 8 + + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 2 - round 9 + + ld1 { v19.16b}, [x3] + ext v19.16b, v19.16b, v19.16b, #8 + rev64 v19.16b, v19.16b + ldp q27, q28, [x8, #160] //load rk10, rk11 + add x4, x0, x1, lsr #3 //end_input_ptr + add x5, x5, x0 + + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 3 - round 9 + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 6 - round 9 + + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 4 - round 9 + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 5 - round 9 + + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 7 - round 9 + + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 0 - round 9 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 1 - round 9 + + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 4 - round 10 + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 7 - round 10 + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 5 - round 10 + + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 1 - round 10 + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 2 - round 10 + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 0 - round 10 + + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 6 - round 10 + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 3 - round 10 + ldp q26, q27, [x8, #192] //load rk12, rk13 + + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 0 - round 11 + add v30.4s, v30.4s, v31.4s //CTR block 7 + + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 7 - round 11 + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 3 - round 11 + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 1 - round 11 + + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 5 - round 11 + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 4 - round 11 + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 2 - round 11 + + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 6 - round 11 + ldr q28, [x8, #224] //load rk14 + + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 1 - round 12 + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 4 - round 12 + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 5 - round 12 + + cmp x0, x5 //check if we have <= 8 blocks + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 3 - round 12 + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 2 - round 12 + + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 6 - round 12 + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 0 - round 12 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 7 - round 12 + + aese v5.16b, v27.16b //AES block 5 - round 13 + aese v1.16b, v27.16b //AES block 1 - round 13 + aese v2.16b, v27.16b //AES block 2 - round 13 + + aese v0.16b, v27.16b //AES block 0 - round 13 + aese v4.16b, v27.16b //AES block 4 - round 13 + aese v6.16b, v27.16b //AES block 6 - round 13 + + aese v3.16b, v27.16b //AES block 3 - round 13 + aese v7.16b, v27.16b //AES block 7 - round 13 + b.ge L256_dec_tail //handle tail + + ldp q8, q9, [x0], #32 //AES block 0, 1 - load ciphertext + + ldp q10, q11, [x0], #32 //AES block 2, 3 - load ciphertext + + ldp q12, q13, [x0], #32 //AES block 4, 5 - load ciphertext + + ldp q14, q15, [x0], #32 //AES block 6, 7 - load ciphertext + cmp x0, x5 //check if we have <= 8 blocks + +.long 0xce017121 //eor3 v1.16b, v9.16b, v1.16b, v28.16b //AES block 1 - result +.long 0xce007100 //eor3 v0.16b, v8.16b, v0.16b, v28.16b //AES block 0 - result + stp q0, q1, [x2], #32 //AES block 0, 1 - store result + + rev32 v0.16b, v30.16b //CTR block 8 + add v30.4s, v30.4s, v31.4s //CTR block 8 +.long 0xce037163 //eor3 v3.16b, v11.16b, v3.16b, v28.16b //AES block 3 - result + +.long 0xce0571a5 //eor3 v5.16b, v13.16b, v5.16b, v28.16b //AES block 5 - result + +.long 0xce047184 //eor3 v4.16b, v12.16b, v4.16b, v28.16b //AES block 4 - result + rev32 v1.16b, v30.16b //CTR block 9 + add v30.4s, v30.4s, v31.4s //CTR block 9 + +.long 0xce027142 //eor3 v2.16b, v10.16b, v2.16b, v28.16b //AES block 2 - result + stp q2, q3, [x2], #32 //AES block 2, 3 - store result + + rev32 v2.16b, v30.16b //CTR block 10 + add v30.4s, v30.4s, v31.4s //CTR block 10 + +.long 0xce0671c6 //eor3 v6.16b, v14.16b, v6.16b, v28.16b //AES block 6 - result + + rev32 v3.16b, v30.16b //CTR block 11 + add v30.4s, v30.4s, v31.4s //CTR block 11 + stp q4, q5, [x2], #32 //AES block 4, 5 - store result + +.long 0xce0771e7 //eor3 v7.16b, v15.16b, v7.16b, v28.16b //AES block 7 - result + stp q6, q7, [x2], #32 //AES block 6, 7 - store result + + rev32 v4.16b, v30.16b //CTR block 12 + add v30.4s, v30.4s, v31.4s //CTR block 12 + b.ge L256_dec_prepretail //do prepretail + +L256_dec_main_loop: //main loop start + rev32 v5.16b, v30.16b //CTR block 8k+13 + ldp q26, q27, [x8, #0] //load rk0, rk1 + add v30.4s, v30.4s, v31.4s //CTR block 8k+13 + + rev64 v9.16b, v9.16b //GHASH block 8k+1 + ldr q23, [x3, #176] //load h7l | h7h + ext v23.16b, v23.16b, v23.16b, #8 + ldr q25, [x3, #208] //load h8l | h8h + ext v25.16b, v25.16b, v25.16b, #8 + + rev32 v6.16b, v30.16b //CTR block 8k+14 + add v30.4s, v30.4s, v31.4s //CTR block 8k+14 + rev64 v8.16b, v8.16b //GHASH block 8k + + ext v19.16b, v19.16b, v19.16b, #8 //PRE 0 + rev64 v12.16b, v12.16b //GHASH block 8k+4 + rev64 v11.16b, v11.16b //GHASH block 8k+3 + + rev32 v7.16b, v30.16b //CTR block 8k+15 + rev64 v15.16b, v15.16b //GHASH block 8k+7 + + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 0 + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 0 + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 0 + + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 0 + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 0 + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 0 + + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 0 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 0 + ldp q28, q26, [x8, #32] //load rk2, rk3 + + eor v8.16b, v8.16b, v19.16b //PRE 1 + ldr q20, [x3, #128] //load h5l | h5h + ext v20.16b, v20.16b, v20.16b, #8 + ldr q22, [x3, #160] //load h6l | h6h + ext v22.16b, v22.16b, v22.16b, #8 + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 1 + + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 1 + rev64 v10.16b, v10.16b //GHASH block 8k+2 + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 1 + + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 1 + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 1 + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 1 + + trn1 v18.2d, v9.2d, v8.2d //GHASH block 8k, 8k+1 - mid + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 1 + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 1 + + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 2 + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 2 + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 2 + + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 2 + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 2 + pmull v19.1q, v8.1d, v25.1d //GHASH block 8k - low + + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 2 + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 2 + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 2 + + ldp q27, q28, [x8, #64] //load rk4, rk5 + pmull2 v29.1q, v10.2d, v22.2d //GHASH block 8k+2 - high + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 3 + + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 3 + pmull2 v16.1q, v9.2d, v23.2d //GHASH block 8k+1 - high + pmull v23.1q, v9.1d, v23.1d //GHASH block 8k+1 - low + + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 3 + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 3 + pmull2 v17.1q, v8.2d, v25.2d //GHASH block 8k - high + + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 3 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 3 + trn2 v8.2d, v9.2d, v8.2d //GHASH block 8k, 8k+1 - mid + + pmull2 v9.1q, v11.2d, v20.2d //GHASH block 8k+3 - high + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 3 + eor v17.16b, v17.16b, v16.16b //GHASH block 8k+1 - high + + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 4 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 3 + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 4 + + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 4 + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 4 + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 4 + + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 4 + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 4 + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 4 + + ldr q21, [x3, #144] //load h6k | h5k + ldr q24, [x3, #192] //load h8k | h7k + eor v8.16b, v8.16b, v18.16b //GHASH block 8k, 8k+1 - mid + pmull v22.1q, v10.1d, v22.1d //GHASH block 8k+2 - low + + ldp q26, q27, [x8, #96] //load rk6, rk7 + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 5 + eor v19.16b, v19.16b, v23.16b //GHASH block 8k+1 - low + + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 5 + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 5 + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 5 + + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 5 + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 5 + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 5 + +.long 0xce1d2631 //eor3 v17.16b, v17.16b, v29.16b, v9.16b //GHASH block 8k+2, 8k+3 - high + trn1 v29.2d, v11.2d, v10.2d //GHASH block 8k+2, 8k+3 - mid + rev64 v13.16b, v13.16b //GHASH block 8k+5 + + pmull2 v18.1q, v8.2d, v24.2d //GHASH block 8k - mid + pmull v24.1q, v8.1d, v24.1d //GHASH block 8k+1 - mid + trn2 v10.2d, v11.2d, v10.2d //GHASH block 8k+2, 8k+3 - mid + + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 6 + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 6 + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 5 + + trn1 v16.2d, v13.2d, v12.2d //GHASH block 8k+4, 8k+5 - mid + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 6 + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 6 + + eor v10.16b, v10.16b, v29.16b //GHASH block 8k+2, 8k+3 - mid + pmull v20.1q, v11.1d, v20.1d //GHASH block 8k+3 - low + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 6 + + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 6 + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 6 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 6 + + pmull2 v29.1q, v10.2d, v21.2d //GHASH block 8k+2 - mid + pmull v21.1q, v10.1d, v21.1d //GHASH block 8k+3 - mid +.long 0xce165273 //eor3 v19.16b, v19.16b, v22.16b, v20.16b //GHASH block 8k+2, 8k+3 - low + + ldr q23, [x3, #80] //load h3l | h3h + ext v23.16b, v23.16b, v23.16b, #8 + ldr q25, [x3, #112] //load h4l | h4h + ext v25.16b, v25.16b, v25.16b, #8 + rev64 v14.16b, v14.16b //GHASH block 8k+6 + eor v18.16b, v18.16b, v24.16b //GHASH block 8k+1 - mid + + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 7 + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 7 + ldp q28, q26, [x8, #128] //load rk8, rk9 + + ldr q20, [x3, #32] //load h1l | h1h + ext v20.16b, v20.16b, v20.16b, #8 + ldr q22, [x3, #64] //load h2l | h2h + ext v22.16b, v22.16b, v22.16b, #8 +.long 0xce157652 //eor3 v18.16b, v18.16b, v21.16b, v29.16b //GHASH block 8k+2, 8k+3 - mid + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 7 + + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 7 + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 7 + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 7 + + ldr q21, [x3, #48] //load h2k | h1k + ldr q24, [x3, #96] //load h4k | h3k + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 7 + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 7 + + pmull2 v8.1q, v12.2d, v25.2d //GHASH block 8k+4 - high + pmull v25.1q, v12.1d, v25.1d //GHASH block 8k+4 - low + trn2 v12.2d, v13.2d, v12.2d //GHASH block 8k+4, 8k+5 - mid + + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 8 + pmull2 v10.1q, v13.2d, v23.2d //GHASH block 8k+5 - high + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 8 + + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 8 + pmull v23.1q, v13.1d, v23.1d //GHASH block 8k+5 - low + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 8 + + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 8 + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 8 + pmull2 v11.1q, v14.2d, v22.2d //GHASH block 8k+6 - high + + trn1 v13.2d, v15.2d, v14.2d //GHASH block 8k+6, 8k+7 - mid + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 8 + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 8 + + ldp q27, q28, [x8, #160] //load rk10, rk11 + pmull v22.1q, v14.1d, v22.1d //GHASH block 8k+6 - low + trn2 v14.2d, v15.2d, v14.2d //GHASH block 8k+6, 8k+7 - mid + + add v30.4s, v30.4s, v31.4s //CTR block 8k+15 +.long 0xce082a31 //eor3 v17.16b, v17.16b, v8.16b, v10.16b //GHASH block 8k+4, 8k+5 - high + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 9 + + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 9 + eor v14.16b, v14.16b, v13.16b //GHASH block 8k+6, 8k+7 - mid + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 9 + + ldp q8, q9, [x0], #32 //AES block 8k+8, 8k+9 - load ciphertext + eor v12.16b, v12.16b, v16.16b //GHASH block 8k+4, 8k+5 - mid + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 9 + + pmull2 v13.1q, v14.2d, v21.2d //GHASH block 8k+6 - mid + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 9 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 9 + + pmull2 v16.1q, v12.2d, v24.2d //GHASH block 8k+4 - mid + pmull v24.1q, v12.1d, v24.1d //GHASH block 8k+5 - mid + pmull2 v12.1q, v15.2d, v20.2d //GHASH block 8k+7 - high + + pmull v20.1q, v15.1d, v20.1d //GHASH block 8k+7 - low + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 10 + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 10 + + pmull v21.1q, v14.1d, v21.1d //GHASH block 8k+7 - mid + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 9 +.long 0xce195e73 //eor3 v19.16b, v19.16b, v25.16b, v23.16b //GHASH block 8k+4, 8k+5 - low + + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 9 +.long 0xce184252 //eor3 v18.16b, v18.16b, v24.16b, v16.16b //GHASH block 8k+4, 8k+5 - mid +.long 0xce0b3231 //eor3 v17.16b, v17.16b, v11.16b, v12.16b //GHASH block 8k+6, 8k+7 - high + + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 10 + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 10 + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 10 + + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 10 + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 10 + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 10 + +.long 0xce165273 //eor3 v19.16b, v19.16b, v22.16b, v20.16b //GHASH block 8k+6, 8k+7 - low + rev32 v20.16b, v30.16b //CTR block 8k+16 + ldr d16, [x10] //MODULO - load modulo constant + + add v30.4s, v30.4s, v31.4s //CTR block 8k+16 + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 11 + ldp q26, q27, [x8, #192] //load rk12, rk13 + + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 11 + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 11 + +.long 0xce153652 //eor3 v18.16b, v18.16b, v21.16b, v13.16b //GHASH block 8k+6, 8k+7 - mid + rev32 v22.16b, v30.16b //CTR block 8k+17 + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 11 + + ldp q10, q11, [x0], #32 //AES block 8k+10, 8k+11 - load ciphertext + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 11 + ext v21.16b, v17.16b, v17.16b, #8 //MODULO - other top alignment + + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 11 + add v30.4s, v30.4s, v31.4s //CTR block 8k+17 + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 11 + + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 12 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 12 + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 12 + + rev32 v23.16b, v30.16b //CTR block 8k+18 + add v30.4s, v30.4s, v31.4s //CTR block 8k+18 + pmull v29.1q, v17.1d, v16.1d //MODULO - top 64b align with mid + +.long 0xce114e52 //eor3 v18.16b, v18.16b, v17.16b, v19.16b //MODULO - karatsuba tidy up + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 12 + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 11 + + ldr q28, [x8, #224] //load rk14 + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 12 + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 12 + +.long 0xce1d5652 //eor3 v18.16b, v18.16b, v29.16b, v21.16b //MODULO - fold into mid + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 12 + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 12 + + ldp q12, q13, [x0], #32 //AES block 8k+12, 8k+13 - load ciphertext + aese v1.16b, v27.16b //AES block 8k+9 - round 13 + aese v2.16b, v27.16b //AES block 8k+10 - round 13 + + ldp q14, q15, [x0], #32 //AES block 8k+14, 8k+15 - load ciphertext + aese v0.16b, v27.16b //AES block 8k+8 - round 13 + aese v5.16b, v27.16b //AES block 8k+13 - round 13 + + rev32 v25.16b, v30.16b //CTR block 8k+19 +.long 0xce027142 //eor3 v2.16b, v10.16b, v2.16b, v28.16b //AES block 8k+10 - result +.long 0xce017121 //eor3 v1.16b, v9.16b, v1.16b, v28.16b //AES block 8k+9 - result + + ext v21.16b, v18.16b, v18.16b, #8 //MODULO - other mid alignment + aese v7.16b, v27.16b //AES block 8k+15 - round 13 + + add v30.4s, v30.4s, v31.4s //CTR block 8k+19 + pmull v17.1q, v18.1d, v16.1d //MODULO - mid 64b align with low + aese v4.16b, v27.16b //AES block 8k+12 - round 13 + +.long 0xce0571a5 //eor3 v5.16b, v13.16b, v5.16b, v28.16b //AES block 8k+13 - result +.long 0xce007100 //eor3 v0.16b, v8.16b, v0.16b, v28.16b //AES block 8k+8 - result + aese v3.16b, v27.16b //AES block 8k+11 - round 13 + + stp q0, q1, [x2], #32 //AES block 8k+8, 8k+9 - store result + mov v0.16b, v20.16b //CTR block 8k+16 +.long 0xce047184 //eor3 v4.16b, v12.16b, v4.16b, v28.16b //AES block 8k+12 - result + +.long 0xce154673 //eor3 v19.16b, v19.16b, v21.16b, v17.16b //MODULO - fold into low +.long 0xce037163 //eor3 v3.16b, v11.16b, v3.16b, v28.16b //AES block 8k+11 - result + stp q2, q3, [x2], #32 //AES block 8k+10, 8k+11 - store result + + mov v3.16b, v25.16b //CTR block 8k+19 + mov v2.16b, v23.16b //CTR block 8k+18 + aese v6.16b, v27.16b //AES block 8k+14 - round 13 + + mov v1.16b, v22.16b //CTR block 8k+17 + stp q4, q5, [x2], #32 //AES block 8k+12, 8k+13 - store result +.long 0xce0771e7 //eor3 v7.16b, v15.16b, v7.16b, v28.16b //AES block 8k+15 - result + +.long 0xce0671c6 //eor3 v6.16b, v14.16b, v6.16b, v28.16b //AES block 8k+14 - result + rev32 v4.16b, v30.16b //CTR block 8k+20 + add v30.4s, v30.4s, v31.4s //CTR block 8k+20 + + cmp x0, x5 //LOOP CONTROL + stp q6, q7, [x2], #32 //AES block 8k+14, 8k+15 - store result + b.lt L256_dec_main_loop + +L256_dec_prepretail: //PREPRETAIL + ldp q26, q27, [x8, #0] //load rk0, rk1 + rev32 v5.16b, v30.16b //CTR block 8k+13 + add v30.4s, v30.4s, v31.4s //CTR block 8k+13 + + rev64 v12.16b, v12.16b //GHASH block 8k+4 + ldr q21, [x3, #144] //load h6k | h5k + ldr q24, [x3, #192] //load h8k | h7k + + rev32 v6.16b, v30.16b //CTR block 8k+14 + rev64 v8.16b, v8.16b //GHASH block 8k + add v30.4s, v30.4s, v31.4s //CTR block 8k+14 + + ext v19.16b, v19.16b, v19.16b, #8 //PRE 0 + ldr q23, [x3, #176] //load h7l | h7h + ext v23.16b, v23.16b, v23.16b, #8 + ldr q25, [x3, #208] //load h8l | h8h + ext v25.16b, v25.16b, v25.16b, #8 + rev64 v9.16b, v9.16b //GHASH block 8k+1 + + rev32 v7.16b, v30.16b //CTR block 8k+15 + rev64 v10.16b, v10.16b //GHASH block 8k+2 + ldr q20, [x3, #128] //load h5l | h5h + ext v20.16b, v20.16b, v20.16b, #8 + ldr q22, [x3, #160] //load h6l | h6h + ext v22.16b, v22.16b, v22.16b, #8 + + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 0 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 0 + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 0 + + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 0 + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 0 + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 0 + + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 1 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 0 + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 0 + + ldp q28, q26, [x8, #32] //load rk2, rk3 + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 1 + eor v8.16b, v8.16b, v19.16b //PRE 1 + + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 1 + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 1 + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 1 + + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 1 + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 1 + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 1 + + pmull2 v16.1q, v9.2d, v23.2d //GHASH block 8k+1 - high + trn1 v18.2d, v9.2d, v8.2d //GHASH block 8k, 8k+1 - mid + pmull v19.1q, v8.1d, v25.1d //GHASH block 8k - low + + rev64 v11.16b, v11.16b //GHASH block 8k+3 + pmull v23.1q, v9.1d, v23.1d //GHASH block 8k+1 - low + + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 2 + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 2 + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 2 + + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 2 + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 2 + pmull2 v17.1q, v8.2d, v25.2d //GHASH block 8k - high + + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 2 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 3 + + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 3 + rev64 v14.16b, v14.16b //GHASH block 8k+6 + + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 3 + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 2 + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 3 + + pmull2 v29.1q, v10.2d, v22.2d //GHASH block 8k+2 - high + trn2 v8.2d, v9.2d, v8.2d //GHASH block 8k, 8k+1 - mid + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 2 + + ldp q27, q28, [x8, #64] //load rk4, rk5 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 3 + pmull2 v9.1q, v11.2d, v20.2d //GHASH block 8k+3 - high + + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 3 + eor v17.16b, v17.16b, v16.16b //GHASH block 8k+1 - high + eor v8.16b, v8.16b, v18.16b //GHASH block 8k, 8k+1 - mid + + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 3 + pmull v22.1q, v10.1d, v22.1d //GHASH block 8k+2 - low + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 3 + +.long 0xce1d2631 //eor3 v17.16b, v17.16b, v29.16b, v9.16b //GHASH block 8k+2, 8k+3 - high + trn1 v29.2d, v11.2d, v10.2d //GHASH block 8k+2, 8k+3 - mid + trn2 v10.2d, v11.2d, v10.2d //GHASH block 8k+2, 8k+3 - mid + + pmull2 v18.1q, v8.2d, v24.2d //GHASH block 8k - mid + pmull v20.1q, v11.1d, v20.1d //GHASH block 8k+3 - low + eor v19.16b, v19.16b, v23.16b //GHASH block 8k+1 - low + + pmull v24.1q, v8.1d, v24.1d //GHASH block 8k+1 - mid + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 4 + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 4 + +.long 0xce165273 //eor3 v19.16b, v19.16b, v22.16b, v20.16b //GHASH block 8k+2, 8k+3 - low + ldr q20, [x3, #32] //load h1l | h1h + ext v20.16b, v20.16b, v20.16b, #8 + ldr q22, [x3, #64] //load h2l | h2h + ext v22.16b, v22.16b, v22.16b, #8 + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 4 + + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 4 + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 4 + eor v18.16b, v18.16b, v24.16b //GHASH block 8k+1 - mid + + eor v10.16b, v10.16b, v29.16b //GHASH block 8k+2, 8k+3 - mid + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 5 + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 4 + + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 5 + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 4 + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 4 + + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 5 + pmull2 v29.1q, v10.2d, v21.2d //GHASH block 8k+2 - mid + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 5 + + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 5 + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 5 + pmull v21.1q, v10.1d, v21.1d //GHASH block 8k+3 - mid + + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 5 + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 5 + ldp q26, q27, [x8, #96] //load rk6, rk7 + + ldr q23, [x3, #80] //load h3l | h3h + ext v23.16b, v23.16b, v23.16b, #8 + ldr q25, [x3, #112] //load h4l | h4h + ext v25.16b, v25.16b, v25.16b, #8 + rev64 v15.16b, v15.16b //GHASH block 8k+7 + rev64 v13.16b, v13.16b //GHASH block 8k+5 + +.long 0xce157652 //eor3 v18.16b, v18.16b, v21.16b, v29.16b //GHASH block 8k+2, 8k+3 - mid + + trn1 v16.2d, v13.2d, v12.2d //GHASH block 8k+4, 8k+5 - mid + + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 6 + ldr q21, [x3, #48] //load h2k | h1k + ldr q24, [x3, #96] //load h4k | h3k + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 6 + + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 6 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 6 + + pmull2 v8.1q, v12.2d, v25.2d //GHASH block 8k+4 - high + pmull2 v10.1q, v13.2d, v23.2d //GHASH block 8k+5 - high + pmull v25.1q, v12.1d, v25.1d //GHASH block 8k+4 - low + + trn2 v12.2d, v13.2d, v12.2d //GHASH block 8k+4, 8k+5 - mid + pmull v23.1q, v13.1d, v23.1d //GHASH block 8k+5 - low + trn1 v13.2d, v15.2d, v14.2d //GHASH block 8k+6, 8k+7 - mid + + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 7 + pmull2 v11.1q, v14.2d, v22.2d //GHASH block 8k+6 - high + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 6 + + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 6 + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 6 + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 6 + + ldp q28, q26, [x8, #128] //load rk8, rk9 + pmull v22.1q, v14.1d, v22.1d //GHASH block 8k+6 - low + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 7 + + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 7 + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 7 + + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 7 + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 7 +.long 0xce082a31 //eor3 v17.16b, v17.16b, v8.16b, v10.16b //GHASH block 8k+4, 8k+5 - high + + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 7 + trn2 v14.2d, v15.2d, v14.2d //GHASH block 8k+6, 8k+7 - mid + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 7 + + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 8 + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 8 + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 8 + + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 8 + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 8 + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 8 + + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 8 + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 9 + eor v12.16b, v12.16b, v16.16b //GHASH block 8k+4, 8k+5 - mid + + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 9 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 9 + eor v14.16b, v14.16b, v13.16b //GHASH block 8k+6, 8k+7 - mid + + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 9 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 9 + pmull2 v16.1q, v12.2d, v24.2d //GHASH block 8k+4 - mid + + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 8 + pmull v24.1q, v12.1d, v24.1d //GHASH block 8k+5 - mid + pmull2 v12.1q, v15.2d, v20.2d //GHASH block 8k+7 - high + + pmull2 v13.1q, v14.2d, v21.2d //GHASH block 8k+6 - mid + pmull v21.1q, v14.1d, v21.1d //GHASH block 8k+7 - mid + pmull v20.1q, v15.1d, v20.1d //GHASH block 8k+7 - low + + ldp q27, q28, [x8, #160] //load rk10, rk11 +.long 0xce195e73 //eor3 v19.16b, v19.16b, v25.16b, v23.16b //GHASH block 8k+4, 8k+5 - low +.long 0xce184252 //eor3 v18.16b, v18.16b, v24.16b, v16.16b //GHASH block 8k+4, 8k+5 - mid + + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 9 + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 9 + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 9 + +.long 0xce0b3231 //eor3 v17.16b, v17.16b, v11.16b, v12.16b //GHASH block 8k+6, 8k+7 - high +.long 0xce165273 //eor3 v19.16b, v19.16b, v22.16b, v20.16b //GHASH block 8k+6, 8k+7 - low + ldr d16, [x10] //MODULO - load modulo constant + +.long 0xce153652 //eor3 v18.16b, v18.16b, v21.16b, v13.16b //GHASH block 8k+6, 8k+7 - mid + + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 10 + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 10 + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 10 + + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 10 + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 10 + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 10 + +.long 0xce114e52 //eor3 v18.16b, v18.16b, v17.16b, v19.16b //MODULO - karatsuba tidy up + + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 10 + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 10 + ldp q26, q27, [x8, #192] //load rk12, rk13 + + ext v21.16b, v17.16b, v17.16b, #8 //MODULO - other top alignment + + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 11 + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 11 + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 11 + + pmull v29.1q, v17.1d, v16.1d //MODULO - top 64b align with mid + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 11 + + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 11 + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 11 + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 11 + + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 11 + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 12 + +.long 0xce1d5652 //eor3 v18.16b, v18.16b, v29.16b, v21.16b //MODULO - fold into mid + + aese v3.16b, v27.16b //AES block 8k+11 - round 13 + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 12 + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 12 + + pmull v17.1q, v18.1d, v16.1d //MODULO - mid 64b align with low + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 12 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 12 + + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 12 + ldr q28, [x8, #224] //load rk14 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 12 + + aese v4.16b, v27.16b //AES block 8k+12 - round 13 + ext v21.16b, v18.16b, v18.16b, #8 //MODULO - other mid alignment + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 12 + + aese v6.16b, v27.16b //AES block 8k+14 - round 13 + aese v2.16b, v27.16b //AES block 8k+10 - round 13 + aese v1.16b, v27.16b //AES block 8k+9 - round 13 + + aese v5.16b, v27.16b //AES block 8k+13 - round 13 +.long 0xce154673 //eor3 v19.16b, v19.16b, v21.16b, v17.16b //MODULO - fold into low + add v30.4s, v30.4s, v31.4s //CTR block 8k+15 + + aese v7.16b, v27.16b //AES block 8k+15 - round 13 + aese v0.16b, v27.16b //AES block 8k+8 - round 13 +L256_dec_tail: //TAIL + + ext v16.16b, v19.16b, v19.16b, #8 //prepare final partial tag + sub x5, x4, x0 //main_end_input_ptr is number of bytes left to process + cmp x5, #112 + + ldr q9, [x0], #16 //AES block 8k+8 - load ciphertext + + ldp q24, q25, [x3, #192] //load h8k | h7k + ext v25.16b, v25.16b, v25.16b, #8 + mov v29.16b, v28.16b + + ldp q20, q21, [x3, #128] //load h5l | h5h + ext v20.16b, v20.16b, v20.16b, #8 + +.long 0xce00752c //eor3 v12.16b, v9.16b, v0.16b, v29.16b //AES block 8k+8 - result + ldp q22, q23, [x3, #160] //load h6l | h6h + ext v22.16b, v22.16b, v22.16b, #8 + ext v23.16b, v23.16b, v23.16b, #8 + b.gt L256_dec_blocks_more_than_7 + + mov v7.16b, v6.16b + sub v30.4s, v30.4s, v31.4s + mov v6.16b, v5.16b + + mov v5.16b, v4.16b + mov v4.16b, v3.16b + movi v19.8b, #0 + + movi v17.8b, #0 + movi v18.8b, #0 + mov v3.16b, v2.16b + + cmp x5, #96 + mov v2.16b, v1.16b + b.gt L256_dec_blocks_more_than_6 + + mov v7.16b, v6.16b + mov v6.16b, v5.16b + + mov v5.16b, v4.16b + cmp x5, #80 + sub v30.4s, v30.4s, v31.4s + + mov v4.16b, v3.16b + mov v3.16b, v1.16b + b.gt L256_dec_blocks_more_than_5 + + cmp x5, #64 + mov v7.16b, v6.16b + sub v30.4s, v30.4s, v31.4s + + mov v6.16b, v5.16b + + mov v5.16b, v4.16b + mov v4.16b, v1.16b + b.gt L256_dec_blocks_more_than_4 + + sub v30.4s, v30.4s, v31.4s + mov v7.16b, v6.16b + cmp x5, #48 + + mov v6.16b, v5.16b + mov v5.16b, v1.16b + b.gt L256_dec_blocks_more_than_3 + + ldr q24, [x3, #96] //load h4k | h3k + sub v30.4s, v30.4s, v31.4s + mov v7.16b, v6.16b + + cmp x5, #32 + mov v6.16b, v1.16b + b.gt L256_dec_blocks_more_than_2 + + sub v30.4s, v30.4s, v31.4s + + mov v7.16b, v1.16b + cmp x5, #16 + b.gt L256_dec_blocks_more_than_1 + + sub v30.4s, v30.4s, v31.4s + ldr q21, [x3, #48] //load h2k | h1k + b L256_dec_blocks_less_than_1 +L256_dec_blocks_more_than_7: //blocks left > 7 + rev64 v8.16b, v9.16b //GHASH final-7 block + ldr q9, [x0], #16 //AES final-6 block - load ciphertext + st1 { v12.16b}, [x2], #16 //AES final-7 block - store result + + ins v18.d[0], v24.d[1] //GHASH final-7 block - mid + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + + ins v27.d[0], v8.d[1] //GHASH final-7 block - mid +.long 0xce01752c //eor3 v12.16b, v9.16b, v1.16b, v29.16b //AES final-6 block - result + + pmull2 v17.1q, v8.2d, v25.2d //GHASH final-7 block - high + + eor v27.8b, v27.8b, v8.8b //GHASH final-7 block - mid + movi v16.8b, #0 //suppress further partial tag feed in + + pmull v19.1q, v8.1d, v25.1d //GHASH final-7 block - low + pmull v18.1q, v27.1d, v18.1d //GHASH final-7 block - mid +L256_dec_blocks_more_than_6: //blocks left > 6 + + rev64 v8.16b, v9.16b //GHASH final-6 block + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + ldr q9, [x0], #16 //AES final-5 block - load ciphertext + movi v16.8b, #0 //suppress further partial tag feed in + + ins v27.d[0], v8.d[1] //GHASH final-6 block - mid + st1 { v12.16b}, [x2], #16 //AES final-6 block - store result + pmull2 v28.1q, v8.2d, v23.2d //GHASH final-6 block - high + + pmull v26.1q, v8.1d, v23.1d //GHASH final-6 block - low + +.long 0xce02752c //eor3 v12.16b, v9.16b, v2.16b, v29.16b //AES final-5 block - result + eor v19.16b, v19.16b, v26.16b //GHASH final-6 block - low + eor v27.8b, v27.8b, v8.8b //GHASH final-6 block - mid + + pmull v27.1q, v27.1d, v24.1d //GHASH final-6 block - mid + + eor v18.16b, v18.16b, v27.16b //GHASH final-6 block - mid + eor v17.16b, v17.16b, v28.16b //GHASH final-6 block - high +L256_dec_blocks_more_than_5: //blocks left > 5 + + rev64 v8.16b, v9.16b //GHASH final-5 block + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + + pmull2 v28.1q, v8.2d, v22.2d //GHASH final-5 block - high + ins v27.d[0], v8.d[1] //GHASH final-5 block - mid + + ldr q9, [x0], #16 //AES final-4 block - load ciphertext + + eor v27.8b, v27.8b, v8.8b //GHASH final-5 block - mid + st1 { v12.16b}, [x2], #16 //AES final-5 block - store result + + pmull v26.1q, v8.1d, v22.1d //GHASH final-5 block - low + ins v27.d[1], v27.d[0] //GHASH final-5 block - mid + + pmull2 v27.1q, v27.2d, v21.2d //GHASH final-5 block - mid + + eor v17.16b, v17.16b, v28.16b //GHASH final-5 block - high +.long 0xce03752c //eor3 v12.16b, v9.16b, v3.16b, v29.16b //AES final-4 block - result + eor v19.16b, v19.16b, v26.16b //GHASH final-5 block - low + + eor v18.16b, v18.16b, v27.16b //GHASH final-5 block - mid + movi v16.8b, #0 //suppress further partial tag feed in +L256_dec_blocks_more_than_4: //blocks left > 4 + + rev64 v8.16b, v9.16b //GHASH final-4 block + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + + ins v27.d[0], v8.d[1] //GHASH final-4 block - mid + ldr q9, [x0], #16 //AES final-3 block - load ciphertext + + movi v16.8b, #0 //suppress further partial tag feed in + + pmull v26.1q, v8.1d, v20.1d //GHASH final-4 block - low + pmull2 v28.1q, v8.2d, v20.2d //GHASH final-4 block - high + + eor v27.8b, v27.8b, v8.8b //GHASH final-4 block - mid + + eor v17.16b, v17.16b, v28.16b //GHASH final-4 block - high + + pmull v27.1q, v27.1d, v21.1d //GHASH final-4 block - mid + + eor v19.16b, v19.16b, v26.16b //GHASH final-4 block - low + st1 { v12.16b}, [x2], #16 //AES final-4 block - store result + + eor v18.16b, v18.16b, v27.16b //GHASH final-4 block - mid +.long 0xce04752c //eor3 v12.16b, v9.16b, v4.16b, v29.16b //AES final-3 block - result +L256_dec_blocks_more_than_3: //blocks left > 3 + + ldr q25, [x3, #112] //load h4l | h4h + ext v25.16b, v25.16b, v25.16b, #8 + rev64 v8.16b, v9.16b //GHASH final-3 block + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + ldr q9, [x0], #16 //AES final-2 block - load ciphertext + ldr q24, [x3, #96] //load h4k | h3k + + ins v27.d[0], v8.d[1] //GHASH final-3 block - mid + st1 { v12.16b}, [x2], #16 //AES final-3 block - store result + +.long 0xce05752c //eor3 v12.16b, v9.16b, v5.16b, v29.16b //AES final-2 block - result + + eor v27.8b, v27.8b, v8.8b //GHASH final-3 block - mid + + ins v27.d[1], v27.d[0] //GHASH final-3 block - mid + pmull v26.1q, v8.1d, v25.1d //GHASH final-3 block - low + pmull2 v28.1q, v8.2d, v25.2d //GHASH final-3 block - high + + movi v16.8b, #0 //suppress further partial tag feed in + pmull2 v27.1q, v27.2d, v24.2d //GHASH final-3 block - mid + eor v19.16b, v19.16b, v26.16b //GHASH final-3 block - low + + eor v17.16b, v17.16b, v28.16b //GHASH final-3 block - high + + eor v18.16b, v18.16b, v27.16b //GHASH final-3 block - mid +L256_dec_blocks_more_than_2: //blocks left > 2 + + rev64 v8.16b, v9.16b //GHASH final-2 block + + ldr q23, [x3, #80] //load h3l | h3h + ext v23.16b, v23.16b, v23.16b, #8 + ldr q9, [x0], #16 //AES final-1 block - load ciphertext + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + + ins v27.d[0], v8.d[1] //GHASH final-2 block - mid + + pmull v26.1q, v8.1d, v23.1d //GHASH final-2 block - low + st1 { v12.16b}, [x2], #16 //AES final-2 block - store result +.long 0xce06752c //eor3 v12.16b, v9.16b, v6.16b, v29.16b //AES final-1 block - result + + eor v27.8b, v27.8b, v8.8b //GHASH final-2 block - mid + eor v19.16b, v19.16b, v26.16b //GHASH final-2 block - low + movi v16.8b, #0 //suppress further partial tag feed in + + pmull v27.1q, v27.1d, v24.1d //GHASH final-2 block - mid + pmull2 v28.1q, v8.2d, v23.2d //GHASH final-2 block - high + + eor v18.16b, v18.16b, v27.16b //GHASH final-2 block - mid + eor v17.16b, v17.16b, v28.16b //GHASH final-2 block - high +L256_dec_blocks_more_than_1: //blocks left > 1 + + rev64 v8.16b, v9.16b //GHASH final-1 block + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + + ins v27.d[0], v8.d[1] //GHASH final-1 block - mid + ldr q22, [x3, #64] //load h2l | h2h + ext v22.16b, v22.16b, v22.16b, #8 + + eor v27.8b, v27.8b, v8.8b //GHASH final-1 block - mid + ldr q9, [x0], #16 //AES final block - load ciphertext + st1 { v12.16b}, [x2], #16 //AES final-1 block - store result + + ldr q21, [x3, #48] //load h2k | h1k + pmull v26.1q, v8.1d, v22.1d //GHASH final-1 block - low + + ins v27.d[1], v27.d[0] //GHASH final-1 block - mid + + eor v19.16b, v19.16b, v26.16b //GHASH final-1 block - low + +.long 0xce07752c //eor3 v12.16b, v9.16b, v7.16b, v29.16b //AES final block - result + pmull2 v28.1q, v8.2d, v22.2d //GHASH final-1 block - high + + pmull2 v27.1q, v27.2d, v21.2d //GHASH final-1 block - mid + + movi v16.8b, #0 //suppress further partial tag feed in + eor v17.16b, v17.16b, v28.16b //GHASH final-1 block - high + + eor v18.16b, v18.16b, v27.16b //GHASH final-1 block - mid +L256_dec_blocks_less_than_1: //blocks left <= 1 + + ld1 { v26.16b}, [x2] //load existing bytes where the possibly partial last block is to be stored + mvn x6, xzr //temp0_x = 0xffffffffffffffff + and x1, x1, #127 //bit_length %= 128 + + sub x1, x1, #128 //bit_length -= 128 + rev32 v30.16b, v30.16b + str q30, [x16] //store the updated counter + + neg x1, x1 //bit_length = 128 - #bits in input (in range [1,128]) + + and x1, x1, #127 //bit_length %= 128 + + lsr x6, x6, x1 //temp0_x is mask for top 64b of last block + cmp x1, #64 + mvn x7, xzr //temp1_x = 0xffffffffffffffff + + csel x14, x6, xzr, lt + csel x13, x7, x6, lt + + mov v0.d[0], x13 //ctr0b is mask for last block + mov v0.d[1], x14 + + and v9.16b, v9.16b, v0.16b //possibly partial last block has zeroes in highest bits + ldr q20, [x3, #32] //load h1l | h1h + ext v20.16b, v20.16b, v20.16b, #8 + bif v12.16b, v26.16b, v0.16b //insert existing bytes in top end of result before storing + + rev64 v8.16b, v9.16b //GHASH final block + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + + ins v16.d[0], v8.d[1] //GHASH final block - mid + pmull2 v28.1q, v8.2d, v20.2d //GHASH final block - high + + eor v16.8b, v16.8b, v8.8b //GHASH final block - mid + + pmull v26.1q, v8.1d, v20.1d //GHASH final block - low + eor v17.16b, v17.16b, v28.16b //GHASH final block - high + + pmull v16.1q, v16.1d, v21.1d //GHASH final block - mid + + eor v18.16b, v18.16b, v16.16b //GHASH final block - mid + ldr d16, [x10] //MODULO - load modulo constant + eor v19.16b, v19.16b, v26.16b //GHASH final block - low + + pmull v21.1q, v17.1d, v16.1d //MODULO - top 64b align with mid + eor v14.16b, v17.16b, v19.16b //MODULO - karatsuba tidy up + + ext v17.16b, v17.16b, v17.16b, #8 //MODULO - other top alignment + st1 { v12.16b}, [x2] //store all 16B + + eor v18.16b, v18.16b, v14.16b //MODULO - karatsuba tidy up + + eor v21.16b, v17.16b, v21.16b //MODULO - fold into mid + eor v18.16b, v18.16b, v21.16b //MODULO - fold into mid + + pmull v17.1q, v18.1d, v16.1d //MODULO - mid 64b align with low + + ext v18.16b, v18.16b, v18.16b, #8 //MODULO - other mid alignment + eor v19.16b, v19.16b, v17.16b //MODULO - fold into low + + eor v19.16b, v19.16b, v18.16b //MODULO - fold into low + ext v19.16b, v19.16b, v19.16b, #8 + rev64 v19.16b, v19.16b + st1 { v19.16b }, [x3] + mov x0, x9 + + ldp d10, d11, [sp, #16] + ldp d12, d13, [sp, #32] + ldp d14, d15, [sp, #48] + ldp d8, d9, [sp], #80 + ret + +L256_dec_ret: + mov w0, #0x0 + ret + +.byte 65,69,83,32,71,67,77,32,109,111,100,117,108,101,32,102,111,114,32,65,82,77,118,56,44,32,83,80,68,88,32,66,83,68,45,51,45,67,108,97,117,115,101,32,98,121,32,60,120,105,97,111,107,97,110,103,46,113,105,97,110,64,97,114,109,46,99,111,109,62,0 +.align 2 +.align 2 +#endif diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/crypto/modes/aes-gcm-armv8_64.S b/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/crypto/modes/aes-gcm-armv8_64.S index 6fcafd5805448e..26fd217efcb46e 100644 --- a/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/crypto/modes/aes-gcm-armv8_64.S +++ b/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/crypto/modes/aes-gcm-armv8_64.S @@ -7,6 +7,7 @@ .align 4 _aes_gcm_enc_128_kernel: + AARCH64_VALID_CALL_TARGET cbz x1, L128_enc_ret stp x19, x20, [sp, #-112]! mov x16, x4 @@ -989,6 +990,7 @@ L128_enc_ret: .align 4 _aes_gcm_dec_128_kernel: + AARCH64_VALID_CALL_TARGET cbz x1, L128_dec_ret stp x19, x20, [sp, #-112]! mov x16, x4 @@ -1981,6 +1983,7 @@ L128_dec_ret: .align 4 _aes_gcm_enc_192_kernel: + AARCH64_VALID_CALL_TARGET cbz x1, L192_enc_ret stp x19, x20, [sp, #-112]! mov x16, x4 @@ -3038,6 +3041,7 @@ L192_enc_ret: .align 4 _aes_gcm_dec_192_kernel: + AARCH64_VALID_CALL_TARGET cbz x1, L192_dec_ret stp x19, x20, [sp, #-112]! mov x16, x4 @@ -4105,6 +4109,7 @@ L192_dec_ret: .align 4 _aes_gcm_enc_256_kernel: + AARCH64_VALID_CALL_TARGET cbz x1, L256_enc_ret stp x19, x20, [sp, #-112]! mov x16, x4 @@ -5229,6 +5234,7 @@ L256_enc_ret: .align 4 _aes_gcm_dec_256_kernel: + AARCH64_VALID_CALL_TARGET cbz x1, L256_dec_ret stp x19, x20, [sp, #-112]! mov x16, x4 @@ -6383,6 +6389,7 @@ L256_dec_ret: mov w0, #0x0 ret +.section __TEXT,__const .byte 71,72,65,83,72,32,102,111,114,32,65,82,77,118,56,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 .align 2 .align 2 diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/crypto/modes/ghashv8-armx.S b/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/crypto/modes/ghashv8-armx.S index dc71d8508de6f8..50ef8f658b1c1c 100644 --- a/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/crypto/modes/ghashv8-armx.S +++ b/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/crypto/modes/ghashv8-armx.S @@ -7,6 +7,7 @@ .align 4 _gcm_init_v8: + AARCH64_VALID_CALL_TARGET ld1 {v17.2d},[x1] //load input H movi v19.16b,#0xe1 shl v19.2d,v19.2d,#57 //0xc2.0 @@ -82,21 +83,110 @@ _gcm_init_v8: pmull v5.1q,v5.1d,v19.1d eor v18.16b,v18.16b,v2.16b eor v4.16b,v4.16b,v7.16b - eor v20.16b, v0.16b,v18.16b //H^3 - eor v22.16b,v5.16b,v4.16b //H^4 + eor v23.16b, v0.16b,v18.16b //H^3 + eor v25.16b,v5.16b,v4.16b //H^4 + + ext v16.16b,v23.16b, v23.16b,#8 //Karatsuba pre-processing + ext v17.16b,v25.16b,v25.16b,#8 + ext v18.16b,v22.16b,v22.16b,#8 + eor v16.16b,v16.16b,v23.16b + eor v17.16b,v17.16b,v25.16b + eor v18.16b,v18.16b,v22.16b + ext v24.16b,v16.16b,v17.16b,#8 //pack Karatsuba pre-processed + st1 {v23.2d,v24.2d,v25.2d},[x0],#48 //store Htable[3..5] + + //calculate H^5 and H^6 + pmull v0.1q,v22.1d, v23.1d + pmull v5.1q,v23.1d,v23.1d + pmull2 v2.1q,v22.2d, v23.2d + pmull2 v7.1q,v23.2d,v23.2d + pmull v1.1q,v16.1d,v18.1d + pmull v6.1q,v16.1d,v16.1d - ext v16.16b,v20.16b, v20.16b,#8 //Karatsuba pre-processing - ext v17.16b,v22.16b,v22.16b,#8 - eor v16.16b,v16.16b,v20.16b - eor v17.16b,v17.16b,v22.16b - ext v21.16b,v16.16b,v17.16b,#8 //pack Karatsuba pre-processed - st1 {v20.2d,v21.2d,v22.2d},[x0] //store Htable[3..5] + ext v16.16b,v0.16b,v2.16b,#8 //Karatsuba post-processing + ext v17.16b,v5.16b,v7.16b,#8 + eor v18.16b,v0.16b,v2.16b + eor v1.16b,v1.16b,v16.16b + eor v4.16b,v5.16b,v7.16b + eor v6.16b,v6.16b,v17.16b + eor v1.16b,v1.16b,v18.16b + pmull v18.1q,v0.1d,v19.1d //1st phase + eor v6.16b,v6.16b,v4.16b + pmull v4.1q,v5.1d,v19.1d + + ins v2.d[0],v1.d[1] + ins v7.d[0],v6.d[1] + ins v1.d[1],v0.d[0] + ins v6.d[1],v5.d[0] + eor v0.16b,v1.16b,v18.16b + eor v5.16b,v6.16b,v4.16b + + ext v18.16b,v0.16b,v0.16b,#8 //2nd phase + ext v4.16b,v5.16b,v5.16b,#8 + pmull v0.1q,v0.1d,v19.1d + pmull v5.1q,v5.1d,v19.1d + eor v18.16b,v18.16b,v2.16b + eor v4.16b,v4.16b,v7.16b + eor v26.16b,v0.16b,v18.16b //H^5 + eor v28.16b,v5.16b,v4.16b //H^6 + + ext v16.16b,v26.16b, v26.16b,#8 //Karatsuba pre-processing + ext v17.16b,v28.16b,v28.16b,#8 + ext v18.16b,v22.16b,v22.16b,#8 + eor v16.16b,v16.16b,v26.16b + eor v17.16b,v17.16b,v28.16b + eor v18.16b,v18.16b,v22.16b + ext v27.16b,v16.16b,v17.16b,#8 //pack Karatsuba pre-processed + st1 {v26.2d,v27.2d,v28.2d},[x0],#48 //store Htable[6..8] + + //calculate H^7 and H^8 + pmull v0.1q,v22.1d,v26.1d + pmull v5.1q,v22.1d,v28.1d + pmull2 v2.1q,v22.2d,v26.2d + pmull2 v7.1q,v22.2d,v28.2d + pmull v1.1q,v16.1d,v18.1d + pmull v6.1q,v17.1d,v18.1d + + ext v16.16b,v0.16b,v2.16b,#8 //Karatsuba post-processing + ext v17.16b,v5.16b,v7.16b,#8 + eor v18.16b,v0.16b,v2.16b + eor v1.16b,v1.16b,v16.16b + eor v4.16b,v5.16b,v7.16b + eor v6.16b,v6.16b,v17.16b + eor v1.16b,v1.16b,v18.16b + pmull v18.1q,v0.1d,v19.1d //1st phase + eor v6.16b,v6.16b,v4.16b + pmull v4.1q,v5.1d,v19.1d + + ins v2.d[0],v1.d[1] + ins v7.d[0],v6.d[1] + ins v1.d[1],v0.d[0] + ins v6.d[1],v5.d[0] + eor v0.16b,v1.16b,v18.16b + eor v5.16b,v6.16b,v4.16b + + ext v18.16b,v0.16b,v0.16b,#8 //2nd phase + ext v4.16b,v5.16b,v5.16b,#8 + pmull v0.1q,v0.1d,v19.1d + pmull v5.1q,v5.1d,v19.1d + eor v18.16b,v18.16b,v2.16b + eor v4.16b,v4.16b,v7.16b + eor v29.16b,v0.16b,v18.16b //H^7 + eor v31.16b,v5.16b,v4.16b //H^8 + + ext v16.16b,v29.16b,v29.16b,#8 //Karatsuba pre-processing + ext v17.16b,v31.16b,v31.16b,#8 + eor v16.16b,v16.16b,v29.16b + eor v17.16b,v17.16b,v31.16b + ext v30.16b,v16.16b,v17.16b,#8 //pack Karatsuba pre-processed + st1 {v29.2d,v30.2d,v31.2d},[x0] //store Htable[9..11] ret .globl _gcm_gmult_v8 .align 4 _gcm_gmult_v8: + AARCH64_VALID_CALL_TARGET ld1 {v17.2d},[x0] //load Xi movi v19.16b,#0xe1 ld1 {v20.2d,v21.2d},[x1] //load twisted H, ... @@ -138,6 +228,7 @@ _gcm_gmult_v8: .align 4 _gcm_ghash_v8: + AARCH64_VALID_CALL_TARGET cmp x3,#64 b.hs Lgcm_ghash_v8_4x ld1 {v0.2d},[x0] //load [rotated] Xi @@ -546,6 +637,7 @@ Ldone4x: ret +.section __TEXT,__const .byte 71,72,65,83,72,32,102,111,114,32,65,82,77,118,56,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 .align 2 .align 2 diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/crypto/params_idx.c b/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/crypto/params_idx.c new file mode 100644 index 00000000000000..9d76ffededc24c --- /dev/null +++ b/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/crypto/params_idx.c @@ -0,0 +1,3366 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from crypto/params_idx.c.in + * + * Copyright 2023 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + +#include "internal/e_os.h" +#include "internal/param_names.h" +#include + +/* Machine generated TRIE -- generated by util/perl/OpenSSL/paramnames.pm */ +int ossl_param_find_pidx(const char *s) +{ + switch(s[0]) { + default: + break; + case 'a': + switch(s[1]) { + default: + break; + case 'c': + if (strcmp("vp-info", s + 2) == 0) + return PIDX_KDF_PARAM_X942_ACVPINFO; + break; + case 'd': + switch(s[2]) { + default: + break; + case 'd': + if (strcmp("itional-random", s + 3) == 0) + return PIDX_SIGNATURE_PARAM_ADD_RANDOM; + break; + case '\0': + return PIDX_KDF_PARAM_ARGON2_AD; + } + break; + case 'e': + if (strcmp("ad", s + 2) == 0) + return PIDX_CIPHER_PARAM_AEAD; + break; + case 'l': + switch(s[2]) { + default: + break; + case 'g': + switch(s[3]) { + default: + break; + case '_': + if (strcmp("id_param", s + 4) == 0) + return PIDX_CIPHER_PARAM_ALGORITHM_ID_PARAMS_OLD; + break; + case 'i': + if (strcmp("d-absent", s + 4) == 0) + return PIDX_DIGEST_PARAM_ALGID_ABSENT; + break; + case 'o': + switch(s[4]) { + default: + break; + case 'r': + switch(s[5]) { + default: + break; + case 'i': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case 'h': + switch(s[8]) { + default: + break; + case 'm': + switch(s[9]) { + default: + break; + case '-': + switch(s[10]) { + default: + break; + case 'i': + switch(s[11]) { + default: + break; + case 'd': + switch(s[12]) { + default: + break; + case '-': + if (strcmp("params", s + 13) == 0) + return PIDX_ALG_PARAM_ALGORITHM_ID_PARAMS; + break; + case '\0': + return PIDX_ALG_PARAM_ALGORITHM_ID; + } + } + } + } + } + } + } + } + } + } + break; + case 'i': + if (strcmp("as", s + 3) == 0) + return PIDX_STORE_PARAM_ALIAS; + } + break; + case '\0': + return PIDX_PKEY_PARAM_EC_A; + } + break; + case 'b': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("sis-type", s + 2) == 0) + return PIDX_PKEY_PARAM_EC_CHAR2_TYPE; + break; + case 'i': + if (strcmp("ts", s + 2) == 0) + return PIDX_PKEY_PARAM_BITS; + break; + case 'l': + switch(s[2]) { + default: + break; + case 'o': + switch(s[3]) { + default: + break; + case 'c': + switch(s[4]) { + default: + break; + case 'k': + switch(s[5]) { + default: + break; + case '-': + if (strcmp("size", s + 6) == 0) + return PIDX_MAC_PARAM_BLOCK_SIZE; + break; + case '_': + if (strcmp("padding", s + 6) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_BLOCK_PADDING; + break; + case 's': + if (strcmp("ize", s + 6) == 0) + return PIDX_DIGEST_PARAM_BLOCK_SIZE; + } + } + } + } + break; + case 'u': + if (strcmp("ildinfo", s + 2) == 0) + return PIDX_PROV_PARAM_BUILDINFO; + break; + case '\0': + return PIDX_PKEY_PARAM_EC_B; + } + break; + case 'c': + switch(s[1]) { + default: + break; + case '-': + if (strcmp("rounds", s + 2) == 0) + return PIDX_MAC_PARAM_C_ROUNDS; + break; + case 'e': + if (strcmp("kalg", s + 2) == 0) + return PIDX_KDF_PARAM_CEK_ALG; + break; + case 'i': + if (strcmp("pher", s + 2) == 0) + return PIDX_ALG_PARAM_CIPHER; + break; + case 'o': + switch(s[2]) { + default: + break; + case 'f': + if (strcmp("actor", s + 3) == 0) + return PIDX_PKEY_PARAM_EC_COFACTOR; + break; + case 'n': + switch(s[3]) { + default: + break; + case 's': + if (strcmp("tant", s + 4) == 0) + return PIDX_KDF_PARAM_CONSTANT; + break; + case 't': + if (strcmp("ext-string", s + 4) == 0) + return PIDX_SIGNATURE_PARAM_CONTEXT_STRING; + } + } + break; + case 't': + switch(s[2]) { + default: + break; + case 's': + switch(s[3]) { + default: + break; + case '_': + if (strcmp("mode", s + 4) == 0) + return PIDX_CIPHER_PARAM_CTS_MODE; + break; + case '\0': + return PIDX_CIPHER_PARAM_CTS; + } + } + break; + case 'u': + switch(s[2]) { + default: + break; + case 's': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case 'o': + switch(s[5]) { + default: + break; + case 'm': + switch(s[6]) { + default: + break; + case '-': + if (strcmp("iv", s + 7) == 0) + return PIDX_CIPHER_PARAM_CUSTOM_IV; + break; + case '\0': + return PIDX_MAC_PARAM_CUSTOM; + } + } + } + } + } + } + break; + case 'd': + switch(s[1]) { + default: + break; + case '-': + if (strcmp("rounds", s + 2) == 0) + return PIDX_MAC_PARAM_D_ROUNDS; + break; + case 'a': + switch(s[2]) { + default: + break; + case 't': + switch(s[3]) { + default: + break; + case 'a': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 's': + if (strcmp("tructure", s + 6) == 0) + return PIDX_OBJECT_PARAM_DATA_STRUCTURE; + break; + case 't': + if (strcmp("ype", s + 6) == 0) + return PIDX_OBJECT_PARAM_DATA_TYPE; + } + break; + case '\0': + return PIDX_OBJECT_PARAM_DATA; + } + } + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'c': + switch(s[3]) { + default: + break; + case 'o': + if (strcmp("ded-from-explicit", s + 4) == 0) + return PIDX_PKEY_PARAM_EC_DECODED_FROM_EXPLICIT_PARAMS; + break; + case 'r': + if (strcmp("ypt-only", s + 4) == 0) + return PIDX_CIPHER_PARAM_DECRYPT_ONLY; + } + break; + case 'f': + if (strcmp("ault-digest", s + 3) == 0) + return PIDX_PKEY_PARAM_DEFAULT_DIGEST; + break; + case 's': + if (strcmp("c", s + 3) == 0) + return PIDX_OBJECT_PARAM_DESC; + break; + case 't': + if (strcmp("erministic", s + 3) == 0) + return PIDX_SIGNATURE_PARAM_DETERMINISTIC; + } + break; + case 'h': + if (strcmp("kem-ikm", s + 2) == 0) + return PIDX_PKEY_PARAM_DHKEM_IKM; + break; + case 'i': + switch(s[2]) { + default: + break; + case 'g': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case 's': + switch(s[5]) { + default: + break; + case 't': + switch(s[6]) { + default: + break; + case '-': + switch(s[7]) { + default: + break; + case 'c': + if (strcmp("heck", s + 8) == 0) + return PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK; + break; + case 'n': + if (strcmp("oinit", s + 8) == 0) + return PIDX_MAC_PARAM_DIGEST_NOINIT; + break; + case 'o': + if (strcmp("neshot", s + 8) == 0) + return PIDX_MAC_PARAM_DIGEST_ONESHOT; + break; + case 'p': + if (strcmp("rops", s + 8) == 0) + return PIDX_ASYM_CIPHER_PARAM_OAEP_DIGEST_PROPS; + break; + case 's': + if (strcmp("ize", s + 8) == 0) + return PIDX_PKEY_PARAM_DIGEST_SIZE; + } + break; + case '\0': + return PIDX_STORE_PARAM_DIGEST; + } + } + } + } + break; + case 's': + if (strcmp("tid", s + 3) == 0) + return PIDX_PKEY_PARAM_DIST_ID; + } + break; + case 'r': + if (strcmp("bg-no-trunc-md", s + 2) == 0) + return PIDX_PROV_PARAM_DRBG_TRUNC_DIGEST; + break; + case 's': + if (strcmp("a-sign-disabled", s + 2) == 0) + return PIDX_PROV_PARAM_DSA_SIGN_DISABLED; + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_D; + } + break; + case 'e': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("rly_clean", s + 2) == 0) + return PIDX_KDF_PARAM_EARLY_CLEAN; + break; + case 'c': + switch(s[2]) { + default: + break; + case 'd': + switch(s[3]) { + default: + break; + case 'h': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'c': + switch(s[6]) { + default: + break; + case 'o': + switch(s[7]) { + default: + break; + case 'f': + switch(s[8]) { + default: + break; + case 'a': + switch(s[9]) { + default: + break; + case 'c': + switch(s[10]) { + default: + break; + case 't': + switch(s[11]) { + default: + break; + case 'o': + switch(s[12]) { + default: + break; + case 'r': + switch(s[13]) { + default: + break; + case '-': + switch(s[14]) { + default: + break; + case 'c': + if (strcmp("heck", s + 15) == 0) + return PIDX_PROV_PARAM_ECDH_COFACTOR_CHECK; + break; + case 'm': + if (strcmp("ode", s + 15) == 0) + return PIDX_EXCHANGE_PARAM_EC_ECDH_COFACTOR_MODE; + } + } + } + } + } + } + } + } + } + } + } + } + } + break; + case 'm': + if (strcmp("s_check", s + 2) == 0) + return PIDX_KDF_PARAM_FIPS_EMS_CHECK; + break; + case 'n': + switch(s[2]) { + default: + break; + case 'c': + switch(s[3]) { + default: + break; + case 'o': + switch(s[4]) { + default: + break; + case 'd': + switch(s[5]) { + default: + break; + case 'e': + if (strcmp("d-pub-key", s + 6) == 0) + return PIDX_PKEY_PARAM_ENCODED_PUBLIC_KEY; + break; + case 'i': + if (strcmp("ng", s + 6) == 0) + return PIDX_PKEY_PARAM_EC_ENCODING; + } + } + break; + case 'r': + switch(s[4]) { + default: + break; + case 'y': + switch(s[5]) { + default: + break; + case 'p': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case '-': + switch(s[8]) { + default: + break; + case 'c': + if (strcmp("heck", s + 9) == 0) + return PIDX_CIPHER_PARAM_FIPS_ENCRYPT_CHECK; + break; + case 'l': + if (strcmp("evel", s + 9) == 0) + return PIDX_ENCODER_PARAM_ENCRYPT_LEVEL; + } + } + } + } + } + } + break; + case 'g': + if (strcmp("ine", s + 3) == 0) + return PIDX_ALG_PARAM_ENGINE; + break; + case 't': + switch(s[3]) { + default: + break; + case 'r': + switch(s[4]) { + default: + break; + case 'o': + switch(s[5]) { + default: + break; + case 'p': + switch(s[6]) { + default: + break; + case 'y': + switch(s[7]) { + default: + break; + case '_': + if (strcmp("required", s + 8) == 0) + return PIDX_DRBG_PARAM_ENTROPY_REQUIRED; + break; + case '\0': + return PIDX_KDF_PARAM_HMACDRBG_ENTROPY; + } + } + } + } + } + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_E; + break; + case 'x': + if (strcmp("pect", s + 2) == 0) + return PIDX_STORE_PARAM_EXPECT; + } + break; + case 'f': + switch(s[1]) { + default: + break; + case 'i': + switch(s[2]) { + default: + break; + case 'e': + if (strcmp("ld-type", s + 3) == 0) + return PIDX_PKEY_PARAM_EC_FIELD_TYPE; + break; + case 'n': + if (strcmp("gerprint", s + 3) == 0) + return PIDX_STORE_PARAM_FINGERPRINT; + break; + case 'p': + if (strcmp("s-indicator", s + 3) == 0) + return PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR; + } + } + break; + case 'g': + switch(s[1]) { + default: + break; + case 'e': + switch(s[2]) { + default: + break; + case 'n': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case 'r': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case 'e': + switch(s[8]) { + default: + break; + case '\0': + return PIDX_RAND_PARAM_GENERATE; + } + break; + case 'o': + if (strcmp("r", s + 8) == 0) + return PIDX_PKEY_PARAM_EC_GENERATOR; + } + } + } + } + } + } + break; + case 'i': + if (strcmp("ndex", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_GINDEX; + break; + case 'r': + switch(s[2]) { + default: + break; + case 'o': + switch(s[3]) { + default: + break; + case 'u': + switch(s[4]) { + default: + break; + case 'p': + switch(s[5]) { + default: + break; + case '-': + if (strcmp("check", s + 6) == 0) + return PIDX_PKEY_PARAM_EC_GROUP_CHECK_TYPE; + break; + case '\0': + return PIDX_PKEY_PARAM_GROUP_NAME; + } + } + } + } + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_G; + } + break; + case 'h': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("s-randkey", s + 2) == 0) + return PIDX_CIPHER_PARAM_HAS_RAND_KEY; + break; + case 'i': + if (strcmp("ndex", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_H; + break; + case 'k': + switch(s[2]) { + default: + break; + case 'd': + switch(s[3]) { + default: + break; + case 'f': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 6) == 0) + return PIDX_PROV_PARAM_HKDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 6) == 0) + return PIDX_PROV_PARAM_HKDF_KEY_CHECK; + } + } + } + } + break; + case 'm': + if (strcmp("ac-key-check", s + 2) == 0) + return PIDX_PROV_PARAM_HMAC_KEY_CHECK; + break; + case 's': + if (strcmp("_padding", s + 2) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_HS_PADDING; + } + break; + case 'i': + switch(s[1]) { + default: + break; + case 'd': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_KDF_PARAM_PKCS12_ID; + } + break; + case 'k': + if (strcmp("me", s + 2) == 0) + return PIDX_KEM_PARAM_IKME; + break; + case 'm': + if (strcmp("plicit-rejection", s + 2) == 0) + return PIDX_PKEY_PARAM_IMPLICIT_REJECTION; + break; + case 'n': + switch(s[2]) { + default: + break; + case 'c': + if (strcmp("lude-public", s + 3) == 0) + return PIDX_PKEY_PARAM_EC_INCLUDE_PUBLIC; + break; + case 'f': + if (strcmp("o", s + 3) == 0) + return PIDX_PASSPHRASE_PARAM_INFO; + break; + case 'p': + if (strcmp("ut-type", s + 3) == 0) + return PIDX_STORE_PARAM_INPUT_TYPE; + break; + case 's': + if (strcmp("tance", s + 3) == 0) + return PIDX_SIGNATURE_PARAM_INSTANCE; + } + break; + case 't': + switch(s[2]) { + default: + break; + case 'e': + switch(s[3]) { + default: + break; + case 'r': + switch(s[4]) { + default: + break; + case 'a': + if (strcmp("tion", s + 5) == 0) + return PIDX_GEN_PARAM_ITERATION; + break; + case '\0': + return PIDX_KDF_PARAM_ITER; + } + } + } + break; + case 'v': + switch(s[2]) { + default: + break; + case '-': + if (strcmp("generated", s + 3) == 0) + return PIDX_CIPHER_PARAM_AEAD_IV_GENERATED; + break; + case 'l': + if (strcmp("en", s + 3) == 0) + return PIDX_CIPHER_PARAM_IVLEN; + break; + case '\0': + return PIDX_MAC_PARAM_IV; + } + } + break; + case 'j': + switch(s[1]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_COFACTOR; + } + break; + case 'k': + switch(s[1]) { + default: + break; + case '1': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_PP_K1; + } + break; + case '2': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_PP_K2; + } + break; + case '3': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_PP_K3; + } + break; + case 'a': + if (strcmp("t", s + 2) == 0) + return PIDX_SIGNATURE_PARAM_KAT; + break; + case 'b': + if (strcmp("kdf-key-check", s + 2) == 0) + return PIDX_PROV_PARAM_KBKDF_KEY_CHECK; + break; + case 'd': + switch(s[2]) { + default: + break; + case 'f': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'd': + switch(s[5]) { + default: + break; + case 'i': + switch(s[6]) { + default: + break; + case 'g': + switch(s[7]) { + default: + break; + case 'e': + switch(s[8]) { + default: + break; + case 's': + switch(s[9]) { + default: + break; + case 't': + switch(s[10]) { + default: + break; + case '-': + if (strcmp("props", s + 11) == 0) + return PIDX_EXCHANGE_PARAM_KDF_DIGEST_PROPS; + break; + case '\0': + return PIDX_EXCHANGE_PARAM_KDF_DIGEST; + } + } + } + } + } + } + break; + case 'o': + if (strcmp("utlen", s + 5) == 0) + return PIDX_EXCHANGE_PARAM_KDF_OUTLEN; + break; + case 't': + if (strcmp("ype", s + 5) == 0) + return PIDX_EXCHANGE_PARAM_KDF_TYPE; + break; + case 'u': + if (strcmp("km", s + 5) == 0) + return PIDX_EXCHANGE_PARAM_KDF_UKM; + } + } + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'y': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'c': + if (strcmp("heck", s + 5) == 0) + return PIDX_PKEY_PARAM_FIPS_KEY_CHECK; + break; + case 'l': + if (strcmp("ength", s + 5) == 0) + return PIDX_SKEY_PARAM_KEY_LENGTH; + } + break; + case 'b': + if (strcmp("its", s + 4) == 0) + return PIDX_CIPHER_PARAM_RC2_KEYBITS; + break; + case 'l': + if (strcmp("en", s + 4) == 0) + return PIDX_CIPHER_PARAM_KEYLEN; + break; + case '\0': + return PIDX_MAC_PARAM_KEY; + } + } + break; + case 'm': + if (strcmp("ac-key-check", s + 2) == 0) + return PIDX_PROV_PARAM_KMAC_KEY_CHECK; + } + break; + case 'l': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'b': + if (strcmp("el", s + 3) == 0) + return PIDX_KDF_PARAM_LABEL; + break; + case 'n': + if (strcmp("es", s + 3) == 0) + return PIDX_KDF_PARAM_ARGON2_LANES; + } + } + break; + case 'm': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'c': + switch(s[3]) { + default: + break; + case 'k': + if (strcmp("ey", s + 4) == 0) + return PIDX_CIPHER_PARAM_AEAD_MAC_KEY; + break; + case 'l': + if (strcmp("en", s + 4) == 0) + return PIDX_KDF_PARAM_MAC_SIZE; + break; + case '\0': + return PIDX_ALG_PARAM_MAC; + } + break; + case 'n': + if (strcmp("datory-digest", s + 3) == 0) + return PIDX_PKEY_PARAM_MANDATORY_DIGEST; + break; + case 'x': + switch(s[3]) { + default: + break; + case '-': + if (strcmp("size", s + 4) == 0) + return PIDX_PKEY_PARAM_MAX_SIZE; + break; + case '_': + switch(s[4]) { + default: + break; + case 'a': + if (strcmp("dinlen", s + 5) == 0) + return PIDX_DRBG_PARAM_MAX_ADINLEN; + break; + case 'e': + switch(s[5]) { + default: + break; + case 'a': + if (strcmp("rly_data", s + 6) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_MAX_EARLY_DATA; + break; + case 'n': + if (strcmp("tropylen", s + 6) == 0) + return PIDX_DRBG_PARAM_MAX_ENTROPYLEN; + } + break; + case 'f': + if (strcmp("rag_len", s + 5) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_MAX_FRAG_LEN; + break; + case 'n': + if (strcmp("oncelen", s + 5) == 0) + return PIDX_DRBG_PARAM_MAX_NONCELEN; + break; + case 'p': + if (strcmp("erslen", s + 5) == 0) + return PIDX_DRBG_PARAM_MAX_PERSLEN; + break; + case 'r': + if (strcmp("equest", s + 5) == 0) + return PIDX_RAND_PARAM_MAX_REQUEST; + } + break; + case 'i': + if (strcmp("um_length", s + 4) == 0) + return PIDX_DRBG_PARAM_MAX_LENGTH; + break; + case 'm': + if (strcmp("em_bytes", s + 4) == 0) + return PIDX_KDF_PARAM_SCRYPT_MAXMEM; + } + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'm': + if (strcmp("cost", s + 3) == 0) + return PIDX_KDF_PARAM_ARGON2_MEMCOST; + break; + case 's': + if (strcmp("sage-encoding", s + 3) == 0) + return PIDX_SIGNATURE_PARAM_MESSAGE_ENCODING; + } + break; + case 'g': + switch(s[2]) { + default: + break; + case 'f': + switch(s[3]) { + default: + break; + case '1': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'd': + if (strcmp("igest", s + 6) == 0) + return PIDX_PKEY_PARAM_MGF1_DIGEST; + break; + case 'p': + if (strcmp("roperties", s + 6) == 0) + return PIDX_PKEY_PARAM_MGF1_PROPERTIES; + } + } + break; + case '\0': + return PIDX_PKEY_PARAM_MASKGENFUNC; + } + } + break; + case 'i': + switch(s[2]) { + default: + break; + case 'c': + if (strcmp("alg", s + 3) == 0) + return PIDX_DIGEST_PARAM_MICALG; + break; + case 'n': + switch(s[3]) { + default: + break; + case '_': + switch(s[4]) { + default: + break; + case 'e': + if (strcmp("ntropylen", s + 5) == 0) + return PIDX_DRBG_PARAM_MIN_ENTROPYLEN; + break; + case 'n': + if (strcmp("oncelen", s + 5) == 0) + return PIDX_DRBG_PARAM_MIN_NONCELEN; + } + break; + case 'i': + if (strcmp("um_length", s + 4) == 0) + return PIDX_DRBG_PARAM_MIN_LENGTH; + } + } + break; + case 'l': + switch(s[2]) { + default: + break; + case '-': + switch(s[3]) { + default: + break; + case 'd': + switch(s[4]) { + default: + break; + case 's': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case '.': + switch(s[7]) { + default: + break; + case 'i': + if (strcmp("nput_formats", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_DSA_INPUT_FORMATS; + break; + case 'o': + if (strcmp("utput_formats", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_DSA_OUTPUT_FORMATS; + break; + case 'p': + if (strcmp("refer_seed", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_DSA_PREFER_SEED; + break; + case 'r': + if (strcmp("etain_seed", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_DSA_RETAIN_SEED; + } + } + } + } + break; + case 'k': + switch(s[4]) { + default: + break; + case 'e': + switch(s[5]) { + default: + break; + case 'm': + switch(s[6]) { + default: + break; + case '.': + switch(s[7]) { + default: + break; + case 'i': + switch(s[8]) { + default: + break; + case 'm': + if (strcmp("port_pct_type", s + 9) == 0) + return PIDX_PKEY_PARAM_ML_KEM_IMPORT_PCT_TYPE; + break; + case 'n': + if (strcmp("put_formats", s + 9) == 0) + return PIDX_PKEY_PARAM_ML_KEM_INPUT_FORMATS; + } + break; + case 'o': + if (strcmp("utput_formats", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_KEM_OUTPUT_FORMATS; + break; + case 'p': + if (strcmp("refer_seed", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_KEM_PREFER_SEED; + break; + case 'r': + if (strcmp("etain_seed", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_KEM_RETAIN_SEED; + } + } + } + } + } + } + break; + case 'o': + switch(s[2]) { + default: + break; + case 'd': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case '\0': + return PIDX_LIBSSL_RECORD_LAYER_PARAM_MODE; + } + break; + case 'u': + if (strcmp("le-filename", s + 4) == 0) + return PIDX_PROV_PARAM_CORE_MODULE_FILENAME; + } + } + break; + case 'u': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_SIGNATURE_PARAM_MU; + } + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_M; + } + break; + case 'n': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("me", s + 2) == 0) + return PIDX_STORE_PARAM_ISSUER; + break; + case 'o': + switch(s[2]) { + default: + break; + case '-': + if (strcmp("short-mac", s + 3) == 0) + return PIDX_PROV_PARAM_NO_SHORT_MAC; + break; + case 'n': + switch(s[3]) { + default: + break; + case 'c': + switch(s[4]) { + default: + break; + case 'e': + switch(s[5]) { + default: + break; + case '-': + if (strcmp("type", s + 6) == 0) + return PIDX_SIGNATURE_PARAM_NONCE_TYPE; + break; + case '\0': + return PIDX_KDF_PARAM_HMACDRBG_NONCE; + } + } + } + } + break; + case 'u': + if (strcmp("m", s + 2) == 0) + return PIDX_CIPHER_PARAM_NUM; + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_N; + } + break; + case 'o': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("ep-label", s + 2) == 0) + return PIDX_ASYM_CIPHER_PARAM_OAEP_LABEL; + break; + case 'p': + switch(s[2]) { + default: + break; + case 'e': + switch(s[3]) { + default: + break; + case 'n': + if (strcmp("ssl-version", s + 4) == 0) + return PIDX_PROV_PARAM_CORE_VERSION; + break; + case 'r': + if (strcmp("ation", s + 4) == 0) + return PIDX_KEM_PARAM_OPERATION; + } + break; + case 't': + if (strcmp("ions", s + 3) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_OPTIONS; + } + break; + case 'r': + if (strcmp("der", s + 2) == 0) + return PIDX_PKEY_PARAM_EC_ORDER; + } + break; + case 'p': + switch(s[1]) { + default: + break; + case '1': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_P1; + } + break; + case '2': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_P2; + } + break; + case 'a': + switch(s[2]) { + default: + break; + case 'd': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'm': + if (strcmp("ode", s + 5) == 0) + return PIDX_PKEY_PARAM_PAD_MODE; + break; + case 't': + if (strcmp("ype", s + 5) == 0) + return PIDX_DIGEST_PARAM_PAD_TYPE; + } + break; + case 'd': + if (strcmp("ing", s + 4) == 0) + return PIDX_CIPHER_PARAM_PADDING; + break; + case '\0': + return PIDX_EXCHANGE_PARAM_PAD; + } + break; + case 'r': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case 'y': + switch(s[5]) { + default: + break; + case 'u': + if (strcmp("-info", s + 6) == 0) + return PIDX_KDF_PARAM_X942_PARTYUINFO; + break; + case 'v': + if (strcmp("-info", s + 6) == 0) + return PIDX_KDF_PARAM_X942_PARTYVINFO; + } + } + } + break; + case 's': + if (strcmp("s", s + 3) == 0) + return PIDX_KDF_PARAM_PASSWORD; + } + break; + case 'b': + switch(s[2]) { + default: + break; + case 'i': + if (strcmp("ts", s + 3) == 0) + return PIDX_PKEY_PARAM_FFC_PBITS; + break; + case 'k': + if (strcmp("df2-lower-bound-check", s + 3) == 0) + return PIDX_PROV_PARAM_PBKDF2_LOWER_BOUND_CHECK; + } + break; + case 'c': + if (strcmp("ounter", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_PCOUNTER; + break; + case 'i': + if (strcmp("peline-tag", s + 2) == 0) + return PIDX_CIPHER_PARAM_PIPELINE_AEAD_TAG; + break; + case 'k': + if (strcmp("cs5", s + 2) == 0) + return PIDX_KDF_PARAM_PKCS5; + break; + case 'o': + switch(s[2]) { + default: + break; + case 'i': + if (strcmp("nt-format", s + 3) == 0) + return PIDX_PKEY_PARAM_EC_POINT_CONVERSION_FORMAT; + break; + case 't': + if (strcmp("ential", s + 3) == 0) + return PIDX_GEN_PARAM_POTENTIAL; + } + break; + case 'r': + switch(s[2]) { + default: + break; + case 'e': + switch(s[3]) { + default: + break; + case 'd': + if (strcmp("iction_resistance", s + 4) == 0) + return PIDX_DRBG_PARAM_PREDICTION_RESISTANCE; + break; + case 'f': + if (strcmp("ix", s + 4) == 0) + return PIDX_KDF_PARAM_PREFIX; + } + break; + case 'i': + switch(s[3]) { + default: + break; + case 'm': + if (strcmp("es", s + 4) == 0) + return PIDX_PKEY_PARAM_RSA_PRIMES; + break; + case 'v': + switch(s[4]) { + default: + break; + case '_': + if (strcmp("len", s + 5) == 0) + return PIDX_PKEY_PARAM_DH_PRIV_LEN; + break; + case '\0': + return PIDX_PKEY_PARAM_PRIV_KEY; + } + } + break; + case 'o': + switch(s[3]) { + default: + break; + case 'p': + if (strcmp("erties", s + 4) == 0) + return PIDX_STORE_PARAM_PROPERTIES; + break; + case 'v': + if (strcmp("ider-name", s + 4) == 0) + return PIDX_PROV_PARAM_CORE_PROV_NAME; + } + } + break; + case 'u': + if (strcmp("b", s + 2) == 0) + return PIDX_PKEY_PARAM_PUB_KEY; + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_P; + } + break; + case 'q': + switch(s[1]) { + default: + break; + case '1': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_Q1; + } + break; + case '2': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_Q2; + } + break; + case 'b': + if (strcmp("its", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_QBITS; + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_Q; + break; + case 'x': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_PUB_X; + } + break; + case 'y': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_PUB_Y; + } + } + break; + case 'r': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'n': + switch(s[3]) { + default: + break; + case 'd': + switch(s[4]) { + default: + break; + case 'k': + if (strcmp("ey", s + 5) == 0) + return PIDX_CIPHER_PARAM_RANDOM_KEY; + break; + case 'o': + if (strcmp("m_data", s + 5) == 0) + return PIDX_DRBG_PARAM_RANDOM_DATA; + } + } + break; + case 'w': + if (strcmp("-bytes", s + 3) == 0) + return PIDX_SKEY_PARAM_RAW_BYTES; + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'a': + switch(s[3]) { + default: + break; + case 'd': + switch(s[4]) { + default: + break; + case '_': + switch(s[5]) { + default: + break; + case 'a': + if (strcmp("head", s + 6) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_READ_AHEAD; + break; + case 'b': + if (strcmp("uffer_len", s + 6) == 0) + return PIDX_LIBSSL_RECORD_LAYER_READ_BUFFER_LEN; + } + } + } + break; + case 'f': + if (strcmp("erence", s + 3) == 0) + return PIDX_OBJECT_PARAM_REFERENCE; + break; + case 's': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case 'e': + switch(s[5]) { + default: + break; + case 'd': + switch(s[6]) { + default: + break; + case '_': + switch(s[7]) { + default: + break; + case 'c': + if (strcmp("ounter", s + 8) == 0) + return PIDX_DRBG_PARAM_RESEED_COUNTER; + break; + case 'r': + if (strcmp("equests", s + 8) == 0) + return PIDX_DRBG_PARAM_RESEED_REQUESTS; + break; + case 't': + switch(s[8]) { + default: + break; + case 'i': + switch(s[9]) { + default: + break; + case 'm': + switch(s[10]) { + default: + break; + case 'e': + switch(s[11]) { + default: + break; + case '_': + if (strcmp("interval", s + 12) == 0) + return PIDX_DRBG_PARAM_RESEED_TIME_INTERVAL; + break; + case '\0': + return PIDX_DRBG_PARAM_RESEED_TIME; + } + } + } + } + } + } + } + } + } + } + break; + case 'o': + if (strcmp("unds", s + 2) == 0) + return PIDX_CIPHER_PARAM_ROUNDS; + break; + case 's': + switch(s[2]) { + default: + break; + case 'a': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'c': + switch(s[5]) { + default: + break; + case 'o': + switch(s[6]) { + default: + break; + case 'e': + switch(s[7]) { + default: + break; + case 'f': + switch(s[8]) { + default: + break; + case 'f': + switch(s[9]) { + default: + break; + case 'i': + switch(s[10]) { + default: + break; + case 'c': + switch(s[11]) { + default: + break; + case 'i': + switch(s[12]) { + default: + break; + case 'e': + switch(s[13]) { + default: + break; + case 'n': + switch(s[14]) { + default: + break; + case 't': + switch(s[15]) { + default: + break; + case '1': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT1; + } + break; + case '2': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT2; + } + break; + case '3': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT3; + } + break; + case '4': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT4; + } + break; + case '5': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT5; + } + break; + case '6': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT6; + } + break; + case '7': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT7; + } + break; + case '8': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT8; + } + break; + case '9': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT9; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT; + } + } + } + } + } + } + } + } + } + } + } + break; + case 'd': + if (strcmp("erive-from-pq", s + 5) == 0) + return PIDX_PKEY_PARAM_RSA_DERIVE_FROM_PQ; + break; + case 'e': + switch(s[5]) { + default: + break; + case 'x': + switch(s[6]) { + default: + break; + case 'p': + switch(s[7]) { + default: + break; + case 'o': + switch(s[8]) { + default: + break; + case 'n': + switch(s[9]) { + default: + break; + case 'e': + switch(s[10]) { + default: + break; + case 'n': + switch(s[11]) { + default: + break; + case 't': + switch(s[12]) { + default: + break; + case '1': + switch(s[13]) { + default: + break; + case '0': + switch(s[14]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT10; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT1; + } + break; + case '2': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT2; + } + break; + case '3': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT3; + } + break; + case '4': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT4; + } + break; + case '5': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT5; + } + break; + case '6': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT6; + } + break; + case '7': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT7; + } + break; + case '8': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT8; + } + break; + case '9': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT9; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT; + } + } + } + } + } + } + } + } + break; + case 'f': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case 'c': + switch(s[7]) { + default: + break; + case 't': + switch(s[8]) { + default: + break; + case 'o': + switch(s[9]) { + default: + break; + case 'r': + switch(s[10]) { + default: + break; + case '1': + switch(s[11]) { + default: + break; + case '0': + switch(s[12]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR10; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR1; + } + break; + case '2': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR2; + } + break; + case '3': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR3; + } + break; + case '4': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR4; + } + break; + case '5': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR5; + } + break; + case '6': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR6; + } + break; + case '7': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR7; + } + break; + case '8': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR8; + } + break; + case '9': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR9; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR; + } + } + } + } + } + } + break; + case 'p': + switch(s[5]) { + default: + break; + case 'k': + if (strcmp("cs15-pad-disabled", s + 6) == 0) + return PIDX_PROV_PARAM_RSA_PKCS15_PAD_DISABLED; + break; + case 's': + if (strcmp("s-saltlen-check", s + 6) == 0) + return PIDX_SIGNATURE_PARAM_FIPS_RSA_PSS_SALTLEN_CHECK; + } + break; + case 's': + if (strcmp("ign-x931-pad-disabled", s + 5) == 0) + return PIDX_PROV_PARAM_RSA_SIGN_X931_PAD_DISABLED; + } + } + } + break; + case '\0': + return PIDX_KDF_PARAM_SCRYPT_R; + } + break; + case 's': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'f': + if (strcmp("eprime-generator", s + 3) == 0) + return PIDX_PKEY_PARAM_DH_GENERATOR; + break; + case 'l': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case 'l': + if (strcmp("en", s + 5) == 0) + return PIDX_SIGNATURE_PARAM_PSS_SALTLEN; + break; + case '\0': + return PIDX_MAC_PARAM_SALT; + } + } + break; + case 'v': + if (strcmp("e-parameters", s + 3) == 0) + return PIDX_ENCODER_PARAM_SAVE_PARAMETERS; + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'c': + switch(s[3]) { + default: + break; + case 'r': + if (strcmp("et", s + 4) == 0) + return PIDX_KDF_PARAM_SECRET; + break; + case 'u': + switch(s[4]) { + default: + break; + case 'r': + switch(s[5]) { + default: + break; + case 'i': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case 'y': + switch(s[8]) { + default: + break; + case '-': + switch(s[9]) { + default: + break; + case 'b': + if (strcmp("its", s + 10) == 0) + return PIDX_PKEY_PARAM_SECURITY_BITS; + break; + case 'c': + if (strcmp("hecks", s + 10) == 0) + return PIDX_PROV_PARAM_SECURITY_CHECKS; + } + } + } + } + } + } + } + break; + case 'e': + if (strcmp("d", s + 3) == 0) + return PIDX_PKEY_PARAM_SLH_DSA_SEED; + break; + case 'r': + if (strcmp("ial", s + 3) == 0) + return PIDX_STORE_PARAM_SERIAL; + break; + case 's': + if (strcmp("sion_id", s + 3) == 0) + return PIDX_KDF_PARAM_SSHKDF_SESSION_ID; + } + break; + case 'i': + switch(s[2]) { + default: + break; + case 'g': + switch(s[3]) { + default: + break; + case 'n': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'c': + if (strcmp("heck", s + 6) == 0) + return PIDX_PKEY_PARAM_FIPS_SIGN_CHECK; + break; + case 'x': + if (strcmp("931-pad-check", s + 6) == 0) + return PIDX_SIGNATURE_PARAM_FIPS_SIGN_X931_PAD_CHECK; + } + break; + case 'a': + switch(s[5]) { + default: + break; + case 't': + switch(s[6]) { + default: + break; + case 'u': + switch(s[7]) { + default: + break; + case 'r': + switch(s[8]) { + default: + break; + case 'e': + switch(s[9]) { + default: + break; + case '-': + if (strcmp("digest-check", s + 10) == 0) + return PIDX_PROV_PARAM_SIGNATURE_DIGEST_CHECK; + break; + case '\0': + return PIDX_SIGNATURE_PARAM_SIGNATURE; + } + } + } + } + } + } + } + break; + case 'z': + if (strcmp("e", s + 3) == 0) + return PIDX_MAC_PARAM_SIZE; + } + break; + case 'p': + if (strcmp("eed", s + 2) == 0) + return PIDX_CIPHER_PARAM_SPEED; + break; + case 's': + switch(s[2]) { + default: + break; + case 'h': + switch(s[3]) { + default: + break; + case 'k': + switch(s[4]) { + default: + break; + case 'd': + switch(s[5]) { + default: + break; + case 'f': + switch(s[6]) { + default: + break; + case '-': + switch(s[7]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 8) == 0) + return PIDX_PROV_PARAM_SSHKDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 8) == 0) + return PIDX_PROV_PARAM_SSHKDF_KEY_CHECK; + } + } + } + } + } + break; + case 'k': + switch(s[3]) { + default: + break; + case 'd': + switch(s[4]) { + default: + break; + case 'f': + switch(s[5]) { + default: + break; + case '-': + switch(s[6]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 7) == 0) + return PIDX_PROV_PARAM_SSKDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 7) == 0) + return PIDX_PROV_PARAM_SSKDF_KEY_CHECK; + } + } + } + } + break; + case 'l': + if (strcmp("3-ms", s + 3) == 0) + return PIDX_DIGEST_PARAM_SSL3_MS; + } + break; + case 't': + switch(s[2]) { + default: + break; + case '-': + switch(s[3]) { + default: + break; + case 'd': + if (strcmp("esc", s + 4) == 0) + return PIDX_PROV_PARAM_SELF_TEST_DESC; + break; + case 'p': + if (strcmp("hase", s + 4) == 0) + return PIDX_PROV_PARAM_SELF_TEST_PHASE; + break; + case 't': + if (strcmp("ype", s + 4) == 0) + return PIDX_PROV_PARAM_SELF_TEST_TYPE; + } + break; + case 'a': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case 'e': + switch(s[5]) { + default: + break; + case '\0': + return PIDX_RAND_PARAM_STATE; + } + break; + case 'u': + if (strcmp("s", s + 5) == 0) + return PIDX_PROV_PARAM_STATUS; + } + } + break; + case 'r': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case 'a': + if (strcmp("m_mac", s + 5) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_STREAM_MAC; + break; + case 'n': + if (strcmp("gth", s + 5) == 0) + return PIDX_RAND_PARAM_STRENGTH; + } + } + } + break; + case 'u': + switch(s[2]) { + default: + break; + case 'b': + if (strcmp("ject", s + 3) == 0) + return PIDX_STORE_PARAM_SUBJECT; + break; + case 'p': + switch(s[3]) { + default: + break; + case 'p': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'p': + switch(s[6]) { + default: + break; + case 'r': + if (strcmp("ivinfo", s + 7) == 0) + return PIDX_KDF_PARAM_X942_SUPP_PRIVINFO; + break; + case 'u': + if (strcmp("binfo", s + 7) == 0) + return PIDX_KDF_PARAM_X942_SUPP_PUBINFO; + } + } + } + } + } + } + break; + case 't': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'g': + switch(s[3]) { + default: + break; + case 'l': + if (strcmp("en", s + 4) == 0) + return PIDX_CIPHER_PARAM_AEAD_TAGLEN; + break; + case '\0': + return PIDX_CIPHER_PARAM_AEAD_TAG; + } + } + break; + case 'd': + if (strcmp("es-encrypt-disabled", s + 2) == 0) + return PIDX_PROV_PARAM_TDES_ENCRYPT_DISABLED; + break; + case 'e': + switch(s[2]) { + default: + break; + case 's': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case '-': + if (strcmp("entropy", s + 5) == 0) + return PIDX_SIGNATURE_PARAM_TEST_ENTROPY; + break; + case '_': + switch(s[5]) { + default: + break; + case 'e': + if (strcmp("ntropy", s + 6) == 0) + return PIDX_RAND_PARAM_TEST_ENTROPY; + break; + case 'n': + if (strcmp("once", s + 6) == 0) + return PIDX_RAND_PARAM_TEST_NONCE; + } + } + } + } + break; + case 'h': + if (strcmp("reads", s + 2) == 0) + return PIDX_KDF_PARAM_THREADS; + break; + case 'l': + switch(s[2]) { + default: + break; + case 's': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'c': + if (strcmp("lient-version", s + 5) == 0) + return PIDX_ASYM_CIPHER_PARAM_TLS_CLIENT_VERSION; + break; + case 'd': + if (strcmp("ata-size", s + 5) == 0) + return PIDX_MAC_PARAM_TLS_DATA_SIZE; + break; + case 'g': + switch(s[5]) { + default: + break; + case 'r': + switch(s[6]) { + default: + break; + case 'o': + switch(s[7]) { + default: + break; + case 'u': + switch(s[8]) { + default: + break; + case 'p': + switch(s[9]) { + default: + break; + case '-': + switch(s[10]) { + default: + break; + case 'a': + if (strcmp("lg", s + 11) == 0) + return PIDX_CAPABILITY_TLS_GROUP_ALG; + break; + case 'i': + switch(s[11]) { + default: + break; + case 'd': + switch(s[12]) { + default: + break; + case '\0': + return PIDX_CAPABILITY_TLS_GROUP_ID; + } + break; + case 's': + if (strcmp("-kem", s + 12) == 0) + return PIDX_CAPABILITY_TLS_GROUP_IS_KEM; + } + break; + case 'n': + switch(s[11]) { + default: + break; + case 'a': + switch(s[12]) { + default: + break; + case 'm': + switch(s[13]) { + default: + break; + case 'e': + switch(s[14]) { + default: + break; + case '-': + if (strcmp("internal", s + 15) == 0) + return PIDX_CAPABILITY_TLS_GROUP_NAME_INTERNAL; + break; + case '\0': + return PIDX_CAPABILITY_TLS_GROUP_NAME; + } + } + } + } + break; + case 's': + if (strcmp("ec-bits", s + 11) == 0) + return PIDX_CAPABILITY_TLS_GROUP_SECURITY_BITS; + } + } + } + } + } + } + break; + case 'm': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case 'c': + switch(s[7]) { + default: + break; + case '-': + if (strcmp("size", s + 8) == 0) + return PIDX_CIPHER_PARAM_TLS_MAC_SIZE; + break; + case '\0': + return PIDX_CIPHER_PARAM_TLS_MAC; + } + break; + case 'x': + switch(s[7]) { + default: + break; + case '-': + switch(s[8]) { + default: + break; + case 'd': + if (strcmp("tls", s + 9) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_MAX_DTLS; + break; + case 't': + if (strcmp("ls", s + 9) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_MAX_TLS; + } + } + } + break; + case 'i': + switch(s[6]) { + default: + break; + case 'n': + switch(s[7]) { + default: + break; + case '-': + switch(s[8]) { + default: + break; + case 'd': + if (strcmp("tls", s + 9) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_MIN_DTLS; + break; + case 't': + if (strcmp("ls", s + 9) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_MIN_TLS; + } + } + } + break; + case 'u': + if (strcmp("lti", s + 6) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK; + } + break; + case 'n': + if (strcmp("egotiated-version", s + 5) == 0) + return PIDX_ASYM_CIPHER_PARAM_TLS_NEGOTIATED_VERSION; + break; + case 's': + switch(s[5]) { + default: + break; + case 'i': + switch(s[6]) { + default: + break; + case 'g': + switch(s[7]) { + default: + break; + case 'a': + switch(s[8]) { + default: + break; + case 'l': + switch(s[9]) { + default: + break; + case 'g': + switch(s[10]) { + default: + break; + case '-': + switch(s[11]) { + default: + break; + case 'c': + if (strcmp("ode-point", s + 12) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_CODE_POINT; + break; + case 'h': + switch(s[12]) { + default: + break; + case 'a': + switch(s[13]) { + default: + break; + case 's': + switch(s[14]) { + default: + break; + case 'h': + switch(s[15]) { + default: + break; + case '-': + switch(s[16]) { + default: + break; + case 'n': + if (strcmp("ame", s + 17) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_HASH_NAME; + break; + case 'o': + if (strcmp("id", s + 17) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_HASH_OID; + } + } + } + } + } + break; + case 'i': + if (strcmp("ana-name", s + 12) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_IANA_NAME; + break; + case 'k': + switch(s[12]) { + default: + break; + case 'e': + switch(s[13]) { + default: + break; + case 'y': + switch(s[14]) { + default: + break; + case 't': + switch(s[15]) { + default: + break; + case 'y': + switch(s[16]) { + default: + break; + case 'p': + switch(s[17]) { + default: + break; + case 'e': + switch(s[18]) { + default: + break; + case '-': + if (strcmp("oid", s + 19) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_KEYTYPE_OID; + break; + case '\0': + return PIDX_CAPABILITY_TLS_SIGALG_KEYTYPE; + } + } + } + } + } + } + } + break; + case 'n': + if (strcmp("ame", s + 12) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_NAME; + break; + case 'o': + if (strcmp("id", s + 12) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_OID; + break; + case 's': + switch(s[12]) { + default: + break; + case 'e': + if (strcmp("c-bits", s + 13) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_SECURITY_BITS; + break; + case 'i': + switch(s[13]) { + default: + break; + case 'g': + switch(s[14]) { + default: + break; + case '-': + switch(s[15]) { + default: + break; + case 'n': + if (strcmp("ame", s + 16) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_SIG_NAME; + break; + case 'o': + if (strcmp("id", s + 16) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_SIG_OID; + } + } + } + } + } + } + } + } + } + } + } + break; + case 'v': + if (strcmp("ersion", s + 5) == 0) + return PIDX_CIPHER_PARAM_TLS_VERSION; + } + break; + case '1': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'p': + switch(s[6]) { + default: + break; + case 'r': + switch(s[7]) { + default: + break; + case 'f': + switch(s[8]) { + default: + break; + case '-': + switch(s[9]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 10) == 0) + return PIDX_PROV_PARAM_TLS1_PRF_DIGEST_CHECK; + break; + case 'e': + if (strcmp("ms-check", s + 10) == 0) + return PIDX_PROV_PARAM_TLS1_PRF_EMS_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 10) == 0) + return PIDX_PROV_PARAM_TLS1_PRF_KEY_CHECK; + } + } + } + } + } + break; + case '3': + switch(s[5]) { + default: + break; + case '-': + switch(s[6]) { + default: + break; + case 'k': + switch(s[7]) { + default: + break; + case 'd': + switch(s[8]) { + default: + break; + case 'f': + switch(s[9]) { + default: + break; + case '-': + switch(s[10]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 11) == 0) + return PIDX_PROV_PARAM_TLS13_KDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 11) == 0) + return PIDX_PROV_PARAM_TLS13_KDF_KEY_CHECK; + } + } + } + } + } + } + break; + case 'm': + switch(s[5]) { + default: + break; + case 'u': + switch(s[6]) { + default: + break; + case 'l': + switch(s[7]) { + default: + break; + case 't': + switch(s[8]) { + default: + break; + case 'i': + switch(s[9]) { + default: + break; + case '_': + switch(s[10]) { + default: + break; + case 'a': + switch(s[11]) { + default: + break; + case 'a': + switch(s[12]) { + default: + break; + case 'd': + switch(s[13]) { + default: + break; + case 'p': + if (strcmp("acklen", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD_PACKLEN; + break; + case '\0': + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD; + } + } + } + break; + case 'e': + switch(s[11]) { + default: + break; + case 'n': + switch(s[12]) { + default: + break; + case 'c': + switch(s[13]) { + default: + break; + case 'i': + if (strcmp("n", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_IN; + break; + case 'l': + if (strcmp("en", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_LEN; + break; + case '\0': + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC; + } + } + } + break; + case 'i': + if (strcmp("nterleave", s + 11) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_INTERLEAVE; + break; + case 'm': + switch(s[11]) { + default: + break; + case 'a': + switch(s[12]) { + default: + break; + case 'x': + switch(s[13]) { + default: + break; + case 'b': + if (strcmp("ufsz", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_BUFSIZE; + break; + case 's': + if (strcmp("ndfrag", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_SEND_FRAGMENT; + } + } + } + } + } + } + } + } + } + } + break; + case 'a': + switch(s[4]) { + default: + break; + case 'a': + switch(s[5]) { + default: + break; + case 'd': + switch(s[6]) { + default: + break; + case 'p': + if (strcmp("ad", s + 7) == 0) + return PIDX_CIPHER_PARAM_AEAD_TLS1_AAD_PAD; + break; + case '\0': + return PIDX_CIPHER_PARAM_AEAD_TLS1_AAD; + } + } + } + break; + case 'i': + switch(s[4]) { + default: + break; + case 'v': + switch(s[5]) { + default: + break; + case 'f': + if (strcmp("ixed", s + 6) == 0) + return PIDX_CIPHER_PARAM_AEAD_TLS1_IV_FIXED; + break; + case 'g': + if (strcmp("en", s + 6) == 0) + return PIDX_CIPHER_PARAM_AEAD_TLS1_GET_IV_GEN; + break; + case 'i': + if (strcmp("nv", s + 6) == 0) + return PIDX_CIPHER_PARAM_AEAD_TLS1_SET_IV_INV; + } + } + break; + case 't': + if (strcmp("ree", s + 4) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_TLSTREE; + } + } + break; + case 'p': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_TP_BASIS; + } + break; + case 'y': + if (strcmp("pe", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_TYPE; + } + break; + case 'u': + switch(s[1]) { + default: + break; + case 'k': + if (strcmp("m", s + 2) == 0) + return PIDX_KDF_PARAM_UKM; + break; + case 'p': + if (strcmp("dated-iv", s + 2) == 0) + return PIDX_CIPHER_PARAM_UPDATED_IV; + break; + case 's': + switch(s[2]) { + default: + break; + case 'e': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'b': + if (strcmp("its", s + 5) == 0) + return PIDX_CIPHER_PARAM_USE_BITS; + break; + case 'c': + if (strcmp("ofactor-flag", s + 5) == 0) + return PIDX_PKEY_PARAM_USE_COFACTOR_FLAG; + break; + case 'k': + if (strcmp("eybits", s + 5) == 0) + return PIDX_KDF_PARAM_X942_USE_KEYBITS; + break; + case 'l': + switch(s[5]) { + default: + break; + case '\0': + return PIDX_KDF_PARAM_KBKDF_USE_L; + } + break; + case 's': + if (strcmp("eparator", s + 5) == 0) + return PIDX_KDF_PARAM_KBKDF_USE_SEPARATOR; + } + break; + case '_': + switch(s[4]) { + default: + break; + case 'd': + if (strcmp("erivation_function", s + 5) == 0) + return PIDX_DRBG_PARAM_USE_DF; + break; + case 'e': + if (strcmp("tm", s + 5) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_USE_ETM; + } + } + } + } + break; + case 'v': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'l': + switch(s[3]) { + default: + break; + case 'i': + switch(s[4]) { + default: + break; + case 'd': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case 'e': + switch(s[8]) { + default: + break; + case '-': + switch(s[9]) { + default: + break; + case 'g': + switch(s[10]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_VALIDATE_G; + } + break; + case 'l': + if (strcmp("egacy", s + 10) == 0) + return PIDX_PKEY_PARAM_FFC_VALIDATE_LEGACY; + break; + case 'p': + if (strcmp("q", s + 10) == 0) + return PIDX_PKEY_PARAM_FFC_VALIDATE_PQ; + } + } + } + } + } + } + } + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'r': + switch(s[3]) { + default: + break; + case 'i': + if (strcmp("fy-message", s + 4) == 0) + return PIDX_SIGNATURE_PARAM_FIPS_VERIFY_MESSAGE; + break; + case 's': + if (strcmp("ion", s + 4) == 0) + return PIDX_PROV_PARAM_VERSION; + } + } + } + break; + case 'x': + switch(s[1]) { + default: + break; + case '9': + switch(s[2]) { + default: + break; + case '4': + if (strcmp("2kdf-key-check", s + 3) == 0) + return PIDX_PROV_PARAM_X942KDF_KEY_CHECK; + break; + case '6': + switch(s[3]) { + default: + break; + case '3': + switch(s[4]) { + default: + break; + case 'k': + switch(s[5]) { + default: + break; + case 'd': + switch(s[6]) { + default: + break; + case 'f': + switch(s[7]) { + default: + break; + case '-': + switch(s[8]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 9) == 0) + return PIDX_PROV_PARAM_X963KDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 9) == 0) + return PIDX_PROV_PARAM_X963KDF_KEY_CHECK; + } + } + } + } + } + } + } + break; + case 'c': + if (strcmp("ghash", s + 2) == 0) + return PIDX_KDF_PARAM_SSHKDF_XCGHASH; + break; + case 'o': + switch(s[2]) { + default: + break; + case 'f': + switch(s[3]) { + default: + break; + case 'l': + if (strcmp("en", s + 4) == 0) + return PIDX_DIGEST_PARAM_XOFLEN; + break; + case '\0': + return PIDX_MAC_PARAM_XOF; + } + } + break; + case 'p': + switch(s[2]) { + default: + break; + case '1': + switch(s[3]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XP1; + } + break; + case '2': + switch(s[3]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XP2; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XP; + } + break; + case 'q': + switch(s[2]) { + default: + break; + case '1': + switch(s[3]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XQ1; + } + break; + case '2': + switch(s[3]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XQ2; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XQ; + } + break; + case 't': + if (strcmp("s_standard", s + 2) == 0) + return PIDX_CIPHER_PARAM_XTS_STANDARD; + } + } + return -1; +} + +/* End of TRIE */ diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/crypto/poly1305/poly1305-armv8.S b/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/crypto/poly1305/poly1305-armv8.S index a044e14cb61f5f..03f80792036cbd 100644 --- a/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/crypto/poly1305/poly1305-armv8.S +++ b/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/crypto/poly1305/poly1305-armv8.S @@ -15,6 +15,7 @@ .align 5 _poly1305_init: + AARCH64_VALID_CALL_TARGET cmp x1,xzr stp xzr,xzr,[x0] // zero hash value stp xzr,xzr,[x0,#16] // [along with is_base2_26] @@ -39,10 +40,14 @@ _poly1305_init: tst w17,#ARMV7_NEON - adr x12,Lpoly1305_blocks - adr x7,Lpoly1305_blocks_neon - adr x13,Lpoly1305_emit - adr x8,Lpoly1305_emit_neon + adrp x12,_poly1305_blocks@PAGE + add x12,x12,Lpoly1305_blocks@PAGEOFF + adrp x7,poly1305_blocks_neon@PAGE + add x7,x7,Lpoly1305_blocks_neon@PAGEOFF + adrp x13,_poly1305_emit@PAGE + add x13,x13,Lpoly1305_emit@PAGEOFF + adrp x8,poly1305_emit_neon@PAGE + add x8,x8,Lpoly1305_emit_neon@PAGEOFF csel x12,x12,x7,eq csel x13,x13,x8,eq @@ -62,6 +67,9 @@ Lno_key: .align 5 _poly1305_blocks: Lpoly1305_blocks: + // The symbol .Lpoly1305_blocks is not a .globl symbol + // but a pointer to it is returned by poly1305_init + AARCH64_VALID_CALL_TARGET ands x2,x2,#-16 b.eq Lno_data @@ -127,6 +135,9 @@ Lno_data: .align 5 _poly1305_emit: Lpoly1305_emit: + // The symbol .poly1305_emit is not a .globl symbol + // but a pointer to it is returned by poly1305_init + AARCH64_VALID_CALL_TARGET ldp x4,x5,[x0] // load hash base 2^64 ldr x6,[x0,#16] ldp x10,x11,[x2] // load nonce @@ -222,13 +233,16 @@ poly1305_splat: .align 5 poly1305_blocks_neon: Lpoly1305_blocks_neon: + // The symbol .Lpoly1305_blocks_neon is not a .globl symbol + // but a pointer to it is returned by poly1305_init + AARCH64_VALID_CALL_TARGET ldr x17,[x0,#24] cmp x2,#128 b.hs Lblocks_neon cbz x17,Lpoly1305_blocks Lblocks_neon: -.long 0xd503233f // paciasp + AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-80]! add x29,sp,#0 @@ -363,7 +377,8 @@ Linit_neon: ldr x30,[sp,#8] add x16,x1,#32 - adr x17,Lzeros + adrp x17,Lzeros@PAGE + add x17,x17,Lzeros@PAGEOFF subs x2,x2,#64 csel x16,x17,x16,lo @@ -375,7 +390,8 @@ Linit_neon: .align 4 Leven_neon: add x16,x1,#32 - adr x17,Lzeros + adrp x17,Lzeros@PAGE + add x17,x17,Lzeros@PAGEOFF subs x2,x2,#64 csel x16,x17,x16,lo @@ -798,7 +814,7 @@ Lshort_tail: Lno_data_neon: ldr x29,[sp],#80 -.long 0xd50323bf // autiasp + AARCH64_VALIDATE_LINK_REGISTER ret @@ -806,6 +822,9 @@ Lno_data_neon: .align 5 poly1305_emit_neon: Lpoly1305_emit_neon: + // The symbol .Lpoly1305_emit_neon is not a .globl symbol + // but a pointer to it is returned by poly1305_init + AARCH64_VALID_CALL_TARGET ldr x17,[x0,#24] cbz x17,_poly1305_emit @@ -855,6 +874,8 @@ Lpoly1305_emit_neon: ret +.section __TEXT,__const + .align 5 Lzeros: .long 0,0,0,0,0,0,0,0 diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/crypto/sha/keccak1600-armv8.S b/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/crypto/sha/keccak1600-armv8.S index fcebbfeb90fd0d..3de3f4981d0179 100644 --- a/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/crypto/sha/keccak1600-armv8.S +++ b/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/crypto/sha/keccak1600-armv8.S @@ -1,4 +1,6 @@ -.text +#include "arm_arch.h" + +.section __TEXT,__const .align 8 // strategic alignment and padding that allows to use // address value as loop termination condition... @@ -30,11 +32,14 @@ iotas: .quad 0x0000000080000001 .quad 0x8000000080008008 +.text + .align 5 KeccakF1600_int: - adr x28,iotas -.long 0xd503233f // paciasp + AARCH64_SIGN_LINK_REGISTER + adrp x28,iotas@PAGE + add x28,x28,iotas@PAGEOFF stp x28,x30,[sp,#16] // 32 bytes on top are mine b Loop .align 4 @@ -198,14 +203,14 @@ Loop: bne Loop ldr x30,[sp,#24] -.long 0xd50323bf // autiasp + AARCH64_VALIDATE_LINK_REGISTER ret .align 5 KeccakF1600: -.long 0xd503233f // paciasp + AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-128]! add x29,sp,#0 stp x19,x20,[sp,#16] @@ -255,7 +260,7 @@ KeccakF1600: ldp x25,x26,[x29,#64] ldp x27,x28,[x29,#80] ldp x29,x30,[sp],#128 -.long 0xd50323bf // autiasp + AARCH64_VALIDATE_LINK_REGISTER ret @@ -263,7 +268,7 @@ KeccakF1600: .align 5 _SHA3_absorb: -.long 0xd503233f // paciasp + AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-128]! add x29,sp,#0 stp x19,x20,[sp,#16] @@ -497,14 +502,14 @@ Labsorbed: ldp x25,x26,[x29,#64] ldp x27,x28,[x29,#80] ldp x29,x30,[sp],#128 -.long 0xd50323bf // autiasp + AARCH64_VALIDATE_LINK_REGISTER ret .globl _SHA3_squeeze .align 5 _SHA3_squeeze: -.long 0xd503233f // paciasp + AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-48]! add x29,sp,#0 stp x19,x20,[sp,#16] @@ -514,6 +519,8 @@ _SHA3_squeeze: mov x20,x1 mov x21,x2 mov x22,x3 + cmp w4, #0 // w4 = 'next' argument + bne Lnext_block Loop_squeeze: ldr x4,[x0],#8 @@ -528,7 +535,7 @@ Loop_squeeze: subs x3,x3,#8 bhi Loop_squeeze - +Lnext_block: mov x0,x19 bl KeccakF1600 mov x0,x19 @@ -567,14 +574,15 @@ Lsqueeze_done: ldp x19,x20,[sp,#16] ldp x21,x22,[sp,#32] ldp x29,x30,[sp],#48 -.long 0xd50323bf // autiasp + AARCH64_VALIDATE_LINK_REGISTER ret .align 5 KeccakF1600_ce: mov x9,#24 - adr x10,iotas + adrp x10,iotas@PAGE + add x10,x10,iotas@PAGEOFF b Loop_ce .align 4 Loop_ce: @@ -675,7 +683,7 @@ Loop_ce: .align 5 KeccakF1600_cext: -.long 0xd503233f // paciasp + AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-80]! add x29,sp,#0 stp d8,d9,[sp,#16] // per ABI requirement @@ -716,14 +724,14 @@ KeccakF1600_cext: ldp d12,d13,[sp,#48] ldp d14,d15,[sp,#64] ldr x29,[sp],#80 -.long 0xd50323bf // autiasp + AARCH64_VALIDATE_LINK_REGISTER ret .globl _SHA3_absorb_cext .align 5 _SHA3_absorb_cext: -.long 0xd503233f // paciasp + AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-80]! add x29,sp,#0 stp d8,d9,[sp,#16] // per ABI requirement @@ -939,14 +947,14 @@ Labsorbed_ce: ldp d12,d13,[sp,#48] ldp d14,d15,[sp,#64] ldp x29,x30,[sp],#80 -.long 0xd50323bf // autiasp + AARCH64_VALIDATE_LINK_REGISTER ret .globl _SHA3_squeeze_cext .align 5 _SHA3_squeeze_cext: -.long 0xd503233f // paciasp + AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-16]! add x29,sp,#0 mov x9,x0 @@ -1002,7 +1010,7 @@ Lsqueeze_tail_ce: Lsqueeze_done_ce: ldr x29,[sp],#16 -.long 0xd50323bf // autiasp + AARCH64_VALIDATE_LINK_REGISTER ret .byte 75,101,99,99,97,107,45,49,54,48,48,32,97,98,115,111,114,98,32,97,110,100,32,115,113,117,101,101,122,101,32,102,111,114,32,65,82,77,118,56,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/crypto/sha/sha1-armv8.S b/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/crypto/sha/sha1-armv8.S index 1d453b608a04b4..a6891a4feaecd4 100644 --- a/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/crypto/sha/sha1-armv8.S +++ b/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/crypto/sha/sha1-armv8.S @@ -1,5 +1,5 @@ +#include "arm_arch.h" #ifndef __KERNEL__ -# include "arm_arch.h" .private_extern _OPENSSL_armcap_P #endif @@ -10,11 +10,13 @@ .align 6 _sha1_block_data_order: + AARCH64_VALID_CALL_TARGET adrp x16,_OPENSSL_armcap_P@PAGE ldr w16,[x16,_OPENSSL_armcap_P@PAGEOFF] tst w16,#ARMV8_SHA1 b.ne Lv8_entry + // Armv8.3-A PAuth: even though x30 is pushed to stack it is not popped later. stp x29,x30,[sp,#-96]! add x29,sp,#0 stp x19,x20,[sp,#16] @@ -1074,10 +1076,12 @@ Loop: .align 6 sha1_block_armv8: Lv8_entry: + // Armv8.3-A PAuth: even though x30 is pushed to stack it is not popped later. stp x29,x30,[sp,#-16]! add x29,sp,#0 - adr x4,Lconst + adrp x4,Lconst@PAGE + add x4,x4,Lconst@PAGEOFF eor v1.16b,v1.16b,v1.16b ld1 {v0.4s},[x0],#16 ld1 {v1.s}[0],[x0] @@ -1200,6 +1204,9 @@ Loop_hw: ldr x29,[sp],#16 ret + +.section __TEXT,__const + .align 6 Lconst: .long 0x5a827999,0x5a827999,0x5a827999,0x5a827999 //K_00_19 diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/crypto/sha/sha256-armv8.S b/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/crypto/sha/sha256-armv8.S index 908ea9870c9018..2fefe9b219033c 100644 --- a/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/crypto/sha/sha256-armv8.S +++ b/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/crypto/sha/sha256-armv8.S @@ -1,4 +1,4 @@ -// Copyright 2014-2020 The OpenSSL Project Authors. All Rights Reserved. +// Copyright 2014-2025 The OpenSSL Project Authors. All Rights Reserved. // // Licensed under the Apache License 2.0 (the "License"). You may not use // this file except in compliance with the License. You can obtain a copy @@ -55,8 +55,8 @@ // $output is the last argument if it looks like a file (it has an extension) // $flavour is the first argument if it doesn't look like a file +#include "arm_arch.h" #ifndef __KERNEL__ -# include "arm_arch.h" .private_extern _OPENSSL_armcap_P #endif @@ -67,6 +67,7 @@ .align 6 _sha256_block_data_order: + AARCH64_VALID_CALL_TARGET #ifndef __KERNEL__ adrp x16,_OPENSSL_armcap_P@PAGE ldr w16,[x16,_OPENSSL_armcap_P@PAGEOFF] @@ -75,7 +76,7 @@ _sha256_block_data_order: tst w16,#ARMV7_NEON b.ne Lneon_entry #endif -.long 0xd503233f // paciasp + AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-128]! add x29,sp,#0 @@ -91,7 +92,8 @@ _sha256_block_data_order: ldp w24,w25,[x0,#4*4] add x2,x1,x2,lsl#6 // end of input ldp w26,w27,[x0,#6*4] - adr x30,LK256 + adrp x30,LK256@PAGE + add x30,x30,LK256@PAGEOFF stp x0,x2,[x29,#96] Loop: @@ -1035,10 +1037,12 @@ Loop_16_xx: ldp x25,x26,[x29,#64] ldp x27,x28,[x29,#80] ldp x29,x30,[sp],#128 -.long 0xd50323bf // autiasp + AARCH64_VALIDATE_LINK_REGISTER ret +.section __TEXT,__const + .align 6 LK256: @@ -1063,16 +1067,20 @@ LK256: .byte 83,72,65,50,53,54,32,98,108,111,99,107,32,116,114,97,110,115,102,111,114,109,32,102,111,114,32,65,82,77,118,56,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 .align 2 .align 2 + +.text #ifndef __KERNEL__ .align 6 sha256_block_armv8: Lv8_entry: + // Armv8.3-A PAuth: even though x30 is pushed to stack it is not popped later. stp x29,x30,[sp,#-16]! add x29,sp,#0 ld1 {v0.4s,v1.4s},[x0] - adr x3,LK256 + adrp x3,LK256@PAGE + add x3,x3,LK256@PAGEOFF Loop_hw: ld1 {v4.16b,v5.16b,v6.16b,v7.16b},[x1],#64 @@ -1209,12 +1217,15 @@ Loop_hw: .align 4 _sha256_block_neon: + AARCH64_VALID_CALL_TARGET Lneon_entry: + // Armv8.3-A PAuth: even though x30 is pushed to stack it is not popped later stp x29, x30, [sp, #-16]! mov x29, sp sub sp,sp,#16*4 - adr x16,LK256 + adrp x16,LK256@PAGE + add x16,x16,LK256@PAGEOFF add x2,x1,x2,lsl#6 // len to point at the end of inp ld1 {v0.16b},[x1], #16 diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/crypto/sha/sha512-armv8.S b/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/crypto/sha/sha512-armv8.S index c36c40bb09f80d..6ad30a825a69b6 100644 --- a/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/crypto/sha/sha512-armv8.S +++ b/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/crypto/sha/sha512-armv8.S @@ -1,4 +1,4 @@ -// Copyright 2014-2020 The OpenSSL Project Authors. All Rights Reserved. +// Copyright 2014-2025 The OpenSSL Project Authors. All Rights Reserved. // // Licensed under the Apache License 2.0 (the "License"). You may not use // this file except in compliance with the License. You can obtain a copy @@ -55,8 +55,8 @@ // $output is the last argument if it looks like a file (it has an extension) // $flavour is the first argument if it doesn't look like a file +#include "arm_arch.h" #ifndef __KERNEL__ -# include "arm_arch.h" .private_extern _OPENSSL_armcap_P #endif @@ -67,13 +67,14 @@ .align 6 _sha512_block_data_order: + AARCH64_VALID_CALL_TARGET #ifndef __KERNEL__ adrp x16,_OPENSSL_armcap_P@PAGE ldr w16,[x16,_OPENSSL_armcap_P@PAGEOFF] tst w16,#ARMV8_SHA512 b.ne Lv8_entry #endif -.long 0xd503233f // paciasp + AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-128]! add x29,sp,#0 @@ -89,7 +90,8 @@ _sha512_block_data_order: ldp x24,x25,[x0,#4*8] add x2,x1,x2,lsl#7 // end of input ldp x26,x27,[x0,#6*8] - adr x30,LK512 + adrp x30,LK512@PAGE + add x30,x30,LK512@PAGEOFF stp x0,x2,[x29,#96] Loop: @@ -1033,10 +1035,12 @@ Loop_16_xx: ldp x25,x26,[x29,#64] ldp x27,x28,[x29,#80] ldp x29,x30,[sp],#128 -.long 0xd50323bf // autiasp + AARCH64_VALIDATE_LINK_REGISTER ret +.section __TEXT,__const + .align 6 LK512: @@ -1085,11 +1089,14 @@ LK512: .byte 83,72,65,53,49,50,32,98,108,111,99,107,32,116,114,97,110,115,102,111,114,109,32,102,111,114,32,65,82,77,118,56,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 .align 2 .align 2 + +.text #ifndef __KERNEL__ .align 6 sha512_block_armv8: Lv8_entry: + // Armv8.3-A PAuth: even though x30 is pushed to stack it is not popped later stp x29,x30,[sp,#-16]! add x29,sp,#0 @@ -1097,7 +1104,8 @@ Lv8_entry: ld1 {v20.16b,v21.16b,v22.16b,v23.16b},[x1],#64 ld1 {v0.2d,v1.2d,v2.2d,v3.2d},[x0] // load context - adr x3,LK512 + adrp x3,LK512@PAGE + add x3,x3,LK512@PAGEOFF rev64 v16.16b,v16.16b rev64 v17.16b,v17.16b diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/crypto/sm3/sm3-armv8.S b/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/crypto/sm3/sm3-armv8.S new file mode 100644 index 00000000000000..a9dd4c66ae9aa7 --- /dev/null +++ b/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/crypto/sm3/sm3-armv8.S @@ -0,0 +1,505 @@ +// Copyright 2021-2025 The OpenSSL Project Authors. All Rights Reserved. +// +// Licensed under the Apache License 2.0 (the "License"). You may not use +// this file except in compliance with the License. You can obtain a copy +// in the file LICENSE in the source distribution or at +// https://www.openssl.org/source/license.html +// +// This module implements support for Armv8 SM3 instructions + +// $output is the last argument if it looks like a file (it has an extension) +// $flavour is the first argument if it doesn't look like a file +#include "arm_arch.h" +.text +.globl _ossl_hwsm3_block_data_order + +.align 5 +_ossl_hwsm3_block_data_order: + AARCH64_VALID_CALL_TARGET + // load state + ld1 {v5.4s,v6.4s}, [x0] + rev64 v5.4s, v5.4s + rev64 v6.4s, v6.4s + ext v5.16b, v5.16b, v5.16b, #8 + ext v6.16b, v6.16b, v6.16b, #8 + adr x8, .Tj + ldp s16, s17, [x8] + +Loop: + // load input + ld1 {v0.4s,v1.4s,v2.4s,v3.4s}, [x1], #64 + sub w2, w2, #1 + + mov v18.16b, v5.16b + mov v19.16b, v6.16b + +#ifndef __AARCH64EB__ + rev32 v0.16b, v0.16b + rev32 v1.16b, v1.16b + rev32 v2.16b, v2.16b + rev32 v3.16b, v3.16b +#endif + + ext v20.16b, v16.16b, v16.16b, #4 + // s4 = w7 | w8 | w9 | w10 + ext v4.16b, v1.16b, v2.16b, #12 + // vtmp1 = w3 | w4 | w5 | w6 + ext v22.16b, v0.16b, v1.16b, #12 + // vtmp2 = w10 | w11 | w12 | w13 + ext v23.16b, v2.16b, v3.16b, #8 +.long 0xce63c004 //sm3partw1 v4.4s, v0.4s, v3.4s +.long 0xce76c6e4 //sm3partw2 v4.4s, v23.4s, v22.4s + eor v22.16b, v0.16b, v1.16b +.long 0xce5418b7 //sm3ss1 v23.4s, v5.4s, v20.4s, v6.4s + shl v21.4s, v20.4s, #1 + sri v21.4s, v20.4s, #31 +.long 0xce5682e5 //sm3tt1a v5.4s, v23.4s, v22.4s[0] +.long 0xce408ae6 //sm3tt2a v6.4s, v23.4s, v0.4s[0] +.long 0xce5518b7 //sm3ss1 v23.4s, v5.4s, v21.4s, v6.4s + shl v20.4s, v21.4s, #1 + sri v20.4s, v21.4s, #31 +.long 0xce5692e5 //sm3tt1a v5.4s, v23.4s, v22.4s[1] +.long 0xce409ae6 //sm3tt2a v6.4s, v23.4s, v0.4s[1] +.long 0xce5418b7 //sm3ss1 v23.4s, v5.4s, v20.4s, v6.4s + shl v21.4s, v20.4s, #1 + sri v21.4s, v20.4s, #31 +.long 0xce56a2e5 //sm3tt1a v5.4s, v23.4s, v22.4s[2] +.long 0xce40aae6 //sm3tt2a v6.4s, v23.4s, v0.4s[2] +.long 0xce5518b7 //sm3ss1 v23.4s, v5.4s, v21.4s, v6.4s + shl v20.4s, v21.4s, #1 + sri v20.4s, v21.4s, #31 +.long 0xce56b2e5 //sm3tt1a v5.4s, v23.4s, v22.4s[3] +.long 0xce40bae6 //sm3tt2a v6.4s, v23.4s, v0.4s[3] + // s4 = w7 | w8 | w9 | w10 + ext v0.16b, v2.16b, v3.16b, #12 + // vtmp1 = w3 | w4 | w5 | w6 + ext v22.16b, v1.16b, v2.16b, #12 + // vtmp2 = w10 | w11 | w12 | w13 + ext v23.16b, v3.16b, v4.16b, #8 +.long 0xce64c020 //sm3partw1 v0.4s, v1.4s, v4.4s +.long 0xce76c6e0 //sm3partw2 v0.4s, v23.4s, v22.4s + eor v22.16b, v1.16b, v2.16b +.long 0xce5418b7 //sm3ss1 v23.4s, v5.4s, v20.4s, v6.4s + shl v21.4s, v20.4s, #1 + sri v21.4s, v20.4s, #31 +.long 0xce5682e5 //sm3tt1a v5.4s, v23.4s, v22.4s[0] +.long 0xce418ae6 //sm3tt2a v6.4s, v23.4s, v1.4s[0] +.long 0xce5518b7 //sm3ss1 v23.4s, v5.4s, v21.4s, v6.4s + shl v20.4s, v21.4s, #1 + sri v20.4s, v21.4s, #31 +.long 0xce5692e5 //sm3tt1a v5.4s, v23.4s, v22.4s[1] +.long 0xce419ae6 //sm3tt2a v6.4s, v23.4s, v1.4s[1] +.long 0xce5418b7 //sm3ss1 v23.4s, v5.4s, v20.4s, v6.4s + shl v21.4s, v20.4s, #1 + sri v21.4s, v20.4s, #31 +.long 0xce56a2e5 //sm3tt1a v5.4s, v23.4s, v22.4s[2] +.long 0xce41aae6 //sm3tt2a v6.4s, v23.4s, v1.4s[2] +.long 0xce5518b7 //sm3ss1 v23.4s, v5.4s, v21.4s, v6.4s + shl v20.4s, v21.4s, #1 + sri v20.4s, v21.4s, #31 +.long 0xce56b2e5 //sm3tt1a v5.4s, v23.4s, v22.4s[3] +.long 0xce41bae6 //sm3tt2a v6.4s, v23.4s, v1.4s[3] + // s4 = w7 | w8 | w9 | w10 + ext v1.16b, v3.16b, v4.16b, #12 + // vtmp1 = w3 | w4 | w5 | w6 + ext v22.16b, v2.16b, v3.16b, #12 + // vtmp2 = w10 | w11 | w12 | w13 + ext v23.16b, v4.16b, v0.16b, #8 +.long 0xce60c041 //sm3partw1 v1.4s, v2.4s, v0.4s +.long 0xce76c6e1 //sm3partw2 v1.4s, v23.4s, v22.4s + eor v22.16b, v2.16b, v3.16b +.long 0xce5418b7 //sm3ss1 v23.4s, v5.4s, v20.4s, v6.4s + shl v21.4s, v20.4s, #1 + sri v21.4s, v20.4s, #31 +.long 0xce5682e5 //sm3tt1a v5.4s, v23.4s, v22.4s[0] +.long 0xce428ae6 //sm3tt2a v6.4s, v23.4s, v2.4s[0] +.long 0xce5518b7 //sm3ss1 v23.4s, v5.4s, v21.4s, v6.4s + shl v20.4s, v21.4s, #1 + sri v20.4s, v21.4s, #31 +.long 0xce5692e5 //sm3tt1a v5.4s, v23.4s, v22.4s[1] +.long 0xce429ae6 //sm3tt2a v6.4s, v23.4s, v2.4s[1] +.long 0xce5418b7 //sm3ss1 v23.4s, v5.4s, v20.4s, v6.4s + shl v21.4s, v20.4s, #1 + sri v21.4s, v20.4s, #31 +.long 0xce56a2e5 //sm3tt1a v5.4s, v23.4s, v22.4s[2] +.long 0xce42aae6 //sm3tt2a v6.4s, v23.4s, v2.4s[2] +.long 0xce5518b7 //sm3ss1 v23.4s, v5.4s, v21.4s, v6.4s + shl v20.4s, v21.4s, #1 + sri v20.4s, v21.4s, #31 +.long 0xce56b2e5 //sm3tt1a v5.4s, v23.4s, v22.4s[3] +.long 0xce42bae6 //sm3tt2a v6.4s, v23.4s, v2.4s[3] + // s4 = w7 | w8 | w9 | w10 + ext v2.16b, v4.16b, v0.16b, #12 + // vtmp1 = w3 | w4 | w5 | w6 + ext v22.16b, v3.16b, v4.16b, #12 + // vtmp2 = w10 | w11 | w12 | w13 + ext v23.16b, v0.16b, v1.16b, #8 +.long 0xce61c062 //sm3partw1 v2.4s, v3.4s, v1.4s +.long 0xce76c6e2 //sm3partw2 v2.4s, v23.4s, v22.4s + eor v22.16b, v3.16b, v4.16b +.long 0xce5418b7 //sm3ss1 v23.4s, v5.4s, v20.4s, v6.4s + shl v21.4s, v20.4s, #1 + sri v21.4s, v20.4s, #31 +.long 0xce5682e5 //sm3tt1a v5.4s, v23.4s, v22.4s[0] +.long 0xce438ae6 //sm3tt2a v6.4s, v23.4s, v3.4s[0] +.long 0xce5518b7 //sm3ss1 v23.4s, v5.4s, v21.4s, v6.4s + shl v20.4s, v21.4s, #1 + sri v20.4s, v21.4s, #31 +.long 0xce5692e5 //sm3tt1a v5.4s, v23.4s, v22.4s[1] +.long 0xce439ae6 //sm3tt2a v6.4s, v23.4s, v3.4s[1] +.long 0xce5418b7 //sm3ss1 v23.4s, v5.4s, v20.4s, v6.4s + shl v21.4s, v20.4s, #1 + sri v21.4s, v20.4s, #31 +.long 0xce56a2e5 //sm3tt1a v5.4s, v23.4s, v22.4s[2] +.long 0xce43aae6 //sm3tt2a v6.4s, v23.4s, v3.4s[2] +.long 0xce5518b7 //sm3ss1 v23.4s, v5.4s, v21.4s, v6.4s + shl v20.4s, v21.4s, #1 + sri v20.4s, v21.4s, #31 +.long 0xce56b2e5 //sm3tt1a v5.4s, v23.4s, v22.4s[3] +.long 0xce43bae6 //sm3tt2a v6.4s, v23.4s, v3.4s[3] + ext v20.16b, v17.16b, v17.16b, #4 + // s4 = w7 | w8 | w9 | w10 + ext v3.16b, v0.16b, v1.16b, #12 + // vtmp1 = w3 | w4 | w5 | w6 + ext v22.16b, v4.16b, v0.16b, #12 + // vtmp2 = w10 | w11 | w12 | w13 + ext v23.16b, v1.16b, v2.16b, #8 +.long 0xce62c083 //sm3partw1 v3.4s, v4.4s, v2.4s +.long 0xce76c6e3 //sm3partw2 v3.4s, v23.4s, v22.4s + eor v22.16b, v4.16b, v0.16b +.long 0xce5418b7 //sm3ss1 v23.4s, v5.4s, v20.4s, v6.4s + shl v21.4s, v20.4s, #1 + sri v21.4s, v20.4s, #31 +.long 0xce5686e5 //sm3tt1b v5.4s, v23.4s, v22.4s[0] +.long 0xce448ee6 //sm3tt2b v6.4s, v23.4s, v4.4s[0] +.long 0xce5518b7 //sm3ss1 v23.4s, v5.4s, v21.4s, v6.4s + shl v20.4s, v21.4s, #1 + sri v20.4s, v21.4s, #31 +.long 0xce5696e5 //sm3tt1b v5.4s, v23.4s, v22.4s[1] +.long 0xce449ee6 //sm3tt2b v6.4s, v23.4s, v4.4s[1] +.long 0xce5418b7 //sm3ss1 v23.4s, v5.4s, v20.4s, v6.4s + shl v21.4s, v20.4s, #1 + sri v21.4s, v20.4s, #31 +.long 0xce56a6e5 //sm3tt1b v5.4s, v23.4s, v22.4s[2] +.long 0xce44aee6 //sm3tt2b v6.4s, v23.4s, v4.4s[2] +.long 0xce5518b7 //sm3ss1 v23.4s, v5.4s, v21.4s, v6.4s + shl v20.4s, v21.4s, #1 + sri v20.4s, v21.4s, #31 +.long 0xce56b6e5 //sm3tt1b v5.4s, v23.4s, v22.4s[3] +.long 0xce44bee6 //sm3tt2b v6.4s, v23.4s, v4.4s[3] + // s4 = w7 | w8 | w9 | w10 + ext v4.16b, v1.16b, v2.16b, #12 + // vtmp1 = w3 | w4 | w5 | w6 + ext v22.16b, v0.16b, v1.16b, #12 + // vtmp2 = w10 | w11 | w12 | w13 + ext v23.16b, v2.16b, v3.16b, #8 +.long 0xce63c004 //sm3partw1 v4.4s, v0.4s, v3.4s +.long 0xce76c6e4 //sm3partw2 v4.4s, v23.4s, v22.4s + eor v22.16b, v0.16b, v1.16b +.long 0xce5418b7 //sm3ss1 v23.4s, v5.4s, v20.4s, v6.4s + shl v21.4s, v20.4s, #1 + sri v21.4s, v20.4s, #31 +.long 0xce5686e5 //sm3tt1b v5.4s, v23.4s, v22.4s[0] +.long 0xce408ee6 //sm3tt2b v6.4s, v23.4s, v0.4s[0] +.long 0xce5518b7 //sm3ss1 v23.4s, v5.4s, v21.4s, v6.4s + shl v20.4s, v21.4s, #1 + sri v20.4s, v21.4s, #31 +.long 0xce5696e5 //sm3tt1b v5.4s, v23.4s, v22.4s[1] +.long 0xce409ee6 //sm3tt2b v6.4s, v23.4s, v0.4s[1] +.long 0xce5418b7 //sm3ss1 v23.4s, v5.4s, v20.4s, v6.4s + shl v21.4s, v20.4s, #1 + sri v21.4s, v20.4s, #31 +.long 0xce56a6e5 //sm3tt1b v5.4s, v23.4s, v22.4s[2] +.long 0xce40aee6 //sm3tt2b v6.4s, v23.4s, v0.4s[2] +.long 0xce5518b7 //sm3ss1 v23.4s, v5.4s, v21.4s, v6.4s + shl v20.4s, v21.4s, #1 + sri v20.4s, v21.4s, #31 +.long 0xce56b6e5 //sm3tt1b v5.4s, v23.4s, v22.4s[3] +.long 0xce40bee6 //sm3tt2b v6.4s, v23.4s, v0.4s[3] + // s4 = w7 | w8 | w9 | w10 + ext v0.16b, v2.16b, v3.16b, #12 + // vtmp1 = w3 | w4 | w5 | w6 + ext v22.16b, v1.16b, v2.16b, #12 + // vtmp2 = w10 | w11 | w12 | w13 + ext v23.16b, v3.16b, v4.16b, #8 +.long 0xce64c020 //sm3partw1 v0.4s, v1.4s, v4.4s +.long 0xce76c6e0 //sm3partw2 v0.4s, v23.4s, v22.4s + eor v22.16b, v1.16b, v2.16b +.long 0xce5418b7 //sm3ss1 v23.4s, v5.4s, v20.4s, v6.4s + shl v21.4s, v20.4s, #1 + sri v21.4s, v20.4s, #31 +.long 0xce5686e5 //sm3tt1b v5.4s, v23.4s, v22.4s[0] +.long 0xce418ee6 //sm3tt2b v6.4s, v23.4s, v1.4s[0] +.long 0xce5518b7 //sm3ss1 v23.4s, v5.4s, v21.4s, v6.4s + shl v20.4s, v21.4s, #1 + sri v20.4s, v21.4s, #31 +.long 0xce5696e5 //sm3tt1b v5.4s, v23.4s, v22.4s[1] +.long 0xce419ee6 //sm3tt2b v6.4s, v23.4s, v1.4s[1] +.long 0xce5418b7 //sm3ss1 v23.4s, v5.4s, v20.4s, v6.4s + shl v21.4s, v20.4s, #1 + sri v21.4s, v20.4s, #31 +.long 0xce56a6e5 //sm3tt1b v5.4s, v23.4s, v22.4s[2] +.long 0xce41aee6 //sm3tt2b v6.4s, v23.4s, v1.4s[2] +.long 0xce5518b7 //sm3ss1 v23.4s, v5.4s, v21.4s, v6.4s + shl v20.4s, v21.4s, #1 + sri v20.4s, v21.4s, #31 +.long 0xce56b6e5 //sm3tt1b v5.4s, v23.4s, v22.4s[3] +.long 0xce41bee6 //sm3tt2b v6.4s, v23.4s, v1.4s[3] + // s4 = w7 | w8 | w9 | w10 + ext v1.16b, v3.16b, v4.16b, #12 + // vtmp1 = w3 | w4 | w5 | w6 + ext v22.16b, v2.16b, v3.16b, #12 + // vtmp2 = w10 | w11 | w12 | w13 + ext v23.16b, v4.16b, v0.16b, #8 +.long 0xce60c041 //sm3partw1 v1.4s, v2.4s, v0.4s +.long 0xce76c6e1 //sm3partw2 v1.4s, v23.4s, v22.4s + eor v22.16b, v2.16b, v3.16b +.long 0xce5418b7 //sm3ss1 v23.4s, v5.4s, v20.4s, v6.4s + shl v21.4s, v20.4s, #1 + sri v21.4s, v20.4s, #31 +.long 0xce5686e5 //sm3tt1b v5.4s, v23.4s, v22.4s[0] +.long 0xce428ee6 //sm3tt2b v6.4s, v23.4s, v2.4s[0] +.long 0xce5518b7 //sm3ss1 v23.4s, v5.4s, v21.4s, v6.4s + shl v20.4s, v21.4s, #1 + sri v20.4s, v21.4s, #31 +.long 0xce5696e5 //sm3tt1b v5.4s, v23.4s, v22.4s[1] +.long 0xce429ee6 //sm3tt2b v6.4s, v23.4s, v2.4s[1] +.long 0xce5418b7 //sm3ss1 v23.4s, v5.4s, v20.4s, v6.4s + shl v21.4s, v20.4s, #1 + sri v21.4s, v20.4s, #31 +.long 0xce56a6e5 //sm3tt1b v5.4s, v23.4s, v22.4s[2] +.long 0xce42aee6 //sm3tt2b v6.4s, v23.4s, v2.4s[2] +.long 0xce5518b7 //sm3ss1 v23.4s, v5.4s, v21.4s, v6.4s + shl v20.4s, v21.4s, #1 + sri v20.4s, v21.4s, #31 +.long 0xce56b6e5 //sm3tt1b v5.4s, v23.4s, v22.4s[3] +.long 0xce42bee6 //sm3tt2b v6.4s, v23.4s, v2.4s[3] + // s4 = w7 | w8 | w9 | w10 + ext v2.16b, v4.16b, v0.16b, #12 + // vtmp1 = w3 | w4 | w5 | w6 + ext v22.16b, v3.16b, v4.16b, #12 + // vtmp2 = w10 | w11 | w12 | w13 + ext v23.16b, v0.16b, v1.16b, #8 +.long 0xce61c062 //sm3partw1 v2.4s, v3.4s, v1.4s +.long 0xce76c6e2 //sm3partw2 v2.4s, v23.4s, v22.4s + eor v22.16b, v3.16b, v4.16b +.long 0xce5418b7 //sm3ss1 v23.4s, v5.4s, v20.4s, v6.4s + shl v21.4s, v20.4s, #1 + sri v21.4s, v20.4s, #31 +.long 0xce5686e5 //sm3tt1b v5.4s, v23.4s, v22.4s[0] +.long 0xce438ee6 //sm3tt2b v6.4s, v23.4s, v3.4s[0] +.long 0xce5518b7 //sm3ss1 v23.4s, v5.4s, v21.4s, v6.4s + shl v20.4s, v21.4s, #1 + sri v20.4s, v21.4s, #31 +.long 0xce5696e5 //sm3tt1b v5.4s, v23.4s, v22.4s[1] +.long 0xce439ee6 //sm3tt2b v6.4s, v23.4s, v3.4s[1] +.long 0xce5418b7 //sm3ss1 v23.4s, v5.4s, v20.4s, v6.4s + shl v21.4s, v20.4s, #1 + sri v21.4s, v20.4s, #31 +.long 0xce56a6e5 //sm3tt1b v5.4s, v23.4s, v22.4s[2] +.long 0xce43aee6 //sm3tt2b v6.4s, v23.4s, v3.4s[2] +.long 0xce5518b7 //sm3ss1 v23.4s, v5.4s, v21.4s, v6.4s + shl v20.4s, v21.4s, #1 + sri v20.4s, v21.4s, #31 +.long 0xce56b6e5 //sm3tt1b v5.4s, v23.4s, v22.4s[3] +.long 0xce43bee6 //sm3tt2b v6.4s, v23.4s, v3.4s[3] + // s4 = w7 | w8 | w9 | w10 + ext v3.16b, v0.16b, v1.16b, #12 + // vtmp1 = w3 | w4 | w5 | w6 + ext v22.16b, v4.16b, v0.16b, #12 + // vtmp2 = w10 | w11 | w12 | w13 + ext v23.16b, v1.16b, v2.16b, #8 +.long 0xce62c083 //sm3partw1 v3.4s, v4.4s, v2.4s +.long 0xce76c6e3 //sm3partw2 v3.4s, v23.4s, v22.4s + eor v22.16b, v4.16b, v0.16b +.long 0xce5418b7 //sm3ss1 v23.4s, v5.4s, v20.4s, v6.4s + shl v21.4s, v20.4s, #1 + sri v21.4s, v20.4s, #31 +.long 0xce5686e5 //sm3tt1b v5.4s, v23.4s, v22.4s[0] +.long 0xce448ee6 //sm3tt2b v6.4s, v23.4s, v4.4s[0] +.long 0xce5518b7 //sm3ss1 v23.4s, v5.4s, v21.4s, v6.4s + shl v20.4s, v21.4s, #1 + sri v20.4s, v21.4s, #31 +.long 0xce5696e5 //sm3tt1b v5.4s, v23.4s, v22.4s[1] +.long 0xce449ee6 //sm3tt2b v6.4s, v23.4s, v4.4s[1] +.long 0xce5418b7 //sm3ss1 v23.4s, v5.4s, v20.4s, v6.4s + shl v21.4s, v20.4s, #1 + sri v21.4s, v20.4s, #31 +.long 0xce56a6e5 //sm3tt1b v5.4s, v23.4s, v22.4s[2] +.long 0xce44aee6 //sm3tt2b v6.4s, v23.4s, v4.4s[2] +.long 0xce5518b7 //sm3ss1 v23.4s, v5.4s, v21.4s, v6.4s + shl v20.4s, v21.4s, #1 + sri v20.4s, v21.4s, #31 +.long 0xce56b6e5 //sm3tt1b v5.4s, v23.4s, v22.4s[3] +.long 0xce44bee6 //sm3tt2b v6.4s, v23.4s, v4.4s[3] + // s4 = w7 | w8 | w9 | w10 + ext v4.16b, v1.16b, v2.16b, #12 + // vtmp1 = w3 | w4 | w5 | w6 + ext v22.16b, v0.16b, v1.16b, #12 + // vtmp2 = w10 | w11 | w12 | w13 + ext v23.16b, v2.16b, v3.16b, #8 +.long 0xce63c004 //sm3partw1 v4.4s, v0.4s, v3.4s +.long 0xce76c6e4 //sm3partw2 v4.4s, v23.4s, v22.4s + eor v22.16b, v0.16b, v1.16b +.long 0xce5418b7 //sm3ss1 v23.4s, v5.4s, v20.4s, v6.4s + shl v21.4s, v20.4s, #1 + sri v21.4s, v20.4s, #31 +.long 0xce5686e5 //sm3tt1b v5.4s, v23.4s, v22.4s[0] +.long 0xce408ee6 //sm3tt2b v6.4s, v23.4s, v0.4s[0] +.long 0xce5518b7 //sm3ss1 v23.4s, v5.4s, v21.4s, v6.4s + shl v20.4s, v21.4s, #1 + sri v20.4s, v21.4s, #31 +.long 0xce5696e5 //sm3tt1b v5.4s, v23.4s, v22.4s[1] +.long 0xce409ee6 //sm3tt2b v6.4s, v23.4s, v0.4s[1] +.long 0xce5418b7 //sm3ss1 v23.4s, v5.4s, v20.4s, v6.4s + shl v21.4s, v20.4s, #1 + sri v21.4s, v20.4s, #31 +.long 0xce56a6e5 //sm3tt1b v5.4s, v23.4s, v22.4s[2] +.long 0xce40aee6 //sm3tt2b v6.4s, v23.4s, v0.4s[2] +.long 0xce5518b7 //sm3ss1 v23.4s, v5.4s, v21.4s, v6.4s + shl v20.4s, v21.4s, #1 + sri v20.4s, v21.4s, #31 +.long 0xce56b6e5 //sm3tt1b v5.4s, v23.4s, v22.4s[3] +.long 0xce40bee6 //sm3tt2b v6.4s, v23.4s, v0.4s[3] + // s4 = w7 | w8 | w9 | w10 + ext v0.16b, v2.16b, v3.16b, #12 + // vtmp1 = w3 | w4 | w5 | w6 + ext v22.16b, v1.16b, v2.16b, #12 + // vtmp2 = w10 | w11 | w12 | w13 + ext v23.16b, v3.16b, v4.16b, #8 +.long 0xce64c020 //sm3partw1 v0.4s, v1.4s, v4.4s +.long 0xce76c6e0 //sm3partw2 v0.4s, v23.4s, v22.4s + eor v22.16b, v1.16b, v2.16b +.long 0xce5418b7 //sm3ss1 v23.4s, v5.4s, v20.4s, v6.4s + shl v21.4s, v20.4s, #1 + sri v21.4s, v20.4s, #31 +.long 0xce5686e5 //sm3tt1b v5.4s, v23.4s, v22.4s[0] +.long 0xce418ee6 //sm3tt2b v6.4s, v23.4s, v1.4s[0] +.long 0xce5518b7 //sm3ss1 v23.4s, v5.4s, v21.4s, v6.4s + shl v20.4s, v21.4s, #1 + sri v20.4s, v21.4s, #31 +.long 0xce5696e5 //sm3tt1b v5.4s, v23.4s, v22.4s[1] +.long 0xce419ee6 //sm3tt2b v6.4s, v23.4s, v1.4s[1] +.long 0xce5418b7 //sm3ss1 v23.4s, v5.4s, v20.4s, v6.4s + shl v21.4s, v20.4s, #1 + sri v21.4s, v20.4s, #31 +.long 0xce56a6e5 //sm3tt1b v5.4s, v23.4s, v22.4s[2] +.long 0xce41aee6 //sm3tt2b v6.4s, v23.4s, v1.4s[2] +.long 0xce5518b7 //sm3ss1 v23.4s, v5.4s, v21.4s, v6.4s + shl v20.4s, v21.4s, #1 + sri v20.4s, v21.4s, #31 +.long 0xce56b6e5 //sm3tt1b v5.4s, v23.4s, v22.4s[3] +.long 0xce41bee6 //sm3tt2b v6.4s, v23.4s, v1.4s[3] + // s4 = w7 | w8 | w9 | w10 + ext v1.16b, v3.16b, v4.16b, #12 + // vtmp1 = w3 | w4 | w5 | w6 + ext v22.16b, v2.16b, v3.16b, #12 + // vtmp2 = w10 | w11 | w12 | w13 + ext v23.16b, v4.16b, v0.16b, #8 +.long 0xce60c041 //sm3partw1 v1.4s, v2.4s, v0.4s +.long 0xce76c6e1 //sm3partw2 v1.4s, v23.4s, v22.4s + eor v22.16b, v2.16b, v3.16b +.long 0xce5418b7 //sm3ss1 v23.4s, v5.4s, v20.4s, v6.4s + shl v21.4s, v20.4s, #1 + sri v21.4s, v20.4s, #31 +.long 0xce5686e5 //sm3tt1b v5.4s, v23.4s, v22.4s[0] +.long 0xce428ee6 //sm3tt2b v6.4s, v23.4s, v2.4s[0] +.long 0xce5518b7 //sm3ss1 v23.4s, v5.4s, v21.4s, v6.4s + shl v20.4s, v21.4s, #1 + sri v20.4s, v21.4s, #31 +.long 0xce5696e5 //sm3tt1b v5.4s, v23.4s, v22.4s[1] +.long 0xce429ee6 //sm3tt2b v6.4s, v23.4s, v2.4s[1] +.long 0xce5418b7 //sm3ss1 v23.4s, v5.4s, v20.4s, v6.4s + shl v21.4s, v20.4s, #1 + sri v21.4s, v20.4s, #31 +.long 0xce56a6e5 //sm3tt1b v5.4s, v23.4s, v22.4s[2] +.long 0xce42aee6 //sm3tt2b v6.4s, v23.4s, v2.4s[2] +.long 0xce5518b7 //sm3ss1 v23.4s, v5.4s, v21.4s, v6.4s + shl v20.4s, v21.4s, #1 + sri v20.4s, v21.4s, #31 +.long 0xce56b6e5 //sm3tt1b v5.4s, v23.4s, v22.4s[3] +.long 0xce42bee6 //sm3tt2b v6.4s, v23.4s, v2.4s[3] + eor v22.16b, v3.16b, v4.16b +.long 0xce5418b7 //sm3ss1 v23.4s, v5.4s, v20.4s, v6.4s + shl v21.4s, v20.4s, #1 + sri v21.4s, v20.4s, #31 +.long 0xce5686e5 //sm3tt1b v5.4s, v23.4s, v22.4s[0] +.long 0xce438ee6 //sm3tt2b v6.4s, v23.4s, v3.4s[0] +.long 0xce5518b7 //sm3ss1 v23.4s, v5.4s, v21.4s, v6.4s + shl v20.4s, v21.4s, #1 + sri v20.4s, v21.4s, #31 +.long 0xce5696e5 //sm3tt1b v5.4s, v23.4s, v22.4s[1] +.long 0xce439ee6 //sm3tt2b v6.4s, v23.4s, v3.4s[1] +.long 0xce5418b7 //sm3ss1 v23.4s, v5.4s, v20.4s, v6.4s + shl v21.4s, v20.4s, #1 + sri v21.4s, v20.4s, #31 +.long 0xce56a6e5 //sm3tt1b v5.4s, v23.4s, v22.4s[2] +.long 0xce43aee6 //sm3tt2b v6.4s, v23.4s, v3.4s[2] +.long 0xce5518b7 //sm3ss1 v23.4s, v5.4s, v21.4s, v6.4s + shl v20.4s, v21.4s, #1 + sri v20.4s, v21.4s, #31 +.long 0xce56b6e5 //sm3tt1b v5.4s, v23.4s, v22.4s[3] +.long 0xce43bee6 //sm3tt2b v6.4s, v23.4s, v3.4s[3] + eor v22.16b, v4.16b, v0.16b +.long 0xce5418b7 //sm3ss1 v23.4s, v5.4s, v20.4s, v6.4s + shl v21.4s, v20.4s, #1 + sri v21.4s, v20.4s, #31 +.long 0xce5686e5 //sm3tt1b v5.4s, v23.4s, v22.4s[0] +.long 0xce448ee6 //sm3tt2b v6.4s, v23.4s, v4.4s[0] +.long 0xce5518b7 //sm3ss1 v23.4s, v5.4s, v21.4s, v6.4s + shl v20.4s, v21.4s, #1 + sri v20.4s, v21.4s, #31 +.long 0xce5696e5 //sm3tt1b v5.4s, v23.4s, v22.4s[1] +.long 0xce449ee6 //sm3tt2b v6.4s, v23.4s, v4.4s[1] +.long 0xce5418b7 //sm3ss1 v23.4s, v5.4s, v20.4s, v6.4s + shl v21.4s, v20.4s, #1 + sri v21.4s, v20.4s, #31 +.long 0xce56a6e5 //sm3tt1b v5.4s, v23.4s, v22.4s[2] +.long 0xce44aee6 //sm3tt2b v6.4s, v23.4s, v4.4s[2] +.long 0xce5518b7 //sm3ss1 v23.4s, v5.4s, v21.4s, v6.4s + shl v20.4s, v21.4s, #1 + sri v20.4s, v21.4s, #31 +.long 0xce56b6e5 //sm3tt1b v5.4s, v23.4s, v22.4s[3] +.long 0xce44bee6 //sm3tt2b v6.4s, v23.4s, v4.4s[3] + eor v22.16b, v0.16b, v1.16b +.long 0xce5418b7 //sm3ss1 v23.4s, v5.4s, v20.4s, v6.4s + shl v21.4s, v20.4s, #1 + sri v21.4s, v20.4s, #31 +.long 0xce5686e5 //sm3tt1b v5.4s, v23.4s, v22.4s[0] +.long 0xce408ee6 //sm3tt2b v6.4s, v23.4s, v0.4s[0] +.long 0xce5518b7 //sm3ss1 v23.4s, v5.4s, v21.4s, v6.4s + shl v20.4s, v21.4s, #1 + sri v20.4s, v21.4s, #31 +.long 0xce5696e5 //sm3tt1b v5.4s, v23.4s, v22.4s[1] +.long 0xce409ee6 //sm3tt2b v6.4s, v23.4s, v0.4s[1] +.long 0xce5418b7 //sm3ss1 v23.4s, v5.4s, v20.4s, v6.4s + shl v21.4s, v20.4s, #1 + sri v21.4s, v20.4s, #31 +.long 0xce56a6e5 //sm3tt1b v5.4s, v23.4s, v22.4s[2] +.long 0xce40aee6 //sm3tt2b v6.4s, v23.4s, v0.4s[2] +.long 0xce5518b7 //sm3ss1 v23.4s, v5.4s, v21.4s, v6.4s + shl v20.4s, v21.4s, #1 + sri v20.4s, v21.4s, #31 +.long 0xce56b6e5 //sm3tt1b v5.4s, v23.4s, v22.4s[3] +.long 0xce40bee6 //sm3tt2b v6.4s, v23.4s, v0.4s[3] + eor v5.16b, v5.16b, v18.16b + eor v6.16b, v6.16b, v19.16b + + // any remained blocks? + cbnz w2, Loop + + // save state + rev64 v5.4s, v5.4s + rev64 v6.4s, v6.4s + ext v5.16b, v5.16b, v5.16b, #8 + ext v6.16b, v6.16b, v6.16b, #8 + st1 {v5.4s,v6.4s}, [x0] + ret + + + +.align 3 +_sm3_consts: +.Tj: +.word 0x79cc4519, 0x9d8a7a87 + diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/crypto/sm4/sm4-armv8.S b/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/crypto/sm4/sm4-armv8.S new file mode 100644 index 00000000000000..b8475bc5c4315b --- /dev/null +++ b/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/crypto/sm4/sm4-armv8.S @@ -0,0 +1,1092 @@ +// Copyright 2022-2025 The OpenSSL Project Authors. All Rights Reserved. +// +// Licensed under the Apache License 2.0 (the "License"). You may not use +// this file except in compliance with the License. You can obtain a copy +// in the file LICENSE in the source distribution or at +// https://www.openssl.org/source/license.html + +// +// This module implements support for SM4 hw support on aarch64 +// Oct 2021 +// + +// $output is the last argument if it looks like a file (it has an extension) +// $flavour is the first argument if it doesn't look like a file +#include "arm_arch.h" + +.text + +.section __TEXT,__const + +.align 6 +_sm4_v8_consts: +Lck: +.long 0x00070E15, 0x1C232A31, 0x383F464D, 0x545B6269 +.long 0x70777E85, 0x8C939AA1, 0xA8AFB6BD, 0xC4CBD2D9 +.long 0xE0E7EEF5, 0xFC030A11, 0x181F262D, 0x343B4249 +.long 0x50575E65, 0x6C737A81, 0x888F969D, 0xA4ABB2B9 +.long 0xC0C7CED5, 0xDCE3EAF1, 0xF8FF060D, 0x141B2229 +.long 0x30373E45, 0x4C535A61, 0x686F767D, 0x848B9299 +.long 0xA0A7AEB5, 0xBCC3CAD1, 0xD8DFE6ED, 0xF4FB0209 +.long 0x10171E25, 0x2C333A41, 0x484F565D, 0x646B7279 +Lfk: +.long 0xa3b1bac6, 0x56aa3350, 0x677d9197, 0xb27022dc + +.previous + +.globl _sm4_v8_set_encrypt_key + +.align 5 +_sm4_v8_set_encrypt_key: + AARCH64_VALID_CALL_TARGET + ld1 {v0.4s},[x0] + adrp x2,Lfk@PAGE + add x2,x2,Lfk@PAGEOFF + ld1 {v24.4s},[x2] + adrp x2,Lck@PAGE + add x2,x2,Lck@PAGEOFF + ld1 {v16.4s,v17.4s,v18.4s,v19.4s},[x2],64 +#ifndef __AARCH64EB__ + rev32 v0.16b,v0.16b +#endif + ld1 {v20.4s,v21.4s,v22.4s,v23.4s},[x2] + eor v0.16b,v0.16b,v24.16b; +.long 0xce70c800 //sm4ekey v0.4S,v0.4S,v16.4S +.long 0xce71c801 //sm4ekey v1.4S,v0.4S,v17.4S +.long 0xce72c822 //sm4ekey v2.4S,v1.4S,v18.4S +.long 0xce73c843 //sm4ekey v3.4S,v2.4S,v19.4S +.long 0xce74c864 //sm4ekey v4.4S,v3.4S,v20.4S + st1 {v0.4s,v1.4s,v2.4s,v3.4s},[x1],64 +.long 0xce75c885 //sm4ekey v5.4S,v4.4S,v21.4S +.long 0xce76c8a6 //sm4ekey v6.4S,v5.4S,v22.4S +.long 0xce77c8c7 //sm4ekey v7.4S,v6.4S,v23.4S + st1 {v4.4s,v5.4s,v6.4s,v7.4s},[x1] + ret + +.globl _sm4_v8_set_decrypt_key + +.align 5 +_sm4_v8_set_decrypt_key: + AARCH64_VALID_CALL_TARGET + ld1 {v7.4s},[x0] + adrp x2,Lfk@PAGE + add x2,x2,Lfk@PAGEOFF + ld1 {v24.4s},[x2] + adrp x2,Lck@PAGE + add x2,x2,Lck@PAGEOFF + ld1 {v16.4s,v17.4s,v18.4s,v19.4s},[x2],64 +#ifndef __AARCH64EB__ + rev32 v7.16b,v7.16b +#endif + ld1 {v20.4s,v21.4s,v22.4s,v23.4s},[x2] + eor v7.16b, v7.16b,v24.16b; +.long 0xce70c8e7 //sm4ekey v7.4S,v7.4S,v16.4S +.long 0xce71c8e6 //sm4ekey v6.4S,v7.4S,v17.4S +.long 0xce72c8c5 //sm4ekey v5.4S,v6.4S,v18.4S + rev64 v7.4s,v7.4s + rev64 v6.4s,v6.4s + ext v7.16b,v7.16b,v7.16b,#8 + ext v6.16b,v6.16b,v6.16b,#8 +.long 0xce73c8a4 //sm4ekey v4.4S,v5.4S,v19.4S +.long 0xce74c883 //sm4ekey v3.4S,v4.4S,v20.4S + rev64 v5.4s,v5.4s + rev64 v4.4s,v4.4s + ext v5.16b,v5.16b,v5.16b,#8 + ext v4.16b,v4.16b,v4.16b,#8 +.long 0xce75c862 //sm4ekey v2.4S,v3.4S,v21.4S +.long 0xce76c841 //sm4ekey v1.4S,v2.4S,v22.4S + rev64 v3.4s,v3.4s + rev64 v2.4s,v2.4s + ext v3.16b,v3.16b,v3.16b,#8 + ext v2.16b,v2.16b,v2.16b,#8 +.long 0xce77c820 //sm4ekey v0.4S,v1.4S,v23.4S + rev64 v1.4s, v1.4s + rev64 v0.4s, v0.4s + ext v1.16b,v1.16b,v1.16b,#8 + ext v0.16b,v0.16b,v0.16b,#8 + st1 {v0.4s,v1.4s,v2.4s,v3.4s},[x1],64 + st1 {v4.4s,v5.4s,v6.4s,v7.4s},[x1] + ret + +.globl _sm4_v8_encrypt + +.align 5 +_sm4_v8_encrypt: + AARCH64_VALID_CALL_TARGET + ld1 {v16.4s},[x0] + ld1 {v0.4s,v1.4s,v2.4s,v3.4s},[x2],64 + ld1 {v4.4s,v5.4s,v6.4s,v7.4s},[x2] +#ifndef __AARCH64EB__ + rev32 v16.16b,v16.16b +#endif +.long 0xcec08410 //sm4e v16.4s,v0.4s +.long 0xcec08430 //sm4e v16.4s,v1.4s +.long 0xcec08450 //sm4e v16.4s,v2.4s +.long 0xcec08470 //sm4e v16.4s,v3.4s +.long 0xcec08490 //sm4e v16.4s,v4.4s +.long 0xcec084b0 //sm4e v16.4s,v5.4s +.long 0xcec084d0 //sm4e v16.4s,v6.4s +.long 0xcec084f0 //sm4e v16.4s,v7.4s + rev64 v16.4S,v16.4S + ext v16.16b,v16.16b,v16.16b,#8 +#ifndef __AARCH64EB__ + rev32 v16.16b,v16.16b +#endif + st1 {v16.4s},[x1] + ret + +.globl _sm4_v8_decrypt + +.align 5 +_sm4_v8_decrypt: + AARCH64_VALID_CALL_TARGET + ld1 {v16.4s},[x0] + ld1 {v0.4s,v1.4s,v2.4s,v3.4s},[x2],64 + ld1 {v4.4s,v5.4s,v6.4s,v7.4s},[x2] +#ifndef __AARCH64EB__ + rev32 v16.16b,v16.16b +#endif +.long 0xcec08410 //sm4e v16.4s,v0.4s +.long 0xcec08430 //sm4e v16.4s,v1.4s +.long 0xcec08450 //sm4e v16.4s,v2.4s +.long 0xcec08470 //sm4e v16.4s,v3.4s +.long 0xcec08490 //sm4e v16.4s,v4.4s +.long 0xcec084b0 //sm4e v16.4s,v5.4s +.long 0xcec084d0 //sm4e v16.4s,v6.4s +.long 0xcec084f0 //sm4e v16.4s,v7.4s + rev64 v16.4S,v16.4S + ext v16.16b,v16.16b,v16.16b,#8 +#ifndef __AARCH64EB__ + rev32 v16.16b,v16.16b +#endif + st1 {v16.4s},[x1] + ret + +.globl _sm4_v8_ecb_encrypt + +.align 5 +_sm4_v8_ecb_encrypt: + AARCH64_VALID_CALL_TARGET + ld1 {v0.4s,v1.4s,v2.4s,v3.4s},[x3],#64 + ld1 {v4.4s,v5.4s,v6.4s,v7.4s},[x3] +1: + cmp x2,#64 + b.lt 1f + ld1 {v16.4s,v17.4s,v18.4s,v19.4s},[x0],#64 + cmp x2,#128 + b.lt 2f + ld1 {v20.4s,v21.4s,v22.4s,v23.4s},[x0],#64 + // 8 blocks +#ifndef __AARCH64EB__ + rev32 v16.16b,v16.16b +#endif +#ifndef __AARCH64EB__ + rev32 v17.16b,v17.16b +#endif +#ifndef __AARCH64EB__ + rev32 v18.16b,v18.16b +#endif +#ifndef __AARCH64EB__ + rev32 v19.16b,v19.16b +#endif +#ifndef __AARCH64EB__ + rev32 v20.16b,v20.16b +#endif +#ifndef __AARCH64EB__ + rev32 v21.16b,v21.16b +#endif +#ifndef __AARCH64EB__ + rev32 v22.16b,v22.16b +#endif +#ifndef __AARCH64EB__ + rev32 v23.16b,v23.16b +#endif +.long 0xcec08410 //sm4e v16.4s,v0.4s +.long 0xcec08411 //sm4e v17.4s,v0.4s +.long 0xcec08412 //sm4e v18.4s,v0.4s +.long 0xcec08413 //sm4e v19.4s,v0.4s + +.long 0xcec08430 //sm4e v16.4s,v1.4s +.long 0xcec08431 //sm4e v17.4s,v1.4s +.long 0xcec08432 //sm4e v18.4s,v1.4s +.long 0xcec08433 //sm4e v19.4s,v1.4s + +.long 0xcec08450 //sm4e v16.4s,v2.4s +.long 0xcec08451 //sm4e v17.4s,v2.4s +.long 0xcec08452 //sm4e v18.4s,v2.4s +.long 0xcec08453 //sm4e v19.4s,v2.4s + +.long 0xcec08470 //sm4e v16.4s,v3.4s +.long 0xcec08471 //sm4e v17.4s,v3.4s +.long 0xcec08472 //sm4e v18.4s,v3.4s +.long 0xcec08473 //sm4e v19.4s,v3.4s + +.long 0xcec08490 //sm4e v16.4s,v4.4s +.long 0xcec08491 //sm4e v17.4s,v4.4s +.long 0xcec08492 //sm4e v18.4s,v4.4s +.long 0xcec08493 //sm4e v19.4s,v4.4s + +.long 0xcec084b0 //sm4e v16.4s,v5.4s +.long 0xcec084b1 //sm4e v17.4s,v5.4s +.long 0xcec084b2 //sm4e v18.4s,v5.4s +.long 0xcec084b3 //sm4e v19.4s,v5.4s + +.long 0xcec084d0 //sm4e v16.4s,v6.4s +.long 0xcec084d1 //sm4e v17.4s,v6.4s +.long 0xcec084d2 //sm4e v18.4s,v6.4s +.long 0xcec084d3 //sm4e v19.4s,v6.4s + +.long 0xcec084f0 //sm4e v16.4s,v7.4s + rev64 v16.4S,v16.4S +.long 0xcec084f1 //sm4e v17.4s,v7.4s + ext v16.16b,v16.16b,v16.16b,#8 + rev64 v17.4S,v17.4S +.long 0xcec084f2 //sm4e v18.4s,v7.4s + ext v17.16b,v17.16b,v17.16b,#8 + rev64 v18.4S,v18.4S +.long 0xcec084f3 //sm4e v19.4s,v7.4s + ext v18.16b,v18.16b,v18.16b,#8 + rev64 v19.4S,v19.4S + ext v19.16b,v19.16b,v19.16b,#8 +.long 0xcec08414 //sm4e v20.4s,v0.4s +.long 0xcec08415 //sm4e v21.4s,v0.4s +.long 0xcec08416 //sm4e v22.4s,v0.4s +.long 0xcec08417 //sm4e v23.4s,v0.4s + +.long 0xcec08434 //sm4e v20.4s,v1.4s +.long 0xcec08435 //sm4e v21.4s,v1.4s +.long 0xcec08436 //sm4e v22.4s,v1.4s +.long 0xcec08437 //sm4e v23.4s,v1.4s + +.long 0xcec08454 //sm4e v20.4s,v2.4s +.long 0xcec08455 //sm4e v21.4s,v2.4s +.long 0xcec08456 //sm4e v22.4s,v2.4s +.long 0xcec08457 //sm4e v23.4s,v2.4s + +.long 0xcec08474 //sm4e v20.4s,v3.4s +.long 0xcec08475 //sm4e v21.4s,v3.4s +.long 0xcec08476 //sm4e v22.4s,v3.4s +.long 0xcec08477 //sm4e v23.4s,v3.4s + +.long 0xcec08494 //sm4e v20.4s,v4.4s +.long 0xcec08495 //sm4e v21.4s,v4.4s +.long 0xcec08496 //sm4e v22.4s,v4.4s +.long 0xcec08497 //sm4e v23.4s,v4.4s + +.long 0xcec084b4 //sm4e v20.4s,v5.4s +.long 0xcec084b5 //sm4e v21.4s,v5.4s +.long 0xcec084b6 //sm4e v22.4s,v5.4s +.long 0xcec084b7 //sm4e v23.4s,v5.4s + +.long 0xcec084d4 //sm4e v20.4s,v6.4s +.long 0xcec084d5 //sm4e v21.4s,v6.4s +.long 0xcec084d6 //sm4e v22.4s,v6.4s +.long 0xcec084d7 //sm4e v23.4s,v6.4s + +.long 0xcec084f4 //sm4e v20.4s,v7.4s + rev64 v20.4S,v20.4S +.long 0xcec084f5 //sm4e v21.4s,v7.4s + ext v20.16b,v20.16b,v20.16b,#8 + rev64 v21.4S,v21.4S +.long 0xcec084f6 //sm4e v22.4s,v7.4s + ext v21.16b,v21.16b,v21.16b,#8 + rev64 v22.4S,v22.4S +.long 0xcec084f7 //sm4e v23.4s,v7.4s + ext v22.16b,v22.16b,v22.16b,#8 + rev64 v23.4S,v23.4S + ext v23.16b,v23.16b,v23.16b,#8 +#ifndef __AARCH64EB__ + rev32 v16.16b,v16.16b +#endif +#ifndef __AARCH64EB__ + rev32 v17.16b,v17.16b +#endif +#ifndef __AARCH64EB__ + rev32 v18.16b,v18.16b +#endif +#ifndef __AARCH64EB__ + rev32 v19.16b,v19.16b +#endif +#ifndef __AARCH64EB__ + rev32 v20.16b,v20.16b +#endif +#ifndef __AARCH64EB__ + rev32 v21.16b,v21.16b +#endif + st1 {v16.4s,v17.4s,v18.4s,v19.4s},[x1],#64 +#ifndef __AARCH64EB__ + rev32 v22.16b,v22.16b +#endif +#ifndef __AARCH64EB__ + rev32 v23.16b,v23.16b +#endif + st1 {v20.4s,v21.4s,v22.4s,v23.4s},[x1],#64 + subs x2,x2,#128 + b.gt 1b + ret + // 4 blocks +2: +#ifndef __AARCH64EB__ + rev32 v16.16b,v16.16b +#endif +#ifndef __AARCH64EB__ + rev32 v17.16b,v17.16b +#endif +#ifndef __AARCH64EB__ + rev32 v18.16b,v18.16b +#endif +#ifndef __AARCH64EB__ + rev32 v19.16b,v19.16b +#endif +.long 0xcec08410 //sm4e v16.4s,v0.4s +.long 0xcec08411 //sm4e v17.4s,v0.4s +.long 0xcec08412 //sm4e v18.4s,v0.4s +.long 0xcec08413 //sm4e v19.4s,v0.4s + +.long 0xcec08430 //sm4e v16.4s,v1.4s +.long 0xcec08431 //sm4e v17.4s,v1.4s +.long 0xcec08432 //sm4e v18.4s,v1.4s +.long 0xcec08433 //sm4e v19.4s,v1.4s + +.long 0xcec08450 //sm4e v16.4s,v2.4s +.long 0xcec08451 //sm4e v17.4s,v2.4s +.long 0xcec08452 //sm4e v18.4s,v2.4s +.long 0xcec08453 //sm4e v19.4s,v2.4s + +.long 0xcec08470 //sm4e v16.4s,v3.4s +.long 0xcec08471 //sm4e v17.4s,v3.4s +.long 0xcec08472 //sm4e v18.4s,v3.4s +.long 0xcec08473 //sm4e v19.4s,v3.4s + +.long 0xcec08490 //sm4e v16.4s,v4.4s +.long 0xcec08491 //sm4e v17.4s,v4.4s +.long 0xcec08492 //sm4e v18.4s,v4.4s +.long 0xcec08493 //sm4e v19.4s,v4.4s + +.long 0xcec084b0 //sm4e v16.4s,v5.4s +.long 0xcec084b1 //sm4e v17.4s,v5.4s +.long 0xcec084b2 //sm4e v18.4s,v5.4s +.long 0xcec084b3 //sm4e v19.4s,v5.4s + +.long 0xcec084d0 //sm4e v16.4s,v6.4s +.long 0xcec084d1 //sm4e v17.4s,v6.4s +.long 0xcec084d2 //sm4e v18.4s,v6.4s +.long 0xcec084d3 //sm4e v19.4s,v6.4s + +.long 0xcec084f0 //sm4e v16.4s,v7.4s + rev64 v16.4S,v16.4S +.long 0xcec084f1 //sm4e v17.4s,v7.4s + ext v16.16b,v16.16b,v16.16b,#8 + rev64 v17.4S,v17.4S +.long 0xcec084f2 //sm4e v18.4s,v7.4s + ext v17.16b,v17.16b,v17.16b,#8 + rev64 v18.4S,v18.4S +.long 0xcec084f3 //sm4e v19.4s,v7.4s + ext v18.16b,v18.16b,v18.16b,#8 + rev64 v19.4S,v19.4S + ext v19.16b,v19.16b,v19.16b,#8 +#ifndef __AARCH64EB__ + rev32 v16.16b,v16.16b +#endif +#ifndef __AARCH64EB__ + rev32 v17.16b,v17.16b +#endif +#ifndef __AARCH64EB__ + rev32 v18.16b,v18.16b +#endif +#ifndef __AARCH64EB__ + rev32 v19.16b,v19.16b +#endif + st1 {v16.4s,v17.4s,v18.4s,v19.4s},[x1],#64 + subs x2,x2,#64 + b.gt 1b +1: + subs x2,x2,#16 + b.lt 1f + ld1 {v16.4s},[x0],#16 +#ifndef __AARCH64EB__ + rev32 v16.16b,v16.16b +#endif +.long 0xcec08410 //sm4e v16.4s,v0.4s +.long 0xcec08430 //sm4e v16.4s,v1.4s +.long 0xcec08450 //sm4e v16.4s,v2.4s +.long 0xcec08470 //sm4e v16.4s,v3.4s +.long 0xcec08490 //sm4e v16.4s,v4.4s +.long 0xcec084b0 //sm4e v16.4s,v5.4s +.long 0xcec084d0 //sm4e v16.4s,v6.4s +.long 0xcec084f0 //sm4e v16.4s,v7.4s + rev64 v16.4S,v16.4S + ext v16.16b,v16.16b,v16.16b,#8 +#ifndef __AARCH64EB__ + rev32 v16.16b,v16.16b +#endif + st1 {v16.4s},[x1],#16 + b.ne 1b +1: + ret + +.globl _sm4_v8_cbc_encrypt + +.align 5 +_sm4_v8_cbc_encrypt: + AARCH64_VALID_CALL_TARGET + stp d8,d9,[sp, #-16]! + + ld1 {v0.4s,v1.4s,v2.4s,v3.4s},[x3],#64 + ld1 {v4.4s,v5.4s,v6.4s,v7.4s},[x3] + ld1 {v8.4s},[x4] + cmp w5,#0 + b.eq Ldec +1: + cmp x2, #64 + b.lt 1f + ld1 {v16.4s,v17.4s,v18.4s,v19.4s},[x0],#64 + eor v16.16b,v16.16b,v8.16b +#ifndef __AARCH64EB__ + rev32 v17.16b,v17.16b +#endif +#ifndef __AARCH64EB__ + rev32 v16.16b,v16.16b +#endif +#ifndef __AARCH64EB__ + rev32 v18.16b,v18.16b +#endif +#ifndef __AARCH64EB__ + rev32 v19.16b,v19.16b +#endif +.long 0xcec08410 //sm4e v16.4s,v0.4s +.long 0xcec08430 //sm4e v16.4s,v1.4s +.long 0xcec08450 //sm4e v16.4s,v2.4s +.long 0xcec08470 //sm4e v16.4s,v3.4s +.long 0xcec08490 //sm4e v16.4s,v4.4s +.long 0xcec084b0 //sm4e v16.4s,v5.4s +.long 0xcec084d0 //sm4e v16.4s,v6.4s +.long 0xcec084f0 //sm4e v16.4s,v7.4s + rev64 v16.4S,v16.4S + ext v16.16b,v16.16b,v16.16b,#8 + eor v17.16b,v17.16b,v16.16b +.long 0xcec08411 //sm4e v17.4s,v0.4s +.long 0xcec08431 //sm4e v17.4s,v1.4s +.long 0xcec08451 //sm4e v17.4s,v2.4s +.long 0xcec08471 //sm4e v17.4s,v3.4s +.long 0xcec08491 //sm4e v17.4s,v4.4s +.long 0xcec084b1 //sm4e v17.4s,v5.4s +.long 0xcec084d1 //sm4e v17.4s,v6.4s +.long 0xcec084f1 //sm4e v17.4s,v7.4s + rev64 v17.4S,v17.4S + ext v17.16b,v17.16b,v17.16b,#8 +#ifndef __AARCH64EB__ + rev32 v16.16b,v16.16b +#endif + eor v18.16b,v18.16b,v17.16b +.long 0xcec08412 //sm4e v18.4s,v0.4s +.long 0xcec08432 //sm4e v18.4s,v1.4s +.long 0xcec08452 //sm4e v18.4s,v2.4s +.long 0xcec08472 //sm4e v18.4s,v3.4s +.long 0xcec08492 //sm4e v18.4s,v4.4s +.long 0xcec084b2 //sm4e v18.4s,v5.4s +.long 0xcec084d2 //sm4e v18.4s,v6.4s +.long 0xcec084f2 //sm4e v18.4s,v7.4s + rev64 v18.4S,v18.4S + ext v18.16b,v18.16b,v18.16b,#8 +#ifndef __AARCH64EB__ + rev32 v17.16b,v17.16b +#endif + eor v19.16b,v19.16b,v18.16b +.long 0xcec08413 //sm4e v19.4s,v0.4s +.long 0xcec08433 //sm4e v19.4s,v1.4s +.long 0xcec08453 //sm4e v19.4s,v2.4s +.long 0xcec08473 //sm4e v19.4s,v3.4s +.long 0xcec08493 //sm4e v19.4s,v4.4s +.long 0xcec084b3 //sm4e v19.4s,v5.4s +.long 0xcec084d3 //sm4e v19.4s,v6.4s +.long 0xcec084f3 //sm4e v19.4s,v7.4s + rev64 v19.4S,v19.4S + ext v19.16b,v19.16b,v19.16b,#8 +#ifndef __AARCH64EB__ + rev32 v18.16b,v18.16b +#endif +#ifndef __AARCH64EB__ + rev32 v19.16b,v19.16b +#endif + mov v8.16b,v19.16b + st1 {v16.4s,v17.4s,v18.4s,v19.4s},[x1],#64 + subs x2,x2,#64 + b.ne 1b +1: + subs x2,x2,#16 + b.lt 3f + ld1 {v16.4s},[x0],#16 + eor v8.16b,v8.16b,v16.16b +#ifndef __AARCH64EB__ + rev32 v8.16b,v8.16b +#endif +.long 0xcec08408 //sm4e v8.4s,v0.4s +.long 0xcec08428 //sm4e v8.4s,v1.4s +.long 0xcec08448 //sm4e v8.4s,v2.4s +.long 0xcec08468 //sm4e v8.4s,v3.4s +.long 0xcec08488 //sm4e v8.4s,v4.4s +.long 0xcec084a8 //sm4e v8.4s,v5.4s +.long 0xcec084c8 //sm4e v8.4s,v6.4s +.long 0xcec084e8 //sm4e v8.4s,v7.4s + rev64 v8.4S,v8.4S + ext v8.16b,v8.16b,v8.16b,#8 +#ifndef __AARCH64EB__ + rev32 v8.16b,v8.16b +#endif + st1 {v8.4s},[x1],#16 + b.ne 1b + b 3f +Ldec: +1: + cmp x2, #64 + b.lt 1f + ld1 {v16.4s,v17.4s,v18.4s,v19.4s},[x0] + ld1 {v24.4s,v25.4s,v26.4s,v27.4s},[x0],#64 + cmp x2,#128 + b.lt 2f + // 8 blocks mode + ld1 {v20.4s,v21.4s,v22.4s,v23.4s},[x0] + ld1 {v28.4s,v29.4s,v30.4s,v31.4s},[x0],#64 +#ifndef __AARCH64EB__ + rev32 v16.16b,v16.16b +#endif +#ifndef __AARCH64EB__ + rev32 v17.16b,v17.16b +#endif +#ifndef __AARCH64EB__ + rev32 v18.16b,v18.16b +#endif +#ifndef __AARCH64EB__ + rev32 v19.16b,v19.16b +#endif +#ifndef __AARCH64EB__ + rev32 v20.16b,v20.16b +#endif +#ifndef __AARCH64EB__ + rev32 v21.16b,v21.16b +#endif +#ifndef __AARCH64EB__ + rev32 v22.16b,v22.16b +#endif +#ifndef __AARCH64EB__ + rev32 v23.16b,v23.16b +#endif +.long 0xcec08410 //sm4e v16.4s,v0.4s +.long 0xcec08411 //sm4e v17.4s,v0.4s +.long 0xcec08412 //sm4e v18.4s,v0.4s +.long 0xcec08413 //sm4e v19.4s,v0.4s + +.long 0xcec08430 //sm4e v16.4s,v1.4s +.long 0xcec08431 //sm4e v17.4s,v1.4s +.long 0xcec08432 //sm4e v18.4s,v1.4s +.long 0xcec08433 //sm4e v19.4s,v1.4s + +.long 0xcec08450 //sm4e v16.4s,v2.4s +.long 0xcec08451 //sm4e v17.4s,v2.4s +.long 0xcec08452 //sm4e v18.4s,v2.4s +.long 0xcec08453 //sm4e v19.4s,v2.4s + +.long 0xcec08470 //sm4e v16.4s,v3.4s +.long 0xcec08471 //sm4e v17.4s,v3.4s +.long 0xcec08472 //sm4e v18.4s,v3.4s +.long 0xcec08473 //sm4e v19.4s,v3.4s + +.long 0xcec08490 //sm4e v16.4s,v4.4s +.long 0xcec08491 //sm4e v17.4s,v4.4s +.long 0xcec08492 //sm4e v18.4s,v4.4s +.long 0xcec08493 //sm4e v19.4s,v4.4s + +.long 0xcec084b0 //sm4e v16.4s,v5.4s +.long 0xcec084b1 //sm4e v17.4s,v5.4s +.long 0xcec084b2 //sm4e v18.4s,v5.4s +.long 0xcec084b3 //sm4e v19.4s,v5.4s + +.long 0xcec084d0 //sm4e v16.4s,v6.4s +.long 0xcec084d1 //sm4e v17.4s,v6.4s +.long 0xcec084d2 //sm4e v18.4s,v6.4s +.long 0xcec084d3 //sm4e v19.4s,v6.4s + +.long 0xcec084f0 //sm4e v16.4s,v7.4s + rev64 v16.4S,v16.4S +.long 0xcec084f1 //sm4e v17.4s,v7.4s + ext v16.16b,v16.16b,v16.16b,#8 + rev64 v17.4S,v17.4S +.long 0xcec084f2 //sm4e v18.4s,v7.4s + ext v17.16b,v17.16b,v17.16b,#8 + rev64 v18.4S,v18.4S +.long 0xcec084f3 //sm4e v19.4s,v7.4s + ext v18.16b,v18.16b,v18.16b,#8 + rev64 v19.4S,v19.4S + ext v19.16b,v19.16b,v19.16b,#8 +.long 0xcec08414 //sm4e v20.4s,v0.4s +.long 0xcec08415 //sm4e v21.4s,v0.4s +.long 0xcec08416 //sm4e v22.4s,v0.4s +.long 0xcec08417 //sm4e v23.4s,v0.4s + +.long 0xcec08434 //sm4e v20.4s,v1.4s +.long 0xcec08435 //sm4e v21.4s,v1.4s +.long 0xcec08436 //sm4e v22.4s,v1.4s +.long 0xcec08437 //sm4e v23.4s,v1.4s + +.long 0xcec08454 //sm4e v20.4s,v2.4s +.long 0xcec08455 //sm4e v21.4s,v2.4s +.long 0xcec08456 //sm4e v22.4s,v2.4s +.long 0xcec08457 //sm4e v23.4s,v2.4s + +.long 0xcec08474 //sm4e v20.4s,v3.4s +.long 0xcec08475 //sm4e v21.4s,v3.4s +.long 0xcec08476 //sm4e v22.4s,v3.4s +.long 0xcec08477 //sm4e v23.4s,v3.4s + +.long 0xcec08494 //sm4e v20.4s,v4.4s +.long 0xcec08495 //sm4e v21.4s,v4.4s +.long 0xcec08496 //sm4e v22.4s,v4.4s +.long 0xcec08497 //sm4e v23.4s,v4.4s + +.long 0xcec084b4 //sm4e v20.4s,v5.4s +.long 0xcec084b5 //sm4e v21.4s,v5.4s +.long 0xcec084b6 //sm4e v22.4s,v5.4s +.long 0xcec084b7 //sm4e v23.4s,v5.4s + +.long 0xcec084d4 //sm4e v20.4s,v6.4s +.long 0xcec084d5 //sm4e v21.4s,v6.4s +.long 0xcec084d6 //sm4e v22.4s,v6.4s +.long 0xcec084d7 //sm4e v23.4s,v6.4s + +.long 0xcec084f4 //sm4e v20.4s,v7.4s + rev64 v20.4S,v20.4S +.long 0xcec084f5 //sm4e v21.4s,v7.4s + ext v20.16b,v20.16b,v20.16b,#8 + rev64 v21.4S,v21.4S +.long 0xcec084f6 //sm4e v22.4s,v7.4s + ext v21.16b,v21.16b,v21.16b,#8 + rev64 v22.4S,v22.4S +.long 0xcec084f7 //sm4e v23.4s,v7.4s + ext v22.16b,v22.16b,v22.16b,#8 + rev64 v23.4S,v23.4S + ext v23.16b,v23.16b,v23.16b,#8 +#ifndef __AARCH64EB__ + rev32 v16.16b,v16.16b +#endif +#ifndef __AARCH64EB__ + rev32 v17.16b,v17.16b +#endif +#ifndef __AARCH64EB__ + rev32 v18.16b,v18.16b +#endif +#ifndef __AARCH64EB__ + rev32 v19.16b,v19.16b +#endif +#ifndef __AARCH64EB__ + rev32 v20.16b,v20.16b +#endif +#ifndef __AARCH64EB__ + rev32 v21.16b,v21.16b +#endif +#ifndef __AARCH64EB__ + rev32 v22.16b,v22.16b +#endif +#ifndef __AARCH64EB__ + rev32 v23.16b,v23.16b +#endif + eor v16.16b,v16.16b,v8.16b + eor v17.16b,v17.16b,v24.16b + eor v18.16b,v18.16b,v25.16b + mov v8.16b,v31.16b + eor v19.16b,v19.16b,v26.16b + eor v20.16b,v20.16b,v27.16b + eor v21.16b,v21.16b,v28.16b + eor v22.16b,v22.16b,v29.16b + eor v23.16b,v23.16b,v30.16b + st1 {v16.4s,v17.4s,v18.4s,v19.4s},[x1],#64 + st1 {v20.4s,v21.4s,v22.4s,v23.4s},[x1],#64 + subs x2,x2,128 + b.gt 1b + b 3f + // 4 blocks mode +2: +#ifndef __AARCH64EB__ + rev32 v16.16b,v16.16b +#endif +#ifndef __AARCH64EB__ + rev32 v17.16b,v17.16b +#endif +#ifndef __AARCH64EB__ + rev32 v18.16b,v18.16b +#endif +#ifndef __AARCH64EB__ + rev32 v19.16b,v19.16b +#endif +.long 0xcec08410 //sm4e v16.4s,v0.4s +.long 0xcec08411 //sm4e v17.4s,v0.4s +.long 0xcec08412 //sm4e v18.4s,v0.4s +.long 0xcec08413 //sm4e v19.4s,v0.4s + +.long 0xcec08430 //sm4e v16.4s,v1.4s +.long 0xcec08431 //sm4e v17.4s,v1.4s +.long 0xcec08432 //sm4e v18.4s,v1.4s +.long 0xcec08433 //sm4e v19.4s,v1.4s + +.long 0xcec08450 //sm4e v16.4s,v2.4s +.long 0xcec08451 //sm4e v17.4s,v2.4s +.long 0xcec08452 //sm4e v18.4s,v2.4s +.long 0xcec08453 //sm4e v19.4s,v2.4s + +.long 0xcec08470 //sm4e v16.4s,v3.4s +.long 0xcec08471 //sm4e v17.4s,v3.4s +.long 0xcec08472 //sm4e v18.4s,v3.4s +.long 0xcec08473 //sm4e v19.4s,v3.4s + +.long 0xcec08490 //sm4e v16.4s,v4.4s +.long 0xcec08491 //sm4e v17.4s,v4.4s +.long 0xcec08492 //sm4e v18.4s,v4.4s +.long 0xcec08493 //sm4e v19.4s,v4.4s + +.long 0xcec084b0 //sm4e v16.4s,v5.4s +.long 0xcec084b1 //sm4e v17.4s,v5.4s +.long 0xcec084b2 //sm4e v18.4s,v5.4s +.long 0xcec084b3 //sm4e v19.4s,v5.4s + +.long 0xcec084d0 //sm4e v16.4s,v6.4s +.long 0xcec084d1 //sm4e v17.4s,v6.4s +.long 0xcec084d2 //sm4e v18.4s,v6.4s +.long 0xcec084d3 //sm4e v19.4s,v6.4s + +.long 0xcec084f0 //sm4e v16.4s,v7.4s + rev64 v16.4S,v16.4S +.long 0xcec084f1 //sm4e v17.4s,v7.4s + ext v16.16b,v16.16b,v16.16b,#8 + rev64 v17.4S,v17.4S +.long 0xcec084f2 //sm4e v18.4s,v7.4s + ext v17.16b,v17.16b,v17.16b,#8 + rev64 v18.4S,v18.4S +.long 0xcec084f3 //sm4e v19.4s,v7.4s + ext v18.16b,v18.16b,v18.16b,#8 + rev64 v19.4S,v19.4S + ext v19.16b,v19.16b,v19.16b,#8 +#ifndef __AARCH64EB__ + rev32 v16.16b,v16.16b +#endif +#ifndef __AARCH64EB__ + rev32 v17.16b,v17.16b +#endif +#ifndef __AARCH64EB__ + rev32 v18.16b,v18.16b +#endif +#ifndef __AARCH64EB__ + rev32 v19.16b,v19.16b +#endif + eor v16.16b,v16.16b,v8.16b + eor v17.16b,v17.16b,v24.16b + mov v8.16b,v27.16b + eor v18.16b,v18.16b,v25.16b + eor v19.16b,v19.16b,v26.16b + st1 {v16.4s,v17.4s,v18.4s,v19.4s},[x1],#64 + subs x2,x2,#64 + b.gt 1b +1: + subs x2,x2,#16 + b.lt 3f + ld1 {v16.4s},[x0],#16 + mov v24.16b,v16.16b +#ifndef __AARCH64EB__ + rev32 v16.16b,v16.16b +#endif +.long 0xcec08410 //sm4e v16.4s,v0.4s +.long 0xcec08430 //sm4e v16.4s,v1.4s +.long 0xcec08450 //sm4e v16.4s,v2.4s +.long 0xcec08470 //sm4e v16.4s,v3.4s +.long 0xcec08490 //sm4e v16.4s,v4.4s +.long 0xcec084b0 //sm4e v16.4s,v5.4s +.long 0xcec084d0 //sm4e v16.4s,v6.4s +.long 0xcec084f0 //sm4e v16.4s,v7.4s + rev64 v16.4S,v16.4S + ext v16.16b,v16.16b,v16.16b,#8 +#ifndef __AARCH64EB__ + rev32 v16.16b,v16.16b +#endif + eor v16.16b,v16.16b,v8.16b + mov v8.16b,v24.16b + st1 {v16.4s},[x1],#16 + b.ne 1b +3: + // save back IV + st1 {v8.4s},[x4] + ldp d8,d9,[sp],#16 + ret + +.globl _sm4_v8_ctr32_encrypt_blocks + +.align 5 +_sm4_v8_ctr32_encrypt_blocks: + AARCH64_VALID_CALL_TARGET + stp d8,d9,[sp, #-16]! + + ld1 {v8.4s},[x4] + ld1 {v0.4s,v1.4s,v2.4s,v3.4s},[x3],64 + ld1 {v4.4s,v5.4s,v6.4s,v7.4s},[x3] +#ifndef __AARCH64EB__ + rev32 v8.16b,v8.16b +#endif + mov w5,v8.s[3] +1: + cmp x2,#4 + b.lt 1f + ld1 {v24.4s,v25.4s,v26.4s,v27.4s},[x0],#64 + mov v16.16b,v8.16b + mov v17.16b,v8.16b + mov v18.16b,v8.16b + mov v19.16b,v8.16b + add w5,w5,#1 + mov v17.s[3],w5 + add w5,w5,#1 + mov v18.s[3],w5 + add w5,w5,#1 + mov v19.s[3],w5 + cmp x2,#8 + b.lt 2f + ld1 {v28.4s,v29.4s,v30.4s,v31.4s},[x0],#64 + mov v20.16b,v8.16b + mov v21.16b,v8.16b + mov v22.16b,v8.16b + mov v23.16b,v8.16b + add w5,w5,#1 + mov v20.s[3],w5 + add w5,w5,#1 + mov v21.s[3],w5 + add w5,w5,#1 + mov v22.s[3],w5 + add w5,w5,#1 + mov v23.s[3],w5 +.long 0xcec08410 //sm4e v16.4s,v0.4s +.long 0xcec08411 //sm4e v17.4s,v0.4s +.long 0xcec08412 //sm4e v18.4s,v0.4s +.long 0xcec08413 //sm4e v19.4s,v0.4s + +.long 0xcec08430 //sm4e v16.4s,v1.4s +.long 0xcec08431 //sm4e v17.4s,v1.4s +.long 0xcec08432 //sm4e v18.4s,v1.4s +.long 0xcec08433 //sm4e v19.4s,v1.4s + +.long 0xcec08450 //sm4e v16.4s,v2.4s +.long 0xcec08451 //sm4e v17.4s,v2.4s +.long 0xcec08452 //sm4e v18.4s,v2.4s +.long 0xcec08453 //sm4e v19.4s,v2.4s + +.long 0xcec08470 //sm4e v16.4s,v3.4s +.long 0xcec08471 //sm4e v17.4s,v3.4s +.long 0xcec08472 //sm4e v18.4s,v3.4s +.long 0xcec08473 //sm4e v19.4s,v3.4s + +.long 0xcec08490 //sm4e v16.4s,v4.4s +.long 0xcec08491 //sm4e v17.4s,v4.4s +.long 0xcec08492 //sm4e v18.4s,v4.4s +.long 0xcec08493 //sm4e v19.4s,v4.4s + +.long 0xcec084b0 //sm4e v16.4s,v5.4s +.long 0xcec084b1 //sm4e v17.4s,v5.4s +.long 0xcec084b2 //sm4e v18.4s,v5.4s +.long 0xcec084b3 //sm4e v19.4s,v5.4s + +.long 0xcec084d0 //sm4e v16.4s,v6.4s +.long 0xcec084d1 //sm4e v17.4s,v6.4s +.long 0xcec084d2 //sm4e v18.4s,v6.4s +.long 0xcec084d3 //sm4e v19.4s,v6.4s + +.long 0xcec084f0 //sm4e v16.4s,v7.4s + rev64 v16.4S,v16.4S +.long 0xcec084f1 //sm4e v17.4s,v7.4s + ext v16.16b,v16.16b,v16.16b,#8 + rev64 v17.4S,v17.4S +.long 0xcec084f2 //sm4e v18.4s,v7.4s + ext v17.16b,v17.16b,v17.16b,#8 + rev64 v18.4S,v18.4S +.long 0xcec084f3 //sm4e v19.4s,v7.4s + ext v18.16b,v18.16b,v18.16b,#8 + rev64 v19.4S,v19.4S + ext v19.16b,v19.16b,v19.16b,#8 +.long 0xcec08414 //sm4e v20.4s,v0.4s +.long 0xcec08415 //sm4e v21.4s,v0.4s +.long 0xcec08416 //sm4e v22.4s,v0.4s +.long 0xcec08417 //sm4e v23.4s,v0.4s + +.long 0xcec08434 //sm4e v20.4s,v1.4s +.long 0xcec08435 //sm4e v21.4s,v1.4s +.long 0xcec08436 //sm4e v22.4s,v1.4s +.long 0xcec08437 //sm4e v23.4s,v1.4s + +.long 0xcec08454 //sm4e v20.4s,v2.4s +.long 0xcec08455 //sm4e v21.4s,v2.4s +.long 0xcec08456 //sm4e v22.4s,v2.4s +.long 0xcec08457 //sm4e v23.4s,v2.4s + +.long 0xcec08474 //sm4e v20.4s,v3.4s +.long 0xcec08475 //sm4e v21.4s,v3.4s +.long 0xcec08476 //sm4e v22.4s,v3.4s +.long 0xcec08477 //sm4e v23.4s,v3.4s + +.long 0xcec08494 //sm4e v20.4s,v4.4s +.long 0xcec08495 //sm4e v21.4s,v4.4s +.long 0xcec08496 //sm4e v22.4s,v4.4s +.long 0xcec08497 //sm4e v23.4s,v4.4s + +.long 0xcec084b4 //sm4e v20.4s,v5.4s +.long 0xcec084b5 //sm4e v21.4s,v5.4s +.long 0xcec084b6 //sm4e v22.4s,v5.4s +.long 0xcec084b7 //sm4e v23.4s,v5.4s + +.long 0xcec084d4 //sm4e v20.4s,v6.4s +.long 0xcec084d5 //sm4e v21.4s,v6.4s +.long 0xcec084d6 //sm4e v22.4s,v6.4s +.long 0xcec084d7 //sm4e v23.4s,v6.4s + +.long 0xcec084f4 //sm4e v20.4s,v7.4s + rev64 v20.4S,v20.4S +.long 0xcec084f5 //sm4e v21.4s,v7.4s + ext v20.16b,v20.16b,v20.16b,#8 + rev64 v21.4S,v21.4S +.long 0xcec084f6 //sm4e v22.4s,v7.4s + ext v21.16b,v21.16b,v21.16b,#8 + rev64 v22.4S,v22.4S +.long 0xcec084f7 //sm4e v23.4s,v7.4s + ext v22.16b,v22.16b,v22.16b,#8 + rev64 v23.4S,v23.4S + ext v23.16b,v23.16b,v23.16b,#8 +#ifndef __AARCH64EB__ + rev32 v16.16b,v16.16b +#endif +#ifndef __AARCH64EB__ + rev32 v17.16b,v17.16b +#endif +#ifndef __AARCH64EB__ + rev32 v18.16b,v18.16b +#endif +#ifndef __AARCH64EB__ + rev32 v19.16b,v19.16b +#endif +#ifndef __AARCH64EB__ + rev32 v20.16b,v20.16b +#endif +#ifndef __AARCH64EB__ + rev32 v21.16b,v21.16b +#endif +#ifndef __AARCH64EB__ + rev32 v22.16b,v22.16b +#endif +#ifndef __AARCH64EB__ + rev32 v23.16b,v23.16b +#endif + eor v16.16b,v16.16b,v24.16b + eor v17.16b,v17.16b,v25.16b + eor v18.16b,v18.16b,v26.16b + eor v19.16b,v19.16b,v27.16b + eor v20.16b,v20.16b,v28.16b + eor v21.16b,v21.16b,v29.16b + eor v22.16b,v22.16b,v30.16b + eor v23.16b,v23.16b,v31.16b + st1 {v16.4s,v17.4s,v18.4s,v19.4s},[x1],#64 + st1 {v20.4s,v21.4s,v22.4s,v23.4s},[x1],#64 + subs x2,x2,#8 + b.eq 3f + add w5,w5,#1 + mov v8.s[3],w5 + b 1b +2: +.long 0xcec08410 //sm4e v16.4s,v0.4s +.long 0xcec08411 //sm4e v17.4s,v0.4s +.long 0xcec08412 //sm4e v18.4s,v0.4s +.long 0xcec08413 //sm4e v19.4s,v0.4s + +.long 0xcec08430 //sm4e v16.4s,v1.4s +.long 0xcec08431 //sm4e v17.4s,v1.4s +.long 0xcec08432 //sm4e v18.4s,v1.4s +.long 0xcec08433 //sm4e v19.4s,v1.4s + +.long 0xcec08450 //sm4e v16.4s,v2.4s +.long 0xcec08451 //sm4e v17.4s,v2.4s +.long 0xcec08452 //sm4e v18.4s,v2.4s +.long 0xcec08453 //sm4e v19.4s,v2.4s + +.long 0xcec08470 //sm4e v16.4s,v3.4s +.long 0xcec08471 //sm4e v17.4s,v3.4s +.long 0xcec08472 //sm4e v18.4s,v3.4s +.long 0xcec08473 //sm4e v19.4s,v3.4s + +.long 0xcec08490 //sm4e v16.4s,v4.4s +.long 0xcec08491 //sm4e v17.4s,v4.4s +.long 0xcec08492 //sm4e v18.4s,v4.4s +.long 0xcec08493 //sm4e v19.4s,v4.4s + +.long 0xcec084b0 //sm4e v16.4s,v5.4s +.long 0xcec084b1 //sm4e v17.4s,v5.4s +.long 0xcec084b2 //sm4e v18.4s,v5.4s +.long 0xcec084b3 //sm4e v19.4s,v5.4s + +.long 0xcec084d0 //sm4e v16.4s,v6.4s +.long 0xcec084d1 //sm4e v17.4s,v6.4s +.long 0xcec084d2 //sm4e v18.4s,v6.4s +.long 0xcec084d3 //sm4e v19.4s,v6.4s + +.long 0xcec084f0 //sm4e v16.4s,v7.4s + rev64 v16.4S,v16.4S +.long 0xcec084f1 //sm4e v17.4s,v7.4s + ext v16.16b,v16.16b,v16.16b,#8 + rev64 v17.4S,v17.4S +.long 0xcec084f2 //sm4e v18.4s,v7.4s + ext v17.16b,v17.16b,v17.16b,#8 + rev64 v18.4S,v18.4S +.long 0xcec084f3 //sm4e v19.4s,v7.4s + ext v18.16b,v18.16b,v18.16b,#8 + rev64 v19.4S,v19.4S + ext v19.16b,v19.16b,v19.16b,#8 +#ifndef __AARCH64EB__ + rev32 v16.16b,v16.16b +#endif +#ifndef __AARCH64EB__ + rev32 v17.16b,v17.16b +#endif +#ifndef __AARCH64EB__ + rev32 v18.16b,v18.16b +#endif +#ifndef __AARCH64EB__ + rev32 v19.16b,v19.16b +#endif + eor v16.16b,v16.16b,v24.16b + eor v17.16b,v17.16b,v25.16b + eor v18.16b,v18.16b,v26.16b + eor v19.16b,v19.16b,v27.16b + st1 {v16.4s,v17.4s,v18.4s,v19.4s},[x1],#64 + subs x2,x2,#4 + b.eq 3f + add w5,w5,#1 + mov v8.s[3],w5 + b 1b +1: + subs x2,x2,#1 + b.lt 3f + mov v16.16b,v8.16b + ld1 {v24.4s},[x0],#16 +.long 0xcec08410 //sm4e v16.4s,v0.4s +.long 0xcec08430 //sm4e v16.4s,v1.4s +.long 0xcec08450 //sm4e v16.4s,v2.4s +.long 0xcec08470 //sm4e v16.4s,v3.4s +.long 0xcec08490 //sm4e v16.4s,v4.4s +.long 0xcec084b0 //sm4e v16.4s,v5.4s +.long 0xcec084d0 //sm4e v16.4s,v6.4s +.long 0xcec084f0 //sm4e v16.4s,v7.4s + rev64 v16.4S,v16.4S + ext v16.16b,v16.16b,v16.16b,#8 +#ifndef __AARCH64EB__ + rev32 v16.16b,v16.16b +#endif + eor v16.16b,v16.16b,v24.16b + st1 {v16.4s},[x1],#16 + b.eq 3f + add w5,w5,#1 + mov v8.s[3],w5 + b 1b +3: + ldp d8,d9,[sp],#16 + ret + diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/crypto/sm4/vpsm4-armv8.S b/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/crypto/sm4/vpsm4-armv8.S new file mode 100644 index 00000000000000..62f0fb261a1564 --- /dev/null +++ b/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/crypto/sm4/vpsm4-armv8.S @@ -0,0 +1,5020 @@ +// Copyright 2020-2025 The OpenSSL Project Authors. All Rights Reserved. +// +// Licensed under the Apache License 2.0 (the "License"). You may not use +// this file except in compliance with the License. You can obtain a copy +// in the file LICENSE in the source distribution or at +// https://www.openssl.org/source/license.html + +// +// This module implements SM4 with ASIMD on aarch64 +// +// Feb 2022 +// + +// $output is the last argument if it looks like a file (it has an extension) +// $flavour is the first argument if it doesn't look like a file +#include "arm_arch.h" + +.text + +.section __TEXT,__const + +.align 7 +_vpsm4_consts: +Lsbox: +.byte 0xD6,0x90,0xE9,0xFE,0xCC,0xE1,0x3D,0xB7,0x16,0xB6,0x14,0xC2,0x28,0xFB,0x2C,0x05 +.byte 0x2B,0x67,0x9A,0x76,0x2A,0xBE,0x04,0xC3,0xAA,0x44,0x13,0x26,0x49,0x86,0x06,0x99 +.byte 0x9C,0x42,0x50,0xF4,0x91,0xEF,0x98,0x7A,0x33,0x54,0x0B,0x43,0xED,0xCF,0xAC,0x62 +.byte 0xE4,0xB3,0x1C,0xA9,0xC9,0x08,0xE8,0x95,0x80,0xDF,0x94,0xFA,0x75,0x8F,0x3F,0xA6 +.byte 0x47,0x07,0xA7,0xFC,0xF3,0x73,0x17,0xBA,0x83,0x59,0x3C,0x19,0xE6,0x85,0x4F,0xA8 +.byte 0x68,0x6B,0x81,0xB2,0x71,0x64,0xDA,0x8B,0xF8,0xEB,0x0F,0x4B,0x70,0x56,0x9D,0x35 +.byte 0x1E,0x24,0x0E,0x5E,0x63,0x58,0xD1,0xA2,0x25,0x22,0x7C,0x3B,0x01,0x21,0x78,0x87 +.byte 0xD4,0x00,0x46,0x57,0x9F,0xD3,0x27,0x52,0x4C,0x36,0x02,0xE7,0xA0,0xC4,0xC8,0x9E +.byte 0xEA,0xBF,0x8A,0xD2,0x40,0xC7,0x38,0xB5,0xA3,0xF7,0xF2,0xCE,0xF9,0x61,0x15,0xA1 +.byte 0xE0,0xAE,0x5D,0xA4,0x9B,0x34,0x1A,0x55,0xAD,0x93,0x32,0x30,0xF5,0x8C,0xB1,0xE3 +.byte 0x1D,0xF6,0xE2,0x2E,0x82,0x66,0xCA,0x60,0xC0,0x29,0x23,0xAB,0x0D,0x53,0x4E,0x6F +.byte 0xD5,0xDB,0x37,0x45,0xDE,0xFD,0x8E,0x2F,0x03,0xFF,0x6A,0x72,0x6D,0x6C,0x5B,0x51 +.byte 0x8D,0x1B,0xAF,0x92,0xBB,0xDD,0xBC,0x7F,0x11,0xD9,0x5C,0x41,0x1F,0x10,0x5A,0xD8 +.byte 0x0A,0xC1,0x31,0x88,0xA5,0xCD,0x7B,0xBD,0x2D,0x74,0xD0,0x12,0xB8,0xE5,0xB4,0xB0 +.byte 0x89,0x69,0x97,0x4A,0x0C,0x96,0x77,0x7E,0x65,0xB9,0xF1,0x09,0xC5,0x6E,0xC6,0x84 +.byte 0x18,0xF0,0x7D,0xEC,0x3A,0xDC,0x4D,0x20,0x79,0xEE,0x5F,0x3E,0xD7,0xCB,0x39,0x48 +Lck: +.long 0x00070E15, 0x1C232A31, 0x383F464D, 0x545B6269 +.long 0x70777E85, 0x8C939AA1, 0xA8AFB6BD, 0xC4CBD2D9 +.long 0xE0E7EEF5, 0xFC030A11, 0x181F262D, 0x343B4249 +.long 0x50575E65, 0x6C737A81, 0x888F969D, 0xA4ABB2B9 +.long 0xC0C7CED5, 0xDCE3EAF1, 0xF8FF060D, 0x141B2229 +.long 0x30373E45, 0x4C535A61, 0x686F767D, 0x848B9299 +.long 0xA0A7AEB5, 0xBCC3CAD1, 0xD8DFE6ED, 0xF4FB0209 +.long 0x10171E25, 0x2C333A41, 0x484F565D, 0x646B7279 +Lfk: +.quad 0x56aa3350a3b1bac6,0xb27022dc677d9197 +Lshuffles: +.quad 0x0B0A090807060504,0x030201000F0E0D0C +Lxts_magic: +.quad 0x0101010101010187,0x0101010101010101 + + + +.previous + + +.align 4 +_vpsm4_set_key: + AARCH64_VALID_CALL_TARGET + ld1 {v5.4s},[x0] + adrp x10,Lsbox@PAGE + add x10,x10,Lsbox@PAGEOFF + ld1 {v16.16b,v17.16b,v18.16b,v19.16b},[x10],#64 + ld1 {v20.16b,v21.16b,v22.16b,v23.16b},[x10],#64 + ld1 {v24.16b,v25.16b,v26.16b,v27.16b},[x10],#64 + ld1 {v28.16b,v29.16b,v30.16b,v31.16b},[x10] +#ifndef __AARCH64EB__ + rev32 v5.16b,v5.16b +#endif + adrp x5,Lshuffles@PAGE + add x5,x5,Lshuffles@PAGEOFF + ld1 {v7.2d},[x5] + adrp x5,Lfk@PAGE + add x5,x5,Lfk@PAGEOFF + ld1 {v6.2d},[x5] + eor v5.16b,v5.16b,v6.16b + mov x6,#32 + adrp x5,Lck@PAGE + add x5,x5,Lck@PAGEOFF + movi v0.16b,#64 + cbnz w2,1f + add x1,x1,124 +1: + mov w7,v5.s[1] + ldr w8,[x5],#4 + eor w8,w8,w7 + mov w7,v5.s[2] + eor w8,w8,w7 + mov w7,v5.s[3] + eor w8,w8,w7 + // sbox lookup + mov v4.s[0],w8 + tbl v1.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v4.16b + sub v4.16b,v4.16b,v0.16b + tbx v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v4.16b + sub v4.16b,v4.16b,v0.16b + tbx v1.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v4.16b + sub v4.16b,v4.16b,v0.16b + tbx v1.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v4.16b + mov w7,v1.s[0] + eor w8,w7,w7,ror #19 + eor w8,w8,w7,ror #9 + mov w7,v5.s[0] + eor w8,w8,w7 + mov v5.s[0],w8 + cbz w2,2f + str w8,[x1],#4 + b 3f +2: + str w8,[x1],#-4 +3: + tbl v5.16b,{v5.16b},v7.16b + subs x6,x6,#1 + b.ne 1b + ret + + +.align 4 +_vpsm4_enc_4blks: + AARCH64_VALID_CALL_TARGET + mov x10,x3 + mov w11,#8 +10: + ldp w7,w8,[x10],8 + dup v12.4s,w7 + dup v13.4s,w8 + + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + eor v14.16b,v6.16b,v7.16b + eor v12.16b,v5.16b,v12.16b + eor v12.16b,v14.16b,v12.16b + movi v0.16b,#64 + movi v1.16b,#128 + movi v2.16b,#192 + sub v0.16b,v12.16b,v0.16b + sub v1.16b,v12.16b,v1.16b + sub v2.16b,v12.16b,v2.16b + tbl v12.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v12.16b + tbl v0.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v0.16b + tbl v1.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v1.16b + tbl v2.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v2.16b + add v0.2d,v0.2d,v1.2d + add v2.2d,v2.2d,v12.2d + add v12.2d,v0.2d,v2.2d + + ushr v0.4s,v12.4s,32-2 + sli v0.4s,v12.4s,2 + ushr v2.4s,v12.4s,32-10 + eor v1.16b,v0.16b,v12.16b + sli v2.4s,v12.4s,10 + eor v1.16b,v2.16b,v1.16b + ushr v0.4s,v12.4s,32-18 + sli v0.4s,v12.4s,18 + ushr v2.4s,v12.4s,32-24 + eor v1.16b,v0.16b,v1.16b + sli v2.4s,v12.4s,24 + eor v12.16b,v2.16b,v1.16b + eor v4.16b,v4.16b,v12.16b + + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + eor v14.16b,v14.16b,v4.16b + eor v13.16b,v14.16b,v13.16b + movi v0.16b,#64 + movi v1.16b,#128 + movi v2.16b,#192 + sub v0.16b,v13.16b,v0.16b + sub v1.16b,v13.16b,v1.16b + sub v2.16b,v13.16b,v2.16b + tbl v13.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v13.16b + tbl v0.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v0.16b + tbl v1.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v1.16b + tbl v2.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v2.16b + add v0.2d,v0.2d,v1.2d + add v2.2d,v2.2d,v13.2d + add v13.2d,v0.2d,v2.2d + + ushr v0.4s,v13.4s,32-2 + sli v0.4s,v13.4s,2 + ushr v2.4s,v13.4s,32-10 + eor v1.16b,v0.16b,v13.16b + sli v2.4s,v13.4s,10 + eor v1.16b,v2.16b,v1.16b + ushr v0.4s,v13.4s,32-18 + sli v0.4s,v13.4s,18 + ushr v2.4s,v13.4s,32-24 + eor v1.16b,v0.16b,v1.16b + sli v2.4s,v13.4s,24 + eor v13.16b,v2.16b,v1.16b + ldp w7,w8,[x10],8 + eor v5.16b,v5.16b,v13.16b + + dup v12.4s,w7 + dup v13.4s,w8 + + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + eor v14.16b,v4.16b,v5.16b + eor v12.16b,v7.16b,v12.16b + eor v12.16b,v14.16b,v12.16b + movi v0.16b,#64 + movi v1.16b,#128 + movi v2.16b,#192 + sub v0.16b,v12.16b,v0.16b + sub v1.16b,v12.16b,v1.16b + sub v2.16b,v12.16b,v2.16b + tbl v12.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v12.16b + tbl v0.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v0.16b + tbl v1.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v1.16b + tbl v2.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v2.16b + add v0.2d,v0.2d,v1.2d + add v2.2d,v2.2d,v12.2d + add v12.2d,v0.2d,v2.2d + + ushr v0.4s,v12.4s,32-2 + sli v0.4s,v12.4s,2 + ushr v2.4s,v12.4s,32-10 + eor v1.16b,v0.16b,v12.16b + sli v2.4s,v12.4s,10 + eor v1.16b,v2.16b,v1.16b + ushr v0.4s,v12.4s,32-18 + sli v0.4s,v12.4s,18 + ushr v2.4s,v12.4s,32-24 + eor v1.16b,v0.16b,v1.16b + sli v2.4s,v12.4s,24 + eor v12.16b,v2.16b,v1.16b + eor v6.16b,v6.16b,v12.16b + + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + eor v14.16b,v14.16b,v6.16b + eor v13.16b,v14.16b,v13.16b + movi v0.16b,#64 + movi v1.16b,#128 + movi v2.16b,#192 + sub v0.16b,v13.16b,v0.16b + sub v1.16b,v13.16b,v1.16b + sub v2.16b,v13.16b,v2.16b + tbl v13.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v13.16b + tbl v0.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v0.16b + tbl v1.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v1.16b + tbl v2.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v2.16b + add v0.2d,v0.2d,v1.2d + add v2.2d,v2.2d,v13.2d + add v13.2d,v0.2d,v2.2d + + ushr v0.4s,v13.4s,32-2 + sli v0.4s,v13.4s,2 + ushr v2.4s,v13.4s,32-10 + eor v1.16b,v0.16b,v13.16b + sli v2.4s,v13.4s,10 + eor v1.16b,v2.16b,v1.16b + ushr v0.4s,v13.4s,32-18 + sli v0.4s,v13.4s,18 + ushr v2.4s,v13.4s,32-24 + eor v1.16b,v0.16b,v1.16b + sli v2.4s,v13.4s,24 + eor v13.16b,v2.16b,v1.16b + eor v7.16b,v7.16b,v13.16b + subs w11,w11,#1 + b.ne 10b +#ifndef __AARCH64EB__ + rev32 v3.16b,v4.16b +#else + mov v3.16b,v4.16b +#endif +#ifndef __AARCH64EB__ + rev32 v2.16b,v5.16b +#else + mov v2.16b,v5.16b +#endif +#ifndef __AARCH64EB__ + rev32 v1.16b,v6.16b +#else + mov v1.16b,v6.16b +#endif +#ifndef __AARCH64EB__ + rev32 v0.16b,v7.16b +#else + mov v0.16b,v7.16b +#endif + ret + + +.align 4 +_vpsm4_enc_8blks: + AARCH64_VALID_CALL_TARGET + mov x10,x3 + mov w11,#8 +10: + ldp w7,w8,[x10],8 + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + dup v12.4s,w7 + eor v14.16b,v6.16b,v7.16b + eor v15.16b,v10.16b,v11.16b + eor v0.16b,v5.16b,v12.16b + eor v1.16b,v9.16b,v12.16b + eor v12.16b,v14.16b,v0.16b + eor v13.16b,v15.16b,v1.16b + movi v3.16b,#64 + sub v0.16b,v12.16b,v3.16b + sub v1.16b,v0.16b,v3.16b + sub v2.16b,v1.16b,v3.16b + tbl v12.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v12.16b + tbl v0.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v0.16b + tbl v1.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v1.16b + tbl v2.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v2.16b + add v1.2d,v0.2d,v1.2d + add v12.2d,v2.2d,v12.2d + add v12.2d,v1.2d,v12.2d + + sub v0.16b,v13.16b,v3.16b + sub v1.16b,v0.16b,v3.16b + sub v2.16b,v1.16b,v3.16b + tbl v13.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v13.16b + tbl v0.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v0.16b + tbl v1.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v1.16b + tbl v2.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v2.16b + add v1.2d,v0.2d,v1.2d + add v13.2d,v2.2d,v13.2d + add v13.2d,v1.2d,v13.2d + + ushr v0.4s,v12.4s,32-2 + sli v0.4s,v12.4s,2 + ushr v2.4s,v13.4s,32-2 + eor v1.16b,v0.16b,v12.16b + sli v2.4s,v13.4s,2 + + ushr v0.4s,v12.4s,32-10 + eor v3.16b,v2.16b,v13.16b + sli v0.4s,v12.4s,10 + ushr v2.4s,v13.4s,32-10 + eor v1.16b,v0.16b,v1.16b + sli v2.4s,v13.4s,10 + + ushr v0.4s,v12.4s,32-18 + eor v3.16b,v2.16b,v3.16b + sli v0.4s,v12.4s,18 + ushr v2.4s,v13.4s,32-18 + eor v1.16b,v0.16b,v1.16b + sli v2.4s,v13.4s,18 + + ushr v0.4s,v12.4s,32-24 + eor v3.16b,v2.16b,v3.16b + sli v0.4s,v12.4s,24 + ushr v2.4s,v13.4s,32-24 + eor v12.16b,v0.16b,v1.16b + sli v2.4s,v13.4s,24 + eor v13.16b,v2.16b,v3.16b + eor v4.16b,v4.16b,v12.16b + eor v8.16b,v8.16b,v13.16b + + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + dup v13.4s,w8 + eor v14.16b,v14.16b,v4.16b + eor v15.16b,v15.16b,v8.16b + eor v12.16b,v14.16b,v13.16b + eor v13.16b,v15.16b,v13.16b + movi v3.16b,#64 + sub v0.16b,v12.16b,v3.16b + sub v1.16b,v0.16b,v3.16b + sub v2.16b,v1.16b,v3.16b + tbl v12.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v12.16b + tbl v0.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v0.16b + tbl v1.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v1.16b + tbl v2.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v2.16b + add v1.2d,v0.2d,v1.2d + add v12.2d,v2.2d,v12.2d + add v12.2d,v1.2d,v12.2d + + sub v0.16b,v13.16b,v3.16b + sub v1.16b,v0.16b,v3.16b + sub v2.16b,v1.16b,v3.16b + tbl v13.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v13.16b + tbl v0.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v0.16b + tbl v1.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v1.16b + tbl v2.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v2.16b + add v1.2d,v0.2d,v1.2d + add v13.2d,v2.2d,v13.2d + add v13.2d,v1.2d,v13.2d + + ushr v0.4s,v12.4s,32-2 + sli v0.4s,v12.4s,2 + ushr v2.4s,v13.4s,32-2 + eor v1.16b,v0.16b,v12.16b + sli v2.4s,v13.4s,2 + + ushr v0.4s,v12.4s,32-10 + eor v3.16b,v2.16b,v13.16b + sli v0.4s,v12.4s,10 + ushr v2.4s,v13.4s,32-10 + eor v1.16b,v0.16b,v1.16b + sli v2.4s,v13.4s,10 + + ushr v0.4s,v12.4s,32-18 + eor v3.16b,v2.16b,v3.16b + sli v0.4s,v12.4s,18 + ushr v2.4s,v13.4s,32-18 + eor v1.16b,v0.16b,v1.16b + sli v2.4s,v13.4s,18 + + ushr v0.4s,v12.4s,32-24 + eor v3.16b,v2.16b,v3.16b + sli v0.4s,v12.4s,24 + ushr v2.4s,v13.4s,32-24 + eor v12.16b,v0.16b,v1.16b + sli v2.4s,v13.4s,24 + eor v13.16b,v2.16b,v3.16b + ldp w7,w8,[x10],8 + eor v5.16b,v5.16b,v12.16b + eor v9.16b,v9.16b,v13.16b + + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + dup v12.4s,w7 + eor v14.16b,v4.16b,v5.16b + eor v15.16b,v8.16b,v9.16b + eor v0.16b,v7.16b,v12.16b + eor v1.16b,v11.16b,v12.16b + eor v12.16b,v14.16b,v0.16b + eor v13.16b,v15.16b,v1.16b + movi v3.16b,#64 + sub v0.16b,v12.16b,v3.16b + sub v1.16b,v0.16b,v3.16b + sub v2.16b,v1.16b,v3.16b + tbl v12.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v12.16b + tbl v0.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v0.16b + tbl v1.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v1.16b + tbl v2.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v2.16b + add v1.2d,v0.2d,v1.2d + add v12.2d,v2.2d,v12.2d + add v12.2d,v1.2d,v12.2d + + sub v0.16b,v13.16b,v3.16b + sub v1.16b,v0.16b,v3.16b + sub v2.16b,v1.16b,v3.16b + tbl v13.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v13.16b + tbl v0.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v0.16b + tbl v1.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v1.16b + tbl v2.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v2.16b + add v1.2d,v0.2d,v1.2d + add v13.2d,v2.2d,v13.2d + add v13.2d,v1.2d,v13.2d + + ushr v0.4s,v12.4s,32-2 + sli v0.4s,v12.4s,2 + ushr v2.4s,v13.4s,32-2 + eor v1.16b,v0.16b,v12.16b + sli v2.4s,v13.4s,2 + + ushr v0.4s,v12.4s,32-10 + eor v3.16b,v2.16b,v13.16b + sli v0.4s,v12.4s,10 + ushr v2.4s,v13.4s,32-10 + eor v1.16b,v0.16b,v1.16b + sli v2.4s,v13.4s,10 + + ushr v0.4s,v12.4s,32-18 + eor v3.16b,v2.16b,v3.16b + sli v0.4s,v12.4s,18 + ushr v2.4s,v13.4s,32-18 + eor v1.16b,v0.16b,v1.16b + sli v2.4s,v13.4s,18 + + ushr v0.4s,v12.4s,32-24 + eor v3.16b,v2.16b,v3.16b + sli v0.4s,v12.4s,24 + ushr v2.4s,v13.4s,32-24 + eor v12.16b,v0.16b,v1.16b + sli v2.4s,v13.4s,24 + eor v13.16b,v2.16b,v3.16b + eor v6.16b,v6.16b,v12.16b + eor v10.16b,v10.16b,v13.16b + + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + dup v13.4s,w8 + eor v14.16b,v14.16b,v6.16b + eor v15.16b,v15.16b,v10.16b + eor v12.16b,v14.16b,v13.16b + eor v13.16b,v15.16b,v13.16b + movi v3.16b,#64 + sub v0.16b,v12.16b,v3.16b + sub v1.16b,v0.16b,v3.16b + sub v2.16b,v1.16b,v3.16b + tbl v12.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v12.16b + tbl v0.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v0.16b + tbl v1.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v1.16b + tbl v2.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v2.16b + add v1.2d,v0.2d,v1.2d + add v12.2d,v2.2d,v12.2d + add v12.2d,v1.2d,v12.2d + + sub v0.16b,v13.16b,v3.16b + sub v1.16b,v0.16b,v3.16b + sub v2.16b,v1.16b,v3.16b + tbl v13.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v13.16b + tbl v0.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v0.16b + tbl v1.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v1.16b + tbl v2.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v2.16b + add v1.2d,v0.2d,v1.2d + add v13.2d,v2.2d,v13.2d + add v13.2d,v1.2d,v13.2d + + ushr v0.4s,v12.4s,32-2 + sli v0.4s,v12.4s,2 + ushr v2.4s,v13.4s,32-2 + eor v1.16b,v0.16b,v12.16b + sli v2.4s,v13.4s,2 + + ushr v0.4s,v12.4s,32-10 + eor v3.16b,v2.16b,v13.16b + sli v0.4s,v12.4s,10 + ushr v2.4s,v13.4s,32-10 + eor v1.16b,v0.16b,v1.16b + sli v2.4s,v13.4s,10 + + ushr v0.4s,v12.4s,32-18 + eor v3.16b,v2.16b,v3.16b + sli v0.4s,v12.4s,18 + ushr v2.4s,v13.4s,32-18 + eor v1.16b,v0.16b,v1.16b + sli v2.4s,v13.4s,18 + + ushr v0.4s,v12.4s,32-24 + eor v3.16b,v2.16b,v3.16b + sli v0.4s,v12.4s,24 + ushr v2.4s,v13.4s,32-24 + eor v12.16b,v0.16b,v1.16b + sli v2.4s,v13.4s,24 + eor v13.16b,v2.16b,v3.16b + eor v7.16b,v7.16b,v12.16b + eor v11.16b,v11.16b,v13.16b + subs w11,w11,#1 + b.ne 10b +#ifndef __AARCH64EB__ + rev32 v3.16b,v4.16b +#else + mov v3.16b,v4.16b +#endif +#ifndef __AARCH64EB__ + rev32 v2.16b,v5.16b +#else + mov v2.16b,v5.16b +#endif +#ifndef __AARCH64EB__ + rev32 v1.16b,v6.16b +#else + mov v1.16b,v6.16b +#endif +#ifndef __AARCH64EB__ + rev32 v0.16b,v7.16b +#else + mov v0.16b,v7.16b +#endif +#ifndef __AARCH64EB__ + rev32 v7.16b,v8.16b +#else + mov v7.16b,v8.16b +#endif +#ifndef __AARCH64EB__ + rev32 v6.16b,v9.16b +#else + mov v6.16b,v9.16b +#endif +#ifndef __AARCH64EB__ + rev32 v5.16b,v10.16b +#else + mov v5.16b,v10.16b +#endif +#ifndef __AARCH64EB__ + rev32 v4.16b,v11.16b +#else + mov v4.16b,v11.16b +#endif + ret + +.globl _vpsm4_set_encrypt_key + +.align 5 +_vpsm4_set_encrypt_key: + AARCH64_SIGN_LINK_REGISTER + stp x29,x30,[sp,#-16]! + mov w2,1 + bl _vpsm4_set_key + ldp x29,x30,[sp],#16 + AARCH64_VALIDATE_LINK_REGISTER + ret + +.globl _vpsm4_set_decrypt_key + +.align 5 +_vpsm4_set_decrypt_key: + AARCH64_SIGN_LINK_REGISTER + stp x29,x30,[sp,#-16]! + mov w2,0 + bl _vpsm4_set_key + ldp x29,x30,[sp],#16 + AARCH64_VALIDATE_LINK_REGISTER + ret + +.globl _vpsm4_encrypt + +.align 5 +_vpsm4_encrypt: + AARCH64_VALID_CALL_TARGET + ld1 {v4.4s},[x0] + adrp x10,Lsbox@PAGE + add x10,x10,Lsbox@PAGEOFF + ld1 {v16.16b,v17.16b,v18.16b,v19.16b},[x10],#64 + ld1 {v20.16b,v21.16b,v22.16b,v23.16b},[x10],#64 + ld1 {v24.16b,v25.16b,v26.16b,v27.16b},[x10],#64 + ld1 {v28.16b,v29.16b,v30.16b,v31.16b},[x10] +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif + mov x3,x2 + mov x10,x3 + mov w11,#8 + mov w12,v4.s[0] + mov w13,v4.s[1] + mov w14,v4.s[2] + mov w15,v4.s[3] +10: + ldp w7,w8,[x10],8 + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + eor w6,w14,w15 + eor w9,w7,w13 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w12,w12,w6 + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + eor w6,w14,w15 + eor w9,w12,w8 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + ldp w7,w8,[x10],8 + eor w13,w13,w6 + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + eor w6,w12,w13 + eor w9,w7,w15 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w14,w14,w6 + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + eor w6,w12,w13 + eor w9,w14,w8 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w15,w15,w6 + subs w11,w11,#1 + b.ne 10b + mov v4.s[0],w15 + mov v4.s[1],w14 + mov v4.s[2],w13 + mov v4.s[3],w12 +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif + st1 {v4.4s},[x1] + ret + +.globl _vpsm4_decrypt + +.align 5 +_vpsm4_decrypt: + AARCH64_VALID_CALL_TARGET + ld1 {v4.4s},[x0] + adrp x10,Lsbox@PAGE + add x10,x10,Lsbox@PAGEOFF + ld1 {v16.16b,v17.16b,v18.16b,v19.16b},[x10],#64 + ld1 {v20.16b,v21.16b,v22.16b,v23.16b},[x10],#64 + ld1 {v24.16b,v25.16b,v26.16b,v27.16b},[x10],#64 + ld1 {v28.16b,v29.16b,v30.16b,v31.16b},[x10] +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif + mov x3,x2 + mov x10,x3 + mov w11,#8 + mov w12,v4.s[0] + mov w13,v4.s[1] + mov w14,v4.s[2] + mov w15,v4.s[3] +10: + ldp w7,w8,[x10],8 + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + eor w6,w14,w15 + eor w9,w7,w13 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w12,w12,w6 + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + eor w6,w14,w15 + eor w9,w12,w8 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + ldp w7,w8,[x10],8 + eor w13,w13,w6 + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + eor w6,w12,w13 + eor w9,w7,w15 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w14,w14,w6 + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + eor w6,w12,w13 + eor w9,w14,w8 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w15,w15,w6 + subs w11,w11,#1 + b.ne 10b + mov v4.s[0],w15 + mov v4.s[1],w14 + mov v4.s[2],w13 + mov v4.s[3],w12 +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif + st1 {v4.4s},[x1] + ret + +.globl _vpsm4_ecb_encrypt + +.align 5 +_vpsm4_ecb_encrypt: + AARCH64_SIGN_LINK_REGISTER + // convert length into blocks + lsr x2,x2,4 + stp d8,d9,[sp,#-80]! + stp d10,d11,[sp,#16] + stp d12,d13,[sp,#32] + stp d14,d15,[sp,#48] + stp x29,x30,[sp,#64] + adrp x10,Lsbox@PAGE + add x10,x10,Lsbox@PAGEOFF + ld1 {v16.16b,v17.16b,v18.16b,v19.16b},[x10],#64 + ld1 {v20.16b,v21.16b,v22.16b,v23.16b},[x10],#64 + ld1 {v24.16b,v25.16b,v26.16b,v27.16b},[x10],#64 + ld1 {v28.16b,v29.16b,v30.16b,v31.16b},[x10] +Lecb_8_blocks_process: + cmp w2,#8 + b.lt Lecb_4_blocks_process + ld4 {v4.4s,v5.4s,v6.4s,v7.4s},[x0],#64 + ld4 {v8.4s,v9.4s,v10.4s,v11.4s},[x0],#64 +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif +#ifndef __AARCH64EB__ + rev32 v5.16b,v5.16b +#endif +#ifndef __AARCH64EB__ + rev32 v6.16b,v6.16b +#endif +#ifndef __AARCH64EB__ + rev32 v7.16b,v7.16b +#endif +#ifndef __AARCH64EB__ + rev32 v8.16b,v8.16b +#endif +#ifndef __AARCH64EB__ + rev32 v9.16b,v9.16b +#endif +#ifndef __AARCH64EB__ + rev32 v10.16b,v10.16b +#endif +#ifndef __AARCH64EB__ + rev32 v11.16b,v11.16b +#endif + bl _vpsm4_enc_8blks + st4 {v0.4s,v1.4s,v2.4s,v3.4s},[x1],#64 + st4 {v4.4s,v5.4s,v6.4s,v7.4s},[x1],#64 + subs w2,w2,#8 + b.gt Lecb_8_blocks_process + b 100f +Lecb_4_blocks_process: + cmp w2,#4 + b.lt 1f + ld4 {v4.4s,v5.4s,v6.4s,v7.4s},[x0],#64 +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif +#ifndef __AARCH64EB__ + rev32 v5.16b,v5.16b +#endif +#ifndef __AARCH64EB__ + rev32 v6.16b,v6.16b +#endif +#ifndef __AARCH64EB__ + rev32 v7.16b,v7.16b +#endif + bl _vpsm4_enc_4blks + st4 {v0.4s,v1.4s,v2.4s,v3.4s},[x1],#64 + sub w2,w2,#4 +1: + // process last block + cmp w2,#1 + b.lt 100f + b.gt 1f + ld1 {v4.4s},[x0] +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif + mov x10,x3 + mov w11,#8 + mov w12,v4.s[0] + mov w13,v4.s[1] + mov w14,v4.s[2] + mov w15,v4.s[3] +10: + ldp w7,w8,[x10],8 + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + eor w6,w14,w15 + eor w9,w7,w13 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w12,w12,w6 + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + eor w6,w14,w15 + eor w9,w12,w8 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + ldp w7,w8,[x10],8 + eor w13,w13,w6 + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + eor w6,w12,w13 + eor w9,w7,w15 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w14,w14,w6 + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + eor w6,w12,w13 + eor w9,w14,w8 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w15,w15,w6 + subs w11,w11,#1 + b.ne 10b + mov v4.s[0],w15 + mov v4.s[1],w14 + mov v4.s[2],w13 + mov v4.s[3],w12 +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif + st1 {v4.4s},[x1] + b 100f +1: // process last 2 blocks + ld4 {v4.s,v5.s,v6.s,v7.s}[0],[x0],#16 + ld4 {v4.s,v5.s,v6.s,v7.s}[1],[x0],#16 + cmp w2,#2 + b.gt 1f +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif +#ifndef __AARCH64EB__ + rev32 v5.16b,v5.16b +#endif +#ifndef __AARCH64EB__ + rev32 v6.16b,v6.16b +#endif +#ifndef __AARCH64EB__ + rev32 v7.16b,v7.16b +#endif + bl _vpsm4_enc_4blks + st4 {v0.s,v1.s,v2.s,v3.s}[0],[x1],#16 + st4 {v0.s,v1.s,v2.s,v3.s}[1],[x1] + b 100f +1: // process last 3 blocks + ld4 {v4.s,v5.s,v6.s,v7.s}[2],[x0],#16 +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif +#ifndef __AARCH64EB__ + rev32 v5.16b,v5.16b +#endif +#ifndef __AARCH64EB__ + rev32 v6.16b,v6.16b +#endif +#ifndef __AARCH64EB__ + rev32 v7.16b,v7.16b +#endif + bl _vpsm4_enc_4blks + st4 {v0.s,v1.s,v2.s,v3.s}[0],[x1],#16 + st4 {v0.s,v1.s,v2.s,v3.s}[1],[x1],#16 + st4 {v0.s,v1.s,v2.s,v3.s}[2],[x1] +100: + ldp d10,d11,[sp,#16] + ldp d12,d13,[sp,#32] + ldp d14,d15,[sp,#48] + ldp x29,x30,[sp,#64] + ldp d8,d9,[sp],#80 + AARCH64_VALIDATE_LINK_REGISTER + ret + +.globl _vpsm4_cbc_encrypt + +.align 5 +_vpsm4_cbc_encrypt: + AARCH64_VALID_CALL_TARGET + lsr x2,x2,4 + adrp x10,Lsbox@PAGE + add x10,x10,Lsbox@PAGEOFF + ld1 {v16.16b,v17.16b,v18.16b,v19.16b},[x10],#64 + ld1 {v20.16b,v21.16b,v22.16b,v23.16b},[x10],#64 + ld1 {v24.16b,v25.16b,v26.16b,v27.16b},[x10],#64 + ld1 {v28.16b,v29.16b,v30.16b,v31.16b},[x10] + cbz w5,Ldec + ld1 {v3.4s},[x4] +Lcbc_4_blocks_enc: + cmp w2,#4 + b.lt 1f + ld1 {v4.4s,v5.4s,v6.4s,v7.4s},[x0],#64 + eor v4.16b,v4.16b,v3.16b +#ifndef __AARCH64EB__ + rev32 v5.16b,v5.16b +#endif +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif +#ifndef __AARCH64EB__ + rev32 v6.16b,v6.16b +#endif +#ifndef __AARCH64EB__ + rev32 v7.16b,v7.16b +#endif + mov x10,x3 + mov w11,#8 + mov w12,v4.s[0] + mov w13,v4.s[1] + mov w14,v4.s[2] + mov w15,v4.s[3] +10: + ldp w7,w8,[x10],8 + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + eor w6,w14,w15 + eor w9,w7,w13 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w12,w12,w6 + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + eor w6,w14,w15 + eor w9,w12,w8 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + ldp w7,w8,[x10],8 + eor w13,w13,w6 + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + eor w6,w12,w13 + eor w9,w7,w15 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w14,w14,w6 + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + eor w6,w12,w13 + eor w9,w14,w8 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w15,w15,w6 + subs w11,w11,#1 + b.ne 10b + mov v4.s[0],w15 + mov v4.s[1],w14 + mov v4.s[2],w13 + mov v4.s[3],w12 + eor v5.16b,v5.16b,v4.16b + mov x10,x3 + mov w11,#8 + mov w12,v5.s[0] + mov w13,v5.s[1] + mov w14,v5.s[2] + mov w15,v5.s[3] +10: + ldp w7,w8,[x10],8 + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + eor w6,w14,w15 + eor w9,w7,w13 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w12,w12,w6 + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + eor w6,w14,w15 + eor w9,w12,w8 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + ldp w7,w8,[x10],8 + eor w13,w13,w6 + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + eor w6,w12,w13 + eor w9,w7,w15 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w14,w14,w6 + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + eor w6,w12,w13 + eor w9,w14,w8 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w15,w15,w6 + subs w11,w11,#1 + b.ne 10b + mov v5.s[0],w15 + mov v5.s[1],w14 + mov v5.s[2],w13 + mov v5.s[3],w12 +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif + eor v6.16b,v6.16b,v5.16b + mov x10,x3 + mov w11,#8 + mov w12,v6.s[0] + mov w13,v6.s[1] + mov w14,v6.s[2] + mov w15,v6.s[3] +10: + ldp w7,w8,[x10],8 + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + eor w6,w14,w15 + eor w9,w7,w13 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w12,w12,w6 + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + eor w6,w14,w15 + eor w9,w12,w8 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + ldp w7,w8,[x10],8 + eor w13,w13,w6 + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + eor w6,w12,w13 + eor w9,w7,w15 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w14,w14,w6 + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + eor w6,w12,w13 + eor w9,w14,w8 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w15,w15,w6 + subs w11,w11,#1 + b.ne 10b + mov v6.s[0],w15 + mov v6.s[1],w14 + mov v6.s[2],w13 + mov v6.s[3],w12 +#ifndef __AARCH64EB__ + rev32 v5.16b,v5.16b +#endif + eor v7.16b,v7.16b,v6.16b + mov x10,x3 + mov w11,#8 + mov w12,v7.s[0] + mov w13,v7.s[1] + mov w14,v7.s[2] + mov w15,v7.s[3] +10: + ldp w7,w8,[x10],8 + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + eor w6,w14,w15 + eor w9,w7,w13 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w12,w12,w6 + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + eor w6,w14,w15 + eor w9,w12,w8 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + ldp w7,w8,[x10],8 + eor w13,w13,w6 + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + eor w6,w12,w13 + eor w9,w7,w15 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w14,w14,w6 + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + eor w6,w12,w13 + eor w9,w14,w8 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w15,w15,w6 + subs w11,w11,#1 + b.ne 10b + mov v7.s[0],w15 + mov v7.s[1],w14 + mov v7.s[2],w13 + mov v7.s[3],w12 +#ifndef __AARCH64EB__ + rev32 v6.16b,v6.16b +#endif +#ifndef __AARCH64EB__ + rev32 v7.16b,v7.16b +#endif + orr v3.16b,v7.16b,v7.16b + st1 {v4.4s,v5.4s,v6.4s,v7.4s},[x1],#64 + subs w2,w2,#4 + b.ne Lcbc_4_blocks_enc + b 2f +1: + subs w2,w2,#1 + b.lt 2f + ld1 {v4.4s},[x0],#16 + eor v3.16b,v3.16b,v4.16b +#ifndef __AARCH64EB__ + rev32 v3.16b,v3.16b +#endif + mov x10,x3 + mov w11,#8 + mov w12,v3.s[0] + mov w13,v3.s[1] + mov w14,v3.s[2] + mov w15,v3.s[3] +10: + ldp w7,w8,[x10],8 + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + eor w6,w14,w15 + eor w9,w7,w13 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w12,w12,w6 + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + eor w6,w14,w15 + eor w9,w12,w8 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + ldp w7,w8,[x10],8 + eor w13,w13,w6 + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + eor w6,w12,w13 + eor w9,w7,w15 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w14,w14,w6 + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + eor w6,w12,w13 + eor w9,w14,w8 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w15,w15,w6 + subs w11,w11,#1 + b.ne 10b + mov v3.s[0],w15 + mov v3.s[1],w14 + mov v3.s[2],w13 + mov v3.s[3],w12 +#ifndef __AARCH64EB__ + rev32 v3.16b,v3.16b +#endif + st1 {v3.4s},[x1],#16 + b 1b +2: + // save back IV + st1 {v3.4s},[x4] + ret + +Ldec: + // decryption mode starts + AARCH64_SIGN_LINK_REGISTER + stp d8,d9,[sp,#-80]! + stp d10,d11,[sp,#16] + stp d12,d13,[sp,#32] + stp d14,d15,[sp,#48] + stp x29,x30,[sp,#64] +Lcbc_8_blocks_dec: + cmp w2,#8 + b.lt 1f + ld4 {v4.4s,v5.4s,v6.4s,v7.4s},[x0] + add x10,x0,#64 + ld4 {v8.4s,v9.4s,v10.4s,v11.4s},[x10] +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif +#ifndef __AARCH64EB__ + rev32 v5.16b,v5.16b +#endif +#ifndef __AARCH64EB__ + rev32 v6.16b,v6.16b +#endif +#ifndef __AARCH64EB__ + rev32 v7.16b,v7.16b +#endif +#ifndef __AARCH64EB__ + rev32 v8.16b,v8.16b +#endif +#ifndef __AARCH64EB__ + rev32 v9.16b,v9.16b +#endif +#ifndef __AARCH64EB__ + rev32 v10.16b,v10.16b +#endif +#ifndef __AARCH64EB__ + rev32 v11.16b,v11.16b +#endif + bl _vpsm4_enc_8blks + zip1 v8.4s,v0.4s,v1.4s + zip2 v9.4s,v0.4s,v1.4s + zip1 v10.4s,v2.4s,v3.4s + zip2 v11.4s,v2.4s,v3.4s + zip1 v0.2d,v8.2d,v10.2d + zip2 v1.2d,v8.2d,v10.2d + zip1 v2.2d,v9.2d,v11.2d + zip2 v3.2d,v9.2d,v11.2d + zip1 v8.4s,v4.4s,v5.4s + zip2 v9.4s,v4.4s,v5.4s + zip1 v10.4s,v6.4s,v7.4s + zip2 v11.4s,v6.4s,v7.4s + zip1 v4.2d,v8.2d,v10.2d + zip2 v5.2d,v8.2d,v10.2d + zip1 v6.2d,v9.2d,v11.2d + zip2 v7.2d,v9.2d,v11.2d + ld1 {v15.4s},[x4] + ld1 {v8.4s,v9.4s,v10.4s,v11.4s},[x0],#64 + // note ivec1 and vtmpx[3] are reusing the same register + // care needs to be taken to avoid conflict + eor v0.16b,v0.16b,v15.16b + ld1 {v12.4s,v13.4s,v14.4s,v15.4s},[x0],#64 + eor v1.16b,v1.16b,v8.16b + eor v2.16b,v2.16b,v9.16b + eor v3.16b,v3.16b,v10.16b + // save back IV + st1 {v15.4s}, [x4] + eor v4.16b,v4.16b,v11.16b + eor v5.16b,v5.16b,v12.16b + eor v6.16b,v6.16b,v13.16b + eor v7.16b,v7.16b,v14.16b + st1 {v0.4s,v1.4s,v2.4s,v3.4s},[x1],#64 + st1 {v4.4s,v5.4s,v6.4s,v7.4s},[x1],#64 + subs w2,w2,#8 + b.gt Lcbc_8_blocks_dec + b.eq 100f +1: + ld1 {v15.4s},[x4] +Lcbc_4_blocks_dec: + cmp w2,#4 + b.lt 1f + ld4 {v4.4s,v5.4s,v6.4s,v7.4s},[x0] +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif +#ifndef __AARCH64EB__ + rev32 v5.16b,v5.16b +#endif +#ifndef __AARCH64EB__ + rev32 v6.16b,v6.16b +#endif +#ifndef __AARCH64EB__ + rev32 v7.16b,v7.16b +#endif + bl _vpsm4_enc_4blks + ld1 {v4.4s,v5.4s,v6.4s,v7.4s},[x0],#64 + zip1 v8.4s,v0.4s,v1.4s + zip2 v9.4s,v0.4s,v1.4s + zip1 v10.4s,v2.4s,v3.4s + zip2 v11.4s,v2.4s,v3.4s + zip1 v0.2d,v8.2d,v10.2d + zip2 v1.2d,v8.2d,v10.2d + zip1 v2.2d,v9.2d,v11.2d + zip2 v3.2d,v9.2d,v11.2d + eor v0.16b,v0.16b,v15.16b + eor v1.16b,v1.16b,v4.16b + orr v15.16b,v7.16b,v7.16b + eor v2.16b,v2.16b,v5.16b + eor v3.16b,v3.16b,v6.16b + st1 {v0.4s,v1.4s,v2.4s,v3.4s},[x1],#64 + subs w2,w2,#4 + b.gt Lcbc_4_blocks_dec + // save back IV + st1 {v7.4s}, [x4] + b 100f +1: // last block + subs w2,w2,#1 + b.lt 100f + b.gt 1f + ld1 {v4.4s},[x0],#16 + // save back IV + st1 {v4.4s}, [x4] +#ifndef __AARCH64EB__ + rev32 v8.16b,v4.16b +#else + mov v8.16b,v4.16b +#endif + mov x10,x3 + mov w11,#8 + mov w12,v8.s[0] + mov w13,v8.s[1] + mov w14,v8.s[2] + mov w15,v8.s[3] +10: + ldp w7,w8,[x10],8 + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + eor w6,w14,w15 + eor w9,w7,w13 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w12,w12,w6 + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + eor w6,w14,w15 + eor w9,w12,w8 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + ldp w7,w8,[x10],8 + eor w13,w13,w6 + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + eor w6,w12,w13 + eor w9,w7,w15 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w14,w14,w6 + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + eor w6,w12,w13 + eor w9,w14,w8 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w15,w15,w6 + subs w11,w11,#1 + b.ne 10b + mov v8.s[0],w15 + mov v8.s[1],w14 + mov v8.s[2],w13 + mov v8.s[3],w12 +#ifndef __AARCH64EB__ + rev32 v8.16b,v8.16b +#endif + eor v8.16b,v8.16b,v15.16b + st1 {v8.4s},[x1],#16 + b 100f +1: // last two blocks + ld4 {v4.s,v5.s,v6.s,v7.s}[0],[x0] + add x10,x0,#16 + ld4 {v4.s,v5.s,v6.s,v7.s}[1],[x10],#16 + subs w2,w2,1 + b.gt 1f +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif +#ifndef __AARCH64EB__ + rev32 v5.16b,v5.16b +#endif +#ifndef __AARCH64EB__ + rev32 v6.16b,v6.16b +#endif +#ifndef __AARCH64EB__ + rev32 v7.16b,v7.16b +#endif + bl _vpsm4_enc_4blks + ld1 {v4.4s,v5.4s},[x0],#32 + zip1 v8.4s,v0.4s,v1.4s + zip2 v9.4s,v0.4s,v1.4s + zip1 v10.4s,v2.4s,v3.4s + zip2 v11.4s,v2.4s,v3.4s + zip1 v0.2d,v8.2d,v10.2d + zip2 v1.2d,v8.2d,v10.2d + zip1 v2.2d,v9.2d,v11.2d + zip2 v3.2d,v9.2d,v11.2d + eor v0.16b,v0.16b,v15.16b + eor v1.16b,v1.16b,v4.16b + st1 {v0.4s,v1.4s},[x1],#32 + // save back IV + st1 {v5.4s}, [x4] + b 100f +1: // last 3 blocks + ld4 {v4.s,v5.s,v6.s,v7.s}[2],[x10] +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif +#ifndef __AARCH64EB__ + rev32 v5.16b,v5.16b +#endif +#ifndef __AARCH64EB__ + rev32 v6.16b,v6.16b +#endif +#ifndef __AARCH64EB__ + rev32 v7.16b,v7.16b +#endif + bl _vpsm4_enc_4blks + ld1 {v4.4s,v5.4s,v6.4s},[x0],#48 + zip1 v8.4s,v0.4s,v1.4s + zip2 v9.4s,v0.4s,v1.4s + zip1 v10.4s,v2.4s,v3.4s + zip2 v11.4s,v2.4s,v3.4s + zip1 v0.2d,v8.2d,v10.2d + zip2 v1.2d,v8.2d,v10.2d + zip1 v2.2d,v9.2d,v11.2d + zip2 v3.2d,v9.2d,v11.2d + eor v0.16b,v0.16b,v15.16b + eor v1.16b,v1.16b,v4.16b + eor v2.16b,v2.16b,v5.16b + st1 {v0.4s,v1.4s,v2.4s},[x1],#48 + // save back IV + st1 {v6.4s}, [x4] +100: + ldp d10,d11,[sp,#16] + ldp d12,d13,[sp,#32] + ldp d14,d15,[sp,#48] + ldp x29,x30,[sp,#64] + ldp d8,d9,[sp],#80 + AARCH64_VALIDATE_LINK_REGISTER + ret + +.globl _vpsm4_ctr32_encrypt_blocks + +.align 5 +_vpsm4_ctr32_encrypt_blocks: + AARCH64_VALID_CALL_TARGET + ld1 {v3.4s},[x4] +#ifndef __AARCH64EB__ + rev32 v3.16b,v3.16b +#endif + adrp x10,Lsbox@PAGE + add x10,x10,Lsbox@PAGEOFF + ld1 {v16.16b,v17.16b,v18.16b,v19.16b},[x10],#64 + ld1 {v20.16b,v21.16b,v22.16b,v23.16b},[x10],#64 + ld1 {v24.16b,v25.16b,v26.16b,v27.16b},[x10],#64 + ld1 {v28.16b,v29.16b,v30.16b,v31.16b},[x10] + cmp w2,#1 + b.ne 1f + // fast processing for one single block without + // context saving overhead + mov x10,x3 + mov w11,#8 + mov w12,v3.s[0] + mov w13,v3.s[1] + mov w14,v3.s[2] + mov w15,v3.s[3] +10: + ldp w7,w8,[x10],8 + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + eor w6,w14,w15 + eor w9,w7,w13 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w12,w12,w6 + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + eor w6,w14,w15 + eor w9,w12,w8 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + ldp w7,w8,[x10],8 + eor w13,w13,w6 + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + eor w6,w12,w13 + eor w9,w7,w15 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w14,w14,w6 + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + eor w6,w12,w13 + eor w9,w14,w8 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w15,w15,w6 + subs w11,w11,#1 + b.ne 10b + mov v3.s[0],w15 + mov v3.s[1],w14 + mov v3.s[2],w13 + mov v3.s[3],w12 +#ifndef __AARCH64EB__ + rev32 v3.16b,v3.16b +#endif + ld1 {v4.4s},[x0] + eor v4.16b,v4.16b,v3.16b + st1 {v4.4s},[x1] + ret +1: + AARCH64_SIGN_LINK_REGISTER + stp d8,d9,[sp,#-80]! + stp d10,d11,[sp,#16] + stp d12,d13,[sp,#32] + stp d14,d15,[sp,#48] + stp x29,x30,[sp,#64] + mov w12,v3.s[0] + mov w13,v3.s[1] + mov w14,v3.s[2] + mov w5,v3.s[3] +Lctr32_4_blocks_process: + cmp w2,#4 + b.lt 1f + dup v4.4s,w12 + dup v5.4s,w13 + dup v6.4s,w14 + mov v7.s[0],w5 + add w5,w5,#1 + mov v7.s[1],w5 + add w5,w5,#1 + mov v7.s[2],w5 + add w5,w5,#1 + mov v7.s[3],w5 + add w5,w5,#1 + cmp w2,#8 + b.ge Lctr32_8_blocks_process + bl _vpsm4_enc_4blks + ld4 {v12.4s,v13.4s,v14.4s,v15.4s},[x0],#64 + eor v0.16b,v0.16b,v12.16b + eor v1.16b,v1.16b,v13.16b + eor v2.16b,v2.16b,v14.16b + eor v3.16b,v3.16b,v15.16b + st4 {v0.4s,v1.4s,v2.4s,v3.4s},[x1],#64 + subs w2,w2,#4 + b.ne Lctr32_4_blocks_process + b 100f +Lctr32_8_blocks_process: + dup v8.4s,w12 + dup v9.4s,w13 + dup v10.4s,w14 + mov v11.s[0],w5 + add w5,w5,#1 + mov v11.s[1],w5 + add w5,w5,#1 + mov v11.s[2],w5 + add w5,w5,#1 + mov v11.s[3],w5 + add w5,w5,#1 + bl _vpsm4_enc_8blks + ld4 {v12.4s,v13.4s,v14.4s,v15.4s},[x0],#64 + ld4 {v8.4s,v9.4s,v10.4s,v11.4s},[x0],#64 + eor v0.16b,v0.16b,v12.16b + eor v1.16b,v1.16b,v13.16b + eor v2.16b,v2.16b,v14.16b + eor v3.16b,v3.16b,v15.16b + eor v4.16b,v4.16b,v8.16b + eor v5.16b,v5.16b,v9.16b + eor v6.16b,v6.16b,v10.16b + eor v7.16b,v7.16b,v11.16b + st4 {v0.4s,v1.4s,v2.4s,v3.4s},[x1],#64 + st4 {v4.4s,v5.4s,v6.4s,v7.4s},[x1],#64 + subs w2,w2,#8 + b.ne Lctr32_4_blocks_process + b 100f +1: // last block processing + subs w2,w2,#1 + b.lt 100f + b.gt 1f + mov v3.s[0],w12 + mov v3.s[1],w13 + mov v3.s[2],w14 + mov v3.s[3],w5 + mov x10,x3 + mov w11,#8 + mov w12,v3.s[0] + mov w13,v3.s[1] + mov w14,v3.s[2] + mov w15,v3.s[3] +10: + ldp w7,w8,[x10],8 + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + eor w6,w14,w15 + eor w9,w7,w13 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w12,w12,w6 + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + eor w6,w14,w15 + eor w9,w12,w8 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + ldp w7,w8,[x10],8 + eor w13,w13,w6 + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + eor w6,w12,w13 + eor w9,w7,w15 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w14,w14,w6 + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + eor w6,w12,w13 + eor w9,w14,w8 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w15,w15,w6 + subs w11,w11,#1 + b.ne 10b + mov v3.s[0],w15 + mov v3.s[1],w14 + mov v3.s[2],w13 + mov v3.s[3],w12 +#ifndef __AARCH64EB__ + rev32 v3.16b,v3.16b +#endif + ld1 {v4.4s},[x0] + eor v4.16b,v4.16b,v3.16b + st1 {v4.4s},[x1] + b 100f +1: // last 2 blocks processing + dup v4.4s,w12 + dup v5.4s,w13 + dup v6.4s,w14 + mov v7.s[0],w5 + add w5,w5,#1 + mov v7.s[1],w5 + subs w2,w2,#1 + b.ne 1f + bl _vpsm4_enc_4blks + ld4 {v12.s,v13.s,v14.s,v15.s}[0],[x0],#16 + ld4 {v12.s,v13.s,v14.s,v15.s}[1],[x0],#16 + eor v0.16b,v0.16b,v12.16b + eor v1.16b,v1.16b,v13.16b + eor v2.16b,v2.16b,v14.16b + eor v3.16b,v3.16b,v15.16b + st4 {v0.s,v1.s,v2.s,v3.s}[0],[x1],#16 + st4 {v0.s,v1.s,v2.s,v3.s}[1],[x1],#16 + b 100f +1: // last 3 blocks processing + add w5,w5,#1 + mov v7.s[2],w5 + bl _vpsm4_enc_4blks + ld4 {v12.s,v13.s,v14.s,v15.s}[0],[x0],#16 + ld4 {v12.s,v13.s,v14.s,v15.s}[1],[x0],#16 + ld4 {v12.s,v13.s,v14.s,v15.s}[2],[x0],#16 + eor v0.16b,v0.16b,v12.16b + eor v1.16b,v1.16b,v13.16b + eor v2.16b,v2.16b,v14.16b + eor v3.16b,v3.16b,v15.16b + st4 {v0.s,v1.s,v2.s,v3.s}[0],[x1],#16 + st4 {v0.s,v1.s,v2.s,v3.s}[1],[x1],#16 + st4 {v0.s,v1.s,v2.s,v3.s}[2],[x1],#16 +100: + ldp d10,d11,[sp,#16] + ldp d12,d13,[sp,#32] + ldp d14,d15,[sp,#48] + ldp x29,x30,[sp,#64] + ldp d8,d9,[sp],#80 + AARCH64_VALIDATE_LINK_REGISTER + ret + +.globl _vpsm4_xts_encrypt_gb + +.align 5 +_vpsm4_xts_encrypt_gb: + AARCH64_SIGN_LINK_REGISTER + stp x15, x16, [sp, #-0x10]! + stp x17, x18, [sp, #-0x10]! + stp x19, x20, [sp, #-0x10]! + stp x21, x22, [sp, #-0x10]! + stp x23, x24, [sp, #-0x10]! + stp x25, x26, [sp, #-0x10]! + stp x27, x28, [sp, #-0x10]! + stp x29, x30, [sp, #-0x10]! + stp d8, d9, [sp, #-0x10]! + stp d10, d11, [sp, #-0x10]! + stp d12, d13, [sp, #-0x10]! + stp d14, d15, [sp, #-0x10]! + mov x26,x3 + mov x27,x4 + mov w28,w6 + ld1 {v8.4s}, [x5] + mov x3,x27 + adrp x10,Lsbox@PAGE + add x10,x10,Lsbox@PAGEOFF + ld1 {v16.16b,v17.16b,v18.16b,v19.16b},[x10],#64 + ld1 {v20.16b,v21.16b,v22.16b,v23.16b},[x10],#64 + ld1 {v24.16b,v25.16b,v26.16b,v27.16b},[x10],#64 + ld1 {v28.16b,v29.16b,v30.16b,v31.16b},[x10] +#ifndef __AARCH64EB__ + rev32 v8.16b,v8.16b +#endif + mov x10,x3 + mov w11,#8 + mov w12,v8.s[0] + mov w13,v8.s[1] + mov w14,v8.s[2] + mov w15,v8.s[3] +10: + ldp w7,w8,[x10],8 + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + eor w6,w14,w15 + eor w9,w7,w13 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w12,w12,w6 + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + eor w6,w14,w15 + eor w9,w12,w8 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + ldp w7,w8,[x10],8 + eor w13,w13,w6 + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + eor w6,w12,w13 + eor w9,w7,w15 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w14,w14,w6 + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + eor w6,w12,w13 + eor w9,w14,w8 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w15,w15,w6 + subs w11,w11,#1 + b.ne 10b + mov v8.s[0],w15 + mov v8.s[1],w14 + mov v8.s[2],w13 + mov v8.s[3],w12 +#ifndef __AARCH64EB__ + rev32 v8.16b,v8.16b +#endif + mov x3,x26 + and x29,x2,#0x0F + // convert length into blocks + lsr x2,x2,4 + cmp x2,#1 + b.lt .return_gb + + cmp x29,0 + // If the encryption/decryption Length is N times of 16, + // the all blocks are encrypted/decrypted in .xts_encrypt_blocks_gb + b.eq .xts_encrypt_blocks_gb + + // If the encryption/decryption length is not N times of 16, + // the last two blocks are encrypted/decrypted in .last_2blks_tweak_gb or .only_2blks_tweak_gb + // the other blocks are encrypted/decrypted in .xts_encrypt_blocks_gb + subs x2,x2,#1 + b.eq .only_2blks_tweak_gb +.xts_encrypt_blocks_gb: + rbit v8.16b,v8.16b +#ifdef __AARCH64EB__ + rev32 v8.16b,v8.16b +#endif + mov x12,v8.d[0] + mov x13,v8.d[1] + mov w7,0x87 + extr x9,x13,x13,#32 + extr x15,x13,x12,#63 + and w8,w7,w9,asr#31 + eor x14,x8,x12,lsl#1 + mov w7,0x87 + extr x9,x15,x15,#32 + extr x17,x15,x14,#63 + and w8,w7,w9,asr#31 + eor x16,x8,x14,lsl#1 + mov w7,0x87 + extr x9,x17,x17,#32 + extr x19,x17,x16,#63 + and w8,w7,w9,asr#31 + eor x18,x8,x16,lsl#1 + mov w7,0x87 + extr x9,x19,x19,#32 + extr x21,x19,x18,#63 + and w8,w7,w9,asr#31 + eor x20,x8,x18,lsl#1 + mov w7,0x87 + extr x9,x21,x21,#32 + extr x23,x21,x20,#63 + and w8,w7,w9,asr#31 + eor x22,x8,x20,lsl#1 + mov w7,0x87 + extr x9,x23,x23,#32 + extr x25,x23,x22,#63 + and w8,w7,w9,asr#31 + eor x24,x8,x22,lsl#1 + mov w7,0x87 + extr x9,x25,x25,#32 + extr x27,x25,x24,#63 + and w8,w7,w9,asr#31 + eor x26,x8,x24,lsl#1 +Lxts_8_blocks_process_gb: + cmp x2,#8 + b.lt Lxts_4_blocks_process_gb + mov v0.d[0],x12 + mov v0.d[1],x13 +#ifdef __AARCH64EB__ + rev32 v0.16b,v0.16b +#endif + mov v1.d[0],x14 + mov v1.d[1],x15 +#ifdef __AARCH64EB__ + rev32 v1.16b,v1.16b +#endif + mov v2.d[0],x16 + mov v2.d[1],x17 +#ifdef __AARCH64EB__ + rev32 v2.16b,v2.16b +#endif + mov v3.d[0],x18 + mov v3.d[1],x19 +#ifdef __AARCH64EB__ + rev32 v3.16b,v3.16b +#endif + mov v12.d[0],x20 + mov v12.d[1],x21 +#ifdef __AARCH64EB__ + rev32 v12.16b,v12.16b +#endif + mov v13.d[0],x22 + mov v13.d[1],x23 +#ifdef __AARCH64EB__ + rev32 v13.16b,v13.16b +#endif + mov v14.d[0],x24 + mov v14.d[1],x25 +#ifdef __AARCH64EB__ + rev32 v14.16b,v14.16b +#endif + mov v15.d[0],x26 + mov v15.d[1],x27 +#ifdef __AARCH64EB__ + rev32 v15.16b,v15.16b +#endif + ld1 {v4.4s,v5.4s,v6.4s,v7.4s},[x0],#64 + rbit v0.16b,v0.16b + rbit v1.16b,v1.16b + rbit v2.16b,v2.16b + rbit v3.16b,v3.16b + eor v4.16b, v4.16b, v0.16b + eor v5.16b, v5.16b, v1.16b + eor v6.16b, v6.16b, v2.16b + eor v7.16b, v7.16b, v3.16b + ld1 {v8.4s,v9.4s,v10.4s,v11.4s},[x0],#64 + rbit v12.16b,v12.16b + rbit v13.16b,v13.16b + rbit v14.16b,v14.16b + rbit v15.16b,v15.16b + eor v8.16b, v8.16b, v12.16b + eor v9.16b, v9.16b, v13.16b + eor v10.16b, v10.16b, v14.16b + eor v11.16b, v11.16b, v15.16b +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif +#ifndef __AARCH64EB__ + rev32 v5.16b,v5.16b +#endif +#ifndef __AARCH64EB__ + rev32 v6.16b,v6.16b +#endif +#ifndef __AARCH64EB__ + rev32 v7.16b,v7.16b +#endif +#ifndef __AARCH64EB__ + rev32 v8.16b,v8.16b +#endif +#ifndef __AARCH64EB__ + rev32 v9.16b,v9.16b +#endif +#ifndef __AARCH64EB__ + rev32 v10.16b,v10.16b +#endif +#ifndef __AARCH64EB__ + rev32 v11.16b,v11.16b +#endif + zip1 v0.4s,v4.4s,v5.4s + zip2 v1.4s,v4.4s,v5.4s + zip1 v2.4s,v6.4s,v7.4s + zip2 v3.4s,v6.4s,v7.4s + zip1 v4.2d,v0.2d,v2.2d + zip2 v5.2d,v0.2d,v2.2d + zip1 v6.2d,v1.2d,v3.2d + zip2 v7.2d,v1.2d,v3.2d + zip1 v0.4s,v8.4s,v9.4s + zip2 v1.4s,v8.4s,v9.4s + zip1 v2.4s,v10.4s,v11.4s + zip2 v3.4s,v10.4s,v11.4s + zip1 v8.2d,v0.2d,v2.2d + zip2 v9.2d,v0.2d,v2.2d + zip1 v10.2d,v1.2d,v3.2d + zip2 v11.2d,v1.2d,v3.2d + bl _vpsm4_enc_8blks + zip1 v8.4s,v0.4s,v1.4s + zip2 v9.4s,v0.4s,v1.4s + zip1 v10.4s,v2.4s,v3.4s + zip2 v11.4s,v2.4s,v3.4s + zip1 v0.2d,v8.2d,v10.2d + zip2 v1.2d,v8.2d,v10.2d + zip1 v2.2d,v9.2d,v11.2d + zip2 v3.2d,v9.2d,v11.2d + zip1 v8.4s,v4.4s,v5.4s + zip2 v9.4s,v4.4s,v5.4s + zip1 v10.4s,v6.4s,v7.4s + zip2 v11.4s,v6.4s,v7.4s + zip1 v4.2d,v8.2d,v10.2d + zip2 v5.2d,v8.2d,v10.2d + zip1 v6.2d,v9.2d,v11.2d + zip2 v7.2d,v9.2d,v11.2d + mov v12.d[0],x12 + mov v12.d[1],x13 +#ifdef __AARCH64EB__ + rev32 v12.16b,v12.16b +#endif + mov w7,0x87 + extr x9,x27,x27,#32 + extr x13,x27,x26,#63 + and w8,w7,w9,asr#31 + eor x12,x8,x26,lsl#1 + mov v13.d[0],x14 + mov v13.d[1],x15 +#ifdef __AARCH64EB__ + rev32 v13.16b,v13.16b +#endif + mov w7,0x87 + extr x9,x13,x13,#32 + extr x15,x13,x12,#63 + and w8,w7,w9,asr#31 + eor x14,x8,x12,lsl#1 + mov v14.d[0],x16 + mov v14.d[1],x17 +#ifdef __AARCH64EB__ + rev32 v14.16b,v14.16b +#endif + mov w7,0x87 + extr x9,x15,x15,#32 + extr x17,x15,x14,#63 + and w8,w7,w9,asr#31 + eor x16,x8,x14,lsl#1 + mov v15.d[0],x18 + mov v15.d[1],x19 +#ifdef __AARCH64EB__ + rev32 v15.16b,v15.16b +#endif + mov w7,0x87 + extr x9,x17,x17,#32 + extr x19,x17,x16,#63 + and w8,w7,w9,asr#31 + eor x18,x8,x16,lsl#1 + mov v8.d[0],x20 + mov v8.d[1],x21 +#ifdef __AARCH64EB__ + rev32 v8.16b,v8.16b +#endif + mov w7,0x87 + extr x9,x19,x19,#32 + extr x21,x19,x18,#63 + and w8,w7,w9,asr#31 + eor x20,x8,x18,lsl#1 + mov v9.d[0],x22 + mov v9.d[1],x23 +#ifdef __AARCH64EB__ + rev32 v9.16b,v9.16b +#endif + mov w7,0x87 + extr x9,x21,x21,#32 + extr x23,x21,x20,#63 + and w8,w7,w9,asr#31 + eor x22,x8,x20,lsl#1 + mov v10.d[0],x24 + mov v10.d[1],x25 +#ifdef __AARCH64EB__ + rev32 v10.16b,v10.16b +#endif + mov w7,0x87 + extr x9,x23,x23,#32 + extr x25,x23,x22,#63 + and w8,w7,w9,asr#31 + eor x24,x8,x22,lsl#1 + mov v11.d[0],x26 + mov v11.d[1],x27 +#ifdef __AARCH64EB__ + rev32 v11.16b,v11.16b +#endif + mov w7,0x87 + extr x9,x25,x25,#32 + extr x27,x25,x24,#63 + and w8,w7,w9,asr#31 + eor x26,x8,x24,lsl#1 + eor v0.16b, v0.16b, v12.16b + eor v1.16b, v1.16b, v13.16b + eor v2.16b, v2.16b, v14.16b + eor v3.16b, v3.16b, v15.16b + eor v4.16b, v4.16b, v8.16b + eor v5.16b, v5.16b, v9.16b + eor v6.16b, v6.16b, v10.16b + eor v7.16b, v7.16b, v11.16b + + // save the last tweak + st1 {v11.4s},[x5] + st1 {v0.4s,v1.4s,v2.4s,v3.4s},[x1],#64 + st1 {v4.4s,v5.4s,v6.4s,v7.4s},[x1],#64 + subs x2,x2,#8 + b.gt Lxts_8_blocks_process_gb + b 100f +Lxts_4_blocks_process_gb: + mov v8.d[0],x12 + mov v8.d[1],x13 +#ifdef __AARCH64EB__ + rev32 v8.16b,v8.16b +#endif + mov v9.d[0],x14 + mov v9.d[1],x15 +#ifdef __AARCH64EB__ + rev32 v9.16b,v9.16b +#endif + mov v10.d[0],x16 + mov v10.d[1],x17 +#ifdef __AARCH64EB__ + rev32 v10.16b,v10.16b +#endif + mov v11.d[0],x18 + mov v11.d[1],x19 +#ifdef __AARCH64EB__ + rev32 v11.16b,v11.16b +#endif + cmp x2,#4 + b.lt 1f + ld1 {v4.4s,v5.4s,v6.4s,v7.4s},[x0],#64 + rbit v8.16b,v8.16b + rbit v9.16b,v9.16b + rbit v10.16b,v10.16b + rbit v11.16b,v11.16b + eor v4.16b, v4.16b, v8.16b + eor v5.16b, v5.16b, v9.16b + eor v6.16b, v6.16b, v10.16b + eor v7.16b, v7.16b, v11.16b +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif +#ifndef __AARCH64EB__ + rev32 v5.16b,v5.16b +#endif +#ifndef __AARCH64EB__ + rev32 v6.16b,v6.16b +#endif +#ifndef __AARCH64EB__ + rev32 v7.16b,v7.16b +#endif + zip1 v0.4s,v4.4s,v5.4s + zip2 v1.4s,v4.4s,v5.4s + zip1 v2.4s,v6.4s,v7.4s + zip2 v3.4s,v6.4s,v7.4s + zip1 v4.2d,v0.2d,v2.2d + zip2 v5.2d,v0.2d,v2.2d + zip1 v6.2d,v1.2d,v3.2d + zip2 v7.2d,v1.2d,v3.2d + bl _vpsm4_enc_4blks + zip1 v4.4s,v0.4s,v1.4s + zip2 v5.4s,v0.4s,v1.4s + zip1 v6.4s,v2.4s,v3.4s + zip2 v7.4s,v2.4s,v3.4s + zip1 v0.2d,v4.2d,v6.2d + zip2 v1.2d,v4.2d,v6.2d + zip1 v2.2d,v5.2d,v7.2d + zip2 v3.2d,v5.2d,v7.2d + eor v0.16b, v0.16b, v8.16b + eor v1.16b, v1.16b, v9.16b + eor v2.16b, v2.16b, v10.16b + eor v3.16b, v3.16b, v11.16b + st1 {v0.4s,v1.4s,v2.4s,v3.4s},[x1],#64 + sub x2,x2,#4 + mov v8.d[0],x20 + mov v8.d[1],x21 +#ifdef __AARCH64EB__ + rev32 v8.16b,v8.16b +#endif + mov v9.d[0],x22 + mov v9.d[1],x23 +#ifdef __AARCH64EB__ + rev32 v9.16b,v9.16b +#endif + mov v10.d[0],x24 + mov v10.d[1],x25 +#ifdef __AARCH64EB__ + rev32 v10.16b,v10.16b +#endif + // save the last tweak + st1 {v11.4s},[x5] +1: + // process last block + cmp x2,#1 + b.lt 100f + b.gt 1f + ld1 {v4.4s},[x0],#16 + rbit v8.16b,v8.16b + eor v4.16b, v4.16b, v8.16b +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif + mov x10,x3 + mov w11,#8 + mov w12,v4.s[0] + mov w13,v4.s[1] + mov w14,v4.s[2] + mov w15,v4.s[3] +10: + ldp w7,w8,[x10],8 + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + eor w6,w14,w15 + eor w9,w7,w13 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w12,w12,w6 + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + eor w6,w14,w15 + eor w9,w12,w8 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + ldp w7,w8,[x10],8 + eor w13,w13,w6 + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + eor w6,w12,w13 + eor w9,w7,w15 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w14,w14,w6 + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + eor w6,w12,w13 + eor w9,w14,w8 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w15,w15,w6 + subs w11,w11,#1 + b.ne 10b + mov v4.s[0],w15 + mov v4.s[1],w14 + mov v4.s[2],w13 + mov v4.s[3],w12 +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif + eor v4.16b, v4.16b, v8.16b + st1 {v4.4s},[x1],#16 + // save the last tweak + st1 {v8.4s},[x5] + b 100f +1: // process last 2 blocks + cmp x2,#2 + b.gt 1f + ld1 {v4.4s,v5.4s},[x0],#32 + rbit v8.16b,v8.16b + rbit v9.16b,v9.16b + eor v4.16b, v4.16b, v8.16b + eor v5.16b, v5.16b, v9.16b +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif +#ifndef __AARCH64EB__ + rev32 v5.16b,v5.16b +#endif + zip1 v0.4s,v4.4s,v5.4s + zip2 v1.4s,v4.4s,v5.4s + zip1 v2.4s,v6.4s,v7.4s + zip2 v3.4s,v6.4s,v7.4s + zip1 v4.2d,v0.2d,v2.2d + zip2 v5.2d,v0.2d,v2.2d + zip1 v6.2d,v1.2d,v3.2d + zip2 v7.2d,v1.2d,v3.2d + bl _vpsm4_enc_4blks + zip1 v4.4s,v0.4s,v1.4s + zip2 v5.4s,v0.4s,v1.4s + zip1 v6.4s,v2.4s,v3.4s + zip2 v7.4s,v2.4s,v3.4s + zip1 v0.2d,v4.2d,v6.2d + zip2 v1.2d,v4.2d,v6.2d + zip1 v2.2d,v5.2d,v7.2d + zip2 v3.2d,v5.2d,v7.2d + eor v0.16b, v0.16b, v8.16b + eor v1.16b, v1.16b, v9.16b + st1 {v0.4s,v1.4s},[x1],#32 + // save the last tweak + st1 {v9.4s},[x5] + b 100f +1: // process last 3 blocks + ld1 {v4.4s,v5.4s,v6.4s},[x0],#48 + rbit v8.16b,v8.16b + rbit v9.16b,v9.16b + rbit v10.16b,v10.16b + eor v4.16b, v4.16b, v8.16b + eor v5.16b, v5.16b, v9.16b + eor v6.16b, v6.16b, v10.16b +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif +#ifndef __AARCH64EB__ + rev32 v5.16b,v5.16b +#endif +#ifndef __AARCH64EB__ + rev32 v6.16b,v6.16b +#endif + zip1 v0.4s,v4.4s,v5.4s + zip2 v1.4s,v4.4s,v5.4s + zip1 v2.4s,v6.4s,v7.4s + zip2 v3.4s,v6.4s,v7.4s + zip1 v4.2d,v0.2d,v2.2d + zip2 v5.2d,v0.2d,v2.2d + zip1 v6.2d,v1.2d,v3.2d + zip2 v7.2d,v1.2d,v3.2d + bl _vpsm4_enc_4blks + zip1 v4.4s,v0.4s,v1.4s + zip2 v5.4s,v0.4s,v1.4s + zip1 v6.4s,v2.4s,v3.4s + zip2 v7.4s,v2.4s,v3.4s + zip1 v0.2d,v4.2d,v6.2d + zip2 v1.2d,v4.2d,v6.2d + zip1 v2.2d,v5.2d,v7.2d + zip2 v3.2d,v5.2d,v7.2d + eor v0.16b, v0.16b, v8.16b + eor v1.16b, v1.16b, v9.16b + eor v2.16b, v2.16b, v10.16b + st1 {v0.4s,v1.4s,v2.4s},[x1],#48 + // save the last tweak + st1 {v10.4s},[x5] +100: + cmp x29,0 + b.eq .return_gb + +// This branch calculates the last two tweaks, +// while the encryption/decryption length is larger than 32 +.last_2blks_tweak_gb: + ld1 {v8.4s},[x5] +#ifdef __AARCH64EB__ + rev32 v8.16b,v8.16b +#endif + rbit v2.16b,v8.16b + adrp x10,Lxts_magic@PAGE + ldr q0, [x10, Lxts_magic@PAGEOFF] + shl v9.16b, v2.16b, #1 + ext v1.16b, v2.16b, v2.16b,#15 + ushr v1.16b, v1.16b, #7 + mul v1.16b, v1.16b, v0.16b + eor v9.16b, v9.16b, v1.16b + rbit v9.16b,v9.16b + rbit v2.16b,v9.16b + adrp x10,Lxts_magic@PAGE + ldr q0, [x10, Lxts_magic@PAGEOFF] + shl v10.16b, v2.16b, #1 + ext v1.16b, v2.16b, v2.16b,#15 + ushr v1.16b, v1.16b, #7 + mul v1.16b, v1.16b, v0.16b + eor v10.16b, v10.16b, v1.16b + rbit v10.16b,v10.16b + b .check_dec_gb + + +// This branch calculates the last two tweaks, +// while the encryption/decryption length is equal to 32, who only need two tweaks +.only_2blks_tweak_gb: + mov v9.16b,v8.16b +#ifdef __AARCH64EB__ + rev32 v9.16b,v9.16b +#endif + rbit v2.16b,v9.16b + adrp x10,Lxts_magic@PAGE + ldr q0, [x10, Lxts_magic@PAGEOFF] + shl v10.16b, v2.16b, #1 + ext v1.16b, v2.16b, v2.16b,#15 + ushr v1.16b, v1.16b, #7 + mul v1.16b, v1.16b, v0.16b + eor v10.16b, v10.16b, v1.16b + rbit v10.16b,v10.16b + b .check_dec_gb + + +// Determine whether encryption or decryption is required. +// The last two tweaks need to be swapped for decryption. +.check_dec_gb: + // encryption:1 decryption:0 + cmp w28,1 + b.eq .process_last_2blks_gb + mov v0.16B,v9.16b + mov v9.16B,v10.16b + mov v10.16B,v0.16b + +.process_last_2blks_gb: +#ifdef __AARCH64EB__ + rev32 v9.16b,v9.16b +#endif +#ifdef __AARCH64EB__ + rev32 v10.16b,v10.16b +#endif + ld1 {v4.4s},[x0],#16 + eor v4.16b, v4.16b, v9.16b +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif + mov x10,x3 + mov w11,#8 + mov w12,v4.s[0] + mov w13,v4.s[1] + mov w14,v4.s[2] + mov w15,v4.s[3] +10: + ldp w7,w8,[x10],8 + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + eor w6,w14,w15 + eor w9,w7,w13 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w12,w12,w6 + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + eor w6,w14,w15 + eor w9,w12,w8 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + ldp w7,w8,[x10],8 + eor w13,w13,w6 + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + eor w6,w12,w13 + eor w9,w7,w15 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w14,w14,w6 + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + eor w6,w12,w13 + eor w9,w14,w8 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w15,w15,w6 + subs w11,w11,#1 + b.ne 10b + mov v4.s[0],w15 + mov v4.s[1],w14 + mov v4.s[2],w13 + mov v4.s[3],w12 +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif + eor v4.16b, v4.16b, v9.16b + st1 {v4.4s},[x1],#16 + + sub x26,x1,16 +.loop_gb: + subs x29,x29,1 + ldrb w7,[x26,x29] + ldrb w8,[x0,x29] + strb w8,[x26,x29] + strb w7,[x1,x29] + b.gt .loop_gb + ld1 {v4.4s}, [x26] + eor v4.16b, v4.16b, v10.16b +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif + mov x10,x3 + mov w11,#8 + mov w12,v4.s[0] + mov w13,v4.s[1] + mov w14,v4.s[2] + mov w15,v4.s[3] +10: + ldp w7,w8,[x10],8 + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + eor w6,w14,w15 + eor w9,w7,w13 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w12,w12,w6 + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + eor w6,w14,w15 + eor w9,w12,w8 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + ldp w7,w8,[x10],8 + eor w13,w13,w6 + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + eor w6,w12,w13 + eor w9,w7,w15 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w14,w14,w6 + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + eor w6,w12,w13 + eor w9,w14,w8 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w15,w15,w6 + subs w11,w11,#1 + b.ne 10b + mov v4.s[0],w15 + mov v4.s[1],w14 + mov v4.s[2],w13 + mov v4.s[3],w12 +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif + eor v4.16b, v4.16b, v10.16b + st1 {v4.4s}, [x26] +.return_gb: + ldp d14, d15, [sp], #0x10 + ldp d12, d13, [sp], #0x10 + ldp d10, d11, [sp], #0x10 + ldp d8, d9, [sp], #0x10 + ldp x29, x30, [sp], #0x10 + ldp x27, x28, [sp], #0x10 + ldp x25, x26, [sp], #0x10 + ldp x23, x24, [sp], #0x10 + ldp x21, x22, [sp], #0x10 + ldp x19, x20, [sp], #0x10 + ldp x17, x18, [sp], #0x10 + ldp x15, x16, [sp], #0x10 + AARCH64_VALIDATE_LINK_REGISTER + ret + +.globl _vpsm4_xts_encrypt + +.align 5 +_vpsm4_xts_encrypt: + AARCH64_SIGN_LINK_REGISTER + stp x15, x16, [sp, #-0x10]! + stp x17, x18, [sp, #-0x10]! + stp x19, x20, [sp, #-0x10]! + stp x21, x22, [sp, #-0x10]! + stp x23, x24, [sp, #-0x10]! + stp x25, x26, [sp, #-0x10]! + stp x27, x28, [sp, #-0x10]! + stp x29, x30, [sp, #-0x10]! + stp d8, d9, [sp, #-0x10]! + stp d10, d11, [sp, #-0x10]! + stp d12, d13, [sp, #-0x10]! + stp d14, d15, [sp, #-0x10]! + mov x26,x3 + mov x27,x4 + mov w28,w6 + ld1 {v8.4s}, [x5] + mov x3,x27 + adrp x10,Lsbox@PAGE + add x10,x10,Lsbox@PAGEOFF + ld1 {v16.16b,v17.16b,v18.16b,v19.16b},[x10],#64 + ld1 {v20.16b,v21.16b,v22.16b,v23.16b},[x10],#64 + ld1 {v24.16b,v25.16b,v26.16b,v27.16b},[x10],#64 + ld1 {v28.16b,v29.16b,v30.16b,v31.16b},[x10] +#ifndef __AARCH64EB__ + rev32 v8.16b,v8.16b +#endif + mov x10,x3 + mov w11,#8 + mov w12,v8.s[0] + mov w13,v8.s[1] + mov w14,v8.s[2] + mov w15,v8.s[3] +10: + ldp w7,w8,[x10],8 + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + eor w6,w14,w15 + eor w9,w7,w13 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w12,w12,w6 + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + eor w6,w14,w15 + eor w9,w12,w8 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + ldp w7,w8,[x10],8 + eor w13,w13,w6 + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + eor w6,w12,w13 + eor w9,w7,w15 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w14,w14,w6 + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + eor w6,w12,w13 + eor w9,w14,w8 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w15,w15,w6 + subs w11,w11,#1 + b.ne 10b + mov v8.s[0],w15 + mov v8.s[1],w14 + mov v8.s[2],w13 + mov v8.s[3],w12 +#ifndef __AARCH64EB__ + rev32 v8.16b,v8.16b +#endif + mov x3,x26 + and x29,x2,#0x0F + // convert length into blocks + lsr x2,x2,4 + cmp x2,#1 + b.lt .return + + cmp x29,0 + // If the encryption/decryption Length is N times of 16, + // the all blocks are encrypted/decrypted in .xts_encrypt_blocks + b.eq .xts_encrypt_blocks + + // If the encryption/decryption length is not N times of 16, + // the last two blocks are encrypted/decrypted in .last_2blks_tweak or .only_2blks_tweak + // the other blocks are encrypted/decrypted in .xts_encrypt_blocks + subs x2,x2,#1 + b.eq .only_2blks_tweak +.xts_encrypt_blocks: +#ifdef __AARCH64EB__ + rev32 v8.16b,v8.16b +#endif + mov x12,v8.d[0] + mov x13,v8.d[1] + mov w7,0x87 + extr x9,x13,x13,#32 + extr x15,x13,x12,#63 + and w8,w7,w9,asr#31 + eor x14,x8,x12,lsl#1 + mov w7,0x87 + extr x9,x15,x15,#32 + extr x17,x15,x14,#63 + and w8,w7,w9,asr#31 + eor x16,x8,x14,lsl#1 + mov w7,0x87 + extr x9,x17,x17,#32 + extr x19,x17,x16,#63 + and w8,w7,w9,asr#31 + eor x18,x8,x16,lsl#1 + mov w7,0x87 + extr x9,x19,x19,#32 + extr x21,x19,x18,#63 + and w8,w7,w9,asr#31 + eor x20,x8,x18,lsl#1 + mov w7,0x87 + extr x9,x21,x21,#32 + extr x23,x21,x20,#63 + and w8,w7,w9,asr#31 + eor x22,x8,x20,lsl#1 + mov w7,0x87 + extr x9,x23,x23,#32 + extr x25,x23,x22,#63 + and w8,w7,w9,asr#31 + eor x24,x8,x22,lsl#1 + mov w7,0x87 + extr x9,x25,x25,#32 + extr x27,x25,x24,#63 + and w8,w7,w9,asr#31 + eor x26,x8,x24,lsl#1 +Lxts_8_blocks_process: + cmp x2,#8 + b.lt Lxts_4_blocks_process + mov v0.d[0],x12 + mov v0.d[1],x13 +#ifdef __AARCH64EB__ + rev32 v0.16b,v0.16b +#endif + mov v1.d[0],x14 + mov v1.d[1],x15 +#ifdef __AARCH64EB__ + rev32 v1.16b,v1.16b +#endif + mov v2.d[0],x16 + mov v2.d[1],x17 +#ifdef __AARCH64EB__ + rev32 v2.16b,v2.16b +#endif + mov v3.d[0],x18 + mov v3.d[1],x19 +#ifdef __AARCH64EB__ + rev32 v3.16b,v3.16b +#endif + mov v12.d[0],x20 + mov v12.d[1],x21 +#ifdef __AARCH64EB__ + rev32 v12.16b,v12.16b +#endif + mov v13.d[0],x22 + mov v13.d[1],x23 +#ifdef __AARCH64EB__ + rev32 v13.16b,v13.16b +#endif + mov v14.d[0],x24 + mov v14.d[1],x25 +#ifdef __AARCH64EB__ + rev32 v14.16b,v14.16b +#endif + mov v15.d[0],x26 + mov v15.d[1],x27 +#ifdef __AARCH64EB__ + rev32 v15.16b,v15.16b +#endif + ld1 {v4.4s,v5.4s,v6.4s,v7.4s},[x0],#64 + eor v4.16b, v4.16b, v0.16b + eor v5.16b, v5.16b, v1.16b + eor v6.16b, v6.16b, v2.16b + eor v7.16b, v7.16b, v3.16b + ld1 {v8.4s,v9.4s,v10.4s,v11.4s},[x0],#64 + eor v8.16b, v8.16b, v12.16b + eor v9.16b, v9.16b, v13.16b + eor v10.16b, v10.16b, v14.16b + eor v11.16b, v11.16b, v15.16b +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif +#ifndef __AARCH64EB__ + rev32 v5.16b,v5.16b +#endif +#ifndef __AARCH64EB__ + rev32 v6.16b,v6.16b +#endif +#ifndef __AARCH64EB__ + rev32 v7.16b,v7.16b +#endif +#ifndef __AARCH64EB__ + rev32 v8.16b,v8.16b +#endif +#ifndef __AARCH64EB__ + rev32 v9.16b,v9.16b +#endif +#ifndef __AARCH64EB__ + rev32 v10.16b,v10.16b +#endif +#ifndef __AARCH64EB__ + rev32 v11.16b,v11.16b +#endif + zip1 v0.4s,v4.4s,v5.4s + zip2 v1.4s,v4.4s,v5.4s + zip1 v2.4s,v6.4s,v7.4s + zip2 v3.4s,v6.4s,v7.4s + zip1 v4.2d,v0.2d,v2.2d + zip2 v5.2d,v0.2d,v2.2d + zip1 v6.2d,v1.2d,v3.2d + zip2 v7.2d,v1.2d,v3.2d + zip1 v0.4s,v8.4s,v9.4s + zip2 v1.4s,v8.4s,v9.4s + zip1 v2.4s,v10.4s,v11.4s + zip2 v3.4s,v10.4s,v11.4s + zip1 v8.2d,v0.2d,v2.2d + zip2 v9.2d,v0.2d,v2.2d + zip1 v10.2d,v1.2d,v3.2d + zip2 v11.2d,v1.2d,v3.2d + bl _vpsm4_enc_8blks + zip1 v8.4s,v0.4s,v1.4s + zip2 v9.4s,v0.4s,v1.4s + zip1 v10.4s,v2.4s,v3.4s + zip2 v11.4s,v2.4s,v3.4s + zip1 v0.2d,v8.2d,v10.2d + zip2 v1.2d,v8.2d,v10.2d + zip1 v2.2d,v9.2d,v11.2d + zip2 v3.2d,v9.2d,v11.2d + zip1 v8.4s,v4.4s,v5.4s + zip2 v9.4s,v4.4s,v5.4s + zip1 v10.4s,v6.4s,v7.4s + zip2 v11.4s,v6.4s,v7.4s + zip1 v4.2d,v8.2d,v10.2d + zip2 v5.2d,v8.2d,v10.2d + zip1 v6.2d,v9.2d,v11.2d + zip2 v7.2d,v9.2d,v11.2d + mov v12.d[0],x12 + mov v12.d[1],x13 +#ifdef __AARCH64EB__ + rev32 v12.16b,v12.16b +#endif + mov w7,0x87 + extr x9,x27,x27,#32 + extr x13,x27,x26,#63 + and w8,w7,w9,asr#31 + eor x12,x8,x26,lsl#1 + mov v13.d[0],x14 + mov v13.d[1],x15 +#ifdef __AARCH64EB__ + rev32 v13.16b,v13.16b +#endif + mov w7,0x87 + extr x9,x13,x13,#32 + extr x15,x13,x12,#63 + and w8,w7,w9,asr#31 + eor x14,x8,x12,lsl#1 + mov v14.d[0],x16 + mov v14.d[1],x17 +#ifdef __AARCH64EB__ + rev32 v14.16b,v14.16b +#endif + mov w7,0x87 + extr x9,x15,x15,#32 + extr x17,x15,x14,#63 + and w8,w7,w9,asr#31 + eor x16,x8,x14,lsl#1 + mov v15.d[0],x18 + mov v15.d[1],x19 +#ifdef __AARCH64EB__ + rev32 v15.16b,v15.16b +#endif + mov w7,0x87 + extr x9,x17,x17,#32 + extr x19,x17,x16,#63 + and w8,w7,w9,asr#31 + eor x18,x8,x16,lsl#1 + mov v8.d[0],x20 + mov v8.d[1],x21 +#ifdef __AARCH64EB__ + rev32 v8.16b,v8.16b +#endif + mov w7,0x87 + extr x9,x19,x19,#32 + extr x21,x19,x18,#63 + and w8,w7,w9,asr#31 + eor x20,x8,x18,lsl#1 + mov v9.d[0],x22 + mov v9.d[1],x23 +#ifdef __AARCH64EB__ + rev32 v9.16b,v9.16b +#endif + mov w7,0x87 + extr x9,x21,x21,#32 + extr x23,x21,x20,#63 + and w8,w7,w9,asr#31 + eor x22,x8,x20,lsl#1 + mov v10.d[0],x24 + mov v10.d[1],x25 +#ifdef __AARCH64EB__ + rev32 v10.16b,v10.16b +#endif + mov w7,0x87 + extr x9,x23,x23,#32 + extr x25,x23,x22,#63 + and w8,w7,w9,asr#31 + eor x24,x8,x22,lsl#1 + mov v11.d[0],x26 + mov v11.d[1],x27 +#ifdef __AARCH64EB__ + rev32 v11.16b,v11.16b +#endif + mov w7,0x87 + extr x9,x25,x25,#32 + extr x27,x25,x24,#63 + and w8,w7,w9,asr#31 + eor x26,x8,x24,lsl#1 + eor v0.16b, v0.16b, v12.16b + eor v1.16b, v1.16b, v13.16b + eor v2.16b, v2.16b, v14.16b + eor v3.16b, v3.16b, v15.16b + eor v4.16b, v4.16b, v8.16b + eor v5.16b, v5.16b, v9.16b + eor v6.16b, v6.16b, v10.16b + eor v7.16b, v7.16b, v11.16b + + // save the last tweak + st1 {v11.4s},[x5] + st1 {v0.4s,v1.4s,v2.4s,v3.4s},[x1],#64 + st1 {v4.4s,v5.4s,v6.4s,v7.4s},[x1],#64 + subs x2,x2,#8 + b.gt Lxts_8_blocks_process + b 100f +Lxts_4_blocks_process: + mov v8.d[0],x12 + mov v8.d[1],x13 +#ifdef __AARCH64EB__ + rev32 v8.16b,v8.16b +#endif + mov v9.d[0],x14 + mov v9.d[1],x15 +#ifdef __AARCH64EB__ + rev32 v9.16b,v9.16b +#endif + mov v10.d[0],x16 + mov v10.d[1],x17 +#ifdef __AARCH64EB__ + rev32 v10.16b,v10.16b +#endif + mov v11.d[0],x18 + mov v11.d[1],x19 +#ifdef __AARCH64EB__ + rev32 v11.16b,v11.16b +#endif + cmp x2,#4 + b.lt 1f + ld1 {v4.4s,v5.4s,v6.4s,v7.4s},[x0],#64 + eor v4.16b, v4.16b, v8.16b + eor v5.16b, v5.16b, v9.16b + eor v6.16b, v6.16b, v10.16b + eor v7.16b, v7.16b, v11.16b +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif +#ifndef __AARCH64EB__ + rev32 v5.16b,v5.16b +#endif +#ifndef __AARCH64EB__ + rev32 v6.16b,v6.16b +#endif +#ifndef __AARCH64EB__ + rev32 v7.16b,v7.16b +#endif + zip1 v0.4s,v4.4s,v5.4s + zip2 v1.4s,v4.4s,v5.4s + zip1 v2.4s,v6.4s,v7.4s + zip2 v3.4s,v6.4s,v7.4s + zip1 v4.2d,v0.2d,v2.2d + zip2 v5.2d,v0.2d,v2.2d + zip1 v6.2d,v1.2d,v3.2d + zip2 v7.2d,v1.2d,v3.2d + bl _vpsm4_enc_4blks + zip1 v4.4s,v0.4s,v1.4s + zip2 v5.4s,v0.4s,v1.4s + zip1 v6.4s,v2.4s,v3.4s + zip2 v7.4s,v2.4s,v3.4s + zip1 v0.2d,v4.2d,v6.2d + zip2 v1.2d,v4.2d,v6.2d + zip1 v2.2d,v5.2d,v7.2d + zip2 v3.2d,v5.2d,v7.2d + eor v0.16b, v0.16b, v8.16b + eor v1.16b, v1.16b, v9.16b + eor v2.16b, v2.16b, v10.16b + eor v3.16b, v3.16b, v11.16b + st1 {v0.4s,v1.4s,v2.4s,v3.4s},[x1],#64 + sub x2,x2,#4 + mov v8.d[0],x20 + mov v8.d[1],x21 +#ifdef __AARCH64EB__ + rev32 v8.16b,v8.16b +#endif + mov v9.d[0],x22 + mov v9.d[1],x23 +#ifdef __AARCH64EB__ + rev32 v9.16b,v9.16b +#endif + mov v10.d[0],x24 + mov v10.d[1],x25 +#ifdef __AARCH64EB__ + rev32 v10.16b,v10.16b +#endif + // save the last tweak + st1 {v11.4s},[x5] +1: + // process last block + cmp x2,#1 + b.lt 100f + b.gt 1f + ld1 {v4.4s},[x0],#16 + eor v4.16b, v4.16b, v8.16b +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif + mov x10,x3 + mov w11,#8 + mov w12,v4.s[0] + mov w13,v4.s[1] + mov w14,v4.s[2] + mov w15,v4.s[3] +10: + ldp w7,w8,[x10],8 + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + eor w6,w14,w15 + eor w9,w7,w13 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w12,w12,w6 + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + eor w6,w14,w15 + eor w9,w12,w8 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + ldp w7,w8,[x10],8 + eor w13,w13,w6 + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + eor w6,w12,w13 + eor w9,w7,w15 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w14,w14,w6 + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + eor w6,w12,w13 + eor w9,w14,w8 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w15,w15,w6 + subs w11,w11,#1 + b.ne 10b + mov v4.s[0],w15 + mov v4.s[1],w14 + mov v4.s[2],w13 + mov v4.s[3],w12 +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif + eor v4.16b, v4.16b, v8.16b + st1 {v4.4s},[x1],#16 + // save the last tweak + st1 {v8.4s},[x5] + b 100f +1: // process last 2 blocks + cmp x2,#2 + b.gt 1f + ld1 {v4.4s,v5.4s},[x0],#32 + eor v4.16b, v4.16b, v8.16b + eor v5.16b, v5.16b, v9.16b +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif +#ifndef __AARCH64EB__ + rev32 v5.16b,v5.16b +#endif + zip1 v0.4s,v4.4s,v5.4s + zip2 v1.4s,v4.4s,v5.4s + zip1 v2.4s,v6.4s,v7.4s + zip2 v3.4s,v6.4s,v7.4s + zip1 v4.2d,v0.2d,v2.2d + zip2 v5.2d,v0.2d,v2.2d + zip1 v6.2d,v1.2d,v3.2d + zip2 v7.2d,v1.2d,v3.2d + bl _vpsm4_enc_4blks + zip1 v4.4s,v0.4s,v1.4s + zip2 v5.4s,v0.4s,v1.4s + zip1 v6.4s,v2.4s,v3.4s + zip2 v7.4s,v2.4s,v3.4s + zip1 v0.2d,v4.2d,v6.2d + zip2 v1.2d,v4.2d,v6.2d + zip1 v2.2d,v5.2d,v7.2d + zip2 v3.2d,v5.2d,v7.2d + eor v0.16b, v0.16b, v8.16b + eor v1.16b, v1.16b, v9.16b + st1 {v0.4s,v1.4s},[x1],#32 + // save the last tweak + st1 {v9.4s},[x5] + b 100f +1: // process last 3 blocks + ld1 {v4.4s,v5.4s,v6.4s},[x0],#48 + eor v4.16b, v4.16b, v8.16b + eor v5.16b, v5.16b, v9.16b + eor v6.16b, v6.16b, v10.16b +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif +#ifndef __AARCH64EB__ + rev32 v5.16b,v5.16b +#endif +#ifndef __AARCH64EB__ + rev32 v6.16b,v6.16b +#endif + zip1 v0.4s,v4.4s,v5.4s + zip2 v1.4s,v4.4s,v5.4s + zip1 v2.4s,v6.4s,v7.4s + zip2 v3.4s,v6.4s,v7.4s + zip1 v4.2d,v0.2d,v2.2d + zip2 v5.2d,v0.2d,v2.2d + zip1 v6.2d,v1.2d,v3.2d + zip2 v7.2d,v1.2d,v3.2d + bl _vpsm4_enc_4blks + zip1 v4.4s,v0.4s,v1.4s + zip2 v5.4s,v0.4s,v1.4s + zip1 v6.4s,v2.4s,v3.4s + zip2 v7.4s,v2.4s,v3.4s + zip1 v0.2d,v4.2d,v6.2d + zip2 v1.2d,v4.2d,v6.2d + zip1 v2.2d,v5.2d,v7.2d + zip2 v3.2d,v5.2d,v7.2d + eor v0.16b, v0.16b, v8.16b + eor v1.16b, v1.16b, v9.16b + eor v2.16b, v2.16b, v10.16b + st1 {v0.4s,v1.4s,v2.4s},[x1],#48 + // save the last tweak + st1 {v10.4s},[x5] +100: + cmp x29,0 + b.eq .return + +// This branch calculates the last two tweaks, +// while the encryption/decryption length is larger than 32 +.last_2blks_tweak: + ld1 {v8.4s},[x5] +#ifdef __AARCH64EB__ + rev32 v8.16b,v8.16b +#endif + mov v2.16b,v8.16b + adrp x10,Lxts_magic@PAGE + ldr q0, [x10, Lxts_magic@PAGEOFF] + shl v9.16b, v2.16b, #1 + ext v1.16b, v2.16b, v2.16b,#15 + ushr v1.16b, v1.16b, #7 + mul v1.16b, v1.16b, v0.16b + eor v9.16b, v9.16b, v1.16b + mov v2.16b,v9.16b + adrp x10,Lxts_magic@PAGE + ldr q0, [x10, Lxts_magic@PAGEOFF] + shl v10.16b, v2.16b, #1 + ext v1.16b, v2.16b, v2.16b,#15 + ushr v1.16b, v1.16b, #7 + mul v1.16b, v1.16b, v0.16b + eor v10.16b, v10.16b, v1.16b + b .check_dec + + +// This branch calculates the last two tweaks, +// while the encryption/decryption length is equal to 32, who only need two tweaks +.only_2blks_tweak: + mov v9.16b,v8.16b +#ifdef __AARCH64EB__ + rev32 v9.16b,v9.16b +#endif + mov v2.16b,v9.16b + adrp x10,Lxts_magic@PAGE + ldr q0, [x10, Lxts_magic@PAGEOFF] + shl v10.16b, v2.16b, #1 + ext v1.16b, v2.16b, v2.16b,#15 + ushr v1.16b, v1.16b, #7 + mul v1.16b, v1.16b, v0.16b + eor v10.16b, v10.16b, v1.16b + b .check_dec + + +// Determine whether encryption or decryption is required. +// The last two tweaks need to be swapped for decryption. +.check_dec: + // encryption:1 decryption:0 + cmp w28,1 + b.eq .process_last_2blks + mov v0.16B,v9.16b + mov v9.16B,v10.16b + mov v10.16B,v0.16b + +.process_last_2blks: +#ifdef __AARCH64EB__ + rev32 v9.16b,v9.16b +#endif +#ifdef __AARCH64EB__ + rev32 v10.16b,v10.16b +#endif + ld1 {v4.4s},[x0],#16 + eor v4.16b, v4.16b, v9.16b +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif + mov x10,x3 + mov w11,#8 + mov w12,v4.s[0] + mov w13,v4.s[1] + mov w14,v4.s[2] + mov w15,v4.s[3] +10: + ldp w7,w8,[x10],8 + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + eor w6,w14,w15 + eor w9,w7,w13 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w12,w12,w6 + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + eor w6,w14,w15 + eor w9,w12,w8 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + ldp w7,w8,[x10],8 + eor w13,w13,w6 + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + eor w6,w12,w13 + eor w9,w7,w15 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w14,w14,w6 + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + eor w6,w12,w13 + eor w9,w14,w8 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w15,w15,w6 + subs w11,w11,#1 + b.ne 10b + mov v4.s[0],w15 + mov v4.s[1],w14 + mov v4.s[2],w13 + mov v4.s[3],w12 +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif + eor v4.16b, v4.16b, v9.16b + st1 {v4.4s},[x1],#16 + + sub x26,x1,16 +.loop: + subs x29,x29,1 + ldrb w7,[x26,x29] + ldrb w8,[x0,x29] + strb w8,[x26,x29] + strb w7,[x1,x29] + b.gt .loop + ld1 {v4.4s}, [x26] + eor v4.16b, v4.16b, v10.16b +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif + mov x10,x3 + mov w11,#8 + mov w12,v4.s[0] + mov w13,v4.s[1] + mov w14,v4.s[2] + mov w15,v4.s[3] +10: + ldp w7,w8,[x10],8 + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + eor w6,w14,w15 + eor w9,w7,w13 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w12,w12,w6 + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + eor w6,w14,w15 + eor w9,w12,w8 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + ldp w7,w8,[x10],8 + eor w13,w13,w6 + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + eor w6,w12,w13 + eor w9,w7,w15 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w14,w14,w6 + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + eor w6,w12,w13 + eor w9,w14,w8 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w15,w15,w6 + subs w11,w11,#1 + b.ne 10b + mov v4.s[0],w15 + mov v4.s[1],w14 + mov v4.s[2],w13 + mov v4.s[3],w12 +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif + eor v4.16b, v4.16b, v10.16b + st1 {v4.4s}, [x26] +.return: + ldp d14, d15, [sp], #0x10 + ldp d12, d13, [sp], #0x10 + ldp d10, d11, [sp], #0x10 + ldp d8, d9, [sp], #0x10 + ldp x29, x30, [sp], #0x10 + ldp x27, x28, [sp], #0x10 + ldp x25, x26, [sp], #0x10 + ldp x23, x24, [sp], #0x10 + ldp x21, x22, [sp], #0x10 + ldp x19, x20, [sp], #0x10 + ldp x17, x18, [sp], #0x10 + ldp x15, x16, [sp], #0x10 + AARCH64_VALIDATE_LINK_REGISTER + ret + diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/crypto/sm4/vpsm4_ex-armv8.S b/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/crypto/sm4/vpsm4_ex-armv8.S new file mode 100644 index 00000000000000..9df8f4f3f8277b --- /dev/null +++ b/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/crypto/sm4/vpsm4_ex-armv8.S @@ -0,0 +1,4522 @@ +// Copyright 2022-2025 The OpenSSL Project Authors. All Rights Reserved. +// +// Licensed under the Apache License 2.0 (the "License"). You may not use +// this file except in compliance with the License. You can obtain a copy +// in the file LICENSE in the source distribution or at +// https://www.openssl.org/source/license.html + +// +// This module implements SM4 with ASIMD and AESE on AARCH64 +// +// Dec 2022 +// + +// $output is the last argument if it looks like a file (it has an extension) +// $flavour is the first argument if it doesn't look like a file +#include "arm_arch.h" + +.text + + +.align 7 +_vpsm4_ex_consts: +Lck: +.long 0x00070E15, 0x1C232A31, 0x383F464D, 0x545B6269 +.long 0x70777E85, 0x8C939AA1, 0xA8AFB6BD, 0xC4CBD2D9 +.long 0xE0E7EEF5, 0xFC030A11, 0x181F262D, 0x343B4249 +.long 0x50575E65, 0x6C737A81, 0x888F969D, 0xA4ABB2B9 +.long 0xC0C7CED5, 0xDCE3EAF1, 0xF8FF060D, 0x141B2229 +.long 0x30373E45, 0x4C535A61, 0x686F767D, 0x848B9299 +.long 0xA0A7AEB5, 0xBCC3CAD1, 0xD8DFE6ED, 0xF4FB0209 +.long 0x10171E25, 0x2C333A41, 0x484F565D, 0x646B7279 +Lfk: +.quad 0x56aa3350a3b1bac6,0xb27022dc677d9197 +Lshuffles: +.quad 0x0B0A090807060504,0x030201000F0E0D0C +Lxts_magic: +.quad 0x0101010101010187,0x0101010101010101 +Lsbox_magic: +.quad 0x0b0e0104070a0d00,0x0306090c0f020508 +.quad 0x62185a2042387a00,0x22581a6002783a40 +.quad 0x15df62a89e54e923,0xc10bb67c4a803df7 +.quad 0xb9aa6b78c1d21300,0x1407c6d56c7fbead +.quad 0x6404462679195b3b,0xe383c1a1fe9edcbc +.quad 0x0f0f0f0f0f0f0f0f,0x0f0f0f0f0f0f0f0f + + + +.align 4 +_vpsm4_ex_set_key: + AARCH64_VALID_CALL_TARGET + ld1 {v5.4s},[x0] + adrp x9, Lsbox_magic@PAGE + ldr q26, [x9, Lsbox_magic@PAGEOFF] + ldr q27, [x9, Lsbox_magic@PAGEOFF+16] + ldr q28, [x9, Lsbox_magic@PAGEOFF+32] + ldr q29, [x9, Lsbox_magic@PAGEOFF+48] + ldr q30, [x9, Lsbox_magic@PAGEOFF+64] + ldr q31, [x9, Lsbox_magic@PAGEOFF+80] +#ifndef __AARCH64EB__ + rev32 v5.16b,v5.16b +#endif + adrp x5,Lshuffles@PAGE + add x5,x5,Lshuffles@PAGEOFF + ld1 {v7.2d},[x5] + adrp x5,Lfk@PAGE + add x5,x5,Lfk@PAGEOFF + ld1 {v6.2d},[x5] + eor v5.16b,v5.16b,v6.16b + mov x6,#32 + adrp x5,Lck@PAGE + add x5,x5,Lck@PAGEOFF + movi v0.16b,#64 + cbnz w2,1f + add x1,x1,124 +1: + mov w7,v5.s[1] + ldr w8,[x5],#4 + eor w8,w8,w7 + mov w7,v5.s[2] + eor w8,w8,w7 + mov w7,v5.s[3] + eor w8,w8,w7 + // optimize sbox using AESE instruction + mov v4.s[0],w8 + tbl v0.16b, {v4.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + mov w7,v0.s[0] + eor w8,w7,w7,ror #19 + eor w8,w8,w7,ror #9 + mov w7,v5.s[0] + eor w8,w8,w7 + mov v5.s[0],w8 + cbz w2,2f + str w8,[x1],#4 + b 3f +2: + str w8,[x1],#-4 +3: + tbl v5.16b,{v5.16b},v7.16b + subs x6,x6,#1 + b.ne 1b + ret + + +.align 4 +_vpsm4_ex_enc_4blks: + AARCH64_VALID_CALL_TARGET + mov x10,x3 + mov w11,#8 +10: + ldp w7,w8,[x10],8 + dup v12.4s,w7 + dup v13.4s,w8 + + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + eor v14.16b,v6.16b,v7.16b + eor v12.16b,v5.16b,v12.16b + eor v12.16b,v14.16b,v12.16b + // optimize sbox using AESE instruction + tbl v0.16b, {v12.16b}, v26.16b + ushr v24.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v24.16b, {v27.16b}, v24.16b + eor v0.16b, v0.16b, v24.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v24.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v24.16b, {v29.16b}, v24.16b + eor v0.16b, v0.16b, v24.16b + mov v12.16b,v0.16b + + // linear transformation + ushr v0.4s,v12.4s,32-2 + ushr v1.4s,v12.4s,32-10 + ushr v2.4s,v12.4s,32-18 + ushr v3.4s,v12.4s,32-24 + sli v0.4s,v12.4s,2 + sli v1.4s,v12.4s,10 + sli v2.4s,v12.4s,18 + sli v3.4s,v12.4s,24 + eor v24.16b,v0.16b,v12.16b + eor v24.16b,v24.16b,v1.16b + eor v12.16b,v2.16b,v3.16b + eor v12.16b,v12.16b,v24.16b + eor v4.16b,v4.16b,v12.16b + + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + eor v14.16b,v14.16b,v4.16b + eor v13.16b,v14.16b,v13.16b + // optimize sbox using AESE instruction + tbl v0.16b, {v13.16b}, v26.16b + ushr v24.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v24.16b, {v27.16b}, v24.16b + eor v0.16b, v0.16b, v24.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v24.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v24.16b, {v29.16b}, v24.16b + eor v0.16b, v0.16b, v24.16b + mov v13.16b,v0.16b + + // linear transformation + ushr v0.4s,v13.4s,32-2 + ushr v1.4s,v13.4s,32-10 + ushr v2.4s,v13.4s,32-18 + ushr v3.4s,v13.4s,32-24 + sli v0.4s,v13.4s,2 + sli v1.4s,v13.4s,10 + sli v2.4s,v13.4s,18 + sli v3.4s,v13.4s,24 + eor v24.16b,v0.16b,v13.16b + eor v24.16b,v24.16b,v1.16b + eor v13.16b,v2.16b,v3.16b + eor v13.16b,v13.16b,v24.16b + ldp w7,w8,[x10],8 + eor v5.16b,v5.16b,v13.16b + + dup v12.4s,w7 + dup v13.4s,w8 + + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + eor v14.16b,v4.16b,v5.16b + eor v12.16b,v7.16b,v12.16b + eor v12.16b,v14.16b,v12.16b + // optimize sbox using AESE instruction + tbl v0.16b, {v12.16b}, v26.16b + ushr v24.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v24.16b, {v27.16b}, v24.16b + eor v0.16b, v0.16b, v24.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v24.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v24.16b, {v29.16b}, v24.16b + eor v0.16b, v0.16b, v24.16b + mov v12.16b,v0.16b + + // linear transformation + ushr v0.4s,v12.4s,32-2 + ushr v1.4s,v12.4s,32-10 + ushr v2.4s,v12.4s,32-18 + ushr v3.4s,v12.4s,32-24 + sli v0.4s,v12.4s,2 + sli v1.4s,v12.4s,10 + sli v2.4s,v12.4s,18 + sli v3.4s,v12.4s,24 + eor v24.16b,v0.16b,v12.16b + eor v24.16b,v24.16b,v1.16b + eor v12.16b,v2.16b,v3.16b + eor v12.16b,v12.16b,v24.16b + eor v6.16b,v6.16b,v12.16b + + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + eor v14.16b,v14.16b,v6.16b + eor v13.16b,v14.16b,v13.16b + // optimize sbox using AESE instruction + tbl v0.16b, {v13.16b}, v26.16b + ushr v24.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v24.16b, {v27.16b}, v24.16b + eor v0.16b, v0.16b, v24.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v24.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v24.16b, {v29.16b}, v24.16b + eor v0.16b, v0.16b, v24.16b + mov v13.16b,v0.16b + + // linear transformation + ushr v0.4s,v13.4s,32-2 + ushr v1.4s,v13.4s,32-10 + ushr v2.4s,v13.4s,32-18 + ushr v3.4s,v13.4s,32-24 + sli v0.4s,v13.4s,2 + sli v1.4s,v13.4s,10 + sli v2.4s,v13.4s,18 + sli v3.4s,v13.4s,24 + eor v24.16b,v0.16b,v13.16b + eor v24.16b,v24.16b,v1.16b + eor v13.16b,v2.16b,v3.16b + eor v13.16b,v13.16b,v24.16b + eor v7.16b,v7.16b,v13.16b + subs w11,w11,#1 + b.ne 10b +#ifndef __AARCH64EB__ + rev32 v3.16b,v4.16b +#else + mov v3.16b,v4.16b +#endif +#ifndef __AARCH64EB__ + rev32 v2.16b,v5.16b +#else + mov v2.16b,v5.16b +#endif +#ifndef __AARCH64EB__ + rev32 v1.16b,v6.16b +#else + mov v1.16b,v6.16b +#endif +#ifndef __AARCH64EB__ + rev32 v0.16b,v7.16b +#else + mov v0.16b,v7.16b +#endif + ret + + +.align 4 +_vpsm4_ex_enc_8blks: + AARCH64_VALID_CALL_TARGET + mov x10,x3 + mov w11,#8 +10: + ldp w7,w8,[x10],8 + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + dup v12.4s,w7 + eor v14.16b,v6.16b,v7.16b + eor v15.16b,v10.16b,v11.16b + eor v0.16b,v5.16b,v12.16b + eor v1.16b,v9.16b,v12.16b + eor v12.16b,v14.16b,v0.16b + eor v13.16b,v15.16b,v1.16b + // optimize sbox using AESE instruction + tbl v0.16b, {v12.16b}, v26.16b + tbl v1.16b, {v13.16b}, v26.16b + ushr v24.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v24.16b, {v27.16b}, v24.16b + eor v0.16b, v0.16b, v24.16b + ushr v24.16b, v1.16b, 4 + and v1.16b, v1.16b, v31.16b + tbl v1.16b, {v28.16b}, v1.16b + tbl v24.16b, {v27.16b}, v24.16b + eor v1.16b, v1.16b, v24.16b + eor v25.16b, v25.16b, v25.16b + aese v0.16b,v25.16b + aese v1.16b,v25.16b + ushr v24.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v24.16b, {v29.16b}, v24.16b + eor v0.16b, v0.16b, v24.16b + ushr v24.16b, v1.16b, 4 + and v1.16b, v1.16b, v31.16b + tbl v1.16b, {v30.16b}, v1.16b + tbl v24.16b, {v29.16b}, v24.16b + eor v1.16b, v1.16b, v24.16b + mov v12.16b,v0.16b + mov v13.16b,v1.16b + + // linear transformation + ushr v0.4s,v12.4s,32-2 + ushr v25.4s,v13.4s,32-2 + ushr v1.4s,v12.4s,32-10 + ushr v2.4s,v12.4s,32-18 + ushr v3.4s,v12.4s,32-24 + sli v0.4s,v12.4s,2 + sli v25.4s,v13.4s,2 + sli v1.4s,v12.4s,10 + sli v2.4s,v12.4s,18 + sli v3.4s,v12.4s,24 + eor v24.16b,v0.16b,v12.16b + eor v24.16b,v24.16b,v1.16b + eor v12.16b,v2.16b,v3.16b + eor v12.16b,v12.16b,v24.16b + ushr v1.4s,v13.4s,32-10 + ushr v2.4s,v13.4s,32-18 + ushr v3.4s,v13.4s,32-24 + sli v1.4s,v13.4s,10 + sli v2.4s,v13.4s,18 + sli v3.4s,v13.4s,24 + eor v24.16b,v25.16b,v13.16b + eor v24.16b,v24.16b,v1.16b + eor v13.16b,v2.16b,v3.16b + eor v13.16b,v13.16b,v24.16b + eor v4.16b,v4.16b,v12.16b + eor v8.16b,v8.16b,v13.16b + + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + dup v13.4s,w8 + eor v14.16b,v14.16b,v4.16b + eor v15.16b,v15.16b,v8.16b + eor v12.16b,v14.16b,v13.16b + eor v13.16b,v15.16b,v13.16b + // optimize sbox using AESE instruction + tbl v0.16b, {v12.16b}, v26.16b + tbl v1.16b, {v13.16b}, v26.16b + ushr v24.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v24.16b, {v27.16b}, v24.16b + eor v0.16b, v0.16b, v24.16b + ushr v24.16b, v1.16b, 4 + and v1.16b, v1.16b, v31.16b + tbl v1.16b, {v28.16b}, v1.16b + tbl v24.16b, {v27.16b}, v24.16b + eor v1.16b, v1.16b, v24.16b + eor v25.16b, v25.16b, v25.16b + aese v0.16b,v25.16b + aese v1.16b,v25.16b + ushr v24.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v24.16b, {v29.16b}, v24.16b + eor v0.16b, v0.16b, v24.16b + ushr v24.16b, v1.16b, 4 + and v1.16b, v1.16b, v31.16b + tbl v1.16b, {v30.16b}, v1.16b + tbl v24.16b, {v29.16b}, v24.16b + eor v1.16b, v1.16b, v24.16b + mov v12.16b,v0.16b + mov v13.16b,v1.16b + + // linear transformation + ushr v0.4s,v12.4s,32-2 + ushr v25.4s,v13.4s,32-2 + ushr v1.4s,v12.4s,32-10 + ushr v2.4s,v12.4s,32-18 + ushr v3.4s,v12.4s,32-24 + sli v0.4s,v12.4s,2 + sli v25.4s,v13.4s,2 + sli v1.4s,v12.4s,10 + sli v2.4s,v12.4s,18 + sli v3.4s,v12.4s,24 + eor v24.16b,v0.16b,v12.16b + eor v24.16b,v24.16b,v1.16b + eor v12.16b,v2.16b,v3.16b + eor v12.16b,v12.16b,v24.16b + ushr v1.4s,v13.4s,32-10 + ushr v2.4s,v13.4s,32-18 + ushr v3.4s,v13.4s,32-24 + sli v1.4s,v13.4s,10 + sli v2.4s,v13.4s,18 + sli v3.4s,v13.4s,24 + eor v24.16b,v25.16b,v13.16b + eor v24.16b,v24.16b,v1.16b + eor v13.16b,v2.16b,v3.16b + eor v13.16b,v13.16b,v24.16b + ldp w7,w8,[x10],8 + eor v5.16b,v5.16b,v12.16b + eor v9.16b,v9.16b,v13.16b + + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + dup v12.4s,w7 + eor v14.16b,v4.16b,v5.16b + eor v15.16b,v8.16b,v9.16b + eor v0.16b,v7.16b,v12.16b + eor v1.16b,v11.16b,v12.16b + eor v12.16b,v14.16b,v0.16b + eor v13.16b,v15.16b,v1.16b + // optimize sbox using AESE instruction + tbl v0.16b, {v12.16b}, v26.16b + tbl v1.16b, {v13.16b}, v26.16b + ushr v24.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v24.16b, {v27.16b}, v24.16b + eor v0.16b, v0.16b, v24.16b + ushr v24.16b, v1.16b, 4 + and v1.16b, v1.16b, v31.16b + tbl v1.16b, {v28.16b}, v1.16b + tbl v24.16b, {v27.16b}, v24.16b + eor v1.16b, v1.16b, v24.16b + eor v25.16b, v25.16b, v25.16b + aese v0.16b,v25.16b + aese v1.16b,v25.16b + ushr v24.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v24.16b, {v29.16b}, v24.16b + eor v0.16b, v0.16b, v24.16b + ushr v24.16b, v1.16b, 4 + and v1.16b, v1.16b, v31.16b + tbl v1.16b, {v30.16b}, v1.16b + tbl v24.16b, {v29.16b}, v24.16b + eor v1.16b, v1.16b, v24.16b + mov v12.16b,v0.16b + mov v13.16b,v1.16b + + // linear transformation + ushr v0.4s,v12.4s,32-2 + ushr v25.4s,v13.4s,32-2 + ushr v1.4s,v12.4s,32-10 + ushr v2.4s,v12.4s,32-18 + ushr v3.4s,v12.4s,32-24 + sli v0.4s,v12.4s,2 + sli v25.4s,v13.4s,2 + sli v1.4s,v12.4s,10 + sli v2.4s,v12.4s,18 + sli v3.4s,v12.4s,24 + eor v24.16b,v0.16b,v12.16b + eor v24.16b,v24.16b,v1.16b + eor v12.16b,v2.16b,v3.16b + eor v12.16b,v12.16b,v24.16b + ushr v1.4s,v13.4s,32-10 + ushr v2.4s,v13.4s,32-18 + ushr v3.4s,v13.4s,32-24 + sli v1.4s,v13.4s,10 + sli v2.4s,v13.4s,18 + sli v3.4s,v13.4s,24 + eor v24.16b,v25.16b,v13.16b + eor v24.16b,v24.16b,v1.16b + eor v13.16b,v2.16b,v3.16b + eor v13.16b,v13.16b,v24.16b + eor v6.16b,v6.16b,v12.16b + eor v10.16b,v10.16b,v13.16b + + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + dup v13.4s,w8 + eor v14.16b,v14.16b,v6.16b + eor v15.16b,v15.16b,v10.16b + eor v12.16b,v14.16b,v13.16b + eor v13.16b,v15.16b,v13.16b + // optimize sbox using AESE instruction + tbl v0.16b, {v12.16b}, v26.16b + tbl v1.16b, {v13.16b}, v26.16b + ushr v24.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v24.16b, {v27.16b}, v24.16b + eor v0.16b, v0.16b, v24.16b + ushr v24.16b, v1.16b, 4 + and v1.16b, v1.16b, v31.16b + tbl v1.16b, {v28.16b}, v1.16b + tbl v24.16b, {v27.16b}, v24.16b + eor v1.16b, v1.16b, v24.16b + eor v25.16b, v25.16b, v25.16b + aese v0.16b,v25.16b + aese v1.16b,v25.16b + ushr v24.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v24.16b, {v29.16b}, v24.16b + eor v0.16b, v0.16b, v24.16b + ushr v24.16b, v1.16b, 4 + and v1.16b, v1.16b, v31.16b + tbl v1.16b, {v30.16b}, v1.16b + tbl v24.16b, {v29.16b}, v24.16b + eor v1.16b, v1.16b, v24.16b + mov v12.16b,v0.16b + mov v13.16b,v1.16b + + // linear transformation + ushr v0.4s,v12.4s,32-2 + ushr v25.4s,v13.4s,32-2 + ushr v1.4s,v12.4s,32-10 + ushr v2.4s,v12.4s,32-18 + ushr v3.4s,v12.4s,32-24 + sli v0.4s,v12.4s,2 + sli v25.4s,v13.4s,2 + sli v1.4s,v12.4s,10 + sli v2.4s,v12.4s,18 + sli v3.4s,v12.4s,24 + eor v24.16b,v0.16b,v12.16b + eor v24.16b,v24.16b,v1.16b + eor v12.16b,v2.16b,v3.16b + eor v12.16b,v12.16b,v24.16b + ushr v1.4s,v13.4s,32-10 + ushr v2.4s,v13.4s,32-18 + ushr v3.4s,v13.4s,32-24 + sli v1.4s,v13.4s,10 + sli v2.4s,v13.4s,18 + sli v3.4s,v13.4s,24 + eor v24.16b,v25.16b,v13.16b + eor v24.16b,v24.16b,v1.16b + eor v13.16b,v2.16b,v3.16b + eor v13.16b,v13.16b,v24.16b + eor v7.16b,v7.16b,v12.16b + eor v11.16b,v11.16b,v13.16b + subs w11,w11,#1 + b.ne 10b +#ifndef __AARCH64EB__ + rev32 v3.16b,v4.16b +#else + mov v3.16b,v4.16b +#endif +#ifndef __AARCH64EB__ + rev32 v2.16b,v5.16b +#else + mov v2.16b,v5.16b +#endif +#ifndef __AARCH64EB__ + rev32 v1.16b,v6.16b +#else + mov v1.16b,v6.16b +#endif +#ifndef __AARCH64EB__ + rev32 v0.16b,v7.16b +#else + mov v0.16b,v7.16b +#endif +#ifndef __AARCH64EB__ + rev32 v7.16b,v8.16b +#else + mov v7.16b,v8.16b +#endif +#ifndef __AARCH64EB__ + rev32 v6.16b,v9.16b +#else + mov v6.16b,v9.16b +#endif +#ifndef __AARCH64EB__ + rev32 v5.16b,v10.16b +#else + mov v5.16b,v10.16b +#endif +#ifndef __AARCH64EB__ + rev32 v4.16b,v11.16b +#else + mov v4.16b,v11.16b +#endif + ret + +.globl _vpsm4_ex_set_encrypt_key + +.align 5 +_vpsm4_ex_set_encrypt_key: + AARCH64_SIGN_LINK_REGISTER + stp x29,x30,[sp,#-16]! + mov w2,1 + bl _vpsm4_ex_set_key + ldp x29,x30,[sp],#16 + AARCH64_VALIDATE_LINK_REGISTER + ret + +.globl _vpsm4_ex_set_decrypt_key + +.align 5 +_vpsm4_ex_set_decrypt_key: + AARCH64_SIGN_LINK_REGISTER + stp x29,x30,[sp,#-16]! + mov w2,0 + bl _vpsm4_ex_set_key + ldp x29,x30,[sp],#16 + AARCH64_VALIDATE_LINK_REGISTER + ret + +.globl _vpsm4_ex_encrypt + +.align 5 +_vpsm4_ex_encrypt: + AARCH64_VALID_CALL_TARGET + ld1 {v4.4s},[x0] + adrp x9, Lsbox_magic@PAGE + ldr q26, [x9, Lsbox_magic@PAGEOFF] + ldr q27, [x9, Lsbox_magic@PAGEOFF+16] + ldr q28, [x9, Lsbox_magic@PAGEOFF+32] + ldr q29, [x9, Lsbox_magic@PAGEOFF+48] + ldr q30, [x9, Lsbox_magic@PAGEOFF+64] + ldr q31, [x9, Lsbox_magic@PAGEOFF+80] +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif + mov x3,x2 + mov x10,x3 + mov w11,#8 + mov w12,v4.s[0] + mov w13,v4.s[1] + mov w14,v4.s[2] + mov w15,v4.s[3] +10: + ldp w7,w8,[x10],8 + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + eor w6,w14,w15 + eor w9,w7,w13 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w12,w12,w6 + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + eor w6,w14,w15 + eor w9,w12,w8 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + ldp w7,w8,[x10],8 + eor w13,w13,w6 + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + eor w6,w12,w13 + eor w9,w7,w15 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w14,w14,w6 + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + eor w6,w12,w13 + eor w9,w14,w8 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w15,w15,w6 + subs w11,w11,#1 + b.ne 10b + mov v4.s[0],w15 + mov v4.s[1],w14 + mov v4.s[2],w13 + mov v4.s[3],w12 +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif + st1 {v4.4s},[x1] + ret + +.globl _vpsm4_ex_decrypt + +.align 5 +_vpsm4_ex_decrypt: + AARCH64_VALID_CALL_TARGET + ld1 {v4.4s},[x0] + adrp x9, Lsbox_magic@PAGE + ldr q26, [x9, Lsbox_magic@PAGEOFF] + ldr q27, [x9, Lsbox_magic@PAGEOFF+16] + ldr q28, [x9, Lsbox_magic@PAGEOFF+32] + ldr q29, [x9, Lsbox_magic@PAGEOFF+48] + ldr q30, [x9, Lsbox_magic@PAGEOFF+64] + ldr q31, [x9, Lsbox_magic@PAGEOFF+80] +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif + mov x3,x2 + mov x10,x3 + mov w11,#8 + mov w12,v4.s[0] + mov w13,v4.s[1] + mov w14,v4.s[2] + mov w15,v4.s[3] +10: + ldp w7,w8,[x10],8 + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + eor w6,w14,w15 + eor w9,w7,w13 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w12,w12,w6 + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + eor w6,w14,w15 + eor w9,w12,w8 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + ldp w7,w8,[x10],8 + eor w13,w13,w6 + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + eor w6,w12,w13 + eor w9,w7,w15 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w14,w14,w6 + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + eor w6,w12,w13 + eor w9,w14,w8 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w15,w15,w6 + subs w11,w11,#1 + b.ne 10b + mov v4.s[0],w15 + mov v4.s[1],w14 + mov v4.s[2],w13 + mov v4.s[3],w12 +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif + st1 {v4.4s},[x1] + ret + +.globl _vpsm4_ex_ecb_encrypt + +.align 5 +_vpsm4_ex_ecb_encrypt: + AARCH64_SIGN_LINK_REGISTER + // convert length into blocks + lsr x2,x2,4 + stp d8,d9,[sp,#-80]! + stp d10,d11,[sp,#16] + stp d12,d13,[sp,#32] + stp d14,d15,[sp,#48] + stp x29,x30,[sp,#64] + adrp x9, Lsbox_magic@PAGE + ldr q26, [x9, Lsbox_magic@PAGEOFF] + ldr q27, [x9, Lsbox_magic@PAGEOFF+16] + ldr q28, [x9, Lsbox_magic@PAGEOFF+32] + ldr q29, [x9, Lsbox_magic@PAGEOFF+48] + ldr q30, [x9, Lsbox_magic@PAGEOFF+64] + ldr q31, [x9, Lsbox_magic@PAGEOFF+80] +Lecb_8_blocks_process: + cmp w2,#8 + b.lt Lecb_4_blocks_process + ld4 {v4.4s,v5.4s,v6.4s,v7.4s},[x0],#64 + ld4 {v8.4s,v9.4s,v10.4s,v11.4s},[x0],#64 +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif +#ifndef __AARCH64EB__ + rev32 v5.16b,v5.16b +#endif +#ifndef __AARCH64EB__ + rev32 v6.16b,v6.16b +#endif +#ifndef __AARCH64EB__ + rev32 v7.16b,v7.16b +#endif +#ifndef __AARCH64EB__ + rev32 v8.16b,v8.16b +#endif +#ifndef __AARCH64EB__ + rev32 v9.16b,v9.16b +#endif +#ifndef __AARCH64EB__ + rev32 v10.16b,v10.16b +#endif +#ifndef __AARCH64EB__ + rev32 v11.16b,v11.16b +#endif + bl _vpsm4_ex_enc_8blks + st4 {v0.4s,v1.4s,v2.4s,v3.4s},[x1],#64 + st4 {v4.4s,v5.4s,v6.4s,v7.4s},[x1],#64 + subs w2,w2,#8 + b.gt Lecb_8_blocks_process + b 100f +Lecb_4_blocks_process: + cmp w2,#4 + b.lt 1f + ld4 {v4.4s,v5.4s,v6.4s,v7.4s},[x0],#64 +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif +#ifndef __AARCH64EB__ + rev32 v5.16b,v5.16b +#endif +#ifndef __AARCH64EB__ + rev32 v6.16b,v6.16b +#endif +#ifndef __AARCH64EB__ + rev32 v7.16b,v7.16b +#endif + bl _vpsm4_ex_enc_4blks + st4 {v0.4s,v1.4s,v2.4s,v3.4s},[x1],#64 + sub w2,w2,#4 +1: + // process last block + cmp w2,#1 + b.lt 100f + b.gt 1f + ld1 {v4.4s},[x0] +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif + mov x10,x3 + mov w11,#8 + mov w12,v4.s[0] + mov w13,v4.s[1] + mov w14,v4.s[2] + mov w15,v4.s[3] +10: + ldp w7,w8,[x10],8 + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + eor w6,w14,w15 + eor w9,w7,w13 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w12,w12,w6 + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + eor w6,w14,w15 + eor w9,w12,w8 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + ldp w7,w8,[x10],8 + eor w13,w13,w6 + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + eor w6,w12,w13 + eor w9,w7,w15 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w14,w14,w6 + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + eor w6,w12,w13 + eor w9,w14,w8 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w15,w15,w6 + subs w11,w11,#1 + b.ne 10b + mov v4.s[0],w15 + mov v4.s[1],w14 + mov v4.s[2],w13 + mov v4.s[3],w12 +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif + st1 {v4.4s},[x1] + b 100f +1: // process last 2 blocks + ld4 {v4.s,v5.s,v6.s,v7.s}[0],[x0],#16 + ld4 {v4.s,v5.s,v6.s,v7.s}[1],[x0],#16 + cmp w2,#2 + b.gt 1f +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif +#ifndef __AARCH64EB__ + rev32 v5.16b,v5.16b +#endif +#ifndef __AARCH64EB__ + rev32 v6.16b,v6.16b +#endif +#ifndef __AARCH64EB__ + rev32 v7.16b,v7.16b +#endif + bl _vpsm4_ex_enc_4blks + st4 {v0.s,v1.s,v2.s,v3.s}[0],[x1],#16 + st4 {v0.s,v1.s,v2.s,v3.s}[1],[x1] + b 100f +1: // process last 3 blocks + ld4 {v4.s,v5.s,v6.s,v7.s}[2],[x0],#16 +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif +#ifndef __AARCH64EB__ + rev32 v5.16b,v5.16b +#endif +#ifndef __AARCH64EB__ + rev32 v6.16b,v6.16b +#endif +#ifndef __AARCH64EB__ + rev32 v7.16b,v7.16b +#endif + bl _vpsm4_ex_enc_4blks + st4 {v0.s,v1.s,v2.s,v3.s}[0],[x1],#16 + st4 {v0.s,v1.s,v2.s,v3.s}[1],[x1],#16 + st4 {v0.s,v1.s,v2.s,v3.s}[2],[x1] +100: + ldp d10,d11,[sp,#16] + ldp d12,d13,[sp,#32] + ldp d14,d15,[sp,#48] + ldp x29,x30,[sp,#64] + ldp d8,d9,[sp],#80 + AARCH64_VALIDATE_LINK_REGISTER + ret + +.globl _vpsm4_ex_cbc_encrypt + +.align 5 +_vpsm4_ex_cbc_encrypt: + AARCH64_VALID_CALL_TARGET + lsr x2,x2,4 + adrp x9, Lsbox_magic@PAGE + ldr q26, [x9, Lsbox_magic@PAGEOFF] + ldr q27, [x9, Lsbox_magic@PAGEOFF+16] + ldr q28, [x9, Lsbox_magic@PAGEOFF+32] + ldr q29, [x9, Lsbox_magic@PAGEOFF+48] + ldr q30, [x9, Lsbox_magic@PAGEOFF+64] + ldr q31, [x9, Lsbox_magic@PAGEOFF+80] + cbz w5,Ldec + ld1 {v3.4s},[x4] +Lcbc_4_blocks_enc: + cmp w2,#4 + b.lt 1f + ld1 {v4.4s,v5.4s,v6.4s,v7.4s},[x0],#64 + eor v4.16b,v4.16b,v3.16b +#ifndef __AARCH64EB__ + rev32 v5.16b,v5.16b +#endif +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif +#ifndef __AARCH64EB__ + rev32 v6.16b,v6.16b +#endif +#ifndef __AARCH64EB__ + rev32 v7.16b,v7.16b +#endif + mov x10,x3 + mov w11,#8 + mov w12,v4.s[0] + mov w13,v4.s[1] + mov w14,v4.s[2] + mov w15,v4.s[3] +10: + ldp w7,w8,[x10],8 + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + eor w6,w14,w15 + eor w9,w7,w13 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w12,w12,w6 + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + eor w6,w14,w15 + eor w9,w12,w8 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + ldp w7,w8,[x10],8 + eor w13,w13,w6 + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + eor w6,w12,w13 + eor w9,w7,w15 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w14,w14,w6 + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + eor w6,w12,w13 + eor w9,w14,w8 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w15,w15,w6 + subs w11,w11,#1 + b.ne 10b + mov v4.s[0],w15 + mov v4.s[1],w14 + mov v4.s[2],w13 + mov v4.s[3],w12 + eor v5.16b,v5.16b,v4.16b + mov x10,x3 + mov w11,#8 + mov w12,v5.s[0] + mov w13,v5.s[1] + mov w14,v5.s[2] + mov w15,v5.s[3] +10: + ldp w7,w8,[x10],8 + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + eor w6,w14,w15 + eor w9,w7,w13 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w12,w12,w6 + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + eor w6,w14,w15 + eor w9,w12,w8 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + ldp w7,w8,[x10],8 + eor w13,w13,w6 + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + eor w6,w12,w13 + eor w9,w7,w15 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w14,w14,w6 + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + eor w6,w12,w13 + eor w9,w14,w8 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w15,w15,w6 + subs w11,w11,#1 + b.ne 10b + mov v5.s[0],w15 + mov v5.s[1],w14 + mov v5.s[2],w13 + mov v5.s[3],w12 +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif + eor v6.16b,v6.16b,v5.16b + mov x10,x3 + mov w11,#8 + mov w12,v6.s[0] + mov w13,v6.s[1] + mov w14,v6.s[2] + mov w15,v6.s[3] +10: + ldp w7,w8,[x10],8 + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + eor w6,w14,w15 + eor w9,w7,w13 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w12,w12,w6 + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + eor w6,w14,w15 + eor w9,w12,w8 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + ldp w7,w8,[x10],8 + eor w13,w13,w6 + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + eor w6,w12,w13 + eor w9,w7,w15 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w14,w14,w6 + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + eor w6,w12,w13 + eor w9,w14,w8 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w15,w15,w6 + subs w11,w11,#1 + b.ne 10b + mov v6.s[0],w15 + mov v6.s[1],w14 + mov v6.s[2],w13 + mov v6.s[3],w12 +#ifndef __AARCH64EB__ + rev32 v5.16b,v5.16b +#endif + eor v7.16b,v7.16b,v6.16b + mov x10,x3 + mov w11,#8 + mov w12,v7.s[0] + mov w13,v7.s[1] + mov w14,v7.s[2] + mov w15,v7.s[3] +10: + ldp w7,w8,[x10],8 + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + eor w6,w14,w15 + eor w9,w7,w13 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w12,w12,w6 + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + eor w6,w14,w15 + eor w9,w12,w8 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + ldp w7,w8,[x10],8 + eor w13,w13,w6 + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + eor w6,w12,w13 + eor w9,w7,w15 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w14,w14,w6 + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + eor w6,w12,w13 + eor w9,w14,w8 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w15,w15,w6 + subs w11,w11,#1 + b.ne 10b + mov v7.s[0],w15 + mov v7.s[1],w14 + mov v7.s[2],w13 + mov v7.s[3],w12 +#ifndef __AARCH64EB__ + rev32 v6.16b,v6.16b +#endif +#ifndef __AARCH64EB__ + rev32 v7.16b,v7.16b +#endif + orr v3.16b,v7.16b,v7.16b + st1 {v4.4s,v5.4s,v6.4s,v7.4s},[x1],#64 + subs w2,w2,#4 + b.ne Lcbc_4_blocks_enc + b 2f +1: + subs w2,w2,#1 + b.lt 2f + ld1 {v4.4s},[x0],#16 + eor v3.16b,v3.16b,v4.16b +#ifndef __AARCH64EB__ + rev32 v3.16b,v3.16b +#endif + mov x10,x3 + mov w11,#8 + mov w12,v3.s[0] + mov w13,v3.s[1] + mov w14,v3.s[2] + mov w15,v3.s[3] +10: + ldp w7,w8,[x10],8 + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + eor w6,w14,w15 + eor w9,w7,w13 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w12,w12,w6 + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + eor w6,w14,w15 + eor w9,w12,w8 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + ldp w7,w8,[x10],8 + eor w13,w13,w6 + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + eor w6,w12,w13 + eor w9,w7,w15 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w14,w14,w6 + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + eor w6,w12,w13 + eor w9,w14,w8 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w15,w15,w6 + subs w11,w11,#1 + b.ne 10b + mov v3.s[0],w15 + mov v3.s[1],w14 + mov v3.s[2],w13 + mov v3.s[3],w12 +#ifndef __AARCH64EB__ + rev32 v3.16b,v3.16b +#endif + st1 {v3.4s},[x1],#16 + b 1b +2: + // save back IV + st1 {v3.4s},[x4] + ret + +Ldec: + // decryption mode starts + AARCH64_SIGN_LINK_REGISTER + stp d8,d9,[sp,#-80]! + stp d10,d11,[sp,#16] + stp d12,d13,[sp,#32] + stp d14,d15,[sp,#48] + stp x29,x30,[sp,#64] +Lcbc_8_blocks_dec: + cmp w2,#8 + b.lt 1f + ld4 {v4.4s,v5.4s,v6.4s,v7.4s},[x0] + add x10,x0,#64 + ld4 {v8.4s,v9.4s,v10.4s,v11.4s},[x10] +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif +#ifndef __AARCH64EB__ + rev32 v5.16b,v5.16b +#endif +#ifndef __AARCH64EB__ + rev32 v6.16b,v6.16b +#endif +#ifndef __AARCH64EB__ + rev32 v7.16b,v7.16b +#endif +#ifndef __AARCH64EB__ + rev32 v8.16b,v8.16b +#endif +#ifndef __AARCH64EB__ + rev32 v9.16b,v9.16b +#endif +#ifndef __AARCH64EB__ + rev32 v10.16b,v10.16b +#endif +#ifndef __AARCH64EB__ + rev32 v11.16b,v11.16b +#endif + bl _vpsm4_ex_enc_8blks + zip1 v8.4s,v0.4s,v1.4s + zip2 v9.4s,v0.4s,v1.4s + zip1 v10.4s,v2.4s,v3.4s + zip2 v11.4s,v2.4s,v3.4s + zip1 v0.2d,v8.2d,v10.2d + zip2 v1.2d,v8.2d,v10.2d + zip1 v2.2d,v9.2d,v11.2d + zip2 v3.2d,v9.2d,v11.2d + zip1 v8.4s,v4.4s,v5.4s + zip2 v9.4s,v4.4s,v5.4s + zip1 v10.4s,v6.4s,v7.4s + zip2 v11.4s,v6.4s,v7.4s + zip1 v4.2d,v8.2d,v10.2d + zip2 v5.2d,v8.2d,v10.2d + zip1 v6.2d,v9.2d,v11.2d + zip2 v7.2d,v9.2d,v11.2d + ld1 {v15.4s},[x4] + ld1 {v8.4s,v9.4s,v10.4s,v11.4s},[x0],#64 + // note ivec1 and vtmpx[3] are reusing the same register + // care needs to be taken to avoid conflict + eor v0.16b,v0.16b,v15.16b + ld1 {v12.4s,v13.4s,v14.4s,v15.4s},[x0],#64 + eor v1.16b,v1.16b,v8.16b + eor v2.16b,v2.16b,v9.16b + eor v3.16b,v3.16b,v10.16b + // save back IV + st1 {v15.4s}, [x4] + eor v4.16b,v4.16b,v11.16b + eor v5.16b,v5.16b,v12.16b + eor v6.16b,v6.16b,v13.16b + eor v7.16b,v7.16b,v14.16b + st1 {v0.4s,v1.4s,v2.4s,v3.4s},[x1],#64 + st1 {v4.4s,v5.4s,v6.4s,v7.4s},[x1],#64 + subs w2,w2,#8 + b.gt Lcbc_8_blocks_dec + b.eq 100f +1: + ld1 {v15.4s},[x4] +Lcbc_4_blocks_dec: + cmp w2,#4 + b.lt 1f + ld4 {v4.4s,v5.4s,v6.4s,v7.4s},[x0] +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif +#ifndef __AARCH64EB__ + rev32 v5.16b,v5.16b +#endif +#ifndef __AARCH64EB__ + rev32 v6.16b,v6.16b +#endif +#ifndef __AARCH64EB__ + rev32 v7.16b,v7.16b +#endif + bl _vpsm4_ex_enc_4blks + ld1 {v4.4s,v5.4s,v6.4s,v7.4s},[x0],#64 + zip1 v8.4s,v0.4s,v1.4s + zip2 v9.4s,v0.4s,v1.4s + zip1 v10.4s,v2.4s,v3.4s + zip2 v11.4s,v2.4s,v3.4s + zip1 v0.2d,v8.2d,v10.2d + zip2 v1.2d,v8.2d,v10.2d + zip1 v2.2d,v9.2d,v11.2d + zip2 v3.2d,v9.2d,v11.2d + eor v0.16b,v0.16b,v15.16b + eor v1.16b,v1.16b,v4.16b + orr v15.16b,v7.16b,v7.16b + eor v2.16b,v2.16b,v5.16b + eor v3.16b,v3.16b,v6.16b + st1 {v0.4s,v1.4s,v2.4s,v3.4s},[x1],#64 + subs w2,w2,#4 + b.gt Lcbc_4_blocks_dec + // save back IV + st1 {v7.4s}, [x4] + b 100f +1: // last block + subs w2,w2,#1 + b.lt 100f + b.gt 1f + ld1 {v4.4s},[x0],#16 + // save back IV + st1 {v4.4s}, [x4] +#ifndef __AARCH64EB__ + rev32 v8.16b,v4.16b +#else + mov v8.16b,v4.16b +#endif + mov x10,x3 + mov w11,#8 + mov w12,v8.s[0] + mov w13,v8.s[1] + mov w14,v8.s[2] + mov w15,v8.s[3] +10: + ldp w7,w8,[x10],8 + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + eor w6,w14,w15 + eor w9,w7,w13 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w12,w12,w6 + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + eor w6,w14,w15 + eor w9,w12,w8 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + ldp w7,w8,[x10],8 + eor w13,w13,w6 + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + eor w6,w12,w13 + eor w9,w7,w15 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w14,w14,w6 + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + eor w6,w12,w13 + eor w9,w14,w8 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w15,w15,w6 + subs w11,w11,#1 + b.ne 10b + mov v8.s[0],w15 + mov v8.s[1],w14 + mov v8.s[2],w13 + mov v8.s[3],w12 +#ifndef __AARCH64EB__ + rev32 v8.16b,v8.16b +#endif + eor v8.16b,v8.16b,v15.16b + st1 {v8.4s},[x1],#16 + b 100f +1: // last two blocks + ld4 {v4.s,v5.s,v6.s,v7.s}[0],[x0] + add x10,x0,#16 + ld4 {v4.s,v5.s,v6.s,v7.s}[1],[x10],#16 + subs w2,w2,1 + b.gt 1f +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif +#ifndef __AARCH64EB__ + rev32 v5.16b,v5.16b +#endif +#ifndef __AARCH64EB__ + rev32 v6.16b,v6.16b +#endif +#ifndef __AARCH64EB__ + rev32 v7.16b,v7.16b +#endif + bl _vpsm4_ex_enc_4blks + ld1 {v4.4s,v5.4s},[x0],#32 + zip1 v8.4s,v0.4s,v1.4s + zip2 v9.4s,v0.4s,v1.4s + zip1 v10.4s,v2.4s,v3.4s + zip2 v11.4s,v2.4s,v3.4s + zip1 v0.2d,v8.2d,v10.2d + zip2 v1.2d,v8.2d,v10.2d + zip1 v2.2d,v9.2d,v11.2d + zip2 v3.2d,v9.2d,v11.2d + eor v0.16b,v0.16b,v15.16b + eor v1.16b,v1.16b,v4.16b + st1 {v0.4s,v1.4s},[x1],#32 + // save back IV + st1 {v5.4s}, [x4] + b 100f +1: // last 3 blocks + ld4 {v4.s,v5.s,v6.s,v7.s}[2],[x10] +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif +#ifndef __AARCH64EB__ + rev32 v5.16b,v5.16b +#endif +#ifndef __AARCH64EB__ + rev32 v6.16b,v6.16b +#endif +#ifndef __AARCH64EB__ + rev32 v7.16b,v7.16b +#endif + bl _vpsm4_ex_enc_4blks + ld1 {v4.4s,v5.4s,v6.4s},[x0],#48 + zip1 v8.4s,v0.4s,v1.4s + zip2 v9.4s,v0.4s,v1.4s + zip1 v10.4s,v2.4s,v3.4s + zip2 v11.4s,v2.4s,v3.4s + zip1 v0.2d,v8.2d,v10.2d + zip2 v1.2d,v8.2d,v10.2d + zip1 v2.2d,v9.2d,v11.2d + zip2 v3.2d,v9.2d,v11.2d + eor v0.16b,v0.16b,v15.16b + eor v1.16b,v1.16b,v4.16b + eor v2.16b,v2.16b,v5.16b + st1 {v0.4s,v1.4s,v2.4s},[x1],#48 + // save back IV + st1 {v6.4s}, [x4] +100: + ldp d10,d11,[sp,#16] + ldp d12,d13,[sp,#32] + ldp d14,d15,[sp,#48] + ldp x29,x30,[sp,#64] + ldp d8,d9,[sp],#80 + AARCH64_VALIDATE_LINK_REGISTER + ret + +.globl _vpsm4_ex_ctr32_encrypt_blocks + +.align 5 +_vpsm4_ex_ctr32_encrypt_blocks: + AARCH64_VALID_CALL_TARGET + ld1 {v3.4s},[x4] +#ifndef __AARCH64EB__ + rev32 v3.16b,v3.16b +#endif + adrp x9, Lsbox_magic@PAGE + ldr q26, [x9, Lsbox_magic@PAGEOFF] + ldr q27, [x9, Lsbox_magic@PAGEOFF+16] + ldr q28, [x9, Lsbox_magic@PAGEOFF+32] + ldr q29, [x9, Lsbox_magic@PAGEOFF+48] + ldr q30, [x9, Lsbox_magic@PAGEOFF+64] + ldr q31, [x9, Lsbox_magic@PAGEOFF+80] + cmp w2,#1 + b.ne 1f + // fast processing for one single block without + // context saving overhead + mov x10,x3 + mov w11,#8 + mov w12,v3.s[0] + mov w13,v3.s[1] + mov w14,v3.s[2] + mov w15,v3.s[3] +10: + ldp w7,w8,[x10],8 + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + eor w6,w14,w15 + eor w9,w7,w13 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w12,w12,w6 + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + eor w6,w14,w15 + eor w9,w12,w8 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + ldp w7,w8,[x10],8 + eor w13,w13,w6 + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + eor w6,w12,w13 + eor w9,w7,w15 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w14,w14,w6 + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + eor w6,w12,w13 + eor w9,w14,w8 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w15,w15,w6 + subs w11,w11,#1 + b.ne 10b + mov v3.s[0],w15 + mov v3.s[1],w14 + mov v3.s[2],w13 + mov v3.s[3],w12 +#ifndef __AARCH64EB__ + rev32 v3.16b,v3.16b +#endif + ld1 {v4.4s},[x0] + eor v4.16b,v4.16b,v3.16b + st1 {v4.4s},[x1] + ret +1: + AARCH64_SIGN_LINK_REGISTER + stp d8,d9,[sp,#-80]! + stp d10,d11,[sp,#16] + stp d12,d13,[sp,#32] + stp d14,d15,[sp,#48] + stp x29,x30,[sp,#64] + mov w12,v3.s[0] + mov w13,v3.s[1] + mov w14,v3.s[2] + mov w5,v3.s[3] +Lctr32_4_blocks_process: + cmp w2,#4 + b.lt 1f + dup v4.4s,w12 + dup v5.4s,w13 + dup v6.4s,w14 + mov v7.s[0],w5 + add w5,w5,#1 + mov v7.s[1],w5 + add w5,w5,#1 + mov v7.s[2],w5 + add w5,w5,#1 + mov v7.s[3],w5 + add w5,w5,#1 + cmp w2,#8 + b.ge Lctr32_8_blocks_process + bl _vpsm4_ex_enc_4blks + ld4 {v12.4s,v13.4s,v14.4s,v15.4s},[x0],#64 + eor v0.16b,v0.16b,v12.16b + eor v1.16b,v1.16b,v13.16b + eor v2.16b,v2.16b,v14.16b + eor v3.16b,v3.16b,v15.16b + st4 {v0.4s,v1.4s,v2.4s,v3.4s},[x1],#64 + subs w2,w2,#4 + b.ne Lctr32_4_blocks_process + b 100f +Lctr32_8_blocks_process: + dup v8.4s,w12 + dup v9.4s,w13 + dup v10.4s,w14 + mov v11.s[0],w5 + add w5,w5,#1 + mov v11.s[1],w5 + add w5,w5,#1 + mov v11.s[2],w5 + add w5,w5,#1 + mov v11.s[3],w5 + add w5,w5,#1 + bl _vpsm4_ex_enc_8blks + ld4 {v12.4s,v13.4s,v14.4s,v15.4s},[x0],#64 + ld4 {v8.4s,v9.4s,v10.4s,v11.4s},[x0],#64 + eor v0.16b,v0.16b,v12.16b + eor v1.16b,v1.16b,v13.16b + eor v2.16b,v2.16b,v14.16b + eor v3.16b,v3.16b,v15.16b + eor v4.16b,v4.16b,v8.16b + eor v5.16b,v5.16b,v9.16b + eor v6.16b,v6.16b,v10.16b + eor v7.16b,v7.16b,v11.16b + st4 {v0.4s,v1.4s,v2.4s,v3.4s},[x1],#64 + st4 {v4.4s,v5.4s,v6.4s,v7.4s},[x1],#64 + subs w2,w2,#8 + b.ne Lctr32_4_blocks_process + b 100f +1: // last block processing + subs w2,w2,#1 + b.lt 100f + b.gt 1f + mov v3.s[0],w12 + mov v3.s[1],w13 + mov v3.s[2],w14 + mov v3.s[3],w5 + mov x10,x3 + mov w11,#8 + mov w12,v3.s[0] + mov w13,v3.s[1] + mov w14,v3.s[2] + mov w15,v3.s[3] +10: + ldp w7,w8,[x10],8 + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + eor w6,w14,w15 + eor w9,w7,w13 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w12,w12,w6 + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + eor w6,w14,w15 + eor w9,w12,w8 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + ldp w7,w8,[x10],8 + eor w13,w13,w6 + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + eor w6,w12,w13 + eor w9,w7,w15 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w14,w14,w6 + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + eor w6,w12,w13 + eor w9,w14,w8 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w15,w15,w6 + subs w11,w11,#1 + b.ne 10b + mov v3.s[0],w15 + mov v3.s[1],w14 + mov v3.s[2],w13 + mov v3.s[3],w12 +#ifndef __AARCH64EB__ + rev32 v3.16b,v3.16b +#endif + ld1 {v4.4s},[x0] + eor v4.16b,v4.16b,v3.16b + st1 {v4.4s},[x1] + b 100f +1: // last 2 blocks processing + dup v4.4s,w12 + dup v5.4s,w13 + dup v6.4s,w14 + mov v7.s[0],w5 + add w5,w5,#1 + mov v7.s[1],w5 + subs w2,w2,#1 + b.ne 1f + bl _vpsm4_ex_enc_4blks + ld4 {v12.s,v13.s,v14.s,v15.s}[0],[x0],#16 + ld4 {v12.s,v13.s,v14.s,v15.s}[1],[x0],#16 + eor v0.16b,v0.16b,v12.16b + eor v1.16b,v1.16b,v13.16b + eor v2.16b,v2.16b,v14.16b + eor v3.16b,v3.16b,v15.16b + st4 {v0.s,v1.s,v2.s,v3.s}[0],[x1],#16 + st4 {v0.s,v1.s,v2.s,v3.s}[1],[x1],#16 + b 100f +1: // last 3 blocks processing + add w5,w5,#1 + mov v7.s[2],w5 + bl _vpsm4_ex_enc_4blks + ld4 {v12.s,v13.s,v14.s,v15.s}[0],[x0],#16 + ld4 {v12.s,v13.s,v14.s,v15.s}[1],[x0],#16 + ld4 {v12.s,v13.s,v14.s,v15.s}[2],[x0],#16 + eor v0.16b,v0.16b,v12.16b + eor v1.16b,v1.16b,v13.16b + eor v2.16b,v2.16b,v14.16b + eor v3.16b,v3.16b,v15.16b + st4 {v0.s,v1.s,v2.s,v3.s}[0],[x1],#16 + st4 {v0.s,v1.s,v2.s,v3.s}[1],[x1],#16 + st4 {v0.s,v1.s,v2.s,v3.s}[2],[x1],#16 +100: + ldp d10,d11,[sp,#16] + ldp d12,d13,[sp,#32] + ldp d14,d15,[sp,#48] + ldp x29,x30,[sp,#64] + ldp d8,d9,[sp],#80 + AARCH64_VALIDATE_LINK_REGISTER + ret + +.globl _vpsm4_ex_xts_encrypt_gb + +.align 5 +_vpsm4_ex_xts_encrypt_gb: + AARCH64_SIGN_LINK_REGISTER + stp x15, x16, [sp, #-0x10]! + stp x17, x18, [sp, #-0x10]! + stp x19, x20, [sp, #-0x10]! + stp x21, x22, [sp, #-0x10]! + stp x23, x24, [sp, #-0x10]! + stp x25, x26, [sp, #-0x10]! + stp x27, x28, [sp, #-0x10]! + stp x29, x30, [sp, #-0x10]! + stp d8, d9, [sp, #-0x10]! + stp d10, d11, [sp, #-0x10]! + stp d12, d13, [sp, #-0x10]! + stp d14, d15, [sp, #-0x10]! + mov x26,x3 + mov x27,x4 + mov w28,w6 + ld1 {v16.4s}, [x5] + mov x3,x27 + adrp x9, Lsbox_magic@PAGE + ldr q26, [x9, Lsbox_magic@PAGEOFF] + ldr q27, [x9, Lsbox_magic@PAGEOFF+16] + ldr q28, [x9, Lsbox_magic@PAGEOFF+32] + ldr q29, [x9, Lsbox_magic@PAGEOFF+48] + ldr q30, [x9, Lsbox_magic@PAGEOFF+64] + ldr q31, [x9, Lsbox_magic@PAGEOFF+80] +#ifndef __AARCH64EB__ + rev32 v16.16b,v16.16b +#endif + mov x10,x3 + mov w11,#8 + mov w12,v16.s[0] + mov w13,v16.s[1] + mov w14,v16.s[2] + mov w15,v16.s[3] +10: + ldp w7,w8,[x10],8 + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + eor w6,w14,w15 + eor w9,w7,w13 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w12,w12,w6 + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + eor w6,w14,w15 + eor w9,w12,w8 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + ldp w7,w8,[x10],8 + eor w13,w13,w6 + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + eor w6,w12,w13 + eor w9,w7,w15 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w14,w14,w6 + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + eor w6,w12,w13 + eor w9,w14,w8 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w15,w15,w6 + subs w11,w11,#1 + b.ne 10b + mov v16.s[0],w15 + mov v16.s[1],w14 + mov v16.s[2],w13 + mov v16.s[3],w12 +#ifndef __AARCH64EB__ + rev32 v16.16b,v16.16b +#endif + mov x3,x26 + and x29,x2,#0x0F + // convert length into blocks + lsr x2,x2,4 + cmp x2,#1 + b.lt .return_gb + + cmp x29,0 + // If the encryption/decryption Length is N times of 16, + // the all blocks are encrypted/decrypted in .xts_encrypt_blocks_gb + b.eq .xts_encrypt_blocks_gb + + // If the encryption/decryption length is not N times of 16, + // the last two blocks are encrypted/decrypted in .last_2blks_tweak_gb or .only_2blks_tweak_gb + // the other blocks are encrypted/decrypted in .xts_encrypt_blocks_gb + subs x2,x2,#1 + b.eq .only_2blks_tweak_gb +.xts_encrypt_blocks_gb: + rbit v16.16b,v16.16b +#ifdef __AARCH64EB__ + rev32 v16.16b,v16.16b +#endif + mov x12,v16.d[0] + mov x13,v16.d[1] + mov w7,0x87 + extr x9,x13,x13,#32 + extr x15,x13,x12,#63 + and w8,w7,w9,asr#31 + eor x14,x8,x12,lsl#1 + mov w7,0x87 + extr x9,x15,x15,#32 + extr x17,x15,x14,#63 + and w8,w7,w9,asr#31 + eor x16,x8,x14,lsl#1 + mov w7,0x87 + extr x9,x17,x17,#32 + extr x19,x17,x16,#63 + and w8,w7,w9,asr#31 + eor x18,x8,x16,lsl#1 + mov w7,0x87 + extr x9,x19,x19,#32 + extr x21,x19,x18,#63 + and w8,w7,w9,asr#31 + eor x20,x8,x18,lsl#1 + mov w7,0x87 + extr x9,x21,x21,#32 + extr x23,x21,x20,#63 + and w8,w7,w9,asr#31 + eor x22,x8,x20,lsl#1 + mov w7,0x87 + extr x9,x23,x23,#32 + extr x25,x23,x22,#63 + and w8,w7,w9,asr#31 + eor x24,x8,x22,lsl#1 + mov w7,0x87 + extr x9,x25,x25,#32 + extr x27,x25,x24,#63 + and w8,w7,w9,asr#31 + eor x26,x8,x24,lsl#1 +Lxts_8_blocks_process_gb: + cmp x2,#8 + mov v16.d[0],x12 + mov v16.d[1],x13 +#ifdef __AARCH64EB__ + rev32 v16.16b,v16.16b +#endif + mov w7,0x87 + extr x9,x27,x27,#32 + extr x13,x27,x26,#63 + and w8,w7,w9,asr#31 + eor x12,x8,x26,lsl#1 + mov v17.d[0],x14 + mov v17.d[1],x15 +#ifdef __AARCH64EB__ + rev32 v17.16b,v17.16b +#endif + mov w7,0x87 + extr x9,x13,x13,#32 + extr x15,x13,x12,#63 + and w8,w7,w9,asr#31 + eor x14,x8,x12,lsl#1 + mov v18.d[0],x16 + mov v18.d[1],x17 +#ifdef __AARCH64EB__ + rev32 v18.16b,v18.16b +#endif + mov w7,0x87 + extr x9,x15,x15,#32 + extr x17,x15,x14,#63 + and w8,w7,w9,asr#31 + eor x16,x8,x14,lsl#1 + mov v19.d[0],x18 + mov v19.d[1],x19 +#ifdef __AARCH64EB__ + rev32 v19.16b,v19.16b +#endif + mov w7,0x87 + extr x9,x17,x17,#32 + extr x19,x17,x16,#63 + and w8,w7,w9,asr#31 + eor x18,x8,x16,lsl#1 + mov v20.d[0],x20 + mov v20.d[1],x21 +#ifdef __AARCH64EB__ + rev32 v20.16b,v20.16b +#endif + mov w7,0x87 + extr x9,x19,x19,#32 + extr x21,x19,x18,#63 + and w8,w7,w9,asr#31 + eor x20,x8,x18,lsl#1 + mov v21.d[0],x22 + mov v21.d[1],x23 +#ifdef __AARCH64EB__ + rev32 v21.16b,v21.16b +#endif + mov w7,0x87 + extr x9,x21,x21,#32 + extr x23,x21,x20,#63 + and w8,w7,w9,asr#31 + eor x22,x8,x20,lsl#1 + mov v22.d[0],x24 + mov v22.d[1],x25 +#ifdef __AARCH64EB__ + rev32 v22.16b,v22.16b +#endif + mov w7,0x87 + extr x9,x23,x23,#32 + extr x25,x23,x22,#63 + and w8,w7,w9,asr#31 + eor x24,x8,x22,lsl#1 + mov v23.d[0],x26 + mov v23.d[1],x27 +#ifdef __AARCH64EB__ + rev32 v23.16b,v23.16b +#endif + mov w7,0x87 + extr x9,x25,x25,#32 + extr x27,x25,x24,#63 + and w8,w7,w9,asr#31 + eor x26,x8,x24,lsl#1 + b.lt Lxts_4_blocks_process_gb + ld1 {v4.4s,v5.4s,v6.4s,v7.4s},[x0],#64 + rbit v16.16b,v16.16b + rbit v17.16b,v17.16b + rbit v18.16b,v18.16b + rbit v19.16b,v19.16b + eor v4.16b, v4.16b, v16.16b + eor v5.16b, v5.16b, v17.16b + eor v6.16b, v6.16b, v18.16b + eor v7.16b, v7.16b, v19.16b + ld1 {v8.4s,v9.4s,v10.4s,v11.4s},[x0],#64 + rbit v20.16b,v20.16b + rbit v21.16b,v21.16b + rbit v22.16b,v22.16b + rbit v23.16b,v23.16b + eor v8.16b, v8.16b, v20.16b + eor v9.16b, v9.16b, v21.16b + eor v10.16b, v10.16b, v22.16b + eor v11.16b, v11.16b, v23.16b +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif +#ifndef __AARCH64EB__ + rev32 v5.16b,v5.16b +#endif +#ifndef __AARCH64EB__ + rev32 v6.16b,v6.16b +#endif +#ifndef __AARCH64EB__ + rev32 v7.16b,v7.16b +#endif +#ifndef __AARCH64EB__ + rev32 v8.16b,v8.16b +#endif +#ifndef __AARCH64EB__ + rev32 v9.16b,v9.16b +#endif +#ifndef __AARCH64EB__ + rev32 v10.16b,v10.16b +#endif +#ifndef __AARCH64EB__ + rev32 v11.16b,v11.16b +#endif + zip1 v0.4s,v4.4s,v5.4s + zip2 v1.4s,v4.4s,v5.4s + zip1 v2.4s,v6.4s,v7.4s + zip2 v3.4s,v6.4s,v7.4s + zip1 v4.2d,v0.2d,v2.2d + zip2 v5.2d,v0.2d,v2.2d + zip1 v6.2d,v1.2d,v3.2d + zip2 v7.2d,v1.2d,v3.2d + zip1 v0.4s,v8.4s,v9.4s + zip2 v1.4s,v8.4s,v9.4s + zip1 v2.4s,v10.4s,v11.4s + zip2 v3.4s,v10.4s,v11.4s + zip1 v8.2d,v0.2d,v2.2d + zip2 v9.2d,v0.2d,v2.2d + zip1 v10.2d,v1.2d,v3.2d + zip2 v11.2d,v1.2d,v3.2d + bl _vpsm4_ex_enc_8blks + zip1 v8.4s,v0.4s,v1.4s + zip2 v9.4s,v0.4s,v1.4s + zip1 v10.4s,v2.4s,v3.4s + zip2 v11.4s,v2.4s,v3.4s + zip1 v0.2d,v8.2d,v10.2d + zip2 v1.2d,v8.2d,v10.2d + zip1 v2.2d,v9.2d,v11.2d + zip2 v3.2d,v9.2d,v11.2d + zip1 v8.4s,v4.4s,v5.4s + zip2 v9.4s,v4.4s,v5.4s + zip1 v10.4s,v6.4s,v7.4s + zip2 v11.4s,v6.4s,v7.4s + zip1 v4.2d,v8.2d,v10.2d + zip2 v5.2d,v8.2d,v10.2d + zip1 v6.2d,v9.2d,v11.2d + zip2 v7.2d,v9.2d,v11.2d + eor v0.16b, v0.16b, v16.16b + eor v1.16b, v1.16b, v17.16b + eor v2.16b, v2.16b, v18.16b + eor v3.16b, v3.16b, v19.16b + eor v4.16b, v4.16b, v20.16b + eor v5.16b, v5.16b, v21.16b + eor v6.16b, v6.16b, v22.16b + eor v7.16b, v7.16b, v23.16b + + // save the last tweak + mov v25.16b,v23.16b + st1 {v0.4s,v1.4s,v2.4s,v3.4s},[x1],#64 + st1 {v4.4s,v5.4s,v6.4s,v7.4s},[x1],#64 + subs x2,x2,#8 + b.gt Lxts_8_blocks_process_gb + b 100f +Lxts_4_blocks_process_gb: + cmp x2,#4 + b.lt 1f + ld1 {v4.4s,v5.4s,v6.4s,v7.4s},[x0],#64 + rbit v16.16b,v16.16b + rbit v17.16b,v17.16b + rbit v18.16b,v18.16b + rbit v19.16b,v19.16b + eor v4.16b, v4.16b, v16.16b + eor v5.16b, v5.16b, v17.16b + eor v6.16b, v6.16b, v18.16b + eor v7.16b, v7.16b, v19.16b +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif +#ifndef __AARCH64EB__ + rev32 v5.16b,v5.16b +#endif +#ifndef __AARCH64EB__ + rev32 v6.16b,v6.16b +#endif +#ifndef __AARCH64EB__ + rev32 v7.16b,v7.16b +#endif + zip1 v0.4s,v4.4s,v5.4s + zip2 v1.4s,v4.4s,v5.4s + zip1 v2.4s,v6.4s,v7.4s + zip2 v3.4s,v6.4s,v7.4s + zip1 v4.2d,v0.2d,v2.2d + zip2 v5.2d,v0.2d,v2.2d + zip1 v6.2d,v1.2d,v3.2d + zip2 v7.2d,v1.2d,v3.2d + bl _vpsm4_ex_enc_4blks + zip1 v4.4s,v0.4s,v1.4s + zip2 v5.4s,v0.4s,v1.4s + zip1 v6.4s,v2.4s,v3.4s + zip2 v7.4s,v2.4s,v3.4s + zip1 v0.2d,v4.2d,v6.2d + zip2 v1.2d,v4.2d,v6.2d + zip1 v2.2d,v5.2d,v7.2d + zip2 v3.2d,v5.2d,v7.2d + eor v0.16b, v0.16b, v16.16b + eor v1.16b, v1.16b, v17.16b + eor v2.16b, v2.16b, v18.16b + eor v3.16b, v3.16b, v19.16b + st1 {v0.4s,v1.4s,v2.4s,v3.4s},[x1],#64 + sub x2,x2,#4 + mov v16.16b,v20.16b + mov v17.16b,v21.16b + mov v18.16b,v22.16b + // save the last tweak + mov v25.16b,v19.16b +1: + // process last block + cmp x2,#1 + b.lt 100f + b.gt 1f + ld1 {v4.4s},[x0],#16 + rbit v16.16b,v16.16b + eor v4.16b, v4.16b, v16.16b +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif + mov x10,x3 + mov w11,#8 + mov w12,v4.s[0] + mov w13,v4.s[1] + mov w14,v4.s[2] + mov w15,v4.s[3] +10: + ldp w7,w8,[x10],8 + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + eor w6,w14,w15 + eor w9,w7,w13 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w12,w12,w6 + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + eor w6,w14,w15 + eor w9,w12,w8 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + ldp w7,w8,[x10],8 + eor w13,w13,w6 + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + eor w6,w12,w13 + eor w9,w7,w15 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w14,w14,w6 + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + eor w6,w12,w13 + eor w9,w14,w8 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w15,w15,w6 + subs w11,w11,#1 + b.ne 10b + mov v4.s[0],w15 + mov v4.s[1],w14 + mov v4.s[2],w13 + mov v4.s[3],w12 +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif + eor v4.16b, v4.16b, v16.16b + st1 {v4.4s},[x1],#16 + // save the last tweak + mov v25.16b,v16.16b + b 100f +1: // process last 2 blocks + cmp x2,#2 + b.gt 1f + ld1 {v4.4s,v5.4s},[x0],#32 + rbit v16.16b,v16.16b + rbit v17.16b,v17.16b + eor v4.16b, v4.16b, v16.16b + eor v5.16b, v5.16b, v17.16b +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif +#ifndef __AARCH64EB__ + rev32 v5.16b,v5.16b +#endif + zip1 v0.4s,v4.4s,v5.4s + zip2 v1.4s,v4.4s,v5.4s + zip1 v2.4s,v6.4s,v7.4s + zip2 v3.4s,v6.4s,v7.4s + zip1 v4.2d,v0.2d,v2.2d + zip2 v5.2d,v0.2d,v2.2d + zip1 v6.2d,v1.2d,v3.2d + zip2 v7.2d,v1.2d,v3.2d + bl _vpsm4_ex_enc_4blks + zip1 v4.4s,v0.4s,v1.4s + zip2 v5.4s,v0.4s,v1.4s + zip1 v6.4s,v2.4s,v3.4s + zip2 v7.4s,v2.4s,v3.4s + zip1 v0.2d,v4.2d,v6.2d + zip2 v1.2d,v4.2d,v6.2d + zip1 v2.2d,v5.2d,v7.2d + zip2 v3.2d,v5.2d,v7.2d + eor v0.16b, v0.16b, v16.16b + eor v1.16b, v1.16b, v17.16b + st1 {v0.4s,v1.4s},[x1],#32 + // save the last tweak + mov v25.16b,v17.16b + b 100f +1: // process last 3 blocks + ld1 {v4.4s,v5.4s,v6.4s},[x0],#48 + rbit v16.16b,v16.16b + rbit v17.16b,v17.16b + rbit v18.16b,v18.16b + eor v4.16b, v4.16b, v16.16b + eor v5.16b, v5.16b, v17.16b + eor v6.16b, v6.16b, v18.16b +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif +#ifndef __AARCH64EB__ + rev32 v5.16b,v5.16b +#endif +#ifndef __AARCH64EB__ + rev32 v6.16b,v6.16b +#endif + zip1 v0.4s,v4.4s,v5.4s + zip2 v1.4s,v4.4s,v5.4s + zip1 v2.4s,v6.4s,v7.4s + zip2 v3.4s,v6.4s,v7.4s + zip1 v4.2d,v0.2d,v2.2d + zip2 v5.2d,v0.2d,v2.2d + zip1 v6.2d,v1.2d,v3.2d + zip2 v7.2d,v1.2d,v3.2d + bl _vpsm4_ex_enc_4blks + zip1 v4.4s,v0.4s,v1.4s + zip2 v5.4s,v0.4s,v1.4s + zip1 v6.4s,v2.4s,v3.4s + zip2 v7.4s,v2.4s,v3.4s + zip1 v0.2d,v4.2d,v6.2d + zip2 v1.2d,v4.2d,v6.2d + zip1 v2.2d,v5.2d,v7.2d + zip2 v3.2d,v5.2d,v7.2d + eor v0.16b, v0.16b, v16.16b + eor v1.16b, v1.16b, v17.16b + eor v2.16b, v2.16b, v18.16b + st1 {v0.4s,v1.4s,v2.4s},[x1],#48 + // save the last tweak + mov v25.16b,v18.16b +100: + cmp x29,0 + b.eq .return_gb + +// This branch calculates the last two tweaks, +// while the encryption/decryption length is larger than 32 +.last_2blks_tweak_gb: +#ifdef __AARCH64EB__ + rev32 v25.16b,v25.16b +#endif + rbit v2.16b,v25.16b + adrp x9, Lxts_magic@PAGE + ldr q0, [x9, Lxts_magic@PAGEOFF] + shl v17.16b, v2.16b, #1 + ext v1.16b, v2.16b, v2.16b,#15 + ushr v1.16b, v1.16b, #7 + mul v1.16b, v1.16b, v0.16b + eor v17.16b, v17.16b, v1.16b + rbit v17.16b,v17.16b + rbit v2.16b,v17.16b + adrp x9, Lxts_magic@PAGE + ldr q0, [x9, Lxts_magic@PAGEOFF] + shl v18.16b, v2.16b, #1 + ext v1.16b, v2.16b, v2.16b,#15 + ushr v1.16b, v1.16b, #7 + mul v1.16b, v1.16b, v0.16b + eor v18.16b, v18.16b, v1.16b + rbit v18.16b,v18.16b + b .check_dec_gb + + +// This branch calculates the last two tweaks, +// while the encryption/decryption length is equal to 32, who only need two tweaks +.only_2blks_tweak_gb: + mov v17.16b,v16.16b +#ifdef __AARCH64EB__ + rev32 v17.16b,v17.16b +#endif + rbit v2.16b,v17.16b + adrp x9, Lxts_magic@PAGE + ldr q0, [x9, Lxts_magic@PAGEOFF] + shl v18.16b, v2.16b, #1 + ext v1.16b, v2.16b, v2.16b,#15 + ushr v1.16b, v1.16b, #7 + mul v1.16b, v1.16b, v0.16b + eor v18.16b, v18.16b, v1.16b + rbit v18.16b,v18.16b + b .check_dec_gb + + +// Determine whether encryption or decryption is required. +// The last two tweaks need to be swapped for decryption. +.check_dec_gb: + // encryption:1 decryption:0 + cmp w28,1 + b.eq .process_last_2blks_gb + mov v0.16B,v17.16b + mov v17.16B,v18.16b + mov v18.16B,v0.16b + +.process_last_2blks_gb: +#ifdef __AARCH64EB__ + rev32 v17.16b,v17.16b +#endif +#ifdef __AARCH64EB__ + rev32 v18.16b,v18.16b +#endif + ld1 {v4.4s},[x0],#16 + eor v4.16b, v4.16b, v17.16b +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif + mov x10,x3 + mov w11,#8 + mov w12,v4.s[0] + mov w13,v4.s[1] + mov w14,v4.s[2] + mov w15,v4.s[3] +10: + ldp w7,w8,[x10],8 + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + eor w6,w14,w15 + eor w9,w7,w13 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w12,w12,w6 + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + eor w6,w14,w15 + eor w9,w12,w8 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + ldp w7,w8,[x10],8 + eor w13,w13,w6 + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + eor w6,w12,w13 + eor w9,w7,w15 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w14,w14,w6 + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + eor w6,w12,w13 + eor w9,w14,w8 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w15,w15,w6 + subs w11,w11,#1 + b.ne 10b + mov v4.s[0],w15 + mov v4.s[1],w14 + mov v4.s[2],w13 + mov v4.s[3],w12 +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif + eor v4.16b, v4.16b, v17.16b + st1 {v4.4s},[x1],#16 + + sub x26,x1,16 +.loop_gb: + subs x29,x29,1 + ldrb w7,[x26,x29] + ldrb w8,[x0,x29] + strb w8,[x26,x29] + strb w7,[x1,x29] + b.gt .loop_gb + ld1 {v4.4s}, [x26] + eor v4.16b, v4.16b, v18.16b +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif + mov x10,x3 + mov w11,#8 + mov w12,v4.s[0] + mov w13,v4.s[1] + mov w14,v4.s[2] + mov w15,v4.s[3] +10: + ldp w7,w8,[x10],8 + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + eor w6,w14,w15 + eor w9,w7,w13 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w12,w12,w6 + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + eor w6,w14,w15 + eor w9,w12,w8 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + ldp w7,w8,[x10],8 + eor w13,w13,w6 + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + eor w6,w12,w13 + eor w9,w7,w15 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w14,w14,w6 + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + eor w6,w12,w13 + eor w9,w14,w8 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w15,w15,w6 + subs w11,w11,#1 + b.ne 10b + mov v4.s[0],w15 + mov v4.s[1],w14 + mov v4.s[2],w13 + mov v4.s[3],w12 +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif + eor v4.16b, v4.16b, v18.16b + st1 {v4.4s}, [x26] +.return_gb: + ldp d14, d15, [sp], #0x10 + ldp d12, d13, [sp], #0x10 + ldp d10, d11, [sp], #0x10 + ldp d8, d9, [sp], #0x10 + ldp x29, x30, [sp], #0x10 + ldp x27, x28, [sp], #0x10 + ldp x25, x26, [sp], #0x10 + ldp x23, x24, [sp], #0x10 + ldp x21, x22, [sp], #0x10 + ldp x19, x20, [sp], #0x10 + ldp x17, x18, [sp], #0x10 + ldp x15, x16, [sp], #0x10 + AARCH64_VALIDATE_LINK_REGISTER + ret + +.globl _vpsm4_ex_xts_encrypt + +.align 5 +_vpsm4_ex_xts_encrypt: + AARCH64_SIGN_LINK_REGISTER + stp x15, x16, [sp, #-0x10]! + stp x17, x18, [sp, #-0x10]! + stp x19, x20, [sp, #-0x10]! + stp x21, x22, [sp, #-0x10]! + stp x23, x24, [sp, #-0x10]! + stp x25, x26, [sp, #-0x10]! + stp x27, x28, [sp, #-0x10]! + stp x29, x30, [sp, #-0x10]! + stp d8, d9, [sp, #-0x10]! + stp d10, d11, [sp, #-0x10]! + stp d12, d13, [sp, #-0x10]! + stp d14, d15, [sp, #-0x10]! + mov x26,x3 + mov x27,x4 + mov w28,w6 + ld1 {v16.4s}, [x5] + mov x3,x27 + adrp x9, Lsbox_magic@PAGE + ldr q26, [x9, Lsbox_magic@PAGEOFF] + ldr q27, [x9, Lsbox_magic@PAGEOFF+16] + ldr q28, [x9, Lsbox_magic@PAGEOFF+32] + ldr q29, [x9, Lsbox_magic@PAGEOFF+48] + ldr q30, [x9, Lsbox_magic@PAGEOFF+64] + ldr q31, [x9, Lsbox_magic@PAGEOFF+80] +#ifndef __AARCH64EB__ + rev32 v16.16b,v16.16b +#endif + mov x10,x3 + mov w11,#8 + mov w12,v16.s[0] + mov w13,v16.s[1] + mov w14,v16.s[2] + mov w15,v16.s[3] +10: + ldp w7,w8,[x10],8 + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + eor w6,w14,w15 + eor w9,w7,w13 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w12,w12,w6 + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + eor w6,w14,w15 + eor w9,w12,w8 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + ldp w7,w8,[x10],8 + eor w13,w13,w6 + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + eor w6,w12,w13 + eor w9,w7,w15 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w14,w14,w6 + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + eor w6,w12,w13 + eor w9,w14,w8 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w15,w15,w6 + subs w11,w11,#1 + b.ne 10b + mov v16.s[0],w15 + mov v16.s[1],w14 + mov v16.s[2],w13 + mov v16.s[3],w12 +#ifndef __AARCH64EB__ + rev32 v16.16b,v16.16b +#endif + mov x3,x26 + and x29,x2,#0x0F + // convert length into blocks + lsr x2,x2,4 + cmp x2,#1 + b.lt .return + + cmp x29,0 + // If the encryption/decryption Length is N times of 16, + // the all blocks are encrypted/decrypted in .xts_encrypt_blocks + b.eq .xts_encrypt_blocks + + // If the encryption/decryption length is not N times of 16, + // the last two blocks are encrypted/decrypted in .last_2blks_tweak or .only_2blks_tweak + // the other blocks are encrypted/decrypted in .xts_encrypt_blocks + subs x2,x2,#1 + b.eq .only_2blks_tweak +.xts_encrypt_blocks: +#ifdef __AARCH64EB__ + rev32 v16.16b,v16.16b +#endif + mov x12,v16.d[0] + mov x13,v16.d[1] + mov w7,0x87 + extr x9,x13,x13,#32 + extr x15,x13,x12,#63 + and w8,w7,w9,asr#31 + eor x14,x8,x12,lsl#1 + mov w7,0x87 + extr x9,x15,x15,#32 + extr x17,x15,x14,#63 + and w8,w7,w9,asr#31 + eor x16,x8,x14,lsl#1 + mov w7,0x87 + extr x9,x17,x17,#32 + extr x19,x17,x16,#63 + and w8,w7,w9,asr#31 + eor x18,x8,x16,lsl#1 + mov w7,0x87 + extr x9,x19,x19,#32 + extr x21,x19,x18,#63 + and w8,w7,w9,asr#31 + eor x20,x8,x18,lsl#1 + mov w7,0x87 + extr x9,x21,x21,#32 + extr x23,x21,x20,#63 + and w8,w7,w9,asr#31 + eor x22,x8,x20,lsl#1 + mov w7,0x87 + extr x9,x23,x23,#32 + extr x25,x23,x22,#63 + and w8,w7,w9,asr#31 + eor x24,x8,x22,lsl#1 + mov w7,0x87 + extr x9,x25,x25,#32 + extr x27,x25,x24,#63 + and w8,w7,w9,asr#31 + eor x26,x8,x24,lsl#1 +Lxts_8_blocks_process: + cmp x2,#8 + mov v16.d[0],x12 + mov v16.d[1],x13 +#ifdef __AARCH64EB__ + rev32 v16.16b,v16.16b +#endif + mov w7,0x87 + extr x9,x27,x27,#32 + extr x13,x27,x26,#63 + and w8,w7,w9,asr#31 + eor x12,x8,x26,lsl#1 + mov v17.d[0],x14 + mov v17.d[1],x15 +#ifdef __AARCH64EB__ + rev32 v17.16b,v17.16b +#endif + mov w7,0x87 + extr x9,x13,x13,#32 + extr x15,x13,x12,#63 + and w8,w7,w9,asr#31 + eor x14,x8,x12,lsl#1 + mov v18.d[0],x16 + mov v18.d[1],x17 +#ifdef __AARCH64EB__ + rev32 v18.16b,v18.16b +#endif + mov w7,0x87 + extr x9,x15,x15,#32 + extr x17,x15,x14,#63 + and w8,w7,w9,asr#31 + eor x16,x8,x14,lsl#1 + mov v19.d[0],x18 + mov v19.d[1],x19 +#ifdef __AARCH64EB__ + rev32 v19.16b,v19.16b +#endif + mov w7,0x87 + extr x9,x17,x17,#32 + extr x19,x17,x16,#63 + and w8,w7,w9,asr#31 + eor x18,x8,x16,lsl#1 + mov v20.d[0],x20 + mov v20.d[1],x21 +#ifdef __AARCH64EB__ + rev32 v20.16b,v20.16b +#endif + mov w7,0x87 + extr x9,x19,x19,#32 + extr x21,x19,x18,#63 + and w8,w7,w9,asr#31 + eor x20,x8,x18,lsl#1 + mov v21.d[0],x22 + mov v21.d[1],x23 +#ifdef __AARCH64EB__ + rev32 v21.16b,v21.16b +#endif + mov w7,0x87 + extr x9,x21,x21,#32 + extr x23,x21,x20,#63 + and w8,w7,w9,asr#31 + eor x22,x8,x20,lsl#1 + mov v22.d[0],x24 + mov v22.d[1],x25 +#ifdef __AARCH64EB__ + rev32 v22.16b,v22.16b +#endif + mov w7,0x87 + extr x9,x23,x23,#32 + extr x25,x23,x22,#63 + and w8,w7,w9,asr#31 + eor x24,x8,x22,lsl#1 + mov v23.d[0],x26 + mov v23.d[1],x27 +#ifdef __AARCH64EB__ + rev32 v23.16b,v23.16b +#endif + mov w7,0x87 + extr x9,x25,x25,#32 + extr x27,x25,x24,#63 + and w8,w7,w9,asr#31 + eor x26,x8,x24,lsl#1 + b.lt Lxts_4_blocks_process + ld1 {v4.4s,v5.4s,v6.4s,v7.4s},[x0],#64 + eor v4.16b, v4.16b, v16.16b + eor v5.16b, v5.16b, v17.16b + eor v6.16b, v6.16b, v18.16b + eor v7.16b, v7.16b, v19.16b + ld1 {v8.4s,v9.4s,v10.4s,v11.4s},[x0],#64 + eor v8.16b, v8.16b, v20.16b + eor v9.16b, v9.16b, v21.16b + eor v10.16b, v10.16b, v22.16b + eor v11.16b, v11.16b, v23.16b +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif +#ifndef __AARCH64EB__ + rev32 v5.16b,v5.16b +#endif +#ifndef __AARCH64EB__ + rev32 v6.16b,v6.16b +#endif +#ifndef __AARCH64EB__ + rev32 v7.16b,v7.16b +#endif +#ifndef __AARCH64EB__ + rev32 v8.16b,v8.16b +#endif +#ifndef __AARCH64EB__ + rev32 v9.16b,v9.16b +#endif +#ifndef __AARCH64EB__ + rev32 v10.16b,v10.16b +#endif +#ifndef __AARCH64EB__ + rev32 v11.16b,v11.16b +#endif + zip1 v0.4s,v4.4s,v5.4s + zip2 v1.4s,v4.4s,v5.4s + zip1 v2.4s,v6.4s,v7.4s + zip2 v3.4s,v6.4s,v7.4s + zip1 v4.2d,v0.2d,v2.2d + zip2 v5.2d,v0.2d,v2.2d + zip1 v6.2d,v1.2d,v3.2d + zip2 v7.2d,v1.2d,v3.2d + zip1 v0.4s,v8.4s,v9.4s + zip2 v1.4s,v8.4s,v9.4s + zip1 v2.4s,v10.4s,v11.4s + zip2 v3.4s,v10.4s,v11.4s + zip1 v8.2d,v0.2d,v2.2d + zip2 v9.2d,v0.2d,v2.2d + zip1 v10.2d,v1.2d,v3.2d + zip2 v11.2d,v1.2d,v3.2d + bl _vpsm4_ex_enc_8blks + zip1 v8.4s,v0.4s,v1.4s + zip2 v9.4s,v0.4s,v1.4s + zip1 v10.4s,v2.4s,v3.4s + zip2 v11.4s,v2.4s,v3.4s + zip1 v0.2d,v8.2d,v10.2d + zip2 v1.2d,v8.2d,v10.2d + zip1 v2.2d,v9.2d,v11.2d + zip2 v3.2d,v9.2d,v11.2d + zip1 v8.4s,v4.4s,v5.4s + zip2 v9.4s,v4.4s,v5.4s + zip1 v10.4s,v6.4s,v7.4s + zip2 v11.4s,v6.4s,v7.4s + zip1 v4.2d,v8.2d,v10.2d + zip2 v5.2d,v8.2d,v10.2d + zip1 v6.2d,v9.2d,v11.2d + zip2 v7.2d,v9.2d,v11.2d + eor v0.16b, v0.16b, v16.16b + eor v1.16b, v1.16b, v17.16b + eor v2.16b, v2.16b, v18.16b + eor v3.16b, v3.16b, v19.16b + eor v4.16b, v4.16b, v20.16b + eor v5.16b, v5.16b, v21.16b + eor v6.16b, v6.16b, v22.16b + eor v7.16b, v7.16b, v23.16b + + // save the last tweak + mov v25.16b,v23.16b + st1 {v0.4s,v1.4s,v2.4s,v3.4s},[x1],#64 + st1 {v4.4s,v5.4s,v6.4s,v7.4s},[x1],#64 + subs x2,x2,#8 + b.gt Lxts_8_blocks_process + b 100f +Lxts_4_blocks_process: + cmp x2,#4 + b.lt 1f + ld1 {v4.4s,v5.4s,v6.4s,v7.4s},[x0],#64 + eor v4.16b, v4.16b, v16.16b + eor v5.16b, v5.16b, v17.16b + eor v6.16b, v6.16b, v18.16b + eor v7.16b, v7.16b, v19.16b +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif +#ifndef __AARCH64EB__ + rev32 v5.16b,v5.16b +#endif +#ifndef __AARCH64EB__ + rev32 v6.16b,v6.16b +#endif +#ifndef __AARCH64EB__ + rev32 v7.16b,v7.16b +#endif + zip1 v0.4s,v4.4s,v5.4s + zip2 v1.4s,v4.4s,v5.4s + zip1 v2.4s,v6.4s,v7.4s + zip2 v3.4s,v6.4s,v7.4s + zip1 v4.2d,v0.2d,v2.2d + zip2 v5.2d,v0.2d,v2.2d + zip1 v6.2d,v1.2d,v3.2d + zip2 v7.2d,v1.2d,v3.2d + bl _vpsm4_ex_enc_4blks + zip1 v4.4s,v0.4s,v1.4s + zip2 v5.4s,v0.4s,v1.4s + zip1 v6.4s,v2.4s,v3.4s + zip2 v7.4s,v2.4s,v3.4s + zip1 v0.2d,v4.2d,v6.2d + zip2 v1.2d,v4.2d,v6.2d + zip1 v2.2d,v5.2d,v7.2d + zip2 v3.2d,v5.2d,v7.2d + eor v0.16b, v0.16b, v16.16b + eor v1.16b, v1.16b, v17.16b + eor v2.16b, v2.16b, v18.16b + eor v3.16b, v3.16b, v19.16b + st1 {v0.4s,v1.4s,v2.4s,v3.4s},[x1],#64 + sub x2,x2,#4 + mov v16.16b,v20.16b + mov v17.16b,v21.16b + mov v18.16b,v22.16b + // save the last tweak + mov v25.16b,v19.16b +1: + // process last block + cmp x2,#1 + b.lt 100f + b.gt 1f + ld1 {v4.4s},[x0],#16 + eor v4.16b, v4.16b, v16.16b +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif + mov x10,x3 + mov w11,#8 + mov w12,v4.s[0] + mov w13,v4.s[1] + mov w14,v4.s[2] + mov w15,v4.s[3] +10: + ldp w7,w8,[x10],8 + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + eor w6,w14,w15 + eor w9,w7,w13 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w12,w12,w6 + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + eor w6,w14,w15 + eor w9,w12,w8 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + ldp w7,w8,[x10],8 + eor w13,w13,w6 + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + eor w6,w12,w13 + eor w9,w7,w15 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w14,w14,w6 + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + eor w6,w12,w13 + eor w9,w14,w8 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w15,w15,w6 + subs w11,w11,#1 + b.ne 10b + mov v4.s[0],w15 + mov v4.s[1],w14 + mov v4.s[2],w13 + mov v4.s[3],w12 +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif + eor v4.16b, v4.16b, v16.16b + st1 {v4.4s},[x1],#16 + // save the last tweak + mov v25.16b,v16.16b + b 100f +1: // process last 2 blocks + cmp x2,#2 + b.gt 1f + ld1 {v4.4s,v5.4s},[x0],#32 + eor v4.16b, v4.16b, v16.16b + eor v5.16b, v5.16b, v17.16b +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif +#ifndef __AARCH64EB__ + rev32 v5.16b,v5.16b +#endif + zip1 v0.4s,v4.4s,v5.4s + zip2 v1.4s,v4.4s,v5.4s + zip1 v2.4s,v6.4s,v7.4s + zip2 v3.4s,v6.4s,v7.4s + zip1 v4.2d,v0.2d,v2.2d + zip2 v5.2d,v0.2d,v2.2d + zip1 v6.2d,v1.2d,v3.2d + zip2 v7.2d,v1.2d,v3.2d + bl _vpsm4_ex_enc_4blks + zip1 v4.4s,v0.4s,v1.4s + zip2 v5.4s,v0.4s,v1.4s + zip1 v6.4s,v2.4s,v3.4s + zip2 v7.4s,v2.4s,v3.4s + zip1 v0.2d,v4.2d,v6.2d + zip2 v1.2d,v4.2d,v6.2d + zip1 v2.2d,v5.2d,v7.2d + zip2 v3.2d,v5.2d,v7.2d + eor v0.16b, v0.16b, v16.16b + eor v1.16b, v1.16b, v17.16b + st1 {v0.4s,v1.4s},[x1],#32 + // save the last tweak + mov v25.16b,v17.16b + b 100f +1: // process last 3 blocks + ld1 {v4.4s,v5.4s,v6.4s},[x0],#48 + eor v4.16b, v4.16b, v16.16b + eor v5.16b, v5.16b, v17.16b + eor v6.16b, v6.16b, v18.16b +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif +#ifndef __AARCH64EB__ + rev32 v5.16b,v5.16b +#endif +#ifndef __AARCH64EB__ + rev32 v6.16b,v6.16b +#endif + zip1 v0.4s,v4.4s,v5.4s + zip2 v1.4s,v4.4s,v5.4s + zip1 v2.4s,v6.4s,v7.4s + zip2 v3.4s,v6.4s,v7.4s + zip1 v4.2d,v0.2d,v2.2d + zip2 v5.2d,v0.2d,v2.2d + zip1 v6.2d,v1.2d,v3.2d + zip2 v7.2d,v1.2d,v3.2d + bl _vpsm4_ex_enc_4blks + zip1 v4.4s,v0.4s,v1.4s + zip2 v5.4s,v0.4s,v1.4s + zip1 v6.4s,v2.4s,v3.4s + zip2 v7.4s,v2.4s,v3.4s + zip1 v0.2d,v4.2d,v6.2d + zip2 v1.2d,v4.2d,v6.2d + zip1 v2.2d,v5.2d,v7.2d + zip2 v3.2d,v5.2d,v7.2d + eor v0.16b, v0.16b, v16.16b + eor v1.16b, v1.16b, v17.16b + eor v2.16b, v2.16b, v18.16b + st1 {v0.4s,v1.4s,v2.4s},[x1],#48 + // save the last tweak + mov v25.16b,v18.16b +100: + cmp x29,0 + b.eq .return + +// This branch calculates the last two tweaks, +// while the encryption/decryption length is larger than 32 +.last_2blks_tweak: +#ifdef __AARCH64EB__ + rev32 v25.16b,v25.16b +#endif + mov v2.16b,v25.16b + adrp x9, Lxts_magic@PAGE + ldr q0, [x9, Lxts_magic@PAGEOFF] + shl v17.16b, v2.16b, #1 + ext v1.16b, v2.16b, v2.16b,#15 + ushr v1.16b, v1.16b, #7 + mul v1.16b, v1.16b, v0.16b + eor v17.16b, v17.16b, v1.16b + mov v2.16b,v17.16b + adrp x9, Lxts_magic@PAGE + ldr q0, [x9, Lxts_magic@PAGEOFF] + shl v18.16b, v2.16b, #1 + ext v1.16b, v2.16b, v2.16b,#15 + ushr v1.16b, v1.16b, #7 + mul v1.16b, v1.16b, v0.16b + eor v18.16b, v18.16b, v1.16b + b .check_dec + + +// This branch calculates the last two tweaks, +// while the encryption/decryption length is equal to 32, who only need two tweaks +.only_2blks_tweak: + mov v17.16b,v16.16b +#ifdef __AARCH64EB__ + rev32 v17.16b,v17.16b +#endif + mov v2.16b,v17.16b + adrp x9, Lxts_magic@PAGE + ldr q0, [x9, Lxts_magic@PAGEOFF] + shl v18.16b, v2.16b, #1 + ext v1.16b, v2.16b, v2.16b,#15 + ushr v1.16b, v1.16b, #7 + mul v1.16b, v1.16b, v0.16b + eor v18.16b, v18.16b, v1.16b + b .check_dec + + +// Determine whether encryption or decryption is required. +// The last two tweaks need to be swapped for decryption. +.check_dec: + // encryption:1 decryption:0 + cmp w28,1 + b.eq .process_last_2blks + mov v0.16B,v17.16b + mov v17.16B,v18.16b + mov v18.16B,v0.16b + +.process_last_2blks: +#ifdef __AARCH64EB__ + rev32 v17.16b,v17.16b +#endif +#ifdef __AARCH64EB__ + rev32 v18.16b,v18.16b +#endif + ld1 {v4.4s},[x0],#16 + eor v4.16b, v4.16b, v17.16b +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif + mov x10,x3 + mov w11,#8 + mov w12,v4.s[0] + mov w13,v4.s[1] + mov w14,v4.s[2] + mov w15,v4.s[3] +10: + ldp w7,w8,[x10],8 + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + eor w6,w14,w15 + eor w9,w7,w13 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w12,w12,w6 + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + eor w6,w14,w15 + eor w9,w12,w8 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + ldp w7,w8,[x10],8 + eor w13,w13,w6 + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + eor w6,w12,w13 + eor w9,w7,w15 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w14,w14,w6 + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + eor w6,w12,w13 + eor w9,w14,w8 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w15,w15,w6 + subs w11,w11,#1 + b.ne 10b + mov v4.s[0],w15 + mov v4.s[1],w14 + mov v4.s[2],w13 + mov v4.s[3],w12 +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif + eor v4.16b, v4.16b, v17.16b + st1 {v4.4s},[x1],#16 + + sub x26,x1,16 +.loop: + subs x29,x29,1 + ldrb w7,[x26,x29] + ldrb w8,[x0,x29] + strb w8,[x26,x29] + strb w7,[x1,x29] + b.gt .loop + ld1 {v4.4s}, [x26] + eor v4.16b, v4.16b, v18.16b +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif + mov x10,x3 + mov w11,#8 + mov w12,v4.s[0] + mov w13,v4.s[1] + mov w14,v4.s[2] + mov w15,v4.s[3] +10: + ldp w7,w8,[x10],8 + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + eor w6,w14,w15 + eor w9,w7,w13 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w12,w12,w6 + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + eor w6,w14,w15 + eor w9,w12,w8 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + ldp w7,w8,[x10],8 + eor w13,w13,w6 + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + eor w6,w12,w13 + eor w9,w7,w15 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w14,w14,w6 + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + eor w6,w12,w13 + eor w9,w14,w8 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w15,w15,w6 + subs w11,w11,#1 + b.ne 10b + mov v4.s[0],w15 + mov v4.s[1],w14 + mov v4.s[2],w13 + mov v4.s[3],w12 +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif + eor v4.16b, v4.16b, v18.16b + st1 {v4.4s}, [x26] +.return: + ldp d14, d15, [sp], #0x10 + ldp d12, d13, [sp], #0x10 + ldp d10, d11, [sp], #0x10 + ldp d8, d9, [sp], #0x10 + ldp x29, x30, [sp], #0x10 + ldp x27, x28, [sp], #0x10 + ldp x25, x26, [sp], #0x10 + ldp x23, x24, [sp], #0x10 + ldp x21, x22, [sp], #0x10 + ldp x19, x20, [sp], #0x10 + ldp x17, x18, [sp], #0x10 + ldp x15, x16, [sp], #0x10 + AARCH64_VALIDATE_LINK_REGISTER + ret + diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/include/internal/param_names.h b/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/include/internal/param_names.h new file mode 100644 index 00000000000000..0a0404a57e82b9 --- /dev/null +++ b/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/include/internal/param_names.h @@ -0,0 +1,469 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from include/internal/param_names.h.in + * + * Copyright 2023 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + +int ossl_param_find_pidx(const char *s); + +/* Parameter name definitions - generated by util/perl/OpenSSL/paramnames.pm */ +#define NUM_PIDX 346 + +#define PIDX_ALG_PARAM_ALGORITHM_ID 0 +#define PIDX_ALG_PARAM_ALGORITHM_ID_PARAMS 1 +#define PIDX_ALG_PARAM_CIPHER 2 +#define PIDX_ALG_PARAM_DIGEST 3 +#define PIDX_ALG_PARAM_ENGINE 4 +#define PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR 5 +#define PIDX_ALG_PARAM_MAC 6 +#define PIDX_ALG_PARAM_PROPERTIES 7 +#define PIDX_ASYM_CIPHER_PARAM_DIGEST PIDX_PKEY_PARAM_DIGEST +#define PIDX_ASYM_CIPHER_PARAM_ENGINE PIDX_PKEY_PARAM_ENGINE +#define PIDX_ASYM_CIPHER_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_ASYM_CIPHER_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_ASYM_CIPHER_PARAM_FIPS_RSA_PKCS15_PAD_DISABLED PIDX_PROV_PARAM_RSA_PKCS15_PAD_DISABLED +#define PIDX_ASYM_CIPHER_PARAM_IMPLICIT_REJECTION 8 +#define PIDX_ASYM_CIPHER_PARAM_MGF1_DIGEST PIDX_PKEY_PARAM_MGF1_DIGEST +#define PIDX_ASYM_CIPHER_PARAM_MGF1_DIGEST_PROPS PIDX_PKEY_PARAM_MGF1_PROPERTIES +#define PIDX_ASYM_CIPHER_PARAM_OAEP_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_ASYM_CIPHER_PARAM_OAEP_DIGEST_PROPS 9 +#define PIDX_ASYM_CIPHER_PARAM_OAEP_LABEL 10 +#define PIDX_ASYM_CIPHER_PARAM_PAD_MODE PIDX_PKEY_PARAM_PAD_MODE +#define PIDX_ASYM_CIPHER_PARAM_PROPERTIES PIDX_PKEY_PARAM_PROPERTIES +#define PIDX_ASYM_CIPHER_PARAM_TLS_CLIENT_VERSION 11 +#define PIDX_ASYM_CIPHER_PARAM_TLS_NEGOTIATED_VERSION 12 +#define PIDX_CAPABILITY_TLS_GROUP_ALG 13 +#define PIDX_CAPABILITY_TLS_GROUP_ID 14 +#define PIDX_CAPABILITY_TLS_GROUP_IS_KEM 15 +#define PIDX_CAPABILITY_TLS_GROUP_MAX_DTLS 16 +#define PIDX_CAPABILITY_TLS_GROUP_MAX_TLS 17 +#define PIDX_CAPABILITY_TLS_GROUP_MIN_DTLS 18 +#define PIDX_CAPABILITY_TLS_GROUP_MIN_TLS 19 +#define PIDX_CAPABILITY_TLS_GROUP_NAME 20 +#define PIDX_CAPABILITY_TLS_GROUP_NAME_INTERNAL 21 +#define PIDX_CAPABILITY_TLS_GROUP_SECURITY_BITS 22 +#define PIDX_CAPABILITY_TLS_SIGALG_CODE_POINT 23 +#define PIDX_CAPABILITY_TLS_SIGALG_HASH_NAME 24 +#define PIDX_CAPABILITY_TLS_SIGALG_HASH_OID 25 +#define PIDX_CAPABILITY_TLS_SIGALG_IANA_NAME 26 +#define PIDX_CAPABILITY_TLS_SIGALG_KEYTYPE 27 +#define PIDX_CAPABILITY_TLS_SIGALG_KEYTYPE_OID 28 +#define PIDX_CAPABILITY_TLS_SIGALG_MAX_DTLS 16 +#define PIDX_CAPABILITY_TLS_SIGALG_MAX_TLS 17 +#define PIDX_CAPABILITY_TLS_SIGALG_MIN_DTLS 18 +#define PIDX_CAPABILITY_TLS_SIGALG_MIN_TLS 19 +#define PIDX_CAPABILITY_TLS_SIGALG_NAME 29 +#define PIDX_CAPABILITY_TLS_SIGALG_OID 30 +#define PIDX_CAPABILITY_TLS_SIGALG_SECURITY_BITS 31 +#define PIDX_CAPABILITY_TLS_SIGALG_SIG_NAME 32 +#define PIDX_CAPABILITY_TLS_SIGALG_SIG_OID 33 +#define PIDX_CIPHER_PARAM_AEAD 34 +#define PIDX_CIPHER_PARAM_AEAD_IVLEN PIDX_CIPHER_PARAM_IVLEN +#define PIDX_CIPHER_PARAM_AEAD_IV_GENERATED 35 +#define PIDX_CIPHER_PARAM_AEAD_MAC_KEY 36 +#define PIDX_CIPHER_PARAM_AEAD_TAG 37 +#define PIDX_CIPHER_PARAM_AEAD_TAGLEN 38 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_AAD 39 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_AAD_PAD 40 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_GET_IV_GEN 41 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_IV_FIXED 42 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_SET_IV_INV 43 +#define PIDX_CIPHER_PARAM_ALGORITHM_ID PIDX_ALG_PARAM_ALGORITHM_ID +#define PIDX_CIPHER_PARAM_ALGORITHM_ID_PARAMS PIDX_ALG_PARAM_ALGORITHM_ID_PARAMS +#define PIDX_CIPHER_PARAM_ALGORITHM_ID_PARAMS_OLD 44 +#define PIDX_CIPHER_PARAM_BLOCK_SIZE 45 +#define PIDX_CIPHER_PARAM_CTS 46 +#define PIDX_CIPHER_PARAM_CTS_MODE 47 +#define PIDX_CIPHER_PARAM_CUSTOM_IV 48 +#define PIDX_CIPHER_PARAM_DECRYPT_ONLY 49 +#define PIDX_CIPHER_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_CIPHER_PARAM_FIPS_ENCRYPT_CHECK 50 +#define PIDX_CIPHER_PARAM_HAS_RAND_KEY 51 +#define PIDX_CIPHER_PARAM_IV 52 +#define PIDX_CIPHER_PARAM_IVLEN 53 +#define PIDX_CIPHER_PARAM_KEYLEN 54 +#define PIDX_CIPHER_PARAM_MODE 55 +#define PIDX_CIPHER_PARAM_NUM 56 +#define PIDX_CIPHER_PARAM_PADDING 57 +#define PIDX_CIPHER_PARAM_PIPELINE_AEAD_TAG 58 +#define PIDX_CIPHER_PARAM_RANDOM_KEY 59 +#define PIDX_CIPHER_PARAM_RC2_KEYBITS 60 +#define PIDX_CIPHER_PARAM_ROUNDS 61 +#define PIDX_CIPHER_PARAM_SPEED 62 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK 63 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD 64 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD_PACKLEN 65 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC 66 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_IN 67 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_LEN 68 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_INTERLEAVE 69 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_BUFSIZE 70 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_SEND_FRAGMENT 71 +#define PIDX_CIPHER_PARAM_TLS_MAC 72 +#define PIDX_CIPHER_PARAM_TLS_MAC_SIZE 73 +#define PIDX_CIPHER_PARAM_TLS_VERSION 74 +#define PIDX_CIPHER_PARAM_UPDATED_IV 75 +#define PIDX_CIPHER_PARAM_USE_BITS 76 +#define PIDX_CIPHER_PARAM_XTS_STANDARD 77 +#define PIDX_DECODER_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_DIGEST_PARAM_ALGID_ABSENT 78 +#define PIDX_DIGEST_PARAM_BLOCK_SIZE 45 +#define PIDX_DIGEST_PARAM_MICALG 79 +#define PIDX_DIGEST_PARAM_PAD_TYPE 80 +#define PIDX_DIGEST_PARAM_SIZE 81 +#define PIDX_DIGEST_PARAM_SSL3_MS 82 +#define PIDX_DIGEST_PARAM_XOF 83 +#define PIDX_DIGEST_PARAM_XOFLEN 84 +#define PIDX_DRBG_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_DRBG_PARAM_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_DRBG_PARAM_ENTROPY_REQUIRED 85 +#define PIDX_DRBG_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_DRBG_PARAM_FIPS_DIGEST_CHECK PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK +#define PIDX_DRBG_PARAM_MAC PIDX_ALG_PARAM_MAC +#define PIDX_DRBG_PARAM_MAX_ADINLEN 86 +#define PIDX_DRBG_PARAM_MAX_ENTROPYLEN 87 +#define PIDX_DRBG_PARAM_MAX_LENGTH 88 +#define PIDX_DRBG_PARAM_MAX_NONCELEN 89 +#define PIDX_DRBG_PARAM_MAX_PERSLEN 90 +#define PIDX_DRBG_PARAM_MIN_ENTROPYLEN 91 +#define PIDX_DRBG_PARAM_MIN_LENGTH 92 +#define PIDX_DRBG_PARAM_MIN_NONCELEN 93 +#define PIDX_DRBG_PARAM_PREDICTION_RESISTANCE 94 +#define PIDX_DRBG_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_DRBG_PARAM_RANDOM_DATA 95 +#define PIDX_DRBG_PARAM_RESEED_COUNTER 96 +#define PIDX_DRBG_PARAM_RESEED_REQUESTS 97 +#define PIDX_DRBG_PARAM_RESEED_TIME 98 +#define PIDX_DRBG_PARAM_RESEED_TIME_INTERVAL 99 +#define PIDX_DRBG_PARAM_SIZE 81 +#define PIDX_DRBG_PARAM_USE_DF 100 +#define PIDX_ENCODER_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_ENCODER_PARAM_ENCRYPT_LEVEL 101 +#define PIDX_ENCODER_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_ENCODER_PARAM_SAVE_PARAMETERS 102 +#define PIDX_EXCHANGE_PARAM_EC_ECDH_COFACTOR_MODE 103 +#define PIDX_EXCHANGE_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_EXCHANGE_PARAM_FIPS_DIGEST_CHECK PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK +#define PIDX_EXCHANGE_PARAM_FIPS_ECDH_COFACTOR_CHECK PIDX_PROV_PARAM_ECDH_COFACTOR_CHECK +#define PIDX_EXCHANGE_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_EXCHANGE_PARAM_KDF_DIGEST 104 +#define PIDX_EXCHANGE_PARAM_KDF_DIGEST_PROPS 105 +#define PIDX_EXCHANGE_PARAM_KDF_OUTLEN 106 +#define PIDX_EXCHANGE_PARAM_KDF_TYPE 107 +#define PIDX_EXCHANGE_PARAM_KDF_UKM 108 +#define PIDX_EXCHANGE_PARAM_PAD 109 +#define PIDX_GEN_PARAM_ITERATION 110 +#define PIDX_GEN_PARAM_POTENTIAL 111 +#define PIDX_KDF_PARAM_ARGON2_AD 112 +#define PIDX_KDF_PARAM_ARGON2_LANES 113 +#define PIDX_KDF_PARAM_ARGON2_MEMCOST 114 +#define PIDX_KDF_PARAM_ARGON2_VERSION 115 +#define PIDX_KDF_PARAM_CEK_ALG 116 +#define PIDX_KDF_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_KDF_PARAM_CONSTANT 117 +#define PIDX_KDF_PARAM_DATA 118 +#define PIDX_KDF_PARAM_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_KDF_PARAM_EARLY_CLEAN 119 +#define PIDX_KDF_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_KDF_PARAM_FIPS_DIGEST_CHECK PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK +#define PIDX_KDF_PARAM_FIPS_EMS_CHECK 120 +#define PIDX_KDF_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_KDF_PARAM_HMACDRBG_ENTROPY 121 +#define PIDX_KDF_PARAM_HMACDRBG_NONCE 122 +#define PIDX_KDF_PARAM_INFO 123 +#define PIDX_KDF_PARAM_ITER 124 +#define PIDX_KDF_PARAM_KBKDF_R 125 +#define PIDX_KDF_PARAM_KBKDF_USE_L 126 +#define PIDX_KDF_PARAM_KBKDF_USE_SEPARATOR 127 +#define PIDX_KDF_PARAM_KEY 128 +#define PIDX_KDF_PARAM_LABEL 129 +#define PIDX_KDF_PARAM_MAC PIDX_ALG_PARAM_MAC +#define PIDX_KDF_PARAM_MAC_SIZE 130 +#define PIDX_KDF_PARAM_MODE 55 +#define PIDX_KDF_PARAM_PASSWORD 131 +#define PIDX_KDF_PARAM_PKCS12_ID 132 +#define PIDX_KDF_PARAM_PKCS5 133 +#define PIDX_KDF_PARAM_PREFIX 134 +#define PIDX_KDF_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_KDF_PARAM_SALT 135 +#define PIDX_KDF_PARAM_SCRYPT_MAXMEM 136 +#define PIDX_KDF_PARAM_SCRYPT_N 137 +#define PIDX_KDF_PARAM_SCRYPT_P 138 +#define PIDX_KDF_PARAM_SCRYPT_R 125 +#define PIDX_KDF_PARAM_SECRET 139 +#define PIDX_KDF_PARAM_SEED 140 +#define PIDX_KDF_PARAM_SIZE 81 +#define PIDX_KDF_PARAM_SSHKDF_SESSION_ID 141 +#define PIDX_KDF_PARAM_SSHKDF_TYPE 142 +#define PIDX_KDF_PARAM_SSHKDF_XCGHASH 143 +#define PIDX_KDF_PARAM_THREADS 144 +#define PIDX_KDF_PARAM_UKM 145 +#define PIDX_KDF_PARAM_X942_ACVPINFO 146 +#define PIDX_KDF_PARAM_X942_PARTYUINFO 147 +#define PIDX_KDF_PARAM_X942_PARTYVINFO 148 +#define PIDX_KDF_PARAM_X942_SUPP_PRIVINFO 149 +#define PIDX_KDF_PARAM_X942_SUPP_PUBINFO 150 +#define PIDX_KDF_PARAM_X942_USE_KEYBITS 151 +#define PIDX_KEM_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_KEM_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_KEM_PARAM_IKME 152 +#define PIDX_KEM_PARAM_OPERATION 153 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_BLOCK_PADDING 154 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_HS_PADDING 155 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_MAX_EARLY_DATA 156 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_MAX_FRAG_LEN 157 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_MODE 55 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_OPTIONS 158 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_READ_AHEAD 159 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_STREAM_MAC 160 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_TLSTREE 161 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_USE_ETM 162 +#define PIDX_LIBSSL_RECORD_LAYER_READ_BUFFER_LEN 163 +#define PIDX_MAC_PARAM_BLOCK_SIZE 164 +#define PIDX_MAC_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_MAC_PARAM_CUSTOM 165 +#define PIDX_MAC_PARAM_C_ROUNDS 166 +#define PIDX_MAC_PARAM_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_MAC_PARAM_DIGEST_NOINIT 167 +#define PIDX_MAC_PARAM_DIGEST_ONESHOT 168 +#define PIDX_MAC_PARAM_D_ROUNDS 169 +#define PIDX_MAC_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_MAC_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_MAC_PARAM_FIPS_NO_SHORT_MAC PIDX_PROV_PARAM_NO_SHORT_MAC +#define PIDX_MAC_PARAM_IV 52 +#define PIDX_MAC_PARAM_KEY 128 +#define PIDX_MAC_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_MAC_PARAM_SALT 135 +#define PIDX_MAC_PARAM_SIZE 81 +#define PIDX_MAC_PARAM_TLS_DATA_SIZE 170 +#define PIDX_MAC_PARAM_XOF 83 +#define PIDX_OBJECT_PARAM_DATA 118 +#define PIDX_OBJECT_PARAM_DATA_STRUCTURE 171 +#define PIDX_OBJECT_PARAM_DATA_TYPE 172 +#define PIDX_OBJECT_PARAM_DESC 173 +#define PIDX_OBJECT_PARAM_INPUT_TYPE 174 +#define PIDX_OBJECT_PARAM_REFERENCE 175 +#define PIDX_OBJECT_PARAM_TYPE 142 +#define PIDX_PASSPHRASE_PARAM_INFO 123 +#define PIDX_PKEY_PARAM_ALGORITHM_ID PIDX_ALG_PARAM_ALGORITHM_ID +#define PIDX_PKEY_PARAM_ALGORITHM_ID_PARAMS PIDX_ALG_PARAM_ALGORITHM_ID_PARAMS +#define PIDX_PKEY_PARAM_BITS 176 +#define PIDX_PKEY_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_PKEY_PARAM_DEFAULT_DIGEST 177 +#define PIDX_PKEY_PARAM_DHKEM_IKM 178 +#define PIDX_PKEY_PARAM_DH_GENERATOR 179 +#define PIDX_PKEY_PARAM_DH_PRIV_LEN 180 +#define PIDX_PKEY_PARAM_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_PKEY_PARAM_DIGEST_SIZE 181 +#define PIDX_PKEY_PARAM_DIST_ID 182 +#define PIDX_PKEY_PARAM_EC_A 183 +#define PIDX_PKEY_PARAM_EC_B 184 +#define PIDX_PKEY_PARAM_EC_CHAR2_M 185 +#define PIDX_PKEY_PARAM_EC_CHAR2_PP_K1 186 +#define PIDX_PKEY_PARAM_EC_CHAR2_PP_K2 187 +#define PIDX_PKEY_PARAM_EC_CHAR2_PP_K3 188 +#define PIDX_PKEY_PARAM_EC_CHAR2_TP_BASIS 189 +#define PIDX_PKEY_PARAM_EC_CHAR2_TYPE 190 +#define PIDX_PKEY_PARAM_EC_COFACTOR 191 +#define PIDX_PKEY_PARAM_EC_DECODED_FROM_EXPLICIT_PARAMS 192 +#define PIDX_PKEY_PARAM_EC_ENCODING 193 +#define PIDX_PKEY_PARAM_EC_FIELD_TYPE 194 +#define PIDX_PKEY_PARAM_EC_GENERATOR 195 +#define PIDX_PKEY_PARAM_EC_GROUP_CHECK_TYPE 196 +#define PIDX_PKEY_PARAM_EC_INCLUDE_PUBLIC 197 +#define PIDX_PKEY_PARAM_EC_ORDER 198 +#define PIDX_PKEY_PARAM_EC_P 138 +#define PIDX_PKEY_PARAM_EC_POINT_CONVERSION_FORMAT 199 +#define PIDX_PKEY_PARAM_EC_PUB_X 200 +#define PIDX_PKEY_PARAM_EC_PUB_Y 201 +#define PIDX_PKEY_PARAM_EC_SEED 140 +#define PIDX_PKEY_PARAM_ENCODED_PUBLIC_KEY 202 +#define PIDX_PKEY_PARAM_ENGINE PIDX_ALG_PARAM_ENGINE +#define PIDX_PKEY_PARAM_FFC_COFACTOR 203 +#define PIDX_PKEY_PARAM_FFC_DIGEST PIDX_PKEY_PARAM_DIGEST +#define PIDX_PKEY_PARAM_FFC_DIGEST_PROPS PIDX_PKEY_PARAM_PROPERTIES +#define PIDX_PKEY_PARAM_FFC_G 204 +#define PIDX_PKEY_PARAM_FFC_GINDEX 205 +#define PIDX_PKEY_PARAM_FFC_H 206 +#define PIDX_PKEY_PARAM_FFC_P 138 +#define PIDX_PKEY_PARAM_FFC_PBITS 207 +#define PIDX_PKEY_PARAM_FFC_PCOUNTER 208 +#define PIDX_PKEY_PARAM_FFC_Q 209 +#define PIDX_PKEY_PARAM_FFC_QBITS 210 +#define PIDX_PKEY_PARAM_FFC_SEED 140 +#define PIDX_PKEY_PARAM_FFC_TYPE 142 +#define PIDX_PKEY_PARAM_FFC_VALIDATE_G 211 +#define PIDX_PKEY_PARAM_FFC_VALIDATE_LEGACY 212 +#define PIDX_PKEY_PARAM_FFC_VALIDATE_PQ 213 +#define PIDX_PKEY_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK 214 +#define PIDX_PKEY_PARAM_FIPS_KEY_CHECK 215 +#define PIDX_PKEY_PARAM_FIPS_SIGN_CHECK 216 +#define PIDX_PKEY_PARAM_GROUP_NAME 217 +#define PIDX_PKEY_PARAM_IMPLICIT_REJECTION 8 +#define PIDX_PKEY_PARAM_MANDATORY_DIGEST 218 +#define PIDX_PKEY_PARAM_MASKGENFUNC 219 +#define PIDX_PKEY_PARAM_MAX_SIZE 220 +#define PIDX_PKEY_PARAM_MGF1_DIGEST 221 +#define PIDX_PKEY_PARAM_MGF1_PROPERTIES 222 +#define PIDX_PKEY_PARAM_ML_DSA_INPUT_FORMATS 223 +#define PIDX_PKEY_PARAM_ML_DSA_OUTPUT_FORMATS 224 +#define PIDX_PKEY_PARAM_ML_DSA_PREFER_SEED 225 +#define PIDX_PKEY_PARAM_ML_DSA_RETAIN_SEED 226 +#define PIDX_PKEY_PARAM_ML_DSA_SEED 140 +#define PIDX_PKEY_PARAM_ML_KEM_IMPORT_PCT_TYPE 227 +#define PIDX_PKEY_PARAM_ML_KEM_INPUT_FORMATS 228 +#define PIDX_PKEY_PARAM_ML_KEM_OUTPUT_FORMATS 229 +#define PIDX_PKEY_PARAM_ML_KEM_PREFER_SEED 230 +#define PIDX_PKEY_PARAM_ML_KEM_RETAIN_SEED 231 +#define PIDX_PKEY_PARAM_ML_KEM_SEED 140 +#define PIDX_PKEY_PARAM_PAD_MODE 232 +#define PIDX_PKEY_PARAM_PRIV_KEY 233 +#define PIDX_PKEY_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_PKEY_PARAM_PUB_KEY 234 +#define PIDX_PKEY_PARAM_RSA_BITS PIDX_PKEY_PARAM_BITS +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT 235 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT1 236 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT2 237 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT3 238 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT4 239 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT5 240 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT6 241 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT7 242 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT8 243 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT9 244 +#define PIDX_PKEY_PARAM_RSA_D 245 +#define PIDX_PKEY_PARAM_RSA_DERIVE_FROM_PQ 246 +#define PIDX_PKEY_PARAM_RSA_DIGEST PIDX_PKEY_PARAM_DIGEST +#define PIDX_PKEY_PARAM_RSA_DIGEST_PROPS PIDX_PKEY_PARAM_PROPERTIES +#define PIDX_PKEY_PARAM_RSA_E 247 +#define PIDX_PKEY_PARAM_RSA_EXPONENT 248 +#define PIDX_PKEY_PARAM_RSA_EXPONENT1 249 +#define PIDX_PKEY_PARAM_RSA_EXPONENT10 250 +#define PIDX_PKEY_PARAM_RSA_EXPONENT2 251 +#define PIDX_PKEY_PARAM_RSA_EXPONENT3 252 +#define PIDX_PKEY_PARAM_RSA_EXPONENT4 253 +#define PIDX_PKEY_PARAM_RSA_EXPONENT5 254 +#define PIDX_PKEY_PARAM_RSA_EXPONENT6 255 +#define PIDX_PKEY_PARAM_RSA_EXPONENT7 256 +#define PIDX_PKEY_PARAM_RSA_EXPONENT8 257 +#define PIDX_PKEY_PARAM_RSA_EXPONENT9 258 +#define PIDX_PKEY_PARAM_RSA_FACTOR 259 +#define PIDX_PKEY_PARAM_RSA_FACTOR1 260 +#define PIDX_PKEY_PARAM_RSA_FACTOR10 261 +#define PIDX_PKEY_PARAM_RSA_FACTOR2 262 +#define PIDX_PKEY_PARAM_RSA_FACTOR3 263 +#define PIDX_PKEY_PARAM_RSA_FACTOR4 264 +#define PIDX_PKEY_PARAM_RSA_FACTOR5 265 +#define PIDX_PKEY_PARAM_RSA_FACTOR6 266 +#define PIDX_PKEY_PARAM_RSA_FACTOR7 267 +#define PIDX_PKEY_PARAM_RSA_FACTOR8 268 +#define PIDX_PKEY_PARAM_RSA_FACTOR9 269 +#define PIDX_PKEY_PARAM_RSA_MASKGENFUNC PIDX_PKEY_PARAM_MASKGENFUNC +#define PIDX_PKEY_PARAM_RSA_MGF1_DIGEST PIDX_PKEY_PARAM_MGF1_DIGEST +#define PIDX_PKEY_PARAM_RSA_N 137 +#define PIDX_PKEY_PARAM_RSA_PRIMES 270 +#define PIDX_PKEY_PARAM_RSA_PSS_SALTLEN 271 +#define PIDX_PKEY_PARAM_RSA_TEST_P1 272 +#define PIDX_PKEY_PARAM_RSA_TEST_P2 273 +#define PIDX_PKEY_PARAM_RSA_TEST_Q1 274 +#define PIDX_PKEY_PARAM_RSA_TEST_Q2 275 +#define PIDX_PKEY_PARAM_RSA_TEST_XP 276 +#define PIDX_PKEY_PARAM_RSA_TEST_XP1 277 +#define PIDX_PKEY_PARAM_RSA_TEST_XP2 278 +#define PIDX_PKEY_PARAM_RSA_TEST_XQ 279 +#define PIDX_PKEY_PARAM_RSA_TEST_XQ1 280 +#define PIDX_PKEY_PARAM_RSA_TEST_XQ2 281 +#define PIDX_PKEY_PARAM_SECURITY_BITS 282 +#define PIDX_PKEY_PARAM_SLH_DSA_SEED 140 +#define PIDX_PKEY_PARAM_USE_COFACTOR_ECDH PIDX_PKEY_PARAM_USE_COFACTOR_FLAG +#define PIDX_PKEY_PARAM_USE_COFACTOR_FLAG 283 +#define PIDX_PROV_PARAM_BUILDINFO 284 +#define PIDX_PROV_PARAM_CORE_MODULE_FILENAME 285 +#define PIDX_PROV_PARAM_CORE_PROV_NAME 286 +#define PIDX_PROV_PARAM_CORE_VERSION 287 +#define PIDX_PROV_PARAM_DRBG_TRUNC_DIGEST 288 +#define PIDX_PROV_PARAM_DSA_SIGN_DISABLED 289 +#define PIDX_PROV_PARAM_ECDH_COFACTOR_CHECK 290 +#define PIDX_PROV_PARAM_HKDF_DIGEST_CHECK 291 +#define PIDX_PROV_PARAM_HKDF_KEY_CHECK 292 +#define PIDX_PROV_PARAM_HMAC_KEY_CHECK 293 +#define PIDX_PROV_PARAM_KBKDF_KEY_CHECK 294 +#define PIDX_PROV_PARAM_KMAC_KEY_CHECK 295 +#define PIDX_PROV_PARAM_NAME 296 +#define PIDX_PROV_PARAM_NO_SHORT_MAC 297 +#define PIDX_PROV_PARAM_PBKDF2_LOWER_BOUND_CHECK 298 +#define PIDX_PROV_PARAM_RSA_PKCS15_PAD_DISABLED 299 +#define PIDX_PROV_PARAM_RSA_PSS_SALTLEN_CHECK 300 +#define PIDX_PROV_PARAM_RSA_SIGN_X931_PAD_DISABLED 301 +#define PIDX_PROV_PARAM_SECURITY_CHECKS 302 +#define PIDX_PROV_PARAM_SELF_TEST_DESC 303 +#define PIDX_PROV_PARAM_SELF_TEST_PHASE 304 +#define PIDX_PROV_PARAM_SELF_TEST_TYPE 305 +#define PIDX_PROV_PARAM_SIGNATURE_DIGEST_CHECK 306 +#define PIDX_PROV_PARAM_SSHKDF_DIGEST_CHECK 307 +#define PIDX_PROV_PARAM_SSHKDF_KEY_CHECK 308 +#define PIDX_PROV_PARAM_SSKDF_DIGEST_CHECK 309 +#define PIDX_PROV_PARAM_SSKDF_KEY_CHECK 310 +#define PIDX_PROV_PARAM_STATUS 311 +#define PIDX_PROV_PARAM_TDES_ENCRYPT_DISABLED 312 +#define PIDX_PROV_PARAM_TLS13_KDF_DIGEST_CHECK 313 +#define PIDX_PROV_PARAM_TLS13_KDF_KEY_CHECK 314 +#define PIDX_PROV_PARAM_TLS1_PRF_DIGEST_CHECK 315 +#define PIDX_PROV_PARAM_TLS1_PRF_EMS_CHECK 316 +#define PIDX_PROV_PARAM_TLS1_PRF_KEY_CHECK 317 +#define PIDX_PROV_PARAM_VERSION 115 +#define PIDX_PROV_PARAM_X942KDF_KEY_CHECK 318 +#define PIDX_PROV_PARAM_X963KDF_DIGEST_CHECK 319 +#define PIDX_PROV_PARAM_X963KDF_KEY_CHECK 320 +#define PIDX_RAND_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_RAND_PARAM_GENERATE 321 +#define PIDX_RAND_PARAM_MAX_REQUEST 322 +#define PIDX_RAND_PARAM_STATE 323 +#define PIDX_RAND_PARAM_STRENGTH 324 +#define PIDX_RAND_PARAM_TEST_ENTROPY 325 +#define PIDX_RAND_PARAM_TEST_NONCE 326 +#define PIDX_SIGNATURE_PARAM_ADD_RANDOM 327 +#define PIDX_SIGNATURE_PARAM_ALGORITHM_ID PIDX_PKEY_PARAM_ALGORITHM_ID +#define PIDX_SIGNATURE_PARAM_ALGORITHM_ID_PARAMS PIDX_PKEY_PARAM_ALGORITHM_ID_PARAMS +#define PIDX_SIGNATURE_PARAM_CONTEXT_STRING 328 +#define PIDX_SIGNATURE_PARAM_DETERMINISTIC 329 +#define PIDX_SIGNATURE_PARAM_DIGEST PIDX_PKEY_PARAM_DIGEST +#define PIDX_SIGNATURE_PARAM_DIGEST_SIZE PIDX_PKEY_PARAM_DIGEST_SIZE +#define PIDX_SIGNATURE_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_SIGNATURE_PARAM_FIPS_DIGEST_CHECK PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK +#define PIDX_SIGNATURE_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_SIGNATURE_PARAM_FIPS_RSA_PSS_SALTLEN_CHECK 300 +#define PIDX_SIGNATURE_PARAM_FIPS_SIGN_CHECK PIDX_PKEY_PARAM_FIPS_SIGN_CHECK +#define PIDX_SIGNATURE_PARAM_FIPS_SIGN_X931_PAD_CHECK 330 +#define PIDX_SIGNATURE_PARAM_FIPS_VERIFY_MESSAGE 331 +#define PIDX_SIGNATURE_PARAM_INSTANCE 332 +#define PIDX_SIGNATURE_PARAM_KAT 333 +#define PIDX_SIGNATURE_PARAM_MESSAGE_ENCODING 334 +#define PIDX_SIGNATURE_PARAM_MGF1_DIGEST PIDX_PKEY_PARAM_MGF1_DIGEST +#define PIDX_SIGNATURE_PARAM_MGF1_PROPERTIES PIDX_PKEY_PARAM_MGF1_PROPERTIES +#define PIDX_SIGNATURE_PARAM_MU 335 +#define PIDX_SIGNATURE_PARAM_NONCE_TYPE 336 +#define PIDX_SIGNATURE_PARAM_PAD_MODE PIDX_PKEY_PARAM_PAD_MODE +#define PIDX_SIGNATURE_PARAM_PROPERTIES PIDX_PKEY_PARAM_PROPERTIES +#define PIDX_SIGNATURE_PARAM_PSS_SALTLEN 271 +#define PIDX_SIGNATURE_PARAM_SIGNATURE 337 +#define PIDX_SIGNATURE_PARAM_TEST_ENTROPY 338 +#define PIDX_SKEY_PARAM_KEY_LENGTH 339 +#define PIDX_SKEY_PARAM_RAW_BYTES 340 +#define PIDX_STORE_PARAM_ALIAS 341 +#define PIDX_STORE_PARAM_DIGEST 3 +#define PIDX_STORE_PARAM_EXPECT 342 +#define PIDX_STORE_PARAM_FINGERPRINT 343 +#define PIDX_STORE_PARAM_INPUT_TYPE 174 +#define PIDX_STORE_PARAM_ISSUER 296 +#define PIDX_STORE_PARAM_PROPERTIES 7 +#define PIDX_STORE_PARAM_SERIAL 344 +#define PIDX_STORE_PARAM_SUBJECT 345 diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/include/openssl/asn1.h b/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/include/openssl/asn1.h index 21ff58e3d803d4..15e9e44674b0f3 100644 --- a/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/include/openssl/asn1.h +++ b/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/include/openssl/asn1.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/asn1.h.in * - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -21,6 +21,9 @@ # define HEADER_ASN1_H # endif +# ifndef OPENSSL_NO_STDIO +# include +# endif # include # include # include @@ -50,14 +53,14 @@ extern "C" { # define V_ASN1_PRIMITIVE_TAG 0x1f # define V_ASN1_PRIMATIVE_TAG /*compat*/ V_ASN1_PRIMITIVE_TAG -# define V_ASN1_APP_CHOOSE -2/* let the recipient choose */ -# define V_ASN1_OTHER -3/* used in ASN1_TYPE */ -# define V_ASN1_ANY -4/* used in ASN1 template code */ +# define V_ASN1_APP_CHOOSE -2 /* let the recipient choose */ +# define V_ASN1_OTHER -3 /* used in ASN1_TYPE */ +# define V_ASN1_ANY -4 /* used in ASN1 template code */ # define V_ASN1_UNDEF -1 /* ASN.1 tag values */ # define V_ASN1_EOC 0 -# define V_ASN1_BOOLEAN 1 /**/ +# define V_ASN1_BOOLEAN 1 # define V_ASN1_INTEGER 2 # define V_ASN1_BIT_STRING 3 # define V_ASN1_OCTET_STRING 4 @@ -70,19 +73,19 @@ extern "C" { # define V_ASN1_UTF8STRING 12 # define V_ASN1_SEQUENCE 16 # define V_ASN1_SET 17 -# define V_ASN1_NUMERICSTRING 18 /**/ +# define V_ASN1_NUMERICSTRING 18 # define V_ASN1_PRINTABLESTRING 19 # define V_ASN1_T61STRING 20 -# define V_ASN1_TELETEXSTRING 20/* alias */ -# define V_ASN1_VIDEOTEXSTRING 21 /**/ +# define V_ASN1_TELETEXSTRING 20 /* alias */ +# define V_ASN1_VIDEOTEXSTRING 21 # define V_ASN1_IA5STRING 22 # define V_ASN1_UTCTIME 23 -# define V_ASN1_GENERALIZEDTIME 24 /**/ -# define V_ASN1_GRAPHICSTRING 25 /**/ -# define V_ASN1_ISO64STRING 26 /**/ -# define V_ASN1_VISIBLESTRING 26/* alias */ -# define V_ASN1_GENERALSTRING 27 /**/ -# define V_ASN1_UNIVERSALSTRING 28 /**/ +# define V_ASN1_GENERALIZEDTIME 24 +# define V_ASN1_GRAPHICSTRING 25 +# define V_ASN1_ISO64STRING 26 +# define V_ASN1_VISIBLESTRING 26 /* alias */ +# define V_ASN1_GENERALSTRING 27 +# define V_ASN1_UNIVERSALSTRING 28 # define V_ASN1_BMPSTRING 30 /* @@ -155,7 +158,7 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_ALGOR, X509_ALGOR, X509_ALGOR) -# define ASN1_STRING_FLAG_BITS_LEFT 0x08/* Set if 0x07 has bits left value */ +# define ASN1_STRING_FLAG_BITS_LEFT 0x08 /* Set if 0x07 has bits left value */ /* * This indicates that the ASN1_STRING is not a real value but just a place * holder for the location where indefinite length constructed data should be @@ -275,7 +278,7 @@ typedef struct ASN1_TLC_st ASN1_TLC; /* This is just an opaque pointer */ typedef struct ASN1_VALUE_st ASN1_VALUE; -/* Declare ASN1 functions: the implement macro in in asn1t.h */ +/* Declare ASN1 functions: the implement macro is in asn1t.h */ /* * The mysterious 'extern' that's passed to some macros is innocuous, @@ -368,6 +371,7 @@ typedef struct ASN1_VALUE_st ASN1_VALUE; typedef void *d2i_of_void(void **, const unsigned char **, long); typedef int i2d_of_void(const void *, unsigned char **); +typedef int OSSL_i2d_of_void_ctx(const void *, unsigned char **, void *vctx); /*- * The following macros and typedefs allow an ASN1_ITEM @@ -996,6 +1000,8 @@ int ASN1_TYPE_get_int_octetstring(const ASN1_TYPE *a, long *num, unsigned char *data, int max_len); void *ASN1_item_unpack(const ASN1_STRING *oct, const ASN1_ITEM *it); +void *ASN1_item_unpack_ex(const ASN1_STRING *oct, const ASN1_ITEM *it, + OSSL_LIB_CTX *libctx, const char *propq); ASN1_STRING *ASN1_item_pack(void *obj, const ASN1_ITEM *it, ASN1_OCTET_STRING **oct); diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/include/openssl/bio.h b/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/include/openssl/bio.h index f9aa74731c833c..e02f867beb0ec0 100644 --- a/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/include/openssl/bio.h +++ b/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/include/openssl/bio.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/bio.h.in * - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -67,8 +67,13 @@ extern "C" { # define BIO_TYPE_DGRAM_SCTP (24|BIO_TYPE_SOURCE_SINK|BIO_TYPE_DESCRIPTOR) # endif # define BIO_TYPE_CORE_TO_PROV (25|BIO_TYPE_SOURCE_SINK) +# define BIO_TYPE_DGRAM_PAIR (26|BIO_TYPE_SOURCE_SINK) +# define BIO_TYPE_DGRAM_MEM (27|BIO_TYPE_SOURCE_SINK) +/* Custom type starting index returned by BIO_get_new_index() */ #define BIO_TYPE_START 128 +/* Custom type maximum index that can be returned by BIO_get_new_index() */ +#define BIO_TYPE_MASK 0xFF /* * BIO_FILENAME_READ|BIO_CLOSE to open or close on free. @@ -171,6 +176,31 @@ extern "C" { # define BIO_CTRL_SET_INDENT 80 # define BIO_CTRL_GET_INDENT 81 +# define BIO_CTRL_DGRAM_GET_LOCAL_ADDR_CAP 82 +# define BIO_CTRL_DGRAM_GET_LOCAL_ADDR_ENABLE 83 +# define BIO_CTRL_DGRAM_SET_LOCAL_ADDR_ENABLE 84 +# define BIO_CTRL_DGRAM_GET_EFFECTIVE_CAPS 85 +# define BIO_CTRL_DGRAM_GET_CAPS 86 +# define BIO_CTRL_DGRAM_SET_CAPS 87 +# define BIO_CTRL_DGRAM_GET_NO_TRUNC 88 +# define BIO_CTRL_DGRAM_SET_NO_TRUNC 89 + +/* + * internal BIO: + * # define BIO_CTRL_SET_KTLS_TX_ZEROCOPY_SENDFILE 90 + */ + +# define BIO_CTRL_GET_RPOLL_DESCRIPTOR 91 +# define BIO_CTRL_GET_WPOLL_DESCRIPTOR 92 +# define BIO_CTRL_DGRAM_DETECT_PEER_ADDR 93 +# define BIO_CTRL_DGRAM_SET0_LOCAL_ADDR 94 + +# define BIO_DGRAM_CAP_NONE 0U +# define BIO_DGRAM_CAP_HANDLES_SRC_ADDR (1U << 0) +# define BIO_DGRAM_CAP_HANDLES_DST_ADDR (1U << 1) +# define BIO_DGRAM_CAP_PROVIDES_SRC_ADDR (1U << 2) +# define BIO_DGRAM_CAP_PROVIDES_DST_ADDR (1U << 3) + # ifndef OPENSSL_NO_KTLS # define BIO_get_ktls_send(b) \ (BIO_ctrl(b, BIO_CTRL_GET_KTLS_SEND, 0, NULL) > 0) @@ -208,7 +238,7 @@ extern "C" { # define BIO_FLAGS_NONCLEAR_RST 0x400 # define BIO_FLAGS_IN_EOF 0x800 -/* the BIO FLAGS values 0x1000 to 0x4000 are reserved for internal KTLS flags */ +/* the BIO FLAGS values 0x1000 to 0x8000 are reserved for internal KTLS flags */ typedef union bio_addr_st BIO_ADDR; typedef struct bio_addrinfo_st BIO_ADDRINFO; @@ -256,12 +286,14 @@ void BIO_clear_flags(BIO *b, int flags); # define BIO_RR_ACCEPT 0x03 /* These are passed by the BIO callback */ -# define BIO_CB_FREE 0x01 -# define BIO_CB_READ 0x02 -# define BIO_CB_WRITE 0x03 -# define BIO_CB_PUTS 0x04 -# define BIO_CB_GETS 0x05 -# define BIO_CB_CTRL 0x06 +# define BIO_CB_FREE 0x01 +# define BIO_CB_READ 0x02 +# define BIO_CB_WRITE 0x03 +# define BIO_CB_PUTS 0x04 +# define BIO_CB_GETS 0x05 +# define BIO_CB_CTRL 0x06 +# define BIO_CB_RECVMMSG 0x07 +# define BIO_CB_SENDMMSG 0x08 /* * The callback is called before and after the underling operation, The @@ -362,6 +394,36 @@ struct bio_dgram_sctp_prinfo { }; # endif +/* BIO_sendmmsg/BIO_recvmmsg-related definitions */ +typedef struct bio_msg_st { + void *data; + size_t data_len; + BIO_ADDR *peer, *local; + uint64_t flags; +} BIO_MSG; + +typedef struct bio_mmsg_cb_args_st { + BIO_MSG *msg; + size_t stride, num_msg; + uint64_t flags; + size_t *msgs_processed; +} BIO_MMSG_CB_ARGS; + +#define BIO_POLL_DESCRIPTOR_TYPE_NONE 0 +#define BIO_POLL_DESCRIPTOR_TYPE_SOCK_FD 1 +#define BIO_POLL_DESCRIPTOR_TYPE_SSL 2 +#define BIO_POLL_DESCRIPTOR_CUSTOM_START 8192 + +typedef struct bio_poll_descriptor_st { + uint32_t type; + union { + int fd; + void *custom; + uintptr_t custom_ui; + SSL *ssl; + } value; +} BIO_POLL_DESCRIPTOR; + /* * #define BIO_CONN_get_param_hostname BIO_ctrl */ @@ -428,10 +490,17 @@ struct bio_dgram_sctp_prinfo { # define BIO_C_SET_CONNECT_MODE 155 +# define BIO_C_SET_TFO 156 /* like BIO_C_SET_NBIO */ + +# define BIO_C_SET_SOCK_TYPE 157 +# define BIO_C_GET_SOCK_TYPE 158 +# define BIO_C_GET_DGRAM_BIO 159 + # define BIO_set_app_data(s,arg) BIO_set_ex_data(s,0,arg) # define BIO_get_app_data(s) BIO_get_ex_data(s,0) -# define BIO_set_nbio(b,n) BIO_ctrl(b,BIO_C_SET_NBIO,(n),NULL) +# define BIO_set_nbio(b,n) BIO_ctrl(b,BIO_C_SET_NBIO,(n),NULL) +# define BIO_set_tfo(b,n) BIO_ctrl(b,BIO_C_SET_TFO,(n),NULL) # ifndef OPENSSL_NO_SOCK /* IP families we support, for BIO_s_connect() and BIO_s_accept() */ @@ -452,7 +521,11 @@ struct bio_dgram_sctp_prinfo { # define BIO_get_conn_port(b) ((const char *)BIO_ptr_ctrl(b,BIO_C_GET_CONNECT,1)) # define BIO_get_conn_address(b) ((const BIO_ADDR *)BIO_ptr_ctrl(b,BIO_C_GET_CONNECT,2)) # define BIO_get_conn_ip_family(b) BIO_ctrl(b,BIO_C_GET_CONNECT,3,NULL) +# define BIO_get_conn_mode(b) BIO_ctrl(b,BIO_C_GET_CONNECT,4,NULL) # define BIO_set_conn_mode(b,n) BIO_ctrl(b,BIO_C_SET_CONNECT_MODE,(n),NULL) +# define BIO_set_sock_type(b,t) BIO_ctrl(b,BIO_C_SET_SOCK_TYPE,(t),NULL) +# define BIO_get_sock_type(b) BIO_ctrl(b,BIO_C_GET_SOCK_TYPE,0,NULL) +# define BIO_get0_dgram_bio(b, p) BIO_ctrl(b,BIO_C_GET_DGRAM_BIO,0,(void *)(BIO **)(p)) /* BIO_s_accept() */ # define BIO_set_accept_name(b,name) BIO_ctrl(b,BIO_C_SET_ACCEPT,0, \ @@ -469,6 +542,7 @@ struct bio_dgram_sctp_prinfo { (char *)(bio)) # define BIO_set_accept_ip_family(b,f) BIO_int_ctrl(b,BIO_C_SET_ACCEPT,4,f) # define BIO_get_accept_ip_family(b) BIO_ctrl(b,BIO_C_GET_ACCEPT,4,NULL) +# define BIO_set_tfo_accept(b,n) BIO_ctrl(b,BIO_C_SET_ACCEPT,5,(n)?(void *)"a":NULL) /* Aliases kept for backward compatibility */ # define BIO_BIND_NORMAL 0 @@ -596,8 +670,32 @@ int BIO_ctrl_reset_read_request(BIO *b); (int)BIO_ctrl(b, BIO_CTRL_DGRAM_GET_PEER, 0, (char *)(peer)) # define BIO_dgram_set_peer(b,peer) \ (int)BIO_ctrl(b, BIO_CTRL_DGRAM_SET_PEER, 0, (char *)(peer)) +# define BIO_dgram_detect_peer_addr(b,peer) \ + (int)BIO_ctrl(b, BIO_CTRL_DGRAM_DETECT_PEER_ADDR, 0, (char *)(peer)) # define BIO_dgram_get_mtu_overhead(b) \ (unsigned int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_MTU_OVERHEAD, 0, NULL) +# define BIO_dgram_get_local_addr_cap(b) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_LOCAL_ADDR_CAP, 0, NULL) +# define BIO_dgram_get_local_addr_enable(b, penable) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_LOCAL_ADDR_ENABLE, 0, (char *)(penable)) +# define BIO_dgram_set_local_addr_enable(b, enable) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET_LOCAL_ADDR_ENABLE, (enable), NULL) +# define BIO_dgram_get_effective_caps(b) \ + (uint32_t)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_EFFECTIVE_CAPS, 0, NULL) +# define BIO_dgram_get_caps(b) \ + (uint32_t)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_CAPS, 0, NULL) +# define BIO_dgram_set_caps(b, caps) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET_CAPS, (long)(caps), NULL) +# define BIO_dgram_get_no_trunc(b) \ + (unsigned int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_NO_TRUNC, 0, NULL) +# define BIO_dgram_set_no_trunc(b, enable) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET_NO_TRUNC, (enable), NULL) +# define BIO_dgram_get_mtu(b) \ + (unsigned int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_MTU, 0, NULL) +# define BIO_dgram_set_mtu(b, mtu) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET_MTU, (mtu), NULL) +# define BIO_dgram_set0_local_addr(b, addr) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET0_LOCAL_ADDR, 0, (addr)) /* ctrl macros for BIO_f_prefix */ # define BIO_set_prefix(b,p) BIO_ctrl((b), BIO_CTRL_SET_PREFIX, 0, (void *)(p)) @@ -640,10 +738,18 @@ void BIO_vfree(BIO *a); int BIO_up_ref(BIO *a); int BIO_read(BIO *b, void *data, int dlen); int BIO_read_ex(BIO *b, void *data, size_t dlen, size_t *readbytes); +__owur int BIO_recvmmsg(BIO *b, BIO_MSG *msg, + size_t stride, size_t num_msg, uint64_t flags, + size_t *msgs_processed); int BIO_gets(BIO *bp, char *buf, int size); int BIO_get_line(BIO *bio, char *buf, int size); int BIO_write(BIO *b, const void *data, int dlen); int BIO_write_ex(BIO *b, const void *data, size_t dlen, size_t *written); +__owur int BIO_sendmmsg(BIO *b, BIO_MSG *msg, + size_t stride, size_t num_msg, uint64_t flags, + size_t *msgs_processed); +__owur int BIO_get_rpoll_descriptor(BIO *b, BIO_POLL_DESCRIPTOR *desc); +__owur int BIO_get_wpoll_descriptor(BIO *b, BIO_POLL_DESCRIPTOR *desc); int BIO_puts(BIO *bp, const char *buf); int BIO_indent(BIO *b, int indent, int max); long BIO_ctrl(BIO *bp, int cmd, long larg, void *parg); @@ -667,6 +773,9 @@ int BIO_nwrite0(BIO *bio, char **buf); int BIO_nwrite(BIO *bio, char **buf, int num); const BIO_METHOD *BIO_s_mem(void); +# ifndef OPENSSL_NO_DGRAM +const BIO_METHOD *BIO_s_dgram_mem(void); +# endif const BIO_METHOD *BIO_s_secmem(void); BIO *BIO_new_mem_buf(const void *buf, int len); # ifndef OPENSSL_NO_SOCK @@ -686,6 +795,7 @@ const BIO_METHOD *BIO_f_nbio_test(void); const BIO_METHOD *BIO_f_prefix(void); const BIO_METHOD *BIO_s_core(void); # ifndef OPENSSL_NO_DGRAM +const BIO_METHOD *BIO_s_dgram_pair(void); const BIO_METHOD *BIO_s_datagram(void); int BIO_dgram_non_fatal_error(int error); BIO *BIO_new_dgram(int fd, int close_flag); @@ -704,6 +814,7 @@ int BIO_dgram_sctp_msg_waiting(BIO *b); # ifndef OPENSSL_NO_SOCK int BIO_sock_should_retry(int i); int BIO_sock_non_fatal_error(int error); +int BIO_err_is_non_fatal(unsigned int errcode); int BIO_socket_wait(int fd, int for_read, time_t max_time); # endif int BIO_wait(BIO *bio, time_t max_time, unsigned int nap_milliseconds); @@ -726,6 +837,8 @@ int BIO_hex_string(BIO *out, int indent, int width, const void *data, # ifndef OPENSSL_NO_SOCK BIO_ADDR *BIO_ADDR_new(void); +int BIO_ADDR_copy(BIO_ADDR *dst, const BIO_ADDR *src); +BIO_ADDR *BIO_ADDR_dup(const BIO_ADDR *ap); int BIO_ADDR_rawmake(BIO_ADDR *ap, int family, const void *where, size_t wherelen, unsigned short port); void BIO_ADDR_free(BIO_ADDR *); @@ -788,6 +901,7 @@ int BIO_sock_info(int sock, # define BIO_SOCK_KEEPALIVE 0x04 # define BIO_SOCK_NONBLOCK 0x08 # define BIO_SOCK_NODELAY 0x10 +# define BIO_SOCK_TFO 0x20 int BIO_socket(int domain, int socktype, int protocol, int options); int BIO_connect(int sock, const BIO_ADDR *addr, int options); @@ -805,6 +919,11 @@ BIO *BIO_new_fd(int fd, int close_flag); int BIO_new_bio_pair(BIO **bio1, size_t writebuf1, BIO **bio2, size_t writebuf2); +# ifndef OPENSSL_NO_DGRAM +int BIO_new_bio_dgram_pair(BIO **bio1, size_t writebuf1, + BIO **bio2, size_t writebuf2); +# endif + /* * If successful, returns 1 and in *bio1, *bio2 two BIO pair endpoints. * Otherwise returns 0 and sets *bio1 and *bio2 to NULL. Size 0 uses default @@ -849,38 +968,54 @@ ossl_bio__attr__((__format__(ossl_bio__printf__, 3, 0))); BIO_METHOD *BIO_meth_new(int type, const char *name); void BIO_meth_free(BIO_METHOD *biom); -int (*BIO_meth_get_write(const BIO_METHOD *biom)) (BIO *, const char *, int); -int (*BIO_meth_get_write_ex(const BIO_METHOD *biom)) (BIO *, const char *, size_t, - size_t *); int BIO_meth_set_write(BIO_METHOD *biom, int (*write) (BIO *, const char *, int)); int BIO_meth_set_write_ex(BIO_METHOD *biom, int (*bwrite) (BIO *, const char *, size_t, size_t *)); -int (*BIO_meth_get_read(const BIO_METHOD *biom)) (BIO *, char *, int); -int (*BIO_meth_get_read_ex(const BIO_METHOD *biom)) (BIO *, char *, size_t, size_t *); +int BIO_meth_set_sendmmsg(BIO_METHOD *biom, + int (*f) (BIO *, BIO_MSG *, size_t, size_t, + uint64_t, size_t *)); int BIO_meth_set_read(BIO_METHOD *biom, int (*read) (BIO *, char *, int)); int BIO_meth_set_read_ex(BIO_METHOD *biom, int (*bread) (BIO *, char *, size_t, size_t *)); -int (*BIO_meth_get_puts(const BIO_METHOD *biom)) (BIO *, const char *); +int BIO_meth_set_recvmmsg(BIO_METHOD *biom, + int (*f) (BIO *, BIO_MSG *, size_t, size_t, + uint64_t, size_t *)); int BIO_meth_set_puts(BIO_METHOD *biom, int (*puts) (BIO *, const char *)); -int (*BIO_meth_get_gets(const BIO_METHOD *biom)) (BIO *, char *, int); int BIO_meth_set_gets(BIO_METHOD *biom, int (*ossl_gets) (BIO *, char *, int)); -long (*BIO_meth_get_ctrl(const BIO_METHOD *biom)) (BIO *, int, long, void *); int BIO_meth_set_ctrl(BIO_METHOD *biom, long (*ctrl) (BIO *, int, long, void *)); -int (*BIO_meth_get_create(const BIO_METHOD *bion)) (BIO *); int BIO_meth_set_create(BIO_METHOD *biom, int (*create) (BIO *)); -int (*BIO_meth_get_destroy(const BIO_METHOD *biom)) (BIO *); int BIO_meth_set_destroy(BIO_METHOD *biom, int (*destroy) (BIO *)); -long (*BIO_meth_get_callback_ctrl(const BIO_METHOD *biom)) - (BIO *, int, BIO_info_cb *); int BIO_meth_set_callback_ctrl(BIO_METHOD *biom, long (*callback_ctrl) (BIO *, int, BIO_info_cb *)); - +# ifndef OPENSSL_NO_DEPRECATED_3_5 +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_write(const BIO_METHOD *biom)) (BIO *, const char *, + int); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_write_ex(const BIO_METHOD *biom)) (BIO *, const char *, + size_t, size_t *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_sendmmsg(const BIO_METHOD *biom))(BIO *, BIO_MSG *, + size_t, size_t, + uint64_t, size_t *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_read(const BIO_METHOD *biom)) (BIO *, char *, int); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_read_ex(const BIO_METHOD *biom)) (BIO *, char *, + size_t, size_t *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_recvmmsg(const BIO_METHOD *biom))(BIO *, BIO_MSG *, + size_t, size_t, + uint64_t, size_t *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_puts(const BIO_METHOD *biom)) (BIO *, const char *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_gets(const BIO_METHOD *biom)) (BIO *, char *, int); +OSSL_DEPRECATEDIN_3_5 long (*BIO_meth_get_ctrl(const BIO_METHOD *biom)) (BIO *, int, + long, void *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_create(const BIO_METHOD *bion)) (BIO *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_destroy(const BIO_METHOD *biom)) (BIO *); +OSSL_DEPRECATEDIN_3_5 long (*BIO_meth_get_callback_ctrl(const BIO_METHOD *biom)) (BIO *, int, + BIO_info_cb *); +# endif # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/include/openssl/cmp.h b/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/include/openssl/cmp.h index 49825570d8c303..05aed3029d594c 100644 --- a/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/include/openssl/cmp.h +++ b/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/include/openssl/cmp.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/cmp.h.in * - * Copyright 2007-2023 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2007-2024 The OpenSSL Project Authors. All Rights Reserved. * Copyright Nokia 2007-2019 * Copyright Siemens AG 2015-2019 * @@ -35,7 +35,9 @@ extern "C" { # endif -# define OSSL_CMP_PVNO 2 +# define OSSL_CMP_PVNO_2 2 +# define OSSL_CMP_PVNO_3 3 +# define OSSL_CMP_PVNO OSSL_CMP_PVNO_2 /* v2 is the default */ /*- * PKIFailureInfo ::= BIT STRING { @@ -137,7 +139,6 @@ extern "C" { # if OSSL_CMP_PKIFAILUREINFO_MAX_BIT_PATTERN > INT_MAX # error CMP_PKIFAILUREINFO_MAX bit pattern does not fit in type int # endif - typedef ASN1_BIT_STRING OSSL_CMP_PKIFAILUREINFO; # define OSSL_CMP_CTX_FAILINFO_badAlg (1 << 0) @@ -203,8 +204,8 @@ typedef ASN1_BIT_STRING OSSL_CMP_PKIFAILUREINFO; # define OSSL_CMP_PKISTATUS_revocationWarning 4 # define OSSL_CMP_PKISTATUS_revocationNotification 5 # define OSSL_CMP_PKISTATUS_keyUpdateWarning 6 - typedef ASN1_INTEGER OSSL_CMP_PKISTATUS; + DECLARE_ASN1_ITEM(OSSL_CMP_PKISTATUS) # define OSSL_CMP_CERTORENCCERT_CERTIFICATE 0 @@ -274,6 +275,46 @@ SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CMP_ITAV, OSSL_CMP_ITAV, OSSL_CMP_ITAV) #define sk_OSSL_CMP_ITAV_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_CMP_ITAV) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_CMP_ITAV_sk_type(sk), ossl_check_OSSL_CMP_ITAV_copyfunc_type(copyfunc), ossl_check_OSSL_CMP_ITAV_freefunc_type(freefunc))) #define sk_OSSL_CMP_ITAV_set_cmp_func(sk, cmp) ((sk_OSSL_CMP_ITAV_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CMP_ITAV_sk_type(sk), ossl_check_OSSL_CMP_ITAV_compfunc_type(cmp))) + +typedef struct ossl_cmp_crlstatus_st OSSL_CMP_CRLSTATUS; +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CMP_CRLSTATUS, OSSL_CMP_CRLSTATUS, OSSL_CMP_CRLSTATUS) +#define sk_OSSL_CMP_CRLSTATUS_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_value(sk, idx) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_value(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk), (idx))) +#define sk_OSSL_CMP_CRLSTATUS_new(cmp) ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_new(ossl_check_OSSL_CMP_CRLSTATUS_compfunc_type(cmp))) +#define sk_OSSL_CMP_CRLSTATUS_new_null() ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_new_null()) +#define sk_OSSL_CMP_CRLSTATUS_new_reserve(cmp, n) ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_CMP_CRLSTATUS_compfunc_type(cmp), (n))) +#define sk_OSSL_CMP_CRLSTATUS_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), (n)) +#define sk_OSSL_CMP_CRLSTATUS_free(sk) OPENSSL_sk_free(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_delete(sk, i) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_delete(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), (i))) +#define sk_OSSL_CMP_CRLSTATUS_delete_ptr(sk, ptr) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr))) +#define sk_OSSL_CMP_CRLSTATUS_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr)) +#define sk_OSSL_CMP_CRLSTATUS_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr)) +#define sk_OSSL_CMP_CRLSTATUS_pop(sk) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_pop(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk))) +#define sk_OSSL_CMP_CRLSTATUS_shift(sk) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_shift(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk))) +#define sk_OSSL_CMP_CRLSTATUS_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk),ossl_check_OSSL_CMP_CRLSTATUS_freefunc_type(freefunc)) +#define sk_OSSL_CMP_CRLSTATUS_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr), (idx)) +#define sk_OSSL_CMP_CRLSTATUS_set(sk, idx, ptr) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_set(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), (idx), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr))) +#define sk_OSSL_CMP_CRLSTATUS_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr)) +#define sk_OSSL_CMP_CRLSTATUS_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr)) +#define sk_OSSL_CMP_CRLSTATUS_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr), pnum) +#define sk_OSSL_CMP_CRLSTATUS_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_dup(sk) ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_dup(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk))) +#define sk_OSSL_CMP_CRLSTATUS_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_copyfunc_type(copyfunc), ossl_check_OSSL_CMP_CRLSTATUS_freefunc_type(freefunc))) +#define sk_OSSL_CMP_CRLSTATUS_set_cmp_func(sk, cmp) ((sk_OSSL_CMP_CRLSTATUS_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_compfunc_type(cmp))) + + +typedef OSSL_CRMF_ATTRIBUTETYPEANDVALUE OSSL_CMP_ATAV; +# define OSSL_CMP_ATAV_free OSSL_CRMF_ATTRIBUTETYPEANDVALUE_free +typedef STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) OSSL_CMP_ATAVS; +DECLARE_ASN1_FUNCTIONS(OSSL_CMP_ATAVS) +# define stack_st_OSSL_CMP_ATAV stack_st_OSSL_CRMF_ATTRIBUTETYPEANDVALUE +# define sk_OSSL_CMP_ATAV_num sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_num +# define sk_OSSL_CMP_ATAV_value sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_value +# define sk_OSSL_CMP_ATAV_push sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_push +# define sk_OSSL_CMP_ATAV_pop_free sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_pop_free + typedef struct ossl_cmp_revrepcontent_st OSSL_CMP_REVREPCONTENT; typedef struct ossl_cmp_pkisi_st OSSL_CMP_PKISI; DECLARE_ASN1_FUNCTIONS(OSSL_CMP_PKISI) @@ -375,21 +416,75 @@ void OSSL_CMP_ITAV_set0(OSSL_CMP_ITAV *itav, ASN1_OBJECT *type, ASN1_TYPE *value); ASN1_OBJECT *OSSL_CMP_ITAV_get0_type(const OSSL_CMP_ITAV *itav); ASN1_TYPE *OSSL_CMP_ITAV_get0_value(const OSSL_CMP_ITAV *itav); -int OSSL_CMP_ITAV_push0_stack_item(STACK_OF(OSSL_CMP_ITAV) **itav_sk_p, +int OSSL_CMP_ITAV_push0_stack_item(STACK_OF(OSSL_CMP_ITAV) **sk_p, OSSL_CMP_ITAV *itav); void OSSL_CMP_ITAV_free(OSSL_CMP_ITAV *itav); + +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new0_certProfile(STACK_OF(ASN1_UTF8STRING) + *certProfile); +int OSSL_CMP_ITAV_get0_certProfile(const OSSL_CMP_ITAV *itav, + STACK_OF(ASN1_UTF8STRING) **out); +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new_caCerts(const STACK_OF(X509) *caCerts); +int OSSL_CMP_ITAV_get0_caCerts(const OSSL_CMP_ITAV *itav, STACK_OF(X509) **out); + +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new_rootCaCert(const X509 *rootCaCert); +int OSSL_CMP_ITAV_get0_rootCaCert(const OSSL_CMP_ITAV *itav, X509 **out); +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new_rootCaKeyUpdate(const X509 *newWithNew, + const X509 *newWithOld, + const X509 *oldWithNew); +int OSSL_CMP_ITAV_get0_rootCaKeyUpdate(const OSSL_CMP_ITAV *itav, + X509 **newWithNew, + X509 **newWithOld, + X509 **oldWithNew); + +OSSL_CMP_CRLSTATUS *OSSL_CMP_CRLSTATUS_create(const X509_CRL *crl, + const X509 *cert, int only_DN); +OSSL_CMP_CRLSTATUS *OSSL_CMP_CRLSTATUS_new1(const DIST_POINT_NAME *dpn, + const GENERAL_NAMES *issuer, + const ASN1_TIME *thisUpdate); +int OSSL_CMP_CRLSTATUS_get0(const OSSL_CMP_CRLSTATUS *crlstatus, + DIST_POINT_NAME **dpn, GENERAL_NAMES **issuer, + ASN1_TIME **thisUpdate); +void OSSL_CMP_CRLSTATUS_free(OSSL_CMP_CRLSTATUS *crlstatus); +OSSL_CMP_ITAV +*OSSL_CMP_ITAV_new0_crlStatusList(STACK_OF(OSSL_CMP_CRLSTATUS) *crlStatusList); +int OSSL_CMP_ITAV_get0_crlStatusList(const OSSL_CMP_ITAV *itav, + STACK_OF(OSSL_CMP_CRLSTATUS) **out); +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new_crls(const X509_CRL *crls); +int OSSL_CMP_ITAV_get0_crls(const OSSL_CMP_ITAV *it, STACK_OF(X509_CRL) **out); +OSSL_CMP_ITAV +*OSSL_CMP_ITAV_new0_certReqTemplate(OSSL_CRMF_CERTTEMPLATE *certTemplate, + OSSL_CMP_ATAVS *keySpec); +int OSSL_CMP_ITAV_get1_certReqTemplate(const OSSL_CMP_ITAV *itav, + OSSL_CRMF_CERTTEMPLATE **certTemplate, + OSSL_CMP_ATAVS **keySpec); + +OSSL_CMP_ATAV *OSSL_CMP_ATAV_create(ASN1_OBJECT *type, ASN1_TYPE *value); +void OSSL_CMP_ATAV_set0(OSSL_CMP_ATAV *itav, ASN1_OBJECT *type, + ASN1_TYPE *value); +ASN1_OBJECT *OSSL_CMP_ATAV_get0_type(const OSSL_CMP_ATAV *itav); +ASN1_TYPE *OSSL_CMP_ATAV_get0_value(const OSSL_CMP_ATAV *itav); +OSSL_CMP_ATAV *OSSL_CMP_ATAV_new_algId(const X509_ALGOR *alg); +X509_ALGOR *OSSL_CMP_ATAV_get0_algId(const OSSL_CMP_ATAV *atav); +OSSL_CMP_ATAV *OSSL_CMP_ATAV_new_rsaKeyLen(int len); +int OSSL_CMP_ATAV_get_rsaKeyLen(const OSSL_CMP_ATAV *atav); +int OSSL_CMP_ATAV_push1(OSSL_CMP_ATAVS **sk_p, const OSSL_CMP_ATAV *atav); + void OSSL_CMP_MSG_free(OSSL_CMP_MSG *msg); /* from cmp_ctx.c */ OSSL_CMP_CTX *OSSL_CMP_CTX_new(OSSL_LIB_CTX *libctx, const char *propq); void OSSL_CMP_CTX_free(OSSL_CMP_CTX *ctx); int OSSL_CMP_CTX_reinit(OSSL_CMP_CTX *ctx); +OSSL_LIB_CTX *OSSL_CMP_CTX_get0_libctx(const OSSL_CMP_CTX *ctx); +const char *OSSL_CMP_CTX_get0_propq(const OSSL_CMP_CTX *ctx); /* CMP general options: */ # define OSSL_CMP_OPT_LOG_VERBOSITY 0 /* CMP transfer options: */ -# define OSSL_CMP_OPT_KEEP_ALIVE 10 -# define OSSL_CMP_OPT_MSG_TIMEOUT 11 +# define OSSL_CMP_OPT_KEEP_ALIVE 10 +# define OSSL_CMP_OPT_MSG_TIMEOUT 11 # define OSSL_CMP_OPT_TOTAL_TIMEOUT 12 +# define OSSL_CMP_OPT_USE_TLS 13 /* CMP request options: */ # define OSSL_CMP_OPT_VALIDITY_DAYS 20 # define OSSL_CMP_OPT_SUBJECTALTNAME_NODEFAULT 21 @@ -407,6 +502,7 @@ int OSSL_CMP_CTX_reinit(OSSL_CMP_CTX *ctx); # define OSSL_CMP_OPT_DIGEST_ALGNID 34 # define OSSL_CMP_OPT_IGNORE_KEYUSAGE 35 # define OSSL_CMP_OPT_PERMIT_TA_IN_EXTRACERTS_FOR_IR 36 +# define OSSL_CMP_OPT_NO_CACHE_EXTRACERTS 37 int OSSL_CMP_CTX_set_option(OSSL_CMP_CTX *ctx, int opt, int val); int OSSL_CMP_CTX_get_option(const OSSL_CMP_CTX *ctx, int opt); /* CMP-specific callback for logging and outputting the error queue: */ @@ -420,9 +516,11 @@ int OSSL_CMP_CTX_set1_server(OSSL_CMP_CTX *ctx, const char *address); int OSSL_CMP_CTX_set_serverPort(OSSL_CMP_CTX *ctx, int port); int OSSL_CMP_CTX_set1_proxy(OSSL_CMP_CTX *ctx, const char *name); int OSSL_CMP_CTX_set1_no_proxy(OSSL_CMP_CTX *ctx, const char *names); +# ifndef OPENSSL_NO_HTTP int OSSL_CMP_CTX_set_http_cb(OSSL_CMP_CTX *ctx, OSSL_HTTP_bio_cb_t cb); int OSSL_CMP_CTX_set_http_cb_arg(OSSL_CMP_CTX *ctx, void *arg); void *OSSL_CMP_CTX_get_http_cb_arg(const OSSL_CMP_CTX *ctx); +# endif typedef OSSL_CMP_MSG *(*OSSL_CMP_transfer_cb_t) (OSSL_CMP_CTX *ctx, const OSSL_CMP_MSG *req); int OSSL_CMP_CTX_set_transfer_cb(OSSL_CMP_CTX *ctx, OSSL_CMP_transfer_cb_t cb); @@ -432,7 +530,9 @@ void *OSSL_CMP_CTX_get_transfer_cb_arg(const OSSL_CMP_CTX *ctx); int OSSL_CMP_CTX_set1_srvCert(OSSL_CMP_CTX *ctx, X509 *cert); int OSSL_CMP_CTX_set1_expected_sender(OSSL_CMP_CTX *ctx, const X509_NAME *name); int OSSL_CMP_CTX_set0_trustedStore(OSSL_CMP_CTX *ctx, X509_STORE *store); +# define OSSL_CMP_CTX_set0_trusted OSSL_CMP_CTX_set0_trustedStore X509_STORE *OSSL_CMP_CTX_get0_trustedStore(const OSSL_CMP_CTX *ctx); +# define OSSL_CMP_CTX_get0_trusted OSSL_CMP_CTX_get0_trustedStore int OSSL_CMP_CTX_set1_untrusted(OSSL_CMP_CTX *ctx, STACK_OF(X509) *certs); STACK_OF(X509) *OSSL_CMP_CTX_get0_untrusted(const OSSL_CMP_CTX *ctx); /* client authentication: */ @@ -448,12 +548,15 @@ int OSSL_CMP_CTX_set1_secretValue(OSSL_CMP_CTX *ctx, int OSSL_CMP_CTX_set1_recipient(OSSL_CMP_CTX *ctx, const X509_NAME *name); int OSSL_CMP_CTX_push0_geninfo_ITAV(OSSL_CMP_CTX *ctx, OSSL_CMP_ITAV *itav); int OSSL_CMP_CTX_reset_geninfo_ITAVs(OSSL_CMP_CTX *ctx); +STACK_OF(OSSL_CMP_ITAV) + *OSSL_CMP_CTX_get0_geninfo_ITAVs(const OSSL_CMP_CTX *ctx); int OSSL_CMP_CTX_set1_extraCertsOut(OSSL_CMP_CTX *ctx, STACK_OF(X509) *extraCertsOut); /* certificate template: */ int OSSL_CMP_CTX_set0_newPkey(OSSL_CMP_CTX *ctx, int priv, EVP_PKEY *pkey); EVP_PKEY *OSSL_CMP_CTX_get0_newPkey(const OSSL_CMP_CTX *ctx, int priv); int OSSL_CMP_CTX_set1_issuer(OSSL_CMP_CTX *ctx, const X509_NAME *name); +int OSSL_CMP_CTX_set1_serialNumber(OSSL_CMP_CTX *ctx, const ASN1_INTEGER *sn); int OSSL_CMP_CTX_set1_subjectName(OSSL_CMP_CTX *ctx, const X509_NAME *name); int OSSL_CMP_CTX_push1_subjectAltName(OSSL_CMP_CTX *ctx, const GENERAL_NAME *name); @@ -477,6 +580,7 @@ int OSSL_CMP_CTX_get_status(const OSSL_CMP_CTX *ctx); OSSL_CMP_PKIFREETEXT *OSSL_CMP_CTX_get0_statusString(const OSSL_CMP_CTX *ctx); int OSSL_CMP_CTX_get_failInfoCode(const OSSL_CMP_CTX *ctx); # define OSSL_CMP_PKISI_BUFLEN 1024 +X509 *OSSL_CMP_CTX_get0_validatedSrvCert(const OSSL_CMP_CTX *ctx); X509 *OSSL_CMP_CTX_get0_newCert(const OSSL_CMP_CTX *ctx); STACK_OF(X509) *OSSL_CMP_CTX_get1_newChain(const OSSL_CMP_CTX *ctx); STACK_OF(X509) *OSSL_CMP_CTX_get1_caPubs(const OSSL_CMP_CTX *ctx); @@ -498,10 +602,13 @@ OSSL_CMP_STATUSINFO_new(int status, int fail_info, const char *text); ASN1_OCTET_STRING *OSSL_CMP_HDR_get0_transactionID(const OSSL_CMP_PKIHEADER *hdr); ASN1_OCTET_STRING *OSSL_CMP_HDR_get0_recipNonce(const OSSL_CMP_PKIHEADER *hdr); +STACK_OF(OSSL_CMP_ITAV) + *OSSL_CMP_HDR_get0_geninfo_ITAVs(const OSSL_CMP_PKIHEADER *hdr); /* from cmp_msg.c */ OSSL_CMP_PKIHEADER *OSSL_CMP_MSG_get0_header(const OSSL_CMP_MSG *msg); int OSSL_CMP_MSG_get_bodytype(const OSSL_CMP_MSG *msg); +X509_PUBKEY *OSSL_CMP_MSG_get0_certreq_publickey(const OSSL_CMP_MSG *msg); int OSSL_CMP_MSG_update_transactionID(OSSL_CMP_CTX *ctx, OSSL_CMP_MSG *msg); int OSSL_CMP_MSG_update_recipNonce(OSSL_CMP_CTX *ctx, OSSL_CMP_MSG *msg); OSSL_CRMF_MSG *OSSL_CMP_CTX_setup_CRM(OSSL_CMP_CTX *ctx, int for_KUR, int rid); @@ -517,8 +624,10 @@ int OSSL_CMP_validate_cert_path(const OSSL_CMP_CTX *ctx, X509_STORE *trusted_store, X509 *cert); /* from cmp_http.c */ +# ifndef OPENSSL_NO_HTTP OSSL_CMP_MSG *OSSL_CMP_MSG_http_perform(OSSL_CMP_CTX *ctx, const OSSL_CMP_MSG *req); +# endif /* from cmp_server.c */ typedef struct ossl_cmp_srv_ctx_st OSSL_CMP_SRV_CTX; @@ -561,6 +670,13 @@ int OSSL_CMP_SRV_CTX_init(OSSL_CMP_SRV_CTX *srv_ctx, void *custom_ctx, OSSL_CMP_SRV_error_cb_t process_error, OSSL_CMP_SRV_certConf_cb_t process_certConf, OSSL_CMP_SRV_pollReq_cb_t process_pollReq); +typedef int (*OSSL_CMP_SRV_delayed_delivery_cb_t)(OSSL_CMP_SRV_CTX *srv_ctx, + const OSSL_CMP_MSG *req); +typedef int (*OSSL_CMP_SRV_clean_transaction_cb_t)(OSSL_CMP_SRV_CTX *srv_ctx, + const ASN1_OCTET_STRING *id); +int OSSL_CMP_SRV_CTX_init_trans(OSSL_CMP_SRV_CTX *srv_ctx, + OSSL_CMP_SRV_delayed_delivery_cb_t delay, + OSSL_CMP_SRV_clean_transaction_cb_t clean); OSSL_CMP_CTX *OSSL_CMP_SRV_CTX_get0_cmp_ctx(const OSSL_CMP_SRV_CTX *srv_ctx); void *OSSL_CMP_SRV_CTX_get0_custom_ctx(const OSSL_CMP_SRV_CTX *srv_ctx); int OSSL_CMP_SRV_CTX_set_send_unprotected_errors(OSSL_CMP_SRV_CTX *srv_ctx, @@ -577,6 +693,8 @@ X509 *OSSL_CMP_exec_certreq(OSSL_CMP_CTX *ctx, int req_type, # define OSSL_CMP_CR 2 # define OSSL_CMP_P10CR 4 # define OSSL_CMP_KUR 7 +# define OSSL_CMP_GENM 21 +# define OSSL_CMP_ERROR 23 # define OSSL_CMP_exec_IR_ses(ctx) \ OSSL_CMP_exec_certreq(ctx, OSSL_CMP_IR, NULL) # define OSSL_CMP_exec_CR_ses(ctx) \ @@ -590,6 +708,18 @@ int OSSL_CMP_try_certreq(OSSL_CMP_CTX *ctx, int req_type, int OSSL_CMP_exec_RR_ses(OSSL_CMP_CTX *ctx); STACK_OF(OSSL_CMP_ITAV) *OSSL_CMP_exec_GENM_ses(OSSL_CMP_CTX *ctx); +/* from cmp_genm.c */ +int OSSL_CMP_get1_caCerts(OSSL_CMP_CTX *ctx, STACK_OF(X509) **out); +int OSSL_CMP_get1_rootCaKeyUpdate(OSSL_CMP_CTX *ctx, + const X509 *oldWithOld, X509 **newWithNew, + X509 **newWithOld, X509 **oldWithNew); +int OSSL_CMP_get1_crlUpdate(OSSL_CMP_CTX *ctx, const X509 *crlcert, + const X509_CRL *last_crl, + X509_CRL **crl); +int OSSL_CMP_get1_certReqTemplate(OSSL_CMP_CTX *ctx, + OSSL_CRMF_CERTTEMPLATE **certTemplate, + OSSL_CMP_ATAVS **keySpec); + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/include/openssl/cms.h b/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/include/openssl/cms.h index 3b453e6a2187a2..63afab563557b0 100644 --- a/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/include/openssl/cms.h +++ b/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/include/openssl/cms.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/cms.h.in * - * Copyright 2008-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2008-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -31,8 +31,10 @@ extern "C" { # endif +typedef struct CMS_EnvelopedData_st CMS_EnvelopedData; typedef struct CMS_ContentInfo_st CMS_ContentInfo; typedef struct CMS_SignerInfo_st CMS_SignerInfo; +typedef struct CMS_SignedData_st CMS_SignedData; typedef struct CMS_CertificateChoices CMS_CertificateChoices; typedef struct CMS_RevocationInfoChoice_st CMS_RevocationInfoChoice; typedef struct CMS_RecipientInfo_st CMS_RecipientInfo; @@ -147,10 +149,14 @@ SKM_DEFINE_STACK_OF_INTERNAL(CMS_RevocationInfoChoice, CMS_RevocationInfoChoice, #define sk_CMS_RevocationInfoChoice_set_cmp_func(sk, cmp) ((sk_CMS_RevocationInfoChoice_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_CMS_RevocationInfoChoice_sk_type(sk), ossl_check_CMS_RevocationInfoChoice_compfunc_type(cmp))) +DECLARE_ASN1_ITEM(CMS_EnvelopedData) +DECLARE_ASN1_ALLOC_FUNCTIONS(CMS_SignedData) DECLARE_ASN1_FUNCTIONS(CMS_ContentInfo) DECLARE_ASN1_FUNCTIONS(CMS_ReceiptRequest) DECLARE_ASN1_PRINT_FUNCTION(CMS_ContentInfo) +DECLARE_ASN1_DUP_FUNCTION(CMS_EnvelopedData) + CMS_ContentInfo *CMS_ContentInfo_new_ex(OSSL_LIB_CTX *libctx, const char *propq); # define CMS_SIGNERINFO_ISSUER_SERIAL 0 @@ -190,6 +196,7 @@ CMS_ContentInfo *CMS_ContentInfo_new_ex(OSSL_LIB_CTX *libctx, const char *propq) # define CMS_ASCIICRLF 0x80000 # define CMS_CADES 0x100000 # define CMS_USE_ORIGINATOR_KEYID 0x200000 +# define CMS_NO_SIGNING_TIME 0x400000 const ASN1_OBJECT *CMS_get0_type(const CMS_ContentInfo *cms); @@ -217,13 +224,16 @@ int SMIME_write_CMS(BIO *bio, CMS_ContentInfo *cms, BIO *data, int flags); int CMS_final(CMS_ContentInfo *cms, BIO *data, BIO *dcont, unsigned int flags); +int CMS_final_digest(CMS_ContentInfo *cms, + const unsigned char *md, unsigned int mdlen, BIO *dcont, + unsigned int flags); CMS_ContentInfo *CMS_sign(X509 *signcert, EVP_PKEY *pkey, STACK_OF(X509) *certs, BIO *data, unsigned int flags); CMS_ContentInfo *CMS_sign_ex(X509 *signcert, EVP_PKEY *pkey, STACK_OF(X509) *certs, BIO *data, - unsigned int flags, OSSL_LIB_CTX *ctx, + unsigned int flags, OSSL_LIB_CTX *libctx, const char *propq); CMS_ContentInfo *CMS_sign_receipt(CMS_SignerInfo *si, @@ -233,27 +243,26 @@ CMS_ContentInfo *CMS_sign_receipt(CMS_SignerInfo *si, int CMS_data(CMS_ContentInfo *cms, BIO *out, unsigned int flags); CMS_ContentInfo *CMS_data_create(BIO *in, unsigned int flags); CMS_ContentInfo *CMS_data_create_ex(BIO *in, unsigned int flags, - OSSL_LIB_CTX *ctx, const char *propq); + OSSL_LIB_CTX *libctx, const char *propq); int CMS_digest_verify(CMS_ContentInfo *cms, BIO *dcont, BIO *out, unsigned int flags); CMS_ContentInfo *CMS_digest_create(BIO *in, const EVP_MD *md, unsigned int flags); CMS_ContentInfo *CMS_digest_create_ex(BIO *in, const EVP_MD *md, - unsigned int flags, OSSL_LIB_CTX *ctx, + unsigned int flags, OSSL_LIB_CTX *libctx, const char *propq); int CMS_EncryptedData_decrypt(CMS_ContentInfo *cms, const unsigned char *key, size_t keylen, BIO *dcont, BIO *out, unsigned int flags); - CMS_ContentInfo *CMS_EncryptedData_encrypt(BIO *in, const EVP_CIPHER *cipher, const unsigned char *key, size_t keylen, unsigned int flags); CMS_ContentInfo *CMS_EncryptedData_encrypt_ex(BIO *in, const EVP_CIPHER *cipher, const unsigned char *key, size_t keylen, unsigned int flags, - OSSL_LIB_CTX *ctx, + OSSL_LIB_CTX *libctx, const char *propq); int CMS_EncryptedData_set1_key(CMS_ContentInfo *cms, const EVP_CIPHER *ciph, @@ -272,7 +281,7 @@ CMS_ContentInfo *CMS_encrypt(STACK_OF(X509) *certs, BIO *in, const EVP_CIPHER *cipher, unsigned int flags); CMS_ContentInfo *CMS_encrypt_ex(STACK_OF(X509) *certs, BIO *in, const EVP_CIPHER *cipher, unsigned int flags, - OSSL_LIB_CTX *ctx, const char *propq); + OSSL_LIB_CTX *libctx, const char *propq); int CMS_decrypt(CMS_ContentInfo *cms, EVP_PKEY *pkey, X509 *cert, BIO *dcont, BIO *out, unsigned int flags); @@ -291,12 +300,16 @@ int CMS_RecipientInfo_type(CMS_RecipientInfo *ri); EVP_PKEY_CTX *CMS_RecipientInfo_get0_pkey_ctx(CMS_RecipientInfo *ri); CMS_ContentInfo *CMS_AuthEnvelopedData_create(const EVP_CIPHER *cipher); CMS_ContentInfo * -CMS_AuthEnvelopedData_create_ex(const EVP_CIPHER *cipher, OSSL_LIB_CTX *ctx, +CMS_AuthEnvelopedData_create_ex(const EVP_CIPHER *cipher, OSSL_LIB_CTX *libctx, const char *propq); CMS_ContentInfo *CMS_EnvelopedData_create(const EVP_CIPHER *cipher); CMS_ContentInfo *CMS_EnvelopedData_create_ex(const EVP_CIPHER *cipher, - OSSL_LIB_CTX *ctx, + OSSL_LIB_CTX *libctx, const char *propq); +BIO *CMS_EnvelopedData_decrypt(CMS_EnvelopedData *env, BIO *detached_data, + EVP_PKEY *pkey, X509 *cert, + ASN1_OCTET_STRING *secret, unsigned int flags, + OSSL_LIB_CTX *libctx, const char *propq); CMS_RecipientInfo *CMS_add1_recipient_cert(CMS_ContentInfo *cms, X509 *recip, unsigned int flags); @@ -385,6 +398,11 @@ ASN1_OCTET_STRING *CMS_SignerInfo_get0_signature(CMS_SignerInfo *si); int CMS_SignerInfo_sign(CMS_SignerInfo *si); int CMS_SignerInfo_verify(CMS_SignerInfo *si); int CMS_SignerInfo_verify_content(CMS_SignerInfo *si, BIO *chain); +BIO *CMS_SignedData_verify(CMS_SignedData *sd, BIO *detached_data, + STACK_OF(X509) *scerts, X509_STORE *store, + STACK_OF(X509) *extra, STACK_OF(X509_CRL) *crls, + unsigned int flags, + OSSL_LIB_CTX *libctx, const char *propq); int CMS_add_smimecap(CMS_SignerInfo *si, STACK_OF(X509_ALGOR) *algs); int CMS_add_simple_smimecap(STACK_OF(X509_ALGOR) **algs, @@ -441,7 +459,7 @@ CMS_ReceiptRequest *CMS_ReceiptRequest_create0_ex( unsigned char *id, int idlen, int allorfirst, STACK_OF(GENERAL_NAMES) *receiptList, STACK_OF(GENERAL_NAMES) *receiptsTo, - OSSL_LIB_CTX *ctx); + OSSL_LIB_CTX *libctx); int CMS_add1_ReceiptRequest(CMS_SignerInfo *si, CMS_ReceiptRequest *rr); void CMS_ReceiptRequest_get0_values(CMS_ReceiptRequest *rr, diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/include/openssl/comp.h b/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/include/openssl/comp.h new file mode 100644 index 00000000000000..90e39511fe8d28 --- /dev/null +++ b/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/include/openssl/comp.h @@ -0,0 +1,98 @@ +/* + * Copyright 2015-2024 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + + +#ifndef OPENSSL_COMP_H +# define OPENSSL_COMP_H +# pragma once + +# include +# ifndef OPENSSL_NO_DEPRECATED_3_0 +# define HEADER_COMP_H +# endif + +# include + +# include +# include +# ifdef __cplusplus +extern "C" { +# endif + + + +# ifndef OPENSSL_NO_COMP + +COMP_CTX *COMP_CTX_new(COMP_METHOD *meth); +const COMP_METHOD *COMP_CTX_get_method(const COMP_CTX *ctx); +int COMP_CTX_get_type(const COMP_CTX* comp); +int COMP_get_type(const COMP_METHOD *meth); +const char *COMP_get_name(const COMP_METHOD *meth); +void COMP_CTX_free(COMP_CTX *ctx); + +int COMP_compress_block(COMP_CTX *ctx, unsigned char *out, int olen, + unsigned char *in, int ilen); +int COMP_expand_block(COMP_CTX *ctx, unsigned char *out, int olen, + unsigned char *in, int ilen); + +COMP_METHOD *COMP_zlib(void); +COMP_METHOD *COMP_zlib_oneshot(void); +COMP_METHOD *COMP_brotli(void); +COMP_METHOD *COMP_brotli_oneshot(void); +COMP_METHOD *COMP_zstd(void); +COMP_METHOD *COMP_zstd_oneshot(void); + +# ifndef OPENSSL_NO_DEPRECATED_1_1_0 +# define COMP_zlib_cleanup() while(0) continue +# endif + +# ifdef OPENSSL_BIO_H +const BIO_METHOD *BIO_f_zlib(void); +const BIO_METHOD *BIO_f_brotli(void); +const BIO_METHOD *BIO_f_zstd(void); +# endif + +# endif + +typedef struct ssl_comp_st SSL_COMP; + +SKM_DEFINE_STACK_OF_INTERNAL(SSL_COMP, SSL_COMP, SSL_COMP) +#define sk_SSL_COMP_num(sk) OPENSSL_sk_num(ossl_check_const_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_value(sk, idx) ((SSL_COMP *)OPENSSL_sk_value(ossl_check_const_SSL_COMP_sk_type(sk), (idx))) +#define sk_SSL_COMP_new(cmp) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new(ossl_check_SSL_COMP_compfunc_type(cmp))) +#define sk_SSL_COMP_new_null() ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new_null()) +#define sk_SSL_COMP_new_reserve(cmp, n) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new_reserve(ossl_check_SSL_COMP_compfunc_type(cmp), (n))) +#define sk_SSL_COMP_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_SSL_COMP_sk_type(sk), (n)) +#define sk_SSL_COMP_free(sk) OPENSSL_sk_free(ossl_check_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_zero(sk) OPENSSL_sk_zero(ossl_check_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_delete(sk, i) ((SSL_COMP *)OPENSSL_sk_delete(ossl_check_SSL_COMP_sk_type(sk), (i))) +#define sk_SSL_COMP_delete_ptr(sk, ptr) ((SSL_COMP *)OPENSSL_sk_delete_ptr(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr))) +#define sk_SSL_COMP_push(sk, ptr) OPENSSL_sk_push(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) +#define sk_SSL_COMP_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) +#define sk_SSL_COMP_pop(sk) ((SSL_COMP *)OPENSSL_sk_pop(ossl_check_SSL_COMP_sk_type(sk))) +#define sk_SSL_COMP_shift(sk) ((SSL_COMP *)OPENSSL_sk_shift(ossl_check_SSL_COMP_sk_type(sk))) +#define sk_SSL_COMP_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_SSL_COMP_sk_type(sk),ossl_check_SSL_COMP_freefunc_type(freefunc)) +#define sk_SSL_COMP_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr), (idx)) +#define sk_SSL_COMP_set(sk, idx, ptr) ((SSL_COMP *)OPENSSL_sk_set(ossl_check_SSL_COMP_sk_type(sk), (idx), ossl_check_SSL_COMP_type(ptr))) +#define sk_SSL_COMP_find(sk, ptr) OPENSSL_sk_find(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) +#define sk_SSL_COMP_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) +#define sk_SSL_COMP_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr), pnum) +#define sk_SSL_COMP_sort(sk) OPENSSL_sk_sort(ossl_check_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_dup(sk) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_dup(ossl_check_const_SSL_COMP_sk_type(sk))) +#define sk_SSL_COMP_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_deep_copy(ossl_check_const_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_copyfunc_type(copyfunc), ossl_check_SSL_COMP_freefunc_type(freefunc))) +#define sk_SSL_COMP_set_cmp_func(sk, cmp) ((sk_SSL_COMP_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_compfunc_type(cmp))) + + + +# ifdef __cplusplus +} +# endif +#endif diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/include/openssl/conf.h b/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/include/openssl/conf.h index 44989929f6c84a..38576290bf641b 100644 --- a/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/include/openssl/conf.h +++ b/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/include/openssl/conf.h @@ -27,6 +27,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -65,7 +68,7 @@ SKM_DEFINE_STACK_OF_INTERNAL(CONF_VALUE, CONF_VALUE, CONF_VALUE) #define sk_CONF_VALUE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(CONF_VALUE) *)OPENSSL_sk_deep_copy(ossl_check_const_CONF_VALUE_sk_type(sk), ossl_check_CONF_VALUE_copyfunc_type(copyfunc), ossl_check_CONF_VALUE_freefunc_type(freefunc))) #define sk_CONF_VALUE_set_cmp_func(sk, cmp) ((sk_CONF_VALUE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_CONF_VALUE_sk_type(sk), ossl_check_CONF_VALUE_compfunc_type(cmp))) DEFINE_LHASH_OF_INTERNAL(CONF_VALUE); -#define lh_CONF_VALUE_new(hfn, cmp) ((LHASH_OF(CONF_VALUE) *)OPENSSL_LH_new(ossl_check_CONF_VALUE_lh_hashfunc_type(hfn), ossl_check_CONF_VALUE_lh_compfunc_type(cmp))) +#define lh_CONF_VALUE_new(hfn, cmp) ((LHASH_OF(CONF_VALUE) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new(ossl_check_CONF_VALUE_lh_hashfunc_type(hfn), ossl_check_CONF_VALUE_lh_compfunc_type(cmp)), lh_CONF_VALUE_hash_thunk, lh_CONF_VALUE_comp_thunk, lh_CONF_VALUE_doall_thunk, lh_CONF_VALUE_doall_arg_thunk)) #define lh_CONF_VALUE_free(lh) OPENSSL_LH_free(ossl_check_CONF_VALUE_lh_type(lh)) #define lh_CONF_VALUE_flush(lh) OPENSSL_LH_flush(ossl_check_CONF_VALUE_lh_type(lh)) #define lh_CONF_VALUE_insert(lh, ptr) ((CONF_VALUE *)OPENSSL_LH_insert(ossl_check_CONF_VALUE_lh_type(lh), ossl_check_CONF_VALUE_lh_plain_type(ptr))) diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/include/openssl/configuration.h b/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/include/openssl/configuration.h index 0834be2fa3df77..b0ae5de064cedb 100644 --- a/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/include/openssl/configuration.h +++ b/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/include/openssl/configuration.h @@ -30,7 +30,7 @@ extern "C" { # ifndef OPENSSL_SYS_MACOSX # define OPENSSL_SYS_MACOSX 1 # endif -# define OPENSSL_CONFIGURED_API 30000 +# define OPENSSL_CONFIGURED_API 30500 # ifndef OPENSSL_RAND_SEED_OS # define OPENSSL_RAND_SEED_OS # endif @@ -43,6 +43,12 @@ extern "C" { # ifndef OPENSSL_NO_ASAN # define OPENSSL_NO_ASAN # endif +# ifndef OPENSSL_NO_BROTLI +# define OPENSSL_NO_BROTLI +# endif +# ifndef OPENSSL_NO_BROTLI_DYNAMIC +# define OPENSSL_NO_BROTLI_DYNAMIC +# endif # ifndef OPENSSL_NO_COMP # define OPENSSL_NO_COMP # endif @@ -52,6 +58,9 @@ extern "C" { # ifndef OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE # define OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE # endif +# ifndef OPENSSL_NO_DEMOS +# define OPENSSL_NO_DEMOS +# endif # ifndef OPENSSL_NO_DEVCRYPTOENG # define OPENSSL_NO_DEVCRYPTOENG # endif @@ -64,12 +73,24 @@ extern "C" { # ifndef OPENSSL_NO_EXTERNAL_TESTS # define OPENSSL_NO_EXTERNAL_TESTS # endif +# ifndef OPENSSL_NO_FIPS_JITTER +# define OPENSSL_NO_FIPS_JITTER +# endif # ifndef OPENSSL_NO_FUZZ_AFL # define OPENSSL_NO_FUZZ_AFL # endif # ifndef OPENSSL_NO_FUZZ_LIBFUZZER # define OPENSSL_NO_FUZZ_LIBFUZZER # endif +# ifndef OPENSSL_NO_H3DEMO +# define OPENSSL_NO_H3DEMO +# endif +# ifndef OPENSSL_NO_HQINTEROP +# define OPENSSL_NO_HQINTEROP +# endif +# ifndef OPENSSL_NO_JITTER +# define OPENSSL_NO_JITTER +# endif # ifndef OPENSSL_NO_KTLS # define OPENSSL_NO_KTLS # endif @@ -82,6 +103,9 @@ extern "C" { # ifndef OPENSSL_NO_MSAN # define OPENSSL_NO_MSAN # endif +# ifndef OPENSSL_NO_PIE +# define OPENSSL_NO_PIE +# endif # ifndef OPENSSL_NO_RC5 # define OPENSSL_NO_RC5 # endif @@ -94,6 +118,12 @@ extern "C" { # ifndef OPENSSL_NO_SSL3_METHOD # define OPENSSL_NO_SSL3_METHOD # endif +# ifndef OPENSSL_NO_SSLKEYLOG +# define OPENSSL_NO_SSLKEYLOG +# endif +# ifndef OPENSSL_NO_TFO +# define OPENSSL_NO_TFO +# endif # ifndef OPENSSL_NO_TRACE # define OPENSSL_NO_TRACE # endif @@ -109,6 +139,21 @@ extern "C" { # ifndef OPENSSL_NO_WEAK_SSL_CIPHERS # define OPENSSL_NO_WEAK_SSL_CIPHERS # endif +# ifndef OPENSSL_NO_WINSTORE +# define OPENSSL_NO_WINSTORE +# endif +# ifndef OPENSSL_NO_ZLIB +# define OPENSSL_NO_ZLIB +# endif +# ifndef OPENSSL_NO_ZLIB_DYNAMIC +# define OPENSSL_NO_ZLIB_DYNAMIC +# endif +# ifndef OPENSSL_NO_ZSTD +# define OPENSSL_NO_ZSTD +# endif +# ifndef OPENSSL_NO_ZSTD_DYNAMIC +# define OPENSSL_NO_ZSTD_DYNAMIC +# endif # ifndef OPENSSL_NO_DYNAMIC_ENGINE # define OPENSSL_NO_DYNAMIC_ENGINE # endif @@ -130,6 +175,12 @@ extern "C" { # define RC4_INT unsigned int +# if defined(OPENSSL_NO_COMP) || (defined(OPENSSL_NO_BROTLI) && defined(OPENSSL_NO_ZSTD) && defined(OPENSSL_NO_ZLIB)) +# define OPENSSL_NO_COMP_ALG +# else +# undef OPENSSL_NO_COMP_ALG +# endif + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/include/openssl/core_names.h b/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/include/openssl/core_names.h new file mode 100644 index 00000000000000..e93e79a52bc910 --- /dev/null +++ b/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/include/openssl/core_names.h @@ -0,0 +1,575 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from include/openssl/core_names.h.in + * + * Copyright 2019-2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + +#ifndef OPENSSL_CORE_NAMES_H +# define OPENSSL_CORE_NAMES_H +# pragma once + +# ifdef __cplusplus +extern "C" { +# endif + +/* OSSL_CIPHER_PARAM_CTS_MODE Values */ +# define OSSL_CIPHER_CTS_MODE_CS1 "CS1" +# define OSSL_CIPHER_CTS_MODE_CS2 "CS2" +# define OSSL_CIPHER_CTS_MODE_CS3 "CS3" + +/* Known CIPHER names (not a complete list) */ +# define OSSL_CIPHER_NAME_AES_128_GCM_SIV "AES-128-GCM-SIV" +# define OSSL_CIPHER_NAME_AES_192_GCM_SIV "AES-192-GCM-SIV" +# define OSSL_CIPHER_NAME_AES_256_GCM_SIV "AES-256-GCM-SIV" + +/* Known DIGEST names (not a complete list) */ +# define OSSL_DIGEST_NAME_MD5 "MD5" +# define OSSL_DIGEST_NAME_MD5_SHA1 "MD5-SHA1" +# define OSSL_DIGEST_NAME_SHA1 "SHA1" +# define OSSL_DIGEST_NAME_SHA2_224 "SHA2-224" +# define OSSL_DIGEST_NAME_SHA2_256 "SHA2-256" +# define OSSL_DIGEST_NAME_SHA2_256_192 "SHA2-256/192" +# define OSSL_DIGEST_NAME_SHA2_384 "SHA2-384" +# define OSSL_DIGEST_NAME_SHA2_512 "SHA2-512" +# define OSSL_DIGEST_NAME_SHA2_512_224 "SHA2-512/224" +# define OSSL_DIGEST_NAME_SHA2_512_256 "SHA2-512/256" +# define OSSL_DIGEST_NAME_MD2 "MD2" +# define OSSL_DIGEST_NAME_MD4 "MD4" +# define OSSL_DIGEST_NAME_MDC2 "MDC2" +# define OSSL_DIGEST_NAME_RIPEMD160 "RIPEMD160" +# define OSSL_DIGEST_NAME_SHA3_224 "SHA3-224" +# define OSSL_DIGEST_NAME_SHA3_256 "SHA3-256" +# define OSSL_DIGEST_NAME_SHA3_384 "SHA3-384" +# define OSSL_DIGEST_NAME_SHA3_512 "SHA3-512" +# define OSSL_DIGEST_NAME_KECCAK_KMAC128 "KECCAK-KMAC-128" +# define OSSL_DIGEST_NAME_KECCAK_KMAC256 "KECCAK-KMAC-256" +# define OSSL_DIGEST_NAME_SM3 "SM3" + +/* Known MAC names */ +# define OSSL_MAC_NAME_BLAKE2BMAC "BLAKE2BMAC" +# define OSSL_MAC_NAME_BLAKE2SMAC "BLAKE2SMAC" +# define OSSL_MAC_NAME_CMAC "CMAC" +# define OSSL_MAC_NAME_GMAC "GMAC" +# define OSSL_MAC_NAME_HMAC "HMAC" +# define OSSL_MAC_NAME_KMAC128 "KMAC128" +# define OSSL_MAC_NAME_KMAC256 "KMAC256" +# define OSSL_MAC_NAME_POLY1305 "POLY1305" +# define OSSL_MAC_NAME_SIPHASH "SIPHASH" + +/* Known KDF names */ +# define OSSL_KDF_NAME_HKDF "HKDF" +# define OSSL_KDF_NAME_TLS1_3_KDF "TLS13-KDF" +# define OSSL_KDF_NAME_PBKDF1 "PBKDF1" +# define OSSL_KDF_NAME_PBKDF2 "PBKDF2" +# define OSSL_KDF_NAME_SCRYPT "SCRYPT" +# define OSSL_KDF_NAME_SSHKDF "SSHKDF" +# define OSSL_KDF_NAME_SSKDF "SSKDF" +# define OSSL_KDF_NAME_TLS1_PRF "TLS1-PRF" +# define OSSL_KDF_NAME_X942KDF_ASN1 "X942KDF-ASN1" +# define OSSL_KDF_NAME_X942KDF_CONCAT "X942KDF-CONCAT" +# define OSSL_KDF_NAME_X963KDF "X963KDF" +# define OSSL_KDF_NAME_KBKDF "KBKDF" +# define OSSL_KDF_NAME_KRB5KDF "KRB5KDF" +# define OSSL_KDF_NAME_HMACDRBGKDF "HMAC-DRBG-KDF" + +/* RSA padding modes */ +# define OSSL_PKEY_RSA_PAD_MODE_NONE "none" +# define OSSL_PKEY_RSA_PAD_MODE_PKCSV15 "pkcs1" +# define OSSL_PKEY_RSA_PAD_MODE_OAEP "oaep" +# define OSSL_PKEY_RSA_PAD_MODE_X931 "x931" +# define OSSL_PKEY_RSA_PAD_MODE_PSS "pss" + +/* RSA pss padding salt length */ +# define OSSL_PKEY_RSA_PSS_SALT_LEN_DIGEST "digest" +# define OSSL_PKEY_RSA_PSS_SALT_LEN_MAX "max" +# define OSSL_PKEY_RSA_PSS_SALT_LEN_AUTO "auto" +# define OSSL_PKEY_RSA_PSS_SALT_LEN_AUTO_DIGEST_MAX "auto-digestmax" + +/* OSSL_PKEY_PARAM_EC_ENCODING values */ +# define OSSL_PKEY_EC_ENCODING_EXPLICIT "explicit" +# define OSSL_PKEY_EC_ENCODING_GROUP "named_curve" + +# define OSSL_PKEY_EC_POINT_CONVERSION_FORMAT_UNCOMPRESSED "uncompressed" +# define OSSL_PKEY_EC_POINT_CONVERSION_FORMAT_COMPRESSED "compressed" +# define OSSL_PKEY_EC_POINT_CONVERSION_FORMAT_HYBRID "hybrid" + +# define OSSL_PKEY_EC_GROUP_CHECK_DEFAULT "default" +# define OSSL_PKEY_EC_GROUP_CHECK_NAMED "named" +# define OSSL_PKEY_EC_GROUP_CHECK_NAMED_NIST "named-nist" + +/* PROV_SKEY well known key types */ +# define OSSL_SKEY_TYPE_GENERIC "GENERIC-SECRET" +# define OSSL_SKEY_TYPE_AES "AES" + +/* OSSL_KEM_PARAM_OPERATION values */ +#define OSSL_KEM_PARAM_OPERATION_RSASVE "RSASVE" +#define OSSL_KEM_PARAM_OPERATION_DHKEM "DHKEM" + +/* Provider configuration variables */ +#define OSSL_PKEY_RETAIN_SEED "pkey_retain_seed" + +/* Parameter name definitions - generated by util/perl/OpenSSL/paramnames.pm */ +# define OSSL_ALG_PARAM_ALGORITHM_ID "algorithm-id" +# define OSSL_ALG_PARAM_ALGORITHM_ID_PARAMS "algorithm-id-params" +# define OSSL_ALG_PARAM_CIPHER "cipher" +# define OSSL_ALG_PARAM_DIGEST "digest" +# define OSSL_ALG_PARAM_ENGINE "engine" +# define OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR "fips-indicator" +# define OSSL_ALG_PARAM_MAC "mac" +# define OSSL_ALG_PARAM_PROPERTIES "properties" +# define OSSL_ASYM_CIPHER_PARAM_DIGEST OSSL_PKEY_PARAM_DIGEST +# define OSSL_ASYM_CIPHER_PARAM_ENGINE OSSL_PKEY_PARAM_ENGINE +# define OSSL_ASYM_CIPHER_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_ASYM_CIPHER_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_ASYM_CIPHER_PARAM_FIPS_RSA_PKCS15_PAD_DISABLED OSSL_PROV_PARAM_RSA_PKCS15_PAD_DISABLED +# define OSSL_ASYM_CIPHER_PARAM_IMPLICIT_REJECTION "implicit-rejection" +# define OSSL_ASYM_CIPHER_PARAM_MGF1_DIGEST OSSL_PKEY_PARAM_MGF1_DIGEST +# define OSSL_ASYM_CIPHER_PARAM_MGF1_DIGEST_PROPS OSSL_PKEY_PARAM_MGF1_PROPERTIES +# define OSSL_ASYM_CIPHER_PARAM_OAEP_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_ASYM_CIPHER_PARAM_OAEP_DIGEST_PROPS "digest-props" +# define OSSL_ASYM_CIPHER_PARAM_OAEP_LABEL "oaep-label" +# define OSSL_ASYM_CIPHER_PARAM_PAD_MODE OSSL_PKEY_PARAM_PAD_MODE +# define OSSL_ASYM_CIPHER_PARAM_PROPERTIES OSSL_PKEY_PARAM_PROPERTIES +# define OSSL_ASYM_CIPHER_PARAM_TLS_CLIENT_VERSION "tls-client-version" +# define OSSL_ASYM_CIPHER_PARAM_TLS_NEGOTIATED_VERSION "tls-negotiated-version" +# define OSSL_CAPABILITY_TLS_GROUP_ALG "tls-group-alg" +# define OSSL_CAPABILITY_TLS_GROUP_ID "tls-group-id" +# define OSSL_CAPABILITY_TLS_GROUP_IS_KEM "tls-group-is-kem" +# define OSSL_CAPABILITY_TLS_GROUP_MAX_DTLS "tls-max-dtls" +# define OSSL_CAPABILITY_TLS_GROUP_MAX_TLS "tls-max-tls" +# define OSSL_CAPABILITY_TLS_GROUP_MIN_DTLS "tls-min-dtls" +# define OSSL_CAPABILITY_TLS_GROUP_MIN_TLS "tls-min-tls" +# define OSSL_CAPABILITY_TLS_GROUP_NAME "tls-group-name" +# define OSSL_CAPABILITY_TLS_GROUP_NAME_INTERNAL "tls-group-name-internal" +# define OSSL_CAPABILITY_TLS_GROUP_SECURITY_BITS "tls-group-sec-bits" +# define OSSL_CAPABILITY_TLS_SIGALG_CODE_POINT "tls-sigalg-code-point" +# define OSSL_CAPABILITY_TLS_SIGALG_HASH_NAME "tls-sigalg-hash-name" +# define OSSL_CAPABILITY_TLS_SIGALG_HASH_OID "tls-sigalg-hash-oid" +# define OSSL_CAPABILITY_TLS_SIGALG_IANA_NAME "tls-sigalg-iana-name" +# define OSSL_CAPABILITY_TLS_SIGALG_KEYTYPE "tls-sigalg-keytype" +# define OSSL_CAPABILITY_TLS_SIGALG_KEYTYPE_OID "tls-sigalg-keytype-oid" +# define OSSL_CAPABILITY_TLS_SIGALG_MAX_DTLS "tls-max-dtls" +# define OSSL_CAPABILITY_TLS_SIGALG_MAX_TLS "tls-max-tls" +# define OSSL_CAPABILITY_TLS_SIGALG_MIN_DTLS "tls-min-dtls" +# define OSSL_CAPABILITY_TLS_SIGALG_MIN_TLS "tls-min-tls" +# define OSSL_CAPABILITY_TLS_SIGALG_NAME "tls-sigalg-name" +# define OSSL_CAPABILITY_TLS_SIGALG_OID "tls-sigalg-oid" +# define OSSL_CAPABILITY_TLS_SIGALG_SECURITY_BITS "tls-sigalg-sec-bits" +# define OSSL_CAPABILITY_TLS_SIGALG_SIG_NAME "tls-sigalg-sig-name" +# define OSSL_CAPABILITY_TLS_SIGALG_SIG_OID "tls-sigalg-sig-oid" +# define OSSL_CIPHER_PARAM_AEAD "aead" +# define OSSL_CIPHER_PARAM_AEAD_IVLEN OSSL_CIPHER_PARAM_IVLEN +# define OSSL_CIPHER_PARAM_AEAD_IV_GENERATED "iv-generated" +# define OSSL_CIPHER_PARAM_AEAD_MAC_KEY "mackey" +# define OSSL_CIPHER_PARAM_AEAD_TAG "tag" +# define OSSL_CIPHER_PARAM_AEAD_TAGLEN "taglen" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_AAD "tlsaad" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_AAD_PAD "tlsaadpad" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_GET_IV_GEN "tlsivgen" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_IV_FIXED "tlsivfixed" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_SET_IV_INV "tlsivinv" +# define OSSL_CIPHER_PARAM_ALGORITHM_ID OSSL_ALG_PARAM_ALGORITHM_ID +# define OSSL_CIPHER_PARAM_ALGORITHM_ID_PARAMS OSSL_ALG_PARAM_ALGORITHM_ID_PARAMS +# define OSSL_CIPHER_PARAM_ALGORITHM_ID_PARAMS_OLD "alg_id_param" +# define OSSL_CIPHER_PARAM_BLOCK_SIZE "blocksize" +# define OSSL_CIPHER_PARAM_CTS "cts" +# define OSSL_CIPHER_PARAM_CTS_MODE "cts_mode" +# define OSSL_CIPHER_PARAM_CUSTOM_IV "custom-iv" +# define OSSL_CIPHER_PARAM_DECRYPT_ONLY "decrypt-only" +# define OSSL_CIPHER_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_CIPHER_PARAM_FIPS_ENCRYPT_CHECK "encrypt-check" +# define OSSL_CIPHER_PARAM_HAS_RAND_KEY "has-randkey" +# define OSSL_CIPHER_PARAM_IV "iv" +# define OSSL_CIPHER_PARAM_IVLEN "ivlen" +# define OSSL_CIPHER_PARAM_KEYLEN "keylen" +# define OSSL_CIPHER_PARAM_MODE "mode" +# define OSSL_CIPHER_PARAM_NUM "num" +# define OSSL_CIPHER_PARAM_PADDING "padding" +# define OSSL_CIPHER_PARAM_PIPELINE_AEAD_TAG "pipeline-tag" +# define OSSL_CIPHER_PARAM_RANDOM_KEY "randkey" +# define OSSL_CIPHER_PARAM_RC2_KEYBITS "keybits" +# define OSSL_CIPHER_PARAM_ROUNDS "rounds" +# define OSSL_CIPHER_PARAM_SPEED "speed" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK "tls-multi" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD "tls1multi_aad" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD_PACKLEN "tls1multi_aadpacklen" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC "tls1multi_enc" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_IN "tls1multi_encin" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_LEN "tls1multi_enclen" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_INTERLEAVE "tls1multi_interleave" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_BUFSIZE "tls1multi_maxbufsz" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_SEND_FRAGMENT "tls1multi_maxsndfrag" +# define OSSL_CIPHER_PARAM_TLS_MAC "tls-mac" +# define OSSL_CIPHER_PARAM_TLS_MAC_SIZE "tls-mac-size" +# define OSSL_CIPHER_PARAM_TLS_VERSION "tls-version" +# define OSSL_CIPHER_PARAM_UPDATED_IV "updated-iv" +# define OSSL_CIPHER_PARAM_USE_BITS "use-bits" +# define OSSL_CIPHER_PARAM_XTS_STANDARD "xts_standard" +# define OSSL_DECODER_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_DIGEST_PARAM_ALGID_ABSENT "algid-absent" +# define OSSL_DIGEST_PARAM_BLOCK_SIZE "blocksize" +# define OSSL_DIGEST_PARAM_MICALG "micalg" +# define OSSL_DIGEST_PARAM_PAD_TYPE "pad-type" +# define OSSL_DIGEST_PARAM_SIZE "size" +# define OSSL_DIGEST_PARAM_SSL3_MS "ssl3-ms" +# define OSSL_DIGEST_PARAM_XOF "xof" +# define OSSL_DIGEST_PARAM_XOFLEN "xoflen" +# define OSSL_DRBG_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_DRBG_PARAM_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_DRBG_PARAM_ENTROPY_REQUIRED "entropy_required" +# define OSSL_DRBG_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_DRBG_PARAM_FIPS_DIGEST_CHECK OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK +# define OSSL_DRBG_PARAM_MAC OSSL_ALG_PARAM_MAC +# define OSSL_DRBG_PARAM_MAX_ADINLEN "max_adinlen" +# define OSSL_DRBG_PARAM_MAX_ENTROPYLEN "max_entropylen" +# define OSSL_DRBG_PARAM_MAX_LENGTH "maxium_length" +# define OSSL_DRBG_PARAM_MAX_NONCELEN "max_noncelen" +# define OSSL_DRBG_PARAM_MAX_PERSLEN "max_perslen" +# define OSSL_DRBG_PARAM_MIN_ENTROPYLEN "min_entropylen" +# define OSSL_DRBG_PARAM_MIN_LENGTH "minium_length" +# define OSSL_DRBG_PARAM_MIN_NONCELEN "min_noncelen" +# define OSSL_DRBG_PARAM_PREDICTION_RESISTANCE "prediction_resistance" +# define OSSL_DRBG_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_DRBG_PARAM_RANDOM_DATA "random_data" +# define OSSL_DRBG_PARAM_RESEED_COUNTER "reseed_counter" +# define OSSL_DRBG_PARAM_RESEED_REQUESTS "reseed_requests" +# define OSSL_DRBG_PARAM_RESEED_TIME "reseed_time" +# define OSSL_DRBG_PARAM_RESEED_TIME_INTERVAL "reseed_time_interval" +# define OSSL_DRBG_PARAM_SIZE "size" +# define OSSL_DRBG_PARAM_USE_DF "use_derivation_function" +# define OSSL_ENCODER_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_ENCODER_PARAM_ENCRYPT_LEVEL "encrypt-level" +# define OSSL_ENCODER_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_ENCODER_PARAM_SAVE_PARAMETERS "save-parameters" +# define OSSL_EXCHANGE_PARAM_EC_ECDH_COFACTOR_MODE "ecdh-cofactor-mode" +# define OSSL_EXCHANGE_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_EXCHANGE_PARAM_FIPS_DIGEST_CHECK OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK +# define OSSL_EXCHANGE_PARAM_FIPS_ECDH_COFACTOR_CHECK OSSL_PROV_PARAM_ECDH_COFACTOR_CHECK +# define OSSL_EXCHANGE_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_EXCHANGE_PARAM_KDF_DIGEST "kdf-digest" +# define OSSL_EXCHANGE_PARAM_KDF_DIGEST_PROPS "kdf-digest-props" +# define OSSL_EXCHANGE_PARAM_KDF_OUTLEN "kdf-outlen" +# define OSSL_EXCHANGE_PARAM_KDF_TYPE "kdf-type" +# define OSSL_EXCHANGE_PARAM_KDF_UKM "kdf-ukm" +# define OSSL_EXCHANGE_PARAM_PAD "pad" +# define OSSL_GEN_PARAM_ITERATION "iteration" +# define OSSL_GEN_PARAM_POTENTIAL "potential" +# define OSSL_KDF_PARAM_ARGON2_AD "ad" +# define OSSL_KDF_PARAM_ARGON2_LANES "lanes" +# define OSSL_KDF_PARAM_ARGON2_MEMCOST "memcost" +# define OSSL_KDF_PARAM_ARGON2_VERSION "version" +# define OSSL_KDF_PARAM_CEK_ALG "cekalg" +# define OSSL_KDF_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_KDF_PARAM_CONSTANT "constant" +# define OSSL_KDF_PARAM_DATA "data" +# define OSSL_KDF_PARAM_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_KDF_PARAM_EARLY_CLEAN "early_clean" +# define OSSL_KDF_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_KDF_PARAM_FIPS_DIGEST_CHECK OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK +# define OSSL_KDF_PARAM_FIPS_EMS_CHECK "ems_check" +# define OSSL_KDF_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_KDF_PARAM_HMACDRBG_ENTROPY "entropy" +# define OSSL_KDF_PARAM_HMACDRBG_NONCE "nonce" +# define OSSL_KDF_PARAM_INFO "info" +# define OSSL_KDF_PARAM_ITER "iter" +# define OSSL_KDF_PARAM_KBKDF_R "r" +# define OSSL_KDF_PARAM_KBKDF_USE_L "use-l" +# define OSSL_KDF_PARAM_KBKDF_USE_SEPARATOR "use-separator" +# define OSSL_KDF_PARAM_KEY "key" +# define OSSL_KDF_PARAM_LABEL "label" +# define OSSL_KDF_PARAM_MAC OSSL_ALG_PARAM_MAC +# define OSSL_KDF_PARAM_MAC_SIZE "maclen" +# define OSSL_KDF_PARAM_MODE "mode" +# define OSSL_KDF_PARAM_PASSWORD "pass" +# define OSSL_KDF_PARAM_PKCS12_ID "id" +# define OSSL_KDF_PARAM_PKCS5 "pkcs5" +# define OSSL_KDF_PARAM_PREFIX "prefix" +# define OSSL_KDF_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_KDF_PARAM_SALT "salt" +# define OSSL_KDF_PARAM_SCRYPT_MAXMEM "maxmem_bytes" +# define OSSL_KDF_PARAM_SCRYPT_N "n" +# define OSSL_KDF_PARAM_SCRYPT_P "p" +# define OSSL_KDF_PARAM_SCRYPT_R "r" +# define OSSL_KDF_PARAM_SECRET "secret" +# define OSSL_KDF_PARAM_SEED "seed" +# define OSSL_KDF_PARAM_SIZE "size" +# define OSSL_KDF_PARAM_SSHKDF_SESSION_ID "session_id" +# define OSSL_KDF_PARAM_SSHKDF_TYPE "type" +# define OSSL_KDF_PARAM_SSHKDF_XCGHASH "xcghash" +# define OSSL_KDF_PARAM_THREADS "threads" +# define OSSL_KDF_PARAM_UKM "ukm" +# define OSSL_KDF_PARAM_X942_ACVPINFO "acvp-info" +# define OSSL_KDF_PARAM_X942_PARTYUINFO "partyu-info" +# define OSSL_KDF_PARAM_X942_PARTYVINFO "partyv-info" +# define OSSL_KDF_PARAM_X942_SUPP_PRIVINFO "supp-privinfo" +# define OSSL_KDF_PARAM_X942_SUPP_PUBINFO "supp-pubinfo" +# define OSSL_KDF_PARAM_X942_USE_KEYBITS "use-keybits" +# define OSSL_KEM_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_KEM_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_KEM_PARAM_IKME "ikme" +# define OSSL_KEM_PARAM_OPERATION "operation" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_BLOCK_PADDING "block_padding" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_HS_PADDING "hs_padding" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_MAX_EARLY_DATA "max_early_data" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_MAX_FRAG_LEN "max_frag_len" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_MODE "mode" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_OPTIONS "options" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_READ_AHEAD "read_ahead" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_STREAM_MAC "stream_mac" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_TLSTREE "tlstree" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_USE_ETM "use_etm" +# define OSSL_LIBSSL_RECORD_LAYER_READ_BUFFER_LEN "read_buffer_len" +# define OSSL_MAC_PARAM_BLOCK_SIZE "block-size" +# define OSSL_MAC_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_MAC_PARAM_CUSTOM "custom" +# define OSSL_MAC_PARAM_C_ROUNDS "c-rounds" +# define OSSL_MAC_PARAM_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_MAC_PARAM_DIGEST_NOINIT "digest-noinit" +# define OSSL_MAC_PARAM_DIGEST_ONESHOT "digest-oneshot" +# define OSSL_MAC_PARAM_D_ROUNDS "d-rounds" +# define OSSL_MAC_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_MAC_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_MAC_PARAM_FIPS_NO_SHORT_MAC OSSL_PROV_PARAM_NO_SHORT_MAC +# define OSSL_MAC_PARAM_IV "iv" +# define OSSL_MAC_PARAM_KEY "key" +# define OSSL_MAC_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_MAC_PARAM_SALT "salt" +# define OSSL_MAC_PARAM_SIZE "size" +# define OSSL_MAC_PARAM_TLS_DATA_SIZE "tls-data-size" +# define OSSL_MAC_PARAM_XOF "xof" +# define OSSL_OBJECT_PARAM_DATA "data" +# define OSSL_OBJECT_PARAM_DATA_STRUCTURE "data-structure" +# define OSSL_OBJECT_PARAM_DATA_TYPE "data-type" +# define OSSL_OBJECT_PARAM_DESC "desc" +# define OSSL_OBJECT_PARAM_INPUT_TYPE "input-type" +# define OSSL_OBJECT_PARAM_REFERENCE "reference" +# define OSSL_OBJECT_PARAM_TYPE "type" +# define OSSL_PASSPHRASE_PARAM_INFO "info" +# define OSSL_PKEY_PARAM_ALGORITHM_ID OSSL_ALG_PARAM_ALGORITHM_ID +# define OSSL_PKEY_PARAM_ALGORITHM_ID_PARAMS OSSL_ALG_PARAM_ALGORITHM_ID_PARAMS +# define OSSL_PKEY_PARAM_BITS "bits" +# define OSSL_PKEY_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_PKEY_PARAM_DEFAULT_DIGEST "default-digest" +# define OSSL_PKEY_PARAM_DHKEM_IKM "dhkem-ikm" +# define OSSL_PKEY_PARAM_DH_GENERATOR "safeprime-generator" +# define OSSL_PKEY_PARAM_DH_PRIV_LEN "priv_len" +# define OSSL_PKEY_PARAM_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_PKEY_PARAM_DIGEST_SIZE "digest-size" +# define OSSL_PKEY_PARAM_DIST_ID "distid" +# define OSSL_PKEY_PARAM_EC_A "a" +# define OSSL_PKEY_PARAM_EC_B "b" +# define OSSL_PKEY_PARAM_EC_CHAR2_M "m" +# define OSSL_PKEY_PARAM_EC_CHAR2_PP_K1 "k1" +# define OSSL_PKEY_PARAM_EC_CHAR2_PP_K2 "k2" +# define OSSL_PKEY_PARAM_EC_CHAR2_PP_K3 "k3" +# define OSSL_PKEY_PARAM_EC_CHAR2_TP_BASIS "tp" +# define OSSL_PKEY_PARAM_EC_CHAR2_TYPE "basis-type" +# define OSSL_PKEY_PARAM_EC_COFACTOR "cofactor" +# define OSSL_PKEY_PARAM_EC_DECODED_FROM_EXPLICIT_PARAMS "decoded-from-explicit" +# define OSSL_PKEY_PARAM_EC_ENCODING "encoding" +# define OSSL_PKEY_PARAM_EC_FIELD_TYPE "field-type" +# define OSSL_PKEY_PARAM_EC_GENERATOR "generator" +# define OSSL_PKEY_PARAM_EC_GROUP_CHECK_TYPE "group-check" +# define OSSL_PKEY_PARAM_EC_INCLUDE_PUBLIC "include-public" +# define OSSL_PKEY_PARAM_EC_ORDER "order" +# define OSSL_PKEY_PARAM_EC_P "p" +# define OSSL_PKEY_PARAM_EC_POINT_CONVERSION_FORMAT "point-format" +# define OSSL_PKEY_PARAM_EC_PUB_X "qx" +# define OSSL_PKEY_PARAM_EC_PUB_Y "qy" +# define OSSL_PKEY_PARAM_EC_SEED "seed" +# define OSSL_PKEY_PARAM_ENCODED_PUBLIC_KEY "encoded-pub-key" +# define OSSL_PKEY_PARAM_ENGINE OSSL_ALG_PARAM_ENGINE +# define OSSL_PKEY_PARAM_FFC_COFACTOR "j" +# define OSSL_PKEY_PARAM_FFC_DIGEST OSSL_PKEY_PARAM_DIGEST +# define OSSL_PKEY_PARAM_FFC_DIGEST_PROPS OSSL_PKEY_PARAM_PROPERTIES +# define OSSL_PKEY_PARAM_FFC_G "g" +# define OSSL_PKEY_PARAM_FFC_GINDEX "gindex" +# define OSSL_PKEY_PARAM_FFC_H "hindex" +# define OSSL_PKEY_PARAM_FFC_P "p" +# define OSSL_PKEY_PARAM_FFC_PBITS "pbits" +# define OSSL_PKEY_PARAM_FFC_PCOUNTER "pcounter" +# define OSSL_PKEY_PARAM_FFC_Q "q" +# define OSSL_PKEY_PARAM_FFC_QBITS "qbits" +# define OSSL_PKEY_PARAM_FFC_SEED "seed" +# define OSSL_PKEY_PARAM_FFC_TYPE "type" +# define OSSL_PKEY_PARAM_FFC_VALIDATE_G "validate-g" +# define OSSL_PKEY_PARAM_FFC_VALIDATE_LEGACY "validate-legacy" +# define OSSL_PKEY_PARAM_FFC_VALIDATE_PQ "validate-pq" +# define OSSL_PKEY_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK "digest-check" +# define OSSL_PKEY_PARAM_FIPS_KEY_CHECK "key-check" +# define OSSL_PKEY_PARAM_FIPS_SIGN_CHECK "sign-check" +# define OSSL_PKEY_PARAM_GROUP_NAME "group" +# define OSSL_PKEY_PARAM_IMPLICIT_REJECTION "implicit-rejection" +# define OSSL_PKEY_PARAM_MANDATORY_DIGEST "mandatory-digest" +# define OSSL_PKEY_PARAM_MASKGENFUNC "mgf" +# define OSSL_PKEY_PARAM_MAX_SIZE "max-size" +# define OSSL_PKEY_PARAM_MGF1_DIGEST "mgf1-digest" +# define OSSL_PKEY_PARAM_MGF1_PROPERTIES "mgf1-properties" +# define OSSL_PKEY_PARAM_ML_DSA_INPUT_FORMATS "ml-dsa.input_formats" +# define OSSL_PKEY_PARAM_ML_DSA_OUTPUT_FORMATS "ml-dsa.output_formats" +# define OSSL_PKEY_PARAM_ML_DSA_PREFER_SEED "ml-dsa.prefer_seed" +# define OSSL_PKEY_PARAM_ML_DSA_RETAIN_SEED "ml-dsa.retain_seed" +# define OSSL_PKEY_PARAM_ML_DSA_SEED "seed" +# define OSSL_PKEY_PARAM_ML_KEM_IMPORT_PCT_TYPE "ml-kem.import_pct_type" +# define OSSL_PKEY_PARAM_ML_KEM_INPUT_FORMATS "ml-kem.input_formats" +# define OSSL_PKEY_PARAM_ML_KEM_OUTPUT_FORMATS "ml-kem.output_formats" +# define OSSL_PKEY_PARAM_ML_KEM_PREFER_SEED "ml-kem.prefer_seed" +# define OSSL_PKEY_PARAM_ML_KEM_RETAIN_SEED "ml-kem.retain_seed" +# define OSSL_PKEY_PARAM_ML_KEM_SEED "seed" +# define OSSL_PKEY_PARAM_PAD_MODE "pad-mode" +# define OSSL_PKEY_PARAM_PRIV_KEY "priv" +# define OSSL_PKEY_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_PKEY_PARAM_PUB_KEY "pub" +# define OSSL_PKEY_PARAM_RSA_BITS OSSL_PKEY_PARAM_BITS +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT "rsa-coefficient" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT1 "rsa-coefficient1" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT2 "rsa-coefficient2" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT3 "rsa-coefficient3" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT4 "rsa-coefficient4" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT5 "rsa-coefficient5" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT6 "rsa-coefficient6" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT7 "rsa-coefficient7" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT8 "rsa-coefficient8" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT9 "rsa-coefficient9" +# define OSSL_PKEY_PARAM_RSA_D "d" +# define OSSL_PKEY_PARAM_RSA_DERIVE_FROM_PQ "rsa-derive-from-pq" +# define OSSL_PKEY_PARAM_RSA_DIGEST OSSL_PKEY_PARAM_DIGEST +# define OSSL_PKEY_PARAM_RSA_DIGEST_PROPS OSSL_PKEY_PARAM_PROPERTIES +# define OSSL_PKEY_PARAM_RSA_E "e" +# define OSSL_PKEY_PARAM_RSA_EXPONENT "rsa-exponent" +# define OSSL_PKEY_PARAM_RSA_EXPONENT1 "rsa-exponent1" +# define OSSL_PKEY_PARAM_RSA_EXPONENT10 "rsa-exponent10" +# define OSSL_PKEY_PARAM_RSA_EXPONENT2 "rsa-exponent2" +# define OSSL_PKEY_PARAM_RSA_EXPONENT3 "rsa-exponent3" +# define OSSL_PKEY_PARAM_RSA_EXPONENT4 "rsa-exponent4" +# define OSSL_PKEY_PARAM_RSA_EXPONENT5 "rsa-exponent5" +# define OSSL_PKEY_PARAM_RSA_EXPONENT6 "rsa-exponent6" +# define OSSL_PKEY_PARAM_RSA_EXPONENT7 "rsa-exponent7" +# define OSSL_PKEY_PARAM_RSA_EXPONENT8 "rsa-exponent8" +# define OSSL_PKEY_PARAM_RSA_EXPONENT9 "rsa-exponent9" +# define OSSL_PKEY_PARAM_RSA_FACTOR "rsa-factor" +# define OSSL_PKEY_PARAM_RSA_FACTOR1 "rsa-factor1" +# define OSSL_PKEY_PARAM_RSA_FACTOR10 "rsa-factor10" +# define OSSL_PKEY_PARAM_RSA_FACTOR2 "rsa-factor2" +# define OSSL_PKEY_PARAM_RSA_FACTOR3 "rsa-factor3" +# define OSSL_PKEY_PARAM_RSA_FACTOR4 "rsa-factor4" +# define OSSL_PKEY_PARAM_RSA_FACTOR5 "rsa-factor5" +# define OSSL_PKEY_PARAM_RSA_FACTOR6 "rsa-factor6" +# define OSSL_PKEY_PARAM_RSA_FACTOR7 "rsa-factor7" +# define OSSL_PKEY_PARAM_RSA_FACTOR8 "rsa-factor8" +# define OSSL_PKEY_PARAM_RSA_FACTOR9 "rsa-factor9" +# define OSSL_PKEY_PARAM_RSA_MASKGENFUNC OSSL_PKEY_PARAM_MASKGENFUNC +# define OSSL_PKEY_PARAM_RSA_MGF1_DIGEST OSSL_PKEY_PARAM_MGF1_DIGEST +# define OSSL_PKEY_PARAM_RSA_N "n" +# define OSSL_PKEY_PARAM_RSA_PRIMES "primes" +# define OSSL_PKEY_PARAM_RSA_PSS_SALTLEN "saltlen" +# define OSSL_PKEY_PARAM_RSA_TEST_P1 "p1" +# define OSSL_PKEY_PARAM_RSA_TEST_P2 "p2" +# define OSSL_PKEY_PARAM_RSA_TEST_Q1 "q1" +# define OSSL_PKEY_PARAM_RSA_TEST_Q2 "q2" +# define OSSL_PKEY_PARAM_RSA_TEST_XP "xp" +# define OSSL_PKEY_PARAM_RSA_TEST_XP1 "xp1" +# define OSSL_PKEY_PARAM_RSA_TEST_XP2 "xp2" +# define OSSL_PKEY_PARAM_RSA_TEST_XQ "xq" +# define OSSL_PKEY_PARAM_RSA_TEST_XQ1 "xq1" +# define OSSL_PKEY_PARAM_RSA_TEST_XQ2 "xq2" +# define OSSL_PKEY_PARAM_SECURITY_BITS "security-bits" +# define OSSL_PKEY_PARAM_SLH_DSA_SEED "seed" +# define OSSL_PKEY_PARAM_USE_COFACTOR_ECDH OSSL_PKEY_PARAM_USE_COFACTOR_FLAG +# define OSSL_PKEY_PARAM_USE_COFACTOR_FLAG "use-cofactor-flag" +# define OSSL_PROV_PARAM_BUILDINFO "buildinfo" +# define OSSL_PROV_PARAM_CORE_MODULE_FILENAME "module-filename" +# define OSSL_PROV_PARAM_CORE_PROV_NAME "provider-name" +# define OSSL_PROV_PARAM_CORE_VERSION "openssl-version" +# define OSSL_PROV_PARAM_DRBG_TRUNC_DIGEST "drbg-no-trunc-md" +# define OSSL_PROV_PARAM_DSA_SIGN_DISABLED "dsa-sign-disabled" +# define OSSL_PROV_PARAM_ECDH_COFACTOR_CHECK "ecdh-cofactor-check" +# define OSSL_PROV_PARAM_HKDF_DIGEST_CHECK "hkdf-digest-check" +# define OSSL_PROV_PARAM_HKDF_KEY_CHECK "hkdf-key-check" +# define OSSL_PROV_PARAM_HMAC_KEY_CHECK "hmac-key-check" +# define OSSL_PROV_PARAM_KBKDF_KEY_CHECK "kbkdf-key-check" +# define OSSL_PROV_PARAM_KMAC_KEY_CHECK "kmac-key-check" +# define OSSL_PROV_PARAM_NAME "name" +# define OSSL_PROV_PARAM_NO_SHORT_MAC "no-short-mac" +# define OSSL_PROV_PARAM_PBKDF2_LOWER_BOUND_CHECK "pbkdf2-lower-bound-check" +# define OSSL_PROV_PARAM_RSA_PKCS15_PAD_DISABLED "rsa-pkcs15-pad-disabled" +# define OSSL_PROV_PARAM_RSA_PSS_SALTLEN_CHECK "rsa-pss-saltlen-check" +# define OSSL_PROV_PARAM_RSA_SIGN_X931_PAD_DISABLED "rsa-sign-x931-pad-disabled" +# define OSSL_PROV_PARAM_SECURITY_CHECKS "security-checks" +# define OSSL_PROV_PARAM_SELF_TEST_DESC "st-desc" +# define OSSL_PROV_PARAM_SELF_TEST_PHASE "st-phase" +# define OSSL_PROV_PARAM_SELF_TEST_TYPE "st-type" +# define OSSL_PROV_PARAM_SIGNATURE_DIGEST_CHECK "signature-digest-check" +# define OSSL_PROV_PARAM_SSHKDF_DIGEST_CHECK "sshkdf-digest-check" +# define OSSL_PROV_PARAM_SSHKDF_KEY_CHECK "sshkdf-key-check" +# define OSSL_PROV_PARAM_SSKDF_DIGEST_CHECK "sskdf-digest-check" +# define OSSL_PROV_PARAM_SSKDF_KEY_CHECK "sskdf-key-check" +# define OSSL_PROV_PARAM_STATUS "status" +# define OSSL_PROV_PARAM_TDES_ENCRYPT_DISABLED "tdes-encrypt-disabled" +# define OSSL_PROV_PARAM_TLS13_KDF_DIGEST_CHECK "tls13-kdf-digest-check" +# define OSSL_PROV_PARAM_TLS13_KDF_KEY_CHECK "tls13-kdf-key-check" +# define OSSL_PROV_PARAM_TLS1_PRF_DIGEST_CHECK "tls1-prf-digest-check" +# define OSSL_PROV_PARAM_TLS1_PRF_EMS_CHECK "tls1-prf-ems-check" +# define OSSL_PROV_PARAM_TLS1_PRF_KEY_CHECK "tls1-prf-key-check" +# define OSSL_PROV_PARAM_VERSION "version" +# define OSSL_PROV_PARAM_X942KDF_KEY_CHECK "x942kdf-key-check" +# define OSSL_PROV_PARAM_X963KDF_DIGEST_CHECK "x963kdf-digest-check" +# define OSSL_PROV_PARAM_X963KDF_KEY_CHECK "x963kdf-key-check" +# define OSSL_RAND_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_RAND_PARAM_GENERATE "generate" +# define OSSL_RAND_PARAM_MAX_REQUEST "max_request" +# define OSSL_RAND_PARAM_STATE "state" +# define OSSL_RAND_PARAM_STRENGTH "strength" +# define OSSL_RAND_PARAM_TEST_ENTROPY "test_entropy" +# define OSSL_RAND_PARAM_TEST_NONCE "test_nonce" +# define OSSL_SIGNATURE_PARAM_ADD_RANDOM "additional-random" +# define OSSL_SIGNATURE_PARAM_ALGORITHM_ID OSSL_PKEY_PARAM_ALGORITHM_ID +# define OSSL_SIGNATURE_PARAM_ALGORITHM_ID_PARAMS OSSL_PKEY_PARAM_ALGORITHM_ID_PARAMS +# define OSSL_SIGNATURE_PARAM_CONTEXT_STRING "context-string" +# define OSSL_SIGNATURE_PARAM_DETERMINISTIC "deterministic" +# define OSSL_SIGNATURE_PARAM_DIGEST OSSL_PKEY_PARAM_DIGEST +# define OSSL_SIGNATURE_PARAM_DIGEST_SIZE OSSL_PKEY_PARAM_DIGEST_SIZE +# define OSSL_SIGNATURE_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_SIGNATURE_PARAM_FIPS_DIGEST_CHECK OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK +# define OSSL_SIGNATURE_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_SIGNATURE_PARAM_FIPS_RSA_PSS_SALTLEN_CHECK "rsa-pss-saltlen-check" +# define OSSL_SIGNATURE_PARAM_FIPS_SIGN_CHECK OSSL_PKEY_PARAM_FIPS_SIGN_CHECK +# define OSSL_SIGNATURE_PARAM_FIPS_SIGN_X931_PAD_CHECK "sign-x931-pad-check" +# define OSSL_SIGNATURE_PARAM_FIPS_VERIFY_MESSAGE "verify-message" +# define OSSL_SIGNATURE_PARAM_INSTANCE "instance" +# define OSSL_SIGNATURE_PARAM_KAT "kat" +# define OSSL_SIGNATURE_PARAM_MESSAGE_ENCODING "message-encoding" +# define OSSL_SIGNATURE_PARAM_MGF1_DIGEST OSSL_PKEY_PARAM_MGF1_DIGEST +# define OSSL_SIGNATURE_PARAM_MGF1_PROPERTIES OSSL_PKEY_PARAM_MGF1_PROPERTIES +# define OSSL_SIGNATURE_PARAM_MU "mu" +# define OSSL_SIGNATURE_PARAM_NONCE_TYPE "nonce-type" +# define OSSL_SIGNATURE_PARAM_PAD_MODE OSSL_PKEY_PARAM_PAD_MODE +# define OSSL_SIGNATURE_PARAM_PROPERTIES OSSL_PKEY_PARAM_PROPERTIES +# define OSSL_SIGNATURE_PARAM_PSS_SALTLEN "saltlen" +# define OSSL_SIGNATURE_PARAM_SIGNATURE "signature" +# define OSSL_SIGNATURE_PARAM_TEST_ENTROPY "test-entropy" +# define OSSL_SKEY_PARAM_KEY_LENGTH "key-length" +# define OSSL_SKEY_PARAM_RAW_BYTES "raw-bytes" +# define OSSL_STORE_PARAM_ALIAS "alias" +# define OSSL_STORE_PARAM_DIGEST "digest" +# define OSSL_STORE_PARAM_EXPECT "expect" +# define OSSL_STORE_PARAM_FINGERPRINT "fingerprint" +# define OSSL_STORE_PARAM_INPUT_TYPE "input-type" +# define OSSL_STORE_PARAM_ISSUER "name" +# define OSSL_STORE_PARAM_PROPERTIES "properties" +# define OSSL_STORE_PARAM_SERIAL "serial" +# define OSSL_STORE_PARAM_SUBJECT "subject" + +# ifdef __cplusplus +} +# endif + +#endif diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/include/openssl/crmf.h b/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/include/openssl/crmf.h index 71b747ed33d239..4bf550fd47daa9 100644 --- a/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/include/openssl/crmf.h +++ b/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/include/openssl/crmf.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/crmf.h.in * - * Copyright 2007-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2007-2025 The OpenSSL Project Authors. All Rights Reserved. * Copyright Nokia 2007-2019 * Copyright Siemens AG 2015-2019 * @@ -26,6 +26,7 @@ # include # include # include /* for GENERAL_NAME etc. */ +# include /* explicit #includes not strictly needed since implied by the above: */ # include @@ -43,9 +44,12 @@ extern "C" { # define OSSL_CRMF_SUBSEQUENTMESSAGE_ENCRCERT 0 # define OSSL_CRMF_SUBSEQUENTMESSAGE_CHALLENGERESP 1 - typedef struct ossl_crmf_encryptedvalue_st OSSL_CRMF_ENCRYPTEDVALUE; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_ENCRYPTEDVALUE) + +typedef struct ossl_crmf_encryptedkey_st OSSL_CRMF_ENCRYPTEDKEY; +DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_ENCRYPTEDKEY) + typedef struct ossl_crmf_msg_st OSSL_CRMF_MSG; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_MSG) DECLARE_ASN1_DUP_FUNCTION(OSSL_CRMF_MSG) @@ -77,6 +81,36 @@ SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CRMF_MSG, OSSL_CRMF_MSG, OSSL_CRMF_MSG) #define sk_OSSL_CRMF_MSG_set_cmp_func(sk, cmp) ((sk_OSSL_CRMF_MSG_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CRMF_MSG_sk_type(sk), ossl_check_OSSL_CRMF_MSG_compfunc_type(cmp))) typedef struct ossl_crmf_attributetypeandvalue_st OSSL_CRMF_ATTRIBUTETYPEANDVALUE; +void OSSL_CRMF_ATTRIBUTETYPEANDVALUE_free(OSSL_CRMF_ATTRIBUTETYPEANDVALUE *v); +DECLARE_ASN1_DUP_FUNCTION(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CRMF_ATTRIBUTETYPEANDVALUE, OSSL_CRMF_ATTRIBUTETYPEANDVALUE, OSSL_CRMF_ATTRIBUTETYPEANDVALUE) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_value(sk, idx) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_value(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), (idx))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_new(cmp) ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_new(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_compfunc_type(cmp))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_new_null() ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_new_null()) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_new_reserve(cmp, n) ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_compfunc_type(cmp), (n))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), (n)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_free(sk) OPENSSL_sk_free(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_delete(sk, i) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_delete(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), (i))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_delete_ptr(sk, ptr) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_pop(sk) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_pop(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_shift(sk) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_shift(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk),ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_freefunc_type(freefunc)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr), (idx)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_set(sk, idx, ptr) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_set(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), (idx), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr), pnum) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_dup(sk) ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_dup(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_copyfunc_type(copyfunc), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_freefunc_type(freefunc))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_set_cmp_func(sk, cmp) ((sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_compfunc_type(cmp))) + + typedef struct ossl_crmf_pbmparameter_st OSSL_CRMF_PBMPARAMETER; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_PBMPARAMETER) typedef struct ossl_crmf_poposigningkey_st OSSL_CRMF_POPOSIGNINGKEY; @@ -118,6 +152,7 @@ typedef struct ossl_crmf_singlepubinfo_st OSSL_CRMF_SINGLEPUBINFO; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_SINGLEPUBINFO) typedef struct ossl_crmf_certtemplate_st OSSL_CRMF_CERTTEMPLATE; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_CERTTEMPLATE) +DECLARE_ASN1_DUP_FUNCTION(OSSL_CRMF_CERTTEMPLATE) typedef STACK_OF(OSSL_CRMF_MSG) OSSL_CRMF_MSGS; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_MSGS) @@ -198,12 +233,14 @@ int OSSL_CRMF_MSGS_verify_popo(const OSSL_CRMF_MSGS *reqs, int rid, int acceptRAVerified, OSSL_LIB_CTX *libctx, const char *propq); OSSL_CRMF_CERTTEMPLATE *OSSL_CRMF_MSG_get0_tmpl(const OSSL_CRMF_MSG *crm); -const ASN1_INTEGER -*OSSL_CRMF_CERTTEMPLATE_get0_serialNumber(const OSSL_CRMF_CERTTEMPLATE *tmpl); +X509_PUBKEY +*OSSL_CRMF_CERTTEMPLATE_get0_publicKey(const OSSL_CRMF_CERTTEMPLATE *tmpl); const X509_NAME *OSSL_CRMF_CERTTEMPLATE_get0_subject(const OSSL_CRMF_CERTTEMPLATE *tmpl); const X509_NAME *OSSL_CRMF_CERTTEMPLATE_get0_issuer(const OSSL_CRMF_CERTTEMPLATE *tmpl); +const ASN1_INTEGER +*OSSL_CRMF_CERTTEMPLATE_get0_serialNumber(const OSSL_CRMF_CERTTEMPLATE *tmpl); X509_EXTENSIONS *OSSL_CRMF_CERTTEMPLATE_get0_extensions(const OSSL_CRMF_CERTTEMPLATE *tmpl); const X509_NAME @@ -215,10 +252,24 @@ int OSSL_CRMF_CERTTEMPLATE_fill(OSSL_CRMF_CERTTEMPLATE *tmpl, const X509_NAME *subject, const X509_NAME *issuer, const ASN1_INTEGER *serial); -X509 -*OSSL_CRMF_ENCRYPTEDVALUE_get1_encCert(const OSSL_CRMF_ENCRYPTEDVALUE *ecert, - OSSL_LIB_CTX *libctx, const char *propq, - EVP_PKEY *pkey); +X509 *OSSL_CRMF_ENCRYPTEDVALUE_get1_encCert(const OSSL_CRMF_ENCRYPTEDVALUE *ecert, + OSSL_LIB_CTX *libctx, const char *propq, + EVP_PKEY *pkey); +X509 *OSSL_CRMF_ENCRYPTEDKEY_get1_encCert(const OSSL_CRMF_ENCRYPTEDKEY *ecert, + OSSL_LIB_CTX *libctx, const char *propq, + EVP_PKEY *pkey, unsigned int flags); +unsigned char +*OSSL_CRMF_ENCRYPTEDVALUE_decrypt(const OSSL_CRMF_ENCRYPTEDVALUE *enc, + OSSL_LIB_CTX *libctx, const char *propq, + EVP_PKEY *pkey, int *outlen); +EVP_PKEY *OSSL_CRMF_ENCRYPTEDKEY_get1_pkey(const OSSL_CRMF_ENCRYPTEDKEY *encryptedKey, + X509_STORE *ts, STACK_OF(X509) *extra, EVP_PKEY *pkey, + X509 *cert, ASN1_OCTET_STRING *secret, + OSSL_LIB_CTX *libctx, const char *propq); +int OSSL_CRMF_MSG_centralkeygen_requested(const OSSL_CRMF_MSG *crm, const X509_REQ *p10cr); +# ifndef OPENSSL_NO_CMS +OSSL_CRMF_ENCRYPTEDKEY *OSSL_CRMF_ENCRYPTEDKEY_init_envdata(CMS_EnvelopedData *envdata); +# endif # ifdef __cplusplus } diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/include/openssl/crypto.h b/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/include/openssl/crypto.h index 3f40be6d8c61d5..fd2cfd3e5a9ac4 100644 --- a/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/include/openssl/crypto.h +++ b/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/include/openssl/crypto.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/crypto.h.in * - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2024 The OpenSSL Project Authors. All Rights Reserved. * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved * * Licensed under the Apache License 2.0 (the "License"). You may not use @@ -85,9 +85,15 @@ int CRYPTO_THREAD_unlock(CRYPTO_RWLOCK *lock); void CRYPTO_THREAD_lock_free(CRYPTO_RWLOCK *lock); int CRYPTO_atomic_add(int *val, int amount, int *ret, CRYPTO_RWLOCK *lock); +int CRYPTO_atomic_add64(uint64_t *val, uint64_t op, uint64_t *ret, + CRYPTO_RWLOCK *lock); +int CRYPTO_atomic_and(uint64_t *val, uint64_t op, uint64_t *ret, + CRYPTO_RWLOCK *lock); int CRYPTO_atomic_or(uint64_t *val, uint64_t op, uint64_t *ret, CRYPTO_RWLOCK *lock); int CRYPTO_atomic_load(uint64_t *val, uint64_t *ret, CRYPTO_RWLOCK *lock); +int CRYPTO_atomic_load_int(int *val, int *ret, CRYPTO_RWLOCK *lock); +int CRYPTO_atomic_store(uint64_t *dst, uint64_t val, CRYPTO_RWLOCK *lock); /* No longer needed, so this is a no-op */ #define OPENSSL_malloc_init() while(0) continue @@ -96,6 +102,9 @@ int CRYPTO_atomic_load(uint64_t *val, uint64_t *ret, CRYPTO_RWLOCK *lock); CRYPTO_malloc(num, OPENSSL_FILE, OPENSSL_LINE) # define OPENSSL_zalloc(num) \ CRYPTO_zalloc(num, OPENSSL_FILE, OPENSSL_LINE) +# define OPENSSL_aligned_alloc(num, alignment, freeptr) \ + CRYPTO_aligned_alloc(num, alignment, freeptr, \ + OPENSSL_FILE, OPENSSL_LINE) # define OPENSSL_realloc(addr, num) \ CRYPTO_realloc(addr, num, OPENSSL_FILE, OPENSSL_LINE) # define OPENSSL_clear_realloc(addr, old_num, num) \ @@ -124,6 +133,7 @@ int CRYPTO_atomic_load(uint64_t *val, uint64_t *ret, CRYPTO_RWLOCK *lock); size_t OPENSSL_strlcpy(char *dst, const char *src, size_t siz); size_t OPENSSL_strlcat(char *dst, const char *src, size_t siz); size_t OPENSSL_strnlen(const char *str, size_t maxlen); +int OPENSSL_strtoul(const char *str, char **endptr, int base, unsigned long *num); int OPENSSL_buf2hexstr_ex(char *str, size_t str_n, size_t *strlength, const unsigned char *buf, size_t buflen, const char sep); @@ -160,6 +170,7 @@ const char *OpenSSL_version(int type); # define OPENSSL_FULL_VERSION_STRING 7 # define OPENSSL_MODULES_DIR 8 # define OPENSSL_CPU_INFO 9 +# define OPENSSL_WINCTX 10 const char *OPENSSL_info(int type); /* @@ -174,6 +185,7 @@ const char *OPENSSL_info(int type); # define OPENSSL_INFO_LIST_SEPARATOR 1006 # define OPENSSL_INFO_SEED_SOURCE 1007 # define OPENSSL_INFO_CPU_SETTINGS 1008 +# define OPENSSL_INFO_WINDOWS_CONTEXT 1009 int OPENSSL_issetugid(void); @@ -341,11 +353,14 @@ void CRYPTO_get_mem_functions(CRYPTO_malloc_fn *malloc_fn, CRYPTO_realloc_fn *realloc_fn, CRYPTO_free_fn *free_fn); -void *CRYPTO_malloc(size_t num, const char *file, int line); -void *CRYPTO_zalloc(size_t num, const char *file, int line); -void *CRYPTO_memdup(const void *str, size_t siz, const char *file, int line); -char *CRYPTO_strdup(const char *str, const char *file, int line); -char *CRYPTO_strndup(const char *str, size_t s, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_malloc(size_t num, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_zalloc(size_t num, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_aligned_alloc(size_t num, size_t align, + void **freeptr, const char *file, + int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_memdup(const void *str, size_t siz, const char *file, int line); +OSSL_CRYPTO_ALLOC char *CRYPTO_strdup(const char *str, const char *file, int line); +OSSL_CRYPTO_ALLOC char *CRYPTO_strndup(const char *str, size_t s, const char *file, int line); void CRYPTO_free(void *ptr, const char *file, int line); void CRYPTO_clear_free(void *ptr, size_t num, const char *file, int line); void *CRYPTO_realloc(void *addr, size_t num, const char *file, int line); @@ -354,8 +369,8 @@ void *CRYPTO_clear_realloc(void *addr, size_t old_num, size_t num, int CRYPTO_secure_malloc_init(size_t sz, size_t minsize); int CRYPTO_secure_malloc_done(void); -void *CRYPTO_secure_malloc(size_t num, const char *file, int line); -void *CRYPTO_secure_zalloc(size_t num, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_secure_malloc(size_t num, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_secure_zalloc(size_t num, const char *file, int line); void CRYPTO_secure_free(void *ptr, const char *file, int line); void CRYPTO_secure_clear_free(void *ptr, size_t num, const char *file, int line); @@ -376,6 +391,9 @@ void OPENSSL_cleanse(void *ptr, size_t len); # define CRYPTO_MEM_CHECK_ENABLE 0x2 /* Control and mode bit */ # define CRYPTO_MEM_CHECK_DISABLE 0x3 /* Control only */ +/* max allowed length for value of OPENSSL_MALLOC_FAILURES env var. */ +# define CRYPTO_MEM_CHECK_MAX_FS 256 + void CRYPTO_get_alloc_counts(int *mcount, int *rcount, int *fcount); # ifndef OPENSSL_NO_DEPRECATED_3_0 # define OPENSSL_mem_debug_push(info) \ @@ -551,6 +569,13 @@ int OSSL_LIB_CTX_load_config(OSSL_LIB_CTX *ctx, const char *config_file); void OSSL_LIB_CTX_free(OSSL_LIB_CTX *); OSSL_LIB_CTX *OSSL_LIB_CTX_get0_global_default(void); OSSL_LIB_CTX *OSSL_LIB_CTX_set0_default(OSSL_LIB_CTX *libctx); +int OSSL_LIB_CTX_get_conf_diagnostics(OSSL_LIB_CTX *ctx); +void OSSL_LIB_CTX_set_conf_diagnostics(OSSL_LIB_CTX *ctx, int value); + +void OSSL_sleep(uint64_t millis); + + +void *OSSL_LIB_CTX_get_data(OSSL_LIB_CTX *ctx, int index); # ifdef __cplusplus } diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/include/openssl/ct.h b/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/include/openssl/ct.h index b6dd8c3547710a..e6dd1192a4e0b3 100644 --- a/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/include/openssl/ct.h +++ b/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/include/openssl/ct.h @@ -133,7 +133,7 @@ typedef enum { */ CT_POLICY_EVAL_CTX *CT_POLICY_EVAL_CTX_new_ex(OSSL_LIB_CTX *libctx, const char *propq); - + /* * The same as CT_POLICY_EVAL_CTX_new_ex() but the default library * context and property query string is used. diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/include/openssl/err.h b/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/include/openssl/err.h index 2abf2483488181..daca18e7b757b0 100644 --- a/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/include/openssl/err.h +++ b/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/include/openssl/err.h @@ -1,5 +1,5 @@ /* - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -372,7 +372,7 @@ typedef struct ERR_string_data_st { } ERR_STRING_DATA; DEFINE_LHASH_OF_INTERNAL(ERR_STRING_DATA); -#define lh_ERR_STRING_DATA_new(hfn, cmp) ((LHASH_OF(ERR_STRING_DATA) *)OPENSSL_LH_new(ossl_check_ERR_STRING_DATA_lh_hashfunc_type(hfn), ossl_check_ERR_STRING_DATA_lh_compfunc_type(cmp))) +#define lh_ERR_STRING_DATA_new(hfn, cmp) ((LHASH_OF(ERR_STRING_DATA) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new(ossl_check_ERR_STRING_DATA_lh_hashfunc_type(hfn), ossl_check_ERR_STRING_DATA_lh_compfunc_type(cmp)), lh_ERR_STRING_DATA_hash_thunk, lh_ERR_STRING_DATA_comp_thunk, lh_ERR_STRING_DATA_doall_thunk, lh_ERR_STRING_DATA_doall_arg_thunk)) #define lh_ERR_STRING_DATA_free(lh) OPENSSL_LH_free(ossl_check_ERR_STRING_DATA_lh_type(lh)) #define lh_ERR_STRING_DATA_flush(lh) OPENSSL_LH_flush(ossl_check_ERR_STRING_DATA_lh_type(lh)) #define lh_ERR_STRING_DATA_insert(lh, ptr) ((ERR_STRING_DATA *)OPENSSL_LH_insert(ossl_check_ERR_STRING_DATA_lh_type(lh), ossl_check_ERR_STRING_DATA_lh_plain_type(ptr))) @@ -496,6 +496,14 @@ int ERR_get_next_error_library(void); int ERR_set_mark(void); int ERR_pop_to_mark(void); int ERR_clear_last_mark(void); +int ERR_count_to_mark(void); +int ERR_pop(void); + +ERR_STATE *OSSL_ERR_STATE_new(void); +void OSSL_ERR_STATE_save(ERR_STATE *es); +void OSSL_ERR_STATE_save_to_mark(ERR_STATE *es); +void OSSL_ERR_STATE_restore(const ERR_STATE *es); +void OSSL_ERR_STATE_free(ERR_STATE *es); #ifdef __cplusplus } diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/include/openssl/fipskey.h b/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/include/openssl/fipskey.h index 42ba014b313ba8..929db18c678364 100644 --- a/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/include/openssl/fipskey.h +++ b/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/include/openssl/fipskey.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/fipskey.h.in * - * Copyright 2020-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2020-2024 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -29,6 +29,11 @@ extern "C" { */ #define FIPS_KEY_STRING "f4556650ac31d35461610bac4ed81b1a181b2d8a43ea2854cbae22ca74560813" +/* + * The FIPS provider vendor name, as a string. + */ +#define FIPS_VENDOR "OpenSSL FIPS Provider" + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/include/openssl/lhash.h b/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/include/openssl/lhash.h index 39dd6254acdeb6..62c55b20fd9716 100644 --- a/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/include/openssl/lhash.h +++ b/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/include/openssl/lhash.h @@ -1,5 +1,5 @@ /* - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2024 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -24,6 +24,9 @@ # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -31,9 +34,13 @@ extern "C" { typedef struct lhash_node_st OPENSSL_LH_NODE; typedef int (*OPENSSL_LH_COMPFUNC) (const void *, const void *); +typedef int (*OPENSSL_LH_COMPFUNCTHUNK) (const void *, const void *, OPENSSL_LH_COMPFUNC cfn); typedef unsigned long (*OPENSSL_LH_HASHFUNC) (const void *); +typedef unsigned long (*OPENSSL_LH_HASHFUNCTHUNK) (const void *, OPENSSL_LH_HASHFUNC hfn); typedef void (*OPENSSL_LH_DOALL_FUNC) (void *); +typedef void (*OPENSSL_LH_DOALL_FUNC_THUNK) (void *, OPENSSL_LH_DOALL_FUNC doall); typedef void (*OPENSSL_LH_DOALL_FUNCARG) (void *, void *); +typedef void (*OPENSSL_LH_DOALL_FUNCARG_THUNK) (void *, void *, OPENSSL_LH_DOALL_FUNCARG doall); typedef struct lhash_st OPENSSL_LHASH; /* @@ -79,26 +86,40 @@ typedef struct lhash_st OPENSSL_LHASH; int OPENSSL_LH_error(OPENSSL_LHASH *lh); OPENSSL_LHASH *OPENSSL_LH_new(OPENSSL_LH_HASHFUNC h, OPENSSL_LH_COMPFUNC c); +OPENSSL_LHASH *OPENSSL_LH_set_thunks(OPENSSL_LHASH *lh, + OPENSSL_LH_HASHFUNCTHUNK hw, + OPENSSL_LH_COMPFUNCTHUNK cw, + OPENSSL_LH_DOALL_FUNC_THUNK daw, + OPENSSL_LH_DOALL_FUNCARG_THUNK daaw); void OPENSSL_LH_free(OPENSSL_LHASH *lh); void OPENSSL_LH_flush(OPENSSL_LHASH *lh); void *OPENSSL_LH_insert(OPENSSL_LHASH *lh, void *data); void *OPENSSL_LH_delete(OPENSSL_LHASH *lh, const void *data); void *OPENSSL_LH_retrieve(OPENSSL_LHASH *lh, const void *data); void OPENSSL_LH_doall(OPENSSL_LHASH *lh, OPENSSL_LH_DOALL_FUNC func); -void OPENSSL_LH_doall_arg(OPENSSL_LHASH *lh, OPENSSL_LH_DOALL_FUNCARG func, void *arg); +void OPENSSL_LH_doall_arg(OPENSSL_LHASH *lh, + OPENSSL_LH_DOALL_FUNCARG func, void *arg); +void OPENSSL_LH_doall_arg_thunk(OPENSSL_LHASH *lh, + OPENSSL_LH_DOALL_FUNCARG_THUNK daaw, + OPENSSL_LH_DOALL_FUNCARG fn, void *arg); + unsigned long OPENSSL_LH_strhash(const char *c); unsigned long OPENSSL_LH_num_items(const OPENSSL_LHASH *lh); unsigned long OPENSSL_LH_get_down_load(const OPENSSL_LHASH *lh); void OPENSSL_LH_set_down_load(OPENSSL_LHASH *lh, unsigned long down_load); # ifndef OPENSSL_NO_STDIO -void OPENSSL_LH_stats(const OPENSSL_LHASH *lh, FILE *fp); -void OPENSSL_LH_node_stats(const OPENSSL_LHASH *lh, FILE *fp); -void OPENSSL_LH_node_usage_stats(const OPENSSL_LHASH *lh, FILE *fp); +# ifndef OPENSSL_NO_DEPRECATED_3_1 +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_stats(const OPENSSL_LHASH *lh, FILE *fp); +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_node_stats(const OPENSSL_LHASH *lh, FILE *fp); +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_node_usage_stats(const OPENSSL_LHASH *lh, FILE *fp); +# endif +# endif +# ifndef OPENSSL_NO_DEPRECATED_3_1 +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_stats_bio(const OPENSSL_LHASH *lh, BIO *out); +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_node_stats_bio(const OPENSSL_LHASH *lh, BIO *out); +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_node_usage_stats_bio(const OPENSSL_LHASH *lh, BIO *out); # endif -void OPENSSL_LH_stats_bio(const OPENSSL_LHASH *lh, BIO *out); -void OPENSSL_LH_node_stats_bio(const OPENSSL_LHASH *lh, BIO *out); -void OPENSSL_LH_node_usage_stats_bio(const OPENSSL_LHASH *lh, BIO *out); # ifndef OPENSSL_NO_DEPRECATED_1_1_0 # define _LHASH OPENSSL_LHASH @@ -129,110 +150,190 @@ void OPENSSL_LH_node_usage_stats_bio(const OPENSSL_LHASH *lh, BIO *out); /* Helper macro for internal use */ # define DEFINE_LHASH_OF_INTERNAL(type) \ - LHASH_OF(type) { union lh_##type##_dummy { void* d1; unsigned long d2; int d3; } dummy; }; \ + LHASH_OF(type) { \ + union lh_##type##_dummy { void* d1; unsigned long d2; int d3; } dummy; \ + }; \ typedef int (*lh_##type##_compfunc)(const type *a, const type *b); \ typedef unsigned long (*lh_##type##_hashfunc)(const type *a); \ typedef void (*lh_##type##_doallfunc)(type *a); \ - static ossl_unused ossl_inline type *ossl_check_##type##_lh_plain_type(type *ptr) \ + static ossl_inline unsigned long lh_##type##_hash_thunk(const void *data, OPENSSL_LH_HASHFUNC hfn) \ + { \ + unsigned long (*hfn_conv)(const type *) = (unsigned long (*)(const type *))hfn; \ + return hfn_conv((const type *)data); \ + } \ + static ossl_inline int lh_##type##_comp_thunk(const void *da, const void *db, OPENSSL_LH_COMPFUNC cfn) \ + { \ + int (*cfn_conv)(const type *, const type *) = (int (*)(const type *, const type *))cfn; \ + return cfn_conv((const type *)da, (const type *)db); \ + } \ + static ossl_inline void lh_##type##_doall_thunk(void *node, OPENSSL_LH_DOALL_FUNC doall) \ + { \ + void (*doall_conv)(type *) = (void (*)(type *))doall; \ + doall_conv((type *)node); \ + } \ + static ossl_inline void lh_##type##_doall_arg_thunk(void *node, void *arg, OPENSSL_LH_DOALL_FUNCARG doall) \ + { \ + void (*doall_conv)(type *, void *) = (void (*)(type *, void *))doall; \ + doall_conv((type *)node, arg); \ + } \ + static ossl_unused ossl_inline type *\ + ossl_check_##type##_lh_plain_type(type *ptr) \ { \ return ptr; \ } \ - static ossl_unused ossl_inline const type *ossl_check_const_##type##_lh_plain_type(const type *ptr) \ + static ossl_unused ossl_inline const type * \ + ossl_check_const_##type##_lh_plain_type(const type *ptr) \ { \ return ptr; \ } \ - static ossl_unused ossl_inline const OPENSSL_LHASH *ossl_check_const_##type##_lh_type(const LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline const OPENSSL_LHASH * \ + ossl_check_const_##type##_lh_type(const LHASH_OF(type) *lh) \ { \ return (const OPENSSL_LHASH *)lh; \ } \ - static ossl_unused ossl_inline OPENSSL_LHASH *ossl_check_##type##_lh_type(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline OPENSSL_LHASH * \ + ossl_check_##type##_lh_type(LHASH_OF(type) *lh) \ { \ return (OPENSSL_LHASH *)lh; \ } \ - static ossl_unused ossl_inline OPENSSL_LH_COMPFUNC ossl_check_##type##_lh_compfunc_type(lh_##type##_compfunc cmp) \ + static ossl_unused ossl_inline OPENSSL_LH_COMPFUNC \ + ossl_check_##type##_lh_compfunc_type(lh_##type##_compfunc cmp) \ { \ return (OPENSSL_LH_COMPFUNC)cmp; \ } \ - static ossl_unused ossl_inline OPENSSL_LH_HASHFUNC ossl_check_##type##_lh_hashfunc_type(lh_##type##_hashfunc hfn) \ + static ossl_unused ossl_inline OPENSSL_LH_HASHFUNC \ + ossl_check_##type##_lh_hashfunc_type(lh_##type##_hashfunc hfn) \ { \ return (OPENSSL_LH_HASHFUNC)hfn; \ } \ - static ossl_unused ossl_inline OPENSSL_LH_DOALL_FUNC ossl_check_##type##_lh_doallfunc_type(lh_##type##_doallfunc dfn) \ + static ossl_unused ossl_inline OPENSSL_LH_DOALL_FUNC \ + ossl_check_##type##_lh_doallfunc_type(lh_##type##_doallfunc dfn) \ { \ return (OPENSSL_LH_DOALL_FUNC)dfn; \ } \ LHASH_OF(type) -# define DEFINE_LHASH_OF(type) \ - LHASH_OF(type) { union lh_##type##_dummy { void* d1; unsigned long d2; int d3; } dummy; }; \ - static ossl_unused ossl_inline LHASH_OF(type) *lh_##type##_new(unsigned long (*hfn)(const type *), \ - int (*cfn)(const type *, const type *)) \ +# ifndef OPENSSL_NO_DEPRECATED_3_1 +# define DEFINE_LHASH_OF_DEPRECATED(type) \ + static ossl_unused ossl_inline void \ + lh_##type##_node_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ { \ - return (LHASH_OF(type) *) \ - OPENSSL_LH_new((OPENSSL_LH_HASHFUNC)hfn, (OPENSSL_LH_COMPFUNC)cfn); \ + OPENSSL_LH_node_stats_bio((const OPENSSL_LHASH *)lh, out); \ } \ - static ossl_unused ossl_inline void lh_##type##_free(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline void \ + lh_##type##_node_usage_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + { \ + OPENSSL_LH_node_usage_stats_bio((const OPENSSL_LHASH *)lh, out); \ + } \ + static ossl_unused ossl_inline void \ + lh_##type##_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + { \ + OPENSSL_LH_stats_bio((const OPENSSL_LHASH *)lh, out); \ + } +# else +# define DEFINE_LHASH_OF_DEPRECATED(type) +# endif + +# define DEFINE_LHASH_OF_EX(type) \ + LHASH_OF(type) { \ + union lh_##type##_dummy { void* d1; unsigned long d2; int d3; } dummy; \ + }; \ + static unsigned long \ + lh_##type##_hfn_thunk(const void *data, OPENSSL_LH_HASHFUNC hfn) \ + { \ + unsigned long (*hfn_conv)(const type *) = (unsigned long (*)(const type *))hfn; \ + return hfn_conv((const type *)data); \ + } \ + static int lh_##type##_cfn_thunk(const void *da, const void *db, OPENSSL_LH_COMPFUNC cfn) \ + { \ + int (*cfn_conv)(const type *, const type *) = (int (*)(const type *, const type *))cfn; \ + return cfn_conv((const type *)da, (const type *)db); \ + } \ + static ossl_unused ossl_inline void \ + lh_##type##_free(LHASH_OF(type) *lh) \ { \ OPENSSL_LH_free((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline void lh_##type##_flush(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline void \ + lh_##type##_flush(LHASH_OF(type) *lh) \ { \ OPENSSL_LH_flush((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline type *lh_##type##_insert(LHASH_OF(type) *lh, type *d) \ + static ossl_unused ossl_inline type * \ + lh_##type##_insert(LHASH_OF(type) *lh, type *d) \ { \ return (type *)OPENSSL_LH_insert((OPENSSL_LHASH *)lh, d); \ } \ - static ossl_unused ossl_inline type *lh_##type##_delete(LHASH_OF(type) *lh, const type *d) \ + static ossl_unused ossl_inline type * \ + lh_##type##_delete(LHASH_OF(type) *lh, const type *d) \ { \ return (type *)OPENSSL_LH_delete((OPENSSL_LHASH *)lh, d); \ } \ - static ossl_unused ossl_inline type *lh_##type##_retrieve(LHASH_OF(type) *lh, const type *d) \ + static ossl_unused ossl_inline type * \ + lh_##type##_retrieve(LHASH_OF(type) *lh, const type *d) \ { \ return (type *)OPENSSL_LH_retrieve((OPENSSL_LHASH *)lh, d); \ } \ - static ossl_unused ossl_inline int lh_##type##_error(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline int \ + lh_##type##_error(LHASH_OF(type) *lh) \ { \ return OPENSSL_LH_error((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline unsigned long lh_##type##_num_items(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline unsigned long \ + lh_##type##_num_items(LHASH_OF(type) *lh) \ { \ return OPENSSL_LH_num_items((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline void lh_##type##_node_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + static ossl_unused ossl_inline unsigned long \ + lh_##type##_get_down_load(LHASH_OF(type) *lh) \ { \ - OPENSSL_LH_node_stats_bio((const OPENSSL_LHASH *)lh, out); \ + return OPENSSL_LH_get_down_load((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline void lh_##type##_node_usage_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + static ossl_unused ossl_inline void \ + lh_##type##_set_down_load(LHASH_OF(type) *lh, unsigned long dl) \ { \ - OPENSSL_LH_node_usage_stats_bio((const OPENSSL_LHASH *)lh, out); \ + OPENSSL_LH_set_down_load((OPENSSL_LHASH *)lh, dl); \ } \ - static ossl_unused ossl_inline void lh_##type##_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall_thunk(void *node, OPENSSL_LH_DOALL_FUNC doall) \ { \ - OPENSSL_LH_stats_bio((const OPENSSL_LHASH *)lh, out); \ + void (*doall_conv)(type *) = (void (*)(type *))doall; \ + doall_conv((type *)node); \ } \ - static ossl_unused ossl_inline unsigned long lh_##type##_get_down_load(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall_arg_thunk(void *node, void *arg, OPENSSL_LH_DOALL_FUNCARG doall) \ { \ - return OPENSSL_LH_get_down_load((OPENSSL_LHASH *)lh); \ + void (*doall_conv)(type *, void *) = (void (*)(type *, void *))doall; \ + doall_conv((type *)node, arg); \ } \ - static ossl_unused ossl_inline void lh_##type##_set_down_load(LHASH_OF(type) *lh, unsigned long dl) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall(LHASH_OF(type) *lh, void (*doall)(type *)) \ { \ - OPENSSL_LH_set_down_load((OPENSSL_LHASH *)lh, dl); \ + OPENSSL_LH_doall((OPENSSL_LHASH *)lh, (OPENSSL_LH_DOALL_FUNC)doall); \ } \ - static ossl_unused ossl_inline void lh_##type##_doall(LHASH_OF(type) *lh, \ - void (*doall)(type *)) \ + static ossl_unused ossl_inline LHASH_OF(type) * \ + lh_##type##_new(unsigned long (*hfn)(const type *), \ + int (*cfn)(const type *, const type *)) \ { \ - OPENSSL_LH_doall((OPENSSL_LHASH *)lh, (OPENSSL_LH_DOALL_FUNC)doall); \ + return (LHASH_OF(type) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new((OPENSSL_LH_HASHFUNC)hfn, (OPENSSL_LH_COMPFUNC)cfn), \ + lh_##type##_hfn_thunk, lh_##type##_cfn_thunk, \ + lh_##type##_doall_thunk, \ + lh_##type##_doall_arg_thunk); \ } \ - static ossl_unused ossl_inline void lh_##type##_doall_arg(LHASH_OF(type) *lh, \ - void (*doallarg)(type *, void *), \ - void *arg) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall_arg(LHASH_OF(type) *lh, \ + void (*doallarg)(type *, void *), void *arg) \ { \ OPENSSL_LH_doall_arg((OPENSSL_LHASH *)lh, \ (OPENSSL_LH_DOALL_FUNCARG)doallarg, arg); \ } \ LHASH_OF(type) +# define DEFINE_LHASH_OF(type) \ + DEFINE_LHASH_OF_EX(type); \ + DEFINE_LHASH_OF_DEPRECATED(type) \ + LHASH_OF(type) + #define IMPLEMENT_LHASH_DOALL_ARG_CONST(type, argtype) \ int_implement_lhash_doall(type, argtype, const type) @@ -240,17 +341,26 @@ void OPENSSL_LH_node_usage_stats_bio(const OPENSSL_LHASH *lh, BIO *out); int_implement_lhash_doall(type, argtype, type) #define int_implement_lhash_doall(type, argtype, cbargtype) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall_##argtype##_thunk(void *node, void *arg, OPENSSL_LH_DOALL_FUNCARG fn) \ + { \ + void (*fn_conv)(cbargtype *, argtype *) = (void (*)(cbargtype *, argtype *))fn; \ + fn_conv((cbargtype *)node, (argtype *)arg); \ + } \ static ossl_unused ossl_inline void \ lh_##type##_doall_##argtype(LHASH_OF(type) *lh, \ void (*fn)(cbargtype *, argtype *), \ argtype *arg) \ { \ - OPENSSL_LH_doall_arg((OPENSSL_LHASH *)lh, (OPENSSL_LH_DOALL_FUNCARG)fn, (void *)arg); \ + OPENSSL_LH_doall_arg_thunk((OPENSSL_LHASH *)lh, \ + lh_##type##_doall_##argtype##_thunk, \ + (OPENSSL_LH_DOALL_FUNCARG)fn, \ + (void *)arg); \ } \ LHASH_OF(type) DEFINE_LHASH_OF_INTERNAL(OPENSSL_STRING); -#define lh_OPENSSL_STRING_new(hfn, cmp) ((LHASH_OF(OPENSSL_STRING) *)OPENSSL_LH_new(ossl_check_OPENSSL_STRING_lh_hashfunc_type(hfn), ossl_check_OPENSSL_STRING_lh_compfunc_type(cmp))) +#define lh_OPENSSL_STRING_new(hfn, cmp) ((LHASH_OF(OPENSSL_STRING) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new(ossl_check_OPENSSL_STRING_lh_hashfunc_type(hfn), ossl_check_OPENSSL_STRING_lh_compfunc_type(cmp)), lh_OPENSSL_STRING_hash_thunk, lh_OPENSSL_STRING_comp_thunk, lh_OPENSSL_STRING_doall_thunk, lh_OPENSSL_STRING_doall_arg_thunk)) #define lh_OPENSSL_STRING_free(lh) OPENSSL_LH_free(ossl_check_OPENSSL_STRING_lh_type(lh)) #define lh_OPENSSL_STRING_flush(lh) OPENSSL_LH_flush(ossl_check_OPENSSL_STRING_lh_type(lh)) #define lh_OPENSSL_STRING_insert(lh, ptr) ((OPENSSL_STRING *)OPENSSL_LH_insert(ossl_check_OPENSSL_STRING_lh_type(lh), ossl_check_OPENSSL_STRING_lh_plain_type(ptr))) @@ -265,7 +375,7 @@ DEFINE_LHASH_OF_INTERNAL(OPENSSL_STRING); #define lh_OPENSSL_STRING_set_down_load(lh, dl) OPENSSL_LH_set_down_load(ossl_check_OPENSSL_STRING_lh_type(lh), dl) #define lh_OPENSSL_STRING_doall(lh, dfn) OPENSSL_LH_doall(ossl_check_OPENSSL_STRING_lh_type(lh), ossl_check_OPENSSL_STRING_lh_doallfunc_type(dfn)) DEFINE_LHASH_OF_INTERNAL(OPENSSL_CSTRING); -#define lh_OPENSSL_CSTRING_new(hfn, cmp) ((LHASH_OF(OPENSSL_CSTRING) *)OPENSSL_LH_new(ossl_check_OPENSSL_CSTRING_lh_hashfunc_type(hfn), ossl_check_OPENSSL_CSTRING_lh_compfunc_type(cmp))) +#define lh_OPENSSL_CSTRING_new(hfn, cmp) ((LHASH_OF(OPENSSL_CSTRING) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new(ossl_check_OPENSSL_CSTRING_lh_hashfunc_type(hfn), ossl_check_OPENSSL_CSTRING_lh_compfunc_type(cmp)), lh_OPENSSL_CSTRING_hash_thunk, lh_OPENSSL_CSTRING_comp_thunk, lh_OPENSSL_CSTRING_doall_thunk, lh_OPENSSL_CSTRING_doall_arg_thunk)) #define lh_OPENSSL_CSTRING_free(lh) OPENSSL_LH_free(ossl_check_OPENSSL_CSTRING_lh_type(lh)) #define lh_OPENSSL_CSTRING_flush(lh) OPENSSL_LH_flush(ossl_check_OPENSSL_CSTRING_lh_type(lh)) #define lh_OPENSSL_CSTRING_insert(lh, ptr) ((OPENSSL_CSTRING *)OPENSSL_LH_insert(ossl_check_OPENSSL_CSTRING_lh_type(lh), ossl_check_OPENSSL_CSTRING_lh_plain_type(ptr))) diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/include/openssl/opensslv.h b/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/include/openssl/opensslv.h index 5fb5bc63056fe0..dd50d89cb9982d 100644 --- a/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/include/openssl/opensslv.h +++ b/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/include/openssl/opensslv.h @@ -28,8 +28,8 @@ extern "C" { * These macros express version number MAJOR.MINOR.PATCH exactly */ # define OPENSSL_VERSION_MAJOR 3 -# define OPENSSL_VERSION_MINOR 0 -# define OPENSSL_VERSION_PATCH 17 +# define OPENSSL_VERSION_MINOR 5 +# define OPENSSL_VERSION_PATCH 1 /* * Additional version information @@ -74,8 +74,8 @@ extern "C" { * longer variant with OPENSSL_VERSION_PRE_RELEASE_STR and * OPENSSL_VERSION_BUILD_METADATA_STR appended. */ -# define OPENSSL_VERSION_STR "3.0.17" -# define OPENSSL_FULL_VERSION_STR "3.0.17" +# define OPENSSL_VERSION_STR "3.5.1" +# define OPENSSL_FULL_VERSION_STR "3.5.1" /* * SECTION 3: ADDITIONAL METADATA @@ -88,7 +88,7 @@ extern "C" { * SECTION 4: BACKWARD COMPATIBILITY */ -# define OPENSSL_VERSION_TEXT "OpenSSL 3.0.17 1 Jul 2025" +# define OPENSSL_VERSION_TEXT "OpenSSL 3.5.1 1 Jul 2025" /* Synthesize OPENSSL_VERSION_NUMBER with the layout 0xMNN00PPSL */ # ifdef OPENSSL_VERSION_PRE_RELEASE diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/include/openssl/pkcs12.h b/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/include/openssl/pkcs12.h index c5e0cab06491ec..0809645dad0bbf 100644 --- a/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/include/openssl/pkcs12.h +++ b/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/include/openssl/pkcs12.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/pkcs12.h.in * - * Copyright 1999-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1999-2024 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -25,6 +25,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -41,6 +44,7 @@ extern "C" { # define PKCS12_MAC_KEY_LENGTH 20 +/* The macro is expected to be used only internally. Kept for backwards compatibility. */ # define PKCS12_SALT_LEN 8 /* It's not clear if these are actually needed... */ @@ -130,7 +134,9 @@ int PKCS12_SAFEBAG_get_bag_nid(const PKCS12_SAFEBAG *bag); const ASN1_TYPE *PKCS12_SAFEBAG_get0_bag_obj(const PKCS12_SAFEBAG *bag); const ASN1_OBJECT *PKCS12_SAFEBAG_get0_bag_type(const PKCS12_SAFEBAG *bag); +X509 *PKCS12_SAFEBAG_get1_cert_ex(const PKCS12_SAFEBAG *bag, OSSL_LIB_CTX *libctx, const char *propq); X509 *PKCS12_SAFEBAG_get1_cert(const PKCS12_SAFEBAG *bag); +X509_CRL *PKCS12_SAFEBAG_get1_crl_ex(const PKCS12_SAFEBAG *bag, OSSL_LIB_CTX *libctx, const char *propq); X509_CRL *PKCS12_SAFEBAG_get1_crl(const PKCS12_SAFEBAG *bag); const STACK_OF(PKCS12_SAFEBAG) * PKCS12_SAFEBAG_get0_safes(const PKCS12_SAFEBAG *bag); @@ -218,6 +224,7 @@ ASN1_TYPE *PKCS12_get_attr_gen(const STACK_OF(X509_ATTRIBUTE) *attrs, char *PKCS12_get_friendlyname(PKCS12_SAFEBAG *bag); const STACK_OF(X509_ATTRIBUTE) * PKCS12_SAFEBAG_get0_attrs(const PKCS12_SAFEBAG *bag); +void PKCS12_SAFEBAG_set0_attrs(PKCS12_SAFEBAG *bag, STACK_OF(X509_ATTRIBUTE) *attrs); unsigned char *PKCS12_pbe_crypt(const X509_ALGOR *algor, const char *pass, int passlen, const unsigned char *in, int inlen, @@ -285,6 +292,9 @@ int PKCS12_verify_mac(PKCS12 *p12, const char *pass, int passlen); int PKCS12_set_mac(PKCS12 *p12, const char *pass, int passlen, unsigned char *salt, int saltlen, int iter, const EVP_MD *md_type); +int PKCS12_set_pbmac1_pbkdf2(PKCS12 *p12, const char *pass, int passlen, + unsigned char *salt, int saltlen, int iter, + const EVP_MD *md_type, const char *prf_md_name); int PKCS12_setup_mac(PKCS12 *p12, int iter, unsigned char *salt, int saltlen, const EVP_MD *md_type); unsigned char *OPENSSL_asc2uni(const char *asc, int asclen, @@ -305,6 +315,7 @@ DECLARE_ASN1_ITEM(PKCS12_AUTHSAFES) void PKCS12_PBE_add(void); int PKCS12_parse(PKCS12 *p12, const char *pass, EVP_PKEY **pkey, X509 **cert, STACK_OF(X509) **ca); +typedef int PKCS12_create_cb(PKCS12_SAFEBAG *bag, void *cbarg); PKCS12 *PKCS12_create(const char *pass, const char *name, EVP_PKEY *pkey, X509 *cert, STACK_OF(X509) *ca, int nid_key, int nid_cert, int iter, int mac_iter, int keytype); @@ -312,6 +323,11 @@ PKCS12 *PKCS12_create_ex(const char *pass, const char *name, EVP_PKEY *pkey, X509 *cert, STACK_OF(X509) *ca, int nid_key, int nid_cert, int iter, int mac_iter, int keytype, OSSL_LIB_CTX *ctx, const char *propq); +PKCS12 *PKCS12_create_ex2(const char *pass, const char *name, EVP_PKEY *pkey, + X509 *cert, STACK_OF(X509) *ca, int nid_key, int nid_cert, + int iter, int mac_iter, int keytype, + OSSL_LIB_CTX *ctx, const char *propq, + PKCS12_create_cb *cb, void *cbarg); PKCS12_SAFEBAG *PKCS12_add_cert(STACK_OF(PKCS12_SAFEBAG) **pbags, X509 *cert); PKCS12_SAFEBAG *PKCS12_add_key(STACK_OF(PKCS12_SAFEBAG) **pbags, diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/include/openssl/pkcs7.h b/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/include/openssl/pkcs7.h index 0ce79bf4fa160e..fa68462aff973b 100644 --- a/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/include/openssl/pkcs7.h +++ b/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/include/openssl/pkcs7.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/pkcs7.h.in * - * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -28,6 +28,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -131,8 +134,8 @@ SKM_DEFINE_STACK_OF_INTERNAL(PKCS7_RECIP_INFO, PKCS7_RECIP_INFO, PKCS7_RECIP_INF typedef struct pkcs7_signed_st { ASN1_INTEGER *version; /* version 1 */ STACK_OF(X509_ALGOR) *md_algs; /* md used */ - STACK_OF(X509) *cert; /* [ 0 ] */ - STACK_OF(X509_CRL) *crl; /* [ 1 ] */ + STACK_OF(X509) *cert; /* [ 0 ] */ /* name should be 'certificates' */ + STACK_OF(X509_CRL) *crl; /* [ 1 ] */ /* name should be 'crls' */ STACK_OF(PKCS7_SIGNER_INFO) *signer_info; struct pkcs7_st *contents; } PKCS7_SIGNED; @@ -158,8 +161,8 @@ typedef struct pkcs7_enveloped_st { typedef struct pkcs7_signedandenveloped_st { ASN1_INTEGER *version; /* version 1 */ STACK_OF(X509_ALGOR) *md_algs; /* md used */ - STACK_OF(X509) *cert; /* [ 0 ] */ - STACK_OF(X509_CRL) *crl; /* [ 1 ] */ + STACK_OF(X509) *cert; /* [ 0 ] */ /* name should be 'certificates' */ + STACK_OF(X509_CRL) *crl; /* [ 1 ] */ /* name should be 'crls' */ STACK_OF(PKCS7_SIGNER_INFO) *signer_info; PKCS7_ENC_CONTENT *enc_data; STACK_OF(PKCS7_RECIP_INFO) *recipientinfo; @@ -200,7 +203,7 @@ typedef struct pkcs7_st { /* NID_pkcs7_data */ ASN1_OCTET_STRING *data; /* NID_pkcs7_signed */ - PKCS7_SIGNED *sign; + PKCS7_SIGNED *sign; /* field name 'signed' would clash with C keyword */ /* NID_pkcs7_enveloped */ PKCS7_ENVELOPE *enveloped; /* NID_pkcs7_signedAndEnveloped */ @@ -341,13 +344,13 @@ int PKCS7_SIGNER_INFO_set(PKCS7_SIGNER_INFO *p7i, X509 *x509, EVP_PKEY *pkey, const EVP_MD *dgst); int PKCS7_SIGNER_INFO_sign(PKCS7_SIGNER_INFO *si); int PKCS7_add_signer(PKCS7 *p7, PKCS7_SIGNER_INFO *p7i); -int PKCS7_add_certificate(PKCS7 *p7, X509 *x509); -int PKCS7_add_crl(PKCS7 *p7, X509_CRL *x509); +int PKCS7_add_certificate(PKCS7 *p7, X509 *cert); +int PKCS7_add_crl(PKCS7 *p7, X509_CRL *crl); int PKCS7_content_new(PKCS7 *p7, int nid); int PKCS7_dataVerify(X509_STORE *cert_store, X509_STORE_CTX *ctx, BIO *bio, PKCS7 *p7, PKCS7_SIGNER_INFO *si); int PKCS7_signatureVerify(BIO *bio, PKCS7 *p7, PKCS7_SIGNER_INFO *si, - X509 *x509); + X509 *signer); BIO *PKCS7_dataInit(PKCS7 *p7, BIO *bio); int PKCS7_dataFinal(PKCS7 *p7, BIO *bio); diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/include/openssl/ssl.h b/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/include/openssl/ssl.h index 3df725c56d6c5e..7e3d89c7ef3dc9 100644 --- a/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/include/openssl/ssl.h +++ b/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/include/openssl/ssl.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/ssl.h.in * - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved * Copyright 2005 Nokia. All rights reserved. * @@ -24,6 +24,7 @@ # endif # include +# include # include # include # include @@ -42,6 +43,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -231,10 +235,8 @@ typedef struct ssl_cipher_st SSL_CIPHER; typedef struct ssl_session_st SSL_SESSION; typedef struct tls_sigalgs_st TLS_SIGALGS; typedef struct ssl_conf_ctx_st SSL_CONF_CTX; -typedef struct ssl_comp_st SSL_COMP; STACK_OF(SSL_CIPHER); -STACK_OF(SSL_COMP); /* SRTP protection profiles for use with the use_srtp extension (RFC 5764)*/ typedef struct srtp_protection_profile_st { @@ -278,28 +280,31 @@ typedef int (*tls_session_secret_cb_fn)(SSL *s, void *secret, int *secret_len, /* Extension context codes */ /* This extension is only allowed in TLS */ -#define SSL_EXT_TLS_ONLY 0x0001 +#define SSL_EXT_TLS_ONLY 0x00001 /* This extension is only allowed in DTLS */ -#define SSL_EXT_DTLS_ONLY 0x0002 +#define SSL_EXT_DTLS_ONLY 0x00002 /* Some extensions may be allowed in DTLS but we don't implement them for it */ -#define SSL_EXT_TLS_IMPLEMENTATION_ONLY 0x0004 +#define SSL_EXT_TLS_IMPLEMENTATION_ONLY 0x00004 /* Most extensions are not defined for SSLv3 but EXT_TYPE_renegotiate is */ -#define SSL_EXT_SSL3_ALLOWED 0x0008 +#define SSL_EXT_SSL3_ALLOWED 0x00008 /* Extension is only defined for TLS1.2 and below */ -#define SSL_EXT_TLS1_2_AND_BELOW_ONLY 0x0010 +#define SSL_EXT_TLS1_2_AND_BELOW_ONLY 0x00010 /* Extension is only defined for TLS1.3 and above */ -#define SSL_EXT_TLS1_3_ONLY 0x0020 +#define SSL_EXT_TLS1_3_ONLY 0x00020 /* Ignore this extension during parsing if we are resuming */ -#define SSL_EXT_IGNORE_ON_RESUMPTION 0x0040 -#define SSL_EXT_CLIENT_HELLO 0x0080 +#define SSL_EXT_IGNORE_ON_RESUMPTION 0x00040 +#define SSL_EXT_CLIENT_HELLO 0x00080 /* Really means TLS1.2 or below */ -#define SSL_EXT_TLS1_2_SERVER_HELLO 0x0100 -#define SSL_EXT_TLS1_3_SERVER_HELLO 0x0200 -#define SSL_EXT_TLS1_3_ENCRYPTED_EXTENSIONS 0x0400 -#define SSL_EXT_TLS1_3_HELLO_RETRY_REQUEST 0x0800 -#define SSL_EXT_TLS1_3_CERTIFICATE 0x1000 -#define SSL_EXT_TLS1_3_NEW_SESSION_TICKET 0x2000 -#define SSL_EXT_TLS1_3_CERTIFICATE_REQUEST 0x4000 +#define SSL_EXT_TLS1_2_SERVER_HELLO 0x00100 +#define SSL_EXT_TLS1_3_SERVER_HELLO 0x00200 +#define SSL_EXT_TLS1_3_ENCRYPTED_EXTENSIONS 0x00400 +#define SSL_EXT_TLS1_3_HELLO_RETRY_REQUEST 0x00800 +#define SSL_EXT_TLS1_3_CERTIFICATE 0x01000 +#define SSL_EXT_TLS1_3_NEW_SESSION_TICKET 0x02000 +#define SSL_EXT_TLS1_3_CERTIFICATE_REQUEST 0x04000 +#define SSL_EXT_TLS1_3_CERTIFICATE_COMPRESSION 0x08000 +/* When sending a raw public key in a certificate message */ +#define SSL_EXT_TLS1_3_RAW_PUBLIC_KEY 0x10000 /* Typedefs for handling custom extensions */ @@ -404,7 +409,7 @@ typedef int (*SSL_async_callback_fn)(SSL *s, void *arg); */ # define SSL_OP_CIPHER_SERVER_PREFERENCE SSL_OP_BIT(22) /* - * If set, a server will allow a client to issue a SSLv3.0 version + * If set, a server will allow a client to issue an SSLv3.0 version * number as latest version supported in the premaster secret, even when * TLSv1.0 (version 3.1) was announced in the client hello. Normally * this is forbidden to prevent version rollback attacks. @@ -430,6 +435,19 @@ typedef int (*SSL_async_callback_fn)(SSL *s, void *arg); * interoperability with CryptoPro CSP 3.x */ # define SSL_OP_CRYPTOPRO_TLSEXT_BUG SSL_OP_BIT(31) +/* + * Disable RFC8879 certificate compression + * SSL_OP_NO_TX_CERTIFICATE_COMPRESSION: don't send compressed certificates, + * and ignore the extension when received. + * SSL_OP_NO_RX_CERTIFICATE_COMPRESSION: don't send the extension, and + * subsequently indicating that receiving is not supported + */ +# define SSL_OP_NO_TX_CERTIFICATE_COMPRESSION SSL_OP_BIT(32) +# define SSL_OP_NO_RX_CERTIFICATE_COMPRESSION SSL_OP_BIT(33) + /* Enable KTLS TX zerocopy on Linux */ +# define SSL_OP_ENABLE_KTLS_TX_ZEROCOPY_SENDFILE SSL_OP_BIT(34) + +#define SSL_OP_PREFER_NO_DHE_KEX SSL_OP_BIT(35) /* * Option "collections." @@ -574,6 +592,8 @@ typedef int (*SSL_async_callback_fn)(SSL *s, void *arg); # define CERT_PKEY_CERT_TYPE 0x400 /* Cert chain suitable to Suite B */ # define CERT_PKEY_SUITEB 0x800 +/* Cert pkey valid for raw public key use */ +# define CERT_PKEY_RPK 0x1000 # define SSL_CONF_FLAG_CMDLINE 0x1 # define SSL_CONF_FLAG_FILE 0x2 @@ -965,6 +985,7 @@ uint32_t SSL_get_recv_max_early_data(const SSL *s); # include /* This is mostly sslv3 with a few tweaks */ # include /* Datagram TLS */ # include /* Support for the use_srtp extension */ +# include #ifdef __cplusplus extern "C" { @@ -1000,32 +1021,6 @@ SKM_DEFINE_STACK_OF_INTERNAL(SSL_CIPHER, const SSL_CIPHER, SSL_CIPHER) #define sk_SSL_CIPHER_dup(sk) ((STACK_OF(SSL_CIPHER) *)OPENSSL_sk_dup(ossl_check_const_SSL_CIPHER_sk_type(sk))) #define sk_SSL_CIPHER_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(SSL_CIPHER) *)OPENSSL_sk_deep_copy(ossl_check_const_SSL_CIPHER_sk_type(sk), ossl_check_SSL_CIPHER_copyfunc_type(copyfunc), ossl_check_SSL_CIPHER_freefunc_type(freefunc))) #define sk_SSL_CIPHER_set_cmp_func(sk, cmp) ((sk_SSL_CIPHER_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_SSL_CIPHER_sk_type(sk), ossl_check_SSL_CIPHER_compfunc_type(cmp))) -SKM_DEFINE_STACK_OF_INTERNAL(SSL_COMP, SSL_COMP, SSL_COMP) -#define sk_SSL_COMP_num(sk) OPENSSL_sk_num(ossl_check_const_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_value(sk, idx) ((SSL_COMP *)OPENSSL_sk_value(ossl_check_const_SSL_COMP_sk_type(sk), (idx))) -#define sk_SSL_COMP_new(cmp) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new(ossl_check_SSL_COMP_compfunc_type(cmp))) -#define sk_SSL_COMP_new_null() ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new_null()) -#define sk_SSL_COMP_new_reserve(cmp, n) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new_reserve(ossl_check_SSL_COMP_compfunc_type(cmp), (n))) -#define sk_SSL_COMP_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_SSL_COMP_sk_type(sk), (n)) -#define sk_SSL_COMP_free(sk) OPENSSL_sk_free(ossl_check_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_zero(sk) OPENSSL_sk_zero(ossl_check_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_delete(sk, i) ((SSL_COMP *)OPENSSL_sk_delete(ossl_check_SSL_COMP_sk_type(sk), (i))) -#define sk_SSL_COMP_delete_ptr(sk, ptr) ((SSL_COMP *)OPENSSL_sk_delete_ptr(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr))) -#define sk_SSL_COMP_push(sk, ptr) OPENSSL_sk_push(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) -#define sk_SSL_COMP_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) -#define sk_SSL_COMP_pop(sk) ((SSL_COMP *)OPENSSL_sk_pop(ossl_check_SSL_COMP_sk_type(sk))) -#define sk_SSL_COMP_shift(sk) ((SSL_COMP *)OPENSSL_sk_shift(ossl_check_SSL_COMP_sk_type(sk))) -#define sk_SSL_COMP_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_SSL_COMP_sk_type(sk),ossl_check_SSL_COMP_freefunc_type(freefunc)) -#define sk_SSL_COMP_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr), (idx)) -#define sk_SSL_COMP_set(sk, idx, ptr) ((SSL_COMP *)OPENSSL_sk_set(ossl_check_SSL_COMP_sk_type(sk), (idx), ossl_check_SSL_COMP_type(ptr))) -#define sk_SSL_COMP_find(sk, ptr) OPENSSL_sk_find(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) -#define sk_SSL_COMP_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) -#define sk_SSL_COMP_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr), pnum) -#define sk_SSL_COMP_sort(sk) OPENSSL_sk_sort(ossl_check_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_dup(sk) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_dup(ossl_check_const_SSL_COMP_sk_type(sk))) -#define sk_SSL_COMP_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_deep_copy(ossl_check_const_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_copyfunc_type(copyfunc), ossl_check_SSL_COMP_freefunc_type(freefunc))) -#define sk_SSL_COMP_set_cmp_func(sk, cmp) ((sk_SSL_COMP_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_compfunc_type(cmp))) /* compatibility */ @@ -1066,6 +1061,7 @@ typedef enum { DTLS_ST_CR_HELLO_VERIFY_REQUEST, TLS_ST_CR_SRVR_HELLO, TLS_ST_CR_CERT, + TLS_ST_CR_COMP_CERT, TLS_ST_CR_CERT_STATUS, TLS_ST_CR_KEY_EXCH, TLS_ST_CR_CERT_REQ, @@ -1075,6 +1071,7 @@ typedef enum { TLS_ST_CR_FINISHED, TLS_ST_CW_CLNT_HELLO, TLS_ST_CW_CERT, + TLS_ST_CW_COMP_CERT, TLS_ST_CW_KEY_EXCH, TLS_ST_CW_CERT_VRFY, TLS_ST_CW_CHANGE, @@ -1085,10 +1082,12 @@ typedef enum { DTLS_ST_SW_HELLO_VERIFY_REQUEST, TLS_ST_SW_SRVR_HELLO, TLS_ST_SW_CERT, + TLS_ST_SW_COMP_CERT, TLS_ST_SW_KEY_EXCH, TLS_ST_SW_CERT_REQ, TLS_ST_SW_SRVR_DONE, TLS_ST_SR_CERT, + TLS_ST_SR_COMP_CERT, TLS_ST_SR_KEY_EXCH, TLS_ST_SR_CERT_VRFY, TLS_ST_SR_NEXT_PROTO, @@ -1380,9 +1379,13 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) # define SSL_CTRL_GET_SIGNATURE_NID 132 # define SSL_CTRL_GET_TMP_KEY 133 # define SSL_CTRL_GET_NEGOTIATED_GROUP 134 +# define SSL_CTRL_GET_IANA_GROUPS 135 # define SSL_CTRL_SET_RETRY_VERIFY 136 # define SSL_CTRL_GET_VERIFY_CERT_STORE 137 # define SSL_CTRL_GET_CHAIN_CERT_STORE 138 +# define SSL_CTRL_GET0_IMPLEMENTED_GROUPS 139 +# define SSL_CTRL_GET_SIGNATURE_NAME 140 +# define SSL_CTRL_GET_PEER_SIGNATURE_NAME 141 # define SSL_CERT_SET_FIRST 1 # define SSL_CERT_SET_NEXT 2 # define SSL_CERT_SET_SERVER 3 @@ -1485,10 +1488,15 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) # define SSL_get1_groups(s, glist) \ SSL_ctrl(s,SSL_CTRL_GET_GROUPS,0,(int*)(glist)) +# define SSL_get0_iana_groups(s, plst) \ + SSL_ctrl(s,SSL_CTRL_GET_IANA_GROUPS,0,(uint16_t **)(plst)) # define SSL_CTX_set1_groups(ctx, glist, glistlen) \ SSL_CTX_ctrl(ctx,SSL_CTRL_SET_GROUPS,glistlen,(int *)(glist)) # define SSL_CTX_set1_groups_list(ctx, s) \ SSL_CTX_ctrl(ctx,SSL_CTRL_SET_GROUPS_LIST,0,(char *)(s)) +# define SSL_CTX_get0_implemented_groups(ctx, all, out) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_GET0_IMPLEMENTED_GROUPS, all, \ + (STACK_OF(OPENSSL_CSTRING) *)(out)) # define SSL_set1_groups(s, glist, glistlen) \ SSL_ctrl(s,SSL_CTRL_SET_GROUPS,glistlen,(char *)(glist)) # define SSL_set1_groups_list(s, str) \ @@ -1520,8 +1528,12 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) (char *)(clist)) # define SSL_set1_client_certificate_types(s, clist, clistlen) \ SSL_ctrl(s,SSL_CTRL_SET_CLIENT_CERT_TYPES,clistlen,(char *)(clist)) +# define SSL_get0_signature_name(s, str) \ + SSL_ctrl(s,SSL_CTRL_GET_SIGNATURE_NAME,0,(1?(str):(const char **)NULL)) # define SSL_get_signature_nid(s, pn) \ SSL_ctrl(s,SSL_CTRL_GET_SIGNATURE_NID,0,pn) +# define SSL_get0_peer_signature_name(s, str) \ + SSL_ctrl(s,SSL_CTRL_GET_PEER_SIGNATURE_NAME,0,(1?(str):(const char **)NULL)) # define SSL_get_peer_signature_nid(s, pn) \ SSL_ctrl(s,SSL_CTRL_GET_PEER_SIGNATURE_NID,0,pn) # define SSL_get_peer_tmp_key(s, pk) \ @@ -1549,6 +1561,7 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) # define SSL_get_max_proto_version(s) \ SSL_ctrl(s, SSL_CTRL_GET_MAX_PROTO_VERSION, 0, NULL) +const char *SSL_get0_group_name(SSL *s); const char *SSL_group_to_name(SSL *s, int id); /* Backwards compatibility, original 1.1.0 names */ @@ -1613,7 +1626,11 @@ void SSL_CTX_set1_cert_store(SSL_CTX *, X509_STORE *); __owur int SSL_want(const SSL *s); __owur int SSL_clear(SSL *s); +#ifndef OPENSSL_NO_DEPRECATED_3_4 +OSSL_DEPRECATEDIN_3_4_FOR("not Y2038-safe, replace with SSL_CTX_flush_sessions_ex()") void SSL_CTX_flush_sessions(SSL_CTX *ctx, long tm); +#endif +void SSL_CTX_flush_sessions_ex(SSL_CTX *ctx, time_t tm); __owur const SSL_CIPHER *SSL_get_current_cipher(const SSL *s); __owur const SSL_CIPHER *SSL_get_pending_cipher(const SSL *s); @@ -1725,13 +1742,21 @@ __owur const char *SSL_state_string(const SSL *s); __owur const char *SSL_rstate_string(const SSL *s); __owur const char *SSL_state_string_long(const SSL *s); __owur const char *SSL_rstate_string_long(const SSL *s); + +#ifndef OPENSSL_NO_DEPRECATED_3_4 +OSSL_DEPRECATEDIN_3_4_FOR("not Y2038-safe, replace with SSL_SESSION_get_time_ex()") __owur long SSL_SESSION_get_time(const SSL_SESSION *s); +OSSL_DEPRECATEDIN_3_4_FOR("not Y2038-safe, replace with SSL_SESSION_set_time_ex()") __owur long SSL_SESSION_set_time(SSL_SESSION *s, long t); +#endif __owur long SSL_SESSION_get_timeout(const SSL_SESSION *s); __owur long SSL_SESSION_set_timeout(SSL_SESSION *s, long t); __owur int SSL_SESSION_get_protocol_version(const SSL_SESSION *s); __owur int SSL_SESSION_set_protocol_version(SSL_SESSION *s, int version); +__owur time_t SSL_SESSION_get_time_ex(const SSL_SESSION *s); +__owur time_t SSL_SESSION_set_time_ex(SSL_SESSION *s, time_t t); + __owur const char *SSL_SESSION_get0_hostname(const SSL_SESSION *s); __owur int SSL_SESSION_set1_hostname(SSL_SESSION *s, const char *hostname); void SSL_SESSION_get0_alpn_selected(const SSL_SESSION *s, @@ -1783,6 +1808,9 @@ __owur int SSL_has_matching_session_id(const SSL *s, unsigned int id_len); SSL_SESSION *d2i_SSL_SESSION(SSL_SESSION **a, const unsigned char **pp, long length); +SSL_SESSION *d2i_SSL_SESSION_ex(SSL_SESSION **a, const unsigned char **pp, + long length, OSSL_LIB_CTX *libctx, + const char *propq); # ifdef OPENSSL_X509_H __owur X509 *SSL_get0_peer_certificate(const SSL *s); @@ -1840,6 +1868,8 @@ __owur int SSL_CTX_set_session_id_context(SSL_CTX *ctx, SSL *SSL_new(SSL_CTX *ctx); int SSL_up_ref(SSL *s); int SSL_is_dtls(const SSL *s); +int SSL_is_tls(const SSL *s); +int SSL_is_quic(const SSL *s); __owur int SSL_set_session_id_context(SSL *ssl, const unsigned char *sid_ctx, unsigned int sid_ctx_len); @@ -1848,8 +1878,8 @@ __owur int SSL_set_purpose(SSL *ssl, int purpose); __owur int SSL_CTX_set_trust(SSL_CTX *ctx, int trust); __owur int SSL_set_trust(SSL *ssl, int trust); -__owur int SSL_set1_host(SSL *s, const char *hostname); -__owur int SSL_add1_host(SSL *s, const char *hostname); +__owur int SSL_set1_host(SSL *s, const char *host); +__owur int SSL_add1_host(SSL *s, const char *host); __owur const char *SSL_get0_peername(SSL *s); void SSL_set_hostflags(SSL *s, unsigned int flags); @@ -1924,6 +1954,11 @@ OSSL_DEPRECATEDIN_3_0 __owur char *SSL_get_srp_userinfo(SSL *s); typedef int (*SSL_client_hello_cb_fn) (SSL *s, int *al, void *arg); void SSL_CTX_set_client_hello_cb(SSL_CTX *c, SSL_client_hello_cb_fn cb, void *arg); +typedef int (*SSL_new_pending_conn_cb_fn) (SSL_CTX *ctx, SSL *new_ssl, + void *arg); +void SSL_CTX_set_new_pending_conn_cb(SSL_CTX *c, SSL_new_pending_conn_cb_fn cb, + void *arg); + int SSL_client_hello_isv2(SSL *s); unsigned int SSL_client_hello_get0_legacy_version(SSL *s); size_t SSL_client_hello_get0_random(SSL *s, const unsigned char **out); @@ -1932,6 +1967,8 @@ size_t SSL_client_hello_get0_ciphers(SSL *s, const unsigned char **out); size_t SSL_client_hello_get0_compression_methods(SSL *s, const unsigned char **out); int SSL_client_hello_get1_extensions_present(SSL *s, int **out, size_t *outlen); +int SSL_client_hello_get_extension_order(SSL *s, uint16_t *exts, + size_t *num_exts); int SSL_client_hello_get0_ext(SSL *s, unsigned int type, const unsigned char **out, size_t *outlen); @@ -1978,6 +2015,12 @@ long SSL_callback_ctrl(SSL *, int, void (*)(void)); long SSL_CTX_ctrl(SSL_CTX *ctx, int cmd, long larg, void *parg); long SSL_CTX_callback_ctrl(SSL_CTX *, int, void (*)(void)); +# define SSL_WRITE_FLAG_CONCLUDE (1U << 0) + +__owur int SSL_write_ex2(SSL *s, const void *buf, size_t num, + uint64_t flags, + size_t *written); + # define SSL_EARLY_DATA_NOT_SENT 0 # define SSL_EARLY_DATA_REJECTED 1 # define SSL_EARLY_DATA_ACCEPTED 2 @@ -1986,6 +2029,7 @@ __owur int SSL_get_early_data_status(const SSL *s); __owur int SSL_get_error(const SSL *s, int ret_code); __owur const char *SSL_get_version(const SSL *s); +__owur int SSL_get_handshake_rtt(const SSL *s, uint64_t *rtt); /* This sets the 'default' SSL version that SSL_new() will create */ # ifndef OPENSSL_NO_DEPRECATED_3_0 @@ -2281,6 +2325,8 @@ void SSL_CTX_set_record_padding_callback(SSL_CTX *ctx, void SSL_CTX_set_record_padding_callback_arg(SSL_CTX *ctx, void *arg); void *SSL_CTX_get_record_padding_callback_arg(const SSL_CTX *ctx); int SSL_CTX_set_block_padding(SSL_CTX *ctx, size_t block_size); +int SSL_CTX_set_block_padding_ex(SSL_CTX *ctx, size_t app_block_size, + size_t hs_block_size); int SSL_set_record_padding_callback(SSL *ssl, size_t (*cb) (SSL *ssl, int type, @@ -2288,12 +2334,255 @@ int SSL_set_record_padding_callback(SSL *ssl, void SSL_set_record_padding_callback_arg(SSL *ssl, void *arg); void *SSL_get_record_padding_callback_arg(const SSL *ssl); int SSL_set_block_padding(SSL *ssl, size_t block_size); - +int SSL_set_block_padding_ex(SSL *ssl, size_t app_block_size, + size_t hs_block_size); int SSL_set_num_tickets(SSL *s, size_t num_tickets); size_t SSL_get_num_tickets(const SSL *s); int SSL_CTX_set_num_tickets(SSL_CTX *ctx, size_t num_tickets); size_t SSL_CTX_get_num_tickets(const SSL_CTX *ctx); +/* QUIC support */ +int SSL_handle_events(SSL *s); +__owur int SSL_get_event_timeout(SSL *s, struct timeval *tv, int *is_infinite); +__owur int SSL_get_rpoll_descriptor(SSL *s, BIO_POLL_DESCRIPTOR *desc); +__owur int SSL_get_wpoll_descriptor(SSL *s, BIO_POLL_DESCRIPTOR *desc); +__owur int SSL_net_read_desired(SSL *s); +__owur int SSL_net_write_desired(SSL *s); +__owur int SSL_set_blocking_mode(SSL *s, int blocking); +__owur int SSL_get_blocking_mode(SSL *s); +__owur int SSL_set1_initial_peer_addr(SSL *s, const BIO_ADDR *peer_addr); +__owur SSL *SSL_get0_connection(SSL *s); +__owur int SSL_is_connection(SSL *s); + +__owur int SSL_is_listener(SSL *ssl); +__owur SSL *SSL_get0_listener(SSL *s); +#define SSL_LISTENER_FLAG_NO_VALIDATE (1UL << 1) +__owur SSL *SSL_new_listener(SSL_CTX *ctx, uint64_t flags); +__owur SSL *SSL_new_listener_from(SSL *ssl, uint64_t flags); +__owur SSL *SSL_new_from_listener(SSL *ssl, uint64_t flags); +#define SSL_ACCEPT_CONNECTION_NO_BLOCK (1UL << 0) +__owur SSL *SSL_accept_connection(SSL *ssl, uint64_t flags); +__owur size_t SSL_get_accept_connection_queue_len(SSL *ssl); +__owur int SSL_listen(SSL *ssl); + +__owur int SSL_is_domain(SSL *s); +__owur SSL *SSL_get0_domain(SSL *s); +__owur SSL *SSL_new_domain(SSL_CTX *ctx, uint64_t flags); + +#define SSL_DOMAIN_FLAG_SINGLE_THREAD (1U << 0) +#define SSL_DOMAIN_FLAG_MULTI_THREAD (1U << 1) +#define SSL_DOMAIN_FLAG_THREAD_ASSISTED (1U << 2) +#define SSL_DOMAIN_FLAG_BLOCKING (1U << 3) +#define SSL_DOMAIN_FLAG_LEGACY_BLOCKING (1U << 4) + +__owur int SSL_CTX_set_domain_flags(SSL_CTX *ctx, uint64_t domain_flags); +__owur int SSL_CTX_get_domain_flags(const SSL_CTX *ctx, uint64_t *domain_flags); +__owur int SSL_get_domain_flags(const SSL *ssl, uint64_t *domain_flags); + +#define SSL_STREAM_TYPE_NONE 0 +#define SSL_STREAM_TYPE_READ (1U << 0) +#define SSL_STREAM_TYPE_WRITE (1U << 1) +#define SSL_STREAM_TYPE_BIDI (SSL_STREAM_TYPE_READ | SSL_STREAM_TYPE_WRITE) +__owur int SSL_get_stream_type(SSL *s); + +__owur uint64_t SSL_get_stream_id(SSL *s); +__owur int SSL_is_stream_local(SSL *s); + +#define SSL_DEFAULT_STREAM_MODE_NONE 0 +#define SSL_DEFAULT_STREAM_MODE_AUTO_BIDI 1 +#define SSL_DEFAULT_STREAM_MODE_AUTO_UNI 2 +__owur int SSL_set_default_stream_mode(SSL *s, uint32_t mode); + +#define SSL_STREAM_FLAG_UNI (1U << 0) +#define SSL_STREAM_FLAG_NO_BLOCK (1U << 1) +#define SSL_STREAM_FLAG_ADVANCE (1U << 2) +__owur SSL *SSL_new_stream(SSL *s, uint64_t flags); + +#define SSL_INCOMING_STREAM_POLICY_AUTO 0 +#define SSL_INCOMING_STREAM_POLICY_ACCEPT 1 +#define SSL_INCOMING_STREAM_POLICY_REJECT 2 +__owur int SSL_set_incoming_stream_policy(SSL *s, int policy, uint64_t aec); + +#define SSL_ACCEPT_STREAM_NO_BLOCK (1U << 0) +__owur SSL *SSL_accept_stream(SSL *s, uint64_t flags); +__owur size_t SSL_get_accept_stream_queue_len(SSL *s); + +# ifndef OPENSSL_NO_QUIC +__owur int SSL_inject_net_dgram(SSL *s, const unsigned char *buf, + size_t buf_len, + const BIO_ADDR *peer, + const BIO_ADDR *local); +# endif + +typedef struct ssl_shutdown_ex_args_st { + uint64_t quic_error_code; + const char *quic_reason; +} SSL_SHUTDOWN_EX_ARGS; + +#define SSL_SHUTDOWN_FLAG_RAPID (1U << 0) +#define SSL_SHUTDOWN_FLAG_NO_STREAM_FLUSH (1U << 1) +#define SSL_SHUTDOWN_FLAG_NO_BLOCK (1U << 2) +#define SSL_SHUTDOWN_FLAG_WAIT_PEER (1U << 3) + +__owur int SSL_shutdown_ex(SSL *ssl, uint64_t flags, + const SSL_SHUTDOWN_EX_ARGS *args, + size_t args_len); + +__owur int SSL_stream_conclude(SSL *ssl, uint64_t flags); + +typedef struct ssl_stream_reset_args_st { + uint64_t quic_error_code; +} SSL_STREAM_RESET_ARGS; + +__owur int SSL_stream_reset(SSL *ssl, + const SSL_STREAM_RESET_ARGS *args, + size_t args_len); + +#define SSL_STREAM_STATE_NONE 0 +#define SSL_STREAM_STATE_OK 1 +#define SSL_STREAM_STATE_WRONG_DIR 2 +#define SSL_STREAM_STATE_FINISHED 3 +#define SSL_STREAM_STATE_RESET_LOCAL 4 +#define SSL_STREAM_STATE_RESET_REMOTE 5 +#define SSL_STREAM_STATE_CONN_CLOSED 6 +__owur int SSL_get_stream_read_state(SSL *ssl); +__owur int SSL_get_stream_write_state(SSL *ssl); + +__owur int SSL_get_stream_read_error_code(SSL *ssl, uint64_t *app_error_code); +__owur int SSL_get_stream_write_error_code(SSL *ssl, uint64_t *app_error_code); + +#define SSL_CONN_CLOSE_FLAG_LOCAL (1U << 0) +#define SSL_CONN_CLOSE_FLAG_TRANSPORT (1U << 1) + +typedef struct ssl_conn_close_info_st { + uint64_t error_code, frame_type; + const char *reason; + size_t reason_len; + uint32_t flags; +} SSL_CONN_CLOSE_INFO; + +__owur int SSL_get_conn_close_info(SSL *ssl, + SSL_CONN_CLOSE_INFO *info, + size_t info_len); + +# define SSL_VALUE_CLASS_GENERIC 0 +# define SSL_VALUE_CLASS_FEATURE_REQUEST 1 +# define SSL_VALUE_CLASS_FEATURE_PEER_REQUEST 2 +# define SSL_VALUE_CLASS_FEATURE_NEGOTIATED 3 + +# define SSL_VALUE_NONE 0 +# define SSL_VALUE_QUIC_STREAM_BIDI_LOCAL_AVAIL 1 +# define SSL_VALUE_QUIC_STREAM_BIDI_REMOTE_AVAIL 2 +# define SSL_VALUE_QUIC_STREAM_UNI_LOCAL_AVAIL 3 +# define SSL_VALUE_QUIC_STREAM_UNI_REMOTE_AVAIL 4 +# define SSL_VALUE_QUIC_IDLE_TIMEOUT 5 +# define SSL_VALUE_EVENT_HANDLING_MODE 6 +# define SSL_VALUE_STREAM_WRITE_BUF_SIZE 7 +# define SSL_VALUE_STREAM_WRITE_BUF_USED 8 +# define SSL_VALUE_STREAM_WRITE_BUF_AVAIL 9 + +# define SSL_VALUE_EVENT_HANDLING_MODE_INHERIT 0 +# define SSL_VALUE_EVENT_HANDLING_MODE_IMPLICIT 1 +# define SSL_VALUE_EVENT_HANDLING_MODE_EXPLICIT 2 + +int SSL_get_value_uint(SSL *s, uint32_t class_, uint32_t id, uint64_t *v); +int SSL_set_value_uint(SSL *s, uint32_t class_, uint32_t id, uint64_t v); + +# define SSL_get_generic_value_uint(ssl, id, v) \ + SSL_get_value_uint((ssl), SSL_VALUE_CLASS_GENERIC, (id), (v)) +# define SSL_set_generic_value_uint(ssl, id, v) \ + SSL_set_value_uint((ssl), SSL_VALUE_CLASS_GENERIC, (id), (v)) +# define SSL_get_feature_request_uint(ssl, id, v) \ + SSL_get_value_uint((ssl), SSL_VALUE_CLASS_FEATURE_REQUEST, (id), (v)) +# define SSL_set_feature_request_uint(ssl, id, v) \ + SSL_set_value_uint((ssl), SSL_VALUE_CLASS_FEATURE_REQUEST, (id), (v)) +# define SSL_get_feature_peer_request_uint(ssl, id, v) \ + SSL_get_value_uint((ssl), SSL_VALUE_CLASS_FEATURE_PEER_REQUEST, (id), (v)) +# define SSL_get_feature_negotiated_uint(ssl, id, v) \ + SSL_get_value_uint((ssl), SSL_VALUE_CLASS_FEATURE_NEGOTIATED, (id), (v)) + +# define SSL_get_quic_stream_bidi_local_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_QUIC_STREAM_BIDI_LOCAL_AVAIL, \ + (value)) +# define SSL_get_quic_stream_bidi_remote_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_QUIC_STREAM_BIDI_REMOTE_AVAIL, \ + (value)) +# define SSL_get_quic_stream_uni_local_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_QUIC_STREAM_UNI_LOCAL_AVAIL, \ + (value)) +# define SSL_get_quic_stream_uni_remote_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_QUIC_STREAM_UNI_REMOTE_AVAIL, \ + (value)) + +# define SSL_get_event_handling_mode(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_EVENT_HANDLING_MODE, \ + (value)) +# define SSL_set_event_handling_mode(ssl, value) \ + SSL_set_generic_value_uint((ssl), SSL_VALUE_EVENT_HANDLING_MODE, \ + (value)) + +# define SSL_get_stream_write_buf_size(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_STREAM_WRITE_BUF_SIZE, \ + (value)) +# define SSL_get_stream_write_buf_used(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_STREAM_WRITE_BUF_USED, \ + (value)) +# define SSL_get_stream_write_buf_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_STREAM_WRITE_BUF_AVAIL, \ + (value)) + +# define SSL_POLL_EVENT_NONE 0 + +# define SSL_POLL_EVENT_F (1U << 0) /* F (Failure) */ +# define SSL_POLL_EVENT_EL (1U << 1) /* EL (Exception on Listener) */ +# define SSL_POLL_EVENT_EC (1U << 2) /* EC (Exception on Conn) */ +# define SSL_POLL_EVENT_ECD (1U << 3) /* ECD (Exception on Conn Drained) */ +# define SSL_POLL_EVENT_ER (1U << 4) /* ER (Exception on Read) */ +# define SSL_POLL_EVENT_EW (1U << 5) /* EW (Exception on Write) */ +# define SSL_POLL_EVENT_R (1U << 6) /* R (Readable) */ +# define SSL_POLL_EVENT_W (1U << 7) /* W (Writable) */ +# define SSL_POLL_EVENT_IC (1U << 8) /* IC (Incoming Connection) */ +# define SSL_POLL_EVENT_ISB (1U << 9) /* ISB (Incoming Stream: Bidi) */ +# define SSL_POLL_EVENT_ISU (1U << 10) /* ISU (Incoming Stream: Uni) */ +# define SSL_POLL_EVENT_OSB (1U << 11) /* OSB (Outgoing Stream: Bidi) */ +# define SSL_POLL_EVENT_OSU (1U << 12) /* OSU (Outgoing Stream: Uni) */ + +# define SSL_POLL_EVENT_RW (SSL_POLL_EVENT_R | SSL_POLL_EVENT_W) +# define SSL_POLL_EVENT_RE (SSL_POLL_EVENT_R | SSL_POLL_EVENT_ER) +# define SSL_POLL_EVENT_WE (SSL_POLL_EVENT_W | SSL_POLL_EVENT_EW) +# define SSL_POLL_EVENT_RWE (SSL_POLL_EVENT_RE | SSL_POLL_EVENT_WE) +# define SSL_POLL_EVENT_E (SSL_POLL_EVENT_EL | SSL_POLL_EVENT_EC \ + | SSL_POLL_EVENT_ER | SSL_POLL_EVENT_EW) +# define SSL_POLL_EVENT_IS (SSL_POLL_EVENT_ISB | SSL_POLL_EVENT_ISU) +# define SSL_POLL_EVENT_ISE (SSL_POLL_EVENT_IS | SSL_POLL_EVENT_EC) +# define SSL_POLL_EVENT_I (SSL_POLL_EVENT_IS | SSL_POLL_EVENT_IC) +# define SSL_POLL_EVENT_OS (SSL_POLL_EVENT_OSB | SSL_POLL_EVENT_OSU) +# define SSL_POLL_EVENT_OSE (SSL_POLL_EVENT_OS | SSL_POLL_EVENT_EC) + +typedef struct ssl_poll_item_st { + BIO_POLL_DESCRIPTOR desc; + uint64_t events, revents; +} SSL_POLL_ITEM; + +# define SSL_POLL_FLAG_NO_HANDLE_EVENTS (1U << 0) + +__owur int SSL_poll(SSL_POLL_ITEM *items, + size_t num_items, + size_t stride, + const struct timeval *timeout, + uint64_t flags, + size_t *result_count); + +static ossl_inline ossl_unused BIO_POLL_DESCRIPTOR +SSL_as_poll_descriptor(SSL *s) +{ + BIO_POLL_DESCRIPTOR d; + + d.type = BIO_POLL_DESCRIPTOR_TYPE_SSL; + d.value.ssl = s; + return d; +} + # ifndef OPENSSL_NO_DEPRECATED_1_1_0 # define SSL_cache_hit(s) SSL_session_reused(s) # endif @@ -2593,6 +2882,51 @@ void SSL_set_allow_early_data_cb(SSL *s, const char *OSSL_default_cipher_list(void); const char *OSSL_default_ciphersuites(void); +/* RFC8879 Certificate compression APIs */ + +int SSL_CTX_compress_certs(SSL_CTX *ctx, int alg); +int SSL_compress_certs(SSL *ssl, int alg); + +int SSL_CTX_set1_cert_comp_preference(SSL_CTX *ctx, int *algs, size_t len); +int SSL_set1_cert_comp_preference(SSL *ssl, int *algs, size_t len); + +int SSL_CTX_set1_compressed_cert(SSL_CTX *ctx, int algorithm, unsigned char *comp_data, + size_t comp_length, size_t orig_length); +int SSL_set1_compressed_cert(SSL *ssl, int algorithm, unsigned char *comp_data, + size_t comp_length, size_t orig_length); +size_t SSL_CTX_get1_compressed_cert(SSL_CTX *ctx, int alg, unsigned char **data, size_t *orig_len); +size_t SSL_get1_compressed_cert(SSL *ssl, int alg, unsigned char **data, size_t *orig_len); + +__owur int SSL_add_expected_rpk(SSL *s, EVP_PKEY *rpk); +__owur EVP_PKEY *SSL_get0_peer_rpk(const SSL *s); +__owur EVP_PKEY *SSL_SESSION_get0_peer_rpk(SSL_SESSION *s); +__owur int SSL_get_negotiated_client_cert_type(const SSL *s); +__owur int SSL_get_negotiated_server_cert_type(const SSL *s); + +__owur int SSL_set1_client_cert_type(SSL *s, const unsigned char *val, size_t len); +__owur int SSL_set1_server_cert_type(SSL *s, const unsigned char *val, size_t len); +__owur int SSL_CTX_set1_client_cert_type(SSL_CTX *ctx, const unsigned char *val, size_t len); +__owur int SSL_CTX_set1_server_cert_type(SSL_CTX *ctx, const unsigned char *val, size_t len); +__owur int SSL_get0_client_cert_type(const SSL *s, unsigned char **t, size_t *len); +__owur int SSL_get0_server_cert_type(const SSL *s, unsigned char **t, size_t *len); +__owur int SSL_CTX_get0_client_cert_type(const SSL_CTX *ctx, unsigned char **t, size_t *len); +__owur int SSL_CTX_get0_server_cert_type(const SSL_CTX *s, unsigned char **t, size_t *len); + +/* + * Protection level. For <= TLSv1.2 only "NONE" and "APPLICATION" are used. + */ +# define OSSL_RECORD_PROTECTION_LEVEL_NONE 0 +# define OSSL_RECORD_PROTECTION_LEVEL_EARLY 1 +# define OSSL_RECORD_PROTECTION_LEVEL_HANDSHAKE 2 +# define OSSL_RECORD_PROTECTION_LEVEL_APPLICATION 3 + +int SSL_set_quic_tls_cbs(SSL *s, const OSSL_DISPATCH *qtdis, void *arg); +int SSL_set_quic_tls_transport_params(SSL *s, + const unsigned char *params, + size_t params_len); + +int SSL_set_quic_tls_early_data_enabled(SSL *s, int enabled); + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/include/openssl/x509.h b/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/include/openssl/x509.h index 1f7755e5b69c75..d013458c226461 100644 --- a/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/include/openssl/x509.h +++ b/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/include/openssl/x509.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/x509.h.in * - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2024 The OpenSSL Project Authors. All Rights Reserved. * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved * * Licensed under the Apache License 2.0 (the "License"). You may not use @@ -40,6 +40,9 @@ # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -162,16 +165,24 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_CRL, X509_CRL, X509_CRL) # define X509_FILETYPE_ASN1 2 # define X509_FILETYPE_DEFAULT 3 -# define X509v3_KU_DIGITAL_SIGNATURE 0x0080 -# define X509v3_KU_NON_REPUDIATION 0x0040 -# define X509v3_KU_KEY_ENCIPHERMENT 0x0020 -# define X509v3_KU_DATA_ENCIPHERMENT 0x0010 -# define X509v3_KU_KEY_AGREEMENT 0x0008 -# define X509v3_KU_KEY_CERT_SIGN 0x0004 -# define X509v3_KU_CRL_SIGN 0x0002 -# define X509v3_KU_ENCIPHER_ONLY 0x0001 -# define X509v3_KU_DECIPHER_ONLY 0x8000 -# define X509v3_KU_UNDEF 0xffff +/*- + * : + * The KeyUsage BITSTRING is treated as a little-endian integer, hence bit `0` + * is 0x80, while bit `7` is 0x01 (the LSB of the integer value), bit `8` is + * then the MSB of the second octet, or 0x8000. + */ +# define X509v3_KU_DIGITAL_SIGNATURE 0x0080 /* (0) */ +# define X509v3_KU_NON_REPUDIATION 0x0040 /* (1) */ +# define X509v3_KU_KEY_ENCIPHERMENT 0x0020 /* (2) */ +# define X509v3_KU_DATA_ENCIPHERMENT 0x0010 /* (3) */ +# define X509v3_KU_KEY_AGREEMENT 0x0008 /* (4) */ +# define X509v3_KU_KEY_CERT_SIGN 0x0004 /* (5) */ +# define X509v3_KU_CRL_SIGN 0x0002 /* (6) */ +# define X509v3_KU_ENCIPHER_ONLY 0x0001 /* (7) */ +# define X509v3_KU_DECIPHER_ONLY 0x8000 /* (8) */ +# ifndef OPENSSL_NO_DEPRECATED_3_4 +# define X509v3_KU_UNDEF 0xffff /* vestigial, not used */ +# endif struct X509_algor_st { ASN1_OBJECT *algorithm; @@ -462,7 +473,12 @@ typedef struct PBKDF2PARAM_st { X509_ALGOR *prf; } PBKDF2PARAM; -#ifndef OPENSSL_NO_SCRYPT +typedef struct { + X509_ALGOR *keyDerivationFunc; + X509_ALGOR *messageAuthScheme; +} PBMAC1PARAM; + +# ifndef OPENSSL_NO_SCRYPT typedef struct SCRYPT_PARAMS_st { ASN1_OCTET_STRING *salt; ASN1_INTEGER *costParameter; @@ -470,7 +486,7 @@ typedef struct SCRYPT_PARAMS_st { ASN1_INTEGER *parallelizationParameter; ASN1_INTEGER *keyLength; } SCRYPT_PARAMS; -#endif +# endif #ifdef __cplusplus } @@ -603,6 +619,8 @@ EVP_PKEY *d2i_PrivateKey_ex_fp(FILE *fp, EVP_PKEY **a, OSSL_LIB_CTX *libctx, const char *propq); EVP_PKEY *d2i_PrivateKey_fp(FILE *fp, EVP_PKEY **a); int i2d_PUBKEY_fp(FILE *fp, const EVP_PKEY *pkey); +EVP_PKEY *d2i_PUBKEY_ex_fp(FILE *fp, EVP_PKEY **a, OSSL_LIB_CTX *libctx, + const char *propq); EVP_PKEY *d2i_PUBKEY_fp(FILE *fp, EVP_PKEY **a); # endif @@ -651,6 +669,8 @@ EVP_PKEY *d2i_PrivateKey_ex_bio(BIO *bp, EVP_PKEY **a, OSSL_LIB_CTX *libctx, const char *propq); EVP_PKEY *d2i_PrivateKey_bio(BIO *bp, EVP_PKEY **a); int i2d_PUBKEY_bio(BIO *bp, const EVP_PKEY *pkey); +EVP_PKEY *d2i_PUBKEY_ex_bio(BIO *bp, EVP_PKEY **a, OSSL_LIB_CTX *libctx, + const char *propq); EVP_PKEY *d2i_PUBKEY_bio(BIO *bp, EVP_PKEY **a); DECLARE_ASN1_DUP_FUNCTION(X509) @@ -884,12 +904,12 @@ int X509_REQ_get_signature_nid(const X509_REQ *req); int i2d_re_X509_REQ_tbs(X509_REQ *req, unsigned char **pp); int X509_REQ_set_pubkey(X509_REQ *x, EVP_PKEY *pkey); EVP_PKEY *X509_REQ_get_pubkey(X509_REQ *req); -EVP_PKEY *X509_REQ_get0_pubkey(X509_REQ *req); +EVP_PKEY *X509_REQ_get0_pubkey(const X509_REQ *req); X509_PUBKEY *X509_REQ_get_X509_PUBKEY(X509_REQ *req); int X509_REQ_extension_nid(int nid); int *X509_REQ_get_extension_nids(void); void X509_REQ_set_extension_nids(int *nids); -STACK_OF(X509_EXTENSION) *X509_REQ_get_extensions(X509_REQ *req); +STACK_OF(X509_EXTENSION) *X509_REQ_get_extensions(OSSL_FUTURE_CONST X509_REQ *req); int X509_REQ_add_extensions_nid(X509_REQ *req, const STACK_OF(X509_EXTENSION) *exts, int nid); int X509_REQ_add_extensions(X509_REQ *req, const STACK_OF(X509_EXTENSION) *ext); @@ -950,13 +970,14 @@ X509_REVOKED_get0_extensions(const X509_REVOKED *r); X509_CRL *X509_CRL_diff(X509_CRL *base, X509_CRL *newer, EVP_PKEY *skey, const EVP_MD *md, unsigned int flags); -int X509_REQ_check_private_key(X509_REQ *x509, EVP_PKEY *pkey); +int X509_REQ_check_private_key(const X509_REQ *req, EVP_PKEY *pkey); -int X509_check_private_key(const X509 *x509, const EVP_PKEY *pkey); +int X509_check_private_key(const X509 *cert, const EVP_PKEY *pkey); int X509_chain_check_suiteb(int *perror_depth, X509 *x, STACK_OF(X509) *chain, unsigned long flags); int X509_CRL_check_suiteb(X509_CRL *crl, EVP_PKEY *pk, unsigned long flags); +void OSSL_STACK_OF_X509_free(STACK_OF(X509) *certs); STACK_OF(X509) *X509_chain_up_ref(STACK_OF(X509) *chain); int X509_issuer_and_serial_cmp(const X509 *a, const X509 *b); @@ -1077,6 +1098,8 @@ X509_EXTENSION *X509v3_get_ext(const STACK_OF(X509_EXTENSION) *x, int loc); X509_EXTENSION *X509v3_delete_ext(STACK_OF(X509_EXTENSION) *x, int loc); STACK_OF(X509_EXTENSION) *X509v3_add_ext(STACK_OF(X509_EXTENSION) **x, X509_EXTENSION *ex, int loc); +STACK_OF(X509_EXTENSION) *X509v3_add_extensions(STACK_OF(X509_EXTENSION) **target, + const STACK_OF(X509_EXTENSION) *exts); int X509_get_ext_count(const X509 *x); int X509_get_ext_by_NID(const X509 *x, int nid, int lastpos); @@ -1198,9 +1221,10 @@ X509 *X509_find_by_subject(STACK_OF(X509) *sk, const X509_NAME *name); DECLARE_ASN1_FUNCTIONS(PBEPARAM) DECLARE_ASN1_FUNCTIONS(PBE2PARAM) DECLARE_ASN1_FUNCTIONS(PBKDF2PARAM) -#ifndef OPENSSL_NO_SCRYPT +DECLARE_ASN1_FUNCTIONS(PBMAC1PARAM) +# ifndef OPENSSL_NO_SCRYPT DECLARE_ASN1_FUNCTIONS(SCRYPT_PARAMS) -#endif +# endif int PKCS5_pbe_set0_algor(X509_ALGOR *algor, int alg, int iter, const unsigned char *salt, int saltlen); @@ -1237,6 +1261,7 @@ X509_ALGOR *PKCS5_pbkdf2_set_ex(int iter, unsigned char *salt, int saltlen, int prf_nid, int keylen, OSSL_LIB_CTX *libctx); +PBKDF2PARAM *PBMAC1_get1_pbkdf2_param(const X509_ALGOR *macalg); /* PKCS#8 utilities */ DECLARE_ASN1_FUNCTIONS(PKCS8_PRIV_KEY_INFO) @@ -1262,6 +1287,8 @@ int PKCS8_pkey_add1_attr_by_OBJ(PKCS8_PRIV_KEY_INFO *p8, const ASN1_OBJECT *obj, int type, const unsigned char *bytes, int len); +void X509_PUBKEY_set0_public_key(X509_PUBKEY *pub, + unsigned char *penc, int penclen); int X509_PUBKEY_set0_param(X509_PUBKEY *pub, ASN1_OBJECT *aobj, int ptype, void *pval, unsigned char *penc, int penclen); diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/include/openssl/x509_acert.h b/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/include/openssl/x509_acert.h new file mode 100644 index 00000000000000..9dde625677f9a9 --- /dev/null +++ b/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/include/openssl/x509_acert.h @@ -0,0 +1,294 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from include/openssl/x509_acert.h.in + * + * Copyright 2022-2024 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + + +#ifndef OPENSSL_X509_ACERT_H +# define OPENSSL_X509_ACERT_H +# pragma once + +# include +# include +# include + +typedef struct X509_acert_st X509_ACERT; +typedef struct X509_acert_info_st X509_ACERT_INFO; +typedef struct ossl_object_digest_info_st OSSL_OBJECT_DIGEST_INFO; +typedef struct ossl_issuer_serial_st OSSL_ISSUER_SERIAL; +typedef struct X509_acert_issuer_v2form_st X509_ACERT_ISSUER_V2FORM; + +DECLARE_ASN1_FUNCTIONS(X509_ACERT) +DECLARE_ASN1_DUP_FUNCTION(X509_ACERT) +DECLARE_ASN1_ITEM(X509_ACERT_INFO) +DECLARE_ASN1_ALLOC_FUNCTIONS(X509_ACERT_INFO) +DECLARE_ASN1_ALLOC_FUNCTIONS(OSSL_OBJECT_DIGEST_INFO) +DECLARE_ASN1_ALLOC_FUNCTIONS(OSSL_ISSUER_SERIAL) +DECLARE_ASN1_ALLOC_FUNCTIONS(X509_ACERT_ISSUER_V2FORM) + +# ifndef OPENSSL_NO_STDIO +X509_ACERT *d2i_X509_ACERT_fp(FILE *fp, X509_ACERT **acert); +int i2d_X509_ACERT_fp(FILE *fp, const X509_ACERT *acert); +# endif + +DECLARE_PEM_rw(X509_ACERT, X509_ACERT) + +X509_ACERT *d2i_X509_ACERT_bio(BIO *bp, X509_ACERT **acert); +int i2d_X509_ACERT_bio(BIO *bp, const X509_ACERT *acert); + +int X509_ACERT_sign(X509_ACERT *x, EVP_PKEY *pkey, const EVP_MD *md); +int X509_ACERT_sign_ctx(X509_ACERT *x, EVP_MD_CTX *ctx); +int X509_ACERT_verify(X509_ACERT *a, EVP_PKEY *r); + +# define X509_ACERT_VERSION_2 1 + +const GENERAL_NAMES *X509_ACERT_get0_holder_entityName(const X509_ACERT *x); +const OSSL_ISSUER_SERIAL *X509_ACERT_get0_holder_baseCertId(const X509_ACERT *x); +const OSSL_OBJECT_DIGEST_INFO * X509_ACERT_get0_holder_digest(const X509_ACERT *x); +const X509_NAME *X509_ACERT_get0_issuerName(const X509_ACERT *x); +long X509_ACERT_get_version(const X509_ACERT *x); +void X509_ACERT_get0_signature(const X509_ACERT *x, + const ASN1_BIT_STRING **psig, + const X509_ALGOR **palg); +int X509_ACERT_get_signature_nid(const X509_ACERT *x); +const X509_ALGOR *X509_ACERT_get0_info_sigalg(const X509_ACERT *x); +const ASN1_INTEGER *X509_ACERT_get0_serialNumber(const X509_ACERT *x); +const ASN1_TIME *X509_ACERT_get0_notBefore(const X509_ACERT *x); +const ASN1_TIME *X509_ACERT_get0_notAfter(const X509_ACERT *x); +const ASN1_BIT_STRING *X509_ACERT_get0_issuerUID(const X509_ACERT *x); + +int X509_ACERT_print(BIO *bp, X509_ACERT *x); +int X509_ACERT_print_ex(BIO *bp, X509_ACERT *x, unsigned long nmflags, + unsigned long cflag); + +int X509_ACERT_get_attr_count(const X509_ACERT *x); +int X509_ACERT_get_attr_by_NID(const X509_ACERT *x, int nid, int lastpos); +int X509_ACERT_get_attr_by_OBJ(const X509_ACERT *x, const ASN1_OBJECT *obj, + int lastpos); +X509_ATTRIBUTE *X509_ACERT_get_attr(const X509_ACERT *x, int loc); +X509_ATTRIBUTE *X509_ACERT_delete_attr(X509_ACERT *x, int loc); + +void *X509_ACERT_get_ext_d2i(const X509_ACERT *x, int nid, int *crit, int *idx); +int X509_ACERT_add1_ext_i2d(X509_ACERT *x, int nid, void *value, int crit, + unsigned long flags); +const STACK_OF(X509_EXTENSION) *X509_ACERT_get0_extensions(const X509_ACERT *x); + +# define OSSL_OBJECT_DIGEST_INFO_PUBLIC_KEY 0 +# define OSSL_OBJECT_DIGEST_INFO_PUBLIC_KEY_CERT 1 +# define OSSL_OBJECT_DIGEST_INFO_OTHER 2 /* must not be used in RFC 5755 profile */ +int X509_ACERT_set_version(X509_ACERT *x, long version); +void X509_ACERT_set0_holder_entityName(X509_ACERT *x, GENERAL_NAMES *name); +void X509_ACERT_set0_holder_baseCertId(X509_ACERT *x, OSSL_ISSUER_SERIAL *isss); +void X509_ACERT_set0_holder_digest(X509_ACERT *x, + OSSL_OBJECT_DIGEST_INFO *dinfo); + +int X509_ACERT_add1_attr(X509_ACERT *x, X509_ATTRIBUTE *attr); +int X509_ACERT_add1_attr_by_OBJ(X509_ACERT *x, const ASN1_OBJECT *obj, + int type, const void *bytes, int len); +int X509_ACERT_add1_attr_by_NID(X509_ACERT *x, int nid, int type, + const void *bytes, int len); +int X509_ACERT_add1_attr_by_txt(X509_ACERT *x, const char *attrname, int type, + const unsigned char *bytes, int len); +int X509_ACERT_add_attr_nconf(CONF *conf, const char *section, + X509_ACERT *acert); + +int X509_ACERT_set1_issuerName(X509_ACERT *x, const X509_NAME *name); +int X509_ACERT_set1_serialNumber(X509_ACERT *x, const ASN1_INTEGER *serial); +int X509_ACERT_set1_notBefore(X509_ACERT *x, const ASN1_GENERALIZEDTIME *time); +int X509_ACERT_set1_notAfter(X509_ACERT *x, const ASN1_GENERALIZEDTIME *time); + +void OSSL_OBJECT_DIGEST_INFO_get0_digest(const OSSL_OBJECT_DIGEST_INFO *o, + int *digestedObjectType, + const X509_ALGOR **digestAlgorithm, + const ASN1_BIT_STRING **digest); + +int OSSL_OBJECT_DIGEST_INFO_set1_digest(OSSL_OBJECT_DIGEST_INFO *o, + int digestedObjectType, + X509_ALGOR *digestAlgorithm, + ASN1_BIT_STRING *digest); + +const X509_NAME *OSSL_ISSUER_SERIAL_get0_issuer(const OSSL_ISSUER_SERIAL *isss); +const ASN1_INTEGER *OSSL_ISSUER_SERIAL_get0_serial(const OSSL_ISSUER_SERIAL *isss); +const ASN1_BIT_STRING *OSSL_ISSUER_SERIAL_get0_issuerUID(const OSSL_ISSUER_SERIAL *isss); + +int OSSL_ISSUER_SERIAL_set1_issuer(OSSL_ISSUER_SERIAL *isss, + const X509_NAME *issuer); +int OSSL_ISSUER_SERIAL_set1_serial(OSSL_ISSUER_SERIAL *isss, + const ASN1_INTEGER *serial); +int OSSL_ISSUER_SERIAL_set1_issuerUID(OSSL_ISSUER_SERIAL *isss, + const ASN1_BIT_STRING *uid); + +# define OSSL_IETFAS_OCTETS 0 +# define OSSL_IETFAS_OID 1 +# define OSSL_IETFAS_STRING 2 + +typedef struct OSSL_IETF_ATTR_SYNTAX_VALUE_st OSSL_IETF_ATTR_SYNTAX_VALUE; +typedef struct OSSL_IETF_ATTR_SYNTAX_st OSSL_IETF_ATTR_SYNTAX; +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_IETF_ATTR_SYNTAX_VALUE, OSSL_IETF_ATTR_SYNTAX_VALUE, OSSL_IETF_ATTR_SYNTAX_VALUE) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_value(sk, idx) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_value(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), (idx))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_new(cmp) ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_new(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_compfunc_type(cmp))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_new_null() ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_new_null()) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_new_reserve(cmp, n) ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_compfunc_type(cmp), (n))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), (n)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_free(sk) OPENSSL_sk_free(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_delete(sk, i) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_delete(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), (i))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_delete_ptr(sk, ptr) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_pop(sk) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_pop(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_shift(sk) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_shift(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk),ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_freefunc_type(freefunc)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr), (idx)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_set(sk, idx, ptr) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_set(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), (idx), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr), pnum) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_dup(sk) ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_dup(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_copyfunc_type(copyfunc), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_freefunc_type(freefunc))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_set_cmp_func(sk, cmp) ((sk_OSSL_IETF_ATTR_SYNTAX_VALUE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_compfunc_type(cmp))) + + +DECLARE_ASN1_ITEM(OSSL_IETF_ATTR_SYNTAX_VALUE) +DECLARE_ASN1_ALLOC_FUNCTIONS(OSSL_IETF_ATTR_SYNTAX_VALUE) +DECLARE_ASN1_FUNCTIONS(OSSL_IETF_ATTR_SYNTAX) + +const GENERAL_NAMES * +OSSL_IETF_ATTR_SYNTAX_get0_policyAuthority(const OSSL_IETF_ATTR_SYNTAX *a); +void OSSL_IETF_ATTR_SYNTAX_set0_policyAuthority(OSSL_IETF_ATTR_SYNTAX *a, + GENERAL_NAMES *names); + +int OSSL_IETF_ATTR_SYNTAX_get_value_num(const OSSL_IETF_ATTR_SYNTAX *a); +void *OSSL_IETF_ATTR_SYNTAX_get0_value(const OSSL_IETF_ATTR_SYNTAX *a, + int ind, int *type); +int OSSL_IETF_ATTR_SYNTAX_add1_value(OSSL_IETF_ATTR_SYNTAX *a, int type, + void *data); +int OSSL_IETF_ATTR_SYNTAX_print(BIO *bp, OSSL_IETF_ATTR_SYNTAX *a, int indent); + +struct TARGET_CERT_st { + OSSL_ISSUER_SERIAL *targetCertificate; + GENERAL_NAME *targetName; + OSSL_OBJECT_DIGEST_INFO *certDigestInfo; +}; + +typedef struct TARGET_CERT_st OSSL_TARGET_CERT; + +# define OSSL_TGT_TARGET_NAME 0 +# define OSSL_TGT_TARGET_GROUP 1 +# define OSSL_TGT_TARGET_CERT 2 + +typedef struct TARGET_st { + int type; + union { + GENERAL_NAME *targetName; + GENERAL_NAME *targetGroup; + OSSL_TARGET_CERT *targetCert; + } choice; +} OSSL_TARGET; + +typedef STACK_OF(OSSL_TARGET) OSSL_TARGETS; +typedef STACK_OF(OSSL_TARGETS) OSSL_TARGETING_INFORMATION; + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_TARGET, OSSL_TARGET, OSSL_TARGET) +#define sk_OSSL_TARGET_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_value(sk, idx) ((OSSL_TARGET *)OPENSSL_sk_value(ossl_check_const_OSSL_TARGET_sk_type(sk), (idx))) +#define sk_OSSL_TARGET_new(cmp) ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_new(ossl_check_OSSL_TARGET_compfunc_type(cmp))) +#define sk_OSSL_TARGET_new_null() ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_new_null()) +#define sk_OSSL_TARGET_new_reserve(cmp, n) ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_TARGET_compfunc_type(cmp), (n))) +#define sk_OSSL_TARGET_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_TARGET_sk_type(sk), (n)) +#define sk_OSSL_TARGET_free(sk) OPENSSL_sk_free(ossl_check_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_delete(sk, i) ((OSSL_TARGET *)OPENSSL_sk_delete(ossl_check_OSSL_TARGET_sk_type(sk), (i))) +#define sk_OSSL_TARGET_delete_ptr(sk, ptr) ((OSSL_TARGET *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr))) +#define sk_OSSL_TARGET_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr)) +#define sk_OSSL_TARGET_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr)) +#define sk_OSSL_TARGET_pop(sk) ((OSSL_TARGET *)OPENSSL_sk_pop(ossl_check_OSSL_TARGET_sk_type(sk))) +#define sk_OSSL_TARGET_shift(sk) ((OSSL_TARGET *)OPENSSL_sk_shift(ossl_check_OSSL_TARGET_sk_type(sk))) +#define sk_OSSL_TARGET_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_TARGET_sk_type(sk),ossl_check_OSSL_TARGET_freefunc_type(freefunc)) +#define sk_OSSL_TARGET_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr), (idx)) +#define sk_OSSL_TARGET_set(sk, idx, ptr) ((OSSL_TARGET *)OPENSSL_sk_set(ossl_check_OSSL_TARGET_sk_type(sk), (idx), ossl_check_OSSL_TARGET_type(ptr))) +#define sk_OSSL_TARGET_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr)) +#define sk_OSSL_TARGET_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr)) +#define sk_OSSL_TARGET_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr), pnum) +#define sk_OSSL_TARGET_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_dup(sk) ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_dup(ossl_check_const_OSSL_TARGET_sk_type(sk))) +#define sk_OSSL_TARGET_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_copyfunc_type(copyfunc), ossl_check_OSSL_TARGET_freefunc_type(freefunc))) +#define sk_OSSL_TARGET_set_cmp_func(sk, cmp) ((sk_OSSL_TARGET_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_compfunc_type(cmp))) + + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_TARGETS, OSSL_TARGETS, OSSL_TARGETS) +#define sk_OSSL_TARGETS_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_value(sk, idx) ((OSSL_TARGETS *)OPENSSL_sk_value(ossl_check_const_OSSL_TARGETS_sk_type(sk), (idx))) +#define sk_OSSL_TARGETS_new(cmp) ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_new(ossl_check_OSSL_TARGETS_compfunc_type(cmp))) +#define sk_OSSL_TARGETS_new_null() ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_new_null()) +#define sk_OSSL_TARGETS_new_reserve(cmp, n) ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_TARGETS_compfunc_type(cmp), (n))) +#define sk_OSSL_TARGETS_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_TARGETS_sk_type(sk), (n)) +#define sk_OSSL_TARGETS_free(sk) OPENSSL_sk_free(ossl_check_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_delete(sk, i) ((OSSL_TARGETS *)OPENSSL_sk_delete(ossl_check_OSSL_TARGETS_sk_type(sk), (i))) +#define sk_OSSL_TARGETS_delete_ptr(sk, ptr) ((OSSL_TARGETS *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr))) +#define sk_OSSL_TARGETS_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr)) +#define sk_OSSL_TARGETS_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr)) +#define sk_OSSL_TARGETS_pop(sk) ((OSSL_TARGETS *)OPENSSL_sk_pop(ossl_check_OSSL_TARGETS_sk_type(sk))) +#define sk_OSSL_TARGETS_shift(sk) ((OSSL_TARGETS *)OPENSSL_sk_shift(ossl_check_OSSL_TARGETS_sk_type(sk))) +#define sk_OSSL_TARGETS_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_TARGETS_sk_type(sk),ossl_check_OSSL_TARGETS_freefunc_type(freefunc)) +#define sk_OSSL_TARGETS_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr), (idx)) +#define sk_OSSL_TARGETS_set(sk, idx, ptr) ((OSSL_TARGETS *)OPENSSL_sk_set(ossl_check_OSSL_TARGETS_sk_type(sk), (idx), ossl_check_OSSL_TARGETS_type(ptr))) +#define sk_OSSL_TARGETS_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr)) +#define sk_OSSL_TARGETS_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr)) +#define sk_OSSL_TARGETS_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr), pnum) +#define sk_OSSL_TARGETS_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_dup(sk) ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_dup(ossl_check_const_OSSL_TARGETS_sk_type(sk))) +#define sk_OSSL_TARGETS_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_copyfunc_type(copyfunc), ossl_check_OSSL_TARGETS_freefunc_type(freefunc))) +#define sk_OSSL_TARGETS_set_cmp_func(sk, cmp) ((sk_OSSL_TARGETS_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_compfunc_type(cmp))) + + +DECLARE_ASN1_FUNCTIONS(OSSL_TARGET) +DECLARE_ASN1_FUNCTIONS(OSSL_TARGETS) +DECLARE_ASN1_FUNCTIONS(OSSL_TARGETING_INFORMATION) + +typedef STACK_OF(OSSL_ISSUER_SERIAL) OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX; +DECLARE_ASN1_FUNCTIONS(OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ISSUER_SERIAL, OSSL_ISSUER_SERIAL, OSSL_ISSUER_SERIAL) +#define sk_OSSL_ISSUER_SERIAL_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_value(sk, idx) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_value(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk), (idx))) +#define sk_OSSL_ISSUER_SERIAL_new(cmp) ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_new(ossl_check_OSSL_ISSUER_SERIAL_compfunc_type(cmp))) +#define sk_OSSL_ISSUER_SERIAL_new_null() ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ISSUER_SERIAL_new_reserve(cmp, n) ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ISSUER_SERIAL_compfunc_type(cmp), (n))) +#define sk_OSSL_ISSUER_SERIAL_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), (n)) +#define sk_OSSL_ISSUER_SERIAL_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_delete(sk, i) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_delete(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), (i))) +#define sk_OSSL_ISSUER_SERIAL_delete_ptr(sk, ptr) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr))) +#define sk_OSSL_ISSUER_SERIAL_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr)) +#define sk_OSSL_ISSUER_SERIAL_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr)) +#define sk_OSSL_ISSUER_SERIAL_pop(sk) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_pop(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk))) +#define sk_OSSL_ISSUER_SERIAL_shift(sk) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_shift(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk))) +#define sk_OSSL_ISSUER_SERIAL_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk),ossl_check_OSSL_ISSUER_SERIAL_freefunc_type(freefunc)) +#define sk_OSSL_ISSUER_SERIAL_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr), (idx)) +#define sk_OSSL_ISSUER_SERIAL_set(sk, idx, ptr) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_set(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), (idx), ossl_check_OSSL_ISSUER_SERIAL_type(ptr))) +#define sk_OSSL_ISSUER_SERIAL_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr)) +#define sk_OSSL_ISSUER_SERIAL_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr)) +#define sk_OSSL_ISSUER_SERIAL_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr), pnum) +#define sk_OSSL_ISSUER_SERIAL_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_dup(sk) ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk))) +#define sk_OSSL_ISSUER_SERIAL_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_copyfunc_type(copyfunc), ossl_check_OSSL_ISSUER_SERIAL_freefunc_type(freefunc))) +#define sk_OSSL_ISSUER_SERIAL_set_cmp_func(sk, cmp) ((sk_OSSL_ISSUER_SERIAL_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_compfunc_type(cmp))) + + +#endif diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/include/openssl/x509_vfy.h b/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/include/openssl/x509_vfy.h index 29b0e147adcab1..c9bdc3b39d685d 100644 --- a/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/include/openssl/x509_vfy.h +++ b/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/include/openssl/x509_vfy.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/x509_vfy.h.in * - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -411,6 +411,7 @@ X509_LOOKUP_ctrl_ex((x), X509_L_ADD_STORE, (name), 0, NULL, \ # define X509_V_ERR_CA_CERT_MISSING_KEY_USAGE 92 # define X509_V_ERR_EXTENSIONS_REQUIRE_VERSION_3 93 # define X509_V_ERR_EC_KEY_EXPLICIT_PARAMS 94 +# define X509_V_ERR_RPK_UNTRUSTED 95 /* Certificate verify flags */ # ifndef OPENSSL_NO_DEPRECATED_1_1_0 @@ -491,71 +492,72 @@ int X509_OBJECT_set1_X509(X509_OBJECT *a, X509 *obj); X509_CRL *X509_OBJECT_get0_X509_CRL(const X509_OBJECT *a); int X509_OBJECT_set1_X509_CRL(X509_OBJECT *a, X509_CRL *obj); X509_STORE *X509_STORE_new(void); -void X509_STORE_free(X509_STORE *v); -int X509_STORE_lock(X509_STORE *ctx); -int X509_STORE_unlock(X509_STORE *ctx); -int X509_STORE_up_ref(X509_STORE *v); -STACK_OF(X509_OBJECT) *X509_STORE_get0_objects(const X509_STORE *v); -STACK_OF(X509) *X509_STORE_get1_all_certs(X509_STORE *st); -STACK_OF(X509) *X509_STORE_CTX_get1_certs(X509_STORE_CTX *st, +void X509_STORE_free(X509_STORE *xs); +int X509_STORE_lock(X509_STORE *xs); +int X509_STORE_unlock(X509_STORE *xs); +int X509_STORE_up_ref(X509_STORE *xs); +STACK_OF(X509_OBJECT) *X509_STORE_get0_objects(const X509_STORE *xs); +STACK_OF(X509_OBJECT) *X509_STORE_get1_objects(X509_STORE *xs); +STACK_OF(X509) *X509_STORE_get1_all_certs(X509_STORE *xs); +STACK_OF(X509) *X509_STORE_CTX_get1_certs(X509_STORE_CTX *xs, const X509_NAME *nm); STACK_OF(X509_CRL) *X509_STORE_CTX_get1_crls(const X509_STORE_CTX *st, const X509_NAME *nm); -int X509_STORE_set_flags(X509_STORE *ctx, unsigned long flags); -int X509_STORE_set_purpose(X509_STORE *ctx, int purpose); -int X509_STORE_set_trust(X509_STORE *ctx, int trust); -int X509_STORE_set1_param(X509_STORE *ctx, const X509_VERIFY_PARAM *pm); -X509_VERIFY_PARAM *X509_STORE_get0_param(const X509_STORE *ctx); +int X509_STORE_set_flags(X509_STORE *xs, unsigned long flags); +int X509_STORE_set_purpose(X509_STORE *xs, int purpose); +int X509_STORE_set_trust(X509_STORE *xs, int trust); +int X509_STORE_set1_param(X509_STORE *xs, const X509_VERIFY_PARAM *pm); +X509_VERIFY_PARAM *X509_STORE_get0_param(const X509_STORE *xs); -void X509_STORE_set_verify(X509_STORE *ctx, X509_STORE_CTX_verify_fn verify); +void X509_STORE_set_verify(X509_STORE *xs, X509_STORE_CTX_verify_fn verify); #define X509_STORE_set_verify_func(ctx, func) \ X509_STORE_set_verify((ctx),(func)) void X509_STORE_CTX_set_verify(X509_STORE_CTX *ctx, X509_STORE_CTX_verify_fn verify); -X509_STORE_CTX_verify_fn X509_STORE_get_verify(const X509_STORE *ctx); -void X509_STORE_set_verify_cb(X509_STORE *ctx, +X509_STORE_CTX_verify_fn X509_STORE_get_verify(const X509_STORE *xs); +void X509_STORE_set_verify_cb(X509_STORE *xs, X509_STORE_CTX_verify_cb verify_cb); # define X509_STORE_set_verify_cb_func(ctx,func) \ X509_STORE_set_verify_cb((ctx),(func)) -X509_STORE_CTX_verify_cb X509_STORE_get_verify_cb(const X509_STORE *ctx); -void X509_STORE_set_get_issuer(X509_STORE *ctx, +X509_STORE_CTX_verify_cb X509_STORE_get_verify_cb(const X509_STORE *xs); +void X509_STORE_set_get_issuer(X509_STORE *xs, X509_STORE_CTX_get_issuer_fn get_issuer); -X509_STORE_CTX_get_issuer_fn X509_STORE_get_get_issuer(const X509_STORE *ctx); -void X509_STORE_set_check_issued(X509_STORE *ctx, +X509_STORE_CTX_get_issuer_fn X509_STORE_get_get_issuer(const X509_STORE *xs); +void X509_STORE_set_check_issued(X509_STORE *xs, X509_STORE_CTX_check_issued_fn check_issued); -X509_STORE_CTX_check_issued_fn X509_STORE_get_check_issued(const X509_STORE *ctx); -void X509_STORE_set_check_revocation(X509_STORE *ctx, +X509_STORE_CTX_check_issued_fn X509_STORE_get_check_issued(const X509_STORE *s); +void X509_STORE_set_check_revocation(X509_STORE *xs, X509_STORE_CTX_check_revocation_fn check_revocation); X509_STORE_CTX_check_revocation_fn - X509_STORE_get_check_revocation(const X509_STORE *ctx); -void X509_STORE_set_get_crl(X509_STORE *ctx, + X509_STORE_get_check_revocation(const X509_STORE *xs); +void X509_STORE_set_get_crl(X509_STORE *xs, X509_STORE_CTX_get_crl_fn get_crl); -X509_STORE_CTX_get_crl_fn X509_STORE_get_get_crl(const X509_STORE *ctx); -void X509_STORE_set_check_crl(X509_STORE *ctx, +X509_STORE_CTX_get_crl_fn X509_STORE_get_get_crl(const X509_STORE *xs); +void X509_STORE_set_check_crl(X509_STORE *xs, X509_STORE_CTX_check_crl_fn check_crl); -X509_STORE_CTX_check_crl_fn X509_STORE_get_check_crl(const X509_STORE *ctx); -void X509_STORE_set_cert_crl(X509_STORE *ctx, +X509_STORE_CTX_check_crl_fn X509_STORE_get_check_crl(const X509_STORE *xs); +void X509_STORE_set_cert_crl(X509_STORE *xs, X509_STORE_CTX_cert_crl_fn cert_crl); -X509_STORE_CTX_cert_crl_fn X509_STORE_get_cert_crl(const X509_STORE *ctx); -void X509_STORE_set_check_policy(X509_STORE *ctx, +X509_STORE_CTX_cert_crl_fn X509_STORE_get_cert_crl(const X509_STORE *xs); +void X509_STORE_set_check_policy(X509_STORE *xs, X509_STORE_CTX_check_policy_fn check_policy); -X509_STORE_CTX_check_policy_fn X509_STORE_get_check_policy(const X509_STORE *ctx); -void X509_STORE_set_lookup_certs(X509_STORE *ctx, +X509_STORE_CTX_check_policy_fn X509_STORE_get_check_policy(const X509_STORE *s); +void X509_STORE_set_lookup_certs(X509_STORE *xs, X509_STORE_CTX_lookup_certs_fn lookup_certs); -X509_STORE_CTX_lookup_certs_fn X509_STORE_get_lookup_certs(const X509_STORE *ctx); -void X509_STORE_set_lookup_crls(X509_STORE *ctx, +X509_STORE_CTX_lookup_certs_fn X509_STORE_get_lookup_certs(const X509_STORE *s); +void X509_STORE_set_lookup_crls(X509_STORE *xs, X509_STORE_CTX_lookup_crls_fn lookup_crls); #define X509_STORE_set_lookup_crls_cb(ctx, func) \ X509_STORE_set_lookup_crls((ctx), (func)) -X509_STORE_CTX_lookup_crls_fn X509_STORE_get_lookup_crls(const X509_STORE *ctx); -void X509_STORE_set_cleanup(X509_STORE *ctx, +X509_STORE_CTX_lookup_crls_fn X509_STORE_get_lookup_crls(const X509_STORE *xs); +void X509_STORE_set_cleanup(X509_STORE *xs, X509_STORE_CTX_cleanup_fn cleanup); -X509_STORE_CTX_cleanup_fn X509_STORE_get_cleanup(const X509_STORE *ctx); +X509_STORE_CTX_cleanup_fn X509_STORE_get_cleanup(const X509_STORE *xs); #define X509_STORE_get_ex_new_index(l, p, newf, dupf, freef) \ CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_X509_STORE, l, p, newf, dupf, freef) -int X509_STORE_set_ex_data(X509_STORE *ctx, int idx, void *data); -void *X509_STORE_get_ex_data(const X509_STORE *ctx, int idx); +int X509_STORE_set_ex_data(X509_STORE *xs, int idx, void *data); +void *X509_STORE_get_ex_data(const X509_STORE *xs, int idx); X509_STORE_CTX *X509_STORE_CTX_new_ex(OSSL_LIB_CTX *libctx, const char *propq); X509_STORE_CTX *X509_STORE_CTX_new(void); @@ -565,11 +567,14 @@ int X509_STORE_CTX_get1_issuer(X509 **issuer, X509_STORE_CTX *ctx, X509 *x); void X509_STORE_CTX_free(X509_STORE_CTX *ctx); int X509_STORE_CTX_init(X509_STORE_CTX *ctx, X509_STORE *trust_store, X509 *target, STACK_OF(X509) *untrusted); +int X509_STORE_CTX_init_rpk(X509_STORE_CTX *ctx, X509_STORE *trust_store, + EVP_PKEY* rpk); void X509_STORE_CTX_set0_trusted_stack(X509_STORE_CTX *ctx, STACK_OF(X509) *sk); void X509_STORE_CTX_cleanup(X509_STORE_CTX *ctx); X509_STORE *X509_STORE_CTX_get0_store(const X509_STORE_CTX *ctx); X509 *X509_STORE_CTX_get0_cert(const X509_STORE_CTX *ctx); +EVP_PKEY *X509_STORE_CTX_get0_rpk(const X509_STORE_CTX *ctx); STACK_OF(X509)* X509_STORE_CTX_get0_untrusted(const X509_STORE_CTX *ctx); void X509_STORE_CTX_set0_untrusted(X509_STORE_CTX *ctx, STACK_OF(X509) *sk); void X509_STORE_CTX_set_verify_cb(X509_STORE_CTX *ctx, @@ -579,6 +584,8 @@ X509_STORE_CTX_verify_fn X509_STORE_CTX_get_verify(const X509_STORE_CTX *ctx); X509_STORE_CTX_get_issuer_fn X509_STORE_CTX_get_get_issuer(const X509_STORE_CTX *ctx); X509_STORE_CTX_check_issued_fn X509_STORE_CTX_get_check_issued(const X509_STORE_CTX *ctx); X509_STORE_CTX_check_revocation_fn X509_STORE_CTX_get_check_revocation(const X509_STORE_CTX *ctx); +void X509_STORE_CTX_set_get_crl(X509_STORE_CTX *ctx, + X509_STORE_CTX_get_crl_fn get_crl); X509_STORE_CTX_get_crl_fn X509_STORE_CTX_get_get_crl(const X509_STORE_CTX *ctx); X509_STORE_CTX_check_crl_fn X509_STORE_CTX_get_check_crl(const X509_STORE_CTX *ctx); X509_STORE_CTX_cert_crl_fn X509_STORE_CTX_get_cert_crl(const X509_STORE_CTX *ctx); @@ -600,7 +607,7 @@ X509_STORE_CTX_cleanup_fn X509_STORE_CTX_get_cleanup(const X509_STORE_CTX *ctx); # define X509_STORE_get1_crl X509_STORE_CTX_get1_crls #endif -X509_LOOKUP *X509_STORE_add_lookup(X509_STORE *v, X509_LOOKUP_METHOD *m); +X509_LOOKUP *X509_STORE_add_lookup(X509_STORE *xs, X509_LOOKUP_METHOD *m); X509_LOOKUP_METHOD *X509_LOOKUP_hash_dir(void); X509_LOOKUP_METHOD *X509_LOOKUP_file(void); X509_LOOKUP_METHOD *X509_LOOKUP_store(void); @@ -685,8 +692,8 @@ X509_LOOKUP_get_by_alias_fn X509_LOOKUP_meth_get_get_by_alias( const X509_LOOKUP_METHOD *method); -int X509_STORE_add_cert(X509_STORE *ctx, X509 *x); -int X509_STORE_add_crl(X509_STORE *ctx, X509_CRL *x); +int X509_STORE_add_cert(X509_STORE *xs, X509 *x); +int X509_STORE_add_crl(X509_STORE *xs, X509_CRL *x); int X509_STORE_CTX_get_by_subject(const X509_STORE_CTX *vs, X509_LOOKUP_TYPE type, @@ -730,23 +737,21 @@ void *X509_LOOKUP_get_method_data(const X509_LOOKUP *ctx); X509_STORE *X509_LOOKUP_get_store(const X509_LOOKUP *ctx); int X509_LOOKUP_shutdown(X509_LOOKUP *ctx); -int X509_STORE_load_file(X509_STORE *ctx, const char *file); -int X509_STORE_load_path(X509_STORE *ctx, const char *path); -int X509_STORE_load_store(X509_STORE *ctx, const char *store); -int X509_STORE_load_locations(X509_STORE *ctx, - const char *file, - const char *dir); -int X509_STORE_set_default_paths(X509_STORE *ctx); +int X509_STORE_load_file(X509_STORE *xs, const char *file); +int X509_STORE_load_path(X509_STORE *xs, const char *path); +int X509_STORE_load_store(X509_STORE *xs, const char *store); +int X509_STORE_load_locations(X509_STORE *s, const char *file, const char *dir); +int X509_STORE_set_default_paths(X509_STORE *xs); -int X509_STORE_load_file_ex(X509_STORE *ctx, const char *file, +int X509_STORE_load_file_ex(X509_STORE *xs, const char *file, OSSL_LIB_CTX *libctx, const char *propq); -int X509_STORE_load_store_ex(X509_STORE *ctx, const char *store, +int X509_STORE_load_store_ex(X509_STORE *xs, const char *store, OSSL_LIB_CTX *libctx, const char *propq); -int X509_STORE_load_locations_ex(X509_STORE *ctx, const char *file, - const char *dir, OSSL_LIB_CTX *libctx, - const char *propq); -int X509_STORE_set_default_paths_ex(X509_STORE *ctx, OSSL_LIB_CTX *libctx, - const char *propq); +int X509_STORE_load_locations_ex(X509_STORE *xs, + const char *file, const char *dir, + OSSL_LIB_CTX *libctx, const char *propq); +int X509_STORE_set_default_paths_ex(X509_STORE *xs, + OSSL_LIB_CTX *libctx, const char *propq); #define X509_STORE_CTX_get_ex_new_index(l, p, newf, dupf, freef) \ CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_X509_STORE_CTX, l, p, newf, dupf, freef) @@ -764,6 +769,7 @@ X509_STORE_CTX *X509_STORE_CTX_get0_parent_ctx(const X509_STORE_CTX *ctx); STACK_OF(X509) *X509_STORE_CTX_get0_chain(const X509_STORE_CTX *ctx); STACK_OF(X509) *X509_STORE_CTX_get1_chain(const X509_STORE_CTX *ctx); void X509_STORE_CTX_set_cert(X509_STORE_CTX *ctx, X509 *target); +void X509_STORE_CTX_set0_rpk(X509_STORE_CTX *ctx, EVP_PKEY *target); void X509_STORE_CTX_set0_verified_chain(X509_STORE_CTX *c, STACK_OF(X509) *sk); void X509_STORE_CTX_set0_crls(X509_STORE_CTX *ctx, STACK_OF(X509_CRL) *sk); int X509_STORE_CTX_set_purpose(X509_STORE_CTX *ctx, int purpose); @@ -773,6 +779,8 @@ int X509_STORE_CTX_purpose_inherit(X509_STORE_CTX *ctx, int def_purpose, void X509_STORE_CTX_set_flags(X509_STORE_CTX *ctx, unsigned long flags); void X509_STORE_CTX_set_time(X509_STORE_CTX *ctx, unsigned long flags, time_t t); +void X509_STORE_CTX_set_current_reasons(X509_STORE_CTX *ctx, + unsigned int current_reasons); X509_POLICY_TREE *X509_STORE_CTX_get0_policy_tree(const X509_STORE_CTX *ctx); int X509_STORE_CTX_get_explicit_policy(const X509_STORE_CTX *ctx); @@ -804,6 +812,7 @@ int X509_VERIFY_PARAM_clear_flags(X509_VERIFY_PARAM *param, unsigned long flags); unsigned long X509_VERIFY_PARAM_get_flags(const X509_VERIFY_PARAM *param); int X509_VERIFY_PARAM_set_purpose(X509_VERIFY_PARAM *param, int purpose); +int X509_VERIFY_PARAM_get_purpose(const X509_VERIFY_PARAM *param); int X509_VERIFY_PARAM_set_trust(X509_VERIFY_PARAM *param, int trust); void X509_VERIFY_PARAM_set_depth(X509_VERIFY_PARAM *param, int depth); void X509_VERIFY_PARAM_set_auth_level(X509_VERIFY_PARAM *param, int auth_level); diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/include/openssl/x509v3.h b/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/include/openssl/x509v3.h index 20b67455f2061d..b8dabac35a4915 100644 --- a/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/include/openssl/x509v3.h +++ b/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/include/openssl/x509v3.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/x509v3.h.in * - * Copyright 1999-2023 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1999-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -25,6 +25,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -146,6 +149,11 @@ typedef struct BASIC_CONSTRAINTS_st { ASN1_INTEGER *pathlen; } BASIC_CONSTRAINTS; +typedef struct OSSL_BASIC_ATTR_CONSTRAINTS_st { + int authority; + ASN1_INTEGER *pathlen; +} OSSL_BASIC_ATTR_CONSTRAINTS; + typedef struct PKEY_USAGE_PERIOD_st { ASN1_GENERALIZEDTIME *notBefore; ASN1_GENERALIZEDTIME *notAfter; @@ -198,6 +206,8 @@ typedef struct ACCESS_DESCRIPTION_st { GENERAL_NAME *location; } ACCESS_DESCRIPTION; +int GENERAL_NAME_set1_X509_NAME(GENERAL_NAME **tgt, const X509_NAME *src); + SKM_DEFINE_STACK_OF_INTERNAL(ACCESS_DESCRIPTION, ACCESS_DESCRIPTION, ACCESS_DESCRIPTION) #define sk_ACCESS_DESCRIPTION_num(sk) OPENSSL_sk_num(ossl_check_const_ACCESS_DESCRIPTION_sk_type(sk)) #define sk_ACCESS_DESCRIPTION_value(sk, idx) ((ACCESS_DESCRIPTION *)OPENSSL_sk_value(ossl_check_const_ACCESS_DESCRIPTION_sk_type(sk), (idx))) @@ -294,6 +304,7 @@ typedef struct DIST_POINT_NAME_st { /* If relativename then this contains the full distribution point name */ X509_NAME *dpname; } DIST_POINT_NAME; +DECLARE_ASN1_DUP_FUNCTION(DIST_POINT_NAME) /* All existing reasons */ # define CRLDP_ALL_REASONS 0x807f @@ -659,15 +670,16 @@ struct ISSUING_DIST_POINT_st { # define EXFLAG_SAN_CRITICAL 0x80000 # define EXFLAG_NO_FINGERPRINT 0x100000 -# define KU_DIGITAL_SIGNATURE 0x0080 -# define KU_NON_REPUDIATION 0x0040 -# define KU_KEY_ENCIPHERMENT 0x0020 -# define KU_DATA_ENCIPHERMENT 0x0010 -# define KU_KEY_AGREEMENT 0x0008 -# define KU_KEY_CERT_SIGN 0x0004 -# define KU_CRL_SIGN 0x0002 -# define KU_ENCIPHER_ONLY 0x0001 -# define KU_DECIPHER_ONLY 0x8000 +/* https://datatracker.ietf.org/doc/html/rfc5280#section-4.2.1.3 */ +# define KU_DIGITAL_SIGNATURE X509v3_KU_DIGITAL_SIGNATURE +# define KU_NON_REPUDIATION X509v3_KU_NON_REPUDIATION +# define KU_KEY_ENCIPHERMENT X509v3_KU_KEY_ENCIPHERMENT +# define KU_DATA_ENCIPHERMENT X509v3_KU_DATA_ENCIPHERMENT +# define KU_KEY_AGREEMENT X509v3_KU_KEY_AGREEMENT +# define KU_KEY_CERT_SIGN X509v3_KU_KEY_CERT_SIGN +# define KU_CRL_SIGN X509v3_KU_CRL_SIGN +# define KU_ENCIPHER_ONLY X509v3_KU_ENCIPHER_ONLY +# define KU_DECIPHER_ONLY X509v3_KU_DECIPHER_ONLY # define NS_SSL_CLIENT 0x80 # define NS_SSL_SERVER 0x40 @@ -729,7 +741,7 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_PURPOSE, X509_PURPOSE, X509_PURPOSE) #define sk_X509_PURPOSE_set_cmp_func(sk, cmp) ((sk_X509_PURPOSE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_X509_PURPOSE_sk_type(sk), ossl_check_X509_PURPOSE_compfunc_type(cmp))) - +# define X509_PURPOSE_DEFAULT_ANY 0 # define X509_PURPOSE_SSL_CLIENT 1 # define X509_PURPOSE_SSL_SERVER 2 # define X509_PURPOSE_NS_SSL_SERVER 3 @@ -739,9 +751,10 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_PURPOSE, X509_PURPOSE, X509_PURPOSE) # define X509_PURPOSE_ANY 7 # define X509_PURPOSE_OCSP_HELPER 8 # define X509_PURPOSE_TIMESTAMP_SIGN 9 +# define X509_PURPOSE_CODE_SIGN 10 # define X509_PURPOSE_MIN 1 -# define X509_PURPOSE_MAX 9 +# define X509_PURPOSE_MAX 10 /* Flags for X509V3_EXT_print() */ @@ -767,6 +780,7 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_PURPOSE, X509_PURPOSE, X509_PURPOSE) # define X509V3_ADD_SILENT 0x10 DECLARE_ASN1_FUNCTIONS(BASIC_CONSTRAINTS) +DECLARE_ASN1_FUNCTIONS(OSSL_BASIC_ATTR_CONSTRAINTS) DECLARE_ASN1_FUNCTIONS(SXNET) DECLARE_ASN1_FUNCTIONS(SXNETID) @@ -976,7 +990,6 @@ int X509V3_extensions_print(BIO *out, const char *title, int X509_check_ca(X509 *x); int X509_check_purpose(X509 *x, int id, int ca); int X509_supported_extension(X509_EXTENSION *ex); -int X509_PURPOSE_set(int *p, int purpose); int X509_check_issued(X509 *issuer, X509 *subject); int X509_check_akid(const X509 *issuer, const AUTHORITY_KEYID *akid); void X509_set_proxy_flag(X509 *x); @@ -992,22 +1005,26 @@ const GENERAL_NAMES *X509_get0_authority_issuer(X509 *x); const ASN1_INTEGER *X509_get0_authority_serial(X509 *x); int X509_PURPOSE_get_count(void); -X509_PURPOSE *X509_PURPOSE_get0(int idx); +int X509_PURPOSE_get_unused_id(OSSL_LIB_CTX *libctx); int X509_PURPOSE_get_by_sname(const char *sname); int X509_PURPOSE_get_by_id(int id); int X509_PURPOSE_add(int id, int trust, int flags, int (*ck) (const X509_PURPOSE *, const X509 *, int), const char *name, const char *sname, void *arg); +void X509_PURPOSE_cleanup(void); + +X509_PURPOSE *X509_PURPOSE_get0(int idx); +int X509_PURPOSE_get_id(const X509_PURPOSE *); char *X509_PURPOSE_get0_name(const X509_PURPOSE *xp); char *X509_PURPOSE_get0_sname(const X509_PURPOSE *xp); int X509_PURPOSE_get_trust(const X509_PURPOSE *xp); -void X509_PURPOSE_cleanup(void); -int X509_PURPOSE_get_id(const X509_PURPOSE *); +int X509_PURPOSE_set(int *p, int purpose); STACK_OF(OPENSSL_STRING) *X509_get1_email(X509 *x); STACK_OF(OPENSSL_STRING) *X509_REQ_get1_email(X509_REQ *x); void X509_email_free(STACK_OF(OPENSSL_STRING) *sk); STACK_OF(OPENSSL_STRING) *X509_get1_ocsp(X509 *x); + /* Flags for X509_check_* functions */ /* @@ -1444,6 +1461,507 @@ const ASN1_PRINTABLESTRING *PROFESSION_INFO_get0_registrationNumber( void PROFESSION_INFO_set0_registrationNumber( PROFESSION_INFO *pi, ASN1_PRINTABLESTRING *rn); +int OSSL_GENERAL_NAMES_print(BIO *out, GENERAL_NAMES *gens, int indent); + +typedef STACK_OF(X509_ATTRIBUTE) OSSL_ATTRIBUTES_SYNTAX; +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTES_SYNTAX) + +typedef STACK_OF(USERNOTICE) OSSL_USER_NOTICE_SYNTAX; +DECLARE_ASN1_FUNCTIONS(OSSL_USER_NOTICE_SYNTAX) + +SKM_DEFINE_STACK_OF_INTERNAL(USERNOTICE, USERNOTICE, USERNOTICE) +#define sk_USERNOTICE_num(sk) OPENSSL_sk_num(ossl_check_const_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_value(sk, idx) ((USERNOTICE *)OPENSSL_sk_value(ossl_check_const_USERNOTICE_sk_type(sk), (idx))) +#define sk_USERNOTICE_new(cmp) ((STACK_OF(USERNOTICE) *)OPENSSL_sk_new(ossl_check_USERNOTICE_compfunc_type(cmp))) +#define sk_USERNOTICE_new_null() ((STACK_OF(USERNOTICE) *)OPENSSL_sk_new_null()) +#define sk_USERNOTICE_new_reserve(cmp, n) ((STACK_OF(USERNOTICE) *)OPENSSL_sk_new_reserve(ossl_check_USERNOTICE_compfunc_type(cmp), (n))) +#define sk_USERNOTICE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_USERNOTICE_sk_type(sk), (n)) +#define sk_USERNOTICE_free(sk) OPENSSL_sk_free(ossl_check_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_zero(sk) OPENSSL_sk_zero(ossl_check_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_delete(sk, i) ((USERNOTICE *)OPENSSL_sk_delete(ossl_check_USERNOTICE_sk_type(sk), (i))) +#define sk_USERNOTICE_delete_ptr(sk, ptr) ((USERNOTICE *)OPENSSL_sk_delete_ptr(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr))) +#define sk_USERNOTICE_push(sk, ptr) OPENSSL_sk_push(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr)) +#define sk_USERNOTICE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr)) +#define sk_USERNOTICE_pop(sk) ((USERNOTICE *)OPENSSL_sk_pop(ossl_check_USERNOTICE_sk_type(sk))) +#define sk_USERNOTICE_shift(sk) ((USERNOTICE *)OPENSSL_sk_shift(ossl_check_USERNOTICE_sk_type(sk))) +#define sk_USERNOTICE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_USERNOTICE_sk_type(sk),ossl_check_USERNOTICE_freefunc_type(freefunc)) +#define sk_USERNOTICE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr), (idx)) +#define sk_USERNOTICE_set(sk, idx, ptr) ((USERNOTICE *)OPENSSL_sk_set(ossl_check_USERNOTICE_sk_type(sk), (idx), ossl_check_USERNOTICE_type(ptr))) +#define sk_USERNOTICE_find(sk, ptr) OPENSSL_sk_find(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr)) +#define sk_USERNOTICE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr)) +#define sk_USERNOTICE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr), pnum) +#define sk_USERNOTICE_sort(sk) OPENSSL_sk_sort(ossl_check_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_dup(sk) ((STACK_OF(USERNOTICE) *)OPENSSL_sk_dup(ossl_check_const_USERNOTICE_sk_type(sk))) +#define sk_USERNOTICE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(USERNOTICE) *)OPENSSL_sk_deep_copy(ossl_check_const_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_copyfunc_type(copyfunc), ossl_check_USERNOTICE_freefunc_type(freefunc))) +#define sk_USERNOTICE_set_cmp_func(sk, cmp) ((sk_USERNOTICE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_compfunc_type(cmp))) + + +typedef struct OSSL_ROLE_SPEC_CERT_ID_st { + GENERAL_NAME *roleName; + GENERAL_NAME *roleCertIssuer; + ASN1_INTEGER *roleCertSerialNumber; + GENERAL_NAMES *roleCertLocator; +} OSSL_ROLE_SPEC_CERT_ID; + +DECLARE_ASN1_FUNCTIONS(OSSL_ROLE_SPEC_CERT_ID) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ROLE_SPEC_CERT_ID, OSSL_ROLE_SPEC_CERT_ID, OSSL_ROLE_SPEC_CERT_ID) +#define sk_OSSL_ROLE_SPEC_CERT_ID_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_value(sk, idx) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_value(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), (idx))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_new(cmp) ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_new(ossl_check_OSSL_ROLE_SPEC_CERT_ID_compfunc_type(cmp))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_new_null() ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ROLE_SPEC_CERT_ID_new_reserve(cmp, n) ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ROLE_SPEC_CERT_ID_compfunc_type(cmp), (n))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), (n)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_delete(sk, i) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_delete(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), (i))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_delete_ptr(sk, ptr) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_pop(sk) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_pop(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_shift(sk) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_shift(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk),ossl_check_OSSL_ROLE_SPEC_CERT_ID_freefunc_type(freefunc)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr), (idx)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_set(sk, idx, ptr) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_set(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), (idx), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr), pnum) +#define sk_OSSL_ROLE_SPEC_CERT_ID_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_dup(sk) ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_copyfunc_type(copyfunc), ossl_check_OSSL_ROLE_SPEC_CERT_ID_freefunc_type(freefunc))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_set_cmp_func(sk, cmp) ((sk_OSSL_ROLE_SPEC_CERT_ID_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_compfunc_type(cmp))) + + +typedef STACK_OF(OSSL_ROLE_SPEC_CERT_ID) OSSL_ROLE_SPEC_CERT_ID_SYNTAX; + +DECLARE_ASN1_FUNCTIONS(OSSL_ROLE_SPEC_CERT_ID_SYNTAX) +typedef struct OSSL_HASH_st { + X509_ALGOR *algorithmIdentifier; + ASN1_BIT_STRING *hashValue; +} OSSL_HASH; + +typedef struct OSSL_INFO_SYNTAX_POINTER_st { + GENERAL_NAMES *name; + OSSL_HASH *hash; +} OSSL_INFO_SYNTAX_POINTER; + +# define OSSL_INFO_SYNTAX_TYPE_CONTENT 0 +# define OSSL_INFO_SYNTAX_TYPE_POINTER 1 + +typedef struct OSSL_INFO_SYNTAX_st { + int type; + union { + ASN1_STRING *content; + OSSL_INFO_SYNTAX_POINTER *pointer; + } choice; +} OSSL_INFO_SYNTAX; + +typedef struct OSSL_PRIVILEGE_POLICY_ID_st { + ASN1_OBJECT *privilegePolicy; + OSSL_INFO_SYNTAX *privPolSyntax; +} OSSL_PRIVILEGE_POLICY_ID; + +typedef struct OSSL_ATTRIBUTE_DESCRIPTOR_st { + ASN1_OBJECT *identifier; + ASN1_STRING *attributeSyntax; + ASN1_UTF8STRING *name; + ASN1_UTF8STRING *description; + OSSL_PRIVILEGE_POLICY_ID *dominationRule; +} OSSL_ATTRIBUTE_DESCRIPTOR; + +DECLARE_ASN1_FUNCTIONS(OSSL_HASH) +DECLARE_ASN1_FUNCTIONS(OSSL_INFO_SYNTAX) +DECLARE_ASN1_FUNCTIONS(OSSL_INFO_SYNTAX_POINTER) +DECLARE_ASN1_FUNCTIONS(OSSL_PRIVILEGE_POLICY_ID) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_DESCRIPTOR) + +typedef struct OSSL_TIME_SPEC_ABSOLUTE_st { + ASN1_GENERALIZEDTIME *startTime; + ASN1_GENERALIZEDTIME *endTime; +} OSSL_TIME_SPEC_ABSOLUTE; + +typedef struct OSSL_DAY_TIME_st { + ASN1_INTEGER *hour; + ASN1_INTEGER *minute; + ASN1_INTEGER *second; +} OSSL_DAY_TIME; + +typedef struct OSSL_DAY_TIME_BAND_st { + OSSL_DAY_TIME *startDayTime; + OSSL_DAY_TIME *endDayTime; +} OSSL_DAY_TIME_BAND; + +# define OSSL_NAMED_DAY_TYPE_INT 0 +# define OSSL_NAMED_DAY_TYPE_BIT 1 +# define OSSL_NAMED_DAY_INT_SUN 1 +# define OSSL_NAMED_DAY_INT_MON 2 +# define OSSL_NAMED_DAY_INT_TUE 3 +# define OSSL_NAMED_DAY_INT_WED 4 +# define OSSL_NAMED_DAY_INT_THU 5 +# define OSSL_NAMED_DAY_INT_FRI 6 +# define OSSL_NAMED_DAY_INT_SAT 7 +# define OSSL_NAMED_DAY_BIT_SUN 0 +# define OSSL_NAMED_DAY_BIT_MON 1 +# define OSSL_NAMED_DAY_BIT_TUE 2 +# define OSSL_NAMED_DAY_BIT_WED 3 +# define OSSL_NAMED_DAY_BIT_THU 4 +# define OSSL_NAMED_DAY_BIT_FRI 5 +# define OSSL_NAMED_DAY_BIT_SAT 6 + +typedef struct OSSL_NAMED_DAY_st { + int type; + union { + ASN1_INTEGER *intNamedDays; + ASN1_BIT_STRING *bitNamedDays; + } choice; +} OSSL_NAMED_DAY; + +# define OSSL_TIME_SPEC_X_DAY_OF_FIRST 0 +# define OSSL_TIME_SPEC_X_DAY_OF_SECOND 1 +# define OSSL_TIME_SPEC_X_DAY_OF_THIRD 2 +# define OSSL_TIME_SPEC_X_DAY_OF_FOURTH 3 +# define OSSL_TIME_SPEC_X_DAY_OF_FIFTH 4 + +typedef struct OSSL_TIME_SPEC_X_DAY_OF_st { + int type; + union { + OSSL_NAMED_DAY *first; + OSSL_NAMED_DAY *second; + OSSL_NAMED_DAY *third; + OSSL_NAMED_DAY *fourth; + OSSL_NAMED_DAY *fifth; + } choice; +} OSSL_TIME_SPEC_X_DAY_OF; + +# define OSSL_TIME_SPEC_DAY_TYPE_INT 0 +# define OSSL_TIME_SPEC_DAY_TYPE_BIT 1 +# define OSSL_TIME_SPEC_DAY_TYPE_DAY_OF 2 +# define OSSL_TIME_SPEC_DAY_BIT_SUN 0 +# define OSSL_TIME_SPEC_DAY_BIT_MON 1 +# define OSSL_TIME_SPEC_DAY_BIT_TUE 2 +# define OSSL_TIME_SPEC_DAY_BIT_WED 3 +# define OSSL_TIME_SPEC_DAY_BIT_THU 4 +# define OSSL_TIME_SPEC_DAY_BIT_FRI 5 +# define OSSL_TIME_SPEC_DAY_BIT_SAT 6 +# define OSSL_TIME_SPEC_DAY_INT_SUN 1 +# define OSSL_TIME_SPEC_DAY_INT_MON 2 +# define OSSL_TIME_SPEC_DAY_INT_TUE 3 +# define OSSL_TIME_SPEC_DAY_INT_WED 4 +# define OSSL_TIME_SPEC_DAY_INT_THU 5 +# define OSSL_TIME_SPEC_DAY_INT_FRI 6 +# define OSSL_TIME_SPEC_DAY_INT_SAT 7 + +typedef struct OSSL_TIME_SPEC_DAY_st { + int type; + union { + STACK_OF(ASN1_INTEGER) *intDay; + ASN1_BIT_STRING *bitDay; + OSSL_TIME_SPEC_X_DAY_OF *dayOf; + } choice; +} OSSL_TIME_SPEC_DAY; + +# define OSSL_TIME_SPEC_WEEKS_TYPE_ALL 0 +# define OSSL_TIME_SPEC_WEEKS_TYPE_INT 1 +# define OSSL_TIME_SPEC_WEEKS_TYPE_BIT 2 +# define OSSL_TIME_SPEC_BIT_WEEKS_1 0 +# define OSSL_TIME_SPEC_BIT_WEEKS_2 1 +# define OSSL_TIME_SPEC_BIT_WEEKS_3 2 +# define OSSL_TIME_SPEC_BIT_WEEKS_4 3 +# define OSSL_TIME_SPEC_BIT_WEEKS_5 4 + +typedef struct OSSL_TIME_SPEC_WEEKS_st { + int type; + union { + ASN1_NULL *allWeeks; + STACK_OF(ASN1_INTEGER) *intWeek; + ASN1_BIT_STRING *bitWeek; + } choice; +} OSSL_TIME_SPEC_WEEKS; + +# define OSSL_TIME_SPEC_MONTH_TYPE_ALL 0 +# define OSSL_TIME_SPEC_MONTH_TYPE_INT 1 +# define OSSL_TIME_SPEC_MONTH_TYPE_BIT 2 +# define OSSL_TIME_SPEC_INT_MONTH_JAN 1 +# define OSSL_TIME_SPEC_INT_MONTH_FEB 2 +# define OSSL_TIME_SPEC_INT_MONTH_MAR 3 +# define OSSL_TIME_SPEC_INT_MONTH_APR 4 +# define OSSL_TIME_SPEC_INT_MONTH_MAY 5 +# define OSSL_TIME_SPEC_INT_MONTH_JUN 6 +# define OSSL_TIME_SPEC_INT_MONTH_JUL 7 +# define OSSL_TIME_SPEC_INT_MONTH_AUG 8 +# define OSSL_TIME_SPEC_INT_MONTH_SEP 9 +# define OSSL_TIME_SPEC_INT_MONTH_OCT 10 +# define OSSL_TIME_SPEC_INT_MONTH_NOV 11 +# define OSSL_TIME_SPEC_INT_MONTH_DEC 12 +# define OSSL_TIME_SPEC_BIT_MONTH_JAN 0 +# define OSSL_TIME_SPEC_BIT_MONTH_FEB 1 +# define OSSL_TIME_SPEC_BIT_MONTH_MAR 2 +# define OSSL_TIME_SPEC_BIT_MONTH_APR 3 +# define OSSL_TIME_SPEC_BIT_MONTH_MAY 4 +# define OSSL_TIME_SPEC_BIT_MONTH_JUN 5 +# define OSSL_TIME_SPEC_BIT_MONTH_JUL 6 +# define OSSL_TIME_SPEC_BIT_MONTH_AUG 7 +# define OSSL_TIME_SPEC_BIT_MONTH_SEP 8 +# define OSSL_TIME_SPEC_BIT_MONTH_OCT 9 +# define OSSL_TIME_SPEC_BIT_MONTH_NOV 10 +# define OSSL_TIME_SPEC_BIT_MONTH_DEC 11 + +typedef struct OSSL_TIME_SPEC_MONTH_st { + int type; + union { + ASN1_NULL *allMonths; + STACK_OF(ASN1_INTEGER) *intMonth; + ASN1_BIT_STRING *bitMonth; + } choice; +} OSSL_TIME_SPEC_MONTH; + +typedef struct OSSL_TIME_PERIOD_st { + STACK_OF(OSSL_DAY_TIME_BAND) *timesOfDay; + OSSL_TIME_SPEC_DAY *days; + OSSL_TIME_SPEC_WEEKS *weeks; + OSSL_TIME_SPEC_MONTH *months; + STACK_OF(ASN1_INTEGER) *years; +} OSSL_TIME_PERIOD; + +# define OSSL_TIME_SPEC_TIME_TYPE_ABSOLUTE 0 +# define OSSL_TIME_SPEC_TIME_TYPE_PERIODIC 1 + +typedef struct OSSL_TIME_SPEC_TIME_st { + int type; + union { + OSSL_TIME_SPEC_ABSOLUTE *absolute; + STACK_OF(OSSL_TIME_PERIOD) *periodic; + } choice; +} OSSL_TIME_SPEC_TIME; + +typedef struct OSSL_TIME_SPEC_st { + OSSL_TIME_SPEC_TIME *time; + ASN1_BOOLEAN notThisTime; + ASN1_INTEGER *timeZone; +} OSSL_TIME_SPEC; + +DECLARE_ASN1_FUNCTIONS(OSSL_DAY_TIME) +DECLARE_ASN1_FUNCTIONS(OSSL_DAY_TIME_BAND) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_DAY) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_WEEKS) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_MONTH) +DECLARE_ASN1_FUNCTIONS(OSSL_NAMED_DAY) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_X_DAY_OF) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_ABSOLUTE) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_TIME) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_PERIOD) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_TIME_PERIOD, OSSL_TIME_PERIOD, OSSL_TIME_PERIOD) +#define sk_OSSL_TIME_PERIOD_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_value(sk, idx) ((OSSL_TIME_PERIOD *)OPENSSL_sk_value(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk), (idx))) +#define sk_OSSL_TIME_PERIOD_new(cmp) ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_new(ossl_check_OSSL_TIME_PERIOD_compfunc_type(cmp))) +#define sk_OSSL_TIME_PERIOD_new_null() ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_new_null()) +#define sk_OSSL_TIME_PERIOD_new_reserve(cmp, n) ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_TIME_PERIOD_compfunc_type(cmp), (n))) +#define sk_OSSL_TIME_PERIOD_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), (n)) +#define sk_OSSL_TIME_PERIOD_free(sk) OPENSSL_sk_free(ossl_check_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_delete(sk, i) ((OSSL_TIME_PERIOD *)OPENSSL_sk_delete(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), (i))) +#define sk_OSSL_TIME_PERIOD_delete_ptr(sk, ptr) ((OSSL_TIME_PERIOD *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr))) +#define sk_OSSL_TIME_PERIOD_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr)) +#define sk_OSSL_TIME_PERIOD_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr)) +#define sk_OSSL_TIME_PERIOD_pop(sk) ((OSSL_TIME_PERIOD *)OPENSSL_sk_pop(ossl_check_OSSL_TIME_PERIOD_sk_type(sk))) +#define sk_OSSL_TIME_PERIOD_shift(sk) ((OSSL_TIME_PERIOD *)OPENSSL_sk_shift(ossl_check_OSSL_TIME_PERIOD_sk_type(sk))) +#define sk_OSSL_TIME_PERIOD_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_TIME_PERIOD_sk_type(sk),ossl_check_OSSL_TIME_PERIOD_freefunc_type(freefunc)) +#define sk_OSSL_TIME_PERIOD_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr), (idx)) +#define sk_OSSL_TIME_PERIOD_set(sk, idx, ptr) ((OSSL_TIME_PERIOD *)OPENSSL_sk_set(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), (idx), ossl_check_OSSL_TIME_PERIOD_type(ptr))) +#define sk_OSSL_TIME_PERIOD_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr)) +#define sk_OSSL_TIME_PERIOD_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr)) +#define sk_OSSL_TIME_PERIOD_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr), pnum) +#define sk_OSSL_TIME_PERIOD_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_dup(sk) ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_dup(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk))) +#define sk_OSSL_TIME_PERIOD_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_copyfunc_type(copyfunc), ossl_check_OSSL_TIME_PERIOD_freefunc_type(freefunc))) +#define sk_OSSL_TIME_PERIOD_set_cmp_func(sk, cmp) ((sk_OSSL_TIME_PERIOD_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_compfunc_type(cmp))) + + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_DAY_TIME_BAND, OSSL_DAY_TIME_BAND, OSSL_DAY_TIME_BAND) +#define sk_OSSL_DAY_TIME_BAND_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_value(sk, idx) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_value(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk), (idx))) +#define sk_OSSL_DAY_TIME_BAND_new(cmp) ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_new(ossl_check_OSSL_DAY_TIME_BAND_compfunc_type(cmp))) +#define sk_OSSL_DAY_TIME_BAND_new_null() ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_new_null()) +#define sk_OSSL_DAY_TIME_BAND_new_reserve(cmp, n) ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_DAY_TIME_BAND_compfunc_type(cmp), (n))) +#define sk_OSSL_DAY_TIME_BAND_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), (n)) +#define sk_OSSL_DAY_TIME_BAND_free(sk) OPENSSL_sk_free(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_delete(sk, i) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_delete(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), (i))) +#define sk_OSSL_DAY_TIME_BAND_delete_ptr(sk, ptr) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr))) +#define sk_OSSL_DAY_TIME_BAND_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr)) +#define sk_OSSL_DAY_TIME_BAND_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr)) +#define sk_OSSL_DAY_TIME_BAND_pop(sk) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_pop(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk))) +#define sk_OSSL_DAY_TIME_BAND_shift(sk) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_shift(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk))) +#define sk_OSSL_DAY_TIME_BAND_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk),ossl_check_OSSL_DAY_TIME_BAND_freefunc_type(freefunc)) +#define sk_OSSL_DAY_TIME_BAND_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr), (idx)) +#define sk_OSSL_DAY_TIME_BAND_set(sk, idx, ptr) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_set(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), (idx), ossl_check_OSSL_DAY_TIME_BAND_type(ptr))) +#define sk_OSSL_DAY_TIME_BAND_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr)) +#define sk_OSSL_DAY_TIME_BAND_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr)) +#define sk_OSSL_DAY_TIME_BAND_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr), pnum) +#define sk_OSSL_DAY_TIME_BAND_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_dup(sk) ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_dup(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk))) +#define sk_OSSL_DAY_TIME_BAND_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_copyfunc_type(copyfunc), ossl_check_OSSL_DAY_TIME_BAND_freefunc_type(freefunc))) +#define sk_OSSL_DAY_TIME_BAND_set_cmp_func(sk, cmp) ((sk_OSSL_DAY_TIME_BAND_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_compfunc_type(cmp))) + + +/* Attribute Type and Value */ +typedef struct atav_st { + ASN1_OBJECT *type; + ASN1_TYPE *value; +} OSSL_ATAV; + +typedef struct ATTRIBUTE_TYPE_MAPPING_st { + ASN1_OBJECT *local; + ASN1_OBJECT *remote; +} OSSL_ATTRIBUTE_TYPE_MAPPING; + +typedef struct ATTRIBUTE_VALUE_MAPPING_st { + OSSL_ATAV *local; + OSSL_ATAV *remote; +} OSSL_ATTRIBUTE_VALUE_MAPPING; + +# define OSSL_ATTR_MAP_TYPE 0 +# define OSSL_ATTR_MAP_VALUE 1 + +typedef struct ATTRIBUTE_MAPPING_st { + int type; + union { + OSSL_ATTRIBUTE_TYPE_MAPPING *typeMappings; + OSSL_ATTRIBUTE_VALUE_MAPPING *typeValueMappings; + } choice; +} OSSL_ATTRIBUTE_MAPPING; + +typedef STACK_OF(OSSL_ATTRIBUTE_MAPPING) OSSL_ATTRIBUTE_MAPPINGS; +DECLARE_ASN1_FUNCTIONS(OSSL_ATAV) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_TYPE_MAPPING) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_VALUE_MAPPING) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_MAPPING) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_MAPPINGS) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ATTRIBUTE_MAPPING, OSSL_ATTRIBUTE_MAPPING, OSSL_ATTRIBUTE_MAPPING) +#define sk_OSSL_ATTRIBUTE_MAPPING_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_value(sk, idx) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_value(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), (idx))) +#define sk_OSSL_ATTRIBUTE_MAPPING_new(cmp) ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_new(ossl_check_OSSL_ATTRIBUTE_MAPPING_compfunc_type(cmp))) +#define sk_OSSL_ATTRIBUTE_MAPPING_new_null() ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ATTRIBUTE_MAPPING_new_reserve(cmp, n) ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ATTRIBUTE_MAPPING_compfunc_type(cmp), (n))) +#define sk_OSSL_ATTRIBUTE_MAPPING_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), (n)) +#define sk_OSSL_ATTRIBUTE_MAPPING_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_delete(sk, i) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_delete(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), (i))) +#define sk_OSSL_ATTRIBUTE_MAPPING_delete_ptr(sk, ptr) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr))) +#define sk_OSSL_ATTRIBUTE_MAPPING_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr)) +#define sk_OSSL_ATTRIBUTE_MAPPING_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr)) +#define sk_OSSL_ATTRIBUTE_MAPPING_pop(sk) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_pop(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk))) +#define sk_OSSL_ATTRIBUTE_MAPPING_shift(sk) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_shift(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk))) +#define sk_OSSL_ATTRIBUTE_MAPPING_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk),ossl_check_OSSL_ATTRIBUTE_MAPPING_freefunc_type(freefunc)) +#define sk_OSSL_ATTRIBUTE_MAPPING_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr), (idx)) +#define sk_OSSL_ATTRIBUTE_MAPPING_set(sk, idx, ptr) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_set(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), (idx), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr))) +#define sk_OSSL_ATTRIBUTE_MAPPING_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr)) +#define sk_OSSL_ATTRIBUTE_MAPPING_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr)) +#define sk_OSSL_ATTRIBUTE_MAPPING_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr), pnum) +#define sk_OSSL_ATTRIBUTE_MAPPING_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_dup(sk) ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk))) +#define sk_OSSL_ATTRIBUTE_MAPPING_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_copyfunc_type(copyfunc), ossl_check_OSSL_ATTRIBUTE_MAPPING_freefunc_type(freefunc))) +#define sk_OSSL_ATTRIBUTE_MAPPING_set_cmp_func(sk, cmp) ((sk_OSSL_ATTRIBUTE_MAPPING_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_compfunc_type(cmp))) + + +# define OSSL_AAA_ATTRIBUTE_TYPE 0 +# define OSSL_AAA_ATTRIBUTE_VALUES 1 + +typedef struct ALLOWED_ATTRIBUTES_CHOICE_st { + int type; + union { + ASN1_OBJECT *attributeType; + X509_ATTRIBUTE *attributeTypeandValues; + } choice; +} OSSL_ALLOWED_ATTRIBUTES_CHOICE; + +typedef struct ALLOWED_ATTRIBUTES_ITEM_st { + STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *attributes; + GENERAL_NAME *holderDomain; +} OSSL_ALLOWED_ATTRIBUTES_ITEM; + +typedef STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) OSSL_ALLOWED_ATTRIBUTES_SYNTAX; + +DECLARE_ASN1_FUNCTIONS(OSSL_ALLOWED_ATTRIBUTES_CHOICE) +DECLARE_ASN1_FUNCTIONS(OSSL_ALLOWED_ATTRIBUTES_ITEM) +DECLARE_ASN1_FUNCTIONS(OSSL_ALLOWED_ATTRIBUTES_SYNTAX) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ALLOWED_ATTRIBUTES_CHOICE, OSSL_ALLOWED_ATTRIBUTES_CHOICE, OSSL_ALLOWED_ATTRIBUTES_CHOICE) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_value(sk, idx) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_value(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), (idx))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_new(cmp) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_new(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_compfunc_type(cmp))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_new_null() ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_new_reserve(cmp, n) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_compfunc_type(cmp), (n))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), (n)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_delete(sk, i) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_delete(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), (i))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_delete_ptr(sk, ptr) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_pop(sk) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_pop(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_shift(sk) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_shift(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk),ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_freefunc_type(freefunc)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr), (idx)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_set(sk, idx, ptr) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_set(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), (idx), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr), pnum) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_dup(sk) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_copyfunc_type(copyfunc), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_freefunc_type(freefunc))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_set_cmp_func(sk, cmp) ((sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_compfunc_type(cmp))) + + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ALLOWED_ATTRIBUTES_ITEM, OSSL_ALLOWED_ATTRIBUTES_ITEM, OSSL_ALLOWED_ATTRIBUTES_ITEM) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_value(sk, idx) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_value(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), (idx))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_new(cmp) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_new(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_compfunc_type(cmp))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_new_null() ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_new_reserve(cmp, n) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_compfunc_type(cmp), (n))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), (n)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_delete(sk, i) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_delete(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), (i))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_delete_ptr(sk, ptr) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_pop(sk) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_pop(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_shift(sk) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_shift(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk),ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_freefunc_type(freefunc)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr), (idx)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_set(sk, idx, ptr) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_set(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), (idx), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr), pnum) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_dup(sk) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_copyfunc_type(copyfunc), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_freefunc_type(freefunc))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_set_cmp_func(sk, cmp) ((sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_compfunc_type(cmp))) + + +typedef struct AA_DIST_POINT_st { + DIST_POINT_NAME *distpoint; + ASN1_BIT_STRING *reasons; + int dp_reasons; + ASN1_BOOLEAN indirectCRL; + ASN1_BOOLEAN containsUserAttributeCerts; + ASN1_BOOLEAN containsAACerts; + ASN1_BOOLEAN containsSOAPublicKeyCerts; +} OSSL_AA_DIST_POINT; + +DECLARE_ASN1_FUNCTIONS(OSSL_AA_DIST_POINT) + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/include/progs.h b/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/include/progs.h index be55f61503d405..1b62ec37dec130 100644 --- a/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/include/progs.h +++ b/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/include/progs.h @@ -56,6 +56,7 @@ extern int s_client_main(int argc, char *argv[]); extern int s_server_main(int argc, char *argv[]); extern int s_time_main(int argc, char *argv[]); extern int sess_id_main(int argc, char *argv[]); +extern int skeyutl_main(int argc, char *argv[]); extern int smime_main(int argc, char *argv[]); extern int speed_main(int argc, char *argv[]); extern int spkac_main(int argc, char *argv[]); @@ -110,6 +111,7 @@ extern const OPTIONS s_client_options[]; extern const OPTIONS s_server_options[]; extern const OPTIONS s_time_options[]; extern const OPTIONS sess_id_options[]; +extern const OPTIONS skeyutl_options[]; extern const OPTIONS smime_options[]; extern const OPTIONS speed_options[]; extern const OPTIONS spkac_options[]; diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/openssl-cl.gypi b/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/openssl-cl.gypi index ca25b8e632da1c..d97d8a092ad246 100644 --- a/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/openssl-cl.gypi +++ b/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/openssl-cl.gypi @@ -4,15 +4,21 @@ 'NDEBUG', 'L_ENDIAN', 'OPENSSL_BUILDING_OPENSSL', + 'BSAES_ASM', 'ECP_NISTZ256_ASM', + 'ECP_SM2P256_ASM', 'KECCAK1600_ASM', + 'MD5_ASM', 'OPENSSL_BN_ASM_MONT', 'OPENSSL_CPUID_OBJ', + 'OPENSSL_SM3_ASM', 'POLY1305_ASM', 'SHA1_ASM', 'SHA256_ASM', 'SHA512_ASM', + 'SM4_ASM', 'VPAES_ASM', + 'VPSM4_ASM', 'OPENSSL_PIC', ], 'openssl_cflags_darwin64-arm64-cc': [ @@ -71,6 +77,7 @@ 'openssl/apps/s_server.c', 'openssl/apps/s_time.c', 'openssl/apps/sess_id.c', + 'openssl/apps/skeyutl.c', 'openssl/apps/smime.c', 'openssl/apps/speed.c', 'openssl/apps/spkac.c', @@ -86,12 +93,14 @@ 'openssl/apps/lib/app_rand.c', 'openssl/apps/lib/app_x509.c', 'openssl/apps/lib/apps.c', + 'openssl/apps/lib/apps_opt_printf.c', 'openssl/apps/lib/apps_ui.c', 'openssl/apps/lib/columns.c', 'openssl/apps/lib/engine.c', 'openssl/apps/lib/engine_loader.c', 'openssl/apps/lib/fmt.c', 'openssl/apps/lib/http_server.c', + 'openssl/apps/lib/log.c', 'openssl/apps/lib/names.c', 'openssl/apps/lib/opt.c', 'openssl/apps/lib/s_cb.c', diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/openssl-fips.gypi b/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/openssl-fips.gypi index fa9314b81f3a47..942ef14388f83b 100644 --- a/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/openssl-fips.gypi +++ b/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/openssl-fips.gypi @@ -83,6 +83,8 @@ 'openssl/crypto/ec/ecp_nist.c', 'openssl/crypto/ec/ecp_nistz256.c', 'openssl/crypto/ec/ecp_oct.c', + 'openssl/crypto/ec/ecp_sm2p256.c', + 'openssl/crypto/ec/ecp_sm2p256_table.c', 'openssl/crypto/ec/ecp_smpl.c', 'openssl/crypto/ec/ecx_backend.c', 'openssl/crypto/ec/ecx_key.c', @@ -101,14 +103,15 @@ 'openssl/crypto/evp/kem.c', 'openssl/crypto/evp/keymgmt_lib.c', 'openssl/crypto/evp/keymgmt_meth.c', - 'openssl/crypto/evp/m_sigver.c', 'openssl/crypto/evp/mac_lib.c', 'openssl/crypto/evp/mac_meth.c', 'openssl/crypto/evp/p_lib.c', 'openssl/crypto/evp/pmeth_check.c', 'openssl/crypto/evp/pmeth_gn.c', 'openssl/crypto/evp/pmeth_lib.c', + 'openssl/crypto/evp/s_lib.c', 'openssl/crypto/evp/signature.c', + 'openssl/crypto/evp/skeymgmt_meth.c', 'openssl/crypto/ffc/ffc_backend.c', 'openssl/crypto/ffc/ffc_dh.c', 'openssl/crypto/ffc/ffc_key_generate.c', @@ -116,6 +119,8 @@ 'openssl/crypto/ffc/ffc_params.c', 'openssl/crypto/ffc/ffc_params_generate.c', 'openssl/crypto/ffc/ffc_params_validate.c', + 'openssl/crypto/hashtable/hashfunc.c', + 'openssl/crypto/hashtable/hashtable.c', 'openssl/crypto/hmac/hmac.c', 'openssl/crypto/lhash/lhash.c', 'openssl/crypto/armcap.c', @@ -146,6 +151,16 @@ 'openssl/crypto/threads_none.c', 'openssl/crypto/threads_pthread.c', 'openssl/crypto/threads_win.c', + 'openssl/crypto/time.c', + 'openssl/crypto/ml_dsa/ml_dsa_encoders.c', + 'openssl/crypto/ml_dsa/ml_dsa_key.c', + 'openssl/crypto/ml_dsa/ml_dsa_key_compress.c', + 'openssl/crypto/ml_dsa/ml_dsa_matrix.c', + 'openssl/crypto/ml_dsa/ml_dsa_ntt.c', + 'openssl/crypto/ml_dsa/ml_dsa_params.c', + 'openssl/crypto/ml_dsa/ml_dsa_sample.c', + 'openssl/crypto/ml_dsa/ml_dsa_sign.c', + 'openssl/crypto/ml_kem/ml_kem.c', 'openssl/crypto/modes/cbc128.c', 'openssl/crypto/modes/ccm128.c', 'openssl/crypto/modes/cfb128.c', @@ -154,6 +169,7 @@ 'openssl/crypto/modes/ofb128.c', 'openssl/crypto/modes/wrap128.c', 'openssl/crypto/modes/xts128.c', + 'openssl/crypto/modes/xts128gb.c', 'openssl/crypto/property/defn_cache.c', 'openssl/crypto/property/property.c', 'openssl/crypto/property/property_parse.c', @@ -181,7 +197,23 @@ 'openssl/crypto/sha/sha256.c', 'openssl/crypto/sha/sha3.c', 'openssl/crypto/sha/sha512.c', + 'openssl/crypto/slh_dsa/slh_adrs.c', + 'openssl/crypto/slh_dsa/slh_dsa.c', + 'openssl/crypto/slh_dsa/slh_dsa_hash_ctx.c', + 'openssl/crypto/slh_dsa/slh_dsa_key.c', + 'openssl/crypto/slh_dsa/slh_fors.c', + 'openssl/crypto/slh_dsa/slh_hash.c', + 'openssl/crypto/slh_dsa/slh_hypertree.c', + 'openssl/crypto/slh_dsa/slh_params.c', + 'openssl/crypto/slh_dsa/slh_wots.c', + 'openssl/crypto/slh_dsa/slh_xmss.c', 'openssl/crypto/stack/stack.c', + 'openssl/crypto/thread/arch/thread_none.c', + 'openssl/crypto/thread/arch/thread_posix.c', + 'openssl/crypto/thread/arch/thread_win.c', + 'openssl/crypto/thread/api.c', + 'openssl/crypto/thread/arch.c', + 'openssl/crypto/thread/internal.c', 'openssl/providers/common/der/der_rsa_sig.c', 'openssl/providers/common/bio_prov.c', 'openssl/providers/common/capabilities.c', @@ -190,6 +222,7 @@ 'openssl/providers/common/provider_util.c', 'openssl/providers/common/securitycheck.c', 'openssl/providers/common/securitycheck_fips.c', + 'openssl/providers/fips/fipsindicator.c', 'openssl/providers/fips/fipsprov.c', 'openssl/providers/fips/self_test.c', 'openssl/providers/fips/self_test_kats.c', @@ -227,6 +260,8 @@ 'openssl/providers/implementations/kdfs/sskdf.c', 'openssl/providers/implementations/kdfs/tls1_prf.c', 'openssl/providers/implementations/kdfs/x942kdf.c', + 'openssl/providers/implementations/kem/ml_kem_kem.c', + 'openssl/providers/implementations/kem/mlx_kem.c', 'openssl/providers/implementations/kem/rsa_kem.c', 'openssl/providers/implementations/keymgmt/dh_kmgmt.c', 'openssl/providers/implementations/keymgmt/dsa_kmgmt.c', @@ -234,29 +269,39 @@ 'openssl/providers/implementations/keymgmt/ecx_kmgmt.c', 'openssl/providers/implementations/keymgmt/kdf_legacy_kmgmt.c', 'openssl/providers/implementations/keymgmt/mac_legacy_kmgmt.c', + 'openssl/providers/implementations/keymgmt/ml_dsa_kmgmt.c', + 'openssl/providers/implementations/keymgmt/ml_kem_kmgmt.c', + 'openssl/providers/implementations/keymgmt/mlx_kmgmt.c', 'openssl/providers/implementations/keymgmt/rsa_kmgmt.c', + 'openssl/providers/implementations/keymgmt/slh_dsa_kmgmt.c', 'openssl/providers/implementations/macs/cmac_prov.c', 'openssl/providers/implementations/macs/gmac_prov.c', 'openssl/providers/implementations/macs/hmac_prov.c', 'openssl/providers/implementations/macs/kmac_prov.c', - 'openssl/providers/implementations/rands/crngt.c', 'openssl/providers/implementations/rands/drbg.c', 'openssl/providers/implementations/rands/drbg_ctr.c', 'openssl/providers/implementations/rands/drbg_hash.c', 'openssl/providers/implementations/rands/drbg_hmac.c', + 'openssl/providers/implementations/rands/fips_crng_test.c', 'openssl/providers/implementations/rands/test_rng.c', 'openssl/providers/implementations/signature/dsa_sig.c', 'openssl/providers/implementations/signature/ecdsa_sig.c', 'openssl/providers/implementations/signature/eddsa_sig.c', 'openssl/providers/implementations/signature/mac_legacy_sig.c', + 'openssl/providers/implementations/signature/ml_dsa_sig.c', 'openssl/providers/implementations/signature/rsa_sig.c', - 'openssl/ssl/s3_cbc.c', + 'openssl/providers/implementations/signature/slh_dsa_sig.c', + 'openssl/providers/implementations/skeymgmt/aes_skmgmt.c', + 'openssl/providers/implementations/skeymgmt/generic.c', + 'openssl/ssl/record/methods/ssl3_cbc.c', 'openssl/providers/common/der/der_dsa_key.c', 'openssl/providers/common/der/der_dsa_sig.c', 'openssl/providers/common/der/der_ec_key.c', 'openssl/providers/common/der/der_ec_sig.c', 'openssl/providers/common/der/der_ecx_key.c', + 'openssl/providers/common/der/der_ml_dsa_key.c', 'openssl/providers/common/der/der_rsa_key.c', + 'openssl/providers/common/der/der_slh_dsa_key.c', 'openssl/providers/common/provider_ctx.c', 'openssl/providers/common/provider_err.c', 'openssl/providers/implementations/ciphers/ciphercommon.c', @@ -267,17 +312,23 @@ 'openssl/providers/implementations/ciphers/ciphercommon_gcm_hw.c', 'openssl/providers/implementations/ciphers/ciphercommon_hw.c', 'openssl/providers/implementations/digests/digestcommon.c', - 'openssl/ssl/record/tls_pad.c', + 'openssl/ssl/record/methods/tls_pad.c', 'openssl/providers/fips/fips_entry.c', ], 'openssl_sources_darwin64-arm64-cc': [ './config/archs/darwin64-arm64-cc/asm_avx2/crypto/aes/aesv8-armx.S', + './config/archs/darwin64-arm64-cc/asm_avx2/crypto/aes/bsaes-armv8.S', './config/archs/darwin64-arm64-cc/asm_avx2/crypto/aes/vpaes-armv8.S', './config/archs/darwin64-arm64-cc/asm_avx2/crypto/bn/armv8-mont.S', + './config/archs/darwin64-arm64-cc/asm_avx2/crypto/chacha/chacha-armv8-sve.S', './config/archs/darwin64-arm64-cc/asm_avx2/crypto/chacha/chacha-armv8.S', './config/archs/darwin64-arm64-cc/asm_avx2/crypto/ec/ecp_nistz256-armv8.S', + './config/archs/darwin64-arm64-cc/asm_avx2/crypto/ec/ecp_sm2p256-armv8.S', './config/archs/darwin64-arm64-cc/asm_avx2/crypto/arm64cpuid.S', + './config/archs/darwin64-arm64-cc/asm_avx2/crypto/params_idx.c', + './config/archs/darwin64-arm64-cc/asm_avx2/crypto/md5/md5-aarch64.S', + './config/archs/darwin64-arm64-cc/asm_avx2/crypto/modes/aes-gcm-armv8-unroll8_64.S', './config/archs/darwin64-arm64-cc/asm_avx2/crypto/modes/aes-gcm-armv8_64.S', './config/archs/darwin64-arm64-cc/asm_avx2/crypto/modes/ghashv8-armx.S', './config/archs/darwin64-arm64-cc/asm_avx2/crypto/poly1305/poly1305-armv8.S', @@ -285,12 +336,18 @@ './config/archs/darwin64-arm64-cc/asm_avx2/crypto/sha/sha1-armv8.S', './config/archs/darwin64-arm64-cc/asm_avx2/crypto/sha/sha256-armv8.S', './config/archs/darwin64-arm64-cc/asm_avx2/crypto/sha/sha512-armv8.S', + './config/archs/darwin64-arm64-cc/asm_avx2/crypto/sm3/sm3-armv8.S', + './config/archs/darwin64-arm64-cc/asm_avx2/crypto/sm4/sm4-armv8.S', + './config/archs/darwin64-arm64-cc/asm_avx2/crypto/sm4/vpsm4-armv8.S', + './config/archs/darwin64-arm64-cc/asm_avx2/crypto/sm4/vpsm4_ex-armv8.S', './config/archs/darwin64-arm64-cc/asm_avx2/providers/common/der/der_sm2_gen.c', './config/archs/darwin64-arm64-cc/asm_avx2/providers/common/der/der_digests_gen.c', './config/archs/darwin64-arm64-cc/asm_avx2/providers/common/der/der_dsa_gen.c', './config/archs/darwin64-arm64-cc/asm_avx2/providers/common/der/der_ec_gen.c', './config/archs/darwin64-arm64-cc/asm_avx2/providers/common/der/der_ecx_gen.c', + './config/archs/darwin64-arm64-cc/asm_avx2/providers/common/der/der_ml_dsa_gen.c', './config/archs/darwin64-arm64-cc/asm_avx2/providers/common/der/der_rsa_gen.c', + './config/archs/darwin64-arm64-cc/asm_avx2/providers/common/der/der_slh_dsa_gen.c', './config/archs/darwin64-arm64-cc/asm_avx2/providers/common/der/der_wrap_gen.c', ], @@ -298,7 +355,9 @@ 'NDEBUG', 'L_ENDIAN', 'OPENSSL_BUILDING_OPENSSL', + 'BSAES_ASM', 'ECP_NISTZ256_ASM', + 'ECP_SM2P256_ASM', 'FIPS_MODULE', 'KECCAK1600_ASM', 'OPENSSL_BN_ASM_MONT', @@ -306,7 +365,9 @@ 'SHA1_ASM', 'SHA256_ASM', 'SHA512_ASM', + 'SM4_ASM', 'VPAES_ASM', + 'VPSM4_ASM', 'FIPS_MODULE', ], 'openssl_cflags_darwin64-arm64-cc': [ diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/openssl.gypi b/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/openssl.gypi index edd82ba510c2dd..a55ec2d80cda87 100644 --- a/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/openssl.gypi +++ b/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/openssl.gypi @@ -7,14 +7,15 @@ 'openssl/ssl/d1_srtp.c', 'openssl/ssl/methods.c', 'openssl/ssl/pqueue.c', + 'openssl/ssl/priority_queue.c', 'openssl/ssl/s3_enc.c', 'openssl/ssl/s3_lib.c', 'openssl/ssl/s3_msg.c', 'openssl/ssl/ssl_asn1.c', 'openssl/ssl/ssl_cert.c', + 'openssl/ssl/ssl_cert_comp.c', 'openssl/ssl/ssl_ciph.c', 'openssl/ssl/ssl_conf.c', - 'openssl/ssl/ssl_err.c', 'openssl/ssl/ssl_err_legacy.c', 'openssl/ssl/ssl_init.c', 'openssl/ssl/ssl_lib.c', @@ -31,12 +32,60 @@ 'openssl/ssl/tls13_enc.c', 'openssl/ssl/tls_depr.c', 'openssl/ssl/tls_srp.c', - 'openssl/ssl/record/dtls1_bitmap.c', + 'openssl/ssl/quic/cc_newreno.c', + 'openssl/ssl/quic/json_enc.c', + 'openssl/ssl/quic/qlog.c', + 'openssl/ssl/quic/qlog_event_helpers.c', + 'openssl/ssl/quic/quic_ackm.c', + 'openssl/ssl/quic/quic_cfq.c', + 'openssl/ssl/quic/quic_channel.c', + 'openssl/ssl/quic/quic_demux.c', + 'openssl/ssl/quic/quic_engine.c', + 'openssl/ssl/quic/quic_fc.c', + 'openssl/ssl/quic/quic_fifd.c', + 'openssl/ssl/quic/quic_impl.c', + 'openssl/ssl/quic/quic_lcidm.c', + 'openssl/ssl/quic/quic_method.c', + 'openssl/ssl/quic/quic_obj.c', + 'openssl/ssl/quic/quic_port.c', + 'openssl/ssl/quic/quic_rcidm.c', + 'openssl/ssl/quic/quic_reactor.c', + 'openssl/ssl/quic/quic_reactor_wait_ctx.c', + 'openssl/ssl/quic/quic_record_rx.c', + 'openssl/ssl/quic/quic_record_shared.c', + 'openssl/ssl/quic/quic_record_tx.c', + 'openssl/ssl/quic/quic_record_util.c', + 'openssl/ssl/quic/quic_rstream.c', + 'openssl/ssl/quic/quic_rx_depack.c', + 'openssl/ssl/quic/quic_sf_list.c', + 'openssl/ssl/quic/quic_srt_gen.c', + 'openssl/ssl/quic/quic_srtm.c', + 'openssl/ssl/quic/quic_sstream.c', + 'openssl/ssl/quic/quic_statm.c', + 'openssl/ssl/quic/quic_stream_map.c', + 'openssl/ssl/quic/quic_thread_assist.c', + 'openssl/ssl/quic/quic_tls.c', + 'openssl/ssl/quic/quic_tls_api.c', + 'openssl/ssl/quic/quic_trace.c', + 'openssl/ssl/quic/quic_tserver.c', + 'openssl/ssl/quic/quic_txp.c', + 'openssl/ssl/quic/quic_txpim.c', + 'openssl/ssl/quic/quic_types.c', + 'openssl/ssl/quic/quic_wire.c', + 'openssl/ssl/quic/quic_wire_pkt.c', + 'openssl/ssl/quic/uint_set.c', 'openssl/ssl/record/rec_layer_d1.c', 'openssl/ssl/record/rec_layer_s3.c', - 'openssl/ssl/record/ssl3_buffer.c', - 'openssl/ssl/record/ssl3_record.c', - 'openssl/ssl/record/ssl3_record_tls13.c', + 'openssl/ssl/record/methods/dtls_meth.c', + 'openssl/ssl/record/methods/ssl3_meth.c', + 'openssl/ssl/record/methods/tls13_meth.c', + 'openssl/ssl/record/methods/tls1_meth.c', + 'openssl/ssl/record/methods/tls_common.c', + 'openssl/ssl/record/methods/tls_multib.c', + 'openssl/ssl/record/methods/tlsany_meth.c', + 'openssl/ssl/rio/poll_builder.c', + 'openssl/ssl/rio/poll_immediate.c', + 'openssl/ssl/rio/rio_notifier.c', 'openssl/ssl/statem/extensions.c', 'openssl/ssl/statem/extensions_clnt.c', 'openssl/ssl/statem/extensions_cust.c', @@ -150,6 +199,7 @@ 'openssl/crypto/bio/bss_conn.c', 'openssl/crypto/bio/bss_core.c', 'openssl/crypto/bio/bss_dgram.c', + 'openssl/crypto/bio/bss_dgram_pair.c', 'openssl/crypto/bio/bss_fd.c', 'openssl/crypto/bio/bss_file.c', 'openssl/crypto/bio/bss_log.c', @@ -209,6 +259,7 @@ 'openssl/crypto/cmp/cmp_client.c', 'openssl/crypto/cmp/cmp_ctx.c', 'openssl/crypto/cmp/cmp_err.c', + 'openssl/crypto/cmp/cmp_genm.c', 'openssl/crypto/cmp/cmp_hdr.c', 'openssl/crypto/cmp/cmp_http.c', 'openssl/crypto/cmp/cmp_msg.c', @@ -347,6 +398,8 @@ 'openssl/crypto/ec/ecp_nist.c', 'openssl/crypto/ec/ecp_nistz256.c', 'openssl/crypto/ec/ecp_oct.c', + 'openssl/crypto/ec/ecp_sm2p256.c', + 'openssl/crypto/ec/ecp_sm2p256_table.c', 'openssl/crypto/ec/ecp_smpl.c', 'openssl/crypto/ec/ecx_backend.c', 'openssl/crypto/ec/ecx_key.c', @@ -385,7 +438,9 @@ 'openssl/crypto/err/err_all.c', 'openssl/crypto/err/err_all_legacy.c', 'openssl/crypto/err/err_blocks.c', + 'openssl/crypto/err/err_mark.c', 'openssl/crypto/err/err_prn.c', + 'openssl/crypto/err/err_save.c', 'openssl/crypto/ess/ess_asn1.c', 'openssl/crypto/ess/ess_err.c', 'openssl/crypto/ess/ess_lib.c', @@ -468,7 +523,9 @@ 'openssl/crypto/evp/pmeth_check.c', 'openssl/crypto/evp/pmeth_gn.c', 'openssl/crypto/evp/pmeth_lib.c', + 'openssl/crypto/evp/s_lib.c', 'openssl/crypto/evp/signature.c', + 'openssl/crypto/evp/skeymgmt_meth.c', 'openssl/crypto/ffc/ffc_backend.c', 'openssl/crypto/ffc/ffc_dh.c', 'openssl/crypto/ffc/ffc_key_generate.c', @@ -476,7 +533,11 @@ 'openssl/crypto/ffc/ffc_params.c', 'openssl/crypto/ffc/ffc_params_generate.c', 'openssl/crypto/ffc/ffc_params_validate.c', + 'openssl/crypto/hashtable/hashfunc.c', + 'openssl/crypto/hashtable/hashtable.c', 'openssl/crypto/hmac/hmac.c', + 'openssl/crypto/hpke/hpke.c', + 'openssl/crypto/hpke/hpke_util.c', 'openssl/crypto/http/http_client.c', 'openssl/crypto/http/http_err.c', 'openssl/crypto/http/http_lib.c', @@ -491,6 +552,7 @@ 'openssl/crypto/armcap.c', 'openssl/crypto/asn1_dsa.c', 'openssl/crypto/bsearch.c', + 'openssl/crypto/comp_methods.c', 'openssl/crypto/context.c', 'openssl/crypto/core_algorithm.c', 'openssl/crypto/core_fetch.c', @@ -500,10 +562,13 @@ 'openssl/crypto/cryptlib.c', 'openssl/crypto/ctype.c', 'openssl/crypto/cversion.c', + 'openssl/crypto/defaults.c', 'openssl/crypto/der_writer.c', + 'openssl/crypto/deterministic_nonce.c', 'openssl/crypto/ebcdic.c', 'openssl/crypto/ex_data.c', 'openssl/crypto/getenv.c', + 'openssl/crypto/indicator_core.c', 'openssl/crypto/info.c', 'openssl/crypto/init.c', 'openssl/crypto/initthread.c', @@ -527,12 +592,16 @@ 'openssl/crypto/provider_core.c', 'openssl/crypto/provider_predefined.c', 'openssl/crypto/punycode.c', + 'openssl/crypto/quic_vlint.c', 'openssl/crypto/self_test_core.c', + 'openssl/crypto/sleep.c', 'openssl/crypto/sparse_array.c', + 'openssl/crypto/ssl_err.c', 'openssl/crypto/threads_lib.c', 'openssl/crypto/threads_none.c', 'openssl/crypto/threads_pthread.c', 'openssl/crypto/threads_win.c', + 'openssl/crypto/time.c', 'openssl/crypto/trace.c', 'openssl/crypto/uid.c', 'openssl/crypto/md4/md4_dgst.c', @@ -542,6 +611,15 @@ 'openssl/crypto/md5/md5_sha1.c', 'openssl/crypto/mdc2/mdc2_one.c', 'openssl/crypto/mdc2/mdc2dgst.c', + 'openssl/crypto/ml_dsa/ml_dsa_encoders.c', + 'openssl/crypto/ml_dsa/ml_dsa_key.c', + 'openssl/crypto/ml_dsa/ml_dsa_key_compress.c', + 'openssl/crypto/ml_dsa/ml_dsa_matrix.c', + 'openssl/crypto/ml_dsa/ml_dsa_ntt.c', + 'openssl/crypto/ml_dsa/ml_dsa_params.c', + 'openssl/crypto/ml_dsa/ml_dsa_sample.c', + 'openssl/crypto/ml_dsa/ml_dsa_sign.c', + 'openssl/crypto/ml_kem/ml_kem.c', 'openssl/crypto/modes/cbc128.c', 'openssl/crypto/modes/ccm128.c', 'openssl/crypto/modes/cfb128.c', @@ -553,6 +631,7 @@ 'openssl/crypto/modes/siv128.c', 'openssl/crypto/modes/wrap128.c', 'openssl/crypto/modes/xts128.c', + 'openssl/crypto/modes/xts128gb.c', 'openssl/crypto/objects/o_names.c', 'openssl/crypto/objects/obj_dat.c', 'openssl/crypto/objects/obj_err.c', @@ -616,6 +695,7 @@ 'openssl/crypto/rand/rand_lib.c', 'openssl/crypto/rand/rand_meth.c', 'openssl/crypto/rand/rand_pool.c', + 'openssl/crypto/rand/rand_uniform.c', 'openssl/crypto/rand/randfile.c', 'openssl/crypto/rc2/rc2_cbc.c', 'openssl/crypto/rc2/rc2_ecb.c', @@ -663,6 +743,16 @@ 'openssl/crypto/sha/sha3.c', 'openssl/crypto/sha/sha512.c', 'openssl/crypto/siphash/siphash.c', + 'openssl/crypto/slh_dsa/slh_adrs.c', + 'openssl/crypto/slh_dsa/slh_dsa.c', + 'openssl/crypto/slh_dsa/slh_dsa_hash_ctx.c', + 'openssl/crypto/slh_dsa/slh_dsa_key.c', + 'openssl/crypto/slh_dsa/slh_fors.c', + 'openssl/crypto/slh_dsa/slh_hash.c', + 'openssl/crypto/slh_dsa/slh_hypertree.c', + 'openssl/crypto/slh_dsa/slh_params.c', + 'openssl/crypto/slh_dsa/slh_wots.c', + 'openssl/crypto/slh_dsa/slh_xmss.c', 'openssl/crypto/sm2/sm2_crypt.c', 'openssl/crypto/sm2/sm2_err.c', 'openssl/crypto/sm2/sm2_key.c', @@ -680,6 +770,12 @@ 'openssl/crypto/store/store_register.c', 'openssl/crypto/store/store_result.c', 'openssl/crypto/store/store_strings.c', + 'openssl/crypto/thread/arch/thread_none.c', + 'openssl/crypto/thread/arch/thread_posix.c', + 'openssl/crypto/thread/arch/thread_win.c', + 'openssl/crypto/thread/api.c', + 'openssl/crypto/thread/arch.c', + 'openssl/crypto/thread/internal.c', 'openssl/crypto/ts/ts_asn1.c', 'openssl/crypto/ts/ts_conf.c', 'openssl/crypto/ts/ts_err.c', @@ -708,14 +804,22 @@ 'openssl/crypto/x509/pcy_map.c', 'openssl/crypto/x509/pcy_node.c', 'openssl/crypto/x509/pcy_tree.c', + 'openssl/crypto/x509/t_acert.c', 'openssl/crypto/x509/t_crl.c', 'openssl/crypto/x509/t_req.c', 'openssl/crypto/x509/t_x509.c', + 'openssl/crypto/x509/v3_aaa.c', + 'openssl/crypto/x509/v3_ac_tgt.c', 'openssl/crypto/x509/v3_addr.c', 'openssl/crypto/x509/v3_admis.c', 'openssl/crypto/x509/v3_akeya.c', 'openssl/crypto/x509/v3_akid.c', 'openssl/crypto/x509/v3_asid.c', + 'openssl/crypto/x509/v3_attrdesc.c', + 'openssl/crypto/x509/v3_attrmap.c', + 'openssl/crypto/x509/v3_audit_id.c', + 'openssl/crypto/x509/v3_authattid.c', + 'openssl/crypto/x509/v3_battcons.c', 'openssl/crypto/x509/v3_bcons.c', 'openssl/crypto/x509/v3_bitst.c', 'openssl/crypto/x509/v3_conf.c', @@ -724,12 +828,17 @@ 'openssl/crypto/x509/v3_enum.c', 'openssl/crypto/x509/v3_extku.c', 'openssl/crypto/x509/v3_genn.c', + 'openssl/crypto/x509/v3_group_ac.c', 'openssl/crypto/x509/v3_ia5.c', + 'openssl/crypto/x509/v3_ind_iss.c', 'openssl/crypto/x509/v3_info.c', 'openssl/crypto/x509/v3_int.c', + 'openssl/crypto/x509/v3_iobo.c', 'openssl/crypto/x509/v3_ist.c', 'openssl/crypto/x509/v3_lib.c', 'openssl/crypto/x509/v3_ncons.c', + 'openssl/crypto/x509/v3_no_ass.c', + 'openssl/crypto/x509/v3_no_rev_avail.c', 'openssl/crypto/x509/v3_pci.c', 'openssl/crypto/x509/v3_pcia.c', 'openssl/crypto/x509/v3_pcons.c', @@ -737,13 +846,20 @@ 'openssl/crypto/x509/v3_pmaps.c', 'openssl/crypto/x509/v3_prn.c', 'openssl/crypto/x509/v3_purp.c', + 'openssl/crypto/x509/v3_rolespec.c', 'openssl/crypto/x509/v3_san.c', + 'openssl/crypto/x509/v3_sda.c', + 'openssl/crypto/x509/v3_single_use.c', 'openssl/crypto/x509/v3_skid.c', + 'openssl/crypto/x509/v3_soa_id.c', 'openssl/crypto/x509/v3_sxnet.c', + 'openssl/crypto/x509/v3_timespec.c', 'openssl/crypto/x509/v3_tlsf.c', + 'openssl/crypto/x509/v3_usernotice.c', 'openssl/crypto/x509/v3_utf8.c', 'openssl/crypto/x509/v3_utl.c', 'openssl/crypto/x509/v3err.c', + 'openssl/crypto/x509/x509_acert.c', 'openssl/crypto/x509/x509_att.c', 'openssl/crypto/x509/x509_cmp.c', 'openssl/crypto/x509/x509_d2.c', @@ -761,6 +877,7 @@ 'openssl/crypto/x509/x509_v3.c', 'openssl/crypto/x509/x509_vfy.c', 'openssl/crypto/x509/x509_vpm.c', + 'openssl/crypto/x509/x509aset.c', 'openssl/crypto/x509/x509cset.c', 'openssl/crypto/x509/x509name.c', 'openssl/crypto/x509/x509rset.c', @@ -770,6 +887,7 @@ 'openssl/crypto/x509/x_attrib.c', 'openssl/crypto/x509/x_crl.c', 'openssl/crypto/x509/x_exten.c', + 'openssl/crypto/x509/x_ietfatt.c', 'openssl/crypto/x509/x_name.c', 'openssl/crypto/x509/x_pubkey.c', 'openssl/crypto/x509/x_req.c', @@ -801,6 +919,9 @@ 'openssl/providers/implementations/ciphers/cipher_aes_ccm_hw.c', 'openssl/providers/implementations/ciphers/cipher_aes_gcm.c', 'openssl/providers/implementations/ciphers/cipher_aes_gcm_hw.c', + 'openssl/providers/implementations/ciphers/cipher_aes_gcm_siv.c', + 'openssl/providers/implementations/ciphers/cipher_aes_gcm_siv_hw.c', + 'openssl/providers/implementations/ciphers/cipher_aes_gcm_siv_polyval.c', 'openssl/providers/implementations/ciphers/cipher_aes_hw.c', 'openssl/providers/implementations/ciphers/cipher_aes_ocb.c', 'openssl/providers/implementations/ciphers/cipher_aes_ocb_hw.c', @@ -825,7 +946,13 @@ 'openssl/providers/implementations/ciphers/cipher_cts.c', 'openssl/providers/implementations/ciphers/cipher_null.c', 'openssl/providers/implementations/ciphers/cipher_sm4.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_ccm.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_ccm_hw.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_gcm.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_gcm_hw.c', 'openssl/providers/implementations/ciphers/cipher_sm4_hw.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_xts.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_xts_hw.c', 'openssl/providers/implementations/ciphers/cipher_tdes.c', 'openssl/providers/implementations/ciphers/cipher_tdes_common.c', 'openssl/providers/implementations/ciphers/cipher_tdes_default.c', @@ -854,11 +981,16 @@ 'openssl/providers/implementations/encode_decode/encode_key2ms.c', 'openssl/providers/implementations/encode_decode/encode_key2text.c', 'openssl/providers/implementations/encode_decode/endecoder_common.c', + 'openssl/providers/implementations/encode_decode/ml_common_codecs.c', + 'openssl/providers/implementations/encode_decode/ml_dsa_codecs.c', + 'openssl/providers/implementations/encode_decode/ml_kem_codecs.c', 'openssl/providers/implementations/exchange/dh_exch.c', 'openssl/providers/implementations/exchange/ecdh_exch.c', 'openssl/providers/implementations/exchange/ecx_exch.c', 'openssl/providers/implementations/exchange/kdf_exch.c', + 'openssl/providers/implementations/kdfs/argon2.c', 'openssl/providers/implementations/kdfs/hkdf.c', + 'openssl/providers/implementations/kdfs/hmacdrbg_kdf.c', 'openssl/providers/implementations/kdfs/kbkdf.c', 'openssl/providers/implementations/kdfs/krb5kdf.c', 'openssl/providers/implementations/kdfs/pbkdf2.c', @@ -869,6 +1001,11 @@ 'openssl/providers/implementations/kdfs/sskdf.c', 'openssl/providers/implementations/kdfs/tls1_prf.c', 'openssl/providers/implementations/kdfs/x942kdf.c', + 'openssl/providers/implementations/kem/ec_kem.c', + 'openssl/providers/implementations/kem/ecx_kem.c', + 'openssl/providers/implementations/kem/kem_util.c', + 'openssl/providers/implementations/kem/ml_kem_kem.c', + 'openssl/providers/implementations/kem/mlx_kem.c', 'openssl/providers/implementations/kem/rsa_kem.c', 'openssl/providers/implementations/keymgmt/dh_kmgmt.c', 'openssl/providers/implementations/keymgmt/dsa_kmgmt.c', @@ -876,7 +1013,11 @@ 'openssl/providers/implementations/keymgmt/ecx_kmgmt.c', 'openssl/providers/implementations/keymgmt/kdf_legacy_kmgmt.c', 'openssl/providers/implementations/keymgmt/mac_legacy_kmgmt.c', + 'openssl/providers/implementations/keymgmt/ml_dsa_kmgmt.c', + 'openssl/providers/implementations/keymgmt/ml_kem_kmgmt.c', + 'openssl/providers/implementations/keymgmt/mlx_kmgmt.c', 'openssl/providers/implementations/keymgmt/rsa_kmgmt.c', + 'openssl/providers/implementations/keymgmt/slh_dsa_kmgmt.c', 'openssl/providers/implementations/macs/blake2b_mac.c', 'openssl/providers/implementations/macs/blake2s_mac.c', 'openssl/providers/implementations/macs/cmac_prov.c', @@ -885,12 +1026,12 @@ 'openssl/providers/implementations/macs/kmac_prov.c', 'openssl/providers/implementations/macs/poly1305_prov.c', 'openssl/providers/implementations/macs/siphash_prov.c', - 'openssl/providers/implementations/rands/crngt.c', 'openssl/providers/implementations/rands/drbg.c', 'openssl/providers/implementations/rands/drbg_ctr.c', 'openssl/providers/implementations/rands/drbg_hash.c', 'openssl/providers/implementations/rands/drbg_hmac.c', 'openssl/providers/implementations/rands/seed_src.c', + 'openssl/providers/implementations/rands/seed_src_jitter.c', 'openssl/providers/implementations/rands/test_rng.c', 'openssl/providers/implementations/rands/seeding/rand_cpu_x86.c', 'openssl/providers/implementations/rands/seeding/rand_tsc.c', @@ -900,17 +1041,23 @@ 'openssl/providers/implementations/signature/ecdsa_sig.c', 'openssl/providers/implementations/signature/eddsa_sig.c', 'openssl/providers/implementations/signature/mac_legacy_sig.c', + 'openssl/providers/implementations/signature/ml_dsa_sig.c', 'openssl/providers/implementations/signature/rsa_sig.c', + 'openssl/providers/implementations/signature/slh_dsa_sig.c', 'openssl/providers/implementations/signature/sm2_sig.c', + 'openssl/providers/implementations/skeymgmt/aes_skmgmt.c', + 'openssl/providers/implementations/skeymgmt/generic.c', 'openssl/providers/implementations/storemgmt/file_store.c', 'openssl/providers/implementations/storemgmt/file_store_any2obj.c', - 'openssl/ssl/s3_cbc.c', + 'openssl/ssl/record/methods/ssl3_cbc.c', 'openssl/providers/common/der/der_dsa_key.c', 'openssl/providers/common/der/der_dsa_sig.c', 'openssl/providers/common/der/der_ec_key.c', 'openssl/providers/common/der/der_ec_sig.c', 'openssl/providers/common/der/der_ecx_key.c', + 'openssl/providers/common/der/der_ml_dsa_key.c', 'openssl/providers/common/der/der_rsa_key.c', + 'openssl/providers/common/der/der_slh_dsa_key.c', 'openssl/providers/common/provider_ctx.c', 'openssl/providers/common/provider_err.c', 'openssl/providers/implementations/ciphers/ciphercommon.c', @@ -921,7 +1068,7 @@ 'openssl/providers/implementations/ciphers/ciphercommon_gcm_hw.c', 'openssl/providers/implementations/ciphers/ciphercommon_hw.c', 'openssl/providers/implementations/digests/digestcommon.c', - 'openssl/ssl/record/tls_pad.c', + 'openssl/ssl/record/methods/tls_pad.c', 'openssl/providers/implementations/ciphers/cipher_blowfish.c', 'openssl/providers/implementations/ciphers/cipher_blowfish_hw.c', 'openssl/providers/implementations/ciphers/cipher_cast5.c', @@ -946,16 +1093,23 @@ 'openssl/providers/implementations/digests/ripemd_prov.c', 'openssl/providers/implementations/digests/wp_prov.c', 'openssl/providers/implementations/kdfs/pbkdf1.c', + 'openssl/providers/implementations/kdfs/pvkkdf.c', 'openssl/providers/prov_running.c', 'openssl/providers/legacyprov.c', ], 'openssl_sources_darwin64-arm64-cc': [ './config/archs/darwin64-arm64-cc/asm_avx2/crypto/aes/aesv8-armx.S', + './config/archs/darwin64-arm64-cc/asm_avx2/crypto/aes/bsaes-armv8.S', './config/archs/darwin64-arm64-cc/asm_avx2/crypto/aes/vpaes-armv8.S', './config/archs/darwin64-arm64-cc/asm_avx2/crypto/bn/armv8-mont.S', + './config/archs/darwin64-arm64-cc/asm_avx2/crypto/chacha/chacha-armv8-sve.S', './config/archs/darwin64-arm64-cc/asm_avx2/crypto/chacha/chacha-armv8.S', './config/archs/darwin64-arm64-cc/asm_avx2/crypto/ec/ecp_nistz256-armv8.S', + './config/archs/darwin64-arm64-cc/asm_avx2/crypto/ec/ecp_sm2p256-armv8.S', './config/archs/darwin64-arm64-cc/asm_avx2/crypto/arm64cpuid.S', + './config/archs/darwin64-arm64-cc/asm_avx2/crypto/params_idx.c', + './config/archs/darwin64-arm64-cc/asm_avx2/crypto/md5/md5-aarch64.S', + './config/archs/darwin64-arm64-cc/asm_avx2/crypto/modes/aes-gcm-armv8-unroll8_64.S', './config/archs/darwin64-arm64-cc/asm_avx2/crypto/modes/aes-gcm-armv8_64.S', './config/archs/darwin64-arm64-cc/asm_avx2/crypto/modes/ghashv8-armx.S', './config/archs/darwin64-arm64-cc/asm_avx2/crypto/poly1305/poly1305-armv8.S', @@ -963,27 +1117,39 @@ './config/archs/darwin64-arm64-cc/asm_avx2/crypto/sha/sha1-armv8.S', './config/archs/darwin64-arm64-cc/asm_avx2/crypto/sha/sha256-armv8.S', './config/archs/darwin64-arm64-cc/asm_avx2/crypto/sha/sha512-armv8.S', + './config/archs/darwin64-arm64-cc/asm_avx2/crypto/sm3/sm3-armv8.S', + './config/archs/darwin64-arm64-cc/asm_avx2/crypto/sm4/sm4-armv8.S', + './config/archs/darwin64-arm64-cc/asm_avx2/crypto/sm4/vpsm4-armv8.S', + './config/archs/darwin64-arm64-cc/asm_avx2/crypto/sm4/vpsm4_ex-armv8.S', './config/archs/darwin64-arm64-cc/asm_avx2/providers/common/der/der_sm2_gen.c', './config/archs/darwin64-arm64-cc/asm_avx2/providers/common/der/der_digests_gen.c', './config/archs/darwin64-arm64-cc/asm_avx2/providers/common/der/der_dsa_gen.c', './config/archs/darwin64-arm64-cc/asm_avx2/providers/common/der/der_ec_gen.c', './config/archs/darwin64-arm64-cc/asm_avx2/providers/common/der/der_ecx_gen.c', + './config/archs/darwin64-arm64-cc/asm_avx2/providers/common/der/der_ml_dsa_gen.c', './config/archs/darwin64-arm64-cc/asm_avx2/providers/common/der/der_rsa_gen.c', + './config/archs/darwin64-arm64-cc/asm_avx2/providers/common/der/der_slh_dsa_gen.c', './config/archs/darwin64-arm64-cc/asm_avx2/providers/common/der/der_wrap_gen.c', ], 'openssl_defines_darwin64-arm64-cc': [ 'NDEBUG', 'L_ENDIAN', 'OPENSSL_BUILDING_OPENSSL', + 'BSAES_ASM', 'ECP_NISTZ256_ASM', + 'ECP_SM2P256_ASM', 'KECCAK1600_ASM', + 'MD5_ASM', 'OPENSSL_BN_ASM_MONT', 'OPENSSL_CPUID_OBJ', + 'OPENSSL_SM3_ASM', 'POLY1305_ASM', 'SHA1_ASM', 'SHA256_ASM', 'SHA512_ASM', + 'SM4_ASM', 'VPAES_ASM', + 'VPSM4_ASM', 'OPENSSL_PIC', ], 'openssl_cflags_darwin64-arm64-cc': [ diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/providers/common/der/der_ml_dsa_gen.c b/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/providers/common/der/der_ml_dsa_gen.c new file mode 100644 index 00000000000000..4a8a113a268578 --- /dev/null +++ b/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/providers/common/der/der_ml_dsa_gen.c @@ -0,0 +1,37 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from providers/common/der/der_ml_dsa_gen.c.in + * + * Copyright 2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include "prov/der_ml_dsa.h" + +/* Well known OIDs precompiled */ + +/* + * id-ml-dsa-44 OBJECT IDENTIFIER ::= { sigAlgs 17 } + */ +const unsigned char ossl_der_oid_id_ml_dsa_44[DER_OID_SZ_id_ml_dsa_44] = { + DER_OID_V_id_ml_dsa_44 +}; + +/* + * id-ml-dsa-65 OBJECT IDENTIFIER ::= { sigAlgs 18 } + */ +const unsigned char ossl_der_oid_id_ml_dsa_65[DER_OID_SZ_id_ml_dsa_65] = { + DER_OID_V_id_ml_dsa_65 +}; + +/* + * id-ml-dsa-87 OBJECT IDENTIFIER ::= { sigAlgs 19 } + */ +const unsigned char ossl_der_oid_id_ml_dsa_87[DER_OID_SZ_id_ml_dsa_87] = { + DER_OID_V_id_ml_dsa_87 +}; + diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/providers/common/der/der_slh_dsa_gen.c b/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/providers/common/der/der_slh_dsa_gen.c new file mode 100644 index 00000000000000..1419a9515097dd --- /dev/null +++ b/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/providers/common/der/der_slh_dsa_gen.c @@ -0,0 +1,100 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from providers/common/der/der_slh_dsa_gen.c.in + * + * Copyright 2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include "prov/der_slh_dsa.h" + +/* Well known OIDs precompiled */ + +/* + * id-slh-dsa-sha2-128s OBJECT IDENTIFIER ::= { sigAlgs 20 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_128s[DER_OID_SZ_id_slh_dsa_sha2_128s] = { + DER_OID_V_id_slh_dsa_sha2_128s +}; + +/* + * id-slh-dsa-sha2-128f OBJECT IDENTIFIER ::= { sigAlgs 21 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_128f[DER_OID_SZ_id_slh_dsa_sha2_128f] = { + DER_OID_V_id_slh_dsa_sha2_128f +}; + +/* + * id-slh-dsa-sha2-192s OBJECT IDENTIFIER ::= { sigAlgs 22 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_192s[DER_OID_SZ_id_slh_dsa_sha2_192s] = { + DER_OID_V_id_slh_dsa_sha2_192s +}; + +/* + * id-slh-dsa-sha2-192f OBJECT IDENTIFIER ::= { sigAlgs 23 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_192f[DER_OID_SZ_id_slh_dsa_sha2_192f] = { + DER_OID_V_id_slh_dsa_sha2_192f +}; + +/* + * id-slh-dsa-sha2-256s OBJECT IDENTIFIER ::= { sigAlgs 24 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_256s[DER_OID_SZ_id_slh_dsa_sha2_256s] = { + DER_OID_V_id_slh_dsa_sha2_256s +}; + +/* + * id-slh-dsa-sha2-256f OBJECT IDENTIFIER ::= { sigAlgs 25 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_256f[DER_OID_SZ_id_slh_dsa_sha2_256f] = { + DER_OID_V_id_slh_dsa_sha2_256f +}; + +/* + * id-slh-dsa-shake-128s OBJECT IDENTIFIER ::= { sigAlgs 26 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_128s[DER_OID_SZ_id_slh_dsa_shake_128s] = { + DER_OID_V_id_slh_dsa_shake_128s +}; + +/* + * id-slh-dsa-shake-128f OBJECT IDENTIFIER ::= { sigAlgs 27 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_128f[DER_OID_SZ_id_slh_dsa_shake_128f] = { + DER_OID_V_id_slh_dsa_shake_128f +}; + +/* + * id-slh-dsa-shake-192s OBJECT IDENTIFIER ::= { sigAlgs 28 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_192s[DER_OID_SZ_id_slh_dsa_shake_192s] = { + DER_OID_V_id_slh_dsa_shake_192s +}; + +/* + * id-slh-dsa-shake-192f OBJECT IDENTIFIER ::= { sigAlgs 29 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_192f[DER_OID_SZ_id_slh_dsa_shake_192f] = { + DER_OID_V_id_slh_dsa_shake_192f +}; + +/* + * id-slh-dsa-shake-256s OBJECT IDENTIFIER ::= { sigAlgs 30 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_256s[DER_OID_SZ_id_slh_dsa_shake_256s] = { + DER_OID_V_id_slh_dsa_shake_256s +}; + +/* + * id-slh-dsa-shake-256f OBJECT IDENTIFIER ::= { sigAlgs 31 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_256f[DER_OID_SZ_id_slh_dsa_shake_256f] = { + DER_OID_V_id_slh_dsa_shake_256f +}; + diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/providers/common/include/prov/der_ml_dsa.h b/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/providers/common/include/prov/der_ml_dsa.h new file mode 100644 index 00000000000000..c55f780ab4527c --- /dev/null +++ b/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/providers/common/include/prov/der_ml_dsa.h @@ -0,0 +1,40 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from providers/common/include/prov/der_ml_dsa.h.in + * + * Copyright 2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include "internal/der.h" +#include "crypto/ml_dsa.h" + +/* Well known OIDs precompiled */ + +/* + * id-ml-dsa-44 OBJECT IDENTIFIER ::= { sigAlgs 17 } + */ +#define DER_OID_V_id_ml_dsa_44 DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x11 +#define DER_OID_SZ_id_ml_dsa_44 11 +extern const unsigned char ossl_der_oid_id_ml_dsa_44[DER_OID_SZ_id_ml_dsa_44]; + +/* + * id-ml-dsa-65 OBJECT IDENTIFIER ::= { sigAlgs 18 } + */ +#define DER_OID_V_id_ml_dsa_65 DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x12 +#define DER_OID_SZ_id_ml_dsa_65 11 +extern const unsigned char ossl_der_oid_id_ml_dsa_65[DER_OID_SZ_id_ml_dsa_65]; + +/* + * id-ml-dsa-87 OBJECT IDENTIFIER ::= { sigAlgs 19 } + */ +#define DER_OID_V_id_ml_dsa_87 DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x13 +#define DER_OID_SZ_id_ml_dsa_87 11 +extern const unsigned char ossl_der_oid_id_ml_dsa_87[DER_OID_SZ_id_ml_dsa_87]; + + +int ossl_DER_w_algorithmIdentifier_ML_DSA(WPACKET *pkt, int tag, ML_DSA_KEY *key); diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/providers/common/include/prov/der_slh_dsa.h b/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/providers/common/include/prov/der_slh_dsa.h new file mode 100644 index 00000000000000..760f8e7699be72 --- /dev/null +++ b/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/providers/common/include/prov/der_slh_dsa.h @@ -0,0 +1,103 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from providers/common/include/prov/der_slh_dsa.h.in + * + * Copyright 2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include "internal/der.h" +#include "crypto/slh_dsa.h" + +/* Well known OIDs precompiled */ + +/* + * id-slh-dsa-sha2-128s OBJECT IDENTIFIER ::= { sigAlgs 20 } + */ +#define DER_OID_V_id_slh_dsa_sha2_128s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x14 +#define DER_OID_SZ_id_slh_dsa_sha2_128s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_128s[DER_OID_SZ_id_slh_dsa_sha2_128s]; + +/* + * id-slh-dsa-sha2-128f OBJECT IDENTIFIER ::= { sigAlgs 21 } + */ +#define DER_OID_V_id_slh_dsa_sha2_128f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x15 +#define DER_OID_SZ_id_slh_dsa_sha2_128f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_128f[DER_OID_SZ_id_slh_dsa_sha2_128f]; + +/* + * id-slh-dsa-sha2-192s OBJECT IDENTIFIER ::= { sigAlgs 22 } + */ +#define DER_OID_V_id_slh_dsa_sha2_192s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x16 +#define DER_OID_SZ_id_slh_dsa_sha2_192s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_192s[DER_OID_SZ_id_slh_dsa_sha2_192s]; + +/* + * id-slh-dsa-sha2-192f OBJECT IDENTIFIER ::= { sigAlgs 23 } + */ +#define DER_OID_V_id_slh_dsa_sha2_192f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x17 +#define DER_OID_SZ_id_slh_dsa_sha2_192f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_192f[DER_OID_SZ_id_slh_dsa_sha2_192f]; + +/* + * id-slh-dsa-sha2-256s OBJECT IDENTIFIER ::= { sigAlgs 24 } + */ +#define DER_OID_V_id_slh_dsa_sha2_256s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x18 +#define DER_OID_SZ_id_slh_dsa_sha2_256s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_256s[DER_OID_SZ_id_slh_dsa_sha2_256s]; + +/* + * id-slh-dsa-sha2-256f OBJECT IDENTIFIER ::= { sigAlgs 25 } + */ +#define DER_OID_V_id_slh_dsa_sha2_256f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x19 +#define DER_OID_SZ_id_slh_dsa_sha2_256f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_256f[DER_OID_SZ_id_slh_dsa_sha2_256f]; + +/* + * id-slh-dsa-shake-128s OBJECT IDENTIFIER ::= { sigAlgs 26 } + */ +#define DER_OID_V_id_slh_dsa_shake_128s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1A +#define DER_OID_SZ_id_slh_dsa_shake_128s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_128s[DER_OID_SZ_id_slh_dsa_shake_128s]; + +/* + * id-slh-dsa-shake-128f OBJECT IDENTIFIER ::= { sigAlgs 27 } + */ +#define DER_OID_V_id_slh_dsa_shake_128f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1B +#define DER_OID_SZ_id_slh_dsa_shake_128f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_128f[DER_OID_SZ_id_slh_dsa_shake_128f]; + +/* + * id-slh-dsa-shake-192s OBJECT IDENTIFIER ::= { sigAlgs 28 } + */ +#define DER_OID_V_id_slh_dsa_shake_192s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1C +#define DER_OID_SZ_id_slh_dsa_shake_192s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_192s[DER_OID_SZ_id_slh_dsa_shake_192s]; + +/* + * id-slh-dsa-shake-192f OBJECT IDENTIFIER ::= { sigAlgs 29 } + */ +#define DER_OID_V_id_slh_dsa_shake_192f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1D +#define DER_OID_SZ_id_slh_dsa_shake_192f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_192f[DER_OID_SZ_id_slh_dsa_shake_192f]; + +/* + * id-slh-dsa-shake-256s OBJECT IDENTIFIER ::= { sigAlgs 30 } + */ +#define DER_OID_V_id_slh_dsa_shake_256s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1E +#define DER_OID_SZ_id_slh_dsa_shake_256s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_256s[DER_OID_SZ_id_slh_dsa_shake_256s]; + +/* + * id-slh-dsa-shake-256f OBJECT IDENTIFIER ::= { sigAlgs 31 } + */ +#define DER_OID_V_id_slh_dsa_shake_256f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1F +#define DER_OID_SZ_id_slh_dsa_shake_256f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_256f[DER_OID_SZ_id_slh_dsa_shake_256f]; + + +int ossl_DER_w_algorithmIdentifier_SLH_DSA(WPACKET *pkt, int tag, SLH_DSA_KEY *key); diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/no-asm/apps/progs.c b/deps/openssl/config/archs/darwin64-arm64-cc/no-asm/apps/progs.c index 43cef00799b86e..acc204a3e6e781 100644 --- a/deps/openssl/config/archs/darwin64-arm64-cc/no-asm/apps/progs.c +++ b/deps/openssl/config/archs/darwin64-arm64-cc/no-asm/apps/progs.c @@ -89,6 +89,7 @@ FUNCTION functions[] = { {FT_general, "s_time", s_time_main, s_time_options, NULL, NULL}, #endif {FT_general, "sess_id", sess_id_main, sess_id_options, NULL, NULL}, + {FT_general, "skeyutl", skeyutl_main, skeyutl_options, NULL, NULL}, {FT_general, "smime", smime_main, smime_options, NULL, NULL}, {FT_general, "speed", speed_main, speed_options, NULL, NULL}, {FT_general, "spkac", spkac_main, spkac_options, NULL, NULL}, @@ -225,9 +226,15 @@ FUNCTION functions[] = { {FT_cipher, "camellia-256-ecb", enc_main, enc_options, NULL}, #endif {FT_cipher, "base64", enc_main, enc_options, NULL}, -#ifdef ZLIB +#ifndef OPENSSL_NO_ZLIB {FT_cipher, "zlib", enc_main, enc_options, NULL}, #endif +#ifndef OPENSSL_NO_BROTLI + {FT_cipher, "brotli", enc_main, enc_options, NULL}, +#endif +#ifndef OPENSSL_NO_ZSTD + {FT_cipher, "zstd", enc_main, enc_options, NULL}, +#endif #ifndef OPENSSL_NO_DES {FT_cipher, "des", enc_main, enc_options, NULL}, #endif diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/no-asm/configdata.pm b/deps/openssl/config/archs/darwin64-arm64-cc/no-asm/configdata.pm index a1637a4150cbdb..26dc1942be3749 100644 --- a/deps/openssl/config/archs/darwin64-arm64-cc/no-asm/configdata.pm +++ b/deps/openssl/config/archs/darwin64-arm64-cc/no-asm/configdata.pm @@ -18,6 +18,7 @@ our %config = ( "ARFLAGS" => [ "qc" ], + "ASFLAGS" => [], "CC" => "cc", "CFLAGS" => [ "-O3 -Wall" @@ -27,14 +28,16 @@ our %config = ( "CPPINCLUDES" => [], "CXXFLAGS" => [], "FIPSKEY" => "f4556650ac31d35461610bac4ed81b1a181b2d8a43ea2854cbae22ca74560813", + "FIPS_VENDOR" => "OpenSSL FIPS Provider", "HASHBANGPERL" => "/usr/bin/env perl", "LDFLAGS" => [], "LDLIBS" => [], + "OBJCOPY" => "objcopy", "PERL" => "/usr/bin/perl", "RANLIB" => "ranlib -c", "RC" => "windres", "RCFLAGS" => [], - "api" => "30000", + "api" => "30500", "b32" => "0", "b64" => "0", "b64l" => "1", @@ -56,11 +59,13 @@ our %config = ( "doc/build.info", "test/build.info", "engines/build.info", + "exporters/build.info", "crypto/objects/build.info", "crypto/buffer/build.info", "crypto/bio/build.info", "crypto/stack/build.info", "crypto/lhash/build.info", + "crypto/hashtable/build.info", "crypto/rand/build.info", "crypto/evp/build.info", "crypto/asn1/build.info", @@ -78,6 +83,7 @@ our %config = ( "crypto/md5/build.info", "crypto/sha/build.info", "crypto/mdc2/build.info", + "crypto/ml_kem/build.info", "crypto/hmac/build.info", "crypto/ripemd/build.info", "crypto/whrlpool/build.info", @@ -119,11 +125,19 @@ our %config = ( "crypto/cmp/build.info", "crypto/encode_decode/build.info", "crypto/ffc/build.info", + "crypto/hpke/build.info", + "crypto/thread/build.info", + "crypto/ml_dsa/build.info", + "crypto/slh_dsa/build.info", + "ssl/record/build.info", + "ssl/rio/build.info", + "ssl/quic/build.info", "apps/lib/build.info", "providers/common/build.info", "providers/implementations/build.info", "providers/fips/build.info", "doc/man1/build.info", + "ssl/record/methods/build.info", "providers/common/der/build.info", "providers/implementations/digests/build.info", "providers/implementations/ciphers/build.info", @@ -137,6 +151,7 @@ our %config = ( "providers/implementations/encode_decode/build.info", "providers/implementations/storemgmt/build.info", "providers/implementations/kem/build.info", + "providers/implementations/skeymgmt/build.info", "providers/implementations/rands/seeding/build.info" ], "build_metadata" => "", @@ -154,7 +169,7 @@ our %config = ( ], "dynamic_engines" => "0", "ex_libs" => [], - "full_version" => "3.0.17", + "full_version" => "3.5.1", "includes" => [], "lflags" => [], "lib_defines" => [ @@ -163,9 +178,9 @@ our %config = ( "libdir" => "", "major" => "3", "makedep_scheme" => "gcc", - "minor" => "0", + "minor" => "5", "openssl_api_defines" => [ - "OPENSSL_CONFIGURED_API=30000" + "OPENSSL_CONFIGURED_API=30500" ], "openssl_feature_defines" => [ "OPENSSL_RAND_SEED_OS", @@ -173,28 +188,43 @@ our %config = ( "OPENSSL_NO_AFALGENG", "OPENSSL_NO_ASAN", "OPENSSL_NO_ASM", + "OPENSSL_NO_BROTLI", + "OPENSSL_NO_BROTLI_DYNAMIC", "OPENSSL_NO_COMP", "OPENSSL_NO_CRYPTO_MDEBUG", "OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE", + "OPENSSL_NO_DEMOS", "OPENSSL_NO_DEVCRYPTOENG", "OPENSSL_NO_EC_NISTP_64_GCC_128", "OPENSSL_NO_EGD", "OPENSSL_NO_EXTERNAL_TESTS", + "OPENSSL_NO_FIPS_JITTER", "OPENSSL_NO_FUZZ_AFL", "OPENSSL_NO_FUZZ_LIBFUZZER", + "OPENSSL_NO_H3DEMO", + "OPENSSL_NO_HQINTEROP", + "OPENSSL_NO_JITTER", "OPENSSL_NO_KTLS", "OPENSSL_NO_LOADERENG", "OPENSSL_NO_MD2", "OPENSSL_NO_MSAN", + "OPENSSL_NO_PIE", "OPENSSL_NO_RC5", "OPENSSL_NO_SCTP", "OPENSSL_NO_SSL3", "OPENSSL_NO_SSL3_METHOD", + "OPENSSL_NO_SSLKEYLOG", + "OPENSSL_NO_TFO", "OPENSSL_NO_TRACE", "OPENSSL_NO_UBSAN", "OPENSSL_NO_UNIT_TEST", "OPENSSL_NO_UPLINK", "OPENSSL_NO_WEAK_SSL_CIPHERS", + "OPENSSL_NO_WINSTORE", + "OPENSSL_NO_ZLIB", + "OPENSSL_NO_ZLIB_DYNAMIC", + "OPENSSL_NO_ZSTD", + "OPENSSL_NO_ZSTD_DYNAMIC", "OPENSSL_NO_DYNAMIC_ENGINE" ], "openssl_other_defines" => [ @@ -204,11 +234,11 @@ our %config = ( "OPENSSL_SYS_MACOSX" ], "openssldir" => "", - "options" => "enable-ssl-trace enable-fips no-afalgeng no-asan no-asm no-buildtest-c++ no-comp no-crypto-mdebug no-crypto-mdebug-backtrace no-devcryptoeng no-dynamic-engine no-ec_nistp_64_gcc_128 no-egd no-external-tests no-fuzz-afl no-fuzz-libfuzzer no-ktls no-loadereng no-md2 no-msan no-rc5 no-sctp no-shared no-ssl3 no-ssl3-method no-trace no-ubsan no-unit-test no-uplink no-weak-ssl-ciphers no-zlib no-zlib-dynamic", - "patch" => "17", + "options" => "enable-ssl-trace enable-fips no-afalgeng no-asan no-asm no-brotli no-brotli-dynamic no-buildtest-c++ no-comp no-crypto-mdebug no-crypto-mdebug-backtrace no-demos no-devcryptoeng no-dynamic-engine no-ec_nistp_64_gcc_128 no-egd no-external-tests no-fips-jitter no-fuzz-afl no-fuzz-libfuzzer no-h3demo no-hqinterop no-jitter no-ktls no-loadereng no-md2 no-msan no-pie no-rc5 no-sctp no-shared no-ssl3 no-ssl3-method no-sslkeylog no-tfo no-trace no-ubsan no-unit-test no-uplink no-weak-ssl-ciphers no-winstore no-zlib no-zlib-dynamic no-zstd no-zstd-dynamic", + "patch" => "1", "perl_archname" => "x86_64-linux-gnu-thread-multi", "perl_cmd" => "/usr/bin/perl", - "perl_version" => "5.38.2", + "perl_version" => "5.34.0", "perlargv" => [ "no-comp", "no-shared", @@ -239,6 +269,7 @@ our %config = ( "LDLIBS" => undef, "MT" => undef, "MTFLAGS" => undef, + "OBJCOPY" => undef, "OPENSSL_LOCAL_CONFIG_DIR" => undef, "PERL" => undef, "RANLIB" => undef, @@ -262,7 +293,7 @@ our %config = ( "shlib_version" => "3", "sourcedir" => ".", "target" => "darwin64-arm64-cc", - "version" => "3.0.17" + "version" => "3.5.1" ); our %target = ( "AR" => "ar", @@ -270,6 +301,7 @@ our %target = ( "CC" => "cc", "CFLAGS" => "-O3 -Wall", "HASHBANGPERL" => "/usr/bin/env perl", + "OBJCOPY" => "objcopy", "RANLIB" => "ranlib -c", "RC" => "windres", "_conf_fname_int" => [ @@ -281,6 +313,8 @@ our %target = ( "Configurations/shared-info.pl" ], "asm_arch" => "aarch64", + "bin_cflags" => "", + "bin_lflags" => "", "bn_ops" => "SIXTY_FOUR_BIT_LONG", "build_file" => "Makefile", "build_scheme" => [ @@ -295,6 +329,7 @@ our %target = ( "disable" => [], "dso_scheme" => "dlfcn", "enable" => [], + "ex_libs" => "", "includes" => [], "lflags" => "-Wl,-search_paths_first", "lib_cflags" => "", @@ -321,6 +356,8 @@ our %target = ( our @disablables = ( "acvp-tests", "afalgeng", + "apps", + "argon2", "aria", "asan", "asm", @@ -331,11 +368,14 @@ our @disablables = ( "autoload-config", "bf", "blake2", + "brotli", + "brotli-dynamic", "buildtest-c++", "bulk", "cached-fetch", "camellia", "capieng", + "winstore", "cast", "chacha", "cmac", @@ -344,11 +384,16 @@ our @disablables = ( "comp", "crypto-mdebug", "ct", + "default-thread-pool", + "demos", + "h3demo", + "hqinterop", "deprecated", "des", "devcryptoeng", "dgram", "dh", + "docs", "dsa", "dso", "dtls", @@ -358,6 +403,7 @@ our @disablables = ( "ec_nistp_64_gcc_128", "ecdh", "ecdsa", + "ecx", "egd", "engine", "err", @@ -365,10 +411,15 @@ our @disablables = ( "filenames", "fips", "fips-securitychecks", + "fips-post", + "fips-jitter", "fuzz-afl", "fuzz-libfuzzer", "gost", + "http", "idea", + "integrity-only-ciphers", + "jitter", "ktls", "legacy", "loadereng", @@ -376,6 +427,8 @@ our @disablables = ( "md2", "md4", "mdc2", + "ml-dsa", + "ml-kem", "module", "msan", "multiblock", @@ -384,10 +437,13 @@ our @disablables = ( "ocsp", "padlockeng", "pic", + "pie", "pinshared", "poly1305", "posix-io", "psk", + "quic", + "unstable-qlog", "rc2", "rc4", "rc5", @@ -401,7 +457,9 @@ our @disablables = ( "shared", "siphash", "siv", + "slh-dsa", "sm2", + "sm2-precomp", "sm3", "sm4", "sock", @@ -412,9 +470,13 @@ our @disablables = ( "ssl-trace", "static-engine", "stdio", + "sslkeylog", "tests", + "tfo", + "thread-pool", "threads", "tls", + "tls-deprecated-ec", "trace", "ts", "ubsan", @@ -425,6 +487,8 @@ our @disablables = ( "whirlpool", "zlib", "zlib-dynamic", + "zstd", + "zstd-dynamic", "ssl3", "ssl3-method", "tls1", @@ -446,33 +510,46 @@ our %disabled = ( "afalgeng" => "option", "asan" => "default", "asm" => "option", + "brotli" => "default", + "brotli-dynamic" => "default", "buildtest-c++" => "default", "comp" => "option", "crypto-mdebug" => "default", "crypto-mdebug-backtrace" => "default", + "demos" => "default", "devcryptoeng" => "default", "dynamic-engine" => "cascade", "ec_nistp_64_gcc_128" => "default", "egd" => "default", "external-tests" => "default", + "fips-jitter" => "default", "fuzz-afl" => "default", "fuzz-libfuzzer" => "default", + "h3demo" => "default", + "hqinterop" => "default", + "jitter" => "default", "ktls" => "default", "loadereng" => "cascade", "md2" => "default", "msan" => "default", + "pie" => "default", "rc5" => "default", "sctp" => "default", "shared" => "option", "ssl3" => "default", "ssl3-method" => "default", + "sslkeylog" => "default", + "tfo" => "default", "trace" => "default", "ubsan" => "default", "unit-test" => "default", "uplink" => "no uplink_arch", "weak-ssl-ciphers" => "default", + "winstore" => "not-windows", "zlib" => "default", - "zlib-dynamic" => "default" + "zlib-dynamic" => "default", + "zstd" => "default", + "zstd-dynamic" => "default" ); our %withargs = (); our %unified_info = ( @@ -698,6 +775,11 @@ our %unified_info = ( "pod" => "1" } }, + "doc/man1/openssl-skeyutl.pod" => { + "doc/man1/openssl-skeyutl.pod.in" => { + "pod" => "1" + } + }, "doc/man1/openssl-smime.pod" => { "doc/man1/openssl-smime.pod.in" => { "pod" => "1" @@ -755,6 +837,21 @@ our %unified_info = ( } }, "generate" => { + "exporters/OpenSSLConfig.cmake" => { + "exporter" => "cmake" + }, + "exporters/OpenSSLConfigVersion.cmake" => { + "exporter" => "cmake" + }, + "exporters/libcrypto.pc" => { + "exporter" => "pkg-config" + }, + "exporters/libssl.pc" => { + "exporter" => "pkg-config" + }, + "exporters/openssl.pc" => { + "exporter" => "pkg-config" + }, "include/openssl/configuration.h" => { "skip" => "1" } @@ -775,6 +872,9 @@ our %unified_info = ( "providers/liblegacy.a" => { "noinst" => "1" }, + "providers/libtemplate.a" => { + "noinst" => "1" + }, "test/libtestutil.a" => { "has_main" => "1", "noinst" => "1" @@ -792,6 +892,9 @@ our %unified_info = ( } }, "programs" => { + "fuzz/acert-test" => { + "noinst" => "1" + }, "fuzz/asn1-test" => { "noinst" => "1" }, @@ -822,9 +925,60 @@ our %unified_info = ( "fuzz/ct-test" => { "noinst" => "1" }, + "fuzz/decoder-test" => { + "noinst" => "1" + }, + "fuzz/dtlsclient-test" => { + "noinst" => "1" + }, + "fuzz/dtlsserver-test" => { + "noinst" => "1" + }, + "fuzz/hashtable-test" => { + "noinst" => "1" + }, + "fuzz/ml-dsa-test" => { + "noinst" => "1" + }, + "fuzz/ml-kem-test" => { + "noinst" => "1" + }, + "fuzz/pem-test" => { + "noinst" => "1" + }, + "fuzz/provider-test" => { + "noinst" => "1" + }, + "fuzz/punycode-test" => { + "noinst" => "1" + }, + "fuzz/quic-client-test" => { + "noinst" => "1" + }, + "fuzz/quic-lcidm-test" => { + "noinst" => "1" + }, + "fuzz/quic-rcidm-test" => { + "noinst" => "1" + }, + "fuzz/quic-server-test" => { + "noinst" => "1" + }, + "fuzz/quic-srtm-test" => { + "noinst" => "1" + }, "fuzz/server-test" => { "noinst" => "1" }, + "fuzz/slh-dsa-test" => { + "noinst" => "1" + }, + "fuzz/smime-test" => { + "noinst" => "1" + }, + "fuzz/v3name-test" => { + "noinst" => "1" + }, "fuzz/x509-test" => { "noinst" => "1" }, @@ -876,18 +1030,30 @@ our %unified_info = ( "test/bftest" => { "noinst" => "1" }, + "test/bio_addr_test" => { + "noinst" => "1" + }, + "test/bio_base64_test" => { + "noinst" => "1" + }, "test/bio_callback_test" => { "noinst" => "1" }, "test/bio_core_test" => { "noinst" => "1" }, + "test/bio_dgram_test" => { + "noinst" => "1" + }, "test/bio_enc_test" => { "noinst" => "1" }, "test/bio_memleak_test" => { "noinst" => "1" }, + "test/bio_meth_test" => { + "noinst" => "1" + }, "test/bio_prefix_text" => { "noinst" => "1" }, @@ -897,6 +1063,9 @@ our %unified_info = ( "test/bio_readbuffer_test" => { "noinst" => "1" }, + "test/bio_tfo_test" => { + "noinst" => "1" + }, "test/bioprinttest" => { "noinst" => "1" }, @@ -906,6 +1075,9 @@ our %unified_info = ( "test/bntest" => { "noinst" => "1" }, + "test/build_wincrypt_test" => { + "noinst" => "1" + }, "test/buildtest_c_aes" => { "noinst" => "1" }, @@ -921,6 +1093,9 @@ our %unified_info = ( "test/buildtest_c_buffer" => { "noinst" => "1" }, + "test/buildtest_c_byteorder" => { + "noinst" => "1" + }, "test/buildtest_c_camellia" => { "noinst" => "1" }, @@ -945,9 +1120,6 @@ our %unified_info = ( "test/buildtest_c_core_dispatch" => { "noinst" => "1" }, - "test/buildtest_c_core_names" => { - "noinst" => "1" - }, "test/buildtest_c_core_object" => { "noinst" => "1" }, @@ -972,6 +1144,9 @@ our %unified_info = ( "test/buildtest_c_e_os2" => { "noinst" => "1" }, + "test/buildtest_c_e_ostime" => { + "noinst" => "1" + }, "test/buildtest_c_ebcdic" => { "noinst" => "1" }, @@ -999,12 +1174,18 @@ our %unified_info = ( "test/buildtest_c_hmac" => { "noinst" => "1" }, + "test/buildtest_c_hpke" => { + "noinst" => "1" + }, "test/buildtest_c_http" => { "noinst" => "1" }, "test/buildtest_c_idea" => { "noinst" => "1" }, + "test/buildtest_c_indicator" => { + "noinst" => "1" + }, "test/buildtest_c_kdf" => { "noinst" => "1" }, @@ -1020,6 +1201,9 @@ our %unified_info = ( "test/buildtest_c_mdc2" => { "noinst" => "1" }, + "test/buildtest_c_ml_kem" => { + "noinst" => "1" + }, "test/buildtest_c_modes" => { "noinst" => "1" }, @@ -1050,6 +1234,9 @@ our %unified_info = ( "test/buildtest_c_provider" => { "noinst" => "1" }, + "test/buildtest_c_quic" => { + "noinst" => "1" + }, "test/buildtest_c_rand" => { "noinst" => "1" }, @@ -1092,6 +1279,9 @@ our %unified_info = ( "test/buildtest_c_symhacks" => { "noinst" => "1" }, + "test/buildtest_c_thread" => { + "noinst" => "1" + }, "test/buildtest_c_tls1" => { "noinst" => "1" }, @@ -1107,6 +1297,12 @@ our %unified_info = ( "test/buildtest_c_whrlpool" => { "noinst" => "1" }, + "test/byteorder_test" => { + "noinst" => "1" + }, + "test/ca_internals_test" => { + "noinst" => "1" + }, "test/casttest" => { "noinst" => "1" }, @@ -1191,6 +1387,9 @@ our %unified_info = ( "test/danetest" => { "noinst" => "1" }, + "test/decoder_propq_test" => { + "noinst" => "1" + }, "test/defltfips_test" => { "noinst" => "1" }, @@ -1263,15 +1462,24 @@ our %unified_info = ( "test/evp_pkey_ctx_new_from_name" => { "noinst" => "1" }, + "test/evp_pkey_dhkem_test" => { + "noinst" => "1" + }, "test/evp_pkey_dparams_test" => { "noinst" => "1" }, "test/evp_pkey_provided_test" => { "noinst" => "1" }, + "test/evp_skey_test" => { + "noinst" => "1" + }, "test/evp_test" => { "noinst" => "1" }, + "test/evp_xof_test" => { + "noinst" => "1" + }, "test/exdatatest" => { "noinst" => "1" }, @@ -1299,6 +1507,9 @@ our %unified_info = ( "test/hmactest" => { "noinst" => "1" }, + "test/hpke_test" => { + "noinst" => "1" + }, "test/http_test" => { "noinst" => "1" }, @@ -1308,12 +1519,18 @@ our %unified_info = ( "test/igetest" => { "noinst" => "1" }, + "test/json_test" => { + "noinst" => "1" + }, "test/keymgmt_internal_test" => { "noinst" => "1" }, "test/lhash_test" => { "noinst" => "1" }, + "test/list_test" => { + "noinst" => "1" + }, "test/localetest" => { "noinst" => "1" }, @@ -1323,9 +1540,21 @@ our %unified_info = ( "test/mdc2test" => { "noinst" => "1" }, + "test/membio_test" => { + "noinst" => "1" + }, "test/memleaktest" => { "noinst" => "1" }, + "test/ml_dsa_test" => { + "noinst" => "1" + }, + "test/ml_kem_evp_extra_test" => { + "noinst" => "1" + }, + "test/ml_kem_internal_test" => { + "noinst" => "1" + }, "test/modes_internal_test" => { "noinst" => "1" }, @@ -1344,6 +1573,9 @@ our %unified_info = ( "test/packettest" => { "noinst" => "1" }, + "test/pairwise_fail_test" => { + "noinst" => "1" + }, "test/param_build_test" => { "noinst" => "1" }, @@ -1368,6 +1600,9 @@ our %unified_info = ( "test/pemtest" => { "noinst" => "1" }, + "test/pkcs12_api_test" => { + "noinst" => "1" + }, "test/pkcs12_format_test" => { "noinst" => "1" }, @@ -1383,6 +1618,9 @@ our %unified_info = ( "test/poly1305_internal_test" => { "noinst" => "1" }, + "test/priority_queue_test" => { + "noinst" => "1" + }, "test/property_test" => { "noinst" => "1" }, @@ -1392,6 +1630,9 @@ our %unified_info = ( "test/provfetchtest" => { "noinst" => "1" }, + "test/provider_default_search_path_test" => { + "noinst" => "1" + }, "test/provider_fallback_test" => { "noinst" => "1" }, @@ -1410,6 +1651,72 @@ our %unified_info = ( "test/punycode_test" => { "noinst" => "1" }, + "test/quic_ackm_test" => { + "noinst" => "1" + }, + "test/quic_cc_test" => { + "noinst" => "1" + }, + "test/quic_cfq_test" => { + "noinst" => "1" + }, + "test/quic_client_test" => { + "noinst" => "1" + }, + "test/quic_fc_test" => { + "noinst" => "1" + }, + "test/quic_fifd_test" => { + "noinst" => "1" + }, + "test/quic_lcidm_test" => { + "noinst" => "1" + }, + "test/quic_multistream_test" => { + "noinst" => "1" + }, + "test/quic_newcid_test" => { + "noinst" => "1" + }, + "test/quic_qlog_test" => { + "noinst" => "1" + }, + "test/quic_radix_test" => { + "noinst" => "1" + }, + "test/quic_rcidm_test" => { + "noinst" => "1" + }, + "test/quic_record_test" => { + "noinst" => "1" + }, + "test/quic_srt_gen_test" => { + "noinst" => "1" + }, + "test/quic_srtm_test" => { + "noinst" => "1" + }, + "test/quic_stream_test" => { + "noinst" => "1" + }, + "test/quic_tserver_test" => { + "noinst" => "1" + }, + "test/quic_txp_test" => { + "noinst" => "1" + }, + "test/quic_txpim_test" => { + "noinst" => "1" + }, + "test/quic_wire_test" => { + "noinst" => "1" + }, + "test/quicapitest" => { + "noinst" => "1" + }, + "test/quicfaultstest" => { + "noinst" => "1" + }, "test/rand_status_test" => { "noinst" => "1" }, @@ -1425,12 +1732,15 @@ our %unified_info = ( "test/rc5test" => { "noinst" => "1" }, - "test/rdrand_sanitytest" => { + "test/rdcpu_sanitytest" => { "noinst" => "1" }, "test/recordlentest" => { "noinst" => "1" }, + "test/rpktest" => { + "noinst" => "1" + }, "test/rsa_complex" => { "noinst" => "1" }, @@ -1443,6 +1753,12 @@ our %unified_info = ( "test/rsa_test" => { "noinst" => "1" }, + "test/rsa_x931_test" => { + "noinst" => "1" + }, + "test/safe_math_test" => { + "noinst" => "1" + }, "test/sanitytest" => { "noinst" => "1" }, @@ -1458,6 +1774,9 @@ our %unified_info = ( "test/siphash_internal_test" => { "noinst" => "1" }, + "test/slh_dsa_test" => { + "noinst" => "1" + }, "test/sm2_internal_test" => { "noinst" => "1" }, @@ -1479,6 +1798,9 @@ our %unified_info = ( "test/ssl_ctx_test" => { "noinst" => "1" }, + "test/ssl_handshake_rtt_test" => { + "noinst" => "1" + }, "test/ssl_old_test" => { "noinst" => "1" }, @@ -1500,12 +1822,18 @@ our %unified_info = ( "test/stack_test" => { "noinst" => "1" }, + "test/strtoultest" => { + "noinst" => "1" + }, "test/sysdefaulttest" => { "noinst" => "1" }, "test/test_test" => { "noinst" => "1" }, + "test/threadpool_test" => { + "noinst" => "1" + }, "test/threadstest" => { "noinst" => "1" }, @@ -1515,12 +1843,18 @@ our %unified_info = ( "test/time_offset_test" => { "noinst" => "1" }, + "test/time_test" => { + "noinst" => "1" + }, "test/tls13ccstest" => { "noinst" => "1" }, "test/tls13encryptiontest" => { "noinst" => "1" }, + "test/tls13groupselection_test" => { + "noinst" => "1" + }, "test/trace_api_test" => { "noinst" => "1" }, @@ -1548,6 +1882,9 @@ our %unified_info = ( "test/wpackettest" => { "noinst" => "1" }, + "test/x509_acert_test" => { + "noinst" => "1" + }, "test/x509_check_cert_pkey_test" => { "noinst" => "1" }, @@ -1557,6 +1894,15 @@ our %unified_info = ( "test/x509_internal_test" => { "noinst" => "1" }, + "test/x509_load_cert_file_test" => { + "noinst" => "1" + }, + "test/x509_req_test" => { + "noinst" => "1" + }, + "test/x509_test" => { + "noinst" => "1" + }, "test/x509_time_test" => { "noinst" => "1" }, @@ -1600,6 +1946,9 @@ our %unified_info = ( "providers/libfips.a" => [ "FIPS_MODULE" ], + "test/endecode_test" => [ + "STATIC_LEGACY" + ], "test/evp_extra_test" => [ "STATIC_LEGACY" ], @@ -1612,14 +1961,21 @@ our %unified_info = ( }, "depends" => { "" => [ + "OpenSSLConfigVersion.cmake", + "crypto/params_idx.c", + "exporters/OpenSSLConfigVersion.cmake", + "exporters/openssl.pc", "include/crypto/bn_conf.h", "include/crypto/dso_conf.h", + "include/internal/param_names.h", "include/openssl/asn1.h", "include/openssl/asn1t.h", "include/openssl/bio.h", "include/openssl/cmp.h", "include/openssl/cms.h", + "include/openssl/comp.h", "include/openssl/conf.h", + "include/openssl/core_names.h", "include/openssl/crmf.h", "include/openssl/crypto.h", "include/openssl/ct.h", @@ -1636,10 +1992,22 @@ our %unified_info = ( "include/openssl/ssl.h", "include/openssl/ui.h", "include/openssl/x509.h", + "include/openssl/x509_acert.h", "include/openssl/x509_vfy.h", "include/openssl/x509v3.h", + "openssl.pc", "test/provider_internal_test.cnf" ], + "OpenSSLConfig.cmake" => [ + "builddata.pm" + ], + "OpenSSLConfigVersion.cmake" => [ + "OpenSSLConfig.cmake", + "builddata.pm" + ], + "apps/ca_internals_test-bin-ca.o" => [ + "apps/progs.h" + ], "apps/lib/cmp_client_test-bin-cmp_mock_srv.o" => [ "apps/progs.h" ], @@ -1785,6 +2153,9 @@ our %unified_info = ( "apps/openssl-bin-sess_id.o" => [ "apps/progs.h" ], + "apps/openssl-bin-skeyutl.o" => [ + "apps/progs.h" + ], "apps/openssl-bin-smime.o" => [ "apps/progs.h" ], @@ -1873,6 +2244,9 @@ our %unified_info = ( "crypto/libcrypto-lib-info.o" => [ "crypto/buildinf.h" ], + "crypto/params_idx.c" => [ + "util/perl|OpenSSL/paramnames.pm" + ], "crypto/rc4/rc4-586.S" => [ "crypto/perlasm/x86asm.pl" ], @@ -2038,6 +2412,9 @@ our %unified_info = ( "doc/html/man1/openssl-sess_id.html" => [ "doc/man1/openssl-sess_id.pod" ], + "doc/html/man1/openssl-skeyutl.html" => [ + "doc/man1/openssl-skeyutl.pod" + ], "doc/html/man1/openssl-smime.html" => [ "doc/man1/openssl-smime.pod" ], @@ -2179,6 +2556,9 @@ our %unified_info = ( "doc/html/man3/BIO_get_ex_new_index.html" => [ "doc/man3/BIO_get_ex_new_index.pod" ], + "doc/html/man3/BIO_get_rpoll_descriptor.html" => [ + "doc/man3/BIO_get_rpoll_descriptor.pod" + ], "doc/html/man3/BIO_meth_new.html" => [ "doc/man3/BIO_meth_new.pod" ], @@ -2215,6 +2595,9 @@ our %unified_info = ( "doc/html/man3/BIO_s_datagram.html" => [ "doc/man3/BIO_s_datagram.pod" ], + "doc/html/man3/BIO_s_dgram_pair.html" => [ + "doc/man3/BIO_s_dgram_pair.pod" + ], "doc/html/man3/BIO_s_fd.html" => [ "doc/man3/BIO_s_fd.pod" ], @@ -2230,6 +2613,9 @@ our %unified_info = ( "doc/html/man3/BIO_s_socket.html" => [ "doc/man3/BIO_s_socket.pod" ], + "doc/html/man3/BIO_sendmmsg.html" => [ + "doc/man3/BIO_sendmmsg.pod" + ], "doc/html/man3/BIO_set_callback.html" => [ "doc/man3/BIO_set_callback.pod" ], @@ -2302,6 +2688,9 @@ our %unified_info = ( "doc/html/man3/BUF_MEM_new.html" => [ "doc/man3/BUF_MEM_new.pod" ], + "doc/html/man3/CMAC_CTX.html" => [ + "doc/man3/CMAC_CTX.pod" + ], "doc/html/man3/CMS_EncryptedData_decrypt.html" => [ "doc/man3/CMS_EncryptedData_decrypt.pod" ], @@ -2368,6 +2757,9 @@ our %unified_info = ( "doc/html/man3/CMS_verify_receipt.html" => [ "doc/man3/CMS_verify_receipt.pod" ], + "doc/html/man3/COMP_CTX_new.html" => [ + "doc/man3/COMP_CTX_new.pod" + ], "doc/html/man3/CONF_modules_free.html" => [ "doc/man3/CONF_modules_free.pod" ], @@ -2467,6 +2859,12 @@ our %unified_info = ( "doc/html/man3/DTLS_set_timer_cb.html" => [ "doc/man3/DTLS_set_timer_cb.pod" ], + "doc/html/man3/DTLSv1_get_timeout.html" => [ + "doc/man3/DTLSv1_get_timeout.pod" + ], + "doc/html/man3/DTLSv1_handle_timeout.html" => [ + "doc/man3/DTLSv1_handle_timeout.pod" + ], "doc/html/man3/DTLSv1_listen.html" => [ "doc/man3/DTLSv1_listen.pod" ], @@ -2605,6 +3003,9 @@ our %unified_info = ( "doc/html/man3/EVP_PKEY_CTX_get0_pkey.html" => [ "doc/man3/EVP_PKEY_CTX_get0_pkey.pod" ], + "doc/html/man3/EVP_PKEY_CTX_get_algor.html" => [ + "doc/man3/EVP_PKEY_CTX_get_algor.pod" + ], "doc/html/man3/EVP_PKEY_CTX_new.html" => [ "doc/man3/EVP_PKEY_CTX_new.pod" ], @@ -2722,6 +3123,12 @@ our %unified_info = ( "doc/html/man3/EVP_SIGNATURE.html" => [ "doc/man3/EVP_SIGNATURE.pod" ], + "doc/html/man3/EVP_SKEY.html" => [ + "doc/man3/EVP_SKEY.pod" + ], + "doc/html/man3/EVP_SKEYMGMT.html" => [ + "doc/man3/EVP_SKEYMGMT.pod" + ], "doc/html/man3/EVP_SealInit.html" => [ "doc/man3/EVP_SealInit.pod" ], @@ -2809,6 +3216,9 @@ our %unified_info = ( "doc/html/man3/EVP_whirlpool.html" => [ "doc/man3/EVP_whirlpool.pod" ], + "doc/html/man3/GENERAL_NAME.html" => [ + "doc/man3/GENERAL_NAME.pod" + ], "doc/html/man3/HMAC.html" => [ "doc/man3/HMAC.pod" ], @@ -2881,9 +3291,15 @@ our %unified_info = ( "doc/html/man3/OPENSSL_load_builtin_modules.html" => [ "doc/man3/OPENSSL_load_builtin_modules.pod" ], + "doc/html/man3/OPENSSL_load_u16_le.html" => [ + "doc/man3/OPENSSL_load_u16_le.pod" + ], "doc/html/man3/OPENSSL_malloc.html" => [ "doc/man3/OPENSSL_malloc.pod" ], + "doc/html/man3/OPENSSL_riscvcap.html" => [ + "doc/man3/OPENSSL_riscvcap.pod" + ], "doc/html/man3/OPENSSL_s390xcap.html" => [ "doc/man3/OPENSSL_s390xcap.pod" ], @@ -2899,12 +3315,18 @@ our %unified_info = ( "doc/html/man3/OSSL_CALLBACK.html" => [ "doc/man3/OSSL_CALLBACK.pod" ], + "doc/html/man3/OSSL_CMP_ATAV_set0.html" => [ + "doc/man3/OSSL_CMP_ATAV_set0.pod" + ], "doc/html/man3/OSSL_CMP_CTX_new.html" => [ "doc/man3/OSSL_CMP_CTX_new.pod" ], "doc/html/man3/OSSL_CMP_HDR_get0_transactionID.html" => [ "doc/man3/OSSL_CMP_HDR_get0_transactionID.pod" ], + "doc/html/man3/OSSL_CMP_ITAV_new_caCerts.html" => [ + "doc/man3/OSSL_CMP_ITAV_new_caCerts.pod" + ], "doc/html/man3/OSSL_CMP_ITAV_set0.html" => [ "doc/man3/OSSL_CMP_ITAV_set0.pod" ], @@ -2974,9 +3396,18 @@ our %unified_info = ( "doc/html/man3/OSSL_ENCODER_to_bio.html" => [ "doc/man3/OSSL_ENCODER_to_bio.pod" ], + "doc/html/man3/OSSL_ERR_STATE_save.html" => [ + "doc/man3/OSSL_ERR_STATE_save.pod" + ], "doc/html/man3/OSSL_ESS_check_signing_certs.html" => [ "doc/man3/OSSL_ESS_check_signing_certs.pod" ], + "doc/html/man3/OSSL_GENERAL_NAMES_print.html" => [ + "doc/man3/OSSL_GENERAL_NAMES_print.pod" + ], + "doc/html/man3/OSSL_HPKE_CTX_new.html" => [ + "doc/man3/OSSL_HPKE_CTX_new.pod" + ], "doc/html/man3/OSSL_HTTP_REQ_CTX.html" => [ "doc/man3/OSSL_HTTP_REQ_CTX.pod" ], @@ -2986,12 +3417,24 @@ our %unified_info = ( "doc/html/man3/OSSL_HTTP_transfer.html" => [ "doc/man3/OSSL_HTTP_transfer.pod" ], + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX.html" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX.pod" + ], + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX_print.html" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX_print.pod" + ], + "doc/html/man3/OSSL_INDICATOR_set_callback.html" => [ + "doc/man3/OSSL_INDICATOR_set_callback.pod" + ], "doc/html/man3/OSSL_ITEM.html" => [ "doc/man3/OSSL_ITEM.pod" ], "doc/html/man3/OSSL_LIB_CTX.html" => [ "doc/man3/OSSL_LIB_CTX.pod" ], + "doc/html/man3/OSSL_LIB_CTX_set_conf_diagnostics.html" => [ + "doc/man3/OSSL_LIB_CTX_set_conf_diagnostics.pod" + ], "doc/html/man3/OSSL_PARAM.html" => [ "doc/man3/OSSL_PARAM.pod" ], @@ -3007,9 +3450,15 @@ our %unified_info = ( "doc/html/man3/OSSL_PARAM_int.html" => [ "doc/man3/OSSL_PARAM_int.pod" ], + "doc/html/man3/OSSL_PARAM_print_to_bio.html" => [ + "doc/man3/OSSL_PARAM_print_to_bio.pod" + ], "doc/html/man3/OSSL_PROVIDER.html" => [ "doc/man3/OSSL_PROVIDER.pod" ], + "doc/html/man3/OSSL_QUIC_client_method.html" => [ + "doc/man3/OSSL_QUIC_client_method.pod" + ], "doc/html/man3/OSSL_SELF_TEST_new.html" => [ "doc/man3/OSSL_SELF_TEST_new.pod" ], @@ -3034,6 +3483,9 @@ our %unified_info = ( "doc/html/man3/OSSL_STORE_open.html" => [ "doc/man3/OSSL_STORE_open.pod" ], + "doc/html/man3/OSSL_sleep.html" => [ + "doc/man3/OSSL_sleep.pod" + ], "doc/html/man3/OSSL_trace_enabled.html" => [ "doc/man3/OSSL_trace_enabled.pod" ], @@ -3049,6 +3501,9 @@ our %unified_info = ( "doc/html/man3/OpenSSL_version.html" => [ "doc/man3/OpenSSL_version.pod" ], + "doc/html/man3/PBMAC1_get1_pbkdf2_param.html" => [ + "doc/man3/PBMAC1_get1_pbkdf2_param.pod" + ], "doc/html/man3/PEM_X509_INFO_read_bio_ex.html" => [ "doc/man3/PEM_X509_INFO_read_bio_ex.pod" ], @@ -3085,6 +3540,9 @@ our %unified_info = ( "doc/html/man3/PKCS12_SAFEBAG_get1_cert.html" => [ "doc/man3/PKCS12_SAFEBAG_get1_cert.pod" ], + "doc/html/man3/PKCS12_SAFEBAG_set0_attrs.html" => [ + "doc/man3/PKCS12_SAFEBAG_set0_attrs.pod" + ], "doc/html/man3/PKCS12_add1_attr_by_NID.html" => [ "doc/man3/PKCS12_add1_attr_by_NID.pod" ], @@ -3358,6 +3816,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set0_CA_list.html" => [ "doc/man3/SSL_CTX_set0_CA_list.pod" ], + "doc/html/man3/SSL_CTX_set1_cert_comp_preference.html" => [ + "doc/man3/SSL_CTX_set1_cert_comp_preference.pod" + ], "doc/html/man3/SSL_CTX_set1_curves.html" => [ "doc/man3/SSL_CTX_set1_curves.pod" ], @@ -3397,6 +3858,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_default_passwd_cb.html" => [ "doc/man3/SSL_CTX_set_default_passwd_cb.pod" ], + "doc/html/man3/SSL_CTX_set_domain_flags.html" => [ + "doc/man3/SSL_CTX_set_domain_flags.pod" + ], "doc/html/man3/SSL_CTX_set_generate_session_id.html" => [ "doc/man3/SSL_CTX_set_generate_session_id.pod" ], @@ -3418,6 +3882,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_msg_callback.html" => [ "doc/man3/SSL_CTX_set_msg_callback.pod" ], + "doc/html/man3/SSL_CTX_set_new_pending_conn_cb.html" => [ + "doc/man3/SSL_CTX_set_new_pending_conn_cb.pod" + ], "doc/html/man3/SSL_CTX_set_num_tickets.html" => [ "doc/man3/SSL_CTX_set_num_tickets.pod" ], @@ -3532,6 +3999,9 @@ our %unified_info = ( "doc/html/man3/SSL_accept.html" => [ "doc/man3/SSL_accept.pod" ], + "doc/html/man3/SSL_accept_stream.html" => [ + "doc/man3/SSL_accept_stream.pod" + ], "doc/html/man3/SSL_alert_type_string.html" => [ "doc/man3/SSL_alert_type_string.pod" ], @@ -3559,9 +4029,21 @@ our %unified_info = ( "doc/html/man3/SSL_free.html" => [ "doc/man3/SSL_free.pod" ], + "doc/html/man3/SSL_get0_connection.html" => [ + "doc/man3/SSL_get0_connection.pod" + ], + "doc/html/man3/SSL_get0_group_name.html" => [ + "doc/man3/SSL_get0_group_name.pod" + ], + "doc/html/man3/SSL_get0_peer_rpk.html" => [ + "doc/man3/SSL_get0_peer_rpk.pod" + ], "doc/html/man3/SSL_get0_peer_scts.html" => [ "doc/man3/SSL_get0_peer_scts.pod" ], + "doc/html/man3/SSL_get1_builtin_sigalgs.html" => [ + "doc/man3/SSL_get1_builtin_sigalgs.pod" + ], "doc/html/man3/SSL_get_SSL_CTX.html" => [ "doc/man3/SSL_get_SSL_CTX.pod" ], @@ -3577,6 +4059,9 @@ our %unified_info = ( "doc/html/man3/SSL_get_client_random.html" => [ "doc/man3/SSL_get_client_random.pod" ], + "doc/html/man3/SSL_get_conn_close_info.html" => [ + "doc/man3/SSL_get_conn_close_info.pod" + ], "doc/html/man3/SSL_get_current_cipher.html" => [ "doc/man3/SSL_get_current_cipher.pod" ], @@ -3586,12 +4071,18 @@ our %unified_info = ( "doc/html/man3/SSL_get_error.html" => [ "doc/man3/SSL_get_error.pod" ], + "doc/html/man3/SSL_get_event_timeout.html" => [ + "doc/man3/SSL_get_event_timeout.pod" + ], "doc/html/man3/SSL_get_extms_support.html" => [ "doc/man3/SSL_get_extms_support.pod" ], "doc/html/man3/SSL_get_fd.html" => [ "doc/man3/SSL_get_fd.pod" ], + "doc/html/man3/SSL_get_handshake_rtt.html" => [ + "doc/man3/SSL_get_handshake_rtt.pod" + ], "doc/html/man3/SSL_get_peer_cert_chain.html" => [ "doc/man3/SSL_get_peer_cert_chain.pod" ], @@ -3610,12 +4101,24 @@ our %unified_info = ( "doc/html/man3/SSL_get_rbio.html" => [ "doc/man3/SSL_get_rbio.pod" ], + "doc/html/man3/SSL_get_rpoll_descriptor.html" => [ + "doc/man3/SSL_get_rpoll_descriptor.pod" + ], "doc/html/man3/SSL_get_session.html" => [ "doc/man3/SSL_get_session.pod" ], "doc/html/man3/SSL_get_shared_sigalgs.html" => [ "doc/man3/SSL_get_shared_sigalgs.pod" ], + "doc/html/man3/SSL_get_stream_id.html" => [ + "doc/man3/SSL_get_stream_id.pod" + ], + "doc/html/man3/SSL_get_stream_read_state.html" => [ + "doc/man3/SSL_get_stream_read_state.pod" + ], + "doc/html/man3/SSL_get_value_uint.html" => [ + "doc/man3/SSL_get_value_uint.pod" + ], "doc/html/man3/SSL_get_verify_result.html" => [ "doc/man3/SSL_get_verify_result.pod" ], @@ -3625,9 +4128,15 @@ our %unified_info = ( "doc/html/man3/SSL_group_to_name.html" => [ "doc/man3/SSL_group_to_name.pod" ], + "doc/html/man3/SSL_handle_events.html" => [ + "doc/man3/SSL_handle_events.pod" + ], "doc/html/man3/SSL_in_init.html" => [ "doc/man3/SSL_in_init.pod" ], + "doc/html/man3/SSL_inject_net_dgram.html" => [ + "doc/man3/SSL_inject_net_dgram.pod" + ], "doc/html/man3/SSL_key_update.html" => [ "doc/man3/SSL_key_update.pod" ], @@ -3640,9 +4149,21 @@ our %unified_info = ( "doc/html/man3/SSL_new.html" => [ "doc/man3/SSL_new.pod" ], + "doc/html/man3/SSL_new_domain.html" => [ + "doc/man3/SSL_new_domain.pod" + ], + "doc/html/man3/SSL_new_listener.html" => [ + "doc/man3/SSL_new_listener.pod" + ], + "doc/html/man3/SSL_new_stream.html" => [ + "doc/man3/SSL_new_stream.pod" + ], "doc/html/man3/SSL_pending.html" => [ "doc/man3/SSL_pending.pod" ], + "doc/html/man3/SSL_poll.html" => [ + "doc/man3/SSL_poll.pod" + ], "doc/html/man3/SSL_read.html" => [ "doc/man3/SSL_read.pod" ], @@ -3658,24 +4179,45 @@ our %unified_info = ( "doc/html/man3/SSL_set1_host.html" => [ "doc/man3/SSL_set1_host.pod" ], + "doc/html/man3/SSL_set1_initial_peer_addr.html" => [ + "doc/man3/SSL_set1_initial_peer_addr.pod" + ], + "doc/html/man3/SSL_set1_server_cert_type.html" => [ + "doc/man3/SSL_set1_server_cert_type.pod" + ], "doc/html/man3/SSL_set_async_callback.html" => [ "doc/man3/SSL_set_async_callback.pod" ], "doc/html/man3/SSL_set_bio.html" => [ "doc/man3/SSL_set_bio.pod" ], + "doc/html/man3/SSL_set_blocking_mode.html" => [ + "doc/man3/SSL_set_blocking_mode.pod" + ], "doc/html/man3/SSL_set_connect_state.html" => [ "doc/man3/SSL_set_connect_state.pod" ], + "doc/html/man3/SSL_set_default_stream_mode.html" => [ + "doc/man3/SSL_set_default_stream_mode.pod" + ], "doc/html/man3/SSL_set_fd.html" => [ "doc/man3/SSL_set_fd.pod" ], + "doc/html/man3/SSL_set_incoming_stream_policy.html" => [ + "doc/man3/SSL_set_incoming_stream_policy.pod" + ], + "doc/html/man3/SSL_set_quic_tls_cbs.html" => [ + "doc/man3/SSL_set_quic_tls_cbs.pod" + ], "doc/html/man3/SSL_set_retry_verify.html" => [ "doc/man3/SSL_set_retry_verify.pod" ], "doc/html/man3/SSL_set_session.html" => [ "doc/man3/SSL_set_session.pod" ], + "doc/html/man3/SSL_set_session_secret_cb.html" => [ + "doc/man3/SSL_set_session_secret_cb.pod" + ], "doc/html/man3/SSL_set_shutdown.html" => [ "doc/man3/SSL_set_shutdown.pod" ], @@ -3688,6 +4230,12 @@ our %unified_info = ( "doc/html/man3/SSL_state_string.html" => [ "doc/man3/SSL_state_string.pod" ], + "doc/html/man3/SSL_stream_conclude.html" => [ + "doc/man3/SSL_stream_conclude.pod" + ], + "doc/html/man3/SSL_stream_reset.html" => [ + "doc/man3/SSL_stream_reset.pod" + ], "doc/html/man3/SSL_want.html" => [ "doc/man3/SSL_want.pod" ], @@ -3697,8 +4245,8 @@ our %unified_info = ( "doc/html/man3/TS_RESP_CTX_new.html" => [ "doc/man3/TS_RESP_CTX_new.pod" ], - "doc/html/man3/TS_VERIFY_CTX_set_certs.html" => [ - "doc/man3/TS_VERIFY_CTX_set_certs.pod" + "doc/html/man3/TS_VERIFY_CTX.html" => [ + "doc/man3/TS_VERIFY_CTX.pod" ], "doc/html/man3/UI_STRING.html" => [ "doc/man3/UI_STRING.pod" @@ -3718,6 +4266,21 @@ our %unified_info = ( "doc/html/man3/X509V3_set_ctx.html" => [ "doc/man3/X509V3_set_ctx.pod" ], + "doc/html/man3/X509_ACERT_add1_attr.html" => [ + "doc/man3/X509_ACERT_add1_attr.pod" + ], + "doc/html/man3/X509_ACERT_add_attr_nconf.html" => [ + "doc/man3/X509_ACERT_add_attr_nconf.pod" + ], + "doc/html/man3/X509_ACERT_get0_holder_baseCertId.html" => [ + "doc/man3/X509_ACERT_get0_holder_baseCertId.pod" + ], + "doc/html/man3/X509_ACERT_get_attr.html" => [ + "doc/man3/X509_ACERT_get_attr.pod" + ], + "doc/html/man3/X509_ACERT_print_ex.html" => [ + "doc/man3/X509_ACERT_print_ex.pod" + ], "doc/html/man3/X509_ALGOR_dup.html" => [ "doc/man3/X509_ALGOR_dup.pod" ], @@ -3766,6 +4329,9 @@ our %unified_info = ( "doc/html/man3/X509_SIG_get0.html" => [ "doc/man3/X509_SIG_get0.pod" ], + "doc/html/man3/X509_STORE_CTX_get_by_subject.html" => [ + "doc/man3/X509_STORE_CTX_get_by_subject.pod" + ], "doc/html/man3/X509_STORE_CTX_get_error.html" => [ "doc/man3/X509_STORE_CTX_get_error.pod" ], @@ -3832,6 +4398,9 @@ our %unified_info = ( "doc/html/man3/X509_get0_uids.html" => [ "doc/man3/X509_get0_uids.pod" ], + "doc/html/man3/X509_get_default_cert_file.html" => [ + "doc/man3/X509_get_default_cert_file.pod" + ], "doc/html/man3/X509_get_extension_flags.html" => [ "doc/man3/X509_get_extension_flags.pod" ], @@ -3955,9 +4524,15 @@ our %unified_info = ( "doc/html/man7/EVP_CIPHER-SM4.html" => [ "doc/man7/EVP_CIPHER-SM4.pod" ], + "doc/html/man7/EVP_KDF-ARGON2.html" => [ + "doc/man7/EVP_KDF-ARGON2.pod" + ], "doc/html/man7/EVP_KDF-HKDF.html" => [ "doc/man7/EVP_KDF-HKDF.pod" ], + "doc/html/man7/EVP_KDF-HMAC-DRBG.html" => [ + "doc/man7/EVP_KDF-HMAC-DRBG.pod" + ], "doc/html/man7/EVP_KDF-KB.html" => [ "doc/man7/EVP_KDF-KB.pod" ], @@ -3973,6 +4548,9 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-PKCS12KDF.html" => [ "doc/man7/EVP_KDF-PKCS12KDF.pod" ], + "doc/html/man7/EVP_KDF-PVKKDF.html" => [ + "doc/man7/EVP_KDF-PVKKDF.pod" + ], "doc/html/man7/EVP_KDF-SCRYPT.html" => [ "doc/man7/EVP_KDF-SCRYPT.pod" ], @@ -3997,9 +4575,18 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-X963.html" => [ "doc/man7/EVP_KDF-X963.pod" ], + "doc/html/man7/EVP_KEM-EC.html" => [ + "doc/man7/EVP_KEM-EC.pod" + ], + "doc/html/man7/EVP_KEM-ML-KEM.html" => [ + "doc/man7/EVP_KEM-ML-KEM.pod" + ], "doc/html/man7/EVP_KEM-RSA.html" => [ "doc/man7/EVP_KEM-RSA.pod" ], + "doc/html/man7/EVP_KEM-X25519.html" => [ + "doc/man7/EVP_KEM-X25519.pod" + ], "doc/html/man7/EVP_KEYEXCH-DH.html" => [ "doc/man7/EVP_KEYEXCH-DH.pod" ], @@ -4033,6 +4620,9 @@ our %unified_info = ( "doc/html/man7/EVP_MD-BLAKE2.html" => [ "doc/man7/EVP_MD-BLAKE2.pod" ], + "doc/html/man7/EVP_MD-KECCAK.html" => [ + "doc/man7/EVP_MD-KECCAK.pod" + ], "doc/html/man7/EVP_MD-MD2.html" => [ "doc/man7/EVP_MD-MD2.pod" ], @@ -4090,15 +4680,27 @@ our %unified_info = ( "doc/html/man7/EVP_PKEY-HMAC.html" => [ "doc/man7/EVP_PKEY-HMAC.pod" ], + "doc/html/man7/EVP_PKEY-ML-DSA.html" => [ + "doc/man7/EVP_PKEY-ML-DSA.pod" + ], + "doc/html/man7/EVP_PKEY-ML-KEM.html" => [ + "doc/man7/EVP_PKEY-ML-KEM.pod" + ], "doc/html/man7/EVP_PKEY-RSA.html" => [ "doc/man7/EVP_PKEY-RSA.pod" ], + "doc/html/man7/EVP_PKEY-SLH-DSA.html" => [ + "doc/man7/EVP_PKEY-SLH-DSA.pod" + ], "doc/html/man7/EVP_PKEY-SM2.html" => [ "doc/man7/EVP_PKEY-SM2.pod" ], "doc/html/man7/EVP_PKEY-X25519.html" => [ "doc/man7/EVP_PKEY-X25519.pod" ], + "doc/html/man7/EVP_RAND-CRNG-TEST.html" => [ + "doc/man7/EVP_RAND-CRNG-TEST.pod" + ], "doc/html/man7/EVP_RAND-CTR-DRBG.html" => [ "doc/man7/EVP_RAND-CTR-DRBG.pod" ], @@ -4108,6 +4710,9 @@ our %unified_info = ( "doc/html/man7/EVP_RAND-HMAC-DRBG.html" => [ "doc/man7/EVP_RAND-HMAC-DRBG.pod" ], + "doc/html/man7/EVP_RAND-JITTER.html" => [ + "doc/man7/EVP_RAND-JITTER.pod" + ], "doc/html/man7/EVP_RAND-SEED-SRC.html" => [ "doc/man7/EVP_RAND-SEED-SRC.pod" ], @@ -4129,9 +4734,15 @@ our %unified_info = ( "doc/html/man7/EVP_SIGNATURE-HMAC.html" => [ "doc/man7/EVP_SIGNATURE-HMAC.pod" ], + "doc/html/man7/EVP_SIGNATURE-ML-DSA.html" => [ + "doc/man7/EVP_SIGNATURE-ML-DSA.pod" + ], "doc/html/man7/EVP_SIGNATURE-RSA.html" => [ "doc/man7/EVP_SIGNATURE-RSA.pod" ], + "doc/html/man7/EVP_SIGNATURE-SLH-DSA.html" => [ + "doc/man7/EVP_SIGNATURE-SLH-DSA.pod" + ], "doc/html/man7/OSSL_PROVIDER-FIPS.html" => [ "doc/man7/OSSL_PROVIDER-FIPS.pod" ], @@ -4147,6 +4758,9 @@ our %unified_info = ( "doc/html/man7/OSSL_PROVIDER-null.html" => [ "doc/man7/OSSL_PROVIDER-null.pod" ], + "doc/html/man7/OSSL_STORE-winstore.html" => [ + "doc/man7/OSSL_STORE-winstore.pod" + ], "doc/html/man7/RAND.html" => [ "doc/man7/RAND.pod" ], @@ -4159,9 +4773,6 @@ our %unified_info = ( "doc/html/man7/bio.html" => [ "doc/man7/bio.pod" ], - "doc/html/man7/crypto.html" => [ - "doc/man7/crypto.pod" - ], "doc/html/man7/ct.html" => [ "doc/man7/ct.pod" ], @@ -4192,9 +4803,6 @@ our %unified_info = ( "doc/html/man7/life_cycle-rand.html" => [ "doc/man7/life_cycle-rand.pod" ], - "doc/html/man7/migration_guide.html" => [ - "doc/man7/migration_guide.pod" - ], "doc/html/man7/openssl-core.h.html" => [ "doc/man7/openssl-core.h.pod" ], @@ -4210,12 +4818,66 @@ our %unified_info = ( "doc/html/man7/openssl-glossary.html" => [ "doc/man7/openssl-glossary.pod" ], + "doc/html/man7/openssl-qlog.html" => [ + "doc/man7/openssl-qlog.pod" + ], + "doc/html/man7/openssl-quic-concurrency.html" => [ + "doc/man7/openssl-quic-concurrency.pod" + ], + "doc/html/man7/openssl-quic.html" => [ + "doc/man7/openssl-quic.pod" + ], "doc/html/man7/openssl-threads.html" => [ "doc/man7/openssl-threads.pod" ], "doc/html/man7/openssl_user_macros.html" => [ "doc/man7/openssl_user_macros.pod" ], + "doc/html/man7/ossl-guide-introduction.html" => [ + "doc/man7/ossl-guide-introduction.pod" + ], + "doc/html/man7/ossl-guide-libcrypto-introduction.html" => [ + "doc/man7/ossl-guide-libcrypto-introduction.pod" + ], + "doc/html/man7/ossl-guide-libraries-introduction.html" => [ + "doc/man7/ossl-guide-libraries-introduction.pod" + ], + "doc/html/man7/ossl-guide-libssl-introduction.html" => [ + "doc/man7/ossl-guide-libssl-introduction.pod" + ], + "doc/html/man7/ossl-guide-migration.html" => [ + "doc/man7/ossl-guide-migration.pod" + ], + "doc/html/man7/ossl-guide-quic-client-block.html" => [ + "doc/man7/ossl-guide-quic-client-block.pod" + ], + "doc/html/man7/ossl-guide-quic-client-non-block.html" => [ + "doc/man7/ossl-guide-quic-client-non-block.pod" + ], + "doc/html/man7/ossl-guide-quic-introduction.html" => [ + "doc/man7/ossl-guide-quic-introduction.pod" + ], + "doc/html/man7/ossl-guide-quic-multi-stream.html" => [ + "doc/man7/ossl-guide-quic-multi-stream.pod" + ], + "doc/html/man7/ossl-guide-quic-server-block.html" => [ + "doc/man7/ossl-guide-quic-server-block.pod" + ], + "doc/html/man7/ossl-guide-quic-server-non-block.html" => [ + "doc/man7/ossl-guide-quic-server-non-block.pod" + ], + "doc/html/man7/ossl-guide-tls-client-block.html" => [ + "doc/man7/ossl-guide-tls-client-block.pod" + ], + "doc/html/man7/ossl-guide-tls-client-non-block.html" => [ + "doc/man7/ossl-guide-tls-client-non-block.pod" + ], + "doc/html/man7/ossl-guide-tls-introduction.html" => [ + "doc/man7/ossl-guide-tls-introduction.pod" + ], + "doc/html/man7/ossl-guide-tls-server-block.html" => [ + "doc/man7/ossl-guide-tls-server-block.pod" + ], "doc/html/man7/ossl_store-file.html" => [ "doc/man7/ossl_store-file.pod" ], @@ -4270,6 +4932,9 @@ our %unified_info = ( "doc/html/man7/provider-signature.html" => [ "doc/man7/provider-signature.pod" ], + "doc/html/man7/provider-skeymgmt.html" => [ + "doc/man7/provider-skeymgmt.pod" + ], "doc/html/man7/provider-storemgmt.html" => [ "doc/man7/provider-storemgmt.pod" ], @@ -4279,9 +4944,6 @@ our %unified_info = ( "doc/html/man7/proxy-certificates.html" => [ "doc/man7/proxy-certificates.pod" ], - "doc/html/man7/ssl.html" => [ - "doc/man7/ssl.pod" - ], "doc/html/man7/x509.html" => [ "doc/man7/x509.pod" ], @@ -4429,6 +5091,9 @@ our %unified_info = ( "doc/man/man1/openssl-sess_id.1" => [ "doc/man1/openssl-sess_id.pod" ], + "doc/man/man1/openssl-skeyutl.1" => [ + "doc/man1/openssl-skeyutl.pod" + ], "doc/man/man1/openssl-smime.1" => [ "doc/man1/openssl-smime.pod" ], @@ -4570,6 +5235,9 @@ our %unified_info = ( "doc/man/man3/BIO_get_ex_new_index.3" => [ "doc/man3/BIO_get_ex_new_index.pod" ], + "doc/man/man3/BIO_get_rpoll_descriptor.3" => [ + "doc/man3/BIO_get_rpoll_descriptor.pod" + ], "doc/man/man3/BIO_meth_new.3" => [ "doc/man3/BIO_meth_new.pod" ], @@ -4606,6 +5274,9 @@ our %unified_info = ( "doc/man/man3/BIO_s_datagram.3" => [ "doc/man3/BIO_s_datagram.pod" ], + "doc/man/man3/BIO_s_dgram_pair.3" => [ + "doc/man3/BIO_s_dgram_pair.pod" + ], "doc/man/man3/BIO_s_fd.3" => [ "doc/man3/BIO_s_fd.pod" ], @@ -4621,6 +5292,9 @@ our %unified_info = ( "doc/man/man3/BIO_s_socket.3" => [ "doc/man3/BIO_s_socket.pod" ], + "doc/man/man3/BIO_sendmmsg.3" => [ + "doc/man3/BIO_sendmmsg.pod" + ], "doc/man/man3/BIO_set_callback.3" => [ "doc/man3/BIO_set_callback.pod" ], @@ -4693,6 +5367,9 @@ our %unified_info = ( "doc/man/man3/BUF_MEM_new.3" => [ "doc/man3/BUF_MEM_new.pod" ], + "doc/man/man3/CMAC_CTX.3" => [ + "doc/man3/CMAC_CTX.pod" + ], "doc/man/man3/CMS_EncryptedData_decrypt.3" => [ "doc/man3/CMS_EncryptedData_decrypt.pod" ], @@ -4759,6 +5436,9 @@ our %unified_info = ( "doc/man/man3/CMS_verify_receipt.3" => [ "doc/man3/CMS_verify_receipt.pod" ], + "doc/man/man3/COMP_CTX_new.3" => [ + "doc/man3/COMP_CTX_new.pod" + ], "doc/man/man3/CONF_modules_free.3" => [ "doc/man3/CONF_modules_free.pod" ], @@ -4858,6 +5538,12 @@ our %unified_info = ( "doc/man/man3/DTLS_set_timer_cb.3" => [ "doc/man3/DTLS_set_timer_cb.pod" ], + "doc/man/man3/DTLSv1_get_timeout.3" => [ + "doc/man3/DTLSv1_get_timeout.pod" + ], + "doc/man/man3/DTLSv1_handle_timeout.3" => [ + "doc/man3/DTLSv1_handle_timeout.pod" + ], "doc/man/man3/DTLSv1_listen.3" => [ "doc/man3/DTLSv1_listen.pod" ], @@ -4996,6 +5682,9 @@ our %unified_info = ( "doc/man/man3/EVP_PKEY_CTX_get0_pkey.3" => [ "doc/man3/EVP_PKEY_CTX_get0_pkey.pod" ], + "doc/man/man3/EVP_PKEY_CTX_get_algor.3" => [ + "doc/man3/EVP_PKEY_CTX_get_algor.pod" + ], "doc/man/man3/EVP_PKEY_CTX_new.3" => [ "doc/man3/EVP_PKEY_CTX_new.pod" ], @@ -5113,6 +5802,12 @@ our %unified_info = ( "doc/man/man3/EVP_SIGNATURE.3" => [ "doc/man3/EVP_SIGNATURE.pod" ], + "doc/man/man3/EVP_SKEY.3" => [ + "doc/man3/EVP_SKEY.pod" + ], + "doc/man/man3/EVP_SKEYMGMT.3" => [ + "doc/man3/EVP_SKEYMGMT.pod" + ], "doc/man/man3/EVP_SealInit.3" => [ "doc/man3/EVP_SealInit.pod" ], @@ -5200,6 +5895,9 @@ our %unified_info = ( "doc/man/man3/EVP_whirlpool.3" => [ "doc/man3/EVP_whirlpool.pod" ], + "doc/man/man3/GENERAL_NAME.3" => [ + "doc/man3/GENERAL_NAME.pod" + ], "doc/man/man3/HMAC.3" => [ "doc/man3/HMAC.pod" ], @@ -5272,9 +5970,15 @@ our %unified_info = ( "doc/man/man3/OPENSSL_load_builtin_modules.3" => [ "doc/man3/OPENSSL_load_builtin_modules.pod" ], + "doc/man/man3/OPENSSL_load_u16_le.3" => [ + "doc/man3/OPENSSL_load_u16_le.pod" + ], "doc/man/man3/OPENSSL_malloc.3" => [ "doc/man3/OPENSSL_malloc.pod" ], + "doc/man/man3/OPENSSL_riscvcap.3" => [ + "doc/man3/OPENSSL_riscvcap.pod" + ], "doc/man/man3/OPENSSL_s390xcap.3" => [ "doc/man3/OPENSSL_s390xcap.pod" ], @@ -5290,12 +5994,18 @@ our %unified_info = ( "doc/man/man3/OSSL_CALLBACK.3" => [ "doc/man3/OSSL_CALLBACK.pod" ], + "doc/man/man3/OSSL_CMP_ATAV_set0.3" => [ + "doc/man3/OSSL_CMP_ATAV_set0.pod" + ], "doc/man/man3/OSSL_CMP_CTX_new.3" => [ "doc/man3/OSSL_CMP_CTX_new.pod" ], "doc/man/man3/OSSL_CMP_HDR_get0_transactionID.3" => [ "doc/man3/OSSL_CMP_HDR_get0_transactionID.pod" ], + "doc/man/man3/OSSL_CMP_ITAV_new_caCerts.3" => [ + "doc/man3/OSSL_CMP_ITAV_new_caCerts.pod" + ], "doc/man/man3/OSSL_CMP_ITAV_set0.3" => [ "doc/man3/OSSL_CMP_ITAV_set0.pod" ], @@ -5365,9 +6075,18 @@ our %unified_info = ( "doc/man/man3/OSSL_ENCODER_to_bio.3" => [ "doc/man3/OSSL_ENCODER_to_bio.pod" ], + "doc/man/man3/OSSL_ERR_STATE_save.3" => [ + "doc/man3/OSSL_ERR_STATE_save.pod" + ], "doc/man/man3/OSSL_ESS_check_signing_certs.3" => [ "doc/man3/OSSL_ESS_check_signing_certs.pod" ], + "doc/man/man3/OSSL_GENERAL_NAMES_print.3" => [ + "doc/man3/OSSL_GENERAL_NAMES_print.pod" + ], + "doc/man/man3/OSSL_HPKE_CTX_new.3" => [ + "doc/man3/OSSL_HPKE_CTX_new.pod" + ], "doc/man/man3/OSSL_HTTP_REQ_CTX.3" => [ "doc/man3/OSSL_HTTP_REQ_CTX.pod" ], @@ -5377,12 +6096,24 @@ our %unified_info = ( "doc/man/man3/OSSL_HTTP_transfer.3" => [ "doc/man3/OSSL_HTTP_transfer.pod" ], + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX.3" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX.pod" + ], + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX_print.3" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX_print.pod" + ], + "doc/man/man3/OSSL_INDICATOR_set_callback.3" => [ + "doc/man3/OSSL_INDICATOR_set_callback.pod" + ], "doc/man/man3/OSSL_ITEM.3" => [ "doc/man3/OSSL_ITEM.pod" ], "doc/man/man3/OSSL_LIB_CTX.3" => [ "doc/man3/OSSL_LIB_CTX.pod" ], + "doc/man/man3/OSSL_LIB_CTX_set_conf_diagnostics.3" => [ + "doc/man3/OSSL_LIB_CTX_set_conf_diagnostics.pod" + ], "doc/man/man3/OSSL_PARAM.3" => [ "doc/man3/OSSL_PARAM.pod" ], @@ -5398,9 +6129,15 @@ our %unified_info = ( "doc/man/man3/OSSL_PARAM_int.3" => [ "doc/man3/OSSL_PARAM_int.pod" ], + "doc/man/man3/OSSL_PARAM_print_to_bio.3" => [ + "doc/man3/OSSL_PARAM_print_to_bio.pod" + ], "doc/man/man3/OSSL_PROVIDER.3" => [ "doc/man3/OSSL_PROVIDER.pod" ], + "doc/man/man3/OSSL_QUIC_client_method.3" => [ + "doc/man3/OSSL_QUIC_client_method.pod" + ], "doc/man/man3/OSSL_SELF_TEST_new.3" => [ "doc/man3/OSSL_SELF_TEST_new.pod" ], @@ -5425,6 +6162,9 @@ our %unified_info = ( "doc/man/man3/OSSL_STORE_open.3" => [ "doc/man3/OSSL_STORE_open.pod" ], + "doc/man/man3/OSSL_sleep.3" => [ + "doc/man3/OSSL_sleep.pod" + ], "doc/man/man3/OSSL_trace_enabled.3" => [ "doc/man3/OSSL_trace_enabled.pod" ], @@ -5440,6 +6180,9 @@ our %unified_info = ( "doc/man/man3/OpenSSL_version.3" => [ "doc/man3/OpenSSL_version.pod" ], + "doc/man/man3/PBMAC1_get1_pbkdf2_param.3" => [ + "doc/man3/PBMAC1_get1_pbkdf2_param.pod" + ], "doc/man/man3/PEM_X509_INFO_read_bio_ex.3" => [ "doc/man3/PEM_X509_INFO_read_bio_ex.pod" ], @@ -5476,6 +6219,9 @@ our %unified_info = ( "doc/man/man3/PKCS12_SAFEBAG_get1_cert.3" => [ "doc/man3/PKCS12_SAFEBAG_get1_cert.pod" ], + "doc/man/man3/PKCS12_SAFEBAG_set0_attrs.3" => [ + "doc/man3/PKCS12_SAFEBAG_set0_attrs.pod" + ], "doc/man/man3/PKCS12_add1_attr_by_NID.3" => [ "doc/man3/PKCS12_add1_attr_by_NID.pod" ], @@ -5749,6 +6495,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set0_CA_list.3" => [ "doc/man3/SSL_CTX_set0_CA_list.pod" ], + "doc/man/man3/SSL_CTX_set1_cert_comp_preference.3" => [ + "doc/man3/SSL_CTX_set1_cert_comp_preference.pod" + ], "doc/man/man3/SSL_CTX_set1_curves.3" => [ "doc/man3/SSL_CTX_set1_curves.pod" ], @@ -5788,6 +6537,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_default_passwd_cb.3" => [ "doc/man3/SSL_CTX_set_default_passwd_cb.pod" ], + "doc/man/man3/SSL_CTX_set_domain_flags.3" => [ + "doc/man3/SSL_CTX_set_domain_flags.pod" + ], "doc/man/man3/SSL_CTX_set_generate_session_id.3" => [ "doc/man3/SSL_CTX_set_generate_session_id.pod" ], @@ -5809,6 +6561,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_msg_callback.3" => [ "doc/man3/SSL_CTX_set_msg_callback.pod" ], + "doc/man/man3/SSL_CTX_set_new_pending_conn_cb.3" => [ + "doc/man3/SSL_CTX_set_new_pending_conn_cb.pod" + ], "doc/man/man3/SSL_CTX_set_num_tickets.3" => [ "doc/man3/SSL_CTX_set_num_tickets.pod" ], @@ -5923,6 +6678,9 @@ our %unified_info = ( "doc/man/man3/SSL_accept.3" => [ "doc/man3/SSL_accept.pod" ], + "doc/man/man3/SSL_accept_stream.3" => [ + "doc/man3/SSL_accept_stream.pod" + ], "doc/man/man3/SSL_alert_type_string.3" => [ "doc/man3/SSL_alert_type_string.pod" ], @@ -5950,9 +6708,21 @@ our %unified_info = ( "doc/man/man3/SSL_free.3" => [ "doc/man3/SSL_free.pod" ], + "doc/man/man3/SSL_get0_connection.3" => [ + "doc/man3/SSL_get0_connection.pod" + ], + "doc/man/man3/SSL_get0_group_name.3" => [ + "doc/man3/SSL_get0_group_name.pod" + ], + "doc/man/man3/SSL_get0_peer_rpk.3" => [ + "doc/man3/SSL_get0_peer_rpk.pod" + ], "doc/man/man3/SSL_get0_peer_scts.3" => [ "doc/man3/SSL_get0_peer_scts.pod" ], + "doc/man/man3/SSL_get1_builtin_sigalgs.3" => [ + "doc/man3/SSL_get1_builtin_sigalgs.pod" + ], "doc/man/man3/SSL_get_SSL_CTX.3" => [ "doc/man3/SSL_get_SSL_CTX.pod" ], @@ -5968,6 +6738,9 @@ our %unified_info = ( "doc/man/man3/SSL_get_client_random.3" => [ "doc/man3/SSL_get_client_random.pod" ], + "doc/man/man3/SSL_get_conn_close_info.3" => [ + "doc/man3/SSL_get_conn_close_info.pod" + ], "doc/man/man3/SSL_get_current_cipher.3" => [ "doc/man3/SSL_get_current_cipher.pod" ], @@ -5977,12 +6750,18 @@ our %unified_info = ( "doc/man/man3/SSL_get_error.3" => [ "doc/man3/SSL_get_error.pod" ], + "doc/man/man3/SSL_get_event_timeout.3" => [ + "doc/man3/SSL_get_event_timeout.pod" + ], "doc/man/man3/SSL_get_extms_support.3" => [ "doc/man3/SSL_get_extms_support.pod" ], "doc/man/man3/SSL_get_fd.3" => [ "doc/man3/SSL_get_fd.pod" ], + "doc/man/man3/SSL_get_handshake_rtt.3" => [ + "doc/man3/SSL_get_handshake_rtt.pod" + ], "doc/man/man3/SSL_get_peer_cert_chain.3" => [ "doc/man3/SSL_get_peer_cert_chain.pod" ], @@ -6001,12 +6780,24 @@ our %unified_info = ( "doc/man/man3/SSL_get_rbio.3" => [ "doc/man3/SSL_get_rbio.pod" ], + "doc/man/man3/SSL_get_rpoll_descriptor.3" => [ + "doc/man3/SSL_get_rpoll_descriptor.pod" + ], "doc/man/man3/SSL_get_session.3" => [ "doc/man3/SSL_get_session.pod" ], "doc/man/man3/SSL_get_shared_sigalgs.3" => [ "doc/man3/SSL_get_shared_sigalgs.pod" ], + "doc/man/man3/SSL_get_stream_id.3" => [ + "doc/man3/SSL_get_stream_id.pod" + ], + "doc/man/man3/SSL_get_stream_read_state.3" => [ + "doc/man3/SSL_get_stream_read_state.pod" + ], + "doc/man/man3/SSL_get_value_uint.3" => [ + "doc/man3/SSL_get_value_uint.pod" + ], "doc/man/man3/SSL_get_verify_result.3" => [ "doc/man3/SSL_get_verify_result.pod" ], @@ -6016,9 +6807,15 @@ our %unified_info = ( "doc/man/man3/SSL_group_to_name.3" => [ "doc/man3/SSL_group_to_name.pod" ], + "doc/man/man3/SSL_handle_events.3" => [ + "doc/man3/SSL_handle_events.pod" + ], "doc/man/man3/SSL_in_init.3" => [ "doc/man3/SSL_in_init.pod" ], + "doc/man/man3/SSL_inject_net_dgram.3" => [ + "doc/man3/SSL_inject_net_dgram.pod" + ], "doc/man/man3/SSL_key_update.3" => [ "doc/man3/SSL_key_update.pod" ], @@ -6031,9 +6828,21 @@ our %unified_info = ( "doc/man/man3/SSL_new.3" => [ "doc/man3/SSL_new.pod" ], + "doc/man/man3/SSL_new_domain.3" => [ + "doc/man3/SSL_new_domain.pod" + ], + "doc/man/man3/SSL_new_listener.3" => [ + "doc/man3/SSL_new_listener.pod" + ], + "doc/man/man3/SSL_new_stream.3" => [ + "doc/man3/SSL_new_stream.pod" + ], "doc/man/man3/SSL_pending.3" => [ "doc/man3/SSL_pending.pod" ], + "doc/man/man3/SSL_poll.3" => [ + "doc/man3/SSL_poll.pod" + ], "doc/man/man3/SSL_read.3" => [ "doc/man3/SSL_read.pod" ], @@ -6049,24 +6858,45 @@ our %unified_info = ( "doc/man/man3/SSL_set1_host.3" => [ "doc/man3/SSL_set1_host.pod" ], + "doc/man/man3/SSL_set1_initial_peer_addr.3" => [ + "doc/man3/SSL_set1_initial_peer_addr.pod" + ], + "doc/man/man3/SSL_set1_server_cert_type.3" => [ + "doc/man3/SSL_set1_server_cert_type.pod" + ], "doc/man/man3/SSL_set_async_callback.3" => [ "doc/man3/SSL_set_async_callback.pod" ], "doc/man/man3/SSL_set_bio.3" => [ "doc/man3/SSL_set_bio.pod" ], + "doc/man/man3/SSL_set_blocking_mode.3" => [ + "doc/man3/SSL_set_blocking_mode.pod" + ], "doc/man/man3/SSL_set_connect_state.3" => [ "doc/man3/SSL_set_connect_state.pod" ], + "doc/man/man3/SSL_set_default_stream_mode.3" => [ + "doc/man3/SSL_set_default_stream_mode.pod" + ], "doc/man/man3/SSL_set_fd.3" => [ "doc/man3/SSL_set_fd.pod" ], + "doc/man/man3/SSL_set_incoming_stream_policy.3" => [ + "doc/man3/SSL_set_incoming_stream_policy.pod" + ], + "doc/man/man3/SSL_set_quic_tls_cbs.3" => [ + "doc/man3/SSL_set_quic_tls_cbs.pod" + ], "doc/man/man3/SSL_set_retry_verify.3" => [ "doc/man3/SSL_set_retry_verify.pod" ], "doc/man/man3/SSL_set_session.3" => [ "doc/man3/SSL_set_session.pod" ], + "doc/man/man3/SSL_set_session_secret_cb.3" => [ + "doc/man3/SSL_set_session_secret_cb.pod" + ], "doc/man/man3/SSL_set_shutdown.3" => [ "doc/man3/SSL_set_shutdown.pod" ], @@ -6079,6 +6909,12 @@ our %unified_info = ( "doc/man/man3/SSL_state_string.3" => [ "doc/man3/SSL_state_string.pod" ], + "doc/man/man3/SSL_stream_conclude.3" => [ + "doc/man3/SSL_stream_conclude.pod" + ], + "doc/man/man3/SSL_stream_reset.3" => [ + "doc/man3/SSL_stream_reset.pod" + ], "doc/man/man3/SSL_want.3" => [ "doc/man3/SSL_want.pod" ], @@ -6088,8 +6924,8 @@ our %unified_info = ( "doc/man/man3/TS_RESP_CTX_new.3" => [ "doc/man3/TS_RESP_CTX_new.pod" ], - "doc/man/man3/TS_VERIFY_CTX_set_certs.3" => [ - "doc/man3/TS_VERIFY_CTX_set_certs.pod" + "doc/man/man3/TS_VERIFY_CTX.3" => [ + "doc/man3/TS_VERIFY_CTX.pod" ], "doc/man/man3/UI_STRING.3" => [ "doc/man3/UI_STRING.pod" @@ -6109,6 +6945,21 @@ our %unified_info = ( "doc/man/man3/X509V3_set_ctx.3" => [ "doc/man3/X509V3_set_ctx.pod" ], + "doc/man/man3/X509_ACERT_add1_attr.3" => [ + "doc/man3/X509_ACERT_add1_attr.pod" + ], + "doc/man/man3/X509_ACERT_add_attr_nconf.3" => [ + "doc/man3/X509_ACERT_add_attr_nconf.pod" + ], + "doc/man/man3/X509_ACERT_get0_holder_baseCertId.3" => [ + "doc/man3/X509_ACERT_get0_holder_baseCertId.pod" + ], + "doc/man/man3/X509_ACERT_get_attr.3" => [ + "doc/man3/X509_ACERT_get_attr.pod" + ], + "doc/man/man3/X509_ACERT_print_ex.3" => [ + "doc/man3/X509_ACERT_print_ex.pod" + ], "doc/man/man3/X509_ALGOR_dup.3" => [ "doc/man3/X509_ALGOR_dup.pod" ], @@ -6157,6 +7008,9 @@ our %unified_info = ( "doc/man/man3/X509_SIG_get0.3" => [ "doc/man3/X509_SIG_get0.pod" ], + "doc/man/man3/X509_STORE_CTX_get_by_subject.3" => [ + "doc/man3/X509_STORE_CTX_get_by_subject.pod" + ], "doc/man/man3/X509_STORE_CTX_get_error.3" => [ "doc/man3/X509_STORE_CTX_get_error.pod" ], @@ -6223,6 +7077,9 @@ our %unified_info = ( "doc/man/man3/X509_get0_uids.3" => [ "doc/man3/X509_get0_uids.pod" ], + "doc/man/man3/X509_get_default_cert_file.3" => [ + "doc/man3/X509_get_default_cert_file.pod" + ], "doc/man/man3/X509_get_extension_flags.3" => [ "doc/man3/X509_get_extension_flags.pod" ], @@ -6346,9 +7203,15 @@ our %unified_info = ( "doc/man/man7/EVP_CIPHER-SM4.7" => [ "doc/man7/EVP_CIPHER-SM4.pod" ], + "doc/man/man7/EVP_KDF-ARGON2.7" => [ + "doc/man7/EVP_KDF-ARGON2.pod" + ], "doc/man/man7/EVP_KDF-HKDF.7" => [ "doc/man7/EVP_KDF-HKDF.pod" ], + "doc/man/man7/EVP_KDF-HMAC-DRBG.7" => [ + "doc/man7/EVP_KDF-HMAC-DRBG.pod" + ], "doc/man/man7/EVP_KDF-KB.7" => [ "doc/man7/EVP_KDF-KB.pod" ], @@ -6364,6 +7227,9 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-PKCS12KDF.7" => [ "doc/man7/EVP_KDF-PKCS12KDF.pod" ], + "doc/man/man7/EVP_KDF-PVKKDF.7" => [ + "doc/man7/EVP_KDF-PVKKDF.pod" + ], "doc/man/man7/EVP_KDF-SCRYPT.7" => [ "doc/man7/EVP_KDF-SCRYPT.pod" ], @@ -6388,9 +7254,18 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-X963.7" => [ "doc/man7/EVP_KDF-X963.pod" ], + "doc/man/man7/EVP_KEM-EC.7" => [ + "doc/man7/EVP_KEM-EC.pod" + ], + "doc/man/man7/EVP_KEM-ML-KEM.7" => [ + "doc/man7/EVP_KEM-ML-KEM.pod" + ], "doc/man/man7/EVP_KEM-RSA.7" => [ "doc/man7/EVP_KEM-RSA.pod" ], + "doc/man/man7/EVP_KEM-X25519.7" => [ + "doc/man7/EVP_KEM-X25519.pod" + ], "doc/man/man7/EVP_KEYEXCH-DH.7" => [ "doc/man7/EVP_KEYEXCH-DH.pod" ], @@ -6424,6 +7299,9 @@ our %unified_info = ( "doc/man/man7/EVP_MD-BLAKE2.7" => [ "doc/man7/EVP_MD-BLAKE2.pod" ], + "doc/man/man7/EVP_MD-KECCAK.7" => [ + "doc/man7/EVP_MD-KECCAK.pod" + ], "doc/man/man7/EVP_MD-MD2.7" => [ "doc/man7/EVP_MD-MD2.pod" ], @@ -6481,15 +7359,27 @@ our %unified_info = ( "doc/man/man7/EVP_PKEY-HMAC.7" => [ "doc/man7/EVP_PKEY-HMAC.pod" ], + "doc/man/man7/EVP_PKEY-ML-DSA.7" => [ + "doc/man7/EVP_PKEY-ML-DSA.pod" + ], + "doc/man/man7/EVP_PKEY-ML-KEM.7" => [ + "doc/man7/EVP_PKEY-ML-KEM.pod" + ], "doc/man/man7/EVP_PKEY-RSA.7" => [ "doc/man7/EVP_PKEY-RSA.pod" ], + "doc/man/man7/EVP_PKEY-SLH-DSA.7" => [ + "doc/man7/EVP_PKEY-SLH-DSA.pod" + ], "doc/man/man7/EVP_PKEY-SM2.7" => [ "doc/man7/EVP_PKEY-SM2.pod" ], "doc/man/man7/EVP_PKEY-X25519.7" => [ "doc/man7/EVP_PKEY-X25519.pod" ], + "doc/man/man7/EVP_RAND-CRNG-TEST.7" => [ + "doc/man7/EVP_RAND-CRNG-TEST.pod" + ], "doc/man/man7/EVP_RAND-CTR-DRBG.7" => [ "doc/man7/EVP_RAND-CTR-DRBG.pod" ], @@ -6499,6 +7389,9 @@ our %unified_info = ( "doc/man/man7/EVP_RAND-HMAC-DRBG.7" => [ "doc/man7/EVP_RAND-HMAC-DRBG.pod" ], + "doc/man/man7/EVP_RAND-JITTER.7" => [ + "doc/man7/EVP_RAND-JITTER.pod" + ], "doc/man/man7/EVP_RAND-SEED-SRC.7" => [ "doc/man7/EVP_RAND-SEED-SRC.pod" ], @@ -6520,9 +7413,15 @@ our %unified_info = ( "doc/man/man7/EVP_SIGNATURE-HMAC.7" => [ "doc/man7/EVP_SIGNATURE-HMAC.pod" ], + "doc/man/man7/EVP_SIGNATURE-ML-DSA.7" => [ + "doc/man7/EVP_SIGNATURE-ML-DSA.pod" + ], "doc/man/man7/EVP_SIGNATURE-RSA.7" => [ "doc/man7/EVP_SIGNATURE-RSA.pod" ], + "doc/man/man7/EVP_SIGNATURE-SLH-DSA.7" => [ + "doc/man7/EVP_SIGNATURE-SLH-DSA.pod" + ], "doc/man/man7/OSSL_PROVIDER-FIPS.7" => [ "doc/man7/OSSL_PROVIDER-FIPS.pod" ], @@ -6538,6 +7437,9 @@ our %unified_info = ( "doc/man/man7/OSSL_PROVIDER-null.7" => [ "doc/man7/OSSL_PROVIDER-null.pod" ], + "doc/man/man7/OSSL_STORE-winstore.7" => [ + "doc/man7/OSSL_STORE-winstore.pod" + ], "doc/man/man7/RAND.7" => [ "doc/man7/RAND.pod" ], @@ -6550,9 +7452,6 @@ our %unified_info = ( "doc/man/man7/bio.7" => [ "doc/man7/bio.pod" ], - "doc/man/man7/crypto.7" => [ - "doc/man7/crypto.pod" - ], "doc/man/man7/ct.7" => [ "doc/man7/ct.pod" ], @@ -6583,9 +7482,6 @@ our %unified_info = ( "doc/man/man7/life_cycle-rand.7" => [ "doc/man7/life_cycle-rand.pod" ], - "doc/man/man7/migration_guide.7" => [ - "doc/man7/migration_guide.pod" - ], "doc/man/man7/openssl-core.h.7" => [ "doc/man7/openssl-core.h.pod" ], @@ -6601,12 +7497,66 @@ our %unified_info = ( "doc/man/man7/openssl-glossary.7" => [ "doc/man7/openssl-glossary.pod" ], + "doc/man/man7/openssl-qlog.7" => [ + "doc/man7/openssl-qlog.pod" + ], + "doc/man/man7/openssl-quic-concurrency.7" => [ + "doc/man7/openssl-quic-concurrency.pod" + ], + "doc/man/man7/openssl-quic.7" => [ + "doc/man7/openssl-quic.pod" + ], "doc/man/man7/openssl-threads.7" => [ "doc/man7/openssl-threads.pod" ], "doc/man/man7/openssl_user_macros.7" => [ "doc/man7/openssl_user_macros.pod" ], + "doc/man/man7/ossl-guide-introduction.7" => [ + "doc/man7/ossl-guide-introduction.pod" + ], + "doc/man/man7/ossl-guide-libcrypto-introduction.7" => [ + "doc/man7/ossl-guide-libcrypto-introduction.pod" + ], + "doc/man/man7/ossl-guide-libraries-introduction.7" => [ + "doc/man7/ossl-guide-libraries-introduction.pod" + ], + "doc/man/man7/ossl-guide-libssl-introduction.7" => [ + "doc/man7/ossl-guide-libssl-introduction.pod" + ], + "doc/man/man7/ossl-guide-migration.7" => [ + "doc/man7/ossl-guide-migration.pod" + ], + "doc/man/man7/ossl-guide-quic-client-block.7" => [ + "doc/man7/ossl-guide-quic-client-block.pod" + ], + "doc/man/man7/ossl-guide-quic-client-non-block.7" => [ + "doc/man7/ossl-guide-quic-client-non-block.pod" + ], + "doc/man/man7/ossl-guide-quic-introduction.7" => [ + "doc/man7/ossl-guide-quic-introduction.pod" + ], + "doc/man/man7/ossl-guide-quic-multi-stream.7" => [ + "doc/man7/ossl-guide-quic-multi-stream.pod" + ], + "doc/man/man7/ossl-guide-quic-server-block.7" => [ + "doc/man7/ossl-guide-quic-server-block.pod" + ], + "doc/man/man7/ossl-guide-quic-server-non-block.7" => [ + "doc/man7/ossl-guide-quic-server-non-block.pod" + ], + "doc/man/man7/ossl-guide-tls-client-block.7" => [ + "doc/man7/ossl-guide-tls-client-block.pod" + ], + "doc/man/man7/ossl-guide-tls-client-non-block.7" => [ + "doc/man7/ossl-guide-tls-client-non-block.pod" + ], + "doc/man/man7/ossl-guide-tls-introduction.7" => [ + "doc/man7/ossl-guide-tls-introduction.pod" + ], + "doc/man/man7/ossl-guide-tls-server-block.7" => [ + "doc/man7/ossl-guide-tls-server-block.pod" + ], "doc/man/man7/ossl_store-file.7" => [ "doc/man7/ossl_store-file.pod" ], @@ -6661,6 +7611,9 @@ our %unified_info = ( "doc/man/man7/provider-signature.7" => [ "doc/man7/provider-signature.pod" ], + "doc/man/man7/provider-skeymgmt.7" => [ + "doc/man7/provider-skeymgmt.pod" + ], "doc/man/man7/provider-storemgmt.7" => [ "doc/man7/provider-storemgmt.pod" ], @@ -6670,9 +7623,6 @@ our %unified_info = ( "doc/man/man7/proxy-certificates.7" => [ "doc/man7/proxy-certificates.pod" ], - "doc/man/man7/ssl.7" => [ - "doc/man7/ssl.pod" - ], "doc/man/man7/x509.7" => [ "doc/man7/x509.pod" ], @@ -6852,6 +7802,10 @@ our %unified_info = ( "doc/man1/openssl-sess_id.pod.in", "doc/perlvars.pm" ], + "doc/man1/openssl-skeyutl.pod" => [ + "doc/man1/openssl-skeyutl.pod.in", + "doc/perlvars.pm" + ], "doc/man1/openssl-smime.pod" => [ "doc/man1/openssl-smime.pod.in", "doc/perlvars.pm" @@ -6891,6 +7845,27 @@ our %unified_info = ( "doc/man7/openssl_user_macros.pod" => [ "doc/man7/openssl_user_macros.pod.in" ], + "exporters/OpenSSLConfig.cmake" => [ + "installdata.pm" + ], + "exporters/OpenSSLConfigVersion.cmake" => [ + "exporters/OpenSSLConfig.cmake", + "installdata.pm" + ], + "exporters/libcrypto.pc" => [ + "installdata.pm" + ], + "exporters/libssl.pc" => [ + "installdata.pm" + ], + "exporters/openssl.pc" => [ + "exporters/libcrypto.pc", + "exporters/libssl.pc", + "installdata.pm" + ], + "fuzz/acert-test" => [ + "libcrypto" + ], "fuzz/asn1-test" => [ "libcrypto", "libssl" @@ -6923,16 +7898,92 @@ our %unified_info = ( "fuzz/ct-test" => [ "libcrypto" ], + "fuzz/decoder-test" => [ + "libcrypto" + ], + "fuzz/dtlsclient-test" => [ + "libcrypto", + "libssl" + ], + "fuzz/dtlsserver-test" => [ + "libcrypto", + "libssl" + ], + "fuzz/hashtable-test" => [ + "libcrypto.a" + ], + "fuzz/ml-dsa-test" => [ + "libcrypto.a" + ], + "fuzz/ml-kem-test" => [ + "libcrypto.a" + ], + "fuzz/pem-test" => [ + "libcrypto.a" + ], + "fuzz/provider-test" => [ + "libcrypto" + ], + "fuzz/punycode-test" => [ + "libcrypto.a" + ], + "fuzz/quic-client-test" => [ + "libcrypto.a", + "libssl.a" + ], + "fuzz/quic-lcidm-test" => [ + "libcrypto.a", + "libssl.a" + ], + "fuzz/quic-rcidm-test" => [ + "libcrypto.a", + "libssl.a" + ], + "fuzz/quic-server-test" => [ + "libcrypto.a", + "libssl.a" + ], + "fuzz/quic-srtm-test" => [ + "libcrypto.a", + "libssl.a" + ], "fuzz/server-test" => [ "libcrypto", "libssl" ], + "fuzz/slh-dsa-test" => [ + "libcrypto.a" + ], + "fuzz/smime-test" => [ + "libcrypto", + "libssl" + ], + "fuzz/v3name-test" => [ + "libcrypto.a" + ], "fuzz/x509-test" => [ "libcrypto" ], + "include/internal/param_names.h" => [ + "util/perl|OpenSSL/paramnames.pm" + ], + "include/openssl/core_names.h" => [ + "util/perl|OpenSSL/paramnames.pm" + ], + "libcrypto.pc" => [ + "builddata.pm" + ], "libssl" => [ "libcrypto" ], + "libssl.pc" => [ + "builddata.pm" + ], + "openssl.pc" => [ + "builddata.pm", + "libcrypto.pc", + "libssl.pc" + ], "providers/common/der/der_digests_gen.c" => [ "providers/common/der/DIGESTS.asn1", "providers/common/der/NIST.asn1", @@ -6950,11 +8001,19 @@ our %unified_info = ( "providers/common/der/ECX.asn1", "providers/common/der/oids_to_c.pm" ], + "providers/common/der/der_ml_dsa_gen.c" => [ + "providers/common/der/ML_DSA.asn1", + "providers/common/der/oids_to_c.pm" + ], "providers/common/der/der_rsa_gen.c" => [ "providers/common/der/NIST.asn1", "providers/common/der/RSA.asn1", "providers/common/der/oids_to_c.pm" ], + "providers/common/der/der_slh_dsa_gen.c" => [ + "providers/common/der/SLH_DSA.asn1", + "providers/common/der/oids_to_c.pm" + ], "providers/common/der/der_sm2_gen.c" => [ "providers/common/der/SM2.asn1", "providers/common/der/oids_to_c.pm" @@ -6994,6 +8053,12 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ecx_key.o" => [ "providers/common/include/prov/der_ecx.h" ], + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o" => [ + "providers/common/include/prov/der_ml_dsa.h" + ], + "providers/common/der/libcommon-lib-der_ml_dsa_key.o" => [ + "providers/common/include/prov/der_ml_dsa.h" + ], "providers/common/der/libcommon-lib-der_rsa_gen.o" => [ "providers/common/include/prov/der_rsa.h" ], @@ -7001,6 +8066,12 @@ our %unified_info = ( "providers/common/include/prov/der_digests.h", "providers/common/include/prov/der_rsa.h" ], + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o" => [ + "providers/common/include/prov/der_slh_dsa.h" + ], + "providers/common/der/libcommon-lib-der_slh_dsa_key.o" => [ + "providers/common/include/prov/der_slh_dsa.h" + ], "providers/common/der/libcommon-lib-der_wrap_gen.o" => [ "providers/common/include/prov/der_wrap.h" ], @@ -7040,11 +8111,19 @@ our %unified_info = ( "providers/common/der/ECX.asn1", "providers/common/der/oids_to_c.pm" ], + "providers/common/include/prov/der_ml_dsa.h" => [ + "providers/common/der/ML_DSA.asn1", + "providers/common/der/oids_to_c.pm" + ], "providers/common/include/prov/der_rsa.h" => [ "providers/common/der/NIST.asn1", "providers/common/der/RSA.asn1", "providers/common/der/oids_to_c.pm" ], + "providers/common/include/prov/der_slh_dsa.h" => [ + "providers/common/der/SLH_DSA.asn1", + "providers/common/der/oids_to_c.pm" + ], "providers/common/include/prov/der_sm2.h" => [ "providers/common/der/SM2.asn1", "providers/common/der/oids_to_c.pm" @@ -7077,9 +8156,15 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-eddsa_sig.o" => [ "providers/common/include/prov/der_ecx.h" ], + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o" => [ + "providers/common/include/prov/der_ml_dsa.h" + ], "providers/implementations/signature/libdefault-lib-rsa_sig.o" => [ "providers/common/include/prov/der_rsa.h" ], + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o" => [ + "providers/common/include/prov/der_slh_dsa.h" + ], "providers/implementations/signature/libdefault-lib-sm2_sig.o" => [ "providers/common/include/prov/der_sm2.h" ], @@ -7092,9 +8177,15 @@ our %unified_info = ( "providers/implementations/signature/libfips-lib-eddsa_sig.o" => [ "providers/common/include/prov/der_ecx.h" ], + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o" => [ + "providers/common/include/prov/der_ml_dsa.h" + ], "providers/implementations/signature/libfips-lib-rsa_sig.o" => [ "providers/common/include/prov/der_rsa.h" ], + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o" => [ + "providers/common/include/prov/der_slh_dsa.h" + ], "providers/legacy" => [ "libcrypto", "providers/liblegacy.a" @@ -7172,6 +8263,14 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/bio_addr_test" => [ + "libcrypto", + "test/libtestutil.a" + ], + "test/bio_base64_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/bio_callback_test" => [ "libcrypto", "test/libtestutil.a" @@ -7180,6 +8279,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/bio_dgram_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/bio_enc_test" => [ "libcrypto", "test/libtestutil.a" @@ -7188,6 +8291,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/bio_meth_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/bio_prefix_text" => [ "libcrypto", "test/libtestutil.a" @@ -7200,6 +8307,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/bio_tfo_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/bioprinttest" => [ "libcrypto", "test/libtestutil.a" @@ -7212,6 +8323,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/build_wincrypt_test" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_aes" => [ "libcrypto", "libssl" @@ -7232,6 +8347,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_byteorder" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_camellia" => [ "libcrypto", "libssl" @@ -7264,10 +8383,6 @@ our %unified_info = ( "libcrypto", "libssl" ], - "test/buildtest_c_core_names" => [ - "libcrypto", - "libssl" - ], "test/buildtest_c_core_object" => [ "libcrypto", "libssl" @@ -7300,6 +8415,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_e_ostime" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_ebcdic" => [ "libcrypto", "libssl" @@ -7336,6 +8455,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_hpke" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_http" => [ "libcrypto", "libssl" @@ -7344,6 +8467,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_indicator" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_kdf" => [ "libcrypto", "libssl" @@ -7364,6 +8491,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_ml_kem" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_modes" => [ "libcrypto", "libssl" @@ -7404,6 +8535,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_quic" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_rand" => [ "libcrypto", "libssl" @@ -7460,6 +8595,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_thread" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_tls1" => [ "libcrypto", "libssl" @@ -7480,10 +8619,23 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/byteorder_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], + "test/ca_internals_test" => [ + "libssl", + "test/libtestutil.a" + ], "test/casttest" => [ "libcrypto", "test/libtestutil.a" ], + "test/cert_comp_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], "test/chacha_internal_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -7597,7 +8749,11 @@ our %unified_info = ( "libssl", "test/libtestutil.a" ], - "test/defltfips_test" => [ + "test/decoder_propq_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], + "test/defltfips_test" => [ "libcrypto", "test/libtestutil.a" ], @@ -7653,6 +8809,8 @@ our %unified_info = ( ], "test/endecode_test" => [ "libcrypto.a", + "providers/libcommon.a", + "providers/liblegacy.a", "test/libtestutil.a" ], "test/endecoder_legacy_test" => [ @@ -7696,6 +8854,10 @@ our %unified_info = ( "test/evp_pkey_ctx_new_from_name" => [ "libcrypto" ], + "test/evp_pkey_dhkem_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/evp_pkey_dparams_test" => [ "libcrypto", "test/libtestutil.a" @@ -7704,10 +8866,18 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/evp_skey_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/evp_test" => [ "libcrypto", "test/libtestutil.a" ], + "test/evp_xof_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/exdatatest" => [ "libcrypto", "test/libtestutil.a" @@ -7746,6 +8916,10 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/hpke_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/http_test" => [ "libcrypto", "test/libtestutil.a" @@ -7758,17 +8932,25 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/json_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], "test/keymgmt_internal_test" => [ "libcrypto.a", "test/libtestutil.a" ], "test/lhash_test" => [ - "libcrypto", + "libcrypto.a", "test/libtestutil.a" ], "test/libtestutil.a" => [ "libcrypto" ], + "test/list_test" => [ + "test/libtestutil.a" + ], "test/localetest" => [ "libcrypto", "test/libtestutil.a" @@ -7781,10 +8963,26 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/membio_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/memleaktest" => [ "libcrypto", "test/libtestutil.a" ], + "test/ml_dsa_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], + "test/ml_kem_evp_extra_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], + "test/ml_kem_internal_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/modes_internal_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -7809,6 +9007,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/pairwise_fail_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/param_build_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -7841,6 +9043,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/pkcs12_api_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/pkcs12_format_test" => [ "libcrypto", "test/libtestutil.a" @@ -7861,6 +9067,11 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/priority_queue_test" => [ + "libcrypto", + "libssl.a", + "test/libtestutil.a" + ], "test/property_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -7873,6 +9084,10 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/provider_default_search_path_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/provider_fallback_test" => [ "libcrypto", "test/libtestutil.a" @@ -7897,12 +9112,122 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/quic_ackm_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_cc_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_cfq_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_client_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_fc_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_fifd_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_lcidm_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_multistream_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_newcid_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_qlog_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_radix_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_rcidm_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_record_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_srt_gen_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_srtm_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_stream_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_tserver_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_txp_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_txpim_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_wire_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quicapitest" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quicfaultstest" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], "test/rand_status_test" => [ "libcrypto", "test/libtestutil.a" ], "test/rand_test" => [ - "libcrypto", + "libcrypto.a", "test/libtestutil.a" ], "test/rc2test" => [ @@ -7917,7 +9242,7 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], - "test/rdrand_sanitytest" => [ + "test/rdcpu_sanitytest" => [ "libcrypto.a", "test/libtestutil.a" ], @@ -7926,6 +9251,11 @@ our %unified_info = ( "libssl", "test/libtestutil.a" ], + "test/rpktest" => [ + "libcrypto", + "libssl", + "test/libtestutil.a" + ], "test/rsa_mp_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -7938,10 +9268,18 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], - "test/sanitytest" => [ + "test/rsa_x931_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], + "test/safe_math_test" => [ "libcrypto", "test/libtestutil.a" ], + "test/sanitytest" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/secmemtest" => [ "libcrypto", "test/libtestutil.a" @@ -7959,6 +9297,10 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/slh_dsa_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/sm2_internal_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -7988,6 +9330,11 @@ our %unified_info = ( "libssl", "test/libtestutil.a" ], + "test/ssl_handshake_rtt_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], "test/ssl_old_test" => [ "libcrypto.a", "libssl.a", @@ -8004,8 +9351,8 @@ our %unified_info = ( "test/libtestutil.a" ], "test/sslapitest" => [ - "libcrypto", - "libssl", + "libcrypto.a", + "libssl.a", "test/libtestutil.a" ], "test/sslbuffertest" => [ @@ -8022,6 +9369,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/strtoultest" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/sysdefaulttest" => [ "libcrypto", "libssl", @@ -8031,8 +9382,12 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/threadpool_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/threadstest" => [ - "libcrypto", + "libcrypto.a", "test/libtestutil.a" ], "test/threadstest_fips" => [ @@ -8043,6 +9398,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/time_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/tls13ccstest" => [ "libcrypto", "libssl", @@ -8053,6 +9412,11 @@ our %unified_info = ( "libssl.a", "test/libtestutil.a" ], + "test/tls13groupselection_test" => [ + "libcrypto", + "libssl", + "test/libtestutil.a" + ], "test/trace_api_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -8090,6 +9454,10 @@ our %unified_info = ( "libssl.a", "test/libtestutil.a" ], + "test/x509_acert_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/x509_check_cert_pkey_test" => [ "libcrypto", "test/libtestutil.a" @@ -8102,6 +9470,18 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/x509_load_cert_file_test" => [ + "libcrypto", + "test/libtestutil.a" + ], + "test/x509_req_test" => [ + "libcrypto", + "test/libtestutil.a" + ], + "test/x509_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/x509_time_test" => [ "libcrypto", "test/libtestutil.a" @@ -8116,9 +9496,13 @@ our %unified_info = ( }, "dirinfo" => { "apps" => { + "deps" => [ + "apps/ca_internals_test-bin-ca.o" + ], "products" => { "bin" => [ - "apps/openssl" + "apps/openssl", + "test/ca_internals_test" ], "script" => [ "apps/CA.pl", @@ -8129,6 +9513,14 @@ our %unified_info = ( "apps/lib" => { "deps" => [ "apps/lib/openssl-bin-cmp_mock_srv.o", + "apps/lib/ca_internals_test-bin-app_libctx.o", + "apps/lib/ca_internals_test-bin-app_provider.o", + "apps/lib/ca_internals_test-bin-app_rand.o", + "apps/lib/ca_internals_test-bin-app_x509.o", + "apps/lib/ca_internals_test-bin-apps.o", + "apps/lib/ca_internals_test-bin-apps_ui.o", + "apps/lib/ca_internals_test-bin-engine.o", + "apps/lib/ca_internals_test-bin-fmt.o", "apps/lib/cmp_client_test-bin-cmp_mock_srv.o", "apps/lib/uitest-bin-apps_ui.o", "apps/lib/libapps-lib-app_libctx.o", @@ -8137,12 +9529,14 @@ our %unified_info = ( "apps/lib/libapps-lib-app_rand.o", "apps/lib/libapps-lib-app_x509.o", "apps/lib/libapps-lib-apps.o", + "apps/lib/libapps-lib-apps_opt_printf.o", "apps/lib/libapps-lib-apps_ui.o", "apps/lib/libapps-lib-columns.o", "apps/lib/libapps-lib-engine.o", "apps/lib/libapps-lib-engine_loader.o", "apps/lib/libapps-lib-fmt.o", "apps/lib/libapps-lib-http_server.o", + "apps/lib/libapps-lib-log.o", "apps/lib/libapps-lib-names.o", "apps/lib/libapps-lib-opt.o", "apps/lib/libapps-lib-s_cb.o", @@ -8153,6 +9547,7 @@ our %unified_info = ( "products" => { "bin" => [ "apps/openssl", + "test/ca_internals_test", "test/cmp_client_test", "test/uitest" ], @@ -8164,8 +9559,12 @@ our %unified_info = ( }, "crypto" => { "deps" => [ + "crypto/asn1_time_test-bin-ctype.o", + "crypto/ca_internals_test-bin-ctype.o", + "crypto/packettest-bin-quic_vlint.o", "crypto/libcrypto-lib-asn1_dsa.o", "crypto/libcrypto-lib-bsearch.o", + "crypto/libcrypto-lib-comp_methods.o", "crypto/libcrypto-lib-context.o", "crypto/libcrypto-lib-core_algorithm.o", "crypto/libcrypto-lib-core_fetch.o", @@ -8175,10 +9574,13 @@ our %unified_info = ( "crypto/libcrypto-lib-cryptlib.o", "crypto/libcrypto-lib-ctype.o", "crypto/libcrypto-lib-cversion.o", + "crypto/libcrypto-lib-defaults.o", "crypto/libcrypto-lib-der_writer.o", + "crypto/libcrypto-lib-deterministic_nonce.o", "crypto/libcrypto-lib-ebcdic.o", "crypto/libcrypto-lib-ex_data.o", "crypto/libcrypto-lib-getenv.o", + "crypto/libcrypto-lib-indicator_core.o", "crypto/libcrypto-lib-info.o", "crypto/libcrypto-lib-init.o", "crypto/libcrypto-lib-initthread.o", @@ -8196,6 +9598,7 @@ our %unified_info = ( "crypto/libcrypto-lib-params.o", "crypto/libcrypto-lib-params_dup.o", "crypto/libcrypto-lib-params_from_text.o", + "crypto/libcrypto-lib-params_idx.o", "crypto/libcrypto-lib-passphrase.o", "crypto/libcrypto-lib-provider.o", "crypto/libcrypto-lib-provider_child.o", @@ -8203,12 +9606,16 @@ our %unified_info = ( "crypto/libcrypto-lib-provider_core.o", "crypto/libcrypto-lib-provider_predefined.o", "crypto/libcrypto-lib-punycode.o", + "crypto/libcrypto-lib-quic_vlint.o", "crypto/libcrypto-lib-self_test_core.o", + "crypto/libcrypto-lib-sleep.o", "crypto/libcrypto-lib-sparse_array.o", + "crypto/libcrypto-lib-ssl_err.o", "crypto/libcrypto-lib-threads_lib.o", "crypto/libcrypto-lib-threads_none.o", "crypto/libcrypto-lib-threads_pthread.o", "crypto/libcrypto-lib-threads_win.o", + "crypto/libcrypto-lib-time.o", "crypto/libcrypto-lib-trace.o", "crypto/libcrypto-lib-uid.o", "crypto/libfips-lib-asn1_dsa.o", @@ -8231,6 +9638,7 @@ our %unified_info = ( "crypto/libfips-lib-params.o", "crypto/libfips-lib-params_dup.o", "crypto/libfips-lib-params_from_text.o", + "crypto/libfips-lib-params_idx.o", "crypto/libfips-lib-provider_core.o", "crypto/libfips-lib-provider_predefined.o", "crypto/libfips-lib-self_test_core.o", @@ -8238,9 +9646,15 @@ our %unified_info = ( "crypto/libfips-lib-threads_lib.o", "crypto/libfips-lib-threads_none.o", "crypto/libfips-lib-threads_pthread.o", - "crypto/libfips-lib-threads_win.o" + "crypto/libfips-lib-threads_win.o", + "crypto/libfips-lib-time.o" ], "products" => { + "bin" => [ + "test/asn1_time_test", + "test/ca_internals_test", + "test/packettest" + ], "lib" => [ "libcrypto", "providers/libfips.a" @@ -8281,6 +9695,8 @@ our %unified_info = ( }, "crypto/asn1" => { "deps" => [ + "crypto/asn1/asn1_time_test-bin-a_time.o", + "crypto/asn1/ca_internals_test-bin-a_time.o", "crypto/asn1/libcrypto-lib-a_bitstr.o", "crypto/asn1/libcrypto-lib-a_d2i_fp.o", "crypto/asn1/libcrypto-lib-a_digest.o", @@ -8347,6 +9763,10 @@ our %unified_info = ( "crypto/asn1/libcrypto-lib-x_val.o" ], "products" => { + "bin" => [ + "test/asn1_time_test", + "test/ca_internals_test" + ], "lib" => [ "libcrypto" ] @@ -8412,6 +9832,7 @@ our %unified_info = ( "crypto/bio/libcrypto-lib-bss_conn.o", "crypto/bio/libcrypto-lib-bss_core.o", "crypto/bio/libcrypto-lib-bss_dgram.o", + "crypto/bio/libcrypto-lib-bss_dgram_pair.o", "crypto/bio/libcrypto-lib-bss_fd.o", "crypto/bio/libcrypto-lib-bss_file.o", "crypto/bio/libcrypto-lib-bss_log.o", @@ -8568,6 +9989,7 @@ our %unified_info = ( "crypto/cmp/libcrypto-lib-cmp_client.o", "crypto/cmp/libcrypto-lib-cmp_ctx.o", "crypto/cmp/libcrypto-lib-cmp_err.o", + "crypto/cmp/libcrypto-lib-cmp_genm.o", "crypto/cmp/libcrypto-lib-cmp_hdr.o", "crypto/cmp/libcrypto-lib-cmp_http.o", "crypto/cmp/libcrypto-lib-cmp_msg.o", @@ -8935,7 +10357,9 @@ our %unified_info = ( "crypto/err/libcrypto-lib-err_all.o", "crypto/err/libcrypto-lib-err_all_legacy.o", "crypto/err/libcrypto-lib-err_blocks.o", - "crypto/err/libcrypto-lib-err_prn.o" + "crypto/err/libcrypto-lib-err_mark.o", + "crypto/err/libcrypto-lib-err_prn.o", + "crypto/err/libcrypto-lib-err_save.o" ], "products" => { "lib" => [ @@ -9036,7 +10460,9 @@ our %unified_info = ( "crypto/evp/libcrypto-lib-pmeth_check.o", "crypto/evp/libcrypto-lib-pmeth_gn.o", "crypto/evp/libcrypto-lib-pmeth_lib.o", + "crypto/evp/libcrypto-lib-s_lib.o", "crypto/evp/libcrypto-lib-signature.o", + "crypto/evp/libcrypto-lib-skeymgmt_meth.o", "crypto/evp/libfips-lib-asymcipher.o", "crypto/evp/libfips-lib-dh_support.o", "crypto/evp/libfips-lib-digest.o", @@ -9052,14 +10478,15 @@ our %unified_info = ( "crypto/evp/libfips-lib-kem.o", "crypto/evp/libfips-lib-keymgmt_lib.o", "crypto/evp/libfips-lib-keymgmt_meth.o", - "crypto/evp/libfips-lib-m_sigver.o", "crypto/evp/libfips-lib-mac_lib.o", "crypto/evp/libfips-lib-mac_meth.o", "crypto/evp/libfips-lib-p_lib.o", "crypto/evp/libfips-lib-pmeth_check.o", "crypto/evp/libfips-lib-pmeth_gn.o", "crypto/evp/libfips-lib-pmeth_lib.o", - "crypto/evp/libfips-lib-signature.o" + "crypto/evp/libfips-lib-s_lib.o", + "crypto/evp/libfips-lib-signature.o", + "crypto/evp/libfips-lib-skeymgmt_meth.o" ], "products" => { "lib" => [ @@ -9092,6 +10519,20 @@ our %unified_info = ( ] } }, + "crypto/hashtable" => { + "deps" => [ + "crypto/hashtable/libcrypto-lib-hashfunc.o", + "crypto/hashtable/libcrypto-lib-hashtable.o", + "crypto/hashtable/libfips-lib-hashfunc.o", + "crypto/hashtable/libfips-lib-hashtable.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, "crypto/hmac" => { "deps" => [ "crypto/hmac/libcrypto-lib-hmac.o", @@ -9104,6 +10545,17 @@ our %unified_info = ( ] } }, + "crypto/hpke" => { + "deps" => [ + "crypto/hpke/libcrypto-lib-hpke.o", + "crypto/hpke/libcrypto-lib-hpke_util.o" + ], + "products" => { + "lib" => [ + "libcrypto" + ] + } + }, "crypto/http" => { "deps" => [ "crypto/http/libcrypto-lib-http_client.o", @@ -9187,6 +10639,44 @@ our %unified_info = ( ] } }, + "crypto/ml_dsa" => { + "deps" => [ + "crypto/ml_dsa/libcrypto-lib-ml_dsa_encoders.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key_compress.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_matrix.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_ntt.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_params.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sample.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sign.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_encoders.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_key.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_key_compress.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_matrix.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_ntt.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_params.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_sample.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_sign.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, + "crypto/ml_kem" => { + "deps" => [ + "crypto/ml_kem/libcrypto-lib-ml_kem.o", + "crypto/ml_kem/libfips-lib-ml_kem.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, "crypto/modes" => { "deps" => [ "crypto/modes/libcrypto-lib-cbc128.o", @@ -9200,6 +10690,7 @@ our %unified_info = ( "crypto/modes/libcrypto-lib-siv128.o", "crypto/modes/libcrypto-lib-wrap128.o", "crypto/modes/libcrypto-lib-xts128.o", + "crypto/modes/libcrypto-lib-xts128gb.o", "crypto/modes/libfips-lib-cbc128.o", "crypto/modes/libfips-lib-ccm128.o", "crypto/modes/libfips-lib-cfb128.o", @@ -9207,7 +10698,8 @@ our %unified_info = ( "crypto/modes/libfips-lib-gcm128.o", "crypto/modes/libfips-lib-ofb128.o", "crypto/modes/libfips-lib-wrap128.o", - "crypto/modes/libfips-lib-xts128.o" + "crypto/modes/libfips-lib-xts128.o", + "crypto/modes/libfips-lib-xts128gb.o" ], "products" => { "lib" => [ @@ -9350,6 +10842,7 @@ our %unified_info = ( "crypto/rand/libcrypto-lib-rand_lib.o", "crypto/rand/libcrypto-lib-rand_meth.o", "crypto/rand/libcrypto-lib-rand_pool.o", + "crypto/rand/libcrypto-lib-rand_uniform.o", "crypto/rand/libcrypto-lib-randfile.o", "crypto/rand/libfips-lib-rand_lib.o" ], @@ -9494,6 +10987,36 @@ our %unified_info = ( ] } }, + "crypto/slh_dsa" => { + "deps" => [ + "crypto/slh_dsa/libcrypto-lib-slh_adrs.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa_hash_ctx.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa_key.o", + "crypto/slh_dsa/libcrypto-lib-slh_fors.o", + "crypto/slh_dsa/libcrypto-lib-slh_hash.o", + "crypto/slh_dsa/libcrypto-lib-slh_hypertree.o", + "crypto/slh_dsa/libcrypto-lib-slh_params.o", + "crypto/slh_dsa/libcrypto-lib-slh_wots.o", + "crypto/slh_dsa/libcrypto-lib-slh_xmss.o", + "crypto/slh_dsa/libfips-lib-slh_adrs.o", + "crypto/slh_dsa/libfips-lib-slh_dsa.o", + "crypto/slh_dsa/libfips-lib-slh_dsa_hash_ctx.o", + "crypto/slh_dsa/libfips-lib-slh_dsa_key.o", + "crypto/slh_dsa/libfips-lib-slh_fors.o", + "crypto/slh_dsa/libfips-lib-slh_hash.o", + "crypto/slh_dsa/libfips-lib-slh_hypertree.o", + "crypto/slh_dsa/libfips-lib-slh_params.o", + "crypto/slh_dsa/libfips-lib-slh_wots.o", + "crypto/slh_dsa/libfips-lib-slh_xmss.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, "crypto/sm2" => { "deps" => [ "crypto/sm2/libcrypto-lib-sm2_crypt.o", @@ -9567,6 +11090,38 @@ our %unified_info = ( ] } }, + "crypto/thread" => { + "deps" => [ + "crypto/thread/libcrypto-lib-api.o", + "crypto/thread/libcrypto-lib-arch.o", + "crypto/thread/libcrypto-lib-internal.o", + "crypto/thread/libfips-lib-api.o", + "crypto/thread/libfips-lib-arch.o", + "crypto/thread/libfips-lib-internal.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, + "crypto/thread/arch" => { + "deps" => [ + "crypto/thread/arch/libcrypto-lib-thread_none.o", + "crypto/thread/arch/libcrypto-lib-thread_posix.o", + "crypto/thread/arch/libcrypto-lib-thread_win.o", + "crypto/thread/arch/libfips-lib-thread_none.o", + "crypto/thread/arch/libfips-lib-thread_posix.o", + "crypto/thread/arch/libfips-lib-thread_win.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, "crypto/ts" => { "deps" => [ "crypto/ts/libcrypto-lib-ts_asn1.o", @@ -9633,14 +11188,22 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-pcy_map.o", "crypto/x509/libcrypto-lib-pcy_node.o", "crypto/x509/libcrypto-lib-pcy_tree.o", + "crypto/x509/libcrypto-lib-t_acert.o", "crypto/x509/libcrypto-lib-t_crl.o", "crypto/x509/libcrypto-lib-t_req.o", "crypto/x509/libcrypto-lib-t_x509.o", + "crypto/x509/libcrypto-lib-v3_aaa.o", + "crypto/x509/libcrypto-lib-v3_ac_tgt.o", "crypto/x509/libcrypto-lib-v3_addr.o", "crypto/x509/libcrypto-lib-v3_admis.o", "crypto/x509/libcrypto-lib-v3_akeya.o", "crypto/x509/libcrypto-lib-v3_akid.o", "crypto/x509/libcrypto-lib-v3_asid.o", + "crypto/x509/libcrypto-lib-v3_attrdesc.o", + "crypto/x509/libcrypto-lib-v3_attrmap.o", + "crypto/x509/libcrypto-lib-v3_audit_id.o", + "crypto/x509/libcrypto-lib-v3_authattid.o", + "crypto/x509/libcrypto-lib-v3_battcons.o", "crypto/x509/libcrypto-lib-v3_bcons.o", "crypto/x509/libcrypto-lib-v3_bitst.o", "crypto/x509/libcrypto-lib-v3_conf.o", @@ -9649,12 +11212,17 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_enum.o", "crypto/x509/libcrypto-lib-v3_extku.o", "crypto/x509/libcrypto-lib-v3_genn.o", + "crypto/x509/libcrypto-lib-v3_group_ac.o", "crypto/x509/libcrypto-lib-v3_ia5.o", + "crypto/x509/libcrypto-lib-v3_ind_iss.o", "crypto/x509/libcrypto-lib-v3_info.o", "crypto/x509/libcrypto-lib-v3_int.o", + "crypto/x509/libcrypto-lib-v3_iobo.o", "crypto/x509/libcrypto-lib-v3_ist.o", "crypto/x509/libcrypto-lib-v3_lib.o", "crypto/x509/libcrypto-lib-v3_ncons.o", + "crypto/x509/libcrypto-lib-v3_no_ass.o", + "crypto/x509/libcrypto-lib-v3_no_rev_avail.o", "crypto/x509/libcrypto-lib-v3_pci.o", "crypto/x509/libcrypto-lib-v3_pcia.o", "crypto/x509/libcrypto-lib-v3_pcons.o", @@ -9662,13 +11230,20 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_pmaps.o", "crypto/x509/libcrypto-lib-v3_prn.o", "crypto/x509/libcrypto-lib-v3_purp.o", + "crypto/x509/libcrypto-lib-v3_rolespec.o", "crypto/x509/libcrypto-lib-v3_san.o", + "crypto/x509/libcrypto-lib-v3_sda.o", + "crypto/x509/libcrypto-lib-v3_single_use.o", "crypto/x509/libcrypto-lib-v3_skid.o", + "crypto/x509/libcrypto-lib-v3_soa_id.o", "crypto/x509/libcrypto-lib-v3_sxnet.o", + "crypto/x509/libcrypto-lib-v3_timespec.o", "crypto/x509/libcrypto-lib-v3_tlsf.o", + "crypto/x509/libcrypto-lib-v3_usernotice.o", "crypto/x509/libcrypto-lib-v3_utf8.o", "crypto/x509/libcrypto-lib-v3_utl.o", "crypto/x509/libcrypto-lib-v3err.o", + "crypto/x509/libcrypto-lib-x509_acert.o", "crypto/x509/libcrypto-lib-x509_att.o", "crypto/x509/libcrypto-lib-x509_cmp.o", "crypto/x509/libcrypto-lib-x509_d2.o", @@ -9686,6 +11261,7 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x509_v3.o", "crypto/x509/libcrypto-lib-x509_vfy.o", "crypto/x509/libcrypto-lib-x509_vpm.o", + "crypto/x509/libcrypto-lib-x509aset.o", "crypto/x509/libcrypto-lib-x509cset.o", "crypto/x509/libcrypto-lib-x509name.o", "crypto/x509/libcrypto-lib-x509rset.o", @@ -9695,6 +11271,7 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x_attrib.o", "crypto/x509/libcrypto-lib-x_crl.o", "crypto/x509/libcrypto-lib-x_exten.o", + "crypto/x509/libcrypto-lib-x_ietfatt.o", "crypto/x509/libcrypto-lib-x_name.o", "crypto/x509/libcrypto-lib-x_pubkey.o", "crypto/x509/libcrypto-lib-x_req.o", @@ -9721,6 +11298,7 @@ our %unified_info = ( "fuzz" => { "products" => { "bin" => [ + "fuzz/acert-test", "fuzz/asn1-test", "fuzz/asn1parse-test", "fuzz/bignum-test", @@ -9731,13 +11309,31 @@ our %unified_info = ( "fuzz/conf-test", "fuzz/crl-test", "fuzz/ct-test", + "fuzz/decoder-test", + "fuzz/dtlsclient-test", + "fuzz/dtlsserver-test", + "fuzz/hashtable-test", + "fuzz/ml-dsa-test", + "fuzz/ml-kem-test", + "fuzz/pem-test", + "fuzz/provider-test", + "fuzz/punycode-test", + "fuzz/quic-client-test", + "fuzz/quic-lcidm-test", + "fuzz/quic-rcidm-test", + "fuzz/quic-server-test", + "fuzz/quic-srtm-test", "fuzz/server-test", + "fuzz/slh-dsa-test", + "fuzz/smime-test", + "fuzz/v3name-test", "fuzz/x509-test" ] } }, "providers" => { "deps" => [ + "providers/endecode_test-bin-legacyprov.o", "providers/evp_extra_test-bin-legacyprov.o", "providers/libcrypto-lib-baseprov.o", "providers/libcrypto-lib-defltprov.o", @@ -9747,6 +11343,7 @@ our %unified_info = ( ], "products" => { "bin" => [ + "test/endecode_test", "test/evp_extra_test" ], "dso" => [ @@ -9797,8 +11394,12 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ec_sig.o", "providers/common/der/libcommon-lib-der_ecx_gen.o", "providers/common/der/libcommon-lib-der_ecx_key.o", + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o", + "providers/common/der/libcommon-lib-der_ml_dsa_key.o", "providers/common/der/libcommon-lib-der_rsa_gen.o", "providers/common/der/libcommon-lib-der_rsa_key.o", + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o", + "providers/common/der/libcommon-lib-der_slh_dsa_key.o", "providers/common/der/libcommon-lib-der_wrap_gen.o", "providers/common/der/libdefault-lib-der_rsa_sig.o", "providers/common/der/libdefault-lib-der_sm2_gen.o", @@ -9817,6 +11418,7 @@ our %unified_info = ( "providers/fips" => { "deps" => [ "providers/fips/fips-dso-fips_entry.o", + "providers/fips/libfips-lib-fipsindicator.o", "providers/fips/libfips-lib-fipsprov.o", "providers/fips/libfips-lib-self_test.o", "providers/fips/libfips-lib-self_test_kats.o" @@ -9860,6 +11462,9 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_aes_ccm_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_polyval.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_ocb.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_ocb_hw.o", @@ -9884,7 +11489,13 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_cts.o", "providers/implementations/ciphers/libdefault-lib-cipher_null.o", "providers/implementations/ciphers/libdefault-lib-cipher_sm4.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_sm4_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes_common.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes_default.o", @@ -9981,7 +11592,10 @@ our %unified_info = ( "providers/implementations/encode_decode/libdefault-lib-encode_key2blob.o", "providers/implementations/encode_decode/libdefault-lib-encode_key2ms.o", "providers/implementations/encode_decode/libdefault-lib-encode_key2text.o", - "providers/implementations/encode_decode/libdefault-lib-endecoder_common.o" + "providers/implementations/encode_decode/libdefault-lib-endecoder_common.o", + "providers/implementations/encode_decode/libdefault-lib-ml_common_codecs.o", + "providers/implementations/encode_decode/libdefault-lib-ml_dsa_codecs.o", + "providers/implementations/encode_decode/libdefault-lib-ml_kem_codecs.o" ], "products" => { "lib" => [ @@ -10009,7 +11623,9 @@ our %unified_info = ( }, "providers/implementations/kdfs" => { "deps" => [ + "providers/implementations/kdfs/libdefault-lib-argon2.o", "providers/implementations/kdfs/libdefault-lib-hkdf.o", + "providers/implementations/kdfs/libdefault-lib-hmacdrbg_kdf.o", "providers/implementations/kdfs/libdefault-lib-kbkdf.o", "providers/implementations/kdfs/libdefault-lib-krb5kdf.o", "providers/implementations/kdfs/libdefault-lib-pbkdf2.o", @@ -10028,7 +11644,8 @@ our %unified_info = ( "providers/implementations/kdfs/libfips-lib-sskdf.o", "providers/implementations/kdfs/libfips-lib-tls1_prf.o", "providers/implementations/kdfs/libfips-lib-x942kdf.o", - "providers/implementations/kdfs/liblegacy-lib-pbkdf1.o" + "providers/implementations/kdfs/liblegacy-lib-pbkdf1.o", + "providers/implementations/kdfs/liblegacy-lib-pvkkdf.o" ], "products" => { "lib" => [ @@ -10040,13 +11657,22 @@ our %unified_info = ( }, "providers/implementations/kem" => { "deps" => [ + "providers/implementations/kem/libdefault-lib-ec_kem.o", + "providers/implementations/kem/libdefault-lib-ecx_kem.o", + "providers/implementations/kem/libdefault-lib-kem_util.o", + "providers/implementations/kem/libdefault-lib-ml_kem_kem.o", + "providers/implementations/kem/libdefault-lib-mlx_kem.o", "providers/implementations/kem/libdefault-lib-rsa_kem.o", - "providers/implementations/kem/libfips-lib-rsa_kem.o" + "providers/implementations/kem/libfips-lib-ml_kem_kem.o", + "providers/implementations/kem/libfips-lib-mlx_kem.o", + "providers/implementations/kem/libfips-lib-rsa_kem.o", + "providers/implementations/kem/libtemplate-lib-template_kem.o" ], "products" => { "lib" => [ "providers/libdefault.a", - "providers/libfips.a" + "providers/libfips.a", + "providers/libtemplate.a" ] } }, @@ -10058,19 +11684,29 @@ our %unified_info = ( "providers/implementations/keymgmt/libdefault-lib-ecx_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-kdf_legacy_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-mac_legacy_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-ml_dsa_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-ml_kem_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-mlx_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-rsa_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-slh_dsa_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-dh_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-dsa_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-ec_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-ecx_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-kdf_legacy_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-mac_legacy_kmgmt.o", - "providers/implementations/keymgmt/libfips-lib-rsa_kmgmt.o" + "providers/implementations/keymgmt/libfips-lib-ml_dsa_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-ml_kem_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-mlx_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-rsa_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-slh_dsa_kmgmt.o", + "providers/implementations/keymgmt/libtemplate-lib-template_kmgmt.o" ], "products" => { "lib" => [ "providers/libdefault.a", - "providers/libfips.a" + "providers/libfips.a", + "providers/libtemplate.a" ] } }, @@ -10098,18 +11734,18 @@ our %unified_info = ( }, "providers/implementations/rands" => { "deps" => [ - "providers/implementations/rands/libdefault-lib-crngt.o", "providers/implementations/rands/libdefault-lib-drbg.o", "providers/implementations/rands/libdefault-lib-drbg_ctr.o", "providers/implementations/rands/libdefault-lib-drbg_hash.o", "providers/implementations/rands/libdefault-lib-drbg_hmac.o", "providers/implementations/rands/libdefault-lib-seed_src.o", + "providers/implementations/rands/libdefault-lib-seed_src_jitter.o", "providers/implementations/rands/libdefault-lib-test_rng.o", - "providers/implementations/rands/libfips-lib-crngt.o", "providers/implementations/rands/libfips-lib-drbg.o", "providers/implementations/rands/libfips-lib-drbg_ctr.o", "providers/implementations/rands/libfips-lib-drbg_hash.o", "providers/implementations/rands/libfips-lib-drbg_hmac.o", + "providers/implementations/rands/libfips-lib-fips_crng_test.o", "providers/implementations/rands/libfips-lib-test_rng.o" ], "products" => { @@ -10138,13 +11774,31 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-ecdsa_sig.o", "providers/implementations/signature/libdefault-lib-eddsa_sig.o", "providers/implementations/signature/libdefault-lib-mac_legacy_sig.o", + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o", "providers/implementations/signature/libdefault-lib-rsa_sig.o", + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o", "providers/implementations/signature/libdefault-lib-sm2_sig.o", "providers/implementations/signature/libfips-lib-dsa_sig.o", "providers/implementations/signature/libfips-lib-ecdsa_sig.o", "providers/implementations/signature/libfips-lib-eddsa_sig.o", "providers/implementations/signature/libfips-lib-mac_legacy_sig.o", - "providers/implementations/signature/libfips-lib-rsa_sig.o" + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o", + "providers/implementations/signature/libfips-lib-rsa_sig.o", + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o" + ], + "products" => { + "lib" => [ + "providers/libdefault.a", + "providers/libfips.a" + ] + } + }, + "providers/implementations/skeymgmt" => { + "deps" => [ + "providers/implementations/skeymgmt/libdefault-lib-aes_skmgmt.o", + "providers/implementations/skeymgmt/libdefault-lib-generic.o", + "providers/implementations/skeymgmt/libfips-lib-aes_skmgmt.o", + "providers/implementations/skeymgmt/libfips-lib-generic.o" ], "products" => { "lib" => [ @@ -10172,14 +11826,15 @@ our %unified_info = ( "ssl/libssl-lib-d1_srtp.o", "ssl/libssl-lib-methods.o", "ssl/libssl-lib-pqueue.o", + "ssl/libssl-lib-priority_queue.o", "ssl/libssl-lib-s3_enc.o", "ssl/libssl-lib-s3_lib.o", "ssl/libssl-lib-s3_msg.o", "ssl/libssl-lib-ssl_asn1.o", "ssl/libssl-lib-ssl_cert.o", + "ssl/libssl-lib-ssl_cert_comp.o", "ssl/libssl-lib-ssl_ciph.o", "ssl/libssl-lib-ssl_conf.o", - "ssl/libssl-lib-ssl_err.o", "ssl/libssl-lib-ssl_err_legacy.o", "ssl/libssl-lib-ssl_init.o", "ssl/libssl-lib-ssl_lib.o", @@ -10195,32 +11850,107 @@ our %unified_info = ( "ssl/libssl-lib-t1_trce.o", "ssl/libssl-lib-tls13_enc.o", "ssl/libssl-lib-tls_depr.o", - "ssl/libssl-lib-tls_srp.o", - "ssl/libdefault-lib-s3_cbc.o", - "ssl/libfips-lib-s3_cbc.o" + "ssl/libssl-lib-tls_srp.o" ], "products" => { "lib" => [ - "libssl", - "providers/libdefault.a", - "providers/libfips.a" + "libssl" + ] + } + }, + "ssl/quic" => { + "deps" => [ + "ssl/quic/libssl-lib-cc_newreno.o", + "ssl/quic/libssl-lib-json_enc.o", + "ssl/quic/libssl-lib-qlog.o", + "ssl/quic/libssl-lib-qlog_event_helpers.o", + "ssl/quic/libssl-lib-quic_ackm.o", + "ssl/quic/libssl-lib-quic_cfq.o", + "ssl/quic/libssl-lib-quic_channel.o", + "ssl/quic/libssl-lib-quic_demux.o", + "ssl/quic/libssl-lib-quic_engine.o", + "ssl/quic/libssl-lib-quic_fc.o", + "ssl/quic/libssl-lib-quic_fifd.o", + "ssl/quic/libssl-lib-quic_impl.o", + "ssl/quic/libssl-lib-quic_lcidm.o", + "ssl/quic/libssl-lib-quic_method.o", + "ssl/quic/libssl-lib-quic_obj.o", + "ssl/quic/libssl-lib-quic_port.o", + "ssl/quic/libssl-lib-quic_rcidm.o", + "ssl/quic/libssl-lib-quic_reactor.o", + "ssl/quic/libssl-lib-quic_reactor_wait_ctx.o", + "ssl/quic/libssl-lib-quic_record_rx.o", + "ssl/quic/libssl-lib-quic_record_shared.o", + "ssl/quic/libssl-lib-quic_record_tx.o", + "ssl/quic/libssl-lib-quic_record_util.o", + "ssl/quic/libssl-lib-quic_rstream.o", + "ssl/quic/libssl-lib-quic_rx_depack.o", + "ssl/quic/libssl-lib-quic_sf_list.o", + "ssl/quic/libssl-lib-quic_srt_gen.o", + "ssl/quic/libssl-lib-quic_srtm.o", + "ssl/quic/libssl-lib-quic_sstream.o", + "ssl/quic/libssl-lib-quic_statm.o", + "ssl/quic/libssl-lib-quic_stream_map.o", + "ssl/quic/libssl-lib-quic_thread_assist.o", + "ssl/quic/libssl-lib-quic_tls.o", + "ssl/quic/libssl-lib-quic_tls_api.o", + "ssl/quic/libssl-lib-quic_trace.o", + "ssl/quic/libssl-lib-quic_tserver.o", + "ssl/quic/libssl-lib-quic_txp.o", + "ssl/quic/libssl-lib-quic_txpim.o", + "ssl/quic/libssl-lib-quic_types.o", + "ssl/quic/libssl-lib-quic_wire.o", + "ssl/quic/libssl-lib-quic_wire_pkt.o", + "ssl/quic/libssl-lib-uint_set.o" + ], + "products" => { + "lib" => [ + "libssl" ] } }, "ssl/record" => { "deps" => [ - "ssl/record/libssl-lib-dtls1_bitmap.o", "ssl/record/libssl-lib-rec_layer_d1.o", - "ssl/record/libssl-lib-rec_layer_s3.o", - "ssl/record/libssl-lib-ssl3_buffer.o", - "ssl/record/libssl-lib-ssl3_record.o", - "ssl/record/libssl-lib-ssl3_record_tls13.o", - "ssl/record/libcommon-lib-tls_pad.o" + "ssl/record/libssl-lib-rec_layer_s3.o" + ], + "products" => { + "lib" => [ + "libssl" + ] + } + }, + "ssl/record/methods" => { + "deps" => [ + "ssl/record/methods/libssl-lib-dtls_meth.o", + "ssl/record/methods/libssl-lib-ssl3_meth.o", + "ssl/record/methods/libssl-lib-tls13_meth.o", + "ssl/record/methods/libssl-lib-tls1_meth.o", + "ssl/record/methods/libssl-lib-tls_common.o", + "ssl/record/methods/libssl-lib-tls_multib.o", + "ssl/record/methods/libssl-lib-tlsany_meth.o", + "ssl/record/methods/libcommon-lib-tls_pad.o", + "ssl/record/methods/libdefault-lib-ssl3_cbc.o", + "ssl/record/methods/libfips-lib-ssl3_cbc.o" ], "products" => { "lib" => [ "libssl", - "providers/libcommon.a" + "providers/libcommon.a", + "providers/libdefault.a", + "providers/libfips.a" + ] + } + }, + "ssl/rio" => { + "deps" => [ + "ssl/rio/libssl-lib-poll_builder.o", + "ssl/rio/libssl-lib-poll_immediate.o", + "ssl/rio/libssl-lib-rio_notifier.o" + ], + "products" => { + "lib" => [ + "libssl" ] } }, @@ -10258,9 +11988,40 @@ our %unified_info = ( "test/helpers/dtlstest-bin-ssltestlib.o", "test/helpers/endecode_test-bin-predefined_dhparams.o", "test/helpers/fatalerrtest-bin-ssltestlib.o", + "test/helpers/json_test-bin-noisydgrambio.o", + "test/helpers/json_test-bin-pktsplitbio.o", + "test/helpers/json_test-bin-quictestlib.o", + "test/helpers/json_test-bin-ssltestlib.o", + "test/helpers/pkcs12_api_test-bin-pkcs12.o", "test/helpers/pkcs12_format_test-bin-pkcs12.o", + "test/helpers/quic_multistream_test-bin-noisydgrambio.o", + "test/helpers/quic_multistream_test-bin-pktsplitbio.o", + "test/helpers/quic_multistream_test-bin-quictestlib.o", + "test/helpers/quic_multistream_test-bin-ssltestlib.o", + "test/helpers/quic_newcid_test-bin-noisydgrambio.o", + "test/helpers/quic_newcid_test-bin-pktsplitbio.o", + "test/helpers/quic_newcid_test-bin-quictestlib.o", + "test/helpers/quic_newcid_test-bin-ssltestlib.o", + "test/helpers/quic_radix_test-bin-noisydgrambio.o", + "test/helpers/quic_radix_test-bin-pktsplitbio.o", + "test/helpers/quic_radix_test-bin-quictestlib.o", + "test/helpers/quic_radix_test-bin-ssltestlib.o", + "test/helpers/quic_srt_gen_test-bin-noisydgrambio.o", + "test/helpers/quic_srt_gen_test-bin-pktsplitbio.o", + "test/helpers/quic_srt_gen_test-bin-quictestlib.o", + "test/helpers/quic_srt_gen_test-bin-ssltestlib.o", + "test/helpers/quicapitest-bin-noisydgrambio.o", + "test/helpers/quicapitest-bin-pktsplitbio.o", + "test/helpers/quicapitest-bin-quictestlib.o", + "test/helpers/quicapitest-bin-ssltestlib.o", + "test/helpers/quicfaultstest-bin-noisydgrambio.o", + "test/helpers/quicfaultstest-bin-pktsplitbio.o", + "test/helpers/quicfaultstest-bin-quictestlib.o", + "test/helpers/quicfaultstest-bin-ssltestlib.o", "test/helpers/recordlentest-bin-ssltestlib.o", + "test/helpers/rpktest-bin-ssltestlib.o", "test/helpers/servername_test-bin-ssltestlib.o", + "test/helpers/ssl_handshake_rtt_test-bin-ssltestlib.o", "test/helpers/ssl_old_test-bin-predefined_dhparams.o", "test/helpers/ssl_test-bin-handshake.o", "test/helpers/ssl_test-bin-handshake_srp.o", @@ -10269,7 +12030,8 @@ our %unified_info = ( "test/helpers/sslapitest-bin-ssltestlib.o", "test/helpers/sslbuffertest-bin-ssltestlib.o", "test/helpers/sslcorrupttest-bin-ssltestlib.o", - "test/helpers/tls13ccstest-bin-ssltestlib.o" + "test/helpers/tls13ccstest-bin-ssltestlib.o", + "test/helpers/tls13groupselection_test-bin-ssltestlib.o" ], "products" => { "bin" => [ @@ -10287,16 +12049,37 @@ our %unified_info = ( "test/dtlstest", "test/endecode_test", "test/fatalerrtest", + "test/json_test", + "test/pkcs12_api_test", "test/pkcs12_format_test", + "test/quic_multistream_test", + "test/quic_newcid_test", + "test/quic_radix_test", + "test/quic_srt_gen_test", + "test/quicapitest", + "test/quicfaultstest", "test/recordlentest", + "test/rpktest", "test/servername_test", + "test/ssl_handshake_rtt_test", "test/ssl_old_test", "test/ssl_test", "test/ssl_test_ctx_test", "test/sslapitest", "test/sslbuffertest", "test/sslcorrupttest", - "test/tls13ccstest" + "test/tls13ccstest", + "test/tls13groupselection_test" + ] + } + }, + "test/radix" => { + "deps" => [ + "test/radix/quic_radix_test-bin-quic_radix.o" + ], + "products" => { + "bin" => [ + "test/quic_radix_test" ] } }, @@ -10308,6 +12091,7 @@ our %unified_info = ( "test/testutil/libtestutil-lib-driver.o", "test/testutil/libtestutil-lib-fake_random.o", "test/testutil/libtestutil-lib-format_output.o", + "test/testutil/libtestutil-lib-helper.o", "test/testutil/libtestutil-lib-load.o", "test/testutil/libtestutil-lib-main.o", "test/testutil/libtestutil-lib-options.o", @@ -10343,6 +12127,12 @@ our %unified_info = ( } }, "generate" => { + "OpenSSLConfig.cmake" => [ + "exporters/cmake/OpenSSLConfig.cmake.in" + ], + "OpenSSLConfigVersion.cmake" => [ + "exporters/cmake/OpenSSLConfigVersion.cmake.in" + ], "apps/progs.c" => [ "apps/progs.pl", "\"-C\"", @@ -10353,6 +12143,19 @@ our %unified_info = ( "\"-H\"", "\$(APPS_OPENSSL)" ], + "builddata.pm" => [ + "util/mkinstallvars.pl", + "PREFIX=.", + "BINDIR=apps", + "APPLINKDIR=ms", + "LIBDIR=", + "INCLUDEDIR=include", + "\"INCLUDEDIR=\$(SRCDIR)/include\"", + "ENGINESDIR=engines", + "MODULESDIR=providers", + "\"VERSION=\$(VERSION)\"", + "\"LDLIBS=\$(LIB_EX_LIBS)\"" + ], "crypto/aes/aes-586.S" => [ "crypto/aes/asm/aes-586.pl" ], @@ -10374,6 +12177,24 @@ our %unified_info = ( "crypto/aes/aes-ppc.s" => [ "crypto/aes/asm/aes-ppc.pl" ], + "crypto/aes/aes-riscv32-zkn.s" => [ + "crypto/aes/asm/aes-riscv32-zkn.pl" + ], + "crypto/aes/aes-riscv64-zkn.s" => [ + "crypto/aes/asm/aes-riscv64-zkn.pl" + ], + "crypto/aes/aes-riscv64-zvbb-zvkg-zvkned.s" => [ + "crypto/aes/asm/aes-riscv64-zvbb-zvkg-zvkned.pl" + ], + "crypto/aes/aes-riscv64-zvkb-zvkned.s" => [ + "crypto/aes/asm/aes-riscv64-zvkb-zvkned.pl" + ], + "crypto/aes/aes-riscv64-zvkned.s" => [ + "crypto/aes/asm/aes-riscv64-zvkned.pl" + ], + "crypto/aes/aes-riscv64.s" => [ + "crypto/aes/asm/aes-riscv64.pl" + ], "crypto/aes/aes-s390x.S" => [ "crypto/aes/asm/aes-s390x.pl" ], @@ -10401,6 +12222,9 @@ our %unified_info = ( "crypto/aes/aesni-x86_64.s" => [ "crypto/aes/asm/aesni-x86_64.pl" ], + "crypto/aes/aesni-xts-avx512.s" => [ + "crypto/aes/asm/aesni-xts-avx512.pl" + ], "crypto/aes/aesp8-ppc.s" => [ "crypto/aes/asm/aesp8-ppc.pl" ], @@ -10413,12 +12237,18 @@ our %unified_info = ( "crypto/aes/bsaes-armv7.S" => [ "crypto/aes/asm/bsaes-armv7.pl" ], + "crypto/aes/bsaes-armv8.S" => [ + "crypto/aes/asm/bsaes-armv8.pl" + ], "crypto/aes/bsaes-x86_64.s" => [ "crypto/aes/asm/bsaes-x86_64.pl" ], "crypto/aes/vpaes-armv8.S" => [ "crypto/aes/asm/vpaes-armv8.pl" ], + "crypto/aes/vpaes-loongarch64.S" => [ + "crypto/aes/asm/vpaes-loongarch64.pl" + ], "crypto/aes/vpaes-ppc.s" => [ "crypto/aes/asm/vpaes-ppc.pl" ], @@ -10479,15 +12309,33 @@ our %unified_info = ( "crypto/bn/ppc-mont.s" => [ "crypto/bn/asm/ppc-mont.pl" ], + "crypto/bn/ppc64-mont-fixed.s" => [ + "crypto/bn/asm/ppc64-mont-fixed.pl" + ], "crypto/bn/ppc64-mont.s" => [ "crypto/bn/asm/ppc64-mont.pl" ], + "crypto/bn/rsaz-2k-avx512.s" => [ + "crypto/bn/asm/rsaz-2k-avx512.pl" + ], + "crypto/bn/rsaz-2k-avxifma.s" => [ + "crypto/bn/asm/rsaz-2k-avxifma.pl" + ], + "crypto/bn/rsaz-3k-avx512.s" => [ + "crypto/bn/asm/rsaz-3k-avx512.pl" + ], + "crypto/bn/rsaz-3k-avxifma.s" => [ + "crypto/bn/asm/rsaz-3k-avxifma.pl" + ], + "crypto/bn/rsaz-4k-avx512.s" => [ + "crypto/bn/asm/rsaz-4k-avx512.pl" + ], + "crypto/bn/rsaz-4k-avxifma.s" => [ + "crypto/bn/asm/rsaz-4k-avxifma.pl" + ], "crypto/bn/rsaz-avx2.s" => [ "crypto/bn/asm/rsaz-avx2.pl" ], - "crypto/bn/rsaz-avx512.s" => [ - "crypto/bn/asm/rsaz-avx512.pl" - ], "crypto/bn/rsaz-x86_64.s" => [ "crypto/bn/asm/rsaz-x86_64.pl" ], @@ -10549,6 +12397,9 @@ our %unified_info = ( "crypto/chacha/chacha-armv4.S" => [ "crypto/chacha/asm/chacha-armv4.pl" ], + "crypto/chacha/chacha-armv8-sve.S" => [ + "crypto/chacha/asm/chacha-armv8-sve.pl" + ], "crypto/chacha/chacha-armv8.S" => [ "crypto/chacha/asm/chacha-armv8.pl" ], @@ -10561,9 +12412,19 @@ our %unified_info = ( "crypto/chacha/chacha-ia64.s" => [ "crypto/chacha/chacha-ia64.S" ], + "crypto/chacha/chacha-loongarch64.S" => [ + "crypto/chacha/asm/chacha-loongarch64.pl" + ], "crypto/chacha/chacha-ppc.s" => [ "crypto/chacha/asm/chacha-ppc.pl" ], + "crypto/chacha/chacha-riscv64-v-zbb-zvkb.s" => [ + "crypto/chacha/asm/chacha-riscv64-v-zbb.pl", + "zvkb" + ], + "crypto/chacha/chacha-riscv64-v-zbb.s" => [ + "crypto/chacha/asm/chacha-riscv64-v-zbb.pl" + ], "crypto/chacha/chacha-s390x.S" => [ "crypto/chacha/asm/chacha-s390x.pl" ], @@ -10573,6 +12434,9 @@ our %unified_info = ( "crypto/chacha/chacha-x86_64.s" => [ "crypto/chacha/asm/chacha-x86_64.pl" ], + "crypto/chacha/chachap10-ppc.s" => [ + "crypto/chacha/asm/chachap10-ppc.pl" + ], "crypto/des/crypt586.S" => [ "crypto/des/asm/crypt586.pl" ], @@ -10585,6 +12449,9 @@ our %unified_info = ( "crypto/des/dest4-sparcv9.S" => [ "crypto/des/asm/dest4-sparcv9.pl" ], + "crypto/ec/ecp_nistp384-ppc64.s" => [ + "crypto/ec/asm/ecp_nistp384-ppc64.pl" + ], "crypto/ec/ecp_nistp521-ppc64.s" => [ "crypto/ec/asm/ecp_nistp521-ppc64.pl" ], @@ -10609,6 +12476,9 @@ our %unified_info = ( "crypto/ec/ecp_nistz256-x86_64.s" => [ "crypto/ec/asm/ecp_nistz256-x86_64.pl" ], + "crypto/ec/ecp_sm2p256-armv8.S" => [ + "crypto/ec/asm/ecp_sm2p256-armv8.pl" + ], "crypto/ec/x25519-ppc64.s" => [ "crypto/ec/asm/x25519-ppc64.pl" ], @@ -10618,18 +12488,39 @@ our %unified_info = ( "crypto/ia64cpuid.s" => [ "crypto/ia64cpuid.S" ], + "crypto/loongarch64cpuid.s" => [ + "crypto/loongarch64cpuid.pl" + ], "crypto/md5/md5-586.S" => [ "crypto/md5/asm/md5-586.pl" ], + "crypto/md5/md5-aarch64.S" => [ + "crypto/md5/asm/md5-aarch64.pl" + ], + "crypto/md5/md5-loongarch64.S" => [ + "crypto/md5/asm/md5-loongarch64.pl" + ], "crypto/md5/md5-sparcv9.S" => [ "crypto/md5/asm/md5-sparcv9.pl" ], "crypto/md5/md5-x86_64.s" => [ "crypto/md5/asm/md5-x86_64.pl" ], + "crypto/modes/aes-gcm-armv8-unroll8_64.S" => [ + "crypto/modes/asm/aes-gcm-armv8-unroll8_64.pl" + ], "crypto/modes/aes-gcm-armv8_64.S" => [ "crypto/modes/asm/aes-gcm-armv8_64.pl" ], + "crypto/modes/aes-gcm-avx512.s" => [ + "crypto/modes/asm/aes-gcm-avx512.pl" + ], + "crypto/modes/aes-gcm-ppc.s" => [ + "crypto/modes/asm/aes-gcm-ppc.pl" + ], + "crypto/modes/aes-gcm-riscv64-zvkb-zvkg-zvkned.s" => [ + "crypto/modes/asm/aes-gcm-riscv64-zvkb-zvkg-zvkned.pl" + ], "crypto/modes/aesni-gcm-x86_64.s" => [ "crypto/modes/asm/aesni-gcm-x86_64.pl" ], @@ -10648,6 +12539,15 @@ our %unified_info = ( "crypto/modes/ghash-parisc.s" => [ "crypto/modes/asm/ghash-parisc.pl" ], + "crypto/modes/ghash-riscv64-zvkb-zvbc.s" => [ + "crypto/modes/asm/ghash-riscv64-zvkb-zvbc.pl" + ], + "crypto/modes/ghash-riscv64-zvkg.s" => [ + "crypto/modes/asm/ghash-riscv64-zvkg.pl" + ], + "crypto/modes/ghash-riscv64.s" => [ + "crypto/modes/asm/ghash-riscv64.pl" + ], "crypto/modes/ghash-s390x.S" => [ "crypto/modes/asm/ghash-s390x.pl" ], @@ -10666,6 +12566,9 @@ our %unified_info = ( "crypto/modes/ghashv8-armx.S" => [ "crypto/modes/asm/ghashv8-armx.pl" ], + "crypto/params_idx.c" => [ + "crypto/params_idx.c.in" + ], "crypto/pariscid.s" => [ "crypto/pariscid.pl" ], @@ -10726,6 +12629,12 @@ our %unified_info = ( "crypto/ripemd/rmd-586.S" => [ "crypto/ripemd/asm/rmd-586.pl" ], + "crypto/riscv32cpuid.s" => [ + "crypto/riscv32cpuid.pl" + ], + "crypto/riscv64cpuid.s" => [ + "crypto/riscv64cpuid.pl" + ], "crypto/s390xcpuid.S" => [ "crypto/s390xcpuid.pl" ], @@ -10834,6 +12743,9 @@ our %unified_info = ( "crypto/sha/sha256-ppc.s" => [ "crypto/sha/asm/sha512-ppc.pl" ], + "crypto/sha/sha256-riscv64-zvkb-zvknha_or_zvknhb.S" => [ + "crypto/sha/asm/sha256-riscv64-zvkb-zvknha_or_zvknhb.pl" + ], "crypto/sha/sha256-s390x.S" => [ "crypto/sha/asm/sha512-s390x.pl" ], @@ -10870,6 +12782,9 @@ our %unified_info = ( "crypto/sha/sha512-ppc.s" => [ "crypto/sha/asm/sha512-ppc.pl" ], + "crypto/sha/sha512-riscv64-zvkb-zvknhb.S" => [ + "crypto/sha/asm/sha512-riscv64-zvkb-zvknhb.pl" + ], "crypto/sha/sha512-s390x.S" => [ "crypto/sha/asm/sha512-s390x.pl" ], @@ -10882,6 +12797,24 @@ our %unified_info = ( "crypto/sha/sha512p8-ppc.s" => [ "crypto/sha/asm/sha512p8-ppc.pl" ], + "crypto/sm3/sm3-armv8.S" => [ + "crypto/sm3/asm/sm3-armv8.pl" + ], + "crypto/sm3/sm3-riscv64-zvksh.S" => [ + "crypto/sm3/asm/sm3-riscv64-zvksh.pl" + ], + "crypto/sm4/sm4-armv8.S" => [ + "crypto/sm4/asm/sm4-armv8.pl" + ], + "crypto/sm4/sm4-riscv64-zvksed.s" => [ + "crypto/sm4/asm/sm4-riscv64-zvksed.pl" + ], + "crypto/sm4/vpsm4-armv8.S" => [ + "crypto/sm4/asm/vpsm4-armv8.pl" + ], + "crypto/sm4/vpsm4_ex-armv8.S" => [ + "crypto/sm4/asm/vpsm4_ex-armv8.pl" + ], "crypto/uplink-ia64.s" => [ "ms/uplink-ia64.pl" ], @@ -11047,6 +12980,9 @@ our %unified_info = ( "doc/html/man1/openssl-sess_id.html" => [ "doc/man1/openssl-sess_id.pod" ], + "doc/html/man1/openssl-skeyutl.html" => [ + "doc/man1/openssl-skeyutl.pod" + ], "doc/html/man1/openssl-smime.html" => [ "doc/man1/openssl-smime.pod" ], @@ -11188,6 +13124,9 @@ our %unified_info = ( "doc/html/man3/BIO_get_ex_new_index.html" => [ "doc/man3/BIO_get_ex_new_index.pod" ], + "doc/html/man3/BIO_get_rpoll_descriptor.html" => [ + "doc/man3/BIO_get_rpoll_descriptor.pod" + ], "doc/html/man3/BIO_meth_new.html" => [ "doc/man3/BIO_meth_new.pod" ], @@ -11224,6 +13163,9 @@ our %unified_info = ( "doc/html/man3/BIO_s_datagram.html" => [ "doc/man3/BIO_s_datagram.pod" ], + "doc/html/man3/BIO_s_dgram_pair.html" => [ + "doc/man3/BIO_s_dgram_pair.pod" + ], "doc/html/man3/BIO_s_fd.html" => [ "doc/man3/BIO_s_fd.pod" ], @@ -11239,6 +13181,9 @@ our %unified_info = ( "doc/html/man3/BIO_s_socket.html" => [ "doc/man3/BIO_s_socket.pod" ], + "doc/html/man3/BIO_sendmmsg.html" => [ + "doc/man3/BIO_sendmmsg.pod" + ], "doc/html/man3/BIO_set_callback.html" => [ "doc/man3/BIO_set_callback.pod" ], @@ -11311,6 +13256,9 @@ our %unified_info = ( "doc/html/man3/BUF_MEM_new.html" => [ "doc/man3/BUF_MEM_new.pod" ], + "doc/html/man3/CMAC_CTX.html" => [ + "doc/man3/CMAC_CTX.pod" + ], "doc/html/man3/CMS_EncryptedData_decrypt.html" => [ "doc/man3/CMS_EncryptedData_decrypt.pod" ], @@ -11377,6 +13325,9 @@ our %unified_info = ( "doc/html/man3/CMS_verify_receipt.html" => [ "doc/man3/CMS_verify_receipt.pod" ], + "doc/html/man3/COMP_CTX_new.html" => [ + "doc/man3/COMP_CTX_new.pod" + ], "doc/html/man3/CONF_modules_free.html" => [ "doc/man3/CONF_modules_free.pod" ], @@ -11476,6 +13427,12 @@ our %unified_info = ( "doc/html/man3/DTLS_set_timer_cb.html" => [ "doc/man3/DTLS_set_timer_cb.pod" ], + "doc/html/man3/DTLSv1_get_timeout.html" => [ + "doc/man3/DTLSv1_get_timeout.pod" + ], + "doc/html/man3/DTLSv1_handle_timeout.html" => [ + "doc/man3/DTLSv1_handle_timeout.pod" + ], "doc/html/man3/DTLSv1_listen.html" => [ "doc/man3/DTLSv1_listen.pod" ], @@ -11614,6 +13571,9 @@ our %unified_info = ( "doc/html/man3/EVP_PKEY_CTX_get0_pkey.html" => [ "doc/man3/EVP_PKEY_CTX_get0_pkey.pod" ], + "doc/html/man3/EVP_PKEY_CTX_get_algor.html" => [ + "doc/man3/EVP_PKEY_CTX_get_algor.pod" + ], "doc/html/man3/EVP_PKEY_CTX_new.html" => [ "doc/man3/EVP_PKEY_CTX_new.pod" ], @@ -11731,6 +13691,12 @@ our %unified_info = ( "doc/html/man3/EVP_SIGNATURE.html" => [ "doc/man3/EVP_SIGNATURE.pod" ], + "doc/html/man3/EVP_SKEY.html" => [ + "doc/man3/EVP_SKEY.pod" + ], + "doc/html/man3/EVP_SKEYMGMT.html" => [ + "doc/man3/EVP_SKEYMGMT.pod" + ], "doc/html/man3/EVP_SealInit.html" => [ "doc/man3/EVP_SealInit.pod" ], @@ -11818,6 +13784,9 @@ our %unified_info = ( "doc/html/man3/EVP_whirlpool.html" => [ "doc/man3/EVP_whirlpool.pod" ], + "doc/html/man3/GENERAL_NAME.html" => [ + "doc/man3/GENERAL_NAME.pod" + ], "doc/html/man3/HMAC.html" => [ "doc/man3/HMAC.pod" ], @@ -11890,9 +13859,15 @@ our %unified_info = ( "doc/html/man3/OPENSSL_load_builtin_modules.html" => [ "doc/man3/OPENSSL_load_builtin_modules.pod" ], + "doc/html/man3/OPENSSL_load_u16_le.html" => [ + "doc/man3/OPENSSL_load_u16_le.pod" + ], "doc/html/man3/OPENSSL_malloc.html" => [ "doc/man3/OPENSSL_malloc.pod" ], + "doc/html/man3/OPENSSL_riscvcap.html" => [ + "doc/man3/OPENSSL_riscvcap.pod" + ], "doc/html/man3/OPENSSL_s390xcap.html" => [ "doc/man3/OPENSSL_s390xcap.pod" ], @@ -11908,12 +13883,18 @@ our %unified_info = ( "doc/html/man3/OSSL_CALLBACK.html" => [ "doc/man3/OSSL_CALLBACK.pod" ], + "doc/html/man3/OSSL_CMP_ATAV_set0.html" => [ + "doc/man3/OSSL_CMP_ATAV_set0.pod" + ], "doc/html/man3/OSSL_CMP_CTX_new.html" => [ "doc/man3/OSSL_CMP_CTX_new.pod" ], "doc/html/man3/OSSL_CMP_HDR_get0_transactionID.html" => [ "doc/man3/OSSL_CMP_HDR_get0_transactionID.pod" ], + "doc/html/man3/OSSL_CMP_ITAV_new_caCerts.html" => [ + "doc/man3/OSSL_CMP_ITAV_new_caCerts.pod" + ], "doc/html/man3/OSSL_CMP_ITAV_set0.html" => [ "doc/man3/OSSL_CMP_ITAV_set0.pod" ], @@ -11983,9 +13964,18 @@ our %unified_info = ( "doc/html/man3/OSSL_ENCODER_to_bio.html" => [ "doc/man3/OSSL_ENCODER_to_bio.pod" ], + "doc/html/man3/OSSL_ERR_STATE_save.html" => [ + "doc/man3/OSSL_ERR_STATE_save.pod" + ], "doc/html/man3/OSSL_ESS_check_signing_certs.html" => [ "doc/man3/OSSL_ESS_check_signing_certs.pod" ], + "doc/html/man3/OSSL_GENERAL_NAMES_print.html" => [ + "doc/man3/OSSL_GENERAL_NAMES_print.pod" + ], + "doc/html/man3/OSSL_HPKE_CTX_new.html" => [ + "doc/man3/OSSL_HPKE_CTX_new.pod" + ], "doc/html/man3/OSSL_HTTP_REQ_CTX.html" => [ "doc/man3/OSSL_HTTP_REQ_CTX.pod" ], @@ -11995,12 +13985,24 @@ our %unified_info = ( "doc/html/man3/OSSL_HTTP_transfer.html" => [ "doc/man3/OSSL_HTTP_transfer.pod" ], + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX.html" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX.pod" + ], + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX_print.html" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX_print.pod" + ], + "doc/html/man3/OSSL_INDICATOR_set_callback.html" => [ + "doc/man3/OSSL_INDICATOR_set_callback.pod" + ], "doc/html/man3/OSSL_ITEM.html" => [ "doc/man3/OSSL_ITEM.pod" ], "doc/html/man3/OSSL_LIB_CTX.html" => [ "doc/man3/OSSL_LIB_CTX.pod" ], + "doc/html/man3/OSSL_LIB_CTX_set_conf_diagnostics.html" => [ + "doc/man3/OSSL_LIB_CTX_set_conf_diagnostics.pod" + ], "doc/html/man3/OSSL_PARAM.html" => [ "doc/man3/OSSL_PARAM.pod" ], @@ -12016,9 +14018,15 @@ our %unified_info = ( "doc/html/man3/OSSL_PARAM_int.html" => [ "doc/man3/OSSL_PARAM_int.pod" ], + "doc/html/man3/OSSL_PARAM_print_to_bio.html" => [ + "doc/man3/OSSL_PARAM_print_to_bio.pod" + ], "doc/html/man3/OSSL_PROVIDER.html" => [ "doc/man3/OSSL_PROVIDER.pod" ], + "doc/html/man3/OSSL_QUIC_client_method.html" => [ + "doc/man3/OSSL_QUIC_client_method.pod" + ], "doc/html/man3/OSSL_SELF_TEST_new.html" => [ "doc/man3/OSSL_SELF_TEST_new.pod" ], @@ -12043,6 +14051,9 @@ our %unified_info = ( "doc/html/man3/OSSL_STORE_open.html" => [ "doc/man3/OSSL_STORE_open.pod" ], + "doc/html/man3/OSSL_sleep.html" => [ + "doc/man3/OSSL_sleep.pod" + ], "doc/html/man3/OSSL_trace_enabled.html" => [ "doc/man3/OSSL_trace_enabled.pod" ], @@ -12058,6 +14069,9 @@ our %unified_info = ( "doc/html/man3/OpenSSL_version.html" => [ "doc/man3/OpenSSL_version.pod" ], + "doc/html/man3/PBMAC1_get1_pbkdf2_param.html" => [ + "doc/man3/PBMAC1_get1_pbkdf2_param.pod" + ], "doc/html/man3/PEM_X509_INFO_read_bio_ex.html" => [ "doc/man3/PEM_X509_INFO_read_bio_ex.pod" ], @@ -12094,6 +14108,9 @@ our %unified_info = ( "doc/html/man3/PKCS12_SAFEBAG_get1_cert.html" => [ "doc/man3/PKCS12_SAFEBAG_get1_cert.pod" ], + "doc/html/man3/PKCS12_SAFEBAG_set0_attrs.html" => [ + "doc/man3/PKCS12_SAFEBAG_set0_attrs.pod" + ], "doc/html/man3/PKCS12_add1_attr_by_NID.html" => [ "doc/man3/PKCS12_add1_attr_by_NID.pod" ], @@ -12367,6 +14384,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set0_CA_list.html" => [ "doc/man3/SSL_CTX_set0_CA_list.pod" ], + "doc/html/man3/SSL_CTX_set1_cert_comp_preference.html" => [ + "doc/man3/SSL_CTX_set1_cert_comp_preference.pod" + ], "doc/html/man3/SSL_CTX_set1_curves.html" => [ "doc/man3/SSL_CTX_set1_curves.pod" ], @@ -12406,6 +14426,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_default_passwd_cb.html" => [ "doc/man3/SSL_CTX_set_default_passwd_cb.pod" ], + "doc/html/man3/SSL_CTX_set_domain_flags.html" => [ + "doc/man3/SSL_CTX_set_domain_flags.pod" + ], "doc/html/man3/SSL_CTX_set_generate_session_id.html" => [ "doc/man3/SSL_CTX_set_generate_session_id.pod" ], @@ -12427,6 +14450,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_msg_callback.html" => [ "doc/man3/SSL_CTX_set_msg_callback.pod" ], + "doc/html/man3/SSL_CTX_set_new_pending_conn_cb.html" => [ + "doc/man3/SSL_CTX_set_new_pending_conn_cb.pod" + ], "doc/html/man3/SSL_CTX_set_num_tickets.html" => [ "doc/man3/SSL_CTX_set_num_tickets.pod" ], @@ -12541,6 +14567,9 @@ our %unified_info = ( "doc/html/man3/SSL_accept.html" => [ "doc/man3/SSL_accept.pod" ], + "doc/html/man3/SSL_accept_stream.html" => [ + "doc/man3/SSL_accept_stream.pod" + ], "doc/html/man3/SSL_alert_type_string.html" => [ "doc/man3/SSL_alert_type_string.pod" ], @@ -12568,9 +14597,21 @@ our %unified_info = ( "doc/html/man3/SSL_free.html" => [ "doc/man3/SSL_free.pod" ], + "doc/html/man3/SSL_get0_connection.html" => [ + "doc/man3/SSL_get0_connection.pod" + ], + "doc/html/man3/SSL_get0_group_name.html" => [ + "doc/man3/SSL_get0_group_name.pod" + ], + "doc/html/man3/SSL_get0_peer_rpk.html" => [ + "doc/man3/SSL_get0_peer_rpk.pod" + ], "doc/html/man3/SSL_get0_peer_scts.html" => [ "doc/man3/SSL_get0_peer_scts.pod" ], + "doc/html/man3/SSL_get1_builtin_sigalgs.html" => [ + "doc/man3/SSL_get1_builtin_sigalgs.pod" + ], "doc/html/man3/SSL_get_SSL_CTX.html" => [ "doc/man3/SSL_get_SSL_CTX.pod" ], @@ -12586,6 +14627,9 @@ our %unified_info = ( "doc/html/man3/SSL_get_client_random.html" => [ "doc/man3/SSL_get_client_random.pod" ], + "doc/html/man3/SSL_get_conn_close_info.html" => [ + "doc/man3/SSL_get_conn_close_info.pod" + ], "doc/html/man3/SSL_get_current_cipher.html" => [ "doc/man3/SSL_get_current_cipher.pod" ], @@ -12595,12 +14639,18 @@ our %unified_info = ( "doc/html/man3/SSL_get_error.html" => [ "doc/man3/SSL_get_error.pod" ], + "doc/html/man3/SSL_get_event_timeout.html" => [ + "doc/man3/SSL_get_event_timeout.pod" + ], "doc/html/man3/SSL_get_extms_support.html" => [ "doc/man3/SSL_get_extms_support.pod" ], "doc/html/man3/SSL_get_fd.html" => [ "doc/man3/SSL_get_fd.pod" ], + "doc/html/man3/SSL_get_handshake_rtt.html" => [ + "doc/man3/SSL_get_handshake_rtt.pod" + ], "doc/html/man3/SSL_get_peer_cert_chain.html" => [ "doc/man3/SSL_get_peer_cert_chain.pod" ], @@ -12619,12 +14669,24 @@ our %unified_info = ( "doc/html/man3/SSL_get_rbio.html" => [ "doc/man3/SSL_get_rbio.pod" ], + "doc/html/man3/SSL_get_rpoll_descriptor.html" => [ + "doc/man3/SSL_get_rpoll_descriptor.pod" + ], "doc/html/man3/SSL_get_session.html" => [ "doc/man3/SSL_get_session.pod" ], "doc/html/man3/SSL_get_shared_sigalgs.html" => [ "doc/man3/SSL_get_shared_sigalgs.pod" ], + "doc/html/man3/SSL_get_stream_id.html" => [ + "doc/man3/SSL_get_stream_id.pod" + ], + "doc/html/man3/SSL_get_stream_read_state.html" => [ + "doc/man3/SSL_get_stream_read_state.pod" + ], + "doc/html/man3/SSL_get_value_uint.html" => [ + "doc/man3/SSL_get_value_uint.pod" + ], "doc/html/man3/SSL_get_verify_result.html" => [ "doc/man3/SSL_get_verify_result.pod" ], @@ -12634,9 +14696,15 @@ our %unified_info = ( "doc/html/man3/SSL_group_to_name.html" => [ "doc/man3/SSL_group_to_name.pod" ], + "doc/html/man3/SSL_handle_events.html" => [ + "doc/man3/SSL_handle_events.pod" + ], "doc/html/man3/SSL_in_init.html" => [ "doc/man3/SSL_in_init.pod" ], + "doc/html/man3/SSL_inject_net_dgram.html" => [ + "doc/man3/SSL_inject_net_dgram.pod" + ], "doc/html/man3/SSL_key_update.html" => [ "doc/man3/SSL_key_update.pod" ], @@ -12649,9 +14717,21 @@ our %unified_info = ( "doc/html/man3/SSL_new.html" => [ "doc/man3/SSL_new.pod" ], + "doc/html/man3/SSL_new_domain.html" => [ + "doc/man3/SSL_new_domain.pod" + ], + "doc/html/man3/SSL_new_listener.html" => [ + "doc/man3/SSL_new_listener.pod" + ], + "doc/html/man3/SSL_new_stream.html" => [ + "doc/man3/SSL_new_stream.pod" + ], "doc/html/man3/SSL_pending.html" => [ "doc/man3/SSL_pending.pod" ], + "doc/html/man3/SSL_poll.html" => [ + "doc/man3/SSL_poll.pod" + ], "doc/html/man3/SSL_read.html" => [ "doc/man3/SSL_read.pod" ], @@ -12667,24 +14747,45 @@ our %unified_info = ( "doc/html/man3/SSL_set1_host.html" => [ "doc/man3/SSL_set1_host.pod" ], + "doc/html/man3/SSL_set1_initial_peer_addr.html" => [ + "doc/man3/SSL_set1_initial_peer_addr.pod" + ], + "doc/html/man3/SSL_set1_server_cert_type.html" => [ + "doc/man3/SSL_set1_server_cert_type.pod" + ], "doc/html/man3/SSL_set_async_callback.html" => [ "doc/man3/SSL_set_async_callback.pod" ], "doc/html/man3/SSL_set_bio.html" => [ "doc/man3/SSL_set_bio.pod" ], + "doc/html/man3/SSL_set_blocking_mode.html" => [ + "doc/man3/SSL_set_blocking_mode.pod" + ], "doc/html/man3/SSL_set_connect_state.html" => [ "doc/man3/SSL_set_connect_state.pod" ], + "doc/html/man3/SSL_set_default_stream_mode.html" => [ + "doc/man3/SSL_set_default_stream_mode.pod" + ], "doc/html/man3/SSL_set_fd.html" => [ "doc/man3/SSL_set_fd.pod" ], + "doc/html/man3/SSL_set_incoming_stream_policy.html" => [ + "doc/man3/SSL_set_incoming_stream_policy.pod" + ], + "doc/html/man3/SSL_set_quic_tls_cbs.html" => [ + "doc/man3/SSL_set_quic_tls_cbs.pod" + ], "doc/html/man3/SSL_set_retry_verify.html" => [ "doc/man3/SSL_set_retry_verify.pod" ], "doc/html/man3/SSL_set_session.html" => [ "doc/man3/SSL_set_session.pod" ], + "doc/html/man3/SSL_set_session_secret_cb.html" => [ + "doc/man3/SSL_set_session_secret_cb.pod" + ], "doc/html/man3/SSL_set_shutdown.html" => [ "doc/man3/SSL_set_shutdown.pod" ], @@ -12697,6 +14798,12 @@ our %unified_info = ( "doc/html/man3/SSL_state_string.html" => [ "doc/man3/SSL_state_string.pod" ], + "doc/html/man3/SSL_stream_conclude.html" => [ + "doc/man3/SSL_stream_conclude.pod" + ], + "doc/html/man3/SSL_stream_reset.html" => [ + "doc/man3/SSL_stream_reset.pod" + ], "doc/html/man3/SSL_want.html" => [ "doc/man3/SSL_want.pod" ], @@ -12706,8 +14813,8 @@ our %unified_info = ( "doc/html/man3/TS_RESP_CTX_new.html" => [ "doc/man3/TS_RESP_CTX_new.pod" ], - "doc/html/man3/TS_VERIFY_CTX_set_certs.html" => [ - "doc/man3/TS_VERIFY_CTX_set_certs.pod" + "doc/html/man3/TS_VERIFY_CTX.html" => [ + "doc/man3/TS_VERIFY_CTX.pod" ], "doc/html/man3/UI_STRING.html" => [ "doc/man3/UI_STRING.pod" @@ -12727,6 +14834,21 @@ our %unified_info = ( "doc/html/man3/X509V3_set_ctx.html" => [ "doc/man3/X509V3_set_ctx.pod" ], + "doc/html/man3/X509_ACERT_add1_attr.html" => [ + "doc/man3/X509_ACERT_add1_attr.pod" + ], + "doc/html/man3/X509_ACERT_add_attr_nconf.html" => [ + "doc/man3/X509_ACERT_add_attr_nconf.pod" + ], + "doc/html/man3/X509_ACERT_get0_holder_baseCertId.html" => [ + "doc/man3/X509_ACERT_get0_holder_baseCertId.pod" + ], + "doc/html/man3/X509_ACERT_get_attr.html" => [ + "doc/man3/X509_ACERT_get_attr.pod" + ], + "doc/html/man3/X509_ACERT_print_ex.html" => [ + "doc/man3/X509_ACERT_print_ex.pod" + ], "doc/html/man3/X509_ALGOR_dup.html" => [ "doc/man3/X509_ALGOR_dup.pod" ], @@ -12775,6 +14897,9 @@ our %unified_info = ( "doc/html/man3/X509_SIG_get0.html" => [ "doc/man3/X509_SIG_get0.pod" ], + "doc/html/man3/X509_STORE_CTX_get_by_subject.html" => [ + "doc/man3/X509_STORE_CTX_get_by_subject.pod" + ], "doc/html/man3/X509_STORE_CTX_get_error.html" => [ "doc/man3/X509_STORE_CTX_get_error.pod" ], @@ -12841,6 +14966,9 @@ our %unified_info = ( "doc/html/man3/X509_get0_uids.html" => [ "doc/man3/X509_get0_uids.pod" ], + "doc/html/man3/X509_get_default_cert_file.html" => [ + "doc/man3/X509_get_default_cert_file.pod" + ], "doc/html/man3/X509_get_extension_flags.html" => [ "doc/man3/X509_get_extension_flags.pod" ], @@ -12964,9 +15092,15 @@ our %unified_info = ( "doc/html/man7/EVP_CIPHER-SM4.html" => [ "doc/man7/EVP_CIPHER-SM4.pod" ], + "doc/html/man7/EVP_KDF-ARGON2.html" => [ + "doc/man7/EVP_KDF-ARGON2.pod" + ], "doc/html/man7/EVP_KDF-HKDF.html" => [ "doc/man7/EVP_KDF-HKDF.pod" ], + "doc/html/man7/EVP_KDF-HMAC-DRBG.html" => [ + "doc/man7/EVP_KDF-HMAC-DRBG.pod" + ], "doc/html/man7/EVP_KDF-KB.html" => [ "doc/man7/EVP_KDF-KB.pod" ], @@ -12982,6 +15116,9 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-PKCS12KDF.html" => [ "doc/man7/EVP_KDF-PKCS12KDF.pod" ], + "doc/html/man7/EVP_KDF-PVKKDF.html" => [ + "doc/man7/EVP_KDF-PVKKDF.pod" + ], "doc/html/man7/EVP_KDF-SCRYPT.html" => [ "doc/man7/EVP_KDF-SCRYPT.pod" ], @@ -13006,9 +15143,18 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-X963.html" => [ "doc/man7/EVP_KDF-X963.pod" ], + "doc/html/man7/EVP_KEM-EC.html" => [ + "doc/man7/EVP_KEM-EC.pod" + ], + "doc/html/man7/EVP_KEM-ML-KEM.html" => [ + "doc/man7/EVP_KEM-ML-KEM.pod" + ], "doc/html/man7/EVP_KEM-RSA.html" => [ "doc/man7/EVP_KEM-RSA.pod" ], + "doc/html/man7/EVP_KEM-X25519.html" => [ + "doc/man7/EVP_KEM-X25519.pod" + ], "doc/html/man7/EVP_KEYEXCH-DH.html" => [ "doc/man7/EVP_KEYEXCH-DH.pod" ], @@ -13042,6 +15188,9 @@ our %unified_info = ( "doc/html/man7/EVP_MD-BLAKE2.html" => [ "doc/man7/EVP_MD-BLAKE2.pod" ], + "doc/html/man7/EVP_MD-KECCAK.html" => [ + "doc/man7/EVP_MD-KECCAK.pod" + ], "doc/html/man7/EVP_MD-MD2.html" => [ "doc/man7/EVP_MD-MD2.pod" ], @@ -13099,15 +15248,27 @@ our %unified_info = ( "doc/html/man7/EVP_PKEY-HMAC.html" => [ "doc/man7/EVP_PKEY-HMAC.pod" ], + "doc/html/man7/EVP_PKEY-ML-DSA.html" => [ + "doc/man7/EVP_PKEY-ML-DSA.pod" + ], + "doc/html/man7/EVP_PKEY-ML-KEM.html" => [ + "doc/man7/EVP_PKEY-ML-KEM.pod" + ], "doc/html/man7/EVP_PKEY-RSA.html" => [ "doc/man7/EVP_PKEY-RSA.pod" ], + "doc/html/man7/EVP_PKEY-SLH-DSA.html" => [ + "doc/man7/EVP_PKEY-SLH-DSA.pod" + ], "doc/html/man7/EVP_PKEY-SM2.html" => [ "doc/man7/EVP_PKEY-SM2.pod" ], "doc/html/man7/EVP_PKEY-X25519.html" => [ "doc/man7/EVP_PKEY-X25519.pod" ], + "doc/html/man7/EVP_RAND-CRNG-TEST.html" => [ + "doc/man7/EVP_RAND-CRNG-TEST.pod" + ], "doc/html/man7/EVP_RAND-CTR-DRBG.html" => [ "doc/man7/EVP_RAND-CTR-DRBG.pod" ], @@ -13117,6 +15278,9 @@ our %unified_info = ( "doc/html/man7/EVP_RAND-HMAC-DRBG.html" => [ "doc/man7/EVP_RAND-HMAC-DRBG.pod" ], + "doc/html/man7/EVP_RAND-JITTER.html" => [ + "doc/man7/EVP_RAND-JITTER.pod" + ], "doc/html/man7/EVP_RAND-SEED-SRC.html" => [ "doc/man7/EVP_RAND-SEED-SRC.pod" ], @@ -13138,9 +15302,15 @@ our %unified_info = ( "doc/html/man7/EVP_SIGNATURE-HMAC.html" => [ "doc/man7/EVP_SIGNATURE-HMAC.pod" ], + "doc/html/man7/EVP_SIGNATURE-ML-DSA.html" => [ + "doc/man7/EVP_SIGNATURE-ML-DSA.pod" + ], "doc/html/man7/EVP_SIGNATURE-RSA.html" => [ "doc/man7/EVP_SIGNATURE-RSA.pod" ], + "doc/html/man7/EVP_SIGNATURE-SLH-DSA.html" => [ + "doc/man7/EVP_SIGNATURE-SLH-DSA.pod" + ], "doc/html/man7/OSSL_PROVIDER-FIPS.html" => [ "doc/man7/OSSL_PROVIDER-FIPS.pod" ], @@ -13156,6 +15326,9 @@ our %unified_info = ( "doc/html/man7/OSSL_PROVIDER-null.html" => [ "doc/man7/OSSL_PROVIDER-null.pod" ], + "doc/html/man7/OSSL_STORE-winstore.html" => [ + "doc/man7/OSSL_STORE-winstore.pod" + ], "doc/html/man7/RAND.html" => [ "doc/man7/RAND.pod" ], @@ -13168,9 +15341,6 @@ our %unified_info = ( "doc/html/man7/bio.html" => [ "doc/man7/bio.pod" ], - "doc/html/man7/crypto.html" => [ - "doc/man7/crypto.pod" - ], "doc/html/man7/ct.html" => [ "doc/man7/ct.pod" ], @@ -13201,9 +15371,6 @@ our %unified_info = ( "doc/html/man7/life_cycle-rand.html" => [ "doc/man7/life_cycle-rand.pod" ], - "doc/html/man7/migration_guide.html" => [ - "doc/man7/migration_guide.pod" - ], "doc/html/man7/openssl-core.h.html" => [ "doc/man7/openssl-core.h.pod" ], @@ -13219,12 +15386,66 @@ our %unified_info = ( "doc/html/man7/openssl-glossary.html" => [ "doc/man7/openssl-glossary.pod" ], + "doc/html/man7/openssl-qlog.html" => [ + "doc/man7/openssl-qlog.pod" + ], + "doc/html/man7/openssl-quic-concurrency.html" => [ + "doc/man7/openssl-quic-concurrency.pod" + ], + "doc/html/man7/openssl-quic.html" => [ + "doc/man7/openssl-quic.pod" + ], "doc/html/man7/openssl-threads.html" => [ "doc/man7/openssl-threads.pod" ], "doc/html/man7/openssl_user_macros.html" => [ "doc/man7/openssl_user_macros.pod" ], + "doc/html/man7/ossl-guide-introduction.html" => [ + "doc/man7/ossl-guide-introduction.pod" + ], + "doc/html/man7/ossl-guide-libcrypto-introduction.html" => [ + "doc/man7/ossl-guide-libcrypto-introduction.pod" + ], + "doc/html/man7/ossl-guide-libraries-introduction.html" => [ + "doc/man7/ossl-guide-libraries-introduction.pod" + ], + "doc/html/man7/ossl-guide-libssl-introduction.html" => [ + "doc/man7/ossl-guide-libssl-introduction.pod" + ], + "doc/html/man7/ossl-guide-migration.html" => [ + "doc/man7/ossl-guide-migration.pod" + ], + "doc/html/man7/ossl-guide-quic-client-block.html" => [ + "doc/man7/ossl-guide-quic-client-block.pod" + ], + "doc/html/man7/ossl-guide-quic-client-non-block.html" => [ + "doc/man7/ossl-guide-quic-client-non-block.pod" + ], + "doc/html/man7/ossl-guide-quic-introduction.html" => [ + "doc/man7/ossl-guide-quic-introduction.pod" + ], + "doc/html/man7/ossl-guide-quic-multi-stream.html" => [ + "doc/man7/ossl-guide-quic-multi-stream.pod" + ], + "doc/html/man7/ossl-guide-quic-server-block.html" => [ + "doc/man7/ossl-guide-quic-server-block.pod" + ], + "doc/html/man7/ossl-guide-quic-server-non-block.html" => [ + "doc/man7/ossl-guide-quic-server-non-block.pod" + ], + "doc/html/man7/ossl-guide-tls-client-block.html" => [ + "doc/man7/ossl-guide-tls-client-block.pod" + ], + "doc/html/man7/ossl-guide-tls-client-non-block.html" => [ + "doc/man7/ossl-guide-tls-client-non-block.pod" + ], + "doc/html/man7/ossl-guide-tls-introduction.html" => [ + "doc/man7/ossl-guide-tls-introduction.pod" + ], + "doc/html/man7/ossl-guide-tls-server-block.html" => [ + "doc/man7/ossl-guide-tls-server-block.pod" + ], "doc/html/man7/ossl_store-file.html" => [ "doc/man7/ossl_store-file.pod" ], @@ -13279,6 +15500,9 @@ our %unified_info = ( "doc/html/man7/provider-signature.html" => [ "doc/man7/provider-signature.pod" ], + "doc/html/man7/provider-skeymgmt.html" => [ + "doc/man7/provider-skeymgmt.pod" + ], "doc/html/man7/provider-storemgmt.html" => [ "doc/man7/provider-storemgmt.pod" ], @@ -13288,9 +15512,6 @@ our %unified_info = ( "doc/html/man7/proxy-certificates.html" => [ "doc/man7/proxy-certificates.pod" ], - "doc/html/man7/ssl.html" => [ - "doc/man7/ssl.pod" - ], "doc/html/man7/x509.html" => [ "doc/man7/x509.pod" ], @@ -13438,6 +15659,9 @@ our %unified_info = ( "doc/man/man1/openssl-sess_id.1" => [ "doc/man1/openssl-sess_id.pod" ], + "doc/man/man1/openssl-skeyutl.1" => [ + "doc/man1/openssl-skeyutl.pod" + ], "doc/man/man1/openssl-smime.1" => [ "doc/man1/openssl-smime.pod" ], @@ -13579,6 +15803,9 @@ our %unified_info = ( "doc/man/man3/BIO_get_ex_new_index.3" => [ "doc/man3/BIO_get_ex_new_index.pod" ], + "doc/man/man3/BIO_get_rpoll_descriptor.3" => [ + "doc/man3/BIO_get_rpoll_descriptor.pod" + ], "doc/man/man3/BIO_meth_new.3" => [ "doc/man3/BIO_meth_new.pod" ], @@ -13615,6 +15842,9 @@ our %unified_info = ( "doc/man/man3/BIO_s_datagram.3" => [ "doc/man3/BIO_s_datagram.pod" ], + "doc/man/man3/BIO_s_dgram_pair.3" => [ + "doc/man3/BIO_s_dgram_pair.pod" + ], "doc/man/man3/BIO_s_fd.3" => [ "doc/man3/BIO_s_fd.pod" ], @@ -13630,6 +15860,9 @@ our %unified_info = ( "doc/man/man3/BIO_s_socket.3" => [ "doc/man3/BIO_s_socket.pod" ], + "doc/man/man3/BIO_sendmmsg.3" => [ + "doc/man3/BIO_sendmmsg.pod" + ], "doc/man/man3/BIO_set_callback.3" => [ "doc/man3/BIO_set_callback.pod" ], @@ -13702,6 +15935,9 @@ our %unified_info = ( "doc/man/man3/BUF_MEM_new.3" => [ "doc/man3/BUF_MEM_new.pod" ], + "doc/man/man3/CMAC_CTX.3" => [ + "doc/man3/CMAC_CTX.pod" + ], "doc/man/man3/CMS_EncryptedData_decrypt.3" => [ "doc/man3/CMS_EncryptedData_decrypt.pod" ], @@ -13768,6 +16004,9 @@ our %unified_info = ( "doc/man/man3/CMS_verify_receipt.3" => [ "doc/man3/CMS_verify_receipt.pod" ], + "doc/man/man3/COMP_CTX_new.3" => [ + "doc/man3/COMP_CTX_new.pod" + ], "doc/man/man3/CONF_modules_free.3" => [ "doc/man3/CONF_modules_free.pod" ], @@ -13867,6 +16106,12 @@ our %unified_info = ( "doc/man/man3/DTLS_set_timer_cb.3" => [ "doc/man3/DTLS_set_timer_cb.pod" ], + "doc/man/man3/DTLSv1_get_timeout.3" => [ + "doc/man3/DTLSv1_get_timeout.pod" + ], + "doc/man/man3/DTLSv1_handle_timeout.3" => [ + "doc/man3/DTLSv1_handle_timeout.pod" + ], "doc/man/man3/DTLSv1_listen.3" => [ "doc/man3/DTLSv1_listen.pod" ], @@ -14005,6 +16250,9 @@ our %unified_info = ( "doc/man/man3/EVP_PKEY_CTX_get0_pkey.3" => [ "doc/man3/EVP_PKEY_CTX_get0_pkey.pod" ], + "doc/man/man3/EVP_PKEY_CTX_get_algor.3" => [ + "doc/man3/EVP_PKEY_CTX_get_algor.pod" + ], "doc/man/man3/EVP_PKEY_CTX_new.3" => [ "doc/man3/EVP_PKEY_CTX_new.pod" ], @@ -14122,6 +16370,12 @@ our %unified_info = ( "doc/man/man3/EVP_SIGNATURE.3" => [ "doc/man3/EVP_SIGNATURE.pod" ], + "doc/man/man3/EVP_SKEY.3" => [ + "doc/man3/EVP_SKEY.pod" + ], + "doc/man/man3/EVP_SKEYMGMT.3" => [ + "doc/man3/EVP_SKEYMGMT.pod" + ], "doc/man/man3/EVP_SealInit.3" => [ "doc/man3/EVP_SealInit.pod" ], @@ -14209,6 +16463,9 @@ our %unified_info = ( "doc/man/man3/EVP_whirlpool.3" => [ "doc/man3/EVP_whirlpool.pod" ], + "doc/man/man3/GENERAL_NAME.3" => [ + "doc/man3/GENERAL_NAME.pod" + ], "doc/man/man3/HMAC.3" => [ "doc/man3/HMAC.pod" ], @@ -14281,9 +16538,15 @@ our %unified_info = ( "doc/man/man3/OPENSSL_load_builtin_modules.3" => [ "doc/man3/OPENSSL_load_builtin_modules.pod" ], + "doc/man/man3/OPENSSL_load_u16_le.3" => [ + "doc/man3/OPENSSL_load_u16_le.pod" + ], "doc/man/man3/OPENSSL_malloc.3" => [ "doc/man3/OPENSSL_malloc.pod" ], + "doc/man/man3/OPENSSL_riscvcap.3" => [ + "doc/man3/OPENSSL_riscvcap.pod" + ], "doc/man/man3/OPENSSL_s390xcap.3" => [ "doc/man3/OPENSSL_s390xcap.pod" ], @@ -14299,12 +16562,18 @@ our %unified_info = ( "doc/man/man3/OSSL_CALLBACK.3" => [ "doc/man3/OSSL_CALLBACK.pod" ], + "doc/man/man3/OSSL_CMP_ATAV_set0.3" => [ + "doc/man3/OSSL_CMP_ATAV_set0.pod" + ], "doc/man/man3/OSSL_CMP_CTX_new.3" => [ "doc/man3/OSSL_CMP_CTX_new.pod" ], "doc/man/man3/OSSL_CMP_HDR_get0_transactionID.3" => [ "doc/man3/OSSL_CMP_HDR_get0_transactionID.pod" ], + "doc/man/man3/OSSL_CMP_ITAV_new_caCerts.3" => [ + "doc/man3/OSSL_CMP_ITAV_new_caCerts.pod" + ], "doc/man/man3/OSSL_CMP_ITAV_set0.3" => [ "doc/man3/OSSL_CMP_ITAV_set0.pod" ], @@ -14374,9 +16643,18 @@ our %unified_info = ( "doc/man/man3/OSSL_ENCODER_to_bio.3" => [ "doc/man3/OSSL_ENCODER_to_bio.pod" ], + "doc/man/man3/OSSL_ERR_STATE_save.3" => [ + "doc/man3/OSSL_ERR_STATE_save.pod" + ], "doc/man/man3/OSSL_ESS_check_signing_certs.3" => [ "doc/man3/OSSL_ESS_check_signing_certs.pod" ], + "doc/man/man3/OSSL_GENERAL_NAMES_print.3" => [ + "doc/man3/OSSL_GENERAL_NAMES_print.pod" + ], + "doc/man/man3/OSSL_HPKE_CTX_new.3" => [ + "doc/man3/OSSL_HPKE_CTX_new.pod" + ], "doc/man/man3/OSSL_HTTP_REQ_CTX.3" => [ "doc/man3/OSSL_HTTP_REQ_CTX.pod" ], @@ -14386,12 +16664,24 @@ our %unified_info = ( "doc/man/man3/OSSL_HTTP_transfer.3" => [ "doc/man3/OSSL_HTTP_transfer.pod" ], + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX.3" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX.pod" + ], + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX_print.3" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX_print.pod" + ], + "doc/man/man3/OSSL_INDICATOR_set_callback.3" => [ + "doc/man3/OSSL_INDICATOR_set_callback.pod" + ], "doc/man/man3/OSSL_ITEM.3" => [ "doc/man3/OSSL_ITEM.pod" ], "doc/man/man3/OSSL_LIB_CTX.3" => [ "doc/man3/OSSL_LIB_CTX.pod" ], + "doc/man/man3/OSSL_LIB_CTX_set_conf_diagnostics.3" => [ + "doc/man3/OSSL_LIB_CTX_set_conf_diagnostics.pod" + ], "doc/man/man3/OSSL_PARAM.3" => [ "doc/man3/OSSL_PARAM.pod" ], @@ -14407,9 +16697,15 @@ our %unified_info = ( "doc/man/man3/OSSL_PARAM_int.3" => [ "doc/man3/OSSL_PARAM_int.pod" ], + "doc/man/man3/OSSL_PARAM_print_to_bio.3" => [ + "doc/man3/OSSL_PARAM_print_to_bio.pod" + ], "doc/man/man3/OSSL_PROVIDER.3" => [ "doc/man3/OSSL_PROVIDER.pod" ], + "doc/man/man3/OSSL_QUIC_client_method.3" => [ + "doc/man3/OSSL_QUIC_client_method.pod" + ], "doc/man/man3/OSSL_SELF_TEST_new.3" => [ "doc/man3/OSSL_SELF_TEST_new.pod" ], @@ -14434,6 +16730,9 @@ our %unified_info = ( "doc/man/man3/OSSL_STORE_open.3" => [ "doc/man3/OSSL_STORE_open.pod" ], + "doc/man/man3/OSSL_sleep.3" => [ + "doc/man3/OSSL_sleep.pod" + ], "doc/man/man3/OSSL_trace_enabled.3" => [ "doc/man3/OSSL_trace_enabled.pod" ], @@ -14449,6 +16748,9 @@ our %unified_info = ( "doc/man/man3/OpenSSL_version.3" => [ "doc/man3/OpenSSL_version.pod" ], + "doc/man/man3/PBMAC1_get1_pbkdf2_param.3" => [ + "doc/man3/PBMAC1_get1_pbkdf2_param.pod" + ], "doc/man/man3/PEM_X509_INFO_read_bio_ex.3" => [ "doc/man3/PEM_X509_INFO_read_bio_ex.pod" ], @@ -14485,6 +16787,9 @@ our %unified_info = ( "doc/man/man3/PKCS12_SAFEBAG_get1_cert.3" => [ "doc/man3/PKCS12_SAFEBAG_get1_cert.pod" ], + "doc/man/man3/PKCS12_SAFEBAG_set0_attrs.3" => [ + "doc/man3/PKCS12_SAFEBAG_set0_attrs.pod" + ], "doc/man/man3/PKCS12_add1_attr_by_NID.3" => [ "doc/man3/PKCS12_add1_attr_by_NID.pod" ], @@ -14758,6 +17063,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set0_CA_list.3" => [ "doc/man3/SSL_CTX_set0_CA_list.pod" ], + "doc/man/man3/SSL_CTX_set1_cert_comp_preference.3" => [ + "doc/man3/SSL_CTX_set1_cert_comp_preference.pod" + ], "doc/man/man3/SSL_CTX_set1_curves.3" => [ "doc/man3/SSL_CTX_set1_curves.pod" ], @@ -14797,6 +17105,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_default_passwd_cb.3" => [ "doc/man3/SSL_CTX_set_default_passwd_cb.pod" ], + "doc/man/man3/SSL_CTX_set_domain_flags.3" => [ + "doc/man3/SSL_CTX_set_domain_flags.pod" + ], "doc/man/man3/SSL_CTX_set_generate_session_id.3" => [ "doc/man3/SSL_CTX_set_generate_session_id.pod" ], @@ -14818,6 +17129,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_msg_callback.3" => [ "doc/man3/SSL_CTX_set_msg_callback.pod" ], + "doc/man/man3/SSL_CTX_set_new_pending_conn_cb.3" => [ + "doc/man3/SSL_CTX_set_new_pending_conn_cb.pod" + ], "doc/man/man3/SSL_CTX_set_num_tickets.3" => [ "doc/man3/SSL_CTX_set_num_tickets.pod" ], @@ -14932,6 +17246,9 @@ our %unified_info = ( "doc/man/man3/SSL_accept.3" => [ "doc/man3/SSL_accept.pod" ], + "doc/man/man3/SSL_accept_stream.3" => [ + "doc/man3/SSL_accept_stream.pod" + ], "doc/man/man3/SSL_alert_type_string.3" => [ "doc/man3/SSL_alert_type_string.pod" ], @@ -14959,9 +17276,21 @@ our %unified_info = ( "doc/man/man3/SSL_free.3" => [ "doc/man3/SSL_free.pod" ], + "doc/man/man3/SSL_get0_connection.3" => [ + "doc/man3/SSL_get0_connection.pod" + ], + "doc/man/man3/SSL_get0_group_name.3" => [ + "doc/man3/SSL_get0_group_name.pod" + ], + "doc/man/man3/SSL_get0_peer_rpk.3" => [ + "doc/man3/SSL_get0_peer_rpk.pod" + ], "doc/man/man3/SSL_get0_peer_scts.3" => [ "doc/man3/SSL_get0_peer_scts.pod" ], + "doc/man/man3/SSL_get1_builtin_sigalgs.3" => [ + "doc/man3/SSL_get1_builtin_sigalgs.pod" + ], "doc/man/man3/SSL_get_SSL_CTX.3" => [ "doc/man3/SSL_get_SSL_CTX.pod" ], @@ -14977,6 +17306,9 @@ our %unified_info = ( "doc/man/man3/SSL_get_client_random.3" => [ "doc/man3/SSL_get_client_random.pod" ], + "doc/man/man3/SSL_get_conn_close_info.3" => [ + "doc/man3/SSL_get_conn_close_info.pod" + ], "doc/man/man3/SSL_get_current_cipher.3" => [ "doc/man3/SSL_get_current_cipher.pod" ], @@ -14986,12 +17318,18 @@ our %unified_info = ( "doc/man/man3/SSL_get_error.3" => [ "doc/man3/SSL_get_error.pod" ], + "doc/man/man3/SSL_get_event_timeout.3" => [ + "doc/man3/SSL_get_event_timeout.pod" + ], "doc/man/man3/SSL_get_extms_support.3" => [ "doc/man3/SSL_get_extms_support.pod" ], "doc/man/man3/SSL_get_fd.3" => [ "doc/man3/SSL_get_fd.pod" ], + "doc/man/man3/SSL_get_handshake_rtt.3" => [ + "doc/man3/SSL_get_handshake_rtt.pod" + ], "doc/man/man3/SSL_get_peer_cert_chain.3" => [ "doc/man3/SSL_get_peer_cert_chain.pod" ], @@ -15010,12 +17348,24 @@ our %unified_info = ( "doc/man/man3/SSL_get_rbio.3" => [ "doc/man3/SSL_get_rbio.pod" ], + "doc/man/man3/SSL_get_rpoll_descriptor.3" => [ + "doc/man3/SSL_get_rpoll_descriptor.pod" + ], "doc/man/man3/SSL_get_session.3" => [ "doc/man3/SSL_get_session.pod" ], "doc/man/man3/SSL_get_shared_sigalgs.3" => [ "doc/man3/SSL_get_shared_sigalgs.pod" ], + "doc/man/man3/SSL_get_stream_id.3" => [ + "doc/man3/SSL_get_stream_id.pod" + ], + "doc/man/man3/SSL_get_stream_read_state.3" => [ + "doc/man3/SSL_get_stream_read_state.pod" + ], + "doc/man/man3/SSL_get_value_uint.3" => [ + "doc/man3/SSL_get_value_uint.pod" + ], "doc/man/man3/SSL_get_verify_result.3" => [ "doc/man3/SSL_get_verify_result.pod" ], @@ -15025,9 +17375,15 @@ our %unified_info = ( "doc/man/man3/SSL_group_to_name.3" => [ "doc/man3/SSL_group_to_name.pod" ], + "doc/man/man3/SSL_handle_events.3" => [ + "doc/man3/SSL_handle_events.pod" + ], "doc/man/man3/SSL_in_init.3" => [ "doc/man3/SSL_in_init.pod" ], + "doc/man/man3/SSL_inject_net_dgram.3" => [ + "doc/man3/SSL_inject_net_dgram.pod" + ], "doc/man/man3/SSL_key_update.3" => [ "doc/man3/SSL_key_update.pod" ], @@ -15040,9 +17396,21 @@ our %unified_info = ( "doc/man/man3/SSL_new.3" => [ "doc/man3/SSL_new.pod" ], + "doc/man/man3/SSL_new_domain.3" => [ + "doc/man3/SSL_new_domain.pod" + ], + "doc/man/man3/SSL_new_listener.3" => [ + "doc/man3/SSL_new_listener.pod" + ], + "doc/man/man3/SSL_new_stream.3" => [ + "doc/man3/SSL_new_stream.pod" + ], "doc/man/man3/SSL_pending.3" => [ "doc/man3/SSL_pending.pod" ], + "doc/man/man3/SSL_poll.3" => [ + "doc/man3/SSL_poll.pod" + ], "doc/man/man3/SSL_read.3" => [ "doc/man3/SSL_read.pod" ], @@ -15058,24 +17426,45 @@ our %unified_info = ( "doc/man/man3/SSL_set1_host.3" => [ "doc/man3/SSL_set1_host.pod" ], + "doc/man/man3/SSL_set1_initial_peer_addr.3" => [ + "doc/man3/SSL_set1_initial_peer_addr.pod" + ], + "doc/man/man3/SSL_set1_server_cert_type.3" => [ + "doc/man3/SSL_set1_server_cert_type.pod" + ], "doc/man/man3/SSL_set_async_callback.3" => [ "doc/man3/SSL_set_async_callback.pod" ], "doc/man/man3/SSL_set_bio.3" => [ "doc/man3/SSL_set_bio.pod" ], + "doc/man/man3/SSL_set_blocking_mode.3" => [ + "doc/man3/SSL_set_blocking_mode.pod" + ], "doc/man/man3/SSL_set_connect_state.3" => [ "doc/man3/SSL_set_connect_state.pod" ], + "doc/man/man3/SSL_set_default_stream_mode.3" => [ + "doc/man3/SSL_set_default_stream_mode.pod" + ], "doc/man/man3/SSL_set_fd.3" => [ "doc/man3/SSL_set_fd.pod" ], + "doc/man/man3/SSL_set_incoming_stream_policy.3" => [ + "doc/man3/SSL_set_incoming_stream_policy.pod" + ], + "doc/man/man3/SSL_set_quic_tls_cbs.3" => [ + "doc/man3/SSL_set_quic_tls_cbs.pod" + ], "doc/man/man3/SSL_set_retry_verify.3" => [ "doc/man3/SSL_set_retry_verify.pod" ], "doc/man/man3/SSL_set_session.3" => [ "doc/man3/SSL_set_session.pod" ], + "doc/man/man3/SSL_set_session_secret_cb.3" => [ + "doc/man3/SSL_set_session_secret_cb.pod" + ], "doc/man/man3/SSL_set_shutdown.3" => [ "doc/man3/SSL_set_shutdown.pod" ], @@ -15088,6 +17477,12 @@ our %unified_info = ( "doc/man/man3/SSL_state_string.3" => [ "doc/man3/SSL_state_string.pod" ], + "doc/man/man3/SSL_stream_conclude.3" => [ + "doc/man3/SSL_stream_conclude.pod" + ], + "doc/man/man3/SSL_stream_reset.3" => [ + "doc/man3/SSL_stream_reset.pod" + ], "doc/man/man3/SSL_want.3" => [ "doc/man3/SSL_want.pod" ], @@ -15097,8 +17492,8 @@ our %unified_info = ( "doc/man/man3/TS_RESP_CTX_new.3" => [ "doc/man3/TS_RESP_CTX_new.pod" ], - "doc/man/man3/TS_VERIFY_CTX_set_certs.3" => [ - "doc/man3/TS_VERIFY_CTX_set_certs.pod" + "doc/man/man3/TS_VERIFY_CTX.3" => [ + "doc/man3/TS_VERIFY_CTX.pod" ], "doc/man/man3/UI_STRING.3" => [ "doc/man3/UI_STRING.pod" @@ -15118,6 +17513,21 @@ our %unified_info = ( "doc/man/man3/X509V3_set_ctx.3" => [ "doc/man3/X509V3_set_ctx.pod" ], + "doc/man/man3/X509_ACERT_add1_attr.3" => [ + "doc/man3/X509_ACERT_add1_attr.pod" + ], + "doc/man/man3/X509_ACERT_add_attr_nconf.3" => [ + "doc/man3/X509_ACERT_add_attr_nconf.pod" + ], + "doc/man/man3/X509_ACERT_get0_holder_baseCertId.3" => [ + "doc/man3/X509_ACERT_get0_holder_baseCertId.pod" + ], + "doc/man/man3/X509_ACERT_get_attr.3" => [ + "doc/man3/X509_ACERT_get_attr.pod" + ], + "doc/man/man3/X509_ACERT_print_ex.3" => [ + "doc/man3/X509_ACERT_print_ex.pod" + ], "doc/man/man3/X509_ALGOR_dup.3" => [ "doc/man3/X509_ALGOR_dup.pod" ], @@ -15166,6 +17576,9 @@ our %unified_info = ( "doc/man/man3/X509_SIG_get0.3" => [ "doc/man3/X509_SIG_get0.pod" ], + "doc/man/man3/X509_STORE_CTX_get_by_subject.3" => [ + "doc/man3/X509_STORE_CTX_get_by_subject.pod" + ], "doc/man/man3/X509_STORE_CTX_get_error.3" => [ "doc/man3/X509_STORE_CTX_get_error.pod" ], @@ -15232,6 +17645,9 @@ our %unified_info = ( "doc/man/man3/X509_get0_uids.3" => [ "doc/man3/X509_get0_uids.pod" ], + "doc/man/man3/X509_get_default_cert_file.3" => [ + "doc/man3/X509_get_default_cert_file.pod" + ], "doc/man/man3/X509_get_extension_flags.3" => [ "doc/man3/X509_get_extension_flags.pod" ], @@ -15355,9 +17771,15 @@ our %unified_info = ( "doc/man/man7/EVP_CIPHER-SM4.7" => [ "doc/man7/EVP_CIPHER-SM4.pod" ], + "doc/man/man7/EVP_KDF-ARGON2.7" => [ + "doc/man7/EVP_KDF-ARGON2.pod" + ], "doc/man/man7/EVP_KDF-HKDF.7" => [ "doc/man7/EVP_KDF-HKDF.pod" ], + "doc/man/man7/EVP_KDF-HMAC-DRBG.7" => [ + "doc/man7/EVP_KDF-HMAC-DRBG.pod" + ], "doc/man/man7/EVP_KDF-KB.7" => [ "doc/man7/EVP_KDF-KB.pod" ], @@ -15373,6 +17795,9 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-PKCS12KDF.7" => [ "doc/man7/EVP_KDF-PKCS12KDF.pod" ], + "doc/man/man7/EVP_KDF-PVKKDF.7" => [ + "doc/man7/EVP_KDF-PVKKDF.pod" + ], "doc/man/man7/EVP_KDF-SCRYPT.7" => [ "doc/man7/EVP_KDF-SCRYPT.pod" ], @@ -15397,9 +17822,18 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-X963.7" => [ "doc/man7/EVP_KDF-X963.pod" ], + "doc/man/man7/EVP_KEM-EC.7" => [ + "doc/man7/EVP_KEM-EC.pod" + ], + "doc/man/man7/EVP_KEM-ML-KEM.7" => [ + "doc/man7/EVP_KEM-ML-KEM.pod" + ], "doc/man/man7/EVP_KEM-RSA.7" => [ "doc/man7/EVP_KEM-RSA.pod" ], + "doc/man/man7/EVP_KEM-X25519.7" => [ + "doc/man7/EVP_KEM-X25519.pod" + ], "doc/man/man7/EVP_KEYEXCH-DH.7" => [ "doc/man7/EVP_KEYEXCH-DH.pod" ], @@ -15433,6 +17867,9 @@ our %unified_info = ( "doc/man/man7/EVP_MD-BLAKE2.7" => [ "doc/man7/EVP_MD-BLAKE2.pod" ], + "doc/man/man7/EVP_MD-KECCAK.7" => [ + "doc/man7/EVP_MD-KECCAK.pod" + ], "doc/man/man7/EVP_MD-MD2.7" => [ "doc/man7/EVP_MD-MD2.pod" ], @@ -15490,15 +17927,27 @@ our %unified_info = ( "doc/man/man7/EVP_PKEY-HMAC.7" => [ "doc/man7/EVP_PKEY-HMAC.pod" ], + "doc/man/man7/EVP_PKEY-ML-DSA.7" => [ + "doc/man7/EVP_PKEY-ML-DSA.pod" + ], + "doc/man/man7/EVP_PKEY-ML-KEM.7" => [ + "doc/man7/EVP_PKEY-ML-KEM.pod" + ], "doc/man/man7/EVP_PKEY-RSA.7" => [ "doc/man7/EVP_PKEY-RSA.pod" ], + "doc/man/man7/EVP_PKEY-SLH-DSA.7" => [ + "doc/man7/EVP_PKEY-SLH-DSA.pod" + ], "doc/man/man7/EVP_PKEY-SM2.7" => [ "doc/man7/EVP_PKEY-SM2.pod" ], "doc/man/man7/EVP_PKEY-X25519.7" => [ "doc/man7/EVP_PKEY-X25519.pod" ], + "doc/man/man7/EVP_RAND-CRNG-TEST.7" => [ + "doc/man7/EVP_RAND-CRNG-TEST.pod" + ], "doc/man/man7/EVP_RAND-CTR-DRBG.7" => [ "doc/man7/EVP_RAND-CTR-DRBG.pod" ], @@ -15508,6 +17957,9 @@ our %unified_info = ( "doc/man/man7/EVP_RAND-HMAC-DRBG.7" => [ "doc/man7/EVP_RAND-HMAC-DRBG.pod" ], + "doc/man/man7/EVP_RAND-JITTER.7" => [ + "doc/man7/EVP_RAND-JITTER.pod" + ], "doc/man/man7/EVP_RAND-SEED-SRC.7" => [ "doc/man7/EVP_RAND-SEED-SRC.pod" ], @@ -15529,9 +17981,15 @@ our %unified_info = ( "doc/man/man7/EVP_SIGNATURE-HMAC.7" => [ "doc/man7/EVP_SIGNATURE-HMAC.pod" ], + "doc/man/man7/EVP_SIGNATURE-ML-DSA.7" => [ + "doc/man7/EVP_SIGNATURE-ML-DSA.pod" + ], "doc/man/man7/EVP_SIGNATURE-RSA.7" => [ "doc/man7/EVP_SIGNATURE-RSA.pod" ], + "doc/man/man7/EVP_SIGNATURE-SLH-DSA.7" => [ + "doc/man7/EVP_SIGNATURE-SLH-DSA.pod" + ], "doc/man/man7/OSSL_PROVIDER-FIPS.7" => [ "doc/man7/OSSL_PROVIDER-FIPS.pod" ], @@ -15547,6 +18005,9 @@ our %unified_info = ( "doc/man/man7/OSSL_PROVIDER-null.7" => [ "doc/man7/OSSL_PROVIDER-null.pod" ], + "doc/man/man7/OSSL_STORE-winstore.7" => [ + "doc/man7/OSSL_STORE-winstore.pod" + ], "doc/man/man7/RAND.7" => [ "doc/man7/RAND.pod" ], @@ -15559,9 +18020,6 @@ our %unified_info = ( "doc/man/man7/bio.7" => [ "doc/man7/bio.pod" ], - "doc/man/man7/crypto.7" => [ - "doc/man7/crypto.pod" - ], "doc/man/man7/ct.7" => [ "doc/man7/ct.pod" ], @@ -15592,9 +18050,6 @@ our %unified_info = ( "doc/man/man7/life_cycle-rand.7" => [ "doc/man7/life_cycle-rand.pod" ], - "doc/man/man7/migration_guide.7" => [ - "doc/man7/migration_guide.pod" - ], "doc/man/man7/openssl-core.h.7" => [ "doc/man7/openssl-core.h.pod" ], @@ -15610,12 +18065,66 @@ our %unified_info = ( "doc/man/man7/openssl-glossary.7" => [ "doc/man7/openssl-glossary.pod" ], + "doc/man/man7/openssl-qlog.7" => [ + "doc/man7/openssl-qlog.pod" + ], + "doc/man/man7/openssl-quic-concurrency.7" => [ + "doc/man7/openssl-quic-concurrency.pod" + ], + "doc/man/man7/openssl-quic.7" => [ + "doc/man7/openssl-quic.pod" + ], "doc/man/man7/openssl-threads.7" => [ "doc/man7/openssl-threads.pod" ], "doc/man/man7/openssl_user_macros.7" => [ "doc/man7/openssl_user_macros.pod" ], + "doc/man/man7/ossl-guide-introduction.7" => [ + "doc/man7/ossl-guide-introduction.pod" + ], + "doc/man/man7/ossl-guide-libcrypto-introduction.7" => [ + "doc/man7/ossl-guide-libcrypto-introduction.pod" + ], + "doc/man/man7/ossl-guide-libraries-introduction.7" => [ + "doc/man7/ossl-guide-libraries-introduction.pod" + ], + "doc/man/man7/ossl-guide-libssl-introduction.7" => [ + "doc/man7/ossl-guide-libssl-introduction.pod" + ], + "doc/man/man7/ossl-guide-migration.7" => [ + "doc/man7/ossl-guide-migration.pod" + ], + "doc/man/man7/ossl-guide-quic-client-block.7" => [ + "doc/man7/ossl-guide-quic-client-block.pod" + ], + "doc/man/man7/ossl-guide-quic-client-non-block.7" => [ + "doc/man7/ossl-guide-quic-client-non-block.pod" + ], + "doc/man/man7/ossl-guide-quic-introduction.7" => [ + "doc/man7/ossl-guide-quic-introduction.pod" + ], + "doc/man/man7/ossl-guide-quic-multi-stream.7" => [ + "doc/man7/ossl-guide-quic-multi-stream.pod" + ], + "doc/man/man7/ossl-guide-quic-server-block.7" => [ + "doc/man7/ossl-guide-quic-server-block.pod" + ], + "doc/man/man7/ossl-guide-quic-server-non-block.7" => [ + "doc/man7/ossl-guide-quic-server-non-block.pod" + ], + "doc/man/man7/ossl-guide-tls-client-block.7" => [ + "doc/man7/ossl-guide-tls-client-block.pod" + ], + "doc/man/man7/ossl-guide-tls-client-non-block.7" => [ + "doc/man7/ossl-guide-tls-client-non-block.pod" + ], + "doc/man/man7/ossl-guide-tls-introduction.7" => [ + "doc/man7/ossl-guide-tls-introduction.pod" + ], + "doc/man/man7/ossl-guide-tls-server-block.7" => [ + "doc/man7/ossl-guide-tls-server-block.pod" + ], "doc/man/man7/ossl_store-file.7" => [ "doc/man7/ossl_store-file.pod" ], @@ -15670,6 +18179,9 @@ our %unified_info = ( "doc/man/man7/provider-signature.7" => [ "doc/man7/provider-signature.pod" ], + "doc/man/man7/provider-skeymgmt.7" => [ + "doc/man7/provider-skeymgmt.pod" + ], "doc/man/man7/provider-storemgmt.7" => [ "doc/man7/provider-storemgmt.pod" ], @@ -15679,9 +18191,6 @@ our %unified_info = ( "doc/man/man7/proxy-certificates.7" => [ "doc/man7/proxy-certificates.pod" ], - "doc/man/man7/ssl.7" => [ - "doc/man7/ssl.pod" - ], "doc/man/man7/x509.7" => [ "doc/man7/x509.pod" ], @@ -15817,6 +18326,9 @@ our %unified_info = ( "doc/man1/openssl-sess_id.pod" => [ "doc/man1/openssl-sess_id.pod.in" ], + "doc/man1/openssl-skeyutl.pod" => [ + "doc/man1/openssl-skeyutl.pod.in" + ], "doc/man1/openssl-smime.pod" => [ "doc/man1/openssl-smime.pod.in" ], @@ -15853,12 +18365,30 @@ our %unified_info = ( "engines/e_padlock-x86_64.s" => [ "engines/asm/e_padlock-x86_64.pl" ], + "exporters/OpenSSLConfig.cmake" => [ + "exporters/cmake/OpenSSLConfig.cmake.in" + ], + "exporters/OpenSSLConfigVersion.cmake" => [ + "exporters/cmake/OpenSSLConfigVersion.cmake.in" + ], + "exporters/libcrypto.pc" => [ + "exporters/pkg-config/libcrypto.pc.in" + ], + "exporters/libssl.pc" => [ + "exporters/pkg-config/libssl.pc.in" + ], + "exporters/openssl.pc" => [ + "exporters/pkg-config/openssl.pc.in" + ], "include/crypto/bn_conf.h" => [ "include/crypto/bn_conf.h.in" ], "include/crypto/dso_conf.h" => [ "include/crypto/dso_conf.h.in" ], + "include/internal/param_names.h" => [ + "include/internal/param_names.h.in" + ], "include/openssl/asn1.h" => [ "include/openssl/asn1.h.in" ], @@ -15874,12 +18404,18 @@ our %unified_info = ( "include/openssl/cms.h" => [ "include/openssl/cms.h.in" ], + "include/openssl/comp.h" => [ + "include/openssl/comp.h.in" + ], "include/openssl/conf.h" => [ "include/openssl/conf.h.in" ], "include/openssl/configuration.h" => [ "include/openssl/configuration.h.in" ], + "include/openssl/core_names.h" => [ + "include/openssl/core_names.h.in" + ], "include/openssl/crmf.h" => [ "include/openssl/crmf.h.in" ], @@ -15928,12 +18464,39 @@ our %unified_info = ( "include/openssl/x509.h" => [ "include/openssl/x509.h.in" ], + "include/openssl/x509_acert.h" => [ + "include/openssl/x509_acert.h.in" + ], "include/openssl/x509_vfy.h" => [ "include/openssl/x509_vfy.h.in" ], "include/openssl/x509v3.h" => [ "include/openssl/x509v3.h.in" ], + "installdata.pm" => [ + "util/mkinstallvars.pl", + "\"PREFIX=\$(INSTALLTOP)\"", + "BINDIR=bin", + "\"LIBDIR=\$(LIBDIR)\"", + "\"libdir=\$(libdir)\"", + "INCLUDEDIR=include", + "APPLINKDIR=include/openssl", + "\"ENGINESDIR=\$(ENGINESDIR)\"", + "\"MODULESDIR=\$(MODULESDIR)\"", + "\"PKGCONFIGDIR=\$(PKGCONFIGDIR)\"", + "\"CMAKECONFIGDIR=\$(CMAKECONFIGDIR)\"", + "\"LDLIBS=\$(LIB_EX_LIBS)\"", + "\"VERSION=\$(VERSION)\"" + ], + "libcrypto.pc" => [ + "exporters/pkg-config/libcrypto.pc.in" + ], + "libssl.pc" => [ + "exporters/pkg-config/libssl.pc.in" + ], + "openssl.pc" => [ + "exporters/pkg-config/openssl.pc.in" + ], "providers/common/der/der_digests_gen.c" => [ "providers/common/der/der_digests_gen.c.in" ], @@ -15946,9 +18509,15 @@ our %unified_info = ( "providers/common/der/der_ecx_gen.c" => [ "providers/common/der/der_ecx_gen.c.in" ], + "providers/common/der/der_ml_dsa_gen.c" => [ + "providers/common/der/der_ml_dsa_gen.c.in" + ], "providers/common/der/der_rsa_gen.c" => [ "providers/common/der/der_rsa_gen.c.in" ], + "providers/common/der/der_slh_dsa_gen.c" => [ + "providers/common/der/der_slh_dsa_gen.c.in" + ], "providers/common/der/der_sm2_gen.c" => [ "providers/common/der/der_sm2_gen.c.in" ], @@ -15967,9 +18536,15 @@ our %unified_info = ( "providers/common/include/prov/der_ecx.h" => [ "providers/common/include/prov/der_ecx.h.in" ], + "providers/common/include/prov/der_ml_dsa.h" => [ + "providers/common/include/prov/der_ml_dsa.h.in" + ], "providers/common/include/prov/der_rsa.h" => [ "providers/common/include/prov/der_rsa.h.in" ], + "providers/common/include/prov/der_slh_dsa.h" => [ + "providers/common/include/prov/der_slh_dsa.h.in" + ], "providers/common/include/prov/der_sm2.h" => [ "providers/common/include/prov/der_sm2.h.in" ], @@ -16005,6 +18580,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "buffer" ], + "test/buildtest_byteorder.c" => [ + "test/generate_buildtest.pl", + "byteorder" + ], "test/buildtest_camellia.c" => [ "test/generate_buildtest.pl", "camellia" @@ -16037,10 +18616,6 @@ our %unified_info = ( "test/generate_buildtest.pl", "core_dispatch" ], - "test/buildtest_core_names.c" => [ - "test/generate_buildtest.pl", - "core_names" - ], "test/buildtest_core_object.c" => [ "test/generate_buildtest.pl", "core_object" @@ -16073,6 +18648,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "e_os2" ], + "test/buildtest_e_ostime.c" => [ + "test/generate_buildtest.pl", + "e_ostime" + ], "test/buildtest_ebcdic.c" => [ "test/generate_buildtest.pl", "ebcdic" @@ -16109,6 +18688,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "hmac" ], + "test/buildtest_hpke.c" => [ + "test/generate_buildtest.pl", + "hpke" + ], "test/buildtest_http.c" => [ "test/generate_buildtest.pl", "http" @@ -16117,6 +18700,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "idea" ], + "test/buildtest_indicator.c" => [ + "test/generate_buildtest.pl", + "indicator" + ], "test/buildtest_kdf.c" => [ "test/generate_buildtest.pl", "kdf" @@ -16137,6 +18724,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "mdc2" ], + "test/buildtest_ml_kem.c" => [ + "test/generate_buildtest.pl", + "ml_kem" + ], "test/buildtest_modes.c" => [ "test/generate_buildtest.pl", "modes" @@ -16177,6 +18768,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "provider" ], + "test/buildtest_quic.c" => [ + "test/generate_buildtest.pl", + "quic" + ], "test/buildtest_rand.c" => [ "test/generate_buildtest.pl", "rand" @@ -16233,6 +18828,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "symhacks" ], + "test/buildtest_thread.c" => [ + "test/generate_buildtest.pl", + "thread" + ], "test/buildtest_tls1.c" => [ "test/generate_buildtest.pl", "tls1" @@ -16307,6 +18906,7 @@ our %unified_info = ( "doc/html/man1/openssl-s_server.html", "doc/html/man1/openssl-s_time.html", "doc/html/man1/openssl-sess_id.html", + "doc/html/man1/openssl-skeyutl.html", "doc/html/man1/openssl-smime.html", "doc/html/man1/openssl-speed.html", "doc/html/man1/openssl-spkac.html", @@ -16356,6 +18956,7 @@ our %unified_info = ( "doc/html/man3/BIO_find_type.html", "doc/html/man3/BIO_get_data.html", "doc/html/man3/BIO_get_ex_new_index.html", + "doc/html/man3/BIO_get_rpoll_descriptor.html", "doc/html/man3/BIO_meth_new.html", "doc/html/man3/BIO_new.html", "doc/html/man3/BIO_new_CMS.html", @@ -16368,11 +18969,13 @@ our %unified_info = ( "doc/html/man3/BIO_s_connect.html", "doc/html/man3/BIO_s_core.html", "doc/html/man3/BIO_s_datagram.html", + "doc/html/man3/BIO_s_dgram_pair.html", "doc/html/man3/BIO_s_fd.html", "doc/html/man3/BIO_s_file.html", "doc/html/man3/BIO_s_mem.html", "doc/html/man3/BIO_s_null.html", "doc/html/man3/BIO_s_socket.html", + "doc/html/man3/BIO_sendmmsg.html", "doc/html/man3/BIO_set_callback.html", "doc/html/man3/BIO_should_retry.html", "doc/html/man3/BIO_socket_wait.html", @@ -16397,6 +19000,7 @@ our %unified_info = ( "doc/html/man3/BN_swap.html", "doc/html/man3/BN_zero.html", "doc/html/man3/BUF_MEM_new.html", + "doc/html/man3/CMAC_CTX.html", "doc/html/man3/CMS_EncryptedData_decrypt.html", "doc/html/man3/CMS_EncryptedData_encrypt.html", "doc/html/man3/CMS_EnvelopedData_create.html", @@ -16419,6 +19023,7 @@ our %unified_info = ( "doc/html/man3/CMS_uncompress.html", "doc/html/man3/CMS_verify.html", "doc/html/man3/CMS_verify_receipt.html", + "doc/html/man3/COMP_CTX_new.html", "doc/html/man3/CONF_modules_free.html", "doc/html/man3/CONF_modules_load_file.html", "doc/html/man3/CRYPTO_THREAD_run_once.html", @@ -16452,6 +19057,8 @@ our %unified_info = ( "doc/html/man3/DSA_size.html", "doc/html/man3/DTLS_get_data_mtu.html", "doc/html/man3/DTLS_set_timer_cb.html", + "doc/html/man3/DTLSv1_get_timeout.html", + "doc/html/man3/DTLSv1_handle_timeout.html", "doc/html/man3/DTLSv1_listen.html", "doc/html/man3/ECDSA_SIG_new.html", "doc/html/man3/ECDSA_sign.html", @@ -16498,6 +19105,7 @@ our %unified_info = ( "doc/html/man3/EVP_PKEY_CTX_ctrl.html", "doc/html/man3/EVP_PKEY_CTX_get0_libctx.html", "doc/html/man3/EVP_PKEY_CTX_get0_pkey.html", + "doc/html/man3/EVP_PKEY_CTX_get_algor.html", "doc/html/man3/EVP_PKEY_CTX_new.html", "doc/html/man3/EVP_PKEY_CTX_set1_pbe_pass.html", "doc/html/man3/EVP_PKEY_CTX_set_hkdf_md.html", @@ -16537,6 +19145,8 @@ our %unified_info = ( "doc/html/man3/EVP_PKEY_verify_recover.html", "doc/html/man3/EVP_RAND.html", "doc/html/man3/EVP_SIGNATURE.html", + "doc/html/man3/EVP_SKEY.html", + "doc/html/man3/EVP_SKEYMGMT.html", "doc/html/man3/EVP_SealInit.html", "doc/html/man3/EVP_SignInit.html", "doc/html/man3/EVP_VerifyInit.html", @@ -16566,6 +19176,7 @@ our %unified_info = ( "doc/html/man3/EVP_sm3.html", "doc/html/man3/EVP_sm4_cbc.html", "doc/html/man3/EVP_whirlpool.html", + "doc/html/man3/GENERAL_NAME.html", "doc/html/man3/HMAC.html", "doc/html/man3/MD5.html", "doc/html/man3/MDC2_Init.html", @@ -16590,14 +19201,18 @@ our %unified_info = ( "doc/html/man3/OPENSSL_init_ssl.html", "doc/html/man3/OPENSSL_instrument_bus.html", "doc/html/man3/OPENSSL_load_builtin_modules.html", + "doc/html/man3/OPENSSL_load_u16_le.html", "doc/html/man3/OPENSSL_malloc.html", + "doc/html/man3/OPENSSL_riscvcap.html", "doc/html/man3/OPENSSL_s390xcap.html", "doc/html/man3/OPENSSL_secure_malloc.html", "doc/html/man3/OPENSSL_strcasecmp.html", "doc/html/man3/OSSL_ALGORITHM.html", "doc/html/man3/OSSL_CALLBACK.html", + "doc/html/man3/OSSL_CMP_ATAV_set0.html", "doc/html/man3/OSSL_CMP_CTX_new.html", "doc/html/man3/OSSL_CMP_HDR_get0_transactionID.html", + "doc/html/man3/OSSL_CMP_ITAV_new_caCerts.html", "doc/html/man3/OSSL_CMP_ITAV_set0.html", "doc/html/man3/OSSL_CMP_MSG_get0_header.html", "doc/html/man3/OSSL_CMP_MSG_http_perform.html", @@ -16621,18 +19236,27 @@ our %unified_info = ( "doc/html/man3/OSSL_ENCODER_CTX.html", "doc/html/man3/OSSL_ENCODER_CTX_new_for_pkey.html", "doc/html/man3/OSSL_ENCODER_to_bio.html", + "doc/html/man3/OSSL_ERR_STATE_save.html", "doc/html/man3/OSSL_ESS_check_signing_certs.html", + "doc/html/man3/OSSL_GENERAL_NAMES_print.html", + "doc/html/man3/OSSL_HPKE_CTX_new.html", "doc/html/man3/OSSL_HTTP_REQ_CTX.html", "doc/html/man3/OSSL_HTTP_parse_url.html", "doc/html/man3/OSSL_HTTP_transfer.html", + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX.html", + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX_print.html", + "doc/html/man3/OSSL_INDICATOR_set_callback.html", "doc/html/man3/OSSL_ITEM.html", "doc/html/man3/OSSL_LIB_CTX.html", + "doc/html/man3/OSSL_LIB_CTX_set_conf_diagnostics.html", "doc/html/man3/OSSL_PARAM.html", "doc/html/man3/OSSL_PARAM_BLD.html", "doc/html/man3/OSSL_PARAM_allocate_from_text.html", "doc/html/man3/OSSL_PARAM_dup.html", "doc/html/man3/OSSL_PARAM_int.html", + "doc/html/man3/OSSL_PARAM_print_to_bio.html", "doc/html/man3/OSSL_PROVIDER.html", + "doc/html/man3/OSSL_QUIC_client_method.html", "doc/html/man3/OSSL_SELF_TEST_new.html", "doc/html/man3/OSSL_SELF_TEST_set_callback.html", "doc/html/man3/OSSL_STORE_INFO.html", @@ -16641,11 +19265,13 @@ our %unified_info = ( "doc/html/man3/OSSL_STORE_attach.html", "doc/html/man3/OSSL_STORE_expect.html", "doc/html/man3/OSSL_STORE_open.html", + "doc/html/man3/OSSL_sleep.html", "doc/html/man3/OSSL_trace_enabled.html", "doc/html/man3/OSSL_trace_get_category_num.html", "doc/html/man3/OSSL_trace_set_channel.html", "doc/html/man3/OpenSSL_add_all_algorithms.html", "doc/html/man3/OpenSSL_version.html", + "doc/html/man3/PBMAC1_get1_pbkdf2_param.html", "doc/html/man3/PEM_X509_INFO_read_bio_ex.html", "doc/html/man3/PEM_bytes_read_bio.html", "doc/html/man3/PEM_read.html", @@ -16658,6 +19284,7 @@ our %unified_info = ( "doc/html/man3/PKCS12_SAFEBAG_create_cert.html", "doc/html/man3/PKCS12_SAFEBAG_get0_attrs.html", "doc/html/man3/PKCS12_SAFEBAG_get1_cert.html", + "doc/html/man3/PKCS12_SAFEBAG_set0_attrs.html", "doc/html/man3/PKCS12_add1_attr_by_NID.html", "doc/html/man3/PKCS12_add_CSPName_asc.html", "doc/html/man3/PKCS12_add_cert.html", @@ -16749,6 +19376,7 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_sess_set_get_cb.html", "doc/html/man3/SSL_CTX_sessions.html", "doc/html/man3/SSL_CTX_set0_CA_list.html", + "doc/html/man3/SSL_CTX_set1_cert_comp_preference.html", "doc/html/man3/SSL_CTX_set1_curves.html", "doc/html/man3/SSL_CTX_set1_sigalgs.html", "doc/html/man3/SSL_CTX_set1_verify_cert_store.html", @@ -16762,6 +19390,7 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_ct_validation_callback.html", "doc/html/man3/SSL_CTX_set_ctlog_list_file.html", "doc/html/man3/SSL_CTX_set_default_passwd_cb.html", + "doc/html/man3/SSL_CTX_set_domain_flags.html", "doc/html/man3/SSL_CTX_set_generate_session_id.html", "doc/html/man3/SSL_CTX_set_info_callback.html", "doc/html/man3/SSL_CTX_set_keylog_callback.html", @@ -16769,6 +19398,7 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_min_proto_version.html", "doc/html/man3/SSL_CTX_set_mode.html", "doc/html/man3/SSL_CTX_set_msg_callback.html", + "doc/html/man3/SSL_CTX_set_new_pending_conn_cb.html", "doc/html/man3/SSL_CTX_set_num_tickets.html", "doc/html/man3/SSL_CTX_set_options.html", "doc/html/man3/SSL_CTX_set_psk_client_callback.html", @@ -16807,6 +19437,7 @@ our %unified_info = ( "doc/html/man3/SSL_SESSION_print.html", "doc/html/man3/SSL_SESSION_set1_id.html", "doc/html/man3/SSL_accept.html", + "doc/html/man3/SSL_accept_stream.html", "doc/html/man3/SSL_alert_type_string.html", "doc/html/man3/SSL_alloc_buffers.html", "doc/html/man3/SSL_check_chain.html", @@ -16816,59 +19447,90 @@ our %unified_info = ( "doc/html/man3/SSL_export_keying_material.html", "doc/html/man3/SSL_extension_supported.html", "doc/html/man3/SSL_free.html", + "doc/html/man3/SSL_get0_connection.html", + "doc/html/man3/SSL_get0_group_name.html", + "doc/html/man3/SSL_get0_peer_rpk.html", "doc/html/man3/SSL_get0_peer_scts.html", + "doc/html/man3/SSL_get1_builtin_sigalgs.html", "doc/html/man3/SSL_get_SSL_CTX.html", "doc/html/man3/SSL_get_all_async_fds.html", "doc/html/man3/SSL_get_certificate.html", "doc/html/man3/SSL_get_ciphers.html", "doc/html/man3/SSL_get_client_random.html", + "doc/html/man3/SSL_get_conn_close_info.html", "doc/html/man3/SSL_get_current_cipher.html", "doc/html/man3/SSL_get_default_timeout.html", "doc/html/man3/SSL_get_error.html", + "doc/html/man3/SSL_get_event_timeout.html", "doc/html/man3/SSL_get_extms_support.html", "doc/html/man3/SSL_get_fd.html", + "doc/html/man3/SSL_get_handshake_rtt.html", "doc/html/man3/SSL_get_peer_cert_chain.html", "doc/html/man3/SSL_get_peer_certificate.html", "doc/html/man3/SSL_get_peer_signature_nid.html", "doc/html/man3/SSL_get_peer_tmp_key.html", "doc/html/man3/SSL_get_psk_identity.html", "doc/html/man3/SSL_get_rbio.html", + "doc/html/man3/SSL_get_rpoll_descriptor.html", "doc/html/man3/SSL_get_session.html", "doc/html/man3/SSL_get_shared_sigalgs.html", + "doc/html/man3/SSL_get_stream_id.html", + "doc/html/man3/SSL_get_stream_read_state.html", + "doc/html/man3/SSL_get_value_uint.html", "doc/html/man3/SSL_get_verify_result.html", "doc/html/man3/SSL_get_version.html", "doc/html/man3/SSL_group_to_name.html", + "doc/html/man3/SSL_handle_events.html", "doc/html/man3/SSL_in_init.html", + "doc/html/man3/SSL_inject_net_dgram.html", "doc/html/man3/SSL_key_update.html", "doc/html/man3/SSL_library_init.html", "doc/html/man3/SSL_load_client_CA_file.html", "doc/html/man3/SSL_new.html", + "doc/html/man3/SSL_new_domain.html", + "doc/html/man3/SSL_new_listener.html", + "doc/html/man3/SSL_new_stream.html", "doc/html/man3/SSL_pending.html", + "doc/html/man3/SSL_poll.html", "doc/html/man3/SSL_read.html", "doc/html/man3/SSL_read_early_data.html", "doc/html/man3/SSL_rstate_string.html", "doc/html/man3/SSL_session_reused.html", "doc/html/man3/SSL_set1_host.html", + "doc/html/man3/SSL_set1_initial_peer_addr.html", + "doc/html/man3/SSL_set1_server_cert_type.html", "doc/html/man3/SSL_set_async_callback.html", "doc/html/man3/SSL_set_bio.html", + "doc/html/man3/SSL_set_blocking_mode.html", "doc/html/man3/SSL_set_connect_state.html", + "doc/html/man3/SSL_set_default_stream_mode.html", "doc/html/man3/SSL_set_fd.html", + "doc/html/man3/SSL_set_incoming_stream_policy.html", + "doc/html/man3/SSL_set_quic_tls_cbs.html", "doc/html/man3/SSL_set_retry_verify.html", "doc/html/man3/SSL_set_session.html", + "doc/html/man3/SSL_set_session_secret_cb.html", "doc/html/man3/SSL_set_shutdown.html", "doc/html/man3/SSL_set_verify_result.html", "doc/html/man3/SSL_shutdown.html", "doc/html/man3/SSL_state_string.html", + "doc/html/man3/SSL_stream_conclude.html", + "doc/html/man3/SSL_stream_reset.html", "doc/html/man3/SSL_want.html", "doc/html/man3/SSL_write.html", "doc/html/man3/TS_RESP_CTX_new.html", - "doc/html/man3/TS_VERIFY_CTX_set_certs.html", + "doc/html/man3/TS_VERIFY_CTX.html", "doc/html/man3/UI_STRING.html", "doc/html/man3/UI_UTIL_read_pw.html", "doc/html/man3/UI_create_method.html", "doc/html/man3/UI_new.html", "doc/html/man3/X509V3_get_d2i.html", "doc/html/man3/X509V3_set_ctx.html", + "doc/html/man3/X509_ACERT_add1_attr.html", + "doc/html/man3/X509_ACERT_add_attr_nconf.html", + "doc/html/man3/X509_ACERT_get0_holder_baseCertId.html", + "doc/html/man3/X509_ACERT_get_attr.html", + "doc/html/man3/X509_ACERT_print_ex.html", "doc/html/man3/X509_ALGOR_dup.html", "doc/html/man3/X509_ATTRIBUTE.html", "doc/html/man3/X509_CRL_get0_by_serial.html", @@ -16885,6 +19547,7 @@ our %unified_info = ( "doc/html/man3/X509_REQ_get_attr.html", "doc/html/man3/X509_REQ_get_extensions.html", "doc/html/man3/X509_SIG_get0.html", + "doc/html/man3/X509_STORE_CTX_get_by_subject.html", "doc/html/man3/X509_STORE_CTX_get_error.html", "doc/html/man3/X509_STORE_CTX_new.html", "doc/html/man3/X509_STORE_CTX_set_verify_cb.html", @@ -16907,6 +19570,7 @@ our %unified_info = ( "doc/html/man3/X509_get0_notBefore.html", "doc/html/man3/X509_get0_signature.html", "doc/html/man3/X509_get0_uids.html", + "doc/html/man3/X509_get_default_cert_file.html", "doc/html/man3/X509_get_extension_flags.html", "doc/html/man3/X509_get_pubkey.html", "doc/html/man3/X509_get_serialNumber.html", @@ -16952,12 +19616,15 @@ our %unified_info = ( "doc/html/man7/EVP_CIPHER-RC5.html", "doc/html/man7/EVP_CIPHER-SEED.html", "doc/html/man7/EVP_CIPHER-SM4.html", + "doc/html/man7/EVP_KDF-ARGON2.html", "doc/html/man7/EVP_KDF-HKDF.html", + "doc/html/man7/EVP_KDF-HMAC-DRBG.html", "doc/html/man7/EVP_KDF-KB.html", "doc/html/man7/EVP_KDF-KRB5KDF.html", "doc/html/man7/EVP_KDF-PBKDF1.html", "doc/html/man7/EVP_KDF-PBKDF2.html", "doc/html/man7/EVP_KDF-PKCS12KDF.html", + "doc/html/man7/EVP_KDF-PVKKDF.html", "doc/html/man7/EVP_KDF-SCRYPT.html", "doc/html/man7/EVP_KDF-SS.html", "doc/html/man7/EVP_KDF-SSHKDF.html", @@ -16966,7 +19633,10 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-X942-ASN1.html", "doc/html/man7/EVP_KDF-X942-CONCAT.html", "doc/html/man7/EVP_KDF-X963.html", + "doc/html/man7/EVP_KEM-EC.html", + "doc/html/man7/EVP_KEM-ML-KEM.html", "doc/html/man7/EVP_KEM-RSA.html", + "doc/html/man7/EVP_KEM-X25519.html", "doc/html/man7/EVP_KEYEXCH-DH.html", "doc/html/man7/EVP_KEYEXCH-ECDH.html", "doc/html/man7/EVP_KEYEXCH-X25519.html", @@ -16978,6 +19648,7 @@ our %unified_info = ( "doc/html/man7/EVP_MAC-Poly1305.html", "doc/html/man7/EVP_MAC-Siphash.html", "doc/html/man7/EVP_MD-BLAKE2.html", + "doc/html/man7/EVP_MD-KECCAK.html", "doc/html/man7/EVP_MD-MD2.html", "doc/html/man7/EVP_MD-MD4.html", "doc/html/man7/EVP_MD-MD5-SHA1.html", @@ -16997,12 +19668,17 @@ our %unified_info = ( "doc/html/man7/EVP_PKEY-EC.html", "doc/html/man7/EVP_PKEY-FFC.html", "doc/html/man7/EVP_PKEY-HMAC.html", + "doc/html/man7/EVP_PKEY-ML-DSA.html", + "doc/html/man7/EVP_PKEY-ML-KEM.html", "doc/html/man7/EVP_PKEY-RSA.html", + "doc/html/man7/EVP_PKEY-SLH-DSA.html", "doc/html/man7/EVP_PKEY-SM2.html", "doc/html/man7/EVP_PKEY-X25519.html", + "doc/html/man7/EVP_RAND-CRNG-TEST.html", "doc/html/man7/EVP_RAND-CTR-DRBG.html", "doc/html/man7/EVP_RAND-HASH-DRBG.html", "doc/html/man7/EVP_RAND-HMAC-DRBG.html", + "doc/html/man7/EVP_RAND-JITTER.html", "doc/html/man7/EVP_RAND-SEED-SRC.html", "doc/html/man7/EVP_RAND-TEST-RAND.html", "doc/html/man7/EVP_RAND.html", @@ -17010,17 +19686,19 @@ our %unified_info = ( "doc/html/man7/EVP_SIGNATURE-ECDSA.html", "doc/html/man7/EVP_SIGNATURE-ED25519.html", "doc/html/man7/EVP_SIGNATURE-HMAC.html", + "doc/html/man7/EVP_SIGNATURE-ML-DSA.html", "doc/html/man7/EVP_SIGNATURE-RSA.html", + "doc/html/man7/EVP_SIGNATURE-SLH-DSA.html", "doc/html/man7/OSSL_PROVIDER-FIPS.html", "doc/html/man7/OSSL_PROVIDER-base.html", "doc/html/man7/OSSL_PROVIDER-default.html", "doc/html/man7/OSSL_PROVIDER-legacy.html", "doc/html/man7/OSSL_PROVIDER-null.html", + "doc/html/man7/OSSL_STORE-winstore.html", "doc/html/man7/RAND.html", "doc/html/man7/RSA-PSS.html", "doc/html/man7/X25519.html", "doc/html/man7/bio.html", - "doc/html/man7/crypto.html", "doc/html/man7/ct.html", "doc/html/man7/des_modes.html", "doc/html/man7/evp.html", @@ -17031,14 +19709,31 @@ our %unified_info = ( "doc/html/man7/life_cycle-mac.html", "doc/html/man7/life_cycle-pkey.html", "doc/html/man7/life_cycle-rand.html", - "doc/html/man7/migration_guide.html", "doc/html/man7/openssl-core.h.html", "doc/html/man7/openssl-core_dispatch.h.html", "doc/html/man7/openssl-core_names.h.html", "doc/html/man7/openssl-env.html", "doc/html/man7/openssl-glossary.html", + "doc/html/man7/openssl-qlog.html", + "doc/html/man7/openssl-quic-concurrency.html", + "doc/html/man7/openssl-quic.html", "doc/html/man7/openssl-threads.html", "doc/html/man7/openssl_user_macros.html", + "doc/html/man7/ossl-guide-introduction.html", + "doc/html/man7/ossl-guide-libcrypto-introduction.html", + "doc/html/man7/ossl-guide-libraries-introduction.html", + "doc/html/man7/ossl-guide-libssl-introduction.html", + "doc/html/man7/ossl-guide-migration.html", + "doc/html/man7/ossl-guide-quic-client-block.html", + "doc/html/man7/ossl-guide-quic-client-non-block.html", + "doc/html/man7/ossl-guide-quic-introduction.html", + "doc/html/man7/ossl-guide-quic-multi-stream.html", + "doc/html/man7/ossl-guide-quic-server-block.html", + "doc/html/man7/ossl-guide-quic-server-non-block.html", + "doc/html/man7/ossl-guide-tls-client-block.html", + "doc/html/man7/ossl-guide-tls-client-non-block.html", + "doc/html/man7/ossl-guide-tls-introduction.html", + "doc/html/man7/ossl-guide-tls-server-block.html", "doc/html/man7/ossl_store-file.html", "doc/html/man7/ossl_store.html", "doc/html/man7/passphrase-encoding.html", @@ -17057,10 +19752,10 @@ our %unified_info = ( "doc/html/man7/provider-object.html", "doc/html/man7/provider-rand.html", "doc/html/man7/provider-signature.html", + "doc/html/man7/provider-skeymgmt.html", "doc/html/man7/provider-storemgmt.html", "doc/html/man7/provider.html", "doc/html/man7/proxy-certificates.html", - "doc/html/man7/ssl.html", "doc/html/man7/x509.html" ] }, @@ -17075,12 +19770,21 @@ our %unified_info = ( ] }, "includes" => { + "OpenSSLConfig.cmake" => [ + "." + ], + "OpenSSLConfigVersion.cmake" => [ + "." + ], "apps/asn1parse.o" => [ "apps" ], "apps/ca.o" => [ "apps" ], + "apps/ca_internals_test-bin-ca.o" => [ + "apps" + ], "apps/ciphers.o" => [ "apps" ], @@ -17307,6 +20011,9 @@ our %unified_info = ( "apps/openssl-bin-sess_id.o" => [ "apps" ], + "apps/openssl-bin-skeyutl.o" => [ + "apps" + ], "apps/openssl-bin-smime.o" => [ "apps" ], @@ -17394,6 +20101,9 @@ our %unified_info = ( "apps/sess_id.o" => [ "apps" ], + "apps/skeyutl.o" => [ + "apps" + ], "apps/smime.o" => [ "apps" ], @@ -17445,6 +20155,12 @@ our %unified_info = ( "crypto/aes/bsaes-armv7.o" => [ "crypto" ], + "crypto/aes/vpaes-armv8.o" => [ + "crypto" + ], + "crypto/aes/vpaes-loongarch64.o" => [ + "crypto" + ], "crypto/arm64cpuid.o" => [ "crypto" ], @@ -17496,9 +20212,15 @@ our %unified_info = ( "crypto/chacha/chacha-armv4.o" => [ "crypto" ], + "crypto/chacha/chacha-armv8-sve.o" => [ + "crypto" + ], "crypto/chacha/chacha-armv8.o" => [ "crypto" ], + "crypto/chacha/chacha-loongarch64.o" => [ + "crypto" + ], "crypto/chacha/chacha-s390x.o" => [ "crypto" ], @@ -17523,15 +20245,24 @@ our %unified_info = ( "crypto/ec/ecp_s390x_nistp.o" => [ "crypto" ], + "crypto/ec/ecp_sm2p256-armv8.o" => [ + "crypto" + ], + "crypto/ec/ecx_key.o" => [ + "crypto" + ], "crypto/ec/ecx_meth.o" => [ "crypto" ], - "crypto/ec/ecx_s390x.o" => [ + "crypto/ec/libcrypto-lib-ecx_key.o" => [ "crypto" ], "crypto/ec/libcrypto-lib-ecx_meth.o" => [ "crypto" ], + "crypto/ec/libfips-lib-ecx_key.o" => [ + "crypto" + ], "crypto/evp/e_aes.o" => [ "crypto", "crypto/modes" @@ -17603,9 +20334,18 @@ our %unified_info = ( "crypto/libfips-lib-cpuid.o" => [ "." ], + "crypto/md5/md5-aarch64.o" => [ + "crypto" + ], + "crypto/md5/md5-loongarch64.o" => [ + "crypto" + ], "crypto/md5/md5-sparcv9.o" => [ "crypto" ], + "crypto/modes/aes-gcm-armv8-unroll8_64.o" => [ + "crypto" + ], "crypto/modes/aes-gcm-armv8_64.o" => [ "crypto" ], @@ -17630,6 +20370,9 @@ our %unified_info = ( "crypto/modes/libfips-lib-gcm128.o" => [ "crypto" ], + "crypto/params_idx.c" => [ + "util/perl" + ], "crypto/poly1305/poly1305-armv4.o" => [ "crypto" ], @@ -17651,6 +20394,9 @@ our %unified_info = ( "crypto/sha/keccak1600-armv4.o" => [ "crypto" ], + "crypto/sha/keccak1600-armv8.o" => [ + "crypto" + ], "crypto/sha/sha1-armv4-large.o" => [ "crypto" ], @@ -17696,6 +20442,18 @@ our %unified_info = ( "crypto/sha/sha512-sparcv9.o" => [ "crypto" ], + "crypto/sm3/sm3-armv8.o" => [ + "crypto" + ], + "crypto/sm4/sm4-armv8.o" => [ + "crypto" + ], + "crypto/sm4/vpsm4-armv8.o" => [ + "crypto" + ], + "crypto/sm4/vpsm4_ex-armv8.o" => [ + "crypto" + ], "doc/man1/openssl-asn1parse.pod" => [ "doc" ], @@ -17828,6 +20586,9 @@ our %unified_info = ( "doc/man1/openssl-sess_id.pod" => [ "doc" ], + "doc/man1/openssl-skeyutl.pod" => [ + "doc" + ], "doc/man1/openssl-smime.pod" => [ "doc" ], @@ -17855,6 +20616,24 @@ our %unified_info = ( "doc/man1/openssl-x509.pod" => [ "doc" ], + "exporters/OpenSSLConfig.cmake" => [ + "." + ], + "exporters/OpenSSLConfigVersion.cmake" => [ + "." + ], + "exporters/libcrypto.pc" => [ + "." + ], + "exporters/libssl.pc" => [ + "." + ], + "exporters/openssl.pc" => [ + "." + ], + "fuzz/acert-test" => [ + "include" + ], "fuzz/asn1-test" => [ "include" ], @@ -17885,22 +20664,88 @@ our %unified_info = ( "fuzz/ct-test" => [ "include" ], + "fuzz/decoder-test" => [ + "include" + ], + "fuzz/dtlsclient-test" => [ + "include" + ], + "fuzz/dtlsserver-test" => [ + "include" + ], + "fuzz/hashtable-test" => [ + "include" + ], + "fuzz/ml-dsa-test" => [ + "include" + ], + "fuzz/ml-kem-test" => [ + "include" + ], + "fuzz/pem-test" => [ + "include" + ], + "fuzz/provider-test" => [ + "include" + ], + "fuzz/punycode-test" => [ + "include" + ], + "fuzz/quic-client-test" => [ + "include" + ], + "fuzz/quic-lcidm-test" => [ + "include" + ], + "fuzz/quic-rcidm-test" => [ + "include" + ], + "fuzz/quic-server-test" => [ + "include" + ], + "fuzz/quic-srtm-test" => [ + "include" + ], "fuzz/server-test" => [ "include" ], + "fuzz/slh-dsa-test" => [ + "include" + ], + "fuzz/smime-test" => [ + "include" + ], + "fuzz/v3name-test" => [ + "include" + ], "fuzz/x509-test" => [ "include" ], + "include/internal/param_names.h" => [ + "util/perl" + ], + "include/openssl/core_names.h" => [ + "util/perl" + ], "libcrypto" => [ ".", "include", "providers/common/include", "providers/implementations/include" ], + "libcrypto.pc" => [ + "." + ], "libssl" => [ ".", "include" ], + "libssl.pc" => [ + "." + ], + "openssl.pc" => [ + "." + ], "providers/common/der/der_digests_gen.c" => [ "providers/common/der" ], @@ -17940,6 +20785,15 @@ our %unified_info = ( "providers/common/der/der_ecx_key.o" => [ "providers/common/include/prov" ], + "providers/common/der/der_ml_dsa_gen.c" => [ + "providers/common/der" + ], + "providers/common/der/der_ml_dsa_gen.o" => [ + "providers/common/include/prov" + ], + "providers/common/der/der_ml_dsa_key.o" => [ + "providers/common/include/prov" + ], "providers/common/der/der_rsa_gen.c" => [ "providers/common/der" ], @@ -17952,6 +20806,15 @@ our %unified_info = ( "providers/common/der/der_rsa_sig.o" => [ "providers/common/include/prov" ], + "providers/common/der/der_slh_dsa_gen.c" => [ + "providers/common/der" + ], + "providers/common/der/der_slh_dsa_gen.o" => [ + "providers/common/include/prov" + ], + "providers/common/der/der_slh_dsa_key.o" => [ + "providers/common/include/prov" + ], "providers/common/der/der_sm2_gen.c" => [ "providers/common/der" ], @@ -17997,12 +20860,24 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ecx_key.o" => [ "providers/common/include/prov" ], + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o" => [ + "providers/common/include/prov" + ], + "providers/common/der/libcommon-lib-der_ml_dsa_key.o" => [ + "providers/common/include/prov" + ], "providers/common/der/libcommon-lib-der_rsa_gen.o" => [ "providers/common/include/prov" ], "providers/common/der/libcommon-lib-der_rsa_key.o" => [ "providers/common/include/prov" ], + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o" => [ + "providers/common/include/prov" + ], + "providers/common/der/libcommon-lib-der_slh_dsa_key.o" => [ + "providers/common/include/prov" + ], "providers/common/der/libcommon-lib-der_wrap_gen.o" => [ "providers/common/include/prov" ], @@ -18033,9 +20908,15 @@ our %unified_info = ( "providers/common/include/prov/der_ecx.h" => [ "providers/common/der" ], + "providers/common/include/prov/der_ml_dsa.h" => [ + "providers/common/der" + ], "providers/common/include/prov/der_rsa.h" => [ "providers/common/der" ], + "providers/common/include/prov/der_slh_dsa.h" => [ + "providers/common/der" + ], "providers/common/include/prov/der_sm2.h" => [ "providers/common/der" ], @@ -18078,9 +20959,15 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-eddsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/libdefault-lib-rsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/libdefault-lib-sm2_sig.o" => [ "providers/common/include/prov" ], @@ -18093,12 +20980,24 @@ our %unified_info = ( "providers/implementations/signature/libfips-lib-eddsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/libfips-lib-rsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o" => [ + "providers/common/include/prov" + ], + "providers/implementations/signature/ml_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/rsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/slh_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/sm2_sig.o" => [ "providers/common/include/prov" ], @@ -18111,28 +21010,39 @@ our %unified_info = ( "crypto", "include", "providers/implementations/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" ], "providers/libdefault.a" => [ ".", "crypto", "include", "providers/implementations/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" ], "providers/libfips.a" => [ ".", "crypto", "include", "providers/implementations/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" ], "providers/liblegacy.a" => [ ".", "crypto", "include", "providers/implementations/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" + ], + "providers/libtemplate.a" => [ + "crypto", + "include", + "providers/implementations/include", + "providers/common/include", + "providers/fips/include" ], "test/aborttest" => [ "include", @@ -18201,6 +21111,14 @@ our %unified_info = ( "include", "apps/include" ], + "test/bio_addr_test" => [ + "include", + "apps/include" + ], + "test/bio_base64_test" => [ + "include", + "apps/include" + ], "test/bio_callback_test" => [ "include", "apps/include" @@ -18209,11 +21127,20 @@ our %unified_info = ( "include", "apps/include" ], + "test/bio_dgram_test" => [ + "include", + "apps/include", + "." + ], "test/bio_enc_test" => [ "include", "apps/include" ], - "test/bio_memleak_test" => [ + "test/bio_memleak_test" => [ + "include", + "apps/include" + ], + "test/bio_meth_test" => [ "include", "apps/include" ], @@ -18230,6 +21157,11 @@ our %unified_info = ( "include", "apps/include" ], + "test/bio_tfo_test" => [ + "include", + "apps/include", + "." + ], "test/bioprinttest" => [ "include", "apps/include" @@ -18244,6 +21176,9 @@ our %unified_info = ( "include", "apps/include" ], + "test/build_wincrypt_test" => [ + "include" + ], "test/buildtest_c_aes" => [ "include" ], @@ -18259,6 +21194,9 @@ our %unified_info = ( "test/buildtest_c_buffer" => [ "include" ], + "test/buildtest_c_byteorder" => [ + "include" + ], "test/buildtest_c_camellia" => [ "include" ], @@ -18283,9 +21221,6 @@ our %unified_info = ( "test/buildtest_c_core_dispatch" => [ "include" ], - "test/buildtest_c_core_names" => [ - "include" - ], "test/buildtest_c_core_object" => [ "include" ], @@ -18310,6 +21245,9 @@ our %unified_info = ( "test/buildtest_c_e_os2" => [ "include" ], + "test/buildtest_c_e_ostime" => [ + "include" + ], "test/buildtest_c_ebcdic" => [ "include" ], @@ -18337,12 +21275,18 @@ our %unified_info = ( "test/buildtest_c_hmac" => [ "include" ], + "test/buildtest_c_hpke" => [ + "include" + ], "test/buildtest_c_http" => [ "include" ], "test/buildtest_c_idea" => [ "include" ], + "test/buildtest_c_indicator" => [ + "include" + ], "test/buildtest_c_kdf" => [ "include" ], @@ -18358,6 +21302,9 @@ our %unified_info = ( "test/buildtest_c_mdc2" => [ "include" ], + "test/buildtest_c_ml_kem" => [ + "include" + ], "test/buildtest_c_modes" => [ "include" ], @@ -18388,6 +21335,9 @@ our %unified_info = ( "test/buildtest_c_provider" => [ "include" ], + "test/buildtest_c_quic" => [ + "include" + ], "test/buildtest_c_rand" => [ "include" ], @@ -18430,6 +21380,9 @@ our %unified_info = ( "test/buildtest_c_symhacks" => [ "include" ], + "test/buildtest_c_thread" => [ + "include" + ], "test/buildtest_c_tls1" => [ "include" ], @@ -18445,10 +21398,24 @@ our %unified_info = ( "test/buildtest_c_whrlpool" => [ "include" ], + "test/byteorder_test" => [ + "include", + "apps/include" + ], + "test/ca_internals_test" => [ + ".", + "include", + "apps/include" + ], "test/casttest" => [ "include", "apps/include" ], + "test/cert_comp_test" => [ + "include", + "apps/include", + "." + ], "test/chacha_internal_test" => [ ".", "include", @@ -18572,6 +21539,11 @@ our %unified_info = ( "include", "apps/include" ], + "test/decoder_propq_test" => [ + ".", + "include", + "apps/include" + ], "test/defltfips_test" => [ "include", "apps/include" @@ -18587,7 +21559,8 @@ our %unified_info = ( "test/drbgtest" => [ "include", "apps/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" ], "test/dsa_no_digest_size_test" => [ "include", @@ -18630,7 +21603,9 @@ our %unified_info = ( "test/endecode_test" => [ ".", "include", - "apps/include" + "apps/include", + "providers/common/include", + "providers/implementations/include" ], "test/endecoder_legacy_test" => [ ".", @@ -18675,6 +21650,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/evp_pkey_dhkem_test" => [ + "include", + "apps/include" + ], "test/evp_pkey_dparams_test" => [ "include", "apps/include" @@ -18683,10 +21662,18 @@ our %unified_info = ( "include", "apps/include" ], + "test/evp_skey_test" => [ + "include", + "apps/include" + ], "test/evp_test" => [ "include", "apps/include" ], + "test/evp_xof_test" => [ + "include", + "apps/include" + ], "test/exdatatest" => [ "include", "apps/include" @@ -18787,22 +21774,62 @@ our %unified_info = ( ".", "include" ], + "test/helpers/json_test-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/helpers/pkcs12.o" => [ ".", "include" ], + "test/helpers/pkcs12_api_test-bin-pkcs12.o" => [ + ".", + "include" + ], "test/helpers/pkcs12_format_test-bin-pkcs12.o" => [ ".", "include" ], + "test/helpers/quic_multistream_test-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quic_newcid_test-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quic_radix_test-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quic_srt_gen_test-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quicapitest-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quicfaultstest-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/helpers/recordlentest-bin-ssltestlib.o" => [ ".", "include" ], + "test/helpers/rpktest-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/helpers/servername_test-bin-ssltestlib.o" => [ ".", "include" ], + "test/helpers/ssl_handshake_rtt_test-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/helpers/ssl_test-bin-handshake.o" => [ ".", "include" @@ -18836,6 +21863,10 @@ our %unified_info = ( ".", "include" ], + "test/helpers/tls13groupselection_test-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/hexstr_test" => [ ".", "include", @@ -18845,6 +21876,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/hpke_test" => [ + "include", + "apps/include" + ], "test/http_test" => [ "include", "apps/include" @@ -18857,6 +21892,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/json_test" => [ + "include", + "apps/include" + ], "test/keymgmt_internal_test" => [ ".", "include", @@ -18871,6 +21910,10 @@ our %unified_info = ( "apps/include", "." ], + "test/list_test" => [ + "include", + "apps/include" + ], "test/localetest" => [ "include", "apps/include" @@ -18884,10 +21927,27 @@ our %unified_info = ( "include", "apps/include" ], + "test/membio_test" => [ + "include", + "apps/include", + "." + ], "test/memleaktest" => [ "include", "apps/include" ], + "test/ml_dsa_test" => [ + "include", + "apps/include" + ], + "test/ml_kem_evp_extra_test" => [ + "include", + "apps/include" + ], + "test/ml_kem_internal_test" => [ + "include", + "apps/include" + ], "test/modes_internal_test" => [ ".", "include", @@ -18922,6 +21982,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/pairwise_fail_test" => [ + "include", + "apps/include" + ], "test/param_build_test" => [ "include", "apps/include" @@ -18955,6 +22019,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/pkcs12_api_test" => [ + "include", + "apps/include" + ], "test/pkcs12_format_test" => [ "include", "apps/include" @@ -18976,6 +22044,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/priority_queue_test" => [ + "include", + "apps/include" + ], "test/property_test" => [ ".", "include", @@ -18989,6 +22061,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/provider_default_search_path_test" => [ + "include", + "apps/include" + ], "test/provider_fallback_test" => [ "include", "apps/include" @@ -19015,6 +22091,97 @@ our %unified_info = ( "include", "apps/include" ], + "test/quic_ackm_test" => [ + "include", + "apps/include" + ], + "test/quic_cc_test" => [ + "include", + "apps/include" + ], + "test/quic_cfq_test" => [ + "include", + "apps/include" + ], + "test/quic_client_test" => [ + "include", + "apps/include" + ], + "test/quic_fc_test" => [ + "include", + "apps/include" + ], + "test/quic_fifd_test" => [ + "include", + "apps/include" + ], + "test/quic_lcidm_test" => [ + "include", + "apps/include" + ], + "test/quic_multistream_test" => [ + "include", + "apps/include" + ], + "test/quic_newcid_test" => [ + "include", + "apps/include", + "." + ], + "test/quic_qlog_test" => [ + "include", + "apps/include" + ], + "test/quic_radix_test" => [ + "include", + "apps/include" + ], + "test/quic_rcidm_test" => [ + "include", + "apps/include" + ], + "test/quic_record_test" => [ + "include", + "apps/include" + ], + "test/quic_srt_gen_test" => [ + "include", + "apps/include", + "." + ], + "test/quic_srtm_test" => [ + "include", + "apps/include" + ], + "test/quic_stream_test" => [ + "include", + "apps/include" + ], + "test/quic_tserver_test" => [ + "include", + "apps/include" + ], + "test/quic_txp_test" => [ + "include", + "apps/include" + ], + "test/quic_txpim_test" => [ + "include", + "apps/include" + ], + "test/quic_wire_test" => [ + "include", + "apps/include" + ], + "test/quicapitest" => [ + "include", + "apps/include" + ], + "test/quicfaultstest" => [ + "include", + "apps/include", + "." + ], "test/rand_status_test" => [ "include", "apps/include" @@ -19035,14 +22202,20 @@ our %unified_info = ( "include", "apps/include" ], - "test/rdrand_sanitytest" => [ + "test/rdcpu_sanitytest" => [ "include", - "apps/include" + "apps/include", + "crypto" ], "test/recordlentest" => [ "include", "apps/include" ], + "test/rpktest" => [ + "include", + "apps/include", + "." + ], "test/rsa_complex" => [ "include", "apps/include" @@ -19061,6 +22234,15 @@ our %unified_info = ( "include", "apps/include" ], + "test/rsa_x931_test" => [ + ".", + "include", + "apps/include" + ], + "test/safe_math_test" => [ + "include", + "apps/include" + ], "test/sanitytest" => [ "include", "apps/include" @@ -19082,6 +22264,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/slh_dsa_test" => [ + "include", + "apps/include" + ], "test/sm2_internal_test" => [ "include", "apps/include" @@ -19112,6 +22298,11 @@ our %unified_info = ( "include", "apps/include" ], + "test/ssl_handshake_rtt_test" => [ + "include", + "apps/include", + "." + ], "test/ssl_old_test" => [ ".", "include", @@ -19128,6 +22319,7 @@ our %unified_info = ( "test/sslapitest" => [ "include", "apps/include", + "providers/common/include", "." ], "test/sslbuffertest" => [ @@ -19142,6 +22334,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/strtoultest" => [ + "include", + "apps/include" + ], "test/sysdefaulttest" => [ "include", "apps/include" @@ -19150,7 +22346,13 @@ our %unified_info = ( "include", "apps/include" ], + "test/threadpool_test" => [ + ".", + "include", + "apps/include" + ], "test/threadstest" => [ + ".", "include", "apps/include" ], @@ -19162,6 +22364,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/time_test" => [ + "include", + "apps/include" + ], "test/tls13ccstest" => [ "include", "apps/include" @@ -19171,6 +22377,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/tls13groupselection_test" => [ + "include", + "apps/include" + ], "test/trace_api_test" => [ ".", "include", @@ -19209,6 +22419,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/x509_acert_test" => [ + "include", + "apps/include" + ], "test/x509_check_cert_pkey_test" => [ "include", "apps/include" @@ -19222,6 +22436,18 @@ our %unified_info = ( "include", "apps/include" ], + "test/x509_load_cert_file_test" => [ + "include", + "apps/include" + ], + "test/x509_req_test" => [ + "include", + "apps/include" + ], + "test/x509_test" => [ + "include", + "apps/include" + ], "test/x509_time_test" => [ "include", "apps/include" @@ -19243,6 +22469,7 @@ our %unified_info = ( "providers/libdefault.a", "providers/libfips.a", "providers/liblegacy.a", + "providers/libtemplate.a", "test/libtestutil.a" ], "mandocs" => { @@ -19295,6 +22522,7 @@ our %unified_info = ( "doc/man/man1/openssl-s_server.1", "doc/man/man1/openssl-s_time.1", "doc/man/man1/openssl-sess_id.1", + "doc/man/man1/openssl-skeyutl.1", "doc/man/man1/openssl-smime.1", "doc/man/man1/openssl-speed.1", "doc/man/man1/openssl-spkac.1", @@ -19344,6 +22572,7 @@ our %unified_info = ( "doc/man/man3/BIO_find_type.3", "doc/man/man3/BIO_get_data.3", "doc/man/man3/BIO_get_ex_new_index.3", + "doc/man/man3/BIO_get_rpoll_descriptor.3", "doc/man/man3/BIO_meth_new.3", "doc/man/man3/BIO_new.3", "doc/man/man3/BIO_new_CMS.3", @@ -19356,11 +22585,13 @@ our %unified_info = ( "doc/man/man3/BIO_s_connect.3", "doc/man/man3/BIO_s_core.3", "doc/man/man3/BIO_s_datagram.3", + "doc/man/man3/BIO_s_dgram_pair.3", "doc/man/man3/BIO_s_fd.3", "doc/man/man3/BIO_s_file.3", "doc/man/man3/BIO_s_mem.3", "doc/man/man3/BIO_s_null.3", "doc/man/man3/BIO_s_socket.3", + "doc/man/man3/BIO_sendmmsg.3", "doc/man/man3/BIO_set_callback.3", "doc/man/man3/BIO_should_retry.3", "doc/man/man3/BIO_socket_wait.3", @@ -19385,6 +22616,7 @@ our %unified_info = ( "doc/man/man3/BN_swap.3", "doc/man/man3/BN_zero.3", "doc/man/man3/BUF_MEM_new.3", + "doc/man/man3/CMAC_CTX.3", "doc/man/man3/CMS_EncryptedData_decrypt.3", "doc/man/man3/CMS_EncryptedData_encrypt.3", "doc/man/man3/CMS_EnvelopedData_create.3", @@ -19407,6 +22639,7 @@ our %unified_info = ( "doc/man/man3/CMS_uncompress.3", "doc/man/man3/CMS_verify.3", "doc/man/man3/CMS_verify_receipt.3", + "doc/man/man3/COMP_CTX_new.3", "doc/man/man3/CONF_modules_free.3", "doc/man/man3/CONF_modules_load_file.3", "doc/man/man3/CRYPTO_THREAD_run_once.3", @@ -19440,6 +22673,8 @@ our %unified_info = ( "doc/man/man3/DSA_size.3", "doc/man/man3/DTLS_get_data_mtu.3", "doc/man/man3/DTLS_set_timer_cb.3", + "doc/man/man3/DTLSv1_get_timeout.3", + "doc/man/man3/DTLSv1_handle_timeout.3", "doc/man/man3/DTLSv1_listen.3", "doc/man/man3/ECDSA_SIG_new.3", "doc/man/man3/ECDSA_sign.3", @@ -19486,6 +22721,7 @@ our %unified_info = ( "doc/man/man3/EVP_PKEY_CTX_ctrl.3", "doc/man/man3/EVP_PKEY_CTX_get0_libctx.3", "doc/man/man3/EVP_PKEY_CTX_get0_pkey.3", + "doc/man/man3/EVP_PKEY_CTX_get_algor.3", "doc/man/man3/EVP_PKEY_CTX_new.3", "doc/man/man3/EVP_PKEY_CTX_set1_pbe_pass.3", "doc/man/man3/EVP_PKEY_CTX_set_hkdf_md.3", @@ -19525,6 +22761,8 @@ our %unified_info = ( "doc/man/man3/EVP_PKEY_verify_recover.3", "doc/man/man3/EVP_RAND.3", "doc/man/man3/EVP_SIGNATURE.3", + "doc/man/man3/EVP_SKEY.3", + "doc/man/man3/EVP_SKEYMGMT.3", "doc/man/man3/EVP_SealInit.3", "doc/man/man3/EVP_SignInit.3", "doc/man/man3/EVP_VerifyInit.3", @@ -19554,6 +22792,7 @@ our %unified_info = ( "doc/man/man3/EVP_sm3.3", "doc/man/man3/EVP_sm4_cbc.3", "doc/man/man3/EVP_whirlpool.3", + "doc/man/man3/GENERAL_NAME.3", "doc/man/man3/HMAC.3", "doc/man/man3/MD5.3", "doc/man/man3/MDC2_Init.3", @@ -19578,14 +22817,18 @@ our %unified_info = ( "doc/man/man3/OPENSSL_init_ssl.3", "doc/man/man3/OPENSSL_instrument_bus.3", "doc/man/man3/OPENSSL_load_builtin_modules.3", + "doc/man/man3/OPENSSL_load_u16_le.3", "doc/man/man3/OPENSSL_malloc.3", + "doc/man/man3/OPENSSL_riscvcap.3", "doc/man/man3/OPENSSL_s390xcap.3", "doc/man/man3/OPENSSL_secure_malloc.3", "doc/man/man3/OPENSSL_strcasecmp.3", "doc/man/man3/OSSL_ALGORITHM.3", "doc/man/man3/OSSL_CALLBACK.3", + "doc/man/man3/OSSL_CMP_ATAV_set0.3", "doc/man/man3/OSSL_CMP_CTX_new.3", "doc/man/man3/OSSL_CMP_HDR_get0_transactionID.3", + "doc/man/man3/OSSL_CMP_ITAV_new_caCerts.3", "doc/man/man3/OSSL_CMP_ITAV_set0.3", "doc/man/man3/OSSL_CMP_MSG_get0_header.3", "doc/man/man3/OSSL_CMP_MSG_http_perform.3", @@ -19609,18 +22852,27 @@ our %unified_info = ( "doc/man/man3/OSSL_ENCODER_CTX.3", "doc/man/man3/OSSL_ENCODER_CTX_new_for_pkey.3", "doc/man/man3/OSSL_ENCODER_to_bio.3", + "doc/man/man3/OSSL_ERR_STATE_save.3", "doc/man/man3/OSSL_ESS_check_signing_certs.3", + "doc/man/man3/OSSL_GENERAL_NAMES_print.3", + "doc/man/man3/OSSL_HPKE_CTX_new.3", "doc/man/man3/OSSL_HTTP_REQ_CTX.3", "doc/man/man3/OSSL_HTTP_parse_url.3", "doc/man/man3/OSSL_HTTP_transfer.3", + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX.3", + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX_print.3", + "doc/man/man3/OSSL_INDICATOR_set_callback.3", "doc/man/man3/OSSL_ITEM.3", "doc/man/man3/OSSL_LIB_CTX.3", + "doc/man/man3/OSSL_LIB_CTX_set_conf_diagnostics.3", "doc/man/man3/OSSL_PARAM.3", "doc/man/man3/OSSL_PARAM_BLD.3", "doc/man/man3/OSSL_PARAM_allocate_from_text.3", "doc/man/man3/OSSL_PARAM_dup.3", "doc/man/man3/OSSL_PARAM_int.3", + "doc/man/man3/OSSL_PARAM_print_to_bio.3", "doc/man/man3/OSSL_PROVIDER.3", + "doc/man/man3/OSSL_QUIC_client_method.3", "doc/man/man3/OSSL_SELF_TEST_new.3", "doc/man/man3/OSSL_SELF_TEST_set_callback.3", "doc/man/man3/OSSL_STORE_INFO.3", @@ -19629,11 +22881,13 @@ our %unified_info = ( "doc/man/man3/OSSL_STORE_attach.3", "doc/man/man3/OSSL_STORE_expect.3", "doc/man/man3/OSSL_STORE_open.3", + "doc/man/man3/OSSL_sleep.3", "doc/man/man3/OSSL_trace_enabled.3", "doc/man/man3/OSSL_trace_get_category_num.3", "doc/man/man3/OSSL_trace_set_channel.3", "doc/man/man3/OpenSSL_add_all_algorithms.3", "doc/man/man3/OpenSSL_version.3", + "doc/man/man3/PBMAC1_get1_pbkdf2_param.3", "doc/man/man3/PEM_X509_INFO_read_bio_ex.3", "doc/man/man3/PEM_bytes_read_bio.3", "doc/man/man3/PEM_read.3", @@ -19646,6 +22900,7 @@ our %unified_info = ( "doc/man/man3/PKCS12_SAFEBAG_create_cert.3", "doc/man/man3/PKCS12_SAFEBAG_get0_attrs.3", "doc/man/man3/PKCS12_SAFEBAG_get1_cert.3", + "doc/man/man3/PKCS12_SAFEBAG_set0_attrs.3", "doc/man/man3/PKCS12_add1_attr_by_NID.3", "doc/man/man3/PKCS12_add_CSPName_asc.3", "doc/man/man3/PKCS12_add_cert.3", @@ -19737,6 +22992,7 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_sess_set_get_cb.3", "doc/man/man3/SSL_CTX_sessions.3", "doc/man/man3/SSL_CTX_set0_CA_list.3", + "doc/man/man3/SSL_CTX_set1_cert_comp_preference.3", "doc/man/man3/SSL_CTX_set1_curves.3", "doc/man/man3/SSL_CTX_set1_sigalgs.3", "doc/man/man3/SSL_CTX_set1_verify_cert_store.3", @@ -19750,6 +23006,7 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_ct_validation_callback.3", "doc/man/man3/SSL_CTX_set_ctlog_list_file.3", "doc/man/man3/SSL_CTX_set_default_passwd_cb.3", + "doc/man/man3/SSL_CTX_set_domain_flags.3", "doc/man/man3/SSL_CTX_set_generate_session_id.3", "doc/man/man3/SSL_CTX_set_info_callback.3", "doc/man/man3/SSL_CTX_set_keylog_callback.3", @@ -19757,6 +23014,7 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_min_proto_version.3", "doc/man/man3/SSL_CTX_set_mode.3", "doc/man/man3/SSL_CTX_set_msg_callback.3", + "doc/man/man3/SSL_CTX_set_new_pending_conn_cb.3", "doc/man/man3/SSL_CTX_set_num_tickets.3", "doc/man/man3/SSL_CTX_set_options.3", "doc/man/man3/SSL_CTX_set_psk_client_callback.3", @@ -19795,6 +23053,7 @@ our %unified_info = ( "doc/man/man3/SSL_SESSION_print.3", "doc/man/man3/SSL_SESSION_set1_id.3", "doc/man/man3/SSL_accept.3", + "doc/man/man3/SSL_accept_stream.3", "doc/man/man3/SSL_alert_type_string.3", "doc/man/man3/SSL_alloc_buffers.3", "doc/man/man3/SSL_check_chain.3", @@ -19804,59 +23063,90 @@ our %unified_info = ( "doc/man/man3/SSL_export_keying_material.3", "doc/man/man3/SSL_extension_supported.3", "doc/man/man3/SSL_free.3", + "doc/man/man3/SSL_get0_connection.3", + "doc/man/man3/SSL_get0_group_name.3", + "doc/man/man3/SSL_get0_peer_rpk.3", "doc/man/man3/SSL_get0_peer_scts.3", + "doc/man/man3/SSL_get1_builtin_sigalgs.3", "doc/man/man3/SSL_get_SSL_CTX.3", "doc/man/man3/SSL_get_all_async_fds.3", "doc/man/man3/SSL_get_certificate.3", "doc/man/man3/SSL_get_ciphers.3", "doc/man/man3/SSL_get_client_random.3", + "doc/man/man3/SSL_get_conn_close_info.3", "doc/man/man3/SSL_get_current_cipher.3", "doc/man/man3/SSL_get_default_timeout.3", "doc/man/man3/SSL_get_error.3", + "doc/man/man3/SSL_get_event_timeout.3", "doc/man/man3/SSL_get_extms_support.3", "doc/man/man3/SSL_get_fd.3", + "doc/man/man3/SSL_get_handshake_rtt.3", "doc/man/man3/SSL_get_peer_cert_chain.3", "doc/man/man3/SSL_get_peer_certificate.3", "doc/man/man3/SSL_get_peer_signature_nid.3", "doc/man/man3/SSL_get_peer_tmp_key.3", "doc/man/man3/SSL_get_psk_identity.3", "doc/man/man3/SSL_get_rbio.3", + "doc/man/man3/SSL_get_rpoll_descriptor.3", "doc/man/man3/SSL_get_session.3", "doc/man/man3/SSL_get_shared_sigalgs.3", + "doc/man/man3/SSL_get_stream_id.3", + "doc/man/man3/SSL_get_stream_read_state.3", + "doc/man/man3/SSL_get_value_uint.3", "doc/man/man3/SSL_get_verify_result.3", "doc/man/man3/SSL_get_version.3", "doc/man/man3/SSL_group_to_name.3", + "doc/man/man3/SSL_handle_events.3", "doc/man/man3/SSL_in_init.3", + "doc/man/man3/SSL_inject_net_dgram.3", "doc/man/man3/SSL_key_update.3", "doc/man/man3/SSL_library_init.3", "doc/man/man3/SSL_load_client_CA_file.3", "doc/man/man3/SSL_new.3", + "doc/man/man3/SSL_new_domain.3", + "doc/man/man3/SSL_new_listener.3", + "doc/man/man3/SSL_new_stream.3", "doc/man/man3/SSL_pending.3", + "doc/man/man3/SSL_poll.3", "doc/man/man3/SSL_read.3", "doc/man/man3/SSL_read_early_data.3", "doc/man/man3/SSL_rstate_string.3", "doc/man/man3/SSL_session_reused.3", "doc/man/man3/SSL_set1_host.3", + "doc/man/man3/SSL_set1_initial_peer_addr.3", + "doc/man/man3/SSL_set1_server_cert_type.3", "doc/man/man3/SSL_set_async_callback.3", "doc/man/man3/SSL_set_bio.3", + "doc/man/man3/SSL_set_blocking_mode.3", "doc/man/man3/SSL_set_connect_state.3", + "doc/man/man3/SSL_set_default_stream_mode.3", "doc/man/man3/SSL_set_fd.3", + "doc/man/man3/SSL_set_incoming_stream_policy.3", + "doc/man/man3/SSL_set_quic_tls_cbs.3", "doc/man/man3/SSL_set_retry_verify.3", "doc/man/man3/SSL_set_session.3", + "doc/man/man3/SSL_set_session_secret_cb.3", "doc/man/man3/SSL_set_shutdown.3", "doc/man/man3/SSL_set_verify_result.3", "doc/man/man3/SSL_shutdown.3", "doc/man/man3/SSL_state_string.3", + "doc/man/man3/SSL_stream_conclude.3", + "doc/man/man3/SSL_stream_reset.3", "doc/man/man3/SSL_want.3", "doc/man/man3/SSL_write.3", "doc/man/man3/TS_RESP_CTX_new.3", - "doc/man/man3/TS_VERIFY_CTX_set_certs.3", + "doc/man/man3/TS_VERIFY_CTX.3", "doc/man/man3/UI_STRING.3", "doc/man/man3/UI_UTIL_read_pw.3", "doc/man/man3/UI_create_method.3", "doc/man/man3/UI_new.3", "doc/man/man3/X509V3_get_d2i.3", "doc/man/man3/X509V3_set_ctx.3", + "doc/man/man3/X509_ACERT_add1_attr.3", + "doc/man/man3/X509_ACERT_add_attr_nconf.3", + "doc/man/man3/X509_ACERT_get0_holder_baseCertId.3", + "doc/man/man3/X509_ACERT_get_attr.3", + "doc/man/man3/X509_ACERT_print_ex.3", "doc/man/man3/X509_ALGOR_dup.3", "doc/man/man3/X509_ATTRIBUTE.3", "doc/man/man3/X509_CRL_get0_by_serial.3", @@ -19873,6 +23163,7 @@ our %unified_info = ( "doc/man/man3/X509_REQ_get_attr.3", "doc/man/man3/X509_REQ_get_extensions.3", "doc/man/man3/X509_SIG_get0.3", + "doc/man/man3/X509_STORE_CTX_get_by_subject.3", "doc/man/man3/X509_STORE_CTX_get_error.3", "doc/man/man3/X509_STORE_CTX_new.3", "doc/man/man3/X509_STORE_CTX_set_verify_cb.3", @@ -19895,6 +23186,7 @@ our %unified_info = ( "doc/man/man3/X509_get0_notBefore.3", "doc/man/man3/X509_get0_signature.3", "doc/man/man3/X509_get0_uids.3", + "doc/man/man3/X509_get_default_cert_file.3", "doc/man/man3/X509_get_extension_flags.3", "doc/man/man3/X509_get_pubkey.3", "doc/man/man3/X509_get_serialNumber.3", @@ -19940,12 +23232,15 @@ our %unified_info = ( "doc/man/man7/EVP_CIPHER-RC5.7", "doc/man/man7/EVP_CIPHER-SEED.7", "doc/man/man7/EVP_CIPHER-SM4.7", + "doc/man/man7/EVP_KDF-ARGON2.7", "doc/man/man7/EVP_KDF-HKDF.7", + "doc/man/man7/EVP_KDF-HMAC-DRBG.7", "doc/man/man7/EVP_KDF-KB.7", "doc/man/man7/EVP_KDF-KRB5KDF.7", "doc/man/man7/EVP_KDF-PBKDF1.7", "doc/man/man7/EVP_KDF-PBKDF2.7", "doc/man/man7/EVP_KDF-PKCS12KDF.7", + "doc/man/man7/EVP_KDF-PVKKDF.7", "doc/man/man7/EVP_KDF-SCRYPT.7", "doc/man/man7/EVP_KDF-SS.7", "doc/man/man7/EVP_KDF-SSHKDF.7", @@ -19954,7 +23249,10 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-X942-ASN1.7", "doc/man/man7/EVP_KDF-X942-CONCAT.7", "doc/man/man7/EVP_KDF-X963.7", + "doc/man/man7/EVP_KEM-EC.7", + "doc/man/man7/EVP_KEM-ML-KEM.7", "doc/man/man7/EVP_KEM-RSA.7", + "doc/man/man7/EVP_KEM-X25519.7", "doc/man/man7/EVP_KEYEXCH-DH.7", "doc/man/man7/EVP_KEYEXCH-ECDH.7", "doc/man/man7/EVP_KEYEXCH-X25519.7", @@ -19966,6 +23264,7 @@ our %unified_info = ( "doc/man/man7/EVP_MAC-Poly1305.7", "doc/man/man7/EVP_MAC-Siphash.7", "doc/man/man7/EVP_MD-BLAKE2.7", + "doc/man/man7/EVP_MD-KECCAK.7", "doc/man/man7/EVP_MD-MD2.7", "doc/man/man7/EVP_MD-MD4.7", "doc/man/man7/EVP_MD-MD5-SHA1.7", @@ -19985,12 +23284,17 @@ our %unified_info = ( "doc/man/man7/EVP_PKEY-EC.7", "doc/man/man7/EVP_PKEY-FFC.7", "doc/man/man7/EVP_PKEY-HMAC.7", + "doc/man/man7/EVP_PKEY-ML-DSA.7", + "doc/man/man7/EVP_PKEY-ML-KEM.7", "doc/man/man7/EVP_PKEY-RSA.7", + "doc/man/man7/EVP_PKEY-SLH-DSA.7", "doc/man/man7/EVP_PKEY-SM2.7", "doc/man/man7/EVP_PKEY-X25519.7", + "doc/man/man7/EVP_RAND-CRNG-TEST.7", "doc/man/man7/EVP_RAND-CTR-DRBG.7", "doc/man/man7/EVP_RAND-HASH-DRBG.7", "doc/man/man7/EVP_RAND-HMAC-DRBG.7", + "doc/man/man7/EVP_RAND-JITTER.7", "doc/man/man7/EVP_RAND-SEED-SRC.7", "doc/man/man7/EVP_RAND-TEST-RAND.7", "doc/man/man7/EVP_RAND.7", @@ -19998,17 +23302,19 @@ our %unified_info = ( "doc/man/man7/EVP_SIGNATURE-ECDSA.7", "doc/man/man7/EVP_SIGNATURE-ED25519.7", "doc/man/man7/EVP_SIGNATURE-HMAC.7", + "doc/man/man7/EVP_SIGNATURE-ML-DSA.7", "doc/man/man7/EVP_SIGNATURE-RSA.7", + "doc/man/man7/EVP_SIGNATURE-SLH-DSA.7", "doc/man/man7/OSSL_PROVIDER-FIPS.7", "doc/man/man7/OSSL_PROVIDER-base.7", "doc/man/man7/OSSL_PROVIDER-default.7", "doc/man/man7/OSSL_PROVIDER-legacy.7", "doc/man/man7/OSSL_PROVIDER-null.7", + "doc/man/man7/OSSL_STORE-winstore.7", "doc/man/man7/RAND.7", "doc/man/man7/RSA-PSS.7", "doc/man/man7/X25519.7", "doc/man/man7/bio.7", - "doc/man/man7/crypto.7", "doc/man/man7/ct.7", "doc/man/man7/des_modes.7", "doc/man/man7/evp.7", @@ -20019,14 +23325,31 @@ our %unified_info = ( "doc/man/man7/life_cycle-mac.7", "doc/man/man7/life_cycle-pkey.7", "doc/man/man7/life_cycle-rand.7", - "doc/man/man7/migration_guide.7", "doc/man/man7/openssl-core.h.7", "doc/man/man7/openssl-core_dispatch.h.7", "doc/man/man7/openssl-core_names.h.7", "doc/man/man7/openssl-env.7", "doc/man/man7/openssl-glossary.7", + "doc/man/man7/openssl-qlog.7", + "doc/man/man7/openssl-quic-concurrency.7", + "doc/man/man7/openssl-quic.7", "doc/man/man7/openssl-threads.7", "doc/man/man7/openssl_user_macros.7", + "doc/man/man7/ossl-guide-introduction.7", + "doc/man/man7/ossl-guide-libcrypto-introduction.7", + "doc/man/man7/ossl-guide-libraries-introduction.7", + "doc/man/man7/ossl-guide-libssl-introduction.7", + "doc/man/man7/ossl-guide-migration.7", + "doc/man/man7/ossl-guide-quic-client-block.7", + "doc/man/man7/ossl-guide-quic-client-non-block.7", + "doc/man/man7/ossl-guide-quic-introduction.7", + "doc/man/man7/ossl-guide-quic-multi-stream.7", + "doc/man/man7/ossl-guide-quic-server-block.7", + "doc/man/man7/ossl-guide-quic-server-non-block.7", + "doc/man/man7/ossl-guide-tls-client-block.7", + "doc/man/man7/ossl-guide-tls-client-non-block.7", + "doc/man/man7/ossl-guide-tls-introduction.7", + "doc/man/man7/ossl-guide-tls-server-block.7", "doc/man/man7/ossl_store-file.7", "doc/man/man7/ossl_store.7", "doc/man/man7/passphrase-encoding.7", @@ -20045,10 +23368,10 @@ our %unified_info = ( "doc/man/man7/provider-object.7", "doc/man/man7/provider-rand.7", "doc/man/man7/provider-signature.7", + "doc/man/man7/provider-skeymgmt.7", "doc/man/man7/provider-storemgmt.7", "doc/man/man7/provider.7", "doc/man/man7/proxy-certificates.7", - "doc/man/man7/ssl.7", "doc/man/man7/x509.7" ] }, @@ -20060,6 +23383,7 @@ our %unified_info = ( ], "programs" => [ "apps/openssl", + "fuzz/acert-test", "fuzz/asn1-test", "fuzz/asn1parse-test", "fuzz/bignum-test", @@ -20070,7 +23394,24 @@ our %unified_info = ( "fuzz/conf-test", "fuzz/crl-test", "fuzz/ct-test", + "fuzz/decoder-test", + "fuzz/dtlsclient-test", + "fuzz/dtlsserver-test", + "fuzz/hashtable-test", + "fuzz/ml-dsa-test", + "fuzz/ml-kem-test", + "fuzz/pem-test", + "fuzz/provider-test", + "fuzz/punycode-test", + "fuzz/quic-client-test", + "fuzz/quic-lcidm-test", + "fuzz/quic-rcidm-test", + "fuzz/quic-server-test", + "fuzz/quic-srtm-test", "fuzz/server-test", + "fuzz/slh-dsa-test", + "fuzz/smime-test", + "fuzz/v3name-test", "fuzz/x509-test", "test/aborttest", "test/acvp_test", @@ -20088,21 +23429,28 @@ our %unified_info = ( "test/asynctest", "test/bad_dtls_test", "test/bftest", + "test/bio_addr_test", + "test/bio_base64_test", "test/bio_callback_test", "test/bio_core_test", + "test/bio_dgram_test", "test/bio_enc_test", "test/bio_memleak_test", + "test/bio_meth_test", "test/bio_prefix_text", "test/bio_pw_callback_test", "test/bio_readbuffer_test", + "test/bio_tfo_test", "test/bioprinttest", "test/bn_internal_test", "test/bntest", + "test/build_wincrypt_test", "test/buildtest_c_aes", "test/buildtest_c_async", "test/buildtest_c_blowfish", "test/buildtest_c_bn", "test/buildtest_c_buffer", + "test/buildtest_c_byteorder", "test/buildtest_c_camellia", "test/buildtest_c_cast", "test/buildtest_c_cmac", @@ -20111,7 +23459,6 @@ our %unified_info = ( "test/buildtest_c_conftypes", "test/buildtest_c_core", "test/buildtest_c_core_dispatch", - "test/buildtest_c_core_names", "test/buildtest_c_core_object", "test/buildtest_c_cryptoerr_legacy", "test/buildtest_c_decoder", @@ -20120,6 +23467,7 @@ our %unified_info = ( "test/buildtest_c_dsa", "test/buildtest_c_dtls1", "test/buildtest_c_e_os2", + "test/buildtest_c_e_ostime", "test/buildtest_c_ebcdic", "test/buildtest_c_ec", "test/buildtest_c_ecdh", @@ -20129,13 +23477,16 @@ our %unified_info = ( "test/buildtest_c_evp", "test/buildtest_c_fips_names", "test/buildtest_c_hmac", + "test/buildtest_c_hpke", "test/buildtest_c_http", "test/buildtest_c_idea", + "test/buildtest_c_indicator", "test/buildtest_c_kdf", "test/buildtest_c_macros", "test/buildtest_c_md4", "test/buildtest_c_md5", "test/buildtest_c_mdc2", + "test/buildtest_c_ml_kem", "test/buildtest_c_modes", "test/buildtest_c_obj_mac", "test/buildtest_c_objects", @@ -20146,6 +23497,7 @@ our %unified_info = ( "test/buildtest_c_pem2", "test/buildtest_c_prov_ssl", "test/buildtest_c_provider", + "test/buildtest_c_quic", "test/buildtest_c_rand", "test/buildtest_c_rc2", "test/buildtest_c_rc4", @@ -20160,11 +23512,14 @@ our %unified_info = ( "test/buildtest_c_stack", "test/buildtest_c_store", "test/buildtest_c_symhacks", + "test/buildtest_c_thread", "test/buildtest_c_tls1", "test/buildtest_c_ts", "test/buildtest_c_txt_db", "test/buildtest_c_types", "test/buildtest_c_whrlpool", + "test/byteorder_test", + "test/ca_internals_test", "test/casttest", "test/chacha_internal_test", "test/cipher_overhead_test", @@ -20193,6 +23548,7 @@ our %unified_info = ( "test/curve448_internal_test", "test/d2i_test", "test/danetest", + "test/decoder_propq_test", "test/defltfips_test", "test/destest", "test/dhtest", @@ -20217,9 +23573,12 @@ our %unified_info = ( "test/evp_kdf_test", "test/evp_libctx_test", "test/evp_pkey_ctx_new_from_name", + "test/evp_pkey_dhkem_test", "test/evp_pkey_dparams_test", "test/evp_pkey_provided_test", + "test/evp_skey_test", "test/evp_test", + "test/evp_xof_test", "test/exdatatest", "test/exptest", "test/ext_internal_test", @@ -20229,21 +23588,29 @@ our %unified_info = ( "test/gmdifftest", "test/hexstr_test", "test/hmactest", + "test/hpke_test", "test/http_test", "test/ideatest", "test/igetest", + "test/json_test", "test/keymgmt_internal_test", "test/lhash_test", + "test/list_test", "test/localetest", "test/mdc2_internal_test", "test/mdc2test", + "test/membio_test", "test/memleaktest", + "test/ml_dsa_test", + "test/ml_kem_evp_extra_test", + "test/ml_kem_internal_test", "test/modes_internal_test", "test/namemap_internal_test", "test/nodefltctxtest", "test/ocspapitest", "test/ossl_store_test", "test/packettest", + "test/pairwise_fail_test", "test/param_build_test", "test/params_api_test", "test/params_conversion_test", @@ -20252,36 +23619,65 @@ our %unified_info = ( "test/pbetest", "test/pem_read_depr_test", "test/pemtest", + "test/pkcs12_api_test", "test/pkcs12_format_test", "test/pkcs7_test", "test/pkey_meth_kdf_test", "test/pkey_meth_test", "test/poly1305_internal_test", + "test/priority_queue_test", "test/property_test", "test/prov_config_test", "test/provfetchtest", + "test/provider_default_search_path_test", "test/provider_fallback_test", "test/provider_internal_test", "test/provider_pkey_test", "test/provider_status_test", "test/provider_test", "test/punycode_test", + "test/quic_ackm_test", + "test/quic_cc_test", + "test/quic_cfq_test", + "test/quic_client_test", + "test/quic_fc_test", + "test/quic_fifd_test", + "test/quic_lcidm_test", + "test/quic_multistream_test", + "test/quic_newcid_test", + "test/quic_qlog_test", + "test/quic_radix_test", + "test/quic_rcidm_test", + "test/quic_record_test", + "test/quic_srt_gen_test", + "test/quic_srtm_test", + "test/quic_stream_test", + "test/quic_tserver_test", + "test/quic_txp_test", + "test/quic_txpim_test", + "test/quic_wire_test", + "test/quicapitest", + "test/quicfaultstest", "test/rand_status_test", "test/rand_test", "test/rc2test", "test/rc4test", "test/rc5test", - "test/rdrand_sanitytest", + "test/rdcpu_sanitytest", "test/recordlentest", + "test/rpktest", "test/rsa_complex", "test/rsa_mp_test", "test/rsa_sp800_56b_test", "test/rsa_test", + "test/rsa_x931_test", + "test/safe_math_test", "test/sanitytest", "test/secmemtest", "test/servername_test", "test/sha_test", "test/siphash_internal_test", + "test/slh_dsa_test", "test/sm2_internal_test", "test/sm3_internal_test", "test/sm4_internal_test", @@ -20289,6 +23685,7 @@ our %unified_info = ( "test/srptest", "test/ssl_cert_table_internal_test", "test/ssl_ctx_test", + "test/ssl_handshake_rtt_test", "test/ssl_old_test", "test/ssl_test", "test/ssl_test_ctx_test", @@ -20296,13 +23693,17 @@ our %unified_info = ( "test/sslbuffertest", "test/sslcorrupttest", "test/stack_test", + "test/strtoultest", "test/sysdefaulttest", "test/test_test", + "test/threadpool_test", "test/threadstest", "test/threadstest_fips", "test/time_offset_test", + "test/time_test", "test/tls13ccstest", "test/tls13encryptiontest", + "test/tls13groupselection_test", "test/trace_api_test", "test/uitest", "test/upcallstest", @@ -20312,9 +23713,13 @@ our %unified_info = ( "test/verify_extra_test", "test/versions", "test/wpackettest", + "test/x509_acert_test", "test/x509_check_cert_pkey_test", "test/x509_dup_cert_test", "test/x509_internal_test", + "test/x509_load_cert_file_test", + "test/x509_req_test", + "test/x509_test", "test/x509_time_test", "test/x509aux" ], @@ -20330,6 +23735,33 @@ our %unified_info = ( "apps/CA.pl" => [ "apps/CA.pl.in" ], + "apps/ca_internals_test-bin-ca.o" => [ + "apps/ca.c" + ], + "apps/lib/ca_internals_test-bin-app_libctx.o" => [ + "apps/lib/app_libctx.c" + ], + "apps/lib/ca_internals_test-bin-app_provider.o" => [ + "apps/lib/app_provider.c" + ], + "apps/lib/ca_internals_test-bin-app_rand.o" => [ + "apps/lib/app_rand.c" + ], + "apps/lib/ca_internals_test-bin-app_x509.o" => [ + "apps/lib/app_x509.c" + ], + "apps/lib/ca_internals_test-bin-apps.o" => [ + "apps/lib/apps.c" + ], + "apps/lib/ca_internals_test-bin-apps_ui.o" => [ + "apps/lib/apps_ui.c" + ], + "apps/lib/ca_internals_test-bin-engine.o" => [ + "apps/lib/engine.c" + ], + "apps/lib/ca_internals_test-bin-fmt.o" => [ + "apps/lib/fmt.c" + ], "apps/lib/cmp_client_test-bin-cmp_mock_srv.o" => [ "apps/lib/cmp_mock_srv.c" ], @@ -20351,6 +23783,9 @@ our %unified_info = ( "apps/lib/libapps-lib-apps.o" => [ "apps/lib/apps.c" ], + "apps/lib/libapps-lib-apps_opt_printf.o" => [ + "apps/lib/apps_opt_printf.c" + ], "apps/lib/libapps-lib-apps_ui.o" => [ "apps/lib/apps_ui.c" ], @@ -20369,6 +23804,9 @@ our %unified_info = ( "apps/lib/libapps-lib-http_server.o" => [ "apps/lib/http_server.c" ], + "apps/lib/libapps-lib-log.o" => [ + "apps/lib/log.c" + ], "apps/lib/libapps-lib-names.o" => [ "apps/lib/names.c" ], @@ -20400,12 +23838,14 @@ our %unified_info = ( "apps/lib/libapps-lib-app_rand.o", "apps/lib/libapps-lib-app_x509.o", "apps/lib/libapps-lib-apps.o", + "apps/lib/libapps-lib-apps_opt_printf.o", "apps/lib/libapps-lib-apps_ui.o", "apps/lib/libapps-lib-columns.o", "apps/lib/libapps-lib-engine.o", "apps/lib/libapps-lib-engine_loader.o", "apps/lib/libapps-lib-fmt.o", "apps/lib/libapps-lib-http_server.o", + "apps/lib/libapps-lib-log.o", "apps/lib/libapps-lib-names.o", "apps/lib/libapps-lib-opt.o", "apps/lib/libapps-lib-s_cb.o", @@ -20459,6 +23899,7 @@ our %unified_info = ( "apps/openssl-bin-s_server.o", "apps/openssl-bin-s_time.o", "apps/openssl-bin-sess_id.o", + "apps/openssl-bin-skeyutl.o", "apps/openssl-bin-smime.o", "apps/openssl-bin-speed.o", "apps/openssl-bin-spkac.o", @@ -20604,6 +24045,9 @@ our %unified_info = ( "apps/openssl-bin-sess_id.o" => [ "apps/sess_id.c" ], + "apps/openssl-bin-skeyutl.o" => [ + "apps/skeyutl.c" + ], "apps/openssl-bin-smime.o" => [ "apps/smime.c" ], @@ -20673,6 +24117,12 @@ our %unified_info = ( "crypto/aria/libcrypto-lib-aria.o" => [ "crypto/aria/aria.c" ], + "crypto/asn1/asn1_time_test-bin-a_time.o" => [ + "crypto/asn1/a_time.c" + ], + "crypto/asn1/ca_internals_test-bin-a_time.o" => [ + "crypto/asn1/a_time.c" + ], "crypto/asn1/libcrypto-lib-a_bitstr.o" => [ "crypto/asn1/a_bitstr.c" ], @@ -20865,6 +24315,9 @@ our %unified_info = ( "crypto/asn1/libcrypto-lib-x_val.o" => [ "crypto/asn1/x_val.c" ], + "crypto/asn1_time_test-bin-ctype.o" => [ + "crypto/ctype.c" + ], "crypto/async/arch/libcrypto-lib-async_null.o" => [ "crypto/async/arch/async_null.c" ], @@ -20958,6 +24411,9 @@ our %unified_info = ( "crypto/bio/libcrypto-lib-bss_dgram.o" => [ "crypto/bio/bss_dgram.c" ], + "crypto/bio/libcrypto-lib-bss_dgram_pair.o" => [ + "crypto/bio/bss_dgram_pair.c" + ], "crypto/bio/libcrypto-lib-bss_fd.o" => [ "crypto/bio/bss_fd.c" ], @@ -21171,6 +24627,9 @@ our %unified_info = ( "crypto/buffer/libfips-lib-buffer.o" => [ "crypto/buffer/buffer.c" ], + "crypto/ca_internals_test-bin-ctype.o" => [ + "crypto/ctype.c" + ], "crypto/camellia/libcrypto-lib-camellia.o" => [ "crypto/camellia/camellia.c" ], @@ -21228,6 +24687,9 @@ our %unified_info = ( "crypto/cmp/libcrypto-lib-cmp_err.o" => [ "crypto/cmp/cmp_err.c" ], + "crypto/cmp/libcrypto-lib-cmp_genm.o" => [ + "crypto/cmp/cmp_genm.c" + ], "crypto/cmp/libcrypto-lib-cmp_hdr.o" => [ "crypto/cmp/cmp_hdr.c" ], @@ -21903,9 +25365,15 @@ our %unified_info = ( "crypto/err/libcrypto-lib-err_blocks.o" => [ "crypto/err/err_blocks.c" ], + "crypto/err/libcrypto-lib-err_mark.o" => [ + "crypto/err/err_mark.c" + ], "crypto/err/libcrypto-lib-err_prn.o" => [ "crypto/err/err_prn.c" ], + "crypto/err/libcrypto-lib-err_save.o" => [ + "crypto/err/err_save.c" + ], "crypto/ess/libcrypto-lib-ess_asn1.o" => [ "crypto/ess/ess_asn1.c" ], @@ -22152,9 +25620,15 @@ our %unified_info = ( "crypto/evp/libcrypto-lib-pmeth_lib.o" => [ "crypto/evp/pmeth_lib.c" ], + "crypto/evp/libcrypto-lib-s_lib.o" => [ + "crypto/evp/s_lib.c" + ], "crypto/evp/libcrypto-lib-signature.o" => [ "crypto/evp/signature.c" ], + "crypto/evp/libcrypto-lib-skeymgmt_meth.o" => [ + "crypto/evp/skeymgmt_meth.c" + ], "crypto/evp/libfips-lib-asymcipher.o" => [ "crypto/evp/asymcipher.c" ], @@ -22200,9 +25674,6 @@ our %unified_info = ( "crypto/evp/libfips-lib-keymgmt_meth.o" => [ "crypto/evp/keymgmt_meth.c" ], - "crypto/evp/libfips-lib-m_sigver.o" => [ - "crypto/evp/m_sigver.c" - ], "crypto/evp/libfips-lib-mac_lib.o" => [ "crypto/evp/mac_lib.c" ], @@ -22221,9 +25692,15 @@ our %unified_info = ( "crypto/evp/libfips-lib-pmeth_lib.o" => [ "crypto/evp/pmeth_lib.c" ], + "crypto/evp/libfips-lib-s_lib.o" => [ + "crypto/evp/s_lib.c" + ], "crypto/evp/libfips-lib-signature.o" => [ "crypto/evp/signature.c" ], + "crypto/evp/libfips-lib-skeymgmt_meth.o" => [ + "crypto/evp/skeymgmt_meth.c" + ], "crypto/ffc/libcrypto-lib-ffc_backend.o" => [ "crypto/ffc/ffc_backend.c" ], @@ -22266,12 +25743,30 @@ our %unified_info = ( "crypto/ffc/libfips-lib-ffc_params_validate.o" => [ "crypto/ffc/ffc_params_validate.c" ], + "crypto/hashtable/libcrypto-lib-hashfunc.o" => [ + "crypto/hashtable/hashfunc.c" + ], + "crypto/hashtable/libcrypto-lib-hashtable.o" => [ + "crypto/hashtable/hashtable.c" + ], + "crypto/hashtable/libfips-lib-hashfunc.o" => [ + "crypto/hashtable/hashfunc.c" + ], + "crypto/hashtable/libfips-lib-hashtable.o" => [ + "crypto/hashtable/hashtable.c" + ], "crypto/hmac/libcrypto-lib-hmac.o" => [ "crypto/hmac/hmac.c" ], "crypto/hmac/libfips-lib-hmac.o" => [ "crypto/hmac/hmac.c" ], + "crypto/hpke/libcrypto-lib-hpke.o" => [ + "crypto/hpke/hpke.c" + ], + "crypto/hpke/libcrypto-lib-hpke_util.o" => [ + "crypto/hpke/hpke_util.c" + ], "crypto/http/libcrypto-lib-http_client.o" => [ "crypto/http/http_client.c" ], @@ -22314,6 +25809,9 @@ our %unified_info = ( "crypto/libcrypto-lib-bsearch.o" => [ "crypto/bsearch.c" ], + "crypto/libcrypto-lib-comp_methods.o" => [ + "crypto/comp_methods.c" + ], "crypto/libcrypto-lib-context.o" => [ "crypto/context.c" ], @@ -22341,9 +25839,15 @@ our %unified_info = ( "crypto/libcrypto-lib-cversion.o" => [ "crypto/cversion.c" ], + "crypto/libcrypto-lib-defaults.o" => [ + "crypto/defaults.c" + ], "crypto/libcrypto-lib-der_writer.o" => [ "crypto/der_writer.c" ], + "crypto/libcrypto-lib-deterministic_nonce.o" => [ + "crypto/deterministic_nonce.c" + ], "crypto/libcrypto-lib-ebcdic.o" => [ "crypto/ebcdic.c" ], @@ -22353,6 +25857,9 @@ our %unified_info = ( "crypto/libcrypto-lib-getenv.o" => [ "crypto/getenv.c" ], + "crypto/libcrypto-lib-indicator_core.o" => [ + "crypto/indicator_core.c" + ], "crypto/libcrypto-lib-info.o" => [ "crypto/info.c" ], @@ -22404,6 +25911,9 @@ our %unified_info = ( "crypto/libcrypto-lib-params_from_text.o" => [ "crypto/params_from_text.c" ], + "crypto/libcrypto-lib-params_idx.o" => [ + "crypto/params_idx.c" + ], "crypto/libcrypto-lib-passphrase.o" => [ "crypto/passphrase.c" ], @@ -22425,12 +25935,21 @@ our %unified_info = ( "crypto/libcrypto-lib-punycode.o" => [ "crypto/punycode.c" ], + "crypto/libcrypto-lib-quic_vlint.o" => [ + "crypto/quic_vlint.c" + ], "crypto/libcrypto-lib-self_test_core.o" => [ "crypto/self_test_core.c" ], + "crypto/libcrypto-lib-sleep.o" => [ + "crypto/sleep.c" + ], "crypto/libcrypto-lib-sparse_array.o" => [ "crypto/sparse_array.c" ], + "crypto/libcrypto-lib-ssl_err.o" => [ + "crypto/ssl_err.c" + ], "crypto/libcrypto-lib-threads_lib.o" => [ "crypto/threads_lib.c" ], @@ -22443,6 +25962,9 @@ our %unified_info = ( "crypto/libcrypto-lib-threads_win.o" => [ "crypto/threads_win.c" ], + "crypto/libcrypto-lib-time.o" => [ + "crypto/time.c" + ], "crypto/libcrypto-lib-trace.o" => [ "crypto/trace.c" ], @@ -22509,6 +26031,9 @@ our %unified_info = ( "crypto/libfips-lib-params_from_text.o" => [ "crypto/params_from_text.c" ], + "crypto/libfips-lib-params_idx.o" => [ + "crypto/params_idx.c" + ], "crypto/libfips-lib-provider_core.o" => [ "crypto/provider_core.c" ], @@ -22533,6 +26058,9 @@ our %unified_info = ( "crypto/libfips-lib-threads_win.o" => [ "crypto/threads_win.c" ], + "crypto/libfips-lib-time.o" => [ + "crypto/time.c" + ], "crypto/md4/libcrypto-lib-md4_dgst.o" => [ "crypto/md4/md4_dgst.c" ], @@ -22554,6 +26082,60 @@ our %unified_info = ( "crypto/mdc2/libcrypto-lib-mdc2dgst.o" => [ "crypto/mdc2/mdc2dgst.c" ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_encoders.o" => [ + "crypto/ml_dsa/ml_dsa_encoders.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key.o" => [ + "crypto/ml_dsa/ml_dsa_key.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key_compress.o" => [ + "crypto/ml_dsa/ml_dsa_key_compress.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_matrix.o" => [ + "crypto/ml_dsa/ml_dsa_matrix.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_ntt.o" => [ + "crypto/ml_dsa/ml_dsa_ntt.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_params.o" => [ + "crypto/ml_dsa/ml_dsa_params.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sample.o" => [ + "crypto/ml_dsa/ml_dsa_sample.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sign.o" => [ + "crypto/ml_dsa/ml_dsa_sign.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_encoders.o" => [ + "crypto/ml_dsa/ml_dsa_encoders.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_key.o" => [ + "crypto/ml_dsa/ml_dsa_key.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_key_compress.o" => [ + "crypto/ml_dsa/ml_dsa_key_compress.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_matrix.o" => [ + "crypto/ml_dsa/ml_dsa_matrix.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_ntt.o" => [ + "crypto/ml_dsa/ml_dsa_ntt.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_params.o" => [ + "crypto/ml_dsa/ml_dsa_params.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_sample.o" => [ + "crypto/ml_dsa/ml_dsa_sample.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_sign.o" => [ + "crypto/ml_dsa/ml_dsa_sign.c" + ], + "crypto/ml_kem/libcrypto-lib-ml_kem.o" => [ + "crypto/ml_kem/ml_kem.c" + ], + "crypto/ml_kem/libfips-lib-ml_kem.o" => [ + "crypto/ml_kem/ml_kem.c" + ], "crypto/modes/libcrypto-lib-cbc128.o" => [ "crypto/modes/cbc128.c" ], @@ -22587,6 +26169,9 @@ our %unified_info = ( "crypto/modes/libcrypto-lib-xts128.o" => [ "crypto/modes/xts128.c" ], + "crypto/modes/libcrypto-lib-xts128gb.o" => [ + "crypto/modes/xts128gb.c" + ], "crypto/modes/libfips-lib-cbc128.o" => [ "crypto/modes/cbc128.c" ], @@ -22611,6 +26196,9 @@ our %unified_info = ( "crypto/modes/libfips-lib-xts128.o" => [ "crypto/modes/xts128.c" ], + "crypto/modes/libfips-lib-xts128gb.o" => [ + "crypto/modes/xts128gb.c" + ], "crypto/objects/libcrypto-lib-o_names.o" => [ "crypto/objects/o_names.c" ], @@ -22656,6 +26244,9 @@ our %unified_info = ( "crypto/ocsp/libcrypto-lib-v3_ocsp.o" => [ "crypto/ocsp/v3_ocsp.c" ], + "crypto/packettest-bin-quic_vlint.o" => [ + "crypto/quic_vlint.c" + ], "crypto/pem/libcrypto-lib-pem_all.o" => [ "crypto/pem/pem_all.c" ], @@ -22815,6 +26406,9 @@ our %unified_info = ( "crypto/rand/libcrypto-lib-rand_pool.o" => [ "crypto/rand/rand_pool.c" ], + "crypto/rand/libcrypto-lib-rand_uniform.o" => [ + "crypto/rand/rand_uniform.c" + ], "crypto/rand/libcrypto-lib-randfile.o" => [ "crypto/rand/randfile.c" ], @@ -23028,6 +26622,66 @@ our %unified_info = ( "crypto/siphash/libcrypto-lib-siphash.o" => [ "crypto/siphash/siphash.c" ], + "crypto/slh_dsa/libcrypto-lib-slh_adrs.o" => [ + "crypto/slh_dsa/slh_adrs.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_dsa.o" => [ + "crypto/slh_dsa/slh_dsa.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_dsa_hash_ctx.o" => [ + "crypto/slh_dsa/slh_dsa_hash_ctx.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_dsa_key.o" => [ + "crypto/slh_dsa/slh_dsa_key.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_fors.o" => [ + "crypto/slh_dsa/slh_fors.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_hash.o" => [ + "crypto/slh_dsa/slh_hash.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_hypertree.o" => [ + "crypto/slh_dsa/slh_hypertree.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_params.o" => [ + "crypto/slh_dsa/slh_params.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_wots.o" => [ + "crypto/slh_dsa/slh_wots.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_xmss.o" => [ + "crypto/slh_dsa/slh_xmss.c" + ], + "crypto/slh_dsa/libfips-lib-slh_adrs.o" => [ + "crypto/slh_dsa/slh_adrs.c" + ], + "crypto/slh_dsa/libfips-lib-slh_dsa.o" => [ + "crypto/slh_dsa/slh_dsa.c" + ], + "crypto/slh_dsa/libfips-lib-slh_dsa_hash_ctx.o" => [ + "crypto/slh_dsa/slh_dsa_hash_ctx.c" + ], + "crypto/slh_dsa/libfips-lib-slh_dsa_key.o" => [ + "crypto/slh_dsa/slh_dsa_key.c" + ], + "crypto/slh_dsa/libfips-lib-slh_fors.o" => [ + "crypto/slh_dsa/slh_fors.c" + ], + "crypto/slh_dsa/libfips-lib-slh_hash.o" => [ + "crypto/slh_dsa/slh_hash.c" + ], + "crypto/slh_dsa/libfips-lib-slh_hypertree.o" => [ + "crypto/slh_dsa/slh_hypertree.c" + ], + "crypto/slh_dsa/libfips-lib-slh_params.o" => [ + "crypto/slh_dsa/slh_params.c" + ], + "crypto/slh_dsa/libfips-lib-slh_wots.o" => [ + "crypto/slh_dsa/slh_wots.c" + ], + "crypto/slh_dsa/libfips-lib-slh_xmss.o" => [ + "crypto/slh_dsa/slh_xmss.c" + ], "crypto/sm2/libcrypto-lib-sm2_crypt.o" => [ "crypto/sm2/sm2_crypt.c" ], @@ -23082,6 +26736,42 @@ our %unified_info = ( "crypto/store/libcrypto-lib-store_strings.o" => [ "crypto/store/store_strings.c" ], + "crypto/thread/arch/libcrypto-lib-thread_none.o" => [ + "crypto/thread/arch/thread_none.c" + ], + "crypto/thread/arch/libcrypto-lib-thread_posix.o" => [ + "crypto/thread/arch/thread_posix.c" + ], + "crypto/thread/arch/libcrypto-lib-thread_win.o" => [ + "crypto/thread/arch/thread_win.c" + ], + "crypto/thread/arch/libfips-lib-thread_none.o" => [ + "crypto/thread/arch/thread_none.c" + ], + "crypto/thread/arch/libfips-lib-thread_posix.o" => [ + "crypto/thread/arch/thread_posix.c" + ], + "crypto/thread/arch/libfips-lib-thread_win.o" => [ + "crypto/thread/arch/thread_win.c" + ], + "crypto/thread/libcrypto-lib-api.o" => [ + "crypto/thread/api.c" + ], + "crypto/thread/libcrypto-lib-arch.o" => [ + "crypto/thread/arch.c" + ], + "crypto/thread/libcrypto-lib-internal.o" => [ + "crypto/thread/internal.c" + ], + "crypto/thread/libfips-lib-api.o" => [ + "crypto/thread/api.c" + ], + "crypto/thread/libfips-lib-arch.o" => [ + "crypto/thread/arch.c" + ], + "crypto/thread/libfips-lib-internal.o" => [ + "crypto/thread/internal.c" + ], "crypto/ts/libcrypto-lib-ts_asn1.o" => [ "crypto/ts/ts_asn1.c" ], @@ -23166,6 +26856,9 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-pcy_tree.o" => [ "crypto/x509/pcy_tree.c" ], + "crypto/x509/libcrypto-lib-t_acert.o" => [ + "crypto/x509/t_acert.c" + ], "crypto/x509/libcrypto-lib-t_crl.o" => [ "crypto/x509/t_crl.c" ], @@ -23175,6 +26868,12 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-t_x509.o" => [ "crypto/x509/t_x509.c" ], + "crypto/x509/libcrypto-lib-v3_aaa.o" => [ + "crypto/x509/v3_aaa.c" + ], + "crypto/x509/libcrypto-lib-v3_ac_tgt.o" => [ + "crypto/x509/v3_ac_tgt.c" + ], "crypto/x509/libcrypto-lib-v3_addr.o" => [ "crypto/x509/v3_addr.c" ], @@ -23190,6 +26889,21 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_asid.o" => [ "crypto/x509/v3_asid.c" ], + "crypto/x509/libcrypto-lib-v3_attrdesc.o" => [ + "crypto/x509/v3_attrdesc.c" + ], + "crypto/x509/libcrypto-lib-v3_attrmap.o" => [ + "crypto/x509/v3_attrmap.c" + ], + "crypto/x509/libcrypto-lib-v3_audit_id.o" => [ + "crypto/x509/v3_audit_id.c" + ], + "crypto/x509/libcrypto-lib-v3_authattid.o" => [ + "crypto/x509/v3_authattid.c" + ], + "crypto/x509/libcrypto-lib-v3_battcons.o" => [ + "crypto/x509/v3_battcons.c" + ], "crypto/x509/libcrypto-lib-v3_bcons.o" => [ "crypto/x509/v3_bcons.c" ], @@ -23214,15 +26928,24 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_genn.o" => [ "crypto/x509/v3_genn.c" ], + "crypto/x509/libcrypto-lib-v3_group_ac.o" => [ + "crypto/x509/v3_group_ac.c" + ], "crypto/x509/libcrypto-lib-v3_ia5.o" => [ "crypto/x509/v3_ia5.c" ], + "crypto/x509/libcrypto-lib-v3_ind_iss.o" => [ + "crypto/x509/v3_ind_iss.c" + ], "crypto/x509/libcrypto-lib-v3_info.o" => [ "crypto/x509/v3_info.c" ], "crypto/x509/libcrypto-lib-v3_int.o" => [ "crypto/x509/v3_int.c" ], + "crypto/x509/libcrypto-lib-v3_iobo.o" => [ + "crypto/x509/v3_iobo.c" + ], "crypto/x509/libcrypto-lib-v3_ist.o" => [ "crypto/x509/v3_ist.c" ], @@ -23232,6 +26955,12 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_ncons.o" => [ "crypto/x509/v3_ncons.c" ], + "crypto/x509/libcrypto-lib-v3_no_ass.o" => [ + "crypto/x509/v3_no_ass.c" + ], + "crypto/x509/libcrypto-lib-v3_no_rev_avail.o" => [ + "crypto/x509/v3_no_rev_avail.c" + ], "crypto/x509/libcrypto-lib-v3_pci.o" => [ "crypto/x509/v3_pci.c" ], @@ -23253,18 +26982,36 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_purp.o" => [ "crypto/x509/v3_purp.c" ], + "crypto/x509/libcrypto-lib-v3_rolespec.o" => [ + "crypto/x509/v3_rolespec.c" + ], "crypto/x509/libcrypto-lib-v3_san.o" => [ "crypto/x509/v3_san.c" ], + "crypto/x509/libcrypto-lib-v3_sda.o" => [ + "crypto/x509/v3_sda.c" + ], + "crypto/x509/libcrypto-lib-v3_single_use.o" => [ + "crypto/x509/v3_single_use.c" + ], "crypto/x509/libcrypto-lib-v3_skid.o" => [ "crypto/x509/v3_skid.c" ], + "crypto/x509/libcrypto-lib-v3_soa_id.o" => [ + "crypto/x509/v3_soa_id.c" + ], "crypto/x509/libcrypto-lib-v3_sxnet.o" => [ "crypto/x509/v3_sxnet.c" ], + "crypto/x509/libcrypto-lib-v3_timespec.o" => [ + "crypto/x509/v3_timespec.c" + ], "crypto/x509/libcrypto-lib-v3_tlsf.o" => [ "crypto/x509/v3_tlsf.c" ], + "crypto/x509/libcrypto-lib-v3_usernotice.o" => [ + "crypto/x509/v3_usernotice.c" + ], "crypto/x509/libcrypto-lib-v3_utf8.o" => [ "crypto/x509/v3_utf8.c" ], @@ -23274,6 +27021,9 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3err.o" => [ "crypto/x509/v3err.c" ], + "crypto/x509/libcrypto-lib-x509_acert.o" => [ + "crypto/x509/x509_acert.c" + ], "crypto/x509/libcrypto-lib-x509_att.o" => [ "crypto/x509/x509_att.c" ], @@ -23325,6 +27075,9 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x509_vpm.o" => [ "crypto/x509/x509_vpm.c" ], + "crypto/x509/libcrypto-lib-x509aset.o" => [ + "crypto/x509/x509aset.c" + ], "crypto/x509/libcrypto-lib-x509cset.o" => [ "crypto/x509/x509cset.c" ], @@ -23352,6 +27105,9 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x_exten.o" => [ "crypto/x509/x_exten.c" ], + "crypto/x509/libcrypto-lib-x_ietfatt.o" => [ + "crypto/x509/x_ietfatt.c" + ], "crypto/x509/libcrypto-lib-x_name.o" => [ "crypto/x509/x_name.c" ], @@ -23373,6 +27129,16 @@ our %unified_info = ( "engines/libcrypto-lib-e_padlock.o" => [ "engines/e_padlock.c" ], + "fuzz/acert-test" => [ + "fuzz/acert-test-bin-acert.o", + "fuzz/acert-test-bin-test-corpus.o" + ], + "fuzz/acert-test-bin-acert.o" => [ + "fuzz/acert.c" + ], + "fuzz/acert-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], "fuzz/asn1-test" => [ "fuzz/asn1-test-bin-asn1.o", "fuzz/asn1-test-bin-fuzz_rand.o", @@ -23485,6 +27251,190 @@ our %unified_info = ( "fuzz/ct-test-bin-test-corpus.o" => [ "fuzz/test-corpus.c" ], + "fuzz/decoder-test" => [ + "fuzz/decoder-test-bin-decoder.o", + "fuzz/decoder-test-bin-fuzz_rand.o", + "fuzz/decoder-test-bin-test-corpus.o" + ], + "fuzz/decoder-test-bin-decoder.o" => [ + "fuzz/decoder.c" + ], + "fuzz/decoder-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/decoder-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/dtlsclient-test" => [ + "fuzz/dtlsclient-test-bin-dtlsclient.o", + "fuzz/dtlsclient-test-bin-fuzz_rand.o", + "fuzz/dtlsclient-test-bin-test-corpus.o" + ], + "fuzz/dtlsclient-test-bin-dtlsclient.o" => [ + "fuzz/dtlsclient.c" + ], + "fuzz/dtlsclient-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/dtlsclient-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/dtlsserver-test" => [ + "fuzz/dtlsserver-test-bin-dtlsserver.o", + "fuzz/dtlsserver-test-bin-fuzz_rand.o", + "fuzz/dtlsserver-test-bin-test-corpus.o" + ], + "fuzz/dtlsserver-test-bin-dtlsserver.o" => [ + "fuzz/dtlsserver.c" + ], + "fuzz/dtlsserver-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/dtlsserver-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/hashtable-test" => [ + "fuzz/hashtable-test-bin-fuzz_rand.o", + "fuzz/hashtable-test-bin-hashtable.o", + "fuzz/hashtable-test-bin-test-corpus.o" + ], + "fuzz/hashtable-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/hashtable-test-bin-hashtable.o" => [ + "fuzz/hashtable.c" + ], + "fuzz/hashtable-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/ml-dsa-test" => [ + "fuzz/ml-dsa-test-bin-fuzz_rand.o", + "fuzz/ml-dsa-test-bin-ml-dsa.o", + "fuzz/ml-dsa-test-bin-test-corpus.o" + ], + "fuzz/ml-dsa-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/ml-dsa-test-bin-ml-dsa.o" => [ + "fuzz/ml-dsa.c" + ], + "fuzz/ml-dsa-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/ml-kem-test" => [ + "fuzz/ml-kem-test-bin-fuzz_rand.o", + "fuzz/ml-kem-test-bin-ml-kem.o", + "fuzz/ml-kem-test-bin-test-corpus.o" + ], + "fuzz/ml-kem-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/ml-kem-test-bin-ml-kem.o" => [ + "fuzz/ml-kem.c" + ], + "fuzz/ml-kem-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/pem-test" => [ + "fuzz/pem-test-bin-pem.o", + "fuzz/pem-test-bin-test-corpus.o" + ], + "fuzz/pem-test-bin-pem.o" => [ + "fuzz/pem.c" + ], + "fuzz/pem-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/provider-test" => [ + "fuzz/provider-test-bin-provider.o", + "fuzz/provider-test-bin-test-corpus.o" + ], + "fuzz/provider-test-bin-provider.o" => [ + "fuzz/provider.c" + ], + "fuzz/provider-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/punycode-test" => [ + "fuzz/punycode-test-bin-punycode.o", + "fuzz/punycode-test-bin-test-corpus.o" + ], + "fuzz/punycode-test-bin-punycode.o" => [ + "fuzz/punycode.c" + ], + "fuzz/punycode-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-client-test" => [ + "fuzz/quic-client-test-bin-fuzz_rand.o", + "fuzz/quic-client-test-bin-quic-client.o", + "fuzz/quic-client-test-bin-test-corpus.o" + ], + "fuzz/quic-client-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-client-test-bin-quic-client.o" => [ + "fuzz/quic-client.c" + ], + "fuzz/quic-client-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-lcidm-test" => [ + "fuzz/quic-lcidm-test-bin-fuzz_rand.o", + "fuzz/quic-lcidm-test-bin-quic-lcidm.o", + "fuzz/quic-lcidm-test-bin-test-corpus.o" + ], + "fuzz/quic-lcidm-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-lcidm-test-bin-quic-lcidm.o" => [ + "fuzz/quic-lcidm.c" + ], + "fuzz/quic-lcidm-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-rcidm-test" => [ + "fuzz/quic-rcidm-test-bin-fuzz_rand.o", + "fuzz/quic-rcidm-test-bin-quic-rcidm.o", + "fuzz/quic-rcidm-test-bin-test-corpus.o" + ], + "fuzz/quic-rcidm-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-rcidm-test-bin-quic-rcidm.o" => [ + "fuzz/quic-rcidm.c" + ], + "fuzz/quic-rcidm-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-server-test" => [ + "fuzz/quic-server-test-bin-fuzz_rand.o", + "fuzz/quic-server-test-bin-quic-server.o", + "fuzz/quic-server-test-bin-test-corpus.o" + ], + "fuzz/quic-server-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-server-test-bin-quic-server.o" => [ + "fuzz/quic-server.c" + ], + "fuzz/quic-server-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-srtm-test" => [ + "fuzz/quic-srtm-test-bin-fuzz_rand.o", + "fuzz/quic-srtm-test-bin-quic-srtm.o", + "fuzz/quic-srtm-test-bin-test-corpus.o" + ], + "fuzz/quic-srtm-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-srtm-test-bin-quic-srtm.o" => [ + "fuzz/quic-srtm.c" + ], + "fuzz/quic-srtm-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], "fuzz/server-test" => [ "fuzz/server-test-bin-fuzz_rand.o", "fuzz/server-test-bin-server.o", @@ -23499,6 +27449,40 @@ our %unified_info = ( "fuzz/server-test-bin-test-corpus.o" => [ "fuzz/test-corpus.c" ], + "fuzz/slh-dsa-test" => [ + "fuzz/slh-dsa-test-bin-fuzz_rand.o", + "fuzz/slh-dsa-test-bin-slh-dsa.o", + "fuzz/slh-dsa-test-bin-test-corpus.o" + ], + "fuzz/slh-dsa-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/slh-dsa-test-bin-slh-dsa.o" => [ + "fuzz/slh-dsa.c" + ], + "fuzz/slh-dsa-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/smime-test" => [ + "fuzz/smime-test-bin-smime.o", + "fuzz/smime-test-bin-test-corpus.o" + ], + "fuzz/smime-test-bin-smime.o" => [ + "fuzz/smime.c" + ], + "fuzz/smime-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/v3name-test" => [ + "fuzz/v3name-test-bin-test-corpus.o", + "fuzz/v3name-test-bin-v3name.o" + ], + "fuzz/v3name-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/v3name-test-bin-v3name.o" => [ + "fuzz/v3name.c" + ], "fuzz/x509-test" => [ "fuzz/x509-test-bin-fuzz_rand.o", "fuzz/x509-test-bin-test-corpus.o", @@ -23618,6 +27602,7 @@ our %unified_info = ( "crypto/bio/libcrypto-lib-bss_conn.o", "crypto/bio/libcrypto-lib-bss_core.o", "crypto/bio/libcrypto-lib-bss_dgram.o", + "crypto/bio/libcrypto-lib-bss_dgram_pair.o", "crypto/bio/libcrypto-lib-bss_fd.o", "crypto/bio/libcrypto-lib-bss_file.o", "crypto/bio/libcrypto-lib-bss_log.o", @@ -23678,6 +27663,7 @@ our %unified_info = ( "crypto/cmp/libcrypto-lib-cmp_client.o", "crypto/cmp/libcrypto-lib-cmp_ctx.o", "crypto/cmp/libcrypto-lib-cmp_err.o", + "crypto/cmp/libcrypto-lib-cmp_genm.o", "crypto/cmp/libcrypto-lib-cmp_hdr.o", "crypto/cmp/libcrypto-lib-cmp_http.o", "crypto/cmp/libcrypto-lib-cmp_msg.o", @@ -23853,7 +27839,9 @@ our %unified_info = ( "crypto/err/libcrypto-lib-err_all.o", "crypto/err/libcrypto-lib-err_all_legacy.o", "crypto/err/libcrypto-lib-err_blocks.o", + "crypto/err/libcrypto-lib-err_mark.o", "crypto/err/libcrypto-lib-err_prn.o", + "crypto/err/libcrypto-lib-err_save.o", "crypto/ess/libcrypto-lib-ess_asn1.o", "crypto/ess/libcrypto-lib-ess_err.o", "crypto/ess/libcrypto-lib-ess_lib.o", @@ -23936,7 +27924,9 @@ our %unified_info = ( "crypto/evp/libcrypto-lib-pmeth_check.o", "crypto/evp/libcrypto-lib-pmeth_gn.o", "crypto/evp/libcrypto-lib-pmeth_lib.o", + "crypto/evp/libcrypto-lib-s_lib.o", "crypto/evp/libcrypto-lib-signature.o", + "crypto/evp/libcrypto-lib-skeymgmt_meth.o", "crypto/ffc/libcrypto-lib-ffc_backend.o", "crypto/ffc/libcrypto-lib-ffc_dh.o", "crypto/ffc/libcrypto-lib-ffc_key_generate.o", @@ -23944,7 +27934,11 @@ our %unified_info = ( "crypto/ffc/libcrypto-lib-ffc_params.o", "crypto/ffc/libcrypto-lib-ffc_params_generate.o", "crypto/ffc/libcrypto-lib-ffc_params_validate.o", + "crypto/hashtable/libcrypto-lib-hashfunc.o", + "crypto/hashtable/libcrypto-lib-hashtable.o", "crypto/hmac/libcrypto-lib-hmac.o", + "crypto/hpke/libcrypto-lib-hpke.o", + "crypto/hpke/libcrypto-lib-hpke_util.o", "crypto/http/libcrypto-lib-http_client.o", "crypto/http/libcrypto-lib-http_err.o", "crypto/http/libcrypto-lib-http_lib.o", @@ -23958,6 +27952,7 @@ our %unified_info = ( "crypto/lhash/libcrypto-lib-lhash.o", "crypto/libcrypto-lib-asn1_dsa.o", "crypto/libcrypto-lib-bsearch.o", + "crypto/libcrypto-lib-comp_methods.o", "crypto/libcrypto-lib-context.o", "crypto/libcrypto-lib-core_algorithm.o", "crypto/libcrypto-lib-core_fetch.o", @@ -23967,10 +27962,13 @@ our %unified_info = ( "crypto/libcrypto-lib-cryptlib.o", "crypto/libcrypto-lib-ctype.o", "crypto/libcrypto-lib-cversion.o", + "crypto/libcrypto-lib-defaults.o", "crypto/libcrypto-lib-der_writer.o", + "crypto/libcrypto-lib-deterministic_nonce.o", "crypto/libcrypto-lib-ebcdic.o", "crypto/libcrypto-lib-ex_data.o", "crypto/libcrypto-lib-getenv.o", + "crypto/libcrypto-lib-indicator_core.o", "crypto/libcrypto-lib-info.o", "crypto/libcrypto-lib-init.o", "crypto/libcrypto-lib-initthread.o", @@ -23988,6 +27986,7 @@ our %unified_info = ( "crypto/libcrypto-lib-params.o", "crypto/libcrypto-lib-params_dup.o", "crypto/libcrypto-lib-params_from_text.o", + "crypto/libcrypto-lib-params_idx.o", "crypto/libcrypto-lib-passphrase.o", "crypto/libcrypto-lib-provider.o", "crypto/libcrypto-lib-provider_child.o", @@ -23995,12 +27994,16 @@ our %unified_info = ( "crypto/libcrypto-lib-provider_core.o", "crypto/libcrypto-lib-provider_predefined.o", "crypto/libcrypto-lib-punycode.o", + "crypto/libcrypto-lib-quic_vlint.o", "crypto/libcrypto-lib-self_test_core.o", + "crypto/libcrypto-lib-sleep.o", "crypto/libcrypto-lib-sparse_array.o", + "crypto/libcrypto-lib-ssl_err.o", "crypto/libcrypto-lib-threads_lib.o", "crypto/libcrypto-lib-threads_none.o", "crypto/libcrypto-lib-threads_pthread.o", "crypto/libcrypto-lib-threads_win.o", + "crypto/libcrypto-lib-time.o", "crypto/libcrypto-lib-trace.o", "crypto/libcrypto-lib-uid.o", "crypto/md4/libcrypto-lib-md4_dgst.o", @@ -24010,6 +28013,15 @@ our %unified_info = ( "crypto/md5/libcrypto-lib-md5_sha1.o", "crypto/mdc2/libcrypto-lib-mdc2_one.o", "crypto/mdc2/libcrypto-lib-mdc2dgst.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_encoders.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key_compress.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_matrix.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_ntt.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_params.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sample.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sign.o", + "crypto/ml_kem/libcrypto-lib-ml_kem.o", "crypto/modes/libcrypto-lib-cbc128.o", "crypto/modes/libcrypto-lib-ccm128.o", "crypto/modes/libcrypto-lib-cfb128.o", @@ -24021,6 +28033,7 @@ our %unified_info = ( "crypto/modes/libcrypto-lib-siv128.o", "crypto/modes/libcrypto-lib-wrap128.o", "crypto/modes/libcrypto-lib-xts128.o", + "crypto/modes/libcrypto-lib-xts128gb.o", "crypto/objects/libcrypto-lib-o_names.o", "crypto/objects/libcrypto-lib-obj_dat.o", "crypto/objects/libcrypto-lib-obj_err.o", @@ -24084,6 +28097,7 @@ our %unified_info = ( "crypto/rand/libcrypto-lib-rand_lib.o", "crypto/rand/libcrypto-lib-rand_meth.o", "crypto/rand/libcrypto-lib-rand_pool.o", + "crypto/rand/libcrypto-lib-rand_uniform.o", "crypto/rand/libcrypto-lib-randfile.o", "crypto/rc2/libcrypto-lib-rc2_cbc.o", "crypto/rc2/libcrypto-lib-rc2_ecb.o", @@ -24132,6 +28146,16 @@ our %unified_info = ( "crypto/sha/libcrypto-lib-sha3.o", "crypto/sha/libcrypto-lib-sha512.o", "crypto/siphash/libcrypto-lib-siphash.o", + "crypto/slh_dsa/libcrypto-lib-slh_adrs.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa_hash_ctx.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa_key.o", + "crypto/slh_dsa/libcrypto-lib-slh_fors.o", + "crypto/slh_dsa/libcrypto-lib-slh_hash.o", + "crypto/slh_dsa/libcrypto-lib-slh_hypertree.o", + "crypto/slh_dsa/libcrypto-lib-slh_params.o", + "crypto/slh_dsa/libcrypto-lib-slh_wots.o", + "crypto/slh_dsa/libcrypto-lib-slh_xmss.o", "crypto/sm2/libcrypto-lib-sm2_crypt.o", "crypto/sm2/libcrypto-lib-sm2_err.o", "crypto/sm2/libcrypto-lib-sm2_key.o", @@ -24149,6 +28173,12 @@ our %unified_info = ( "crypto/store/libcrypto-lib-store_register.o", "crypto/store/libcrypto-lib-store_result.o", "crypto/store/libcrypto-lib-store_strings.o", + "crypto/thread/arch/libcrypto-lib-thread_none.o", + "crypto/thread/arch/libcrypto-lib-thread_posix.o", + "crypto/thread/arch/libcrypto-lib-thread_win.o", + "crypto/thread/libcrypto-lib-api.o", + "crypto/thread/libcrypto-lib-arch.o", + "crypto/thread/libcrypto-lib-internal.o", "crypto/ts/libcrypto-lib-ts_asn1.o", "crypto/ts/libcrypto-lib-ts_conf.o", "crypto/ts/libcrypto-lib-ts_err.o", @@ -24177,14 +28207,22 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-pcy_map.o", "crypto/x509/libcrypto-lib-pcy_node.o", "crypto/x509/libcrypto-lib-pcy_tree.o", + "crypto/x509/libcrypto-lib-t_acert.o", "crypto/x509/libcrypto-lib-t_crl.o", "crypto/x509/libcrypto-lib-t_req.o", "crypto/x509/libcrypto-lib-t_x509.o", + "crypto/x509/libcrypto-lib-v3_aaa.o", + "crypto/x509/libcrypto-lib-v3_ac_tgt.o", "crypto/x509/libcrypto-lib-v3_addr.o", "crypto/x509/libcrypto-lib-v3_admis.o", "crypto/x509/libcrypto-lib-v3_akeya.o", "crypto/x509/libcrypto-lib-v3_akid.o", "crypto/x509/libcrypto-lib-v3_asid.o", + "crypto/x509/libcrypto-lib-v3_attrdesc.o", + "crypto/x509/libcrypto-lib-v3_attrmap.o", + "crypto/x509/libcrypto-lib-v3_audit_id.o", + "crypto/x509/libcrypto-lib-v3_authattid.o", + "crypto/x509/libcrypto-lib-v3_battcons.o", "crypto/x509/libcrypto-lib-v3_bcons.o", "crypto/x509/libcrypto-lib-v3_bitst.o", "crypto/x509/libcrypto-lib-v3_conf.o", @@ -24193,12 +28231,17 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_enum.o", "crypto/x509/libcrypto-lib-v3_extku.o", "crypto/x509/libcrypto-lib-v3_genn.o", + "crypto/x509/libcrypto-lib-v3_group_ac.o", "crypto/x509/libcrypto-lib-v3_ia5.o", + "crypto/x509/libcrypto-lib-v3_ind_iss.o", "crypto/x509/libcrypto-lib-v3_info.o", "crypto/x509/libcrypto-lib-v3_int.o", + "crypto/x509/libcrypto-lib-v3_iobo.o", "crypto/x509/libcrypto-lib-v3_ist.o", "crypto/x509/libcrypto-lib-v3_lib.o", "crypto/x509/libcrypto-lib-v3_ncons.o", + "crypto/x509/libcrypto-lib-v3_no_ass.o", + "crypto/x509/libcrypto-lib-v3_no_rev_avail.o", "crypto/x509/libcrypto-lib-v3_pci.o", "crypto/x509/libcrypto-lib-v3_pcia.o", "crypto/x509/libcrypto-lib-v3_pcons.o", @@ -24206,13 +28249,20 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_pmaps.o", "crypto/x509/libcrypto-lib-v3_prn.o", "crypto/x509/libcrypto-lib-v3_purp.o", + "crypto/x509/libcrypto-lib-v3_rolespec.o", "crypto/x509/libcrypto-lib-v3_san.o", + "crypto/x509/libcrypto-lib-v3_sda.o", + "crypto/x509/libcrypto-lib-v3_single_use.o", "crypto/x509/libcrypto-lib-v3_skid.o", + "crypto/x509/libcrypto-lib-v3_soa_id.o", "crypto/x509/libcrypto-lib-v3_sxnet.o", + "crypto/x509/libcrypto-lib-v3_timespec.o", "crypto/x509/libcrypto-lib-v3_tlsf.o", + "crypto/x509/libcrypto-lib-v3_usernotice.o", "crypto/x509/libcrypto-lib-v3_utf8.o", "crypto/x509/libcrypto-lib-v3_utl.o", "crypto/x509/libcrypto-lib-v3err.o", + "crypto/x509/libcrypto-lib-x509_acert.o", "crypto/x509/libcrypto-lib-x509_att.o", "crypto/x509/libcrypto-lib-x509_cmp.o", "crypto/x509/libcrypto-lib-x509_d2.o", @@ -24230,6 +28280,7 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x509_v3.o", "crypto/x509/libcrypto-lib-x509_vfy.o", "crypto/x509/libcrypto-lib-x509_vpm.o", + "crypto/x509/libcrypto-lib-x509aset.o", "crypto/x509/libcrypto-lib-x509cset.o", "crypto/x509/libcrypto-lib-x509name.o", "crypto/x509/libcrypto-lib-x509rset.o", @@ -24239,6 +28290,7 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x_attrib.o", "crypto/x509/libcrypto-lib-x_crl.o", "crypto/x509/libcrypto-lib-x_exten.o", + "crypto/x509/libcrypto-lib-x_ietfatt.o", "crypto/x509/libcrypto-lib-x_name.o", "crypto/x509/libcrypto-lib-x_pubkey.o", "crypto/x509/libcrypto-lib-x_req.o", @@ -24259,14 +28311,15 @@ our %unified_info = ( "ssl/libssl-lib-d1_srtp.o", "ssl/libssl-lib-methods.o", "ssl/libssl-lib-pqueue.o", + "ssl/libssl-lib-priority_queue.o", "ssl/libssl-lib-s3_enc.o", "ssl/libssl-lib-s3_lib.o", "ssl/libssl-lib-s3_msg.o", "ssl/libssl-lib-ssl_asn1.o", "ssl/libssl-lib-ssl_cert.o", + "ssl/libssl-lib-ssl_cert_comp.o", "ssl/libssl-lib-ssl_ciph.o", "ssl/libssl-lib-ssl_conf.o", - "ssl/libssl-lib-ssl_err.o", "ssl/libssl-lib-ssl_err_legacy.o", "ssl/libssl-lib-ssl_init.o", "ssl/libssl-lib-ssl_lib.o", @@ -24283,12 +28336,60 @@ our %unified_info = ( "ssl/libssl-lib-tls13_enc.o", "ssl/libssl-lib-tls_depr.o", "ssl/libssl-lib-tls_srp.o", - "ssl/record/libssl-lib-dtls1_bitmap.o", + "ssl/quic/libssl-lib-cc_newreno.o", + "ssl/quic/libssl-lib-json_enc.o", + "ssl/quic/libssl-lib-qlog.o", + "ssl/quic/libssl-lib-qlog_event_helpers.o", + "ssl/quic/libssl-lib-quic_ackm.o", + "ssl/quic/libssl-lib-quic_cfq.o", + "ssl/quic/libssl-lib-quic_channel.o", + "ssl/quic/libssl-lib-quic_demux.o", + "ssl/quic/libssl-lib-quic_engine.o", + "ssl/quic/libssl-lib-quic_fc.o", + "ssl/quic/libssl-lib-quic_fifd.o", + "ssl/quic/libssl-lib-quic_impl.o", + "ssl/quic/libssl-lib-quic_lcidm.o", + "ssl/quic/libssl-lib-quic_method.o", + "ssl/quic/libssl-lib-quic_obj.o", + "ssl/quic/libssl-lib-quic_port.o", + "ssl/quic/libssl-lib-quic_rcidm.o", + "ssl/quic/libssl-lib-quic_reactor.o", + "ssl/quic/libssl-lib-quic_reactor_wait_ctx.o", + "ssl/quic/libssl-lib-quic_record_rx.o", + "ssl/quic/libssl-lib-quic_record_shared.o", + "ssl/quic/libssl-lib-quic_record_tx.o", + "ssl/quic/libssl-lib-quic_record_util.o", + "ssl/quic/libssl-lib-quic_rstream.o", + "ssl/quic/libssl-lib-quic_rx_depack.o", + "ssl/quic/libssl-lib-quic_sf_list.o", + "ssl/quic/libssl-lib-quic_srt_gen.o", + "ssl/quic/libssl-lib-quic_srtm.o", + "ssl/quic/libssl-lib-quic_sstream.o", + "ssl/quic/libssl-lib-quic_statm.o", + "ssl/quic/libssl-lib-quic_stream_map.o", + "ssl/quic/libssl-lib-quic_thread_assist.o", + "ssl/quic/libssl-lib-quic_tls.o", + "ssl/quic/libssl-lib-quic_tls_api.o", + "ssl/quic/libssl-lib-quic_trace.o", + "ssl/quic/libssl-lib-quic_tserver.o", + "ssl/quic/libssl-lib-quic_txp.o", + "ssl/quic/libssl-lib-quic_txpim.o", + "ssl/quic/libssl-lib-quic_types.o", + "ssl/quic/libssl-lib-quic_wire.o", + "ssl/quic/libssl-lib-quic_wire_pkt.o", + "ssl/quic/libssl-lib-uint_set.o", "ssl/record/libssl-lib-rec_layer_d1.o", "ssl/record/libssl-lib-rec_layer_s3.o", - "ssl/record/libssl-lib-ssl3_buffer.o", - "ssl/record/libssl-lib-ssl3_record.o", - "ssl/record/libssl-lib-ssl3_record_tls13.o", + "ssl/record/methods/libssl-lib-dtls_meth.o", + "ssl/record/methods/libssl-lib-ssl3_meth.o", + "ssl/record/methods/libssl-lib-tls13_meth.o", + "ssl/record/methods/libssl-lib-tls1_meth.o", + "ssl/record/methods/libssl-lib-tls_common.o", + "ssl/record/methods/libssl-lib-tls_multib.o", + "ssl/record/methods/libssl-lib-tlsany_meth.o", + "ssl/rio/libssl-lib-poll_builder.o", + "ssl/rio/libssl-lib-poll_immediate.o", + "ssl/rio/libssl-lib-rio_notifier.o", "ssl/statem/libssl-lib-extensions.o", "ssl/statem/libssl-lib-extensions_clnt.o", "ssl/statem/libssl-lib-extensions_cust.o", @@ -24326,12 +28427,24 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ecx_key.o" => [ "providers/common/der/der_ecx_key.c" ], + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o" => [ + "providers/common/der/der_ml_dsa_gen.c" + ], + "providers/common/der/libcommon-lib-der_ml_dsa_key.o" => [ + "providers/common/der/der_ml_dsa_key.c" + ], "providers/common/der/libcommon-lib-der_rsa_gen.o" => [ "providers/common/der/der_rsa_gen.c" ], "providers/common/der/libcommon-lib-der_rsa_key.o" => [ "providers/common/der/der_rsa_key.c" ], + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o" => [ + "providers/common/der/der_slh_dsa_gen.c" + ], + "providers/common/der/libcommon-lib-der_slh_dsa_key.o" => [ + "providers/common/der/der_slh_dsa_key.c" + ], "providers/common/der/libcommon-lib-der_wrap_gen.o" => [ "providers/common/der/der_wrap_gen.c" ], @@ -24398,6 +28511,9 @@ our %unified_info = ( "providers/common/libfips-lib-securitycheck_fips.o" => [ "providers/common/securitycheck_fips.c" ], + "providers/endecode_test-bin-legacyprov.o" => [ + "providers/legacyprov.c" + ], "providers/evp_extra_test-bin-legacyprov.o" => [ "providers/legacyprov.c" ], @@ -24407,6 +28523,9 @@ our %unified_info = ( "providers/fips/fips-dso-fips_entry.o" => [ "providers/fips/fips_entry.c" ], + "providers/fips/libfips-lib-fipsindicator.o" => [ + "providers/fips/fipsindicator.c" + ], "providers/fips/libfips-lib-fipsprov.o" => [ "providers/fips/fipsprov.c" ], @@ -24470,6 +28589,15 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_hw.o" => [ "providers/implementations/ciphers/cipher_aes_gcm_hw.c" ], + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv.o" => [ + "providers/implementations/ciphers/cipher_aes_gcm_siv.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_hw.o" => [ + "providers/implementations/ciphers/cipher_aes_gcm_siv_hw.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_polyval.o" => [ + "providers/implementations/ciphers/cipher_aes_gcm_siv_polyval.c" + ], "providers/implementations/ciphers/libdefault-lib-cipher_aes_hw.o" => [ "providers/implementations/ciphers/cipher_aes_hw.c" ], @@ -24542,9 +28670,27 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_sm4.o" => [ "providers/implementations/ciphers/cipher_sm4.c" ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm.o" => [ + "providers/implementations/ciphers/cipher_sm4_ccm.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm_hw.o" => [ + "providers/implementations/ciphers/cipher_sm4_ccm_hw.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm.o" => [ + "providers/implementations/ciphers/cipher_sm4_gcm.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm_hw.o" => [ + "providers/implementations/ciphers/cipher_sm4_gcm_hw.c" + ], "providers/implementations/ciphers/libdefault-lib-cipher_sm4_hw.o" => [ "providers/implementations/ciphers/cipher_sm4_hw.c" ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts.o" => [ + "providers/implementations/ciphers/cipher_sm4_xts.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts_hw.o" => [ + "providers/implementations/ciphers/cipher_sm4_xts_hw.c" + ], "providers/implementations/ciphers/libdefault-lib-cipher_tdes.o" => [ "providers/implementations/ciphers/cipher_tdes.c" ], @@ -24764,6 +28910,15 @@ our %unified_info = ( "providers/implementations/encode_decode/libdefault-lib-endecoder_common.o" => [ "providers/implementations/encode_decode/endecoder_common.c" ], + "providers/implementations/encode_decode/libdefault-lib-ml_common_codecs.o" => [ + "providers/implementations/encode_decode/ml_common_codecs.c" + ], + "providers/implementations/encode_decode/libdefault-lib-ml_dsa_codecs.o" => [ + "providers/implementations/encode_decode/ml_dsa_codecs.c" + ], + "providers/implementations/encode_decode/libdefault-lib-ml_kem_codecs.o" => [ + "providers/implementations/encode_decode/ml_kem_codecs.c" + ], "providers/implementations/exchange/libdefault-lib-dh_exch.o" => [ "providers/implementations/exchange/dh_exch.c" ], @@ -24788,9 +28943,15 @@ our %unified_info = ( "providers/implementations/exchange/libfips-lib-kdf_exch.o" => [ "providers/implementations/exchange/kdf_exch.c" ], + "providers/implementations/kdfs/libdefault-lib-argon2.o" => [ + "providers/implementations/kdfs/argon2.c" + ], "providers/implementations/kdfs/libdefault-lib-hkdf.o" => [ "providers/implementations/kdfs/hkdf.c" ], + "providers/implementations/kdfs/libdefault-lib-hmacdrbg_kdf.o" => [ + "providers/implementations/kdfs/hmacdrbg_kdf.c" + ], "providers/implementations/kdfs/libdefault-lib-kbkdf.o" => [ "providers/implementations/kdfs/kbkdf.c" ], @@ -24848,12 +29009,39 @@ our %unified_info = ( "providers/implementations/kdfs/liblegacy-lib-pbkdf1.o" => [ "providers/implementations/kdfs/pbkdf1.c" ], + "providers/implementations/kdfs/liblegacy-lib-pvkkdf.o" => [ + "providers/implementations/kdfs/pvkkdf.c" + ], + "providers/implementations/kem/libdefault-lib-ec_kem.o" => [ + "providers/implementations/kem/ec_kem.c" + ], + "providers/implementations/kem/libdefault-lib-ecx_kem.o" => [ + "providers/implementations/kem/ecx_kem.c" + ], + "providers/implementations/kem/libdefault-lib-kem_util.o" => [ + "providers/implementations/kem/kem_util.c" + ], + "providers/implementations/kem/libdefault-lib-ml_kem_kem.o" => [ + "providers/implementations/kem/ml_kem_kem.c" + ], + "providers/implementations/kem/libdefault-lib-mlx_kem.o" => [ + "providers/implementations/kem/mlx_kem.c" + ], "providers/implementations/kem/libdefault-lib-rsa_kem.o" => [ "providers/implementations/kem/rsa_kem.c" ], + "providers/implementations/kem/libfips-lib-ml_kem_kem.o" => [ + "providers/implementations/kem/ml_kem_kem.c" + ], + "providers/implementations/kem/libfips-lib-mlx_kem.o" => [ + "providers/implementations/kem/mlx_kem.c" + ], "providers/implementations/kem/libfips-lib-rsa_kem.o" => [ "providers/implementations/kem/rsa_kem.c" ], + "providers/implementations/kem/libtemplate-lib-template_kem.o" => [ + "providers/implementations/kem/template_kem.c" + ], "providers/implementations/keymgmt/libdefault-lib-dh_kmgmt.o" => [ "providers/implementations/keymgmt/dh_kmgmt.c" ], @@ -24872,9 +29060,21 @@ our %unified_info = ( "providers/implementations/keymgmt/libdefault-lib-mac_legacy_kmgmt.o" => [ "providers/implementations/keymgmt/mac_legacy_kmgmt.c" ], + "providers/implementations/keymgmt/libdefault-lib-ml_dsa_kmgmt.o" => [ + "providers/implementations/keymgmt/ml_dsa_kmgmt.c" + ], + "providers/implementations/keymgmt/libdefault-lib-ml_kem_kmgmt.o" => [ + "providers/implementations/keymgmt/ml_kem_kmgmt.c" + ], + "providers/implementations/keymgmt/libdefault-lib-mlx_kmgmt.o" => [ + "providers/implementations/keymgmt/mlx_kmgmt.c" + ], "providers/implementations/keymgmt/libdefault-lib-rsa_kmgmt.o" => [ "providers/implementations/keymgmt/rsa_kmgmt.c" ], + "providers/implementations/keymgmt/libdefault-lib-slh_dsa_kmgmt.o" => [ + "providers/implementations/keymgmt/slh_dsa_kmgmt.c" + ], "providers/implementations/keymgmt/libfips-lib-dh_kmgmt.o" => [ "providers/implementations/keymgmt/dh_kmgmt.c" ], @@ -24893,9 +29093,24 @@ our %unified_info = ( "providers/implementations/keymgmt/libfips-lib-mac_legacy_kmgmt.o" => [ "providers/implementations/keymgmt/mac_legacy_kmgmt.c" ], + "providers/implementations/keymgmt/libfips-lib-ml_dsa_kmgmt.o" => [ + "providers/implementations/keymgmt/ml_dsa_kmgmt.c" + ], + "providers/implementations/keymgmt/libfips-lib-ml_kem_kmgmt.o" => [ + "providers/implementations/keymgmt/ml_kem_kmgmt.c" + ], + "providers/implementations/keymgmt/libfips-lib-mlx_kmgmt.o" => [ + "providers/implementations/keymgmt/mlx_kmgmt.c" + ], "providers/implementations/keymgmt/libfips-lib-rsa_kmgmt.o" => [ "providers/implementations/keymgmt/rsa_kmgmt.c" ], + "providers/implementations/keymgmt/libfips-lib-slh_dsa_kmgmt.o" => [ + "providers/implementations/keymgmt/slh_dsa_kmgmt.c" + ], + "providers/implementations/keymgmt/libtemplate-lib-template_kmgmt.o" => [ + "providers/implementations/keymgmt/template_kmgmt.c" + ], "providers/implementations/macs/libdefault-lib-blake2b_mac.o" => [ "providers/implementations/macs/blake2b_mac.c" ], @@ -24932,9 +29147,6 @@ our %unified_info = ( "providers/implementations/macs/libfips-lib-kmac_prov.o" => [ "providers/implementations/macs/kmac_prov.c" ], - "providers/implementations/rands/libdefault-lib-crngt.o" => [ - "providers/implementations/rands/crngt.c" - ], "providers/implementations/rands/libdefault-lib-drbg.o" => [ "providers/implementations/rands/drbg.c" ], @@ -24950,12 +29162,12 @@ our %unified_info = ( "providers/implementations/rands/libdefault-lib-seed_src.o" => [ "providers/implementations/rands/seed_src.c" ], + "providers/implementations/rands/libdefault-lib-seed_src_jitter.o" => [ + "providers/implementations/rands/seed_src_jitter.c" + ], "providers/implementations/rands/libdefault-lib-test_rng.o" => [ "providers/implementations/rands/test_rng.c" ], - "providers/implementations/rands/libfips-lib-crngt.o" => [ - "providers/implementations/rands/crngt.c" - ], "providers/implementations/rands/libfips-lib-drbg.o" => [ "providers/implementations/rands/drbg.c" ], @@ -24968,6 +29180,9 @@ our %unified_info = ( "providers/implementations/rands/libfips-lib-drbg_hmac.o" => [ "providers/implementations/rands/drbg_hmac.c" ], + "providers/implementations/rands/libfips-lib-fips_crng_test.o" => [ + "providers/implementations/rands/fips_crng_test.c" + ], "providers/implementations/rands/libfips-lib-test_rng.o" => [ "providers/implementations/rands/test_rng.c" ], @@ -24995,9 +29210,15 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-mac_legacy_sig.o" => [ "providers/implementations/signature/mac_legacy_sig.c" ], + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o" => [ + "providers/implementations/signature/ml_dsa_sig.c" + ], "providers/implementations/signature/libdefault-lib-rsa_sig.o" => [ "providers/implementations/signature/rsa_sig.c" ], + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o" => [ + "providers/implementations/signature/slh_dsa_sig.c" + ], "providers/implementations/signature/libdefault-lib-sm2_sig.o" => [ "providers/implementations/signature/sm2_sig.c" ], @@ -25013,9 +29234,27 @@ our %unified_info = ( "providers/implementations/signature/libfips-lib-mac_legacy_sig.o" => [ "providers/implementations/signature/mac_legacy_sig.c" ], + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o" => [ + "providers/implementations/signature/ml_dsa_sig.c" + ], "providers/implementations/signature/libfips-lib-rsa_sig.o" => [ "providers/implementations/signature/rsa_sig.c" ], + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o" => [ + "providers/implementations/signature/slh_dsa_sig.c" + ], + "providers/implementations/skeymgmt/libdefault-lib-aes_skmgmt.o" => [ + "providers/implementations/skeymgmt/aes_skmgmt.c" + ], + "providers/implementations/skeymgmt/libdefault-lib-generic.o" => [ + "providers/implementations/skeymgmt/generic.c" + ], + "providers/implementations/skeymgmt/libfips-lib-aes_skmgmt.o" => [ + "providers/implementations/skeymgmt/aes_skmgmt.c" + ], + "providers/implementations/skeymgmt/libfips-lib-generic.o" => [ + "providers/implementations/skeymgmt/generic.c" + ], "providers/implementations/storemgmt/libdefault-lib-file_store.o" => [ "providers/implementations/storemgmt/file_store.c" ], @@ -25038,8 +29277,12 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ec_sig.o", "providers/common/der/libcommon-lib-der_ecx_gen.o", "providers/common/der/libcommon-lib-der_ecx_key.o", + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o", + "providers/common/der/libcommon-lib-der_ml_dsa_key.o", "providers/common/der/libcommon-lib-der_rsa_gen.o", "providers/common/der/libcommon-lib-der_rsa_key.o", + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o", + "providers/common/der/libcommon-lib-der_slh_dsa_key.o", "providers/common/der/libcommon-lib-der_wrap_gen.o", "providers/common/libcommon-lib-provider_ctx.o", "providers/common/libcommon-lib-provider_err.o", @@ -25051,7 +29294,7 @@ our %unified_info = ( "providers/implementations/ciphers/libcommon-lib-ciphercommon_gcm_hw.o", "providers/implementations/ciphers/libcommon-lib-ciphercommon_hw.o", "providers/implementations/digests/libcommon-lib-digestcommon.o", - "ssl/record/libcommon-lib-tls_pad.o" + "ssl/record/methods/libcommon-lib-tls_pad.o" ], "providers/libcrypto-lib-baseprov.o" => [ "providers/baseprov.c" @@ -25087,6 +29330,9 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_aes_ccm_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_polyval.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_ocb.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_ocb_hw.o", @@ -25111,7 +29357,13 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_cts.o", "providers/implementations/ciphers/libdefault-lib-cipher_null.o", "providers/implementations/ciphers/libdefault-lib-cipher_sm4.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_sm4_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes_common.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes_default.o", @@ -25140,11 +29392,16 @@ our %unified_info = ( "providers/implementations/encode_decode/libdefault-lib-encode_key2ms.o", "providers/implementations/encode_decode/libdefault-lib-encode_key2text.o", "providers/implementations/encode_decode/libdefault-lib-endecoder_common.o", + "providers/implementations/encode_decode/libdefault-lib-ml_common_codecs.o", + "providers/implementations/encode_decode/libdefault-lib-ml_dsa_codecs.o", + "providers/implementations/encode_decode/libdefault-lib-ml_kem_codecs.o", "providers/implementations/exchange/libdefault-lib-dh_exch.o", "providers/implementations/exchange/libdefault-lib-ecdh_exch.o", "providers/implementations/exchange/libdefault-lib-ecx_exch.o", "providers/implementations/exchange/libdefault-lib-kdf_exch.o", + "providers/implementations/kdfs/libdefault-lib-argon2.o", "providers/implementations/kdfs/libdefault-lib-hkdf.o", + "providers/implementations/kdfs/libdefault-lib-hmacdrbg_kdf.o", "providers/implementations/kdfs/libdefault-lib-kbkdf.o", "providers/implementations/kdfs/libdefault-lib-krb5kdf.o", "providers/implementations/kdfs/libdefault-lib-pbkdf2.o", @@ -25155,6 +29412,11 @@ our %unified_info = ( "providers/implementations/kdfs/libdefault-lib-sskdf.o", "providers/implementations/kdfs/libdefault-lib-tls1_prf.o", "providers/implementations/kdfs/libdefault-lib-x942kdf.o", + "providers/implementations/kem/libdefault-lib-ec_kem.o", + "providers/implementations/kem/libdefault-lib-ecx_kem.o", + "providers/implementations/kem/libdefault-lib-kem_util.o", + "providers/implementations/kem/libdefault-lib-ml_kem_kem.o", + "providers/implementations/kem/libdefault-lib-mlx_kem.o", "providers/implementations/kem/libdefault-lib-rsa_kem.o", "providers/implementations/keymgmt/libdefault-lib-dh_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-dsa_kmgmt.o", @@ -25162,7 +29424,11 @@ our %unified_info = ( "providers/implementations/keymgmt/libdefault-lib-ecx_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-kdf_legacy_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-mac_legacy_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-ml_dsa_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-ml_kem_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-mlx_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-rsa_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-slh_dsa_kmgmt.o", "providers/implementations/macs/libdefault-lib-blake2b_mac.o", "providers/implementations/macs/libdefault-lib-blake2s_mac.o", "providers/implementations/macs/libdefault-lib-cmac_prov.o", @@ -25171,12 +29437,12 @@ our %unified_info = ( "providers/implementations/macs/libdefault-lib-kmac_prov.o", "providers/implementations/macs/libdefault-lib-poly1305_prov.o", "providers/implementations/macs/libdefault-lib-siphash_prov.o", - "providers/implementations/rands/libdefault-lib-crngt.o", "providers/implementations/rands/libdefault-lib-drbg.o", "providers/implementations/rands/libdefault-lib-drbg_ctr.o", "providers/implementations/rands/libdefault-lib-drbg_hash.o", "providers/implementations/rands/libdefault-lib-drbg_hmac.o", "providers/implementations/rands/libdefault-lib-seed_src.o", + "providers/implementations/rands/libdefault-lib-seed_src_jitter.o", "providers/implementations/rands/libdefault-lib-test_rng.o", "providers/implementations/rands/seeding/libdefault-lib-rand_cpu_x86.o", "providers/implementations/rands/seeding/libdefault-lib-rand_tsc.o", @@ -25186,11 +29452,15 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-ecdsa_sig.o", "providers/implementations/signature/libdefault-lib-eddsa_sig.o", "providers/implementations/signature/libdefault-lib-mac_legacy_sig.o", + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o", "providers/implementations/signature/libdefault-lib-rsa_sig.o", + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o", "providers/implementations/signature/libdefault-lib-sm2_sig.o", + "providers/implementations/skeymgmt/libdefault-lib-aes_skmgmt.o", + "providers/implementations/skeymgmt/libdefault-lib-generic.o", "providers/implementations/storemgmt/libdefault-lib-file_store.o", "providers/implementations/storemgmt/libdefault-lib-file_store_any2obj.o", - "ssl/libdefault-lib-s3_cbc.o" + "ssl/record/methods/libdefault-lib-ssl3_cbc.o" ], "providers/libfips.a" => [ "crypto/aes/libfips-lib-aes_cbc.o", @@ -25292,14 +29562,15 @@ our %unified_info = ( "crypto/evp/libfips-lib-kem.o", "crypto/evp/libfips-lib-keymgmt_lib.o", "crypto/evp/libfips-lib-keymgmt_meth.o", - "crypto/evp/libfips-lib-m_sigver.o", "crypto/evp/libfips-lib-mac_lib.o", "crypto/evp/libfips-lib-mac_meth.o", "crypto/evp/libfips-lib-p_lib.o", "crypto/evp/libfips-lib-pmeth_check.o", "crypto/evp/libfips-lib-pmeth_gn.o", "crypto/evp/libfips-lib-pmeth_lib.o", + "crypto/evp/libfips-lib-s_lib.o", "crypto/evp/libfips-lib-signature.o", + "crypto/evp/libfips-lib-skeymgmt_meth.o", "crypto/ffc/libfips-lib-ffc_backend.o", "crypto/ffc/libfips-lib-ffc_dh.o", "crypto/ffc/libfips-lib-ffc_key_generate.o", @@ -25307,6 +29578,8 @@ our %unified_info = ( "crypto/ffc/libfips-lib-ffc_params.o", "crypto/ffc/libfips-lib-ffc_params_generate.o", "crypto/ffc/libfips-lib-ffc_params_validate.o", + "crypto/hashtable/libfips-lib-hashfunc.o", + "crypto/hashtable/libfips-lib-hashtable.o", "crypto/hmac/libfips-lib-hmac.o", "crypto/lhash/libfips-lib-lhash.o", "crypto/libfips-lib-asn1_dsa.o", @@ -25329,6 +29602,7 @@ our %unified_info = ( "crypto/libfips-lib-params.o", "crypto/libfips-lib-params_dup.o", "crypto/libfips-lib-params_from_text.o", + "crypto/libfips-lib-params_idx.o", "crypto/libfips-lib-provider_core.o", "crypto/libfips-lib-provider_predefined.o", "crypto/libfips-lib-self_test_core.o", @@ -25337,6 +29611,16 @@ our %unified_info = ( "crypto/libfips-lib-threads_none.o", "crypto/libfips-lib-threads_pthread.o", "crypto/libfips-lib-threads_win.o", + "crypto/libfips-lib-time.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_encoders.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_key.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_key_compress.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_matrix.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_ntt.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_params.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_sample.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_sign.o", + "crypto/ml_kem/libfips-lib-ml_kem.o", "crypto/modes/libfips-lib-cbc128.o", "crypto/modes/libfips-lib-ccm128.o", "crypto/modes/libfips-lib-cfb128.o", @@ -25345,6 +29629,7 @@ our %unified_info = ( "crypto/modes/libfips-lib-ofb128.o", "crypto/modes/libfips-lib-wrap128.o", "crypto/modes/libfips-lib-xts128.o", + "crypto/modes/libfips-lib-xts128gb.o", "crypto/property/libfips-lib-defn_cache.o", "crypto/property/libfips-lib-property.o", "crypto/property/libfips-lib-property_parse.o", @@ -25373,7 +29658,23 @@ our %unified_info = ( "crypto/sha/libfips-lib-sha256.o", "crypto/sha/libfips-lib-sha3.o", "crypto/sha/libfips-lib-sha512.o", + "crypto/slh_dsa/libfips-lib-slh_adrs.o", + "crypto/slh_dsa/libfips-lib-slh_dsa.o", + "crypto/slh_dsa/libfips-lib-slh_dsa_hash_ctx.o", + "crypto/slh_dsa/libfips-lib-slh_dsa_key.o", + "crypto/slh_dsa/libfips-lib-slh_fors.o", + "crypto/slh_dsa/libfips-lib-slh_hash.o", + "crypto/slh_dsa/libfips-lib-slh_hypertree.o", + "crypto/slh_dsa/libfips-lib-slh_params.o", + "crypto/slh_dsa/libfips-lib-slh_wots.o", + "crypto/slh_dsa/libfips-lib-slh_xmss.o", "crypto/stack/libfips-lib-stack.o", + "crypto/thread/arch/libfips-lib-thread_none.o", + "crypto/thread/arch/libfips-lib-thread_posix.o", + "crypto/thread/arch/libfips-lib-thread_win.o", + "crypto/thread/libfips-lib-api.o", + "crypto/thread/libfips-lib-arch.o", + "crypto/thread/libfips-lib-internal.o", "providers/common/der/libfips-lib-der_rsa_sig.o", "providers/common/libfips-lib-bio_prov.o", "providers/common/libfips-lib-capabilities.o", @@ -25382,6 +29683,7 @@ our %unified_info = ( "providers/common/libfips-lib-provider_util.o", "providers/common/libfips-lib-securitycheck.o", "providers/common/libfips-lib-securitycheck_fips.o", + "providers/fips/libfips-lib-fipsindicator.o", "providers/fips/libfips-lib-fipsprov.o", "providers/fips/libfips-lib-self_test.o", "providers/fips/libfips-lib-self_test_kats.o", @@ -25419,6 +29721,8 @@ our %unified_info = ( "providers/implementations/kdfs/libfips-lib-sskdf.o", "providers/implementations/kdfs/libfips-lib-tls1_prf.o", "providers/implementations/kdfs/libfips-lib-x942kdf.o", + "providers/implementations/kem/libfips-lib-ml_kem_kem.o", + "providers/implementations/kem/libfips-lib-mlx_kem.o", "providers/implementations/kem/libfips-lib-rsa_kem.o", "providers/implementations/keymgmt/libfips-lib-dh_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-dsa_kmgmt.o", @@ -25426,24 +29730,32 @@ our %unified_info = ( "providers/implementations/keymgmt/libfips-lib-ecx_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-kdf_legacy_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-mac_legacy_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-ml_dsa_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-ml_kem_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-mlx_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-rsa_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-slh_dsa_kmgmt.o", "providers/implementations/macs/libfips-lib-cmac_prov.o", "providers/implementations/macs/libfips-lib-gmac_prov.o", "providers/implementations/macs/libfips-lib-hmac_prov.o", "providers/implementations/macs/libfips-lib-kmac_prov.o", - "providers/implementations/rands/libfips-lib-crngt.o", "providers/implementations/rands/libfips-lib-drbg.o", "providers/implementations/rands/libfips-lib-drbg_ctr.o", "providers/implementations/rands/libfips-lib-drbg_hash.o", "providers/implementations/rands/libfips-lib-drbg_hmac.o", + "providers/implementations/rands/libfips-lib-fips_crng_test.o", "providers/implementations/rands/libfips-lib-test_rng.o", "providers/implementations/signature/libfips-lib-dsa_sig.o", "providers/implementations/signature/libfips-lib-ecdsa_sig.o", "providers/implementations/signature/libfips-lib-eddsa_sig.o", "providers/implementations/signature/libfips-lib-mac_legacy_sig.o", + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o", "providers/implementations/signature/libfips-lib-rsa_sig.o", + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o", + "providers/implementations/skeymgmt/libfips-lib-aes_skmgmt.o", + "providers/implementations/skeymgmt/libfips-lib-generic.o", "providers/libcommon.a", - "ssl/libfips-lib-s3_cbc.o" + "ssl/record/methods/libfips-lib-ssl3_cbc.o" ], "providers/liblegacy-lib-prov_running.o" => [ "providers/prov_running.c" @@ -25473,13 +29785,12 @@ our %unified_info = ( "providers/implementations/digests/liblegacy-lib-ripemd_prov.o", "providers/implementations/digests/liblegacy-lib-wp_prov.o", "providers/implementations/kdfs/liblegacy-lib-pbkdf1.o", + "providers/implementations/kdfs/liblegacy-lib-pvkkdf.o", "providers/liblegacy-lib-prov_running.o" ], - "ssl/libdefault-lib-s3_cbc.o" => [ - "ssl/s3_cbc.c" - ], - "ssl/libfips-lib-s3_cbc.o" => [ - "ssl/s3_cbc.c" + "providers/libtemplate.a" => [ + "providers/implementations/kem/libtemplate-lib-template_kem.o", + "providers/implementations/keymgmt/libtemplate-lib-template_kmgmt.o" ], "ssl/libssl-lib-bio_ssl.o" => [ "ssl/bio_ssl.c" @@ -25499,6 +29810,9 @@ our %unified_info = ( "ssl/libssl-lib-pqueue.o" => [ "ssl/pqueue.c" ], + "ssl/libssl-lib-priority_queue.o" => [ + "ssl/priority_queue.c" + ], "ssl/libssl-lib-s3_enc.o" => [ "ssl/s3_enc.c" ], @@ -25514,15 +29828,15 @@ our %unified_info = ( "ssl/libssl-lib-ssl_cert.o" => [ "ssl/ssl_cert.c" ], + "ssl/libssl-lib-ssl_cert_comp.o" => [ + "ssl/ssl_cert_comp.c" + ], "ssl/libssl-lib-ssl_ciph.o" => [ "ssl/ssl_ciph.c" ], "ssl/libssl-lib-ssl_conf.o" => [ "ssl/ssl_conf.c" ], - "ssl/libssl-lib-ssl_err.o" => [ - "ssl/ssl_err.c" - ], "ssl/libssl-lib-ssl_err_legacy.o" => [ "ssl/ssl_err_legacy.c" ], @@ -25571,11 +29885,131 @@ our %unified_info = ( "ssl/libssl-lib-tls_srp.o" => [ "ssl/tls_srp.c" ], - "ssl/record/libcommon-lib-tls_pad.o" => [ - "ssl/record/tls_pad.c" + "ssl/quic/libssl-lib-cc_newreno.o" => [ + "ssl/quic/cc_newreno.c" + ], + "ssl/quic/libssl-lib-json_enc.o" => [ + "ssl/quic/json_enc.c" + ], + "ssl/quic/libssl-lib-qlog.o" => [ + "ssl/quic/qlog.c" + ], + "ssl/quic/libssl-lib-qlog_event_helpers.o" => [ + "ssl/quic/qlog_event_helpers.c" + ], + "ssl/quic/libssl-lib-quic_ackm.o" => [ + "ssl/quic/quic_ackm.c" + ], + "ssl/quic/libssl-lib-quic_cfq.o" => [ + "ssl/quic/quic_cfq.c" + ], + "ssl/quic/libssl-lib-quic_channel.o" => [ + "ssl/quic/quic_channel.c" + ], + "ssl/quic/libssl-lib-quic_demux.o" => [ + "ssl/quic/quic_demux.c" + ], + "ssl/quic/libssl-lib-quic_engine.o" => [ + "ssl/quic/quic_engine.c" + ], + "ssl/quic/libssl-lib-quic_fc.o" => [ + "ssl/quic/quic_fc.c" + ], + "ssl/quic/libssl-lib-quic_fifd.o" => [ + "ssl/quic/quic_fifd.c" + ], + "ssl/quic/libssl-lib-quic_impl.o" => [ + "ssl/quic/quic_impl.c" + ], + "ssl/quic/libssl-lib-quic_lcidm.o" => [ + "ssl/quic/quic_lcidm.c" + ], + "ssl/quic/libssl-lib-quic_method.o" => [ + "ssl/quic/quic_method.c" + ], + "ssl/quic/libssl-lib-quic_obj.o" => [ + "ssl/quic/quic_obj.c" + ], + "ssl/quic/libssl-lib-quic_port.o" => [ + "ssl/quic/quic_port.c" + ], + "ssl/quic/libssl-lib-quic_rcidm.o" => [ + "ssl/quic/quic_rcidm.c" + ], + "ssl/quic/libssl-lib-quic_reactor.o" => [ + "ssl/quic/quic_reactor.c" + ], + "ssl/quic/libssl-lib-quic_reactor_wait_ctx.o" => [ + "ssl/quic/quic_reactor_wait_ctx.c" + ], + "ssl/quic/libssl-lib-quic_record_rx.o" => [ + "ssl/quic/quic_record_rx.c" + ], + "ssl/quic/libssl-lib-quic_record_shared.o" => [ + "ssl/quic/quic_record_shared.c" + ], + "ssl/quic/libssl-lib-quic_record_tx.o" => [ + "ssl/quic/quic_record_tx.c" + ], + "ssl/quic/libssl-lib-quic_record_util.o" => [ + "ssl/quic/quic_record_util.c" + ], + "ssl/quic/libssl-lib-quic_rstream.o" => [ + "ssl/quic/quic_rstream.c" ], - "ssl/record/libssl-lib-dtls1_bitmap.o" => [ - "ssl/record/dtls1_bitmap.c" + "ssl/quic/libssl-lib-quic_rx_depack.o" => [ + "ssl/quic/quic_rx_depack.c" + ], + "ssl/quic/libssl-lib-quic_sf_list.o" => [ + "ssl/quic/quic_sf_list.c" + ], + "ssl/quic/libssl-lib-quic_srt_gen.o" => [ + "ssl/quic/quic_srt_gen.c" + ], + "ssl/quic/libssl-lib-quic_srtm.o" => [ + "ssl/quic/quic_srtm.c" + ], + "ssl/quic/libssl-lib-quic_sstream.o" => [ + "ssl/quic/quic_sstream.c" + ], + "ssl/quic/libssl-lib-quic_statm.o" => [ + "ssl/quic/quic_statm.c" + ], + "ssl/quic/libssl-lib-quic_stream_map.o" => [ + "ssl/quic/quic_stream_map.c" + ], + "ssl/quic/libssl-lib-quic_thread_assist.o" => [ + "ssl/quic/quic_thread_assist.c" + ], + "ssl/quic/libssl-lib-quic_tls.o" => [ + "ssl/quic/quic_tls.c" + ], + "ssl/quic/libssl-lib-quic_tls_api.o" => [ + "ssl/quic/quic_tls_api.c" + ], + "ssl/quic/libssl-lib-quic_trace.o" => [ + "ssl/quic/quic_trace.c" + ], + "ssl/quic/libssl-lib-quic_tserver.o" => [ + "ssl/quic/quic_tserver.c" + ], + "ssl/quic/libssl-lib-quic_txp.o" => [ + "ssl/quic/quic_txp.c" + ], + "ssl/quic/libssl-lib-quic_txpim.o" => [ + "ssl/quic/quic_txpim.c" + ], + "ssl/quic/libssl-lib-quic_types.o" => [ + "ssl/quic/quic_types.c" + ], + "ssl/quic/libssl-lib-quic_wire.o" => [ + "ssl/quic/quic_wire.c" + ], + "ssl/quic/libssl-lib-quic_wire_pkt.o" => [ + "ssl/quic/quic_wire_pkt.c" + ], + "ssl/quic/libssl-lib-uint_set.o" => [ + "ssl/quic/uint_set.c" ], "ssl/record/libssl-lib-rec_layer_d1.o" => [ "ssl/record/rec_layer_d1.c" @@ -25583,14 +30017,44 @@ our %unified_info = ( "ssl/record/libssl-lib-rec_layer_s3.o" => [ "ssl/record/rec_layer_s3.c" ], - "ssl/record/libssl-lib-ssl3_buffer.o" => [ - "ssl/record/ssl3_buffer.c" + "ssl/record/methods/libcommon-lib-tls_pad.o" => [ + "ssl/record/methods/tls_pad.c" + ], + "ssl/record/methods/libdefault-lib-ssl3_cbc.o" => [ + "ssl/record/methods/ssl3_cbc.c" + ], + "ssl/record/methods/libfips-lib-ssl3_cbc.o" => [ + "ssl/record/methods/ssl3_cbc.c" + ], + "ssl/record/methods/libssl-lib-dtls_meth.o" => [ + "ssl/record/methods/dtls_meth.c" + ], + "ssl/record/methods/libssl-lib-ssl3_meth.o" => [ + "ssl/record/methods/ssl3_meth.c" + ], + "ssl/record/methods/libssl-lib-tls13_meth.o" => [ + "ssl/record/methods/tls13_meth.c" + ], + "ssl/record/methods/libssl-lib-tls1_meth.o" => [ + "ssl/record/methods/tls1_meth.c" + ], + "ssl/record/methods/libssl-lib-tls_common.o" => [ + "ssl/record/methods/tls_common.c" ], - "ssl/record/libssl-lib-ssl3_record.o" => [ - "ssl/record/ssl3_record.c" + "ssl/record/methods/libssl-lib-tls_multib.o" => [ + "ssl/record/methods/tls_multib.c" ], - "ssl/record/libssl-lib-ssl3_record_tls13.o" => [ - "ssl/record/ssl3_record_tls13.c" + "ssl/record/methods/libssl-lib-tlsany_meth.o" => [ + "ssl/record/methods/tlsany_meth.c" + ], + "ssl/rio/libssl-lib-poll_builder.o" => [ + "ssl/rio/poll_builder.c" + ], + "ssl/rio/libssl-lib-poll_immediate.o" => [ + "ssl/rio/poll_immediate.c" + ], + "ssl/rio/libssl-lib-rio_notifier.o" => [ + "ssl/rio/rio_notifier.c" ], "ssl/statem/libssl-lib-extensions.o" => [ "ssl/statem/extensions.c" @@ -25686,6 +30150,8 @@ our %unified_info = ( "test/asn1_string_table_test.c" ], "test/asn1_time_test" => [ + "crypto/asn1/asn1_time_test-bin-a_time.o", + "crypto/asn1_time_test-bin-ctype.o", "test/asn1_time_test-bin-asn1_time_test.o" ], "test/asn1_time_test-bin-asn1_time_test.o" => [ @@ -25716,6 +30182,18 @@ our %unified_info = ( "test/bftest-bin-bftest.o" => [ "test/bftest.c" ], + "test/bio_addr_test" => [ + "test/bio_addr_test-bin-bio_addr_test.o" + ], + "test/bio_addr_test-bin-bio_addr_test.o" => [ + "test/bio_addr_test.c" + ], + "test/bio_base64_test" => [ + "test/bio_base64_test-bin-bio_base64_test.o" + ], + "test/bio_base64_test-bin-bio_base64_test.o" => [ + "test/bio_base64_test.c" + ], "test/bio_callback_test" => [ "test/bio_callback_test-bin-bio_callback_test.o" ], @@ -25728,6 +30206,12 @@ our %unified_info = ( "test/bio_core_test-bin-bio_core_test.o" => [ "test/bio_core_test.c" ], + "test/bio_dgram_test" => [ + "test/bio_dgram_test-bin-bio_dgram_test.o" + ], + "test/bio_dgram_test-bin-bio_dgram_test.o" => [ + "test/bio_dgram_test.c" + ], "test/bio_enc_test" => [ "test/bio_enc_test-bin-bio_enc_test.o" ], @@ -25740,6 +30224,12 @@ our %unified_info = ( "test/bio_memleak_test-bin-bio_memleak_test.o" => [ "test/bio_memleak_test.c" ], + "test/bio_meth_test" => [ + "test/bio_meth_test-bin-bio_meth_test.o" + ], + "test/bio_meth_test-bin-bio_meth_test.o" => [ + "test/bio_meth_test.c" + ], "test/bio_prefix_text" => [ "test/bio_prefix_text-bin-bio_prefix_text.o" ], @@ -25758,6 +30248,12 @@ our %unified_info = ( "test/bio_readbuffer_test-bin-bio_readbuffer_test.o" => [ "test/bio_readbuffer_test.c" ], + "test/bio_tfo_test" => [ + "test/bio_tfo_test-bin-bio_tfo_test.o" + ], + "test/bio_tfo_test-bin-bio_tfo_test.o" => [ + "test/bio_tfo_test.c" + ], "test/bioprinttest" => [ "test/bioprinttest-bin-bioprinttest.o" ], @@ -25776,6 +30272,12 @@ our %unified_info = ( "test/bntest-bin-bntest.o" => [ "test/bntest.c" ], + "test/build_wincrypt_test" => [ + "test/build_wincrypt_test-bin-build_wincrypt_test.o" + ], + "test/build_wincrypt_test-bin-build_wincrypt_test.o" => [ + "test/build_wincrypt_test.c" + ], "test/buildtest_c_aes" => [ "test/buildtest_c_aes-bin-buildtest_aes.o" ], @@ -25806,6 +30308,12 @@ our %unified_info = ( "test/buildtest_c_buffer-bin-buildtest_buffer.o" => [ "test/buildtest_buffer.c" ], + "test/buildtest_c_byteorder" => [ + "test/buildtest_c_byteorder-bin-buildtest_byteorder.o" + ], + "test/buildtest_c_byteorder-bin-buildtest_byteorder.o" => [ + "test/buildtest_byteorder.c" + ], "test/buildtest_c_camellia" => [ "test/buildtest_c_camellia-bin-buildtest_camellia.o" ], @@ -25854,12 +30362,6 @@ our %unified_info = ( "test/buildtest_c_core_dispatch-bin-buildtest_core_dispatch.o" => [ "test/buildtest_core_dispatch.c" ], - "test/buildtest_c_core_names" => [ - "test/buildtest_c_core_names-bin-buildtest_core_names.o" - ], - "test/buildtest_c_core_names-bin-buildtest_core_names.o" => [ - "test/buildtest_core_names.c" - ], "test/buildtest_c_core_object" => [ "test/buildtest_c_core_object-bin-buildtest_core_object.o" ], @@ -25908,6 +30410,12 @@ our %unified_info = ( "test/buildtest_c_e_os2-bin-buildtest_e_os2.o" => [ "test/buildtest_e_os2.c" ], + "test/buildtest_c_e_ostime" => [ + "test/buildtest_c_e_ostime-bin-buildtest_e_ostime.o" + ], + "test/buildtest_c_e_ostime-bin-buildtest_e_ostime.o" => [ + "test/buildtest_e_ostime.c" + ], "test/buildtest_c_ebcdic" => [ "test/buildtest_c_ebcdic-bin-buildtest_ebcdic.o" ], @@ -25962,6 +30470,12 @@ our %unified_info = ( "test/buildtest_c_hmac-bin-buildtest_hmac.o" => [ "test/buildtest_hmac.c" ], + "test/buildtest_c_hpke" => [ + "test/buildtest_c_hpke-bin-buildtest_hpke.o" + ], + "test/buildtest_c_hpke-bin-buildtest_hpke.o" => [ + "test/buildtest_hpke.c" + ], "test/buildtest_c_http" => [ "test/buildtest_c_http-bin-buildtest_http.o" ], @@ -25974,6 +30488,12 @@ our %unified_info = ( "test/buildtest_c_idea-bin-buildtest_idea.o" => [ "test/buildtest_idea.c" ], + "test/buildtest_c_indicator" => [ + "test/buildtest_c_indicator-bin-buildtest_indicator.o" + ], + "test/buildtest_c_indicator-bin-buildtest_indicator.o" => [ + "test/buildtest_indicator.c" + ], "test/buildtest_c_kdf" => [ "test/buildtest_c_kdf-bin-buildtest_kdf.o" ], @@ -26004,6 +30524,12 @@ our %unified_info = ( "test/buildtest_c_mdc2-bin-buildtest_mdc2.o" => [ "test/buildtest_mdc2.c" ], + "test/buildtest_c_ml_kem" => [ + "test/buildtest_c_ml_kem-bin-buildtest_ml_kem.o" + ], + "test/buildtest_c_ml_kem-bin-buildtest_ml_kem.o" => [ + "test/buildtest_ml_kem.c" + ], "test/buildtest_c_modes" => [ "test/buildtest_c_modes-bin-buildtest_modes.o" ], @@ -26064,6 +30590,12 @@ our %unified_info = ( "test/buildtest_c_provider-bin-buildtest_provider.o" => [ "test/buildtest_provider.c" ], + "test/buildtest_c_quic" => [ + "test/buildtest_c_quic-bin-buildtest_quic.o" + ], + "test/buildtest_c_quic-bin-buildtest_quic.o" => [ + "test/buildtest_quic.c" + ], "test/buildtest_c_rand" => [ "test/buildtest_c_rand-bin-buildtest_rand.o" ], @@ -26148,6 +30680,12 @@ our %unified_info = ( "test/buildtest_c_symhacks-bin-buildtest_symhacks.o" => [ "test/buildtest_symhacks.c" ], + "test/buildtest_c_thread" => [ + "test/buildtest_c_thread-bin-buildtest_thread.o" + ], + "test/buildtest_c_thread-bin-buildtest_thread.o" => [ + "test/buildtest_thread.c" + ], "test/buildtest_c_tls1" => [ "test/buildtest_c_tls1-bin-buildtest_tls1.o" ], @@ -26178,6 +30716,29 @@ our %unified_info = ( "test/buildtest_c_whrlpool-bin-buildtest_whrlpool.o" => [ "test/buildtest_whrlpool.c" ], + "test/byteorder_test" => [ + "test/byteorder_test-bin-byteorder_test.o" + ], + "test/byteorder_test-bin-byteorder_test.o" => [ + "test/byteorder_test.c" + ], + "test/ca_internals_test" => [ + "apps/ca_internals_test-bin-ca.o", + "apps/lib/ca_internals_test-bin-app_libctx.o", + "apps/lib/ca_internals_test-bin-app_provider.o", + "apps/lib/ca_internals_test-bin-app_rand.o", + "apps/lib/ca_internals_test-bin-app_x509.o", + "apps/lib/ca_internals_test-bin-apps.o", + "apps/lib/ca_internals_test-bin-apps_ui.o", + "apps/lib/ca_internals_test-bin-engine.o", + "apps/lib/ca_internals_test-bin-fmt.o", + "crypto/asn1/ca_internals_test-bin-a_time.o", + "crypto/ca_internals_test-bin-ctype.o", + "test/ca_internals_test-bin-ca_internals_test.o" + ], + "test/ca_internals_test-bin-ca_internals_test.o" => [ + "test/ca_internals_test.c" + ], "test/casttest" => [ "test/casttest-bin-casttest.o" ], @@ -26356,6 +30917,12 @@ our %unified_info = ( "test/danetest-bin-danetest.o" => [ "test/danetest.c" ], + "test/decoder_propq_test" => [ + "test/decoder_propq_test-bin-decoder_propq_test.o" + ], + "test/decoder_propq_test-bin-decoder_propq_test.o" => [ + "test/decoder_propq_test.c" + ], "test/defltfips_test" => [ "test/defltfips_test-bin-defltfips_test.o" ], @@ -26437,6 +31004,7 @@ our %unified_info = ( "test/ectest.c" ], "test/endecode_test" => [ + "providers/endecode_test-bin-legacyprov.o", "test/endecode_test-bin-endecode_test.o", "test/helpers/endecode_test-bin-predefined_dhparams.o" ], @@ -26469,17 +31037,29 @@ our %unified_info = ( ], "test/evp_extra_test" => [ "providers/evp_extra_test-bin-legacyprov.o", - "test/evp_extra_test-bin-evp_extra_test.o" + "test/evp_extra_test-bin-evp_extra_test.o", + "test/evp_extra_test-bin-fake_pipelineprov.o", + "test/evp_extra_test-bin-fake_rsaprov.o" ], "test/evp_extra_test-bin-evp_extra_test.o" => [ "test/evp_extra_test.c" ], + "test/evp_extra_test-bin-fake_pipelineprov.o" => [ + "test/fake_pipelineprov.c" + ], + "test/evp_extra_test-bin-fake_rsaprov.o" => [ + "test/fake_rsaprov.c" + ], "test/evp_extra_test2" => [ - "test/evp_extra_test2-bin-evp_extra_test2.o" + "test/evp_extra_test2-bin-evp_extra_test2.o", + "test/evp_extra_test2-bin-tls-provider.o" ], "test/evp_extra_test2-bin-evp_extra_test2.o" => [ "test/evp_extra_test2.c" ], + "test/evp_extra_test2-bin-tls-provider.o" => [ + "test/tls-provider.c" + ], "test/evp_fetch_prov_test" => [ "test/evp_fetch_prov_test-bin-evp_fetch_prov_test.o" ], @@ -26504,6 +31084,12 @@ our %unified_info = ( "test/evp_pkey_ctx_new_from_name-bin-evp_pkey_ctx_new_from_name.o" => [ "test/evp_pkey_ctx_new_from_name.c" ], + "test/evp_pkey_dhkem_test" => [ + "test/evp_pkey_dhkem_test-bin-evp_pkey_dhkem_test.o" + ], + "test/evp_pkey_dhkem_test-bin-evp_pkey_dhkem_test.o" => [ + "test/evp_pkey_dhkem_test.c" + ], "test/evp_pkey_dparams_test" => [ "test/evp_pkey_dparams_test-bin-evp_pkey_dparams_test.o" ], @@ -26516,12 +31102,28 @@ our %unified_info = ( "test/evp_pkey_provided_test-bin-evp_pkey_provided_test.o" => [ "test/evp_pkey_provided_test.c" ], + "test/evp_skey_test" => [ + "test/evp_skey_test-bin-evp_skey_test.o", + "test/evp_skey_test-bin-fake_cipherprov.o" + ], + "test/evp_skey_test-bin-evp_skey_test.o" => [ + "test/evp_skey_test.c" + ], + "test/evp_skey_test-bin-fake_cipherprov.o" => [ + "test/fake_cipherprov.c" + ], "test/evp_test" => [ "test/evp_test-bin-evp_test.o" ], "test/evp_test-bin-evp_test.o" => [ "test/evp_test.c" ], + "test/evp_xof_test" => [ + "test/evp_xof_test-bin-evp_xof_test.o" + ], + "test/evp_xof_test-bin-evp_xof_test.o" => [ + "test/evp_xof_test.c" + ], "test/exdatatest" => [ "test/exdatatest-bin-exdatatest.o" ], @@ -26607,15 +31209,108 @@ our %unified_info = ( "test/helpers/fatalerrtest-bin-ssltestlib.o" => [ "test/helpers/ssltestlib.c" ], + "test/helpers/json_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/json_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/json_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/json_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/pkcs12_api_test-bin-pkcs12.o" => [ + "test/helpers/pkcs12.c" + ], "test/helpers/pkcs12_format_test-bin-pkcs12.o" => [ "test/helpers/pkcs12.c" ], + "test/helpers/quic_multistream_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quic_multistream_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quic_multistream_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quic_multistream_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quic_newcid_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quic_newcid_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quic_newcid_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quic_newcid_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quic_radix_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quic_radix_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quic_radix_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quic_radix_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quic_srt_gen_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quic_srt_gen_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quic_srt_gen_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quic_srt_gen_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quicapitest-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quicapitest-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quicapitest-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quicapitest-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quicfaultstest-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quicfaultstest-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quicfaultstest-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quicfaultstest-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], "test/helpers/recordlentest-bin-ssltestlib.o" => [ "test/helpers/ssltestlib.c" ], + "test/helpers/rpktest-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], "test/helpers/servername_test-bin-ssltestlib.o" => [ "test/helpers/ssltestlib.c" ], + "test/helpers/ssl_handshake_rtt_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], "test/helpers/ssl_old_test-bin-predefined_dhparams.o" => [ "test/helpers/predefined_dhparams.c" ], @@ -26643,6 +31338,9 @@ our %unified_info = ( "test/helpers/tls13ccstest-bin-ssltestlib.o" => [ "test/helpers/ssltestlib.c" ], + "test/helpers/tls13groupselection_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], "test/hexstr_test" => [ "test/hexstr_test-bin-hexstr_test.o" ], @@ -26655,6 +31353,12 @@ our %unified_info = ( "test/hmactest-bin-hmactest.o" => [ "test/hmactest.c" ], + "test/hpke_test" => [ + "test/hpke_test-bin-hpke_test.o" + ], + "test/hpke_test-bin-hpke_test.o" => [ + "test/hpke_test.c" + ], "test/http_test" => [ "test/http_test-bin-http_test.o" ], @@ -26673,6 +31377,16 @@ our %unified_info = ( "test/igetest-bin-igetest.o" => [ "test/igetest.c" ], + "test/json_test" => [ + "test/helpers/json_test-bin-noisydgrambio.o", + "test/helpers/json_test-bin-pktsplitbio.o", + "test/helpers/json_test-bin-quictestlib.o", + "test/helpers/json_test-bin-ssltestlib.o", + "test/json_test-bin-json_test.o" + ], + "test/json_test-bin-json_test.o" => [ + "test/json_test.c" + ], "test/keymgmt_internal_test" => [ "test/keymgmt_internal_test-bin-keymgmt_internal_test.o" ], @@ -26693,6 +31407,7 @@ our %unified_info = ( "test/testutil/libtestutil-lib-driver.o", "test/testutil/libtestutil-lib-fake_random.o", "test/testutil/libtestutil-lib-format_output.o", + "test/testutil/libtestutil-lib-helper.o", "test/testutil/libtestutil-lib-load.o", "test/testutil/libtestutil-lib-main.o", "test/testutil/libtestutil-lib-options.o", @@ -26705,6 +31420,12 @@ our %unified_info = ( "test/testutil/libtestutil-lib-tests.o", "test/testutil/libtestutil-lib-testutil_init.o" ], + "test/list_test" => [ + "test/list_test-bin-list_test.o" + ], + "test/list_test-bin-list_test.o" => [ + "test/list_test.c" + ], "test/localetest" => [ "test/localetest-bin-localetest.o" ], @@ -26723,12 +31444,36 @@ our %unified_info = ( "test/mdc2test-bin-mdc2test.o" => [ "test/mdc2test.c" ], + "test/membio_test" => [ + "test/membio_test-bin-membio_test.o" + ], + "test/membio_test-bin-membio_test.o" => [ + "test/membio_test.c" + ], "test/memleaktest" => [ "test/memleaktest-bin-memleaktest.o" ], "test/memleaktest-bin-memleaktest.o" => [ "test/memleaktest.c" ], + "test/ml_dsa_test" => [ + "test/ml_dsa_test-bin-ml_dsa_test.o" + ], + "test/ml_dsa_test-bin-ml_dsa_test.o" => [ + "test/ml_dsa_test.c" + ], + "test/ml_kem_evp_extra_test" => [ + "test/ml_kem_evp_extra_test-bin-ml_kem_evp_extra_test.o" + ], + "test/ml_kem_evp_extra_test-bin-ml_kem_evp_extra_test.o" => [ + "test/ml_kem_evp_extra_test.c" + ], + "test/ml_kem_internal_test" => [ + "test/ml_kem_internal_test-bin-ml_kem_internal_test.o" + ], + "test/ml_kem_internal_test-bin-ml_kem_internal_test.o" => [ + "test/ml_kem_internal_test.c" + ], "test/modes_internal_test" => [ "test/modes_internal_test-bin-modes_internal_test.o" ], @@ -26772,11 +31517,18 @@ our %unified_info = ( "test/p_test.c" ], "test/packettest" => [ + "crypto/packettest-bin-quic_vlint.o", "test/packettest-bin-packettest.o" ], "test/packettest-bin-packettest.o" => [ "test/packettest.c" ], + "test/pairwise_fail_test" => [ + "test/pairwise_fail_test-bin-pairwise_fail_test.o" + ], + "test/pairwise_fail_test-bin-pairwise_fail_test.o" => [ + "test/pairwise_fail_test.c" + ], "test/param_build_test" => [ "test/param_build_test-bin-param_build_test.o" ], @@ -26825,6 +31577,13 @@ our %unified_info = ( "test/pemtest-bin-pemtest.o" => [ "test/pemtest.c" ], + "test/pkcs12_api_test" => [ + "test/helpers/pkcs12_api_test-bin-pkcs12.o", + "test/pkcs12_api_test-bin-pkcs12_api_test.o" + ], + "test/pkcs12_api_test-bin-pkcs12_api_test.o" => [ + "test/pkcs12_api_test.c" + ], "test/pkcs12_format_test" => [ "test/helpers/pkcs12_format_test-bin-pkcs12.o", "test/pkcs12_format_test-bin-pkcs12_format_test.o" @@ -26856,6 +31615,12 @@ our %unified_info = ( "test/poly1305_internal_test-bin-poly1305_internal_test.o" => [ "test/poly1305_internal_test.c" ], + "test/priority_queue_test" => [ + "test/priority_queue_test-bin-priority_queue_test.o" + ], + "test/priority_queue_test-bin-priority_queue_test.o" => [ + "test/priority_queue_test.c" + ], "test/property_test" => [ "test/property_test-bin-property_test.o" ], @@ -26874,6 +31639,12 @@ our %unified_info = ( "test/provfetchtest-bin-provfetchtest.o" => [ "test/provfetchtest.c" ], + "test/provider_default_search_path_test" => [ + "test/provider_default_search_path_test-bin-provider_default_search_path_test.o" + ], + "test/provider_default_search_path_test-bin-provider_default_search_path_test.o" => [ + "test/provider_default_search_path_test.c" + ], "test/provider_fallback_test" => [ "test/provider_fallback_test-bin-provider_fallback_test.o" ], @@ -26922,6 +31693,174 @@ our %unified_info = ( "test/punycode_test-bin-punycode_test.o" => [ "test/punycode_test.c" ], + "test/quic_ackm_test" => [ + "test/quic_ackm_test-bin-cc_dummy.o", + "test/quic_ackm_test-bin-quic_ackm_test.o" + ], + "test/quic_ackm_test-bin-cc_dummy.o" => [ + "test/cc_dummy.c" + ], + "test/quic_ackm_test-bin-quic_ackm_test.o" => [ + "test/quic_ackm_test.c" + ], + "test/quic_cc_test" => [ + "test/quic_cc_test-bin-quic_cc_test.o" + ], + "test/quic_cc_test-bin-quic_cc_test.o" => [ + "test/quic_cc_test.c" + ], + "test/quic_cfq_test" => [ + "test/quic_cfq_test-bin-quic_cfq_test.o" + ], + "test/quic_cfq_test-bin-quic_cfq_test.o" => [ + "test/quic_cfq_test.c" + ], + "test/quic_client_test" => [ + "test/quic_client_test-bin-quic_client_test.o" + ], + "test/quic_client_test-bin-quic_client_test.o" => [ + "test/quic_client_test.c" + ], + "test/quic_fc_test" => [ + "test/quic_fc_test-bin-quic_fc_test.o" + ], + "test/quic_fc_test-bin-quic_fc_test.o" => [ + "test/quic_fc_test.c" + ], + "test/quic_fifd_test" => [ + "test/quic_fifd_test-bin-cc_dummy.o", + "test/quic_fifd_test-bin-quic_fifd_test.o" + ], + "test/quic_fifd_test-bin-cc_dummy.o" => [ + "test/cc_dummy.c" + ], + "test/quic_fifd_test-bin-quic_fifd_test.o" => [ + "test/quic_fifd_test.c" + ], + "test/quic_lcidm_test" => [ + "test/quic_lcidm_test-bin-quic_lcidm_test.o" + ], + "test/quic_lcidm_test-bin-quic_lcidm_test.o" => [ + "test/quic_lcidm_test.c" + ], + "test/quic_multistream_test" => [ + "test/helpers/quic_multistream_test-bin-noisydgrambio.o", + "test/helpers/quic_multistream_test-bin-pktsplitbio.o", + "test/helpers/quic_multistream_test-bin-quictestlib.o", + "test/helpers/quic_multistream_test-bin-ssltestlib.o", + "test/quic_multistream_test-bin-quic_multistream_test.o" + ], + "test/quic_multistream_test-bin-quic_multistream_test.o" => [ + "test/quic_multistream_test.c" + ], + "test/quic_newcid_test" => [ + "test/helpers/quic_newcid_test-bin-noisydgrambio.o", + "test/helpers/quic_newcid_test-bin-pktsplitbio.o", + "test/helpers/quic_newcid_test-bin-quictestlib.o", + "test/helpers/quic_newcid_test-bin-ssltestlib.o", + "test/quic_newcid_test-bin-quic_newcid_test.o" + ], + "test/quic_newcid_test-bin-quic_newcid_test.o" => [ + "test/quic_newcid_test.c" + ], + "test/quic_qlog_test" => [ + "test/quic_qlog_test-bin-quic_qlog_test.o" + ], + "test/quic_qlog_test-bin-quic_qlog_test.o" => [ + "test/quic_qlog_test.c" + ], + "test/quic_radix_test" => [ + "test/helpers/quic_radix_test-bin-noisydgrambio.o", + "test/helpers/quic_radix_test-bin-pktsplitbio.o", + "test/helpers/quic_radix_test-bin-quictestlib.o", + "test/helpers/quic_radix_test-bin-ssltestlib.o", + "test/radix/quic_radix_test-bin-quic_radix.o" + ], + "test/quic_rcidm_test" => [ + "test/quic_rcidm_test-bin-quic_rcidm_test.o" + ], + "test/quic_rcidm_test-bin-quic_rcidm_test.o" => [ + "test/quic_rcidm_test.c" + ], + "test/quic_record_test" => [ + "test/quic_record_test-bin-quic_record_test.o" + ], + "test/quic_record_test-bin-quic_record_test.o" => [ + "test/quic_record_test.c" + ], + "test/quic_srt_gen_test" => [ + "test/helpers/quic_srt_gen_test-bin-noisydgrambio.o", + "test/helpers/quic_srt_gen_test-bin-pktsplitbio.o", + "test/helpers/quic_srt_gen_test-bin-quictestlib.o", + "test/helpers/quic_srt_gen_test-bin-ssltestlib.o", + "test/quic_srt_gen_test-bin-quic_srt_gen_test.o" + ], + "test/quic_srt_gen_test-bin-quic_srt_gen_test.o" => [ + "test/quic_srt_gen_test.c" + ], + "test/quic_srtm_test" => [ + "test/quic_srtm_test-bin-quic_srtm_test.o" + ], + "test/quic_srtm_test-bin-quic_srtm_test.o" => [ + "test/quic_srtm_test.c" + ], + "test/quic_stream_test" => [ + "test/quic_stream_test-bin-quic_stream_test.o" + ], + "test/quic_stream_test-bin-quic_stream_test.o" => [ + "test/quic_stream_test.c" + ], + "test/quic_tserver_test" => [ + "test/quic_tserver_test-bin-quic_tserver_test.o" + ], + "test/quic_tserver_test-bin-quic_tserver_test.o" => [ + "test/quic_tserver_test.c" + ], + "test/quic_txp_test" => [ + "test/quic_txp_test-bin-cc_dummy.o", + "test/quic_txp_test-bin-quic_txp_test.o" + ], + "test/quic_txp_test-bin-cc_dummy.o" => [ + "test/cc_dummy.c" + ], + "test/quic_txp_test-bin-quic_txp_test.o" => [ + "test/quic_txp_test.c" + ], + "test/quic_txpim_test" => [ + "test/quic_txpim_test-bin-quic_txpim_test.o" + ], + "test/quic_txpim_test-bin-quic_txpim_test.o" => [ + "test/quic_txpim_test.c" + ], + "test/quic_wire_test" => [ + "test/quic_wire_test-bin-quic_wire_test.o" + ], + "test/quic_wire_test-bin-quic_wire_test.o" => [ + "test/quic_wire_test.c" + ], + "test/quicapitest" => [ + "test/helpers/quicapitest-bin-noisydgrambio.o", + "test/helpers/quicapitest-bin-pktsplitbio.o", + "test/helpers/quicapitest-bin-quictestlib.o", + "test/helpers/quicapitest-bin-ssltestlib.o", + "test/quicapitest-bin-quicapitest.o" + ], + "test/quicapitest-bin-quicapitest.o" => [ + "test/quicapitest.c" + ], + "test/quicfaultstest" => [ + "test/helpers/quicfaultstest-bin-noisydgrambio.o", + "test/helpers/quicfaultstest-bin-pktsplitbio.o", + "test/helpers/quicfaultstest-bin-quictestlib.o", + "test/helpers/quicfaultstest-bin-ssltestlib.o", + "test/quicfaultstest-bin-quicfaultstest.o" + ], + "test/quicfaultstest-bin-quicfaultstest.o" => [ + "test/quicfaultstest.c" + ], + "test/radix/quic_radix_test-bin-quic_radix.o" => [ + "test/radix/quic_radix.c" + ], "test/rand_status_test" => [ "test/rand_status_test-bin-rand_status_test.o" ], @@ -26952,11 +31891,11 @@ our %unified_info = ( "test/rc5test-bin-rc5test.o" => [ "test/rc5test.c" ], - "test/rdrand_sanitytest" => [ - "test/rdrand_sanitytest-bin-rdrand_sanitytest.o" + "test/rdcpu_sanitytest" => [ + "test/rdcpu_sanitytest-bin-rdcpu_sanitytest.o" ], - "test/rdrand_sanitytest-bin-rdrand_sanitytest.o" => [ - "test/rdrand_sanitytest.c" + "test/rdcpu_sanitytest-bin-rdcpu_sanitytest.o" => [ + "test/rdcpu_sanitytest.c" ], "test/recordlentest" => [ "test/helpers/recordlentest-bin-ssltestlib.o", @@ -26965,6 +31904,13 @@ our %unified_info = ( "test/recordlentest-bin-recordlentest.o" => [ "test/recordlentest.c" ], + "test/rpktest" => [ + "test/helpers/rpktest-bin-ssltestlib.o", + "test/rpktest-bin-rpktest.o" + ], + "test/rpktest-bin-rpktest.o" => [ + "test/rpktest.c" + ], "test/rsa_complex" => [ "test/rsa_complex-bin-rsa_complex.o" ], @@ -26989,6 +31935,18 @@ our %unified_info = ( "test/rsa_test-bin-rsa_test.o" => [ "test/rsa_test.c" ], + "test/rsa_x931_test" => [ + "test/rsa_x931_test-bin-rsa_x931_test.o" + ], + "test/rsa_x931_test-bin-rsa_x931_test.o" => [ + "test/rsa_x931_test.c" + ], + "test/safe_math_test" => [ + "test/safe_math_test-bin-safe_math_test.o" + ], + "test/safe_math_test-bin-safe_math_test.o" => [ + "test/safe_math_test.c" + ], "test/sanitytest" => [ "test/sanitytest-bin-sanitytest.o" ], @@ -27020,6 +31978,12 @@ our %unified_info = ( "test/siphash_internal_test-bin-siphash_internal_test.o" => [ "test/siphash_internal_test.c" ], + "test/slh_dsa_test" => [ + "test/slh_dsa_test-bin-slh_dsa_test.o" + ], + "test/slh_dsa_test-bin-slh_dsa_test.o" => [ + "test/slh_dsa_test.c" + ], "test/sm2_internal_test" => [ "test/sm2_internal_test-bin-sm2_internal_test.o" ], @@ -27062,6 +32026,13 @@ our %unified_info = ( "test/ssl_ctx_test-bin-ssl_ctx_test.o" => [ "test/ssl_ctx_test.c" ], + "test/ssl_handshake_rtt_test" => [ + "test/helpers/ssl_handshake_rtt_test-bin-ssltestlib.o", + "test/ssl_handshake_rtt_test-bin-ssl_handshake_rtt_test.o" + ], + "test/ssl_handshake_rtt_test-bin-ssl_handshake_rtt_test.o" => [ + "test/ssl_handshake_rtt_test.c" + ], "test/ssl_old_test" => [ "test/helpers/ssl_old_test-bin-predefined_dhparams.o", "test/ssl_old_test-bin-ssl_old_test.o" @@ -27120,6 +32091,12 @@ our %unified_info = ( "test/stack_test-bin-stack_test.o" => [ "test/stack_test.c" ], + "test/strtoultest" => [ + "test/strtoultest-bin-strtoultest.o" + ], + "test/strtoultest-bin-strtoultest.o" => [ + "test/strtoultest.c" + ], "test/sysdefaulttest" => [ "test/sysdefaulttest-bin-sysdefaulttest.o" ], @@ -27150,6 +32127,9 @@ our %unified_info = ( "test/testutil/libtestutil-lib-format_output.o" => [ "test/testutil/format_output.c" ], + "test/testutil/libtestutil-lib-helper.o" => [ + "test/testutil/helper.c" + ], "test/testutil/libtestutil-lib-load.o" => [ "test/testutil/load.c" ], @@ -27183,6 +32163,12 @@ our %unified_info = ( "test/testutil/libtestutil-lib-testutil_init.o" => [ "test/testutil/testutil_init.c" ], + "test/threadpool_test" => [ + "test/threadpool_test-bin-threadpool_test.o" + ], + "test/threadpool_test-bin-threadpool_test.o" => [ + "test/threadpool_test.c" + ], "test/threadstest" => [ "test/threadstest-bin-threadstest.o" ], @@ -27201,6 +32187,12 @@ our %unified_info = ( "test/time_offset_test-bin-time_offset_test.o" => [ "test/time_offset_test.c" ], + "test/time_test" => [ + "test/time_test-bin-time_test.o" + ], + "test/time_test-bin-time_test.o" => [ + "test/time_test.c" + ], "test/tls13ccstest" => [ "test/helpers/tls13ccstest-bin-ssltestlib.o", "test/tls13ccstest-bin-tls13ccstest.o" @@ -27214,6 +32206,13 @@ our %unified_info = ( "test/tls13encryptiontest-bin-tls13encryptiontest.o" => [ "test/tls13encryptiontest.c" ], + "test/tls13groupselection_test" => [ + "test/helpers/tls13groupselection_test-bin-ssltestlib.o", + "test/tls13groupselection_test-bin-tls13groupselection_test.o" + ], + "test/tls13groupselection_test-bin-tls13groupselection_test.o" => [ + "test/tls13groupselection_test.c" + ], "test/trace_api_test" => [ "test/trace_api_test-bin-trace_api_test.o" ], @@ -27269,6 +32268,12 @@ our %unified_info = ( "test/wpackettest-bin-wpackettest.o" => [ "test/wpackettest.c" ], + "test/x509_acert_test" => [ + "test/x509_acert_test-bin-x509_acert_test.o" + ], + "test/x509_acert_test-bin-x509_acert_test.o" => [ + "test/x509_acert_test.c" + ], "test/x509_check_cert_pkey_test" => [ "test/x509_check_cert_pkey_test-bin-x509_check_cert_pkey_test.o" ], @@ -27287,6 +32292,24 @@ our %unified_info = ( "test/x509_internal_test-bin-x509_internal_test.o" => [ "test/x509_internal_test.c" ], + "test/x509_load_cert_file_test" => [ + "test/x509_load_cert_file_test-bin-x509_load_cert_file_test.o" + ], + "test/x509_load_cert_file_test-bin-x509_load_cert_file_test.o" => [ + "test/x509_load_cert_file_test.c" + ], + "test/x509_req_test" => [ + "test/x509_req_test-bin-x509_req_test.o" + ], + "test/x509_req_test-bin-x509_req_test.o" => [ + "test/x509_req_test.c" + ], + "test/x509_test" => [ + "test/x509_test-bin-x509_test.o" + ], + "test/x509_test-bin-x509_test.o" => [ + "test/x509_test.c" + ], "test/x509_time_test" => [ "test/x509_time_test-bin-x509_time_test.o" ], @@ -27350,6 +32373,7 @@ my @makevars = ( "LDLIBS", "MT", "MTFLAGS", + "OBJCOPY", "PERL", "RANLIB", "RC", @@ -27366,6 +32390,12 @@ my %disabled_info = ( "asm" => { "macro" => "OPENSSL_NO_ASM" }, + "brotli" => { + "macro" => "OPENSSL_NO_BROTLI" + }, + "brotli-dynamic" => { + "macro" => "OPENSSL_NO_BROTLI_DYNAMIC" + }, "comp" => { "macro" => "OPENSSL_NO_COMP", "skipped" => [ @@ -27378,6 +32408,9 @@ my %disabled_info = ( "crypto-mdebug-backtrace" => { "macro" => "OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE" }, + "demos" => { + "macro" => "OPENSSL_NO_DEMOS" + }, "devcryptoeng" => { "macro" => "OPENSSL_NO_DEVCRYPTOENG" }, @@ -27390,12 +32423,24 @@ my %disabled_info = ( "external-tests" => { "macro" => "OPENSSL_NO_EXTERNAL_TESTS" }, + "fips-jitter" => { + "macro" => "OPENSSL_NO_FIPS_JITTER" + }, "fuzz-afl" => { "macro" => "OPENSSL_NO_FUZZ_AFL" }, "fuzz-libfuzzer" => { "macro" => "OPENSSL_NO_FUZZ_LIBFUZZER" }, + "h3demo" => { + "macro" => "OPENSSL_NO_H3DEMO" + }, + "hqinterop" => { + "macro" => "OPENSSL_NO_HQINTEROP" + }, + "jitter" => { + "macro" => "OPENSSL_NO_JITTER" + }, "ktls" => { "macro" => "OPENSSL_NO_KTLS" }, @@ -27411,6 +32456,9 @@ my %disabled_info = ( "msan" => { "macro" => "OPENSSL_NO_MSAN" }, + "pie" => { + "macro" => "OPENSSL_NO_PIE" + }, "rc5" => { "macro" => "OPENSSL_NO_RC5", "skipped" => [ @@ -27426,6 +32474,12 @@ my %disabled_info = ( "ssl3-method" => { "macro" => "OPENSSL_NO_SSL3_METHOD" }, + "sslkeylog" => { + "macro" => "OPENSSL_NO_SSLKEYLOG" + }, + "tfo" => { + "macro" => "OPENSSL_NO_TFO" + }, "trace" => { "macro" => "OPENSSL_NO_TRACE" }, @@ -27440,6 +32494,21 @@ my %disabled_info = ( }, "weak-ssl-ciphers" => { "macro" => "OPENSSL_NO_WEAK_SSL_CIPHERS" + }, + "winstore" => { + "macro" => "OPENSSL_NO_WINSTORE" + }, + "zlib" => { + "macro" => "OPENSSL_NO_ZLIB" + }, + "zlib-dynamic" => { + "macro" => "OPENSSL_NO_ZLIB_DYNAMIC" + }, + "zstd" => { + "macro" => "OPENSSL_NO_ZSTD" + }, + "zstd-dynamic" => { + "macro" => "OPENSSL_NO_ZSTD_DYNAMIC" } ); my @user_crossable = qw( AR AS CC CXX CPP LD MT RANLIB RC ); @@ -27453,15 +32522,15 @@ unless (caller) { use File::Copy; use Pod::Usage; - use lib '/home/runner/work/node/node/deps/openssl/openssl/util/perl'; - use OpenSSL::fallback '/home/runner/work/node/node/deps/openssl/openssl/external/perl/MODULES.txt'; + use lib '/node/deps/openssl/openssl/util/perl'; + use OpenSSL::fallback '/node/deps/openssl/openssl/external/perl/MODULES.txt'; my $here = dirname($0); if (scalar @ARGV == 0) { # With no arguments, re-create the build file # We do that in two steps, where the first step emits perl - # snipets. + # snippets. my $buildfile = $config{build_file}; my $buildfile_template = "$buildfile.in"; @@ -27481,7 +32550,7 @@ unless (caller) { ); use lib '.'; - use lib '/home/runner/work/node/node/deps/openssl/openssl/Configurations'; + use lib '/node/deps/openssl/openssl/Configurations'; use gentemplate; open my $buildfile_template_fh, ">$buildfile_template" @@ -27498,8 +32567,8 @@ unless (caller) { my $prepend = <<'_____'; use File::Spec::Functions; -use lib '/home/runner/work/node/node/deps/openssl/openssl/util/perl'; -use lib '/home/runner/work/node/node/deps/openssl/openssl/Configurations'; +use lib '/node/deps/openssl/openssl/util/perl'; +use lib '/node/deps/openssl/openssl/Configurations'; use lib '.'; use platform; _____ diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/no-asm/crypto/buildinf.h b/deps/openssl/config/archs/darwin64-arm64-cc/no-asm/crypto/buildinf.h index f729490565601c..a9f03af33a0a2c 100644 --- a/deps/openssl/config/archs/darwin64-arm64-cc/no-asm/crypto/buildinf.h +++ b/deps/openssl/config/archs/darwin64-arm64-cc/no-asm/crypto/buildinf.h @@ -11,7 +11,7 @@ */ #define PLATFORM "platform: darwin64-arm64-cc" -#define DATE "built on: Sun Jul 20 00:48:42 2025 UTC" +#define DATE "built on: Sun Jul 27 00:49:53 2025 UTC" /* * Generate compiler_flags as an array of individual characters. This is a diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/no-asm/crypto/params_idx.c b/deps/openssl/config/archs/darwin64-arm64-cc/no-asm/crypto/params_idx.c new file mode 100644 index 00000000000000..9d76ffededc24c --- /dev/null +++ b/deps/openssl/config/archs/darwin64-arm64-cc/no-asm/crypto/params_idx.c @@ -0,0 +1,3366 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from crypto/params_idx.c.in + * + * Copyright 2023 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + +#include "internal/e_os.h" +#include "internal/param_names.h" +#include + +/* Machine generated TRIE -- generated by util/perl/OpenSSL/paramnames.pm */ +int ossl_param_find_pidx(const char *s) +{ + switch(s[0]) { + default: + break; + case 'a': + switch(s[1]) { + default: + break; + case 'c': + if (strcmp("vp-info", s + 2) == 0) + return PIDX_KDF_PARAM_X942_ACVPINFO; + break; + case 'd': + switch(s[2]) { + default: + break; + case 'd': + if (strcmp("itional-random", s + 3) == 0) + return PIDX_SIGNATURE_PARAM_ADD_RANDOM; + break; + case '\0': + return PIDX_KDF_PARAM_ARGON2_AD; + } + break; + case 'e': + if (strcmp("ad", s + 2) == 0) + return PIDX_CIPHER_PARAM_AEAD; + break; + case 'l': + switch(s[2]) { + default: + break; + case 'g': + switch(s[3]) { + default: + break; + case '_': + if (strcmp("id_param", s + 4) == 0) + return PIDX_CIPHER_PARAM_ALGORITHM_ID_PARAMS_OLD; + break; + case 'i': + if (strcmp("d-absent", s + 4) == 0) + return PIDX_DIGEST_PARAM_ALGID_ABSENT; + break; + case 'o': + switch(s[4]) { + default: + break; + case 'r': + switch(s[5]) { + default: + break; + case 'i': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case 'h': + switch(s[8]) { + default: + break; + case 'm': + switch(s[9]) { + default: + break; + case '-': + switch(s[10]) { + default: + break; + case 'i': + switch(s[11]) { + default: + break; + case 'd': + switch(s[12]) { + default: + break; + case '-': + if (strcmp("params", s + 13) == 0) + return PIDX_ALG_PARAM_ALGORITHM_ID_PARAMS; + break; + case '\0': + return PIDX_ALG_PARAM_ALGORITHM_ID; + } + } + } + } + } + } + } + } + } + } + break; + case 'i': + if (strcmp("as", s + 3) == 0) + return PIDX_STORE_PARAM_ALIAS; + } + break; + case '\0': + return PIDX_PKEY_PARAM_EC_A; + } + break; + case 'b': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("sis-type", s + 2) == 0) + return PIDX_PKEY_PARAM_EC_CHAR2_TYPE; + break; + case 'i': + if (strcmp("ts", s + 2) == 0) + return PIDX_PKEY_PARAM_BITS; + break; + case 'l': + switch(s[2]) { + default: + break; + case 'o': + switch(s[3]) { + default: + break; + case 'c': + switch(s[4]) { + default: + break; + case 'k': + switch(s[5]) { + default: + break; + case '-': + if (strcmp("size", s + 6) == 0) + return PIDX_MAC_PARAM_BLOCK_SIZE; + break; + case '_': + if (strcmp("padding", s + 6) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_BLOCK_PADDING; + break; + case 's': + if (strcmp("ize", s + 6) == 0) + return PIDX_DIGEST_PARAM_BLOCK_SIZE; + } + } + } + } + break; + case 'u': + if (strcmp("ildinfo", s + 2) == 0) + return PIDX_PROV_PARAM_BUILDINFO; + break; + case '\0': + return PIDX_PKEY_PARAM_EC_B; + } + break; + case 'c': + switch(s[1]) { + default: + break; + case '-': + if (strcmp("rounds", s + 2) == 0) + return PIDX_MAC_PARAM_C_ROUNDS; + break; + case 'e': + if (strcmp("kalg", s + 2) == 0) + return PIDX_KDF_PARAM_CEK_ALG; + break; + case 'i': + if (strcmp("pher", s + 2) == 0) + return PIDX_ALG_PARAM_CIPHER; + break; + case 'o': + switch(s[2]) { + default: + break; + case 'f': + if (strcmp("actor", s + 3) == 0) + return PIDX_PKEY_PARAM_EC_COFACTOR; + break; + case 'n': + switch(s[3]) { + default: + break; + case 's': + if (strcmp("tant", s + 4) == 0) + return PIDX_KDF_PARAM_CONSTANT; + break; + case 't': + if (strcmp("ext-string", s + 4) == 0) + return PIDX_SIGNATURE_PARAM_CONTEXT_STRING; + } + } + break; + case 't': + switch(s[2]) { + default: + break; + case 's': + switch(s[3]) { + default: + break; + case '_': + if (strcmp("mode", s + 4) == 0) + return PIDX_CIPHER_PARAM_CTS_MODE; + break; + case '\0': + return PIDX_CIPHER_PARAM_CTS; + } + } + break; + case 'u': + switch(s[2]) { + default: + break; + case 's': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case 'o': + switch(s[5]) { + default: + break; + case 'm': + switch(s[6]) { + default: + break; + case '-': + if (strcmp("iv", s + 7) == 0) + return PIDX_CIPHER_PARAM_CUSTOM_IV; + break; + case '\0': + return PIDX_MAC_PARAM_CUSTOM; + } + } + } + } + } + } + break; + case 'd': + switch(s[1]) { + default: + break; + case '-': + if (strcmp("rounds", s + 2) == 0) + return PIDX_MAC_PARAM_D_ROUNDS; + break; + case 'a': + switch(s[2]) { + default: + break; + case 't': + switch(s[3]) { + default: + break; + case 'a': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 's': + if (strcmp("tructure", s + 6) == 0) + return PIDX_OBJECT_PARAM_DATA_STRUCTURE; + break; + case 't': + if (strcmp("ype", s + 6) == 0) + return PIDX_OBJECT_PARAM_DATA_TYPE; + } + break; + case '\0': + return PIDX_OBJECT_PARAM_DATA; + } + } + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'c': + switch(s[3]) { + default: + break; + case 'o': + if (strcmp("ded-from-explicit", s + 4) == 0) + return PIDX_PKEY_PARAM_EC_DECODED_FROM_EXPLICIT_PARAMS; + break; + case 'r': + if (strcmp("ypt-only", s + 4) == 0) + return PIDX_CIPHER_PARAM_DECRYPT_ONLY; + } + break; + case 'f': + if (strcmp("ault-digest", s + 3) == 0) + return PIDX_PKEY_PARAM_DEFAULT_DIGEST; + break; + case 's': + if (strcmp("c", s + 3) == 0) + return PIDX_OBJECT_PARAM_DESC; + break; + case 't': + if (strcmp("erministic", s + 3) == 0) + return PIDX_SIGNATURE_PARAM_DETERMINISTIC; + } + break; + case 'h': + if (strcmp("kem-ikm", s + 2) == 0) + return PIDX_PKEY_PARAM_DHKEM_IKM; + break; + case 'i': + switch(s[2]) { + default: + break; + case 'g': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case 's': + switch(s[5]) { + default: + break; + case 't': + switch(s[6]) { + default: + break; + case '-': + switch(s[7]) { + default: + break; + case 'c': + if (strcmp("heck", s + 8) == 0) + return PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK; + break; + case 'n': + if (strcmp("oinit", s + 8) == 0) + return PIDX_MAC_PARAM_DIGEST_NOINIT; + break; + case 'o': + if (strcmp("neshot", s + 8) == 0) + return PIDX_MAC_PARAM_DIGEST_ONESHOT; + break; + case 'p': + if (strcmp("rops", s + 8) == 0) + return PIDX_ASYM_CIPHER_PARAM_OAEP_DIGEST_PROPS; + break; + case 's': + if (strcmp("ize", s + 8) == 0) + return PIDX_PKEY_PARAM_DIGEST_SIZE; + } + break; + case '\0': + return PIDX_STORE_PARAM_DIGEST; + } + } + } + } + break; + case 's': + if (strcmp("tid", s + 3) == 0) + return PIDX_PKEY_PARAM_DIST_ID; + } + break; + case 'r': + if (strcmp("bg-no-trunc-md", s + 2) == 0) + return PIDX_PROV_PARAM_DRBG_TRUNC_DIGEST; + break; + case 's': + if (strcmp("a-sign-disabled", s + 2) == 0) + return PIDX_PROV_PARAM_DSA_SIGN_DISABLED; + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_D; + } + break; + case 'e': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("rly_clean", s + 2) == 0) + return PIDX_KDF_PARAM_EARLY_CLEAN; + break; + case 'c': + switch(s[2]) { + default: + break; + case 'd': + switch(s[3]) { + default: + break; + case 'h': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'c': + switch(s[6]) { + default: + break; + case 'o': + switch(s[7]) { + default: + break; + case 'f': + switch(s[8]) { + default: + break; + case 'a': + switch(s[9]) { + default: + break; + case 'c': + switch(s[10]) { + default: + break; + case 't': + switch(s[11]) { + default: + break; + case 'o': + switch(s[12]) { + default: + break; + case 'r': + switch(s[13]) { + default: + break; + case '-': + switch(s[14]) { + default: + break; + case 'c': + if (strcmp("heck", s + 15) == 0) + return PIDX_PROV_PARAM_ECDH_COFACTOR_CHECK; + break; + case 'm': + if (strcmp("ode", s + 15) == 0) + return PIDX_EXCHANGE_PARAM_EC_ECDH_COFACTOR_MODE; + } + } + } + } + } + } + } + } + } + } + } + } + } + break; + case 'm': + if (strcmp("s_check", s + 2) == 0) + return PIDX_KDF_PARAM_FIPS_EMS_CHECK; + break; + case 'n': + switch(s[2]) { + default: + break; + case 'c': + switch(s[3]) { + default: + break; + case 'o': + switch(s[4]) { + default: + break; + case 'd': + switch(s[5]) { + default: + break; + case 'e': + if (strcmp("d-pub-key", s + 6) == 0) + return PIDX_PKEY_PARAM_ENCODED_PUBLIC_KEY; + break; + case 'i': + if (strcmp("ng", s + 6) == 0) + return PIDX_PKEY_PARAM_EC_ENCODING; + } + } + break; + case 'r': + switch(s[4]) { + default: + break; + case 'y': + switch(s[5]) { + default: + break; + case 'p': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case '-': + switch(s[8]) { + default: + break; + case 'c': + if (strcmp("heck", s + 9) == 0) + return PIDX_CIPHER_PARAM_FIPS_ENCRYPT_CHECK; + break; + case 'l': + if (strcmp("evel", s + 9) == 0) + return PIDX_ENCODER_PARAM_ENCRYPT_LEVEL; + } + } + } + } + } + } + break; + case 'g': + if (strcmp("ine", s + 3) == 0) + return PIDX_ALG_PARAM_ENGINE; + break; + case 't': + switch(s[3]) { + default: + break; + case 'r': + switch(s[4]) { + default: + break; + case 'o': + switch(s[5]) { + default: + break; + case 'p': + switch(s[6]) { + default: + break; + case 'y': + switch(s[7]) { + default: + break; + case '_': + if (strcmp("required", s + 8) == 0) + return PIDX_DRBG_PARAM_ENTROPY_REQUIRED; + break; + case '\0': + return PIDX_KDF_PARAM_HMACDRBG_ENTROPY; + } + } + } + } + } + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_E; + break; + case 'x': + if (strcmp("pect", s + 2) == 0) + return PIDX_STORE_PARAM_EXPECT; + } + break; + case 'f': + switch(s[1]) { + default: + break; + case 'i': + switch(s[2]) { + default: + break; + case 'e': + if (strcmp("ld-type", s + 3) == 0) + return PIDX_PKEY_PARAM_EC_FIELD_TYPE; + break; + case 'n': + if (strcmp("gerprint", s + 3) == 0) + return PIDX_STORE_PARAM_FINGERPRINT; + break; + case 'p': + if (strcmp("s-indicator", s + 3) == 0) + return PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR; + } + } + break; + case 'g': + switch(s[1]) { + default: + break; + case 'e': + switch(s[2]) { + default: + break; + case 'n': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case 'r': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case 'e': + switch(s[8]) { + default: + break; + case '\0': + return PIDX_RAND_PARAM_GENERATE; + } + break; + case 'o': + if (strcmp("r", s + 8) == 0) + return PIDX_PKEY_PARAM_EC_GENERATOR; + } + } + } + } + } + } + break; + case 'i': + if (strcmp("ndex", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_GINDEX; + break; + case 'r': + switch(s[2]) { + default: + break; + case 'o': + switch(s[3]) { + default: + break; + case 'u': + switch(s[4]) { + default: + break; + case 'p': + switch(s[5]) { + default: + break; + case '-': + if (strcmp("check", s + 6) == 0) + return PIDX_PKEY_PARAM_EC_GROUP_CHECK_TYPE; + break; + case '\0': + return PIDX_PKEY_PARAM_GROUP_NAME; + } + } + } + } + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_G; + } + break; + case 'h': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("s-randkey", s + 2) == 0) + return PIDX_CIPHER_PARAM_HAS_RAND_KEY; + break; + case 'i': + if (strcmp("ndex", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_H; + break; + case 'k': + switch(s[2]) { + default: + break; + case 'd': + switch(s[3]) { + default: + break; + case 'f': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 6) == 0) + return PIDX_PROV_PARAM_HKDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 6) == 0) + return PIDX_PROV_PARAM_HKDF_KEY_CHECK; + } + } + } + } + break; + case 'm': + if (strcmp("ac-key-check", s + 2) == 0) + return PIDX_PROV_PARAM_HMAC_KEY_CHECK; + break; + case 's': + if (strcmp("_padding", s + 2) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_HS_PADDING; + } + break; + case 'i': + switch(s[1]) { + default: + break; + case 'd': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_KDF_PARAM_PKCS12_ID; + } + break; + case 'k': + if (strcmp("me", s + 2) == 0) + return PIDX_KEM_PARAM_IKME; + break; + case 'm': + if (strcmp("plicit-rejection", s + 2) == 0) + return PIDX_PKEY_PARAM_IMPLICIT_REJECTION; + break; + case 'n': + switch(s[2]) { + default: + break; + case 'c': + if (strcmp("lude-public", s + 3) == 0) + return PIDX_PKEY_PARAM_EC_INCLUDE_PUBLIC; + break; + case 'f': + if (strcmp("o", s + 3) == 0) + return PIDX_PASSPHRASE_PARAM_INFO; + break; + case 'p': + if (strcmp("ut-type", s + 3) == 0) + return PIDX_STORE_PARAM_INPUT_TYPE; + break; + case 's': + if (strcmp("tance", s + 3) == 0) + return PIDX_SIGNATURE_PARAM_INSTANCE; + } + break; + case 't': + switch(s[2]) { + default: + break; + case 'e': + switch(s[3]) { + default: + break; + case 'r': + switch(s[4]) { + default: + break; + case 'a': + if (strcmp("tion", s + 5) == 0) + return PIDX_GEN_PARAM_ITERATION; + break; + case '\0': + return PIDX_KDF_PARAM_ITER; + } + } + } + break; + case 'v': + switch(s[2]) { + default: + break; + case '-': + if (strcmp("generated", s + 3) == 0) + return PIDX_CIPHER_PARAM_AEAD_IV_GENERATED; + break; + case 'l': + if (strcmp("en", s + 3) == 0) + return PIDX_CIPHER_PARAM_IVLEN; + break; + case '\0': + return PIDX_MAC_PARAM_IV; + } + } + break; + case 'j': + switch(s[1]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_COFACTOR; + } + break; + case 'k': + switch(s[1]) { + default: + break; + case '1': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_PP_K1; + } + break; + case '2': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_PP_K2; + } + break; + case '3': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_PP_K3; + } + break; + case 'a': + if (strcmp("t", s + 2) == 0) + return PIDX_SIGNATURE_PARAM_KAT; + break; + case 'b': + if (strcmp("kdf-key-check", s + 2) == 0) + return PIDX_PROV_PARAM_KBKDF_KEY_CHECK; + break; + case 'd': + switch(s[2]) { + default: + break; + case 'f': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'd': + switch(s[5]) { + default: + break; + case 'i': + switch(s[6]) { + default: + break; + case 'g': + switch(s[7]) { + default: + break; + case 'e': + switch(s[8]) { + default: + break; + case 's': + switch(s[9]) { + default: + break; + case 't': + switch(s[10]) { + default: + break; + case '-': + if (strcmp("props", s + 11) == 0) + return PIDX_EXCHANGE_PARAM_KDF_DIGEST_PROPS; + break; + case '\0': + return PIDX_EXCHANGE_PARAM_KDF_DIGEST; + } + } + } + } + } + } + break; + case 'o': + if (strcmp("utlen", s + 5) == 0) + return PIDX_EXCHANGE_PARAM_KDF_OUTLEN; + break; + case 't': + if (strcmp("ype", s + 5) == 0) + return PIDX_EXCHANGE_PARAM_KDF_TYPE; + break; + case 'u': + if (strcmp("km", s + 5) == 0) + return PIDX_EXCHANGE_PARAM_KDF_UKM; + } + } + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'y': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'c': + if (strcmp("heck", s + 5) == 0) + return PIDX_PKEY_PARAM_FIPS_KEY_CHECK; + break; + case 'l': + if (strcmp("ength", s + 5) == 0) + return PIDX_SKEY_PARAM_KEY_LENGTH; + } + break; + case 'b': + if (strcmp("its", s + 4) == 0) + return PIDX_CIPHER_PARAM_RC2_KEYBITS; + break; + case 'l': + if (strcmp("en", s + 4) == 0) + return PIDX_CIPHER_PARAM_KEYLEN; + break; + case '\0': + return PIDX_MAC_PARAM_KEY; + } + } + break; + case 'm': + if (strcmp("ac-key-check", s + 2) == 0) + return PIDX_PROV_PARAM_KMAC_KEY_CHECK; + } + break; + case 'l': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'b': + if (strcmp("el", s + 3) == 0) + return PIDX_KDF_PARAM_LABEL; + break; + case 'n': + if (strcmp("es", s + 3) == 0) + return PIDX_KDF_PARAM_ARGON2_LANES; + } + } + break; + case 'm': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'c': + switch(s[3]) { + default: + break; + case 'k': + if (strcmp("ey", s + 4) == 0) + return PIDX_CIPHER_PARAM_AEAD_MAC_KEY; + break; + case 'l': + if (strcmp("en", s + 4) == 0) + return PIDX_KDF_PARAM_MAC_SIZE; + break; + case '\0': + return PIDX_ALG_PARAM_MAC; + } + break; + case 'n': + if (strcmp("datory-digest", s + 3) == 0) + return PIDX_PKEY_PARAM_MANDATORY_DIGEST; + break; + case 'x': + switch(s[3]) { + default: + break; + case '-': + if (strcmp("size", s + 4) == 0) + return PIDX_PKEY_PARAM_MAX_SIZE; + break; + case '_': + switch(s[4]) { + default: + break; + case 'a': + if (strcmp("dinlen", s + 5) == 0) + return PIDX_DRBG_PARAM_MAX_ADINLEN; + break; + case 'e': + switch(s[5]) { + default: + break; + case 'a': + if (strcmp("rly_data", s + 6) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_MAX_EARLY_DATA; + break; + case 'n': + if (strcmp("tropylen", s + 6) == 0) + return PIDX_DRBG_PARAM_MAX_ENTROPYLEN; + } + break; + case 'f': + if (strcmp("rag_len", s + 5) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_MAX_FRAG_LEN; + break; + case 'n': + if (strcmp("oncelen", s + 5) == 0) + return PIDX_DRBG_PARAM_MAX_NONCELEN; + break; + case 'p': + if (strcmp("erslen", s + 5) == 0) + return PIDX_DRBG_PARAM_MAX_PERSLEN; + break; + case 'r': + if (strcmp("equest", s + 5) == 0) + return PIDX_RAND_PARAM_MAX_REQUEST; + } + break; + case 'i': + if (strcmp("um_length", s + 4) == 0) + return PIDX_DRBG_PARAM_MAX_LENGTH; + break; + case 'm': + if (strcmp("em_bytes", s + 4) == 0) + return PIDX_KDF_PARAM_SCRYPT_MAXMEM; + } + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'm': + if (strcmp("cost", s + 3) == 0) + return PIDX_KDF_PARAM_ARGON2_MEMCOST; + break; + case 's': + if (strcmp("sage-encoding", s + 3) == 0) + return PIDX_SIGNATURE_PARAM_MESSAGE_ENCODING; + } + break; + case 'g': + switch(s[2]) { + default: + break; + case 'f': + switch(s[3]) { + default: + break; + case '1': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'd': + if (strcmp("igest", s + 6) == 0) + return PIDX_PKEY_PARAM_MGF1_DIGEST; + break; + case 'p': + if (strcmp("roperties", s + 6) == 0) + return PIDX_PKEY_PARAM_MGF1_PROPERTIES; + } + } + break; + case '\0': + return PIDX_PKEY_PARAM_MASKGENFUNC; + } + } + break; + case 'i': + switch(s[2]) { + default: + break; + case 'c': + if (strcmp("alg", s + 3) == 0) + return PIDX_DIGEST_PARAM_MICALG; + break; + case 'n': + switch(s[3]) { + default: + break; + case '_': + switch(s[4]) { + default: + break; + case 'e': + if (strcmp("ntropylen", s + 5) == 0) + return PIDX_DRBG_PARAM_MIN_ENTROPYLEN; + break; + case 'n': + if (strcmp("oncelen", s + 5) == 0) + return PIDX_DRBG_PARAM_MIN_NONCELEN; + } + break; + case 'i': + if (strcmp("um_length", s + 4) == 0) + return PIDX_DRBG_PARAM_MIN_LENGTH; + } + } + break; + case 'l': + switch(s[2]) { + default: + break; + case '-': + switch(s[3]) { + default: + break; + case 'd': + switch(s[4]) { + default: + break; + case 's': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case '.': + switch(s[7]) { + default: + break; + case 'i': + if (strcmp("nput_formats", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_DSA_INPUT_FORMATS; + break; + case 'o': + if (strcmp("utput_formats", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_DSA_OUTPUT_FORMATS; + break; + case 'p': + if (strcmp("refer_seed", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_DSA_PREFER_SEED; + break; + case 'r': + if (strcmp("etain_seed", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_DSA_RETAIN_SEED; + } + } + } + } + break; + case 'k': + switch(s[4]) { + default: + break; + case 'e': + switch(s[5]) { + default: + break; + case 'm': + switch(s[6]) { + default: + break; + case '.': + switch(s[7]) { + default: + break; + case 'i': + switch(s[8]) { + default: + break; + case 'm': + if (strcmp("port_pct_type", s + 9) == 0) + return PIDX_PKEY_PARAM_ML_KEM_IMPORT_PCT_TYPE; + break; + case 'n': + if (strcmp("put_formats", s + 9) == 0) + return PIDX_PKEY_PARAM_ML_KEM_INPUT_FORMATS; + } + break; + case 'o': + if (strcmp("utput_formats", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_KEM_OUTPUT_FORMATS; + break; + case 'p': + if (strcmp("refer_seed", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_KEM_PREFER_SEED; + break; + case 'r': + if (strcmp("etain_seed", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_KEM_RETAIN_SEED; + } + } + } + } + } + } + break; + case 'o': + switch(s[2]) { + default: + break; + case 'd': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case '\0': + return PIDX_LIBSSL_RECORD_LAYER_PARAM_MODE; + } + break; + case 'u': + if (strcmp("le-filename", s + 4) == 0) + return PIDX_PROV_PARAM_CORE_MODULE_FILENAME; + } + } + break; + case 'u': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_SIGNATURE_PARAM_MU; + } + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_M; + } + break; + case 'n': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("me", s + 2) == 0) + return PIDX_STORE_PARAM_ISSUER; + break; + case 'o': + switch(s[2]) { + default: + break; + case '-': + if (strcmp("short-mac", s + 3) == 0) + return PIDX_PROV_PARAM_NO_SHORT_MAC; + break; + case 'n': + switch(s[3]) { + default: + break; + case 'c': + switch(s[4]) { + default: + break; + case 'e': + switch(s[5]) { + default: + break; + case '-': + if (strcmp("type", s + 6) == 0) + return PIDX_SIGNATURE_PARAM_NONCE_TYPE; + break; + case '\0': + return PIDX_KDF_PARAM_HMACDRBG_NONCE; + } + } + } + } + break; + case 'u': + if (strcmp("m", s + 2) == 0) + return PIDX_CIPHER_PARAM_NUM; + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_N; + } + break; + case 'o': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("ep-label", s + 2) == 0) + return PIDX_ASYM_CIPHER_PARAM_OAEP_LABEL; + break; + case 'p': + switch(s[2]) { + default: + break; + case 'e': + switch(s[3]) { + default: + break; + case 'n': + if (strcmp("ssl-version", s + 4) == 0) + return PIDX_PROV_PARAM_CORE_VERSION; + break; + case 'r': + if (strcmp("ation", s + 4) == 0) + return PIDX_KEM_PARAM_OPERATION; + } + break; + case 't': + if (strcmp("ions", s + 3) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_OPTIONS; + } + break; + case 'r': + if (strcmp("der", s + 2) == 0) + return PIDX_PKEY_PARAM_EC_ORDER; + } + break; + case 'p': + switch(s[1]) { + default: + break; + case '1': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_P1; + } + break; + case '2': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_P2; + } + break; + case 'a': + switch(s[2]) { + default: + break; + case 'd': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'm': + if (strcmp("ode", s + 5) == 0) + return PIDX_PKEY_PARAM_PAD_MODE; + break; + case 't': + if (strcmp("ype", s + 5) == 0) + return PIDX_DIGEST_PARAM_PAD_TYPE; + } + break; + case 'd': + if (strcmp("ing", s + 4) == 0) + return PIDX_CIPHER_PARAM_PADDING; + break; + case '\0': + return PIDX_EXCHANGE_PARAM_PAD; + } + break; + case 'r': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case 'y': + switch(s[5]) { + default: + break; + case 'u': + if (strcmp("-info", s + 6) == 0) + return PIDX_KDF_PARAM_X942_PARTYUINFO; + break; + case 'v': + if (strcmp("-info", s + 6) == 0) + return PIDX_KDF_PARAM_X942_PARTYVINFO; + } + } + } + break; + case 's': + if (strcmp("s", s + 3) == 0) + return PIDX_KDF_PARAM_PASSWORD; + } + break; + case 'b': + switch(s[2]) { + default: + break; + case 'i': + if (strcmp("ts", s + 3) == 0) + return PIDX_PKEY_PARAM_FFC_PBITS; + break; + case 'k': + if (strcmp("df2-lower-bound-check", s + 3) == 0) + return PIDX_PROV_PARAM_PBKDF2_LOWER_BOUND_CHECK; + } + break; + case 'c': + if (strcmp("ounter", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_PCOUNTER; + break; + case 'i': + if (strcmp("peline-tag", s + 2) == 0) + return PIDX_CIPHER_PARAM_PIPELINE_AEAD_TAG; + break; + case 'k': + if (strcmp("cs5", s + 2) == 0) + return PIDX_KDF_PARAM_PKCS5; + break; + case 'o': + switch(s[2]) { + default: + break; + case 'i': + if (strcmp("nt-format", s + 3) == 0) + return PIDX_PKEY_PARAM_EC_POINT_CONVERSION_FORMAT; + break; + case 't': + if (strcmp("ential", s + 3) == 0) + return PIDX_GEN_PARAM_POTENTIAL; + } + break; + case 'r': + switch(s[2]) { + default: + break; + case 'e': + switch(s[3]) { + default: + break; + case 'd': + if (strcmp("iction_resistance", s + 4) == 0) + return PIDX_DRBG_PARAM_PREDICTION_RESISTANCE; + break; + case 'f': + if (strcmp("ix", s + 4) == 0) + return PIDX_KDF_PARAM_PREFIX; + } + break; + case 'i': + switch(s[3]) { + default: + break; + case 'm': + if (strcmp("es", s + 4) == 0) + return PIDX_PKEY_PARAM_RSA_PRIMES; + break; + case 'v': + switch(s[4]) { + default: + break; + case '_': + if (strcmp("len", s + 5) == 0) + return PIDX_PKEY_PARAM_DH_PRIV_LEN; + break; + case '\0': + return PIDX_PKEY_PARAM_PRIV_KEY; + } + } + break; + case 'o': + switch(s[3]) { + default: + break; + case 'p': + if (strcmp("erties", s + 4) == 0) + return PIDX_STORE_PARAM_PROPERTIES; + break; + case 'v': + if (strcmp("ider-name", s + 4) == 0) + return PIDX_PROV_PARAM_CORE_PROV_NAME; + } + } + break; + case 'u': + if (strcmp("b", s + 2) == 0) + return PIDX_PKEY_PARAM_PUB_KEY; + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_P; + } + break; + case 'q': + switch(s[1]) { + default: + break; + case '1': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_Q1; + } + break; + case '2': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_Q2; + } + break; + case 'b': + if (strcmp("its", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_QBITS; + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_Q; + break; + case 'x': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_PUB_X; + } + break; + case 'y': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_PUB_Y; + } + } + break; + case 'r': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'n': + switch(s[3]) { + default: + break; + case 'd': + switch(s[4]) { + default: + break; + case 'k': + if (strcmp("ey", s + 5) == 0) + return PIDX_CIPHER_PARAM_RANDOM_KEY; + break; + case 'o': + if (strcmp("m_data", s + 5) == 0) + return PIDX_DRBG_PARAM_RANDOM_DATA; + } + } + break; + case 'w': + if (strcmp("-bytes", s + 3) == 0) + return PIDX_SKEY_PARAM_RAW_BYTES; + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'a': + switch(s[3]) { + default: + break; + case 'd': + switch(s[4]) { + default: + break; + case '_': + switch(s[5]) { + default: + break; + case 'a': + if (strcmp("head", s + 6) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_READ_AHEAD; + break; + case 'b': + if (strcmp("uffer_len", s + 6) == 0) + return PIDX_LIBSSL_RECORD_LAYER_READ_BUFFER_LEN; + } + } + } + break; + case 'f': + if (strcmp("erence", s + 3) == 0) + return PIDX_OBJECT_PARAM_REFERENCE; + break; + case 's': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case 'e': + switch(s[5]) { + default: + break; + case 'd': + switch(s[6]) { + default: + break; + case '_': + switch(s[7]) { + default: + break; + case 'c': + if (strcmp("ounter", s + 8) == 0) + return PIDX_DRBG_PARAM_RESEED_COUNTER; + break; + case 'r': + if (strcmp("equests", s + 8) == 0) + return PIDX_DRBG_PARAM_RESEED_REQUESTS; + break; + case 't': + switch(s[8]) { + default: + break; + case 'i': + switch(s[9]) { + default: + break; + case 'm': + switch(s[10]) { + default: + break; + case 'e': + switch(s[11]) { + default: + break; + case '_': + if (strcmp("interval", s + 12) == 0) + return PIDX_DRBG_PARAM_RESEED_TIME_INTERVAL; + break; + case '\0': + return PIDX_DRBG_PARAM_RESEED_TIME; + } + } + } + } + } + } + } + } + } + } + break; + case 'o': + if (strcmp("unds", s + 2) == 0) + return PIDX_CIPHER_PARAM_ROUNDS; + break; + case 's': + switch(s[2]) { + default: + break; + case 'a': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'c': + switch(s[5]) { + default: + break; + case 'o': + switch(s[6]) { + default: + break; + case 'e': + switch(s[7]) { + default: + break; + case 'f': + switch(s[8]) { + default: + break; + case 'f': + switch(s[9]) { + default: + break; + case 'i': + switch(s[10]) { + default: + break; + case 'c': + switch(s[11]) { + default: + break; + case 'i': + switch(s[12]) { + default: + break; + case 'e': + switch(s[13]) { + default: + break; + case 'n': + switch(s[14]) { + default: + break; + case 't': + switch(s[15]) { + default: + break; + case '1': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT1; + } + break; + case '2': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT2; + } + break; + case '3': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT3; + } + break; + case '4': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT4; + } + break; + case '5': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT5; + } + break; + case '6': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT6; + } + break; + case '7': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT7; + } + break; + case '8': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT8; + } + break; + case '9': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT9; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT; + } + } + } + } + } + } + } + } + } + } + } + break; + case 'd': + if (strcmp("erive-from-pq", s + 5) == 0) + return PIDX_PKEY_PARAM_RSA_DERIVE_FROM_PQ; + break; + case 'e': + switch(s[5]) { + default: + break; + case 'x': + switch(s[6]) { + default: + break; + case 'p': + switch(s[7]) { + default: + break; + case 'o': + switch(s[8]) { + default: + break; + case 'n': + switch(s[9]) { + default: + break; + case 'e': + switch(s[10]) { + default: + break; + case 'n': + switch(s[11]) { + default: + break; + case 't': + switch(s[12]) { + default: + break; + case '1': + switch(s[13]) { + default: + break; + case '0': + switch(s[14]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT10; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT1; + } + break; + case '2': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT2; + } + break; + case '3': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT3; + } + break; + case '4': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT4; + } + break; + case '5': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT5; + } + break; + case '6': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT6; + } + break; + case '7': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT7; + } + break; + case '8': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT8; + } + break; + case '9': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT9; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT; + } + } + } + } + } + } + } + } + break; + case 'f': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case 'c': + switch(s[7]) { + default: + break; + case 't': + switch(s[8]) { + default: + break; + case 'o': + switch(s[9]) { + default: + break; + case 'r': + switch(s[10]) { + default: + break; + case '1': + switch(s[11]) { + default: + break; + case '0': + switch(s[12]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR10; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR1; + } + break; + case '2': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR2; + } + break; + case '3': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR3; + } + break; + case '4': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR4; + } + break; + case '5': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR5; + } + break; + case '6': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR6; + } + break; + case '7': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR7; + } + break; + case '8': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR8; + } + break; + case '9': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR9; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR; + } + } + } + } + } + } + break; + case 'p': + switch(s[5]) { + default: + break; + case 'k': + if (strcmp("cs15-pad-disabled", s + 6) == 0) + return PIDX_PROV_PARAM_RSA_PKCS15_PAD_DISABLED; + break; + case 's': + if (strcmp("s-saltlen-check", s + 6) == 0) + return PIDX_SIGNATURE_PARAM_FIPS_RSA_PSS_SALTLEN_CHECK; + } + break; + case 's': + if (strcmp("ign-x931-pad-disabled", s + 5) == 0) + return PIDX_PROV_PARAM_RSA_SIGN_X931_PAD_DISABLED; + } + } + } + break; + case '\0': + return PIDX_KDF_PARAM_SCRYPT_R; + } + break; + case 's': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'f': + if (strcmp("eprime-generator", s + 3) == 0) + return PIDX_PKEY_PARAM_DH_GENERATOR; + break; + case 'l': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case 'l': + if (strcmp("en", s + 5) == 0) + return PIDX_SIGNATURE_PARAM_PSS_SALTLEN; + break; + case '\0': + return PIDX_MAC_PARAM_SALT; + } + } + break; + case 'v': + if (strcmp("e-parameters", s + 3) == 0) + return PIDX_ENCODER_PARAM_SAVE_PARAMETERS; + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'c': + switch(s[3]) { + default: + break; + case 'r': + if (strcmp("et", s + 4) == 0) + return PIDX_KDF_PARAM_SECRET; + break; + case 'u': + switch(s[4]) { + default: + break; + case 'r': + switch(s[5]) { + default: + break; + case 'i': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case 'y': + switch(s[8]) { + default: + break; + case '-': + switch(s[9]) { + default: + break; + case 'b': + if (strcmp("its", s + 10) == 0) + return PIDX_PKEY_PARAM_SECURITY_BITS; + break; + case 'c': + if (strcmp("hecks", s + 10) == 0) + return PIDX_PROV_PARAM_SECURITY_CHECKS; + } + } + } + } + } + } + } + break; + case 'e': + if (strcmp("d", s + 3) == 0) + return PIDX_PKEY_PARAM_SLH_DSA_SEED; + break; + case 'r': + if (strcmp("ial", s + 3) == 0) + return PIDX_STORE_PARAM_SERIAL; + break; + case 's': + if (strcmp("sion_id", s + 3) == 0) + return PIDX_KDF_PARAM_SSHKDF_SESSION_ID; + } + break; + case 'i': + switch(s[2]) { + default: + break; + case 'g': + switch(s[3]) { + default: + break; + case 'n': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'c': + if (strcmp("heck", s + 6) == 0) + return PIDX_PKEY_PARAM_FIPS_SIGN_CHECK; + break; + case 'x': + if (strcmp("931-pad-check", s + 6) == 0) + return PIDX_SIGNATURE_PARAM_FIPS_SIGN_X931_PAD_CHECK; + } + break; + case 'a': + switch(s[5]) { + default: + break; + case 't': + switch(s[6]) { + default: + break; + case 'u': + switch(s[7]) { + default: + break; + case 'r': + switch(s[8]) { + default: + break; + case 'e': + switch(s[9]) { + default: + break; + case '-': + if (strcmp("digest-check", s + 10) == 0) + return PIDX_PROV_PARAM_SIGNATURE_DIGEST_CHECK; + break; + case '\0': + return PIDX_SIGNATURE_PARAM_SIGNATURE; + } + } + } + } + } + } + } + break; + case 'z': + if (strcmp("e", s + 3) == 0) + return PIDX_MAC_PARAM_SIZE; + } + break; + case 'p': + if (strcmp("eed", s + 2) == 0) + return PIDX_CIPHER_PARAM_SPEED; + break; + case 's': + switch(s[2]) { + default: + break; + case 'h': + switch(s[3]) { + default: + break; + case 'k': + switch(s[4]) { + default: + break; + case 'd': + switch(s[5]) { + default: + break; + case 'f': + switch(s[6]) { + default: + break; + case '-': + switch(s[7]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 8) == 0) + return PIDX_PROV_PARAM_SSHKDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 8) == 0) + return PIDX_PROV_PARAM_SSHKDF_KEY_CHECK; + } + } + } + } + } + break; + case 'k': + switch(s[3]) { + default: + break; + case 'd': + switch(s[4]) { + default: + break; + case 'f': + switch(s[5]) { + default: + break; + case '-': + switch(s[6]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 7) == 0) + return PIDX_PROV_PARAM_SSKDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 7) == 0) + return PIDX_PROV_PARAM_SSKDF_KEY_CHECK; + } + } + } + } + break; + case 'l': + if (strcmp("3-ms", s + 3) == 0) + return PIDX_DIGEST_PARAM_SSL3_MS; + } + break; + case 't': + switch(s[2]) { + default: + break; + case '-': + switch(s[3]) { + default: + break; + case 'd': + if (strcmp("esc", s + 4) == 0) + return PIDX_PROV_PARAM_SELF_TEST_DESC; + break; + case 'p': + if (strcmp("hase", s + 4) == 0) + return PIDX_PROV_PARAM_SELF_TEST_PHASE; + break; + case 't': + if (strcmp("ype", s + 4) == 0) + return PIDX_PROV_PARAM_SELF_TEST_TYPE; + } + break; + case 'a': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case 'e': + switch(s[5]) { + default: + break; + case '\0': + return PIDX_RAND_PARAM_STATE; + } + break; + case 'u': + if (strcmp("s", s + 5) == 0) + return PIDX_PROV_PARAM_STATUS; + } + } + break; + case 'r': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case 'a': + if (strcmp("m_mac", s + 5) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_STREAM_MAC; + break; + case 'n': + if (strcmp("gth", s + 5) == 0) + return PIDX_RAND_PARAM_STRENGTH; + } + } + } + break; + case 'u': + switch(s[2]) { + default: + break; + case 'b': + if (strcmp("ject", s + 3) == 0) + return PIDX_STORE_PARAM_SUBJECT; + break; + case 'p': + switch(s[3]) { + default: + break; + case 'p': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'p': + switch(s[6]) { + default: + break; + case 'r': + if (strcmp("ivinfo", s + 7) == 0) + return PIDX_KDF_PARAM_X942_SUPP_PRIVINFO; + break; + case 'u': + if (strcmp("binfo", s + 7) == 0) + return PIDX_KDF_PARAM_X942_SUPP_PUBINFO; + } + } + } + } + } + } + break; + case 't': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'g': + switch(s[3]) { + default: + break; + case 'l': + if (strcmp("en", s + 4) == 0) + return PIDX_CIPHER_PARAM_AEAD_TAGLEN; + break; + case '\0': + return PIDX_CIPHER_PARAM_AEAD_TAG; + } + } + break; + case 'd': + if (strcmp("es-encrypt-disabled", s + 2) == 0) + return PIDX_PROV_PARAM_TDES_ENCRYPT_DISABLED; + break; + case 'e': + switch(s[2]) { + default: + break; + case 's': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case '-': + if (strcmp("entropy", s + 5) == 0) + return PIDX_SIGNATURE_PARAM_TEST_ENTROPY; + break; + case '_': + switch(s[5]) { + default: + break; + case 'e': + if (strcmp("ntropy", s + 6) == 0) + return PIDX_RAND_PARAM_TEST_ENTROPY; + break; + case 'n': + if (strcmp("once", s + 6) == 0) + return PIDX_RAND_PARAM_TEST_NONCE; + } + } + } + } + break; + case 'h': + if (strcmp("reads", s + 2) == 0) + return PIDX_KDF_PARAM_THREADS; + break; + case 'l': + switch(s[2]) { + default: + break; + case 's': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'c': + if (strcmp("lient-version", s + 5) == 0) + return PIDX_ASYM_CIPHER_PARAM_TLS_CLIENT_VERSION; + break; + case 'd': + if (strcmp("ata-size", s + 5) == 0) + return PIDX_MAC_PARAM_TLS_DATA_SIZE; + break; + case 'g': + switch(s[5]) { + default: + break; + case 'r': + switch(s[6]) { + default: + break; + case 'o': + switch(s[7]) { + default: + break; + case 'u': + switch(s[8]) { + default: + break; + case 'p': + switch(s[9]) { + default: + break; + case '-': + switch(s[10]) { + default: + break; + case 'a': + if (strcmp("lg", s + 11) == 0) + return PIDX_CAPABILITY_TLS_GROUP_ALG; + break; + case 'i': + switch(s[11]) { + default: + break; + case 'd': + switch(s[12]) { + default: + break; + case '\0': + return PIDX_CAPABILITY_TLS_GROUP_ID; + } + break; + case 's': + if (strcmp("-kem", s + 12) == 0) + return PIDX_CAPABILITY_TLS_GROUP_IS_KEM; + } + break; + case 'n': + switch(s[11]) { + default: + break; + case 'a': + switch(s[12]) { + default: + break; + case 'm': + switch(s[13]) { + default: + break; + case 'e': + switch(s[14]) { + default: + break; + case '-': + if (strcmp("internal", s + 15) == 0) + return PIDX_CAPABILITY_TLS_GROUP_NAME_INTERNAL; + break; + case '\0': + return PIDX_CAPABILITY_TLS_GROUP_NAME; + } + } + } + } + break; + case 's': + if (strcmp("ec-bits", s + 11) == 0) + return PIDX_CAPABILITY_TLS_GROUP_SECURITY_BITS; + } + } + } + } + } + } + break; + case 'm': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case 'c': + switch(s[7]) { + default: + break; + case '-': + if (strcmp("size", s + 8) == 0) + return PIDX_CIPHER_PARAM_TLS_MAC_SIZE; + break; + case '\0': + return PIDX_CIPHER_PARAM_TLS_MAC; + } + break; + case 'x': + switch(s[7]) { + default: + break; + case '-': + switch(s[8]) { + default: + break; + case 'd': + if (strcmp("tls", s + 9) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_MAX_DTLS; + break; + case 't': + if (strcmp("ls", s + 9) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_MAX_TLS; + } + } + } + break; + case 'i': + switch(s[6]) { + default: + break; + case 'n': + switch(s[7]) { + default: + break; + case '-': + switch(s[8]) { + default: + break; + case 'd': + if (strcmp("tls", s + 9) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_MIN_DTLS; + break; + case 't': + if (strcmp("ls", s + 9) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_MIN_TLS; + } + } + } + break; + case 'u': + if (strcmp("lti", s + 6) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK; + } + break; + case 'n': + if (strcmp("egotiated-version", s + 5) == 0) + return PIDX_ASYM_CIPHER_PARAM_TLS_NEGOTIATED_VERSION; + break; + case 's': + switch(s[5]) { + default: + break; + case 'i': + switch(s[6]) { + default: + break; + case 'g': + switch(s[7]) { + default: + break; + case 'a': + switch(s[8]) { + default: + break; + case 'l': + switch(s[9]) { + default: + break; + case 'g': + switch(s[10]) { + default: + break; + case '-': + switch(s[11]) { + default: + break; + case 'c': + if (strcmp("ode-point", s + 12) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_CODE_POINT; + break; + case 'h': + switch(s[12]) { + default: + break; + case 'a': + switch(s[13]) { + default: + break; + case 's': + switch(s[14]) { + default: + break; + case 'h': + switch(s[15]) { + default: + break; + case '-': + switch(s[16]) { + default: + break; + case 'n': + if (strcmp("ame", s + 17) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_HASH_NAME; + break; + case 'o': + if (strcmp("id", s + 17) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_HASH_OID; + } + } + } + } + } + break; + case 'i': + if (strcmp("ana-name", s + 12) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_IANA_NAME; + break; + case 'k': + switch(s[12]) { + default: + break; + case 'e': + switch(s[13]) { + default: + break; + case 'y': + switch(s[14]) { + default: + break; + case 't': + switch(s[15]) { + default: + break; + case 'y': + switch(s[16]) { + default: + break; + case 'p': + switch(s[17]) { + default: + break; + case 'e': + switch(s[18]) { + default: + break; + case '-': + if (strcmp("oid", s + 19) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_KEYTYPE_OID; + break; + case '\0': + return PIDX_CAPABILITY_TLS_SIGALG_KEYTYPE; + } + } + } + } + } + } + } + break; + case 'n': + if (strcmp("ame", s + 12) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_NAME; + break; + case 'o': + if (strcmp("id", s + 12) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_OID; + break; + case 's': + switch(s[12]) { + default: + break; + case 'e': + if (strcmp("c-bits", s + 13) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_SECURITY_BITS; + break; + case 'i': + switch(s[13]) { + default: + break; + case 'g': + switch(s[14]) { + default: + break; + case '-': + switch(s[15]) { + default: + break; + case 'n': + if (strcmp("ame", s + 16) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_SIG_NAME; + break; + case 'o': + if (strcmp("id", s + 16) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_SIG_OID; + } + } + } + } + } + } + } + } + } + } + } + break; + case 'v': + if (strcmp("ersion", s + 5) == 0) + return PIDX_CIPHER_PARAM_TLS_VERSION; + } + break; + case '1': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'p': + switch(s[6]) { + default: + break; + case 'r': + switch(s[7]) { + default: + break; + case 'f': + switch(s[8]) { + default: + break; + case '-': + switch(s[9]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 10) == 0) + return PIDX_PROV_PARAM_TLS1_PRF_DIGEST_CHECK; + break; + case 'e': + if (strcmp("ms-check", s + 10) == 0) + return PIDX_PROV_PARAM_TLS1_PRF_EMS_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 10) == 0) + return PIDX_PROV_PARAM_TLS1_PRF_KEY_CHECK; + } + } + } + } + } + break; + case '3': + switch(s[5]) { + default: + break; + case '-': + switch(s[6]) { + default: + break; + case 'k': + switch(s[7]) { + default: + break; + case 'd': + switch(s[8]) { + default: + break; + case 'f': + switch(s[9]) { + default: + break; + case '-': + switch(s[10]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 11) == 0) + return PIDX_PROV_PARAM_TLS13_KDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 11) == 0) + return PIDX_PROV_PARAM_TLS13_KDF_KEY_CHECK; + } + } + } + } + } + } + break; + case 'm': + switch(s[5]) { + default: + break; + case 'u': + switch(s[6]) { + default: + break; + case 'l': + switch(s[7]) { + default: + break; + case 't': + switch(s[8]) { + default: + break; + case 'i': + switch(s[9]) { + default: + break; + case '_': + switch(s[10]) { + default: + break; + case 'a': + switch(s[11]) { + default: + break; + case 'a': + switch(s[12]) { + default: + break; + case 'd': + switch(s[13]) { + default: + break; + case 'p': + if (strcmp("acklen", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD_PACKLEN; + break; + case '\0': + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD; + } + } + } + break; + case 'e': + switch(s[11]) { + default: + break; + case 'n': + switch(s[12]) { + default: + break; + case 'c': + switch(s[13]) { + default: + break; + case 'i': + if (strcmp("n", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_IN; + break; + case 'l': + if (strcmp("en", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_LEN; + break; + case '\0': + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC; + } + } + } + break; + case 'i': + if (strcmp("nterleave", s + 11) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_INTERLEAVE; + break; + case 'm': + switch(s[11]) { + default: + break; + case 'a': + switch(s[12]) { + default: + break; + case 'x': + switch(s[13]) { + default: + break; + case 'b': + if (strcmp("ufsz", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_BUFSIZE; + break; + case 's': + if (strcmp("ndfrag", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_SEND_FRAGMENT; + } + } + } + } + } + } + } + } + } + } + break; + case 'a': + switch(s[4]) { + default: + break; + case 'a': + switch(s[5]) { + default: + break; + case 'd': + switch(s[6]) { + default: + break; + case 'p': + if (strcmp("ad", s + 7) == 0) + return PIDX_CIPHER_PARAM_AEAD_TLS1_AAD_PAD; + break; + case '\0': + return PIDX_CIPHER_PARAM_AEAD_TLS1_AAD; + } + } + } + break; + case 'i': + switch(s[4]) { + default: + break; + case 'v': + switch(s[5]) { + default: + break; + case 'f': + if (strcmp("ixed", s + 6) == 0) + return PIDX_CIPHER_PARAM_AEAD_TLS1_IV_FIXED; + break; + case 'g': + if (strcmp("en", s + 6) == 0) + return PIDX_CIPHER_PARAM_AEAD_TLS1_GET_IV_GEN; + break; + case 'i': + if (strcmp("nv", s + 6) == 0) + return PIDX_CIPHER_PARAM_AEAD_TLS1_SET_IV_INV; + } + } + break; + case 't': + if (strcmp("ree", s + 4) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_TLSTREE; + } + } + break; + case 'p': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_TP_BASIS; + } + break; + case 'y': + if (strcmp("pe", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_TYPE; + } + break; + case 'u': + switch(s[1]) { + default: + break; + case 'k': + if (strcmp("m", s + 2) == 0) + return PIDX_KDF_PARAM_UKM; + break; + case 'p': + if (strcmp("dated-iv", s + 2) == 0) + return PIDX_CIPHER_PARAM_UPDATED_IV; + break; + case 's': + switch(s[2]) { + default: + break; + case 'e': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'b': + if (strcmp("its", s + 5) == 0) + return PIDX_CIPHER_PARAM_USE_BITS; + break; + case 'c': + if (strcmp("ofactor-flag", s + 5) == 0) + return PIDX_PKEY_PARAM_USE_COFACTOR_FLAG; + break; + case 'k': + if (strcmp("eybits", s + 5) == 0) + return PIDX_KDF_PARAM_X942_USE_KEYBITS; + break; + case 'l': + switch(s[5]) { + default: + break; + case '\0': + return PIDX_KDF_PARAM_KBKDF_USE_L; + } + break; + case 's': + if (strcmp("eparator", s + 5) == 0) + return PIDX_KDF_PARAM_KBKDF_USE_SEPARATOR; + } + break; + case '_': + switch(s[4]) { + default: + break; + case 'd': + if (strcmp("erivation_function", s + 5) == 0) + return PIDX_DRBG_PARAM_USE_DF; + break; + case 'e': + if (strcmp("tm", s + 5) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_USE_ETM; + } + } + } + } + break; + case 'v': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'l': + switch(s[3]) { + default: + break; + case 'i': + switch(s[4]) { + default: + break; + case 'd': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case 'e': + switch(s[8]) { + default: + break; + case '-': + switch(s[9]) { + default: + break; + case 'g': + switch(s[10]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_VALIDATE_G; + } + break; + case 'l': + if (strcmp("egacy", s + 10) == 0) + return PIDX_PKEY_PARAM_FFC_VALIDATE_LEGACY; + break; + case 'p': + if (strcmp("q", s + 10) == 0) + return PIDX_PKEY_PARAM_FFC_VALIDATE_PQ; + } + } + } + } + } + } + } + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'r': + switch(s[3]) { + default: + break; + case 'i': + if (strcmp("fy-message", s + 4) == 0) + return PIDX_SIGNATURE_PARAM_FIPS_VERIFY_MESSAGE; + break; + case 's': + if (strcmp("ion", s + 4) == 0) + return PIDX_PROV_PARAM_VERSION; + } + } + } + break; + case 'x': + switch(s[1]) { + default: + break; + case '9': + switch(s[2]) { + default: + break; + case '4': + if (strcmp("2kdf-key-check", s + 3) == 0) + return PIDX_PROV_PARAM_X942KDF_KEY_CHECK; + break; + case '6': + switch(s[3]) { + default: + break; + case '3': + switch(s[4]) { + default: + break; + case 'k': + switch(s[5]) { + default: + break; + case 'd': + switch(s[6]) { + default: + break; + case 'f': + switch(s[7]) { + default: + break; + case '-': + switch(s[8]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 9) == 0) + return PIDX_PROV_PARAM_X963KDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 9) == 0) + return PIDX_PROV_PARAM_X963KDF_KEY_CHECK; + } + } + } + } + } + } + } + break; + case 'c': + if (strcmp("ghash", s + 2) == 0) + return PIDX_KDF_PARAM_SSHKDF_XCGHASH; + break; + case 'o': + switch(s[2]) { + default: + break; + case 'f': + switch(s[3]) { + default: + break; + case 'l': + if (strcmp("en", s + 4) == 0) + return PIDX_DIGEST_PARAM_XOFLEN; + break; + case '\0': + return PIDX_MAC_PARAM_XOF; + } + } + break; + case 'p': + switch(s[2]) { + default: + break; + case '1': + switch(s[3]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XP1; + } + break; + case '2': + switch(s[3]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XP2; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XP; + } + break; + case 'q': + switch(s[2]) { + default: + break; + case '1': + switch(s[3]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XQ1; + } + break; + case '2': + switch(s[3]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XQ2; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XQ; + } + break; + case 't': + if (strcmp("s_standard", s + 2) == 0) + return PIDX_CIPHER_PARAM_XTS_STANDARD; + } + } + return -1; +} + +/* End of TRIE */ diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/no-asm/include/internal/param_names.h b/deps/openssl/config/archs/darwin64-arm64-cc/no-asm/include/internal/param_names.h new file mode 100644 index 00000000000000..0a0404a57e82b9 --- /dev/null +++ b/deps/openssl/config/archs/darwin64-arm64-cc/no-asm/include/internal/param_names.h @@ -0,0 +1,469 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from include/internal/param_names.h.in + * + * Copyright 2023 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + +int ossl_param_find_pidx(const char *s); + +/* Parameter name definitions - generated by util/perl/OpenSSL/paramnames.pm */ +#define NUM_PIDX 346 + +#define PIDX_ALG_PARAM_ALGORITHM_ID 0 +#define PIDX_ALG_PARAM_ALGORITHM_ID_PARAMS 1 +#define PIDX_ALG_PARAM_CIPHER 2 +#define PIDX_ALG_PARAM_DIGEST 3 +#define PIDX_ALG_PARAM_ENGINE 4 +#define PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR 5 +#define PIDX_ALG_PARAM_MAC 6 +#define PIDX_ALG_PARAM_PROPERTIES 7 +#define PIDX_ASYM_CIPHER_PARAM_DIGEST PIDX_PKEY_PARAM_DIGEST +#define PIDX_ASYM_CIPHER_PARAM_ENGINE PIDX_PKEY_PARAM_ENGINE +#define PIDX_ASYM_CIPHER_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_ASYM_CIPHER_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_ASYM_CIPHER_PARAM_FIPS_RSA_PKCS15_PAD_DISABLED PIDX_PROV_PARAM_RSA_PKCS15_PAD_DISABLED +#define PIDX_ASYM_CIPHER_PARAM_IMPLICIT_REJECTION 8 +#define PIDX_ASYM_CIPHER_PARAM_MGF1_DIGEST PIDX_PKEY_PARAM_MGF1_DIGEST +#define PIDX_ASYM_CIPHER_PARAM_MGF1_DIGEST_PROPS PIDX_PKEY_PARAM_MGF1_PROPERTIES +#define PIDX_ASYM_CIPHER_PARAM_OAEP_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_ASYM_CIPHER_PARAM_OAEP_DIGEST_PROPS 9 +#define PIDX_ASYM_CIPHER_PARAM_OAEP_LABEL 10 +#define PIDX_ASYM_CIPHER_PARAM_PAD_MODE PIDX_PKEY_PARAM_PAD_MODE +#define PIDX_ASYM_CIPHER_PARAM_PROPERTIES PIDX_PKEY_PARAM_PROPERTIES +#define PIDX_ASYM_CIPHER_PARAM_TLS_CLIENT_VERSION 11 +#define PIDX_ASYM_CIPHER_PARAM_TLS_NEGOTIATED_VERSION 12 +#define PIDX_CAPABILITY_TLS_GROUP_ALG 13 +#define PIDX_CAPABILITY_TLS_GROUP_ID 14 +#define PIDX_CAPABILITY_TLS_GROUP_IS_KEM 15 +#define PIDX_CAPABILITY_TLS_GROUP_MAX_DTLS 16 +#define PIDX_CAPABILITY_TLS_GROUP_MAX_TLS 17 +#define PIDX_CAPABILITY_TLS_GROUP_MIN_DTLS 18 +#define PIDX_CAPABILITY_TLS_GROUP_MIN_TLS 19 +#define PIDX_CAPABILITY_TLS_GROUP_NAME 20 +#define PIDX_CAPABILITY_TLS_GROUP_NAME_INTERNAL 21 +#define PIDX_CAPABILITY_TLS_GROUP_SECURITY_BITS 22 +#define PIDX_CAPABILITY_TLS_SIGALG_CODE_POINT 23 +#define PIDX_CAPABILITY_TLS_SIGALG_HASH_NAME 24 +#define PIDX_CAPABILITY_TLS_SIGALG_HASH_OID 25 +#define PIDX_CAPABILITY_TLS_SIGALG_IANA_NAME 26 +#define PIDX_CAPABILITY_TLS_SIGALG_KEYTYPE 27 +#define PIDX_CAPABILITY_TLS_SIGALG_KEYTYPE_OID 28 +#define PIDX_CAPABILITY_TLS_SIGALG_MAX_DTLS 16 +#define PIDX_CAPABILITY_TLS_SIGALG_MAX_TLS 17 +#define PIDX_CAPABILITY_TLS_SIGALG_MIN_DTLS 18 +#define PIDX_CAPABILITY_TLS_SIGALG_MIN_TLS 19 +#define PIDX_CAPABILITY_TLS_SIGALG_NAME 29 +#define PIDX_CAPABILITY_TLS_SIGALG_OID 30 +#define PIDX_CAPABILITY_TLS_SIGALG_SECURITY_BITS 31 +#define PIDX_CAPABILITY_TLS_SIGALG_SIG_NAME 32 +#define PIDX_CAPABILITY_TLS_SIGALG_SIG_OID 33 +#define PIDX_CIPHER_PARAM_AEAD 34 +#define PIDX_CIPHER_PARAM_AEAD_IVLEN PIDX_CIPHER_PARAM_IVLEN +#define PIDX_CIPHER_PARAM_AEAD_IV_GENERATED 35 +#define PIDX_CIPHER_PARAM_AEAD_MAC_KEY 36 +#define PIDX_CIPHER_PARAM_AEAD_TAG 37 +#define PIDX_CIPHER_PARAM_AEAD_TAGLEN 38 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_AAD 39 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_AAD_PAD 40 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_GET_IV_GEN 41 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_IV_FIXED 42 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_SET_IV_INV 43 +#define PIDX_CIPHER_PARAM_ALGORITHM_ID PIDX_ALG_PARAM_ALGORITHM_ID +#define PIDX_CIPHER_PARAM_ALGORITHM_ID_PARAMS PIDX_ALG_PARAM_ALGORITHM_ID_PARAMS +#define PIDX_CIPHER_PARAM_ALGORITHM_ID_PARAMS_OLD 44 +#define PIDX_CIPHER_PARAM_BLOCK_SIZE 45 +#define PIDX_CIPHER_PARAM_CTS 46 +#define PIDX_CIPHER_PARAM_CTS_MODE 47 +#define PIDX_CIPHER_PARAM_CUSTOM_IV 48 +#define PIDX_CIPHER_PARAM_DECRYPT_ONLY 49 +#define PIDX_CIPHER_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_CIPHER_PARAM_FIPS_ENCRYPT_CHECK 50 +#define PIDX_CIPHER_PARAM_HAS_RAND_KEY 51 +#define PIDX_CIPHER_PARAM_IV 52 +#define PIDX_CIPHER_PARAM_IVLEN 53 +#define PIDX_CIPHER_PARAM_KEYLEN 54 +#define PIDX_CIPHER_PARAM_MODE 55 +#define PIDX_CIPHER_PARAM_NUM 56 +#define PIDX_CIPHER_PARAM_PADDING 57 +#define PIDX_CIPHER_PARAM_PIPELINE_AEAD_TAG 58 +#define PIDX_CIPHER_PARAM_RANDOM_KEY 59 +#define PIDX_CIPHER_PARAM_RC2_KEYBITS 60 +#define PIDX_CIPHER_PARAM_ROUNDS 61 +#define PIDX_CIPHER_PARAM_SPEED 62 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK 63 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD 64 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD_PACKLEN 65 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC 66 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_IN 67 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_LEN 68 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_INTERLEAVE 69 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_BUFSIZE 70 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_SEND_FRAGMENT 71 +#define PIDX_CIPHER_PARAM_TLS_MAC 72 +#define PIDX_CIPHER_PARAM_TLS_MAC_SIZE 73 +#define PIDX_CIPHER_PARAM_TLS_VERSION 74 +#define PIDX_CIPHER_PARAM_UPDATED_IV 75 +#define PIDX_CIPHER_PARAM_USE_BITS 76 +#define PIDX_CIPHER_PARAM_XTS_STANDARD 77 +#define PIDX_DECODER_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_DIGEST_PARAM_ALGID_ABSENT 78 +#define PIDX_DIGEST_PARAM_BLOCK_SIZE 45 +#define PIDX_DIGEST_PARAM_MICALG 79 +#define PIDX_DIGEST_PARAM_PAD_TYPE 80 +#define PIDX_DIGEST_PARAM_SIZE 81 +#define PIDX_DIGEST_PARAM_SSL3_MS 82 +#define PIDX_DIGEST_PARAM_XOF 83 +#define PIDX_DIGEST_PARAM_XOFLEN 84 +#define PIDX_DRBG_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_DRBG_PARAM_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_DRBG_PARAM_ENTROPY_REQUIRED 85 +#define PIDX_DRBG_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_DRBG_PARAM_FIPS_DIGEST_CHECK PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK +#define PIDX_DRBG_PARAM_MAC PIDX_ALG_PARAM_MAC +#define PIDX_DRBG_PARAM_MAX_ADINLEN 86 +#define PIDX_DRBG_PARAM_MAX_ENTROPYLEN 87 +#define PIDX_DRBG_PARAM_MAX_LENGTH 88 +#define PIDX_DRBG_PARAM_MAX_NONCELEN 89 +#define PIDX_DRBG_PARAM_MAX_PERSLEN 90 +#define PIDX_DRBG_PARAM_MIN_ENTROPYLEN 91 +#define PIDX_DRBG_PARAM_MIN_LENGTH 92 +#define PIDX_DRBG_PARAM_MIN_NONCELEN 93 +#define PIDX_DRBG_PARAM_PREDICTION_RESISTANCE 94 +#define PIDX_DRBG_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_DRBG_PARAM_RANDOM_DATA 95 +#define PIDX_DRBG_PARAM_RESEED_COUNTER 96 +#define PIDX_DRBG_PARAM_RESEED_REQUESTS 97 +#define PIDX_DRBG_PARAM_RESEED_TIME 98 +#define PIDX_DRBG_PARAM_RESEED_TIME_INTERVAL 99 +#define PIDX_DRBG_PARAM_SIZE 81 +#define PIDX_DRBG_PARAM_USE_DF 100 +#define PIDX_ENCODER_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_ENCODER_PARAM_ENCRYPT_LEVEL 101 +#define PIDX_ENCODER_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_ENCODER_PARAM_SAVE_PARAMETERS 102 +#define PIDX_EXCHANGE_PARAM_EC_ECDH_COFACTOR_MODE 103 +#define PIDX_EXCHANGE_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_EXCHANGE_PARAM_FIPS_DIGEST_CHECK PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK +#define PIDX_EXCHANGE_PARAM_FIPS_ECDH_COFACTOR_CHECK PIDX_PROV_PARAM_ECDH_COFACTOR_CHECK +#define PIDX_EXCHANGE_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_EXCHANGE_PARAM_KDF_DIGEST 104 +#define PIDX_EXCHANGE_PARAM_KDF_DIGEST_PROPS 105 +#define PIDX_EXCHANGE_PARAM_KDF_OUTLEN 106 +#define PIDX_EXCHANGE_PARAM_KDF_TYPE 107 +#define PIDX_EXCHANGE_PARAM_KDF_UKM 108 +#define PIDX_EXCHANGE_PARAM_PAD 109 +#define PIDX_GEN_PARAM_ITERATION 110 +#define PIDX_GEN_PARAM_POTENTIAL 111 +#define PIDX_KDF_PARAM_ARGON2_AD 112 +#define PIDX_KDF_PARAM_ARGON2_LANES 113 +#define PIDX_KDF_PARAM_ARGON2_MEMCOST 114 +#define PIDX_KDF_PARAM_ARGON2_VERSION 115 +#define PIDX_KDF_PARAM_CEK_ALG 116 +#define PIDX_KDF_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_KDF_PARAM_CONSTANT 117 +#define PIDX_KDF_PARAM_DATA 118 +#define PIDX_KDF_PARAM_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_KDF_PARAM_EARLY_CLEAN 119 +#define PIDX_KDF_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_KDF_PARAM_FIPS_DIGEST_CHECK PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK +#define PIDX_KDF_PARAM_FIPS_EMS_CHECK 120 +#define PIDX_KDF_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_KDF_PARAM_HMACDRBG_ENTROPY 121 +#define PIDX_KDF_PARAM_HMACDRBG_NONCE 122 +#define PIDX_KDF_PARAM_INFO 123 +#define PIDX_KDF_PARAM_ITER 124 +#define PIDX_KDF_PARAM_KBKDF_R 125 +#define PIDX_KDF_PARAM_KBKDF_USE_L 126 +#define PIDX_KDF_PARAM_KBKDF_USE_SEPARATOR 127 +#define PIDX_KDF_PARAM_KEY 128 +#define PIDX_KDF_PARAM_LABEL 129 +#define PIDX_KDF_PARAM_MAC PIDX_ALG_PARAM_MAC +#define PIDX_KDF_PARAM_MAC_SIZE 130 +#define PIDX_KDF_PARAM_MODE 55 +#define PIDX_KDF_PARAM_PASSWORD 131 +#define PIDX_KDF_PARAM_PKCS12_ID 132 +#define PIDX_KDF_PARAM_PKCS5 133 +#define PIDX_KDF_PARAM_PREFIX 134 +#define PIDX_KDF_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_KDF_PARAM_SALT 135 +#define PIDX_KDF_PARAM_SCRYPT_MAXMEM 136 +#define PIDX_KDF_PARAM_SCRYPT_N 137 +#define PIDX_KDF_PARAM_SCRYPT_P 138 +#define PIDX_KDF_PARAM_SCRYPT_R 125 +#define PIDX_KDF_PARAM_SECRET 139 +#define PIDX_KDF_PARAM_SEED 140 +#define PIDX_KDF_PARAM_SIZE 81 +#define PIDX_KDF_PARAM_SSHKDF_SESSION_ID 141 +#define PIDX_KDF_PARAM_SSHKDF_TYPE 142 +#define PIDX_KDF_PARAM_SSHKDF_XCGHASH 143 +#define PIDX_KDF_PARAM_THREADS 144 +#define PIDX_KDF_PARAM_UKM 145 +#define PIDX_KDF_PARAM_X942_ACVPINFO 146 +#define PIDX_KDF_PARAM_X942_PARTYUINFO 147 +#define PIDX_KDF_PARAM_X942_PARTYVINFO 148 +#define PIDX_KDF_PARAM_X942_SUPP_PRIVINFO 149 +#define PIDX_KDF_PARAM_X942_SUPP_PUBINFO 150 +#define PIDX_KDF_PARAM_X942_USE_KEYBITS 151 +#define PIDX_KEM_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_KEM_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_KEM_PARAM_IKME 152 +#define PIDX_KEM_PARAM_OPERATION 153 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_BLOCK_PADDING 154 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_HS_PADDING 155 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_MAX_EARLY_DATA 156 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_MAX_FRAG_LEN 157 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_MODE 55 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_OPTIONS 158 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_READ_AHEAD 159 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_STREAM_MAC 160 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_TLSTREE 161 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_USE_ETM 162 +#define PIDX_LIBSSL_RECORD_LAYER_READ_BUFFER_LEN 163 +#define PIDX_MAC_PARAM_BLOCK_SIZE 164 +#define PIDX_MAC_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_MAC_PARAM_CUSTOM 165 +#define PIDX_MAC_PARAM_C_ROUNDS 166 +#define PIDX_MAC_PARAM_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_MAC_PARAM_DIGEST_NOINIT 167 +#define PIDX_MAC_PARAM_DIGEST_ONESHOT 168 +#define PIDX_MAC_PARAM_D_ROUNDS 169 +#define PIDX_MAC_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_MAC_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_MAC_PARAM_FIPS_NO_SHORT_MAC PIDX_PROV_PARAM_NO_SHORT_MAC +#define PIDX_MAC_PARAM_IV 52 +#define PIDX_MAC_PARAM_KEY 128 +#define PIDX_MAC_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_MAC_PARAM_SALT 135 +#define PIDX_MAC_PARAM_SIZE 81 +#define PIDX_MAC_PARAM_TLS_DATA_SIZE 170 +#define PIDX_MAC_PARAM_XOF 83 +#define PIDX_OBJECT_PARAM_DATA 118 +#define PIDX_OBJECT_PARAM_DATA_STRUCTURE 171 +#define PIDX_OBJECT_PARAM_DATA_TYPE 172 +#define PIDX_OBJECT_PARAM_DESC 173 +#define PIDX_OBJECT_PARAM_INPUT_TYPE 174 +#define PIDX_OBJECT_PARAM_REFERENCE 175 +#define PIDX_OBJECT_PARAM_TYPE 142 +#define PIDX_PASSPHRASE_PARAM_INFO 123 +#define PIDX_PKEY_PARAM_ALGORITHM_ID PIDX_ALG_PARAM_ALGORITHM_ID +#define PIDX_PKEY_PARAM_ALGORITHM_ID_PARAMS PIDX_ALG_PARAM_ALGORITHM_ID_PARAMS +#define PIDX_PKEY_PARAM_BITS 176 +#define PIDX_PKEY_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_PKEY_PARAM_DEFAULT_DIGEST 177 +#define PIDX_PKEY_PARAM_DHKEM_IKM 178 +#define PIDX_PKEY_PARAM_DH_GENERATOR 179 +#define PIDX_PKEY_PARAM_DH_PRIV_LEN 180 +#define PIDX_PKEY_PARAM_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_PKEY_PARAM_DIGEST_SIZE 181 +#define PIDX_PKEY_PARAM_DIST_ID 182 +#define PIDX_PKEY_PARAM_EC_A 183 +#define PIDX_PKEY_PARAM_EC_B 184 +#define PIDX_PKEY_PARAM_EC_CHAR2_M 185 +#define PIDX_PKEY_PARAM_EC_CHAR2_PP_K1 186 +#define PIDX_PKEY_PARAM_EC_CHAR2_PP_K2 187 +#define PIDX_PKEY_PARAM_EC_CHAR2_PP_K3 188 +#define PIDX_PKEY_PARAM_EC_CHAR2_TP_BASIS 189 +#define PIDX_PKEY_PARAM_EC_CHAR2_TYPE 190 +#define PIDX_PKEY_PARAM_EC_COFACTOR 191 +#define PIDX_PKEY_PARAM_EC_DECODED_FROM_EXPLICIT_PARAMS 192 +#define PIDX_PKEY_PARAM_EC_ENCODING 193 +#define PIDX_PKEY_PARAM_EC_FIELD_TYPE 194 +#define PIDX_PKEY_PARAM_EC_GENERATOR 195 +#define PIDX_PKEY_PARAM_EC_GROUP_CHECK_TYPE 196 +#define PIDX_PKEY_PARAM_EC_INCLUDE_PUBLIC 197 +#define PIDX_PKEY_PARAM_EC_ORDER 198 +#define PIDX_PKEY_PARAM_EC_P 138 +#define PIDX_PKEY_PARAM_EC_POINT_CONVERSION_FORMAT 199 +#define PIDX_PKEY_PARAM_EC_PUB_X 200 +#define PIDX_PKEY_PARAM_EC_PUB_Y 201 +#define PIDX_PKEY_PARAM_EC_SEED 140 +#define PIDX_PKEY_PARAM_ENCODED_PUBLIC_KEY 202 +#define PIDX_PKEY_PARAM_ENGINE PIDX_ALG_PARAM_ENGINE +#define PIDX_PKEY_PARAM_FFC_COFACTOR 203 +#define PIDX_PKEY_PARAM_FFC_DIGEST PIDX_PKEY_PARAM_DIGEST +#define PIDX_PKEY_PARAM_FFC_DIGEST_PROPS PIDX_PKEY_PARAM_PROPERTIES +#define PIDX_PKEY_PARAM_FFC_G 204 +#define PIDX_PKEY_PARAM_FFC_GINDEX 205 +#define PIDX_PKEY_PARAM_FFC_H 206 +#define PIDX_PKEY_PARAM_FFC_P 138 +#define PIDX_PKEY_PARAM_FFC_PBITS 207 +#define PIDX_PKEY_PARAM_FFC_PCOUNTER 208 +#define PIDX_PKEY_PARAM_FFC_Q 209 +#define PIDX_PKEY_PARAM_FFC_QBITS 210 +#define PIDX_PKEY_PARAM_FFC_SEED 140 +#define PIDX_PKEY_PARAM_FFC_TYPE 142 +#define PIDX_PKEY_PARAM_FFC_VALIDATE_G 211 +#define PIDX_PKEY_PARAM_FFC_VALIDATE_LEGACY 212 +#define PIDX_PKEY_PARAM_FFC_VALIDATE_PQ 213 +#define PIDX_PKEY_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK 214 +#define PIDX_PKEY_PARAM_FIPS_KEY_CHECK 215 +#define PIDX_PKEY_PARAM_FIPS_SIGN_CHECK 216 +#define PIDX_PKEY_PARAM_GROUP_NAME 217 +#define PIDX_PKEY_PARAM_IMPLICIT_REJECTION 8 +#define PIDX_PKEY_PARAM_MANDATORY_DIGEST 218 +#define PIDX_PKEY_PARAM_MASKGENFUNC 219 +#define PIDX_PKEY_PARAM_MAX_SIZE 220 +#define PIDX_PKEY_PARAM_MGF1_DIGEST 221 +#define PIDX_PKEY_PARAM_MGF1_PROPERTIES 222 +#define PIDX_PKEY_PARAM_ML_DSA_INPUT_FORMATS 223 +#define PIDX_PKEY_PARAM_ML_DSA_OUTPUT_FORMATS 224 +#define PIDX_PKEY_PARAM_ML_DSA_PREFER_SEED 225 +#define PIDX_PKEY_PARAM_ML_DSA_RETAIN_SEED 226 +#define PIDX_PKEY_PARAM_ML_DSA_SEED 140 +#define PIDX_PKEY_PARAM_ML_KEM_IMPORT_PCT_TYPE 227 +#define PIDX_PKEY_PARAM_ML_KEM_INPUT_FORMATS 228 +#define PIDX_PKEY_PARAM_ML_KEM_OUTPUT_FORMATS 229 +#define PIDX_PKEY_PARAM_ML_KEM_PREFER_SEED 230 +#define PIDX_PKEY_PARAM_ML_KEM_RETAIN_SEED 231 +#define PIDX_PKEY_PARAM_ML_KEM_SEED 140 +#define PIDX_PKEY_PARAM_PAD_MODE 232 +#define PIDX_PKEY_PARAM_PRIV_KEY 233 +#define PIDX_PKEY_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_PKEY_PARAM_PUB_KEY 234 +#define PIDX_PKEY_PARAM_RSA_BITS PIDX_PKEY_PARAM_BITS +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT 235 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT1 236 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT2 237 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT3 238 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT4 239 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT5 240 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT6 241 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT7 242 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT8 243 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT9 244 +#define PIDX_PKEY_PARAM_RSA_D 245 +#define PIDX_PKEY_PARAM_RSA_DERIVE_FROM_PQ 246 +#define PIDX_PKEY_PARAM_RSA_DIGEST PIDX_PKEY_PARAM_DIGEST +#define PIDX_PKEY_PARAM_RSA_DIGEST_PROPS PIDX_PKEY_PARAM_PROPERTIES +#define PIDX_PKEY_PARAM_RSA_E 247 +#define PIDX_PKEY_PARAM_RSA_EXPONENT 248 +#define PIDX_PKEY_PARAM_RSA_EXPONENT1 249 +#define PIDX_PKEY_PARAM_RSA_EXPONENT10 250 +#define PIDX_PKEY_PARAM_RSA_EXPONENT2 251 +#define PIDX_PKEY_PARAM_RSA_EXPONENT3 252 +#define PIDX_PKEY_PARAM_RSA_EXPONENT4 253 +#define PIDX_PKEY_PARAM_RSA_EXPONENT5 254 +#define PIDX_PKEY_PARAM_RSA_EXPONENT6 255 +#define PIDX_PKEY_PARAM_RSA_EXPONENT7 256 +#define PIDX_PKEY_PARAM_RSA_EXPONENT8 257 +#define PIDX_PKEY_PARAM_RSA_EXPONENT9 258 +#define PIDX_PKEY_PARAM_RSA_FACTOR 259 +#define PIDX_PKEY_PARAM_RSA_FACTOR1 260 +#define PIDX_PKEY_PARAM_RSA_FACTOR10 261 +#define PIDX_PKEY_PARAM_RSA_FACTOR2 262 +#define PIDX_PKEY_PARAM_RSA_FACTOR3 263 +#define PIDX_PKEY_PARAM_RSA_FACTOR4 264 +#define PIDX_PKEY_PARAM_RSA_FACTOR5 265 +#define PIDX_PKEY_PARAM_RSA_FACTOR6 266 +#define PIDX_PKEY_PARAM_RSA_FACTOR7 267 +#define PIDX_PKEY_PARAM_RSA_FACTOR8 268 +#define PIDX_PKEY_PARAM_RSA_FACTOR9 269 +#define PIDX_PKEY_PARAM_RSA_MASKGENFUNC PIDX_PKEY_PARAM_MASKGENFUNC +#define PIDX_PKEY_PARAM_RSA_MGF1_DIGEST PIDX_PKEY_PARAM_MGF1_DIGEST +#define PIDX_PKEY_PARAM_RSA_N 137 +#define PIDX_PKEY_PARAM_RSA_PRIMES 270 +#define PIDX_PKEY_PARAM_RSA_PSS_SALTLEN 271 +#define PIDX_PKEY_PARAM_RSA_TEST_P1 272 +#define PIDX_PKEY_PARAM_RSA_TEST_P2 273 +#define PIDX_PKEY_PARAM_RSA_TEST_Q1 274 +#define PIDX_PKEY_PARAM_RSA_TEST_Q2 275 +#define PIDX_PKEY_PARAM_RSA_TEST_XP 276 +#define PIDX_PKEY_PARAM_RSA_TEST_XP1 277 +#define PIDX_PKEY_PARAM_RSA_TEST_XP2 278 +#define PIDX_PKEY_PARAM_RSA_TEST_XQ 279 +#define PIDX_PKEY_PARAM_RSA_TEST_XQ1 280 +#define PIDX_PKEY_PARAM_RSA_TEST_XQ2 281 +#define PIDX_PKEY_PARAM_SECURITY_BITS 282 +#define PIDX_PKEY_PARAM_SLH_DSA_SEED 140 +#define PIDX_PKEY_PARAM_USE_COFACTOR_ECDH PIDX_PKEY_PARAM_USE_COFACTOR_FLAG +#define PIDX_PKEY_PARAM_USE_COFACTOR_FLAG 283 +#define PIDX_PROV_PARAM_BUILDINFO 284 +#define PIDX_PROV_PARAM_CORE_MODULE_FILENAME 285 +#define PIDX_PROV_PARAM_CORE_PROV_NAME 286 +#define PIDX_PROV_PARAM_CORE_VERSION 287 +#define PIDX_PROV_PARAM_DRBG_TRUNC_DIGEST 288 +#define PIDX_PROV_PARAM_DSA_SIGN_DISABLED 289 +#define PIDX_PROV_PARAM_ECDH_COFACTOR_CHECK 290 +#define PIDX_PROV_PARAM_HKDF_DIGEST_CHECK 291 +#define PIDX_PROV_PARAM_HKDF_KEY_CHECK 292 +#define PIDX_PROV_PARAM_HMAC_KEY_CHECK 293 +#define PIDX_PROV_PARAM_KBKDF_KEY_CHECK 294 +#define PIDX_PROV_PARAM_KMAC_KEY_CHECK 295 +#define PIDX_PROV_PARAM_NAME 296 +#define PIDX_PROV_PARAM_NO_SHORT_MAC 297 +#define PIDX_PROV_PARAM_PBKDF2_LOWER_BOUND_CHECK 298 +#define PIDX_PROV_PARAM_RSA_PKCS15_PAD_DISABLED 299 +#define PIDX_PROV_PARAM_RSA_PSS_SALTLEN_CHECK 300 +#define PIDX_PROV_PARAM_RSA_SIGN_X931_PAD_DISABLED 301 +#define PIDX_PROV_PARAM_SECURITY_CHECKS 302 +#define PIDX_PROV_PARAM_SELF_TEST_DESC 303 +#define PIDX_PROV_PARAM_SELF_TEST_PHASE 304 +#define PIDX_PROV_PARAM_SELF_TEST_TYPE 305 +#define PIDX_PROV_PARAM_SIGNATURE_DIGEST_CHECK 306 +#define PIDX_PROV_PARAM_SSHKDF_DIGEST_CHECK 307 +#define PIDX_PROV_PARAM_SSHKDF_KEY_CHECK 308 +#define PIDX_PROV_PARAM_SSKDF_DIGEST_CHECK 309 +#define PIDX_PROV_PARAM_SSKDF_KEY_CHECK 310 +#define PIDX_PROV_PARAM_STATUS 311 +#define PIDX_PROV_PARAM_TDES_ENCRYPT_DISABLED 312 +#define PIDX_PROV_PARAM_TLS13_KDF_DIGEST_CHECK 313 +#define PIDX_PROV_PARAM_TLS13_KDF_KEY_CHECK 314 +#define PIDX_PROV_PARAM_TLS1_PRF_DIGEST_CHECK 315 +#define PIDX_PROV_PARAM_TLS1_PRF_EMS_CHECK 316 +#define PIDX_PROV_PARAM_TLS1_PRF_KEY_CHECK 317 +#define PIDX_PROV_PARAM_VERSION 115 +#define PIDX_PROV_PARAM_X942KDF_KEY_CHECK 318 +#define PIDX_PROV_PARAM_X963KDF_DIGEST_CHECK 319 +#define PIDX_PROV_PARAM_X963KDF_KEY_CHECK 320 +#define PIDX_RAND_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_RAND_PARAM_GENERATE 321 +#define PIDX_RAND_PARAM_MAX_REQUEST 322 +#define PIDX_RAND_PARAM_STATE 323 +#define PIDX_RAND_PARAM_STRENGTH 324 +#define PIDX_RAND_PARAM_TEST_ENTROPY 325 +#define PIDX_RAND_PARAM_TEST_NONCE 326 +#define PIDX_SIGNATURE_PARAM_ADD_RANDOM 327 +#define PIDX_SIGNATURE_PARAM_ALGORITHM_ID PIDX_PKEY_PARAM_ALGORITHM_ID +#define PIDX_SIGNATURE_PARAM_ALGORITHM_ID_PARAMS PIDX_PKEY_PARAM_ALGORITHM_ID_PARAMS +#define PIDX_SIGNATURE_PARAM_CONTEXT_STRING 328 +#define PIDX_SIGNATURE_PARAM_DETERMINISTIC 329 +#define PIDX_SIGNATURE_PARAM_DIGEST PIDX_PKEY_PARAM_DIGEST +#define PIDX_SIGNATURE_PARAM_DIGEST_SIZE PIDX_PKEY_PARAM_DIGEST_SIZE +#define PIDX_SIGNATURE_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_SIGNATURE_PARAM_FIPS_DIGEST_CHECK PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK +#define PIDX_SIGNATURE_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_SIGNATURE_PARAM_FIPS_RSA_PSS_SALTLEN_CHECK 300 +#define PIDX_SIGNATURE_PARAM_FIPS_SIGN_CHECK PIDX_PKEY_PARAM_FIPS_SIGN_CHECK +#define PIDX_SIGNATURE_PARAM_FIPS_SIGN_X931_PAD_CHECK 330 +#define PIDX_SIGNATURE_PARAM_FIPS_VERIFY_MESSAGE 331 +#define PIDX_SIGNATURE_PARAM_INSTANCE 332 +#define PIDX_SIGNATURE_PARAM_KAT 333 +#define PIDX_SIGNATURE_PARAM_MESSAGE_ENCODING 334 +#define PIDX_SIGNATURE_PARAM_MGF1_DIGEST PIDX_PKEY_PARAM_MGF1_DIGEST +#define PIDX_SIGNATURE_PARAM_MGF1_PROPERTIES PIDX_PKEY_PARAM_MGF1_PROPERTIES +#define PIDX_SIGNATURE_PARAM_MU 335 +#define PIDX_SIGNATURE_PARAM_NONCE_TYPE 336 +#define PIDX_SIGNATURE_PARAM_PAD_MODE PIDX_PKEY_PARAM_PAD_MODE +#define PIDX_SIGNATURE_PARAM_PROPERTIES PIDX_PKEY_PARAM_PROPERTIES +#define PIDX_SIGNATURE_PARAM_PSS_SALTLEN 271 +#define PIDX_SIGNATURE_PARAM_SIGNATURE 337 +#define PIDX_SIGNATURE_PARAM_TEST_ENTROPY 338 +#define PIDX_SKEY_PARAM_KEY_LENGTH 339 +#define PIDX_SKEY_PARAM_RAW_BYTES 340 +#define PIDX_STORE_PARAM_ALIAS 341 +#define PIDX_STORE_PARAM_DIGEST 3 +#define PIDX_STORE_PARAM_EXPECT 342 +#define PIDX_STORE_PARAM_FINGERPRINT 343 +#define PIDX_STORE_PARAM_INPUT_TYPE 174 +#define PIDX_STORE_PARAM_ISSUER 296 +#define PIDX_STORE_PARAM_PROPERTIES 7 +#define PIDX_STORE_PARAM_SERIAL 344 +#define PIDX_STORE_PARAM_SUBJECT 345 diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/no-asm/include/openssl/asn1.h b/deps/openssl/config/archs/darwin64-arm64-cc/no-asm/include/openssl/asn1.h index 21ff58e3d803d4..15e9e44674b0f3 100644 --- a/deps/openssl/config/archs/darwin64-arm64-cc/no-asm/include/openssl/asn1.h +++ b/deps/openssl/config/archs/darwin64-arm64-cc/no-asm/include/openssl/asn1.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/asn1.h.in * - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -21,6 +21,9 @@ # define HEADER_ASN1_H # endif +# ifndef OPENSSL_NO_STDIO +# include +# endif # include # include # include @@ -50,14 +53,14 @@ extern "C" { # define V_ASN1_PRIMITIVE_TAG 0x1f # define V_ASN1_PRIMATIVE_TAG /*compat*/ V_ASN1_PRIMITIVE_TAG -# define V_ASN1_APP_CHOOSE -2/* let the recipient choose */ -# define V_ASN1_OTHER -3/* used in ASN1_TYPE */ -# define V_ASN1_ANY -4/* used in ASN1 template code */ +# define V_ASN1_APP_CHOOSE -2 /* let the recipient choose */ +# define V_ASN1_OTHER -3 /* used in ASN1_TYPE */ +# define V_ASN1_ANY -4 /* used in ASN1 template code */ # define V_ASN1_UNDEF -1 /* ASN.1 tag values */ # define V_ASN1_EOC 0 -# define V_ASN1_BOOLEAN 1 /**/ +# define V_ASN1_BOOLEAN 1 # define V_ASN1_INTEGER 2 # define V_ASN1_BIT_STRING 3 # define V_ASN1_OCTET_STRING 4 @@ -70,19 +73,19 @@ extern "C" { # define V_ASN1_UTF8STRING 12 # define V_ASN1_SEQUENCE 16 # define V_ASN1_SET 17 -# define V_ASN1_NUMERICSTRING 18 /**/ +# define V_ASN1_NUMERICSTRING 18 # define V_ASN1_PRINTABLESTRING 19 # define V_ASN1_T61STRING 20 -# define V_ASN1_TELETEXSTRING 20/* alias */ -# define V_ASN1_VIDEOTEXSTRING 21 /**/ +# define V_ASN1_TELETEXSTRING 20 /* alias */ +# define V_ASN1_VIDEOTEXSTRING 21 # define V_ASN1_IA5STRING 22 # define V_ASN1_UTCTIME 23 -# define V_ASN1_GENERALIZEDTIME 24 /**/ -# define V_ASN1_GRAPHICSTRING 25 /**/ -# define V_ASN1_ISO64STRING 26 /**/ -# define V_ASN1_VISIBLESTRING 26/* alias */ -# define V_ASN1_GENERALSTRING 27 /**/ -# define V_ASN1_UNIVERSALSTRING 28 /**/ +# define V_ASN1_GENERALIZEDTIME 24 +# define V_ASN1_GRAPHICSTRING 25 +# define V_ASN1_ISO64STRING 26 +# define V_ASN1_VISIBLESTRING 26 /* alias */ +# define V_ASN1_GENERALSTRING 27 +# define V_ASN1_UNIVERSALSTRING 28 # define V_ASN1_BMPSTRING 30 /* @@ -155,7 +158,7 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_ALGOR, X509_ALGOR, X509_ALGOR) -# define ASN1_STRING_FLAG_BITS_LEFT 0x08/* Set if 0x07 has bits left value */ +# define ASN1_STRING_FLAG_BITS_LEFT 0x08 /* Set if 0x07 has bits left value */ /* * This indicates that the ASN1_STRING is not a real value but just a place * holder for the location where indefinite length constructed data should be @@ -275,7 +278,7 @@ typedef struct ASN1_TLC_st ASN1_TLC; /* This is just an opaque pointer */ typedef struct ASN1_VALUE_st ASN1_VALUE; -/* Declare ASN1 functions: the implement macro in in asn1t.h */ +/* Declare ASN1 functions: the implement macro is in asn1t.h */ /* * The mysterious 'extern' that's passed to some macros is innocuous, @@ -368,6 +371,7 @@ typedef struct ASN1_VALUE_st ASN1_VALUE; typedef void *d2i_of_void(void **, const unsigned char **, long); typedef int i2d_of_void(const void *, unsigned char **); +typedef int OSSL_i2d_of_void_ctx(const void *, unsigned char **, void *vctx); /*- * The following macros and typedefs allow an ASN1_ITEM @@ -996,6 +1000,8 @@ int ASN1_TYPE_get_int_octetstring(const ASN1_TYPE *a, long *num, unsigned char *data, int max_len); void *ASN1_item_unpack(const ASN1_STRING *oct, const ASN1_ITEM *it); +void *ASN1_item_unpack_ex(const ASN1_STRING *oct, const ASN1_ITEM *it, + OSSL_LIB_CTX *libctx, const char *propq); ASN1_STRING *ASN1_item_pack(void *obj, const ASN1_ITEM *it, ASN1_OCTET_STRING **oct); diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/no-asm/include/openssl/bio.h b/deps/openssl/config/archs/darwin64-arm64-cc/no-asm/include/openssl/bio.h index f9aa74731c833c..e02f867beb0ec0 100644 --- a/deps/openssl/config/archs/darwin64-arm64-cc/no-asm/include/openssl/bio.h +++ b/deps/openssl/config/archs/darwin64-arm64-cc/no-asm/include/openssl/bio.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/bio.h.in * - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -67,8 +67,13 @@ extern "C" { # define BIO_TYPE_DGRAM_SCTP (24|BIO_TYPE_SOURCE_SINK|BIO_TYPE_DESCRIPTOR) # endif # define BIO_TYPE_CORE_TO_PROV (25|BIO_TYPE_SOURCE_SINK) +# define BIO_TYPE_DGRAM_PAIR (26|BIO_TYPE_SOURCE_SINK) +# define BIO_TYPE_DGRAM_MEM (27|BIO_TYPE_SOURCE_SINK) +/* Custom type starting index returned by BIO_get_new_index() */ #define BIO_TYPE_START 128 +/* Custom type maximum index that can be returned by BIO_get_new_index() */ +#define BIO_TYPE_MASK 0xFF /* * BIO_FILENAME_READ|BIO_CLOSE to open or close on free. @@ -171,6 +176,31 @@ extern "C" { # define BIO_CTRL_SET_INDENT 80 # define BIO_CTRL_GET_INDENT 81 +# define BIO_CTRL_DGRAM_GET_LOCAL_ADDR_CAP 82 +# define BIO_CTRL_DGRAM_GET_LOCAL_ADDR_ENABLE 83 +# define BIO_CTRL_DGRAM_SET_LOCAL_ADDR_ENABLE 84 +# define BIO_CTRL_DGRAM_GET_EFFECTIVE_CAPS 85 +# define BIO_CTRL_DGRAM_GET_CAPS 86 +# define BIO_CTRL_DGRAM_SET_CAPS 87 +# define BIO_CTRL_DGRAM_GET_NO_TRUNC 88 +# define BIO_CTRL_DGRAM_SET_NO_TRUNC 89 + +/* + * internal BIO: + * # define BIO_CTRL_SET_KTLS_TX_ZEROCOPY_SENDFILE 90 + */ + +# define BIO_CTRL_GET_RPOLL_DESCRIPTOR 91 +# define BIO_CTRL_GET_WPOLL_DESCRIPTOR 92 +# define BIO_CTRL_DGRAM_DETECT_PEER_ADDR 93 +# define BIO_CTRL_DGRAM_SET0_LOCAL_ADDR 94 + +# define BIO_DGRAM_CAP_NONE 0U +# define BIO_DGRAM_CAP_HANDLES_SRC_ADDR (1U << 0) +# define BIO_DGRAM_CAP_HANDLES_DST_ADDR (1U << 1) +# define BIO_DGRAM_CAP_PROVIDES_SRC_ADDR (1U << 2) +# define BIO_DGRAM_CAP_PROVIDES_DST_ADDR (1U << 3) + # ifndef OPENSSL_NO_KTLS # define BIO_get_ktls_send(b) \ (BIO_ctrl(b, BIO_CTRL_GET_KTLS_SEND, 0, NULL) > 0) @@ -208,7 +238,7 @@ extern "C" { # define BIO_FLAGS_NONCLEAR_RST 0x400 # define BIO_FLAGS_IN_EOF 0x800 -/* the BIO FLAGS values 0x1000 to 0x4000 are reserved for internal KTLS flags */ +/* the BIO FLAGS values 0x1000 to 0x8000 are reserved for internal KTLS flags */ typedef union bio_addr_st BIO_ADDR; typedef struct bio_addrinfo_st BIO_ADDRINFO; @@ -256,12 +286,14 @@ void BIO_clear_flags(BIO *b, int flags); # define BIO_RR_ACCEPT 0x03 /* These are passed by the BIO callback */ -# define BIO_CB_FREE 0x01 -# define BIO_CB_READ 0x02 -# define BIO_CB_WRITE 0x03 -# define BIO_CB_PUTS 0x04 -# define BIO_CB_GETS 0x05 -# define BIO_CB_CTRL 0x06 +# define BIO_CB_FREE 0x01 +# define BIO_CB_READ 0x02 +# define BIO_CB_WRITE 0x03 +# define BIO_CB_PUTS 0x04 +# define BIO_CB_GETS 0x05 +# define BIO_CB_CTRL 0x06 +# define BIO_CB_RECVMMSG 0x07 +# define BIO_CB_SENDMMSG 0x08 /* * The callback is called before and after the underling operation, The @@ -362,6 +394,36 @@ struct bio_dgram_sctp_prinfo { }; # endif +/* BIO_sendmmsg/BIO_recvmmsg-related definitions */ +typedef struct bio_msg_st { + void *data; + size_t data_len; + BIO_ADDR *peer, *local; + uint64_t flags; +} BIO_MSG; + +typedef struct bio_mmsg_cb_args_st { + BIO_MSG *msg; + size_t stride, num_msg; + uint64_t flags; + size_t *msgs_processed; +} BIO_MMSG_CB_ARGS; + +#define BIO_POLL_DESCRIPTOR_TYPE_NONE 0 +#define BIO_POLL_DESCRIPTOR_TYPE_SOCK_FD 1 +#define BIO_POLL_DESCRIPTOR_TYPE_SSL 2 +#define BIO_POLL_DESCRIPTOR_CUSTOM_START 8192 + +typedef struct bio_poll_descriptor_st { + uint32_t type; + union { + int fd; + void *custom; + uintptr_t custom_ui; + SSL *ssl; + } value; +} BIO_POLL_DESCRIPTOR; + /* * #define BIO_CONN_get_param_hostname BIO_ctrl */ @@ -428,10 +490,17 @@ struct bio_dgram_sctp_prinfo { # define BIO_C_SET_CONNECT_MODE 155 +# define BIO_C_SET_TFO 156 /* like BIO_C_SET_NBIO */ + +# define BIO_C_SET_SOCK_TYPE 157 +# define BIO_C_GET_SOCK_TYPE 158 +# define BIO_C_GET_DGRAM_BIO 159 + # define BIO_set_app_data(s,arg) BIO_set_ex_data(s,0,arg) # define BIO_get_app_data(s) BIO_get_ex_data(s,0) -# define BIO_set_nbio(b,n) BIO_ctrl(b,BIO_C_SET_NBIO,(n),NULL) +# define BIO_set_nbio(b,n) BIO_ctrl(b,BIO_C_SET_NBIO,(n),NULL) +# define BIO_set_tfo(b,n) BIO_ctrl(b,BIO_C_SET_TFO,(n),NULL) # ifndef OPENSSL_NO_SOCK /* IP families we support, for BIO_s_connect() and BIO_s_accept() */ @@ -452,7 +521,11 @@ struct bio_dgram_sctp_prinfo { # define BIO_get_conn_port(b) ((const char *)BIO_ptr_ctrl(b,BIO_C_GET_CONNECT,1)) # define BIO_get_conn_address(b) ((const BIO_ADDR *)BIO_ptr_ctrl(b,BIO_C_GET_CONNECT,2)) # define BIO_get_conn_ip_family(b) BIO_ctrl(b,BIO_C_GET_CONNECT,3,NULL) +# define BIO_get_conn_mode(b) BIO_ctrl(b,BIO_C_GET_CONNECT,4,NULL) # define BIO_set_conn_mode(b,n) BIO_ctrl(b,BIO_C_SET_CONNECT_MODE,(n),NULL) +# define BIO_set_sock_type(b,t) BIO_ctrl(b,BIO_C_SET_SOCK_TYPE,(t),NULL) +# define BIO_get_sock_type(b) BIO_ctrl(b,BIO_C_GET_SOCK_TYPE,0,NULL) +# define BIO_get0_dgram_bio(b, p) BIO_ctrl(b,BIO_C_GET_DGRAM_BIO,0,(void *)(BIO **)(p)) /* BIO_s_accept() */ # define BIO_set_accept_name(b,name) BIO_ctrl(b,BIO_C_SET_ACCEPT,0, \ @@ -469,6 +542,7 @@ struct bio_dgram_sctp_prinfo { (char *)(bio)) # define BIO_set_accept_ip_family(b,f) BIO_int_ctrl(b,BIO_C_SET_ACCEPT,4,f) # define BIO_get_accept_ip_family(b) BIO_ctrl(b,BIO_C_GET_ACCEPT,4,NULL) +# define BIO_set_tfo_accept(b,n) BIO_ctrl(b,BIO_C_SET_ACCEPT,5,(n)?(void *)"a":NULL) /* Aliases kept for backward compatibility */ # define BIO_BIND_NORMAL 0 @@ -596,8 +670,32 @@ int BIO_ctrl_reset_read_request(BIO *b); (int)BIO_ctrl(b, BIO_CTRL_DGRAM_GET_PEER, 0, (char *)(peer)) # define BIO_dgram_set_peer(b,peer) \ (int)BIO_ctrl(b, BIO_CTRL_DGRAM_SET_PEER, 0, (char *)(peer)) +# define BIO_dgram_detect_peer_addr(b,peer) \ + (int)BIO_ctrl(b, BIO_CTRL_DGRAM_DETECT_PEER_ADDR, 0, (char *)(peer)) # define BIO_dgram_get_mtu_overhead(b) \ (unsigned int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_MTU_OVERHEAD, 0, NULL) +# define BIO_dgram_get_local_addr_cap(b) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_LOCAL_ADDR_CAP, 0, NULL) +# define BIO_dgram_get_local_addr_enable(b, penable) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_LOCAL_ADDR_ENABLE, 0, (char *)(penable)) +# define BIO_dgram_set_local_addr_enable(b, enable) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET_LOCAL_ADDR_ENABLE, (enable), NULL) +# define BIO_dgram_get_effective_caps(b) \ + (uint32_t)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_EFFECTIVE_CAPS, 0, NULL) +# define BIO_dgram_get_caps(b) \ + (uint32_t)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_CAPS, 0, NULL) +# define BIO_dgram_set_caps(b, caps) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET_CAPS, (long)(caps), NULL) +# define BIO_dgram_get_no_trunc(b) \ + (unsigned int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_NO_TRUNC, 0, NULL) +# define BIO_dgram_set_no_trunc(b, enable) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET_NO_TRUNC, (enable), NULL) +# define BIO_dgram_get_mtu(b) \ + (unsigned int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_MTU, 0, NULL) +# define BIO_dgram_set_mtu(b, mtu) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET_MTU, (mtu), NULL) +# define BIO_dgram_set0_local_addr(b, addr) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET0_LOCAL_ADDR, 0, (addr)) /* ctrl macros for BIO_f_prefix */ # define BIO_set_prefix(b,p) BIO_ctrl((b), BIO_CTRL_SET_PREFIX, 0, (void *)(p)) @@ -640,10 +738,18 @@ void BIO_vfree(BIO *a); int BIO_up_ref(BIO *a); int BIO_read(BIO *b, void *data, int dlen); int BIO_read_ex(BIO *b, void *data, size_t dlen, size_t *readbytes); +__owur int BIO_recvmmsg(BIO *b, BIO_MSG *msg, + size_t stride, size_t num_msg, uint64_t flags, + size_t *msgs_processed); int BIO_gets(BIO *bp, char *buf, int size); int BIO_get_line(BIO *bio, char *buf, int size); int BIO_write(BIO *b, const void *data, int dlen); int BIO_write_ex(BIO *b, const void *data, size_t dlen, size_t *written); +__owur int BIO_sendmmsg(BIO *b, BIO_MSG *msg, + size_t stride, size_t num_msg, uint64_t flags, + size_t *msgs_processed); +__owur int BIO_get_rpoll_descriptor(BIO *b, BIO_POLL_DESCRIPTOR *desc); +__owur int BIO_get_wpoll_descriptor(BIO *b, BIO_POLL_DESCRIPTOR *desc); int BIO_puts(BIO *bp, const char *buf); int BIO_indent(BIO *b, int indent, int max); long BIO_ctrl(BIO *bp, int cmd, long larg, void *parg); @@ -667,6 +773,9 @@ int BIO_nwrite0(BIO *bio, char **buf); int BIO_nwrite(BIO *bio, char **buf, int num); const BIO_METHOD *BIO_s_mem(void); +# ifndef OPENSSL_NO_DGRAM +const BIO_METHOD *BIO_s_dgram_mem(void); +# endif const BIO_METHOD *BIO_s_secmem(void); BIO *BIO_new_mem_buf(const void *buf, int len); # ifndef OPENSSL_NO_SOCK @@ -686,6 +795,7 @@ const BIO_METHOD *BIO_f_nbio_test(void); const BIO_METHOD *BIO_f_prefix(void); const BIO_METHOD *BIO_s_core(void); # ifndef OPENSSL_NO_DGRAM +const BIO_METHOD *BIO_s_dgram_pair(void); const BIO_METHOD *BIO_s_datagram(void); int BIO_dgram_non_fatal_error(int error); BIO *BIO_new_dgram(int fd, int close_flag); @@ -704,6 +814,7 @@ int BIO_dgram_sctp_msg_waiting(BIO *b); # ifndef OPENSSL_NO_SOCK int BIO_sock_should_retry(int i); int BIO_sock_non_fatal_error(int error); +int BIO_err_is_non_fatal(unsigned int errcode); int BIO_socket_wait(int fd, int for_read, time_t max_time); # endif int BIO_wait(BIO *bio, time_t max_time, unsigned int nap_milliseconds); @@ -726,6 +837,8 @@ int BIO_hex_string(BIO *out, int indent, int width, const void *data, # ifndef OPENSSL_NO_SOCK BIO_ADDR *BIO_ADDR_new(void); +int BIO_ADDR_copy(BIO_ADDR *dst, const BIO_ADDR *src); +BIO_ADDR *BIO_ADDR_dup(const BIO_ADDR *ap); int BIO_ADDR_rawmake(BIO_ADDR *ap, int family, const void *where, size_t wherelen, unsigned short port); void BIO_ADDR_free(BIO_ADDR *); @@ -788,6 +901,7 @@ int BIO_sock_info(int sock, # define BIO_SOCK_KEEPALIVE 0x04 # define BIO_SOCK_NONBLOCK 0x08 # define BIO_SOCK_NODELAY 0x10 +# define BIO_SOCK_TFO 0x20 int BIO_socket(int domain, int socktype, int protocol, int options); int BIO_connect(int sock, const BIO_ADDR *addr, int options); @@ -805,6 +919,11 @@ BIO *BIO_new_fd(int fd, int close_flag); int BIO_new_bio_pair(BIO **bio1, size_t writebuf1, BIO **bio2, size_t writebuf2); +# ifndef OPENSSL_NO_DGRAM +int BIO_new_bio_dgram_pair(BIO **bio1, size_t writebuf1, + BIO **bio2, size_t writebuf2); +# endif + /* * If successful, returns 1 and in *bio1, *bio2 two BIO pair endpoints. * Otherwise returns 0 and sets *bio1 and *bio2 to NULL. Size 0 uses default @@ -849,38 +968,54 @@ ossl_bio__attr__((__format__(ossl_bio__printf__, 3, 0))); BIO_METHOD *BIO_meth_new(int type, const char *name); void BIO_meth_free(BIO_METHOD *biom); -int (*BIO_meth_get_write(const BIO_METHOD *biom)) (BIO *, const char *, int); -int (*BIO_meth_get_write_ex(const BIO_METHOD *biom)) (BIO *, const char *, size_t, - size_t *); int BIO_meth_set_write(BIO_METHOD *biom, int (*write) (BIO *, const char *, int)); int BIO_meth_set_write_ex(BIO_METHOD *biom, int (*bwrite) (BIO *, const char *, size_t, size_t *)); -int (*BIO_meth_get_read(const BIO_METHOD *biom)) (BIO *, char *, int); -int (*BIO_meth_get_read_ex(const BIO_METHOD *biom)) (BIO *, char *, size_t, size_t *); +int BIO_meth_set_sendmmsg(BIO_METHOD *biom, + int (*f) (BIO *, BIO_MSG *, size_t, size_t, + uint64_t, size_t *)); int BIO_meth_set_read(BIO_METHOD *biom, int (*read) (BIO *, char *, int)); int BIO_meth_set_read_ex(BIO_METHOD *biom, int (*bread) (BIO *, char *, size_t, size_t *)); -int (*BIO_meth_get_puts(const BIO_METHOD *biom)) (BIO *, const char *); +int BIO_meth_set_recvmmsg(BIO_METHOD *biom, + int (*f) (BIO *, BIO_MSG *, size_t, size_t, + uint64_t, size_t *)); int BIO_meth_set_puts(BIO_METHOD *biom, int (*puts) (BIO *, const char *)); -int (*BIO_meth_get_gets(const BIO_METHOD *biom)) (BIO *, char *, int); int BIO_meth_set_gets(BIO_METHOD *biom, int (*ossl_gets) (BIO *, char *, int)); -long (*BIO_meth_get_ctrl(const BIO_METHOD *biom)) (BIO *, int, long, void *); int BIO_meth_set_ctrl(BIO_METHOD *biom, long (*ctrl) (BIO *, int, long, void *)); -int (*BIO_meth_get_create(const BIO_METHOD *bion)) (BIO *); int BIO_meth_set_create(BIO_METHOD *biom, int (*create) (BIO *)); -int (*BIO_meth_get_destroy(const BIO_METHOD *biom)) (BIO *); int BIO_meth_set_destroy(BIO_METHOD *biom, int (*destroy) (BIO *)); -long (*BIO_meth_get_callback_ctrl(const BIO_METHOD *biom)) - (BIO *, int, BIO_info_cb *); int BIO_meth_set_callback_ctrl(BIO_METHOD *biom, long (*callback_ctrl) (BIO *, int, BIO_info_cb *)); - +# ifndef OPENSSL_NO_DEPRECATED_3_5 +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_write(const BIO_METHOD *biom)) (BIO *, const char *, + int); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_write_ex(const BIO_METHOD *biom)) (BIO *, const char *, + size_t, size_t *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_sendmmsg(const BIO_METHOD *biom))(BIO *, BIO_MSG *, + size_t, size_t, + uint64_t, size_t *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_read(const BIO_METHOD *biom)) (BIO *, char *, int); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_read_ex(const BIO_METHOD *biom)) (BIO *, char *, + size_t, size_t *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_recvmmsg(const BIO_METHOD *biom))(BIO *, BIO_MSG *, + size_t, size_t, + uint64_t, size_t *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_puts(const BIO_METHOD *biom)) (BIO *, const char *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_gets(const BIO_METHOD *biom)) (BIO *, char *, int); +OSSL_DEPRECATEDIN_3_5 long (*BIO_meth_get_ctrl(const BIO_METHOD *biom)) (BIO *, int, + long, void *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_create(const BIO_METHOD *bion)) (BIO *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_destroy(const BIO_METHOD *biom)) (BIO *); +OSSL_DEPRECATEDIN_3_5 long (*BIO_meth_get_callback_ctrl(const BIO_METHOD *biom)) (BIO *, int, + BIO_info_cb *); +# endif # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/no-asm/include/openssl/cmp.h b/deps/openssl/config/archs/darwin64-arm64-cc/no-asm/include/openssl/cmp.h index 49825570d8c303..05aed3029d594c 100644 --- a/deps/openssl/config/archs/darwin64-arm64-cc/no-asm/include/openssl/cmp.h +++ b/deps/openssl/config/archs/darwin64-arm64-cc/no-asm/include/openssl/cmp.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/cmp.h.in * - * Copyright 2007-2023 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2007-2024 The OpenSSL Project Authors. All Rights Reserved. * Copyright Nokia 2007-2019 * Copyright Siemens AG 2015-2019 * @@ -35,7 +35,9 @@ extern "C" { # endif -# define OSSL_CMP_PVNO 2 +# define OSSL_CMP_PVNO_2 2 +# define OSSL_CMP_PVNO_3 3 +# define OSSL_CMP_PVNO OSSL_CMP_PVNO_2 /* v2 is the default */ /*- * PKIFailureInfo ::= BIT STRING { @@ -137,7 +139,6 @@ extern "C" { # if OSSL_CMP_PKIFAILUREINFO_MAX_BIT_PATTERN > INT_MAX # error CMP_PKIFAILUREINFO_MAX bit pattern does not fit in type int # endif - typedef ASN1_BIT_STRING OSSL_CMP_PKIFAILUREINFO; # define OSSL_CMP_CTX_FAILINFO_badAlg (1 << 0) @@ -203,8 +204,8 @@ typedef ASN1_BIT_STRING OSSL_CMP_PKIFAILUREINFO; # define OSSL_CMP_PKISTATUS_revocationWarning 4 # define OSSL_CMP_PKISTATUS_revocationNotification 5 # define OSSL_CMP_PKISTATUS_keyUpdateWarning 6 - typedef ASN1_INTEGER OSSL_CMP_PKISTATUS; + DECLARE_ASN1_ITEM(OSSL_CMP_PKISTATUS) # define OSSL_CMP_CERTORENCCERT_CERTIFICATE 0 @@ -274,6 +275,46 @@ SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CMP_ITAV, OSSL_CMP_ITAV, OSSL_CMP_ITAV) #define sk_OSSL_CMP_ITAV_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_CMP_ITAV) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_CMP_ITAV_sk_type(sk), ossl_check_OSSL_CMP_ITAV_copyfunc_type(copyfunc), ossl_check_OSSL_CMP_ITAV_freefunc_type(freefunc))) #define sk_OSSL_CMP_ITAV_set_cmp_func(sk, cmp) ((sk_OSSL_CMP_ITAV_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CMP_ITAV_sk_type(sk), ossl_check_OSSL_CMP_ITAV_compfunc_type(cmp))) + +typedef struct ossl_cmp_crlstatus_st OSSL_CMP_CRLSTATUS; +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CMP_CRLSTATUS, OSSL_CMP_CRLSTATUS, OSSL_CMP_CRLSTATUS) +#define sk_OSSL_CMP_CRLSTATUS_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_value(sk, idx) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_value(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk), (idx))) +#define sk_OSSL_CMP_CRLSTATUS_new(cmp) ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_new(ossl_check_OSSL_CMP_CRLSTATUS_compfunc_type(cmp))) +#define sk_OSSL_CMP_CRLSTATUS_new_null() ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_new_null()) +#define sk_OSSL_CMP_CRLSTATUS_new_reserve(cmp, n) ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_CMP_CRLSTATUS_compfunc_type(cmp), (n))) +#define sk_OSSL_CMP_CRLSTATUS_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), (n)) +#define sk_OSSL_CMP_CRLSTATUS_free(sk) OPENSSL_sk_free(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_delete(sk, i) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_delete(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), (i))) +#define sk_OSSL_CMP_CRLSTATUS_delete_ptr(sk, ptr) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr))) +#define sk_OSSL_CMP_CRLSTATUS_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr)) +#define sk_OSSL_CMP_CRLSTATUS_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr)) +#define sk_OSSL_CMP_CRLSTATUS_pop(sk) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_pop(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk))) +#define sk_OSSL_CMP_CRLSTATUS_shift(sk) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_shift(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk))) +#define sk_OSSL_CMP_CRLSTATUS_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk),ossl_check_OSSL_CMP_CRLSTATUS_freefunc_type(freefunc)) +#define sk_OSSL_CMP_CRLSTATUS_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr), (idx)) +#define sk_OSSL_CMP_CRLSTATUS_set(sk, idx, ptr) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_set(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), (idx), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr))) +#define sk_OSSL_CMP_CRLSTATUS_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr)) +#define sk_OSSL_CMP_CRLSTATUS_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr)) +#define sk_OSSL_CMP_CRLSTATUS_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr), pnum) +#define sk_OSSL_CMP_CRLSTATUS_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_dup(sk) ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_dup(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk))) +#define sk_OSSL_CMP_CRLSTATUS_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_copyfunc_type(copyfunc), ossl_check_OSSL_CMP_CRLSTATUS_freefunc_type(freefunc))) +#define sk_OSSL_CMP_CRLSTATUS_set_cmp_func(sk, cmp) ((sk_OSSL_CMP_CRLSTATUS_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_compfunc_type(cmp))) + + +typedef OSSL_CRMF_ATTRIBUTETYPEANDVALUE OSSL_CMP_ATAV; +# define OSSL_CMP_ATAV_free OSSL_CRMF_ATTRIBUTETYPEANDVALUE_free +typedef STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) OSSL_CMP_ATAVS; +DECLARE_ASN1_FUNCTIONS(OSSL_CMP_ATAVS) +# define stack_st_OSSL_CMP_ATAV stack_st_OSSL_CRMF_ATTRIBUTETYPEANDVALUE +# define sk_OSSL_CMP_ATAV_num sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_num +# define sk_OSSL_CMP_ATAV_value sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_value +# define sk_OSSL_CMP_ATAV_push sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_push +# define sk_OSSL_CMP_ATAV_pop_free sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_pop_free + typedef struct ossl_cmp_revrepcontent_st OSSL_CMP_REVREPCONTENT; typedef struct ossl_cmp_pkisi_st OSSL_CMP_PKISI; DECLARE_ASN1_FUNCTIONS(OSSL_CMP_PKISI) @@ -375,21 +416,75 @@ void OSSL_CMP_ITAV_set0(OSSL_CMP_ITAV *itav, ASN1_OBJECT *type, ASN1_TYPE *value); ASN1_OBJECT *OSSL_CMP_ITAV_get0_type(const OSSL_CMP_ITAV *itav); ASN1_TYPE *OSSL_CMP_ITAV_get0_value(const OSSL_CMP_ITAV *itav); -int OSSL_CMP_ITAV_push0_stack_item(STACK_OF(OSSL_CMP_ITAV) **itav_sk_p, +int OSSL_CMP_ITAV_push0_stack_item(STACK_OF(OSSL_CMP_ITAV) **sk_p, OSSL_CMP_ITAV *itav); void OSSL_CMP_ITAV_free(OSSL_CMP_ITAV *itav); + +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new0_certProfile(STACK_OF(ASN1_UTF8STRING) + *certProfile); +int OSSL_CMP_ITAV_get0_certProfile(const OSSL_CMP_ITAV *itav, + STACK_OF(ASN1_UTF8STRING) **out); +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new_caCerts(const STACK_OF(X509) *caCerts); +int OSSL_CMP_ITAV_get0_caCerts(const OSSL_CMP_ITAV *itav, STACK_OF(X509) **out); + +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new_rootCaCert(const X509 *rootCaCert); +int OSSL_CMP_ITAV_get0_rootCaCert(const OSSL_CMP_ITAV *itav, X509 **out); +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new_rootCaKeyUpdate(const X509 *newWithNew, + const X509 *newWithOld, + const X509 *oldWithNew); +int OSSL_CMP_ITAV_get0_rootCaKeyUpdate(const OSSL_CMP_ITAV *itav, + X509 **newWithNew, + X509 **newWithOld, + X509 **oldWithNew); + +OSSL_CMP_CRLSTATUS *OSSL_CMP_CRLSTATUS_create(const X509_CRL *crl, + const X509 *cert, int only_DN); +OSSL_CMP_CRLSTATUS *OSSL_CMP_CRLSTATUS_new1(const DIST_POINT_NAME *dpn, + const GENERAL_NAMES *issuer, + const ASN1_TIME *thisUpdate); +int OSSL_CMP_CRLSTATUS_get0(const OSSL_CMP_CRLSTATUS *crlstatus, + DIST_POINT_NAME **dpn, GENERAL_NAMES **issuer, + ASN1_TIME **thisUpdate); +void OSSL_CMP_CRLSTATUS_free(OSSL_CMP_CRLSTATUS *crlstatus); +OSSL_CMP_ITAV +*OSSL_CMP_ITAV_new0_crlStatusList(STACK_OF(OSSL_CMP_CRLSTATUS) *crlStatusList); +int OSSL_CMP_ITAV_get0_crlStatusList(const OSSL_CMP_ITAV *itav, + STACK_OF(OSSL_CMP_CRLSTATUS) **out); +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new_crls(const X509_CRL *crls); +int OSSL_CMP_ITAV_get0_crls(const OSSL_CMP_ITAV *it, STACK_OF(X509_CRL) **out); +OSSL_CMP_ITAV +*OSSL_CMP_ITAV_new0_certReqTemplate(OSSL_CRMF_CERTTEMPLATE *certTemplate, + OSSL_CMP_ATAVS *keySpec); +int OSSL_CMP_ITAV_get1_certReqTemplate(const OSSL_CMP_ITAV *itav, + OSSL_CRMF_CERTTEMPLATE **certTemplate, + OSSL_CMP_ATAVS **keySpec); + +OSSL_CMP_ATAV *OSSL_CMP_ATAV_create(ASN1_OBJECT *type, ASN1_TYPE *value); +void OSSL_CMP_ATAV_set0(OSSL_CMP_ATAV *itav, ASN1_OBJECT *type, + ASN1_TYPE *value); +ASN1_OBJECT *OSSL_CMP_ATAV_get0_type(const OSSL_CMP_ATAV *itav); +ASN1_TYPE *OSSL_CMP_ATAV_get0_value(const OSSL_CMP_ATAV *itav); +OSSL_CMP_ATAV *OSSL_CMP_ATAV_new_algId(const X509_ALGOR *alg); +X509_ALGOR *OSSL_CMP_ATAV_get0_algId(const OSSL_CMP_ATAV *atav); +OSSL_CMP_ATAV *OSSL_CMP_ATAV_new_rsaKeyLen(int len); +int OSSL_CMP_ATAV_get_rsaKeyLen(const OSSL_CMP_ATAV *atav); +int OSSL_CMP_ATAV_push1(OSSL_CMP_ATAVS **sk_p, const OSSL_CMP_ATAV *atav); + void OSSL_CMP_MSG_free(OSSL_CMP_MSG *msg); /* from cmp_ctx.c */ OSSL_CMP_CTX *OSSL_CMP_CTX_new(OSSL_LIB_CTX *libctx, const char *propq); void OSSL_CMP_CTX_free(OSSL_CMP_CTX *ctx); int OSSL_CMP_CTX_reinit(OSSL_CMP_CTX *ctx); +OSSL_LIB_CTX *OSSL_CMP_CTX_get0_libctx(const OSSL_CMP_CTX *ctx); +const char *OSSL_CMP_CTX_get0_propq(const OSSL_CMP_CTX *ctx); /* CMP general options: */ # define OSSL_CMP_OPT_LOG_VERBOSITY 0 /* CMP transfer options: */ -# define OSSL_CMP_OPT_KEEP_ALIVE 10 -# define OSSL_CMP_OPT_MSG_TIMEOUT 11 +# define OSSL_CMP_OPT_KEEP_ALIVE 10 +# define OSSL_CMP_OPT_MSG_TIMEOUT 11 # define OSSL_CMP_OPT_TOTAL_TIMEOUT 12 +# define OSSL_CMP_OPT_USE_TLS 13 /* CMP request options: */ # define OSSL_CMP_OPT_VALIDITY_DAYS 20 # define OSSL_CMP_OPT_SUBJECTALTNAME_NODEFAULT 21 @@ -407,6 +502,7 @@ int OSSL_CMP_CTX_reinit(OSSL_CMP_CTX *ctx); # define OSSL_CMP_OPT_DIGEST_ALGNID 34 # define OSSL_CMP_OPT_IGNORE_KEYUSAGE 35 # define OSSL_CMP_OPT_PERMIT_TA_IN_EXTRACERTS_FOR_IR 36 +# define OSSL_CMP_OPT_NO_CACHE_EXTRACERTS 37 int OSSL_CMP_CTX_set_option(OSSL_CMP_CTX *ctx, int opt, int val); int OSSL_CMP_CTX_get_option(const OSSL_CMP_CTX *ctx, int opt); /* CMP-specific callback for logging and outputting the error queue: */ @@ -420,9 +516,11 @@ int OSSL_CMP_CTX_set1_server(OSSL_CMP_CTX *ctx, const char *address); int OSSL_CMP_CTX_set_serverPort(OSSL_CMP_CTX *ctx, int port); int OSSL_CMP_CTX_set1_proxy(OSSL_CMP_CTX *ctx, const char *name); int OSSL_CMP_CTX_set1_no_proxy(OSSL_CMP_CTX *ctx, const char *names); +# ifndef OPENSSL_NO_HTTP int OSSL_CMP_CTX_set_http_cb(OSSL_CMP_CTX *ctx, OSSL_HTTP_bio_cb_t cb); int OSSL_CMP_CTX_set_http_cb_arg(OSSL_CMP_CTX *ctx, void *arg); void *OSSL_CMP_CTX_get_http_cb_arg(const OSSL_CMP_CTX *ctx); +# endif typedef OSSL_CMP_MSG *(*OSSL_CMP_transfer_cb_t) (OSSL_CMP_CTX *ctx, const OSSL_CMP_MSG *req); int OSSL_CMP_CTX_set_transfer_cb(OSSL_CMP_CTX *ctx, OSSL_CMP_transfer_cb_t cb); @@ -432,7 +530,9 @@ void *OSSL_CMP_CTX_get_transfer_cb_arg(const OSSL_CMP_CTX *ctx); int OSSL_CMP_CTX_set1_srvCert(OSSL_CMP_CTX *ctx, X509 *cert); int OSSL_CMP_CTX_set1_expected_sender(OSSL_CMP_CTX *ctx, const X509_NAME *name); int OSSL_CMP_CTX_set0_trustedStore(OSSL_CMP_CTX *ctx, X509_STORE *store); +# define OSSL_CMP_CTX_set0_trusted OSSL_CMP_CTX_set0_trustedStore X509_STORE *OSSL_CMP_CTX_get0_trustedStore(const OSSL_CMP_CTX *ctx); +# define OSSL_CMP_CTX_get0_trusted OSSL_CMP_CTX_get0_trustedStore int OSSL_CMP_CTX_set1_untrusted(OSSL_CMP_CTX *ctx, STACK_OF(X509) *certs); STACK_OF(X509) *OSSL_CMP_CTX_get0_untrusted(const OSSL_CMP_CTX *ctx); /* client authentication: */ @@ -448,12 +548,15 @@ int OSSL_CMP_CTX_set1_secretValue(OSSL_CMP_CTX *ctx, int OSSL_CMP_CTX_set1_recipient(OSSL_CMP_CTX *ctx, const X509_NAME *name); int OSSL_CMP_CTX_push0_geninfo_ITAV(OSSL_CMP_CTX *ctx, OSSL_CMP_ITAV *itav); int OSSL_CMP_CTX_reset_geninfo_ITAVs(OSSL_CMP_CTX *ctx); +STACK_OF(OSSL_CMP_ITAV) + *OSSL_CMP_CTX_get0_geninfo_ITAVs(const OSSL_CMP_CTX *ctx); int OSSL_CMP_CTX_set1_extraCertsOut(OSSL_CMP_CTX *ctx, STACK_OF(X509) *extraCertsOut); /* certificate template: */ int OSSL_CMP_CTX_set0_newPkey(OSSL_CMP_CTX *ctx, int priv, EVP_PKEY *pkey); EVP_PKEY *OSSL_CMP_CTX_get0_newPkey(const OSSL_CMP_CTX *ctx, int priv); int OSSL_CMP_CTX_set1_issuer(OSSL_CMP_CTX *ctx, const X509_NAME *name); +int OSSL_CMP_CTX_set1_serialNumber(OSSL_CMP_CTX *ctx, const ASN1_INTEGER *sn); int OSSL_CMP_CTX_set1_subjectName(OSSL_CMP_CTX *ctx, const X509_NAME *name); int OSSL_CMP_CTX_push1_subjectAltName(OSSL_CMP_CTX *ctx, const GENERAL_NAME *name); @@ -477,6 +580,7 @@ int OSSL_CMP_CTX_get_status(const OSSL_CMP_CTX *ctx); OSSL_CMP_PKIFREETEXT *OSSL_CMP_CTX_get0_statusString(const OSSL_CMP_CTX *ctx); int OSSL_CMP_CTX_get_failInfoCode(const OSSL_CMP_CTX *ctx); # define OSSL_CMP_PKISI_BUFLEN 1024 +X509 *OSSL_CMP_CTX_get0_validatedSrvCert(const OSSL_CMP_CTX *ctx); X509 *OSSL_CMP_CTX_get0_newCert(const OSSL_CMP_CTX *ctx); STACK_OF(X509) *OSSL_CMP_CTX_get1_newChain(const OSSL_CMP_CTX *ctx); STACK_OF(X509) *OSSL_CMP_CTX_get1_caPubs(const OSSL_CMP_CTX *ctx); @@ -498,10 +602,13 @@ OSSL_CMP_STATUSINFO_new(int status, int fail_info, const char *text); ASN1_OCTET_STRING *OSSL_CMP_HDR_get0_transactionID(const OSSL_CMP_PKIHEADER *hdr); ASN1_OCTET_STRING *OSSL_CMP_HDR_get0_recipNonce(const OSSL_CMP_PKIHEADER *hdr); +STACK_OF(OSSL_CMP_ITAV) + *OSSL_CMP_HDR_get0_geninfo_ITAVs(const OSSL_CMP_PKIHEADER *hdr); /* from cmp_msg.c */ OSSL_CMP_PKIHEADER *OSSL_CMP_MSG_get0_header(const OSSL_CMP_MSG *msg); int OSSL_CMP_MSG_get_bodytype(const OSSL_CMP_MSG *msg); +X509_PUBKEY *OSSL_CMP_MSG_get0_certreq_publickey(const OSSL_CMP_MSG *msg); int OSSL_CMP_MSG_update_transactionID(OSSL_CMP_CTX *ctx, OSSL_CMP_MSG *msg); int OSSL_CMP_MSG_update_recipNonce(OSSL_CMP_CTX *ctx, OSSL_CMP_MSG *msg); OSSL_CRMF_MSG *OSSL_CMP_CTX_setup_CRM(OSSL_CMP_CTX *ctx, int for_KUR, int rid); @@ -517,8 +624,10 @@ int OSSL_CMP_validate_cert_path(const OSSL_CMP_CTX *ctx, X509_STORE *trusted_store, X509 *cert); /* from cmp_http.c */ +# ifndef OPENSSL_NO_HTTP OSSL_CMP_MSG *OSSL_CMP_MSG_http_perform(OSSL_CMP_CTX *ctx, const OSSL_CMP_MSG *req); +# endif /* from cmp_server.c */ typedef struct ossl_cmp_srv_ctx_st OSSL_CMP_SRV_CTX; @@ -561,6 +670,13 @@ int OSSL_CMP_SRV_CTX_init(OSSL_CMP_SRV_CTX *srv_ctx, void *custom_ctx, OSSL_CMP_SRV_error_cb_t process_error, OSSL_CMP_SRV_certConf_cb_t process_certConf, OSSL_CMP_SRV_pollReq_cb_t process_pollReq); +typedef int (*OSSL_CMP_SRV_delayed_delivery_cb_t)(OSSL_CMP_SRV_CTX *srv_ctx, + const OSSL_CMP_MSG *req); +typedef int (*OSSL_CMP_SRV_clean_transaction_cb_t)(OSSL_CMP_SRV_CTX *srv_ctx, + const ASN1_OCTET_STRING *id); +int OSSL_CMP_SRV_CTX_init_trans(OSSL_CMP_SRV_CTX *srv_ctx, + OSSL_CMP_SRV_delayed_delivery_cb_t delay, + OSSL_CMP_SRV_clean_transaction_cb_t clean); OSSL_CMP_CTX *OSSL_CMP_SRV_CTX_get0_cmp_ctx(const OSSL_CMP_SRV_CTX *srv_ctx); void *OSSL_CMP_SRV_CTX_get0_custom_ctx(const OSSL_CMP_SRV_CTX *srv_ctx); int OSSL_CMP_SRV_CTX_set_send_unprotected_errors(OSSL_CMP_SRV_CTX *srv_ctx, @@ -577,6 +693,8 @@ X509 *OSSL_CMP_exec_certreq(OSSL_CMP_CTX *ctx, int req_type, # define OSSL_CMP_CR 2 # define OSSL_CMP_P10CR 4 # define OSSL_CMP_KUR 7 +# define OSSL_CMP_GENM 21 +# define OSSL_CMP_ERROR 23 # define OSSL_CMP_exec_IR_ses(ctx) \ OSSL_CMP_exec_certreq(ctx, OSSL_CMP_IR, NULL) # define OSSL_CMP_exec_CR_ses(ctx) \ @@ -590,6 +708,18 @@ int OSSL_CMP_try_certreq(OSSL_CMP_CTX *ctx, int req_type, int OSSL_CMP_exec_RR_ses(OSSL_CMP_CTX *ctx); STACK_OF(OSSL_CMP_ITAV) *OSSL_CMP_exec_GENM_ses(OSSL_CMP_CTX *ctx); +/* from cmp_genm.c */ +int OSSL_CMP_get1_caCerts(OSSL_CMP_CTX *ctx, STACK_OF(X509) **out); +int OSSL_CMP_get1_rootCaKeyUpdate(OSSL_CMP_CTX *ctx, + const X509 *oldWithOld, X509 **newWithNew, + X509 **newWithOld, X509 **oldWithNew); +int OSSL_CMP_get1_crlUpdate(OSSL_CMP_CTX *ctx, const X509 *crlcert, + const X509_CRL *last_crl, + X509_CRL **crl); +int OSSL_CMP_get1_certReqTemplate(OSSL_CMP_CTX *ctx, + OSSL_CRMF_CERTTEMPLATE **certTemplate, + OSSL_CMP_ATAVS **keySpec); + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/no-asm/include/openssl/cms.h b/deps/openssl/config/archs/darwin64-arm64-cc/no-asm/include/openssl/cms.h index 3b453e6a2187a2..63afab563557b0 100644 --- a/deps/openssl/config/archs/darwin64-arm64-cc/no-asm/include/openssl/cms.h +++ b/deps/openssl/config/archs/darwin64-arm64-cc/no-asm/include/openssl/cms.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/cms.h.in * - * Copyright 2008-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2008-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -31,8 +31,10 @@ extern "C" { # endif +typedef struct CMS_EnvelopedData_st CMS_EnvelopedData; typedef struct CMS_ContentInfo_st CMS_ContentInfo; typedef struct CMS_SignerInfo_st CMS_SignerInfo; +typedef struct CMS_SignedData_st CMS_SignedData; typedef struct CMS_CertificateChoices CMS_CertificateChoices; typedef struct CMS_RevocationInfoChoice_st CMS_RevocationInfoChoice; typedef struct CMS_RecipientInfo_st CMS_RecipientInfo; @@ -147,10 +149,14 @@ SKM_DEFINE_STACK_OF_INTERNAL(CMS_RevocationInfoChoice, CMS_RevocationInfoChoice, #define sk_CMS_RevocationInfoChoice_set_cmp_func(sk, cmp) ((sk_CMS_RevocationInfoChoice_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_CMS_RevocationInfoChoice_sk_type(sk), ossl_check_CMS_RevocationInfoChoice_compfunc_type(cmp))) +DECLARE_ASN1_ITEM(CMS_EnvelopedData) +DECLARE_ASN1_ALLOC_FUNCTIONS(CMS_SignedData) DECLARE_ASN1_FUNCTIONS(CMS_ContentInfo) DECLARE_ASN1_FUNCTIONS(CMS_ReceiptRequest) DECLARE_ASN1_PRINT_FUNCTION(CMS_ContentInfo) +DECLARE_ASN1_DUP_FUNCTION(CMS_EnvelopedData) + CMS_ContentInfo *CMS_ContentInfo_new_ex(OSSL_LIB_CTX *libctx, const char *propq); # define CMS_SIGNERINFO_ISSUER_SERIAL 0 @@ -190,6 +196,7 @@ CMS_ContentInfo *CMS_ContentInfo_new_ex(OSSL_LIB_CTX *libctx, const char *propq) # define CMS_ASCIICRLF 0x80000 # define CMS_CADES 0x100000 # define CMS_USE_ORIGINATOR_KEYID 0x200000 +# define CMS_NO_SIGNING_TIME 0x400000 const ASN1_OBJECT *CMS_get0_type(const CMS_ContentInfo *cms); @@ -217,13 +224,16 @@ int SMIME_write_CMS(BIO *bio, CMS_ContentInfo *cms, BIO *data, int flags); int CMS_final(CMS_ContentInfo *cms, BIO *data, BIO *dcont, unsigned int flags); +int CMS_final_digest(CMS_ContentInfo *cms, + const unsigned char *md, unsigned int mdlen, BIO *dcont, + unsigned int flags); CMS_ContentInfo *CMS_sign(X509 *signcert, EVP_PKEY *pkey, STACK_OF(X509) *certs, BIO *data, unsigned int flags); CMS_ContentInfo *CMS_sign_ex(X509 *signcert, EVP_PKEY *pkey, STACK_OF(X509) *certs, BIO *data, - unsigned int flags, OSSL_LIB_CTX *ctx, + unsigned int flags, OSSL_LIB_CTX *libctx, const char *propq); CMS_ContentInfo *CMS_sign_receipt(CMS_SignerInfo *si, @@ -233,27 +243,26 @@ CMS_ContentInfo *CMS_sign_receipt(CMS_SignerInfo *si, int CMS_data(CMS_ContentInfo *cms, BIO *out, unsigned int flags); CMS_ContentInfo *CMS_data_create(BIO *in, unsigned int flags); CMS_ContentInfo *CMS_data_create_ex(BIO *in, unsigned int flags, - OSSL_LIB_CTX *ctx, const char *propq); + OSSL_LIB_CTX *libctx, const char *propq); int CMS_digest_verify(CMS_ContentInfo *cms, BIO *dcont, BIO *out, unsigned int flags); CMS_ContentInfo *CMS_digest_create(BIO *in, const EVP_MD *md, unsigned int flags); CMS_ContentInfo *CMS_digest_create_ex(BIO *in, const EVP_MD *md, - unsigned int flags, OSSL_LIB_CTX *ctx, + unsigned int flags, OSSL_LIB_CTX *libctx, const char *propq); int CMS_EncryptedData_decrypt(CMS_ContentInfo *cms, const unsigned char *key, size_t keylen, BIO *dcont, BIO *out, unsigned int flags); - CMS_ContentInfo *CMS_EncryptedData_encrypt(BIO *in, const EVP_CIPHER *cipher, const unsigned char *key, size_t keylen, unsigned int flags); CMS_ContentInfo *CMS_EncryptedData_encrypt_ex(BIO *in, const EVP_CIPHER *cipher, const unsigned char *key, size_t keylen, unsigned int flags, - OSSL_LIB_CTX *ctx, + OSSL_LIB_CTX *libctx, const char *propq); int CMS_EncryptedData_set1_key(CMS_ContentInfo *cms, const EVP_CIPHER *ciph, @@ -272,7 +281,7 @@ CMS_ContentInfo *CMS_encrypt(STACK_OF(X509) *certs, BIO *in, const EVP_CIPHER *cipher, unsigned int flags); CMS_ContentInfo *CMS_encrypt_ex(STACK_OF(X509) *certs, BIO *in, const EVP_CIPHER *cipher, unsigned int flags, - OSSL_LIB_CTX *ctx, const char *propq); + OSSL_LIB_CTX *libctx, const char *propq); int CMS_decrypt(CMS_ContentInfo *cms, EVP_PKEY *pkey, X509 *cert, BIO *dcont, BIO *out, unsigned int flags); @@ -291,12 +300,16 @@ int CMS_RecipientInfo_type(CMS_RecipientInfo *ri); EVP_PKEY_CTX *CMS_RecipientInfo_get0_pkey_ctx(CMS_RecipientInfo *ri); CMS_ContentInfo *CMS_AuthEnvelopedData_create(const EVP_CIPHER *cipher); CMS_ContentInfo * -CMS_AuthEnvelopedData_create_ex(const EVP_CIPHER *cipher, OSSL_LIB_CTX *ctx, +CMS_AuthEnvelopedData_create_ex(const EVP_CIPHER *cipher, OSSL_LIB_CTX *libctx, const char *propq); CMS_ContentInfo *CMS_EnvelopedData_create(const EVP_CIPHER *cipher); CMS_ContentInfo *CMS_EnvelopedData_create_ex(const EVP_CIPHER *cipher, - OSSL_LIB_CTX *ctx, + OSSL_LIB_CTX *libctx, const char *propq); +BIO *CMS_EnvelopedData_decrypt(CMS_EnvelopedData *env, BIO *detached_data, + EVP_PKEY *pkey, X509 *cert, + ASN1_OCTET_STRING *secret, unsigned int flags, + OSSL_LIB_CTX *libctx, const char *propq); CMS_RecipientInfo *CMS_add1_recipient_cert(CMS_ContentInfo *cms, X509 *recip, unsigned int flags); @@ -385,6 +398,11 @@ ASN1_OCTET_STRING *CMS_SignerInfo_get0_signature(CMS_SignerInfo *si); int CMS_SignerInfo_sign(CMS_SignerInfo *si); int CMS_SignerInfo_verify(CMS_SignerInfo *si); int CMS_SignerInfo_verify_content(CMS_SignerInfo *si, BIO *chain); +BIO *CMS_SignedData_verify(CMS_SignedData *sd, BIO *detached_data, + STACK_OF(X509) *scerts, X509_STORE *store, + STACK_OF(X509) *extra, STACK_OF(X509_CRL) *crls, + unsigned int flags, + OSSL_LIB_CTX *libctx, const char *propq); int CMS_add_smimecap(CMS_SignerInfo *si, STACK_OF(X509_ALGOR) *algs); int CMS_add_simple_smimecap(STACK_OF(X509_ALGOR) **algs, @@ -441,7 +459,7 @@ CMS_ReceiptRequest *CMS_ReceiptRequest_create0_ex( unsigned char *id, int idlen, int allorfirst, STACK_OF(GENERAL_NAMES) *receiptList, STACK_OF(GENERAL_NAMES) *receiptsTo, - OSSL_LIB_CTX *ctx); + OSSL_LIB_CTX *libctx); int CMS_add1_ReceiptRequest(CMS_SignerInfo *si, CMS_ReceiptRequest *rr); void CMS_ReceiptRequest_get0_values(CMS_ReceiptRequest *rr, diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/no-asm/include/openssl/comp.h b/deps/openssl/config/archs/darwin64-arm64-cc/no-asm/include/openssl/comp.h new file mode 100644 index 00000000000000..90e39511fe8d28 --- /dev/null +++ b/deps/openssl/config/archs/darwin64-arm64-cc/no-asm/include/openssl/comp.h @@ -0,0 +1,98 @@ +/* + * Copyright 2015-2024 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + + +#ifndef OPENSSL_COMP_H +# define OPENSSL_COMP_H +# pragma once + +# include +# ifndef OPENSSL_NO_DEPRECATED_3_0 +# define HEADER_COMP_H +# endif + +# include + +# include +# include +# ifdef __cplusplus +extern "C" { +# endif + + + +# ifndef OPENSSL_NO_COMP + +COMP_CTX *COMP_CTX_new(COMP_METHOD *meth); +const COMP_METHOD *COMP_CTX_get_method(const COMP_CTX *ctx); +int COMP_CTX_get_type(const COMP_CTX* comp); +int COMP_get_type(const COMP_METHOD *meth); +const char *COMP_get_name(const COMP_METHOD *meth); +void COMP_CTX_free(COMP_CTX *ctx); + +int COMP_compress_block(COMP_CTX *ctx, unsigned char *out, int olen, + unsigned char *in, int ilen); +int COMP_expand_block(COMP_CTX *ctx, unsigned char *out, int olen, + unsigned char *in, int ilen); + +COMP_METHOD *COMP_zlib(void); +COMP_METHOD *COMP_zlib_oneshot(void); +COMP_METHOD *COMP_brotli(void); +COMP_METHOD *COMP_brotli_oneshot(void); +COMP_METHOD *COMP_zstd(void); +COMP_METHOD *COMP_zstd_oneshot(void); + +# ifndef OPENSSL_NO_DEPRECATED_1_1_0 +# define COMP_zlib_cleanup() while(0) continue +# endif + +# ifdef OPENSSL_BIO_H +const BIO_METHOD *BIO_f_zlib(void); +const BIO_METHOD *BIO_f_brotli(void); +const BIO_METHOD *BIO_f_zstd(void); +# endif + +# endif + +typedef struct ssl_comp_st SSL_COMP; + +SKM_DEFINE_STACK_OF_INTERNAL(SSL_COMP, SSL_COMP, SSL_COMP) +#define sk_SSL_COMP_num(sk) OPENSSL_sk_num(ossl_check_const_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_value(sk, idx) ((SSL_COMP *)OPENSSL_sk_value(ossl_check_const_SSL_COMP_sk_type(sk), (idx))) +#define sk_SSL_COMP_new(cmp) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new(ossl_check_SSL_COMP_compfunc_type(cmp))) +#define sk_SSL_COMP_new_null() ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new_null()) +#define sk_SSL_COMP_new_reserve(cmp, n) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new_reserve(ossl_check_SSL_COMP_compfunc_type(cmp), (n))) +#define sk_SSL_COMP_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_SSL_COMP_sk_type(sk), (n)) +#define sk_SSL_COMP_free(sk) OPENSSL_sk_free(ossl_check_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_zero(sk) OPENSSL_sk_zero(ossl_check_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_delete(sk, i) ((SSL_COMP *)OPENSSL_sk_delete(ossl_check_SSL_COMP_sk_type(sk), (i))) +#define sk_SSL_COMP_delete_ptr(sk, ptr) ((SSL_COMP *)OPENSSL_sk_delete_ptr(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr))) +#define sk_SSL_COMP_push(sk, ptr) OPENSSL_sk_push(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) +#define sk_SSL_COMP_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) +#define sk_SSL_COMP_pop(sk) ((SSL_COMP *)OPENSSL_sk_pop(ossl_check_SSL_COMP_sk_type(sk))) +#define sk_SSL_COMP_shift(sk) ((SSL_COMP *)OPENSSL_sk_shift(ossl_check_SSL_COMP_sk_type(sk))) +#define sk_SSL_COMP_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_SSL_COMP_sk_type(sk),ossl_check_SSL_COMP_freefunc_type(freefunc)) +#define sk_SSL_COMP_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr), (idx)) +#define sk_SSL_COMP_set(sk, idx, ptr) ((SSL_COMP *)OPENSSL_sk_set(ossl_check_SSL_COMP_sk_type(sk), (idx), ossl_check_SSL_COMP_type(ptr))) +#define sk_SSL_COMP_find(sk, ptr) OPENSSL_sk_find(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) +#define sk_SSL_COMP_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) +#define sk_SSL_COMP_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr), pnum) +#define sk_SSL_COMP_sort(sk) OPENSSL_sk_sort(ossl_check_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_dup(sk) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_dup(ossl_check_const_SSL_COMP_sk_type(sk))) +#define sk_SSL_COMP_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_deep_copy(ossl_check_const_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_copyfunc_type(copyfunc), ossl_check_SSL_COMP_freefunc_type(freefunc))) +#define sk_SSL_COMP_set_cmp_func(sk, cmp) ((sk_SSL_COMP_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_compfunc_type(cmp))) + + + +# ifdef __cplusplus +} +# endif +#endif diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/no-asm/include/openssl/conf.h b/deps/openssl/config/archs/darwin64-arm64-cc/no-asm/include/openssl/conf.h index 44989929f6c84a..38576290bf641b 100644 --- a/deps/openssl/config/archs/darwin64-arm64-cc/no-asm/include/openssl/conf.h +++ b/deps/openssl/config/archs/darwin64-arm64-cc/no-asm/include/openssl/conf.h @@ -27,6 +27,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -65,7 +68,7 @@ SKM_DEFINE_STACK_OF_INTERNAL(CONF_VALUE, CONF_VALUE, CONF_VALUE) #define sk_CONF_VALUE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(CONF_VALUE) *)OPENSSL_sk_deep_copy(ossl_check_const_CONF_VALUE_sk_type(sk), ossl_check_CONF_VALUE_copyfunc_type(copyfunc), ossl_check_CONF_VALUE_freefunc_type(freefunc))) #define sk_CONF_VALUE_set_cmp_func(sk, cmp) ((sk_CONF_VALUE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_CONF_VALUE_sk_type(sk), ossl_check_CONF_VALUE_compfunc_type(cmp))) DEFINE_LHASH_OF_INTERNAL(CONF_VALUE); -#define lh_CONF_VALUE_new(hfn, cmp) ((LHASH_OF(CONF_VALUE) *)OPENSSL_LH_new(ossl_check_CONF_VALUE_lh_hashfunc_type(hfn), ossl_check_CONF_VALUE_lh_compfunc_type(cmp))) +#define lh_CONF_VALUE_new(hfn, cmp) ((LHASH_OF(CONF_VALUE) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new(ossl_check_CONF_VALUE_lh_hashfunc_type(hfn), ossl_check_CONF_VALUE_lh_compfunc_type(cmp)), lh_CONF_VALUE_hash_thunk, lh_CONF_VALUE_comp_thunk, lh_CONF_VALUE_doall_thunk, lh_CONF_VALUE_doall_arg_thunk)) #define lh_CONF_VALUE_free(lh) OPENSSL_LH_free(ossl_check_CONF_VALUE_lh_type(lh)) #define lh_CONF_VALUE_flush(lh) OPENSSL_LH_flush(ossl_check_CONF_VALUE_lh_type(lh)) #define lh_CONF_VALUE_insert(lh, ptr) ((CONF_VALUE *)OPENSSL_LH_insert(ossl_check_CONF_VALUE_lh_type(lh), ossl_check_CONF_VALUE_lh_plain_type(ptr))) diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/no-asm/include/openssl/configuration.h b/deps/openssl/config/archs/darwin64-arm64-cc/no-asm/include/openssl/configuration.h index 4639f45a525049..a2a9ea0a064139 100644 --- a/deps/openssl/config/archs/darwin64-arm64-cc/no-asm/include/openssl/configuration.h +++ b/deps/openssl/config/archs/darwin64-arm64-cc/no-asm/include/openssl/configuration.h @@ -30,7 +30,7 @@ extern "C" { # ifndef OPENSSL_SYS_MACOSX # define OPENSSL_SYS_MACOSX 1 # endif -# define OPENSSL_CONFIGURED_API 30000 +# define OPENSSL_CONFIGURED_API 30500 # ifndef OPENSSL_RAND_SEED_OS # define OPENSSL_RAND_SEED_OS # endif @@ -46,6 +46,12 @@ extern "C" { # ifndef OPENSSL_NO_ASM # define OPENSSL_NO_ASM # endif +# ifndef OPENSSL_NO_BROTLI +# define OPENSSL_NO_BROTLI +# endif +# ifndef OPENSSL_NO_BROTLI_DYNAMIC +# define OPENSSL_NO_BROTLI_DYNAMIC +# endif # ifndef OPENSSL_NO_COMP # define OPENSSL_NO_COMP # endif @@ -55,6 +61,9 @@ extern "C" { # ifndef OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE # define OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE # endif +# ifndef OPENSSL_NO_DEMOS +# define OPENSSL_NO_DEMOS +# endif # ifndef OPENSSL_NO_DEVCRYPTOENG # define OPENSSL_NO_DEVCRYPTOENG # endif @@ -67,12 +76,24 @@ extern "C" { # ifndef OPENSSL_NO_EXTERNAL_TESTS # define OPENSSL_NO_EXTERNAL_TESTS # endif +# ifndef OPENSSL_NO_FIPS_JITTER +# define OPENSSL_NO_FIPS_JITTER +# endif # ifndef OPENSSL_NO_FUZZ_AFL # define OPENSSL_NO_FUZZ_AFL # endif # ifndef OPENSSL_NO_FUZZ_LIBFUZZER # define OPENSSL_NO_FUZZ_LIBFUZZER # endif +# ifndef OPENSSL_NO_H3DEMO +# define OPENSSL_NO_H3DEMO +# endif +# ifndef OPENSSL_NO_HQINTEROP +# define OPENSSL_NO_HQINTEROP +# endif +# ifndef OPENSSL_NO_JITTER +# define OPENSSL_NO_JITTER +# endif # ifndef OPENSSL_NO_KTLS # define OPENSSL_NO_KTLS # endif @@ -85,6 +106,9 @@ extern "C" { # ifndef OPENSSL_NO_MSAN # define OPENSSL_NO_MSAN # endif +# ifndef OPENSSL_NO_PIE +# define OPENSSL_NO_PIE +# endif # ifndef OPENSSL_NO_RC5 # define OPENSSL_NO_RC5 # endif @@ -97,6 +121,12 @@ extern "C" { # ifndef OPENSSL_NO_SSL3_METHOD # define OPENSSL_NO_SSL3_METHOD # endif +# ifndef OPENSSL_NO_SSLKEYLOG +# define OPENSSL_NO_SSLKEYLOG +# endif +# ifndef OPENSSL_NO_TFO +# define OPENSSL_NO_TFO +# endif # ifndef OPENSSL_NO_TRACE # define OPENSSL_NO_TRACE # endif @@ -112,6 +142,21 @@ extern "C" { # ifndef OPENSSL_NO_WEAK_SSL_CIPHERS # define OPENSSL_NO_WEAK_SSL_CIPHERS # endif +# ifndef OPENSSL_NO_WINSTORE +# define OPENSSL_NO_WINSTORE +# endif +# ifndef OPENSSL_NO_ZLIB +# define OPENSSL_NO_ZLIB +# endif +# ifndef OPENSSL_NO_ZLIB_DYNAMIC +# define OPENSSL_NO_ZLIB_DYNAMIC +# endif +# ifndef OPENSSL_NO_ZSTD +# define OPENSSL_NO_ZSTD +# endif +# ifndef OPENSSL_NO_ZSTD_DYNAMIC +# define OPENSSL_NO_ZSTD_DYNAMIC +# endif # ifndef OPENSSL_NO_DYNAMIC_ENGINE # define OPENSSL_NO_DYNAMIC_ENGINE # endif @@ -133,6 +178,12 @@ extern "C" { # define RC4_INT unsigned int +# if defined(OPENSSL_NO_COMP) || (defined(OPENSSL_NO_BROTLI) && defined(OPENSSL_NO_ZSTD) && defined(OPENSSL_NO_ZLIB)) +# define OPENSSL_NO_COMP_ALG +# else +# undef OPENSSL_NO_COMP_ALG +# endif + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/no-asm/include/openssl/core_names.h b/deps/openssl/config/archs/darwin64-arm64-cc/no-asm/include/openssl/core_names.h new file mode 100644 index 00000000000000..e93e79a52bc910 --- /dev/null +++ b/deps/openssl/config/archs/darwin64-arm64-cc/no-asm/include/openssl/core_names.h @@ -0,0 +1,575 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from include/openssl/core_names.h.in + * + * Copyright 2019-2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + +#ifndef OPENSSL_CORE_NAMES_H +# define OPENSSL_CORE_NAMES_H +# pragma once + +# ifdef __cplusplus +extern "C" { +# endif + +/* OSSL_CIPHER_PARAM_CTS_MODE Values */ +# define OSSL_CIPHER_CTS_MODE_CS1 "CS1" +# define OSSL_CIPHER_CTS_MODE_CS2 "CS2" +# define OSSL_CIPHER_CTS_MODE_CS3 "CS3" + +/* Known CIPHER names (not a complete list) */ +# define OSSL_CIPHER_NAME_AES_128_GCM_SIV "AES-128-GCM-SIV" +# define OSSL_CIPHER_NAME_AES_192_GCM_SIV "AES-192-GCM-SIV" +# define OSSL_CIPHER_NAME_AES_256_GCM_SIV "AES-256-GCM-SIV" + +/* Known DIGEST names (not a complete list) */ +# define OSSL_DIGEST_NAME_MD5 "MD5" +# define OSSL_DIGEST_NAME_MD5_SHA1 "MD5-SHA1" +# define OSSL_DIGEST_NAME_SHA1 "SHA1" +# define OSSL_DIGEST_NAME_SHA2_224 "SHA2-224" +# define OSSL_DIGEST_NAME_SHA2_256 "SHA2-256" +# define OSSL_DIGEST_NAME_SHA2_256_192 "SHA2-256/192" +# define OSSL_DIGEST_NAME_SHA2_384 "SHA2-384" +# define OSSL_DIGEST_NAME_SHA2_512 "SHA2-512" +# define OSSL_DIGEST_NAME_SHA2_512_224 "SHA2-512/224" +# define OSSL_DIGEST_NAME_SHA2_512_256 "SHA2-512/256" +# define OSSL_DIGEST_NAME_MD2 "MD2" +# define OSSL_DIGEST_NAME_MD4 "MD4" +# define OSSL_DIGEST_NAME_MDC2 "MDC2" +# define OSSL_DIGEST_NAME_RIPEMD160 "RIPEMD160" +# define OSSL_DIGEST_NAME_SHA3_224 "SHA3-224" +# define OSSL_DIGEST_NAME_SHA3_256 "SHA3-256" +# define OSSL_DIGEST_NAME_SHA3_384 "SHA3-384" +# define OSSL_DIGEST_NAME_SHA3_512 "SHA3-512" +# define OSSL_DIGEST_NAME_KECCAK_KMAC128 "KECCAK-KMAC-128" +# define OSSL_DIGEST_NAME_KECCAK_KMAC256 "KECCAK-KMAC-256" +# define OSSL_DIGEST_NAME_SM3 "SM3" + +/* Known MAC names */ +# define OSSL_MAC_NAME_BLAKE2BMAC "BLAKE2BMAC" +# define OSSL_MAC_NAME_BLAKE2SMAC "BLAKE2SMAC" +# define OSSL_MAC_NAME_CMAC "CMAC" +# define OSSL_MAC_NAME_GMAC "GMAC" +# define OSSL_MAC_NAME_HMAC "HMAC" +# define OSSL_MAC_NAME_KMAC128 "KMAC128" +# define OSSL_MAC_NAME_KMAC256 "KMAC256" +# define OSSL_MAC_NAME_POLY1305 "POLY1305" +# define OSSL_MAC_NAME_SIPHASH "SIPHASH" + +/* Known KDF names */ +# define OSSL_KDF_NAME_HKDF "HKDF" +# define OSSL_KDF_NAME_TLS1_3_KDF "TLS13-KDF" +# define OSSL_KDF_NAME_PBKDF1 "PBKDF1" +# define OSSL_KDF_NAME_PBKDF2 "PBKDF2" +# define OSSL_KDF_NAME_SCRYPT "SCRYPT" +# define OSSL_KDF_NAME_SSHKDF "SSHKDF" +# define OSSL_KDF_NAME_SSKDF "SSKDF" +# define OSSL_KDF_NAME_TLS1_PRF "TLS1-PRF" +# define OSSL_KDF_NAME_X942KDF_ASN1 "X942KDF-ASN1" +# define OSSL_KDF_NAME_X942KDF_CONCAT "X942KDF-CONCAT" +# define OSSL_KDF_NAME_X963KDF "X963KDF" +# define OSSL_KDF_NAME_KBKDF "KBKDF" +# define OSSL_KDF_NAME_KRB5KDF "KRB5KDF" +# define OSSL_KDF_NAME_HMACDRBGKDF "HMAC-DRBG-KDF" + +/* RSA padding modes */ +# define OSSL_PKEY_RSA_PAD_MODE_NONE "none" +# define OSSL_PKEY_RSA_PAD_MODE_PKCSV15 "pkcs1" +# define OSSL_PKEY_RSA_PAD_MODE_OAEP "oaep" +# define OSSL_PKEY_RSA_PAD_MODE_X931 "x931" +# define OSSL_PKEY_RSA_PAD_MODE_PSS "pss" + +/* RSA pss padding salt length */ +# define OSSL_PKEY_RSA_PSS_SALT_LEN_DIGEST "digest" +# define OSSL_PKEY_RSA_PSS_SALT_LEN_MAX "max" +# define OSSL_PKEY_RSA_PSS_SALT_LEN_AUTO "auto" +# define OSSL_PKEY_RSA_PSS_SALT_LEN_AUTO_DIGEST_MAX "auto-digestmax" + +/* OSSL_PKEY_PARAM_EC_ENCODING values */ +# define OSSL_PKEY_EC_ENCODING_EXPLICIT "explicit" +# define OSSL_PKEY_EC_ENCODING_GROUP "named_curve" + +# define OSSL_PKEY_EC_POINT_CONVERSION_FORMAT_UNCOMPRESSED "uncompressed" +# define OSSL_PKEY_EC_POINT_CONVERSION_FORMAT_COMPRESSED "compressed" +# define OSSL_PKEY_EC_POINT_CONVERSION_FORMAT_HYBRID "hybrid" + +# define OSSL_PKEY_EC_GROUP_CHECK_DEFAULT "default" +# define OSSL_PKEY_EC_GROUP_CHECK_NAMED "named" +# define OSSL_PKEY_EC_GROUP_CHECK_NAMED_NIST "named-nist" + +/* PROV_SKEY well known key types */ +# define OSSL_SKEY_TYPE_GENERIC "GENERIC-SECRET" +# define OSSL_SKEY_TYPE_AES "AES" + +/* OSSL_KEM_PARAM_OPERATION values */ +#define OSSL_KEM_PARAM_OPERATION_RSASVE "RSASVE" +#define OSSL_KEM_PARAM_OPERATION_DHKEM "DHKEM" + +/* Provider configuration variables */ +#define OSSL_PKEY_RETAIN_SEED "pkey_retain_seed" + +/* Parameter name definitions - generated by util/perl/OpenSSL/paramnames.pm */ +# define OSSL_ALG_PARAM_ALGORITHM_ID "algorithm-id" +# define OSSL_ALG_PARAM_ALGORITHM_ID_PARAMS "algorithm-id-params" +# define OSSL_ALG_PARAM_CIPHER "cipher" +# define OSSL_ALG_PARAM_DIGEST "digest" +# define OSSL_ALG_PARAM_ENGINE "engine" +# define OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR "fips-indicator" +# define OSSL_ALG_PARAM_MAC "mac" +# define OSSL_ALG_PARAM_PROPERTIES "properties" +# define OSSL_ASYM_CIPHER_PARAM_DIGEST OSSL_PKEY_PARAM_DIGEST +# define OSSL_ASYM_CIPHER_PARAM_ENGINE OSSL_PKEY_PARAM_ENGINE +# define OSSL_ASYM_CIPHER_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_ASYM_CIPHER_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_ASYM_CIPHER_PARAM_FIPS_RSA_PKCS15_PAD_DISABLED OSSL_PROV_PARAM_RSA_PKCS15_PAD_DISABLED +# define OSSL_ASYM_CIPHER_PARAM_IMPLICIT_REJECTION "implicit-rejection" +# define OSSL_ASYM_CIPHER_PARAM_MGF1_DIGEST OSSL_PKEY_PARAM_MGF1_DIGEST +# define OSSL_ASYM_CIPHER_PARAM_MGF1_DIGEST_PROPS OSSL_PKEY_PARAM_MGF1_PROPERTIES +# define OSSL_ASYM_CIPHER_PARAM_OAEP_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_ASYM_CIPHER_PARAM_OAEP_DIGEST_PROPS "digest-props" +# define OSSL_ASYM_CIPHER_PARAM_OAEP_LABEL "oaep-label" +# define OSSL_ASYM_CIPHER_PARAM_PAD_MODE OSSL_PKEY_PARAM_PAD_MODE +# define OSSL_ASYM_CIPHER_PARAM_PROPERTIES OSSL_PKEY_PARAM_PROPERTIES +# define OSSL_ASYM_CIPHER_PARAM_TLS_CLIENT_VERSION "tls-client-version" +# define OSSL_ASYM_CIPHER_PARAM_TLS_NEGOTIATED_VERSION "tls-negotiated-version" +# define OSSL_CAPABILITY_TLS_GROUP_ALG "tls-group-alg" +# define OSSL_CAPABILITY_TLS_GROUP_ID "tls-group-id" +# define OSSL_CAPABILITY_TLS_GROUP_IS_KEM "tls-group-is-kem" +# define OSSL_CAPABILITY_TLS_GROUP_MAX_DTLS "tls-max-dtls" +# define OSSL_CAPABILITY_TLS_GROUP_MAX_TLS "tls-max-tls" +# define OSSL_CAPABILITY_TLS_GROUP_MIN_DTLS "tls-min-dtls" +# define OSSL_CAPABILITY_TLS_GROUP_MIN_TLS "tls-min-tls" +# define OSSL_CAPABILITY_TLS_GROUP_NAME "tls-group-name" +# define OSSL_CAPABILITY_TLS_GROUP_NAME_INTERNAL "tls-group-name-internal" +# define OSSL_CAPABILITY_TLS_GROUP_SECURITY_BITS "tls-group-sec-bits" +# define OSSL_CAPABILITY_TLS_SIGALG_CODE_POINT "tls-sigalg-code-point" +# define OSSL_CAPABILITY_TLS_SIGALG_HASH_NAME "tls-sigalg-hash-name" +# define OSSL_CAPABILITY_TLS_SIGALG_HASH_OID "tls-sigalg-hash-oid" +# define OSSL_CAPABILITY_TLS_SIGALG_IANA_NAME "tls-sigalg-iana-name" +# define OSSL_CAPABILITY_TLS_SIGALG_KEYTYPE "tls-sigalg-keytype" +# define OSSL_CAPABILITY_TLS_SIGALG_KEYTYPE_OID "tls-sigalg-keytype-oid" +# define OSSL_CAPABILITY_TLS_SIGALG_MAX_DTLS "tls-max-dtls" +# define OSSL_CAPABILITY_TLS_SIGALG_MAX_TLS "tls-max-tls" +# define OSSL_CAPABILITY_TLS_SIGALG_MIN_DTLS "tls-min-dtls" +# define OSSL_CAPABILITY_TLS_SIGALG_MIN_TLS "tls-min-tls" +# define OSSL_CAPABILITY_TLS_SIGALG_NAME "tls-sigalg-name" +# define OSSL_CAPABILITY_TLS_SIGALG_OID "tls-sigalg-oid" +# define OSSL_CAPABILITY_TLS_SIGALG_SECURITY_BITS "tls-sigalg-sec-bits" +# define OSSL_CAPABILITY_TLS_SIGALG_SIG_NAME "tls-sigalg-sig-name" +# define OSSL_CAPABILITY_TLS_SIGALG_SIG_OID "tls-sigalg-sig-oid" +# define OSSL_CIPHER_PARAM_AEAD "aead" +# define OSSL_CIPHER_PARAM_AEAD_IVLEN OSSL_CIPHER_PARAM_IVLEN +# define OSSL_CIPHER_PARAM_AEAD_IV_GENERATED "iv-generated" +# define OSSL_CIPHER_PARAM_AEAD_MAC_KEY "mackey" +# define OSSL_CIPHER_PARAM_AEAD_TAG "tag" +# define OSSL_CIPHER_PARAM_AEAD_TAGLEN "taglen" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_AAD "tlsaad" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_AAD_PAD "tlsaadpad" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_GET_IV_GEN "tlsivgen" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_IV_FIXED "tlsivfixed" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_SET_IV_INV "tlsivinv" +# define OSSL_CIPHER_PARAM_ALGORITHM_ID OSSL_ALG_PARAM_ALGORITHM_ID +# define OSSL_CIPHER_PARAM_ALGORITHM_ID_PARAMS OSSL_ALG_PARAM_ALGORITHM_ID_PARAMS +# define OSSL_CIPHER_PARAM_ALGORITHM_ID_PARAMS_OLD "alg_id_param" +# define OSSL_CIPHER_PARAM_BLOCK_SIZE "blocksize" +# define OSSL_CIPHER_PARAM_CTS "cts" +# define OSSL_CIPHER_PARAM_CTS_MODE "cts_mode" +# define OSSL_CIPHER_PARAM_CUSTOM_IV "custom-iv" +# define OSSL_CIPHER_PARAM_DECRYPT_ONLY "decrypt-only" +# define OSSL_CIPHER_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_CIPHER_PARAM_FIPS_ENCRYPT_CHECK "encrypt-check" +# define OSSL_CIPHER_PARAM_HAS_RAND_KEY "has-randkey" +# define OSSL_CIPHER_PARAM_IV "iv" +# define OSSL_CIPHER_PARAM_IVLEN "ivlen" +# define OSSL_CIPHER_PARAM_KEYLEN "keylen" +# define OSSL_CIPHER_PARAM_MODE "mode" +# define OSSL_CIPHER_PARAM_NUM "num" +# define OSSL_CIPHER_PARAM_PADDING "padding" +# define OSSL_CIPHER_PARAM_PIPELINE_AEAD_TAG "pipeline-tag" +# define OSSL_CIPHER_PARAM_RANDOM_KEY "randkey" +# define OSSL_CIPHER_PARAM_RC2_KEYBITS "keybits" +# define OSSL_CIPHER_PARAM_ROUNDS "rounds" +# define OSSL_CIPHER_PARAM_SPEED "speed" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK "tls-multi" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD "tls1multi_aad" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD_PACKLEN "tls1multi_aadpacklen" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC "tls1multi_enc" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_IN "tls1multi_encin" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_LEN "tls1multi_enclen" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_INTERLEAVE "tls1multi_interleave" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_BUFSIZE "tls1multi_maxbufsz" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_SEND_FRAGMENT "tls1multi_maxsndfrag" +# define OSSL_CIPHER_PARAM_TLS_MAC "tls-mac" +# define OSSL_CIPHER_PARAM_TLS_MAC_SIZE "tls-mac-size" +# define OSSL_CIPHER_PARAM_TLS_VERSION "tls-version" +# define OSSL_CIPHER_PARAM_UPDATED_IV "updated-iv" +# define OSSL_CIPHER_PARAM_USE_BITS "use-bits" +# define OSSL_CIPHER_PARAM_XTS_STANDARD "xts_standard" +# define OSSL_DECODER_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_DIGEST_PARAM_ALGID_ABSENT "algid-absent" +# define OSSL_DIGEST_PARAM_BLOCK_SIZE "blocksize" +# define OSSL_DIGEST_PARAM_MICALG "micalg" +# define OSSL_DIGEST_PARAM_PAD_TYPE "pad-type" +# define OSSL_DIGEST_PARAM_SIZE "size" +# define OSSL_DIGEST_PARAM_SSL3_MS "ssl3-ms" +# define OSSL_DIGEST_PARAM_XOF "xof" +# define OSSL_DIGEST_PARAM_XOFLEN "xoflen" +# define OSSL_DRBG_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_DRBG_PARAM_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_DRBG_PARAM_ENTROPY_REQUIRED "entropy_required" +# define OSSL_DRBG_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_DRBG_PARAM_FIPS_DIGEST_CHECK OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK +# define OSSL_DRBG_PARAM_MAC OSSL_ALG_PARAM_MAC +# define OSSL_DRBG_PARAM_MAX_ADINLEN "max_adinlen" +# define OSSL_DRBG_PARAM_MAX_ENTROPYLEN "max_entropylen" +# define OSSL_DRBG_PARAM_MAX_LENGTH "maxium_length" +# define OSSL_DRBG_PARAM_MAX_NONCELEN "max_noncelen" +# define OSSL_DRBG_PARAM_MAX_PERSLEN "max_perslen" +# define OSSL_DRBG_PARAM_MIN_ENTROPYLEN "min_entropylen" +# define OSSL_DRBG_PARAM_MIN_LENGTH "minium_length" +# define OSSL_DRBG_PARAM_MIN_NONCELEN "min_noncelen" +# define OSSL_DRBG_PARAM_PREDICTION_RESISTANCE "prediction_resistance" +# define OSSL_DRBG_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_DRBG_PARAM_RANDOM_DATA "random_data" +# define OSSL_DRBG_PARAM_RESEED_COUNTER "reseed_counter" +# define OSSL_DRBG_PARAM_RESEED_REQUESTS "reseed_requests" +# define OSSL_DRBG_PARAM_RESEED_TIME "reseed_time" +# define OSSL_DRBG_PARAM_RESEED_TIME_INTERVAL "reseed_time_interval" +# define OSSL_DRBG_PARAM_SIZE "size" +# define OSSL_DRBG_PARAM_USE_DF "use_derivation_function" +# define OSSL_ENCODER_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_ENCODER_PARAM_ENCRYPT_LEVEL "encrypt-level" +# define OSSL_ENCODER_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_ENCODER_PARAM_SAVE_PARAMETERS "save-parameters" +# define OSSL_EXCHANGE_PARAM_EC_ECDH_COFACTOR_MODE "ecdh-cofactor-mode" +# define OSSL_EXCHANGE_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_EXCHANGE_PARAM_FIPS_DIGEST_CHECK OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK +# define OSSL_EXCHANGE_PARAM_FIPS_ECDH_COFACTOR_CHECK OSSL_PROV_PARAM_ECDH_COFACTOR_CHECK +# define OSSL_EXCHANGE_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_EXCHANGE_PARAM_KDF_DIGEST "kdf-digest" +# define OSSL_EXCHANGE_PARAM_KDF_DIGEST_PROPS "kdf-digest-props" +# define OSSL_EXCHANGE_PARAM_KDF_OUTLEN "kdf-outlen" +# define OSSL_EXCHANGE_PARAM_KDF_TYPE "kdf-type" +# define OSSL_EXCHANGE_PARAM_KDF_UKM "kdf-ukm" +# define OSSL_EXCHANGE_PARAM_PAD "pad" +# define OSSL_GEN_PARAM_ITERATION "iteration" +# define OSSL_GEN_PARAM_POTENTIAL "potential" +# define OSSL_KDF_PARAM_ARGON2_AD "ad" +# define OSSL_KDF_PARAM_ARGON2_LANES "lanes" +# define OSSL_KDF_PARAM_ARGON2_MEMCOST "memcost" +# define OSSL_KDF_PARAM_ARGON2_VERSION "version" +# define OSSL_KDF_PARAM_CEK_ALG "cekalg" +# define OSSL_KDF_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_KDF_PARAM_CONSTANT "constant" +# define OSSL_KDF_PARAM_DATA "data" +# define OSSL_KDF_PARAM_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_KDF_PARAM_EARLY_CLEAN "early_clean" +# define OSSL_KDF_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_KDF_PARAM_FIPS_DIGEST_CHECK OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK +# define OSSL_KDF_PARAM_FIPS_EMS_CHECK "ems_check" +# define OSSL_KDF_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_KDF_PARAM_HMACDRBG_ENTROPY "entropy" +# define OSSL_KDF_PARAM_HMACDRBG_NONCE "nonce" +# define OSSL_KDF_PARAM_INFO "info" +# define OSSL_KDF_PARAM_ITER "iter" +# define OSSL_KDF_PARAM_KBKDF_R "r" +# define OSSL_KDF_PARAM_KBKDF_USE_L "use-l" +# define OSSL_KDF_PARAM_KBKDF_USE_SEPARATOR "use-separator" +# define OSSL_KDF_PARAM_KEY "key" +# define OSSL_KDF_PARAM_LABEL "label" +# define OSSL_KDF_PARAM_MAC OSSL_ALG_PARAM_MAC +# define OSSL_KDF_PARAM_MAC_SIZE "maclen" +# define OSSL_KDF_PARAM_MODE "mode" +# define OSSL_KDF_PARAM_PASSWORD "pass" +# define OSSL_KDF_PARAM_PKCS12_ID "id" +# define OSSL_KDF_PARAM_PKCS5 "pkcs5" +# define OSSL_KDF_PARAM_PREFIX "prefix" +# define OSSL_KDF_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_KDF_PARAM_SALT "salt" +# define OSSL_KDF_PARAM_SCRYPT_MAXMEM "maxmem_bytes" +# define OSSL_KDF_PARAM_SCRYPT_N "n" +# define OSSL_KDF_PARAM_SCRYPT_P "p" +# define OSSL_KDF_PARAM_SCRYPT_R "r" +# define OSSL_KDF_PARAM_SECRET "secret" +# define OSSL_KDF_PARAM_SEED "seed" +# define OSSL_KDF_PARAM_SIZE "size" +# define OSSL_KDF_PARAM_SSHKDF_SESSION_ID "session_id" +# define OSSL_KDF_PARAM_SSHKDF_TYPE "type" +# define OSSL_KDF_PARAM_SSHKDF_XCGHASH "xcghash" +# define OSSL_KDF_PARAM_THREADS "threads" +# define OSSL_KDF_PARAM_UKM "ukm" +# define OSSL_KDF_PARAM_X942_ACVPINFO "acvp-info" +# define OSSL_KDF_PARAM_X942_PARTYUINFO "partyu-info" +# define OSSL_KDF_PARAM_X942_PARTYVINFO "partyv-info" +# define OSSL_KDF_PARAM_X942_SUPP_PRIVINFO "supp-privinfo" +# define OSSL_KDF_PARAM_X942_SUPP_PUBINFO "supp-pubinfo" +# define OSSL_KDF_PARAM_X942_USE_KEYBITS "use-keybits" +# define OSSL_KEM_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_KEM_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_KEM_PARAM_IKME "ikme" +# define OSSL_KEM_PARAM_OPERATION "operation" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_BLOCK_PADDING "block_padding" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_HS_PADDING "hs_padding" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_MAX_EARLY_DATA "max_early_data" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_MAX_FRAG_LEN "max_frag_len" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_MODE "mode" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_OPTIONS "options" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_READ_AHEAD "read_ahead" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_STREAM_MAC "stream_mac" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_TLSTREE "tlstree" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_USE_ETM "use_etm" +# define OSSL_LIBSSL_RECORD_LAYER_READ_BUFFER_LEN "read_buffer_len" +# define OSSL_MAC_PARAM_BLOCK_SIZE "block-size" +# define OSSL_MAC_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_MAC_PARAM_CUSTOM "custom" +# define OSSL_MAC_PARAM_C_ROUNDS "c-rounds" +# define OSSL_MAC_PARAM_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_MAC_PARAM_DIGEST_NOINIT "digest-noinit" +# define OSSL_MAC_PARAM_DIGEST_ONESHOT "digest-oneshot" +# define OSSL_MAC_PARAM_D_ROUNDS "d-rounds" +# define OSSL_MAC_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_MAC_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_MAC_PARAM_FIPS_NO_SHORT_MAC OSSL_PROV_PARAM_NO_SHORT_MAC +# define OSSL_MAC_PARAM_IV "iv" +# define OSSL_MAC_PARAM_KEY "key" +# define OSSL_MAC_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_MAC_PARAM_SALT "salt" +# define OSSL_MAC_PARAM_SIZE "size" +# define OSSL_MAC_PARAM_TLS_DATA_SIZE "tls-data-size" +# define OSSL_MAC_PARAM_XOF "xof" +# define OSSL_OBJECT_PARAM_DATA "data" +# define OSSL_OBJECT_PARAM_DATA_STRUCTURE "data-structure" +# define OSSL_OBJECT_PARAM_DATA_TYPE "data-type" +# define OSSL_OBJECT_PARAM_DESC "desc" +# define OSSL_OBJECT_PARAM_INPUT_TYPE "input-type" +# define OSSL_OBJECT_PARAM_REFERENCE "reference" +# define OSSL_OBJECT_PARAM_TYPE "type" +# define OSSL_PASSPHRASE_PARAM_INFO "info" +# define OSSL_PKEY_PARAM_ALGORITHM_ID OSSL_ALG_PARAM_ALGORITHM_ID +# define OSSL_PKEY_PARAM_ALGORITHM_ID_PARAMS OSSL_ALG_PARAM_ALGORITHM_ID_PARAMS +# define OSSL_PKEY_PARAM_BITS "bits" +# define OSSL_PKEY_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_PKEY_PARAM_DEFAULT_DIGEST "default-digest" +# define OSSL_PKEY_PARAM_DHKEM_IKM "dhkem-ikm" +# define OSSL_PKEY_PARAM_DH_GENERATOR "safeprime-generator" +# define OSSL_PKEY_PARAM_DH_PRIV_LEN "priv_len" +# define OSSL_PKEY_PARAM_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_PKEY_PARAM_DIGEST_SIZE "digest-size" +# define OSSL_PKEY_PARAM_DIST_ID "distid" +# define OSSL_PKEY_PARAM_EC_A "a" +# define OSSL_PKEY_PARAM_EC_B "b" +# define OSSL_PKEY_PARAM_EC_CHAR2_M "m" +# define OSSL_PKEY_PARAM_EC_CHAR2_PP_K1 "k1" +# define OSSL_PKEY_PARAM_EC_CHAR2_PP_K2 "k2" +# define OSSL_PKEY_PARAM_EC_CHAR2_PP_K3 "k3" +# define OSSL_PKEY_PARAM_EC_CHAR2_TP_BASIS "tp" +# define OSSL_PKEY_PARAM_EC_CHAR2_TYPE "basis-type" +# define OSSL_PKEY_PARAM_EC_COFACTOR "cofactor" +# define OSSL_PKEY_PARAM_EC_DECODED_FROM_EXPLICIT_PARAMS "decoded-from-explicit" +# define OSSL_PKEY_PARAM_EC_ENCODING "encoding" +# define OSSL_PKEY_PARAM_EC_FIELD_TYPE "field-type" +# define OSSL_PKEY_PARAM_EC_GENERATOR "generator" +# define OSSL_PKEY_PARAM_EC_GROUP_CHECK_TYPE "group-check" +# define OSSL_PKEY_PARAM_EC_INCLUDE_PUBLIC "include-public" +# define OSSL_PKEY_PARAM_EC_ORDER "order" +# define OSSL_PKEY_PARAM_EC_P "p" +# define OSSL_PKEY_PARAM_EC_POINT_CONVERSION_FORMAT "point-format" +# define OSSL_PKEY_PARAM_EC_PUB_X "qx" +# define OSSL_PKEY_PARAM_EC_PUB_Y "qy" +# define OSSL_PKEY_PARAM_EC_SEED "seed" +# define OSSL_PKEY_PARAM_ENCODED_PUBLIC_KEY "encoded-pub-key" +# define OSSL_PKEY_PARAM_ENGINE OSSL_ALG_PARAM_ENGINE +# define OSSL_PKEY_PARAM_FFC_COFACTOR "j" +# define OSSL_PKEY_PARAM_FFC_DIGEST OSSL_PKEY_PARAM_DIGEST +# define OSSL_PKEY_PARAM_FFC_DIGEST_PROPS OSSL_PKEY_PARAM_PROPERTIES +# define OSSL_PKEY_PARAM_FFC_G "g" +# define OSSL_PKEY_PARAM_FFC_GINDEX "gindex" +# define OSSL_PKEY_PARAM_FFC_H "hindex" +# define OSSL_PKEY_PARAM_FFC_P "p" +# define OSSL_PKEY_PARAM_FFC_PBITS "pbits" +# define OSSL_PKEY_PARAM_FFC_PCOUNTER "pcounter" +# define OSSL_PKEY_PARAM_FFC_Q "q" +# define OSSL_PKEY_PARAM_FFC_QBITS "qbits" +# define OSSL_PKEY_PARAM_FFC_SEED "seed" +# define OSSL_PKEY_PARAM_FFC_TYPE "type" +# define OSSL_PKEY_PARAM_FFC_VALIDATE_G "validate-g" +# define OSSL_PKEY_PARAM_FFC_VALIDATE_LEGACY "validate-legacy" +# define OSSL_PKEY_PARAM_FFC_VALIDATE_PQ "validate-pq" +# define OSSL_PKEY_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK "digest-check" +# define OSSL_PKEY_PARAM_FIPS_KEY_CHECK "key-check" +# define OSSL_PKEY_PARAM_FIPS_SIGN_CHECK "sign-check" +# define OSSL_PKEY_PARAM_GROUP_NAME "group" +# define OSSL_PKEY_PARAM_IMPLICIT_REJECTION "implicit-rejection" +# define OSSL_PKEY_PARAM_MANDATORY_DIGEST "mandatory-digest" +# define OSSL_PKEY_PARAM_MASKGENFUNC "mgf" +# define OSSL_PKEY_PARAM_MAX_SIZE "max-size" +# define OSSL_PKEY_PARAM_MGF1_DIGEST "mgf1-digest" +# define OSSL_PKEY_PARAM_MGF1_PROPERTIES "mgf1-properties" +# define OSSL_PKEY_PARAM_ML_DSA_INPUT_FORMATS "ml-dsa.input_formats" +# define OSSL_PKEY_PARAM_ML_DSA_OUTPUT_FORMATS "ml-dsa.output_formats" +# define OSSL_PKEY_PARAM_ML_DSA_PREFER_SEED "ml-dsa.prefer_seed" +# define OSSL_PKEY_PARAM_ML_DSA_RETAIN_SEED "ml-dsa.retain_seed" +# define OSSL_PKEY_PARAM_ML_DSA_SEED "seed" +# define OSSL_PKEY_PARAM_ML_KEM_IMPORT_PCT_TYPE "ml-kem.import_pct_type" +# define OSSL_PKEY_PARAM_ML_KEM_INPUT_FORMATS "ml-kem.input_formats" +# define OSSL_PKEY_PARAM_ML_KEM_OUTPUT_FORMATS "ml-kem.output_formats" +# define OSSL_PKEY_PARAM_ML_KEM_PREFER_SEED "ml-kem.prefer_seed" +# define OSSL_PKEY_PARAM_ML_KEM_RETAIN_SEED "ml-kem.retain_seed" +# define OSSL_PKEY_PARAM_ML_KEM_SEED "seed" +# define OSSL_PKEY_PARAM_PAD_MODE "pad-mode" +# define OSSL_PKEY_PARAM_PRIV_KEY "priv" +# define OSSL_PKEY_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_PKEY_PARAM_PUB_KEY "pub" +# define OSSL_PKEY_PARAM_RSA_BITS OSSL_PKEY_PARAM_BITS +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT "rsa-coefficient" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT1 "rsa-coefficient1" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT2 "rsa-coefficient2" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT3 "rsa-coefficient3" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT4 "rsa-coefficient4" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT5 "rsa-coefficient5" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT6 "rsa-coefficient6" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT7 "rsa-coefficient7" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT8 "rsa-coefficient8" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT9 "rsa-coefficient9" +# define OSSL_PKEY_PARAM_RSA_D "d" +# define OSSL_PKEY_PARAM_RSA_DERIVE_FROM_PQ "rsa-derive-from-pq" +# define OSSL_PKEY_PARAM_RSA_DIGEST OSSL_PKEY_PARAM_DIGEST +# define OSSL_PKEY_PARAM_RSA_DIGEST_PROPS OSSL_PKEY_PARAM_PROPERTIES +# define OSSL_PKEY_PARAM_RSA_E "e" +# define OSSL_PKEY_PARAM_RSA_EXPONENT "rsa-exponent" +# define OSSL_PKEY_PARAM_RSA_EXPONENT1 "rsa-exponent1" +# define OSSL_PKEY_PARAM_RSA_EXPONENT10 "rsa-exponent10" +# define OSSL_PKEY_PARAM_RSA_EXPONENT2 "rsa-exponent2" +# define OSSL_PKEY_PARAM_RSA_EXPONENT3 "rsa-exponent3" +# define OSSL_PKEY_PARAM_RSA_EXPONENT4 "rsa-exponent4" +# define OSSL_PKEY_PARAM_RSA_EXPONENT5 "rsa-exponent5" +# define OSSL_PKEY_PARAM_RSA_EXPONENT6 "rsa-exponent6" +# define OSSL_PKEY_PARAM_RSA_EXPONENT7 "rsa-exponent7" +# define OSSL_PKEY_PARAM_RSA_EXPONENT8 "rsa-exponent8" +# define OSSL_PKEY_PARAM_RSA_EXPONENT9 "rsa-exponent9" +# define OSSL_PKEY_PARAM_RSA_FACTOR "rsa-factor" +# define OSSL_PKEY_PARAM_RSA_FACTOR1 "rsa-factor1" +# define OSSL_PKEY_PARAM_RSA_FACTOR10 "rsa-factor10" +# define OSSL_PKEY_PARAM_RSA_FACTOR2 "rsa-factor2" +# define OSSL_PKEY_PARAM_RSA_FACTOR3 "rsa-factor3" +# define OSSL_PKEY_PARAM_RSA_FACTOR4 "rsa-factor4" +# define OSSL_PKEY_PARAM_RSA_FACTOR5 "rsa-factor5" +# define OSSL_PKEY_PARAM_RSA_FACTOR6 "rsa-factor6" +# define OSSL_PKEY_PARAM_RSA_FACTOR7 "rsa-factor7" +# define OSSL_PKEY_PARAM_RSA_FACTOR8 "rsa-factor8" +# define OSSL_PKEY_PARAM_RSA_FACTOR9 "rsa-factor9" +# define OSSL_PKEY_PARAM_RSA_MASKGENFUNC OSSL_PKEY_PARAM_MASKGENFUNC +# define OSSL_PKEY_PARAM_RSA_MGF1_DIGEST OSSL_PKEY_PARAM_MGF1_DIGEST +# define OSSL_PKEY_PARAM_RSA_N "n" +# define OSSL_PKEY_PARAM_RSA_PRIMES "primes" +# define OSSL_PKEY_PARAM_RSA_PSS_SALTLEN "saltlen" +# define OSSL_PKEY_PARAM_RSA_TEST_P1 "p1" +# define OSSL_PKEY_PARAM_RSA_TEST_P2 "p2" +# define OSSL_PKEY_PARAM_RSA_TEST_Q1 "q1" +# define OSSL_PKEY_PARAM_RSA_TEST_Q2 "q2" +# define OSSL_PKEY_PARAM_RSA_TEST_XP "xp" +# define OSSL_PKEY_PARAM_RSA_TEST_XP1 "xp1" +# define OSSL_PKEY_PARAM_RSA_TEST_XP2 "xp2" +# define OSSL_PKEY_PARAM_RSA_TEST_XQ "xq" +# define OSSL_PKEY_PARAM_RSA_TEST_XQ1 "xq1" +# define OSSL_PKEY_PARAM_RSA_TEST_XQ2 "xq2" +# define OSSL_PKEY_PARAM_SECURITY_BITS "security-bits" +# define OSSL_PKEY_PARAM_SLH_DSA_SEED "seed" +# define OSSL_PKEY_PARAM_USE_COFACTOR_ECDH OSSL_PKEY_PARAM_USE_COFACTOR_FLAG +# define OSSL_PKEY_PARAM_USE_COFACTOR_FLAG "use-cofactor-flag" +# define OSSL_PROV_PARAM_BUILDINFO "buildinfo" +# define OSSL_PROV_PARAM_CORE_MODULE_FILENAME "module-filename" +# define OSSL_PROV_PARAM_CORE_PROV_NAME "provider-name" +# define OSSL_PROV_PARAM_CORE_VERSION "openssl-version" +# define OSSL_PROV_PARAM_DRBG_TRUNC_DIGEST "drbg-no-trunc-md" +# define OSSL_PROV_PARAM_DSA_SIGN_DISABLED "dsa-sign-disabled" +# define OSSL_PROV_PARAM_ECDH_COFACTOR_CHECK "ecdh-cofactor-check" +# define OSSL_PROV_PARAM_HKDF_DIGEST_CHECK "hkdf-digest-check" +# define OSSL_PROV_PARAM_HKDF_KEY_CHECK "hkdf-key-check" +# define OSSL_PROV_PARAM_HMAC_KEY_CHECK "hmac-key-check" +# define OSSL_PROV_PARAM_KBKDF_KEY_CHECK "kbkdf-key-check" +# define OSSL_PROV_PARAM_KMAC_KEY_CHECK "kmac-key-check" +# define OSSL_PROV_PARAM_NAME "name" +# define OSSL_PROV_PARAM_NO_SHORT_MAC "no-short-mac" +# define OSSL_PROV_PARAM_PBKDF2_LOWER_BOUND_CHECK "pbkdf2-lower-bound-check" +# define OSSL_PROV_PARAM_RSA_PKCS15_PAD_DISABLED "rsa-pkcs15-pad-disabled" +# define OSSL_PROV_PARAM_RSA_PSS_SALTLEN_CHECK "rsa-pss-saltlen-check" +# define OSSL_PROV_PARAM_RSA_SIGN_X931_PAD_DISABLED "rsa-sign-x931-pad-disabled" +# define OSSL_PROV_PARAM_SECURITY_CHECKS "security-checks" +# define OSSL_PROV_PARAM_SELF_TEST_DESC "st-desc" +# define OSSL_PROV_PARAM_SELF_TEST_PHASE "st-phase" +# define OSSL_PROV_PARAM_SELF_TEST_TYPE "st-type" +# define OSSL_PROV_PARAM_SIGNATURE_DIGEST_CHECK "signature-digest-check" +# define OSSL_PROV_PARAM_SSHKDF_DIGEST_CHECK "sshkdf-digest-check" +# define OSSL_PROV_PARAM_SSHKDF_KEY_CHECK "sshkdf-key-check" +# define OSSL_PROV_PARAM_SSKDF_DIGEST_CHECK "sskdf-digest-check" +# define OSSL_PROV_PARAM_SSKDF_KEY_CHECK "sskdf-key-check" +# define OSSL_PROV_PARAM_STATUS "status" +# define OSSL_PROV_PARAM_TDES_ENCRYPT_DISABLED "tdes-encrypt-disabled" +# define OSSL_PROV_PARAM_TLS13_KDF_DIGEST_CHECK "tls13-kdf-digest-check" +# define OSSL_PROV_PARAM_TLS13_KDF_KEY_CHECK "tls13-kdf-key-check" +# define OSSL_PROV_PARAM_TLS1_PRF_DIGEST_CHECK "tls1-prf-digest-check" +# define OSSL_PROV_PARAM_TLS1_PRF_EMS_CHECK "tls1-prf-ems-check" +# define OSSL_PROV_PARAM_TLS1_PRF_KEY_CHECK "tls1-prf-key-check" +# define OSSL_PROV_PARAM_VERSION "version" +# define OSSL_PROV_PARAM_X942KDF_KEY_CHECK "x942kdf-key-check" +# define OSSL_PROV_PARAM_X963KDF_DIGEST_CHECK "x963kdf-digest-check" +# define OSSL_PROV_PARAM_X963KDF_KEY_CHECK "x963kdf-key-check" +# define OSSL_RAND_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_RAND_PARAM_GENERATE "generate" +# define OSSL_RAND_PARAM_MAX_REQUEST "max_request" +# define OSSL_RAND_PARAM_STATE "state" +# define OSSL_RAND_PARAM_STRENGTH "strength" +# define OSSL_RAND_PARAM_TEST_ENTROPY "test_entropy" +# define OSSL_RAND_PARAM_TEST_NONCE "test_nonce" +# define OSSL_SIGNATURE_PARAM_ADD_RANDOM "additional-random" +# define OSSL_SIGNATURE_PARAM_ALGORITHM_ID OSSL_PKEY_PARAM_ALGORITHM_ID +# define OSSL_SIGNATURE_PARAM_ALGORITHM_ID_PARAMS OSSL_PKEY_PARAM_ALGORITHM_ID_PARAMS +# define OSSL_SIGNATURE_PARAM_CONTEXT_STRING "context-string" +# define OSSL_SIGNATURE_PARAM_DETERMINISTIC "deterministic" +# define OSSL_SIGNATURE_PARAM_DIGEST OSSL_PKEY_PARAM_DIGEST +# define OSSL_SIGNATURE_PARAM_DIGEST_SIZE OSSL_PKEY_PARAM_DIGEST_SIZE +# define OSSL_SIGNATURE_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_SIGNATURE_PARAM_FIPS_DIGEST_CHECK OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK +# define OSSL_SIGNATURE_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_SIGNATURE_PARAM_FIPS_RSA_PSS_SALTLEN_CHECK "rsa-pss-saltlen-check" +# define OSSL_SIGNATURE_PARAM_FIPS_SIGN_CHECK OSSL_PKEY_PARAM_FIPS_SIGN_CHECK +# define OSSL_SIGNATURE_PARAM_FIPS_SIGN_X931_PAD_CHECK "sign-x931-pad-check" +# define OSSL_SIGNATURE_PARAM_FIPS_VERIFY_MESSAGE "verify-message" +# define OSSL_SIGNATURE_PARAM_INSTANCE "instance" +# define OSSL_SIGNATURE_PARAM_KAT "kat" +# define OSSL_SIGNATURE_PARAM_MESSAGE_ENCODING "message-encoding" +# define OSSL_SIGNATURE_PARAM_MGF1_DIGEST OSSL_PKEY_PARAM_MGF1_DIGEST +# define OSSL_SIGNATURE_PARAM_MGF1_PROPERTIES OSSL_PKEY_PARAM_MGF1_PROPERTIES +# define OSSL_SIGNATURE_PARAM_MU "mu" +# define OSSL_SIGNATURE_PARAM_NONCE_TYPE "nonce-type" +# define OSSL_SIGNATURE_PARAM_PAD_MODE OSSL_PKEY_PARAM_PAD_MODE +# define OSSL_SIGNATURE_PARAM_PROPERTIES OSSL_PKEY_PARAM_PROPERTIES +# define OSSL_SIGNATURE_PARAM_PSS_SALTLEN "saltlen" +# define OSSL_SIGNATURE_PARAM_SIGNATURE "signature" +# define OSSL_SIGNATURE_PARAM_TEST_ENTROPY "test-entropy" +# define OSSL_SKEY_PARAM_KEY_LENGTH "key-length" +# define OSSL_SKEY_PARAM_RAW_BYTES "raw-bytes" +# define OSSL_STORE_PARAM_ALIAS "alias" +# define OSSL_STORE_PARAM_DIGEST "digest" +# define OSSL_STORE_PARAM_EXPECT "expect" +# define OSSL_STORE_PARAM_FINGERPRINT "fingerprint" +# define OSSL_STORE_PARAM_INPUT_TYPE "input-type" +# define OSSL_STORE_PARAM_ISSUER "name" +# define OSSL_STORE_PARAM_PROPERTIES "properties" +# define OSSL_STORE_PARAM_SERIAL "serial" +# define OSSL_STORE_PARAM_SUBJECT "subject" + +# ifdef __cplusplus +} +# endif + +#endif diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/no-asm/include/openssl/crmf.h b/deps/openssl/config/archs/darwin64-arm64-cc/no-asm/include/openssl/crmf.h index 71b747ed33d239..4bf550fd47daa9 100644 --- a/deps/openssl/config/archs/darwin64-arm64-cc/no-asm/include/openssl/crmf.h +++ b/deps/openssl/config/archs/darwin64-arm64-cc/no-asm/include/openssl/crmf.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/crmf.h.in * - * Copyright 2007-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2007-2025 The OpenSSL Project Authors. All Rights Reserved. * Copyright Nokia 2007-2019 * Copyright Siemens AG 2015-2019 * @@ -26,6 +26,7 @@ # include # include # include /* for GENERAL_NAME etc. */ +# include /* explicit #includes not strictly needed since implied by the above: */ # include @@ -43,9 +44,12 @@ extern "C" { # define OSSL_CRMF_SUBSEQUENTMESSAGE_ENCRCERT 0 # define OSSL_CRMF_SUBSEQUENTMESSAGE_CHALLENGERESP 1 - typedef struct ossl_crmf_encryptedvalue_st OSSL_CRMF_ENCRYPTEDVALUE; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_ENCRYPTEDVALUE) + +typedef struct ossl_crmf_encryptedkey_st OSSL_CRMF_ENCRYPTEDKEY; +DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_ENCRYPTEDKEY) + typedef struct ossl_crmf_msg_st OSSL_CRMF_MSG; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_MSG) DECLARE_ASN1_DUP_FUNCTION(OSSL_CRMF_MSG) @@ -77,6 +81,36 @@ SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CRMF_MSG, OSSL_CRMF_MSG, OSSL_CRMF_MSG) #define sk_OSSL_CRMF_MSG_set_cmp_func(sk, cmp) ((sk_OSSL_CRMF_MSG_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CRMF_MSG_sk_type(sk), ossl_check_OSSL_CRMF_MSG_compfunc_type(cmp))) typedef struct ossl_crmf_attributetypeandvalue_st OSSL_CRMF_ATTRIBUTETYPEANDVALUE; +void OSSL_CRMF_ATTRIBUTETYPEANDVALUE_free(OSSL_CRMF_ATTRIBUTETYPEANDVALUE *v); +DECLARE_ASN1_DUP_FUNCTION(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CRMF_ATTRIBUTETYPEANDVALUE, OSSL_CRMF_ATTRIBUTETYPEANDVALUE, OSSL_CRMF_ATTRIBUTETYPEANDVALUE) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_value(sk, idx) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_value(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), (idx))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_new(cmp) ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_new(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_compfunc_type(cmp))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_new_null() ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_new_null()) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_new_reserve(cmp, n) ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_compfunc_type(cmp), (n))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), (n)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_free(sk) OPENSSL_sk_free(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_delete(sk, i) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_delete(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), (i))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_delete_ptr(sk, ptr) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_pop(sk) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_pop(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_shift(sk) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_shift(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk),ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_freefunc_type(freefunc)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr), (idx)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_set(sk, idx, ptr) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_set(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), (idx), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr), pnum) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_dup(sk) ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_dup(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_copyfunc_type(copyfunc), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_freefunc_type(freefunc))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_set_cmp_func(sk, cmp) ((sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_compfunc_type(cmp))) + + typedef struct ossl_crmf_pbmparameter_st OSSL_CRMF_PBMPARAMETER; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_PBMPARAMETER) typedef struct ossl_crmf_poposigningkey_st OSSL_CRMF_POPOSIGNINGKEY; @@ -118,6 +152,7 @@ typedef struct ossl_crmf_singlepubinfo_st OSSL_CRMF_SINGLEPUBINFO; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_SINGLEPUBINFO) typedef struct ossl_crmf_certtemplate_st OSSL_CRMF_CERTTEMPLATE; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_CERTTEMPLATE) +DECLARE_ASN1_DUP_FUNCTION(OSSL_CRMF_CERTTEMPLATE) typedef STACK_OF(OSSL_CRMF_MSG) OSSL_CRMF_MSGS; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_MSGS) @@ -198,12 +233,14 @@ int OSSL_CRMF_MSGS_verify_popo(const OSSL_CRMF_MSGS *reqs, int rid, int acceptRAVerified, OSSL_LIB_CTX *libctx, const char *propq); OSSL_CRMF_CERTTEMPLATE *OSSL_CRMF_MSG_get0_tmpl(const OSSL_CRMF_MSG *crm); -const ASN1_INTEGER -*OSSL_CRMF_CERTTEMPLATE_get0_serialNumber(const OSSL_CRMF_CERTTEMPLATE *tmpl); +X509_PUBKEY +*OSSL_CRMF_CERTTEMPLATE_get0_publicKey(const OSSL_CRMF_CERTTEMPLATE *tmpl); const X509_NAME *OSSL_CRMF_CERTTEMPLATE_get0_subject(const OSSL_CRMF_CERTTEMPLATE *tmpl); const X509_NAME *OSSL_CRMF_CERTTEMPLATE_get0_issuer(const OSSL_CRMF_CERTTEMPLATE *tmpl); +const ASN1_INTEGER +*OSSL_CRMF_CERTTEMPLATE_get0_serialNumber(const OSSL_CRMF_CERTTEMPLATE *tmpl); X509_EXTENSIONS *OSSL_CRMF_CERTTEMPLATE_get0_extensions(const OSSL_CRMF_CERTTEMPLATE *tmpl); const X509_NAME @@ -215,10 +252,24 @@ int OSSL_CRMF_CERTTEMPLATE_fill(OSSL_CRMF_CERTTEMPLATE *tmpl, const X509_NAME *subject, const X509_NAME *issuer, const ASN1_INTEGER *serial); -X509 -*OSSL_CRMF_ENCRYPTEDVALUE_get1_encCert(const OSSL_CRMF_ENCRYPTEDVALUE *ecert, - OSSL_LIB_CTX *libctx, const char *propq, - EVP_PKEY *pkey); +X509 *OSSL_CRMF_ENCRYPTEDVALUE_get1_encCert(const OSSL_CRMF_ENCRYPTEDVALUE *ecert, + OSSL_LIB_CTX *libctx, const char *propq, + EVP_PKEY *pkey); +X509 *OSSL_CRMF_ENCRYPTEDKEY_get1_encCert(const OSSL_CRMF_ENCRYPTEDKEY *ecert, + OSSL_LIB_CTX *libctx, const char *propq, + EVP_PKEY *pkey, unsigned int flags); +unsigned char +*OSSL_CRMF_ENCRYPTEDVALUE_decrypt(const OSSL_CRMF_ENCRYPTEDVALUE *enc, + OSSL_LIB_CTX *libctx, const char *propq, + EVP_PKEY *pkey, int *outlen); +EVP_PKEY *OSSL_CRMF_ENCRYPTEDKEY_get1_pkey(const OSSL_CRMF_ENCRYPTEDKEY *encryptedKey, + X509_STORE *ts, STACK_OF(X509) *extra, EVP_PKEY *pkey, + X509 *cert, ASN1_OCTET_STRING *secret, + OSSL_LIB_CTX *libctx, const char *propq); +int OSSL_CRMF_MSG_centralkeygen_requested(const OSSL_CRMF_MSG *crm, const X509_REQ *p10cr); +# ifndef OPENSSL_NO_CMS +OSSL_CRMF_ENCRYPTEDKEY *OSSL_CRMF_ENCRYPTEDKEY_init_envdata(CMS_EnvelopedData *envdata); +# endif # ifdef __cplusplus } diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/no-asm/include/openssl/crypto.h b/deps/openssl/config/archs/darwin64-arm64-cc/no-asm/include/openssl/crypto.h index 3f40be6d8c61d5..fd2cfd3e5a9ac4 100644 --- a/deps/openssl/config/archs/darwin64-arm64-cc/no-asm/include/openssl/crypto.h +++ b/deps/openssl/config/archs/darwin64-arm64-cc/no-asm/include/openssl/crypto.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/crypto.h.in * - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2024 The OpenSSL Project Authors. All Rights Reserved. * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved * * Licensed under the Apache License 2.0 (the "License"). You may not use @@ -85,9 +85,15 @@ int CRYPTO_THREAD_unlock(CRYPTO_RWLOCK *lock); void CRYPTO_THREAD_lock_free(CRYPTO_RWLOCK *lock); int CRYPTO_atomic_add(int *val, int amount, int *ret, CRYPTO_RWLOCK *lock); +int CRYPTO_atomic_add64(uint64_t *val, uint64_t op, uint64_t *ret, + CRYPTO_RWLOCK *lock); +int CRYPTO_atomic_and(uint64_t *val, uint64_t op, uint64_t *ret, + CRYPTO_RWLOCK *lock); int CRYPTO_atomic_or(uint64_t *val, uint64_t op, uint64_t *ret, CRYPTO_RWLOCK *lock); int CRYPTO_atomic_load(uint64_t *val, uint64_t *ret, CRYPTO_RWLOCK *lock); +int CRYPTO_atomic_load_int(int *val, int *ret, CRYPTO_RWLOCK *lock); +int CRYPTO_atomic_store(uint64_t *dst, uint64_t val, CRYPTO_RWLOCK *lock); /* No longer needed, so this is a no-op */ #define OPENSSL_malloc_init() while(0) continue @@ -96,6 +102,9 @@ int CRYPTO_atomic_load(uint64_t *val, uint64_t *ret, CRYPTO_RWLOCK *lock); CRYPTO_malloc(num, OPENSSL_FILE, OPENSSL_LINE) # define OPENSSL_zalloc(num) \ CRYPTO_zalloc(num, OPENSSL_FILE, OPENSSL_LINE) +# define OPENSSL_aligned_alloc(num, alignment, freeptr) \ + CRYPTO_aligned_alloc(num, alignment, freeptr, \ + OPENSSL_FILE, OPENSSL_LINE) # define OPENSSL_realloc(addr, num) \ CRYPTO_realloc(addr, num, OPENSSL_FILE, OPENSSL_LINE) # define OPENSSL_clear_realloc(addr, old_num, num) \ @@ -124,6 +133,7 @@ int CRYPTO_atomic_load(uint64_t *val, uint64_t *ret, CRYPTO_RWLOCK *lock); size_t OPENSSL_strlcpy(char *dst, const char *src, size_t siz); size_t OPENSSL_strlcat(char *dst, const char *src, size_t siz); size_t OPENSSL_strnlen(const char *str, size_t maxlen); +int OPENSSL_strtoul(const char *str, char **endptr, int base, unsigned long *num); int OPENSSL_buf2hexstr_ex(char *str, size_t str_n, size_t *strlength, const unsigned char *buf, size_t buflen, const char sep); @@ -160,6 +170,7 @@ const char *OpenSSL_version(int type); # define OPENSSL_FULL_VERSION_STRING 7 # define OPENSSL_MODULES_DIR 8 # define OPENSSL_CPU_INFO 9 +# define OPENSSL_WINCTX 10 const char *OPENSSL_info(int type); /* @@ -174,6 +185,7 @@ const char *OPENSSL_info(int type); # define OPENSSL_INFO_LIST_SEPARATOR 1006 # define OPENSSL_INFO_SEED_SOURCE 1007 # define OPENSSL_INFO_CPU_SETTINGS 1008 +# define OPENSSL_INFO_WINDOWS_CONTEXT 1009 int OPENSSL_issetugid(void); @@ -341,11 +353,14 @@ void CRYPTO_get_mem_functions(CRYPTO_malloc_fn *malloc_fn, CRYPTO_realloc_fn *realloc_fn, CRYPTO_free_fn *free_fn); -void *CRYPTO_malloc(size_t num, const char *file, int line); -void *CRYPTO_zalloc(size_t num, const char *file, int line); -void *CRYPTO_memdup(const void *str, size_t siz, const char *file, int line); -char *CRYPTO_strdup(const char *str, const char *file, int line); -char *CRYPTO_strndup(const char *str, size_t s, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_malloc(size_t num, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_zalloc(size_t num, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_aligned_alloc(size_t num, size_t align, + void **freeptr, const char *file, + int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_memdup(const void *str, size_t siz, const char *file, int line); +OSSL_CRYPTO_ALLOC char *CRYPTO_strdup(const char *str, const char *file, int line); +OSSL_CRYPTO_ALLOC char *CRYPTO_strndup(const char *str, size_t s, const char *file, int line); void CRYPTO_free(void *ptr, const char *file, int line); void CRYPTO_clear_free(void *ptr, size_t num, const char *file, int line); void *CRYPTO_realloc(void *addr, size_t num, const char *file, int line); @@ -354,8 +369,8 @@ void *CRYPTO_clear_realloc(void *addr, size_t old_num, size_t num, int CRYPTO_secure_malloc_init(size_t sz, size_t minsize); int CRYPTO_secure_malloc_done(void); -void *CRYPTO_secure_malloc(size_t num, const char *file, int line); -void *CRYPTO_secure_zalloc(size_t num, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_secure_malloc(size_t num, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_secure_zalloc(size_t num, const char *file, int line); void CRYPTO_secure_free(void *ptr, const char *file, int line); void CRYPTO_secure_clear_free(void *ptr, size_t num, const char *file, int line); @@ -376,6 +391,9 @@ void OPENSSL_cleanse(void *ptr, size_t len); # define CRYPTO_MEM_CHECK_ENABLE 0x2 /* Control and mode bit */ # define CRYPTO_MEM_CHECK_DISABLE 0x3 /* Control only */ +/* max allowed length for value of OPENSSL_MALLOC_FAILURES env var. */ +# define CRYPTO_MEM_CHECK_MAX_FS 256 + void CRYPTO_get_alloc_counts(int *mcount, int *rcount, int *fcount); # ifndef OPENSSL_NO_DEPRECATED_3_0 # define OPENSSL_mem_debug_push(info) \ @@ -551,6 +569,13 @@ int OSSL_LIB_CTX_load_config(OSSL_LIB_CTX *ctx, const char *config_file); void OSSL_LIB_CTX_free(OSSL_LIB_CTX *); OSSL_LIB_CTX *OSSL_LIB_CTX_get0_global_default(void); OSSL_LIB_CTX *OSSL_LIB_CTX_set0_default(OSSL_LIB_CTX *libctx); +int OSSL_LIB_CTX_get_conf_diagnostics(OSSL_LIB_CTX *ctx); +void OSSL_LIB_CTX_set_conf_diagnostics(OSSL_LIB_CTX *ctx, int value); + +void OSSL_sleep(uint64_t millis); + + +void *OSSL_LIB_CTX_get_data(OSSL_LIB_CTX *ctx, int index); # ifdef __cplusplus } diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/no-asm/include/openssl/ct.h b/deps/openssl/config/archs/darwin64-arm64-cc/no-asm/include/openssl/ct.h index b6dd8c3547710a..e6dd1192a4e0b3 100644 --- a/deps/openssl/config/archs/darwin64-arm64-cc/no-asm/include/openssl/ct.h +++ b/deps/openssl/config/archs/darwin64-arm64-cc/no-asm/include/openssl/ct.h @@ -133,7 +133,7 @@ typedef enum { */ CT_POLICY_EVAL_CTX *CT_POLICY_EVAL_CTX_new_ex(OSSL_LIB_CTX *libctx, const char *propq); - + /* * The same as CT_POLICY_EVAL_CTX_new_ex() but the default library * context and property query string is used. diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/no-asm/include/openssl/err.h b/deps/openssl/config/archs/darwin64-arm64-cc/no-asm/include/openssl/err.h index 2abf2483488181..daca18e7b757b0 100644 --- a/deps/openssl/config/archs/darwin64-arm64-cc/no-asm/include/openssl/err.h +++ b/deps/openssl/config/archs/darwin64-arm64-cc/no-asm/include/openssl/err.h @@ -1,5 +1,5 @@ /* - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -372,7 +372,7 @@ typedef struct ERR_string_data_st { } ERR_STRING_DATA; DEFINE_LHASH_OF_INTERNAL(ERR_STRING_DATA); -#define lh_ERR_STRING_DATA_new(hfn, cmp) ((LHASH_OF(ERR_STRING_DATA) *)OPENSSL_LH_new(ossl_check_ERR_STRING_DATA_lh_hashfunc_type(hfn), ossl_check_ERR_STRING_DATA_lh_compfunc_type(cmp))) +#define lh_ERR_STRING_DATA_new(hfn, cmp) ((LHASH_OF(ERR_STRING_DATA) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new(ossl_check_ERR_STRING_DATA_lh_hashfunc_type(hfn), ossl_check_ERR_STRING_DATA_lh_compfunc_type(cmp)), lh_ERR_STRING_DATA_hash_thunk, lh_ERR_STRING_DATA_comp_thunk, lh_ERR_STRING_DATA_doall_thunk, lh_ERR_STRING_DATA_doall_arg_thunk)) #define lh_ERR_STRING_DATA_free(lh) OPENSSL_LH_free(ossl_check_ERR_STRING_DATA_lh_type(lh)) #define lh_ERR_STRING_DATA_flush(lh) OPENSSL_LH_flush(ossl_check_ERR_STRING_DATA_lh_type(lh)) #define lh_ERR_STRING_DATA_insert(lh, ptr) ((ERR_STRING_DATA *)OPENSSL_LH_insert(ossl_check_ERR_STRING_DATA_lh_type(lh), ossl_check_ERR_STRING_DATA_lh_plain_type(ptr))) @@ -496,6 +496,14 @@ int ERR_get_next_error_library(void); int ERR_set_mark(void); int ERR_pop_to_mark(void); int ERR_clear_last_mark(void); +int ERR_count_to_mark(void); +int ERR_pop(void); + +ERR_STATE *OSSL_ERR_STATE_new(void); +void OSSL_ERR_STATE_save(ERR_STATE *es); +void OSSL_ERR_STATE_save_to_mark(ERR_STATE *es); +void OSSL_ERR_STATE_restore(const ERR_STATE *es); +void OSSL_ERR_STATE_free(ERR_STATE *es); #ifdef __cplusplus } diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/no-asm/include/openssl/fipskey.h b/deps/openssl/config/archs/darwin64-arm64-cc/no-asm/include/openssl/fipskey.h index 42ba014b313ba8..929db18c678364 100644 --- a/deps/openssl/config/archs/darwin64-arm64-cc/no-asm/include/openssl/fipskey.h +++ b/deps/openssl/config/archs/darwin64-arm64-cc/no-asm/include/openssl/fipskey.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/fipskey.h.in * - * Copyright 2020-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2020-2024 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -29,6 +29,11 @@ extern "C" { */ #define FIPS_KEY_STRING "f4556650ac31d35461610bac4ed81b1a181b2d8a43ea2854cbae22ca74560813" +/* + * The FIPS provider vendor name, as a string. + */ +#define FIPS_VENDOR "OpenSSL FIPS Provider" + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/no-asm/include/openssl/lhash.h b/deps/openssl/config/archs/darwin64-arm64-cc/no-asm/include/openssl/lhash.h index 39dd6254acdeb6..62c55b20fd9716 100644 --- a/deps/openssl/config/archs/darwin64-arm64-cc/no-asm/include/openssl/lhash.h +++ b/deps/openssl/config/archs/darwin64-arm64-cc/no-asm/include/openssl/lhash.h @@ -1,5 +1,5 @@ /* - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2024 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -24,6 +24,9 @@ # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -31,9 +34,13 @@ extern "C" { typedef struct lhash_node_st OPENSSL_LH_NODE; typedef int (*OPENSSL_LH_COMPFUNC) (const void *, const void *); +typedef int (*OPENSSL_LH_COMPFUNCTHUNK) (const void *, const void *, OPENSSL_LH_COMPFUNC cfn); typedef unsigned long (*OPENSSL_LH_HASHFUNC) (const void *); +typedef unsigned long (*OPENSSL_LH_HASHFUNCTHUNK) (const void *, OPENSSL_LH_HASHFUNC hfn); typedef void (*OPENSSL_LH_DOALL_FUNC) (void *); +typedef void (*OPENSSL_LH_DOALL_FUNC_THUNK) (void *, OPENSSL_LH_DOALL_FUNC doall); typedef void (*OPENSSL_LH_DOALL_FUNCARG) (void *, void *); +typedef void (*OPENSSL_LH_DOALL_FUNCARG_THUNK) (void *, void *, OPENSSL_LH_DOALL_FUNCARG doall); typedef struct lhash_st OPENSSL_LHASH; /* @@ -79,26 +86,40 @@ typedef struct lhash_st OPENSSL_LHASH; int OPENSSL_LH_error(OPENSSL_LHASH *lh); OPENSSL_LHASH *OPENSSL_LH_new(OPENSSL_LH_HASHFUNC h, OPENSSL_LH_COMPFUNC c); +OPENSSL_LHASH *OPENSSL_LH_set_thunks(OPENSSL_LHASH *lh, + OPENSSL_LH_HASHFUNCTHUNK hw, + OPENSSL_LH_COMPFUNCTHUNK cw, + OPENSSL_LH_DOALL_FUNC_THUNK daw, + OPENSSL_LH_DOALL_FUNCARG_THUNK daaw); void OPENSSL_LH_free(OPENSSL_LHASH *lh); void OPENSSL_LH_flush(OPENSSL_LHASH *lh); void *OPENSSL_LH_insert(OPENSSL_LHASH *lh, void *data); void *OPENSSL_LH_delete(OPENSSL_LHASH *lh, const void *data); void *OPENSSL_LH_retrieve(OPENSSL_LHASH *lh, const void *data); void OPENSSL_LH_doall(OPENSSL_LHASH *lh, OPENSSL_LH_DOALL_FUNC func); -void OPENSSL_LH_doall_arg(OPENSSL_LHASH *lh, OPENSSL_LH_DOALL_FUNCARG func, void *arg); +void OPENSSL_LH_doall_arg(OPENSSL_LHASH *lh, + OPENSSL_LH_DOALL_FUNCARG func, void *arg); +void OPENSSL_LH_doall_arg_thunk(OPENSSL_LHASH *lh, + OPENSSL_LH_DOALL_FUNCARG_THUNK daaw, + OPENSSL_LH_DOALL_FUNCARG fn, void *arg); + unsigned long OPENSSL_LH_strhash(const char *c); unsigned long OPENSSL_LH_num_items(const OPENSSL_LHASH *lh); unsigned long OPENSSL_LH_get_down_load(const OPENSSL_LHASH *lh); void OPENSSL_LH_set_down_load(OPENSSL_LHASH *lh, unsigned long down_load); # ifndef OPENSSL_NO_STDIO -void OPENSSL_LH_stats(const OPENSSL_LHASH *lh, FILE *fp); -void OPENSSL_LH_node_stats(const OPENSSL_LHASH *lh, FILE *fp); -void OPENSSL_LH_node_usage_stats(const OPENSSL_LHASH *lh, FILE *fp); +# ifndef OPENSSL_NO_DEPRECATED_3_1 +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_stats(const OPENSSL_LHASH *lh, FILE *fp); +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_node_stats(const OPENSSL_LHASH *lh, FILE *fp); +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_node_usage_stats(const OPENSSL_LHASH *lh, FILE *fp); +# endif +# endif +# ifndef OPENSSL_NO_DEPRECATED_3_1 +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_stats_bio(const OPENSSL_LHASH *lh, BIO *out); +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_node_stats_bio(const OPENSSL_LHASH *lh, BIO *out); +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_node_usage_stats_bio(const OPENSSL_LHASH *lh, BIO *out); # endif -void OPENSSL_LH_stats_bio(const OPENSSL_LHASH *lh, BIO *out); -void OPENSSL_LH_node_stats_bio(const OPENSSL_LHASH *lh, BIO *out); -void OPENSSL_LH_node_usage_stats_bio(const OPENSSL_LHASH *lh, BIO *out); # ifndef OPENSSL_NO_DEPRECATED_1_1_0 # define _LHASH OPENSSL_LHASH @@ -129,110 +150,190 @@ void OPENSSL_LH_node_usage_stats_bio(const OPENSSL_LHASH *lh, BIO *out); /* Helper macro for internal use */ # define DEFINE_LHASH_OF_INTERNAL(type) \ - LHASH_OF(type) { union lh_##type##_dummy { void* d1; unsigned long d2; int d3; } dummy; }; \ + LHASH_OF(type) { \ + union lh_##type##_dummy { void* d1; unsigned long d2; int d3; } dummy; \ + }; \ typedef int (*lh_##type##_compfunc)(const type *a, const type *b); \ typedef unsigned long (*lh_##type##_hashfunc)(const type *a); \ typedef void (*lh_##type##_doallfunc)(type *a); \ - static ossl_unused ossl_inline type *ossl_check_##type##_lh_plain_type(type *ptr) \ + static ossl_inline unsigned long lh_##type##_hash_thunk(const void *data, OPENSSL_LH_HASHFUNC hfn) \ + { \ + unsigned long (*hfn_conv)(const type *) = (unsigned long (*)(const type *))hfn; \ + return hfn_conv((const type *)data); \ + } \ + static ossl_inline int lh_##type##_comp_thunk(const void *da, const void *db, OPENSSL_LH_COMPFUNC cfn) \ + { \ + int (*cfn_conv)(const type *, const type *) = (int (*)(const type *, const type *))cfn; \ + return cfn_conv((const type *)da, (const type *)db); \ + } \ + static ossl_inline void lh_##type##_doall_thunk(void *node, OPENSSL_LH_DOALL_FUNC doall) \ + { \ + void (*doall_conv)(type *) = (void (*)(type *))doall; \ + doall_conv((type *)node); \ + } \ + static ossl_inline void lh_##type##_doall_arg_thunk(void *node, void *arg, OPENSSL_LH_DOALL_FUNCARG doall) \ + { \ + void (*doall_conv)(type *, void *) = (void (*)(type *, void *))doall; \ + doall_conv((type *)node, arg); \ + } \ + static ossl_unused ossl_inline type *\ + ossl_check_##type##_lh_plain_type(type *ptr) \ { \ return ptr; \ } \ - static ossl_unused ossl_inline const type *ossl_check_const_##type##_lh_plain_type(const type *ptr) \ + static ossl_unused ossl_inline const type * \ + ossl_check_const_##type##_lh_plain_type(const type *ptr) \ { \ return ptr; \ } \ - static ossl_unused ossl_inline const OPENSSL_LHASH *ossl_check_const_##type##_lh_type(const LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline const OPENSSL_LHASH * \ + ossl_check_const_##type##_lh_type(const LHASH_OF(type) *lh) \ { \ return (const OPENSSL_LHASH *)lh; \ } \ - static ossl_unused ossl_inline OPENSSL_LHASH *ossl_check_##type##_lh_type(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline OPENSSL_LHASH * \ + ossl_check_##type##_lh_type(LHASH_OF(type) *lh) \ { \ return (OPENSSL_LHASH *)lh; \ } \ - static ossl_unused ossl_inline OPENSSL_LH_COMPFUNC ossl_check_##type##_lh_compfunc_type(lh_##type##_compfunc cmp) \ + static ossl_unused ossl_inline OPENSSL_LH_COMPFUNC \ + ossl_check_##type##_lh_compfunc_type(lh_##type##_compfunc cmp) \ { \ return (OPENSSL_LH_COMPFUNC)cmp; \ } \ - static ossl_unused ossl_inline OPENSSL_LH_HASHFUNC ossl_check_##type##_lh_hashfunc_type(lh_##type##_hashfunc hfn) \ + static ossl_unused ossl_inline OPENSSL_LH_HASHFUNC \ + ossl_check_##type##_lh_hashfunc_type(lh_##type##_hashfunc hfn) \ { \ return (OPENSSL_LH_HASHFUNC)hfn; \ } \ - static ossl_unused ossl_inline OPENSSL_LH_DOALL_FUNC ossl_check_##type##_lh_doallfunc_type(lh_##type##_doallfunc dfn) \ + static ossl_unused ossl_inline OPENSSL_LH_DOALL_FUNC \ + ossl_check_##type##_lh_doallfunc_type(lh_##type##_doallfunc dfn) \ { \ return (OPENSSL_LH_DOALL_FUNC)dfn; \ } \ LHASH_OF(type) -# define DEFINE_LHASH_OF(type) \ - LHASH_OF(type) { union lh_##type##_dummy { void* d1; unsigned long d2; int d3; } dummy; }; \ - static ossl_unused ossl_inline LHASH_OF(type) *lh_##type##_new(unsigned long (*hfn)(const type *), \ - int (*cfn)(const type *, const type *)) \ +# ifndef OPENSSL_NO_DEPRECATED_3_1 +# define DEFINE_LHASH_OF_DEPRECATED(type) \ + static ossl_unused ossl_inline void \ + lh_##type##_node_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ { \ - return (LHASH_OF(type) *) \ - OPENSSL_LH_new((OPENSSL_LH_HASHFUNC)hfn, (OPENSSL_LH_COMPFUNC)cfn); \ + OPENSSL_LH_node_stats_bio((const OPENSSL_LHASH *)lh, out); \ } \ - static ossl_unused ossl_inline void lh_##type##_free(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline void \ + lh_##type##_node_usage_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + { \ + OPENSSL_LH_node_usage_stats_bio((const OPENSSL_LHASH *)lh, out); \ + } \ + static ossl_unused ossl_inline void \ + lh_##type##_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + { \ + OPENSSL_LH_stats_bio((const OPENSSL_LHASH *)lh, out); \ + } +# else +# define DEFINE_LHASH_OF_DEPRECATED(type) +# endif + +# define DEFINE_LHASH_OF_EX(type) \ + LHASH_OF(type) { \ + union lh_##type##_dummy { void* d1; unsigned long d2; int d3; } dummy; \ + }; \ + static unsigned long \ + lh_##type##_hfn_thunk(const void *data, OPENSSL_LH_HASHFUNC hfn) \ + { \ + unsigned long (*hfn_conv)(const type *) = (unsigned long (*)(const type *))hfn; \ + return hfn_conv((const type *)data); \ + } \ + static int lh_##type##_cfn_thunk(const void *da, const void *db, OPENSSL_LH_COMPFUNC cfn) \ + { \ + int (*cfn_conv)(const type *, const type *) = (int (*)(const type *, const type *))cfn; \ + return cfn_conv((const type *)da, (const type *)db); \ + } \ + static ossl_unused ossl_inline void \ + lh_##type##_free(LHASH_OF(type) *lh) \ { \ OPENSSL_LH_free((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline void lh_##type##_flush(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline void \ + lh_##type##_flush(LHASH_OF(type) *lh) \ { \ OPENSSL_LH_flush((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline type *lh_##type##_insert(LHASH_OF(type) *lh, type *d) \ + static ossl_unused ossl_inline type * \ + lh_##type##_insert(LHASH_OF(type) *lh, type *d) \ { \ return (type *)OPENSSL_LH_insert((OPENSSL_LHASH *)lh, d); \ } \ - static ossl_unused ossl_inline type *lh_##type##_delete(LHASH_OF(type) *lh, const type *d) \ + static ossl_unused ossl_inline type * \ + lh_##type##_delete(LHASH_OF(type) *lh, const type *d) \ { \ return (type *)OPENSSL_LH_delete((OPENSSL_LHASH *)lh, d); \ } \ - static ossl_unused ossl_inline type *lh_##type##_retrieve(LHASH_OF(type) *lh, const type *d) \ + static ossl_unused ossl_inline type * \ + lh_##type##_retrieve(LHASH_OF(type) *lh, const type *d) \ { \ return (type *)OPENSSL_LH_retrieve((OPENSSL_LHASH *)lh, d); \ } \ - static ossl_unused ossl_inline int lh_##type##_error(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline int \ + lh_##type##_error(LHASH_OF(type) *lh) \ { \ return OPENSSL_LH_error((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline unsigned long lh_##type##_num_items(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline unsigned long \ + lh_##type##_num_items(LHASH_OF(type) *lh) \ { \ return OPENSSL_LH_num_items((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline void lh_##type##_node_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + static ossl_unused ossl_inline unsigned long \ + lh_##type##_get_down_load(LHASH_OF(type) *lh) \ { \ - OPENSSL_LH_node_stats_bio((const OPENSSL_LHASH *)lh, out); \ + return OPENSSL_LH_get_down_load((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline void lh_##type##_node_usage_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + static ossl_unused ossl_inline void \ + lh_##type##_set_down_load(LHASH_OF(type) *lh, unsigned long dl) \ { \ - OPENSSL_LH_node_usage_stats_bio((const OPENSSL_LHASH *)lh, out); \ + OPENSSL_LH_set_down_load((OPENSSL_LHASH *)lh, dl); \ } \ - static ossl_unused ossl_inline void lh_##type##_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall_thunk(void *node, OPENSSL_LH_DOALL_FUNC doall) \ { \ - OPENSSL_LH_stats_bio((const OPENSSL_LHASH *)lh, out); \ + void (*doall_conv)(type *) = (void (*)(type *))doall; \ + doall_conv((type *)node); \ } \ - static ossl_unused ossl_inline unsigned long lh_##type##_get_down_load(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall_arg_thunk(void *node, void *arg, OPENSSL_LH_DOALL_FUNCARG doall) \ { \ - return OPENSSL_LH_get_down_load((OPENSSL_LHASH *)lh); \ + void (*doall_conv)(type *, void *) = (void (*)(type *, void *))doall; \ + doall_conv((type *)node, arg); \ } \ - static ossl_unused ossl_inline void lh_##type##_set_down_load(LHASH_OF(type) *lh, unsigned long dl) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall(LHASH_OF(type) *lh, void (*doall)(type *)) \ { \ - OPENSSL_LH_set_down_load((OPENSSL_LHASH *)lh, dl); \ + OPENSSL_LH_doall((OPENSSL_LHASH *)lh, (OPENSSL_LH_DOALL_FUNC)doall); \ } \ - static ossl_unused ossl_inline void lh_##type##_doall(LHASH_OF(type) *lh, \ - void (*doall)(type *)) \ + static ossl_unused ossl_inline LHASH_OF(type) * \ + lh_##type##_new(unsigned long (*hfn)(const type *), \ + int (*cfn)(const type *, const type *)) \ { \ - OPENSSL_LH_doall((OPENSSL_LHASH *)lh, (OPENSSL_LH_DOALL_FUNC)doall); \ + return (LHASH_OF(type) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new((OPENSSL_LH_HASHFUNC)hfn, (OPENSSL_LH_COMPFUNC)cfn), \ + lh_##type##_hfn_thunk, lh_##type##_cfn_thunk, \ + lh_##type##_doall_thunk, \ + lh_##type##_doall_arg_thunk); \ } \ - static ossl_unused ossl_inline void lh_##type##_doall_arg(LHASH_OF(type) *lh, \ - void (*doallarg)(type *, void *), \ - void *arg) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall_arg(LHASH_OF(type) *lh, \ + void (*doallarg)(type *, void *), void *arg) \ { \ OPENSSL_LH_doall_arg((OPENSSL_LHASH *)lh, \ (OPENSSL_LH_DOALL_FUNCARG)doallarg, arg); \ } \ LHASH_OF(type) +# define DEFINE_LHASH_OF(type) \ + DEFINE_LHASH_OF_EX(type); \ + DEFINE_LHASH_OF_DEPRECATED(type) \ + LHASH_OF(type) + #define IMPLEMENT_LHASH_DOALL_ARG_CONST(type, argtype) \ int_implement_lhash_doall(type, argtype, const type) @@ -240,17 +341,26 @@ void OPENSSL_LH_node_usage_stats_bio(const OPENSSL_LHASH *lh, BIO *out); int_implement_lhash_doall(type, argtype, type) #define int_implement_lhash_doall(type, argtype, cbargtype) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall_##argtype##_thunk(void *node, void *arg, OPENSSL_LH_DOALL_FUNCARG fn) \ + { \ + void (*fn_conv)(cbargtype *, argtype *) = (void (*)(cbargtype *, argtype *))fn; \ + fn_conv((cbargtype *)node, (argtype *)arg); \ + } \ static ossl_unused ossl_inline void \ lh_##type##_doall_##argtype(LHASH_OF(type) *lh, \ void (*fn)(cbargtype *, argtype *), \ argtype *arg) \ { \ - OPENSSL_LH_doall_arg((OPENSSL_LHASH *)lh, (OPENSSL_LH_DOALL_FUNCARG)fn, (void *)arg); \ + OPENSSL_LH_doall_arg_thunk((OPENSSL_LHASH *)lh, \ + lh_##type##_doall_##argtype##_thunk, \ + (OPENSSL_LH_DOALL_FUNCARG)fn, \ + (void *)arg); \ } \ LHASH_OF(type) DEFINE_LHASH_OF_INTERNAL(OPENSSL_STRING); -#define lh_OPENSSL_STRING_new(hfn, cmp) ((LHASH_OF(OPENSSL_STRING) *)OPENSSL_LH_new(ossl_check_OPENSSL_STRING_lh_hashfunc_type(hfn), ossl_check_OPENSSL_STRING_lh_compfunc_type(cmp))) +#define lh_OPENSSL_STRING_new(hfn, cmp) ((LHASH_OF(OPENSSL_STRING) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new(ossl_check_OPENSSL_STRING_lh_hashfunc_type(hfn), ossl_check_OPENSSL_STRING_lh_compfunc_type(cmp)), lh_OPENSSL_STRING_hash_thunk, lh_OPENSSL_STRING_comp_thunk, lh_OPENSSL_STRING_doall_thunk, lh_OPENSSL_STRING_doall_arg_thunk)) #define lh_OPENSSL_STRING_free(lh) OPENSSL_LH_free(ossl_check_OPENSSL_STRING_lh_type(lh)) #define lh_OPENSSL_STRING_flush(lh) OPENSSL_LH_flush(ossl_check_OPENSSL_STRING_lh_type(lh)) #define lh_OPENSSL_STRING_insert(lh, ptr) ((OPENSSL_STRING *)OPENSSL_LH_insert(ossl_check_OPENSSL_STRING_lh_type(lh), ossl_check_OPENSSL_STRING_lh_plain_type(ptr))) @@ -265,7 +375,7 @@ DEFINE_LHASH_OF_INTERNAL(OPENSSL_STRING); #define lh_OPENSSL_STRING_set_down_load(lh, dl) OPENSSL_LH_set_down_load(ossl_check_OPENSSL_STRING_lh_type(lh), dl) #define lh_OPENSSL_STRING_doall(lh, dfn) OPENSSL_LH_doall(ossl_check_OPENSSL_STRING_lh_type(lh), ossl_check_OPENSSL_STRING_lh_doallfunc_type(dfn)) DEFINE_LHASH_OF_INTERNAL(OPENSSL_CSTRING); -#define lh_OPENSSL_CSTRING_new(hfn, cmp) ((LHASH_OF(OPENSSL_CSTRING) *)OPENSSL_LH_new(ossl_check_OPENSSL_CSTRING_lh_hashfunc_type(hfn), ossl_check_OPENSSL_CSTRING_lh_compfunc_type(cmp))) +#define lh_OPENSSL_CSTRING_new(hfn, cmp) ((LHASH_OF(OPENSSL_CSTRING) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new(ossl_check_OPENSSL_CSTRING_lh_hashfunc_type(hfn), ossl_check_OPENSSL_CSTRING_lh_compfunc_type(cmp)), lh_OPENSSL_CSTRING_hash_thunk, lh_OPENSSL_CSTRING_comp_thunk, lh_OPENSSL_CSTRING_doall_thunk, lh_OPENSSL_CSTRING_doall_arg_thunk)) #define lh_OPENSSL_CSTRING_free(lh) OPENSSL_LH_free(ossl_check_OPENSSL_CSTRING_lh_type(lh)) #define lh_OPENSSL_CSTRING_flush(lh) OPENSSL_LH_flush(ossl_check_OPENSSL_CSTRING_lh_type(lh)) #define lh_OPENSSL_CSTRING_insert(lh, ptr) ((OPENSSL_CSTRING *)OPENSSL_LH_insert(ossl_check_OPENSSL_CSTRING_lh_type(lh), ossl_check_OPENSSL_CSTRING_lh_plain_type(ptr))) diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/no-asm/include/openssl/opensslv.h b/deps/openssl/config/archs/darwin64-arm64-cc/no-asm/include/openssl/opensslv.h index 5fb5bc63056fe0..dd50d89cb9982d 100644 --- a/deps/openssl/config/archs/darwin64-arm64-cc/no-asm/include/openssl/opensslv.h +++ b/deps/openssl/config/archs/darwin64-arm64-cc/no-asm/include/openssl/opensslv.h @@ -28,8 +28,8 @@ extern "C" { * These macros express version number MAJOR.MINOR.PATCH exactly */ # define OPENSSL_VERSION_MAJOR 3 -# define OPENSSL_VERSION_MINOR 0 -# define OPENSSL_VERSION_PATCH 17 +# define OPENSSL_VERSION_MINOR 5 +# define OPENSSL_VERSION_PATCH 1 /* * Additional version information @@ -74,8 +74,8 @@ extern "C" { * longer variant with OPENSSL_VERSION_PRE_RELEASE_STR and * OPENSSL_VERSION_BUILD_METADATA_STR appended. */ -# define OPENSSL_VERSION_STR "3.0.17" -# define OPENSSL_FULL_VERSION_STR "3.0.17" +# define OPENSSL_VERSION_STR "3.5.1" +# define OPENSSL_FULL_VERSION_STR "3.5.1" /* * SECTION 3: ADDITIONAL METADATA @@ -88,7 +88,7 @@ extern "C" { * SECTION 4: BACKWARD COMPATIBILITY */ -# define OPENSSL_VERSION_TEXT "OpenSSL 3.0.17 1 Jul 2025" +# define OPENSSL_VERSION_TEXT "OpenSSL 3.5.1 1 Jul 2025" /* Synthesize OPENSSL_VERSION_NUMBER with the layout 0xMNN00PPSL */ # ifdef OPENSSL_VERSION_PRE_RELEASE diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/no-asm/include/openssl/pkcs12.h b/deps/openssl/config/archs/darwin64-arm64-cc/no-asm/include/openssl/pkcs12.h index c5e0cab06491ec..0809645dad0bbf 100644 --- a/deps/openssl/config/archs/darwin64-arm64-cc/no-asm/include/openssl/pkcs12.h +++ b/deps/openssl/config/archs/darwin64-arm64-cc/no-asm/include/openssl/pkcs12.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/pkcs12.h.in * - * Copyright 1999-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1999-2024 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -25,6 +25,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -41,6 +44,7 @@ extern "C" { # define PKCS12_MAC_KEY_LENGTH 20 +/* The macro is expected to be used only internally. Kept for backwards compatibility. */ # define PKCS12_SALT_LEN 8 /* It's not clear if these are actually needed... */ @@ -130,7 +134,9 @@ int PKCS12_SAFEBAG_get_bag_nid(const PKCS12_SAFEBAG *bag); const ASN1_TYPE *PKCS12_SAFEBAG_get0_bag_obj(const PKCS12_SAFEBAG *bag); const ASN1_OBJECT *PKCS12_SAFEBAG_get0_bag_type(const PKCS12_SAFEBAG *bag); +X509 *PKCS12_SAFEBAG_get1_cert_ex(const PKCS12_SAFEBAG *bag, OSSL_LIB_CTX *libctx, const char *propq); X509 *PKCS12_SAFEBAG_get1_cert(const PKCS12_SAFEBAG *bag); +X509_CRL *PKCS12_SAFEBAG_get1_crl_ex(const PKCS12_SAFEBAG *bag, OSSL_LIB_CTX *libctx, const char *propq); X509_CRL *PKCS12_SAFEBAG_get1_crl(const PKCS12_SAFEBAG *bag); const STACK_OF(PKCS12_SAFEBAG) * PKCS12_SAFEBAG_get0_safes(const PKCS12_SAFEBAG *bag); @@ -218,6 +224,7 @@ ASN1_TYPE *PKCS12_get_attr_gen(const STACK_OF(X509_ATTRIBUTE) *attrs, char *PKCS12_get_friendlyname(PKCS12_SAFEBAG *bag); const STACK_OF(X509_ATTRIBUTE) * PKCS12_SAFEBAG_get0_attrs(const PKCS12_SAFEBAG *bag); +void PKCS12_SAFEBAG_set0_attrs(PKCS12_SAFEBAG *bag, STACK_OF(X509_ATTRIBUTE) *attrs); unsigned char *PKCS12_pbe_crypt(const X509_ALGOR *algor, const char *pass, int passlen, const unsigned char *in, int inlen, @@ -285,6 +292,9 @@ int PKCS12_verify_mac(PKCS12 *p12, const char *pass, int passlen); int PKCS12_set_mac(PKCS12 *p12, const char *pass, int passlen, unsigned char *salt, int saltlen, int iter, const EVP_MD *md_type); +int PKCS12_set_pbmac1_pbkdf2(PKCS12 *p12, const char *pass, int passlen, + unsigned char *salt, int saltlen, int iter, + const EVP_MD *md_type, const char *prf_md_name); int PKCS12_setup_mac(PKCS12 *p12, int iter, unsigned char *salt, int saltlen, const EVP_MD *md_type); unsigned char *OPENSSL_asc2uni(const char *asc, int asclen, @@ -305,6 +315,7 @@ DECLARE_ASN1_ITEM(PKCS12_AUTHSAFES) void PKCS12_PBE_add(void); int PKCS12_parse(PKCS12 *p12, const char *pass, EVP_PKEY **pkey, X509 **cert, STACK_OF(X509) **ca); +typedef int PKCS12_create_cb(PKCS12_SAFEBAG *bag, void *cbarg); PKCS12 *PKCS12_create(const char *pass, const char *name, EVP_PKEY *pkey, X509 *cert, STACK_OF(X509) *ca, int nid_key, int nid_cert, int iter, int mac_iter, int keytype); @@ -312,6 +323,11 @@ PKCS12 *PKCS12_create_ex(const char *pass, const char *name, EVP_PKEY *pkey, X509 *cert, STACK_OF(X509) *ca, int nid_key, int nid_cert, int iter, int mac_iter, int keytype, OSSL_LIB_CTX *ctx, const char *propq); +PKCS12 *PKCS12_create_ex2(const char *pass, const char *name, EVP_PKEY *pkey, + X509 *cert, STACK_OF(X509) *ca, int nid_key, int nid_cert, + int iter, int mac_iter, int keytype, + OSSL_LIB_CTX *ctx, const char *propq, + PKCS12_create_cb *cb, void *cbarg); PKCS12_SAFEBAG *PKCS12_add_cert(STACK_OF(PKCS12_SAFEBAG) **pbags, X509 *cert); PKCS12_SAFEBAG *PKCS12_add_key(STACK_OF(PKCS12_SAFEBAG) **pbags, diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/no-asm/include/openssl/pkcs7.h b/deps/openssl/config/archs/darwin64-arm64-cc/no-asm/include/openssl/pkcs7.h index 0ce79bf4fa160e..fa68462aff973b 100644 --- a/deps/openssl/config/archs/darwin64-arm64-cc/no-asm/include/openssl/pkcs7.h +++ b/deps/openssl/config/archs/darwin64-arm64-cc/no-asm/include/openssl/pkcs7.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/pkcs7.h.in * - * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -28,6 +28,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -131,8 +134,8 @@ SKM_DEFINE_STACK_OF_INTERNAL(PKCS7_RECIP_INFO, PKCS7_RECIP_INFO, PKCS7_RECIP_INF typedef struct pkcs7_signed_st { ASN1_INTEGER *version; /* version 1 */ STACK_OF(X509_ALGOR) *md_algs; /* md used */ - STACK_OF(X509) *cert; /* [ 0 ] */ - STACK_OF(X509_CRL) *crl; /* [ 1 ] */ + STACK_OF(X509) *cert; /* [ 0 ] */ /* name should be 'certificates' */ + STACK_OF(X509_CRL) *crl; /* [ 1 ] */ /* name should be 'crls' */ STACK_OF(PKCS7_SIGNER_INFO) *signer_info; struct pkcs7_st *contents; } PKCS7_SIGNED; @@ -158,8 +161,8 @@ typedef struct pkcs7_enveloped_st { typedef struct pkcs7_signedandenveloped_st { ASN1_INTEGER *version; /* version 1 */ STACK_OF(X509_ALGOR) *md_algs; /* md used */ - STACK_OF(X509) *cert; /* [ 0 ] */ - STACK_OF(X509_CRL) *crl; /* [ 1 ] */ + STACK_OF(X509) *cert; /* [ 0 ] */ /* name should be 'certificates' */ + STACK_OF(X509_CRL) *crl; /* [ 1 ] */ /* name should be 'crls' */ STACK_OF(PKCS7_SIGNER_INFO) *signer_info; PKCS7_ENC_CONTENT *enc_data; STACK_OF(PKCS7_RECIP_INFO) *recipientinfo; @@ -200,7 +203,7 @@ typedef struct pkcs7_st { /* NID_pkcs7_data */ ASN1_OCTET_STRING *data; /* NID_pkcs7_signed */ - PKCS7_SIGNED *sign; + PKCS7_SIGNED *sign; /* field name 'signed' would clash with C keyword */ /* NID_pkcs7_enveloped */ PKCS7_ENVELOPE *enveloped; /* NID_pkcs7_signedAndEnveloped */ @@ -341,13 +344,13 @@ int PKCS7_SIGNER_INFO_set(PKCS7_SIGNER_INFO *p7i, X509 *x509, EVP_PKEY *pkey, const EVP_MD *dgst); int PKCS7_SIGNER_INFO_sign(PKCS7_SIGNER_INFO *si); int PKCS7_add_signer(PKCS7 *p7, PKCS7_SIGNER_INFO *p7i); -int PKCS7_add_certificate(PKCS7 *p7, X509 *x509); -int PKCS7_add_crl(PKCS7 *p7, X509_CRL *x509); +int PKCS7_add_certificate(PKCS7 *p7, X509 *cert); +int PKCS7_add_crl(PKCS7 *p7, X509_CRL *crl); int PKCS7_content_new(PKCS7 *p7, int nid); int PKCS7_dataVerify(X509_STORE *cert_store, X509_STORE_CTX *ctx, BIO *bio, PKCS7 *p7, PKCS7_SIGNER_INFO *si); int PKCS7_signatureVerify(BIO *bio, PKCS7 *p7, PKCS7_SIGNER_INFO *si, - X509 *x509); + X509 *signer); BIO *PKCS7_dataInit(PKCS7 *p7, BIO *bio); int PKCS7_dataFinal(PKCS7 *p7, BIO *bio); diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/no-asm/include/openssl/ssl.h b/deps/openssl/config/archs/darwin64-arm64-cc/no-asm/include/openssl/ssl.h index 3df725c56d6c5e..7e3d89c7ef3dc9 100644 --- a/deps/openssl/config/archs/darwin64-arm64-cc/no-asm/include/openssl/ssl.h +++ b/deps/openssl/config/archs/darwin64-arm64-cc/no-asm/include/openssl/ssl.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/ssl.h.in * - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved * Copyright 2005 Nokia. All rights reserved. * @@ -24,6 +24,7 @@ # endif # include +# include # include # include # include @@ -42,6 +43,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -231,10 +235,8 @@ typedef struct ssl_cipher_st SSL_CIPHER; typedef struct ssl_session_st SSL_SESSION; typedef struct tls_sigalgs_st TLS_SIGALGS; typedef struct ssl_conf_ctx_st SSL_CONF_CTX; -typedef struct ssl_comp_st SSL_COMP; STACK_OF(SSL_CIPHER); -STACK_OF(SSL_COMP); /* SRTP protection profiles for use with the use_srtp extension (RFC 5764)*/ typedef struct srtp_protection_profile_st { @@ -278,28 +280,31 @@ typedef int (*tls_session_secret_cb_fn)(SSL *s, void *secret, int *secret_len, /* Extension context codes */ /* This extension is only allowed in TLS */ -#define SSL_EXT_TLS_ONLY 0x0001 +#define SSL_EXT_TLS_ONLY 0x00001 /* This extension is only allowed in DTLS */ -#define SSL_EXT_DTLS_ONLY 0x0002 +#define SSL_EXT_DTLS_ONLY 0x00002 /* Some extensions may be allowed in DTLS but we don't implement them for it */ -#define SSL_EXT_TLS_IMPLEMENTATION_ONLY 0x0004 +#define SSL_EXT_TLS_IMPLEMENTATION_ONLY 0x00004 /* Most extensions are not defined for SSLv3 but EXT_TYPE_renegotiate is */ -#define SSL_EXT_SSL3_ALLOWED 0x0008 +#define SSL_EXT_SSL3_ALLOWED 0x00008 /* Extension is only defined for TLS1.2 and below */ -#define SSL_EXT_TLS1_2_AND_BELOW_ONLY 0x0010 +#define SSL_EXT_TLS1_2_AND_BELOW_ONLY 0x00010 /* Extension is only defined for TLS1.3 and above */ -#define SSL_EXT_TLS1_3_ONLY 0x0020 +#define SSL_EXT_TLS1_3_ONLY 0x00020 /* Ignore this extension during parsing if we are resuming */ -#define SSL_EXT_IGNORE_ON_RESUMPTION 0x0040 -#define SSL_EXT_CLIENT_HELLO 0x0080 +#define SSL_EXT_IGNORE_ON_RESUMPTION 0x00040 +#define SSL_EXT_CLIENT_HELLO 0x00080 /* Really means TLS1.2 or below */ -#define SSL_EXT_TLS1_2_SERVER_HELLO 0x0100 -#define SSL_EXT_TLS1_3_SERVER_HELLO 0x0200 -#define SSL_EXT_TLS1_3_ENCRYPTED_EXTENSIONS 0x0400 -#define SSL_EXT_TLS1_3_HELLO_RETRY_REQUEST 0x0800 -#define SSL_EXT_TLS1_3_CERTIFICATE 0x1000 -#define SSL_EXT_TLS1_3_NEW_SESSION_TICKET 0x2000 -#define SSL_EXT_TLS1_3_CERTIFICATE_REQUEST 0x4000 +#define SSL_EXT_TLS1_2_SERVER_HELLO 0x00100 +#define SSL_EXT_TLS1_3_SERVER_HELLO 0x00200 +#define SSL_EXT_TLS1_3_ENCRYPTED_EXTENSIONS 0x00400 +#define SSL_EXT_TLS1_3_HELLO_RETRY_REQUEST 0x00800 +#define SSL_EXT_TLS1_3_CERTIFICATE 0x01000 +#define SSL_EXT_TLS1_3_NEW_SESSION_TICKET 0x02000 +#define SSL_EXT_TLS1_3_CERTIFICATE_REQUEST 0x04000 +#define SSL_EXT_TLS1_3_CERTIFICATE_COMPRESSION 0x08000 +/* When sending a raw public key in a certificate message */ +#define SSL_EXT_TLS1_3_RAW_PUBLIC_KEY 0x10000 /* Typedefs for handling custom extensions */ @@ -404,7 +409,7 @@ typedef int (*SSL_async_callback_fn)(SSL *s, void *arg); */ # define SSL_OP_CIPHER_SERVER_PREFERENCE SSL_OP_BIT(22) /* - * If set, a server will allow a client to issue a SSLv3.0 version + * If set, a server will allow a client to issue an SSLv3.0 version * number as latest version supported in the premaster secret, even when * TLSv1.0 (version 3.1) was announced in the client hello. Normally * this is forbidden to prevent version rollback attacks. @@ -430,6 +435,19 @@ typedef int (*SSL_async_callback_fn)(SSL *s, void *arg); * interoperability with CryptoPro CSP 3.x */ # define SSL_OP_CRYPTOPRO_TLSEXT_BUG SSL_OP_BIT(31) +/* + * Disable RFC8879 certificate compression + * SSL_OP_NO_TX_CERTIFICATE_COMPRESSION: don't send compressed certificates, + * and ignore the extension when received. + * SSL_OP_NO_RX_CERTIFICATE_COMPRESSION: don't send the extension, and + * subsequently indicating that receiving is not supported + */ +# define SSL_OP_NO_TX_CERTIFICATE_COMPRESSION SSL_OP_BIT(32) +# define SSL_OP_NO_RX_CERTIFICATE_COMPRESSION SSL_OP_BIT(33) + /* Enable KTLS TX zerocopy on Linux */ +# define SSL_OP_ENABLE_KTLS_TX_ZEROCOPY_SENDFILE SSL_OP_BIT(34) + +#define SSL_OP_PREFER_NO_DHE_KEX SSL_OP_BIT(35) /* * Option "collections." @@ -574,6 +592,8 @@ typedef int (*SSL_async_callback_fn)(SSL *s, void *arg); # define CERT_PKEY_CERT_TYPE 0x400 /* Cert chain suitable to Suite B */ # define CERT_PKEY_SUITEB 0x800 +/* Cert pkey valid for raw public key use */ +# define CERT_PKEY_RPK 0x1000 # define SSL_CONF_FLAG_CMDLINE 0x1 # define SSL_CONF_FLAG_FILE 0x2 @@ -965,6 +985,7 @@ uint32_t SSL_get_recv_max_early_data(const SSL *s); # include /* This is mostly sslv3 with a few tweaks */ # include /* Datagram TLS */ # include /* Support for the use_srtp extension */ +# include #ifdef __cplusplus extern "C" { @@ -1000,32 +1021,6 @@ SKM_DEFINE_STACK_OF_INTERNAL(SSL_CIPHER, const SSL_CIPHER, SSL_CIPHER) #define sk_SSL_CIPHER_dup(sk) ((STACK_OF(SSL_CIPHER) *)OPENSSL_sk_dup(ossl_check_const_SSL_CIPHER_sk_type(sk))) #define sk_SSL_CIPHER_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(SSL_CIPHER) *)OPENSSL_sk_deep_copy(ossl_check_const_SSL_CIPHER_sk_type(sk), ossl_check_SSL_CIPHER_copyfunc_type(copyfunc), ossl_check_SSL_CIPHER_freefunc_type(freefunc))) #define sk_SSL_CIPHER_set_cmp_func(sk, cmp) ((sk_SSL_CIPHER_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_SSL_CIPHER_sk_type(sk), ossl_check_SSL_CIPHER_compfunc_type(cmp))) -SKM_DEFINE_STACK_OF_INTERNAL(SSL_COMP, SSL_COMP, SSL_COMP) -#define sk_SSL_COMP_num(sk) OPENSSL_sk_num(ossl_check_const_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_value(sk, idx) ((SSL_COMP *)OPENSSL_sk_value(ossl_check_const_SSL_COMP_sk_type(sk), (idx))) -#define sk_SSL_COMP_new(cmp) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new(ossl_check_SSL_COMP_compfunc_type(cmp))) -#define sk_SSL_COMP_new_null() ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new_null()) -#define sk_SSL_COMP_new_reserve(cmp, n) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new_reserve(ossl_check_SSL_COMP_compfunc_type(cmp), (n))) -#define sk_SSL_COMP_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_SSL_COMP_sk_type(sk), (n)) -#define sk_SSL_COMP_free(sk) OPENSSL_sk_free(ossl_check_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_zero(sk) OPENSSL_sk_zero(ossl_check_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_delete(sk, i) ((SSL_COMP *)OPENSSL_sk_delete(ossl_check_SSL_COMP_sk_type(sk), (i))) -#define sk_SSL_COMP_delete_ptr(sk, ptr) ((SSL_COMP *)OPENSSL_sk_delete_ptr(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr))) -#define sk_SSL_COMP_push(sk, ptr) OPENSSL_sk_push(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) -#define sk_SSL_COMP_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) -#define sk_SSL_COMP_pop(sk) ((SSL_COMP *)OPENSSL_sk_pop(ossl_check_SSL_COMP_sk_type(sk))) -#define sk_SSL_COMP_shift(sk) ((SSL_COMP *)OPENSSL_sk_shift(ossl_check_SSL_COMP_sk_type(sk))) -#define sk_SSL_COMP_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_SSL_COMP_sk_type(sk),ossl_check_SSL_COMP_freefunc_type(freefunc)) -#define sk_SSL_COMP_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr), (idx)) -#define sk_SSL_COMP_set(sk, idx, ptr) ((SSL_COMP *)OPENSSL_sk_set(ossl_check_SSL_COMP_sk_type(sk), (idx), ossl_check_SSL_COMP_type(ptr))) -#define sk_SSL_COMP_find(sk, ptr) OPENSSL_sk_find(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) -#define sk_SSL_COMP_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) -#define sk_SSL_COMP_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr), pnum) -#define sk_SSL_COMP_sort(sk) OPENSSL_sk_sort(ossl_check_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_dup(sk) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_dup(ossl_check_const_SSL_COMP_sk_type(sk))) -#define sk_SSL_COMP_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_deep_copy(ossl_check_const_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_copyfunc_type(copyfunc), ossl_check_SSL_COMP_freefunc_type(freefunc))) -#define sk_SSL_COMP_set_cmp_func(sk, cmp) ((sk_SSL_COMP_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_compfunc_type(cmp))) /* compatibility */ @@ -1066,6 +1061,7 @@ typedef enum { DTLS_ST_CR_HELLO_VERIFY_REQUEST, TLS_ST_CR_SRVR_HELLO, TLS_ST_CR_CERT, + TLS_ST_CR_COMP_CERT, TLS_ST_CR_CERT_STATUS, TLS_ST_CR_KEY_EXCH, TLS_ST_CR_CERT_REQ, @@ -1075,6 +1071,7 @@ typedef enum { TLS_ST_CR_FINISHED, TLS_ST_CW_CLNT_HELLO, TLS_ST_CW_CERT, + TLS_ST_CW_COMP_CERT, TLS_ST_CW_KEY_EXCH, TLS_ST_CW_CERT_VRFY, TLS_ST_CW_CHANGE, @@ -1085,10 +1082,12 @@ typedef enum { DTLS_ST_SW_HELLO_VERIFY_REQUEST, TLS_ST_SW_SRVR_HELLO, TLS_ST_SW_CERT, + TLS_ST_SW_COMP_CERT, TLS_ST_SW_KEY_EXCH, TLS_ST_SW_CERT_REQ, TLS_ST_SW_SRVR_DONE, TLS_ST_SR_CERT, + TLS_ST_SR_COMP_CERT, TLS_ST_SR_KEY_EXCH, TLS_ST_SR_CERT_VRFY, TLS_ST_SR_NEXT_PROTO, @@ -1380,9 +1379,13 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) # define SSL_CTRL_GET_SIGNATURE_NID 132 # define SSL_CTRL_GET_TMP_KEY 133 # define SSL_CTRL_GET_NEGOTIATED_GROUP 134 +# define SSL_CTRL_GET_IANA_GROUPS 135 # define SSL_CTRL_SET_RETRY_VERIFY 136 # define SSL_CTRL_GET_VERIFY_CERT_STORE 137 # define SSL_CTRL_GET_CHAIN_CERT_STORE 138 +# define SSL_CTRL_GET0_IMPLEMENTED_GROUPS 139 +# define SSL_CTRL_GET_SIGNATURE_NAME 140 +# define SSL_CTRL_GET_PEER_SIGNATURE_NAME 141 # define SSL_CERT_SET_FIRST 1 # define SSL_CERT_SET_NEXT 2 # define SSL_CERT_SET_SERVER 3 @@ -1485,10 +1488,15 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) # define SSL_get1_groups(s, glist) \ SSL_ctrl(s,SSL_CTRL_GET_GROUPS,0,(int*)(glist)) +# define SSL_get0_iana_groups(s, plst) \ + SSL_ctrl(s,SSL_CTRL_GET_IANA_GROUPS,0,(uint16_t **)(plst)) # define SSL_CTX_set1_groups(ctx, glist, glistlen) \ SSL_CTX_ctrl(ctx,SSL_CTRL_SET_GROUPS,glistlen,(int *)(glist)) # define SSL_CTX_set1_groups_list(ctx, s) \ SSL_CTX_ctrl(ctx,SSL_CTRL_SET_GROUPS_LIST,0,(char *)(s)) +# define SSL_CTX_get0_implemented_groups(ctx, all, out) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_GET0_IMPLEMENTED_GROUPS, all, \ + (STACK_OF(OPENSSL_CSTRING) *)(out)) # define SSL_set1_groups(s, glist, glistlen) \ SSL_ctrl(s,SSL_CTRL_SET_GROUPS,glistlen,(char *)(glist)) # define SSL_set1_groups_list(s, str) \ @@ -1520,8 +1528,12 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) (char *)(clist)) # define SSL_set1_client_certificate_types(s, clist, clistlen) \ SSL_ctrl(s,SSL_CTRL_SET_CLIENT_CERT_TYPES,clistlen,(char *)(clist)) +# define SSL_get0_signature_name(s, str) \ + SSL_ctrl(s,SSL_CTRL_GET_SIGNATURE_NAME,0,(1?(str):(const char **)NULL)) # define SSL_get_signature_nid(s, pn) \ SSL_ctrl(s,SSL_CTRL_GET_SIGNATURE_NID,0,pn) +# define SSL_get0_peer_signature_name(s, str) \ + SSL_ctrl(s,SSL_CTRL_GET_PEER_SIGNATURE_NAME,0,(1?(str):(const char **)NULL)) # define SSL_get_peer_signature_nid(s, pn) \ SSL_ctrl(s,SSL_CTRL_GET_PEER_SIGNATURE_NID,0,pn) # define SSL_get_peer_tmp_key(s, pk) \ @@ -1549,6 +1561,7 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) # define SSL_get_max_proto_version(s) \ SSL_ctrl(s, SSL_CTRL_GET_MAX_PROTO_VERSION, 0, NULL) +const char *SSL_get0_group_name(SSL *s); const char *SSL_group_to_name(SSL *s, int id); /* Backwards compatibility, original 1.1.0 names */ @@ -1613,7 +1626,11 @@ void SSL_CTX_set1_cert_store(SSL_CTX *, X509_STORE *); __owur int SSL_want(const SSL *s); __owur int SSL_clear(SSL *s); +#ifndef OPENSSL_NO_DEPRECATED_3_4 +OSSL_DEPRECATEDIN_3_4_FOR("not Y2038-safe, replace with SSL_CTX_flush_sessions_ex()") void SSL_CTX_flush_sessions(SSL_CTX *ctx, long tm); +#endif +void SSL_CTX_flush_sessions_ex(SSL_CTX *ctx, time_t tm); __owur const SSL_CIPHER *SSL_get_current_cipher(const SSL *s); __owur const SSL_CIPHER *SSL_get_pending_cipher(const SSL *s); @@ -1725,13 +1742,21 @@ __owur const char *SSL_state_string(const SSL *s); __owur const char *SSL_rstate_string(const SSL *s); __owur const char *SSL_state_string_long(const SSL *s); __owur const char *SSL_rstate_string_long(const SSL *s); + +#ifndef OPENSSL_NO_DEPRECATED_3_4 +OSSL_DEPRECATEDIN_3_4_FOR("not Y2038-safe, replace with SSL_SESSION_get_time_ex()") __owur long SSL_SESSION_get_time(const SSL_SESSION *s); +OSSL_DEPRECATEDIN_3_4_FOR("not Y2038-safe, replace with SSL_SESSION_set_time_ex()") __owur long SSL_SESSION_set_time(SSL_SESSION *s, long t); +#endif __owur long SSL_SESSION_get_timeout(const SSL_SESSION *s); __owur long SSL_SESSION_set_timeout(SSL_SESSION *s, long t); __owur int SSL_SESSION_get_protocol_version(const SSL_SESSION *s); __owur int SSL_SESSION_set_protocol_version(SSL_SESSION *s, int version); +__owur time_t SSL_SESSION_get_time_ex(const SSL_SESSION *s); +__owur time_t SSL_SESSION_set_time_ex(SSL_SESSION *s, time_t t); + __owur const char *SSL_SESSION_get0_hostname(const SSL_SESSION *s); __owur int SSL_SESSION_set1_hostname(SSL_SESSION *s, const char *hostname); void SSL_SESSION_get0_alpn_selected(const SSL_SESSION *s, @@ -1783,6 +1808,9 @@ __owur int SSL_has_matching_session_id(const SSL *s, unsigned int id_len); SSL_SESSION *d2i_SSL_SESSION(SSL_SESSION **a, const unsigned char **pp, long length); +SSL_SESSION *d2i_SSL_SESSION_ex(SSL_SESSION **a, const unsigned char **pp, + long length, OSSL_LIB_CTX *libctx, + const char *propq); # ifdef OPENSSL_X509_H __owur X509 *SSL_get0_peer_certificate(const SSL *s); @@ -1840,6 +1868,8 @@ __owur int SSL_CTX_set_session_id_context(SSL_CTX *ctx, SSL *SSL_new(SSL_CTX *ctx); int SSL_up_ref(SSL *s); int SSL_is_dtls(const SSL *s); +int SSL_is_tls(const SSL *s); +int SSL_is_quic(const SSL *s); __owur int SSL_set_session_id_context(SSL *ssl, const unsigned char *sid_ctx, unsigned int sid_ctx_len); @@ -1848,8 +1878,8 @@ __owur int SSL_set_purpose(SSL *ssl, int purpose); __owur int SSL_CTX_set_trust(SSL_CTX *ctx, int trust); __owur int SSL_set_trust(SSL *ssl, int trust); -__owur int SSL_set1_host(SSL *s, const char *hostname); -__owur int SSL_add1_host(SSL *s, const char *hostname); +__owur int SSL_set1_host(SSL *s, const char *host); +__owur int SSL_add1_host(SSL *s, const char *host); __owur const char *SSL_get0_peername(SSL *s); void SSL_set_hostflags(SSL *s, unsigned int flags); @@ -1924,6 +1954,11 @@ OSSL_DEPRECATEDIN_3_0 __owur char *SSL_get_srp_userinfo(SSL *s); typedef int (*SSL_client_hello_cb_fn) (SSL *s, int *al, void *arg); void SSL_CTX_set_client_hello_cb(SSL_CTX *c, SSL_client_hello_cb_fn cb, void *arg); +typedef int (*SSL_new_pending_conn_cb_fn) (SSL_CTX *ctx, SSL *new_ssl, + void *arg); +void SSL_CTX_set_new_pending_conn_cb(SSL_CTX *c, SSL_new_pending_conn_cb_fn cb, + void *arg); + int SSL_client_hello_isv2(SSL *s); unsigned int SSL_client_hello_get0_legacy_version(SSL *s); size_t SSL_client_hello_get0_random(SSL *s, const unsigned char **out); @@ -1932,6 +1967,8 @@ size_t SSL_client_hello_get0_ciphers(SSL *s, const unsigned char **out); size_t SSL_client_hello_get0_compression_methods(SSL *s, const unsigned char **out); int SSL_client_hello_get1_extensions_present(SSL *s, int **out, size_t *outlen); +int SSL_client_hello_get_extension_order(SSL *s, uint16_t *exts, + size_t *num_exts); int SSL_client_hello_get0_ext(SSL *s, unsigned int type, const unsigned char **out, size_t *outlen); @@ -1978,6 +2015,12 @@ long SSL_callback_ctrl(SSL *, int, void (*)(void)); long SSL_CTX_ctrl(SSL_CTX *ctx, int cmd, long larg, void *parg); long SSL_CTX_callback_ctrl(SSL_CTX *, int, void (*)(void)); +# define SSL_WRITE_FLAG_CONCLUDE (1U << 0) + +__owur int SSL_write_ex2(SSL *s, const void *buf, size_t num, + uint64_t flags, + size_t *written); + # define SSL_EARLY_DATA_NOT_SENT 0 # define SSL_EARLY_DATA_REJECTED 1 # define SSL_EARLY_DATA_ACCEPTED 2 @@ -1986,6 +2029,7 @@ __owur int SSL_get_early_data_status(const SSL *s); __owur int SSL_get_error(const SSL *s, int ret_code); __owur const char *SSL_get_version(const SSL *s); +__owur int SSL_get_handshake_rtt(const SSL *s, uint64_t *rtt); /* This sets the 'default' SSL version that SSL_new() will create */ # ifndef OPENSSL_NO_DEPRECATED_3_0 @@ -2281,6 +2325,8 @@ void SSL_CTX_set_record_padding_callback(SSL_CTX *ctx, void SSL_CTX_set_record_padding_callback_arg(SSL_CTX *ctx, void *arg); void *SSL_CTX_get_record_padding_callback_arg(const SSL_CTX *ctx); int SSL_CTX_set_block_padding(SSL_CTX *ctx, size_t block_size); +int SSL_CTX_set_block_padding_ex(SSL_CTX *ctx, size_t app_block_size, + size_t hs_block_size); int SSL_set_record_padding_callback(SSL *ssl, size_t (*cb) (SSL *ssl, int type, @@ -2288,12 +2334,255 @@ int SSL_set_record_padding_callback(SSL *ssl, void SSL_set_record_padding_callback_arg(SSL *ssl, void *arg); void *SSL_get_record_padding_callback_arg(const SSL *ssl); int SSL_set_block_padding(SSL *ssl, size_t block_size); - +int SSL_set_block_padding_ex(SSL *ssl, size_t app_block_size, + size_t hs_block_size); int SSL_set_num_tickets(SSL *s, size_t num_tickets); size_t SSL_get_num_tickets(const SSL *s); int SSL_CTX_set_num_tickets(SSL_CTX *ctx, size_t num_tickets); size_t SSL_CTX_get_num_tickets(const SSL_CTX *ctx); +/* QUIC support */ +int SSL_handle_events(SSL *s); +__owur int SSL_get_event_timeout(SSL *s, struct timeval *tv, int *is_infinite); +__owur int SSL_get_rpoll_descriptor(SSL *s, BIO_POLL_DESCRIPTOR *desc); +__owur int SSL_get_wpoll_descriptor(SSL *s, BIO_POLL_DESCRIPTOR *desc); +__owur int SSL_net_read_desired(SSL *s); +__owur int SSL_net_write_desired(SSL *s); +__owur int SSL_set_blocking_mode(SSL *s, int blocking); +__owur int SSL_get_blocking_mode(SSL *s); +__owur int SSL_set1_initial_peer_addr(SSL *s, const BIO_ADDR *peer_addr); +__owur SSL *SSL_get0_connection(SSL *s); +__owur int SSL_is_connection(SSL *s); + +__owur int SSL_is_listener(SSL *ssl); +__owur SSL *SSL_get0_listener(SSL *s); +#define SSL_LISTENER_FLAG_NO_VALIDATE (1UL << 1) +__owur SSL *SSL_new_listener(SSL_CTX *ctx, uint64_t flags); +__owur SSL *SSL_new_listener_from(SSL *ssl, uint64_t flags); +__owur SSL *SSL_new_from_listener(SSL *ssl, uint64_t flags); +#define SSL_ACCEPT_CONNECTION_NO_BLOCK (1UL << 0) +__owur SSL *SSL_accept_connection(SSL *ssl, uint64_t flags); +__owur size_t SSL_get_accept_connection_queue_len(SSL *ssl); +__owur int SSL_listen(SSL *ssl); + +__owur int SSL_is_domain(SSL *s); +__owur SSL *SSL_get0_domain(SSL *s); +__owur SSL *SSL_new_domain(SSL_CTX *ctx, uint64_t flags); + +#define SSL_DOMAIN_FLAG_SINGLE_THREAD (1U << 0) +#define SSL_DOMAIN_FLAG_MULTI_THREAD (1U << 1) +#define SSL_DOMAIN_FLAG_THREAD_ASSISTED (1U << 2) +#define SSL_DOMAIN_FLAG_BLOCKING (1U << 3) +#define SSL_DOMAIN_FLAG_LEGACY_BLOCKING (1U << 4) + +__owur int SSL_CTX_set_domain_flags(SSL_CTX *ctx, uint64_t domain_flags); +__owur int SSL_CTX_get_domain_flags(const SSL_CTX *ctx, uint64_t *domain_flags); +__owur int SSL_get_domain_flags(const SSL *ssl, uint64_t *domain_flags); + +#define SSL_STREAM_TYPE_NONE 0 +#define SSL_STREAM_TYPE_READ (1U << 0) +#define SSL_STREAM_TYPE_WRITE (1U << 1) +#define SSL_STREAM_TYPE_BIDI (SSL_STREAM_TYPE_READ | SSL_STREAM_TYPE_WRITE) +__owur int SSL_get_stream_type(SSL *s); + +__owur uint64_t SSL_get_stream_id(SSL *s); +__owur int SSL_is_stream_local(SSL *s); + +#define SSL_DEFAULT_STREAM_MODE_NONE 0 +#define SSL_DEFAULT_STREAM_MODE_AUTO_BIDI 1 +#define SSL_DEFAULT_STREAM_MODE_AUTO_UNI 2 +__owur int SSL_set_default_stream_mode(SSL *s, uint32_t mode); + +#define SSL_STREAM_FLAG_UNI (1U << 0) +#define SSL_STREAM_FLAG_NO_BLOCK (1U << 1) +#define SSL_STREAM_FLAG_ADVANCE (1U << 2) +__owur SSL *SSL_new_stream(SSL *s, uint64_t flags); + +#define SSL_INCOMING_STREAM_POLICY_AUTO 0 +#define SSL_INCOMING_STREAM_POLICY_ACCEPT 1 +#define SSL_INCOMING_STREAM_POLICY_REJECT 2 +__owur int SSL_set_incoming_stream_policy(SSL *s, int policy, uint64_t aec); + +#define SSL_ACCEPT_STREAM_NO_BLOCK (1U << 0) +__owur SSL *SSL_accept_stream(SSL *s, uint64_t flags); +__owur size_t SSL_get_accept_stream_queue_len(SSL *s); + +# ifndef OPENSSL_NO_QUIC +__owur int SSL_inject_net_dgram(SSL *s, const unsigned char *buf, + size_t buf_len, + const BIO_ADDR *peer, + const BIO_ADDR *local); +# endif + +typedef struct ssl_shutdown_ex_args_st { + uint64_t quic_error_code; + const char *quic_reason; +} SSL_SHUTDOWN_EX_ARGS; + +#define SSL_SHUTDOWN_FLAG_RAPID (1U << 0) +#define SSL_SHUTDOWN_FLAG_NO_STREAM_FLUSH (1U << 1) +#define SSL_SHUTDOWN_FLAG_NO_BLOCK (1U << 2) +#define SSL_SHUTDOWN_FLAG_WAIT_PEER (1U << 3) + +__owur int SSL_shutdown_ex(SSL *ssl, uint64_t flags, + const SSL_SHUTDOWN_EX_ARGS *args, + size_t args_len); + +__owur int SSL_stream_conclude(SSL *ssl, uint64_t flags); + +typedef struct ssl_stream_reset_args_st { + uint64_t quic_error_code; +} SSL_STREAM_RESET_ARGS; + +__owur int SSL_stream_reset(SSL *ssl, + const SSL_STREAM_RESET_ARGS *args, + size_t args_len); + +#define SSL_STREAM_STATE_NONE 0 +#define SSL_STREAM_STATE_OK 1 +#define SSL_STREAM_STATE_WRONG_DIR 2 +#define SSL_STREAM_STATE_FINISHED 3 +#define SSL_STREAM_STATE_RESET_LOCAL 4 +#define SSL_STREAM_STATE_RESET_REMOTE 5 +#define SSL_STREAM_STATE_CONN_CLOSED 6 +__owur int SSL_get_stream_read_state(SSL *ssl); +__owur int SSL_get_stream_write_state(SSL *ssl); + +__owur int SSL_get_stream_read_error_code(SSL *ssl, uint64_t *app_error_code); +__owur int SSL_get_stream_write_error_code(SSL *ssl, uint64_t *app_error_code); + +#define SSL_CONN_CLOSE_FLAG_LOCAL (1U << 0) +#define SSL_CONN_CLOSE_FLAG_TRANSPORT (1U << 1) + +typedef struct ssl_conn_close_info_st { + uint64_t error_code, frame_type; + const char *reason; + size_t reason_len; + uint32_t flags; +} SSL_CONN_CLOSE_INFO; + +__owur int SSL_get_conn_close_info(SSL *ssl, + SSL_CONN_CLOSE_INFO *info, + size_t info_len); + +# define SSL_VALUE_CLASS_GENERIC 0 +# define SSL_VALUE_CLASS_FEATURE_REQUEST 1 +# define SSL_VALUE_CLASS_FEATURE_PEER_REQUEST 2 +# define SSL_VALUE_CLASS_FEATURE_NEGOTIATED 3 + +# define SSL_VALUE_NONE 0 +# define SSL_VALUE_QUIC_STREAM_BIDI_LOCAL_AVAIL 1 +# define SSL_VALUE_QUIC_STREAM_BIDI_REMOTE_AVAIL 2 +# define SSL_VALUE_QUIC_STREAM_UNI_LOCAL_AVAIL 3 +# define SSL_VALUE_QUIC_STREAM_UNI_REMOTE_AVAIL 4 +# define SSL_VALUE_QUIC_IDLE_TIMEOUT 5 +# define SSL_VALUE_EVENT_HANDLING_MODE 6 +# define SSL_VALUE_STREAM_WRITE_BUF_SIZE 7 +# define SSL_VALUE_STREAM_WRITE_BUF_USED 8 +# define SSL_VALUE_STREAM_WRITE_BUF_AVAIL 9 + +# define SSL_VALUE_EVENT_HANDLING_MODE_INHERIT 0 +# define SSL_VALUE_EVENT_HANDLING_MODE_IMPLICIT 1 +# define SSL_VALUE_EVENT_HANDLING_MODE_EXPLICIT 2 + +int SSL_get_value_uint(SSL *s, uint32_t class_, uint32_t id, uint64_t *v); +int SSL_set_value_uint(SSL *s, uint32_t class_, uint32_t id, uint64_t v); + +# define SSL_get_generic_value_uint(ssl, id, v) \ + SSL_get_value_uint((ssl), SSL_VALUE_CLASS_GENERIC, (id), (v)) +# define SSL_set_generic_value_uint(ssl, id, v) \ + SSL_set_value_uint((ssl), SSL_VALUE_CLASS_GENERIC, (id), (v)) +# define SSL_get_feature_request_uint(ssl, id, v) \ + SSL_get_value_uint((ssl), SSL_VALUE_CLASS_FEATURE_REQUEST, (id), (v)) +# define SSL_set_feature_request_uint(ssl, id, v) \ + SSL_set_value_uint((ssl), SSL_VALUE_CLASS_FEATURE_REQUEST, (id), (v)) +# define SSL_get_feature_peer_request_uint(ssl, id, v) \ + SSL_get_value_uint((ssl), SSL_VALUE_CLASS_FEATURE_PEER_REQUEST, (id), (v)) +# define SSL_get_feature_negotiated_uint(ssl, id, v) \ + SSL_get_value_uint((ssl), SSL_VALUE_CLASS_FEATURE_NEGOTIATED, (id), (v)) + +# define SSL_get_quic_stream_bidi_local_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_QUIC_STREAM_BIDI_LOCAL_AVAIL, \ + (value)) +# define SSL_get_quic_stream_bidi_remote_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_QUIC_STREAM_BIDI_REMOTE_AVAIL, \ + (value)) +# define SSL_get_quic_stream_uni_local_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_QUIC_STREAM_UNI_LOCAL_AVAIL, \ + (value)) +# define SSL_get_quic_stream_uni_remote_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_QUIC_STREAM_UNI_REMOTE_AVAIL, \ + (value)) + +# define SSL_get_event_handling_mode(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_EVENT_HANDLING_MODE, \ + (value)) +# define SSL_set_event_handling_mode(ssl, value) \ + SSL_set_generic_value_uint((ssl), SSL_VALUE_EVENT_HANDLING_MODE, \ + (value)) + +# define SSL_get_stream_write_buf_size(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_STREAM_WRITE_BUF_SIZE, \ + (value)) +# define SSL_get_stream_write_buf_used(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_STREAM_WRITE_BUF_USED, \ + (value)) +# define SSL_get_stream_write_buf_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_STREAM_WRITE_BUF_AVAIL, \ + (value)) + +# define SSL_POLL_EVENT_NONE 0 + +# define SSL_POLL_EVENT_F (1U << 0) /* F (Failure) */ +# define SSL_POLL_EVENT_EL (1U << 1) /* EL (Exception on Listener) */ +# define SSL_POLL_EVENT_EC (1U << 2) /* EC (Exception on Conn) */ +# define SSL_POLL_EVENT_ECD (1U << 3) /* ECD (Exception on Conn Drained) */ +# define SSL_POLL_EVENT_ER (1U << 4) /* ER (Exception on Read) */ +# define SSL_POLL_EVENT_EW (1U << 5) /* EW (Exception on Write) */ +# define SSL_POLL_EVENT_R (1U << 6) /* R (Readable) */ +# define SSL_POLL_EVENT_W (1U << 7) /* W (Writable) */ +# define SSL_POLL_EVENT_IC (1U << 8) /* IC (Incoming Connection) */ +# define SSL_POLL_EVENT_ISB (1U << 9) /* ISB (Incoming Stream: Bidi) */ +# define SSL_POLL_EVENT_ISU (1U << 10) /* ISU (Incoming Stream: Uni) */ +# define SSL_POLL_EVENT_OSB (1U << 11) /* OSB (Outgoing Stream: Bidi) */ +# define SSL_POLL_EVENT_OSU (1U << 12) /* OSU (Outgoing Stream: Uni) */ + +# define SSL_POLL_EVENT_RW (SSL_POLL_EVENT_R | SSL_POLL_EVENT_W) +# define SSL_POLL_EVENT_RE (SSL_POLL_EVENT_R | SSL_POLL_EVENT_ER) +# define SSL_POLL_EVENT_WE (SSL_POLL_EVENT_W | SSL_POLL_EVENT_EW) +# define SSL_POLL_EVENT_RWE (SSL_POLL_EVENT_RE | SSL_POLL_EVENT_WE) +# define SSL_POLL_EVENT_E (SSL_POLL_EVENT_EL | SSL_POLL_EVENT_EC \ + | SSL_POLL_EVENT_ER | SSL_POLL_EVENT_EW) +# define SSL_POLL_EVENT_IS (SSL_POLL_EVENT_ISB | SSL_POLL_EVENT_ISU) +# define SSL_POLL_EVENT_ISE (SSL_POLL_EVENT_IS | SSL_POLL_EVENT_EC) +# define SSL_POLL_EVENT_I (SSL_POLL_EVENT_IS | SSL_POLL_EVENT_IC) +# define SSL_POLL_EVENT_OS (SSL_POLL_EVENT_OSB | SSL_POLL_EVENT_OSU) +# define SSL_POLL_EVENT_OSE (SSL_POLL_EVENT_OS | SSL_POLL_EVENT_EC) + +typedef struct ssl_poll_item_st { + BIO_POLL_DESCRIPTOR desc; + uint64_t events, revents; +} SSL_POLL_ITEM; + +# define SSL_POLL_FLAG_NO_HANDLE_EVENTS (1U << 0) + +__owur int SSL_poll(SSL_POLL_ITEM *items, + size_t num_items, + size_t stride, + const struct timeval *timeout, + uint64_t flags, + size_t *result_count); + +static ossl_inline ossl_unused BIO_POLL_DESCRIPTOR +SSL_as_poll_descriptor(SSL *s) +{ + BIO_POLL_DESCRIPTOR d; + + d.type = BIO_POLL_DESCRIPTOR_TYPE_SSL; + d.value.ssl = s; + return d; +} + # ifndef OPENSSL_NO_DEPRECATED_1_1_0 # define SSL_cache_hit(s) SSL_session_reused(s) # endif @@ -2593,6 +2882,51 @@ void SSL_set_allow_early_data_cb(SSL *s, const char *OSSL_default_cipher_list(void); const char *OSSL_default_ciphersuites(void); +/* RFC8879 Certificate compression APIs */ + +int SSL_CTX_compress_certs(SSL_CTX *ctx, int alg); +int SSL_compress_certs(SSL *ssl, int alg); + +int SSL_CTX_set1_cert_comp_preference(SSL_CTX *ctx, int *algs, size_t len); +int SSL_set1_cert_comp_preference(SSL *ssl, int *algs, size_t len); + +int SSL_CTX_set1_compressed_cert(SSL_CTX *ctx, int algorithm, unsigned char *comp_data, + size_t comp_length, size_t orig_length); +int SSL_set1_compressed_cert(SSL *ssl, int algorithm, unsigned char *comp_data, + size_t comp_length, size_t orig_length); +size_t SSL_CTX_get1_compressed_cert(SSL_CTX *ctx, int alg, unsigned char **data, size_t *orig_len); +size_t SSL_get1_compressed_cert(SSL *ssl, int alg, unsigned char **data, size_t *orig_len); + +__owur int SSL_add_expected_rpk(SSL *s, EVP_PKEY *rpk); +__owur EVP_PKEY *SSL_get0_peer_rpk(const SSL *s); +__owur EVP_PKEY *SSL_SESSION_get0_peer_rpk(SSL_SESSION *s); +__owur int SSL_get_negotiated_client_cert_type(const SSL *s); +__owur int SSL_get_negotiated_server_cert_type(const SSL *s); + +__owur int SSL_set1_client_cert_type(SSL *s, const unsigned char *val, size_t len); +__owur int SSL_set1_server_cert_type(SSL *s, const unsigned char *val, size_t len); +__owur int SSL_CTX_set1_client_cert_type(SSL_CTX *ctx, const unsigned char *val, size_t len); +__owur int SSL_CTX_set1_server_cert_type(SSL_CTX *ctx, const unsigned char *val, size_t len); +__owur int SSL_get0_client_cert_type(const SSL *s, unsigned char **t, size_t *len); +__owur int SSL_get0_server_cert_type(const SSL *s, unsigned char **t, size_t *len); +__owur int SSL_CTX_get0_client_cert_type(const SSL_CTX *ctx, unsigned char **t, size_t *len); +__owur int SSL_CTX_get0_server_cert_type(const SSL_CTX *s, unsigned char **t, size_t *len); + +/* + * Protection level. For <= TLSv1.2 only "NONE" and "APPLICATION" are used. + */ +# define OSSL_RECORD_PROTECTION_LEVEL_NONE 0 +# define OSSL_RECORD_PROTECTION_LEVEL_EARLY 1 +# define OSSL_RECORD_PROTECTION_LEVEL_HANDSHAKE 2 +# define OSSL_RECORD_PROTECTION_LEVEL_APPLICATION 3 + +int SSL_set_quic_tls_cbs(SSL *s, const OSSL_DISPATCH *qtdis, void *arg); +int SSL_set_quic_tls_transport_params(SSL *s, + const unsigned char *params, + size_t params_len); + +int SSL_set_quic_tls_early_data_enabled(SSL *s, int enabled); + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/no-asm/include/openssl/x509.h b/deps/openssl/config/archs/darwin64-arm64-cc/no-asm/include/openssl/x509.h index 1f7755e5b69c75..d013458c226461 100644 --- a/deps/openssl/config/archs/darwin64-arm64-cc/no-asm/include/openssl/x509.h +++ b/deps/openssl/config/archs/darwin64-arm64-cc/no-asm/include/openssl/x509.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/x509.h.in * - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2024 The OpenSSL Project Authors. All Rights Reserved. * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved * * Licensed under the Apache License 2.0 (the "License"). You may not use @@ -40,6 +40,9 @@ # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -162,16 +165,24 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_CRL, X509_CRL, X509_CRL) # define X509_FILETYPE_ASN1 2 # define X509_FILETYPE_DEFAULT 3 -# define X509v3_KU_DIGITAL_SIGNATURE 0x0080 -# define X509v3_KU_NON_REPUDIATION 0x0040 -# define X509v3_KU_KEY_ENCIPHERMENT 0x0020 -# define X509v3_KU_DATA_ENCIPHERMENT 0x0010 -# define X509v3_KU_KEY_AGREEMENT 0x0008 -# define X509v3_KU_KEY_CERT_SIGN 0x0004 -# define X509v3_KU_CRL_SIGN 0x0002 -# define X509v3_KU_ENCIPHER_ONLY 0x0001 -# define X509v3_KU_DECIPHER_ONLY 0x8000 -# define X509v3_KU_UNDEF 0xffff +/*- + * : + * The KeyUsage BITSTRING is treated as a little-endian integer, hence bit `0` + * is 0x80, while bit `7` is 0x01 (the LSB of the integer value), bit `8` is + * then the MSB of the second octet, or 0x8000. + */ +# define X509v3_KU_DIGITAL_SIGNATURE 0x0080 /* (0) */ +# define X509v3_KU_NON_REPUDIATION 0x0040 /* (1) */ +# define X509v3_KU_KEY_ENCIPHERMENT 0x0020 /* (2) */ +# define X509v3_KU_DATA_ENCIPHERMENT 0x0010 /* (3) */ +# define X509v3_KU_KEY_AGREEMENT 0x0008 /* (4) */ +# define X509v3_KU_KEY_CERT_SIGN 0x0004 /* (5) */ +# define X509v3_KU_CRL_SIGN 0x0002 /* (6) */ +# define X509v3_KU_ENCIPHER_ONLY 0x0001 /* (7) */ +# define X509v3_KU_DECIPHER_ONLY 0x8000 /* (8) */ +# ifndef OPENSSL_NO_DEPRECATED_3_4 +# define X509v3_KU_UNDEF 0xffff /* vestigial, not used */ +# endif struct X509_algor_st { ASN1_OBJECT *algorithm; @@ -462,7 +473,12 @@ typedef struct PBKDF2PARAM_st { X509_ALGOR *prf; } PBKDF2PARAM; -#ifndef OPENSSL_NO_SCRYPT +typedef struct { + X509_ALGOR *keyDerivationFunc; + X509_ALGOR *messageAuthScheme; +} PBMAC1PARAM; + +# ifndef OPENSSL_NO_SCRYPT typedef struct SCRYPT_PARAMS_st { ASN1_OCTET_STRING *salt; ASN1_INTEGER *costParameter; @@ -470,7 +486,7 @@ typedef struct SCRYPT_PARAMS_st { ASN1_INTEGER *parallelizationParameter; ASN1_INTEGER *keyLength; } SCRYPT_PARAMS; -#endif +# endif #ifdef __cplusplus } @@ -603,6 +619,8 @@ EVP_PKEY *d2i_PrivateKey_ex_fp(FILE *fp, EVP_PKEY **a, OSSL_LIB_CTX *libctx, const char *propq); EVP_PKEY *d2i_PrivateKey_fp(FILE *fp, EVP_PKEY **a); int i2d_PUBKEY_fp(FILE *fp, const EVP_PKEY *pkey); +EVP_PKEY *d2i_PUBKEY_ex_fp(FILE *fp, EVP_PKEY **a, OSSL_LIB_CTX *libctx, + const char *propq); EVP_PKEY *d2i_PUBKEY_fp(FILE *fp, EVP_PKEY **a); # endif @@ -651,6 +669,8 @@ EVP_PKEY *d2i_PrivateKey_ex_bio(BIO *bp, EVP_PKEY **a, OSSL_LIB_CTX *libctx, const char *propq); EVP_PKEY *d2i_PrivateKey_bio(BIO *bp, EVP_PKEY **a); int i2d_PUBKEY_bio(BIO *bp, const EVP_PKEY *pkey); +EVP_PKEY *d2i_PUBKEY_ex_bio(BIO *bp, EVP_PKEY **a, OSSL_LIB_CTX *libctx, + const char *propq); EVP_PKEY *d2i_PUBKEY_bio(BIO *bp, EVP_PKEY **a); DECLARE_ASN1_DUP_FUNCTION(X509) @@ -884,12 +904,12 @@ int X509_REQ_get_signature_nid(const X509_REQ *req); int i2d_re_X509_REQ_tbs(X509_REQ *req, unsigned char **pp); int X509_REQ_set_pubkey(X509_REQ *x, EVP_PKEY *pkey); EVP_PKEY *X509_REQ_get_pubkey(X509_REQ *req); -EVP_PKEY *X509_REQ_get0_pubkey(X509_REQ *req); +EVP_PKEY *X509_REQ_get0_pubkey(const X509_REQ *req); X509_PUBKEY *X509_REQ_get_X509_PUBKEY(X509_REQ *req); int X509_REQ_extension_nid(int nid); int *X509_REQ_get_extension_nids(void); void X509_REQ_set_extension_nids(int *nids); -STACK_OF(X509_EXTENSION) *X509_REQ_get_extensions(X509_REQ *req); +STACK_OF(X509_EXTENSION) *X509_REQ_get_extensions(OSSL_FUTURE_CONST X509_REQ *req); int X509_REQ_add_extensions_nid(X509_REQ *req, const STACK_OF(X509_EXTENSION) *exts, int nid); int X509_REQ_add_extensions(X509_REQ *req, const STACK_OF(X509_EXTENSION) *ext); @@ -950,13 +970,14 @@ X509_REVOKED_get0_extensions(const X509_REVOKED *r); X509_CRL *X509_CRL_diff(X509_CRL *base, X509_CRL *newer, EVP_PKEY *skey, const EVP_MD *md, unsigned int flags); -int X509_REQ_check_private_key(X509_REQ *x509, EVP_PKEY *pkey); +int X509_REQ_check_private_key(const X509_REQ *req, EVP_PKEY *pkey); -int X509_check_private_key(const X509 *x509, const EVP_PKEY *pkey); +int X509_check_private_key(const X509 *cert, const EVP_PKEY *pkey); int X509_chain_check_suiteb(int *perror_depth, X509 *x, STACK_OF(X509) *chain, unsigned long flags); int X509_CRL_check_suiteb(X509_CRL *crl, EVP_PKEY *pk, unsigned long flags); +void OSSL_STACK_OF_X509_free(STACK_OF(X509) *certs); STACK_OF(X509) *X509_chain_up_ref(STACK_OF(X509) *chain); int X509_issuer_and_serial_cmp(const X509 *a, const X509 *b); @@ -1077,6 +1098,8 @@ X509_EXTENSION *X509v3_get_ext(const STACK_OF(X509_EXTENSION) *x, int loc); X509_EXTENSION *X509v3_delete_ext(STACK_OF(X509_EXTENSION) *x, int loc); STACK_OF(X509_EXTENSION) *X509v3_add_ext(STACK_OF(X509_EXTENSION) **x, X509_EXTENSION *ex, int loc); +STACK_OF(X509_EXTENSION) *X509v3_add_extensions(STACK_OF(X509_EXTENSION) **target, + const STACK_OF(X509_EXTENSION) *exts); int X509_get_ext_count(const X509 *x); int X509_get_ext_by_NID(const X509 *x, int nid, int lastpos); @@ -1198,9 +1221,10 @@ X509 *X509_find_by_subject(STACK_OF(X509) *sk, const X509_NAME *name); DECLARE_ASN1_FUNCTIONS(PBEPARAM) DECLARE_ASN1_FUNCTIONS(PBE2PARAM) DECLARE_ASN1_FUNCTIONS(PBKDF2PARAM) -#ifndef OPENSSL_NO_SCRYPT +DECLARE_ASN1_FUNCTIONS(PBMAC1PARAM) +# ifndef OPENSSL_NO_SCRYPT DECLARE_ASN1_FUNCTIONS(SCRYPT_PARAMS) -#endif +# endif int PKCS5_pbe_set0_algor(X509_ALGOR *algor, int alg, int iter, const unsigned char *salt, int saltlen); @@ -1237,6 +1261,7 @@ X509_ALGOR *PKCS5_pbkdf2_set_ex(int iter, unsigned char *salt, int saltlen, int prf_nid, int keylen, OSSL_LIB_CTX *libctx); +PBKDF2PARAM *PBMAC1_get1_pbkdf2_param(const X509_ALGOR *macalg); /* PKCS#8 utilities */ DECLARE_ASN1_FUNCTIONS(PKCS8_PRIV_KEY_INFO) @@ -1262,6 +1287,8 @@ int PKCS8_pkey_add1_attr_by_OBJ(PKCS8_PRIV_KEY_INFO *p8, const ASN1_OBJECT *obj, int type, const unsigned char *bytes, int len); +void X509_PUBKEY_set0_public_key(X509_PUBKEY *pub, + unsigned char *penc, int penclen); int X509_PUBKEY_set0_param(X509_PUBKEY *pub, ASN1_OBJECT *aobj, int ptype, void *pval, unsigned char *penc, int penclen); diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/no-asm/include/openssl/x509_acert.h b/deps/openssl/config/archs/darwin64-arm64-cc/no-asm/include/openssl/x509_acert.h new file mode 100644 index 00000000000000..9dde625677f9a9 --- /dev/null +++ b/deps/openssl/config/archs/darwin64-arm64-cc/no-asm/include/openssl/x509_acert.h @@ -0,0 +1,294 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from include/openssl/x509_acert.h.in + * + * Copyright 2022-2024 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + + +#ifndef OPENSSL_X509_ACERT_H +# define OPENSSL_X509_ACERT_H +# pragma once + +# include +# include +# include + +typedef struct X509_acert_st X509_ACERT; +typedef struct X509_acert_info_st X509_ACERT_INFO; +typedef struct ossl_object_digest_info_st OSSL_OBJECT_DIGEST_INFO; +typedef struct ossl_issuer_serial_st OSSL_ISSUER_SERIAL; +typedef struct X509_acert_issuer_v2form_st X509_ACERT_ISSUER_V2FORM; + +DECLARE_ASN1_FUNCTIONS(X509_ACERT) +DECLARE_ASN1_DUP_FUNCTION(X509_ACERT) +DECLARE_ASN1_ITEM(X509_ACERT_INFO) +DECLARE_ASN1_ALLOC_FUNCTIONS(X509_ACERT_INFO) +DECLARE_ASN1_ALLOC_FUNCTIONS(OSSL_OBJECT_DIGEST_INFO) +DECLARE_ASN1_ALLOC_FUNCTIONS(OSSL_ISSUER_SERIAL) +DECLARE_ASN1_ALLOC_FUNCTIONS(X509_ACERT_ISSUER_V2FORM) + +# ifndef OPENSSL_NO_STDIO +X509_ACERT *d2i_X509_ACERT_fp(FILE *fp, X509_ACERT **acert); +int i2d_X509_ACERT_fp(FILE *fp, const X509_ACERT *acert); +# endif + +DECLARE_PEM_rw(X509_ACERT, X509_ACERT) + +X509_ACERT *d2i_X509_ACERT_bio(BIO *bp, X509_ACERT **acert); +int i2d_X509_ACERT_bio(BIO *bp, const X509_ACERT *acert); + +int X509_ACERT_sign(X509_ACERT *x, EVP_PKEY *pkey, const EVP_MD *md); +int X509_ACERT_sign_ctx(X509_ACERT *x, EVP_MD_CTX *ctx); +int X509_ACERT_verify(X509_ACERT *a, EVP_PKEY *r); + +# define X509_ACERT_VERSION_2 1 + +const GENERAL_NAMES *X509_ACERT_get0_holder_entityName(const X509_ACERT *x); +const OSSL_ISSUER_SERIAL *X509_ACERT_get0_holder_baseCertId(const X509_ACERT *x); +const OSSL_OBJECT_DIGEST_INFO * X509_ACERT_get0_holder_digest(const X509_ACERT *x); +const X509_NAME *X509_ACERT_get0_issuerName(const X509_ACERT *x); +long X509_ACERT_get_version(const X509_ACERT *x); +void X509_ACERT_get0_signature(const X509_ACERT *x, + const ASN1_BIT_STRING **psig, + const X509_ALGOR **palg); +int X509_ACERT_get_signature_nid(const X509_ACERT *x); +const X509_ALGOR *X509_ACERT_get0_info_sigalg(const X509_ACERT *x); +const ASN1_INTEGER *X509_ACERT_get0_serialNumber(const X509_ACERT *x); +const ASN1_TIME *X509_ACERT_get0_notBefore(const X509_ACERT *x); +const ASN1_TIME *X509_ACERT_get0_notAfter(const X509_ACERT *x); +const ASN1_BIT_STRING *X509_ACERT_get0_issuerUID(const X509_ACERT *x); + +int X509_ACERT_print(BIO *bp, X509_ACERT *x); +int X509_ACERT_print_ex(BIO *bp, X509_ACERT *x, unsigned long nmflags, + unsigned long cflag); + +int X509_ACERT_get_attr_count(const X509_ACERT *x); +int X509_ACERT_get_attr_by_NID(const X509_ACERT *x, int nid, int lastpos); +int X509_ACERT_get_attr_by_OBJ(const X509_ACERT *x, const ASN1_OBJECT *obj, + int lastpos); +X509_ATTRIBUTE *X509_ACERT_get_attr(const X509_ACERT *x, int loc); +X509_ATTRIBUTE *X509_ACERT_delete_attr(X509_ACERT *x, int loc); + +void *X509_ACERT_get_ext_d2i(const X509_ACERT *x, int nid, int *crit, int *idx); +int X509_ACERT_add1_ext_i2d(X509_ACERT *x, int nid, void *value, int crit, + unsigned long flags); +const STACK_OF(X509_EXTENSION) *X509_ACERT_get0_extensions(const X509_ACERT *x); + +# define OSSL_OBJECT_DIGEST_INFO_PUBLIC_KEY 0 +# define OSSL_OBJECT_DIGEST_INFO_PUBLIC_KEY_CERT 1 +# define OSSL_OBJECT_DIGEST_INFO_OTHER 2 /* must not be used in RFC 5755 profile */ +int X509_ACERT_set_version(X509_ACERT *x, long version); +void X509_ACERT_set0_holder_entityName(X509_ACERT *x, GENERAL_NAMES *name); +void X509_ACERT_set0_holder_baseCertId(X509_ACERT *x, OSSL_ISSUER_SERIAL *isss); +void X509_ACERT_set0_holder_digest(X509_ACERT *x, + OSSL_OBJECT_DIGEST_INFO *dinfo); + +int X509_ACERT_add1_attr(X509_ACERT *x, X509_ATTRIBUTE *attr); +int X509_ACERT_add1_attr_by_OBJ(X509_ACERT *x, const ASN1_OBJECT *obj, + int type, const void *bytes, int len); +int X509_ACERT_add1_attr_by_NID(X509_ACERT *x, int nid, int type, + const void *bytes, int len); +int X509_ACERT_add1_attr_by_txt(X509_ACERT *x, const char *attrname, int type, + const unsigned char *bytes, int len); +int X509_ACERT_add_attr_nconf(CONF *conf, const char *section, + X509_ACERT *acert); + +int X509_ACERT_set1_issuerName(X509_ACERT *x, const X509_NAME *name); +int X509_ACERT_set1_serialNumber(X509_ACERT *x, const ASN1_INTEGER *serial); +int X509_ACERT_set1_notBefore(X509_ACERT *x, const ASN1_GENERALIZEDTIME *time); +int X509_ACERT_set1_notAfter(X509_ACERT *x, const ASN1_GENERALIZEDTIME *time); + +void OSSL_OBJECT_DIGEST_INFO_get0_digest(const OSSL_OBJECT_DIGEST_INFO *o, + int *digestedObjectType, + const X509_ALGOR **digestAlgorithm, + const ASN1_BIT_STRING **digest); + +int OSSL_OBJECT_DIGEST_INFO_set1_digest(OSSL_OBJECT_DIGEST_INFO *o, + int digestedObjectType, + X509_ALGOR *digestAlgorithm, + ASN1_BIT_STRING *digest); + +const X509_NAME *OSSL_ISSUER_SERIAL_get0_issuer(const OSSL_ISSUER_SERIAL *isss); +const ASN1_INTEGER *OSSL_ISSUER_SERIAL_get0_serial(const OSSL_ISSUER_SERIAL *isss); +const ASN1_BIT_STRING *OSSL_ISSUER_SERIAL_get0_issuerUID(const OSSL_ISSUER_SERIAL *isss); + +int OSSL_ISSUER_SERIAL_set1_issuer(OSSL_ISSUER_SERIAL *isss, + const X509_NAME *issuer); +int OSSL_ISSUER_SERIAL_set1_serial(OSSL_ISSUER_SERIAL *isss, + const ASN1_INTEGER *serial); +int OSSL_ISSUER_SERIAL_set1_issuerUID(OSSL_ISSUER_SERIAL *isss, + const ASN1_BIT_STRING *uid); + +# define OSSL_IETFAS_OCTETS 0 +# define OSSL_IETFAS_OID 1 +# define OSSL_IETFAS_STRING 2 + +typedef struct OSSL_IETF_ATTR_SYNTAX_VALUE_st OSSL_IETF_ATTR_SYNTAX_VALUE; +typedef struct OSSL_IETF_ATTR_SYNTAX_st OSSL_IETF_ATTR_SYNTAX; +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_IETF_ATTR_SYNTAX_VALUE, OSSL_IETF_ATTR_SYNTAX_VALUE, OSSL_IETF_ATTR_SYNTAX_VALUE) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_value(sk, idx) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_value(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), (idx))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_new(cmp) ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_new(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_compfunc_type(cmp))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_new_null() ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_new_null()) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_new_reserve(cmp, n) ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_compfunc_type(cmp), (n))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), (n)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_free(sk) OPENSSL_sk_free(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_delete(sk, i) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_delete(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), (i))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_delete_ptr(sk, ptr) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_pop(sk) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_pop(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_shift(sk) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_shift(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk),ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_freefunc_type(freefunc)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr), (idx)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_set(sk, idx, ptr) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_set(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), (idx), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr), pnum) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_dup(sk) ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_dup(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_copyfunc_type(copyfunc), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_freefunc_type(freefunc))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_set_cmp_func(sk, cmp) ((sk_OSSL_IETF_ATTR_SYNTAX_VALUE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_compfunc_type(cmp))) + + +DECLARE_ASN1_ITEM(OSSL_IETF_ATTR_SYNTAX_VALUE) +DECLARE_ASN1_ALLOC_FUNCTIONS(OSSL_IETF_ATTR_SYNTAX_VALUE) +DECLARE_ASN1_FUNCTIONS(OSSL_IETF_ATTR_SYNTAX) + +const GENERAL_NAMES * +OSSL_IETF_ATTR_SYNTAX_get0_policyAuthority(const OSSL_IETF_ATTR_SYNTAX *a); +void OSSL_IETF_ATTR_SYNTAX_set0_policyAuthority(OSSL_IETF_ATTR_SYNTAX *a, + GENERAL_NAMES *names); + +int OSSL_IETF_ATTR_SYNTAX_get_value_num(const OSSL_IETF_ATTR_SYNTAX *a); +void *OSSL_IETF_ATTR_SYNTAX_get0_value(const OSSL_IETF_ATTR_SYNTAX *a, + int ind, int *type); +int OSSL_IETF_ATTR_SYNTAX_add1_value(OSSL_IETF_ATTR_SYNTAX *a, int type, + void *data); +int OSSL_IETF_ATTR_SYNTAX_print(BIO *bp, OSSL_IETF_ATTR_SYNTAX *a, int indent); + +struct TARGET_CERT_st { + OSSL_ISSUER_SERIAL *targetCertificate; + GENERAL_NAME *targetName; + OSSL_OBJECT_DIGEST_INFO *certDigestInfo; +}; + +typedef struct TARGET_CERT_st OSSL_TARGET_CERT; + +# define OSSL_TGT_TARGET_NAME 0 +# define OSSL_TGT_TARGET_GROUP 1 +# define OSSL_TGT_TARGET_CERT 2 + +typedef struct TARGET_st { + int type; + union { + GENERAL_NAME *targetName; + GENERAL_NAME *targetGroup; + OSSL_TARGET_CERT *targetCert; + } choice; +} OSSL_TARGET; + +typedef STACK_OF(OSSL_TARGET) OSSL_TARGETS; +typedef STACK_OF(OSSL_TARGETS) OSSL_TARGETING_INFORMATION; + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_TARGET, OSSL_TARGET, OSSL_TARGET) +#define sk_OSSL_TARGET_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_value(sk, idx) ((OSSL_TARGET *)OPENSSL_sk_value(ossl_check_const_OSSL_TARGET_sk_type(sk), (idx))) +#define sk_OSSL_TARGET_new(cmp) ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_new(ossl_check_OSSL_TARGET_compfunc_type(cmp))) +#define sk_OSSL_TARGET_new_null() ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_new_null()) +#define sk_OSSL_TARGET_new_reserve(cmp, n) ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_TARGET_compfunc_type(cmp), (n))) +#define sk_OSSL_TARGET_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_TARGET_sk_type(sk), (n)) +#define sk_OSSL_TARGET_free(sk) OPENSSL_sk_free(ossl_check_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_delete(sk, i) ((OSSL_TARGET *)OPENSSL_sk_delete(ossl_check_OSSL_TARGET_sk_type(sk), (i))) +#define sk_OSSL_TARGET_delete_ptr(sk, ptr) ((OSSL_TARGET *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr))) +#define sk_OSSL_TARGET_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr)) +#define sk_OSSL_TARGET_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr)) +#define sk_OSSL_TARGET_pop(sk) ((OSSL_TARGET *)OPENSSL_sk_pop(ossl_check_OSSL_TARGET_sk_type(sk))) +#define sk_OSSL_TARGET_shift(sk) ((OSSL_TARGET *)OPENSSL_sk_shift(ossl_check_OSSL_TARGET_sk_type(sk))) +#define sk_OSSL_TARGET_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_TARGET_sk_type(sk),ossl_check_OSSL_TARGET_freefunc_type(freefunc)) +#define sk_OSSL_TARGET_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr), (idx)) +#define sk_OSSL_TARGET_set(sk, idx, ptr) ((OSSL_TARGET *)OPENSSL_sk_set(ossl_check_OSSL_TARGET_sk_type(sk), (idx), ossl_check_OSSL_TARGET_type(ptr))) +#define sk_OSSL_TARGET_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr)) +#define sk_OSSL_TARGET_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr)) +#define sk_OSSL_TARGET_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr), pnum) +#define sk_OSSL_TARGET_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_dup(sk) ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_dup(ossl_check_const_OSSL_TARGET_sk_type(sk))) +#define sk_OSSL_TARGET_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_copyfunc_type(copyfunc), ossl_check_OSSL_TARGET_freefunc_type(freefunc))) +#define sk_OSSL_TARGET_set_cmp_func(sk, cmp) ((sk_OSSL_TARGET_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_compfunc_type(cmp))) + + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_TARGETS, OSSL_TARGETS, OSSL_TARGETS) +#define sk_OSSL_TARGETS_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_value(sk, idx) ((OSSL_TARGETS *)OPENSSL_sk_value(ossl_check_const_OSSL_TARGETS_sk_type(sk), (idx))) +#define sk_OSSL_TARGETS_new(cmp) ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_new(ossl_check_OSSL_TARGETS_compfunc_type(cmp))) +#define sk_OSSL_TARGETS_new_null() ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_new_null()) +#define sk_OSSL_TARGETS_new_reserve(cmp, n) ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_TARGETS_compfunc_type(cmp), (n))) +#define sk_OSSL_TARGETS_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_TARGETS_sk_type(sk), (n)) +#define sk_OSSL_TARGETS_free(sk) OPENSSL_sk_free(ossl_check_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_delete(sk, i) ((OSSL_TARGETS *)OPENSSL_sk_delete(ossl_check_OSSL_TARGETS_sk_type(sk), (i))) +#define sk_OSSL_TARGETS_delete_ptr(sk, ptr) ((OSSL_TARGETS *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr))) +#define sk_OSSL_TARGETS_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr)) +#define sk_OSSL_TARGETS_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr)) +#define sk_OSSL_TARGETS_pop(sk) ((OSSL_TARGETS *)OPENSSL_sk_pop(ossl_check_OSSL_TARGETS_sk_type(sk))) +#define sk_OSSL_TARGETS_shift(sk) ((OSSL_TARGETS *)OPENSSL_sk_shift(ossl_check_OSSL_TARGETS_sk_type(sk))) +#define sk_OSSL_TARGETS_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_TARGETS_sk_type(sk),ossl_check_OSSL_TARGETS_freefunc_type(freefunc)) +#define sk_OSSL_TARGETS_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr), (idx)) +#define sk_OSSL_TARGETS_set(sk, idx, ptr) ((OSSL_TARGETS *)OPENSSL_sk_set(ossl_check_OSSL_TARGETS_sk_type(sk), (idx), ossl_check_OSSL_TARGETS_type(ptr))) +#define sk_OSSL_TARGETS_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr)) +#define sk_OSSL_TARGETS_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr)) +#define sk_OSSL_TARGETS_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr), pnum) +#define sk_OSSL_TARGETS_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_dup(sk) ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_dup(ossl_check_const_OSSL_TARGETS_sk_type(sk))) +#define sk_OSSL_TARGETS_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_copyfunc_type(copyfunc), ossl_check_OSSL_TARGETS_freefunc_type(freefunc))) +#define sk_OSSL_TARGETS_set_cmp_func(sk, cmp) ((sk_OSSL_TARGETS_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_compfunc_type(cmp))) + + +DECLARE_ASN1_FUNCTIONS(OSSL_TARGET) +DECLARE_ASN1_FUNCTIONS(OSSL_TARGETS) +DECLARE_ASN1_FUNCTIONS(OSSL_TARGETING_INFORMATION) + +typedef STACK_OF(OSSL_ISSUER_SERIAL) OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX; +DECLARE_ASN1_FUNCTIONS(OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ISSUER_SERIAL, OSSL_ISSUER_SERIAL, OSSL_ISSUER_SERIAL) +#define sk_OSSL_ISSUER_SERIAL_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_value(sk, idx) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_value(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk), (idx))) +#define sk_OSSL_ISSUER_SERIAL_new(cmp) ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_new(ossl_check_OSSL_ISSUER_SERIAL_compfunc_type(cmp))) +#define sk_OSSL_ISSUER_SERIAL_new_null() ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ISSUER_SERIAL_new_reserve(cmp, n) ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ISSUER_SERIAL_compfunc_type(cmp), (n))) +#define sk_OSSL_ISSUER_SERIAL_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), (n)) +#define sk_OSSL_ISSUER_SERIAL_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_delete(sk, i) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_delete(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), (i))) +#define sk_OSSL_ISSUER_SERIAL_delete_ptr(sk, ptr) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr))) +#define sk_OSSL_ISSUER_SERIAL_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr)) +#define sk_OSSL_ISSUER_SERIAL_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr)) +#define sk_OSSL_ISSUER_SERIAL_pop(sk) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_pop(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk))) +#define sk_OSSL_ISSUER_SERIAL_shift(sk) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_shift(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk))) +#define sk_OSSL_ISSUER_SERIAL_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk),ossl_check_OSSL_ISSUER_SERIAL_freefunc_type(freefunc)) +#define sk_OSSL_ISSUER_SERIAL_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr), (idx)) +#define sk_OSSL_ISSUER_SERIAL_set(sk, idx, ptr) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_set(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), (idx), ossl_check_OSSL_ISSUER_SERIAL_type(ptr))) +#define sk_OSSL_ISSUER_SERIAL_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr)) +#define sk_OSSL_ISSUER_SERIAL_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr)) +#define sk_OSSL_ISSUER_SERIAL_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr), pnum) +#define sk_OSSL_ISSUER_SERIAL_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_dup(sk) ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk))) +#define sk_OSSL_ISSUER_SERIAL_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_copyfunc_type(copyfunc), ossl_check_OSSL_ISSUER_SERIAL_freefunc_type(freefunc))) +#define sk_OSSL_ISSUER_SERIAL_set_cmp_func(sk, cmp) ((sk_OSSL_ISSUER_SERIAL_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_compfunc_type(cmp))) + + +#endif diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/no-asm/include/openssl/x509_vfy.h b/deps/openssl/config/archs/darwin64-arm64-cc/no-asm/include/openssl/x509_vfy.h index 29b0e147adcab1..c9bdc3b39d685d 100644 --- a/deps/openssl/config/archs/darwin64-arm64-cc/no-asm/include/openssl/x509_vfy.h +++ b/deps/openssl/config/archs/darwin64-arm64-cc/no-asm/include/openssl/x509_vfy.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/x509_vfy.h.in * - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -411,6 +411,7 @@ X509_LOOKUP_ctrl_ex((x), X509_L_ADD_STORE, (name), 0, NULL, \ # define X509_V_ERR_CA_CERT_MISSING_KEY_USAGE 92 # define X509_V_ERR_EXTENSIONS_REQUIRE_VERSION_3 93 # define X509_V_ERR_EC_KEY_EXPLICIT_PARAMS 94 +# define X509_V_ERR_RPK_UNTRUSTED 95 /* Certificate verify flags */ # ifndef OPENSSL_NO_DEPRECATED_1_1_0 @@ -491,71 +492,72 @@ int X509_OBJECT_set1_X509(X509_OBJECT *a, X509 *obj); X509_CRL *X509_OBJECT_get0_X509_CRL(const X509_OBJECT *a); int X509_OBJECT_set1_X509_CRL(X509_OBJECT *a, X509_CRL *obj); X509_STORE *X509_STORE_new(void); -void X509_STORE_free(X509_STORE *v); -int X509_STORE_lock(X509_STORE *ctx); -int X509_STORE_unlock(X509_STORE *ctx); -int X509_STORE_up_ref(X509_STORE *v); -STACK_OF(X509_OBJECT) *X509_STORE_get0_objects(const X509_STORE *v); -STACK_OF(X509) *X509_STORE_get1_all_certs(X509_STORE *st); -STACK_OF(X509) *X509_STORE_CTX_get1_certs(X509_STORE_CTX *st, +void X509_STORE_free(X509_STORE *xs); +int X509_STORE_lock(X509_STORE *xs); +int X509_STORE_unlock(X509_STORE *xs); +int X509_STORE_up_ref(X509_STORE *xs); +STACK_OF(X509_OBJECT) *X509_STORE_get0_objects(const X509_STORE *xs); +STACK_OF(X509_OBJECT) *X509_STORE_get1_objects(X509_STORE *xs); +STACK_OF(X509) *X509_STORE_get1_all_certs(X509_STORE *xs); +STACK_OF(X509) *X509_STORE_CTX_get1_certs(X509_STORE_CTX *xs, const X509_NAME *nm); STACK_OF(X509_CRL) *X509_STORE_CTX_get1_crls(const X509_STORE_CTX *st, const X509_NAME *nm); -int X509_STORE_set_flags(X509_STORE *ctx, unsigned long flags); -int X509_STORE_set_purpose(X509_STORE *ctx, int purpose); -int X509_STORE_set_trust(X509_STORE *ctx, int trust); -int X509_STORE_set1_param(X509_STORE *ctx, const X509_VERIFY_PARAM *pm); -X509_VERIFY_PARAM *X509_STORE_get0_param(const X509_STORE *ctx); +int X509_STORE_set_flags(X509_STORE *xs, unsigned long flags); +int X509_STORE_set_purpose(X509_STORE *xs, int purpose); +int X509_STORE_set_trust(X509_STORE *xs, int trust); +int X509_STORE_set1_param(X509_STORE *xs, const X509_VERIFY_PARAM *pm); +X509_VERIFY_PARAM *X509_STORE_get0_param(const X509_STORE *xs); -void X509_STORE_set_verify(X509_STORE *ctx, X509_STORE_CTX_verify_fn verify); +void X509_STORE_set_verify(X509_STORE *xs, X509_STORE_CTX_verify_fn verify); #define X509_STORE_set_verify_func(ctx, func) \ X509_STORE_set_verify((ctx),(func)) void X509_STORE_CTX_set_verify(X509_STORE_CTX *ctx, X509_STORE_CTX_verify_fn verify); -X509_STORE_CTX_verify_fn X509_STORE_get_verify(const X509_STORE *ctx); -void X509_STORE_set_verify_cb(X509_STORE *ctx, +X509_STORE_CTX_verify_fn X509_STORE_get_verify(const X509_STORE *xs); +void X509_STORE_set_verify_cb(X509_STORE *xs, X509_STORE_CTX_verify_cb verify_cb); # define X509_STORE_set_verify_cb_func(ctx,func) \ X509_STORE_set_verify_cb((ctx),(func)) -X509_STORE_CTX_verify_cb X509_STORE_get_verify_cb(const X509_STORE *ctx); -void X509_STORE_set_get_issuer(X509_STORE *ctx, +X509_STORE_CTX_verify_cb X509_STORE_get_verify_cb(const X509_STORE *xs); +void X509_STORE_set_get_issuer(X509_STORE *xs, X509_STORE_CTX_get_issuer_fn get_issuer); -X509_STORE_CTX_get_issuer_fn X509_STORE_get_get_issuer(const X509_STORE *ctx); -void X509_STORE_set_check_issued(X509_STORE *ctx, +X509_STORE_CTX_get_issuer_fn X509_STORE_get_get_issuer(const X509_STORE *xs); +void X509_STORE_set_check_issued(X509_STORE *xs, X509_STORE_CTX_check_issued_fn check_issued); -X509_STORE_CTX_check_issued_fn X509_STORE_get_check_issued(const X509_STORE *ctx); -void X509_STORE_set_check_revocation(X509_STORE *ctx, +X509_STORE_CTX_check_issued_fn X509_STORE_get_check_issued(const X509_STORE *s); +void X509_STORE_set_check_revocation(X509_STORE *xs, X509_STORE_CTX_check_revocation_fn check_revocation); X509_STORE_CTX_check_revocation_fn - X509_STORE_get_check_revocation(const X509_STORE *ctx); -void X509_STORE_set_get_crl(X509_STORE *ctx, + X509_STORE_get_check_revocation(const X509_STORE *xs); +void X509_STORE_set_get_crl(X509_STORE *xs, X509_STORE_CTX_get_crl_fn get_crl); -X509_STORE_CTX_get_crl_fn X509_STORE_get_get_crl(const X509_STORE *ctx); -void X509_STORE_set_check_crl(X509_STORE *ctx, +X509_STORE_CTX_get_crl_fn X509_STORE_get_get_crl(const X509_STORE *xs); +void X509_STORE_set_check_crl(X509_STORE *xs, X509_STORE_CTX_check_crl_fn check_crl); -X509_STORE_CTX_check_crl_fn X509_STORE_get_check_crl(const X509_STORE *ctx); -void X509_STORE_set_cert_crl(X509_STORE *ctx, +X509_STORE_CTX_check_crl_fn X509_STORE_get_check_crl(const X509_STORE *xs); +void X509_STORE_set_cert_crl(X509_STORE *xs, X509_STORE_CTX_cert_crl_fn cert_crl); -X509_STORE_CTX_cert_crl_fn X509_STORE_get_cert_crl(const X509_STORE *ctx); -void X509_STORE_set_check_policy(X509_STORE *ctx, +X509_STORE_CTX_cert_crl_fn X509_STORE_get_cert_crl(const X509_STORE *xs); +void X509_STORE_set_check_policy(X509_STORE *xs, X509_STORE_CTX_check_policy_fn check_policy); -X509_STORE_CTX_check_policy_fn X509_STORE_get_check_policy(const X509_STORE *ctx); -void X509_STORE_set_lookup_certs(X509_STORE *ctx, +X509_STORE_CTX_check_policy_fn X509_STORE_get_check_policy(const X509_STORE *s); +void X509_STORE_set_lookup_certs(X509_STORE *xs, X509_STORE_CTX_lookup_certs_fn lookup_certs); -X509_STORE_CTX_lookup_certs_fn X509_STORE_get_lookup_certs(const X509_STORE *ctx); -void X509_STORE_set_lookup_crls(X509_STORE *ctx, +X509_STORE_CTX_lookup_certs_fn X509_STORE_get_lookup_certs(const X509_STORE *s); +void X509_STORE_set_lookup_crls(X509_STORE *xs, X509_STORE_CTX_lookup_crls_fn lookup_crls); #define X509_STORE_set_lookup_crls_cb(ctx, func) \ X509_STORE_set_lookup_crls((ctx), (func)) -X509_STORE_CTX_lookup_crls_fn X509_STORE_get_lookup_crls(const X509_STORE *ctx); -void X509_STORE_set_cleanup(X509_STORE *ctx, +X509_STORE_CTX_lookup_crls_fn X509_STORE_get_lookup_crls(const X509_STORE *xs); +void X509_STORE_set_cleanup(X509_STORE *xs, X509_STORE_CTX_cleanup_fn cleanup); -X509_STORE_CTX_cleanup_fn X509_STORE_get_cleanup(const X509_STORE *ctx); +X509_STORE_CTX_cleanup_fn X509_STORE_get_cleanup(const X509_STORE *xs); #define X509_STORE_get_ex_new_index(l, p, newf, dupf, freef) \ CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_X509_STORE, l, p, newf, dupf, freef) -int X509_STORE_set_ex_data(X509_STORE *ctx, int idx, void *data); -void *X509_STORE_get_ex_data(const X509_STORE *ctx, int idx); +int X509_STORE_set_ex_data(X509_STORE *xs, int idx, void *data); +void *X509_STORE_get_ex_data(const X509_STORE *xs, int idx); X509_STORE_CTX *X509_STORE_CTX_new_ex(OSSL_LIB_CTX *libctx, const char *propq); X509_STORE_CTX *X509_STORE_CTX_new(void); @@ -565,11 +567,14 @@ int X509_STORE_CTX_get1_issuer(X509 **issuer, X509_STORE_CTX *ctx, X509 *x); void X509_STORE_CTX_free(X509_STORE_CTX *ctx); int X509_STORE_CTX_init(X509_STORE_CTX *ctx, X509_STORE *trust_store, X509 *target, STACK_OF(X509) *untrusted); +int X509_STORE_CTX_init_rpk(X509_STORE_CTX *ctx, X509_STORE *trust_store, + EVP_PKEY* rpk); void X509_STORE_CTX_set0_trusted_stack(X509_STORE_CTX *ctx, STACK_OF(X509) *sk); void X509_STORE_CTX_cleanup(X509_STORE_CTX *ctx); X509_STORE *X509_STORE_CTX_get0_store(const X509_STORE_CTX *ctx); X509 *X509_STORE_CTX_get0_cert(const X509_STORE_CTX *ctx); +EVP_PKEY *X509_STORE_CTX_get0_rpk(const X509_STORE_CTX *ctx); STACK_OF(X509)* X509_STORE_CTX_get0_untrusted(const X509_STORE_CTX *ctx); void X509_STORE_CTX_set0_untrusted(X509_STORE_CTX *ctx, STACK_OF(X509) *sk); void X509_STORE_CTX_set_verify_cb(X509_STORE_CTX *ctx, @@ -579,6 +584,8 @@ X509_STORE_CTX_verify_fn X509_STORE_CTX_get_verify(const X509_STORE_CTX *ctx); X509_STORE_CTX_get_issuer_fn X509_STORE_CTX_get_get_issuer(const X509_STORE_CTX *ctx); X509_STORE_CTX_check_issued_fn X509_STORE_CTX_get_check_issued(const X509_STORE_CTX *ctx); X509_STORE_CTX_check_revocation_fn X509_STORE_CTX_get_check_revocation(const X509_STORE_CTX *ctx); +void X509_STORE_CTX_set_get_crl(X509_STORE_CTX *ctx, + X509_STORE_CTX_get_crl_fn get_crl); X509_STORE_CTX_get_crl_fn X509_STORE_CTX_get_get_crl(const X509_STORE_CTX *ctx); X509_STORE_CTX_check_crl_fn X509_STORE_CTX_get_check_crl(const X509_STORE_CTX *ctx); X509_STORE_CTX_cert_crl_fn X509_STORE_CTX_get_cert_crl(const X509_STORE_CTX *ctx); @@ -600,7 +607,7 @@ X509_STORE_CTX_cleanup_fn X509_STORE_CTX_get_cleanup(const X509_STORE_CTX *ctx); # define X509_STORE_get1_crl X509_STORE_CTX_get1_crls #endif -X509_LOOKUP *X509_STORE_add_lookup(X509_STORE *v, X509_LOOKUP_METHOD *m); +X509_LOOKUP *X509_STORE_add_lookup(X509_STORE *xs, X509_LOOKUP_METHOD *m); X509_LOOKUP_METHOD *X509_LOOKUP_hash_dir(void); X509_LOOKUP_METHOD *X509_LOOKUP_file(void); X509_LOOKUP_METHOD *X509_LOOKUP_store(void); @@ -685,8 +692,8 @@ X509_LOOKUP_get_by_alias_fn X509_LOOKUP_meth_get_get_by_alias( const X509_LOOKUP_METHOD *method); -int X509_STORE_add_cert(X509_STORE *ctx, X509 *x); -int X509_STORE_add_crl(X509_STORE *ctx, X509_CRL *x); +int X509_STORE_add_cert(X509_STORE *xs, X509 *x); +int X509_STORE_add_crl(X509_STORE *xs, X509_CRL *x); int X509_STORE_CTX_get_by_subject(const X509_STORE_CTX *vs, X509_LOOKUP_TYPE type, @@ -730,23 +737,21 @@ void *X509_LOOKUP_get_method_data(const X509_LOOKUP *ctx); X509_STORE *X509_LOOKUP_get_store(const X509_LOOKUP *ctx); int X509_LOOKUP_shutdown(X509_LOOKUP *ctx); -int X509_STORE_load_file(X509_STORE *ctx, const char *file); -int X509_STORE_load_path(X509_STORE *ctx, const char *path); -int X509_STORE_load_store(X509_STORE *ctx, const char *store); -int X509_STORE_load_locations(X509_STORE *ctx, - const char *file, - const char *dir); -int X509_STORE_set_default_paths(X509_STORE *ctx); +int X509_STORE_load_file(X509_STORE *xs, const char *file); +int X509_STORE_load_path(X509_STORE *xs, const char *path); +int X509_STORE_load_store(X509_STORE *xs, const char *store); +int X509_STORE_load_locations(X509_STORE *s, const char *file, const char *dir); +int X509_STORE_set_default_paths(X509_STORE *xs); -int X509_STORE_load_file_ex(X509_STORE *ctx, const char *file, +int X509_STORE_load_file_ex(X509_STORE *xs, const char *file, OSSL_LIB_CTX *libctx, const char *propq); -int X509_STORE_load_store_ex(X509_STORE *ctx, const char *store, +int X509_STORE_load_store_ex(X509_STORE *xs, const char *store, OSSL_LIB_CTX *libctx, const char *propq); -int X509_STORE_load_locations_ex(X509_STORE *ctx, const char *file, - const char *dir, OSSL_LIB_CTX *libctx, - const char *propq); -int X509_STORE_set_default_paths_ex(X509_STORE *ctx, OSSL_LIB_CTX *libctx, - const char *propq); +int X509_STORE_load_locations_ex(X509_STORE *xs, + const char *file, const char *dir, + OSSL_LIB_CTX *libctx, const char *propq); +int X509_STORE_set_default_paths_ex(X509_STORE *xs, + OSSL_LIB_CTX *libctx, const char *propq); #define X509_STORE_CTX_get_ex_new_index(l, p, newf, dupf, freef) \ CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_X509_STORE_CTX, l, p, newf, dupf, freef) @@ -764,6 +769,7 @@ X509_STORE_CTX *X509_STORE_CTX_get0_parent_ctx(const X509_STORE_CTX *ctx); STACK_OF(X509) *X509_STORE_CTX_get0_chain(const X509_STORE_CTX *ctx); STACK_OF(X509) *X509_STORE_CTX_get1_chain(const X509_STORE_CTX *ctx); void X509_STORE_CTX_set_cert(X509_STORE_CTX *ctx, X509 *target); +void X509_STORE_CTX_set0_rpk(X509_STORE_CTX *ctx, EVP_PKEY *target); void X509_STORE_CTX_set0_verified_chain(X509_STORE_CTX *c, STACK_OF(X509) *sk); void X509_STORE_CTX_set0_crls(X509_STORE_CTX *ctx, STACK_OF(X509_CRL) *sk); int X509_STORE_CTX_set_purpose(X509_STORE_CTX *ctx, int purpose); @@ -773,6 +779,8 @@ int X509_STORE_CTX_purpose_inherit(X509_STORE_CTX *ctx, int def_purpose, void X509_STORE_CTX_set_flags(X509_STORE_CTX *ctx, unsigned long flags); void X509_STORE_CTX_set_time(X509_STORE_CTX *ctx, unsigned long flags, time_t t); +void X509_STORE_CTX_set_current_reasons(X509_STORE_CTX *ctx, + unsigned int current_reasons); X509_POLICY_TREE *X509_STORE_CTX_get0_policy_tree(const X509_STORE_CTX *ctx); int X509_STORE_CTX_get_explicit_policy(const X509_STORE_CTX *ctx); @@ -804,6 +812,7 @@ int X509_VERIFY_PARAM_clear_flags(X509_VERIFY_PARAM *param, unsigned long flags); unsigned long X509_VERIFY_PARAM_get_flags(const X509_VERIFY_PARAM *param); int X509_VERIFY_PARAM_set_purpose(X509_VERIFY_PARAM *param, int purpose); +int X509_VERIFY_PARAM_get_purpose(const X509_VERIFY_PARAM *param); int X509_VERIFY_PARAM_set_trust(X509_VERIFY_PARAM *param, int trust); void X509_VERIFY_PARAM_set_depth(X509_VERIFY_PARAM *param, int depth); void X509_VERIFY_PARAM_set_auth_level(X509_VERIFY_PARAM *param, int auth_level); diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/no-asm/include/openssl/x509v3.h b/deps/openssl/config/archs/darwin64-arm64-cc/no-asm/include/openssl/x509v3.h index 20b67455f2061d..b8dabac35a4915 100644 --- a/deps/openssl/config/archs/darwin64-arm64-cc/no-asm/include/openssl/x509v3.h +++ b/deps/openssl/config/archs/darwin64-arm64-cc/no-asm/include/openssl/x509v3.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/x509v3.h.in * - * Copyright 1999-2023 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1999-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -25,6 +25,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -146,6 +149,11 @@ typedef struct BASIC_CONSTRAINTS_st { ASN1_INTEGER *pathlen; } BASIC_CONSTRAINTS; +typedef struct OSSL_BASIC_ATTR_CONSTRAINTS_st { + int authority; + ASN1_INTEGER *pathlen; +} OSSL_BASIC_ATTR_CONSTRAINTS; + typedef struct PKEY_USAGE_PERIOD_st { ASN1_GENERALIZEDTIME *notBefore; ASN1_GENERALIZEDTIME *notAfter; @@ -198,6 +206,8 @@ typedef struct ACCESS_DESCRIPTION_st { GENERAL_NAME *location; } ACCESS_DESCRIPTION; +int GENERAL_NAME_set1_X509_NAME(GENERAL_NAME **tgt, const X509_NAME *src); + SKM_DEFINE_STACK_OF_INTERNAL(ACCESS_DESCRIPTION, ACCESS_DESCRIPTION, ACCESS_DESCRIPTION) #define sk_ACCESS_DESCRIPTION_num(sk) OPENSSL_sk_num(ossl_check_const_ACCESS_DESCRIPTION_sk_type(sk)) #define sk_ACCESS_DESCRIPTION_value(sk, idx) ((ACCESS_DESCRIPTION *)OPENSSL_sk_value(ossl_check_const_ACCESS_DESCRIPTION_sk_type(sk), (idx))) @@ -294,6 +304,7 @@ typedef struct DIST_POINT_NAME_st { /* If relativename then this contains the full distribution point name */ X509_NAME *dpname; } DIST_POINT_NAME; +DECLARE_ASN1_DUP_FUNCTION(DIST_POINT_NAME) /* All existing reasons */ # define CRLDP_ALL_REASONS 0x807f @@ -659,15 +670,16 @@ struct ISSUING_DIST_POINT_st { # define EXFLAG_SAN_CRITICAL 0x80000 # define EXFLAG_NO_FINGERPRINT 0x100000 -# define KU_DIGITAL_SIGNATURE 0x0080 -# define KU_NON_REPUDIATION 0x0040 -# define KU_KEY_ENCIPHERMENT 0x0020 -# define KU_DATA_ENCIPHERMENT 0x0010 -# define KU_KEY_AGREEMENT 0x0008 -# define KU_KEY_CERT_SIGN 0x0004 -# define KU_CRL_SIGN 0x0002 -# define KU_ENCIPHER_ONLY 0x0001 -# define KU_DECIPHER_ONLY 0x8000 +/* https://datatracker.ietf.org/doc/html/rfc5280#section-4.2.1.3 */ +# define KU_DIGITAL_SIGNATURE X509v3_KU_DIGITAL_SIGNATURE +# define KU_NON_REPUDIATION X509v3_KU_NON_REPUDIATION +# define KU_KEY_ENCIPHERMENT X509v3_KU_KEY_ENCIPHERMENT +# define KU_DATA_ENCIPHERMENT X509v3_KU_DATA_ENCIPHERMENT +# define KU_KEY_AGREEMENT X509v3_KU_KEY_AGREEMENT +# define KU_KEY_CERT_SIGN X509v3_KU_KEY_CERT_SIGN +# define KU_CRL_SIGN X509v3_KU_CRL_SIGN +# define KU_ENCIPHER_ONLY X509v3_KU_ENCIPHER_ONLY +# define KU_DECIPHER_ONLY X509v3_KU_DECIPHER_ONLY # define NS_SSL_CLIENT 0x80 # define NS_SSL_SERVER 0x40 @@ -729,7 +741,7 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_PURPOSE, X509_PURPOSE, X509_PURPOSE) #define sk_X509_PURPOSE_set_cmp_func(sk, cmp) ((sk_X509_PURPOSE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_X509_PURPOSE_sk_type(sk), ossl_check_X509_PURPOSE_compfunc_type(cmp))) - +# define X509_PURPOSE_DEFAULT_ANY 0 # define X509_PURPOSE_SSL_CLIENT 1 # define X509_PURPOSE_SSL_SERVER 2 # define X509_PURPOSE_NS_SSL_SERVER 3 @@ -739,9 +751,10 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_PURPOSE, X509_PURPOSE, X509_PURPOSE) # define X509_PURPOSE_ANY 7 # define X509_PURPOSE_OCSP_HELPER 8 # define X509_PURPOSE_TIMESTAMP_SIGN 9 +# define X509_PURPOSE_CODE_SIGN 10 # define X509_PURPOSE_MIN 1 -# define X509_PURPOSE_MAX 9 +# define X509_PURPOSE_MAX 10 /* Flags for X509V3_EXT_print() */ @@ -767,6 +780,7 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_PURPOSE, X509_PURPOSE, X509_PURPOSE) # define X509V3_ADD_SILENT 0x10 DECLARE_ASN1_FUNCTIONS(BASIC_CONSTRAINTS) +DECLARE_ASN1_FUNCTIONS(OSSL_BASIC_ATTR_CONSTRAINTS) DECLARE_ASN1_FUNCTIONS(SXNET) DECLARE_ASN1_FUNCTIONS(SXNETID) @@ -976,7 +990,6 @@ int X509V3_extensions_print(BIO *out, const char *title, int X509_check_ca(X509 *x); int X509_check_purpose(X509 *x, int id, int ca); int X509_supported_extension(X509_EXTENSION *ex); -int X509_PURPOSE_set(int *p, int purpose); int X509_check_issued(X509 *issuer, X509 *subject); int X509_check_akid(const X509 *issuer, const AUTHORITY_KEYID *akid); void X509_set_proxy_flag(X509 *x); @@ -992,22 +1005,26 @@ const GENERAL_NAMES *X509_get0_authority_issuer(X509 *x); const ASN1_INTEGER *X509_get0_authority_serial(X509 *x); int X509_PURPOSE_get_count(void); -X509_PURPOSE *X509_PURPOSE_get0(int idx); +int X509_PURPOSE_get_unused_id(OSSL_LIB_CTX *libctx); int X509_PURPOSE_get_by_sname(const char *sname); int X509_PURPOSE_get_by_id(int id); int X509_PURPOSE_add(int id, int trust, int flags, int (*ck) (const X509_PURPOSE *, const X509 *, int), const char *name, const char *sname, void *arg); +void X509_PURPOSE_cleanup(void); + +X509_PURPOSE *X509_PURPOSE_get0(int idx); +int X509_PURPOSE_get_id(const X509_PURPOSE *); char *X509_PURPOSE_get0_name(const X509_PURPOSE *xp); char *X509_PURPOSE_get0_sname(const X509_PURPOSE *xp); int X509_PURPOSE_get_trust(const X509_PURPOSE *xp); -void X509_PURPOSE_cleanup(void); -int X509_PURPOSE_get_id(const X509_PURPOSE *); +int X509_PURPOSE_set(int *p, int purpose); STACK_OF(OPENSSL_STRING) *X509_get1_email(X509 *x); STACK_OF(OPENSSL_STRING) *X509_REQ_get1_email(X509_REQ *x); void X509_email_free(STACK_OF(OPENSSL_STRING) *sk); STACK_OF(OPENSSL_STRING) *X509_get1_ocsp(X509 *x); + /* Flags for X509_check_* functions */ /* @@ -1444,6 +1461,507 @@ const ASN1_PRINTABLESTRING *PROFESSION_INFO_get0_registrationNumber( void PROFESSION_INFO_set0_registrationNumber( PROFESSION_INFO *pi, ASN1_PRINTABLESTRING *rn); +int OSSL_GENERAL_NAMES_print(BIO *out, GENERAL_NAMES *gens, int indent); + +typedef STACK_OF(X509_ATTRIBUTE) OSSL_ATTRIBUTES_SYNTAX; +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTES_SYNTAX) + +typedef STACK_OF(USERNOTICE) OSSL_USER_NOTICE_SYNTAX; +DECLARE_ASN1_FUNCTIONS(OSSL_USER_NOTICE_SYNTAX) + +SKM_DEFINE_STACK_OF_INTERNAL(USERNOTICE, USERNOTICE, USERNOTICE) +#define sk_USERNOTICE_num(sk) OPENSSL_sk_num(ossl_check_const_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_value(sk, idx) ((USERNOTICE *)OPENSSL_sk_value(ossl_check_const_USERNOTICE_sk_type(sk), (idx))) +#define sk_USERNOTICE_new(cmp) ((STACK_OF(USERNOTICE) *)OPENSSL_sk_new(ossl_check_USERNOTICE_compfunc_type(cmp))) +#define sk_USERNOTICE_new_null() ((STACK_OF(USERNOTICE) *)OPENSSL_sk_new_null()) +#define sk_USERNOTICE_new_reserve(cmp, n) ((STACK_OF(USERNOTICE) *)OPENSSL_sk_new_reserve(ossl_check_USERNOTICE_compfunc_type(cmp), (n))) +#define sk_USERNOTICE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_USERNOTICE_sk_type(sk), (n)) +#define sk_USERNOTICE_free(sk) OPENSSL_sk_free(ossl_check_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_zero(sk) OPENSSL_sk_zero(ossl_check_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_delete(sk, i) ((USERNOTICE *)OPENSSL_sk_delete(ossl_check_USERNOTICE_sk_type(sk), (i))) +#define sk_USERNOTICE_delete_ptr(sk, ptr) ((USERNOTICE *)OPENSSL_sk_delete_ptr(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr))) +#define sk_USERNOTICE_push(sk, ptr) OPENSSL_sk_push(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr)) +#define sk_USERNOTICE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr)) +#define sk_USERNOTICE_pop(sk) ((USERNOTICE *)OPENSSL_sk_pop(ossl_check_USERNOTICE_sk_type(sk))) +#define sk_USERNOTICE_shift(sk) ((USERNOTICE *)OPENSSL_sk_shift(ossl_check_USERNOTICE_sk_type(sk))) +#define sk_USERNOTICE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_USERNOTICE_sk_type(sk),ossl_check_USERNOTICE_freefunc_type(freefunc)) +#define sk_USERNOTICE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr), (idx)) +#define sk_USERNOTICE_set(sk, idx, ptr) ((USERNOTICE *)OPENSSL_sk_set(ossl_check_USERNOTICE_sk_type(sk), (idx), ossl_check_USERNOTICE_type(ptr))) +#define sk_USERNOTICE_find(sk, ptr) OPENSSL_sk_find(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr)) +#define sk_USERNOTICE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr)) +#define sk_USERNOTICE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr), pnum) +#define sk_USERNOTICE_sort(sk) OPENSSL_sk_sort(ossl_check_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_dup(sk) ((STACK_OF(USERNOTICE) *)OPENSSL_sk_dup(ossl_check_const_USERNOTICE_sk_type(sk))) +#define sk_USERNOTICE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(USERNOTICE) *)OPENSSL_sk_deep_copy(ossl_check_const_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_copyfunc_type(copyfunc), ossl_check_USERNOTICE_freefunc_type(freefunc))) +#define sk_USERNOTICE_set_cmp_func(sk, cmp) ((sk_USERNOTICE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_compfunc_type(cmp))) + + +typedef struct OSSL_ROLE_SPEC_CERT_ID_st { + GENERAL_NAME *roleName; + GENERAL_NAME *roleCertIssuer; + ASN1_INTEGER *roleCertSerialNumber; + GENERAL_NAMES *roleCertLocator; +} OSSL_ROLE_SPEC_CERT_ID; + +DECLARE_ASN1_FUNCTIONS(OSSL_ROLE_SPEC_CERT_ID) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ROLE_SPEC_CERT_ID, OSSL_ROLE_SPEC_CERT_ID, OSSL_ROLE_SPEC_CERT_ID) +#define sk_OSSL_ROLE_SPEC_CERT_ID_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_value(sk, idx) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_value(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), (idx))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_new(cmp) ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_new(ossl_check_OSSL_ROLE_SPEC_CERT_ID_compfunc_type(cmp))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_new_null() ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ROLE_SPEC_CERT_ID_new_reserve(cmp, n) ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ROLE_SPEC_CERT_ID_compfunc_type(cmp), (n))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), (n)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_delete(sk, i) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_delete(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), (i))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_delete_ptr(sk, ptr) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_pop(sk) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_pop(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_shift(sk) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_shift(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk),ossl_check_OSSL_ROLE_SPEC_CERT_ID_freefunc_type(freefunc)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr), (idx)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_set(sk, idx, ptr) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_set(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), (idx), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr), pnum) +#define sk_OSSL_ROLE_SPEC_CERT_ID_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_dup(sk) ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_copyfunc_type(copyfunc), ossl_check_OSSL_ROLE_SPEC_CERT_ID_freefunc_type(freefunc))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_set_cmp_func(sk, cmp) ((sk_OSSL_ROLE_SPEC_CERT_ID_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_compfunc_type(cmp))) + + +typedef STACK_OF(OSSL_ROLE_SPEC_CERT_ID) OSSL_ROLE_SPEC_CERT_ID_SYNTAX; + +DECLARE_ASN1_FUNCTIONS(OSSL_ROLE_SPEC_CERT_ID_SYNTAX) +typedef struct OSSL_HASH_st { + X509_ALGOR *algorithmIdentifier; + ASN1_BIT_STRING *hashValue; +} OSSL_HASH; + +typedef struct OSSL_INFO_SYNTAX_POINTER_st { + GENERAL_NAMES *name; + OSSL_HASH *hash; +} OSSL_INFO_SYNTAX_POINTER; + +# define OSSL_INFO_SYNTAX_TYPE_CONTENT 0 +# define OSSL_INFO_SYNTAX_TYPE_POINTER 1 + +typedef struct OSSL_INFO_SYNTAX_st { + int type; + union { + ASN1_STRING *content; + OSSL_INFO_SYNTAX_POINTER *pointer; + } choice; +} OSSL_INFO_SYNTAX; + +typedef struct OSSL_PRIVILEGE_POLICY_ID_st { + ASN1_OBJECT *privilegePolicy; + OSSL_INFO_SYNTAX *privPolSyntax; +} OSSL_PRIVILEGE_POLICY_ID; + +typedef struct OSSL_ATTRIBUTE_DESCRIPTOR_st { + ASN1_OBJECT *identifier; + ASN1_STRING *attributeSyntax; + ASN1_UTF8STRING *name; + ASN1_UTF8STRING *description; + OSSL_PRIVILEGE_POLICY_ID *dominationRule; +} OSSL_ATTRIBUTE_DESCRIPTOR; + +DECLARE_ASN1_FUNCTIONS(OSSL_HASH) +DECLARE_ASN1_FUNCTIONS(OSSL_INFO_SYNTAX) +DECLARE_ASN1_FUNCTIONS(OSSL_INFO_SYNTAX_POINTER) +DECLARE_ASN1_FUNCTIONS(OSSL_PRIVILEGE_POLICY_ID) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_DESCRIPTOR) + +typedef struct OSSL_TIME_SPEC_ABSOLUTE_st { + ASN1_GENERALIZEDTIME *startTime; + ASN1_GENERALIZEDTIME *endTime; +} OSSL_TIME_SPEC_ABSOLUTE; + +typedef struct OSSL_DAY_TIME_st { + ASN1_INTEGER *hour; + ASN1_INTEGER *minute; + ASN1_INTEGER *second; +} OSSL_DAY_TIME; + +typedef struct OSSL_DAY_TIME_BAND_st { + OSSL_DAY_TIME *startDayTime; + OSSL_DAY_TIME *endDayTime; +} OSSL_DAY_TIME_BAND; + +# define OSSL_NAMED_DAY_TYPE_INT 0 +# define OSSL_NAMED_DAY_TYPE_BIT 1 +# define OSSL_NAMED_DAY_INT_SUN 1 +# define OSSL_NAMED_DAY_INT_MON 2 +# define OSSL_NAMED_DAY_INT_TUE 3 +# define OSSL_NAMED_DAY_INT_WED 4 +# define OSSL_NAMED_DAY_INT_THU 5 +# define OSSL_NAMED_DAY_INT_FRI 6 +# define OSSL_NAMED_DAY_INT_SAT 7 +# define OSSL_NAMED_DAY_BIT_SUN 0 +# define OSSL_NAMED_DAY_BIT_MON 1 +# define OSSL_NAMED_DAY_BIT_TUE 2 +# define OSSL_NAMED_DAY_BIT_WED 3 +# define OSSL_NAMED_DAY_BIT_THU 4 +# define OSSL_NAMED_DAY_BIT_FRI 5 +# define OSSL_NAMED_DAY_BIT_SAT 6 + +typedef struct OSSL_NAMED_DAY_st { + int type; + union { + ASN1_INTEGER *intNamedDays; + ASN1_BIT_STRING *bitNamedDays; + } choice; +} OSSL_NAMED_DAY; + +# define OSSL_TIME_SPEC_X_DAY_OF_FIRST 0 +# define OSSL_TIME_SPEC_X_DAY_OF_SECOND 1 +# define OSSL_TIME_SPEC_X_DAY_OF_THIRD 2 +# define OSSL_TIME_SPEC_X_DAY_OF_FOURTH 3 +# define OSSL_TIME_SPEC_X_DAY_OF_FIFTH 4 + +typedef struct OSSL_TIME_SPEC_X_DAY_OF_st { + int type; + union { + OSSL_NAMED_DAY *first; + OSSL_NAMED_DAY *second; + OSSL_NAMED_DAY *third; + OSSL_NAMED_DAY *fourth; + OSSL_NAMED_DAY *fifth; + } choice; +} OSSL_TIME_SPEC_X_DAY_OF; + +# define OSSL_TIME_SPEC_DAY_TYPE_INT 0 +# define OSSL_TIME_SPEC_DAY_TYPE_BIT 1 +# define OSSL_TIME_SPEC_DAY_TYPE_DAY_OF 2 +# define OSSL_TIME_SPEC_DAY_BIT_SUN 0 +# define OSSL_TIME_SPEC_DAY_BIT_MON 1 +# define OSSL_TIME_SPEC_DAY_BIT_TUE 2 +# define OSSL_TIME_SPEC_DAY_BIT_WED 3 +# define OSSL_TIME_SPEC_DAY_BIT_THU 4 +# define OSSL_TIME_SPEC_DAY_BIT_FRI 5 +# define OSSL_TIME_SPEC_DAY_BIT_SAT 6 +# define OSSL_TIME_SPEC_DAY_INT_SUN 1 +# define OSSL_TIME_SPEC_DAY_INT_MON 2 +# define OSSL_TIME_SPEC_DAY_INT_TUE 3 +# define OSSL_TIME_SPEC_DAY_INT_WED 4 +# define OSSL_TIME_SPEC_DAY_INT_THU 5 +# define OSSL_TIME_SPEC_DAY_INT_FRI 6 +# define OSSL_TIME_SPEC_DAY_INT_SAT 7 + +typedef struct OSSL_TIME_SPEC_DAY_st { + int type; + union { + STACK_OF(ASN1_INTEGER) *intDay; + ASN1_BIT_STRING *bitDay; + OSSL_TIME_SPEC_X_DAY_OF *dayOf; + } choice; +} OSSL_TIME_SPEC_DAY; + +# define OSSL_TIME_SPEC_WEEKS_TYPE_ALL 0 +# define OSSL_TIME_SPEC_WEEKS_TYPE_INT 1 +# define OSSL_TIME_SPEC_WEEKS_TYPE_BIT 2 +# define OSSL_TIME_SPEC_BIT_WEEKS_1 0 +# define OSSL_TIME_SPEC_BIT_WEEKS_2 1 +# define OSSL_TIME_SPEC_BIT_WEEKS_3 2 +# define OSSL_TIME_SPEC_BIT_WEEKS_4 3 +# define OSSL_TIME_SPEC_BIT_WEEKS_5 4 + +typedef struct OSSL_TIME_SPEC_WEEKS_st { + int type; + union { + ASN1_NULL *allWeeks; + STACK_OF(ASN1_INTEGER) *intWeek; + ASN1_BIT_STRING *bitWeek; + } choice; +} OSSL_TIME_SPEC_WEEKS; + +# define OSSL_TIME_SPEC_MONTH_TYPE_ALL 0 +# define OSSL_TIME_SPEC_MONTH_TYPE_INT 1 +# define OSSL_TIME_SPEC_MONTH_TYPE_BIT 2 +# define OSSL_TIME_SPEC_INT_MONTH_JAN 1 +# define OSSL_TIME_SPEC_INT_MONTH_FEB 2 +# define OSSL_TIME_SPEC_INT_MONTH_MAR 3 +# define OSSL_TIME_SPEC_INT_MONTH_APR 4 +# define OSSL_TIME_SPEC_INT_MONTH_MAY 5 +# define OSSL_TIME_SPEC_INT_MONTH_JUN 6 +# define OSSL_TIME_SPEC_INT_MONTH_JUL 7 +# define OSSL_TIME_SPEC_INT_MONTH_AUG 8 +# define OSSL_TIME_SPEC_INT_MONTH_SEP 9 +# define OSSL_TIME_SPEC_INT_MONTH_OCT 10 +# define OSSL_TIME_SPEC_INT_MONTH_NOV 11 +# define OSSL_TIME_SPEC_INT_MONTH_DEC 12 +# define OSSL_TIME_SPEC_BIT_MONTH_JAN 0 +# define OSSL_TIME_SPEC_BIT_MONTH_FEB 1 +# define OSSL_TIME_SPEC_BIT_MONTH_MAR 2 +# define OSSL_TIME_SPEC_BIT_MONTH_APR 3 +# define OSSL_TIME_SPEC_BIT_MONTH_MAY 4 +# define OSSL_TIME_SPEC_BIT_MONTH_JUN 5 +# define OSSL_TIME_SPEC_BIT_MONTH_JUL 6 +# define OSSL_TIME_SPEC_BIT_MONTH_AUG 7 +# define OSSL_TIME_SPEC_BIT_MONTH_SEP 8 +# define OSSL_TIME_SPEC_BIT_MONTH_OCT 9 +# define OSSL_TIME_SPEC_BIT_MONTH_NOV 10 +# define OSSL_TIME_SPEC_BIT_MONTH_DEC 11 + +typedef struct OSSL_TIME_SPEC_MONTH_st { + int type; + union { + ASN1_NULL *allMonths; + STACK_OF(ASN1_INTEGER) *intMonth; + ASN1_BIT_STRING *bitMonth; + } choice; +} OSSL_TIME_SPEC_MONTH; + +typedef struct OSSL_TIME_PERIOD_st { + STACK_OF(OSSL_DAY_TIME_BAND) *timesOfDay; + OSSL_TIME_SPEC_DAY *days; + OSSL_TIME_SPEC_WEEKS *weeks; + OSSL_TIME_SPEC_MONTH *months; + STACK_OF(ASN1_INTEGER) *years; +} OSSL_TIME_PERIOD; + +# define OSSL_TIME_SPEC_TIME_TYPE_ABSOLUTE 0 +# define OSSL_TIME_SPEC_TIME_TYPE_PERIODIC 1 + +typedef struct OSSL_TIME_SPEC_TIME_st { + int type; + union { + OSSL_TIME_SPEC_ABSOLUTE *absolute; + STACK_OF(OSSL_TIME_PERIOD) *periodic; + } choice; +} OSSL_TIME_SPEC_TIME; + +typedef struct OSSL_TIME_SPEC_st { + OSSL_TIME_SPEC_TIME *time; + ASN1_BOOLEAN notThisTime; + ASN1_INTEGER *timeZone; +} OSSL_TIME_SPEC; + +DECLARE_ASN1_FUNCTIONS(OSSL_DAY_TIME) +DECLARE_ASN1_FUNCTIONS(OSSL_DAY_TIME_BAND) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_DAY) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_WEEKS) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_MONTH) +DECLARE_ASN1_FUNCTIONS(OSSL_NAMED_DAY) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_X_DAY_OF) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_ABSOLUTE) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_TIME) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_PERIOD) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_TIME_PERIOD, OSSL_TIME_PERIOD, OSSL_TIME_PERIOD) +#define sk_OSSL_TIME_PERIOD_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_value(sk, idx) ((OSSL_TIME_PERIOD *)OPENSSL_sk_value(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk), (idx))) +#define sk_OSSL_TIME_PERIOD_new(cmp) ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_new(ossl_check_OSSL_TIME_PERIOD_compfunc_type(cmp))) +#define sk_OSSL_TIME_PERIOD_new_null() ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_new_null()) +#define sk_OSSL_TIME_PERIOD_new_reserve(cmp, n) ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_TIME_PERIOD_compfunc_type(cmp), (n))) +#define sk_OSSL_TIME_PERIOD_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), (n)) +#define sk_OSSL_TIME_PERIOD_free(sk) OPENSSL_sk_free(ossl_check_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_delete(sk, i) ((OSSL_TIME_PERIOD *)OPENSSL_sk_delete(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), (i))) +#define sk_OSSL_TIME_PERIOD_delete_ptr(sk, ptr) ((OSSL_TIME_PERIOD *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr))) +#define sk_OSSL_TIME_PERIOD_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr)) +#define sk_OSSL_TIME_PERIOD_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr)) +#define sk_OSSL_TIME_PERIOD_pop(sk) ((OSSL_TIME_PERIOD *)OPENSSL_sk_pop(ossl_check_OSSL_TIME_PERIOD_sk_type(sk))) +#define sk_OSSL_TIME_PERIOD_shift(sk) ((OSSL_TIME_PERIOD *)OPENSSL_sk_shift(ossl_check_OSSL_TIME_PERIOD_sk_type(sk))) +#define sk_OSSL_TIME_PERIOD_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_TIME_PERIOD_sk_type(sk),ossl_check_OSSL_TIME_PERIOD_freefunc_type(freefunc)) +#define sk_OSSL_TIME_PERIOD_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr), (idx)) +#define sk_OSSL_TIME_PERIOD_set(sk, idx, ptr) ((OSSL_TIME_PERIOD *)OPENSSL_sk_set(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), (idx), ossl_check_OSSL_TIME_PERIOD_type(ptr))) +#define sk_OSSL_TIME_PERIOD_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr)) +#define sk_OSSL_TIME_PERIOD_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr)) +#define sk_OSSL_TIME_PERIOD_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr), pnum) +#define sk_OSSL_TIME_PERIOD_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_dup(sk) ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_dup(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk))) +#define sk_OSSL_TIME_PERIOD_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_copyfunc_type(copyfunc), ossl_check_OSSL_TIME_PERIOD_freefunc_type(freefunc))) +#define sk_OSSL_TIME_PERIOD_set_cmp_func(sk, cmp) ((sk_OSSL_TIME_PERIOD_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_compfunc_type(cmp))) + + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_DAY_TIME_BAND, OSSL_DAY_TIME_BAND, OSSL_DAY_TIME_BAND) +#define sk_OSSL_DAY_TIME_BAND_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_value(sk, idx) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_value(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk), (idx))) +#define sk_OSSL_DAY_TIME_BAND_new(cmp) ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_new(ossl_check_OSSL_DAY_TIME_BAND_compfunc_type(cmp))) +#define sk_OSSL_DAY_TIME_BAND_new_null() ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_new_null()) +#define sk_OSSL_DAY_TIME_BAND_new_reserve(cmp, n) ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_DAY_TIME_BAND_compfunc_type(cmp), (n))) +#define sk_OSSL_DAY_TIME_BAND_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), (n)) +#define sk_OSSL_DAY_TIME_BAND_free(sk) OPENSSL_sk_free(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_delete(sk, i) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_delete(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), (i))) +#define sk_OSSL_DAY_TIME_BAND_delete_ptr(sk, ptr) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr))) +#define sk_OSSL_DAY_TIME_BAND_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr)) +#define sk_OSSL_DAY_TIME_BAND_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr)) +#define sk_OSSL_DAY_TIME_BAND_pop(sk) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_pop(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk))) +#define sk_OSSL_DAY_TIME_BAND_shift(sk) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_shift(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk))) +#define sk_OSSL_DAY_TIME_BAND_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk),ossl_check_OSSL_DAY_TIME_BAND_freefunc_type(freefunc)) +#define sk_OSSL_DAY_TIME_BAND_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr), (idx)) +#define sk_OSSL_DAY_TIME_BAND_set(sk, idx, ptr) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_set(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), (idx), ossl_check_OSSL_DAY_TIME_BAND_type(ptr))) +#define sk_OSSL_DAY_TIME_BAND_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr)) +#define sk_OSSL_DAY_TIME_BAND_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr)) +#define sk_OSSL_DAY_TIME_BAND_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr), pnum) +#define sk_OSSL_DAY_TIME_BAND_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_dup(sk) ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_dup(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk))) +#define sk_OSSL_DAY_TIME_BAND_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_copyfunc_type(copyfunc), ossl_check_OSSL_DAY_TIME_BAND_freefunc_type(freefunc))) +#define sk_OSSL_DAY_TIME_BAND_set_cmp_func(sk, cmp) ((sk_OSSL_DAY_TIME_BAND_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_compfunc_type(cmp))) + + +/* Attribute Type and Value */ +typedef struct atav_st { + ASN1_OBJECT *type; + ASN1_TYPE *value; +} OSSL_ATAV; + +typedef struct ATTRIBUTE_TYPE_MAPPING_st { + ASN1_OBJECT *local; + ASN1_OBJECT *remote; +} OSSL_ATTRIBUTE_TYPE_MAPPING; + +typedef struct ATTRIBUTE_VALUE_MAPPING_st { + OSSL_ATAV *local; + OSSL_ATAV *remote; +} OSSL_ATTRIBUTE_VALUE_MAPPING; + +# define OSSL_ATTR_MAP_TYPE 0 +# define OSSL_ATTR_MAP_VALUE 1 + +typedef struct ATTRIBUTE_MAPPING_st { + int type; + union { + OSSL_ATTRIBUTE_TYPE_MAPPING *typeMappings; + OSSL_ATTRIBUTE_VALUE_MAPPING *typeValueMappings; + } choice; +} OSSL_ATTRIBUTE_MAPPING; + +typedef STACK_OF(OSSL_ATTRIBUTE_MAPPING) OSSL_ATTRIBUTE_MAPPINGS; +DECLARE_ASN1_FUNCTIONS(OSSL_ATAV) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_TYPE_MAPPING) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_VALUE_MAPPING) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_MAPPING) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_MAPPINGS) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ATTRIBUTE_MAPPING, OSSL_ATTRIBUTE_MAPPING, OSSL_ATTRIBUTE_MAPPING) +#define sk_OSSL_ATTRIBUTE_MAPPING_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_value(sk, idx) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_value(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), (idx))) +#define sk_OSSL_ATTRIBUTE_MAPPING_new(cmp) ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_new(ossl_check_OSSL_ATTRIBUTE_MAPPING_compfunc_type(cmp))) +#define sk_OSSL_ATTRIBUTE_MAPPING_new_null() ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ATTRIBUTE_MAPPING_new_reserve(cmp, n) ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ATTRIBUTE_MAPPING_compfunc_type(cmp), (n))) +#define sk_OSSL_ATTRIBUTE_MAPPING_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), (n)) +#define sk_OSSL_ATTRIBUTE_MAPPING_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_delete(sk, i) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_delete(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), (i))) +#define sk_OSSL_ATTRIBUTE_MAPPING_delete_ptr(sk, ptr) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr))) +#define sk_OSSL_ATTRIBUTE_MAPPING_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr)) +#define sk_OSSL_ATTRIBUTE_MAPPING_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr)) +#define sk_OSSL_ATTRIBUTE_MAPPING_pop(sk) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_pop(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk))) +#define sk_OSSL_ATTRIBUTE_MAPPING_shift(sk) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_shift(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk))) +#define sk_OSSL_ATTRIBUTE_MAPPING_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk),ossl_check_OSSL_ATTRIBUTE_MAPPING_freefunc_type(freefunc)) +#define sk_OSSL_ATTRIBUTE_MAPPING_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr), (idx)) +#define sk_OSSL_ATTRIBUTE_MAPPING_set(sk, idx, ptr) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_set(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), (idx), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr))) +#define sk_OSSL_ATTRIBUTE_MAPPING_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr)) +#define sk_OSSL_ATTRIBUTE_MAPPING_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr)) +#define sk_OSSL_ATTRIBUTE_MAPPING_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr), pnum) +#define sk_OSSL_ATTRIBUTE_MAPPING_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_dup(sk) ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk))) +#define sk_OSSL_ATTRIBUTE_MAPPING_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_copyfunc_type(copyfunc), ossl_check_OSSL_ATTRIBUTE_MAPPING_freefunc_type(freefunc))) +#define sk_OSSL_ATTRIBUTE_MAPPING_set_cmp_func(sk, cmp) ((sk_OSSL_ATTRIBUTE_MAPPING_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_compfunc_type(cmp))) + + +# define OSSL_AAA_ATTRIBUTE_TYPE 0 +# define OSSL_AAA_ATTRIBUTE_VALUES 1 + +typedef struct ALLOWED_ATTRIBUTES_CHOICE_st { + int type; + union { + ASN1_OBJECT *attributeType; + X509_ATTRIBUTE *attributeTypeandValues; + } choice; +} OSSL_ALLOWED_ATTRIBUTES_CHOICE; + +typedef struct ALLOWED_ATTRIBUTES_ITEM_st { + STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *attributes; + GENERAL_NAME *holderDomain; +} OSSL_ALLOWED_ATTRIBUTES_ITEM; + +typedef STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) OSSL_ALLOWED_ATTRIBUTES_SYNTAX; + +DECLARE_ASN1_FUNCTIONS(OSSL_ALLOWED_ATTRIBUTES_CHOICE) +DECLARE_ASN1_FUNCTIONS(OSSL_ALLOWED_ATTRIBUTES_ITEM) +DECLARE_ASN1_FUNCTIONS(OSSL_ALLOWED_ATTRIBUTES_SYNTAX) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ALLOWED_ATTRIBUTES_CHOICE, OSSL_ALLOWED_ATTRIBUTES_CHOICE, OSSL_ALLOWED_ATTRIBUTES_CHOICE) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_value(sk, idx) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_value(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), (idx))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_new(cmp) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_new(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_compfunc_type(cmp))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_new_null() ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_new_reserve(cmp, n) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_compfunc_type(cmp), (n))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), (n)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_delete(sk, i) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_delete(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), (i))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_delete_ptr(sk, ptr) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_pop(sk) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_pop(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_shift(sk) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_shift(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk),ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_freefunc_type(freefunc)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr), (idx)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_set(sk, idx, ptr) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_set(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), (idx), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr), pnum) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_dup(sk) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_copyfunc_type(copyfunc), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_freefunc_type(freefunc))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_set_cmp_func(sk, cmp) ((sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_compfunc_type(cmp))) + + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ALLOWED_ATTRIBUTES_ITEM, OSSL_ALLOWED_ATTRIBUTES_ITEM, OSSL_ALLOWED_ATTRIBUTES_ITEM) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_value(sk, idx) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_value(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), (idx))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_new(cmp) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_new(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_compfunc_type(cmp))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_new_null() ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_new_reserve(cmp, n) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_compfunc_type(cmp), (n))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), (n)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_delete(sk, i) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_delete(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), (i))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_delete_ptr(sk, ptr) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_pop(sk) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_pop(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_shift(sk) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_shift(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk),ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_freefunc_type(freefunc)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr), (idx)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_set(sk, idx, ptr) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_set(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), (idx), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr), pnum) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_dup(sk) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_copyfunc_type(copyfunc), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_freefunc_type(freefunc))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_set_cmp_func(sk, cmp) ((sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_compfunc_type(cmp))) + + +typedef struct AA_DIST_POINT_st { + DIST_POINT_NAME *distpoint; + ASN1_BIT_STRING *reasons; + int dp_reasons; + ASN1_BOOLEAN indirectCRL; + ASN1_BOOLEAN containsUserAttributeCerts; + ASN1_BOOLEAN containsAACerts; + ASN1_BOOLEAN containsSOAPublicKeyCerts; +} OSSL_AA_DIST_POINT; + +DECLARE_ASN1_FUNCTIONS(OSSL_AA_DIST_POINT) + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/no-asm/include/progs.h b/deps/openssl/config/archs/darwin64-arm64-cc/no-asm/include/progs.h index be55f61503d405..1b62ec37dec130 100644 --- a/deps/openssl/config/archs/darwin64-arm64-cc/no-asm/include/progs.h +++ b/deps/openssl/config/archs/darwin64-arm64-cc/no-asm/include/progs.h @@ -56,6 +56,7 @@ extern int s_client_main(int argc, char *argv[]); extern int s_server_main(int argc, char *argv[]); extern int s_time_main(int argc, char *argv[]); extern int sess_id_main(int argc, char *argv[]); +extern int skeyutl_main(int argc, char *argv[]); extern int smime_main(int argc, char *argv[]); extern int speed_main(int argc, char *argv[]); extern int spkac_main(int argc, char *argv[]); @@ -110,6 +111,7 @@ extern const OPTIONS s_client_options[]; extern const OPTIONS s_server_options[]; extern const OPTIONS s_time_options[]; extern const OPTIONS sess_id_options[]; +extern const OPTIONS skeyutl_options[]; extern const OPTIONS smime_options[]; extern const OPTIONS speed_options[]; extern const OPTIONS spkac_options[]; diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/no-asm/openssl-cl.gypi b/deps/openssl/config/archs/darwin64-arm64-cc/no-asm/openssl-cl.gypi index c4a8f4b01e4ea2..83052b88f37f51 100644 --- a/deps/openssl/config/archs/darwin64-arm64-cc/no-asm/openssl-cl.gypi +++ b/deps/openssl/config/archs/darwin64-arm64-cc/no-asm/openssl-cl.gypi @@ -61,6 +61,7 @@ 'openssl/apps/s_server.c', 'openssl/apps/s_time.c', 'openssl/apps/sess_id.c', + 'openssl/apps/skeyutl.c', 'openssl/apps/smime.c', 'openssl/apps/speed.c', 'openssl/apps/spkac.c', @@ -76,12 +77,14 @@ 'openssl/apps/lib/app_rand.c', 'openssl/apps/lib/app_x509.c', 'openssl/apps/lib/apps.c', + 'openssl/apps/lib/apps_opt_printf.c', 'openssl/apps/lib/apps_ui.c', 'openssl/apps/lib/columns.c', 'openssl/apps/lib/engine.c', 'openssl/apps/lib/engine_loader.c', 'openssl/apps/lib/fmt.c', 'openssl/apps/lib/http_server.c', + 'openssl/apps/lib/log.c', 'openssl/apps/lib/names.c', 'openssl/apps/lib/opt.c', 'openssl/apps/lib/s_cb.c', diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/no-asm/openssl-fips.gypi b/deps/openssl/config/archs/darwin64-arm64-cc/no-asm/openssl-fips.gypi index 60721e3efbc891..13f09884e61ee4 100644 --- a/deps/openssl/config/archs/darwin64-arm64-cc/no-asm/openssl-fips.gypi +++ b/deps/openssl/config/archs/darwin64-arm64-cc/no-asm/openssl-fips.gypi @@ -100,14 +100,15 @@ 'openssl/crypto/evp/kem.c', 'openssl/crypto/evp/keymgmt_lib.c', 'openssl/crypto/evp/keymgmt_meth.c', - 'openssl/crypto/evp/m_sigver.c', 'openssl/crypto/evp/mac_lib.c', 'openssl/crypto/evp/mac_meth.c', 'openssl/crypto/evp/p_lib.c', 'openssl/crypto/evp/pmeth_check.c', 'openssl/crypto/evp/pmeth_gn.c', 'openssl/crypto/evp/pmeth_lib.c', + 'openssl/crypto/evp/s_lib.c', 'openssl/crypto/evp/signature.c', + 'openssl/crypto/evp/skeymgmt_meth.c', 'openssl/crypto/ffc/ffc_backend.c', 'openssl/crypto/ffc/ffc_dh.c', 'openssl/crypto/ffc/ffc_key_generate.c', @@ -115,6 +116,8 @@ 'openssl/crypto/ffc/ffc_params.c', 'openssl/crypto/ffc/ffc_params_generate.c', 'openssl/crypto/ffc/ffc_params_validate.c', + 'openssl/crypto/hashtable/hashfunc.c', + 'openssl/crypto/hashtable/hashtable.c', 'openssl/crypto/hmac/hmac.c', 'openssl/crypto/lhash/lhash.c', 'openssl/crypto/asn1_dsa.c', @@ -145,6 +148,16 @@ 'openssl/crypto/threads_none.c', 'openssl/crypto/threads_pthread.c', 'openssl/crypto/threads_win.c', + 'openssl/crypto/time.c', + 'openssl/crypto/ml_dsa/ml_dsa_encoders.c', + 'openssl/crypto/ml_dsa/ml_dsa_key.c', + 'openssl/crypto/ml_dsa/ml_dsa_key_compress.c', + 'openssl/crypto/ml_dsa/ml_dsa_matrix.c', + 'openssl/crypto/ml_dsa/ml_dsa_ntt.c', + 'openssl/crypto/ml_dsa/ml_dsa_params.c', + 'openssl/crypto/ml_dsa/ml_dsa_sample.c', + 'openssl/crypto/ml_dsa/ml_dsa_sign.c', + 'openssl/crypto/ml_kem/ml_kem.c', 'openssl/crypto/modes/cbc128.c', 'openssl/crypto/modes/ccm128.c', 'openssl/crypto/modes/cfb128.c', @@ -153,6 +166,7 @@ 'openssl/crypto/modes/ofb128.c', 'openssl/crypto/modes/wrap128.c', 'openssl/crypto/modes/xts128.c', + 'openssl/crypto/modes/xts128gb.c', 'openssl/crypto/property/defn_cache.c', 'openssl/crypto/property/property.c', 'openssl/crypto/property/property_parse.c', @@ -181,7 +195,23 @@ 'openssl/crypto/sha/sha256.c', 'openssl/crypto/sha/sha3.c', 'openssl/crypto/sha/sha512.c', + 'openssl/crypto/slh_dsa/slh_adrs.c', + 'openssl/crypto/slh_dsa/slh_dsa.c', + 'openssl/crypto/slh_dsa/slh_dsa_hash_ctx.c', + 'openssl/crypto/slh_dsa/slh_dsa_key.c', + 'openssl/crypto/slh_dsa/slh_fors.c', + 'openssl/crypto/slh_dsa/slh_hash.c', + 'openssl/crypto/slh_dsa/slh_hypertree.c', + 'openssl/crypto/slh_dsa/slh_params.c', + 'openssl/crypto/slh_dsa/slh_wots.c', + 'openssl/crypto/slh_dsa/slh_xmss.c', 'openssl/crypto/stack/stack.c', + 'openssl/crypto/thread/arch/thread_none.c', + 'openssl/crypto/thread/arch/thread_posix.c', + 'openssl/crypto/thread/arch/thread_win.c', + 'openssl/crypto/thread/api.c', + 'openssl/crypto/thread/arch.c', + 'openssl/crypto/thread/internal.c', 'openssl/providers/common/der/der_rsa_sig.c', 'openssl/providers/common/bio_prov.c', 'openssl/providers/common/capabilities.c', @@ -190,6 +220,7 @@ 'openssl/providers/common/provider_util.c', 'openssl/providers/common/securitycheck.c', 'openssl/providers/common/securitycheck_fips.c', + 'openssl/providers/fips/fipsindicator.c', 'openssl/providers/fips/fipsprov.c', 'openssl/providers/fips/self_test.c', 'openssl/providers/fips/self_test_kats.c', @@ -227,6 +258,8 @@ 'openssl/providers/implementations/kdfs/sskdf.c', 'openssl/providers/implementations/kdfs/tls1_prf.c', 'openssl/providers/implementations/kdfs/x942kdf.c', + 'openssl/providers/implementations/kem/ml_kem_kem.c', + 'openssl/providers/implementations/kem/mlx_kem.c', 'openssl/providers/implementations/kem/rsa_kem.c', 'openssl/providers/implementations/keymgmt/dh_kmgmt.c', 'openssl/providers/implementations/keymgmt/dsa_kmgmt.c', @@ -234,29 +267,39 @@ 'openssl/providers/implementations/keymgmt/ecx_kmgmt.c', 'openssl/providers/implementations/keymgmt/kdf_legacy_kmgmt.c', 'openssl/providers/implementations/keymgmt/mac_legacy_kmgmt.c', + 'openssl/providers/implementations/keymgmt/ml_dsa_kmgmt.c', + 'openssl/providers/implementations/keymgmt/ml_kem_kmgmt.c', + 'openssl/providers/implementations/keymgmt/mlx_kmgmt.c', 'openssl/providers/implementations/keymgmt/rsa_kmgmt.c', + 'openssl/providers/implementations/keymgmt/slh_dsa_kmgmt.c', 'openssl/providers/implementations/macs/cmac_prov.c', 'openssl/providers/implementations/macs/gmac_prov.c', 'openssl/providers/implementations/macs/hmac_prov.c', 'openssl/providers/implementations/macs/kmac_prov.c', - 'openssl/providers/implementations/rands/crngt.c', 'openssl/providers/implementations/rands/drbg.c', 'openssl/providers/implementations/rands/drbg_ctr.c', 'openssl/providers/implementations/rands/drbg_hash.c', 'openssl/providers/implementations/rands/drbg_hmac.c', + 'openssl/providers/implementations/rands/fips_crng_test.c', 'openssl/providers/implementations/rands/test_rng.c', 'openssl/providers/implementations/signature/dsa_sig.c', 'openssl/providers/implementations/signature/ecdsa_sig.c', 'openssl/providers/implementations/signature/eddsa_sig.c', 'openssl/providers/implementations/signature/mac_legacy_sig.c', + 'openssl/providers/implementations/signature/ml_dsa_sig.c', 'openssl/providers/implementations/signature/rsa_sig.c', - 'openssl/ssl/s3_cbc.c', + 'openssl/providers/implementations/signature/slh_dsa_sig.c', + 'openssl/providers/implementations/skeymgmt/aes_skmgmt.c', + 'openssl/providers/implementations/skeymgmt/generic.c', + 'openssl/ssl/record/methods/ssl3_cbc.c', 'openssl/providers/common/der/der_dsa_key.c', 'openssl/providers/common/der/der_dsa_sig.c', 'openssl/providers/common/der/der_ec_key.c', 'openssl/providers/common/der/der_ec_sig.c', 'openssl/providers/common/der/der_ecx_key.c', + 'openssl/providers/common/der/der_ml_dsa_key.c', 'openssl/providers/common/der/der_rsa_key.c', + 'openssl/providers/common/der/der_slh_dsa_key.c', 'openssl/providers/common/provider_ctx.c', 'openssl/providers/common/provider_err.c', 'openssl/providers/implementations/ciphers/ciphercommon.c', @@ -267,17 +310,20 @@ 'openssl/providers/implementations/ciphers/ciphercommon_gcm_hw.c', 'openssl/providers/implementations/ciphers/ciphercommon_hw.c', 'openssl/providers/implementations/digests/digestcommon.c', - 'openssl/ssl/record/tls_pad.c', + 'openssl/ssl/record/methods/tls_pad.c', 'openssl/providers/fips/fips_entry.c', ], 'openssl_sources_darwin64-arm64-cc': [ + './config/archs/darwin64-arm64-cc/no-asm/crypto/params_idx.c', './config/archs/darwin64-arm64-cc/no-asm/providers/common/der/der_sm2_gen.c', './config/archs/darwin64-arm64-cc/no-asm/providers/common/der/der_digests_gen.c', './config/archs/darwin64-arm64-cc/no-asm/providers/common/der/der_dsa_gen.c', './config/archs/darwin64-arm64-cc/no-asm/providers/common/der/der_ec_gen.c', './config/archs/darwin64-arm64-cc/no-asm/providers/common/der/der_ecx_gen.c', + './config/archs/darwin64-arm64-cc/no-asm/providers/common/der/der_ml_dsa_gen.c', './config/archs/darwin64-arm64-cc/no-asm/providers/common/der/der_rsa_gen.c', + './config/archs/darwin64-arm64-cc/no-asm/providers/common/der/der_slh_dsa_gen.c', './config/archs/darwin64-arm64-cc/no-asm/providers/common/der/der_wrap_gen.c', ], diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/no-asm/openssl.gypi b/deps/openssl/config/archs/darwin64-arm64-cc/no-asm/openssl.gypi index 67fd4d4b74bcce..c36e968366112b 100644 --- a/deps/openssl/config/archs/darwin64-arm64-cc/no-asm/openssl.gypi +++ b/deps/openssl/config/archs/darwin64-arm64-cc/no-asm/openssl.gypi @@ -7,14 +7,15 @@ 'openssl/ssl/d1_srtp.c', 'openssl/ssl/methods.c', 'openssl/ssl/pqueue.c', + 'openssl/ssl/priority_queue.c', 'openssl/ssl/s3_enc.c', 'openssl/ssl/s3_lib.c', 'openssl/ssl/s3_msg.c', 'openssl/ssl/ssl_asn1.c', 'openssl/ssl/ssl_cert.c', + 'openssl/ssl/ssl_cert_comp.c', 'openssl/ssl/ssl_ciph.c', 'openssl/ssl/ssl_conf.c', - 'openssl/ssl/ssl_err.c', 'openssl/ssl/ssl_err_legacy.c', 'openssl/ssl/ssl_init.c', 'openssl/ssl/ssl_lib.c', @@ -31,12 +32,60 @@ 'openssl/ssl/tls13_enc.c', 'openssl/ssl/tls_depr.c', 'openssl/ssl/tls_srp.c', - 'openssl/ssl/record/dtls1_bitmap.c', + 'openssl/ssl/quic/cc_newreno.c', + 'openssl/ssl/quic/json_enc.c', + 'openssl/ssl/quic/qlog.c', + 'openssl/ssl/quic/qlog_event_helpers.c', + 'openssl/ssl/quic/quic_ackm.c', + 'openssl/ssl/quic/quic_cfq.c', + 'openssl/ssl/quic/quic_channel.c', + 'openssl/ssl/quic/quic_demux.c', + 'openssl/ssl/quic/quic_engine.c', + 'openssl/ssl/quic/quic_fc.c', + 'openssl/ssl/quic/quic_fifd.c', + 'openssl/ssl/quic/quic_impl.c', + 'openssl/ssl/quic/quic_lcidm.c', + 'openssl/ssl/quic/quic_method.c', + 'openssl/ssl/quic/quic_obj.c', + 'openssl/ssl/quic/quic_port.c', + 'openssl/ssl/quic/quic_rcidm.c', + 'openssl/ssl/quic/quic_reactor.c', + 'openssl/ssl/quic/quic_reactor_wait_ctx.c', + 'openssl/ssl/quic/quic_record_rx.c', + 'openssl/ssl/quic/quic_record_shared.c', + 'openssl/ssl/quic/quic_record_tx.c', + 'openssl/ssl/quic/quic_record_util.c', + 'openssl/ssl/quic/quic_rstream.c', + 'openssl/ssl/quic/quic_rx_depack.c', + 'openssl/ssl/quic/quic_sf_list.c', + 'openssl/ssl/quic/quic_srt_gen.c', + 'openssl/ssl/quic/quic_srtm.c', + 'openssl/ssl/quic/quic_sstream.c', + 'openssl/ssl/quic/quic_statm.c', + 'openssl/ssl/quic/quic_stream_map.c', + 'openssl/ssl/quic/quic_thread_assist.c', + 'openssl/ssl/quic/quic_tls.c', + 'openssl/ssl/quic/quic_tls_api.c', + 'openssl/ssl/quic/quic_trace.c', + 'openssl/ssl/quic/quic_tserver.c', + 'openssl/ssl/quic/quic_txp.c', + 'openssl/ssl/quic/quic_txpim.c', + 'openssl/ssl/quic/quic_types.c', + 'openssl/ssl/quic/quic_wire.c', + 'openssl/ssl/quic/quic_wire_pkt.c', + 'openssl/ssl/quic/uint_set.c', 'openssl/ssl/record/rec_layer_d1.c', 'openssl/ssl/record/rec_layer_s3.c', - 'openssl/ssl/record/ssl3_buffer.c', - 'openssl/ssl/record/ssl3_record.c', - 'openssl/ssl/record/ssl3_record_tls13.c', + 'openssl/ssl/record/methods/dtls_meth.c', + 'openssl/ssl/record/methods/ssl3_meth.c', + 'openssl/ssl/record/methods/tls13_meth.c', + 'openssl/ssl/record/methods/tls1_meth.c', + 'openssl/ssl/record/methods/tls_common.c', + 'openssl/ssl/record/methods/tls_multib.c', + 'openssl/ssl/record/methods/tlsany_meth.c', + 'openssl/ssl/rio/poll_builder.c', + 'openssl/ssl/rio/poll_immediate.c', + 'openssl/ssl/rio/rio_notifier.c', 'openssl/ssl/statem/extensions.c', 'openssl/ssl/statem/extensions_clnt.c', 'openssl/ssl/statem/extensions_cust.c', @@ -150,6 +199,7 @@ 'openssl/crypto/bio/bss_conn.c', 'openssl/crypto/bio/bss_core.c', 'openssl/crypto/bio/bss_dgram.c', + 'openssl/crypto/bio/bss_dgram_pair.c', 'openssl/crypto/bio/bss_fd.c', 'openssl/crypto/bio/bss_file.c', 'openssl/crypto/bio/bss_log.c', @@ -210,6 +260,7 @@ 'openssl/crypto/cmp/cmp_client.c', 'openssl/crypto/cmp/cmp_ctx.c', 'openssl/crypto/cmp/cmp_err.c', + 'openssl/crypto/cmp/cmp_genm.c', 'openssl/crypto/cmp/cmp_hdr.c', 'openssl/crypto/cmp/cmp_http.c', 'openssl/crypto/cmp/cmp_msg.c', @@ -385,7 +436,9 @@ 'openssl/crypto/err/err_all.c', 'openssl/crypto/err/err_all_legacy.c', 'openssl/crypto/err/err_blocks.c', + 'openssl/crypto/err/err_mark.c', 'openssl/crypto/err/err_prn.c', + 'openssl/crypto/err/err_save.c', 'openssl/crypto/ess/ess_asn1.c', 'openssl/crypto/ess/ess_err.c', 'openssl/crypto/ess/ess_lib.c', @@ -468,7 +521,9 @@ 'openssl/crypto/evp/pmeth_check.c', 'openssl/crypto/evp/pmeth_gn.c', 'openssl/crypto/evp/pmeth_lib.c', + 'openssl/crypto/evp/s_lib.c', 'openssl/crypto/evp/signature.c', + 'openssl/crypto/evp/skeymgmt_meth.c', 'openssl/crypto/ffc/ffc_backend.c', 'openssl/crypto/ffc/ffc_dh.c', 'openssl/crypto/ffc/ffc_key_generate.c', @@ -476,7 +531,11 @@ 'openssl/crypto/ffc/ffc_params.c', 'openssl/crypto/ffc/ffc_params_generate.c', 'openssl/crypto/ffc/ffc_params_validate.c', + 'openssl/crypto/hashtable/hashfunc.c', + 'openssl/crypto/hashtable/hashtable.c', 'openssl/crypto/hmac/hmac.c', + 'openssl/crypto/hpke/hpke.c', + 'openssl/crypto/hpke/hpke_util.c', 'openssl/crypto/http/http_client.c', 'openssl/crypto/http/http_err.c', 'openssl/crypto/http/http_lib.c', @@ -490,6 +549,7 @@ 'openssl/crypto/lhash/lhash.c', 'openssl/crypto/asn1_dsa.c', 'openssl/crypto/bsearch.c', + 'openssl/crypto/comp_methods.c', 'openssl/crypto/context.c', 'openssl/crypto/core_algorithm.c', 'openssl/crypto/core_fetch.c', @@ -499,10 +559,13 @@ 'openssl/crypto/cryptlib.c', 'openssl/crypto/ctype.c', 'openssl/crypto/cversion.c', + 'openssl/crypto/defaults.c', 'openssl/crypto/der_writer.c', + 'openssl/crypto/deterministic_nonce.c', 'openssl/crypto/ebcdic.c', 'openssl/crypto/ex_data.c', 'openssl/crypto/getenv.c', + 'openssl/crypto/indicator_core.c', 'openssl/crypto/info.c', 'openssl/crypto/init.c', 'openssl/crypto/initthread.c', @@ -527,12 +590,16 @@ 'openssl/crypto/provider_core.c', 'openssl/crypto/provider_predefined.c', 'openssl/crypto/punycode.c', + 'openssl/crypto/quic_vlint.c', 'openssl/crypto/self_test_core.c', + 'openssl/crypto/sleep.c', 'openssl/crypto/sparse_array.c', + 'openssl/crypto/ssl_err.c', 'openssl/crypto/threads_lib.c', 'openssl/crypto/threads_none.c', 'openssl/crypto/threads_pthread.c', 'openssl/crypto/threads_win.c', + 'openssl/crypto/time.c', 'openssl/crypto/trace.c', 'openssl/crypto/uid.c', 'openssl/crypto/md4/md4_dgst.c', @@ -542,6 +609,15 @@ 'openssl/crypto/md5/md5_sha1.c', 'openssl/crypto/mdc2/mdc2_one.c', 'openssl/crypto/mdc2/mdc2dgst.c', + 'openssl/crypto/ml_dsa/ml_dsa_encoders.c', + 'openssl/crypto/ml_dsa/ml_dsa_key.c', + 'openssl/crypto/ml_dsa/ml_dsa_key_compress.c', + 'openssl/crypto/ml_dsa/ml_dsa_matrix.c', + 'openssl/crypto/ml_dsa/ml_dsa_ntt.c', + 'openssl/crypto/ml_dsa/ml_dsa_params.c', + 'openssl/crypto/ml_dsa/ml_dsa_sample.c', + 'openssl/crypto/ml_dsa/ml_dsa_sign.c', + 'openssl/crypto/ml_kem/ml_kem.c', 'openssl/crypto/modes/cbc128.c', 'openssl/crypto/modes/ccm128.c', 'openssl/crypto/modes/cfb128.c', @@ -553,6 +629,7 @@ 'openssl/crypto/modes/siv128.c', 'openssl/crypto/modes/wrap128.c', 'openssl/crypto/modes/xts128.c', + 'openssl/crypto/modes/xts128gb.c', 'openssl/crypto/objects/o_names.c', 'openssl/crypto/objects/obj_dat.c', 'openssl/crypto/objects/obj_err.c', @@ -616,6 +693,7 @@ 'openssl/crypto/rand/rand_lib.c', 'openssl/crypto/rand/rand_meth.c', 'openssl/crypto/rand/rand_pool.c', + 'openssl/crypto/rand/rand_uniform.c', 'openssl/crypto/rand/randfile.c', 'openssl/crypto/rc2/rc2_cbc.c', 'openssl/crypto/rc2/rc2_ecb.c', @@ -664,6 +742,16 @@ 'openssl/crypto/sha/sha3.c', 'openssl/crypto/sha/sha512.c', 'openssl/crypto/siphash/siphash.c', + 'openssl/crypto/slh_dsa/slh_adrs.c', + 'openssl/crypto/slh_dsa/slh_dsa.c', + 'openssl/crypto/slh_dsa/slh_dsa_hash_ctx.c', + 'openssl/crypto/slh_dsa/slh_dsa_key.c', + 'openssl/crypto/slh_dsa/slh_fors.c', + 'openssl/crypto/slh_dsa/slh_hash.c', + 'openssl/crypto/slh_dsa/slh_hypertree.c', + 'openssl/crypto/slh_dsa/slh_params.c', + 'openssl/crypto/slh_dsa/slh_wots.c', + 'openssl/crypto/slh_dsa/slh_xmss.c', 'openssl/crypto/sm2/sm2_crypt.c', 'openssl/crypto/sm2/sm2_err.c', 'openssl/crypto/sm2/sm2_key.c', @@ -681,6 +769,12 @@ 'openssl/crypto/store/store_register.c', 'openssl/crypto/store/store_result.c', 'openssl/crypto/store/store_strings.c', + 'openssl/crypto/thread/arch/thread_none.c', + 'openssl/crypto/thread/arch/thread_posix.c', + 'openssl/crypto/thread/arch/thread_win.c', + 'openssl/crypto/thread/api.c', + 'openssl/crypto/thread/arch.c', + 'openssl/crypto/thread/internal.c', 'openssl/crypto/ts/ts_asn1.c', 'openssl/crypto/ts/ts_conf.c', 'openssl/crypto/ts/ts_err.c', @@ -709,14 +803,22 @@ 'openssl/crypto/x509/pcy_map.c', 'openssl/crypto/x509/pcy_node.c', 'openssl/crypto/x509/pcy_tree.c', + 'openssl/crypto/x509/t_acert.c', 'openssl/crypto/x509/t_crl.c', 'openssl/crypto/x509/t_req.c', 'openssl/crypto/x509/t_x509.c', + 'openssl/crypto/x509/v3_aaa.c', + 'openssl/crypto/x509/v3_ac_tgt.c', 'openssl/crypto/x509/v3_addr.c', 'openssl/crypto/x509/v3_admis.c', 'openssl/crypto/x509/v3_akeya.c', 'openssl/crypto/x509/v3_akid.c', 'openssl/crypto/x509/v3_asid.c', + 'openssl/crypto/x509/v3_attrdesc.c', + 'openssl/crypto/x509/v3_attrmap.c', + 'openssl/crypto/x509/v3_audit_id.c', + 'openssl/crypto/x509/v3_authattid.c', + 'openssl/crypto/x509/v3_battcons.c', 'openssl/crypto/x509/v3_bcons.c', 'openssl/crypto/x509/v3_bitst.c', 'openssl/crypto/x509/v3_conf.c', @@ -725,12 +827,17 @@ 'openssl/crypto/x509/v3_enum.c', 'openssl/crypto/x509/v3_extku.c', 'openssl/crypto/x509/v3_genn.c', + 'openssl/crypto/x509/v3_group_ac.c', 'openssl/crypto/x509/v3_ia5.c', + 'openssl/crypto/x509/v3_ind_iss.c', 'openssl/crypto/x509/v3_info.c', 'openssl/crypto/x509/v3_int.c', + 'openssl/crypto/x509/v3_iobo.c', 'openssl/crypto/x509/v3_ist.c', 'openssl/crypto/x509/v3_lib.c', 'openssl/crypto/x509/v3_ncons.c', + 'openssl/crypto/x509/v3_no_ass.c', + 'openssl/crypto/x509/v3_no_rev_avail.c', 'openssl/crypto/x509/v3_pci.c', 'openssl/crypto/x509/v3_pcia.c', 'openssl/crypto/x509/v3_pcons.c', @@ -738,13 +845,20 @@ 'openssl/crypto/x509/v3_pmaps.c', 'openssl/crypto/x509/v3_prn.c', 'openssl/crypto/x509/v3_purp.c', + 'openssl/crypto/x509/v3_rolespec.c', 'openssl/crypto/x509/v3_san.c', + 'openssl/crypto/x509/v3_sda.c', + 'openssl/crypto/x509/v3_single_use.c', 'openssl/crypto/x509/v3_skid.c', + 'openssl/crypto/x509/v3_soa_id.c', 'openssl/crypto/x509/v3_sxnet.c', + 'openssl/crypto/x509/v3_timespec.c', 'openssl/crypto/x509/v3_tlsf.c', + 'openssl/crypto/x509/v3_usernotice.c', 'openssl/crypto/x509/v3_utf8.c', 'openssl/crypto/x509/v3_utl.c', 'openssl/crypto/x509/v3err.c', + 'openssl/crypto/x509/x509_acert.c', 'openssl/crypto/x509/x509_att.c', 'openssl/crypto/x509/x509_cmp.c', 'openssl/crypto/x509/x509_d2.c', @@ -762,6 +876,7 @@ 'openssl/crypto/x509/x509_v3.c', 'openssl/crypto/x509/x509_vfy.c', 'openssl/crypto/x509/x509_vpm.c', + 'openssl/crypto/x509/x509aset.c', 'openssl/crypto/x509/x509cset.c', 'openssl/crypto/x509/x509name.c', 'openssl/crypto/x509/x509rset.c', @@ -771,6 +886,7 @@ 'openssl/crypto/x509/x_attrib.c', 'openssl/crypto/x509/x_crl.c', 'openssl/crypto/x509/x_exten.c', + 'openssl/crypto/x509/x_ietfatt.c', 'openssl/crypto/x509/x_name.c', 'openssl/crypto/x509/x_pubkey.c', 'openssl/crypto/x509/x_req.c', @@ -802,6 +918,9 @@ 'openssl/providers/implementations/ciphers/cipher_aes_ccm_hw.c', 'openssl/providers/implementations/ciphers/cipher_aes_gcm.c', 'openssl/providers/implementations/ciphers/cipher_aes_gcm_hw.c', + 'openssl/providers/implementations/ciphers/cipher_aes_gcm_siv.c', + 'openssl/providers/implementations/ciphers/cipher_aes_gcm_siv_hw.c', + 'openssl/providers/implementations/ciphers/cipher_aes_gcm_siv_polyval.c', 'openssl/providers/implementations/ciphers/cipher_aes_hw.c', 'openssl/providers/implementations/ciphers/cipher_aes_ocb.c', 'openssl/providers/implementations/ciphers/cipher_aes_ocb_hw.c', @@ -826,7 +945,13 @@ 'openssl/providers/implementations/ciphers/cipher_cts.c', 'openssl/providers/implementations/ciphers/cipher_null.c', 'openssl/providers/implementations/ciphers/cipher_sm4.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_ccm.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_ccm_hw.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_gcm.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_gcm_hw.c', 'openssl/providers/implementations/ciphers/cipher_sm4_hw.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_xts.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_xts_hw.c', 'openssl/providers/implementations/ciphers/cipher_tdes.c', 'openssl/providers/implementations/ciphers/cipher_tdes_common.c', 'openssl/providers/implementations/ciphers/cipher_tdes_default.c', @@ -855,11 +980,16 @@ 'openssl/providers/implementations/encode_decode/encode_key2ms.c', 'openssl/providers/implementations/encode_decode/encode_key2text.c', 'openssl/providers/implementations/encode_decode/endecoder_common.c', + 'openssl/providers/implementations/encode_decode/ml_common_codecs.c', + 'openssl/providers/implementations/encode_decode/ml_dsa_codecs.c', + 'openssl/providers/implementations/encode_decode/ml_kem_codecs.c', 'openssl/providers/implementations/exchange/dh_exch.c', 'openssl/providers/implementations/exchange/ecdh_exch.c', 'openssl/providers/implementations/exchange/ecx_exch.c', 'openssl/providers/implementations/exchange/kdf_exch.c', + 'openssl/providers/implementations/kdfs/argon2.c', 'openssl/providers/implementations/kdfs/hkdf.c', + 'openssl/providers/implementations/kdfs/hmacdrbg_kdf.c', 'openssl/providers/implementations/kdfs/kbkdf.c', 'openssl/providers/implementations/kdfs/krb5kdf.c', 'openssl/providers/implementations/kdfs/pbkdf2.c', @@ -870,6 +1000,11 @@ 'openssl/providers/implementations/kdfs/sskdf.c', 'openssl/providers/implementations/kdfs/tls1_prf.c', 'openssl/providers/implementations/kdfs/x942kdf.c', + 'openssl/providers/implementations/kem/ec_kem.c', + 'openssl/providers/implementations/kem/ecx_kem.c', + 'openssl/providers/implementations/kem/kem_util.c', + 'openssl/providers/implementations/kem/ml_kem_kem.c', + 'openssl/providers/implementations/kem/mlx_kem.c', 'openssl/providers/implementations/kem/rsa_kem.c', 'openssl/providers/implementations/keymgmt/dh_kmgmt.c', 'openssl/providers/implementations/keymgmt/dsa_kmgmt.c', @@ -877,7 +1012,11 @@ 'openssl/providers/implementations/keymgmt/ecx_kmgmt.c', 'openssl/providers/implementations/keymgmt/kdf_legacy_kmgmt.c', 'openssl/providers/implementations/keymgmt/mac_legacy_kmgmt.c', + 'openssl/providers/implementations/keymgmt/ml_dsa_kmgmt.c', + 'openssl/providers/implementations/keymgmt/ml_kem_kmgmt.c', + 'openssl/providers/implementations/keymgmt/mlx_kmgmt.c', 'openssl/providers/implementations/keymgmt/rsa_kmgmt.c', + 'openssl/providers/implementations/keymgmt/slh_dsa_kmgmt.c', 'openssl/providers/implementations/macs/blake2b_mac.c', 'openssl/providers/implementations/macs/blake2s_mac.c', 'openssl/providers/implementations/macs/cmac_prov.c', @@ -886,12 +1025,12 @@ 'openssl/providers/implementations/macs/kmac_prov.c', 'openssl/providers/implementations/macs/poly1305_prov.c', 'openssl/providers/implementations/macs/siphash_prov.c', - 'openssl/providers/implementations/rands/crngt.c', 'openssl/providers/implementations/rands/drbg.c', 'openssl/providers/implementations/rands/drbg_ctr.c', 'openssl/providers/implementations/rands/drbg_hash.c', 'openssl/providers/implementations/rands/drbg_hmac.c', 'openssl/providers/implementations/rands/seed_src.c', + 'openssl/providers/implementations/rands/seed_src_jitter.c', 'openssl/providers/implementations/rands/test_rng.c', 'openssl/providers/implementations/rands/seeding/rand_cpu_x86.c', 'openssl/providers/implementations/rands/seeding/rand_tsc.c', @@ -901,17 +1040,23 @@ 'openssl/providers/implementations/signature/ecdsa_sig.c', 'openssl/providers/implementations/signature/eddsa_sig.c', 'openssl/providers/implementations/signature/mac_legacy_sig.c', + 'openssl/providers/implementations/signature/ml_dsa_sig.c', 'openssl/providers/implementations/signature/rsa_sig.c', + 'openssl/providers/implementations/signature/slh_dsa_sig.c', 'openssl/providers/implementations/signature/sm2_sig.c', + 'openssl/providers/implementations/skeymgmt/aes_skmgmt.c', + 'openssl/providers/implementations/skeymgmt/generic.c', 'openssl/providers/implementations/storemgmt/file_store.c', 'openssl/providers/implementations/storemgmt/file_store_any2obj.c', - 'openssl/ssl/s3_cbc.c', + 'openssl/ssl/record/methods/ssl3_cbc.c', 'openssl/providers/common/der/der_dsa_key.c', 'openssl/providers/common/der/der_dsa_sig.c', 'openssl/providers/common/der/der_ec_key.c', 'openssl/providers/common/der/der_ec_sig.c', 'openssl/providers/common/der/der_ecx_key.c', + 'openssl/providers/common/der/der_ml_dsa_key.c', 'openssl/providers/common/der/der_rsa_key.c', + 'openssl/providers/common/der/der_slh_dsa_key.c', 'openssl/providers/common/provider_ctx.c', 'openssl/providers/common/provider_err.c', 'openssl/providers/implementations/ciphers/ciphercommon.c', @@ -922,7 +1067,7 @@ 'openssl/providers/implementations/ciphers/ciphercommon_gcm_hw.c', 'openssl/providers/implementations/ciphers/ciphercommon_hw.c', 'openssl/providers/implementations/digests/digestcommon.c', - 'openssl/ssl/record/tls_pad.c', + 'openssl/ssl/record/methods/tls_pad.c', 'openssl/providers/implementations/ciphers/cipher_blowfish.c', 'openssl/providers/implementations/ciphers/cipher_blowfish_hw.c', 'openssl/providers/implementations/ciphers/cipher_cast5.c', @@ -947,16 +1092,20 @@ 'openssl/providers/implementations/digests/ripemd_prov.c', 'openssl/providers/implementations/digests/wp_prov.c', 'openssl/providers/implementations/kdfs/pbkdf1.c', + 'openssl/providers/implementations/kdfs/pvkkdf.c', 'openssl/providers/prov_running.c', 'openssl/providers/legacyprov.c', ], 'openssl_sources_darwin64-arm64-cc': [ + './config/archs/darwin64-arm64-cc/no-asm/crypto/params_idx.c', './config/archs/darwin64-arm64-cc/no-asm/providers/common/der/der_sm2_gen.c', './config/archs/darwin64-arm64-cc/no-asm/providers/common/der/der_digests_gen.c', './config/archs/darwin64-arm64-cc/no-asm/providers/common/der/der_dsa_gen.c', './config/archs/darwin64-arm64-cc/no-asm/providers/common/der/der_ec_gen.c', './config/archs/darwin64-arm64-cc/no-asm/providers/common/der/der_ecx_gen.c', + './config/archs/darwin64-arm64-cc/no-asm/providers/common/der/der_ml_dsa_gen.c', './config/archs/darwin64-arm64-cc/no-asm/providers/common/der/der_rsa_gen.c', + './config/archs/darwin64-arm64-cc/no-asm/providers/common/der/der_slh_dsa_gen.c', './config/archs/darwin64-arm64-cc/no-asm/providers/common/der/der_wrap_gen.c', ], 'openssl_defines_darwin64-arm64-cc': [ diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/no-asm/providers/common/der/der_ml_dsa_gen.c b/deps/openssl/config/archs/darwin64-arm64-cc/no-asm/providers/common/der/der_ml_dsa_gen.c new file mode 100644 index 00000000000000..4a8a113a268578 --- /dev/null +++ b/deps/openssl/config/archs/darwin64-arm64-cc/no-asm/providers/common/der/der_ml_dsa_gen.c @@ -0,0 +1,37 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from providers/common/der/der_ml_dsa_gen.c.in + * + * Copyright 2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include "prov/der_ml_dsa.h" + +/* Well known OIDs precompiled */ + +/* + * id-ml-dsa-44 OBJECT IDENTIFIER ::= { sigAlgs 17 } + */ +const unsigned char ossl_der_oid_id_ml_dsa_44[DER_OID_SZ_id_ml_dsa_44] = { + DER_OID_V_id_ml_dsa_44 +}; + +/* + * id-ml-dsa-65 OBJECT IDENTIFIER ::= { sigAlgs 18 } + */ +const unsigned char ossl_der_oid_id_ml_dsa_65[DER_OID_SZ_id_ml_dsa_65] = { + DER_OID_V_id_ml_dsa_65 +}; + +/* + * id-ml-dsa-87 OBJECT IDENTIFIER ::= { sigAlgs 19 } + */ +const unsigned char ossl_der_oid_id_ml_dsa_87[DER_OID_SZ_id_ml_dsa_87] = { + DER_OID_V_id_ml_dsa_87 +}; + diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/no-asm/providers/common/der/der_slh_dsa_gen.c b/deps/openssl/config/archs/darwin64-arm64-cc/no-asm/providers/common/der/der_slh_dsa_gen.c new file mode 100644 index 00000000000000..1419a9515097dd --- /dev/null +++ b/deps/openssl/config/archs/darwin64-arm64-cc/no-asm/providers/common/der/der_slh_dsa_gen.c @@ -0,0 +1,100 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from providers/common/der/der_slh_dsa_gen.c.in + * + * Copyright 2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include "prov/der_slh_dsa.h" + +/* Well known OIDs precompiled */ + +/* + * id-slh-dsa-sha2-128s OBJECT IDENTIFIER ::= { sigAlgs 20 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_128s[DER_OID_SZ_id_slh_dsa_sha2_128s] = { + DER_OID_V_id_slh_dsa_sha2_128s +}; + +/* + * id-slh-dsa-sha2-128f OBJECT IDENTIFIER ::= { sigAlgs 21 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_128f[DER_OID_SZ_id_slh_dsa_sha2_128f] = { + DER_OID_V_id_slh_dsa_sha2_128f +}; + +/* + * id-slh-dsa-sha2-192s OBJECT IDENTIFIER ::= { sigAlgs 22 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_192s[DER_OID_SZ_id_slh_dsa_sha2_192s] = { + DER_OID_V_id_slh_dsa_sha2_192s +}; + +/* + * id-slh-dsa-sha2-192f OBJECT IDENTIFIER ::= { sigAlgs 23 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_192f[DER_OID_SZ_id_slh_dsa_sha2_192f] = { + DER_OID_V_id_slh_dsa_sha2_192f +}; + +/* + * id-slh-dsa-sha2-256s OBJECT IDENTIFIER ::= { sigAlgs 24 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_256s[DER_OID_SZ_id_slh_dsa_sha2_256s] = { + DER_OID_V_id_slh_dsa_sha2_256s +}; + +/* + * id-slh-dsa-sha2-256f OBJECT IDENTIFIER ::= { sigAlgs 25 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_256f[DER_OID_SZ_id_slh_dsa_sha2_256f] = { + DER_OID_V_id_slh_dsa_sha2_256f +}; + +/* + * id-slh-dsa-shake-128s OBJECT IDENTIFIER ::= { sigAlgs 26 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_128s[DER_OID_SZ_id_slh_dsa_shake_128s] = { + DER_OID_V_id_slh_dsa_shake_128s +}; + +/* + * id-slh-dsa-shake-128f OBJECT IDENTIFIER ::= { sigAlgs 27 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_128f[DER_OID_SZ_id_slh_dsa_shake_128f] = { + DER_OID_V_id_slh_dsa_shake_128f +}; + +/* + * id-slh-dsa-shake-192s OBJECT IDENTIFIER ::= { sigAlgs 28 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_192s[DER_OID_SZ_id_slh_dsa_shake_192s] = { + DER_OID_V_id_slh_dsa_shake_192s +}; + +/* + * id-slh-dsa-shake-192f OBJECT IDENTIFIER ::= { sigAlgs 29 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_192f[DER_OID_SZ_id_slh_dsa_shake_192f] = { + DER_OID_V_id_slh_dsa_shake_192f +}; + +/* + * id-slh-dsa-shake-256s OBJECT IDENTIFIER ::= { sigAlgs 30 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_256s[DER_OID_SZ_id_slh_dsa_shake_256s] = { + DER_OID_V_id_slh_dsa_shake_256s +}; + +/* + * id-slh-dsa-shake-256f OBJECT IDENTIFIER ::= { sigAlgs 31 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_256f[DER_OID_SZ_id_slh_dsa_shake_256f] = { + DER_OID_V_id_slh_dsa_shake_256f +}; + diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/no-asm/providers/common/include/prov/der_ml_dsa.h b/deps/openssl/config/archs/darwin64-arm64-cc/no-asm/providers/common/include/prov/der_ml_dsa.h new file mode 100644 index 00000000000000..c55f780ab4527c --- /dev/null +++ b/deps/openssl/config/archs/darwin64-arm64-cc/no-asm/providers/common/include/prov/der_ml_dsa.h @@ -0,0 +1,40 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from providers/common/include/prov/der_ml_dsa.h.in + * + * Copyright 2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include "internal/der.h" +#include "crypto/ml_dsa.h" + +/* Well known OIDs precompiled */ + +/* + * id-ml-dsa-44 OBJECT IDENTIFIER ::= { sigAlgs 17 } + */ +#define DER_OID_V_id_ml_dsa_44 DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x11 +#define DER_OID_SZ_id_ml_dsa_44 11 +extern const unsigned char ossl_der_oid_id_ml_dsa_44[DER_OID_SZ_id_ml_dsa_44]; + +/* + * id-ml-dsa-65 OBJECT IDENTIFIER ::= { sigAlgs 18 } + */ +#define DER_OID_V_id_ml_dsa_65 DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x12 +#define DER_OID_SZ_id_ml_dsa_65 11 +extern const unsigned char ossl_der_oid_id_ml_dsa_65[DER_OID_SZ_id_ml_dsa_65]; + +/* + * id-ml-dsa-87 OBJECT IDENTIFIER ::= { sigAlgs 19 } + */ +#define DER_OID_V_id_ml_dsa_87 DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x13 +#define DER_OID_SZ_id_ml_dsa_87 11 +extern const unsigned char ossl_der_oid_id_ml_dsa_87[DER_OID_SZ_id_ml_dsa_87]; + + +int ossl_DER_w_algorithmIdentifier_ML_DSA(WPACKET *pkt, int tag, ML_DSA_KEY *key); diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/no-asm/providers/common/include/prov/der_slh_dsa.h b/deps/openssl/config/archs/darwin64-arm64-cc/no-asm/providers/common/include/prov/der_slh_dsa.h new file mode 100644 index 00000000000000..760f8e7699be72 --- /dev/null +++ b/deps/openssl/config/archs/darwin64-arm64-cc/no-asm/providers/common/include/prov/der_slh_dsa.h @@ -0,0 +1,103 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from providers/common/include/prov/der_slh_dsa.h.in + * + * Copyright 2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include "internal/der.h" +#include "crypto/slh_dsa.h" + +/* Well known OIDs precompiled */ + +/* + * id-slh-dsa-sha2-128s OBJECT IDENTIFIER ::= { sigAlgs 20 } + */ +#define DER_OID_V_id_slh_dsa_sha2_128s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x14 +#define DER_OID_SZ_id_slh_dsa_sha2_128s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_128s[DER_OID_SZ_id_slh_dsa_sha2_128s]; + +/* + * id-slh-dsa-sha2-128f OBJECT IDENTIFIER ::= { sigAlgs 21 } + */ +#define DER_OID_V_id_slh_dsa_sha2_128f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x15 +#define DER_OID_SZ_id_slh_dsa_sha2_128f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_128f[DER_OID_SZ_id_slh_dsa_sha2_128f]; + +/* + * id-slh-dsa-sha2-192s OBJECT IDENTIFIER ::= { sigAlgs 22 } + */ +#define DER_OID_V_id_slh_dsa_sha2_192s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x16 +#define DER_OID_SZ_id_slh_dsa_sha2_192s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_192s[DER_OID_SZ_id_slh_dsa_sha2_192s]; + +/* + * id-slh-dsa-sha2-192f OBJECT IDENTIFIER ::= { sigAlgs 23 } + */ +#define DER_OID_V_id_slh_dsa_sha2_192f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x17 +#define DER_OID_SZ_id_slh_dsa_sha2_192f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_192f[DER_OID_SZ_id_slh_dsa_sha2_192f]; + +/* + * id-slh-dsa-sha2-256s OBJECT IDENTIFIER ::= { sigAlgs 24 } + */ +#define DER_OID_V_id_slh_dsa_sha2_256s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x18 +#define DER_OID_SZ_id_slh_dsa_sha2_256s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_256s[DER_OID_SZ_id_slh_dsa_sha2_256s]; + +/* + * id-slh-dsa-sha2-256f OBJECT IDENTIFIER ::= { sigAlgs 25 } + */ +#define DER_OID_V_id_slh_dsa_sha2_256f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x19 +#define DER_OID_SZ_id_slh_dsa_sha2_256f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_256f[DER_OID_SZ_id_slh_dsa_sha2_256f]; + +/* + * id-slh-dsa-shake-128s OBJECT IDENTIFIER ::= { sigAlgs 26 } + */ +#define DER_OID_V_id_slh_dsa_shake_128s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1A +#define DER_OID_SZ_id_slh_dsa_shake_128s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_128s[DER_OID_SZ_id_slh_dsa_shake_128s]; + +/* + * id-slh-dsa-shake-128f OBJECT IDENTIFIER ::= { sigAlgs 27 } + */ +#define DER_OID_V_id_slh_dsa_shake_128f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1B +#define DER_OID_SZ_id_slh_dsa_shake_128f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_128f[DER_OID_SZ_id_slh_dsa_shake_128f]; + +/* + * id-slh-dsa-shake-192s OBJECT IDENTIFIER ::= { sigAlgs 28 } + */ +#define DER_OID_V_id_slh_dsa_shake_192s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1C +#define DER_OID_SZ_id_slh_dsa_shake_192s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_192s[DER_OID_SZ_id_slh_dsa_shake_192s]; + +/* + * id-slh-dsa-shake-192f OBJECT IDENTIFIER ::= { sigAlgs 29 } + */ +#define DER_OID_V_id_slh_dsa_shake_192f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1D +#define DER_OID_SZ_id_slh_dsa_shake_192f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_192f[DER_OID_SZ_id_slh_dsa_shake_192f]; + +/* + * id-slh-dsa-shake-256s OBJECT IDENTIFIER ::= { sigAlgs 30 } + */ +#define DER_OID_V_id_slh_dsa_shake_256s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1E +#define DER_OID_SZ_id_slh_dsa_shake_256s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_256s[DER_OID_SZ_id_slh_dsa_shake_256s]; + +/* + * id-slh-dsa-shake-256f OBJECT IDENTIFIER ::= { sigAlgs 31 } + */ +#define DER_OID_V_id_slh_dsa_shake_256f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1F +#define DER_OID_SZ_id_slh_dsa_shake_256f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_256f[DER_OID_SZ_id_slh_dsa_shake_256f]; + + +int ossl_DER_w_algorithmIdentifier_SLH_DSA(WPACKET *pkt, int tag, SLH_DSA_KEY *key); diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/apps/progs.c b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/apps/progs.c index 43cef00799b86e..acc204a3e6e781 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/apps/progs.c +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/apps/progs.c @@ -89,6 +89,7 @@ FUNCTION functions[] = { {FT_general, "s_time", s_time_main, s_time_options, NULL, NULL}, #endif {FT_general, "sess_id", sess_id_main, sess_id_options, NULL, NULL}, + {FT_general, "skeyutl", skeyutl_main, skeyutl_options, NULL, NULL}, {FT_general, "smime", smime_main, smime_options, NULL, NULL}, {FT_general, "speed", speed_main, speed_options, NULL, NULL}, {FT_general, "spkac", spkac_main, spkac_options, NULL, NULL}, @@ -225,9 +226,15 @@ FUNCTION functions[] = { {FT_cipher, "camellia-256-ecb", enc_main, enc_options, NULL}, #endif {FT_cipher, "base64", enc_main, enc_options, NULL}, -#ifdef ZLIB +#ifndef OPENSSL_NO_ZLIB {FT_cipher, "zlib", enc_main, enc_options, NULL}, #endif +#ifndef OPENSSL_NO_BROTLI + {FT_cipher, "brotli", enc_main, enc_options, NULL}, +#endif +#ifndef OPENSSL_NO_ZSTD + {FT_cipher, "zstd", enc_main, enc_options, NULL}, +#endif #ifndef OPENSSL_NO_DES {FT_cipher, "des", enc_main, enc_options, NULL}, #endif diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/configdata.pm b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/configdata.pm index 69f766218f5191..88fb942447fbae 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/configdata.pm +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/configdata.pm @@ -18,6 +18,7 @@ our %config = ( "ARFLAGS" => [ "qc" ], + "ASFLAGS" => [], "CC" => "gcc", "CFLAGS" => [ "-O3 -Wall" @@ -27,14 +28,16 @@ our %config = ( "CPPINCLUDES" => [], "CXXFLAGS" => [], "FIPSKEY" => "f4556650ac31d35461610bac4ed81b1a181b2d8a43ea2854cbae22ca74560813", + "FIPS_VENDOR" => "OpenSSL FIPS Provider", "HASHBANGPERL" => "/usr/bin/env perl", "LDFLAGS" => [], "LDLIBS" => [], + "OBJCOPY" => "objcopy", "PERL" => "/usr/bin/perl", "RANLIB" => "ranlib -c", "RC" => "windres", "RCFLAGS" => [], - "api" => "30000", + "api" => "30500", "b32" => "0", "b64" => "0", "b64l" => "1", @@ -56,11 +59,13 @@ our %config = ( "doc/build.info", "test/build.info", "engines/build.info", + "exporters/build.info", "crypto/objects/build.info", "crypto/buffer/build.info", "crypto/bio/build.info", "crypto/stack/build.info", "crypto/lhash/build.info", + "crypto/hashtable/build.info", "crypto/rand/build.info", "crypto/evp/build.info", "crypto/asn1/build.info", @@ -78,6 +83,7 @@ our %config = ( "crypto/md5/build.info", "crypto/sha/build.info", "crypto/mdc2/build.info", + "crypto/ml_kem/build.info", "crypto/hmac/build.info", "crypto/ripemd/build.info", "crypto/whrlpool/build.info", @@ -119,11 +125,19 @@ our %config = ( "crypto/cmp/build.info", "crypto/encode_decode/build.info", "crypto/ffc/build.info", + "crypto/hpke/build.info", + "crypto/thread/build.info", + "crypto/ml_dsa/build.info", + "crypto/slh_dsa/build.info", + "ssl/record/build.info", + "ssl/rio/build.info", + "ssl/quic/build.info", "apps/lib/build.info", "providers/common/build.info", "providers/implementations/build.info", "providers/fips/build.info", "doc/man1/build.info", + "ssl/record/methods/build.info", "providers/common/der/build.info", "providers/implementations/digests/build.info", "providers/implementations/ciphers/build.info", @@ -137,6 +151,7 @@ our %config = ( "providers/implementations/encode_decode/build.info", "providers/implementations/storemgmt/build.info", "providers/implementations/kem/build.info", + "providers/implementations/skeymgmt/build.info", "providers/implementations/rands/seeding/build.info" ], "build_metadata" => "", @@ -156,7 +171,7 @@ our %config = ( ], "dynamic_engines" => "0", "ex_libs" => [], - "full_version" => "3.0.17", + "full_version" => "3.5.1", "includes" => [], "lflags" => [], "lib_defines" => [ @@ -165,37 +180,52 @@ our %config = ( "libdir" => "", "major" => "3", "makedep_scheme" => "gcc", - "minor" => "0", + "minor" => "5", "openssl_api_defines" => [ - "OPENSSL_CONFIGURED_API=30000" + "OPENSSL_CONFIGURED_API=30500" ], "openssl_feature_defines" => [ "OPENSSL_RAND_SEED_OS", "OPENSSL_THREADS", "OPENSSL_NO_AFALGENG", "OPENSSL_NO_ASAN", + "OPENSSL_NO_BROTLI", + "OPENSSL_NO_BROTLI_DYNAMIC", "OPENSSL_NO_COMP", "OPENSSL_NO_CRYPTO_MDEBUG", "OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE", + "OPENSSL_NO_DEMOS", "OPENSSL_NO_DEVCRYPTOENG", "OPENSSL_NO_EC_NISTP_64_GCC_128", "OPENSSL_NO_EGD", "OPENSSL_NO_EXTERNAL_TESTS", + "OPENSSL_NO_FIPS_JITTER", "OPENSSL_NO_FUZZ_AFL", "OPENSSL_NO_FUZZ_LIBFUZZER", + "OPENSSL_NO_H3DEMO", + "OPENSSL_NO_HQINTEROP", + "OPENSSL_NO_JITTER", "OPENSSL_NO_KTLS", "OPENSSL_NO_LOADERENG", "OPENSSL_NO_MD2", "OPENSSL_NO_MSAN", + "OPENSSL_NO_PIE", "OPENSSL_NO_RC5", "OPENSSL_NO_SCTP", "OPENSSL_NO_SSL3", "OPENSSL_NO_SSL3_METHOD", + "OPENSSL_NO_SSLKEYLOG", + "OPENSSL_NO_TFO", "OPENSSL_NO_TRACE", "OPENSSL_NO_UBSAN", "OPENSSL_NO_UNIT_TEST", "OPENSSL_NO_UPLINK", "OPENSSL_NO_WEAK_SSL_CIPHERS", + "OPENSSL_NO_WINSTORE", + "OPENSSL_NO_ZLIB", + "OPENSSL_NO_ZLIB_DYNAMIC", + "OPENSSL_NO_ZSTD", + "OPENSSL_NO_ZSTD_DYNAMIC", "OPENSSL_NO_DYNAMIC_ENGINE" ], "openssl_other_defines" => [ @@ -205,11 +235,11 @@ our %config = ( "OPENSSL_SYS_MACOSX" ], "openssldir" => "", - "options" => "enable-ssl-trace enable-fips no-afalgeng no-asan no-buildtest-c++ no-comp no-crypto-mdebug no-crypto-mdebug-backtrace no-devcryptoeng no-dynamic-engine no-ec_nistp_64_gcc_128 no-egd no-external-tests no-fuzz-afl no-fuzz-libfuzzer no-ktls no-loadereng no-md2 no-msan no-rc5 no-sctp no-shared no-ssl3 no-ssl3-method no-trace no-ubsan no-unit-test no-uplink no-weak-ssl-ciphers no-zlib no-zlib-dynamic", - "patch" => "17", + "options" => "enable-ssl-trace enable-fips no-afalgeng no-asan no-brotli no-brotli-dynamic no-buildtest-c++ no-comp no-crypto-mdebug no-crypto-mdebug-backtrace no-demos no-devcryptoeng no-dynamic-engine no-ec_nistp_64_gcc_128 no-egd no-external-tests no-fips-jitter no-fuzz-afl no-fuzz-libfuzzer no-h3demo no-hqinterop no-jitter no-ktls no-loadereng no-md2 no-msan no-pie no-rc5 no-sctp no-shared no-ssl3 no-ssl3-method no-sslkeylog no-tfo no-trace no-ubsan no-unit-test no-uplink no-weak-ssl-ciphers no-winstore no-zlib no-zlib-dynamic no-zstd no-zstd-dynamic", + "patch" => "1", "perl_archname" => "x86_64-linux-gnu-thread-multi", "perl_cmd" => "/usr/bin/perl", - "perl_version" => "5.38.2", + "perl_version" => "5.34.0", "perlargv" => [ "no-comp", "no-shared", @@ -239,6 +269,7 @@ our %config = ( "LDLIBS" => undef, "MT" => undef, "MTFLAGS" => undef, + "OBJCOPY" => undef, "OPENSSL_LOCAL_CONFIG_DIR" => undef, "PERL" => undef, "RANLIB" => undef, @@ -262,7 +293,7 @@ our %config = ( "shlib_version" => "3", "sourcedir" => ".", "target" => "darwin64-x86_64-cc", - "version" => "3.0.17" + "version" => "3.5.1" ); our %target = ( "AR" => "ar", @@ -270,6 +301,7 @@ our %target = ( "CC" => "cc", "CFLAGS" => "-O3 -Wall", "HASHBANGPERL" => "/usr/bin/env perl", + "OBJCOPY" => "objcopy", "RANLIB" => "ranlib -c", "RC" => "windres", "_conf_fname_int" => [ @@ -281,6 +313,8 @@ our %target = ( "Configurations/shared-info.pl" ], "asm_arch" => "x86_64", + "bin_cflags" => "", + "bin_lflags" => "", "bn_ops" => "SIXTY_FOUR_BIT_LONG", "build_file" => "Makefile", "build_scheme" => [ @@ -295,6 +329,7 @@ our %target = ( "disable" => [], "dso_scheme" => "dlfcn", "enable" => [], + "ex_libs" => "", "includes" => [], "lflags" => "-Wl,-search_paths_first", "lib_cflags" => "", @@ -321,6 +356,8 @@ our %target = ( our @disablables = ( "acvp-tests", "afalgeng", + "apps", + "argon2", "aria", "asan", "asm", @@ -331,11 +368,14 @@ our @disablables = ( "autoload-config", "bf", "blake2", + "brotli", + "brotli-dynamic", "buildtest-c++", "bulk", "cached-fetch", "camellia", "capieng", + "winstore", "cast", "chacha", "cmac", @@ -344,11 +384,16 @@ our @disablables = ( "comp", "crypto-mdebug", "ct", + "default-thread-pool", + "demos", + "h3demo", + "hqinterop", "deprecated", "des", "devcryptoeng", "dgram", "dh", + "docs", "dsa", "dso", "dtls", @@ -358,6 +403,7 @@ our @disablables = ( "ec_nistp_64_gcc_128", "ecdh", "ecdsa", + "ecx", "egd", "engine", "err", @@ -365,10 +411,15 @@ our @disablables = ( "filenames", "fips", "fips-securitychecks", + "fips-post", + "fips-jitter", "fuzz-afl", "fuzz-libfuzzer", "gost", + "http", "idea", + "integrity-only-ciphers", + "jitter", "ktls", "legacy", "loadereng", @@ -376,6 +427,8 @@ our @disablables = ( "md2", "md4", "mdc2", + "ml-dsa", + "ml-kem", "module", "msan", "multiblock", @@ -384,10 +437,13 @@ our @disablables = ( "ocsp", "padlockeng", "pic", + "pie", "pinshared", "poly1305", "posix-io", "psk", + "quic", + "unstable-qlog", "rc2", "rc4", "rc5", @@ -401,7 +457,9 @@ our @disablables = ( "shared", "siphash", "siv", + "slh-dsa", "sm2", + "sm2-precomp", "sm3", "sm4", "sock", @@ -412,9 +470,13 @@ our @disablables = ( "ssl-trace", "static-engine", "stdio", + "sslkeylog", "tests", + "tfo", + "thread-pool", "threads", "tls", + "tls-deprecated-ec", "trace", "ts", "ubsan", @@ -425,6 +487,8 @@ our @disablables = ( "whirlpool", "zlib", "zlib-dynamic", + "zstd", + "zstd-dynamic", "ssl3", "ssl3-method", "tls1", @@ -445,33 +509,46 @@ our @disablables_int = ( our %disabled = ( "afalgeng" => "option", "asan" => "default", + "brotli" => "default", + "brotli-dynamic" => "default", "buildtest-c++" => "default", "comp" => "option", "crypto-mdebug" => "default", "crypto-mdebug-backtrace" => "default", + "demos" => "default", "devcryptoeng" => "default", "dynamic-engine" => "cascade", "ec_nistp_64_gcc_128" => "default", "egd" => "default", "external-tests" => "default", + "fips-jitter" => "default", "fuzz-afl" => "default", "fuzz-libfuzzer" => "default", + "h3demo" => "default", + "hqinterop" => "default", + "jitter" => "default", "ktls" => "default", "loadereng" => "cascade", "md2" => "default", "msan" => "default", + "pie" => "default", "rc5" => "default", "sctp" => "default", "shared" => "option", "ssl3" => "default", "ssl3-method" => "default", + "sslkeylog" => "default", + "tfo" => "default", "trace" => "default", "ubsan" => "default", "unit-test" => "default", "uplink" => "no uplink_arch", "weak-ssl-ciphers" => "default", + "winstore" => "not-windows", "zlib" => "default", - "zlib-dynamic" => "default" + "zlib-dynamic" => "default", + "zstd" => "default", + "zstd-dynamic" => "default" ); our %withargs = (); our %unified_info = ( @@ -697,6 +774,11 @@ our %unified_info = ( "pod" => "1" } }, + "doc/man1/openssl-skeyutl.pod" => { + "doc/man1/openssl-skeyutl.pod.in" => { + "pod" => "1" + } + }, "doc/man1/openssl-smime.pod" => { "doc/man1/openssl-smime.pod.in" => { "pod" => "1" @@ -754,6 +836,21 @@ our %unified_info = ( } }, "generate" => { + "exporters/OpenSSLConfig.cmake" => { + "exporter" => "cmake" + }, + "exporters/OpenSSLConfigVersion.cmake" => { + "exporter" => "cmake" + }, + "exporters/libcrypto.pc" => { + "exporter" => "pkg-config" + }, + "exporters/libssl.pc" => { + "exporter" => "pkg-config" + }, + "exporters/openssl.pc" => { + "exporter" => "pkg-config" + }, "include/openssl/configuration.h" => { "skip" => "1" } @@ -774,6 +871,9 @@ our %unified_info = ( "providers/liblegacy.a" => { "noinst" => "1" }, + "providers/libtemplate.a" => { + "noinst" => "1" + }, "test/libtestutil.a" => { "has_main" => "1", "noinst" => "1" @@ -791,6 +891,9 @@ our %unified_info = ( } }, "programs" => { + "fuzz/acert-test" => { + "noinst" => "1" + }, "fuzz/asn1-test" => { "noinst" => "1" }, @@ -821,9 +924,60 @@ our %unified_info = ( "fuzz/ct-test" => { "noinst" => "1" }, + "fuzz/decoder-test" => { + "noinst" => "1" + }, + "fuzz/dtlsclient-test" => { + "noinst" => "1" + }, + "fuzz/dtlsserver-test" => { + "noinst" => "1" + }, + "fuzz/hashtable-test" => { + "noinst" => "1" + }, + "fuzz/ml-dsa-test" => { + "noinst" => "1" + }, + "fuzz/ml-kem-test" => { + "noinst" => "1" + }, + "fuzz/pem-test" => { + "noinst" => "1" + }, + "fuzz/provider-test" => { + "noinst" => "1" + }, + "fuzz/punycode-test" => { + "noinst" => "1" + }, + "fuzz/quic-client-test" => { + "noinst" => "1" + }, + "fuzz/quic-lcidm-test" => { + "noinst" => "1" + }, + "fuzz/quic-rcidm-test" => { + "noinst" => "1" + }, + "fuzz/quic-server-test" => { + "noinst" => "1" + }, + "fuzz/quic-srtm-test" => { + "noinst" => "1" + }, "fuzz/server-test" => { "noinst" => "1" }, + "fuzz/slh-dsa-test" => { + "noinst" => "1" + }, + "fuzz/smime-test" => { + "noinst" => "1" + }, + "fuzz/v3name-test" => { + "noinst" => "1" + }, "fuzz/x509-test" => { "noinst" => "1" }, @@ -875,18 +1029,30 @@ our %unified_info = ( "test/bftest" => { "noinst" => "1" }, + "test/bio_addr_test" => { + "noinst" => "1" + }, + "test/bio_base64_test" => { + "noinst" => "1" + }, "test/bio_callback_test" => { "noinst" => "1" }, "test/bio_core_test" => { "noinst" => "1" }, + "test/bio_dgram_test" => { + "noinst" => "1" + }, "test/bio_enc_test" => { "noinst" => "1" }, "test/bio_memleak_test" => { "noinst" => "1" }, + "test/bio_meth_test" => { + "noinst" => "1" + }, "test/bio_prefix_text" => { "noinst" => "1" }, @@ -896,6 +1062,9 @@ our %unified_info = ( "test/bio_readbuffer_test" => { "noinst" => "1" }, + "test/bio_tfo_test" => { + "noinst" => "1" + }, "test/bioprinttest" => { "noinst" => "1" }, @@ -905,6 +1074,9 @@ our %unified_info = ( "test/bntest" => { "noinst" => "1" }, + "test/build_wincrypt_test" => { + "noinst" => "1" + }, "test/buildtest_c_aes" => { "noinst" => "1" }, @@ -920,6 +1092,9 @@ our %unified_info = ( "test/buildtest_c_buffer" => { "noinst" => "1" }, + "test/buildtest_c_byteorder" => { + "noinst" => "1" + }, "test/buildtest_c_camellia" => { "noinst" => "1" }, @@ -944,9 +1119,6 @@ our %unified_info = ( "test/buildtest_c_core_dispatch" => { "noinst" => "1" }, - "test/buildtest_c_core_names" => { - "noinst" => "1" - }, "test/buildtest_c_core_object" => { "noinst" => "1" }, @@ -971,6 +1143,9 @@ our %unified_info = ( "test/buildtest_c_e_os2" => { "noinst" => "1" }, + "test/buildtest_c_e_ostime" => { + "noinst" => "1" + }, "test/buildtest_c_ebcdic" => { "noinst" => "1" }, @@ -998,12 +1173,18 @@ our %unified_info = ( "test/buildtest_c_hmac" => { "noinst" => "1" }, + "test/buildtest_c_hpke" => { + "noinst" => "1" + }, "test/buildtest_c_http" => { "noinst" => "1" }, "test/buildtest_c_idea" => { "noinst" => "1" }, + "test/buildtest_c_indicator" => { + "noinst" => "1" + }, "test/buildtest_c_kdf" => { "noinst" => "1" }, @@ -1019,6 +1200,9 @@ our %unified_info = ( "test/buildtest_c_mdc2" => { "noinst" => "1" }, + "test/buildtest_c_ml_kem" => { + "noinst" => "1" + }, "test/buildtest_c_modes" => { "noinst" => "1" }, @@ -1049,6 +1233,9 @@ our %unified_info = ( "test/buildtest_c_provider" => { "noinst" => "1" }, + "test/buildtest_c_quic" => { + "noinst" => "1" + }, "test/buildtest_c_rand" => { "noinst" => "1" }, @@ -1091,6 +1278,9 @@ our %unified_info = ( "test/buildtest_c_symhacks" => { "noinst" => "1" }, + "test/buildtest_c_thread" => { + "noinst" => "1" + }, "test/buildtest_c_tls1" => { "noinst" => "1" }, @@ -1106,6 +1296,12 @@ our %unified_info = ( "test/buildtest_c_whrlpool" => { "noinst" => "1" }, + "test/byteorder_test" => { + "noinst" => "1" + }, + "test/ca_internals_test" => { + "noinst" => "1" + }, "test/casttest" => { "noinst" => "1" }, @@ -1190,6 +1386,9 @@ our %unified_info = ( "test/danetest" => { "noinst" => "1" }, + "test/decoder_propq_test" => { + "noinst" => "1" + }, "test/defltfips_test" => { "noinst" => "1" }, @@ -1262,15 +1461,24 @@ our %unified_info = ( "test/evp_pkey_ctx_new_from_name" => { "noinst" => "1" }, + "test/evp_pkey_dhkem_test" => { + "noinst" => "1" + }, "test/evp_pkey_dparams_test" => { "noinst" => "1" }, "test/evp_pkey_provided_test" => { "noinst" => "1" }, + "test/evp_skey_test" => { + "noinst" => "1" + }, "test/evp_test" => { "noinst" => "1" }, + "test/evp_xof_test" => { + "noinst" => "1" + }, "test/exdatatest" => { "noinst" => "1" }, @@ -1298,6 +1506,9 @@ our %unified_info = ( "test/hmactest" => { "noinst" => "1" }, + "test/hpke_test" => { + "noinst" => "1" + }, "test/http_test" => { "noinst" => "1" }, @@ -1307,12 +1518,18 @@ our %unified_info = ( "test/igetest" => { "noinst" => "1" }, + "test/json_test" => { + "noinst" => "1" + }, "test/keymgmt_internal_test" => { "noinst" => "1" }, "test/lhash_test" => { "noinst" => "1" }, + "test/list_test" => { + "noinst" => "1" + }, "test/localetest" => { "noinst" => "1" }, @@ -1322,9 +1539,21 @@ our %unified_info = ( "test/mdc2test" => { "noinst" => "1" }, + "test/membio_test" => { + "noinst" => "1" + }, "test/memleaktest" => { "noinst" => "1" }, + "test/ml_dsa_test" => { + "noinst" => "1" + }, + "test/ml_kem_evp_extra_test" => { + "noinst" => "1" + }, + "test/ml_kem_internal_test" => { + "noinst" => "1" + }, "test/modes_internal_test" => { "noinst" => "1" }, @@ -1343,6 +1572,9 @@ our %unified_info = ( "test/packettest" => { "noinst" => "1" }, + "test/pairwise_fail_test" => { + "noinst" => "1" + }, "test/param_build_test" => { "noinst" => "1" }, @@ -1367,6 +1599,9 @@ our %unified_info = ( "test/pemtest" => { "noinst" => "1" }, + "test/pkcs12_api_test" => { + "noinst" => "1" + }, "test/pkcs12_format_test" => { "noinst" => "1" }, @@ -1382,6 +1617,9 @@ our %unified_info = ( "test/poly1305_internal_test" => { "noinst" => "1" }, + "test/priority_queue_test" => { + "noinst" => "1" + }, "test/property_test" => { "noinst" => "1" }, @@ -1391,6 +1629,9 @@ our %unified_info = ( "test/provfetchtest" => { "noinst" => "1" }, + "test/provider_default_search_path_test" => { + "noinst" => "1" + }, "test/provider_fallback_test" => { "noinst" => "1" }, @@ -1409,6 +1650,72 @@ our %unified_info = ( "test/punycode_test" => { "noinst" => "1" }, + "test/quic_ackm_test" => { + "noinst" => "1" + }, + "test/quic_cc_test" => { + "noinst" => "1" + }, + "test/quic_cfq_test" => { + "noinst" => "1" + }, + "test/quic_client_test" => { + "noinst" => "1" + }, + "test/quic_fc_test" => { + "noinst" => "1" + }, + "test/quic_fifd_test" => { + "noinst" => "1" + }, + "test/quic_lcidm_test" => { + "noinst" => "1" + }, + "test/quic_multistream_test" => { + "noinst" => "1" + }, + "test/quic_newcid_test" => { + "noinst" => "1" + }, + "test/quic_qlog_test" => { + "noinst" => "1" + }, + "test/quic_radix_test" => { + "noinst" => "1" + }, + "test/quic_rcidm_test" => { + "noinst" => "1" + }, + "test/quic_record_test" => { + "noinst" => "1" + }, + "test/quic_srt_gen_test" => { + "noinst" => "1" + }, + "test/quic_srtm_test" => { + "noinst" => "1" + }, + "test/quic_stream_test" => { + "noinst" => "1" + }, + "test/quic_tserver_test" => { + "noinst" => "1" + }, + "test/quic_txp_test" => { + "noinst" => "1" + }, + "test/quic_txpim_test" => { + "noinst" => "1" + }, + "test/quic_wire_test" => { + "noinst" => "1" + }, + "test/quicapitest" => { + "noinst" => "1" + }, + "test/quicfaultstest" => { + "noinst" => "1" + }, "test/rand_status_test" => { "noinst" => "1" }, @@ -1424,12 +1731,15 @@ our %unified_info = ( "test/rc5test" => { "noinst" => "1" }, - "test/rdrand_sanitytest" => { + "test/rdcpu_sanitytest" => { "noinst" => "1" }, "test/recordlentest" => { "noinst" => "1" }, + "test/rpktest" => { + "noinst" => "1" + }, "test/rsa_complex" => { "noinst" => "1" }, @@ -1442,6 +1752,12 @@ our %unified_info = ( "test/rsa_test" => { "noinst" => "1" }, + "test/rsa_x931_test" => { + "noinst" => "1" + }, + "test/safe_math_test" => { + "noinst" => "1" + }, "test/sanitytest" => { "noinst" => "1" }, @@ -1457,6 +1773,9 @@ our %unified_info = ( "test/siphash_internal_test" => { "noinst" => "1" }, + "test/slh_dsa_test" => { + "noinst" => "1" + }, "test/sm2_internal_test" => { "noinst" => "1" }, @@ -1478,6 +1797,9 @@ our %unified_info = ( "test/ssl_ctx_test" => { "noinst" => "1" }, + "test/ssl_handshake_rtt_test" => { + "noinst" => "1" + }, "test/ssl_old_test" => { "noinst" => "1" }, @@ -1499,12 +1821,18 @@ our %unified_info = ( "test/stack_test" => { "noinst" => "1" }, + "test/strtoultest" => { + "noinst" => "1" + }, "test/sysdefaulttest" => { "noinst" => "1" }, "test/test_test" => { "noinst" => "1" }, + "test/threadpool_test" => { + "noinst" => "1" + }, "test/threadstest" => { "noinst" => "1" }, @@ -1514,12 +1842,18 @@ our %unified_info = ( "test/time_offset_test" => { "noinst" => "1" }, + "test/time_test" => { + "noinst" => "1" + }, "test/tls13ccstest" => { "noinst" => "1" }, "test/tls13encryptiontest" => { "noinst" => "1" }, + "test/tls13groupselection_test" => { + "noinst" => "1" + }, "test/trace_api_test" => { "noinst" => "1" }, @@ -1547,6 +1881,9 @@ our %unified_info = ( "test/wpackettest" => { "noinst" => "1" }, + "test/x509_acert_test" => { + "noinst" => "1" + }, "test/x509_check_cert_pkey_test" => { "noinst" => "1" }, @@ -1556,6 +1893,15 @@ our %unified_info = ( "test/x509_internal_test" => { "noinst" => "1" }, + "test/x509_load_cert_file_test" => { + "noinst" => "1" + }, + "test/x509_req_test" => { + "noinst" => "1" + }, + "test/x509_test" => { + "noinst" => "1" + }, "test/x509_time_test" => { "noinst" => "1" }, @@ -1635,6 +1981,7 @@ our %unified_info = ( "ECP_NISTZ256_ASM", "KECCAK1600_ASM", "OPENSSL_CPUID_OBJ", + "OPENSSL_IA32_SSE2", "SHA1_ASM", "SHA256_ASM", "SHA512_ASM", @@ -1663,6 +2010,9 @@ our %unified_info = ( "MD5_ASM", "RC4_ASM" ], + "test/endecode_test" => [ + "STATIC_LEGACY" + ], "test/evp_extra_test" => [ "STATIC_LEGACY" ], @@ -1675,14 +2025,21 @@ our %unified_info = ( }, "depends" => { "" => [ + "OpenSSLConfigVersion.cmake", + "crypto/params_idx.c", + "exporters/OpenSSLConfigVersion.cmake", + "exporters/openssl.pc", "include/crypto/bn_conf.h", "include/crypto/dso_conf.h", + "include/internal/param_names.h", "include/openssl/asn1.h", "include/openssl/asn1t.h", "include/openssl/bio.h", "include/openssl/cmp.h", "include/openssl/cms.h", + "include/openssl/comp.h", "include/openssl/conf.h", + "include/openssl/core_names.h", "include/openssl/crmf.h", "include/openssl/crypto.h", "include/openssl/ct.h", @@ -1699,10 +2056,22 @@ our %unified_info = ( "include/openssl/ssl.h", "include/openssl/ui.h", "include/openssl/x509.h", + "include/openssl/x509_acert.h", "include/openssl/x509_vfy.h", "include/openssl/x509v3.h", + "openssl.pc", "test/provider_internal_test.cnf" ], + "OpenSSLConfig.cmake" => [ + "builddata.pm" + ], + "OpenSSLConfigVersion.cmake" => [ + "OpenSSLConfig.cmake", + "builddata.pm" + ], + "apps/ca_internals_test-bin-ca.o" => [ + "apps/progs.h" + ], "apps/lib/cmp_client_test-bin-cmp_mock_srv.o" => [ "apps/progs.h" ], @@ -1848,6 +2217,9 @@ our %unified_info = ( "apps/openssl-bin-sess_id.o" => [ "apps/progs.h" ], + "apps/openssl-bin-skeyutl.o" => [ + "apps/progs.h" + ], "apps/openssl-bin-smime.o" => [ "apps/progs.h" ], @@ -1936,6 +2308,9 @@ our %unified_info = ( "crypto/libcrypto-lib-info.o" => [ "crypto/buildinf.h" ], + "crypto/params_idx.c" => [ + "util/perl|OpenSSL/paramnames.pm" + ], "crypto/rc4/rc4-586.S" => [ "crypto/perlasm/x86asm.pl" ], @@ -2101,6 +2476,9 @@ our %unified_info = ( "doc/html/man1/openssl-sess_id.html" => [ "doc/man1/openssl-sess_id.pod" ], + "doc/html/man1/openssl-skeyutl.html" => [ + "doc/man1/openssl-skeyutl.pod" + ], "doc/html/man1/openssl-smime.html" => [ "doc/man1/openssl-smime.pod" ], @@ -2242,6 +2620,9 @@ our %unified_info = ( "doc/html/man3/BIO_get_ex_new_index.html" => [ "doc/man3/BIO_get_ex_new_index.pod" ], + "doc/html/man3/BIO_get_rpoll_descriptor.html" => [ + "doc/man3/BIO_get_rpoll_descriptor.pod" + ], "doc/html/man3/BIO_meth_new.html" => [ "doc/man3/BIO_meth_new.pod" ], @@ -2278,6 +2659,9 @@ our %unified_info = ( "doc/html/man3/BIO_s_datagram.html" => [ "doc/man3/BIO_s_datagram.pod" ], + "doc/html/man3/BIO_s_dgram_pair.html" => [ + "doc/man3/BIO_s_dgram_pair.pod" + ], "doc/html/man3/BIO_s_fd.html" => [ "doc/man3/BIO_s_fd.pod" ], @@ -2293,6 +2677,9 @@ our %unified_info = ( "doc/html/man3/BIO_s_socket.html" => [ "doc/man3/BIO_s_socket.pod" ], + "doc/html/man3/BIO_sendmmsg.html" => [ + "doc/man3/BIO_sendmmsg.pod" + ], "doc/html/man3/BIO_set_callback.html" => [ "doc/man3/BIO_set_callback.pod" ], @@ -2365,6 +2752,9 @@ our %unified_info = ( "doc/html/man3/BUF_MEM_new.html" => [ "doc/man3/BUF_MEM_new.pod" ], + "doc/html/man3/CMAC_CTX.html" => [ + "doc/man3/CMAC_CTX.pod" + ], "doc/html/man3/CMS_EncryptedData_decrypt.html" => [ "doc/man3/CMS_EncryptedData_decrypt.pod" ], @@ -2431,6 +2821,9 @@ our %unified_info = ( "doc/html/man3/CMS_verify_receipt.html" => [ "doc/man3/CMS_verify_receipt.pod" ], + "doc/html/man3/COMP_CTX_new.html" => [ + "doc/man3/COMP_CTX_new.pod" + ], "doc/html/man3/CONF_modules_free.html" => [ "doc/man3/CONF_modules_free.pod" ], @@ -2530,6 +2923,12 @@ our %unified_info = ( "doc/html/man3/DTLS_set_timer_cb.html" => [ "doc/man3/DTLS_set_timer_cb.pod" ], + "doc/html/man3/DTLSv1_get_timeout.html" => [ + "doc/man3/DTLSv1_get_timeout.pod" + ], + "doc/html/man3/DTLSv1_handle_timeout.html" => [ + "doc/man3/DTLSv1_handle_timeout.pod" + ], "doc/html/man3/DTLSv1_listen.html" => [ "doc/man3/DTLSv1_listen.pod" ], @@ -2668,6 +3067,9 @@ our %unified_info = ( "doc/html/man3/EVP_PKEY_CTX_get0_pkey.html" => [ "doc/man3/EVP_PKEY_CTX_get0_pkey.pod" ], + "doc/html/man3/EVP_PKEY_CTX_get_algor.html" => [ + "doc/man3/EVP_PKEY_CTX_get_algor.pod" + ], "doc/html/man3/EVP_PKEY_CTX_new.html" => [ "doc/man3/EVP_PKEY_CTX_new.pod" ], @@ -2785,6 +3187,12 @@ our %unified_info = ( "doc/html/man3/EVP_SIGNATURE.html" => [ "doc/man3/EVP_SIGNATURE.pod" ], + "doc/html/man3/EVP_SKEY.html" => [ + "doc/man3/EVP_SKEY.pod" + ], + "doc/html/man3/EVP_SKEYMGMT.html" => [ + "doc/man3/EVP_SKEYMGMT.pod" + ], "doc/html/man3/EVP_SealInit.html" => [ "doc/man3/EVP_SealInit.pod" ], @@ -2872,6 +3280,9 @@ our %unified_info = ( "doc/html/man3/EVP_whirlpool.html" => [ "doc/man3/EVP_whirlpool.pod" ], + "doc/html/man3/GENERAL_NAME.html" => [ + "doc/man3/GENERAL_NAME.pod" + ], "doc/html/man3/HMAC.html" => [ "doc/man3/HMAC.pod" ], @@ -2944,9 +3355,15 @@ our %unified_info = ( "doc/html/man3/OPENSSL_load_builtin_modules.html" => [ "doc/man3/OPENSSL_load_builtin_modules.pod" ], + "doc/html/man3/OPENSSL_load_u16_le.html" => [ + "doc/man3/OPENSSL_load_u16_le.pod" + ], "doc/html/man3/OPENSSL_malloc.html" => [ "doc/man3/OPENSSL_malloc.pod" ], + "doc/html/man3/OPENSSL_riscvcap.html" => [ + "doc/man3/OPENSSL_riscvcap.pod" + ], "doc/html/man3/OPENSSL_s390xcap.html" => [ "doc/man3/OPENSSL_s390xcap.pod" ], @@ -2962,12 +3379,18 @@ our %unified_info = ( "doc/html/man3/OSSL_CALLBACK.html" => [ "doc/man3/OSSL_CALLBACK.pod" ], + "doc/html/man3/OSSL_CMP_ATAV_set0.html" => [ + "doc/man3/OSSL_CMP_ATAV_set0.pod" + ], "doc/html/man3/OSSL_CMP_CTX_new.html" => [ "doc/man3/OSSL_CMP_CTX_new.pod" ], "doc/html/man3/OSSL_CMP_HDR_get0_transactionID.html" => [ "doc/man3/OSSL_CMP_HDR_get0_transactionID.pod" ], + "doc/html/man3/OSSL_CMP_ITAV_new_caCerts.html" => [ + "doc/man3/OSSL_CMP_ITAV_new_caCerts.pod" + ], "doc/html/man3/OSSL_CMP_ITAV_set0.html" => [ "doc/man3/OSSL_CMP_ITAV_set0.pod" ], @@ -3037,9 +3460,18 @@ our %unified_info = ( "doc/html/man3/OSSL_ENCODER_to_bio.html" => [ "doc/man3/OSSL_ENCODER_to_bio.pod" ], + "doc/html/man3/OSSL_ERR_STATE_save.html" => [ + "doc/man3/OSSL_ERR_STATE_save.pod" + ], "doc/html/man3/OSSL_ESS_check_signing_certs.html" => [ "doc/man3/OSSL_ESS_check_signing_certs.pod" ], + "doc/html/man3/OSSL_GENERAL_NAMES_print.html" => [ + "doc/man3/OSSL_GENERAL_NAMES_print.pod" + ], + "doc/html/man3/OSSL_HPKE_CTX_new.html" => [ + "doc/man3/OSSL_HPKE_CTX_new.pod" + ], "doc/html/man3/OSSL_HTTP_REQ_CTX.html" => [ "doc/man3/OSSL_HTTP_REQ_CTX.pod" ], @@ -3049,12 +3481,24 @@ our %unified_info = ( "doc/html/man3/OSSL_HTTP_transfer.html" => [ "doc/man3/OSSL_HTTP_transfer.pod" ], + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX.html" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX.pod" + ], + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX_print.html" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX_print.pod" + ], + "doc/html/man3/OSSL_INDICATOR_set_callback.html" => [ + "doc/man3/OSSL_INDICATOR_set_callback.pod" + ], "doc/html/man3/OSSL_ITEM.html" => [ "doc/man3/OSSL_ITEM.pod" ], "doc/html/man3/OSSL_LIB_CTX.html" => [ "doc/man3/OSSL_LIB_CTX.pod" ], + "doc/html/man3/OSSL_LIB_CTX_set_conf_diagnostics.html" => [ + "doc/man3/OSSL_LIB_CTX_set_conf_diagnostics.pod" + ], "doc/html/man3/OSSL_PARAM.html" => [ "doc/man3/OSSL_PARAM.pod" ], @@ -3070,9 +3514,15 @@ our %unified_info = ( "doc/html/man3/OSSL_PARAM_int.html" => [ "doc/man3/OSSL_PARAM_int.pod" ], + "doc/html/man3/OSSL_PARAM_print_to_bio.html" => [ + "doc/man3/OSSL_PARAM_print_to_bio.pod" + ], "doc/html/man3/OSSL_PROVIDER.html" => [ "doc/man3/OSSL_PROVIDER.pod" ], + "doc/html/man3/OSSL_QUIC_client_method.html" => [ + "doc/man3/OSSL_QUIC_client_method.pod" + ], "doc/html/man3/OSSL_SELF_TEST_new.html" => [ "doc/man3/OSSL_SELF_TEST_new.pod" ], @@ -3097,6 +3547,9 @@ our %unified_info = ( "doc/html/man3/OSSL_STORE_open.html" => [ "doc/man3/OSSL_STORE_open.pod" ], + "doc/html/man3/OSSL_sleep.html" => [ + "doc/man3/OSSL_sleep.pod" + ], "doc/html/man3/OSSL_trace_enabled.html" => [ "doc/man3/OSSL_trace_enabled.pod" ], @@ -3112,6 +3565,9 @@ our %unified_info = ( "doc/html/man3/OpenSSL_version.html" => [ "doc/man3/OpenSSL_version.pod" ], + "doc/html/man3/PBMAC1_get1_pbkdf2_param.html" => [ + "doc/man3/PBMAC1_get1_pbkdf2_param.pod" + ], "doc/html/man3/PEM_X509_INFO_read_bio_ex.html" => [ "doc/man3/PEM_X509_INFO_read_bio_ex.pod" ], @@ -3148,6 +3604,9 @@ our %unified_info = ( "doc/html/man3/PKCS12_SAFEBAG_get1_cert.html" => [ "doc/man3/PKCS12_SAFEBAG_get1_cert.pod" ], + "doc/html/man3/PKCS12_SAFEBAG_set0_attrs.html" => [ + "doc/man3/PKCS12_SAFEBAG_set0_attrs.pod" + ], "doc/html/man3/PKCS12_add1_attr_by_NID.html" => [ "doc/man3/PKCS12_add1_attr_by_NID.pod" ], @@ -3421,6 +3880,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set0_CA_list.html" => [ "doc/man3/SSL_CTX_set0_CA_list.pod" ], + "doc/html/man3/SSL_CTX_set1_cert_comp_preference.html" => [ + "doc/man3/SSL_CTX_set1_cert_comp_preference.pod" + ], "doc/html/man3/SSL_CTX_set1_curves.html" => [ "doc/man3/SSL_CTX_set1_curves.pod" ], @@ -3460,6 +3922,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_default_passwd_cb.html" => [ "doc/man3/SSL_CTX_set_default_passwd_cb.pod" ], + "doc/html/man3/SSL_CTX_set_domain_flags.html" => [ + "doc/man3/SSL_CTX_set_domain_flags.pod" + ], "doc/html/man3/SSL_CTX_set_generate_session_id.html" => [ "doc/man3/SSL_CTX_set_generate_session_id.pod" ], @@ -3481,6 +3946,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_msg_callback.html" => [ "doc/man3/SSL_CTX_set_msg_callback.pod" ], + "doc/html/man3/SSL_CTX_set_new_pending_conn_cb.html" => [ + "doc/man3/SSL_CTX_set_new_pending_conn_cb.pod" + ], "doc/html/man3/SSL_CTX_set_num_tickets.html" => [ "doc/man3/SSL_CTX_set_num_tickets.pod" ], @@ -3595,6 +4063,9 @@ our %unified_info = ( "doc/html/man3/SSL_accept.html" => [ "doc/man3/SSL_accept.pod" ], + "doc/html/man3/SSL_accept_stream.html" => [ + "doc/man3/SSL_accept_stream.pod" + ], "doc/html/man3/SSL_alert_type_string.html" => [ "doc/man3/SSL_alert_type_string.pod" ], @@ -3622,9 +4093,21 @@ our %unified_info = ( "doc/html/man3/SSL_free.html" => [ "doc/man3/SSL_free.pod" ], + "doc/html/man3/SSL_get0_connection.html" => [ + "doc/man3/SSL_get0_connection.pod" + ], + "doc/html/man3/SSL_get0_group_name.html" => [ + "doc/man3/SSL_get0_group_name.pod" + ], + "doc/html/man3/SSL_get0_peer_rpk.html" => [ + "doc/man3/SSL_get0_peer_rpk.pod" + ], "doc/html/man3/SSL_get0_peer_scts.html" => [ "doc/man3/SSL_get0_peer_scts.pod" ], + "doc/html/man3/SSL_get1_builtin_sigalgs.html" => [ + "doc/man3/SSL_get1_builtin_sigalgs.pod" + ], "doc/html/man3/SSL_get_SSL_CTX.html" => [ "doc/man3/SSL_get_SSL_CTX.pod" ], @@ -3640,6 +4123,9 @@ our %unified_info = ( "doc/html/man3/SSL_get_client_random.html" => [ "doc/man3/SSL_get_client_random.pod" ], + "doc/html/man3/SSL_get_conn_close_info.html" => [ + "doc/man3/SSL_get_conn_close_info.pod" + ], "doc/html/man3/SSL_get_current_cipher.html" => [ "doc/man3/SSL_get_current_cipher.pod" ], @@ -3649,12 +4135,18 @@ our %unified_info = ( "doc/html/man3/SSL_get_error.html" => [ "doc/man3/SSL_get_error.pod" ], + "doc/html/man3/SSL_get_event_timeout.html" => [ + "doc/man3/SSL_get_event_timeout.pod" + ], "doc/html/man3/SSL_get_extms_support.html" => [ "doc/man3/SSL_get_extms_support.pod" ], "doc/html/man3/SSL_get_fd.html" => [ "doc/man3/SSL_get_fd.pod" ], + "doc/html/man3/SSL_get_handshake_rtt.html" => [ + "doc/man3/SSL_get_handshake_rtt.pod" + ], "doc/html/man3/SSL_get_peer_cert_chain.html" => [ "doc/man3/SSL_get_peer_cert_chain.pod" ], @@ -3673,12 +4165,24 @@ our %unified_info = ( "doc/html/man3/SSL_get_rbio.html" => [ "doc/man3/SSL_get_rbio.pod" ], + "doc/html/man3/SSL_get_rpoll_descriptor.html" => [ + "doc/man3/SSL_get_rpoll_descriptor.pod" + ], "doc/html/man3/SSL_get_session.html" => [ "doc/man3/SSL_get_session.pod" ], "doc/html/man3/SSL_get_shared_sigalgs.html" => [ "doc/man3/SSL_get_shared_sigalgs.pod" ], + "doc/html/man3/SSL_get_stream_id.html" => [ + "doc/man3/SSL_get_stream_id.pod" + ], + "doc/html/man3/SSL_get_stream_read_state.html" => [ + "doc/man3/SSL_get_stream_read_state.pod" + ], + "doc/html/man3/SSL_get_value_uint.html" => [ + "doc/man3/SSL_get_value_uint.pod" + ], "doc/html/man3/SSL_get_verify_result.html" => [ "doc/man3/SSL_get_verify_result.pod" ], @@ -3688,9 +4192,15 @@ our %unified_info = ( "doc/html/man3/SSL_group_to_name.html" => [ "doc/man3/SSL_group_to_name.pod" ], + "doc/html/man3/SSL_handle_events.html" => [ + "doc/man3/SSL_handle_events.pod" + ], "doc/html/man3/SSL_in_init.html" => [ "doc/man3/SSL_in_init.pod" ], + "doc/html/man3/SSL_inject_net_dgram.html" => [ + "doc/man3/SSL_inject_net_dgram.pod" + ], "doc/html/man3/SSL_key_update.html" => [ "doc/man3/SSL_key_update.pod" ], @@ -3703,9 +4213,21 @@ our %unified_info = ( "doc/html/man3/SSL_new.html" => [ "doc/man3/SSL_new.pod" ], + "doc/html/man3/SSL_new_domain.html" => [ + "doc/man3/SSL_new_domain.pod" + ], + "doc/html/man3/SSL_new_listener.html" => [ + "doc/man3/SSL_new_listener.pod" + ], + "doc/html/man3/SSL_new_stream.html" => [ + "doc/man3/SSL_new_stream.pod" + ], "doc/html/man3/SSL_pending.html" => [ "doc/man3/SSL_pending.pod" ], + "doc/html/man3/SSL_poll.html" => [ + "doc/man3/SSL_poll.pod" + ], "doc/html/man3/SSL_read.html" => [ "doc/man3/SSL_read.pod" ], @@ -3721,24 +4243,45 @@ our %unified_info = ( "doc/html/man3/SSL_set1_host.html" => [ "doc/man3/SSL_set1_host.pod" ], + "doc/html/man3/SSL_set1_initial_peer_addr.html" => [ + "doc/man3/SSL_set1_initial_peer_addr.pod" + ], + "doc/html/man3/SSL_set1_server_cert_type.html" => [ + "doc/man3/SSL_set1_server_cert_type.pod" + ], "doc/html/man3/SSL_set_async_callback.html" => [ "doc/man3/SSL_set_async_callback.pod" ], "doc/html/man3/SSL_set_bio.html" => [ "doc/man3/SSL_set_bio.pod" ], + "doc/html/man3/SSL_set_blocking_mode.html" => [ + "doc/man3/SSL_set_blocking_mode.pod" + ], "doc/html/man3/SSL_set_connect_state.html" => [ "doc/man3/SSL_set_connect_state.pod" ], + "doc/html/man3/SSL_set_default_stream_mode.html" => [ + "doc/man3/SSL_set_default_stream_mode.pod" + ], "doc/html/man3/SSL_set_fd.html" => [ "doc/man3/SSL_set_fd.pod" ], + "doc/html/man3/SSL_set_incoming_stream_policy.html" => [ + "doc/man3/SSL_set_incoming_stream_policy.pod" + ], + "doc/html/man3/SSL_set_quic_tls_cbs.html" => [ + "doc/man3/SSL_set_quic_tls_cbs.pod" + ], "doc/html/man3/SSL_set_retry_verify.html" => [ "doc/man3/SSL_set_retry_verify.pod" ], "doc/html/man3/SSL_set_session.html" => [ "doc/man3/SSL_set_session.pod" ], + "doc/html/man3/SSL_set_session_secret_cb.html" => [ + "doc/man3/SSL_set_session_secret_cb.pod" + ], "doc/html/man3/SSL_set_shutdown.html" => [ "doc/man3/SSL_set_shutdown.pod" ], @@ -3751,6 +4294,12 @@ our %unified_info = ( "doc/html/man3/SSL_state_string.html" => [ "doc/man3/SSL_state_string.pod" ], + "doc/html/man3/SSL_stream_conclude.html" => [ + "doc/man3/SSL_stream_conclude.pod" + ], + "doc/html/man3/SSL_stream_reset.html" => [ + "doc/man3/SSL_stream_reset.pod" + ], "doc/html/man3/SSL_want.html" => [ "doc/man3/SSL_want.pod" ], @@ -3760,8 +4309,8 @@ our %unified_info = ( "doc/html/man3/TS_RESP_CTX_new.html" => [ "doc/man3/TS_RESP_CTX_new.pod" ], - "doc/html/man3/TS_VERIFY_CTX_set_certs.html" => [ - "doc/man3/TS_VERIFY_CTX_set_certs.pod" + "doc/html/man3/TS_VERIFY_CTX.html" => [ + "doc/man3/TS_VERIFY_CTX.pod" ], "doc/html/man3/UI_STRING.html" => [ "doc/man3/UI_STRING.pod" @@ -3781,6 +4330,21 @@ our %unified_info = ( "doc/html/man3/X509V3_set_ctx.html" => [ "doc/man3/X509V3_set_ctx.pod" ], + "doc/html/man3/X509_ACERT_add1_attr.html" => [ + "doc/man3/X509_ACERT_add1_attr.pod" + ], + "doc/html/man3/X509_ACERT_add_attr_nconf.html" => [ + "doc/man3/X509_ACERT_add_attr_nconf.pod" + ], + "doc/html/man3/X509_ACERT_get0_holder_baseCertId.html" => [ + "doc/man3/X509_ACERT_get0_holder_baseCertId.pod" + ], + "doc/html/man3/X509_ACERT_get_attr.html" => [ + "doc/man3/X509_ACERT_get_attr.pod" + ], + "doc/html/man3/X509_ACERT_print_ex.html" => [ + "doc/man3/X509_ACERT_print_ex.pod" + ], "doc/html/man3/X509_ALGOR_dup.html" => [ "doc/man3/X509_ALGOR_dup.pod" ], @@ -3829,6 +4393,9 @@ our %unified_info = ( "doc/html/man3/X509_SIG_get0.html" => [ "doc/man3/X509_SIG_get0.pod" ], + "doc/html/man3/X509_STORE_CTX_get_by_subject.html" => [ + "doc/man3/X509_STORE_CTX_get_by_subject.pod" + ], "doc/html/man3/X509_STORE_CTX_get_error.html" => [ "doc/man3/X509_STORE_CTX_get_error.pod" ], @@ -3895,6 +4462,9 @@ our %unified_info = ( "doc/html/man3/X509_get0_uids.html" => [ "doc/man3/X509_get0_uids.pod" ], + "doc/html/man3/X509_get_default_cert_file.html" => [ + "doc/man3/X509_get_default_cert_file.pod" + ], "doc/html/man3/X509_get_extension_flags.html" => [ "doc/man3/X509_get_extension_flags.pod" ], @@ -4018,9 +4588,15 @@ our %unified_info = ( "doc/html/man7/EVP_CIPHER-SM4.html" => [ "doc/man7/EVP_CIPHER-SM4.pod" ], + "doc/html/man7/EVP_KDF-ARGON2.html" => [ + "doc/man7/EVP_KDF-ARGON2.pod" + ], "doc/html/man7/EVP_KDF-HKDF.html" => [ "doc/man7/EVP_KDF-HKDF.pod" ], + "doc/html/man7/EVP_KDF-HMAC-DRBG.html" => [ + "doc/man7/EVP_KDF-HMAC-DRBG.pod" + ], "doc/html/man7/EVP_KDF-KB.html" => [ "doc/man7/EVP_KDF-KB.pod" ], @@ -4036,6 +4612,9 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-PKCS12KDF.html" => [ "doc/man7/EVP_KDF-PKCS12KDF.pod" ], + "doc/html/man7/EVP_KDF-PVKKDF.html" => [ + "doc/man7/EVP_KDF-PVKKDF.pod" + ], "doc/html/man7/EVP_KDF-SCRYPT.html" => [ "doc/man7/EVP_KDF-SCRYPT.pod" ], @@ -4060,9 +4639,18 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-X963.html" => [ "doc/man7/EVP_KDF-X963.pod" ], + "doc/html/man7/EVP_KEM-EC.html" => [ + "doc/man7/EVP_KEM-EC.pod" + ], + "doc/html/man7/EVP_KEM-ML-KEM.html" => [ + "doc/man7/EVP_KEM-ML-KEM.pod" + ], "doc/html/man7/EVP_KEM-RSA.html" => [ "doc/man7/EVP_KEM-RSA.pod" ], + "doc/html/man7/EVP_KEM-X25519.html" => [ + "doc/man7/EVP_KEM-X25519.pod" + ], "doc/html/man7/EVP_KEYEXCH-DH.html" => [ "doc/man7/EVP_KEYEXCH-DH.pod" ], @@ -4096,6 +4684,9 @@ our %unified_info = ( "doc/html/man7/EVP_MD-BLAKE2.html" => [ "doc/man7/EVP_MD-BLAKE2.pod" ], + "doc/html/man7/EVP_MD-KECCAK.html" => [ + "doc/man7/EVP_MD-KECCAK.pod" + ], "doc/html/man7/EVP_MD-MD2.html" => [ "doc/man7/EVP_MD-MD2.pod" ], @@ -4153,15 +4744,27 @@ our %unified_info = ( "doc/html/man7/EVP_PKEY-HMAC.html" => [ "doc/man7/EVP_PKEY-HMAC.pod" ], + "doc/html/man7/EVP_PKEY-ML-DSA.html" => [ + "doc/man7/EVP_PKEY-ML-DSA.pod" + ], + "doc/html/man7/EVP_PKEY-ML-KEM.html" => [ + "doc/man7/EVP_PKEY-ML-KEM.pod" + ], "doc/html/man7/EVP_PKEY-RSA.html" => [ "doc/man7/EVP_PKEY-RSA.pod" ], + "doc/html/man7/EVP_PKEY-SLH-DSA.html" => [ + "doc/man7/EVP_PKEY-SLH-DSA.pod" + ], "doc/html/man7/EVP_PKEY-SM2.html" => [ "doc/man7/EVP_PKEY-SM2.pod" ], "doc/html/man7/EVP_PKEY-X25519.html" => [ "doc/man7/EVP_PKEY-X25519.pod" ], + "doc/html/man7/EVP_RAND-CRNG-TEST.html" => [ + "doc/man7/EVP_RAND-CRNG-TEST.pod" + ], "doc/html/man7/EVP_RAND-CTR-DRBG.html" => [ "doc/man7/EVP_RAND-CTR-DRBG.pod" ], @@ -4171,6 +4774,9 @@ our %unified_info = ( "doc/html/man7/EVP_RAND-HMAC-DRBG.html" => [ "doc/man7/EVP_RAND-HMAC-DRBG.pod" ], + "doc/html/man7/EVP_RAND-JITTER.html" => [ + "doc/man7/EVP_RAND-JITTER.pod" + ], "doc/html/man7/EVP_RAND-SEED-SRC.html" => [ "doc/man7/EVP_RAND-SEED-SRC.pod" ], @@ -4192,9 +4798,15 @@ our %unified_info = ( "doc/html/man7/EVP_SIGNATURE-HMAC.html" => [ "doc/man7/EVP_SIGNATURE-HMAC.pod" ], + "doc/html/man7/EVP_SIGNATURE-ML-DSA.html" => [ + "doc/man7/EVP_SIGNATURE-ML-DSA.pod" + ], "doc/html/man7/EVP_SIGNATURE-RSA.html" => [ "doc/man7/EVP_SIGNATURE-RSA.pod" ], + "doc/html/man7/EVP_SIGNATURE-SLH-DSA.html" => [ + "doc/man7/EVP_SIGNATURE-SLH-DSA.pod" + ], "doc/html/man7/OSSL_PROVIDER-FIPS.html" => [ "doc/man7/OSSL_PROVIDER-FIPS.pod" ], @@ -4210,6 +4822,9 @@ our %unified_info = ( "doc/html/man7/OSSL_PROVIDER-null.html" => [ "doc/man7/OSSL_PROVIDER-null.pod" ], + "doc/html/man7/OSSL_STORE-winstore.html" => [ + "doc/man7/OSSL_STORE-winstore.pod" + ], "doc/html/man7/RAND.html" => [ "doc/man7/RAND.pod" ], @@ -4222,9 +4837,6 @@ our %unified_info = ( "doc/html/man7/bio.html" => [ "doc/man7/bio.pod" ], - "doc/html/man7/crypto.html" => [ - "doc/man7/crypto.pod" - ], "doc/html/man7/ct.html" => [ "doc/man7/ct.pod" ], @@ -4255,9 +4867,6 @@ our %unified_info = ( "doc/html/man7/life_cycle-rand.html" => [ "doc/man7/life_cycle-rand.pod" ], - "doc/html/man7/migration_guide.html" => [ - "doc/man7/migration_guide.pod" - ], "doc/html/man7/openssl-core.h.html" => [ "doc/man7/openssl-core.h.pod" ], @@ -4273,12 +4882,66 @@ our %unified_info = ( "doc/html/man7/openssl-glossary.html" => [ "doc/man7/openssl-glossary.pod" ], + "doc/html/man7/openssl-qlog.html" => [ + "doc/man7/openssl-qlog.pod" + ], + "doc/html/man7/openssl-quic-concurrency.html" => [ + "doc/man7/openssl-quic-concurrency.pod" + ], + "doc/html/man7/openssl-quic.html" => [ + "doc/man7/openssl-quic.pod" + ], "doc/html/man7/openssl-threads.html" => [ "doc/man7/openssl-threads.pod" ], "doc/html/man7/openssl_user_macros.html" => [ "doc/man7/openssl_user_macros.pod" ], + "doc/html/man7/ossl-guide-introduction.html" => [ + "doc/man7/ossl-guide-introduction.pod" + ], + "doc/html/man7/ossl-guide-libcrypto-introduction.html" => [ + "doc/man7/ossl-guide-libcrypto-introduction.pod" + ], + "doc/html/man7/ossl-guide-libraries-introduction.html" => [ + "doc/man7/ossl-guide-libraries-introduction.pod" + ], + "doc/html/man7/ossl-guide-libssl-introduction.html" => [ + "doc/man7/ossl-guide-libssl-introduction.pod" + ], + "doc/html/man7/ossl-guide-migration.html" => [ + "doc/man7/ossl-guide-migration.pod" + ], + "doc/html/man7/ossl-guide-quic-client-block.html" => [ + "doc/man7/ossl-guide-quic-client-block.pod" + ], + "doc/html/man7/ossl-guide-quic-client-non-block.html" => [ + "doc/man7/ossl-guide-quic-client-non-block.pod" + ], + "doc/html/man7/ossl-guide-quic-introduction.html" => [ + "doc/man7/ossl-guide-quic-introduction.pod" + ], + "doc/html/man7/ossl-guide-quic-multi-stream.html" => [ + "doc/man7/ossl-guide-quic-multi-stream.pod" + ], + "doc/html/man7/ossl-guide-quic-server-block.html" => [ + "doc/man7/ossl-guide-quic-server-block.pod" + ], + "doc/html/man7/ossl-guide-quic-server-non-block.html" => [ + "doc/man7/ossl-guide-quic-server-non-block.pod" + ], + "doc/html/man7/ossl-guide-tls-client-block.html" => [ + "doc/man7/ossl-guide-tls-client-block.pod" + ], + "doc/html/man7/ossl-guide-tls-client-non-block.html" => [ + "doc/man7/ossl-guide-tls-client-non-block.pod" + ], + "doc/html/man7/ossl-guide-tls-introduction.html" => [ + "doc/man7/ossl-guide-tls-introduction.pod" + ], + "doc/html/man7/ossl-guide-tls-server-block.html" => [ + "doc/man7/ossl-guide-tls-server-block.pod" + ], "doc/html/man7/ossl_store-file.html" => [ "doc/man7/ossl_store-file.pod" ], @@ -4333,6 +4996,9 @@ our %unified_info = ( "doc/html/man7/provider-signature.html" => [ "doc/man7/provider-signature.pod" ], + "doc/html/man7/provider-skeymgmt.html" => [ + "doc/man7/provider-skeymgmt.pod" + ], "doc/html/man7/provider-storemgmt.html" => [ "doc/man7/provider-storemgmt.pod" ], @@ -4342,9 +5008,6 @@ our %unified_info = ( "doc/html/man7/proxy-certificates.html" => [ "doc/man7/proxy-certificates.pod" ], - "doc/html/man7/ssl.html" => [ - "doc/man7/ssl.pod" - ], "doc/html/man7/x509.html" => [ "doc/man7/x509.pod" ], @@ -4492,6 +5155,9 @@ our %unified_info = ( "doc/man/man1/openssl-sess_id.1" => [ "doc/man1/openssl-sess_id.pod" ], + "doc/man/man1/openssl-skeyutl.1" => [ + "doc/man1/openssl-skeyutl.pod" + ], "doc/man/man1/openssl-smime.1" => [ "doc/man1/openssl-smime.pod" ], @@ -4633,6 +5299,9 @@ our %unified_info = ( "doc/man/man3/BIO_get_ex_new_index.3" => [ "doc/man3/BIO_get_ex_new_index.pod" ], + "doc/man/man3/BIO_get_rpoll_descriptor.3" => [ + "doc/man3/BIO_get_rpoll_descriptor.pod" + ], "doc/man/man3/BIO_meth_new.3" => [ "doc/man3/BIO_meth_new.pod" ], @@ -4669,6 +5338,9 @@ our %unified_info = ( "doc/man/man3/BIO_s_datagram.3" => [ "doc/man3/BIO_s_datagram.pod" ], + "doc/man/man3/BIO_s_dgram_pair.3" => [ + "doc/man3/BIO_s_dgram_pair.pod" + ], "doc/man/man3/BIO_s_fd.3" => [ "doc/man3/BIO_s_fd.pod" ], @@ -4684,6 +5356,9 @@ our %unified_info = ( "doc/man/man3/BIO_s_socket.3" => [ "doc/man3/BIO_s_socket.pod" ], + "doc/man/man3/BIO_sendmmsg.3" => [ + "doc/man3/BIO_sendmmsg.pod" + ], "doc/man/man3/BIO_set_callback.3" => [ "doc/man3/BIO_set_callback.pod" ], @@ -4756,6 +5431,9 @@ our %unified_info = ( "doc/man/man3/BUF_MEM_new.3" => [ "doc/man3/BUF_MEM_new.pod" ], + "doc/man/man3/CMAC_CTX.3" => [ + "doc/man3/CMAC_CTX.pod" + ], "doc/man/man3/CMS_EncryptedData_decrypt.3" => [ "doc/man3/CMS_EncryptedData_decrypt.pod" ], @@ -4822,6 +5500,9 @@ our %unified_info = ( "doc/man/man3/CMS_verify_receipt.3" => [ "doc/man3/CMS_verify_receipt.pod" ], + "doc/man/man3/COMP_CTX_new.3" => [ + "doc/man3/COMP_CTX_new.pod" + ], "doc/man/man3/CONF_modules_free.3" => [ "doc/man3/CONF_modules_free.pod" ], @@ -4921,6 +5602,12 @@ our %unified_info = ( "doc/man/man3/DTLS_set_timer_cb.3" => [ "doc/man3/DTLS_set_timer_cb.pod" ], + "doc/man/man3/DTLSv1_get_timeout.3" => [ + "doc/man3/DTLSv1_get_timeout.pod" + ], + "doc/man/man3/DTLSv1_handle_timeout.3" => [ + "doc/man3/DTLSv1_handle_timeout.pod" + ], "doc/man/man3/DTLSv1_listen.3" => [ "doc/man3/DTLSv1_listen.pod" ], @@ -5059,6 +5746,9 @@ our %unified_info = ( "doc/man/man3/EVP_PKEY_CTX_get0_pkey.3" => [ "doc/man3/EVP_PKEY_CTX_get0_pkey.pod" ], + "doc/man/man3/EVP_PKEY_CTX_get_algor.3" => [ + "doc/man3/EVP_PKEY_CTX_get_algor.pod" + ], "doc/man/man3/EVP_PKEY_CTX_new.3" => [ "doc/man3/EVP_PKEY_CTX_new.pod" ], @@ -5176,6 +5866,12 @@ our %unified_info = ( "doc/man/man3/EVP_SIGNATURE.3" => [ "doc/man3/EVP_SIGNATURE.pod" ], + "doc/man/man3/EVP_SKEY.3" => [ + "doc/man3/EVP_SKEY.pod" + ], + "doc/man/man3/EVP_SKEYMGMT.3" => [ + "doc/man3/EVP_SKEYMGMT.pod" + ], "doc/man/man3/EVP_SealInit.3" => [ "doc/man3/EVP_SealInit.pod" ], @@ -5263,6 +5959,9 @@ our %unified_info = ( "doc/man/man3/EVP_whirlpool.3" => [ "doc/man3/EVP_whirlpool.pod" ], + "doc/man/man3/GENERAL_NAME.3" => [ + "doc/man3/GENERAL_NAME.pod" + ], "doc/man/man3/HMAC.3" => [ "doc/man3/HMAC.pod" ], @@ -5335,9 +6034,15 @@ our %unified_info = ( "doc/man/man3/OPENSSL_load_builtin_modules.3" => [ "doc/man3/OPENSSL_load_builtin_modules.pod" ], + "doc/man/man3/OPENSSL_load_u16_le.3" => [ + "doc/man3/OPENSSL_load_u16_le.pod" + ], "doc/man/man3/OPENSSL_malloc.3" => [ "doc/man3/OPENSSL_malloc.pod" ], + "doc/man/man3/OPENSSL_riscvcap.3" => [ + "doc/man3/OPENSSL_riscvcap.pod" + ], "doc/man/man3/OPENSSL_s390xcap.3" => [ "doc/man3/OPENSSL_s390xcap.pod" ], @@ -5353,12 +6058,18 @@ our %unified_info = ( "doc/man/man3/OSSL_CALLBACK.3" => [ "doc/man3/OSSL_CALLBACK.pod" ], + "doc/man/man3/OSSL_CMP_ATAV_set0.3" => [ + "doc/man3/OSSL_CMP_ATAV_set0.pod" + ], "doc/man/man3/OSSL_CMP_CTX_new.3" => [ "doc/man3/OSSL_CMP_CTX_new.pod" ], "doc/man/man3/OSSL_CMP_HDR_get0_transactionID.3" => [ "doc/man3/OSSL_CMP_HDR_get0_transactionID.pod" ], + "doc/man/man3/OSSL_CMP_ITAV_new_caCerts.3" => [ + "doc/man3/OSSL_CMP_ITAV_new_caCerts.pod" + ], "doc/man/man3/OSSL_CMP_ITAV_set0.3" => [ "doc/man3/OSSL_CMP_ITAV_set0.pod" ], @@ -5428,9 +6139,18 @@ our %unified_info = ( "doc/man/man3/OSSL_ENCODER_to_bio.3" => [ "doc/man3/OSSL_ENCODER_to_bio.pod" ], + "doc/man/man3/OSSL_ERR_STATE_save.3" => [ + "doc/man3/OSSL_ERR_STATE_save.pod" + ], "doc/man/man3/OSSL_ESS_check_signing_certs.3" => [ "doc/man3/OSSL_ESS_check_signing_certs.pod" ], + "doc/man/man3/OSSL_GENERAL_NAMES_print.3" => [ + "doc/man3/OSSL_GENERAL_NAMES_print.pod" + ], + "doc/man/man3/OSSL_HPKE_CTX_new.3" => [ + "doc/man3/OSSL_HPKE_CTX_new.pod" + ], "doc/man/man3/OSSL_HTTP_REQ_CTX.3" => [ "doc/man3/OSSL_HTTP_REQ_CTX.pod" ], @@ -5440,12 +6160,24 @@ our %unified_info = ( "doc/man/man3/OSSL_HTTP_transfer.3" => [ "doc/man3/OSSL_HTTP_transfer.pod" ], + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX.3" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX.pod" + ], + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX_print.3" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX_print.pod" + ], + "doc/man/man3/OSSL_INDICATOR_set_callback.3" => [ + "doc/man3/OSSL_INDICATOR_set_callback.pod" + ], "doc/man/man3/OSSL_ITEM.3" => [ "doc/man3/OSSL_ITEM.pod" ], "doc/man/man3/OSSL_LIB_CTX.3" => [ "doc/man3/OSSL_LIB_CTX.pod" ], + "doc/man/man3/OSSL_LIB_CTX_set_conf_diagnostics.3" => [ + "doc/man3/OSSL_LIB_CTX_set_conf_diagnostics.pod" + ], "doc/man/man3/OSSL_PARAM.3" => [ "doc/man3/OSSL_PARAM.pod" ], @@ -5461,9 +6193,15 @@ our %unified_info = ( "doc/man/man3/OSSL_PARAM_int.3" => [ "doc/man3/OSSL_PARAM_int.pod" ], + "doc/man/man3/OSSL_PARAM_print_to_bio.3" => [ + "doc/man3/OSSL_PARAM_print_to_bio.pod" + ], "doc/man/man3/OSSL_PROVIDER.3" => [ "doc/man3/OSSL_PROVIDER.pod" ], + "doc/man/man3/OSSL_QUIC_client_method.3" => [ + "doc/man3/OSSL_QUIC_client_method.pod" + ], "doc/man/man3/OSSL_SELF_TEST_new.3" => [ "doc/man3/OSSL_SELF_TEST_new.pod" ], @@ -5488,6 +6226,9 @@ our %unified_info = ( "doc/man/man3/OSSL_STORE_open.3" => [ "doc/man3/OSSL_STORE_open.pod" ], + "doc/man/man3/OSSL_sleep.3" => [ + "doc/man3/OSSL_sleep.pod" + ], "doc/man/man3/OSSL_trace_enabled.3" => [ "doc/man3/OSSL_trace_enabled.pod" ], @@ -5503,6 +6244,9 @@ our %unified_info = ( "doc/man/man3/OpenSSL_version.3" => [ "doc/man3/OpenSSL_version.pod" ], + "doc/man/man3/PBMAC1_get1_pbkdf2_param.3" => [ + "doc/man3/PBMAC1_get1_pbkdf2_param.pod" + ], "doc/man/man3/PEM_X509_INFO_read_bio_ex.3" => [ "doc/man3/PEM_X509_INFO_read_bio_ex.pod" ], @@ -5539,6 +6283,9 @@ our %unified_info = ( "doc/man/man3/PKCS12_SAFEBAG_get1_cert.3" => [ "doc/man3/PKCS12_SAFEBAG_get1_cert.pod" ], + "doc/man/man3/PKCS12_SAFEBAG_set0_attrs.3" => [ + "doc/man3/PKCS12_SAFEBAG_set0_attrs.pod" + ], "doc/man/man3/PKCS12_add1_attr_by_NID.3" => [ "doc/man3/PKCS12_add1_attr_by_NID.pod" ], @@ -5812,6 +6559,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set0_CA_list.3" => [ "doc/man3/SSL_CTX_set0_CA_list.pod" ], + "doc/man/man3/SSL_CTX_set1_cert_comp_preference.3" => [ + "doc/man3/SSL_CTX_set1_cert_comp_preference.pod" + ], "doc/man/man3/SSL_CTX_set1_curves.3" => [ "doc/man3/SSL_CTX_set1_curves.pod" ], @@ -5851,6 +6601,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_default_passwd_cb.3" => [ "doc/man3/SSL_CTX_set_default_passwd_cb.pod" ], + "doc/man/man3/SSL_CTX_set_domain_flags.3" => [ + "doc/man3/SSL_CTX_set_domain_flags.pod" + ], "doc/man/man3/SSL_CTX_set_generate_session_id.3" => [ "doc/man3/SSL_CTX_set_generate_session_id.pod" ], @@ -5872,6 +6625,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_msg_callback.3" => [ "doc/man3/SSL_CTX_set_msg_callback.pod" ], + "doc/man/man3/SSL_CTX_set_new_pending_conn_cb.3" => [ + "doc/man3/SSL_CTX_set_new_pending_conn_cb.pod" + ], "doc/man/man3/SSL_CTX_set_num_tickets.3" => [ "doc/man3/SSL_CTX_set_num_tickets.pod" ], @@ -5986,6 +6742,9 @@ our %unified_info = ( "doc/man/man3/SSL_accept.3" => [ "doc/man3/SSL_accept.pod" ], + "doc/man/man3/SSL_accept_stream.3" => [ + "doc/man3/SSL_accept_stream.pod" + ], "doc/man/man3/SSL_alert_type_string.3" => [ "doc/man3/SSL_alert_type_string.pod" ], @@ -6013,9 +6772,21 @@ our %unified_info = ( "doc/man/man3/SSL_free.3" => [ "doc/man3/SSL_free.pod" ], + "doc/man/man3/SSL_get0_connection.3" => [ + "doc/man3/SSL_get0_connection.pod" + ], + "doc/man/man3/SSL_get0_group_name.3" => [ + "doc/man3/SSL_get0_group_name.pod" + ], + "doc/man/man3/SSL_get0_peer_rpk.3" => [ + "doc/man3/SSL_get0_peer_rpk.pod" + ], "doc/man/man3/SSL_get0_peer_scts.3" => [ "doc/man3/SSL_get0_peer_scts.pod" ], + "doc/man/man3/SSL_get1_builtin_sigalgs.3" => [ + "doc/man3/SSL_get1_builtin_sigalgs.pod" + ], "doc/man/man3/SSL_get_SSL_CTX.3" => [ "doc/man3/SSL_get_SSL_CTX.pod" ], @@ -6031,6 +6802,9 @@ our %unified_info = ( "doc/man/man3/SSL_get_client_random.3" => [ "doc/man3/SSL_get_client_random.pod" ], + "doc/man/man3/SSL_get_conn_close_info.3" => [ + "doc/man3/SSL_get_conn_close_info.pod" + ], "doc/man/man3/SSL_get_current_cipher.3" => [ "doc/man3/SSL_get_current_cipher.pod" ], @@ -6040,12 +6814,18 @@ our %unified_info = ( "doc/man/man3/SSL_get_error.3" => [ "doc/man3/SSL_get_error.pod" ], + "doc/man/man3/SSL_get_event_timeout.3" => [ + "doc/man3/SSL_get_event_timeout.pod" + ], "doc/man/man3/SSL_get_extms_support.3" => [ "doc/man3/SSL_get_extms_support.pod" ], "doc/man/man3/SSL_get_fd.3" => [ "doc/man3/SSL_get_fd.pod" ], + "doc/man/man3/SSL_get_handshake_rtt.3" => [ + "doc/man3/SSL_get_handshake_rtt.pod" + ], "doc/man/man3/SSL_get_peer_cert_chain.3" => [ "doc/man3/SSL_get_peer_cert_chain.pod" ], @@ -6064,12 +6844,24 @@ our %unified_info = ( "doc/man/man3/SSL_get_rbio.3" => [ "doc/man3/SSL_get_rbio.pod" ], + "doc/man/man3/SSL_get_rpoll_descriptor.3" => [ + "doc/man3/SSL_get_rpoll_descriptor.pod" + ], "doc/man/man3/SSL_get_session.3" => [ "doc/man3/SSL_get_session.pod" ], "doc/man/man3/SSL_get_shared_sigalgs.3" => [ "doc/man3/SSL_get_shared_sigalgs.pod" ], + "doc/man/man3/SSL_get_stream_id.3" => [ + "doc/man3/SSL_get_stream_id.pod" + ], + "doc/man/man3/SSL_get_stream_read_state.3" => [ + "doc/man3/SSL_get_stream_read_state.pod" + ], + "doc/man/man3/SSL_get_value_uint.3" => [ + "doc/man3/SSL_get_value_uint.pod" + ], "doc/man/man3/SSL_get_verify_result.3" => [ "doc/man3/SSL_get_verify_result.pod" ], @@ -6079,9 +6871,15 @@ our %unified_info = ( "doc/man/man3/SSL_group_to_name.3" => [ "doc/man3/SSL_group_to_name.pod" ], + "doc/man/man3/SSL_handle_events.3" => [ + "doc/man3/SSL_handle_events.pod" + ], "doc/man/man3/SSL_in_init.3" => [ "doc/man3/SSL_in_init.pod" ], + "doc/man/man3/SSL_inject_net_dgram.3" => [ + "doc/man3/SSL_inject_net_dgram.pod" + ], "doc/man/man3/SSL_key_update.3" => [ "doc/man3/SSL_key_update.pod" ], @@ -6094,9 +6892,21 @@ our %unified_info = ( "doc/man/man3/SSL_new.3" => [ "doc/man3/SSL_new.pod" ], + "doc/man/man3/SSL_new_domain.3" => [ + "doc/man3/SSL_new_domain.pod" + ], + "doc/man/man3/SSL_new_listener.3" => [ + "doc/man3/SSL_new_listener.pod" + ], + "doc/man/man3/SSL_new_stream.3" => [ + "doc/man3/SSL_new_stream.pod" + ], "doc/man/man3/SSL_pending.3" => [ "doc/man3/SSL_pending.pod" ], + "doc/man/man3/SSL_poll.3" => [ + "doc/man3/SSL_poll.pod" + ], "doc/man/man3/SSL_read.3" => [ "doc/man3/SSL_read.pod" ], @@ -6112,24 +6922,45 @@ our %unified_info = ( "doc/man/man3/SSL_set1_host.3" => [ "doc/man3/SSL_set1_host.pod" ], + "doc/man/man3/SSL_set1_initial_peer_addr.3" => [ + "doc/man3/SSL_set1_initial_peer_addr.pod" + ], + "doc/man/man3/SSL_set1_server_cert_type.3" => [ + "doc/man3/SSL_set1_server_cert_type.pod" + ], "doc/man/man3/SSL_set_async_callback.3" => [ "doc/man3/SSL_set_async_callback.pod" ], "doc/man/man3/SSL_set_bio.3" => [ "doc/man3/SSL_set_bio.pod" ], + "doc/man/man3/SSL_set_blocking_mode.3" => [ + "doc/man3/SSL_set_blocking_mode.pod" + ], "doc/man/man3/SSL_set_connect_state.3" => [ "doc/man3/SSL_set_connect_state.pod" ], + "doc/man/man3/SSL_set_default_stream_mode.3" => [ + "doc/man3/SSL_set_default_stream_mode.pod" + ], "doc/man/man3/SSL_set_fd.3" => [ "doc/man3/SSL_set_fd.pod" ], + "doc/man/man3/SSL_set_incoming_stream_policy.3" => [ + "doc/man3/SSL_set_incoming_stream_policy.pod" + ], + "doc/man/man3/SSL_set_quic_tls_cbs.3" => [ + "doc/man3/SSL_set_quic_tls_cbs.pod" + ], "doc/man/man3/SSL_set_retry_verify.3" => [ "doc/man3/SSL_set_retry_verify.pod" ], "doc/man/man3/SSL_set_session.3" => [ "doc/man3/SSL_set_session.pod" ], + "doc/man/man3/SSL_set_session_secret_cb.3" => [ + "doc/man3/SSL_set_session_secret_cb.pod" + ], "doc/man/man3/SSL_set_shutdown.3" => [ "doc/man3/SSL_set_shutdown.pod" ], @@ -6142,6 +6973,12 @@ our %unified_info = ( "doc/man/man3/SSL_state_string.3" => [ "doc/man3/SSL_state_string.pod" ], + "doc/man/man3/SSL_stream_conclude.3" => [ + "doc/man3/SSL_stream_conclude.pod" + ], + "doc/man/man3/SSL_stream_reset.3" => [ + "doc/man3/SSL_stream_reset.pod" + ], "doc/man/man3/SSL_want.3" => [ "doc/man3/SSL_want.pod" ], @@ -6151,8 +6988,8 @@ our %unified_info = ( "doc/man/man3/TS_RESP_CTX_new.3" => [ "doc/man3/TS_RESP_CTX_new.pod" ], - "doc/man/man3/TS_VERIFY_CTX_set_certs.3" => [ - "doc/man3/TS_VERIFY_CTX_set_certs.pod" + "doc/man/man3/TS_VERIFY_CTX.3" => [ + "doc/man3/TS_VERIFY_CTX.pod" ], "doc/man/man3/UI_STRING.3" => [ "doc/man3/UI_STRING.pod" @@ -6172,6 +7009,21 @@ our %unified_info = ( "doc/man/man3/X509V3_set_ctx.3" => [ "doc/man3/X509V3_set_ctx.pod" ], + "doc/man/man3/X509_ACERT_add1_attr.3" => [ + "doc/man3/X509_ACERT_add1_attr.pod" + ], + "doc/man/man3/X509_ACERT_add_attr_nconf.3" => [ + "doc/man3/X509_ACERT_add_attr_nconf.pod" + ], + "doc/man/man3/X509_ACERT_get0_holder_baseCertId.3" => [ + "doc/man3/X509_ACERT_get0_holder_baseCertId.pod" + ], + "doc/man/man3/X509_ACERT_get_attr.3" => [ + "doc/man3/X509_ACERT_get_attr.pod" + ], + "doc/man/man3/X509_ACERT_print_ex.3" => [ + "doc/man3/X509_ACERT_print_ex.pod" + ], "doc/man/man3/X509_ALGOR_dup.3" => [ "doc/man3/X509_ALGOR_dup.pod" ], @@ -6220,6 +7072,9 @@ our %unified_info = ( "doc/man/man3/X509_SIG_get0.3" => [ "doc/man3/X509_SIG_get0.pod" ], + "doc/man/man3/X509_STORE_CTX_get_by_subject.3" => [ + "doc/man3/X509_STORE_CTX_get_by_subject.pod" + ], "doc/man/man3/X509_STORE_CTX_get_error.3" => [ "doc/man3/X509_STORE_CTX_get_error.pod" ], @@ -6286,6 +7141,9 @@ our %unified_info = ( "doc/man/man3/X509_get0_uids.3" => [ "doc/man3/X509_get0_uids.pod" ], + "doc/man/man3/X509_get_default_cert_file.3" => [ + "doc/man3/X509_get_default_cert_file.pod" + ], "doc/man/man3/X509_get_extension_flags.3" => [ "doc/man3/X509_get_extension_flags.pod" ], @@ -6409,9 +7267,15 @@ our %unified_info = ( "doc/man/man7/EVP_CIPHER-SM4.7" => [ "doc/man7/EVP_CIPHER-SM4.pod" ], + "doc/man/man7/EVP_KDF-ARGON2.7" => [ + "doc/man7/EVP_KDF-ARGON2.pod" + ], "doc/man/man7/EVP_KDF-HKDF.7" => [ "doc/man7/EVP_KDF-HKDF.pod" ], + "doc/man/man7/EVP_KDF-HMAC-DRBG.7" => [ + "doc/man7/EVP_KDF-HMAC-DRBG.pod" + ], "doc/man/man7/EVP_KDF-KB.7" => [ "doc/man7/EVP_KDF-KB.pod" ], @@ -6427,6 +7291,9 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-PKCS12KDF.7" => [ "doc/man7/EVP_KDF-PKCS12KDF.pod" ], + "doc/man/man7/EVP_KDF-PVKKDF.7" => [ + "doc/man7/EVP_KDF-PVKKDF.pod" + ], "doc/man/man7/EVP_KDF-SCRYPT.7" => [ "doc/man7/EVP_KDF-SCRYPT.pod" ], @@ -6451,9 +7318,18 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-X963.7" => [ "doc/man7/EVP_KDF-X963.pod" ], + "doc/man/man7/EVP_KEM-EC.7" => [ + "doc/man7/EVP_KEM-EC.pod" + ], + "doc/man/man7/EVP_KEM-ML-KEM.7" => [ + "doc/man7/EVP_KEM-ML-KEM.pod" + ], "doc/man/man7/EVP_KEM-RSA.7" => [ "doc/man7/EVP_KEM-RSA.pod" ], + "doc/man/man7/EVP_KEM-X25519.7" => [ + "doc/man7/EVP_KEM-X25519.pod" + ], "doc/man/man7/EVP_KEYEXCH-DH.7" => [ "doc/man7/EVP_KEYEXCH-DH.pod" ], @@ -6487,6 +7363,9 @@ our %unified_info = ( "doc/man/man7/EVP_MD-BLAKE2.7" => [ "doc/man7/EVP_MD-BLAKE2.pod" ], + "doc/man/man7/EVP_MD-KECCAK.7" => [ + "doc/man7/EVP_MD-KECCAK.pod" + ], "doc/man/man7/EVP_MD-MD2.7" => [ "doc/man7/EVP_MD-MD2.pod" ], @@ -6544,15 +7423,27 @@ our %unified_info = ( "doc/man/man7/EVP_PKEY-HMAC.7" => [ "doc/man7/EVP_PKEY-HMAC.pod" ], + "doc/man/man7/EVP_PKEY-ML-DSA.7" => [ + "doc/man7/EVP_PKEY-ML-DSA.pod" + ], + "doc/man/man7/EVP_PKEY-ML-KEM.7" => [ + "doc/man7/EVP_PKEY-ML-KEM.pod" + ], "doc/man/man7/EVP_PKEY-RSA.7" => [ "doc/man7/EVP_PKEY-RSA.pod" ], + "doc/man/man7/EVP_PKEY-SLH-DSA.7" => [ + "doc/man7/EVP_PKEY-SLH-DSA.pod" + ], "doc/man/man7/EVP_PKEY-SM2.7" => [ "doc/man7/EVP_PKEY-SM2.pod" ], "doc/man/man7/EVP_PKEY-X25519.7" => [ "doc/man7/EVP_PKEY-X25519.pod" ], + "doc/man/man7/EVP_RAND-CRNG-TEST.7" => [ + "doc/man7/EVP_RAND-CRNG-TEST.pod" + ], "doc/man/man7/EVP_RAND-CTR-DRBG.7" => [ "doc/man7/EVP_RAND-CTR-DRBG.pod" ], @@ -6562,6 +7453,9 @@ our %unified_info = ( "doc/man/man7/EVP_RAND-HMAC-DRBG.7" => [ "doc/man7/EVP_RAND-HMAC-DRBG.pod" ], + "doc/man/man7/EVP_RAND-JITTER.7" => [ + "doc/man7/EVP_RAND-JITTER.pod" + ], "doc/man/man7/EVP_RAND-SEED-SRC.7" => [ "doc/man7/EVP_RAND-SEED-SRC.pod" ], @@ -6583,9 +7477,15 @@ our %unified_info = ( "doc/man/man7/EVP_SIGNATURE-HMAC.7" => [ "doc/man7/EVP_SIGNATURE-HMAC.pod" ], + "doc/man/man7/EVP_SIGNATURE-ML-DSA.7" => [ + "doc/man7/EVP_SIGNATURE-ML-DSA.pod" + ], "doc/man/man7/EVP_SIGNATURE-RSA.7" => [ "doc/man7/EVP_SIGNATURE-RSA.pod" ], + "doc/man/man7/EVP_SIGNATURE-SLH-DSA.7" => [ + "doc/man7/EVP_SIGNATURE-SLH-DSA.pod" + ], "doc/man/man7/OSSL_PROVIDER-FIPS.7" => [ "doc/man7/OSSL_PROVIDER-FIPS.pod" ], @@ -6601,6 +7501,9 @@ our %unified_info = ( "doc/man/man7/OSSL_PROVIDER-null.7" => [ "doc/man7/OSSL_PROVIDER-null.pod" ], + "doc/man/man7/OSSL_STORE-winstore.7" => [ + "doc/man7/OSSL_STORE-winstore.pod" + ], "doc/man/man7/RAND.7" => [ "doc/man7/RAND.pod" ], @@ -6613,9 +7516,6 @@ our %unified_info = ( "doc/man/man7/bio.7" => [ "doc/man7/bio.pod" ], - "doc/man/man7/crypto.7" => [ - "doc/man7/crypto.pod" - ], "doc/man/man7/ct.7" => [ "doc/man7/ct.pod" ], @@ -6646,9 +7546,6 @@ our %unified_info = ( "doc/man/man7/life_cycle-rand.7" => [ "doc/man7/life_cycle-rand.pod" ], - "doc/man/man7/migration_guide.7" => [ - "doc/man7/migration_guide.pod" - ], "doc/man/man7/openssl-core.h.7" => [ "doc/man7/openssl-core.h.pod" ], @@ -6664,12 +7561,66 @@ our %unified_info = ( "doc/man/man7/openssl-glossary.7" => [ "doc/man7/openssl-glossary.pod" ], + "doc/man/man7/openssl-qlog.7" => [ + "doc/man7/openssl-qlog.pod" + ], + "doc/man/man7/openssl-quic-concurrency.7" => [ + "doc/man7/openssl-quic-concurrency.pod" + ], + "doc/man/man7/openssl-quic.7" => [ + "doc/man7/openssl-quic.pod" + ], "doc/man/man7/openssl-threads.7" => [ "doc/man7/openssl-threads.pod" ], "doc/man/man7/openssl_user_macros.7" => [ "doc/man7/openssl_user_macros.pod" ], + "doc/man/man7/ossl-guide-introduction.7" => [ + "doc/man7/ossl-guide-introduction.pod" + ], + "doc/man/man7/ossl-guide-libcrypto-introduction.7" => [ + "doc/man7/ossl-guide-libcrypto-introduction.pod" + ], + "doc/man/man7/ossl-guide-libraries-introduction.7" => [ + "doc/man7/ossl-guide-libraries-introduction.pod" + ], + "doc/man/man7/ossl-guide-libssl-introduction.7" => [ + "doc/man7/ossl-guide-libssl-introduction.pod" + ], + "doc/man/man7/ossl-guide-migration.7" => [ + "doc/man7/ossl-guide-migration.pod" + ], + "doc/man/man7/ossl-guide-quic-client-block.7" => [ + "doc/man7/ossl-guide-quic-client-block.pod" + ], + "doc/man/man7/ossl-guide-quic-client-non-block.7" => [ + "doc/man7/ossl-guide-quic-client-non-block.pod" + ], + "doc/man/man7/ossl-guide-quic-introduction.7" => [ + "doc/man7/ossl-guide-quic-introduction.pod" + ], + "doc/man/man7/ossl-guide-quic-multi-stream.7" => [ + "doc/man7/ossl-guide-quic-multi-stream.pod" + ], + "doc/man/man7/ossl-guide-quic-server-block.7" => [ + "doc/man7/ossl-guide-quic-server-block.pod" + ], + "doc/man/man7/ossl-guide-quic-server-non-block.7" => [ + "doc/man7/ossl-guide-quic-server-non-block.pod" + ], + "doc/man/man7/ossl-guide-tls-client-block.7" => [ + "doc/man7/ossl-guide-tls-client-block.pod" + ], + "doc/man/man7/ossl-guide-tls-client-non-block.7" => [ + "doc/man7/ossl-guide-tls-client-non-block.pod" + ], + "doc/man/man7/ossl-guide-tls-introduction.7" => [ + "doc/man7/ossl-guide-tls-introduction.pod" + ], + "doc/man/man7/ossl-guide-tls-server-block.7" => [ + "doc/man7/ossl-guide-tls-server-block.pod" + ], "doc/man/man7/ossl_store-file.7" => [ "doc/man7/ossl_store-file.pod" ], @@ -6724,6 +7675,9 @@ our %unified_info = ( "doc/man/man7/provider-signature.7" => [ "doc/man7/provider-signature.pod" ], + "doc/man/man7/provider-skeymgmt.7" => [ + "doc/man7/provider-skeymgmt.pod" + ], "doc/man/man7/provider-storemgmt.7" => [ "doc/man7/provider-storemgmt.pod" ], @@ -6733,9 +7687,6 @@ our %unified_info = ( "doc/man/man7/proxy-certificates.7" => [ "doc/man7/proxy-certificates.pod" ], - "doc/man/man7/ssl.7" => [ - "doc/man7/ssl.pod" - ], "doc/man/man7/x509.7" => [ "doc/man7/x509.pod" ], @@ -6915,6 +7866,10 @@ our %unified_info = ( "doc/man1/openssl-sess_id.pod.in", "doc/perlvars.pm" ], + "doc/man1/openssl-skeyutl.pod" => [ + "doc/man1/openssl-skeyutl.pod.in", + "doc/perlvars.pm" + ], "doc/man1/openssl-smime.pod" => [ "doc/man1/openssl-smime.pod.in", "doc/perlvars.pm" @@ -6954,6 +7909,27 @@ our %unified_info = ( "doc/man7/openssl_user_macros.pod" => [ "doc/man7/openssl_user_macros.pod.in" ], + "exporters/OpenSSLConfig.cmake" => [ + "installdata.pm" + ], + "exporters/OpenSSLConfigVersion.cmake" => [ + "exporters/OpenSSLConfig.cmake", + "installdata.pm" + ], + "exporters/libcrypto.pc" => [ + "installdata.pm" + ], + "exporters/libssl.pc" => [ + "installdata.pm" + ], + "exporters/openssl.pc" => [ + "exporters/libcrypto.pc", + "exporters/libssl.pc", + "installdata.pm" + ], + "fuzz/acert-test" => [ + "libcrypto" + ], "fuzz/asn1-test" => [ "libcrypto", "libssl" @@ -6986,16 +7962,92 @@ our %unified_info = ( "fuzz/ct-test" => [ "libcrypto" ], + "fuzz/decoder-test" => [ + "libcrypto" + ], + "fuzz/dtlsclient-test" => [ + "libcrypto", + "libssl" + ], + "fuzz/dtlsserver-test" => [ + "libcrypto", + "libssl" + ], + "fuzz/hashtable-test" => [ + "libcrypto.a" + ], + "fuzz/ml-dsa-test" => [ + "libcrypto.a" + ], + "fuzz/ml-kem-test" => [ + "libcrypto.a" + ], + "fuzz/pem-test" => [ + "libcrypto.a" + ], + "fuzz/provider-test" => [ + "libcrypto" + ], + "fuzz/punycode-test" => [ + "libcrypto.a" + ], + "fuzz/quic-client-test" => [ + "libcrypto.a", + "libssl.a" + ], + "fuzz/quic-lcidm-test" => [ + "libcrypto.a", + "libssl.a" + ], + "fuzz/quic-rcidm-test" => [ + "libcrypto.a", + "libssl.a" + ], + "fuzz/quic-server-test" => [ + "libcrypto.a", + "libssl.a" + ], + "fuzz/quic-srtm-test" => [ + "libcrypto.a", + "libssl.a" + ], "fuzz/server-test" => [ "libcrypto", "libssl" ], + "fuzz/slh-dsa-test" => [ + "libcrypto.a" + ], + "fuzz/smime-test" => [ + "libcrypto", + "libssl" + ], + "fuzz/v3name-test" => [ + "libcrypto.a" + ], "fuzz/x509-test" => [ "libcrypto" ], + "include/internal/param_names.h" => [ + "util/perl|OpenSSL/paramnames.pm" + ], + "include/openssl/core_names.h" => [ + "util/perl|OpenSSL/paramnames.pm" + ], + "libcrypto.pc" => [ + "builddata.pm" + ], "libssl" => [ "libcrypto" ], + "libssl.pc" => [ + "builddata.pm" + ], + "openssl.pc" => [ + "builddata.pm", + "libcrypto.pc", + "libssl.pc" + ], "providers/common/der/der_digests_gen.c" => [ "providers/common/der/DIGESTS.asn1", "providers/common/der/NIST.asn1", @@ -7013,11 +8065,19 @@ our %unified_info = ( "providers/common/der/ECX.asn1", "providers/common/der/oids_to_c.pm" ], + "providers/common/der/der_ml_dsa_gen.c" => [ + "providers/common/der/ML_DSA.asn1", + "providers/common/der/oids_to_c.pm" + ], "providers/common/der/der_rsa_gen.c" => [ "providers/common/der/NIST.asn1", "providers/common/der/RSA.asn1", "providers/common/der/oids_to_c.pm" ], + "providers/common/der/der_slh_dsa_gen.c" => [ + "providers/common/der/SLH_DSA.asn1", + "providers/common/der/oids_to_c.pm" + ], "providers/common/der/der_sm2_gen.c" => [ "providers/common/der/SM2.asn1", "providers/common/der/oids_to_c.pm" @@ -7057,6 +8117,12 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ecx_key.o" => [ "providers/common/include/prov/der_ecx.h" ], + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o" => [ + "providers/common/include/prov/der_ml_dsa.h" + ], + "providers/common/der/libcommon-lib-der_ml_dsa_key.o" => [ + "providers/common/include/prov/der_ml_dsa.h" + ], "providers/common/der/libcommon-lib-der_rsa_gen.o" => [ "providers/common/include/prov/der_rsa.h" ], @@ -7064,6 +8130,12 @@ our %unified_info = ( "providers/common/include/prov/der_digests.h", "providers/common/include/prov/der_rsa.h" ], + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o" => [ + "providers/common/include/prov/der_slh_dsa.h" + ], + "providers/common/der/libcommon-lib-der_slh_dsa_key.o" => [ + "providers/common/include/prov/der_slh_dsa.h" + ], "providers/common/der/libcommon-lib-der_wrap_gen.o" => [ "providers/common/include/prov/der_wrap.h" ], @@ -7103,11 +8175,19 @@ our %unified_info = ( "providers/common/der/ECX.asn1", "providers/common/der/oids_to_c.pm" ], + "providers/common/include/prov/der_ml_dsa.h" => [ + "providers/common/der/ML_DSA.asn1", + "providers/common/der/oids_to_c.pm" + ], "providers/common/include/prov/der_rsa.h" => [ "providers/common/der/NIST.asn1", "providers/common/der/RSA.asn1", "providers/common/der/oids_to_c.pm" ], + "providers/common/include/prov/der_slh_dsa.h" => [ + "providers/common/der/SLH_DSA.asn1", + "providers/common/der/oids_to_c.pm" + ], "providers/common/include/prov/der_sm2.h" => [ "providers/common/der/SM2.asn1", "providers/common/der/oids_to_c.pm" @@ -7140,9 +8220,15 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-eddsa_sig.o" => [ "providers/common/include/prov/der_ecx.h" ], + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o" => [ + "providers/common/include/prov/der_ml_dsa.h" + ], "providers/implementations/signature/libdefault-lib-rsa_sig.o" => [ "providers/common/include/prov/der_rsa.h" ], + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o" => [ + "providers/common/include/prov/der_slh_dsa.h" + ], "providers/implementations/signature/libdefault-lib-sm2_sig.o" => [ "providers/common/include/prov/der_sm2.h" ], @@ -7155,9 +8241,15 @@ our %unified_info = ( "providers/implementations/signature/libfips-lib-eddsa_sig.o" => [ "providers/common/include/prov/der_ecx.h" ], + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o" => [ + "providers/common/include/prov/der_ml_dsa.h" + ], "providers/implementations/signature/libfips-lib-rsa_sig.o" => [ "providers/common/include/prov/der_rsa.h" ], + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o" => [ + "providers/common/include/prov/der_slh_dsa.h" + ], "providers/legacy" => [ "libcrypto", "providers/liblegacy.a" @@ -7235,6 +8327,14 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/bio_addr_test" => [ + "libcrypto", + "test/libtestutil.a" + ], + "test/bio_base64_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/bio_callback_test" => [ "libcrypto", "test/libtestutil.a" @@ -7243,6 +8343,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/bio_dgram_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/bio_enc_test" => [ "libcrypto", "test/libtestutil.a" @@ -7251,6 +8355,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/bio_meth_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/bio_prefix_text" => [ "libcrypto", "test/libtestutil.a" @@ -7263,6 +8371,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/bio_tfo_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/bioprinttest" => [ "libcrypto", "test/libtestutil.a" @@ -7275,6 +8387,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/build_wincrypt_test" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_aes" => [ "libcrypto", "libssl" @@ -7295,6 +8411,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_byteorder" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_camellia" => [ "libcrypto", "libssl" @@ -7327,10 +8447,6 @@ our %unified_info = ( "libcrypto", "libssl" ], - "test/buildtest_c_core_names" => [ - "libcrypto", - "libssl" - ], "test/buildtest_c_core_object" => [ "libcrypto", "libssl" @@ -7363,6 +8479,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_e_ostime" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_ebcdic" => [ "libcrypto", "libssl" @@ -7399,6 +8519,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_hpke" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_http" => [ "libcrypto", "libssl" @@ -7407,6 +8531,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_indicator" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_kdf" => [ "libcrypto", "libssl" @@ -7427,6 +8555,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_ml_kem" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_modes" => [ "libcrypto", "libssl" @@ -7467,6 +8599,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_quic" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_rand" => [ "libcrypto", "libssl" @@ -7523,6 +8659,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_thread" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_tls1" => [ "libcrypto", "libssl" @@ -7543,10 +8683,23 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/byteorder_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], + "test/ca_internals_test" => [ + "libssl", + "test/libtestutil.a" + ], "test/casttest" => [ "libcrypto", "test/libtestutil.a" ], + "test/cert_comp_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], "test/chacha_internal_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -7660,6 +8813,10 @@ our %unified_info = ( "libssl", "test/libtestutil.a" ], + "test/decoder_propq_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/defltfips_test" => [ "libcrypto", "test/libtestutil.a" @@ -7716,6 +8873,8 @@ our %unified_info = ( ], "test/endecode_test" => [ "libcrypto.a", + "providers/libcommon.a", + "providers/liblegacy.a", "test/libtestutil.a" ], "test/endecoder_legacy_test" => [ @@ -7759,6 +8918,10 @@ our %unified_info = ( "test/evp_pkey_ctx_new_from_name" => [ "libcrypto" ], + "test/evp_pkey_dhkem_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/evp_pkey_dparams_test" => [ "libcrypto", "test/libtestutil.a" @@ -7767,10 +8930,18 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/evp_skey_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/evp_test" => [ "libcrypto", "test/libtestutil.a" ], + "test/evp_xof_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/exdatatest" => [ "libcrypto", "test/libtestutil.a" @@ -7809,6 +8980,10 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/hpke_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/http_test" => [ "libcrypto", "test/libtestutil.a" @@ -7821,17 +8996,25 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/json_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], "test/keymgmt_internal_test" => [ "libcrypto.a", "test/libtestutil.a" ], "test/lhash_test" => [ - "libcrypto", + "libcrypto.a", "test/libtestutil.a" ], "test/libtestutil.a" => [ "libcrypto" ], + "test/list_test" => [ + "test/libtestutil.a" + ], "test/localetest" => [ "libcrypto", "test/libtestutil.a" @@ -7844,10 +9027,26 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/membio_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/memleaktest" => [ "libcrypto", "test/libtestutil.a" ], + "test/ml_dsa_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], + "test/ml_kem_evp_extra_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], + "test/ml_kem_internal_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/modes_internal_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -7872,6 +9071,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/pairwise_fail_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/param_build_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -7904,6 +9107,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/pkcs12_api_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/pkcs12_format_test" => [ "libcrypto", "test/libtestutil.a" @@ -7924,6 +9131,11 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/priority_queue_test" => [ + "libcrypto", + "libssl.a", + "test/libtestutil.a" + ], "test/property_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -7936,6 +9148,10 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/provider_default_search_path_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/provider_fallback_test" => [ "libcrypto", "test/libtestutil.a" @@ -7960,12 +9176,122 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/quic_ackm_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_cc_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_cfq_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_client_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_fc_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_fifd_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_lcidm_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_multistream_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_newcid_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_qlog_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_radix_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_rcidm_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_record_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_srt_gen_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_srtm_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_stream_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_tserver_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_txp_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_txpim_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_wire_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quicapitest" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quicfaultstest" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], "test/rand_status_test" => [ "libcrypto", "test/libtestutil.a" ], "test/rand_test" => [ - "libcrypto", + "libcrypto.a", "test/libtestutil.a" ], "test/rc2test" => [ @@ -7980,7 +9306,7 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], - "test/rdrand_sanitytest" => [ + "test/rdcpu_sanitytest" => [ "libcrypto.a", "test/libtestutil.a" ], @@ -7989,6 +9315,11 @@ our %unified_info = ( "libssl", "test/libtestutil.a" ], + "test/rpktest" => [ + "libcrypto", + "libssl", + "test/libtestutil.a" + ], "test/rsa_mp_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -8001,10 +9332,18 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], - "test/sanitytest" => [ + "test/rsa_x931_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], + "test/safe_math_test" => [ "libcrypto", "test/libtestutil.a" ], + "test/sanitytest" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/secmemtest" => [ "libcrypto", "test/libtestutil.a" @@ -8022,6 +9361,10 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/slh_dsa_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/sm2_internal_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -8051,6 +9394,11 @@ our %unified_info = ( "libssl", "test/libtestutil.a" ], + "test/ssl_handshake_rtt_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], "test/ssl_old_test" => [ "libcrypto.a", "libssl.a", @@ -8067,8 +9415,8 @@ our %unified_info = ( "test/libtestutil.a" ], "test/sslapitest" => [ - "libcrypto", - "libssl", + "libcrypto.a", + "libssl.a", "test/libtestutil.a" ], "test/sslbuffertest" => [ @@ -8085,6 +9433,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/strtoultest" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/sysdefaulttest" => [ "libcrypto", "libssl", @@ -8094,8 +9446,12 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/threadpool_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/threadstest" => [ - "libcrypto", + "libcrypto.a", "test/libtestutil.a" ], "test/threadstest_fips" => [ @@ -8106,6 +9462,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/time_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/tls13ccstest" => [ "libcrypto", "libssl", @@ -8116,6 +9476,11 @@ our %unified_info = ( "libssl.a", "test/libtestutil.a" ], + "test/tls13groupselection_test" => [ + "libcrypto", + "libssl", + "test/libtestutil.a" + ], "test/trace_api_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -8153,6 +9518,10 @@ our %unified_info = ( "libssl.a", "test/libtestutil.a" ], + "test/x509_acert_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/x509_check_cert_pkey_test" => [ "libcrypto", "test/libtestutil.a" @@ -8165,6 +9534,18 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/x509_load_cert_file_test" => [ + "libcrypto", + "test/libtestutil.a" + ], + "test/x509_req_test" => [ + "libcrypto", + "test/libtestutil.a" + ], + "test/x509_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/x509_time_test" => [ "libcrypto", "test/libtestutil.a" @@ -8179,9 +9560,13 @@ our %unified_info = ( }, "dirinfo" => { "apps" => { + "deps" => [ + "apps/ca_internals_test-bin-ca.o" + ], "products" => { "bin" => [ - "apps/openssl" + "apps/openssl", + "test/ca_internals_test" ], "script" => [ "apps/CA.pl", @@ -8192,6 +9577,14 @@ our %unified_info = ( "apps/lib" => { "deps" => [ "apps/lib/openssl-bin-cmp_mock_srv.o", + "apps/lib/ca_internals_test-bin-app_libctx.o", + "apps/lib/ca_internals_test-bin-app_provider.o", + "apps/lib/ca_internals_test-bin-app_rand.o", + "apps/lib/ca_internals_test-bin-app_x509.o", + "apps/lib/ca_internals_test-bin-apps.o", + "apps/lib/ca_internals_test-bin-apps_ui.o", + "apps/lib/ca_internals_test-bin-engine.o", + "apps/lib/ca_internals_test-bin-fmt.o", "apps/lib/cmp_client_test-bin-cmp_mock_srv.o", "apps/lib/uitest-bin-apps_ui.o", "apps/lib/libapps-lib-app_libctx.o", @@ -8200,12 +9593,14 @@ our %unified_info = ( "apps/lib/libapps-lib-app_rand.o", "apps/lib/libapps-lib-app_x509.o", "apps/lib/libapps-lib-apps.o", + "apps/lib/libapps-lib-apps_opt_printf.o", "apps/lib/libapps-lib-apps_ui.o", "apps/lib/libapps-lib-columns.o", "apps/lib/libapps-lib-engine.o", "apps/lib/libapps-lib-engine_loader.o", "apps/lib/libapps-lib-fmt.o", "apps/lib/libapps-lib-http_server.o", + "apps/lib/libapps-lib-log.o", "apps/lib/libapps-lib-names.o", "apps/lib/libapps-lib-opt.o", "apps/lib/libapps-lib-s_cb.o", @@ -8216,6 +9611,7 @@ our %unified_info = ( "products" => { "bin" => [ "apps/openssl", + "test/ca_internals_test", "test/cmp_client_test", "test/uitest" ], @@ -8227,8 +9623,12 @@ our %unified_info = ( }, "crypto" => { "deps" => [ + "crypto/asn1_time_test-bin-ctype.o", + "crypto/ca_internals_test-bin-ctype.o", + "crypto/packettest-bin-quic_vlint.o", "crypto/libcrypto-lib-asn1_dsa.o", "crypto/libcrypto-lib-bsearch.o", + "crypto/libcrypto-lib-comp_methods.o", "crypto/libcrypto-lib-context.o", "crypto/libcrypto-lib-core_algorithm.o", "crypto/libcrypto-lib-core_fetch.o", @@ -8238,10 +9638,13 @@ our %unified_info = ( "crypto/libcrypto-lib-cryptlib.o", "crypto/libcrypto-lib-ctype.o", "crypto/libcrypto-lib-cversion.o", + "crypto/libcrypto-lib-defaults.o", "crypto/libcrypto-lib-der_writer.o", + "crypto/libcrypto-lib-deterministic_nonce.o", "crypto/libcrypto-lib-ebcdic.o", "crypto/libcrypto-lib-ex_data.o", "crypto/libcrypto-lib-getenv.o", + "crypto/libcrypto-lib-indicator_core.o", "crypto/libcrypto-lib-info.o", "crypto/libcrypto-lib-init.o", "crypto/libcrypto-lib-initthread.o", @@ -8258,6 +9661,7 @@ our %unified_info = ( "crypto/libcrypto-lib-params.o", "crypto/libcrypto-lib-params_dup.o", "crypto/libcrypto-lib-params_from_text.o", + "crypto/libcrypto-lib-params_idx.o", "crypto/libcrypto-lib-passphrase.o", "crypto/libcrypto-lib-provider.o", "crypto/libcrypto-lib-provider_child.o", @@ -8265,12 +9669,16 @@ our %unified_info = ( "crypto/libcrypto-lib-provider_core.o", "crypto/libcrypto-lib-provider_predefined.o", "crypto/libcrypto-lib-punycode.o", + "crypto/libcrypto-lib-quic_vlint.o", "crypto/libcrypto-lib-self_test_core.o", + "crypto/libcrypto-lib-sleep.o", "crypto/libcrypto-lib-sparse_array.o", + "crypto/libcrypto-lib-ssl_err.o", "crypto/libcrypto-lib-threads_lib.o", "crypto/libcrypto-lib-threads_none.o", "crypto/libcrypto-lib-threads_pthread.o", "crypto/libcrypto-lib-threads_win.o", + "crypto/libcrypto-lib-time.o", "crypto/libcrypto-lib-trace.o", "crypto/libcrypto-lib-uid.o", "crypto/libcrypto-lib-x86_64cpuid.o", @@ -8293,6 +9701,7 @@ our %unified_info = ( "crypto/libfips-lib-params.o", "crypto/libfips-lib-params_dup.o", "crypto/libfips-lib-params_from_text.o", + "crypto/libfips-lib-params_idx.o", "crypto/libfips-lib-provider_core.o", "crypto/libfips-lib-provider_predefined.o", "crypto/libfips-lib-self_test_core.o", @@ -8301,9 +9710,15 @@ our %unified_info = ( "crypto/libfips-lib-threads_none.o", "crypto/libfips-lib-threads_pthread.o", "crypto/libfips-lib-threads_win.o", + "crypto/libfips-lib-time.o", "crypto/libfips-lib-x86_64cpuid.o" ], "products" => { + "bin" => [ + "test/asn1_time_test", + "test/ca_internals_test", + "test/packettest" + ], "lib" => [ "libcrypto", "providers/libfips.a" @@ -8323,6 +9738,7 @@ our %unified_info = ( "crypto/aes/libcrypto-lib-aesni-sha1-x86_64.o", "crypto/aes/libcrypto-lib-aesni-sha256-x86_64.o", "crypto/aes/libcrypto-lib-aesni-x86_64.o", + "crypto/aes/libcrypto-lib-aesni-xts-avx512.o", "crypto/aes/libcrypto-lib-bsaes-x86_64.o", "crypto/aes/libcrypto-lib-vpaes-x86_64.o", "crypto/aes/libfips-lib-aes-x86_64.o", @@ -8332,6 +9748,7 @@ our %unified_info = ( "crypto/aes/libfips-lib-aesni-sha1-x86_64.o", "crypto/aes/libfips-lib-aesni-sha256-x86_64.o", "crypto/aes/libfips-lib-aesni-x86_64.o", + "crypto/aes/libfips-lib-aesni-xts-avx512.o", "crypto/aes/libfips-lib-bsaes-x86_64.o", "crypto/aes/libfips-lib-vpaes-x86_64.o" ], @@ -8354,6 +9771,8 @@ our %unified_info = ( }, "crypto/asn1" => { "deps" => [ + "crypto/asn1/asn1_time_test-bin-a_time.o", + "crypto/asn1/ca_internals_test-bin-a_time.o", "crypto/asn1/libcrypto-lib-a_bitstr.o", "crypto/asn1/libcrypto-lib-a_d2i_fp.o", "crypto/asn1/libcrypto-lib-a_digest.o", @@ -8420,6 +9839,10 @@ our %unified_info = ( "crypto/asn1/libcrypto-lib-x_val.o" ], "products" => { + "bin" => [ + "test/asn1_time_test", + "test/ca_internals_test" + ], "lib" => [ "libcrypto" ] @@ -8485,6 +9908,7 @@ our %unified_info = ( "crypto/bio/libcrypto-lib-bss_conn.o", "crypto/bio/libcrypto-lib-bss_core.o", "crypto/bio/libcrypto-lib-bss_dgram.o", + "crypto/bio/libcrypto-lib-bss_dgram_pair.o", "crypto/bio/libcrypto-lib-bss_fd.o", "crypto/bio/libcrypto-lib-bss_file.o", "crypto/bio/libcrypto-lib-bss_log.o", @@ -8533,8 +9957,13 @@ our %unified_info = ( "crypto/bn/libcrypto-lib-bn_srp.o", "crypto/bn/libcrypto-lib-bn_word.o", "crypto/bn/libcrypto-lib-bn_x931p.o", + "crypto/bn/libcrypto-lib-rsaz-2k-avx512.o", + "crypto/bn/libcrypto-lib-rsaz-2k-avxifma.o", + "crypto/bn/libcrypto-lib-rsaz-3k-avx512.o", + "crypto/bn/libcrypto-lib-rsaz-3k-avxifma.o", + "crypto/bn/libcrypto-lib-rsaz-4k-avx512.o", + "crypto/bn/libcrypto-lib-rsaz-4k-avxifma.o", "crypto/bn/libcrypto-lib-rsaz-avx2.o", - "crypto/bn/libcrypto-lib-rsaz-avx512.o", "crypto/bn/libcrypto-lib-rsaz-x86_64.o", "crypto/bn/libcrypto-lib-rsaz_exp.o", "crypto/bn/libcrypto-lib-rsaz_exp_x2.o", @@ -8568,8 +9997,13 @@ our %unified_info = ( "crypto/bn/libfips-lib-bn_sqr.o", "crypto/bn/libfips-lib-bn_sqrt.o", "crypto/bn/libfips-lib-bn_word.o", + "crypto/bn/libfips-lib-rsaz-2k-avx512.o", + "crypto/bn/libfips-lib-rsaz-2k-avxifma.o", + "crypto/bn/libfips-lib-rsaz-3k-avx512.o", + "crypto/bn/libfips-lib-rsaz-3k-avxifma.o", + "crypto/bn/libfips-lib-rsaz-4k-avx512.o", + "crypto/bn/libfips-lib-rsaz-4k-avxifma.o", "crypto/bn/libfips-lib-rsaz-avx2.o", - "crypto/bn/libfips-lib-rsaz-avx512.o", "crypto/bn/libfips-lib-rsaz-x86_64.o", "crypto/bn/libfips-lib-rsaz_exp.o", "crypto/bn/libfips-lib-rsaz_exp_x2.o", @@ -8666,6 +10100,7 @@ our %unified_info = ( "crypto/cmp/libcrypto-lib-cmp_client.o", "crypto/cmp/libcrypto-lib-cmp_ctx.o", "crypto/cmp/libcrypto-lib-cmp_err.o", + "crypto/cmp/libcrypto-lib-cmp_genm.o", "crypto/cmp/libcrypto-lib-cmp_hdr.o", "crypto/cmp/libcrypto-lib-cmp_http.o", "crypto/cmp/libcrypto-lib-cmp_msg.o", @@ -9039,7 +10474,9 @@ our %unified_info = ( "crypto/err/libcrypto-lib-err_all.o", "crypto/err/libcrypto-lib-err_all_legacy.o", "crypto/err/libcrypto-lib-err_blocks.o", - "crypto/err/libcrypto-lib-err_prn.o" + "crypto/err/libcrypto-lib-err_mark.o", + "crypto/err/libcrypto-lib-err_prn.o", + "crypto/err/libcrypto-lib-err_save.o" ], "products" => { "lib" => [ @@ -9140,7 +10577,9 @@ our %unified_info = ( "crypto/evp/libcrypto-lib-pmeth_check.o", "crypto/evp/libcrypto-lib-pmeth_gn.o", "crypto/evp/libcrypto-lib-pmeth_lib.o", + "crypto/evp/libcrypto-lib-s_lib.o", "crypto/evp/libcrypto-lib-signature.o", + "crypto/evp/libcrypto-lib-skeymgmt_meth.o", "crypto/evp/libfips-lib-asymcipher.o", "crypto/evp/libfips-lib-dh_support.o", "crypto/evp/libfips-lib-digest.o", @@ -9156,14 +10595,15 @@ our %unified_info = ( "crypto/evp/libfips-lib-kem.o", "crypto/evp/libfips-lib-keymgmt_lib.o", "crypto/evp/libfips-lib-keymgmt_meth.o", - "crypto/evp/libfips-lib-m_sigver.o", "crypto/evp/libfips-lib-mac_lib.o", "crypto/evp/libfips-lib-mac_meth.o", "crypto/evp/libfips-lib-p_lib.o", "crypto/evp/libfips-lib-pmeth_check.o", "crypto/evp/libfips-lib-pmeth_gn.o", "crypto/evp/libfips-lib-pmeth_lib.o", - "crypto/evp/libfips-lib-signature.o" + "crypto/evp/libfips-lib-s_lib.o", + "crypto/evp/libfips-lib-signature.o", + "crypto/evp/libfips-lib-skeymgmt_meth.o" ], "products" => { "lib" => [ @@ -9196,6 +10636,20 @@ our %unified_info = ( ] } }, + "crypto/hashtable" => { + "deps" => [ + "crypto/hashtable/libcrypto-lib-hashfunc.o", + "crypto/hashtable/libcrypto-lib-hashtable.o", + "crypto/hashtable/libfips-lib-hashfunc.o", + "crypto/hashtable/libfips-lib-hashtable.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, "crypto/hmac" => { "deps" => [ "crypto/hmac/libcrypto-lib-hmac.o", @@ -9208,6 +10662,17 @@ our %unified_info = ( ] } }, + "crypto/hpke" => { + "deps" => [ + "crypto/hpke/libcrypto-lib-hpke.o", + "crypto/hpke/libcrypto-lib-hpke_util.o" + ], + "products" => { + "lib" => [ + "libcrypto" + ] + } + }, "crypto/http" => { "deps" => [ "crypto/http/libcrypto-lib-http_client.o", @@ -9292,8 +10757,47 @@ our %unified_info = ( ] } }, + "crypto/ml_dsa" => { + "deps" => [ + "crypto/ml_dsa/libcrypto-lib-ml_dsa_encoders.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key_compress.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_matrix.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_ntt.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_params.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sample.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sign.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_encoders.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_key.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_key_compress.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_matrix.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_ntt.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_params.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_sample.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_sign.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, + "crypto/ml_kem" => { + "deps" => [ + "crypto/ml_kem/libcrypto-lib-ml_kem.o", + "crypto/ml_kem/libfips-lib-ml_kem.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, "crypto/modes" => { "deps" => [ + "crypto/modes/libcrypto-lib-aes-gcm-avx512.o", "crypto/modes/libcrypto-lib-aesni-gcm-x86_64.o", "crypto/modes/libcrypto-lib-cbc128.o", "crypto/modes/libcrypto-lib-ccm128.o", @@ -9307,6 +10811,8 @@ our %unified_info = ( "crypto/modes/libcrypto-lib-siv128.o", "crypto/modes/libcrypto-lib-wrap128.o", "crypto/modes/libcrypto-lib-xts128.o", + "crypto/modes/libcrypto-lib-xts128gb.o", + "crypto/modes/libfips-lib-aes-gcm-avx512.o", "crypto/modes/libfips-lib-aesni-gcm-x86_64.o", "crypto/modes/libfips-lib-cbc128.o", "crypto/modes/libfips-lib-ccm128.o", @@ -9316,7 +10822,8 @@ our %unified_info = ( "crypto/modes/libfips-lib-ghash-x86_64.o", "crypto/modes/libfips-lib-ofb128.o", "crypto/modes/libfips-lib-wrap128.o", - "crypto/modes/libfips-lib-xts128.o" + "crypto/modes/libfips-lib-xts128.o", + "crypto/modes/libfips-lib-xts128gb.o" ], "products" => { "lib" => [ @@ -9460,6 +10967,7 @@ our %unified_info = ( "crypto/rand/libcrypto-lib-rand_lib.o", "crypto/rand/libcrypto-lib-rand_meth.o", "crypto/rand/libcrypto-lib-rand_pool.o", + "crypto/rand/libcrypto-lib-rand_uniform.o", "crypto/rand/libcrypto-lib-randfile.o", "crypto/rand/libfips-lib-rand_lib.o" ], @@ -9614,6 +11122,36 @@ our %unified_info = ( ] } }, + "crypto/slh_dsa" => { + "deps" => [ + "crypto/slh_dsa/libcrypto-lib-slh_adrs.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa_hash_ctx.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa_key.o", + "crypto/slh_dsa/libcrypto-lib-slh_fors.o", + "crypto/slh_dsa/libcrypto-lib-slh_hash.o", + "crypto/slh_dsa/libcrypto-lib-slh_hypertree.o", + "crypto/slh_dsa/libcrypto-lib-slh_params.o", + "crypto/slh_dsa/libcrypto-lib-slh_wots.o", + "crypto/slh_dsa/libcrypto-lib-slh_xmss.o", + "crypto/slh_dsa/libfips-lib-slh_adrs.o", + "crypto/slh_dsa/libfips-lib-slh_dsa.o", + "crypto/slh_dsa/libfips-lib-slh_dsa_hash_ctx.o", + "crypto/slh_dsa/libfips-lib-slh_dsa_key.o", + "crypto/slh_dsa/libfips-lib-slh_fors.o", + "crypto/slh_dsa/libfips-lib-slh_hash.o", + "crypto/slh_dsa/libfips-lib-slh_hypertree.o", + "crypto/slh_dsa/libfips-lib-slh_params.o", + "crypto/slh_dsa/libfips-lib-slh_wots.o", + "crypto/slh_dsa/libfips-lib-slh_xmss.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, "crypto/sm2" => { "deps" => [ "crypto/sm2/libcrypto-lib-sm2_crypt.o", @@ -9687,6 +11225,38 @@ our %unified_info = ( ] } }, + "crypto/thread" => { + "deps" => [ + "crypto/thread/libcrypto-lib-api.o", + "crypto/thread/libcrypto-lib-arch.o", + "crypto/thread/libcrypto-lib-internal.o", + "crypto/thread/libfips-lib-api.o", + "crypto/thread/libfips-lib-arch.o", + "crypto/thread/libfips-lib-internal.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, + "crypto/thread/arch" => { + "deps" => [ + "crypto/thread/arch/libcrypto-lib-thread_none.o", + "crypto/thread/arch/libcrypto-lib-thread_posix.o", + "crypto/thread/arch/libcrypto-lib-thread_win.o", + "crypto/thread/arch/libfips-lib-thread_none.o", + "crypto/thread/arch/libfips-lib-thread_posix.o", + "crypto/thread/arch/libfips-lib-thread_win.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, "crypto/ts" => { "deps" => [ "crypto/ts/libcrypto-lib-ts_asn1.o", @@ -9753,14 +11323,22 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-pcy_map.o", "crypto/x509/libcrypto-lib-pcy_node.o", "crypto/x509/libcrypto-lib-pcy_tree.o", + "crypto/x509/libcrypto-lib-t_acert.o", "crypto/x509/libcrypto-lib-t_crl.o", "crypto/x509/libcrypto-lib-t_req.o", "crypto/x509/libcrypto-lib-t_x509.o", + "crypto/x509/libcrypto-lib-v3_aaa.o", + "crypto/x509/libcrypto-lib-v3_ac_tgt.o", "crypto/x509/libcrypto-lib-v3_addr.o", "crypto/x509/libcrypto-lib-v3_admis.o", "crypto/x509/libcrypto-lib-v3_akeya.o", "crypto/x509/libcrypto-lib-v3_akid.o", "crypto/x509/libcrypto-lib-v3_asid.o", + "crypto/x509/libcrypto-lib-v3_attrdesc.o", + "crypto/x509/libcrypto-lib-v3_attrmap.o", + "crypto/x509/libcrypto-lib-v3_audit_id.o", + "crypto/x509/libcrypto-lib-v3_authattid.o", + "crypto/x509/libcrypto-lib-v3_battcons.o", "crypto/x509/libcrypto-lib-v3_bcons.o", "crypto/x509/libcrypto-lib-v3_bitst.o", "crypto/x509/libcrypto-lib-v3_conf.o", @@ -9769,12 +11347,17 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_enum.o", "crypto/x509/libcrypto-lib-v3_extku.o", "crypto/x509/libcrypto-lib-v3_genn.o", + "crypto/x509/libcrypto-lib-v3_group_ac.o", "crypto/x509/libcrypto-lib-v3_ia5.o", + "crypto/x509/libcrypto-lib-v3_ind_iss.o", "crypto/x509/libcrypto-lib-v3_info.o", "crypto/x509/libcrypto-lib-v3_int.o", + "crypto/x509/libcrypto-lib-v3_iobo.o", "crypto/x509/libcrypto-lib-v3_ist.o", "crypto/x509/libcrypto-lib-v3_lib.o", "crypto/x509/libcrypto-lib-v3_ncons.o", + "crypto/x509/libcrypto-lib-v3_no_ass.o", + "crypto/x509/libcrypto-lib-v3_no_rev_avail.o", "crypto/x509/libcrypto-lib-v3_pci.o", "crypto/x509/libcrypto-lib-v3_pcia.o", "crypto/x509/libcrypto-lib-v3_pcons.o", @@ -9782,13 +11365,20 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_pmaps.o", "crypto/x509/libcrypto-lib-v3_prn.o", "crypto/x509/libcrypto-lib-v3_purp.o", + "crypto/x509/libcrypto-lib-v3_rolespec.o", "crypto/x509/libcrypto-lib-v3_san.o", + "crypto/x509/libcrypto-lib-v3_sda.o", + "crypto/x509/libcrypto-lib-v3_single_use.o", "crypto/x509/libcrypto-lib-v3_skid.o", + "crypto/x509/libcrypto-lib-v3_soa_id.o", "crypto/x509/libcrypto-lib-v3_sxnet.o", + "crypto/x509/libcrypto-lib-v3_timespec.o", "crypto/x509/libcrypto-lib-v3_tlsf.o", + "crypto/x509/libcrypto-lib-v3_usernotice.o", "crypto/x509/libcrypto-lib-v3_utf8.o", "crypto/x509/libcrypto-lib-v3_utl.o", "crypto/x509/libcrypto-lib-v3err.o", + "crypto/x509/libcrypto-lib-x509_acert.o", "crypto/x509/libcrypto-lib-x509_att.o", "crypto/x509/libcrypto-lib-x509_cmp.o", "crypto/x509/libcrypto-lib-x509_d2.o", @@ -9806,6 +11396,7 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x509_v3.o", "crypto/x509/libcrypto-lib-x509_vfy.o", "crypto/x509/libcrypto-lib-x509_vpm.o", + "crypto/x509/libcrypto-lib-x509aset.o", "crypto/x509/libcrypto-lib-x509cset.o", "crypto/x509/libcrypto-lib-x509name.o", "crypto/x509/libcrypto-lib-x509rset.o", @@ -9815,6 +11406,7 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x_attrib.o", "crypto/x509/libcrypto-lib-x_crl.o", "crypto/x509/libcrypto-lib-x_exten.o", + "crypto/x509/libcrypto-lib-x_ietfatt.o", "crypto/x509/libcrypto-lib-x_name.o", "crypto/x509/libcrypto-lib-x_pubkey.o", "crypto/x509/libcrypto-lib-x_req.o", @@ -9842,6 +11434,7 @@ our %unified_info = ( "fuzz" => { "products" => { "bin" => [ + "fuzz/acert-test", "fuzz/asn1-test", "fuzz/asn1parse-test", "fuzz/bignum-test", @@ -9852,13 +11445,31 @@ our %unified_info = ( "fuzz/conf-test", "fuzz/crl-test", "fuzz/ct-test", + "fuzz/decoder-test", + "fuzz/dtlsclient-test", + "fuzz/dtlsserver-test", + "fuzz/hashtable-test", + "fuzz/ml-dsa-test", + "fuzz/ml-kem-test", + "fuzz/pem-test", + "fuzz/provider-test", + "fuzz/punycode-test", + "fuzz/quic-client-test", + "fuzz/quic-lcidm-test", + "fuzz/quic-rcidm-test", + "fuzz/quic-server-test", + "fuzz/quic-srtm-test", "fuzz/server-test", + "fuzz/slh-dsa-test", + "fuzz/smime-test", + "fuzz/v3name-test", "fuzz/x509-test" ] } }, "providers" => { "deps" => [ + "providers/endecode_test-bin-legacyprov.o", "providers/evp_extra_test-bin-legacyprov.o", "providers/libcrypto-lib-baseprov.o", "providers/libcrypto-lib-defltprov.o", @@ -9868,6 +11479,7 @@ our %unified_info = ( ], "products" => { "bin" => [ + "test/endecode_test", "test/evp_extra_test" ], "dso" => [ @@ -9918,8 +11530,12 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ec_sig.o", "providers/common/der/libcommon-lib-der_ecx_gen.o", "providers/common/der/libcommon-lib-der_ecx_key.o", + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o", + "providers/common/der/libcommon-lib-der_ml_dsa_key.o", "providers/common/der/libcommon-lib-der_rsa_gen.o", "providers/common/der/libcommon-lib-der_rsa_key.o", + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o", + "providers/common/der/libcommon-lib-der_slh_dsa_key.o", "providers/common/der/libcommon-lib-der_wrap_gen.o", "providers/common/der/libdefault-lib-der_rsa_sig.o", "providers/common/der/libdefault-lib-der_sm2_gen.o", @@ -9938,6 +11554,7 @@ our %unified_info = ( "providers/fips" => { "deps" => [ "providers/fips/fips-dso-fips_entry.o", + "providers/fips/libfips-lib-fipsindicator.o", "providers/fips/libfips-lib-fipsprov.o", "providers/fips/libfips-lib-self_test.o", "providers/fips/libfips-lib-self_test_kats.o" @@ -9981,6 +11598,9 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_aes_ccm_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_polyval.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_ocb.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_ocb_hw.o", @@ -10005,7 +11625,13 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_cts.o", "providers/implementations/ciphers/libdefault-lib-cipher_null.o", "providers/implementations/ciphers/libdefault-lib-cipher_sm4.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_sm4_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes_common.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes_default.o", @@ -10102,7 +11728,10 @@ our %unified_info = ( "providers/implementations/encode_decode/libdefault-lib-encode_key2blob.o", "providers/implementations/encode_decode/libdefault-lib-encode_key2ms.o", "providers/implementations/encode_decode/libdefault-lib-encode_key2text.o", - "providers/implementations/encode_decode/libdefault-lib-endecoder_common.o" + "providers/implementations/encode_decode/libdefault-lib-endecoder_common.o", + "providers/implementations/encode_decode/libdefault-lib-ml_common_codecs.o", + "providers/implementations/encode_decode/libdefault-lib-ml_dsa_codecs.o", + "providers/implementations/encode_decode/libdefault-lib-ml_kem_codecs.o" ], "products" => { "lib" => [ @@ -10130,7 +11759,9 @@ our %unified_info = ( }, "providers/implementations/kdfs" => { "deps" => [ + "providers/implementations/kdfs/libdefault-lib-argon2.o", "providers/implementations/kdfs/libdefault-lib-hkdf.o", + "providers/implementations/kdfs/libdefault-lib-hmacdrbg_kdf.o", "providers/implementations/kdfs/libdefault-lib-kbkdf.o", "providers/implementations/kdfs/libdefault-lib-krb5kdf.o", "providers/implementations/kdfs/libdefault-lib-pbkdf2.o", @@ -10149,7 +11780,8 @@ our %unified_info = ( "providers/implementations/kdfs/libfips-lib-sskdf.o", "providers/implementations/kdfs/libfips-lib-tls1_prf.o", "providers/implementations/kdfs/libfips-lib-x942kdf.o", - "providers/implementations/kdfs/liblegacy-lib-pbkdf1.o" + "providers/implementations/kdfs/liblegacy-lib-pbkdf1.o", + "providers/implementations/kdfs/liblegacy-lib-pvkkdf.o" ], "products" => { "lib" => [ @@ -10161,13 +11793,22 @@ our %unified_info = ( }, "providers/implementations/kem" => { "deps" => [ + "providers/implementations/kem/libdefault-lib-ec_kem.o", + "providers/implementations/kem/libdefault-lib-ecx_kem.o", + "providers/implementations/kem/libdefault-lib-kem_util.o", + "providers/implementations/kem/libdefault-lib-ml_kem_kem.o", + "providers/implementations/kem/libdefault-lib-mlx_kem.o", "providers/implementations/kem/libdefault-lib-rsa_kem.o", - "providers/implementations/kem/libfips-lib-rsa_kem.o" + "providers/implementations/kem/libfips-lib-ml_kem_kem.o", + "providers/implementations/kem/libfips-lib-mlx_kem.o", + "providers/implementations/kem/libfips-lib-rsa_kem.o", + "providers/implementations/kem/libtemplate-lib-template_kem.o" ], "products" => { "lib" => [ "providers/libdefault.a", - "providers/libfips.a" + "providers/libfips.a", + "providers/libtemplate.a" ] } }, @@ -10179,19 +11820,29 @@ our %unified_info = ( "providers/implementations/keymgmt/libdefault-lib-ecx_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-kdf_legacy_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-mac_legacy_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-ml_dsa_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-ml_kem_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-mlx_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-rsa_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-slh_dsa_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-dh_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-dsa_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-ec_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-ecx_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-kdf_legacy_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-mac_legacy_kmgmt.o", - "providers/implementations/keymgmt/libfips-lib-rsa_kmgmt.o" + "providers/implementations/keymgmt/libfips-lib-ml_dsa_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-ml_kem_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-mlx_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-rsa_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-slh_dsa_kmgmt.o", + "providers/implementations/keymgmt/libtemplate-lib-template_kmgmt.o" ], "products" => { "lib" => [ "providers/libdefault.a", - "providers/libfips.a" + "providers/libfips.a", + "providers/libtemplate.a" ] } }, @@ -10219,18 +11870,18 @@ our %unified_info = ( }, "providers/implementations/rands" => { "deps" => [ - "providers/implementations/rands/libdefault-lib-crngt.o", "providers/implementations/rands/libdefault-lib-drbg.o", "providers/implementations/rands/libdefault-lib-drbg_ctr.o", "providers/implementations/rands/libdefault-lib-drbg_hash.o", "providers/implementations/rands/libdefault-lib-drbg_hmac.o", "providers/implementations/rands/libdefault-lib-seed_src.o", + "providers/implementations/rands/libdefault-lib-seed_src_jitter.o", "providers/implementations/rands/libdefault-lib-test_rng.o", - "providers/implementations/rands/libfips-lib-crngt.o", "providers/implementations/rands/libfips-lib-drbg.o", "providers/implementations/rands/libfips-lib-drbg_ctr.o", "providers/implementations/rands/libfips-lib-drbg_hash.o", "providers/implementations/rands/libfips-lib-drbg_hmac.o", + "providers/implementations/rands/libfips-lib-fips_crng_test.o", "providers/implementations/rands/libfips-lib-test_rng.o" ], "products" => { @@ -10259,13 +11910,31 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-ecdsa_sig.o", "providers/implementations/signature/libdefault-lib-eddsa_sig.o", "providers/implementations/signature/libdefault-lib-mac_legacy_sig.o", + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o", "providers/implementations/signature/libdefault-lib-rsa_sig.o", + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o", "providers/implementations/signature/libdefault-lib-sm2_sig.o", "providers/implementations/signature/libfips-lib-dsa_sig.o", "providers/implementations/signature/libfips-lib-ecdsa_sig.o", "providers/implementations/signature/libfips-lib-eddsa_sig.o", "providers/implementations/signature/libfips-lib-mac_legacy_sig.o", - "providers/implementations/signature/libfips-lib-rsa_sig.o" + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o", + "providers/implementations/signature/libfips-lib-rsa_sig.o", + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o" + ], + "products" => { + "lib" => [ + "providers/libdefault.a", + "providers/libfips.a" + ] + } + }, + "providers/implementations/skeymgmt" => { + "deps" => [ + "providers/implementations/skeymgmt/libdefault-lib-aes_skmgmt.o", + "providers/implementations/skeymgmt/libdefault-lib-generic.o", + "providers/implementations/skeymgmt/libfips-lib-aes_skmgmt.o", + "providers/implementations/skeymgmt/libfips-lib-generic.o" ], "products" => { "lib" => [ @@ -10293,14 +11962,15 @@ our %unified_info = ( "ssl/libssl-lib-d1_srtp.o", "ssl/libssl-lib-methods.o", "ssl/libssl-lib-pqueue.o", + "ssl/libssl-lib-priority_queue.o", "ssl/libssl-lib-s3_enc.o", "ssl/libssl-lib-s3_lib.o", "ssl/libssl-lib-s3_msg.o", "ssl/libssl-lib-ssl_asn1.o", "ssl/libssl-lib-ssl_cert.o", + "ssl/libssl-lib-ssl_cert_comp.o", "ssl/libssl-lib-ssl_ciph.o", "ssl/libssl-lib-ssl_conf.o", - "ssl/libssl-lib-ssl_err.o", "ssl/libssl-lib-ssl_err_legacy.o", "ssl/libssl-lib-ssl_init.o", "ssl/libssl-lib-ssl_lib.o", @@ -10316,32 +11986,107 @@ our %unified_info = ( "ssl/libssl-lib-t1_trce.o", "ssl/libssl-lib-tls13_enc.o", "ssl/libssl-lib-tls_depr.o", - "ssl/libssl-lib-tls_srp.o", - "ssl/libdefault-lib-s3_cbc.o", - "ssl/libfips-lib-s3_cbc.o" + "ssl/libssl-lib-tls_srp.o" ], "products" => { "lib" => [ - "libssl", - "providers/libdefault.a", - "providers/libfips.a" + "libssl" + ] + } + }, + "ssl/quic" => { + "deps" => [ + "ssl/quic/libssl-lib-cc_newreno.o", + "ssl/quic/libssl-lib-json_enc.o", + "ssl/quic/libssl-lib-qlog.o", + "ssl/quic/libssl-lib-qlog_event_helpers.o", + "ssl/quic/libssl-lib-quic_ackm.o", + "ssl/quic/libssl-lib-quic_cfq.o", + "ssl/quic/libssl-lib-quic_channel.o", + "ssl/quic/libssl-lib-quic_demux.o", + "ssl/quic/libssl-lib-quic_engine.o", + "ssl/quic/libssl-lib-quic_fc.o", + "ssl/quic/libssl-lib-quic_fifd.o", + "ssl/quic/libssl-lib-quic_impl.o", + "ssl/quic/libssl-lib-quic_lcidm.o", + "ssl/quic/libssl-lib-quic_method.o", + "ssl/quic/libssl-lib-quic_obj.o", + "ssl/quic/libssl-lib-quic_port.o", + "ssl/quic/libssl-lib-quic_rcidm.o", + "ssl/quic/libssl-lib-quic_reactor.o", + "ssl/quic/libssl-lib-quic_reactor_wait_ctx.o", + "ssl/quic/libssl-lib-quic_record_rx.o", + "ssl/quic/libssl-lib-quic_record_shared.o", + "ssl/quic/libssl-lib-quic_record_tx.o", + "ssl/quic/libssl-lib-quic_record_util.o", + "ssl/quic/libssl-lib-quic_rstream.o", + "ssl/quic/libssl-lib-quic_rx_depack.o", + "ssl/quic/libssl-lib-quic_sf_list.o", + "ssl/quic/libssl-lib-quic_srt_gen.o", + "ssl/quic/libssl-lib-quic_srtm.o", + "ssl/quic/libssl-lib-quic_sstream.o", + "ssl/quic/libssl-lib-quic_statm.o", + "ssl/quic/libssl-lib-quic_stream_map.o", + "ssl/quic/libssl-lib-quic_thread_assist.o", + "ssl/quic/libssl-lib-quic_tls.o", + "ssl/quic/libssl-lib-quic_tls_api.o", + "ssl/quic/libssl-lib-quic_trace.o", + "ssl/quic/libssl-lib-quic_tserver.o", + "ssl/quic/libssl-lib-quic_txp.o", + "ssl/quic/libssl-lib-quic_txpim.o", + "ssl/quic/libssl-lib-quic_types.o", + "ssl/quic/libssl-lib-quic_wire.o", + "ssl/quic/libssl-lib-quic_wire_pkt.o", + "ssl/quic/libssl-lib-uint_set.o" + ], + "products" => { + "lib" => [ + "libssl" ] } }, "ssl/record" => { "deps" => [ - "ssl/record/libssl-lib-dtls1_bitmap.o", "ssl/record/libssl-lib-rec_layer_d1.o", - "ssl/record/libssl-lib-rec_layer_s3.o", - "ssl/record/libssl-lib-ssl3_buffer.o", - "ssl/record/libssl-lib-ssl3_record.o", - "ssl/record/libssl-lib-ssl3_record_tls13.o", - "ssl/record/libcommon-lib-tls_pad.o" + "ssl/record/libssl-lib-rec_layer_s3.o" + ], + "products" => { + "lib" => [ + "libssl" + ] + } + }, + "ssl/record/methods" => { + "deps" => [ + "ssl/record/methods/libssl-lib-dtls_meth.o", + "ssl/record/methods/libssl-lib-ssl3_meth.o", + "ssl/record/methods/libssl-lib-tls13_meth.o", + "ssl/record/methods/libssl-lib-tls1_meth.o", + "ssl/record/methods/libssl-lib-tls_common.o", + "ssl/record/methods/libssl-lib-tls_multib.o", + "ssl/record/methods/libssl-lib-tlsany_meth.o", + "ssl/record/methods/libcommon-lib-tls_pad.o", + "ssl/record/methods/libdefault-lib-ssl3_cbc.o", + "ssl/record/methods/libfips-lib-ssl3_cbc.o" ], "products" => { "lib" => [ "libssl", - "providers/libcommon.a" + "providers/libcommon.a", + "providers/libdefault.a", + "providers/libfips.a" + ] + } + }, + "ssl/rio" => { + "deps" => [ + "ssl/rio/libssl-lib-poll_builder.o", + "ssl/rio/libssl-lib-poll_immediate.o", + "ssl/rio/libssl-lib-rio_notifier.o" + ], + "products" => { + "lib" => [ + "libssl" ] } }, @@ -10379,9 +12124,40 @@ our %unified_info = ( "test/helpers/dtlstest-bin-ssltestlib.o", "test/helpers/endecode_test-bin-predefined_dhparams.o", "test/helpers/fatalerrtest-bin-ssltestlib.o", + "test/helpers/json_test-bin-noisydgrambio.o", + "test/helpers/json_test-bin-pktsplitbio.o", + "test/helpers/json_test-bin-quictestlib.o", + "test/helpers/json_test-bin-ssltestlib.o", + "test/helpers/pkcs12_api_test-bin-pkcs12.o", "test/helpers/pkcs12_format_test-bin-pkcs12.o", + "test/helpers/quic_multistream_test-bin-noisydgrambio.o", + "test/helpers/quic_multistream_test-bin-pktsplitbio.o", + "test/helpers/quic_multistream_test-bin-quictestlib.o", + "test/helpers/quic_multistream_test-bin-ssltestlib.o", + "test/helpers/quic_newcid_test-bin-noisydgrambio.o", + "test/helpers/quic_newcid_test-bin-pktsplitbio.o", + "test/helpers/quic_newcid_test-bin-quictestlib.o", + "test/helpers/quic_newcid_test-bin-ssltestlib.o", + "test/helpers/quic_radix_test-bin-noisydgrambio.o", + "test/helpers/quic_radix_test-bin-pktsplitbio.o", + "test/helpers/quic_radix_test-bin-quictestlib.o", + "test/helpers/quic_radix_test-bin-ssltestlib.o", + "test/helpers/quic_srt_gen_test-bin-noisydgrambio.o", + "test/helpers/quic_srt_gen_test-bin-pktsplitbio.o", + "test/helpers/quic_srt_gen_test-bin-quictestlib.o", + "test/helpers/quic_srt_gen_test-bin-ssltestlib.o", + "test/helpers/quicapitest-bin-noisydgrambio.o", + "test/helpers/quicapitest-bin-pktsplitbio.o", + "test/helpers/quicapitest-bin-quictestlib.o", + "test/helpers/quicapitest-bin-ssltestlib.o", + "test/helpers/quicfaultstest-bin-noisydgrambio.o", + "test/helpers/quicfaultstest-bin-pktsplitbio.o", + "test/helpers/quicfaultstest-bin-quictestlib.o", + "test/helpers/quicfaultstest-bin-ssltestlib.o", "test/helpers/recordlentest-bin-ssltestlib.o", + "test/helpers/rpktest-bin-ssltestlib.o", "test/helpers/servername_test-bin-ssltestlib.o", + "test/helpers/ssl_handshake_rtt_test-bin-ssltestlib.o", "test/helpers/ssl_old_test-bin-predefined_dhparams.o", "test/helpers/ssl_test-bin-handshake.o", "test/helpers/ssl_test-bin-handshake_srp.o", @@ -10390,7 +12166,8 @@ our %unified_info = ( "test/helpers/sslapitest-bin-ssltestlib.o", "test/helpers/sslbuffertest-bin-ssltestlib.o", "test/helpers/sslcorrupttest-bin-ssltestlib.o", - "test/helpers/tls13ccstest-bin-ssltestlib.o" + "test/helpers/tls13ccstest-bin-ssltestlib.o", + "test/helpers/tls13groupselection_test-bin-ssltestlib.o" ], "products" => { "bin" => [ @@ -10408,16 +12185,37 @@ our %unified_info = ( "test/dtlstest", "test/endecode_test", "test/fatalerrtest", + "test/json_test", + "test/pkcs12_api_test", "test/pkcs12_format_test", + "test/quic_multistream_test", + "test/quic_newcid_test", + "test/quic_radix_test", + "test/quic_srt_gen_test", + "test/quicapitest", + "test/quicfaultstest", "test/recordlentest", + "test/rpktest", "test/servername_test", + "test/ssl_handshake_rtt_test", "test/ssl_old_test", "test/ssl_test", "test/ssl_test_ctx_test", "test/sslapitest", "test/sslbuffertest", "test/sslcorrupttest", - "test/tls13ccstest" + "test/tls13ccstest", + "test/tls13groupselection_test" + ] + } + }, + "test/radix" => { + "deps" => [ + "test/radix/quic_radix_test-bin-quic_radix.o" + ], + "products" => { + "bin" => [ + "test/quic_radix_test" ] } }, @@ -10429,6 +12227,7 @@ our %unified_info = ( "test/testutil/libtestutil-lib-driver.o", "test/testutil/libtestutil-lib-fake_random.o", "test/testutil/libtestutil-lib-format_output.o", + "test/testutil/libtestutil-lib-helper.o", "test/testutil/libtestutil-lib-load.o", "test/testutil/libtestutil-lib-main.o", "test/testutil/libtestutil-lib-options.o", @@ -10464,6 +12263,12 @@ our %unified_info = ( } }, "generate" => { + "OpenSSLConfig.cmake" => [ + "exporters/cmake/OpenSSLConfig.cmake.in" + ], + "OpenSSLConfigVersion.cmake" => [ + "exporters/cmake/OpenSSLConfigVersion.cmake.in" + ], "apps/progs.c" => [ "apps/progs.pl", "\"-C\"", @@ -10474,6 +12279,19 @@ our %unified_info = ( "\"-H\"", "\$(APPS_OPENSSL)" ], + "builddata.pm" => [ + "util/mkinstallvars.pl", + "PREFIX=.", + "BINDIR=apps", + "APPLINKDIR=ms", + "LIBDIR=", + "INCLUDEDIR=include", + "\"INCLUDEDIR=\$(SRCDIR)/include\"", + "ENGINESDIR=engines", + "MODULESDIR=providers", + "\"VERSION=\$(VERSION)\"", + "\"LDLIBS=\$(LIB_EX_LIBS)\"" + ], "crypto/aes/aes-586.S" => [ "crypto/aes/asm/aes-586.pl" ], @@ -10495,6 +12313,24 @@ our %unified_info = ( "crypto/aes/aes-ppc.s" => [ "crypto/aes/asm/aes-ppc.pl" ], + "crypto/aes/aes-riscv32-zkn.s" => [ + "crypto/aes/asm/aes-riscv32-zkn.pl" + ], + "crypto/aes/aes-riscv64-zkn.s" => [ + "crypto/aes/asm/aes-riscv64-zkn.pl" + ], + "crypto/aes/aes-riscv64-zvbb-zvkg-zvkned.s" => [ + "crypto/aes/asm/aes-riscv64-zvbb-zvkg-zvkned.pl" + ], + "crypto/aes/aes-riscv64-zvkb-zvkned.s" => [ + "crypto/aes/asm/aes-riscv64-zvkb-zvkned.pl" + ], + "crypto/aes/aes-riscv64-zvkned.s" => [ + "crypto/aes/asm/aes-riscv64-zvkned.pl" + ], + "crypto/aes/aes-riscv64.s" => [ + "crypto/aes/asm/aes-riscv64.pl" + ], "crypto/aes/aes-s390x.S" => [ "crypto/aes/asm/aes-s390x.pl" ], @@ -10522,6 +12358,9 @@ our %unified_info = ( "crypto/aes/aesni-x86_64.s" => [ "crypto/aes/asm/aesni-x86_64.pl" ], + "crypto/aes/aesni-xts-avx512.s" => [ + "crypto/aes/asm/aesni-xts-avx512.pl" + ], "crypto/aes/aesp8-ppc.s" => [ "crypto/aes/asm/aesp8-ppc.pl" ], @@ -10534,12 +12373,18 @@ our %unified_info = ( "crypto/aes/bsaes-armv7.S" => [ "crypto/aes/asm/bsaes-armv7.pl" ], + "crypto/aes/bsaes-armv8.S" => [ + "crypto/aes/asm/bsaes-armv8.pl" + ], "crypto/aes/bsaes-x86_64.s" => [ "crypto/aes/asm/bsaes-x86_64.pl" ], "crypto/aes/vpaes-armv8.S" => [ "crypto/aes/asm/vpaes-armv8.pl" ], + "crypto/aes/vpaes-loongarch64.S" => [ + "crypto/aes/asm/vpaes-loongarch64.pl" + ], "crypto/aes/vpaes-ppc.s" => [ "crypto/aes/asm/vpaes-ppc.pl" ], @@ -10600,15 +12445,33 @@ our %unified_info = ( "crypto/bn/ppc-mont.s" => [ "crypto/bn/asm/ppc-mont.pl" ], + "crypto/bn/ppc64-mont-fixed.s" => [ + "crypto/bn/asm/ppc64-mont-fixed.pl" + ], "crypto/bn/ppc64-mont.s" => [ "crypto/bn/asm/ppc64-mont.pl" ], + "crypto/bn/rsaz-2k-avx512.s" => [ + "crypto/bn/asm/rsaz-2k-avx512.pl" + ], + "crypto/bn/rsaz-2k-avxifma.s" => [ + "crypto/bn/asm/rsaz-2k-avxifma.pl" + ], + "crypto/bn/rsaz-3k-avx512.s" => [ + "crypto/bn/asm/rsaz-3k-avx512.pl" + ], + "crypto/bn/rsaz-3k-avxifma.s" => [ + "crypto/bn/asm/rsaz-3k-avxifma.pl" + ], + "crypto/bn/rsaz-4k-avx512.s" => [ + "crypto/bn/asm/rsaz-4k-avx512.pl" + ], + "crypto/bn/rsaz-4k-avxifma.s" => [ + "crypto/bn/asm/rsaz-4k-avxifma.pl" + ], "crypto/bn/rsaz-avx2.s" => [ "crypto/bn/asm/rsaz-avx2.pl" ], - "crypto/bn/rsaz-avx512.s" => [ - "crypto/bn/asm/rsaz-avx512.pl" - ], "crypto/bn/rsaz-x86_64.s" => [ "crypto/bn/asm/rsaz-x86_64.pl" ], @@ -10670,6 +12533,9 @@ our %unified_info = ( "crypto/chacha/chacha-armv4.S" => [ "crypto/chacha/asm/chacha-armv4.pl" ], + "crypto/chacha/chacha-armv8-sve.S" => [ + "crypto/chacha/asm/chacha-armv8-sve.pl" + ], "crypto/chacha/chacha-armv8.S" => [ "crypto/chacha/asm/chacha-armv8.pl" ], @@ -10682,9 +12548,19 @@ our %unified_info = ( "crypto/chacha/chacha-ia64.s" => [ "crypto/chacha/chacha-ia64.S" ], + "crypto/chacha/chacha-loongarch64.S" => [ + "crypto/chacha/asm/chacha-loongarch64.pl" + ], "crypto/chacha/chacha-ppc.s" => [ "crypto/chacha/asm/chacha-ppc.pl" ], + "crypto/chacha/chacha-riscv64-v-zbb-zvkb.s" => [ + "crypto/chacha/asm/chacha-riscv64-v-zbb.pl", + "zvkb" + ], + "crypto/chacha/chacha-riscv64-v-zbb.s" => [ + "crypto/chacha/asm/chacha-riscv64-v-zbb.pl" + ], "crypto/chacha/chacha-s390x.S" => [ "crypto/chacha/asm/chacha-s390x.pl" ], @@ -10694,6 +12570,9 @@ our %unified_info = ( "crypto/chacha/chacha-x86_64.s" => [ "crypto/chacha/asm/chacha-x86_64.pl" ], + "crypto/chacha/chachap10-ppc.s" => [ + "crypto/chacha/asm/chachap10-ppc.pl" + ], "crypto/des/crypt586.S" => [ "crypto/des/asm/crypt586.pl" ], @@ -10706,6 +12585,9 @@ our %unified_info = ( "crypto/des/dest4-sparcv9.S" => [ "crypto/des/asm/dest4-sparcv9.pl" ], + "crypto/ec/ecp_nistp384-ppc64.s" => [ + "crypto/ec/asm/ecp_nistp384-ppc64.pl" + ], "crypto/ec/ecp_nistp521-ppc64.s" => [ "crypto/ec/asm/ecp_nistp521-ppc64.pl" ], @@ -10730,6 +12612,9 @@ our %unified_info = ( "crypto/ec/ecp_nistz256-x86_64.s" => [ "crypto/ec/asm/ecp_nistz256-x86_64.pl" ], + "crypto/ec/ecp_sm2p256-armv8.S" => [ + "crypto/ec/asm/ecp_sm2p256-armv8.pl" + ], "crypto/ec/x25519-ppc64.s" => [ "crypto/ec/asm/x25519-ppc64.pl" ], @@ -10739,18 +12624,39 @@ our %unified_info = ( "crypto/ia64cpuid.s" => [ "crypto/ia64cpuid.S" ], + "crypto/loongarch64cpuid.s" => [ + "crypto/loongarch64cpuid.pl" + ], "crypto/md5/md5-586.S" => [ "crypto/md5/asm/md5-586.pl" ], + "crypto/md5/md5-aarch64.S" => [ + "crypto/md5/asm/md5-aarch64.pl" + ], + "crypto/md5/md5-loongarch64.S" => [ + "crypto/md5/asm/md5-loongarch64.pl" + ], "crypto/md5/md5-sparcv9.S" => [ "crypto/md5/asm/md5-sparcv9.pl" ], "crypto/md5/md5-x86_64.s" => [ "crypto/md5/asm/md5-x86_64.pl" ], + "crypto/modes/aes-gcm-armv8-unroll8_64.S" => [ + "crypto/modes/asm/aes-gcm-armv8-unroll8_64.pl" + ], "crypto/modes/aes-gcm-armv8_64.S" => [ "crypto/modes/asm/aes-gcm-armv8_64.pl" ], + "crypto/modes/aes-gcm-avx512.s" => [ + "crypto/modes/asm/aes-gcm-avx512.pl" + ], + "crypto/modes/aes-gcm-ppc.s" => [ + "crypto/modes/asm/aes-gcm-ppc.pl" + ], + "crypto/modes/aes-gcm-riscv64-zvkb-zvkg-zvkned.s" => [ + "crypto/modes/asm/aes-gcm-riscv64-zvkb-zvkg-zvkned.pl" + ], "crypto/modes/aesni-gcm-x86_64.s" => [ "crypto/modes/asm/aesni-gcm-x86_64.pl" ], @@ -10769,6 +12675,15 @@ our %unified_info = ( "crypto/modes/ghash-parisc.s" => [ "crypto/modes/asm/ghash-parisc.pl" ], + "crypto/modes/ghash-riscv64-zvkb-zvbc.s" => [ + "crypto/modes/asm/ghash-riscv64-zvkb-zvbc.pl" + ], + "crypto/modes/ghash-riscv64-zvkg.s" => [ + "crypto/modes/asm/ghash-riscv64-zvkg.pl" + ], + "crypto/modes/ghash-riscv64.s" => [ + "crypto/modes/asm/ghash-riscv64.pl" + ], "crypto/modes/ghash-s390x.S" => [ "crypto/modes/asm/ghash-s390x.pl" ], @@ -10787,6 +12702,9 @@ our %unified_info = ( "crypto/modes/ghashv8-armx.S" => [ "crypto/modes/asm/ghashv8-armx.pl" ], + "crypto/params_idx.c" => [ + "crypto/params_idx.c.in" + ], "crypto/pariscid.s" => [ "crypto/pariscid.pl" ], @@ -10847,6 +12765,12 @@ our %unified_info = ( "crypto/ripemd/rmd-586.S" => [ "crypto/ripemd/asm/rmd-586.pl" ], + "crypto/riscv32cpuid.s" => [ + "crypto/riscv32cpuid.pl" + ], + "crypto/riscv64cpuid.s" => [ + "crypto/riscv64cpuid.pl" + ], "crypto/s390xcpuid.S" => [ "crypto/s390xcpuid.pl" ], @@ -10955,6 +12879,9 @@ our %unified_info = ( "crypto/sha/sha256-ppc.s" => [ "crypto/sha/asm/sha512-ppc.pl" ], + "crypto/sha/sha256-riscv64-zvkb-zvknha_or_zvknhb.S" => [ + "crypto/sha/asm/sha256-riscv64-zvkb-zvknha_or_zvknhb.pl" + ], "crypto/sha/sha256-s390x.S" => [ "crypto/sha/asm/sha512-s390x.pl" ], @@ -10991,6 +12918,9 @@ our %unified_info = ( "crypto/sha/sha512-ppc.s" => [ "crypto/sha/asm/sha512-ppc.pl" ], + "crypto/sha/sha512-riscv64-zvkb-zvknhb.S" => [ + "crypto/sha/asm/sha512-riscv64-zvkb-zvknhb.pl" + ], "crypto/sha/sha512-s390x.S" => [ "crypto/sha/asm/sha512-s390x.pl" ], @@ -11003,6 +12933,24 @@ our %unified_info = ( "crypto/sha/sha512p8-ppc.s" => [ "crypto/sha/asm/sha512p8-ppc.pl" ], + "crypto/sm3/sm3-armv8.S" => [ + "crypto/sm3/asm/sm3-armv8.pl" + ], + "crypto/sm3/sm3-riscv64-zvksh.S" => [ + "crypto/sm3/asm/sm3-riscv64-zvksh.pl" + ], + "crypto/sm4/sm4-armv8.S" => [ + "crypto/sm4/asm/sm4-armv8.pl" + ], + "crypto/sm4/sm4-riscv64-zvksed.s" => [ + "crypto/sm4/asm/sm4-riscv64-zvksed.pl" + ], + "crypto/sm4/vpsm4-armv8.S" => [ + "crypto/sm4/asm/vpsm4-armv8.pl" + ], + "crypto/sm4/vpsm4_ex-armv8.S" => [ + "crypto/sm4/asm/vpsm4_ex-armv8.pl" + ], "crypto/uplink-ia64.s" => [ "ms/uplink-ia64.pl" ], @@ -11168,6 +13116,9 @@ our %unified_info = ( "doc/html/man1/openssl-sess_id.html" => [ "doc/man1/openssl-sess_id.pod" ], + "doc/html/man1/openssl-skeyutl.html" => [ + "doc/man1/openssl-skeyutl.pod" + ], "doc/html/man1/openssl-smime.html" => [ "doc/man1/openssl-smime.pod" ], @@ -11309,6 +13260,9 @@ our %unified_info = ( "doc/html/man3/BIO_get_ex_new_index.html" => [ "doc/man3/BIO_get_ex_new_index.pod" ], + "doc/html/man3/BIO_get_rpoll_descriptor.html" => [ + "doc/man3/BIO_get_rpoll_descriptor.pod" + ], "doc/html/man3/BIO_meth_new.html" => [ "doc/man3/BIO_meth_new.pod" ], @@ -11345,6 +13299,9 @@ our %unified_info = ( "doc/html/man3/BIO_s_datagram.html" => [ "doc/man3/BIO_s_datagram.pod" ], + "doc/html/man3/BIO_s_dgram_pair.html" => [ + "doc/man3/BIO_s_dgram_pair.pod" + ], "doc/html/man3/BIO_s_fd.html" => [ "doc/man3/BIO_s_fd.pod" ], @@ -11360,6 +13317,9 @@ our %unified_info = ( "doc/html/man3/BIO_s_socket.html" => [ "doc/man3/BIO_s_socket.pod" ], + "doc/html/man3/BIO_sendmmsg.html" => [ + "doc/man3/BIO_sendmmsg.pod" + ], "doc/html/man3/BIO_set_callback.html" => [ "doc/man3/BIO_set_callback.pod" ], @@ -11432,6 +13392,9 @@ our %unified_info = ( "doc/html/man3/BUF_MEM_new.html" => [ "doc/man3/BUF_MEM_new.pod" ], + "doc/html/man3/CMAC_CTX.html" => [ + "doc/man3/CMAC_CTX.pod" + ], "doc/html/man3/CMS_EncryptedData_decrypt.html" => [ "doc/man3/CMS_EncryptedData_decrypt.pod" ], @@ -11498,6 +13461,9 @@ our %unified_info = ( "doc/html/man3/CMS_verify_receipt.html" => [ "doc/man3/CMS_verify_receipt.pod" ], + "doc/html/man3/COMP_CTX_new.html" => [ + "doc/man3/COMP_CTX_new.pod" + ], "doc/html/man3/CONF_modules_free.html" => [ "doc/man3/CONF_modules_free.pod" ], @@ -11597,6 +13563,12 @@ our %unified_info = ( "doc/html/man3/DTLS_set_timer_cb.html" => [ "doc/man3/DTLS_set_timer_cb.pod" ], + "doc/html/man3/DTLSv1_get_timeout.html" => [ + "doc/man3/DTLSv1_get_timeout.pod" + ], + "doc/html/man3/DTLSv1_handle_timeout.html" => [ + "doc/man3/DTLSv1_handle_timeout.pod" + ], "doc/html/man3/DTLSv1_listen.html" => [ "doc/man3/DTLSv1_listen.pod" ], @@ -11735,6 +13707,9 @@ our %unified_info = ( "doc/html/man3/EVP_PKEY_CTX_get0_pkey.html" => [ "doc/man3/EVP_PKEY_CTX_get0_pkey.pod" ], + "doc/html/man3/EVP_PKEY_CTX_get_algor.html" => [ + "doc/man3/EVP_PKEY_CTX_get_algor.pod" + ], "doc/html/man3/EVP_PKEY_CTX_new.html" => [ "doc/man3/EVP_PKEY_CTX_new.pod" ], @@ -11852,6 +13827,12 @@ our %unified_info = ( "doc/html/man3/EVP_SIGNATURE.html" => [ "doc/man3/EVP_SIGNATURE.pod" ], + "doc/html/man3/EVP_SKEY.html" => [ + "doc/man3/EVP_SKEY.pod" + ], + "doc/html/man3/EVP_SKEYMGMT.html" => [ + "doc/man3/EVP_SKEYMGMT.pod" + ], "doc/html/man3/EVP_SealInit.html" => [ "doc/man3/EVP_SealInit.pod" ], @@ -11939,6 +13920,9 @@ our %unified_info = ( "doc/html/man3/EVP_whirlpool.html" => [ "doc/man3/EVP_whirlpool.pod" ], + "doc/html/man3/GENERAL_NAME.html" => [ + "doc/man3/GENERAL_NAME.pod" + ], "doc/html/man3/HMAC.html" => [ "doc/man3/HMAC.pod" ], @@ -12011,9 +13995,15 @@ our %unified_info = ( "doc/html/man3/OPENSSL_load_builtin_modules.html" => [ "doc/man3/OPENSSL_load_builtin_modules.pod" ], + "doc/html/man3/OPENSSL_load_u16_le.html" => [ + "doc/man3/OPENSSL_load_u16_le.pod" + ], "doc/html/man3/OPENSSL_malloc.html" => [ "doc/man3/OPENSSL_malloc.pod" ], + "doc/html/man3/OPENSSL_riscvcap.html" => [ + "doc/man3/OPENSSL_riscvcap.pod" + ], "doc/html/man3/OPENSSL_s390xcap.html" => [ "doc/man3/OPENSSL_s390xcap.pod" ], @@ -12029,12 +14019,18 @@ our %unified_info = ( "doc/html/man3/OSSL_CALLBACK.html" => [ "doc/man3/OSSL_CALLBACK.pod" ], + "doc/html/man3/OSSL_CMP_ATAV_set0.html" => [ + "doc/man3/OSSL_CMP_ATAV_set0.pod" + ], "doc/html/man3/OSSL_CMP_CTX_new.html" => [ "doc/man3/OSSL_CMP_CTX_new.pod" ], "doc/html/man3/OSSL_CMP_HDR_get0_transactionID.html" => [ "doc/man3/OSSL_CMP_HDR_get0_transactionID.pod" ], + "doc/html/man3/OSSL_CMP_ITAV_new_caCerts.html" => [ + "doc/man3/OSSL_CMP_ITAV_new_caCerts.pod" + ], "doc/html/man3/OSSL_CMP_ITAV_set0.html" => [ "doc/man3/OSSL_CMP_ITAV_set0.pod" ], @@ -12104,9 +14100,18 @@ our %unified_info = ( "doc/html/man3/OSSL_ENCODER_to_bio.html" => [ "doc/man3/OSSL_ENCODER_to_bio.pod" ], + "doc/html/man3/OSSL_ERR_STATE_save.html" => [ + "doc/man3/OSSL_ERR_STATE_save.pod" + ], "doc/html/man3/OSSL_ESS_check_signing_certs.html" => [ "doc/man3/OSSL_ESS_check_signing_certs.pod" ], + "doc/html/man3/OSSL_GENERAL_NAMES_print.html" => [ + "doc/man3/OSSL_GENERAL_NAMES_print.pod" + ], + "doc/html/man3/OSSL_HPKE_CTX_new.html" => [ + "doc/man3/OSSL_HPKE_CTX_new.pod" + ], "doc/html/man3/OSSL_HTTP_REQ_CTX.html" => [ "doc/man3/OSSL_HTTP_REQ_CTX.pod" ], @@ -12116,12 +14121,24 @@ our %unified_info = ( "doc/html/man3/OSSL_HTTP_transfer.html" => [ "doc/man3/OSSL_HTTP_transfer.pod" ], + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX.html" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX.pod" + ], + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX_print.html" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX_print.pod" + ], + "doc/html/man3/OSSL_INDICATOR_set_callback.html" => [ + "doc/man3/OSSL_INDICATOR_set_callback.pod" + ], "doc/html/man3/OSSL_ITEM.html" => [ "doc/man3/OSSL_ITEM.pod" ], "doc/html/man3/OSSL_LIB_CTX.html" => [ "doc/man3/OSSL_LIB_CTX.pod" ], + "doc/html/man3/OSSL_LIB_CTX_set_conf_diagnostics.html" => [ + "doc/man3/OSSL_LIB_CTX_set_conf_diagnostics.pod" + ], "doc/html/man3/OSSL_PARAM.html" => [ "doc/man3/OSSL_PARAM.pod" ], @@ -12137,9 +14154,15 @@ our %unified_info = ( "doc/html/man3/OSSL_PARAM_int.html" => [ "doc/man3/OSSL_PARAM_int.pod" ], + "doc/html/man3/OSSL_PARAM_print_to_bio.html" => [ + "doc/man3/OSSL_PARAM_print_to_bio.pod" + ], "doc/html/man3/OSSL_PROVIDER.html" => [ "doc/man3/OSSL_PROVIDER.pod" ], + "doc/html/man3/OSSL_QUIC_client_method.html" => [ + "doc/man3/OSSL_QUIC_client_method.pod" + ], "doc/html/man3/OSSL_SELF_TEST_new.html" => [ "doc/man3/OSSL_SELF_TEST_new.pod" ], @@ -12164,6 +14187,9 @@ our %unified_info = ( "doc/html/man3/OSSL_STORE_open.html" => [ "doc/man3/OSSL_STORE_open.pod" ], + "doc/html/man3/OSSL_sleep.html" => [ + "doc/man3/OSSL_sleep.pod" + ], "doc/html/man3/OSSL_trace_enabled.html" => [ "doc/man3/OSSL_trace_enabled.pod" ], @@ -12179,6 +14205,9 @@ our %unified_info = ( "doc/html/man3/OpenSSL_version.html" => [ "doc/man3/OpenSSL_version.pod" ], + "doc/html/man3/PBMAC1_get1_pbkdf2_param.html" => [ + "doc/man3/PBMAC1_get1_pbkdf2_param.pod" + ], "doc/html/man3/PEM_X509_INFO_read_bio_ex.html" => [ "doc/man3/PEM_X509_INFO_read_bio_ex.pod" ], @@ -12215,6 +14244,9 @@ our %unified_info = ( "doc/html/man3/PKCS12_SAFEBAG_get1_cert.html" => [ "doc/man3/PKCS12_SAFEBAG_get1_cert.pod" ], + "doc/html/man3/PKCS12_SAFEBAG_set0_attrs.html" => [ + "doc/man3/PKCS12_SAFEBAG_set0_attrs.pod" + ], "doc/html/man3/PKCS12_add1_attr_by_NID.html" => [ "doc/man3/PKCS12_add1_attr_by_NID.pod" ], @@ -12488,6 +14520,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set0_CA_list.html" => [ "doc/man3/SSL_CTX_set0_CA_list.pod" ], + "doc/html/man3/SSL_CTX_set1_cert_comp_preference.html" => [ + "doc/man3/SSL_CTX_set1_cert_comp_preference.pod" + ], "doc/html/man3/SSL_CTX_set1_curves.html" => [ "doc/man3/SSL_CTX_set1_curves.pod" ], @@ -12527,6 +14562,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_default_passwd_cb.html" => [ "doc/man3/SSL_CTX_set_default_passwd_cb.pod" ], + "doc/html/man3/SSL_CTX_set_domain_flags.html" => [ + "doc/man3/SSL_CTX_set_domain_flags.pod" + ], "doc/html/man3/SSL_CTX_set_generate_session_id.html" => [ "doc/man3/SSL_CTX_set_generate_session_id.pod" ], @@ -12548,6 +14586,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_msg_callback.html" => [ "doc/man3/SSL_CTX_set_msg_callback.pod" ], + "doc/html/man3/SSL_CTX_set_new_pending_conn_cb.html" => [ + "doc/man3/SSL_CTX_set_new_pending_conn_cb.pod" + ], "doc/html/man3/SSL_CTX_set_num_tickets.html" => [ "doc/man3/SSL_CTX_set_num_tickets.pod" ], @@ -12662,6 +14703,9 @@ our %unified_info = ( "doc/html/man3/SSL_accept.html" => [ "doc/man3/SSL_accept.pod" ], + "doc/html/man3/SSL_accept_stream.html" => [ + "doc/man3/SSL_accept_stream.pod" + ], "doc/html/man3/SSL_alert_type_string.html" => [ "doc/man3/SSL_alert_type_string.pod" ], @@ -12689,9 +14733,21 @@ our %unified_info = ( "doc/html/man3/SSL_free.html" => [ "doc/man3/SSL_free.pod" ], + "doc/html/man3/SSL_get0_connection.html" => [ + "doc/man3/SSL_get0_connection.pod" + ], + "doc/html/man3/SSL_get0_group_name.html" => [ + "doc/man3/SSL_get0_group_name.pod" + ], + "doc/html/man3/SSL_get0_peer_rpk.html" => [ + "doc/man3/SSL_get0_peer_rpk.pod" + ], "doc/html/man3/SSL_get0_peer_scts.html" => [ "doc/man3/SSL_get0_peer_scts.pod" ], + "doc/html/man3/SSL_get1_builtin_sigalgs.html" => [ + "doc/man3/SSL_get1_builtin_sigalgs.pod" + ], "doc/html/man3/SSL_get_SSL_CTX.html" => [ "doc/man3/SSL_get_SSL_CTX.pod" ], @@ -12707,6 +14763,9 @@ our %unified_info = ( "doc/html/man3/SSL_get_client_random.html" => [ "doc/man3/SSL_get_client_random.pod" ], + "doc/html/man3/SSL_get_conn_close_info.html" => [ + "doc/man3/SSL_get_conn_close_info.pod" + ], "doc/html/man3/SSL_get_current_cipher.html" => [ "doc/man3/SSL_get_current_cipher.pod" ], @@ -12716,12 +14775,18 @@ our %unified_info = ( "doc/html/man3/SSL_get_error.html" => [ "doc/man3/SSL_get_error.pod" ], + "doc/html/man3/SSL_get_event_timeout.html" => [ + "doc/man3/SSL_get_event_timeout.pod" + ], "doc/html/man3/SSL_get_extms_support.html" => [ "doc/man3/SSL_get_extms_support.pod" ], "doc/html/man3/SSL_get_fd.html" => [ "doc/man3/SSL_get_fd.pod" ], + "doc/html/man3/SSL_get_handshake_rtt.html" => [ + "doc/man3/SSL_get_handshake_rtt.pod" + ], "doc/html/man3/SSL_get_peer_cert_chain.html" => [ "doc/man3/SSL_get_peer_cert_chain.pod" ], @@ -12740,12 +14805,24 @@ our %unified_info = ( "doc/html/man3/SSL_get_rbio.html" => [ "doc/man3/SSL_get_rbio.pod" ], + "doc/html/man3/SSL_get_rpoll_descriptor.html" => [ + "doc/man3/SSL_get_rpoll_descriptor.pod" + ], "doc/html/man3/SSL_get_session.html" => [ "doc/man3/SSL_get_session.pod" ], "doc/html/man3/SSL_get_shared_sigalgs.html" => [ "doc/man3/SSL_get_shared_sigalgs.pod" ], + "doc/html/man3/SSL_get_stream_id.html" => [ + "doc/man3/SSL_get_stream_id.pod" + ], + "doc/html/man3/SSL_get_stream_read_state.html" => [ + "doc/man3/SSL_get_stream_read_state.pod" + ], + "doc/html/man3/SSL_get_value_uint.html" => [ + "doc/man3/SSL_get_value_uint.pod" + ], "doc/html/man3/SSL_get_verify_result.html" => [ "doc/man3/SSL_get_verify_result.pod" ], @@ -12755,9 +14832,15 @@ our %unified_info = ( "doc/html/man3/SSL_group_to_name.html" => [ "doc/man3/SSL_group_to_name.pod" ], + "doc/html/man3/SSL_handle_events.html" => [ + "doc/man3/SSL_handle_events.pod" + ], "doc/html/man3/SSL_in_init.html" => [ "doc/man3/SSL_in_init.pod" ], + "doc/html/man3/SSL_inject_net_dgram.html" => [ + "doc/man3/SSL_inject_net_dgram.pod" + ], "doc/html/man3/SSL_key_update.html" => [ "doc/man3/SSL_key_update.pod" ], @@ -12770,9 +14853,21 @@ our %unified_info = ( "doc/html/man3/SSL_new.html" => [ "doc/man3/SSL_new.pod" ], + "doc/html/man3/SSL_new_domain.html" => [ + "doc/man3/SSL_new_domain.pod" + ], + "doc/html/man3/SSL_new_listener.html" => [ + "doc/man3/SSL_new_listener.pod" + ], + "doc/html/man3/SSL_new_stream.html" => [ + "doc/man3/SSL_new_stream.pod" + ], "doc/html/man3/SSL_pending.html" => [ "doc/man3/SSL_pending.pod" ], + "doc/html/man3/SSL_poll.html" => [ + "doc/man3/SSL_poll.pod" + ], "doc/html/man3/SSL_read.html" => [ "doc/man3/SSL_read.pod" ], @@ -12788,24 +14883,45 @@ our %unified_info = ( "doc/html/man3/SSL_set1_host.html" => [ "doc/man3/SSL_set1_host.pod" ], + "doc/html/man3/SSL_set1_initial_peer_addr.html" => [ + "doc/man3/SSL_set1_initial_peer_addr.pod" + ], + "doc/html/man3/SSL_set1_server_cert_type.html" => [ + "doc/man3/SSL_set1_server_cert_type.pod" + ], "doc/html/man3/SSL_set_async_callback.html" => [ "doc/man3/SSL_set_async_callback.pod" ], "doc/html/man3/SSL_set_bio.html" => [ "doc/man3/SSL_set_bio.pod" ], + "doc/html/man3/SSL_set_blocking_mode.html" => [ + "doc/man3/SSL_set_blocking_mode.pod" + ], "doc/html/man3/SSL_set_connect_state.html" => [ "doc/man3/SSL_set_connect_state.pod" ], + "doc/html/man3/SSL_set_default_stream_mode.html" => [ + "doc/man3/SSL_set_default_stream_mode.pod" + ], "doc/html/man3/SSL_set_fd.html" => [ "doc/man3/SSL_set_fd.pod" ], + "doc/html/man3/SSL_set_incoming_stream_policy.html" => [ + "doc/man3/SSL_set_incoming_stream_policy.pod" + ], + "doc/html/man3/SSL_set_quic_tls_cbs.html" => [ + "doc/man3/SSL_set_quic_tls_cbs.pod" + ], "doc/html/man3/SSL_set_retry_verify.html" => [ "doc/man3/SSL_set_retry_verify.pod" ], "doc/html/man3/SSL_set_session.html" => [ "doc/man3/SSL_set_session.pod" ], + "doc/html/man3/SSL_set_session_secret_cb.html" => [ + "doc/man3/SSL_set_session_secret_cb.pod" + ], "doc/html/man3/SSL_set_shutdown.html" => [ "doc/man3/SSL_set_shutdown.pod" ], @@ -12818,6 +14934,12 @@ our %unified_info = ( "doc/html/man3/SSL_state_string.html" => [ "doc/man3/SSL_state_string.pod" ], + "doc/html/man3/SSL_stream_conclude.html" => [ + "doc/man3/SSL_stream_conclude.pod" + ], + "doc/html/man3/SSL_stream_reset.html" => [ + "doc/man3/SSL_stream_reset.pod" + ], "doc/html/man3/SSL_want.html" => [ "doc/man3/SSL_want.pod" ], @@ -12827,8 +14949,8 @@ our %unified_info = ( "doc/html/man3/TS_RESP_CTX_new.html" => [ "doc/man3/TS_RESP_CTX_new.pod" ], - "doc/html/man3/TS_VERIFY_CTX_set_certs.html" => [ - "doc/man3/TS_VERIFY_CTX_set_certs.pod" + "doc/html/man3/TS_VERIFY_CTX.html" => [ + "doc/man3/TS_VERIFY_CTX.pod" ], "doc/html/man3/UI_STRING.html" => [ "doc/man3/UI_STRING.pod" @@ -12848,6 +14970,21 @@ our %unified_info = ( "doc/html/man3/X509V3_set_ctx.html" => [ "doc/man3/X509V3_set_ctx.pod" ], + "doc/html/man3/X509_ACERT_add1_attr.html" => [ + "doc/man3/X509_ACERT_add1_attr.pod" + ], + "doc/html/man3/X509_ACERT_add_attr_nconf.html" => [ + "doc/man3/X509_ACERT_add_attr_nconf.pod" + ], + "doc/html/man3/X509_ACERT_get0_holder_baseCertId.html" => [ + "doc/man3/X509_ACERT_get0_holder_baseCertId.pod" + ], + "doc/html/man3/X509_ACERT_get_attr.html" => [ + "doc/man3/X509_ACERT_get_attr.pod" + ], + "doc/html/man3/X509_ACERT_print_ex.html" => [ + "doc/man3/X509_ACERT_print_ex.pod" + ], "doc/html/man3/X509_ALGOR_dup.html" => [ "doc/man3/X509_ALGOR_dup.pod" ], @@ -12896,6 +15033,9 @@ our %unified_info = ( "doc/html/man3/X509_SIG_get0.html" => [ "doc/man3/X509_SIG_get0.pod" ], + "doc/html/man3/X509_STORE_CTX_get_by_subject.html" => [ + "doc/man3/X509_STORE_CTX_get_by_subject.pod" + ], "doc/html/man3/X509_STORE_CTX_get_error.html" => [ "doc/man3/X509_STORE_CTX_get_error.pod" ], @@ -12962,6 +15102,9 @@ our %unified_info = ( "doc/html/man3/X509_get0_uids.html" => [ "doc/man3/X509_get0_uids.pod" ], + "doc/html/man3/X509_get_default_cert_file.html" => [ + "doc/man3/X509_get_default_cert_file.pod" + ], "doc/html/man3/X509_get_extension_flags.html" => [ "doc/man3/X509_get_extension_flags.pod" ], @@ -13085,9 +15228,15 @@ our %unified_info = ( "doc/html/man7/EVP_CIPHER-SM4.html" => [ "doc/man7/EVP_CIPHER-SM4.pod" ], + "doc/html/man7/EVP_KDF-ARGON2.html" => [ + "doc/man7/EVP_KDF-ARGON2.pod" + ], "doc/html/man7/EVP_KDF-HKDF.html" => [ "doc/man7/EVP_KDF-HKDF.pod" ], + "doc/html/man7/EVP_KDF-HMAC-DRBG.html" => [ + "doc/man7/EVP_KDF-HMAC-DRBG.pod" + ], "doc/html/man7/EVP_KDF-KB.html" => [ "doc/man7/EVP_KDF-KB.pod" ], @@ -13103,6 +15252,9 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-PKCS12KDF.html" => [ "doc/man7/EVP_KDF-PKCS12KDF.pod" ], + "doc/html/man7/EVP_KDF-PVKKDF.html" => [ + "doc/man7/EVP_KDF-PVKKDF.pod" + ], "doc/html/man7/EVP_KDF-SCRYPT.html" => [ "doc/man7/EVP_KDF-SCRYPT.pod" ], @@ -13127,9 +15279,18 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-X963.html" => [ "doc/man7/EVP_KDF-X963.pod" ], + "doc/html/man7/EVP_KEM-EC.html" => [ + "doc/man7/EVP_KEM-EC.pod" + ], + "doc/html/man7/EVP_KEM-ML-KEM.html" => [ + "doc/man7/EVP_KEM-ML-KEM.pod" + ], "doc/html/man7/EVP_KEM-RSA.html" => [ "doc/man7/EVP_KEM-RSA.pod" ], + "doc/html/man7/EVP_KEM-X25519.html" => [ + "doc/man7/EVP_KEM-X25519.pod" + ], "doc/html/man7/EVP_KEYEXCH-DH.html" => [ "doc/man7/EVP_KEYEXCH-DH.pod" ], @@ -13163,6 +15324,9 @@ our %unified_info = ( "doc/html/man7/EVP_MD-BLAKE2.html" => [ "doc/man7/EVP_MD-BLAKE2.pod" ], + "doc/html/man7/EVP_MD-KECCAK.html" => [ + "doc/man7/EVP_MD-KECCAK.pod" + ], "doc/html/man7/EVP_MD-MD2.html" => [ "doc/man7/EVP_MD-MD2.pod" ], @@ -13220,15 +15384,27 @@ our %unified_info = ( "doc/html/man7/EVP_PKEY-HMAC.html" => [ "doc/man7/EVP_PKEY-HMAC.pod" ], + "doc/html/man7/EVP_PKEY-ML-DSA.html" => [ + "doc/man7/EVP_PKEY-ML-DSA.pod" + ], + "doc/html/man7/EVP_PKEY-ML-KEM.html" => [ + "doc/man7/EVP_PKEY-ML-KEM.pod" + ], "doc/html/man7/EVP_PKEY-RSA.html" => [ "doc/man7/EVP_PKEY-RSA.pod" ], + "doc/html/man7/EVP_PKEY-SLH-DSA.html" => [ + "doc/man7/EVP_PKEY-SLH-DSA.pod" + ], "doc/html/man7/EVP_PKEY-SM2.html" => [ "doc/man7/EVP_PKEY-SM2.pod" ], "doc/html/man7/EVP_PKEY-X25519.html" => [ "doc/man7/EVP_PKEY-X25519.pod" ], + "doc/html/man7/EVP_RAND-CRNG-TEST.html" => [ + "doc/man7/EVP_RAND-CRNG-TEST.pod" + ], "doc/html/man7/EVP_RAND-CTR-DRBG.html" => [ "doc/man7/EVP_RAND-CTR-DRBG.pod" ], @@ -13238,6 +15414,9 @@ our %unified_info = ( "doc/html/man7/EVP_RAND-HMAC-DRBG.html" => [ "doc/man7/EVP_RAND-HMAC-DRBG.pod" ], + "doc/html/man7/EVP_RAND-JITTER.html" => [ + "doc/man7/EVP_RAND-JITTER.pod" + ], "doc/html/man7/EVP_RAND-SEED-SRC.html" => [ "doc/man7/EVP_RAND-SEED-SRC.pod" ], @@ -13259,9 +15438,15 @@ our %unified_info = ( "doc/html/man7/EVP_SIGNATURE-HMAC.html" => [ "doc/man7/EVP_SIGNATURE-HMAC.pod" ], + "doc/html/man7/EVP_SIGNATURE-ML-DSA.html" => [ + "doc/man7/EVP_SIGNATURE-ML-DSA.pod" + ], "doc/html/man7/EVP_SIGNATURE-RSA.html" => [ "doc/man7/EVP_SIGNATURE-RSA.pod" ], + "doc/html/man7/EVP_SIGNATURE-SLH-DSA.html" => [ + "doc/man7/EVP_SIGNATURE-SLH-DSA.pod" + ], "doc/html/man7/OSSL_PROVIDER-FIPS.html" => [ "doc/man7/OSSL_PROVIDER-FIPS.pod" ], @@ -13277,6 +15462,9 @@ our %unified_info = ( "doc/html/man7/OSSL_PROVIDER-null.html" => [ "doc/man7/OSSL_PROVIDER-null.pod" ], + "doc/html/man7/OSSL_STORE-winstore.html" => [ + "doc/man7/OSSL_STORE-winstore.pod" + ], "doc/html/man7/RAND.html" => [ "doc/man7/RAND.pod" ], @@ -13289,9 +15477,6 @@ our %unified_info = ( "doc/html/man7/bio.html" => [ "doc/man7/bio.pod" ], - "doc/html/man7/crypto.html" => [ - "doc/man7/crypto.pod" - ], "doc/html/man7/ct.html" => [ "doc/man7/ct.pod" ], @@ -13322,9 +15507,6 @@ our %unified_info = ( "doc/html/man7/life_cycle-rand.html" => [ "doc/man7/life_cycle-rand.pod" ], - "doc/html/man7/migration_guide.html" => [ - "doc/man7/migration_guide.pod" - ], "doc/html/man7/openssl-core.h.html" => [ "doc/man7/openssl-core.h.pod" ], @@ -13340,12 +15522,66 @@ our %unified_info = ( "doc/html/man7/openssl-glossary.html" => [ "doc/man7/openssl-glossary.pod" ], + "doc/html/man7/openssl-qlog.html" => [ + "doc/man7/openssl-qlog.pod" + ], + "doc/html/man7/openssl-quic-concurrency.html" => [ + "doc/man7/openssl-quic-concurrency.pod" + ], + "doc/html/man7/openssl-quic.html" => [ + "doc/man7/openssl-quic.pod" + ], "doc/html/man7/openssl-threads.html" => [ "doc/man7/openssl-threads.pod" ], "doc/html/man7/openssl_user_macros.html" => [ "doc/man7/openssl_user_macros.pod" ], + "doc/html/man7/ossl-guide-introduction.html" => [ + "doc/man7/ossl-guide-introduction.pod" + ], + "doc/html/man7/ossl-guide-libcrypto-introduction.html" => [ + "doc/man7/ossl-guide-libcrypto-introduction.pod" + ], + "doc/html/man7/ossl-guide-libraries-introduction.html" => [ + "doc/man7/ossl-guide-libraries-introduction.pod" + ], + "doc/html/man7/ossl-guide-libssl-introduction.html" => [ + "doc/man7/ossl-guide-libssl-introduction.pod" + ], + "doc/html/man7/ossl-guide-migration.html" => [ + "doc/man7/ossl-guide-migration.pod" + ], + "doc/html/man7/ossl-guide-quic-client-block.html" => [ + "doc/man7/ossl-guide-quic-client-block.pod" + ], + "doc/html/man7/ossl-guide-quic-client-non-block.html" => [ + "doc/man7/ossl-guide-quic-client-non-block.pod" + ], + "doc/html/man7/ossl-guide-quic-introduction.html" => [ + "doc/man7/ossl-guide-quic-introduction.pod" + ], + "doc/html/man7/ossl-guide-quic-multi-stream.html" => [ + "doc/man7/ossl-guide-quic-multi-stream.pod" + ], + "doc/html/man7/ossl-guide-quic-server-block.html" => [ + "doc/man7/ossl-guide-quic-server-block.pod" + ], + "doc/html/man7/ossl-guide-quic-server-non-block.html" => [ + "doc/man7/ossl-guide-quic-server-non-block.pod" + ], + "doc/html/man7/ossl-guide-tls-client-block.html" => [ + "doc/man7/ossl-guide-tls-client-block.pod" + ], + "doc/html/man7/ossl-guide-tls-client-non-block.html" => [ + "doc/man7/ossl-guide-tls-client-non-block.pod" + ], + "doc/html/man7/ossl-guide-tls-introduction.html" => [ + "doc/man7/ossl-guide-tls-introduction.pod" + ], + "doc/html/man7/ossl-guide-tls-server-block.html" => [ + "doc/man7/ossl-guide-tls-server-block.pod" + ], "doc/html/man7/ossl_store-file.html" => [ "doc/man7/ossl_store-file.pod" ], @@ -13400,6 +15636,9 @@ our %unified_info = ( "doc/html/man7/provider-signature.html" => [ "doc/man7/provider-signature.pod" ], + "doc/html/man7/provider-skeymgmt.html" => [ + "doc/man7/provider-skeymgmt.pod" + ], "doc/html/man7/provider-storemgmt.html" => [ "doc/man7/provider-storemgmt.pod" ], @@ -13409,9 +15648,6 @@ our %unified_info = ( "doc/html/man7/proxy-certificates.html" => [ "doc/man7/proxy-certificates.pod" ], - "doc/html/man7/ssl.html" => [ - "doc/man7/ssl.pod" - ], "doc/html/man7/x509.html" => [ "doc/man7/x509.pod" ], @@ -13559,6 +15795,9 @@ our %unified_info = ( "doc/man/man1/openssl-sess_id.1" => [ "doc/man1/openssl-sess_id.pod" ], + "doc/man/man1/openssl-skeyutl.1" => [ + "doc/man1/openssl-skeyutl.pod" + ], "doc/man/man1/openssl-smime.1" => [ "doc/man1/openssl-smime.pod" ], @@ -13700,6 +15939,9 @@ our %unified_info = ( "doc/man/man3/BIO_get_ex_new_index.3" => [ "doc/man3/BIO_get_ex_new_index.pod" ], + "doc/man/man3/BIO_get_rpoll_descriptor.3" => [ + "doc/man3/BIO_get_rpoll_descriptor.pod" + ], "doc/man/man3/BIO_meth_new.3" => [ "doc/man3/BIO_meth_new.pod" ], @@ -13736,6 +15978,9 @@ our %unified_info = ( "doc/man/man3/BIO_s_datagram.3" => [ "doc/man3/BIO_s_datagram.pod" ], + "doc/man/man3/BIO_s_dgram_pair.3" => [ + "doc/man3/BIO_s_dgram_pair.pod" + ], "doc/man/man3/BIO_s_fd.3" => [ "doc/man3/BIO_s_fd.pod" ], @@ -13751,6 +15996,9 @@ our %unified_info = ( "doc/man/man3/BIO_s_socket.3" => [ "doc/man3/BIO_s_socket.pod" ], + "doc/man/man3/BIO_sendmmsg.3" => [ + "doc/man3/BIO_sendmmsg.pod" + ], "doc/man/man3/BIO_set_callback.3" => [ "doc/man3/BIO_set_callback.pod" ], @@ -13823,6 +16071,9 @@ our %unified_info = ( "doc/man/man3/BUF_MEM_new.3" => [ "doc/man3/BUF_MEM_new.pod" ], + "doc/man/man3/CMAC_CTX.3" => [ + "doc/man3/CMAC_CTX.pod" + ], "doc/man/man3/CMS_EncryptedData_decrypt.3" => [ "doc/man3/CMS_EncryptedData_decrypt.pod" ], @@ -13889,6 +16140,9 @@ our %unified_info = ( "doc/man/man3/CMS_verify_receipt.3" => [ "doc/man3/CMS_verify_receipt.pod" ], + "doc/man/man3/COMP_CTX_new.3" => [ + "doc/man3/COMP_CTX_new.pod" + ], "doc/man/man3/CONF_modules_free.3" => [ "doc/man3/CONF_modules_free.pod" ], @@ -13988,6 +16242,12 @@ our %unified_info = ( "doc/man/man3/DTLS_set_timer_cb.3" => [ "doc/man3/DTLS_set_timer_cb.pod" ], + "doc/man/man3/DTLSv1_get_timeout.3" => [ + "doc/man3/DTLSv1_get_timeout.pod" + ], + "doc/man/man3/DTLSv1_handle_timeout.3" => [ + "doc/man3/DTLSv1_handle_timeout.pod" + ], "doc/man/man3/DTLSv1_listen.3" => [ "doc/man3/DTLSv1_listen.pod" ], @@ -14126,6 +16386,9 @@ our %unified_info = ( "doc/man/man3/EVP_PKEY_CTX_get0_pkey.3" => [ "doc/man3/EVP_PKEY_CTX_get0_pkey.pod" ], + "doc/man/man3/EVP_PKEY_CTX_get_algor.3" => [ + "doc/man3/EVP_PKEY_CTX_get_algor.pod" + ], "doc/man/man3/EVP_PKEY_CTX_new.3" => [ "doc/man3/EVP_PKEY_CTX_new.pod" ], @@ -14243,6 +16506,12 @@ our %unified_info = ( "doc/man/man3/EVP_SIGNATURE.3" => [ "doc/man3/EVP_SIGNATURE.pod" ], + "doc/man/man3/EVP_SKEY.3" => [ + "doc/man3/EVP_SKEY.pod" + ], + "doc/man/man3/EVP_SKEYMGMT.3" => [ + "doc/man3/EVP_SKEYMGMT.pod" + ], "doc/man/man3/EVP_SealInit.3" => [ "doc/man3/EVP_SealInit.pod" ], @@ -14330,6 +16599,9 @@ our %unified_info = ( "doc/man/man3/EVP_whirlpool.3" => [ "doc/man3/EVP_whirlpool.pod" ], + "doc/man/man3/GENERAL_NAME.3" => [ + "doc/man3/GENERAL_NAME.pod" + ], "doc/man/man3/HMAC.3" => [ "doc/man3/HMAC.pod" ], @@ -14402,9 +16674,15 @@ our %unified_info = ( "doc/man/man3/OPENSSL_load_builtin_modules.3" => [ "doc/man3/OPENSSL_load_builtin_modules.pod" ], + "doc/man/man3/OPENSSL_load_u16_le.3" => [ + "doc/man3/OPENSSL_load_u16_le.pod" + ], "doc/man/man3/OPENSSL_malloc.3" => [ "doc/man3/OPENSSL_malloc.pod" ], + "doc/man/man3/OPENSSL_riscvcap.3" => [ + "doc/man3/OPENSSL_riscvcap.pod" + ], "doc/man/man3/OPENSSL_s390xcap.3" => [ "doc/man3/OPENSSL_s390xcap.pod" ], @@ -14420,12 +16698,18 @@ our %unified_info = ( "doc/man/man3/OSSL_CALLBACK.3" => [ "doc/man3/OSSL_CALLBACK.pod" ], + "doc/man/man3/OSSL_CMP_ATAV_set0.3" => [ + "doc/man3/OSSL_CMP_ATAV_set0.pod" + ], "doc/man/man3/OSSL_CMP_CTX_new.3" => [ "doc/man3/OSSL_CMP_CTX_new.pod" ], "doc/man/man3/OSSL_CMP_HDR_get0_transactionID.3" => [ "doc/man3/OSSL_CMP_HDR_get0_transactionID.pod" ], + "doc/man/man3/OSSL_CMP_ITAV_new_caCerts.3" => [ + "doc/man3/OSSL_CMP_ITAV_new_caCerts.pod" + ], "doc/man/man3/OSSL_CMP_ITAV_set0.3" => [ "doc/man3/OSSL_CMP_ITAV_set0.pod" ], @@ -14495,9 +16779,18 @@ our %unified_info = ( "doc/man/man3/OSSL_ENCODER_to_bio.3" => [ "doc/man3/OSSL_ENCODER_to_bio.pod" ], + "doc/man/man3/OSSL_ERR_STATE_save.3" => [ + "doc/man3/OSSL_ERR_STATE_save.pod" + ], "doc/man/man3/OSSL_ESS_check_signing_certs.3" => [ "doc/man3/OSSL_ESS_check_signing_certs.pod" ], + "doc/man/man3/OSSL_GENERAL_NAMES_print.3" => [ + "doc/man3/OSSL_GENERAL_NAMES_print.pod" + ], + "doc/man/man3/OSSL_HPKE_CTX_new.3" => [ + "doc/man3/OSSL_HPKE_CTX_new.pod" + ], "doc/man/man3/OSSL_HTTP_REQ_CTX.3" => [ "doc/man3/OSSL_HTTP_REQ_CTX.pod" ], @@ -14507,12 +16800,24 @@ our %unified_info = ( "doc/man/man3/OSSL_HTTP_transfer.3" => [ "doc/man3/OSSL_HTTP_transfer.pod" ], + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX.3" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX.pod" + ], + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX_print.3" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX_print.pod" + ], + "doc/man/man3/OSSL_INDICATOR_set_callback.3" => [ + "doc/man3/OSSL_INDICATOR_set_callback.pod" + ], "doc/man/man3/OSSL_ITEM.3" => [ "doc/man3/OSSL_ITEM.pod" ], "doc/man/man3/OSSL_LIB_CTX.3" => [ "doc/man3/OSSL_LIB_CTX.pod" ], + "doc/man/man3/OSSL_LIB_CTX_set_conf_diagnostics.3" => [ + "doc/man3/OSSL_LIB_CTX_set_conf_diagnostics.pod" + ], "doc/man/man3/OSSL_PARAM.3" => [ "doc/man3/OSSL_PARAM.pod" ], @@ -14528,9 +16833,15 @@ our %unified_info = ( "doc/man/man3/OSSL_PARAM_int.3" => [ "doc/man3/OSSL_PARAM_int.pod" ], + "doc/man/man3/OSSL_PARAM_print_to_bio.3" => [ + "doc/man3/OSSL_PARAM_print_to_bio.pod" + ], "doc/man/man3/OSSL_PROVIDER.3" => [ "doc/man3/OSSL_PROVIDER.pod" ], + "doc/man/man3/OSSL_QUIC_client_method.3" => [ + "doc/man3/OSSL_QUIC_client_method.pod" + ], "doc/man/man3/OSSL_SELF_TEST_new.3" => [ "doc/man3/OSSL_SELF_TEST_new.pod" ], @@ -14555,6 +16866,9 @@ our %unified_info = ( "doc/man/man3/OSSL_STORE_open.3" => [ "doc/man3/OSSL_STORE_open.pod" ], + "doc/man/man3/OSSL_sleep.3" => [ + "doc/man3/OSSL_sleep.pod" + ], "doc/man/man3/OSSL_trace_enabled.3" => [ "doc/man3/OSSL_trace_enabled.pod" ], @@ -14570,6 +16884,9 @@ our %unified_info = ( "doc/man/man3/OpenSSL_version.3" => [ "doc/man3/OpenSSL_version.pod" ], + "doc/man/man3/PBMAC1_get1_pbkdf2_param.3" => [ + "doc/man3/PBMAC1_get1_pbkdf2_param.pod" + ], "doc/man/man3/PEM_X509_INFO_read_bio_ex.3" => [ "doc/man3/PEM_X509_INFO_read_bio_ex.pod" ], @@ -14606,6 +16923,9 @@ our %unified_info = ( "doc/man/man3/PKCS12_SAFEBAG_get1_cert.3" => [ "doc/man3/PKCS12_SAFEBAG_get1_cert.pod" ], + "doc/man/man3/PKCS12_SAFEBAG_set0_attrs.3" => [ + "doc/man3/PKCS12_SAFEBAG_set0_attrs.pod" + ], "doc/man/man3/PKCS12_add1_attr_by_NID.3" => [ "doc/man3/PKCS12_add1_attr_by_NID.pod" ], @@ -14879,6 +17199,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set0_CA_list.3" => [ "doc/man3/SSL_CTX_set0_CA_list.pod" ], + "doc/man/man3/SSL_CTX_set1_cert_comp_preference.3" => [ + "doc/man3/SSL_CTX_set1_cert_comp_preference.pod" + ], "doc/man/man3/SSL_CTX_set1_curves.3" => [ "doc/man3/SSL_CTX_set1_curves.pod" ], @@ -14918,6 +17241,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_default_passwd_cb.3" => [ "doc/man3/SSL_CTX_set_default_passwd_cb.pod" ], + "doc/man/man3/SSL_CTX_set_domain_flags.3" => [ + "doc/man3/SSL_CTX_set_domain_flags.pod" + ], "doc/man/man3/SSL_CTX_set_generate_session_id.3" => [ "doc/man3/SSL_CTX_set_generate_session_id.pod" ], @@ -14939,6 +17265,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_msg_callback.3" => [ "doc/man3/SSL_CTX_set_msg_callback.pod" ], + "doc/man/man3/SSL_CTX_set_new_pending_conn_cb.3" => [ + "doc/man3/SSL_CTX_set_new_pending_conn_cb.pod" + ], "doc/man/man3/SSL_CTX_set_num_tickets.3" => [ "doc/man3/SSL_CTX_set_num_tickets.pod" ], @@ -15053,6 +17382,9 @@ our %unified_info = ( "doc/man/man3/SSL_accept.3" => [ "doc/man3/SSL_accept.pod" ], + "doc/man/man3/SSL_accept_stream.3" => [ + "doc/man3/SSL_accept_stream.pod" + ], "doc/man/man3/SSL_alert_type_string.3" => [ "doc/man3/SSL_alert_type_string.pod" ], @@ -15080,9 +17412,21 @@ our %unified_info = ( "doc/man/man3/SSL_free.3" => [ "doc/man3/SSL_free.pod" ], + "doc/man/man3/SSL_get0_connection.3" => [ + "doc/man3/SSL_get0_connection.pod" + ], + "doc/man/man3/SSL_get0_group_name.3" => [ + "doc/man3/SSL_get0_group_name.pod" + ], + "doc/man/man3/SSL_get0_peer_rpk.3" => [ + "doc/man3/SSL_get0_peer_rpk.pod" + ], "doc/man/man3/SSL_get0_peer_scts.3" => [ "doc/man3/SSL_get0_peer_scts.pod" ], + "doc/man/man3/SSL_get1_builtin_sigalgs.3" => [ + "doc/man3/SSL_get1_builtin_sigalgs.pod" + ], "doc/man/man3/SSL_get_SSL_CTX.3" => [ "doc/man3/SSL_get_SSL_CTX.pod" ], @@ -15098,6 +17442,9 @@ our %unified_info = ( "doc/man/man3/SSL_get_client_random.3" => [ "doc/man3/SSL_get_client_random.pod" ], + "doc/man/man3/SSL_get_conn_close_info.3" => [ + "doc/man3/SSL_get_conn_close_info.pod" + ], "doc/man/man3/SSL_get_current_cipher.3" => [ "doc/man3/SSL_get_current_cipher.pod" ], @@ -15107,12 +17454,18 @@ our %unified_info = ( "doc/man/man3/SSL_get_error.3" => [ "doc/man3/SSL_get_error.pod" ], + "doc/man/man3/SSL_get_event_timeout.3" => [ + "doc/man3/SSL_get_event_timeout.pod" + ], "doc/man/man3/SSL_get_extms_support.3" => [ "doc/man3/SSL_get_extms_support.pod" ], "doc/man/man3/SSL_get_fd.3" => [ "doc/man3/SSL_get_fd.pod" ], + "doc/man/man3/SSL_get_handshake_rtt.3" => [ + "doc/man3/SSL_get_handshake_rtt.pod" + ], "doc/man/man3/SSL_get_peer_cert_chain.3" => [ "doc/man3/SSL_get_peer_cert_chain.pod" ], @@ -15131,12 +17484,24 @@ our %unified_info = ( "doc/man/man3/SSL_get_rbio.3" => [ "doc/man3/SSL_get_rbio.pod" ], + "doc/man/man3/SSL_get_rpoll_descriptor.3" => [ + "doc/man3/SSL_get_rpoll_descriptor.pod" + ], "doc/man/man3/SSL_get_session.3" => [ "doc/man3/SSL_get_session.pod" ], "doc/man/man3/SSL_get_shared_sigalgs.3" => [ "doc/man3/SSL_get_shared_sigalgs.pod" ], + "doc/man/man3/SSL_get_stream_id.3" => [ + "doc/man3/SSL_get_stream_id.pod" + ], + "doc/man/man3/SSL_get_stream_read_state.3" => [ + "doc/man3/SSL_get_stream_read_state.pod" + ], + "doc/man/man3/SSL_get_value_uint.3" => [ + "doc/man3/SSL_get_value_uint.pod" + ], "doc/man/man3/SSL_get_verify_result.3" => [ "doc/man3/SSL_get_verify_result.pod" ], @@ -15146,9 +17511,15 @@ our %unified_info = ( "doc/man/man3/SSL_group_to_name.3" => [ "doc/man3/SSL_group_to_name.pod" ], + "doc/man/man3/SSL_handle_events.3" => [ + "doc/man3/SSL_handle_events.pod" + ], "doc/man/man3/SSL_in_init.3" => [ "doc/man3/SSL_in_init.pod" ], + "doc/man/man3/SSL_inject_net_dgram.3" => [ + "doc/man3/SSL_inject_net_dgram.pod" + ], "doc/man/man3/SSL_key_update.3" => [ "doc/man3/SSL_key_update.pod" ], @@ -15161,9 +17532,21 @@ our %unified_info = ( "doc/man/man3/SSL_new.3" => [ "doc/man3/SSL_new.pod" ], + "doc/man/man3/SSL_new_domain.3" => [ + "doc/man3/SSL_new_domain.pod" + ], + "doc/man/man3/SSL_new_listener.3" => [ + "doc/man3/SSL_new_listener.pod" + ], + "doc/man/man3/SSL_new_stream.3" => [ + "doc/man3/SSL_new_stream.pod" + ], "doc/man/man3/SSL_pending.3" => [ "doc/man3/SSL_pending.pod" ], + "doc/man/man3/SSL_poll.3" => [ + "doc/man3/SSL_poll.pod" + ], "doc/man/man3/SSL_read.3" => [ "doc/man3/SSL_read.pod" ], @@ -15179,24 +17562,45 @@ our %unified_info = ( "doc/man/man3/SSL_set1_host.3" => [ "doc/man3/SSL_set1_host.pod" ], + "doc/man/man3/SSL_set1_initial_peer_addr.3" => [ + "doc/man3/SSL_set1_initial_peer_addr.pod" + ], + "doc/man/man3/SSL_set1_server_cert_type.3" => [ + "doc/man3/SSL_set1_server_cert_type.pod" + ], "doc/man/man3/SSL_set_async_callback.3" => [ "doc/man3/SSL_set_async_callback.pod" ], "doc/man/man3/SSL_set_bio.3" => [ "doc/man3/SSL_set_bio.pod" ], + "doc/man/man3/SSL_set_blocking_mode.3" => [ + "doc/man3/SSL_set_blocking_mode.pod" + ], "doc/man/man3/SSL_set_connect_state.3" => [ "doc/man3/SSL_set_connect_state.pod" ], + "doc/man/man3/SSL_set_default_stream_mode.3" => [ + "doc/man3/SSL_set_default_stream_mode.pod" + ], "doc/man/man3/SSL_set_fd.3" => [ "doc/man3/SSL_set_fd.pod" ], + "doc/man/man3/SSL_set_incoming_stream_policy.3" => [ + "doc/man3/SSL_set_incoming_stream_policy.pod" + ], + "doc/man/man3/SSL_set_quic_tls_cbs.3" => [ + "doc/man3/SSL_set_quic_tls_cbs.pod" + ], "doc/man/man3/SSL_set_retry_verify.3" => [ "doc/man3/SSL_set_retry_verify.pod" ], "doc/man/man3/SSL_set_session.3" => [ "doc/man3/SSL_set_session.pod" ], + "doc/man/man3/SSL_set_session_secret_cb.3" => [ + "doc/man3/SSL_set_session_secret_cb.pod" + ], "doc/man/man3/SSL_set_shutdown.3" => [ "doc/man3/SSL_set_shutdown.pod" ], @@ -15209,6 +17613,12 @@ our %unified_info = ( "doc/man/man3/SSL_state_string.3" => [ "doc/man3/SSL_state_string.pod" ], + "doc/man/man3/SSL_stream_conclude.3" => [ + "doc/man3/SSL_stream_conclude.pod" + ], + "doc/man/man3/SSL_stream_reset.3" => [ + "doc/man3/SSL_stream_reset.pod" + ], "doc/man/man3/SSL_want.3" => [ "doc/man3/SSL_want.pod" ], @@ -15218,8 +17628,8 @@ our %unified_info = ( "doc/man/man3/TS_RESP_CTX_new.3" => [ "doc/man3/TS_RESP_CTX_new.pod" ], - "doc/man/man3/TS_VERIFY_CTX_set_certs.3" => [ - "doc/man3/TS_VERIFY_CTX_set_certs.pod" + "doc/man/man3/TS_VERIFY_CTX.3" => [ + "doc/man3/TS_VERIFY_CTX.pod" ], "doc/man/man3/UI_STRING.3" => [ "doc/man3/UI_STRING.pod" @@ -15239,6 +17649,21 @@ our %unified_info = ( "doc/man/man3/X509V3_set_ctx.3" => [ "doc/man3/X509V3_set_ctx.pod" ], + "doc/man/man3/X509_ACERT_add1_attr.3" => [ + "doc/man3/X509_ACERT_add1_attr.pod" + ], + "doc/man/man3/X509_ACERT_add_attr_nconf.3" => [ + "doc/man3/X509_ACERT_add_attr_nconf.pod" + ], + "doc/man/man3/X509_ACERT_get0_holder_baseCertId.3" => [ + "doc/man3/X509_ACERT_get0_holder_baseCertId.pod" + ], + "doc/man/man3/X509_ACERT_get_attr.3" => [ + "doc/man3/X509_ACERT_get_attr.pod" + ], + "doc/man/man3/X509_ACERT_print_ex.3" => [ + "doc/man3/X509_ACERT_print_ex.pod" + ], "doc/man/man3/X509_ALGOR_dup.3" => [ "doc/man3/X509_ALGOR_dup.pod" ], @@ -15287,6 +17712,9 @@ our %unified_info = ( "doc/man/man3/X509_SIG_get0.3" => [ "doc/man3/X509_SIG_get0.pod" ], + "doc/man/man3/X509_STORE_CTX_get_by_subject.3" => [ + "doc/man3/X509_STORE_CTX_get_by_subject.pod" + ], "doc/man/man3/X509_STORE_CTX_get_error.3" => [ "doc/man3/X509_STORE_CTX_get_error.pod" ], @@ -15353,6 +17781,9 @@ our %unified_info = ( "doc/man/man3/X509_get0_uids.3" => [ "doc/man3/X509_get0_uids.pod" ], + "doc/man/man3/X509_get_default_cert_file.3" => [ + "doc/man3/X509_get_default_cert_file.pod" + ], "doc/man/man3/X509_get_extension_flags.3" => [ "doc/man3/X509_get_extension_flags.pod" ], @@ -15476,9 +17907,15 @@ our %unified_info = ( "doc/man/man7/EVP_CIPHER-SM4.7" => [ "doc/man7/EVP_CIPHER-SM4.pod" ], + "doc/man/man7/EVP_KDF-ARGON2.7" => [ + "doc/man7/EVP_KDF-ARGON2.pod" + ], "doc/man/man7/EVP_KDF-HKDF.7" => [ "doc/man7/EVP_KDF-HKDF.pod" ], + "doc/man/man7/EVP_KDF-HMAC-DRBG.7" => [ + "doc/man7/EVP_KDF-HMAC-DRBG.pod" + ], "doc/man/man7/EVP_KDF-KB.7" => [ "doc/man7/EVP_KDF-KB.pod" ], @@ -15494,6 +17931,9 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-PKCS12KDF.7" => [ "doc/man7/EVP_KDF-PKCS12KDF.pod" ], + "doc/man/man7/EVP_KDF-PVKKDF.7" => [ + "doc/man7/EVP_KDF-PVKKDF.pod" + ], "doc/man/man7/EVP_KDF-SCRYPT.7" => [ "doc/man7/EVP_KDF-SCRYPT.pod" ], @@ -15518,9 +17958,18 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-X963.7" => [ "doc/man7/EVP_KDF-X963.pod" ], + "doc/man/man7/EVP_KEM-EC.7" => [ + "doc/man7/EVP_KEM-EC.pod" + ], + "doc/man/man7/EVP_KEM-ML-KEM.7" => [ + "doc/man7/EVP_KEM-ML-KEM.pod" + ], "doc/man/man7/EVP_KEM-RSA.7" => [ "doc/man7/EVP_KEM-RSA.pod" ], + "doc/man/man7/EVP_KEM-X25519.7" => [ + "doc/man7/EVP_KEM-X25519.pod" + ], "doc/man/man7/EVP_KEYEXCH-DH.7" => [ "doc/man7/EVP_KEYEXCH-DH.pod" ], @@ -15554,6 +18003,9 @@ our %unified_info = ( "doc/man/man7/EVP_MD-BLAKE2.7" => [ "doc/man7/EVP_MD-BLAKE2.pod" ], + "doc/man/man7/EVP_MD-KECCAK.7" => [ + "doc/man7/EVP_MD-KECCAK.pod" + ], "doc/man/man7/EVP_MD-MD2.7" => [ "doc/man7/EVP_MD-MD2.pod" ], @@ -15611,15 +18063,27 @@ our %unified_info = ( "doc/man/man7/EVP_PKEY-HMAC.7" => [ "doc/man7/EVP_PKEY-HMAC.pod" ], + "doc/man/man7/EVP_PKEY-ML-DSA.7" => [ + "doc/man7/EVP_PKEY-ML-DSA.pod" + ], + "doc/man/man7/EVP_PKEY-ML-KEM.7" => [ + "doc/man7/EVP_PKEY-ML-KEM.pod" + ], "doc/man/man7/EVP_PKEY-RSA.7" => [ "doc/man7/EVP_PKEY-RSA.pod" ], + "doc/man/man7/EVP_PKEY-SLH-DSA.7" => [ + "doc/man7/EVP_PKEY-SLH-DSA.pod" + ], "doc/man/man7/EVP_PKEY-SM2.7" => [ "doc/man7/EVP_PKEY-SM2.pod" ], "doc/man/man7/EVP_PKEY-X25519.7" => [ "doc/man7/EVP_PKEY-X25519.pod" ], + "doc/man/man7/EVP_RAND-CRNG-TEST.7" => [ + "doc/man7/EVP_RAND-CRNG-TEST.pod" + ], "doc/man/man7/EVP_RAND-CTR-DRBG.7" => [ "doc/man7/EVP_RAND-CTR-DRBG.pod" ], @@ -15629,6 +18093,9 @@ our %unified_info = ( "doc/man/man7/EVP_RAND-HMAC-DRBG.7" => [ "doc/man7/EVP_RAND-HMAC-DRBG.pod" ], + "doc/man/man7/EVP_RAND-JITTER.7" => [ + "doc/man7/EVP_RAND-JITTER.pod" + ], "doc/man/man7/EVP_RAND-SEED-SRC.7" => [ "doc/man7/EVP_RAND-SEED-SRC.pod" ], @@ -15650,9 +18117,15 @@ our %unified_info = ( "doc/man/man7/EVP_SIGNATURE-HMAC.7" => [ "doc/man7/EVP_SIGNATURE-HMAC.pod" ], + "doc/man/man7/EVP_SIGNATURE-ML-DSA.7" => [ + "doc/man7/EVP_SIGNATURE-ML-DSA.pod" + ], "doc/man/man7/EVP_SIGNATURE-RSA.7" => [ "doc/man7/EVP_SIGNATURE-RSA.pod" ], + "doc/man/man7/EVP_SIGNATURE-SLH-DSA.7" => [ + "doc/man7/EVP_SIGNATURE-SLH-DSA.pod" + ], "doc/man/man7/OSSL_PROVIDER-FIPS.7" => [ "doc/man7/OSSL_PROVIDER-FIPS.pod" ], @@ -15668,6 +18141,9 @@ our %unified_info = ( "doc/man/man7/OSSL_PROVIDER-null.7" => [ "doc/man7/OSSL_PROVIDER-null.pod" ], + "doc/man/man7/OSSL_STORE-winstore.7" => [ + "doc/man7/OSSL_STORE-winstore.pod" + ], "doc/man/man7/RAND.7" => [ "doc/man7/RAND.pod" ], @@ -15680,9 +18156,6 @@ our %unified_info = ( "doc/man/man7/bio.7" => [ "doc/man7/bio.pod" ], - "doc/man/man7/crypto.7" => [ - "doc/man7/crypto.pod" - ], "doc/man/man7/ct.7" => [ "doc/man7/ct.pod" ], @@ -15713,9 +18186,6 @@ our %unified_info = ( "doc/man/man7/life_cycle-rand.7" => [ "doc/man7/life_cycle-rand.pod" ], - "doc/man/man7/migration_guide.7" => [ - "doc/man7/migration_guide.pod" - ], "doc/man/man7/openssl-core.h.7" => [ "doc/man7/openssl-core.h.pod" ], @@ -15731,12 +18201,66 @@ our %unified_info = ( "doc/man/man7/openssl-glossary.7" => [ "doc/man7/openssl-glossary.pod" ], + "doc/man/man7/openssl-qlog.7" => [ + "doc/man7/openssl-qlog.pod" + ], + "doc/man/man7/openssl-quic-concurrency.7" => [ + "doc/man7/openssl-quic-concurrency.pod" + ], + "doc/man/man7/openssl-quic.7" => [ + "doc/man7/openssl-quic.pod" + ], "doc/man/man7/openssl-threads.7" => [ "doc/man7/openssl-threads.pod" ], "doc/man/man7/openssl_user_macros.7" => [ "doc/man7/openssl_user_macros.pod" ], + "doc/man/man7/ossl-guide-introduction.7" => [ + "doc/man7/ossl-guide-introduction.pod" + ], + "doc/man/man7/ossl-guide-libcrypto-introduction.7" => [ + "doc/man7/ossl-guide-libcrypto-introduction.pod" + ], + "doc/man/man7/ossl-guide-libraries-introduction.7" => [ + "doc/man7/ossl-guide-libraries-introduction.pod" + ], + "doc/man/man7/ossl-guide-libssl-introduction.7" => [ + "doc/man7/ossl-guide-libssl-introduction.pod" + ], + "doc/man/man7/ossl-guide-migration.7" => [ + "doc/man7/ossl-guide-migration.pod" + ], + "doc/man/man7/ossl-guide-quic-client-block.7" => [ + "doc/man7/ossl-guide-quic-client-block.pod" + ], + "doc/man/man7/ossl-guide-quic-client-non-block.7" => [ + "doc/man7/ossl-guide-quic-client-non-block.pod" + ], + "doc/man/man7/ossl-guide-quic-introduction.7" => [ + "doc/man7/ossl-guide-quic-introduction.pod" + ], + "doc/man/man7/ossl-guide-quic-multi-stream.7" => [ + "doc/man7/ossl-guide-quic-multi-stream.pod" + ], + "doc/man/man7/ossl-guide-quic-server-block.7" => [ + "doc/man7/ossl-guide-quic-server-block.pod" + ], + "doc/man/man7/ossl-guide-quic-server-non-block.7" => [ + "doc/man7/ossl-guide-quic-server-non-block.pod" + ], + "doc/man/man7/ossl-guide-tls-client-block.7" => [ + "doc/man7/ossl-guide-tls-client-block.pod" + ], + "doc/man/man7/ossl-guide-tls-client-non-block.7" => [ + "doc/man7/ossl-guide-tls-client-non-block.pod" + ], + "doc/man/man7/ossl-guide-tls-introduction.7" => [ + "doc/man7/ossl-guide-tls-introduction.pod" + ], + "doc/man/man7/ossl-guide-tls-server-block.7" => [ + "doc/man7/ossl-guide-tls-server-block.pod" + ], "doc/man/man7/ossl_store-file.7" => [ "doc/man7/ossl_store-file.pod" ], @@ -15791,6 +18315,9 @@ our %unified_info = ( "doc/man/man7/provider-signature.7" => [ "doc/man7/provider-signature.pod" ], + "doc/man/man7/provider-skeymgmt.7" => [ + "doc/man7/provider-skeymgmt.pod" + ], "doc/man/man7/provider-storemgmt.7" => [ "doc/man7/provider-storemgmt.pod" ], @@ -15800,9 +18327,6 @@ our %unified_info = ( "doc/man/man7/proxy-certificates.7" => [ "doc/man7/proxy-certificates.pod" ], - "doc/man/man7/ssl.7" => [ - "doc/man7/ssl.pod" - ], "doc/man/man7/x509.7" => [ "doc/man7/x509.pod" ], @@ -15938,6 +18462,9 @@ our %unified_info = ( "doc/man1/openssl-sess_id.pod" => [ "doc/man1/openssl-sess_id.pod.in" ], + "doc/man1/openssl-skeyutl.pod" => [ + "doc/man1/openssl-skeyutl.pod.in" + ], "doc/man1/openssl-smime.pod" => [ "doc/man1/openssl-smime.pod.in" ], @@ -15974,12 +18501,30 @@ our %unified_info = ( "engines/e_padlock-x86_64.s" => [ "engines/asm/e_padlock-x86_64.pl" ], + "exporters/OpenSSLConfig.cmake" => [ + "exporters/cmake/OpenSSLConfig.cmake.in" + ], + "exporters/OpenSSLConfigVersion.cmake" => [ + "exporters/cmake/OpenSSLConfigVersion.cmake.in" + ], + "exporters/libcrypto.pc" => [ + "exporters/pkg-config/libcrypto.pc.in" + ], + "exporters/libssl.pc" => [ + "exporters/pkg-config/libssl.pc.in" + ], + "exporters/openssl.pc" => [ + "exporters/pkg-config/openssl.pc.in" + ], "include/crypto/bn_conf.h" => [ "include/crypto/bn_conf.h.in" ], "include/crypto/dso_conf.h" => [ "include/crypto/dso_conf.h.in" ], + "include/internal/param_names.h" => [ + "include/internal/param_names.h.in" + ], "include/openssl/asn1.h" => [ "include/openssl/asn1.h.in" ], @@ -15995,12 +18540,18 @@ our %unified_info = ( "include/openssl/cms.h" => [ "include/openssl/cms.h.in" ], + "include/openssl/comp.h" => [ + "include/openssl/comp.h.in" + ], "include/openssl/conf.h" => [ "include/openssl/conf.h.in" ], "include/openssl/configuration.h" => [ "include/openssl/configuration.h.in" ], + "include/openssl/core_names.h" => [ + "include/openssl/core_names.h.in" + ], "include/openssl/crmf.h" => [ "include/openssl/crmf.h.in" ], @@ -16049,12 +18600,39 @@ our %unified_info = ( "include/openssl/x509.h" => [ "include/openssl/x509.h.in" ], + "include/openssl/x509_acert.h" => [ + "include/openssl/x509_acert.h.in" + ], "include/openssl/x509_vfy.h" => [ "include/openssl/x509_vfy.h.in" ], "include/openssl/x509v3.h" => [ "include/openssl/x509v3.h.in" ], + "installdata.pm" => [ + "util/mkinstallvars.pl", + "\"PREFIX=\$(INSTALLTOP)\"", + "BINDIR=bin", + "\"LIBDIR=\$(LIBDIR)\"", + "\"libdir=\$(libdir)\"", + "INCLUDEDIR=include", + "APPLINKDIR=include/openssl", + "\"ENGINESDIR=\$(ENGINESDIR)\"", + "\"MODULESDIR=\$(MODULESDIR)\"", + "\"PKGCONFIGDIR=\$(PKGCONFIGDIR)\"", + "\"CMAKECONFIGDIR=\$(CMAKECONFIGDIR)\"", + "\"LDLIBS=\$(LIB_EX_LIBS)\"", + "\"VERSION=\$(VERSION)\"" + ], + "libcrypto.pc" => [ + "exporters/pkg-config/libcrypto.pc.in" + ], + "libssl.pc" => [ + "exporters/pkg-config/libssl.pc.in" + ], + "openssl.pc" => [ + "exporters/pkg-config/openssl.pc.in" + ], "providers/common/der/der_digests_gen.c" => [ "providers/common/der/der_digests_gen.c.in" ], @@ -16067,9 +18645,15 @@ our %unified_info = ( "providers/common/der/der_ecx_gen.c" => [ "providers/common/der/der_ecx_gen.c.in" ], + "providers/common/der/der_ml_dsa_gen.c" => [ + "providers/common/der/der_ml_dsa_gen.c.in" + ], "providers/common/der/der_rsa_gen.c" => [ "providers/common/der/der_rsa_gen.c.in" ], + "providers/common/der/der_slh_dsa_gen.c" => [ + "providers/common/der/der_slh_dsa_gen.c.in" + ], "providers/common/der/der_sm2_gen.c" => [ "providers/common/der/der_sm2_gen.c.in" ], @@ -16088,9 +18672,15 @@ our %unified_info = ( "providers/common/include/prov/der_ecx.h" => [ "providers/common/include/prov/der_ecx.h.in" ], + "providers/common/include/prov/der_ml_dsa.h" => [ + "providers/common/include/prov/der_ml_dsa.h.in" + ], "providers/common/include/prov/der_rsa.h" => [ "providers/common/include/prov/der_rsa.h.in" ], + "providers/common/include/prov/der_slh_dsa.h" => [ + "providers/common/include/prov/der_slh_dsa.h.in" + ], "providers/common/include/prov/der_sm2.h" => [ "providers/common/include/prov/der_sm2.h.in" ], @@ -16126,6 +18716,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "buffer" ], + "test/buildtest_byteorder.c" => [ + "test/generate_buildtest.pl", + "byteorder" + ], "test/buildtest_camellia.c" => [ "test/generate_buildtest.pl", "camellia" @@ -16158,10 +18752,6 @@ our %unified_info = ( "test/generate_buildtest.pl", "core_dispatch" ], - "test/buildtest_core_names.c" => [ - "test/generate_buildtest.pl", - "core_names" - ], "test/buildtest_core_object.c" => [ "test/generate_buildtest.pl", "core_object" @@ -16194,6 +18784,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "e_os2" ], + "test/buildtest_e_ostime.c" => [ + "test/generate_buildtest.pl", + "e_ostime" + ], "test/buildtest_ebcdic.c" => [ "test/generate_buildtest.pl", "ebcdic" @@ -16230,6 +18824,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "hmac" ], + "test/buildtest_hpke.c" => [ + "test/generate_buildtest.pl", + "hpke" + ], "test/buildtest_http.c" => [ "test/generate_buildtest.pl", "http" @@ -16238,6 +18836,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "idea" ], + "test/buildtest_indicator.c" => [ + "test/generate_buildtest.pl", + "indicator" + ], "test/buildtest_kdf.c" => [ "test/generate_buildtest.pl", "kdf" @@ -16258,6 +18860,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "mdc2" ], + "test/buildtest_ml_kem.c" => [ + "test/generate_buildtest.pl", + "ml_kem" + ], "test/buildtest_modes.c" => [ "test/generate_buildtest.pl", "modes" @@ -16298,6 +18904,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "provider" ], + "test/buildtest_quic.c" => [ + "test/generate_buildtest.pl", + "quic" + ], "test/buildtest_rand.c" => [ "test/generate_buildtest.pl", "rand" @@ -16354,6 +18964,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "symhacks" ], + "test/buildtest_thread.c" => [ + "test/generate_buildtest.pl", + "thread" + ], "test/buildtest_tls1.c" => [ "test/generate_buildtest.pl", "tls1" @@ -16428,6 +19042,7 @@ our %unified_info = ( "doc/html/man1/openssl-s_server.html", "doc/html/man1/openssl-s_time.html", "doc/html/man1/openssl-sess_id.html", + "doc/html/man1/openssl-skeyutl.html", "doc/html/man1/openssl-smime.html", "doc/html/man1/openssl-speed.html", "doc/html/man1/openssl-spkac.html", @@ -16477,6 +19092,7 @@ our %unified_info = ( "doc/html/man3/BIO_find_type.html", "doc/html/man3/BIO_get_data.html", "doc/html/man3/BIO_get_ex_new_index.html", + "doc/html/man3/BIO_get_rpoll_descriptor.html", "doc/html/man3/BIO_meth_new.html", "doc/html/man3/BIO_new.html", "doc/html/man3/BIO_new_CMS.html", @@ -16489,11 +19105,13 @@ our %unified_info = ( "doc/html/man3/BIO_s_connect.html", "doc/html/man3/BIO_s_core.html", "doc/html/man3/BIO_s_datagram.html", + "doc/html/man3/BIO_s_dgram_pair.html", "doc/html/man3/BIO_s_fd.html", "doc/html/man3/BIO_s_file.html", "doc/html/man3/BIO_s_mem.html", "doc/html/man3/BIO_s_null.html", "doc/html/man3/BIO_s_socket.html", + "doc/html/man3/BIO_sendmmsg.html", "doc/html/man3/BIO_set_callback.html", "doc/html/man3/BIO_should_retry.html", "doc/html/man3/BIO_socket_wait.html", @@ -16518,6 +19136,7 @@ our %unified_info = ( "doc/html/man3/BN_swap.html", "doc/html/man3/BN_zero.html", "doc/html/man3/BUF_MEM_new.html", + "doc/html/man3/CMAC_CTX.html", "doc/html/man3/CMS_EncryptedData_decrypt.html", "doc/html/man3/CMS_EncryptedData_encrypt.html", "doc/html/man3/CMS_EnvelopedData_create.html", @@ -16540,6 +19159,7 @@ our %unified_info = ( "doc/html/man3/CMS_uncompress.html", "doc/html/man3/CMS_verify.html", "doc/html/man3/CMS_verify_receipt.html", + "doc/html/man3/COMP_CTX_new.html", "doc/html/man3/CONF_modules_free.html", "doc/html/man3/CONF_modules_load_file.html", "doc/html/man3/CRYPTO_THREAD_run_once.html", @@ -16573,6 +19193,8 @@ our %unified_info = ( "doc/html/man3/DSA_size.html", "doc/html/man3/DTLS_get_data_mtu.html", "doc/html/man3/DTLS_set_timer_cb.html", + "doc/html/man3/DTLSv1_get_timeout.html", + "doc/html/man3/DTLSv1_handle_timeout.html", "doc/html/man3/DTLSv1_listen.html", "doc/html/man3/ECDSA_SIG_new.html", "doc/html/man3/ECDSA_sign.html", @@ -16619,6 +19241,7 @@ our %unified_info = ( "doc/html/man3/EVP_PKEY_CTX_ctrl.html", "doc/html/man3/EVP_PKEY_CTX_get0_libctx.html", "doc/html/man3/EVP_PKEY_CTX_get0_pkey.html", + "doc/html/man3/EVP_PKEY_CTX_get_algor.html", "doc/html/man3/EVP_PKEY_CTX_new.html", "doc/html/man3/EVP_PKEY_CTX_set1_pbe_pass.html", "doc/html/man3/EVP_PKEY_CTX_set_hkdf_md.html", @@ -16658,6 +19281,8 @@ our %unified_info = ( "doc/html/man3/EVP_PKEY_verify_recover.html", "doc/html/man3/EVP_RAND.html", "doc/html/man3/EVP_SIGNATURE.html", + "doc/html/man3/EVP_SKEY.html", + "doc/html/man3/EVP_SKEYMGMT.html", "doc/html/man3/EVP_SealInit.html", "doc/html/man3/EVP_SignInit.html", "doc/html/man3/EVP_VerifyInit.html", @@ -16687,6 +19312,7 @@ our %unified_info = ( "doc/html/man3/EVP_sm3.html", "doc/html/man3/EVP_sm4_cbc.html", "doc/html/man3/EVP_whirlpool.html", + "doc/html/man3/GENERAL_NAME.html", "doc/html/man3/HMAC.html", "doc/html/man3/MD5.html", "doc/html/man3/MDC2_Init.html", @@ -16711,14 +19337,18 @@ our %unified_info = ( "doc/html/man3/OPENSSL_init_ssl.html", "doc/html/man3/OPENSSL_instrument_bus.html", "doc/html/man3/OPENSSL_load_builtin_modules.html", + "doc/html/man3/OPENSSL_load_u16_le.html", "doc/html/man3/OPENSSL_malloc.html", + "doc/html/man3/OPENSSL_riscvcap.html", "doc/html/man3/OPENSSL_s390xcap.html", "doc/html/man3/OPENSSL_secure_malloc.html", "doc/html/man3/OPENSSL_strcasecmp.html", "doc/html/man3/OSSL_ALGORITHM.html", "doc/html/man3/OSSL_CALLBACK.html", + "doc/html/man3/OSSL_CMP_ATAV_set0.html", "doc/html/man3/OSSL_CMP_CTX_new.html", "doc/html/man3/OSSL_CMP_HDR_get0_transactionID.html", + "doc/html/man3/OSSL_CMP_ITAV_new_caCerts.html", "doc/html/man3/OSSL_CMP_ITAV_set0.html", "doc/html/man3/OSSL_CMP_MSG_get0_header.html", "doc/html/man3/OSSL_CMP_MSG_http_perform.html", @@ -16742,18 +19372,27 @@ our %unified_info = ( "doc/html/man3/OSSL_ENCODER_CTX.html", "doc/html/man3/OSSL_ENCODER_CTX_new_for_pkey.html", "doc/html/man3/OSSL_ENCODER_to_bio.html", + "doc/html/man3/OSSL_ERR_STATE_save.html", "doc/html/man3/OSSL_ESS_check_signing_certs.html", + "doc/html/man3/OSSL_GENERAL_NAMES_print.html", + "doc/html/man3/OSSL_HPKE_CTX_new.html", "doc/html/man3/OSSL_HTTP_REQ_CTX.html", "doc/html/man3/OSSL_HTTP_parse_url.html", "doc/html/man3/OSSL_HTTP_transfer.html", + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX.html", + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX_print.html", + "doc/html/man3/OSSL_INDICATOR_set_callback.html", "doc/html/man3/OSSL_ITEM.html", "doc/html/man3/OSSL_LIB_CTX.html", + "doc/html/man3/OSSL_LIB_CTX_set_conf_diagnostics.html", "doc/html/man3/OSSL_PARAM.html", "doc/html/man3/OSSL_PARAM_BLD.html", "doc/html/man3/OSSL_PARAM_allocate_from_text.html", "doc/html/man3/OSSL_PARAM_dup.html", "doc/html/man3/OSSL_PARAM_int.html", + "doc/html/man3/OSSL_PARAM_print_to_bio.html", "doc/html/man3/OSSL_PROVIDER.html", + "doc/html/man3/OSSL_QUIC_client_method.html", "doc/html/man3/OSSL_SELF_TEST_new.html", "doc/html/man3/OSSL_SELF_TEST_set_callback.html", "doc/html/man3/OSSL_STORE_INFO.html", @@ -16762,11 +19401,13 @@ our %unified_info = ( "doc/html/man3/OSSL_STORE_attach.html", "doc/html/man3/OSSL_STORE_expect.html", "doc/html/man3/OSSL_STORE_open.html", + "doc/html/man3/OSSL_sleep.html", "doc/html/man3/OSSL_trace_enabled.html", "doc/html/man3/OSSL_trace_get_category_num.html", "doc/html/man3/OSSL_trace_set_channel.html", "doc/html/man3/OpenSSL_add_all_algorithms.html", "doc/html/man3/OpenSSL_version.html", + "doc/html/man3/PBMAC1_get1_pbkdf2_param.html", "doc/html/man3/PEM_X509_INFO_read_bio_ex.html", "doc/html/man3/PEM_bytes_read_bio.html", "doc/html/man3/PEM_read.html", @@ -16779,6 +19420,7 @@ our %unified_info = ( "doc/html/man3/PKCS12_SAFEBAG_create_cert.html", "doc/html/man3/PKCS12_SAFEBAG_get0_attrs.html", "doc/html/man3/PKCS12_SAFEBAG_get1_cert.html", + "doc/html/man3/PKCS12_SAFEBAG_set0_attrs.html", "doc/html/man3/PKCS12_add1_attr_by_NID.html", "doc/html/man3/PKCS12_add_CSPName_asc.html", "doc/html/man3/PKCS12_add_cert.html", @@ -16870,6 +19512,7 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_sess_set_get_cb.html", "doc/html/man3/SSL_CTX_sessions.html", "doc/html/man3/SSL_CTX_set0_CA_list.html", + "doc/html/man3/SSL_CTX_set1_cert_comp_preference.html", "doc/html/man3/SSL_CTX_set1_curves.html", "doc/html/man3/SSL_CTX_set1_sigalgs.html", "doc/html/man3/SSL_CTX_set1_verify_cert_store.html", @@ -16883,6 +19526,7 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_ct_validation_callback.html", "doc/html/man3/SSL_CTX_set_ctlog_list_file.html", "doc/html/man3/SSL_CTX_set_default_passwd_cb.html", + "doc/html/man3/SSL_CTX_set_domain_flags.html", "doc/html/man3/SSL_CTX_set_generate_session_id.html", "doc/html/man3/SSL_CTX_set_info_callback.html", "doc/html/man3/SSL_CTX_set_keylog_callback.html", @@ -16890,6 +19534,7 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_min_proto_version.html", "doc/html/man3/SSL_CTX_set_mode.html", "doc/html/man3/SSL_CTX_set_msg_callback.html", + "doc/html/man3/SSL_CTX_set_new_pending_conn_cb.html", "doc/html/man3/SSL_CTX_set_num_tickets.html", "doc/html/man3/SSL_CTX_set_options.html", "doc/html/man3/SSL_CTX_set_psk_client_callback.html", @@ -16928,6 +19573,7 @@ our %unified_info = ( "doc/html/man3/SSL_SESSION_print.html", "doc/html/man3/SSL_SESSION_set1_id.html", "doc/html/man3/SSL_accept.html", + "doc/html/man3/SSL_accept_stream.html", "doc/html/man3/SSL_alert_type_string.html", "doc/html/man3/SSL_alloc_buffers.html", "doc/html/man3/SSL_check_chain.html", @@ -16937,59 +19583,90 @@ our %unified_info = ( "doc/html/man3/SSL_export_keying_material.html", "doc/html/man3/SSL_extension_supported.html", "doc/html/man3/SSL_free.html", + "doc/html/man3/SSL_get0_connection.html", + "doc/html/man3/SSL_get0_group_name.html", + "doc/html/man3/SSL_get0_peer_rpk.html", "doc/html/man3/SSL_get0_peer_scts.html", + "doc/html/man3/SSL_get1_builtin_sigalgs.html", "doc/html/man3/SSL_get_SSL_CTX.html", "doc/html/man3/SSL_get_all_async_fds.html", "doc/html/man3/SSL_get_certificate.html", "doc/html/man3/SSL_get_ciphers.html", "doc/html/man3/SSL_get_client_random.html", + "doc/html/man3/SSL_get_conn_close_info.html", "doc/html/man3/SSL_get_current_cipher.html", "doc/html/man3/SSL_get_default_timeout.html", "doc/html/man3/SSL_get_error.html", + "doc/html/man3/SSL_get_event_timeout.html", "doc/html/man3/SSL_get_extms_support.html", "doc/html/man3/SSL_get_fd.html", + "doc/html/man3/SSL_get_handshake_rtt.html", "doc/html/man3/SSL_get_peer_cert_chain.html", "doc/html/man3/SSL_get_peer_certificate.html", "doc/html/man3/SSL_get_peer_signature_nid.html", "doc/html/man3/SSL_get_peer_tmp_key.html", "doc/html/man3/SSL_get_psk_identity.html", "doc/html/man3/SSL_get_rbio.html", + "doc/html/man3/SSL_get_rpoll_descriptor.html", "doc/html/man3/SSL_get_session.html", "doc/html/man3/SSL_get_shared_sigalgs.html", + "doc/html/man3/SSL_get_stream_id.html", + "doc/html/man3/SSL_get_stream_read_state.html", + "doc/html/man3/SSL_get_value_uint.html", "doc/html/man3/SSL_get_verify_result.html", "doc/html/man3/SSL_get_version.html", "doc/html/man3/SSL_group_to_name.html", + "doc/html/man3/SSL_handle_events.html", "doc/html/man3/SSL_in_init.html", + "doc/html/man3/SSL_inject_net_dgram.html", "doc/html/man3/SSL_key_update.html", "doc/html/man3/SSL_library_init.html", "doc/html/man3/SSL_load_client_CA_file.html", "doc/html/man3/SSL_new.html", + "doc/html/man3/SSL_new_domain.html", + "doc/html/man3/SSL_new_listener.html", + "doc/html/man3/SSL_new_stream.html", "doc/html/man3/SSL_pending.html", + "doc/html/man3/SSL_poll.html", "doc/html/man3/SSL_read.html", "doc/html/man3/SSL_read_early_data.html", "doc/html/man3/SSL_rstate_string.html", "doc/html/man3/SSL_session_reused.html", "doc/html/man3/SSL_set1_host.html", + "doc/html/man3/SSL_set1_initial_peer_addr.html", + "doc/html/man3/SSL_set1_server_cert_type.html", "doc/html/man3/SSL_set_async_callback.html", "doc/html/man3/SSL_set_bio.html", + "doc/html/man3/SSL_set_blocking_mode.html", "doc/html/man3/SSL_set_connect_state.html", + "doc/html/man3/SSL_set_default_stream_mode.html", "doc/html/man3/SSL_set_fd.html", + "doc/html/man3/SSL_set_incoming_stream_policy.html", + "doc/html/man3/SSL_set_quic_tls_cbs.html", "doc/html/man3/SSL_set_retry_verify.html", "doc/html/man3/SSL_set_session.html", + "doc/html/man3/SSL_set_session_secret_cb.html", "doc/html/man3/SSL_set_shutdown.html", "doc/html/man3/SSL_set_verify_result.html", "doc/html/man3/SSL_shutdown.html", "doc/html/man3/SSL_state_string.html", + "doc/html/man3/SSL_stream_conclude.html", + "doc/html/man3/SSL_stream_reset.html", "doc/html/man3/SSL_want.html", "doc/html/man3/SSL_write.html", "doc/html/man3/TS_RESP_CTX_new.html", - "doc/html/man3/TS_VERIFY_CTX_set_certs.html", + "doc/html/man3/TS_VERIFY_CTX.html", "doc/html/man3/UI_STRING.html", "doc/html/man3/UI_UTIL_read_pw.html", "doc/html/man3/UI_create_method.html", "doc/html/man3/UI_new.html", "doc/html/man3/X509V3_get_d2i.html", "doc/html/man3/X509V3_set_ctx.html", + "doc/html/man3/X509_ACERT_add1_attr.html", + "doc/html/man3/X509_ACERT_add_attr_nconf.html", + "doc/html/man3/X509_ACERT_get0_holder_baseCertId.html", + "doc/html/man3/X509_ACERT_get_attr.html", + "doc/html/man3/X509_ACERT_print_ex.html", "doc/html/man3/X509_ALGOR_dup.html", "doc/html/man3/X509_ATTRIBUTE.html", "doc/html/man3/X509_CRL_get0_by_serial.html", @@ -17006,6 +19683,7 @@ our %unified_info = ( "doc/html/man3/X509_REQ_get_attr.html", "doc/html/man3/X509_REQ_get_extensions.html", "doc/html/man3/X509_SIG_get0.html", + "doc/html/man3/X509_STORE_CTX_get_by_subject.html", "doc/html/man3/X509_STORE_CTX_get_error.html", "doc/html/man3/X509_STORE_CTX_new.html", "doc/html/man3/X509_STORE_CTX_set_verify_cb.html", @@ -17028,6 +19706,7 @@ our %unified_info = ( "doc/html/man3/X509_get0_notBefore.html", "doc/html/man3/X509_get0_signature.html", "doc/html/man3/X509_get0_uids.html", + "doc/html/man3/X509_get_default_cert_file.html", "doc/html/man3/X509_get_extension_flags.html", "doc/html/man3/X509_get_pubkey.html", "doc/html/man3/X509_get_serialNumber.html", @@ -17073,12 +19752,15 @@ our %unified_info = ( "doc/html/man7/EVP_CIPHER-RC5.html", "doc/html/man7/EVP_CIPHER-SEED.html", "doc/html/man7/EVP_CIPHER-SM4.html", + "doc/html/man7/EVP_KDF-ARGON2.html", "doc/html/man7/EVP_KDF-HKDF.html", + "doc/html/man7/EVP_KDF-HMAC-DRBG.html", "doc/html/man7/EVP_KDF-KB.html", "doc/html/man7/EVP_KDF-KRB5KDF.html", "doc/html/man7/EVP_KDF-PBKDF1.html", "doc/html/man7/EVP_KDF-PBKDF2.html", "doc/html/man7/EVP_KDF-PKCS12KDF.html", + "doc/html/man7/EVP_KDF-PVKKDF.html", "doc/html/man7/EVP_KDF-SCRYPT.html", "doc/html/man7/EVP_KDF-SS.html", "doc/html/man7/EVP_KDF-SSHKDF.html", @@ -17087,7 +19769,10 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-X942-ASN1.html", "doc/html/man7/EVP_KDF-X942-CONCAT.html", "doc/html/man7/EVP_KDF-X963.html", + "doc/html/man7/EVP_KEM-EC.html", + "doc/html/man7/EVP_KEM-ML-KEM.html", "doc/html/man7/EVP_KEM-RSA.html", + "doc/html/man7/EVP_KEM-X25519.html", "doc/html/man7/EVP_KEYEXCH-DH.html", "doc/html/man7/EVP_KEYEXCH-ECDH.html", "doc/html/man7/EVP_KEYEXCH-X25519.html", @@ -17099,6 +19784,7 @@ our %unified_info = ( "doc/html/man7/EVP_MAC-Poly1305.html", "doc/html/man7/EVP_MAC-Siphash.html", "doc/html/man7/EVP_MD-BLAKE2.html", + "doc/html/man7/EVP_MD-KECCAK.html", "doc/html/man7/EVP_MD-MD2.html", "doc/html/man7/EVP_MD-MD4.html", "doc/html/man7/EVP_MD-MD5-SHA1.html", @@ -17118,12 +19804,17 @@ our %unified_info = ( "doc/html/man7/EVP_PKEY-EC.html", "doc/html/man7/EVP_PKEY-FFC.html", "doc/html/man7/EVP_PKEY-HMAC.html", + "doc/html/man7/EVP_PKEY-ML-DSA.html", + "doc/html/man7/EVP_PKEY-ML-KEM.html", "doc/html/man7/EVP_PKEY-RSA.html", + "doc/html/man7/EVP_PKEY-SLH-DSA.html", "doc/html/man7/EVP_PKEY-SM2.html", "doc/html/man7/EVP_PKEY-X25519.html", + "doc/html/man7/EVP_RAND-CRNG-TEST.html", "doc/html/man7/EVP_RAND-CTR-DRBG.html", "doc/html/man7/EVP_RAND-HASH-DRBG.html", "doc/html/man7/EVP_RAND-HMAC-DRBG.html", + "doc/html/man7/EVP_RAND-JITTER.html", "doc/html/man7/EVP_RAND-SEED-SRC.html", "doc/html/man7/EVP_RAND-TEST-RAND.html", "doc/html/man7/EVP_RAND.html", @@ -17131,17 +19822,19 @@ our %unified_info = ( "doc/html/man7/EVP_SIGNATURE-ECDSA.html", "doc/html/man7/EVP_SIGNATURE-ED25519.html", "doc/html/man7/EVP_SIGNATURE-HMAC.html", + "doc/html/man7/EVP_SIGNATURE-ML-DSA.html", "doc/html/man7/EVP_SIGNATURE-RSA.html", + "doc/html/man7/EVP_SIGNATURE-SLH-DSA.html", "doc/html/man7/OSSL_PROVIDER-FIPS.html", "doc/html/man7/OSSL_PROVIDER-base.html", "doc/html/man7/OSSL_PROVIDER-default.html", "doc/html/man7/OSSL_PROVIDER-legacy.html", "doc/html/man7/OSSL_PROVIDER-null.html", + "doc/html/man7/OSSL_STORE-winstore.html", "doc/html/man7/RAND.html", "doc/html/man7/RSA-PSS.html", "doc/html/man7/X25519.html", "doc/html/man7/bio.html", - "doc/html/man7/crypto.html", "doc/html/man7/ct.html", "doc/html/man7/des_modes.html", "doc/html/man7/evp.html", @@ -17152,14 +19845,31 @@ our %unified_info = ( "doc/html/man7/life_cycle-mac.html", "doc/html/man7/life_cycle-pkey.html", "doc/html/man7/life_cycle-rand.html", - "doc/html/man7/migration_guide.html", "doc/html/man7/openssl-core.h.html", "doc/html/man7/openssl-core_dispatch.h.html", "doc/html/man7/openssl-core_names.h.html", "doc/html/man7/openssl-env.html", "doc/html/man7/openssl-glossary.html", + "doc/html/man7/openssl-qlog.html", + "doc/html/man7/openssl-quic-concurrency.html", + "doc/html/man7/openssl-quic.html", "doc/html/man7/openssl-threads.html", "doc/html/man7/openssl_user_macros.html", + "doc/html/man7/ossl-guide-introduction.html", + "doc/html/man7/ossl-guide-libcrypto-introduction.html", + "doc/html/man7/ossl-guide-libraries-introduction.html", + "doc/html/man7/ossl-guide-libssl-introduction.html", + "doc/html/man7/ossl-guide-migration.html", + "doc/html/man7/ossl-guide-quic-client-block.html", + "doc/html/man7/ossl-guide-quic-client-non-block.html", + "doc/html/man7/ossl-guide-quic-introduction.html", + "doc/html/man7/ossl-guide-quic-multi-stream.html", + "doc/html/man7/ossl-guide-quic-server-block.html", + "doc/html/man7/ossl-guide-quic-server-non-block.html", + "doc/html/man7/ossl-guide-tls-client-block.html", + "doc/html/man7/ossl-guide-tls-client-non-block.html", + "doc/html/man7/ossl-guide-tls-introduction.html", + "doc/html/man7/ossl-guide-tls-server-block.html", "doc/html/man7/ossl_store-file.html", "doc/html/man7/ossl_store.html", "doc/html/man7/passphrase-encoding.html", @@ -17178,10 +19888,10 @@ our %unified_info = ( "doc/html/man7/provider-object.html", "doc/html/man7/provider-rand.html", "doc/html/man7/provider-signature.html", + "doc/html/man7/provider-skeymgmt.html", "doc/html/man7/provider-storemgmt.html", "doc/html/man7/provider.html", "doc/html/man7/proxy-certificates.html", - "doc/html/man7/ssl.html", "doc/html/man7/x509.html" ] }, @@ -17196,12 +19906,21 @@ our %unified_info = ( ] }, "includes" => { + "OpenSSLConfig.cmake" => [ + "." + ], + "OpenSSLConfigVersion.cmake" => [ + "." + ], "apps/asn1parse.o" => [ "apps" ], "apps/ca.o" => [ "apps" ], + "apps/ca_internals_test-bin-ca.o" => [ + "apps" + ], "apps/ciphers.o" => [ "apps" ], @@ -17428,6 +20147,9 @@ our %unified_info = ( "apps/openssl-bin-sess_id.o" => [ "apps" ], + "apps/openssl-bin-skeyutl.o" => [ + "apps" + ], "apps/openssl-bin-smime.o" => [ "apps" ], @@ -17515,6 +20237,9 @@ our %unified_info = ( "apps/sess_id.o" => [ "apps" ], + "apps/skeyutl.o" => [ + "apps" + ], "apps/smime.o" => [ "apps" ], @@ -17566,6 +20291,12 @@ our %unified_info = ( "crypto/aes/bsaes-armv7.o" => [ "crypto" ], + "crypto/aes/vpaes-armv8.o" => [ + "crypto" + ], + "crypto/aes/vpaes-loongarch64.o" => [ + "crypto" + ], "crypto/arm64cpuid.o" => [ "crypto" ], @@ -17617,9 +20348,15 @@ our %unified_info = ( "crypto/chacha/chacha-armv4.o" => [ "crypto" ], + "crypto/chacha/chacha-armv8-sve.o" => [ + "crypto" + ], "crypto/chacha/chacha-armv8.o" => [ "crypto" ], + "crypto/chacha/chacha-loongarch64.o" => [ + "crypto" + ], "crypto/chacha/chacha-s390x.o" => [ "crypto" ], @@ -17644,15 +20381,27 @@ our %unified_info = ( "crypto/ec/ecp_s390x_nistp.o" => [ "crypto" ], + "crypto/ec/ecp_sm2p256-armv8.o" => [ + "crypto" + ], + "crypto/ec/ecx_key.o" => [ + "crypto" + ], "crypto/ec/ecx_meth.o" => [ "crypto" ], "crypto/ec/ecx_s390x.o" => [ "crypto" ], + "crypto/ec/libcrypto-lib-ecx_key.o" => [ + "crypto" + ], "crypto/ec/libcrypto-lib-ecx_meth.o" => [ "crypto" ], + "crypto/ec/libfips-lib-ecx_key.o" => [ + "crypto" + ], "crypto/evp/e_aes.o" => [ "crypto", "crypto/modes" @@ -17724,9 +20473,18 @@ our %unified_info = ( "crypto/libfips-lib-cpuid.o" => [ "." ], + "crypto/md5/md5-aarch64.o" => [ + "crypto" + ], + "crypto/md5/md5-loongarch64.o" => [ + "crypto" + ], "crypto/md5/md5-sparcv9.o" => [ "crypto" ], + "crypto/modes/aes-gcm-armv8-unroll8_64.o" => [ + "crypto" + ], "crypto/modes/aes-gcm-armv8_64.o" => [ "crypto" ], @@ -17751,6 +20509,9 @@ our %unified_info = ( "crypto/modes/libfips-lib-gcm128.o" => [ "crypto" ], + "crypto/params_idx.c" => [ + "util/perl" + ], "crypto/poly1305/poly1305-armv4.o" => [ "crypto" ], @@ -17772,6 +20533,9 @@ our %unified_info = ( "crypto/sha/keccak1600-armv4.o" => [ "crypto" ], + "crypto/sha/keccak1600-armv8.o" => [ + "crypto" + ], "crypto/sha/sha1-armv4-large.o" => [ "crypto" ], @@ -17817,6 +20581,18 @@ our %unified_info = ( "crypto/sha/sha512-sparcv9.o" => [ "crypto" ], + "crypto/sm3/sm3-armv8.o" => [ + "crypto" + ], + "crypto/sm4/sm4-armv8.o" => [ + "crypto" + ], + "crypto/sm4/vpsm4-armv8.o" => [ + "crypto" + ], + "crypto/sm4/vpsm4_ex-armv8.o" => [ + "crypto" + ], "doc/man1/openssl-asn1parse.pod" => [ "doc" ], @@ -17949,6 +20725,9 @@ our %unified_info = ( "doc/man1/openssl-sess_id.pod" => [ "doc" ], + "doc/man1/openssl-skeyutl.pod" => [ + "doc" + ], "doc/man1/openssl-smime.pod" => [ "doc" ], @@ -17976,6 +20755,24 @@ our %unified_info = ( "doc/man1/openssl-x509.pod" => [ "doc" ], + "exporters/OpenSSLConfig.cmake" => [ + "." + ], + "exporters/OpenSSLConfigVersion.cmake" => [ + "." + ], + "exporters/libcrypto.pc" => [ + "." + ], + "exporters/libssl.pc" => [ + "." + ], + "exporters/openssl.pc" => [ + "." + ], + "fuzz/acert-test" => [ + "include" + ], "fuzz/asn1-test" => [ "include" ], @@ -18006,22 +20803,88 @@ our %unified_info = ( "fuzz/ct-test" => [ "include" ], + "fuzz/decoder-test" => [ + "include" + ], + "fuzz/dtlsclient-test" => [ + "include" + ], + "fuzz/dtlsserver-test" => [ + "include" + ], + "fuzz/hashtable-test" => [ + "include" + ], + "fuzz/ml-dsa-test" => [ + "include" + ], + "fuzz/ml-kem-test" => [ + "include" + ], + "fuzz/pem-test" => [ + "include" + ], + "fuzz/provider-test" => [ + "include" + ], + "fuzz/punycode-test" => [ + "include" + ], + "fuzz/quic-client-test" => [ + "include" + ], + "fuzz/quic-lcidm-test" => [ + "include" + ], + "fuzz/quic-rcidm-test" => [ + "include" + ], + "fuzz/quic-server-test" => [ + "include" + ], + "fuzz/quic-srtm-test" => [ + "include" + ], "fuzz/server-test" => [ "include" ], + "fuzz/slh-dsa-test" => [ + "include" + ], + "fuzz/smime-test" => [ + "include" + ], + "fuzz/v3name-test" => [ + "include" + ], "fuzz/x509-test" => [ "include" ], + "include/internal/param_names.h" => [ + "util/perl" + ], + "include/openssl/core_names.h" => [ + "util/perl" + ], "libcrypto" => [ ".", "include", "providers/common/include", "providers/implementations/include" ], + "libcrypto.pc" => [ + "." + ], "libssl" => [ ".", "include" ], + "libssl.pc" => [ + "." + ], + "openssl.pc" => [ + "." + ], "providers/common/der/der_digests_gen.c" => [ "providers/common/der" ], @@ -18061,6 +20924,15 @@ our %unified_info = ( "providers/common/der/der_ecx_key.o" => [ "providers/common/include/prov" ], + "providers/common/der/der_ml_dsa_gen.c" => [ + "providers/common/der" + ], + "providers/common/der/der_ml_dsa_gen.o" => [ + "providers/common/include/prov" + ], + "providers/common/der/der_ml_dsa_key.o" => [ + "providers/common/include/prov" + ], "providers/common/der/der_rsa_gen.c" => [ "providers/common/der" ], @@ -18073,6 +20945,15 @@ our %unified_info = ( "providers/common/der/der_rsa_sig.o" => [ "providers/common/include/prov" ], + "providers/common/der/der_slh_dsa_gen.c" => [ + "providers/common/der" + ], + "providers/common/der/der_slh_dsa_gen.o" => [ + "providers/common/include/prov" + ], + "providers/common/der/der_slh_dsa_key.o" => [ + "providers/common/include/prov" + ], "providers/common/der/der_sm2_gen.c" => [ "providers/common/der" ], @@ -18118,12 +20999,24 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ecx_key.o" => [ "providers/common/include/prov" ], + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o" => [ + "providers/common/include/prov" + ], + "providers/common/der/libcommon-lib-der_ml_dsa_key.o" => [ + "providers/common/include/prov" + ], "providers/common/der/libcommon-lib-der_rsa_gen.o" => [ "providers/common/include/prov" ], "providers/common/der/libcommon-lib-der_rsa_key.o" => [ "providers/common/include/prov" ], + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o" => [ + "providers/common/include/prov" + ], + "providers/common/der/libcommon-lib-der_slh_dsa_key.o" => [ + "providers/common/include/prov" + ], "providers/common/der/libcommon-lib-der_wrap_gen.o" => [ "providers/common/include/prov" ], @@ -18154,9 +21047,15 @@ our %unified_info = ( "providers/common/include/prov/der_ecx.h" => [ "providers/common/der" ], + "providers/common/include/prov/der_ml_dsa.h" => [ + "providers/common/der" + ], "providers/common/include/prov/der_rsa.h" => [ "providers/common/der" ], + "providers/common/include/prov/der_slh_dsa.h" => [ + "providers/common/der" + ], "providers/common/include/prov/der_sm2.h" => [ "providers/common/der" ], @@ -18199,9 +21098,15 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-eddsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/libdefault-lib-rsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/libdefault-lib-sm2_sig.o" => [ "providers/common/include/prov" ], @@ -18214,12 +21119,24 @@ our %unified_info = ( "providers/implementations/signature/libfips-lib-eddsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/libfips-lib-rsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o" => [ + "providers/common/include/prov" + ], + "providers/implementations/signature/ml_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/rsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/slh_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/sm2_sig.o" => [ "providers/common/include/prov" ], @@ -18232,28 +21149,39 @@ our %unified_info = ( "crypto", "include", "providers/implementations/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" ], "providers/libdefault.a" => [ ".", "crypto", "include", "providers/implementations/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" ], "providers/libfips.a" => [ ".", "crypto", "include", "providers/implementations/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" ], "providers/liblegacy.a" => [ ".", "crypto", "include", "providers/implementations/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" + ], + "providers/libtemplate.a" => [ + "crypto", + "include", + "providers/implementations/include", + "providers/common/include", + "providers/fips/include" ], "test/aborttest" => [ "include", @@ -18322,6 +21250,14 @@ our %unified_info = ( "include", "apps/include" ], + "test/bio_addr_test" => [ + "include", + "apps/include" + ], + "test/bio_base64_test" => [ + "include", + "apps/include" + ], "test/bio_callback_test" => [ "include", "apps/include" @@ -18330,6 +21266,11 @@ our %unified_info = ( "include", "apps/include" ], + "test/bio_dgram_test" => [ + "include", + "apps/include", + "." + ], "test/bio_enc_test" => [ "include", "apps/include" @@ -18338,6 +21279,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/bio_meth_test" => [ + "include", + "apps/include" + ], "test/bio_prefix_text" => [ ".", "include", @@ -18351,6 +21296,11 @@ our %unified_info = ( "include", "apps/include" ], + "test/bio_tfo_test" => [ + "include", + "apps/include", + "." + ], "test/bioprinttest" => [ "include", "apps/include" @@ -18365,6 +21315,9 @@ our %unified_info = ( "include", "apps/include" ], + "test/build_wincrypt_test" => [ + "include" + ], "test/buildtest_c_aes" => [ "include" ], @@ -18380,6 +21333,9 @@ our %unified_info = ( "test/buildtest_c_buffer" => [ "include" ], + "test/buildtest_c_byteorder" => [ + "include" + ], "test/buildtest_c_camellia" => [ "include" ], @@ -18404,9 +21360,6 @@ our %unified_info = ( "test/buildtest_c_core_dispatch" => [ "include" ], - "test/buildtest_c_core_names" => [ - "include" - ], "test/buildtest_c_core_object" => [ "include" ], @@ -18431,6 +21384,9 @@ our %unified_info = ( "test/buildtest_c_e_os2" => [ "include" ], + "test/buildtest_c_e_ostime" => [ + "include" + ], "test/buildtest_c_ebcdic" => [ "include" ], @@ -18458,12 +21414,18 @@ our %unified_info = ( "test/buildtest_c_hmac" => [ "include" ], + "test/buildtest_c_hpke" => [ + "include" + ], "test/buildtest_c_http" => [ "include" ], "test/buildtest_c_idea" => [ "include" ], + "test/buildtest_c_indicator" => [ + "include" + ], "test/buildtest_c_kdf" => [ "include" ], @@ -18479,6 +21441,9 @@ our %unified_info = ( "test/buildtest_c_mdc2" => [ "include" ], + "test/buildtest_c_ml_kem" => [ + "include" + ], "test/buildtest_c_modes" => [ "include" ], @@ -18509,6 +21474,9 @@ our %unified_info = ( "test/buildtest_c_provider" => [ "include" ], + "test/buildtest_c_quic" => [ + "include" + ], "test/buildtest_c_rand" => [ "include" ], @@ -18551,6 +21519,9 @@ our %unified_info = ( "test/buildtest_c_symhacks" => [ "include" ], + "test/buildtest_c_thread" => [ + "include" + ], "test/buildtest_c_tls1" => [ "include" ], @@ -18566,10 +21537,24 @@ our %unified_info = ( "test/buildtest_c_whrlpool" => [ "include" ], + "test/byteorder_test" => [ + "include", + "apps/include" + ], + "test/ca_internals_test" => [ + ".", + "include", + "apps/include" + ], "test/casttest" => [ "include", "apps/include" ], + "test/cert_comp_test" => [ + "include", + "apps/include", + "." + ], "test/chacha_internal_test" => [ ".", "include", @@ -18693,6 +21678,11 @@ our %unified_info = ( "include", "apps/include" ], + "test/decoder_propq_test" => [ + ".", + "include", + "apps/include" + ], "test/defltfips_test" => [ "include", "apps/include" @@ -18708,7 +21698,8 @@ our %unified_info = ( "test/drbgtest" => [ "include", "apps/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" ], "test/dsa_no_digest_size_test" => [ "include", @@ -18751,7 +21742,9 @@ our %unified_info = ( "test/endecode_test" => [ ".", "include", - "apps/include" + "apps/include", + "providers/common/include", + "providers/implementations/include" ], "test/endecoder_legacy_test" => [ ".", @@ -18796,6 +21789,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/evp_pkey_dhkem_test" => [ + "include", + "apps/include" + ], "test/evp_pkey_dparams_test" => [ "include", "apps/include" @@ -18804,10 +21801,18 @@ our %unified_info = ( "include", "apps/include" ], + "test/evp_skey_test" => [ + "include", + "apps/include" + ], "test/evp_test" => [ "include", "apps/include" ], + "test/evp_xof_test" => [ + "include", + "apps/include" + ], "test/exdatatest" => [ "include", "apps/include" @@ -18908,22 +21913,62 @@ our %unified_info = ( ".", "include" ], + "test/helpers/json_test-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/helpers/pkcs12.o" => [ ".", "include" ], + "test/helpers/pkcs12_api_test-bin-pkcs12.o" => [ + ".", + "include" + ], "test/helpers/pkcs12_format_test-bin-pkcs12.o" => [ ".", "include" ], + "test/helpers/quic_multistream_test-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quic_newcid_test-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quic_radix_test-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quic_srt_gen_test-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quicapitest-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quicfaultstest-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/helpers/recordlentest-bin-ssltestlib.o" => [ ".", "include" ], + "test/helpers/rpktest-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/helpers/servername_test-bin-ssltestlib.o" => [ ".", "include" ], + "test/helpers/ssl_handshake_rtt_test-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/helpers/ssl_test-bin-handshake.o" => [ ".", "include" @@ -18957,6 +22002,10 @@ our %unified_info = ( ".", "include" ], + "test/helpers/tls13groupselection_test-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/hexstr_test" => [ ".", "include", @@ -18966,6 +22015,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/hpke_test" => [ + "include", + "apps/include" + ], "test/http_test" => [ "include", "apps/include" @@ -18978,6 +22031,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/json_test" => [ + "include", + "apps/include" + ], "test/keymgmt_internal_test" => [ ".", "include", @@ -18992,6 +22049,10 @@ our %unified_info = ( "apps/include", "." ], + "test/list_test" => [ + "include", + "apps/include" + ], "test/localetest" => [ "include", "apps/include" @@ -19005,10 +22066,27 @@ our %unified_info = ( "include", "apps/include" ], + "test/membio_test" => [ + "include", + "apps/include", + "." + ], "test/memleaktest" => [ "include", "apps/include" ], + "test/ml_dsa_test" => [ + "include", + "apps/include" + ], + "test/ml_kem_evp_extra_test" => [ + "include", + "apps/include" + ], + "test/ml_kem_internal_test" => [ + "include", + "apps/include" + ], "test/modes_internal_test" => [ ".", "include", @@ -19043,6 +22121,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/pairwise_fail_test" => [ + "include", + "apps/include" + ], "test/param_build_test" => [ "include", "apps/include" @@ -19076,6 +22158,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/pkcs12_api_test" => [ + "include", + "apps/include" + ], "test/pkcs12_format_test" => [ "include", "apps/include" @@ -19097,6 +22183,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/priority_queue_test" => [ + "include", + "apps/include" + ], "test/property_test" => [ ".", "include", @@ -19110,6 +22200,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/provider_default_search_path_test" => [ + "include", + "apps/include" + ], "test/provider_fallback_test" => [ "include", "apps/include" @@ -19136,6 +22230,97 @@ our %unified_info = ( "include", "apps/include" ], + "test/quic_ackm_test" => [ + "include", + "apps/include" + ], + "test/quic_cc_test" => [ + "include", + "apps/include" + ], + "test/quic_cfq_test" => [ + "include", + "apps/include" + ], + "test/quic_client_test" => [ + "include", + "apps/include" + ], + "test/quic_fc_test" => [ + "include", + "apps/include" + ], + "test/quic_fifd_test" => [ + "include", + "apps/include" + ], + "test/quic_lcidm_test" => [ + "include", + "apps/include" + ], + "test/quic_multistream_test" => [ + "include", + "apps/include" + ], + "test/quic_newcid_test" => [ + "include", + "apps/include", + "." + ], + "test/quic_qlog_test" => [ + "include", + "apps/include" + ], + "test/quic_radix_test" => [ + "include", + "apps/include" + ], + "test/quic_rcidm_test" => [ + "include", + "apps/include" + ], + "test/quic_record_test" => [ + "include", + "apps/include" + ], + "test/quic_srt_gen_test" => [ + "include", + "apps/include", + "." + ], + "test/quic_srtm_test" => [ + "include", + "apps/include" + ], + "test/quic_stream_test" => [ + "include", + "apps/include" + ], + "test/quic_tserver_test" => [ + "include", + "apps/include" + ], + "test/quic_txp_test" => [ + "include", + "apps/include" + ], + "test/quic_txpim_test" => [ + "include", + "apps/include" + ], + "test/quic_wire_test" => [ + "include", + "apps/include" + ], + "test/quicapitest" => [ + "include", + "apps/include" + ], + "test/quicfaultstest" => [ + "include", + "apps/include", + "." + ], "test/rand_status_test" => [ "include", "apps/include" @@ -19156,14 +22341,20 @@ our %unified_info = ( "include", "apps/include" ], - "test/rdrand_sanitytest" => [ + "test/rdcpu_sanitytest" => [ "include", - "apps/include" + "apps/include", + "crypto" ], "test/recordlentest" => [ "include", "apps/include" ], + "test/rpktest" => [ + "include", + "apps/include", + "." + ], "test/rsa_complex" => [ "include", "apps/include" @@ -19182,6 +22373,15 @@ our %unified_info = ( "include", "apps/include" ], + "test/rsa_x931_test" => [ + ".", + "include", + "apps/include" + ], + "test/safe_math_test" => [ + "include", + "apps/include" + ], "test/sanitytest" => [ "include", "apps/include" @@ -19203,6 +22403,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/slh_dsa_test" => [ + "include", + "apps/include" + ], "test/sm2_internal_test" => [ "include", "apps/include" @@ -19233,6 +22437,11 @@ our %unified_info = ( "include", "apps/include" ], + "test/ssl_handshake_rtt_test" => [ + "include", + "apps/include", + "." + ], "test/ssl_old_test" => [ ".", "include", @@ -19249,6 +22458,7 @@ our %unified_info = ( "test/sslapitest" => [ "include", "apps/include", + "providers/common/include", "." ], "test/sslbuffertest" => [ @@ -19263,6 +22473,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/strtoultest" => [ + "include", + "apps/include" + ], "test/sysdefaulttest" => [ "include", "apps/include" @@ -19271,7 +22485,13 @@ our %unified_info = ( "include", "apps/include" ], + "test/threadpool_test" => [ + ".", + "include", + "apps/include" + ], "test/threadstest" => [ + ".", "include", "apps/include" ], @@ -19283,6 +22503,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/time_test" => [ + "include", + "apps/include" + ], "test/tls13ccstest" => [ "include", "apps/include" @@ -19292,6 +22516,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/tls13groupselection_test" => [ + "include", + "apps/include" + ], "test/trace_api_test" => [ ".", "include", @@ -19330,6 +22558,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/x509_acert_test" => [ + "include", + "apps/include" + ], "test/x509_check_cert_pkey_test" => [ "include", "apps/include" @@ -19343,6 +22575,18 @@ our %unified_info = ( "include", "apps/include" ], + "test/x509_load_cert_file_test" => [ + "include", + "apps/include" + ], + "test/x509_req_test" => [ + "include", + "apps/include" + ], + "test/x509_test" => [ + "include", + "apps/include" + ], "test/x509_time_test" => [ "include", "apps/include" @@ -19364,6 +22608,7 @@ our %unified_info = ( "providers/libdefault.a", "providers/libfips.a", "providers/liblegacy.a", + "providers/libtemplate.a", "test/libtestutil.a" ], "mandocs" => { @@ -19416,6 +22661,7 @@ our %unified_info = ( "doc/man/man1/openssl-s_server.1", "doc/man/man1/openssl-s_time.1", "doc/man/man1/openssl-sess_id.1", + "doc/man/man1/openssl-skeyutl.1", "doc/man/man1/openssl-smime.1", "doc/man/man1/openssl-speed.1", "doc/man/man1/openssl-spkac.1", @@ -19465,6 +22711,7 @@ our %unified_info = ( "doc/man/man3/BIO_find_type.3", "doc/man/man3/BIO_get_data.3", "doc/man/man3/BIO_get_ex_new_index.3", + "doc/man/man3/BIO_get_rpoll_descriptor.3", "doc/man/man3/BIO_meth_new.3", "doc/man/man3/BIO_new.3", "doc/man/man3/BIO_new_CMS.3", @@ -19477,11 +22724,13 @@ our %unified_info = ( "doc/man/man3/BIO_s_connect.3", "doc/man/man3/BIO_s_core.3", "doc/man/man3/BIO_s_datagram.3", + "doc/man/man3/BIO_s_dgram_pair.3", "doc/man/man3/BIO_s_fd.3", "doc/man/man3/BIO_s_file.3", "doc/man/man3/BIO_s_mem.3", "doc/man/man3/BIO_s_null.3", "doc/man/man3/BIO_s_socket.3", + "doc/man/man3/BIO_sendmmsg.3", "doc/man/man3/BIO_set_callback.3", "doc/man/man3/BIO_should_retry.3", "doc/man/man3/BIO_socket_wait.3", @@ -19506,6 +22755,7 @@ our %unified_info = ( "doc/man/man3/BN_swap.3", "doc/man/man3/BN_zero.3", "doc/man/man3/BUF_MEM_new.3", + "doc/man/man3/CMAC_CTX.3", "doc/man/man3/CMS_EncryptedData_decrypt.3", "doc/man/man3/CMS_EncryptedData_encrypt.3", "doc/man/man3/CMS_EnvelopedData_create.3", @@ -19528,6 +22778,7 @@ our %unified_info = ( "doc/man/man3/CMS_uncompress.3", "doc/man/man3/CMS_verify.3", "doc/man/man3/CMS_verify_receipt.3", + "doc/man/man3/COMP_CTX_new.3", "doc/man/man3/CONF_modules_free.3", "doc/man/man3/CONF_modules_load_file.3", "doc/man/man3/CRYPTO_THREAD_run_once.3", @@ -19561,6 +22812,8 @@ our %unified_info = ( "doc/man/man3/DSA_size.3", "doc/man/man3/DTLS_get_data_mtu.3", "doc/man/man3/DTLS_set_timer_cb.3", + "doc/man/man3/DTLSv1_get_timeout.3", + "doc/man/man3/DTLSv1_handle_timeout.3", "doc/man/man3/DTLSv1_listen.3", "doc/man/man3/ECDSA_SIG_new.3", "doc/man/man3/ECDSA_sign.3", @@ -19607,6 +22860,7 @@ our %unified_info = ( "doc/man/man3/EVP_PKEY_CTX_ctrl.3", "doc/man/man3/EVP_PKEY_CTX_get0_libctx.3", "doc/man/man3/EVP_PKEY_CTX_get0_pkey.3", + "doc/man/man3/EVP_PKEY_CTX_get_algor.3", "doc/man/man3/EVP_PKEY_CTX_new.3", "doc/man/man3/EVP_PKEY_CTX_set1_pbe_pass.3", "doc/man/man3/EVP_PKEY_CTX_set_hkdf_md.3", @@ -19646,6 +22900,8 @@ our %unified_info = ( "doc/man/man3/EVP_PKEY_verify_recover.3", "doc/man/man3/EVP_RAND.3", "doc/man/man3/EVP_SIGNATURE.3", + "doc/man/man3/EVP_SKEY.3", + "doc/man/man3/EVP_SKEYMGMT.3", "doc/man/man3/EVP_SealInit.3", "doc/man/man3/EVP_SignInit.3", "doc/man/man3/EVP_VerifyInit.3", @@ -19675,6 +22931,7 @@ our %unified_info = ( "doc/man/man3/EVP_sm3.3", "doc/man/man3/EVP_sm4_cbc.3", "doc/man/man3/EVP_whirlpool.3", + "doc/man/man3/GENERAL_NAME.3", "doc/man/man3/HMAC.3", "doc/man/man3/MD5.3", "doc/man/man3/MDC2_Init.3", @@ -19699,14 +22956,18 @@ our %unified_info = ( "doc/man/man3/OPENSSL_init_ssl.3", "doc/man/man3/OPENSSL_instrument_bus.3", "doc/man/man3/OPENSSL_load_builtin_modules.3", + "doc/man/man3/OPENSSL_load_u16_le.3", "doc/man/man3/OPENSSL_malloc.3", + "doc/man/man3/OPENSSL_riscvcap.3", "doc/man/man3/OPENSSL_s390xcap.3", "doc/man/man3/OPENSSL_secure_malloc.3", "doc/man/man3/OPENSSL_strcasecmp.3", "doc/man/man3/OSSL_ALGORITHM.3", "doc/man/man3/OSSL_CALLBACK.3", + "doc/man/man3/OSSL_CMP_ATAV_set0.3", "doc/man/man3/OSSL_CMP_CTX_new.3", "doc/man/man3/OSSL_CMP_HDR_get0_transactionID.3", + "doc/man/man3/OSSL_CMP_ITAV_new_caCerts.3", "doc/man/man3/OSSL_CMP_ITAV_set0.3", "doc/man/man3/OSSL_CMP_MSG_get0_header.3", "doc/man/man3/OSSL_CMP_MSG_http_perform.3", @@ -19730,18 +22991,27 @@ our %unified_info = ( "doc/man/man3/OSSL_ENCODER_CTX.3", "doc/man/man3/OSSL_ENCODER_CTX_new_for_pkey.3", "doc/man/man3/OSSL_ENCODER_to_bio.3", + "doc/man/man3/OSSL_ERR_STATE_save.3", "doc/man/man3/OSSL_ESS_check_signing_certs.3", + "doc/man/man3/OSSL_GENERAL_NAMES_print.3", + "doc/man/man3/OSSL_HPKE_CTX_new.3", "doc/man/man3/OSSL_HTTP_REQ_CTX.3", "doc/man/man3/OSSL_HTTP_parse_url.3", "doc/man/man3/OSSL_HTTP_transfer.3", + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX.3", + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX_print.3", + "doc/man/man3/OSSL_INDICATOR_set_callback.3", "doc/man/man3/OSSL_ITEM.3", "doc/man/man3/OSSL_LIB_CTX.3", + "doc/man/man3/OSSL_LIB_CTX_set_conf_diagnostics.3", "doc/man/man3/OSSL_PARAM.3", "doc/man/man3/OSSL_PARAM_BLD.3", "doc/man/man3/OSSL_PARAM_allocate_from_text.3", "doc/man/man3/OSSL_PARAM_dup.3", "doc/man/man3/OSSL_PARAM_int.3", + "doc/man/man3/OSSL_PARAM_print_to_bio.3", "doc/man/man3/OSSL_PROVIDER.3", + "doc/man/man3/OSSL_QUIC_client_method.3", "doc/man/man3/OSSL_SELF_TEST_new.3", "doc/man/man3/OSSL_SELF_TEST_set_callback.3", "doc/man/man3/OSSL_STORE_INFO.3", @@ -19750,11 +23020,13 @@ our %unified_info = ( "doc/man/man3/OSSL_STORE_attach.3", "doc/man/man3/OSSL_STORE_expect.3", "doc/man/man3/OSSL_STORE_open.3", + "doc/man/man3/OSSL_sleep.3", "doc/man/man3/OSSL_trace_enabled.3", "doc/man/man3/OSSL_trace_get_category_num.3", "doc/man/man3/OSSL_trace_set_channel.3", "doc/man/man3/OpenSSL_add_all_algorithms.3", "doc/man/man3/OpenSSL_version.3", + "doc/man/man3/PBMAC1_get1_pbkdf2_param.3", "doc/man/man3/PEM_X509_INFO_read_bio_ex.3", "doc/man/man3/PEM_bytes_read_bio.3", "doc/man/man3/PEM_read.3", @@ -19767,6 +23039,7 @@ our %unified_info = ( "doc/man/man3/PKCS12_SAFEBAG_create_cert.3", "doc/man/man3/PKCS12_SAFEBAG_get0_attrs.3", "doc/man/man3/PKCS12_SAFEBAG_get1_cert.3", + "doc/man/man3/PKCS12_SAFEBAG_set0_attrs.3", "doc/man/man3/PKCS12_add1_attr_by_NID.3", "doc/man/man3/PKCS12_add_CSPName_asc.3", "doc/man/man3/PKCS12_add_cert.3", @@ -19858,6 +23131,7 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_sess_set_get_cb.3", "doc/man/man3/SSL_CTX_sessions.3", "doc/man/man3/SSL_CTX_set0_CA_list.3", + "doc/man/man3/SSL_CTX_set1_cert_comp_preference.3", "doc/man/man3/SSL_CTX_set1_curves.3", "doc/man/man3/SSL_CTX_set1_sigalgs.3", "doc/man/man3/SSL_CTX_set1_verify_cert_store.3", @@ -19871,6 +23145,7 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_ct_validation_callback.3", "doc/man/man3/SSL_CTX_set_ctlog_list_file.3", "doc/man/man3/SSL_CTX_set_default_passwd_cb.3", + "doc/man/man3/SSL_CTX_set_domain_flags.3", "doc/man/man3/SSL_CTX_set_generate_session_id.3", "doc/man/man3/SSL_CTX_set_info_callback.3", "doc/man/man3/SSL_CTX_set_keylog_callback.3", @@ -19878,6 +23153,7 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_min_proto_version.3", "doc/man/man3/SSL_CTX_set_mode.3", "doc/man/man3/SSL_CTX_set_msg_callback.3", + "doc/man/man3/SSL_CTX_set_new_pending_conn_cb.3", "doc/man/man3/SSL_CTX_set_num_tickets.3", "doc/man/man3/SSL_CTX_set_options.3", "doc/man/man3/SSL_CTX_set_psk_client_callback.3", @@ -19916,6 +23192,7 @@ our %unified_info = ( "doc/man/man3/SSL_SESSION_print.3", "doc/man/man3/SSL_SESSION_set1_id.3", "doc/man/man3/SSL_accept.3", + "doc/man/man3/SSL_accept_stream.3", "doc/man/man3/SSL_alert_type_string.3", "doc/man/man3/SSL_alloc_buffers.3", "doc/man/man3/SSL_check_chain.3", @@ -19925,59 +23202,90 @@ our %unified_info = ( "doc/man/man3/SSL_export_keying_material.3", "doc/man/man3/SSL_extension_supported.3", "doc/man/man3/SSL_free.3", + "doc/man/man3/SSL_get0_connection.3", + "doc/man/man3/SSL_get0_group_name.3", + "doc/man/man3/SSL_get0_peer_rpk.3", "doc/man/man3/SSL_get0_peer_scts.3", + "doc/man/man3/SSL_get1_builtin_sigalgs.3", "doc/man/man3/SSL_get_SSL_CTX.3", "doc/man/man3/SSL_get_all_async_fds.3", "doc/man/man3/SSL_get_certificate.3", "doc/man/man3/SSL_get_ciphers.3", "doc/man/man3/SSL_get_client_random.3", + "doc/man/man3/SSL_get_conn_close_info.3", "doc/man/man3/SSL_get_current_cipher.3", "doc/man/man3/SSL_get_default_timeout.3", "doc/man/man3/SSL_get_error.3", + "doc/man/man3/SSL_get_event_timeout.3", "doc/man/man3/SSL_get_extms_support.3", "doc/man/man3/SSL_get_fd.3", + "doc/man/man3/SSL_get_handshake_rtt.3", "doc/man/man3/SSL_get_peer_cert_chain.3", "doc/man/man3/SSL_get_peer_certificate.3", "doc/man/man3/SSL_get_peer_signature_nid.3", "doc/man/man3/SSL_get_peer_tmp_key.3", "doc/man/man3/SSL_get_psk_identity.3", "doc/man/man3/SSL_get_rbio.3", + "doc/man/man3/SSL_get_rpoll_descriptor.3", "doc/man/man3/SSL_get_session.3", "doc/man/man3/SSL_get_shared_sigalgs.3", + "doc/man/man3/SSL_get_stream_id.3", + "doc/man/man3/SSL_get_stream_read_state.3", + "doc/man/man3/SSL_get_value_uint.3", "doc/man/man3/SSL_get_verify_result.3", "doc/man/man3/SSL_get_version.3", "doc/man/man3/SSL_group_to_name.3", + "doc/man/man3/SSL_handle_events.3", "doc/man/man3/SSL_in_init.3", + "doc/man/man3/SSL_inject_net_dgram.3", "doc/man/man3/SSL_key_update.3", "doc/man/man3/SSL_library_init.3", "doc/man/man3/SSL_load_client_CA_file.3", "doc/man/man3/SSL_new.3", + "doc/man/man3/SSL_new_domain.3", + "doc/man/man3/SSL_new_listener.3", + "doc/man/man3/SSL_new_stream.3", "doc/man/man3/SSL_pending.3", + "doc/man/man3/SSL_poll.3", "doc/man/man3/SSL_read.3", "doc/man/man3/SSL_read_early_data.3", "doc/man/man3/SSL_rstate_string.3", "doc/man/man3/SSL_session_reused.3", "doc/man/man3/SSL_set1_host.3", + "doc/man/man3/SSL_set1_initial_peer_addr.3", + "doc/man/man3/SSL_set1_server_cert_type.3", "doc/man/man3/SSL_set_async_callback.3", "doc/man/man3/SSL_set_bio.3", + "doc/man/man3/SSL_set_blocking_mode.3", "doc/man/man3/SSL_set_connect_state.3", + "doc/man/man3/SSL_set_default_stream_mode.3", "doc/man/man3/SSL_set_fd.3", + "doc/man/man3/SSL_set_incoming_stream_policy.3", + "doc/man/man3/SSL_set_quic_tls_cbs.3", "doc/man/man3/SSL_set_retry_verify.3", "doc/man/man3/SSL_set_session.3", + "doc/man/man3/SSL_set_session_secret_cb.3", "doc/man/man3/SSL_set_shutdown.3", "doc/man/man3/SSL_set_verify_result.3", "doc/man/man3/SSL_shutdown.3", "doc/man/man3/SSL_state_string.3", + "doc/man/man3/SSL_stream_conclude.3", + "doc/man/man3/SSL_stream_reset.3", "doc/man/man3/SSL_want.3", "doc/man/man3/SSL_write.3", "doc/man/man3/TS_RESP_CTX_new.3", - "doc/man/man3/TS_VERIFY_CTX_set_certs.3", + "doc/man/man3/TS_VERIFY_CTX.3", "doc/man/man3/UI_STRING.3", "doc/man/man3/UI_UTIL_read_pw.3", "doc/man/man3/UI_create_method.3", "doc/man/man3/UI_new.3", "doc/man/man3/X509V3_get_d2i.3", "doc/man/man3/X509V3_set_ctx.3", + "doc/man/man3/X509_ACERT_add1_attr.3", + "doc/man/man3/X509_ACERT_add_attr_nconf.3", + "doc/man/man3/X509_ACERT_get0_holder_baseCertId.3", + "doc/man/man3/X509_ACERT_get_attr.3", + "doc/man/man3/X509_ACERT_print_ex.3", "doc/man/man3/X509_ALGOR_dup.3", "doc/man/man3/X509_ATTRIBUTE.3", "doc/man/man3/X509_CRL_get0_by_serial.3", @@ -19994,6 +23302,7 @@ our %unified_info = ( "doc/man/man3/X509_REQ_get_attr.3", "doc/man/man3/X509_REQ_get_extensions.3", "doc/man/man3/X509_SIG_get0.3", + "doc/man/man3/X509_STORE_CTX_get_by_subject.3", "doc/man/man3/X509_STORE_CTX_get_error.3", "doc/man/man3/X509_STORE_CTX_new.3", "doc/man/man3/X509_STORE_CTX_set_verify_cb.3", @@ -20016,6 +23325,7 @@ our %unified_info = ( "doc/man/man3/X509_get0_notBefore.3", "doc/man/man3/X509_get0_signature.3", "doc/man/man3/X509_get0_uids.3", + "doc/man/man3/X509_get_default_cert_file.3", "doc/man/man3/X509_get_extension_flags.3", "doc/man/man3/X509_get_pubkey.3", "doc/man/man3/X509_get_serialNumber.3", @@ -20061,12 +23371,15 @@ our %unified_info = ( "doc/man/man7/EVP_CIPHER-RC5.7", "doc/man/man7/EVP_CIPHER-SEED.7", "doc/man/man7/EVP_CIPHER-SM4.7", + "doc/man/man7/EVP_KDF-ARGON2.7", "doc/man/man7/EVP_KDF-HKDF.7", + "doc/man/man7/EVP_KDF-HMAC-DRBG.7", "doc/man/man7/EVP_KDF-KB.7", "doc/man/man7/EVP_KDF-KRB5KDF.7", "doc/man/man7/EVP_KDF-PBKDF1.7", "doc/man/man7/EVP_KDF-PBKDF2.7", "doc/man/man7/EVP_KDF-PKCS12KDF.7", + "doc/man/man7/EVP_KDF-PVKKDF.7", "doc/man/man7/EVP_KDF-SCRYPT.7", "doc/man/man7/EVP_KDF-SS.7", "doc/man/man7/EVP_KDF-SSHKDF.7", @@ -20075,7 +23388,10 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-X942-ASN1.7", "doc/man/man7/EVP_KDF-X942-CONCAT.7", "doc/man/man7/EVP_KDF-X963.7", + "doc/man/man7/EVP_KEM-EC.7", + "doc/man/man7/EVP_KEM-ML-KEM.7", "doc/man/man7/EVP_KEM-RSA.7", + "doc/man/man7/EVP_KEM-X25519.7", "doc/man/man7/EVP_KEYEXCH-DH.7", "doc/man/man7/EVP_KEYEXCH-ECDH.7", "doc/man/man7/EVP_KEYEXCH-X25519.7", @@ -20087,6 +23403,7 @@ our %unified_info = ( "doc/man/man7/EVP_MAC-Poly1305.7", "doc/man/man7/EVP_MAC-Siphash.7", "doc/man/man7/EVP_MD-BLAKE2.7", + "doc/man/man7/EVP_MD-KECCAK.7", "doc/man/man7/EVP_MD-MD2.7", "doc/man/man7/EVP_MD-MD4.7", "doc/man/man7/EVP_MD-MD5-SHA1.7", @@ -20106,12 +23423,17 @@ our %unified_info = ( "doc/man/man7/EVP_PKEY-EC.7", "doc/man/man7/EVP_PKEY-FFC.7", "doc/man/man7/EVP_PKEY-HMAC.7", + "doc/man/man7/EVP_PKEY-ML-DSA.7", + "doc/man/man7/EVP_PKEY-ML-KEM.7", "doc/man/man7/EVP_PKEY-RSA.7", + "doc/man/man7/EVP_PKEY-SLH-DSA.7", "doc/man/man7/EVP_PKEY-SM2.7", "doc/man/man7/EVP_PKEY-X25519.7", + "doc/man/man7/EVP_RAND-CRNG-TEST.7", "doc/man/man7/EVP_RAND-CTR-DRBG.7", "doc/man/man7/EVP_RAND-HASH-DRBG.7", "doc/man/man7/EVP_RAND-HMAC-DRBG.7", + "doc/man/man7/EVP_RAND-JITTER.7", "doc/man/man7/EVP_RAND-SEED-SRC.7", "doc/man/man7/EVP_RAND-TEST-RAND.7", "doc/man/man7/EVP_RAND.7", @@ -20119,17 +23441,19 @@ our %unified_info = ( "doc/man/man7/EVP_SIGNATURE-ECDSA.7", "doc/man/man7/EVP_SIGNATURE-ED25519.7", "doc/man/man7/EVP_SIGNATURE-HMAC.7", + "doc/man/man7/EVP_SIGNATURE-ML-DSA.7", "doc/man/man7/EVP_SIGNATURE-RSA.7", + "doc/man/man7/EVP_SIGNATURE-SLH-DSA.7", "doc/man/man7/OSSL_PROVIDER-FIPS.7", "doc/man/man7/OSSL_PROVIDER-base.7", "doc/man/man7/OSSL_PROVIDER-default.7", "doc/man/man7/OSSL_PROVIDER-legacy.7", "doc/man/man7/OSSL_PROVIDER-null.7", + "doc/man/man7/OSSL_STORE-winstore.7", "doc/man/man7/RAND.7", "doc/man/man7/RSA-PSS.7", "doc/man/man7/X25519.7", "doc/man/man7/bio.7", - "doc/man/man7/crypto.7", "doc/man/man7/ct.7", "doc/man/man7/des_modes.7", "doc/man/man7/evp.7", @@ -20140,14 +23464,31 @@ our %unified_info = ( "doc/man/man7/life_cycle-mac.7", "doc/man/man7/life_cycle-pkey.7", "doc/man/man7/life_cycle-rand.7", - "doc/man/man7/migration_guide.7", "doc/man/man7/openssl-core.h.7", "doc/man/man7/openssl-core_dispatch.h.7", "doc/man/man7/openssl-core_names.h.7", "doc/man/man7/openssl-env.7", "doc/man/man7/openssl-glossary.7", + "doc/man/man7/openssl-qlog.7", + "doc/man/man7/openssl-quic-concurrency.7", + "doc/man/man7/openssl-quic.7", "doc/man/man7/openssl-threads.7", "doc/man/man7/openssl_user_macros.7", + "doc/man/man7/ossl-guide-introduction.7", + "doc/man/man7/ossl-guide-libcrypto-introduction.7", + "doc/man/man7/ossl-guide-libraries-introduction.7", + "doc/man/man7/ossl-guide-libssl-introduction.7", + "doc/man/man7/ossl-guide-migration.7", + "doc/man/man7/ossl-guide-quic-client-block.7", + "doc/man/man7/ossl-guide-quic-client-non-block.7", + "doc/man/man7/ossl-guide-quic-introduction.7", + "doc/man/man7/ossl-guide-quic-multi-stream.7", + "doc/man/man7/ossl-guide-quic-server-block.7", + "doc/man/man7/ossl-guide-quic-server-non-block.7", + "doc/man/man7/ossl-guide-tls-client-block.7", + "doc/man/man7/ossl-guide-tls-client-non-block.7", + "doc/man/man7/ossl-guide-tls-introduction.7", + "doc/man/man7/ossl-guide-tls-server-block.7", "doc/man/man7/ossl_store-file.7", "doc/man/man7/ossl_store.7", "doc/man/man7/passphrase-encoding.7", @@ -20166,10 +23507,10 @@ our %unified_info = ( "doc/man/man7/provider-object.7", "doc/man/man7/provider-rand.7", "doc/man/man7/provider-signature.7", + "doc/man/man7/provider-skeymgmt.7", "doc/man/man7/provider-storemgmt.7", "doc/man/man7/provider.7", "doc/man/man7/proxy-certificates.7", - "doc/man/man7/ssl.7", "doc/man/man7/x509.7" ] }, @@ -20181,6 +23522,7 @@ our %unified_info = ( ], "programs" => [ "apps/openssl", + "fuzz/acert-test", "fuzz/asn1-test", "fuzz/asn1parse-test", "fuzz/bignum-test", @@ -20191,7 +23533,24 @@ our %unified_info = ( "fuzz/conf-test", "fuzz/crl-test", "fuzz/ct-test", + "fuzz/decoder-test", + "fuzz/dtlsclient-test", + "fuzz/dtlsserver-test", + "fuzz/hashtable-test", + "fuzz/ml-dsa-test", + "fuzz/ml-kem-test", + "fuzz/pem-test", + "fuzz/provider-test", + "fuzz/punycode-test", + "fuzz/quic-client-test", + "fuzz/quic-lcidm-test", + "fuzz/quic-rcidm-test", + "fuzz/quic-server-test", + "fuzz/quic-srtm-test", "fuzz/server-test", + "fuzz/slh-dsa-test", + "fuzz/smime-test", + "fuzz/v3name-test", "fuzz/x509-test", "test/aborttest", "test/acvp_test", @@ -20209,21 +23568,28 @@ our %unified_info = ( "test/asynctest", "test/bad_dtls_test", "test/bftest", + "test/bio_addr_test", + "test/bio_base64_test", "test/bio_callback_test", "test/bio_core_test", + "test/bio_dgram_test", "test/bio_enc_test", "test/bio_memleak_test", + "test/bio_meth_test", "test/bio_prefix_text", "test/bio_pw_callback_test", "test/bio_readbuffer_test", + "test/bio_tfo_test", "test/bioprinttest", "test/bn_internal_test", "test/bntest", + "test/build_wincrypt_test", "test/buildtest_c_aes", "test/buildtest_c_async", "test/buildtest_c_blowfish", "test/buildtest_c_bn", "test/buildtest_c_buffer", + "test/buildtest_c_byteorder", "test/buildtest_c_camellia", "test/buildtest_c_cast", "test/buildtest_c_cmac", @@ -20232,7 +23598,6 @@ our %unified_info = ( "test/buildtest_c_conftypes", "test/buildtest_c_core", "test/buildtest_c_core_dispatch", - "test/buildtest_c_core_names", "test/buildtest_c_core_object", "test/buildtest_c_cryptoerr_legacy", "test/buildtest_c_decoder", @@ -20241,6 +23606,7 @@ our %unified_info = ( "test/buildtest_c_dsa", "test/buildtest_c_dtls1", "test/buildtest_c_e_os2", + "test/buildtest_c_e_ostime", "test/buildtest_c_ebcdic", "test/buildtest_c_ec", "test/buildtest_c_ecdh", @@ -20250,13 +23616,16 @@ our %unified_info = ( "test/buildtest_c_evp", "test/buildtest_c_fips_names", "test/buildtest_c_hmac", + "test/buildtest_c_hpke", "test/buildtest_c_http", "test/buildtest_c_idea", + "test/buildtest_c_indicator", "test/buildtest_c_kdf", "test/buildtest_c_macros", "test/buildtest_c_md4", "test/buildtest_c_md5", "test/buildtest_c_mdc2", + "test/buildtest_c_ml_kem", "test/buildtest_c_modes", "test/buildtest_c_obj_mac", "test/buildtest_c_objects", @@ -20267,6 +23636,7 @@ our %unified_info = ( "test/buildtest_c_pem2", "test/buildtest_c_prov_ssl", "test/buildtest_c_provider", + "test/buildtest_c_quic", "test/buildtest_c_rand", "test/buildtest_c_rc2", "test/buildtest_c_rc4", @@ -20281,11 +23651,14 @@ our %unified_info = ( "test/buildtest_c_stack", "test/buildtest_c_store", "test/buildtest_c_symhacks", + "test/buildtest_c_thread", "test/buildtest_c_tls1", "test/buildtest_c_ts", "test/buildtest_c_txt_db", "test/buildtest_c_types", "test/buildtest_c_whrlpool", + "test/byteorder_test", + "test/ca_internals_test", "test/casttest", "test/chacha_internal_test", "test/cipher_overhead_test", @@ -20314,6 +23687,7 @@ our %unified_info = ( "test/curve448_internal_test", "test/d2i_test", "test/danetest", + "test/decoder_propq_test", "test/defltfips_test", "test/destest", "test/dhtest", @@ -20338,9 +23712,12 @@ our %unified_info = ( "test/evp_kdf_test", "test/evp_libctx_test", "test/evp_pkey_ctx_new_from_name", + "test/evp_pkey_dhkem_test", "test/evp_pkey_dparams_test", "test/evp_pkey_provided_test", + "test/evp_skey_test", "test/evp_test", + "test/evp_xof_test", "test/exdatatest", "test/exptest", "test/ext_internal_test", @@ -20350,21 +23727,29 @@ our %unified_info = ( "test/gmdifftest", "test/hexstr_test", "test/hmactest", + "test/hpke_test", "test/http_test", "test/ideatest", "test/igetest", + "test/json_test", "test/keymgmt_internal_test", "test/lhash_test", + "test/list_test", "test/localetest", "test/mdc2_internal_test", "test/mdc2test", + "test/membio_test", "test/memleaktest", + "test/ml_dsa_test", + "test/ml_kem_evp_extra_test", + "test/ml_kem_internal_test", "test/modes_internal_test", "test/namemap_internal_test", "test/nodefltctxtest", "test/ocspapitest", "test/ossl_store_test", "test/packettest", + "test/pairwise_fail_test", "test/param_build_test", "test/params_api_test", "test/params_conversion_test", @@ -20373,36 +23758,65 @@ our %unified_info = ( "test/pbetest", "test/pem_read_depr_test", "test/pemtest", + "test/pkcs12_api_test", "test/pkcs12_format_test", "test/pkcs7_test", "test/pkey_meth_kdf_test", "test/pkey_meth_test", "test/poly1305_internal_test", + "test/priority_queue_test", "test/property_test", "test/prov_config_test", "test/provfetchtest", + "test/provider_default_search_path_test", "test/provider_fallback_test", "test/provider_internal_test", "test/provider_pkey_test", "test/provider_status_test", "test/provider_test", "test/punycode_test", + "test/quic_ackm_test", + "test/quic_cc_test", + "test/quic_cfq_test", + "test/quic_client_test", + "test/quic_fc_test", + "test/quic_fifd_test", + "test/quic_lcidm_test", + "test/quic_multistream_test", + "test/quic_newcid_test", + "test/quic_qlog_test", + "test/quic_radix_test", + "test/quic_rcidm_test", + "test/quic_record_test", + "test/quic_srt_gen_test", + "test/quic_srtm_test", + "test/quic_stream_test", + "test/quic_tserver_test", + "test/quic_txp_test", + "test/quic_txpim_test", + "test/quic_wire_test", + "test/quicapitest", + "test/quicfaultstest", "test/rand_status_test", "test/rand_test", "test/rc2test", "test/rc4test", "test/rc5test", - "test/rdrand_sanitytest", + "test/rdcpu_sanitytest", "test/recordlentest", + "test/rpktest", "test/rsa_complex", "test/rsa_mp_test", "test/rsa_sp800_56b_test", "test/rsa_test", + "test/rsa_x931_test", + "test/safe_math_test", "test/sanitytest", "test/secmemtest", "test/servername_test", "test/sha_test", "test/siphash_internal_test", + "test/slh_dsa_test", "test/sm2_internal_test", "test/sm3_internal_test", "test/sm4_internal_test", @@ -20410,6 +23824,7 @@ our %unified_info = ( "test/srptest", "test/ssl_cert_table_internal_test", "test/ssl_ctx_test", + "test/ssl_handshake_rtt_test", "test/ssl_old_test", "test/ssl_test", "test/ssl_test_ctx_test", @@ -20417,13 +23832,17 @@ our %unified_info = ( "test/sslbuffertest", "test/sslcorrupttest", "test/stack_test", + "test/strtoultest", "test/sysdefaulttest", "test/test_test", + "test/threadpool_test", "test/threadstest", "test/threadstest_fips", "test/time_offset_test", + "test/time_test", "test/tls13ccstest", "test/tls13encryptiontest", + "test/tls13groupselection_test", "test/trace_api_test", "test/uitest", "test/upcallstest", @@ -20433,9 +23852,13 @@ our %unified_info = ( "test/verify_extra_test", "test/versions", "test/wpackettest", + "test/x509_acert_test", "test/x509_check_cert_pkey_test", "test/x509_dup_cert_test", "test/x509_internal_test", + "test/x509_load_cert_file_test", + "test/x509_req_test", + "test/x509_test", "test/x509_time_test", "test/x509aux" ], @@ -20451,6 +23874,33 @@ our %unified_info = ( "apps/CA.pl" => [ "apps/CA.pl.in" ], + "apps/ca_internals_test-bin-ca.o" => [ + "apps/ca.c" + ], + "apps/lib/ca_internals_test-bin-app_libctx.o" => [ + "apps/lib/app_libctx.c" + ], + "apps/lib/ca_internals_test-bin-app_provider.o" => [ + "apps/lib/app_provider.c" + ], + "apps/lib/ca_internals_test-bin-app_rand.o" => [ + "apps/lib/app_rand.c" + ], + "apps/lib/ca_internals_test-bin-app_x509.o" => [ + "apps/lib/app_x509.c" + ], + "apps/lib/ca_internals_test-bin-apps.o" => [ + "apps/lib/apps.c" + ], + "apps/lib/ca_internals_test-bin-apps_ui.o" => [ + "apps/lib/apps_ui.c" + ], + "apps/lib/ca_internals_test-bin-engine.o" => [ + "apps/lib/engine.c" + ], + "apps/lib/ca_internals_test-bin-fmt.o" => [ + "apps/lib/fmt.c" + ], "apps/lib/cmp_client_test-bin-cmp_mock_srv.o" => [ "apps/lib/cmp_mock_srv.c" ], @@ -20472,6 +23922,9 @@ our %unified_info = ( "apps/lib/libapps-lib-apps.o" => [ "apps/lib/apps.c" ], + "apps/lib/libapps-lib-apps_opt_printf.o" => [ + "apps/lib/apps_opt_printf.c" + ], "apps/lib/libapps-lib-apps_ui.o" => [ "apps/lib/apps_ui.c" ], @@ -20490,6 +23943,9 @@ our %unified_info = ( "apps/lib/libapps-lib-http_server.o" => [ "apps/lib/http_server.c" ], + "apps/lib/libapps-lib-log.o" => [ + "apps/lib/log.c" + ], "apps/lib/libapps-lib-names.o" => [ "apps/lib/names.c" ], @@ -20521,12 +23977,14 @@ our %unified_info = ( "apps/lib/libapps-lib-app_rand.o", "apps/lib/libapps-lib-app_x509.o", "apps/lib/libapps-lib-apps.o", + "apps/lib/libapps-lib-apps_opt_printf.o", "apps/lib/libapps-lib-apps_ui.o", "apps/lib/libapps-lib-columns.o", "apps/lib/libapps-lib-engine.o", "apps/lib/libapps-lib-engine_loader.o", "apps/lib/libapps-lib-fmt.o", "apps/lib/libapps-lib-http_server.o", + "apps/lib/libapps-lib-log.o", "apps/lib/libapps-lib-names.o", "apps/lib/libapps-lib-opt.o", "apps/lib/libapps-lib-s_cb.o", @@ -20580,6 +24038,7 @@ our %unified_info = ( "apps/openssl-bin-s_server.o", "apps/openssl-bin-s_time.o", "apps/openssl-bin-sess_id.o", + "apps/openssl-bin-skeyutl.o", "apps/openssl-bin-smime.o", "apps/openssl-bin-speed.o", "apps/openssl-bin-spkac.o", @@ -20725,6 +24184,9 @@ our %unified_info = ( "apps/openssl-bin-sess_id.o" => [ "apps/sess_id.c" ], + "apps/openssl-bin-skeyutl.o" => [ + "apps/skeyutl.c" + ], "apps/openssl-bin-smime.o" => [ "apps/smime.c" ], @@ -20788,6 +24250,9 @@ our %unified_info = ( "crypto/aes/libcrypto-lib-aesni-x86_64.o" => [ "crypto/aes/aesni-x86_64.s" ], + "crypto/aes/libcrypto-lib-aesni-xts-avx512.o" => [ + "crypto/aes/aesni-xts-avx512.s" + ], "crypto/aes/libcrypto-lib-bsaes-x86_64.o" => [ "crypto/aes/bsaes-x86_64.s" ], @@ -20815,6 +24280,9 @@ our %unified_info = ( "crypto/aes/libfips-lib-aesni-x86_64.o" => [ "crypto/aes/aesni-x86_64.s" ], + "crypto/aes/libfips-lib-aesni-xts-avx512.o" => [ + "crypto/aes/aesni-xts-avx512.s" + ], "crypto/aes/libfips-lib-bsaes-x86_64.o" => [ "crypto/aes/bsaes-x86_64.s" ], @@ -20824,6 +24292,12 @@ our %unified_info = ( "crypto/aria/libcrypto-lib-aria.o" => [ "crypto/aria/aria.c" ], + "crypto/asn1/asn1_time_test-bin-a_time.o" => [ + "crypto/asn1/a_time.c" + ], + "crypto/asn1/ca_internals_test-bin-a_time.o" => [ + "crypto/asn1/a_time.c" + ], "crypto/asn1/libcrypto-lib-a_bitstr.o" => [ "crypto/asn1/a_bitstr.c" ], @@ -21016,6 +24490,9 @@ our %unified_info = ( "crypto/asn1/libcrypto-lib-x_val.o" => [ "crypto/asn1/x_val.c" ], + "crypto/asn1_time_test-bin-ctype.o" => [ + "crypto/ctype.c" + ], "crypto/async/arch/libcrypto-lib-async_null.o" => [ "crypto/async/arch/async_null.c" ], @@ -21109,6 +24586,9 @@ our %unified_info = ( "crypto/bio/libcrypto-lib-bss_dgram.o" => [ "crypto/bio/bss_dgram.c" ], + "crypto/bio/libcrypto-lib-bss_dgram_pair.o" => [ + "crypto/bio/bss_dgram_pair.c" + ], "crypto/bio/libcrypto-lib-bss_fd.o" => [ "crypto/bio/bss_fd.c" ], @@ -21232,12 +24712,27 @@ our %unified_info = ( "crypto/bn/libcrypto-lib-bn_x931p.o" => [ "crypto/bn/bn_x931p.c" ], + "crypto/bn/libcrypto-lib-rsaz-2k-avx512.o" => [ + "crypto/bn/rsaz-2k-avx512.s" + ], + "crypto/bn/libcrypto-lib-rsaz-2k-avxifma.o" => [ + "crypto/bn/rsaz-2k-avxifma.s" + ], + "crypto/bn/libcrypto-lib-rsaz-3k-avx512.o" => [ + "crypto/bn/rsaz-3k-avx512.s" + ], + "crypto/bn/libcrypto-lib-rsaz-3k-avxifma.o" => [ + "crypto/bn/rsaz-3k-avxifma.s" + ], + "crypto/bn/libcrypto-lib-rsaz-4k-avx512.o" => [ + "crypto/bn/rsaz-4k-avx512.s" + ], + "crypto/bn/libcrypto-lib-rsaz-4k-avxifma.o" => [ + "crypto/bn/rsaz-4k-avxifma.s" + ], "crypto/bn/libcrypto-lib-rsaz-avx2.o" => [ "crypto/bn/rsaz-avx2.s" ], - "crypto/bn/libcrypto-lib-rsaz-avx512.o" => [ - "crypto/bn/rsaz-avx512.s" - ], "crypto/bn/libcrypto-lib-rsaz-x86_64.o" => [ "crypto/bn/rsaz-x86_64.s" ], @@ -21337,12 +24832,27 @@ our %unified_info = ( "crypto/bn/libfips-lib-bn_word.o" => [ "crypto/bn/bn_word.c" ], + "crypto/bn/libfips-lib-rsaz-2k-avx512.o" => [ + "crypto/bn/rsaz-2k-avx512.s" + ], + "crypto/bn/libfips-lib-rsaz-2k-avxifma.o" => [ + "crypto/bn/rsaz-2k-avxifma.s" + ], + "crypto/bn/libfips-lib-rsaz-3k-avx512.o" => [ + "crypto/bn/rsaz-3k-avx512.s" + ], + "crypto/bn/libfips-lib-rsaz-3k-avxifma.o" => [ + "crypto/bn/rsaz-3k-avxifma.s" + ], + "crypto/bn/libfips-lib-rsaz-4k-avx512.o" => [ + "crypto/bn/rsaz-4k-avx512.s" + ], + "crypto/bn/libfips-lib-rsaz-4k-avxifma.o" => [ + "crypto/bn/rsaz-4k-avxifma.s" + ], "crypto/bn/libfips-lib-rsaz-avx2.o" => [ "crypto/bn/rsaz-avx2.s" ], - "crypto/bn/libfips-lib-rsaz-avx512.o" => [ - "crypto/bn/rsaz-avx512.s" - ], "crypto/bn/libfips-lib-rsaz-x86_64.o" => [ "crypto/bn/rsaz-x86_64.s" ], @@ -21370,6 +24880,9 @@ our %unified_info = ( "crypto/buffer/libfips-lib-buffer.o" => [ "crypto/buffer/buffer.c" ], + "crypto/ca_internals_test-bin-ctype.o" => [ + "crypto/ctype.c" + ], "crypto/camellia/libcrypto-lib-cmll-x86_64.o" => [ "crypto/camellia/cmll-x86_64.s" ], @@ -21424,6 +24937,9 @@ our %unified_info = ( "crypto/cmp/libcrypto-lib-cmp_err.o" => [ "crypto/cmp/cmp_err.c" ], + "crypto/cmp/libcrypto-lib-cmp_genm.o" => [ + "crypto/cmp/cmp_genm.c" + ], "crypto/cmp/libcrypto-lib-cmp_hdr.o" => [ "crypto/cmp/cmp_hdr.c" ], @@ -22117,9 +25633,15 @@ our %unified_info = ( "crypto/err/libcrypto-lib-err_blocks.o" => [ "crypto/err/err_blocks.c" ], + "crypto/err/libcrypto-lib-err_mark.o" => [ + "crypto/err/err_mark.c" + ], "crypto/err/libcrypto-lib-err_prn.o" => [ "crypto/err/err_prn.c" ], + "crypto/err/libcrypto-lib-err_save.o" => [ + "crypto/err/err_save.c" + ], "crypto/ess/libcrypto-lib-ess_asn1.o" => [ "crypto/ess/ess_asn1.c" ], @@ -22366,9 +25888,15 @@ our %unified_info = ( "crypto/evp/libcrypto-lib-pmeth_lib.o" => [ "crypto/evp/pmeth_lib.c" ], + "crypto/evp/libcrypto-lib-s_lib.o" => [ + "crypto/evp/s_lib.c" + ], "crypto/evp/libcrypto-lib-signature.o" => [ "crypto/evp/signature.c" ], + "crypto/evp/libcrypto-lib-skeymgmt_meth.o" => [ + "crypto/evp/skeymgmt_meth.c" + ], "crypto/evp/libfips-lib-asymcipher.o" => [ "crypto/evp/asymcipher.c" ], @@ -22414,9 +25942,6 @@ our %unified_info = ( "crypto/evp/libfips-lib-keymgmt_meth.o" => [ "crypto/evp/keymgmt_meth.c" ], - "crypto/evp/libfips-lib-m_sigver.o" => [ - "crypto/evp/m_sigver.c" - ], "crypto/evp/libfips-lib-mac_lib.o" => [ "crypto/evp/mac_lib.c" ], @@ -22435,9 +25960,15 @@ our %unified_info = ( "crypto/evp/libfips-lib-pmeth_lib.o" => [ "crypto/evp/pmeth_lib.c" ], + "crypto/evp/libfips-lib-s_lib.o" => [ + "crypto/evp/s_lib.c" + ], "crypto/evp/libfips-lib-signature.o" => [ "crypto/evp/signature.c" ], + "crypto/evp/libfips-lib-skeymgmt_meth.o" => [ + "crypto/evp/skeymgmt_meth.c" + ], "crypto/ffc/libcrypto-lib-ffc_backend.o" => [ "crypto/ffc/ffc_backend.c" ], @@ -22480,12 +26011,30 @@ our %unified_info = ( "crypto/ffc/libfips-lib-ffc_params_validate.o" => [ "crypto/ffc/ffc_params_validate.c" ], + "crypto/hashtable/libcrypto-lib-hashfunc.o" => [ + "crypto/hashtable/hashfunc.c" + ], + "crypto/hashtable/libcrypto-lib-hashtable.o" => [ + "crypto/hashtable/hashtable.c" + ], + "crypto/hashtable/libfips-lib-hashfunc.o" => [ + "crypto/hashtable/hashfunc.c" + ], + "crypto/hashtable/libfips-lib-hashtable.o" => [ + "crypto/hashtable/hashtable.c" + ], "crypto/hmac/libcrypto-lib-hmac.o" => [ "crypto/hmac/hmac.c" ], "crypto/hmac/libfips-lib-hmac.o" => [ "crypto/hmac/hmac.c" ], + "crypto/hpke/libcrypto-lib-hpke.o" => [ + "crypto/hpke/hpke.c" + ], + "crypto/hpke/libcrypto-lib-hpke_util.o" => [ + "crypto/hpke/hpke_util.c" + ], "crypto/http/libcrypto-lib-http_client.o" => [ "crypto/http/http_client.c" ], @@ -22528,6 +26077,9 @@ our %unified_info = ( "crypto/libcrypto-lib-bsearch.o" => [ "crypto/bsearch.c" ], + "crypto/libcrypto-lib-comp_methods.o" => [ + "crypto/comp_methods.c" + ], "crypto/libcrypto-lib-context.o" => [ "crypto/context.c" ], @@ -22555,9 +26107,15 @@ our %unified_info = ( "crypto/libcrypto-lib-cversion.o" => [ "crypto/cversion.c" ], + "crypto/libcrypto-lib-defaults.o" => [ + "crypto/defaults.c" + ], "crypto/libcrypto-lib-der_writer.o" => [ "crypto/der_writer.c" ], + "crypto/libcrypto-lib-deterministic_nonce.o" => [ + "crypto/deterministic_nonce.c" + ], "crypto/libcrypto-lib-ebcdic.o" => [ "crypto/ebcdic.c" ], @@ -22567,6 +26125,9 @@ our %unified_info = ( "crypto/libcrypto-lib-getenv.o" => [ "crypto/getenv.c" ], + "crypto/libcrypto-lib-indicator_core.o" => [ + "crypto/indicator_core.c" + ], "crypto/libcrypto-lib-info.o" => [ "crypto/info.c" ], @@ -22615,6 +26176,9 @@ our %unified_info = ( "crypto/libcrypto-lib-params_from_text.o" => [ "crypto/params_from_text.c" ], + "crypto/libcrypto-lib-params_idx.o" => [ + "crypto/params_idx.c" + ], "crypto/libcrypto-lib-passphrase.o" => [ "crypto/passphrase.c" ], @@ -22636,12 +26200,21 @@ our %unified_info = ( "crypto/libcrypto-lib-punycode.o" => [ "crypto/punycode.c" ], + "crypto/libcrypto-lib-quic_vlint.o" => [ + "crypto/quic_vlint.c" + ], "crypto/libcrypto-lib-self_test_core.o" => [ "crypto/self_test_core.c" ], + "crypto/libcrypto-lib-sleep.o" => [ + "crypto/sleep.c" + ], "crypto/libcrypto-lib-sparse_array.o" => [ "crypto/sparse_array.c" ], + "crypto/libcrypto-lib-ssl_err.o" => [ + "crypto/ssl_err.c" + ], "crypto/libcrypto-lib-threads_lib.o" => [ "crypto/threads_lib.c" ], @@ -22654,6 +26227,9 @@ our %unified_info = ( "crypto/libcrypto-lib-threads_win.o" => [ "crypto/threads_win.c" ], + "crypto/libcrypto-lib-time.o" => [ + "crypto/time.c" + ], "crypto/libcrypto-lib-trace.o" => [ "crypto/trace.c" ], @@ -22720,6 +26296,9 @@ our %unified_info = ( "crypto/libfips-lib-params_from_text.o" => [ "crypto/params_from_text.c" ], + "crypto/libfips-lib-params_idx.o" => [ + "crypto/params_idx.c" + ], "crypto/libfips-lib-provider_core.o" => [ "crypto/provider_core.c" ], @@ -22744,6 +26323,9 @@ our %unified_info = ( "crypto/libfips-lib-threads_win.o" => [ "crypto/threads_win.c" ], + "crypto/libfips-lib-time.o" => [ + "crypto/time.c" + ], "crypto/libfips-lib-x86_64cpuid.o" => [ "crypto/x86_64cpuid.s" ], @@ -22771,6 +26353,63 @@ our %unified_info = ( "crypto/mdc2/libcrypto-lib-mdc2dgst.o" => [ "crypto/mdc2/mdc2dgst.c" ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_encoders.o" => [ + "crypto/ml_dsa/ml_dsa_encoders.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key.o" => [ + "crypto/ml_dsa/ml_dsa_key.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key_compress.o" => [ + "crypto/ml_dsa/ml_dsa_key_compress.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_matrix.o" => [ + "crypto/ml_dsa/ml_dsa_matrix.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_ntt.o" => [ + "crypto/ml_dsa/ml_dsa_ntt.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_params.o" => [ + "crypto/ml_dsa/ml_dsa_params.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sample.o" => [ + "crypto/ml_dsa/ml_dsa_sample.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sign.o" => [ + "crypto/ml_dsa/ml_dsa_sign.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_encoders.o" => [ + "crypto/ml_dsa/ml_dsa_encoders.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_key.o" => [ + "crypto/ml_dsa/ml_dsa_key.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_key_compress.o" => [ + "crypto/ml_dsa/ml_dsa_key_compress.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_matrix.o" => [ + "crypto/ml_dsa/ml_dsa_matrix.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_ntt.o" => [ + "crypto/ml_dsa/ml_dsa_ntt.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_params.o" => [ + "crypto/ml_dsa/ml_dsa_params.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_sample.o" => [ + "crypto/ml_dsa/ml_dsa_sample.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_sign.o" => [ + "crypto/ml_dsa/ml_dsa_sign.c" + ], + "crypto/ml_kem/libcrypto-lib-ml_kem.o" => [ + "crypto/ml_kem/ml_kem.c" + ], + "crypto/ml_kem/libfips-lib-ml_kem.o" => [ + "crypto/ml_kem/ml_kem.c" + ], + "crypto/modes/libcrypto-lib-aes-gcm-avx512.o" => [ + "crypto/modes/aes-gcm-avx512.s" + ], "crypto/modes/libcrypto-lib-aesni-gcm-x86_64.o" => [ "crypto/modes/aesni-gcm-x86_64.s" ], @@ -22810,6 +26449,12 @@ our %unified_info = ( "crypto/modes/libcrypto-lib-xts128.o" => [ "crypto/modes/xts128.c" ], + "crypto/modes/libcrypto-lib-xts128gb.o" => [ + "crypto/modes/xts128gb.c" + ], + "crypto/modes/libfips-lib-aes-gcm-avx512.o" => [ + "crypto/modes/aes-gcm-avx512.s" + ], "crypto/modes/libfips-lib-aesni-gcm-x86_64.o" => [ "crypto/modes/aesni-gcm-x86_64.s" ], @@ -22840,6 +26485,9 @@ our %unified_info = ( "crypto/modes/libfips-lib-xts128.o" => [ "crypto/modes/xts128.c" ], + "crypto/modes/libfips-lib-xts128gb.o" => [ + "crypto/modes/xts128gb.c" + ], "crypto/objects/libcrypto-lib-o_names.o" => [ "crypto/objects/o_names.c" ], @@ -22885,6 +26533,9 @@ our %unified_info = ( "crypto/ocsp/libcrypto-lib-v3_ocsp.o" => [ "crypto/ocsp/v3_ocsp.c" ], + "crypto/packettest-bin-quic_vlint.o" => [ + "crypto/quic_vlint.c" + ], "crypto/pem/libcrypto-lib-pem_all.o" => [ "crypto/pem/pem_all.c" ], @@ -23047,6 +26698,9 @@ our %unified_info = ( "crypto/rand/libcrypto-lib-rand_pool.o" => [ "crypto/rand/rand_pool.c" ], + "crypto/rand/libcrypto-lib-rand_uniform.o" => [ + "crypto/rand/rand_uniform.c" + ], "crypto/rand/libcrypto-lib-randfile.o" => [ "crypto/rand/randfile.c" ], @@ -23290,6 +26944,66 @@ our %unified_info = ( "crypto/siphash/libcrypto-lib-siphash.o" => [ "crypto/siphash/siphash.c" ], + "crypto/slh_dsa/libcrypto-lib-slh_adrs.o" => [ + "crypto/slh_dsa/slh_adrs.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_dsa.o" => [ + "crypto/slh_dsa/slh_dsa.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_dsa_hash_ctx.o" => [ + "crypto/slh_dsa/slh_dsa_hash_ctx.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_dsa_key.o" => [ + "crypto/slh_dsa/slh_dsa_key.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_fors.o" => [ + "crypto/slh_dsa/slh_fors.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_hash.o" => [ + "crypto/slh_dsa/slh_hash.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_hypertree.o" => [ + "crypto/slh_dsa/slh_hypertree.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_params.o" => [ + "crypto/slh_dsa/slh_params.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_wots.o" => [ + "crypto/slh_dsa/slh_wots.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_xmss.o" => [ + "crypto/slh_dsa/slh_xmss.c" + ], + "crypto/slh_dsa/libfips-lib-slh_adrs.o" => [ + "crypto/slh_dsa/slh_adrs.c" + ], + "crypto/slh_dsa/libfips-lib-slh_dsa.o" => [ + "crypto/slh_dsa/slh_dsa.c" + ], + "crypto/slh_dsa/libfips-lib-slh_dsa_hash_ctx.o" => [ + "crypto/slh_dsa/slh_dsa_hash_ctx.c" + ], + "crypto/slh_dsa/libfips-lib-slh_dsa_key.o" => [ + "crypto/slh_dsa/slh_dsa_key.c" + ], + "crypto/slh_dsa/libfips-lib-slh_fors.o" => [ + "crypto/slh_dsa/slh_fors.c" + ], + "crypto/slh_dsa/libfips-lib-slh_hash.o" => [ + "crypto/slh_dsa/slh_hash.c" + ], + "crypto/slh_dsa/libfips-lib-slh_hypertree.o" => [ + "crypto/slh_dsa/slh_hypertree.c" + ], + "crypto/slh_dsa/libfips-lib-slh_params.o" => [ + "crypto/slh_dsa/slh_params.c" + ], + "crypto/slh_dsa/libfips-lib-slh_wots.o" => [ + "crypto/slh_dsa/slh_wots.c" + ], + "crypto/slh_dsa/libfips-lib-slh_xmss.o" => [ + "crypto/slh_dsa/slh_xmss.c" + ], "crypto/sm2/libcrypto-lib-sm2_crypt.o" => [ "crypto/sm2/sm2_crypt.c" ], @@ -23344,6 +27058,42 @@ our %unified_info = ( "crypto/store/libcrypto-lib-store_strings.o" => [ "crypto/store/store_strings.c" ], + "crypto/thread/arch/libcrypto-lib-thread_none.o" => [ + "crypto/thread/arch/thread_none.c" + ], + "crypto/thread/arch/libcrypto-lib-thread_posix.o" => [ + "crypto/thread/arch/thread_posix.c" + ], + "crypto/thread/arch/libcrypto-lib-thread_win.o" => [ + "crypto/thread/arch/thread_win.c" + ], + "crypto/thread/arch/libfips-lib-thread_none.o" => [ + "crypto/thread/arch/thread_none.c" + ], + "crypto/thread/arch/libfips-lib-thread_posix.o" => [ + "crypto/thread/arch/thread_posix.c" + ], + "crypto/thread/arch/libfips-lib-thread_win.o" => [ + "crypto/thread/arch/thread_win.c" + ], + "crypto/thread/libcrypto-lib-api.o" => [ + "crypto/thread/api.c" + ], + "crypto/thread/libcrypto-lib-arch.o" => [ + "crypto/thread/arch.c" + ], + "crypto/thread/libcrypto-lib-internal.o" => [ + "crypto/thread/internal.c" + ], + "crypto/thread/libfips-lib-api.o" => [ + "crypto/thread/api.c" + ], + "crypto/thread/libfips-lib-arch.o" => [ + "crypto/thread/arch.c" + ], + "crypto/thread/libfips-lib-internal.o" => [ + "crypto/thread/internal.c" + ], "crypto/ts/libcrypto-lib-ts_asn1.o" => [ "crypto/ts/ts_asn1.c" ], @@ -23428,6 +27178,9 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-pcy_tree.o" => [ "crypto/x509/pcy_tree.c" ], + "crypto/x509/libcrypto-lib-t_acert.o" => [ + "crypto/x509/t_acert.c" + ], "crypto/x509/libcrypto-lib-t_crl.o" => [ "crypto/x509/t_crl.c" ], @@ -23437,6 +27190,12 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-t_x509.o" => [ "crypto/x509/t_x509.c" ], + "crypto/x509/libcrypto-lib-v3_aaa.o" => [ + "crypto/x509/v3_aaa.c" + ], + "crypto/x509/libcrypto-lib-v3_ac_tgt.o" => [ + "crypto/x509/v3_ac_tgt.c" + ], "crypto/x509/libcrypto-lib-v3_addr.o" => [ "crypto/x509/v3_addr.c" ], @@ -23452,6 +27211,21 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_asid.o" => [ "crypto/x509/v3_asid.c" ], + "crypto/x509/libcrypto-lib-v3_attrdesc.o" => [ + "crypto/x509/v3_attrdesc.c" + ], + "crypto/x509/libcrypto-lib-v3_attrmap.o" => [ + "crypto/x509/v3_attrmap.c" + ], + "crypto/x509/libcrypto-lib-v3_audit_id.o" => [ + "crypto/x509/v3_audit_id.c" + ], + "crypto/x509/libcrypto-lib-v3_authattid.o" => [ + "crypto/x509/v3_authattid.c" + ], + "crypto/x509/libcrypto-lib-v3_battcons.o" => [ + "crypto/x509/v3_battcons.c" + ], "crypto/x509/libcrypto-lib-v3_bcons.o" => [ "crypto/x509/v3_bcons.c" ], @@ -23476,15 +27250,24 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_genn.o" => [ "crypto/x509/v3_genn.c" ], + "crypto/x509/libcrypto-lib-v3_group_ac.o" => [ + "crypto/x509/v3_group_ac.c" + ], "crypto/x509/libcrypto-lib-v3_ia5.o" => [ "crypto/x509/v3_ia5.c" ], + "crypto/x509/libcrypto-lib-v3_ind_iss.o" => [ + "crypto/x509/v3_ind_iss.c" + ], "crypto/x509/libcrypto-lib-v3_info.o" => [ "crypto/x509/v3_info.c" ], "crypto/x509/libcrypto-lib-v3_int.o" => [ "crypto/x509/v3_int.c" ], + "crypto/x509/libcrypto-lib-v3_iobo.o" => [ + "crypto/x509/v3_iobo.c" + ], "crypto/x509/libcrypto-lib-v3_ist.o" => [ "crypto/x509/v3_ist.c" ], @@ -23494,6 +27277,12 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_ncons.o" => [ "crypto/x509/v3_ncons.c" ], + "crypto/x509/libcrypto-lib-v3_no_ass.o" => [ + "crypto/x509/v3_no_ass.c" + ], + "crypto/x509/libcrypto-lib-v3_no_rev_avail.o" => [ + "crypto/x509/v3_no_rev_avail.c" + ], "crypto/x509/libcrypto-lib-v3_pci.o" => [ "crypto/x509/v3_pci.c" ], @@ -23515,18 +27304,36 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_purp.o" => [ "crypto/x509/v3_purp.c" ], + "crypto/x509/libcrypto-lib-v3_rolespec.o" => [ + "crypto/x509/v3_rolespec.c" + ], "crypto/x509/libcrypto-lib-v3_san.o" => [ "crypto/x509/v3_san.c" ], + "crypto/x509/libcrypto-lib-v3_sda.o" => [ + "crypto/x509/v3_sda.c" + ], + "crypto/x509/libcrypto-lib-v3_single_use.o" => [ + "crypto/x509/v3_single_use.c" + ], "crypto/x509/libcrypto-lib-v3_skid.o" => [ "crypto/x509/v3_skid.c" ], + "crypto/x509/libcrypto-lib-v3_soa_id.o" => [ + "crypto/x509/v3_soa_id.c" + ], "crypto/x509/libcrypto-lib-v3_sxnet.o" => [ "crypto/x509/v3_sxnet.c" ], + "crypto/x509/libcrypto-lib-v3_timespec.o" => [ + "crypto/x509/v3_timespec.c" + ], "crypto/x509/libcrypto-lib-v3_tlsf.o" => [ "crypto/x509/v3_tlsf.c" ], + "crypto/x509/libcrypto-lib-v3_usernotice.o" => [ + "crypto/x509/v3_usernotice.c" + ], "crypto/x509/libcrypto-lib-v3_utf8.o" => [ "crypto/x509/v3_utf8.c" ], @@ -23536,6 +27343,9 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3err.o" => [ "crypto/x509/v3err.c" ], + "crypto/x509/libcrypto-lib-x509_acert.o" => [ + "crypto/x509/x509_acert.c" + ], "crypto/x509/libcrypto-lib-x509_att.o" => [ "crypto/x509/x509_att.c" ], @@ -23587,6 +27397,9 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x509_vpm.o" => [ "crypto/x509/x509_vpm.c" ], + "crypto/x509/libcrypto-lib-x509aset.o" => [ + "crypto/x509/x509aset.c" + ], "crypto/x509/libcrypto-lib-x509cset.o" => [ "crypto/x509/x509cset.c" ], @@ -23614,6 +27427,9 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x_exten.o" => [ "crypto/x509/x_exten.c" ], + "crypto/x509/libcrypto-lib-x_ietfatt.o" => [ + "crypto/x509/x_ietfatt.c" + ], "crypto/x509/libcrypto-lib-x_name.o" => [ "crypto/x509/x_name.c" ], @@ -23638,6 +27454,16 @@ our %unified_info = ( "engines/libcrypto-lib-e_padlock.o" => [ "engines/e_padlock.c" ], + "fuzz/acert-test" => [ + "fuzz/acert-test-bin-acert.o", + "fuzz/acert-test-bin-test-corpus.o" + ], + "fuzz/acert-test-bin-acert.o" => [ + "fuzz/acert.c" + ], + "fuzz/acert-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], "fuzz/asn1-test" => [ "fuzz/asn1-test-bin-asn1.o", "fuzz/asn1-test-bin-fuzz_rand.o", @@ -23750,6 +27576,190 @@ our %unified_info = ( "fuzz/ct-test-bin-test-corpus.o" => [ "fuzz/test-corpus.c" ], + "fuzz/decoder-test" => [ + "fuzz/decoder-test-bin-decoder.o", + "fuzz/decoder-test-bin-fuzz_rand.o", + "fuzz/decoder-test-bin-test-corpus.o" + ], + "fuzz/decoder-test-bin-decoder.o" => [ + "fuzz/decoder.c" + ], + "fuzz/decoder-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/decoder-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/dtlsclient-test" => [ + "fuzz/dtlsclient-test-bin-dtlsclient.o", + "fuzz/dtlsclient-test-bin-fuzz_rand.o", + "fuzz/dtlsclient-test-bin-test-corpus.o" + ], + "fuzz/dtlsclient-test-bin-dtlsclient.o" => [ + "fuzz/dtlsclient.c" + ], + "fuzz/dtlsclient-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/dtlsclient-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/dtlsserver-test" => [ + "fuzz/dtlsserver-test-bin-dtlsserver.o", + "fuzz/dtlsserver-test-bin-fuzz_rand.o", + "fuzz/dtlsserver-test-bin-test-corpus.o" + ], + "fuzz/dtlsserver-test-bin-dtlsserver.o" => [ + "fuzz/dtlsserver.c" + ], + "fuzz/dtlsserver-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/dtlsserver-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/hashtable-test" => [ + "fuzz/hashtable-test-bin-fuzz_rand.o", + "fuzz/hashtable-test-bin-hashtable.o", + "fuzz/hashtable-test-bin-test-corpus.o" + ], + "fuzz/hashtable-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/hashtable-test-bin-hashtable.o" => [ + "fuzz/hashtable.c" + ], + "fuzz/hashtable-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/ml-dsa-test" => [ + "fuzz/ml-dsa-test-bin-fuzz_rand.o", + "fuzz/ml-dsa-test-bin-ml-dsa.o", + "fuzz/ml-dsa-test-bin-test-corpus.o" + ], + "fuzz/ml-dsa-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/ml-dsa-test-bin-ml-dsa.o" => [ + "fuzz/ml-dsa.c" + ], + "fuzz/ml-dsa-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/ml-kem-test" => [ + "fuzz/ml-kem-test-bin-fuzz_rand.o", + "fuzz/ml-kem-test-bin-ml-kem.o", + "fuzz/ml-kem-test-bin-test-corpus.o" + ], + "fuzz/ml-kem-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/ml-kem-test-bin-ml-kem.o" => [ + "fuzz/ml-kem.c" + ], + "fuzz/ml-kem-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/pem-test" => [ + "fuzz/pem-test-bin-pem.o", + "fuzz/pem-test-bin-test-corpus.o" + ], + "fuzz/pem-test-bin-pem.o" => [ + "fuzz/pem.c" + ], + "fuzz/pem-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/provider-test" => [ + "fuzz/provider-test-bin-provider.o", + "fuzz/provider-test-bin-test-corpus.o" + ], + "fuzz/provider-test-bin-provider.o" => [ + "fuzz/provider.c" + ], + "fuzz/provider-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/punycode-test" => [ + "fuzz/punycode-test-bin-punycode.o", + "fuzz/punycode-test-bin-test-corpus.o" + ], + "fuzz/punycode-test-bin-punycode.o" => [ + "fuzz/punycode.c" + ], + "fuzz/punycode-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-client-test" => [ + "fuzz/quic-client-test-bin-fuzz_rand.o", + "fuzz/quic-client-test-bin-quic-client.o", + "fuzz/quic-client-test-bin-test-corpus.o" + ], + "fuzz/quic-client-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-client-test-bin-quic-client.o" => [ + "fuzz/quic-client.c" + ], + "fuzz/quic-client-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-lcidm-test" => [ + "fuzz/quic-lcidm-test-bin-fuzz_rand.o", + "fuzz/quic-lcidm-test-bin-quic-lcidm.o", + "fuzz/quic-lcidm-test-bin-test-corpus.o" + ], + "fuzz/quic-lcidm-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-lcidm-test-bin-quic-lcidm.o" => [ + "fuzz/quic-lcidm.c" + ], + "fuzz/quic-lcidm-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-rcidm-test" => [ + "fuzz/quic-rcidm-test-bin-fuzz_rand.o", + "fuzz/quic-rcidm-test-bin-quic-rcidm.o", + "fuzz/quic-rcidm-test-bin-test-corpus.o" + ], + "fuzz/quic-rcidm-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-rcidm-test-bin-quic-rcidm.o" => [ + "fuzz/quic-rcidm.c" + ], + "fuzz/quic-rcidm-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-server-test" => [ + "fuzz/quic-server-test-bin-fuzz_rand.o", + "fuzz/quic-server-test-bin-quic-server.o", + "fuzz/quic-server-test-bin-test-corpus.o" + ], + "fuzz/quic-server-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-server-test-bin-quic-server.o" => [ + "fuzz/quic-server.c" + ], + "fuzz/quic-server-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-srtm-test" => [ + "fuzz/quic-srtm-test-bin-fuzz_rand.o", + "fuzz/quic-srtm-test-bin-quic-srtm.o", + "fuzz/quic-srtm-test-bin-test-corpus.o" + ], + "fuzz/quic-srtm-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-srtm-test-bin-quic-srtm.o" => [ + "fuzz/quic-srtm.c" + ], + "fuzz/quic-srtm-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], "fuzz/server-test" => [ "fuzz/server-test-bin-fuzz_rand.o", "fuzz/server-test-bin-server.o", @@ -23764,6 +27774,40 @@ our %unified_info = ( "fuzz/server-test-bin-test-corpus.o" => [ "fuzz/test-corpus.c" ], + "fuzz/slh-dsa-test" => [ + "fuzz/slh-dsa-test-bin-fuzz_rand.o", + "fuzz/slh-dsa-test-bin-slh-dsa.o", + "fuzz/slh-dsa-test-bin-test-corpus.o" + ], + "fuzz/slh-dsa-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/slh-dsa-test-bin-slh-dsa.o" => [ + "fuzz/slh-dsa.c" + ], + "fuzz/slh-dsa-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/smime-test" => [ + "fuzz/smime-test-bin-smime.o", + "fuzz/smime-test-bin-test-corpus.o" + ], + "fuzz/smime-test-bin-smime.o" => [ + "fuzz/smime.c" + ], + "fuzz/smime-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/v3name-test" => [ + "fuzz/v3name-test-bin-test-corpus.o", + "fuzz/v3name-test-bin-v3name.o" + ], + "fuzz/v3name-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/v3name-test-bin-v3name.o" => [ + "fuzz/v3name.c" + ], "fuzz/x509-test" => [ "fuzz/x509-test-bin-fuzz_rand.o", "fuzz/x509-test-bin-test-corpus.o", @@ -23790,6 +27834,7 @@ our %unified_info = ( "crypto/aes/libcrypto-lib-aesni-sha1-x86_64.o", "crypto/aes/libcrypto-lib-aesni-sha256-x86_64.o", "crypto/aes/libcrypto-lib-aesni-x86_64.o", + "crypto/aes/libcrypto-lib-aesni-xts-avx512.o", "crypto/aes/libcrypto-lib-bsaes-x86_64.o", "crypto/aes/libcrypto-lib-vpaes-x86_64.o", "crypto/aria/libcrypto-lib-aria.o", @@ -23888,6 +27933,7 @@ our %unified_info = ( "crypto/bio/libcrypto-lib-bss_conn.o", "crypto/bio/libcrypto-lib-bss_core.o", "crypto/bio/libcrypto-lib-bss_dgram.o", + "crypto/bio/libcrypto-lib-bss_dgram_pair.o", "crypto/bio/libcrypto-lib-bss_fd.o", "crypto/bio/libcrypto-lib-bss_file.o", "crypto/bio/libcrypto-lib-bss_log.o", @@ -23928,8 +27974,13 @@ our %unified_info = ( "crypto/bn/libcrypto-lib-bn_srp.o", "crypto/bn/libcrypto-lib-bn_word.o", "crypto/bn/libcrypto-lib-bn_x931p.o", + "crypto/bn/libcrypto-lib-rsaz-2k-avx512.o", + "crypto/bn/libcrypto-lib-rsaz-2k-avxifma.o", + "crypto/bn/libcrypto-lib-rsaz-3k-avx512.o", + "crypto/bn/libcrypto-lib-rsaz-3k-avxifma.o", + "crypto/bn/libcrypto-lib-rsaz-4k-avx512.o", + "crypto/bn/libcrypto-lib-rsaz-4k-avxifma.o", "crypto/bn/libcrypto-lib-rsaz-avx2.o", - "crypto/bn/libcrypto-lib-rsaz-avx512.o", "crypto/bn/libcrypto-lib-rsaz-x86_64.o", "crypto/bn/libcrypto-lib-rsaz_exp.o", "crypto/bn/libcrypto-lib-rsaz_exp_x2.o", @@ -23955,6 +28006,7 @@ our %unified_info = ( "crypto/cmp/libcrypto-lib-cmp_client.o", "crypto/cmp/libcrypto-lib-cmp_ctx.o", "crypto/cmp/libcrypto-lib-cmp_err.o", + "crypto/cmp/libcrypto-lib-cmp_genm.o", "crypto/cmp/libcrypto-lib-cmp_hdr.o", "crypto/cmp/libcrypto-lib-cmp_http.o", "crypto/cmp/libcrypto-lib-cmp_msg.o", @@ -24133,7 +28185,9 @@ our %unified_info = ( "crypto/err/libcrypto-lib-err_all.o", "crypto/err/libcrypto-lib-err_all_legacy.o", "crypto/err/libcrypto-lib-err_blocks.o", + "crypto/err/libcrypto-lib-err_mark.o", "crypto/err/libcrypto-lib-err_prn.o", + "crypto/err/libcrypto-lib-err_save.o", "crypto/ess/libcrypto-lib-ess_asn1.o", "crypto/ess/libcrypto-lib-ess_err.o", "crypto/ess/libcrypto-lib-ess_lib.o", @@ -24216,7 +28270,9 @@ our %unified_info = ( "crypto/evp/libcrypto-lib-pmeth_check.o", "crypto/evp/libcrypto-lib-pmeth_gn.o", "crypto/evp/libcrypto-lib-pmeth_lib.o", + "crypto/evp/libcrypto-lib-s_lib.o", "crypto/evp/libcrypto-lib-signature.o", + "crypto/evp/libcrypto-lib-skeymgmt_meth.o", "crypto/ffc/libcrypto-lib-ffc_backend.o", "crypto/ffc/libcrypto-lib-ffc_dh.o", "crypto/ffc/libcrypto-lib-ffc_key_generate.o", @@ -24224,7 +28280,11 @@ our %unified_info = ( "crypto/ffc/libcrypto-lib-ffc_params.o", "crypto/ffc/libcrypto-lib-ffc_params_generate.o", "crypto/ffc/libcrypto-lib-ffc_params_validate.o", + "crypto/hashtable/libcrypto-lib-hashfunc.o", + "crypto/hashtable/libcrypto-lib-hashtable.o", "crypto/hmac/libcrypto-lib-hmac.o", + "crypto/hpke/libcrypto-lib-hpke.o", + "crypto/hpke/libcrypto-lib-hpke_util.o", "crypto/http/libcrypto-lib-http_client.o", "crypto/http/libcrypto-lib-http_err.o", "crypto/http/libcrypto-lib-http_lib.o", @@ -24238,6 +28298,7 @@ our %unified_info = ( "crypto/lhash/libcrypto-lib-lhash.o", "crypto/libcrypto-lib-asn1_dsa.o", "crypto/libcrypto-lib-bsearch.o", + "crypto/libcrypto-lib-comp_methods.o", "crypto/libcrypto-lib-context.o", "crypto/libcrypto-lib-core_algorithm.o", "crypto/libcrypto-lib-core_fetch.o", @@ -24247,10 +28308,13 @@ our %unified_info = ( "crypto/libcrypto-lib-cryptlib.o", "crypto/libcrypto-lib-ctype.o", "crypto/libcrypto-lib-cversion.o", + "crypto/libcrypto-lib-defaults.o", "crypto/libcrypto-lib-der_writer.o", + "crypto/libcrypto-lib-deterministic_nonce.o", "crypto/libcrypto-lib-ebcdic.o", "crypto/libcrypto-lib-ex_data.o", "crypto/libcrypto-lib-getenv.o", + "crypto/libcrypto-lib-indicator_core.o", "crypto/libcrypto-lib-info.o", "crypto/libcrypto-lib-init.o", "crypto/libcrypto-lib-initthread.o", @@ -24267,6 +28331,7 @@ our %unified_info = ( "crypto/libcrypto-lib-params.o", "crypto/libcrypto-lib-params_dup.o", "crypto/libcrypto-lib-params_from_text.o", + "crypto/libcrypto-lib-params_idx.o", "crypto/libcrypto-lib-passphrase.o", "crypto/libcrypto-lib-provider.o", "crypto/libcrypto-lib-provider_child.o", @@ -24274,12 +28339,16 @@ our %unified_info = ( "crypto/libcrypto-lib-provider_core.o", "crypto/libcrypto-lib-provider_predefined.o", "crypto/libcrypto-lib-punycode.o", + "crypto/libcrypto-lib-quic_vlint.o", "crypto/libcrypto-lib-self_test_core.o", + "crypto/libcrypto-lib-sleep.o", "crypto/libcrypto-lib-sparse_array.o", + "crypto/libcrypto-lib-ssl_err.o", "crypto/libcrypto-lib-threads_lib.o", "crypto/libcrypto-lib-threads_none.o", "crypto/libcrypto-lib-threads_pthread.o", "crypto/libcrypto-lib-threads_win.o", + "crypto/libcrypto-lib-time.o", "crypto/libcrypto-lib-trace.o", "crypto/libcrypto-lib-uid.o", "crypto/libcrypto-lib-x86_64cpuid.o", @@ -24291,6 +28360,16 @@ our %unified_info = ( "crypto/md5/libcrypto-lib-md5_sha1.o", "crypto/mdc2/libcrypto-lib-mdc2_one.o", "crypto/mdc2/libcrypto-lib-mdc2dgst.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_encoders.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key_compress.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_matrix.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_ntt.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_params.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sample.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sign.o", + "crypto/ml_kem/libcrypto-lib-ml_kem.o", + "crypto/modes/libcrypto-lib-aes-gcm-avx512.o", "crypto/modes/libcrypto-lib-aesni-gcm-x86_64.o", "crypto/modes/libcrypto-lib-cbc128.o", "crypto/modes/libcrypto-lib-ccm128.o", @@ -24304,6 +28383,7 @@ our %unified_info = ( "crypto/modes/libcrypto-lib-siv128.o", "crypto/modes/libcrypto-lib-wrap128.o", "crypto/modes/libcrypto-lib-xts128.o", + "crypto/modes/libcrypto-lib-xts128gb.o", "crypto/objects/libcrypto-lib-o_names.o", "crypto/objects/libcrypto-lib-obj_dat.o", "crypto/objects/libcrypto-lib-obj_err.o", @@ -24368,6 +28448,7 @@ our %unified_info = ( "crypto/rand/libcrypto-lib-rand_lib.o", "crypto/rand/libcrypto-lib-rand_meth.o", "crypto/rand/libcrypto-lib-rand_pool.o", + "crypto/rand/libcrypto-lib-rand_uniform.o", "crypto/rand/libcrypto-lib-randfile.o", "crypto/rc2/libcrypto-lib-rc2_cbc.o", "crypto/rc2/libcrypto-lib-rc2_ecb.o", @@ -24421,6 +28502,16 @@ our %unified_info = ( "crypto/sha/libcrypto-lib-sha512-x86_64.o", "crypto/sha/libcrypto-lib-sha512.o", "crypto/siphash/libcrypto-lib-siphash.o", + "crypto/slh_dsa/libcrypto-lib-slh_adrs.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa_hash_ctx.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa_key.o", + "crypto/slh_dsa/libcrypto-lib-slh_fors.o", + "crypto/slh_dsa/libcrypto-lib-slh_hash.o", + "crypto/slh_dsa/libcrypto-lib-slh_hypertree.o", + "crypto/slh_dsa/libcrypto-lib-slh_params.o", + "crypto/slh_dsa/libcrypto-lib-slh_wots.o", + "crypto/slh_dsa/libcrypto-lib-slh_xmss.o", "crypto/sm2/libcrypto-lib-sm2_crypt.o", "crypto/sm2/libcrypto-lib-sm2_err.o", "crypto/sm2/libcrypto-lib-sm2_key.o", @@ -24438,6 +28529,12 @@ our %unified_info = ( "crypto/store/libcrypto-lib-store_register.o", "crypto/store/libcrypto-lib-store_result.o", "crypto/store/libcrypto-lib-store_strings.o", + "crypto/thread/arch/libcrypto-lib-thread_none.o", + "crypto/thread/arch/libcrypto-lib-thread_posix.o", + "crypto/thread/arch/libcrypto-lib-thread_win.o", + "crypto/thread/libcrypto-lib-api.o", + "crypto/thread/libcrypto-lib-arch.o", + "crypto/thread/libcrypto-lib-internal.o", "crypto/ts/libcrypto-lib-ts_asn1.o", "crypto/ts/libcrypto-lib-ts_conf.o", "crypto/ts/libcrypto-lib-ts_err.o", @@ -24466,14 +28563,22 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-pcy_map.o", "crypto/x509/libcrypto-lib-pcy_node.o", "crypto/x509/libcrypto-lib-pcy_tree.o", + "crypto/x509/libcrypto-lib-t_acert.o", "crypto/x509/libcrypto-lib-t_crl.o", "crypto/x509/libcrypto-lib-t_req.o", "crypto/x509/libcrypto-lib-t_x509.o", + "crypto/x509/libcrypto-lib-v3_aaa.o", + "crypto/x509/libcrypto-lib-v3_ac_tgt.o", "crypto/x509/libcrypto-lib-v3_addr.o", "crypto/x509/libcrypto-lib-v3_admis.o", "crypto/x509/libcrypto-lib-v3_akeya.o", "crypto/x509/libcrypto-lib-v3_akid.o", "crypto/x509/libcrypto-lib-v3_asid.o", + "crypto/x509/libcrypto-lib-v3_attrdesc.o", + "crypto/x509/libcrypto-lib-v3_attrmap.o", + "crypto/x509/libcrypto-lib-v3_audit_id.o", + "crypto/x509/libcrypto-lib-v3_authattid.o", + "crypto/x509/libcrypto-lib-v3_battcons.o", "crypto/x509/libcrypto-lib-v3_bcons.o", "crypto/x509/libcrypto-lib-v3_bitst.o", "crypto/x509/libcrypto-lib-v3_conf.o", @@ -24482,12 +28587,17 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_enum.o", "crypto/x509/libcrypto-lib-v3_extku.o", "crypto/x509/libcrypto-lib-v3_genn.o", + "crypto/x509/libcrypto-lib-v3_group_ac.o", "crypto/x509/libcrypto-lib-v3_ia5.o", + "crypto/x509/libcrypto-lib-v3_ind_iss.o", "crypto/x509/libcrypto-lib-v3_info.o", "crypto/x509/libcrypto-lib-v3_int.o", + "crypto/x509/libcrypto-lib-v3_iobo.o", "crypto/x509/libcrypto-lib-v3_ist.o", "crypto/x509/libcrypto-lib-v3_lib.o", "crypto/x509/libcrypto-lib-v3_ncons.o", + "crypto/x509/libcrypto-lib-v3_no_ass.o", + "crypto/x509/libcrypto-lib-v3_no_rev_avail.o", "crypto/x509/libcrypto-lib-v3_pci.o", "crypto/x509/libcrypto-lib-v3_pcia.o", "crypto/x509/libcrypto-lib-v3_pcons.o", @@ -24495,13 +28605,20 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_pmaps.o", "crypto/x509/libcrypto-lib-v3_prn.o", "crypto/x509/libcrypto-lib-v3_purp.o", + "crypto/x509/libcrypto-lib-v3_rolespec.o", "crypto/x509/libcrypto-lib-v3_san.o", + "crypto/x509/libcrypto-lib-v3_sda.o", + "crypto/x509/libcrypto-lib-v3_single_use.o", "crypto/x509/libcrypto-lib-v3_skid.o", + "crypto/x509/libcrypto-lib-v3_soa_id.o", "crypto/x509/libcrypto-lib-v3_sxnet.o", + "crypto/x509/libcrypto-lib-v3_timespec.o", "crypto/x509/libcrypto-lib-v3_tlsf.o", + "crypto/x509/libcrypto-lib-v3_usernotice.o", "crypto/x509/libcrypto-lib-v3_utf8.o", "crypto/x509/libcrypto-lib-v3_utl.o", "crypto/x509/libcrypto-lib-v3err.o", + "crypto/x509/libcrypto-lib-x509_acert.o", "crypto/x509/libcrypto-lib-x509_att.o", "crypto/x509/libcrypto-lib-x509_cmp.o", "crypto/x509/libcrypto-lib-x509_d2.o", @@ -24519,6 +28636,7 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x509_v3.o", "crypto/x509/libcrypto-lib-x509_vfy.o", "crypto/x509/libcrypto-lib-x509_vpm.o", + "crypto/x509/libcrypto-lib-x509aset.o", "crypto/x509/libcrypto-lib-x509cset.o", "crypto/x509/libcrypto-lib-x509name.o", "crypto/x509/libcrypto-lib-x509rset.o", @@ -24528,6 +28646,7 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x_attrib.o", "crypto/x509/libcrypto-lib-x_crl.o", "crypto/x509/libcrypto-lib-x_exten.o", + "crypto/x509/libcrypto-lib-x_ietfatt.o", "crypto/x509/libcrypto-lib-x_name.o", "crypto/x509/libcrypto-lib-x_pubkey.o", "crypto/x509/libcrypto-lib-x_req.o", @@ -24549,14 +28668,15 @@ our %unified_info = ( "ssl/libssl-lib-d1_srtp.o", "ssl/libssl-lib-methods.o", "ssl/libssl-lib-pqueue.o", + "ssl/libssl-lib-priority_queue.o", "ssl/libssl-lib-s3_enc.o", "ssl/libssl-lib-s3_lib.o", "ssl/libssl-lib-s3_msg.o", "ssl/libssl-lib-ssl_asn1.o", "ssl/libssl-lib-ssl_cert.o", + "ssl/libssl-lib-ssl_cert_comp.o", "ssl/libssl-lib-ssl_ciph.o", "ssl/libssl-lib-ssl_conf.o", - "ssl/libssl-lib-ssl_err.o", "ssl/libssl-lib-ssl_err_legacy.o", "ssl/libssl-lib-ssl_init.o", "ssl/libssl-lib-ssl_lib.o", @@ -24573,12 +28693,60 @@ our %unified_info = ( "ssl/libssl-lib-tls13_enc.o", "ssl/libssl-lib-tls_depr.o", "ssl/libssl-lib-tls_srp.o", - "ssl/record/libssl-lib-dtls1_bitmap.o", + "ssl/quic/libssl-lib-cc_newreno.o", + "ssl/quic/libssl-lib-json_enc.o", + "ssl/quic/libssl-lib-qlog.o", + "ssl/quic/libssl-lib-qlog_event_helpers.o", + "ssl/quic/libssl-lib-quic_ackm.o", + "ssl/quic/libssl-lib-quic_cfq.o", + "ssl/quic/libssl-lib-quic_channel.o", + "ssl/quic/libssl-lib-quic_demux.o", + "ssl/quic/libssl-lib-quic_engine.o", + "ssl/quic/libssl-lib-quic_fc.o", + "ssl/quic/libssl-lib-quic_fifd.o", + "ssl/quic/libssl-lib-quic_impl.o", + "ssl/quic/libssl-lib-quic_lcidm.o", + "ssl/quic/libssl-lib-quic_method.o", + "ssl/quic/libssl-lib-quic_obj.o", + "ssl/quic/libssl-lib-quic_port.o", + "ssl/quic/libssl-lib-quic_rcidm.o", + "ssl/quic/libssl-lib-quic_reactor.o", + "ssl/quic/libssl-lib-quic_reactor_wait_ctx.o", + "ssl/quic/libssl-lib-quic_record_rx.o", + "ssl/quic/libssl-lib-quic_record_shared.o", + "ssl/quic/libssl-lib-quic_record_tx.o", + "ssl/quic/libssl-lib-quic_record_util.o", + "ssl/quic/libssl-lib-quic_rstream.o", + "ssl/quic/libssl-lib-quic_rx_depack.o", + "ssl/quic/libssl-lib-quic_sf_list.o", + "ssl/quic/libssl-lib-quic_srt_gen.o", + "ssl/quic/libssl-lib-quic_srtm.o", + "ssl/quic/libssl-lib-quic_sstream.o", + "ssl/quic/libssl-lib-quic_statm.o", + "ssl/quic/libssl-lib-quic_stream_map.o", + "ssl/quic/libssl-lib-quic_thread_assist.o", + "ssl/quic/libssl-lib-quic_tls.o", + "ssl/quic/libssl-lib-quic_tls_api.o", + "ssl/quic/libssl-lib-quic_trace.o", + "ssl/quic/libssl-lib-quic_tserver.o", + "ssl/quic/libssl-lib-quic_txp.o", + "ssl/quic/libssl-lib-quic_txpim.o", + "ssl/quic/libssl-lib-quic_types.o", + "ssl/quic/libssl-lib-quic_wire.o", + "ssl/quic/libssl-lib-quic_wire_pkt.o", + "ssl/quic/libssl-lib-uint_set.o", "ssl/record/libssl-lib-rec_layer_d1.o", "ssl/record/libssl-lib-rec_layer_s3.o", - "ssl/record/libssl-lib-ssl3_buffer.o", - "ssl/record/libssl-lib-ssl3_record.o", - "ssl/record/libssl-lib-ssl3_record_tls13.o", + "ssl/record/methods/libssl-lib-dtls_meth.o", + "ssl/record/methods/libssl-lib-ssl3_meth.o", + "ssl/record/methods/libssl-lib-tls13_meth.o", + "ssl/record/methods/libssl-lib-tls1_meth.o", + "ssl/record/methods/libssl-lib-tls_common.o", + "ssl/record/methods/libssl-lib-tls_multib.o", + "ssl/record/methods/libssl-lib-tlsany_meth.o", + "ssl/rio/libssl-lib-poll_builder.o", + "ssl/rio/libssl-lib-poll_immediate.o", + "ssl/rio/libssl-lib-rio_notifier.o", "ssl/statem/libssl-lib-extensions.o", "ssl/statem/libssl-lib-extensions_clnt.o", "ssl/statem/libssl-lib-extensions_cust.o", @@ -24616,12 +28784,24 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ecx_key.o" => [ "providers/common/der/der_ecx_key.c" ], + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o" => [ + "providers/common/der/der_ml_dsa_gen.c" + ], + "providers/common/der/libcommon-lib-der_ml_dsa_key.o" => [ + "providers/common/der/der_ml_dsa_key.c" + ], "providers/common/der/libcommon-lib-der_rsa_gen.o" => [ "providers/common/der/der_rsa_gen.c" ], "providers/common/der/libcommon-lib-der_rsa_key.o" => [ "providers/common/der/der_rsa_key.c" ], + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o" => [ + "providers/common/der/der_slh_dsa_gen.c" + ], + "providers/common/der/libcommon-lib-der_slh_dsa_key.o" => [ + "providers/common/der/der_slh_dsa_key.c" + ], "providers/common/der/libcommon-lib-der_wrap_gen.o" => [ "providers/common/der/der_wrap_gen.c" ], @@ -24688,6 +28868,9 @@ our %unified_info = ( "providers/common/libfips-lib-securitycheck_fips.o" => [ "providers/common/securitycheck_fips.c" ], + "providers/endecode_test-bin-legacyprov.o" => [ + "providers/legacyprov.c" + ], "providers/evp_extra_test-bin-legacyprov.o" => [ "providers/legacyprov.c" ], @@ -24697,6 +28880,9 @@ our %unified_info = ( "providers/fips/fips-dso-fips_entry.o" => [ "providers/fips/fips_entry.c" ], + "providers/fips/libfips-lib-fipsindicator.o" => [ + "providers/fips/fipsindicator.c" + ], "providers/fips/libfips-lib-fipsprov.o" => [ "providers/fips/fipsprov.c" ], @@ -24760,6 +28946,15 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_hw.o" => [ "providers/implementations/ciphers/cipher_aes_gcm_hw.c" ], + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv.o" => [ + "providers/implementations/ciphers/cipher_aes_gcm_siv.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_hw.o" => [ + "providers/implementations/ciphers/cipher_aes_gcm_siv_hw.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_polyval.o" => [ + "providers/implementations/ciphers/cipher_aes_gcm_siv_polyval.c" + ], "providers/implementations/ciphers/libdefault-lib-cipher_aes_hw.o" => [ "providers/implementations/ciphers/cipher_aes_hw.c" ], @@ -24832,9 +29027,27 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_sm4.o" => [ "providers/implementations/ciphers/cipher_sm4.c" ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm.o" => [ + "providers/implementations/ciphers/cipher_sm4_ccm.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm_hw.o" => [ + "providers/implementations/ciphers/cipher_sm4_ccm_hw.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm.o" => [ + "providers/implementations/ciphers/cipher_sm4_gcm.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm_hw.o" => [ + "providers/implementations/ciphers/cipher_sm4_gcm_hw.c" + ], "providers/implementations/ciphers/libdefault-lib-cipher_sm4_hw.o" => [ "providers/implementations/ciphers/cipher_sm4_hw.c" ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts.o" => [ + "providers/implementations/ciphers/cipher_sm4_xts.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts_hw.o" => [ + "providers/implementations/ciphers/cipher_sm4_xts_hw.c" + ], "providers/implementations/ciphers/libdefault-lib-cipher_tdes.o" => [ "providers/implementations/ciphers/cipher_tdes.c" ], @@ -25054,6 +29267,15 @@ our %unified_info = ( "providers/implementations/encode_decode/libdefault-lib-endecoder_common.o" => [ "providers/implementations/encode_decode/endecoder_common.c" ], + "providers/implementations/encode_decode/libdefault-lib-ml_common_codecs.o" => [ + "providers/implementations/encode_decode/ml_common_codecs.c" + ], + "providers/implementations/encode_decode/libdefault-lib-ml_dsa_codecs.o" => [ + "providers/implementations/encode_decode/ml_dsa_codecs.c" + ], + "providers/implementations/encode_decode/libdefault-lib-ml_kem_codecs.o" => [ + "providers/implementations/encode_decode/ml_kem_codecs.c" + ], "providers/implementations/exchange/libdefault-lib-dh_exch.o" => [ "providers/implementations/exchange/dh_exch.c" ], @@ -25078,9 +29300,15 @@ our %unified_info = ( "providers/implementations/exchange/libfips-lib-kdf_exch.o" => [ "providers/implementations/exchange/kdf_exch.c" ], + "providers/implementations/kdfs/libdefault-lib-argon2.o" => [ + "providers/implementations/kdfs/argon2.c" + ], "providers/implementations/kdfs/libdefault-lib-hkdf.o" => [ "providers/implementations/kdfs/hkdf.c" ], + "providers/implementations/kdfs/libdefault-lib-hmacdrbg_kdf.o" => [ + "providers/implementations/kdfs/hmacdrbg_kdf.c" + ], "providers/implementations/kdfs/libdefault-lib-kbkdf.o" => [ "providers/implementations/kdfs/kbkdf.c" ], @@ -25138,12 +29366,39 @@ our %unified_info = ( "providers/implementations/kdfs/liblegacy-lib-pbkdf1.o" => [ "providers/implementations/kdfs/pbkdf1.c" ], + "providers/implementations/kdfs/liblegacy-lib-pvkkdf.o" => [ + "providers/implementations/kdfs/pvkkdf.c" + ], + "providers/implementations/kem/libdefault-lib-ec_kem.o" => [ + "providers/implementations/kem/ec_kem.c" + ], + "providers/implementations/kem/libdefault-lib-ecx_kem.o" => [ + "providers/implementations/kem/ecx_kem.c" + ], + "providers/implementations/kem/libdefault-lib-kem_util.o" => [ + "providers/implementations/kem/kem_util.c" + ], + "providers/implementations/kem/libdefault-lib-ml_kem_kem.o" => [ + "providers/implementations/kem/ml_kem_kem.c" + ], + "providers/implementations/kem/libdefault-lib-mlx_kem.o" => [ + "providers/implementations/kem/mlx_kem.c" + ], "providers/implementations/kem/libdefault-lib-rsa_kem.o" => [ "providers/implementations/kem/rsa_kem.c" ], + "providers/implementations/kem/libfips-lib-ml_kem_kem.o" => [ + "providers/implementations/kem/ml_kem_kem.c" + ], + "providers/implementations/kem/libfips-lib-mlx_kem.o" => [ + "providers/implementations/kem/mlx_kem.c" + ], "providers/implementations/kem/libfips-lib-rsa_kem.o" => [ "providers/implementations/kem/rsa_kem.c" ], + "providers/implementations/kem/libtemplate-lib-template_kem.o" => [ + "providers/implementations/kem/template_kem.c" + ], "providers/implementations/keymgmt/libdefault-lib-dh_kmgmt.o" => [ "providers/implementations/keymgmt/dh_kmgmt.c" ], @@ -25162,9 +29417,21 @@ our %unified_info = ( "providers/implementations/keymgmt/libdefault-lib-mac_legacy_kmgmt.o" => [ "providers/implementations/keymgmt/mac_legacy_kmgmt.c" ], + "providers/implementations/keymgmt/libdefault-lib-ml_dsa_kmgmt.o" => [ + "providers/implementations/keymgmt/ml_dsa_kmgmt.c" + ], + "providers/implementations/keymgmt/libdefault-lib-ml_kem_kmgmt.o" => [ + "providers/implementations/keymgmt/ml_kem_kmgmt.c" + ], + "providers/implementations/keymgmt/libdefault-lib-mlx_kmgmt.o" => [ + "providers/implementations/keymgmt/mlx_kmgmt.c" + ], "providers/implementations/keymgmt/libdefault-lib-rsa_kmgmt.o" => [ "providers/implementations/keymgmt/rsa_kmgmt.c" ], + "providers/implementations/keymgmt/libdefault-lib-slh_dsa_kmgmt.o" => [ + "providers/implementations/keymgmt/slh_dsa_kmgmt.c" + ], "providers/implementations/keymgmt/libfips-lib-dh_kmgmt.o" => [ "providers/implementations/keymgmt/dh_kmgmt.c" ], @@ -25183,9 +29450,24 @@ our %unified_info = ( "providers/implementations/keymgmt/libfips-lib-mac_legacy_kmgmt.o" => [ "providers/implementations/keymgmt/mac_legacy_kmgmt.c" ], + "providers/implementations/keymgmt/libfips-lib-ml_dsa_kmgmt.o" => [ + "providers/implementations/keymgmt/ml_dsa_kmgmt.c" + ], + "providers/implementations/keymgmt/libfips-lib-ml_kem_kmgmt.o" => [ + "providers/implementations/keymgmt/ml_kem_kmgmt.c" + ], + "providers/implementations/keymgmt/libfips-lib-mlx_kmgmt.o" => [ + "providers/implementations/keymgmt/mlx_kmgmt.c" + ], "providers/implementations/keymgmt/libfips-lib-rsa_kmgmt.o" => [ "providers/implementations/keymgmt/rsa_kmgmt.c" ], + "providers/implementations/keymgmt/libfips-lib-slh_dsa_kmgmt.o" => [ + "providers/implementations/keymgmt/slh_dsa_kmgmt.c" + ], + "providers/implementations/keymgmt/libtemplate-lib-template_kmgmt.o" => [ + "providers/implementations/keymgmt/template_kmgmt.c" + ], "providers/implementations/macs/libdefault-lib-blake2b_mac.o" => [ "providers/implementations/macs/blake2b_mac.c" ], @@ -25222,9 +29504,6 @@ our %unified_info = ( "providers/implementations/macs/libfips-lib-kmac_prov.o" => [ "providers/implementations/macs/kmac_prov.c" ], - "providers/implementations/rands/libdefault-lib-crngt.o" => [ - "providers/implementations/rands/crngt.c" - ], "providers/implementations/rands/libdefault-lib-drbg.o" => [ "providers/implementations/rands/drbg.c" ], @@ -25240,12 +29519,12 @@ our %unified_info = ( "providers/implementations/rands/libdefault-lib-seed_src.o" => [ "providers/implementations/rands/seed_src.c" ], + "providers/implementations/rands/libdefault-lib-seed_src_jitter.o" => [ + "providers/implementations/rands/seed_src_jitter.c" + ], "providers/implementations/rands/libdefault-lib-test_rng.o" => [ "providers/implementations/rands/test_rng.c" ], - "providers/implementations/rands/libfips-lib-crngt.o" => [ - "providers/implementations/rands/crngt.c" - ], "providers/implementations/rands/libfips-lib-drbg.o" => [ "providers/implementations/rands/drbg.c" ], @@ -25258,6 +29537,9 @@ our %unified_info = ( "providers/implementations/rands/libfips-lib-drbg_hmac.o" => [ "providers/implementations/rands/drbg_hmac.c" ], + "providers/implementations/rands/libfips-lib-fips_crng_test.o" => [ + "providers/implementations/rands/fips_crng_test.c" + ], "providers/implementations/rands/libfips-lib-test_rng.o" => [ "providers/implementations/rands/test_rng.c" ], @@ -25285,9 +29567,15 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-mac_legacy_sig.o" => [ "providers/implementations/signature/mac_legacy_sig.c" ], + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o" => [ + "providers/implementations/signature/ml_dsa_sig.c" + ], "providers/implementations/signature/libdefault-lib-rsa_sig.o" => [ "providers/implementations/signature/rsa_sig.c" ], + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o" => [ + "providers/implementations/signature/slh_dsa_sig.c" + ], "providers/implementations/signature/libdefault-lib-sm2_sig.o" => [ "providers/implementations/signature/sm2_sig.c" ], @@ -25303,9 +29591,27 @@ our %unified_info = ( "providers/implementations/signature/libfips-lib-mac_legacy_sig.o" => [ "providers/implementations/signature/mac_legacy_sig.c" ], + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o" => [ + "providers/implementations/signature/ml_dsa_sig.c" + ], "providers/implementations/signature/libfips-lib-rsa_sig.o" => [ "providers/implementations/signature/rsa_sig.c" ], + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o" => [ + "providers/implementations/signature/slh_dsa_sig.c" + ], + "providers/implementations/skeymgmt/libdefault-lib-aes_skmgmt.o" => [ + "providers/implementations/skeymgmt/aes_skmgmt.c" + ], + "providers/implementations/skeymgmt/libdefault-lib-generic.o" => [ + "providers/implementations/skeymgmt/generic.c" + ], + "providers/implementations/skeymgmt/libfips-lib-aes_skmgmt.o" => [ + "providers/implementations/skeymgmt/aes_skmgmt.c" + ], + "providers/implementations/skeymgmt/libfips-lib-generic.o" => [ + "providers/implementations/skeymgmt/generic.c" + ], "providers/implementations/storemgmt/libdefault-lib-file_store.o" => [ "providers/implementations/storemgmt/file_store.c" ], @@ -25328,8 +29634,12 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ec_sig.o", "providers/common/der/libcommon-lib-der_ecx_gen.o", "providers/common/der/libcommon-lib-der_ecx_key.o", + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o", + "providers/common/der/libcommon-lib-der_ml_dsa_key.o", "providers/common/der/libcommon-lib-der_rsa_gen.o", "providers/common/der/libcommon-lib-der_rsa_key.o", + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o", + "providers/common/der/libcommon-lib-der_slh_dsa_key.o", "providers/common/der/libcommon-lib-der_wrap_gen.o", "providers/common/libcommon-lib-provider_ctx.o", "providers/common/libcommon-lib-provider_err.o", @@ -25341,7 +29651,7 @@ our %unified_info = ( "providers/implementations/ciphers/libcommon-lib-ciphercommon_gcm_hw.o", "providers/implementations/ciphers/libcommon-lib-ciphercommon_hw.o", "providers/implementations/digests/libcommon-lib-digestcommon.o", - "ssl/record/libcommon-lib-tls_pad.o" + "ssl/record/methods/libcommon-lib-tls_pad.o" ], "providers/libcrypto-lib-baseprov.o" => [ "providers/baseprov.c" @@ -25377,6 +29687,9 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_aes_ccm_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_polyval.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_ocb.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_ocb_hw.o", @@ -25401,7 +29714,13 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_cts.o", "providers/implementations/ciphers/libdefault-lib-cipher_null.o", "providers/implementations/ciphers/libdefault-lib-cipher_sm4.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_sm4_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes_common.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes_default.o", @@ -25430,11 +29749,16 @@ our %unified_info = ( "providers/implementations/encode_decode/libdefault-lib-encode_key2ms.o", "providers/implementations/encode_decode/libdefault-lib-encode_key2text.o", "providers/implementations/encode_decode/libdefault-lib-endecoder_common.o", + "providers/implementations/encode_decode/libdefault-lib-ml_common_codecs.o", + "providers/implementations/encode_decode/libdefault-lib-ml_dsa_codecs.o", + "providers/implementations/encode_decode/libdefault-lib-ml_kem_codecs.o", "providers/implementations/exchange/libdefault-lib-dh_exch.o", "providers/implementations/exchange/libdefault-lib-ecdh_exch.o", "providers/implementations/exchange/libdefault-lib-ecx_exch.o", "providers/implementations/exchange/libdefault-lib-kdf_exch.o", + "providers/implementations/kdfs/libdefault-lib-argon2.o", "providers/implementations/kdfs/libdefault-lib-hkdf.o", + "providers/implementations/kdfs/libdefault-lib-hmacdrbg_kdf.o", "providers/implementations/kdfs/libdefault-lib-kbkdf.o", "providers/implementations/kdfs/libdefault-lib-krb5kdf.o", "providers/implementations/kdfs/libdefault-lib-pbkdf2.o", @@ -25445,6 +29769,11 @@ our %unified_info = ( "providers/implementations/kdfs/libdefault-lib-sskdf.o", "providers/implementations/kdfs/libdefault-lib-tls1_prf.o", "providers/implementations/kdfs/libdefault-lib-x942kdf.o", + "providers/implementations/kem/libdefault-lib-ec_kem.o", + "providers/implementations/kem/libdefault-lib-ecx_kem.o", + "providers/implementations/kem/libdefault-lib-kem_util.o", + "providers/implementations/kem/libdefault-lib-ml_kem_kem.o", + "providers/implementations/kem/libdefault-lib-mlx_kem.o", "providers/implementations/kem/libdefault-lib-rsa_kem.o", "providers/implementations/keymgmt/libdefault-lib-dh_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-dsa_kmgmt.o", @@ -25452,7 +29781,11 @@ our %unified_info = ( "providers/implementations/keymgmt/libdefault-lib-ecx_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-kdf_legacy_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-mac_legacy_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-ml_dsa_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-ml_kem_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-mlx_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-rsa_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-slh_dsa_kmgmt.o", "providers/implementations/macs/libdefault-lib-blake2b_mac.o", "providers/implementations/macs/libdefault-lib-blake2s_mac.o", "providers/implementations/macs/libdefault-lib-cmac_prov.o", @@ -25461,12 +29794,12 @@ our %unified_info = ( "providers/implementations/macs/libdefault-lib-kmac_prov.o", "providers/implementations/macs/libdefault-lib-poly1305_prov.o", "providers/implementations/macs/libdefault-lib-siphash_prov.o", - "providers/implementations/rands/libdefault-lib-crngt.o", "providers/implementations/rands/libdefault-lib-drbg.o", "providers/implementations/rands/libdefault-lib-drbg_ctr.o", "providers/implementations/rands/libdefault-lib-drbg_hash.o", "providers/implementations/rands/libdefault-lib-drbg_hmac.o", "providers/implementations/rands/libdefault-lib-seed_src.o", + "providers/implementations/rands/libdefault-lib-seed_src_jitter.o", "providers/implementations/rands/libdefault-lib-test_rng.o", "providers/implementations/rands/seeding/libdefault-lib-rand_cpu_x86.o", "providers/implementations/rands/seeding/libdefault-lib-rand_tsc.o", @@ -25476,11 +29809,15 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-ecdsa_sig.o", "providers/implementations/signature/libdefault-lib-eddsa_sig.o", "providers/implementations/signature/libdefault-lib-mac_legacy_sig.o", + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o", "providers/implementations/signature/libdefault-lib-rsa_sig.o", + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o", "providers/implementations/signature/libdefault-lib-sm2_sig.o", + "providers/implementations/skeymgmt/libdefault-lib-aes_skmgmt.o", + "providers/implementations/skeymgmt/libdefault-lib-generic.o", "providers/implementations/storemgmt/libdefault-lib-file_store.o", "providers/implementations/storemgmt/libdefault-lib-file_store_any2obj.o", - "ssl/libdefault-lib-s3_cbc.o" + "ssl/record/methods/libdefault-lib-ssl3_cbc.o" ], "providers/libfips.a" => [ "crypto/aes/libfips-lib-aes-x86_64.o", @@ -25490,6 +29827,7 @@ our %unified_info = ( "crypto/aes/libfips-lib-aesni-sha1-x86_64.o", "crypto/aes/libfips-lib-aesni-sha256-x86_64.o", "crypto/aes/libfips-lib-aesni-x86_64.o", + "crypto/aes/libfips-lib-aesni-xts-avx512.o", "crypto/aes/libfips-lib-bsaes-x86_64.o", "crypto/aes/libfips-lib-vpaes-x86_64.o", "crypto/bn/asm/libfips-lib-x86_64-gcc.o", @@ -25520,8 +29858,13 @@ our %unified_info = ( "crypto/bn/libfips-lib-bn_sqr.o", "crypto/bn/libfips-lib-bn_sqrt.o", "crypto/bn/libfips-lib-bn_word.o", + "crypto/bn/libfips-lib-rsaz-2k-avx512.o", + "crypto/bn/libfips-lib-rsaz-2k-avxifma.o", + "crypto/bn/libfips-lib-rsaz-3k-avx512.o", + "crypto/bn/libfips-lib-rsaz-3k-avxifma.o", + "crypto/bn/libfips-lib-rsaz-4k-avx512.o", + "crypto/bn/libfips-lib-rsaz-4k-avxifma.o", "crypto/bn/libfips-lib-rsaz-avx2.o", - "crypto/bn/libfips-lib-rsaz-avx512.o", "crypto/bn/libfips-lib-rsaz-x86_64.o", "crypto/bn/libfips-lib-rsaz_exp.o", "crypto/bn/libfips-lib-rsaz_exp_x2.o", @@ -25598,14 +29941,15 @@ our %unified_info = ( "crypto/evp/libfips-lib-kem.o", "crypto/evp/libfips-lib-keymgmt_lib.o", "crypto/evp/libfips-lib-keymgmt_meth.o", - "crypto/evp/libfips-lib-m_sigver.o", "crypto/evp/libfips-lib-mac_lib.o", "crypto/evp/libfips-lib-mac_meth.o", "crypto/evp/libfips-lib-p_lib.o", "crypto/evp/libfips-lib-pmeth_check.o", "crypto/evp/libfips-lib-pmeth_gn.o", "crypto/evp/libfips-lib-pmeth_lib.o", + "crypto/evp/libfips-lib-s_lib.o", "crypto/evp/libfips-lib-signature.o", + "crypto/evp/libfips-lib-skeymgmt_meth.o", "crypto/ffc/libfips-lib-ffc_backend.o", "crypto/ffc/libfips-lib-ffc_dh.o", "crypto/ffc/libfips-lib-ffc_key_generate.o", @@ -25613,6 +29957,8 @@ our %unified_info = ( "crypto/ffc/libfips-lib-ffc_params.o", "crypto/ffc/libfips-lib-ffc_params_generate.o", "crypto/ffc/libfips-lib-ffc_params_validate.o", + "crypto/hashtable/libfips-lib-hashfunc.o", + "crypto/hashtable/libfips-lib-hashtable.o", "crypto/hmac/libfips-lib-hmac.o", "crypto/lhash/libfips-lib-lhash.o", "crypto/libfips-lib-asn1_dsa.o", @@ -25634,6 +29980,7 @@ our %unified_info = ( "crypto/libfips-lib-params.o", "crypto/libfips-lib-params_dup.o", "crypto/libfips-lib-params_from_text.o", + "crypto/libfips-lib-params_idx.o", "crypto/libfips-lib-provider_core.o", "crypto/libfips-lib-provider_predefined.o", "crypto/libfips-lib-self_test_core.o", @@ -25642,7 +29989,18 @@ our %unified_info = ( "crypto/libfips-lib-threads_none.o", "crypto/libfips-lib-threads_pthread.o", "crypto/libfips-lib-threads_win.o", + "crypto/libfips-lib-time.o", "crypto/libfips-lib-x86_64cpuid.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_encoders.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_key.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_key_compress.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_matrix.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_ntt.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_params.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_sample.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_sign.o", + "crypto/ml_kem/libfips-lib-ml_kem.o", + "crypto/modes/libfips-lib-aes-gcm-avx512.o", "crypto/modes/libfips-lib-aesni-gcm-x86_64.o", "crypto/modes/libfips-lib-cbc128.o", "crypto/modes/libfips-lib-ccm128.o", @@ -25653,6 +30011,7 @@ our %unified_info = ( "crypto/modes/libfips-lib-ofb128.o", "crypto/modes/libfips-lib-wrap128.o", "crypto/modes/libfips-lib-xts128.o", + "crypto/modes/libfips-lib-xts128gb.o", "crypto/property/libfips-lib-defn_cache.o", "crypto/property/libfips-lib-property.o", "crypto/property/libfips-lib-property_parse.o", @@ -25686,7 +30045,23 @@ our %unified_info = ( "crypto/sha/libfips-lib-sha3.o", "crypto/sha/libfips-lib-sha512-x86_64.o", "crypto/sha/libfips-lib-sha512.o", + "crypto/slh_dsa/libfips-lib-slh_adrs.o", + "crypto/slh_dsa/libfips-lib-slh_dsa.o", + "crypto/slh_dsa/libfips-lib-slh_dsa_hash_ctx.o", + "crypto/slh_dsa/libfips-lib-slh_dsa_key.o", + "crypto/slh_dsa/libfips-lib-slh_fors.o", + "crypto/slh_dsa/libfips-lib-slh_hash.o", + "crypto/slh_dsa/libfips-lib-slh_hypertree.o", + "crypto/slh_dsa/libfips-lib-slh_params.o", + "crypto/slh_dsa/libfips-lib-slh_wots.o", + "crypto/slh_dsa/libfips-lib-slh_xmss.o", "crypto/stack/libfips-lib-stack.o", + "crypto/thread/arch/libfips-lib-thread_none.o", + "crypto/thread/arch/libfips-lib-thread_posix.o", + "crypto/thread/arch/libfips-lib-thread_win.o", + "crypto/thread/libfips-lib-api.o", + "crypto/thread/libfips-lib-arch.o", + "crypto/thread/libfips-lib-internal.o", "providers/common/der/libfips-lib-der_rsa_sig.o", "providers/common/libfips-lib-bio_prov.o", "providers/common/libfips-lib-capabilities.o", @@ -25695,6 +30070,7 @@ our %unified_info = ( "providers/common/libfips-lib-provider_util.o", "providers/common/libfips-lib-securitycheck.o", "providers/common/libfips-lib-securitycheck_fips.o", + "providers/fips/libfips-lib-fipsindicator.o", "providers/fips/libfips-lib-fipsprov.o", "providers/fips/libfips-lib-self_test.o", "providers/fips/libfips-lib-self_test_kats.o", @@ -25732,6 +30108,8 @@ our %unified_info = ( "providers/implementations/kdfs/libfips-lib-sskdf.o", "providers/implementations/kdfs/libfips-lib-tls1_prf.o", "providers/implementations/kdfs/libfips-lib-x942kdf.o", + "providers/implementations/kem/libfips-lib-ml_kem_kem.o", + "providers/implementations/kem/libfips-lib-mlx_kem.o", "providers/implementations/kem/libfips-lib-rsa_kem.o", "providers/implementations/keymgmt/libfips-lib-dh_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-dsa_kmgmt.o", @@ -25739,24 +30117,32 @@ our %unified_info = ( "providers/implementations/keymgmt/libfips-lib-ecx_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-kdf_legacy_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-mac_legacy_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-ml_dsa_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-ml_kem_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-mlx_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-rsa_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-slh_dsa_kmgmt.o", "providers/implementations/macs/libfips-lib-cmac_prov.o", "providers/implementations/macs/libfips-lib-gmac_prov.o", "providers/implementations/macs/libfips-lib-hmac_prov.o", "providers/implementations/macs/libfips-lib-kmac_prov.o", - "providers/implementations/rands/libfips-lib-crngt.o", "providers/implementations/rands/libfips-lib-drbg.o", "providers/implementations/rands/libfips-lib-drbg_ctr.o", "providers/implementations/rands/libfips-lib-drbg_hash.o", "providers/implementations/rands/libfips-lib-drbg_hmac.o", + "providers/implementations/rands/libfips-lib-fips_crng_test.o", "providers/implementations/rands/libfips-lib-test_rng.o", "providers/implementations/signature/libfips-lib-dsa_sig.o", "providers/implementations/signature/libfips-lib-ecdsa_sig.o", "providers/implementations/signature/libfips-lib-eddsa_sig.o", "providers/implementations/signature/libfips-lib-mac_legacy_sig.o", + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o", "providers/implementations/signature/libfips-lib-rsa_sig.o", + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o", + "providers/implementations/skeymgmt/libfips-lib-aes_skmgmt.o", + "providers/implementations/skeymgmt/libfips-lib-generic.o", "providers/libcommon.a", - "ssl/libfips-lib-s3_cbc.o" + "ssl/record/methods/libfips-lib-ssl3_cbc.o" ], "providers/liblegacy-lib-prov_running.o" => [ "providers/prov_running.c" @@ -25786,13 +30172,12 @@ our %unified_info = ( "providers/implementations/digests/liblegacy-lib-ripemd_prov.o", "providers/implementations/digests/liblegacy-lib-wp_prov.o", "providers/implementations/kdfs/liblegacy-lib-pbkdf1.o", + "providers/implementations/kdfs/liblegacy-lib-pvkkdf.o", "providers/liblegacy-lib-prov_running.o" ], - "ssl/libdefault-lib-s3_cbc.o" => [ - "ssl/s3_cbc.c" - ], - "ssl/libfips-lib-s3_cbc.o" => [ - "ssl/s3_cbc.c" + "providers/libtemplate.a" => [ + "providers/implementations/kem/libtemplate-lib-template_kem.o", + "providers/implementations/keymgmt/libtemplate-lib-template_kmgmt.o" ], "ssl/libssl-lib-bio_ssl.o" => [ "ssl/bio_ssl.c" @@ -25812,6 +30197,9 @@ our %unified_info = ( "ssl/libssl-lib-pqueue.o" => [ "ssl/pqueue.c" ], + "ssl/libssl-lib-priority_queue.o" => [ + "ssl/priority_queue.c" + ], "ssl/libssl-lib-s3_enc.o" => [ "ssl/s3_enc.c" ], @@ -25827,15 +30215,15 @@ our %unified_info = ( "ssl/libssl-lib-ssl_cert.o" => [ "ssl/ssl_cert.c" ], + "ssl/libssl-lib-ssl_cert_comp.o" => [ + "ssl/ssl_cert_comp.c" + ], "ssl/libssl-lib-ssl_ciph.o" => [ "ssl/ssl_ciph.c" ], "ssl/libssl-lib-ssl_conf.o" => [ "ssl/ssl_conf.c" ], - "ssl/libssl-lib-ssl_err.o" => [ - "ssl/ssl_err.c" - ], "ssl/libssl-lib-ssl_err_legacy.o" => [ "ssl/ssl_err_legacy.c" ], @@ -25884,11 +30272,131 @@ our %unified_info = ( "ssl/libssl-lib-tls_srp.o" => [ "ssl/tls_srp.c" ], - "ssl/record/libcommon-lib-tls_pad.o" => [ - "ssl/record/tls_pad.c" + "ssl/quic/libssl-lib-cc_newreno.o" => [ + "ssl/quic/cc_newreno.c" + ], + "ssl/quic/libssl-lib-json_enc.o" => [ + "ssl/quic/json_enc.c" + ], + "ssl/quic/libssl-lib-qlog.o" => [ + "ssl/quic/qlog.c" + ], + "ssl/quic/libssl-lib-qlog_event_helpers.o" => [ + "ssl/quic/qlog_event_helpers.c" + ], + "ssl/quic/libssl-lib-quic_ackm.o" => [ + "ssl/quic/quic_ackm.c" + ], + "ssl/quic/libssl-lib-quic_cfq.o" => [ + "ssl/quic/quic_cfq.c" + ], + "ssl/quic/libssl-lib-quic_channel.o" => [ + "ssl/quic/quic_channel.c" + ], + "ssl/quic/libssl-lib-quic_demux.o" => [ + "ssl/quic/quic_demux.c" + ], + "ssl/quic/libssl-lib-quic_engine.o" => [ + "ssl/quic/quic_engine.c" + ], + "ssl/quic/libssl-lib-quic_fc.o" => [ + "ssl/quic/quic_fc.c" + ], + "ssl/quic/libssl-lib-quic_fifd.o" => [ + "ssl/quic/quic_fifd.c" + ], + "ssl/quic/libssl-lib-quic_impl.o" => [ + "ssl/quic/quic_impl.c" + ], + "ssl/quic/libssl-lib-quic_lcidm.o" => [ + "ssl/quic/quic_lcidm.c" + ], + "ssl/quic/libssl-lib-quic_method.o" => [ + "ssl/quic/quic_method.c" + ], + "ssl/quic/libssl-lib-quic_obj.o" => [ + "ssl/quic/quic_obj.c" + ], + "ssl/quic/libssl-lib-quic_port.o" => [ + "ssl/quic/quic_port.c" + ], + "ssl/quic/libssl-lib-quic_rcidm.o" => [ + "ssl/quic/quic_rcidm.c" + ], + "ssl/quic/libssl-lib-quic_reactor.o" => [ + "ssl/quic/quic_reactor.c" + ], + "ssl/quic/libssl-lib-quic_reactor_wait_ctx.o" => [ + "ssl/quic/quic_reactor_wait_ctx.c" + ], + "ssl/quic/libssl-lib-quic_record_rx.o" => [ + "ssl/quic/quic_record_rx.c" + ], + "ssl/quic/libssl-lib-quic_record_shared.o" => [ + "ssl/quic/quic_record_shared.c" + ], + "ssl/quic/libssl-lib-quic_record_tx.o" => [ + "ssl/quic/quic_record_tx.c" + ], + "ssl/quic/libssl-lib-quic_record_util.o" => [ + "ssl/quic/quic_record_util.c" + ], + "ssl/quic/libssl-lib-quic_rstream.o" => [ + "ssl/quic/quic_rstream.c" ], - "ssl/record/libssl-lib-dtls1_bitmap.o" => [ - "ssl/record/dtls1_bitmap.c" + "ssl/quic/libssl-lib-quic_rx_depack.o" => [ + "ssl/quic/quic_rx_depack.c" + ], + "ssl/quic/libssl-lib-quic_sf_list.o" => [ + "ssl/quic/quic_sf_list.c" + ], + "ssl/quic/libssl-lib-quic_srt_gen.o" => [ + "ssl/quic/quic_srt_gen.c" + ], + "ssl/quic/libssl-lib-quic_srtm.o" => [ + "ssl/quic/quic_srtm.c" + ], + "ssl/quic/libssl-lib-quic_sstream.o" => [ + "ssl/quic/quic_sstream.c" + ], + "ssl/quic/libssl-lib-quic_statm.o" => [ + "ssl/quic/quic_statm.c" + ], + "ssl/quic/libssl-lib-quic_stream_map.o" => [ + "ssl/quic/quic_stream_map.c" + ], + "ssl/quic/libssl-lib-quic_thread_assist.o" => [ + "ssl/quic/quic_thread_assist.c" + ], + "ssl/quic/libssl-lib-quic_tls.o" => [ + "ssl/quic/quic_tls.c" + ], + "ssl/quic/libssl-lib-quic_tls_api.o" => [ + "ssl/quic/quic_tls_api.c" + ], + "ssl/quic/libssl-lib-quic_trace.o" => [ + "ssl/quic/quic_trace.c" + ], + "ssl/quic/libssl-lib-quic_tserver.o" => [ + "ssl/quic/quic_tserver.c" + ], + "ssl/quic/libssl-lib-quic_txp.o" => [ + "ssl/quic/quic_txp.c" + ], + "ssl/quic/libssl-lib-quic_txpim.o" => [ + "ssl/quic/quic_txpim.c" + ], + "ssl/quic/libssl-lib-quic_types.o" => [ + "ssl/quic/quic_types.c" + ], + "ssl/quic/libssl-lib-quic_wire.o" => [ + "ssl/quic/quic_wire.c" + ], + "ssl/quic/libssl-lib-quic_wire_pkt.o" => [ + "ssl/quic/quic_wire_pkt.c" + ], + "ssl/quic/libssl-lib-uint_set.o" => [ + "ssl/quic/uint_set.c" ], "ssl/record/libssl-lib-rec_layer_d1.o" => [ "ssl/record/rec_layer_d1.c" @@ -25896,14 +30404,44 @@ our %unified_info = ( "ssl/record/libssl-lib-rec_layer_s3.o" => [ "ssl/record/rec_layer_s3.c" ], - "ssl/record/libssl-lib-ssl3_buffer.o" => [ - "ssl/record/ssl3_buffer.c" + "ssl/record/methods/libcommon-lib-tls_pad.o" => [ + "ssl/record/methods/tls_pad.c" + ], + "ssl/record/methods/libdefault-lib-ssl3_cbc.o" => [ + "ssl/record/methods/ssl3_cbc.c" + ], + "ssl/record/methods/libfips-lib-ssl3_cbc.o" => [ + "ssl/record/methods/ssl3_cbc.c" + ], + "ssl/record/methods/libssl-lib-dtls_meth.o" => [ + "ssl/record/methods/dtls_meth.c" + ], + "ssl/record/methods/libssl-lib-ssl3_meth.o" => [ + "ssl/record/methods/ssl3_meth.c" + ], + "ssl/record/methods/libssl-lib-tls13_meth.o" => [ + "ssl/record/methods/tls13_meth.c" + ], + "ssl/record/methods/libssl-lib-tls1_meth.o" => [ + "ssl/record/methods/tls1_meth.c" + ], + "ssl/record/methods/libssl-lib-tls_common.o" => [ + "ssl/record/methods/tls_common.c" ], - "ssl/record/libssl-lib-ssl3_record.o" => [ - "ssl/record/ssl3_record.c" + "ssl/record/methods/libssl-lib-tls_multib.o" => [ + "ssl/record/methods/tls_multib.c" ], - "ssl/record/libssl-lib-ssl3_record_tls13.o" => [ - "ssl/record/ssl3_record_tls13.c" + "ssl/record/methods/libssl-lib-tlsany_meth.o" => [ + "ssl/record/methods/tlsany_meth.c" + ], + "ssl/rio/libssl-lib-poll_builder.o" => [ + "ssl/rio/poll_builder.c" + ], + "ssl/rio/libssl-lib-poll_immediate.o" => [ + "ssl/rio/poll_immediate.c" + ], + "ssl/rio/libssl-lib-rio_notifier.o" => [ + "ssl/rio/rio_notifier.c" ], "ssl/statem/libssl-lib-extensions.o" => [ "ssl/statem/extensions.c" @@ -25999,6 +30537,8 @@ our %unified_info = ( "test/asn1_string_table_test.c" ], "test/asn1_time_test" => [ + "crypto/asn1/asn1_time_test-bin-a_time.o", + "crypto/asn1_time_test-bin-ctype.o", "test/asn1_time_test-bin-asn1_time_test.o" ], "test/asn1_time_test-bin-asn1_time_test.o" => [ @@ -26029,6 +30569,18 @@ our %unified_info = ( "test/bftest-bin-bftest.o" => [ "test/bftest.c" ], + "test/bio_addr_test" => [ + "test/bio_addr_test-bin-bio_addr_test.o" + ], + "test/bio_addr_test-bin-bio_addr_test.o" => [ + "test/bio_addr_test.c" + ], + "test/bio_base64_test" => [ + "test/bio_base64_test-bin-bio_base64_test.o" + ], + "test/bio_base64_test-bin-bio_base64_test.o" => [ + "test/bio_base64_test.c" + ], "test/bio_callback_test" => [ "test/bio_callback_test-bin-bio_callback_test.o" ], @@ -26041,6 +30593,12 @@ our %unified_info = ( "test/bio_core_test-bin-bio_core_test.o" => [ "test/bio_core_test.c" ], + "test/bio_dgram_test" => [ + "test/bio_dgram_test-bin-bio_dgram_test.o" + ], + "test/bio_dgram_test-bin-bio_dgram_test.o" => [ + "test/bio_dgram_test.c" + ], "test/bio_enc_test" => [ "test/bio_enc_test-bin-bio_enc_test.o" ], @@ -26053,6 +30611,12 @@ our %unified_info = ( "test/bio_memleak_test-bin-bio_memleak_test.o" => [ "test/bio_memleak_test.c" ], + "test/bio_meth_test" => [ + "test/bio_meth_test-bin-bio_meth_test.o" + ], + "test/bio_meth_test-bin-bio_meth_test.o" => [ + "test/bio_meth_test.c" + ], "test/bio_prefix_text" => [ "test/bio_prefix_text-bin-bio_prefix_text.o" ], @@ -26071,6 +30635,12 @@ our %unified_info = ( "test/bio_readbuffer_test-bin-bio_readbuffer_test.o" => [ "test/bio_readbuffer_test.c" ], + "test/bio_tfo_test" => [ + "test/bio_tfo_test-bin-bio_tfo_test.o" + ], + "test/bio_tfo_test-bin-bio_tfo_test.o" => [ + "test/bio_tfo_test.c" + ], "test/bioprinttest" => [ "test/bioprinttest-bin-bioprinttest.o" ], @@ -26089,6 +30659,12 @@ our %unified_info = ( "test/bntest-bin-bntest.o" => [ "test/bntest.c" ], + "test/build_wincrypt_test" => [ + "test/build_wincrypt_test-bin-build_wincrypt_test.o" + ], + "test/build_wincrypt_test-bin-build_wincrypt_test.o" => [ + "test/build_wincrypt_test.c" + ], "test/buildtest_c_aes" => [ "test/buildtest_c_aes-bin-buildtest_aes.o" ], @@ -26119,6 +30695,12 @@ our %unified_info = ( "test/buildtest_c_buffer-bin-buildtest_buffer.o" => [ "test/buildtest_buffer.c" ], + "test/buildtest_c_byteorder" => [ + "test/buildtest_c_byteorder-bin-buildtest_byteorder.o" + ], + "test/buildtest_c_byteorder-bin-buildtest_byteorder.o" => [ + "test/buildtest_byteorder.c" + ], "test/buildtest_c_camellia" => [ "test/buildtest_c_camellia-bin-buildtest_camellia.o" ], @@ -26167,12 +30749,6 @@ our %unified_info = ( "test/buildtest_c_core_dispatch-bin-buildtest_core_dispatch.o" => [ "test/buildtest_core_dispatch.c" ], - "test/buildtest_c_core_names" => [ - "test/buildtest_c_core_names-bin-buildtest_core_names.o" - ], - "test/buildtest_c_core_names-bin-buildtest_core_names.o" => [ - "test/buildtest_core_names.c" - ], "test/buildtest_c_core_object" => [ "test/buildtest_c_core_object-bin-buildtest_core_object.o" ], @@ -26221,6 +30797,12 @@ our %unified_info = ( "test/buildtest_c_e_os2-bin-buildtest_e_os2.o" => [ "test/buildtest_e_os2.c" ], + "test/buildtest_c_e_ostime" => [ + "test/buildtest_c_e_ostime-bin-buildtest_e_ostime.o" + ], + "test/buildtest_c_e_ostime-bin-buildtest_e_ostime.o" => [ + "test/buildtest_e_ostime.c" + ], "test/buildtest_c_ebcdic" => [ "test/buildtest_c_ebcdic-bin-buildtest_ebcdic.o" ], @@ -26275,6 +30857,12 @@ our %unified_info = ( "test/buildtest_c_hmac-bin-buildtest_hmac.o" => [ "test/buildtest_hmac.c" ], + "test/buildtest_c_hpke" => [ + "test/buildtest_c_hpke-bin-buildtest_hpke.o" + ], + "test/buildtest_c_hpke-bin-buildtest_hpke.o" => [ + "test/buildtest_hpke.c" + ], "test/buildtest_c_http" => [ "test/buildtest_c_http-bin-buildtest_http.o" ], @@ -26287,6 +30875,12 @@ our %unified_info = ( "test/buildtest_c_idea-bin-buildtest_idea.o" => [ "test/buildtest_idea.c" ], + "test/buildtest_c_indicator" => [ + "test/buildtest_c_indicator-bin-buildtest_indicator.o" + ], + "test/buildtest_c_indicator-bin-buildtest_indicator.o" => [ + "test/buildtest_indicator.c" + ], "test/buildtest_c_kdf" => [ "test/buildtest_c_kdf-bin-buildtest_kdf.o" ], @@ -26317,6 +30911,12 @@ our %unified_info = ( "test/buildtest_c_mdc2-bin-buildtest_mdc2.o" => [ "test/buildtest_mdc2.c" ], + "test/buildtest_c_ml_kem" => [ + "test/buildtest_c_ml_kem-bin-buildtest_ml_kem.o" + ], + "test/buildtest_c_ml_kem-bin-buildtest_ml_kem.o" => [ + "test/buildtest_ml_kem.c" + ], "test/buildtest_c_modes" => [ "test/buildtest_c_modes-bin-buildtest_modes.o" ], @@ -26377,6 +30977,12 @@ our %unified_info = ( "test/buildtest_c_provider-bin-buildtest_provider.o" => [ "test/buildtest_provider.c" ], + "test/buildtest_c_quic" => [ + "test/buildtest_c_quic-bin-buildtest_quic.o" + ], + "test/buildtest_c_quic-bin-buildtest_quic.o" => [ + "test/buildtest_quic.c" + ], "test/buildtest_c_rand" => [ "test/buildtest_c_rand-bin-buildtest_rand.o" ], @@ -26461,6 +31067,12 @@ our %unified_info = ( "test/buildtest_c_symhacks-bin-buildtest_symhacks.o" => [ "test/buildtest_symhacks.c" ], + "test/buildtest_c_thread" => [ + "test/buildtest_c_thread-bin-buildtest_thread.o" + ], + "test/buildtest_c_thread-bin-buildtest_thread.o" => [ + "test/buildtest_thread.c" + ], "test/buildtest_c_tls1" => [ "test/buildtest_c_tls1-bin-buildtest_tls1.o" ], @@ -26491,6 +31103,29 @@ our %unified_info = ( "test/buildtest_c_whrlpool-bin-buildtest_whrlpool.o" => [ "test/buildtest_whrlpool.c" ], + "test/byteorder_test" => [ + "test/byteorder_test-bin-byteorder_test.o" + ], + "test/byteorder_test-bin-byteorder_test.o" => [ + "test/byteorder_test.c" + ], + "test/ca_internals_test" => [ + "apps/ca_internals_test-bin-ca.o", + "apps/lib/ca_internals_test-bin-app_libctx.o", + "apps/lib/ca_internals_test-bin-app_provider.o", + "apps/lib/ca_internals_test-bin-app_rand.o", + "apps/lib/ca_internals_test-bin-app_x509.o", + "apps/lib/ca_internals_test-bin-apps.o", + "apps/lib/ca_internals_test-bin-apps_ui.o", + "apps/lib/ca_internals_test-bin-engine.o", + "apps/lib/ca_internals_test-bin-fmt.o", + "crypto/asn1/ca_internals_test-bin-a_time.o", + "crypto/ca_internals_test-bin-ctype.o", + "test/ca_internals_test-bin-ca_internals_test.o" + ], + "test/ca_internals_test-bin-ca_internals_test.o" => [ + "test/ca_internals_test.c" + ], "test/casttest" => [ "test/casttest-bin-casttest.o" ], @@ -26669,6 +31304,12 @@ our %unified_info = ( "test/danetest-bin-danetest.o" => [ "test/danetest.c" ], + "test/decoder_propq_test" => [ + "test/decoder_propq_test-bin-decoder_propq_test.o" + ], + "test/decoder_propq_test-bin-decoder_propq_test.o" => [ + "test/decoder_propq_test.c" + ], "test/defltfips_test" => [ "test/defltfips_test-bin-defltfips_test.o" ], @@ -26750,6 +31391,7 @@ our %unified_info = ( "test/ectest.c" ], "test/endecode_test" => [ + "providers/endecode_test-bin-legacyprov.o", "test/endecode_test-bin-endecode_test.o", "test/helpers/endecode_test-bin-predefined_dhparams.o" ], @@ -26782,17 +31424,29 @@ our %unified_info = ( ], "test/evp_extra_test" => [ "providers/evp_extra_test-bin-legacyprov.o", - "test/evp_extra_test-bin-evp_extra_test.o" + "test/evp_extra_test-bin-evp_extra_test.o", + "test/evp_extra_test-bin-fake_pipelineprov.o", + "test/evp_extra_test-bin-fake_rsaprov.o" ], "test/evp_extra_test-bin-evp_extra_test.o" => [ "test/evp_extra_test.c" ], + "test/evp_extra_test-bin-fake_pipelineprov.o" => [ + "test/fake_pipelineprov.c" + ], + "test/evp_extra_test-bin-fake_rsaprov.o" => [ + "test/fake_rsaprov.c" + ], "test/evp_extra_test2" => [ - "test/evp_extra_test2-bin-evp_extra_test2.o" + "test/evp_extra_test2-bin-evp_extra_test2.o", + "test/evp_extra_test2-bin-tls-provider.o" ], "test/evp_extra_test2-bin-evp_extra_test2.o" => [ "test/evp_extra_test2.c" ], + "test/evp_extra_test2-bin-tls-provider.o" => [ + "test/tls-provider.c" + ], "test/evp_fetch_prov_test" => [ "test/evp_fetch_prov_test-bin-evp_fetch_prov_test.o" ], @@ -26817,6 +31471,12 @@ our %unified_info = ( "test/evp_pkey_ctx_new_from_name-bin-evp_pkey_ctx_new_from_name.o" => [ "test/evp_pkey_ctx_new_from_name.c" ], + "test/evp_pkey_dhkem_test" => [ + "test/evp_pkey_dhkem_test-bin-evp_pkey_dhkem_test.o" + ], + "test/evp_pkey_dhkem_test-bin-evp_pkey_dhkem_test.o" => [ + "test/evp_pkey_dhkem_test.c" + ], "test/evp_pkey_dparams_test" => [ "test/evp_pkey_dparams_test-bin-evp_pkey_dparams_test.o" ], @@ -26829,12 +31489,28 @@ our %unified_info = ( "test/evp_pkey_provided_test-bin-evp_pkey_provided_test.o" => [ "test/evp_pkey_provided_test.c" ], + "test/evp_skey_test" => [ + "test/evp_skey_test-bin-evp_skey_test.o", + "test/evp_skey_test-bin-fake_cipherprov.o" + ], + "test/evp_skey_test-bin-evp_skey_test.o" => [ + "test/evp_skey_test.c" + ], + "test/evp_skey_test-bin-fake_cipherprov.o" => [ + "test/fake_cipherprov.c" + ], "test/evp_test" => [ "test/evp_test-bin-evp_test.o" ], "test/evp_test-bin-evp_test.o" => [ "test/evp_test.c" ], + "test/evp_xof_test" => [ + "test/evp_xof_test-bin-evp_xof_test.o" + ], + "test/evp_xof_test-bin-evp_xof_test.o" => [ + "test/evp_xof_test.c" + ], "test/exdatatest" => [ "test/exdatatest-bin-exdatatest.o" ], @@ -26920,15 +31596,108 @@ our %unified_info = ( "test/helpers/fatalerrtest-bin-ssltestlib.o" => [ "test/helpers/ssltestlib.c" ], + "test/helpers/json_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/json_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/json_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/json_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/pkcs12_api_test-bin-pkcs12.o" => [ + "test/helpers/pkcs12.c" + ], "test/helpers/pkcs12_format_test-bin-pkcs12.o" => [ "test/helpers/pkcs12.c" ], + "test/helpers/quic_multistream_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quic_multistream_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quic_multistream_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quic_multistream_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quic_newcid_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quic_newcid_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quic_newcid_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quic_newcid_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quic_radix_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quic_radix_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quic_radix_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quic_radix_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quic_srt_gen_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quic_srt_gen_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quic_srt_gen_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quic_srt_gen_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quicapitest-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quicapitest-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quicapitest-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quicapitest-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quicfaultstest-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quicfaultstest-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quicfaultstest-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quicfaultstest-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], "test/helpers/recordlentest-bin-ssltestlib.o" => [ "test/helpers/ssltestlib.c" ], + "test/helpers/rpktest-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], "test/helpers/servername_test-bin-ssltestlib.o" => [ "test/helpers/ssltestlib.c" ], + "test/helpers/ssl_handshake_rtt_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], "test/helpers/ssl_old_test-bin-predefined_dhparams.o" => [ "test/helpers/predefined_dhparams.c" ], @@ -26956,6 +31725,9 @@ our %unified_info = ( "test/helpers/tls13ccstest-bin-ssltestlib.o" => [ "test/helpers/ssltestlib.c" ], + "test/helpers/tls13groupselection_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], "test/hexstr_test" => [ "test/hexstr_test-bin-hexstr_test.o" ], @@ -26968,6 +31740,12 @@ our %unified_info = ( "test/hmactest-bin-hmactest.o" => [ "test/hmactest.c" ], + "test/hpke_test" => [ + "test/hpke_test-bin-hpke_test.o" + ], + "test/hpke_test-bin-hpke_test.o" => [ + "test/hpke_test.c" + ], "test/http_test" => [ "test/http_test-bin-http_test.o" ], @@ -26986,6 +31764,16 @@ our %unified_info = ( "test/igetest-bin-igetest.o" => [ "test/igetest.c" ], + "test/json_test" => [ + "test/helpers/json_test-bin-noisydgrambio.o", + "test/helpers/json_test-bin-pktsplitbio.o", + "test/helpers/json_test-bin-quictestlib.o", + "test/helpers/json_test-bin-ssltestlib.o", + "test/json_test-bin-json_test.o" + ], + "test/json_test-bin-json_test.o" => [ + "test/json_test.c" + ], "test/keymgmt_internal_test" => [ "test/keymgmt_internal_test-bin-keymgmt_internal_test.o" ], @@ -27006,6 +31794,7 @@ our %unified_info = ( "test/testutil/libtestutil-lib-driver.o", "test/testutil/libtestutil-lib-fake_random.o", "test/testutil/libtestutil-lib-format_output.o", + "test/testutil/libtestutil-lib-helper.o", "test/testutil/libtestutil-lib-load.o", "test/testutil/libtestutil-lib-main.o", "test/testutil/libtestutil-lib-options.o", @@ -27018,6 +31807,12 @@ our %unified_info = ( "test/testutil/libtestutil-lib-tests.o", "test/testutil/libtestutil-lib-testutil_init.o" ], + "test/list_test" => [ + "test/list_test-bin-list_test.o" + ], + "test/list_test-bin-list_test.o" => [ + "test/list_test.c" + ], "test/localetest" => [ "test/localetest-bin-localetest.o" ], @@ -27036,12 +31831,36 @@ our %unified_info = ( "test/mdc2test-bin-mdc2test.o" => [ "test/mdc2test.c" ], + "test/membio_test" => [ + "test/membio_test-bin-membio_test.o" + ], + "test/membio_test-bin-membio_test.o" => [ + "test/membio_test.c" + ], "test/memleaktest" => [ "test/memleaktest-bin-memleaktest.o" ], "test/memleaktest-bin-memleaktest.o" => [ "test/memleaktest.c" ], + "test/ml_dsa_test" => [ + "test/ml_dsa_test-bin-ml_dsa_test.o" + ], + "test/ml_dsa_test-bin-ml_dsa_test.o" => [ + "test/ml_dsa_test.c" + ], + "test/ml_kem_evp_extra_test" => [ + "test/ml_kem_evp_extra_test-bin-ml_kem_evp_extra_test.o" + ], + "test/ml_kem_evp_extra_test-bin-ml_kem_evp_extra_test.o" => [ + "test/ml_kem_evp_extra_test.c" + ], + "test/ml_kem_internal_test" => [ + "test/ml_kem_internal_test-bin-ml_kem_internal_test.o" + ], + "test/ml_kem_internal_test-bin-ml_kem_internal_test.o" => [ + "test/ml_kem_internal_test.c" + ], "test/modes_internal_test" => [ "test/modes_internal_test-bin-modes_internal_test.o" ], @@ -27085,11 +31904,18 @@ our %unified_info = ( "test/p_test.c" ], "test/packettest" => [ + "crypto/packettest-bin-quic_vlint.o", "test/packettest-bin-packettest.o" ], "test/packettest-bin-packettest.o" => [ "test/packettest.c" ], + "test/pairwise_fail_test" => [ + "test/pairwise_fail_test-bin-pairwise_fail_test.o" + ], + "test/pairwise_fail_test-bin-pairwise_fail_test.o" => [ + "test/pairwise_fail_test.c" + ], "test/param_build_test" => [ "test/param_build_test-bin-param_build_test.o" ], @@ -27138,6 +31964,13 @@ our %unified_info = ( "test/pemtest-bin-pemtest.o" => [ "test/pemtest.c" ], + "test/pkcs12_api_test" => [ + "test/helpers/pkcs12_api_test-bin-pkcs12.o", + "test/pkcs12_api_test-bin-pkcs12_api_test.o" + ], + "test/pkcs12_api_test-bin-pkcs12_api_test.o" => [ + "test/pkcs12_api_test.c" + ], "test/pkcs12_format_test" => [ "test/helpers/pkcs12_format_test-bin-pkcs12.o", "test/pkcs12_format_test-bin-pkcs12_format_test.o" @@ -27169,6 +32002,12 @@ our %unified_info = ( "test/poly1305_internal_test-bin-poly1305_internal_test.o" => [ "test/poly1305_internal_test.c" ], + "test/priority_queue_test" => [ + "test/priority_queue_test-bin-priority_queue_test.o" + ], + "test/priority_queue_test-bin-priority_queue_test.o" => [ + "test/priority_queue_test.c" + ], "test/property_test" => [ "test/property_test-bin-property_test.o" ], @@ -27187,6 +32026,12 @@ our %unified_info = ( "test/provfetchtest-bin-provfetchtest.o" => [ "test/provfetchtest.c" ], + "test/provider_default_search_path_test" => [ + "test/provider_default_search_path_test-bin-provider_default_search_path_test.o" + ], + "test/provider_default_search_path_test-bin-provider_default_search_path_test.o" => [ + "test/provider_default_search_path_test.c" + ], "test/provider_fallback_test" => [ "test/provider_fallback_test-bin-provider_fallback_test.o" ], @@ -27235,6 +32080,174 @@ our %unified_info = ( "test/punycode_test-bin-punycode_test.o" => [ "test/punycode_test.c" ], + "test/quic_ackm_test" => [ + "test/quic_ackm_test-bin-cc_dummy.o", + "test/quic_ackm_test-bin-quic_ackm_test.o" + ], + "test/quic_ackm_test-bin-cc_dummy.o" => [ + "test/cc_dummy.c" + ], + "test/quic_ackm_test-bin-quic_ackm_test.o" => [ + "test/quic_ackm_test.c" + ], + "test/quic_cc_test" => [ + "test/quic_cc_test-bin-quic_cc_test.o" + ], + "test/quic_cc_test-bin-quic_cc_test.o" => [ + "test/quic_cc_test.c" + ], + "test/quic_cfq_test" => [ + "test/quic_cfq_test-bin-quic_cfq_test.o" + ], + "test/quic_cfq_test-bin-quic_cfq_test.o" => [ + "test/quic_cfq_test.c" + ], + "test/quic_client_test" => [ + "test/quic_client_test-bin-quic_client_test.o" + ], + "test/quic_client_test-bin-quic_client_test.o" => [ + "test/quic_client_test.c" + ], + "test/quic_fc_test" => [ + "test/quic_fc_test-bin-quic_fc_test.o" + ], + "test/quic_fc_test-bin-quic_fc_test.o" => [ + "test/quic_fc_test.c" + ], + "test/quic_fifd_test" => [ + "test/quic_fifd_test-bin-cc_dummy.o", + "test/quic_fifd_test-bin-quic_fifd_test.o" + ], + "test/quic_fifd_test-bin-cc_dummy.o" => [ + "test/cc_dummy.c" + ], + "test/quic_fifd_test-bin-quic_fifd_test.o" => [ + "test/quic_fifd_test.c" + ], + "test/quic_lcidm_test" => [ + "test/quic_lcidm_test-bin-quic_lcidm_test.o" + ], + "test/quic_lcidm_test-bin-quic_lcidm_test.o" => [ + "test/quic_lcidm_test.c" + ], + "test/quic_multistream_test" => [ + "test/helpers/quic_multistream_test-bin-noisydgrambio.o", + "test/helpers/quic_multistream_test-bin-pktsplitbio.o", + "test/helpers/quic_multistream_test-bin-quictestlib.o", + "test/helpers/quic_multistream_test-bin-ssltestlib.o", + "test/quic_multistream_test-bin-quic_multistream_test.o" + ], + "test/quic_multistream_test-bin-quic_multistream_test.o" => [ + "test/quic_multistream_test.c" + ], + "test/quic_newcid_test" => [ + "test/helpers/quic_newcid_test-bin-noisydgrambio.o", + "test/helpers/quic_newcid_test-bin-pktsplitbio.o", + "test/helpers/quic_newcid_test-bin-quictestlib.o", + "test/helpers/quic_newcid_test-bin-ssltestlib.o", + "test/quic_newcid_test-bin-quic_newcid_test.o" + ], + "test/quic_newcid_test-bin-quic_newcid_test.o" => [ + "test/quic_newcid_test.c" + ], + "test/quic_qlog_test" => [ + "test/quic_qlog_test-bin-quic_qlog_test.o" + ], + "test/quic_qlog_test-bin-quic_qlog_test.o" => [ + "test/quic_qlog_test.c" + ], + "test/quic_radix_test" => [ + "test/helpers/quic_radix_test-bin-noisydgrambio.o", + "test/helpers/quic_radix_test-bin-pktsplitbio.o", + "test/helpers/quic_radix_test-bin-quictestlib.o", + "test/helpers/quic_radix_test-bin-ssltestlib.o", + "test/radix/quic_radix_test-bin-quic_radix.o" + ], + "test/quic_rcidm_test" => [ + "test/quic_rcidm_test-bin-quic_rcidm_test.o" + ], + "test/quic_rcidm_test-bin-quic_rcidm_test.o" => [ + "test/quic_rcidm_test.c" + ], + "test/quic_record_test" => [ + "test/quic_record_test-bin-quic_record_test.o" + ], + "test/quic_record_test-bin-quic_record_test.o" => [ + "test/quic_record_test.c" + ], + "test/quic_srt_gen_test" => [ + "test/helpers/quic_srt_gen_test-bin-noisydgrambio.o", + "test/helpers/quic_srt_gen_test-bin-pktsplitbio.o", + "test/helpers/quic_srt_gen_test-bin-quictestlib.o", + "test/helpers/quic_srt_gen_test-bin-ssltestlib.o", + "test/quic_srt_gen_test-bin-quic_srt_gen_test.o" + ], + "test/quic_srt_gen_test-bin-quic_srt_gen_test.o" => [ + "test/quic_srt_gen_test.c" + ], + "test/quic_srtm_test" => [ + "test/quic_srtm_test-bin-quic_srtm_test.o" + ], + "test/quic_srtm_test-bin-quic_srtm_test.o" => [ + "test/quic_srtm_test.c" + ], + "test/quic_stream_test" => [ + "test/quic_stream_test-bin-quic_stream_test.o" + ], + "test/quic_stream_test-bin-quic_stream_test.o" => [ + "test/quic_stream_test.c" + ], + "test/quic_tserver_test" => [ + "test/quic_tserver_test-bin-quic_tserver_test.o" + ], + "test/quic_tserver_test-bin-quic_tserver_test.o" => [ + "test/quic_tserver_test.c" + ], + "test/quic_txp_test" => [ + "test/quic_txp_test-bin-cc_dummy.o", + "test/quic_txp_test-bin-quic_txp_test.o" + ], + "test/quic_txp_test-bin-cc_dummy.o" => [ + "test/cc_dummy.c" + ], + "test/quic_txp_test-bin-quic_txp_test.o" => [ + "test/quic_txp_test.c" + ], + "test/quic_txpim_test" => [ + "test/quic_txpim_test-bin-quic_txpim_test.o" + ], + "test/quic_txpim_test-bin-quic_txpim_test.o" => [ + "test/quic_txpim_test.c" + ], + "test/quic_wire_test" => [ + "test/quic_wire_test-bin-quic_wire_test.o" + ], + "test/quic_wire_test-bin-quic_wire_test.o" => [ + "test/quic_wire_test.c" + ], + "test/quicapitest" => [ + "test/helpers/quicapitest-bin-noisydgrambio.o", + "test/helpers/quicapitest-bin-pktsplitbio.o", + "test/helpers/quicapitest-bin-quictestlib.o", + "test/helpers/quicapitest-bin-ssltestlib.o", + "test/quicapitest-bin-quicapitest.o" + ], + "test/quicapitest-bin-quicapitest.o" => [ + "test/quicapitest.c" + ], + "test/quicfaultstest" => [ + "test/helpers/quicfaultstest-bin-noisydgrambio.o", + "test/helpers/quicfaultstest-bin-pktsplitbio.o", + "test/helpers/quicfaultstest-bin-quictestlib.o", + "test/helpers/quicfaultstest-bin-ssltestlib.o", + "test/quicfaultstest-bin-quicfaultstest.o" + ], + "test/quicfaultstest-bin-quicfaultstest.o" => [ + "test/quicfaultstest.c" + ], + "test/radix/quic_radix_test-bin-quic_radix.o" => [ + "test/radix/quic_radix.c" + ], "test/rand_status_test" => [ "test/rand_status_test-bin-rand_status_test.o" ], @@ -27265,11 +32278,11 @@ our %unified_info = ( "test/rc5test-bin-rc5test.o" => [ "test/rc5test.c" ], - "test/rdrand_sanitytest" => [ - "test/rdrand_sanitytest-bin-rdrand_sanitytest.o" + "test/rdcpu_sanitytest" => [ + "test/rdcpu_sanitytest-bin-rdcpu_sanitytest.o" ], - "test/rdrand_sanitytest-bin-rdrand_sanitytest.o" => [ - "test/rdrand_sanitytest.c" + "test/rdcpu_sanitytest-bin-rdcpu_sanitytest.o" => [ + "test/rdcpu_sanitytest.c" ], "test/recordlentest" => [ "test/helpers/recordlentest-bin-ssltestlib.o", @@ -27278,6 +32291,13 @@ our %unified_info = ( "test/recordlentest-bin-recordlentest.o" => [ "test/recordlentest.c" ], + "test/rpktest" => [ + "test/helpers/rpktest-bin-ssltestlib.o", + "test/rpktest-bin-rpktest.o" + ], + "test/rpktest-bin-rpktest.o" => [ + "test/rpktest.c" + ], "test/rsa_complex" => [ "test/rsa_complex-bin-rsa_complex.o" ], @@ -27302,6 +32322,18 @@ our %unified_info = ( "test/rsa_test-bin-rsa_test.o" => [ "test/rsa_test.c" ], + "test/rsa_x931_test" => [ + "test/rsa_x931_test-bin-rsa_x931_test.o" + ], + "test/rsa_x931_test-bin-rsa_x931_test.o" => [ + "test/rsa_x931_test.c" + ], + "test/safe_math_test" => [ + "test/safe_math_test-bin-safe_math_test.o" + ], + "test/safe_math_test-bin-safe_math_test.o" => [ + "test/safe_math_test.c" + ], "test/sanitytest" => [ "test/sanitytest-bin-sanitytest.o" ], @@ -27333,6 +32365,12 @@ our %unified_info = ( "test/siphash_internal_test-bin-siphash_internal_test.o" => [ "test/siphash_internal_test.c" ], + "test/slh_dsa_test" => [ + "test/slh_dsa_test-bin-slh_dsa_test.o" + ], + "test/slh_dsa_test-bin-slh_dsa_test.o" => [ + "test/slh_dsa_test.c" + ], "test/sm2_internal_test" => [ "test/sm2_internal_test-bin-sm2_internal_test.o" ], @@ -27375,6 +32413,13 @@ our %unified_info = ( "test/ssl_ctx_test-bin-ssl_ctx_test.o" => [ "test/ssl_ctx_test.c" ], + "test/ssl_handshake_rtt_test" => [ + "test/helpers/ssl_handshake_rtt_test-bin-ssltestlib.o", + "test/ssl_handshake_rtt_test-bin-ssl_handshake_rtt_test.o" + ], + "test/ssl_handshake_rtt_test-bin-ssl_handshake_rtt_test.o" => [ + "test/ssl_handshake_rtt_test.c" + ], "test/ssl_old_test" => [ "test/helpers/ssl_old_test-bin-predefined_dhparams.o", "test/ssl_old_test-bin-ssl_old_test.o" @@ -27433,6 +32478,12 @@ our %unified_info = ( "test/stack_test-bin-stack_test.o" => [ "test/stack_test.c" ], + "test/strtoultest" => [ + "test/strtoultest-bin-strtoultest.o" + ], + "test/strtoultest-bin-strtoultest.o" => [ + "test/strtoultest.c" + ], "test/sysdefaulttest" => [ "test/sysdefaulttest-bin-sysdefaulttest.o" ], @@ -27463,6 +32514,9 @@ our %unified_info = ( "test/testutil/libtestutil-lib-format_output.o" => [ "test/testutil/format_output.c" ], + "test/testutil/libtestutil-lib-helper.o" => [ + "test/testutil/helper.c" + ], "test/testutil/libtestutil-lib-load.o" => [ "test/testutil/load.c" ], @@ -27496,6 +32550,12 @@ our %unified_info = ( "test/testutil/libtestutil-lib-testutil_init.o" => [ "test/testutil/testutil_init.c" ], + "test/threadpool_test" => [ + "test/threadpool_test-bin-threadpool_test.o" + ], + "test/threadpool_test-bin-threadpool_test.o" => [ + "test/threadpool_test.c" + ], "test/threadstest" => [ "test/threadstest-bin-threadstest.o" ], @@ -27514,6 +32574,12 @@ our %unified_info = ( "test/time_offset_test-bin-time_offset_test.o" => [ "test/time_offset_test.c" ], + "test/time_test" => [ + "test/time_test-bin-time_test.o" + ], + "test/time_test-bin-time_test.o" => [ + "test/time_test.c" + ], "test/tls13ccstest" => [ "test/helpers/tls13ccstest-bin-ssltestlib.o", "test/tls13ccstest-bin-tls13ccstest.o" @@ -27527,6 +32593,13 @@ our %unified_info = ( "test/tls13encryptiontest-bin-tls13encryptiontest.o" => [ "test/tls13encryptiontest.c" ], + "test/tls13groupselection_test" => [ + "test/helpers/tls13groupselection_test-bin-ssltestlib.o", + "test/tls13groupselection_test-bin-tls13groupselection_test.o" + ], + "test/tls13groupselection_test-bin-tls13groupselection_test.o" => [ + "test/tls13groupselection_test.c" + ], "test/trace_api_test" => [ "test/trace_api_test-bin-trace_api_test.o" ], @@ -27582,6 +32655,12 @@ our %unified_info = ( "test/wpackettest-bin-wpackettest.o" => [ "test/wpackettest.c" ], + "test/x509_acert_test" => [ + "test/x509_acert_test-bin-x509_acert_test.o" + ], + "test/x509_acert_test-bin-x509_acert_test.o" => [ + "test/x509_acert_test.c" + ], "test/x509_check_cert_pkey_test" => [ "test/x509_check_cert_pkey_test-bin-x509_check_cert_pkey_test.o" ], @@ -27600,6 +32679,24 @@ our %unified_info = ( "test/x509_internal_test-bin-x509_internal_test.o" => [ "test/x509_internal_test.c" ], + "test/x509_load_cert_file_test" => [ + "test/x509_load_cert_file_test-bin-x509_load_cert_file_test.o" + ], + "test/x509_load_cert_file_test-bin-x509_load_cert_file_test.o" => [ + "test/x509_load_cert_file_test.c" + ], + "test/x509_req_test" => [ + "test/x509_req_test-bin-x509_req_test.o" + ], + "test/x509_req_test-bin-x509_req_test.o" => [ + "test/x509_req_test.c" + ], + "test/x509_test" => [ + "test/x509_test-bin-x509_test.o" + ], + "test/x509_test-bin-x509_test.o" => [ + "test/x509_test.c" + ], "test/x509_time_test" => [ "test/x509_time_test-bin-x509_time_test.o" ], @@ -27663,6 +32760,7 @@ my @makevars = ( "LDLIBS", "MT", "MTFLAGS", + "OBJCOPY", "PERL", "RANLIB", "RC", @@ -27676,6 +32774,12 @@ my %disabled_info = ( "asan" => { "macro" => "OPENSSL_NO_ASAN" }, + "brotli" => { + "macro" => "OPENSSL_NO_BROTLI" + }, + "brotli-dynamic" => { + "macro" => "OPENSSL_NO_BROTLI_DYNAMIC" + }, "comp" => { "macro" => "OPENSSL_NO_COMP", "skipped" => [ @@ -27688,6 +32792,9 @@ my %disabled_info = ( "crypto-mdebug-backtrace" => { "macro" => "OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE" }, + "demos" => { + "macro" => "OPENSSL_NO_DEMOS" + }, "devcryptoeng" => { "macro" => "OPENSSL_NO_DEVCRYPTOENG" }, @@ -27700,12 +32807,24 @@ my %disabled_info = ( "external-tests" => { "macro" => "OPENSSL_NO_EXTERNAL_TESTS" }, + "fips-jitter" => { + "macro" => "OPENSSL_NO_FIPS_JITTER" + }, "fuzz-afl" => { "macro" => "OPENSSL_NO_FUZZ_AFL" }, "fuzz-libfuzzer" => { "macro" => "OPENSSL_NO_FUZZ_LIBFUZZER" }, + "h3demo" => { + "macro" => "OPENSSL_NO_H3DEMO" + }, + "hqinterop" => { + "macro" => "OPENSSL_NO_HQINTEROP" + }, + "jitter" => { + "macro" => "OPENSSL_NO_JITTER" + }, "ktls" => { "macro" => "OPENSSL_NO_KTLS" }, @@ -27721,6 +32840,9 @@ my %disabled_info = ( "msan" => { "macro" => "OPENSSL_NO_MSAN" }, + "pie" => { + "macro" => "OPENSSL_NO_PIE" + }, "rc5" => { "macro" => "OPENSSL_NO_RC5", "skipped" => [ @@ -27736,6 +32858,12 @@ my %disabled_info = ( "ssl3-method" => { "macro" => "OPENSSL_NO_SSL3_METHOD" }, + "sslkeylog" => { + "macro" => "OPENSSL_NO_SSLKEYLOG" + }, + "tfo" => { + "macro" => "OPENSSL_NO_TFO" + }, "trace" => { "macro" => "OPENSSL_NO_TRACE" }, @@ -27750,6 +32878,21 @@ my %disabled_info = ( }, "weak-ssl-ciphers" => { "macro" => "OPENSSL_NO_WEAK_SSL_CIPHERS" + }, + "winstore" => { + "macro" => "OPENSSL_NO_WINSTORE" + }, + "zlib" => { + "macro" => "OPENSSL_NO_ZLIB" + }, + "zlib-dynamic" => { + "macro" => "OPENSSL_NO_ZLIB_DYNAMIC" + }, + "zstd" => { + "macro" => "OPENSSL_NO_ZSTD" + }, + "zstd-dynamic" => { + "macro" => "OPENSSL_NO_ZSTD_DYNAMIC" } ); my @user_crossable = qw( AR AS CC CXX CPP LD MT RANLIB RC ); @@ -27763,15 +32906,15 @@ unless (caller) { use File::Copy; use Pod::Usage; - use lib '/home/runner/work/node/node/deps/openssl/openssl/util/perl'; - use OpenSSL::fallback '/home/runner/work/node/node/deps/openssl/openssl/external/perl/MODULES.txt'; + use lib '/node/deps/openssl/openssl/util/perl'; + use OpenSSL::fallback '/node/deps/openssl/openssl/external/perl/MODULES.txt'; my $here = dirname($0); if (scalar @ARGV == 0) { # With no arguments, re-create the build file # We do that in two steps, where the first step emits perl - # snipets. + # snippets. my $buildfile = $config{build_file}; my $buildfile_template = "$buildfile.in"; @@ -27791,7 +32934,7 @@ unless (caller) { ); use lib '.'; - use lib '/home/runner/work/node/node/deps/openssl/openssl/Configurations'; + use lib '/node/deps/openssl/openssl/Configurations'; use gentemplate; open my $buildfile_template_fh, ">$buildfile_template" @@ -27808,8 +32951,8 @@ unless (caller) { my $prepend = <<'_____'; use File::Spec::Functions; -use lib '/home/runner/work/node/node/deps/openssl/openssl/util/perl'; -use lib '/home/runner/work/node/node/deps/openssl/openssl/Configurations'; +use lib '/node/deps/openssl/openssl/util/perl'; +use lib '/node/deps/openssl/openssl/Configurations'; use lib '.'; use platform; _____ diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/aes/aes-x86_64.s b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/aes/aes-x86_64.s index ea977ab3e71435..cc4d1892139ec2 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/aes/aes-x86_64.s +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/aes/aes-x86_64.s @@ -1852,6 +1852,7 @@ L$cbc_epilogue: .byte 0xf3,0xc3 +.section __DATA,__const .p2align 6 L$AES_Te: .long 0xa56363c6,0xa56363c6 @@ -2638,3 +2639,4 @@ L$AES_Td: .long 0x1b1b1b1b, 0x1b1b1b1b, 0, 0 .byte 65,69,83,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 .p2align 6 +.text diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/aes/aesni-sha1-x86_64.s b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/aes/aesni-sha1-x86_64.s index b0e1036b92e962..fd13982cf4a238 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/aes/aesni-sha1-x86_64.s +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/aes/aesni-sha1-x86_64.s @@ -2706,6 +2706,7 @@ L$epilogue_avx: .byte 0xf3,0xc3 +.section __DATA,__const .p2align 6 K_XX_XX: .long 0x5a827999,0x5a827999,0x5a827999,0x5a827999 @@ -2717,6 +2718,7 @@ K_XX_XX: .byte 65,69,83,78,73,45,67,66,67,43,83,72,65,49,32,115,116,105,116,99,104,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 .p2align 6 +.text .p2align 5 aesni_cbc_sha1_enc_shaext: diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/aes/aesni-sha256-x86_64.s b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/aes/aesni-sha256-x86_64.s index cbf5ae8eb01d5c..16feb871a56f0b 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/aes/aesni-sha256-x86_64.s +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/aes/aesni-sha256-x86_64.s @@ -34,6 +34,7 @@ L$probe: +.section __DATA,__const .p2align 6 K256: @@ -76,6 +77,7 @@ K256: .long 0,0,0,0, 0,0,0,0 .byte 65,69,83,78,73,45,67,66,67,43,83,72,65,50,53,54,32,115,116,105,116,99,104,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 .p2align 6 +.text .p2align 6 aesni_cbc_sha256_enc_xop: diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/aes/aesni-x86_64.s b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/aes/aesni-x86_64.s index ee768b4912115e..6afc855a02197d 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/aes/aesni-x86_64.s +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/aes/aesni-x86_64.s @@ -4451,6 +4451,7 @@ L$key_expansion_256b: +.section __DATA,__const .p2align 6 L$bswap_mask: .byte 15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0 @@ -4473,3 +4474,4 @@ L$key_rcon1b: .byte 65,69,83,32,102,111,114,32,73,110,116,101,108,32,65,69,83,45,78,73,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 .p2align 6 +.text diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/aes/aesni-xts-avx512.s b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/aes/aesni-xts-avx512.s new file mode 100644 index 00000000000000..6cb3017371bb40 --- /dev/null +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/aes/aesni-xts-avx512.s @@ -0,0 +1,8124 @@ +.text + +.globl _aesni_xts_avx512_eligible + +.p2align 5 +_aesni_xts_avx512_eligible: + movl _OPENSSL_ia32cap_P+8(%rip),%ecx + xorl %eax,%eax + + andl $0xc0030000,%ecx + cmpl $0xc0030000,%ecx + jne L$_done + movl _OPENSSL_ia32cap_P+12(%rip),%ecx + + andl $0x640,%ecx + cmpl $0x640,%ecx + cmovel %ecx,%eax +L$_done: + .byte 0xf3,0xc3 + +.globl _aesni_xts_128_encrypt_avx512 +.private_extern _aesni_xts_128_encrypt_avx512 + +.p2align 5 +_aesni_xts_128_encrypt_avx512: + +.byte 243,15,30,250 + pushq %rbp + movq %rsp,%rbp + subq $136,%rsp + andq $0xffffffffffffffc0,%rsp + movq %rbx,128(%rsp) + movq $0x87,%r10 + vmovdqu (%r9),%xmm1 + vpxor (%r8),%xmm1,%xmm1 + vaesenc 16(%r8),%xmm1,%xmm1 + vaesenc 32(%r8),%xmm1,%xmm1 + vaesenc 48(%r8),%xmm1,%xmm1 + vaesenc 64(%r8),%xmm1,%xmm1 + vaesenc 80(%r8),%xmm1,%xmm1 + vaesenc 96(%r8),%xmm1,%xmm1 + vaesenc 112(%r8),%xmm1,%xmm1 + vaesenc 128(%r8),%xmm1,%xmm1 + vaesenc 144(%r8),%xmm1,%xmm1 + vaesenclast 160(%r8),%xmm1,%xmm1 + vmovdqa %xmm1,(%rsp) + + cmpq $0x80,%rdx + jl L$_less_than_128_bytes_hEgxyDlCngwrfFe + vpbroadcastq %r10,%zmm25 + cmpq $0x100,%rdx + jge L$_start_by16_hEgxyDlCngwrfFe + cmpq $0x80,%rdx + jge L$_start_by8_hEgxyDlCngwrfFe + +L$_do_n_blocks_hEgxyDlCngwrfFe: + cmpq $0x0,%rdx + je L$_ret_hEgxyDlCngwrfFe + cmpq $0x70,%rdx + jge L$_remaining_num_blocks_is_7_hEgxyDlCngwrfFe + cmpq $0x60,%rdx + jge L$_remaining_num_blocks_is_6_hEgxyDlCngwrfFe + cmpq $0x50,%rdx + jge L$_remaining_num_blocks_is_5_hEgxyDlCngwrfFe + cmpq $0x40,%rdx + jge L$_remaining_num_blocks_is_4_hEgxyDlCngwrfFe + cmpq $0x30,%rdx + jge L$_remaining_num_blocks_is_3_hEgxyDlCngwrfFe + cmpq $0x20,%rdx + jge L$_remaining_num_blocks_is_2_hEgxyDlCngwrfFe + cmpq $0x10,%rdx + jge L$_remaining_num_blocks_is_1_hEgxyDlCngwrfFe + vmovdqa %xmm0,%xmm8 + vmovdqa %xmm9,%xmm0 + jmp L$_steal_cipher_hEgxyDlCngwrfFe + +L$_remaining_num_blocks_is_7_hEgxyDlCngwrfFe: + movq $0x0000ffffffffffff,%r8 + kmovq %r8,%k1 + vmovdqu8 (%rdi),%zmm1 + vmovdqu8 64(%rdi),%zmm2{%k1} + addq $0x70,%rdi + vbroadcasti32x4 (%rcx),%zmm0 + vpternlogq $0x96,%zmm0,%zmm9,%zmm1 + vpternlogq $0x96,%zmm0,%zmm10,%zmm2 + vbroadcasti32x4 16(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 32(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 48(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + vbroadcasti32x4 64(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 80(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 96(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 112(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 128(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 144(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + vbroadcasti32x4 160(%rcx),%zmm0 + vaesenclast %zmm0,%zmm1,%zmm1 + vaesenclast %zmm0,%zmm2,%zmm2 + vpxorq %zmm9,%zmm1,%zmm1 + vpxorq %zmm10,%zmm2,%zmm2 + vmovdqu8 %zmm1,(%rsi) + vmovdqu8 %zmm2,64(%rsi){%k1} + addq $0x70,%rsi + vextracti32x4 $0x2,%zmm2,%xmm8 + vextracti32x4 $0x3,%zmm10,%xmm0 + andq $0xf,%rdx + je L$_ret_hEgxyDlCngwrfFe + jmp L$_steal_cipher_hEgxyDlCngwrfFe + +L$_remaining_num_blocks_is_6_hEgxyDlCngwrfFe: + vmovdqu8 (%rdi),%zmm1 + vmovdqu8 64(%rdi),%ymm2 + addq $0x60,%rdi + vbroadcasti32x4 (%rcx),%zmm0 + vpternlogq $0x96,%zmm0,%zmm9,%zmm1 + vpternlogq $0x96,%zmm0,%zmm10,%zmm2 + vbroadcasti32x4 16(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 32(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 48(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + vbroadcasti32x4 64(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 80(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 96(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 112(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 128(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 144(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + vbroadcasti32x4 160(%rcx),%zmm0 + vaesenclast %zmm0,%zmm1,%zmm1 + vaesenclast %zmm0,%zmm2,%zmm2 + vpxorq %zmm9,%zmm1,%zmm1 + vpxorq %zmm10,%zmm2,%zmm2 + vmovdqu8 %zmm1,(%rsi) + vmovdqu8 %ymm2,64(%rsi) + addq $0x60,%rsi + vextracti32x4 $0x1,%zmm2,%xmm8 + vextracti32x4 $0x2,%zmm10,%xmm0 + andq $0xf,%rdx + je L$_ret_hEgxyDlCngwrfFe + jmp L$_steal_cipher_hEgxyDlCngwrfFe + +L$_remaining_num_blocks_is_5_hEgxyDlCngwrfFe: + vmovdqu8 (%rdi),%zmm1 + vmovdqu 64(%rdi),%xmm2 + addq $0x50,%rdi + vbroadcasti32x4 (%rcx),%zmm0 + vpternlogq $0x96,%zmm0,%zmm9,%zmm1 + vpternlogq $0x96,%zmm0,%zmm10,%zmm2 + vbroadcasti32x4 16(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 32(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 48(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + vbroadcasti32x4 64(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 80(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 96(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 112(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 128(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 144(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + vbroadcasti32x4 160(%rcx),%zmm0 + vaesenclast %zmm0,%zmm1,%zmm1 + vaesenclast %zmm0,%zmm2,%zmm2 + vpxorq %zmm9,%zmm1,%zmm1 + vpxorq %zmm10,%zmm2,%zmm2 + vmovdqu8 %zmm1,(%rsi) + vmovdqu %xmm2,64(%rsi) + addq $0x50,%rsi + vmovdqa %xmm2,%xmm8 + vextracti32x4 $0x1,%zmm10,%xmm0 + andq $0xf,%rdx + je L$_ret_hEgxyDlCngwrfFe + jmp L$_steal_cipher_hEgxyDlCngwrfFe + +L$_remaining_num_blocks_is_4_hEgxyDlCngwrfFe: + vmovdqu8 (%rdi),%zmm1 + addq $0x40,%rdi + vbroadcasti32x4 (%rcx),%zmm0 + vpternlogq $0x96,%zmm0,%zmm9,%zmm1 + vbroadcasti32x4 16(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 32(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 48(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 64(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 80(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 96(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 112(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 128(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 144(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 160(%rcx),%zmm0 + vaesenclast %zmm0,%zmm1,%zmm1 + vpxorq %zmm9,%zmm1,%zmm1 + vmovdqu8 %zmm1,(%rsi) + addq $0x40,%rsi + vextracti32x4 $0x3,%zmm1,%xmm8 + vmovdqa64 %xmm10,%xmm0 + andq $0xf,%rdx + je L$_ret_hEgxyDlCngwrfFe + jmp L$_steal_cipher_hEgxyDlCngwrfFe +L$_remaining_num_blocks_is_3_hEgxyDlCngwrfFe: + movq $-1,%r8 + shrq $0x10,%r8 + kmovq %r8,%k1 + vmovdqu8 (%rdi),%zmm1{%k1} + addq $0x30,%rdi + vbroadcasti32x4 (%rcx),%zmm0 + vpternlogq $0x96,%zmm0,%zmm9,%zmm1 + vbroadcasti32x4 16(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 32(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 48(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 64(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 80(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 96(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 112(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 128(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 144(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 160(%rcx),%zmm0 + vaesenclast %zmm0,%zmm1,%zmm1 + vpxorq %zmm9,%zmm1,%zmm1 + vmovdqu8 %zmm1,(%rsi){%k1} + addq $0x30,%rsi + vextracti32x4 $0x2,%zmm1,%xmm8 + vextracti32x4 $0x3,%zmm9,%xmm0 + andq $0xf,%rdx + je L$_ret_hEgxyDlCngwrfFe + jmp L$_steal_cipher_hEgxyDlCngwrfFe +L$_remaining_num_blocks_is_2_hEgxyDlCngwrfFe: + vmovdqu8 (%rdi),%ymm1 + addq $0x20,%rdi + vbroadcasti32x4 (%rcx),%ymm0 + vpternlogq $0x96,%ymm0,%ymm9,%ymm1 + vbroadcasti32x4 16(%rcx),%ymm0 + vaesenc %ymm0,%ymm1,%ymm1 + vbroadcasti32x4 32(%rcx),%ymm0 + vaesenc %ymm0,%ymm1,%ymm1 + vbroadcasti32x4 48(%rcx),%ymm0 + vaesenc %ymm0,%ymm1,%ymm1 + vbroadcasti32x4 64(%rcx),%ymm0 + vaesenc %ymm0,%ymm1,%ymm1 + vbroadcasti32x4 80(%rcx),%ymm0 + vaesenc %ymm0,%ymm1,%ymm1 + vbroadcasti32x4 96(%rcx),%ymm0 + vaesenc %ymm0,%ymm1,%ymm1 + vbroadcasti32x4 112(%rcx),%ymm0 + vaesenc %ymm0,%ymm1,%ymm1 + vbroadcasti32x4 128(%rcx),%ymm0 + vaesenc %ymm0,%ymm1,%ymm1 + vbroadcasti32x4 144(%rcx),%ymm0 + vaesenc %ymm0,%ymm1,%ymm1 + vbroadcasti32x4 160(%rcx),%ymm0 + vaesenclast %ymm0,%ymm1,%ymm1 + vpxorq %ymm9,%ymm1,%ymm1 + vmovdqu %ymm1,(%rsi) + addq $0x20,%rsi + vextracti32x4 $0x1,%zmm1,%xmm8 + vextracti32x4 $0x2,%zmm9,%xmm0 + andq $0xf,%rdx + je L$_ret_hEgxyDlCngwrfFe + jmp L$_steal_cipher_hEgxyDlCngwrfFe +L$_remaining_num_blocks_is_1_hEgxyDlCngwrfFe: + vmovdqu (%rdi),%xmm1 + addq $0x10,%rdi + vpxor %xmm9,%xmm1,%xmm1 + vpxor (%rcx),%xmm1,%xmm1 + vaesenc 16(%rcx),%xmm1,%xmm1 + vaesenc 32(%rcx),%xmm1,%xmm1 + vaesenc 48(%rcx),%xmm1,%xmm1 + vaesenc 64(%rcx),%xmm1,%xmm1 + vaesenc 80(%rcx),%xmm1,%xmm1 + vaesenc 96(%rcx),%xmm1,%xmm1 + vaesenc 112(%rcx),%xmm1,%xmm1 + vaesenc 128(%rcx),%xmm1,%xmm1 + vaesenc 144(%rcx),%xmm1,%xmm1 + vaesenclast 160(%rcx),%xmm1,%xmm1 + vpxor %xmm9,%xmm1,%xmm1 + vmovdqu %xmm1,(%rsi) + addq $0x10,%rsi + vmovdqa %xmm1,%xmm8 + vextracti32x4 $0x1,%zmm9,%xmm0 + andq $0xf,%rdx + je L$_ret_hEgxyDlCngwrfFe + jmp L$_steal_cipher_hEgxyDlCngwrfFe + + +L$_start_by16_hEgxyDlCngwrfFe: + vbroadcasti32x4 (%rsp),%zmm0 + vbroadcasti32x4 shufb_15_7(%rip),%zmm8 + movq $0xaa,%r8 + kmovq %r8,%k2 + vpshufb %zmm8,%zmm0,%zmm1 + vpsllvq const_dq3210(%rip),%zmm0,%zmm4 + vpsrlvq const_dq5678(%rip),%zmm1,%zmm2 + vpclmulqdq $0x0,%zmm25,%zmm2,%zmm3 + vpxorq %zmm2,%zmm4,%zmm4{%k2} + vpxord %zmm4,%zmm3,%zmm9 + vpsllvq const_dq7654(%rip),%zmm0,%zmm5 + vpsrlvq const_dq1234(%rip),%zmm1,%zmm6 + vpclmulqdq $0x0,%zmm25,%zmm6,%zmm7 + vpxorq %zmm6,%zmm5,%zmm5{%k2} + vpxord %zmm5,%zmm7,%zmm10 + vpsrldq $0xf,%zmm9,%zmm13 + vpclmulqdq $0x0,%zmm25,%zmm13,%zmm14 + vpslldq $0x1,%zmm9,%zmm11 + vpxord %zmm14,%zmm11,%zmm11 + vpsrldq $0xf,%zmm10,%zmm15 + vpclmulqdq $0x0,%zmm25,%zmm15,%zmm16 + vpslldq $0x1,%zmm10,%zmm12 + vpxord %zmm16,%zmm12,%zmm12 + +L$_main_loop_run_16_hEgxyDlCngwrfFe: + vmovdqu8 (%rdi),%zmm1 + vmovdqu8 64(%rdi),%zmm2 + vmovdqu8 128(%rdi),%zmm3 + vmovdqu8 192(%rdi),%zmm4 + addq $0x100,%rdi + vpxorq %zmm9,%zmm1,%zmm1 + vpxorq %zmm10,%zmm2,%zmm2 + vpxorq %zmm11,%zmm3,%zmm3 + vpxorq %zmm12,%zmm4,%zmm4 + vbroadcasti32x4 (%rcx),%zmm0 + vpxorq %zmm0,%zmm1,%zmm1 + vpxorq %zmm0,%zmm2,%zmm2 + vpxorq %zmm0,%zmm3,%zmm3 + vpxorq %zmm0,%zmm4,%zmm4 + vpsrldq $0xf,%zmm11,%zmm13 + vpclmulqdq $0x0,%zmm25,%zmm13,%zmm14 + vpslldq $0x1,%zmm11,%zmm15 + vpxord %zmm14,%zmm15,%zmm15 + vbroadcasti32x4 16(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + vaesenc %zmm0,%zmm3,%zmm3 + vaesenc %zmm0,%zmm4,%zmm4 + vbroadcasti32x4 32(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + vaesenc %zmm0,%zmm3,%zmm3 + vaesenc %zmm0,%zmm4,%zmm4 + vbroadcasti32x4 48(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + vaesenc %zmm0,%zmm3,%zmm3 + vaesenc %zmm0,%zmm4,%zmm4 + vpsrldq $0xf,%zmm12,%zmm13 + vpclmulqdq $0x0,%zmm25,%zmm13,%zmm14 + vpslldq $0x1,%zmm12,%zmm16 + vpxord %zmm14,%zmm16,%zmm16 + vbroadcasti32x4 64(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + vaesenc %zmm0,%zmm3,%zmm3 + vaesenc %zmm0,%zmm4,%zmm4 + vbroadcasti32x4 80(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + vaesenc %zmm0,%zmm3,%zmm3 + vaesenc %zmm0,%zmm4,%zmm4 + vbroadcasti32x4 96(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + vaesenc %zmm0,%zmm3,%zmm3 + vaesenc %zmm0,%zmm4,%zmm4 + vpsrldq $0xf,%zmm15,%zmm13 + vpclmulqdq $0x0,%zmm25,%zmm13,%zmm14 + vpslldq $0x1,%zmm15,%zmm17 + vpxord %zmm14,%zmm17,%zmm17 + vbroadcasti32x4 112(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + vaesenc %zmm0,%zmm3,%zmm3 + vaesenc %zmm0,%zmm4,%zmm4 + vbroadcasti32x4 128(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + vaesenc %zmm0,%zmm3,%zmm3 + vaesenc %zmm0,%zmm4,%zmm4 + vbroadcasti32x4 144(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + vaesenc %zmm0,%zmm3,%zmm3 + vaesenc %zmm0,%zmm4,%zmm4 + vpsrldq $0xf,%zmm16,%zmm13 + vpclmulqdq $0x0,%zmm25,%zmm13,%zmm14 + vpslldq $0x1,%zmm16,%zmm18 + vpxord %zmm14,%zmm18,%zmm18 + vbroadcasti32x4 160(%rcx),%zmm0 + vaesenclast %zmm0,%zmm1,%zmm1 + vaesenclast %zmm0,%zmm2,%zmm2 + vaesenclast %zmm0,%zmm3,%zmm3 + vaesenclast %zmm0,%zmm4,%zmm4 + vpxorq %zmm9,%zmm1,%zmm1 + vpxorq %zmm10,%zmm2,%zmm2 + vpxorq %zmm11,%zmm3,%zmm3 + vpxorq %zmm12,%zmm4,%zmm4 + + vmovdqa32 %zmm15,%zmm9 + vmovdqa32 %zmm16,%zmm10 + vmovdqa32 %zmm17,%zmm11 + vmovdqa32 %zmm18,%zmm12 + vmovdqu8 %zmm1,(%rsi) + vmovdqu8 %zmm2,64(%rsi) + vmovdqu8 %zmm3,128(%rsi) + vmovdqu8 %zmm4,192(%rsi) + addq $0x100,%rsi + subq $0x100,%rdx + cmpq $0x100,%rdx + jae L$_main_loop_run_16_hEgxyDlCngwrfFe + cmpq $0x80,%rdx + jae L$_main_loop_run_8_hEgxyDlCngwrfFe + vextracti32x4 $0x3,%zmm4,%xmm0 + jmp L$_do_n_blocks_hEgxyDlCngwrfFe + +L$_start_by8_hEgxyDlCngwrfFe: + vbroadcasti32x4 (%rsp),%zmm0 + vbroadcasti32x4 shufb_15_7(%rip),%zmm8 + movq $0xaa,%r8 + kmovq %r8,%k2 + vpshufb %zmm8,%zmm0,%zmm1 + vpsllvq const_dq3210(%rip),%zmm0,%zmm4 + vpsrlvq const_dq5678(%rip),%zmm1,%zmm2 + vpclmulqdq $0x0,%zmm25,%zmm2,%zmm3 + vpxorq %zmm2,%zmm4,%zmm4{%k2} + vpxord %zmm4,%zmm3,%zmm9 + vpsllvq const_dq7654(%rip),%zmm0,%zmm5 + vpsrlvq const_dq1234(%rip),%zmm1,%zmm6 + vpclmulqdq $0x0,%zmm25,%zmm6,%zmm7 + vpxorq %zmm6,%zmm5,%zmm5{%k2} + vpxord %zmm5,%zmm7,%zmm10 + +L$_main_loop_run_8_hEgxyDlCngwrfFe: + vmovdqu8 (%rdi),%zmm1 + vmovdqu8 64(%rdi),%zmm2 + addq $0x80,%rdi + vbroadcasti32x4 (%rcx),%zmm0 + vpternlogq $0x96,%zmm0,%zmm9,%zmm1 + vpternlogq $0x96,%zmm0,%zmm10,%zmm2 + vpsrldq $0xf,%zmm9,%zmm13 + vpclmulqdq $0x0,%zmm25,%zmm13,%zmm14 + vpslldq $0x1,%zmm9,%zmm15 + vpxord %zmm14,%zmm15,%zmm15 + vbroadcasti32x4 16(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 32(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 48(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + vpsrldq $0xf,%zmm10,%zmm13 + vpclmulqdq $0x0,%zmm25,%zmm13,%zmm14 + vpslldq $0x1,%zmm10,%zmm16 + vpxord %zmm14,%zmm16,%zmm16 + + vbroadcasti32x4 64(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 80(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 96(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 112(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 128(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 144(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + vbroadcasti32x4 160(%rcx),%zmm0 + vaesenclast %zmm0,%zmm1,%zmm1 + vaesenclast %zmm0,%zmm2,%zmm2 + vpxorq %zmm9,%zmm1,%zmm1 + vpxorq %zmm10,%zmm2,%zmm2 + vmovdqa32 %zmm15,%zmm9 + vmovdqa32 %zmm16,%zmm10 + vmovdqu8 %zmm1,(%rsi) + vmovdqu8 %zmm2,64(%rsi) + addq $0x80,%rsi + subq $0x80,%rdx + cmpq $0x80,%rdx + jae L$_main_loop_run_8_hEgxyDlCngwrfFe + vextracti32x4 $0x3,%zmm2,%xmm0 + jmp L$_do_n_blocks_hEgxyDlCngwrfFe + +L$_steal_cipher_hEgxyDlCngwrfFe: + vmovdqa %xmm8,%xmm2 + leaq vpshufb_shf_table(%rip),%rax + vmovdqu (%rax,%rdx,1),%xmm10 + vpshufb %xmm10,%xmm8,%xmm8 + vmovdqu -16(%rdi,%rdx,1),%xmm3 + vmovdqu %xmm8,-16(%rsi,%rdx,1) + leaq vpshufb_shf_table(%rip),%rax + addq $16,%rax + subq %rdx,%rax + vmovdqu (%rax),%xmm10 + vpxor mask1(%rip),%xmm10,%xmm10 + vpshufb %xmm10,%xmm3,%xmm3 + vpblendvb %xmm10,%xmm2,%xmm3,%xmm3 + vpxor %xmm0,%xmm3,%xmm8 + vpxor (%rcx),%xmm8,%xmm8 + vaesenc 16(%rcx),%xmm8,%xmm8 + vaesenc 32(%rcx),%xmm8,%xmm8 + vaesenc 48(%rcx),%xmm8,%xmm8 + vaesenc 64(%rcx),%xmm8,%xmm8 + vaesenc 80(%rcx),%xmm8,%xmm8 + vaesenc 96(%rcx),%xmm8,%xmm8 + vaesenc 112(%rcx),%xmm8,%xmm8 + vaesenc 128(%rcx),%xmm8,%xmm8 + vaesenc 144(%rcx),%xmm8,%xmm8 + vaesenclast 160(%rcx),%xmm8,%xmm8 + vpxor %xmm0,%xmm8,%xmm8 + vmovdqu %xmm8,-16(%rsi) +L$_ret_hEgxyDlCngwrfFe: + movq 128(%rsp),%rbx + xorq %r8,%r8 + movq %r8,128(%rsp) + + vpxorq %zmm0,%zmm0,%zmm0 + movq %rbp,%rsp + popq %rbp + vzeroupper + .byte 0xf3,0xc3 + +L$_less_than_128_bytes_hEgxyDlCngwrfFe: + vpbroadcastq %r10,%zmm25 + cmpq $0x10,%rdx + jb L$_ret_hEgxyDlCngwrfFe + vbroadcasti32x4 (%rsp),%zmm0 + vbroadcasti32x4 shufb_15_7(%rip),%zmm8 + movl $0xaa,%r8d + kmovq %r8,%k2 + movq %rdx,%r8 + andq $0x70,%r8 + cmpq $0x60,%r8 + je L$_num_blocks_is_6_hEgxyDlCngwrfFe + cmpq $0x50,%r8 + je L$_num_blocks_is_5_hEgxyDlCngwrfFe + cmpq $0x40,%r8 + je L$_num_blocks_is_4_hEgxyDlCngwrfFe + cmpq $0x30,%r8 + je L$_num_blocks_is_3_hEgxyDlCngwrfFe + cmpq $0x20,%r8 + je L$_num_blocks_is_2_hEgxyDlCngwrfFe + cmpq $0x10,%r8 + je L$_num_blocks_is_1_hEgxyDlCngwrfFe + +L$_num_blocks_is_7_hEgxyDlCngwrfFe: + vpshufb %zmm8,%zmm0,%zmm1 + vpsllvq const_dq3210(%rip),%zmm0,%zmm4 + vpsrlvq const_dq5678(%rip),%zmm1,%zmm2 + vpclmulqdq $0x00,%zmm25,%zmm2,%zmm3 + vpxorq %zmm2,%zmm4,%zmm4{%k2} + vpxord %zmm4,%zmm3,%zmm9 + vpsllvq const_dq7654(%rip),%zmm0,%zmm5 + vpsrlvq const_dq1234(%rip),%zmm1,%zmm6 + vpclmulqdq $0x00,%zmm25,%zmm6,%zmm7 + vpxorq %zmm6,%zmm5,%zmm5{%k2} + vpxord %zmm5,%zmm7,%zmm10 + movq $0x0000ffffffffffff,%r8 + kmovq %r8,%k1 + vmovdqu8 0(%rdi),%zmm1 + vmovdqu8 64(%rdi),%zmm2{%k1} + + addq $0x70,%rdi + vbroadcasti32x4 (%rcx),%zmm0 + vpternlogq $0x96,%zmm0,%zmm9,%zmm1 + vpternlogq $0x96,%zmm0,%zmm10,%zmm2 + vbroadcasti32x4 16(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 32(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 48(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + vbroadcasti32x4 64(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 80(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 96(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 112(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 128(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 144(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + vbroadcasti32x4 160(%rcx),%zmm0 + vaesenclast %zmm0,%zmm1,%zmm1 + vaesenclast %zmm0,%zmm2,%zmm2 + vpxorq %zmm9,%zmm1,%zmm1 + vpxorq %zmm10,%zmm2,%zmm2 + vmovdqu8 %zmm1,0(%rsi) + vmovdqu8 %zmm2,64(%rsi){%k1} + addq $0x70,%rsi + vextracti32x4 $0x2,%zmm2,%xmm8 + vextracti32x4 $0x3,%zmm10,%xmm0 + andq $0xf,%rdx + je L$_ret_hEgxyDlCngwrfFe + jmp L$_steal_cipher_hEgxyDlCngwrfFe +L$_num_blocks_is_6_hEgxyDlCngwrfFe: + vpshufb %zmm8,%zmm0,%zmm1 + vpsllvq const_dq3210(%rip),%zmm0,%zmm4 + vpsrlvq const_dq5678(%rip),%zmm1,%zmm2 + vpclmulqdq $0x00,%zmm25,%zmm2,%zmm3 + vpxorq %zmm2,%zmm4,%zmm4{%k2} + vpxord %zmm4,%zmm3,%zmm9 + vpsllvq const_dq7654(%rip),%zmm0,%zmm5 + vpsrlvq const_dq1234(%rip),%zmm1,%zmm6 + vpclmulqdq $0x00,%zmm25,%zmm6,%zmm7 + vpxorq %zmm6,%zmm5,%zmm5{%k2} + vpxord %zmm5,%zmm7,%zmm10 + vmovdqu8 0(%rdi),%zmm1 + vmovdqu8 64(%rdi),%ymm2 + addq $96,%rdi + vbroadcasti32x4 (%rcx),%zmm0 + vpternlogq $0x96,%zmm0,%zmm9,%zmm1 + vpternlogq $0x96,%zmm0,%zmm10,%zmm2 + vbroadcasti32x4 16(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 32(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 48(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + vbroadcasti32x4 64(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 80(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 96(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 112(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 128(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 144(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + vbroadcasti32x4 160(%rcx),%zmm0 + vaesenclast %zmm0,%zmm1,%zmm1 + vaesenclast %zmm0,%zmm2,%zmm2 + vpxorq %zmm9,%zmm1,%zmm1 + vpxorq %zmm10,%zmm2,%zmm2 + vmovdqu8 %zmm1,0(%rsi) + vmovdqu8 %ymm2,64(%rsi) + addq $96,%rsi + + vextracti32x4 $0x1,%ymm2,%xmm8 + vextracti32x4 $0x2,%zmm10,%xmm0 + andq $0xf,%rdx + je L$_ret_hEgxyDlCngwrfFe + jmp L$_steal_cipher_hEgxyDlCngwrfFe +L$_num_blocks_is_5_hEgxyDlCngwrfFe: + vpshufb %zmm8,%zmm0,%zmm1 + vpsllvq const_dq3210(%rip),%zmm0,%zmm4 + vpsrlvq const_dq5678(%rip),%zmm1,%zmm2 + vpclmulqdq $0x00,%zmm25,%zmm2,%zmm3 + vpxorq %zmm2,%zmm4,%zmm4{%k2} + vpxord %zmm4,%zmm3,%zmm9 + vpsllvq const_dq7654(%rip),%zmm0,%zmm5 + vpsrlvq const_dq1234(%rip),%zmm1,%zmm6 + vpclmulqdq $0x00,%zmm25,%zmm6,%zmm7 + vpxorq %zmm6,%zmm5,%zmm5{%k2} + vpxord %zmm5,%zmm7,%zmm10 + vmovdqu8 0(%rdi),%zmm1 + vmovdqu8 64(%rdi),%xmm2 + addq $80,%rdi + vbroadcasti32x4 (%rcx),%zmm0 + vpternlogq $0x96,%zmm0,%zmm9,%zmm1 + vpternlogq $0x96,%zmm0,%zmm10,%zmm2 + vbroadcasti32x4 16(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 32(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 48(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + vbroadcasti32x4 64(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 80(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 96(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 112(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 128(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 144(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + vbroadcasti32x4 160(%rcx),%zmm0 + vaesenclast %zmm0,%zmm1,%zmm1 + vaesenclast %zmm0,%zmm2,%zmm2 + vpxorq %zmm9,%zmm1,%zmm1 + vpxorq %zmm10,%zmm2,%zmm2 + vmovdqu8 %zmm1,0(%rsi) + vmovdqu8 %xmm2,64(%rsi) + addq $80,%rsi + + vmovdqa %xmm2,%xmm8 + vextracti32x4 $0x1,%zmm10,%xmm0 + andq $0xf,%rdx + je L$_ret_hEgxyDlCngwrfFe + jmp L$_steal_cipher_hEgxyDlCngwrfFe +L$_num_blocks_is_4_hEgxyDlCngwrfFe: + vpshufb %zmm8,%zmm0,%zmm1 + vpsllvq const_dq3210(%rip),%zmm0,%zmm4 + vpsrlvq const_dq5678(%rip),%zmm1,%zmm2 + vpclmulqdq $0x00,%zmm25,%zmm2,%zmm3 + vpxorq %zmm2,%zmm4,%zmm4{%k2} + vpxord %zmm4,%zmm3,%zmm9 + vpsllvq const_dq7654(%rip),%zmm0,%zmm5 + vpsrlvq const_dq1234(%rip),%zmm1,%zmm6 + vpclmulqdq $0x00,%zmm25,%zmm6,%zmm7 + vpxorq %zmm6,%zmm5,%zmm5{%k2} + vpxord %zmm5,%zmm7,%zmm10 + vmovdqu8 0(%rdi),%zmm1 + addq $64,%rdi + vbroadcasti32x4 (%rcx),%zmm0 + vpternlogq $0x96,%zmm0,%zmm9,%zmm1 + vbroadcasti32x4 16(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 32(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 48(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 64(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 80(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 96(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 112(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 128(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 144(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 160(%rcx),%zmm0 + vaesenclast %zmm0,%zmm1,%zmm1 + vpxorq %zmm9,%zmm1,%zmm1 + vmovdqu8 %zmm1,0(%rsi) + addq $64,%rsi + vextracti32x4 $0x3,%zmm1,%xmm8 + vmovdqa %xmm10,%xmm0 + andq $0xf,%rdx + je L$_ret_hEgxyDlCngwrfFe + jmp L$_steal_cipher_hEgxyDlCngwrfFe +L$_num_blocks_is_3_hEgxyDlCngwrfFe: + vpshufb %zmm8,%zmm0,%zmm1 + vpsllvq const_dq3210(%rip),%zmm0,%zmm4 + vpsrlvq const_dq5678(%rip),%zmm1,%zmm2 + vpclmulqdq $0x00,%zmm25,%zmm2,%zmm3 + vpxorq %zmm2,%zmm4,%zmm4{%k2} + vpxord %zmm4,%zmm3,%zmm9 + movq $0x0000ffffffffffff,%r8 + kmovq %r8,%k1 + vmovdqu8 0(%rdi),%zmm1{%k1} + addq $48,%rdi + vbroadcasti32x4 (%rcx),%zmm0 + vpternlogq $0x96,%zmm0,%zmm9,%zmm1 + vbroadcasti32x4 16(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 32(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 48(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 64(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 80(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 96(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 112(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 128(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 144(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 160(%rcx),%zmm0 + vaesenclast %zmm0,%zmm1,%zmm1 + vpxorq %zmm9,%zmm1,%zmm1 + vmovdqu8 %zmm1,0(%rsi){%k1} + addq $48,%rsi + vextracti32x4 $2,%zmm1,%xmm8 + vextracti32x4 $3,%zmm9,%xmm0 + andq $0xf,%rdx + je L$_ret_hEgxyDlCngwrfFe + jmp L$_steal_cipher_hEgxyDlCngwrfFe +L$_num_blocks_is_2_hEgxyDlCngwrfFe: + vpshufb %zmm8,%zmm0,%zmm1 + vpsllvq const_dq3210(%rip),%zmm0,%zmm4 + vpsrlvq const_dq5678(%rip),%zmm1,%zmm2 + vpclmulqdq $0x00,%zmm25,%zmm2,%zmm3 + vpxorq %zmm2,%zmm4,%zmm4{%k2} + vpxord %zmm4,%zmm3,%zmm9 + + vmovdqu8 0(%rdi),%ymm1 + addq $32,%rdi + vbroadcasti32x4 (%rcx),%ymm0 + vpternlogq $0x96,%ymm0,%ymm9,%ymm1 + vbroadcasti32x4 16(%rcx),%ymm0 + vaesenc %ymm0,%ymm1,%ymm1 + vbroadcasti32x4 32(%rcx),%ymm0 + vaesenc %ymm0,%ymm1,%ymm1 + vbroadcasti32x4 48(%rcx),%ymm0 + vaesenc %ymm0,%ymm1,%ymm1 + vbroadcasti32x4 64(%rcx),%ymm0 + vaesenc %ymm0,%ymm1,%ymm1 + vbroadcasti32x4 80(%rcx),%ymm0 + vaesenc %ymm0,%ymm1,%ymm1 + vbroadcasti32x4 96(%rcx),%ymm0 + vaesenc %ymm0,%ymm1,%ymm1 + vbroadcasti32x4 112(%rcx),%ymm0 + vaesenc %ymm0,%ymm1,%ymm1 + vbroadcasti32x4 128(%rcx),%ymm0 + vaesenc %ymm0,%ymm1,%ymm1 + vbroadcasti32x4 144(%rcx),%ymm0 + vaesenc %ymm0,%ymm1,%ymm1 + vbroadcasti32x4 160(%rcx),%ymm0 + vaesenclast %ymm0,%ymm1,%ymm1 + vpxorq %ymm9,%ymm1,%ymm1 + vmovdqu8 %ymm1,0(%rsi) + addq $32,%rsi + + vextracti32x4 $1,%ymm1,%xmm8 + vextracti32x4 $2,%zmm9,%xmm0 + andq $0xf,%rdx + je L$_ret_hEgxyDlCngwrfFe + jmp L$_steal_cipher_hEgxyDlCngwrfFe +L$_num_blocks_is_1_hEgxyDlCngwrfFe: + vpshufb %zmm8,%zmm0,%zmm1 + vpsllvq const_dq3210(%rip),%zmm0,%zmm4 + vpsrlvq const_dq5678(%rip),%zmm1,%zmm2 + vpclmulqdq $0x00,%zmm25,%zmm2,%zmm3 + vpxorq %zmm2,%zmm4,%zmm4{%k2} + vpxord %zmm4,%zmm3,%zmm9 + + vmovdqu8 0(%rdi),%xmm1 + addq $16,%rdi + vbroadcasti32x4 (%rcx),%ymm0 + vpternlogq $0x96,%ymm0,%ymm9,%ymm1 + vbroadcasti32x4 16(%rcx),%ymm0 + vaesenc %ymm0,%ymm1,%ymm1 + vbroadcasti32x4 32(%rcx),%ymm0 + vaesenc %ymm0,%ymm1,%ymm1 + vbroadcasti32x4 48(%rcx),%ymm0 + vaesenc %ymm0,%ymm1,%ymm1 + vbroadcasti32x4 64(%rcx),%ymm0 + vaesenc %ymm0,%ymm1,%ymm1 + vbroadcasti32x4 80(%rcx),%ymm0 + vaesenc %ymm0,%ymm1,%ymm1 + vbroadcasti32x4 96(%rcx),%ymm0 + vaesenc %ymm0,%ymm1,%ymm1 + vbroadcasti32x4 112(%rcx),%ymm0 + vaesenc %ymm0,%ymm1,%ymm1 + vbroadcasti32x4 128(%rcx),%ymm0 + vaesenc %ymm0,%ymm1,%ymm1 + vbroadcasti32x4 144(%rcx),%ymm0 + vaesenc %ymm0,%ymm1,%ymm1 + vbroadcasti32x4 160(%rcx),%ymm0 + vaesenclast %ymm0,%ymm1,%ymm1 + vpxorq %ymm9,%ymm1,%ymm1 + vmovdqu8 %xmm1,0(%rsi) + addq $16,%rsi + + vmovdqa %xmm1,%xmm8 + vextracti32x4 $1,%zmm9,%xmm0 + andq $0xf,%rdx + je L$_ret_hEgxyDlCngwrfFe + jmp L$_steal_cipher_hEgxyDlCngwrfFe + +.globl _aesni_xts_128_decrypt_avx512 +.private_extern _aesni_xts_128_decrypt_avx512 + +.p2align 5 +_aesni_xts_128_decrypt_avx512: + +.byte 243,15,30,250 + pushq %rbp + movq %rsp,%rbp + subq $136,%rsp + andq $0xffffffffffffffc0,%rsp + movq %rbx,128(%rsp) + movq $0x87,%r10 + vmovdqu (%r9),%xmm1 + vpxor (%r8),%xmm1,%xmm1 + vaesenc 16(%r8),%xmm1,%xmm1 + vaesenc 32(%r8),%xmm1,%xmm1 + vaesenc 48(%r8),%xmm1,%xmm1 + vaesenc 64(%r8),%xmm1,%xmm1 + vaesenc 80(%r8),%xmm1,%xmm1 + vaesenc 96(%r8),%xmm1,%xmm1 + vaesenc 112(%r8),%xmm1,%xmm1 + vaesenc 128(%r8),%xmm1,%xmm1 + vaesenc 144(%r8),%xmm1,%xmm1 + vaesenclast 160(%r8),%xmm1,%xmm1 + vmovdqa %xmm1,(%rsp) + + cmpq $0x80,%rdx + jb L$_less_than_128_bytes_amivrujEyduiFoi + vpbroadcastq %r10,%zmm25 + cmpq $0x100,%rdx + jge L$_start_by16_amivrujEyduiFoi + jmp L$_start_by8_amivrujEyduiFoi + +L$_do_n_blocks_amivrujEyduiFoi: + cmpq $0x0,%rdx + je L$_ret_amivrujEyduiFoi + cmpq $0x70,%rdx + jge L$_remaining_num_blocks_is_7_amivrujEyduiFoi + cmpq $0x60,%rdx + jge L$_remaining_num_blocks_is_6_amivrujEyduiFoi + cmpq $0x50,%rdx + jge L$_remaining_num_blocks_is_5_amivrujEyduiFoi + cmpq $0x40,%rdx + jge L$_remaining_num_blocks_is_4_amivrujEyduiFoi + cmpq $0x30,%rdx + jge L$_remaining_num_blocks_is_3_amivrujEyduiFoi + cmpq $0x20,%rdx + jge L$_remaining_num_blocks_is_2_amivrujEyduiFoi + cmpq $0x10,%rdx + jge L$_remaining_num_blocks_is_1_amivrujEyduiFoi + + + vmovdqu %xmm5,%xmm1 + + vpxor %xmm9,%xmm1,%xmm1 + vmovdqu (%rcx),%xmm0 + vpxor %xmm0,%xmm1,%xmm1 + vmovdqu 16(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 32(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 48(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 64(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 80(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 96(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 112(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 128(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 144(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 160(%rcx),%xmm0 + vaesdeclast %xmm0,%xmm1,%xmm1 + vpxor %xmm9,%xmm1,%xmm1 + vmovdqu %xmm1,-16(%rsi) + vmovdqa %xmm1,%xmm8 + + + movq $0x1,%r8 + kmovq %r8,%k1 + vpsllq $0x3f,%xmm9,%xmm13 + vpsraq $0x3f,%xmm13,%xmm14 + vpandq %xmm25,%xmm14,%xmm5 + vpxorq %xmm5,%xmm9,%xmm9{%k1} + vpsrldq $0x8,%xmm9,%xmm10 +.byte 98, 211, 181, 8, 115, 194, 1 + vpslldq $0x8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm0,%xmm0 + jmp L$_steal_cipher_amivrujEyduiFoi + +L$_remaining_num_blocks_is_7_amivrujEyduiFoi: + movq $0xffffffffffffffff,%r8 + shrq $0x10,%r8 + kmovq %r8,%k1 + vmovdqu8 (%rdi),%zmm1 + vmovdqu8 64(%rdi),%zmm2{%k1} + addq $0x70,%rdi + andq $0xf,%rdx + je L$_done_7_remain_amivrujEyduiFoi + vextracti32x4 $0x2,%zmm10,%xmm12 + vextracti32x4 $0x3,%zmm10,%xmm13 + vinserti32x4 $0x2,%xmm13,%zmm10,%zmm10 + + vpxorq %zmm9,%zmm1,%zmm1 + vpxorq %zmm10,%zmm2,%zmm2 + + + vbroadcasti32x4 (%rcx),%zmm0 + vpxorq %zmm0,%zmm1,%zmm1 + vpxorq %zmm0,%zmm2,%zmm2 + vbroadcasti32x4 16(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 32(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 48(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + vbroadcasti32x4 64(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 80(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 96(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 112(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 128(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 144(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 160(%rcx),%zmm0 + vaesdeclast %zmm0,%zmm1,%zmm1 + vaesdeclast %zmm0,%zmm2,%zmm2 + + vpxorq %zmm9,%zmm1,%zmm1 + vpxorq %zmm10,%zmm2,%zmm2 + + + vmovdqa32 %zmm15,%zmm9 + vmovdqa32 %zmm16,%zmm10 + vmovdqu8 %zmm1,(%rsi) + vmovdqu8 %zmm2,64(%rsi){%k1} + addq $0x70,%rsi + vextracti32x4 $0x2,%zmm2,%xmm8 + vmovdqa %xmm12,%xmm0 + jmp L$_steal_cipher_amivrujEyduiFoi + +L$_done_7_remain_amivrujEyduiFoi: + + vpxorq %zmm9,%zmm1,%zmm1 + vpxorq %zmm10,%zmm2,%zmm2 + + + vbroadcasti32x4 (%rcx),%zmm0 + vpxorq %zmm0,%zmm1,%zmm1 + vpxorq %zmm0,%zmm2,%zmm2 + vbroadcasti32x4 16(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 32(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 48(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + vbroadcasti32x4 64(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 80(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 96(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 112(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 128(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 144(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 160(%rcx),%zmm0 + vaesdeclast %zmm0,%zmm1,%zmm1 + vaesdeclast %zmm0,%zmm2,%zmm2 + + vpxorq %zmm9,%zmm1,%zmm1 + vpxorq %zmm10,%zmm2,%zmm2 + + + vmovdqa32 %zmm15,%zmm9 + vmovdqa32 %zmm16,%zmm10 + vmovdqu8 %zmm1,(%rsi) + vmovdqu8 %zmm2,64(%rsi){%k1} + jmp L$_ret_amivrujEyduiFoi + +L$_remaining_num_blocks_is_6_amivrujEyduiFoi: + vmovdqu8 (%rdi),%zmm1 + vmovdqu8 64(%rdi),%ymm2 + addq $0x60,%rdi + andq $0xf,%rdx + je L$_done_6_remain_amivrujEyduiFoi + vextracti32x4 $0x1,%zmm10,%xmm12 + vextracti32x4 $0x2,%zmm10,%xmm13 + vinserti32x4 $0x1,%xmm13,%zmm10,%zmm10 + + vpxorq %zmm9,%zmm1,%zmm1 + vpxorq %zmm10,%zmm2,%zmm2 + + + vbroadcasti32x4 (%rcx),%zmm0 + vpxorq %zmm0,%zmm1,%zmm1 + vpxorq %zmm0,%zmm2,%zmm2 + vbroadcasti32x4 16(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 32(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 48(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + vbroadcasti32x4 64(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 80(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 96(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 112(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 128(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 144(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 160(%rcx),%zmm0 + vaesdeclast %zmm0,%zmm1,%zmm1 + vaesdeclast %zmm0,%zmm2,%zmm2 + + vpxorq %zmm9,%zmm1,%zmm1 + vpxorq %zmm10,%zmm2,%zmm2 + + + vmovdqa32 %zmm15,%zmm9 + vmovdqa32 %zmm16,%zmm10 + vmovdqu8 %zmm1,(%rsi) + vmovdqu8 %ymm2,64(%rsi) + addq $0x60,%rsi + vextracti32x4 $0x1,%zmm2,%xmm8 + vmovdqa %xmm12,%xmm0 + jmp L$_steal_cipher_amivrujEyduiFoi + +L$_done_6_remain_amivrujEyduiFoi: + + vpxorq %zmm9,%zmm1,%zmm1 + vpxorq %zmm10,%zmm2,%zmm2 + + + vbroadcasti32x4 (%rcx),%zmm0 + vpxorq %zmm0,%zmm1,%zmm1 + vpxorq %zmm0,%zmm2,%zmm2 + vbroadcasti32x4 16(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 32(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 48(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + vbroadcasti32x4 64(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 80(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 96(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 112(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 128(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 144(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 160(%rcx),%zmm0 + vaesdeclast %zmm0,%zmm1,%zmm1 + vaesdeclast %zmm0,%zmm2,%zmm2 + + vpxorq %zmm9,%zmm1,%zmm1 + vpxorq %zmm10,%zmm2,%zmm2 + + + vmovdqa32 %zmm15,%zmm9 + vmovdqa32 %zmm16,%zmm10 + vmovdqu8 %zmm1,(%rsi) + vmovdqu8 %ymm2,64(%rsi) + jmp L$_ret_amivrujEyduiFoi + +L$_remaining_num_blocks_is_5_amivrujEyduiFoi: + vmovdqu8 (%rdi),%zmm1 + vmovdqu 64(%rdi),%xmm2 + addq $0x50,%rdi + andq $0xf,%rdx + je L$_done_5_remain_amivrujEyduiFoi + vmovdqa %xmm10,%xmm12 + vextracti32x4 $0x1,%zmm10,%xmm10 + + vpxorq %zmm9,%zmm1,%zmm1 + vpxorq %zmm10,%zmm2,%zmm2 + + + vbroadcasti32x4 (%rcx),%zmm0 + vpxorq %zmm0,%zmm1,%zmm1 + vpxorq %zmm0,%zmm2,%zmm2 + vbroadcasti32x4 16(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 32(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 48(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + vbroadcasti32x4 64(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 80(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 96(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 112(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 128(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 144(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 160(%rcx),%zmm0 + vaesdeclast %zmm0,%zmm1,%zmm1 + vaesdeclast %zmm0,%zmm2,%zmm2 + + vpxorq %zmm9,%zmm1,%zmm1 + vpxorq %zmm10,%zmm2,%zmm2 + + + vmovdqa32 %zmm15,%zmm9 + vmovdqa32 %zmm16,%zmm10 + vmovdqu8 %zmm1,(%rsi) + vmovdqu %xmm2,64(%rsi) + addq $0x50,%rsi + vmovdqa %xmm2,%xmm8 + vmovdqa %xmm12,%xmm0 + jmp L$_steal_cipher_amivrujEyduiFoi + +L$_done_5_remain_amivrujEyduiFoi: + + vpxorq %zmm9,%zmm1,%zmm1 + vpxorq %zmm10,%zmm2,%zmm2 + + + vbroadcasti32x4 (%rcx),%zmm0 + vpxorq %zmm0,%zmm1,%zmm1 + vpxorq %zmm0,%zmm2,%zmm2 + vbroadcasti32x4 16(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 32(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 48(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + vbroadcasti32x4 64(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 80(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 96(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 112(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 128(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 144(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 160(%rcx),%zmm0 + vaesdeclast %zmm0,%zmm1,%zmm1 + vaesdeclast %zmm0,%zmm2,%zmm2 + + vpxorq %zmm9,%zmm1,%zmm1 + vpxorq %zmm10,%zmm2,%zmm2 + + + vmovdqa32 %zmm15,%zmm9 + vmovdqa32 %zmm16,%zmm10 + vmovdqu8 %zmm1,(%rsi) + vmovdqu8 %xmm2,64(%rsi) + jmp L$_ret_amivrujEyduiFoi + +L$_remaining_num_blocks_is_4_amivrujEyduiFoi: + vmovdqu8 (%rdi),%zmm1 + addq $0x40,%rdi + andq $0xf,%rdx + je L$_done_4_remain_amivrujEyduiFoi + vextracti32x4 $0x3,%zmm9,%xmm12 + vinserti32x4 $0x3,%xmm10,%zmm9,%zmm9 + + vpxorq %zmm9,%zmm1,%zmm1 + vpxorq %zmm10,%zmm2,%zmm2 + + + vbroadcasti32x4 (%rcx),%zmm0 + vpxorq %zmm0,%zmm1,%zmm1 + vpxorq %zmm0,%zmm2,%zmm2 + vbroadcasti32x4 16(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 32(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 48(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + vbroadcasti32x4 64(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 80(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 96(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 112(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 128(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 144(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 160(%rcx),%zmm0 + vaesdeclast %zmm0,%zmm1,%zmm1 + vaesdeclast %zmm0,%zmm2,%zmm2 + + vpxorq %zmm9,%zmm1,%zmm1 + vpxorq %zmm10,%zmm2,%zmm2 + + + vmovdqa32 %zmm15,%zmm9 + vmovdqa32 %zmm16,%zmm10 + vmovdqu8 %zmm1,(%rsi) + addq $0x40,%rsi + vextracti32x4 $0x3,%zmm1,%xmm8 + vmovdqa %xmm12,%xmm0 + jmp L$_steal_cipher_amivrujEyduiFoi + +L$_done_4_remain_amivrujEyduiFoi: + + vpxorq %zmm9,%zmm1,%zmm1 + vpxorq %zmm10,%zmm2,%zmm2 + + + vbroadcasti32x4 (%rcx),%zmm0 + vpxorq %zmm0,%zmm1,%zmm1 + vpxorq %zmm0,%zmm2,%zmm2 + vbroadcasti32x4 16(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 32(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 48(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + vbroadcasti32x4 64(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 80(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 96(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 112(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 128(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 144(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 160(%rcx),%zmm0 + vaesdeclast %zmm0,%zmm1,%zmm1 + vaesdeclast %zmm0,%zmm2,%zmm2 + + vpxorq %zmm9,%zmm1,%zmm1 + vpxorq %zmm10,%zmm2,%zmm2 + + + vmovdqa32 %zmm15,%zmm9 + vmovdqa32 %zmm16,%zmm10 + vmovdqu8 %zmm1,(%rsi) + jmp L$_ret_amivrujEyduiFoi + +L$_remaining_num_blocks_is_3_amivrujEyduiFoi: + vmovdqu (%rdi),%xmm1 + vmovdqu 16(%rdi),%xmm2 + vmovdqu 32(%rdi),%xmm3 + addq $0x30,%rdi + andq $0xf,%rdx + je L$_done_3_remain_amivrujEyduiFoi + vextracti32x4 $0x2,%zmm9,%xmm13 + vextracti32x4 $0x1,%zmm9,%xmm10 + vextracti32x4 $0x3,%zmm9,%xmm11 + vpxor %xmm9,%xmm1,%xmm1 + vpxor %xmm10,%xmm2,%xmm2 + vpxor %xmm11,%xmm3,%xmm3 + vmovdqu (%rcx),%xmm0 + vpxor %xmm0,%xmm1,%xmm1 + vpxor %xmm0,%xmm2,%xmm2 + vpxor %xmm0,%xmm3,%xmm3 + vmovdqu 16(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 32(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 48(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 64(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 80(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 96(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 112(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 128(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 144(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 160(%rcx),%xmm0 + vaesdeclast %xmm0,%xmm1,%xmm1 + vaesdeclast %xmm0,%xmm2,%xmm2 + vaesdeclast %xmm0,%xmm3,%xmm3 + vpxor %xmm9,%xmm1,%xmm1 + vpxor %xmm10,%xmm2,%xmm2 + vpxor %xmm11,%xmm3,%xmm3 + vmovdqu %xmm1,(%rsi) + vmovdqu %xmm2,16(%rsi) + vmovdqu %xmm3,32(%rsi) + addq $0x30,%rsi + vmovdqa %xmm3,%xmm8 + vmovdqa %xmm13,%xmm0 + jmp L$_steal_cipher_amivrujEyduiFoi + +L$_done_3_remain_amivrujEyduiFoi: + vextracti32x4 $0x1,%zmm9,%xmm10 + vextracti32x4 $0x2,%zmm9,%xmm11 + vpxor %xmm9,%xmm1,%xmm1 + vpxor %xmm10,%xmm2,%xmm2 + vpxor %xmm11,%xmm3,%xmm3 + vmovdqu (%rcx),%xmm0 + vpxor %xmm0,%xmm1,%xmm1 + vpxor %xmm0,%xmm2,%xmm2 + vpxor %xmm0,%xmm3,%xmm3 + vmovdqu 16(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 32(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 48(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 64(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 80(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 96(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 112(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 128(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 144(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 160(%rcx),%xmm0 + vaesdeclast %xmm0,%xmm1,%xmm1 + vaesdeclast %xmm0,%xmm2,%xmm2 + vaesdeclast %xmm0,%xmm3,%xmm3 + vpxor %xmm9,%xmm1,%xmm1 + vpxor %xmm10,%xmm2,%xmm2 + vpxor %xmm11,%xmm3,%xmm3 + vmovdqu %xmm1,(%rsi) + vmovdqu %xmm2,16(%rsi) + vmovdqu %xmm3,32(%rsi) + jmp L$_ret_amivrujEyduiFoi + +L$_remaining_num_blocks_is_2_amivrujEyduiFoi: + vmovdqu (%rdi),%xmm1 + vmovdqu 16(%rdi),%xmm2 + addq $0x20,%rdi + andq $0xf,%rdx + je L$_done_2_remain_amivrujEyduiFoi + vextracti32x4 $0x2,%zmm9,%xmm10 + vextracti32x4 $0x1,%zmm9,%xmm12 + vpxor %xmm9,%xmm1,%xmm1 + vpxor %xmm10,%xmm2,%xmm2 + vmovdqu (%rcx),%xmm0 + vpxor %xmm0,%xmm1,%xmm1 + vpxor %xmm0,%xmm2,%xmm2 + vmovdqu 16(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 32(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 48(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 64(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 80(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 96(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 112(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 128(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 144(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 160(%rcx),%xmm0 + vaesdeclast %xmm0,%xmm1,%xmm1 + vaesdeclast %xmm0,%xmm2,%xmm2 + vpxor %xmm9,%xmm1,%xmm1 + vpxor %xmm10,%xmm2,%xmm2 + vmovdqu %xmm1,(%rsi) + vmovdqu %xmm2,16(%rsi) + addq $0x20,%rsi + vmovdqa %xmm2,%xmm8 + vmovdqa %xmm12,%xmm0 + jmp L$_steal_cipher_amivrujEyduiFoi + +L$_done_2_remain_amivrujEyduiFoi: + vextracti32x4 $0x1,%zmm9,%xmm10 + vpxor %xmm9,%xmm1,%xmm1 + vpxor %xmm10,%xmm2,%xmm2 + vmovdqu (%rcx),%xmm0 + vpxor %xmm0,%xmm1,%xmm1 + vpxor %xmm0,%xmm2,%xmm2 + vmovdqu 16(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 32(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 48(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 64(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 80(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 96(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 112(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 128(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 144(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 160(%rcx),%xmm0 + vaesdeclast %xmm0,%xmm1,%xmm1 + vaesdeclast %xmm0,%xmm2,%xmm2 + vpxor %xmm9,%xmm1,%xmm1 + vpxor %xmm10,%xmm2,%xmm2 + vmovdqu %xmm1,(%rsi) + vmovdqu %xmm2,16(%rsi) + jmp L$_ret_amivrujEyduiFoi + +L$_remaining_num_blocks_is_1_amivrujEyduiFoi: + vmovdqu (%rdi),%xmm1 + addq $0x10,%rdi + andq $0xf,%rdx + je L$_done_1_remain_amivrujEyduiFoi + vextracti32x4 $0x1,%zmm9,%xmm11 + vpxor %xmm11,%xmm1,%xmm1 + vmovdqu (%rcx),%xmm0 + vpxor %xmm0,%xmm1,%xmm1 + vmovdqu 16(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 32(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 48(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 64(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 80(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 96(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 112(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 128(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 144(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 160(%rcx),%xmm0 + vaesdeclast %xmm0,%xmm1,%xmm1 + vpxor %xmm11,%xmm1,%xmm1 + vmovdqu %xmm1,(%rsi) + addq $0x10,%rsi + vmovdqa %xmm1,%xmm8 + vmovdqa %xmm9,%xmm0 + jmp L$_steal_cipher_amivrujEyduiFoi + +L$_done_1_remain_amivrujEyduiFoi: + vpxor %xmm9,%xmm1,%xmm1 + vmovdqu (%rcx),%xmm0 + vpxor %xmm0,%xmm1,%xmm1 + vmovdqu 16(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 32(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 48(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 64(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 80(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 96(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 112(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 128(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 144(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 160(%rcx),%xmm0 + vaesdeclast %xmm0,%xmm1,%xmm1 + vpxor %xmm9,%xmm1,%xmm1 + vmovdqu %xmm1,(%rsi) + jmp L$_ret_amivrujEyduiFoi + +L$_start_by16_amivrujEyduiFoi: + vbroadcasti32x4 (%rsp),%zmm0 + vbroadcasti32x4 shufb_15_7(%rip),%zmm8 + movq $0xaa,%r8 + kmovq %r8,%k2 + + + vpshufb %zmm8,%zmm0,%zmm1 + vpsllvq const_dq3210(%rip),%zmm0,%zmm4 + vpsrlvq const_dq5678(%rip),%zmm1,%zmm2 + vpclmulqdq $0x0,%zmm25,%zmm2,%zmm3 + vpxorq %zmm2,%zmm4,%zmm4{%k2} + vpxord %zmm4,%zmm3,%zmm9 + + + vpsllvq const_dq7654(%rip),%zmm0,%zmm5 + vpsrlvq const_dq1234(%rip),%zmm1,%zmm6 + vpclmulqdq $0x0,%zmm25,%zmm6,%zmm7 + vpxorq %zmm6,%zmm5,%zmm5{%k2} + vpxord %zmm5,%zmm7,%zmm10 + + + vpsrldq $0xf,%zmm9,%zmm13 + vpclmulqdq $0x0,%zmm25,%zmm13,%zmm14 + vpslldq $0x1,%zmm9,%zmm11 + vpxord %zmm14,%zmm11,%zmm11 + + vpsrldq $0xf,%zmm10,%zmm15 + vpclmulqdq $0x0,%zmm25,%zmm15,%zmm16 + vpslldq $0x1,%zmm10,%zmm12 + vpxord %zmm16,%zmm12,%zmm12 + +L$_main_loop_run_16_amivrujEyduiFoi: + vmovdqu8 (%rdi),%zmm1 + vmovdqu8 64(%rdi),%zmm2 + vmovdqu8 128(%rdi),%zmm3 + vmovdqu8 192(%rdi),%zmm4 + vmovdqu8 240(%rdi),%xmm5 + addq $0x100,%rdi + vpxorq %zmm9,%zmm1,%zmm1 + vpxorq %zmm10,%zmm2,%zmm2 + vpxorq %zmm11,%zmm3,%zmm3 + vpxorq %zmm12,%zmm4,%zmm4 + vbroadcasti32x4 (%rcx),%zmm0 + vpxorq %zmm0,%zmm1,%zmm1 + vpxorq %zmm0,%zmm2,%zmm2 + vpxorq %zmm0,%zmm3,%zmm3 + vpxorq %zmm0,%zmm4,%zmm4 + vpsrldq $0xf,%zmm11,%zmm13 + vpclmulqdq $0x0,%zmm25,%zmm13,%zmm14 + vpslldq $0x1,%zmm11,%zmm15 + vpxord %zmm14,%zmm15,%zmm15 + vbroadcasti32x4 16(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + vaesdec %zmm0,%zmm3,%zmm3 + vaesdec %zmm0,%zmm4,%zmm4 + vbroadcasti32x4 32(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + vaesdec %zmm0,%zmm3,%zmm3 + vaesdec %zmm0,%zmm4,%zmm4 + vbroadcasti32x4 48(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + vaesdec %zmm0,%zmm3,%zmm3 + vaesdec %zmm0,%zmm4,%zmm4 + vpsrldq $0xf,%zmm12,%zmm13 + vpclmulqdq $0x0,%zmm25,%zmm13,%zmm14 + vpslldq $0x1,%zmm12,%zmm16 + vpxord %zmm14,%zmm16,%zmm16 + vbroadcasti32x4 64(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + vaesdec %zmm0,%zmm3,%zmm3 + vaesdec %zmm0,%zmm4,%zmm4 + vbroadcasti32x4 80(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + vaesdec %zmm0,%zmm3,%zmm3 + vaesdec %zmm0,%zmm4,%zmm4 + vbroadcasti32x4 96(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + vaesdec %zmm0,%zmm3,%zmm3 + vaesdec %zmm0,%zmm4,%zmm4 + vpsrldq $0xf,%zmm15,%zmm13 + vpclmulqdq $0x0,%zmm25,%zmm13,%zmm14 + vpslldq $0x1,%zmm15,%zmm17 + vpxord %zmm14,%zmm17,%zmm17 + vbroadcasti32x4 112(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + vaesdec %zmm0,%zmm3,%zmm3 + vaesdec %zmm0,%zmm4,%zmm4 + vbroadcasti32x4 128(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + vaesdec %zmm0,%zmm3,%zmm3 + vaesdec %zmm0,%zmm4,%zmm4 + vbroadcasti32x4 144(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + vaesdec %zmm0,%zmm3,%zmm3 + vaesdec %zmm0,%zmm4,%zmm4 + vpsrldq $0xf,%zmm16,%zmm13 + vpclmulqdq $0x0,%zmm25,%zmm13,%zmm14 + vpslldq $0x1,%zmm16,%zmm18 + vpxord %zmm14,%zmm18,%zmm18 + vbroadcasti32x4 160(%rcx),%zmm0 + vaesdeclast %zmm0,%zmm1,%zmm1 + vaesdeclast %zmm0,%zmm2,%zmm2 + vaesdeclast %zmm0,%zmm3,%zmm3 + vaesdeclast %zmm0,%zmm4,%zmm4 + vpxorq %zmm9,%zmm1,%zmm1 + vpxorq %zmm10,%zmm2,%zmm2 + vpxorq %zmm11,%zmm3,%zmm3 + vpxorq %zmm12,%zmm4,%zmm4 + + vmovdqa32 %zmm15,%zmm9 + vmovdqa32 %zmm16,%zmm10 + vmovdqa32 %zmm17,%zmm11 + vmovdqa32 %zmm18,%zmm12 + vmovdqu8 %zmm1,(%rsi) + vmovdqu8 %zmm2,64(%rsi) + vmovdqu8 %zmm3,128(%rsi) + vmovdqu8 %zmm4,192(%rsi) + addq $0x100,%rsi + subq $0x100,%rdx + cmpq $0x100,%rdx + jge L$_main_loop_run_16_amivrujEyduiFoi + + cmpq $0x80,%rdx + jge L$_main_loop_run_8_amivrujEyduiFoi + jmp L$_do_n_blocks_amivrujEyduiFoi + +L$_start_by8_amivrujEyduiFoi: + + vbroadcasti32x4 (%rsp),%zmm0 + vbroadcasti32x4 shufb_15_7(%rip),%zmm8 + movq $0xaa,%r8 + kmovq %r8,%k2 + + + vpshufb %zmm8,%zmm0,%zmm1 + vpsllvq const_dq3210(%rip),%zmm0,%zmm4 + vpsrlvq const_dq5678(%rip),%zmm1,%zmm2 + vpclmulqdq $0x0,%zmm25,%zmm2,%zmm3 + vpxorq %zmm2,%zmm4,%zmm4{%k2} + vpxord %zmm4,%zmm3,%zmm9 + + + vpsllvq const_dq7654(%rip),%zmm0,%zmm5 + vpsrlvq const_dq1234(%rip),%zmm1,%zmm6 + vpclmulqdq $0x0,%zmm25,%zmm6,%zmm7 + vpxorq %zmm6,%zmm5,%zmm5{%k2} + vpxord %zmm5,%zmm7,%zmm10 + +L$_main_loop_run_8_amivrujEyduiFoi: + vmovdqu8 (%rdi),%zmm1 + vmovdqu8 64(%rdi),%zmm2 + vmovdqu8 112(%rdi),%xmm5 + addq $0x80,%rdi + + vpxorq %zmm9,%zmm1,%zmm1 + vpxorq %zmm10,%zmm2,%zmm2 + + + vbroadcasti32x4 (%rcx),%zmm0 + vpxorq %zmm0,%zmm1,%zmm1 + vpxorq %zmm0,%zmm2,%zmm2 + vpsrldq $0xf,%zmm9,%zmm13 + vpclmulqdq $0x0,%zmm25,%zmm13,%zmm14 + vpslldq $0x1,%zmm9,%zmm15 + vpxord %zmm14,%zmm15,%zmm15 + vbroadcasti32x4 16(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 32(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 48(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + vpsrldq $0xf,%zmm10,%zmm13 + vpclmulqdq $0x0,%zmm25,%zmm13,%zmm14 + vpslldq $0x1,%zmm10,%zmm16 + vpxord %zmm14,%zmm16,%zmm16 + + vbroadcasti32x4 64(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 80(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 96(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 112(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 128(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 144(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 160(%rcx),%zmm0 + vaesdeclast %zmm0,%zmm1,%zmm1 + vaesdeclast %zmm0,%zmm2,%zmm2 + + vpxorq %zmm9,%zmm1,%zmm1 + vpxorq %zmm10,%zmm2,%zmm2 + + + vmovdqa32 %zmm15,%zmm9 + vmovdqa32 %zmm16,%zmm10 + vmovdqu8 %zmm1,(%rsi) + vmovdqu8 %zmm2,64(%rsi) + addq $0x80,%rsi + subq $0x80,%rdx + cmpq $0x80,%rdx + jge L$_main_loop_run_8_amivrujEyduiFoi + jmp L$_do_n_blocks_amivrujEyduiFoi + +L$_steal_cipher_amivrujEyduiFoi: + + vmovdqa %xmm8,%xmm2 + + + leaq vpshufb_shf_table(%rip),%rax + vmovdqu (%rax,%rdx,1),%xmm10 + vpshufb %xmm10,%xmm8,%xmm8 + + + vmovdqu -16(%rdi,%rdx,1),%xmm3 + vmovdqu %xmm8,-16(%rsi,%rdx,1) + + + leaq vpshufb_shf_table(%rip),%rax + addq $16,%rax + subq %rdx,%rax + vmovdqu (%rax),%xmm10 + vpxor mask1(%rip),%xmm10,%xmm10 + vpshufb %xmm10,%xmm3,%xmm3 + + vpblendvb %xmm10,%xmm2,%xmm3,%xmm3 + + + vpxor %xmm0,%xmm3,%xmm8 + + + vpxor (%rcx),%xmm8,%xmm8 + vaesdec 16(%rcx),%xmm8,%xmm8 + vaesdec 32(%rcx),%xmm8,%xmm8 + vaesdec 48(%rcx),%xmm8,%xmm8 + vaesdec 64(%rcx),%xmm8,%xmm8 + vaesdec 80(%rcx),%xmm8,%xmm8 + vaesdec 96(%rcx),%xmm8,%xmm8 + vaesdec 112(%rcx),%xmm8,%xmm8 + vaesdec 128(%rcx),%xmm8,%xmm8 + vaesdec 144(%rcx),%xmm8,%xmm8 + vaesdeclast 160(%rcx),%xmm8,%xmm8 + + vpxor %xmm0,%xmm8,%xmm8 + +L$_done_amivrujEyduiFoi: + + vmovdqu %xmm8,-16(%rsi) +L$_ret_amivrujEyduiFoi: + movq 128(%rsp),%rbx + xorq %r8,%r8 + movq %r8,128(%rsp) + + vpxorq %zmm0,%zmm0,%zmm0 + movq %rbp,%rsp + popq %rbp + vzeroupper + .byte 0xf3,0xc3 + +L$_less_than_128_bytes_amivrujEyduiFoi: + cmpq $0x10,%rdx + jb L$_ret_amivrujEyduiFoi + + movq %rdx,%r8 + andq $0x70,%r8 + cmpq $0x60,%r8 + je L$_num_blocks_is_6_amivrujEyduiFoi + cmpq $0x50,%r8 + je L$_num_blocks_is_5_amivrujEyduiFoi + cmpq $0x40,%r8 + je L$_num_blocks_is_4_amivrujEyduiFoi + cmpq $0x30,%r8 + je L$_num_blocks_is_3_amivrujEyduiFoi + cmpq $0x20,%r8 + je L$_num_blocks_is_2_amivrujEyduiFoi + cmpq $0x10,%r8 + je L$_num_blocks_is_1_amivrujEyduiFoi + +L$_num_blocks_is_7_amivrujEyduiFoi: + vmovdqa 0(%rsp),%xmm9 + movq 0(%rsp),%rax + movq 8(%rsp),%rbx + vmovdqu 0(%rdi),%xmm1 + xorq %r11,%r11 + shlq $1,%rax + adcq %rbx,%rbx + cmovcq %r10,%r11 + xorq %r11,%rax + movq %rax,16(%rsp) + movq %rbx,16 + 8(%rsp) + vmovdqa 16(%rsp),%xmm10 + vmovdqu 16(%rdi),%xmm2 + xorq %r11,%r11 + shlq $1,%rax + adcq %rbx,%rbx + cmovcq %r10,%r11 + xorq %r11,%rax + movq %rax,32(%rsp) + movq %rbx,32 + 8(%rsp) + vmovdqa 32(%rsp),%xmm11 + vmovdqu 32(%rdi),%xmm3 + xorq %r11,%r11 + shlq $1,%rax + adcq %rbx,%rbx + cmovcq %r10,%r11 + xorq %r11,%rax + movq %rax,48(%rsp) + movq %rbx,48 + 8(%rsp) + vmovdqa 48(%rsp),%xmm12 + vmovdqu 48(%rdi),%xmm4 + xorq %r11,%r11 + shlq $1,%rax + adcq %rbx,%rbx + cmovcq %r10,%r11 + xorq %r11,%rax + movq %rax,64(%rsp) + movq %rbx,64 + 8(%rsp) + vmovdqa 64(%rsp),%xmm13 + vmovdqu 64(%rdi),%xmm5 + xorq %r11,%r11 + shlq $1,%rax + adcq %rbx,%rbx + cmovcq %r10,%r11 + xorq %r11,%rax + movq %rax,80(%rsp) + movq %rbx,80 + 8(%rsp) + vmovdqa 80(%rsp),%xmm14 + vmovdqu 80(%rdi),%xmm6 + xorq %r11,%r11 + shlq $1,%rax + adcq %rbx,%rbx + cmovcq %r10,%r11 + xorq %r11,%rax + movq %rax,96(%rsp) + movq %rbx,96 + 8(%rsp) + vmovdqa 96(%rsp),%xmm15 + vmovdqu 96(%rdi),%xmm7 + addq $0x70,%rdi + andq $0xf,%rdx + je L$_done_7_amivrujEyduiFoi + +L$_steal_cipher_7_amivrujEyduiFoi: + xorq %r11,%r11 + shlq $1,%rax + adcq %rbx,%rbx + cmovcq %r10,%r11 + xorq %r11,%rax + movq %rax,16(%rsp) + movq %rbx,24(%rsp) + vmovdqa64 %xmm15,%xmm16 + vmovdqa 16(%rsp),%xmm15 + vpxor %xmm9,%xmm1,%xmm1 + vpxor %xmm10,%xmm2,%xmm2 + vpxor %xmm11,%xmm3,%xmm3 + vpxor %xmm12,%xmm4,%xmm4 + vpxor %xmm13,%xmm5,%xmm5 + vpxor %xmm14,%xmm6,%xmm6 + vpxor %xmm15,%xmm7,%xmm7 + vmovdqu (%rcx),%xmm0 + vpxor %xmm0,%xmm1,%xmm1 + vpxor %xmm0,%xmm2,%xmm2 + vpxor %xmm0,%xmm3,%xmm3 + vpxor %xmm0,%xmm4,%xmm4 + vpxor %xmm0,%xmm5,%xmm5 + vpxor %xmm0,%xmm6,%xmm6 + vpxor %xmm0,%xmm7,%xmm7 + vmovdqu 16(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vaesdec %xmm0,%xmm7,%xmm7 + vmovdqu 32(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vaesdec %xmm0,%xmm7,%xmm7 + vmovdqu 48(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vaesdec %xmm0,%xmm7,%xmm7 + vmovdqu 64(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vaesdec %xmm0,%xmm7,%xmm7 + vmovdqu 80(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vaesdec %xmm0,%xmm7,%xmm7 + vmovdqu 96(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vaesdec %xmm0,%xmm7,%xmm7 + vmovdqu 112(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vaesdec %xmm0,%xmm7,%xmm7 + vmovdqu 128(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vaesdec %xmm0,%xmm7,%xmm7 + vmovdqu 144(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vaesdec %xmm0,%xmm7,%xmm7 + vmovdqu 160(%rcx),%xmm0 + vaesdeclast %xmm0,%xmm1,%xmm1 + vaesdeclast %xmm0,%xmm2,%xmm2 + vaesdeclast %xmm0,%xmm3,%xmm3 + vaesdeclast %xmm0,%xmm4,%xmm4 + vaesdeclast %xmm0,%xmm5,%xmm5 + vaesdeclast %xmm0,%xmm6,%xmm6 + vaesdeclast %xmm0,%xmm7,%xmm7 + vpxor %xmm9,%xmm1,%xmm1 + vpxor %xmm10,%xmm2,%xmm2 + vpxor %xmm11,%xmm3,%xmm3 + vpxor %xmm12,%xmm4,%xmm4 + vpxor %xmm13,%xmm5,%xmm5 + vpxor %xmm14,%xmm6,%xmm6 + vpxor %xmm15,%xmm7,%xmm7 + vmovdqu %xmm1,(%rsi) + vmovdqu %xmm2,16(%rsi) + vmovdqu %xmm3,32(%rsi) + vmovdqu %xmm4,48(%rsi) + vmovdqu %xmm5,64(%rsi) + vmovdqu %xmm6,80(%rsi) + addq $0x70,%rsi + vmovdqa64 %xmm16,%xmm0 + vmovdqa %xmm7,%xmm8 + jmp L$_steal_cipher_amivrujEyduiFoi + +L$_done_7_amivrujEyduiFoi: + vpxor %xmm9,%xmm1,%xmm1 + vpxor %xmm10,%xmm2,%xmm2 + vpxor %xmm11,%xmm3,%xmm3 + vpxor %xmm12,%xmm4,%xmm4 + vpxor %xmm13,%xmm5,%xmm5 + vpxor %xmm14,%xmm6,%xmm6 + vpxor %xmm15,%xmm7,%xmm7 + vmovdqu (%rcx),%xmm0 + vpxor %xmm0,%xmm1,%xmm1 + vpxor %xmm0,%xmm2,%xmm2 + vpxor %xmm0,%xmm3,%xmm3 + vpxor %xmm0,%xmm4,%xmm4 + vpxor %xmm0,%xmm5,%xmm5 + vpxor %xmm0,%xmm6,%xmm6 + vpxor %xmm0,%xmm7,%xmm7 + vmovdqu 16(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vaesdec %xmm0,%xmm7,%xmm7 + vmovdqu 32(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vaesdec %xmm0,%xmm7,%xmm7 + vmovdqu 48(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vaesdec %xmm0,%xmm7,%xmm7 + vmovdqu 64(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vaesdec %xmm0,%xmm7,%xmm7 + vmovdqu 80(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vaesdec %xmm0,%xmm7,%xmm7 + vmovdqu 96(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vaesdec %xmm0,%xmm7,%xmm7 + vmovdqu 112(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vaesdec %xmm0,%xmm7,%xmm7 + vmovdqu 128(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vaesdec %xmm0,%xmm7,%xmm7 + vmovdqu 144(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vaesdec %xmm0,%xmm7,%xmm7 + vmovdqu 160(%rcx),%xmm0 + vaesdeclast %xmm0,%xmm1,%xmm1 + vaesdeclast %xmm0,%xmm2,%xmm2 + vaesdeclast %xmm0,%xmm3,%xmm3 + vaesdeclast %xmm0,%xmm4,%xmm4 + vaesdeclast %xmm0,%xmm5,%xmm5 + vaesdeclast %xmm0,%xmm6,%xmm6 + vaesdeclast %xmm0,%xmm7,%xmm7 + vpxor %xmm9,%xmm1,%xmm1 + vpxor %xmm10,%xmm2,%xmm2 + vpxor %xmm11,%xmm3,%xmm3 + vpxor %xmm12,%xmm4,%xmm4 + vpxor %xmm13,%xmm5,%xmm5 + vpxor %xmm14,%xmm6,%xmm6 + vpxor %xmm15,%xmm7,%xmm7 + vmovdqu %xmm1,(%rsi) + vmovdqu %xmm2,16(%rsi) + vmovdqu %xmm3,32(%rsi) + vmovdqu %xmm4,48(%rsi) + vmovdqu %xmm5,64(%rsi) + vmovdqu %xmm6,80(%rsi) + addq $0x70,%rsi + vmovdqa %xmm7,%xmm8 + jmp L$_done_amivrujEyduiFoi + +L$_num_blocks_is_6_amivrujEyduiFoi: + vmovdqa 0(%rsp),%xmm9 + movq 0(%rsp),%rax + movq 8(%rsp),%rbx + vmovdqu 0(%rdi),%xmm1 + xorq %r11,%r11 + shlq $1,%rax + adcq %rbx,%rbx + cmovcq %r10,%r11 + xorq %r11,%rax + movq %rax,16(%rsp) + movq %rbx,16 + 8(%rsp) + vmovdqa 16(%rsp),%xmm10 + vmovdqu 16(%rdi),%xmm2 + xorq %r11,%r11 + shlq $1,%rax + adcq %rbx,%rbx + cmovcq %r10,%r11 + xorq %r11,%rax + movq %rax,32(%rsp) + movq %rbx,32 + 8(%rsp) + vmovdqa 32(%rsp),%xmm11 + vmovdqu 32(%rdi),%xmm3 + xorq %r11,%r11 + shlq $1,%rax + adcq %rbx,%rbx + cmovcq %r10,%r11 + xorq %r11,%rax + movq %rax,48(%rsp) + movq %rbx,48 + 8(%rsp) + vmovdqa 48(%rsp),%xmm12 + vmovdqu 48(%rdi),%xmm4 + xorq %r11,%r11 + shlq $1,%rax + adcq %rbx,%rbx + cmovcq %r10,%r11 + xorq %r11,%rax + movq %rax,64(%rsp) + movq %rbx,64 + 8(%rsp) + vmovdqa 64(%rsp),%xmm13 + vmovdqu 64(%rdi),%xmm5 + xorq %r11,%r11 + shlq $1,%rax + adcq %rbx,%rbx + cmovcq %r10,%r11 + xorq %r11,%rax + movq %rax,80(%rsp) + movq %rbx,80 + 8(%rsp) + vmovdqa 80(%rsp),%xmm14 + vmovdqu 80(%rdi),%xmm6 + addq $0x60,%rdi + andq $0xf,%rdx + je L$_done_6_amivrujEyduiFoi + +L$_steal_cipher_6_amivrujEyduiFoi: + xorq %r11,%r11 + shlq $1,%rax + adcq %rbx,%rbx + cmovcq %r10,%r11 + xorq %r11,%rax + movq %rax,16(%rsp) + movq %rbx,24(%rsp) + vmovdqa64 %xmm14,%xmm15 + vmovdqa 16(%rsp),%xmm14 + vpxor %xmm9,%xmm1,%xmm1 + vpxor %xmm10,%xmm2,%xmm2 + vpxor %xmm11,%xmm3,%xmm3 + vpxor %xmm12,%xmm4,%xmm4 + vpxor %xmm13,%xmm5,%xmm5 + vpxor %xmm14,%xmm6,%xmm6 + vmovdqu (%rcx),%xmm0 + vpxor %xmm0,%xmm1,%xmm1 + vpxor %xmm0,%xmm2,%xmm2 + vpxor %xmm0,%xmm3,%xmm3 + vpxor %xmm0,%xmm4,%xmm4 + vpxor %xmm0,%xmm5,%xmm5 + vpxor %xmm0,%xmm6,%xmm6 + vmovdqu 16(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vmovdqu 32(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vmovdqu 48(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vmovdqu 64(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vmovdqu 80(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vmovdqu 96(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vmovdqu 112(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vmovdqu 128(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vmovdqu 144(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vmovdqu 160(%rcx),%xmm0 + vaesdeclast %xmm0,%xmm1,%xmm1 + vaesdeclast %xmm0,%xmm2,%xmm2 + vaesdeclast %xmm0,%xmm3,%xmm3 + vaesdeclast %xmm0,%xmm4,%xmm4 + vaesdeclast %xmm0,%xmm5,%xmm5 + vaesdeclast %xmm0,%xmm6,%xmm6 + vpxor %xmm9,%xmm1,%xmm1 + vpxor %xmm10,%xmm2,%xmm2 + vpxor %xmm11,%xmm3,%xmm3 + vpxor %xmm12,%xmm4,%xmm4 + vpxor %xmm13,%xmm5,%xmm5 + vpxor %xmm14,%xmm6,%xmm6 + vmovdqu %xmm1,(%rsi) + vmovdqu %xmm2,16(%rsi) + vmovdqu %xmm3,32(%rsi) + vmovdqu %xmm4,48(%rsi) + vmovdqu %xmm5,64(%rsi) + addq $0x60,%rsi + vmovdqa %xmm15,%xmm0 + vmovdqa %xmm6,%xmm8 + jmp L$_steal_cipher_amivrujEyduiFoi + +L$_done_6_amivrujEyduiFoi: + vpxor %xmm9,%xmm1,%xmm1 + vpxor %xmm10,%xmm2,%xmm2 + vpxor %xmm11,%xmm3,%xmm3 + vpxor %xmm12,%xmm4,%xmm4 + vpxor %xmm13,%xmm5,%xmm5 + vpxor %xmm14,%xmm6,%xmm6 + vmovdqu (%rcx),%xmm0 + vpxor %xmm0,%xmm1,%xmm1 + vpxor %xmm0,%xmm2,%xmm2 + vpxor %xmm0,%xmm3,%xmm3 + vpxor %xmm0,%xmm4,%xmm4 + vpxor %xmm0,%xmm5,%xmm5 + vpxor %xmm0,%xmm6,%xmm6 + vmovdqu 16(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vmovdqu 32(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vmovdqu 48(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vmovdqu 64(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vmovdqu 80(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vmovdqu 96(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vmovdqu 112(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vmovdqu 128(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vmovdqu 144(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vmovdqu 160(%rcx),%xmm0 + vaesdeclast %xmm0,%xmm1,%xmm1 + vaesdeclast %xmm0,%xmm2,%xmm2 + vaesdeclast %xmm0,%xmm3,%xmm3 + vaesdeclast %xmm0,%xmm4,%xmm4 + vaesdeclast %xmm0,%xmm5,%xmm5 + vaesdeclast %xmm0,%xmm6,%xmm6 + vpxor %xmm9,%xmm1,%xmm1 + vpxor %xmm10,%xmm2,%xmm2 + vpxor %xmm11,%xmm3,%xmm3 + vpxor %xmm12,%xmm4,%xmm4 + vpxor %xmm13,%xmm5,%xmm5 + vpxor %xmm14,%xmm6,%xmm6 + vmovdqu %xmm1,(%rsi) + vmovdqu %xmm2,16(%rsi) + vmovdqu %xmm3,32(%rsi) + vmovdqu %xmm4,48(%rsi) + vmovdqu %xmm5,64(%rsi) + addq $0x60,%rsi + vmovdqa %xmm6,%xmm8 + jmp L$_done_amivrujEyduiFoi + +L$_num_blocks_is_5_amivrujEyduiFoi: + vmovdqa 0(%rsp),%xmm9 + movq 0(%rsp),%rax + movq 8(%rsp),%rbx + vmovdqu 0(%rdi),%xmm1 + xorq %r11,%r11 + shlq $1,%rax + adcq %rbx,%rbx + cmovcq %r10,%r11 + xorq %r11,%rax + movq %rax,16(%rsp) + movq %rbx,16 + 8(%rsp) + vmovdqa 16(%rsp),%xmm10 + vmovdqu 16(%rdi),%xmm2 + xorq %r11,%r11 + shlq $1,%rax + adcq %rbx,%rbx + cmovcq %r10,%r11 + xorq %r11,%rax + movq %rax,32(%rsp) + movq %rbx,32 + 8(%rsp) + vmovdqa 32(%rsp),%xmm11 + vmovdqu 32(%rdi),%xmm3 + xorq %r11,%r11 + shlq $1,%rax + adcq %rbx,%rbx + cmovcq %r10,%r11 + xorq %r11,%rax + movq %rax,48(%rsp) + movq %rbx,48 + 8(%rsp) + vmovdqa 48(%rsp),%xmm12 + vmovdqu 48(%rdi),%xmm4 + xorq %r11,%r11 + shlq $1,%rax + adcq %rbx,%rbx + cmovcq %r10,%r11 + xorq %r11,%rax + movq %rax,64(%rsp) + movq %rbx,64 + 8(%rsp) + vmovdqa 64(%rsp),%xmm13 + vmovdqu 64(%rdi),%xmm5 + addq $0x50,%rdi + andq $0xf,%rdx + je L$_done_5_amivrujEyduiFoi + +L$_steal_cipher_5_amivrujEyduiFoi: + xorq %r11,%r11 + shlq $1,%rax + adcq %rbx,%rbx + cmovcq %r10,%r11 + xorq %r11,%rax + movq %rax,16(%rsp) + movq %rbx,24(%rsp) + vmovdqa64 %xmm13,%xmm14 + vmovdqa 16(%rsp),%xmm13 + vpxor %xmm9,%xmm1,%xmm1 + vpxor %xmm10,%xmm2,%xmm2 + vpxor %xmm11,%xmm3,%xmm3 + vpxor %xmm12,%xmm4,%xmm4 + vpxor %xmm13,%xmm5,%xmm5 + vmovdqu (%rcx),%xmm0 + vpxor %xmm0,%xmm1,%xmm1 + vpxor %xmm0,%xmm2,%xmm2 + vpxor %xmm0,%xmm3,%xmm3 + vpxor %xmm0,%xmm4,%xmm4 + vpxor %xmm0,%xmm5,%xmm5 + vmovdqu 16(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vmovdqu 32(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vmovdqu 48(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vmovdqu 64(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vmovdqu 80(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vmovdqu 96(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vmovdqu 112(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vmovdqu 128(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vmovdqu 144(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vmovdqu 160(%rcx),%xmm0 + vaesdeclast %xmm0,%xmm1,%xmm1 + vaesdeclast %xmm0,%xmm2,%xmm2 + vaesdeclast %xmm0,%xmm3,%xmm3 + vaesdeclast %xmm0,%xmm4,%xmm4 + vaesdeclast %xmm0,%xmm5,%xmm5 + vpxor %xmm9,%xmm1,%xmm1 + vpxor %xmm10,%xmm2,%xmm2 + vpxor %xmm11,%xmm3,%xmm3 + vpxor %xmm12,%xmm4,%xmm4 + vpxor %xmm13,%xmm5,%xmm5 + vmovdqu %xmm1,(%rsi) + vmovdqu %xmm2,16(%rsi) + vmovdqu %xmm3,32(%rsi) + vmovdqu %xmm4,48(%rsi) + addq $0x50,%rsi + vmovdqa %xmm14,%xmm0 + vmovdqa %xmm5,%xmm8 + jmp L$_steal_cipher_amivrujEyduiFoi + +L$_done_5_amivrujEyduiFoi: + vpxor %xmm9,%xmm1,%xmm1 + vpxor %xmm10,%xmm2,%xmm2 + vpxor %xmm11,%xmm3,%xmm3 + vpxor %xmm12,%xmm4,%xmm4 + vpxor %xmm13,%xmm5,%xmm5 + vmovdqu (%rcx),%xmm0 + vpxor %xmm0,%xmm1,%xmm1 + vpxor %xmm0,%xmm2,%xmm2 + vpxor %xmm0,%xmm3,%xmm3 + vpxor %xmm0,%xmm4,%xmm4 + vpxor %xmm0,%xmm5,%xmm5 + vmovdqu 16(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vmovdqu 32(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vmovdqu 48(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vmovdqu 64(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vmovdqu 80(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vmovdqu 96(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vmovdqu 112(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vmovdqu 128(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vmovdqu 144(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vmovdqu 160(%rcx),%xmm0 + vaesdeclast %xmm0,%xmm1,%xmm1 + vaesdeclast %xmm0,%xmm2,%xmm2 + vaesdeclast %xmm0,%xmm3,%xmm3 + vaesdeclast %xmm0,%xmm4,%xmm4 + vaesdeclast %xmm0,%xmm5,%xmm5 + vpxor %xmm9,%xmm1,%xmm1 + vpxor %xmm10,%xmm2,%xmm2 + vpxor %xmm11,%xmm3,%xmm3 + vpxor %xmm12,%xmm4,%xmm4 + vpxor %xmm13,%xmm5,%xmm5 + vmovdqu %xmm1,(%rsi) + vmovdqu %xmm2,16(%rsi) + vmovdqu %xmm3,32(%rsi) + vmovdqu %xmm4,48(%rsi) + addq $0x50,%rsi + vmovdqa %xmm5,%xmm8 + jmp L$_done_amivrujEyduiFoi + +L$_num_blocks_is_4_amivrujEyduiFoi: + vmovdqa 0(%rsp),%xmm9 + movq 0(%rsp),%rax + movq 8(%rsp),%rbx + vmovdqu 0(%rdi),%xmm1 + xorq %r11,%r11 + shlq $1,%rax + adcq %rbx,%rbx + cmovcq %r10,%r11 + xorq %r11,%rax + movq %rax,16(%rsp) + movq %rbx,16 + 8(%rsp) + vmovdqa 16(%rsp),%xmm10 + vmovdqu 16(%rdi),%xmm2 + xorq %r11,%r11 + shlq $1,%rax + adcq %rbx,%rbx + cmovcq %r10,%r11 + xorq %r11,%rax + movq %rax,32(%rsp) + movq %rbx,32 + 8(%rsp) + vmovdqa 32(%rsp),%xmm11 + vmovdqu 32(%rdi),%xmm3 + xorq %r11,%r11 + shlq $1,%rax + adcq %rbx,%rbx + cmovcq %r10,%r11 + xorq %r11,%rax + movq %rax,48(%rsp) + movq %rbx,48 + 8(%rsp) + vmovdqa 48(%rsp),%xmm12 + vmovdqu 48(%rdi),%xmm4 + addq $0x40,%rdi + andq $0xf,%rdx + je L$_done_4_amivrujEyduiFoi + +L$_steal_cipher_4_amivrujEyduiFoi: + xorq %r11,%r11 + shlq $1,%rax + adcq %rbx,%rbx + cmovcq %r10,%r11 + xorq %r11,%rax + movq %rax,16(%rsp) + movq %rbx,24(%rsp) + vmovdqa64 %xmm12,%xmm13 + vmovdqa 16(%rsp),%xmm12 + vpxor %xmm9,%xmm1,%xmm1 + vpxor %xmm10,%xmm2,%xmm2 + vpxor %xmm11,%xmm3,%xmm3 + vpxor %xmm12,%xmm4,%xmm4 + vmovdqu (%rcx),%xmm0 + vpxor %xmm0,%xmm1,%xmm1 + vpxor %xmm0,%xmm2,%xmm2 + vpxor %xmm0,%xmm3,%xmm3 + vpxor %xmm0,%xmm4,%xmm4 + vmovdqu 16(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vmovdqu 32(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vmovdqu 48(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vmovdqu 64(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vmovdqu 80(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vmovdqu 96(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vmovdqu 112(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vmovdqu 128(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vmovdqu 144(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vmovdqu 160(%rcx),%xmm0 + vaesdeclast %xmm0,%xmm1,%xmm1 + vaesdeclast %xmm0,%xmm2,%xmm2 + vaesdeclast %xmm0,%xmm3,%xmm3 + vaesdeclast %xmm0,%xmm4,%xmm4 + vpxor %xmm9,%xmm1,%xmm1 + vpxor %xmm10,%xmm2,%xmm2 + vpxor %xmm11,%xmm3,%xmm3 + vpxor %xmm12,%xmm4,%xmm4 + vmovdqu %xmm1,(%rsi) + vmovdqu %xmm2,16(%rsi) + vmovdqu %xmm3,32(%rsi) + addq $0x40,%rsi + vmovdqa %xmm13,%xmm0 + vmovdqa %xmm4,%xmm8 + jmp L$_steal_cipher_amivrujEyduiFoi + +L$_done_4_amivrujEyduiFoi: + vpxor %xmm9,%xmm1,%xmm1 + vpxor %xmm10,%xmm2,%xmm2 + vpxor %xmm11,%xmm3,%xmm3 + vpxor %xmm12,%xmm4,%xmm4 + vmovdqu (%rcx),%xmm0 + vpxor %xmm0,%xmm1,%xmm1 + vpxor %xmm0,%xmm2,%xmm2 + vpxor %xmm0,%xmm3,%xmm3 + vpxor %xmm0,%xmm4,%xmm4 + vmovdqu 16(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vmovdqu 32(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vmovdqu 48(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vmovdqu 64(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vmovdqu 80(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vmovdqu 96(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vmovdqu 112(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vmovdqu 128(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vmovdqu 144(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vmovdqu 160(%rcx),%xmm0 + vaesdeclast %xmm0,%xmm1,%xmm1 + vaesdeclast %xmm0,%xmm2,%xmm2 + vaesdeclast %xmm0,%xmm3,%xmm3 + vaesdeclast %xmm0,%xmm4,%xmm4 + vpxor %xmm9,%xmm1,%xmm1 + vpxor %xmm10,%xmm2,%xmm2 + vpxor %xmm11,%xmm3,%xmm3 + vpxor %xmm12,%xmm4,%xmm4 + vmovdqu %xmm1,(%rsi) + vmovdqu %xmm2,16(%rsi) + vmovdqu %xmm3,32(%rsi) + addq $0x40,%rsi + vmovdqa %xmm4,%xmm8 + jmp L$_done_amivrujEyduiFoi + +L$_num_blocks_is_3_amivrujEyduiFoi: + vmovdqa 0(%rsp),%xmm9 + movq 0(%rsp),%rax + movq 8(%rsp),%rbx + vmovdqu 0(%rdi),%xmm1 + xorq %r11,%r11 + shlq $1,%rax + adcq %rbx,%rbx + cmovcq %r10,%r11 + xorq %r11,%rax + movq %rax,16(%rsp) + movq %rbx,16 + 8(%rsp) + vmovdqa 16(%rsp),%xmm10 + vmovdqu 16(%rdi),%xmm2 + xorq %r11,%r11 + shlq $1,%rax + adcq %rbx,%rbx + cmovcq %r10,%r11 + xorq %r11,%rax + movq %rax,32(%rsp) + movq %rbx,32 + 8(%rsp) + vmovdqa 32(%rsp),%xmm11 + vmovdqu 32(%rdi),%xmm3 + addq $0x30,%rdi + andq $0xf,%rdx + je L$_done_3_amivrujEyduiFoi + +L$_steal_cipher_3_amivrujEyduiFoi: + xorq %r11,%r11 + shlq $1,%rax + adcq %rbx,%rbx + cmovcq %r10,%r11 + xorq %r11,%rax + movq %rax,16(%rsp) + movq %rbx,24(%rsp) + vmovdqa64 %xmm11,%xmm12 + vmovdqa 16(%rsp),%xmm11 + vpxor %xmm9,%xmm1,%xmm1 + vpxor %xmm10,%xmm2,%xmm2 + vpxor %xmm11,%xmm3,%xmm3 + vmovdqu (%rcx),%xmm0 + vpxor %xmm0,%xmm1,%xmm1 + vpxor %xmm0,%xmm2,%xmm2 + vpxor %xmm0,%xmm3,%xmm3 + vmovdqu 16(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 32(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 48(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 64(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 80(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 96(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 112(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 128(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 144(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 160(%rcx),%xmm0 + vaesdeclast %xmm0,%xmm1,%xmm1 + vaesdeclast %xmm0,%xmm2,%xmm2 + vaesdeclast %xmm0,%xmm3,%xmm3 + vpxor %xmm9,%xmm1,%xmm1 + vpxor %xmm10,%xmm2,%xmm2 + vpxor %xmm11,%xmm3,%xmm3 + vmovdqu %xmm1,(%rsi) + vmovdqu %xmm2,16(%rsi) + addq $0x30,%rsi + vmovdqa %xmm12,%xmm0 + vmovdqa %xmm3,%xmm8 + jmp L$_steal_cipher_amivrujEyduiFoi + +L$_done_3_amivrujEyduiFoi: + vpxor %xmm9,%xmm1,%xmm1 + vpxor %xmm10,%xmm2,%xmm2 + vpxor %xmm11,%xmm3,%xmm3 + vmovdqu (%rcx),%xmm0 + vpxor %xmm0,%xmm1,%xmm1 + vpxor %xmm0,%xmm2,%xmm2 + vpxor %xmm0,%xmm3,%xmm3 + vmovdqu 16(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 32(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 48(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 64(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 80(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 96(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 112(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 128(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 144(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 160(%rcx),%xmm0 + vaesdeclast %xmm0,%xmm1,%xmm1 + vaesdeclast %xmm0,%xmm2,%xmm2 + vaesdeclast %xmm0,%xmm3,%xmm3 + vpxor %xmm9,%xmm1,%xmm1 + vpxor %xmm10,%xmm2,%xmm2 + vpxor %xmm11,%xmm3,%xmm3 + vmovdqu %xmm1,(%rsi) + vmovdqu %xmm2,16(%rsi) + addq $0x30,%rsi + vmovdqa %xmm3,%xmm8 + jmp L$_done_amivrujEyduiFoi + +L$_num_blocks_is_2_amivrujEyduiFoi: + vmovdqa 0(%rsp),%xmm9 + movq 0(%rsp),%rax + movq 8(%rsp),%rbx + vmovdqu 0(%rdi),%xmm1 + xorq %r11,%r11 + shlq $1,%rax + adcq %rbx,%rbx + cmovcq %r10,%r11 + xorq %r11,%rax + movq %rax,16(%rsp) + movq %rbx,16 + 8(%rsp) + vmovdqa 16(%rsp),%xmm10 + vmovdqu 16(%rdi),%xmm2 + addq $0x20,%rdi + andq $0xf,%rdx + je L$_done_2_amivrujEyduiFoi + +L$_steal_cipher_2_amivrujEyduiFoi: + xorq %r11,%r11 + shlq $1,%rax + adcq %rbx,%rbx + cmovcq %r10,%r11 + xorq %r11,%rax + movq %rax,16(%rsp) + movq %rbx,24(%rsp) + vmovdqa64 %xmm10,%xmm11 + vmovdqa 16(%rsp),%xmm10 + vpxor %xmm9,%xmm1,%xmm1 + vpxor %xmm10,%xmm2,%xmm2 + vmovdqu (%rcx),%xmm0 + vpxor %xmm0,%xmm1,%xmm1 + vpxor %xmm0,%xmm2,%xmm2 + vmovdqu 16(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 32(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 48(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 64(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 80(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 96(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 112(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 128(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 144(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 160(%rcx),%xmm0 + vaesdeclast %xmm0,%xmm1,%xmm1 + vaesdeclast %xmm0,%xmm2,%xmm2 + vpxor %xmm9,%xmm1,%xmm1 + vpxor %xmm10,%xmm2,%xmm2 + vmovdqu %xmm1,(%rsi) + addq $0x20,%rsi + vmovdqa %xmm11,%xmm0 + vmovdqa %xmm2,%xmm8 + jmp L$_steal_cipher_amivrujEyduiFoi + +L$_done_2_amivrujEyduiFoi: + vpxor %xmm9,%xmm1,%xmm1 + vpxor %xmm10,%xmm2,%xmm2 + vmovdqu (%rcx),%xmm0 + vpxor %xmm0,%xmm1,%xmm1 + vpxor %xmm0,%xmm2,%xmm2 + vmovdqu 16(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 32(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 48(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 64(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 80(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 96(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 112(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 128(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 144(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 160(%rcx),%xmm0 + vaesdeclast %xmm0,%xmm1,%xmm1 + vaesdeclast %xmm0,%xmm2,%xmm2 + vpxor %xmm9,%xmm1,%xmm1 + vpxor %xmm10,%xmm2,%xmm2 + vmovdqu %xmm1,(%rsi) + addq $0x20,%rsi + vmovdqa %xmm2,%xmm8 + jmp L$_done_amivrujEyduiFoi + +L$_num_blocks_is_1_amivrujEyduiFoi: + vmovdqa 0(%rsp),%xmm9 + movq 0(%rsp),%rax + movq 8(%rsp),%rbx + vmovdqu 0(%rdi),%xmm1 + addq $0x10,%rdi + andq $0xf,%rdx + je L$_done_1_amivrujEyduiFoi + +L$_steal_cipher_1_amivrujEyduiFoi: + xorq %r11,%r11 + shlq $1,%rax + adcq %rbx,%rbx + cmovcq %r10,%r11 + xorq %r11,%rax + movq %rax,16(%rsp) + movq %rbx,24(%rsp) + vmovdqa64 %xmm9,%xmm10 + vmovdqa 16(%rsp),%xmm9 + vpxor %xmm9,%xmm1,%xmm1 + vmovdqu (%rcx),%xmm0 + vpxor %xmm0,%xmm1,%xmm1 + vmovdqu 16(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 32(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 48(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 64(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 80(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 96(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 112(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 128(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 144(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 160(%rcx),%xmm0 + vaesdeclast %xmm0,%xmm1,%xmm1 + vpxor %xmm9,%xmm1,%xmm1 + addq $0x10,%rsi + vmovdqa %xmm10,%xmm0 + vmovdqa %xmm1,%xmm8 + jmp L$_steal_cipher_amivrujEyduiFoi + +L$_done_1_amivrujEyduiFoi: + vpxor %xmm9,%xmm1,%xmm1 + vmovdqu (%rcx),%xmm0 + vpxor %xmm0,%xmm1,%xmm1 + vmovdqu 16(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 32(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 48(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 64(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 80(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 96(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 112(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 128(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 144(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 160(%rcx),%xmm0 + vaesdeclast %xmm0,%xmm1,%xmm1 + vpxor %xmm9,%xmm1,%xmm1 + addq $0x10,%rsi + vmovdqa %xmm1,%xmm8 + jmp L$_done_amivrujEyduiFoi + +.globl _aesni_xts_256_encrypt_avx512 +.private_extern _aesni_xts_256_encrypt_avx512 + +.p2align 5 +_aesni_xts_256_encrypt_avx512: + +.byte 243,15,30,250 + pushq %rbp + movq %rsp,%rbp + subq $136,%rsp + andq $0xffffffffffffffc0,%rsp + movq %rbx,128(%rsp) + movq $0x87,%r10 + vmovdqu (%r9),%xmm1 + vpxor (%r8),%xmm1,%xmm1 + vaesenc 16(%r8),%xmm1,%xmm1 + vaesenc 32(%r8),%xmm1,%xmm1 + vaesenc 48(%r8),%xmm1,%xmm1 + vaesenc 64(%r8),%xmm1,%xmm1 + vaesenc 80(%r8),%xmm1,%xmm1 + vaesenc 96(%r8),%xmm1,%xmm1 + vaesenc 112(%r8),%xmm1,%xmm1 + vaesenc 128(%r8),%xmm1,%xmm1 + vaesenc 144(%r8),%xmm1,%xmm1 + vaesenc 160(%r8),%xmm1,%xmm1 + vaesenc 176(%r8),%xmm1,%xmm1 + vaesenc 192(%r8),%xmm1,%xmm1 + vaesenc 208(%r8),%xmm1,%xmm1 + vaesenclast 224(%r8),%xmm1,%xmm1 + vmovdqa %xmm1,(%rsp) + + cmpq $0x80,%rdx + jl L$_less_than_128_bytes_wcpqaDvsGlbjGoe + vpbroadcastq %r10,%zmm25 + cmpq $0x100,%rdx + jge L$_start_by16_wcpqaDvsGlbjGoe + cmpq $0x80,%rdx + jge L$_start_by8_wcpqaDvsGlbjGoe + +L$_do_n_blocks_wcpqaDvsGlbjGoe: + cmpq $0x0,%rdx + je L$_ret_wcpqaDvsGlbjGoe + cmpq $0x70,%rdx + jge L$_remaining_num_blocks_is_7_wcpqaDvsGlbjGoe + cmpq $0x60,%rdx + jge L$_remaining_num_blocks_is_6_wcpqaDvsGlbjGoe + cmpq $0x50,%rdx + jge L$_remaining_num_blocks_is_5_wcpqaDvsGlbjGoe + cmpq $0x40,%rdx + jge L$_remaining_num_blocks_is_4_wcpqaDvsGlbjGoe + cmpq $0x30,%rdx + jge L$_remaining_num_blocks_is_3_wcpqaDvsGlbjGoe + cmpq $0x20,%rdx + jge L$_remaining_num_blocks_is_2_wcpqaDvsGlbjGoe + cmpq $0x10,%rdx + jge L$_remaining_num_blocks_is_1_wcpqaDvsGlbjGoe + vmovdqa %xmm0,%xmm8 + vmovdqa %xmm9,%xmm0 + jmp L$_steal_cipher_wcpqaDvsGlbjGoe + +L$_remaining_num_blocks_is_7_wcpqaDvsGlbjGoe: + movq $0x0000ffffffffffff,%r8 + kmovq %r8,%k1 + vmovdqu8 (%rdi),%zmm1 + vmovdqu8 64(%rdi),%zmm2{%k1} + addq $0x70,%rdi + vbroadcasti32x4 (%rcx),%zmm0 + vpternlogq $0x96,%zmm0,%zmm9,%zmm1 + vpternlogq $0x96,%zmm0,%zmm10,%zmm2 + vbroadcasti32x4 16(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 32(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 48(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + vbroadcasti32x4 64(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 80(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 96(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 112(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 128(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 144(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + vbroadcasti32x4 160(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 176(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 192(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 208(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 224(%rcx),%zmm0 + vaesenclast %zmm0,%zmm1,%zmm1 + vaesenclast %zmm0,%zmm2,%zmm2 + vpxorq %zmm9,%zmm1,%zmm1 + vpxorq %zmm10,%zmm2,%zmm2 + vmovdqu8 %zmm1,(%rsi) + vmovdqu8 %zmm2,64(%rsi){%k1} + addq $0x70,%rsi + vextracti32x4 $0x2,%zmm2,%xmm8 + vextracti32x4 $0x3,%zmm10,%xmm0 + andq $0xf,%rdx + je L$_ret_wcpqaDvsGlbjGoe + jmp L$_steal_cipher_wcpqaDvsGlbjGoe + +L$_remaining_num_blocks_is_6_wcpqaDvsGlbjGoe: + vmovdqu8 (%rdi),%zmm1 + vmovdqu8 64(%rdi),%ymm2 + addq $0x60,%rdi + vbroadcasti32x4 (%rcx),%zmm0 + vpternlogq $0x96,%zmm0,%zmm9,%zmm1 + vpternlogq $0x96,%zmm0,%zmm10,%zmm2 + vbroadcasti32x4 16(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 32(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 48(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + vbroadcasti32x4 64(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 80(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 96(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 112(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 128(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 144(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + vbroadcasti32x4 160(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 176(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 192(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 208(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 224(%rcx),%zmm0 + vaesenclast %zmm0,%zmm1,%zmm1 + vaesenclast %zmm0,%zmm2,%zmm2 + vpxorq %zmm9,%zmm1,%zmm1 + vpxorq %zmm10,%zmm2,%zmm2 + vmovdqu8 %zmm1,(%rsi) + vmovdqu8 %ymm2,64(%rsi) + addq $0x60,%rsi + vextracti32x4 $0x1,%zmm2,%xmm8 + vextracti32x4 $0x2,%zmm10,%xmm0 + andq $0xf,%rdx + je L$_ret_wcpqaDvsGlbjGoe + jmp L$_steal_cipher_wcpqaDvsGlbjGoe + +L$_remaining_num_blocks_is_5_wcpqaDvsGlbjGoe: + vmovdqu8 (%rdi),%zmm1 + vmovdqu 64(%rdi),%xmm2 + addq $0x50,%rdi + vbroadcasti32x4 (%rcx),%zmm0 + vpternlogq $0x96,%zmm0,%zmm9,%zmm1 + vpternlogq $0x96,%zmm0,%zmm10,%zmm2 + vbroadcasti32x4 16(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 32(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 48(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + vbroadcasti32x4 64(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 80(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 96(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 112(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 128(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 144(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + vbroadcasti32x4 160(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 176(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 192(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 208(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 224(%rcx),%zmm0 + vaesenclast %zmm0,%zmm1,%zmm1 + vaesenclast %zmm0,%zmm2,%zmm2 + vpxorq %zmm9,%zmm1,%zmm1 + vpxorq %zmm10,%zmm2,%zmm2 + vmovdqu8 %zmm1,(%rsi) + vmovdqu %xmm2,64(%rsi) + addq $0x50,%rsi + vmovdqa %xmm2,%xmm8 + vextracti32x4 $0x1,%zmm10,%xmm0 + andq $0xf,%rdx + je L$_ret_wcpqaDvsGlbjGoe + jmp L$_steal_cipher_wcpqaDvsGlbjGoe + +L$_remaining_num_blocks_is_4_wcpqaDvsGlbjGoe: + vmovdqu8 (%rdi),%zmm1 + addq $0x40,%rdi + vbroadcasti32x4 (%rcx),%zmm0 + vpternlogq $0x96,%zmm0,%zmm9,%zmm1 + vbroadcasti32x4 16(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 32(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 48(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 64(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 80(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 96(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 112(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 128(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 144(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 160(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 176(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 192(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 208(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 224(%rcx),%zmm0 + vaesenclast %zmm0,%zmm1,%zmm1 + vpxorq %zmm9,%zmm1,%zmm1 + vmovdqu8 %zmm1,(%rsi) + addq $0x40,%rsi + vextracti32x4 $0x3,%zmm1,%xmm8 + vmovdqa64 %xmm10,%xmm0 + andq $0xf,%rdx + je L$_ret_wcpqaDvsGlbjGoe + jmp L$_steal_cipher_wcpqaDvsGlbjGoe +L$_remaining_num_blocks_is_3_wcpqaDvsGlbjGoe: + movq $-1,%r8 + shrq $0x10,%r8 + kmovq %r8,%k1 + vmovdqu8 (%rdi),%zmm1{%k1} + addq $0x30,%rdi + vbroadcasti32x4 (%rcx),%zmm0 + vpternlogq $0x96,%zmm0,%zmm9,%zmm1 + vbroadcasti32x4 16(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 32(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 48(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 64(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 80(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 96(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 112(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 128(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 144(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 160(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 176(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 192(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 208(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 224(%rcx),%zmm0 + vaesenclast %zmm0,%zmm1,%zmm1 + vpxorq %zmm9,%zmm1,%zmm1 + vmovdqu8 %zmm1,(%rsi){%k1} + addq $0x30,%rsi + vextracti32x4 $0x2,%zmm1,%xmm8 + vextracti32x4 $0x3,%zmm9,%xmm0 + andq $0xf,%rdx + je L$_ret_wcpqaDvsGlbjGoe + jmp L$_steal_cipher_wcpqaDvsGlbjGoe +L$_remaining_num_blocks_is_2_wcpqaDvsGlbjGoe: + vmovdqu8 (%rdi),%ymm1 + addq $0x20,%rdi + vbroadcasti32x4 (%rcx),%ymm0 + vpternlogq $0x96,%ymm0,%ymm9,%ymm1 + vbroadcasti32x4 16(%rcx),%ymm0 + vaesenc %ymm0,%ymm1,%ymm1 + vbroadcasti32x4 32(%rcx),%ymm0 + vaesenc %ymm0,%ymm1,%ymm1 + vbroadcasti32x4 48(%rcx),%ymm0 + vaesenc %ymm0,%ymm1,%ymm1 + vbroadcasti32x4 64(%rcx),%ymm0 + vaesenc %ymm0,%ymm1,%ymm1 + vbroadcasti32x4 80(%rcx),%ymm0 + vaesenc %ymm0,%ymm1,%ymm1 + vbroadcasti32x4 96(%rcx),%ymm0 + vaesenc %ymm0,%ymm1,%ymm1 + vbroadcasti32x4 112(%rcx),%ymm0 + vaesenc %ymm0,%ymm1,%ymm1 + vbroadcasti32x4 128(%rcx),%ymm0 + vaesenc %ymm0,%ymm1,%ymm1 + vbroadcasti32x4 144(%rcx),%ymm0 + vaesenc %ymm0,%ymm1,%ymm1 + vbroadcasti32x4 160(%rcx),%ymm0 + vaesenc %ymm0,%ymm1,%ymm1 + vbroadcasti32x4 176(%rcx),%ymm0 + vaesenc %ymm0,%ymm1,%ymm1 + vbroadcasti32x4 192(%rcx),%ymm0 + vaesenc %ymm0,%ymm1,%ymm1 + vbroadcasti32x4 208(%rcx),%ymm0 + vaesenc %ymm0,%ymm1,%ymm1 + vbroadcasti32x4 224(%rcx),%ymm0 + vaesenclast %ymm0,%ymm1,%ymm1 + vpxorq %ymm9,%ymm1,%ymm1 + vmovdqu %ymm1,(%rsi) + addq $0x20,%rsi + vextracti32x4 $0x1,%zmm1,%xmm8 + vextracti32x4 $0x2,%zmm9,%xmm0 + andq $0xf,%rdx + je L$_ret_wcpqaDvsGlbjGoe + jmp L$_steal_cipher_wcpqaDvsGlbjGoe +L$_remaining_num_blocks_is_1_wcpqaDvsGlbjGoe: + vmovdqu (%rdi),%xmm1 + addq $0x10,%rdi + vpxor %xmm9,%xmm1,%xmm1 + vpxor (%rcx),%xmm1,%xmm1 + vaesenc 16(%rcx),%xmm1,%xmm1 + vaesenc 32(%rcx),%xmm1,%xmm1 + vaesenc 48(%rcx),%xmm1,%xmm1 + vaesenc 64(%rcx),%xmm1,%xmm1 + vaesenc 80(%rcx),%xmm1,%xmm1 + vaesenc 96(%rcx),%xmm1,%xmm1 + vaesenc 112(%rcx),%xmm1,%xmm1 + vaesenc 128(%rcx),%xmm1,%xmm1 + vaesenc 144(%rcx),%xmm1,%xmm1 + vaesenc 160(%rcx),%xmm1,%xmm1 + vaesenc 176(%rcx),%xmm1,%xmm1 + vaesenc 192(%rcx),%xmm1,%xmm1 + vaesenc 208(%rcx),%xmm1,%xmm1 + vaesenclast 224(%rcx),%xmm1,%xmm1 + vpxor %xmm9,%xmm1,%xmm1 + vmovdqu %xmm1,(%rsi) + addq $0x10,%rsi + vmovdqa %xmm1,%xmm8 + vextracti32x4 $0x1,%zmm9,%xmm0 + andq $0xf,%rdx + je L$_ret_wcpqaDvsGlbjGoe + jmp L$_steal_cipher_wcpqaDvsGlbjGoe + + +L$_start_by16_wcpqaDvsGlbjGoe: + vbroadcasti32x4 (%rsp),%zmm0 + vbroadcasti32x4 shufb_15_7(%rip),%zmm8 + movq $0xaa,%r8 + kmovq %r8,%k2 + vpshufb %zmm8,%zmm0,%zmm1 + vpsllvq const_dq3210(%rip),%zmm0,%zmm4 + vpsrlvq const_dq5678(%rip),%zmm1,%zmm2 + vpclmulqdq $0x0,%zmm25,%zmm2,%zmm3 + vpxorq %zmm2,%zmm4,%zmm4{%k2} + vpxord %zmm4,%zmm3,%zmm9 + vpsllvq const_dq7654(%rip),%zmm0,%zmm5 + vpsrlvq const_dq1234(%rip),%zmm1,%zmm6 + vpclmulqdq $0x0,%zmm25,%zmm6,%zmm7 + vpxorq %zmm6,%zmm5,%zmm5{%k2} + vpxord %zmm5,%zmm7,%zmm10 + vpsrldq $0xf,%zmm9,%zmm13 + vpclmulqdq $0x0,%zmm25,%zmm13,%zmm14 + vpslldq $0x1,%zmm9,%zmm11 + vpxord %zmm14,%zmm11,%zmm11 + vpsrldq $0xf,%zmm10,%zmm15 + vpclmulqdq $0x0,%zmm25,%zmm15,%zmm16 + vpslldq $0x1,%zmm10,%zmm12 + vpxord %zmm16,%zmm12,%zmm12 + +L$_main_loop_run_16_wcpqaDvsGlbjGoe: + vmovdqu8 (%rdi),%zmm1 + vmovdqu8 64(%rdi),%zmm2 + vmovdqu8 128(%rdi),%zmm3 + vmovdqu8 192(%rdi),%zmm4 + addq $0x100,%rdi + vpxorq %zmm9,%zmm1,%zmm1 + vpxorq %zmm10,%zmm2,%zmm2 + vpxorq %zmm11,%zmm3,%zmm3 + vpxorq %zmm12,%zmm4,%zmm4 + vbroadcasti32x4 (%rcx),%zmm0 + vpxorq %zmm0,%zmm1,%zmm1 + vpxorq %zmm0,%zmm2,%zmm2 + vpxorq %zmm0,%zmm3,%zmm3 + vpxorq %zmm0,%zmm4,%zmm4 + vpsrldq $0xf,%zmm11,%zmm13 + vpclmulqdq $0x0,%zmm25,%zmm13,%zmm14 + vpslldq $0x1,%zmm11,%zmm15 + vpxord %zmm14,%zmm15,%zmm15 + vbroadcasti32x4 16(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + vaesenc %zmm0,%zmm3,%zmm3 + vaesenc %zmm0,%zmm4,%zmm4 + vbroadcasti32x4 32(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + vaesenc %zmm0,%zmm3,%zmm3 + vaesenc %zmm0,%zmm4,%zmm4 + vbroadcasti32x4 48(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + vaesenc %zmm0,%zmm3,%zmm3 + vaesenc %zmm0,%zmm4,%zmm4 + vpsrldq $0xf,%zmm12,%zmm13 + vpclmulqdq $0x0,%zmm25,%zmm13,%zmm14 + vpslldq $0x1,%zmm12,%zmm16 + vpxord %zmm14,%zmm16,%zmm16 + vbroadcasti32x4 64(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + vaesenc %zmm0,%zmm3,%zmm3 + vaesenc %zmm0,%zmm4,%zmm4 + vbroadcasti32x4 80(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + vaesenc %zmm0,%zmm3,%zmm3 + vaesenc %zmm0,%zmm4,%zmm4 + vbroadcasti32x4 96(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + vaesenc %zmm0,%zmm3,%zmm3 + vaesenc %zmm0,%zmm4,%zmm4 + vpsrldq $0xf,%zmm15,%zmm13 + vpclmulqdq $0x0,%zmm25,%zmm13,%zmm14 + vpslldq $0x1,%zmm15,%zmm17 + vpxord %zmm14,%zmm17,%zmm17 + vbroadcasti32x4 112(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + vaesenc %zmm0,%zmm3,%zmm3 + vaesenc %zmm0,%zmm4,%zmm4 + vbroadcasti32x4 128(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + vaesenc %zmm0,%zmm3,%zmm3 + vaesenc %zmm0,%zmm4,%zmm4 + vbroadcasti32x4 144(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + vaesenc %zmm0,%zmm3,%zmm3 + vaesenc %zmm0,%zmm4,%zmm4 + vpsrldq $0xf,%zmm16,%zmm13 + vpclmulqdq $0x0,%zmm25,%zmm13,%zmm14 + vpslldq $0x1,%zmm16,%zmm18 + vpxord %zmm14,%zmm18,%zmm18 + vbroadcasti32x4 160(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + vaesenc %zmm0,%zmm3,%zmm3 + vaesenc %zmm0,%zmm4,%zmm4 + vbroadcasti32x4 176(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + vaesenc %zmm0,%zmm3,%zmm3 + vaesenc %zmm0,%zmm4,%zmm4 + vbroadcasti32x4 192(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + vaesenc %zmm0,%zmm3,%zmm3 + vaesenc %zmm0,%zmm4,%zmm4 + vbroadcasti32x4 208(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + vaesenc %zmm0,%zmm3,%zmm3 + vaesenc %zmm0,%zmm4,%zmm4 + vbroadcasti32x4 224(%rcx),%zmm0 + vaesenclast %zmm0,%zmm1,%zmm1 + vaesenclast %zmm0,%zmm2,%zmm2 + vaesenclast %zmm0,%zmm3,%zmm3 + vaesenclast %zmm0,%zmm4,%zmm4 + vpxorq %zmm9,%zmm1,%zmm1 + vpxorq %zmm10,%zmm2,%zmm2 + vpxorq %zmm11,%zmm3,%zmm3 + vpxorq %zmm12,%zmm4,%zmm4 + + vmovdqa32 %zmm15,%zmm9 + vmovdqa32 %zmm16,%zmm10 + vmovdqa32 %zmm17,%zmm11 + vmovdqa32 %zmm18,%zmm12 + vmovdqu8 %zmm1,(%rsi) + vmovdqu8 %zmm2,64(%rsi) + vmovdqu8 %zmm3,128(%rsi) + vmovdqu8 %zmm4,192(%rsi) + addq $0x100,%rsi + subq $0x100,%rdx + cmpq $0x100,%rdx + jae L$_main_loop_run_16_wcpqaDvsGlbjGoe + cmpq $0x80,%rdx + jae L$_main_loop_run_8_wcpqaDvsGlbjGoe + vextracti32x4 $0x3,%zmm4,%xmm0 + jmp L$_do_n_blocks_wcpqaDvsGlbjGoe + +L$_start_by8_wcpqaDvsGlbjGoe: + vbroadcasti32x4 (%rsp),%zmm0 + vbroadcasti32x4 shufb_15_7(%rip),%zmm8 + movq $0xaa,%r8 + kmovq %r8,%k2 + vpshufb %zmm8,%zmm0,%zmm1 + vpsllvq const_dq3210(%rip),%zmm0,%zmm4 + vpsrlvq const_dq5678(%rip),%zmm1,%zmm2 + vpclmulqdq $0x0,%zmm25,%zmm2,%zmm3 + vpxorq %zmm2,%zmm4,%zmm4{%k2} + vpxord %zmm4,%zmm3,%zmm9 + vpsllvq const_dq7654(%rip),%zmm0,%zmm5 + vpsrlvq const_dq1234(%rip),%zmm1,%zmm6 + vpclmulqdq $0x0,%zmm25,%zmm6,%zmm7 + vpxorq %zmm6,%zmm5,%zmm5{%k2} + vpxord %zmm5,%zmm7,%zmm10 + +L$_main_loop_run_8_wcpqaDvsGlbjGoe: + vmovdqu8 (%rdi),%zmm1 + vmovdqu8 64(%rdi),%zmm2 + addq $0x80,%rdi + vbroadcasti32x4 (%rcx),%zmm0 + vpternlogq $0x96,%zmm0,%zmm9,%zmm1 + vpternlogq $0x96,%zmm0,%zmm10,%zmm2 + vpsrldq $0xf,%zmm9,%zmm13 + vpclmulqdq $0x0,%zmm25,%zmm13,%zmm14 + vpslldq $0x1,%zmm9,%zmm15 + vpxord %zmm14,%zmm15,%zmm15 + vbroadcasti32x4 16(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 32(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 48(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + vpsrldq $0xf,%zmm10,%zmm13 + vpclmulqdq $0x0,%zmm25,%zmm13,%zmm14 + vpslldq $0x1,%zmm10,%zmm16 + vpxord %zmm14,%zmm16,%zmm16 + + vbroadcasti32x4 64(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 80(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 96(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 112(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 128(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 144(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + vbroadcasti32x4 160(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 176(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 192(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 208(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 224(%rcx),%zmm0 + vaesenclast %zmm0,%zmm1,%zmm1 + vaesenclast %zmm0,%zmm2,%zmm2 + vpxorq %zmm9,%zmm1,%zmm1 + vpxorq %zmm10,%zmm2,%zmm2 + vmovdqa32 %zmm15,%zmm9 + vmovdqa32 %zmm16,%zmm10 + vmovdqu8 %zmm1,(%rsi) + vmovdqu8 %zmm2,64(%rsi) + addq $0x80,%rsi + subq $0x80,%rdx + cmpq $0x80,%rdx + jae L$_main_loop_run_8_wcpqaDvsGlbjGoe + vextracti32x4 $0x3,%zmm2,%xmm0 + jmp L$_do_n_blocks_wcpqaDvsGlbjGoe + +L$_steal_cipher_wcpqaDvsGlbjGoe: + vmovdqa %xmm8,%xmm2 + leaq vpshufb_shf_table(%rip),%rax + vmovdqu (%rax,%rdx,1),%xmm10 + vpshufb %xmm10,%xmm8,%xmm8 + vmovdqu -16(%rdi,%rdx,1),%xmm3 + vmovdqu %xmm8,-16(%rsi,%rdx,1) + leaq vpshufb_shf_table(%rip),%rax + addq $16,%rax + subq %rdx,%rax + vmovdqu (%rax),%xmm10 + vpxor mask1(%rip),%xmm10,%xmm10 + vpshufb %xmm10,%xmm3,%xmm3 + vpblendvb %xmm10,%xmm2,%xmm3,%xmm3 + vpxor %xmm0,%xmm3,%xmm8 + vpxor (%rcx),%xmm8,%xmm8 + vaesenc 16(%rcx),%xmm8,%xmm8 + vaesenc 32(%rcx),%xmm8,%xmm8 + vaesenc 48(%rcx),%xmm8,%xmm8 + vaesenc 64(%rcx),%xmm8,%xmm8 + vaesenc 80(%rcx),%xmm8,%xmm8 + vaesenc 96(%rcx),%xmm8,%xmm8 + vaesenc 112(%rcx),%xmm8,%xmm8 + vaesenc 128(%rcx),%xmm8,%xmm8 + vaesenc 144(%rcx),%xmm8,%xmm8 + vaesenc 160(%rcx),%xmm8,%xmm8 + vaesenc 176(%rcx),%xmm8,%xmm8 + vaesenc 192(%rcx),%xmm8,%xmm8 + vaesenc 208(%rcx),%xmm8,%xmm8 + vaesenclast 224(%rcx),%xmm8,%xmm8 + vpxor %xmm0,%xmm8,%xmm8 + vmovdqu %xmm8,-16(%rsi) +L$_ret_wcpqaDvsGlbjGoe: + movq 128(%rsp),%rbx + xorq %r8,%r8 + movq %r8,128(%rsp) + + vpxorq %zmm0,%zmm0,%zmm0 + movq %rbp,%rsp + popq %rbp + vzeroupper + .byte 0xf3,0xc3 + +L$_less_than_128_bytes_wcpqaDvsGlbjGoe: + vpbroadcastq %r10,%zmm25 + cmpq $0x10,%rdx + jb L$_ret_wcpqaDvsGlbjGoe + vbroadcasti32x4 (%rsp),%zmm0 + vbroadcasti32x4 shufb_15_7(%rip),%zmm8 + movl $0xaa,%r8d + kmovq %r8,%k2 + movq %rdx,%r8 + andq $0x70,%r8 + cmpq $0x60,%r8 + je L$_num_blocks_is_6_wcpqaDvsGlbjGoe + cmpq $0x50,%r8 + je L$_num_blocks_is_5_wcpqaDvsGlbjGoe + cmpq $0x40,%r8 + je L$_num_blocks_is_4_wcpqaDvsGlbjGoe + cmpq $0x30,%r8 + je L$_num_blocks_is_3_wcpqaDvsGlbjGoe + cmpq $0x20,%r8 + je L$_num_blocks_is_2_wcpqaDvsGlbjGoe + cmpq $0x10,%r8 + je L$_num_blocks_is_1_wcpqaDvsGlbjGoe + +L$_num_blocks_is_7_wcpqaDvsGlbjGoe: + vpshufb %zmm8,%zmm0,%zmm1 + vpsllvq const_dq3210(%rip),%zmm0,%zmm4 + vpsrlvq const_dq5678(%rip),%zmm1,%zmm2 + vpclmulqdq $0x00,%zmm25,%zmm2,%zmm3 + vpxorq %zmm2,%zmm4,%zmm4{%k2} + vpxord %zmm4,%zmm3,%zmm9 + vpsllvq const_dq7654(%rip),%zmm0,%zmm5 + vpsrlvq const_dq1234(%rip),%zmm1,%zmm6 + vpclmulqdq $0x00,%zmm25,%zmm6,%zmm7 + vpxorq %zmm6,%zmm5,%zmm5{%k2} + vpxord %zmm5,%zmm7,%zmm10 + movq $0x0000ffffffffffff,%r8 + kmovq %r8,%k1 + vmovdqu8 0(%rdi),%zmm1 + vmovdqu8 64(%rdi),%zmm2{%k1} + + addq $0x70,%rdi + vbroadcasti32x4 (%rcx),%zmm0 + vpternlogq $0x96,%zmm0,%zmm9,%zmm1 + vpternlogq $0x96,%zmm0,%zmm10,%zmm2 + vbroadcasti32x4 16(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 32(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 48(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + vbroadcasti32x4 64(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 80(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 96(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 112(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 128(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 144(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + vbroadcasti32x4 160(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 176(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 192(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 208(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 224(%rcx),%zmm0 + vaesenclast %zmm0,%zmm1,%zmm1 + vaesenclast %zmm0,%zmm2,%zmm2 + vpxorq %zmm9,%zmm1,%zmm1 + vpxorq %zmm10,%zmm2,%zmm2 + vmovdqu8 %zmm1,0(%rsi) + vmovdqu8 %zmm2,64(%rsi){%k1} + addq $0x70,%rsi + vextracti32x4 $0x2,%zmm2,%xmm8 + vextracti32x4 $0x3,%zmm10,%xmm0 + andq $0xf,%rdx + je L$_ret_wcpqaDvsGlbjGoe + jmp L$_steal_cipher_wcpqaDvsGlbjGoe +L$_num_blocks_is_6_wcpqaDvsGlbjGoe: + vpshufb %zmm8,%zmm0,%zmm1 + vpsllvq const_dq3210(%rip),%zmm0,%zmm4 + vpsrlvq const_dq5678(%rip),%zmm1,%zmm2 + vpclmulqdq $0x00,%zmm25,%zmm2,%zmm3 + vpxorq %zmm2,%zmm4,%zmm4{%k2} + vpxord %zmm4,%zmm3,%zmm9 + vpsllvq const_dq7654(%rip),%zmm0,%zmm5 + vpsrlvq const_dq1234(%rip),%zmm1,%zmm6 + vpclmulqdq $0x00,%zmm25,%zmm6,%zmm7 + vpxorq %zmm6,%zmm5,%zmm5{%k2} + vpxord %zmm5,%zmm7,%zmm10 + vmovdqu8 0(%rdi),%zmm1 + vmovdqu8 64(%rdi),%ymm2 + addq $96,%rdi + vbroadcasti32x4 (%rcx),%zmm0 + vpternlogq $0x96,%zmm0,%zmm9,%zmm1 + vpternlogq $0x96,%zmm0,%zmm10,%zmm2 + vbroadcasti32x4 16(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 32(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 48(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + vbroadcasti32x4 64(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 80(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 96(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 112(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 128(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 144(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + vbroadcasti32x4 160(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 176(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 192(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 208(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 224(%rcx),%zmm0 + vaesenclast %zmm0,%zmm1,%zmm1 + vaesenclast %zmm0,%zmm2,%zmm2 + vpxorq %zmm9,%zmm1,%zmm1 + vpxorq %zmm10,%zmm2,%zmm2 + vmovdqu8 %zmm1,0(%rsi) + vmovdqu8 %ymm2,64(%rsi) + addq $96,%rsi + + vextracti32x4 $0x1,%ymm2,%xmm8 + vextracti32x4 $0x2,%zmm10,%xmm0 + andq $0xf,%rdx + je L$_ret_wcpqaDvsGlbjGoe + jmp L$_steal_cipher_wcpqaDvsGlbjGoe +L$_num_blocks_is_5_wcpqaDvsGlbjGoe: + vpshufb %zmm8,%zmm0,%zmm1 + vpsllvq const_dq3210(%rip),%zmm0,%zmm4 + vpsrlvq const_dq5678(%rip),%zmm1,%zmm2 + vpclmulqdq $0x00,%zmm25,%zmm2,%zmm3 + vpxorq %zmm2,%zmm4,%zmm4{%k2} + vpxord %zmm4,%zmm3,%zmm9 + vpsllvq const_dq7654(%rip),%zmm0,%zmm5 + vpsrlvq const_dq1234(%rip),%zmm1,%zmm6 + vpclmulqdq $0x00,%zmm25,%zmm6,%zmm7 + vpxorq %zmm6,%zmm5,%zmm5{%k2} + vpxord %zmm5,%zmm7,%zmm10 + vmovdqu8 0(%rdi),%zmm1 + vmovdqu8 64(%rdi),%xmm2 + addq $80,%rdi + vbroadcasti32x4 (%rcx),%zmm0 + vpternlogq $0x96,%zmm0,%zmm9,%zmm1 + vpternlogq $0x96,%zmm0,%zmm10,%zmm2 + vbroadcasti32x4 16(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 32(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 48(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + vbroadcasti32x4 64(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 80(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 96(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 112(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 128(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 144(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + vbroadcasti32x4 160(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 176(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 192(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 208(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vaesenc %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 224(%rcx),%zmm0 + vaesenclast %zmm0,%zmm1,%zmm1 + vaesenclast %zmm0,%zmm2,%zmm2 + vpxorq %zmm9,%zmm1,%zmm1 + vpxorq %zmm10,%zmm2,%zmm2 + vmovdqu8 %zmm1,0(%rsi) + vmovdqu8 %xmm2,64(%rsi) + addq $80,%rsi + + vmovdqa %xmm2,%xmm8 + vextracti32x4 $0x1,%zmm10,%xmm0 + andq $0xf,%rdx + je L$_ret_wcpqaDvsGlbjGoe + jmp L$_steal_cipher_wcpqaDvsGlbjGoe +L$_num_blocks_is_4_wcpqaDvsGlbjGoe: + vpshufb %zmm8,%zmm0,%zmm1 + vpsllvq const_dq3210(%rip),%zmm0,%zmm4 + vpsrlvq const_dq5678(%rip),%zmm1,%zmm2 + vpclmulqdq $0x00,%zmm25,%zmm2,%zmm3 + vpxorq %zmm2,%zmm4,%zmm4{%k2} + vpxord %zmm4,%zmm3,%zmm9 + vpsllvq const_dq7654(%rip),%zmm0,%zmm5 + vpsrlvq const_dq1234(%rip),%zmm1,%zmm6 + vpclmulqdq $0x00,%zmm25,%zmm6,%zmm7 + vpxorq %zmm6,%zmm5,%zmm5{%k2} + vpxord %zmm5,%zmm7,%zmm10 + vmovdqu8 0(%rdi),%zmm1 + addq $64,%rdi + vbroadcasti32x4 (%rcx),%zmm0 + vpternlogq $0x96,%zmm0,%zmm9,%zmm1 + vbroadcasti32x4 16(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 32(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 48(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 64(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 80(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 96(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 112(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 128(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 144(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 160(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 176(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 192(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 208(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 224(%rcx),%zmm0 + vaesenclast %zmm0,%zmm1,%zmm1 + vpxorq %zmm9,%zmm1,%zmm1 + vmovdqu8 %zmm1,0(%rsi) + addq $64,%rsi + vextracti32x4 $0x3,%zmm1,%xmm8 + vmovdqa %xmm10,%xmm0 + andq $0xf,%rdx + je L$_ret_wcpqaDvsGlbjGoe + jmp L$_steal_cipher_wcpqaDvsGlbjGoe +L$_num_blocks_is_3_wcpqaDvsGlbjGoe: + vpshufb %zmm8,%zmm0,%zmm1 + vpsllvq const_dq3210(%rip),%zmm0,%zmm4 + vpsrlvq const_dq5678(%rip),%zmm1,%zmm2 + vpclmulqdq $0x00,%zmm25,%zmm2,%zmm3 + vpxorq %zmm2,%zmm4,%zmm4{%k2} + vpxord %zmm4,%zmm3,%zmm9 + movq $0x0000ffffffffffff,%r8 + kmovq %r8,%k1 + vmovdqu8 0(%rdi),%zmm1{%k1} + addq $48,%rdi + vbroadcasti32x4 (%rcx),%zmm0 + vpternlogq $0x96,%zmm0,%zmm9,%zmm1 + vbroadcasti32x4 16(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 32(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 48(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 64(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 80(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 96(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 112(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 128(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 144(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 160(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 176(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 192(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 208(%rcx),%zmm0 + vaesenc %zmm0,%zmm1,%zmm1 + vbroadcasti32x4 224(%rcx),%zmm0 + vaesenclast %zmm0,%zmm1,%zmm1 + vpxorq %zmm9,%zmm1,%zmm1 + vmovdqu8 %zmm1,0(%rsi){%k1} + addq $48,%rsi + vextracti32x4 $2,%zmm1,%xmm8 + vextracti32x4 $3,%zmm9,%xmm0 + andq $0xf,%rdx + je L$_ret_wcpqaDvsGlbjGoe + jmp L$_steal_cipher_wcpqaDvsGlbjGoe +L$_num_blocks_is_2_wcpqaDvsGlbjGoe: + vpshufb %zmm8,%zmm0,%zmm1 + vpsllvq const_dq3210(%rip),%zmm0,%zmm4 + vpsrlvq const_dq5678(%rip),%zmm1,%zmm2 + vpclmulqdq $0x00,%zmm25,%zmm2,%zmm3 + vpxorq %zmm2,%zmm4,%zmm4{%k2} + vpxord %zmm4,%zmm3,%zmm9 + + vmovdqu8 0(%rdi),%ymm1 + addq $32,%rdi + vbroadcasti32x4 (%rcx),%ymm0 + vpternlogq $0x96,%ymm0,%ymm9,%ymm1 + vbroadcasti32x4 16(%rcx),%ymm0 + vaesenc %ymm0,%ymm1,%ymm1 + vbroadcasti32x4 32(%rcx),%ymm0 + vaesenc %ymm0,%ymm1,%ymm1 + vbroadcasti32x4 48(%rcx),%ymm0 + vaesenc %ymm0,%ymm1,%ymm1 + vbroadcasti32x4 64(%rcx),%ymm0 + vaesenc %ymm0,%ymm1,%ymm1 + vbroadcasti32x4 80(%rcx),%ymm0 + vaesenc %ymm0,%ymm1,%ymm1 + vbroadcasti32x4 96(%rcx),%ymm0 + vaesenc %ymm0,%ymm1,%ymm1 + vbroadcasti32x4 112(%rcx),%ymm0 + vaesenc %ymm0,%ymm1,%ymm1 + vbroadcasti32x4 128(%rcx),%ymm0 + vaesenc %ymm0,%ymm1,%ymm1 + vbroadcasti32x4 144(%rcx),%ymm0 + vaesenc %ymm0,%ymm1,%ymm1 + vbroadcasti32x4 160(%rcx),%ymm0 + vaesenc %ymm0,%ymm1,%ymm1 + vbroadcasti32x4 176(%rcx),%ymm0 + vaesenc %ymm0,%ymm1,%ymm1 + vbroadcasti32x4 192(%rcx),%ymm0 + vaesenc %ymm0,%ymm1,%ymm1 + vbroadcasti32x4 208(%rcx),%ymm0 + vaesenc %ymm0,%ymm1,%ymm1 + vbroadcasti32x4 224(%rcx),%ymm0 + vaesenclast %ymm0,%ymm1,%ymm1 + vpxorq %ymm9,%ymm1,%ymm1 + vmovdqu8 %ymm1,0(%rsi) + addq $32,%rsi + + vextracti32x4 $1,%ymm1,%xmm8 + vextracti32x4 $2,%zmm9,%xmm0 + andq $0xf,%rdx + je L$_ret_wcpqaDvsGlbjGoe + jmp L$_steal_cipher_wcpqaDvsGlbjGoe +L$_num_blocks_is_1_wcpqaDvsGlbjGoe: + vpshufb %zmm8,%zmm0,%zmm1 + vpsllvq const_dq3210(%rip),%zmm0,%zmm4 + vpsrlvq const_dq5678(%rip),%zmm1,%zmm2 + vpclmulqdq $0x00,%zmm25,%zmm2,%zmm3 + vpxorq %zmm2,%zmm4,%zmm4{%k2} + vpxord %zmm4,%zmm3,%zmm9 + + vmovdqu8 0(%rdi),%xmm1 + addq $16,%rdi + vbroadcasti32x4 (%rcx),%ymm0 + vpternlogq $0x96,%ymm0,%ymm9,%ymm1 + vbroadcasti32x4 16(%rcx),%ymm0 + vaesenc %ymm0,%ymm1,%ymm1 + vbroadcasti32x4 32(%rcx),%ymm0 + vaesenc %ymm0,%ymm1,%ymm1 + vbroadcasti32x4 48(%rcx),%ymm0 + vaesenc %ymm0,%ymm1,%ymm1 + vbroadcasti32x4 64(%rcx),%ymm0 + vaesenc %ymm0,%ymm1,%ymm1 + vbroadcasti32x4 80(%rcx),%ymm0 + vaesenc %ymm0,%ymm1,%ymm1 + vbroadcasti32x4 96(%rcx),%ymm0 + vaesenc %ymm0,%ymm1,%ymm1 + vbroadcasti32x4 112(%rcx),%ymm0 + vaesenc %ymm0,%ymm1,%ymm1 + vbroadcasti32x4 128(%rcx),%ymm0 + vaesenc %ymm0,%ymm1,%ymm1 + vbroadcasti32x4 144(%rcx),%ymm0 + vaesenc %ymm0,%ymm1,%ymm1 + vbroadcasti32x4 160(%rcx),%ymm0 + vaesenc %ymm0,%ymm1,%ymm1 + vbroadcasti32x4 176(%rcx),%ymm0 + vaesenc %ymm0,%ymm1,%ymm1 + vbroadcasti32x4 192(%rcx),%ymm0 + vaesenc %ymm0,%ymm1,%ymm1 + vbroadcasti32x4 208(%rcx),%ymm0 + vaesenc %ymm0,%ymm1,%ymm1 + vbroadcasti32x4 224(%rcx),%ymm0 + vaesenclast %ymm0,%ymm1,%ymm1 + vpxorq %ymm9,%ymm1,%ymm1 + vmovdqu8 %xmm1,0(%rsi) + addq $16,%rsi + + vmovdqa %xmm1,%xmm8 + vextracti32x4 $1,%zmm9,%xmm0 + andq $0xf,%rdx + je L$_ret_wcpqaDvsGlbjGoe + jmp L$_steal_cipher_wcpqaDvsGlbjGoe + +.globl _aesni_xts_256_decrypt_avx512 +.private_extern _aesni_xts_256_decrypt_avx512 + +.p2align 5 +_aesni_xts_256_decrypt_avx512: + +.byte 243,15,30,250 + pushq %rbp + movq %rsp,%rbp + subq $136,%rsp + andq $0xffffffffffffffc0,%rsp + movq %rbx,128(%rsp) + movq $0x87,%r10 + vmovdqu (%r9),%xmm1 + vpxor (%r8),%xmm1,%xmm1 + vaesenc 16(%r8),%xmm1,%xmm1 + vaesenc 32(%r8),%xmm1,%xmm1 + vaesenc 48(%r8),%xmm1,%xmm1 + vaesenc 64(%r8),%xmm1,%xmm1 + vaesenc 80(%r8),%xmm1,%xmm1 + vaesenc 96(%r8),%xmm1,%xmm1 + vaesenc 112(%r8),%xmm1,%xmm1 + vaesenc 128(%r8),%xmm1,%xmm1 + vaesenc 144(%r8),%xmm1,%xmm1 + vaesenc 160(%r8),%xmm1,%xmm1 + vaesenc 176(%r8),%xmm1,%xmm1 + vaesenc 192(%r8),%xmm1,%xmm1 + vaesenc 208(%r8),%xmm1,%xmm1 + vaesenclast 224(%r8),%xmm1,%xmm1 + vmovdqa %xmm1,(%rsp) + + cmpq $0x80,%rdx + jb L$_less_than_128_bytes_EmbgEptodyewbFa + vpbroadcastq %r10,%zmm25 + cmpq $0x100,%rdx + jge L$_start_by16_EmbgEptodyewbFa + jmp L$_start_by8_EmbgEptodyewbFa + +L$_do_n_blocks_EmbgEptodyewbFa: + cmpq $0x0,%rdx + je L$_ret_EmbgEptodyewbFa + cmpq $0x70,%rdx + jge L$_remaining_num_blocks_is_7_EmbgEptodyewbFa + cmpq $0x60,%rdx + jge L$_remaining_num_blocks_is_6_EmbgEptodyewbFa + cmpq $0x50,%rdx + jge L$_remaining_num_blocks_is_5_EmbgEptodyewbFa + cmpq $0x40,%rdx + jge L$_remaining_num_blocks_is_4_EmbgEptodyewbFa + cmpq $0x30,%rdx + jge L$_remaining_num_blocks_is_3_EmbgEptodyewbFa + cmpq $0x20,%rdx + jge L$_remaining_num_blocks_is_2_EmbgEptodyewbFa + cmpq $0x10,%rdx + jge L$_remaining_num_blocks_is_1_EmbgEptodyewbFa + + + vmovdqu %xmm5,%xmm1 + + vpxor %xmm9,%xmm1,%xmm1 + vmovdqu (%rcx),%xmm0 + vpxor %xmm0,%xmm1,%xmm1 + vmovdqu 16(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 32(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 48(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 64(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 80(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 96(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 112(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 128(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 144(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 160(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 176(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 192(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 208(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 224(%rcx),%xmm0 + vaesdeclast %xmm0,%xmm1,%xmm1 + vpxor %xmm9,%xmm1,%xmm1 + vmovdqu %xmm1,-16(%rsi) + vmovdqa %xmm1,%xmm8 + + + movq $0x1,%r8 + kmovq %r8,%k1 + vpsllq $0x3f,%xmm9,%xmm13 + vpsraq $0x3f,%xmm13,%xmm14 + vpandq %xmm25,%xmm14,%xmm5 + vpxorq %xmm5,%xmm9,%xmm9{%k1} + vpsrldq $0x8,%xmm9,%xmm10 +.byte 98, 211, 181, 8, 115, 194, 1 + vpslldq $0x8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm0,%xmm0 + jmp L$_steal_cipher_EmbgEptodyewbFa + +L$_remaining_num_blocks_is_7_EmbgEptodyewbFa: + movq $0xffffffffffffffff,%r8 + shrq $0x10,%r8 + kmovq %r8,%k1 + vmovdqu8 (%rdi),%zmm1 + vmovdqu8 64(%rdi),%zmm2{%k1} + addq $0x70,%rdi + andq $0xf,%rdx + je L$_done_7_remain_EmbgEptodyewbFa + vextracti32x4 $0x2,%zmm10,%xmm12 + vextracti32x4 $0x3,%zmm10,%xmm13 + vinserti32x4 $0x2,%xmm13,%zmm10,%zmm10 + + vpxorq %zmm9,%zmm1,%zmm1 + vpxorq %zmm10,%zmm2,%zmm2 + + + vbroadcasti32x4 (%rcx),%zmm0 + vpxorq %zmm0,%zmm1,%zmm1 + vpxorq %zmm0,%zmm2,%zmm2 + vbroadcasti32x4 16(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 32(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 48(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + vbroadcasti32x4 64(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 80(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 96(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 112(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 128(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 144(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 160(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 176(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 192(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 208(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 224(%rcx),%zmm0 + vaesdeclast %zmm0,%zmm1,%zmm1 + vaesdeclast %zmm0,%zmm2,%zmm2 + + vpxorq %zmm9,%zmm1,%zmm1 + vpxorq %zmm10,%zmm2,%zmm2 + + + vmovdqa32 %zmm15,%zmm9 + vmovdqa32 %zmm16,%zmm10 + vmovdqu8 %zmm1,(%rsi) + vmovdqu8 %zmm2,64(%rsi){%k1} + addq $0x70,%rsi + vextracti32x4 $0x2,%zmm2,%xmm8 + vmovdqa %xmm12,%xmm0 + jmp L$_steal_cipher_EmbgEptodyewbFa + +L$_done_7_remain_EmbgEptodyewbFa: + + vpxorq %zmm9,%zmm1,%zmm1 + vpxorq %zmm10,%zmm2,%zmm2 + + + vbroadcasti32x4 (%rcx),%zmm0 + vpxorq %zmm0,%zmm1,%zmm1 + vpxorq %zmm0,%zmm2,%zmm2 + vbroadcasti32x4 16(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 32(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 48(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + vbroadcasti32x4 64(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 80(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 96(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 112(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 128(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 144(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 160(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 176(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 192(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 208(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 224(%rcx),%zmm0 + vaesdeclast %zmm0,%zmm1,%zmm1 + vaesdeclast %zmm0,%zmm2,%zmm2 + + vpxorq %zmm9,%zmm1,%zmm1 + vpxorq %zmm10,%zmm2,%zmm2 + + + vmovdqa32 %zmm15,%zmm9 + vmovdqa32 %zmm16,%zmm10 + vmovdqu8 %zmm1,(%rsi) + vmovdqu8 %zmm2,64(%rsi){%k1} + jmp L$_ret_EmbgEptodyewbFa + +L$_remaining_num_blocks_is_6_EmbgEptodyewbFa: + vmovdqu8 (%rdi),%zmm1 + vmovdqu8 64(%rdi),%ymm2 + addq $0x60,%rdi + andq $0xf,%rdx + je L$_done_6_remain_EmbgEptodyewbFa + vextracti32x4 $0x1,%zmm10,%xmm12 + vextracti32x4 $0x2,%zmm10,%xmm13 + vinserti32x4 $0x1,%xmm13,%zmm10,%zmm10 + + vpxorq %zmm9,%zmm1,%zmm1 + vpxorq %zmm10,%zmm2,%zmm2 + + + vbroadcasti32x4 (%rcx),%zmm0 + vpxorq %zmm0,%zmm1,%zmm1 + vpxorq %zmm0,%zmm2,%zmm2 + vbroadcasti32x4 16(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 32(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 48(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + vbroadcasti32x4 64(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 80(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 96(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 112(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 128(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 144(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 160(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 176(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 192(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 208(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 224(%rcx),%zmm0 + vaesdeclast %zmm0,%zmm1,%zmm1 + vaesdeclast %zmm0,%zmm2,%zmm2 + + vpxorq %zmm9,%zmm1,%zmm1 + vpxorq %zmm10,%zmm2,%zmm2 + + + vmovdqa32 %zmm15,%zmm9 + vmovdqa32 %zmm16,%zmm10 + vmovdqu8 %zmm1,(%rsi) + vmovdqu8 %ymm2,64(%rsi) + addq $0x60,%rsi + vextracti32x4 $0x1,%zmm2,%xmm8 + vmovdqa %xmm12,%xmm0 + jmp L$_steal_cipher_EmbgEptodyewbFa + +L$_done_6_remain_EmbgEptodyewbFa: + + vpxorq %zmm9,%zmm1,%zmm1 + vpxorq %zmm10,%zmm2,%zmm2 + + + vbroadcasti32x4 (%rcx),%zmm0 + vpxorq %zmm0,%zmm1,%zmm1 + vpxorq %zmm0,%zmm2,%zmm2 + vbroadcasti32x4 16(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 32(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 48(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + vbroadcasti32x4 64(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 80(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 96(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 112(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 128(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 144(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 160(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 176(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 192(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 208(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 224(%rcx),%zmm0 + vaesdeclast %zmm0,%zmm1,%zmm1 + vaesdeclast %zmm0,%zmm2,%zmm2 + + vpxorq %zmm9,%zmm1,%zmm1 + vpxorq %zmm10,%zmm2,%zmm2 + + + vmovdqa32 %zmm15,%zmm9 + vmovdqa32 %zmm16,%zmm10 + vmovdqu8 %zmm1,(%rsi) + vmovdqu8 %ymm2,64(%rsi) + jmp L$_ret_EmbgEptodyewbFa + +L$_remaining_num_blocks_is_5_EmbgEptodyewbFa: + vmovdqu8 (%rdi),%zmm1 + vmovdqu 64(%rdi),%xmm2 + addq $0x50,%rdi + andq $0xf,%rdx + je L$_done_5_remain_EmbgEptodyewbFa + vmovdqa %xmm10,%xmm12 + vextracti32x4 $0x1,%zmm10,%xmm10 + + vpxorq %zmm9,%zmm1,%zmm1 + vpxorq %zmm10,%zmm2,%zmm2 + + + vbroadcasti32x4 (%rcx),%zmm0 + vpxorq %zmm0,%zmm1,%zmm1 + vpxorq %zmm0,%zmm2,%zmm2 + vbroadcasti32x4 16(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 32(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 48(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + vbroadcasti32x4 64(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 80(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 96(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 112(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 128(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 144(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 160(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 176(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 192(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 208(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 224(%rcx),%zmm0 + vaesdeclast %zmm0,%zmm1,%zmm1 + vaesdeclast %zmm0,%zmm2,%zmm2 + + vpxorq %zmm9,%zmm1,%zmm1 + vpxorq %zmm10,%zmm2,%zmm2 + + + vmovdqa32 %zmm15,%zmm9 + vmovdqa32 %zmm16,%zmm10 + vmovdqu8 %zmm1,(%rsi) + vmovdqu %xmm2,64(%rsi) + addq $0x50,%rsi + vmovdqa %xmm2,%xmm8 + vmovdqa %xmm12,%xmm0 + jmp L$_steal_cipher_EmbgEptodyewbFa + +L$_done_5_remain_EmbgEptodyewbFa: + + vpxorq %zmm9,%zmm1,%zmm1 + vpxorq %zmm10,%zmm2,%zmm2 + + + vbroadcasti32x4 (%rcx),%zmm0 + vpxorq %zmm0,%zmm1,%zmm1 + vpxorq %zmm0,%zmm2,%zmm2 + vbroadcasti32x4 16(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 32(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 48(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + vbroadcasti32x4 64(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 80(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 96(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 112(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 128(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 144(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 160(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 176(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 192(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 208(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 224(%rcx),%zmm0 + vaesdeclast %zmm0,%zmm1,%zmm1 + vaesdeclast %zmm0,%zmm2,%zmm2 + + vpxorq %zmm9,%zmm1,%zmm1 + vpxorq %zmm10,%zmm2,%zmm2 + + + vmovdqa32 %zmm15,%zmm9 + vmovdqa32 %zmm16,%zmm10 + vmovdqu8 %zmm1,(%rsi) + vmovdqu8 %xmm2,64(%rsi) + jmp L$_ret_EmbgEptodyewbFa + +L$_remaining_num_blocks_is_4_EmbgEptodyewbFa: + vmovdqu8 (%rdi),%zmm1 + addq $0x40,%rdi + andq $0xf,%rdx + je L$_done_4_remain_EmbgEptodyewbFa + vextracti32x4 $0x3,%zmm9,%xmm12 + vinserti32x4 $0x3,%xmm10,%zmm9,%zmm9 + + vpxorq %zmm9,%zmm1,%zmm1 + vpxorq %zmm10,%zmm2,%zmm2 + + + vbroadcasti32x4 (%rcx),%zmm0 + vpxorq %zmm0,%zmm1,%zmm1 + vpxorq %zmm0,%zmm2,%zmm2 + vbroadcasti32x4 16(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 32(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 48(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + vbroadcasti32x4 64(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 80(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 96(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 112(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 128(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 144(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 160(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 176(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 192(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 208(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 224(%rcx),%zmm0 + vaesdeclast %zmm0,%zmm1,%zmm1 + vaesdeclast %zmm0,%zmm2,%zmm2 + + vpxorq %zmm9,%zmm1,%zmm1 + vpxorq %zmm10,%zmm2,%zmm2 + + + vmovdqa32 %zmm15,%zmm9 + vmovdqa32 %zmm16,%zmm10 + vmovdqu8 %zmm1,(%rsi) + addq $0x40,%rsi + vextracti32x4 $0x3,%zmm1,%xmm8 + vmovdqa %xmm12,%xmm0 + jmp L$_steal_cipher_EmbgEptodyewbFa + +L$_done_4_remain_EmbgEptodyewbFa: + + vpxorq %zmm9,%zmm1,%zmm1 + vpxorq %zmm10,%zmm2,%zmm2 + + + vbroadcasti32x4 (%rcx),%zmm0 + vpxorq %zmm0,%zmm1,%zmm1 + vpxorq %zmm0,%zmm2,%zmm2 + vbroadcasti32x4 16(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 32(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 48(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + vbroadcasti32x4 64(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 80(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 96(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 112(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 128(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 144(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 160(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 176(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 192(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 208(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 224(%rcx),%zmm0 + vaesdeclast %zmm0,%zmm1,%zmm1 + vaesdeclast %zmm0,%zmm2,%zmm2 + + vpxorq %zmm9,%zmm1,%zmm1 + vpxorq %zmm10,%zmm2,%zmm2 + + + vmovdqa32 %zmm15,%zmm9 + vmovdqa32 %zmm16,%zmm10 + vmovdqu8 %zmm1,(%rsi) + jmp L$_ret_EmbgEptodyewbFa + +L$_remaining_num_blocks_is_3_EmbgEptodyewbFa: + vmovdqu (%rdi),%xmm1 + vmovdqu 16(%rdi),%xmm2 + vmovdqu 32(%rdi),%xmm3 + addq $0x30,%rdi + andq $0xf,%rdx + je L$_done_3_remain_EmbgEptodyewbFa + vextracti32x4 $0x2,%zmm9,%xmm13 + vextracti32x4 $0x1,%zmm9,%xmm10 + vextracti32x4 $0x3,%zmm9,%xmm11 + vpxor %xmm9,%xmm1,%xmm1 + vpxor %xmm10,%xmm2,%xmm2 + vpxor %xmm11,%xmm3,%xmm3 + vmovdqu (%rcx),%xmm0 + vpxor %xmm0,%xmm1,%xmm1 + vpxor %xmm0,%xmm2,%xmm2 + vpxor %xmm0,%xmm3,%xmm3 + vmovdqu 16(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 32(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 48(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 64(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 80(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 96(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 112(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 128(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 144(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 160(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 176(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 192(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 208(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 224(%rcx),%xmm0 + vaesdeclast %xmm0,%xmm1,%xmm1 + vaesdeclast %xmm0,%xmm2,%xmm2 + vaesdeclast %xmm0,%xmm3,%xmm3 + vpxor %xmm9,%xmm1,%xmm1 + vpxor %xmm10,%xmm2,%xmm2 + vpxor %xmm11,%xmm3,%xmm3 + vmovdqu %xmm1,(%rsi) + vmovdqu %xmm2,16(%rsi) + vmovdqu %xmm3,32(%rsi) + addq $0x30,%rsi + vmovdqa %xmm3,%xmm8 + vmovdqa %xmm13,%xmm0 + jmp L$_steal_cipher_EmbgEptodyewbFa + +L$_done_3_remain_EmbgEptodyewbFa: + vextracti32x4 $0x1,%zmm9,%xmm10 + vextracti32x4 $0x2,%zmm9,%xmm11 + vpxor %xmm9,%xmm1,%xmm1 + vpxor %xmm10,%xmm2,%xmm2 + vpxor %xmm11,%xmm3,%xmm3 + vmovdqu (%rcx),%xmm0 + vpxor %xmm0,%xmm1,%xmm1 + vpxor %xmm0,%xmm2,%xmm2 + vpxor %xmm0,%xmm3,%xmm3 + vmovdqu 16(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 32(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 48(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 64(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 80(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 96(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 112(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 128(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 144(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 160(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 176(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 192(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 208(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 224(%rcx),%xmm0 + vaesdeclast %xmm0,%xmm1,%xmm1 + vaesdeclast %xmm0,%xmm2,%xmm2 + vaesdeclast %xmm0,%xmm3,%xmm3 + vpxor %xmm9,%xmm1,%xmm1 + vpxor %xmm10,%xmm2,%xmm2 + vpxor %xmm11,%xmm3,%xmm3 + vmovdqu %xmm1,(%rsi) + vmovdqu %xmm2,16(%rsi) + vmovdqu %xmm3,32(%rsi) + jmp L$_ret_EmbgEptodyewbFa + +L$_remaining_num_blocks_is_2_EmbgEptodyewbFa: + vmovdqu (%rdi),%xmm1 + vmovdqu 16(%rdi),%xmm2 + addq $0x20,%rdi + andq $0xf,%rdx + je L$_done_2_remain_EmbgEptodyewbFa + vextracti32x4 $0x2,%zmm9,%xmm10 + vextracti32x4 $0x1,%zmm9,%xmm12 + vpxor %xmm9,%xmm1,%xmm1 + vpxor %xmm10,%xmm2,%xmm2 + vmovdqu (%rcx),%xmm0 + vpxor %xmm0,%xmm1,%xmm1 + vpxor %xmm0,%xmm2,%xmm2 + vmovdqu 16(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 32(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 48(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 64(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 80(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 96(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 112(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 128(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 144(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 160(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 176(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 192(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 208(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 224(%rcx),%xmm0 + vaesdeclast %xmm0,%xmm1,%xmm1 + vaesdeclast %xmm0,%xmm2,%xmm2 + vpxor %xmm9,%xmm1,%xmm1 + vpxor %xmm10,%xmm2,%xmm2 + vmovdqu %xmm1,(%rsi) + vmovdqu %xmm2,16(%rsi) + addq $0x20,%rsi + vmovdqa %xmm2,%xmm8 + vmovdqa %xmm12,%xmm0 + jmp L$_steal_cipher_EmbgEptodyewbFa + +L$_done_2_remain_EmbgEptodyewbFa: + vextracti32x4 $0x1,%zmm9,%xmm10 + vpxor %xmm9,%xmm1,%xmm1 + vpxor %xmm10,%xmm2,%xmm2 + vmovdqu (%rcx),%xmm0 + vpxor %xmm0,%xmm1,%xmm1 + vpxor %xmm0,%xmm2,%xmm2 + vmovdqu 16(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 32(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 48(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 64(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 80(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 96(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 112(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 128(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 144(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 160(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 176(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 192(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 208(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 224(%rcx),%xmm0 + vaesdeclast %xmm0,%xmm1,%xmm1 + vaesdeclast %xmm0,%xmm2,%xmm2 + vpxor %xmm9,%xmm1,%xmm1 + vpxor %xmm10,%xmm2,%xmm2 + vmovdqu %xmm1,(%rsi) + vmovdqu %xmm2,16(%rsi) + jmp L$_ret_EmbgEptodyewbFa + +L$_remaining_num_blocks_is_1_EmbgEptodyewbFa: + vmovdqu (%rdi),%xmm1 + addq $0x10,%rdi + andq $0xf,%rdx + je L$_done_1_remain_EmbgEptodyewbFa + vextracti32x4 $0x1,%zmm9,%xmm11 + vpxor %xmm11,%xmm1,%xmm1 + vmovdqu (%rcx),%xmm0 + vpxor %xmm0,%xmm1,%xmm1 + vmovdqu 16(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 32(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 48(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 64(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 80(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 96(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 112(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 128(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 144(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 160(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 176(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 192(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 208(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 224(%rcx),%xmm0 + vaesdeclast %xmm0,%xmm1,%xmm1 + vpxor %xmm11,%xmm1,%xmm1 + vmovdqu %xmm1,(%rsi) + addq $0x10,%rsi + vmovdqa %xmm1,%xmm8 + vmovdqa %xmm9,%xmm0 + jmp L$_steal_cipher_EmbgEptodyewbFa + +L$_done_1_remain_EmbgEptodyewbFa: + vpxor %xmm9,%xmm1,%xmm1 + vmovdqu (%rcx),%xmm0 + vpxor %xmm0,%xmm1,%xmm1 + vmovdqu 16(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 32(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 48(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 64(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 80(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 96(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 112(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 128(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 144(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 160(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 176(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 192(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 208(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 224(%rcx),%xmm0 + vaesdeclast %xmm0,%xmm1,%xmm1 + vpxor %xmm9,%xmm1,%xmm1 + vmovdqu %xmm1,(%rsi) + jmp L$_ret_EmbgEptodyewbFa + +L$_start_by16_EmbgEptodyewbFa: + vbroadcasti32x4 (%rsp),%zmm0 + vbroadcasti32x4 shufb_15_7(%rip),%zmm8 + movq $0xaa,%r8 + kmovq %r8,%k2 + + + vpshufb %zmm8,%zmm0,%zmm1 + vpsllvq const_dq3210(%rip),%zmm0,%zmm4 + vpsrlvq const_dq5678(%rip),%zmm1,%zmm2 + vpclmulqdq $0x0,%zmm25,%zmm2,%zmm3 + vpxorq %zmm2,%zmm4,%zmm4{%k2} + vpxord %zmm4,%zmm3,%zmm9 + + + vpsllvq const_dq7654(%rip),%zmm0,%zmm5 + vpsrlvq const_dq1234(%rip),%zmm1,%zmm6 + vpclmulqdq $0x0,%zmm25,%zmm6,%zmm7 + vpxorq %zmm6,%zmm5,%zmm5{%k2} + vpxord %zmm5,%zmm7,%zmm10 + + + vpsrldq $0xf,%zmm9,%zmm13 + vpclmulqdq $0x0,%zmm25,%zmm13,%zmm14 + vpslldq $0x1,%zmm9,%zmm11 + vpxord %zmm14,%zmm11,%zmm11 + + vpsrldq $0xf,%zmm10,%zmm15 + vpclmulqdq $0x0,%zmm25,%zmm15,%zmm16 + vpslldq $0x1,%zmm10,%zmm12 + vpxord %zmm16,%zmm12,%zmm12 + +L$_main_loop_run_16_EmbgEptodyewbFa: + vmovdqu8 (%rdi),%zmm1 + vmovdqu8 64(%rdi),%zmm2 + vmovdqu8 128(%rdi),%zmm3 + vmovdqu8 192(%rdi),%zmm4 + vmovdqu8 240(%rdi),%xmm5 + addq $0x100,%rdi + vpxorq %zmm9,%zmm1,%zmm1 + vpxorq %zmm10,%zmm2,%zmm2 + vpxorq %zmm11,%zmm3,%zmm3 + vpxorq %zmm12,%zmm4,%zmm4 + vbroadcasti32x4 (%rcx),%zmm0 + vpxorq %zmm0,%zmm1,%zmm1 + vpxorq %zmm0,%zmm2,%zmm2 + vpxorq %zmm0,%zmm3,%zmm3 + vpxorq %zmm0,%zmm4,%zmm4 + vpsrldq $0xf,%zmm11,%zmm13 + vpclmulqdq $0x0,%zmm25,%zmm13,%zmm14 + vpslldq $0x1,%zmm11,%zmm15 + vpxord %zmm14,%zmm15,%zmm15 + vbroadcasti32x4 16(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + vaesdec %zmm0,%zmm3,%zmm3 + vaesdec %zmm0,%zmm4,%zmm4 + vbroadcasti32x4 32(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + vaesdec %zmm0,%zmm3,%zmm3 + vaesdec %zmm0,%zmm4,%zmm4 + vbroadcasti32x4 48(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + vaesdec %zmm0,%zmm3,%zmm3 + vaesdec %zmm0,%zmm4,%zmm4 + vpsrldq $0xf,%zmm12,%zmm13 + vpclmulqdq $0x0,%zmm25,%zmm13,%zmm14 + vpslldq $0x1,%zmm12,%zmm16 + vpxord %zmm14,%zmm16,%zmm16 + vbroadcasti32x4 64(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + vaesdec %zmm0,%zmm3,%zmm3 + vaesdec %zmm0,%zmm4,%zmm4 + vbroadcasti32x4 80(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + vaesdec %zmm0,%zmm3,%zmm3 + vaesdec %zmm0,%zmm4,%zmm4 + vbroadcasti32x4 96(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + vaesdec %zmm0,%zmm3,%zmm3 + vaesdec %zmm0,%zmm4,%zmm4 + vpsrldq $0xf,%zmm15,%zmm13 + vpclmulqdq $0x0,%zmm25,%zmm13,%zmm14 + vpslldq $0x1,%zmm15,%zmm17 + vpxord %zmm14,%zmm17,%zmm17 + vbroadcasti32x4 112(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + vaesdec %zmm0,%zmm3,%zmm3 + vaesdec %zmm0,%zmm4,%zmm4 + vbroadcasti32x4 128(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + vaesdec %zmm0,%zmm3,%zmm3 + vaesdec %zmm0,%zmm4,%zmm4 + vbroadcasti32x4 144(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + vaesdec %zmm0,%zmm3,%zmm3 + vaesdec %zmm0,%zmm4,%zmm4 + vpsrldq $0xf,%zmm16,%zmm13 + vpclmulqdq $0x0,%zmm25,%zmm13,%zmm14 + vpslldq $0x1,%zmm16,%zmm18 + vpxord %zmm14,%zmm18,%zmm18 + vbroadcasti32x4 160(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + vaesdec %zmm0,%zmm3,%zmm3 + vaesdec %zmm0,%zmm4,%zmm4 + vbroadcasti32x4 176(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + vaesdec %zmm0,%zmm3,%zmm3 + vaesdec %zmm0,%zmm4,%zmm4 + vbroadcasti32x4 192(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + vaesdec %zmm0,%zmm3,%zmm3 + vaesdec %zmm0,%zmm4,%zmm4 + vbroadcasti32x4 208(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + vaesdec %zmm0,%zmm3,%zmm3 + vaesdec %zmm0,%zmm4,%zmm4 + vbroadcasti32x4 224(%rcx),%zmm0 + vaesdeclast %zmm0,%zmm1,%zmm1 + vaesdeclast %zmm0,%zmm2,%zmm2 + vaesdeclast %zmm0,%zmm3,%zmm3 + vaesdeclast %zmm0,%zmm4,%zmm4 + vpxorq %zmm9,%zmm1,%zmm1 + vpxorq %zmm10,%zmm2,%zmm2 + vpxorq %zmm11,%zmm3,%zmm3 + vpxorq %zmm12,%zmm4,%zmm4 + + vmovdqa32 %zmm15,%zmm9 + vmovdqa32 %zmm16,%zmm10 + vmovdqa32 %zmm17,%zmm11 + vmovdqa32 %zmm18,%zmm12 + vmovdqu8 %zmm1,(%rsi) + vmovdqu8 %zmm2,64(%rsi) + vmovdqu8 %zmm3,128(%rsi) + vmovdqu8 %zmm4,192(%rsi) + addq $0x100,%rsi + subq $0x100,%rdx + cmpq $0x100,%rdx + jge L$_main_loop_run_16_EmbgEptodyewbFa + + cmpq $0x80,%rdx + jge L$_main_loop_run_8_EmbgEptodyewbFa + jmp L$_do_n_blocks_EmbgEptodyewbFa + +L$_start_by8_EmbgEptodyewbFa: + + vbroadcasti32x4 (%rsp),%zmm0 + vbroadcasti32x4 shufb_15_7(%rip),%zmm8 + movq $0xaa,%r8 + kmovq %r8,%k2 + + + vpshufb %zmm8,%zmm0,%zmm1 + vpsllvq const_dq3210(%rip),%zmm0,%zmm4 + vpsrlvq const_dq5678(%rip),%zmm1,%zmm2 + vpclmulqdq $0x0,%zmm25,%zmm2,%zmm3 + vpxorq %zmm2,%zmm4,%zmm4{%k2} + vpxord %zmm4,%zmm3,%zmm9 + + + vpsllvq const_dq7654(%rip),%zmm0,%zmm5 + vpsrlvq const_dq1234(%rip),%zmm1,%zmm6 + vpclmulqdq $0x0,%zmm25,%zmm6,%zmm7 + vpxorq %zmm6,%zmm5,%zmm5{%k2} + vpxord %zmm5,%zmm7,%zmm10 + +L$_main_loop_run_8_EmbgEptodyewbFa: + vmovdqu8 (%rdi),%zmm1 + vmovdqu8 64(%rdi),%zmm2 + vmovdqu8 112(%rdi),%xmm5 + addq $0x80,%rdi + + vpxorq %zmm9,%zmm1,%zmm1 + vpxorq %zmm10,%zmm2,%zmm2 + + + vbroadcasti32x4 (%rcx),%zmm0 + vpxorq %zmm0,%zmm1,%zmm1 + vpxorq %zmm0,%zmm2,%zmm2 + vpsrldq $0xf,%zmm9,%zmm13 + vpclmulqdq $0x0,%zmm25,%zmm13,%zmm14 + vpslldq $0x1,%zmm9,%zmm15 + vpxord %zmm14,%zmm15,%zmm15 + vbroadcasti32x4 16(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 32(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 48(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + vpsrldq $0xf,%zmm10,%zmm13 + vpclmulqdq $0x0,%zmm25,%zmm13,%zmm14 + vpslldq $0x1,%zmm10,%zmm16 + vpxord %zmm14,%zmm16,%zmm16 + + vbroadcasti32x4 64(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 80(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 96(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 112(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 128(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 144(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 160(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 176(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 192(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 208(%rcx),%zmm0 + vaesdec %zmm0,%zmm1,%zmm1 + vaesdec %zmm0,%zmm2,%zmm2 + + + vbroadcasti32x4 224(%rcx),%zmm0 + vaesdeclast %zmm0,%zmm1,%zmm1 + vaesdeclast %zmm0,%zmm2,%zmm2 + + vpxorq %zmm9,%zmm1,%zmm1 + vpxorq %zmm10,%zmm2,%zmm2 + + + vmovdqa32 %zmm15,%zmm9 + vmovdqa32 %zmm16,%zmm10 + vmovdqu8 %zmm1,(%rsi) + vmovdqu8 %zmm2,64(%rsi) + addq $0x80,%rsi + subq $0x80,%rdx + cmpq $0x80,%rdx + jge L$_main_loop_run_8_EmbgEptodyewbFa + jmp L$_do_n_blocks_EmbgEptodyewbFa + +L$_steal_cipher_EmbgEptodyewbFa: + + vmovdqa %xmm8,%xmm2 + + + leaq vpshufb_shf_table(%rip),%rax + vmovdqu (%rax,%rdx,1),%xmm10 + vpshufb %xmm10,%xmm8,%xmm8 + + + vmovdqu -16(%rdi,%rdx,1),%xmm3 + vmovdqu %xmm8,-16(%rsi,%rdx,1) + + + leaq vpshufb_shf_table(%rip),%rax + addq $16,%rax + subq %rdx,%rax + vmovdqu (%rax),%xmm10 + vpxor mask1(%rip),%xmm10,%xmm10 + vpshufb %xmm10,%xmm3,%xmm3 + + vpblendvb %xmm10,%xmm2,%xmm3,%xmm3 + + + vpxor %xmm0,%xmm3,%xmm8 + + + vpxor (%rcx),%xmm8,%xmm8 + vaesdec 16(%rcx),%xmm8,%xmm8 + vaesdec 32(%rcx),%xmm8,%xmm8 + vaesdec 48(%rcx),%xmm8,%xmm8 + vaesdec 64(%rcx),%xmm8,%xmm8 + vaesdec 80(%rcx),%xmm8,%xmm8 + vaesdec 96(%rcx),%xmm8,%xmm8 + vaesdec 112(%rcx),%xmm8,%xmm8 + vaesdec 128(%rcx),%xmm8,%xmm8 + vaesdec 144(%rcx),%xmm8,%xmm8 + vaesdec 160(%rcx),%xmm8,%xmm8 + vaesdec 176(%rcx),%xmm8,%xmm8 + vaesdec 192(%rcx),%xmm8,%xmm8 + vaesdec 208(%rcx),%xmm8,%xmm8 + vaesdeclast 224(%rcx),%xmm8,%xmm8 + + vpxor %xmm0,%xmm8,%xmm8 + +L$_done_EmbgEptodyewbFa: + + vmovdqu %xmm8,-16(%rsi) +L$_ret_EmbgEptodyewbFa: + movq 128(%rsp),%rbx + xorq %r8,%r8 + movq %r8,128(%rsp) + + vpxorq %zmm0,%zmm0,%zmm0 + movq %rbp,%rsp + popq %rbp + vzeroupper + .byte 0xf3,0xc3 + +L$_less_than_128_bytes_EmbgEptodyewbFa: + cmpq $0x10,%rdx + jb L$_ret_EmbgEptodyewbFa + + movq %rdx,%r8 + andq $0x70,%r8 + cmpq $0x60,%r8 + je L$_num_blocks_is_6_EmbgEptodyewbFa + cmpq $0x50,%r8 + je L$_num_blocks_is_5_EmbgEptodyewbFa + cmpq $0x40,%r8 + je L$_num_blocks_is_4_EmbgEptodyewbFa + cmpq $0x30,%r8 + je L$_num_blocks_is_3_EmbgEptodyewbFa + cmpq $0x20,%r8 + je L$_num_blocks_is_2_EmbgEptodyewbFa + cmpq $0x10,%r8 + je L$_num_blocks_is_1_EmbgEptodyewbFa + +L$_num_blocks_is_7_EmbgEptodyewbFa: + vmovdqa 0(%rsp),%xmm9 + movq 0(%rsp),%rax + movq 8(%rsp),%rbx + vmovdqu 0(%rdi),%xmm1 + xorq %r11,%r11 + shlq $1,%rax + adcq %rbx,%rbx + cmovcq %r10,%r11 + xorq %r11,%rax + movq %rax,16(%rsp) + movq %rbx,16 + 8(%rsp) + vmovdqa 16(%rsp),%xmm10 + vmovdqu 16(%rdi),%xmm2 + xorq %r11,%r11 + shlq $1,%rax + adcq %rbx,%rbx + cmovcq %r10,%r11 + xorq %r11,%rax + movq %rax,32(%rsp) + movq %rbx,32 + 8(%rsp) + vmovdqa 32(%rsp),%xmm11 + vmovdqu 32(%rdi),%xmm3 + xorq %r11,%r11 + shlq $1,%rax + adcq %rbx,%rbx + cmovcq %r10,%r11 + xorq %r11,%rax + movq %rax,48(%rsp) + movq %rbx,48 + 8(%rsp) + vmovdqa 48(%rsp),%xmm12 + vmovdqu 48(%rdi),%xmm4 + xorq %r11,%r11 + shlq $1,%rax + adcq %rbx,%rbx + cmovcq %r10,%r11 + xorq %r11,%rax + movq %rax,64(%rsp) + movq %rbx,64 + 8(%rsp) + vmovdqa 64(%rsp),%xmm13 + vmovdqu 64(%rdi),%xmm5 + xorq %r11,%r11 + shlq $1,%rax + adcq %rbx,%rbx + cmovcq %r10,%r11 + xorq %r11,%rax + movq %rax,80(%rsp) + movq %rbx,80 + 8(%rsp) + vmovdqa 80(%rsp),%xmm14 + vmovdqu 80(%rdi),%xmm6 + xorq %r11,%r11 + shlq $1,%rax + adcq %rbx,%rbx + cmovcq %r10,%r11 + xorq %r11,%rax + movq %rax,96(%rsp) + movq %rbx,96 + 8(%rsp) + vmovdqa 96(%rsp),%xmm15 + vmovdqu 96(%rdi),%xmm7 + addq $0x70,%rdi + andq $0xf,%rdx + je L$_done_7_EmbgEptodyewbFa + +L$_steal_cipher_7_EmbgEptodyewbFa: + xorq %r11,%r11 + shlq $1,%rax + adcq %rbx,%rbx + cmovcq %r10,%r11 + xorq %r11,%rax + movq %rax,16(%rsp) + movq %rbx,24(%rsp) + vmovdqa64 %xmm15,%xmm16 + vmovdqa 16(%rsp),%xmm15 + vpxor %xmm9,%xmm1,%xmm1 + vpxor %xmm10,%xmm2,%xmm2 + vpxor %xmm11,%xmm3,%xmm3 + vpxor %xmm12,%xmm4,%xmm4 + vpxor %xmm13,%xmm5,%xmm5 + vpxor %xmm14,%xmm6,%xmm6 + vpxor %xmm15,%xmm7,%xmm7 + vmovdqu (%rcx),%xmm0 + vpxor %xmm0,%xmm1,%xmm1 + vpxor %xmm0,%xmm2,%xmm2 + vpxor %xmm0,%xmm3,%xmm3 + vpxor %xmm0,%xmm4,%xmm4 + vpxor %xmm0,%xmm5,%xmm5 + vpxor %xmm0,%xmm6,%xmm6 + vpxor %xmm0,%xmm7,%xmm7 + vmovdqu 16(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vaesdec %xmm0,%xmm7,%xmm7 + vmovdqu 32(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vaesdec %xmm0,%xmm7,%xmm7 + vmovdqu 48(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vaesdec %xmm0,%xmm7,%xmm7 + vmovdqu 64(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vaesdec %xmm0,%xmm7,%xmm7 + vmovdqu 80(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vaesdec %xmm0,%xmm7,%xmm7 + vmovdqu 96(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vaesdec %xmm0,%xmm7,%xmm7 + vmovdqu 112(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vaesdec %xmm0,%xmm7,%xmm7 + vmovdqu 128(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vaesdec %xmm0,%xmm7,%xmm7 + vmovdqu 144(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vaesdec %xmm0,%xmm7,%xmm7 + vmovdqu 160(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vaesdec %xmm0,%xmm7,%xmm7 + vmovdqu 176(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vaesdec %xmm0,%xmm7,%xmm7 + vmovdqu 192(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vaesdec %xmm0,%xmm7,%xmm7 + vmovdqu 208(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vaesdec %xmm0,%xmm7,%xmm7 + vmovdqu 224(%rcx),%xmm0 + vaesdeclast %xmm0,%xmm1,%xmm1 + vaesdeclast %xmm0,%xmm2,%xmm2 + vaesdeclast %xmm0,%xmm3,%xmm3 + vaesdeclast %xmm0,%xmm4,%xmm4 + vaesdeclast %xmm0,%xmm5,%xmm5 + vaesdeclast %xmm0,%xmm6,%xmm6 + vaesdeclast %xmm0,%xmm7,%xmm7 + vpxor %xmm9,%xmm1,%xmm1 + vpxor %xmm10,%xmm2,%xmm2 + vpxor %xmm11,%xmm3,%xmm3 + vpxor %xmm12,%xmm4,%xmm4 + vpxor %xmm13,%xmm5,%xmm5 + vpxor %xmm14,%xmm6,%xmm6 + vpxor %xmm15,%xmm7,%xmm7 + vmovdqu %xmm1,(%rsi) + vmovdqu %xmm2,16(%rsi) + vmovdqu %xmm3,32(%rsi) + vmovdqu %xmm4,48(%rsi) + vmovdqu %xmm5,64(%rsi) + vmovdqu %xmm6,80(%rsi) + addq $0x70,%rsi + vmovdqa64 %xmm16,%xmm0 + vmovdqa %xmm7,%xmm8 + jmp L$_steal_cipher_EmbgEptodyewbFa + +L$_done_7_EmbgEptodyewbFa: + vpxor %xmm9,%xmm1,%xmm1 + vpxor %xmm10,%xmm2,%xmm2 + vpxor %xmm11,%xmm3,%xmm3 + vpxor %xmm12,%xmm4,%xmm4 + vpxor %xmm13,%xmm5,%xmm5 + vpxor %xmm14,%xmm6,%xmm6 + vpxor %xmm15,%xmm7,%xmm7 + vmovdqu (%rcx),%xmm0 + vpxor %xmm0,%xmm1,%xmm1 + vpxor %xmm0,%xmm2,%xmm2 + vpxor %xmm0,%xmm3,%xmm3 + vpxor %xmm0,%xmm4,%xmm4 + vpxor %xmm0,%xmm5,%xmm5 + vpxor %xmm0,%xmm6,%xmm6 + vpxor %xmm0,%xmm7,%xmm7 + vmovdqu 16(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vaesdec %xmm0,%xmm7,%xmm7 + vmovdqu 32(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vaesdec %xmm0,%xmm7,%xmm7 + vmovdqu 48(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vaesdec %xmm0,%xmm7,%xmm7 + vmovdqu 64(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vaesdec %xmm0,%xmm7,%xmm7 + vmovdqu 80(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vaesdec %xmm0,%xmm7,%xmm7 + vmovdqu 96(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vaesdec %xmm0,%xmm7,%xmm7 + vmovdqu 112(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vaesdec %xmm0,%xmm7,%xmm7 + vmovdqu 128(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vaesdec %xmm0,%xmm7,%xmm7 + vmovdqu 144(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vaesdec %xmm0,%xmm7,%xmm7 + vmovdqu 160(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vaesdec %xmm0,%xmm7,%xmm7 + vmovdqu 176(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vaesdec %xmm0,%xmm7,%xmm7 + vmovdqu 192(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vaesdec %xmm0,%xmm7,%xmm7 + vmovdqu 208(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vaesdec %xmm0,%xmm7,%xmm7 + vmovdqu 224(%rcx),%xmm0 + vaesdeclast %xmm0,%xmm1,%xmm1 + vaesdeclast %xmm0,%xmm2,%xmm2 + vaesdeclast %xmm0,%xmm3,%xmm3 + vaesdeclast %xmm0,%xmm4,%xmm4 + vaesdeclast %xmm0,%xmm5,%xmm5 + vaesdeclast %xmm0,%xmm6,%xmm6 + vaesdeclast %xmm0,%xmm7,%xmm7 + vpxor %xmm9,%xmm1,%xmm1 + vpxor %xmm10,%xmm2,%xmm2 + vpxor %xmm11,%xmm3,%xmm3 + vpxor %xmm12,%xmm4,%xmm4 + vpxor %xmm13,%xmm5,%xmm5 + vpxor %xmm14,%xmm6,%xmm6 + vpxor %xmm15,%xmm7,%xmm7 + vmovdqu %xmm1,(%rsi) + vmovdqu %xmm2,16(%rsi) + vmovdqu %xmm3,32(%rsi) + vmovdqu %xmm4,48(%rsi) + vmovdqu %xmm5,64(%rsi) + vmovdqu %xmm6,80(%rsi) + addq $0x70,%rsi + vmovdqa %xmm7,%xmm8 + jmp L$_done_EmbgEptodyewbFa + +L$_num_blocks_is_6_EmbgEptodyewbFa: + vmovdqa 0(%rsp),%xmm9 + movq 0(%rsp),%rax + movq 8(%rsp),%rbx + vmovdqu 0(%rdi),%xmm1 + xorq %r11,%r11 + shlq $1,%rax + adcq %rbx,%rbx + cmovcq %r10,%r11 + xorq %r11,%rax + movq %rax,16(%rsp) + movq %rbx,16 + 8(%rsp) + vmovdqa 16(%rsp),%xmm10 + vmovdqu 16(%rdi),%xmm2 + xorq %r11,%r11 + shlq $1,%rax + adcq %rbx,%rbx + cmovcq %r10,%r11 + xorq %r11,%rax + movq %rax,32(%rsp) + movq %rbx,32 + 8(%rsp) + vmovdqa 32(%rsp),%xmm11 + vmovdqu 32(%rdi),%xmm3 + xorq %r11,%r11 + shlq $1,%rax + adcq %rbx,%rbx + cmovcq %r10,%r11 + xorq %r11,%rax + movq %rax,48(%rsp) + movq %rbx,48 + 8(%rsp) + vmovdqa 48(%rsp),%xmm12 + vmovdqu 48(%rdi),%xmm4 + xorq %r11,%r11 + shlq $1,%rax + adcq %rbx,%rbx + cmovcq %r10,%r11 + xorq %r11,%rax + movq %rax,64(%rsp) + movq %rbx,64 + 8(%rsp) + vmovdqa 64(%rsp),%xmm13 + vmovdqu 64(%rdi),%xmm5 + xorq %r11,%r11 + shlq $1,%rax + adcq %rbx,%rbx + cmovcq %r10,%r11 + xorq %r11,%rax + movq %rax,80(%rsp) + movq %rbx,80 + 8(%rsp) + vmovdqa 80(%rsp),%xmm14 + vmovdqu 80(%rdi),%xmm6 + addq $0x60,%rdi + andq $0xf,%rdx + je L$_done_6_EmbgEptodyewbFa + +L$_steal_cipher_6_EmbgEptodyewbFa: + xorq %r11,%r11 + shlq $1,%rax + adcq %rbx,%rbx + cmovcq %r10,%r11 + xorq %r11,%rax + movq %rax,16(%rsp) + movq %rbx,24(%rsp) + vmovdqa64 %xmm14,%xmm15 + vmovdqa 16(%rsp),%xmm14 + vpxor %xmm9,%xmm1,%xmm1 + vpxor %xmm10,%xmm2,%xmm2 + vpxor %xmm11,%xmm3,%xmm3 + vpxor %xmm12,%xmm4,%xmm4 + vpxor %xmm13,%xmm5,%xmm5 + vpxor %xmm14,%xmm6,%xmm6 + vmovdqu (%rcx),%xmm0 + vpxor %xmm0,%xmm1,%xmm1 + vpxor %xmm0,%xmm2,%xmm2 + vpxor %xmm0,%xmm3,%xmm3 + vpxor %xmm0,%xmm4,%xmm4 + vpxor %xmm0,%xmm5,%xmm5 + vpxor %xmm0,%xmm6,%xmm6 + vmovdqu 16(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vmovdqu 32(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vmovdqu 48(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vmovdqu 64(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vmovdqu 80(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vmovdqu 96(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vmovdqu 112(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vmovdqu 128(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vmovdqu 144(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vmovdqu 160(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vmovdqu 176(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vmovdqu 192(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vmovdqu 208(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vmovdqu 224(%rcx),%xmm0 + vaesdeclast %xmm0,%xmm1,%xmm1 + vaesdeclast %xmm0,%xmm2,%xmm2 + vaesdeclast %xmm0,%xmm3,%xmm3 + vaesdeclast %xmm0,%xmm4,%xmm4 + vaesdeclast %xmm0,%xmm5,%xmm5 + vaesdeclast %xmm0,%xmm6,%xmm6 + vpxor %xmm9,%xmm1,%xmm1 + vpxor %xmm10,%xmm2,%xmm2 + vpxor %xmm11,%xmm3,%xmm3 + vpxor %xmm12,%xmm4,%xmm4 + vpxor %xmm13,%xmm5,%xmm5 + vpxor %xmm14,%xmm6,%xmm6 + vmovdqu %xmm1,(%rsi) + vmovdqu %xmm2,16(%rsi) + vmovdqu %xmm3,32(%rsi) + vmovdqu %xmm4,48(%rsi) + vmovdqu %xmm5,64(%rsi) + addq $0x60,%rsi + vmovdqa %xmm15,%xmm0 + vmovdqa %xmm6,%xmm8 + jmp L$_steal_cipher_EmbgEptodyewbFa + +L$_done_6_EmbgEptodyewbFa: + vpxor %xmm9,%xmm1,%xmm1 + vpxor %xmm10,%xmm2,%xmm2 + vpxor %xmm11,%xmm3,%xmm3 + vpxor %xmm12,%xmm4,%xmm4 + vpxor %xmm13,%xmm5,%xmm5 + vpxor %xmm14,%xmm6,%xmm6 + vmovdqu (%rcx),%xmm0 + vpxor %xmm0,%xmm1,%xmm1 + vpxor %xmm0,%xmm2,%xmm2 + vpxor %xmm0,%xmm3,%xmm3 + vpxor %xmm0,%xmm4,%xmm4 + vpxor %xmm0,%xmm5,%xmm5 + vpxor %xmm0,%xmm6,%xmm6 + vmovdqu 16(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vmovdqu 32(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vmovdqu 48(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vmovdqu 64(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vmovdqu 80(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vmovdqu 96(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vmovdqu 112(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vmovdqu 128(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vmovdqu 144(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vmovdqu 160(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vmovdqu 176(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vmovdqu 192(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vmovdqu 208(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vmovdqu 224(%rcx),%xmm0 + vaesdeclast %xmm0,%xmm1,%xmm1 + vaesdeclast %xmm0,%xmm2,%xmm2 + vaesdeclast %xmm0,%xmm3,%xmm3 + vaesdeclast %xmm0,%xmm4,%xmm4 + vaesdeclast %xmm0,%xmm5,%xmm5 + vaesdeclast %xmm0,%xmm6,%xmm6 + vpxor %xmm9,%xmm1,%xmm1 + vpxor %xmm10,%xmm2,%xmm2 + vpxor %xmm11,%xmm3,%xmm3 + vpxor %xmm12,%xmm4,%xmm4 + vpxor %xmm13,%xmm5,%xmm5 + vpxor %xmm14,%xmm6,%xmm6 + vmovdqu %xmm1,(%rsi) + vmovdqu %xmm2,16(%rsi) + vmovdqu %xmm3,32(%rsi) + vmovdqu %xmm4,48(%rsi) + vmovdqu %xmm5,64(%rsi) + addq $0x60,%rsi + vmovdqa %xmm6,%xmm8 + jmp L$_done_EmbgEptodyewbFa + +L$_num_blocks_is_5_EmbgEptodyewbFa: + vmovdqa 0(%rsp),%xmm9 + movq 0(%rsp),%rax + movq 8(%rsp),%rbx + vmovdqu 0(%rdi),%xmm1 + xorq %r11,%r11 + shlq $1,%rax + adcq %rbx,%rbx + cmovcq %r10,%r11 + xorq %r11,%rax + movq %rax,16(%rsp) + movq %rbx,16 + 8(%rsp) + vmovdqa 16(%rsp),%xmm10 + vmovdqu 16(%rdi),%xmm2 + xorq %r11,%r11 + shlq $1,%rax + adcq %rbx,%rbx + cmovcq %r10,%r11 + xorq %r11,%rax + movq %rax,32(%rsp) + movq %rbx,32 + 8(%rsp) + vmovdqa 32(%rsp),%xmm11 + vmovdqu 32(%rdi),%xmm3 + xorq %r11,%r11 + shlq $1,%rax + adcq %rbx,%rbx + cmovcq %r10,%r11 + xorq %r11,%rax + movq %rax,48(%rsp) + movq %rbx,48 + 8(%rsp) + vmovdqa 48(%rsp),%xmm12 + vmovdqu 48(%rdi),%xmm4 + xorq %r11,%r11 + shlq $1,%rax + adcq %rbx,%rbx + cmovcq %r10,%r11 + xorq %r11,%rax + movq %rax,64(%rsp) + movq %rbx,64 + 8(%rsp) + vmovdqa 64(%rsp),%xmm13 + vmovdqu 64(%rdi),%xmm5 + addq $0x50,%rdi + andq $0xf,%rdx + je L$_done_5_EmbgEptodyewbFa + +L$_steal_cipher_5_EmbgEptodyewbFa: + xorq %r11,%r11 + shlq $1,%rax + adcq %rbx,%rbx + cmovcq %r10,%r11 + xorq %r11,%rax + movq %rax,16(%rsp) + movq %rbx,24(%rsp) + vmovdqa64 %xmm13,%xmm14 + vmovdqa 16(%rsp),%xmm13 + vpxor %xmm9,%xmm1,%xmm1 + vpxor %xmm10,%xmm2,%xmm2 + vpxor %xmm11,%xmm3,%xmm3 + vpxor %xmm12,%xmm4,%xmm4 + vpxor %xmm13,%xmm5,%xmm5 + vmovdqu (%rcx),%xmm0 + vpxor %xmm0,%xmm1,%xmm1 + vpxor %xmm0,%xmm2,%xmm2 + vpxor %xmm0,%xmm3,%xmm3 + vpxor %xmm0,%xmm4,%xmm4 + vpxor %xmm0,%xmm5,%xmm5 + vmovdqu 16(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vmovdqu 32(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vmovdqu 48(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vmovdqu 64(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vmovdqu 80(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vmovdqu 96(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vmovdqu 112(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vmovdqu 128(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vmovdqu 144(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vmovdqu 160(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vmovdqu 176(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vmovdqu 192(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vmovdqu 208(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vmovdqu 224(%rcx),%xmm0 + vaesdeclast %xmm0,%xmm1,%xmm1 + vaesdeclast %xmm0,%xmm2,%xmm2 + vaesdeclast %xmm0,%xmm3,%xmm3 + vaesdeclast %xmm0,%xmm4,%xmm4 + vaesdeclast %xmm0,%xmm5,%xmm5 + vpxor %xmm9,%xmm1,%xmm1 + vpxor %xmm10,%xmm2,%xmm2 + vpxor %xmm11,%xmm3,%xmm3 + vpxor %xmm12,%xmm4,%xmm4 + vpxor %xmm13,%xmm5,%xmm5 + vmovdqu %xmm1,(%rsi) + vmovdqu %xmm2,16(%rsi) + vmovdqu %xmm3,32(%rsi) + vmovdqu %xmm4,48(%rsi) + addq $0x50,%rsi + vmovdqa %xmm14,%xmm0 + vmovdqa %xmm5,%xmm8 + jmp L$_steal_cipher_EmbgEptodyewbFa + +L$_done_5_EmbgEptodyewbFa: + vpxor %xmm9,%xmm1,%xmm1 + vpxor %xmm10,%xmm2,%xmm2 + vpxor %xmm11,%xmm3,%xmm3 + vpxor %xmm12,%xmm4,%xmm4 + vpxor %xmm13,%xmm5,%xmm5 + vmovdqu (%rcx),%xmm0 + vpxor %xmm0,%xmm1,%xmm1 + vpxor %xmm0,%xmm2,%xmm2 + vpxor %xmm0,%xmm3,%xmm3 + vpxor %xmm0,%xmm4,%xmm4 + vpxor %xmm0,%xmm5,%xmm5 + vmovdqu 16(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vmovdqu 32(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vmovdqu 48(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vmovdqu 64(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vmovdqu 80(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vmovdqu 96(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vmovdqu 112(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vmovdqu 128(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vmovdqu 144(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vmovdqu 160(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vmovdqu 176(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vmovdqu 192(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vmovdqu 208(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vmovdqu 224(%rcx),%xmm0 + vaesdeclast %xmm0,%xmm1,%xmm1 + vaesdeclast %xmm0,%xmm2,%xmm2 + vaesdeclast %xmm0,%xmm3,%xmm3 + vaesdeclast %xmm0,%xmm4,%xmm4 + vaesdeclast %xmm0,%xmm5,%xmm5 + vpxor %xmm9,%xmm1,%xmm1 + vpxor %xmm10,%xmm2,%xmm2 + vpxor %xmm11,%xmm3,%xmm3 + vpxor %xmm12,%xmm4,%xmm4 + vpxor %xmm13,%xmm5,%xmm5 + vmovdqu %xmm1,(%rsi) + vmovdqu %xmm2,16(%rsi) + vmovdqu %xmm3,32(%rsi) + vmovdqu %xmm4,48(%rsi) + addq $0x50,%rsi + vmovdqa %xmm5,%xmm8 + jmp L$_done_EmbgEptodyewbFa + +L$_num_blocks_is_4_EmbgEptodyewbFa: + vmovdqa 0(%rsp),%xmm9 + movq 0(%rsp),%rax + movq 8(%rsp),%rbx + vmovdqu 0(%rdi),%xmm1 + xorq %r11,%r11 + shlq $1,%rax + adcq %rbx,%rbx + cmovcq %r10,%r11 + xorq %r11,%rax + movq %rax,16(%rsp) + movq %rbx,16 + 8(%rsp) + vmovdqa 16(%rsp),%xmm10 + vmovdqu 16(%rdi),%xmm2 + xorq %r11,%r11 + shlq $1,%rax + adcq %rbx,%rbx + cmovcq %r10,%r11 + xorq %r11,%rax + movq %rax,32(%rsp) + movq %rbx,32 + 8(%rsp) + vmovdqa 32(%rsp),%xmm11 + vmovdqu 32(%rdi),%xmm3 + xorq %r11,%r11 + shlq $1,%rax + adcq %rbx,%rbx + cmovcq %r10,%r11 + xorq %r11,%rax + movq %rax,48(%rsp) + movq %rbx,48 + 8(%rsp) + vmovdqa 48(%rsp),%xmm12 + vmovdqu 48(%rdi),%xmm4 + addq $0x40,%rdi + andq $0xf,%rdx + je L$_done_4_EmbgEptodyewbFa + +L$_steal_cipher_4_EmbgEptodyewbFa: + xorq %r11,%r11 + shlq $1,%rax + adcq %rbx,%rbx + cmovcq %r10,%r11 + xorq %r11,%rax + movq %rax,16(%rsp) + movq %rbx,24(%rsp) + vmovdqa64 %xmm12,%xmm13 + vmovdqa 16(%rsp),%xmm12 + vpxor %xmm9,%xmm1,%xmm1 + vpxor %xmm10,%xmm2,%xmm2 + vpxor %xmm11,%xmm3,%xmm3 + vpxor %xmm12,%xmm4,%xmm4 + vmovdqu (%rcx),%xmm0 + vpxor %xmm0,%xmm1,%xmm1 + vpxor %xmm0,%xmm2,%xmm2 + vpxor %xmm0,%xmm3,%xmm3 + vpxor %xmm0,%xmm4,%xmm4 + vmovdqu 16(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vmovdqu 32(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vmovdqu 48(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vmovdqu 64(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vmovdqu 80(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vmovdqu 96(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vmovdqu 112(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vmovdqu 128(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vmovdqu 144(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vmovdqu 160(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vmovdqu 176(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vmovdqu 192(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vmovdqu 208(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vmovdqu 224(%rcx),%xmm0 + vaesdeclast %xmm0,%xmm1,%xmm1 + vaesdeclast %xmm0,%xmm2,%xmm2 + vaesdeclast %xmm0,%xmm3,%xmm3 + vaesdeclast %xmm0,%xmm4,%xmm4 + vpxor %xmm9,%xmm1,%xmm1 + vpxor %xmm10,%xmm2,%xmm2 + vpxor %xmm11,%xmm3,%xmm3 + vpxor %xmm12,%xmm4,%xmm4 + vmovdqu %xmm1,(%rsi) + vmovdqu %xmm2,16(%rsi) + vmovdqu %xmm3,32(%rsi) + addq $0x40,%rsi + vmovdqa %xmm13,%xmm0 + vmovdqa %xmm4,%xmm8 + jmp L$_steal_cipher_EmbgEptodyewbFa + +L$_done_4_EmbgEptodyewbFa: + vpxor %xmm9,%xmm1,%xmm1 + vpxor %xmm10,%xmm2,%xmm2 + vpxor %xmm11,%xmm3,%xmm3 + vpxor %xmm12,%xmm4,%xmm4 + vmovdqu (%rcx),%xmm0 + vpxor %xmm0,%xmm1,%xmm1 + vpxor %xmm0,%xmm2,%xmm2 + vpxor %xmm0,%xmm3,%xmm3 + vpxor %xmm0,%xmm4,%xmm4 + vmovdqu 16(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vmovdqu 32(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vmovdqu 48(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vmovdqu 64(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vmovdqu 80(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vmovdqu 96(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vmovdqu 112(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vmovdqu 128(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vmovdqu 144(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vmovdqu 160(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vmovdqu 176(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vmovdqu 192(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vmovdqu 208(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vmovdqu 224(%rcx),%xmm0 + vaesdeclast %xmm0,%xmm1,%xmm1 + vaesdeclast %xmm0,%xmm2,%xmm2 + vaesdeclast %xmm0,%xmm3,%xmm3 + vaesdeclast %xmm0,%xmm4,%xmm4 + vpxor %xmm9,%xmm1,%xmm1 + vpxor %xmm10,%xmm2,%xmm2 + vpxor %xmm11,%xmm3,%xmm3 + vpxor %xmm12,%xmm4,%xmm4 + vmovdqu %xmm1,(%rsi) + vmovdqu %xmm2,16(%rsi) + vmovdqu %xmm3,32(%rsi) + addq $0x40,%rsi + vmovdqa %xmm4,%xmm8 + jmp L$_done_EmbgEptodyewbFa + +L$_num_blocks_is_3_EmbgEptodyewbFa: + vmovdqa 0(%rsp),%xmm9 + movq 0(%rsp),%rax + movq 8(%rsp),%rbx + vmovdqu 0(%rdi),%xmm1 + xorq %r11,%r11 + shlq $1,%rax + adcq %rbx,%rbx + cmovcq %r10,%r11 + xorq %r11,%rax + movq %rax,16(%rsp) + movq %rbx,16 + 8(%rsp) + vmovdqa 16(%rsp),%xmm10 + vmovdqu 16(%rdi),%xmm2 + xorq %r11,%r11 + shlq $1,%rax + adcq %rbx,%rbx + cmovcq %r10,%r11 + xorq %r11,%rax + movq %rax,32(%rsp) + movq %rbx,32 + 8(%rsp) + vmovdqa 32(%rsp),%xmm11 + vmovdqu 32(%rdi),%xmm3 + addq $0x30,%rdi + andq $0xf,%rdx + je L$_done_3_EmbgEptodyewbFa + +L$_steal_cipher_3_EmbgEptodyewbFa: + xorq %r11,%r11 + shlq $1,%rax + adcq %rbx,%rbx + cmovcq %r10,%r11 + xorq %r11,%rax + movq %rax,16(%rsp) + movq %rbx,24(%rsp) + vmovdqa64 %xmm11,%xmm12 + vmovdqa 16(%rsp),%xmm11 + vpxor %xmm9,%xmm1,%xmm1 + vpxor %xmm10,%xmm2,%xmm2 + vpxor %xmm11,%xmm3,%xmm3 + vmovdqu (%rcx),%xmm0 + vpxor %xmm0,%xmm1,%xmm1 + vpxor %xmm0,%xmm2,%xmm2 + vpxor %xmm0,%xmm3,%xmm3 + vmovdqu 16(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 32(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 48(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 64(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 80(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 96(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 112(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 128(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 144(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 160(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 176(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 192(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 208(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 224(%rcx),%xmm0 + vaesdeclast %xmm0,%xmm1,%xmm1 + vaesdeclast %xmm0,%xmm2,%xmm2 + vaesdeclast %xmm0,%xmm3,%xmm3 + vpxor %xmm9,%xmm1,%xmm1 + vpxor %xmm10,%xmm2,%xmm2 + vpxor %xmm11,%xmm3,%xmm3 + vmovdqu %xmm1,(%rsi) + vmovdqu %xmm2,16(%rsi) + addq $0x30,%rsi + vmovdqa %xmm12,%xmm0 + vmovdqa %xmm3,%xmm8 + jmp L$_steal_cipher_EmbgEptodyewbFa + +L$_done_3_EmbgEptodyewbFa: + vpxor %xmm9,%xmm1,%xmm1 + vpxor %xmm10,%xmm2,%xmm2 + vpxor %xmm11,%xmm3,%xmm3 + vmovdqu (%rcx),%xmm0 + vpxor %xmm0,%xmm1,%xmm1 + vpxor %xmm0,%xmm2,%xmm2 + vpxor %xmm0,%xmm3,%xmm3 + vmovdqu 16(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 32(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 48(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 64(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 80(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 96(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 112(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 128(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 144(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 160(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 176(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 192(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 208(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vmovdqu 224(%rcx),%xmm0 + vaesdeclast %xmm0,%xmm1,%xmm1 + vaesdeclast %xmm0,%xmm2,%xmm2 + vaesdeclast %xmm0,%xmm3,%xmm3 + vpxor %xmm9,%xmm1,%xmm1 + vpxor %xmm10,%xmm2,%xmm2 + vpxor %xmm11,%xmm3,%xmm3 + vmovdqu %xmm1,(%rsi) + vmovdqu %xmm2,16(%rsi) + addq $0x30,%rsi + vmovdqa %xmm3,%xmm8 + jmp L$_done_EmbgEptodyewbFa + +L$_num_blocks_is_2_EmbgEptodyewbFa: + vmovdqa 0(%rsp),%xmm9 + movq 0(%rsp),%rax + movq 8(%rsp),%rbx + vmovdqu 0(%rdi),%xmm1 + xorq %r11,%r11 + shlq $1,%rax + adcq %rbx,%rbx + cmovcq %r10,%r11 + xorq %r11,%rax + movq %rax,16(%rsp) + movq %rbx,16 + 8(%rsp) + vmovdqa 16(%rsp),%xmm10 + vmovdqu 16(%rdi),%xmm2 + addq $0x20,%rdi + andq $0xf,%rdx + je L$_done_2_EmbgEptodyewbFa + +L$_steal_cipher_2_EmbgEptodyewbFa: + xorq %r11,%r11 + shlq $1,%rax + adcq %rbx,%rbx + cmovcq %r10,%r11 + xorq %r11,%rax + movq %rax,16(%rsp) + movq %rbx,24(%rsp) + vmovdqa64 %xmm10,%xmm11 + vmovdqa 16(%rsp),%xmm10 + vpxor %xmm9,%xmm1,%xmm1 + vpxor %xmm10,%xmm2,%xmm2 + vmovdqu (%rcx),%xmm0 + vpxor %xmm0,%xmm1,%xmm1 + vpxor %xmm0,%xmm2,%xmm2 + vmovdqu 16(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 32(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 48(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 64(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 80(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 96(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 112(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 128(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 144(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 160(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 176(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 192(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 208(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 224(%rcx),%xmm0 + vaesdeclast %xmm0,%xmm1,%xmm1 + vaesdeclast %xmm0,%xmm2,%xmm2 + vpxor %xmm9,%xmm1,%xmm1 + vpxor %xmm10,%xmm2,%xmm2 + vmovdqu %xmm1,(%rsi) + addq $0x20,%rsi + vmovdqa %xmm11,%xmm0 + vmovdqa %xmm2,%xmm8 + jmp L$_steal_cipher_EmbgEptodyewbFa + +L$_done_2_EmbgEptodyewbFa: + vpxor %xmm9,%xmm1,%xmm1 + vpxor %xmm10,%xmm2,%xmm2 + vmovdqu (%rcx),%xmm0 + vpxor %xmm0,%xmm1,%xmm1 + vpxor %xmm0,%xmm2,%xmm2 + vmovdqu 16(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 32(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 48(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 64(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 80(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 96(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 112(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 128(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 144(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 160(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 176(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 192(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 208(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vaesdec %xmm0,%xmm2,%xmm2 + vmovdqu 224(%rcx),%xmm0 + vaesdeclast %xmm0,%xmm1,%xmm1 + vaesdeclast %xmm0,%xmm2,%xmm2 + vpxor %xmm9,%xmm1,%xmm1 + vpxor %xmm10,%xmm2,%xmm2 + vmovdqu %xmm1,(%rsi) + addq $0x20,%rsi + vmovdqa %xmm2,%xmm8 + jmp L$_done_EmbgEptodyewbFa + +L$_num_blocks_is_1_EmbgEptodyewbFa: + vmovdqa 0(%rsp),%xmm9 + movq 0(%rsp),%rax + movq 8(%rsp),%rbx + vmovdqu 0(%rdi),%xmm1 + addq $0x10,%rdi + andq $0xf,%rdx + je L$_done_1_EmbgEptodyewbFa + +L$_steal_cipher_1_EmbgEptodyewbFa: + xorq %r11,%r11 + shlq $1,%rax + adcq %rbx,%rbx + cmovcq %r10,%r11 + xorq %r11,%rax + movq %rax,16(%rsp) + movq %rbx,24(%rsp) + vmovdqa64 %xmm9,%xmm10 + vmovdqa 16(%rsp),%xmm9 + vpxor %xmm9,%xmm1,%xmm1 + vmovdqu (%rcx),%xmm0 + vpxor %xmm0,%xmm1,%xmm1 + vmovdqu 16(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 32(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 48(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 64(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 80(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 96(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 112(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 128(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 144(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 160(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 176(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 192(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 208(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 224(%rcx),%xmm0 + vaesdeclast %xmm0,%xmm1,%xmm1 + vpxor %xmm9,%xmm1,%xmm1 + addq $0x10,%rsi + vmovdqa %xmm10,%xmm0 + vmovdqa %xmm1,%xmm8 + jmp L$_steal_cipher_EmbgEptodyewbFa + +L$_done_1_EmbgEptodyewbFa: + vpxor %xmm9,%xmm1,%xmm1 + vmovdqu (%rcx),%xmm0 + vpxor %xmm0,%xmm1,%xmm1 + vmovdqu 16(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 32(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 48(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 64(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 80(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 96(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 112(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 128(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 144(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 160(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 176(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 192(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 208(%rcx),%xmm0 + vaesdec %xmm0,%xmm1,%xmm1 + vmovdqu 224(%rcx),%xmm0 + vaesdeclast %xmm0,%xmm1,%xmm1 + vpxor %xmm9,%xmm1,%xmm1 + addq $0x10,%rsi + vmovdqa %xmm1,%xmm8 + jmp L$_done_EmbgEptodyewbFa + +.section __DATA,__const +.p2align 4 + +vpshufb_shf_table: +.quad 0x8786858483828100, 0x8f8e8d8c8b8a8988 +.quad 0x0706050403020100, 0x000e0d0c0b0a0908 + +mask1: +.quad 0x8080808080808080, 0x8080808080808080 + +const_dq3210: +.quad 0, 0, 1, 1, 2, 2, 3, 3 +const_dq5678: +.quad 8, 8, 7, 7, 6, 6, 5, 5 +const_dq7654: +.quad 4, 4, 5, 5, 6, 6, 7, 7 +const_dq1234: +.quad 4, 4, 3, 3, 2, 2, 1, 1 + +shufb_15_7: +.byte 15, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 7, 0xff, 0xff +.byte 0xff, 0xff, 0xff, 0xff, 0xff + +.text diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/aes/bsaes-x86_64.s b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/aes/bsaes-x86_64.s index 6d3fdd29cabc12..1d4c35d8ced38f 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/aes/bsaes-x86_64.s +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/aes/bsaes-x86_64.s @@ -1559,6 +1559,7 @@ L$ctr_enc_epilogue: .p2align 4 _ossl_bsaes_xts_encrypt: +.byte 243,15,30,250 movq %rsp,%rax L$xts_enc_prologue: pushq %rbp @@ -2028,6 +2029,7 @@ L$xts_enc_epilogue: .p2align 4 _ossl_bsaes_xts_decrypt: +.byte 243,15,30,250 movq %rsp,%rax L$xts_dec_prologue: pushq %rbp @@ -2517,6 +2519,7 @@ L$xts_dec_epilogue: +.section __DATA,__const .p2align 6 _bsaes_const: L$M0ISR: @@ -2568,6 +2571,6 @@ L$M0: .quad 0x02060a0e03070b0f, 0x0004080c0105090d L$63: .quad 0x6363636363636363, 0x6363636363636363 -.byte 66,105,116,45,115,108,105,99,101,100,32,65,69,83,32,102,111,114,32,120,56,54,95,54,52,47,83,83,83,69,51,44,32,69,109,105,108,105,97,32,75,195,164,115,112,101,114,44,32,80,101,116,101,114,32,83,99,104,119,97,98,101,44,32,65,110,100,121,32,80,111,108,121,97,107,111,118,0 .p2align 6 +.byte 66,105,116,45,115,108,105,99,101,100,32,65,69,83,32,102,111,114,32,120,56,54,95,54,52,47,83,83,83,69,51,44,32,69,109,105,108,105,97,32,75,195,164,115,112,101,114,44,32,80,101,116,101,114,32,83,99,104,119,97,98,101,44,32,65,110,100,121,32,80,111,108,121,97,107,111,118,0 diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/aes/vpaes-x86_64.s b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/aes/vpaes-x86_64.s index 2c1e958188dd8b..beaa5cd7fafce6 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/aes/vpaes-x86_64.s +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/aes/vpaes-x86_64.s @@ -758,6 +758,7 @@ _vpaes_preheat: +.section __DATA,__const .p2align 6 _vpaes_consts: L$k_inv: @@ -853,6 +854,6 @@ L$k_dsbe: L$k_dsbo: .quad 0x1387EA537EF94000, 0xC7AA6DB9D4943E2D .quad 0x12D7560F93441D00, 0xCA4B8159D8C58E9C -.byte 86,101,99,116,111,114,32,80,101,114,109,117,116,97,116,105,111,110,32,65,69,83,32,102,111,114,32,120,56,54,95,54,52,47,83,83,83,69,51,44,32,77,105,107,101,32,72,97,109,98,117,114,103,32,40,83,116,97,110,102,111,114,100,32,85,110,105,118,101,114,115,105,116,121,41,0 .p2align 6 +.byte 86,101,99,116,111,114,32,80,101,114,109,117,116,97,116,105,111,110,32,65,69,83,32,102,111,114,32,120,56,54,95,54,52,47,83,83,83,69,51,44,32,77,105,107,101,32,72,97,109,98,117,114,103,32,40,83,116,97,110,102,111,114,100,32,85,110,105,118,101,114,115,105,116,121,41,0 diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/bn/rsaz-2k-avx512.s b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/bn/rsaz-2k-avx512.s new file mode 100644 index 00000000000000..f682a07b1caf74 --- /dev/null +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/bn/rsaz-2k-avx512.s @@ -0,0 +1,883 @@ + +.globl _ossl_rsaz_avx512ifma_eligible + +.p2align 5 +_ossl_rsaz_avx512ifma_eligible: + movl _OPENSSL_ia32cap_P+8(%rip),%ecx + xorl %eax,%eax + andl $2149777408,%ecx + cmpl $2149777408,%ecx + cmovel %ecx,%eax + .byte 0xf3,0xc3 + +.text + +.globl _ossl_rsaz_amm52x20_x1_ifma256 + +.p2align 5 +_ossl_rsaz_amm52x20_x1_ifma256: + +.byte 243,15,30,250 + pushq %rbx + + pushq %rbp + + pushq %r12 + + pushq %r13 + + pushq %r14 + + pushq %r15 + +L$ossl_rsaz_amm52x20_x1_ifma256_body: + + + vpxord %ymm0,%ymm0,%ymm0 + vmovdqa64 %ymm0,%ymm3 + vmovdqa64 %ymm0,%ymm16 + vmovdqa64 %ymm0,%ymm17 + vmovdqa64 %ymm0,%ymm18 + vmovdqa64 %ymm0,%ymm19 + + xorl %r9d,%r9d + + movq %rdx,%r11 + movq $0xfffffffffffff,%rax + + + movl $5,%ebx + +.p2align 5 +L$loop5: + movq 0(%r11),%r13 + + vpbroadcastq %r13,%ymm1 + movq 0(%rsi),%rdx + mulxq %r13,%r13,%r12 + addq %r13,%r9 + movq %r12,%r10 + adcq $0,%r10 + + movq %r8,%r13 + imulq %r9,%r13 + andq %rax,%r13 + + vpbroadcastq %r13,%ymm2 + movq 0(%rcx),%rdx + mulxq %r13,%r13,%r12 + addq %r13,%r9 + adcq %r12,%r10 + + shrq $52,%r9 + salq $12,%r10 + orq %r10,%r9 + + vpmadd52luq 0(%rsi),%ymm1,%ymm3 + vpmadd52luq 32(%rsi),%ymm1,%ymm16 + vpmadd52luq 64(%rsi),%ymm1,%ymm17 + vpmadd52luq 96(%rsi),%ymm1,%ymm18 + vpmadd52luq 128(%rsi),%ymm1,%ymm19 + + vpmadd52luq 0(%rcx),%ymm2,%ymm3 + vpmadd52luq 32(%rcx),%ymm2,%ymm16 + vpmadd52luq 64(%rcx),%ymm2,%ymm17 + vpmadd52luq 96(%rcx),%ymm2,%ymm18 + vpmadd52luq 128(%rcx),%ymm2,%ymm19 + + + valignq $1,%ymm3,%ymm16,%ymm3 + valignq $1,%ymm16,%ymm17,%ymm16 + valignq $1,%ymm17,%ymm18,%ymm17 + valignq $1,%ymm18,%ymm19,%ymm18 + valignq $1,%ymm19,%ymm0,%ymm19 + + vmovq %xmm3,%r13 + addq %r13,%r9 + + vpmadd52huq 0(%rsi),%ymm1,%ymm3 + vpmadd52huq 32(%rsi),%ymm1,%ymm16 + vpmadd52huq 64(%rsi),%ymm1,%ymm17 + vpmadd52huq 96(%rsi),%ymm1,%ymm18 + vpmadd52huq 128(%rsi),%ymm1,%ymm19 + + vpmadd52huq 0(%rcx),%ymm2,%ymm3 + vpmadd52huq 32(%rcx),%ymm2,%ymm16 + vpmadd52huq 64(%rcx),%ymm2,%ymm17 + vpmadd52huq 96(%rcx),%ymm2,%ymm18 + vpmadd52huq 128(%rcx),%ymm2,%ymm19 + movq 8(%r11),%r13 + + vpbroadcastq %r13,%ymm1 + movq 0(%rsi),%rdx + mulxq %r13,%r13,%r12 + addq %r13,%r9 + movq %r12,%r10 + adcq $0,%r10 + + movq %r8,%r13 + imulq %r9,%r13 + andq %rax,%r13 + + vpbroadcastq %r13,%ymm2 + movq 0(%rcx),%rdx + mulxq %r13,%r13,%r12 + addq %r13,%r9 + adcq %r12,%r10 + + shrq $52,%r9 + salq $12,%r10 + orq %r10,%r9 + + vpmadd52luq 0(%rsi),%ymm1,%ymm3 + vpmadd52luq 32(%rsi),%ymm1,%ymm16 + vpmadd52luq 64(%rsi),%ymm1,%ymm17 + vpmadd52luq 96(%rsi),%ymm1,%ymm18 + vpmadd52luq 128(%rsi),%ymm1,%ymm19 + + vpmadd52luq 0(%rcx),%ymm2,%ymm3 + vpmadd52luq 32(%rcx),%ymm2,%ymm16 + vpmadd52luq 64(%rcx),%ymm2,%ymm17 + vpmadd52luq 96(%rcx),%ymm2,%ymm18 + vpmadd52luq 128(%rcx),%ymm2,%ymm19 + + + valignq $1,%ymm3,%ymm16,%ymm3 + valignq $1,%ymm16,%ymm17,%ymm16 + valignq $1,%ymm17,%ymm18,%ymm17 + valignq $1,%ymm18,%ymm19,%ymm18 + valignq $1,%ymm19,%ymm0,%ymm19 + + vmovq %xmm3,%r13 + addq %r13,%r9 + + vpmadd52huq 0(%rsi),%ymm1,%ymm3 + vpmadd52huq 32(%rsi),%ymm1,%ymm16 + vpmadd52huq 64(%rsi),%ymm1,%ymm17 + vpmadd52huq 96(%rsi),%ymm1,%ymm18 + vpmadd52huq 128(%rsi),%ymm1,%ymm19 + + vpmadd52huq 0(%rcx),%ymm2,%ymm3 + vpmadd52huq 32(%rcx),%ymm2,%ymm16 + vpmadd52huq 64(%rcx),%ymm2,%ymm17 + vpmadd52huq 96(%rcx),%ymm2,%ymm18 + vpmadd52huq 128(%rcx),%ymm2,%ymm19 + movq 16(%r11),%r13 + + vpbroadcastq %r13,%ymm1 + movq 0(%rsi),%rdx + mulxq %r13,%r13,%r12 + addq %r13,%r9 + movq %r12,%r10 + adcq $0,%r10 + + movq %r8,%r13 + imulq %r9,%r13 + andq %rax,%r13 + + vpbroadcastq %r13,%ymm2 + movq 0(%rcx),%rdx + mulxq %r13,%r13,%r12 + addq %r13,%r9 + adcq %r12,%r10 + + shrq $52,%r9 + salq $12,%r10 + orq %r10,%r9 + + vpmadd52luq 0(%rsi),%ymm1,%ymm3 + vpmadd52luq 32(%rsi),%ymm1,%ymm16 + vpmadd52luq 64(%rsi),%ymm1,%ymm17 + vpmadd52luq 96(%rsi),%ymm1,%ymm18 + vpmadd52luq 128(%rsi),%ymm1,%ymm19 + + vpmadd52luq 0(%rcx),%ymm2,%ymm3 + vpmadd52luq 32(%rcx),%ymm2,%ymm16 + vpmadd52luq 64(%rcx),%ymm2,%ymm17 + vpmadd52luq 96(%rcx),%ymm2,%ymm18 + vpmadd52luq 128(%rcx),%ymm2,%ymm19 + + + valignq $1,%ymm3,%ymm16,%ymm3 + valignq $1,%ymm16,%ymm17,%ymm16 + valignq $1,%ymm17,%ymm18,%ymm17 + valignq $1,%ymm18,%ymm19,%ymm18 + valignq $1,%ymm19,%ymm0,%ymm19 + + vmovq %xmm3,%r13 + addq %r13,%r9 + + vpmadd52huq 0(%rsi),%ymm1,%ymm3 + vpmadd52huq 32(%rsi),%ymm1,%ymm16 + vpmadd52huq 64(%rsi),%ymm1,%ymm17 + vpmadd52huq 96(%rsi),%ymm1,%ymm18 + vpmadd52huq 128(%rsi),%ymm1,%ymm19 + + vpmadd52huq 0(%rcx),%ymm2,%ymm3 + vpmadd52huq 32(%rcx),%ymm2,%ymm16 + vpmadd52huq 64(%rcx),%ymm2,%ymm17 + vpmadd52huq 96(%rcx),%ymm2,%ymm18 + vpmadd52huq 128(%rcx),%ymm2,%ymm19 + movq 24(%r11),%r13 + + vpbroadcastq %r13,%ymm1 + movq 0(%rsi),%rdx + mulxq %r13,%r13,%r12 + addq %r13,%r9 + movq %r12,%r10 + adcq $0,%r10 + + movq %r8,%r13 + imulq %r9,%r13 + andq %rax,%r13 + + vpbroadcastq %r13,%ymm2 + movq 0(%rcx),%rdx + mulxq %r13,%r13,%r12 + addq %r13,%r9 + adcq %r12,%r10 + + shrq $52,%r9 + salq $12,%r10 + orq %r10,%r9 + + vpmadd52luq 0(%rsi),%ymm1,%ymm3 + vpmadd52luq 32(%rsi),%ymm1,%ymm16 + vpmadd52luq 64(%rsi),%ymm1,%ymm17 + vpmadd52luq 96(%rsi),%ymm1,%ymm18 + vpmadd52luq 128(%rsi),%ymm1,%ymm19 + + vpmadd52luq 0(%rcx),%ymm2,%ymm3 + vpmadd52luq 32(%rcx),%ymm2,%ymm16 + vpmadd52luq 64(%rcx),%ymm2,%ymm17 + vpmadd52luq 96(%rcx),%ymm2,%ymm18 + vpmadd52luq 128(%rcx),%ymm2,%ymm19 + + + valignq $1,%ymm3,%ymm16,%ymm3 + valignq $1,%ymm16,%ymm17,%ymm16 + valignq $1,%ymm17,%ymm18,%ymm17 + valignq $1,%ymm18,%ymm19,%ymm18 + valignq $1,%ymm19,%ymm0,%ymm19 + + vmovq %xmm3,%r13 + addq %r13,%r9 + + vpmadd52huq 0(%rsi),%ymm1,%ymm3 + vpmadd52huq 32(%rsi),%ymm1,%ymm16 + vpmadd52huq 64(%rsi),%ymm1,%ymm17 + vpmadd52huq 96(%rsi),%ymm1,%ymm18 + vpmadd52huq 128(%rsi),%ymm1,%ymm19 + + vpmadd52huq 0(%rcx),%ymm2,%ymm3 + vpmadd52huq 32(%rcx),%ymm2,%ymm16 + vpmadd52huq 64(%rcx),%ymm2,%ymm17 + vpmadd52huq 96(%rcx),%ymm2,%ymm18 + vpmadd52huq 128(%rcx),%ymm2,%ymm19 + leaq 32(%r11),%r11 + decl %ebx + jne L$loop5 + + vpbroadcastq %r9,%ymm0 + vpblendd $3,%ymm0,%ymm3,%ymm3 + + + + vpsrlq $52,%ymm3,%ymm0 + vpsrlq $52,%ymm16,%ymm1 + vpsrlq $52,%ymm17,%ymm2 + vpsrlq $52,%ymm18,%ymm25 + vpsrlq $52,%ymm19,%ymm26 + + + valignq $3,%ymm25,%ymm26,%ymm26 + valignq $3,%ymm2,%ymm25,%ymm25 + valignq $3,%ymm1,%ymm2,%ymm2 + valignq $3,%ymm0,%ymm1,%ymm1 + valignq $3,L$zeros(%rip),%ymm0,%ymm0 + + + vpandq L$mask52x4(%rip),%ymm3,%ymm3 + vpandq L$mask52x4(%rip),%ymm16,%ymm16 + vpandq L$mask52x4(%rip),%ymm17,%ymm17 + vpandq L$mask52x4(%rip),%ymm18,%ymm18 + vpandq L$mask52x4(%rip),%ymm19,%ymm19 + + + vpaddq %ymm0,%ymm3,%ymm3 + vpaddq %ymm1,%ymm16,%ymm16 + vpaddq %ymm2,%ymm17,%ymm17 + vpaddq %ymm25,%ymm18,%ymm18 + vpaddq %ymm26,%ymm19,%ymm19 + + + + vpcmpuq $6,L$mask52x4(%rip),%ymm3,%k1 + vpcmpuq $6,L$mask52x4(%rip),%ymm16,%k2 + vpcmpuq $6,L$mask52x4(%rip),%ymm17,%k3 + vpcmpuq $6,L$mask52x4(%rip),%ymm18,%k4 + vpcmpuq $6,L$mask52x4(%rip),%ymm19,%k5 + kmovb %k1,%r14d + kmovb %k2,%r13d + kmovb %k3,%r12d + kmovb %k4,%r11d + kmovb %k5,%r10d + + + vpcmpuq $0,L$mask52x4(%rip),%ymm3,%k1 + vpcmpuq $0,L$mask52x4(%rip),%ymm16,%k2 + vpcmpuq $0,L$mask52x4(%rip),%ymm17,%k3 + vpcmpuq $0,L$mask52x4(%rip),%ymm18,%k4 + vpcmpuq $0,L$mask52x4(%rip),%ymm19,%k5 + kmovb %k1,%r9d + kmovb %k2,%r8d + kmovb %k3,%ebx + kmovb %k4,%ecx + kmovb %k5,%edx + + + + shlb $4,%r13b + orb %r13b,%r14b + shlb $4,%r11b + orb %r11b,%r12b + + addb %r14b,%r14b + adcb %r12b,%r12b + adcb %r10b,%r10b + + shlb $4,%r8b + orb %r8b,%r9b + shlb $4,%cl + orb %cl,%bl + + addb %r9b,%r14b + adcb %bl,%r12b + adcb %dl,%r10b + + xorb %r9b,%r14b + xorb %bl,%r12b + xorb %dl,%r10b + + kmovb %r14d,%k1 + shrb $4,%r14b + kmovb %r14d,%k2 + kmovb %r12d,%k3 + shrb $4,%r12b + kmovb %r12d,%k4 + kmovb %r10d,%k5 + + + vpsubq L$mask52x4(%rip),%ymm3,%ymm3{%k1} + vpsubq L$mask52x4(%rip),%ymm16,%ymm16{%k2} + vpsubq L$mask52x4(%rip),%ymm17,%ymm17{%k3} + vpsubq L$mask52x4(%rip),%ymm18,%ymm18{%k4} + vpsubq L$mask52x4(%rip),%ymm19,%ymm19{%k5} + + vpandq L$mask52x4(%rip),%ymm3,%ymm3 + vpandq L$mask52x4(%rip),%ymm16,%ymm16 + vpandq L$mask52x4(%rip),%ymm17,%ymm17 + vpandq L$mask52x4(%rip),%ymm18,%ymm18 + vpandq L$mask52x4(%rip),%ymm19,%ymm19 + + vmovdqu64 %ymm3,0(%rdi) + vmovdqu64 %ymm16,32(%rdi) + vmovdqu64 %ymm17,64(%rdi) + vmovdqu64 %ymm18,96(%rdi) + vmovdqu64 %ymm19,128(%rdi) + + vzeroupper + movq 0(%rsp),%r15 + + movq 8(%rsp),%r14 + + movq 16(%rsp),%r13 + + movq 24(%rsp),%r12 + + movq 32(%rsp),%rbp + + movq 40(%rsp),%rbx + + leaq 48(%rsp),%rsp + +L$ossl_rsaz_amm52x20_x1_ifma256_epilogue: + .byte 0xf3,0xc3 + + +.section __DATA,__const +.p2align 5 +L$mask52x4: +.quad 0xfffffffffffff +.quad 0xfffffffffffff +.quad 0xfffffffffffff +.quad 0xfffffffffffff +.text + +.globl _ossl_rsaz_amm52x20_x2_ifma256 + +.p2align 5 +_ossl_rsaz_amm52x20_x2_ifma256: + +.byte 243,15,30,250 + pushq %rbx + + pushq %rbp + + pushq %r12 + + pushq %r13 + + pushq %r14 + + pushq %r15 + +L$ossl_rsaz_amm52x20_x2_ifma256_body: + + + vpxord %ymm0,%ymm0,%ymm0 + vmovdqa64 %ymm0,%ymm3 + vmovdqa64 %ymm0,%ymm16 + vmovdqa64 %ymm0,%ymm17 + vmovdqa64 %ymm0,%ymm18 + vmovdqa64 %ymm0,%ymm19 + vmovdqa64 %ymm0,%ymm4 + vmovdqa64 %ymm0,%ymm20 + vmovdqa64 %ymm0,%ymm21 + vmovdqa64 %ymm0,%ymm22 + vmovdqa64 %ymm0,%ymm23 + + xorl %r9d,%r9d + xorl %r15d,%r15d + + movq %rdx,%r11 + movq $0xfffffffffffff,%rax + + movl $20,%ebx + +.p2align 5 +L$loop20: + movq 0(%r11),%r13 + + vpbroadcastq %r13,%ymm1 + movq 0(%rsi),%rdx + mulxq %r13,%r13,%r12 + addq %r13,%r9 + movq %r12,%r10 + adcq $0,%r10 + + movq (%r8),%r13 + imulq %r9,%r13 + andq %rax,%r13 + + vpbroadcastq %r13,%ymm2 + movq 0(%rcx),%rdx + mulxq %r13,%r13,%r12 + addq %r13,%r9 + adcq %r12,%r10 + + shrq $52,%r9 + salq $12,%r10 + orq %r10,%r9 + + vpmadd52luq 0(%rsi),%ymm1,%ymm3 + vpmadd52luq 32(%rsi),%ymm1,%ymm16 + vpmadd52luq 64(%rsi),%ymm1,%ymm17 + vpmadd52luq 96(%rsi),%ymm1,%ymm18 + vpmadd52luq 128(%rsi),%ymm1,%ymm19 + + vpmadd52luq 0(%rcx),%ymm2,%ymm3 + vpmadd52luq 32(%rcx),%ymm2,%ymm16 + vpmadd52luq 64(%rcx),%ymm2,%ymm17 + vpmadd52luq 96(%rcx),%ymm2,%ymm18 + vpmadd52luq 128(%rcx),%ymm2,%ymm19 + + + valignq $1,%ymm3,%ymm16,%ymm3 + valignq $1,%ymm16,%ymm17,%ymm16 + valignq $1,%ymm17,%ymm18,%ymm17 + valignq $1,%ymm18,%ymm19,%ymm18 + valignq $1,%ymm19,%ymm0,%ymm19 + + vmovq %xmm3,%r13 + addq %r13,%r9 + + vpmadd52huq 0(%rsi),%ymm1,%ymm3 + vpmadd52huq 32(%rsi),%ymm1,%ymm16 + vpmadd52huq 64(%rsi),%ymm1,%ymm17 + vpmadd52huq 96(%rsi),%ymm1,%ymm18 + vpmadd52huq 128(%rsi),%ymm1,%ymm19 + + vpmadd52huq 0(%rcx),%ymm2,%ymm3 + vpmadd52huq 32(%rcx),%ymm2,%ymm16 + vpmadd52huq 64(%rcx),%ymm2,%ymm17 + vpmadd52huq 96(%rcx),%ymm2,%ymm18 + vpmadd52huq 128(%rcx),%ymm2,%ymm19 + movq 160(%r11),%r13 + + vpbroadcastq %r13,%ymm1 + movq 160(%rsi),%rdx + mulxq %r13,%r13,%r12 + addq %r13,%r15 + movq %r12,%r10 + adcq $0,%r10 + + movq 8(%r8),%r13 + imulq %r15,%r13 + andq %rax,%r13 + + vpbroadcastq %r13,%ymm2 + movq 160(%rcx),%rdx + mulxq %r13,%r13,%r12 + addq %r13,%r15 + adcq %r12,%r10 + + shrq $52,%r15 + salq $12,%r10 + orq %r10,%r15 + + vpmadd52luq 160(%rsi),%ymm1,%ymm4 + vpmadd52luq 192(%rsi),%ymm1,%ymm20 + vpmadd52luq 224(%rsi),%ymm1,%ymm21 + vpmadd52luq 256(%rsi),%ymm1,%ymm22 + vpmadd52luq 288(%rsi),%ymm1,%ymm23 + + vpmadd52luq 160(%rcx),%ymm2,%ymm4 + vpmadd52luq 192(%rcx),%ymm2,%ymm20 + vpmadd52luq 224(%rcx),%ymm2,%ymm21 + vpmadd52luq 256(%rcx),%ymm2,%ymm22 + vpmadd52luq 288(%rcx),%ymm2,%ymm23 + + + valignq $1,%ymm4,%ymm20,%ymm4 + valignq $1,%ymm20,%ymm21,%ymm20 + valignq $1,%ymm21,%ymm22,%ymm21 + valignq $1,%ymm22,%ymm23,%ymm22 + valignq $1,%ymm23,%ymm0,%ymm23 + + vmovq %xmm4,%r13 + addq %r13,%r15 + + vpmadd52huq 160(%rsi),%ymm1,%ymm4 + vpmadd52huq 192(%rsi),%ymm1,%ymm20 + vpmadd52huq 224(%rsi),%ymm1,%ymm21 + vpmadd52huq 256(%rsi),%ymm1,%ymm22 + vpmadd52huq 288(%rsi),%ymm1,%ymm23 + + vpmadd52huq 160(%rcx),%ymm2,%ymm4 + vpmadd52huq 192(%rcx),%ymm2,%ymm20 + vpmadd52huq 224(%rcx),%ymm2,%ymm21 + vpmadd52huq 256(%rcx),%ymm2,%ymm22 + vpmadd52huq 288(%rcx),%ymm2,%ymm23 + leaq 8(%r11),%r11 + decl %ebx + jne L$loop20 + + vpbroadcastq %r9,%ymm0 + vpblendd $3,%ymm0,%ymm3,%ymm3 + + + + vpsrlq $52,%ymm3,%ymm0 + vpsrlq $52,%ymm16,%ymm1 + vpsrlq $52,%ymm17,%ymm2 + vpsrlq $52,%ymm18,%ymm25 + vpsrlq $52,%ymm19,%ymm26 + + + valignq $3,%ymm25,%ymm26,%ymm26 + valignq $3,%ymm2,%ymm25,%ymm25 + valignq $3,%ymm1,%ymm2,%ymm2 + valignq $3,%ymm0,%ymm1,%ymm1 + valignq $3,L$zeros(%rip),%ymm0,%ymm0 + + + vpandq L$mask52x4(%rip),%ymm3,%ymm3 + vpandq L$mask52x4(%rip),%ymm16,%ymm16 + vpandq L$mask52x4(%rip),%ymm17,%ymm17 + vpandq L$mask52x4(%rip),%ymm18,%ymm18 + vpandq L$mask52x4(%rip),%ymm19,%ymm19 + + + vpaddq %ymm0,%ymm3,%ymm3 + vpaddq %ymm1,%ymm16,%ymm16 + vpaddq %ymm2,%ymm17,%ymm17 + vpaddq %ymm25,%ymm18,%ymm18 + vpaddq %ymm26,%ymm19,%ymm19 + + + + vpcmpuq $6,L$mask52x4(%rip),%ymm3,%k1 + vpcmpuq $6,L$mask52x4(%rip),%ymm16,%k2 + vpcmpuq $6,L$mask52x4(%rip),%ymm17,%k3 + vpcmpuq $6,L$mask52x4(%rip),%ymm18,%k4 + vpcmpuq $6,L$mask52x4(%rip),%ymm19,%k5 + kmovb %k1,%r14d + kmovb %k2,%r13d + kmovb %k3,%r12d + kmovb %k4,%r11d + kmovb %k5,%r10d + + + vpcmpuq $0,L$mask52x4(%rip),%ymm3,%k1 + vpcmpuq $0,L$mask52x4(%rip),%ymm16,%k2 + vpcmpuq $0,L$mask52x4(%rip),%ymm17,%k3 + vpcmpuq $0,L$mask52x4(%rip),%ymm18,%k4 + vpcmpuq $0,L$mask52x4(%rip),%ymm19,%k5 + kmovb %k1,%r9d + kmovb %k2,%r8d + kmovb %k3,%ebx + kmovb %k4,%ecx + kmovb %k5,%edx + + + + shlb $4,%r13b + orb %r13b,%r14b + shlb $4,%r11b + orb %r11b,%r12b + + addb %r14b,%r14b + adcb %r12b,%r12b + adcb %r10b,%r10b + + shlb $4,%r8b + orb %r8b,%r9b + shlb $4,%cl + orb %cl,%bl + + addb %r9b,%r14b + adcb %bl,%r12b + adcb %dl,%r10b + + xorb %r9b,%r14b + xorb %bl,%r12b + xorb %dl,%r10b + + kmovb %r14d,%k1 + shrb $4,%r14b + kmovb %r14d,%k2 + kmovb %r12d,%k3 + shrb $4,%r12b + kmovb %r12d,%k4 + kmovb %r10d,%k5 + + + vpsubq L$mask52x4(%rip),%ymm3,%ymm3{%k1} + vpsubq L$mask52x4(%rip),%ymm16,%ymm16{%k2} + vpsubq L$mask52x4(%rip),%ymm17,%ymm17{%k3} + vpsubq L$mask52x4(%rip),%ymm18,%ymm18{%k4} + vpsubq L$mask52x4(%rip),%ymm19,%ymm19{%k5} + + vpandq L$mask52x4(%rip),%ymm3,%ymm3 + vpandq L$mask52x4(%rip),%ymm16,%ymm16 + vpandq L$mask52x4(%rip),%ymm17,%ymm17 + vpandq L$mask52x4(%rip),%ymm18,%ymm18 + vpandq L$mask52x4(%rip),%ymm19,%ymm19 + + vpbroadcastq %r15,%ymm0 + vpblendd $3,%ymm0,%ymm4,%ymm4 + + + + vpsrlq $52,%ymm4,%ymm0 + vpsrlq $52,%ymm20,%ymm1 + vpsrlq $52,%ymm21,%ymm2 + vpsrlq $52,%ymm22,%ymm25 + vpsrlq $52,%ymm23,%ymm26 + + + valignq $3,%ymm25,%ymm26,%ymm26 + valignq $3,%ymm2,%ymm25,%ymm25 + valignq $3,%ymm1,%ymm2,%ymm2 + valignq $3,%ymm0,%ymm1,%ymm1 + valignq $3,L$zeros(%rip),%ymm0,%ymm0 + + + vpandq L$mask52x4(%rip),%ymm4,%ymm4 + vpandq L$mask52x4(%rip),%ymm20,%ymm20 + vpandq L$mask52x4(%rip),%ymm21,%ymm21 + vpandq L$mask52x4(%rip),%ymm22,%ymm22 + vpandq L$mask52x4(%rip),%ymm23,%ymm23 + + + vpaddq %ymm0,%ymm4,%ymm4 + vpaddq %ymm1,%ymm20,%ymm20 + vpaddq %ymm2,%ymm21,%ymm21 + vpaddq %ymm25,%ymm22,%ymm22 + vpaddq %ymm26,%ymm23,%ymm23 + + + + vpcmpuq $6,L$mask52x4(%rip),%ymm4,%k1 + vpcmpuq $6,L$mask52x4(%rip),%ymm20,%k2 + vpcmpuq $6,L$mask52x4(%rip),%ymm21,%k3 + vpcmpuq $6,L$mask52x4(%rip),%ymm22,%k4 + vpcmpuq $6,L$mask52x4(%rip),%ymm23,%k5 + kmovb %k1,%r14d + kmovb %k2,%r13d + kmovb %k3,%r12d + kmovb %k4,%r11d + kmovb %k5,%r10d + + + vpcmpuq $0,L$mask52x4(%rip),%ymm4,%k1 + vpcmpuq $0,L$mask52x4(%rip),%ymm20,%k2 + vpcmpuq $0,L$mask52x4(%rip),%ymm21,%k3 + vpcmpuq $0,L$mask52x4(%rip),%ymm22,%k4 + vpcmpuq $0,L$mask52x4(%rip),%ymm23,%k5 + kmovb %k1,%r9d + kmovb %k2,%r8d + kmovb %k3,%ebx + kmovb %k4,%ecx + kmovb %k5,%edx + + + + shlb $4,%r13b + orb %r13b,%r14b + shlb $4,%r11b + orb %r11b,%r12b + + addb %r14b,%r14b + adcb %r12b,%r12b + adcb %r10b,%r10b + + shlb $4,%r8b + orb %r8b,%r9b + shlb $4,%cl + orb %cl,%bl + + addb %r9b,%r14b + adcb %bl,%r12b + adcb %dl,%r10b + + xorb %r9b,%r14b + xorb %bl,%r12b + xorb %dl,%r10b + + kmovb %r14d,%k1 + shrb $4,%r14b + kmovb %r14d,%k2 + kmovb %r12d,%k3 + shrb $4,%r12b + kmovb %r12d,%k4 + kmovb %r10d,%k5 + + + vpsubq L$mask52x4(%rip),%ymm4,%ymm4{%k1} + vpsubq L$mask52x4(%rip),%ymm20,%ymm20{%k2} + vpsubq L$mask52x4(%rip),%ymm21,%ymm21{%k3} + vpsubq L$mask52x4(%rip),%ymm22,%ymm22{%k4} + vpsubq L$mask52x4(%rip),%ymm23,%ymm23{%k5} + + vpandq L$mask52x4(%rip),%ymm4,%ymm4 + vpandq L$mask52x4(%rip),%ymm20,%ymm20 + vpandq L$mask52x4(%rip),%ymm21,%ymm21 + vpandq L$mask52x4(%rip),%ymm22,%ymm22 + vpandq L$mask52x4(%rip),%ymm23,%ymm23 + + vmovdqu64 %ymm3,0(%rdi) + vmovdqu64 %ymm16,32(%rdi) + vmovdqu64 %ymm17,64(%rdi) + vmovdqu64 %ymm18,96(%rdi) + vmovdqu64 %ymm19,128(%rdi) + + vmovdqu64 %ymm4,160(%rdi) + vmovdqu64 %ymm20,192(%rdi) + vmovdqu64 %ymm21,224(%rdi) + vmovdqu64 %ymm22,256(%rdi) + vmovdqu64 %ymm23,288(%rdi) + + vzeroupper + movq 0(%rsp),%r15 + + movq 8(%rsp),%r14 + + movq 16(%rsp),%r13 + + movq 24(%rsp),%r12 + + movq 32(%rsp),%rbp + + movq 40(%rsp),%rbx + + leaq 48(%rsp),%rsp + +L$ossl_rsaz_amm52x20_x2_ifma256_epilogue: + .byte 0xf3,0xc3 + + +.text + +.p2align 5 +.globl _ossl_extract_multiplier_2x20_win5 + +_ossl_extract_multiplier_2x20_win5: + +.byte 243,15,30,250 + vmovdqa64 L$ones(%rip),%ymm24 + vpbroadcastq %rdx,%ymm22 + vpbroadcastq %rcx,%ymm23 + leaq 10240(%rsi),%rax + + + vpxor %xmm0,%xmm0,%xmm0 + vmovdqa64 %ymm0,%ymm21 + vmovdqa64 %ymm0,%ymm1 + vmovdqa64 %ymm0,%ymm2 + vmovdqa64 %ymm0,%ymm3 + vmovdqa64 %ymm0,%ymm4 + vmovdqa64 %ymm0,%ymm5 + vmovdqa64 %ymm0,%ymm16 + vmovdqa64 %ymm0,%ymm17 + vmovdqa64 %ymm0,%ymm18 + vmovdqa64 %ymm0,%ymm19 + +.p2align 5 +L$loop: + vpcmpq $0,%ymm21,%ymm22,%k1 + vpcmpq $0,%ymm21,%ymm23,%k2 + vmovdqu64 0(%rsi),%ymm20 + vpblendmq %ymm20,%ymm0,%ymm0{%k1} + vmovdqu64 32(%rsi),%ymm20 + vpblendmq %ymm20,%ymm1,%ymm1{%k1} + vmovdqu64 64(%rsi),%ymm20 + vpblendmq %ymm20,%ymm2,%ymm2{%k1} + vmovdqu64 96(%rsi),%ymm20 + vpblendmq %ymm20,%ymm3,%ymm3{%k1} + vmovdqu64 128(%rsi),%ymm20 + vpblendmq %ymm20,%ymm4,%ymm4{%k1} + vmovdqu64 160(%rsi),%ymm20 + vpblendmq %ymm20,%ymm5,%ymm5{%k2} + vmovdqu64 192(%rsi),%ymm20 + vpblendmq %ymm20,%ymm16,%ymm16{%k2} + vmovdqu64 224(%rsi),%ymm20 + vpblendmq %ymm20,%ymm17,%ymm17{%k2} + vmovdqu64 256(%rsi),%ymm20 + vpblendmq %ymm20,%ymm18,%ymm18{%k2} + vmovdqu64 288(%rsi),%ymm20 + vpblendmq %ymm20,%ymm19,%ymm19{%k2} + vpaddq %ymm24,%ymm21,%ymm21 + addq $320,%rsi + cmpq %rsi,%rax + jne L$loop + vmovdqu64 %ymm0,0(%rdi) + vmovdqu64 %ymm1,32(%rdi) + vmovdqu64 %ymm2,64(%rdi) + vmovdqu64 %ymm3,96(%rdi) + vmovdqu64 %ymm4,128(%rdi) + vmovdqu64 %ymm5,160(%rdi) + vmovdqu64 %ymm16,192(%rdi) + vmovdqu64 %ymm17,224(%rdi) + vmovdqu64 %ymm18,256(%rdi) + vmovdqu64 %ymm19,288(%rdi) + .byte 0xf3,0xc3 + + +.section __DATA,__const +.p2align 5 +L$ones: +.quad 1,1,1,1 +L$zeros: +.quad 0,0,0,0 diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/bn/rsaz-2k-avxifma.s b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/bn/rsaz-2k-avxifma.s new file mode 100644 index 00000000000000..5d1d4ff68ed1d3 --- /dev/null +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/bn/rsaz-2k-avxifma.s @@ -0,0 +1,19 @@ +.text + +.globl _ossl_rsaz_avxifma_eligible + +_ossl_rsaz_avxifma_eligible: + xorl %eax,%eax + .byte 0xf3,0xc3 + + +.globl _ossl_rsaz_amm52x20_x1_avxifma256 +.globl _ossl_rsaz_amm52x20_x2_avxifma256 +.globl _ossl_extract_multiplier_2x20_win5_avx + +_ossl_rsaz_amm52x20_x1_avxifma256: +_ossl_rsaz_amm52x20_x2_avxifma256: +_ossl_extract_multiplier_2x20_win5_avx: +.byte 0x0f,0x0b + .byte 0xf3,0xc3 + diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/bn/rsaz-3k-avx512.s b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/bn/rsaz-3k-avx512.s new file mode 100644 index 00000000000000..f6264dad11d84c --- /dev/null +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/bn/rsaz-3k-avx512.s @@ -0,0 +1,1298 @@ +.text + +.globl _ossl_rsaz_amm52x30_x1_ifma256 + +.p2align 5 +_ossl_rsaz_amm52x30_x1_ifma256: + +.byte 243,15,30,250 + pushq %rbx + + pushq %rbp + + pushq %r12 + + pushq %r13 + + pushq %r14 + + pushq %r15 + + + vpxord %ymm0,%ymm0,%ymm0 + vmovdqa64 %ymm0,%ymm3 + vmovdqa64 %ymm0,%ymm4 + vmovdqa64 %ymm0,%ymm5 + vmovdqa64 %ymm0,%ymm6 + vmovdqa64 %ymm0,%ymm7 + vmovdqa64 %ymm0,%ymm8 + vmovdqa64 %ymm0,%ymm9 + vmovdqa64 %ymm0,%ymm10 + + xorl %r9d,%r9d + + movq %rdx,%r11 + movq $0xfffffffffffff,%rax + + + movl $7,%ebx + +.p2align 5 +L$loop7: + movq 0(%r11),%r13 + + vpbroadcastq %r13,%ymm1 + movq 0(%rsi),%rdx + mulxq %r13,%r13,%r12 + addq %r13,%r9 + movq %r12,%r10 + adcq $0,%r10 + + movq %r8,%r13 + imulq %r9,%r13 + andq %rax,%r13 + + vpbroadcastq %r13,%ymm2 + movq 0(%rcx),%rdx + mulxq %r13,%r13,%r12 + addq %r13,%r9 + adcq %r12,%r10 + + shrq $52,%r9 + salq $12,%r10 + orq %r10,%r9 + + vpmadd52luq 0(%rsi),%ymm1,%ymm3 + vpmadd52luq 32(%rsi),%ymm1,%ymm4 + vpmadd52luq 64(%rsi),%ymm1,%ymm5 + vpmadd52luq 96(%rsi),%ymm1,%ymm6 + vpmadd52luq 128(%rsi),%ymm1,%ymm7 + vpmadd52luq 160(%rsi),%ymm1,%ymm8 + vpmadd52luq 192(%rsi),%ymm1,%ymm9 + vpmadd52luq 224(%rsi),%ymm1,%ymm10 + + vpmadd52luq 0(%rcx),%ymm2,%ymm3 + vpmadd52luq 32(%rcx),%ymm2,%ymm4 + vpmadd52luq 64(%rcx),%ymm2,%ymm5 + vpmadd52luq 96(%rcx),%ymm2,%ymm6 + vpmadd52luq 128(%rcx),%ymm2,%ymm7 + vpmadd52luq 160(%rcx),%ymm2,%ymm8 + vpmadd52luq 192(%rcx),%ymm2,%ymm9 + vpmadd52luq 224(%rcx),%ymm2,%ymm10 + + + valignq $1,%ymm3,%ymm4,%ymm3 + valignq $1,%ymm4,%ymm5,%ymm4 + valignq $1,%ymm5,%ymm6,%ymm5 + valignq $1,%ymm6,%ymm7,%ymm6 + valignq $1,%ymm7,%ymm8,%ymm7 + valignq $1,%ymm8,%ymm9,%ymm8 + valignq $1,%ymm9,%ymm10,%ymm9 + valignq $1,%ymm10,%ymm0,%ymm10 + + vmovq %xmm3,%r13 + addq %r13,%r9 + + vpmadd52huq 0(%rsi),%ymm1,%ymm3 + vpmadd52huq 32(%rsi),%ymm1,%ymm4 + vpmadd52huq 64(%rsi),%ymm1,%ymm5 + vpmadd52huq 96(%rsi),%ymm1,%ymm6 + vpmadd52huq 128(%rsi),%ymm1,%ymm7 + vpmadd52huq 160(%rsi),%ymm1,%ymm8 + vpmadd52huq 192(%rsi),%ymm1,%ymm9 + vpmadd52huq 224(%rsi),%ymm1,%ymm10 + + vpmadd52huq 0(%rcx),%ymm2,%ymm3 + vpmadd52huq 32(%rcx),%ymm2,%ymm4 + vpmadd52huq 64(%rcx),%ymm2,%ymm5 + vpmadd52huq 96(%rcx),%ymm2,%ymm6 + vpmadd52huq 128(%rcx),%ymm2,%ymm7 + vpmadd52huq 160(%rcx),%ymm2,%ymm8 + vpmadd52huq 192(%rcx),%ymm2,%ymm9 + vpmadd52huq 224(%rcx),%ymm2,%ymm10 + movq 8(%r11),%r13 + + vpbroadcastq %r13,%ymm1 + movq 0(%rsi),%rdx + mulxq %r13,%r13,%r12 + addq %r13,%r9 + movq %r12,%r10 + adcq $0,%r10 + + movq %r8,%r13 + imulq %r9,%r13 + andq %rax,%r13 + + vpbroadcastq %r13,%ymm2 + movq 0(%rcx),%rdx + mulxq %r13,%r13,%r12 + addq %r13,%r9 + adcq %r12,%r10 + + shrq $52,%r9 + salq $12,%r10 + orq %r10,%r9 + + vpmadd52luq 0(%rsi),%ymm1,%ymm3 + vpmadd52luq 32(%rsi),%ymm1,%ymm4 + vpmadd52luq 64(%rsi),%ymm1,%ymm5 + vpmadd52luq 96(%rsi),%ymm1,%ymm6 + vpmadd52luq 128(%rsi),%ymm1,%ymm7 + vpmadd52luq 160(%rsi),%ymm1,%ymm8 + vpmadd52luq 192(%rsi),%ymm1,%ymm9 + vpmadd52luq 224(%rsi),%ymm1,%ymm10 + + vpmadd52luq 0(%rcx),%ymm2,%ymm3 + vpmadd52luq 32(%rcx),%ymm2,%ymm4 + vpmadd52luq 64(%rcx),%ymm2,%ymm5 + vpmadd52luq 96(%rcx),%ymm2,%ymm6 + vpmadd52luq 128(%rcx),%ymm2,%ymm7 + vpmadd52luq 160(%rcx),%ymm2,%ymm8 + vpmadd52luq 192(%rcx),%ymm2,%ymm9 + vpmadd52luq 224(%rcx),%ymm2,%ymm10 + + + valignq $1,%ymm3,%ymm4,%ymm3 + valignq $1,%ymm4,%ymm5,%ymm4 + valignq $1,%ymm5,%ymm6,%ymm5 + valignq $1,%ymm6,%ymm7,%ymm6 + valignq $1,%ymm7,%ymm8,%ymm7 + valignq $1,%ymm8,%ymm9,%ymm8 + valignq $1,%ymm9,%ymm10,%ymm9 + valignq $1,%ymm10,%ymm0,%ymm10 + + vmovq %xmm3,%r13 + addq %r13,%r9 + + vpmadd52huq 0(%rsi),%ymm1,%ymm3 + vpmadd52huq 32(%rsi),%ymm1,%ymm4 + vpmadd52huq 64(%rsi),%ymm1,%ymm5 + vpmadd52huq 96(%rsi),%ymm1,%ymm6 + vpmadd52huq 128(%rsi),%ymm1,%ymm7 + vpmadd52huq 160(%rsi),%ymm1,%ymm8 + vpmadd52huq 192(%rsi),%ymm1,%ymm9 + vpmadd52huq 224(%rsi),%ymm1,%ymm10 + + vpmadd52huq 0(%rcx),%ymm2,%ymm3 + vpmadd52huq 32(%rcx),%ymm2,%ymm4 + vpmadd52huq 64(%rcx),%ymm2,%ymm5 + vpmadd52huq 96(%rcx),%ymm2,%ymm6 + vpmadd52huq 128(%rcx),%ymm2,%ymm7 + vpmadd52huq 160(%rcx),%ymm2,%ymm8 + vpmadd52huq 192(%rcx),%ymm2,%ymm9 + vpmadd52huq 224(%rcx),%ymm2,%ymm10 + movq 16(%r11),%r13 + + vpbroadcastq %r13,%ymm1 + movq 0(%rsi),%rdx + mulxq %r13,%r13,%r12 + addq %r13,%r9 + movq %r12,%r10 + adcq $0,%r10 + + movq %r8,%r13 + imulq %r9,%r13 + andq %rax,%r13 + + vpbroadcastq %r13,%ymm2 + movq 0(%rcx),%rdx + mulxq %r13,%r13,%r12 + addq %r13,%r9 + adcq %r12,%r10 + + shrq $52,%r9 + salq $12,%r10 + orq %r10,%r9 + + vpmadd52luq 0(%rsi),%ymm1,%ymm3 + vpmadd52luq 32(%rsi),%ymm1,%ymm4 + vpmadd52luq 64(%rsi),%ymm1,%ymm5 + vpmadd52luq 96(%rsi),%ymm1,%ymm6 + vpmadd52luq 128(%rsi),%ymm1,%ymm7 + vpmadd52luq 160(%rsi),%ymm1,%ymm8 + vpmadd52luq 192(%rsi),%ymm1,%ymm9 + vpmadd52luq 224(%rsi),%ymm1,%ymm10 + + vpmadd52luq 0(%rcx),%ymm2,%ymm3 + vpmadd52luq 32(%rcx),%ymm2,%ymm4 + vpmadd52luq 64(%rcx),%ymm2,%ymm5 + vpmadd52luq 96(%rcx),%ymm2,%ymm6 + vpmadd52luq 128(%rcx),%ymm2,%ymm7 + vpmadd52luq 160(%rcx),%ymm2,%ymm8 + vpmadd52luq 192(%rcx),%ymm2,%ymm9 + vpmadd52luq 224(%rcx),%ymm2,%ymm10 + + + valignq $1,%ymm3,%ymm4,%ymm3 + valignq $1,%ymm4,%ymm5,%ymm4 + valignq $1,%ymm5,%ymm6,%ymm5 + valignq $1,%ymm6,%ymm7,%ymm6 + valignq $1,%ymm7,%ymm8,%ymm7 + valignq $1,%ymm8,%ymm9,%ymm8 + valignq $1,%ymm9,%ymm10,%ymm9 + valignq $1,%ymm10,%ymm0,%ymm10 + + vmovq %xmm3,%r13 + addq %r13,%r9 + + vpmadd52huq 0(%rsi),%ymm1,%ymm3 + vpmadd52huq 32(%rsi),%ymm1,%ymm4 + vpmadd52huq 64(%rsi),%ymm1,%ymm5 + vpmadd52huq 96(%rsi),%ymm1,%ymm6 + vpmadd52huq 128(%rsi),%ymm1,%ymm7 + vpmadd52huq 160(%rsi),%ymm1,%ymm8 + vpmadd52huq 192(%rsi),%ymm1,%ymm9 + vpmadd52huq 224(%rsi),%ymm1,%ymm10 + + vpmadd52huq 0(%rcx),%ymm2,%ymm3 + vpmadd52huq 32(%rcx),%ymm2,%ymm4 + vpmadd52huq 64(%rcx),%ymm2,%ymm5 + vpmadd52huq 96(%rcx),%ymm2,%ymm6 + vpmadd52huq 128(%rcx),%ymm2,%ymm7 + vpmadd52huq 160(%rcx),%ymm2,%ymm8 + vpmadd52huq 192(%rcx),%ymm2,%ymm9 + vpmadd52huq 224(%rcx),%ymm2,%ymm10 + movq 24(%r11),%r13 + + vpbroadcastq %r13,%ymm1 + movq 0(%rsi),%rdx + mulxq %r13,%r13,%r12 + addq %r13,%r9 + movq %r12,%r10 + adcq $0,%r10 + + movq %r8,%r13 + imulq %r9,%r13 + andq %rax,%r13 + + vpbroadcastq %r13,%ymm2 + movq 0(%rcx),%rdx + mulxq %r13,%r13,%r12 + addq %r13,%r9 + adcq %r12,%r10 + + shrq $52,%r9 + salq $12,%r10 + orq %r10,%r9 + + vpmadd52luq 0(%rsi),%ymm1,%ymm3 + vpmadd52luq 32(%rsi),%ymm1,%ymm4 + vpmadd52luq 64(%rsi),%ymm1,%ymm5 + vpmadd52luq 96(%rsi),%ymm1,%ymm6 + vpmadd52luq 128(%rsi),%ymm1,%ymm7 + vpmadd52luq 160(%rsi),%ymm1,%ymm8 + vpmadd52luq 192(%rsi),%ymm1,%ymm9 + vpmadd52luq 224(%rsi),%ymm1,%ymm10 + + vpmadd52luq 0(%rcx),%ymm2,%ymm3 + vpmadd52luq 32(%rcx),%ymm2,%ymm4 + vpmadd52luq 64(%rcx),%ymm2,%ymm5 + vpmadd52luq 96(%rcx),%ymm2,%ymm6 + vpmadd52luq 128(%rcx),%ymm2,%ymm7 + vpmadd52luq 160(%rcx),%ymm2,%ymm8 + vpmadd52luq 192(%rcx),%ymm2,%ymm9 + vpmadd52luq 224(%rcx),%ymm2,%ymm10 + + + valignq $1,%ymm3,%ymm4,%ymm3 + valignq $1,%ymm4,%ymm5,%ymm4 + valignq $1,%ymm5,%ymm6,%ymm5 + valignq $1,%ymm6,%ymm7,%ymm6 + valignq $1,%ymm7,%ymm8,%ymm7 + valignq $1,%ymm8,%ymm9,%ymm8 + valignq $1,%ymm9,%ymm10,%ymm9 + valignq $1,%ymm10,%ymm0,%ymm10 + + vmovq %xmm3,%r13 + addq %r13,%r9 + + vpmadd52huq 0(%rsi),%ymm1,%ymm3 + vpmadd52huq 32(%rsi),%ymm1,%ymm4 + vpmadd52huq 64(%rsi),%ymm1,%ymm5 + vpmadd52huq 96(%rsi),%ymm1,%ymm6 + vpmadd52huq 128(%rsi),%ymm1,%ymm7 + vpmadd52huq 160(%rsi),%ymm1,%ymm8 + vpmadd52huq 192(%rsi),%ymm1,%ymm9 + vpmadd52huq 224(%rsi),%ymm1,%ymm10 + + vpmadd52huq 0(%rcx),%ymm2,%ymm3 + vpmadd52huq 32(%rcx),%ymm2,%ymm4 + vpmadd52huq 64(%rcx),%ymm2,%ymm5 + vpmadd52huq 96(%rcx),%ymm2,%ymm6 + vpmadd52huq 128(%rcx),%ymm2,%ymm7 + vpmadd52huq 160(%rcx),%ymm2,%ymm8 + vpmadd52huq 192(%rcx),%ymm2,%ymm9 + vpmadd52huq 224(%rcx),%ymm2,%ymm10 + leaq 32(%r11),%r11 + decl %ebx + jne L$loop7 + movq 0(%r11),%r13 + + vpbroadcastq %r13,%ymm1 + movq 0(%rsi),%rdx + mulxq %r13,%r13,%r12 + addq %r13,%r9 + movq %r12,%r10 + adcq $0,%r10 + + movq %r8,%r13 + imulq %r9,%r13 + andq %rax,%r13 + + vpbroadcastq %r13,%ymm2 + movq 0(%rcx),%rdx + mulxq %r13,%r13,%r12 + addq %r13,%r9 + adcq %r12,%r10 + + shrq $52,%r9 + salq $12,%r10 + orq %r10,%r9 + + vpmadd52luq 0(%rsi),%ymm1,%ymm3 + vpmadd52luq 32(%rsi),%ymm1,%ymm4 + vpmadd52luq 64(%rsi),%ymm1,%ymm5 + vpmadd52luq 96(%rsi),%ymm1,%ymm6 + vpmadd52luq 128(%rsi),%ymm1,%ymm7 + vpmadd52luq 160(%rsi),%ymm1,%ymm8 + vpmadd52luq 192(%rsi),%ymm1,%ymm9 + vpmadd52luq 224(%rsi),%ymm1,%ymm10 + + vpmadd52luq 0(%rcx),%ymm2,%ymm3 + vpmadd52luq 32(%rcx),%ymm2,%ymm4 + vpmadd52luq 64(%rcx),%ymm2,%ymm5 + vpmadd52luq 96(%rcx),%ymm2,%ymm6 + vpmadd52luq 128(%rcx),%ymm2,%ymm7 + vpmadd52luq 160(%rcx),%ymm2,%ymm8 + vpmadd52luq 192(%rcx),%ymm2,%ymm9 + vpmadd52luq 224(%rcx),%ymm2,%ymm10 + + + valignq $1,%ymm3,%ymm4,%ymm3 + valignq $1,%ymm4,%ymm5,%ymm4 + valignq $1,%ymm5,%ymm6,%ymm5 + valignq $1,%ymm6,%ymm7,%ymm6 + valignq $1,%ymm7,%ymm8,%ymm7 + valignq $1,%ymm8,%ymm9,%ymm8 + valignq $1,%ymm9,%ymm10,%ymm9 + valignq $1,%ymm10,%ymm0,%ymm10 + + vmovq %xmm3,%r13 + addq %r13,%r9 + + vpmadd52huq 0(%rsi),%ymm1,%ymm3 + vpmadd52huq 32(%rsi),%ymm1,%ymm4 + vpmadd52huq 64(%rsi),%ymm1,%ymm5 + vpmadd52huq 96(%rsi),%ymm1,%ymm6 + vpmadd52huq 128(%rsi),%ymm1,%ymm7 + vpmadd52huq 160(%rsi),%ymm1,%ymm8 + vpmadd52huq 192(%rsi),%ymm1,%ymm9 + vpmadd52huq 224(%rsi),%ymm1,%ymm10 + + vpmadd52huq 0(%rcx),%ymm2,%ymm3 + vpmadd52huq 32(%rcx),%ymm2,%ymm4 + vpmadd52huq 64(%rcx),%ymm2,%ymm5 + vpmadd52huq 96(%rcx),%ymm2,%ymm6 + vpmadd52huq 128(%rcx),%ymm2,%ymm7 + vpmadd52huq 160(%rcx),%ymm2,%ymm8 + vpmadd52huq 192(%rcx),%ymm2,%ymm9 + vpmadd52huq 224(%rcx),%ymm2,%ymm10 + movq 8(%r11),%r13 + + vpbroadcastq %r13,%ymm1 + movq 0(%rsi),%rdx + mulxq %r13,%r13,%r12 + addq %r13,%r9 + movq %r12,%r10 + adcq $0,%r10 + + movq %r8,%r13 + imulq %r9,%r13 + andq %rax,%r13 + + vpbroadcastq %r13,%ymm2 + movq 0(%rcx),%rdx + mulxq %r13,%r13,%r12 + addq %r13,%r9 + adcq %r12,%r10 + + shrq $52,%r9 + salq $12,%r10 + orq %r10,%r9 + + vpmadd52luq 0(%rsi),%ymm1,%ymm3 + vpmadd52luq 32(%rsi),%ymm1,%ymm4 + vpmadd52luq 64(%rsi),%ymm1,%ymm5 + vpmadd52luq 96(%rsi),%ymm1,%ymm6 + vpmadd52luq 128(%rsi),%ymm1,%ymm7 + vpmadd52luq 160(%rsi),%ymm1,%ymm8 + vpmadd52luq 192(%rsi),%ymm1,%ymm9 + vpmadd52luq 224(%rsi),%ymm1,%ymm10 + + vpmadd52luq 0(%rcx),%ymm2,%ymm3 + vpmadd52luq 32(%rcx),%ymm2,%ymm4 + vpmadd52luq 64(%rcx),%ymm2,%ymm5 + vpmadd52luq 96(%rcx),%ymm2,%ymm6 + vpmadd52luq 128(%rcx),%ymm2,%ymm7 + vpmadd52luq 160(%rcx),%ymm2,%ymm8 + vpmadd52luq 192(%rcx),%ymm2,%ymm9 + vpmadd52luq 224(%rcx),%ymm2,%ymm10 + + + valignq $1,%ymm3,%ymm4,%ymm3 + valignq $1,%ymm4,%ymm5,%ymm4 + valignq $1,%ymm5,%ymm6,%ymm5 + valignq $1,%ymm6,%ymm7,%ymm6 + valignq $1,%ymm7,%ymm8,%ymm7 + valignq $1,%ymm8,%ymm9,%ymm8 + valignq $1,%ymm9,%ymm10,%ymm9 + valignq $1,%ymm10,%ymm0,%ymm10 + + vmovq %xmm3,%r13 + addq %r13,%r9 + + vpmadd52huq 0(%rsi),%ymm1,%ymm3 + vpmadd52huq 32(%rsi),%ymm1,%ymm4 + vpmadd52huq 64(%rsi),%ymm1,%ymm5 + vpmadd52huq 96(%rsi),%ymm1,%ymm6 + vpmadd52huq 128(%rsi),%ymm1,%ymm7 + vpmadd52huq 160(%rsi),%ymm1,%ymm8 + vpmadd52huq 192(%rsi),%ymm1,%ymm9 + vpmadd52huq 224(%rsi),%ymm1,%ymm10 + + vpmadd52huq 0(%rcx),%ymm2,%ymm3 + vpmadd52huq 32(%rcx),%ymm2,%ymm4 + vpmadd52huq 64(%rcx),%ymm2,%ymm5 + vpmadd52huq 96(%rcx),%ymm2,%ymm6 + vpmadd52huq 128(%rcx),%ymm2,%ymm7 + vpmadd52huq 160(%rcx),%ymm2,%ymm8 + vpmadd52huq 192(%rcx),%ymm2,%ymm9 + vpmadd52huq 224(%rcx),%ymm2,%ymm10 + + vpbroadcastq %r9,%ymm0 + vpblendd $3,%ymm0,%ymm3,%ymm3 + + + + vpsrlq $52,%ymm3,%ymm0 + vpsrlq $52,%ymm4,%ymm1 + vpsrlq $52,%ymm5,%ymm2 + vpsrlq $52,%ymm6,%ymm19 + vpsrlq $52,%ymm7,%ymm20 + vpsrlq $52,%ymm8,%ymm21 + vpsrlq $52,%ymm9,%ymm22 + vpsrlq $52,%ymm10,%ymm23 + + + valignq $3,%ymm22,%ymm23,%ymm23 + valignq $3,%ymm21,%ymm22,%ymm22 + valignq $3,%ymm20,%ymm21,%ymm21 + valignq $3,%ymm19,%ymm20,%ymm20 + valignq $3,%ymm2,%ymm19,%ymm19 + valignq $3,%ymm1,%ymm2,%ymm2 + valignq $3,%ymm0,%ymm1,%ymm1 + valignq $3,L$zeros(%rip),%ymm0,%ymm0 + + + vpandq L$mask52x4(%rip),%ymm3,%ymm3 + vpandq L$mask52x4(%rip),%ymm4,%ymm4 + vpandq L$mask52x4(%rip),%ymm5,%ymm5 + vpandq L$mask52x4(%rip),%ymm6,%ymm6 + vpandq L$mask52x4(%rip),%ymm7,%ymm7 + vpandq L$mask52x4(%rip),%ymm8,%ymm8 + vpandq L$mask52x4(%rip),%ymm9,%ymm9 + vpandq L$mask52x4(%rip),%ymm10,%ymm10 + + + vpaddq %ymm0,%ymm3,%ymm3 + vpaddq %ymm1,%ymm4,%ymm4 + vpaddq %ymm2,%ymm5,%ymm5 + vpaddq %ymm19,%ymm6,%ymm6 + vpaddq %ymm20,%ymm7,%ymm7 + vpaddq %ymm21,%ymm8,%ymm8 + vpaddq %ymm22,%ymm9,%ymm9 + vpaddq %ymm23,%ymm10,%ymm10 + + + + vpcmpuq $6,L$mask52x4(%rip),%ymm3,%k1 + vpcmpuq $6,L$mask52x4(%rip),%ymm4,%k2 + kmovb %k1,%r14d + kmovb %k2,%r13d + shlb $4,%r13b + orb %r13b,%r14b + + vpcmpuq $6,L$mask52x4(%rip),%ymm5,%k1 + vpcmpuq $6,L$mask52x4(%rip),%ymm6,%k2 + kmovb %k1,%r13d + kmovb %k2,%r12d + shlb $4,%r12b + orb %r12b,%r13b + + vpcmpuq $6,L$mask52x4(%rip),%ymm7,%k1 + vpcmpuq $6,L$mask52x4(%rip),%ymm8,%k2 + kmovb %k1,%r12d + kmovb %k2,%r11d + shlb $4,%r11b + orb %r11b,%r12b + + vpcmpuq $6,L$mask52x4(%rip),%ymm9,%k1 + vpcmpuq $6,L$mask52x4(%rip),%ymm10,%k2 + kmovb %k1,%r11d + kmovb %k2,%r10d + shlb $4,%r10b + orb %r10b,%r11b + + addb %r14b,%r14b + adcb %r13b,%r13b + adcb %r12b,%r12b + adcb %r11b,%r11b + + + vpcmpuq $0,L$mask52x4(%rip),%ymm3,%k1 + vpcmpuq $0,L$mask52x4(%rip),%ymm4,%k2 + kmovb %k1,%r9d + kmovb %k2,%r8d + shlb $4,%r8b + orb %r8b,%r9b + + vpcmpuq $0,L$mask52x4(%rip),%ymm5,%k1 + vpcmpuq $0,L$mask52x4(%rip),%ymm6,%k2 + kmovb %k1,%r8d + kmovb %k2,%edx + shlb $4,%dl + orb %dl,%r8b + + vpcmpuq $0,L$mask52x4(%rip),%ymm7,%k1 + vpcmpuq $0,L$mask52x4(%rip),%ymm8,%k2 + kmovb %k1,%edx + kmovb %k2,%ecx + shlb $4,%cl + orb %cl,%dl + + vpcmpuq $0,L$mask52x4(%rip),%ymm9,%k1 + vpcmpuq $0,L$mask52x4(%rip),%ymm10,%k2 + kmovb %k1,%ecx + kmovb %k2,%ebx + shlb $4,%bl + orb %bl,%cl + + addb %r9b,%r14b + adcb %r8b,%r13b + adcb %dl,%r12b + adcb %cl,%r11b + + xorb %r9b,%r14b + xorb %r8b,%r13b + xorb %dl,%r12b + xorb %cl,%r11b + + kmovb %r14d,%k1 + shrb $4,%r14b + kmovb %r14d,%k2 + kmovb %r13d,%k3 + shrb $4,%r13b + kmovb %r13d,%k4 + kmovb %r12d,%k5 + shrb $4,%r12b + kmovb %r12d,%k6 + kmovb %r11d,%k7 + + vpsubq L$mask52x4(%rip),%ymm3,%ymm3{%k1} + vpsubq L$mask52x4(%rip),%ymm4,%ymm4{%k2} + vpsubq L$mask52x4(%rip),%ymm5,%ymm5{%k3} + vpsubq L$mask52x4(%rip),%ymm6,%ymm6{%k4} + vpsubq L$mask52x4(%rip),%ymm7,%ymm7{%k5} + vpsubq L$mask52x4(%rip),%ymm8,%ymm8{%k6} + vpsubq L$mask52x4(%rip),%ymm9,%ymm9{%k7} + + vpandq L$mask52x4(%rip),%ymm3,%ymm3 + vpandq L$mask52x4(%rip),%ymm4,%ymm4 + vpandq L$mask52x4(%rip),%ymm5,%ymm5 + vpandq L$mask52x4(%rip),%ymm6,%ymm6 + vpandq L$mask52x4(%rip),%ymm7,%ymm7 + vpandq L$mask52x4(%rip),%ymm8,%ymm8 + vpandq L$mask52x4(%rip),%ymm9,%ymm9 + + shrb $4,%r11b + kmovb %r11d,%k1 + + vpsubq L$mask52x4(%rip),%ymm10,%ymm10{%k1} + + vpandq L$mask52x4(%rip),%ymm10,%ymm10 + + vmovdqu64 %ymm3,0(%rdi) + vmovdqu64 %ymm4,32(%rdi) + vmovdqu64 %ymm5,64(%rdi) + vmovdqu64 %ymm6,96(%rdi) + vmovdqu64 %ymm7,128(%rdi) + vmovdqu64 %ymm8,160(%rdi) + vmovdqu64 %ymm9,192(%rdi) + vmovdqu64 %ymm10,224(%rdi) + + vzeroupper + leaq (%rsp),%rax + + movq 0(%rax),%r15 + + movq 8(%rax),%r14 + + movq 16(%rax),%r13 + + movq 24(%rax),%r12 + + movq 32(%rax),%rbp + + movq 40(%rax),%rbx + + leaq 48(%rax),%rsp + +L$ossl_rsaz_amm52x30_x1_ifma256_epilogue: + .byte 0xf3,0xc3 + + +.section __DATA,__const +.p2align 5 +L$mask52x4: +.quad 0xfffffffffffff +.quad 0xfffffffffffff +.quad 0xfffffffffffff +.quad 0xfffffffffffff +.text + +.globl _ossl_rsaz_amm52x30_x2_ifma256 + +.p2align 5 +_ossl_rsaz_amm52x30_x2_ifma256: + +.byte 243,15,30,250 + pushq %rbx + + pushq %rbp + + pushq %r12 + + pushq %r13 + + pushq %r14 + + pushq %r15 + + + vpxord %ymm0,%ymm0,%ymm0 + vmovdqa64 %ymm0,%ymm3 + vmovdqa64 %ymm0,%ymm4 + vmovdqa64 %ymm0,%ymm5 + vmovdqa64 %ymm0,%ymm6 + vmovdqa64 %ymm0,%ymm7 + vmovdqa64 %ymm0,%ymm8 + vmovdqa64 %ymm0,%ymm9 + vmovdqa64 %ymm0,%ymm10 + + vmovdqa64 %ymm0,%ymm11 + vmovdqa64 %ymm0,%ymm12 + vmovdqa64 %ymm0,%ymm13 + vmovdqa64 %ymm0,%ymm14 + vmovdqa64 %ymm0,%ymm15 + vmovdqa64 %ymm0,%ymm16 + vmovdqa64 %ymm0,%ymm17 + vmovdqa64 %ymm0,%ymm18 + + + xorl %r9d,%r9d + xorl %r15d,%r15d + + movq %rdx,%r11 + movq $0xfffffffffffff,%rax + + movl $30,%ebx + +.p2align 5 +L$loop30: + movq 0(%r11),%r13 + + vpbroadcastq %r13,%ymm1 + movq 0(%rsi),%rdx + mulxq %r13,%r13,%r12 + addq %r13,%r9 + movq %r12,%r10 + adcq $0,%r10 + + movq (%r8),%r13 + imulq %r9,%r13 + andq %rax,%r13 + + vpbroadcastq %r13,%ymm2 + movq 0(%rcx),%rdx + mulxq %r13,%r13,%r12 + addq %r13,%r9 + adcq %r12,%r10 + + shrq $52,%r9 + salq $12,%r10 + orq %r10,%r9 + + vpmadd52luq 0(%rsi),%ymm1,%ymm3 + vpmadd52luq 32(%rsi),%ymm1,%ymm4 + vpmadd52luq 64(%rsi),%ymm1,%ymm5 + vpmadd52luq 96(%rsi),%ymm1,%ymm6 + vpmadd52luq 128(%rsi),%ymm1,%ymm7 + vpmadd52luq 160(%rsi),%ymm1,%ymm8 + vpmadd52luq 192(%rsi),%ymm1,%ymm9 + vpmadd52luq 224(%rsi),%ymm1,%ymm10 + + vpmadd52luq 0(%rcx),%ymm2,%ymm3 + vpmadd52luq 32(%rcx),%ymm2,%ymm4 + vpmadd52luq 64(%rcx),%ymm2,%ymm5 + vpmadd52luq 96(%rcx),%ymm2,%ymm6 + vpmadd52luq 128(%rcx),%ymm2,%ymm7 + vpmadd52luq 160(%rcx),%ymm2,%ymm8 + vpmadd52luq 192(%rcx),%ymm2,%ymm9 + vpmadd52luq 224(%rcx),%ymm2,%ymm10 + + + valignq $1,%ymm3,%ymm4,%ymm3 + valignq $1,%ymm4,%ymm5,%ymm4 + valignq $1,%ymm5,%ymm6,%ymm5 + valignq $1,%ymm6,%ymm7,%ymm6 + valignq $1,%ymm7,%ymm8,%ymm7 + valignq $1,%ymm8,%ymm9,%ymm8 + valignq $1,%ymm9,%ymm10,%ymm9 + valignq $1,%ymm10,%ymm0,%ymm10 + + vmovq %xmm3,%r13 + addq %r13,%r9 + + vpmadd52huq 0(%rsi),%ymm1,%ymm3 + vpmadd52huq 32(%rsi),%ymm1,%ymm4 + vpmadd52huq 64(%rsi),%ymm1,%ymm5 + vpmadd52huq 96(%rsi),%ymm1,%ymm6 + vpmadd52huq 128(%rsi),%ymm1,%ymm7 + vpmadd52huq 160(%rsi),%ymm1,%ymm8 + vpmadd52huq 192(%rsi),%ymm1,%ymm9 + vpmadd52huq 224(%rsi),%ymm1,%ymm10 + + vpmadd52huq 0(%rcx),%ymm2,%ymm3 + vpmadd52huq 32(%rcx),%ymm2,%ymm4 + vpmadd52huq 64(%rcx),%ymm2,%ymm5 + vpmadd52huq 96(%rcx),%ymm2,%ymm6 + vpmadd52huq 128(%rcx),%ymm2,%ymm7 + vpmadd52huq 160(%rcx),%ymm2,%ymm8 + vpmadd52huq 192(%rcx),%ymm2,%ymm9 + vpmadd52huq 224(%rcx),%ymm2,%ymm10 + movq 256(%r11),%r13 + + vpbroadcastq %r13,%ymm1 + movq 256(%rsi),%rdx + mulxq %r13,%r13,%r12 + addq %r13,%r15 + movq %r12,%r10 + adcq $0,%r10 + + movq 8(%r8),%r13 + imulq %r15,%r13 + andq %rax,%r13 + + vpbroadcastq %r13,%ymm2 + movq 256(%rcx),%rdx + mulxq %r13,%r13,%r12 + addq %r13,%r15 + adcq %r12,%r10 + + shrq $52,%r15 + salq $12,%r10 + orq %r10,%r15 + + vpmadd52luq 256(%rsi),%ymm1,%ymm11 + vpmadd52luq 288(%rsi),%ymm1,%ymm12 + vpmadd52luq 320(%rsi),%ymm1,%ymm13 + vpmadd52luq 352(%rsi),%ymm1,%ymm14 + vpmadd52luq 384(%rsi),%ymm1,%ymm15 + vpmadd52luq 416(%rsi),%ymm1,%ymm16 + vpmadd52luq 448(%rsi),%ymm1,%ymm17 + vpmadd52luq 480(%rsi),%ymm1,%ymm18 + + vpmadd52luq 256(%rcx),%ymm2,%ymm11 + vpmadd52luq 288(%rcx),%ymm2,%ymm12 + vpmadd52luq 320(%rcx),%ymm2,%ymm13 + vpmadd52luq 352(%rcx),%ymm2,%ymm14 + vpmadd52luq 384(%rcx),%ymm2,%ymm15 + vpmadd52luq 416(%rcx),%ymm2,%ymm16 + vpmadd52luq 448(%rcx),%ymm2,%ymm17 + vpmadd52luq 480(%rcx),%ymm2,%ymm18 + + + valignq $1,%ymm11,%ymm12,%ymm11 + valignq $1,%ymm12,%ymm13,%ymm12 + valignq $1,%ymm13,%ymm14,%ymm13 + valignq $1,%ymm14,%ymm15,%ymm14 + valignq $1,%ymm15,%ymm16,%ymm15 + valignq $1,%ymm16,%ymm17,%ymm16 + valignq $1,%ymm17,%ymm18,%ymm17 + valignq $1,%ymm18,%ymm0,%ymm18 + + vmovq %xmm11,%r13 + addq %r13,%r15 + + vpmadd52huq 256(%rsi),%ymm1,%ymm11 + vpmadd52huq 288(%rsi),%ymm1,%ymm12 + vpmadd52huq 320(%rsi),%ymm1,%ymm13 + vpmadd52huq 352(%rsi),%ymm1,%ymm14 + vpmadd52huq 384(%rsi),%ymm1,%ymm15 + vpmadd52huq 416(%rsi),%ymm1,%ymm16 + vpmadd52huq 448(%rsi),%ymm1,%ymm17 + vpmadd52huq 480(%rsi),%ymm1,%ymm18 + + vpmadd52huq 256(%rcx),%ymm2,%ymm11 + vpmadd52huq 288(%rcx),%ymm2,%ymm12 + vpmadd52huq 320(%rcx),%ymm2,%ymm13 + vpmadd52huq 352(%rcx),%ymm2,%ymm14 + vpmadd52huq 384(%rcx),%ymm2,%ymm15 + vpmadd52huq 416(%rcx),%ymm2,%ymm16 + vpmadd52huq 448(%rcx),%ymm2,%ymm17 + vpmadd52huq 480(%rcx),%ymm2,%ymm18 + leaq 8(%r11),%r11 + decl %ebx + jne L$loop30 + + vpbroadcastq %r9,%ymm0 + vpblendd $3,%ymm0,%ymm3,%ymm3 + + + + vpsrlq $52,%ymm3,%ymm0 + vpsrlq $52,%ymm4,%ymm1 + vpsrlq $52,%ymm5,%ymm2 + vpsrlq $52,%ymm6,%ymm19 + vpsrlq $52,%ymm7,%ymm20 + vpsrlq $52,%ymm8,%ymm21 + vpsrlq $52,%ymm9,%ymm22 + vpsrlq $52,%ymm10,%ymm23 + + + valignq $3,%ymm22,%ymm23,%ymm23 + valignq $3,%ymm21,%ymm22,%ymm22 + valignq $3,%ymm20,%ymm21,%ymm21 + valignq $3,%ymm19,%ymm20,%ymm20 + valignq $3,%ymm2,%ymm19,%ymm19 + valignq $3,%ymm1,%ymm2,%ymm2 + valignq $3,%ymm0,%ymm1,%ymm1 + valignq $3,L$zeros(%rip),%ymm0,%ymm0 + + + vpandq L$mask52x4(%rip),%ymm3,%ymm3 + vpandq L$mask52x4(%rip),%ymm4,%ymm4 + vpandq L$mask52x4(%rip),%ymm5,%ymm5 + vpandq L$mask52x4(%rip),%ymm6,%ymm6 + vpandq L$mask52x4(%rip),%ymm7,%ymm7 + vpandq L$mask52x4(%rip),%ymm8,%ymm8 + vpandq L$mask52x4(%rip),%ymm9,%ymm9 + vpandq L$mask52x4(%rip),%ymm10,%ymm10 + + + vpaddq %ymm0,%ymm3,%ymm3 + vpaddq %ymm1,%ymm4,%ymm4 + vpaddq %ymm2,%ymm5,%ymm5 + vpaddq %ymm19,%ymm6,%ymm6 + vpaddq %ymm20,%ymm7,%ymm7 + vpaddq %ymm21,%ymm8,%ymm8 + vpaddq %ymm22,%ymm9,%ymm9 + vpaddq %ymm23,%ymm10,%ymm10 + + + + vpcmpuq $6,L$mask52x4(%rip),%ymm3,%k1 + vpcmpuq $6,L$mask52x4(%rip),%ymm4,%k2 + kmovb %k1,%r14d + kmovb %k2,%r13d + shlb $4,%r13b + orb %r13b,%r14b + + vpcmpuq $6,L$mask52x4(%rip),%ymm5,%k1 + vpcmpuq $6,L$mask52x4(%rip),%ymm6,%k2 + kmovb %k1,%r13d + kmovb %k2,%r12d + shlb $4,%r12b + orb %r12b,%r13b + + vpcmpuq $6,L$mask52x4(%rip),%ymm7,%k1 + vpcmpuq $6,L$mask52x4(%rip),%ymm8,%k2 + kmovb %k1,%r12d + kmovb %k2,%r11d + shlb $4,%r11b + orb %r11b,%r12b + + vpcmpuq $6,L$mask52x4(%rip),%ymm9,%k1 + vpcmpuq $6,L$mask52x4(%rip),%ymm10,%k2 + kmovb %k1,%r11d + kmovb %k2,%r10d + shlb $4,%r10b + orb %r10b,%r11b + + addb %r14b,%r14b + adcb %r13b,%r13b + adcb %r12b,%r12b + adcb %r11b,%r11b + + + vpcmpuq $0,L$mask52x4(%rip),%ymm3,%k1 + vpcmpuq $0,L$mask52x4(%rip),%ymm4,%k2 + kmovb %k1,%r9d + kmovb %k2,%r8d + shlb $4,%r8b + orb %r8b,%r9b + + vpcmpuq $0,L$mask52x4(%rip),%ymm5,%k1 + vpcmpuq $0,L$mask52x4(%rip),%ymm6,%k2 + kmovb %k1,%r8d + kmovb %k2,%edx + shlb $4,%dl + orb %dl,%r8b + + vpcmpuq $0,L$mask52x4(%rip),%ymm7,%k1 + vpcmpuq $0,L$mask52x4(%rip),%ymm8,%k2 + kmovb %k1,%edx + kmovb %k2,%ecx + shlb $4,%cl + orb %cl,%dl + + vpcmpuq $0,L$mask52x4(%rip),%ymm9,%k1 + vpcmpuq $0,L$mask52x4(%rip),%ymm10,%k2 + kmovb %k1,%ecx + kmovb %k2,%ebx + shlb $4,%bl + orb %bl,%cl + + addb %r9b,%r14b + adcb %r8b,%r13b + adcb %dl,%r12b + adcb %cl,%r11b + + xorb %r9b,%r14b + xorb %r8b,%r13b + xorb %dl,%r12b + xorb %cl,%r11b + + kmovb %r14d,%k1 + shrb $4,%r14b + kmovb %r14d,%k2 + kmovb %r13d,%k3 + shrb $4,%r13b + kmovb %r13d,%k4 + kmovb %r12d,%k5 + shrb $4,%r12b + kmovb %r12d,%k6 + kmovb %r11d,%k7 + + vpsubq L$mask52x4(%rip),%ymm3,%ymm3{%k1} + vpsubq L$mask52x4(%rip),%ymm4,%ymm4{%k2} + vpsubq L$mask52x4(%rip),%ymm5,%ymm5{%k3} + vpsubq L$mask52x4(%rip),%ymm6,%ymm6{%k4} + vpsubq L$mask52x4(%rip),%ymm7,%ymm7{%k5} + vpsubq L$mask52x4(%rip),%ymm8,%ymm8{%k6} + vpsubq L$mask52x4(%rip),%ymm9,%ymm9{%k7} + + vpandq L$mask52x4(%rip),%ymm3,%ymm3 + vpandq L$mask52x4(%rip),%ymm4,%ymm4 + vpandq L$mask52x4(%rip),%ymm5,%ymm5 + vpandq L$mask52x4(%rip),%ymm6,%ymm6 + vpandq L$mask52x4(%rip),%ymm7,%ymm7 + vpandq L$mask52x4(%rip),%ymm8,%ymm8 + vpandq L$mask52x4(%rip),%ymm9,%ymm9 + + shrb $4,%r11b + kmovb %r11d,%k1 + + vpsubq L$mask52x4(%rip),%ymm10,%ymm10{%k1} + + vpandq L$mask52x4(%rip),%ymm10,%ymm10 + + vpbroadcastq %r15,%ymm0 + vpblendd $3,%ymm0,%ymm11,%ymm11 + + + + vpsrlq $52,%ymm11,%ymm0 + vpsrlq $52,%ymm12,%ymm1 + vpsrlq $52,%ymm13,%ymm2 + vpsrlq $52,%ymm14,%ymm19 + vpsrlq $52,%ymm15,%ymm20 + vpsrlq $52,%ymm16,%ymm21 + vpsrlq $52,%ymm17,%ymm22 + vpsrlq $52,%ymm18,%ymm23 + + + valignq $3,%ymm22,%ymm23,%ymm23 + valignq $3,%ymm21,%ymm22,%ymm22 + valignq $3,%ymm20,%ymm21,%ymm21 + valignq $3,%ymm19,%ymm20,%ymm20 + valignq $3,%ymm2,%ymm19,%ymm19 + valignq $3,%ymm1,%ymm2,%ymm2 + valignq $3,%ymm0,%ymm1,%ymm1 + valignq $3,L$zeros(%rip),%ymm0,%ymm0 + + + vpandq L$mask52x4(%rip),%ymm11,%ymm11 + vpandq L$mask52x4(%rip),%ymm12,%ymm12 + vpandq L$mask52x4(%rip),%ymm13,%ymm13 + vpandq L$mask52x4(%rip),%ymm14,%ymm14 + vpandq L$mask52x4(%rip),%ymm15,%ymm15 + vpandq L$mask52x4(%rip),%ymm16,%ymm16 + vpandq L$mask52x4(%rip),%ymm17,%ymm17 + vpandq L$mask52x4(%rip),%ymm18,%ymm18 + + + vpaddq %ymm0,%ymm11,%ymm11 + vpaddq %ymm1,%ymm12,%ymm12 + vpaddq %ymm2,%ymm13,%ymm13 + vpaddq %ymm19,%ymm14,%ymm14 + vpaddq %ymm20,%ymm15,%ymm15 + vpaddq %ymm21,%ymm16,%ymm16 + vpaddq %ymm22,%ymm17,%ymm17 + vpaddq %ymm23,%ymm18,%ymm18 + + + + vpcmpuq $6,L$mask52x4(%rip),%ymm11,%k1 + vpcmpuq $6,L$mask52x4(%rip),%ymm12,%k2 + kmovb %k1,%r14d + kmovb %k2,%r13d + shlb $4,%r13b + orb %r13b,%r14b + + vpcmpuq $6,L$mask52x4(%rip),%ymm13,%k1 + vpcmpuq $6,L$mask52x4(%rip),%ymm14,%k2 + kmovb %k1,%r13d + kmovb %k2,%r12d + shlb $4,%r12b + orb %r12b,%r13b + + vpcmpuq $6,L$mask52x4(%rip),%ymm15,%k1 + vpcmpuq $6,L$mask52x4(%rip),%ymm16,%k2 + kmovb %k1,%r12d + kmovb %k2,%r11d + shlb $4,%r11b + orb %r11b,%r12b + + vpcmpuq $6,L$mask52x4(%rip),%ymm17,%k1 + vpcmpuq $6,L$mask52x4(%rip),%ymm18,%k2 + kmovb %k1,%r11d + kmovb %k2,%r10d + shlb $4,%r10b + orb %r10b,%r11b + + addb %r14b,%r14b + adcb %r13b,%r13b + adcb %r12b,%r12b + adcb %r11b,%r11b + + + vpcmpuq $0,L$mask52x4(%rip),%ymm11,%k1 + vpcmpuq $0,L$mask52x4(%rip),%ymm12,%k2 + kmovb %k1,%r9d + kmovb %k2,%r8d + shlb $4,%r8b + orb %r8b,%r9b + + vpcmpuq $0,L$mask52x4(%rip),%ymm13,%k1 + vpcmpuq $0,L$mask52x4(%rip),%ymm14,%k2 + kmovb %k1,%r8d + kmovb %k2,%edx + shlb $4,%dl + orb %dl,%r8b + + vpcmpuq $0,L$mask52x4(%rip),%ymm15,%k1 + vpcmpuq $0,L$mask52x4(%rip),%ymm16,%k2 + kmovb %k1,%edx + kmovb %k2,%ecx + shlb $4,%cl + orb %cl,%dl + + vpcmpuq $0,L$mask52x4(%rip),%ymm17,%k1 + vpcmpuq $0,L$mask52x4(%rip),%ymm18,%k2 + kmovb %k1,%ecx + kmovb %k2,%ebx + shlb $4,%bl + orb %bl,%cl + + addb %r9b,%r14b + adcb %r8b,%r13b + adcb %dl,%r12b + adcb %cl,%r11b + + xorb %r9b,%r14b + xorb %r8b,%r13b + xorb %dl,%r12b + xorb %cl,%r11b + + kmovb %r14d,%k1 + shrb $4,%r14b + kmovb %r14d,%k2 + kmovb %r13d,%k3 + shrb $4,%r13b + kmovb %r13d,%k4 + kmovb %r12d,%k5 + shrb $4,%r12b + kmovb %r12d,%k6 + kmovb %r11d,%k7 + + vpsubq L$mask52x4(%rip),%ymm11,%ymm11{%k1} + vpsubq L$mask52x4(%rip),%ymm12,%ymm12{%k2} + vpsubq L$mask52x4(%rip),%ymm13,%ymm13{%k3} + vpsubq L$mask52x4(%rip),%ymm14,%ymm14{%k4} + vpsubq L$mask52x4(%rip),%ymm15,%ymm15{%k5} + vpsubq L$mask52x4(%rip),%ymm16,%ymm16{%k6} + vpsubq L$mask52x4(%rip),%ymm17,%ymm17{%k7} + + vpandq L$mask52x4(%rip),%ymm11,%ymm11 + vpandq L$mask52x4(%rip),%ymm12,%ymm12 + vpandq L$mask52x4(%rip),%ymm13,%ymm13 + vpandq L$mask52x4(%rip),%ymm14,%ymm14 + vpandq L$mask52x4(%rip),%ymm15,%ymm15 + vpandq L$mask52x4(%rip),%ymm16,%ymm16 + vpandq L$mask52x4(%rip),%ymm17,%ymm17 + + shrb $4,%r11b + kmovb %r11d,%k1 + + vpsubq L$mask52x4(%rip),%ymm18,%ymm18{%k1} + + vpandq L$mask52x4(%rip),%ymm18,%ymm18 + + vmovdqu64 %ymm3,0(%rdi) + vmovdqu64 %ymm4,32(%rdi) + vmovdqu64 %ymm5,64(%rdi) + vmovdqu64 %ymm6,96(%rdi) + vmovdqu64 %ymm7,128(%rdi) + vmovdqu64 %ymm8,160(%rdi) + vmovdqu64 %ymm9,192(%rdi) + vmovdqu64 %ymm10,224(%rdi) + + vmovdqu64 %ymm11,256(%rdi) + vmovdqu64 %ymm12,288(%rdi) + vmovdqu64 %ymm13,320(%rdi) + vmovdqu64 %ymm14,352(%rdi) + vmovdqu64 %ymm15,384(%rdi) + vmovdqu64 %ymm16,416(%rdi) + vmovdqu64 %ymm17,448(%rdi) + vmovdqu64 %ymm18,480(%rdi) + + vzeroupper + leaq (%rsp),%rax + + movq 0(%rax),%r15 + + movq 8(%rax),%r14 + + movq 16(%rax),%r13 + + movq 24(%rax),%r12 + + movq 32(%rax),%rbp + + movq 40(%rax),%rbx + + leaq 48(%rax),%rsp + +L$ossl_rsaz_amm52x30_x2_ifma256_epilogue: + .byte 0xf3,0xc3 + + +.text + +.p2align 5 +.globl _ossl_extract_multiplier_2x30_win5 + +_ossl_extract_multiplier_2x30_win5: + +.byte 243,15,30,250 + vmovdqa64 L$ones(%rip),%ymm30 + vpbroadcastq %rdx,%ymm28 + vpbroadcastq %rcx,%ymm29 + leaq 16384(%rsi),%rax + + + vpxor %xmm0,%xmm0,%xmm0 + vmovdqa64 %ymm0,%ymm27 + vmovdqa64 %ymm0,%ymm1 + vmovdqa64 %ymm0,%ymm2 + vmovdqa64 %ymm0,%ymm3 + vmovdqa64 %ymm0,%ymm4 + vmovdqa64 %ymm0,%ymm5 + vmovdqa64 %ymm0,%ymm16 + vmovdqa64 %ymm0,%ymm17 + vmovdqa64 %ymm0,%ymm18 + vmovdqa64 %ymm0,%ymm19 + vmovdqa64 %ymm0,%ymm20 + vmovdqa64 %ymm0,%ymm21 + vmovdqa64 %ymm0,%ymm22 + vmovdqa64 %ymm0,%ymm23 + vmovdqa64 %ymm0,%ymm24 + vmovdqa64 %ymm0,%ymm25 + +.p2align 5 +L$loop: + vpcmpq $0,%ymm27,%ymm28,%k1 + vpcmpq $0,%ymm27,%ymm29,%k2 + vmovdqu64 0(%rsi),%ymm26 + vpblendmq %ymm26,%ymm0,%ymm0{%k1} + vmovdqu64 32(%rsi),%ymm26 + vpblendmq %ymm26,%ymm1,%ymm1{%k1} + vmovdqu64 64(%rsi),%ymm26 + vpblendmq %ymm26,%ymm2,%ymm2{%k1} + vmovdqu64 96(%rsi),%ymm26 + vpblendmq %ymm26,%ymm3,%ymm3{%k1} + vmovdqu64 128(%rsi),%ymm26 + vpblendmq %ymm26,%ymm4,%ymm4{%k1} + vmovdqu64 160(%rsi),%ymm26 + vpblendmq %ymm26,%ymm5,%ymm5{%k1} + vmovdqu64 192(%rsi),%ymm26 + vpblendmq %ymm26,%ymm16,%ymm16{%k1} + vmovdqu64 224(%rsi),%ymm26 + vpblendmq %ymm26,%ymm17,%ymm17{%k1} + vmovdqu64 256(%rsi),%ymm26 + vpblendmq %ymm26,%ymm18,%ymm18{%k2} + vmovdqu64 288(%rsi),%ymm26 + vpblendmq %ymm26,%ymm19,%ymm19{%k2} + vmovdqu64 320(%rsi),%ymm26 + vpblendmq %ymm26,%ymm20,%ymm20{%k2} + vmovdqu64 352(%rsi),%ymm26 + vpblendmq %ymm26,%ymm21,%ymm21{%k2} + vmovdqu64 384(%rsi),%ymm26 + vpblendmq %ymm26,%ymm22,%ymm22{%k2} + vmovdqu64 416(%rsi),%ymm26 + vpblendmq %ymm26,%ymm23,%ymm23{%k2} + vmovdqu64 448(%rsi),%ymm26 + vpblendmq %ymm26,%ymm24,%ymm24{%k2} + vmovdqu64 480(%rsi),%ymm26 + vpblendmq %ymm26,%ymm25,%ymm25{%k2} + vpaddq %ymm30,%ymm27,%ymm27 + addq $512,%rsi + cmpq %rsi,%rax + jne L$loop + vmovdqu64 %ymm0,0(%rdi) + vmovdqu64 %ymm1,32(%rdi) + vmovdqu64 %ymm2,64(%rdi) + vmovdqu64 %ymm3,96(%rdi) + vmovdqu64 %ymm4,128(%rdi) + vmovdqu64 %ymm5,160(%rdi) + vmovdqu64 %ymm16,192(%rdi) + vmovdqu64 %ymm17,224(%rdi) + vmovdqu64 %ymm18,256(%rdi) + vmovdqu64 %ymm19,288(%rdi) + vmovdqu64 %ymm20,320(%rdi) + vmovdqu64 %ymm21,352(%rdi) + vmovdqu64 %ymm22,384(%rdi) + vmovdqu64 %ymm23,416(%rdi) + vmovdqu64 %ymm24,448(%rdi) + vmovdqu64 %ymm25,480(%rdi) + + .byte 0xf3,0xc3 + + +.section __DATA,__const +.p2align 5 +L$ones: +.quad 1,1,1,1 +L$zeros: +.quad 0,0,0,0 diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/bn/rsaz-3k-avxifma.s b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/bn/rsaz-3k-avxifma.s new file mode 100644 index 00000000000000..8baf7082a77ad0 --- /dev/null +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/bn/rsaz-3k-avxifma.s @@ -0,0 +1,12 @@ +.text + +.globl _ossl_rsaz_amm52x30_x1_avxifma256 +.globl _ossl_rsaz_amm52x30_x2_avxifma256 +.globl _ossl_extract_multiplier_2x30_win5_avx + +_ossl_rsaz_amm52x30_x1_avxifma256: +_ossl_rsaz_amm52x30_x2_avxifma256: +_ossl_extract_multiplier_2x30_win5_avx: +.byte 0x0f,0x0b + .byte 0xf3,0xc3 + diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/bn/rsaz-4k-avx512.s b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/bn/rsaz-4k-avx512.s new file mode 100644 index 00000000000000..d817ff3137110d --- /dev/null +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/bn/rsaz-4k-avx512.s @@ -0,0 +1,1341 @@ +.text + +.globl _ossl_rsaz_amm52x40_x1_ifma256 + +.p2align 5 +_ossl_rsaz_amm52x40_x1_ifma256: + +.byte 243,15,30,250 + pushq %rbx + + pushq %rbp + + pushq %r12 + + pushq %r13 + + pushq %r14 + + pushq %r15 + + + vpxord %ymm0,%ymm0,%ymm0 + vmovdqa64 %ymm0,%ymm3 + vmovdqa64 %ymm0,%ymm4 + vmovdqa64 %ymm0,%ymm5 + vmovdqa64 %ymm0,%ymm6 + vmovdqa64 %ymm0,%ymm7 + vmovdqa64 %ymm0,%ymm8 + vmovdqa64 %ymm0,%ymm9 + vmovdqa64 %ymm0,%ymm10 + vmovdqa64 %ymm0,%ymm11 + vmovdqa64 %ymm0,%ymm12 + + xorl %r9d,%r9d + + movq %rdx,%r11 + movq $0xfffffffffffff,%rax + + + movl $10,%ebx + +.p2align 5 +L$loop10: + movq 0(%r11),%r13 + + vpbroadcastq %r13,%ymm1 + movq 0(%rsi),%rdx + mulxq %r13,%r13,%r12 + addq %r13,%r9 + movq %r12,%r10 + adcq $0,%r10 + + movq %r8,%r13 + imulq %r9,%r13 + andq %rax,%r13 + + vpbroadcastq %r13,%ymm2 + movq 0(%rcx),%rdx + mulxq %r13,%r13,%r12 + addq %r13,%r9 + adcq %r12,%r10 + + shrq $52,%r9 + salq $12,%r10 + orq %r10,%r9 + + vpmadd52luq 0(%rsi),%ymm1,%ymm3 + vpmadd52luq 32(%rsi),%ymm1,%ymm4 + vpmadd52luq 64(%rsi),%ymm1,%ymm5 + vpmadd52luq 96(%rsi),%ymm1,%ymm6 + vpmadd52luq 128(%rsi),%ymm1,%ymm7 + vpmadd52luq 160(%rsi),%ymm1,%ymm8 + vpmadd52luq 192(%rsi),%ymm1,%ymm9 + vpmadd52luq 224(%rsi),%ymm1,%ymm10 + vpmadd52luq 256(%rsi),%ymm1,%ymm11 + vpmadd52luq 288(%rsi),%ymm1,%ymm12 + + vpmadd52luq 0(%rcx),%ymm2,%ymm3 + vpmadd52luq 32(%rcx),%ymm2,%ymm4 + vpmadd52luq 64(%rcx),%ymm2,%ymm5 + vpmadd52luq 96(%rcx),%ymm2,%ymm6 + vpmadd52luq 128(%rcx),%ymm2,%ymm7 + vpmadd52luq 160(%rcx),%ymm2,%ymm8 + vpmadd52luq 192(%rcx),%ymm2,%ymm9 + vpmadd52luq 224(%rcx),%ymm2,%ymm10 + vpmadd52luq 256(%rcx),%ymm2,%ymm11 + vpmadd52luq 288(%rcx),%ymm2,%ymm12 + + + valignq $1,%ymm3,%ymm4,%ymm3 + valignq $1,%ymm4,%ymm5,%ymm4 + valignq $1,%ymm5,%ymm6,%ymm5 + valignq $1,%ymm6,%ymm7,%ymm6 + valignq $1,%ymm7,%ymm8,%ymm7 + valignq $1,%ymm8,%ymm9,%ymm8 + valignq $1,%ymm9,%ymm10,%ymm9 + valignq $1,%ymm10,%ymm11,%ymm10 + valignq $1,%ymm11,%ymm12,%ymm11 + valignq $1,%ymm12,%ymm0,%ymm12 + + vmovq %xmm3,%r13 + addq %r13,%r9 + + vpmadd52huq 0(%rsi),%ymm1,%ymm3 + vpmadd52huq 32(%rsi),%ymm1,%ymm4 + vpmadd52huq 64(%rsi),%ymm1,%ymm5 + vpmadd52huq 96(%rsi),%ymm1,%ymm6 + vpmadd52huq 128(%rsi),%ymm1,%ymm7 + vpmadd52huq 160(%rsi),%ymm1,%ymm8 + vpmadd52huq 192(%rsi),%ymm1,%ymm9 + vpmadd52huq 224(%rsi),%ymm1,%ymm10 + vpmadd52huq 256(%rsi),%ymm1,%ymm11 + vpmadd52huq 288(%rsi),%ymm1,%ymm12 + + vpmadd52huq 0(%rcx),%ymm2,%ymm3 + vpmadd52huq 32(%rcx),%ymm2,%ymm4 + vpmadd52huq 64(%rcx),%ymm2,%ymm5 + vpmadd52huq 96(%rcx),%ymm2,%ymm6 + vpmadd52huq 128(%rcx),%ymm2,%ymm7 + vpmadd52huq 160(%rcx),%ymm2,%ymm8 + vpmadd52huq 192(%rcx),%ymm2,%ymm9 + vpmadd52huq 224(%rcx),%ymm2,%ymm10 + vpmadd52huq 256(%rcx),%ymm2,%ymm11 + vpmadd52huq 288(%rcx),%ymm2,%ymm12 + movq 8(%r11),%r13 + + vpbroadcastq %r13,%ymm1 + movq 0(%rsi),%rdx + mulxq %r13,%r13,%r12 + addq %r13,%r9 + movq %r12,%r10 + adcq $0,%r10 + + movq %r8,%r13 + imulq %r9,%r13 + andq %rax,%r13 + + vpbroadcastq %r13,%ymm2 + movq 0(%rcx),%rdx + mulxq %r13,%r13,%r12 + addq %r13,%r9 + adcq %r12,%r10 + + shrq $52,%r9 + salq $12,%r10 + orq %r10,%r9 + + vpmadd52luq 0(%rsi),%ymm1,%ymm3 + vpmadd52luq 32(%rsi),%ymm1,%ymm4 + vpmadd52luq 64(%rsi),%ymm1,%ymm5 + vpmadd52luq 96(%rsi),%ymm1,%ymm6 + vpmadd52luq 128(%rsi),%ymm1,%ymm7 + vpmadd52luq 160(%rsi),%ymm1,%ymm8 + vpmadd52luq 192(%rsi),%ymm1,%ymm9 + vpmadd52luq 224(%rsi),%ymm1,%ymm10 + vpmadd52luq 256(%rsi),%ymm1,%ymm11 + vpmadd52luq 288(%rsi),%ymm1,%ymm12 + + vpmadd52luq 0(%rcx),%ymm2,%ymm3 + vpmadd52luq 32(%rcx),%ymm2,%ymm4 + vpmadd52luq 64(%rcx),%ymm2,%ymm5 + vpmadd52luq 96(%rcx),%ymm2,%ymm6 + vpmadd52luq 128(%rcx),%ymm2,%ymm7 + vpmadd52luq 160(%rcx),%ymm2,%ymm8 + vpmadd52luq 192(%rcx),%ymm2,%ymm9 + vpmadd52luq 224(%rcx),%ymm2,%ymm10 + vpmadd52luq 256(%rcx),%ymm2,%ymm11 + vpmadd52luq 288(%rcx),%ymm2,%ymm12 + + + valignq $1,%ymm3,%ymm4,%ymm3 + valignq $1,%ymm4,%ymm5,%ymm4 + valignq $1,%ymm5,%ymm6,%ymm5 + valignq $1,%ymm6,%ymm7,%ymm6 + valignq $1,%ymm7,%ymm8,%ymm7 + valignq $1,%ymm8,%ymm9,%ymm8 + valignq $1,%ymm9,%ymm10,%ymm9 + valignq $1,%ymm10,%ymm11,%ymm10 + valignq $1,%ymm11,%ymm12,%ymm11 + valignq $1,%ymm12,%ymm0,%ymm12 + + vmovq %xmm3,%r13 + addq %r13,%r9 + + vpmadd52huq 0(%rsi),%ymm1,%ymm3 + vpmadd52huq 32(%rsi),%ymm1,%ymm4 + vpmadd52huq 64(%rsi),%ymm1,%ymm5 + vpmadd52huq 96(%rsi),%ymm1,%ymm6 + vpmadd52huq 128(%rsi),%ymm1,%ymm7 + vpmadd52huq 160(%rsi),%ymm1,%ymm8 + vpmadd52huq 192(%rsi),%ymm1,%ymm9 + vpmadd52huq 224(%rsi),%ymm1,%ymm10 + vpmadd52huq 256(%rsi),%ymm1,%ymm11 + vpmadd52huq 288(%rsi),%ymm1,%ymm12 + + vpmadd52huq 0(%rcx),%ymm2,%ymm3 + vpmadd52huq 32(%rcx),%ymm2,%ymm4 + vpmadd52huq 64(%rcx),%ymm2,%ymm5 + vpmadd52huq 96(%rcx),%ymm2,%ymm6 + vpmadd52huq 128(%rcx),%ymm2,%ymm7 + vpmadd52huq 160(%rcx),%ymm2,%ymm8 + vpmadd52huq 192(%rcx),%ymm2,%ymm9 + vpmadd52huq 224(%rcx),%ymm2,%ymm10 + vpmadd52huq 256(%rcx),%ymm2,%ymm11 + vpmadd52huq 288(%rcx),%ymm2,%ymm12 + movq 16(%r11),%r13 + + vpbroadcastq %r13,%ymm1 + movq 0(%rsi),%rdx + mulxq %r13,%r13,%r12 + addq %r13,%r9 + movq %r12,%r10 + adcq $0,%r10 + + movq %r8,%r13 + imulq %r9,%r13 + andq %rax,%r13 + + vpbroadcastq %r13,%ymm2 + movq 0(%rcx),%rdx + mulxq %r13,%r13,%r12 + addq %r13,%r9 + adcq %r12,%r10 + + shrq $52,%r9 + salq $12,%r10 + orq %r10,%r9 + + vpmadd52luq 0(%rsi),%ymm1,%ymm3 + vpmadd52luq 32(%rsi),%ymm1,%ymm4 + vpmadd52luq 64(%rsi),%ymm1,%ymm5 + vpmadd52luq 96(%rsi),%ymm1,%ymm6 + vpmadd52luq 128(%rsi),%ymm1,%ymm7 + vpmadd52luq 160(%rsi),%ymm1,%ymm8 + vpmadd52luq 192(%rsi),%ymm1,%ymm9 + vpmadd52luq 224(%rsi),%ymm1,%ymm10 + vpmadd52luq 256(%rsi),%ymm1,%ymm11 + vpmadd52luq 288(%rsi),%ymm1,%ymm12 + + vpmadd52luq 0(%rcx),%ymm2,%ymm3 + vpmadd52luq 32(%rcx),%ymm2,%ymm4 + vpmadd52luq 64(%rcx),%ymm2,%ymm5 + vpmadd52luq 96(%rcx),%ymm2,%ymm6 + vpmadd52luq 128(%rcx),%ymm2,%ymm7 + vpmadd52luq 160(%rcx),%ymm2,%ymm8 + vpmadd52luq 192(%rcx),%ymm2,%ymm9 + vpmadd52luq 224(%rcx),%ymm2,%ymm10 + vpmadd52luq 256(%rcx),%ymm2,%ymm11 + vpmadd52luq 288(%rcx),%ymm2,%ymm12 + + + valignq $1,%ymm3,%ymm4,%ymm3 + valignq $1,%ymm4,%ymm5,%ymm4 + valignq $1,%ymm5,%ymm6,%ymm5 + valignq $1,%ymm6,%ymm7,%ymm6 + valignq $1,%ymm7,%ymm8,%ymm7 + valignq $1,%ymm8,%ymm9,%ymm8 + valignq $1,%ymm9,%ymm10,%ymm9 + valignq $1,%ymm10,%ymm11,%ymm10 + valignq $1,%ymm11,%ymm12,%ymm11 + valignq $1,%ymm12,%ymm0,%ymm12 + + vmovq %xmm3,%r13 + addq %r13,%r9 + + vpmadd52huq 0(%rsi),%ymm1,%ymm3 + vpmadd52huq 32(%rsi),%ymm1,%ymm4 + vpmadd52huq 64(%rsi),%ymm1,%ymm5 + vpmadd52huq 96(%rsi),%ymm1,%ymm6 + vpmadd52huq 128(%rsi),%ymm1,%ymm7 + vpmadd52huq 160(%rsi),%ymm1,%ymm8 + vpmadd52huq 192(%rsi),%ymm1,%ymm9 + vpmadd52huq 224(%rsi),%ymm1,%ymm10 + vpmadd52huq 256(%rsi),%ymm1,%ymm11 + vpmadd52huq 288(%rsi),%ymm1,%ymm12 + + vpmadd52huq 0(%rcx),%ymm2,%ymm3 + vpmadd52huq 32(%rcx),%ymm2,%ymm4 + vpmadd52huq 64(%rcx),%ymm2,%ymm5 + vpmadd52huq 96(%rcx),%ymm2,%ymm6 + vpmadd52huq 128(%rcx),%ymm2,%ymm7 + vpmadd52huq 160(%rcx),%ymm2,%ymm8 + vpmadd52huq 192(%rcx),%ymm2,%ymm9 + vpmadd52huq 224(%rcx),%ymm2,%ymm10 + vpmadd52huq 256(%rcx),%ymm2,%ymm11 + vpmadd52huq 288(%rcx),%ymm2,%ymm12 + movq 24(%r11),%r13 + + vpbroadcastq %r13,%ymm1 + movq 0(%rsi),%rdx + mulxq %r13,%r13,%r12 + addq %r13,%r9 + movq %r12,%r10 + adcq $0,%r10 + + movq %r8,%r13 + imulq %r9,%r13 + andq %rax,%r13 + + vpbroadcastq %r13,%ymm2 + movq 0(%rcx),%rdx + mulxq %r13,%r13,%r12 + addq %r13,%r9 + adcq %r12,%r10 + + shrq $52,%r9 + salq $12,%r10 + orq %r10,%r9 + + vpmadd52luq 0(%rsi),%ymm1,%ymm3 + vpmadd52luq 32(%rsi),%ymm1,%ymm4 + vpmadd52luq 64(%rsi),%ymm1,%ymm5 + vpmadd52luq 96(%rsi),%ymm1,%ymm6 + vpmadd52luq 128(%rsi),%ymm1,%ymm7 + vpmadd52luq 160(%rsi),%ymm1,%ymm8 + vpmadd52luq 192(%rsi),%ymm1,%ymm9 + vpmadd52luq 224(%rsi),%ymm1,%ymm10 + vpmadd52luq 256(%rsi),%ymm1,%ymm11 + vpmadd52luq 288(%rsi),%ymm1,%ymm12 + + vpmadd52luq 0(%rcx),%ymm2,%ymm3 + vpmadd52luq 32(%rcx),%ymm2,%ymm4 + vpmadd52luq 64(%rcx),%ymm2,%ymm5 + vpmadd52luq 96(%rcx),%ymm2,%ymm6 + vpmadd52luq 128(%rcx),%ymm2,%ymm7 + vpmadd52luq 160(%rcx),%ymm2,%ymm8 + vpmadd52luq 192(%rcx),%ymm2,%ymm9 + vpmadd52luq 224(%rcx),%ymm2,%ymm10 + vpmadd52luq 256(%rcx),%ymm2,%ymm11 + vpmadd52luq 288(%rcx),%ymm2,%ymm12 + + + valignq $1,%ymm3,%ymm4,%ymm3 + valignq $1,%ymm4,%ymm5,%ymm4 + valignq $1,%ymm5,%ymm6,%ymm5 + valignq $1,%ymm6,%ymm7,%ymm6 + valignq $1,%ymm7,%ymm8,%ymm7 + valignq $1,%ymm8,%ymm9,%ymm8 + valignq $1,%ymm9,%ymm10,%ymm9 + valignq $1,%ymm10,%ymm11,%ymm10 + valignq $1,%ymm11,%ymm12,%ymm11 + valignq $1,%ymm12,%ymm0,%ymm12 + + vmovq %xmm3,%r13 + addq %r13,%r9 + + vpmadd52huq 0(%rsi),%ymm1,%ymm3 + vpmadd52huq 32(%rsi),%ymm1,%ymm4 + vpmadd52huq 64(%rsi),%ymm1,%ymm5 + vpmadd52huq 96(%rsi),%ymm1,%ymm6 + vpmadd52huq 128(%rsi),%ymm1,%ymm7 + vpmadd52huq 160(%rsi),%ymm1,%ymm8 + vpmadd52huq 192(%rsi),%ymm1,%ymm9 + vpmadd52huq 224(%rsi),%ymm1,%ymm10 + vpmadd52huq 256(%rsi),%ymm1,%ymm11 + vpmadd52huq 288(%rsi),%ymm1,%ymm12 + + vpmadd52huq 0(%rcx),%ymm2,%ymm3 + vpmadd52huq 32(%rcx),%ymm2,%ymm4 + vpmadd52huq 64(%rcx),%ymm2,%ymm5 + vpmadd52huq 96(%rcx),%ymm2,%ymm6 + vpmadd52huq 128(%rcx),%ymm2,%ymm7 + vpmadd52huq 160(%rcx),%ymm2,%ymm8 + vpmadd52huq 192(%rcx),%ymm2,%ymm9 + vpmadd52huq 224(%rcx),%ymm2,%ymm10 + vpmadd52huq 256(%rcx),%ymm2,%ymm11 + vpmadd52huq 288(%rcx),%ymm2,%ymm12 + leaq 32(%r11),%r11 + decl %ebx + jne L$loop10 + + vpbroadcastq %r9,%ymm0 + vpblendd $3,%ymm0,%ymm3,%ymm3 + + + + vpsrlq $52,%ymm3,%ymm0 + vpsrlq $52,%ymm4,%ymm1 + vpsrlq $52,%ymm5,%ymm2 + vpsrlq $52,%ymm6,%ymm23 + vpsrlq $52,%ymm7,%ymm24 + vpsrlq $52,%ymm8,%ymm25 + vpsrlq $52,%ymm9,%ymm26 + vpsrlq $52,%ymm10,%ymm27 + vpsrlq $52,%ymm11,%ymm28 + vpsrlq $52,%ymm12,%ymm29 + + + valignq $3,%ymm28,%ymm29,%ymm29 + valignq $3,%ymm27,%ymm28,%ymm28 + valignq $3,%ymm26,%ymm27,%ymm27 + valignq $3,%ymm25,%ymm26,%ymm26 + valignq $3,%ymm24,%ymm25,%ymm25 + valignq $3,%ymm23,%ymm24,%ymm24 + valignq $3,%ymm2,%ymm23,%ymm23 + valignq $3,%ymm1,%ymm2,%ymm2 + valignq $3,%ymm0,%ymm1,%ymm1 + valignq $3,L$zeros(%rip),%ymm0,%ymm0 + + + vpandq L$mask52x4(%rip),%ymm3,%ymm3 + vpandq L$mask52x4(%rip),%ymm4,%ymm4 + vpandq L$mask52x4(%rip),%ymm5,%ymm5 + vpandq L$mask52x4(%rip),%ymm6,%ymm6 + vpandq L$mask52x4(%rip),%ymm7,%ymm7 + vpandq L$mask52x4(%rip),%ymm8,%ymm8 + vpandq L$mask52x4(%rip),%ymm9,%ymm9 + vpandq L$mask52x4(%rip),%ymm10,%ymm10 + vpandq L$mask52x4(%rip),%ymm11,%ymm11 + vpandq L$mask52x4(%rip),%ymm12,%ymm12 + + + vpaddq %ymm0,%ymm3,%ymm3 + vpaddq %ymm1,%ymm4,%ymm4 + vpaddq %ymm2,%ymm5,%ymm5 + vpaddq %ymm23,%ymm6,%ymm6 + vpaddq %ymm24,%ymm7,%ymm7 + vpaddq %ymm25,%ymm8,%ymm8 + vpaddq %ymm26,%ymm9,%ymm9 + vpaddq %ymm27,%ymm10,%ymm10 + vpaddq %ymm28,%ymm11,%ymm11 + vpaddq %ymm29,%ymm12,%ymm12 + + + + vpcmpuq $6,L$mask52x4(%rip),%ymm3,%k1 + vpcmpuq $6,L$mask52x4(%rip),%ymm4,%k2 + kmovb %k1,%r14d + kmovb %k2,%r13d + shlb $4,%r13b + orb %r13b,%r14b + + vpcmpuq $6,L$mask52x4(%rip),%ymm5,%k1 + vpcmpuq $6,L$mask52x4(%rip),%ymm6,%k2 + kmovb %k1,%r13d + kmovb %k2,%r12d + shlb $4,%r12b + orb %r12b,%r13b + + vpcmpuq $6,L$mask52x4(%rip),%ymm7,%k1 + vpcmpuq $6,L$mask52x4(%rip),%ymm8,%k2 + kmovb %k1,%r12d + kmovb %k2,%r11d + shlb $4,%r11b + orb %r11b,%r12b + + vpcmpuq $6,L$mask52x4(%rip),%ymm9,%k1 + vpcmpuq $6,L$mask52x4(%rip),%ymm10,%k2 + kmovb %k1,%r11d + kmovb %k2,%r10d + shlb $4,%r10b + orb %r10b,%r11b + + vpcmpuq $6,L$mask52x4(%rip),%ymm11,%k1 + vpcmpuq $6,L$mask52x4(%rip),%ymm12,%k2 + kmovb %k1,%r10d + kmovb %k2,%r9d + shlb $4,%r9b + orb %r9b,%r10b + + addb %r14b,%r14b + adcb %r13b,%r13b + adcb %r12b,%r12b + adcb %r11b,%r11b + adcb %r10b,%r10b + + + vpcmpuq $0,L$mask52x4(%rip),%ymm3,%k1 + vpcmpuq $0,L$mask52x4(%rip),%ymm4,%k2 + kmovb %k1,%r9d + kmovb %k2,%r8d + shlb $4,%r8b + orb %r8b,%r9b + + vpcmpuq $0,L$mask52x4(%rip),%ymm5,%k1 + vpcmpuq $0,L$mask52x4(%rip),%ymm6,%k2 + kmovb %k1,%r8d + kmovb %k2,%edx + shlb $4,%dl + orb %dl,%r8b + + vpcmpuq $0,L$mask52x4(%rip),%ymm7,%k1 + vpcmpuq $0,L$mask52x4(%rip),%ymm8,%k2 + kmovb %k1,%edx + kmovb %k2,%ecx + shlb $4,%cl + orb %cl,%dl + + vpcmpuq $0,L$mask52x4(%rip),%ymm9,%k1 + vpcmpuq $0,L$mask52x4(%rip),%ymm10,%k2 + kmovb %k1,%ecx + kmovb %k2,%ebx + shlb $4,%bl + orb %bl,%cl + + vpcmpuq $0,L$mask52x4(%rip),%ymm11,%k1 + vpcmpuq $0,L$mask52x4(%rip),%ymm12,%k2 + kmovb %k1,%ebx + kmovb %k2,%eax + shlb $4,%al + orb %al,%bl + + addb %r9b,%r14b + adcb %r8b,%r13b + adcb %dl,%r12b + adcb %cl,%r11b + adcb %bl,%r10b + + xorb %r9b,%r14b + xorb %r8b,%r13b + xorb %dl,%r12b + xorb %cl,%r11b + xorb %bl,%r10b + + kmovb %r14d,%k1 + shrb $4,%r14b + kmovb %r14d,%k2 + kmovb %r13d,%k3 + shrb $4,%r13b + kmovb %r13d,%k4 + kmovb %r12d,%k5 + shrb $4,%r12b + kmovb %r12d,%k6 + kmovb %r11d,%k7 + + vpsubq L$mask52x4(%rip),%ymm3,%ymm3{%k1} + vpsubq L$mask52x4(%rip),%ymm4,%ymm4{%k2} + vpsubq L$mask52x4(%rip),%ymm5,%ymm5{%k3} + vpsubq L$mask52x4(%rip),%ymm6,%ymm6{%k4} + vpsubq L$mask52x4(%rip),%ymm7,%ymm7{%k5} + vpsubq L$mask52x4(%rip),%ymm8,%ymm8{%k6} + vpsubq L$mask52x4(%rip),%ymm9,%ymm9{%k7} + + vpandq L$mask52x4(%rip),%ymm3,%ymm3 + vpandq L$mask52x4(%rip),%ymm4,%ymm4 + vpandq L$mask52x4(%rip),%ymm5,%ymm5 + vpandq L$mask52x4(%rip),%ymm6,%ymm6 + vpandq L$mask52x4(%rip),%ymm7,%ymm7 + vpandq L$mask52x4(%rip),%ymm8,%ymm8 + vpandq L$mask52x4(%rip),%ymm9,%ymm9 + + shrb $4,%r11b + kmovb %r11d,%k1 + kmovb %r10d,%k2 + shrb $4,%r10b + kmovb %r10d,%k3 + + vpsubq L$mask52x4(%rip),%ymm10,%ymm10{%k1} + vpsubq L$mask52x4(%rip),%ymm11,%ymm11{%k2} + vpsubq L$mask52x4(%rip),%ymm12,%ymm12{%k3} + + vpandq L$mask52x4(%rip),%ymm10,%ymm10 + vpandq L$mask52x4(%rip),%ymm11,%ymm11 + vpandq L$mask52x4(%rip),%ymm12,%ymm12 + + vmovdqu64 %ymm3,0(%rdi) + vmovdqu64 %ymm4,32(%rdi) + vmovdqu64 %ymm5,64(%rdi) + vmovdqu64 %ymm6,96(%rdi) + vmovdqu64 %ymm7,128(%rdi) + vmovdqu64 %ymm8,160(%rdi) + vmovdqu64 %ymm9,192(%rdi) + vmovdqu64 %ymm10,224(%rdi) + vmovdqu64 %ymm11,256(%rdi) + vmovdqu64 %ymm12,288(%rdi) + + vzeroupper + leaq (%rsp),%rax + + movq 0(%rax),%r15 + + movq 8(%rax),%r14 + + movq 16(%rax),%r13 + + movq 24(%rax),%r12 + + movq 32(%rax),%rbp + + movq 40(%rax),%rbx + + leaq 48(%rax),%rsp + +L$ossl_rsaz_amm52x40_x1_ifma256_epilogue: + + .byte 0xf3,0xc3 + + +.section __DATA,__const +.p2align 5 +L$mask52x4: +.quad 0xfffffffffffff +.quad 0xfffffffffffff +.quad 0xfffffffffffff +.quad 0xfffffffffffff +.text + +.globl _ossl_rsaz_amm52x40_x2_ifma256 + +.p2align 5 +_ossl_rsaz_amm52x40_x2_ifma256: + +.byte 243,15,30,250 + pushq %rbx + + pushq %rbp + + pushq %r12 + + pushq %r13 + + pushq %r14 + + pushq %r15 + + + vpxord %ymm0,%ymm0,%ymm0 + vmovdqa64 %ymm0,%ymm3 + vmovdqa64 %ymm0,%ymm4 + vmovdqa64 %ymm0,%ymm5 + vmovdqa64 %ymm0,%ymm6 + vmovdqa64 %ymm0,%ymm7 + vmovdqa64 %ymm0,%ymm8 + vmovdqa64 %ymm0,%ymm9 + vmovdqa64 %ymm0,%ymm10 + vmovdqa64 %ymm0,%ymm11 + vmovdqa64 %ymm0,%ymm12 + + vmovdqa64 %ymm0,%ymm13 + vmovdqa64 %ymm0,%ymm14 + vmovdqa64 %ymm0,%ymm15 + vmovdqa64 %ymm0,%ymm16 + vmovdqa64 %ymm0,%ymm17 + vmovdqa64 %ymm0,%ymm18 + vmovdqa64 %ymm0,%ymm19 + vmovdqa64 %ymm0,%ymm20 + vmovdqa64 %ymm0,%ymm21 + vmovdqa64 %ymm0,%ymm22 + + + xorl %r9d,%r9d + xorl %r15d,%r15d + + movq %rdx,%r11 + movq $0xfffffffffffff,%rax + + movl $40,%ebx + +.p2align 5 +L$loop40: + movq 0(%r11),%r13 + + vpbroadcastq %r13,%ymm1 + movq 0(%rsi),%rdx + mulxq %r13,%r13,%r12 + addq %r13,%r9 + movq %r12,%r10 + adcq $0,%r10 + + movq (%r8),%r13 + imulq %r9,%r13 + andq %rax,%r13 + + vpbroadcastq %r13,%ymm2 + movq 0(%rcx),%rdx + mulxq %r13,%r13,%r12 + addq %r13,%r9 + adcq %r12,%r10 + + shrq $52,%r9 + salq $12,%r10 + orq %r10,%r9 + + vpmadd52luq 0(%rsi),%ymm1,%ymm3 + vpmadd52luq 32(%rsi),%ymm1,%ymm4 + vpmadd52luq 64(%rsi),%ymm1,%ymm5 + vpmadd52luq 96(%rsi),%ymm1,%ymm6 + vpmadd52luq 128(%rsi),%ymm1,%ymm7 + vpmadd52luq 160(%rsi),%ymm1,%ymm8 + vpmadd52luq 192(%rsi),%ymm1,%ymm9 + vpmadd52luq 224(%rsi),%ymm1,%ymm10 + vpmadd52luq 256(%rsi),%ymm1,%ymm11 + vpmadd52luq 288(%rsi),%ymm1,%ymm12 + + vpmadd52luq 0(%rcx),%ymm2,%ymm3 + vpmadd52luq 32(%rcx),%ymm2,%ymm4 + vpmadd52luq 64(%rcx),%ymm2,%ymm5 + vpmadd52luq 96(%rcx),%ymm2,%ymm6 + vpmadd52luq 128(%rcx),%ymm2,%ymm7 + vpmadd52luq 160(%rcx),%ymm2,%ymm8 + vpmadd52luq 192(%rcx),%ymm2,%ymm9 + vpmadd52luq 224(%rcx),%ymm2,%ymm10 + vpmadd52luq 256(%rcx),%ymm2,%ymm11 + vpmadd52luq 288(%rcx),%ymm2,%ymm12 + + + valignq $1,%ymm3,%ymm4,%ymm3 + valignq $1,%ymm4,%ymm5,%ymm4 + valignq $1,%ymm5,%ymm6,%ymm5 + valignq $1,%ymm6,%ymm7,%ymm6 + valignq $1,%ymm7,%ymm8,%ymm7 + valignq $1,%ymm8,%ymm9,%ymm8 + valignq $1,%ymm9,%ymm10,%ymm9 + valignq $1,%ymm10,%ymm11,%ymm10 + valignq $1,%ymm11,%ymm12,%ymm11 + valignq $1,%ymm12,%ymm0,%ymm12 + + vmovq %xmm3,%r13 + addq %r13,%r9 + + vpmadd52huq 0(%rsi),%ymm1,%ymm3 + vpmadd52huq 32(%rsi),%ymm1,%ymm4 + vpmadd52huq 64(%rsi),%ymm1,%ymm5 + vpmadd52huq 96(%rsi),%ymm1,%ymm6 + vpmadd52huq 128(%rsi),%ymm1,%ymm7 + vpmadd52huq 160(%rsi),%ymm1,%ymm8 + vpmadd52huq 192(%rsi),%ymm1,%ymm9 + vpmadd52huq 224(%rsi),%ymm1,%ymm10 + vpmadd52huq 256(%rsi),%ymm1,%ymm11 + vpmadd52huq 288(%rsi),%ymm1,%ymm12 + + vpmadd52huq 0(%rcx),%ymm2,%ymm3 + vpmadd52huq 32(%rcx),%ymm2,%ymm4 + vpmadd52huq 64(%rcx),%ymm2,%ymm5 + vpmadd52huq 96(%rcx),%ymm2,%ymm6 + vpmadd52huq 128(%rcx),%ymm2,%ymm7 + vpmadd52huq 160(%rcx),%ymm2,%ymm8 + vpmadd52huq 192(%rcx),%ymm2,%ymm9 + vpmadd52huq 224(%rcx),%ymm2,%ymm10 + vpmadd52huq 256(%rcx),%ymm2,%ymm11 + vpmadd52huq 288(%rcx),%ymm2,%ymm12 + movq 320(%r11),%r13 + + vpbroadcastq %r13,%ymm1 + movq 320(%rsi),%rdx + mulxq %r13,%r13,%r12 + addq %r13,%r15 + movq %r12,%r10 + adcq $0,%r10 + + movq 8(%r8),%r13 + imulq %r15,%r13 + andq %rax,%r13 + + vpbroadcastq %r13,%ymm2 + movq 320(%rcx),%rdx + mulxq %r13,%r13,%r12 + addq %r13,%r15 + adcq %r12,%r10 + + shrq $52,%r15 + salq $12,%r10 + orq %r10,%r15 + + vpmadd52luq 320(%rsi),%ymm1,%ymm13 + vpmadd52luq 352(%rsi),%ymm1,%ymm14 + vpmadd52luq 384(%rsi),%ymm1,%ymm15 + vpmadd52luq 416(%rsi),%ymm1,%ymm16 + vpmadd52luq 448(%rsi),%ymm1,%ymm17 + vpmadd52luq 480(%rsi),%ymm1,%ymm18 + vpmadd52luq 512(%rsi),%ymm1,%ymm19 + vpmadd52luq 544(%rsi),%ymm1,%ymm20 + vpmadd52luq 576(%rsi),%ymm1,%ymm21 + vpmadd52luq 608(%rsi),%ymm1,%ymm22 + + vpmadd52luq 320(%rcx),%ymm2,%ymm13 + vpmadd52luq 352(%rcx),%ymm2,%ymm14 + vpmadd52luq 384(%rcx),%ymm2,%ymm15 + vpmadd52luq 416(%rcx),%ymm2,%ymm16 + vpmadd52luq 448(%rcx),%ymm2,%ymm17 + vpmadd52luq 480(%rcx),%ymm2,%ymm18 + vpmadd52luq 512(%rcx),%ymm2,%ymm19 + vpmadd52luq 544(%rcx),%ymm2,%ymm20 + vpmadd52luq 576(%rcx),%ymm2,%ymm21 + vpmadd52luq 608(%rcx),%ymm2,%ymm22 + + + valignq $1,%ymm13,%ymm14,%ymm13 + valignq $1,%ymm14,%ymm15,%ymm14 + valignq $1,%ymm15,%ymm16,%ymm15 + valignq $1,%ymm16,%ymm17,%ymm16 + valignq $1,%ymm17,%ymm18,%ymm17 + valignq $1,%ymm18,%ymm19,%ymm18 + valignq $1,%ymm19,%ymm20,%ymm19 + valignq $1,%ymm20,%ymm21,%ymm20 + valignq $1,%ymm21,%ymm22,%ymm21 + valignq $1,%ymm22,%ymm0,%ymm22 + + vmovq %xmm13,%r13 + addq %r13,%r15 + + vpmadd52huq 320(%rsi),%ymm1,%ymm13 + vpmadd52huq 352(%rsi),%ymm1,%ymm14 + vpmadd52huq 384(%rsi),%ymm1,%ymm15 + vpmadd52huq 416(%rsi),%ymm1,%ymm16 + vpmadd52huq 448(%rsi),%ymm1,%ymm17 + vpmadd52huq 480(%rsi),%ymm1,%ymm18 + vpmadd52huq 512(%rsi),%ymm1,%ymm19 + vpmadd52huq 544(%rsi),%ymm1,%ymm20 + vpmadd52huq 576(%rsi),%ymm1,%ymm21 + vpmadd52huq 608(%rsi),%ymm1,%ymm22 + + vpmadd52huq 320(%rcx),%ymm2,%ymm13 + vpmadd52huq 352(%rcx),%ymm2,%ymm14 + vpmadd52huq 384(%rcx),%ymm2,%ymm15 + vpmadd52huq 416(%rcx),%ymm2,%ymm16 + vpmadd52huq 448(%rcx),%ymm2,%ymm17 + vpmadd52huq 480(%rcx),%ymm2,%ymm18 + vpmadd52huq 512(%rcx),%ymm2,%ymm19 + vpmadd52huq 544(%rcx),%ymm2,%ymm20 + vpmadd52huq 576(%rcx),%ymm2,%ymm21 + vpmadd52huq 608(%rcx),%ymm2,%ymm22 + leaq 8(%r11),%r11 + decl %ebx + jne L$loop40 + + vpbroadcastq %r9,%ymm0 + vpblendd $3,%ymm0,%ymm3,%ymm3 + + + + vpsrlq $52,%ymm3,%ymm0 + vpsrlq $52,%ymm4,%ymm1 + vpsrlq $52,%ymm5,%ymm2 + vpsrlq $52,%ymm6,%ymm23 + vpsrlq $52,%ymm7,%ymm24 + vpsrlq $52,%ymm8,%ymm25 + vpsrlq $52,%ymm9,%ymm26 + vpsrlq $52,%ymm10,%ymm27 + vpsrlq $52,%ymm11,%ymm28 + vpsrlq $52,%ymm12,%ymm29 + + + valignq $3,%ymm28,%ymm29,%ymm29 + valignq $3,%ymm27,%ymm28,%ymm28 + valignq $3,%ymm26,%ymm27,%ymm27 + valignq $3,%ymm25,%ymm26,%ymm26 + valignq $3,%ymm24,%ymm25,%ymm25 + valignq $3,%ymm23,%ymm24,%ymm24 + valignq $3,%ymm2,%ymm23,%ymm23 + valignq $3,%ymm1,%ymm2,%ymm2 + valignq $3,%ymm0,%ymm1,%ymm1 + valignq $3,L$zeros(%rip),%ymm0,%ymm0 + + + vpandq L$mask52x4(%rip),%ymm3,%ymm3 + vpandq L$mask52x4(%rip),%ymm4,%ymm4 + vpandq L$mask52x4(%rip),%ymm5,%ymm5 + vpandq L$mask52x4(%rip),%ymm6,%ymm6 + vpandq L$mask52x4(%rip),%ymm7,%ymm7 + vpandq L$mask52x4(%rip),%ymm8,%ymm8 + vpandq L$mask52x4(%rip),%ymm9,%ymm9 + vpandq L$mask52x4(%rip),%ymm10,%ymm10 + vpandq L$mask52x4(%rip),%ymm11,%ymm11 + vpandq L$mask52x4(%rip),%ymm12,%ymm12 + + + vpaddq %ymm0,%ymm3,%ymm3 + vpaddq %ymm1,%ymm4,%ymm4 + vpaddq %ymm2,%ymm5,%ymm5 + vpaddq %ymm23,%ymm6,%ymm6 + vpaddq %ymm24,%ymm7,%ymm7 + vpaddq %ymm25,%ymm8,%ymm8 + vpaddq %ymm26,%ymm9,%ymm9 + vpaddq %ymm27,%ymm10,%ymm10 + vpaddq %ymm28,%ymm11,%ymm11 + vpaddq %ymm29,%ymm12,%ymm12 + + + + vpcmpuq $6,L$mask52x4(%rip),%ymm3,%k1 + vpcmpuq $6,L$mask52x4(%rip),%ymm4,%k2 + kmovb %k1,%r14d + kmovb %k2,%r13d + shlb $4,%r13b + orb %r13b,%r14b + + vpcmpuq $6,L$mask52x4(%rip),%ymm5,%k1 + vpcmpuq $6,L$mask52x4(%rip),%ymm6,%k2 + kmovb %k1,%r13d + kmovb %k2,%r12d + shlb $4,%r12b + orb %r12b,%r13b + + vpcmpuq $6,L$mask52x4(%rip),%ymm7,%k1 + vpcmpuq $6,L$mask52x4(%rip),%ymm8,%k2 + kmovb %k1,%r12d + kmovb %k2,%r11d + shlb $4,%r11b + orb %r11b,%r12b + + vpcmpuq $6,L$mask52x4(%rip),%ymm9,%k1 + vpcmpuq $6,L$mask52x4(%rip),%ymm10,%k2 + kmovb %k1,%r11d + kmovb %k2,%r10d + shlb $4,%r10b + orb %r10b,%r11b + + vpcmpuq $6,L$mask52x4(%rip),%ymm11,%k1 + vpcmpuq $6,L$mask52x4(%rip),%ymm12,%k2 + kmovb %k1,%r10d + kmovb %k2,%r9d + shlb $4,%r9b + orb %r9b,%r10b + + addb %r14b,%r14b + adcb %r13b,%r13b + adcb %r12b,%r12b + adcb %r11b,%r11b + adcb %r10b,%r10b + + + vpcmpuq $0,L$mask52x4(%rip),%ymm3,%k1 + vpcmpuq $0,L$mask52x4(%rip),%ymm4,%k2 + kmovb %k1,%r9d + kmovb %k2,%r8d + shlb $4,%r8b + orb %r8b,%r9b + + vpcmpuq $0,L$mask52x4(%rip),%ymm5,%k1 + vpcmpuq $0,L$mask52x4(%rip),%ymm6,%k2 + kmovb %k1,%r8d + kmovb %k2,%edx + shlb $4,%dl + orb %dl,%r8b + + vpcmpuq $0,L$mask52x4(%rip),%ymm7,%k1 + vpcmpuq $0,L$mask52x4(%rip),%ymm8,%k2 + kmovb %k1,%edx + kmovb %k2,%ecx + shlb $4,%cl + orb %cl,%dl + + vpcmpuq $0,L$mask52x4(%rip),%ymm9,%k1 + vpcmpuq $0,L$mask52x4(%rip),%ymm10,%k2 + kmovb %k1,%ecx + kmovb %k2,%ebx + shlb $4,%bl + orb %bl,%cl + + vpcmpuq $0,L$mask52x4(%rip),%ymm11,%k1 + vpcmpuq $0,L$mask52x4(%rip),%ymm12,%k2 + kmovb %k1,%ebx + kmovb %k2,%eax + shlb $4,%al + orb %al,%bl + + addb %r9b,%r14b + adcb %r8b,%r13b + adcb %dl,%r12b + adcb %cl,%r11b + adcb %bl,%r10b + + xorb %r9b,%r14b + xorb %r8b,%r13b + xorb %dl,%r12b + xorb %cl,%r11b + xorb %bl,%r10b + + kmovb %r14d,%k1 + shrb $4,%r14b + kmovb %r14d,%k2 + kmovb %r13d,%k3 + shrb $4,%r13b + kmovb %r13d,%k4 + kmovb %r12d,%k5 + shrb $4,%r12b + kmovb %r12d,%k6 + kmovb %r11d,%k7 + + vpsubq L$mask52x4(%rip),%ymm3,%ymm3{%k1} + vpsubq L$mask52x4(%rip),%ymm4,%ymm4{%k2} + vpsubq L$mask52x4(%rip),%ymm5,%ymm5{%k3} + vpsubq L$mask52x4(%rip),%ymm6,%ymm6{%k4} + vpsubq L$mask52x4(%rip),%ymm7,%ymm7{%k5} + vpsubq L$mask52x4(%rip),%ymm8,%ymm8{%k6} + vpsubq L$mask52x4(%rip),%ymm9,%ymm9{%k7} + + vpandq L$mask52x4(%rip),%ymm3,%ymm3 + vpandq L$mask52x4(%rip),%ymm4,%ymm4 + vpandq L$mask52x4(%rip),%ymm5,%ymm5 + vpandq L$mask52x4(%rip),%ymm6,%ymm6 + vpandq L$mask52x4(%rip),%ymm7,%ymm7 + vpandq L$mask52x4(%rip),%ymm8,%ymm8 + vpandq L$mask52x4(%rip),%ymm9,%ymm9 + + shrb $4,%r11b + kmovb %r11d,%k1 + kmovb %r10d,%k2 + shrb $4,%r10b + kmovb %r10d,%k3 + + vpsubq L$mask52x4(%rip),%ymm10,%ymm10{%k1} + vpsubq L$mask52x4(%rip),%ymm11,%ymm11{%k2} + vpsubq L$mask52x4(%rip),%ymm12,%ymm12{%k3} + + vpandq L$mask52x4(%rip),%ymm10,%ymm10 + vpandq L$mask52x4(%rip),%ymm11,%ymm11 + vpandq L$mask52x4(%rip),%ymm12,%ymm12 + + vpbroadcastq %r15,%ymm0 + vpblendd $3,%ymm0,%ymm13,%ymm13 + + + + vpsrlq $52,%ymm13,%ymm0 + vpsrlq $52,%ymm14,%ymm1 + vpsrlq $52,%ymm15,%ymm2 + vpsrlq $52,%ymm16,%ymm23 + vpsrlq $52,%ymm17,%ymm24 + vpsrlq $52,%ymm18,%ymm25 + vpsrlq $52,%ymm19,%ymm26 + vpsrlq $52,%ymm20,%ymm27 + vpsrlq $52,%ymm21,%ymm28 + vpsrlq $52,%ymm22,%ymm29 + + + valignq $3,%ymm28,%ymm29,%ymm29 + valignq $3,%ymm27,%ymm28,%ymm28 + valignq $3,%ymm26,%ymm27,%ymm27 + valignq $3,%ymm25,%ymm26,%ymm26 + valignq $3,%ymm24,%ymm25,%ymm25 + valignq $3,%ymm23,%ymm24,%ymm24 + valignq $3,%ymm2,%ymm23,%ymm23 + valignq $3,%ymm1,%ymm2,%ymm2 + valignq $3,%ymm0,%ymm1,%ymm1 + valignq $3,L$zeros(%rip),%ymm0,%ymm0 + + + vpandq L$mask52x4(%rip),%ymm13,%ymm13 + vpandq L$mask52x4(%rip),%ymm14,%ymm14 + vpandq L$mask52x4(%rip),%ymm15,%ymm15 + vpandq L$mask52x4(%rip),%ymm16,%ymm16 + vpandq L$mask52x4(%rip),%ymm17,%ymm17 + vpandq L$mask52x4(%rip),%ymm18,%ymm18 + vpandq L$mask52x4(%rip),%ymm19,%ymm19 + vpandq L$mask52x4(%rip),%ymm20,%ymm20 + vpandq L$mask52x4(%rip),%ymm21,%ymm21 + vpandq L$mask52x4(%rip),%ymm22,%ymm22 + + + vpaddq %ymm0,%ymm13,%ymm13 + vpaddq %ymm1,%ymm14,%ymm14 + vpaddq %ymm2,%ymm15,%ymm15 + vpaddq %ymm23,%ymm16,%ymm16 + vpaddq %ymm24,%ymm17,%ymm17 + vpaddq %ymm25,%ymm18,%ymm18 + vpaddq %ymm26,%ymm19,%ymm19 + vpaddq %ymm27,%ymm20,%ymm20 + vpaddq %ymm28,%ymm21,%ymm21 + vpaddq %ymm29,%ymm22,%ymm22 + + + + vpcmpuq $6,L$mask52x4(%rip),%ymm13,%k1 + vpcmpuq $6,L$mask52x4(%rip),%ymm14,%k2 + kmovb %k1,%r14d + kmovb %k2,%r13d + shlb $4,%r13b + orb %r13b,%r14b + + vpcmpuq $6,L$mask52x4(%rip),%ymm15,%k1 + vpcmpuq $6,L$mask52x4(%rip),%ymm16,%k2 + kmovb %k1,%r13d + kmovb %k2,%r12d + shlb $4,%r12b + orb %r12b,%r13b + + vpcmpuq $6,L$mask52x4(%rip),%ymm17,%k1 + vpcmpuq $6,L$mask52x4(%rip),%ymm18,%k2 + kmovb %k1,%r12d + kmovb %k2,%r11d + shlb $4,%r11b + orb %r11b,%r12b + + vpcmpuq $6,L$mask52x4(%rip),%ymm19,%k1 + vpcmpuq $6,L$mask52x4(%rip),%ymm20,%k2 + kmovb %k1,%r11d + kmovb %k2,%r10d + shlb $4,%r10b + orb %r10b,%r11b + + vpcmpuq $6,L$mask52x4(%rip),%ymm21,%k1 + vpcmpuq $6,L$mask52x4(%rip),%ymm22,%k2 + kmovb %k1,%r10d + kmovb %k2,%r9d + shlb $4,%r9b + orb %r9b,%r10b + + addb %r14b,%r14b + adcb %r13b,%r13b + adcb %r12b,%r12b + adcb %r11b,%r11b + adcb %r10b,%r10b + + + vpcmpuq $0,L$mask52x4(%rip),%ymm13,%k1 + vpcmpuq $0,L$mask52x4(%rip),%ymm14,%k2 + kmovb %k1,%r9d + kmovb %k2,%r8d + shlb $4,%r8b + orb %r8b,%r9b + + vpcmpuq $0,L$mask52x4(%rip),%ymm15,%k1 + vpcmpuq $0,L$mask52x4(%rip),%ymm16,%k2 + kmovb %k1,%r8d + kmovb %k2,%edx + shlb $4,%dl + orb %dl,%r8b + + vpcmpuq $0,L$mask52x4(%rip),%ymm17,%k1 + vpcmpuq $0,L$mask52x4(%rip),%ymm18,%k2 + kmovb %k1,%edx + kmovb %k2,%ecx + shlb $4,%cl + orb %cl,%dl + + vpcmpuq $0,L$mask52x4(%rip),%ymm19,%k1 + vpcmpuq $0,L$mask52x4(%rip),%ymm20,%k2 + kmovb %k1,%ecx + kmovb %k2,%ebx + shlb $4,%bl + orb %bl,%cl + + vpcmpuq $0,L$mask52x4(%rip),%ymm21,%k1 + vpcmpuq $0,L$mask52x4(%rip),%ymm22,%k2 + kmovb %k1,%ebx + kmovb %k2,%eax + shlb $4,%al + orb %al,%bl + + addb %r9b,%r14b + adcb %r8b,%r13b + adcb %dl,%r12b + adcb %cl,%r11b + adcb %bl,%r10b + + xorb %r9b,%r14b + xorb %r8b,%r13b + xorb %dl,%r12b + xorb %cl,%r11b + xorb %bl,%r10b + + kmovb %r14d,%k1 + shrb $4,%r14b + kmovb %r14d,%k2 + kmovb %r13d,%k3 + shrb $4,%r13b + kmovb %r13d,%k4 + kmovb %r12d,%k5 + shrb $4,%r12b + kmovb %r12d,%k6 + kmovb %r11d,%k7 + + vpsubq L$mask52x4(%rip),%ymm13,%ymm13{%k1} + vpsubq L$mask52x4(%rip),%ymm14,%ymm14{%k2} + vpsubq L$mask52x4(%rip),%ymm15,%ymm15{%k3} + vpsubq L$mask52x4(%rip),%ymm16,%ymm16{%k4} + vpsubq L$mask52x4(%rip),%ymm17,%ymm17{%k5} + vpsubq L$mask52x4(%rip),%ymm18,%ymm18{%k6} + vpsubq L$mask52x4(%rip),%ymm19,%ymm19{%k7} + + vpandq L$mask52x4(%rip),%ymm13,%ymm13 + vpandq L$mask52x4(%rip),%ymm14,%ymm14 + vpandq L$mask52x4(%rip),%ymm15,%ymm15 + vpandq L$mask52x4(%rip),%ymm16,%ymm16 + vpandq L$mask52x4(%rip),%ymm17,%ymm17 + vpandq L$mask52x4(%rip),%ymm18,%ymm18 + vpandq L$mask52x4(%rip),%ymm19,%ymm19 + + shrb $4,%r11b + kmovb %r11d,%k1 + kmovb %r10d,%k2 + shrb $4,%r10b + kmovb %r10d,%k3 + + vpsubq L$mask52x4(%rip),%ymm20,%ymm20{%k1} + vpsubq L$mask52x4(%rip),%ymm21,%ymm21{%k2} + vpsubq L$mask52x4(%rip),%ymm22,%ymm22{%k3} + + vpandq L$mask52x4(%rip),%ymm20,%ymm20 + vpandq L$mask52x4(%rip),%ymm21,%ymm21 + vpandq L$mask52x4(%rip),%ymm22,%ymm22 + + vmovdqu64 %ymm3,0(%rdi) + vmovdqu64 %ymm4,32(%rdi) + vmovdqu64 %ymm5,64(%rdi) + vmovdqu64 %ymm6,96(%rdi) + vmovdqu64 %ymm7,128(%rdi) + vmovdqu64 %ymm8,160(%rdi) + vmovdqu64 %ymm9,192(%rdi) + vmovdqu64 %ymm10,224(%rdi) + vmovdqu64 %ymm11,256(%rdi) + vmovdqu64 %ymm12,288(%rdi) + + vmovdqu64 %ymm13,320(%rdi) + vmovdqu64 %ymm14,352(%rdi) + vmovdqu64 %ymm15,384(%rdi) + vmovdqu64 %ymm16,416(%rdi) + vmovdqu64 %ymm17,448(%rdi) + vmovdqu64 %ymm18,480(%rdi) + vmovdqu64 %ymm19,512(%rdi) + vmovdqu64 %ymm20,544(%rdi) + vmovdqu64 %ymm21,576(%rdi) + vmovdqu64 %ymm22,608(%rdi) + + vzeroupper + leaq (%rsp),%rax + + movq 0(%rax),%r15 + + movq 8(%rax),%r14 + + movq 16(%rax),%r13 + + movq 24(%rax),%r12 + + movq 32(%rax),%rbp + + movq 40(%rax),%rbx + + leaq 48(%rax),%rsp + +L$ossl_rsaz_amm52x40_x2_ifma256_epilogue: + .byte 0xf3,0xc3 + + +.text + +.p2align 5 +.globl _ossl_extract_multiplier_2x40_win5 + +_ossl_extract_multiplier_2x40_win5: + +.byte 243,15,30,250 + vmovdqa64 L$ones(%rip),%ymm24 + vpbroadcastq %rdx,%ymm22 + vpbroadcastq %rcx,%ymm23 + leaq 20480(%rsi),%rax + + + movq %rsi,%r10 + + + vpxor %xmm0,%xmm0,%xmm0 + vmovdqa64 %ymm0,%ymm1 + vmovdqa64 %ymm0,%ymm2 + vmovdqa64 %ymm0,%ymm3 + vmovdqa64 %ymm0,%ymm4 + vmovdqa64 %ymm0,%ymm5 + vmovdqa64 %ymm0,%ymm16 + vmovdqa64 %ymm0,%ymm17 + vmovdqa64 %ymm0,%ymm18 + vmovdqa64 %ymm0,%ymm19 + vpxorq %ymm21,%ymm21,%ymm21 +.p2align 5 +L$loop_0: + vpcmpq $0,%ymm21,%ymm22,%k1 + vmovdqu64 0(%rsi),%ymm20 + vpblendmq %ymm20,%ymm0,%ymm0{%k1} + vmovdqu64 32(%rsi),%ymm20 + vpblendmq %ymm20,%ymm1,%ymm1{%k1} + vmovdqu64 64(%rsi),%ymm20 + vpblendmq %ymm20,%ymm2,%ymm2{%k1} + vmovdqu64 96(%rsi),%ymm20 + vpblendmq %ymm20,%ymm3,%ymm3{%k1} + vmovdqu64 128(%rsi),%ymm20 + vpblendmq %ymm20,%ymm4,%ymm4{%k1} + vmovdqu64 160(%rsi),%ymm20 + vpblendmq %ymm20,%ymm5,%ymm5{%k1} + vmovdqu64 192(%rsi),%ymm20 + vpblendmq %ymm20,%ymm16,%ymm16{%k1} + vmovdqu64 224(%rsi),%ymm20 + vpblendmq %ymm20,%ymm17,%ymm17{%k1} + vmovdqu64 256(%rsi),%ymm20 + vpblendmq %ymm20,%ymm18,%ymm18{%k1} + vmovdqu64 288(%rsi),%ymm20 + vpblendmq %ymm20,%ymm19,%ymm19{%k1} + vpaddq %ymm24,%ymm21,%ymm21 + addq $640,%rsi + cmpq %rsi,%rax + jne L$loop_0 + vmovdqu64 %ymm0,0(%rdi) + vmovdqu64 %ymm1,32(%rdi) + vmovdqu64 %ymm2,64(%rdi) + vmovdqu64 %ymm3,96(%rdi) + vmovdqu64 %ymm4,128(%rdi) + vmovdqu64 %ymm5,160(%rdi) + vmovdqu64 %ymm16,192(%rdi) + vmovdqu64 %ymm17,224(%rdi) + vmovdqu64 %ymm18,256(%rdi) + vmovdqu64 %ymm19,288(%rdi) + movq %r10,%rsi + vpxorq %ymm21,%ymm21,%ymm21 +.p2align 5 +L$loop_320: + vpcmpq $0,%ymm21,%ymm23,%k1 + vmovdqu64 320(%rsi),%ymm20 + vpblendmq %ymm20,%ymm0,%ymm0{%k1} + vmovdqu64 352(%rsi),%ymm20 + vpblendmq %ymm20,%ymm1,%ymm1{%k1} + vmovdqu64 384(%rsi),%ymm20 + vpblendmq %ymm20,%ymm2,%ymm2{%k1} + vmovdqu64 416(%rsi),%ymm20 + vpblendmq %ymm20,%ymm3,%ymm3{%k1} + vmovdqu64 448(%rsi),%ymm20 + vpblendmq %ymm20,%ymm4,%ymm4{%k1} + vmovdqu64 480(%rsi),%ymm20 + vpblendmq %ymm20,%ymm5,%ymm5{%k1} + vmovdqu64 512(%rsi),%ymm20 + vpblendmq %ymm20,%ymm16,%ymm16{%k1} + vmovdqu64 544(%rsi),%ymm20 + vpblendmq %ymm20,%ymm17,%ymm17{%k1} + vmovdqu64 576(%rsi),%ymm20 + vpblendmq %ymm20,%ymm18,%ymm18{%k1} + vmovdqu64 608(%rsi),%ymm20 + vpblendmq %ymm20,%ymm19,%ymm19{%k1} + vpaddq %ymm24,%ymm21,%ymm21 + addq $640,%rsi + cmpq %rsi,%rax + jne L$loop_320 + vmovdqu64 %ymm0,320(%rdi) + vmovdqu64 %ymm1,352(%rdi) + vmovdqu64 %ymm2,384(%rdi) + vmovdqu64 %ymm3,416(%rdi) + vmovdqu64 %ymm4,448(%rdi) + vmovdqu64 %ymm5,480(%rdi) + vmovdqu64 %ymm16,512(%rdi) + vmovdqu64 %ymm17,544(%rdi) + vmovdqu64 %ymm18,576(%rdi) + vmovdqu64 %ymm19,608(%rdi) + + .byte 0xf3,0xc3 + + +.section __DATA,__const +.p2align 5 +L$ones: +.quad 1,1,1,1 +L$zeros: +.quad 0,0,0,0 diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/bn/rsaz-4k-avxifma.s b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/bn/rsaz-4k-avxifma.s new file mode 100644 index 00000000000000..384589dbd6d5a7 --- /dev/null +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/bn/rsaz-4k-avxifma.s @@ -0,0 +1,12 @@ +.text + +.globl _ossl_rsaz_amm52x40_x1_avxifma256 +.globl _ossl_rsaz_amm52x40_x2_avxifma256 +.globl _ossl_extract_multiplier_2x40_win5_avx + +_ossl_rsaz_amm52x40_x1_avxifma256: +_ossl_rsaz_amm52x40_x2_avxifma256: +_ossl_extract_multiplier_2x40_win5_avx: +.byte 0x0f,0x0b + .byte 0xf3,0xc3 + diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/bn/rsaz-avx2.s b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/bn/rsaz-avx2.s index de597b1e761036..70bdcf2b367bed 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/bn/rsaz-avx2.s +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/bn/rsaz-avx2.s @@ -1730,6 +1730,7 @@ _rsaz_avx2_eligible: .byte 0xf3,0xc3 +.section __DATA,__const .p2align 6 L$and_mask: .quad 0x1fffffff,0x1fffffff,0x1fffffff,0x1fffffff @@ -1741,4 +1742,5 @@ L$inc: .long 0,0,0,0, 1,1,1,1 .long 2,2,2,2, 3,3,3,3 .long 4,4,4,4, 4,4,4,4 +.text .p2align 6 diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/bn/rsaz-avx512.s b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/bn/rsaz-avx512.s deleted file mode 100644 index fbaa2cd62ba76c..00000000000000 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/bn/rsaz-avx512.s +++ /dev/null @@ -1,868 +0,0 @@ - -.globl _ossl_rsaz_avx512ifma_eligible - -.p2align 5 -_ossl_rsaz_avx512ifma_eligible: - movl _OPENSSL_ia32cap_P+8(%rip),%ecx - xorl %eax,%eax - andl $2149777408,%ecx - cmpl $2149777408,%ecx - cmovel %ecx,%eax - .byte 0xf3,0xc3 - -.text - -.globl _ossl_rsaz_amm52x20_x1_256 - -.p2align 5 -_ossl_rsaz_amm52x20_x1_256: - -.byte 243,15,30,250 - pushq %rbx - - pushq %rbp - - pushq %r12 - - pushq %r13 - - pushq %r14 - - pushq %r15 - -L$rsaz_amm52x20_x1_256_body: - - - vpxord %ymm0,%ymm0,%ymm0 - vmovdqa64 %ymm0,%ymm1 - vmovdqa64 %ymm0,%ymm16 - vmovdqa64 %ymm0,%ymm17 - vmovdqa64 %ymm0,%ymm18 - vmovdqa64 %ymm0,%ymm19 - - xorl %r9d,%r9d - - movq %rdx,%r11 - movq $0xfffffffffffff,%rax - - - movl $5,%ebx - -.p2align 5 -L$loop5: - movq 0(%r11),%r13 - - vpbroadcastq %r13,%ymm3 - movq 0(%rsi),%rdx - mulxq %r13,%r13,%r12 - addq %r13,%r9 - movq %r12,%r10 - adcq $0,%r10 - - movq %r8,%r13 - imulq %r9,%r13 - andq %rax,%r13 - - vpbroadcastq %r13,%ymm4 - movq 0(%rcx),%rdx - mulxq %r13,%r13,%r12 - addq %r13,%r9 - adcq %r12,%r10 - - shrq $52,%r9 - salq $12,%r10 - orq %r10,%r9 - - vpmadd52luq 0(%rsi),%ymm3,%ymm1 - vpmadd52luq 32(%rsi),%ymm3,%ymm16 - vpmadd52luq 64(%rsi),%ymm3,%ymm17 - vpmadd52luq 96(%rsi),%ymm3,%ymm18 - vpmadd52luq 128(%rsi),%ymm3,%ymm19 - - vpmadd52luq 0(%rcx),%ymm4,%ymm1 - vpmadd52luq 32(%rcx),%ymm4,%ymm16 - vpmadd52luq 64(%rcx),%ymm4,%ymm17 - vpmadd52luq 96(%rcx),%ymm4,%ymm18 - vpmadd52luq 128(%rcx),%ymm4,%ymm19 - - - valignq $1,%ymm1,%ymm16,%ymm1 - valignq $1,%ymm16,%ymm17,%ymm16 - valignq $1,%ymm17,%ymm18,%ymm17 - valignq $1,%ymm18,%ymm19,%ymm18 - valignq $1,%ymm19,%ymm0,%ymm19 - - vmovq %xmm1,%r13 - addq %r13,%r9 - - vpmadd52huq 0(%rsi),%ymm3,%ymm1 - vpmadd52huq 32(%rsi),%ymm3,%ymm16 - vpmadd52huq 64(%rsi),%ymm3,%ymm17 - vpmadd52huq 96(%rsi),%ymm3,%ymm18 - vpmadd52huq 128(%rsi),%ymm3,%ymm19 - - vpmadd52huq 0(%rcx),%ymm4,%ymm1 - vpmadd52huq 32(%rcx),%ymm4,%ymm16 - vpmadd52huq 64(%rcx),%ymm4,%ymm17 - vpmadd52huq 96(%rcx),%ymm4,%ymm18 - vpmadd52huq 128(%rcx),%ymm4,%ymm19 - movq 8(%r11),%r13 - - vpbroadcastq %r13,%ymm3 - movq 0(%rsi),%rdx - mulxq %r13,%r13,%r12 - addq %r13,%r9 - movq %r12,%r10 - adcq $0,%r10 - - movq %r8,%r13 - imulq %r9,%r13 - andq %rax,%r13 - - vpbroadcastq %r13,%ymm4 - movq 0(%rcx),%rdx - mulxq %r13,%r13,%r12 - addq %r13,%r9 - adcq %r12,%r10 - - shrq $52,%r9 - salq $12,%r10 - orq %r10,%r9 - - vpmadd52luq 0(%rsi),%ymm3,%ymm1 - vpmadd52luq 32(%rsi),%ymm3,%ymm16 - vpmadd52luq 64(%rsi),%ymm3,%ymm17 - vpmadd52luq 96(%rsi),%ymm3,%ymm18 - vpmadd52luq 128(%rsi),%ymm3,%ymm19 - - vpmadd52luq 0(%rcx),%ymm4,%ymm1 - vpmadd52luq 32(%rcx),%ymm4,%ymm16 - vpmadd52luq 64(%rcx),%ymm4,%ymm17 - vpmadd52luq 96(%rcx),%ymm4,%ymm18 - vpmadd52luq 128(%rcx),%ymm4,%ymm19 - - - valignq $1,%ymm1,%ymm16,%ymm1 - valignq $1,%ymm16,%ymm17,%ymm16 - valignq $1,%ymm17,%ymm18,%ymm17 - valignq $1,%ymm18,%ymm19,%ymm18 - valignq $1,%ymm19,%ymm0,%ymm19 - - vmovq %xmm1,%r13 - addq %r13,%r9 - - vpmadd52huq 0(%rsi),%ymm3,%ymm1 - vpmadd52huq 32(%rsi),%ymm3,%ymm16 - vpmadd52huq 64(%rsi),%ymm3,%ymm17 - vpmadd52huq 96(%rsi),%ymm3,%ymm18 - vpmadd52huq 128(%rsi),%ymm3,%ymm19 - - vpmadd52huq 0(%rcx),%ymm4,%ymm1 - vpmadd52huq 32(%rcx),%ymm4,%ymm16 - vpmadd52huq 64(%rcx),%ymm4,%ymm17 - vpmadd52huq 96(%rcx),%ymm4,%ymm18 - vpmadd52huq 128(%rcx),%ymm4,%ymm19 - movq 16(%r11),%r13 - - vpbroadcastq %r13,%ymm3 - movq 0(%rsi),%rdx - mulxq %r13,%r13,%r12 - addq %r13,%r9 - movq %r12,%r10 - adcq $0,%r10 - - movq %r8,%r13 - imulq %r9,%r13 - andq %rax,%r13 - - vpbroadcastq %r13,%ymm4 - movq 0(%rcx),%rdx - mulxq %r13,%r13,%r12 - addq %r13,%r9 - adcq %r12,%r10 - - shrq $52,%r9 - salq $12,%r10 - orq %r10,%r9 - - vpmadd52luq 0(%rsi),%ymm3,%ymm1 - vpmadd52luq 32(%rsi),%ymm3,%ymm16 - vpmadd52luq 64(%rsi),%ymm3,%ymm17 - vpmadd52luq 96(%rsi),%ymm3,%ymm18 - vpmadd52luq 128(%rsi),%ymm3,%ymm19 - - vpmadd52luq 0(%rcx),%ymm4,%ymm1 - vpmadd52luq 32(%rcx),%ymm4,%ymm16 - vpmadd52luq 64(%rcx),%ymm4,%ymm17 - vpmadd52luq 96(%rcx),%ymm4,%ymm18 - vpmadd52luq 128(%rcx),%ymm4,%ymm19 - - - valignq $1,%ymm1,%ymm16,%ymm1 - valignq $1,%ymm16,%ymm17,%ymm16 - valignq $1,%ymm17,%ymm18,%ymm17 - valignq $1,%ymm18,%ymm19,%ymm18 - valignq $1,%ymm19,%ymm0,%ymm19 - - vmovq %xmm1,%r13 - addq %r13,%r9 - - vpmadd52huq 0(%rsi),%ymm3,%ymm1 - vpmadd52huq 32(%rsi),%ymm3,%ymm16 - vpmadd52huq 64(%rsi),%ymm3,%ymm17 - vpmadd52huq 96(%rsi),%ymm3,%ymm18 - vpmadd52huq 128(%rsi),%ymm3,%ymm19 - - vpmadd52huq 0(%rcx),%ymm4,%ymm1 - vpmadd52huq 32(%rcx),%ymm4,%ymm16 - vpmadd52huq 64(%rcx),%ymm4,%ymm17 - vpmadd52huq 96(%rcx),%ymm4,%ymm18 - vpmadd52huq 128(%rcx),%ymm4,%ymm19 - movq 24(%r11),%r13 - - vpbroadcastq %r13,%ymm3 - movq 0(%rsi),%rdx - mulxq %r13,%r13,%r12 - addq %r13,%r9 - movq %r12,%r10 - adcq $0,%r10 - - movq %r8,%r13 - imulq %r9,%r13 - andq %rax,%r13 - - vpbroadcastq %r13,%ymm4 - movq 0(%rcx),%rdx - mulxq %r13,%r13,%r12 - addq %r13,%r9 - adcq %r12,%r10 - - shrq $52,%r9 - salq $12,%r10 - orq %r10,%r9 - - vpmadd52luq 0(%rsi),%ymm3,%ymm1 - vpmadd52luq 32(%rsi),%ymm3,%ymm16 - vpmadd52luq 64(%rsi),%ymm3,%ymm17 - vpmadd52luq 96(%rsi),%ymm3,%ymm18 - vpmadd52luq 128(%rsi),%ymm3,%ymm19 - - vpmadd52luq 0(%rcx),%ymm4,%ymm1 - vpmadd52luq 32(%rcx),%ymm4,%ymm16 - vpmadd52luq 64(%rcx),%ymm4,%ymm17 - vpmadd52luq 96(%rcx),%ymm4,%ymm18 - vpmadd52luq 128(%rcx),%ymm4,%ymm19 - - - valignq $1,%ymm1,%ymm16,%ymm1 - valignq $1,%ymm16,%ymm17,%ymm16 - valignq $1,%ymm17,%ymm18,%ymm17 - valignq $1,%ymm18,%ymm19,%ymm18 - valignq $1,%ymm19,%ymm0,%ymm19 - - vmovq %xmm1,%r13 - addq %r13,%r9 - - vpmadd52huq 0(%rsi),%ymm3,%ymm1 - vpmadd52huq 32(%rsi),%ymm3,%ymm16 - vpmadd52huq 64(%rsi),%ymm3,%ymm17 - vpmadd52huq 96(%rsi),%ymm3,%ymm18 - vpmadd52huq 128(%rsi),%ymm3,%ymm19 - - vpmadd52huq 0(%rcx),%ymm4,%ymm1 - vpmadd52huq 32(%rcx),%ymm4,%ymm16 - vpmadd52huq 64(%rcx),%ymm4,%ymm17 - vpmadd52huq 96(%rcx),%ymm4,%ymm18 - vpmadd52huq 128(%rcx),%ymm4,%ymm19 - leaq 32(%r11),%r11 - decl %ebx - jne L$loop5 - - vmovdqa64 L$mask52x4(%rip),%ymm4 - - vpbroadcastq %r9,%ymm3 - vpblendd $3,%ymm3,%ymm1,%ymm1 - - - - vpsrlq $52,%ymm1,%ymm24 - vpsrlq $52,%ymm16,%ymm25 - vpsrlq $52,%ymm17,%ymm26 - vpsrlq $52,%ymm18,%ymm27 - vpsrlq $52,%ymm19,%ymm28 - - - valignq $3,%ymm27,%ymm28,%ymm28 - valignq $3,%ymm26,%ymm27,%ymm27 - valignq $3,%ymm25,%ymm26,%ymm26 - valignq $3,%ymm24,%ymm25,%ymm25 - valignq $3,%ymm0,%ymm24,%ymm24 - - - vpandq %ymm4,%ymm1,%ymm1 - vpandq %ymm4,%ymm16,%ymm16 - vpandq %ymm4,%ymm17,%ymm17 - vpandq %ymm4,%ymm18,%ymm18 - vpandq %ymm4,%ymm19,%ymm19 - - - vpaddq %ymm24,%ymm1,%ymm1 - vpaddq %ymm25,%ymm16,%ymm16 - vpaddq %ymm26,%ymm17,%ymm17 - vpaddq %ymm27,%ymm18,%ymm18 - vpaddq %ymm28,%ymm19,%ymm19 - - - - vpcmpuq $1,%ymm1,%ymm4,%k1 - vpcmpuq $1,%ymm16,%ymm4,%k2 - vpcmpuq $1,%ymm17,%ymm4,%k3 - vpcmpuq $1,%ymm18,%ymm4,%k4 - vpcmpuq $1,%ymm19,%ymm4,%k5 - kmovb %k1,%r14d - kmovb %k2,%r13d - kmovb %k3,%r12d - kmovb %k4,%r11d - kmovb %k5,%r10d - - - vpcmpuq $0,%ymm1,%ymm4,%k1 - vpcmpuq $0,%ymm16,%ymm4,%k2 - vpcmpuq $0,%ymm17,%ymm4,%k3 - vpcmpuq $0,%ymm18,%ymm4,%k4 - vpcmpuq $0,%ymm19,%ymm4,%k5 - kmovb %k1,%r9d - kmovb %k2,%r8d - kmovb %k3,%ebx - kmovb %k4,%ecx - kmovb %k5,%edx - - - - shlb $4,%r13b - orb %r13b,%r14b - shlb $4,%r11b - orb %r11b,%r12b - - addb %r14b,%r14b - adcb %r12b,%r12b - adcb %r10b,%r10b - - shlb $4,%r8b - orb %r8b,%r9b - shlb $4,%cl - orb %cl,%bl - - addb %r9b,%r14b - adcb %bl,%r12b - adcb %dl,%r10b - - xorb %r9b,%r14b - xorb %bl,%r12b - xorb %dl,%r10b - - kmovb %r14d,%k1 - shrb $4,%r14b - kmovb %r14d,%k2 - kmovb %r12d,%k3 - shrb $4,%r12b - kmovb %r12d,%k4 - kmovb %r10d,%k5 - - - vpsubq %ymm4,%ymm1,%ymm1{%k1} - vpsubq %ymm4,%ymm16,%ymm16{%k2} - vpsubq %ymm4,%ymm17,%ymm17{%k3} - vpsubq %ymm4,%ymm18,%ymm18{%k4} - vpsubq %ymm4,%ymm19,%ymm19{%k5} - - vpandq %ymm4,%ymm1,%ymm1 - vpandq %ymm4,%ymm16,%ymm16 - vpandq %ymm4,%ymm17,%ymm17 - vpandq %ymm4,%ymm18,%ymm18 - vpandq %ymm4,%ymm19,%ymm19 - - vmovdqu64 %ymm1,(%rdi) - vmovdqu64 %ymm16,32(%rdi) - vmovdqu64 %ymm17,64(%rdi) - vmovdqu64 %ymm18,96(%rdi) - vmovdqu64 %ymm19,128(%rdi) - - vzeroupper - movq 0(%rsp),%r15 - - movq 8(%rsp),%r14 - - movq 16(%rsp),%r13 - - movq 24(%rsp),%r12 - - movq 32(%rsp),%rbp - - movq 40(%rsp),%rbx - - leaq 48(%rsp),%rsp - -L$rsaz_amm52x20_x1_256_epilogue: - .byte 0xf3,0xc3 - - -.data -.p2align 5 -L$mask52x4: -.quad 0xfffffffffffff -.quad 0xfffffffffffff -.quad 0xfffffffffffff -.quad 0xfffffffffffff -.text - -.globl _ossl_rsaz_amm52x20_x2_256 - -.p2align 5 -_ossl_rsaz_amm52x20_x2_256: - -.byte 243,15,30,250 - pushq %rbx - - pushq %rbp - - pushq %r12 - - pushq %r13 - - pushq %r14 - - pushq %r15 - -L$rsaz_amm52x20_x2_256_body: - - - vpxord %ymm0,%ymm0,%ymm0 - vmovdqa64 %ymm0,%ymm1 - vmovdqa64 %ymm0,%ymm16 - vmovdqa64 %ymm0,%ymm17 - vmovdqa64 %ymm0,%ymm18 - vmovdqa64 %ymm0,%ymm19 - vmovdqa64 %ymm0,%ymm2 - vmovdqa64 %ymm0,%ymm20 - vmovdqa64 %ymm0,%ymm21 - vmovdqa64 %ymm0,%ymm22 - vmovdqa64 %ymm0,%ymm23 - - xorl %r9d,%r9d - xorl %r15d,%r15d - - movq %rdx,%r11 - movq $0xfffffffffffff,%rax - - movl $20,%ebx - -.p2align 5 -L$loop20: - movq 0(%r11),%r13 - - vpbroadcastq %r13,%ymm3 - movq 0(%rsi),%rdx - mulxq %r13,%r13,%r12 - addq %r13,%r9 - movq %r12,%r10 - adcq $0,%r10 - - movq (%r8),%r13 - imulq %r9,%r13 - andq %rax,%r13 - - vpbroadcastq %r13,%ymm4 - movq 0(%rcx),%rdx - mulxq %r13,%r13,%r12 - addq %r13,%r9 - adcq %r12,%r10 - - shrq $52,%r9 - salq $12,%r10 - orq %r10,%r9 - - vpmadd52luq 0(%rsi),%ymm3,%ymm1 - vpmadd52luq 32(%rsi),%ymm3,%ymm16 - vpmadd52luq 64(%rsi),%ymm3,%ymm17 - vpmadd52luq 96(%rsi),%ymm3,%ymm18 - vpmadd52luq 128(%rsi),%ymm3,%ymm19 - - vpmadd52luq 0(%rcx),%ymm4,%ymm1 - vpmadd52luq 32(%rcx),%ymm4,%ymm16 - vpmadd52luq 64(%rcx),%ymm4,%ymm17 - vpmadd52luq 96(%rcx),%ymm4,%ymm18 - vpmadd52luq 128(%rcx),%ymm4,%ymm19 - - - valignq $1,%ymm1,%ymm16,%ymm1 - valignq $1,%ymm16,%ymm17,%ymm16 - valignq $1,%ymm17,%ymm18,%ymm17 - valignq $1,%ymm18,%ymm19,%ymm18 - valignq $1,%ymm19,%ymm0,%ymm19 - - vmovq %xmm1,%r13 - addq %r13,%r9 - - vpmadd52huq 0(%rsi),%ymm3,%ymm1 - vpmadd52huq 32(%rsi),%ymm3,%ymm16 - vpmadd52huq 64(%rsi),%ymm3,%ymm17 - vpmadd52huq 96(%rsi),%ymm3,%ymm18 - vpmadd52huq 128(%rsi),%ymm3,%ymm19 - - vpmadd52huq 0(%rcx),%ymm4,%ymm1 - vpmadd52huq 32(%rcx),%ymm4,%ymm16 - vpmadd52huq 64(%rcx),%ymm4,%ymm17 - vpmadd52huq 96(%rcx),%ymm4,%ymm18 - vpmadd52huq 128(%rcx),%ymm4,%ymm19 - movq 160(%r11),%r13 - - vpbroadcastq %r13,%ymm3 - movq 160(%rsi),%rdx - mulxq %r13,%r13,%r12 - addq %r13,%r15 - movq %r12,%r10 - adcq $0,%r10 - - movq 8(%r8),%r13 - imulq %r15,%r13 - andq %rax,%r13 - - vpbroadcastq %r13,%ymm4 - movq 160(%rcx),%rdx - mulxq %r13,%r13,%r12 - addq %r13,%r15 - adcq %r12,%r10 - - shrq $52,%r15 - salq $12,%r10 - orq %r10,%r15 - - vpmadd52luq 160(%rsi),%ymm3,%ymm2 - vpmadd52luq 192(%rsi),%ymm3,%ymm20 - vpmadd52luq 224(%rsi),%ymm3,%ymm21 - vpmadd52luq 256(%rsi),%ymm3,%ymm22 - vpmadd52luq 288(%rsi),%ymm3,%ymm23 - - vpmadd52luq 160(%rcx),%ymm4,%ymm2 - vpmadd52luq 192(%rcx),%ymm4,%ymm20 - vpmadd52luq 224(%rcx),%ymm4,%ymm21 - vpmadd52luq 256(%rcx),%ymm4,%ymm22 - vpmadd52luq 288(%rcx),%ymm4,%ymm23 - - - valignq $1,%ymm2,%ymm20,%ymm2 - valignq $1,%ymm20,%ymm21,%ymm20 - valignq $1,%ymm21,%ymm22,%ymm21 - valignq $1,%ymm22,%ymm23,%ymm22 - valignq $1,%ymm23,%ymm0,%ymm23 - - vmovq %xmm2,%r13 - addq %r13,%r15 - - vpmadd52huq 160(%rsi),%ymm3,%ymm2 - vpmadd52huq 192(%rsi),%ymm3,%ymm20 - vpmadd52huq 224(%rsi),%ymm3,%ymm21 - vpmadd52huq 256(%rsi),%ymm3,%ymm22 - vpmadd52huq 288(%rsi),%ymm3,%ymm23 - - vpmadd52huq 160(%rcx),%ymm4,%ymm2 - vpmadd52huq 192(%rcx),%ymm4,%ymm20 - vpmadd52huq 224(%rcx),%ymm4,%ymm21 - vpmadd52huq 256(%rcx),%ymm4,%ymm22 - vpmadd52huq 288(%rcx),%ymm4,%ymm23 - leaq 8(%r11),%r11 - decl %ebx - jne L$loop20 - - vmovdqa64 L$mask52x4(%rip),%ymm4 - - vpbroadcastq %r9,%ymm3 - vpblendd $3,%ymm3,%ymm1,%ymm1 - - - - vpsrlq $52,%ymm1,%ymm24 - vpsrlq $52,%ymm16,%ymm25 - vpsrlq $52,%ymm17,%ymm26 - vpsrlq $52,%ymm18,%ymm27 - vpsrlq $52,%ymm19,%ymm28 - - - valignq $3,%ymm27,%ymm28,%ymm28 - valignq $3,%ymm26,%ymm27,%ymm27 - valignq $3,%ymm25,%ymm26,%ymm26 - valignq $3,%ymm24,%ymm25,%ymm25 - valignq $3,%ymm0,%ymm24,%ymm24 - - - vpandq %ymm4,%ymm1,%ymm1 - vpandq %ymm4,%ymm16,%ymm16 - vpandq %ymm4,%ymm17,%ymm17 - vpandq %ymm4,%ymm18,%ymm18 - vpandq %ymm4,%ymm19,%ymm19 - - - vpaddq %ymm24,%ymm1,%ymm1 - vpaddq %ymm25,%ymm16,%ymm16 - vpaddq %ymm26,%ymm17,%ymm17 - vpaddq %ymm27,%ymm18,%ymm18 - vpaddq %ymm28,%ymm19,%ymm19 - - - - vpcmpuq $1,%ymm1,%ymm4,%k1 - vpcmpuq $1,%ymm16,%ymm4,%k2 - vpcmpuq $1,%ymm17,%ymm4,%k3 - vpcmpuq $1,%ymm18,%ymm4,%k4 - vpcmpuq $1,%ymm19,%ymm4,%k5 - kmovb %k1,%r14d - kmovb %k2,%r13d - kmovb %k3,%r12d - kmovb %k4,%r11d - kmovb %k5,%r10d - - - vpcmpuq $0,%ymm1,%ymm4,%k1 - vpcmpuq $0,%ymm16,%ymm4,%k2 - vpcmpuq $0,%ymm17,%ymm4,%k3 - vpcmpuq $0,%ymm18,%ymm4,%k4 - vpcmpuq $0,%ymm19,%ymm4,%k5 - kmovb %k1,%r9d - kmovb %k2,%r8d - kmovb %k3,%ebx - kmovb %k4,%ecx - kmovb %k5,%edx - - - - shlb $4,%r13b - orb %r13b,%r14b - shlb $4,%r11b - orb %r11b,%r12b - - addb %r14b,%r14b - adcb %r12b,%r12b - adcb %r10b,%r10b - - shlb $4,%r8b - orb %r8b,%r9b - shlb $4,%cl - orb %cl,%bl - - addb %r9b,%r14b - adcb %bl,%r12b - adcb %dl,%r10b - - xorb %r9b,%r14b - xorb %bl,%r12b - xorb %dl,%r10b - - kmovb %r14d,%k1 - shrb $4,%r14b - kmovb %r14d,%k2 - kmovb %r12d,%k3 - shrb $4,%r12b - kmovb %r12d,%k4 - kmovb %r10d,%k5 - - - vpsubq %ymm4,%ymm1,%ymm1{%k1} - vpsubq %ymm4,%ymm16,%ymm16{%k2} - vpsubq %ymm4,%ymm17,%ymm17{%k3} - vpsubq %ymm4,%ymm18,%ymm18{%k4} - vpsubq %ymm4,%ymm19,%ymm19{%k5} - - vpandq %ymm4,%ymm1,%ymm1 - vpandq %ymm4,%ymm16,%ymm16 - vpandq %ymm4,%ymm17,%ymm17 - vpandq %ymm4,%ymm18,%ymm18 - vpandq %ymm4,%ymm19,%ymm19 - - vpbroadcastq %r15,%ymm3 - vpblendd $3,%ymm3,%ymm2,%ymm2 - - - - vpsrlq $52,%ymm2,%ymm24 - vpsrlq $52,%ymm20,%ymm25 - vpsrlq $52,%ymm21,%ymm26 - vpsrlq $52,%ymm22,%ymm27 - vpsrlq $52,%ymm23,%ymm28 - - - valignq $3,%ymm27,%ymm28,%ymm28 - valignq $3,%ymm26,%ymm27,%ymm27 - valignq $3,%ymm25,%ymm26,%ymm26 - valignq $3,%ymm24,%ymm25,%ymm25 - valignq $3,%ymm0,%ymm24,%ymm24 - - - vpandq %ymm4,%ymm2,%ymm2 - vpandq %ymm4,%ymm20,%ymm20 - vpandq %ymm4,%ymm21,%ymm21 - vpandq %ymm4,%ymm22,%ymm22 - vpandq %ymm4,%ymm23,%ymm23 - - - vpaddq %ymm24,%ymm2,%ymm2 - vpaddq %ymm25,%ymm20,%ymm20 - vpaddq %ymm26,%ymm21,%ymm21 - vpaddq %ymm27,%ymm22,%ymm22 - vpaddq %ymm28,%ymm23,%ymm23 - - - - vpcmpuq $1,%ymm2,%ymm4,%k1 - vpcmpuq $1,%ymm20,%ymm4,%k2 - vpcmpuq $1,%ymm21,%ymm4,%k3 - vpcmpuq $1,%ymm22,%ymm4,%k4 - vpcmpuq $1,%ymm23,%ymm4,%k5 - kmovb %k1,%r14d - kmovb %k2,%r13d - kmovb %k3,%r12d - kmovb %k4,%r11d - kmovb %k5,%r10d - - - vpcmpuq $0,%ymm2,%ymm4,%k1 - vpcmpuq $0,%ymm20,%ymm4,%k2 - vpcmpuq $0,%ymm21,%ymm4,%k3 - vpcmpuq $0,%ymm22,%ymm4,%k4 - vpcmpuq $0,%ymm23,%ymm4,%k5 - kmovb %k1,%r9d - kmovb %k2,%r8d - kmovb %k3,%ebx - kmovb %k4,%ecx - kmovb %k5,%edx - - - - shlb $4,%r13b - orb %r13b,%r14b - shlb $4,%r11b - orb %r11b,%r12b - - addb %r14b,%r14b - adcb %r12b,%r12b - adcb %r10b,%r10b - - shlb $4,%r8b - orb %r8b,%r9b - shlb $4,%cl - orb %cl,%bl - - addb %r9b,%r14b - adcb %bl,%r12b - adcb %dl,%r10b - - xorb %r9b,%r14b - xorb %bl,%r12b - xorb %dl,%r10b - - kmovb %r14d,%k1 - shrb $4,%r14b - kmovb %r14d,%k2 - kmovb %r12d,%k3 - shrb $4,%r12b - kmovb %r12d,%k4 - kmovb %r10d,%k5 - - - vpsubq %ymm4,%ymm2,%ymm2{%k1} - vpsubq %ymm4,%ymm20,%ymm20{%k2} - vpsubq %ymm4,%ymm21,%ymm21{%k3} - vpsubq %ymm4,%ymm22,%ymm22{%k4} - vpsubq %ymm4,%ymm23,%ymm23{%k5} - - vpandq %ymm4,%ymm2,%ymm2 - vpandq %ymm4,%ymm20,%ymm20 - vpandq %ymm4,%ymm21,%ymm21 - vpandq %ymm4,%ymm22,%ymm22 - vpandq %ymm4,%ymm23,%ymm23 - - vmovdqu64 %ymm1,(%rdi) - vmovdqu64 %ymm16,32(%rdi) - vmovdqu64 %ymm17,64(%rdi) - vmovdqu64 %ymm18,96(%rdi) - vmovdqu64 %ymm19,128(%rdi) - - vmovdqu64 %ymm2,160(%rdi) - vmovdqu64 %ymm20,192(%rdi) - vmovdqu64 %ymm21,224(%rdi) - vmovdqu64 %ymm22,256(%rdi) - vmovdqu64 %ymm23,288(%rdi) - - vzeroupper - movq 0(%rsp),%r15 - - movq 8(%rsp),%r14 - - movq 16(%rsp),%r13 - - movq 24(%rsp),%r12 - - movq 32(%rsp),%rbp - - movq 40(%rsp),%rbx - - leaq 48(%rsp),%rsp - -L$rsaz_amm52x20_x2_256_epilogue: - .byte 0xf3,0xc3 - - -.text - -.p2align 5 -.globl _ossl_extract_multiplier_2x20_win5 - -_ossl_extract_multiplier_2x20_win5: - -.byte 243,15,30,250 - leaq (%rcx,%rcx,4),%rax - salq $5,%rax - addq %rax,%rsi - - vmovdqa64 L$ones(%rip),%ymm23 - vpbroadcastq %rdx,%ymm22 - leaq 10240(%rsi),%rax - - vpxor %xmm4,%xmm4,%xmm4 - vmovdqa64 %ymm4,%ymm3 - vmovdqa64 %ymm4,%ymm2 - vmovdqa64 %ymm4,%ymm1 - vmovdqa64 %ymm4,%ymm0 - vmovdqa64 %ymm4,%ymm21 - -.p2align 5 -L$loop: - vpcmpq $0,%ymm21,%ymm22,%k1 - addq $320,%rsi - vpaddq %ymm23,%ymm21,%ymm21 - vmovdqu64 -320(%rsi),%ymm16 - vmovdqu64 -288(%rsi),%ymm17 - vmovdqu64 -256(%rsi),%ymm18 - vmovdqu64 -224(%rsi),%ymm19 - vmovdqu64 -192(%rsi),%ymm20 - vpblendmq %ymm16,%ymm0,%ymm0{%k1} - vpblendmq %ymm17,%ymm1,%ymm1{%k1} - vpblendmq %ymm18,%ymm2,%ymm2{%k1} - vpblendmq %ymm19,%ymm3,%ymm3{%k1} - vpblendmq %ymm20,%ymm4,%ymm4{%k1} - cmpq %rsi,%rax - jne L$loop - - vmovdqu64 %ymm0,(%rdi) - vmovdqu64 %ymm1,32(%rdi) - vmovdqu64 %ymm2,64(%rdi) - vmovdqu64 %ymm3,96(%rdi) - vmovdqu64 %ymm4,128(%rdi) - - .byte 0xf3,0xc3 - - -.data -.p2align 5 -L$ones: -.quad 1,1,1,1 diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/bn/rsaz-x86_64.s b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/bn/rsaz-x86_64.s index b572410a065e03..0fbb4e2f580ee7 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/bn/rsaz-x86_64.s +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/bn/rsaz-x86_64.s @@ -1979,7 +1979,9 @@ L$SEH_end_rsaz_512_gather4: +.section __DATA,__const .p2align 6 L$inc: .long 0,0, 1,1 .long 2,2, 2,2 +.text diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/bn/x86_64-mont5.s b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/bn/x86_64-mont5.s index 8520cd92f48491..e42299ce86d22b 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/bn/x86_64-mont5.s +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/bn/x86_64-mont5.s @@ -3596,8 +3596,10 @@ L$gather: L$SEH_end_bn_gather5: +.section __DATA,__const .p2align 6 L$inc: .long 0,0, 1,1 .long 2,2, 2,2 .byte 77,111,110,116,103,111,109,101,114,121,32,77,117,108,116,105,112,108,105,99,97,116,105,111,110,32,119,105,116,104,32,115,99,97,116,116,101,114,47,103,97,116,104,101,114,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 +.text diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/buildinf.h b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/buildinf.h index b56e7908a5289a..42e1e3cc0b4d35 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/buildinf.h +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/buildinf.h @@ -11,7 +11,7 @@ */ #define PLATFORM "platform: darwin64-x86_64-cc" -#define DATE "built on: Sun Jul 20 00:47:00 2025 UTC" +#define DATE "built on: Sun Jul 27 00:47:32 2025 UTC" /* * Generate compiler_flags as an array of individual characters. This is a diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/camellia/cmll-x86_64.s b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/camellia/cmll-x86_64.s index b255fcfd18ddc1..27ec8393070461 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/camellia/cmll-x86_64.s +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/camellia/cmll-x86_64.s @@ -1129,6 +1129,7 @@ L$key_epilogue: .byte 0xf3,0xc3 +.section __DATA,__const .p2align 6 L$Camellia_SIGMA: .long 0x3bcc908b, 0xa09e667f, 0x4caa73b2, 0xb67ae858 @@ -1648,6 +1649,7 @@ L$Camellia_SBOX: .long 0x008f8f8f,0xe300e3e3 .long 0x00010101,0x40004040 .long 0x003d3d3d,0x4f004f4f +.text .globl _Camellia_cbc_encrypt .p2align 4 diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/chacha/chacha-x86_64.s b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/chacha/chacha-x86_64.s index edb6c28e4b5148..fc0a8808007945 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/chacha/chacha-x86_64.s +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/chacha/chacha-x86_64.s @@ -2,6 +2,7 @@ +.section __DATA,__const .p2align 6 L$zero: .long 0,0,0,0 @@ -33,6 +34,7 @@ L$sixteen: L$sigma: .byte 101,120,112,97,110,100,32,51,50,45,98,121,116,101,32,107,0 .byte 67,104,97,67,104,97,50,48,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 +.text .globl _ChaCha20_ctr32 .p2align 6 diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/ec/ecp_nistz256-x86_64.s b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/ec/ecp_nistz256-x86_64.s index dc6bed3b5bdea4..b84aef07a15e31 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/ec/ecp_nistz256-x86_64.s +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/ec/ecp_nistz256-x86_64.s @@ -1,4 +1,4 @@ -.text +.section __DATA,__const .globl _ecp_nistz256_precomputed .p2align 12 @@ -2376,6 +2376,7 @@ _ecp_nistz256_precomputed: +.section __DATA,__const .p2align 6 L$poly: .quad 0xffffffffffffffff, 0x00000000ffffffff, 0x0000000000000000, 0xffffffff00000001 @@ -2398,6 +2399,7 @@ L$ord: .quad 0xf3b9cac2fc632551, 0xbce6faada7179e84, 0xffffffffffffffff, 0xffffffff00000000 L$ordK: .quad 0xccd1c8aaee00bc4f +.text .globl _ecp_nistz256_mul_by_2 diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/md5/md5-x86_64.s b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/md5/md5-x86_64.s index e04c0209281eb6..45529306244b4f 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/md5/md5-x86_64.s +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/md5/md5-x86_64.s @@ -196,7 +196,7 @@ L$loop: leal -165796510(%rax,%r10,1),%eax andl %ecx,%r11d movl 24(%rsi),%r10d - orl %r11d,%r12d + addl %r11d,%eax movl %ecx,%r11d addl %r12d,%eax movl %ecx,%r12d @@ -207,7 +207,7 @@ L$loop: leal -1069501632(%rdx,%r10,1),%edx andl %ebx,%r11d movl 44(%rsi),%r10d - orl %r11d,%r12d + addl %r11d,%edx movl %ebx,%r11d addl %r12d,%edx movl %ebx,%r12d @@ -218,7 +218,7 @@ L$loop: leal 643717713(%rcx,%r10,1),%ecx andl %eax,%r11d movl 0(%rsi),%r10d - orl %r11d,%r12d + addl %r11d,%ecx movl %eax,%r11d addl %r12d,%ecx movl %eax,%r12d @@ -229,7 +229,7 @@ L$loop: leal -373897302(%rbx,%r10,1),%ebx andl %edx,%r11d movl 20(%rsi),%r10d - orl %r11d,%r12d + addl %r11d,%ebx movl %edx,%r11d addl %r12d,%ebx movl %edx,%r12d @@ -240,7 +240,7 @@ L$loop: leal -701558691(%rax,%r10,1),%eax andl %ecx,%r11d movl 40(%rsi),%r10d - orl %r11d,%r12d + addl %r11d,%eax movl %ecx,%r11d addl %r12d,%eax movl %ecx,%r12d @@ -251,7 +251,7 @@ L$loop: leal 38016083(%rdx,%r10,1),%edx andl %ebx,%r11d movl 60(%rsi),%r10d - orl %r11d,%r12d + addl %r11d,%edx movl %ebx,%r11d addl %r12d,%edx movl %ebx,%r12d @@ -262,7 +262,7 @@ L$loop: leal -660478335(%rcx,%r10,1),%ecx andl %eax,%r11d movl 16(%rsi),%r10d - orl %r11d,%r12d + addl %r11d,%ecx movl %eax,%r11d addl %r12d,%ecx movl %eax,%r12d @@ -273,7 +273,7 @@ L$loop: leal -405537848(%rbx,%r10,1),%ebx andl %edx,%r11d movl 36(%rsi),%r10d - orl %r11d,%r12d + addl %r11d,%ebx movl %edx,%r11d addl %r12d,%ebx movl %edx,%r12d @@ -284,7 +284,7 @@ L$loop: leal 568446438(%rax,%r10,1),%eax andl %ecx,%r11d movl 56(%rsi),%r10d - orl %r11d,%r12d + addl %r11d,%eax movl %ecx,%r11d addl %r12d,%eax movl %ecx,%r12d @@ -295,7 +295,7 @@ L$loop: leal -1019803690(%rdx,%r10,1),%edx andl %ebx,%r11d movl 12(%rsi),%r10d - orl %r11d,%r12d + addl %r11d,%edx movl %ebx,%r11d addl %r12d,%edx movl %ebx,%r12d @@ -306,7 +306,7 @@ L$loop: leal -187363961(%rcx,%r10,1),%ecx andl %eax,%r11d movl 32(%rsi),%r10d - orl %r11d,%r12d + addl %r11d,%ecx movl %eax,%r11d addl %r12d,%ecx movl %eax,%r12d @@ -317,7 +317,7 @@ L$loop: leal 1163531501(%rbx,%r10,1),%ebx andl %edx,%r11d movl 52(%rsi),%r10d - orl %r11d,%r12d + addl %r11d,%ebx movl %edx,%r11d addl %r12d,%ebx movl %edx,%r12d @@ -328,7 +328,7 @@ L$loop: leal -1444681467(%rax,%r10,1),%eax andl %ecx,%r11d movl 8(%rsi),%r10d - orl %r11d,%r12d + addl %r11d,%eax movl %ecx,%r11d addl %r12d,%eax movl %ecx,%r12d @@ -339,7 +339,7 @@ L$loop: leal -51403784(%rdx,%r10,1),%edx andl %ebx,%r11d movl 28(%rsi),%r10d - orl %r11d,%r12d + addl %r11d,%edx movl %ebx,%r11d addl %r12d,%edx movl %ebx,%r12d @@ -350,7 +350,7 @@ L$loop: leal 1735328473(%rcx,%r10,1),%ecx andl %eax,%r11d movl 48(%rsi),%r10d - orl %r11d,%r12d + addl %r11d,%ecx movl %eax,%r11d addl %r12d,%ecx movl %eax,%r12d @@ -361,7 +361,7 @@ L$loop: leal -1926607734(%rbx,%r10,1),%ebx andl %edx,%r11d movl 20(%rsi),%r10d - orl %r11d,%r12d + addl %r11d,%ebx movl %edx,%r11d addl %r12d,%ebx movl %edx,%r12d diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/modes/aes-gcm-avx512.s b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/modes/aes-gcm-avx512.s new file mode 100644 index 00000000000000..5b7ec8fbb4fce3 --- /dev/null +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/modes/aes-gcm-avx512.s @@ -0,0 +1,136062 @@ + +.globl _ossl_vaes_vpclmulqdq_capable + +.p2align 5 +_ossl_vaes_vpclmulqdq_capable: + movq _OPENSSL_ia32cap_P+8(%rip),%rcx + + movq $6600291188736,%rdx + xorl %eax,%eax + andq %rdx,%rcx + cmpq %rdx,%rcx + cmoveq %rcx,%rax + .byte 0xf3,0xc3 + +.text +.globl _ossl_aes_gcm_init_avx512 + +.p2align 5 +_ossl_aes_gcm_init_avx512: + +.byte 243,15,30,250 + vpxorq %xmm16,%xmm16,%xmm16 + + + movl 240(%rdi),%eax + cmpl $9,%eax + je L$aes_128_0 + cmpl $11,%eax + je L$aes_192_0 + cmpl $13,%eax + je L$aes_256_0 + jmp L$exit_aes_0 +.p2align 5 +L$aes_128_0: + vpxorq 0(%rdi),%xmm16,%xmm16 + + vaesenc 16(%rdi),%xmm16,%xmm16 + + vaesenc 32(%rdi),%xmm16,%xmm16 + + vaesenc 48(%rdi),%xmm16,%xmm16 + + vaesenc 64(%rdi),%xmm16,%xmm16 + + vaesenc 80(%rdi),%xmm16,%xmm16 + + vaesenc 96(%rdi),%xmm16,%xmm16 + + vaesenc 112(%rdi),%xmm16,%xmm16 + + vaesenc 128(%rdi),%xmm16,%xmm16 + + vaesenc 144(%rdi),%xmm16,%xmm16 + + vaesenclast 160(%rdi),%xmm16,%xmm16 + jmp L$exit_aes_0 +.p2align 5 +L$aes_192_0: + vpxorq 0(%rdi),%xmm16,%xmm16 + + vaesenc 16(%rdi),%xmm16,%xmm16 + + vaesenc 32(%rdi),%xmm16,%xmm16 + + vaesenc 48(%rdi),%xmm16,%xmm16 + + vaesenc 64(%rdi),%xmm16,%xmm16 + + vaesenc 80(%rdi),%xmm16,%xmm16 + + vaesenc 96(%rdi),%xmm16,%xmm16 + + vaesenc 112(%rdi),%xmm16,%xmm16 + + vaesenc 128(%rdi),%xmm16,%xmm16 + + vaesenc 144(%rdi),%xmm16,%xmm16 + + vaesenc 160(%rdi),%xmm16,%xmm16 + + vaesenc 176(%rdi),%xmm16,%xmm16 + + vaesenclast 192(%rdi),%xmm16,%xmm16 + jmp L$exit_aes_0 +.p2align 5 +L$aes_256_0: + vpxorq 0(%rdi),%xmm16,%xmm16 + + vaesenc 16(%rdi),%xmm16,%xmm16 + + vaesenc 32(%rdi),%xmm16,%xmm16 + + vaesenc 48(%rdi),%xmm16,%xmm16 + + vaesenc 64(%rdi),%xmm16,%xmm16 + + vaesenc 80(%rdi),%xmm16,%xmm16 + + vaesenc 96(%rdi),%xmm16,%xmm16 + + vaesenc 112(%rdi),%xmm16,%xmm16 + + vaesenc 128(%rdi),%xmm16,%xmm16 + + vaesenc 144(%rdi),%xmm16,%xmm16 + + vaesenc 160(%rdi),%xmm16,%xmm16 + + vaesenc 176(%rdi),%xmm16,%xmm16 + + vaesenc 192(%rdi),%xmm16,%xmm16 + + vaesenc 208(%rdi),%xmm16,%xmm16 + + vaesenclast 224(%rdi),%xmm16,%xmm16 + jmp L$exit_aes_0 +L$exit_aes_0: + + vpshufb SHUF_MASK(%rip),%xmm16,%xmm16 + + vmovdqa64 %xmm16,%xmm2 + vpsllq $1,%xmm16,%xmm16 + vpsrlq $63,%xmm2,%xmm2 + vmovdqa %xmm2,%xmm1 + vpslldq $8,%xmm2,%xmm2 + vpsrldq $8,%xmm1,%xmm1 + vporq %xmm2,%xmm16,%xmm16 + + vpshufd $36,%xmm1,%xmm2 + vpcmpeqd TWOONE(%rip),%xmm2,%xmm2 + vpand POLY(%rip),%xmm2,%xmm2 + vpxorq %xmm2,%xmm16,%xmm16 + + vmovdqu64 %xmm16,336(%rsi) + vshufi32x4 $0x00,%ymm16,%ymm16,%ymm4 + vmovdqa %ymm4,%ymm3 + + vpclmulqdq $0x11,%ymm4,%ymm3,%ymm0 + vpclmulqdq $0x00,%ymm4,%ymm3,%ymm1 + vpclmulqdq $0x01,%ymm4,%ymm3,%ymm2 + vpclmulqdq $0x10,%ymm4,%ymm3,%ymm3 + vpxorq %ymm2,%ymm3,%ymm3 + + vpsrldq $8,%ymm3,%ymm2 + vpslldq $8,%ymm3,%ymm3 + vpxorq %ymm2,%ymm0,%ymm0 + vpxorq %ymm1,%ymm3,%ymm3 + + + + vmovdqu64 POLY2(%rip),%ymm2 + + vpclmulqdq $0x01,%ymm3,%ymm2,%ymm1 + vpslldq $8,%ymm1,%ymm1 + vpxorq %ymm1,%ymm3,%ymm3 + + + + vpclmulqdq $0x00,%ymm3,%ymm2,%ymm1 + vpsrldq $4,%ymm1,%ymm1 + vpclmulqdq $0x10,%ymm3,%ymm2,%ymm3 + vpslldq $4,%ymm3,%ymm3 + + vpternlogq $0x96,%ymm1,%ymm0,%ymm3 + + vmovdqu64 %xmm3,320(%rsi) + vinserti64x2 $1,%xmm16,%ymm3,%ymm4 + vmovdqa64 %ymm4,%ymm5 + + vpclmulqdq $0x11,%ymm3,%ymm4,%ymm0 + vpclmulqdq $0x00,%ymm3,%ymm4,%ymm1 + vpclmulqdq $0x01,%ymm3,%ymm4,%ymm2 + vpclmulqdq $0x10,%ymm3,%ymm4,%ymm4 + vpxorq %ymm2,%ymm4,%ymm4 + + vpsrldq $8,%ymm4,%ymm2 + vpslldq $8,%ymm4,%ymm4 + vpxorq %ymm2,%ymm0,%ymm0 + vpxorq %ymm1,%ymm4,%ymm4 + + + + vmovdqu64 POLY2(%rip),%ymm2 + + vpclmulqdq $0x01,%ymm4,%ymm2,%ymm1 + vpslldq $8,%ymm1,%ymm1 + vpxorq %ymm1,%ymm4,%ymm4 + + + + vpclmulqdq $0x00,%ymm4,%ymm2,%ymm1 + vpsrldq $4,%ymm1,%ymm1 + vpclmulqdq $0x10,%ymm4,%ymm2,%ymm4 + vpslldq $4,%ymm4,%ymm4 + + vpternlogq $0x96,%ymm1,%ymm0,%ymm4 + + vmovdqu64 %ymm4,288(%rsi) + + vinserti64x4 $1,%ymm5,%zmm4,%zmm4 + + + vshufi64x2 $0x00,%zmm4,%zmm4,%zmm3 + vmovdqa64 %zmm4,%zmm5 + + vpclmulqdq $0x11,%zmm3,%zmm4,%zmm0 + vpclmulqdq $0x00,%zmm3,%zmm4,%zmm1 + vpclmulqdq $0x01,%zmm3,%zmm4,%zmm2 + vpclmulqdq $0x10,%zmm3,%zmm4,%zmm4 + vpxorq %zmm2,%zmm4,%zmm4 + + vpsrldq $8,%zmm4,%zmm2 + vpslldq $8,%zmm4,%zmm4 + vpxorq %zmm2,%zmm0,%zmm0 + vpxorq %zmm1,%zmm4,%zmm4 + + + + vmovdqu64 POLY2(%rip),%zmm2 + + vpclmulqdq $0x01,%zmm4,%zmm2,%zmm1 + vpslldq $8,%zmm1,%zmm1 + vpxorq %zmm1,%zmm4,%zmm4 + + + + vpclmulqdq $0x00,%zmm4,%zmm2,%zmm1 + vpsrldq $4,%zmm1,%zmm1 + vpclmulqdq $0x10,%zmm4,%zmm2,%zmm4 + vpslldq $4,%zmm4,%zmm4 + + vpternlogq $0x96,%zmm1,%zmm0,%zmm4 + + vmovdqu64 %zmm4,224(%rsi) + vshufi64x2 $0x00,%zmm4,%zmm4,%zmm3 + + vpclmulqdq $0x11,%zmm3,%zmm5,%zmm0 + vpclmulqdq $0x00,%zmm3,%zmm5,%zmm1 + vpclmulqdq $0x01,%zmm3,%zmm5,%zmm2 + vpclmulqdq $0x10,%zmm3,%zmm5,%zmm5 + vpxorq %zmm2,%zmm5,%zmm5 + + vpsrldq $8,%zmm5,%zmm2 + vpslldq $8,%zmm5,%zmm5 + vpxorq %zmm2,%zmm0,%zmm0 + vpxorq %zmm1,%zmm5,%zmm5 + + + + vmovdqu64 POLY2(%rip),%zmm2 + + vpclmulqdq $0x01,%zmm5,%zmm2,%zmm1 + vpslldq $8,%zmm1,%zmm1 + vpxorq %zmm1,%zmm5,%zmm5 + + + + vpclmulqdq $0x00,%zmm5,%zmm2,%zmm1 + vpsrldq $4,%zmm1,%zmm1 + vpclmulqdq $0x10,%zmm5,%zmm2,%zmm5 + vpslldq $4,%zmm5,%zmm5 + + vpternlogq $0x96,%zmm1,%zmm0,%zmm5 + + vmovdqu64 %zmm5,160(%rsi) + + vpclmulqdq $0x11,%zmm3,%zmm4,%zmm0 + vpclmulqdq $0x00,%zmm3,%zmm4,%zmm1 + vpclmulqdq $0x01,%zmm3,%zmm4,%zmm2 + vpclmulqdq $0x10,%zmm3,%zmm4,%zmm4 + vpxorq %zmm2,%zmm4,%zmm4 + + vpsrldq $8,%zmm4,%zmm2 + vpslldq $8,%zmm4,%zmm4 + vpxorq %zmm2,%zmm0,%zmm0 + vpxorq %zmm1,%zmm4,%zmm4 + + + + vmovdqu64 POLY2(%rip),%zmm2 + + vpclmulqdq $0x01,%zmm4,%zmm2,%zmm1 + vpslldq $8,%zmm1,%zmm1 + vpxorq %zmm1,%zmm4,%zmm4 + + + + vpclmulqdq $0x00,%zmm4,%zmm2,%zmm1 + vpsrldq $4,%zmm1,%zmm1 + vpclmulqdq $0x10,%zmm4,%zmm2,%zmm4 + vpslldq $4,%zmm4,%zmm4 + + vpternlogq $0x96,%zmm1,%zmm0,%zmm4 + + vmovdqu64 %zmm4,96(%rsi) + vzeroupper +L$abort_init: + .byte 0xf3,0xc3 + + +.globl _ossl_aes_gcm_setiv_avx512 + +.p2align 5 +_ossl_aes_gcm_setiv_avx512: + +L$setiv_seh_begin: +.byte 243,15,30,250 + pushq %rbx + +L$setiv_seh_push_rbx: + pushq %rbp + +L$setiv_seh_push_rbp: + pushq %r12 + +L$setiv_seh_push_r12: + pushq %r13 + +L$setiv_seh_push_r13: + pushq %r14 + +L$setiv_seh_push_r14: + pushq %r15 + +L$setiv_seh_push_r15: + + + + + + + + + + + leaq 0(%rsp),%rbp + +L$setiv_seh_setfp: + +L$setiv_seh_prolog_end: + subq $820,%rsp + andq $(-64),%rsp + cmpq $12,%rcx + je iv_len_12_init_IV + vpxor %xmm2,%xmm2,%xmm2 + movq %rdx,%r10 + movq %rcx,%r11 + orq %r11,%r11 + jz L$_CALC_AAD_done_1 + + xorq %rbx,%rbx + vmovdqa64 SHUF_MASK(%rip),%zmm16 + +L$_get_AAD_loop48x16_1: + cmpq $768,%r11 + jl L$_exit_AAD_loop48x16_1 + vmovdqu64 0(%r10),%zmm11 + vmovdqu64 64(%r10),%zmm3 + vmovdqu64 128(%r10),%zmm4 + vmovdqu64 192(%r10),%zmm5 + vpshufb %zmm16,%zmm11,%zmm11 + vpshufb %zmm16,%zmm3,%zmm3 + vpshufb %zmm16,%zmm4,%zmm4 + vpshufb %zmm16,%zmm5,%zmm5 + testq %rbx,%rbx + jnz L$_skip_hkeys_precomputation_2 + + vmovdqu64 288(%rsi),%zmm1 + vmovdqu64 %zmm1,704(%rsp) + + vmovdqu64 224(%rsi),%zmm9 + vmovdqu64 %zmm9,640(%rsp) + + + vshufi64x2 $0x00,%zmm9,%zmm9,%zmm9 + + vmovdqu64 160(%rsi),%zmm10 + vmovdqu64 %zmm10,576(%rsp) + + vmovdqu64 96(%rsi),%zmm12 + vmovdqu64 %zmm12,512(%rsp) + + vpclmulqdq $0x11,%zmm9,%zmm10,%zmm13 + vpclmulqdq $0x00,%zmm9,%zmm10,%zmm15 + vpclmulqdq $0x01,%zmm9,%zmm10,%zmm17 + vpclmulqdq $0x10,%zmm9,%zmm10,%zmm10 + vpxorq %zmm17,%zmm10,%zmm10 + + vpsrldq $8,%zmm10,%zmm17 + vpslldq $8,%zmm10,%zmm10 + vpxorq %zmm17,%zmm13,%zmm13 + vpxorq %zmm15,%zmm10,%zmm10 + + + + vmovdqu64 POLY2(%rip),%zmm17 + + vpclmulqdq $0x01,%zmm10,%zmm17,%zmm15 + vpslldq $8,%zmm15,%zmm15 + vpxorq %zmm15,%zmm10,%zmm10 + + + + vpclmulqdq $0x00,%zmm10,%zmm17,%zmm15 + vpsrldq $4,%zmm15,%zmm15 + vpclmulqdq $0x10,%zmm10,%zmm17,%zmm10 + vpslldq $4,%zmm10,%zmm10 + + vpternlogq $0x96,%zmm15,%zmm13,%zmm10 + + vmovdqu64 %zmm10,448(%rsp) + + vpclmulqdq $0x11,%zmm9,%zmm12,%zmm13 + vpclmulqdq $0x00,%zmm9,%zmm12,%zmm15 + vpclmulqdq $0x01,%zmm9,%zmm12,%zmm17 + vpclmulqdq $0x10,%zmm9,%zmm12,%zmm12 + vpxorq %zmm17,%zmm12,%zmm12 + + vpsrldq $8,%zmm12,%zmm17 + vpslldq $8,%zmm12,%zmm12 + vpxorq %zmm17,%zmm13,%zmm13 + vpxorq %zmm15,%zmm12,%zmm12 + + + + vmovdqu64 POLY2(%rip),%zmm17 + + vpclmulqdq $0x01,%zmm12,%zmm17,%zmm15 + vpslldq $8,%zmm15,%zmm15 + vpxorq %zmm15,%zmm12,%zmm12 + + + + vpclmulqdq $0x00,%zmm12,%zmm17,%zmm15 + vpsrldq $4,%zmm15,%zmm15 + vpclmulqdq $0x10,%zmm12,%zmm17,%zmm12 + vpslldq $4,%zmm12,%zmm12 + + vpternlogq $0x96,%zmm15,%zmm13,%zmm12 + + vmovdqu64 %zmm12,384(%rsp) + + vpclmulqdq $0x11,%zmm9,%zmm10,%zmm13 + vpclmulqdq $0x00,%zmm9,%zmm10,%zmm15 + vpclmulqdq $0x01,%zmm9,%zmm10,%zmm17 + vpclmulqdq $0x10,%zmm9,%zmm10,%zmm10 + vpxorq %zmm17,%zmm10,%zmm10 + + vpsrldq $8,%zmm10,%zmm17 + vpslldq $8,%zmm10,%zmm10 + vpxorq %zmm17,%zmm13,%zmm13 + vpxorq %zmm15,%zmm10,%zmm10 + + + + vmovdqu64 POLY2(%rip),%zmm17 + + vpclmulqdq $0x01,%zmm10,%zmm17,%zmm15 + vpslldq $8,%zmm15,%zmm15 + vpxorq %zmm15,%zmm10,%zmm10 + + + + vpclmulqdq $0x00,%zmm10,%zmm17,%zmm15 + vpsrldq $4,%zmm15,%zmm15 + vpclmulqdq $0x10,%zmm10,%zmm17,%zmm10 + vpslldq $4,%zmm10,%zmm10 + + vpternlogq $0x96,%zmm15,%zmm13,%zmm10 + + vmovdqu64 %zmm10,320(%rsp) + + vpclmulqdq $0x11,%zmm9,%zmm12,%zmm13 + vpclmulqdq $0x00,%zmm9,%zmm12,%zmm15 + vpclmulqdq $0x01,%zmm9,%zmm12,%zmm17 + vpclmulqdq $0x10,%zmm9,%zmm12,%zmm12 + vpxorq %zmm17,%zmm12,%zmm12 + + vpsrldq $8,%zmm12,%zmm17 + vpslldq $8,%zmm12,%zmm12 + vpxorq %zmm17,%zmm13,%zmm13 + vpxorq %zmm15,%zmm12,%zmm12 + + + + vmovdqu64 POLY2(%rip),%zmm17 + + vpclmulqdq $0x01,%zmm12,%zmm17,%zmm15 + vpslldq $8,%zmm15,%zmm15 + vpxorq %zmm15,%zmm12,%zmm12 + + + + vpclmulqdq $0x00,%zmm12,%zmm17,%zmm15 + vpsrldq $4,%zmm15,%zmm15 + vpclmulqdq $0x10,%zmm12,%zmm17,%zmm12 + vpslldq $4,%zmm12,%zmm12 + + vpternlogq $0x96,%zmm15,%zmm13,%zmm12 + + vmovdqu64 %zmm12,256(%rsp) + + vpclmulqdq $0x11,%zmm9,%zmm10,%zmm13 + vpclmulqdq $0x00,%zmm9,%zmm10,%zmm15 + vpclmulqdq $0x01,%zmm9,%zmm10,%zmm17 + vpclmulqdq $0x10,%zmm9,%zmm10,%zmm10 + vpxorq %zmm17,%zmm10,%zmm10 + + vpsrldq $8,%zmm10,%zmm17 + vpslldq $8,%zmm10,%zmm10 + vpxorq %zmm17,%zmm13,%zmm13 + vpxorq %zmm15,%zmm10,%zmm10 + + + + vmovdqu64 POLY2(%rip),%zmm17 + + vpclmulqdq $0x01,%zmm10,%zmm17,%zmm15 + vpslldq $8,%zmm15,%zmm15 + vpxorq %zmm15,%zmm10,%zmm10 + + + + vpclmulqdq $0x00,%zmm10,%zmm17,%zmm15 + vpsrldq $4,%zmm15,%zmm15 + vpclmulqdq $0x10,%zmm10,%zmm17,%zmm10 + vpslldq $4,%zmm10,%zmm10 + + vpternlogq $0x96,%zmm15,%zmm13,%zmm10 + + vmovdqu64 %zmm10,192(%rsp) + + vpclmulqdq $0x11,%zmm9,%zmm12,%zmm13 + vpclmulqdq $0x00,%zmm9,%zmm12,%zmm15 + vpclmulqdq $0x01,%zmm9,%zmm12,%zmm17 + vpclmulqdq $0x10,%zmm9,%zmm12,%zmm12 + vpxorq %zmm17,%zmm12,%zmm12 + + vpsrldq $8,%zmm12,%zmm17 + vpslldq $8,%zmm12,%zmm12 + vpxorq %zmm17,%zmm13,%zmm13 + vpxorq %zmm15,%zmm12,%zmm12 + + + + vmovdqu64 POLY2(%rip),%zmm17 + + vpclmulqdq $0x01,%zmm12,%zmm17,%zmm15 + vpslldq $8,%zmm15,%zmm15 + vpxorq %zmm15,%zmm12,%zmm12 + + + + vpclmulqdq $0x00,%zmm12,%zmm17,%zmm15 + vpsrldq $4,%zmm15,%zmm15 + vpclmulqdq $0x10,%zmm12,%zmm17,%zmm12 + vpslldq $4,%zmm12,%zmm12 + + vpternlogq $0x96,%zmm15,%zmm13,%zmm12 + + vmovdqu64 %zmm12,128(%rsp) + + vpclmulqdq $0x11,%zmm9,%zmm10,%zmm13 + vpclmulqdq $0x00,%zmm9,%zmm10,%zmm15 + vpclmulqdq $0x01,%zmm9,%zmm10,%zmm17 + vpclmulqdq $0x10,%zmm9,%zmm10,%zmm10 + vpxorq %zmm17,%zmm10,%zmm10 + + vpsrldq $8,%zmm10,%zmm17 + vpslldq $8,%zmm10,%zmm10 + vpxorq %zmm17,%zmm13,%zmm13 + vpxorq %zmm15,%zmm10,%zmm10 + + + + vmovdqu64 POLY2(%rip),%zmm17 + + vpclmulqdq $0x01,%zmm10,%zmm17,%zmm15 + vpslldq $8,%zmm15,%zmm15 + vpxorq %zmm15,%zmm10,%zmm10 + + + + vpclmulqdq $0x00,%zmm10,%zmm17,%zmm15 + vpsrldq $4,%zmm15,%zmm15 + vpclmulqdq $0x10,%zmm10,%zmm17,%zmm10 + vpslldq $4,%zmm10,%zmm10 + + vpternlogq $0x96,%zmm15,%zmm13,%zmm10 + + vmovdqu64 %zmm10,64(%rsp) + + vpclmulqdq $0x11,%zmm9,%zmm12,%zmm13 + vpclmulqdq $0x00,%zmm9,%zmm12,%zmm15 + vpclmulqdq $0x01,%zmm9,%zmm12,%zmm17 + vpclmulqdq $0x10,%zmm9,%zmm12,%zmm12 + vpxorq %zmm17,%zmm12,%zmm12 + + vpsrldq $8,%zmm12,%zmm17 + vpslldq $8,%zmm12,%zmm12 + vpxorq %zmm17,%zmm13,%zmm13 + vpxorq %zmm15,%zmm12,%zmm12 + + + + vmovdqu64 POLY2(%rip),%zmm17 + + vpclmulqdq $0x01,%zmm12,%zmm17,%zmm15 + vpslldq $8,%zmm15,%zmm15 + vpxorq %zmm15,%zmm12,%zmm12 + + + + vpclmulqdq $0x00,%zmm12,%zmm17,%zmm15 + vpsrldq $4,%zmm15,%zmm15 + vpclmulqdq $0x10,%zmm12,%zmm17,%zmm12 + vpslldq $4,%zmm12,%zmm12 + + vpternlogq $0x96,%zmm15,%zmm13,%zmm12 + + vmovdqu64 %zmm12,0(%rsp) +L$_skip_hkeys_precomputation_2: + movq $1,%rbx + vpxorq %zmm2,%zmm11,%zmm11 + vmovdqu64 0(%rsp),%zmm19 + vpclmulqdq $0x11,%zmm19,%zmm11,%zmm1 + vpclmulqdq $0x00,%zmm19,%zmm11,%zmm9 + vpclmulqdq $0x01,%zmm19,%zmm11,%zmm10 + vpclmulqdq $0x10,%zmm19,%zmm11,%zmm12 + vmovdqu64 64(%rsp),%zmm19 + vpclmulqdq $0x11,%zmm19,%zmm3,%zmm13 + vpclmulqdq $0x00,%zmm19,%zmm3,%zmm15 + vpclmulqdq $0x01,%zmm19,%zmm3,%zmm17 + vpclmulqdq $0x10,%zmm19,%zmm3,%zmm18 + vpxorq %zmm17,%zmm10,%zmm7 + vpxorq %zmm13,%zmm1,%zmm6 + vpxorq %zmm15,%zmm9,%zmm8 + vpternlogq $0x96,%zmm18,%zmm12,%zmm7 + vmovdqu64 128(%rsp),%zmm19 + vpclmulqdq $0x11,%zmm19,%zmm4,%zmm1 + vpclmulqdq $0x00,%zmm19,%zmm4,%zmm9 + vpclmulqdq $0x01,%zmm19,%zmm4,%zmm10 + vpclmulqdq $0x10,%zmm19,%zmm4,%zmm12 + vmovdqu64 192(%rsp),%zmm19 + vpclmulqdq $0x11,%zmm19,%zmm5,%zmm13 + vpclmulqdq $0x00,%zmm19,%zmm5,%zmm15 + vpclmulqdq $0x01,%zmm19,%zmm5,%zmm17 + vpclmulqdq $0x10,%zmm19,%zmm5,%zmm18 + + vpternlogq $0x96,%zmm17,%zmm10,%zmm7 + vpternlogq $0x96,%zmm13,%zmm1,%zmm6 + vpternlogq $0x96,%zmm15,%zmm9,%zmm8 + vpternlogq $0x96,%zmm18,%zmm12,%zmm7 + vmovdqu64 256(%r10),%zmm11 + vmovdqu64 320(%r10),%zmm3 + vmovdqu64 384(%r10),%zmm4 + vmovdqu64 448(%r10),%zmm5 + vpshufb %zmm16,%zmm11,%zmm11 + vpshufb %zmm16,%zmm3,%zmm3 + vpshufb %zmm16,%zmm4,%zmm4 + vpshufb %zmm16,%zmm5,%zmm5 + vmovdqu64 256(%rsp),%zmm19 + vpclmulqdq $0x11,%zmm19,%zmm11,%zmm1 + vpclmulqdq $0x00,%zmm19,%zmm11,%zmm9 + vpclmulqdq $0x01,%zmm19,%zmm11,%zmm10 + vpclmulqdq $0x10,%zmm19,%zmm11,%zmm12 + vmovdqu64 320(%rsp),%zmm19 + vpclmulqdq $0x11,%zmm19,%zmm3,%zmm13 + vpclmulqdq $0x00,%zmm19,%zmm3,%zmm15 + vpclmulqdq $0x01,%zmm19,%zmm3,%zmm17 + vpclmulqdq $0x10,%zmm19,%zmm3,%zmm18 + vpternlogq $0x96,%zmm17,%zmm10,%zmm7 + vpternlogq $0x96,%zmm13,%zmm1,%zmm6 + vpternlogq $0x96,%zmm15,%zmm9,%zmm8 + vpternlogq $0x96,%zmm18,%zmm12,%zmm7 + vmovdqu64 384(%rsp),%zmm19 + vpclmulqdq $0x11,%zmm19,%zmm4,%zmm1 + vpclmulqdq $0x00,%zmm19,%zmm4,%zmm9 + vpclmulqdq $0x01,%zmm19,%zmm4,%zmm10 + vpclmulqdq $0x10,%zmm19,%zmm4,%zmm12 + vmovdqu64 448(%rsp),%zmm19 + vpclmulqdq $0x11,%zmm19,%zmm5,%zmm13 + vpclmulqdq $0x00,%zmm19,%zmm5,%zmm15 + vpclmulqdq $0x01,%zmm19,%zmm5,%zmm17 + vpclmulqdq $0x10,%zmm19,%zmm5,%zmm18 + + vpternlogq $0x96,%zmm17,%zmm10,%zmm7 + vpternlogq $0x96,%zmm13,%zmm1,%zmm6 + vpternlogq $0x96,%zmm15,%zmm9,%zmm8 + vpternlogq $0x96,%zmm18,%zmm12,%zmm7 + vmovdqu64 512(%r10),%zmm11 + vmovdqu64 576(%r10),%zmm3 + vmovdqu64 640(%r10),%zmm4 + vmovdqu64 704(%r10),%zmm5 + vpshufb %zmm16,%zmm11,%zmm11 + vpshufb %zmm16,%zmm3,%zmm3 + vpshufb %zmm16,%zmm4,%zmm4 + vpshufb %zmm16,%zmm5,%zmm5 + vmovdqu64 512(%rsp),%zmm19 + vpclmulqdq $0x11,%zmm19,%zmm11,%zmm1 + vpclmulqdq $0x00,%zmm19,%zmm11,%zmm9 + vpclmulqdq $0x01,%zmm19,%zmm11,%zmm10 + vpclmulqdq $0x10,%zmm19,%zmm11,%zmm12 + vmovdqu64 576(%rsp),%zmm19 + vpclmulqdq $0x11,%zmm19,%zmm3,%zmm13 + vpclmulqdq $0x00,%zmm19,%zmm3,%zmm15 + vpclmulqdq $0x01,%zmm19,%zmm3,%zmm17 + vpclmulqdq $0x10,%zmm19,%zmm3,%zmm18 + vpternlogq $0x96,%zmm17,%zmm10,%zmm7 + vpternlogq $0x96,%zmm13,%zmm1,%zmm6 + vpternlogq $0x96,%zmm15,%zmm9,%zmm8 + vpternlogq $0x96,%zmm18,%zmm12,%zmm7 + vmovdqu64 640(%rsp),%zmm19 + vpclmulqdq $0x11,%zmm19,%zmm4,%zmm1 + vpclmulqdq $0x00,%zmm19,%zmm4,%zmm9 + vpclmulqdq $0x01,%zmm19,%zmm4,%zmm10 + vpclmulqdq $0x10,%zmm19,%zmm4,%zmm12 + vmovdqu64 704(%rsp),%zmm19 + vpclmulqdq $0x11,%zmm19,%zmm5,%zmm13 + vpclmulqdq $0x00,%zmm19,%zmm5,%zmm15 + vpclmulqdq $0x01,%zmm19,%zmm5,%zmm17 + vpclmulqdq $0x10,%zmm19,%zmm5,%zmm18 + + vpternlogq $0x96,%zmm17,%zmm10,%zmm7 + vpternlogq $0x96,%zmm13,%zmm1,%zmm6 + vpternlogq $0x96,%zmm15,%zmm9,%zmm8 + vpternlogq $0x96,%zmm18,%zmm12,%zmm7 + + vpsrldq $8,%zmm7,%zmm1 + vpslldq $8,%zmm7,%zmm9 + vpxorq %zmm1,%zmm6,%zmm6 + vpxorq %zmm9,%zmm8,%zmm8 + vextracti64x4 $1,%zmm6,%ymm1 + vpxorq %ymm1,%ymm6,%ymm6 + vextracti32x4 $1,%ymm6,%xmm1 + vpxorq %xmm1,%xmm6,%xmm6 + vextracti64x4 $1,%zmm8,%ymm9 + vpxorq %ymm9,%ymm8,%ymm8 + vextracti32x4 $1,%ymm8,%xmm9 + vpxorq %xmm9,%xmm8,%xmm8 + vmovdqa64 POLY2(%rip),%xmm10 + + + vpclmulqdq $0x01,%xmm8,%xmm10,%xmm1 + vpslldq $8,%xmm1,%xmm1 + vpxorq %xmm1,%xmm8,%xmm1 + + + vpclmulqdq $0x00,%xmm1,%xmm10,%xmm9 + vpsrldq $4,%xmm9,%xmm9 + vpclmulqdq $0x10,%xmm1,%xmm10,%xmm2 + vpslldq $4,%xmm2,%xmm2 + vpternlogq $0x96,%xmm6,%xmm9,%xmm2 + + subq $768,%r11 + je L$_CALC_AAD_done_1 + + addq $768,%r10 + jmp L$_get_AAD_loop48x16_1 + +L$_exit_AAD_loop48x16_1: + + cmpq $512,%r11 + jl L$_less_than_32x16_1 + + vmovdqu64 0(%r10),%zmm11 + vmovdqu64 64(%r10),%zmm3 + vmovdqu64 128(%r10),%zmm4 + vmovdqu64 192(%r10),%zmm5 + vpshufb %zmm16,%zmm11,%zmm11 + vpshufb %zmm16,%zmm3,%zmm3 + vpshufb %zmm16,%zmm4,%zmm4 + vpshufb %zmm16,%zmm5,%zmm5 + testq %rbx,%rbx + jnz L$_skip_hkeys_precomputation_3 + + vmovdqu64 288(%rsi),%zmm1 + vmovdqu64 %zmm1,704(%rsp) + + vmovdqu64 224(%rsi),%zmm9 + vmovdqu64 %zmm9,640(%rsp) + + + vshufi64x2 $0x00,%zmm9,%zmm9,%zmm9 + + vmovdqu64 160(%rsi),%zmm10 + vmovdqu64 %zmm10,576(%rsp) + + vmovdqu64 96(%rsi),%zmm12 + vmovdqu64 %zmm12,512(%rsp) + + vpclmulqdq $0x11,%zmm9,%zmm10,%zmm13 + vpclmulqdq $0x00,%zmm9,%zmm10,%zmm15 + vpclmulqdq $0x01,%zmm9,%zmm10,%zmm17 + vpclmulqdq $0x10,%zmm9,%zmm10,%zmm10 + vpxorq %zmm17,%zmm10,%zmm10 + + vpsrldq $8,%zmm10,%zmm17 + vpslldq $8,%zmm10,%zmm10 + vpxorq %zmm17,%zmm13,%zmm13 + vpxorq %zmm15,%zmm10,%zmm10 + + + + vmovdqu64 POLY2(%rip),%zmm17 + + vpclmulqdq $0x01,%zmm10,%zmm17,%zmm15 + vpslldq $8,%zmm15,%zmm15 + vpxorq %zmm15,%zmm10,%zmm10 + + + + vpclmulqdq $0x00,%zmm10,%zmm17,%zmm15 + vpsrldq $4,%zmm15,%zmm15 + vpclmulqdq $0x10,%zmm10,%zmm17,%zmm10 + vpslldq $4,%zmm10,%zmm10 + + vpternlogq $0x96,%zmm15,%zmm13,%zmm10 + + vmovdqu64 %zmm10,448(%rsp) + + vpclmulqdq $0x11,%zmm9,%zmm12,%zmm13 + vpclmulqdq $0x00,%zmm9,%zmm12,%zmm15 + vpclmulqdq $0x01,%zmm9,%zmm12,%zmm17 + vpclmulqdq $0x10,%zmm9,%zmm12,%zmm12 + vpxorq %zmm17,%zmm12,%zmm12 + + vpsrldq $8,%zmm12,%zmm17 + vpslldq $8,%zmm12,%zmm12 + vpxorq %zmm17,%zmm13,%zmm13 + vpxorq %zmm15,%zmm12,%zmm12 + + + + vmovdqu64 POLY2(%rip),%zmm17 + + vpclmulqdq $0x01,%zmm12,%zmm17,%zmm15 + vpslldq $8,%zmm15,%zmm15 + vpxorq %zmm15,%zmm12,%zmm12 + + + + vpclmulqdq $0x00,%zmm12,%zmm17,%zmm15 + vpsrldq $4,%zmm15,%zmm15 + vpclmulqdq $0x10,%zmm12,%zmm17,%zmm12 + vpslldq $4,%zmm12,%zmm12 + + vpternlogq $0x96,%zmm15,%zmm13,%zmm12 + + vmovdqu64 %zmm12,384(%rsp) + + vpclmulqdq $0x11,%zmm9,%zmm10,%zmm13 + vpclmulqdq $0x00,%zmm9,%zmm10,%zmm15 + vpclmulqdq $0x01,%zmm9,%zmm10,%zmm17 + vpclmulqdq $0x10,%zmm9,%zmm10,%zmm10 + vpxorq %zmm17,%zmm10,%zmm10 + + vpsrldq $8,%zmm10,%zmm17 + vpslldq $8,%zmm10,%zmm10 + vpxorq %zmm17,%zmm13,%zmm13 + vpxorq %zmm15,%zmm10,%zmm10 + + + + vmovdqu64 POLY2(%rip),%zmm17 + + vpclmulqdq $0x01,%zmm10,%zmm17,%zmm15 + vpslldq $8,%zmm15,%zmm15 + vpxorq %zmm15,%zmm10,%zmm10 + + + + vpclmulqdq $0x00,%zmm10,%zmm17,%zmm15 + vpsrldq $4,%zmm15,%zmm15 + vpclmulqdq $0x10,%zmm10,%zmm17,%zmm10 + vpslldq $4,%zmm10,%zmm10 + + vpternlogq $0x96,%zmm15,%zmm13,%zmm10 + + vmovdqu64 %zmm10,320(%rsp) + + vpclmulqdq $0x11,%zmm9,%zmm12,%zmm13 + vpclmulqdq $0x00,%zmm9,%zmm12,%zmm15 + vpclmulqdq $0x01,%zmm9,%zmm12,%zmm17 + vpclmulqdq $0x10,%zmm9,%zmm12,%zmm12 + vpxorq %zmm17,%zmm12,%zmm12 + + vpsrldq $8,%zmm12,%zmm17 + vpslldq $8,%zmm12,%zmm12 + vpxorq %zmm17,%zmm13,%zmm13 + vpxorq %zmm15,%zmm12,%zmm12 + + + + vmovdqu64 POLY2(%rip),%zmm17 + + vpclmulqdq $0x01,%zmm12,%zmm17,%zmm15 + vpslldq $8,%zmm15,%zmm15 + vpxorq %zmm15,%zmm12,%zmm12 + + + + vpclmulqdq $0x00,%zmm12,%zmm17,%zmm15 + vpsrldq $4,%zmm15,%zmm15 + vpclmulqdq $0x10,%zmm12,%zmm17,%zmm12 + vpslldq $4,%zmm12,%zmm12 + + vpternlogq $0x96,%zmm15,%zmm13,%zmm12 + + vmovdqu64 %zmm12,256(%rsp) +L$_skip_hkeys_precomputation_3: + movq $1,%rbx + vpxorq %zmm2,%zmm11,%zmm11 + vmovdqu64 256(%rsp),%zmm19 + vpclmulqdq $0x11,%zmm19,%zmm11,%zmm1 + vpclmulqdq $0x00,%zmm19,%zmm11,%zmm9 + vpclmulqdq $0x01,%zmm19,%zmm11,%zmm10 + vpclmulqdq $0x10,%zmm19,%zmm11,%zmm12 + vmovdqu64 320(%rsp),%zmm19 + vpclmulqdq $0x11,%zmm19,%zmm3,%zmm13 + vpclmulqdq $0x00,%zmm19,%zmm3,%zmm15 + vpclmulqdq $0x01,%zmm19,%zmm3,%zmm17 + vpclmulqdq $0x10,%zmm19,%zmm3,%zmm18 + vpxorq %zmm17,%zmm10,%zmm7 + vpxorq %zmm13,%zmm1,%zmm6 + vpxorq %zmm15,%zmm9,%zmm8 + vpternlogq $0x96,%zmm18,%zmm12,%zmm7 + vmovdqu64 384(%rsp),%zmm19 + vpclmulqdq $0x11,%zmm19,%zmm4,%zmm1 + vpclmulqdq $0x00,%zmm19,%zmm4,%zmm9 + vpclmulqdq $0x01,%zmm19,%zmm4,%zmm10 + vpclmulqdq $0x10,%zmm19,%zmm4,%zmm12 + vmovdqu64 448(%rsp),%zmm19 + vpclmulqdq $0x11,%zmm19,%zmm5,%zmm13 + vpclmulqdq $0x00,%zmm19,%zmm5,%zmm15 + vpclmulqdq $0x01,%zmm19,%zmm5,%zmm17 + vpclmulqdq $0x10,%zmm19,%zmm5,%zmm18 + + vpternlogq $0x96,%zmm17,%zmm10,%zmm7 + vpternlogq $0x96,%zmm13,%zmm1,%zmm6 + vpternlogq $0x96,%zmm15,%zmm9,%zmm8 + vpternlogq $0x96,%zmm18,%zmm12,%zmm7 + vmovdqu64 256(%r10),%zmm11 + vmovdqu64 320(%r10),%zmm3 + vmovdqu64 384(%r10),%zmm4 + vmovdqu64 448(%r10),%zmm5 + vpshufb %zmm16,%zmm11,%zmm11 + vpshufb %zmm16,%zmm3,%zmm3 + vpshufb %zmm16,%zmm4,%zmm4 + vpshufb %zmm16,%zmm5,%zmm5 + vmovdqu64 512(%rsp),%zmm19 + vpclmulqdq $0x11,%zmm19,%zmm11,%zmm1 + vpclmulqdq $0x00,%zmm19,%zmm11,%zmm9 + vpclmulqdq $0x01,%zmm19,%zmm11,%zmm10 + vpclmulqdq $0x10,%zmm19,%zmm11,%zmm12 + vmovdqu64 576(%rsp),%zmm19 + vpclmulqdq $0x11,%zmm19,%zmm3,%zmm13 + vpclmulqdq $0x00,%zmm19,%zmm3,%zmm15 + vpclmulqdq $0x01,%zmm19,%zmm3,%zmm17 + vpclmulqdq $0x10,%zmm19,%zmm3,%zmm18 + vpternlogq $0x96,%zmm17,%zmm10,%zmm7 + vpternlogq $0x96,%zmm13,%zmm1,%zmm6 + vpternlogq $0x96,%zmm15,%zmm9,%zmm8 + vpternlogq $0x96,%zmm18,%zmm12,%zmm7 + vmovdqu64 640(%rsp),%zmm19 + vpclmulqdq $0x11,%zmm19,%zmm4,%zmm1 + vpclmulqdq $0x00,%zmm19,%zmm4,%zmm9 + vpclmulqdq $0x01,%zmm19,%zmm4,%zmm10 + vpclmulqdq $0x10,%zmm19,%zmm4,%zmm12 + vmovdqu64 704(%rsp),%zmm19 + vpclmulqdq $0x11,%zmm19,%zmm5,%zmm13 + vpclmulqdq $0x00,%zmm19,%zmm5,%zmm15 + vpclmulqdq $0x01,%zmm19,%zmm5,%zmm17 + vpclmulqdq $0x10,%zmm19,%zmm5,%zmm18 + + vpternlogq $0x96,%zmm17,%zmm10,%zmm7 + vpternlogq $0x96,%zmm13,%zmm1,%zmm6 + vpternlogq $0x96,%zmm15,%zmm9,%zmm8 + vpternlogq $0x96,%zmm18,%zmm12,%zmm7 + + vpsrldq $8,%zmm7,%zmm1 + vpslldq $8,%zmm7,%zmm9 + vpxorq %zmm1,%zmm6,%zmm6 + vpxorq %zmm9,%zmm8,%zmm8 + vextracti64x4 $1,%zmm6,%ymm1 + vpxorq %ymm1,%ymm6,%ymm6 + vextracti32x4 $1,%ymm6,%xmm1 + vpxorq %xmm1,%xmm6,%xmm6 + vextracti64x4 $1,%zmm8,%ymm9 + vpxorq %ymm9,%ymm8,%ymm8 + vextracti32x4 $1,%ymm8,%xmm9 + vpxorq %xmm9,%xmm8,%xmm8 + vmovdqa64 POLY2(%rip),%xmm10 + + + vpclmulqdq $0x01,%xmm8,%xmm10,%xmm1 + vpslldq $8,%xmm1,%xmm1 + vpxorq %xmm1,%xmm8,%xmm1 + + + vpclmulqdq $0x00,%xmm1,%xmm10,%xmm9 + vpsrldq $4,%xmm9,%xmm9 + vpclmulqdq $0x10,%xmm1,%xmm10,%xmm2 + vpslldq $4,%xmm2,%xmm2 + vpternlogq $0x96,%xmm6,%xmm9,%xmm2 + + subq $512,%r11 + je L$_CALC_AAD_done_1 + + addq $512,%r10 + jmp L$_less_than_16x16_1 + +L$_less_than_32x16_1: + cmpq $256,%r11 + jl L$_less_than_16x16_1 + + vmovdqu64 0(%r10),%zmm11 + vmovdqu64 64(%r10),%zmm3 + vmovdqu64 128(%r10),%zmm4 + vmovdqu64 192(%r10),%zmm5 + vpshufb %zmm16,%zmm11,%zmm11 + vpshufb %zmm16,%zmm3,%zmm3 + vpshufb %zmm16,%zmm4,%zmm4 + vpshufb %zmm16,%zmm5,%zmm5 + vpxorq %zmm2,%zmm11,%zmm11 + vmovdqu64 96(%rsi),%zmm19 + vpclmulqdq $0x11,%zmm19,%zmm11,%zmm1 + vpclmulqdq $0x00,%zmm19,%zmm11,%zmm9 + vpclmulqdq $0x01,%zmm19,%zmm11,%zmm10 + vpclmulqdq $0x10,%zmm19,%zmm11,%zmm12 + vmovdqu64 160(%rsi),%zmm19 + vpclmulqdq $0x11,%zmm19,%zmm3,%zmm13 + vpclmulqdq $0x00,%zmm19,%zmm3,%zmm15 + vpclmulqdq $0x01,%zmm19,%zmm3,%zmm17 + vpclmulqdq $0x10,%zmm19,%zmm3,%zmm18 + vpxorq %zmm17,%zmm10,%zmm7 + vpxorq %zmm13,%zmm1,%zmm6 + vpxorq %zmm15,%zmm9,%zmm8 + vpternlogq $0x96,%zmm18,%zmm12,%zmm7 + vmovdqu64 224(%rsi),%zmm19 + vpclmulqdq $0x11,%zmm19,%zmm4,%zmm1 + vpclmulqdq $0x00,%zmm19,%zmm4,%zmm9 + vpclmulqdq $0x01,%zmm19,%zmm4,%zmm10 + vpclmulqdq $0x10,%zmm19,%zmm4,%zmm12 + vmovdqu64 288(%rsi),%zmm19 + vpclmulqdq $0x11,%zmm19,%zmm5,%zmm13 + vpclmulqdq $0x00,%zmm19,%zmm5,%zmm15 + vpclmulqdq $0x01,%zmm19,%zmm5,%zmm17 + vpclmulqdq $0x10,%zmm19,%zmm5,%zmm18 + + vpternlogq $0x96,%zmm17,%zmm10,%zmm7 + vpternlogq $0x96,%zmm13,%zmm1,%zmm6 + vpternlogq $0x96,%zmm15,%zmm9,%zmm8 + vpternlogq $0x96,%zmm18,%zmm12,%zmm7 + + vpsrldq $8,%zmm7,%zmm1 + vpslldq $8,%zmm7,%zmm9 + vpxorq %zmm1,%zmm6,%zmm6 + vpxorq %zmm9,%zmm8,%zmm8 + vextracti64x4 $1,%zmm6,%ymm1 + vpxorq %ymm1,%ymm6,%ymm6 + vextracti32x4 $1,%ymm6,%xmm1 + vpxorq %xmm1,%xmm6,%xmm6 + vextracti64x4 $1,%zmm8,%ymm9 + vpxorq %ymm9,%ymm8,%ymm8 + vextracti32x4 $1,%ymm8,%xmm9 + vpxorq %xmm9,%xmm8,%xmm8 + vmovdqa64 POLY2(%rip),%xmm10 + + + vpclmulqdq $0x01,%xmm8,%xmm10,%xmm1 + vpslldq $8,%xmm1,%xmm1 + vpxorq %xmm1,%xmm8,%xmm1 + + + vpclmulqdq $0x00,%xmm1,%xmm10,%xmm9 + vpsrldq $4,%xmm9,%xmm9 + vpclmulqdq $0x10,%xmm1,%xmm10,%xmm2 + vpslldq $4,%xmm2,%xmm2 + vpternlogq $0x96,%xmm6,%xmm9,%xmm2 + + subq $256,%r11 + je L$_CALC_AAD_done_1 + + addq $256,%r10 + +L$_less_than_16x16_1: + + leaq byte64_len_to_mask_table(%rip),%r12 + leaq (%r12,%r11,8),%r12 + + + addl $15,%r11d + shrl $4,%r11d + cmpl $2,%r11d + jb L$_AAD_blocks_1_1 + je L$_AAD_blocks_2_1 + cmpl $4,%r11d + jb L$_AAD_blocks_3_1 + je L$_AAD_blocks_4_1 + cmpl $6,%r11d + jb L$_AAD_blocks_5_1 + je L$_AAD_blocks_6_1 + cmpl $8,%r11d + jb L$_AAD_blocks_7_1 + je L$_AAD_blocks_8_1 + cmpl $10,%r11d + jb L$_AAD_blocks_9_1 + je L$_AAD_blocks_10_1 + cmpl $12,%r11d + jb L$_AAD_blocks_11_1 + je L$_AAD_blocks_12_1 + cmpl $14,%r11d + jb L$_AAD_blocks_13_1 + je L$_AAD_blocks_14_1 + cmpl $15,%r11d + je L$_AAD_blocks_15_1 +L$_AAD_blocks_16_1: + subq $1536,%r12 + kmovq (%r12),%k1 + vmovdqu8 0(%r10),%zmm11 + vmovdqu8 64(%r10),%zmm3 + vmovdqu8 128(%r10),%zmm4 + vmovdqu8 192(%r10),%zmm5{%k1}{z} + vpshufb %zmm16,%zmm11,%zmm11 + vpshufb %zmm16,%zmm3,%zmm3 + vpshufb %zmm16,%zmm4,%zmm4 + vpshufb %zmm16,%zmm5,%zmm5 + vpxorq %zmm2,%zmm11,%zmm11 + vmovdqu64 96(%rsi),%zmm15 + vpclmulqdq $0x11,%zmm15,%zmm11,%zmm1 + vpclmulqdq $0x00,%zmm15,%zmm11,%zmm6 + vpclmulqdq $0x01,%zmm15,%zmm11,%zmm7 + vpclmulqdq $0x10,%zmm15,%zmm11,%zmm8 + vmovdqu64 160(%rsi),%zmm15 + vpclmulqdq $0x11,%zmm15,%zmm3,%zmm9 + vpclmulqdq $0x00,%zmm15,%zmm3,%zmm10 + vpclmulqdq $0x01,%zmm15,%zmm3,%zmm12 + vpclmulqdq $0x10,%zmm15,%zmm3,%zmm13 + vmovdqu64 224(%rsi),%zmm15 + vpclmulqdq $0x11,%zmm15,%zmm4,%zmm11 + vpclmulqdq $0x00,%zmm15,%zmm4,%zmm3 + vpternlogq $0x96,%zmm9,%zmm11,%zmm1 + vpternlogq $0x96,%zmm10,%zmm3,%zmm6 + vpclmulqdq $0x01,%zmm15,%zmm4,%zmm11 + vpclmulqdq $0x10,%zmm15,%zmm4,%zmm3 + vpternlogq $0x96,%zmm12,%zmm11,%zmm7 + vpternlogq $0x96,%zmm13,%zmm3,%zmm8 + vmovdqu64 288(%rsi),%zmm15 + vpclmulqdq $0x11,%zmm15,%zmm5,%zmm9 + vpclmulqdq $0x00,%zmm15,%zmm5,%zmm10 + vpclmulqdq $0x01,%zmm15,%zmm5,%zmm12 + vpclmulqdq $0x10,%zmm15,%zmm5,%zmm13 + vpxorq %zmm9,%zmm1,%zmm9 + vpxorq %zmm10,%zmm6,%zmm10 + vpxorq %zmm12,%zmm7,%zmm12 + vpxorq %zmm13,%zmm8,%zmm13 + + vpxorq %zmm13,%zmm12,%zmm12 + vpsrldq $8,%zmm12,%zmm7 + vpslldq $8,%zmm12,%zmm8 + vpxorq %zmm7,%zmm9,%zmm1 + vpxorq %zmm8,%zmm10,%zmm6 + vextracti64x4 $1,%zmm1,%ymm12 + vpxorq %ymm12,%ymm1,%ymm1 + vextracti32x4 $1,%ymm1,%xmm12 + vpxorq %xmm12,%xmm1,%xmm1 + vextracti64x4 $1,%zmm6,%ymm13 + vpxorq %ymm13,%ymm6,%ymm6 + vextracti32x4 $1,%ymm6,%xmm13 + vpxorq %xmm13,%xmm6,%xmm6 + vmovdqa64 POLY2(%rip),%xmm15 + + + vpclmulqdq $0x01,%xmm6,%xmm15,%xmm7 + vpslldq $8,%xmm7,%xmm7 + vpxorq %xmm7,%xmm6,%xmm7 + + + vpclmulqdq $0x00,%xmm7,%xmm15,%xmm8 + vpsrldq $4,%xmm8,%xmm8 + vpclmulqdq $0x10,%xmm7,%xmm15,%xmm2 + vpslldq $4,%xmm2,%xmm2 + vpternlogq $0x96,%xmm1,%xmm8,%xmm2 + + jmp L$_CALC_AAD_done_1 +L$_AAD_blocks_15_1: + subq $1536,%r12 + kmovq (%r12),%k1 + vmovdqu8 0(%r10),%zmm11 + vmovdqu8 64(%r10),%zmm3 + vmovdqu8 128(%r10),%zmm4 + vmovdqu8 192(%r10),%zmm5{%k1}{z} + vpshufb %zmm16,%zmm11,%zmm11 + vpshufb %zmm16,%zmm3,%zmm3 + vpshufb %zmm16,%zmm4,%zmm4 + vpshufb %zmm16,%zmm5,%zmm5 + vpxorq %zmm2,%zmm11,%zmm11 + vmovdqu64 112(%rsi),%zmm15 + vpclmulqdq $0x11,%zmm15,%zmm11,%zmm1 + vpclmulqdq $0x00,%zmm15,%zmm11,%zmm6 + vpclmulqdq $0x01,%zmm15,%zmm11,%zmm7 + vpclmulqdq $0x10,%zmm15,%zmm11,%zmm8 + vmovdqu64 176(%rsi),%zmm15 + vpclmulqdq $0x11,%zmm15,%zmm3,%zmm9 + vpclmulqdq $0x00,%zmm15,%zmm3,%zmm10 + vpclmulqdq $0x01,%zmm15,%zmm3,%zmm12 + vpclmulqdq $0x10,%zmm15,%zmm3,%zmm13 + vmovdqu64 240(%rsi),%zmm15 + vpclmulqdq $0x11,%zmm15,%zmm4,%zmm11 + vpclmulqdq $0x00,%zmm15,%zmm4,%zmm3 + vpternlogq $0x96,%zmm1,%zmm11,%zmm9 + vpternlogq $0x96,%zmm6,%zmm3,%zmm10 + vpclmulqdq $0x01,%zmm15,%zmm4,%zmm11 + vpclmulqdq $0x10,%zmm15,%zmm4,%zmm3 + vpternlogq $0x96,%zmm7,%zmm11,%zmm12 + vpternlogq $0x96,%zmm8,%zmm3,%zmm13 + vmovdqu64 304(%rsi),%ymm15 + vinserti64x2 $2,336(%rsi),%zmm15,%zmm15 + vpclmulqdq $0x01,%zmm15,%zmm5,%zmm7 + vpclmulqdq $0x10,%zmm15,%zmm5,%zmm8 + vpclmulqdq $0x11,%zmm15,%zmm5,%zmm1 + vpclmulqdq $0x00,%zmm15,%zmm5,%zmm6 + + vpxorq %zmm12,%zmm7,%zmm7 + vpxorq %zmm13,%zmm8,%zmm8 + vpxorq %zmm9,%zmm1,%zmm1 + vpxorq %zmm10,%zmm6,%zmm6 + + vpxorq %zmm8,%zmm7,%zmm7 + vpsrldq $8,%zmm7,%zmm12 + vpslldq $8,%zmm7,%zmm13 + vpxorq %zmm12,%zmm1,%zmm1 + vpxorq %zmm13,%zmm6,%zmm6 + vextracti64x4 $1,%zmm1,%ymm12 + vpxorq %ymm12,%ymm1,%ymm1 + vextracti32x4 $1,%ymm1,%xmm12 + vpxorq %xmm12,%xmm1,%xmm1 + vextracti64x4 $1,%zmm6,%ymm13 + vpxorq %ymm13,%ymm6,%ymm6 + vextracti32x4 $1,%ymm6,%xmm13 + vpxorq %xmm13,%xmm6,%xmm6 + vmovdqa64 POLY2(%rip),%xmm15 + + + vpclmulqdq $0x01,%xmm6,%xmm15,%xmm7 + vpslldq $8,%xmm7,%xmm7 + vpxorq %xmm7,%xmm6,%xmm7 + + + vpclmulqdq $0x00,%xmm7,%xmm15,%xmm8 + vpsrldq $4,%xmm8,%xmm8 + vpclmulqdq $0x10,%xmm7,%xmm15,%xmm2 + vpslldq $4,%xmm2,%xmm2 + vpternlogq $0x96,%xmm1,%xmm8,%xmm2 + + jmp L$_CALC_AAD_done_1 +L$_AAD_blocks_14_1: + subq $1536,%r12 + kmovq (%r12),%k1 + vmovdqu8 0(%r10),%zmm11 + vmovdqu8 64(%r10),%zmm3 + vmovdqu8 128(%r10),%zmm4 + vmovdqu8 192(%r10),%ymm5{%k1}{z} + vpshufb %zmm16,%zmm11,%zmm11 + vpshufb %zmm16,%zmm3,%zmm3 + vpshufb %zmm16,%zmm4,%zmm4 + vpshufb %ymm16,%ymm5,%ymm5 + vpxorq %zmm2,%zmm11,%zmm11 + vmovdqu64 128(%rsi),%zmm15 + vpclmulqdq $0x11,%zmm15,%zmm11,%zmm1 + vpclmulqdq $0x00,%zmm15,%zmm11,%zmm6 + vpclmulqdq $0x01,%zmm15,%zmm11,%zmm7 + vpclmulqdq $0x10,%zmm15,%zmm11,%zmm8 + vmovdqu64 192(%rsi),%zmm15 + vpclmulqdq $0x11,%zmm15,%zmm3,%zmm9 + vpclmulqdq $0x00,%zmm15,%zmm3,%zmm10 + vpclmulqdq $0x01,%zmm15,%zmm3,%zmm12 + vpclmulqdq $0x10,%zmm15,%zmm3,%zmm13 + vmovdqu64 256(%rsi),%zmm15 + vpclmulqdq $0x11,%zmm15,%zmm4,%zmm11 + vpclmulqdq $0x00,%zmm15,%zmm4,%zmm3 + vpternlogq $0x96,%zmm1,%zmm11,%zmm9 + vpternlogq $0x96,%zmm6,%zmm3,%zmm10 + vpclmulqdq $0x01,%zmm15,%zmm4,%zmm11 + vpclmulqdq $0x10,%zmm15,%zmm4,%zmm3 + vpternlogq $0x96,%zmm7,%zmm11,%zmm12 + vpternlogq $0x96,%zmm8,%zmm3,%zmm13 + vmovdqu64 320(%rsi),%ymm15 + vpclmulqdq $0x01,%ymm15,%ymm5,%ymm7 + vpclmulqdq $0x10,%ymm15,%ymm5,%ymm8 + vpclmulqdq $0x11,%ymm15,%ymm5,%ymm1 + vpclmulqdq $0x00,%ymm15,%ymm5,%ymm6 + + vpxorq %zmm12,%zmm7,%zmm7 + vpxorq %zmm13,%zmm8,%zmm8 + vpxorq %zmm9,%zmm1,%zmm1 + vpxorq %zmm10,%zmm6,%zmm6 + + vpxorq %zmm8,%zmm7,%zmm7 + vpsrldq $8,%zmm7,%zmm12 + vpslldq $8,%zmm7,%zmm13 + vpxorq %zmm12,%zmm1,%zmm1 + vpxorq %zmm13,%zmm6,%zmm6 + vextracti64x4 $1,%zmm1,%ymm12 + vpxorq %ymm12,%ymm1,%ymm1 + vextracti32x4 $1,%ymm1,%xmm12 + vpxorq %xmm12,%xmm1,%xmm1 + vextracti64x4 $1,%zmm6,%ymm13 + vpxorq %ymm13,%ymm6,%ymm6 + vextracti32x4 $1,%ymm6,%xmm13 + vpxorq %xmm13,%xmm6,%xmm6 + vmovdqa64 POLY2(%rip),%xmm15 + + + vpclmulqdq $0x01,%xmm6,%xmm15,%xmm7 + vpslldq $8,%xmm7,%xmm7 + vpxorq %xmm7,%xmm6,%xmm7 + + + vpclmulqdq $0x00,%xmm7,%xmm15,%xmm8 + vpsrldq $4,%xmm8,%xmm8 + vpclmulqdq $0x10,%xmm7,%xmm15,%xmm2 + vpslldq $4,%xmm2,%xmm2 + vpternlogq $0x96,%xmm1,%xmm8,%xmm2 + + jmp L$_CALC_AAD_done_1 +L$_AAD_blocks_13_1: + subq $1536,%r12 + kmovq (%r12),%k1 + vmovdqu8 0(%r10),%zmm11 + vmovdqu8 64(%r10),%zmm3 + vmovdqu8 128(%r10),%zmm4 + vmovdqu8 192(%r10),%xmm5{%k1}{z} + vpshufb %zmm16,%zmm11,%zmm11 + vpshufb %zmm16,%zmm3,%zmm3 + vpshufb %zmm16,%zmm4,%zmm4 + vpshufb %xmm16,%xmm5,%xmm5 + vpxorq %zmm2,%zmm11,%zmm11 + vmovdqu64 144(%rsi),%zmm15 + vpclmulqdq $0x11,%zmm15,%zmm11,%zmm1 + vpclmulqdq $0x00,%zmm15,%zmm11,%zmm6 + vpclmulqdq $0x01,%zmm15,%zmm11,%zmm7 + vpclmulqdq $0x10,%zmm15,%zmm11,%zmm8 + vmovdqu64 208(%rsi),%zmm15 + vpclmulqdq $0x11,%zmm15,%zmm3,%zmm9 + vpclmulqdq $0x00,%zmm15,%zmm3,%zmm10 + vpclmulqdq $0x01,%zmm15,%zmm3,%zmm12 + vpclmulqdq $0x10,%zmm15,%zmm3,%zmm13 + vmovdqu64 272(%rsi),%zmm15 + vpclmulqdq $0x11,%zmm15,%zmm4,%zmm11 + vpclmulqdq $0x00,%zmm15,%zmm4,%zmm3 + vpternlogq $0x96,%zmm1,%zmm11,%zmm9 + vpternlogq $0x96,%zmm6,%zmm3,%zmm10 + vpclmulqdq $0x01,%zmm15,%zmm4,%zmm11 + vpclmulqdq $0x10,%zmm15,%zmm4,%zmm3 + vpternlogq $0x96,%zmm7,%zmm11,%zmm12 + vpternlogq $0x96,%zmm8,%zmm3,%zmm13 + vmovdqu64 336(%rsi),%xmm15 + vpclmulqdq $0x01,%xmm15,%xmm5,%xmm7 + vpclmulqdq $0x10,%xmm15,%xmm5,%xmm8 + vpclmulqdq $0x11,%xmm15,%xmm5,%xmm1 + vpclmulqdq $0x00,%xmm15,%xmm5,%xmm6 + + vpxorq %zmm12,%zmm7,%zmm7 + vpxorq %zmm13,%zmm8,%zmm8 + vpxorq %zmm9,%zmm1,%zmm1 + vpxorq %zmm10,%zmm6,%zmm6 + + vpxorq %zmm8,%zmm7,%zmm7 + vpsrldq $8,%zmm7,%zmm12 + vpslldq $8,%zmm7,%zmm13 + vpxorq %zmm12,%zmm1,%zmm1 + vpxorq %zmm13,%zmm6,%zmm6 + vextracti64x4 $1,%zmm1,%ymm12 + vpxorq %ymm12,%ymm1,%ymm1 + vextracti32x4 $1,%ymm1,%xmm12 + vpxorq %xmm12,%xmm1,%xmm1 + vextracti64x4 $1,%zmm6,%ymm13 + vpxorq %ymm13,%ymm6,%ymm6 + vextracti32x4 $1,%ymm6,%xmm13 + vpxorq %xmm13,%xmm6,%xmm6 + vmovdqa64 POLY2(%rip),%xmm15 + + + vpclmulqdq $0x01,%xmm6,%xmm15,%xmm7 + vpslldq $8,%xmm7,%xmm7 + vpxorq %xmm7,%xmm6,%xmm7 + + + vpclmulqdq $0x00,%xmm7,%xmm15,%xmm8 + vpsrldq $4,%xmm8,%xmm8 + vpclmulqdq $0x10,%xmm7,%xmm15,%xmm2 + vpslldq $4,%xmm2,%xmm2 + vpternlogq $0x96,%xmm1,%xmm8,%xmm2 + + jmp L$_CALC_AAD_done_1 +L$_AAD_blocks_12_1: + subq $1024,%r12 + kmovq (%r12),%k1 + vmovdqu8 0(%r10),%zmm11 + vmovdqu8 64(%r10),%zmm3 + vmovdqu8 128(%r10),%zmm4{%k1}{z} + vpshufb %zmm16,%zmm11,%zmm11 + vpshufb %zmm16,%zmm3,%zmm3 + vpshufb %zmm16,%zmm4,%zmm4 + vpxorq %zmm2,%zmm11,%zmm11 + vmovdqu64 160(%rsi),%zmm15 + vpclmulqdq $0x11,%zmm15,%zmm11,%zmm1 + vpclmulqdq $0x00,%zmm15,%zmm11,%zmm6 + vpclmulqdq $0x01,%zmm15,%zmm11,%zmm7 + vpclmulqdq $0x10,%zmm15,%zmm11,%zmm8 + vmovdqu64 224(%rsi),%zmm15 + vpclmulqdq $0x11,%zmm15,%zmm3,%zmm9 + vpclmulqdq $0x00,%zmm15,%zmm3,%zmm10 + vpclmulqdq $0x01,%zmm15,%zmm3,%zmm12 + vpclmulqdq $0x10,%zmm15,%zmm3,%zmm13 + vmovdqu64 288(%rsi),%zmm15 + vpclmulqdq $0x11,%zmm15,%zmm4,%zmm11 + vpclmulqdq $0x00,%zmm15,%zmm4,%zmm3 + vpternlogq $0x96,%zmm1,%zmm11,%zmm9 + vpternlogq $0x96,%zmm6,%zmm3,%zmm10 + vpclmulqdq $0x01,%zmm15,%zmm4,%zmm11 + vpclmulqdq $0x10,%zmm15,%zmm4,%zmm3 + vpternlogq $0x96,%zmm7,%zmm11,%zmm12 + vpternlogq $0x96,%zmm8,%zmm3,%zmm13 + + vpxorq %zmm13,%zmm12,%zmm12 + vpsrldq $8,%zmm12,%zmm7 + vpslldq $8,%zmm12,%zmm8 + vpxorq %zmm7,%zmm9,%zmm1 + vpxorq %zmm8,%zmm10,%zmm6 + vextracti64x4 $1,%zmm1,%ymm12 + vpxorq %ymm12,%ymm1,%ymm1 + vextracti32x4 $1,%ymm1,%xmm12 + vpxorq %xmm12,%xmm1,%xmm1 + vextracti64x4 $1,%zmm6,%ymm13 + vpxorq %ymm13,%ymm6,%ymm6 + vextracti32x4 $1,%ymm6,%xmm13 + vpxorq %xmm13,%xmm6,%xmm6 + vmovdqa64 POLY2(%rip),%xmm15 + + + vpclmulqdq $0x01,%xmm6,%xmm15,%xmm7 + vpslldq $8,%xmm7,%xmm7 + vpxorq %xmm7,%xmm6,%xmm7 + + + vpclmulqdq $0x00,%xmm7,%xmm15,%xmm8 + vpsrldq $4,%xmm8,%xmm8 + vpclmulqdq $0x10,%xmm7,%xmm15,%xmm2 + vpslldq $4,%xmm2,%xmm2 + vpternlogq $0x96,%xmm1,%xmm8,%xmm2 + + jmp L$_CALC_AAD_done_1 +L$_AAD_blocks_11_1: + subq $1024,%r12 + kmovq (%r12),%k1 + vmovdqu8 0(%r10),%zmm11 + vmovdqu8 64(%r10),%zmm3 + vmovdqu8 128(%r10),%zmm4{%k1}{z} + vpshufb %zmm16,%zmm11,%zmm11 + vpshufb %zmm16,%zmm3,%zmm3 + vpshufb %zmm16,%zmm4,%zmm4 + vpxorq %zmm2,%zmm11,%zmm11 + vmovdqu64 176(%rsi),%zmm15 + vpclmulqdq $0x11,%zmm15,%zmm11,%zmm1 + vpclmulqdq $0x00,%zmm15,%zmm11,%zmm6 + vpclmulqdq $0x01,%zmm15,%zmm11,%zmm7 + vpclmulqdq $0x10,%zmm15,%zmm11,%zmm8 + vmovdqu64 240(%rsi),%zmm15 + vpclmulqdq $0x11,%zmm15,%zmm3,%zmm9 + vpclmulqdq $0x00,%zmm15,%zmm3,%zmm10 + vpclmulqdq $0x01,%zmm15,%zmm3,%zmm12 + vpclmulqdq $0x10,%zmm15,%zmm3,%zmm13 + vpxorq %zmm9,%zmm1,%zmm9 + vpxorq %zmm10,%zmm6,%zmm10 + vpxorq %zmm12,%zmm7,%zmm12 + vpxorq %zmm13,%zmm8,%zmm13 + vmovdqu64 304(%rsi),%ymm15 + vinserti64x2 $2,336(%rsi),%zmm15,%zmm15 + vpclmulqdq $0x01,%zmm15,%zmm4,%zmm7 + vpclmulqdq $0x10,%zmm15,%zmm4,%zmm8 + vpclmulqdq $0x11,%zmm15,%zmm4,%zmm1 + vpclmulqdq $0x00,%zmm15,%zmm4,%zmm6 + + vpxorq %zmm12,%zmm7,%zmm7 + vpxorq %zmm13,%zmm8,%zmm8 + vpxorq %zmm9,%zmm1,%zmm1 + vpxorq %zmm10,%zmm6,%zmm6 + + vpxorq %zmm8,%zmm7,%zmm7 + vpsrldq $8,%zmm7,%zmm12 + vpslldq $8,%zmm7,%zmm13 + vpxorq %zmm12,%zmm1,%zmm1 + vpxorq %zmm13,%zmm6,%zmm6 + vextracti64x4 $1,%zmm1,%ymm12 + vpxorq %ymm12,%ymm1,%ymm1 + vextracti32x4 $1,%ymm1,%xmm12 + vpxorq %xmm12,%xmm1,%xmm1 + vextracti64x4 $1,%zmm6,%ymm13 + vpxorq %ymm13,%ymm6,%ymm6 + vextracti32x4 $1,%ymm6,%xmm13 + vpxorq %xmm13,%xmm6,%xmm6 + vmovdqa64 POLY2(%rip),%xmm15 + + + vpclmulqdq $0x01,%xmm6,%xmm15,%xmm7 + vpslldq $8,%xmm7,%xmm7 + vpxorq %xmm7,%xmm6,%xmm7 + + + vpclmulqdq $0x00,%xmm7,%xmm15,%xmm8 + vpsrldq $4,%xmm8,%xmm8 + vpclmulqdq $0x10,%xmm7,%xmm15,%xmm2 + vpslldq $4,%xmm2,%xmm2 + vpternlogq $0x96,%xmm1,%xmm8,%xmm2 + + jmp L$_CALC_AAD_done_1 +L$_AAD_blocks_10_1: + subq $1024,%r12 + kmovq (%r12),%k1 + vmovdqu8 0(%r10),%zmm11 + vmovdqu8 64(%r10),%zmm3 + vmovdqu8 128(%r10),%ymm4{%k1}{z} + vpshufb %zmm16,%zmm11,%zmm11 + vpshufb %zmm16,%zmm3,%zmm3 + vpshufb %ymm16,%ymm4,%ymm4 + vpxorq %zmm2,%zmm11,%zmm11 + vmovdqu64 192(%rsi),%zmm15 + vpclmulqdq $0x11,%zmm15,%zmm11,%zmm1 + vpclmulqdq $0x00,%zmm15,%zmm11,%zmm6 + vpclmulqdq $0x01,%zmm15,%zmm11,%zmm7 + vpclmulqdq $0x10,%zmm15,%zmm11,%zmm8 + vmovdqu64 256(%rsi),%zmm15 + vpclmulqdq $0x11,%zmm15,%zmm3,%zmm9 + vpclmulqdq $0x00,%zmm15,%zmm3,%zmm10 + vpclmulqdq $0x01,%zmm15,%zmm3,%zmm12 + vpclmulqdq $0x10,%zmm15,%zmm3,%zmm13 + vpxorq %zmm9,%zmm1,%zmm9 + vpxorq %zmm10,%zmm6,%zmm10 + vpxorq %zmm12,%zmm7,%zmm12 + vpxorq %zmm13,%zmm8,%zmm13 + vmovdqu64 320(%rsi),%ymm15 + vpclmulqdq $0x01,%ymm15,%ymm4,%ymm7 + vpclmulqdq $0x10,%ymm15,%ymm4,%ymm8 + vpclmulqdq $0x11,%ymm15,%ymm4,%ymm1 + vpclmulqdq $0x00,%ymm15,%ymm4,%ymm6 + + vpxorq %zmm12,%zmm7,%zmm7 + vpxorq %zmm13,%zmm8,%zmm8 + vpxorq %zmm9,%zmm1,%zmm1 + vpxorq %zmm10,%zmm6,%zmm6 + + vpxorq %zmm8,%zmm7,%zmm7 + vpsrldq $8,%zmm7,%zmm12 + vpslldq $8,%zmm7,%zmm13 + vpxorq %zmm12,%zmm1,%zmm1 + vpxorq %zmm13,%zmm6,%zmm6 + vextracti64x4 $1,%zmm1,%ymm12 + vpxorq %ymm12,%ymm1,%ymm1 + vextracti32x4 $1,%ymm1,%xmm12 + vpxorq %xmm12,%xmm1,%xmm1 + vextracti64x4 $1,%zmm6,%ymm13 + vpxorq %ymm13,%ymm6,%ymm6 + vextracti32x4 $1,%ymm6,%xmm13 + vpxorq %xmm13,%xmm6,%xmm6 + vmovdqa64 POLY2(%rip),%xmm15 + + + vpclmulqdq $0x01,%xmm6,%xmm15,%xmm7 + vpslldq $8,%xmm7,%xmm7 + vpxorq %xmm7,%xmm6,%xmm7 + + + vpclmulqdq $0x00,%xmm7,%xmm15,%xmm8 + vpsrldq $4,%xmm8,%xmm8 + vpclmulqdq $0x10,%xmm7,%xmm15,%xmm2 + vpslldq $4,%xmm2,%xmm2 + vpternlogq $0x96,%xmm1,%xmm8,%xmm2 + + jmp L$_CALC_AAD_done_1 +L$_AAD_blocks_9_1: + subq $1024,%r12 + kmovq (%r12),%k1 + vmovdqu8 0(%r10),%zmm11 + vmovdqu8 64(%r10),%zmm3 + vmovdqu8 128(%r10),%xmm4{%k1}{z} + vpshufb %zmm16,%zmm11,%zmm11 + vpshufb %zmm16,%zmm3,%zmm3 + vpshufb %xmm16,%xmm4,%xmm4 + vpxorq %zmm2,%zmm11,%zmm11 + vmovdqu64 208(%rsi),%zmm15 + vpclmulqdq $0x11,%zmm15,%zmm11,%zmm1 + vpclmulqdq $0x00,%zmm15,%zmm11,%zmm6 + vpclmulqdq $0x01,%zmm15,%zmm11,%zmm7 + vpclmulqdq $0x10,%zmm15,%zmm11,%zmm8 + vmovdqu64 272(%rsi),%zmm15 + vpclmulqdq $0x11,%zmm15,%zmm3,%zmm9 + vpclmulqdq $0x00,%zmm15,%zmm3,%zmm10 + vpclmulqdq $0x01,%zmm15,%zmm3,%zmm12 + vpclmulqdq $0x10,%zmm15,%zmm3,%zmm13 + vpxorq %zmm9,%zmm1,%zmm9 + vpxorq %zmm10,%zmm6,%zmm10 + vpxorq %zmm12,%zmm7,%zmm12 + vpxorq %zmm13,%zmm8,%zmm13 + vmovdqu64 336(%rsi),%xmm15 + vpclmulqdq $0x01,%xmm15,%xmm4,%xmm7 + vpclmulqdq $0x10,%xmm15,%xmm4,%xmm8 + vpclmulqdq $0x11,%xmm15,%xmm4,%xmm1 + vpclmulqdq $0x00,%xmm15,%xmm4,%xmm6 + + vpxorq %zmm12,%zmm7,%zmm7 + vpxorq %zmm13,%zmm8,%zmm8 + vpxorq %zmm9,%zmm1,%zmm1 + vpxorq %zmm10,%zmm6,%zmm6 + + vpxorq %zmm8,%zmm7,%zmm7 + vpsrldq $8,%zmm7,%zmm12 + vpslldq $8,%zmm7,%zmm13 + vpxorq %zmm12,%zmm1,%zmm1 + vpxorq %zmm13,%zmm6,%zmm6 + vextracti64x4 $1,%zmm1,%ymm12 + vpxorq %ymm12,%ymm1,%ymm1 + vextracti32x4 $1,%ymm1,%xmm12 + vpxorq %xmm12,%xmm1,%xmm1 + vextracti64x4 $1,%zmm6,%ymm13 + vpxorq %ymm13,%ymm6,%ymm6 + vextracti32x4 $1,%ymm6,%xmm13 + vpxorq %xmm13,%xmm6,%xmm6 + vmovdqa64 POLY2(%rip),%xmm15 + + + vpclmulqdq $0x01,%xmm6,%xmm15,%xmm7 + vpslldq $8,%xmm7,%xmm7 + vpxorq %xmm7,%xmm6,%xmm7 + + + vpclmulqdq $0x00,%xmm7,%xmm15,%xmm8 + vpsrldq $4,%xmm8,%xmm8 + vpclmulqdq $0x10,%xmm7,%xmm15,%xmm2 + vpslldq $4,%xmm2,%xmm2 + vpternlogq $0x96,%xmm1,%xmm8,%xmm2 + + jmp L$_CALC_AAD_done_1 +L$_AAD_blocks_8_1: + subq $512,%r12 + kmovq (%r12),%k1 + vmovdqu8 0(%r10),%zmm11 + vmovdqu8 64(%r10),%zmm3{%k1}{z} + vpshufb %zmm16,%zmm11,%zmm11 + vpshufb %zmm16,%zmm3,%zmm3 + vpxorq %zmm2,%zmm11,%zmm11 + vmovdqu64 224(%rsi),%zmm15 + vpclmulqdq $0x11,%zmm15,%zmm11,%zmm1 + vpclmulqdq $0x00,%zmm15,%zmm11,%zmm6 + vpclmulqdq $0x01,%zmm15,%zmm11,%zmm7 + vpclmulqdq $0x10,%zmm15,%zmm11,%zmm8 + vmovdqu64 288(%rsi),%zmm15 + vpclmulqdq $0x11,%zmm15,%zmm3,%zmm9 + vpclmulqdq $0x00,%zmm15,%zmm3,%zmm10 + vpclmulqdq $0x01,%zmm15,%zmm3,%zmm12 + vpclmulqdq $0x10,%zmm15,%zmm3,%zmm13 + vpxorq %zmm9,%zmm1,%zmm9 + vpxorq %zmm10,%zmm6,%zmm10 + vpxorq %zmm12,%zmm7,%zmm12 + vpxorq %zmm13,%zmm8,%zmm13 + + vpxorq %zmm13,%zmm12,%zmm12 + vpsrldq $8,%zmm12,%zmm7 + vpslldq $8,%zmm12,%zmm8 + vpxorq %zmm7,%zmm9,%zmm1 + vpxorq %zmm8,%zmm10,%zmm6 + vextracti64x4 $1,%zmm1,%ymm12 + vpxorq %ymm12,%ymm1,%ymm1 + vextracti32x4 $1,%ymm1,%xmm12 + vpxorq %xmm12,%xmm1,%xmm1 + vextracti64x4 $1,%zmm6,%ymm13 + vpxorq %ymm13,%ymm6,%ymm6 + vextracti32x4 $1,%ymm6,%xmm13 + vpxorq %xmm13,%xmm6,%xmm6 + vmovdqa64 POLY2(%rip),%xmm15 + + + vpclmulqdq $0x01,%xmm6,%xmm15,%xmm7 + vpslldq $8,%xmm7,%xmm7 + vpxorq %xmm7,%xmm6,%xmm7 + + + vpclmulqdq $0x00,%xmm7,%xmm15,%xmm8 + vpsrldq $4,%xmm8,%xmm8 + vpclmulqdq $0x10,%xmm7,%xmm15,%xmm2 + vpslldq $4,%xmm2,%xmm2 + vpternlogq $0x96,%xmm1,%xmm8,%xmm2 + + jmp L$_CALC_AAD_done_1 +L$_AAD_blocks_7_1: + subq $512,%r12 + kmovq (%r12),%k1 + vmovdqu8 0(%r10),%zmm11 + vmovdqu8 64(%r10),%zmm3{%k1}{z} + vpshufb %zmm16,%zmm11,%zmm11 + vpshufb %zmm16,%zmm3,%zmm3 + vpxorq %zmm2,%zmm11,%zmm11 + vmovdqu64 240(%rsi),%zmm15 + vpclmulqdq $0x11,%zmm15,%zmm11,%zmm9 + vpclmulqdq $0x00,%zmm15,%zmm11,%zmm10 + vpclmulqdq $0x01,%zmm15,%zmm11,%zmm12 + vpclmulqdq $0x10,%zmm15,%zmm11,%zmm13 + vmovdqu64 304(%rsi),%ymm15 + vinserti64x2 $2,336(%rsi),%zmm15,%zmm15 + vpclmulqdq $0x01,%zmm15,%zmm3,%zmm7 + vpclmulqdq $0x10,%zmm15,%zmm3,%zmm8 + vpclmulqdq $0x11,%zmm15,%zmm3,%zmm1 + vpclmulqdq $0x00,%zmm15,%zmm3,%zmm6 + + vpxorq %zmm12,%zmm7,%zmm7 + vpxorq %zmm13,%zmm8,%zmm8 + vpxorq %zmm9,%zmm1,%zmm1 + vpxorq %zmm10,%zmm6,%zmm6 + + vpxorq %zmm8,%zmm7,%zmm7 + vpsrldq $8,%zmm7,%zmm12 + vpslldq $8,%zmm7,%zmm13 + vpxorq %zmm12,%zmm1,%zmm1 + vpxorq %zmm13,%zmm6,%zmm6 + vextracti64x4 $1,%zmm1,%ymm12 + vpxorq %ymm12,%ymm1,%ymm1 + vextracti32x4 $1,%ymm1,%xmm12 + vpxorq %xmm12,%xmm1,%xmm1 + vextracti64x4 $1,%zmm6,%ymm13 + vpxorq %ymm13,%ymm6,%ymm6 + vextracti32x4 $1,%ymm6,%xmm13 + vpxorq %xmm13,%xmm6,%xmm6 + vmovdqa64 POLY2(%rip),%xmm15 + + + vpclmulqdq $0x01,%xmm6,%xmm15,%xmm7 + vpslldq $8,%xmm7,%xmm7 + vpxorq %xmm7,%xmm6,%xmm7 + + + vpclmulqdq $0x00,%xmm7,%xmm15,%xmm8 + vpsrldq $4,%xmm8,%xmm8 + vpclmulqdq $0x10,%xmm7,%xmm15,%xmm2 + vpslldq $4,%xmm2,%xmm2 + vpternlogq $0x96,%xmm1,%xmm8,%xmm2 + + jmp L$_CALC_AAD_done_1 +L$_AAD_blocks_6_1: + subq $512,%r12 + kmovq (%r12),%k1 + vmovdqu8 0(%r10),%zmm11 + vmovdqu8 64(%r10),%ymm3{%k1}{z} + vpshufb %zmm16,%zmm11,%zmm11 + vpshufb %ymm16,%ymm3,%ymm3 + vpxorq %zmm2,%zmm11,%zmm11 + vmovdqu64 256(%rsi),%zmm15 + vpclmulqdq $0x11,%zmm15,%zmm11,%zmm9 + vpclmulqdq $0x00,%zmm15,%zmm11,%zmm10 + vpclmulqdq $0x01,%zmm15,%zmm11,%zmm12 + vpclmulqdq $0x10,%zmm15,%zmm11,%zmm13 + vmovdqu64 320(%rsi),%ymm15 + vpclmulqdq $0x01,%ymm15,%ymm3,%ymm7 + vpclmulqdq $0x10,%ymm15,%ymm3,%ymm8 + vpclmulqdq $0x11,%ymm15,%ymm3,%ymm1 + vpclmulqdq $0x00,%ymm15,%ymm3,%ymm6 + + vpxorq %zmm12,%zmm7,%zmm7 + vpxorq %zmm13,%zmm8,%zmm8 + vpxorq %zmm9,%zmm1,%zmm1 + vpxorq %zmm10,%zmm6,%zmm6 + + vpxorq %zmm8,%zmm7,%zmm7 + vpsrldq $8,%zmm7,%zmm12 + vpslldq $8,%zmm7,%zmm13 + vpxorq %zmm12,%zmm1,%zmm1 + vpxorq %zmm13,%zmm6,%zmm6 + vextracti64x4 $1,%zmm1,%ymm12 + vpxorq %ymm12,%ymm1,%ymm1 + vextracti32x4 $1,%ymm1,%xmm12 + vpxorq %xmm12,%xmm1,%xmm1 + vextracti64x4 $1,%zmm6,%ymm13 + vpxorq %ymm13,%ymm6,%ymm6 + vextracti32x4 $1,%ymm6,%xmm13 + vpxorq %xmm13,%xmm6,%xmm6 + vmovdqa64 POLY2(%rip),%xmm15 + + + vpclmulqdq $0x01,%xmm6,%xmm15,%xmm7 + vpslldq $8,%xmm7,%xmm7 + vpxorq %xmm7,%xmm6,%xmm7 + + + vpclmulqdq $0x00,%xmm7,%xmm15,%xmm8 + vpsrldq $4,%xmm8,%xmm8 + vpclmulqdq $0x10,%xmm7,%xmm15,%xmm2 + vpslldq $4,%xmm2,%xmm2 + vpternlogq $0x96,%xmm1,%xmm8,%xmm2 + + jmp L$_CALC_AAD_done_1 +L$_AAD_blocks_5_1: + subq $512,%r12 + kmovq (%r12),%k1 + vmovdqu8 0(%r10),%zmm11 + vmovdqu8 64(%r10),%xmm3{%k1}{z} + vpshufb %zmm16,%zmm11,%zmm11 + vpshufb %xmm16,%xmm3,%xmm3 + vpxorq %zmm2,%zmm11,%zmm11 + vmovdqu64 272(%rsi),%zmm15 + vpclmulqdq $0x11,%zmm15,%zmm11,%zmm9 + vpclmulqdq $0x00,%zmm15,%zmm11,%zmm10 + vpclmulqdq $0x01,%zmm15,%zmm11,%zmm12 + vpclmulqdq $0x10,%zmm15,%zmm11,%zmm13 + vmovdqu64 336(%rsi),%xmm15 + vpclmulqdq $0x01,%xmm15,%xmm3,%xmm7 + vpclmulqdq $0x10,%xmm15,%xmm3,%xmm8 + vpclmulqdq $0x11,%xmm15,%xmm3,%xmm1 + vpclmulqdq $0x00,%xmm15,%xmm3,%xmm6 + + vpxorq %zmm12,%zmm7,%zmm7 + vpxorq %zmm13,%zmm8,%zmm8 + vpxorq %zmm9,%zmm1,%zmm1 + vpxorq %zmm10,%zmm6,%zmm6 + + vpxorq %zmm8,%zmm7,%zmm7 + vpsrldq $8,%zmm7,%zmm12 + vpslldq $8,%zmm7,%zmm13 + vpxorq %zmm12,%zmm1,%zmm1 + vpxorq %zmm13,%zmm6,%zmm6 + vextracti64x4 $1,%zmm1,%ymm12 + vpxorq %ymm12,%ymm1,%ymm1 + vextracti32x4 $1,%ymm1,%xmm12 + vpxorq %xmm12,%xmm1,%xmm1 + vextracti64x4 $1,%zmm6,%ymm13 + vpxorq %ymm13,%ymm6,%ymm6 + vextracti32x4 $1,%ymm6,%xmm13 + vpxorq %xmm13,%xmm6,%xmm6 + vmovdqa64 POLY2(%rip),%xmm15 + + + vpclmulqdq $0x01,%xmm6,%xmm15,%xmm7 + vpslldq $8,%xmm7,%xmm7 + vpxorq %xmm7,%xmm6,%xmm7 + + + vpclmulqdq $0x00,%xmm7,%xmm15,%xmm8 + vpsrldq $4,%xmm8,%xmm8 + vpclmulqdq $0x10,%xmm7,%xmm15,%xmm2 + vpslldq $4,%xmm2,%xmm2 + vpternlogq $0x96,%xmm1,%xmm8,%xmm2 + + jmp L$_CALC_AAD_done_1 +L$_AAD_blocks_4_1: + kmovq (%r12),%k1 + vmovdqu8 0(%r10),%zmm11{%k1}{z} + vpshufb %zmm16,%zmm11,%zmm11 + vpxorq %zmm2,%zmm11,%zmm11 + vmovdqu64 288(%rsi),%zmm15 + vpclmulqdq $0x11,%zmm15,%zmm11,%zmm9 + vpclmulqdq $0x00,%zmm15,%zmm11,%zmm10 + vpclmulqdq $0x01,%zmm15,%zmm11,%zmm12 + vpclmulqdq $0x10,%zmm15,%zmm11,%zmm13 + + vpxorq %zmm13,%zmm12,%zmm12 + vpsrldq $8,%zmm12,%zmm7 + vpslldq $8,%zmm12,%zmm8 + vpxorq %zmm7,%zmm9,%zmm1 + vpxorq %zmm8,%zmm10,%zmm6 + vextracti64x4 $1,%zmm1,%ymm12 + vpxorq %ymm12,%ymm1,%ymm1 + vextracti32x4 $1,%ymm1,%xmm12 + vpxorq %xmm12,%xmm1,%xmm1 + vextracti64x4 $1,%zmm6,%ymm13 + vpxorq %ymm13,%ymm6,%ymm6 + vextracti32x4 $1,%ymm6,%xmm13 + vpxorq %xmm13,%xmm6,%xmm6 + vmovdqa64 POLY2(%rip),%xmm15 + + + vpclmulqdq $0x01,%xmm6,%xmm15,%xmm7 + vpslldq $8,%xmm7,%xmm7 + vpxorq %xmm7,%xmm6,%xmm7 + + + vpclmulqdq $0x00,%xmm7,%xmm15,%xmm8 + vpsrldq $4,%xmm8,%xmm8 + vpclmulqdq $0x10,%xmm7,%xmm15,%xmm2 + vpslldq $4,%xmm2,%xmm2 + vpternlogq $0x96,%xmm1,%xmm8,%xmm2 + + jmp L$_CALC_AAD_done_1 +L$_AAD_blocks_3_1: + kmovq (%r12),%k1 + vmovdqu8 0(%r10),%zmm11{%k1}{z} + vpshufb %zmm16,%zmm11,%zmm11 + vpxorq %zmm2,%zmm11,%zmm11 + vmovdqu64 304(%rsi),%ymm15 + vinserti64x2 $2,336(%rsi),%zmm15,%zmm15 + vpclmulqdq $0x01,%zmm15,%zmm11,%zmm7 + vpclmulqdq $0x10,%zmm15,%zmm11,%zmm8 + vpclmulqdq $0x11,%zmm15,%zmm11,%zmm1 + vpclmulqdq $0x00,%zmm15,%zmm11,%zmm6 + + vpxorq %zmm8,%zmm7,%zmm7 + vpsrldq $8,%zmm7,%zmm12 + vpslldq $8,%zmm7,%zmm13 + vpxorq %zmm12,%zmm1,%zmm1 + vpxorq %zmm13,%zmm6,%zmm6 + vextracti64x4 $1,%zmm1,%ymm12 + vpxorq %ymm12,%ymm1,%ymm1 + vextracti32x4 $1,%ymm1,%xmm12 + vpxorq %xmm12,%xmm1,%xmm1 + vextracti64x4 $1,%zmm6,%ymm13 + vpxorq %ymm13,%ymm6,%ymm6 + vextracti32x4 $1,%ymm6,%xmm13 + vpxorq %xmm13,%xmm6,%xmm6 + vmovdqa64 POLY2(%rip),%xmm15 + + + vpclmulqdq $0x01,%xmm6,%xmm15,%xmm7 + vpslldq $8,%xmm7,%xmm7 + vpxorq %xmm7,%xmm6,%xmm7 + + + vpclmulqdq $0x00,%xmm7,%xmm15,%xmm8 + vpsrldq $4,%xmm8,%xmm8 + vpclmulqdq $0x10,%xmm7,%xmm15,%xmm2 + vpslldq $4,%xmm2,%xmm2 + vpternlogq $0x96,%xmm1,%xmm8,%xmm2 + + jmp L$_CALC_AAD_done_1 +L$_AAD_blocks_2_1: + kmovq (%r12),%k1 + vmovdqu8 0(%r10),%ymm11{%k1}{z} + vpshufb %ymm16,%ymm11,%ymm11 + vpxorq %zmm2,%zmm11,%zmm11 + vmovdqu64 320(%rsi),%ymm15 + vpclmulqdq $0x01,%ymm15,%ymm11,%ymm7 + vpclmulqdq $0x10,%ymm15,%ymm11,%ymm8 + vpclmulqdq $0x11,%ymm15,%ymm11,%ymm1 + vpclmulqdq $0x00,%ymm15,%ymm11,%ymm6 + + vpxorq %zmm8,%zmm7,%zmm7 + vpsrldq $8,%zmm7,%zmm12 + vpslldq $8,%zmm7,%zmm13 + vpxorq %zmm12,%zmm1,%zmm1 + vpxorq %zmm13,%zmm6,%zmm6 + vextracti64x4 $1,%zmm1,%ymm12 + vpxorq %ymm12,%ymm1,%ymm1 + vextracti32x4 $1,%ymm1,%xmm12 + vpxorq %xmm12,%xmm1,%xmm1 + vextracti64x4 $1,%zmm6,%ymm13 + vpxorq %ymm13,%ymm6,%ymm6 + vextracti32x4 $1,%ymm6,%xmm13 + vpxorq %xmm13,%xmm6,%xmm6 + vmovdqa64 POLY2(%rip),%xmm15 + + + vpclmulqdq $0x01,%xmm6,%xmm15,%xmm7 + vpslldq $8,%xmm7,%xmm7 + vpxorq %xmm7,%xmm6,%xmm7 + + + vpclmulqdq $0x00,%xmm7,%xmm15,%xmm8 + vpsrldq $4,%xmm8,%xmm8 + vpclmulqdq $0x10,%xmm7,%xmm15,%xmm2 + vpslldq $4,%xmm2,%xmm2 + vpternlogq $0x96,%xmm1,%xmm8,%xmm2 + + jmp L$_CALC_AAD_done_1 +L$_AAD_blocks_1_1: + kmovq (%r12),%k1 + vmovdqu8 0(%r10),%xmm11{%k1}{z} + vpshufb %xmm16,%xmm11,%xmm11 + vpxorq %zmm2,%zmm11,%zmm11 + vmovdqu64 336(%rsi),%xmm15 + vpclmulqdq $0x01,%xmm15,%xmm11,%xmm7 + vpclmulqdq $0x10,%xmm15,%xmm11,%xmm8 + vpclmulqdq $0x11,%xmm15,%xmm11,%xmm1 + vpclmulqdq $0x00,%xmm15,%xmm11,%xmm6 + + vpxorq %zmm8,%zmm7,%zmm7 + vpsrldq $8,%zmm7,%zmm12 + vpslldq $8,%zmm7,%zmm13 + vpxorq %zmm12,%zmm1,%zmm1 + vpxorq %zmm13,%zmm6,%zmm6 + vextracti64x4 $1,%zmm1,%ymm12 + vpxorq %ymm12,%ymm1,%ymm1 + vextracti32x4 $1,%ymm1,%xmm12 + vpxorq %xmm12,%xmm1,%xmm1 + vextracti64x4 $1,%zmm6,%ymm13 + vpxorq %ymm13,%ymm6,%ymm6 + vextracti32x4 $1,%ymm6,%xmm13 + vpxorq %xmm13,%xmm6,%xmm6 + vmovdqa64 POLY2(%rip),%xmm15 + + + vpclmulqdq $0x01,%xmm6,%xmm15,%xmm7 + vpslldq $8,%xmm7,%xmm7 + vpxorq %xmm7,%xmm6,%xmm7 + + + vpclmulqdq $0x00,%xmm7,%xmm15,%xmm8 + vpsrldq $4,%xmm8,%xmm8 + vpclmulqdq $0x10,%xmm7,%xmm15,%xmm2 + vpslldq $4,%xmm2,%xmm2 + vpternlogq $0x96,%xmm1,%xmm8,%xmm2 + +L$_CALC_AAD_done_1: + movq %rcx,%r10 + shlq $3,%r10 + vmovq %r10,%xmm3 + + + vpxorq %xmm2,%xmm3,%xmm2 + + vmovdqu64 336(%rsi),%xmm1 + + vpclmulqdq $0x11,%xmm1,%xmm2,%xmm11 + vpclmulqdq $0x00,%xmm1,%xmm2,%xmm3 + vpclmulqdq $0x01,%xmm1,%xmm2,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm2,%xmm2 + vpxorq %xmm4,%xmm2,%xmm2 + + vpsrldq $8,%xmm2,%xmm4 + vpslldq $8,%xmm2,%xmm2 + vpxorq %xmm4,%xmm11,%xmm11 + vpxorq %xmm3,%xmm2,%xmm2 + + + + vmovdqu64 POLY2(%rip),%xmm4 + + vpclmulqdq $0x01,%xmm2,%xmm4,%xmm3 + vpslldq $8,%xmm3,%xmm3 + vpxorq %xmm3,%xmm2,%xmm2 + + + + vpclmulqdq $0x00,%xmm2,%xmm4,%xmm3 + vpsrldq $4,%xmm3,%xmm3 + vpclmulqdq $0x10,%xmm2,%xmm4,%xmm2 + vpslldq $4,%xmm2,%xmm2 + + vpternlogq $0x96,%xmm3,%xmm11,%xmm2 + + vpshufb SHUF_MASK(%rip),%xmm2,%xmm2 + jmp skip_iv_len_12_init_IV +iv_len_12_init_IV: + + vmovdqu8 ONEf(%rip),%xmm2 + movq %rdx,%r11 + movl $0x0000000000000fff,%r10d + kmovq %r10,%k1 + vmovdqu8 (%r11),%xmm2{%k1} +skip_iv_len_12_init_IV: + vmovdqu %xmm2,%xmm1 + + + movl 240(%rdi),%r10d + cmpl $9,%r10d + je L$aes_128_4 + cmpl $11,%r10d + je L$aes_192_4 + cmpl $13,%r10d + je L$aes_256_4 + jmp L$exit_aes_4 +.p2align 5 +L$aes_128_4: + vpxorq 0(%rdi),%xmm1,%xmm1 + + vaesenc 16(%rdi),%xmm1,%xmm1 + + vaesenc 32(%rdi),%xmm1,%xmm1 + + vaesenc 48(%rdi),%xmm1,%xmm1 + + vaesenc 64(%rdi),%xmm1,%xmm1 + + vaesenc 80(%rdi),%xmm1,%xmm1 + + vaesenc 96(%rdi),%xmm1,%xmm1 + + vaesenc 112(%rdi),%xmm1,%xmm1 + + vaesenc 128(%rdi),%xmm1,%xmm1 + + vaesenc 144(%rdi),%xmm1,%xmm1 + + vaesenclast 160(%rdi),%xmm1,%xmm1 + jmp L$exit_aes_4 +.p2align 5 +L$aes_192_4: + vpxorq 0(%rdi),%xmm1,%xmm1 + + vaesenc 16(%rdi),%xmm1,%xmm1 + + vaesenc 32(%rdi),%xmm1,%xmm1 + + vaesenc 48(%rdi),%xmm1,%xmm1 + + vaesenc 64(%rdi),%xmm1,%xmm1 + + vaesenc 80(%rdi),%xmm1,%xmm1 + + vaesenc 96(%rdi),%xmm1,%xmm1 + + vaesenc 112(%rdi),%xmm1,%xmm1 + + vaesenc 128(%rdi),%xmm1,%xmm1 + + vaesenc 144(%rdi),%xmm1,%xmm1 + + vaesenc 160(%rdi),%xmm1,%xmm1 + + vaesenc 176(%rdi),%xmm1,%xmm1 + + vaesenclast 192(%rdi),%xmm1,%xmm1 + jmp L$exit_aes_4 +.p2align 5 +L$aes_256_4: + vpxorq 0(%rdi),%xmm1,%xmm1 + + vaesenc 16(%rdi),%xmm1,%xmm1 + + vaesenc 32(%rdi),%xmm1,%xmm1 + + vaesenc 48(%rdi),%xmm1,%xmm1 + + vaesenc 64(%rdi),%xmm1,%xmm1 + + vaesenc 80(%rdi),%xmm1,%xmm1 + + vaesenc 96(%rdi),%xmm1,%xmm1 + + vaesenc 112(%rdi),%xmm1,%xmm1 + + vaesenc 128(%rdi),%xmm1,%xmm1 + + vaesenc 144(%rdi),%xmm1,%xmm1 + + vaesenc 160(%rdi),%xmm1,%xmm1 + + vaesenc 176(%rdi),%xmm1,%xmm1 + + vaesenc 192(%rdi),%xmm1,%xmm1 + + vaesenc 208(%rdi),%xmm1,%xmm1 + + vaesenclast 224(%rdi),%xmm1,%xmm1 + jmp L$exit_aes_4 +L$exit_aes_4: + + vmovdqu %xmm1,32(%rsi) + + + vpshufb SHUF_MASK(%rip),%xmm2,%xmm2 + vmovdqu %xmm2,0(%rsi) + cmpq $256,%rcx + jbe L$skip_hkeys_cleanup_5 + vpxor %xmm0,%xmm0,%xmm0 + vmovdqa64 %zmm0,0(%rsp) + vmovdqa64 %zmm0,64(%rsp) + vmovdqa64 %zmm0,128(%rsp) + vmovdqa64 %zmm0,192(%rsp) + vmovdqa64 %zmm0,256(%rsp) + vmovdqa64 %zmm0,320(%rsp) + vmovdqa64 %zmm0,384(%rsp) + vmovdqa64 %zmm0,448(%rsp) + vmovdqa64 %zmm0,512(%rsp) + vmovdqa64 %zmm0,576(%rsp) + vmovdqa64 %zmm0,640(%rsp) + vmovdqa64 %zmm0,704(%rsp) +L$skip_hkeys_cleanup_5: + vzeroupper + leaq (%rbp),%rsp + + popq %r15 + + popq %r14 + + popq %r13 + + popq %r12 + + popq %rbp + + popq %rbx + +L$abort_setiv: + .byte 0xf3,0xc3 +L$setiv_seh_end: + + +.globl _ossl_aes_gcm_update_aad_avx512 + +.p2align 5 +_ossl_aes_gcm_update_aad_avx512: + +L$ghash_seh_begin: +.byte 243,15,30,250 + pushq %rbx + +L$ghash_seh_push_rbx: + pushq %rbp + +L$ghash_seh_push_rbp: + pushq %r12 + +L$ghash_seh_push_r12: + pushq %r13 + +L$ghash_seh_push_r13: + pushq %r14 + +L$ghash_seh_push_r14: + pushq %r15 + +L$ghash_seh_push_r15: + + + + + + + + + + + leaq 0(%rsp),%rbp + +L$ghash_seh_setfp: + +L$ghash_seh_prolog_end: + subq $820,%rsp + andq $(-64),%rsp + vmovdqu64 64(%rdi),%xmm14 + movq %rsi,%r10 + movq %rdx,%r11 + orq %r11,%r11 + jz L$_CALC_AAD_done_6 + + xorq %rbx,%rbx + vmovdqa64 SHUF_MASK(%rip),%zmm16 + +L$_get_AAD_loop48x16_6: + cmpq $768,%r11 + jl L$_exit_AAD_loop48x16_6 + vmovdqu64 0(%r10),%zmm11 + vmovdqu64 64(%r10),%zmm3 + vmovdqu64 128(%r10),%zmm4 + vmovdqu64 192(%r10),%zmm5 + vpshufb %zmm16,%zmm11,%zmm11 + vpshufb %zmm16,%zmm3,%zmm3 + vpshufb %zmm16,%zmm4,%zmm4 + vpshufb %zmm16,%zmm5,%zmm5 + testq %rbx,%rbx + jnz L$_skip_hkeys_precomputation_7 + + vmovdqu64 288(%rdi),%zmm1 + vmovdqu64 %zmm1,704(%rsp) + + vmovdqu64 224(%rdi),%zmm9 + vmovdqu64 %zmm9,640(%rsp) + + + vshufi64x2 $0x00,%zmm9,%zmm9,%zmm9 + + vmovdqu64 160(%rdi),%zmm10 + vmovdqu64 %zmm10,576(%rsp) + + vmovdqu64 96(%rdi),%zmm12 + vmovdqu64 %zmm12,512(%rsp) + + vpclmulqdq $0x11,%zmm9,%zmm10,%zmm13 + vpclmulqdq $0x00,%zmm9,%zmm10,%zmm15 + vpclmulqdq $0x01,%zmm9,%zmm10,%zmm17 + vpclmulqdq $0x10,%zmm9,%zmm10,%zmm10 + vpxorq %zmm17,%zmm10,%zmm10 + + vpsrldq $8,%zmm10,%zmm17 + vpslldq $8,%zmm10,%zmm10 + vpxorq %zmm17,%zmm13,%zmm13 + vpxorq %zmm15,%zmm10,%zmm10 + + + + vmovdqu64 POLY2(%rip),%zmm17 + + vpclmulqdq $0x01,%zmm10,%zmm17,%zmm15 + vpslldq $8,%zmm15,%zmm15 + vpxorq %zmm15,%zmm10,%zmm10 + + + + vpclmulqdq $0x00,%zmm10,%zmm17,%zmm15 + vpsrldq $4,%zmm15,%zmm15 + vpclmulqdq $0x10,%zmm10,%zmm17,%zmm10 + vpslldq $4,%zmm10,%zmm10 + + vpternlogq $0x96,%zmm15,%zmm13,%zmm10 + + vmovdqu64 %zmm10,448(%rsp) + + vpclmulqdq $0x11,%zmm9,%zmm12,%zmm13 + vpclmulqdq $0x00,%zmm9,%zmm12,%zmm15 + vpclmulqdq $0x01,%zmm9,%zmm12,%zmm17 + vpclmulqdq $0x10,%zmm9,%zmm12,%zmm12 + vpxorq %zmm17,%zmm12,%zmm12 + + vpsrldq $8,%zmm12,%zmm17 + vpslldq $8,%zmm12,%zmm12 + vpxorq %zmm17,%zmm13,%zmm13 + vpxorq %zmm15,%zmm12,%zmm12 + + + + vmovdqu64 POLY2(%rip),%zmm17 + + vpclmulqdq $0x01,%zmm12,%zmm17,%zmm15 + vpslldq $8,%zmm15,%zmm15 + vpxorq %zmm15,%zmm12,%zmm12 + + + + vpclmulqdq $0x00,%zmm12,%zmm17,%zmm15 + vpsrldq $4,%zmm15,%zmm15 + vpclmulqdq $0x10,%zmm12,%zmm17,%zmm12 + vpslldq $4,%zmm12,%zmm12 + + vpternlogq $0x96,%zmm15,%zmm13,%zmm12 + + vmovdqu64 %zmm12,384(%rsp) + + vpclmulqdq $0x11,%zmm9,%zmm10,%zmm13 + vpclmulqdq $0x00,%zmm9,%zmm10,%zmm15 + vpclmulqdq $0x01,%zmm9,%zmm10,%zmm17 + vpclmulqdq $0x10,%zmm9,%zmm10,%zmm10 + vpxorq %zmm17,%zmm10,%zmm10 + + vpsrldq $8,%zmm10,%zmm17 + vpslldq $8,%zmm10,%zmm10 + vpxorq %zmm17,%zmm13,%zmm13 + vpxorq %zmm15,%zmm10,%zmm10 + + + + vmovdqu64 POLY2(%rip),%zmm17 + + vpclmulqdq $0x01,%zmm10,%zmm17,%zmm15 + vpslldq $8,%zmm15,%zmm15 + vpxorq %zmm15,%zmm10,%zmm10 + + + + vpclmulqdq $0x00,%zmm10,%zmm17,%zmm15 + vpsrldq $4,%zmm15,%zmm15 + vpclmulqdq $0x10,%zmm10,%zmm17,%zmm10 + vpslldq $4,%zmm10,%zmm10 + + vpternlogq $0x96,%zmm15,%zmm13,%zmm10 + + vmovdqu64 %zmm10,320(%rsp) + + vpclmulqdq $0x11,%zmm9,%zmm12,%zmm13 + vpclmulqdq $0x00,%zmm9,%zmm12,%zmm15 + vpclmulqdq $0x01,%zmm9,%zmm12,%zmm17 + vpclmulqdq $0x10,%zmm9,%zmm12,%zmm12 + vpxorq %zmm17,%zmm12,%zmm12 + + vpsrldq $8,%zmm12,%zmm17 + vpslldq $8,%zmm12,%zmm12 + vpxorq %zmm17,%zmm13,%zmm13 + vpxorq %zmm15,%zmm12,%zmm12 + + + + vmovdqu64 POLY2(%rip),%zmm17 + + vpclmulqdq $0x01,%zmm12,%zmm17,%zmm15 + vpslldq $8,%zmm15,%zmm15 + vpxorq %zmm15,%zmm12,%zmm12 + + + + vpclmulqdq $0x00,%zmm12,%zmm17,%zmm15 + vpsrldq $4,%zmm15,%zmm15 + vpclmulqdq $0x10,%zmm12,%zmm17,%zmm12 + vpslldq $4,%zmm12,%zmm12 + + vpternlogq $0x96,%zmm15,%zmm13,%zmm12 + + vmovdqu64 %zmm12,256(%rsp) + + vpclmulqdq $0x11,%zmm9,%zmm10,%zmm13 + vpclmulqdq $0x00,%zmm9,%zmm10,%zmm15 + vpclmulqdq $0x01,%zmm9,%zmm10,%zmm17 + vpclmulqdq $0x10,%zmm9,%zmm10,%zmm10 + vpxorq %zmm17,%zmm10,%zmm10 + + vpsrldq $8,%zmm10,%zmm17 + vpslldq $8,%zmm10,%zmm10 + vpxorq %zmm17,%zmm13,%zmm13 + vpxorq %zmm15,%zmm10,%zmm10 + + + + vmovdqu64 POLY2(%rip),%zmm17 + + vpclmulqdq $0x01,%zmm10,%zmm17,%zmm15 + vpslldq $8,%zmm15,%zmm15 + vpxorq %zmm15,%zmm10,%zmm10 + + + + vpclmulqdq $0x00,%zmm10,%zmm17,%zmm15 + vpsrldq $4,%zmm15,%zmm15 + vpclmulqdq $0x10,%zmm10,%zmm17,%zmm10 + vpslldq $4,%zmm10,%zmm10 + + vpternlogq $0x96,%zmm15,%zmm13,%zmm10 + + vmovdqu64 %zmm10,192(%rsp) + + vpclmulqdq $0x11,%zmm9,%zmm12,%zmm13 + vpclmulqdq $0x00,%zmm9,%zmm12,%zmm15 + vpclmulqdq $0x01,%zmm9,%zmm12,%zmm17 + vpclmulqdq $0x10,%zmm9,%zmm12,%zmm12 + vpxorq %zmm17,%zmm12,%zmm12 + + vpsrldq $8,%zmm12,%zmm17 + vpslldq $8,%zmm12,%zmm12 + vpxorq %zmm17,%zmm13,%zmm13 + vpxorq %zmm15,%zmm12,%zmm12 + + + + vmovdqu64 POLY2(%rip),%zmm17 + + vpclmulqdq $0x01,%zmm12,%zmm17,%zmm15 + vpslldq $8,%zmm15,%zmm15 + vpxorq %zmm15,%zmm12,%zmm12 + + + + vpclmulqdq $0x00,%zmm12,%zmm17,%zmm15 + vpsrldq $4,%zmm15,%zmm15 + vpclmulqdq $0x10,%zmm12,%zmm17,%zmm12 + vpslldq $4,%zmm12,%zmm12 + + vpternlogq $0x96,%zmm15,%zmm13,%zmm12 + + vmovdqu64 %zmm12,128(%rsp) + + vpclmulqdq $0x11,%zmm9,%zmm10,%zmm13 + vpclmulqdq $0x00,%zmm9,%zmm10,%zmm15 + vpclmulqdq $0x01,%zmm9,%zmm10,%zmm17 + vpclmulqdq $0x10,%zmm9,%zmm10,%zmm10 + vpxorq %zmm17,%zmm10,%zmm10 + + vpsrldq $8,%zmm10,%zmm17 + vpslldq $8,%zmm10,%zmm10 + vpxorq %zmm17,%zmm13,%zmm13 + vpxorq %zmm15,%zmm10,%zmm10 + + + + vmovdqu64 POLY2(%rip),%zmm17 + + vpclmulqdq $0x01,%zmm10,%zmm17,%zmm15 + vpslldq $8,%zmm15,%zmm15 + vpxorq %zmm15,%zmm10,%zmm10 + + + + vpclmulqdq $0x00,%zmm10,%zmm17,%zmm15 + vpsrldq $4,%zmm15,%zmm15 + vpclmulqdq $0x10,%zmm10,%zmm17,%zmm10 + vpslldq $4,%zmm10,%zmm10 + + vpternlogq $0x96,%zmm15,%zmm13,%zmm10 + + vmovdqu64 %zmm10,64(%rsp) + + vpclmulqdq $0x11,%zmm9,%zmm12,%zmm13 + vpclmulqdq $0x00,%zmm9,%zmm12,%zmm15 + vpclmulqdq $0x01,%zmm9,%zmm12,%zmm17 + vpclmulqdq $0x10,%zmm9,%zmm12,%zmm12 + vpxorq %zmm17,%zmm12,%zmm12 + + vpsrldq $8,%zmm12,%zmm17 + vpslldq $8,%zmm12,%zmm12 + vpxorq %zmm17,%zmm13,%zmm13 + vpxorq %zmm15,%zmm12,%zmm12 + + + + vmovdqu64 POLY2(%rip),%zmm17 + + vpclmulqdq $0x01,%zmm12,%zmm17,%zmm15 + vpslldq $8,%zmm15,%zmm15 + vpxorq %zmm15,%zmm12,%zmm12 + + + + vpclmulqdq $0x00,%zmm12,%zmm17,%zmm15 + vpsrldq $4,%zmm15,%zmm15 + vpclmulqdq $0x10,%zmm12,%zmm17,%zmm12 + vpslldq $4,%zmm12,%zmm12 + + vpternlogq $0x96,%zmm15,%zmm13,%zmm12 + + vmovdqu64 %zmm12,0(%rsp) +L$_skip_hkeys_precomputation_7: + movq $1,%rbx + vpxorq %zmm14,%zmm11,%zmm11 + vmovdqu64 0(%rsp),%zmm19 + vpclmulqdq $0x11,%zmm19,%zmm11,%zmm1 + vpclmulqdq $0x00,%zmm19,%zmm11,%zmm9 + vpclmulqdq $0x01,%zmm19,%zmm11,%zmm10 + vpclmulqdq $0x10,%zmm19,%zmm11,%zmm12 + vmovdqu64 64(%rsp),%zmm19 + vpclmulqdq $0x11,%zmm19,%zmm3,%zmm13 + vpclmulqdq $0x00,%zmm19,%zmm3,%zmm15 + vpclmulqdq $0x01,%zmm19,%zmm3,%zmm17 + vpclmulqdq $0x10,%zmm19,%zmm3,%zmm18 + vpxorq %zmm17,%zmm10,%zmm7 + vpxorq %zmm13,%zmm1,%zmm6 + vpxorq %zmm15,%zmm9,%zmm8 + vpternlogq $0x96,%zmm18,%zmm12,%zmm7 + vmovdqu64 128(%rsp),%zmm19 + vpclmulqdq $0x11,%zmm19,%zmm4,%zmm1 + vpclmulqdq $0x00,%zmm19,%zmm4,%zmm9 + vpclmulqdq $0x01,%zmm19,%zmm4,%zmm10 + vpclmulqdq $0x10,%zmm19,%zmm4,%zmm12 + vmovdqu64 192(%rsp),%zmm19 + vpclmulqdq $0x11,%zmm19,%zmm5,%zmm13 + vpclmulqdq $0x00,%zmm19,%zmm5,%zmm15 + vpclmulqdq $0x01,%zmm19,%zmm5,%zmm17 + vpclmulqdq $0x10,%zmm19,%zmm5,%zmm18 + + vpternlogq $0x96,%zmm17,%zmm10,%zmm7 + vpternlogq $0x96,%zmm13,%zmm1,%zmm6 + vpternlogq $0x96,%zmm15,%zmm9,%zmm8 + vpternlogq $0x96,%zmm18,%zmm12,%zmm7 + vmovdqu64 256(%r10),%zmm11 + vmovdqu64 320(%r10),%zmm3 + vmovdqu64 384(%r10),%zmm4 + vmovdqu64 448(%r10),%zmm5 + vpshufb %zmm16,%zmm11,%zmm11 + vpshufb %zmm16,%zmm3,%zmm3 + vpshufb %zmm16,%zmm4,%zmm4 + vpshufb %zmm16,%zmm5,%zmm5 + vmovdqu64 256(%rsp),%zmm19 + vpclmulqdq $0x11,%zmm19,%zmm11,%zmm1 + vpclmulqdq $0x00,%zmm19,%zmm11,%zmm9 + vpclmulqdq $0x01,%zmm19,%zmm11,%zmm10 + vpclmulqdq $0x10,%zmm19,%zmm11,%zmm12 + vmovdqu64 320(%rsp),%zmm19 + vpclmulqdq $0x11,%zmm19,%zmm3,%zmm13 + vpclmulqdq $0x00,%zmm19,%zmm3,%zmm15 + vpclmulqdq $0x01,%zmm19,%zmm3,%zmm17 + vpclmulqdq $0x10,%zmm19,%zmm3,%zmm18 + vpternlogq $0x96,%zmm17,%zmm10,%zmm7 + vpternlogq $0x96,%zmm13,%zmm1,%zmm6 + vpternlogq $0x96,%zmm15,%zmm9,%zmm8 + vpternlogq $0x96,%zmm18,%zmm12,%zmm7 + vmovdqu64 384(%rsp),%zmm19 + vpclmulqdq $0x11,%zmm19,%zmm4,%zmm1 + vpclmulqdq $0x00,%zmm19,%zmm4,%zmm9 + vpclmulqdq $0x01,%zmm19,%zmm4,%zmm10 + vpclmulqdq $0x10,%zmm19,%zmm4,%zmm12 + vmovdqu64 448(%rsp),%zmm19 + vpclmulqdq $0x11,%zmm19,%zmm5,%zmm13 + vpclmulqdq $0x00,%zmm19,%zmm5,%zmm15 + vpclmulqdq $0x01,%zmm19,%zmm5,%zmm17 + vpclmulqdq $0x10,%zmm19,%zmm5,%zmm18 + + vpternlogq $0x96,%zmm17,%zmm10,%zmm7 + vpternlogq $0x96,%zmm13,%zmm1,%zmm6 + vpternlogq $0x96,%zmm15,%zmm9,%zmm8 + vpternlogq $0x96,%zmm18,%zmm12,%zmm7 + vmovdqu64 512(%r10),%zmm11 + vmovdqu64 576(%r10),%zmm3 + vmovdqu64 640(%r10),%zmm4 + vmovdqu64 704(%r10),%zmm5 + vpshufb %zmm16,%zmm11,%zmm11 + vpshufb %zmm16,%zmm3,%zmm3 + vpshufb %zmm16,%zmm4,%zmm4 + vpshufb %zmm16,%zmm5,%zmm5 + vmovdqu64 512(%rsp),%zmm19 + vpclmulqdq $0x11,%zmm19,%zmm11,%zmm1 + vpclmulqdq $0x00,%zmm19,%zmm11,%zmm9 + vpclmulqdq $0x01,%zmm19,%zmm11,%zmm10 + vpclmulqdq $0x10,%zmm19,%zmm11,%zmm12 + vmovdqu64 576(%rsp),%zmm19 + vpclmulqdq $0x11,%zmm19,%zmm3,%zmm13 + vpclmulqdq $0x00,%zmm19,%zmm3,%zmm15 + vpclmulqdq $0x01,%zmm19,%zmm3,%zmm17 + vpclmulqdq $0x10,%zmm19,%zmm3,%zmm18 + vpternlogq $0x96,%zmm17,%zmm10,%zmm7 + vpternlogq $0x96,%zmm13,%zmm1,%zmm6 + vpternlogq $0x96,%zmm15,%zmm9,%zmm8 + vpternlogq $0x96,%zmm18,%zmm12,%zmm7 + vmovdqu64 640(%rsp),%zmm19 + vpclmulqdq $0x11,%zmm19,%zmm4,%zmm1 + vpclmulqdq $0x00,%zmm19,%zmm4,%zmm9 + vpclmulqdq $0x01,%zmm19,%zmm4,%zmm10 + vpclmulqdq $0x10,%zmm19,%zmm4,%zmm12 + vmovdqu64 704(%rsp),%zmm19 + vpclmulqdq $0x11,%zmm19,%zmm5,%zmm13 + vpclmulqdq $0x00,%zmm19,%zmm5,%zmm15 + vpclmulqdq $0x01,%zmm19,%zmm5,%zmm17 + vpclmulqdq $0x10,%zmm19,%zmm5,%zmm18 + + vpternlogq $0x96,%zmm17,%zmm10,%zmm7 + vpternlogq $0x96,%zmm13,%zmm1,%zmm6 + vpternlogq $0x96,%zmm15,%zmm9,%zmm8 + vpternlogq $0x96,%zmm18,%zmm12,%zmm7 + + vpsrldq $8,%zmm7,%zmm1 + vpslldq $8,%zmm7,%zmm9 + vpxorq %zmm1,%zmm6,%zmm6 + vpxorq %zmm9,%zmm8,%zmm8 + vextracti64x4 $1,%zmm6,%ymm1 + vpxorq %ymm1,%ymm6,%ymm6 + vextracti32x4 $1,%ymm6,%xmm1 + vpxorq %xmm1,%xmm6,%xmm6 + vextracti64x4 $1,%zmm8,%ymm9 + vpxorq %ymm9,%ymm8,%ymm8 + vextracti32x4 $1,%ymm8,%xmm9 + vpxorq %xmm9,%xmm8,%xmm8 + vmovdqa64 POLY2(%rip),%xmm10 + + + vpclmulqdq $0x01,%xmm8,%xmm10,%xmm1 + vpslldq $8,%xmm1,%xmm1 + vpxorq %xmm1,%xmm8,%xmm1 + + + vpclmulqdq $0x00,%xmm1,%xmm10,%xmm9 + vpsrldq $4,%xmm9,%xmm9 + vpclmulqdq $0x10,%xmm1,%xmm10,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm6,%xmm9,%xmm14 + + subq $768,%r11 + je L$_CALC_AAD_done_6 + + addq $768,%r10 + jmp L$_get_AAD_loop48x16_6 + +L$_exit_AAD_loop48x16_6: + + cmpq $512,%r11 + jl L$_less_than_32x16_6 + + vmovdqu64 0(%r10),%zmm11 + vmovdqu64 64(%r10),%zmm3 + vmovdqu64 128(%r10),%zmm4 + vmovdqu64 192(%r10),%zmm5 + vpshufb %zmm16,%zmm11,%zmm11 + vpshufb %zmm16,%zmm3,%zmm3 + vpshufb %zmm16,%zmm4,%zmm4 + vpshufb %zmm16,%zmm5,%zmm5 + testq %rbx,%rbx + jnz L$_skip_hkeys_precomputation_8 + + vmovdqu64 288(%rdi),%zmm1 + vmovdqu64 %zmm1,704(%rsp) + + vmovdqu64 224(%rdi),%zmm9 + vmovdqu64 %zmm9,640(%rsp) + + + vshufi64x2 $0x00,%zmm9,%zmm9,%zmm9 + + vmovdqu64 160(%rdi),%zmm10 + vmovdqu64 %zmm10,576(%rsp) + + vmovdqu64 96(%rdi),%zmm12 + vmovdqu64 %zmm12,512(%rsp) + + vpclmulqdq $0x11,%zmm9,%zmm10,%zmm13 + vpclmulqdq $0x00,%zmm9,%zmm10,%zmm15 + vpclmulqdq $0x01,%zmm9,%zmm10,%zmm17 + vpclmulqdq $0x10,%zmm9,%zmm10,%zmm10 + vpxorq %zmm17,%zmm10,%zmm10 + + vpsrldq $8,%zmm10,%zmm17 + vpslldq $8,%zmm10,%zmm10 + vpxorq %zmm17,%zmm13,%zmm13 + vpxorq %zmm15,%zmm10,%zmm10 + + + + vmovdqu64 POLY2(%rip),%zmm17 + + vpclmulqdq $0x01,%zmm10,%zmm17,%zmm15 + vpslldq $8,%zmm15,%zmm15 + vpxorq %zmm15,%zmm10,%zmm10 + + + + vpclmulqdq $0x00,%zmm10,%zmm17,%zmm15 + vpsrldq $4,%zmm15,%zmm15 + vpclmulqdq $0x10,%zmm10,%zmm17,%zmm10 + vpslldq $4,%zmm10,%zmm10 + + vpternlogq $0x96,%zmm15,%zmm13,%zmm10 + + vmovdqu64 %zmm10,448(%rsp) + + vpclmulqdq $0x11,%zmm9,%zmm12,%zmm13 + vpclmulqdq $0x00,%zmm9,%zmm12,%zmm15 + vpclmulqdq $0x01,%zmm9,%zmm12,%zmm17 + vpclmulqdq $0x10,%zmm9,%zmm12,%zmm12 + vpxorq %zmm17,%zmm12,%zmm12 + + vpsrldq $8,%zmm12,%zmm17 + vpslldq $8,%zmm12,%zmm12 + vpxorq %zmm17,%zmm13,%zmm13 + vpxorq %zmm15,%zmm12,%zmm12 + + + + vmovdqu64 POLY2(%rip),%zmm17 + + vpclmulqdq $0x01,%zmm12,%zmm17,%zmm15 + vpslldq $8,%zmm15,%zmm15 + vpxorq %zmm15,%zmm12,%zmm12 + + + + vpclmulqdq $0x00,%zmm12,%zmm17,%zmm15 + vpsrldq $4,%zmm15,%zmm15 + vpclmulqdq $0x10,%zmm12,%zmm17,%zmm12 + vpslldq $4,%zmm12,%zmm12 + + vpternlogq $0x96,%zmm15,%zmm13,%zmm12 + + vmovdqu64 %zmm12,384(%rsp) + + vpclmulqdq $0x11,%zmm9,%zmm10,%zmm13 + vpclmulqdq $0x00,%zmm9,%zmm10,%zmm15 + vpclmulqdq $0x01,%zmm9,%zmm10,%zmm17 + vpclmulqdq $0x10,%zmm9,%zmm10,%zmm10 + vpxorq %zmm17,%zmm10,%zmm10 + + vpsrldq $8,%zmm10,%zmm17 + vpslldq $8,%zmm10,%zmm10 + vpxorq %zmm17,%zmm13,%zmm13 + vpxorq %zmm15,%zmm10,%zmm10 + + + + vmovdqu64 POLY2(%rip),%zmm17 + + vpclmulqdq $0x01,%zmm10,%zmm17,%zmm15 + vpslldq $8,%zmm15,%zmm15 + vpxorq %zmm15,%zmm10,%zmm10 + + + + vpclmulqdq $0x00,%zmm10,%zmm17,%zmm15 + vpsrldq $4,%zmm15,%zmm15 + vpclmulqdq $0x10,%zmm10,%zmm17,%zmm10 + vpslldq $4,%zmm10,%zmm10 + + vpternlogq $0x96,%zmm15,%zmm13,%zmm10 + + vmovdqu64 %zmm10,320(%rsp) + + vpclmulqdq $0x11,%zmm9,%zmm12,%zmm13 + vpclmulqdq $0x00,%zmm9,%zmm12,%zmm15 + vpclmulqdq $0x01,%zmm9,%zmm12,%zmm17 + vpclmulqdq $0x10,%zmm9,%zmm12,%zmm12 + vpxorq %zmm17,%zmm12,%zmm12 + + vpsrldq $8,%zmm12,%zmm17 + vpslldq $8,%zmm12,%zmm12 + vpxorq %zmm17,%zmm13,%zmm13 + vpxorq %zmm15,%zmm12,%zmm12 + + + + vmovdqu64 POLY2(%rip),%zmm17 + + vpclmulqdq $0x01,%zmm12,%zmm17,%zmm15 + vpslldq $8,%zmm15,%zmm15 + vpxorq %zmm15,%zmm12,%zmm12 + + + + vpclmulqdq $0x00,%zmm12,%zmm17,%zmm15 + vpsrldq $4,%zmm15,%zmm15 + vpclmulqdq $0x10,%zmm12,%zmm17,%zmm12 + vpslldq $4,%zmm12,%zmm12 + + vpternlogq $0x96,%zmm15,%zmm13,%zmm12 + + vmovdqu64 %zmm12,256(%rsp) +L$_skip_hkeys_precomputation_8: + movq $1,%rbx + vpxorq %zmm14,%zmm11,%zmm11 + vmovdqu64 256(%rsp),%zmm19 + vpclmulqdq $0x11,%zmm19,%zmm11,%zmm1 + vpclmulqdq $0x00,%zmm19,%zmm11,%zmm9 + vpclmulqdq $0x01,%zmm19,%zmm11,%zmm10 + vpclmulqdq $0x10,%zmm19,%zmm11,%zmm12 + vmovdqu64 320(%rsp),%zmm19 + vpclmulqdq $0x11,%zmm19,%zmm3,%zmm13 + vpclmulqdq $0x00,%zmm19,%zmm3,%zmm15 + vpclmulqdq $0x01,%zmm19,%zmm3,%zmm17 + vpclmulqdq $0x10,%zmm19,%zmm3,%zmm18 + vpxorq %zmm17,%zmm10,%zmm7 + vpxorq %zmm13,%zmm1,%zmm6 + vpxorq %zmm15,%zmm9,%zmm8 + vpternlogq $0x96,%zmm18,%zmm12,%zmm7 + vmovdqu64 384(%rsp),%zmm19 + vpclmulqdq $0x11,%zmm19,%zmm4,%zmm1 + vpclmulqdq $0x00,%zmm19,%zmm4,%zmm9 + vpclmulqdq $0x01,%zmm19,%zmm4,%zmm10 + vpclmulqdq $0x10,%zmm19,%zmm4,%zmm12 + vmovdqu64 448(%rsp),%zmm19 + vpclmulqdq $0x11,%zmm19,%zmm5,%zmm13 + vpclmulqdq $0x00,%zmm19,%zmm5,%zmm15 + vpclmulqdq $0x01,%zmm19,%zmm5,%zmm17 + vpclmulqdq $0x10,%zmm19,%zmm5,%zmm18 + + vpternlogq $0x96,%zmm17,%zmm10,%zmm7 + vpternlogq $0x96,%zmm13,%zmm1,%zmm6 + vpternlogq $0x96,%zmm15,%zmm9,%zmm8 + vpternlogq $0x96,%zmm18,%zmm12,%zmm7 + vmovdqu64 256(%r10),%zmm11 + vmovdqu64 320(%r10),%zmm3 + vmovdqu64 384(%r10),%zmm4 + vmovdqu64 448(%r10),%zmm5 + vpshufb %zmm16,%zmm11,%zmm11 + vpshufb %zmm16,%zmm3,%zmm3 + vpshufb %zmm16,%zmm4,%zmm4 + vpshufb %zmm16,%zmm5,%zmm5 + vmovdqu64 512(%rsp),%zmm19 + vpclmulqdq $0x11,%zmm19,%zmm11,%zmm1 + vpclmulqdq $0x00,%zmm19,%zmm11,%zmm9 + vpclmulqdq $0x01,%zmm19,%zmm11,%zmm10 + vpclmulqdq $0x10,%zmm19,%zmm11,%zmm12 + vmovdqu64 576(%rsp),%zmm19 + vpclmulqdq $0x11,%zmm19,%zmm3,%zmm13 + vpclmulqdq $0x00,%zmm19,%zmm3,%zmm15 + vpclmulqdq $0x01,%zmm19,%zmm3,%zmm17 + vpclmulqdq $0x10,%zmm19,%zmm3,%zmm18 + vpternlogq $0x96,%zmm17,%zmm10,%zmm7 + vpternlogq $0x96,%zmm13,%zmm1,%zmm6 + vpternlogq $0x96,%zmm15,%zmm9,%zmm8 + vpternlogq $0x96,%zmm18,%zmm12,%zmm7 + vmovdqu64 640(%rsp),%zmm19 + vpclmulqdq $0x11,%zmm19,%zmm4,%zmm1 + vpclmulqdq $0x00,%zmm19,%zmm4,%zmm9 + vpclmulqdq $0x01,%zmm19,%zmm4,%zmm10 + vpclmulqdq $0x10,%zmm19,%zmm4,%zmm12 + vmovdqu64 704(%rsp),%zmm19 + vpclmulqdq $0x11,%zmm19,%zmm5,%zmm13 + vpclmulqdq $0x00,%zmm19,%zmm5,%zmm15 + vpclmulqdq $0x01,%zmm19,%zmm5,%zmm17 + vpclmulqdq $0x10,%zmm19,%zmm5,%zmm18 + + vpternlogq $0x96,%zmm17,%zmm10,%zmm7 + vpternlogq $0x96,%zmm13,%zmm1,%zmm6 + vpternlogq $0x96,%zmm15,%zmm9,%zmm8 + vpternlogq $0x96,%zmm18,%zmm12,%zmm7 + + vpsrldq $8,%zmm7,%zmm1 + vpslldq $8,%zmm7,%zmm9 + vpxorq %zmm1,%zmm6,%zmm6 + vpxorq %zmm9,%zmm8,%zmm8 + vextracti64x4 $1,%zmm6,%ymm1 + vpxorq %ymm1,%ymm6,%ymm6 + vextracti32x4 $1,%ymm6,%xmm1 + vpxorq %xmm1,%xmm6,%xmm6 + vextracti64x4 $1,%zmm8,%ymm9 + vpxorq %ymm9,%ymm8,%ymm8 + vextracti32x4 $1,%ymm8,%xmm9 + vpxorq %xmm9,%xmm8,%xmm8 + vmovdqa64 POLY2(%rip),%xmm10 + + + vpclmulqdq $0x01,%xmm8,%xmm10,%xmm1 + vpslldq $8,%xmm1,%xmm1 + vpxorq %xmm1,%xmm8,%xmm1 + + + vpclmulqdq $0x00,%xmm1,%xmm10,%xmm9 + vpsrldq $4,%xmm9,%xmm9 + vpclmulqdq $0x10,%xmm1,%xmm10,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm6,%xmm9,%xmm14 + + subq $512,%r11 + je L$_CALC_AAD_done_6 + + addq $512,%r10 + jmp L$_less_than_16x16_6 + +L$_less_than_32x16_6: + cmpq $256,%r11 + jl L$_less_than_16x16_6 + + vmovdqu64 0(%r10),%zmm11 + vmovdqu64 64(%r10),%zmm3 + vmovdqu64 128(%r10),%zmm4 + vmovdqu64 192(%r10),%zmm5 + vpshufb %zmm16,%zmm11,%zmm11 + vpshufb %zmm16,%zmm3,%zmm3 + vpshufb %zmm16,%zmm4,%zmm4 + vpshufb %zmm16,%zmm5,%zmm5 + vpxorq %zmm14,%zmm11,%zmm11 + vmovdqu64 96(%rdi),%zmm19 + vpclmulqdq $0x11,%zmm19,%zmm11,%zmm1 + vpclmulqdq $0x00,%zmm19,%zmm11,%zmm9 + vpclmulqdq $0x01,%zmm19,%zmm11,%zmm10 + vpclmulqdq $0x10,%zmm19,%zmm11,%zmm12 + vmovdqu64 160(%rdi),%zmm19 + vpclmulqdq $0x11,%zmm19,%zmm3,%zmm13 + vpclmulqdq $0x00,%zmm19,%zmm3,%zmm15 + vpclmulqdq $0x01,%zmm19,%zmm3,%zmm17 + vpclmulqdq $0x10,%zmm19,%zmm3,%zmm18 + vpxorq %zmm17,%zmm10,%zmm7 + vpxorq %zmm13,%zmm1,%zmm6 + vpxorq %zmm15,%zmm9,%zmm8 + vpternlogq $0x96,%zmm18,%zmm12,%zmm7 + vmovdqu64 224(%rdi),%zmm19 + vpclmulqdq $0x11,%zmm19,%zmm4,%zmm1 + vpclmulqdq $0x00,%zmm19,%zmm4,%zmm9 + vpclmulqdq $0x01,%zmm19,%zmm4,%zmm10 + vpclmulqdq $0x10,%zmm19,%zmm4,%zmm12 + vmovdqu64 288(%rdi),%zmm19 + vpclmulqdq $0x11,%zmm19,%zmm5,%zmm13 + vpclmulqdq $0x00,%zmm19,%zmm5,%zmm15 + vpclmulqdq $0x01,%zmm19,%zmm5,%zmm17 + vpclmulqdq $0x10,%zmm19,%zmm5,%zmm18 + + vpternlogq $0x96,%zmm17,%zmm10,%zmm7 + vpternlogq $0x96,%zmm13,%zmm1,%zmm6 + vpternlogq $0x96,%zmm15,%zmm9,%zmm8 + vpternlogq $0x96,%zmm18,%zmm12,%zmm7 + + vpsrldq $8,%zmm7,%zmm1 + vpslldq $8,%zmm7,%zmm9 + vpxorq %zmm1,%zmm6,%zmm6 + vpxorq %zmm9,%zmm8,%zmm8 + vextracti64x4 $1,%zmm6,%ymm1 + vpxorq %ymm1,%ymm6,%ymm6 + vextracti32x4 $1,%ymm6,%xmm1 + vpxorq %xmm1,%xmm6,%xmm6 + vextracti64x4 $1,%zmm8,%ymm9 + vpxorq %ymm9,%ymm8,%ymm8 + vextracti32x4 $1,%ymm8,%xmm9 + vpxorq %xmm9,%xmm8,%xmm8 + vmovdqa64 POLY2(%rip),%xmm10 + + + vpclmulqdq $0x01,%xmm8,%xmm10,%xmm1 + vpslldq $8,%xmm1,%xmm1 + vpxorq %xmm1,%xmm8,%xmm1 + + + vpclmulqdq $0x00,%xmm1,%xmm10,%xmm9 + vpsrldq $4,%xmm9,%xmm9 + vpclmulqdq $0x10,%xmm1,%xmm10,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm6,%xmm9,%xmm14 + + subq $256,%r11 + je L$_CALC_AAD_done_6 + + addq $256,%r10 + +L$_less_than_16x16_6: + + leaq byte64_len_to_mask_table(%rip),%r12 + leaq (%r12,%r11,8),%r12 + + + addl $15,%r11d + shrl $4,%r11d + cmpl $2,%r11d + jb L$_AAD_blocks_1_6 + je L$_AAD_blocks_2_6 + cmpl $4,%r11d + jb L$_AAD_blocks_3_6 + je L$_AAD_blocks_4_6 + cmpl $6,%r11d + jb L$_AAD_blocks_5_6 + je L$_AAD_blocks_6_6 + cmpl $8,%r11d + jb L$_AAD_blocks_7_6 + je L$_AAD_blocks_8_6 + cmpl $10,%r11d + jb L$_AAD_blocks_9_6 + je L$_AAD_blocks_10_6 + cmpl $12,%r11d + jb L$_AAD_blocks_11_6 + je L$_AAD_blocks_12_6 + cmpl $14,%r11d + jb L$_AAD_blocks_13_6 + je L$_AAD_blocks_14_6 + cmpl $15,%r11d + je L$_AAD_blocks_15_6 +L$_AAD_blocks_16_6: + subq $1536,%r12 + kmovq (%r12),%k1 + vmovdqu8 0(%r10),%zmm11 + vmovdqu8 64(%r10),%zmm3 + vmovdqu8 128(%r10),%zmm4 + vmovdqu8 192(%r10),%zmm5{%k1}{z} + vpshufb %zmm16,%zmm11,%zmm11 + vpshufb %zmm16,%zmm3,%zmm3 + vpshufb %zmm16,%zmm4,%zmm4 + vpshufb %zmm16,%zmm5,%zmm5 + vpxorq %zmm14,%zmm11,%zmm11 + vmovdqu64 96(%rdi),%zmm15 + vpclmulqdq $0x11,%zmm15,%zmm11,%zmm1 + vpclmulqdq $0x00,%zmm15,%zmm11,%zmm6 + vpclmulqdq $0x01,%zmm15,%zmm11,%zmm7 + vpclmulqdq $0x10,%zmm15,%zmm11,%zmm8 + vmovdqu64 160(%rdi),%zmm15 + vpclmulqdq $0x11,%zmm15,%zmm3,%zmm9 + vpclmulqdq $0x00,%zmm15,%zmm3,%zmm10 + vpclmulqdq $0x01,%zmm15,%zmm3,%zmm12 + vpclmulqdq $0x10,%zmm15,%zmm3,%zmm13 + vmovdqu64 224(%rdi),%zmm15 + vpclmulqdq $0x11,%zmm15,%zmm4,%zmm11 + vpclmulqdq $0x00,%zmm15,%zmm4,%zmm3 + vpternlogq $0x96,%zmm9,%zmm11,%zmm1 + vpternlogq $0x96,%zmm10,%zmm3,%zmm6 + vpclmulqdq $0x01,%zmm15,%zmm4,%zmm11 + vpclmulqdq $0x10,%zmm15,%zmm4,%zmm3 + vpternlogq $0x96,%zmm12,%zmm11,%zmm7 + vpternlogq $0x96,%zmm13,%zmm3,%zmm8 + vmovdqu64 288(%rdi),%zmm15 + vpclmulqdq $0x11,%zmm15,%zmm5,%zmm9 + vpclmulqdq $0x00,%zmm15,%zmm5,%zmm10 + vpclmulqdq $0x01,%zmm15,%zmm5,%zmm12 + vpclmulqdq $0x10,%zmm15,%zmm5,%zmm13 + vpxorq %zmm9,%zmm1,%zmm9 + vpxorq %zmm10,%zmm6,%zmm10 + vpxorq %zmm12,%zmm7,%zmm12 + vpxorq %zmm13,%zmm8,%zmm13 + + vpxorq %zmm13,%zmm12,%zmm12 + vpsrldq $8,%zmm12,%zmm7 + vpslldq $8,%zmm12,%zmm8 + vpxorq %zmm7,%zmm9,%zmm1 + vpxorq %zmm8,%zmm10,%zmm6 + vextracti64x4 $1,%zmm1,%ymm12 + vpxorq %ymm12,%ymm1,%ymm1 + vextracti32x4 $1,%ymm1,%xmm12 + vpxorq %xmm12,%xmm1,%xmm1 + vextracti64x4 $1,%zmm6,%ymm13 + vpxorq %ymm13,%ymm6,%ymm6 + vextracti32x4 $1,%ymm6,%xmm13 + vpxorq %xmm13,%xmm6,%xmm6 + vmovdqa64 POLY2(%rip),%xmm15 + + + vpclmulqdq $0x01,%xmm6,%xmm15,%xmm7 + vpslldq $8,%xmm7,%xmm7 + vpxorq %xmm7,%xmm6,%xmm7 + + + vpclmulqdq $0x00,%xmm7,%xmm15,%xmm8 + vpsrldq $4,%xmm8,%xmm8 + vpclmulqdq $0x10,%xmm7,%xmm15,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm1,%xmm8,%xmm14 + + jmp L$_CALC_AAD_done_6 +L$_AAD_blocks_15_6: + subq $1536,%r12 + kmovq (%r12),%k1 + vmovdqu8 0(%r10),%zmm11 + vmovdqu8 64(%r10),%zmm3 + vmovdqu8 128(%r10),%zmm4 + vmovdqu8 192(%r10),%zmm5{%k1}{z} + vpshufb %zmm16,%zmm11,%zmm11 + vpshufb %zmm16,%zmm3,%zmm3 + vpshufb %zmm16,%zmm4,%zmm4 + vpshufb %zmm16,%zmm5,%zmm5 + vpxorq %zmm14,%zmm11,%zmm11 + vmovdqu64 112(%rdi),%zmm15 + vpclmulqdq $0x11,%zmm15,%zmm11,%zmm1 + vpclmulqdq $0x00,%zmm15,%zmm11,%zmm6 + vpclmulqdq $0x01,%zmm15,%zmm11,%zmm7 + vpclmulqdq $0x10,%zmm15,%zmm11,%zmm8 + vmovdqu64 176(%rdi),%zmm15 + vpclmulqdq $0x11,%zmm15,%zmm3,%zmm9 + vpclmulqdq $0x00,%zmm15,%zmm3,%zmm10 + vpclmulqdq $0x01,%zmm15,%zmm3,%zmm12 + vpclmulqdq $0x10,%zmm15,%zmm3,%zmm13 + vmovdqu64 240(%rdi),%zmm15 + vpclmulqdq $0x11,%zmm15,%zmm4,%zmm11 + vpclmulqdq $0x00,%zmm15,%zmm4,%zmm3 + vpternlogq $0x96,%zmm1,%zmm11,%zmm9 + vpternlogq $0x96,%zmm6,%zmm3,%zmm10 + vpclmulqdq $0x01,%zmm15,%zmm4,%zmm11 + vpclmulqdq $0x10,%zmm15,%zmm4,%zmm3 + vpternlogq $0x96,%zmm7,%zmm11,%zmm12 + vpternlogq $0x96,%zmm8,%zmm3,%zmm13 + vmovdqu64 304(%rdi),%ymm15 + vinserti64x2 $2,336(%rdi),%zmm15,%zmm15 + vpclmulqdq $0x01,%zmm15,%zmm5,%zmm7 + vpclmulqdq $0x10,%zmm15,%zmm5,%zmm8 + vpclmulqdq $0x11,%zmm15,%zmm5,%zmm1 + vpclmulqdq $0x00,%zmm15,%zmm5,%zmm6 + + vpxorq %zmm12,%zmm7,%zmm7 + vpxorq %zmm13,%zmm8,%zmm8 + vpxorq %zmm9,%zmm1,%zmm1 + vpxorq %zmm10,%zmm6,%zmm6 + + vpxorq %zmm8,%zmm7,%zmm7 + vpsrldq $8,%zmm7,%zmm12 + vpslldq $8,%zmm7,%zmm13 + vpxorq %zmm12,%zmm1,%zmm1 + vpxorq %zmm13,%zmm6,%zmm6 + vextracti64x4 $1,%zmm1,%ymm12 + vpxorq %ymm12,%ymm1,%ymm1 + vextracti32x4 $1,%ymm1,%xmm12 + vpxorq %xmm12,%xmm1,%xmm1 + vextracti64x4 $1,%zmm6,%ymm13 + vpxorq %ymm13,%ymm6,%ymm6 + vextracti32x4 $1,%ymm6,%xmm13 + vpxorq %xmm13,%xmm6,%xmm6 + vmovdqa64 POLY2(%rip),%xmm15 + + + vpclmulqdq $0x01,%xmm6,%xmm15,%xmm7 + vpslldq $8,%xmm7,%xmm7 + vpxorq %xmm7,%xmm6,%xmm7 + + + vpclmulqdq $0x00,%xmm7,%xmm15,%xmm8 + vpsrldq $4,%xmm8,%xmm8 + vpclmulqdq $0x10,%xmm7,%xmm15,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm1,%xmm8,%xmm14 + + jmp L$_CALC_AAD_done_6 +L$_AAD_blocks_14_6: + subq $1536,%r12 + kmovq (%r12),%k1 + vmovdqu8 0(%r10),%zmm11 + vmovdqu8 64(%r10),%zmm3 + vmovdqu8 128(%r10),%zmm4 + vmovdqu8 192(%r10),%ymm5{%k1}{z} + vpshufb %zmm16,%zmm11,%zmm11 + vpshufb %zmm16,%zmm3,%zmm3 + vpshufb %zmm16,%zmm4,%zmm4 + vpshufb %ymm16,%ymm5,%ymm5 + vpxorq %zmm14,%zmm11,%zmm11 + vmovdqu64 128(%rdi),%zmm15 + vpclmulqdq $0x11,%zmm15,%zmm11,%zmm1 + vpclmulqdq $0x00,%zmm15,%zmm11,%zmm6 + vpclmulqdq $0x01,%zmm15,%zmm11,%zmm7 + vpclmulqdq $0x10,%zmm15,%zmm11,%zmm8 + vmovdqu64 192(%rdi),%zmm15 + vpclmulqdq $0x11,%zmm15,%zmm3,%zmm9 + vpclmulqdq $0x00,%zmm15,%zmm3,%zmm10 + vpclmulqdq $0x01,%zmm15,%zmm3,%zmm12 + vpclmulqdq $0x10,%zmm15,%zmm3,%zmm13 + vmovdqu64 256(%rdi),%zmm15 + vpclmulqdq $0x11,%zmm15,%zmm4,%zmm11 + vpclmulqdq $0x00,%zmm15,%zmm4,%zmm3 + vpternlogq $0x96,%zmm1,%zmm11,%zmm9 + vpternlogq $0x96,%zmm6,%zmm3,%zmm10 + vpclmulqdq $0x01,%zmm15,%zmm4,%zmm11 + vpclmulqdq $0x10,%zmm15,%zmm4,%zmm3 + vpternlogq $0x96,%zmm7,%zmm11,%zmm12 + vpternlogq $0x96,%zmm8,%zmm3,%zmm13 + vmovdqu64 320(%rdi),%ymm15 + vpclmulqdq $0x01,%ymm15,%ymm5,%ymm7 + vpclmulqdq $0x10,%ymm15,%ymm5,%ymm8 + vpclmulqdq $0x11,%ymm15,%ymm5,%ymm1 + vpclmulqdq $0x00,%ymm15,%ymm5,%ymm6 + + vpxorq %zmm12,%zmm7,%zmm7 + vpxorq %zmm13,%zmm8,%zmm8 + vpxorq %zmm9,%zmm1,%zmm1 + vpxorq %zmm10,%zmm6,%zmm6 + + vpxorq %zmm8,%zmm7,%zmm7 + vpsrldq $8,%zmm7,%zmm12 + vpslldq $8,%zmm7,%zmm13 + vpxorq %zmm12,%zmm1,%zmm1 + vpxorq %zmm13,%zmm6,%zmm6 + vextracti64x4 $1,%zmm1,%ymm12 + vpxorq %ymm12,%ymm1,%ymm1 + vextracti32x4 $1,%ymm1,%xmm12 + vpxorq %xmm12,%xmm1,%xmm1 + vextracti64x4 $1,%zmm6,%ymm13 + vpxorq %ymm13,%ymm6,%ymm6 + vextracti32x4 $1,%ymm6,%xmm13 + vpxorq %xmm13,%xmm6,%xmm6 + vmovdqa64 POLY2(%rip),%xmm15 + + + vpclmulqdq $0x01,%xmm6,%xmm15,%xmm7 + vpslldq $8,%xmm7,%xmm7 + vpxorq %xmm7,%xmm6,%xmm7 + + + vpclmulqdq $0x00,%xmm7,%xmm15,%xmm8 + vpsrldq $4,%xmm8,%xmm8 + vpclmulqdq $0x10,%xmm7,%xmm15,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm1,%xmm8,%xmm14 + + jmp L$_CALC_AAD_done_6 +L$_AAD_blocks_13_6: + subq $1536,%r12 + kmovq (%r12),%k1 + vmovdqu8 0(%r10),%zmm11 + vmovdqu8 64(%r10),%zmm3 + vmovdqu8 128(%r10),%zmm4 + vmovdqu8 192(%r10),%xmm5{%k1}{z} + vpshufb %zmm16,%zmm11,%zmm11 + vpshufb %zmm16,%zmm3,%zmm3 + vpshufb %zmm16,%zmm4,%zmm4 + vpshufb %xmm16,%xmm5,%xmm5 + vpxorq %zmm14,%zmm11,%zmm11 + vmovdqu64 144(%rdi),%zmm15 + vpclmulqdq $0x11,%zmm15,%zmm11,%zmm1 + vpclmulqdq $0x00,%zmm15,%zmm11,%zmm6 + vpclmulqdq $0x01,%zmm15,%zmm11,%zmm7 + vpclmulqdq $0x10,%zmm15,%zmm11,%zmm8 + vmovdqu64 208(%rdi),%zmm15 + vpclmulqdq $0x11,%zmm15,%zmm3,%zmm9 + vpclmulqdq $0x00,%zmm15,%zmm3,%zmm10 + vpclmulqdq $0x01,%zmm15,%zmm3,%zmm12 + vpclmulqdq $0x10,%zmm15,%zmm3,%zmm13 + vmovdqu64 272(%rdi),%zmm15 + vpclmulqdq $0x11,%zmm15,%zmm4,%zmm11 + vpclmulqdq $0x00,%zmm15,%zmm4,%zmm3 + vpternlogq $0x96,%zmm1,%zmm11,%zmm9 + vpternlogq $0x96,%zmm6,%zmm3,%zmm10 + vpclmulqdq $0x01,%zmm15,%zmm4,%zmm11 + vpclmulqdq $0x10,%zmm15,%zmm4,%zmm3 + vpternlogq $0x96,%zmm7,%zmm11,%zmm12 + vpternlogq $0x96,%zmm8,%zmm3,%zmm13 + vmovdqu64 336(%rdi),%xmm15 + vpclmulqdq $0x01,%xmm15,%xmm5,%xmm7 + vpclmulqdq $0x10,%xmm15,%xmm5,%xmm8 + vpclmulqdq $0x11,%xmm15,%xmm5,%xmm1 + vpclmulqdq $0x00,%xmm15,%xmm5,%xmm6 + + vpxorq %zmm12,%zmm7,%zmm7 + vpxorq %zmm13,%zmm8,%zmm8 + vpxorq %zmm9,%zmm1,%zmm1 + vpxorq %zmm10,%zmm6,%zmm6 + + vpxorq %zmm8,%zmm7,%zmm7 + vpsrldq $8,%zmm7,%zmm12 + vpslldq $8,%zmm7,%zmm13 + vpxorq %zmm12,%zmm1,%zmm1 + vpxorq %zmm13,%zmm6,%zmm6 + vextracti64x4 $1,%zmm1,%ymm12 + vpxorq %ymm12,%ymm1,%ymm1 + vextracti32x4 $1,%ymm1,%xmm12 + vpxorq %xmm12,%xmm1,%xmm1 + vextracti64x4 $1,%zmm6,%ymm13 + vpxorq %ymm13,%ymm6,%ymm6 + vextracti32x4 $1,%ymm6,%xmm13 + vpxorq %xmm13,%xmm6,%xmm6 + vmovdqa64 POLY2(%rip),%xmm15 + + + vpclmulqdq $0x01,%xmm6,%xmm15,%xmm7 + vpslldq $8,%xmm7,%xmm7 + vpxorq %xmm7,%xmm6,%xmm7 + + + vpclmulqdq $0x00,%xmm7,%xmm15,%xmm8 + vpsrldq $4,%xmm8,%xmm8 + vpclmulqdq $0x10,%xmm7,%xmm15,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm1,%xmm8,%xmm14 + + jmp L$_CALC_AAD_done_6 +L$_AAD_blocks_12_6: + subq $1024,%r12 + kmovq (%r12),%k1 + vmovdqu8 0(%r10),%zmm11 + vmovdqu8 64(%r10),%zmm3 + vmovdqu8 128(%r10),%zmm4{%k1}{z} + vpshufb %zmm16,%zmm11,%zmm11 + vpshufb %zmm16,%zmm3,%zmm3 + vpshufb %zmm16,%zmm4,%zmm4 + vpxorq %zmm14,%zmm11,%zmm11 + vmovdqu64 160(%rdi),%zmm15 + vpclmulqdq $0x11,%zmm15,%zmm11,%zmm1 + vpclmulqdq $0x00,%zmm15,%zmm11,%zmm6 + vpclmulqdq $0x01,%zmm15,%zmm11,%zmm7 + vpclmulqdq $0x10,%zmm15,%zmm11,%zmm8 + vmovdqu64 224(%rdi),%zmm15 + vpclmulqdq $0x11,%zmm15,%zmm3,%zmm9 + vpclmulqdq $0x00,%zmm15,%zmm3,%zmm10 + vpclmulqdq $0x01,%zmm15,%zmm3,%zmm12 + vpclmulqdq $0x10,%zmm15,%zmm3,%zmm13 + vmovdqu64 288(%rdi),%zmm15 + vpclmulqdq $0x11,%zmm15,%zmm4,%zmm11 + vpclmulqdq $0x00,%zmm15,%zmm4,%zmm3 + vpternlogq $0x96,%zmm1,%zmm11,%zmm9 + vpternlogq $0x96,%zmm6,%zmm3,%zmm10 + vpclmulqdq $0x01,%zmm15,%zmm4,%zmm11 + vpclmulqdq $0x10,%zmm15,%zmm4,%zmm3 + vpternlogq $0x96,%zmm7,%zmm11,%zmm12 + vpternlogq $0x96,%zmm8,%zmm3,%zmm13 + + vpxorq %zmm13,%zmm12,%zmm12 + vpsrldq $8,%zmm12,%zmm7 + vpslldq $8,%zmm12,%zmm8 + vpxorq %zmm7,%zmm9,%zmm1 + vpxorq %zmm8,%zmm10,%zmm6 + vextracti64x4 $1,%zmm1,%ymm12 + vpxorq %ymm12,%ymm1,%ymm1 + vextracti32x4 $1,%ymm1,%xmm12 + vpxorq %xmm12,%xmm1,%xmm1 + vextracti64x4 $1,%zmm6,%ymm13 + vpxorq %ymm13,%ymm6,%ymm6 + vextracti32x4 $1,%ymm6,%xmm13 + vpxorq %xmm13,%xmm6,%xmm6 + vmovdqa64 POLY2(%rip),%xmm15 + + + vpclmulqdq $0x01,%xmm6,%xmm15,%xmm7 + vpslldq $8,%xmm7,%xmm7 + vpxorq %xmm7,%xmm6,%xmm7 + + + vpclmulqdq $0x00,%xmm7,%xmm15,%xmm8 + vpsrldq $4,%xmm8,%xmm8 + vpclmulqdq $0x10,%xmm7,%xmm15,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm1,%xmm8,%xmm14 + + jmp L$_CALC_AAD_done_6 +L$_AAD_blocks_11_6: + subq $1024,%r12 + kmovq (%r12),%k1 + vmovdqu8 0(%r10),%zmm11 + vmovdqu8 64(%r10),%zmm3 + vmovdqu8 128(%r10),%zmm4{%k1}{z} + vpshufb %zmm16,%zmm11,%zmm11 + vpshufb %zmm16,%zmm3,%zmm3 + vpshufb %zmm16,%zmm4,%zmm4 + vpxorq %zmm14,%zmm11,%zmm11 + vmovdqu64 176(%rdi),%zmm15 + vpclmulqdq $0x11,%zmm15,%zmm11,%zmm1 + vpclmulqdq $0x00,%zmm15,%zmm11,%zmm6 + vpclmulqdq $0x01,%zmm15,%zmm11,%zmm7 + vpclmulqdq $0x10,%zmm15,%zmm11,%zmm8 + vmovdqu64 240(%rdi),%zmm15 + vpclmulqdq $0x11,%zmm15,%zmm3,%zmm9 + vpclmulqdq $0x00,%zmm15,%zmm3,%zmm10 + vpclmulqdq $0x01,%zmm15,%zmm3,%zmm12 + vpclmulqdq $0x10,%zmm15,%zmm3,%zmm13 + vpxorq %zmm9,%zmm1,%zmm9 + vpxorq %zmm10,%zmm6,%zmm10 + vpxorq %zmm12,%zmm7,%zmm12 + vpxorq %zmm13,%zmm8,%zmm13 + vmovdqu64 304(%rdi),%ymm15 + vinserti64x2 $2,336(%rdi),%zmm15,%zmm15 + vpclmulqdq $0x01,%zmm15,%zmm4,%zmm7 + vpclmulqdq $0x10,%zmm15,%zmm4,%zmm8 + vpclmulqdq $0x11,%zmm15,%zmm4,%zmm1 + vpclmulqdq $0x00,%zmm15,%zmm4,%zmm6 + + vpxorq %zmm12,%zmm7,%zmm7 + vpxorq %zmm13,%zmm8,%zmm8 + vpxorq %zmm9,%zmm1,%zmm1 + vpxorq %zmm10,%zmm6,%zmm6 + + vpxorq %zmm8,%zmm7,%zmm7 + vpsrldq $8,%zmm7,%zmm12 + vpslldq $8,%zmm7,%zmm13 + vpxorq %zmm12,%zmm1,%zmm1 + vpxorq %zmm13,%zmm6,%zmm6 + vextracti64x4 $1,%zmm1,%ymm12 + vpxorq %ymm12,%ymm1,%ymm1 + vextracti32x4 $1,%ymm1,%xmm12 + vpxorq %xmm12,%xmm1,%xmm1 + vextracti64x4 $1,%zmm6,%ymm13 + vpxorq %ymm13,%ymm6,%ymm6 + vextracti32x4 $1,%ymm6,%xmm13 + vpxorq %xmm13,%xmm6,%xmm6 + vmovdqa64 POLY2(%rip),%xmm15 + + + vpclmulqdq $0x01,%xmm6,%xmm15,%xmm7 + vpslldq $8,%xmm7,%xmm7 + vpxorq %xmm7,%xmm6,%xmm7 + + + vpclmulqdq $0x00,%xmm7,%xmm15,%xmm8 + vpsrldq $4,%xmm8,%xmm8 + vpclmulqdq $0x10,%xmm7,%xmm15,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm1,%xmm8,%xmm14 + + jmp L$_CALC_AAD_done_6 +L$_AAD_blocks_10_6: + subq $1024,%r12 + kmovq (%r12),%k1 + vmovdqu8 0(%r10),%zmm11 + vmovdqu8 64(%r10),%zmm3 + vmovdqu8 128(%r10),%ymm4{%k1}{z} + vpshufb %zmm16,%zmm11,%zmm11 + vpshufb %zmm16,%zmm3,%zmm3 + vpshufb %ymm16,%ymm4,%ymm4 + vpxorq %zmm14,%zmm11,%zmm11 + vmovdqu64 192(%rdi),%zmm15 + vpclmulqdq $0x11,%zmm15,%zmm11,%zmm1 + vpclmulqdq $0x00,%zmm15,%zmm11,%zmm6 + vpclmulqdq $0x01,%zmm15,%zmm11,%zmm7 + vpclmulqdq $0x10,%zmm15,%zmm11,%zmm8 + vmovdqu64 256(%rdi),%zmm15 + vpclmulqdq $0x11,%zmm15,%zmm3,%zmm9 + vpclmulqdq $0x00,%zmm15,%zmm3,%zmm10 + vpclmulqdq $0x01,%zmm15,%zmm3,%zmm12 + vpclmulqdq $0x10,%zmm15,%zmm3,%zmm13 + vpxorq %zmm9,%zmm1,%zmm9 + vpxorq %zmm10,%zmm6,%zmm10 + vpxorq %zmm12,%zmm7,%zmm12 + vpxorq %zmm13,%zmm8,%zmm13 + vmovdqu64 320(%rdi),%ymm15 + vpclmulqdq $0x01,%ymm15,%ymm4,%ymm7 + vpclmulqdq $0x10,%ymm15,%ymm4,%ymm8 + vpclmulqdq $0x11,%ymm15,%ymm4,%ymm1 + vpclmulqdq $0x00,%ymm15,%ymm4,%ymm6 + + vpxorq %zmm12,%zmm7,%zmm7 + vpxorq %zmm13,%zmm8,%zmm8 + vpxorq %zmm9,%zmm1,%zmm1 + vpxorq %zmm10,%zmm6,%zmm6 + + vpxorq %zmm8,%zmm7,%zmm7 + vpsrldq $8,%zmm7,%zmm12 + vpslldq $8,%zmm7,%zmm13 + vpxorq %zmm12,%zmm1,%zmm1 + vpxorq %zmm13,%zmm6,%zmm6 + vextracti64x4 $1,%zmm1,%ymm12 + vpxorq %ymm12,%ymm1,%ymm1 + vextracti32x4 $1,%ymm1,%xmm12 + vpxorq %xmm12,%xmm1,%xmm1 + vextracti64x4 $1,%zmm6,%ymm13 + vpxorq %ymm13,%ymm6,%ymm6 + vextracti32x4 $1,%ymm6,%xmm13 + vpxorq %xmm13,%xmm6,%xmm6 + vmovdqa64 POLY2(%rip),%xmm15 + + + vpclmulqdq $0x01,%xmm6,%xmm15,%xmm7 + vpslldq $8,%xmm7,%xmm7 + vpxorq %xmm7,%xmm6,%xmm7 + + + vpclmulqdq $0x00,%xmm7,%xmm15,%xmm8 + vpsrldq $4,%xmm8,%xmm8 + vpclmulqdq $0x10,%xmm7,%xmm15,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm1,%xmm8,%xmm14 + + jmp L$_CALC_AAD_done_6 +L$_AAD_blocks_9_6: + subq $1024,%r12 + kmovq (%r12),%k1 + vmovdqu8 0(%r10),%zmm11 + vmovdqu8 64(%r10),%zmm3 + vmovdqu8 128(%r10),%xmm4{%k1}{z} + vpshufb %zmm16,%zmm11,%zmm11 + vpshufb %zmm16,%zmm3,%zmm3 + vpshufb %xmm16,%xmm4,%xmm4 + vpxorq %zmm14,%zmm11,%zmm11 + vmovdqu64 208(%rdi),%zmm15 + vpclmulqdq $0x11,%zmm15,%zmm11,%zmm1 + vpclmulqdq $0x00,%zmm15,%zmm11,%zmm6 + vpclmulqdq $0x01,%zmm15,%zmm11,%zmm7 + vpclmulqdq $0x10,%zmm15,%zmm11,%zmm8 + vmovdqu64 272(%rdi),%zmm15 + vpclmulqdq $0x11,%zmm15,%zmm3,%zmm9 + vpclmulqdq $0x00,%zmm15,%zmm3,%zmm10 + vpclmulqdq $0x01,%zmm15,%zmm3,%zmm12 + vpclmulqdq $0x10,%zmm15,%zmm3,%zmm13 + vpxorq %zmm9,%zmm1,%zmm9 + vpxorq %zmm10,%zmm6,%zmm10 + vpxorq %zmm12,%zmm7,%zmm12 + vpxorq %zmm13,%zmm8,%zmm13 + vmovdqu64 336(%rdi),%xmm15 + vpclmulqdq $0x01,%xmm15,%xmm4,%xmm7 + vpclmulqdq $0x10,%xmm15,%xmm4,%xmm8 + vpclmulqdq $0x11,%xmm15,%xmm4,%xmm1 + vpclmulqdq $0x00,%xmm15,%xmm4,%xmm6 + + vpxorq %zmm12,%zmm7,%zmm7 + vpxorq %zmm13,%zmm8,%zmm8 + vpxorq %zmm9,%zmm1,%zmm1 + vpxorq %zmm10,%zmm6,%zmm6 + + vpxorq %zmm8,%zmm7,%zmm7 + vpsrldq $8,%zmm7,%zmm12 + vpslldq $8,%zmm7,%zmm13 + vpxorq %zmm12,%zmm1,%zmm1 + vpxorq %zmm13,%zmm6,%zmm6 + vextracti64x4 $1,%zmm1,%ymm12 + vpxorq %ymm12,%ymm1,%ymm1 + vextracti32x4 $1,%ymm1,%xmm12 + vpxorq %xmm12,%xmm1,%xmm1 + vextracti64x4 $1,%zmm6,%ymm13 + vpxorq %ymm13,%ymm6,%ymm6 + vextracti32x4 $1,%ymm6,%xmm13 + vpxorq %xmm13,%xmm6,%xmm6 + vmovdqa64 POLY2(%rip),%xmm15 + + + vpclmulqdq $0x01,%xmm6,%xmm15,%xmm7 + vpslldq $8,%xmm7,%xmm7 + vpxorq %xmm7,%xmm6,%xmm7 + + + vpclmulqdq $0x00,%xmm7,%xmm15,%xmm8 + vpsrldq $4,%xmm8,%xmm8 + vpclmulqdq $0x10,%xmm7,%xmm15,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm1,%xmm8,%xmm14 + + jmp L$_CALC_AAD_done_6 +L$_AAD_blocks_8_6: + subq $512,%r12 + kmovq (%r12),%k1 + vmovdqu8 0(%r10),%zmm11 + vmovdqu8 64(%r10),%zmm3{%k1}{z} + vpshufb %zmm16,%zmm11,%zmm11 + vpshufb %zmm16,%zmm3,%zmm3 + vpxorq %zmm14,%zmm11,%zmm11 + vmovdqu64 224(%rdi),%zmm15 + vpclmulqdq $0x11,%zmm15,%zmm11,%zmm1 + vpclmulqdq $0x00,%zmm15,%zmm11,%zmm6 + vpclmulqdq $0x01,%zmm15,%zmm11,%zmm7 + vpclmulqdq $0x10,%zmm15,%zmm11,%zmm8 + vmovdqu64 288(%rdi),%zmm15 + vpclmulqdq $0x11,%zmm15,%zmm3,%zmm9 + vpclmulqdq $0x00,%zmm15,%zmm3,%zmm10 + vpclmulqdq $0x01,%zmm15,%zmm3,%zmm12 + vpclmulqdq $0x10,%zmm15,%zmm3,%zmm13 + vpxorq %zmm9,%zmm1,%zmm9 + vpxorq %zmm10,%zmm6,%zmm10 + vpxorq %zmm12,%zmm7,%zmm12 + vpxorq %zmm13,%zmm8,%zmm13 + + vpxorq %zmm13,%zmm12,%zmm12 + vpsrldq $8,%zmm12,%zmm7 + vpslldq $8,%zmm12,%zmm8 + vpxorq %zmm7,%zmm9,%zmm1 + vpxorq %zmm8,%zmm10,%zmm6 + vextracti64x4 $1,%zmm1,%ymm12 + vpxorq %ymm12,%ymm1,%ymm1 + vextracti32x4 $1,%ymm1,%xmm12 + vpxorq %xmm12,%xmm1,%xmm1 + vextracti64x4 $1,%zmm6,%ymm13 + vpxorq %ymm13,%ymm6,%ymm6 + vextracti32x4 $1,%ymm6,%xmm13 + vpxorq %xmm13,%xmm6,%xmm6 + vmovdqa64 POLY2(%rip),%xmm15 + + + vpclmulqdq $0x01,%xmm6,%xmm15,%xmm7 + vpslldq $8,%xmm7,%xmm7 + vpxorq %xmm7,%xmm6,%xmm7 + + + vpclmulqdq $0x00,%xmm7,%xmm15,%xmm8 + vpsrldq $4,%xmm8,%xmm8 + vpclmulqdq $0x10,%xmm7,%xmm15,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm1,%xmm8,%xmm14 + + jmp L$_CALC_AAD_done_6 +L$_AAD_blocks_7_6: + subq $512,%r12 + kmovq (%r12),%k1 + vmovdqu8 0(%r10),%zmm11 + vmovdqu8 64(%r10),%zmm3{%k1}{z} + vpshufb %zmm16,%zmm11,%zmm11 + vpshufb %zmm16,%zmm3,%zmm3 + vpxorq %zmm14,%zmm11,%zmm11 + vmovdqu64 240(%rdi),%zmm15 + vpclmulqdq $0x11,%zmm15,%zmm11,%zmm9 + vpclmulqdq $0x00,%zmm15,%zmm11,%zmm10 + vpclmulqdq $0x01,%zmm15,%zmm11,%zmm12 + vpclmulqdq $0x10,%zmm15,%zmm11,%zmm13 + vmovdqu64 304(%rdi),%ymm15 + vinserti64x2 $2,336(%rdi),%zmm15,%zmm15 + vpclmulqdq $0x01,%zmm15,%zmm3,%zmm7 + vpclmulqdq $0x10,%zmm15,%zmm3,%zmm8 + vpclmulqdq $0x11,%zmm15,%zmm3,%zmm1 + vpclmulqdq $0x00,%zmm15,%zmm3,%zmm6 + + vpxorq %zmm12,%zmm7,%zmm7 + vpxorq %zmm13,%zmm8,%zmm8 + vpxorq %zmm9,%zmm1,%zmm1 + vpxorq %zmm10,%zmm6,%zmm6 + + vpxorq %zmm8,%zmm7,%zmm7 + vpsrldq $8,%zmm7,%zmm12 + vpslldq $8,%zmm7,%zmm13 + vpxorq %zmm12,%zmm1,%zmm1 + vpxorq %zmm13,%zmm6,%zmm6 + vextracti64x4 $1,%zmm1,%ymm12 + vpxorq %ymm12,%ymm1,%ymm1 + vextracti32x4 $1,%ymm1,%xmm12 + vpxorq %xmm12,%xmm1,%xmm1 + vextracti64x4 $1,%zmm6,%ymm13 + vpxorq %ymm13,%ymm6,%ymm6 + vextracti32x4 $1,%ymm6,%xmm13 + vpxorq %xmm13,%xmm6,%xmm6 + vmovdqa64 POLY2(%rip),%xmm15 + + + vpclmulqdq $0x01,%xmm6,%xmm15,%xmm7 + vpslldq $8,%xmm7,%xmm7 + vpxorq %xmm7,%xmm6,%xmm7 + + + vpclmulqdq $0x00,%xmm7,%xmm15,%xmm8 + vpsrldq $4,%xmm8,%xmm8 + vpclmulqdq $0x10,%xmm7,%xmm15,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm1,%xmm8,%xmm14 + + jmp L$_CALC_AAD_done_6 +L$_AAD_blocks_6_6: + subq $512,%r12 + kmovq (%r12),%k1 + vmovdqu8 0(%r10),%zmm11 + vmovdqu8 64(%r10),%ymm3{%k1}{z} + vpshufb %zmm16,%zmm11,%zmm11 + vpshufb %ymm16,%ymm3,%ymm3 + vpxorq %zmm14,%zmm11,%zmm11 + vmovdqu64 256(%rdi),%zmm15 + vpclmulqdq $0x11,%zmm15,%zmm11,%zmm9 + vpclmulqdq $0x00,%zmm15,%zmm11,%zmm10 + vpclmulqdq $0x01,%zmm15,%zmm11,%zmm12 + vpclmulqdq $0x10,%zmm15,%zmm11,%zmm13 + vmovdqu64 320(%rdi),%ymm15 + vpclmulqdq $0x01,%ymm15,%ymm3,%ymm7 + vpclmulqdq $0x10,%ymm15,%ymm3,%ymm8 + vpclmulqdq $0x11,%ymm15,%ymm3,%ymm1 + vpclmulqdq $0x00,%ymm15,%ymm3,%ymm6 + + vpxorq %zmm12,%zmm7,%zmm7 + vpxorq %zmm13,%zmm8,%zmm8 + vpxorq %zmm9,%zmm1,%zmm1 + vpxorq %zmm10,%zmm6,%zmm6 + + vpxorq %zmm8,%zmm7,%zmm7 + vpsrldq $8,%zmm7,%zmm12 + vpslldq $8,%zmm7,%zmm13 + vpxorq %zmm12,%zmm1,%zmm1 + vpxorq %zmm13,%zmm6,%zmm6 + vextracti64x4 $1,%zmm1,%ymm12 + vpxorq %ymm12,%ymm1,%ymm1 + vextracti32x4 $1,%ymm1,%xmm12 + vpxorq %xmm12,%xmm1,%xmm1 + vextracti64x4 $1,%zmm6,%ymm13 + vpxorq %ymm13,%ymm6,%ymm6 + vextracti32x4 $1,%ymm6,%xmm13 + vpxorq %xmm13,%xmm6,%xmm6 + vmovdqa64 POLY2(%rip),%xmm15 + + + vpclmulqdq $0x01,%xmm6,%xmm15,%xmm7 + vpslldq $8,%xmm7,%xmm7 + vpxorq %xmm7,%xmm6,%xmm7 + + + vpclmulqdq $0x00,%xmm7,%xmm15,%xmm8 + vpsrldq $4,%xmm8,%xmm8 + vpclmulqdq $0x10,%xmm7,%xmm15,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm1,%xmm8,%xmm14 + + jmp L$_CALC_AAD_done_6 +L$_AAD_blocks_5_6: + subq $512,%r12 + kmovq (%r12),%k1 + vmovdqu8 0(%r10),%zmm11 + vmovdqu8 64(%r10),%xmm3{%k1}{z} + vpshufb %zmm16,%zmm11,%zmm11 + vpshufb %xmm16,%xmm3,%xmm3 + vpxorq %zmm14,%zmm11,%zmm11 + vmovdqu64 272(%rdi),%zmm15 + vpclmulqdq $0x11,%zmm15,%zmm11,%zmm9 + vpclmulqdq $0x00,%zmm15,%zmm11,%zmm10 + vpclmulqdq $0x01,%zmm15,%zmm11,%zmm12 + vpclmulqdq $0x10,%zmm15,%zmm11,%zmm13 + vmovdqu64 336(%rdi),%xmm15 + vpclmulqdq $0x01,%xmm15,%xmm3,%xmm7 + vpclmulqdq $0x10,%xmm15,%xmm3,%xmm8 + vpclmulqdq $0x11,%xmm15,%xmm3,%xmm1 + vpclmulqdq $0x00,%xmm15,%xmm3,%xmm6 + + vpxorq %zmm12,%zmm7,%zmm7 + vpxorq %zmm13,%zmm8,%zmm8 + vpxorq %zmm9,%zmm1,%zmm1 + vpxorq %zmm10,%zmm6,%zmm6 + + vpxorq %zmm8,%zmm7,%zmm7 + vpsrldq $8,%zmm7,%zmm12 + vpslldq $8,%zmm7,%zmm13 + vpxorq %zmm12,%zmm1,%zmm1 + vpxorq %zmm13,%zmm6,%zmm6 + vextracti64x4 $1,%zmm1,%ymm12 + vpxorq %ymm12,%ymm1,%ymm1 + vextracti32x4 $1,%ymm1,%xmm12 + vpxorq %xmm12,%xmm1,%xmm1 + vextracti64x4 $1,%zmm6,%ymm13 + vpxorq %ymm13,%ymm6,%ymm6 + vextracti32x4 $1,%ymm6,%xmm13 + vpxorq %xmm13,%xmm6,%xmm6 + vmovdqa64 POLY2(%rip),%xmm15 + + + vpclmulqdq $0x01,%xmm6,%xmm15,%xmm7 + vpslldq $8,%xmm7,%xmm7 + vpxorq %xmm7,%xmm6,%xmm7 + + + vpclmulqdq $0x00,%xmm7,%xmm15,%xmm8 + vpsrldq $4,%xmm8,%xmm8 + vpclmulqdq $0x10,%xmm7,%xmm15,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm1,%xmm8,%xmm14 + + jmp L$_CALC_AAD_done_6 +L$_AAD_blocks_4_6: + kmovq (%r12),%k1 + vmovdqu8 0(%r10),%zmm11{%k1}{z} + vpshufb %zmm16,%zmm11,%zmm11 + vpxorq %zmm14,%zmm11,%zmm11 + vmovdqu64 288(%rdi),%zmm15 + vpclmulqdq $0x11,%zmm15,%zmm11,%zmm9 + vpclmulqdq $0x00,%zmm15,%zmm11,%zmm10 + vpclmulqdq $0x01,%zmm15,%zmm11,%zmm12 + vpclmulqdq $0x10,%zmm15,%zmm11,%zmm13 + + vpxorq %zmm13,%zmm12,%zmm12 + vpsrldq $8,%zmm12,%zmm7 + vpslldq $8,%zmm12,%zmm8 + vpxorq %zmm7,%zmm9,%zmm1 + vpxorq %zmm8,%zmm10,%zmm6 + vextracti64x4 $1,%zmm1,%ymm12 + vpxorq %ymm12,%ymm1,%ymm1 + vextracti32x4 $1,%ymm1,%xmm12 + vpxorq %xmm12,%xmm1,%xmm1 + vextracti64x4 $1,%zmm6,%ymm13 + vpxorq %ymm13,%ymm6,%ymm6 + vextracti32x4 $1,%ymm6,%xmm13 + vpxorq %xmm13,%xmm6,%xmm6 + vmovdqa64 POLY2(%rip),%xmm15 + + + vpclmulqdq $0x01,%xmm6,%xmm15,%xmm7 + vpslldq $8,%xmm7,%xmm7 + vpxorq %xmm7,%xmm6,%xmm7 + + + vpclmulqdq $0x00,%xmm7,%xmm15,%xmm8 + vpsrldq $4,%xmm8,%xmm8 + vpclmulqdq $0x10,%xmm7,%xmm15,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm1,%xmm8,%xmm14 + + jmp L$_CALC_AAD_done_6 +L$_AAD_blocks_3_6: + kmovq (%r12),%k1 + vmovdqu8 0(%r10),%zmm11{%k1}{z} + vpshufb %zmm16,%zmm11,%zmm11 + vpxorq %zmm14,%zmm11,%zmm11 + vmovdqu64 304(%rdi),%ymm15 + vinserti64x2 $2,336(%rdi),%zmm15,%zmm15 + vpclmulqdq $0x01,%zmm15,%zmm11,%zmm7 + vpclmulqdq $0x10,%zmm15,%zmm11,%zmm8 + vpclmulqdq $0x11,%zmm15,%zmm11,%zmm1 + vpclmulqdq $0x00,%zmm15,%zmm11,%zmm6 + + vpxorq %zmm8,%zmm7,%zmm7 + vpsrldq $8,%zmm7,%zmm12 + vpslldq $8,%zmm7,%zmm13 + vpxorq %zmm12,%zmm1,%zmm1 + vpxorq %zmm13,%zmm6,%zmm6 + vextracti64x4 $1,%zmm1,%ymm12 + vpxorq %ymm12,%ymm1,%ymm1 + vextracti32x4 $1,%ymm1,%xmm12 + vpxorq %xmm12,%xmm1,%xmm1 + vextracti64x4 $1,%zmm6,%ymm13 + vpxorq %ymm13,%ymm6,%ymm6 + vextracti32x4 $1,%ymm6,%xmm13 + vpxorq %xmm13,%xmm6,%xmm6 + vmovdqa64 POLY2(%rip),%xmm15 + + + vpclmulqdq $0x01,%xmm6,%xmm15,%xmm7 + vpslldq $8,%xmm7,%xmm7 + vpxorq %xmm7,%xmm6,%xmm7 + + + vpclmulqdq $0x00,%xmm7,%xmm15,%xmm8 + vpsrldq $4,%xmm8,%xmm8 + vpclmulqdq $0x10,%xmm7,%xmm15,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm1,%xmm8,%xmm14 + + jmp L$_CALC_AAD_done_6 +L$_AAD_blocks_2_6: + kmovq (%r12),%k1 + vmovdqu8 0(%r10),%ymm11{%k1}{z} + vpshufb %ymm16,%ymm11,%ymm11 + vpxorq %zmm14,%zmm11,%zmm11 + vmovdqu64 320(%rdi),%ymm15 + vpclmulqdq $0x01,%ymm15,%ymm11,%ymm7 + vpclmulqdq $0x10,%ymm15,%ymm11,%ymm8 + vpclmulqdq $0x11,%ymm15,%ymm11,%ymm1 + vpclmulqdq $0x00,%ymm15,%ymm11,%ymm6 + + vpxorq %zmm8,%zmm7,%zmm7 + vpsrldq $8,%zmm7,%zmm12 + vpslldq $8,%zmm7,%zmm13 + vpxorq %zmm12,%zmm1,%zmm1 + vpxorq %zmm13,%zmm6,%zmm6 + vextracti64x4 $1,%zmm1,%ymm12 + vpxorq %ymm12,%ymm1,%ymm1 + vextracti32x4 $1,%ymm1,%xmm12 + vpxorq %xmm12,%xmm1,%xmm1 + vextracti64x4 $1,%zmm6,%ymm13 + vpxorq %ymm13,%ymm6,%ymm6 + vextracti32x4 $1,%ymm6,%xmm13 + vpxorq %xmm13,%xmm6,%xmm6 + vmovdqa64 POLY2(%rip),%xmm15 + + + vpclmulqdq $0x01,%xmm6,%xmm15,%xmm7 + vpslldq $8,%xmm7,%xmm7 + vpxorq %xmm7,%xmm6,%xmm7 + + + vpclmulqdq $0x00,%xmm7,%xmm15,%xmm8 + vpsrldq $4,%xmm8,%xmm8 + vpclmulqdq $0x10,%xmm7,%xmm15,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm1,%xmm8,%xmm14 + + jmp L$_CALC_AAD_done_6 +L$_AAD_blocks_1_6: + kmovq (%r12),%k1 + vmovdqu8 0(%r10),%xmm11{%k1}{z} + vpshufb %xmm16,%xmm11,%xmm11 + vpxorq %zmm14,%zmm11,%zmm11 + vmovdqu64 336(%rdi),%xmm15 + vpclmulqdq $0x01,%xmm15,%xmm11,%xmm7 + vpclmulqdq $0x10,%xmm15,%xmm11,%xmm8 + vpclmulqdq $0x11,%xmm15,%xmm11,%xmm1 + vpclmulqdq $0x00,%xmm15,%xmm11,%xmm6 + + vpxorq %zmm8,%zmm7,%zmm7 + vpsrldq $8,%zmm7,%zmm12 + vpslldq $8,%zmm7,%zmm13 + vpxorq %zmm12,%zmm1,%zmm1 + vpxorq %zmm13,%zmm6,%zmm6 + vextracti64x4 $1,%zmm1,%ymm12 + vpxorq %ymm12,%ymm1,%ymm1 + vextracti32x4 $1,%ymm1,%xmm12 + vpxorq %xmm12,%xmm1,%xmm1 + vextracti64x4 $1,%zmm6,%ymm13 + vpxorq %ymm13,%ymm6,%ymm6 + vextracti32x4 $1,%ymm6,%xmm13 + vpxorq %xmm13,%xmm6,%xmm6 + vmovdqa64 POLY2(%rip),%xmm15 + + + vpclmulqdq $0x01,%xmm6,%xmm15,%xmm7 + vpslldq $8,%xmm7,%xmm7 + vpxorq %xmm7,%xmm6,%xmm7 + + + vpclmulqdq $0x00,%xmm7,%xmm15,%xmm8 + vpsrldq $4,%xmm8,%xmm8 + vpclmulqdq $0x10,%xmm7,%xmm15,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm1,%xmm8,%xmm14 + +L$_CALC_AAD_done_6: + vmovdqu64 %xmm14,64(%rdi) + cmpq $256,%rdx + jbe L$skip_hkeys_cleanup_9 + vpxor %xmm0,%xmm0,%xmm0 + vmovdqa64 %zmm0,0(%rsp) + vmovdqa64 %zmm0,64(%rsp) + vmovdqa64 %zmm0,128(%rsp) + vmovdqa64 %zmm0,192(%rsp) + vmovdqa64 %zmm0,256(%rsp) + vmovdqa64 %zmm0,320(%rsp) + vmovdqa64 %zmm0,384(%rsp) + vmovdqa64 %zmm0,448(%rsp) + vmovdqa64 %zmm0,512(%rsp) + vmovdqa64 %zmm0,576(%rsp) + vmovdqa64 %zmm0,640(%rsp) + vmovdqa64 %zmm0,704(%rsp) +L$skip_hkeys_cleanup_9: + vzeroupper + leaq (%rbp),%rsp + + popq %r15 + + popq %r14 + + popq %r13 + + popq %r12 + + popq %rbp + + popq %rbx + +L$exit_update_aad: + .byte 0xf3,0xc3 +L$ghash_seh_end: + + +.globl _ossl_aes_gcm_encrypt_avx512 + +.p2align 5 +_ossl_aes_gcm_encrypt_avx512: + +L$encrypt_seh_begin: +.byte 243,15,30,250 + pushq %rbx + +L$encrypt_seh_push_rbx: + pushq %rbp + +L$encrypt_seh_push_rbp: + pushq %r12 + +L$encrypt_seh_push_r12: + pushq %r13 + +L$encrypt_seh_push_r13: + pushq %r14 + +L$encrypt_seh_push_r14: + pushq %r15 + +L$encrypt_seh_push_r15: + + + + + + + + + + + leaq 0(%rsp),%rbp + +L$encrypt_seh_setfp: + +L$encrypt_seh_prolog_end: + subq $1588,%rsp + andq $(-64),%rsp + + + movl 240(%rdi),%eax + cmpl $9,%eax + je L$aes_gcm_encrypt_128_avx512 + cmpl $11,%eax + je L$aes_gcm_encrypt_192_avx512 + cmpl $13,%eax + je L$aes_gcm_encrypt_256_avx512 + xorl %eax,%eax + jmp L$exit_gcm_encrypt +.p2align 5 +L$aes_gcm_encrypt_128_avx512: + orq %r8,%r8 + je L$_enc_dec_done_10 + xorq %r14,%r14 + vmovdqu64 64(%rsi),%xmm14 + + movq (%rdx),%r11 + orq %r11,%r11 + je L$_partial_block_done_11 + movl $16,%r10d + leaq byte_len_to_mask_table(%rip),%r12 + cmpq %r10,%r8 + cmovcq %r8,%r10 + kmovw (%r12,%r10,2),%k1 + vmovdqu8 (%rcx),%xmm0{%k1}{z} + + vmovdqu64 16(%rsi),%xmm3 + vmovdqu64 336(%rsi),%xmm4 + + + + leaq SHIFT_MASK(%rip),%r12 + addq %r11,%r12 + vmovdqu64 (%r12),%xmm5 + vpshufb %xmm5,%xmm3,%xmm3 + vpxorq %xmm0,%xmm3,%xmm3 + + + leaq (%r8,%r11,1),%r13 + subq $16,%r13 + jge L$_no_extra_mask_11 + subq %r13,%r12 +L$_no_extra_mask_11: + + + + vmovdqu64 16(%r12),%xmm0 + vpand %xmm0,%xmm3,%xmm3 + vpshufb SHUF_MASK(%rip),%xmm3,%xmm3 + vpshufb %xmm5,%xmm3,%xmm3 + vpxorq %xmm3,%xmm14,%xmm14 + cmpq $0,%r13 + jl L$_partial_incomplete_11 + + vpclmulqdq $0x11,%xmm4,%xmm14,%xmm7 + vpclmulqdq $0x00,%xmm4,%xmm14,%xmm10 + vpclmulqdq $0x01,%xmm4,%xmm14,%xmm11 + vpclmulqdq $0x10,%xmm4,%xmm14,%xmm14 + vpxorq %xmm11,%xmm14,%xmm14 + + vpsrldq $8,%xmm14,%xmm11 + vpslldq $8,%xmm14,%xmm14 + vpxorq %xmm11,%xmm7,%xmm7 + vpxorq %xmm10,%xmm14,%xmm14 + + + + vmovdqu64 POLY2(%rip),%xmm11 + + vpclmulqdq $0x01,%xmm14,%xmm11,%xmm10 + vpslldq $8,%xmm10,%xmm10 + vpxorq %xmm10,%xmm14,%xmm14 + + + + vpclmulqdq $0x00,%xmm14,%xmm11,%xmm10 + vpsrldq $4,%xmm10,%xmm10 + vpclmulqdq $0x10,%xmm14,%xmm11,%xmm14 + vpslldq $4,%xmm14,%xmm14 + + vpternlogq $0x96,%xmm10,%xmm7,%xmm14 + + movq $0,(%rdx) + + movq %r11,%r12 + movq $16,%r11 + subq %r12,%r11 + jmp L$_enc_dec_done_11 + +L$_partial_incomplete_11: + addq %r8,(%rdx) + movq %r8,%r11 + +L$_enc_dec_done_11: + + + leaq byte_len_to_mask_table(%rip),%r12 + kmovw (%r12,%r11,2),%k1 + vmovdqu64 %xmm14,64(%rsi) + + vpshufb SHUF_MASK(%rip),%xmm3,%xmm3 + vpshufb %xmm5,%xmm3,%xmm3 + movq %r9,%r12 + vmovdqu8 %xmm3,(%r12){%k1} +L$_partial_block_done_11: + vmovdqu64 0(%rsi),%xmm2 + subq %r11,%r8 + je L$_enc_dec_done_10 + cmpq $256,%r8 + jbe L$_message_below_equal_16_blocks_10 + + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vmovdqa64 ddq_addbe_4444(%rip),%zmm27 + vmovdqa64 ddq_addbe_1234(%rip),%zmm28 + + + + + + + vmovd %xmm2,%r15d + andl $255,%r15d + + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpshufb %zmm29,%zmm2,%zmm2 + + + + cmpb $240,%r15b + jae L$_next_16_overflow_12 + vpaddd %zmm28,%zmm2,%zmm7 + vpaddd %zmm27,%zmm7,%zmm10 + vpaddd %zmm27,%zmm10,%zmm11 + vpaddd %zmm27,%zmm11,%zmm12 + jmp L$_next_16_ok_12 +L$_next_16_overflow_12: + vpshufb %zmm29,%zmm2,%zmm2 + vmovdqa64 ddq_add_4444(%rip),%zmm12 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm7 + vpaddd %zmm12,%zmm7,%zmm10 + vpaddd %zmm12,%zmm10,%zmm11 + vpaddd %zmm12,%zmm11,%zmm12 + vpshufb %zmm29,%zmm7,%zmm7 + vpshufb %zmm29,%zmm10,%zmm10 + vpshufb %zmm29,%zmm11,%zmm11 + vpshufb %zmm29,%zmm12,%zmm12 +L$_next_16_ok_12: + vshufi64x2 $255,%zmm12,%zmm12,%zmm2 + addb $16,%r15b + + vmovdqu8 0(%rcx,%r11,1),%zmm0 + vmovdqu8 64(%rcx,%r11,1),%zmm3 + vmovdqu8 128(%rcx,%r11,1),%zmm4 + vmovdqu8 192(%rcx,%r11,1),%zmm5 + + + vbroadcastf64x2 0(%rdi),%zmm6 + vpxorq %zmm6,%zmm7,%zmm7 + vpxorq %zmm6,%zmm10,%zmm10 + vpxorq %zmm6,%zmm11,%zmm11 + vpxorq %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 16(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 32(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 48(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 64(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 80(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 96(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 112(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 128(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 144(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 160(%rdi),%zmm6 + vaesenclast %zmm6,%zmm7,%zmm7 + vaesenclast %zmm6,%zmm10,%zmm10 + vaesenclast %zmm6,%zmm11,%zmm11 + vaesenclast %zmm6,%zmm12,%zmm12 + + + vpxorq %zmm0,%zmm7,%zmm7 + vpxorq %zmm3,%zmm10,%zmm10 + vpxorq %zmm4,%zmm11,%zmm11 + vpxorq %zmm5,%zmm12,%zmm12 + + + movq %r9,%r10 + vmovdqu8 %zmm7,0(%r10,%r11,1) + vmovdqu8 %zmm10,64(%r10,%r11,1) + vmovdqu8 %zmm11,128(%r10,%r11,1) + vmovdqu8 %zmm12,192(%r10,%r11,1) + + vpshufb %zmm29,%zmm7,%zmm7 + vpshufb %zmm29,%zmm10,%zmm10 + vpshufb %zmm29,%zmm11,%zmm11 + vpshufb %zmm29,%zmm12,%zmm12 + vmovdqa64 %zmm7,768(%rsp) + vmovdqa64 %zmm10,832(%rsp) + vmovdqa64 %zmm11,896(%rsp) + vmovdqa64 %zmm12,960(%rsp) + testq %r14,%r14 + jnz L$_skip_hkeys_precomputation_13 + + vmovdqu64 288(%rsi),%zmm0 + vmovdqu64 %zmm0,704(%rsp) + + vmovdqu64 224(%rsi),%zmm3 + vmovdqu64 %zmm3,640(%rsp) + + + vshufi64x2 $0x00,%zmm3,%zmm3,%zmm3 + + vmovdqu64 160(%rsi),%zmm4 + vmovdqu64 %zmm4,576(%rsp) + + vmovdqu64 96(%rsi),%zmm5 + vmovdqu64 %zmm5,512(%rsp) +L$_skip_hkeys_precomputation_13: + cmpq $512,%r8 + jb L$_message_below_32_blocks_10 + + + + cmpb $240,%r15b + jae L$_next_16_overflow_14 + vpaddd %zmm28,%zmm2,%zmm7 + vpaddd %zmm27,%zmm7,%zmm10 + vpaddd %zmm27,%zmm10,%zmm11 + vpaddd %zmm27,%zmm11,%zmm12 + jmp L$_next_16_ok_14 +L$_next_16_overflow_14: + vpshufb %zmm29,%zmm2,%zmm2 + vmovdqa64 ddq_add_4444(%rip),%zmm12 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm7 + vpaddd %zmm12,%zmm7,%zmm10 + vpaddd %zmm12,%zmm10,%zmm11 + vpaddd %zmm12,%zmm11,%zmm12 + vpshufb %zmm29,%zmm7,%zmm7 + vpshufb %zmm29,%zmm10,%zmm10 + vpshufb %zmm29,%zmm11,%zmm11 + vpshufb %zmm29,%zmm12,%zmm12 +L$_next_16_ok_14: + vshufi64x2 $255,%zmm12,%zmm12,%zmm2 + addb $16,%r15b + + vmovdqu8 256(%rcx,%r11,1),%zmm0 + vmovdqu8 320(%rcx,%r11,1),%zmm3 + vmovdqu8 384(%rcx,%r11,1),%zmm4 + vmovdqu8 448(%rcx,%r11,1),%zmm5 + + + vbroadcastf64x2 0(%rdi),%zmm6 + vpxorq %zmm6,%zmm7,%zmm7 + vpxorq %zmm6,%zmm10,%zmm10 + vpxorq %zmm6,%zmm11,%zmm11 + vpxorq %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 16(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 32(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 48(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 64(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 80(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 96(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 112(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 128(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 144(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 160(%rdi),%zmm6 + vaesenclast %zmm6,%zmm7,%zmm7 + vaesenclast %zmm6,%zmm10,%zmm10 + vaesenclast %zmm6,%zmm11,%zmm11 + vaesenclast %zmm6,%zmm12,%zmm12 + + + vpxorq %zmm0,%zmm7,%zmm7 + vpxorq %zmm3,%zmm10,%zmm10 + vpxorq %zmm4,%zmm11,%zmm11 + vpxorq %zmm5,%zmm12,%zmm12 + + + movq %r9,%r10 + vmovdqu8 %zmm7,256(%r10,%r11,1) + vmovdqu8 %zmm10,320(%r10,%r11,1) + vmovdqu8 %zmm11,384(%r10,%r11,1) + vmovdqu8 %zmm12,448(%r10,%r11,1) + + vpshufb %zmm29,%zmm7,%zmm7 + vpshufb %zmm29,%zmm10,%zmm10 + vpshufb %zmm29,%zmm11,%zmm11 + vpshufb %zmm29,%zmm12,%zmm12 + vmovdqa64 %zmm7,1024(%rsp) + vmovdqa64 %zmm10,1088(%rsp) + vmovdqa64 %zmm11,1152(%rsp) + vmovdqa64 %zmm12,1216(%rsp) + testq %r14,%r14 + jnz L$_skip_hkeys_precomputation_15 + vmovdqu64 640(%rsp),%zmm3 + + + vshufi64x2 $0x00,%zmm3,%zmm3,%zmm3 + + vmovdqu64 576(%rsp),%zmm4 + vmovdqu64 512(%rsp),%zmm5 + + vpclmulqdq $0x11,%zmm3,%zmm4,%zmm6 + vpclmulqdq $0x00,%zmm3,%zmm4,%zmm7 + vpclmulqdq $0x01,%zmm3,%zmm4,%zmm10 + vpclmulqdq $0x10,%zmm3,%zmm4,%zmm4 + vpxorq %zmm10,%zmm4,%zmm4 + + vpsrldq $8,%zmm4,%zmm10 + vpslldq $8,%zmm4,%zmm4 + vpxorq %zmm10,%zmm6,%zmm6 + vpxorq %zmm7,%zmm4,%zmm4 + + + + vmovdqu64 POLY2(%rip),%zmm10 + + vpclmulqdq $0x01,%zmm4,%zmm10,%zmm7 + vpslldq $8,%zmm7,%zmm7 + vpxorq %zmm7,%zmm4,%zmm4 + + + + vpclmulqdq $0x00,%zmm4,%zmm10,%zmm7 + vpsrldq $4,%zmm7,%zmm7 + vpclmulqdq $0x10,%zmm4,%zmm10,%zmm4 + vpslldq $4,%zmm4,%zmm4 + + vpternlogq $0x96,%zmm7,%zmm6,%zmm4 + + vmovdqu64 %zmm4,448(%rsp) + + vpclmulqdq $0x11,%zmm3,%zmm5,%zmm6 + vpclmulqdq $0x00,%zmm3,%zmm5,%zmm7 + vpclmulqdq $0x01,%zmm3,%zmm5,%zmm10 + vpclmulqdq $0x10,%zmm3,%zmm5,%zmm5 + vpxorq %zmm10,%zmm5,%zmm5 + + vpsrldq $8,%zmm5,%zmm10 + vpslldq $8,%zmm5,%zmm5 + vpxorq %zmm10,%zmm6,%zmm6 + vpxorq %zmm7,%zmm5,%zmm5 + + + + vmovdqu64 POLY2(%rip),%zmm10 + + vpclmulqdq $0x01,%zmm5,%zmm10,%zmm7 + vpslldq $8,%zmm7,%zmm7 + vpxorq %zmm7,%zmm5,%zmm5 + + + + vpclmulqdq $0x00,%zmm5,%zmm10,%zmm7 + vpsrldq $4,%zmm7,%zmm7 + vpclmulqdq $0x10,%zmm5,%zmm10,%zmm5 + vpslldq $4,%zmm5,%zmm5 + + vpternlogq $0x96,%zmm7,%zmm6,%zmm5 + + vmovdqu64 %zmm5,384(%rsp) + + vpclmulqdq $0x11,%zmm3,%zmm4,%zmm6 + vpclmulqdq $0x00,%zmm3,%zmm4,%zmm7 + vpclmulqdq $0x01,%zmm3,%zmm4,%zmm10 + vpclmulqdq $0x10,%zmm3,%zmm4,%zmm4 + vpxorq %zmm10,%zmm4,%zmm4 + + vpsrldq $8,%zmm4,%zmm10 + vpslldq $8,%zmm4,%zmm4 + vpxorq %zmm10,%zmm6,%zmm6 + vpxorq %zmm7,%zmm4,%zmm4 + + + + vmovdqu64 POLY2(%rip),%zmm10 + + vpclmulqdq $0x01,%zmm4,%zmm10,%zmm7 + vpslldq $8,%zmm7,%zmm7 + vpxorq %zmm7,%zmm4,%zmm4 + + + + vpclmulqdq $0x00,%zmm4,%zmm10,%zmm7 + vpsrldq $4,%zmm7,%zmm7 + vpclmulqdq $0x10,%zmm4,%zmm10,%zmm4 + vpslldq $4,%zmm4,%zmm4 + + vpternlogq $0x96,%zmm7,%zmm6,%zmm4 + + vmovdqu64 %zmm4,320(%rsp) + + vpclmulqdq $0x11,%zmm3,%zmm5,%zmm6 + vpclmulqdq $0x00,%zmm3,%zmm5,%zmm7 + vpclmulqdq $0x01,%zmm3,%zmm5,%zmm10 + vpclmulqdq $0x10,%zmm3,%zmm5,%zmm5 + vpxorq %zmm10,%zmm5,%zmm5 + + vpsrldq $8,%zmm5,%zmm10 + vpslldq $8,%zmm5,%zmm5 + vpxorq %zmm10,%zmm6,%zmm6 + vpxorq %zmm7,%zmm5,%zmm5 + + + + vmovdqu64 POLY2(%rip),%zmm10 + + vpclmulqdq $0x01,%zmm5,%zmm10,%zmm7 + vpslldq $8,%zmm7,%zmm7 + vpxorq %zmm7,%zmm5,%zmm5 + + + + vpclmulqdq $0x00,%zmm5,%zmm10,%zmm7 + vpsrldq $4,%zmm7,%zmm7 + vpclmulqdq $0x10,%zmm5,%zmm10,%zmm5 + vpslldq $4,%zmm5,%zmm5 + + vpternlogq $0x96,%zmm7,%zmm6,%zmm5 + + vmovdqu64 %zmm5,256(%rsp) + + vpclmulqdq $0x11,%zmm3,%zmm4,%zmm6 + vpclmulqdq $0x00,%zmm3,%zmm4,%zmm7 + vpclmulqdq $0x01,%zmm3,%zmm4,%zmm10 + vpclmulqdq $0x10,%zmm3,%zmm4,%zmm4 + vpxorq %zmm10,%zmm4,%zmm4 + + vpsrldq $8,%zmm4,%zmm10 + vpslldq $8,%zmm4,%zmm4 + vpxorq %zmm10,%zmm6,%zmm6 + vpxorq %zmm7,%zmm4,%zmm4 + + + + vmovdqu64 POLY2(%rip),%zmm10 + + vpclmulqdq $0x01,%zmm4,%zmm10,%zmm7 + vpslldq $8,%zmm7,%zmm7 + vpxorq %zmm7,%zmm4,%zmm4 + + + + vpclmulqdq $0x00,%zmm4,%zmm10,%zmm7 + vpsrldq $4,%zmm7,%zmm7 + vpclmulqdq $0x10,%zmm4,%zmm10,%zmm4 + vpslldq $4,%zmm4,%zmm4 + + vpternlogq $0x96,%zmm7,%zmm6,%zmm4 + + vmovdqu64 %zmm4,192(%rsp) + + vpclmulqdq $0x11,%zmm3,%zmm5,%zmm6 + vpclmulqdq $0x00,%zmm3,%zmm5,%zmm7 + vpclmulqdq $0x01,%zmm3,%zmm5,%zmm10 + vpclmulqdq $0x10,%zmm3,%zmm5,%zmm5 + vpxorq %zmm10,%zmm5,%zmm5 + + vpsrldq $8,%zmm5,%zmm10 + vpslldq $8,%zmm5,%zmm5 + vpxorq %zmm10,%zmm6,%zmm6 + vpxorq %zmm7,%zmm5,%zmm5 + + + + vmovdqu64 POLY2(%rip),%zmm10 + + vpclmulqdq $0x01,%zmm5,%zmm10,%zmm7 + vpslldq $8,%zmm7,%zmm7 + vpxorq %zmm7,%zmm5,%zmm5 + + + + vpclmulqdq $0x00,%zmm5,%zmm10,%zmm7 + vpsrldq $4,%zmm7,%zmm7 + vpclmulqdq $0x10,%zmm5,%zmm10,%zmm5 + vpslldq $4,%zmm5,%zmm5 + + vpternlogq $0x96,%zmm7,%zmm6,%zmm5 + + vmovdqu64 %zmm5,128(%rsp) + + vpclmulqdq $0x11,%zmm3,%zmm4,%zmm6 + vpclmulqdq $0x00,%zmm3,%zmm4,%zmm7 + vpclmulqdq $0x01,%zmm3,%zmm4,%zmm10 + vpclmulqdq $0x10,%zmm3,%zmm4,%zmm4 + vpxorq %zmm10,%zmm4,%zmm4 + + vpsrldq $8,%zmm4,%zmm10 + vpslldq $8,%zmm4,%zmm4 + vpxorq %zmm10,%zmm6,%zmm6 + vpxorq %zmm7,%zmm4,%zmm4 + + + + vmovdqu64 POLY2(%rip),%zmm10 + + vpclmulqdq $0x01,%zmm4,%zmm10,%zmm7 + vpslldq $8,%zmm7,%zmm7 + vpxorq %zmm7,%zmm4,%zmm4 + + + + vpclmulqdq $0x00,%zmm4,%zmm10,%zmm7 + vpsrldq $4,%zmm7,%zmm7 + vpclmulqdq $0x10,%zmm4,%zmm10,%zmm4 + vpslldq $4,%zmm4,%zmm4 + + vpternlogq $0x96,%zmm7,%zmm6,%zmm4 + + vmovdqu64 %zmm4,64(%rsp) + + vpclmulqdq $0x11,%zmm3,%zmm5,%zmm6 + vpclmulqdq $0x00,%zmm3,%zmm5,%zmm7 + vpclmulqdq $0x01,%zmm3,%zmm5,%zmm10 + vpclmulqdq $0x10,%zmm3,%zmm5,%zmm5 + vpxorq %zmm10,%zmm5,%zmm5 + + vpsrldq $8,%zmm5,%zmm10 + vpslldq $8,%zmm5,%zmm5 + vpxorq %zmm10,%zmm6,%zmm6 + vpxorq %zmm7,%zmm5,%zmm5 + + + + vmovdqu64 POLY2(%rip),%zmm10 + + vpclmulqdq $0x01,%zmm5,%zmm10,%zmm7 + vpslldq $8,%zmm7,%zmm7 + vpxorq %zmm7,%zmm5,%zmm5 + + + + vpclmulqdq $0x00,%zmm5,%zmm10,%zmm7 + vpsrldq $4,%zmm7,%zmm7 + vpclmulqdq $0x10,%zmm5,%zmm10,%zmm5 + vpslldq $4,%zmm5,%zmm5 + + vpternlogq $0x96,%zmm7,%zmm6,%zmm5 + + vmovdqu64 %zmm5,0(%rsp) +L$_skip_hkeys_precomputation_15: + movq $1,%r14 + addq $512,%r11 + subq $512,%r8 + + cmpq $768,%r8 + jb L$_no_more_big_nblocks_10 +L$_encrypt_big_nblocks_10: + cmpb $240,%r15b + jae L$_16_blocks_overflow_16 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp L$_16_blocks_ok_16 +L$_16_blocks_overflow_16: + vpshufb %zmm29,%zmm2,%zmm2 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +L$_16_blocks_ok_16: + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp),%zmm1 + + + + + vshufi64x2 $255,%zmm5,%zmm5,%zmm2 + addb $16,%r15b + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + + + + + + + + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm6 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm6 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + + + + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%zmm21 + + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm15,%zmm10,%zmm26 + vpxorq %zmm12,%zmm6,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + + + + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + + + + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %zmm5,192(%r10,%r11,1) + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 + vmovdqa64 %zmm0,1280(%rsp) + vmovdqa64 %zmm3,1344(%rsp) + vmovdqa64 %zmm4,1408(%rsp) + vmovdqa64 %zmm5,1472(%rsp) + cmpb $240,%r15b + jae L$_16_blocks_overflow_17 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp L$_16_blocks_ok_17 +L$_16_blocks_overflow_17: + vpshufb %zmm29,%zmm2,%zmm2 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +L$_16_blocks_ok_17: + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 256(%rsp),%zmm1 + + + + + vshufi64x2 $255,%zmm5,%zmm5,%zmm2 + addb $16,%r15b + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 320(%rsp),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + + + + + + + + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm6 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 384(%rsp),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 448(%rsp),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm6 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + + + + vmovdqu8 256(%rcx,%r11,1),%zmm17 + vmovdqu8 320(%rcx,%r11,1),%zmm19 + vmovdqu8 384(%rcx,%r11,1),%zmm20 + vmovdqu8 448(%rcx,%r11,1),%zmm21 + + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vpternlogq $0x96,%zmm12,%zmm6,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + + + + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + + + + movq %r9,%r10 + vmovdqu8 %zmm0,256(%r10,%r11,1) + vmovdqu8 %zmm3,320(%r10,%r11,1) + vmovdqu8 %zmm4,384(%r10,%r11,1) + vmovdqu8 %zmm5,448(%r10,%r11,1) + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 + vmovdqa64 %zmm0,768(%rsp) + vmovdqa64 %zmm3,832(%rsp) + vmovdqa64 %zmm4,896(%rsp) + vmovdqa64 %zmm5,960(%rsp) + cmpb $240,%r15b + jae L$_16_blocks_overflow_18 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp L$_16_blocks_ok_18 +L$_16_blocks_overflow_18: + vpshufb %zmm29,%zmm2,%zmm2 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +L$_16_blocks_ok_18: + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + + + + + vshufi64x2 $255,%zmm5,%zmm5,%zmm2 + addb $16,%r15b + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + + + + + + + + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm6 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm6 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + + + + vmovdqu8 512(%rcx,%r11,1),%zmm17 + vmovdqu8 576(%rcx,%r11,1),%zmm19 + vmovdqu8 640(%rcx,%r11,1),%zmm20 + vmovdqu8 704(%rcx,%r11,1),%zmm21 + + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + + + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vpternlogq $0x96,%zmm15,%zmm12,%zmm6 + vpxorq %zmm24,%zmm6,%zmm6 + vpternlogq $0x96,%zmm10,%zmm13,%zmm7 + vpxorq %zmm25,%zmm7,%zmm7 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vextracti64x4 $1,%zmm6,%ymm12 + vpxorq %ymm12,%ymm6,%ymm6 + vextracti32x4 $1,%ymm6,%xmm12 + vpxorq %xmm12,%xmm6,%xmm6 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm6 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + + + + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + + + + movq %r9,%r10 + vmovdqu8 %zmm0,512(%r10,%r11,1) + vmovdqu8 %zmm3,576(%r10,%r11,1) + vmovdqu8 %zmm4,640(%r10,%r11,1) + vmovdqu8 %zmm5,704(%r10,%r11,1) + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 + vmovdqa64 %zmm0,1024(%rsp) + vmovdqa64 %zmm3,1088(%rsp) + vmovdqa64 %zmm4,1152(%rsp) + vmovdqa64 %zmm5,1216(%rsp) + vmovdqa64 %zmm6,%zmm14 + + addq $768,%r11 + subq $768,%r8 + cmpq $768,%r8 + jae L$_encrypt_big_nblocks_10 + +L$_no_more_big_nblocks_10: + + cmpq $512,%r8 + jae L$_encrypt_32_blocks_10 + + cmpq $256,%r8 + jae L$_encrypt_16_blocks_10 +L$_encrypt_0_blocks_ghash_32_10: + movl %r8d,%r10d + andl $~15,%r10d + movl $256,%ebx + subl %r10d,%ebx + vmovdqa64 768(%rsp),%zmm13 + vpxorq %zmm14,%zmm13,%zmm13 + vmovdqu64 0(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 832(%rsp),%zmm13 + vmovdqu64 64(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + vpxorq %zmm10,%zmm4,%zmm26 + vpxorq %zmm6,%zmm0,%zmm24 + vpxorq %zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + vmovdqa64 896(%rsp),%zmm13 + vmovdqu64 128(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 960(%rsp),%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + + vpternlogq $0x96,%zmm10,%zmm4,%zmm26 + vpternlogq $0x96,%zmm6,%zmm0,%zmm24 + vpternlogq $0x96,%zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + addl $256,%ebx + movl %r8d,%r10d + addl $15,%r10d + shrl $4,%r10d + je L$_last_num_blocks_is_0_19 + + cmpl $8,%r10d + je L$_last_num_blocks_is_8_19 + jb L$_last_num_blocks_is_7_1_19 + + + cmpl $12,%r10d + je L$_last_num_blocks_is_12_19 + jb L$_last_num_blocks_is_11_9_19 + + + cmpl $15,%r10d + je L$_last_num_blocks_is_15_19 + ja L$_last_num_blocks_is_16_19 + cmpl $14,%r10d + je L$_last_num_blocks_is_14_19 + jmp L$_last_num_blocks_is_13_19 + +L$_last_num_blocks_is_11_9_19: + + cmpl $10,%r10d + je L$_last_num_blocks_is_10_19 + ja L$_last_num_blocks_is_11_19 + jmp L$_last_num_blocks_is_9_19 + +L$_last_num_blocks_is_7_1_19: + cmpl $4,%r10d + je L$_last_num_blocks_is_4_19 + jb L$_last_num_blocks_is_3_1_19 + + cmpl $6,%r10d + ja L$_last_num_blocks_is_7_19 + je L$_last_num_blocks_is_6_19 + jmp L$_last_num_blocks_is_5_19 + +L$_last_num_blocks_is_3_1_19: + + cmpl $2,%r10d + ja L$_last_num_blocks_is_3_19 + je L$_last_num_blocks_is_2_19 +L$_last_num_blocks_is_1_19: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $255,%r15d + jae L$_16_blocks_overflow_20 + vpaddd %xmm28,%xmm2,%xmm0 + jmp L$_16_blocks_ok_20 + +L$_16_blocks_overflow_20: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %xmm29,%xmm0,%xmm0 +L$_16_blocks_ok_20: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $0,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%xmm17{%k1}{z} + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %xmm31,%xmm0,%xmm0 + vaesenclast %xmm30,%xmm0,%xmm0 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti32x4 $0,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %xmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm0,%zmm0{%k1}{z} + vpshufb %xmm29,%xmm0,%xmm17 + vextracti32x4 $0,%zmm17,%xmm7 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_21 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm17,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm17,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm17,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm17,%xmm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_21 +L$_small_initial_partial_block_21: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + + + vpsrldq $8,%zmm26,%zmm0 + vpslldq $8,%zmm26,%zmm3 + vpxorq %zmm0,%zmm24,%zmm24 + vpxorq %zmm3,%zmm25,%zmm25 + vextracti64x4 $1,%zmm24,%ymm0 + vpxorq %ymm0,%ymm24,%ymm24 + vextracti32x4 $1,%ymm24,%xmm0 + vpxorq %xmm0,%xmm24,%xmm24 + vextracti64x4 $1,%zmm25,%ymm3 + vpxorq %ymm3,%ymm25,%ymm25 + vextracti32x4 $1,%ymm25,%xmm3 + vpxorq %xmm3,%xmm25,%xmm25 + vmovdqa64 POLY2(%rip),%xmm0 + + + vpclmulqdq $0x01,%xmm25,%xmm0,%xmm3 + vpslldq $8,%xmm3,%xmm3 + vpxorq %xmm3,%xmm25,%xmm3 + + + vpclmulqdq $0x00,%xmm3,%xmm0,%xmm4 + vpsrldq $4,%xmm4,%xmm4 + vpclmulqdq $0x10,%xmm3,%xmm0,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm24,%xmm4,%xmm14 + + + + + + + + + + + + + vpxorq %xmm7,%xmm14,%xmm14 + + jmp L$_after_reduction_21 +L$_small_initial_compute_done_21: +L$_after_reduction_21: + jmp L$_last_blocks_done_19 +L$_last_num_blocks_is_2_19: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $254,%r15d + jae L$_16_blocks_overflow_22 + vpaddd %ymm28,%ymm2,%ymm0 + jmp L$_16_blocks_ok_22 + +L$_16_blocks_overflow_22: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %ymm29,%ymm0,%ymm0 +L$_16_blocks_ok_22: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $1,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%ymm17{%k1}{z} + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %ymm31,%ymm0,%ymm0 + vaesenclast %ymm30,%ymm0,%ymm0 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %ymm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm0,%zmm0{%k1}{z} + vpshufb %ymm29,%ymm0,%ymm17 + vextracti32x4 $1,%zmm17,%xmm7 + subq $16 * (2 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_23 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm17,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm17,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm17,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm17,%ymm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_23 +L$_small_initial_partial_block_23: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm17,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm17,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm17,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm17,%xmm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_23: + + orq %r8,%r8 + je L$_after_reduction_23 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_23: + jmp L$_last_blocks_done_19 +L$_last_num_blocks_is_3_19: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $253,%r15d + jae L$_16_blocks_overflow_24 + vpaddd %zmm28,%zmm2,%zmm0 + jmp L$_16_blocks_ok_24 + +L$_16_blocks_overflow_24: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %zmm29,%zmm0,%zmm0 +L$_16_blocks_ok_24: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $2,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm0,%zmm0 + vpxorq %zmm17,%zmm0,%zmm0 + vextracti32x4 $2,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm0,%zmm0{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vextracti32x4 $2,%zmm17,%xmm7 + subq $16 * (3 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_25 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_25 +L$_small_initial_partial_block_25: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm17,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm17,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm17,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm17,%ymm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_25: + + orq %r8,%r8 + je L$_after_reduction_25 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_25: + jmp L$_last_blocks_done_19 +L$_last_num_blocks_is_4_19: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $252,%r15d + jae L$_16_blocks_overflow_26 + vpaddd %zmm28,%zmm2,%zmm0 + jmp L$_16_blocks_ok_26 + +L$_16_blocks_overflow_26: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %zmm29,%zmm0,%zmm0 +L$_16_blocks_ok_26: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $3,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm0,%zmm0 + vpxorq %zmm17,%zmm0,%zmm0 + vextracti32x4 $3,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm0,%zmm0{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vextracti32x4 $3,%zmm17,%xmm7 + subq $16 * (4 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_27 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_27 +L$_small_initial_partial_block_27: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_27: + + orq %r8,%r8 + je L$_after_reduction_27 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_27: + jmp L$_last_blocks_done_19 +L$_last_num_blocks_is_5_19: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $251,%r15d + jae L$_16_blocks_overflow_28 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %xmm27,%xmm0,%xmm3 + jmp L$_16_blocks_ok_28 + +L$_16_blocks_overflow_28: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %xmm29,%xmm3,%xmm3 +L$_16_blocks_ok_28: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $0,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%xmm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %xmm30,%xmm3,%xmm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %xmm19,%xmm3,%xmm3 + vextracti32x4 $0,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %xmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm3,%zmm3{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %xmm29,%xmm3,%xmm19 + vextracti32x4 $0,%zmm19,%xmm7 + subq $16 * (5 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_29 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm19,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm19,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm19,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm19,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_29 +L$_small_initial_partial_block_29: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_29: + + orq %r8,%r8 + je L$_after_reduction_29 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_29: + jmp L$_last_blocks_done_19 +L$_last_num_blocks_is_6_19: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $250,%r15d + jae L$_16_blocks_overflow_30 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %ymm27,%ymm0,%ymm3 + jmp L$_16_blocks_ok_30 + +L$_16_blocks_overflow_30: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %ymm29,%ymm3,%ymm3 +L$_16_blocks_ok_30: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $1,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%ymm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %ymm30,%ymm3,%ymm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %ymm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm3,%zmm3{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %ymm29,%ymm3,%ymm19 + vextracti32x4 $1,%zmm19,%xmm7 + subq $16 * (6 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_31 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm19,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm19,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm19,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm19,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_31 +L$_small_initial_partial_block_31: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm19,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm19,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm19,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm19,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_31: + + orq %r8,%r8 + je L$_after_reduction_31 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_31: + jmp L$_last_blocks_done_19 +L$_last_num_blocks_is_7_19: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $249,%r15d + jae L$_16_blocks_overflow_32 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + jmp L$_16_blocks_ok_32 + +L$_16_blocks_overflow_32: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 +L$_16_blocks_ok_32: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $2,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti32x4 $2,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm3,%zmm3{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vextracti32x4 $2,%zmm19,%xmm7 + subq $16 * (7 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_33 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_33 +L$_small_initial_partial_block_33: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm19,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm19,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm19,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm19,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_33: + + orq %r8,%r8 + je L$_after_reduction_33 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_33: + jmp L$_last_blocks_done_19 +L$_last_num_blocks_is_8_19: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $248,%r15d + jae L$_16_blocks_overflow_34 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + jmp L$_16_blocks_ok_34 + +L$_16_blocks_overflow_34: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 +L$_16_blocks_ok_34: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $3,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti32x4 $3,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm3,%zmm3{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vextracti32x4 $3,%zmm19,%xmm7 + subq $16 * (8 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_35 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_35 +L$_small_initial_partial_block_35: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_35: + + orq %r8,%r8 + je L$_after_reduction_35 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_35: + jmp L$_last_blocks_done_19 +L$_last_num_blocks_is_9_19: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $247,%r15d + jae L$_16_blocks_overflow_36 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %xmm27,%xmm3,%xmm4 + jmp L$_16_blocks_ok_36 + +L$_16_blocks_overflow_36: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %xmm29,%xmm4,%xmm4 +L$_16_blocks_ok_36: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $0,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%xmm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %xmm30,%xmm4,%xmm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %xmm20,%xmm4,%xmm4 + vextracti32x4 $0,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %xmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm4,%zmm4{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %xmm29,%xmm4,%xmm20 + vextracti32x4 $0,%zmm20,%xmm7 + subq $16 * (9 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_37 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm20,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm20,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm20,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm20,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_37 +L$_small_initial_partial_block_37: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_37: + + orq %r8,%r8 + je L$_after_reduction_37 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_37: + jmp L$_last_blocks_done_19 +L$_last_num_blocks_is_10_19: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $246,%r15d + jae L$_16_blocks_overflow_38 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %ymm27,%ymm3,%ymm4 + jmp L$_16_blocks_ok_38 + +L$_16_blocks_overflow_38: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %ymm29,%ymm4,%ymm4 +L$_16_blocks_ok_38: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $1,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%ymm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %ymm30,%ymm4,%ymm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %ymm20,%ymm4,%ymm4 + vextracti32x4 $1,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %ymm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm4,%zmm4{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %ymm29,%ymm4,%ymm20 + vextracti32x4 $1,%zmm20,%xmm7 + subq $16 * (10 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_39 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm20,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm20,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm20,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm20,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_39 +L$_small_initial_partial_block_39: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm20,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm20,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm20,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm20,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_39: + + orq %r8,%r8 + je L$_after_reduction_39 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_39: + jmp L$_last_blocks_done_19 +L$_last_num_blocks_is_11_19: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $245,%r15d + jae L$_16_blocks_overflow_40 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + jmp L$_16_blocks_ok_40 + +L$_16_blocks_overflow_40: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 +L$_16_blocks_ok_40: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $2,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vextracti32x4 $2,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm4,%zmm4{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %zmm29,%zmm4,%zmm20 + vextracti32x4 $2,%zmm20,%xmm7 + subq $16 * (11 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_41 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_41 +L$_small_initial_partial_block_41: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm20,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm20,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm20,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm20,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_41: + + orq %r8,%r8 + je L$_after_reduction_41 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_41: + jmp L$_last_blocks_done_19 +L$_last_num_blocks_is_12_19: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $244,%r15d + jae L$_16_blocks_overflow_42 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + jmp L$_16_blocks_ok_42 + +L$_16_blocks_overflow_42: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 +L$_16_blocks_ok_42: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $3,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vextracti32x4 $3,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm4,%zmm4{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %zmm29,%zmm4,%zmm20 + vextracti32x4 $3,%zmm20,%xmm7 + subq $16 * (12 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_43 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 160(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_43 +L$_small_initial_partial_block_43: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_43: + + orq %r8,%r8 + je L$_after_reduction_43 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_43: + jmp L$_last_blocks_done_19 +L$_last_num_blocks_is_13_19: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $243,%r15d + jae L$_16_blocks_overflow_44 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %xmm27,%xmm4,%xmm5 + jmp L$_16_blocks_ok_44 + +L$_16_blocks_overflow_44: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %xmm29,%xmm5,%xmm5 +L$_16_blocks_ok_44: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $0,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%xmm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %xmm30,%xmm5,%xmm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %xmm21,%xmm5,%xmm5 + vextracti32x4 $0,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %xmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm5,%zmm5{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %zmm29,%zmm4,%zmm20 + vpshufb %xmm29,%xmm5,%xmm21 + vextracti32x4 $0,%zmm21,%xmm7 + subq $16 * (13 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_45 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 144(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm21,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm21,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm21,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm21,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_45 +L$_small_initial_partial_block_45: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 160(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_45: + + orq %r8,%r8 + je L$_after_reduction_45 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_45: + jmp L$_last_blocks_done_19 +L$_last_num_blocks_is_14_19: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $242,%r15d + jae L$_16_blocks_overflow_46 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %ymm27,%ymm4,%ymm5 + jmp L$_16_blocks_ok_46 + +L$_16_blocks_overflow_46: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %ymm29,%ymm5,%ymm5 +L$_16_blocks_ok_46: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $1,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%ymm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %ymm30,%ymm5,%ymm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %ymm21,%ymm5,%ymm5 + vextracti32x4 $1,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %ymm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm5,%zmm5{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %zmm29,%zmm4,%zmm20 + vpshufb %ymm29,%ymm5,%ymm21 + vextracti32x4 $1,%zmm21,%xmm7 + subq $16 * (14 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_47 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 128(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm21,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm21,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm21,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm21,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_47 +L$_small_initial_partial_block_47: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 144(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm21,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm21,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm21,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm21,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_47: + + orq %r8,%r8 + je L$_after_reduction_47 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_47: + jmp L$_last_blocks_done_19 +L$_last_num_blocks_is_15_19: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $241,%r15d + jae L$_16_blocks_overflow_48 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp L$_16_blocks_ok_48 + +L$_16_blocks_overflow_48: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +L$_16_blocks_ok_48: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $2,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%zmm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + vextracti32x4 $2,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %zmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm5,%zmm5{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %zmm29,%zmm4,%zmm20 + vpshufb %zmm29,%zmm5,%zmm21 + vextracti32x4 $2,%zmm21,%xmm7 + subq $16 * (15 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_49 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 112(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm21,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm21,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm21,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm21,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_49 +L$_small_initial_partial_block_49: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 128(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm21,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm21,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm21,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm21,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_49: + + orq %r8,%r8 + je L$_after_reduction_49 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_49: + jmp L$_last_blocks_done_19 +L$_last_num_blocks_is_16_19: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $240,%r15d + jae L$_16_blocks_overflow_50 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp L$_16_blocks_ok_50 + +L$_16_blocks_overflow_50: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +L$_16_blocks_ok_50: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $3,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%zmm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + vextracti32x4 $3,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %zmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm5,%zmm5{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %zmm29,%zmm4,%zmm20 + vpshufb %zmm29,%zmm5,%zmm21 + vextracti32x4 $3,%zmm21,%xmm7 + subq $16 * (16 - 1),%r8 +L$_small_initial_partial_block_51: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 112(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm21,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm21,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm21,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm21,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_51: + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_51: + jmp L$_last_blocks_done_19 +L$_last_num_blocks_is_0_19: + vmovdqa64 1024(%rsp),%zmm13 + vmovdqu64 0(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 1088(%rsp),%zmm13 + vmovdqu64 64(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + vpternlogq $0x96,%zmm10,%zmm4,%zmm26 + vpternlogq $0x96,%zmm6,%zmm0,%zmm24 + vpternlogq $0x96,%zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + vmovdqa64 1152(%rsp),%zmm13 + vmovdqu64 128(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 1216(%rsp),%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + + vpternlogq $0x96,%zmm10,%zmm4,%zmm26 + vpternlogq $0x96,%zmm6,%zmm0,%zmm24 + vpternlogq $0x96,%zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + + vpsrldq $8,%zmm26,%zmm0 + vpslldq $8,%zmm26,%zmm3 + vpxorq %zmm0,%zmm24,%zmm24 + vpxorq %zmm3,%zmm25,%zmm25 + vextracti64x4 $1,%zmm24,%ymm0 + vpxorq %ymm0,%ymm24,%ymm24 + vextracti32x4 $1,%ymm24,%xmm0 + vpxorq %xmm0,%xmm24,%xmm24 + vextracti64x4 $1,%zmm25,%ymm3 + vpxorq %ymm3,%ymm25,%ymm25 + vextracti32x4 $1,%ymm25,%xmm3 + vpxorq %xmm3,%xmm25,%xmm25 + vmovdqa64 POLY2(%rip),%xmm4 + + + vpclmulqdq $0x01,%xmm25,%xmm4,%xmm0 + vpslldq $8,%xmm0,%xmm0 + vpxorq %xmm0,%xmm25,%xmm0 + + + vpclmulqdq $0x00,%xmm0,%xmm4,%xmm3 + vpsrldq $4,%xmm3,%xmm3 + vpclmulqdq $0x10,%xmm0,%xmm4,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm24,%xmm3,%xmm14 + +L$_last_blocks_done_19: + vpshufb %xmm29,%xmm2,%xmm2 + jmp L$_ghash_done_10 +L$_encrypt_32_blocks_10: + cmpb $240,%r15b + jae L$_16_blocks_overflow_52 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp L$_16_blocks_ok_52 +L$_16_blocks_overflow_52: + vpshufb %zmm29,%zmm2,%zmm2 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +L$_16_blocks_ok_52: + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp),%zmm1 + + + + + vshufi64x2 $255,%zmm5,%zmm5,%zmm2 + addb $16,%r15b + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + + + + + + + + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm6 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm6 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + + + + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%zmm21 + + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm15,%zmm10,%zmm26 + vpxorq %zmm12,%zmm6,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + + + + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + + + + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %zmm5,192(%r10,%r11,1) + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 + vmovdqa64 %zmm0,1280(%rsp) + vmovdqa64 %zmm3,1344(%rsp) + vmovdqa64 %zmm4,1408(%rsp) + vmovdqa64 %zmm5,1472(%rsp) + cmpb $240,%r15b + jae L$_16_blocks_overflow_53 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp L$_16_blocks_ok_53 +L$_16_blocks_overflow_53: + vpshufb %zmm29,%zmm2,%zmm2 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +L$_16_blocks_ok_53: + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 256(%rsp),%zmm1 + + + + + vshufi64x2 $255,%zmm5,%zmm5,%zmm2 + addb $16,%r15b + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 320(%rsp),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + + + + + + + + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm6 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 384(%rsp),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 448(%rsp),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm6 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + + + + vmovdqu8 256(%rcx,%r11,1),%zmm17 + vmovdqu8 320(%rcx,%r11,1),%zmm19 + vmovdqu8 384(%rcx,%r11,1),%zmm20 + vmovdqu8 448(%rcx,%r11,1),%zmm21 + + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vpternlogq $0x96,%zmm12,%zmm6,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + + + + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + + + + movq %r9,%r10 + vmovdqu8 %zmm0,256(%r10,%r11,1) + vmovdqu8 %zmm3,320(%r10,%r11,1) + vmovdqu8 %zmm4,384(%r10,%r11,1) + vmovdqu8 %zmm5,448(%r10,%r11,1) + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 + vmovdqa64 %zmm0,768(%rsp) + vmovdqa64 %zmm3,832(%rsp) + vmovdqa64 %zmm4,896(%rsp) + vmovdqa64 %zmm5,960(%rsp) + vmovdqa64 1280(%rsp),%zmm13 + vmovdqu64 512(%rsp),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 1344(%rsp),%zmm13 + vmovdqu64 576(%rsp),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + vpternlogq $0x96,%zmm10,%zmm4,%zmm26 + vpternlogq $0x96,%zmm6,%zmm0,%zmm24 + vpternlogq $0x96,%zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + vmovdqa64 1408(%rsp),%zmm13 + vmovdqu64 640(%rsp),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 1472(%rsp),%zmm13 + vmovdqu64 704(%rsp),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + + vpternlogq $0x96,%zmm10,%zmm4,%zmm26 + vpternlogq $0x96,%zmm6,%zmm0,%zmm24 + vpternlogq $0x96,%zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + + vpsrldq $8,%zmm26,%zmm0 + vpslldq $8,%zmm26,%zmm3 + vpxorq %zmm0,%zmm24,%zmm24 + vpxorq %zmm3,%zmm25,%zmm25 + vextracti64x4 $1,%zmm24,%ymm0 + vpxorq %ymm0,%ymm24,%ymm24 + vextracti32x4 $1,%ymm24,%xmm0 + vpxorq %xmm0,%xmm24,%xmm24 + vextracti64x4 $1,%zmm25,%ymm3 + vpxorq %ymm3,%ymm25,%ymm25 + vextracti32x4 $1,%ymm25,%xmm3 + vpxorq %xmm3,%xmm25,%xmm25 + vmovdqa64 POLY2(%rip),%xmm4 + + + vpclmulqdq $0x01,%xmm25,%xmm4,%xmm0 + vpslldq $8,%xmm0,%xmm0 + vpxorq %xmm0,%xmm25,%xmm0 + + + vpclmulqdq $0x00,%xmm0,%xmm4,%xmm3 + vpsrldq $4,%xmm3,%xmm3 + vpclmulqdq $0x10,%xmm0,%xmm4,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm24,%xmm3,%xmm14 + + subq $512,%r8 + addq $512,%r11 + movl %r8d,%r10d + andl $~15,%r10d + movl $512,%ebx + subl %r10d,%ebx + movl %r8d,%r10d + addl $15,%r10d + shrl $4,%r10d + je L$_last_num_blocks_is_0_54 + + cmpl $8,%r10d + je L$_last_num_blocks_is_8_54 + jb L$_last_num_blocks_is_7_1_54 + + + cmpl $12,%r10d + je L$_last_num_blocks_is_12_54 + jb L$_last_num_blocks_is_11_9_54 + + + cmpl $15,%r10d + je L$_last_num_blocks_is_15_54 + ja L$_last_num_blocks_is_16_54 + cmpl $14,%r10d + je L$_last_num_blocks_is_14_54 + jmp L$_last_num_blocks_is_13_54 + +L$_last_num_blocks_is_11_9_54: + + cmpl $10,%r10d + je L$_last_num_blocks_is_10_54 + ja L$_last_num_blocks_is_11_54 + jmp L$_last_num_blocks_is_9_54 + +L$_last_num_blocks_is_7_1_54: + cmpl $4,%r10d + je L$_last_num_blocks_is_4_54 + jb L$_last_num_blocks_is_3_1_54 + + cmpl $6,%r10d + ja L$_last_num_blocks_is_7_54 + je L$_last_num_blocks_is_6_54 + jmp L$_last_num_blocks_is_5_54 + +L$_last_num_blocks_is_3_1_54: + + cmpl $2,%r10d + ja L$_last_num_blocks_is_3_54 + je L$_last_num_blocks_is_2_54 +L$_last_num_blocks_is_1_54: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $255,%r15d + jae L$_16_blocks_overflow_55 + vpaddd %xmm28,%xmm2,%xmm0 + jmp L$_16_blocks_ok_55 + +L$_16_blocks_overflow_55: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %xmm29,%xmm0,%xmm0 +L$_16_blocks_ok_55: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $0,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%xmm17{%k1}{z} + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %xmm31,%xmm0,%xmm0 + vaesenclast %xmm30,%xmm0,%xmm0 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti32x4 $0,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %xmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm0,%zmm0{%k1}{z} + vpshufb %xmm29,%xmm0,%xmm17 + vextracti32x4 $0,%zmm17,%xmm7 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_56 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm17,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm17,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm17,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm17,%xmm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_56 +L$_small_initial_partial_block_56: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + + + vpsrldq $8,%zmm26,%zmm0 + vpslldq $8,%zmm26,%zmm3 + vpxorq %zmm0,%zmm24,%zmm24 + vpxorq %zmm3,%zmm25,%zmm25 + vextracti64x4 $1,%zmm24,%ymm0 + vpxorq %ymm0,%ymm24,%ymm24 + vextracti32x4 $1,%ymm24,%xmm0 + vpxorq %xmm0,%xmm24,%xmm24 + vextracti64x4 $1,%zmm25,%ymm3 + vpxorq %ymm3,%ymm25,%ymm25 + vextracti32x4 $1,%ymm25,%xmm3 + vpxorq %xmm3,%xmm25,%xmm25 + vmovdqa64 POLY2(%rip),%xmm0 + + + vpclmulqdq $0x01,%xmm25,%xmm0,%xmm3 + vpslldq $8,%xmm3,%xmm3 + vpxorq %xmm3,%xmm25,%xmm3 + + + vpclmulqdq $0x00,%xmm3,%xmm0,%xmm4 + vpsrldq $4,%xmm4,%xmm4 + vpclmulqdq $0x10,%xmm3,%xmm0,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm24,%xmm4,%xmm14 + + + + + + + + + + + + + vpxorq %xmm7,%xmm14,%xmm14 + + jmp L$_after_reduction_56 +L$_small_initial_compute_done_56: +L$_after_reduction_56: + jmp L$_last_blocks_done_54 +L$_last_num_blocks_is_2_54: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $254,%r15d + jae L$_16_blocks_overflow_57 + vpaddd %ymm28,%ymm2,%ymm0 + jmp L$_16_blocks_ok_57 + +L$_16_blocks_overflow_57: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %ymm29,%ymm0,%ymm0 +L$_16_blocks_ok_57: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $1,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%ymm17{%k1}{z} + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %ymm31,%ymm0,%ymm0 + vaesenclast %ymm30,%ymm0,%ymm0 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %ymm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm0,%zmm0{%k1}{z} + vpshufb %ymm29,%ymm0,%ymm17 + vextracti32x4 $1,%zmm17,%xmm7 + subq $16 * (2 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_58 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm17,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm17,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm17,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm17,%ymm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_58 +L$_small_initial_partial_block_58: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm17,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm17,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm17,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm17,%xmm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_58: + + orq %r8,%r8 + je L$_after_reduction_58 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_58: + jmp L$_last_blocks_done_54 +L$_last_num_blocks_is_3_54: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $253,%r15d + jae L$_16_blocks_overflow_59 + vpaddd %zmm28,%zmm2,%zmm0 + jmp L$_16_blocks_ok_59 + +L$_16_blocks_overflow_59: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %zmm29,%zmm0,%zmm0 +L$_16_blocks_ok_59: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $2,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm0,%zmm0 + vpxorq %zmm17,%zmm0,%zmm0 + vextracti32x4 $2,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm0,%zmm0{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vextracti32x4 $2,%zmm17,%xmm7 + subq $16 * (3 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_60 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_60 +L$_small_initial_partial_block_60: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm17,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm17,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm17,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm17,%ymm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_60: + + orq %r8,%r8 + je L$_after_reduction_60 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_60: + jmp L$_last_blocks_done_54 +L$_last_num_blocks_is_4_54: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $252,%r15d + jae L$_16_blocks_overflow_61 + vpaddd %zmm28,%zmm2,%zmm0 + jmp L$_16_blocks_ok_61 + +L$_16_blocks_overflow_61: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %zmm29,%zmm0,%zmm0 +L$_16_blocks_ok_61: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $3,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm0,%zmm0 + vpxorq %zmm17,%zmm0,%zmm0 + vextracti32x4 $3,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm0,%zmm0{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vextracti32x4 $3,%zmm17,%xmm7 + subq $16 * (4 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_62 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_62 +L$_small_initial_partial_block_62: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_62: + + orq %r8,%r8 + je L$_after_reduction_62 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_62: + jmp L$_last_blocks_done_54 +L$_last_num_blocks_is_5_54: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $251,%r15d + jae L$_16_blocks_overflow_63 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %xmm27,%xmm0,%xmm3 + jmp L$_16_blocks_ok_63 + +L$_16_blocks_overflow_63: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %xmm29,%xmm3,%xmm3 +L$_16_blocks_ok_63: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $0,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%xmm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %xmm30,%xmm3,%xmm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %xmm19,%xmm3,%xmm3 + vextracti32x4 $0,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %xmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm3,%zmm3{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %xmm29,%xmm3,%xmm19 + vextracti32x4 $0,%zmm19,%xmm7 + subq $16 * (5 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_64 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm19,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm19,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm19,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm19,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_64 +L$_small_initial_partial_block_64: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_64: + + orq %r8,%r8 + je L$_after_reduction_64 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_64: + jmp L$_last_blocks_done_54 +L$_last_num_blocks_is_6_54: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $250,%r15d + jae L$_16_blocks_overflow_65 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %ymm27,%ymm0,%ymm3 + jmp L$_16_blocks_ok_65 + +L$_16_blocks_overflow_65: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %ymm29,%ymm3,%ymm3 +L$_16_blocks_ok_65: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $1,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%ymm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %ymm30,%ymm3,%ymm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %ymm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm3,%zmm3{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %ymm29,%ymm3,%ymm19 + vextracti32x4 $1,%zmm19,%xmm7 + subq $16 * (6 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_66 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm19,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm19,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm19,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm19,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_66 +L$_small_initial_partial_block_66: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm19,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm19,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm19,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm19,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_66: + + orq %r8,%r8 + je L$_after_reduction_66 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_66: + jmp L$_last_blocks_done_54 +L$_last_num_blocks_is_7_54: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $249,%r15d + jae L$_16_blocks_overflow_67 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + jmp L$_16_blocks_ok_67 + +L$_16_blocks_overflow_67: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 +L$_16_blocks_ok_67: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $2,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti32x4 $2,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm3,%zmm3{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vextracti32x4 $2,%zmm19,%xmm7 + subq $16 * (7 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_68 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_68 +L$_small_initial_partial_block_68: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm19,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm19,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm19,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm19,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_68: + + orq %r8,%r8 + je L$_after_reduction_68 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_68: + jmp L$_last_blocks_done_54 +L$_last_num_blocks_is_8_54: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $248,%r15d + jae L$_16_blocks_overflow_69 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + jmp L$_16_blocks_ok_69 + +L$_16_blocks_overflow_69: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 +L$_16_blocks_ok_69: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $3,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti32x4 $3,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm3,%zmm3{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vextracti32x4 $3,%zmm19,%xmm7 + subq $16 * (8 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_70 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_70 +L$_small_initial_partial_block_70: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_70: + + orq %r8,%r8 + je L$_after_reduction_70 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_70: + jmp L$_last_blocks_done_54 +L$_last_num_blocks_is_9_54: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $247,%r15d + jae L$_16_blocks_overflow_71 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %xmm27,%xmm3,%xmm4 + jmp L$_16_blocks_ok_71 + +L$_16_blocks_overflow_71: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %xmm29,%xmm4,%xmm4 +L$_16_blocks_ok_71: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $0,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%xmm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %xmm30,%xmm4,%xmm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %xmm20,%xmm4,%xmm4 + vextracti32x4 $0,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %xmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm4,%zmm4{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %xmm29,%xmm4,%xmm20 + vextracti32x4 $0,%zmm20,%xmm7 + subq $16 * (9 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_72 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm20,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm20,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm20,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm20,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_72 +L$_small_initial_partial_block_72: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_72: + + orq %r8,%r8 + je L$_after_reduction_72 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_72: + jmp L$_last_blocks_done_54 +L$_last_num_blocks_is_10_54: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $246,%r15d + jae L$_16_blocks_overflow_73 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %ymm27,%ymm3,%ymm4 + jmp L$_16_blocks_ok_73 + +L$_16_blocks_overflow_73: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %ymm29,%ymm4,%ymm4 +L$_16_blocks_ok_73: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $1,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%ymm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %ymm30,%ymm4,%ymm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %ymm20,%ymm4,%ymm4 + vextracti32x4 $1,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %ymm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm4,%zmm4{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %ymm29,%ymm4,%ymm20 + vextracti32x4 $1,%zmm20,%xmm7 + subq $16 * (10 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_74 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm20,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm20,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm20,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm20,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_74 +L$_small_initial_partial_block_74: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm20,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm20,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm20,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm20,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_74: + + orq %r8,%r8 + je L$_after_reduction_74 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_74: + jmp L$_last_blocks_done_54 +L$_last_num_blocks_is_11_54: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $245,%r15d + jae L$_16_blocks_overflow_75 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + jmp L$_16_blocks_ok_75 + +L$_16_blocks_overflow_75: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 +L$_16_blocks_ok_75: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $2,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vextracti32x4 $2,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm4,%zmm4{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %zmm29,%zmm4,%zmm20 + vextracti32x4 $2,%zmm20,%xmm7 + subq $16 * (11 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_76 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_76 +L$_small_initial_partial_block_76: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm20,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm20,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm20,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm20,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_76: + + orq %r8,%r8 + je L$_after_reduction_76 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_76: + jmp L$_last_blocks_done_54 +L$_last_num_blocks_is_12_54: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $244,%r15d + jae L$_16_blocks_overflow_77 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + jmp L$_16_blocks_ok_77 + +L$_16_blocks_overflow_77: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 +L$_16_blocks_ok_77: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $3,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vextracti32x4 $3,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm4,%zmm4{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %zmm29,%zmm4,%zmm20 + vextracti32x4 $3,%zmm20,%xmm7 + subq $16 * (12 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_78 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 160(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_78 +L$_small_initial_partial_block_78: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_78: + + orq %r8,%r8 + je L$_after_reduction_78 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_78: + jmp L$_last_blocks_done_54 +L$_last_num_blocks_is_13_54: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $243,%r15d + jae L$_16_blocks_overflow_79 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %xmm27,%xmm4,%xmm5 + jmp L$_16_blocks_ok_79 + +L$_16_blocks_overflow_79: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %xmm29,%xmm5,%xmm5 +L$_16_blocks_ok_79: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $0,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%xmm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %xmm30,%xmm5,%xmm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %xmm21,%xmm5,%xmm5 + vextracti32x4 $0,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %xmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm5,%zmm5{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %zmm29,%zmm4,%zmm20 + vpshufb %xmm29,%xmm5,%xmm21 + vextracti32x4 $0,%zmm21,%xmm7 + subq $16 * (13 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_80 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 144(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm21,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm21,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm21,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm21,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_80 +L$_small_initial_partial_block_80: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 160(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_80: + + orq %r8,%r8 + je L$_after_reduction_80 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_80: + jmp L$_last_blocks_done_54 +L$_last_num_blocks_is_14_54: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $242,%r15d + jae L$_16_blocks_overflow_81 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %ymm27,%ymm4,%ymm5 + jmp L$_16_blocks_ok_81 + +L$_16_blocks_overflow_81: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %ymm29,%ymm5,%ymm5 +L$_16_blocks_ok_81: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $1,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%ymm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %ymm30,%ymm5,%ymm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %ymm21,%ymm5,%ymm5 + vextracti32x4 $1,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %ymm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm5,%zmm5{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %zmm29,%zmm4,%zmm20 + vpshufb %ymm29,%ymm5,%ymm21 + vextracti32x4 $1,%zmm21,%xmm7 + subq $16 * (14 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_82 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 128(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm21,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm21,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm21,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm21,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_82 +L$_small_initial_partial_block_82: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 144(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm21,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm21,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm21,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm21,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_82: + + orq %r8,%r8 + je L$_after_reduction_82 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_82: + jmp L$_last_blocks_done_54 +L$_last_num_blocks_is_15_54: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $241,%r15d + jae L$_16_blocks_overflow_83 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp L$_16_blocks_ok_83 + +L$_16_blocks_overflow_83: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +L$_16_blocks_ok_83: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $2,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%zmm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + vextracti32x4 $2,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %zmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm5,%zmm5{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %zmm29,%zmm4,%zmm20 + vpshufb %zmm29,%zmm5,%zmm21 + vextracti32x4 $2,%zmm21,%xmm7 + subq $16 * (15 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_84 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 112(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm21,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm21,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm21,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm21,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_84 +L$_small_initial_partial_block_84: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 128(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm21,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm21,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm21,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm21,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_84: + + orq %r8,%r8 + je L$_after_reduction_84 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_84: + jmp L$_last_blocks_done_54 +L$_last_num_blocks_is_16_54: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $240,%r15d + jae L$_16_blocks_overflow_85 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp L$_16_blocks_ok_85 + +L$_16_blocks_overflow_85: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +L$_16_blocks_ok_85: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $3,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%zmm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + vextracti32x4 $3,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %zmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm5,%zmm5{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %zmm29,%zmm4,%zmm20 + vpshufb %zmm29,%zmm5,%zmm21 + vextracti32x4 $3,%zmm21,%xmm7 + subq $16 * (16 - 1),%r8 +L$_small_initial_partial_block_86: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 112(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm21,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm21,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm21,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm21,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_86: + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_86: + jmp L$_last_blocks_done_54 +L$_last_num_blocks_is_0_54: + vmovdqa64 768(%rsp),%zmm13 + vpxorq %zmm14,%zmm13,%zmm13 + vmovdqu64 0(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 832(%rsp),%zmm13 + vmovdqu64 64(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + vpxorq %zmm10,%zmm4,%zmm26 + vpxorq %zmm6,%zmm0,%zmm24 + vpxorq %zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + vmovdqa64 896(%rsp),%zmm13 + vmovdqu64 128(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 960(%rsp),%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + + vpternlogq $0x96,%zmm10,%zmm4,%zmm26 + vpternlogq $0x96,%zmm6,%zmm0,%zmm24 + vpternlogq $0x96,%zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + + vpsrldq $8,%zmm26,%zmm0 + vpslldq $8,%zmm26,%zmm3 + vpxorq %zmm0,%zmm24,%zmm24 + vpxorq %zmm3,%zmm25,%zmm25 + vextracti64x4 $1,%zmm24,%ymm0 + vpxorq %ymm0,%ymm24,%ymm24 + vextracti32x4 $1,%ymm24,%xmm0 + vpxorq %xmm0,%xmm24,%xmm24 + vextracti64x4 $1,%zmm25,%ymm3 + vpxorq %ymm3,%ymm25,%ymm25 + vextracti32x4 $1,%ymm25,%xmm3 + vpxorq %xmm3,%xmm25,%xmm25 + vmovdqa64 POLY2(%rip),%xmm4 + + + vpclmulqdq $0x01,%xmm25,%xmm4,%xmm0 + vpslldq $8,%xmm0,%xmm0 + vpxorq %xmm0,%xmm25,%xmm0 + + + vpclmulqdq $0x00,%xmm0,%xmm4,%xmm3 + vpsrldq $4,%xmm3,%xmm3 + vpclmulqdq $0x10,%xmm0,%xmm4,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm24,%xmm3,%xmm14 + +L$_last_blocks_done_54: + vpshufb %xmm29,%xmm2,%xmm2 + jmp L$_ghash_done_10 +L$_encrypt_16_blocks_10: + cmpb $240,%r15b + jae L$_16_blocks_overflow_87 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp L$_16_blocks_ok_87 +L$_16_blocks_overflow_87: + vpshufb %zmm29,%zmm2,%zmm2 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +L$_16_blocks_ok_87: + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp),%zmm1 + + + + + vshufi64x2 $255,%zmm5,%zmm5,%zmm2 + addb $16,%r15b + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + + + + + + + + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm6 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm6 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + + + + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%zmm21 + + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm15,%zmm10,%zmm26 + vpxorq %zmm12,%zmm6,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + + + + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + + + + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %zmm5,192(%r10,%r11,1) + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 + vmovdqa64 %zmm0,1280(%rsp) + vmovdqa64 %zmm3,1344(%rsp) + vmovdqa64 %zmm4,1408(%rsp) + vmovdqa64 %zmm5,1472(%rsp) + vmovdqa64 1024(%rsp),%zmm13 + vmovdqu64 256(%rsp),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 1088(%rsp),%zmm13 + vmovdqu64 320(%rsp),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + vpternlogq $0x96,%zmm10,%zmm4,%zmm26 + vpternlogq $0x96,%zmm6,%zmm0,%zmm24 + vpternlogq $0x96,%zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + vmovdqa64 1152(%rsp),%zmm13 + vmovdqu64 384(%rsp),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 1216(%rsp),%zmm13 + vmovdqu64 448(%rsp),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + + vpternlogq $0x96,%zmm10,%zmm4,%zmm26 + vpternlogq $0x96,%zmm6,%zmm0,%zmm24 + vpternlogq $0x96,%zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + subq $256,%r8 + addq $256,%r11 + movl %r8d,%r10d + addl $15,%r10d + shrl $4,%r10d + je L$_last_num_blocks_is_0_88 + + cmpl $8,%r10d + je L$_last_num_blocks_is_8_88 + jb L$_last_num_blocks_is_7_1_88 + + + cmpl $12,%r10d + je L$_last_num_blocks_is_12_88 + jb L$_last_num_blocks_is_11_9_88 + + + cmpl $15,%r10d + je L$_last_num_blocks_is_15_88 + ja L$_last_num_blocks_is_16_88 + cmpl $14,%r10d + je L$_last_num_blocks_is_14_88 + jmp L$_last_num_blocks_is_13_88 + +L$_last_num_blocks_is_11_9_88: + + cmpl $10,%r10d + je L$_last_num_blocks_is_10_88 + ja L$_last_num_blocks_is_11_88 + jmp L$_last_num_blocks_is_9_88 + +L$_last_num_blocks_is_7_1_88: + cmpl $4,%r10d + je L$_last_num_blocks_is_4_88 + jb L$_last_num_blocks_is_3_1_88 + + cmpl $6,%r10d + ja L$_last_num_blocks_is_7_88 + je L$_last_num_blocks_is_6_88 + jmp L$_last_num_blocks_is_5_88 + +L$_last_num_blocks_is_3_1_88: + + cmpl $2,%r10d + ja L$_last_num_blocks_is_3_88 + je L$_last_num_blocks_is_2_88 +L$_last_num_blocks_is_1_88: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $255,%r15d + jae L$_16_blocks_overflow_89 + vpaddd %xmm28,%xmm2,%xmm0 + jmp L$_16_blocks_ok_89 + +L$_16_blocks_overflow_89: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %xmm29,%xmm0,%xmm0 +L$_16_blocks_ok_89: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $0,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%xmm17{%k1}{z} + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %xmm31,%xmm0,%xmm0 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %xmm30,%xmm0,%xmm0 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti32x4 $0,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %xmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm0,%zmm0{%k1}{z} + vpshufb %xmm29,%xmm0,%xmm17 + vextracti32x4 $0,%zmm17,%xmm7 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_90 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm17,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm17,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm17,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm17,%xmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_90 +L$_small_initial_partial_block_90: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + + + + + + + + + + + + vpxorq %xmm7,%xmm14,%xmm14 + + jmp L$_after_reduction_90 +L$_small_initial_compute_done_90: +L$_after_reduction_90: + jmp L$_last_blocks_done_88 +L$_last_num_blocks_is_2_88: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $254,%r15d + jae L$_16_blocks_overflow_91 + vpaddd %ymm28,%ymm2,%ymm0 + jmp L$_16_blocks_ok_91 + +L$_16_blocks_overflow_91: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %ymm29,%ymm0,%ymm0 +L$_16_blocks_ok_91: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $1,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%ymm17{%k1}{z} + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %ymm31,%ymm0,%ymm0 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %ymm30,%ymm0,%ymm0 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %ymm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm0,%zmm0{%k1}{z} + vpshufb %ymm29,%ymm0,%ymm17 + vextracti32x4 $1,%zmm17,%xmm7 + subq $16 * (2 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_92 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm17,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm17,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm17,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm17,%ymm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_92 +L$_small_initial_partial_block_92: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm17,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm17,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm17,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm17,%xmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_92: + + orq %r8,%r8 + je L$_after_reduction_92 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_92: + jmp L$_last_blocks_done_88 +L$_last_num_blocks_is_3_88: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $253,%r15d + jae L$_16_blocks_overflow_93 + vpaddd %zmm28,%zmm2,%zmm0 + jmp L$_16_blocks_ok_93 + +L$_16_blocks_overflow_93: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %zmm29,%zmm0,%zmm0 +L$_16_blocks_ok_93: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $2,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vpxorq %zmm17,%zmm0,%zmm0 + vextracti32x4 $2,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm0,%zmm0{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vextracti32x4 $2,%zmm17,%xmm7 + subq $16 * (3 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_94 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_94 +L$_small_initial_partial_block_94: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm17,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm17,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm17,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm17,%ymm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_94: + + orq %r8,%r8 + je L$_after_reduction_94 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_94: + jmp L$_last_blocks_done_88 +L$_last_num_blocks_is_4_88: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $252,%r15d + jae L$_16_blocks_overflow_95 + vpaddd %zmm28,%zmm2,%zmm0 + jmp L$_16_blocks_ok_95 + +L$_16_blocks_overflow_95: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %zmm29,%zmm0,%zmm0 +L$_16_blocks_ok_95: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $3,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vpxorq %zmm17,%zmm0,%zmm0 + vextracti32x4 $3,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm0,%zmm0{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vextracti32x4 $3,%zmm17,%xmm7 + subq $16 * (4 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_96 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_96 +L$_small_initial_partial_block_96: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_96: + + orq %r8,%r8 + je L$_after_reduction_96 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_96: + jmp L$_last_blocks_done_88 +L$_last_num_blocks_is_5_88: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $251,%r15d + jae L$_16_blocks_overflow_97 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %xmm27,%xmm0,%xmm3 + jmp L$_16_blocks_ok_97 + +L$_16_blocks_overflow_97: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %xmm29,%xmm3,%xmm3 +L$_16_blocks_ok_97: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $0,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%xmm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %xmm30,%xmm3,%xmm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %xmm19,%xmm3,%xmm3 + vextracti32x4 $0,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %xmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm3,%zmm3{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %xmm29,%xmm3,%xmm19 + vextracti32x4 $0,%zmm19,%xmm7 + subq $16 * (5 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_98 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm19,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm19,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm19,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm19,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_98 +L$_small_initial_partial_block_98: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_98: + + orq %r8,%r8 + je L$_after_reduction_98 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_98: + jmp L$_last_blocks_done_88 +L$_last_num_blocks_is_6_88: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $250,%r15d + jae L$_16_blocks_overflow_99 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %ymm27,%ymm0,%ymm3 + jmp L$_16_blocks_ok_99 + +L$_16_blocks_overflow_99: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %ymm29,%ymm3,%ymm3 +L$_16_blocks_ok_99: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $1,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%ymm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %ymm30,%ymm3,%ymm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %ymm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm3,%zmm3{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %ymm29,%ymm3,%ymm19 + vextracti32x4 $1,%zmm19,%xmm7 + subq $16 * (6 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_100 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm19,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm19,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm19,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm19,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_100 +L$_small_initial_partial_block_100: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm19,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm19,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm19,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm19,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_100: + + orq %r8,%r8 + je L$_after_reduction_100 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_100: + jmp L$_last_blocks_done_88 +L$_last_num_blocks_is_7_88: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $249,%r15d + jae L$_16_blocks_overflow_101 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + jmp L$_16_blocks_ok_101 + +L$_16_blocks_overflow_101: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 +L$_16_blocks_ok_101: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $2,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti32x4 $2,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm3,%zmm3{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vextracti32x4 $2,%zmm19,%xmm7 + subq $16 * (7 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_102 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_102 +L$_small_initial_partial_block_102: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm19,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm19,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm19,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm19,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_102: + + orq %r8,%r8 + je L$_after_reduction_102 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_102: + jmp L$_last_blocks_done_88 +L$_last_num_blocks_is_8_88: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $248,%r15d + jae L$_16_blocks_overflow_103 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + jmp L$_16_blocks_ok_103 + +L$_16_blocks_overflow_103: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 +L$_16_blocks_ok_103: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $3,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti32x4 $3,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm3,%zmm3{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vextracti32x4 $3,%zmm19,%xmm7 + subq $16 * (8 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_104 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_104 +L$_small_initial_partial_block_104: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_104: + + orq %r8,%r8 + je L$_after_reduction_104 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_104: + jmp L$_last_blocks_done_88 +L$_last_num_blocks_is_9_88: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $247,%r15d + jae L$_16_blocks_overflow_105 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %xmm27,%xmm3,%xmm4 + jmp L$_16_blocks_ok_105 + +L$_16_blocks_overflow_105: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %xmm29,%xmm4,%xmm4 +L$_16_blocks_ok_105: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $0,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%xmm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %xmm30,%xmm4,%xmm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %xmm20,%xmm4,%xmm4 + vextracti32x4 $0,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %xmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm4,%zmm4{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %xmm29,%xmm4,%xmm20 + vextracti32x4 $0,%zmm20,%xmm7 + subq $16 * (9 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_106 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm20,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm20,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm20,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm20,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_106 +L$_small_initial_partial_block_106: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_106: + + orq %r8,%r8 + je L$_after_reduction_106 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_106: + jmp L$_last_blocks_done_88 +L$_last_num_blocks_is_10_88: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $246,%r15d + jae L$_16_blocks_overflow_107 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %ymm27,%ymm3,%ymm4 + jmp L$_16_blocks_ok_107 + +L$_16_blocks_overflow_107: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %ymm29,%ymm4,%ymm4 +L$_16_blocks_ok_107: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $1,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%ymm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %ymm30,%ymm4,%ymm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %ymm20,%ymm4,%ymm4 + vextracti32x4 $1,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %ymm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm4,%zmm4{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %ymm29,%ymm4,%ymm20 + vextracti32x4 $1,%zmm20,%xmm7 + subq $16 * (10 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_108 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm20,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm20,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm20,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm20,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_108 +L$_small_initial_partial_block_108: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm20,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm20,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm20,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm20,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_108: + + orq %r8,%r8 + je L$_after_reduction_108 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_108: + jmp L$_last_blocks_done_88 +L$_last_num_blocks_is_11_88: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $245,%r15d + jae L$_16_blocks_overflow_109 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + jmp L$_16_blocks_ok_109 + +L$_16_blocks_overflow_109: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 +L$_16_blocks_ok_109: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $2,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vextracti32x4 $2,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm4,%zmm4{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %zmm29,%zmm4,%zmm20 + vextracti32x4 $2,%zmm20,%xmm7 + subq $16 * (11 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_110 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_110 +L$_small_initial_partial_block_110: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm20,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm20,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm20,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm20,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_110: + + orq %r8,%r8 + je L$_after_reduction_110 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_110: + jmp L$_last_blocks_done_88 +L$_last_num_blocks_is_12_88: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $244,%r15d + jae L$_16_blocks_overflow_111 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + jmp L$_16_blocks_ok_111 + +L$_16_blocks_overflow_111: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 +L$_16_blocks_ok_111: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $3,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vextracti32x4 $3,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm4,%zmm4{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %zmm29,%zmm4,%zmm20 + vextracti32x4 $3,%zmm20,%xmm7 + subq $16 * (12 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_112 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 160(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_112 +L$_small_initial_partial_block_112: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_112: + + orq %r8,%r8 + je L$_after_reduction_112 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_112: + jmp L$_last_blocks_done_88 +L$_last_num_blocks_is_13_88: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $243,%r15d + jae L$_16_blocks_overflow_113 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %xmm27,%xmm4,%xmm5 + jmp L$_16_blocks_ok_113 + +L$_16_blocks_overflow_113: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %xmm29,%xmm5,%xmm5 +L$_16_blocks_ok_113: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $0,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%xmm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %xmm30,%xmm5,%xmm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %xmm21,%xmm5,%xmm5 + vextracti32x4 $0,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %xmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm5,%zmm5{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %zmm29,%zmm4,%zmm20 + vpshufb %xmm29,%xmm5,%xmm21 + vextracti32x4 $0,%zmm21,%xmm7 + subq $16 * (13 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_114 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 144(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm21,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm21,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm21,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm21,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_114 +L$_small_initial_partial_block_114: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 160(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_114: + + orq %r8,%r8 + je L$_after_reduction_114 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_114: + jmp L$_last_blocks_done_88 +L$_last_num_blocks_is_14_88: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $242,%r15d + jae L$_16_blocks_overflow_115 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %ymm27,%ymm4,%ymm5 + jmp L$_16_blocks_ok_115 + +L$_16_blocks_overflow_115: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %ymm29,%ymm5,%ymm5 +L$_16_blocks_ok_115: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $1,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%ymm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %ymm30,%ymm5,%ymm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %ymm21,%ymm5,%ymm5 + vextracti32x4 $1,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %ymm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm5,%zmm5{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %zmm29,%zmm4,%zmm20 + vpshufb %ymm29,%ymm5,%ymm21 + vextracti32x4 $1,%zmm21,%xmm7 + subq $16 * (14 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_116 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 128(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm21,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm21,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm21,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm21,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_116 +L$_small_initial_partial_block_116: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 144(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm21,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm21,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm21,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm21,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_116: + + orq %r8,%r8 + je L$_after_reduction_116 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_116: + jmp L$_last_blocks_done_88 +L$_last_num_blocks_is_15_88: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $241,%r15d + jae L$_16_blocks_overflow_117 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp L$_16_blocks_ok_117 + +L$_16_blocks_overflow_117: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +L$_16_blocks_ok_117: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $2,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%zmm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + vextracti32x4 $2,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %zmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm5,%zmm5{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %zmm29,%zmm4,%zmm20 + vpshufb %zmm29,%zmm5,%zmm21 + vextracti32x4 $2,%zmm21,%xmm7 + subq $16 * (15 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_118 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 112(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm21,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm21,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm21,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm21,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_118 +L$_small_initial_partial_block_118: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 128(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm21,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm21,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm21,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm21,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_118: + + orq %r8,%r8 + je L$_after_reduction_118 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_118: + jmp L$_last_blocks_done_88 +L$_last_num_blocks_is_16_88: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $240,%r15d + jae L$_16_blocks_overflow_119 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp L$_16_blocks_ok_119 + +L$_16_blocks_overflow_119: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +L$_16_blocks_ok_119: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $3,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%zmm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + vextracti32x4 $3,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %zmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm5,%zmm5{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %zmm29,%zmm4,%zmm20 + vpshufb %zmm29,%zmm5,%zmm21 + vextracti32x4 $3,%zmm21,%xmm7 + subq $16 * (16 - 1),%r8 +L$_small_initial_partial_block_120: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 112(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm21,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm21,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm21,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm21,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_120: + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_120: + jmp L$_last_blocks_done_88 +L$_last_num_blocks_is_0_88: + vmovdqa64 1280(%rsp),%zmm13 + vmovdqu64 512(%rsp),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 1344(%rsp),%zmm13 + vmovdqu64 576(%rsp),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + vpternlogq $0x96,%zmm10,%zmm4,%zmm26 + vpternlogq $0x96,%zmm6,%zmm0,%zmm24 + vpternlogq $0x96,%zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + vmovdqa64 1408(%rsp),%zmm13 + vmovdqu64 640(%rsp),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 1472(%rsp),%zmm13 + vmovdqu64 704(%rsp),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + + vpternlogq $0x96,%zmm10,%zmm4,%zmm26 + vpternlogq $0x96,%zmm6,%zmm0,%zmm24 + vpternlogq $0x96,%zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + + vpsrldq $8,%zmm26,%zmm0 + vpslldq $8,%zmm26,%zmm3 + vpxorq %zmm0,%zmm24,%zmm24 + vpxorq %zmm3,%zmm25,%zmm25 + vextracti64x4 $1,%zmm24,%ymm0 + vpxorq %ymm0,%ymm24,%ymm24 + vextracti32x4 $1,%ymm24,%xmm0 + vpxorq %xmm0,%xmm24,%xmm24 + vextracti64x4 $1,%zmm25,%ymm3 + vpxorq %ymm3,%ymm25,%ymm25 + vextracti32x4 $1,%ymm25,%xmm3 + vpxorq %xmm3,%xmm25,%xmm25 + vmovdqa64 POLY2(%rip),%xmm4 + + + vpclmulqdq $0x01,%xmm25,%xmm4,%xmm0 + vpslldq $8,%xmm0,%xmm0 + vpxorq %xmm0,%xmm25,%xmm0 + + + vpclmulqdq $0x00,%xmm0,%xmm4,%xmm3 + vpsrldq $4,%xmm3,%xmm3 + vpclmulqdq $0x10,%xmm0,%xmm4,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm24,%xmm3,%xmm14 + +L$_last_blocks_done_88: + vpshufb %xmm29,%xmm2,%xmm2 + jmp L$_ghash_done_10 + +L$_message_below_32_blocks_10: + + + subq $256,%r8 + addq $256,%r11 + movl %r8d,%r10d + testq %r14,%r14 + jnz L$_skip_hkeys_precomputation_121 + vmovdqu64 640(%rsp),%zmm3 + + + vshufi64x2 $0x00,%zmm3,%zmm3,%zmm3 + + vmovdqu64 576(%rsp),%zmm4 + vmovdqu64 512(%rsp),%zmm5 + + vpclmulqdq $0x11,%zmm3,%zmm4,%zmm6 + vpclmulqdq $0x00,%zmm3,%zmm4,%zmm7 + vpclmulqdq $0x01,%zmm3,%zmm4,%zmm10 + vpclmulqdq $0x10,%zmm3,%zmm4,%zmm4 + vpxorq %zmm10,%zmm4,%zmm4 + + vpsrldq $8,%zmm4,%zmm10 + vpslldq $8,%zmm4,%zmm4 + vpxorq %zmm10,%zmm6,%zmm6 + vpxorq %zmm7,%zmm4,%zmm4 + + + + vmovdqu64 POLY2(%rip),%zmm10 + + vpclmulqdq $0x01,%zmm4,%zmm10,%zmm7 + vpslldq $8,%zmm7,%zmm7 + vpxorq %zmm7,%zmm4,%zmm4 + + + + vpclmulqdq $0x00,%zmm4,%zmm10,%zmm7 + vpsrldq $4,%zmm7,%zmm7 + vpclmulqdq $0x10,%zmm4,%zmm10,%zmm4 + vpslldq $4,%zmm4,%zmm4 + + vpternlogq $0x96,%zmm7,%zmm6,%zmm4 + + vmovdqu64 %zmm4,448(%rsp) + + vpclmulqdq $0x11,%zmm3,%zmm5,%zmm6 + vpclmulqdq $0x00,%zmm3,%zmm5,%zmm7 + vpclmulqdq $0x01,%zmm3,%zmm5,%zmm10 + vpclmulqdq $0x10,%zmm3,%zmm5,%zmm5 + vpxorq %zmm10,%zmm5,%zmm5 + + vpsrldq $8,%zmm5,%zmm10 + vpslldq $8,%zmm5,%zmm5 + vpxorq %zmm10,%zmm6,%zmm6 + vpxorq %zmm7,%zmm5,%zmm5 + + + + vmovdqu64 POLY2(%rip),%zmm10 + + vpclmulqdq $0x01,%zmm5,%zmm10,%zmm7 + vpslldq $8,%zmm7,%zmm7 + vpxorq %zmm7,%zmm5,%zmm5 + + + + vpclmulqdq $0x00,%zmm5,%zmm10,%zmm7 + vpsrldq $4,%zmm7,%zmm7 + vpclmulqdq $0x10,%zmm5,%zmm10,%zmm5 + vpslldq $4,%zmm5,%zmm5 + + vpternlogq $0x96,%zmm7,%zmm6,%zmm5 + + vmovdqu64 %zmm5,384(%rsp) + + vpclmulqdq $0x11,%zmm3,%zmm4,%zmm6 + vpclmulqdq $0x00,%zmm3,%zmm4,%zmm7 + vpclmulqdq $0x01,%zmm3,%zmm4,%zmm10 + vpclmulqdq $0x10,%zmm3,%zmm4,%zmm4 + vpxorq %zmm10,%zmm4,%zmm4 + + vpsrldq $8,%zmm4,%zmm10 + vpslldq $8,%zmm4,%zmm4 + vpxorq %zmm10,%zmm6,%zmm6 + vpxorq %zmm7,%zmm4,%zmm4 + + + + vmovdqu64 POLY2(%rip),%zmm10 + + vpclmulqdq $0x01,%zmm4,%zmm10,%zmm7 + vpslldq $8,%zmm7,%zmm7 + vpxorq %zmm7,%zmm4,%zmm4 + + + + vpclmulqdq $0x00,%zmm4,%zmm10,%zmm7 + vpsrldq $4,%zmm7,%zmm7 + vpclmulqdq $0x10,%zmm4,%zmm10,%zmm4 + vpslldq $4,%zmm4,%zmm4 + + vpternlogq $0x96,%zmm7,%zmm6,%zmm4 + + vmovdqu64 %zmm4,320(%rsp) + + vpclmulqdq $0x11,%zmm3,%zmm5,%zmm6 + vpclmulqdq $0x00,%zmm3,%zmm5,%zmm7 + vpclmulqdq $0x01,%zmm3,%zmm5,%zmm10 + vpclmulqdq $0x10,%zmm3,%zmm5,%zmm5 + vpxorq %zmm10,%zmm5,%zmm5 + + vpsrldq $8,%zmm5,%zmm10 + vpslldq $8,%zmm5,%zmm5 + vpxorq %zmm10,%zmm6,%zmm6 + vpxorq %zmm7,%zmm5,%zmm5 + + + + vmovdqu64 POLY2(%rip),%zmm10 + + vpclmulqdq $0x01,%zmm5,%zmm10,%zmm7 + vpslldq $8,%zmm7,%zmm7 + vpxorq %zmm7,%zmm5,%zmm5 + + + + vpclmulqdq $0x00,%zmm5,%zmm10,%zmm7 + vpsrldq $4,%zmm7,%zmm7 + vpclmulqdq $0x10,%zmm5,%zmm10,%zmm5 + vpslldq $4,%zmm5,%zmm5 + + vpternlogq $0x96,%zmm7,%zmm6,%zmm5 + + vmovdqu64 %zmm5,256(%rsp) +L$_skip_hkeys_precomputation_121: + movq $1,%r14 + andl $~15,%r10d + movl $512,%ebx + subl %r10d,%ebx + movl %r8d,%r10d + addl $15,%r10d + shrl $4,%r10d + je L$_last_num_blocks_is_0_122 + + cmpl $8,%r10d + je L$_last_num_blocks_is_8_122 + jb L$_last_num_blocks_is_7_1_122 + + + cmpl $12,%r10d + je L$_last_num_blocks_is_12_122 + jb L$_last_num_blocks_is_11_9_122 + + + cmpl $15,%r10d + je L$_last_num_blocks_is_15_122 + ja L$_last_num_blocks_is_16_122 + cmpl $14,%r10d + je L$_last_num_blocks_is_14_122 + jmp L$_last_num_blocks_is_13_122 + +L$_last_num_blocks_is_11_9_122: + + cmpl $10,%r10d + je L$_last_num_blocks_is_10_122 + ja L$_last_num_blocks_is_11_122 + jmp L$_last_num_blocks_is_9_122 + +L$_last_num_blocks_is_7_1_122: + cmpl $4,%r10d + je L$_last_num_blocks_is_4_122 + jb L$_last_num_blocks_is_3_1_122 + + cmpl $6,%r10d + ja L$_last_num_blocks_is_7_122 + je L$_last_num_blocks_is_6_122 + jmp L$_last_num_blocks_is_5_122 + +L$_last_num_blocks_is_3_1_122: + + cmpl $2,%r10d + ja L$_last_num_blocks_is_3_122 + je L$_last_num_blocks_is_2_122 +L$_last_num_blocks_is_1_122: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $255,%r15d + jae L$_16_blocks_overflow_123 + vpaddd %xmm28,%xmm2,%xmm0 + jmp L$_16_blocks_ok_123 + +L$_16_blocks_overflow_123: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %xmm29,%xmm0,%xmm0 +L$_16_blocks_ok_123: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $0,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%xmm17{%k1}{z} + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %xmm31,%xmm0,%xmm0 + vaesenclast %xmm30,%xmm0,%xmm0 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti32x4 $0,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %xmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm0,%zmm0{%k1}{z} + vpshufb %xmm29,%xmm0,%xmm17 + vextracti32x4 $0,%zmm17,%xmm7 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_124 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm17,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm17,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm17,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm17,%xmm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_124 +L$_small_initial_partial_block_124: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + + + vpsrldq $8,%zmm26,%zmm0 + vpslldq $8,%zmm26,%zmm3 + vpxorq %zmm0,%zmm24,%zmm24 + vpxorq %zmm3,%zmm25,%zmm25 + vextracti64x4 $1,%zmm24,%ymm0 + vpxorq %ymm0,%ymm24,%ymm24 + vextracti32x4 $1,%ymm24,%xmm0 + vpxorq %xmm0,%xmm24,%xmm24 + vextracti64x4 $1,%zmm25,%ymm3 + vpxorq %ymm3,%ymm25,%ymm25 + vextracti32x4 $1,%ymm25,%xmm3 + vpxorq %xmm3,%xmm25,%xmm25 + vmovdqa64 POLY2(%rip),%xmm0 + + + vpclmulqdq $0x01,%xmm25,%xmm0,%xmm3 + vpslldq $8,%xmm3,%xmm3 + vpxorq %xmm3,%xmm25,%xmm3 + + + vpclmulqdq $0x00,%xmm3,%xmm0,%xmm4 + vpsrldq $4,%xmm4,%xmm4 + vpclmulqdq $0x10,%xmm3,%xmm0,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm24,%xmm4,%xmm14 + + + + + + + + + + + + + vpxorq %xmm7,%xmm14,%xmm14 + + jmp L$_after_reduction_124 +L$_small_initial_compute_done_124: +L$_after_reduction_124: + jmp L$_last_blocks_done_122 +L$_last_num_blocks_is_2_122: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $254,%r15d + jae L$_16_blocks_overflow_125 + vpaddd %ymm28,%ymm2,%ymm0 + jmp L$_16_blocks_ok_125 + +L$_16_blocks_overflow_125: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %ymm29,%ymm0,%ymm0 +L$_16_blocks_ok_125: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $1,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%ymm17{%k1}{z} + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %ymm31,%ymm0,%ymm0 + vaesenclast %ymm30,%ymm0,%ymm0 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %ymm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm0,%zmm0{%k1}{z} + vpshufb %ymm29,%ymm0,%ymm17 + vextracti32x4 $1,%zmm17,%xmm7 + subq $16 * (2 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_126 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm17,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm17,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm17,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm17,%ymm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_126 +L$_small_initial_partial_block_126: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm17,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm17,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm17,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm17,%xmm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_126: + + orq %r8,%r8 + je L$_after_reduction_126 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_126: + jmp L$_last_blocks_done_122 +L$_last_num_blocks_is_3_122: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $253,%r15d + jae L$_16_blocks_overflow_127 + vpaddd %zmm28,%zmm2,%zmm0 + jmp L$_16_blocks_ok_127 + +L$_16_blocks_overflow_127: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %zmm29,%zmm0,%zmm0 +L$_16_blocks_ok_127: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $2,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm0,%zmm0 + vpxorq %zmm17,%zmm0,%zmm0 + vextracti32x4 $2,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm0,%zmm0{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vextracti32x4 $2,%zmm17,%xmm7 + subq $16 * (3 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_128 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_128 +L$_small_initial_partial_block_128: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm17,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm17,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm17,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm17,%ymm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_128: + + orq %r8,%r8 + je L$_after_reduction_128 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_128: + jmp L$_last_blocks_done_122 +L$_last_num_blocks_is_4_122: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $252,%r15d + jae L$_16_blocks_overflow_129 + vpaddd %zmm28,%zmm2,%zmm0 + jmp L$_16_blocks_ok_129 + +L$_16_blocks_overflow_129: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %zmm29,%zmm0,%zmm0 +L$_16_blocks_ok_129: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $3,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm0,%zmm0 + vpxorq %zmm17,%zmm0,%zmm0 + vextracti32x4 $3,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm0,%zmm0{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vextracti32x4 $3,%zmm17,%xmm7 + subq $16 * (4 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_130 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_130 +L$_small_initial_partial_block_130: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_130: + + orq %r8,%r8 + je L$_after_reduction_130 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_130: + jmp L$_last_blocks_done_122 +L$_last_num_blocks_is_5_122: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $251,%r15d + jae L$_16_blocks_overflow_131 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %xmm27,%xmm0,%xmm3 + jmp L$_16_blocks_ok_131 + +L$_16_blocks_overflow_131: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %xmm29,%xmm3,%xmm3 +L$_16_blocks_ok_131: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $0,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%xmm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %xmm30,%xmm3,%xmm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %xmm19,%xmm3,%xmm3 + vextracti32x4 $0,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %xmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm3,%zmm3{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %xmm29,%xmm3,%xmm19 + vextracti32x4 $0,%zmm19,%xmm7 + subq $16 * (5 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_132 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm19,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm19,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm19,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm19,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_132 +L$_small_initial_partial_block_132: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_132: + + orq %r8,%r8 + je L$_after_reduction_132 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_132: + jmp L$_last_blocks_done_122 +L$_last_num_blocks_is_6_122: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $250,%r15d + jae L$_16_blocks_overflow_133 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %ymm27,%ymm0,%ymm3 + jmp L$_16_blocks_ok_133 + +L$_16_blocks_overflow_133: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %ymm29,%ymm3,%ymm3 +L$_16_blocks_ok_133: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $1,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%ymm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %ymm30,%ymm3,%ymm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %ymm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm3,%zmm3{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %ymm29,%ymm3,%ymm19 + vextracti32x4 $1,%zmm19,%xmm7 + subq $16 * (6 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_134 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm19,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm19,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm19,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm19,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_134 +L$_small_initial_partial_block_134: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm19,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm19,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm19,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm19,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_134: + + orq %r8,%r8 + je L$_after_reduction_134 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_134: + jmp L$_last_blocks_done_122 +L$_last_num_blocks_is_7_122: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $249,%r15d + jae L$_16_blocks_overflow_135 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + jmp L$_16_blocks_ok_135 + +L$_16_blocks_overflow_135: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 +L$_16_blocks_ok_135: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $2,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti32x4 $2,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm3,%zmm3{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vextracti32x4 $2,%zmm19,%xmm7 + subq $16 * (7 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_136 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_136 +L$_small_initial_partial_block_136: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm19,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm19,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm19,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm19,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_136: + + orq %r8,%r8 + je L$_after_reduction_136 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_136: + jmp L$_last_blocks_done_122 +L$_last_num_blocks_is_8_122: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $248,%r15d + jae L$_16_blocks_overflow_137 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + jmp L$_16_blocks_ok_137 + +L$_16_blocks_overflow_137: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 +L$_16_blocks_ok_137: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $3,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti32x4 $3,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm3,%zmm3{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vextracti32x4 $3,%zmm19,%xmm7 + subq $16 * (8 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_138 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_138 +L$_small_initial_partial_block_138: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_138: + + orq %r8,%r8 + je L$_after_reduction_138 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_138: + jmp L$_last_blocks_done_122 +L$_last_num_blocks_is_9_122: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $247,%r15d + jae L$_16_blocks_overflow_139 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %xmm27,%xmm3,%xmm4 + jmp L$_16_blocks_ok_139 + +L$_16_blocks_overflow_139: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %xmm29,%xmm4,%xmm4 +L$_16_blocks_ok_139: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $0,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%xmm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %xmm30,%xmm4,%xmm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %xmm20,%xmm4,%xmm4 + vextracti32x4 $0,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %xmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm4,%zmm4{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %xmm29,%xmm4,%xmm20 + vextracti32x4 $0,%zmm20,%xmm7 + subq $16 * (9 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_140 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm20,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm20,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm20,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm20,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_140 +L$_small_initial_partial_block_140: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_140: + + orq %r8,%r8 + je L$_after_reduction_140 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_140: + jmp L$_last_blocks_done_122 +L$_last_num_blocks_is_10_122: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $246,%r15d + jae L$_16_blocks_overflow_141 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %ymm27,%ymm3,%ymm4 + jmp L$_16_blocks_ok_141 + +L$_16_blocks_overflow_141: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %ymm29,%ymm4,%ymm4 +L$_16_blocks_ok_141: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $1,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%ymm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %ymm30,%ymm4,%ymm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %ymm20,%ymm4,%ymm4 + vextracti32x4 $1,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %ymm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm4,%zmm4{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %ymm29,%ymm4,%ymm20 + vextracti32x4 $1,%zmm20,%xmm7 + subq $16 * (10 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_142 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm20,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm20,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm20,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm20,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_142 +L$_small_initial_partial_block_142: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm20,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm20,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm20,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm20,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_142: + + orq %r8,%r8 + je L$_after_reduction_142 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_142: + jmp L$_last_blocks_done_122 +L$_last_num_blocks_is_11_122: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $245,%r15d + jae L$_16_blocks_overflow_143 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + jmp L$_16_blocks_ok_143 + +L$_16_blocks_overflow_143: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 +L$_16_blocks_ok_143: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $2,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vextracti32x4 $2,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm4,%zmm4{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %zmm29,%zmm4,%zmm20 + vextracti32x4 $2,%zmm20,%xmm7 + subq $16 * (11 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_144 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_144 +L$_small_initial_partial_block_144: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm20,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm20,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm20,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm20,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_144: + + orq %r8,%r8 + je L$_after_reduction_144 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_144: + jmp L$_last_blocks_done_122 +L$_last_num_blocks_is_12_122: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $244,%r15d + jae L$_16_blocks_overflow_145 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + jmp L$_16_blocks_ok_145 + +L$_16_blocks_overflow_145: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 +L$_16_blocks_ok_145: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $3,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vextracti32x4 $3,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm4,%zmm4{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %zmm29,%zmm4,%zmm20 + vextracti32x4 $3,%zmm20,%xmm7 + subq $16 * (12 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_146 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 160(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_146 +L$_small_initial_partial_block_146: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_146: + + orq %r8,%r8 + je L$_after_reduction_146 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_146: + jmp L$_last_blocks_done_122 +L$_last_num_blocks_is_13_122: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $243,%r15d + jae L$_16_blocks_overflow_147 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %xmm27,%xmm4,%xmm5 + jmp L$_16_blocks_ok_147 + +L$_16_blocks_overflow_147: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %xmm29,%xmm5,%xmm5 +L$_16_blocks_ok_147: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $0,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%xmm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %xmm30,%xmm5,%xmm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %xmm21,%xmm5,%xmm5 + vextracti32x4 $0,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %xmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm5,%zmm5{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %zmm29,%zmm4,%zmm20 + vpshufb %xmm29,%xmm5,%xmm21 + vextracti32x4 $0,%zmm21,%xmm7 + subq $16 * (13 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_148 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 144(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm21,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm21,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm21,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm21,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_148 +L$_small_initial_partial_block_148: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 160(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_148: + + orq %r8,%r8 + je L$_after_reduction_148 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_148: + jmp L$_last_blocks_done_122 +L$_last_num_blocks_is_14_122: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $242,%r15d + jae L$_16_blocks_overflow_149 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %ymm27,%ymm4,%ymm5 + jmp L$_16_blocks_ok_149 + +L$_16_blocks_overflow_149: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %ymm29,%ymm5,%ymm5 +L$_16_blocks_ok_149: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $1,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%ymm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %ymm30,%ymm5,%ymm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %ymm21,%ymm5,%ymm5 + vextracti32x4 $1,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %ymm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm5,%zmm5{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %zmm29,%zmm4,%zmm20 + vpshufb %ymm29,%ymm5,%ymm21 + vextracti32x4 $1,%zmm21,%xmm7 + subq $16 * (14 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_150 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 128(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm21,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm21,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm21,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm21,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_150 +L$_small_initial_partial_block_150: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 144(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm21,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm21,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm21,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm21,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_150: + + orq %r8,%r8 + je L$_after_reduction_150 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_150: + jmp L$_last_blocks_done_122 +L$_last_num_blocks_is_15_122: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $241,%r15d + jae L$_16_blocks_overflow_151 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp L$_16_blocks_ok_151 + +L$_16_blocks_overflow_151: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +L$_16_blocks_ok_151: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $2,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%zmm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + vextracti32x4 $2,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %zmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm5,%zmm5{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %zmm29,%zmm4,%zmm20 + vpshufb %zmm29,%zmm5,%zmm21 + vextracti32x4 $2,%zmm21,%xmm7 + subq $16 * (15 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_152 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 112(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm21,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm21,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm21,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm21,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_152 +L$_small_initial_partial_block_152: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 128(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm21,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm21,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm21,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm21,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_152: + + orq %r8,%r8 + je L$_after_reduction_152 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_152: + jmp L$_last_blocks_done_122 +L$_last_num_blocks_is_16_122: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $240,%r15d + jae L$_16_blocks_overflow_153 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp L$_16_blocks_ok_153 + +L$_16_blocks_overflow_153: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +L$_16_blocks_ok_153: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $3,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%zmm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + vextracti32x4 $3,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %zmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm5,%zmm5{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %zmm29,%zmm4,%zmm20 + vpshufb %zmm29,%zmm5,%zmm21 + vextracti32x4 $3,%zmm21,%xmm7 + subq $16 * (16 - 1),%r8 +L$_small_initial_partial_block_154: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 112(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm21,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm21,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm21,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm21,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_154: + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_154: + jmp L$_last_blocks_done_122 +L$_last_num_blocks_is_0_122: + vmovdqa64 768(%rsp),%zmm13 + vpxorq %zmm14,%zmm13,%zmm13 + vmovdqu64 0(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 832(%rsp),%zmm13 + vmovdqu64 64(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + vpxorq %zmm10,%zmm4,%zmm26 + vpxorq %zmm6,%zmm0,%zmm24 + vpxorq %zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + vmovdqa64 896(%rsp),%zmm13 + vmovdqu64 128(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 960(%rsp),%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + + vpternlogq $0x96,%zmm10,%zmm4,%zmm26 + vpternlogq $0x96,%zmm6,%zmm0,%zmm24 + vpternlogq $0x96,%zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + + vpsrldq $8,%zmm26,%zmm0 + vpslldq $8,%zmm26,%zmm3 + vpxorq %zmm0,%zmm24,%zmm24 + vpxorq %zmm3,%zmm25,%zmm25 + vextracti64x4 $1,%zmm24,%ymm0 + vpxorq %ymm0,%ymm24,%ymm24 + vextracti32x4 $1,%ymm24,%xmm0 + vpxorq %xmm0,%xmm24,%xmm24 + vextracti64x4 $1,%zmm25,%ymm3 + vpxorq %ymm3,%ymm25,%ymm25 + vextracti32x4 $1,%ymm25,%xmm3 + vpxorq %xmm3,%xmm25,%xmm25 + vmovdqa64 POLY2(%rip),%xmm4 + + + vpclmulqdq $0x01,%xmm25,%xmm4,%xmm0 + vpslldq $8,%xmm0,%xmm0 + vpxorq %xmm0,%xmm25,%xmm0 + + + vpclmulqdq $0x00,%xmm0,%xmm4,%xmm3 + vpsrldq $4,%xmm3,%xmm3 + vpclmulqdq $0x10,%xmm0,%xmm4,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm24,%xmm3,%xmm14 + +L$_last_blocks_done_122: + vpshufb %xmm29,%xmm2,%xmm2 + jmp L$_ghash_done_10 + +L$_message_below_equal_16_blocks_10: + + + movl %r8d,%r12d + addl $15,%r12d + shrl $4,%r12d + cmpq $8,%r12 + je L$_small_initial_num_blocks_is_8_155 + jl L$_small_initial_num_blocks_is_7_1_155 + + + cmpq $12,%r12 + je L$_small_initial_num_blocks_is_12_155 + jl L$_small_initial_num_blocks_is_11_9_155 + + + cmpq $16,%r12 + je L$_small_initial_num_blocks_is_16_155 + cmpq $15,%r12 + je L$_small_initial_num_blocks_is_15_155 + cmpq $14,%r12 + je L$_small_initial_num_blocks_is_14_155 + jmp L$_small_initial_num_blocks_is_13_155 + +L$_small_initial_num_blocks_is_11_9_155: + + cmpq $11,%r12 + je L$_small_initial_num_blocks_is_11_155 + cmpq $10,%r12 + je L$_small_initial_num_blocks_is_10_155 + jmp L$_small_initial_num_blocks_is_9_155 + +L$_small_initial_num_blocks_is_7_1_155: + cmpq $4,%r12 + je L$_small_initial_num_blocks_is_4_155 + jl L$_small_initial_num_blocks_is_3_1_155 + + cmpq $7,%r12 + je L$_small_initial_num_blocks_is_7_155 + cmpq $6,%r12 + je L$_small_initial_num_blocks_is_6_155 + jmp L$_small_initial_num_blocks_is_5_155 + +L$_small_initial_num_blocks_is_3_1_155: + + cmpq $3,%r12 + je L$_small_initial_num_blocks_is_3_155 + cmpq $2,%r12 + je L$_small_initial_num_blocks_is_2_155 + + + + + +L$_small_initial_num_blocks_is_1_155: + vmovdqa64 SHUF_MASK(%rip),%xmm29 + vpaddd ONE(%rip),%xmm2,%xmm0 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $0,%zmm0,%xmm2 + vpshufb %xmm29,%xmm0,%xmm0 + vmovdqu8 0(%rcx,%r11,1),%xmm6{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %xmm15,%xmm0,%xmm0 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %xmm15,%xmm0,%xmm0 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %xmm15,%xmm0,%xmm0 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %xmm15,%xmm0,%xmm0 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %xmm15,%xmm0,%xmm0 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %xmm15,%xmm0,%xmm0 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %xmm15,%xmm0,%xmm0 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %xmm15,%xmm0,%xmm0 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %xmm15,%xmm0,%xmm0 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %xmm15,%xmm0,%xmm0 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenclast %xmm15,%xmm0,%xmm0 + vpxorq %xmm6,%xmm0,%xmm0 + vextracti32x4 $0,%zmm0,%xmm12 + movq %r9,%r10 + vmovdqu8 %xmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm0,%zmm0{%k1}{z} + vpshufb %xmm29,%xmm0,%xmm6 + vextracti32x4 $0,%zmm6,%xmm13 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_156 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 336(%rsi),%xmm20 + vpclmulqdq $0x01,%xmm20,%xmm6,%xmm4 + vpclmulqdq $0x10,%xmm20,%xmm6,%xmm5 + vpclmulqdq $0x11,%xmm20,%xmm6,%xmm0 + vpclmulqdq $0x00,%xmm20,%xmm6,%xmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_156 +L$_small_initial_partial_block_156: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + + + + + + + + + + + + vpxorq %xmm13,%xmm14,%xmm14 + + jmp L$_after_reduction_156 +L$_small_initial_compute_done_156: +L$_after_reduction_156: + jmp L$_small_initial_blocks_encrypted_155 +L$_small_initial_num_blocks_is_2_155: + vmovdqa64 SHUF_MASK(%rip),%ymm29 + vshufi64x2 $0,%ymm2,%ymm2,%ymm0 + vpaddd ddq_add_1234(%rip),%ymm0,%ymm0 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $1,%zmm0,%xmm2 + vpshufb %ymm29,%ymm0,%ymm0 + vmovdqu8 0(%rcx,%r11,1),%ymm6{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %ymm15,%ymm0,%ymm0 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %ymm15,%ymm0,%ymm0 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %ymm15,%ymm0,%ymm0 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %ymm15,%ymm0,%ymm0 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %ymm15,%ymm0,%ymm0 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %ymm15,%ymm0,%ymm0 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %ymm15,%ymm0,%ymm0 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %ymm15,%ymm0,%ymm0 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %ymm15,%ymm0,%ymm0 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %ymm15,%ymm0,%ymm0 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenclast %ymm15,%ymm0,%ymm0 + vpxorq %ymm6,%ymm0,%ymm0 + vextracti32x4 $1,%zmm0,%xmm12 + movq %r9,%r10 + vmovdqu8 %ymm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm0,%zmm0{%k1}{z} + vpshufb %ymm29,%ymm0,%ymm6 + vextracti32x4 $1,%zmm6,%xmm13 + subq $16 * (2 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_157 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 320(%rsi),%ymm20 + vpclmulqdq $0x01,%ymm20,%ymm6,%ymm4 + vpclmulqdq $0x10,%ymm20,%ymm6,%ymm5 + vpclmulqdq $0x11,%ymm20,%ymm6,%ymm0 + vpclmulqdq $0x00,%ymm20,%ymm6,%ymm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_157 +L$_small_initial_partial_block_157: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 336(%rsi),%xmm20 + vpclmulqdq $0x01,%xmm20,%xmm6,%xmm4 + vpclmulqdq $0x10,%xmm20,%xmm6,%xmm5 + vpclmulqdq $0x11,%xmm20,%xmm6,%xmm0 + vpclmulqdq $0x00,%xmm20,%xmm6,%xmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_157: + + orq %r8,%r8 + je L$_after_reduction_157 + vpxorq %xmm13,%xmm14,%xmm14 +L$_after_reduction_157: + jmp L$_small_initial_blocks_encrypted_155 +L$_small_initial_num_blocks_is_3_155: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $2,%zmm0,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vmovdqu8 0(%rcx,%r11,1),%zmm6{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vpxorq %zmm6,%zmm0,%zmm0 + vextracti32x4 $2,%zmm0,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm0,%zmm0{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm6 + vextracti32x4 $2,%zmm6,%xmm13 + subq $16 * (3 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_158 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 304(%rsi),%ymm20 + vinserti64x2 $2,336(%rsi),%zmm20,%zmm20 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_158 +L$_small_initial_partial_block_158: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 320(%rsi),%ymm20 + vpclmulqdq $0x01,%ymm20,%ymm6,%ymm4 + vpclmulqdq $0x10,%ymm20,%ymm6,%ymm5 + vpclmulqdq $0x11,%ymm20,%ymm6,%ymm0 + vpclmulqdq $0x00,%ymm20,%ymm6,%ymm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_158: + + orq %r8,%r8 + je L$_after_reduction_158 + vpxorq %xmm13,%xmm14,%xmm14 +L$_after_reduction_158: + jmp L$_small_initial_blocks_encrypted_155 +L$_small_initial_num_blocks_is_4_155: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $3,%zmm0,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vmovdqu8 0(%rcx,%r11,1),%zmm6{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vpxorq %zmm6,%zmm0,%zmm0 + vextracti32x4 $3,%zmm0,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm0,%zmm0{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm6 + vextracti32x4 $3,%zmm6,%xmm13 + subq $16 * (4 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_159 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 288(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm19 + + vpxorq %zmm19,%zmm17,%zmm17 + vpsrldq $8,%zmm17,%zmm4 + vpslldq $8,%zmm17,%zmm5 + vpxorq %zmm4,%zmm15,%zmm0 + vpxorq %zmm5,%zmm16,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_159 +L$_small_initial_partial_block_159: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 304(%rsi),%ymm20 + vinserti64x2 $2,336(%rsi),%zmm20,%zmm20 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_159: + + orq %r8,%r8 + je L$_after_reduction_159 + vpxorq %xmm13,%xmm14,%xmm14 +L$_after_reduction_159: + jmp L$_small_initial_blocks_encrypted_155 +L$_small_initial_num_blocks_is_5_155: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd ddq_add_5678(%rip),%zmm2,%zmm3 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + subq $64,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $0,%zmm3,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %xmm29,%xmm3,%xmm3 + vmovdqu8 0(%rcx,%r11,1),%zmm6 + vmovdqu8 64(%rcx,%r11,1),%xmm7{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %xmm15,%xmm3,%xmm3 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %xmm15,%xmm3,%xmm3 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %xmm15,%xmm3,%xmm3 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %xmm15,%xmm3,%xmm3 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %xmm15,%xmm3,%xmm3 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %xmm15,%xmm3,%xmm3 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %xmm15,%xmm3,%xmm3 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %xmm15,%xmm3,%xmm3 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %xmm15,%xmm3,%xmm3 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %xmm15,%xmm3,%xmm3 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vaesenclast %xmm15,%xmm3,%xmm3 + vpxorq %zmm6,%zmm0,%zmm0 + vpxorq %xmm7,%xmm3,%xmm3 + vextracti32x4 $0,%zmm3,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %xmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm3,%zmm3{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm6 + vpshufb %xmm29,%xmm3,%xmm7 + vextracti32x4 $0,%zmm7,%xmm13 + subq $16 * (5 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_160 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 272(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm19 + vmovdqu64 336(%rsi),%xmm20 + vpclmulqdq $0x01,%xmm20,%xmm7,%xmm4 + vpclmulqdq $0x10,%xmm20,%xmm7,%xmm5 + vpclmulqdq $0x11,%xmm20,%xmm7,%xmm0 + vpclmulqdq $0x00,%xmm20,%xmm7,%xmm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_160 +L$_small_initial_partial_block_160: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 288(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm19 + + vpxorq %zmm19,%zmm17,%zmm17 + vpsrldq $8,%zmm17,%zmm4 + vpslldq $8,%zmm17,%zmm5 + vpxorq %zmm4,%zmm15,%zmm0 + vpxorq %zmm5,%zmm16,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_160: + + orq %r8,%r8 + je L$_after_reduction_160 + vpxorq %xmm13,%xmm14,%xmm14 +L$_after_reduction_160: + jmp L$_small_initial_blocks_encrypted_155 +L$_small_initial_num_blocks_is_6_155: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd ddq_add_5678(%rip),%zmm2,%zmm3 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + subq $64,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $1,%zmm3,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %ymm29,%ymm3,%ymm3 + vmovdqu8 0(%rcx,%r11,1),%zmm6 + vmovdqu8 64(%rcx,%r11,1),%ymm7{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %ymm15,%ymm3,%ymm3 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %ymm15,%ymm3,%ymm3 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %ymm15,%ymm3,%ymm3 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %ymm15,%ymm3,%ymm3 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %ymm15,%ymm3,%ymm3 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %ymm15,%ymm3,%ymm3 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %ymm15,%ymm3,%ymm3 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %ymm15,%ymm3,%ymm3 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %ymm15,%ymm3,%ymm3 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %ymm15,%ymm3,%ymm3 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vaesenclast %ymm15,%ymm3,%ymm3 + vpxorq %zmm6,%zmm0,%zmm0 + vpxorq %ymm7,%ymm3,%ymm3 + vextracti32x4 $1,%zmm3,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %ymm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm3,%zmm3{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm6 + vpshufb %ymm29,%ymm3,%ymm7 + vextracti32x4 $1,%zmm7,%xmm13 + subq $16 * (6 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_161 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 256(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm19 + vmovdqu64 320(%rsi),%ymm20 + vpclmulqdq $0x01,%ymm20,%ymm7,%ymm4 + vpclmulqdq $0x10,%ymm20,%ymm7,%ymm5 + vpclmulqdq $0x11,%ymm20,%ymm7,%ymm0 + vpclmulqdq $0x00,%ymm20,%ymm7,%ymm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_161 +L$_small_initial_partial_block_161: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 272(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm19 + vmovdqu64 336(%rsi),%xmm20 + vpclmulqdq $0x01,%xmm20,%xmm7,%xmm4 + vpclmulqdq $0x10,%xmm20,%xmm7,%xmm5 + vpclmulqdq $0x11,%xmm20,%xmm7,%xmm0 + vpclmulqdq $0x00,%xmm20,%xmm7,%xmm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_161: + + orq %r8,%r8 + je L$_after_reduction_161 + vpxorq %xmm13,%xmm14,%xmm14 +L$_after_reduction_161: + jmp L$_small_initial_blocks_encrypted_155 +L$_small_initial_num_blocks_is_7_155: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd ddq_add_5678(%rip),%zmm2,%zmm3 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + subq $64,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $2,%zmm3,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vmovdqu8 0(%rcx,%r11,1),%zmm6 + vmovdqu8 64(%rcx,%r11,1),%zmm7{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vaesenclast %zmm15,%zmm3,%zmm3 + vpxorq %zmm6,%zmm0,%zmm0 + vpxorq %zmm7,%zmm3,%zmm3 + vextracti32x4 $2,%zmm3,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm3,%zmm3{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm6 + vpshufb %zmm29,%zmm3,%zmm7 + vextracti32x4 $2,%zmm7,%xmm13 + subq $16 * (7 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_162 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 240(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm19 + vmovdqu64 304(%rsi),%ymm20 + vinserti64x2 $2,336(%rsi),%zmm20,%zmm20 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm5 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_162 +L$_small_initial_partial_block_162: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 256(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm19 + vmovdqu64 320(%rsi),%ymm20 + vpclmulqdq $0x01,%ymm20,%ymm7,%ymm4 + vpclmulqdq $0x10,%ymm20,%ymm7,%ymm5 + vpclmulqdq $0x11,%ymm20,%ymm7,%ymm0 + vpclmulqdq $0x00,%ymm20,%ymm7,%ymm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_162: + + orq %r8,%r8 + je L$_after_reduction_162 + vpxorq %xmm13,%xmm14,%xmm14 +L$_after_reduction_162: + jmp L$_small_initial_blocks_encrypted_155 +L$_small_initial_num_blocks_is_8_155: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd ddq_add_5678(%rip),%zmm2,%zmm3 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + subq $64,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $3,%zmm3,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vmovdqu8 0(%rcx,%r11,1),%zmm6 + vmovdqu8 64(%rcx,%r11,1),%zmm7{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vaesenclast %zmm15,%zmm3,%zmm3 + vpxorq %zmm6,%zmm0,%zmm0 + vpxorq %zmm7,%zmm3,%zmm3 + vextracti32x4 $3,%zmm3,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm3,%zmm3{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm6 + vpshufb %zmm29,%zmm3,%zmm7 + vextracti32x4 $3,%zmm7,%xmm13 + subq $16 * (8 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_163 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 224(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 288(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vpxorq %zmm15,%zmm0,%zmm15 + vpxorq %zmm16,%zmm3,%zmm16 + vpxorq %zmm17,%zmm4,%zmm17 + vpxorq %zmm19,%zmm5,%zmm19 + + vpxorq %zmm19,%zmm17,%zmm17 + vpsrldq $8,%zmm17,%zmm4 + vpslldq $8,%zmm17,%zmm5 + vpxorq %zmm4,%zmm15,%zmm0 + vpxorq %zmm5,%zmm16,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_163 +L$_small_initial_partial_block_163: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 240(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm19 + vmovdqu64 304(%rsi),%ymm20 + vinserti64x2 $2,336(%rsi),%zmm20,%zmm20 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm5 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_163: + + orq %r8,%r8 + je L$_after_reduction_163 + vpxorq %xmm13,%xmm14,%xmm14 +L$_after_reduction_163: + jmp L$_small_initial_blocks_encrypted_155 +L$_small_initial_num_blocks_is_9_155: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd ddq_add_5678(%rip),%zmm2,%zmm3 + vpaddd ddq_add_8888(%rip),%zmm0,%zmm4 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + subq $128,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $0,%zmm4,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %xmm29,%xmm4,%xmm4 + vmovdqu8 0(%rcx,%r11,1),%zmm6 + vmovdqu8 64(%rcx,%r11,1),%zmm7 + vmovdqu8 128(%rcx,%r11,1),%xmm10{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm15,%zmm3,%zmm3 + vpxorq %xmm15,%xmm4,%xmm4 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %xmm15,%xmm4,%xmm4 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %xmm15,%xmm4,%xmm4 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %xmm15,%xmm4,%xmm4 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %xmm15,%xmm4,%xmm4 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %xmm15,%xmm4,%xmm4 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %xmm15,%xmm4,%xmm4 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %xmm15,%xmm4,%xmm4 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %xmm15,%xmm4,%xmm4 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %xmm15,%xmm4,%xmm4 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vaesenclast %zmm15,%zmm3,%zmm3 + vaesenclast %xmm15,%xmm4,%xmm4 + vpxorq %zmm6,%zmm0,%zmm0 + vpxorq %zmm7,%zmm3,%zmm3 + vpxorq %xmm10,%xmm4,%xmm4 + vextracti32x4 $0,%zmm4,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %xmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm4,%zmm4{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm6 + vpshufb %zmm29,%zmm3,%zmm7 + vpshufb %xmm29,%xmm4,%xmm10 + vextracti32x4 $0,%zmm10,%xmm13 + subq $16 * (9 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_164 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 208(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 272(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vpxorq %zmm15,%zmm0,%zmm15 + vpxorq %zmm16,%zmm3,%zmm16 + vpxorq %zmm17,%zmm4,%zmm17 + vpxorq %zmm19,%zmm5,%zmm19 + vmovdqu64 336(%rsi),%xmm20 + vpclmulqdq $0x01,%xmm20,%xmm10,%xmm4 + vpclmulqdq $0x10,%xmm20,%xmm10,%xmm5 + vpclmulqdq $0x11,%xmm20,%xmm10,%xmm0 + vpclmulqdq $0x00,%xmm20,%xmm10,%xmm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_164 +L$_small_initial_partial_block_164: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 224(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 288(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vpxorq %zmm15,%zmm0,%zmm15 + vpxorq %zmm16,%zmm3,%zmm16 + vpxorq %zmm17,%zmm4,%zmm17 + vpxorq %zmm19,%zmm5,%zmm19 + + vpxorq %zmm19,%zmm17,%zmm17 + vpsrldq $8,%zmm17,%zmm4 + vpslldq $8,%zmm17,%zmm5 + vpxorq %zmm4,%zmm15,%zmm0 + vpxorq %zmm5,%zmm16,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_164: + + orq %r8,%r8 + je L$_after_reduction_164 + vpxorq %xmm13,%xmm14,%xmm14 +L$_after_reduction_164: + jmp L$_small_initial_blocks_encrypted_155 +L$_small_initial_num_blocks_is_10_155: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd ddq_add_5678(%rip),%zmm2,%zmm3 + vpaddd ddq_add_8888(%rip),%zmm0,%zmm4 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + subq $128,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $1,%zmm4,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %ymm29,%ymm4,%ymm4 + vmovdqu8 0(%rcx,%r11,1),%zmm6 + vmovdqu8 64(%rcx,%r11,1),%zmm7 + vmovdqu8 128(%rcx,%r11,1),%ymm10{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm15,%zmm3,%zmm3 + vpxorq %ymm15,%ymm4,%ymm4 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %ymm15,%ymm4,%ymm4 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %ymm15,%ymm4,%ymm4 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %ymm15,%ymm4,%ymm4 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %ymm15,%ymm4,%ymm4 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %ymm15,%ymm4,%ymm4 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %ymm15,%ymm4,%ymm4 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %ymm15,%ymm4,%ymm4 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %ymm15,%ymm4,%ymm4 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %ymm15,%ymm4,%ymm4 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vaesenclast %zmm15,%zmm3,%zmm3 + vaesenclast %ymm15,%ymm4,%ymm4 + vpxorq %zmm6,%zmm0,%zmm0 + vpxorq %zmm7,%zmm3,%zmm3 + vpxorq %ymm10,%ymm4,%ymm4 + vextracti32x4 $1,%zmm4,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %ymm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm4,%zmm4{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm6 + vpshufb %zmm29,%zmm3,%zmm7 + vpshufb %ymm29,%ymm4,%ymm10 + vextracti32x4 $1,%zmm10,%xmm13 + subq $16 * (10 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_165 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 192(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 256(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vpxorq %zmm15,%zmm0,%zmm15 + vpxorq %zmm16,%zmm3,%zmm16 + vpxorq %zmm17,%zmm4,%zmm17 + vpxorq %zmm19,%zmm5,%zmm19 + vmovdqu64 320(%rsi),%ymm20 + vpclmulqdq $0x01,%ymm20,%ymm10,%ymm4 + vpclmulqdq $0x10,%ymm20,%ymm10,%ymm5 + vpclmulqdq $0x11,%ymm20,%ymm10,%ymm0 + vpclmulqdq $0x00,%ymm20,%ymm10,%ymm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_165 +L$_small_initial_partial_block_165: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 208(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 272(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vpxorq %zmm15,%zmm0,%zmm15 + vpxorq %zmm16,%zmm3,%zmm16 + vpxorq %zmm17,%zmm4,%zmm17 + vpxorq %zmm19,%zmm5,%zmm19 + vmovdqu64 336(%rsi),%xmm20 + vpclmulqdq $0x01,%xmm20,%xmm10,%xmm4 + vpclmulqdq $0x10,%xmm20,%xmm10,%xmm5 + vpclmulqdq $0x11,%xmm20,%xmm10,%xmm0 + vpclmulqdq $0x00,%xmm20,%xmm10,%xmm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_165: + + orq %r8,%r8 + je L$_after_reduction_165 + vpxorq %xmm13,%xmm14,%xmm14 +L$_after_reduction_165: + jmp L$_small_initial_blocks_encrypted_155 +L$_small_initial_num_blocks_is_11_155: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd ddq_add_5678(%rip),%zmm2,%zmm3 + vpaddd ddq_add_8888(%rip),%zmm0,%zmm4 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + subq $128,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $2,%zmm4,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vmovdqu8 0(%rcx,%r11,1),%zmm6 + vmovdqu8 64(%rcx,%r11,1),%zmm7 + vmovdqu8 128(%rcx,%r11,1),%zmm10{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm15,%zmm3,%zmm3 + vpxorq %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vaesenclast %zmm15,%zmm3,%zmm3 + vaesenclast %zmm15,%zmm4,%zmm4 + vpxorq %zmm6,%zmm0,%zmm0 + vpxorq %zmm7,%zmm3,%zmm3 + vpxorq %zmm10,%zmm4,%zmm4 + vextracti32x4 $2,%zmm4,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm4,%zmm4{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm6 + vpshufb %zmm29,%zmm3,%zmm7 + vpshufb %zmm29,%zmm4,%zmm10 + vextracti32x4 $2,%zmm10,%xmm13 + subq $16 * (11 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_166 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 176(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 240(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vpxorq %zmm15,%zmm0,%zmm15 + vpxorq %zmm16,%zmm3,%zmm16 + vpxorq %zmm17,%zmm4,%zmm17 + vpxorq %zmm19,%zmm5,%zmm19 + vmovdqu64 304(%rsi),%ymm20 + vinserti64x2 $2,336(%rsi),%zmm20,%zmm20 + vpclmulqdq $0x01,%zmm20,%zmm10,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm10,%zmm5 + vpclmulqdq $0x11,%zmm20,%zmm10,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm10,%zmm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_166 +L$_small_initial_partial_block_166: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 192(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 256(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vpxorq %zmm15,%zmm0,%zmm15 + vpxorq %zmm16,%zmm3,%zmm16 + vpxorq %zmm17,%zmm4,%zmm17 + vpxorq %zmm19,%zmm5,%zmm19 + vmovdqu64 320(%rsi),%ymm20 + vpclmulqdq $0x01,%ymm20,%ymm10,%ymm4 + vpclmulqdq $0x10,%ymm20,%ymm10,%ymm5 + vpclmulqdq $0x11,%ymm20,%ymm10,%ymm0 + vpclmulqdq $0x00,%ymm20,%ymm10,%ymm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_166: + + orq %r8,%r8 + je L$_after_reduction_166 + vpxorq %xmm13,%xmm14,%xmm14 +L$_after_reduction_166: + jmp L$_small_initial_blocks_encrypted_155 +L$_small_initial_num_blocks_is_12_155: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd ddq_add_5678(%rip),%zmm2,%zmm3 + vpaddd ddq_add_8888(%rip),%zmm0,%zmm4 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + subq $128,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $3,%zmm4,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vmovdqu8 0(%rcx,%r11,1),%zmm6 + vmovdqu8 64(%rcx,%r11,1),%zmm7 + vmovdqu8 128(%rcx,%r11,1),%zmm10{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm15,%zmm3,%zmm3 + vpxorq %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vaesenclast %zmm15,%zmm3,%zmm3 + vaesenclast %zmm15,%zmm4,%zmm4 + vpxorq %zmm6,%zmm0,%zmm0 + vpxorq %zmm7,%zmm3,%zmm3 + vpxorq %zmm10,%zmm4,%zmm4 + vextracti32x4 $3,%zmm4,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm4,%zmm4{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm6 + vpshufb %zmm29,%zmm3,%zmm7 + vpshufb %zmm29,%zmm4,%zmm10 + vextracti32x4 $3,%zmm10,%xmm13 + subq $16 * (12 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_167 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 160(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 224(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vmovdqu64 288(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x00,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm0,%zmm6,%zmm15 + vpternlogq $0x96,%zmm3,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x10,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm4,%zmm6,%zmm17 + vpternlogq $0x96,%zmm5,%zmm7,%zmm19 + + vpxorq %zmm19,%zmm17,%zmm17 + vpsrldq $8,%zmm17,%zmm4 + vpslldq $8,%zmm17,%zmm5 + vpxorq %zmm4,%zmm15,%zmm0 + vpxorq %zmm5,%zmm16,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_167 +L$_small_initial_partial_block_167: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 176(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 240(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vpxorq %zmm15,%zmm0,%zmm15 + vpxorq %zmm16,%zmm3,%zmm16 + vpxorq %zmm17,%zmm4,%zmm17 + vpxorq %zmm19,%zmm5,%zmm19 + vmovdqu64 304(%rsi),%ymm20 + vinserti64x2 $2,336(%rsi),%zmm20,%zmm20 + vpclmulqdq $0x01,%zmm20,%zmm10,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm10,%zmm5 + vpclmulqdq $0x11,%zmm20,%zmm10,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm10,%zmm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_167: + + orq %r8,%r8 + je L$_after_reduction_167 + vpxorq %xmm13,%xmm14,%xmm14 +L$_after_reduction_167: + jmp L$_small_initial_blocks_encrypted_155 +L$_small_initial_num_blocks_is_13_155: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd ddq_add_5678(%rip),%zmm2,%zmm3 + vpaddd ddq_add_8888(%rip),%zmm0,%zmm4 + vpaddd ddq_add_8888(%rip),%zmm3,%zmm5 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + subq $192,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $0,%zmm5,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %xmm29,%xmm5,%xmm5 + vmovdqu8 0(%rcx,%r11,1),%zmm6 + vmovdqu8 64(%rcx,%r11,1),%zmm7 + vmovdqu8 128(%rcx,%r11,1),%zmm10 + vmovdqu8 192(%rcx,%r11,1),%xmm11{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm15,%zmm3,%zmm3 + vpxorq %zmm15,%zmm4,%zmm4 + vpxorq %xmm15,%xmm5,%xmm5 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %xmm15,%xmm5,%xmm5 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %xmm15,%xmm5,%xmm5 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %xmm15,%xmm5,%xmm5 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %xmm15,%xmm5,%xmm5 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %xmm15,%xmm5,%xmm5 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %xmm15,%xmm5,%xmm5 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %xmm15,%xmm5,%xmm5 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %xmm15,%xmm5,%xmm5 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %xmm15,%xmm5,%xmm5 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vaesenclast %zmm15,%zmm3,%zmm3 + vaesenclast %zmm15,%zmm4,%zmm4 + vaesenclast %xmm15,%xmm5,%xmm5 + vpxorq %zmm6,%zmm0,%zmm0 + vpxorq %zmm7,%zmm3,%zmm3 + vpxorq %zmm10,%zmm4,%zmm4 + vpxorq %xmm11,%xmm5,%xmm5 + vextracti32x4 $0,%zmm5,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %xmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm5,%zmm5{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm6 + vpshufb %zmm29,%zmm3,%zmm7 + vpshufb %zmm29,%zmm4,%zmm10 + vpshufb %xmm29,%xmm5,%xmm11 + vextracti32x4 $0,%zmm11,%xmm13 + subq $16 * (13 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_168 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 144(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 208(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vmovdqu64 272(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x00,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm0,%zmm6,%zmm15 + vpternlogq $0x96,%zmm3,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x10,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm4,%zmm6,%zmm17 + vpternlogq $0x96,%zmm5,%zmm7,%zmm19 + vmovdqu64 336(%rsi),%xmm20 + vpclmulqdq $0x01,%xmm20,%xmm11,%xmm4 + vpclmulqdq $0x10,%xmm20,%xmm11,%xmm5 + vpclmulqdq $0x11,%xmm20,%xmm11,%xmm0 + vpclmulqdq $0x00,%xmm20,%xmm11,%xmm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_168 +L$_small_initial_partial_block_168: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 160(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 224(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vmovdqu64 288(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x00,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm0,%zmm6,%zmm15 + vpternlogq $0x96,%zmm3,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x10,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm4,%zmm6,%zmm17 + vpternlogq $0x96,%zmm5,%zmm7,%zmm19 + + vpxorq %zmm19,%zmm17,%zmm17 + vpsrldq $8,%zmm17,%zmm4 + vpslldq $8,%zmm17,%zmm5 + vpxorq %zmm4,%zmm15,%zmm0 + vpxorq %zmm5,%zmm16,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_168: + + orq %r8,%r8 + je L$_after_reduction_168 + vpxorq %xmm13,%xmm14,%xmm14 +L$_after_reduction_168: + jmp L$_small_initial_blocks_encrypted_155 +L$_small_initial_num_blocks_is_14_155: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd ddq_add_5678(%rip),%zmm2,%zmm3 + vpaddd ddq_add_8888(%rip),%zmm0,%zmm4 + vpaddd ddq_add_8888(%rip),%zmm3,%zmm5 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + subq $192,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $1,%zmm5,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %ymm29,%ymm5,%ymm5 + vmovdqu8 0(%rcx,%r11,1),%zmm6 + vmovdqu8 64(%rcx,%r11,1),%zmm7 + vmovdqu8 128(%rcx,%r11,1),%zmm10 + vmovdqu8 192(%rcx,%r11,1),%ymm11{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm15,%zmm3,%zmm3 + vpxorq %zmm15,%zmm4,%zmm4 + vpxorq %ymm15,%ymm5,%ymm5 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %ymm15,%ymm5,%ymm5 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %ymm15,%ymm5,%ymm5 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %ymm15,%ymm5,%ymm5 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %ymm15,%ymm5,%ymm5 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %ymm15,%ymm5,%ymm5 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %ymm15,%ymm5,%ymm5 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %ymm15,%ymm5,%ymm5 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %ymm15,%ymm5,%ymm5 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %ymm15,%ymm5,%ymm5 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vaesenclast %zmm15,%zmm3,%zmm3 + vaesenclast %zmm15,%zmm4,%zmm4 + vaesenclast %ymm15,%ymm5,%ymm5 + vpxorq %zmm6,%zmm0,%zmm0 + vpxorq %zmm7,%zmm3,%zmm3 + vpxorq %zmm10,%zmm4,%zmm4 + vpxorq %ymm11,%ymm5,%ymm5 + vextracti32x4 $1,%zmm5,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %ymm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm5,%zmm5{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm6 + vpshufb %zmm29,%zmm3,%zmm7 + vpshufb %zmm29,%zmm4,%zmm10 + vpshufb %ymm29,%ymm5,%ymm11 + vextracti32x4 $1,%zmm11,%xmm13 + subq $16 * (14 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_169 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 128(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 192(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vmovdqu64 256(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x00,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm0,%zmm6,%zmm15 + vpternlogq $0x96,%zmm3,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x10,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm4,%zmm6,%zmm17 + vpternlogq $0x96,%zmm5,%zmm7,%zmm19 + vmovdqu64 320(%rsi),%ymm20 + vpclmulqdq $0x01,%ymm20,%ymm11,%ymm4 + vpclmulqdq $0x10,%ymm20,%ymm11,%ymm5 + vpclmulqdq $0x11,%ymm20,%ymm11,%ymm0 + vpclmulqdq $0x00,%ymm20,%ymm11,%ymm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_169 +L$_small_initial_partial_block_169: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 144(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 208(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vmovdqu64 272(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x00,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm0,%zmm6,%zmm15 + vpternlogq $0x96,%zmm3,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x10,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm4,%zmm6,%zmm17 + vpternlogq $0x96,%zmm5,%zmm7,%zmm19 + vmovdqu64 336(%rsi),%xmm20 + vpclmulqdq $0x01,%xmm20,%xmm11,%xmm4 + vpclmulqdq $0x10,%xmm20,%xmm11,%xmm5 + vpclmulqdq $0x11,%xmm20,%xmm11,%xmm0 + vpclmulqdq $0x00,%xmm20,%xmm11,%xmm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_169: + + orq %r8,%r8 + je L$_after_reduction_169 + vpxorq %xmm13,%xmm14,%xmm14 +L$_after_reduction_169: + jmp L$_small_initial_blocks_encrypted_155 +L$_small_initial_num_blocks_is_15_155: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd ddq_add_5678(%rip),%zmm2,%zmm3 + vpaddd ddq_add_8888(%rip),%zmm0,%zmm4 + vpaddd ddq_add_8888(%rip),%zmm3,%zmm5 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + subq $192,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $2,%zmm5,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 + vmovdqu8 0(%rcx,%r11,1),%zmm6 + vmovdqu8 64(%rcx,%r11,1),%zmm7 + vmovdqu8 128(%rcx,%r11,1),%zmm10 + vmovdqu8 192(%rcx,%r11,1),%zmm11{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm15,%zmm3,%zmm3 + vpxorq %zmm15,%zmm4,%zmm4 + vpxorq %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vaesenclast %zmm15,%zmm3,%zmm3 + vaesenclast %zmm15,%zmm4,%zmm4 + vaesenclast %zmm15,%zmm5,%zmm5 + vpxorq %zmm6,%zmm0,%zmm0 + vpxorq %zmm7,%zmm3,%zmm3 + vpxorq %zmm10,%zmm4,%zmm4 + vpxorq %zmm11,%zmm5,%zmm5 + vextracti32x4 $2,%zmm5,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %zmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm5,%zmm5{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm6 + vpshufb %zmm29,%zmm3,%zmm7 + vpshufb %zmm29,%zmm4,%zmm10 + vpshufb %zmm29,%zmm5,%zmm11 + vextracti32x4 $2,%zmm11,%xmm13 + subq $16 * (15 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_170 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 112(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 176(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vmovdqu64 240(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x00,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm0,%zmm6,%zmm15 + vpternlogq $0x96,%zmm3,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x10,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm4,%zmm6,%zmm17 + vpternlogq $0x96,%zmm5,%zmm7,%zmm19 + vmovdqu64 304(%rsi),%ymm20 + vinserti64x2 $2,336(%rsi),%zmm20,%zmm20 + vpclmulqdq $0x01,%zmm20,%zmm11,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm11,%zmm5 + vpclmulqdq $0x11,%zmm20,%zmm11,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm11,%zmm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_170 +L$_small_initial_partial_block_170: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 128(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 192(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vmovdqu64 256(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x00,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm0,%zmm6,%zmm15 + vpternlogq $0x96,%zmm3,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x10,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm4,%zmm6,%zmm17 + vpternlogq $0x96,%zmm5,%zmm7,%zmm19 + vmovdqu64 320(%rsi),%ymm20 + vpclmulqdq $0x01,%ymm20,%ymm11,%ymm4 + vpclmulqdq $0x10,%ymm20,%ymm11,%ymm5 + vpclmulqdq $0x11,%ymm20,%ymm11,%ymm0 + vpclmulqdq $0x00,%ymm20,%ymm11,%ymm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_170: + + orq %r8,%r8 + je L$_after_reduction_170 + vpxorq %xmm13,%xmm14,%xmm14 +L$_after_reduction_170: + jmp L$_small_initial_blocks_encrypted_155 +L$_small_initial_num_blocks_is_16_155: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd ddq_add_5678(%rip),%zmm2,%zmm3 + vpaddd ddq_add_8888(%rip),%zmm0,%zmm4 + vpaddd ddq_add_8888(%rip),%zmm3,%zmm5 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + subq $192,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $3,%zmm5,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 + vmovdqu8 0(%rcx,%r11,1),%zmm6 + vmovdqu8 64(%rcx,%r11,1),%zmm7 + vmovdqu8 128(%rcx,%r11,1),%zmm10 + vmovdqu8 192(%rcx,%r11,1),%zmm11{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm15,%zmm3,%zmm3 + vpxorq %zmm15,%zmm4,%zmm4 + vpxorq %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vaesenclast %zmm15,%zmm3,%zmm3 + vaesenclast %zmm15,%zmm4,%zmm4 + vaesenclast %zmm15,%zmm5,%zmm5 + vpxorq %zmm6,%zmm0,%zmm0 + vpxorq %zmm7,%zmm3,%zmm3 + vpxorq %zmm10,%zmm4,%zmm4 + vpxorq %zmm11,%zmm5,%zmm5 + vextracti32x4 $3,%zmm5,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %zmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm5,%zmm5{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm6 + vpshufb %zmm29,%zmm3,%zmm7 + vpshufb %zmm29,%zmm4,%zmm10 + vpshufb %zmm29,%zmm5,%zmm11 + vextracti32x4 $3,%zmm11,%xmm13 + subq $16 * (16 - 1),%r8 +L$_small_initial_partial_block_171: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 112(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 176(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vmovdqu64 240(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x00,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm0,%zmm6,%zmm15 + vpternlogq $0x96,%zmm3,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x10,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm4,%zmm6,%zmm17 + vpternlogq $0x96,%zmm5,%zmm7,%zmm19 + vmovdqu64 304(%rsi),%ymm20 + vinserti64x2 $2,336(%rsi),%zmm20,%zmm20 + vpclmulqdq $0x01,%zmm20,%zmm11,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm11,%zmm5 + vpclmulqdq $0x11,%zmm20,%zmm11,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm11,%zmm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_171: + vpxorq %xmm13,%xmm14,%xmm14 +L$_after_reduction_171: +L$_small_initial_blocks_encrypted_155: +L$_ghash_done_10: + vmovdqu64 %xmm2,0(%rsi) + vmovdqu64 %xmm14,64(%rsi) +L$_enc_dec_done_10: + jmp L$exit_gcm_encrypt +.p2align 5 +L$aes_gcm_encrypt_192_avx512: + orq %r8,%r8 + je L$_enc_dec_done_172 + xorq %r14,%r14 + vmovdqu64 64(%rsi),%xmm14 + + movq (%rdx),%r11 + orq %r11,%r11 + je L$_partial_block_done_173 + movl $16,%r10d + leaq byte_len_to_mask_table(%rip),%r12 + cmpq %r10,%r8 + cmovcq %r8,%r10 + kmovw (%r12,%r10,2),%k1 + vmovdqu8 (%rcx),%xmm0{%k1}{z} + + vmovdqu64 16(%rsi),%xmm3 + vmovdqu64 336(%rsi),%xmm4 + + + + leaq SHIFT_MASK(%rip),%r12 + addq %r11,%r12 + vmovdqu64 (%r12),%xmm5 + vpshufb %xmm5,%xmm3,%xmm3 + vpxorq %xmm0,%xmm3,%xmm3 + + + leaq (%r8,%r11,1),%r13 + subq $16,%r13 + jge L$_no_extra_mask_173 + subq %r13,%r12 +L$_no_extra_mask_173: + + + + vmovdqu64 16(%r12),%xmm0 + vpand %xmm0,%xmm3,%xmm3 + vpshufb SHUF_MASK(%rip),%xmm3,%xmm3 + vpshufb %xmm5,%xmm3,%xmm3 + vpxorq %xmm3,%xmm14,%xmm14 + cmpq $0,%r13 + jl L$_partial_incomplete_173 + + vpclmulqdq $0x11,%xmm4,%xmm14,%xmm7 + vpclmulqdq $0x00,%xmm4,%xmm14,%xmm10 + vpclmulqdq $0x01,%xmm4,%xmm14,%xmm11 + vpclmulqdq $0x10,%xmm4,%xmm14,%xmm14 + vpxorq %xmm11,%xmm14,%xmm14 + + vpsrldq $8,%xmm14,%xmm11 + vpslldq $8,%xmm14,%xmm14 + vpxorq %xmm11,%xmm7,%xmm7 + vpxorq %xmm10,%xmm14,%xmm14 + + + + vmovdqu64 POLY2(%rip),%xmm11 + + vpclmulqdq $0x01,%xmm14,%xmm11,%xmm10 + vpslldq $8,%xmm10,%xmm10 + vpxorq %xmm10,%xmm14,%xmm14 + + + + vpclmulqdq $0x00,%xmm14,%xmm11,%xmm10 + vpsrldq $4,%xmm10,%xmm10 + vpclmulqdq $0x10,%xmm14,%xmm11,%xmm14 + vpslldq $4,%xmm14,%xmm14 + + vpternlogq $0x96,%xmm10,%xmm7,%xmm14 + + movq $0,(%rdx) + + movq %r11,%r12 + movq $16,%r11 + subq %r12,%r11 + jmp L$_enc_dec_done_173 + +L$_partial_incomplete_173: + addq %r8,(%rdx) + movq %r8,%r11 + +L$_enc_dec_done_173: + + + leaq byte_len_to_mask_table(%rip),%r12 + kmovw (%r12,%r11,2),%k1 + vmovdqu64 %xmm14,64(%rsi) + + vpshufb SHUF_MASK(%rip),%xmm3,%xmm3 + vpshufb %xmm5,%xmm3,%xmm3 + movq %r9,%r12 + vmovdqu8 %xmm3,(%r12){%k1} +L$_partial_block_done_173: + vmovdqu64 0(%rsi),%xmm2 + subq %r11,%r8 + je L$_enc_dec_done_172 + cmpq $256,%r8 + jbe L$_message_below_equal_16_blocks_172 + + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vmovdqa64 ddq_addbe_4444(%rip),%zmm27 + vmovdqa64 ddq_addbe_1234(%rip),%zmm28 + + + + + + + vmovd %xmm2,%r15d + andl $255,%r15d + + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpshufb %zmm29,%zmm2,%zmm2 + + + + cmpb $240,%r15b + jae L$_next_16_overflow_174 + vpaddd %zmm28,%zmm2,%zmm7 + vpaddd %zmm27,%zmm7,%zmm10 + vpaddd %zmm27,%zmm10,%zmm11 + vpaddd %zmm27,%zmm11,%zmm12 + jmp L$_next_16_ok_174 +L$_next_16_overflow_174: + vpshufb %zmm29,%zmm2,%zmm2 + vmovdqa64 ddq_add_4444(%rip),%zmm12 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm7 + vpaddd %zmm12,%zmm7,%zmm10 + vpaddd %zmm12,%zmm10,%zmm11 + vpaddd %zmm12,%zmm11,%zmm12 + vpshufb %zmm29,%zmm7,%zmm7 + vpshufb %zmm29,%zmm10,%zmm10 + vpshufb %zmm29,%zmm11,%zmm11 + vpshufb %zmm29,%zmm12,%zmm12 +L$_next_16_ok_174: + vshufi64x2 $255,%zmm12,%zmm12,%zmm2 + addb $16,%r15b + + vmovdqu8 0(%rcx,%r11,1),%zmm0 + vmovdqu8 64(%rcx,%r11,1),%zmm3 + vmovdqu8 128(%rcx,%r11,1),%zmm4 + vmovdqu8 192(%rcx,%r11,1),%zmm5 + + + vbroadcastf64x2 0(%rdi),%zmm6 + vpxorq %zmm6,%zmm7,%zmm7 + vpxorq %zmm6,%zmm10,%zmm10 + vpxorq %zmm6,%zmm11,%zmm11 + vpxorq %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 16(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 32(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 48(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 64(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 80(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 96(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 112(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 128(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 144(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 160(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 176(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 192(%rdi),%zmm6 + vaesenclast %zmm6,%zmm7,%zmm7 + vaesenclast %zmm6,%zmm10,%zmm10 + vaesenclast %zmm6,%zmm11,%zmm11 + vaesenclast %zmm6,%zmm12,%zmm12 + + + vpxorq %zmm0,%zmm7,%zmm7 + vpxorq %zmm3,%zmm10,%zmm10 + vpxorq %zmm4,%zmm11,%zmm11 + vpxorq %zmm5,%zmm12,%zmm12 + + + movq %r9,%r10 + vmovdqu8 %zmm7,0(%r10,%r11,1) + vmovdqu8 %zmm10,64(%r10,%r11,1) + vmovdqu8 %zmm11,128(%r10,%r11,1) + vmovdqu8 %zmm12,192(%r10,%r11,1) + + vpshufb %zmm29,%zmm7,%zmm7 + vpshufb %zmm29,%zmm10,%zmm10 + vpshufb %zmm29,%zmm11,%zmm11 + vpshufb %zmm29,%zmm12,%zmm12 + vmovdqa64 %zmm7,768(%rsp) + vmovdqa64 %zmm10,832(%rsp) + vmovdqa64 %zmm11,896(%rsp) + vmovdqa64 %zmm12,960(%rsp) + testq %r14,%r14 + jnz L$_skip_hkeys_precomputation_175 + + vmovdqu64 288(%rsi),%zmm0 + vmovdqu64 %zmm0,704(%rsp) + + vmovdqu64 224(%rsi),%zmm3 + vmovdqu64 %zmm3,640(%rsp) + + + vshufi64x2 $0x00,%zmm3,%zmm3,%zmm3 + + vmovdqu64 160(%rsi),%zmm4 + vmovdqu64 %zmm4,576(%rsp) + + vmovdqu64 96(%rsi),%zmm5 + vmovdqu64 %zmm5,512(%rsp) +L$_skip_hkeys_precomputation_175: + cmpq $512,%r8 + jb L$_message_below_32_blocks_172 + + + + cmpb $240,%r15b + jae L$_next_16_overflow_176 + vpaddd %zmm28,%zmm2,%zmm7 + vpaddd %zmm27,%zmm7,%zmm10 + vpaddd %zmm27,%zmm10,%zmm11 + vpaddd %zmm27,%zmm11,%zmm12 + jmp L$_next_16_ok_176 +L$_next_16_overflow_176: + vpshufb %zmm29,%zmm2,%zmm2 + vmovdqa64 ddq_add_4444(%rip),%zmm12 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm7 + vpaddd %zmm12,%zmm7,%zmm10 + vpaddd %zmm12,%zmm10,%zmm11 + vpaddd %zmm12,%zmm11,%zmm12 + vpshufb %zmm29,%zmm7,%zmm7 + vpshufb %zmm29,%zmm10,%zmm10 + vpshufb %zmm29,%zmm11,%zmm11 + vpshufb %zmm29,%zmm12,%zmm12 +L$_next_16_ok_176: + vshufi64x2 $255,%zmm12,%zmm12,%zmm2 + addb $16,%r15b + + vmovdqu8 256(%rcx,%r11,1),%zmm0 + vmovdqu8 320(%rcx,%r11,1),%zmm3 + vmovdqu8 384(%rcx,%r11,1),%zmm4 + vmovdqu8 448(%rcx,%r11,1),%zmm5 + + + vbroadcastf64x2 0(%rdi),%zmm6 + vpxorq %zmm6,%zmm7,%zmm7 + vpxorq %zmm6,%zmm10,%zmm10 + vpxorq %zmm6,%zmm11,%zmm11 + vpxorq %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 16(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 32(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 48(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 64(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 80(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 96(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 112(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 128(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 144(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 160(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 176(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 192(%rdi),%zmm6 + vaesenclast %zmm6,%zmm7,%zmm7 + vaesenclast %zmm6,%zmm10,%zmm10 + vaesenclast %zmm6,%zmm11,%zmm11 + vaesenclast %zmm6,%zmm12,%zmm12 + + + vpxorq %zmm0,%zmm7,%zmm7 + vpxorq %zmm3,%zmm10,%zmm10 + vpxorq %zmm4,%zmm11,%zmm11 + vpxorq %zmm5,%zmm12,%zmm12 + + + movq %r9,%r10 + vmovdqu8 %zmm7,256(%r10,%r11,1) + vmovdqu8 %zmm10,320(%r10,%r11,1) + vmovdqu8 %zmm11,384(%r10,%r11,1) + vmovdqu8 %zmm12,448(%r10,%r11,1) + + vpshufb %zmm29,%zmm7,%zmm7 + vpshufb %zmm29,%zmm10,%zmm10 + vpshufb %zmm29,%zmm11,%zmm11 + vpshufb %zmm29,%zmm12,%zmm12 + vmovdqa64 %zmm7,1024(%rsp) + vmovdqa64 %zmm10,1088(%rsp) + vmovdqa64 %zmm11,1152(%rsp) + vmovdqa64 %zmm12,1216(%rsp) + testq %r14,%r14 + jnz L$_skip_hkeys_precomputation_177 + vmovdqu64 640(%rsp),%zmm3 + + + vshufi64x2 $0x00,%zmm3,%zmm3,%zmm3 + + vmovdqu64 576(%rsp),%zmm4 + vmovdqu64 512(%rsp),%zmm5 + + vpclmulqdq $0x11,%zmm3,%zmm4,%zmm6 + vpclmulqdq $0x00,%zmm3,%zmm4,%zmm7 + vpclmulqdq $0x01,%zmm3,%zmm4,%zmm10 + vpclmulqdq $0x10,%zmm3,%zmm4,%zmm4 + vpxorq %zmm10,%zmm4,%zmm4 + + vpsrldq $8,%zmm4,%zmm10 + vpslldq $8,%zmm4,%zmm4 + vpxorq %zmm10,%zmm6,%zmm6 + vpxorq %zmm7,%zmm4,%zmm4 + + + + vmovdqu64 POLY2(%rip),%zmm10 + + vpclmulqdq $0x01,%zmm4,%zmm10,%zmm7 + vpslldq $8,%zmm7,%zmm7 + vpxorq %zmm7,%zmm4,%zmm4 + + + + vpclmulqdq $0x00,%zmm4,%zmm10,%zmm7 + vpsrldq $4,%zmm7,%zmm7 + vpclmulqdq $0x10,%zmm4,%zmm10,%zmm4 + vpslldq $4,%zmm4,%zmm4 + + vpternlogq $0x96,%zmm7,%zmm6,%zmm4 + + vmovdqu64 %zmm4,448(%rsp) + + vpclmulqdq $0x11,%zmm3,%zmm5,%zmm6 + vpclmulqdq $0x00,%zmm3,%zmm5,%zmm7 + vpclmulqdq $0x01,%zmm3,%zmm5,%zmm10 + vpclmulqdq $0x10,%zmm3,%zmm5,%zmm5 + vpxorq %zmm10,%zmm5,%zmm5 + + vpsrldq $8,%zmm5,%zmm10 + vpslldq $8,%zmm5,%zmm5 + vpxorq %zmm10,%zmm6,%zmm6 + vpxorq %zmm7,%zmm5,%zmm5 + + + + vmovdqu64 POLY2(%rip),%zmm10 + + vpclmulqdq $0x01,%zmm5,%zmm10,%zmm7 + vpslldq $8,%zmm7,%zmm7 + vpxorq %zmm7,%zmm5,%zmm5 + + + + vpclmulqdq $0x00,%zmm5,%zmm10,%zmm7 + vpsrldq $4,%zmm7,%zmm7 + vpclmulqdq $0x10,%zmm5,%zmm10,%zmm5 + vpslldq $4,%zmm5,%zmm5 + + vpternlogq $0x96,%zmm7,%zmm6,%zmm5 + + vmovdqu64 %zmm5,384(%rsp) + + vpclmulqdq $0x11,%zmm3,%zmm4,%zmm6 + vpclmulqdq $0x00,%zmm3,%zmm4,%zmm7 + vpclmulqdq $0x01,%zmm3,%zmm4,%zmm10 + vpclmulqdq $0x10,%zmm3,%zmm4,%zmm4 + vpxorq %zmm10,%zmm4,%zmm4 + + vpsrldq $8,%zmm4,%zmm10 + vpslldq $8,%zmm4,%zmm4 + vpxorq %zmm10,%zmm6,%zmm6 + vpxorq %zmm7,%zmm4,%zmm4 + + + + vmovdqu64 POLY2(%rip),%zmm10 + + vpclmulqdq $0x01,%zmm4,%zmm10,%zmm7 + vpslldq $8,%zmm7,%zmm7 + vpxorq %zmm7,%zmm4,%zmm4 + + + + vpclmulqdq $0x00,%zmm4,%zmm10,%zmm7 + vpsrldq $4,%zmm7,%zmm7 + vpclmulqdq $0x10,%zmm4,%zmm10,%zmm4 + vpslldq $4,%zmm4,%zmm4 + + vpternlogq $0x96,%zmm7,%zmm6,%zmm4 + + vmovdqu64 %zmm4,320(%rsp) + + vpclmulqdq $0x11,%zmm3,%zmm5,%zmm6 + vpclmulqdq $0x00,%zmm3,%zmm5,%zmm7 + vpclmulqdq $0x01,%zmm3,%zmm5,%zmm10 + vpclmulqdq $0x10,%zmm3,%zmm5,%zmm5 + vpxorq %zmm10,%zmm5,%zmm5 + + vpsrldq $8,%zmm5,%zmm10 + vpslldq $8,%zmm5,%zmm5 + vpxorq %zmm10,%zmm6,%zmm6 + vpxorq %zmm7,%zmm5,%zmm5 + + + + vmovdqu64 POLY2(%rip),%zmm10 + + vpclmulqdq $0x01,%zmm5,%zmm10,%zmm7 + vpslldq $8,%zmm7,%zmm7 + vpxorq %zmm7,%zmm5,%zmm5 + + + + vpclmulqdq $0x00,%zmm5,%zmm10,%zmm7 + vpsrldq $4,%zmm7,%zmm7 + vpclmulqdq $0x10,%zmm5,%zmm10,%zmm5 + vpslldq $4,%zmm5,%zmm5 + + vpternlogq $0x96,%zmm7,%zmm6,%zmm5 + + vmovdqu64 %zmm5,256(%rsp) + + vpclmulqdq $0x11,%zmm3,%zmm4,%zmm6 + vpclmulqdq $0x00,%zmm3,%zmm4,%zmm7 + vpclmulqdq $0x01,%zmm3,%zmm4,%zmm10 + vpclmulqdq $0x10,%zmm3,%zmm4,%zmm4 + vpxorq %zmm10,%zmm4,%zmm4 + + vpsrldq $8,%zmm4,%zmm10 + vpslldq $8,%zmm4,%zmm4 + vpxorq %zmm10,%zmm6,%zmm6 + vpxorq %zmm7,%zmm4,%zmm4 + + + + vmovdqu64 POLY2(%rip),%zmm10 + + vpclmulqdq $0x01,%zmm4,%zmm10,%zmm7 + vpslldq $8,%zmm7,%zmm7 + vpxorq %zmm7,%zmm4,%zmm4 + + + + vpclmulqdq $0x00,%zmm4,%zmm10,%zmm7 + vpsrldq $4,%zmm7,%zmm7 + vpclmulqdq $0x10,%zmm4,%zmm10,%zmm4 + vpslldq $4,%zmm4,%zmm4 + + vpternlogq $0x96,%zmm7,%zmm6,%zmm4 + + vmovdqu64 %zmm4,192(%rsp) + + vpclmulqdq $0x11,%zmm3,%zmm5,%zmm6 + vpclmulqdq $0x00,%zmm3,%zmm5,%zmm7 + vpclmulqdq $0x01,%zmm3,%zmm5,%zmm10 + vpclmulqdq $0x10,%zmm3,%zmm5,%zmm5 + vpxorq %zmm10,%zmm5,%zmm5 + + vpsrldq $8,%zmm5,%zmm10 + vpslldq $8,%zmm5,%zmm5 + vpxorq %zmm10,%zmm6,%zmm6 + vpxorq %zmm7,%zmm5,%zmm5 + + + + vmovdqu64 POLY2(%rip),%zmm10 + + vpclmulqdq $0x01,%zmm5,%zmm10,%zmm7 + vpslldq $8,%zmm7,%zmm7 + vpxorq %zmm7,%zmm5,%zmm5 + + + + vpclmulqdq $0x00,%zmm5,%zmm10,%zmm7 + vpsrldq $4,%zmm7,%zmm7 + vpclmulqdq $0x10,%zmm5,%zmm10,%zmm5 + vpslldq $4,%zmm5,%zmm5 + + vpternlogq $0x96,%zmm7,%zmm6,%zmm5 + + vmovdqu64 %zmm5,128(%rsp) + + vpclmulqdq $0x11,%zmm3,%zmm4,%zmm6 + vpclmulqdq $0x00,%zmm3,%zmm4,%zmm7 + vpclmulqdq $0x01,%zmm3,%zmm4,%zmm10 + vpclmulqdq $0x10,%zmm3,%zmm4,%zmm4 + vpxorq %zmm10,%zmm4,%zmm4 + + vpsrldq $8,%zmm4,%zmm10 + vpslldq $8,%zmm4,%zmm4 + vpxorq %zmm10,%zmm6,%zmm6 + vpxorq %zmm7,%zmm4,%zmm4 + + + + vmovdqu64 POLY2(%rip),%zmm10 + + vpclmulqdq $0x01,%zmm4,%zmm10,%zmm7 + vpslldq $8,%zmm7,%zmm7 + vpxorq %zmm7,%zmm4,%zmm4 + + + + vpclmulqdq $0x00,%zmm4,%zmm10,%zmm7 + vpsrldq $4,%zmm7,%zmm7 + vpclmulqdq $0x10,%zmm4,%zmm10,%zmm4 + vpslldq $4,%zmm4,%zmm4 + + vpternlogq $0x96,%zmm7,%zmm6,%zmm4 + + vmovdqu64 %zmm4,64(%rsp) + + vpclmulqdq $0x11,%zmm3,%zmm5,%zmm6 + vpclmulqdq $0x00,%zmm3,%zmm5,%zmm7 + vpclmulqdq $0x01,%zmm3,%zmm5,%zmm10 + vpclmulqdq $0x10,%zmm3,%zmm5,%zmm5 + vpxorq %zmm10,%zmm5,%zmm5 + + vpsrldq $8,%zmm5,%zmm10 + vpslldq $8,%zmm5,%zmm5 + vpxorq %zmm10,%zmm6,%zmm6 + vpxorq %zmm7,%zmm5,%zmm5 + + + + vmovdqu64 POLY2(%rip),%zmm10 + + vpclmulqdq $0x01,%zmm5,%zmm10,%zmm7 + vpslldq $8,%zmm7,%zmm7 + vpxorq %zmm7,%zmm5,%zmm5 + + + + vpclmulqdq $0x00,%zmm5,%zmm10,%zmm7 + vpsrldq $4,%zmm7,%zmm7 + vpclmulqdq $0x10,%zmm5,%zmm10,%zmm5 + vpslldq $4,%zmm5,%zmm5 + + vpternlogq $0x96,%zmm7,%zmm6,%zmm5 + + vmovdqu64 %zmm5,0(%rsp) +L$_skip_hkeys_precomputation_177: + movq $1,%r14 + addq $512,%r11 + subq $512,%r8 + + cmpq $768,%r8 + jb L$_no_more_big_nblocks_172 +L$_encrypt_big_nblocks_172: + cmpb $240,%r15b + jae L$_16_blocks_overflow_178 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp L$_16_blocks_ok_178 +L$_16_blocks_overflow_178: + vpshufb %zmm29,%zmm2,%zmm2 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +L$_16_blocks_ok_178: + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp),%zmm1 + + + + + vshufi64x2 $255,%zmm5,%zmm5,%zmm2 + addb $16,%r15b + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + + + + + + + + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm6 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm6 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + + + + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%zmm21 + + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm15,%zmm10,%zmm26 + vpxorq %zmm12,%zmm6,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 192(%rdi),%zmm30 + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + + + + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + + + + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %zmm5,192(%r10,%r11,1) + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 + vmovdqa64 %zmm0,1280(%rsp) + vmovdqa64 %zmm3,1344(%rsp) + vmovdqa64 %zmm4,1408(%rsp) + vmovdqa64 %zmm5,1472(%rsp) + cmpb $240,%r15b + jae L$_16_blocks_overflow_179 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp L$_16_blocks_ok_179 +L$_16_blocks_overflow_179: + vpshufb %zmm29,%zmm2,%zmm2 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +L$_16_blocks_ok_179: + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 256(%rsp),%zmm1 + + + + + vshufi64x2 $255,%zmm5,%zmm5,%zmm2 + addb $16,%r15b + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 320(%rsp),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + + + + + + + + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm6 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 384(%rsp),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 448(%rsp),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm6 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + + + + vmovdqu8 256(%rcx,%r11,1),%zmm17 + vmovdqu8 320(%rcx,%r11,1),%zmm19 + vmovdqu8 384(%rcx,%r11,1),%zmm20 + vmovdqu8 448(%rcx,%r11,1),%zmm21 + + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vpternlogq $0x96,%zmm12,%zmm6,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 192(%rdi),%zmm30 + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + + + + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + + + + movq %r9,%r10 + vmovdqu8 %zmm0,256(%r10,%r11,1) + vmovdqu8 %zmm3,320(%r10,%r11,1) + vmovdqu8 %zmm4,384(%r10,%r11,1) + vmovdqu8 %zmm5,448(%r10,%r11,1) + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 + vmovdqa64 %zmm0,768(%rsp) + vmovdqa64 %zmm3,832(%rsp) + vmovdqa64 %zmm4,896(%rsp) + vmovdqa64 %zmm5,960(%rsp) + cmpb $240,%r15b + jae L$_16_blocks_overflow_180 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp L$_16_blocks_ok_180 +L$_16_blocks_overflow_180: + vpshufb %zmm29,%zmm2,%zmm2 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +L$_16_blocks_ok_180: + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + + + + + vshufi64x2 $255,%zmm5,%zmm5,%zmm2 + addb $16,%r15b + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + + + + + + + + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm6 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm6 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + + + + vmovdqu8 512(%rcx,%r11,1),%zmm17 + vmovdqu8 576(%rcx,%r11,1),%zmm19 + vmovdqu8 640(%rcx,%r11,1),%zmm20 + vmovdqu8 704(%rcx,%r11,1),%zmm21 + + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + + + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vpternlogq $0x96,%zmm15,%zmm12,%zmm6 + vpxorq %zmm24,%zmm6,%zmm6 + vpternlogq $0x96,%zmm10,%zmm13,%zmm7 + vpxorq %zmm25,%zmm7,%zmm7 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vextracti64x4 $1,%zmm6,%ymm12 + vpxorq %ymm12,%ymm6,%ymm6 + vextracti32x4 $1,%ymm6,%xmm12 + vpxorq %xmm12,%xmm6,%xmm6 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 176(%rdi),%zmm31 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 192(%rdi),%zmm30 + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm6 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + + + + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + + + + movq %r9,%r10 + vmovdqu8 %zmm0,512(%r10,%r11,1) + vmovdqu8 %zmm3,576(%r10,%r11,1) + vmovdqu8 %zmm4,640(%r10,%r11,1) + vmovdqu8 %zmm5,704(%r10,%r11,1) + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 + vmovdqa64 %zmm0,1024(%rsp) + vmovdqa64 %zmm3,1088(%rsp) + vmovdqa64 %zmm4,1152(%rsp) + vmovdqa64 %zmm5,1216(%rsp) + vmovdqa64 %zmm6,%zmm14 + + addq $768,%r11 + subq $768,%r8 + cmpq $768,%r8 + jae L$_encrypt_big_nblocks_172 + +L$_no_more_big_nblocks_172: + + cmpq $512,%r8 + jae L$_encrypt_32_blocks_172 + + cmpq $256,%r8 + jae L$_encrypt_16_blocks_172 +L$_encrypt_0_blocks_ghash_32_172: + movl %r8d,%r10d + andl $~15,%r10d + movl $256,%ebx + subl %r10d,%ebx + vmovdqa64 768(%rsp),%zmm13 + vpxorq %zmm14,%zmm13,%zmm13 + vmovdqu64 0(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 832(%rsp),%zmm13 + vmovdqu64 64(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + vpxorq %zmm10,%zmm4,%zmm26 + vpxorq %zmm6,%zmm0,%zmm24 + vpxorq %zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + vmovdqa64 896(%rsp),%zmm13 + vmovdqu64 128(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 960(%rsp),%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + + vpternlogq $0x96,%zmm10,%zmm4,%zmm26 + vpternlogq $0x96,%zmm6,%zmm0,%zmm24 + vpternlogq $0x96,%zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + addl $256,%ebx + movl %r8d,%r10d + addl $15,%r10d + shrl $4,%r10d + je L$_last_num_blocks_is_0_181 + + cmpl $8,%r10d + je L$_last_num_blocks_is_8_181 + jb L$_last_num_blocks_is_7_1_181 + + + cmpl $12,%r10d + je L$_last_num_blocks_is_12_181 + jb L$_last_num_blocks_is_11_9_181 + + + cmpl $15,%r10d + je L$_last_num_blocks_is_15_181 + ja L$_last_num_blocks_is_16_181 + cmpl $14,%r10d + je L$_last_num_blocks_is_14_181 + jmp L$_last_num_blocks_is_13_181 + +L$_last_num_blocks_is_11_9_181: + + cmpl $10,%r10d + je L$_last_num_blocks_is_10_181 + ja L$_last_num_blocks_is_11_181 + jmp L$_last_num_blocks_is_9_181 + +L$_last_num_blocks_is_7_1_181: + cmpl $4,%r10d + je L$_last_num_blocks_is_4_181 + jb L$_last_num_blocks_is_3_1_181 + + cmpl $6,%r10d + ja L$_last_num_blocks_is_7_181 + je L$_last_num_blocks_is_6_181 + jmp L$_last_num_blocks_is_5_181 + +L$_last_num_blocks_is_3_1_181: + + cmpl $2,%r10d + ja L$_last_num_blocks_is_3_181 + je L$_last_num_blocks_is_2_181 +L$_last_num_blocks_is_1_181: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $255,%r15d + jae L$_16_blocks_overflow_182 + vpaddd %xmm28,%xmm2,%xmm0 + jmp L$_16_blocks_ok_182 + +L$_16_blocks_overflow_182: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %xmm29,%xmm0,%xmm0 +L$_16_blocks_ok_182: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $0,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%xmm17{%k1}{z} + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %xmm31,%xmm0,%xmm0 + vaesenclast %xmm30,%xmm0,%xmm0 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti32x4 $0,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %xmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm0,%zmm0{%k1}{z} + vpshufb %xmm29,%xmm0,%xmm17 + vextracti32x4 $0,%zmm17,%xmm7 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_183 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm17,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm17,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm17,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm17,%xmm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_183 +L$_small_initial_partial_block_183: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + + + vpsrldq $8,%zmm26,%zmm0 + vpslldq $8,%zmm26,%zmm3 + vpxorq %zmm0,%zmm24,%zmm24 + vpxorq %zmm3,%zmm25,%zmm25 + vextracti64x4 $1,%zmm24,%ymm0 + vpxorq %ymm0,%ymm24,%ymm24 + vextracti32x4 $1,%ymm24,%xmm0 + vpxorq %xmm0,%xmm24,%xmm24 + vextracti64x4 $1,%zmm25,%ymm3 + vpxorq %ymm3,%ymm25,%ymm25 + vextracti32x4 $1,%ymm25,%xmm3 + vpxorq %xmm3,%xmm25,%xmm25 + vmovdqa64 POLY2(%rip),%xmm0 + + + vpclmulqdq $0x01,%xmm25,%xmm0,%xmm3 + vpslldq $8,%xmm3,%xmm3 + vpxorq %xmm3,%xmm25,%xmm3 + + + vpclmulqdq $0x00,%xmm3,%xmm0,%xmm4 + vpsrldq $4,%xmm4,%xmm4 + vpclmulqdq $0x10,%xmm3,%xmm0,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm24,%xmm4,%xmm14 + + + + + + + + + + + + + vpxorq %xmm7,%xmm14,%xmm14 + + jmp L$_after_reduction_183 +L$_small_initial_compute_done_183: +L$_after_reduction_183: + jmp L$_last_blocks_done_181 +L$_last_num_blocks_is_2_181: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $254,%r15d + jae L$_16_blocks_overflow_184 + vpaddd %ymm28,%ymm2,%ymm0 + jmp L$_16_blocks_ok_184 + +L$_16_blocks_overflow_184: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %ymm29,%ymm0,%ymm0 +L$_16_blocks_ok_184: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $1,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%ymm17{%k1}{z} + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %ymm31,%ymm0,%ymm0 + vaesenclast %ymm30,%ymm0,%ymm0 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %ymm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm0,%zmm0{%k1}{z} + vpshufb %ymm29,%ymm0,%ymm17 + vextracti32x4 $1,%zmm17,%xmm7 + subq $16 * (2 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_185 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm17,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm17,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm17,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm17,%ymm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_185 +L$_small_initial_partial_block_185: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm17,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm17,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm17,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm17,%xmm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_185: + + orq %r8,%r8 + je L$_after_reduction_185 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_185: + jmp L$_last_blocks_done_181 +L$_last_num_blocks_is_3_181: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $253,%r15d + jae L$_16_blocks_overflow_186 + vpaddd %zmm28,%zmm2,%zmm0 + jmp L$_16_blocks_ok_186 + +L$_16_blocks_overflow_186: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %zmm29,%zmm0,%zmm0 +L$_16_blocks_ok_186: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $2,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm0,%zmm0 + vpxorq %zmm17,%zmm0,%zmm0 + vextracti32x4 $2,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm0,%zmm0{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vextracti32x4 $2,%zmm17,%xmm7 + subq $16 * (3 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_187 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_187 +L$_small_initial_partial_block_187: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm17,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm17,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm17,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm17,%ymm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_187: + + orq %r8,%r8 + je L$_after_reduction_187 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_187: + jmp L$_last_blocks_done_181 +L$_last_num_blocks_is_4_181: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $252,%r15d + jae L$_16_blocks_overflow_188 + vpaddd %zmm28,%zmm2,%zmm0 + jmp L$_16_blocks_ok_188 + +L$_16_blocks_overflow_188: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %zmm29,%zmm0,%zmm0 +L$_16_blocks_ok_188: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $3,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm0,%zmm0 + vpxorq %zmm17,%zmm0,%zmm0 + vextracti32x4 $3,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm0,%zmm0{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vextracti32x4 $3,%zmm17,%xmm7 + subq $16 * (4 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_189 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_189 +L$_small_initial_partial_block_189: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_189: + + orq %r8,%r8 + je L$_after_reduction_189 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_189: + jmp L$_last_blocks_done_181 +L$_last_num_blocks_is_5_181: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $251,%r15d + jae L$_16_blocks_overflow_190 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %xmm27,%xmm0,%xmm3 + jmp L$_16_blocks_ok_190 + +L$_16_blocks_overflow_190: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %xmm29,%xmm3,%xmm3 +L$_16_blocks_ok_190: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $0,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%xmm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %xmm30,%xmm3,%xmm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %xmm19,%xmm3,%xmm3 + vextracti32x4 $0,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %xmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm3,%zmm3{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %xmm29,%xmm3,%xmm19 + vextracti32x4 $0,%zmm19,%xmm7 + subq $16 * (5 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_191 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm19,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm19,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm19,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm19,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_191 +L$_small_initial_partial_block_191: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_191: + + orq %r8,%r8 + je L$_after_reduction_191 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_191: + jmp L$_last_blocks_done_181 +L$_last_num_blocks_is_6_181: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $250,%r15d + jae L$_16_blocks_overflow_192 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %ymm27,%ymm0,%ymm3 + jmp L$_16_blocks_ok_192 + +L$_16_blocks_overflow_192: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %ymm29,%ymm3,%ymm3 +L$_16_blocks_ok_192: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $1,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%ymm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %ymm30,%ymm3,%ymm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %ymm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm3,%zmm3{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %ymm29,%ymm3,%ymm19 + vextracti32x4 $1,%zmm19,%xmm7 + subq $16 * (6 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_193 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm19,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm19,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm19,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm19,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_193 +L$_small_initial_partial_block_193: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm19,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm19,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm19,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm19,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_193: + + orq %r8,%r8 + je L$_after_reduction_193 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_193: + jmp L$_last_blocks_done_181 +L$_last_num_blocks_is_7_181: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $249,%r15d + jae L$_16_blocks_overflow_194 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + jmp L$_16_blocks_ok_194 + +L$_16_blocks_overflow_194: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 +L$_16_blocks_ok_194: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $2,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti32x4 $2,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm3,%zmm3{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vextracti32x4 $2,%zmm19,%xmm7 + subq $16 * (7 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_195 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_195 +L$_small_initial_partial_block_195: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm19,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm19,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm19,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm19,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_195: + + orq %r8,%r8 + je L$_after_reduction_195 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_195: + jmp L$_last_blocks_done_181 +L$_last_num_blocks_is_8_181: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $248,%r15d + jae L$_16_blocks_overflow_196 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + jmp L$_16_blocks_ok_196 + +L$_16_blocks_overflow_196: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 +L$_16_blocks_ok_196: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $3,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti32x4 $3,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm3,%zmm3{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vextracti32x4 $3,%zmm19,%xmm7 + subq $16 * (8 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_197 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_197 +L$_small_initial_partial_block_197: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_197: + + orq %r8,%r8 + je L$_after_reduction_197 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_197: + jmp L$_last_blocks_done_181 +L$_last_num_blocks_is_9_181: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $247,%r15d + jae L$_16_blocks_overflow_198 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %xmm27,%xmm3,%xmm4 + jmp L$_16_blocks_ok_198 + +L$_16_blocks_overflow_198: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %xmm29,%xmm4,%xmm4 +L$_16_blocks_ok_198: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $0,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%xmm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %xmm30,%xmm4,%xmm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %xmm20,%xmm4,%xmm4 + vextracti32x4 $0,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %xmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm4,%zmm4{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %xmm29,%xmm4,%xmm20 + vextracti32x4 $0,%zmm20,%xmm7 + subq $16 * (9 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_199 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm20,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm20,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm20,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm20,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_199 +L$_small_initial_partial_block_199: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_199: + + orq %r8,%r8 + je L$_after_reduction_199 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_199: + jmp L$_last_blocks_done_181 +L$_last_num_blocks_is_10_181: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $246,%r15d + jae L$_16_blocks_overflow_200 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %ymm27,%ymm3,%ymm4 + jmp L$_16_blocks_ok_200 + +L$_16_blocks_overflow_200: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %ymm29,%ymm4,%ymm4 +L$_16_blocks_ok_200: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $1,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%ymm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %ymm30,%ymm4,%ymm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %ymm20,%ymm4,%ymm4 + vextracti32x4 $1,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %ymm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm4,%zmm4{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %ymm29,%ymm4,%ymm20 + vextracti32x4 $1,%zmm20,%xmm7 + subq $16 * (10 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_201 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm20,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm20,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm20,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm20,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_201 +L$_small_initial_partial_block_201: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm20,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm20,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm20,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm20,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_201: + + orq %r8,%r8 + je L$_after_reduction_201 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_201: + jmp L$_last_blocks_done_181 +L$_last_num_blocks_is_11_181: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $245,%r15d + jae L$_16_blocks_overflow_202 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + jmp L$_16_blocks_ok_202 + +L$_16_blocks_overflow_202: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 +L$_16_blocks_ok_202: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $2,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vextracti32x4 $2,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm4,%zmm4{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %zmm29,%zmm4,%zmm20 + vextracti32x4 $2,%zmm20,%xmm7 + subq $16 * (11 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_203 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_203 +L$_small_initial_partial_block_203: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm20,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm20,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm20,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm20,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_203: + + orq %r8,%r8 + je L$_after_reduction_203 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_203: + jmp L$_last_blocks_done_181 +L$_last_num_blocks_is_12_181: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $244,%r15d + jae L$_16_blocks_overflow_204 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + jmp L$_16_blocks_ok_204 + +L$_16_blocks_overflow_204: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 +L$_16_blocks_ok_204: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $3,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vextracti32x4 $3,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm4,%zmm4{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %zmm29,%zmm4,%zmm20 + vextracti32x4 $3,%zmm20,%xmm7 + subq $16 * (12 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_205 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 160(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_205 +L$_small_initial_partial_block_205: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_205: + + orq %r8,%r8 + je L$_after_reduction_205 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_205: + jmp L$_last_blocks_done_181 +L$_last_num_blocks_is_13_181: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $243,%r15d + jae L$_16_blocks_overflow_206 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %xmm27,%xmm4,%xmm5 + jmp L$_16_blocks_ok_206 + +L$_16_blocks_overflow_206: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %xmm29,%xmm5,%xmm5 +L$_16_blocks_ok_206: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $0,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%xmm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %xmm30,%xmm5,%xmm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %xmm21,%xmm5,%xmm5 + vextracti32x4 $0,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %xmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm5,%zmm5{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %zmm29,%zmm4,%zmm20 + vpshufb %xmm29,%xmm5,%xmm21 + vextracti32x4 $0,%zmm21,%xmm7 + subq $16 * (13 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_207 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 144(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm21,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm21,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm21,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm21,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_207 +L$_small_initial_partial_block_207: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 160(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_207: + + orq %r8,%r8 + je L$_after_reduction_207 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_207: + jmp L$_last_blocks_done_181 +L$_last_num_blocks_is_14_181: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $242,%r15d + jae L$_16_blocks_overflow_208 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %ymm27,%ymm4,%ymm5 + jmp L$_16_blocks_ok_208 + +L$_16_blocks_overflow_208: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %ymm29,%ymm5,%ymm5 +L$_16_blocks_ok_208: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $1,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%ymm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %ymm30,%ymm5,%ymm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %ymm21,%ymm5,%ymm5 + vextracti32x4 $1,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %ymm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm5,%zmm5{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %zmm29,%zmm4,%zmm20 + vpshufb %ymm29,%ymm5,%ymm21 + vextracti32x4 $1,%zmm21,%xmm7 + subq $16 * (14 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_209 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 128(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm21,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm21,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm21,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm21,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_209 +L$_small_initial_partial_block_209: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 144(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm21,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm21,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm21,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm21,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_209: + + orq %r8,%r8 + je L$_after_reduction_209 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_209: + jmp L$_last_blocks_done_181 +L$_last_num_blocks_is_15_181: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $241,%r15d + jae L$_16_blocks_overflow_210 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp L$_16_blocks_ok_210 + +L$_16_blocks_overflow_210: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +L$_16_blocks_ok_210: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $2,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%zmm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + vextracti32x4 $2,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %zmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm5,%zmm5{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %zmm29,%zmm4,%zmm20 + vpshufb %zmm29,%zmm5,%zmm21 + vextracti32x4 $2,%zmm21,%xmm7 + subq $16 * (15 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_211 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 112(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm21,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm21,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm21,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm21,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_211 +L$_small_initial_partial_block_211: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 128(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm21,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm21,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm21,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm21,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_211: + + orq %r8,%r8 + je L$_after_reduction_211 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_211: + jmp L$_last_blocks_done_181 +L$_last_num_blocks_is_16_181: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $240,%r15d + jae L$_16_blocks_overflow_212 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp L$_16_blocks_ok_212 + +L$_16_blocks_overflow_212: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +L$_16_blocks_ok_212: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $3,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%zmm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + vextracti32x4 $3,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %zmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm5,%zmm5{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %zmm29,%zmm4,%zmm20 + vpshufb %zmm29,%zmm5,%zmm21 + vextracti32x4 $3,%zmm21,%xmm7 + subq $16 * (16 - 1),%r8 +L$_small_initial_partial_block_213: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 112(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm21,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm21,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm21,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm21,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_213: + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_213: + jmp L$_last_blocks_done_181 +L$_last_num_blocks_is_0_181: + vmovdqa64 1024(%rsp),%zmm13 + vmovdqu64 0(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 1088(%rsp),%zmm13 + vmovdqu64 64(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + vpternlogq $0x96,%zmm10,%zmm4,%zmm26 + vpternlogq $0x96,%zmm6,%zmm0,%zmm24 + vpternlogq $0x96,%zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + vmovdqa64 1152(%rsp),%zmm13 + vmovdqu64 128(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 1216(%rsp),%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + + vpternlogq $0x96,%zmm10,%zmm4,%zmm26 + vpternlogq $0x96,%zmm6,%zmm0,%zmm24 + vpternlogq $0x96,%zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + + vpsrldq $8,%zmm26,%zmm0 + vpslldq $8,%zmm26,%zmm3 + vpxorq %zmm0,%zmm24,%zmm24 + vpxorq %zmm3,%zmm25,%zmm25 + vextracti64x4 $1,%zmm24,%ymm0 + vpxorq %ymm0,%ymm24,%ymm24 + vextracti32x4 $1,%ymm24,%xmm0 + vpxorq %xmm0,%xmm24,%xmm24 + vextracti64x4 $1,%zmm25,%ymm3 + vpxorq %ymm3,%ymm25,%ymm25 + vextracti32x4 $1,%ymm25,%xmm3 + vpxorq %xmm3,%xmm25,%xmm25 + vmovdqa64 POLY2(%rip),%xmm4 + + + vpclmulqdq $0x01,%xmm25,%xmm4,%xmm0 + vpslldq $8,%xmm0,%xmm0 + vpxorq %xmm0,%xmm25,%xmm0 + + + vpclmulqdq $0x00,%xmm0,%xmm4,%xmm3 + vpsrldq $4,%xmm3,%xmm3 + vpclmulqdq $0x10,%xmm0,%xmm4,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm24,%xmm3,%xmm14 + +L$_last_blocks_done_181: + vpshufb %xmm29,%xmm2,%xmm2 + jmp L$_ghash_done_172 +L$_encrypt_32_blocks_172: + cmpb $240,%r15b + jae L$_16_blocks_overflow_214 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp L$_16_blocks_ok_214 +L$_16_blocks_overflow_214: + vpshufb %zmm29,%zmm2,%zmm2 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +L$_16_blocks_ok_214: + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp),%zmm1 + + + + + vshufi64x2 $255,%zmm5,%zmm5,%zmm2 + addb $16,%r15b + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + + + + + + + + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm6 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm6 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + + + + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%zmm21 + + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm15,%zmm10,%zmm26 + vpxorq %zmm12,%zmm6,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 192(%rdi),%zmm30 + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + + + + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + + + + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %zmm5,192(%r10,%r11,1) + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 + vmovdqa64 %zmm0,1280(%rsp) + vmovdqa64 %zmm3,1344(%rsp) + vmovdqa64 %zmm4,1408(%rsp) + vmovdqa64 %zmm5,1472(%rsp) + cmpb $240,%r15b + jae L$_16_blocks_overflow_215 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp L$_16_blocks_ok_215 +L$_16_blocks_overflow_215: + vpshufb %zmm29,%zmm2,%zmm2 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +L$_16_blocks_ok_215: + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 256(%rsp),%zmm1 + + + + + vshufi64x2 $255,%zmm5,%zmm5,%zmm2 + addb $16,%r15b + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 320(%rsp),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + + + + + + + + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm6 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 384(%rsp),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 448(%rsp),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm6 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + + + + vmovdqu8 256(%rcx,%r11,1),%zmm17 + vmovdqu8 320(%rcx,%r11,1),%zmm19 + vmovdqu8 384(%rcx,%r11,1),%zmm20 + vmovdqu8 448(%rcx,%r11,1),%zmm21 + + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vpternlogq $0x96,%zmm12,%zmm6,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 192(%rdi),%zmm30 + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + + + + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + + + + movq %r9,%r10 + vmovdqu8 %zmm0,256(%r10,%r11,1) + vmovdqu8 %zmm3,320(%r10,%r11,1) + vmovdqu8 %zmm4,384(%r10,%r11,1) + vmovdqu8 %zmm5,448(%r10,%r11,1) + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 + vmovdqa64 %zmm0,768(%rsp) + vmovdqa64 %zmm3,832(%rsp) + vmovdqa64 %zmm4,896(%rsp) + vmovdqa64 %zmm5,960(%rsp) + vmovdqa64 1280(%rsp),%zmm13 + vmovdqu64 512(%rsp),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 1344(%rsp),%zmm13 + vmovdqu64 576(%rsp),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + vpternlogq $0x96,%zmm10,%zmm4,%zmm26 + vpternlogq $0x96,%zmm6,%zmm0,%zmm24 + vpternlogq $0x96,%zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + vmovdqa64 1408(%rsp),%zmm13 + vmovdqu64 640(%rsp),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 1472(%rsp),%zmm13 + vmovdqu64 704(%rsp),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + + vpternlogq $0x96,%zmm10,%zmm4,%zmm26 + vpternlogq $0x96,%zmm6,%zmm0,%zmm24 + vpternlogq $0x96,%zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + + vpsrldq $8,%zmm26,%zmm0 + vpslldq $8,%zmm26,%zmm3 + vpxorq %zmm0,%zmm24,%zmm24 + vpxorq %zmm3,%zmm25,%zmm25 + vextracti64x4 $1,%zmm24,%ymm0 + vpxorq %ymm0,%ymm24,%ymm24 + vextracti32x4 $1,%ymm24,%xmm0 + vpxorq %xmm0,%xmm24,%xmm24 + vextracti64x4 $1,%zmm25,%ymm3 + vpxorq %ymm3,%ymm25,%ymm25 + vextracti32x4 $1,%ymm25,%xmm3 + vpxorq %xmm3,%xmm25,%xmm25 + vmovdqa64 POLY2(%rip),%xmm4 + + + vpclmulqdq $0x01,%xmm25,%xmm4,%xmm0 + vpslldq $8,%xmm0,%xmm0 + vpxorq %xmm0,%xmm25,%xmm0 + + + vpclmulqdq $0x00,%xmm0,%xmm4,%xmm3 + vpsrldq $4,%xmm3,%xmm3 + vpclmulqdq $0x10,%xmm0,%xmm4,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm24,%xmm3,%xmm14 + + subq $512,%r8 + addq $512,%r11 + movl %r8d,%r10d + andl $~15,%r10d + movl $512,%ebx + subl %r10d,%ebx + movl %r8d,%r10d + addl $15,%r10d + shrl $4,%r10d + je L$_last_num_blocks_is_0_216 + + cmpl $8,%r10d + je L$_last_num_blocks_is_8_216 + jb L$_last_num_blocks_is_7_1_216 + + + cmpl $12,%r10d + je L$_last_num_blocks_is_12_216 + jb L$_last_num_blocks_is_11_9_216 + + + cmpl $15,%r10d + je L$_last_num_blocks_is_15_216 + ja L$_last_num_blocks_is_16_216 + cmpl $14,%r10d + je L$_last_num_blocks_is_14_216 + jmp L$_last_num_blocks_is_13_216 + +L$_last_num_blocks_is_11_9_216: + + cmpl $10,%r10d + je L$_last_num_blocks_is_10_216 + ja L$_last_num_blocks_is_11_216 + jmp L$_last_num_blocks_is_9_216 + +L$_last_num_blocks_is_7_1_216: + cmpl $4,%r10d + je L$_last_num_blocks_is_4_216 + jb L$_last_num_blocks_is_3_1_216 + + cmpl $6,%r10d + ja L$_last_num_blocks_is_7_216 + je L$_last_num_blocks_is_6_216 + jmp L$_last_num_blocks_is_5_216 + +L$_last_num_blocks_is_3_1_216: + + cmpl $2,%r10d + ja L$_last_num_blocks_is_3_216 + je L$_last_num_blocks_is_2_216 +L$_last_num_blocks_is_1_216: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $255,%r15d + jae L$_16_blocks_overflow_217 + vpaddd %xmm28,%xmm2,%xmm0 + jmp L$_16_blocks_ok_217 + +L$_16_blocks_overflow_217: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %xmm29,%xmm0,%xmm0 +L$_16_blocks_ok_217: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $0,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%xmm17{%k1}{z} + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %xmm31,%xmm0,%xmm0 + vaesenclast %xmm30,%xmm0,%xmm0 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti32x4 $0,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %xmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm0,%zmm0{%k1}{z} + vpshufb %xmm29,%xmm0,%xmm17 + vextracti32x4 $0,%zmm17,%xmm7 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_218 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm17,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm17,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm17,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm17,%xmm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_218 +L$_small_initial_partial_block_218: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + + + vpsrldq $8,%zmm26,%zmm0 + vpslldq $8,%zmm26,%zmm3 + vpxorq %zmm0,%zmm24,%zmm24 + vpxorq %zmm3,%zmm25,%zmm25 + vextracti64x4 $1,%zmm24,%ymm0 + vpxorq %ymm0,%ymm24,%ymm24 + vextracti32x4 $1,%ymm24,%xmm0 + vpxorq %xmm0,%xmm24,%xmm24 + vextracti64x4 $1,%zmm25,%ymm3 + vpxorq %ymm3,%ymm25,%ymm25 + vextracti32x4 $1,%ymm25,%xmm3 + vpxorq %xmm3,%xmm25,%xmm25 + vmovdqa64 POLY2(%rip),%xmm0 + + + vpclmulqdq $0x01,%xmm25,%xmm0,%xmm3 + vpslldq $8,%xmm3,%xmm3 + vpxorq %xmm3,%xmm25,%xmm3 + + + vpclmulqdq $0x00,%xmm3,%xmm0,%xmm4 + vpsrldq $4,%xmm4,%xmm4 + vpclmulqdq $0x10,%xmm3,%xmm0,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm24,%xmm4,%xmm14 + + + + + + + + + + + + + vpxorq %xmm7,%xmm14,%xmm14 + + jmp L$_after_reduction_218 +L$_small_initial_compute_done_218: +L$_after_reduction_218: + jmp L$_last_blocks_done_216 +L$_last_num_blocks_is_2_216: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $254,%r15d + jae L$_16_blocks_overflow_219 + vpaddd %ymm28,%ymm2,%ymm0 + jmp L$_16_blocks_ok_219 + +L$_16_blocks_overflow_219: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %ymm29,%ymm0,%ymm0 +L$_16_blocks_ok_219: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $1,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%ymm17{%k1}{z} + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %ymm31,%ymm0,%ymm0 + vaesenclast %ymm30,%ymm0,%ymm0 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %ymm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm0,%zmm0{%k1}{z} + vpshufb %ymm29,%ymm0,%ymm17 + vextracti32x4 $1,%zmm17,%xmm7 + subq $16 * (2 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_220 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm17,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm17,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm17,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm17,%ymm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_220 +L$_small_initial_partial_block_220: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm17,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm17,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm17,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm17,%xmm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_220: + + orq %r8,%r8 + je L$_after_reduction_220 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_220: + jmp L$_last_blocks_done_216 +L$_last_num_blocks_is_3_216: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $253,%r15d + jae L$_16_blocks_overflow_221 + vpaddd %zmm28,%zmm2,%zmm0 + jmp L$_16_blocks_ok_221 + +L$_16_blocks_overflow_221: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %zmm29,%zmm0,%zmm0 +L$_16_blocks_ok_221: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $2,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm0,%zmm0 + vpxorq %zmm17,%zmm0,%zmm0 + vextracti32x4 $2,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm0,%zmm0{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vextracti32x4 $2,%zmm17,%xmm7 + subq $16 * (3 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_222 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_222 +L$_small_initial_partial_block_222: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm17,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm17,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm17,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm17,%ymm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_222: + + orq %r8,%r8 + je L$_after_reduction_222 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_222: + jmp L$_last_blocks_done_216 +L$_last_num_blocks_is_4_216: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $252,%r15d + jae L$_16_blocks_overflow_223 + vpaddd %zmm28,%zmm2,%zmm0 + jmp L$_16_blocks_ok_223 + +L$_16_blocks_overflow_223: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %zmm29,%zmm0,%zmm0 +L$_16_blocks_ok_223: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $3,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm0,%zmm0 + vpxorq %zmm17,%zmm0,%zmm0 + vextracti32x4 $3,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm0,%zmm0{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vextracti32x4 $3,%zmm17,%xmm7 + subq $16 * (4 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_224 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_224 +L$_small_initial_partial_block_224: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_224: + + orq %r8,%r8 + je L$_after_reduction_224 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_224: + jmp L$_last_blocks_done_216 +L$_last_num_blocks_is_5_216: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $251,%r15d + jae L$_16_blocks_overflow_225 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %xmm27,%xmm0,%xmm3 + jmp L$_16_blocks_ok_225 + +L$_16_blocks_overflow_225: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %xmm29,%xmm3,%xmm3 +L$_16_blocks_ok_225: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $0,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%xmm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %xmm30,%xmm3,%xmm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %xmm19,%xmm3,%xmm3 + vextracti32x4 $0,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %xmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm3,%zmm3{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %xmm29,%xmm3,%xmm19 + vextracti32x4 $0,%zmm19,%xmm7 + subq $16 * (5 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_226 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm19,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm19,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm19,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm19,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_226 +L$_small_initial_partial_block_226: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_226: + + orq %r8,%r8 + je L$_after_reduction_226 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_226: + jmp L$_last_blocks_done_216 +L$_last_num_blocks_is_6_216: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $250,%r15d + jae L$_16_blocks_overflow_227 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %ymm27,%ymm0,%ymm3 + jmp L$_16_blocks_ok_227 + +L$_16_blocks_overflow_227: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %ymm29,%ymm3,%ymm3 +L$_16_blocks_ok_227: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $1,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%ymm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %ymm30,%ymm3,%ymm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %ymm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm3,%zmm3{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %ymm29,%ymm3,%ymm19 + vextracti32x4 $1,%zmm19,%xmm7 + subq $16 * (6 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_228 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm19,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm19,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm19,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm19,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_228 +L$_small_initial_partial_block_228: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm19,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm19,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm19,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm19,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_228: + + orq %r8,%r8 + je L$_after_reduction_228 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_228: + jmp L$_last_blocks_done_216 +L$_last_num_blocks_is_7_216: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $249,%r15d + jae L$_16_blocks_overflow_229 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + jmp L$_16_blocks_ok_229 + +L$_16_blocks_overflow_229: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 +L$_16_blocks_ok_229: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $2,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti32x4 $2,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm3,%zmm3{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vextracti32x4 $2,%zmm19,%xmm7 + subq $16 * (7 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_230 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_230 +L$_small_initial_partial_block_230: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm19,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm19,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm19,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm19,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_230: + + orq %r8,%r8 + je L$_after_reduction_230 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_230: + jmp L$_last_blocks_done_216 +L$_last_num_blocks_is_8_216: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $248,%r15d + jae L$_16_blocks_overflow_231 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + jmp L$_16_blocks_ok_231 + +L$_16_blocks_overflow_231: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 +L$_16_blocks_ok_231: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $3,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti32x4 $3,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm3,%zmm3{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vextracti32x4 $3,%zmm19,%xmm7 + subq $16 * (8 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_232 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_232 +L$_small_initial_partial_block_232: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_232: + + orq %r8,%r8 + je L$_after_reduction_232 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_232: + jmp L$_last_blocks_done_216 +L$_last_num_blocks_is_9_216: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $247,%r15d + jae L$_16_blocks_overflow_233 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %xmm27,%xmm3,%xmm4 + jmp L$_16_blocks_ok_233 + +L$_16_blocks_overflow_233: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %xmm29,%xmm4,%xmm4 +L$_16_blocks_ok_233: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $0,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%xmm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %xmm30,%xmm4,%xmm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %xmm20,%xmm4,%xmm4 + vextracti32x4 $0,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %xmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm4,%zmm4{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %xmm29,%xmm4,%xmm20 + vextracti32x4 $0,%zmm20,%xmm7 + subq $16 * (9 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_234 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm20,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm20,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm20,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm20,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_234 +L$_small_initial_partial_block_234: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_234: + + orq %r8,%r8 + je L$_after_reduction_234 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_234: + jmp L$_last_blocks_done_216 +L$_last_num_blocks_is_10_216: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $246,%r15d + jae L$_16_blocks_overflow_235 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %ymm27,%ymm3,%ymm4 + jmp L$_16_blocks_ok_235 + +L$_16_blocks_overflow_235: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %ymm29,%ymm4,%ymm4 +L$_16_blocks_ok_235: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $1,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%ymm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %ymm30,%ymm4,%ymm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %ymm20,%ymm4,%ymm4 + vextracti32x4 $1,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %ymm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm4,%zmm4{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %ymm29,%ymm4,%ymm20 + vextracti32x4 $1,%zmm20,%xmm7 + subq $16 * (10 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_236 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm20,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm20,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm20,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm20,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_236 +L$_small_initial_partial_block_236: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm20,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm20,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm20,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm20,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_236: + + orq %r8,%r8 + je L$_after_reduction_236 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_236: + jmp L$_last_blocks_done_216 +L$_last_num_blocks_is_11_216: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $245,%r15d + jae L$_16_blocks_overflow_237 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + jmp L$_16_blocks_ok_237 + +L$_16_blocks_overflow_237: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 +L$_16_blocks_ok_237: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $2,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vextracti32x4 $2,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm4,%zmm4{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %zmm29,%zmm4,%zmm20 + vextracti32x4 $2,%zmm20,%xmm7 + subq $16 * (11 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_238 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_238 +L$_small_initial_partial_block_238: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm20,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm20,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm20,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm20,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_238: + + orq %r8,%r8 + je L$_after_reduction_238 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_238: + jmp L$_last_blocks_done_216 +L$_last_num_blocks_is_12_216: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $244,%r15d + jae L$_16_blocks_overflow_239 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + jmp L$_16_blocks_ok_239 + +L$_16_blocks_overflow_239: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 +L$_16_blocks_ok_239: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $3,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vextracti32x4 $3,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm4,%zmm4{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %zmm29,%zmm4,%zmm20 + vextracti32x4 $3,%zmm20,%xmm7 + subq $16 * (12 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_240 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 160(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_240 +L$_small_initial_partial_block_240: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_240: + + orq %r8,%r8 + je L$_after_reduction_240 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_240: + jmp L$_last_blocks_done_216 +L$_last_num_blocks_is_13_216: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $243,%r15d + jae L$_16_blocks_overflow_241 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %xmm27,%xmm4,%xmm5 + jmp L$_16_blocks_ok_241 + +L$_16_blocks_overflow_241: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %xmm29,%xmm5,%xmm5 +L$_16_blocks_ok_241: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $0,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%xmm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %xmm30,%xmm5,%xmm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %xmm21,%xmm5,%xmm5 + vextracti32x4 $0,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %xmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm5,%zmm5{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %zmm29,%zmm4,%zmm20 + vpshufb %xmm29,%xmm5,%xmm21 + vextracti32x4 $0,%zmm21,%xmm7 + subq $16 * (13 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_242 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 144(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm21,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm21,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm21,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm21,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_242 +L$_small_initial_partial_block_242: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 160(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_242: + + orq %r8,%r8 + je L$_after_reduction_242 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_242: + jmp L$_last_blocks_done_216 +L$_last_num_blocks_is_14_216: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $242,%r15d + jae L$_16_blocks_overflow_243 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %ymm27,%ymm4,%ymm5 + jmp L$_16_blocks_ok_243 + +L$_16_blocks_overflow_243: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %ymm29,%ymm5,%ymm5 +L$_16_blocks_ok_243: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $1,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%ymm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %ymm30,%ymm5,%ymm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %ymm21,%ymm5,%ymm5 + vextracti32x4 $1,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %ymm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm5,%zmm5{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %zmm29,%zmm4,%zmm20 + vpshufb %ymm29,%ymm5,%ymm21 + vextracti32x4 $1,%zmm21,%xmm7 + subq $16 * (14 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_244 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 128(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm21,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm21,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm21,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm21,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_244 +L$_small_initial_partial_block_244: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 144(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm21,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm21,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm21,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm21,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_244: + + orq %r8,%r8 + je L$_after_reduction_244 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_244: + jmp L$_last_blocks_done_216 +L$_last_num_blocks_is_15_216: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $241,%r15d + jae L$_16_blocks_overflow_245 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp L$_16_blocks_ok_245 + +L$_16_blocks_overflow_245: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +L$_16_blocks_ok_245: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $2,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%zmm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + vextracti32x4 $2,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %zmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm5,%zmm5{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %zmm29,%zmm4,%zmm20 + vpshufb %zmm29,%zmm5,%zmm21 + vextracti32x4 $2,%zmm21,%xmm7 + subq $16 * (15 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_246 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 112(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm21,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm21,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm21,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm21,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_246 +L$_small_initial_partial_block_246: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 128(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm21,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm21,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm21,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm21,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_246: + + orq %r8,%r8 + je L$_after_reduction_246 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_246: + jmp L$_last_blocks_done_216 +L$_last_num_blocks_is_16_216: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $240,%r15d + jae L$_16_blocks_overflow_247 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp L$_16_blocks_ok_247 + +L$_16_blocks_overflow_247: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +L$_16_blocks_ok_247: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $3,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%zmm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + vextracti32x4 $3,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %zmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm5,%zmm5{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %zmm29,%zmm4,%zmm20 + vpshufb %zmm29,%zmm5,%zmm21 + vextracti32x4 $3,%zmm21,%xmm7 + subq $16 * (16 - 1),%r8 +L$_small_initial_partial_block_248: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 112(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm21,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm21,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm21,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm21,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_248: + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_248: + jmp L$_last_blocks_done_216 +L$_last_num_blocks_is_0_216: + vmovdqa64 768(%rsp),%zmm13 + vpxorq %zmm14,%zmm13,%zmm13 + vmovdqu64 0(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 832(%rsp),%zmm13 + vmovdqu64 64(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + vpxorq %zmm10,%zmm4,%zmm26 + vpxorq %zmm6,%zmm0,%zmm24 + vpxorq %zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + vmovdqa64 896(%rsp),%zmm13 + vmovdqu64 128(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 960(%rsp),%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + + vpternlogq $0x96,%zmm10,%zmm4,%zmm26 + vpternlogq $0x96,%zmm6,%zmm0,%zmm24 + vpternlogq $0x96,%zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + + vpsrldq $8,%zmm26,%zmm0 + vpslldq $8,%zmm26,%zmm3 + vpxorq %zmm0,%zmm24,%zmm24 + vpxorq %zmm3,%zmm25,%zmm25 + vextracti64x4 $1,%zmm24,%ymm0 + vpxorq %ymm0,%ymm24,%ymm24 + vextracti32x4 $1,%ymm24,%xmm0 + vpxorq %xmm0,%xmm24,%xmm24 + vextracti64x4 $1,%zmm25,%ymm3 + vpxorq %ymm3,%ymm25,%ymm25 + vextracti32x4 $1,%ymm25,%xmm3 + vpxorq %xmm3,%xmm25,%xmm25 + vmovdqa64 POLY2(%rip),%xmm4 + + + vpclmulqdq $0x01,%xmm25,%xmm4,%xmm0 + vpslldq $8,%xmm0,%xmm0 + vpxorq %xmm0,%xmm25,%xmm0 + + + vpclmulqdq $0x00,%xmm0,%xmm4,%xmm3 + vpsrldq $4,%xmm3,%xmm3 + vpclmulqdq $0x10,%xmm0,%xmm4,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm24,%xmm3,%xmm14 + +L$_last_blocks_done_216: + vpshufb %xmm29,%xmm2,%xmm2 + jmp L$_ghash_done_172 +L$_encrypt_16_blocks_172: + cmpb $240,%r15b + jae L$_16_blocks_overflow_249 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp L$_16_blocks_ok_249 +L$_16_blocks_overflow_249: + vpshufb %zmm29,%zmm2,%zmm2 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +L$_16_blocks_ok_249: + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp),%zmm1 + + + + + vshufi64x2 $255,%zmm5,%zmm5,%zmm2 + addb $16,%r15b + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + + + + + + + + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm6 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm6 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + + + + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%zmm21 + + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm15,%zmm10,%zmm26 + vpxorq %zmm12,%zmm6,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 192(%rdi),%zmm30 + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + + + + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + + + + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %zmm5,192(%r10,%r11,1) + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 + vmovdqa64 %zmm0,1280(%rsp) + vmovdqa64 %zmm3,1344(%rsp) + vmovdqa64 %zmm4,1408(%rsp) + vmovdqa64 %zmm5,1472(%rsp) + vmovdqa64 1024(%rsp),%zmm13 + vmovdqu64 256(%rsp),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 1088(%rsp),%zmm13 + vmovdqu64 320(%rsp),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + vpternlogq $0x96,%zmm10,%zmm4,%zmm26 + vpternlogq $0x96,%zmm6,%zmm0,%zmm24 + vpternlogq $0x96,%zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + vmovdqa64 1152(%rsp),%zmm13 + vmovdqu64 384(%rsp),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 1216(%rsp),%zmm13 + vmovdqu64 448(%rsp),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + + vpternlogq $0x96,%zmm10,%zmm4,%zmm26 + vpternlogq $0x96,%zmm6,%zmm0,%zmm24 + vpternlogq $0x96,%zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + subq $256,%r8 + addq $256,%r11 + movl %r8d,%r10d + addl $15,%r10d + shrl $4,%r10d + je L$_last_num_blocks_is_0_250 + + cmpl $8,%r10d + je L$_last_num_blocks_is_8_250 + jb L$_last_num_blocks_is_7_1_250 + + + cmpl $12,%r10d + je L$_last_num_blocks_is_12_250 + jb L$_last_num_blocks_is_11_9_250 + + + cmpl $15,%r10d + je L$_last_num_blocks_is_15_250 + ja L$_last_num_blocks_is_16_250 + cmpl $14,%r10d + je L$_last_num_blocks_is_14_250 + jmp L$_last_num_blocks_is_13_250 + +L$_last_num_blocks_is_11_9_250: + + cmpl $10,%r10d + je L$_last_num_blocks_is_10_250 + ja L$_last_num_blocks_is_11_250 + jmp L$_last_num_blocks_is_9_250 + +L$_last_num_blocks_is_7_1_250: + cmpl $4,%r10d + je L$_last_num_blocks_is_4_250 + jb L$_last_num_blocks_is_3_1_250 + + cmpl $6,%r10d + ja L$_last_num_blocks_is_7_250 + je L$_last_num_blocks_is_6_250 + jmp L$_last_num_blocks_is_5_250 + +L$_last_num_blocks_is_3_1_250: + + cmpl $2,%r10d + ja L$_last_num_blocks_is_3_250 + je L$_last_num_blocks_is_2_250 +L$_last_num_blocks_is_1_250: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $255,%r15d + jae L$_16_blocks_overflow_251 + vpaddd %xmm28,%xmm2,%xmm0 + jmp L$_16_blocks_ok_251 + +L$_16_blocks_overflow_251: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %xmm29,%xmm0,%xmm0 +L$_16_blocks_ok_251: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $0,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%xmm17{%k1}{z} + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %xmm31,%xmm0,%xmm0 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vbroadcastf64x2 176(%rdi),%zmm31 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %xmm31,%xmm0,%xmm0 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %xmm30,%xmm0,%xmm0 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti32x4 $0,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %xmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm0,%zmm0{%k1}{z} + vpshufb %xmm29,%xmm0,%xmm17 + vextracti32x4 $0,%zmm17,%xmm7 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_252 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm17,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm17,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm17,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm17,%xmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_252 +L$_small_initial_partial_block_252: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + + + + + + + + + + + + vpxorq %xmm7,%xmm14,%xmm14 + + jmp L$_after_reduction_252 +L$_small_initial_compute_done_252: +L$_after_reduction_252: + jmp L$_last_blocks_done_250 +L$_last_num_blocks_is_2_250: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $254,%r15d + jae L$_16_blocks_overflow_253 + vpaddd %ymm28,%ymm2,%ymm0 + jmp L$_16_blocks_ok_253 + +L$_16_blocks_overflow_253: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %ymm29,%ymm0,%ymm0 +L$_16_blocks_ok_253: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $1,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%ymm17{%k1}{z} + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %ymm31,%ymm0,%ymm0 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vbroadcastf64x2 176(%rdi),%zmm31 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %ymm31,%ymm0,%ymm0 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %ymm30,%ymm0,%ymm0 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %ymm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm0,%zmm0{%k1}{z} + vpshufb %ymm29,%ymm0,%ymm17 + vextracti32x4 $1,%zmm17,%xmm7 + subq $16 * (2 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_254 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm17,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm17,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm17,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm17,%ymm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_254 +L$_small_initial_partial_block_254: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm17,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm17,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm17,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm17,%xmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_254: + + orq %r8,%r8 + je L$_after_reduction_254 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_254: + jmp L$_last_blocks_done_250 +L$_last_num_blocks_is_3_250: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $253,%r15d + jae L$_16_blocks_overflow_255 + vpaddd %zmm28,%zmm2,%zmm0 + jmp L$_16_blocks_ok_255 + +L$_16_blocks_overflow_255: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %zmm29,%zmm0,%zmm0 +L$_16_blocks_ok_255: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $2,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vbroadcastf64x2 176(%rdi),%zmm31 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vpxorq %zmm17,%zmm0,%zmm0 + vextracti32x4 $2,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm0,%zmm0{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vextracti32x4 $2,%zmm17,%xmm7 + subq $16 * (3 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_256 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_256 +L$_small_initial_partial_block_256: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm17,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm17,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm17,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm17,%ymm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_256: + + orq %r8,%r8 + je L$_after_reduction_256 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_256: + jmp L$_last_blocks_done_250 +L$_last_num_blocks_is_4_250: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $252,%r15d + jae L$_16_blocks_overflow_257 + vpaddd %zmm28,%zmm2,%zmm0 + jmp L$_16_blocks_ok_257 + +L$_16_blocks_overflow_257: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %zmm29,%zmm0,%zmm0 +L$_16_blocks_ok_257: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $3,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vbroadcastf64x2 176(%rdi),%zmm31 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vpxorq %zmm17,%zmm0,%zmm0 + vextracti32x4 $3,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm0,%zmm0{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vextracti32x4 $3,%zmm17,%xmm7 + subq $16 * (4 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_258 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_258 +L$_small_initial_partial_block_258: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_258: + + orq %r8,%r8 + je L$_after_reduction_258 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_258: + jmp L$_last_blocks_done_250 +L$_last_num_blocks_is_5_250: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $251,%r15d + jae L$_16_blocks_overflow_259 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %xmm27,%xmm0,%xmm3 + jmp L$_16_blocks_ok_259 + +L$_16_blocks_overflow_259: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %xmm29,%xmm3,%xmm3 +L$_16_blocks_ok_259: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $0,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%xmm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vbroadcastf64x2 176(%rdi),%zmm31 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %xmm30,%xmm3,%xmm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %xmm19,%xmm3,%xmm3 + vextracti32x4 $0,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %xmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm3,%zmm3{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %xmm29,%xmm3,%xmm19 + vextracti32x4 $0,%zmm19,%xmm7 + subq $16 * (5 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_260 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm19,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm19,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm19,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm19,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_260 +L$_small_initial_partial_block_260: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_260: + + orq %r8,%r8 + je L$_after_reduction_260 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_260: + jmp L$_last_blocks_done_250 +L$_last_num_blocks_is_6_250: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $250,%r15d + jae L$_16_blocks_overflow_261 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %ymm27,%ymm0,%ymm3 + jmp L$_16_blocks_ok_261 + +L$_16_blocks_overflow_261: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %ymm29,%ymm3,%ymm3 +L$_16_blocks_ok_261: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $1,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%ymm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vbroadcastf64x2 176(%rdi),%zmm31 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %ymm30,%ymm3,%ymm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %ymm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm3,%zmm3{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %ymm29,%ymm3,%ymm19 + vextracti32x4 $1,%zmm19,%xmm7 + subq $16 * (6 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_262 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm19,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm19,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm19,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm19,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_262 +L$_small_initial_partial_block_262: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm19,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm19,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm19,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm19,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_262: + + orq %r8,%r8 + je L$_after_reduction_262 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_262: + jmp L$_last_blocks_done_250 +L$_last_num_blocks_is_7_250: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $249,%r15d + jae L$_16_blocks_overflow_263 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + jmp L$_16_blocks_ok_263 + +L$_16_blocks_overflow_263: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 +L$_16_blocks_ok_263: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $2,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vbroadcastf64x2 176(%rdi),%zmm31 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti32x4 $2,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm3,%zmm3{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vextracti32x4 $2,%zmm19,%xmm7 + subq $16 * (7 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_264 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_264 +L$_small_initial_partial_block_264: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm19,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm19,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm19,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm19,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_264: + + orq %r8,%r8 + je L$_after_reduction_264 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_264: + jmp L$_last_blocks_done_250 +L$_last_num_blocks_is_8_250: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $248,%r15d + jae L$_16_blocks_overflow_265 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + jmp L$_16_blocks_ok_265 + +L$_16_blocks_overflow_265: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 +L$_16_blocks_ok_265: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $3,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vbroadcastf64x2 176(%rdi),%zmm31 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti32x4 $3,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm3,%zmm3{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vextracti32x4 $3,%zmm19,%xmm7 + subq $16 * (8 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_266 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_266 +L$_small_initial_partial_block_266: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_266: + + orq %r8,%r8 + je L$_after_reduction_266 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_266: + jmp L$_last_blocks_done_250 +L$_last_num_blocks_is_9_250: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $247,%r15d + jae L$_16_blocks_overflow_267 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %xmm27,%xmm3,%xmm4 + jmp L$_16_blocks_ok_267 + +L$_16_blocks_overflow_267: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %xmm29,%xmm4,%xmm4 +L$_16_blocks_ok_267: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $0,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%xmm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vbroadcastf64x2 176(%rdi),%zmm31 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %xmm30,%xmm4,%xmm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %xmm20,%xmm4,%xmm4 + vextracti32x4 $0,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %xmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm4,%zmm4{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %xmm29,%xmm4,%xmm20 + vextracti32x4 $0,%zmm20,%xmm7 + subq $16 * (9 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_268 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm20,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm20,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm20,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm20,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_268 +L$_small_initial_partial_block_268: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_268: + + orq %r8,%r8 + je L$_after_reduction_268 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_268: + jmp L$_last_blocks_done_250 +L$_last_num_blocks_is_10_250: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $246,%r15d + jae L$_16_blocks_overflow_269 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %ymm27,%ymm3,%ymm4 + jmp L$_16_blocks_ok_269 + +L$_16_blocks_overflow_269: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %ymm29,%ymm4,%ymm4 +L$_16_blocks_ok_269: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $1,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%ymm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vbroadcastf64x2 176(%rdi),%zmm31 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %ymm30,%ymm4,%ymm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %ymm20,%ymm4,%ymm4 + vextracti32x4 $1,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %ymm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm4,%zmm4{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %ymm29,%ymm4,%ymm20 + vextracti32x4 $1,%zmm20,%xmm7 + subq $16 * (10 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_270 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm20,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm20,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm20,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm20,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_270 +L$_small_initial_partial_block_270: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm20,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm20,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm20,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm20,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_270: + + orq %r8,%r8 + je L$_after_reduction_270 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_270: + jmp L$_last_blocks_done_250 +L$_last_num_blocks_is_11_250: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $245,%r15d + jae L$_16_blocks_overflow_271 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + jmp L$_16_blocks_ok_271 + +L$_16_blocks_overflow_271: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 +L$_16_blocks_ok_271: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $2,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vbroadcastf64x2 176(%rdi),%zmm31 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vextracti32x4 $2,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm4,%zmm4{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %zmm29,%zmm4,%zmm20 + vextracti32x4 $2,%zmm20,%xmm7 + subq $16 * (11 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_272 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_272 +L$_small_initial_partial_block_272: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm20,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm20,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm20,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm20,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_272: + + orq %r8,%r8 + je L$_after_reduction_272 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_272: + jmp L$_last_blocks_done_250 +L$_last_num_blocks_is_12_250: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $244,%r15d + jae L$_16_blocks_overflow_273 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + jmp L$_16_blocks_ok_273 + +L$_16_blocks_overflow_273: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 +L$_16_blocks_ok_273: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $3,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vbroadcastf64x2 176(%rdi),%zmm31 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vextracti32x4 $3,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm4,%zmm4{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %zmm29,%zmm4,%zmm20 + vextracti32x4 $3,%zmm20,%xmm7 + subq $16 * (12 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_274 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 160(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_274 +L$_small_initial_partial_block_274: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_274: + + orq %r8,%r8 + je L$_after_reduction_274 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_274: + jmp L$_last_blocks_done_250 +L$_last_num_blocks_is_13_250: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $243,%r15d + jae L$_16_blocks_overflow_275 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %xmm27,%xmm4,%xmm5 + jmp L$_16_blocks_ok_275 + +L$_16_blocks_overflow_275: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %xmm29,%xmm5,%xmm5 +L$_16_blocks_ok_275: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $0,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%xmm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vbroadcastf64x2 176(%rdi),%zmm31 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %xmm30,%xmm5,%xmm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %xmm21,%xmm5,%xmm5 + vextracti32x4 $0,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %xmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm5,%zmm5{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %zmm29,%zmm4,%zmm20 + vpshufb %xmm29,%xmm5,%xmm21 + vextracti32x4 $0,%zmm21,%xmm7 + subq $16 * (13 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_276 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 144(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm21,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm21,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm21,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm21,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_276 +L$_small_initial_partial_block_276: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 160(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_276: + + orq %r8,%r8 + je L$_after_reduction_276 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_276: + jmp L$_last_blocks_done_250 +L$_last_num_blocks_is_14_250: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $242,%r15d + jae L$_16_blocks_overflow_277 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %ymm27,%ymm4,%ymm5 + jmp L$_16_blocks_ok_277 + +L$_16_blocks_overflow_277: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %ymm29,%ymm5,%ymm5 +L$_16_blocks_ok_277: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $1,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%ymm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vbroadcastf64x2 176(%rdi),%zmm31 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %ymm30,%ymm5,%ymm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %ymm21,%ymm5,%ymm5 + vextracti32x4 $1,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %ymm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm5,%zmm5{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %zmm29,%zmm4,%zmm20 + vpshufb %ymm29,%ymm5,%ymm21 + vextracti32x4 $1,%zmm21,%xmm7 + subq $16 * (14 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_278 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 128(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm21,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm21,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm21,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm21,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_278 +L$_small_initial_partial_block_278: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 144(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm21,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm21,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm21,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm21,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_278: + + orq %r8,%r8 + je L$_after_reduction_278 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_278: + jmp L$_last_blocks_done_250 +L$_last_num_blocks_is_15_250: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $241,%r15d + jae L$_16_blocks_overflow_279 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp L$_16_blocks_ok_279 + +L$_16_blocks_overflow_279: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +L$_16_blocks_ok_279: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $2,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%zmm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vbroadcastf64x2 176(%rdi),%zmm31 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + vextracti32x4 $2,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %zmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm5,%zmm5{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %zmm29,%zmm4,%zmm20 + vpshufb %zmm29,%zmm5,%zmm21 + vextracti32x4 $2,%zmm21,%xmm7 + subq $16 * (15 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_280 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 112(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm21,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm21,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm21,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm21,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_280 +L$_small_initial_partial_block_280: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 128(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm21,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm21,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm21,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm21,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_280: + + orq %r8,%r8 + je L$_after_reduction_280 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_280: + jmp L$_last_blocks_done_250 +L$_last_num_blocks_is_16_250: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $240,%r15d + jae L$_16_blocks_overflow_281 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp L$_16_blocks_ok_281 + +L$_16_blocks_overflow_281: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +L$_16_blocks_ok_281: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $3,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%zmm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vbroadcastf64x2 176(%rdi),%zmm31 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + vextracti32x4 $3,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %zmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm5,%zmm5{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %zmm29,%zmm4,%zmm20 + vpshufb %zmm29,%zmm5,%zmm21 + vextracti32x4 $3,%zmm21,%xmm7 + subq $16 * (16 - 1),%r8 +L$_small_initial_partial_block_282: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 112(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm21,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm21,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm21,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm21,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_282: + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_282: + jmp L$_last_blocks_done_250 +L$_last_num_blocks_is_0_250: + vmovdqa64 1280(%rsp),%zmm13 + vmovdqu64 512(%rsp),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 1344(%rsp),%zmm13 + vmovdqu64 576(%rsp),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + vpternlogq $0x96,%zmm10,%zmm4,%zmm26 + vpternlogq $0x96,%zmm6,%zmm0,%zmm24 + vpternlogq $0x96,%zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + vmovdqa64 1408(%rsp),%zmm13 + vmovdqu64 640(%rsp),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 1472(%rsp),%zmm13 + vmovdqu64 704(%rsp),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + + vpternlogq $0x96,%zmm10,%zmm4,%zmm26 + vpternlogq $0x96,%zmm6,%zmm0,%zmm24 + vpternlogq $0x96,%zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + + vpsrldq $8,%zmm26,%zmm0 + vpslldq $8,%zmm26,%zmm3 + vpxorq %zmm0,%zmm24,%zmm24 + vpxorq %zmm3,%zmm25,%zmm25 + vextracti64x4 $1,%zmm24,%ymm0 + vpxorq %ymm0,%ymm24,%ymm24 + vextracti32x4 $1,%ymm24,%xmm0 + vpxorq %xmm0,%xmm24,%xmm24 + vextracti64x4 $1,%zmm25,%ymm3 + vpxorq %ymm3,%ymm25,%ymm25 + vextracti32x4 $1,%ymm25,%xmm3 + vpxorq %xmm3,%xmm25,%xmm25 + vmovdqa64 POLY2(%rip),%xmm4 + + + vpclmulqdq $0x01,%xmm25,%xmm4,%xmm0 + vpslldq $8,%xmm0,%xmm0 + vpxorq %xmm0,%xmm25,%xmm0 + + + vpclmulqdq $0x00,%xmm0,%xmm4,%xmm3 + vpsrldq $4,%xmm3,%xmm3 + vpclmulqdq $0x10,%xmm0,%xmm4,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm24,%xmm3,%xmm14 + +L$_last_blocks_done_250: + vpshufb %xmm29,%xmm2,%xmm2 + jmp L$_ghash_done_172 + +L$_message_below_32_blocks_172: + + + subq $256,%r8 + addq $256,%r11 + movl %r8d,%r10d + testq %r14,%r14 + jnz L$_skip_hkeys_precomputation_283 + vmovdqu64 640(%rsp),%zmm3 + + + vshufi64x2 $0x00,%zmm3,%zmm3,%zmm3 + + vmovdqu64 576(%rsp),%zmm4 + vmovdqu64 512(%rsp),%zmm5 + + vpclmulqdq $0x11,%zmm3,%zmm4,%zmm6 + vpclmulqdq $0x00,%zmm3,%zmm4,%zmm7 + vpclmulqdq $0x01,%zmm3,%zmm4,%zmm10 + vpclmulqdq $0x10,%zmm3,%zmm4,%zmm4 + vpxorq %zmm10,%zmm4,%zmm4 + + vpsrldq $8,%zmm4,%zmm10 + vpslldq $8,%zmm4,%zmm4 + vpxorq %zmm10,%zmm6,%zmm6 + vpxorq %zmm7,%zmm4,%zmm4 + + + + vmovdqu64 POLY2(%rip),%zmm10 + + vpclmulqdq $0x01,%zmm4,%zmm10,%zmm7 + vpslldq $8,%zmm7,%zmm7 + vpxorq %zmm7,%zmm4,%zmm4 + + + + vpclmulqdq $0x00,%zmm4,%zmm10,%zmm7 + vpsrldq $4,%zmm7,%zmm7 + vpclmulqdq $0x10,%zmm4,%zmm10,%zmm4 + vpslldq $4,%zmm4,%zmm4 + + vpternlogq $0x96,%zmm7,%zmm6,%zmm4 + + vmovdqu64 %zmm4,448(%rsp) + + vpclmulqdq $0x11,%zmm3,%zmm5,%zmm6 + vpclmulqdq $0x00,%zmm3,%zmm5,%zmm7 + vpclmulqdq $0x01,%zmm3,%zmm5,%zmm10 + vpclmulqdq $0x10,%zmm3,%zmm5,%zmm5 + vpxorq %zmm10,%zmm5,%zmm5 + + vpsrldq $8,%zmm5,%zmm10 + vpslldq $8,%zmm5,%zmm5 + vpxorq %zmm10,%zmm6,%zmm6 + vpxorq %zmm7,%zmm5,%zmm5 + + + + vmovdqu64 POLY2(%rip),%zmm10 + + vpclmulqdq $0x01,%zmm5,%zmm10,%zmm7 + vpslldq $8,%zmm7,%zmm7 + vpxorq %zmm7,%zmm5,%zmm5 + + + + vpclmulqdq $0x00,%zmm5,%zmm10,%zmm7 + vpsrldq $4,%zmm7,%zmm7 + vpclmulqdq $0x10,%zmm5,%zmm10,%zmm5 + vpslldq $4,%zmm5,%zmm5 + + vpternlogq $0x96,%zmm7,%zmm6,%zmm5 + + vmovdqu64 %zmm5,384(%rsp) + + vpclmulqdq $0x11,%zmm3,%zmm4,%zmm6 + vpclmulqdq $0x00,%zmm3,%zmm4,%zmm7 + vpclmulqdq $0x01,%zmm3,%zmm4,%zmm10 + vpclmulqdq $0x10,%zmm3,%zmm4,%zmm4 + vpxorq %zmm10,%zmm4,%zmm4 + + vpsrldq $8,%zmm4,%zmm10 + vpslldq $8,%zmm4,%zmm4 + vpxorq %zmm10,%zmm6,%zmm6 + vpxorq %zmm7,%zmm4,%zmm4 + + + + vmovdqu64 POLY2(%rip),%zmm10 + + vpclmulqdq $0x01,%zmm4,%zmm10,%zmm7 + vpslldq $8,%zmm7,%zmm7 + vpxorq %zmm7,%zmm4,%zmm4 + + + + vpclmulqdq $0x00,%zmm4,%zmm10,%zmm7 + vpsrldq $4,%zmm7,%zmm7 + vpclmulqdq $0x10,%zmm4,%zmm10,%zmm4 + vpslldq $4,%zmm4,%zmm4 + + vpternlogq $0x96,%zmm7,%zmm6,%zmm4 + + vmovdqu64 %zmm4,320(%rsp) + + vpclmulqdq $0x11,%zmm3,%zmm5,%zmm6 + vpclmulqdq $0x00,%zmm3,%zmm5,%zmm7 + vpclmulqdq $0x01,%zmm3,%zmm5,%zmm10 + vpclmulqdq $0x10,%zmm3,%zmm5,%zmm5 + vpxorq %zmm10,%zmm5,%zmm5 + + vpsrldq $8,%zmm5,%zmm10 + vpslldq $8,%zmm5,%zmm5 + vpxorq %zmm10,%zmm6,%zmm6 + vpxorq %zmm7,%zmm5,%zmm5 + + + + vmovdqu64 POLY2(%rip),%zmm10 + + vpclmulqdq $0x01,%zmm5,%zmm10,%zmm7 + vpslldq $8,%zmm7,%zmm7 + vpxorq %zmm7,%zmm5,%zmm5 + + + + vpclmulqdq $0x00,%zmm5,%zmm10,%zmm7 + vpsrldq $4,%zmm7,%zmm7 + vpclmulqdq $0x10,%zmm5,%zmm10,%zmm5 + vpslldq $4,%zmm5,%zmm5 + + vpternlogq $0x96,%zmm7,%zmm6,%zmm5 + + vmovdqu64 %zmm5,256(%rsp) +L$_skip_hkeys_precomputation_283: + movq $1,%r14 + andl $~15,%r10d + movl $512,%ebx + subl %r10d,%ebx + movl %r8d,%r10d + addl $15,%r10d + shrl $4,%r10d + je L$_last_num_blocks_is_0_284 + + cmpl $8,%r10d + je L$_last_num_blocks_is_8_284 + jb L$_last_num_blocks_is_7_1_284 + + + cmpl $12,%r10d + je L$_last_num_blocks_is_12_284 + jb L$_last_num_blocks_is_11_9_284 + + + cmpl $15,%r10d + je L$_last_num_blocks_is_15_284 + ja L$_last_num_blocks_is_16_284 + cmpl $14,%r10d + je L$_last_num_blocks_is_14_284 + jmp L$_last_num_blocks_is_13_284 + +L$_last_num_blocks_is_11_9_284: + + cmpl $10,%r10d + je L$_last_num_blocks_is_10_284 + ja L$_last_num_blocks_is_11_284 + jmp L$_last_num_blocks_is_9_284 + +L$_last_num_blocks_is_7_1_284: + cmpl $4,%r10d + je L$_last_num_blocks_is_4_284 + jb L$_last_num_blocks_is_3_1_284 + + cmpl $6,%r10d + ja L$_last_num_blocks_is_7_284 + je L$_last_num_blocks_is_6_284 + jmp L$_last_num_blocks_is_5_284 + +L$_last_num_blocks_is_3_1_284: + + cmpl $2,%r10d + ja L$_last_num_blocks_is_3_284 + je L$_last_num_blocks_is_2_284 +L$_last_num_blocks_is_1_284: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $255,%r15d + jae L$_16_blocks_overflow_285 + vpaddd %xmm28,%xmm2,%xmm0 + jmp L$_16_blocks_ok_285 + +L$_16_blocks_overflow_285: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %xmm29,%xmm0,%xmm0 +L$_16_blocks_ok_285: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $0,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%xmm17{%k1}{z} + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %xmm31,%xmm0,%xmm0 + vaesenclast %xmm30,%xmm0,%xmm0 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti32x4 $0,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %xmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm0,%zmm0{%k1}{z} + vpshufb %xmm29,%xmm0,%xmm17 + vextracti32x4 $0,%zmm17,%xmm7 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_286 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm17,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm17,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm17,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm17,%xmm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_286 +L$_small_initial_partial_block_286: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + + + vpsrldq $8,%zmm26,%zmm0 + vpslldq $8,%zmm26,%zmm3 + vpxorq %zmm0,%zmm24,%zmm24 + vpxorq %zmm3,%zmm25,%zmm25 + vextracti64x4 $1,%zmm24,%ymm0 + vpxorq %ymm0,%ymm24,%ymm24 + vextracti32x4 $1,%ymm24,%xmm0 + vpxorq %xmm0,%xmm24,%xmm24 + vextracti64x4 $1,%zmm25,%ymm3 + vpxorq %ymm3,%ymm25,%ymm25 + vextracti32x4 $1,%ymm25,%xmm3 + vpxorq %xmm3,%xmm25,%xmm25 + vmovdqa64 POLY2(%rip),%xmm0 + + + vpclmulqdq $0x01,%xmm25,%xmm0,%xmm3 + vpslldq $8,%xmm3,%xmm3 + vpxorq %xmm3,%xmm25,%xmm3 + + + vpclmulqdq $0x00,%xmm3,%xmm0,%xmm4 + vpsrldq $4,%xmm4,%xmm4 + vpclmulqdq $0x10,%xmm3,%xmm0,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm24,%xmm4,%xmm14 + + + + + + + + + + + + + vpxorq %xmm7,%xmm14,%xmm14 + + jmp L$_after_reduction_286 +L$_small_initial_compute_done_286: +L$_after_reduction_286: + jmp L$_last_blocks_done_284 +L$_last_num_blocks_is_2_284: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $254,%r15d + jae L$_16_blocks_overflow_287 + vpaddd %ymm28,%ymm2,%ymm0 + jmp L$_16_blocks_ok_287 + +L$_16_blocks_overflow_287: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %ymm29,%ymm0,%ymm0 +L$_16_blocks_ok_287: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $1,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%ymm17{%k1}{z} + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %ymm31,%ymm0,%ymm0 + vaesenclast %ymm30,%ymm0,%ymm0 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %ymm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm0,%zmm0{%k1}{z} + vpshufb %ymm29,%ymm0,%ymm17 + vextracti32x4 $1,%zmm17,%xmm7 + subq $16 * (2 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_288 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm17,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm17,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm17,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm17,%ymm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_288 +L$_small_initial_partial_block_288: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm17,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm17,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm17,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm17,%xmm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_288: + + orq %r8,%r8 + je L$_after_reduction_288 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_288: + jmp L$_last_blocks_done_284 +L$_last_num_blocks_is_3_284: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $253,%r15d + jae L$_16_blocks_overflow_289 + vpaddd %zmm28,%zmm2,%zmm0 + jmp L$_16_blocks_ok_289 + +L$_16_blocks_overflow_289: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %zmm29,%zmm0,%zmm0 +L$_16_blocks_ok_289: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $2,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm0,%zmm0 + vpxorq %zmm17,%zmm0,%zmm0 + vextracti32x4 $2,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm0,%zmm0{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vextracti32x4 $2,%zmm17,%xmm7 + subq $16 * (3 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_290 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_290 +L$_small_initial_partial_block_290: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm17,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm17,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm17,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm17,%ymm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_290: + + orq %r8,%r8 + je L$_after_reduction_290 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_290: + jmp L$_last_blocks_done_284 +L$_last_num_blocks_is_4_284: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $252,%r15d + jae L$_16_blocks_overflow_291 + vpaddd %zmm28,%zmm2,%zmm0 + jmp L$_16_blocks_ok_291 + +L$_16_blocks_overflow_291: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %zmm29,%zmm0,%zmm0 +L$_16_blocks_ok_291: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $3,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm0,%zmm0 + vpxorq %zmm17,%zmm0,%zmm0 + vextracti32x4 $3,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm0,%zmm0{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vextracti32x4 $3,%zmm17,%xmm7 + subq $16 * (4 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_292 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_292 +L$_small_initial_partial_block_292: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_292: + + orq %r8,%r8 + je L$_after_reduction_292 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_292: + jmp L$_last_blocks_done_284 +L$_last_num_blocks_is_5_284: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $251,%r15d + jae L$_16_blocks_overflow_293 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %xmm27,%xmm0,%xmm3 + jmp L$_16_blocks_ok_293 + +L$_16_blocks_overflow_293: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %xmm29,%xmm3,%xmm3 +L$_16_blocks_ok_293: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $0,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%xmm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %xmm30,%xmm3,%xmm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %xmm19,%xmm3,%xmm3 + vextracti32x4 $0,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %xmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm3,%zmm3{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %xmm29,%xmm3,%xmm19 + vextracti32x4 $0,%zmm19,%xmm7 + subq $16 * (5 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_294 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm19,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm19,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm19,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm19,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_294 +L$_small_initial_partial_block_294: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_294: + + orq %r8,%r8 + je L$_after_reduction_294 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_294: + jmp L$_last_blocks_done_284 +L$_last_num_blocks_is_6_284: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $250,%r15d + jae L$_16_blocks_overflow_295 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %ymm27,%ymm0,%ymm3 + jmp L$_16_blocks_ok_295 + +L$_16_blocks_overflow_295: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %ymm29,%ymm3,%ymm3 +L$_16_blocks_ok_295: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $1,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%ymm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %ymm30,%ymm3,%ymm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %ymm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm3,%zmm3{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %ymm29,%ymm3,%ymm19 + vextracti32x4 $1,%zmm19,%xmm7 + subq $16 * (6 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_296 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm19,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm19,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm19,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm19,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_296 +L$_small_initial_partial_block_296: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm19,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm19,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm19,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm19,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_296: + + orq %r8,%r8 + je L$_after_reduction_296 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_296: + jmp L$_last_blocks_done_284 +L$_last_num_blocks_is_7_284: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $249,%r15d + jae L$_16_blocks_overflow_297 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + jmp L$_16_blocks_ok_297 + +L$_16_blocks_overflow_297: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 +L$_16_blocks_ok_297: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $2,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti32x4 $2,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm3,%zmm3{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vextracti32x4 $2,%zmm19,%xmm7 + subq $16 * (7 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_298 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_298 +L$_small_initial_partial_block_298: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm19,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm19,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm19,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm19,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_298: + + orq %r8,%r8 + je L$_after_reduction_298 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_298: + jmp L$_last_blocks_done_284 +L$_last_num_blocks_is_8_284: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $248,%r15d + jae L$_16_blocks_overflow_299 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + jmp L$_16_blocks_ok_299 + +L$_16_blocks_overflow_299: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 +L$_16_blocks_ok_299: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $3,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti32x4 $3,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm3,%zmm3{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vextracti32x4 $3,%zmm19,%xmm7 + subq $16 * (8 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_300 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_300 +L$_small_initial_partial_block_300: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_300: + + orq %r8,%r8 + je L$_after_reduction_300 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_300: + jmp L$_last_blocks_done_284 +L$_last_num_blocks_is_9_284: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $247,%r15d + jae L$_16_blocks_overflow_301 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %xmm27,%xmm3,%xmm4 + jmp L$_16_blocks_ok_301 + +L$_16_blocks_overflow_301: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %xmm29,%xmm4,%xmm4 +L$_16_blocks_ok_301: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $0,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%xmm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %xmm30,%xmm4,%xmm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %xmm20,%xmm4,%xmm4 + vextracti32x4 $0,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %xmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm4,%zmm4{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %xmm29,%xmm4,%xmm20 + vextracti32x4 $0,%zmm20,%xmm7 + subq $16 * (9 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_302 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm20,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm20,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm20,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm20,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_302 +L$_small_initial_partial_block_302: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_302: + + orq %r8,%r8 + je L$_after_reduction_302 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_302: + jmp L$_last_blocks_done_284 +L$_last_num_blocks_is_10_284: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $246,%r15d + jae L$_16_blocks_overflow_303 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %ymm27,%ymm3,%ymm4 + jmp L$_16_blocks_ok_303 + +L$_16_blocks_overflow_303: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %ymm29,%ymm4,%ymm4 +L$_16_blocks_ok_303: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $1,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%ymm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %ymm30,%ymm4,%ymm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %ymm20,%ymm4,%ymm4 + vextracti32x4 $1,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %ymm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm4,%zmm4{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %ymm29,%ymm4,%ymm20 + vextracti32x4 $1,%zmm20,%xmm7 + subq $16 * (10 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_304 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm20,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm20,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm20,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm20,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_304 +L$_small_initial_partial_block_304: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm20,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm20,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm20,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm20,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_304: + + orq %r8,%r8 + je L$_after_reduction_304 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_304: + jmp L$_last_blocks_done_284 +L$_last_num_blocks_is_11_284: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $245,%r15d + jae L$_16_blocks_overflow_305 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + jmp L$_16_blocks_ok_305 + +L$_16_blocks_overflow_305: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 +L$_16_blocks_ok_305: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $2,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vextracti32x4 $2,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm4,%zmm4{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %zmm29,%zmm4,%zmm20 + vextracti32x4 $2,%zmm20,%xmm7 + subq $16 * (11 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_306 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_306 +L$_small_initial_partial_block_306: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm20,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm20,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm20,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm20,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_306: + + orq %r8,%r8 + je L$_after_reduction_306 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_306: + jmp L$_last_blocks_done_284 +L$_last_num_blocks_is_12_284: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $244,%r15d + jae L$_16_blocks_overflow_307 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + jmp L$_16_blocks_ok_307 + +L$_16_blocks_overflow_307: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 +L$_16_blocks_ok_307: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $3,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vextracti32x4 $3,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm4,%zmm4{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %zmm29,%zmm4,%zmm20 + vextracti32x4 $3,%zmm20,%xmm7 + subq $16 * (12 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_308 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 160(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_308 +L$_small_initial_partial_block_308: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_308: + + orq %r8,%r8 + je L$_after_reduction_308 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_308: + jmp L$_last_blocks_done_284 +L$_last_num_blocks_is_13_284: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $243,%r15d + jae L$_16_blocks_overflow_309 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %xmm27,%xmm4,%xmm5 + jmp L$_16_blocks_ok_309 + +L$_16_blocks_overflow_309: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %xmm29,%xmm5,%xmm5 +L$_16_blocks_ok_309: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $0,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%xmm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %xmm30,%xmm5,%xmm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %xmm21,%xmm5,%xmm5 + vextracti32x4 $0,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %xmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm5,%zmm5{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %zmm29,%zmm4,%zmm20 + vpshufb %xmm29,%xmm5,%xmm21 + vextracti32x4 $0,%zmm21,%xmm7 + subq $16 * (13 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_310 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 144(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm21,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm21,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm21,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm21,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_310 +L$_small_initial_partial_block_310: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 160(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_310: + + orq %r8,%r8 + je L$_after_reduction_310 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_310: + jmp L$_last_blocks_done_284 +L$_last_num_blocks_is_14_284: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $242,%r15d + jae L$_16_blocks_overflow_311 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %ymm27,%ymm4,%ymm5 + jmp L$_16_blocks_ok_311 + +L$_16_blocks_overflow_311: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %ymm29,%ymm5,%ymm5 +L$_16_blocks_ok_311: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $1,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%ymm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %ymm30,%ymm5,%ymm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %ymm21,%ymm5,%ymm5 + vextracti32x4 $1,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %ymm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm5,%zmm5{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %zmm29,%zmm4,%zmm20 + vpshufb %ymm29,%ymm5,%ymm21 + vextracti32x4 $1,%zmm21,%xmm7 + subq $16 * (14 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_312 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 128(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm21,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm21,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm21,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm21,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_312 +L$_small_initial_partial_block_312: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 144(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm21,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm21,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm21,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm21,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_312: + + orq %r8,%r8 + je L$_after_reduction_312 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_312: + jmp L$_last_blocks_done_284 +L$_last_num_blocks_is_15_284: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $241,%r15d + jae L$_16_blocks_overflow_313 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp L$_16_blocks_ok_313 + +L$_16_blocks_overflow_313: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +L$_16_blocks_ok_313: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $2,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%zmm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + vextracti32x4 $2,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %zmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm5,%zmm5{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %zmm29,%zmm4,%zmm20 + vpshufb %zmm29,%zmm5,%zmm21 + vextracti32x4 $2,%zmm21,%xmm7 + subq $16 * (15 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_314 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 112(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm21,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm21,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm21,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm21,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_314 +L$_small_initial_partial_block_314: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 128(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm21,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm21,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm21,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm21,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_314: + + orq %r8,%r8 + je L$_after_reduction_314 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_314: + jmp L$_last_blocks_done_284 +L$_last_num_blocks_is_16_284: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $240,%r15d + jae L$_16_blocks_overflow_315 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp L$_16_blocks_ok_315 + +L$_16_blocks_overflow_315: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +L$_16_blocks_ok_315: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $3,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%zmm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + vextracti32x4 $3,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %zmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm5,%zmm5{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %zmm29,%zmm4,%zmm20 + vpshufb %zmm29,%zmm5,%zmm21 + vextracti32x4 $3,%zmm21,%xmm7 + subq $16 * (16 - 1),%r8 +L$_small_initial_partial_block_316: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 112(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm21,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm21,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm21,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm21,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_316: + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_316: + jmp L$_last_blocks_done_284 +L$_last_num_blocks_is_0_284: + vmovdqa64 768(%rsp),%zmm13 + vpxorq %zmm14,%zmm13,%zmm13 + vmovdqu64 0(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 832(%rsp),%zmm13 + vmovdqu64 64(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + vpxorq %zmm10,%zmm4,%zmm26 + vpxorq %zmm6,%zmm0,%zmm24 + vpxorq %zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + vmovdqa64 896(%rsp),%zmm13 + vmovdqu64 128(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 960(%rsp),%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + + vpternlogq $0x96,%zmm10,%zmm4,%zmm26 + vpternlogq $0x96,%zmm6,%zmm0,%zmm24 + vpternlogq $0x96,%zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + + vpsrldq $8,%zmm26,%zmm0 + vpslldq $8,%zmm26,%zmm3 + vpxorq %zmm0,%zmm24,%zmm24 + vpxorq %zmm3,%zmm25,%zmm25 + vextracti64x4 $1,%zmm24,%ymm0 + vpxorq %ymm0,%ymm24,%ymm24 + vextracti32x4 $1,%ymm24,%xmm0 + vpxorq %xmm0,%xmm24,%xmm24 + vextracti64x4 $1,%zmm25,%ymm3 + vpxorq %ymm3,%ymm25,%ymm25 + vextracti32x4 $1,%ymm25,%xmm3 + vpxorq %xmm3,%xmm25,%xmm25 + vmovdqa64 POLY2(%rip),%xmm4 + + + vpclmulqdq $0x01,%xmm25,%xmm4,%xmm0 + vpslldq $8,%xmm0,%xmm0 + vpxorq %xmm0,%xmm25,%xmm0 + + + vpclmulqdq $0x00,%xmm0,%xmm4,%xmm3 + vpsrldq $4,%xmm3,%xmm3 + vpclmulqdq $0x10,%xmm0,%xmm4,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm24,%xmm3,%xmm14 + +L$_last_blocks_done_284: + vpshufb %xmm29,%xmm2,%xmm2 + jmp L$_ghash_done_172 + +L$_message_below_equal_16_blocks_172: + + + movl %r8d,%r12d + addl $15,%r12d + shrl $4,%r12d + cmpq $8,%r12 + je L$_small_initial_num_blocks_is_8_317 + jl L$_small_initial_num_blocks_is_7_1_317 + + + cmpq $12,%r12 + je L$_small_initial_num_blocks_is_12_317 + jl L$_small_initial_num_blocks_is_11_9_317 + + + cmpq $16,%r12 + je L$_small_initial_num_blocks_is_16_317 + cmpq $15,%r12 + je L$_small_initial_num_blocks_is_15_317 + cmpq $14,%r12 + je L$_small_initial_num_blocks_is_14_317 + jmp L$_small_initial_num_blocks_is_13_317 + +L$_small_initial_num_blocks_is_11_9_317: + + cmpq $11,%r12 + je L$_small_initial_num_blocks_is_11_317 + cmpq $10,%r12 + je L$_small_initial_num_blocks_is_10_317 + jmp L$_small_initial_num_blocks_is_9_317 + +L$_small_initial_num_blocks_is_7_1_317: + cmpq $4,%r12 + je L$_small_initial_num_blocks_is_4_317 + jl L$_small_initial_num_blocks_is_3_1_317 + + cmpq $7,%r12 + je L$_small_initial_num_blocks_is_7_317 + cmpq $6,%r12 + je L$_small_initial_num_blocks_is_6_317 + jmp L$_small_initial_num_blocks_is_5_317 + +L$_small_initial_num_blocks_is_3_1_317: + + cmpq $3,%r12 + je L$_small_initial_num_blocks_is_3_317 + cmpq $2,%r12 + je L$_small_initial_num_blocks_is_2_317 + + + + + +L$_small_initial_num_blocks_is_1_317: + vmovdqa64 SHUF_MASK(%rip),%xmm29 + vpaddd ONE(%rip),%xmm2,%xmm0 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $0,%zmm0,%xmm2 + vpshufb %xmm29,%xmm0,%xmm0 + vmovdqu8 0(%rcx,%r11,1),%xmm6{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %xmm15,%xmm0,%xmm0 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %xmm15,%xmm0,%xmm0 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %xmm15,%xmm0,%xmm0 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %xmm15,%xmm0,%xmm0 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %xmm15,%xmm0,%xmm0 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %xmm15,%xmm0,%xmm0 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %xmm15,%xmm0,%xmm0 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %xmm15,%xmm0,%xmm0 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %xmm15,%xmm0,%xmm0 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %xmm15,%xmm0,%xmm0 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenc %xmm15,%xmm0,%xmm0 + vbroadcastf64x2 176(%rdi),%zmm15 + vaesenc %xmm15,%xmm0,%xmm0 + vbroadcastf64x2 192(%rdi),%zmm15 + vaesenclast %xmm15,%xmm0,%xmm0 + vpxorq %xmm6,%xmm0,%xmm0 + vextracti32x4 $0,%zmm0,%xmm12 + movq %r9,%r10 + vmovdqu8 %xmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm0,%zmm0{%k1}{z} + vpshufb %xmm29,%xmm0,%xmm6 + vextracti32x4 $0,%zmm6,%xmm13 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_318 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 336(%rsi),%xmm20 + vpclmulqdq $0x01,%xmm20,%xmm6,%xmm4 + vpclmulqdq $0x10,%xmm20,%xmm6,%xmm5 + vpclmulqdq $0x11,%xmm20,%xmm6,%xmm0 + vpclmulqdq $0x00,%xmm20,%xmm6,%xmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_318 +L$_small_initial_partial_block_318: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + + + + + + + + + + + + vpxorq %xmm13,%xmm14,%xmm14 + + jmp L$_after_reduction_318 +L$_small_initial_compute_done_318: +L$_after_reduction_318: + jmp L$_small_initial_blocks_encrypted_317 +L$_small_initial_num_blocks_is_2_317: + vmovdqa64 SHUF_MASK(%rip),%ymm29 + vshufi64x2 $0,%ymm2,%ymm2,%ymm0 + vpaddd ddq_add_1234(%rip),%ymm0,%ymm0 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $1,%zmm0,%xmm2 + vpshufb %ymm29,%ymm0,%ymm0 + vmovdqu8 0(%rcx,%r11,1),%ymm6{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %ymm15,%ymm0,%ymm0 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %ymm15,%ymm0,%ymm0 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %ymm15,%ymm0,%ymm0 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %ymm15,%ymm0,%ymm0 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %ymm15,%ymm0,%ymm0 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %ymm15,%ymm0,%ymm0 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %ymm15,%ymm0,%ymm0 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %ymm15,%ymm0,%ymm0 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %ymm15,%ymm0,%ymm0 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %ymm15,%ymm0,%ymm0 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenc %ymm15,%ymm0,%ymm0 + vbroadcastf64x2 176(%rdi),%zmm15 + vaesenc %ymm15,%ymm0,%ymm0 + vbroadcastf64x2 192(%rdi),%zmm15 + vaesenclast %ymm15,%ymm0,%ymm0 + vpxorq %ymm6,%ymm0,%ymm0 + vextracti32x4 $1,%zmm0,%xmm12 + movq %r9,%r10 + vmovdqu8 %ymm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm0,%zmm0{%k1}{z} + vpshufb %ymm29,%ymm0,%ymm6 + vextracti32x4 $1,%zmm6,%xmm13 + subq $16 * (2 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_319 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 320(%rsi),%ymm20 + vpclmulqdq $0x01,%ymm20,%ymm6,%ymm4 + vpclmulqdq $0x10,%ymm20,%ymm6,%ymm5 + vpclmulqdq $0x11,%ymm20,%ymm6,%ymm0 + vpclmulqdq $0x00,%ymm20,%ymm6,%ymm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_319 +L$_small_initial_partial_block_319: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 336(%rsi),%xmm20 + vpclmulqdq $0x01,%xmm20,%xmm6,%xmm4 + vpclmulqdq $0x10,%xmm20,%xmm6,%xmm5 + vpclmulqdq $0x11,%xmm20,%xmm6,%xmm0 + vpclmulqdq $0x00,%xmm20,%xmm6,%xmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_319: + + orq %r8,%r8 + je L$_after_reduction_319 + vpxorq %xmm13,%xmm14,%xmm14 +L$_after_reduction_319: + jmp L$_small_initial_blocks_encrypted_317 +L$_small_initial_num_blocks_is_3_317: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $2,%zmm0,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vmovdqu8 0(%rcx,%r11,1),%zmm6{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 176(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 192(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vpxorq %zmm6,%zmm0,%zmm0 + vextracti32x4 $2,%zmm0,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm0,%zmm0{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm6 + vextracti32x4 $2,%zmm6,%xmm13 + subq $16 * (3 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_320 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 304(%rsi),%ymm20 + vinserti64x2 $2,336(%rsi),%zmm20,%zmm20 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_320 +L$_small_initial_partial_block_320: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 320(%rsi),%ymm20 + vpclmulqdq $0x01,%ymm20,%ymm6,%ymm4 + vpclmulqdq $0x10,%ymm20,%ymm6,%ymm5 + vpclmulqdq $0x11,%ymm20,%ymm6,%ymm0 + vpclmulqdq $0x00,%ymm20,%ymm6,%ymm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_320: + + orq %r8,%r8 + je L$_after_reduction_320 + vpxorq %xmm13,%xmm14,%xmm14 +L$_after_reduction_320: + jmp L$_small_initial_blocks_encrypted_317 +L$_small_initial_num_blocks_is_4_317: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $3,%zmm0,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vmovdqu8 0(%rcx,%r11,1),%zmm6{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 176(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 192(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vpxorq %zmm6,%zmm0,%zmm0 + vextracti32x4 $3,%zmm0,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm0,%zmm0{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm6 + vextracti32x4 $3,%zmm6,%xmm13 + subq $16 * (4 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_321 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 288(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm19 + + vpxorq %zmm19,%zmm17,%zmm17 + vpsrldq $8,%zmm17,%zmm4 + vpslldq $8,%zmm17,%zmm5 + vpxorq %zmm4,%zmm15,%zmm0 + vpxorq %zmm5,%zmm16,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_321 +L$_small_initial_partial_block_321: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 304(%rsi),%ymm20 + vinserti64x2 $2,336(%rsi),%zmm20,%zmm20 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_321: + + orq %r8,%r8 + je L$_after_reduction_321 + vpxorq %xmm13,%xmm14,%xmm14 +L$_after_reduction_321: + jmp L$_small_initial_blocks_encrypted_317 +L$_small_initial_num_blocks_is_5_317: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd ddq_add_5678(%rip),%zmm2,%zmm3 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + subq $64,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $0,%zmm3,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %xmm29,%xmm3,%xmm3 + vmovdqu8 0(%rcx,%r11,1),%zmm6 + vmovdqu8 64(%rcx,%r11,1),%xmm7{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %xmm15,%xmm3,%xmm3 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %xmm15,%xmm3,%xmm3 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %xmm15,%xmm3,%xmm3 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %xmm15,%xmm3,%xmm3 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %xmm15,%xmm3,%xmm3 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %xmm15,%xmm3,%xmm3 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %xmm15,%xmm3,%xmm3 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %xmm15,%xmm3,%xmm3 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %xmm15,%xmm3,%xmm3 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %xmm15,%xmm3,%xmm3 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %xmm15,%xmm3,%xmm3 + vbroadcastf64x2 176(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %xmm15,%xmm3,%xmm3 + vbroadcastf64x2 192(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vaesenclast %xmm15,%xmm3,%xmm3 + vpxorq %zmm6,%zmm0,%zmm0 + vpxorq %xmm7,%xmm3,%xmm3 + vextracti32x4 $0,%zmm3,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %xmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm3,%zmm3{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm6 + vpshufb %xmm29,%xmm3,%xmm7 + vextracti32x4 $0,%zmm7,%xmm13 + subq $16 * (5 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_322 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 272(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm19 + vmovdqu64 336(%rsi),%xmm20 + vpclmulqdq $0x01,%xmm20,%xmm7,%xmm4 + vpclmulqdq $0x10,%xmm20,%xmm7,%xmm5 + vpclmulqdq $0x11,%xmm20,%xmm7,%xmm0 + vpclmulqdq $0x00,%xmm20,%xmm7,%xmm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_322 +L$_small_initial_partial_block_322: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 288(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm19 + + vpxorq %zmm19,%zmm17,%zmm17 + vpsrldq $8,%zmm17,%zmm4 + vpslldq $8,%zmm17,%zmm5 + vpxorq %zmm4,%zmm15,%zmm0 + vpxorq %zmm5,%zmm16,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_322: + + orq %r8,%r8 + je L$_after_reduction_322 + vpxorq %xmm13,%xmm14,%xmm14 +L$_after_reduction_322: + jmp L$_small_initial_blocks_encrypted_317 +L$_small_initial_num_blocks_is_6_317: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd ddq_add_5678(%rip),%zmm2,%zmm3 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + subq $64,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $1,%zmm3,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %ymm29,%ymm3,%ymm3 + vmovdqu8 0(%rcx,%r11,1),%zmm6 + vmovdqu8 64(%rcx,%r11,1),%ymm7{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %ymm15,%ymm3,%ymm3 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %ymm15,%ymm3,%ymm3 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %ymm15,%ymm3,%ymm3 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %ymm15,%ymm3,%ymm3 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %ymm15,%ymm3,%ymm3 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %ymm15,%ymm3,%ymm3 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %ymm15,%ymm3,%ymm3 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %ymm15,%ymm3,%ymm3 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %ymm15,%ymm3,%ymm3 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %ymm15,%ymm3,%ymm3 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %ymm15,%ymm3,%ymm3 + vbroadcastf64x2 176(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %ymm15,%ymm3,%ymm3 + vbroadcastf64x2 192(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vaesenclast %ymm15,%ymm3,%ymm3 + vpxorq %zmm6,%zmm0,%zmm0 + vpxorq %ymm7,%ymm3,%ymm3 + vextracti32x4 $1,%zmm3,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %ymm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm3,%zmm3{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm6 + vpshufb %ymm29,%ymm3,%ymm7 + vextracti32x4 $1,%zmm7,%xmm13 + subq $16 * (6 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_323 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 256(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm19 + vmovdqu64 320(%rsi),%ymm20 + vpclmulqdq $0x01,%ymm20,%ymm7,%ymm4 + vpclmulqdq $0x10,%ymm20,%ymm7,%ymm5 + vpclmulqdq $0x11,%ymm20,%ymm7,%ymm0 + vpclmulqdq $0x00,%ymm20,%ymm7,%ymm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_323 +L$_small_initial_partial_block_323: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 272(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm19 + vmovdqu64 336(%rsi),%xmm20 + vpclmulqdq $0x01,%xmm20,%xmm7,%xmm4 + vpclmulqdq $0x10,%xmm20,%xmm7,%xmm5 + vpclmulqdq $0x11,%xmm20,%xmm7,%xmm0 + vpclmulqdq $0x00,%xmm20,%xmm7,%xmm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_323: + + orq %r8,%r8 + je L$_after_reduction_323 + vpxorq %xmm13,%xmm14,%xmm14 +L$_after_reduction_323: + jmp L$_small_initial_blocks_encrypted_317 +L$_small_initial_num_blocks_is_7_317: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd ddq_add_5678(%rip),%zmm2,%zmm3 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + subq $64,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $2,%zmm3,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vmovdqu8 0(%rcx,%r11,1),%zmm6 + vmovdqu8 64(%rcx,%r11,1),%zmm7{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 176(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 192(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vaesenclast %zmm15,%zmm3,%zmm3 + vpxorq %zmm6,%zmm0,%zmm0 + vpxorq %zmm7,%zmm3,%zmm3 + vextracti32x4 $2,%zmm3,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm3,%zmm3{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm6 + vpshufb %zmm29,%zmm3,%zmm7 + vextracti32x4 $2,%zmm7,%xmm13 + subq $16 * (7 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_324 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 240(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm19 + vmovdqu64 304(%rsi),%ymm20 + vinserti64x2 $2,336(%rsi),%zmm20,%zmm20 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm5 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_324 +L$_small_initial_partial_block_324: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 256(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm19 + vmovdqu64 320(%rsi),%ymm20 + vpclmulqdq $0x01,%ymm20,%ymm7,%ymm4 + vpclmulqdq $0x10,%ymm20,%ymm7,%ymm5 + vpclmulqdq $0x11,%ymm20,%ymm7,%ymm0 + vpclmulqdq $0x00,%ymm20,%ymm7,%ymm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_324: + + orq %r8,%r8 + je L$_after_reduction_324 + vpxorq %xmm13,%xmm14,%xmm14 +L$_after_reduction_324: + jmp L$_small_initial_blocks_encrypted_317 +L$_small_initial_num_blocks_is_8_317: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd ddq_add_5678(%rip),%zmm2,%zmm3 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + subq $64,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $3,%zmm3,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vmovdqu8 0(%rcx,%r11,1),%zmm6 + vmovdqu8 64(%rcx,%r11,1),%zmm7{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 176(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 192(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vaesenclast %zmm15,%zmm3,%zmm3 + vpxorq %zmm6,%zmm0,%zmm0 + vpxorq %zmm7,%zmm3,%zmm3 + vextracti32x4 $3,%zmm3,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm3,%zmm3{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm6 + vpshufb %zmm29,%zmm3,%zmm7 + vextracti32x4 $3,%zmm7,%xmm13 + subq $16 * (8 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_325 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 224(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 288(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vpxorq %zmm15,%zmm0,%zmm15 + vpxorq %zmm16,%zmm3,%zmm16 + vpxorq %zmm17,%zmm4,%zmm17 + vpxorq %zmm19,%zmm5,%zmm19 + + vpxorq %zmm19,%zmm17,%zmm17 + vpsrldq $8,%zmm17,%zmm4 + vpslldq $8,%zmm17,%zmm5 + vpxorq %zmm4,%zmm15,%zmm0 + vpxorq %zmm5,%zmm16,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_325 +L$_small_initial_partial_block_325: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 240(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm19 + vmovdqu64 304(%rsi),%ymm20 + vinserti64x2 $2,336(%rsi),%zmm20,%zmm20 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm5 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_325: + + orq %r8,%r8 + je L$_after_reduction_325 + vpxorq %xmm13,%xmm14,%xmm14 +L$_after_reduction_325: + jmp L$_small_initial_blocks_encrypted_317 +L$_small_initial_num_blocks_is_9_317: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd ddq_add_5678(%rip),%zmm2,%zmm3 + vpaddd ddq_add_8888(%rip),%zmm0,%zmm4 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + subq $128,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $0,%zmm4,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %xmm29,%xmm4,%xmm4 + vmovdqu8 0(%rcx,%r11,1),%zmm6 + vmovdqu8 64(%rcx,%r11,1),%zmm7 + vmovdqu8 128(%rcx,%r11,1),%xmm10{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm15,%zmm3,%zmm3 + vpxorq %xmm15,%xmm4,%xmm4 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %xmm15,%xmm4,%xmm4 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %xmm15,%xmm4,%xmm4 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %xmm15,%xmm4,%xmm4 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %xmm15,%xmm4,%xmm4 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %xmm15,%xmm4,%xmm4 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %xmm15,%xmm4,%xmm4 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %xmm15,%xmm4,%xmm4 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %xmm15,%xmm4,%xmm4 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %xmm15,%xmm4,%xmm4 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %xmm15,%xmm4,%xmm4 + vbroadcastf64x2 176(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %xmm15,%xmm4,%xmm4 + vbroadcastf64x2 192(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vaesenclast %zmm15,%zmm3,%zmm3 + vaesenclast %xmm15,%xmm4,%xmm4 + vpxorq %zmm6,%zmm0,%zmm0 + vpxorq %zmm7,%zmm3,%zmm3 + vpxorq %xmm10,%xmm4,%xmm4 + vextracti32x4 $0,%zmm4,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %xmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm4,%zmm4{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm6 + vpshufb %zmm29,%zmm3,%zmm7 + vpshufb %xmm29,%xmm4,%xmm10 + vextracti32x4 $0,%zmm10,%xmm13 + subq $16 * (9 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_326 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 208(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 272(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vpxorq %zmm15,%zmm0,%zmm15 + vpxorq %zmm16,%zmm3,%zmm16 + vpxorq %zmm17,%zmm4,%zmm17 + vpxorq %zmm19,%zmm5,%zmm19 + vmovdqu64 336(%rsi),%xmm20 + vpclmulqdq $0x01,%xmm20,%xmm10,%xmm4 + vpclmulqdq $0x10,%xmm20,%xmm10,%xmm5 + vpclmulqdq $0x11,%xmm20,%xmm10,%xmm0 + vpclmulqdq $0x00,%xmm20,%xmm10,%xmm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_326 +L$_small_initial_partial_block_326: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 224(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 288(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vpxorq %zmm15,%zmm0,%zmm15 + vpxorq %zmm16,%zmm3,%zmm16 + vpxorq %zmm17,%zmm4,%zmm17 + vpxorq %zmm19,%zmm5,%zmm19 + + vpxorq %zmm19,%zmm17,%zmm17 + vpsrldq $8,%zmm17,%zmm4 + vpslldq $8,%zmm17,%zmm5 + vpxorq %zmm4,%zmm15,%zmm0 + vpxorq %zmm5,%zmm16,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_326: + + orq %r8,%r8 + je L$_after_reduction_326 + vpxorq %xmm13,%xmm14,%xmm14 +L$_after_reduction_326: + jmp L$_small_initial_blocks_encrypted_317 +L$_small_initial_num_blocks_is_10_317: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd ddq_add_5678(%rip),%zmm2,%zmm3 + vpaddd ddq_add_8888(%rip),%zmm0,%zmm4 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + subq $128,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $1,%zmm4,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %ymm29,%ymm4,%ymm4 + vmovdqu8 0(%rcx,%r11,1),%zmm6 + vmovdqu8 64(%rcx,%r11,1),%zmm7 + vmovdqu8 128(%rcx,%r11,1),%ymm10{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm15,%zmm3,%zmm3 + vpxorq %ymm15,%ymm4,%ymm4 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %ymm15,%ymm4,%ymm4 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %ymm15,%ymm4,%ymm4 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %ymm15,%ymm4,%ymm4 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %ymm15,%ymm4,%ymm4 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %ymm15,%ymm4,%ymm4 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %ymm15,%ymm4,%ymm4 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %ymm15,%ymm4,%ymm4 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %ymm15,%ymm4,%ymm4 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %ymm15,%ymm4,%ymm4 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %ymm15,%ymm4,%ymm4 + vbroadcastf64x2 176(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %ymm15,%ymm4,%ymm4 + vbroadcastf64x2 192(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vaesenclast %zmm15,%zmm3,%zmm3 + vaesenclast %ymm15,%ymm4,%ymm4 + vpxorq %zmm6,%zmm0,%zmm0 + vpxorq %zmm7,%zmm3,%zmm3 + vpxorq %ymm10,%ymm4,%ymm4 + vextracti32x4 $1,%zmm4,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %ymm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm4,%zmm4{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm6 + vpshufb %zmm29,%zmm3,%zmm7 + vpshufb %ymm29,%ymm4,%ymm10 + vextracti32x4 $1,%zmm10,%xmm13 + subq $16 * (10 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_327 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 192(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 256(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vpxorq %zmm15,%zmm0,%zmm15 + vpxorq %zmm16,%zmm3,%zmm16 + vpxorq %zmm17,%zmm4,%zmm17 + vpxorq %zmm19,%zmm5,%zmm19 + vmovdqu64 320(%rsi),%ymm20 + vpclmulqdq $0x01,%ymm20,%ymm10,%ymm4 + vpclmulqdq $0x10,%ymm20,%ymm10,%ymm5 + vpclmulqdq $0x11,%ymm20,%ymm10,%ymm0 + vpclmulqdq $0x00,%ymm20,%ymm10,%ymm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_327 +L$_small_initial_partial_block_327: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 208(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 272(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vpxorq %zmm15,%zmm0,%zmm15 + vpxorq %zmm16,%zmm3,%zmm16 + vpxorq %zmm17,%zmm4,%zmm17 + vpxorq %zmm19,%zmm5,%zmm19 + vmovdqu64 336(%rsi),%xmm20 + vpclmulqdq $0x01,%xmm20,%xmm10,%xmm4 + vpclmulqdq $0x10,%xmm20,%xmm10,%xmm5 + vpclmulqdq $0x11,%xmm20,%xmm10,%xmm0 + vpclmulqdq $0x00,%xmm20,%xmm10,%xmm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_327: + + orq %r8,%r8 + je L$_after_reduction_327 + vpxorq %xmm13,%xmm14,%xmm14 +L$_after_reduction_327: + jmp L$_small_initial_blocks_encrypted_317 +L$_small_initial_num_blocks_is_11_317: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd ddq_add_5678(%rip),%zmm2,%zmm3 + vpaddd ddq_add_8888(%rip),%zmm0,%zmm4 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + subq $128,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $2,%zmm4,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vmovdqu8 0(%rcx,%r11,1),%zmm6 + vmovdqu8 64(%rcx,%r11,1),%zmm7 + vmovdqu8 128(%rcx,%r11,1),%zmm10{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm15,%zmm3,%zmm3 + vpxorq %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 176(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 192(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vaesenclast %zmm15,%zmm3,%zmm3 + vaesenclast %zmm15,%zmm4,%zmm4 + vpxorq %zmm6,%zmm0,%zmm0 + vpxorq %zmm7,%zmm3,%zmm3 + vpxorq %zmm10,%zmm4,%zmm4 + vextracti32x4 $2,%zmm4,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm4,%zmm4{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm6 + vpshufb %zmm29,%zmm3,%zmm7 + vpshufb %zmm29,%zmm4,%zmm10 + vextracti32x4 $2,%zmm10,%xmm13 + subq $16 * (11 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_328 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 176(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 240(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vpxorq %zmm15,%zmm0,%zmm15 + vpxorq %zmm16,%zmm3,%zmm16 + vpxorq %zmm17,%zmm4,%zmm17 + vpxorq %zmm19,%zmm5,%zmm19 + vmovdqu64 304(%rsi),%ymm20 + vinserti64x2 $2,336(%rsi),%zmm20,%zmm20 + vpclmulqdq $0x01,%zmm20,%zmm10,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm10,%zmm5 + vpclmulqdq $0x11,%zmm20,%zmm10,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm10,%zmm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_328 +L$_small_initial_partial_block_328: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 192(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 256(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vpxorq %zmm15,%zmm0,%zmm15 + vpxorq %zmm16,%zmm3,%zmm16 + vpxorq %zmm17,%zmm4,%zmm17 + vpxorq %zmm19,%zmm5,%zmm19 + vmovdqu64 320(%rsi),%ymm20 + vpclmulqdq $0x01,%ymm20,%ymm10,%ymm4 + vpclmulqdq $0x10,%ymm20,%ymm10,%ymm5 + vpclmulqdq $0x11,%ymm20,%ymm10,%ymm0 + vpclmulqdq $0x00,%ymm20,%ymm10,%ymm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_328: + + orq %r8,%r8 + je L$_after_reduction_328 + vpxorq %xmm13,%xmm14,%xmm14 +L$_after_reduction_328: + jmp L$_small_initial_blocks_encrypted_317 +L$_small_initial_num_blocks_is_12_317: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd ddq_add_5678(%rip),%zmm2,%zmm3 + vpaddd ddq_add_8888(%rip),%zmm0,%zmm4 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + subq $128,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $3,%zmm4,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vmovdqu8 0(%rcx,%r11,1),%zmm6 + vmovdqu8 64(%rcx,%r11,1),%zmm7 + vmovdqu8 128(%rcx,%r11,1),%zmm10{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm15,%zmm3,%zmm3 + vpxorq %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 176(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 192(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vaesenclast %zmm15,%zmm3,%zmm3 + vaesenclast %zmm15,%zmm4,%zmm4 + vpxorq %zmm6,%zmm0,%zmm0 + vpxorq %zmm7,%zmm3,%zmm3 + vpxorq %zmm10,%zmm4,%zmm4 + vextracti32x4 $3,%zmm4,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm4,%zmm4{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm6 + vpshufb %zmm29,%zmm3,%zmm7 + vpshufb %zmm29,%zmm4,%zmm10 + vextracti32x4 $3,%zmm10,%xmm13 + subq $16 * (12 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_329 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 160(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 224(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vmovdqu64 288(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x00,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm0,%zmm6,%zmm15 + vpternlogq $0x96,%zmm3,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x10,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm4,%zmm6,%zmm17 + vpternlogq $0x96,%zmm5,%zmm7,%zmm19 + + vpxorq %zmm19,%zmm17,%zmm17 + vpsrldq $8,%zmm17,%zmm4 + vpslldq $8,%zmm17,%zmm5 + vpxorq %zmm4,%zmm15,%zmm0 + vpxorq %zmm5,%zmm16,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_329 +L$_small_initial_partial_block_329: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 176(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 240(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vpxorq %zmm15,%zmm0,%zmm15 + vpxorq %zmm16,%zmm3,%zmm16 + vpxorq %zmm17,%zmm4,%zmm17 + vpxorq %zmm19,%zmm5,%zmm19 + vmovdqu64 304(%rsi),%ymm20 + vinserti64x2 $2,336(%rsi),%zmm20,%zmm20 + vpclmulqdq $0x01,%zmm20,%zmm10,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm10,%zmm5 + vpclmulqdq $0x11,%zmm20,%zmm10,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm10,%zmm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_329: + + orq %r8,%r8 + je L$_after_reduction_329 + vpxorq %xmm13,%xmm14,%xmm14 +L$_after_reduction_329: + jmp L$_small_initial_blocks_encrypted_317 +L$_small_initial_num_blocks_is_13_317: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd ddq_add_5678(%rip),%zmm2,%zmm3 + vpaddd ddq_add_8888(%rip),%zmm0,%zmm4 + vpaddd ddq_add_8888(%rip),%zmm3,%zmm5 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + subq $192,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $0,%zmm5,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %xmm29,%xmm5,%xmm5 + vmovdqu8 0(%rcx,%r11,1),%zmm6 + vmovdqu8 64(%rcx,%r11,1),%zmm7 + vmovdqu8 128(%rcx,%r11,1),%zmm10 + vmovdqu8 192(%rcx,%r11,1),%xmm11{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm15,%zmm3,%zmm3 + vpxorq %zmm15,%zmm4,%zmm4 + vpxorq %xmm15,%xmm5,%xmm5 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %xmm15,%xmm5,%xmm5 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %xmm15,%xmm5,%xmm5 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %xmm15,%xmm5,%xmm5 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %xmm15,%xmm5,%xmm5 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %xmm15,%xmm5,%xmm5 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %xmm15,%xmm5,%xmm5 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %xmm15,%xmm5,%xmm5 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %xmm15,%xmm5,%xmm5 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %xmm15,%xmm5,%xmm5 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %xmm15,%xmm5,%xmm5 + vbroadcastf64x2 176(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %xmm15,%xmm5,%xmm5 + vbroadcastf64x2 192(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vaesenclast %zmm15,%zmm3,%zmm3 + vaesenclast %zmm15,%zmm4,%zmm4 + vaesenclast %xmm15,%xmm5,%xmm5 + vpxorq %zmm6,%zmm0,%zmm0 + vpxorq %zmm7,%zmm3,%zmm3 + vpxorq %zmm10,%zmm4,%zmm4 + vpxorq %xmm11,%xmm5,%xmm5 + vextracti32x4 $0,%zmm5,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %xmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm5,%zmm5{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm6 + vpshufb %zmm29,%zmm3,%zmm7 + vpshufb %zmm29,%zmm4,%zmm10 + vpshufb %xmm29,%xmm5,%xmm11 + vextracti32x4 $0,%zmm11,%xmm13 + subq $16 * (13 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_330 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 144(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 208(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vmovdqu64 272(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x00,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm0,%zmm6,%zmm15 + vpternlogq $0x96,%zmm3,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x10,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm4,%zmm6,%zmm17 + vpternlogq $0x96,%zmm5,%zmm7,%zmm19 + vmovdqu64 336(%rsi),%xmm20 + vpclmulqdq $0x01,%xmm20,%xmm11,%xmm4 + vpclmulqdq $0x10,%xmm20,%xmm11,%xmm5 + vpclmulqdq $0x11,%xmm20,%xmm11,%xmm0 + vpclmulqdq $0x00,%xmm20,%xmm11,%xmm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_330 +L$_small_initial_partial_block_330: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 160(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 224(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vmovdqu64 288(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x00,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm0,%zmm6,%zmm15 + vpternlogq $0x96,%zmm3,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x10,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm4,%zmm6,%zmm17 + vpternlogq $0x96,%zmm5,%zmm7,%zmm19 + + vpxorq %zmm19,%zmm17,%zmm17 + vpsrldq $8,%zmm17,%zmm4 + vpslldq $8,%zmm17,%zmm5 + vpxorq %zmm4,%zmm15,%zmm0 + vpxorq %zmm5,%zmm16,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_330: + + orq %r8,%r8 + je L$_after_reduction_330 + vpxorq %xmm13,%xmm14,%xmm14 +L$_after_reduction_330: + jmp L$_small_initial_blocks_encrypted_317 +L$_small_initial_num_blocks_is_14_317: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd ddq_add_5678(%rip),%zmm2,%zmm3 + vpaddd ddq_add_8888(%rip),%zmm0,%zmm4 + vpaddd ddq_add_8888(%rip),%zmm3,%zmm5 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + subq $192,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $1,%zmm5,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %ymm29,%ymm5,%ymm5 + vmovdqu8 0(%rcx,%r11,1),%zmm6 + vmovdqu8 64(%rcx,%r11,1),%zmm7 + vmovdqu8 128(%rcx,%r11,1),%zmm10 + vmovdqu8 192(%rcx,%r11,1),%ymm11{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm15,%zmm3,%zmm3 + vpxorq %zmm15,%zmm4,%zmm4 + vpxorq %ymm15,%ymm5,%ymm5 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %ymm15,%ymm5,%ymm5 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %ymm15,%ymm5,%ymm5 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %ymm15,%ymm5,%ymm5 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %ymm15,%ymm5,%ymm5 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %ymm15,%ymm5,%ymm5 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %ymm15,%ymm5,%ymm5 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %ymm15,%ymm5,%ymm5 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %ymm15,%ymm5,%ymm5 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %ymm15,%ymm5,%ymm5 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %ymm15,%ymm5,%ymm5 + vbroadcastf64x2 176(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %ymm15,%ymm5,%ymm5 + vbroadcastf64x2 192(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vaesenclast %zmm15,%zmm3,%zmm3 + vaesenclast %zmm15,%zmm4,%zmm4 + vaesenclast %ymm15,%ymm5,%ymm5 + vpxorq %zmm6,%zmm0,%zmm0 + vpxorq %zmm7,%zmm3,%zmm3 + vpxorq %zmm10,%zmm4,%zmm4 + vpxorq %ymm11,%ymm5,%ymm5 + vextracti32x4 $1,%zmm5,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %ymm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm5,%zmm5{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm6 + vpshufb %zmm29,%zmm3,%zmm7 + vpshufb %zmm29,%zmm4,%zmm10 + vpshufb %ymm29,%ymm5,%ymm11 + vextracti32x4 $1,%zmm11,%xmm13 + subq $16 * (14 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_331 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 128(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 192(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vmovdqu64 256(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x00,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm0,%zmm6,%zmm15 + vpternlogq $0x96,%zmm3,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x10,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm4,%zmm6,%zmm17 + vpternlogq $0x96,%zmm5,%zmm7,%zmm19 + vmovdqu64 320(%rsi),%ymm20 + vpclmulqdq $0x01,%ymm20,%ymm11,%ymm4 + vpclmulqdq $0x10,%ymm20,%ymm11,%ymm5 + vpclmulqdq $0x11,%ymm20,%ymm11,%ymm0 + vpclmulqdq $0x00,%ymm20,%ymm11,%ymm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_331 +L$_small_initial_partial_block_331: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 144(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 208(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vmovdqu64 272(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x00,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm0,%zmm6,%zmm15 + vpternlogq $0x96,%zmm3,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x10,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm4,%zmm6,%zmm17 + vpternlogq $0x96,%zmm5,%zmm7,%zmm19 + vmovdqu64 336(%rsi),%xmm20 + vpclmulqdq $0x01,%xmm20,%xmm11,%xmm4 + vpclmulqdq $0x10,%xmm20,%xmm11,%xmm5 + vpclmulqdq $0x11,%xmm20,%xmm11,%xmm0 + vpclmulqdq $0x00,%xmm20,%xmm11,%xmm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_331: + + orq %r8,%r8 + je L$_after_reduction_331 + vpxorq %xmm13,%xmm14,%xmm14 +L$_after_reduction_331: + jmp L$_small_initial_blocks_encrypted_317 +L$_small_initial_num_blocks_is_15_317: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd ddq_add_5678(%rip),%zmm2,%zmm3 + vpaddd ddq_add_8888(%rip),%zmm0,%zmm4 + vpaddd ddq_add_8888(%rip),%zmm3,%zmm5 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + subq $192,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $2,%zmm5,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 + vmovdqu8 0(%rcx,%r11,1),%zmm6 + vmovdqu8 64(%rcx,%r11,1),%zmm7 + vmovdqu8 128(%rcx,%r11,1),%zmm10 + vmovdqu8 192(%rcx,%r11,1),%zmm11{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm15,%zmm3,%zmm3 + vpxorq %zmm15,%zmm4,%zmm4 + vpxorq %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 176(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 192(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vaesenclast %zmm15,%zmm3,%zmm3 + vaesenclast %zmm15,%zmm4,%zmm4 + vaesenclast %zmm15,%zmm5,%zmm5 + vpxorq %zmm6,%zmm0,%zmm0 + vpxorq %zmm7,%zmm3,%zmm3 + vpxorq %zmm10,%zmm4,%zmm4 + vpxorq %zmm11,%zmm5,%zmm5 + vextracti32x4 $2,%zmm5,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %zmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm5,%zmm5{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm6 + vpshufb %zmm29,%zmm3,%zmm7 + vpshufb %zmm29,%zmm4,%zmm10 + vpshufb %zmm29,%zmm5,%zmm11 + vextracti32x4 $2,%zmm11,%xmm13 + subq $16 * (15 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_332 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 112(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 176(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vmovdqu64 240(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x00,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm0,%zmm6,%zmm15 + vpternlogq $0x96,%zmm3,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x10,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm4,%zmm6,%zmm17 + vpternlogq $0x96,%zmm5,%zmm7,%zmm19 + vmovdqu64 304(%rsi),%ymm20 + vinserti64x2 $2,336(%rsi),%zmm20,%zmm20 + vpclmulqdq $0x01,%zmm20,%zmm11,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm11,%zmm5 + vpclmulqdq $0x11,%zmm20,%zmm11,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm11,%zmm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_332 +L$_small_initial_partial_block_332: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 128(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 192(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vmovdqu64 256(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x00,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm0,%zmm6,%zmm15 + vpternlogq $0x96,%zmm3,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x10,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm4,%zmm6,%zmm17 + vpternlogq $0x96,%zmm5,%zmm7,%zmm19 + vmovdqu64 320(%rsi),%ymm20 + vpclmulqdq $0x01,%ymm20,%ymm11,%ymm4 + vpclmulqdq $0x10,%ymm20,%ymm11,%ymm5 + vpclmulqdq $0x11,%ymm20,%ymm11,%ymm0 + vpclmulqdq $0x00,%ymm20,%ymm11,%ymm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_332: + + orq %r8,%r8 + je L$_after_reduction_332 + vpxorq %xmm13,%xmm14,%xmm14 +L$_after_reduction_332: + jmp L$_small_initial_blocks_encrypted_317 +L$_small_initial_num_blocks_is_16_317: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd ddq_add_5678(%rip),%zmm2,%zmm3 + vpaddd ddq_add_8888(%rip),%zmm0,%zmm4 + vpaddd ddq_add_8888(%rip),%zmm3,%zmm5 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + subq $192,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $3,%zmm5,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 + vmovdqu8 0(%rcx,%r11,1),%zmm6 + vmovdqu8 64(%rcx,%r11,1),%zmm7 + vmovdqu8 128(%rcx,%r11,1),%zmm10 + vmovdqu8 192(%rcx,%r11,1),%zmm11{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm15,%zmm3,%zmm3 + vpxorq %zmm15,%zmm4,%zmm4 + vpxorq %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 176(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 192(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vaesenclast %zmm15,%zmm3,%zmm3 + vaesenclast %zmm15,%zmm4,%zmm4 + vaesenclast %zmm15,%zmm5,%zmm5 + vpxorq %zmm6,%zmm0,%zmm0 + vpxorq %zmm7,%zmm3,%zmm3 + vpxorq %zmm10,%zmm4,%zmm4 + vpxorq %zmm11,%zmm5,%zmm5 + vextracti32x4 $3,%zmm5,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %zmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm5,%zmm5{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm6 + vpshufb %zmm29,%zmm3,%zmm7 + vpshufb %zmm29,%zmm4,%zmm10 + vpshufb %zmm29,%zmm5,%zmm11 + vextracti32x4 $3,%zmm11,%xmm13 + subq $16 * (16 - 1),%r8 +L$_small_initial_partial_block_333: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 112(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 176(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vmovdqu64 240(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x00,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm0,%zmm6,%zmm15 + vpternlogq $0x96,%zmm3,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x10,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm4,%zmm6,%zmm17 + vpternlogq $0x96,%zmm5,%zmm7,%zmm19 + vmovdqu64 304(%rsi),%ymm20 + vinserti64x2 $2,336(%rsi),%zmm20,%zmm20 + vpclmulqdq $0x01,%zmm20,%zmm11,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm11,%zmm5 + vpclmulqdq $0x11,%zmm20,%zmm11,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm11,%zmm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_333: + vpxorq %xmm13,%xmm14,%xmm14 +L$_after_reduction_333: +L$_small_initial_blocks_encrypted_317: +L$_ghash_done_172: + vmovdqu64 %xmm2,0(%rsi) + vmovdqu64 %xmm14,64(%rsi) +L$_enc_dec_done_172: + jmp L$exit_gcm_encrypt +.p2align 5 +L$aes_gcm_encrypt_256_avx512: + orq %r8,%r8 + je L$_enc_dec_done_334 + xorq %r14,%r14 + vmovdqu64 64(%rsi),%xmm14 + + movq (%rdx),%r11 + orq %r11,%r11 + je L$_partial_block_done_335 + movl $16,%r10d + leaq byte_len_to_mask_table(%rip),%r12 + cmpq %r10,%r8 + cmovcq %r8,%r10 + kmovw (%r12,%r10,2),%k1 + vmovdqu8 (%rcx),%xmm0{%k1}{z} + + vmovdqu64 16(%rsi),%xmm3 + vmovdqu64 336(%rsi),%xmm4 + + + + leaq SHIFT_MASK(%rip),%r12 + addq %r11,%r12 + vmovdqu64 (%r12),%xmm5 + vpshufb %xmm5,%xmm3,%xmm3 + vpxorq %xmm0,%xmm3,%xmm3 + + + leaq (%r8,%r11,1),%r13 + subq $16,%r13 + jge L$_no_extra_mask_335 + subq %r13,%r12 +L$_no_extra_mask_335: + + + + vmovdqu64 16(%r12),%xmm0 + vpand %xmm0,%xmm3,%xmm3 + vpshufb SHUF_MASK(%rip),%xmm3,%xmm3 + vpshufb %xmm5,%xmm3,%xmm3 + vpxorq %xmm3,%xmm14,%xmm14 + cmpq $0,%r13 + jl L$_partial_incomplete_335 + + vpclmulqdq $0x11,%xmm4,%xmm14,%xmm7 + vpclmulqdq $0x00,%xmm4,%xmm14,%xmm10 + vpclmulqdq $0x01,%xmm4,%xmm14,%xmm11 + vpclmulqdq $0x10,%xmm4,%xmm14,%xmm14 + vpxorq %xmm11,%xmm14,%xmm14 + + vpsrldq $8,%xmm14,%xmm11 + vpslldq $8,%xmm14,%xmm14 + vpxorq %xmm11,%xmm7,%xmm7 + vpxorq %xmm10,%xmm14,%xmm14 + + + + vmovdqu64 POLY2(%rip),%xmm11 + + vpclmulqdq $0x01,%xmm14,%xmm11,%xmm10 + vpslldq $8,%xmm10,%xmm10 + vpxorq %xmm10,%xmm14,%xmm14 + + + + vpclmulqdq $0x00,%xmm14,%xmm11,%xmm10 + vpsrldq $4,%xmm10,%xmm10 + vpclmulqdq $0x10,%xmm14,%xmm11,%xmm14 + vpslldq $4,%xmm14,%xmm14 + + vpternlogq $0x96,%xmm10,%xmm7,%xmm14 + + movq $0,(%rdx) + + movq %r11,%r12 + movq $16,%r11 + subq %r12,%r11 + jmp L$_enc_dec_done_335 + +L$_partial_incomplete_335: + addq %r8,(%rdx) + movq %r8,%r11 + +L$_enc_dec_done_335: + + + leaq byte_len_to_mask_table(%rip),%r12 + kmovw (%r12,%r11,2),%k1 + vmovdqu64 %xmm14,64(%rsi) + + vpshufb SHUF_MASK(%rip),%xmm3,%xmm3 + vpshufb %xmm5,%xmm3,%xmm3 + movq %r9,%r12 + vmovdqu8 %xmm3,(%r12){%k1} +L$_partial_block_done_335: + vmovdqu64 0(%rsi),%xmm2 + subq %r11,%r8 + je L$_enc_dec_done_334 + cmpq $256,%r8 + jbe L$_message_below_equal_16_blocks_334 + + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vmovdqa64 ddq_addbe_4444(%rip),%zmm27 + vmovdqa64 ddq_addbe_1234(%rip),%zmm28 + + + + + + + vmovd %xmm2,%r15d + andl $255,%r15d + + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpshufb %zmm29,%zmm2,%zmm2 + + + + cmpb $240,%r15b + jae L$_next_16_overflow_336 + vpaddd %zmm28,%zmm2,%zmm7 + vpaddd %zmm27,%zmm7,%zmm10 + vpaddd %zmm27,%zmm10,%zmm11 + vpaddd %zmm27,%zmm11,%zmm12 + jmp L$_next_16_ok_336 +L$_next_16_overflow_336: + vpshufb %zmm29,%zmm2,%zmm2 + vmovdqa64 ddq_add_4444(%rip),%zmm12 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm7 + vpaddd %zmm12,%zmm7,%zmm10 + vpaddd %zmm12,%zmm10,%zmm11 + vpaddd %zmm12,%zmm11,%zmm12 + vpshufb %zmm29,%zmm7,%zmm7 + vpshufb %zmm29,%zmm10,%zmm10 + vpshufb %zmm29,%zmm11,%zmm11 + vpshufb %zmm29,%zmm12,%zmm12 +L$_next_16_ok_336: + vshufi64x2 $255,%zmm12,%zmm12,%zmm2 + addb $16,%r15b + + vmovdqu8 0(%rcx,%r11,1),%zmm0 + vmovdqu8 64(%rcx,%r11,1),%zmm3 + vmovdqu8 128(%rcx,%r11,1),%zmm4 + vmovdqu8 192(%rcx,%r11,1),%zmm5 + + + vbroadcastf64x2 0(%rdi),%zmm6 + vpxorq %zmm6,%zmm7,%zmm7 + vpxorq %zmm6,%zmm10,%zmm10 + vpxorq %zmm6,%zmm11,%zmm11 + vpxorq %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 16(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 32(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 48(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 64(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 80(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 96(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 112(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 128(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 144(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 160(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 176(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 192(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 208(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 224(%rdi),%zmm6 + vaesenclast %zmm6,%zmm7,%zmm7 + vaesenclast %zmm6,%zmm10,%zmm10 + vaesenclast %zmm6,%zmm11,%zmm11 + vaesenclast %zmm6,%zmm12,%zmm12 + + + vpxorq %zmm0,%zmm7,%zmm7 + vpxorq %zmm3,%zmm10,%zmm10 + vpxorq %zmm4,%zmm11,%zmm11 + vpxorq %zmm5,%zmm12,%zmm12 + + + movq %r9,%r10 + vmovdqu8 %zmm7,0(%r10,%r11,1) + vmovdqu8 %zmm10,64(%r10,%r11,1) + vmovdqu8 %zmm11,128(%r10,%r11,1) + vmovdqu8 %zmm12,192(%r10,%r11,1) + + vpshufb %zmm29,%zmm7,%zmm7 + vpshufb %zmm29,%zmm10,%zmm10 + vpshufb %zmm29,%zmm11,%zmm11 + vpshufb %zmm29,%zmm12,%zmm12 + vmovdqa64 %zmm7,768(%rsp) + vmovdqa64 %zmm10,832(%rsp) + vmovdqa64 %zmm11,896(%rsp) + vmovdqa64 %zmm12,960(%rsp) + testq %r14,%r14 + jnz L$_skip_hkeys_precomputation_337 + + vmovdqu64 288(%rsi),%zmm0 + vmovdqu64 %zmm0,704(%rsp) + + vmovdqu64 224(%rsi),%zmm3 + vmovdqu64 %zmm3,640(%rsp) + + + vshufi64x2 $0x00,%zmm3,%zmm3,%zmm3 + + vmovdqu64 160(%rsi),%zmm4 + vmovdqu64 %zmm4,576(%rsp) + + vmovdqu64 96(%rsi),%zmm5 + vmovdqu64 %zmm5,512(%rsp) +L$_skip_hkeys_precomputation_337: + cmpq $512,%r8 + jb L$_message_below_32_blocks_334 + + + + cmpb $240,%r15b + jae L$_next_16_overflow_338 + vpaddd %zmm28,%zmm2,%zmm7 + vpaddd %zmm27,%zmm7,%zmm10 + vpaddd %zmm27,%zmm10,%zmm11 + vpaddd %zmm27,%zmm11,%zmm12 + jmp L$_next_16_ok_338 +L$_next_16_overflow_338: + vpshufb %zmm29,%zmm2,%zmm2 + vmovdqa64 ddq_add_4444(%rip),%zmm12 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm7 + vpaddd %zmm12,%zmm7,%zmm10 + vpaddd %zmm12,%zmm10,%zmm11 + vpaddd %zmm12,%zmm11,%zmm12 + vpshufb %zmm29,%zmm7,%zmm7 + vpshufb %zmm29,%zmm10,%zmm10 + vpshufb %zmm29,%zmm11,%zmm11 + vpshufb %zmm29,%zmm12,%zmm12 +L$_next_16_ok_338: + vshufi64x2 $255,%zmm12,%zmm12,%zmm2 + addb $16,%r15b + + vmovdqu8 256(%rcx,%r11,1),%zmm0 + vmovdqu8 320(%rcx,%r11,1),%zmm3 + vmovdqu8 384(%rcx,%r11,1),%zmm4 + vmovdqu8 448(%rcx,%r11,1),%zmm5 + + + vbroadcastf64x2 0(%rdi),%zmm6 + vpxorq %zmm6,%zmm7,%zmm7 + vpxorq %zmm6,%zmm10,%zmm10 + vpxorq %zmm6,%zmm11,%zmm11 + vpxorq %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 16(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 32(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 48(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 64(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 80(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 96(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 112(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 128(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 144(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 160(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 176(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 192(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 208(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 224(%rdi),%zmm6 + vaesenclast %zmm6,%zmm7,%zmm7 + vaesenclast %zmm6,%zmm10,%zmm10 + vaesenclast %zmm6,%zmm11,%zmm11 + vaesenclast %zmm6,%zmm12,%zmm12 + + + vpxorq %zmm0,%zmm7,%zmm7 + vpxorq %zmm3,%zmm10,%zmm10 + vpxorq %zmm4,%zmm11,%zmm11 + vpxorq %zmm5,%zmm12,%zmm12 + + + movq %r9,%r10 + vmovdqu8 %zmm7,256(%r10,%r11,1) + vmovdqu8 %zmm10,320(%r10,%r11,1) + vmovdqu8 %zmm11,384(%r10,%r11,1) + vmovdqu8 %zmm12,448(%r10,%r11,1) + + vpshufb %zmm29,%zmm7,%zmm7 + vpshufb %zmm29,%zmm10,%zmm10 + vpshufb %zmm29,%zmm11,%zmm11 + vpshufb %zmm29,%zmm12,%zmm12 + vmovdqa64 %zmm7,1024(%rsp) + vmovdqa64 %zmm10,1088(%rsp) + vmovdqa64 %zmm11,1152(%rsp) + vmovdqa64 %zmm12,1216(%rsp) + testq %r14,%r14 + jnz L$_skip_hkeys_precomputation_339 + vmovdqu64 640(%rsp),%zmm3 + + + vshufi64x2 $0x00,%zmm3,%zmm3,%zmm3 + + vmovdqu64 576(%rsp),%zmm4 + vmovdqu64 512(%rsp),%zmm5 + + vpclmulqdq $0x11,%zmm3,%zmm4,%zmm6 + vpclmulqdq $0x00,%zmm3,%zmm4,%zmm7 + vpclmulqdq $0x01,%zmm3,%zmm4,%zmm10 + vpclmulqdq $0x10,%zmm3,%zmm4,%zmm4 + vpxorq %zmm10,%zmm4,%zmm4 + + vpsrldq $8,%zmm4,%zmm10 + vpslldq $8,%zmm4,%zmm4 + vpxorq %zmm10,%zmm6,%zmm6 + vpxorq %zmm7,%zmm4,%zmm4 + + + + vmovdqu64 POLY2(%rip),%zmm10 + + vpclmulqdq $0x01,%zmm4,%zmm10,%zmm7 + vpslldq $8,%zmm7,%zmm7 + vpxorq %zmm7,%zmm4,%zmm4 + + + + vpclmulqdq $0x00,%zmm4,%zmm10,%zmm7 + vpsrldq $4,%zmm7,%zmm7 + vpclmulqdq $0x10,%zmm4,%zmm10,%zmm4 + vpslldq $4,%zmm4,%zmm4 + + vpternlogq $0x96,%zmm7,%zmm6,%zmm4 + + vmovdqu64 %zmm4,448(%rsp) + + vpclmulqdq $0x11,%zmm3,%zmm5,%zmm6 + vpclmulqdq $0x00,%zmm3,%zmm5,%zmm7 + vpclmulqdq $0x01,%zmm3,%zmm5,%zmm10 + vpclmulqdq $0x10,%zmm3,%zmm5,%zmm5 + vpxorq %zmm10,%zmm5,%zmm5 + + vpsrldq $8,%zmm5,%zmm10 + vpslldq $8,%zmm5,%zmm5 + vpxorq %zmm10,%zmm6,%zmm6 + vpxorq %zmm7,%zmm5,%zmm5 + + + + vmovdqu64 POLY2(%rip),%zmm10 + + vpclmulqdq $0x01,%zmm5,%zmm10,%zmm7 + vpslldq $8,%zmm7,%zmm7 + vpxorq %zmm7,%zmm5,%zmm5 + + + + vpclmulqdq $0x00,%zmm5,%zmm10,%zmm7 + vpsrldq $4,%zmm7,%zmm7 + vpclmulqdq $0x10,%zmm5,%zmm10,%zmm5 + vpslldq $4,%zmm5,%zmm5 + + vpternlogq $0x96,%zmm7,%zmm6,%zmm5 + + vmovdqu64 %zmm5,384(%rsp) + + vpclmulqdq $0x11,%zmm3,%zmm4,%zmm6 + vpclmulqdq $0x00,%zmm3,%zmm4,%zmm7 + vpclmulqdq $0x01,%zmm3,%zmm4,%zmm10 + vpclmulqdq $0x10,%zmm3,%zmm4,%zmm4 + vpxorq %zmm10,%zmm4,%zmm4 + + vpsrldq $8,%zmm4,%zmm10 + vpslldq $8,%zmm4,%zmm4 + vpxorq %zmm10,%zmm6,%zmm6 + vpxorq %zmm7,%zmm4,%zmm4 + + + + vmovdqu64 POLY2(%rip),%zmm10 + + vpclmulqdq $0x01,%zmm4,%zmm10,%zmm7 + vpslldq $8,%zmm7,%zmm7 + vpxorq %zmm7,%zmm4,%zmm4 + + + + vpclmulqdq $0x00,%zmm4,%zmm10,%zmm7 + vpsrldq $4,%zmm7,%zmm7 + vpclmulqdq $0x10,%zmm4,%zmm10,%zmm4 + vpslldq $4,%zmm4,%zmm4 + + vpternlogq $0x96,%zmm7,%zmm6,%zmm4 + + vmovdqu64 %zmm4,320(%rsp) + + vpclmulqdq $0x11,%zmm3,%zmm5,%zmm6 + vpclmulqdq $0x00,%zmm3,%zmm5,%zmm7 + vpclmulqdq $0x01,%zmm3,%zmm5,%zmm10 + vpclmulqdq $0x10,%zmm3,%zmm5,%zmm5 + vpxorq %zmm10,%zmm5,%zmm5 + + vpsrldq $8,%zmm5,%zmm10 + vpslldq $8,%zmm5,%zmm5 + vpxorq %zmm10,%zmm6,%zmm6 + vpxorq %zmm7,%zmm5,%zmm5 + + + + vmovdqu64 POLY2(%rip),%zmm10 + + vpclmulqdq $0x01,%zmm5,%zmm10,%zmm7 + vpslldq $8,%zmm7,%zmm7 + vpxorq %zmm7,%zmm5,%zmm5 + + + + vpclmulqdq $0x00,%zmm5,%zmm10,%zmm7 + vpsrldq $4,%zmm7,%zmm7 + vpclmulqdq $0x10,%zmm5,%zmm10,%zmm5 + vpslldq $4,%zmm5,%zmm5 + + vpternlogq $0x96,%zmm7,%zmm6,%zmm5 + + vmovdqu64 %zmm5,256(%rsp) + + vpclmulqdq $0x11,%zmm3,%zmm4,%zmm6 + vpclmulqdq $0x00,%zmm3,%zmm4,%zmm7 + vpclmulqdq $0x01,%zmm3,%zmm4,%zmm10 + vpclmulqdq $0x10,%zmm3,%zmm4,%zmm4 + vpxorq %zmm10,%zmm4,%zmm4 + + vpsrldq $8,%zmm4,%zmm10 + vpslldq $8,%zmm4,%zmm4 + vpxorq %zmm10,%zmm6,%zmm6 + vpxorq %zmm7,%zmm4,%zmm4 + + + + vmovdqu64 POLY2(%rip),%zmm10 + + vpclmulqdq $0x01,%zmm4,%zmm10,%zmm7 + vpslldq $8,%zmm7,%zmm7 + vpxorq %zmm7,%zmm4,%zmm4 + + + + vpclmulqdq $0x00,%zmm4,%zmm10,%zmm7 + vpsrldq $4,%zmm7,%zmm7 + vpclmulqdq $0x10,%zmm4,%zmm10,%zmm4 + vpslldq $4,%zmm4,%zmm4 + + vpternlogq $0x96,%zmm7,%zmm6,%zmm4 + + vmovdqu64 %zmm4,192(%rsp) + + vpclmulqdq $0x11,%zmm3,%zmm5,%zmm6 + vpclmulqdq $0x00,%zmm3,%zmm5,%zmm7 + vpclmulqdq $0x01,%zmm3,%zmm5,%zmm10 + vpclmulqdq $0x10,%zmm3,%zmm5,%zmm5 + vpxorq %zmm10,%zmm5,%zmm5 + + vpsrldq $8,%zmm5,%zmm10 + vpslldq $8,%zmm5,%zmm5 + vpxorq %zmm10,%zmm6,%zmm6 + vpxorq %zmm7,%zmm5,%zmm5 + + + + vmovdqu64 POLY2(%rip),%zmm10 + + vpclmulqdq $0x01,%zmm5,%zmm10,%zmm7 + vpslldq $8,%zmm7,%zmm7 + vpxorq %zmm7,%zmm5,%zmm5 + + + + vpclmulqdq $0x00,%zmm5,%zmm10,%zmm7 + vpsrldq $4,%zmm7,%zmm7 + vpclmulqdq $0x10,%zmm5,%zmm10,%zmm5 + vpslldq $4,%zmm5,%zmm5 + + vpternlogq $0x96,%zmm7,%zmm6,%zmm5 + + vmovdqu64 %zmm5,128(%rsp) + + vpclmulqdq $0x11,%zmm3,%zmm4,%zmm6 + vpclmulqdq $0x00,%zmm3,%zmm4,%zmm7 + vpclmulqdq $0x01,%zmm3,%zmm4,%zmm10 + vpclmulqdq $0x10,%zmm3,%zmm4,%zmm4 + vpxorq %zmm10,%zmm4,%zmm4 + + vpsrldq $8,%zmm4,%zmm10 + vpslldq $8,%zmm4,%zmm4 + vpxorq %zmm10,%zmm6,%zmm6 + vpxorq %zmm7,%zmm4,%zmm4 + + + + vmovdqu64 POLY2(%rip),%zmm10 + + vpclmulqdq $0x01,%zmm4,%zmm10,%zmm7 + vpslldq $8,%zmm7,%zmm7 + vpxorq %zmm7,%zmm4,%zmm4 + + + + vpclmulqdq $0x00,%zmm4,%zmm10,%zmm7 + vpsrldq $4,%zmm7,%zmm7 + vpclmulqdq $0x10,%zmm4,%zmm10,%zmm4 + vpslldq $4,%zmm4,%zmm4 + + vpternlogq $0x96,%zmm7,%zmm6,%zmm4 + + vmovdqu64 %zmm4,64(%rsp) + + vpclmulqdq $0x11,%zmm3,%zmm5,%zmm6 + vpclmulqdq $0x00,%zmm3,%zmm5,%zmm7 + vpclmulqdq $0x01,%zmm3,%zmm5,%zmm10 + vpclmulqdq $0x10,%zmm3,%zmm5,%zmm5 + vpxorq %zmm10,%zmm5,%zmm5 + + vpsrldq $8,%zmm5,%zmm10 + vpslldq $8,%zmm5,%zmm5 + vpxorq %zmm10,%zmm6,%zmm6 + vpxorq %zmm7,%zmm5,%zmm5 + + + + vmovdqu64 POLY2(%rip),%zmm10 + + vpclmulqdq $0x01,%zmm5,%zmm10,%zmm7 + vpslldq $8,%zmm7,%zmm7 + vpxorq %zmm7,%zmm5,%zmm5 + + + + vpclmulqdq $0x00,%zmm5,%zmm10,%zmm7 + vpsrldq $4,%zmm7,%zmm7 + vpclmulqdq $0x10,%zmm5,%zmm10,%zmm5 + vpslldq $4,%zmm5,%zmm5 + + vpternlogq $0x96,%zmm7,%zmm6,%zmm5 + + vmovdqu64 %zmm5,0(%rsp) +L$_skip_hkeys_precomputation_339: + movq $1,%r14 + addq $512,%r11 + subq $512,%r8 + + cmpq $768,%r8 + jb L$_no_more_big_nblocks_334 +L$_encrypt_big_nblocks_334: + cmpb $240,%r15b + jae L$_16_blocks_overflow_340 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp L$_16_blocks_ok_340 +L$_16_blocks_overflow_340: + vpshufb %zmm29,%zmm2,%zmm2 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +L$_16_blocks_ok_340: + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp),%zmm1 + + + + + vshufi64x2 $255,%zmm5,%zmm5,%zmm2 + addb $16,%r15b + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + + + + + + + + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm6 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm6 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + + + + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%zmm21 + + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm15,%zmm10,%zmm26 + vpxorq %zmm12,%zmm6,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 192(%rdi),%zmm30 + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 208(%rdi),%zmm31 + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 224(%rdi),%zmm30 + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + + + + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + + + + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %zmm5,192(%r10,%r11,1) + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 + vmovdqa64 %zmm0,1280(%rsp) + vmovdqa64 %zmm3,1344(%rsp) + vmovdqa64 %zmm4,1408(%rsp) + vmovdqa64 %zmm5,1472(%rsp) + cmpb $240,%r15b + jae L$_16_blocks_overflow_341 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp L$_16_blocks_ok_341 +L$_16_blocks_overflow_341: + vpshufb %zmm29,%zmm2,%zmm2 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +L$_16_blocks_ok_341: + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 256(%rsp),%zmm1 + + + + + vshufi64x2 $255,%zmm5,%zmm5,%zmm2 + addb $16,%r15b + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 320(%rsp),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + + + + + + + + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm6 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 384(%rsp),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 448(%rsp),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm6 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + + + + vmovdqu8 256(%rcx,%r11,1),%zmm17 + vmovdqu8 320(%rcx,%r11,1),%zmm19 + vmovdqu8 384(%rcx,%r11,1),%zmm20 + vmovdqu8 448(%rcx,%r11,1),%zmm21 + + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vpternlogq $0x96,%zmm12,%zmm6,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 192(%rdi),%zmm30 + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 208(%rdi),%zmm31 + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 224(%rdi),%zmm30 + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + + + + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + + + + movq %r9,%r10 + vmovdqu8 %zmm0,256(%r10,%r11,1) + vmovdqu8 %zmm3,320(%r10,%r11,1) + vmovdqu8 %zmm4,384(%r10,%r11,1) + vmovdqu8 %zmm5,448(%r10,%r11,1) + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 + vmovdqa64 %zmm0,768(%rsp) + vmovdqa64 %zmm3,832(%rsp) + vmovdqa64 %zmm4,896(%rsp) + vmovdqa64 %zmm5,960(%rsp) + cmpb $240,%r15b + jae L$_16_blocks_overflow_342 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp L$_16_blocks_ok_342 +L$_16_blocks_overflow_342: + vpshufb %zmm29,%zmm2,%zmm2 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +L$_16_blocks_ok_342: + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + + + + + vshufi64x2 $255,%zmm5,%zmm5,%zmm2 + addb $16,%r15b + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + + + + + + + + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm6 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm6 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + + + + vmovdqu8 512(%rcx,%r11,1),%zmm17 + vmovdqu8 576(%rcx,%r11,1),%zmm19 + vmovdqu8 640(%rcx,%r11,1),%zmm20 + vmovdqu8 704(%rcx,%r11,1),%zmm21 + + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + + + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vpternlogq $0x96,%zmm15,%zmm12,%zmm6 + vpxorq %zmm24,%zmm6,%zmm6 + vpternlogq $0x96,%zmm10,%zmm13,%zmm7 + vpxorq %zmm25,%zmm7,%zmm7 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vextracti64x4 $1,%zmm6,%ymm12 + vpxorq %ymm12,%ymm6,%ymm6 + vextracti32x4 $1,%ymm6,%xmm12 + vpxorq %xmm12,%xmm6,%xmm6 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 176(%rdi),%zmm31 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 192(%rdi),%zmm30 + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 208(%rdi),%zmm31 + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 224(%rdi),%zmm30 + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm6 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + + + + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + + + + movq %r9,%r10 + vmovdqu8 %zmm0,512(%r10,%r11,1) + vmovdqu8 %zmm3,576(%r10,%r11,1) + vmovdqu8 %zmm4,640(%r10,%r11,1) + vmovdqu8 %zmm5,704(%r10,%r11,1) + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 + vmovdqa64 %zmm0,1024(%rsp) + vmovdqa64 %zmm3,1088(%rsp) + vmovdqa64 %zmm4,1152(%rsp) + vmovdqa64 %zmm5,1216(%rsp) + vmovdqa64 %zmm6,%zmm14 + + addq $768,%r11 + subq $768,%r8 + cmpq $768,%r8 + jae L$_encrypt_big_nblocks_334 + +L$_no_more_big_nblocks_334: + + cmpq $512,%r8 + jae L$_encrypt_32_blocks_334 + + cmpq $256,%r8 + jae L$_encrypt_16_blocks_334 +L$_encrypt_0_blocks_ghash_32_334: + movl %r8d,%r10d + andl $~15,%r10d + movl $256,%ebx + subl %r10d,%ebx + vmovdqa64 768(%rsp),%zmm13 + vpxorq %zmm14,%zmm13,%zmm13 + vmovdqu64 0(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 832(%rsp),%zmm13 + vmovdqu64 64(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + vpxorq %zmm10,%zmm4,%zmm26 + vpxorq %zmm6,%zmm0,%zmm24 + vpxorq %zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + vmovdqa64 896(%rsp),%zmm13 + vmovdqu64 128(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 960(%rsp),%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + + vpternlogq $0x96,%zmm10,%zmm4,%zmm26 + vpternlogq $0x96,%zmm6,%zmm0,%zmm24 + vpternlogq $0x96,%zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + addl $256,%ebx + movl %r8d,%r10d + addl $15,%r10d + shrl $4,%r10d + je L$_last_num_blocks_is_0_343 + + cmpl $8,%r10d + je L$_last_num_blocks_is_8_343 + jb L$_last_num_blocks_is_7_1_343 + + + cmpl $12,%r10d + je L$_last_num_blocks_is_12_343 + jb L$_last_num_blocks_is_11_9_343 + + + cmpl $15,%r10d + je L$_last_num_blocks_is_15_343 + ja L$_last_num_blocks_is_16_343 + cmpl $14,%r10d + je L$_last_num_blocks_is_14_343 + jmp L$_last_num_blocks_is_13_343 + +L$_last_num_blocks_is_11_9_343: + + cmpl $10,%r10d + je L$_last_num_blocks_is_10_343 + ja L$_last_num_blocks_is_11_343 + jmp L$_last_num_blocks_is_9_343 + +L$_last_num_blocks_is_7_1_343: + cmpl $4,%r10d + je L$_last_num_blocks_is_4_343 + jb L$_last_num_blocks_is_3_1_343 + + cmpl $6,%r10d + ja L$_last_num_blocks_is_7_343 + je L$_last_num_blocks_is_6_343 + jmp L$_last_num_blocks_is_5_343 + +L$_last_num_blocks_is_3_1_343: + + cmpl $2,%r10d + ja L$_last_num_blocks_is_3_343 + je L$_last_num_blocks_is_2_343 +L$_last_num_blocks_is_1_343: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $255,%r15d + jae L$_16_blocks_overflow_344 + vpaddd %xmm28,%xmm2,%xmm0 + jmp L$_16_blocks_ok_344 + +L$_16_blocks_overflow_344: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %xmm29,%xmm0,%xmm0 +L$_16_blocks_ok_344: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $0,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%xmm17{%k1}{z} + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %xmm31,%xmm0,%xmm0 + vaesenclast %xmm30,%xmm0,%xmm0 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti32x4 $0,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %xmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm0,%zmm0{%k1}{z} + vpshufb %xmm29,%xmm0,%xmm17 + vextracti32x4 $0,%zmm17,%xmm7 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_345 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm17,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm17,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm17,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm17,%xmm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_345 +L$_small_initial_partial_block_345: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + + + vpsrldq $8,%zmm26,%zmm0 + vpslldq $8,%zmm26,%zmm3 + vpxorq %zmm0,%zmm24,%zmm24 + vpxorq %zmm3,%zmm25,%zmm25 + vextracti64x4 $1,%zmm24,%ymm0 + vpxorq %ymm0,%ymm24,%ymm24 + vextracti32x4 $1,%ymm24,%xmm0 + vpxorq %xmm0,%xmm24,%xmm24 + vextracti64x4 $1,%zmm25,%ymm3 + vpxorq %ymm3,%ymm25,%ymm25 + vextracti32x4 $1,%ymm25,%xmm3 + vpxorq %xmm3,%xmm25,%xmm25 + vmovdqa64 POLY2(%rip),%xmm0 + + + vpclmulqdq $0x01,%xmm25,%xmm0,%xmm3 + vpslldq $8,%xmm3,%xmm3 + vpxorq %xmm3,%xmm25,%xmm3 + + + vpclmulqdq $0x00,%xmm3,%xmm0,%xmm4 + vpsrldq $4,%xmm4,%xmm4 + vpclmulqdq $0x10,%xmm3,%xmm0,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm24,%xmm4,%xmm14 + + + + + + + + + + + + + vpxorq %xmm7,%xmm14,%xmm14 + + jmp L$_after_reduction_345 +L$_small_initial_compute_done_345: +L$_after_reduction_345: + jmp L$_last_blocks_done_343 +L$_last_num_blocks_is_2_343: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $254,%r15d + jae L$_16_blocks_overflow_346 + vpaddd %ymm28,%ymm2,%ymm0 + jmp L$_16_blocks_ok_346 + +L$_16_blocks_overflow_346: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %ymm29,%ymm0,%ymm0 +L$_16_blocks_ok_346: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $1,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%ymm17{%k1}{z} + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %ymm31,%ymm0,%ymm0 + vaesenclast %ymm30,%ymm0,%ymm0 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %ymm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm0,%zmm0{%k1}{z} + vpshufb %ymm29,%ymm0,%ymm17 + vextracti32x4 $1,%zmm17,%xmm7 + subq $16 * (2 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_347 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm17,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm17,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm17,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm17,%ymm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_347 +L$_small_initial_partial_block_347: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm17,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm17,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm17,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm17,%xmm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_347: + + orq %r8,%r8 + je L$_after_reduction_347 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_347: + jmp L$_last_blocks_done_343 +L$_last_num_blocks_is_3_343: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $253,%r15d + jae L$_16_blocks_overflow_348 + vpaddd %zmm28,%zmm2,%zmm0 + jmp L$_16_blocks_ok_348 + +L$_16_blocks_overflow_348: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %zmm29,%zmm0,%zmm0 +L$_16_blocks_ok_348: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $2,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm0,%zmm0 + vpxorq %zmm17,%zmm0,%zmm0 + vextracti32x4 $2,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm0,%zmm0{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vextracti32x4 $2,%zmm17,%xmm7 + subq $16 * (3 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_349 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_349 +L$_small_initial_partial_block_349: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm17,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm17,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm17,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm17,%ymm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_349: + + orq %r8,%r8 + je L$_after_reduction_349 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_349: + jmp L$_last_blocks_done_343 +L$_last_num_blocks_is_4_343: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $252,%r15d + jae L$_16_blocks_overflow_350 + vpaddd %zmm28,%zmm2,%zmm0 + jmp L$_16_blocks_ok_350 + +L$_16_blocks_overflow_350: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %zmm29,%zmm0,%zmm0 +L$_16_blocks_ok_350: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $3,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm0,%zmm0 + vpxorq %zmm17,%zmm0,%zmm0 + vextracti32x4 $3,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm0,%zmm0{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vextracti32x4 $3,%zmm17,%xmm7 + subq $16 * (4 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_351 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_351 +L$_small_initial_partial_block_351: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_351: + + orq %r8,%r8 + je L$_after_reduction_351 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_351: + jmp L$_last_blocks_done_343 +L$_last_num_blocks_is_5_343: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $251,%r15d + jae L$_16_blocks_overflow_352 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %xmm27,%xmm0,%xmm3 + jmp L$_16_blocks_ok_352 + +L$_16_blocks_overflow_352: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %xmm29,%xmm3,%xmm3 +L$_16_blocks_ok_352: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $0,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%xmm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %xmm30,%xmm3,%xmm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %xmm19,%xmm3,%xmm3 + vextracti32x4 $0,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %xmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm3,%zmm3{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %xmm29,%xmm3,%xmm19 + vextracti32x4 $0,%zmm19,%xmm7 + subq $16 * (5 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_353 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm19,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm19,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm19,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm19,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_353 +L$_small_initial_partial_block_353: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_353: + + orq %r8,%r8 + je L$_after_reduction_353 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_353: + jmp L$_last_blocks_done_343 +L$_last_num_blocks_is_6_343: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $250,%r15d + jae L$_16_blocks_overflow_354 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %ymm27,%ymm0,%ymm3 + jmp L$_16_blocks_ok_354 + +L$_16_blocks_overflow_354: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %ymm29,%ymm3,%ymm3 +L$_16_blocks_ok_354: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $1,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%ymm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %ymm30,%ymm3,%ymm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %ymm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm3,%zmm3{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %ymm29,%ymm3,%ymm19 + vextracti32x4 $1,%zmm19,%xmm7 + subq $16 * (6 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_355 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm19,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm19,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm19,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm19,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_355 +L$_small_initial_partial_block_355: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm19,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm19,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm19,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm19,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_355: + + orq %r8,%r8 + je L$_after_reduction_355 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_355: + jmp L$_last_blocks_done_343 +L$_last_num_blocks_is_7_343: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $249,%r15d + jae L$_16_blocks_overflow_356 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + jmp L$_16_blocks_ok_356 + +L$_16_blocks_overflow_356: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 +L$_16_blocks_ok_356: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $2,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti32x4 $2,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm3,%zmm3{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vextracti32x4 $2,%zmm19,%xmm7 + subq $16 * (7 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_357 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_357 +L$_small_initial_partial_block_357: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm19,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm19,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm19,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm19,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_357: + + orq %r8,%r8 + je L$_after_reduction_357 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_357: + jmp L$_last_blocks_done_343 +L$_last_num_blocks_is_8_343: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $248,%r15d + jae L$_16_blocks_overflow_358 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + jmp L$_16_blocks_ok_358 + +L$_16_blocks_overflow_358: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 +L$_16_blocks_ok_358: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $3,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti32x4 $3,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm3,%zmm3{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vextracti32x4 $3,%zmm19,%xmm7 + subq $16 * (8 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_359 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_359 +L$_small_initial_partial_block_359: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_359: + + orq %r8,%r8 + je L$_after_reduction_359 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_359: + jmp L$_last_blocks_done_343 +L$_last_num_blocks_is_9_343: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $247,%r15d + jae L$_16_blocks_overflow_360 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %xmm27,%xmm3,%xmm4 + jmp L$_16_blocks_ok_360 + +L$_16_blocks_overflow_360: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %xmm29,%xmm4,%xmm4 +L$_16_blocks_ok_360: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $0,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%xmm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %xmm30,%xmm4,%xmm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %xmm20,%xmm4,%xmm4 + vextracti32x4 $0,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %xmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm4,%zmm4{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %xmm29,%xmm4,%xmm20 + vextracti32x4 $0,%zmm20,%xmm7 + subq $16 * (9 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_361 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm20,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm20,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm20,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm20,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_361 +L$_small_initial_partial_block_361: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_361: + + orq %r8,%r8 + je L$_after_reduction_361 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_361: + jmp L$_last_blocks_done_343 +L$_last_num_blocks_is_10_343: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $246,%r15d + jae L$_16_blocks_overflow_362 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %ymm27,%ymm3,%ymm4 + jmp L$_16_blocks_ok_362 + +L$_16_blocks_overflow_362: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %ymm29,%ymm4,%ymm4 +L$_16_blocks_ok_362: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $1,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%ymm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %ymm30,%ymm4,%ymm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %ymm20,%ymm4,%ymm4 + vextracti32x4 $1,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %ymm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm4,%zmm4{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %ymm29,%ymm4,%ymm20 + vextracti32x4 $1,%zmm20,%xmm7 + subq $16 * (10 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_363 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm20,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm20,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm20,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm20,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_363 +L$_small_initial_partial_block_363: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm20,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm20,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm20,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm20,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_363: + + orq %r8,%r8 + je L$_after_reduction_363 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_363: + jmp L$_last_blocks_done_343 +L$_last_num_blocks_is_11_343: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $245,%r15d + jae L$_16_blocks_overflow_364 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + jmp L$_16_blocks_ok_364 + +L$_16_blocks_overflow_364: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 +L$_16_blocks_ok_364: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $2,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vextracti32x4 $2,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm4,%zmm4{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %zmm29,%zmm4,%zmm20 + vextracti32x4 $2,%zmm20,%xmm7 + subq $16 * (11 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_365 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_365 +L$_small_initial_partial_block_365: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm20,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm20,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm20,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm20,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_365: + + orq %r8,%r8 + je L$_after_reduction_365 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_365: + jmp L$_last_blocks_done_343 +L$_last_num_blocks_is_12_343: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $244,%r15d + jae L$_16_blocks_overflow_366 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + jmp L$_16_blocks_ok_366 + +L$_16_blocks_overflow_366: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 +L$_16_blocks_ok_366: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $3,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vextracti32x4 $3,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm4,%zmm4{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %zmm29,%zmm4,%zmm20 + vextracti32x4 $3,%zmm20,%xmm7 + subq $16 * (12 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_367 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 160(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_367 +L$_small_initial_partial_block_367: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_367: + + orq %r8,%r8 + je L$_after_reduction_367 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_367: + jmp L$_last_blocks_done_343 +L$_last_num_blocks_is_13_343: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $243,%r15d + jae L$_16_blocks_overflow_368 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %xmm27,%xmm4,%xmm5 + jmp L$_16_blocks_ok_368 + +L$_16_blocks_overflow_368: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %xmm29,%xmm5,%xmm5 +L$_16_blocks_ok_368: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $0,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%xmm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %xmm30,%xmm5,%xmm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %xmm21,%xmm5,%xmm5 + vextracti32x4 $0,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %xmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm5,%zmm5{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %zmm29,%zmm4,%zmm20 + vpshufb %xmm29,%xmm5,%xmm21 + vextracti32x4 $0,%zmm21,%xmm7 + subq $16 * (13 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_369 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 144(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm21,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm21,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm21,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm21,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_369 +L$_small_initial_partial_block_369: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 160(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_369: + + orq %r8,%r8 + je L$_after_reduction_369 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_369: + jmp L$_last_blocks_done_343 +L$_last_num_blocks_is_14_343: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $242,%r15d + jae L$_16_blocks_overflow_370 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %ymm27,%ymm4,%ymm5 + jmp L$_16_blocks_ok_370 + +L$_16_blocks_overflow_370: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %ymm29,%ymm5,%ymm5 +L$_16_blocks_ok_370: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $1,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%ymm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %ymm30,%ymm5,%ymm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %ymm21,%ymm5,%ymm5 + vextracti32x4 $1,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %ymm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm5,%zmm5{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %zmm29,%zmm4,%zmm20 + vpshufb %ymm29,%ymm5,%ymm21 + vextracti32x4 $1,%zmm21,%xmm7 + subq $16 * (14 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_371 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 128(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm21,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm21,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm21,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm21,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_371 +L$_small_initial_partial_block_371: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 144(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm21,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm21,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm21,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm21,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_371: + + orq %r8,%r8 + je L$_after_reduction_371 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_371: + jmp L$_last_blocks_done_343 +L$_last_num_blocks_is_15_343: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $241,%r15d + jae L$_16_blocks_overflow_372 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp L$_16_blocks_ok_372 + +L$_16_blocks_overflow_372: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +L$_16_blocks_ok_372: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $2,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%zmm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + vextracti32x4 $2,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %zmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm5,%zmm5{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %zmm29,%zmm4,%zmm20 + vpshufb %zmm29,%zmm5,%zmm21 + vextracti32x4 $2,%zmm21,%xmm7 + subq $16 * (15 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_373 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 112(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm21,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm21,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm21,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm21,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_373 +L$_small_initial_partial_block_373: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 128(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm21,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm21,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm21,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm21,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_373: + + orq %r8,%r8 + je L$_after_reduction_373 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_373: + jmp L$_last_blocks_done_343 +L$_last_num_blocks_is_16_343: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $240,%r15d + jae L$_16_blocks_overflow_374 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp L$_16_blocks_ok_374 + +L$_16_blocks_overflow_374: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +L$_16_blocks_ok_374: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $3,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%zmm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + vextracti32x4 $3,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %zmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm5,%zmm5{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %zmm29,%zmm4,%zmm20 + vpshufb %zmm29,%zmm5,%zmm21 + vextracti32x4 $3,%zmm21,%xmm7 + subq $16 * (16 - 1),%r8 +L$_small_initial_partial_block_375: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 112(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm21,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm21,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm21,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm21,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_375: + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_375: + jmp L$_last_blocks_done_343 +L$_last_num_blocks_is_0_343: + vmovdqa64 1024(%rsp),%zmm13 + vmovdqu64 0(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 1088(%rsp),%zmm13 + vmovdqu64 64(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + vpternlogq $0x96,%zmm10,%zmm4,%zmm26 + vpternlogq $0x96,%zmm6,%zmm0,%zmm24 + vpternlogq $0x96,%zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + vmovdqa64 1152(%rsp),%zmm13 + vmovdqu64 128(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 1216(%rsp),%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + + vpternlogq $0x96,%zmm10,%zmm4,%zmm26 + vpternlogq $0x96,%zmm6,%zmm0,%zmm24 + vpternlogq $0x96,%zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + + vpsrldq $8,%zmm26,%zmm0 + vpslldq $8,%zmm26,%zmm3 + vpxorq %zmm0,%zmm24,%zmm24 + vpxorq %zmm3,%zmm25,%zmm25 + vextracti64x4 $1,%zmm24,%ymm0 + vpxorq %ymm0,%ymm24,%ymm24 + vextracti32x4 $1,%ymm24,%xmm0 + vpxorq %xmm0,%xmm24,%xmm24 + vextracti64x4 $1,%zmm25,%ymm3 + vpxorq %ymm3,%ymm25,%ymm25 + vextracti32x4 $1,%ymm25,%xmm3 + vpxorq %xmm3,%xmm25,%xmm25 + vmovdqa64 POLY2(%rip),%xmm4 + + + vpclmulqdq $0x01,%xmm25,%xmm4,%xmm0 + vpslldq $8,%xmm0,%xmm0 + vpxorq %xmm0,%xmm25,%xmm0 + + + vpclmulqdq $0x00,%xmm0,%xmm4,%xmm3 + vpsrldq $4,%xmm3,%xmm3 + vpclmulqdq $0x10,%xmm0,%xmm4,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm24,%xmm3,%xmm14 + +L$_last_blocks_done_343: + vpshufb %xmm29,%xmm2,%xmm2 + jmp L$_ghash_done_334 +L$_encrypt_32_blocks_334: + cmpb $240,%r15b + jae L$_16_blocks_overflow_376 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp L$_16_blocks_ok_376 +L$_16_blocks_overflow_376: + vpshufb %zmm29,%zmm2,%zmm2 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +L$_16_blocks_ok_376: + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp),%zmm1 + + + + + vshufi64x2 $255,%zmm5,%zmm5,%zmm2 + addb $16,%r15b + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + + + + + + + + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm6 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm6 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + + + + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%zmm21 + + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm15,%zmm10,%zmm26 + vpxorq %zmm12,%zmm6,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 192(%rdi),%zmm30 + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 208(%rdi),%zmm31 + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 224(%rdi),%zmm30 + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + + + + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + + + + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %zmm5,192(%r10,%r11,1) + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 + vmovdqa64 %zmm0,1280(%rsp) + vmovdqa64 %zmm3,1344(%rsp) + vmovdqa64 %zmm4,1408(%rsp) + vmovdqa64 %zmm5,1472(%rsp) + cmpb $240,%r15b + jae L$_16_blocks_overflow_377 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp L$_16_blocks_ok_377 +L$_16_blocks_overflow_377: + vpshufb %zmm29,%zmm2,%zmm2 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +L$_16_blocks_ok_377: + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 256(%rsp),%zmm1 + + + + + vshufi64x2 $255,%zmm5,%zmm5,%zmm2 + addb $16,%r15b + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 320(%rsp),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + + + + + + + + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm6 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 384(%rsp),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 448(%rsp),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm6 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + + + + vmovdqu8 256(%rcx,%r11,1),%zmm17 + vmovdqu8 320(%rcx,%r11,1),%zmm19 + vmovdqu8 384(%rcx,%r11,1),%zmm20 + vmovdqu8 448(%rcx,%r11,1),%zmm21 + + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vpternlogq $0x96,%zmm12,%zmm6,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 192(%rdi),%zmm30 + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 208(%rdi),%zmm31 + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 224(%rdi),%zmm30 + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + + + + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + + + + movq %r9,%r10 + vmovdqu8 %zmm0,256(%r10,%r11,1) + vmovdqu8 %zmm3,320(%r10,%r11,1) + vmovdqu8 %zmm4,384(%r10,%r11,1) + vmovdqu8 %zmm5,448(%r10,%r11,1) + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 + vmovdqa64 %zmm0,768(%rsp) + vmovdqa64 %zmm3,832(%rsp) + vmovdqa64 %zmm4,896(%rsp) + vmovdqa64 %zmm5,960(%rsp) + vmovdqa64 1280(%rsp),%zmm13 + vmovdqu64 512(%rsp),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 1344(%rsp),%zmm13 + vmovdqu64 576(%rsp),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + vpternlogq $0x96,%zmm10,%zmm4,%zmm26 + vpternlogq $0x96,%zmm6,%zmm0,%zmm24 + vpternlogq $0x96,%zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + vmovdqa64 1408(%rsp),%zmm13 + vmovdqu64 640(%rsp),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 1472(%rsp),%zmm13 + vmovdqu64 704(%rsp),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + + vpternlogq $0x96,%zmm10,%zmm4,%zmm26 + vpternlogq $0x96,%zmm6,%zmm0,%zmm24 + vpternlogq $0x96,%zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + + vpsrldq $8,%zmm26,%zmm0 + vpslldq $8,%zmm26,%zmm3 + vpxorq %zmm0,%zmm24,%zmm24 + vpxorq %zmm3,%zmm25,%zmm25 + vextracti64x4 $1,%zmm24,%ymm0 + vpxorq %ymm0,%ymm24,%ymm24 + vextracti32x4 $1,%ymm24,%xmm0 + vpxorq %xmm0,%xmm24,%xmm24 + vextracti64x4 $1,%zmm25,%ymm3 + vpxorq %ymm3,%ymm25,%ymm25 + vextracti32x4 $1,%ymm25,%xmm3 + vpxorq %xmm3,%xmm25,%xmm25 + vmovdqa64 POLY2(%rip),%xmm4 + + + vpclmulqdq $0x01,%xmm25,%xmm4,%xmm0 + vpslldq $8,%xmm0,%xmm0 + vpxorq %xmm0,%xmm25,%xmm0 + + + vpclmulqdq $0x00,%xmm0,%xmm4,%xmm3 + vpsrldq $4,%xmm3,%xmm3 + vpclmulqdq $0x10,%xmm0,%xmm4,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm24,%xmm3,%xmm14 + + subq $512,%r8 + addq $512,%r11 + movl %r8d,%r10d + andl $~15,%r10d + movl $512,%ebx + subl %r10d,%ebx + movl %r8d,%r10d + addl $15,%r10d + shrl $4,%r10d + je L$_last_num_blocks_is_0_378 + + cmpl $8,%r10d + je L$_last_num_blocks_is_8_378 + jb L$_last_num_blocks_is_7_1_378 + + + cmpl $12,%r10d + je L$_last_num_blocks_is_12_378 + jb L$_last_num_blocks_is_11_9_378 + + + cmpl $15,%r10d + je L$_last_num_blocks_is_15_378 + ja L$_last_num_blocks_is_16_378 + cmpl $14,%r10d + je L$_last_num_blocks_is_14_378 + jmp L$_last_num_blocks_is_13_378 + +L$_last_num_blocks_is_11_9_378: + + cmpl $10,%r10d + je L$_last_num_blocks_is_10_378 + ja L$_last_num_blocks_is_11_378 + jmp L$_last_num_blocks_is_9_378 + +L$_last_num_blocks_is_7_1_378: + cmpl $4,%r10d + je L$_last_num_blocks_is_4_378 + jb L$_last_num_blocks_is_3_1_378 + + cmpl $6,%r10d + ja L$_last_num_blocks_is_7_378 + je L$_last_num_blocks_is_6_378 + jmp L$_last_num_blocks_is_5_378 + +L$_last_num_blocks_is_3_1_378: + + cmpl $2,%r10d + ja L$_last_num_blocks_is_3_378 + je L$_last_num_blocks_is_2_378 +L$_last_num_blocks_is_1_378: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $255,%r15d + jae L$_16_blocks_overflow_379 + vpaddd %xmm28,%xmm2,%xmm0 + jmp L$_16_blocks_ok_379 + +L$_16_blocks_overflow_379: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %xmm29,%xmm0,%xmm0 +L$_16_blocks_ok_379: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $0,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%xmm17{%k1}{z} + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %xmm31,%xmm0,%xmm0 + vaesenclast %xmm30,%xmm0,%xmm0 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti32x4 $0,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %xmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm0,%zmm0{%k1}{z} + vpshufb %xmm29,%xmm0,%xmm17 + vextracti32x4 $0,%zmm17,%xmm7 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_380 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm17,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm17,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm17,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm17,%xmm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_380 +L$_small_initial_partial_block_380: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + + + vpsrldq $8,%zmm26,%zmm0 + vpslldq $8,%zmm26,%zmm3 + vpxorq %zmm0,%zmm24,%zmm24 + vpxorq %zmm3,%zmm25,%zmm25 + vextracti64x4 $1,%zmm24,%ymm0 + vpxorq %ymm0,%ymm24,%ymm24 + vextracti32x4 $1,%ymm24,%xmm0 + vpxorq %xmm0,%xmm24,%xmm24 + vextracti64x4 $1,%zmm25,%ymm3 + vpxorq %ymm3,%ymm25,%ymm25 + vextracti32x4 $1,%ymm25,%xmm3 + vpxorq %xmm3,%xmm25,%xmm25 + vmovdqa64 POLY2(%rip),%xmm0 + + + vpclmulqdq $0x01,%xmm25,%xmm0,%xmm3 + vpslldq $8,%xmm3,%xmm3 + vpxorq %xmm3,%xmm25,%xmm3 + + + vpclmulqdq $0x00,%xmm3,%xmm0,%xmm4 + vpsrldq $4,%xmm4,%xmm4 + vpclmulqdq $0x10,%xmm3,%xmm0,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm24,%xmm4,%xmm14 + + + + + + + + + + + + + vpxorq %xmm7,%xmm14,%xmm14 + + jmp L$_after_reduction_380 +L$_small_initial_compute_done_380: +L$_after_reduction_380: + jmp L$_last_blocks_done_378 +L$_last_num_blocks_is_2_378: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $254,%r15d + jae L$_16_blocks_overflow_381 + vpaddd %ymm28,%ymm2,%ymm0 + jmp L$_16_blocks_ok_381 + +L$_16_blocks_overflow_381: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %ymm29,%ymm0,%ymm0 +L$_16_blocks_ok_381: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $1,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%ymm17{%k1}{z} + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %ymm31,%ymm0,%ymm0 + vaesenclast %ymm30,%ymm0,%ymm0 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %ymm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm0,%zmm0{%k1}{z} + vpshufb %ymm29,%ymm0,%ymm17 + vextracti32x4 $1,%zmm17,%xmm7 + subq $16 * (2 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_382 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm17,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm17,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm17,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm17,%ymm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_382 +L$_small_initial_partial_block_382: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm17,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm17,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm17,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm17,%xmm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_382: + + orq %r8,%r8 + je L$_after_reduction_382 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_382: + jmp L$_last_blocks_done_378 +L$_last_num_blocks_is_3_378: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $253,%r15d + jae L$_16_blocks_overflow_383 + vpaddd %zmm28,%zmm2,%zmm0 + jmp L$_16_blocks_ok_383 + +L$_16_blocks_overflow_383: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %zmm29,%zmm0,%zmm0 +L$_16_blocks_ok_383: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $2,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm0,%zmm0 + vpxorq %zmm17,%zmm0,%zmm0 + vextracti32x4 $2,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm0,%zmm0{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vextracti32x4 $2,%zmm17,%xmm7 + subq $16 * (3 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_384 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_384 +L$_small_initial_partial_block_384: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm17,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm17,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm17,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm17,%ymm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_384: + + orq %r8,%r8 + je L$_after_reduction_384 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_384: + jmp L$_last_blocks_done_378 +L$_last_num_blocks_is_4_378: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $252,%r15d + jae L$_16_blocks_overflow_385 + vpaddd %zmm28,%zmm2,%zmm0 + jmp L$_16_blocks_ok_385 + +L$_16_blocks_overflow_385: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %zmm29,%zmm0,%zmm0 +L$_16_blocks_ok_385: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $3,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm0,%zmm0 + vpxorq %zmm17,%zmm0,%zmm0 + vextracti32x4 $3,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm0,%zmm0{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vextracti32x4 $3,%zmm17,%xmm7 + subq $16 * (4 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_386 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_386 +L$_small_initial_partial_block_386: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_386: + + orq %r8,%r8 + je L$_after_reduction_386 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_386: + jmp L$_last_blocks_done_378 +L$_last_num_blocks_is_5_378: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $251,%r15d + jae L$_16_blocks_overflow_387 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %xmm27,%xmm0,%xmm3 + jmp L$_16_blocks_ok_387 + +L$_16_blocks_overflow_387: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %xmm29,%xmm3,%xmm3 +L$_16_blocks_ok_387: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $0,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%xmm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %xmm30,%xmm3,%xmm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %xmm19,%xmm3,%xmm3 + vextracti32x4 $0,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %xmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm3,%zmm3{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %xmm29,%xmm3,%xmm19 + vextracti32x4 $0,%zmm19,%xmm7 + subq $16 * (5 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_388 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm19,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm19,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm19,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm19,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_388 +L$_small_initial_partial_block_388: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_388: + + orq %r8,%r8 + je L$_after_reduction_388 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_388: + jmp L$_last_blocks_done_378 +L$_last_num_blocks_is_6_378: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $250,%r15d + jae L$_16_blocks_overflow_389 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %ymm27,%ymm0,%ymm3 + jmp L$_16_blocks_ok_389 + +L$_16_blocks_overflow_389: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %ymm29,%ymm3,%ymm3 +L$_16_blocks_ok_389: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $1,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%ymm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %ymm30,%ymm3,%ymm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %ymm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm3,%zmm3{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %ymm29,%ymm3,%ymm19 + vextracti32x4 $1,%zmm19,%xmm7 + subq $16 * (6 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_390 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm19,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm19,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm19,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm19,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_390 +L$_small_initial_partial_block_390: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm19,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm19,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm19,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm19,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_390: + + orq %r8,%r8 + je L$_after_reduction_390 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_390: + jmp L$_last_blocks_done_378 +L$_last_num_blocks_is_7_378: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $249,%r15d + jae L$_16_blocks_overflow_391 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + jmp L$_16_blocks_ok_391 + +L$_16_blocks_overflow_391: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 +L$_16_blocks_ok_391: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $2,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti32x4 $2,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm3,%zmm3{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vextracti32x4 $2,%zmm19,%xmm7 + subq $16 * (7 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_392 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_392 +L$_small_initial_partial_block_392: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm19,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm19,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm19,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm19,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_392: + + orq %r8,%r8 + je L$_after_reduction_392 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_392: + jmp L$_last_blocks_done_378 +L$_last_num_blocks_is_8_378: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $248,%r15d + jae L$_16_blocks_overflow_393 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + jmp L$_16_blocks_ok_393 + +L$_16_blocks_overflow_393: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 +L$_16_blocks_ok_393: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $3,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti32x4 $3,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm3,%zmm3{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vextracti32x4 $3,%zmm19,%xmm7 + subq $16 * (8 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_394 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_394 +L$_small_initial_partial_block_394: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_394: + + orq %r8,%r8 + je L$_after_reduction_394 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_394: + jmp L$_last_blocks_done_378 +L$_last_num_blocks_is_9_378: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $247,%r15d + jae L$_16_blocks_overflow_395 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %xmm27,%xmm3,%xmm4 + jmp L$_16_blocks_ok_395 + +L$_16_blocks_overflow_395: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %xmm29,%xmm4,%xmm4 +L$_16_blocks_ok_395: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $0,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%xmm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %xmm30,%xmm4,%xmm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %xmm20,%xmm4,%xmm4 + vextracti32x4 $0,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %xmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm4,%zmm4{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %xmm29,%xmm4,%xmm20 + vextracti32x4 $0,%zmm20,%xmm7 + subq $16 * (9 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_396 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm20,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm20,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm20,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm20,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_396 +L$_small_initial_partial_block_396: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_396: + + orq %r8,%r8 + je L$_after_reduction_396 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_396: + jmp L$_last_blocks_done_378 +L$_last_num_blocks_is_10_378: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $246,%r15d + jae L$_16_blocks_overflow_397 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %ymm27,%ymm3,%ymm4 + jmp L$_16_blocks_ok_397 + +L$_16_blocks_overflow_397: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %ymm29,%ymm4,%ymm4 +L$_16_blocks_ok_397: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $1,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%ymm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %ymm30,%ymm4,%ymm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %ymm20,%ymm4,%ymm4 + vextracti32x4 $1,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %ymm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm4,%zmm4{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %ymm29,%ymm4,%ymm20 + vextracti32x4 $1,%zmm20,%xmm7 + subq $16 * (10 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_398 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm20,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm20,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm20,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm20,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_398 +L$_small_initial_partial_block_398: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm20,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm20,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm20,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm20,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_398: + + orq %r8,%r8 + je L$_after_reduction_398 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_398: + jmp L$_last_blocks_done_378 +L$_last_num_blocks_is_11_378: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $245,%r15d + jae L$_16_blocks_overflow_399 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + jmp L$_16_blocks_ok_399 + +L$_16_blocks_overflow_399: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 +L$_16_blocks_ok_399: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $2,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vextracti32x4 $2,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm4,%zmm4{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %zmm29,%zmm4,%zmm20 + vextracti32x4 $2,%zmm20,%xmm7 + subq $16 * (11 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_400 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_400 +L$_small_initial_partial_block_400: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm20,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm20,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm20,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm20,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_400: + + orq %r8,%r8 + je L$_after_reduction_400 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_400: + jmp L$_last_blocks_done_378 +L$_last_num_blocks_is_12_378: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $244,%r15d + jae L$_16_blocks_overflow_401 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + jmp L$_16_blocks_ok_401 + +L$_16_blocks_overflow_401: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 +L$_16_blocks_ok_401: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $3,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vextracti32x4 $3,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm4,%zmm4{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %zmm29,%zmm4,%zmm20 + vextracti32x4 $3,%zmm20,%xmm7 + subq $16 * (12 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_402 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 160(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_402 +L$_small_initial_partial_block_402: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_402: + + orq %r8,%r8 + je L$_after_reduction_402 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_402: + jmp L$_last_blocks_done_378 +L$_last_num_blocks_is_13_378: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $243,%r15d + jae L$_16_blocks_overflow_403 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %xmm27,%xmm4,%xmm5 + jmp L$_16_blocks_ok_403 + +L$_16_blocks_overflow_403: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %xmm29,%xmm5,%xmm5 +L$_16_blocks_ok_403: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $0,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%xmm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %xmm30,%xmm5,%xmm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %xmm21,%xmm5,%xmm5 + vextracti32x4 $0,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %xmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm5,%zmm5{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %zmm29,%zmm4,%zmm20 + vpshufb %xmm29,%xmm5,%xmm21 + vextracti32x4 $0,%zmm21,%xmm7 + subq $16 * (13 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_404 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 144(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm21,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm21,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm21,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm21,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_404 +L$_small_initial_partial_block_404: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 160(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_404: + + orq %r8,%r8 + je L$_after_reduction_404 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_404: + jmp L$_last_blocks_done_378 +L$_last_num_blocks_is_14_378: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $242,%r15d + jae L$_16_blocks_overflow_405 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %ymm27,%ymm4,%ymm5 + jmp L$_16_blocks_ok_405 + +L$_16_blocks_overflow_405: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %ymm29,%ymm5,%ymm5 +L$_16_blocks_ok_405: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $1,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%ymm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %ymm30,%ymm5,%ymm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %ymm21,%ymm5,%ymm5 + vextracti32x4 $1,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %ymm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm5,%zmm5{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %zmm29,%zmm4,%zmm20 + vpshufb %ymm29,%ymm5,%ymm21 + vextracti32x4 $1,%zmm21,%xmm7 + subq $16 * (14 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_406 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 128(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm21,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm21,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm21,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm21,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_406 +L$_small_initial_partial_block_406: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 144(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm21,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm21,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm21,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm21,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_406: + + orq %r8,%r8 + je L$_after_reduction_406 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_406: + jmp L$_last_blocks_done_378 +L$_last_num_blocks_is_15_378: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $241,%r15d + jae L$_16_blocks_overflow_407 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp L$_16_blocks_ok_407 + +L$_16_blocks_overflow_407: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +L$_16_blocks_ok_407: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $2,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%zmm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + vextracti32x4 $2,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %zmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm5,%zmm5{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %zmm29,%zmm4,%zmm20 + vpshufb %zmm29,%zmm5,%zmm21 + vextracti32x4 $2,%zmm21,%xmm7 + subq $16 * (15 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_408 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 112(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm21,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm21,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm21,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm21,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_408 +L$_small_initial_partial_block_408: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 128(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm21,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm21,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm21,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm21,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_408: + + orq %r8,%r8 + je L$_after_reduction_408 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_408: + jmp L$_last_blocks_done_378 +L$_last_num_blocks_is_16_378: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $240,%r15d + jae L$_16_blocks_overflow_409 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp L$_16_blocks_ok_409 + +L$_16_blocks_overflow_409: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +L$_16_blocks_ok_409: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $3,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%zmm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + vextracti32x4 $3,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %zmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm5,%zmm5{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %zmm29,%zmm4,%zmm20 + vpshufb %zmm29,%zmm5,%zmm21 + vextracti32x4 $3,%zmm21,%xmm7 + subq $16 * (16 - 1),%r8 +L$_small_initial_partial_block_410: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 112(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm21,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm21,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm21,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm21,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_410: + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_410: + jmp L$_last_blocks_done_378 +L$_last_num_blocks_is_0_378: + vmovdqa64 768(%rsp),%zmm13 + vpxorq %zmm14,%zmm13,%zmm13 + vmovdqu64 0(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 832(%rsp),%zmm13 + vmovdqu64 64(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + vpxorq %zmm10,%zmm4,%zmm26 + vpxorq %zmm6,%zmm0,%zmm24 + vpxorq %zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + vmovdqa64 896(%rsp),%zmm13 + vmovdqu64 128(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 960(%rsp),%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + + vpternlogq $0x96,%zmm10,%zmm4,%zmm26 + vpternlogq $0x96,%zmm6,%zmm0,%zmm24 + vpternlogq $0x96,%zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + + vpsrldq $8,%zmm26,%zmm0 + vpslldq $8,%zmm26,%zmm3 + vpxorq %zmm0,%zmm24,%zmm24 + vpxorq %zmm3,%zmm25,%zmm25 + vextracti64x4 $1,%zmm24,%ymm0 + vpxorq %ymm0,%ymm24,%ymm24 + vextracti32x4 $1,%ymm24,%xmm0 + vpxorq %xmm0,%xmm24,%xmm24 + vextracti64x4 $1,%zmm25,%ymm3 + vpxorq %ymm3,%ymm25,%ymm25 + vextracti32x4 $1,%ymm25,%xmm3 + vpxorq %xmm3,%xmm25,%xmm25 + vmovdqa64 POLY2(%rip),%xmm4 + + + vpclmulqdq $0x01,%xmm25,%xmm4,%xmm0 + vpslldq $8,%xmm0,%xmm0 + vpxorq %xmm0,%xmm25,%xmm0 + + + vpclmulqdq $0x00,%xmm0,%xmm4,%xmm3 + vpsrldq $4,%xmm3,%xmm3 + vpclmulqdq $0x10,%xmm0,%xmm4,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm24,%xmm3,%xmm14 + +L$_last_blocks_done_378: + vpshufb %xmm29,%xmm2,%xmm2 + jmp L$_ghash_done_334 +L$_encrypt_16_blocks_334: + cmpb $240,%r15b + jae L$_16_blocks_overflow_411 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp L$_16_blocks_ok_411 +L$_16_blocks_overflow_411: + vpshufb %zmm29,%zmm2,%zmm2 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +L$_16_blocks_ok_411: + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp),%zmm1 + + + + + vshufi64x2 $255,%zmm5,%zmm5,%zmm2 + addb $16,%r15b + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + + + + + + + + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm6 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm6 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + + + + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%zmm21 + + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm15,%zmm10,%zmm26 + vpxorq %zmm12,%zmm6,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 192(%rdi),%zmm30 + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 208(%rdi),%zmm31 + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 224(%rdi),%zmm30 + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + + + + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + + + + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %zmm5,192(%r10,%r11,1) + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 + vmovdqa64 %zmm0,1280(%rsp) + vmovdqa64 %zmm3,1344(%rsp) + vmovdqa64 %zmm4,1408(%rsp) + vmovdqa64 %zmm5,1472(%rsp) + vmovdqa64 1024(%rsp),%zmm13 + vmovdqu64 256(%rsp),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 1088(%rsp),%zmm13 + vmovdqu64 320(%rsp),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + vpternlogq $0x96,%zmm10,%zmm4,%zmm26 + vpternlogq $0x96,%zmm6,%zmm0,%zmm24 + vpternlogq $0x96,%zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + vmovdqa64 1152(%rsp),%zmm13 + vmovdqu64 384(%rsp),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 1216(%rsp),%zmm13 + vmovdqu64 448(%rsp),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + + vpternlogq $0x96,%zmm10,%zmm4,%zmm26 + vpternlogq $0x96,%zmm6,%zmm0,%zmm24 + vpternlogq $0x96,%zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + subq $256,%r8 + addq $256,%r11 + movl %r8d,%r10d + addl $15,%r10d + shrl $4,%r10d + je L$_last_num_blocks_is_0_412 + + cmpl $8,%r10d + je L$_last_num_blocks_is_8_412 + jb L$_last_num_blocks_is_7_1_412 + + + cmpl $12,%r10d + je L$_last_num_blocks_is_12_412 + jb L$_last_num_blocks_is_11_9_412 + + + cmpl $15,%r10d + je L$_last_num_blocks_is_15_412 + ja L$_last_num_blocks_is_16_412 + cmpl $14,%r10d + je L$_last_num_blocks_is_14_412 + jmp L$_last_num_blocks_is_13_412 + +L$_last_num_blocks_is_11_9_412: + + cmpl $10,%r10d + je L$_last_num_blocks_is_10_412 + ja L$_last_num_blocks_is_11_412 + jmp L$_last_num_blocks_is_9_412 + +L$_last_num_blocks_is_7_1_412: + cmpl $4,%r10d + je L$_last_num_blocks_is_4_412 + jb L$_last_num_blocks_is_3_1_412 + + cmpl $6,%r10d + ja L$_last_num_blocks_is_7_412 + je L$_last_num_blocks_is_6_412 + jmp L$_last_num_blocks_is_5_412 + +L$_last_num_blocks_is_3_1_412: + + cmpl $2,%r10d + ja L$_last_num_blocks_is_3_412 + je L$_last_num_blocks_is_2_412 +L$_last_num_blocks_is_1_412: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $255,%r15d + jae L$_16_blocks_overflow_413 + vpaddd %xmm28,%xmm2,%xmm0 + jmp L$_16_blocks_ok_413 + +L$_16_blocks_overflow_413: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %xmm29,%xmm0,%xmm0 +L$_16_blocks_ok_413: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $0,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%xmm17{%k1}{z} + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %xmm31,%xmm0,%xmm0 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vbroadcastf64x2 176(%rdi),%zmm31 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %xmm31,%xmm0,%xmm0 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %xmm30,%xmm0,%xmm0 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti32x4 $0,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %xmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm0,%zmm0{%k1}{z} + vpshufb %xmm29,%xmm0,%xmm17 + vextracti32x4 $0,%zmm17,%xmm7 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_414 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm17,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm17,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm17,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm17,%xmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_414 +L$_small_initial_partial_block_414: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + + + + + + + + + + + + vpxorq %xmm7,%xmm14,%xmm14 + + jmp L$_after_reduction_414 +L$_small_initial_compute_done_414: +L$_after_reduction_414: + jmp L$_last_blocks_done_412 +L$_last_num_blocks_is_2_412: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $254,%r15d + jae L$_16_blocks_overflow_415 + vpaddd %ymm28,%ymm2,%ymm0 + jmp L$_16_blocks_ok_415 + +L$_16_blocks_overflow_415: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %ymm29,%ymm0,%ymm0 +L$_16_blocks_ok_415: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $1,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%ymm17{%k1}{z} + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %ymm31,%ymm0,%ymm0 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vbroadcastf64x2 176(%rdi),%zmm31 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %ymm31,%ymm0,%ymm0 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %ymm30,%ymm0,%ymm0 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %ymm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm0,%zmm0{%k1}{z} + vpshufb %ymm29,%ymm0,%ymm17 + vextracti32x4 $1,%zmm17,%xmm7 + subq $16 * (2 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_416 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm17,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm17,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm17,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm17,%ymm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_416 +L$_small_initial_partial_block_416: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm17,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm17,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm17,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm17,%xmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_416: + + orq %r8,%r8 + je L$_after_reduction_416 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_416: + jmp L$_last_blocks_done_412 +L$_last_num_blocks_is_3_412: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $253,%r15d + jae L$_16_blocks_overflow_417 + vpaddd %zmm28,%zmm2,%zmm0 + jmp L$_16_blocks_ok_417 + +L$_16_blocks_overflow_417: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %zmm29,%zmm0,%zmm0 +L$_16_blocks_ok_417: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $2,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vbroadcastf64x2 176(%rdi),%zmm31 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vpxorq %zmm17,%zmm0,%zmm0 + vextracti32x4 $2,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm0,%zmm0{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vextracti32x4 $2,%zmm17,%xmm7 + subq $16 * (3 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_418 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_418 +L$_small_initial_partial_block_418: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm17,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm17,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm17,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm17,%ymm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_418: + + orq %r8,%r8 + je L$_after_reduction_418 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_418: + jmp L$_last_blocks_done_412 +L$_last_num_blocks_is_4_412: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $252,%r15d + jae L$_16_blocks_overflow_419 + vpaddd %zmm28,%zmm2,%zmm0 + jmp L$_16_blocks_ok_419 + +L$_16_blocks_overflow_419: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %zmm29,%zmm0,%zmm0 +L$_16_blocks_ok_419: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $3,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vbroadcastf64x2 176(%rdi),%zmm31 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vpxorq %zmm17,%zmm0,%zmm0 + vextracti32x4 $3,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm0,%zmm0{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vextracti32x4 $3,%zmm17,%xmm7 + subq $16 * (4 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_420 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_420 +L$_small_initial_partial_block_420: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_420: + + orq %r8,%r8 + je L$_after_reduction_420 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_420: + jmp L$_last_blocks_done_412 +L$_last_num_blocks_is_5_412: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $251,%r15d + jae L$_16_blocks_overflow_421 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %xmm27,%xmm0,%xmm3 + jmp L$_16_blocks_ok_421 + +L$_16_blocks_overflow_421: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %xmm29,%xmm3,%xmm3 +L$_16_blocks_ok_421: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $0,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%xmm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vbroadcastf64x2 176(%rdi),%zmm31 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %xmm30,%xmm3,%xmm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %xmm19,%xmm3,%xmm3 + vextracti32x4 $0,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %xmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm3,%zmm3{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %xmm29,%xmm3,%xmm19 + vextracti32x4 $0,%zmm19,%xmm7 + subq $16 * (5 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_422 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm19,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm19,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm19,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm19,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_422 +L$_small_initial_partial_block_422: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_422: + + orq %r8,%r8 + je L$_after_reduction_422 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_422: + jmp L$_last_blocks_done_412 +L$_last_num_blocks_is_6_412: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $250,%r15d + jae L$_16_blocks_overflow_423 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %ymm27,%ymm0,%ymm3 + jmp L$_16_blocks_ok_423 + +L$_16_blocks_overflow_423: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %ymm29,%ymm3,%ymm3 +L$_16_blocks_ok_423: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $1,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%ymm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vbroadcastf64x2 176(%rdi),%zmm31 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %ymm30,%ymm3,%ymm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %ymm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm3,%zmm3{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %ymm29,%ymm3,%ymm19 + vextracti32x4 $1,%zmm19,%xmm7 + subq $16 * (6 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_424 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm19,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm19,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm19,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm19,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_424 +L$_small_initial_partial_block_424: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm19,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm19,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm19,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm19,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_424: + + orq %r8,%r8 + je L$_after_reduction_424 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_424: + jmp L$_last_blocks_done_412 +L$_last_num_blocks_is_7_412: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $249,%r15d + jae L$_16_blocks_overflow_425 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + jmp L$_16_blocks_ok_425 + +L$_16_blocks_overflow_425: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 +L$_16_blocks_ok_425: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $2,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vbroadcastf64x2 176(%rdi),%zmm31 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti32x4 $2,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm3,%zmm3{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vextracti32x4 $2,%zmm19,%xmm7 + subq $16 * (7 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_426 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_426 +L$_small_initial_partial_block_426: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm19,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm19,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm19,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm19,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_426: + + orq %r8,%r8 + je L$_after_reduction_426 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_426: + jmp L$_last_blocks_done_412 +L$_last_num_blocks_is_8_412: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $248,%r15d + jae L$_16_blocks_overflow_427 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + jmp L$_16_blocks_ok_427 + +L$_16_blocks_overflow_427: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 +L$_16_blocks_ok_427: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $3,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vbroadcastf64x2 176(%rdi),%zmm31 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti32x4 $3,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm3,%zmm3{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vextracti32x4 $3,%zmm19,%xmm7 + subq $16 * (8 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_428 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_428 +L$_small_initial_partial_block_428: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_428: + + orq %r8,%r8 + je L$_after_reduction_428 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_428: + jmp L$_last_blocks_done_412 +L$_last_num_blocks_is_9_412: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $247,%r15d + jae L$_16_blocks_overflow_429 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %xmm27,%xmm3,%xmm4 + jmp L$_16_blocks_ok_429 + +L$_16_blocks_overflow_429: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %xmm29,%xmm4,%xmm4 +L$_16_blocks_ok_429: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $0,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%xmm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vbroadcastf64x2 176(%rdi),%zmm31 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %xmm30,%xmm4,%xmm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %xmm20,%xmm4,%xmm4 + vextracti32x4 $0,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %xmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm4,%zmm4{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %xmm29,%xmm4,%xmm20 + vextracti32x4 $0,%zmm20,%xmm7 + subq $16 * (9 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_430 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm20,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm20,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm20,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm20,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_430 +L$_small_initial_partial_block_430: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_430: + + orq %r8,%r8 + je L$_after_reduction_430 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_430: + jmp L$_last_blocks_done_412 +L$_last_num_blocks_is_10_412: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $246,%r15d + jae L$_16_blocks_overflow_431 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %ymm27,%ymm3,%ymm4 + jmp L$_16_blocks_ok_431 + +L$_16_blocks_overflow_431: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %ymm29,%ymm4,%ymm4 +L$_16_blocks_ok_431: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $1,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%ymm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vbroadcastf64x2 176(%rdi),%zmm31 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %ymm30,%ymm4,%ymm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %ymm20,%ymm4,%ymm4 + vextracti32x4 $1,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %ymm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm4,%zmm4{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %ymm29,%ymm4,%ymm20 + vextracti32x4 $1,%zmm20,%xmm7 + subq $16 * (10 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_432 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm20,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm20,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm20,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm20,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_432 +L$_small_initial_partial_block_432: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm20,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm20,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm20,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm20,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_432: + + orq %r8,%r8 + je L$_after_reduction_432 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_432: + jmp L$_last_blocks_done_412 +L$_last_num_blocks_is_11_412: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $245,%r15d + jae L$_16_blocks_overflow_433 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + jmp L$_16_blocks_ok_433 + +L$_16_blocks_overflow_433: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 +L$_16_blocks_ok_433: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $2,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vbroadcastf64x2 176(%rdi),%zmm31 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vextracti32x4 $2,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm4,%zmm4{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %zmm29,%zmm4,%zmm20 + vextracti32x4 $2,%zmm20,%xmm7 + subq $16 * (11 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_434 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_434 +L$_small_initial_partial_block_434: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm20,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm20,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm20,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm20,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_434: + + orq %r8,%r8 + je L$_after_reduction_434 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_434: + jmp L$_last_blocks_done_412 +L$_last_num_blocks_is_12_412: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $244,%r15d + jae L$_16_blocks_overflow_435 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + jmp L$_16_blocks_ok_435 + +L$_16_blocks_overflow_435: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 +L$_16_blocks_ok_435: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $3,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vbroadcastf64x2 176(%rdi),%zmm31 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vextracti32x4 $3,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm4,%zmm4{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %zmm29,%zmm4,%zmm20 + vextracti32x4 $3,%zmm20,%xmm7 + subq $16 * (12 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_436 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 160(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_436 +L$_small_initial_partial_block_436: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_436: + + orq %r8,%r8 + je L$_after_reduction_436 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_436: + jmp L$_last_blocks_done_412 +L$_last_num_blocks_is_13_412: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $243,%r15d + jae L$_16_blocks_overflow_437 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %xmm27,%xmm4,%xmm5 + jmp L$_16_blocks_ok_437 + +L$_16_blocks_overflow_437: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %xmm29,%xmm5,%xmm5 +L$_16_blocks_ok_437: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $0,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%xmm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vbroadcastf64x2 176(%rdi),%zmm31 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %xmm30,%xmm5,%xmm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %xmm21,%xmm5,%xmm5 + vextracti32x4 $0,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %xmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm5,%zmm5{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %zmm29,%zmm4,%zmm20 + vpshufb %xmm29,%xmm5,%xmm21 + vextracti32x4 $0,%zmm21,%xmm7 + subq $16 * (13 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_438 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 144(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm21,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm21,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm21,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm21,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_438 +L$_small_initial_partial_block_438: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 160(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_438: + + orq %r8,%r8 + je L$_after_reduction_438 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_438: + jmp L$_last_blocks_done_412 +L$_last_num_blocks_is_14_412: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $242,%r15d + jae L$_16_blocks_overflow_439 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %ymm27,%ymm4,%ymm5 + jmp L$_16_blocks_ok_439 + +L$_16_blocks_overflow_439: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %ymm29,%ymm5,%ymm5 +L$_16_blocks_ok_439: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $1,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%ymm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vbroadcastf64x2 176(%rdi),%zmm31 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %ymm30,%ymm5,%ymm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %ymm21,%ymm5,%ymm5 + vextracti32x4 $1,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %ymm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm5,%zmm5{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %zmm29,%zmm4,%zmm20 + vpshufb %ymm29,%ymm5,%ymm21 + vextracti32x4 $1,%zmm21,%xmm7 + subq $16 * (14 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_440 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 128(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm21,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm21,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm21,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm21,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_440 +L$_small_initial_partial_block_440: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 144(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm21,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm21,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm21,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm21,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_440: + + orq %r8,%r8 + je L$_after_reduction_440 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_440: + jmp L$_last_blocks_done_412 +L$_last_num_blocks_is_15_412: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $241,%r15d + jae L$_16_blocks_overflow_441 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp L$_16_blocks_ok_441 + +L$_16_blocks_overflow_441: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +L$_16_blocks_ok_441: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $2,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%zmm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vbroadcastf64x2 176(%rdi),%zmm31 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + vextracti32x4 $2,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %zmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm5,%zmm5{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %zmm29,%zmm4,%zmm20 + vpshufb %zmm29,%zmm5,%zmm21 + vextracti32x4 $2,%zmm21,%xmm7 + subq $16 * (15 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_442 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 112(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm21,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm21,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm21,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm21,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_442 +L$_small_initial_partial_block_442: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 128(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm21,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm21,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm21,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm21,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_442: + + orq %r8,%r8 + je L$_after_reduction_442 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_442: + jmp L$_last_blocks_done_412 +L$_last_num_blocks_is_16_412: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $240,%r15d + jae L$_16_blocks_overflow_443 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp L$_16_blocks_ok_443 + +L$_16_blocks_overflow_443: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +L$_16_blocks_ok_443: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $3,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%zmm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vbroadcastf64x2 176(%rdi),%zmm31 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + vextracti32x4 $3,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %zmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm5,%zmm5{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %zmm29,%zmm4,%zmm20 + vpshufb %zmm29,%zmm5,%zmm21 + vextracti32x4 $3,%zmm21,%xmm7 + subq $16 * (16 - 1),%r8 +L$_small_initial_partial_block_444: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 112(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm21,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm21,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm21,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm21,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_444: + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_444: + jmp L$_last_blocks_done_412 +L$_last_num_blocks_is_0_412: + vmovdqa64 1280(%rsp),%zmm13 + vmovdqu64 512(%rsp),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 1344(%rsp),%zmm13 + vmovdqu64 576(%rsp),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + vpternlogq $0x96,%zmm10,%zmm4,%zmm26 + vpternlogq $0x96,%zmm6,%zmm0,%zmm24 + vpternlogq $0x96,%zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + vmovdqa64 1408(%rsp),%zmm13 + vmovdqu64 640(%rsp),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 1472(%rsp),%zmm13 + vmovdqu64 704(%rsp),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + + vpternlogq $0x96,%zmm10,%zmm4,%zmm26 + vpternlogq $0x96,%zmm6,%zmm0,%zmm24 + vpternlogq $0x96,%zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + + vpsrldq $8,%zmm26,%zmm0 + vpslldq $8,%zmm26,%zmm3 + vpxorq %zmm0,%zmm24,%zmm24 + vpxorq %zmm3,%zmm25,%zmm25 + vextracti64x4 $1,%zmm24,%ymm0 + vpxorq %ymm0,%ymm24,%ymm24 + vextracti32x4 $1,%ymm24,%xmm0 + vpxorq %xmm0,%xmm24,%xmm24 + vextracti64x4 $1,%zmm25,%ymm3 + vpxorq %ymm3,%ymm25,%ymm25 + vextracti32x4 $1,%ymm25,%xmm3 + vpxorq %xmm3,%xmm25,%xmm25 + vmovdqa64 POLY2(%rip),%xmm4 + + + vpclmulqdq $0x01,%xmm25,%xmm4,%xmm0 + vpslldq $8,%xmm0,%xmm0 + vpxorq %xmm0,%xmm25,%xmm0 + + + vpclmulqdq $0x00,%xmm0,%xmm4,%xmm3 + vpsrldq $4,%xmm3,%xmm3 + vpclmulqdq $0x10,%xmm0,%xmm4,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm24,%xmm3,%xmm14 + +L$_last_blocks_done_412: + vpshufb %xmm29,%xmm2,%xmm2 + jmp L$_ghash_done_334 + +L$_message_below_32_blocks_334: + + + subq $256,%r8 + addq $256,%r11 + movl %r8d,%r10d + testq %r14,%r14 + jnz L$_skip_hkeys_precomputation_445 + vmovdqu64 640(%rsp),%zmm3 + + + vshufi64x2 $0x00,%zmm3,%zmm3,%zmm3 + + vmovdqu64 576(%rsp),%zmm4 + vmovdqu64 512(%rsp),%zmm5 + + vpclmulqdq $0x11,%zmm3,%zmm4,%zmm6 + vpclmulqdq $0x00,%zmm3,%zmm4,%zmm7 + vpclmulqdq $0x01,%zmm3,%zmm4,%zmm10 + vpclmulqdq $0x10,%zmm3,%zmm4,%zmm4 + vpxorq %zmm10,%zmm4,%zmm4 + + vpsrldq $8,%zmm4,%zmm10 + vpslldq $8,%zmm4,%zmm4 + vpxorq %zmm10,%zmm6,%zmm6 + vpxorq %zmm7,%zmm4,%zmm4 + + + + vmovdqu64 POLY2(%rip),%zmm10 + + vpclmulqdq $0x01,%zmm4,%zmm10,%zmm7 + vpslldq $8,%zmm7,%zmm7 + vpxorq %zmm7,%zmm4,%zmm4 + + + + vpclmulqdq $0x00,%zmm4,%zmm10,%zmm7 + vpsrldq $4,%zmm7,%zmm7 + vpclmulqdq $0x10,%zmm4,%zmm10,%zmm4 + vpslldq $4,%zmm4,%zmm4 + + vpternlogq $0x96,%zmm7,%zmm6,%zmm4 + + vmovdqu64 %zmm4,448(%rsp) + + vpclmulqdq $0x11,%zmm3,%zmm5,%zmm6 + vpclmulqdq $0x00,%zmm3,%zmm5,%zmm7 + vpclmulqdq $0x01,%zmm3,%zmm5,%zmm10 + vpclmulqdq $0x10,%zmm3,%zmm5,%zmm5 + vpxorq %zmm10,%zmm5,%zmm5 + + vpsrldq $8,%zmm5,%zmm10 + vpslldq $8,%zmm5,%zmm5 + vpxorq %zmm10,%zmm6,%zmm6 + vpxorq %zmm7,%zmm5,%zmm5 + + + + vmovdqu64 POLY2(%rip),%zmm10 + + vpclmulqdq $0x01,%zmm5,%zmm10,%zmm7 + vpslldq $8,%zmm7,%zmm7 + vpxorq %zmm7,%zmm5,%zmm5 + + + + vpclmulqdq $0x00,%zmm5,%zmm10,%zmm7 + vpsrldq $4,%zmm7,%zmm7 + vpclmulqdq $0x10,%zmm5,%zmm10,%zmm5 + vpslldq $4,%zmm5,%zmm5 + + vpternlogq $0x96,%zmm7,%zmm6,%zmm5 + + vmovdqu64 %zmm5,384(%rsp) + + vpclmulqdq $0x11,%zmm3,%zmm4,%zmm6 + vpclmulqdq $0x00,%zmm3,%zmm4,%zmm7 + vpclmulqdq $0x01,%zmm3,%zmm4,%zmm10 + vpclmulqdq $0x10,%zmm3,%zmm4,%zmm4 + vpxorq %zmm10,%zmm4,%zmm4 + + vpsrldq $8,%zmm4,%zmm10 + vpslldq $8,%zmm4,%zmm4 + vpxorq %zmm10,%zmm6,%zmm6 + vpxorq %zmm7,%zmm4,%zmm4 + + + + vmovdqu64 POLY2(%rip),%zmm10 + + vpclmulqdq $0x01,%zmm4,%zmm10,%zmm7 + vpslldq $8,%zmm7,%zmm7 + vpxorq %zmm7,%zmm4,%zmm4 + + + + vpclmulqdq $0x00,%zmm4,%zmm10,%zmm7 + vpsrldq $4,%zmm7,%zmm7 + vpclmulqdq $0x10,%zmm4,%zmm10,%zmm4 + vpslldq $4,%zmm4,%zmm4 + + vpternlogq $0x96,%zmm7,%zmm6,%zmm4 + + vmovdqu64 %zmm4,320(%rsp) + + vpclmulqdq $0x11,%zmm3,%zmm5,%zmm6 + vpclmulqdq $0x00,%zmm3,%zmm5,%zmm7 + vpclmulqdq $0x01,%zmm3,%zmm5,%zmm10 + vpclmulqdq $0x10,%zmm3,%zmm5,%zmm5 + vpxorq %zmm10,%zmm5,%zmm5 + + vpsrldq $8,%zmm5,%zmm10 + vpslldq $8,%zmm5,%zmm5 + vpxorq %zmm10,%zmm6,%zmm6 + vpxorq %zmm7,%zmm5,%zmm5 + + + + vmovdqu64 POLY2(%rip),%zmm10 + + vpclmulqdq $0x01,%zmm5,%zmm10,%zmm7 + vpslldq $8,%zmm7,%zmm7 + vpxorq %zmm7,%zmm5,%zmm5 + + + + vpclmulqdq $0x00,%zmm5,%zmm10,%zmm7 + vpsrldq $4,%zmm7,%zmm7 + vpclmulqdq $0x10,%zmm5,%zmm10,%zmm5 + vpslldq $4,%zmm5,%zmm5 + + vpternlogq $0x96,%zmm7,%zmm6,%zmm5 + + vmovdqu64 %zmm5,256(%rsp) +L$_skip_hkeys_precomputation_445: + movq $1,%r14 + andl $~15,%r10d + movl $512,%ebx + subl %r10d,%ebx + movl %r8d,%r10d + addl $15,%r10d + shrl $4,%r10d + je L$_last_num_blocks_is_0_446 + + cmpl $8,%r10d + je L$_last_num_blocks_is_8_446 + jb L$_last_num_blocks_is_7_1_446 + + + cmpl $12,%r10d + je L$_last_num_blocks_is_12_446 + jb L$_last_num_blocks_is_11_9_446 + + + cmpl $15,%r10d + je L$_last_num_blocks_is_15_446 + ja L$_last_num_blocks_is_16_446 + cmpl $14,%r10d + je L$_last_num_blocks_is_14_446 + jmp L$_last_num_blocks_is_13_446 + +L$_last_num_blocks_is_11_9_446: + + cmpl $10,%r10d + je L$_last_num_blocks_is_10_446 + ja L$_last_num_blocks_is_11_446 + jmp L$_last_num_blocks_is_9_446 + +L$_last_num_blocks_is_7_1_446: + cmpl $4,%r10d + je L$_last_num_blocks_is_4_446 + jb L$_last_num_blocks_is_3_1_446 + + cmpl $6,%r10d + ja L$_last_num_blocks_is_7_446 + je L$_last_num_blocks_is_6_446 + jmp L$_last_num_blocks_is_5_446 + +L$_last_num_blocks_is_3_1_446: + + cmpl $2,%r10d + ja L$_last_num_blocks_is_3_446 + je L$_last_num_blocks_is_2_446 +L$_last_num_blocks_is_1_446: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $255,%r15d + jae L$_16_blocks_overflow_447 + vpaddd %xmm28,%xmm2,%xmm0 + jmp L$_16_blocks_ok_447 + +L$_16_blocks_overflow_447: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %xmm29,%xmm0,%xmm0 +L$_16_blocks_ok_447: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $0,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%xmm17{%k1}{z} + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %xmm31,%xmm0,%xmm0 + vaesenclast %xmm30,%xmm0,%xmm0 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti32x4 $0,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %xmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm0,%zmm0{%k1}{z} + vpshufb %xmm29,%xmm0,%xmm17 + vextracti32x4 $0,%zmm17,%xmm7 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_448 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm17,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm17,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm17,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm17,%xmm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_448 +L$_small_initial_partial_block_448: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + + + vpsrldq $8,%zmm26,%zmm0 + vpslldq $8,%zmm26,%zmm3 + vpxorq %zmm0,%zmm24,%zmm24 + vpxorq %zmm3,%zmm25,%zmm25 + vextracti64x4 $1,%zmm24,%ymm0 + vpxorq %ymm0,%ymm24,%ymm24 + vextracti32x4 $1,%ymm24,%xmm0 + vpxorq %xmm0,%xmm24,%xmm24 + vextracti64x4 $1,%zmm25,%ymm3 + vpxorq %ymm3,%ymm25,%ymm25 + vextracti32x4 $1,%ymm25,%xmm3 + vpxorq %xmm3,%xmm25,%xmm25 + vmovdqa64 POLY2(%rip),%xmm0 + + + vpclmulqdq $0x01,%xmm25,%xmm0,%xmm3 + vpslldq $8,%xmm3,%xmm3 + vpxorq %xmm3,%xmm25,%xmm3 + + + vpclmulqdq $0x00,%xmm3,%xmm0,%xmm4 + vpsrldq $4,%xmm4,%xmm4 + vpclmulqdq $0x10,%xmm3,%xmm0,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm24,%xmm4,%xmm14 + + + + + + + + + + + + + vpxorq %xmm7,%xmm14,%xmm14 + + jmp L$_after_reduction_448 +L$_small_initial_compute_done_448: +L$_after_reduction_448: + jmp L$_last_blocks_done_446 +L$_last_num_blocks_is_2_446: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $254,%r15d + jae L$_16_blocks_overflow_449 + vpaddd %ymm28,%ymm2,%ymm0 + jmp L$_16_blocks_ok_449 + +L$_16_blocks_overflow_449: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %ymm29,%ymm0,%ymm0 +L$_16_blocks_ok_449: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $1,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%ymm17{%k1}{z} + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %ymm31,%ymm0,%ymm0 + vaesenclast %ymm30,%ymm0,%ymm0 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %ymm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm0,%zmm0{%k1}{z} + vpshufb %ymm29,%ymm0,%ymm17 + vextracti32x4 $1,%zmm17,%xmm7 + subq $16 * (2 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_450 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm17,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm17,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm17,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm17,%ymm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_450 +L$_small_initial_partial_block_450: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm17,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm17,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm17,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm17,%xmm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_450: + + orq %r8,%r8 + je L$_after_reduction_450 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_450: + jmp L$_last_blocks_done_446 +L$_last_num_blocks_is_3_446: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $253,%r15d + jae L$_16_blocks_overflow_451 + vpaddd %zmm28,%zmm2,%zmm0 + jmp L$_16_blocks_ok_451 + +L$_16_blocks_overflow_451: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %zmm29,%zmm0,%zmm0 +L$_16_blocks_ok_451: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $2,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm0,%zmm0 + vpxorq %zmm17,%zmm0,%zmm0 + vextracti32x4 $2,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm0,%zmm0{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vextracti32x4 $2,%zmm17,%xmm7 + subq $16 * (3 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_452 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_452 +L$_small_initial_partial_block_452: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm17,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm17,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm17,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm17,%ymm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_452: + + orq %r8,%r8 + je L$_after_reduction_452 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_452: + jmp L$_last_blocks_done_446 +L$_last_num_blocks_is_4_446: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $252,%r15d + jae L$_16_blocks_overflow_453 + vpaddd %zmm28,%zmm2,%zmm0 + jmp L$_16_blocks_ok_453 + +L$_16_blocks_overflow_453: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %zmm29,%zmm0,%zmm0 +L$_16_blocks_ok_453: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $3,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm0,%zmm0 + vpxorq %zmm17,%zmm0,%zmm0 + vextracti32x4 $3,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm0,%zmm0{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vextracti32x4 $3,%zmm17,%xmm7 + subq $16 * (4 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_454 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_454 +L$_small_initial_partial_block_454: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_454: + + orq %r8,%r8 + je L$_after_reduction_454 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_454: + jmp L$_last_blocks_done_446 +L$_last_num_blocks_is_5_446: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $251,%r15d + jae L$_16_blocks_overflow_455 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %xmm27,%xmm0,%xmm3 + jmp L$_16_blocks_ok_455 + +L$_16_blocks_overflow_455: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %xmm29,%xmm3,%xmm3 +L$_16_blocks_ok_455: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $0,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%xmm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %xmm30,%xmm3,%xmm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %xmm19,%xmm3,%xmm3 + vextracti32x4 $0,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %xmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm3,%zmm3{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %xmm29,%xmm3,%xmm19 + vextracti32x4 $0,%zmm19,%xmm7 + subq $16 * (5 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_456 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm19,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm19,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm19,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm19,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_456 +L$_small_initial_partial_block_456: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_456: + + orq %r8,%r8 + je L$_after_reduction_456 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_456: + jmp L$_last_blocks_done_446 +L$_last_num_blocks_is_6_446: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $250,%r15d + jae L$_16_blocks_overflow_457 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %ymm27,%ymm0,%ymm3 + jmp L$_16_blocks_ok_457 + +L$_16_blocks_overflow_457: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %ymm29,%ymm3,%ymm3 +L$_16_blocks_ok_457: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $1,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%ymm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %ymm30,%ymm3,%ymm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %ymm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm3,%zmm3{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %ymm29,%ymm3,%ymm19 + vextracti32x4 $1,%zmm19,%xmm7 + subq $16 * (6 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_458 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm19,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm19,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm19,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm19,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_458 +L$_small_initial_partial_block_458: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm19,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm19,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm19,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm19,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_458: + + orq %r8,%r8 + je L$_after_reduction_458 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_458: + jmp L$_last_blocks_done_446 +L$_last_num_blocks_is_7_446: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $249,%r15d + jae L$_16_blocks_overflow_459 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + jmp L$_16_blocks_ok_459 + +L$_16_blocks_overflow_459: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 +L$_16_blocks_ok_459: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $2,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti32x4 $2,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm3,%zmm3{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vextracti32x4 $2,%zmm19,%xmm7 + subq $16 * (7 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_460 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_460 +L$_small_initial_partial_block_460: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm19,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm19,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm19,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm19,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_460: + + orq %r8,%r8 + je L$_after_reduction_460 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_460: + jmp L$_last_blocks_done_446 +L$_last_num_blocks_is_8_446: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $248,%r15d + jae L$_16_blocks_overflow_461 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + jmp L$_16_blocks_ok_461 + +L$_16_blocks_overflow_461: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 +L$_16_blocks_ok_461: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $3,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti32x4 $3,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm3,%zmm3{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vextracti32x4 $3,%zmm19,%xmm7 + subq $16 * (8 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_462 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_462 +L$_small_initial_partial_block_462: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_462: + + orq %r8,%r8 + je L$_after_reduction_462 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_462: + jmp L$_last_blocks_done_446 +L$_last_num_blocks_is_9_446: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $247,%r15d + jae L$_16_blocks_overflow_463 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %xmm27,%xmm3,%xmm4 + jmp L$_16_blocks_ok_463 + +L$_16_blocks_overflow_463: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %xmm29,%xmm4,%xmm4 +L$_16_blocks_ok_463: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $0,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%xmm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %xmm30,%xmm4,%xmm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %xmm20,%xmm4,%xmm4 + vextracti32x4 $0,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %xmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm4,%zmm4{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %xmm29,%xmm4,%xmm20 + vextracti32x4 $0,%zmm20,%xmm7 + subq $16 * (9 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_464 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm20,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm20,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm20,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm20,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_464 +L$_small_initial_partial_block_464: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_464: + + orq %r8,%r8 + je L$_after_reduction_464 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_464: + jmp L$_last_blocks_done_446 +L$_last_num_blocks_is_10_446: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $246,%r15d + jae L$_16_blocks_overflow_465 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %ymm27,%ymm3,%ymm4 + jmp L$_16_blocks_ok_465 + +L$_16_blocks_overflow_465: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %ymm29,%ymm4,%ymm4 +L$_16_blocks_ok_465: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $1,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%ymm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %ymm30,%ymm4,%ymm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %ymm20,%ymm4,%ymm4 + vextracti32x4 $1,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %ymm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm4,%zmm4{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %ymm29,%ymm4,%ymm20 + vextracti32x4 $1,%zmm20,%xmm7 + subq $16 * (10 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_466 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm20,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm20,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm20,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm20,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_466 +L$_small_initial_partial_block_466: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm20,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm20,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm20,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm20,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_466: + + orq %r8,%r8 + je L$_after_reduction_466 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_466: + jmp L$_last_blocks_done_446 +L$_last_num_blocks_is_11_446: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $245,%r15d + jae L$_16_blocks_overflow_467 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + jmp L$_16_blocks_ok_467 + +L$_16_blocks_overflow_467: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 +L$_16_blocks_ok_467: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $2,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vextracti32x4 $2,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm4,%zmm4{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %zmm29,%zmm4,%zmm20 + vextracti32x4 $2,%zmm20,%xmm7 + subq $16 * (11 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_468 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_468 +L$_small_initial_partial_block_468: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm20,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm20,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm20,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm20,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_468: + + orq %r8,%r8 + je L$_after_reduction_468 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_468: + jmp L$_last_blocks_done_446 +L$_last_num_blocks_is_12_446: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $244,%r15d + jae L$_16_blocks_overflow_469 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + jmp L$_16_blocks_ok_469 + +L$_16_blocks_overflow_469: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 +L$_16_blocks_ok_469: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $3,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vextracti32x4 $3,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm4,%zmm4{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %zmm29,%zmm4,%zmm20 + vextracti32x4 $3,%zmm20,%xmm7 + subq $16 * (12 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_470 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 160(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_470 +L$_small_initial_partial_block_470: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_470: + + orq %r8,%r8 + je L$_after_reduction_470 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_470: + jmp L$_last_blocks_done_446 +L$_last_num_blocks_is_13_446: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $243,%r15d + jae L$_16_blocks_overflow_471 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %xmm27,%xmm4,%xmm5 + jmp L$_16_blocks_ok_471 + +L$_16_blocks_overflow_471: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %xmm29,%xmm5,%xmm5 +L$_16_blocks_ok_471: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $0,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%xmm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %xmm30,%xmm5,%xmm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %xmm21,%xmm5,%xmm5 + vextracti32x4 $0,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %xmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm5,%zmm5{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %zmm29,%zmm4,%zmm20 + vpshufb %xmm29,%xmm5,%xmm21 + vextracti32x4 $0,%zmm21,%xmm7 + subq $16 * (13 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_472 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 144(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm21,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm21,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm21,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm21,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_472 +L$_small_initial_partial_block_472: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 160(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_472: + + orq %r8,%r8 + je L$_after_reduction_472 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_472: + jmp L$_last_blocks_done_446 +L$_last_num_blocks_is_14_446: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $242,%r15d + jae L$_16_blocks_overflow_473 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %ymm27,%ymm4,%ymm5 + jmp L$_16_blocks_ok_473 + +L$_16_blocks_overflow_473: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %ymm29,%ymm5,%ymm5 +L$_16_blocks_ok_473: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $1,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%ymm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %ymm30,%ymm5,%ymm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %ymm21,%ymm5,%ymm5 + vextracti32x4 $1,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %ymm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm5,%zmm5{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %zmm29,%zmm4,%zmm20 + vpshufb %ymm29,%ymm5,%ymm21 + vextracti32x4 $1,%zmm21,%xmm7 + subq $16 * (14 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_474 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 128(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm21,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm21,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm21,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm21,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_474 +L$_small_initial_partial_block_474: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 144(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm21,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm21,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm21,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm21,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_474: + + orq %r8,%r8 + je L$_after_reduction_474 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_474: + jmp L$_last_blocks_done_446 +L$_last_num_blocks_is_15_446: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $241,%r15d + jae L$_16_blocks_overflow_475 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp L$_16_blocks_ok_475 + +L$_16_blocks_overflow_475: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +L$_16_blocks_ok_475: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $2,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%zmm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + vextracti32x4 $2,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %zmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm5,%zmm5{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %zmm29,%zmm4,%zmm20 + vpshufb %zmm29,%zmm5,%zmm21 + vextracti32x4 $2,%zmm21,%xmm7 + subq $16 * (15 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_476 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 112(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm21,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm21,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm21,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm21,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_476 +L$_small_initial_partial_block_476: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 128(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm21,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm21,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm21,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm21,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_476: + + orq %r8,%r8 + je L$_after_reduction_476 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_476: + jmp L$_last_blocks_done_446 +L$_last_num_blocks_is_16_446: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $240,%r15d + jae L$_16_blocks_overflow_477 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp L$_16_blocks_ok_477 + +L$_16_blocks_overflow_477: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +L$_16_blocks_ok_477: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $3,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%zmm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + vextracti32x4 $3,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %zmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm5,%zmm5{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm17 + vpshufb %zmm29,%zmm3,%zmm19 + vpshufb %zmm29,%zmm4,%zmm20 + vpshufb %zmm29,%zmm5,%zmm21 + vextracti32x4 $3,%zmm21,%xmm7 + subq $16 * (16 - 1),%r8 +L$_small_initial_partial_block_478: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 112(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm21,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm21,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm21,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm21,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_478: + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_478: + jmp L$_last_blocks_done_446 +L$_last_num_blocks_is_0_446: + vmovdqa64 768(%rsp),%zmm13 + vpxorq %zmm14,%zmm13,%zmm13 + vmovdqu64 0(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 832(%rsp),%zmm13 + vmovdqu64 64(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + vpxorq %zmm10,%zmm4,%zmm26 + vpxorq %zmm6,%zmm0,%zmm24 + vpxorq %zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + vmovdqa64 896(%rsp),%zmm13 + vmovdqu64 128(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 960(%rsp),%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + + vpternlogq $0x96,%zmm10,%zmm4,%zmm26 + vpternlogq $0x96,%zmm6,%zmm0,%zmm24 + vpternlogq $0x96,%zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + + vpsrldq $8,%zmm26,%zmm0 + vpslldq $8,%zmm26,%zmm3 + vpxorq %zmm0,%zmm24,%zmm24 + vpxorq %zmm3,%zmm25,%zmm25 + vextracti64x4 $1,%zmm24,%ymm0 + vpxorq %ymm0,%ymm24,%ymm24 + vextracti32x4 $1,%ymm24,%xmm0 + vpxorq %xmm0,%xmm24,%xmm24 + vextracti64x4 $1,%zmm25,%ymm3 + vpxorq %ymm3,%ymm25,%ymm25 + vextracti32x4 $1,%ymm25,%xmm3 + vpxorq %xmm3,%xmm25,%xmm25 + vmovdqa64 POLY2(%rip),%xmm4 + + + vpclmulqdq $0x01,%xmm25,%xmm4,%xmm0 + vpslldq $8,%xmm0,%xmm0 + vpxorq %xmm0,%xmm25,%xmm0 + + + vpclmulqdq $0x00,%xmm0,%xmm4,%xmm3 + vpsrldq $4,%xmm3,%xmm3 + vpclmulqdq $0x10,%xmm0,%xmm4,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm24,%xmm3,%xmm14 + +L$_last_blocks_done_446: + vpshufb %xmm29,%xmm2,%xmm2 + jmp L$_ghash_done_334 + +L$_message_below_equal_16_blocks_334: + + + movl %r8d,%r12d + addl $15,%r12d + shrl $4,%r12d + cmpq $8,%r12 + je L$_small_initial_num_blocks_is_8_479 + jl L$_small_initial_num_blocks_is_7_1_479 + + + cmpq $12,%r12 + je L$_small_initial_num_blocks_is_12_479 + jl L$_small_initial_num_blocks_is_11_9_479 + + + cmpq $16,%r12 + je L$_small_initial_num_blocks_is_16_479 + cmpq $15,%r12 + je L$_small_initial_num_blocks_is_15_479 + cmpq $14,%r12 + je L$_small_initial_num_blocks_is_14_479 + jmp L$_small_initial_num_blocks_is_13_479 + +L$_small_initial_num_blocks_is_11_9_479: + + cmpq $11,%r12 + je L$_small_initial_num_blocks_is_11_479 + cmpq $10,%r12 + je L$_small_initial_num_blocks_is_10_479 + jmp L$_small_initial_num_blocks_is_9_479 + +L$_small_initial_num_blocks_is_7_1_479: + cmpq $4,%r12 + je L$_small_initial_num_blocks_is_4_479 + jl L$_small_initial_num_blocks_is_3_1_479 + + cmpq $7,%r12 + je L$_small_initial_num_blocks_is_7_479 + cmpq $6,%r12 + je L$_small_initial_num_blocks_is_6_479 + jmp L$_small_initial_num_blocks_is_5_479 + +L$_small_initial_num_blocks_is_3_1_479: + + cmpq $3,%r12 + je L$_small_initial_num_blocks_is_3_479 + cmpq $2,%r12 + je L$_small_initial_num_blocks_is_2_479 + + + + + +L$_small_initial_num_blocks_is_1_479: + vmovdqa64 SHUF_MASK(%rip),%xmm29 + vpaddd ONE(%rip),%xmm2,%xmm0 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $0,%zmm0,%xmm2 + vpshufb %xmm29,%xmm0,%xmm0 + vmovdqu8 0(%rcx,%r11,1),%xmm6{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %xmm15,%xmm0,%xmm0 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %xmm15,%xmm0,%xmm0 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %xmm15,%xmm0,%xmm0 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %xmm15,%xmm0,%xmm0 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %xmm15,%xmm0,%xmm0 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %xmm15,%xmm0,%xmm0 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %xmm15,%xmm0,%xmm0 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %xmm15,%xmm0,%xmm0 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %xmm15,%xmm0,%xmm0 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %xmm15,%xmm0,%xmm0 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenc %xmm15,%xmm0,%xmm0 + vbroadcastf64x2 176(%rdi),%zmm15 + vaesenc %xmm15,%xmm0,%xmm0 + vbroadcastf64x2 192(%rdi),%zmm15 + vaesenc %xmm15,%xmm0,%xmm0 + vbroadcastf64x2 208(%rdi),%zmm15 + vaesenc %xmm15,%xmm0,%xmm0 + vbroadcastf64x2 224(%rdi),%zmm15 + vaesenclast %xmm15,%xmm0,%xmm0 + vpxorq %xmm6,%xmm0,%xmm0 + vextracti32x4 $0,%zmm0,%xmm12 + movq %r9,%r10 + vmovdqu8 %xmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm0,%zmm0{%k1}{z} + vpshufb %xmm29,%xmm0,%xmm6 + vextracti32x4 $0,%zmm6,%xmm13 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_480 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 336(%rsi),%xmm20 + vpclmulqdq $0x01,%xmm20,%xmm6,%xmm4 + vpclmulqdq $0x10,%xmm20,%xmm6,%xmm5 + vpclmulqdq $0x11,%xmm20,%xmm6,%xmm0 + vpclmulqdq $0x00,%xmm20,%xmm6,%xmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_480 +L$_small_initial_partial_block_480: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + + + + + + + + + + + + vpxorq %xmm13,%xmm14,%xmm14 + + jmp L$_after_reduction_480 +L$_small_initial_compute_done_480: +L$_after_reduction_480: + jmp L$_small_initial_blocks_encrypted_479 +L$_small_initial_num_blocks_is_2_479: + vmovdqa64 SHUF_MASK(%rip),%ymm29 + vshufi64x2 $0,%ymm2,%ymm2,%ymm0 + vpaddd ddq_add_1234(%rip),%ymm0,%ymm0 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $1,%zmm0,%xmm2 + vpshufb %ymm29,%ymm0,%ymm0 + vmovdqu8 0(%rcx,%r11,1),%ymm6{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %ymm15,%ymm0,%ymm0 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %ymm15,%ymm0,%ymm0 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %ymm15,%ymm0,%ymm0 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %ymm15,%ymm0,%ymm0 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %ymm15,%ymm0,%ymm0 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %ymm15,%ymm0,%ymm0 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %ymm15,%ymm0,%ymm0 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %ymm15,%ymm0,%ymm0 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %ymm15,%ymm0,%ymm0 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %ymm15,%ymm0,%ymm0 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenc %ymm15,%ymm0,%ymm0 + vbroadcastf64x2 176(%rdi),%zmm15 + vaesenc %ymm15,%ymm0,%ymm0 + vbroadcastf64x2 192(%rdi),%zmm15 + vaesenc %ymm15,%ymm0,%ymm0 + vbroadcastf64x2 208(%rdi),%zmm15 + vaesenc %ymm15,%ymm0,%ymm0 + vbroadcastf64x2 224(%rdi),%zmm15 + vaesenclast %ymm15,%ymm0,%ymm0 + vpxorq %ymm6,%ymm0,%ymm0 + vextracti32x4 $1,%zmm0,%xmm12 + movq %r9,%r10 + vmovdqu8 %ymm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm0,%zmm0{%k1}{z} + vpshufb %ymm29,%ymm0,%ymm6 + vextracti32x4 $1,%zmm6,%xmm13 + subq $16 * (2 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_481 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 320(%rsi),%ymm20 + vpclmulqdq $0x01,%ymm20,%ymm6,%ymm4 + vpclmulqdq $0x10,%ymm20,%ymm6,%ymm5 + vpclmulqdq $0x11,%ymm20,%ymm6,%ymm0 + vpclmulqdq $0x00,%ymm20,%ymm6,%ymm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_481 +L$_small_initial_partial_block_481: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 336(%rsi),%xmm20 + vpclmulqdq $0x01,%xmm20,%xmm6,%xmm4 + vpclmulqdq $0x10,%xmm20,%xmm6,%xmm5 + vpclmulqdq $0x11,%xmm20,%xmm6,%xmm0 + vpclmulqdq $0x00,%xmm20,%xmm6,%xmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_481: + + orq %r8,%r8 + je L$_after_reduction_481 + vpxorq %xmm13,%xmm14,%xmm14 +L$_after_reduction_481: + jmp L$_small_initial_blocks_encrypted_479 +L$_small_initial_num_blocks_is_3_479: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $2,%zmm0,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vmovdqu8 0(%rcx,%r11,1),%zmm6{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 176(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 192(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 208(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 224(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vpxorq %zmm6,%zmm0,%zmm0 + vextracti32x4 $2,%zmm0,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm0,%zmm0{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm6 + vextracti32x4 $2,%zmm6,%xmm13 + subq $16 * (3 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_482 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 304(%rsi),%ymm20 + vinserti64x2 $2,336(%rsi),%zmm20,%zmm20 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_482 +L$_small_initial_partial_block_482: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 320(%rsi),%ymm20 + vpclmulqdq $0x01,%ymm20,%ymm6,%ymm4 + vpclmulqdq $0x10,%ymm20,%ymm6,%ymm5 + vpclmulqdq $0x11,%ymm20,%ymm6,%ymm0 + vpclmulqdq $0x00,%ymm20,%ymm6,%ymm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_482: + + orq %r8,%r8 + je L$_after_reduction_482 + vpxorq %xmm13,%xmm14,%xmm14 +L$_after_reduction_482: + jmp L$_small_initial_blocks_encrypted_479 +L$_small_initial_num_blocks_is_4_479: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $3,%zmm0,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vmovdqu8 0(%rcx,%r11,1),%zmm6{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 176(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 192(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 208(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 224(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vpxorq %zmm6,%zmm0,%zmm0 + vextracti32x4 $3,%zmm0,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm0,%zmm0{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm6 + vextracti32x4 $3,%zmm6,%xmm13 + subq $16 * (4 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_483 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 288(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm19 + + vpxorq %zmm19,%zmm17,%zmm17 + vpsrldq $8,%zmm17,%zmm4 + vpslldq $8,%zmm17,%zmm5 + vpxorq %zmm4,%zmm15,%zmm0 + vpxorq %zmm5,%zmm16,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_483 +L$_small_initial_partial_block_483: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 304(%rsi),%ymm20 + vinserti64x2 $2,336(%rsi),%zmm20,%zmm20 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_483: + + orq %r8,%r8 + je L$_after_reduction_483 + vpxorq %xmm13,%xmm14,%xmm14 +L$_after_reduction_483: + jmp L$_small_initial_blocks_encrypted_479 +L$_small_initial_num_blocks_is_5_479: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd ddq_add_5678(%rip),%zmm2,%zmm3 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + subq $64,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $0,%zmm3,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %xmm29,%xmm3,%xmm3 + vmovdqu8 0(%rcx,%r11,1),%zmm6 + vmovdqu8 64(%rcx,%r11,1),%xmm7{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %xmm15,%xmm3,%xmm3 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %xmm15,%xmm3,%xmm3 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %xmm15,%xmm3,%xmm3 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %xmm15,%xmm3,%xmm3 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %xmm15,%xmm3,%xmm3 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %xmm15,%xmm3,%xmm3 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %xmm15,%xmm3,%xmm3 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %xmm15,%xmm3,%xmm3 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %xmm15,%xmm3,%xmm3 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %xmm15,%xmm3,%xmm3 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %xmm15,%xmm3,%xmm3 + vbroadcastf64x2 176(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %xmm15,%xmm3,%xmm3 + vbroadcastf64x2 192(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %xmm15,%xmm3,%xmm3 + vbroadcastf64x2 208(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %xmm15,%xmm3,%xmm3 + vbroadcastf64x2 224(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vaesenclast %xmm15,%xmm3,%xmm3 + vpxorq %zmm6,%zmm0,%zmm0 + vpxorq %xmm7,%xmm3,%xmm3 + vextracti32x4 $0,%zmm3,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %xmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm3,%zmm3{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm6 + vpshufb %xmm29,%xmm3,%xmm7 + vextracti32x4 $0,%zmm7,%xmm13 + subq $16 * (5 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_484 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 272(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm19 + vmovdqu64 336(%rsi),%xmm20 + vpclmulqdq $0x01,%xmm20,%xmm7,%xmm4 + vpclmulqdq $0x10,%xmm20,%xmm7,%xmm5 + vpclmulqdq $0x11,%xmm20,%xmm7,%xmm0 + vpclmulqdq $0x00,%xmm20,%xmm7,%xmm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_484 +L$_small_initial_partial_block_484: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 288(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm19 + + vpxorq %zmm19,%zmm17,%zmm17 + vpsrldq $8,%zmm17,%zmm4 + vpslldq $8,%zmm17,%zmm5 + vpxorq %zmm4,%zmm15,%zmm0 + vpxorq %zmm5,%zmm16,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_484: + + orq %r8,%r8 + je L$_after_reduction_484 + vpxorq %xmm13,%xmm14,%xmm14 +L$_after_reduction_484: + jmp L$_small_initial_blocks_encrypted_479 +L$_small_initial_num_blocks_is_6_479: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd ddq_add_5678(%rip),%zmm2,%zmm3 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + subq $64,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $1,%zmm3,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %ymm29,%ymm3,%ymm3 + vmovdqu8 0(%rcx,%r11,1),%zmm6 + vmovdqu8 64(%rcx,%r11,1),%ymm7{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %ymm15,%ymm3,%ymm3 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %ymm15,%ymm3,%ymm3 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %ymm15,%ymm3,%ymm3 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %ymm15,%ymm3,%ymm3 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %ymm15,%ymm3,%ymm3 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %ymm15,%ymm3,%ymm3 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %ymm15,%ymm3,%ymm3 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %ymm15,%ymm3,%ymm3 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %ymm15,%ymm3,%ymm3 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %ymm15,%ymm3,%ymm3 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %ymm15,%ymm3,%ymm3 + vbroadcastf64x2 176(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %ymm15,%ymm3,%ymm3 + vbroadcastf64x2 192(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %ymm15,%ymm3,%ymm3 + vbroadcastf64x2 208(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %ymm15,%ymm3,%ymm3 + vbroadcastf64x2 224(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vaesenclast %ymm15,%ymm3,%ymm3 + vpxorq %zmm6,%zmm0,%zmm0 + vpxorq %ymm7,%ymm3,%ymm3 + vextracti32x4 $1,%zmm3,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %ymm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm3,%zmm3{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm6 + vpshufb %ymm29,%ymm3,%ymm7 + vextracti32x4 $1,%zmm7,%xmm13 + subq $16 * (6 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_485 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 256(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm19 + vmovdqu64 320(%rsi),%ymm20 + vpclmulqdq $0x01,%ymm20,%ymm7,%ymm4 + vpclmulqdq $0x10,%ymm20,%ymm7,%ymm5 + vpclmulqdq $0x11,%ymm20,%ymm7,%ymm0 + vpclmulqdq $0x00,%ymm20,%ymm7,%ymm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_485 +L$_small_initial_partial_block_485: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 272(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm19 + vmovdqu64 336(%rsi),%xmm20 + vpclmulqdq $0x01,%xmm20,%xmm7,%xmm4 + vpclmulqdq $0x10,%xmm20,%xmm7,%xmm5 + vpclmulqdq $0x11,%xmm20,%xmm7,%xmm0 + vpclmulqdq $0x00,%xmm20,%xmm7,%xmm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_485: + + orq %r8,%r8 + je L$_after_reduction_485 + vpxorq %xmm13,%xmm14,%xmm14 +L$_after_reduction_485: + jmp L$_small_initial_blocks_encrypted_479 +L$_small_initial_num_blocks_is_7_479: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd ddq_add_5678(%rip),%zmm2,%zmm3 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + subq $64,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $2,%zmm3,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vmovdqu8 0(%rcx,%r11,1),%zmm6 + vmovdqu8 64(%rcx,%r11,1),%zmm7{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 176(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 192(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 208(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 224(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vaesenclast %zmm15,%zmm3,%zmm3 + vpxorq %zmm6,%zmm0,%zmm0 + vpxorq %zmm7,%zmm3,%zmm3 + vextracti32x4 $2,%zmm3,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm3,%zmm3{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm6 + vpshufb %zmm29,%zmm3,%zmm7 + vextracti32x4 $2,%zmm7,%xmm13 + subq $16 * (7 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_486 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 240(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm19 + vmovdqu64 304(%rsi),%ymm20 + vinserti64x2 $2,336(%rsi),%zmm20,%zmm20 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm5 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_486 +L$_small_initial_partial_block_486: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 256(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm19 + vmovdqu64 320(%rsi),%ymm20 + vpclmulqdq $0x01,%ymm20,%ymm7,%ymm4 + vpclmulqdq $0x10,%ymm20,%ymm7,%ymm5 + vpclmulqdq $0x11,%ymm20,%ymm7,%ymm0 + vpclmulqdq $0x00,%ymm20,%ymm7,%ymm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_486: + + orq %r8,%r8 + je L$_after_reduction_486 + vpxorq %xmm13,%xmm14,%xmm14 +L$_after_reduction_486: + jmp L$_small_initial_blocks_encrypted_479 +L$_small_initial_num_blocks_is_8_479: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd ddq_add_5678(%rip),%zmm2,%zmm3 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + subq $64,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $3,%zmm3,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vmovdqu8 0(%rcx,%r11,1),%zmm6 + vmovdqu8 64(%rcx,%r11,1),%zmm7{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 176(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 192(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 208(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 224(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vaesenclast %zmm15,%zmm3,%zmm3 + vpxorq %zmm6,%zmm0,%zmm0 + vpxorq %zmm7,%zmm3,%zmm3 + vextracti32x4 $3,%zmm3,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm3,%zmm3{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm6 + vpshufb %zmm29,%zmm3,%zmm7 + vextracti32x4 $3,%zmm7,%xmm13 + subq $16 * (8 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_487 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 224(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 288(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vpxorq %zmm15,%zmm0,%zmm15 + vpxorq %zmm16,%zmm3,%zmm16 + vpxorq %zmm17,%zmm4,%zmm17 + vpxorq %zmm19,%zmm5,%zmm19 + + vpxorq %zmm19,%zmm17,%zmm17 + vpsrldq $8,%zmm17,%zmm4 + vpslldq $8,%zmm17,%zmm5 + vpxorq %zmm4,%zmm15,%zmm0 + vpxorq %zmm5,%zmm16,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_487 +L$_small_initial_partial_block_487: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 240(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm19 + vmovdqu64 304(%rsi),%ymm20 + vinserti64x2 $2,336(%rsi),%zmm20,%zmm20 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm5 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_487: + + orq %r8,%r8 + je L$_after_reduction_487 + vpxorq %xmm13,%xmm14,%xmm14 +L$_after_reduction_487: + jmp L$_small_initial_blocks_encrypted_479 +L$_small_initial_num_blocks_is_9_479: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd ddq_add_5678(%rip),%zmm2,%zmm3 + vpaddd ddq_add_8888(%rip),%zmm0,%zmm4 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + subq $128,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $0,%zmm4,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %xmm29,%xmm4,%xmm4 + vmovdqu8 0(%rcx,%r11,1),%zmm6 + vmovdqu8 64(%rcx,%r11,1),%zmm7 + vmovdqu8 128(%rcx,%r11,1),%xmm10{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm15,%zmm3,%zmm3 + vpxorq %xmm15,%xmm4,%xmm4 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %xmm15,%xmm4,%xmm4 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %xmm15,%xmm4,%xmm4 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %xmm15,%xmm4,%xmm4 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %xmm15,%xmm4,%xmm4 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %xmm15,%xmm4,%xmm4 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %xmm15,%xmm4,%xmm4 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %xmm15,%xmm4,%xmm4 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %xmm15,%xmm4,%xmm4 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %xmm15,%xmm4,%xmm4 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %xmm15,%xmm4,%xmm4 + vbroadcastf64x2 176(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %xmm15,%xmm4,%xmm4 + vbroadcastf64x2 192(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %xmm15,%xmm4,%xmm4 + vbroadcastf64x2 208(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %xmm15,%xmm4,%xmm4 + vbroadcastf64x2 224(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vaesenclast %zmm15,%zmm3,%zmm3 + vaesenclast %xmm15,%xmm4,%xmm4 + vpxorq %zmm6,%zmm0,%zmm0 + vpxorq %zmm7,%zmm3,%zmm3 + vpxorq %xmm10,%xmm4,%xmm4 + vextracti32x4 $0,%zmm4,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %xmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm4,%zmm4{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm6 + vpshufb %zmm29,%zmm3,%zmm7 + vpshufb %xmm29,%xmm4,%xmm10 + vextracti32x4 $0,%zmm10,%xmm13 + subq $16 * (9 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_488 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 208(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 272(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vpxorq %zmm15,%zmm0,%zmm15 + vpxorq %zmm16,%zmm3,%zmm16 + vpxorq %zmm17,%zmm4,%zmm17 + vpxorq %zmm19,%zmm5,%zmm19 + vmovdqu64 336(%rsi),%xmm20 + vpclmulqdq $0x01,%xmm20,%xmm10,%xmm4 + vpclmulqdq $0x10,%xmm20,%xmm10,%xmm5 + vpclmulqdq $0x11,%xmm20,%xmm10,%xmm0 + vpclmulqdq $0x00,%xmm20,%xmm10,%xmm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_488 +L$_small_initial_partial_block_488: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 224(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 288(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vpxorq %zmm15,%zmm0,%zmm15 + vpxorq %zmm16,%zmm3,%zmm16 + vpxorq %zmm17,%zmm4,%zmm17 + vpxorq %zmm19,%zmm5,%zmm19 + + vpxorq %zmm19,%zmm17,%zmm17 + vpsrldq $8,%zmm17,%zmm4 + vpslldq $8,%zmm17,%zmm5 + vpxorq %zmm4,%zmm15,%zmm0 + vpxorq %zmm5,%zmm16,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_488: + + orq %r8,%r8 + je L$_after_reduction_488 + vpxorq %xmm13,%xmm14,%xmm14 +L$_after_reduction_488: + jmp L$_small_initial_blocks_encrypted_479 +L$_small_initial_num_blocks_is_10_479: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd ddq_add_5678(%rip),%zmm2,%zmm3 + vpaddd ddq_add_8888(%rip),%zmm0,%zmm4 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + subq $128,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $1,%zmm4,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %ymm29,%ymm4,%ymm4 + vmovdqu8 0(%rcx,%r11,1),%zmm6 + vmovdqu8 64(%rcx,%r11,1),%zmm7 + vmovdqu8 128(%rcx,%r11,1),%ymm10{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm15,%zmm3,%zmm3 + vpxorq %ymm15,%ymm4,%ymm4 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %ymm15,%ymm4,%ymm4 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %ymm15,%ymm4,%ymm4 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %ymm15,%ymm4,%ymm4 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %ymm15,%ymm4,%ymm4 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %ymm15,%ymm4,%ymm4 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %ymm15,%ymm4,%ymm4 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %ymm15,%ymm4,%ymm4 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %ymm15,%ymm4,%ymm4 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %ymm15,%ymm4,%ymm4 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %ymm15,%ymm4,%ymm4 + vbroadcastf64x2 176(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %ymm15,%ymm4,%ymm4 + vbroadcastf64x2 192(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %ymm15,%ymm4,%ymm4 + vbroadcastf64x2 208(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %ymm15,%ymm4,%ymm4 + vbroadcastf64x2 224(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vaesenclast %zmm15,%zmm3,%zmm3 + vaesenclast %ymm15,%ymm4,%ymm4 + vpxorq %zmm6,%zmm0,%zmm0 + vpxorq %zmm7,%zmm3,%zmm3 + vpxorq %ymm10,%ymm4,%ymm4 + vextracti32x4 $1,%zmm4,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %ymm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm4,%zmm4{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm6 + vpshufb %zmm29,%zmm3,%zmm7 + vpshufb %ymm29,%ymm4,%ymm10 + vextracti32x4 $1,%zmm10,%xmm13 + subq $16 * (10 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_489 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 192(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 256(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vpxorq %zmm15,%zmm0,%zmm15 + vpxorq %zmm16,%zmm3,%zmm16 + vpxorq %zmm17,%zmm4,%zmm17 + vpxorq %zmm19,%zmm5,%zmm19 + vmovdqu64 320(%rsi),%ymm20 + vpclmulqdq $0x01,%ymm20,%ymm10,%ymm4 + vpclmulqdq $0x10,%ymm20,%ymm10,%ymm5 + vpclmulqdq $0x11,%ymm20,%ymm10,%ymm0 + vpclmulqdq $0x00,%ymm20,%ymm10,%ymm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_489 +L$_small_initial_partial_block_489: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 208(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 272(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vpxorq %zmm15,%zmm0,%zmm15 + vpxorq %zmm16,%zmm3,%zmm16 + vpxorq %zmm17,%zmm4,%zmm17 + vpxorq %zmm19,%zmm5,%zmm19 + vmovdqu64 336(%rsi),%xmm20 + vpclmulqdq $0x01,%xmm20,%xmm10,%xmm4 + vpclmulqdq $0x10,%xmm20,%xmm10,%xmm5 + vpclmulqdq $0x11,%xmm20,%xmm10,%xmm0 + vpclmulqdq $0x00,%xmm20,%xmm10,%xmm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_489: + + orq %r8,%r8 + je L$_after_reduction_489 + vpxorq %xmm13,%xmm14,%xmm14 +L$_after_reduction_489: + jmp L$_small_initial_blocks_encrypted_479 +L$_small_initial_num_blocks_is_11_479: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd ddq_add_5678(%rip),%zmm2,%zmm3 + vpaddd ddq_add_8888(%rip),%zmm0,%zmm4 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + subq $128,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $2,%zmm4,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vmovdqu8 0(%rcx,%r11,1),%zmm6 + vmovdqu8 64(%rcx,%r11,1),%zmm7 + vmovdqu8 128(%rcx,%r11,1),%zmm10{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm15,%zmm3,%zmm3 + vpxorq %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 176(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 192(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 208(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 224(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vaesenclast %zmm15,%zmm3,%zmm3 + vaesenclast %zmm15,%zmm4,%zmm4 + vpxorq %zmm6,%zmm0,%zmm0 + vpxorq %zmm7,%zmm3,%zmm3 + vpxorq %zmm10,%zmm4,%zmm4 + vextracti32x4 $2,%zmm4,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm4,%zmm4{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm6 + vpshufb %zmm29,%zmm3,%zmm7 + vpshufb %zmm29,%zmm4,%zmm10 + vextracti32x4 $2,%zmm10,%xmm13 + subq $16 * (11 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_490 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 176(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 240(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vpxorq %zmm15,%zmm0,%zmm15 + vpxorq %zmm16,%zmm3,%zmm16 + vpxorq %zmm17,%zmm4,%zmm17 + vpxorq %zmm19,%zmm5,%zmm19 + vmovdqu64 304(%rsi),%ymm20 + vinserti64x2 $2,336(%rsi),%zmm20,%zmm20 + vpclmulqdq $0x01,%zmm20,%zmm10,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm10,%zmm5 + vpclmulqdq $0x11,%zmm20,%zmm10,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm10,%zmm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_490 +L$_small_initial_partial_block_490: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 192(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 256(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vpxorq %zmm15,%zmm0,%zmm15 + vpxorq %zmm16,%zmm3,%zmm16 + vpxorq %zmm17,%zmm4,%zmm17 + vpxorq %zmm19,%zmm5,%zmm19 + vmovdqu64 320(%rsi),%ymm20 + vpclmulqdq $0x01,%ymm20,%ymm10,%ymm4 + vpclmulqdq $0x10,%ymm20,%ymm10,%ymm5 + vpclmulqdq $0x11,%ymm20,%ymm10,%ymm0 + vpclmulqdq $0x00,%ymm20,%ymm10,%ymm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_490: + + orq %r8,%r8 + je L$_after_reduction_490 + vpxorq %xmm13,%xmm14,%xmm14 +L$_after_reduction_490: + jmp L$_small_initial_blocks_encrypted_479 +L$_small_initial_num_blocks_is_12_479: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd ddq_add_5678(%rip),%zmm2,%zmm3 + vpaddd ddq_add_8888(%rip),%zmm0,%zmm4 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + subq $128,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $3,%zmm4,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vmovdqu8 0(%rcx,%r11,1),%zmm6 + vmovdqu8 64(%rcx,%r11,1),%zmm7 + vmovdqu8 128(%rcx,%r11,1),%zmm10{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm15,%zmm3,%zmm3 + vpxorq %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 176(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 192(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 208(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 224(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vaesenclast %zmm15,%zmm3,%zmm3 + vaesenclast %zmm15,%zmm4,%zmm4 + vpxorq %zmm6,%zmm0,%zmm0 + vpxorq %zmm7,%zmm3,%zmm3 + vpxorq %zmm10,%zmm4,%zmm4 + vextracti32x4 $3,%zmm4,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm4,%zmm4{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm6 + vpshufb %zmm29,%zmm3,%zmm7 + vpshufb %zmm29,%zmm4,%zmm10 + vextracti32x4 $3,%zmm10,%xmm13 + subq $16 * (12 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_491 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 160(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 224(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vmovdqu64 288(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x00,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm0,%zmm6,%zmm15 + vpternlogq $0x96,%zmm3,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x10,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm4,%zmm6,%zmm17 + vpternlogq $0x96,%zmm5,%zmm7,%zmm19 + + vpxorq %zmm19,%zmm17,%zmm17 + vpsrldq $8,%zmm17,%zmm4 + vpslldq $8,%zmm17,%zmm5 + vpxorq %zmm4,%zmm15,%zmm0 + vpxorq %zmm5,%zmm16,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_491 +L$_small_initial_partial_block_491: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 176(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 240(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vpxorq %zmm15,%zmm0,%zmm15 + vpxorq %zmm16,%zmm3,%zmm16 + vpxorq %zmm17,%zmm4,%zmm17 + vpxorq %zmm19,%zmm5,%zmm19 + vmovdqu64 304(%rsi),%ymm20 + vinserti64x2 $2,336(%rsi),%zmm20,%zmm20 + vpclmulqdq $0x01,%zmm20,%zmm10,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm10,%zmm5 + vpclmulqdq $0x11,%zmm20,%zmm10,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm10,%zmm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_491: + + orq %r8,%r8 + je L$_after_reduction_491 + vpxorq %xmm13,%xmm14,%xmm14 +L$_after_reduction_491: + jmp L$_small_initial_blocks_encrypted_479 +L$_small_initial_num_blocks_is_13_479: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd ddq_add_5678(%rip),%zmm2,%zmm3 + vpaddd ddq_add_8888(%rip),%zmm0,%zmm4 + vpaddd ddq_add_8888(%rip),%zmm3,%zmm5 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + subq $192,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $0,%zmm5,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %xmm29,%xmm5,%xmm5 + vmovdqu8 0(%rcx,%r11,1),%zmm6 + vmovdqu8 64(%rcx,%r11,1),%zmm7 + vmovdqu8 128(%rcx,%r11,1),%zmm10 + vmovdqu8 192(%rcx,%r11,1),%xmm11{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm15,%zmm3,%zmm3 + vpxorq %zmm15,%zmm4,%zmm4 + vpxorq %xmm15,%xmm5,%xmm5 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %xmm15,%xmm5,%xmm5 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %xmm15,%xmm5,%xmm5 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %xmm15,%xmm5,%xmm5 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %xmm15,%xmm5,%xmm5 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %xmm15,%xmm5,%xmm5 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %xmm15,%xmm5,%xmm5 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %xmm15,%xmm5,%xmm5 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %xmm15,%xmm5,%xmm5 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %xmm15,%xmm5,%xmm5 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %xmm15,%xmm5,%xmm5 + vbroadcastf64x2 176(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %xmm15,%xmm5,%xmm5 + vbroadcastf64x2 192(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %xmm15,%xmm5,%xmm5 + vbroadcastf64x2 208(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %xmm15,%xmm5,%xmm5 + vbroadcastf64x2 224(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vaesenclast %zmm15,%zmm3,%zmm3 + vaesenclast %zmm15,%zmm4,%zmm4 + vaesenclast %xmm15,%xmm5,%xmm5 + vpxorq %zmm6,%zmm0,%zmm0 + vpxorq %zmm7,%zmm3,%zmm3 + vpxorq %zmm10,%zmm4,%zmm4 + vpxorq %xmm11,%xmm5,%xmm5 + vextracti32x4 $0,%zmm5,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %xmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm5,%zmm5{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm6 + vpshufb %zmm29,%zmm3,%zmm7 + vpshufb %zmm29,%zmm4,%zmm10 + vpshufb %xmm29,%xmm5,%xmm11 + vextracti32x4 $0,%zmm11,%xmm13 + subq $16 * (13 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_492 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 144(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 208(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vmovdqu64 272(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x00,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm0,%zmm6,%zmm15 + vpternlogq $0x96,%zmm3,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x10,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm4,%zmm6,%zmm17 + vpternlogq $0x96,%zmm5,%zmm7,%zmm19 + vmovdqu64 336(%rsi),%xmm20 + vpclmulqdq $0x01,%xmm20,%xmm11,%xmm4 + vpclmulqdq $0x10,%xmm20,%xmm11,%xmm5 + vpclmulqdq $0x11,%xmm20,%xmm11,%xmm0 + vpclmulqdq $0x00,%xmm20,%xmm11,%xmm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_492 +L$_small_initial_partial_block_492: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 160(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 224(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vmovdqu64 288(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x00,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm0,%zmm6,%zmm15 + vpternlogq $0x96,%zmm3,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x10,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm4,%zmm6,%zmm17 + vpternlogq $0x96,%zmm5,%zmm7,%zmm19 + + vpxorq %zmm19,%zmm17,%zmm17 + vpsrldq $8,%zmm17,%zmm4 + vpslldq $8,%zmm17,%zmm5 + vpxorq %zmm4,%zmm15,%zmm0 + vpxorq %zmm5,%zmm16,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_492: + + orq %r8,%r8 + je L$_after_reduction_492 + vpxorq %xmm13,%xmm14,%xmm14 +L$_after_reduction_492: + jmp L$_small_initial_blocks_encrypted_479 +L$_small_initial_num_blocks_is_14_479: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd ddq_add_5678(%rip),%zmm2,%zmm3 + vpaddd ddq_add_8888(%rip),%zmm0,%zmm4 + vpaddd ddq_add_8888(%rip),%zmm3,%zmm5 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + subq $192,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $1,%zmm5,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %ymm29,%ymm5,%ymm5 + vmovdqu8 0(%rcx,%r11,1),%zmm6 + vmovdqu8 64(%rcx,%r11,1),%zmm7 + vmovdqu8 128(%rcx,%r11,1),%zmm10 + vmovdqu8 192(%rcx,%r11,1),%ymm11{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm15,%zmm3,%zmm3 + vpxorq %zmm15,%zmm4,%zmm4 + vpxorq %ymm15,%ymm5,%ymm5 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %ymm15,%ymm5,%ymm5 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %ymm15,%ymm5,%ymm5 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %ymm15,%ymm5,%ymm5 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %ymm15,%ymm5,%ymm5 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %ymm15,%ymm5,%ymm5 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %ymm15,%ymm5,%ymm5 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %ymm15,%ymm5,%ymm5 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %ymm15,%ymm5,%ymm5 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %ymm15,%ymm5,%ymm5 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %ymm15,%ymm5,%ymm5 + vbroadcastf64x2 176(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %ymm15,%ymm5,%ymm5 + vbroadcastf64x2 192(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %ymm15,%ymm5,%ymm5 + vbroadcastf64x2 208(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %ymm15,%ymm5,%ymm5 + vbroadcastf64x2 224(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vaesenclast %zmm15,%zmm3,%zmm3 + vaesenclast %zmm15,%zmm4,%zmm4 + vaesenclast %ymm15,%ymm5,%ymm5 + vpxorq %zmm6,%zmm0,%zmm0 + vpxorq %zmm7,%zmm3,%zmm3 + vpxorq %zmm10,%zmm4,%zmm4 + vpxorq %ymm11,%ymm5,%ymm5 + vextracti32x4 $1,%zmm5,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %ymm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm5,%zmm5{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm6 + vpshufb %zmm29,%zmm3,%zmm7 + vpshufb %zmm29,%zmm4,%zmm10 + vpshufb %ymm29,%ymm5,%ymm11 + vextracti32x4 $1,%zmm11,%xmm13 + subq $16 * (14 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_493 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 128(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 192(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vmovdqu64 256(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x00,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm0,%zmm6,%zmm15 + vpternlogq $0x96,%zmm3,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x10,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm4,%zmm6,%zmm17 + vpternlogq $0x96,%zmm5,%zmm7,%zmm19 + vmovdqu64 320(%rsi),%ymm20 + vpclmulqdq $0x01,%ymm20,%ymm11,%ymm4 + vpclmulqdq $0x10,%ymm20,%ymm11,%ymm5 + vpclmulqdq $0x11,%ymm20,%ymm11,%ymm0 + vpclmulqdq $0x00,%ymm20,%ymm11,%ymm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_493 +L$_small_initial_partial_block_493: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 144(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 208(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vmovdqu64 272(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x00,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm0,%zmm6,%zmm15 + vpternlogq $0x96,%zmm3,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x10,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm4,%zmm6,%zmm17 + vpternlogq $0x96,%zmm5,%zmm7,%zmm19 + vmovdqu64 336(%rsi),%xmm20 + vpclmulqdq $0x01,%xmm20,%xmm11,%xmm4 + vpclmulqdq $0x10,%xmm20,%xmm11,%xmm5 + vpclmulqdq $0x11,%xmm20,%xmm11,%xmm0 + vpclmulqdq $0x00,%xmm20,%xmm11,%xmm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_493: + + orq %r8,%r8 + je L$_after_reduction_493 + vpxorq %xmm13,%xmm14,%xmm14 +L$_after_reduction_493: + jmp L$_small_initial_blocks_encrypted_479 +L$_small_initial_num_blocks_is_15_479: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd ddq_add_5678(%rip),%zmm2,%zmm3 + vpaddd ddq_add_8888(%rip),%zmm0,%zmm4 + vpaddd ddq_add_8888(%rip),%zmm3,%zmm5 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + subq $192,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $2,%zmm5,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 + vmovdqu8 0(%rcx,%r11,1),%zmm6 + vmovdqu8 64(%rcx,%r11,1),%zmm7 + vmovdqu8 128(%rcx,%r11,1),%zmm10 + vmovdqu8 192(%rcx,%r11,1),%zmm11{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm15,%zmm3,%zmm3 + vpxorq %zmm15,%zmm4,%zmm4 + vpxorq %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 176(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 192(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 208(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 224(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vaesenclast %zmm15,%zmm3,%zmm3 + vaesenclast %zmm15,%zmm4,%zmm4 + vaesenclast %zmm15,%zmm5,%zmm5 + vpxorq %zmm6,%zmm0,%zmm0 + vpxorq %zmm7,%zmm3,%zmm3 + vpxorq %zmm10,%zmm4,%zmm4 + vpxorq %zmm11,%zmm5,%zmm5 + vextracti32x4 $2,%zmm5,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %zmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm5,%zmm5{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm6 + vpshufb %zmm29,%zmm3,%zmm7 + vpshufb %zmm29,%zmm4,%zmm10 + vpshufb %zmm29,%zmm5,%zmm11 + vextracti32x4 $2,%zmm11,%xmm13 + subq $16 * (15 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_494 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 112(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 176(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vmovdqu64 240(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x00,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm0,%zmm6,%zmm15 + vpternlogq $0x96,%zmm3,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x10,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm4,%zmm6,%zmm17 + vpternlogq $0x96,%zmm5,%zmm7,%zmm19 + vmovdqu64 304(%rsi),%ymm20 + vinserti64x2 $2,336(%rsi),%zmm20,%zmm20 + vpclmulqdq $0x01,%zmm20,%zmm11,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm11,%zmm5 + vpclmulqdq $0x11,%zmm20,%zmm11,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm11,%zmm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_494 +L$_small_initial_partial_block_494: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 128(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 192(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vmovdqu64 256(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x00,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm0,%zmm6,%zmm15 + vpternlogq $0x96,%zmm3,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x10,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm4,%zmm6,%zmm17 + vpternlogq $0x96,%zmm5,%zmm7,%zmm19 + vmovdqu64 320(%rsi),%ymm20 + vpclmulqdq $0x01,%ymm20,%ymm11,%ymm4 + vpclmulqdq $0x10,%ymm20,%ymm11,%ymm5 + vpclmulqdq $0x11,%ymm20,%ymm11,%ymm0 + vpclmulqdq $0x00,%ymm20,%ymm11,%ymm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_494: + + orq %r8,%r8 + je L$_after_reduction_494 + vpxorq %xmm13,%xmm14,%xmm14 +L$_after_reduction_494: + jmp L$_small_initial_blocks_encrypted_479 +L$_small_initial_num_blocks_is_16_479: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd ddq_add_5678(%rip),%zmm2,%zmm3 + vpaddd ddq_add_8888(%rip),%zmm0,%zmm4 + vpaddd ddq_add_8888(%rip),%zmm3,%zmm5 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + subq $192,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $3,%zmm5,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 + vmovdqu8 0(%rcx,%r11,1),%zmm6 + vmovdqu8 64(%rcx,%r11,1),%zmm7 + vmovdqu8 128(%rcx,%r11,1),%zmm10 + vmovdqu8 192(%rcx,%r11,1),%zmm11{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm15,%zmm3,%zmm3 + vpxorq %zmm15,%zmm4,%zmm4 + vpxorq %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 176(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 192(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 208(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 224(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vaesenclast %zmm15,%zmm3,%zmm3 + vaesenclast %zmm15,%zmm4,%zmm4 + vaesenclast %zmm15,%zmm5,%zmm5 + vpxorq %zmm6,%zmm0,%zmm0 + vpxorq %zmm7,%zmm3,%zmm3 + vpxorq %zmm10,%zmm4,%zmm4 + vpxorq %zmm11,%zmm5,%zmm5 + vextracti32x4 $3,%zmm5,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %zmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm5,%zmm5{%k1}{z} + vpshufb %zmm29,%zmm0,%zmm6 + vpshufb %zmm29,%zmm3,%zmm7 + vpshufb %zmm29,%zmm4,%zmm10 + vpshufb %zmm29,%zmm5,%zmm11 + vextracti32x4 $3,%zmm11,%xmm13 + subq $16 * (16 - 1),%r8 +L$_small_initial_partial_block_495: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 112(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 176(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vmovdqu64 240(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x00,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm0,%zmm6,%zmm15 + vpternlogq $0x96,%zmm3,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x10,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm4,%zmm6,%zmm17 + vpternlogq $0x96,%zmm5,%zmm7,%zmm19 + vmovdqu64 304(%rsi),%ymm20 + vinserti64x2 $2,336(%rsi),%zmm20,%zmm20 + vpclmulqdq $0x01,%zmm20,%zmm11,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm11,%zmm5 + vpclmulqdq $0x11,%zmm20,%zmm11,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm11,%zmm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_495: + vpxorq %xmm13,%xmm14,%xmm14 +L$_after_reduction_495: +L$_small_initial_blocks_encrypted_479: +L$_ghash_done_334: + vmovdqu64 %xmm2,0(%rsi) + vmovdqu64 %xmm14,64(%rsi) +L$_enc_dec_done_334: + jmp L$exit_gcm_encrypt +L$exit_gcm_encrypt: + cmpq $256,%r8 + jbe L$skip_hkeys_cleanup_496 + vpxor %xmm0,%xmm0,%xmm0 + vmovdqa64 %zmm0,0(%rsp) + vmovdqa64 %zmm0,64(%rsp) + vmovdqa64 %zmm0,128(%rsp) + vmovdqa64 %zmm0,192(%rsp) + vmovdqa64 %zmm0,256(%rsp) + vmovdqa64 %zmm0,320(%rsp) + vmovdqa64 %zmm0,384(%rsp) + vmovdqa64 %zmm0,448(%rsp) + vmovdqa64 %zmm0,512(%rsp) + vmovdqa64 %zmm0,576(%rsp) + vmovdqa64 %zmm0,640(%rsp) + vmovdqa64 %zmm0,704(%rsp) +L$skip_hkeys_cleanup_496: + vzeroupper + leaq (%rbp),%rsp + + popq %r15 + + popq %r14 + + popq %r13 + + popq %r12 + + popq %rbp + + popq %rbx + + .byte 0xf3,0xc3 +L$encrypt_seh_end: + + +.globl _ossl_aes_gcm_decrypt_avx512 + +.p2align 5 +_ossl_aes_gcm_decrypt_avx512: + +L$decrypt_seh_begin: +.byte 243,15,30,250 + pushq %rbx + +L$decrypt_seh_push_rbx: + pushq %rbp + +L$decrypt_seh_push_rbp: + pushq %r12 + +L$decrypt_seh_push_r12: + pushq %r13 + +L$decrypt_seh_push_r13: + pushq %r14 + +L$decrypt_seh_push_r14: + pushq %r15 + +L$decrypt_seh_push_r15: + + + + + + + + + + + leaq 0(%rsp),%rbp + +L$decrypt_seh_setfp: + +L$decrypt_seh_prolog_end: + subq $1588,%rsp + andq $(-64),%rsp + + + movl 240(%rdi),%eax + cmpl $9,%eax + je L$aes_gcm_decrypt_128_avx512 + cmpl $11,%eax + je L$aes_gcm_decrypt_192_avx512 + cmpl $13,%eax + je L$aes_gcm_decrypt_256_avx512 + xorl %eax,%eax + jmp L$exit_gcm_decrypt +.p2align 5 +L$aes_gcm_decrypt_128_avx512: + orq %r8,%r8 + je L$_enc_dec_done_497 + xorq %r14,%r14 + vmovdqu64 64(%rsi),%xmm14 + + movq (%rdx),%r11 + orq %r11,%r11 + je L$_partial_block_done_498 + movl $16,%r10d + leaq byte_len_to_mask_table(%rip),%r12 + cmpq %r10,%r8 + cmovcq %r8,%r10 + kmovw (%r12,%r10,2),%k1 + vmovdqu8 (%rcx),%xmm0{%k1}{z} + + vmovdqu64 16(%rsi),%xmm3 + vmovdqu64 336(%rsi),%xmm4 + + + + leaq SHIFT_MASK(%rip),%r12 + addq %r11,%r12 + vmovdqu64 (%r12),%xmm5 + vpshufb %xmm5,%xmm3,%xmm3 + + vmovdqa64 %xmm0,%xmm6 + vpxorq %xmm0,%xmm3,%xmm3 + + + leaq (%r8,%r11,1),%r13 + subq $16,%r13 + jge L$_no_extra_mask_498 + subq %r13,%r12 +L$_no_extra_mask_498: + + + + vmovdqu64 16(%r12),%xmm0 + vpand %xmm0,%xmm3,%xmm3 + vpand %xmm0,%xmm6,%xmm6 + vpshufb SHUF_MASK(%rip),%xmm6,%xmm6 + vpshufb %xmm5,%xmm6,%xmm6 + vpxorq %xmm6,%xmm14,%xmm14 + cmpq $0,%r13 + jl L$_partial_incomplete_498 + + vpclmulqdq $0x11,%xmm4,%xmm14,%xmm7 + vpclmulqdq $0x00,%xmm4,%xmm14,%xmm10 + vpclmulqdq $0x01,%xmm4,%xmm14,%xmm11 + vpclmulqdq $0x10,%xmm4,%xmm14,%xmm14 + vpxorq %xmm11,%xmm14,%xmm14 + + vpsrldq $8,%xmm14,%xmm11 + vpslldq $8,%xmm14,%xmm14 + vpxorq %xmm11,%xmm7,%xmm7 + vpxorq %xmm10,%xmm14,%xmm14 + + + + vmovdqu64 POLY2(%rip),%xmm11 + + vpclmulqdq $0x01,%xmm14,%xmm11,%xmm10 + vpslldq $8,%xmm10,%xmm10 + vpxorq %xmm10,%xmm14,%xmm14 + + + + vpclmulqdq $0x00,%xmm14,%xmm11,%xmm10 + vpsrldq $4,%xmm10,%xmm10 + vpclmulqdq $0x10,%xmm14,%xmm11,%xmm14 + vpslldq $4,%xmm14,%xmm14 + + vpternlogq $0x96,%xmm10,%xmm7,%xmm14 + + movq $0,(%rdx) + + movq %r11,%r12 + movq $16,%r11 + subq %r12,%r11 + jmp L$_enc_dec_done_498 + +L$_partial_incomplete_498: + addq %r8,(%rdx) + movq %r8,%r11 + +L$_enc_dec_done_498: + + + leaq byte_len_to_mask_table(%rip),%r12 + kmovw (%r12,%r11,2),%k1 + vmovdqu64 %xmm14,64(%rsi) + movq %r9,%r12 + vmovdqu8 %xmm3,(%r12){%k1} +L$_partial_block_done_498: + vmovdqu64 0(%rsi),%xmm2 + subq %r11,%r8 + je L$_enc_dec_done_497 + cmpq $256,%r8 + jbe L$_message_below_equal_16_blocks_497 + + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vmovdqa64 ddq_addbe_4444(%rip),%zmm27 + vmovdqa64 ddq_addbe_1234(%rip),%zmm28 + + + + + + + vmovd %xmm2,%r15d + andl $255,%r15d + + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpshufb %zmm29,%zmm2,%zmm2 + + + + cmpb $240,%r15b + jae L$_next_16_overflow_499 + vpaddd %zmm28,%zmm2,%zmm7 + vpaddd %zmm27,%zmm7,%zmm10 + vpaddd %zmm27,%zmm10,%zmm11 + vpaddd %zmm27,%zmm11,%zmm12 + jmp L$_next_16_ok_499 +L$_next_16_overflow_499: + vpshufb %zmm29,%zmm2,%zmm2 + vmovdqa64 ddq_add_4444(%rip),%zmm12 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm7 + vpaddd %zmm12,%zmm7,%zmm10 + vpaddd %zmm12,%zmm10,%zmm11 + vpaddd %zmm12,%zmm11,%zmm12 + vpshufb %zmm29,%zmm7,%zmm7 + vpshufb %zmm29,%zmm10,%zmm10 + vpshufb %zmm29,%zmm11,%zmm11 + vpshufb %zmm29,%zmm12,%zmm12 +L$_next_16_ok_499: + vshufi64x2 $255,%zmm12,%zmm12,%zmm2 + addb $16,%r15b + + vmovdqu8 0(%rcx,%r11,1),%zmm0 + vmovdqu8 64(%rcx,%r11,1),%zmm3 + vmovdqu8 128(%rcx,%r11,1),%zmm4 + vmovdqu8 192(%rcx,%r11,1),%zmm5 + + + vbroadcastf64x2 0(%rdi),%zmm6 + vpxorq %zmm6,%zmm7,%zmm7 + vpxorq %zmm6,%zmm10,%zmm10 + vpxorq %zmm6,%zmm11,%zmm11 + vpxorq %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 16(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 32(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 48(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 64(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 80(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 96(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 112(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 128(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 144(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 160(%rdi),%zmm6 + vaesenclast %zmm6,%zmm7,%zmm7 + vaesenclast %zmm6,%zmm10,%zmm10 + vaesenclast %zmm6,%zmm11,%zmm11 + vaesenclast %zmm6,%zmm12,%zmm12 + + + vpxorq %zmm0,%zmm7,%zmm7 + vpxorq %zmm3,%zmm10,%zmm10 + vpxorq %zmm4,%zmm11,%zmm11 + vpxorq %zmm5,%zmm12,%zmm12 + + + movq %r9,%r10 + vmovdqu8 %zmm7,0(%r10,%r11,1) + vmovdqu8 %zmm10,64(%r10,%r11,1) + vmovdqu8 %zmm11,128(%r10,%r11,1) + vmovdqu8 %zmm12,192(%r10,%r11,1) + + vpshufb %zmm29,%zmm0,%zmm7 + vpshufb %zmm29,%zmm3,%zmm10 + vpshufb %zmm29,%zmm4,%zmm11 + vpshufb %zmm29,%zmm5,%zmm12 + vmovdqa64 %zmm7,768(%rsp) + vmovdqa64 %zmm10,832(%rsp) + vmovdqa64 %zmm11,896(%rsp) + vmovdqa64 %zmm12,960(%rsp) + testq %r14,%r14 + jnz L$_skip_hkeys_precomputation_500 + + vmovdqu64 288(%rsi),%zmm0 + vmovdqu64 %zmm0,704(%rsp) + + vmovdqu64 224(%rsi),%zmm3 + vmovdqu64 %zmm3,640(%rsp) + + + vshufi64x2 $0x00,%zmm3,%zmm3,%zmm3 + + vmovdqu64 160(%rsi),%zmm4 + vmovdqu64 %zmm4,576(%rsp) + + vmovdqu64 96(%rsi),%zmm5 + vmovdqu64 %zmm5,512(%rsp) +L$_skip_hkeys_precomputation_500: + cmpq $512,%r8 + jb L$_message_below_32_blocks_497 + + + + cmpb $240,%r15b + jae L$_next_16_overflow_501 + vpaddd %zmm28,%zmm2,%zmm7 + vpaddd %zmm27,%zmm7,%zmm10 + vpaddd %zmm27,%zmm10,%zmm11 + vpaddd %zmm27,%zmm11,%zmm12 + jmp L$_next_16_ok_501 +L$_next_16_overflow_501: + vpshufb %zmm29,%zmm2,%zmm2 + vmovdqa64 ddq_add_4444(%rip),%zmm12 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm7 + vpaddd %zmm12,%zmm7,%zmm10 + vpaddd %zmm12,%zmm10,%zmm11 + vpaddd %zmm12,%zmm11,%zmm12 + vpshufb %zmm29,%zmm7,%zmm7 + vpshufb %zmm29,%zmm10,%zmm10 + vpshufb %zmm29,%zmm11,%zmm11 + vpshufb %zmm29,%zmm12,%zmm12 +L$_next_16_ok_501: + vshufi64x2 $255,%zmm12,%zmm12,%zmm2 + addb $16,%r15b + + vmovdqu8 256(%rcx,%r11,1),%zmm0 + vmovdqu8 320(%rcx,%r11,1),%zmm3 + vmovdqu8 384(%rcx,%r11,1),%zmm4 + vmovdqu8 448(%rcx,%r11,1),%zmm5 + + + vbroadcastf64x2 0(%rdi),%zmm6 + vpxorq %zmm6,%zmm7,%zmm7 + vpxorq %zmm6,%zmm10,%zmm10 + vpxorq %zmm6,%zmm11,%zmm11 + vpxorq %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 16(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 32(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 48(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 64(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 80(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 96(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 112(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 128(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 144(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 160(%rdi),%zmm6 + vaesenclast %zmm6,%zmm7,%zmm7 + vaesenclast %zmm6,%zmm10,%zmm10 + vaesenclast %zmm6,%zmm11,%zmm11 + vaesenclast %zmm6,%zmm12,%zmm12 + + + vpxorq %zmm0,%zmm7,%zmm7 + vpxorq %zmm3,%zmm10,%zmm10 + vpxorq %zmm4,%zmm11,%zmm11 + vpxorq %zmm5,%zmm12,%zmm12 + + + movq %r9,%r10 + vmovdqu8 %zmm7,256(%r10,%r11,1) + vmovdqu8 %zmm10,320(%r10,%r11,1) + vmovdqu8 %zmm11,384(%r10,%r11,1) + vmovdqu8 %zmm12,448(%r10,%r11,1) + + vpshufb %zmm29,%zmm0,%zmm7 + vpshufb %zmm29,%zmm3,%zmm10 + vpshufb %zmm29,%zmm4,%zmm11 + vpshufb %zmm29,%zmm5,%zmm12 + vmovdqa64 %zmm7,1024(%rsp) + vmovdqa64 %zmm10,1088(%rsp) + vmovdqa64 %zmm11,1152(%rsp) + vmovdqa64 %zmm12,1216(%rsp) + testq %r14,%r14 + jnz L$_skip_hkeys_precomputation_502 + vmovdqu64 640(%rsp),%zmm3 + + + vshufi64x2 $0x00,%zmm3,%zmm3,%zmm3 + + vmovdqu64 576(%rsp),%zmm4 + vmovdqu64 512(%rsp),%zmm5 + + vpclmulqdq $0x11,%zmm3,%zmm4,%zmm6 + vpclmulqdq $0x00,%zmm3,%zmm4,%zmm7 + vpclmulqdq $0x01,%zmm3,%zmm4,%zmm10 + vpclmulqdq $0x10,%zmm3,%zmm4,%zmm4 + vpxorq %zmm10,%zmm4,%zmm4 + + vpsrldq $8,%zmm4,%zmm10 + vpslldq $8,%zmm4,%zmm4 + vpxorq %zmm10,%zmm6,%zmm6 + vpxorq %zmm7,%zmm4,%zmm4 + + + + vmovdqu64 POLY2(%rip),%zmm10 + + vpclmulqdq $0x01,%zmm4,%zmm10,%zmm7 + vpslldq $8,%zmm7,%zmm7 + vpxorq %zmm7,%zmm4,%zmm4 + + + + vpclmulqdq $0x00,%zmm4,%zmm10,%zmm7 + vpsrldq $4,%zmm7,%zmm7 + vpclmulqdq $0x10,%zmm4,%zmm10,%zmm4 + vpslldq $4,%zmm4,%zmm4 + + vpternlogq $0x96,%zmm7,%zmm6,%zmm4 + + vmovdqu64 %zmm4,448(%rsp) + + vpclmulqdq $0x11,%zmm3,%zmm5,%zmm6 + vpclmulqdq $0x00,%zmm3,%zmm5,%zmm7 + vpclmulqdq $0x01,%zmm3,%zmm5,%zmm10 + vpclmulqdq $0x10,%zmm3,%zmm5,%zmm5 + vpxorq %zmm10,%zmm5,%zmm5 + + vpsrldq $8,%zmm5,%zmm10 + vpslldq $8,%zmm5,%zmm5 + vpxorq %zmm10,%zmm6,%zmm6 + vpxorq %zmm7,%zmm5,%zmm5 + + + + vmovdqu64 POLY2(%rip),%zmm10 + + vpclmulqdq $0x01,%zmm5,%zmm10,%zmm7 + vpslldq $8,%zmm7,%zmm7 + vpxorq %zmm7,%zmm5,%zmm5 + + + + vpclmulqdq $0x00,%zmm5,%zmm10,%zmm7 + vpsrldq $4,%zmm7,%zmm7 + vpclmulqdq $0x10,%zmm5,%zmm10,%zmm5 + vpslldq $4,%zmm5,%zmm5 + + vpternlogq $0x96,%zmm7,%zmm6,%zmm5 + + vmovdqu64 %zmm5,384(%rsp) + + vpclmulqdq $0x11,%zmm3,%zmm4,%zmm6 + vpclmulqdq $0x00,%zmm3,%zmm4,%zmm7 + vpclmulqdq $0x01,%zmm3,%zmm4,%zmm10 + vpclmulqdq $0x10,%zmm3,%zmm4,%zmm4 + vpxorq %zmm10,%zmm4,%zmm4 + + vpsrldq $8,%zmm4,%zmm10 + vpslldq $8,%zmm4,%zmm4 + vpxorq %zmm10,%zmm6,%zmm6 + vpxorq %zmm7,%zmm4,%zmm4 + + + + vmovdqu64 POLY2(%rip),%zmm10 + + vpclmulqdq $0x01,%zmm4,%zmm10,%zmm7 + vpslldq $8,%zmm7,%zmm7 + vpxorq %zmm7,%zmm4,%zmm4 + + + + vpclmulqdq $0x00,%zmm4,%zmm10,%zmm7 + vpsrldq $4,%zmm7,%zmm7 + vpclmulqdq $0x10,%zmm4,%zmm10,%zmm4 + vpslldq $4,%zmm4,%zmm4 + + vpternlogq $0x96,%zmm7,%zmm6,%zmm4 + + vmovdqu64 %zmm4,320(%rsp) + + vpclmulqdq $0x11,%zmm3,%zmm5,%zmm6 + vpclmulqdq $0x00,%zmm3,%zmm5,%zmm7 + vpclmulqdq $0x01,%zmm3,%zmm5,%zmm10 + vpclmulqdq $0x10,%zmm3,%zmm5,%zmm5 + vpxorq %zmm10,%zmm5,%zmm5 + + vpsrldq $8,%zmm5,%zmm10 + vpslldq $8,%zmm5,%zmm5 + vpxorq %zmm10,%zmm6,%zmm6 + vpxorq %zmm7,%zmm5,%zmm5 + + + + vmovdqu64 POLY2(%rip),%zmm10 + + vpclmulqdq $0x01,%zmm5,%zmm10,%zmm7 + vpslldq $8,%zmm7,%zmm7 + vpxorq %zmm7,%zmm5,%zmm5 + + + + vpclmulqdq $0x00,%zmm5,%zmm10,%zmm7 + vpsrldq $4,%zmm7,%zmm7 + vpclmulqdq $0x10,%zmm5,%zmm10,%zmm5 + vpslldq $4,%zmm5,%zmm5 + + vpternlogq $0x96,%zmm7,%zmm6,%zmm5 + + vmovdqu64 %zmm5,256(%rsp) + + vpclmulqdq $0x11,%zmm3,%zmm4,%zmm6 + vpclmulqdq $0x00,%zmm3,%zmm4,%zmm7 + vpclmulqdq $0x01,%zmm3,%zmm4,%zmm10 + vpclmulqdq $0x10,%zmm3,%zmm4,%zmm4 + vpxorq %zmm10,%zmm4,%zmm4 + + vpsrldq $8,%zmm4,%zmm10 + vpslldq $8,%zmm4,%zmm4 + vpxorq %zmm10,%zmm6,%zmm6 + vpxorq %zmm7,%zmm4,%zmm4 + + + + vmovdqu64 POLY2(%rip),%zmm10 + + vpclmulqdq $0x01,%zmm4,%zmm10,%zmm7 + vpslldq $8,%zmm7,%zmm7 + vpxorq %zmm7,%zmm4,%zmm4 + + + + vpclmulqdq $0x00,%zmm4,%zmm10,%zmm7 + vpsrldq $4,%zmm7,%zmm7 + vpclmulqdq $0x10,%zmm4,%zmm10,%zmm4 + vpslldq $4,%zmm4,%zmm4 + + vpternlogq $0x96,%zmm7,%zmm6,%zmm4 + + vmovdqu64 %zmm4,192(%rsp) + + vpclmulqdq $0x11,%zmm3,%zmm5,%zmm6 + vpclmulqdq $0x00,%zmm3,%zmm5,%zmm7 + vpclmulqdq $0x01,%zmm3,%zmm5,%zmm10 + vpclmulqdq $0x10,%zmm3,%zmm5,%zmm5 + vpxorq %zmm10,%zmm5,%zmm5 + + vpsrldq $8,%zmm5,%zmm10 + vpslldq $8,%zmm5,%zmm5 + vpxorq %zmm10,%zmm6,%zmm6 + vpxorq %zmm7,%zmm5,%zmm5 + + + + vmovdqu64 POLY2(%rip),%zmm10 + + vpclmulqdq $0x01,%zmm5,%zmm10,%zmm7 + vpslldq $8,%zmm7,%zmm7 + vpxorq %zmm7,%zmm5,%zmm5 + + + + vpclmulqdq $0x00,%zmm5,%zmm10,%zmm7 + vpsrldq $4,%zmm7,%zmm7 + vpclmulqdq $0x10,%zmm5,%zmm10,%zmm5 + vpslldq $4,%zmm5,%zmm5 + + vpternlogq $0x96,%zmm7,%zmm6,%zmm5 + + vmovdqu64 %zmm5,128(%rsp) + + vpclmulqdq $0x11,%zmm3,%zmm4,%zmm6 + vpclmulqdq $0x00,%zmm3,%zmm4,%zmm7 + vpclmulqdq $0x01,%zmm3,%zmm4,%zmm10 + vpclmulqdq $0x10,%zmm3,%zmm4,%zmm4 + vpxorq %zmm10,%zmm4,%zmm4 + + vpsrldq $8,%zmm4,%zmm10 + vpslldq $8,%zmm4,%zmm4 + vpxorq %zmm10,%zmm6,%zmm6 + vpxorq %zmm7,%zmm4,%zmm4 + + + + vmovdqu64 POLY2(%rip),%zmm10 + + vpclmulqdq $0x01,%zmm4,%zmm10,%zmm7 + vpslldq $8,%zmm7,%zmm7 + vpxorq %zmm7,%zmm4,%zmm4 + + + + vpclmulqdq $0x00,%zmm4,%zmm10,%zmm7 + vpsrldq $4,%zmm7,%zmm7 + vpclmulqdq $0x10,%zmm4,%zmm10,%zmm4 + vpslldq $4,%zmm4,%zmm4 + + vpternlogq $0x96,%zmm7,%zmm6,%zmm4 + + vmovdqu64 %zmm4,64(%rsp) + + vpclmulqdq $0x11,%zmm3,%zmm5,%zmm6 + vpclmulqdq $0x00,%zmm3,%zmm5,%zmm7 + vpclmulqdq $0x01,%zmm3,%zmm5,%zmm10 + vpclmulqdq $0x10,%zmm3,%zmm5,%zmm5 + vpxorq %zmm10,%zmm5,%zmm5 + + vpsrldq $8,%zmm5,%zmm10 + vpslldq $8,%zmm5,%zmm5 + vpxorq %zmm10,%zmm6,%zmm6 + vpxorq %zmm7,%zmm5,%zmm5 + + + + vmovdqu64 POLY2(%rip),%zmm10 + + vpclmulqdq $0x01,%zmm5,%zmm10,%zmm7 + vpslldq $8,%zmm7,%zmm7 + vpxorq %zmm7,%zmm5,%zmm5 + + + + vpclmulqdq $0x00,%zmm5,%zmm10,%zmm7 + vpsrldq $4,%zmm7,%zmm7 + vpclmulqdq $0x10,%zmm5,%zmm10,%zmm5 + vpslldq $4,%zmm5,%zmm5 + + vpternlogq $0x96,%zmm7,%zmm6,%zmm5 + + vmovdqu64 %zmm5,0(%rsp) +L$_skip_hkeys_precomputation_502: + movq $1,%r14 + addq $512,%r11 + subq $512,%r8 + + cmpq $768,%r8 + jb L$_no_more_big_nblocks_497 +L$_encrypt_big_nblocks_497: + cmpb $240,%r15b + jae L$_16_blocks_overflow_503 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp L$_16_blocks_ok_503 +L$_16_blocks_overflow_503: + vpshufb %zmm29,%zmm2,%zmm2 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +L$_16_blocks_ok_503: + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp),%zmm1 + + + + + vshufi64x2 $255,%zmm5,%zmm5,%zmm2 + addb $16,%r15b + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + + + + + + + + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm6 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm6 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + + + + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%zmm21 + + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm15,%zmm10,%zmm26 + vpxorq %zmm12,%zmm6,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + + + + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + + + + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %zmm5,192(%r10,%r11,1) + vpshufb %zmm29,%zmm17,%zmm0 + vpshufb %zmm29,%zmm19,%zmm3 + vpshufb %zmm29,%zmm20,%zmm4 + vpshufb %zmm29,%zmm21,%zmm5 + vmovdqa64 %zmm0,1280(%rsp) + vmovdqa64 %zmm3,1344(%rsp) + vmovdqa64 %zmm4,1408(%rsp) + vmovdqa64 %zmm5,1472(%rsp) + cmpb $240,%r15b + jae L$_16_blocks_overflow_504 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp L$_16_blocks_ok_504 +L$_16_blocks_overflow_504: + vpshufb %zmm29,%zmm2,%zmm2 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +L$_16_blocks_ok_504: + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 256(%rsp),%zmm1 + + + + + vshufi64x2 $255,%zmm5,%zmm5,%zmm2 + addb $16,%r15b + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 320(%rsp),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + + + + + + + + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm6 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 384(%rsp),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 448(%rsp),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm6 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + + + + vmovdqu8 256(%rcx,%r11,1),%zmm17 + vmovdqu8 320(%rcx,%r11,1),%zmm19 + vmovdqu8 384(%rcx,%r11,1),%zmm20 + vmovdqu8 448(%rcx,%r11,1),%zmm21 + + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vpternlogq $0x96,%zmm12,%zmm6,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + + + + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + + + + movq %r9,%r10 + vmovdqu8 %zmm0,256(%r10,%r11,1) + vmovdqu8 %zmm3,320(%r10,%r11,1) + vmovdqu8 %zmm4,384(%r10,%r11,1) + vmovdqu8 %zmm5,448(%r10,%r11,1) + vpshufb %zmm29,%zmm17,%zmm0 + vpshufb %zmm29,%zmm19,%zmm3 + vpshufb %zmm29,%zmm20,%zmm4 + vpshufb %zmm29,%zmm21,%zmm5 + vmovdqa64 %zmm0,768(%rsp) + vmovdqa64 %zmm3,832(%rsp) + vmovdqa64 %zmm4,896(%rsp) + vmovdqa64 %zmm5,960(%rsp) + cmpb $240,%r15b + jae L$_16_blocks_overflow_505 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp L$_16_blocks_ok_505 +L$_16_blocks_overflow_505: + vpshufb %zmm29,%zmm2,%zmm2 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +L$_16_blocks_ok_505: + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + + + + + vshufi64x2 $255,%zmm5,%zmm5,%zmm2 + addb $16,%r15b + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + + + + + + + + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm6 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm6 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + + + + vmovdqu8 512(%rcx,%r11,1),%zmm17 + vmovdqu8 576(%rcx,%r11,1),%zmm19 + vmovdqu8 640(%rcx,%r11,1),%zmm20 + vmovdqu8 704(%rcx,%r11,1),%zmm21 + + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + + + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vpternlogq $0x96,%zmm15,%zmm12,%zmm6 + vpxorq %zmm24,%zmm6,%zmm6 + vpternlogq $0x96,%zmm10,%zmm13,%zmm7 + vpxorq %zmm25,%zmm7,%zmm7 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vextracti64x4 $1,%zmm6,%ymm12 + vpxorq %ymm12,%ymm6,%ymm6 + vextracti32x4 $1,%ymm6,%xmm12 + vpxorq %xmm12,%xmm6,%xmm6 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm6 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + + + + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + + + + movq %r9,%r10 + vmovdqu8 %zmm0,512(%r10,%r11,1) + vmovdqu8 %zmm3,576(%r10,%r11,1) + vmovdqu8 %zmm4,640(%r10,%r11,1) + vmovdqu8 %zmm5,704(%r10,%r11,1) + vpshufb %zmm29,%zmm17,%zmm0 + vpshufb %zmm29,%zmm19,%zmm3 + vpshufb %zmm29,%zmm20,%zmm4 + vpshufb %zmm29,%zmm21,%zmm5 + vmovdqa64 %zmm0,1024(%rsp) + vmovdqa64 %zmm3,1088(%rsp) + vmovdqa64 %zmm4,1152(%rsp) + vmovdqa64 %zmm5,1216(%rsp) + vmovdqa64 %zmm6,%zmm14 + + addq $768,%r11 + subq $768,%r8 + cmpq $768,%r8 + jae L$_encrypt_big_nblocks_497 + +L$_no_more_big_nblocks_497: + + cmpq $512,%r8 + jae L$_encrypt_32_blocks_497 + + cmpq $256,%r8 + jae L$_encrypt_16_blocks_497 +L$_encrypt_0_blocks_ghash_32_497: + movl %r8d,%r10d + andl $~15,%r10d + movl $256,%ebx + subl %r10d,%ebx + vmovdqa64 768(%rsp),%zmm13 + vpxorq %zmm14,%zmm13,%zmm13 + vmovdqu64 0(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 832(%rsp),%zmm13 + vmovdqu64 64(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + vpxorq %zmm10,%zmm4,%zmm26 + vpxorq %zmm6,%zmm0,%zmm24 + vpxorq %zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + vmovdqa64 896(%rsp),%zmm13 + vmovdqu64 128(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 960(%rsp),%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + + vpternlogq $0x96,%zmm10,%zmm4,%zmm26 + vpternlogq $0x96,%zmm6,%zmm0,%zmm24 + vpternlogq $0x96,%zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + addl $256,%ebx + movl %r8d,%r10d + addl $15,%r10d + shrl $4,%r10d + je L$_last_num_blocks_is_0_506 + + cmpl $8,%r10d + je L$_last_num_blocks_is_8_506 + jb L$_last_num_blocks_is_7_1_506 + + + cmpl $12,%r10d + je L$_last_num_blocks_is_12_506 + jb L$_last_num_blocks_is_11_9_506 + + + cmpl $15,%r10d + je L$_last_num_blocks_is_15_506 + ja L$_last_num_blocks_is_16_506 + cmpl $14,%r10d + je L$_last_num_blocks_is_14_506 + jmp L$_last_num_blocks_is_13_506 + +L$_last_num_blocks_is_11_9_506: + + cmpl $10,%r10d + je L$_last_num_blocks_is_10_506 + ja L$_last_num_blocks_is_11_506 + jmp L$_last_num_blocks_is_9_506 + +L$_last_num_blocks_is_7_1_506: + cmpl $4,%r10d + je L$_last_num_blocks_is_4_506 + jb L$_last_num_blocks_is_3_1_506 + + cmpl $6,%r10d + ja L$_last_num_blocks_is_7_506 + je L$_last_num_blocks_is_6_506 + jmp L$_last_num_blocks_is_5_506 + +L$_last_num_blocks_is_3_1_506: + + cmpl $2,%r10d + ja L$_last_num_blocks_is_3_506 + je L$_last_num_blocks_is_2_506 +L$_last_num_blocks_is_1_506: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $255,%r15d + jae L$_16_blocks_overflow_507 + vpaddd %xmm28,%xmm2,%xmm0 + jmp L$_16_blocks_ok_507 + +L$_16_blocks_overflow_507: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %xmm29,%xmm0,%xmm0 +L$_16_blocks_ok_507: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $0,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%xmm17{%k1}{z} + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %xmm31,%xmm0,%xmm0 + vaesenclast %xmm30,%xmm0,%xmm0 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti32x4 $0,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %xmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm17,%zmm17{%k1}{z} + vpshufb %xmm29,%xmm17,%xmm17 + vextracti32x4 $0,%zmm17,%xmm7 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_508 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm17,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm17,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm17,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm17,%xmm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_508 +L$_small_initial_partial_block_508: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + + + vpsrldq $8,%zmm26,%zmm0 + vpslldq $8,%zmm26,%zmm3 + vpxorq %zmm0,%zmm24,%zmm24 + vpxorq %zmm3,%zmm25,%zmm25 + vextracti64x4 $1,%zmm24,%ymm0 + vpxorq %ymm0,%ymm24,%ymm24 + vextracti32x4 $1,%ymm24,%xmm0 + vpxorq %xmm0,%xmm24,%xmm24 + vextracti64x4 $1,%zmm25,%ymm3 + vpxorq %ymm3,%ymm25,%ymm25 + vextracti32x4 $1,%ymm25,%xmm3 + vpxorq %xmm3,%xmm25,%xmm25 + vmovdqa64 POLY2(%rip),%xmm0 + + + vpclmulqdq $0x01,%xmm25,%xmm0,%xmm3 + vpslldq $8,%xmm3,%xmm3 + vpxorq %xmm3,%xmm25,%xmm3 + + + vpclmulqdq $0x00,%xmm3,%xmm0,%xmm4 + vpsrldq $4,%xmm4,%xmm4 + vpclmulqdq $0x10,%xmm3,%xmm0,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm24,%xmm4,%xmm14 + + + + + + + + + + + + + vpxorq %xmm7,%xmm14,%xmm14 + + jmp L$_after_reduction_508 +L$_small_initial_compute_done_508: +L$_after_reduction_508: + jmp L$_last_blocks_done_506 +L$_last_num_blocks_is_2_506: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $254,%r15d + jae L$_16_blocks_overflow_509 + vpaddd %ymm28,%ymm2,%ymm0 + jmp L$_16_blocks_ok_509 + +L$_16_blocks_overflow_509: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %ymm29,%ymm0,%ymm0 +L$_16_blocks_ok_509: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $1,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%ymm17{%k1}{z} + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %ymm31,%ymm0,%ymm0 + vaesenclast %ymm30,%ymm0,%ymm0 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %ymm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm17,%zmm17{%k1}{z} + vpshufb %ymm29,%ymm17,%ymm17 + vextracti32x4 $1,%zmm17,%xmm7 + subq $16 * (2 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_510 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm17,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm17,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm17,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm17,%ymm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_510 +L$_small_initial_partial_block_510: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm17,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm17,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm17,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm17,%xmm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_510: + + orq %r8,%r8 + je L$_after_reduction_510 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_510: + jmp L$_last_blocks_done_506 +L$_last_num_blocks_is_3_506: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $253,%r15d + jae L$_16_blocks_overflow_511 + vpaddd %zmm28,%zmm2,%zmm0 + jmp L$_16_blocks_ok_511 + +L$_16_blocks_overflow_511: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %zmm29,%zmm0,%zmm0 +L$_16_blocks_ok_511: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $2,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm0,%zmm0 + vpxorq %zmm17,%zmm0,%zmm0 + vextracti32x4 $2,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm17,%zmm17{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vextracti32x4 $2,%zmm17,%xmm7 + subq $16 * (3 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_512 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_512 +L$_small_initial_partial_block_512: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm17,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm17,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm17,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm17,%ymm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_512: + + orq %r8,%r8 + je L$_after_reduction_512 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_512: + jmp L$_last_blocks_done_506 +L$_last_num_blocks_is_4_506: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $252,%r15d + jae L$_16_blocks_overflow_513 + vpaddd %zmm28,%zmm2,%zmm0 + jmp L$_16_blocks_ok_513 + +L$_16_blocks_overflow_513: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %zmm29,%zmm0,%zmm0 +L$_16_blocks_ok_513: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $3,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm0,%zmm0 + vpxorq %zmm17,%zmm0,%zmm0 + vextracti32x4 $3,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm17,%zmm17{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vextracti32x4 $3,%zmm17,%xmm7 + subq $16 * (4 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_514 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_514 +L$_small_initial_partial_block_514: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_514: + + orq %r8,%r8 + je L$_after_reduction_514 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_514: + jmp L$_last_blocks_done_506 +L$_last_num_blocks_is_5_506: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $251,%r15d + jae L$_16_blocks_overflow_515 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %xmm27,%xmm0,%xmm3 + jmp L$_16_blocks_ok_515 + +L$_16_blocks_overflow_515: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %xmm29,%xmm3,%xmm3 +L$_16_blocks_ok_515: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $0,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%xmm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %xmm30,%xmm3,%xmm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %xmm19,%xmm3,%xmm3 + vextracti32x4 $0,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %xmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm19,%zmm19{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %xmm29,%xmm19,%xmm19 + vextracti32x4 $0,%zmm19,%xmm7 + subq $16 * (5 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_516 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm19,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm19,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm19,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm19,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_516 +L$_small_initial_partial_block_516: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_516: + + orq %r8,%r8 + je L$_after_reduction_516 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_516: + jmp L$_last_blocks_done_506 +L$_last_num_blocks_is_6_506: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $250,%r15d + jae L$_16_blocks_overflow_517 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %ymm27,%ymm0,%ymm3 + jmp L$_16_blocks_ok_517 + +L$_16_blocks_overflow_517: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %ymm29,%ymm3,%ymm3 +L$_16_blocks_ok_517: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $1,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%ymm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %ymm30,%ymm3,%ymm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %ymm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm19,%zmm19{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %ymm29,%ymm19,%ymm19 + vextracti32x4 $1,%zmm19,%xmm7 + subq $16 * (6 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_518 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm19,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm19,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm19,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm19,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_518 +L$_small_initial_partial_block_518: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm19,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm19,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm19,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm19,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_518: + + orq %r8,%r8 + je L$_after_reduction_518 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_518: + jmp L$_last_blocks_done_506 +L$_last_num_blocks_is_7_506: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $249,%r15d + jae L$_16_blocks_overflow_519 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + jmp L$_16_blocks_ok_519 + +L$_16_blocks_overflow_519: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 +L$_16_blocks_ok_519: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $2,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti32x4 $2,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm19,%zmm19{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vextracti32x4 $2,%zmm19,%xmm7 + subq $16 * (7 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_520 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_520 +L$_small_initial_partial_block_520: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm19,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm19,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm19,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm19,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_520: + + orq %r8,%r8 + je L$_after_reduction_520 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_520: + jmp L$_last_blocks_done_506 +L$_last_num_blocks_is_8_506: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $248,%r15d + jae L$_16_blocks_overflow_521 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + jmp L$_16_blocks_ok_521 + +L$_16_blocks_overflow_521: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 +L$_16_blocks_ok_521: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $3,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti32x4 $3,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm19,%zmm19{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vextracti32x4 $3,%zmm19,%xmm7 + subq $16 * (8 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_522 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_522 +L$_small_initial_partial_block_522: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_522: + + orq %r8,%r8 + je L$_after_reduction_522 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_522: + jmp L$_last_blocks_done_506 +L$_last_num_blocks_is_9_506: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $247,%r15d + jae L$_16_blocks_overflow_523 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %xmm27,%xmm3,%xmm4 + jmp L$_16_blocks_ok_523 + +L$_16_blocks_overflow_523: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %xmm29,%xmm4,%xmm4 +L$_16_blocks_ok_523: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $0,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%xmm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %xmm30,%xmm4,%xmm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %xmm20,%xmm4,%xmm4 + vextracti32x4 $0,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %xmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm20,%zmm20{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %xmm29,%xmm20,%xmm20 + vextracti32x4 $0,%zmm20,%xmm7 + subq $16 * (9 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_524 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm20,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm20,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm20,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm20,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_524 +L$_small_initial_partial_block_524: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_524: + + orq %r8,%r8 + je L$_after_reduction_524 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_524: + jmp L$_last_blocks_done_506 +L$_last_num_blocks_is_10_506: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $246,%r15d + jae L$_16_blocks_overflow_525 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %ymm27,%ymm3,%ymm4 + jmp L$_16_blocks_ok_525 + +L$_16_blocks_overflow_525: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %ymm29,%ymm4,%ymm4 +L$_16_blocks_ok_525: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $1,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%ymm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %ymm30,%ymm4,%ymm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %ymm20,%ymm4,%ymm4 + vextracti32x4 $1,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %ymm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm20,%zmm20{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %ymm29,%ymm20,%ymm20 + vextracti32x4 $1,%zmm20,%xmm7 + subq $16 * (10 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_526 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm20,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm20,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm20,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm20,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_526 +L$_small_initial_partial_block_526: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm20,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm20,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm20,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm20,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_526: + + orq %r8,%r8 + je L$_after_reduction_526 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_526: + jmp L$_last_blocks_done_506 +L$_last_num_blocks_is_11_506: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $245,%r15d + jae L$_16_blocks_overflow_527 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + jmp L$_16_blocks_ok_527 + +L$_16_blocks_overflow_527: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 +L$_16_blocks_ok_527: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $2,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vextracti32x4 $2,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm20,%zmm20{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %zmm29,%zmm20,%zmm20 + vextracti32x4 $2,%zmm20,%xmm7 + subq $16 * (11 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_528 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_528 +L$_small_initial_partial_block_528: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm20,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm20,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm20,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm20,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_528: + + orq %r8,%r8 + je L$_after_reduction_528 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_528: + jmp L$_last_blocks_done_506 +L$_last_num_blocks_is_12_506: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $244,%r15d + jae L$_16_blocks_overflow_529 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + jmp L$_16_blocks_ok_529 + +L$_16_blocks_overflow_529: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 +L$_16_blocks_ok_529: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $3,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vextracti32x4 $3,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm20,%zmm20{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %zmm29,%zmm20,%zmm20 + vextracti32x4 $3,%zmm20,%xmm7 + subq $16 * (12 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_530 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 160(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_530 +L$_small_initial_partial_block_530: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_530: + + orq %r8,%r8 + je L$_after_reduction_530 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_530: + jmp L$_last_blocks_done_506 +L$_last_num_blocks_is_13_506: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $243,%r15d + jae L$_16_blocks_overflow_531 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %xmm27,%xmm4,%xmm5 + jmp L$_16_blocks_ok_531 + +L$_16_blocks_overflow_531: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %xmm29,%xmm5,%xmm5 +L$_16_blocks_ok_531: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $0,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%xmm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %xmm30,%xmm5,%xmm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %xmm21,%xmm5,%xmm5 + vextracti32x4 $0,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %xmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm21,%zmm21{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %zmm29,%zmm20,%zmm20 + vpshufb %xmm29,%xmm21,%xmm21 + vextracti32x4 $0,%zmm21,%xmm7 + subq $16 * (13 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_532 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 144(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm21,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm21,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm21,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm21,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_532 +L$_small_initial_partial_block_532: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 160(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_532: + + orq %r8,%r8 + je L$_after_reduction_532 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_532: + jmp L$_last_blocks_done_506 +L$_last_num_blocks_is_14_506: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $242,%r15d + jae L$_16_blocks_overflow_533 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %ymm27,%ymm4,%ymm5 + jmp L$_16_blocks_ok_533 + +L$_16_blocks_overflow_533: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %ymm29,%ymm5,%ymm5 +L$_16_blocks_ok_533: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $1,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%ymm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %ymm30,%ymm5,%ymm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %ymm21,%ymm5,%ymm5 + vextracti32x4 $1,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %ymm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm21,%zmm21{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %zmm29,%zmm20,%zmm20 + vpshufb %ymm29,%ymm21,%ymm21 + vextracti32x4 $1,%zmm21,%xmm7 + subq $16 * (14 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_534 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 128(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm21,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm21,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm21,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm21,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_534 +L$_small_initial_partial_block_534: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 144(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm21,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm21,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm21,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm21,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_534: + + orq %r8,%r8 + je L$_after_reduction_534 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_534: + jmp L$_last_blocks_done_506 +L$_last_num_blocks_is_15_506: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $241,%r15d + jae L$_16_blocks_overflow_535 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp L$_16_blocks_ok_535 + +L$_16_blocks_overflow_535: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +L$_16_blocks_ok_535: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $2,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%zmm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + vextracti32x4 $2,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %zmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm21,%zmm21{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %zmm29,%zmm20,%zmm20 + vpshufb %zmm29,%zmm21,%zmm21 + vextracti32x4 $2,%zmm21,%xmm7 + subq $16 * (15 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_536 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 112(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm21,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm21,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm21,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm21,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_536 +L$_small_initial_partial_block_536: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 128(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm21,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm21,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm21,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm21,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_536: + + orq %r8,%r8 + je L$_after_reduction_536 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_536: + jmp L$_last_blocks_done_506 +L$_last_num_blocks_is_16_506: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $240,%r15d + jae L$_16_blocks_overflow_537 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp L$_16_blocks_ok_537 + +L$_16_blocks_overflow_537: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +L$_16_blocks_ok_537: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $3,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%zmm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + vextracti32x4 $3,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %zmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm21,%zmm21{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %zmm29,%zmm20,%zmm20 + vpshufb %zmm29,%zmm21,%zmm21 + vextracti32x4 $3,%zmm21,%xmm7 + subq $16 * (16 - 1),%r8 +L$_small_initial_partial_block_538: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 112(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm21,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm21,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm21,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm21,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_538: + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_538: + jmp L$_last_blocks_done_506 +L$_last_num_blocks_is_0_506: + vmovdqa64 1024(%rsp),%zmm13 + vmovdqu64 0(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 1088(%rsp),%zmm13 + vmovdqu64 64(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + vpternlogq $0x96,%zmm10,%zmm4,%zmm26 + vpternlogq $0x96,%zmm6,%zmm0,%zmm24 + vpternlogq $0x96,%zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + vmovdqa64 1152(%rsp),%zmm13 + vmovdqu64 128(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 1216(%rsp),%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + + vpternlogq $0x96,%zmm10,%zmm4,%zmm26 + vpternlogq $0x96,%zmm6,%zmm0,%zmm24 + vpternlogq $0x96,%zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + + vpsrldq $8,%zmm26,%zmm0 + vpslldq $8,%zmm26,%zmm3 + vpxorq %zmm0,%zmm24,%zmm24 + vpxorq %zmm3,%zmm25,%zmm25 + vextracti64x4 $1,%zmm24,%ymm0 + vpxorq %ymm0,%ymm24,%ymm24 + vextracti32x4 $1,%ymm24,%xmm0 + vpxorq %xmm0,%xmm24,%xmm24 + vextracti64x4 $1,%zmm25,%ymm3 + vpxorq %ymm3,%ymm25,%ymm25 + vextracti32x4 $1,%ymm25,%xmm3 + vpxorq %xmm3,%xmm25,%xmm25 + vmovdqa64 POLY2(%rip),%xmm4 + + + vpclmulqdq $0x01,%xmm25,%xmm4,%xmm0 + vpslldq $8,%xmm0,%xmm0 + vpxorq %xmm0,%xmm25,%xmm0 + + + vpclmulqdq $0x00,%xmm0,%xmm4,%xmm3 + vpsrldq $4,%xmm3,%xmm3 + vpclmulqdq $0x10,%xmm0,%xmm4,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm24,%xmm3,%xmm14 + +L$_last_blocks_done_506: + vpshufb %xmm29,%xmm2,%xmm2 + jmp L$_ghash_done_497 +L$_encrypt_32_blocks_497: + cmpb $240,%r15b + jae L$_16_blocks_overflow_539 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp L$_16_blocks_ok_539 +L$_16_blocks_overflow_539: + vpshufb %zmm29,%zmm2,%zmm2 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +L$_16_blocks_ok_539: + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp),%zmm1 + + + + + vshufi64x2 $255,%zmm5,%zmm5,%zmm2 + addb $16,%r15b + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + + + + + + + + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm6 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm6 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + + + + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%zmm21 + + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm15,%zmm10,%zmm26 + vpxorq %zmm12,%zmm6,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + + + + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + + + + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %zmm5,192(%r10,%r11,1) + vpshufb %zmm29,%zmm17,%zmm0 + vpshufb %zmm29,%zmm19,%zmm3 + vpshufb %zmm29,%zmm20,%zmm4 + vpshufb %zmm29,%zmm21,%zmm5 + vmovdqa64 %zmm0,1280(%rsp) + vmovdqa64 %zmm3,1344(%rsp) + vmovdqa64 %zmm4,1408(%rsp) + vmovdqa64 %zmm5,1472(%rsp) + cmpb $240,%r15b + jae L$_16_blocks_overflow_540 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp L$_16_blocks_ok_540 +L$_16_blocks_overflow_540: + vpshufb %zmm29,%zmm2,%zmm2 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +L$_16_blocks_ok_540: + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 256(%rsp),%zmm1 + + + + + vshufi64x2 $255,%zmm5,%zmm5,%zmm2 + addb $16,%r15b + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 320(%rsp),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + + + + + + + + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm6 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 384(%rsp),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 448(%rsp),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm6 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + + + + vmovdqu8 256(%rcx,%r11,1),%zmm17 + vmovdqu8 320(%rcx,%r11,1),%zmm19 + vmovdqu8 384(%rcx,%r11,1),%zmm20 + vmovdqu8 448(%rcx,%r11,1),%zmm21 + + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vpternlogq $0x96,%zmm12,%zmm6,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + + + + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + + + + movq %r9,%r10 + vmovdqu8 %zmm0,256(%r10,%r11,1) + vmovdqu8 %zmm3,320(%r10,%r11,1) + vmovdqu8 %zmm4,384(%r10,%r11,1) + vmovdqu8 %zmm5,448(%r10,%r11,1) + vpshufb %zmm29,%zmm17,%zmm0 + vpshufb %zmm29,%zmm19,%zmm3 + vpshufb %zmm29,%zmm20,%zmm4 + vpshufb %zmm29,%zmm21,%zmm5 + vmovdqa64 %zmm0,768(%rsp) + vmovdqa64 %zmm3,832(%rsp) + vmovdqa64 %zmm4,896(%rsp) + vmovdqa64 %zmm5,960(%rsp) + vmovdqa64 1280(%rsp),%zmm13 + vmovdqu64 512(%rsp),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 1344(%rsp),%zmm13 + vmovdqu64 576(%rsp),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + vpternlogq $0x96,%zmm10,%zmm4,%zmm26 + vpternlogq $0x96,%zmm6,%zmm0,%zmm24 + vpternlogq $0x96,%zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + vmovdqa64 1408(%rsp),%zmm13 + vmovdqu64 640(%rsp),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 1472(%rsp),%zmm13 + vmovdqu64 704(%rsp),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + + vpternlogq $0x96,%zmm10,%zmm4,%zmm26 + vpternlogq $0x96,%zmm6,%zmm0,%zmm24 + vpternlogq $0x96,%zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + + vpsrldq $8,%zmm26,%zmm0 + vpslldq $8,%zmm26,%zmm3 + vpxorq %zmm0,%zmm24,%zmm24 + vpxorq %zmm3,%zmm25,%zmm25 + vextracti64x4 $1,%zmm24,%ymm0 + vpxorq %ymm0,%ymm24,%ymm24 + vextracti32x4 $1,%ymm24,%xmm0 + vpxorq %xmm0,%xmm24,%xmm24 + vextracti64x4 $1,%zmm25,%ymm3 + vpxorq %ymm3,%ymm25,%ymm25 + vextracti32x4 $1,%ymm25,%xmm3 + vpxorq %xmm3,%xmm25,%xmm25 + vmovdqa64 POLY2(%rip),%xmm4 + + + vpclmulqdq $0x01,%xmm25,%xmm4,%xmm0 + vpslldq $8,%xmm0,%xmm0 + vpxorq %xmm0,%xmm25,%xmm0 + + + vpclmulqdq $0x00,%xmm0,%xmm4,%xmm3 + vpsrldq $4,%xmm3,%xmm3 + vpclmulqdq $0x10,%xmm0,%xmm4,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm24,%xmm3,%xmm14 + + subq $512,%r8 + addq $512,%r11 + movl %r8d,%r10d + andl $~15,%r10d + movl $512,%ebx + subl %r10d,%ebx + movl %r8d,%r10d + addl $15,%r10d + shrl $4,%r10d + je L$_last_num_blocks_is_0_541 + + cmpl $8,%r10d + je L$_last_num_blocks_is_8_541 + jb L$_last_num_blocks_is_7_1_541 + + + cmpl $12,%r10d + je L$_last_num_blocks_is_12_541 + jb L$_last_num_blocks_is_11_9_541 + + + cmpl $15,%r10d + je L$_last_num_blocks_is_15_541 + ja L$_last_num_blocks_is_16_541 + cmpl $14,%r10d + je L$_last_num_blocks_is_14_541 + jmp L$_last_num_blocks_is_13_541 + +L$_last_num_blocks_is_11_9_541: + + cmpl $10,%r10d + je L$_last_num_blocks_is_10_541 + ja L$_last_num_blocks_is_11_541 + jmp L$_last_num_blocks_is_9_541 + +L$_last_num_blocks_is_7_1_541: + cmpl $4,%r10d + je L$_last_num_blocks_is_4_541 + jb L$_last_num_blocks_is_3_1_541 + + cmpl $6,%r10d + ja L$_last_num_blocks_is_7_541 + je L$_last_num_blocks_is_6_541 + jmp L$_last_num_blocks_is_5_541 + +L$_last_num_blocks_is_3_1_541: + + cmpl $2,%r10d + ja L$_last_num_blocks_is_3_541 + je L$_last_num_blocks_is_2_541 +L$_last_num_blocks_is_1_541: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $255,%r15d + jae L$_16_blocks_overflow_542 + vpaddd %xmm28,%xmm2,%xmm0 + jmp L$_16_blocks_ok_542 + +L$_16_blocks_overflow_542: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %xmm29,%xmm0,%xmm0 +L$_16_blocks_ok_542: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $0,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%xmm17{%k1}{z} + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %xmm31,%xmm0,%xmm0 + vaesenclast %xmm30,%xmm0,%xmm0 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti32x4 $0,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %xmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm17,%zmm17{%k1}{z} + vpshufb %xmm29,%xmm17,%xmm17 + vextracti32x4 $0,%zmm17,%xmm7 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_543 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm17,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm17,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm17,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm17,%xmm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_543 +L$_small_initial_partial_block_543: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + + + vpsrldq $8,%zmm26,%zmm0 + vpslldq $8,%zmm26,%zmm3 + vpxorq %zmm0,%zmm24,%zmm24 + vpxorq %zmm3,%zmm25,%zmm25 + vextracti64x4 $1,%zmm24,%ymm0 + vpxorq %ymm0,%ymm24,%ymm24 + vextracti32x4 $1,%ymm24,%xmm0 + vpxorq %xmm0,%xmm24,%xmm24 + vextracti64x4 $1,%zmm25,%ymm3 + vpxorq %ymm3,%ymm25,%ymm25 + vextracti32x4 $1,%ymm25,%xmm3 + vpxorq %xmm3,%xmm25,%xmm25 + vmovdqa64 POLY2(%rip),%xmm0 + + + vpclmulqdq $0x01,%xmm25,%xmm0,%xmm3 + vpslldq $8,%xmm3,%xmm3 + vpxorq %xmm3,%xmm25,%xmm3 + + + vpclmulqdq $0x00,%xmm3,%xmm0,%xmm4 + vpsrldq $4,%xmm4,%xmm4 + vpclmulqdq $0x10,%xmm3,%xmm0,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm24,%xmm4,%xmm14 + + + + + + + + + + + + + vpxorq %xmm7,%xmm14,%xmm14 + + jmp L$_after_reduction_543 +L$_small_initial_compute_done_543: +L$_after_reduction_543: + jmp L$_last_blocks_done_541 +L$_last_num_blocks_is_2_541: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $254,%r15d + jae L$_16_blocks_overflow_544 + vpaddd %ymm28,%ymm2,%ymm0 + jmp L$_16_blocks_ok_544 + +L$_16_blocks_overflow_544: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %ymm29,%ymm0,%ymm0 +L$_16_blocks_ok_544: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $1,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%ymm17{%k1}{z} + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %ymm31,%ymm0,%ymm0 + vaesenclast %ymm30,%ymm0,%ymm0 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %ymm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm17,%zmm17{%k1}{z} + vpshufb %ymm29,%ymm17,%ymm17 + vextracti32x4 $1,%zmm17,%xmm7 + subq $16 * (2 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_545 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm17,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm17,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm17,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm17,%ymm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_545 +L$_small_initial_partial_block_545: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm17,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm17,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm17,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm17,%xmm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_545: + + orq %r8,%r8 + je L$_after_reduction_545 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_545: + jmp L$_last_blocks_done_541 +L$_last_num_blocks_is_3_541: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $253,%r15d + jae L$_16_blocks_overflow_546 + vpaddd %zmm28,%zmm2,%zmm0 + jmp L$_16_blocks_ok_546 + +L$_16_blocks_overflow_546: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %zmm29,%zmm0,%zmm0 +L$_16_blocks_ok_546: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $2,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm0,%zmm0 + vpxorq %zmm17,%zmm0,%zmm0 + vextracti32x4 $2,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm17,%zmm17{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vextracti32x4 $2,%zmm17,%xmm7 + subq $16 * (3 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_547 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_547 +L$_small_initial_partial_block_547: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm17,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm17,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm17,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm17,%ymm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_547: + + orq %r8,%r8 + je L$_after_reduction_547 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_547: + jmp L$_last_blocks_done_541 +L$_last_num_blocks_is_4_541: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $252,%r15d + jae L$_16_blocks_overflow_548 + vpaddd %zmm28,%zmm2,%zmm0 + jmp L$_16_blocks_ok_548 + +L$_16_blocks_overflow_548: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %zmm29,%zmm0,%zmm0 +L$_16_blocks_ok_548: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $3,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm0,%zmm0 + vpxorq %zmm17,%zmm0,%zmm0 + vextracti32x4 $3,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm17,%zmm17{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vextracti32x4 $3,%zmm17,%xmm7 + subq $16 * (4 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_549 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_549 +L$_small_initial_partial_block_549: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_549: + + orq %r8,%r8 + je L$_after_reduction_549 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_549: + jmp L$_last_blocks_done_541 +L$_last_num_blocks_is_5_541: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $251,%r15d + jae L$_16_blocks_overflow_550 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %xmm27,%xmm0,%xmm3 + jmp L$_16_blocks_ok_550 + +L$_16_blocks_overflow_550: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %xmm29,%xmm3,%xmm3 +L$_16_blocks_ok_550: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $0,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%xmm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %xmm30,%xmm3,%xmm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %xmm19,%xmm3,%xmm3 + vextracti32x4 $0,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %xmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm19,%zmm19{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %xmm29,%xmm19,%xmm19 + vextracti32x4 $0,%zmm19,%xmm7 + subq $16 * (5 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_551 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm19,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm19,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm19,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm19,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_551 +L$_small_initial_partial_block_551: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_551: + + orq %r8,%r8 + je L$_after_reduction_551 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_551: + jmp L$_last_blocks_done_541 +L$_last_num_blocks_is_6_541: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $250,%r15d + jae L$_16_blocks_overflow_552 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %ymm27,%ymm0,%ymm3 + jmp L$_16_blocks_ok_552 + +L$_16_blocks_overflow_552: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %ymm29,%ymm3,%ymm3 +L$_16_blocks_ok_552: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $1,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%ymm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %ymm30,%ymm3,%ymm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %ymm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm19,%zmm19{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %ymm29,%ymm19,%ymm19 + vextracti32x4 $1,%zmm19,%xmm7 + subq $16 * (6 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_553 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm19,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm19,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm19,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm19,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_553 +L$_small_initial_partial_block_553: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm19,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm19,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm19,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm19,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_553: + + orq %r8,%r8 + je L$_after_reduction_553 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_553: + jmp L$_last_blocks_done_541 +L$_last_num_blocks_is_7_541: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $249,%r15d + jae L$_16_blocks_overflow_554 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + jmp L$_16_blocks_ok_554 + +L$_16_blocks_overflow_554: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 +L$_16_blocks_ok_554: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $2,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti32x4 $2,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm19,%zmm19{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vextracti32x4 $2,%zmm19,%xmm7 + subq $16 * (7 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_555 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_555 +L$_small_initial_partial_block_555: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm19,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm19,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm19,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm19,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_555: + + orq %r8,%r8 + je L$_after_reduction_555 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_555: + jmp L$_last_blocks_done_541 +L$_last_num_blocks_is_8_541: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $248,%r15d + jae L$_16_blocks_overflow_556 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + jmp L$_16_blocks_ok_556 + +L$_16_blocks_overflow_556: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 +L$_16_blocks_ok_556: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $3,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti32x4 $3,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm19,%zmm19{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vextracti32x4 $3,%zmm19,%xmm7 + subq $16 * (8 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_557 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_557 +L$_small_initial_partial_block_557: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_557: + + orq %r8,%r8 + je L$_after_reduction_557 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_557: + jmp L$_last_blocks_done_541 +L$_last_num_blocks_is_9_541: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $247,%r15d + jae L$_16_blocks_overflow_558 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %xmm27,%xmm3,%xmm4 + jmp L$_16_blocks_ok_558 + +L$_16_blocks_overflow_558: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %xmm29,%xmm4,%xmm4 +L$_16_blocks_ok_558: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $0,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%xmm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %xmm30,%xmm4,%xmm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %xmm20,%xmm4,%xmm4 + vextracti32x4 $0,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %xmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm20,%zmm20{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %xmm29,%xmm20,%xmm20 + vextracti32x4 $0,%zmm20,%xmm7 + subq $16 * (9 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_559 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm20,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm20,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm20,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm20,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_559 +L$_small_initial_partial_block_559: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_559: + + orq %r8,%r8 + je L$_after_reduction_559 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_559: + jmp L$_last_blocks_done_541 +L$_last_num_blocks_is_10_541: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $246,%r15d + jae L$_16_blocks_overflow_560 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %ymm27,%ymm3,%ymm4 + jmp L$_16_blocks_ok_560 + +L$_16_blocks_overflow_560: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %ymm29,%ymm4,%ymm4 +L$_16_blocks_ok_560: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $1,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%ymm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %ymm30,%ymm4,%ymm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %ymm20,%ymm4,%ymm4 + vextracti32x4 $1,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %ymm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm20,%zmm20{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %ymm29,%ymm20,%ymm20 + vextracti32x4 $1,%zmm20,%xmm7 + subq $16 * (10 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_561 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm20,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm20,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm20,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm20,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_561 +L$_small_initial_partial_block_561: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm20,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm20,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm20,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm20,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_561: + + orq %r8,%r8 + je L$_after_reduction_561 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_561: + jmp L$_last_blocks_done_541 +L$_last_num_blocks_is_11_541: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $245,%r15d + jae L$_16_blocks_overflow_562 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + jmp L$_16_blocks_ok_562 + +L$_16_blocks_overflow_562: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 +L$_16_blocks_ok_562: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $2,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vextracti32x4 $2,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm20,%zmm20{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %zmm29,%zmm20,%zmm20 + vextracti32x4 $2,%zmm20,%xmm7 + subq $16 * (11 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_563 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_563 +L$_small_initial_partial_block_563: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm20,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm20,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm20,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm20,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_563: + + orq %r8,%r8 + je L$_after_reduction_563 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_563: + jmp L$_last_blocks_done_541 +L$_last_num_blocks_is_12_541: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $244,%r15d + jae L$_16_blocks_overflow_564 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + jmp L$_16_blocks_ok_564 + +L$_16_blocks_overflow_564: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 +L$_16_blocks_ok_564: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $3,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vextracti32x4 $3,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm20,%zmm20{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %zmm29,%zmm20,%zmm20 + vextracti32x4 $3,%zmm20,%xmm7 + subq $16 * (12 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_565 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 160(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_565 +L$_small_initial_partial_block_565: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_565: + + orq %r8,%r8 + je L$_after_reduction_565 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_565: + jmp L$_last_blocks_done_541 +L$_last_num_blocks_is_13_541: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $243,%r15d + jae L$_16_blocks_overflow_566 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %xmm27,%xmm4,%xmm5 + jmp L$_16_blocks_ok_566 + +L$_16_blocks_overflow_566: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %xmm29,%xmm5,%xmm5 +L$_16_blocks_ok_566: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $0,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%xmm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %xmm30,%xmm5,%xmm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %xmm21,%xmm5,%xmm5 + vextracti32x4 $0,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %xmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm21,%zmm21{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %zmm29,%zmm20,%zmm20 + vpshufb %xmm29,%xmm21,%xmm21 + vextracti32x4 $0,%zmm21,%xmm7 + subq $16 * (13 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_567 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 144(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm21,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm21,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm21,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm21,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_567 +L$_small_initial_partial_block_567: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 160(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_567: + + orq %r8,%r8 + je L$_after_reduction_567 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_567: + jmp L$_last_blocks_done_541 +L$_last_num_blocks_is_14_541: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $242,%r15d + jae L$_16_blocks_overflow_568 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %ymm27,%ymm4,%ymm5 + jmp L$_16_blocks_ok_568 + +L$_16_blocks_overflow_568: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %ymm29,%ymm5,%ymm5 +L$_16_blocks_ok_568: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $1,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%ymm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %ymm30,%ymm5,%ymm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %ymm21,%ymm5,%ymm5 + vextracti32x4 $1,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %ymm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm21,%zmm21{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %zmm29,%zmm20,%zmm20 + vpshufb %ymm29,%ymm21,%ymm21 + vextracti32x4 $1,%zmm21,%xmm7 + subq $16 * (14 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_569 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 128(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm21,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm21,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm21,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm21,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_569 +L$_small_initial_partial_block_569: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 144(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm21,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm21,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm21,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm21,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_569: + + orq %r8,%r8 + je L$_after_reduction_569 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_569: + jmp L$_last_blocks_done_541 +L$_last_num_blocks_is_15_541: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $241,%r15d + jae L$_16_blocks_overflow_570 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp L$_16_blocks_ok_570 + +L$_16_blocks_overflow_570: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +L$_16_blocks_ok_570: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $2,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%zmm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + vextracti32x4 $2,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %zmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm21,%zmm21{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %zmm29,%zmm20,%zmm20 + vpshufb %zmm29,%zmm21,%zmm21 + vextracti32x4 $2,%zmm21,%xmm7 + subq $16 * (15 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_571 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 112(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm21,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm21,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm21,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm21,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_571 +L$_small_initial_partial_block_571: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 128(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm21,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm21,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm21,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm21,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_571: + + orq %r8,%r8 + je L$_after_reduction_571 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_571: + jmp L$_last_blocks_done_541 +L$_last_num_blocks_is_16_541: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $240,%r15d + jae L$_16_blocks_overflow_572 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp L$_16_blocks_ok_572 + +L$_16_blocks_overflow_572: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +L$_16_blocks_ok_572: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $3,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%zmm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + vextracti32x4 $3,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %zmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm21,%zmm21{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %zmm29,%zmm20,%zmm20 + vpshufb %zmm29,%zmm21,%zmm21 + vextracti32x4 $3,%zmm21,%xmm7 + subq $16 * (16 - 1),%r8 +L$_small_initial_partial_block_573: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 112(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm21,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm21,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm21,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm21,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_573: + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_573: + jmp L$_last_blocks_done_541 +L$_last_num_blocks_is_0_541: + vmovdqa64 768(%rsp),%zmm13 + vpxorq %zmm14,%zmm13,%zmm13 + vmovdqu64 0(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 832(%rsp),%zmm13 + vmovdqu64 64(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + vpxorq %zmm10,%zmm4,%zmm26 + vpxorq %zmm6,%zmm0,%zmm24 + vpxorq %zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + vmovdqa64 896(%rsp),%zmm13 + vmovdqu64 128(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 960(%rsp),%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + + vpternlogq $0x96,%zmm10,%zmm4,%zmm26 + vpternlogq $0x96,%zmm6,%zmm0,%zmm24 + vpternlogq $0x96,%zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + + vpsrldq $8,%zmm26,%zmm0 + vpslldq $8,%zmm26,%zmm3 + vpxorq %zmm0,%zmm24,%zmm24 + vpxorq %zmm3,%zmm25,%zmm25 + vextracti64x4 $1,%zmm24,%ymm0 + vpxorq %ymm0,%ymm24,%ymm24 + vextracti32x4 $1,%ymm24,%xmm0 + vpxorq %xmm0,%xmm24,%xmm24 + vextracti64x4 $1,%zmm25,%ymm3 + vpxorq %ymm3,%ymm25,%ymm25 + vextracti32x4 $1,%ymm25,%xmm3 + vpxorq %xmm3,%xmm25,%xmm25 + vmovdqa64 POLY2(%rip),%xmm4 + + + vpclmulqdq $0x01,%xmm25,%xmm4,%xmm0 + vpslldq $8,%xmm0,%xmm0 + vpxorq %xmm0,%xmm25,%xmm0 + + + vpclmulqdq $0x00,%xmm0,%xmm4,%xmm3 + vpsrldq $4,%xmm3,%xmm3 + vpclmulqdq $0x10,%xmm0,%xmm4,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm24,%xmm3,%xmm14 + +L$_last_blocks_done_541: + vpshufb %xmm29,%xmm2,%xmm2 + jmp L$_ghash_done_497 +L$_encrypt_16_blocks_497: + cmpb $240,%r15b + jae L$_16_blocks_overflow_574 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp L$_16_blocks_ok_574 +L$_16_blocks_overflow_574: + vpshufb %zmm29,%zmm2,%zmm2 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +L$_16_blocks_ok_574: + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp),%zmm1 + + + + + vshufi64x2 $255,%zmm5,%zmm5,%zmm2 + addb $16,%r15b + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + + + + + + + + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm6 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm6 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + + + + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%zmm21 + + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm15,%zmm10,%zmm26 + vpxorq %zmm12,%zmm6,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + + + + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + + + + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %zmm5,192(%r10,%r11,1) + vpshufb %zmm29,%zmm17,%zmm0 + vpshufb %zmm29,%zmm19,%zmm3 + vpshufb %zmm29,%zmm20,%zmm4 + vpshufb %zmm29,%zmm21,%zmm5 + vmovdqa64 %zmm0,1280(%rsp) + vmovdqa64 %zmm3,1344(%rsp) + vmovdqa64 %zmm4,1408(%rsp) + vmovdqa64 %zmm5,1472(%rsp) + vmovdqa64 1024(%rsp),%zmm13 + vmovdqu64 256(%rsp),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 1088(%rsp),%zmm13 + vmovdqu64 320(%rsp),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + vpternlogq $0x96,%zmm10,%zmm4,%zmm26 + vpternlogq $0x96,%zmm6,%zmm0,%zmm24 + vpternlogq $0x96,%zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + vmovdqa64 1152(%rsp),%zmm13 + vmovdqu64 384(%rsp),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 1216(%rsp),%zmm13 + vmovdqu64 448(%rsp),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + + vpternlogq $0x96,%zmm10,%zmm4,%zmm26 + vpternlogq $0x96,%zmm6,%zmm0,%zmm24 + vpternlogq $0x96,%zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + subq $256,%r8 + addq $256,%r11 + movl %r8d,%r10d + addl $15,%r10d + shrl $4,%r10d + je L$_last_num_blocks_is_0_575 + + cmpl $8,%r10d + je L$_last_num_blocks_is_8_575 + jb L$_last_num_blocks_is_7_1_575 + + + cmpl $12,%r10d + je L$_last_num_blocks_is_12_575 + jb L$_last_num_blocks_is_11_9_575 + + + cmpl $15,%r10d + je L$_last_num_blocks_is_15_575 + ja L$_last_num_blocks_is_16_575 + cmpl $14,%r10d + je L$_last_num_blocks_is_14_575 + jmp L$_last_num_blocks_is_13_575 + +L$_last_num_blocks_is_11_9_575: + + cmpl $10,%r10d + je L$_last_num_blocks_is_10_575 + ja L$_last_num_blocks_is_11_575 + jmp L$_last_num_blocks_is_9_575 + +L$_last_num_blocks_is_7_1_575: + cmpl $4,%r10d + je L$_last_num_blocks_is_4_575 + jb L$_last_num_blocks_is_3_1_575 + + cmpl $6,%r10d + ja L$_last_num_blocks_is_7_575 + je L$_last_num_blocks_is_6_575 + jmp L$_last_num_blocks_is_5_575 + +L$_last_num_blocks_is_3_1_575: + + cmpl $2,%r10d + ja L$_last_num_blocks_is_3_575 + je L$_last_num_blocks_is_2_575 +L$_last_num_blocks_is_1_575: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $255,%r15d + jae L$_16_blocks_overflow_576 + vpaddd %xmm28,%xmm2,%xmm0 + jmp L$_16_blocks_ok_576 + +L$_16_blocks_overflow_576: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %xmm29,%xmm0,%xmm0 +L$_16_blocks_ok_576: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $0,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%xmm17{%k1}{z} + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %xmm31,%xmm0,%xmm0 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %xmm30,%xmm0,%xmm0 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti32x4 $0,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %xmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm17,%zmm17{%k1}{z} + vpshufb %xmm29,%xmm17,%xmm17 + vextracti32x4 $0,%zmm17,%xmm7 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_577 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm17,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm17,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm17,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm17,%xmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_577 +L$_small_initial_partial_block_577: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + + + + + + + + + + + + vpxorq %xmm7,%xmm14,%xmm14 + + jmp L$_after_reduction_577 +L$_small_initial_compute_done_577: +L$_after_reduction_577: + jmp L$_last_blocks_done_575 +L$_last_num_blocks_is_2_575: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $254,%r15d + jae L$_16_blocks_overflow_578 + vpaddd %ymm28,%ymm2,%ymm0 + jmp L$_16_blocks_ok_578 + +L$_16_blocks_overflow_578: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %ymm29,%ymm0,%ymm0 +L$_16_blocks_ok_578: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $1,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%ymm17{%k1}{z} + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %ymm31,%ymm0,%ymm0 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %ymm30,%ymm0,%ymm0 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %ymm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm17,%zmm17{%k1}{z} + vpshufb %ymm29,%ymm17,%ymm17 + vextracti32x4 $1,%zmm17,%xmm7 + subq $16 * (2 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_579 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm17,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm17,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm17,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm17,%ymm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_579 +L$_small_initial_partial_block_579: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm17,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm17,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm17,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm17,%xmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_579: + + orq %r8,%r8 + je L$_after_reduction_579 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_579: + jmp L$_last_blocks_done_575 +L$_last_num_blocks_is_3_575: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $253,%r15d + jae L$_16_blocks_overflow_580 + vpaddd %zmm28,%zmm2,%zmm0 + jmp L$_16_blocks_ok_580 + +L$_16_blocks_overflow_580: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %zmm29,%zmm0,%zmm0 +L$_16_blocks_ok_580: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $2,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vpxorq %zmm17,%zmm0,%zmm0 + vextracti32x4 $2,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm17,%zmm17{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vextracti32x4 $2,%zmm17,%xmm7 + subq $16 * (3 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_581 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_581 +L$_small_initial_partial_block_581: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm17,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm17,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm17,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm17,%ymm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_581: + + orq %r8,%r8 + je L$_after_reduction_581 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_581: + jmp L$_last_blocks_done_575 +L$_last_num_blocks_is_4_575: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $252,%r15d + jae L$_16_blocks_overflow_582 + vpaddd %zmm28,%zmm2,%zmm0 + jmp L$_16_blocks_ok_582 + +L$_16_blocks_overflow_582: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %zmm29,%zmm0,%zmm0 +L$_16_blocks_ok_582: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $3,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vpxorq %zmm17,%zmm0,%zmm0 + vextracti32x4 $3,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm17,%zmm17{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vextracti32x4 $3,%zmm17,%xmm7 + subq $16 * (4 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_583 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_583 +L$_small_initial_partial_block_583: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_583: + + orq %r8,%r8 + je L$_after_reduction_583 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_583: + jmp L$_last_blocks_done_575 +L$_last_num_blocks_is_5_575: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $251,%r15d + jae L$_16_blocks_overflow_584 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %xmm27,%xmm0,%xmm3 + jmp L$_16_blocks_ok_584 + +L$_16_blocks_overflow_584: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %xmm29,%xmm3,%xmm3 +L$_16_blocks_ok_584: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $0,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%xmm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %xmm30,%xmm3,%xmm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %xmm19,%xmm3,%xmm3 + vextracti32x4 $0,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %xmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm19,%zmm19{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %xmm29,%xmm19,%xmm19 + vextracti32x4 $0,%zmm19,%xmm7 + subq $16 * (5 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_585 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm19,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm19,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm19,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm19,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_585 +L$_small_initial_partial_block_585: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_585: + + orq %r8,%r8 + je L$_after_reduction_585 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_585: + jmp L$_last_blocks_done_575 +L$_last_num_blocks_is_6_575: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $250,%r15d + jae L$_16_blocks_overflow_586 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %ymm27,%ymm0,%ymm3 + jmp L$_16_blocks_ok_586 + +L$_16_blocks_overflow_586: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %ymm29,%ymm3,%ymm3 +L$_16_blocks_ok_586: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $1,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%ymm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %ymm30,%ymm3,%ymm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %ymm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm19,%zmm19{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %ymm29,%ymm19,%ymm19 + vextracti32x4 $1,%zmm19,%xmm7 + subq $16 * (6 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_587 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm19,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm19,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm19,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm19,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_587 +L$_small_initial_partial_block_587: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm19,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm19,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm19,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm19,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_587: + + orq %r8,%r8 + je L$_after_reduction_587 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_587: + jmp L$_last_blocks_done_575 +L$_last_num_blocks_is_7_575: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $249,%r15d + jae L$_16_blocks_overflow_588 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + jmp L$_16_blocks_ok_588 + +L$_16_blocks_overflow_588: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 +L$_16_blocks_ok_588: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $2,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti32x4 $2,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm19,%zmm19{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vextracti32x4 $2,%zmm19,%xmm7 + subq $16 * (7 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_589 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_589 +L$_small_initial_partial_block_589: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm19,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm19,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm19,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm19,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_589: + + orq %r8,%r8 + je L$_after_reduction_589 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_589: + jmp L$_last_blocks_done_575 +L$_last_num_blocks_is_8_575: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $248,%r15d + jae L$_16_blocks_overflow_590 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + jmp L$_16_blocks_ok_590 + +L$_16_blocks_overflow_590: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 +L$_16_blocks_ok_590: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $3,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti32x4 $3,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm19,%zmm19{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vextracti32x4 $3,%zmm19,%xmm7 + subq $16 * (8 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_591 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_591 +L$_small_initial_partial_block_591: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_591: + + orq %r8,%r8 + je L$_after_reduction_591 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_591: + jmp L$_last_blocks_done_575 +L$_last_num_blocks_is_9_575: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $247,%r15d + jae L$_16_blocks_overflow_592 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %xmm27,%xmm3,%xmm4 + jmp L$_16_blocks_ok_592 + +L$_16_blocks_overflow_592: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %xmm29,%xmm4,%xmm4 +L$_16_blocks_ok_592: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $0,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%xmm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %xmm30,%xmm4,%xmm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %xmm20,%xmm4,%xmm4 + vextracti32x4 $0,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %xmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm20,%zmm20{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %xmm29,%xmm20,%xmm20 + vextracti32x4 $0,%zmm20,%xmm7 + subq $16 * (9 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_593 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm20,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm20,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm20,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm20,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_593 +L$_small_initial_partial_block_593: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_593: + + orq %r8,%r8 + je L$_after_reduction_593 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_593: + jmp L$_last_blocks_done_575 +L$_last_num_blocks_is_10_575: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $246,%r15d + jae L$_16_blocks_overflow_594 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %ymm27,%ymm3,%ymm4 + jmp L$_16_blocks_ok_594 + +L$_16_blocks_overflow_594: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %ymm29,%ymm4,%ymm4 +L$_16_blocks_ok_594: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $1,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%ymm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %ymm30,%ymm4,%ymm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %ymm20,%ymm4,%ymm4 + vextracti32x4 $1,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %ymm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm20,%zmm20{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %ymm29,%ymm20,%ymm20 + vextracti32x4 $1,%zmm20,%xmm7 + subq $16 * (10 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_595 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm20,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm20,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm20,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm20,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_595 +L$_small_initial_partial_block_595: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm20,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm20,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm20,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm20,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_595: + + orq %r8,%r8 + je L$_after_reduction_595 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_595: + jmp L$_last_blocks_done_575 +L$_last_num_blocks_is_11_575: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $245,%r15d + jae L$_16_blocks_overflow_596 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + jmp L$_16_blocks_ok_596 + +L$_16_blocks_overflow_596: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 +L$_16_blocks_ok_596: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $2,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vextracti32x4 $2,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm20,%zmm20{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %zmm29,%zmm20,%zmm20 + vextracti32x4 $2,%zmm20,%xmm7 + subq $16 * (11 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_597 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_597 +L$_small_initial_partial_block_597: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm20,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm20,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm20,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm20,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_597: + + orq %r8,%r8 + je L$_after_reduction_597 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_597: + jmp L$_last_blocks_done_575 +L$_last_num_blocks_is_12_575: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $244,%r15d + jae L$_16_blocks_overflow_598 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + jmp L$_16_blocks_ok_598 + +L$_16_blocks_overflow_598: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 +L$_16_blocks_ok_598: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $3,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vextracti32x4 $3,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm20,%zmm20{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %zmm29,%zmm20,%zmm20 + vextracti32x4 $3,%zmm20,%xmm7 + subq $16 * (12 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_599 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 160(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_599 +L$_small_initial_partial_block_599: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_599: + + orq %r8,%r8 + je L$_after_reduction_599 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_599: + jmp L$_last_blocks_done_575 +L$_last_num_blocks_is_13_575: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $243,%r15d + jae L$_16_blocks_overflow_600 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %xmm27,%xmm4,%xmm5 + jmp L$_16_blocks_ok_600 + +L$_16_blocks_overflow_600: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %xmm29,%xmm5,%xmm5 +L$_16_blocks_ok_600: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $0,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%xmm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %xmm30,%xmm5,%xmm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %xmm21,%xmm5,%xmm5 + vextracti32x4 $0,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %xmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm21,%zmm21{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %zmm29,%zmm20,%zmm20 + vpshufb %xmm29,%xmm21,%xmm21 + vextracti32x4 $0,%zmm21,%xmm7 + subq $16 * (13 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_601 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 144(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm21,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm21,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm21,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm21,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_601 +L$_small_initial_partial_block_601: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 160(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_601: + + orq %r8,%r8 + je L$_after_reduction_601 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_601: + jmp L$_last_blocks_done_575 +L$_last_num_blocks_is_14_575: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $242,%r15d + jae L$_16_blocks_overflow_602 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %ymm27,%ymm4,%ymm5 + jmp L$_16_blocks_ok_602 + +L$_16_blocks_overflow_602: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %ymm29,%ymm5,%ymm5 +L$_16_blocks_ok_602: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $1,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%ymm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %ymm30,%ymm5,%ymm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %ymm21,%ymm5,%ymm5 + vextracti32x4 $1,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %ymm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm21,%zmm21{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %zmm29,%zmm20,%zmm20 + vpshufb %ymm29,%ymm21,%ymm21 + vextracti32x4 $1,%zmm21,%xmm7 + subq $16 * (14 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_603 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 128(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm21,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm21,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm21,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm21,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_603 +L$_small_initial_partial_block_603: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 144(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm21,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm21,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm21,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm21,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_603: + + orq %r8,%r8 + je L$_after_reduction_603 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_603: + jmp L$_last_blocks_done_575 +L$_last_num_blocks_is_15_575: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $241,%r15d + jae L$_16_blocks_overflow_604 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp L$_16_blocks_ok_604 + +L$_16_blocks_overflow_604: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +L$_16_blocks_ok_604: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $2,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%zmm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + vextracti32x4 $2,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %zmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm21,%zmm21{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %zmm29,%zmm20,%zmm20 + vpshufb %zmm29,%zmm21,%zmm21 + vextracti32x4 $2,%zmm21,%xmm7 + subq $16 * (15 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_605 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 112(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm21,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm21,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm21,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm21,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_605 +L$_small_initial_partial_block_605: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 128(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm21,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm21,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm21,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm21,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_605: + + orq %r8,%r8 + je L$_after_reduction_605 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_605: + jmp L$_last_blocks_done_575 +L$_last_num_blocks_is_16_575: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $240,%r15d + jae L$_16_blocks_overflow_606 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp L$_16_blocks_ok_606 + +L$_16_blocks_overflow_606: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +L$_16_blocks_ok_606: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $3,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%zmm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + vextracti32x4 $3,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %zmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm21,%zmm21{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %zmm29,%zmm20,%zmm20 + vpshufb %zmm29,%zmm21,%zmm21 + vextracti32x4 $3,%zmm21,%xmm7 + subq $16 * (16 - 1),%r8 +L$_small_initial_partial_block_607: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 112(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm21,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm21,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm21,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm21,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_607: + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_607: + jmp L$_last_blocks_done_575 +L$_last_num_blocks_is_0_575: + vmovdqa64 1280(%rsp),%zmm13 + vmovdqu64 512(%rsp),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 1344(%rsp),%zmm13 + vmovdqu64 576(%rsp),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + vpternlogq $0x96,%zmm10,%zmm4,%zmm26 + vpternlogq $0x96,%zmm6,%zmm0,%zmm24 + vpternlogq $0x96,%zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + vmovdqa64 1408(%rsp),%zmm13 + vmovdqu64 640(%rsp),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 1472(%rsp),%zmm13 + vmovdqu64 704(%rsp),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + + vpternlogq $0x96,%zmm10,%zmm4,%zmm26 + vpternlogq $0x96,%zmm6,%zmm0,%zmm24 + vpternlogq $0x96,%zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + + vpsrldq $8,%zmm26,%zmm0 + vpslldq $8,%zmm26,%zmm3 + vpxorq %zmm0,%zmm24,%zmm24 + vpxorq %zmm3,%zmm25,%zmm25 + vextracti64x4 $1,%zmm24,%ymm0 + vpxorq %ymm0,%ymm24,%ymm24 + vextracti32x4 $1,%ymm24,%xmm0 + vpxorq %xmm0,%xmm24,%xmm24 + vextracti64x4 $1,%zmm25,%ymm3 + vpxorq %ymm3,%ymm25,%ymm25 + vextracti32x4 $1,%ymm25,%xmm3 + vpxorq %xmm3,%xmm25,%xmm25 + vmovdqa64 POLY2(%rip),%xmm4 + + + vpclmulqdq $0x01,%xmm25,%xmm4,%xmm0 + vpslldq $8,%xmm0,%xmm0 + vpxorq %xmm0,%xmm25,%xmm0 + + + vpclmulqdq $0x00,%xmm0,%xmm4,%xmm3 + vpsrldq $4,%xmm3,%xmm3 + vpclmulqdq $0x10,%xmm0,%xmm4,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm24,%xmm3,%xmm14 + +L$_last_blocks_done_575: + vpshufb %xmm29,%xmm2,%xmm2 + jmp L$_ghash_done_497 + +L$_message_below_32_blocks_497: + + + subq $256,%r8 + addq $256,%r11 + movl %r8d,%r10d + testq %r14,%r14 + jnz L$_skip_hkeys_precomputation_608 + vmovdqu64 640(%rsp),%zmm3 + + + vshufi64x2 $0x00,%zmm3,%zmm3,%zmm3 + + vmovdqu64 576(%rsp),%zmm4 + vmovdqu64 512(%rsp),%zmm5 + + vpclmulqdq $0x11,%zmm3,%zmm4,%zmm6 + vpclmulqdq $0x00,%zmm3,%zmm4,%zmm7 + vpclmulqdq $0x01,%zmm3,%zmm4,%zmm10 + vpclmulqdq $0x10,%zmm3,%zmm4,%zmm4 + vpxorq %zmm10,%zmm4,%zmm4 + + vpsrldq $8,%zmm4,%zmm10 + vpslldq $8,%zmm4,%zmm4 + vpxorq %zmm10,%zmm6,%zmm6 + vpxorq %zmm7,%zmm4,%zmm4 + + + + vmovdqu64 POLY2(%rip),%zmm10 + + vpclmulqdq $0x01,%zmm4,%zmm10,%zmm7 + vpslldq $8,%zmm7,%zmm7 + vpxorq %zmm7,%zmm4,%zmm4 + + + + vpclmulqdq $0x00,%zmm4,%zmm10,%zmm7 + vpsrldq $4,%zmm7,%zmm7 + vpclmulqdq $0x10,%zmm4,%zmm10,%zmm4 + vpslldq $4,%zmm4,%zmm4 + + vpternlogq $0x96,%zmm7,%zmm6,%zmm4 + + vmovdqu64 %zmm4,448(%rsp) + + vpclmulqdq $0x11,%zmm3,%zmm5,%zmm6 + vpclmulqdq $0x00,%zmm3,%zmm5,%zmm7 + vpclmulqdq $0x01,%zmm3,%zmm5,%zmm10 + vpclmulqdq $0x10,%zmm3,%zmm5,%zmm5 + vpxorq %zmm10,%zmm5,%zmm5 + + vpsrldq $8,%zmm5,%zmm10 + vpslldq $8,%zmm5,%zmm5 + vpxorq %zmm10,%zmm6,%zmm6 + vpxorq %zmm7,%zmm5,%zmm5 + + + + vmovdqu64 POLY2(%rip),%zmm10 + + vpclmulqdq $0x01,%zmm5,%zmm10,%zmm7 + vpslldq $8,%zmm7,%zmm7 + vpxorq %zmm7,%zmm5,%zmm5 + + + + vpclmulqdq $0x00,%zmm5,%zmm10,%zmm7 + vpsrldq $4,%zmm7,%zmm7 + vpclmulqdq $0x10,%zmm5,%zmm10,%zmm5 + vpslldq $4,%zmm5,%zmm5 + + vpternlogq $0x96,%zmm7,%zmm6,%zmm5 + + vmovdqu64 %zmm5,384(%rsp) + + vpclmulqdq $0x11,%zmm3,%zmm4,%zmm6 + vpclmulqdq $0x00,%zmm3,%zmm4,%zmm7 + vpclmulqdq $0x01,%zmm3,%zmm4,%zmm10 + vpclmulqdq $0x10,%zmm3,%zmm4,%zmm4 + vpxorq %zmm10,%zmm4,%zmm4 + + vpsrldq $8,%zmm4,%zmm10 + vpslldq $8,%zmm4,%zmm4 + vpxorq %zmm10,%zmm6,%zmm6 + vpxorq %zmm7,%zmm4,%zmm4 + + + + vmovdqu64 POLY2(%rip),%zmm10 + + vpclmulqdq $0x01,%zmm4,%zmm10,%zmm7 + vpslldq $8,%zmm7,%zmm7 + vpxorq %zmm7,%zmm4,%zmm4 + + + + vpclmulqdq $0x00,%zmm4,%zmm10,%zmm7 + vpsrldq $4,%zmm7,%zmm7 + vpclmulqdq $0x10,%zmm4,%zmm10,%zmm4 + vpslldq $4,%zmm4,%zmm4 + + vpternlogq $0x96,%zmm7,%zmm6,%zmm4 + + vmovdqu64 %zmm4,320(%rsp) + + vpclmulqdq $0x11,%zmm3,%zmm5,%zmm6 + vpclmulqdq $0x00,%zmm3,%zmm5,%zmm7 + vpclmulqdq $0x01,%zmm3,%zmm5,%zmm10 + vpclmulqdq $0x10,%zmm3,%zmm5,%zmm5 + vpxorq %zmm10,%zmm5,%zmm5 + + vpsrldq $8,%zmm5,%zmm10 + vpslldq $8,%zmm5,%zmm5 + vpxorq %zmm10,%zmm6,%zmm6 + vpxorq %zmm7,%zmm5,%zmm5 + + + + vmovdqu64 POLY2(%rip),%zmm10 + + vpclmulqdq $0x01,%zmm5,%zmm10,%zmm7 + vpslldq $8,%zmm7,%zmm7 + vpxorq %zmm7,%zmm5,%zmm5 + + + + vpclmulqdq $0x00,%zmm5,%zmm10,%zmm7 + vpsrldq $4,%zmm7,%zmm7 + vpclmulqdq $0x10,%zmm5,%zmm10,%zmm5 + vpslldq $4,%zmm5,%zmm5 + + vpternlogq $0x96,%zmm7,%zmm6,%zmm5 + + vmovdqu64 %zmm5,256(%rsp) +L$_skip_hkeys_precomputation_608: + movq $1,%r14 + andl $~15,%r10d + movl $512,%ebx + subl %r10d,%ebx + movl %r8d,%r10d + addl $15,%r10d + shrl $4,%r10d + je L$_last_num_blocks_is_0_609 + + cmpl $8,%r10d + je L$_last_num_blocks_is_8_609 + jb L$_last_num_blocks_is_7_1_609 + + + cmpl $12,%r10d + je L$_last_num_blocks_is_12_609 + jb L$_last_num_blocks_is_11_9_609 + + + cmpl $15,%r10d + je L$_last_num_blocks_is_15_609 + ja L$_last_num_blocks_is_16_609 + cmpl $14,%r10d + je L$_last_num_blocks_is_14_609 + jmp L$_last_num_blocks_is_13_609 + +L$_last_num_blocks_is_11_9_609: + + cmpl $10,%r10d + je L$_last_num_blocks_is_10_609 + ja L$_last_num_blocks_is_11_609 + jmp L$_last_num_blocks_is_9_609 + +L$_last_num_blocks_is_7_1_609: + cmpl $4,%r10d + je L$_last_num_blocks_is_4_609 + jb L$_last_num_blocks_is_3_1_609 + + cmpl $6,%r10d + ja L$_last_num_blocks_is_7_609 + je L$_last_num_blocks_is_6_609 + jmp L$_last_num_blocks_is_5_609 + +L$_last_num_blocks_is_3_1_609: + + cmpl $2,%r10d + ja L$_last_num_blocks_is_3_609 + je L$_last_num_blocks_is_2_609 +L$_last_num_blocks_is_1_609: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $255,%r15d + jae L$_16_blocks_overflow_610 + vpaddd %xmm28,%xmm2,%xmm0 + jmp L$_16_blocks_ok_610 + +L$_16_blocks_overflow_610: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %xmm29,%xmm0,%xmm0 +L$_16_blocks_ok_610: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $0,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%xmm17{%k1}{z} + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %xmm31,%xmm0,%xmm0 + vaesenclast %xmm30,%xmm0,%xmm0 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti32x4 $0,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %xmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm17,%zmm17{%k1}{z} + vpshufb %xmm29,%xmm17,%xmm17 + vextracti32x4 $0,%zmm17,%xmm7 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_611 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm17,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm17,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm17,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm17,%xmm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_611 +L$_small_initial_partial_block_611: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + + + vpsrldq $8,%zmm26,%zmm0 + vpslldq $8,%zmm26,%zmm3 + vpxorq %zmm0,%zmm24,%zmm24 + vpxorq %zmm3,%zmm25,%zmm25 + vextracti64x4 $1,%zmm24,%ymm0 + vpxorq %ymm0,%ymm24,%ymm24 + vextracti32x4 $1,%ymm24,%xmm0 + vpxorq %xmm0,%xmm24,%xmm24 + vextracti64x4 $1,%zmm25,%ymm3 + vpxorq %ymm3,%ymm25,%ymm25 + vextracti32x4 $1,%ymm25,%xmm3 + vpxorq %xmm3,%xmm25,%xmm25 + vmovdqa64 POLY2(%rip),%xmm0 + + + vpclmulqdq $0x01,%xmm25,%xmm0,%xmm3 + vpslldq $8,%xmm3,%xmm3 + vpxorq %xmm3,%xmm25,%xmm3 + + + vpclmulqdq $0x00,%xmm3,%xmm0,%xmm4 + vpsrldq $4,%xmm4,%xmm4 + vpclmulqdq $0x10,%xmm3,%xmm0,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm24,%xmm4,%xmm14 + + + + + + + + + + + + + vpxorq %xmm7,%xmm14,%xmm14 + + jmp L$_after_reduction_611 +L$_small_initial_compute_done_611: +L$_after_reduction_611: + jmp L$_last_blocks_done_609 +L$_last_num_blocks_is_2_609: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $254,%r15d + jae L$_16_blocks_overflow_612 + vpaddd %ymm28,%ymm2,%ymm0 + jmp L$_16_blocks_ok_612 + +L$_16_blocks_overflow_612: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %ymm29,%ymm0,%ymm0 +L$_16_blocks_ok_612: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $1,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%ymm17{%k1}{z} + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %ymm31,%ymm0,%ymm0 + vaesenclast %ymm30,%ymm0,%ymm0 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %ymm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm17,%zmm17{%k1}{z} + vpshufb %ymm29,%ymm17,%ymm17 + vextracti32x4 $1,%zmm17,%xmm7 + subq $16 * (2 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_613 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm17,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm17,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm17,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm17,%ymm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_613 +L$_small_initial_partial_block_613: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm17,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm17,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm17,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm17,%xmm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_613: + + orq %r8,%r8 + je L$_after_reduction_613 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_613: + jmp L$_last_blocks_done_609 +L$_last_num_blocks_is_3_609: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $253,%r15d + jae L$_16_blocks_overflow_614 + vpaddd %zmm28,%zmm2,%zmm0 + jmp L$_16_blocks_ok_614 + +L$_16_blocks_overflow_614: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %zmm29,%zmm0,%zmm0 +L$_16_blocks_ok_614: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $2,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm0,%zmm0 + vpxorq %zmm17,%zmm0,%zmm0 + vextracti32x4 $2,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm17,%zmm17{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vextracti32x4 $2,%zmm17,%xmm7 + subq $16 * (3 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_615 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_615 +L$_small_initial_partial_block_615: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm17,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm17,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm17,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm17,%ymm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_615: + + orq %r8,%r8 + je L$_after_reduction_615 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_615: + jmp L$_last_blocks_done_609 +L$_last_num_blocks_is_4_609: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $252,%r15d + jae L$_16_blocks_overflow_616 + vpaddd %zmm28,%zmm2,%zmm0 + jmp L$_16_blocks_ok_616 + +L$_16_blocks_overflow_616: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %zmm29,%zmm0,%zmm0 +L$_16_blocks_ok_616: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $3,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm0,%zmm0 + vpxorq %zmm17,%zmm0,%zmm0 + vextracti32x4 $3,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm17,%zmm17{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vextracti32x4 $3,%zmm17,%xmm7 + subq $16 * (4 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_617 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_617 +L$_small_initial_partial_block_617: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_617: + + orq %r8,%r8 + je L$_after_reduction_617 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_617: + jmp L$_last_blocks_done_609 +L$_last_num_blocks_is_5_609: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $251,%r15d + jae L$_16_blocks_overflow_618 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %xmm27,%xmm0,%xmm3 + jmp L$_16_blocks_ok_618 + +L$_16_blocks_overflow_618: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %xmm29,%xmm3,%xmm3 +L$_16_blocks_ok_618: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $0,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%xmm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %xmm30,%xmm3,%xmm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %xmm19,%xmm3,%xmm3 + vextracti32x4 $0,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %xmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm19,%zmm19{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %xmm29,%xmm19,%xmm19 + vextracti32x4 $0,%zmm19,%xmm7 + subq $16 * (5 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_619 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm19,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm19,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm19,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm19,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_619 +L$_small_initial_partial_block_619: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_619: + + orq %r8,%r8 + je L$_after_reduction_619 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_619: + jmp L$_last_blocks_done_609 +L$_last_num_blocks_is_6_609: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $250,%r15d + jae L$_16_blocks_overflow_620 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %ymm27,%ymm0,%ymm3 + jmp L$_16_blocks_ok_620 + +L$_16_blocks_overflow_620: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %ymm29,%ymm3,%ymm3 +L$_16_blocks_ok_620: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $1,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%ymm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %ymm30,%ymm3,%ymm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %ymm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm19,%zmm19{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %ymm29,%ymm19,%ymm19 + vextracti32x4 $1,%zmm19,%xmm7 + subq $16 * (6 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_621 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm19,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm19,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm19,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm19,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_621 +L$_small_initial_partial_block_621: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm19,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm19,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm19,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm19,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_621: + + orq %r8,%r8 + je L$_after_reduction_621 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_621: + jmp L$_last_blocks_done_609 +L$_last_num_blocks_is_7_609: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $249,%r15d + jae L$_16_blocks_overflow_622 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + jmp L$_16_blocks_ok_622 + +L$_16_blocks_overflow_622: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 +L$_16_blocks_ok_622: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $2,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti32x4 $2,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm19,%zmm19{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vextracti32x4 $2,%zmm19,%xmm7 + subq $16 * (7 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_623 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_623 +L$_small_initial_partial_block_623: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm19,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm19,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm19,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm19,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_623: + + orq %r8,%r8 + je L$_after_reduction_623 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_623: + jmp L$_last_blocks_done_609 +L$_last_num_blocks_is_8_609: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $248,%r15d + jae L$_16_blocks_overflow_624 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + jmp L$_16_blocks_ok_624 + +L$_16_blocks_overflow_624: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 +L$_16_blocks_ok_624: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $3,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti32x4 $3,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm19,%zmm19{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vextracti32x4 $3,%zmm19,%xmm7 + subq $16 * (8 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_625 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_625 +L$_small_initial_partial_block_625: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_625: + + orq %r8,%r8 + je L$_after_reduction_625 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_625: + jmp L$_last_blocks_done_609 +L$_last_num_blocks_is_9_609: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $247,%r15d + jae L$_16_blocks_overflow_626 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %xmm27,%xmm3,%xmm4 + jmp L$_16_blocks_ok_626 + +L$_16_blocks_overflow_626: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %xmm29,%xmm4,%xmm4 +L$_16_blocks_ok_626: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $0,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%xmm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %xmm30,%xmm4,%xmm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %xmm20,%xmm4,%xmm4 + vextracti32x4 $0,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %xmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm20,%zmm20{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %xmm29,%xmm20,%xmm20 + vextracti32x4 $0,%zmm20,%xmm7 + subq $16 * (9 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_627 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm20,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm20,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm20,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm20,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_627 +L$_small_initial_partial_block_627: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_627: + + orq %r8,%r8 + je L$_after_reduction_627 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_627: + jmp L$_last_blocks_done_609 +L$_last_num_blocks_is_10_609: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $246,%r15d + jae L$_16_blocks_overflow_628 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %ymm27,%ymm3,%ymm4 + jmp L$_16_blocks_ok_628 + +L$_16_blocks_overflow_628: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %ymm29,%ymm4,%ymm4 +L$_16_blocks_ok_628: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $1,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%ymm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %ymm30,%ymm4,%ymm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %ymm20,%ymm4,%ymm4 + vextracti32x4 $1,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %ymm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm20,%zmm20{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %ymm29,%ymm20,%ymm20 + vextracti32x4 $1,%zmm20,%xmm7 + subq $16 * (10 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_629 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm20,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm20,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm20,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm20,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_629 +L$_small_initial_partial_block_629: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm20,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm20,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm20,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm20,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_629: + + orq %r8,%r8 + je L$_after_reduction_629 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_629: + jmp L$_last_blocks_done_609 +L$_last_num_blocks_is_11_609: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $245,%r15d + jae L$_16_blocks_overflow_630 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + jmp L$_16_blocks_ok_630 + +L$_16_blocks_overflow_630: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 +L$_16_blocks_ok_630: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $2,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vextracti32x4 $2,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm20,%zmm20{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %zmm29,%zmm20,%zmm20 + vextracti32x4 $2,%zmm20,%xmm7 + subq $16 * (11 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_631 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_631 +L$_small_initial_partial_block_631: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm20,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm20,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm20,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm20,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_631: + + orq %r8,%r8 + je L$_after_reduction_631 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_631: + jmp L$_last_blocks_done_609 +L$_last_num_blocks_is_12_609: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $244,%r15d + jae L$_16_blocks_overflow_632 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + jmp L$_16_blocks_ok_632 + +L$_16_blocks_overflow_632: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 +L$_16_blocks_ok_632: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $3,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vextracti32x4 $3,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm20,%zmm20{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %zmm29,%zmm20,%zmm20 + vextracti32x4 $3,%zmm20,%xmm7 + subq $16 * (12 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_633 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 160(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_633 +L$_small_initial_partial_block_633: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_633: + + orq %r8,%r8 + je L$_after_reduction_633 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_633: + jmp L$_last_blocks_done_609 +L$_last_num_blocks_is_13_609: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $243,%r15d + jae L$_16_blocks_overflow_634 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %xmm27,%xmm4,%xmm5 + jmp L$_16_blocks_ok_634 + +L$_16_blocks_overflow_634: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %xmm29,%xmm5,%xmm5 +L$_16_blocks_ok_634: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $0,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%xmm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %xmm30,%xmm5,%xmm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %xmm21,%xmm5,%xmm5 + vextracti32x4 $0,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %xmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm21,%zmm21{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %zmm29,%zmm20,%zmm20 + vpshufb %xmm29,%xmm21,%xmm21 + vextracti32x4 $0,%zmm21,%xmm7 + subq $16 * (13 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_635 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 144(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm21,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm21,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm21,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm21,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_635 +L$_small_initial_partial_block_635: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 160(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_635: + + orq %r8,%r8 + je L$_after_reduction_635 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_635: + jmp L$_last_blocks_done_609 +L$_last_num_blocks_is_14_609: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $242,%r15d + jae L$_16_blocks_overflow_636 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %ymm27,%ymm4,%ymm5 + jmp L$_16_blocks_ok_636 + +L$_16_blocks_overflow_636: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %ymm29,%ymm5,%ymm5 +L$_16_blocks_ok_636: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $1,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%ymm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %ymm30,%ymm5,%ymm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %ymm21,%ymm5,%ymm5 + vextracti32x4 $1,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %ymm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm21,%zmm21{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %zmm29,%zmm20,%zmm20 + vpshufb %ymm29,%ymm21,%ymm21 + vextracti32x4 $1,%zmm21,%xmm7 + subq $16 * (14 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_637 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 128(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm21,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm21,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm21,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm21,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_637 +L$_small_initial_partial_block_637: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 144(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm21,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm21,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm21,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm21,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_637: + + orq %r8,%r8 + je L$_after_reduction_637 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_637: + jmp L$_last_blocks_done_609 +L$_last_num_blocks_is_15_609: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $241,%r15d + jae L$_16_blocks_overflow_638 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp L$_16_blocks_ok_638 + +L$_16_blocks_overflow_638: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +L$_16_blocks_ok_638: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $2,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%zmm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + vextracti32x4 $2,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %zmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm21,%zmm21{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %zmm29,%zmm20,%zmm20 + vpshufb %zmm29,%zmm21,%zmm21 + vextracti32x4 $2,%zmm21,%xmm7 + subq $16 * (15 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_639 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 112(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm21,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm21,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm21,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm21,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_639 +L$_small_initial_partial_block_639: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 128(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm21,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm21,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm21,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm21,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_639: + + orq %r8,%r8 + je L$_after_reduction_639 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_639: + jmp L$_last_blocks_done_609 +L$_last_num_blocks_is_16_609: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $240,%r15d + jae L$_16_blocks_overflow_640 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp L$_16_blocks_ok_640 + +L$_16_blocks_overflow_640: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +L$_16_blocks_ok_640: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $3,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%zmm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + vextracti32x4 $3,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %zmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm21,%zmm21{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %zmm29,%zmm20,%zmm20 + vpshufb %zmm29,%zmm21,%zmm21 + vextracti32x4 $3,%zmm21,%xmm7 + subq $16 * (16 - 1),%r8 +L$_small_initial_partial_block_641: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 112(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm21,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm21,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm21,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm21,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_641: + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_641: + jmp L$_last_blocks_done_609 +L$_last_num_blocks_is_0_609: + vmovdqa64 768(%rsp),%zmm13 + vpxorq %zmm14,%zmm13,%zmm13 + vmovdqu64 0(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 832(%rsp),%zmm13 + vmovdqu64 64(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + vpxorq %zmm10,%zmm4,%zmm26 + vpxorq %zmm6,%zmm0,%zmm24 + vpxorq %zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + vmovdqa64 896(%rsp),%zmm13 + vmovdqu64 128(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 960(%rsp),%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + + vpternlogq $0x96,%zmm10,%zmm4,%zmm26 + vpternlogq $0x96,%zmm6,%zmm0,%zmm24 + vpternlogq $0x96,%zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + + vpsrldq $8,%zmm26,%zmm0 + vpslldq $8,%zmm26,%zmm3 + vpxorq %zmm0,%zmm24,%zmm24 + vpxorq %zmm3,%zmm25,%zmm25 + vextracti64x4 $1,%zmm24,%ymm0 + vpxorq %ymm0,%ymm24,%ymm24 + vextracti32x4 $1,%ymm24,%xmm0 + vpxorq %xmm0,%xmm24,%xmm24 + vextracti64x4 $1,%zmm25,%ymm3 + vpxorq %ymm3,%ymm25,%ymm25 + vextracti32x4 $1,%ymm25,%xmm3 + vpxorq %xmm3,%xmm25,%xmm25 + vmovdqa64 POLY2(%rip),%xmm4 + + + vpclmulqdq $0x01,%xmm25,%xmm4,%xmm0 + vpslldq $8,%xmm0,%xmm0 + vpxorq %xmm0,%xmm25,%xmm0 + + + vpclmulqdq $0x00,%xmm0,%xmm4,%xmm3 + vpsrldq $4,%xmm3,%xmm3 + vpclmulqdq $0x10,%xmm0,%xmm4,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm24,%xmm3,%xmm14 + +L$_last_blocks_done_609: + vpshufb %xmm29,%xmm2,%xmm2 + jmp L$_ghash_done_497 + +L$_message_below_equal_16_blocks_497: + + + movl %r8d,%r12d + addl $15,%r12d + shrl $4,%r12d + cmpq $8,%r12 + je L$_small_initial_num_blocks_is_8_642 + jl L$_small_initial_num_blocks_is_7_1_642 + + + cmpq $12,%r12 + je L$_small_initial_num_blocks_is_12_642 + jl L$_small_initial_num_blocks_is_11_9_642 + + + cmpq $16,%r12 + je L$_small_initial_num_blocks_is_16_642 + cmpq $15,%r12 + je L$_small_initial_num_blocks_is_15_642 + cmpq $14,%r12 + je L$_small_initial_num_blocks_is_14_642 + jmp L$_small_initial_num_blocks_is_13_642 + +L$_small_initial_num_blocks_is_11_9_642: + + cmpq $11,%r12 + je L$_small_initial_num_blocks_is_11_642 + cmpq $10,%r12 + je L$_small_initial_num_blocks_is_10_642 + jmp L$_small_initial_num_blocks_is_9_642 + +L$_small_initial_num_blocks_is_7_1_642: + cmpq $4,%r12 + je L$_small_initial_num_blocks_is_4_642 + jl L$_small_initial_num_blocks_is_3_1_642 + + cmpq $7,%r12 + je L$_small_initial_num_blocks_is_7_642 + cmpq $6,%r12 + je L$_small_initial_num_blocks_is_6_642 + jmp L$_small_initial_num_blocks_is_5_642 + +L$_small_initial_num_blocks_is_3_1_642: + + cmpq $3,%r12 + je L$_small_initial_num_blocks_is_3_642 + cmpq $2,%r12 + je L$_small_initial_num_blocks_is_2_642 + + + + + +L$_small_initial_num_blocks_is_1_642: + vmovdqa64 SHUF_MASK(%rip),%xmm29 + vpaddd ONE(%rip),%xmm2,%xmm0 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $0,%zmm0,%xmm2 + vpshufb %xmm29,%xmm0,%xmm0 + vmovdqu8 0(%rcx,%r11,1),%xmm6{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %xmm15,%xmm0,%xmm0 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %xmm15,%xmm0,%xmm0 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %xmm15,%xmm0,%xmm0 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %xmm15,%xmm0,%xmm0 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %xmm15,%xmm0,%xmm0 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %xmm15,%xmm0,%xmm0 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %xmm15,%xmm0,%xmm0 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %xmm15,%xmm0,%xmm0 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %xmm15,%xmm0,%xmm0 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %xmm15,%xmm0,%xmm0 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenclast %xmm15,%xmm0,%xmm0 + vpxorq %xmm6,%xmm0,%xmm0 + vextracti32x4 $0,%zmm0,%xmm12 + movq %r9,%r10 + vmovdqu8 %xmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm0,%zmm0{%k1}{z} + vpshufb %xmm29,%xmm6,%xmm6 + vextracti32x4 $0,%zmm6,%xmm13 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_643 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 336(%rsi),%xmm20 + vpclmulqdq $0x01,%xmm20,%xmm6,%xmm4 + vpclmulqdq $0x10,%xmm20,%xmm6,%xmm5 + vpclmulqdq $0x11,%xmm20,%xmm6,%xmm0 + vpclmulqdq $0x00,%xmm20,%xmm6,%xmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_643 +L$_small_initial_partial_block_643: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + + + + + + + + + + + + vpxorq %xmm13,%xmm14,%xmm14 + + jmp L$_after_reduction_643 +L$_small_initial_compute_done_643: +L$_after_reduction_643: + jmp L$_small_initial_blocks_encrypted_642 +L$_small_initial_num_blocks_is_2_642: + vmovdqa64 SHUF_MASK(%rip),%ymm29 + vshufi64x2 $0,%ymm2,%ymm2,%ymm0 + vpaddd ddq_add_1234(%rip),%ymm0,%ymm0 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $1,%zmm0,%xmm2 + vpshufb %ymm29,%ymm0,%ymm0 + vmovdqu8 0(%rcx,%r11,1),%ymm6{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %ymm15,%ymm0,%ymm0 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %ymm15,%ymm0,%ymm0 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %ymm15,%ymm0,%ymm0 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %ymm15,%ymm0,%ymm0 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %ymm15,%ymm0,%ymm0 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %ymm15,%ymm0,%ymm0 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %ymm15,%ymm0,%ymm0 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %ymm15,%ymm0,%ymm0 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %ymm15,%ymm0,%ymm0 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %ymm15,%ymm0,%ymm0 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenclast %ymm15,%ymm0,%ymm0 + vpxorq %ymm6,%ymm0,%ymm0 + vextracti32x4 $1,%zmm0,%xmm12 + movq %r9,%r10 + vmovdqu8 %ymm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm0,%zmm0{%k1}{z} + vpshufb %ymm29,%ymm6,%ymm6 + vextracti32x4 $1,%zmm6,%xmm13 + subq $16 * (2 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_644 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 320(%rsi),%ymm20 + vpclmulqdq $0x01,%ymm20,%ymm6,%ymm4 + vpclmulqdq $0x10,%ymm20,%ymm6,%ymm5 + vpclmulqdq $0x11,%ymm20,%ymm6,%ymm0 + vpclmulqdq $0x00,%ymm20,%ymm6,%ymm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_644 +L$_small_initial_partial_block_644: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 336(%rsi),%xmm20 + vpclmulqdq $0x01,%xmm20,%xmm6,%xmm4 + vpclmulqdq $0x10,%xmm20,%xmm6,%xmm5 + vpclmulqdq $0x11,%xmm20,%xmm6,%xmm0 + vpclmulqdq $0x00,%xmm20,%xmm6,%xmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_644: + + orq %r8,%r8 + je L$_after_reduction_644 + vpxorq %xmm13,%xmm14,%xmm14 +L$_after_reduction_644: + jmp L$_small_initial_blocks_encrypted_642 +L$_small_initial_num_blocks_is_3_642: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $2,%zmm0,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vmovdqu8 0(%rcx,%r11,1),%zmm6{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vpxorq %zmm6,%zmm0,%zmm0 + vextracti32x4 $2,%zmm0,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm0,%zmm0{%k1}{z} + vpshufb %zmm29,%zmm6,%zmm6 + vextracti32x4 $2,%zmm6,%xmm13 + subq $16 * (3 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_645 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 304(%rsi),%ymm20 + vinserti64x2 $2,336(%rsi),%zmm20,%zmm20 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_645 +L$_small_initial_partial_block_645: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 320(%rsi),%ymm20 + vpclmulqdq $0x01,%ymm20,%ymm6,%ymm4 + vpclmulqdq $0x10,%ymm20,%ymm6,%ymm5 + vpclmulqdq $0x11,%ymm20,%ymm6,%ymm0 + vpclmulqdq $0x00,%ymm20,%ymm6,%ymm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_645: + + orq %r8,%r8 + je L$_after_reduction_645 + vpxorq %xmm13,%xmm14,%xmm14 +L$_after_reduction_645: + jmp L$_small_initial_blocks_encrypted_642 +L$_small_initial_num_blocks_is_4_642: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $3,%zmm0,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vmovdqu8 0(%rcx,%r11,1),%zmm6{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vpxorq %zmm6,%zmm0,%zmm0 + vextracti32x4 $3,%zmm0,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm0,%zmm0{%k1}{z} + vpshufb %zmm29,%zmm6,%zmm6 + vextracti32x4 $3,%zmm6,%xmm13 + subq $16 * (4 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_646 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 288(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm19 + + vpxorq %zmm19,%zmm17,%zmm17 + vpsrldq $8,%zmm17,%zmm4 + vpslldq $8,%zmm17,%zmm5 + vpxorq %zmm4,%zmm15,%zmm0 + vpxorq %zmm5,%zmm16,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_646 +L$_small_initial_partial_block_646: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 304(%rsi),%ymm20 + vinserti64x2 $2,336(%rsi),%zmm20,%zmm20 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_646: + + orq %r8,%r8 + je L$_after_reduction_646 + vpxorq %xmm13,%xmm14,%xmm14 +L$_after_reduction_646: + jmp L$_small_initial_blocks_encrypted_642 +L$_small_initial_num_blocks_is_5_642: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd ddq_add_5678(%rip),%zmm2,%zmm3 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + subq $64,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $0,%zmm3,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %xmm29,%xmm3,%xmm3 + vmovdqu8 0(%rcx,%r11,1),%zmm6 + vmovdqu8 64(%rcx,%r11,1),%xmm7{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %xmm15,%xmm3,%xmm3 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %xmm15,%xmm3,%xmm3 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %xmm15,%xmm3,%xmm3 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %xmm15,%xmm3,%xmm3 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %xmm15,%xmm3,%xmm3 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %xmm15,%xmm3,%xmm3 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %xmm15,%xmm3,%xmm3 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %xmm15,%xmm3,%xmm3 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %xmm15,%xmm3,%xmm3 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %xmm15,%xmm3,%xmm3 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vaesenclast %xmm15,%xmm3,%xmm3 + vpxorq %zmm6,%zmm0,%zmm0 + vpxorq %xmm7,%xmm3,%xmm3 + vextracti32x4 $0,%zmm3,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %xmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm3,%zmm3{%k1}{z} + vpshufb %zmm29,%zmm6,%zmm6 + vpshufb %xmm29,%xmm7,%xmm7 + vextracti32x4 $0,%zmm7,%xmm13 + subq $16 * (5 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_647 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 272(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm19 + vmovdqu64 336(%rsi),%xmm20 + vpclmulqdq $0x01,%xmm20,%xmm7,%xmm4 + vpclmulqdq $0x10,%xmm20,%xmm7,%xmm5 + vpclmulqdq $0x11,%xmm20,%xmm7,%xmm0 + vpclmulqdq $0x00,%xmm20,%xmm7,%xmm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_647 +L$_small_initial_partial_block_647: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 288(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm19 + + vpxorq %zmm19,%zmm17,%zmm17 + vpsrldq $8,%zmm17,%zmm4 + vpslldq $8,%zmm17,%zmm5 + vpxorq %zmm4,%zmm15,%zmm0 + vpxorq %zmm5,%zmm16,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_647: + + orq %r8,%r8 + je L$_after_reduction_647 + vpxorq %xmm13,%xmm14,%xmm14 +L$_after_reduction_647: + jmp L$_small_initial_blocks_encrypted_642 +L$_small_initial_num_blocks_is_6_642: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd ddq_add_5678(%rip),%zmm2,%zmm3 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + subq $64,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $1,%zmm3,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %ymm29,%ymm3,%ymm3 + vmovdqu8 0(%rcx,%r11,1),%zmm6 + vmovdqu8 64(%rcx,%r11,1),%ymm7{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %ymm15,%ymm3,%ymm3 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %ymm15,%ymm3,%ymm3 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %ymm15,%ymm3,%ymm3 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %ymm15,%ymm3,%ymm3 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %ymm15,%ymm3,%ymm3 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %ymm15,%ymm3,%ymm3 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %ymm15,%ymm3,%ymm3 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %ymm15,%ymm3,%ymm3 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %ymm15,%ymm3,%ymm3 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %ymm15,%ymm3,%ymm3 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vaesenclast %ymm15,%ymm3,%ymm3 + vpxorq %zmm6,%zmm0,%zmm0 + vpxorq %ymm7,%ymm3,%ymm3 + vextracti32x4 $1,%zmm3,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %ymm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm3,%zmm3{%k1}{z} + vpshufb %zmm29,%zmm6,%zmm6 + vpshufb %ymm29,%ymm7,%ymm7 + vextracti32x4 $1,%zmm7,%xmm13 + subq $16 * (6 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_648 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 256(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm19 + vmovdqu64 320(%rsi),%ymm20 + vpclmulqdq $0x01,%ymm20,%ymm7,%ymm4 + vpclmulqdq $0x10,%ymm20,%ymm7,%ymm5 + vpclmulqdq $0x11,%ymm20,%ymm7,%ymm0 + vpclmulqdq $0x00,%ymm20,%ymm7,%ymm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_648 +L$_small_initial_partial_block_648: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 272(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm19 + vmovdqu64 336(%rsi),%xmm20 + vpclmulqdq $0x01,%xmm20,%xmm7,%xmm4 + vpclmulqdq $0x10,%xmm20,%xmm7,%xmm5 + vpclmulqdq $0x11,%xmm20,%xmm7,%xmm0 + vpclmulqdq $0x00,%xmm20,%xmm7,%xmm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_648: + + orq %r8,%r8 + je L$_after_reduction_648 + vpxorq %xmm13,%xmm14,%xmm14 +L$_after_reduction_648: + jmp L$_small_initial_blocks_encrypted_642 +L$_small_initial_num_blocks_is_7_642: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd ddq_add_5678(%rip),%zmm2,%zmm3 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + subq $64,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $2,%zmm3,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vmovdqu8 0(%rcx,%r11,1),%zmm6 + vmovdqu8 64(%rcx,%r11,1),%zmm7{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vaesenclast %zmm15,%zmm3,%zmm3 + vpxorq %zmm6,%zmm0,%zmm0 + vpxorq %zmm7,%zmm3,%zmm3 + vextracti32x4 $2,%zmm3,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm3,%zmm3{%k1}{z} + vpshufb %zmm29,%zmm6,%zmm6 + vpshufb %zmm29,%zmm7,%zmm7 + vextracti32x4 $2,%zmm7,%xmm13 + subq $16 * (7 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_649 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 240(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm19 + vmovdqu64 304(%rsi),%ymm20 + vinserti64x2 $2,336(%rsi),%zmm20,%zmm20 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm5 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_649 +L$_small_initial_partial_block_649: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 256(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm19 + vmovdqu64 320(%rsi),%ymm20 + vpclmulqdq $0x01,%ymm20,%ymm7,%ymm4 + vpclmulqdq $0x10,%ymm20,%ymm7,%ymm5 + vpclmulqdq $0x11,%ymm20,%ymm7,%ymm0 + vpclmulqdq $0x00,%ymm20,%ymm7,%ymm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_649: + + orq %r8,%r8 + je L$_after_reduction_649 + vpxorq %xmm13,%xmm14,%xmm14 +L$_after_reduction_649: + jmp L$_small_initial_blocks_encrypted_642 +L$_small_initial_num_blocks_is_8_642: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd ddq_add_5678(%rip),%zmm2,%zmm3 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + subq $64,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $3,%zmm3,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vmovdqu8 0(%rcx,%r11,1),%zmm6 + vmovdqu8 64(%rcx,%r11,1),%zmm7{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vaesenclast %zmm15,%zmm3,%zmm3 + vpxorq %zmm6,%zmm0,%zmm0 + vpxorq %zmm7,%zmm3,%zmm3 + vextracti32x4 $3,%zmm3,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm3,%zmm3{%k1}{z} + vpshufb %zmm29,%zmm6,%zmm6 + vpshufb %zmm29,%zmm7,%zmm7 + vextracti32x4 $3,%zmm7,%xmm13 + subq $16 * (8 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_650 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 224(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 288(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vpxorq %zmm15,%zmm0,%zmm15 + vpxorq %zmm16,%zmm3,%zmm16 + vpxorq %zmm17,%zmm4,%zmm17 + vpxorq %zmm19,%zmm5,%zmm19 + + vpxorq %zmm19,%zmm17,%zmm17 + vpsrldq $8,%zmm17,%zmm4 + vpslldq $8,%zmm17,%zmm5 + vpxorq %zmm4,%zmm15,%zmm0 + vpxorq %zmm5,%zmm16,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_650 +L$_small_initial_partial_block_650: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 240(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm19 + vmovdqu64 304(%rsi),%ymm20 + vinserti64x2 $2,336(%rsi),%zmm20,%zmm20 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm5 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_650: + + orq %r8,%r8 + je L$_after_reduction_650 + vpxorq %xmm13,%xmm14,%xmm14 +L$_after_reduction_650: + jmp L$_small_initial_blocks_encrypted_642 +L$_small_initial_num_blocks_is_9_642: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd ddq_add_5678(%rip),%zmm2,%zmm3 + vpaddd ddq_add_8888(%rip),%zmm0,%zmm4 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + subq $128,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $0,%zmm4,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %xmm29,%xmm4,%xmm4 + vmovdqu8 0(%rcx,%r11,1),%zmm6 + vmovdqu8 64(%rcx,%r11,1),%zmm7 + vmovdqu8 128(%rcx,%r11,1),%xmm10{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm15,%zmm3,%zmm3 + vpxorq %xmm15,%xmm4,%xmm4 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %xmm15,%xmm4,%xmm4 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %xmm15,%xmm4,%xmm4 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %xmm15,%xmm4,%xmm4 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %xmm15,%xmm4,%xmm4 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %xmm15,%xmm4,%xmm4 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %xmm15,%xmm4,%xmm4 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %xmm15,%xmm4,%xmm4 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %xmm15,%xmm4,%xmm4 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %xmm15,%xmm4,%xmm4 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vaesenclast %zmm15,%zmm3,%zmm3 + vaesenclast %xmm15,%xmm4,%xmm4 + vpxorq %zmm6,%zmm0,%zmm0 + vpxorq %zmm7,%zmm3,%zmm3 + vpxorq %xmm10,%xmm4,%xmm4 + vextracti32x4 $0,%zmm4,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %xmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm4,%zmm4{%k1}{z} + vpshufb %zmm29,%zmm6,%zmm6 + vpshufb %zmm29,%zmm7,%zmm7 + vpshufb %xmm29,%xmm10,%xmm10 + vextracti32x4 $0,%zmm10,%xmm13 + subq $16 * (9 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_651 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 208(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 272(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vpxorq %zmm15,%zmm0,%zmm15 + vpxorq %zmm16,%zmm3,%zmm16 + vpxorq %zmm17,%zmm4,%zmm17 + vpxorq %zmm19,%zmm5,%zmm19 + vmovdqu64 336(%rsi),%xmm20 + vpclmulqdq $0x01,%xmm20,%xmm10,%xmm4 + vpclmulqdq $0x10,%xmm20,%xmm10,%xmm5 + vpclmulqdq $0x11,%xmm20,%xmm10,%xmm0 + vpclmulqdq $0x00,%xmm20,%xmm10,%xmm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_651 +L$_small_initial_partial_block_651: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 224(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 288(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vpxorq %zmm15,%zmm0,%zmm15 + vpxorq %zmm16,%zmm3,%zmm16 + vpxorq %zmm17,%zmm4,%zmm17 + vpxorq %zmm19,%zmm5,%zmm19 + + vpxorq %zmm19,%zmm17,%zmm17 + vpsrldq $8,%zmm17,%zmm4 + vpslldq $8,%zmm17,%zmm5 + vpxorq %zmm4,%zmm15,%zmm0 + vpxorq %zmm5,%zmm16,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_651: + + orq %r8,%r8 + je L$_after_reduction_651 + vpxorq %xmm13,%xmm14,%xmm14 +L$_after_reduction_651: + jmp L$_small_initial_blocks_encrypted_642 +L$_small_initial_num_blocks_is_10_642: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd ddq_add_5678(%rip),%zmm2,%zmm3 + vpaddd ddq_add_8888(%rip),%zmm0,%zmm4 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + subq $128,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $1,%zmm4,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %ymm29,%ymm4,%ymm4 + vmovdqu8 0(%rcx,%r11,1),%zmm6 + vmovdqu8 64(%rcx,%r11,1),%zmm7 + vmovdqu8 128(%rcx,%r11,1),%ymm10{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm15,%zmm3,%zmm3 + vpxorq %ymm15,%ymm4,%ymm4 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %ymm15,%ymm4,%ymm4 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %ymm15,%ymm4,%ymm4 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %ymm15,%ymm4,%ymm4 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %ymm15,%ymm4,%ymm4 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %ymm15,%ymm4,%ymm4 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %ymm15,%ymm4,%ymm4 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %ymm15,%ymm4,%ymm4 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %ymm15,%ymm4,%ymm4 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %ymm15,%ymm4,%ymm4 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vaesenclast %zmm15,%zmm3,%zmm3 + vaesenclast %ymm15,%ymm4,%ymm4 + vpxorq %zmm6,%zmm0,%zmm0 + vpxorq %zmm7,%zmm3,%zmm3 + vpxorq %ymm10,%ymm4,%ymm4 + vextracti32x4 $1,%zmm4,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %ymm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm4,%zmm4{%k1}{z} + vpshufb %zmm29,%zmm6,%zmm6 + vpshufb %zmm29,%zmm7,%zmm7 + vpshufb %ymm29,%ymm10,%ymm10 + vextracti32x4 $1,%zmm10,%xmm13 + subq $16 * (10 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_652 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 192(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 256(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vpxorq %zmm15,%zmm0,%zmm15 + vpxorq %zmm16,%zmm3,%zmm16 + vpxorq %zmm17,%zmm4,%zmm17 + vpxorq %zmm19,%zmm5,%zmm19 + vmovdqu64 320(%rsi),%ymm20 + vpclmulqdq $0x01,%ymm20,%ymm10,%ymm4 + vpclmulqdq $0x10,%ymm20,%ymm10,%ymm5 + vpclmulqdq $0x11,%ymm20,%ymm10,%ymm0 + vpclmulqdq $0x00,%ymm20,%ymm10,%ymm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_652 +L$_small_initial_partial_block_652: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 208(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 272(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vpxorq %zmm15,%zmm0,%zmm15 + vpxorq %zmm16,%zmm3,%zmm16 + vpxorq %zmm17,%zmm4,%zmm17 + vpxorq %zmm19,%zmm5,%zmm19 + vmovdqu64 336(%rsi),%xmm20 + vpclmulqdq $0x01,%xmm20,%xmm10,%xmm4 + vpclmulqdq $0x10,%xmm20,%xmm10,%xmm5 + vpclmulqdq $0x11,%xmm20,%xmm10,%xmm0 + vpclmulqdq $0x00,%xmm20,%xmm10,%xmm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_652: + + orq %r8,%r8 + je L$_after_reduction_652 + vpxorq %xmm13,%xmm14,%xmm14 +L$_after_reduction_652: + jmp L$_small_initial_blocks_encrypted_642 +L$_small_initial_num_blocks_is_11_642: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd ddq_add_5678(%rip),%zmm2,%zmm3 + vpaddd ddq_add_8888(%rip),%zmm0,%zmm4 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + subq $128,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $2,%zmm4,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vmovdqu8 0(%rcx,%r11,1),%zmm6 + vmovdqu8 64(%rcx,%r11,1),%zmm7 + vmovdqu8 128(%rcx,%r11,1),%zmm10{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm15,%zmm3,%zmm3 + vpxorq %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vaesenclast %zmm15,%zmm3,%zmm3 + vaesenclast %zmm15,%zmm4,%zmm4 + vpxorq %zmm6,%zmm0,%zmm0 + vpxorq %zmm7,%zmm3,%zmm3 + vpxorq %zmm10,%zmm4,%zmm4 + vextracti32x4 $2,%zmm4,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm4,%zmm4{%k1}{z} + vpshufb %zmm29,%zmm6,%zmm6 + vpshufb %zmm29,%zmm7,%zmm7 + vpshufb %zmm29,%zmm10,%zmm10 + vextracti32x4 $2,%zmm10,%xmm13 + subq $16 * (11 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_653 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 176(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 240(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vpxorq %zmm15,%zmm0,%zmm15 + vpxorq %zmm16,%zmm3,%zmm16 + vpxorq %zmm17,%zmm4,%zmm17 + vpxorq %zmm19,%zmm5,%zmm19 + vmovdqu64 304(%rsi),%ymm20 + vinserti64x2 $2,336(%rsi),%zmm20,%zmm20 + vpclmulqdq $0x01,%zmm20,%zmm10,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm10,%zmm5 + vpclmulqdq $0x11,%zmm20,%zmm10,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm10,%zmm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_653 +L$_small_initial_partial_block_653: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 192(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 256(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vpxorq %zmm15,%zmm0,%zmm15 + vpxorq %zmm16,%zmm3,%zmm16 + vpxorq %zmm17,%zmm4,%zmm17 + vpxorq %zmm19,%zmm5,%zmm19 + vmovdqu64 320(%rsi),%ymm20 + vpclmulqdq $0x01,%ymm20,%ymm10,%ymm4 + vpclmulqdq $0x10,%ymm20,%ymm10,%ymm5 + vpclmulqdq $0x11,%ymm20,%ymm10,%ymm0 + vpclmulqdq $0x00,%ymm20,%ymm10,%ymm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_653: + + orq %r8,%r8 + je L$_after_reduction_653 + vpxorq %xmm13,%xmm14,%xmm14 +L$_after_reduction_653: + jmp L$_small_initial_blocks_encrypted_642 +L$_small_initial_num_blocks_is_12_642: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd ddq_add_5678(%rip),%zmm2,%zmm3 + vpaddd ddq_add_8888(%rip),%zmm0,%zmm4 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + subq $128,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $3,%zmm4,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vmovdqu8 0(%rcx,%r11,1),%zmm6 + vmovdqu8 64(%rcx,%r11,1),%zmm7 + vmovdqu8 128(%rcx,%r11,1),%zmm10{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm15,%zmm3,%zmm3 + vpxorq %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vaesenclast %zmm15,%zmm3,%zmm3 + vaesenclast %zmm15,%zmm4,%zmm4 + vpxorq %zmm6,%zmm0,%zmm0 + vpxorq %zmm7,%zmm3,%zmm3 + vpxorq %zmm10,%zmm4,%zmm4 + vextracti32x4 $3,%zmm4,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm4,%zmm4{%k1}{z} + vpshufb %zmm29,%zmm6,%zmm6 + vpshufb %zmm29,%zmm7,%zmm7 + vpshufb %zmm29,%zmm10,%zmm10 + vextracti32x4 $3,%zmm10,%xmm13 + subq $16 * (12 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_654 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 160(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 224(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vmovdqu64 288(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x00,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm0,%zmm6,%zmm15 + vpternlogq $0x96,%zmm3,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x10,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm4,%zmm6,%zmm17 + vpternlogq $0x96,%zmm5,%zmm7,%zmm19 + + vpxorq %zmm19,%zmm17,%zmm17 + vpsrldq $8,%zmm17,%zmm4 + vpslldq $8,%zmm17,%zmm5 + vpxorq %zmm4,%zmm15,%zmm0 + vpxorq %zmm5,%zmm16,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_654 +L$_small_initial_partial_block_654: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 176(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 240(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vpxorq %zmm15,%zmm0,%zmm15 + vpxorq %zmm16,%zmm3,%zmm16 + vpxorq %zmm17,%zmm4,%zmm17 + vpxorq %zmm19,%zmm5,%zmm19 + vmovdqu64 304(%rsi),%ymm20 + vinserti64x2 $2,336(%rsi),%zmm20,%zmm20 + vpclmulqdq $0x01,%zmm20,%zmm10,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm10,%zmm5 + vpclmulqdq $0x11,%zmm20,%zmm10,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm10,%zmm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_654: + + orq %r8,%r8 + je L$_after_reduction_654 + vpxorq %xmm13,%xmm14,%xmm14 +L$_after_reduction_654: + jmp L$_small_initial_blocks_encrypted_642 +L$_small_initial_num_blocks_is_13_642: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd ddq_add_5678(%rip),%zmm2,%zmm3 + vpaddd ddq_add_8888(%rip),%zmm0,%zmm4 + vpaddd ddq_add_8888(%rip),%zmm3,%zmm5 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + subq $192,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $0,%zmm5,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %xmm29,%xmm5,%xmm5 + vmovdqu8 0(%rcx,%r11,1),%zmm6 + vmovdqu8 64(%rcx,%r11,1),%zmm7 + vmovdqu8 128(%rcx,%r11,1),%zmm10 + vmovdqu8 192(%rcx,%r11,1),%xmm11{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm15,%zmm3,%zmm3 + vpxorq %zmm15,%zmm4,%zmm4 + vpxorq %xmm15,%xmm5,%xmm5 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %xmm15,%xmm5,%xmm5 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %xmm15,%xmm5,%xmm5 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %xmm15,%xmm5,%xmm5 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %xmm15,%xmm5,%xmm5 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %xmm15,%xmm5,%xmm5 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %xmm15,%xmm5,%xmm5 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %xmm15,%xmm5,%xmm5 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %xmm15,%xmm5,%xmm5 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %xmm15,%xmm5,%xmm5 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vaesenclast %zmm15,%zmm3,%zmm3 + vaesenclast %zmm15,%zmm4,%zmm4 + vaesenclast %xmm15,%xmm5,%xmm5 + vpxorq %zmm6,%zmm0,%zmm0 + vpxorq %zmm7,%zmm3,%zmm3 + vpxorq %zmm10,%zmm4,%zmm4 + vpxorq %xmm11,%xmm5,%xmm5 + vextracti32x4 $0,%zmm5,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %xmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm5,%zmm5{%k1}{z} + vpshufb %zmm29,%zmm6,%zmm6 + vpshufb %zmm29,%zmm7,%zmm7 + vpshufb %zmm29,%zmm10,%zmm10 + vpshufb %xmm29,%xmm11,%xmm11 + vextracti32x4 $0,%zmm11,%xmm13 + subq $16 * (13 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_655 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 144(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 208(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vmovdqu64 272(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x00,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm0,%zmm6,%zmm15 + vpternlogq $0x96,%zmm3,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x10,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm4,%zmm6,%zmm17 + vpternlogq $0x96,%zmm5,%zmm7,%zmm19 + vmovdqu64 336(%rsi),%xmm20 + vpclmulqdq $0x01,%xmm20,%xmm11,%xmm4 + vpclmulqdq $0x10,%xmm20,%xmm11,%xmm5 + vpclmulqdq $0x11,%xmm20,%xmm11,%xmm0 + vpclmulqdq $0x00,%xmm20,%xmm11,%xmm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_655 +L$_small_initial_partial_block_655: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 160(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 224(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vmovdqu64 288(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x00,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm0,%zmm6,%zmm15 + vpternlogq $0x96,%zmm3,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x10,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm4,%zmm6,%zmm17 + vpternlogq $0x96,%zmm5,%zmm7,%zmm19 + + vpxorq %zmm19,%zmm17,%zmm17 + vpsrldq $8,%zmm17,%zmm4 + vpslldq $8,%zmm17,%zmm5 + vpxorq %zmm4,%zmm15,%zmm0 + vpxorq %zmm5,%zmm16,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_655: + + orq %r8,%r8 + je L$_after_reduction_655 + vpxorq %xmm13,%xmm14,%xmm14 +L$_after_reduction_655: + jmp L$_small_initial_blocks_encrypted_642 +L$_small_initial_num_blocks_is_14_642: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd ddq_add_5678(%rip),%zmm2,%zmm3 + vpaddd ddq_add_8888(%rip),%zmm0,%zmm4 + vpaddd ddq_add_8888(%rip),%zmm3,%zmm5 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + subq $192,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $1,%zmm5,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %ymm29,%ymm5,%ymm5 + vmovdqu8 0(%rcx,%r11,1),%zmm6 + vmovdqu8 64(%rcx,%r11,1),%zmm7 + vmovdqu8 128(%rcx,%r11,1),%zmm10 + vmovdqu8 192(%rcx,%r11,1),%ymm11{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm15,%zmm3,%zmm3 + vpxorq %zmm15,%zmm4,%zmm4 + vpxorq %ymm15,%ymm5,%ymm5 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %ymm15,%ymm5,%ymm5 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %ymm15,%ymm5,%ymm5 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %ymm15,%ymm5,%ymm5 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %ymm15,%ymm5,%ymm5 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %ymm15,%ymm5,%ymm5 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %ymm15,%ymm5,%ymm5 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %ymm15,%ymm5,%ymm5 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %ymm15,%ymm5,%ymm5 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %ymm15,%ymm5,%ymm5 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vaesenclast %zmm15,%zmm3,%zmm3 + vaesenclast %zmm15,%zmm4,%zmm4 + vaesenclast %ymm15,%ymm5,%ymm5 + vpxorq %zmm6,%zmm0,%zmm0 + vpxorq %zmm7,%zmm3,%zmm3 + vpxorq %zmm10,%zmm4,%zmm4 + vpxorq %ymm11,%ymm5,%ymm5 + vextracti32x4 $1,%zmm5,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %ymm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm5,%zmm5{%k1}{z} + vpshufb %zmm29,%zmm6,%zmm6 + vpshufb %zmm29,%zmm7,%zmm7 + vpshufb %zmm29,%zmm10,%zmm10 + vpshufb %ymm29,%ymm11,%ymm11 + vextracti32x4 $1,%zmm11,%xmm13 + subq $16 * (14 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_656 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 128(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 192(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vmovdqu64 256(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x00,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm0,%zmm6,%zmm15 + vpternlogq $0x96,%zmm3,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x10,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm4,%zmm6,%zmm17 + vpternlogq $0x96,%zmm5,%zmm7,%zmm19 + vmovdqu64 320(%rsi),%ymm20 + vpclmulqdq $0x01,%ymm20,%ymm11,%ymm4 + vpclmulqdq $0x10,%ymm20,%ymm11,%ymm5 + vpclmulqdq $0x11,%ymm20,%ymm11,%ymm0 + vpclmulqdq $0x00,%ymm20,%ymm11,%ymm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_656 +L$_small_initial_partial_block_656: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 144(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 208(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vmovdqu64 272(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x00,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm0,%zmm6,%zmm15 + vpternlogq $0x96,%zmm3,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x10,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm4,%zmm6,%zmm17 + vpternlogq $0x96,%zmm5,%zmm7,%zmm19 + vmovdqu64 336(%rsi),%xmm20 + vpclmulqdq $0x01,%xmm20,%xmm11,%xmm4 + vpclmulqdq $0x10,%xmm20,%xmm11,%xmm5 + vpclmulqdq $0x11,%xmm20,%xmm11,%xmm0 + vpclmulqdq $0x00,%xmm20,%xmm11,%xmm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_656: + + orq %r8,%r8 + je L$_after_reduction_656 + vpxorq %xmm13,%xmm14,%xmm14 +L$_after_reduction_656: + jmp L$_small_initial_blocks_encrypted_642 +L$_small_initial_num_blocks_is_15_642: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd ddq_add_5678(%rip),%zmm2,%zmm3 + vpaddd ddq_add_8888(%rip),%zmm0,%zmm4 + vpaddd ddq_add_8888(%rip),%zmm3,%zmm5 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + subq $192,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $2,%zmm5,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 + vmovdqu8 0(%rcx,%r11,1),%zmm6 + vmovdqu8 64(%rcx,%r11,1),%zmm7 + vmovdqu8 128(%rcx,%r11,1),%zmm10 + vmovdqu8 192(%rcx,%r11,1),%zmm11{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm15,%zmm3,%zmm3 + vpxorq %zmm15,%zmm4,%zmm4 + vpxorq %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vaesenclast %zmm15,%zmm3,%zmm3 + vaesenclast %zmm15,%zmm4,%zmm4 + vaesenclast %zmm15,%zmm5,%zmm5 + vpxorq %zmm6,%zmm0,%zmm0 + vpxorq %zmm7,%zmm3,%zmm3 + vpxorq %zmm10,%zmm4,%zmm4 + vpxorq %zmm11,%zmm5,%zmm5 + vextracti32x4 $2,%zmm5,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %zmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm5,%zmm5{%k1}{z} + vpshufb %zmm29,%zmm6,%zmm6 + vpshufb %zmm29,%zmm7,%zmm7 + vpshufb %zmm29,%zmm10,%zmm10 + vpshufb %zmm29,%zmm11,%zmm11 + vextracti32x4 $2,%zmm11,%xmm13 + subq $16 * (15 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_657 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 112(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 176(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vmovdqu64 240(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x00,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm0,%zmm6,%zmm15 + vpternlogq $0x96,%zmm3,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x10,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm4,%zmm6,%zmm17 + vpternlogq $0x96,%zmm5,%zmm7,%zmm19 + vmovdqu64 304(%rsi),%ymm20 + vinserti64x2 $2,336(%rsi),%zmm20,%zmm20 + vpclmulqdq $0x01,%zmm20,%zmm11,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm11,%zmm5 + vpclmulqdq $0x11,%zmm20,%zmm11,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm11,%zmm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_657 +L$_small_initial_partial_block_657: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 128(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 192(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vmovdqu64 256(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x00,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm0,%zmm6,%zmm15 + vpternlogq $0x96,%zmm3,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x10,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm4,%zmm6,%zmm17 + vpternlogq $0x96,%zmm5,%zmm7,%zmm19 + vmovdqu64 320(%rsi),%ymm20 + vpclmulqdq $0x01,%ymm20,%ymm11,%ymm4 + vpclmulqdq $0x10,%ymm20,%ymm11,%ymm5 + vpclmulqdq $0x11,%ymm20,%ymm11,%ymm0 + vpclmulqdq $0x00,%ymm20,%ymm11,%ymm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_657: + + orq %r8,%r8 + je L$_after_reduction_657 + vpxorq %xmm13,%xmm14,%xmm14 +L$_after_reduction_657: + jmp L$_small_initial_blocks_encrypted_642 +L$_small_initial_num_blocks_is_16_642: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd ddq_add_5678(%rip),%zmm2,%zmm3 + vpaddd ddq_add_8888(%rip),%zmm0,%zmm4 + vpaddd ddq_add_8888(%rip),%zmm3,%zmm5 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + subq $192,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $3,%zmm5,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 + vmovdqu8 0(%rcx,%r11,1),%zmm6 + vmovdqu8 64(%rcx,%r11,1),%zmm7 + vmovdqu8 128(%rcx,%r11,1),%zmm10 + vmovdqu8 192(%rcx,%r11,1),%zmm11{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm15,%zmm3,%zmm3 + vpxorq %zmm15,%zmm4,%zmm4 + vpxorq %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vaesenclast %zmm15,%zmm3,%zmm3 + vaesenclast %zmm15,%zmm4,%zmm4 + vaesenclast %zmm15,%zmm5,%zmm5 + vpxorq %zmm6,%zmm0,%zmm0 + vpxorq %zmm7,%zmm3,%zmm3 + vpxorq %zmm10,%zmm4,%zmm4 + vpxorq %zmm11,%zmm5,%zmm5 + vextracti32x4 $3,%zmm5,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %zmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm5,%zmm5{%k1}{z} + vpshufb %zmm29,%zmm6,%zmm6 + vpshufb %zmm29,%zmm7,%zmm7 + vpshufb %zmm29,%zmm10,%zmm10 + vpshufb %zmm29,%zmm11,%zmm11 + vextracti32x4 $3,%zmm11,%xmm13 + subq $16 * (16 - 1),%r8 +L$_small_initial_partial_block_658: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 112(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 176(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vmovdqu64 240(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x00,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm0,%zmm6,%zmm15 + vpternlogq $0x96,%zmm3,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x10,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm4,%zmm6,%zmm17 + vpternlogq $0x96,%zmm5,%zmm7,%zmm19 + vmovdqu64 304(%rsi),%ymm20 + vinserti64x2 $2,336(%rsi),%zmm20,%zmm20 + vpclmulqdq $0x01,%zmm20,%zmm11,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm11,%zmm5 + vpclmulqdq $0x11,%zmm20,%zmm11,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm11,%zmm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_658: + vpxorq %xmm13,%xmm14,%xmm14 +L$_after_reduction_658: +L$_small_initial_blocks_encrypted_642: +L$_ghash_done_497: + vmovdqu64 %xmm2,0(%rsi) + vmovdqu64 %xmm14,64(%rsi) +L$_enc_dec_done_497: + jmp L$exit_gcm_decrypt +.p2align 5 +L$aes_gcm_decrypt_192_avx512: + orq %r8,%r8 + je L$_enc_dec_done_659 + xorq %r14,%r14 + vmovdqu64 64(%rsi),%xmm14 + + movq (%rdx),%r11 + orq %r11,%r11 + je L$_partial_block_done_660 + movl $16,%r10d + leaq byte_len_to_mask_table(%rip),%r12 + cmpq %r10,%r8 + cmovcq %r8,%r10 + kmovw (%r12,%r10,2),%k1 + vmovdqu8 (%rcx),%xmm0{%k1}{z} + + vmovdqu64 16(%rsi),%xmm3 + vmovdqu64 336(%rsi),%xmm4 + + + + leaq SHIFT_MASK(%rip),%r12 + addq %r11,%r12 + vmovdqu64 (%r12),%xmm5 + vpshufb %xmm5,%xmm3,%xmm3 + + vmovdqa64 %xmm0,%xmm6 + vpxorq %xmm0,%xmm3,%xmm3 + + + leaq (%r8,%r11,1),%r13 + subq $16,%r13 + jge L$_no_extra_mask_660 + subq %r13,%r12 +L$_no_extra_mask_660: + + + + vmovdqu64 16(%r12),%xmm0 + vpand %xmm0,%xmm3,%xmm3 + vpand %xmm0,%xmm6,%xmm6 + vpshufb SHUF_MASK(%rip),%xmm6,%xmm6 + vpshufb %xmm5,%xmm6,%xmm6 + vpxorq %xmm6,%xmm14,%xmm14 + cmpq $0,%r13 + jl L$_partial_incomplete_660 + + vpclmulqdq $0x11,%xmm4,%xmm14,%xmm7 + vpclmulqdq $0x00,%xmm4,%xmm14,%xmm10 + vpclmulqdq $0x01,%xmm4,%xmm14,%xmm11 + vpclmulqdq $0x10,%xmm4,%xmm14,%xmm14 + vpxorq %xmm11,%xmm14,%xmm14 + + vpsrldq $8,%xmm14,%xmm11 + vpslldq $8,%xmm14,%xmm14 + vpxorq %xmm11,%xmm7,%xmm7 + vpxorq %xmm10,%xmm14,%xmm14 + + + + vmovdqu64 POLY2(%rip),%xmm11 + + vpclmulqdq $0x01,%xmm14,%xmm11,%xmm10 + vpslldq $8,%xmm10,%xmm10 + vpxorq %xmm10,%xmm14,%xmm14 + + + + vpclmulqdq $0x00,%xmm14,%xmm11,%xmm10 + vpsrldq $4,%xmm10,%xmm10 + vpclmulqdq $0x10,%xmm14,%xmm11,%xmm14 + vpslldq $4,%xmm14,%xmm14 + + vpternlogq $0x96,%xmm10,%xmm7,%xmm14 + + movq $0,(%rdx) + + movq %r11,%r12 + movq $16,%r11 + subq %r12,%r11 + jmp L$_enc_dec_done_660 + +L$_partial_incomplete_660: + addq %r8,(%rdx) + movq %r8,%r11 + +L$_enc_dec_done_660: + + + leaq byte_len_to_mask_table(%rip),%r12 + kmovw (%r12,%r11,2),%k1 + vmovdqu64 %xmm14,64(%rsi) + movq %r9,%r12 + vmovdqu8 %xmm3,(%r12){%k1} +L$_partial_block_done_660: + vmovdqu64 0(%rsi),%xmm2 + subq %r11,%r8 + je L$_enc_dec_done_659 + cmpq $256,%r8 + jbe L$_message_below_equal_16_blocks_659 + + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vmovdqa64 ddq_addbe_4444(%rip),%zmm27 + vmovdqa64 ddq_addbe_1234(%rip),%zmm28 + + + + + + + vmovd %xmm2,%r15d + andl $255,%r15d + + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpshufb %zmm29,%zmm2,%zmm2 + + + + cmpb $240,%r15b + jae L$_next_16_overflow_661 + vpaddd %zmm28,%zmm2,%zmm7 + vpaddd %zmm27,%zmm7,%zmm10 + vpaddd %zmm27,%zmm10,%zmm11 + vpaddd %zmm27,%zmm11,%zmm12 + jmp L$_next_16_ok_661 +L$_next_16_overflow_661: + vpshufb %zmm29,%zmm2,%zmm2 + vmovdqa64 ddq_add_4444(%rip),%zmm12 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm7 + vpaddd %zmm12,%zmm7,%zmm10 + vpaddd %zmm12,%zmm10,%zmm11 + vpaddd %zmm12,%zmm11,%zmm12 + vpshufb %zmm29,%zmm7,%zmm7 + vpshufb %zmm29,%zmm10,%zmm10 + vpshufb %zmm29,%zmm11,%zmm11 + vpshufb %zmm29,%zmm12,%zmm12 +L$_next_16_ok_661: + vshufi64x2 $255,%zmm12,%zmm12,%zmm2 + addb $16,%r15b + + vmovdqu8 0(%rcx,%r11,1),%zmm0 + vmovdqu8 64(%rcx,%r11,1),%zmm3 + vmovdqu8 128(%rcx,%r11,1),%zmm4 + vmovdqu8 192(%rcx,%r11,1),%zmm5 + + + vbroadcastf64x2 0(%rdi),%zmm6 + vpxorq %zmm6,%zmm7,%zmm7 + vpxorq %zmm6,%zmm10,%zmm10 + vpxorq %zmm6,%zmm11,%zmm11 + vpxorq %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 16(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 32(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 48(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 64(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 80(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 96(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 112(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 128(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 144(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 160(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 176(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 192(%rdi),%zmm6 + vaesenclast %zmm6,%zmm7,%zmm7 + vaesenclast %zmm6,%zmm10,%zmm10 + vaesenclast %zmm6,%zmm11,%zmm11 + vaesenclast %zmm6,%zmm12,%zmm12 + + + vpxorq %zmm0,%zmm7,%zmm7 + vpxorq %zmm3,%zmm10,%zmm10 + vpxorq %zmm4,%zmm11,%zmm11 + vpxorq %zmm5,%zmm12,%zmm12 + + + movq %r9,%r10 + vmovdqu8 %zmm7,0(%r10,%r11,1) + vmovdqu8 %zmm10,64(%r10,%r11,1) + vmovdqu8 %zmm11,128(%r10,%r11,1) + vmovdqu8 %zmm12,192(%r10,%r11,1) + + vpshufb %zmm29,%zmm0,%zmm7 + vpshufb %zmm29,%zmm3,%zmm10 + vpshufb %zmm29,%zmm4,%zmm11 + vpshufb %zmm29,%zmm5,%zmm12 + vmovdqa64 %zmm7,768(%rsp) + vmovdqa64 %zmm10,832(%rsp) + vmovdqa64 %zmm11,896(%rsp) + vmovdqa64 %zmm12,960(%rsp) + testq %r14,%r14 + jnz L$_skip_hkeys_precomputation_662 + + vmovdqu64 288(%rsi),%zmm0 + vmovdqu64 %zmm0,704(%rsp) + + vmovdqu64 224(%rsi),%zmm3 + vmovdqu64 %zmm3,640(%rsp) + + + vshufi64x2 $0x00,%zmm3,%zmm3,%zmm3 + + vmovdqu64 160(%rsi),%zmm4 + vmovdqu64 %zmm4,576(%rsp) + + vmovdqu64 96(%rsi),%zmm5 + vmovdqu64 %zmm5,512(%rsp) +L$_skip_hkeys_precomputation_662: + cmpq $512,%r8 + jb L$_message_below_32_blocks_659 + + + + cmpb $240,%r15b + jae L$_next_16_overflow_663 + vpaddd %zmm28,%zmm2,%zmm7 + vpaddd %zmm27,%zmm7,%zmm10 + vpaddd %zmm27,%zmm10,%zmm11 + vpaddd %zmm27,%zmm11,%zmm12 + jmp L$_next_16_ok_663 +L$_next_16_overflow_663: + vpshufb %zmm29,%zmm2,%zmm2 + vmovdqa64 ddq_add_4444(%rip),%zmm12 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm7 + vpaddd %zmm12,%zmm7,%zmm10 + vpaddd %zmm12,%zmm10,%zmm11 + vpaddd %zmm12,%zmm11,%zmm12 + vpshufb %zmm29,%zmm7,%zmm7 + vpshufb %zmm29,%zmm10,%zmm10 + vpshufb %zmm29,%zmm11,%zmm11 + vpshufb %zmm29,%zmm12,%zmm12 +L$_next_16_ok_663: + vshufi64x2 $255,%zmm12,%zmm12,%zmm2 + addb $16,%r15b + + vmovdqu8 256(%rcx,%r11,1),%zmm0 + vmovdqu8 320(%rcx,%r11,1),%zmm3 + vmovdqu8 384(%rcx,%r11,1),%zmm4 + vmovdqu8 448(%rcx,%r11,1),%zmm5 + + + vbroadcastf64x2 0(%rdi),%zmm6 + vpxorq %zmm6,%zmm7,%zmm7 + vpxorq %zmm6,%zmm10,%zmm10 + vpxorq %zmm6,%zmm11,%zmm11 + vpxorq %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 16(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 32(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 48(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 64(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 80(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 96(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 112(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 128(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 144(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 160(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 176(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 192(%rdi),%zmm6 + vaesenclast %zmm6,%zmm7,%zmm7 + vaesenclast %zmm6,%zmm10,%zmm10 + vaesenclast %zmm6,%zmm11,%zmm11 + vaesenclast %zmm6,%zmm12,%zmm12 + + + vpxorq %zmm0,%zmm7,%zmm7 + vpxorq %zmm3,%zmm10,%zmm10 + vpxorq %zmm4,%zmm11,%zmm11 + vpxorq %zmm5,%zmm12,%zmm12 + + + movq %r9,%r10 + vmovdqu8 %zmm7,256(%r10,%r11,1) + vmovdqu8 %zmm10,320(%r10,%r11,1) + vmovdqu8 %zmm11,384(%r10,%r11,1) + vmovdqu8 %zmm12,448(%r10,%r11,1) + + vpshufb %zmm29,%zmm0,%zmm7 + vpshufb %zmm29,%zmm3,%zmm10 + vpshufb %zmm29,%zmm4,%zmm11 + vpshufb %zmm29,%zmm5,%zmm12 + vmovdqa64 %zmm7,1024(%rsp) + vmovdqa64 %zmm10,1088(%rsp) + vmovdqa64 %zmm11,1152(%rsp) + vmovdqa64 %zmm12,1216(%rsp) + testq %r14,%r14 + jnz L$_skip_hkeys_precomputation_664 + vmovdqu64 640(%rsp),%zmm3 + + + vshufi64x2 $0x00,%zmm3,%zmm3,%zmm3 + + vmovdqu64 576(%rsp),%zmm4 + vmovdqu64 512(%rsp),%zmm5 + + vpclmulqdq $0x11,%zmm3,%zmm4,%zmm6 + vpclmulqdq $0x00,%zmm3,%zmm4,%zmm7 + vpclmulqdq $0x01,%zmm3,%zmm4,%zmm10 + vpclmulqdq $0x10,%zmm3,%zmm4,%zmm4 + vpxorq %zmm10,%zmm4,%zmm4 + + vpsrldq $8,%zmm4,%zmm10 + vpslldq $8,%zmm4,%zmm4 + vpxorq %zmm10,%zmm6,%zmm6 + vpxorq %zmm7,%zmm4,%zmm4 + + + + vmovdqu64 POLY2(%rip),%zmm10 + + vpclmulqdq $0x01,%zmm4,%zmm10,%zmm7 + vpslldq $8,%zmm7,%zmm7 + vpxorq %zmm7,%zmm4,%zmm4 + + + + vpclmulqdq $0x00,%zmm4,%zmm10,%zmm7 + vpsrldq $4,%zmm7,%zmm7 + vpclmulqdq $0x10,%zmm4,%zmm10,%zmm4 + vpslldq $4,%zmm4,%zmm4 + + vpternlogq $0x96,%zmm7,%zmm6,%zmm4 + + vmovdqu64 %zmm4,448(%rsp) + + vpclmulqdq $0x11,%zmm3,%zmm5,%zmm6 + vpclmulqdq $0x00,%zmm3,%zmm5,%zmm7 + vpclmulqdq $0x01,%zmm3,%zmm5,%zmm10 + vpclmulqdq $0x10,%zmm3,%zmm5,%zmm5 + vpxorq %zmm10,%zmm5,%zmm5 + + vpsrldq $8,%zmm5,%zmm10 + vpslldq $8,%zmm5,%zmm5 + vpxorq %zmm10,%zmm6,%zmm6 + vpxorq %zmm7,%zmm5,%zmm5 + + + + vmovdqu64 POLY2(%rip),%zmm10 + + vpclmulqdq $0x01,%zmm5,%zmm10,%zmm7 + vpslldq $8,%zmm7,%zmm7 + vpxorq %zmm7,%zmm5,%zmm5 + + + + vpclmulqdq $0x00,%zmm5,%zmm10,%zmm7 + vpsrldq $4,%zmm7,%zmm7 + vpclmulqdq $0x10,%zmm5,%zmm10,%zmm5 + vpslldq $4,%zmm5,%zmm5 + + vpternlogq $0x96,%zmm7,%zmm6,%zmm5 + + vmovdqu64 %zmm5,384(%rsp) + + vpclmulqdq $0x11,%zmm3,%zmm4,%zmm6 + vpclmulqdq $0x00,%zmm3,%zmm4,%zmm7 + vpclmulqdq $0x01,%zmm3,%zmm4,%zmm10 + vpclmulqdq $0x10,%zmm3,%zmm4,%zmm4 + vpxorq %zmm10,%zmm4,%zmm4 + + vpsrldq $8,%zmm4,%zmm10 + vpslldq $8,%zmm4,%zmm4 + vpxorq %zmm10,%zmm6,%zmm6 + vpxorq %zmm7,%zmm4,%zmm4 + + + + vmovdqu64 POLY2(%rip),%zmm10 + + vpclmulqdq $0x01,%zmm4,%zmm10,%zmm7 + vpslldq $8,%zmm7,%zmm7 + vpxorq %zmm7,%zmm4,%zmm4 + + + + vpclmulqdq $0x00,%zmm4,%zmm10,%zmm7 + vpsrldq $4,%zmm7,%zmm7 + vpclmulqdq $0x10,%zmm4,%zmm10,%zmm4 + vpslldq $4,%zmm4,%zmm4 + + vpternlogq $0x96,%zmm7,%zmm6,%zmm4 + + vmovdqu64 %zmm4,320(%rsp) + + vpclmulqdq $0x11,%zmm3,%zmm5,%zmm6 + vpclmulqdq $0x00,%zmm3,%zmm5,%zmm7 + vpclmulqdq $0x01,%zmm3,%zmm5,%zmm10 + vpclmulqdq $0x10,%zmm3,%zmm5,%zmm5 + vpxorq %zmm10,%zmm5,%zmm5 + + vpsrldq $8,%zmm5,%zmm10 + vpslldq $8,%zmm5,%zmm5 + vpxorq %zmm10,%zmm6,%zmm6 + vpxorq %zmm7,%zmm5,%zmm5 + + + + vmovdqu64 POLY2(%rip),%zmm10 + + vpclmulqdq $0x01,%zmm5,%zmm10,%zmm7 + vpslldq $8,%zmm7,%zmm7 + vpxorq %zmm7,%zmm5,%zmm5 + + + + vpclmulqdq $0x00,%zmm5,%zmm10,%zmm7 + vpsrldq $4,%zmm7,%zmm7 + vpclmulqdq $0x10,%zmm5,%zmm10,%zmm5 + vpslldq $4,%zmm5,%zmm5 + + vpternlogq $0x96,%zmm7,%zmm6,%zmm5 + + vmovdqu64 %zmm5,256(%rsp) + + vpclmulqdq $0x11,%zmm3,%zmm4,%zmm6 + vpclmulqdq $0x00,%zmm3,%zmm4,%zmm7 + vpclmulqdq $0x01,%zmm3,%zmm4,%zmm10 + vpclmulqdq $0x10,%zmm3,%zmm4,%zmm4 + vpxorq %zmm10,%zmm4,%zmm4 + + vpsrldq $8,%zmm4,%zmm10 + vpslldq $8,%zmm4,%zmm4 + vpxorq %zmm10,%zmm6,%zmm6 + vpxorq %zmm7,%zmm4,%zmm4 + + + + vmovdqu64 POLY2(%rip),%zmm10 + + vpclmulqdq $0x01,%zmm4,%zmm10,%zmm7 + vpslldq $8,%zmm7,%zmm7 + vpxorq %zmm7,%zmm4,%zmm4 + + + + vpclmulqdq $0x00,%zmm4,%zmm10,%zmm7 + vpsrldq $4,%zmm7,%zmm7 + vpclmulqdq $0x10,%zmm4,%zmm10,%zmm4 + vpslldq $4,%zmm4,%zmm4 + + vpternlogq $0x96,%zmm7,%zmm6,%zmm4 + + vmovdqu64 %zmm4,192(%rsp) + + vpclmulqdq $0x11,%zmm3,%zmm5,%zmm6 + vpclmulqdq $0x00,%zmm3,%zmm5,%zmm7 + vpclmulqdq $0x01,%zmm3,%zmm5,%zmm10 + vpclmulqdq $0x10,%zmm3,%zmm5,%zmm5 + vpxorq %zmm10,%zmm5,%zmm5 + + vpsrldq $8,%zmm5,%zmm10 + vpslldq $8,%zmm5,%zmm5 + vpxorq %zmm10,%zmm6,%zmm6 + vpxorq %zmm7,%zmm5,%zmm5 + + + + vmovdqu64 POLY2(%rip),%zmm10 + + vpclmulqdq $0x01,%zmm5,%zmm10,%zmm7 + vpslldq $8,%zmm7,%zmm7 + vpxorq %zmm7,%zmm5,%zmm5 + + + + vpclmulqdq $0x00,%zmm5,%zmm10,%zmm7 + vpsrldq $4,%zmm7,%zmm7 + vpclmulqdq $0x10,%zmm5,%zmm10,%zmm5 + vpslldq $4,%zmm5,%zmm5 + + vpternlogq $0x96,%zmm7,%zmm6,%zmm5 + + vmovdqu64 %zmm5,128(%rsp) + + vpclmulqdq $0x11,%zmm3,%zmm4,%zmm6 + vpclmulqdq $0x00,%zmm3,%zmm4,%zmm7 + vpclmulqdq $0x01,%zmm3,%zmm4,%zmm10 + vpclmulqdq $0x10,%zmm3,%zmm4,%zmm4 + vpxorq %zmm10,%zmm4,%zmm4 + + vpsrldq $8,%zmm4,%zmm10 + vpslldq $8,%zmm4,%zmm4 + vpxorq %zmm10,%zmm6,%zmm6 + vpxorq %zmm7,%zmm4,%zmm4 + + + + vmovdqu64 POLY2(%rip),%zmm10 + + vpclmulqdq $0x01,%zmm4,%zmm10,%zmm7 + vpslldq $8,%zmm7,%zmm7 + vpxorq %zmm7,%zmm4,%zmm4 + + + + vpclmulqdq $0x00,%zmm4,%zmm10,%zmm7 + vpsrldq $4,%zmm7,%zmm7 + vpclmulqdq $0x10,%zmm4,%zmm10,%zmm4 + vpslldq $4,%zmm4,%zmm4 + + vpternlogq $0x96,%zmm7,%zmm6,%zmm4 + + vmovdqu64 %zmm4,64(%rsp) + + vpclmulqdq $0x11,%zmm3,%zmm5,%zmm6 + vpclmulqdq $0x00,%zmm3,%zmm5,%zmm7 + vpclmulqdq $0x01,%zmm3,%zmm5,%zmm10 + vpclmulqdq $0x10,%zmm3,%zmm5,%zmm5 + vpxorq %zmm10,%zmm5,%zmm5 + + vpsrldq $8,%zmm5,%zmm10 + vpslldq $8,%zmm5,%zmm5 + vpxorq %zmm10,%zmm6,%zmm6 + vpxorq %zmm7,%zmm5,%zmm5 + + + + vmovdqu64 POLY2(%rip),%zmm10 + + vpclmulqdq $0x01,%zmm5,%zmm10,%zmm7 + vpslldq $8,%zmm7,%zmm7 + vpxorq %zmm7,%zmm5,%zmm5 + + + + vpclmulqdq $0x00,%zmm5,%zmm10,%zmm7 + vpsrldq $4,%zmm7,%zmm7 + vpclmulqdq $0x10,%zmm5,%zmm10,%zmm5 + vpslldq $4,%zmm5,%zmm5 + + vpternlogq $0x96,%zmm7,%zmm6,%zmm5 + + vmovdqu64 %zmm5,0(%rsp) +L$_skip_hkeys_precomputation_664: + movq $1,%r14 + addq $512,%r11 + subq $512,%r8 + + cmpq $768,%r8 + jb L$_no_more_big_nblocks_659 +L$_encrypt_big_nblocks_659: + cmpb $240,%r15b + jae L$_16_blocks_overflow_665 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp L$_16_blocks_ok_665 +L$_16_blocks_overflow_665: + vpshufb %zmm29,%zmm2,%zmm2 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +L$_16_blocks_ok_665: + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp),%zmm1 + + + + + vshufi64x2 $255,%zmm5,%zmm5,%zmm2 + addb $16,%r15b + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + + + + + + + + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm6 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm6 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + + + + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%zmm21 + + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm15,%zmm10,%zmm26 + vpxorq %zmm12,%zmm6,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 192(%rdi),%zmm30 + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + + + + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + + + + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %zmm5,192(%r10,%r11,1) + vpshufb %zmm29,%zmm17,%zmm0 + vpshufb %zmm29,%zmm19,%zmm3 + vpshufb %zmm29,%zmm20,%zmm4 + vpshufb %zmm29,%zmm21,%zmm5 + vmovdqa64 %zmm0,1280(%rsp) + vmovdqa64 %zmm3,1344(%rsp) + vmovdqa64 %zmm4,1408(%rsp) + vmovdqa64 %zmm5,1472(%rsp) + cmpb $240,%r15b + jae L$_16_blocks_overflow_666 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp L$_16_blocks_ok_666 +L$_16_blocks_overflow_666: + vpshufb %zmm29,%zmm2,%zmm2 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +L$_16_blocks_ok_666: + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 256(%rsp),%zmm1 + + + + + vshufi64x2 $255,%zmm5,%zmm5,%zmm2 + addb $16,%r15b + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 320(%rsp),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + + + + + + + + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm6 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 384(%rsp),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 448(%rsp),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm6 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + + + + vmovdqu8 256(%rcx,%r11,1),%zmm17 + vmovdqu8 320(%rcx,%r11,1),%zmm19 + vmovdqu8 384(%rcx,%r11,1),%zmm20 + vmovdqu8 448(%rcx,%r11,1),%zmm21 + + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vpternlogq $0x96,%zmm12,%zmm6,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 192(%rdi),%zmm30 + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + + + + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + + + + movq %r9,%r10 + vmovdqu8 %zmm0,256(%r10,%r11,1) + vmovdqu8 %zmm3,320(%r10,%r11,1) + vmovdqu8 %zmm4,384(%r10,%r11,1) + vmovdqu8 %zmm5,448(%r10,%r11,1) + vpshufb %zmm29,%zmm17,%zmm0 + vpshufb %zmm29,%zmm19,%zmm3 + vpshufb %zmm29,%zmm20,%zmm4 + vpshufb %zmm29,%zmm21,%zmm5 + vmovdqa64 %zmm0,768(%rsp) + vmovdqa64 %zmm3,832(%rsp) + vmovdqa64 %zmm4,896(%rsp) + vmovdqa64 %zmm5,960(%rsp) + cmpb $240,%r15b + jae L$_16_blocks_overflow_667 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp L$_16_blocks_ok_667 +L$_16_blocks_overflow_667: + vpshufb %zmm29,%zmm2,%zmm2 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +L$_16_blocks_ok_667: + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + + + + + vshufi64x2 $255,%zmm5,%zmm5,%zmm2 + addb $16,%r15b + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + + + + + + + + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm6 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm6 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + + + + vmovdqu8 512(%rcx,%r11,1),%zmm17 + vmovdqu8 576(%rcx,%r11,1),%zmm19 + vmovdqu8 640(%rcx,%r11,1),%zmm20 + vmovdqu8 704(%rcx,%r11,1),%zmm21 + + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + + + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vpternlogq $0x96,%zmm15,%zmm12,%zmm6 + vpxorq %zmm24,%zmm6,%zmm6 + vpternlogq $0x96,%zmm10,%zmm13,%zmm7 + vpxorq %zmm25,%zmm7,%zmm7 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vextracti64x4 $1,%zmm6,%ymm12 + vpxorq %ymm12,%ymm6,%ymm6 + vextracti32x4 $1,%ymm6,%xmm12 + vpxorq %xmm12,%xmm6,%xmm6 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 176(%rdi),%zmm31 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 192(%rdi),%zmm30 + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm6 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + + + + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + + + + movq %r9,%r10 + vmovdqu8 %zmm0,512(%r10,%r11,1) + vmovdqu8 %zmm3,576(%r10,%r11,1) + vmovdqu8 %zmm4,640(%r10,%r11,1) + vmovdqu8 %zmm5,704(%r10,%r11,1) + vpshufb %zmm29,%zmm17,%zmm0 + vpshufb %zmm29,%zmm19,%zmm3 + vpshufb %zmm29,%zmm20,%zmm4 + vpshufb %zmm29,%zmm21,%zmm5 + vmovdqa64 %zmm0,1024(%rsp) + vmovdqa64 %zmm3,1088(%rsp) + vmovdqa64 %zmm4,1152(%rsp) + vmovdqa64 %zmm5,1216(%rsp) + vmovdqa64 %zmm6,%zmm14 + + addq $768,%r11 + subq $768,%r8 + cmpq $768,%r8 + jae L$_encrypt_big_nblocks_659 + +L$_no_more_big_nblocks_659: + + cmpq $512,%r8 + jae L$_encrypt_32_blocks_659 + + cmpq $256,%r8 + jae L$_encrypt_16_blocks_659 +L$_encrypt_0_blocks_ghash_32_659: + movl %r8d,%r10d + andl $~15,%r10d + movl $256,%ebx + subl %r10d,%ebx + vmovdqa64 768(%rsp),%zmm13 + vpxorq %zmm14,%zmm13,%zmm13 + vmovdqu64 0(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 832(%rsp),%zmm13 + vmovdqu64 64(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + vpxorq %zmm10,%zmm4,%zmm26 + vpxorq %zmm6,%zmm0,%zmm24 + vpxorq %zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + vmovdqa64 896(%rsp),%zmm13 + vmovdqu64 128(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 960(%rsp),%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + + vpternlogq $0x96,%zmm10,%zmm4,%zmm26 + vpternlogq $0x96,%zmm6,%zmm0,%zmm24 + vpternlogq $0x96,%zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + addl $256,%ebx + movl %r8d,%r10d + addl $15,%r10d + shrl $4,%r10d + je L$_last_num_blocks_is_0_668 + + cmpl $8,%r10d + je L$_last_num_blocks_is_8_668 + jb L$_last_num_blocks_is_7_1_668 + + + cmpl $12,%r10d + je L$_last_num_blocks_is_12_668 + jb L$_last_num_blocks_is_11_9_668 + + + cmpl $15,%r10d + je L$_last_num_blocks_is_15_668 + ja L$_last_num_blocks_is_16_668 + cmpl $14,%r10d + je L$_last_num_blocks_is_14_668 + jmp L$_last_num_blocks_is_13_668 + +L$_last_num_blocks_is_11_9_668: + + cmpl $10,%r10d + je L$_last_num_blocks_is_10_668 + ja L$_last_num_blocks_is_11_668 + jmp L$_last_num_blocks_is_9_668 + +L$_last_num_blocks_is_7_1_668: + cmpl $4,%r10d + je L$_last_num_blocks_is_4_668 + jb L$_last_num_blocks_is_3_1_668 + + cmpl $6,%r10d + ja L$_last_num_blocks_is_7_668 + je L$_last_num_blocks_is_6_668 + jmp L$_last_num_blocks_is_5_668 + +L$_last_num_blocks_is_3_1_668: + + cmpl $2,%r10d + ja L$_last_num_blocks_is_3_668 + je L$_last_num_blocks_is_2_668 +L$_last_num_blocks_is_1_668: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $255,%r15d + jae L$_16_blocks_overflow_669 + vpaddd %xmm28,%xmm2,%xmm0 + jmp L$_16_blocks_ok_669 + +L$_16_blocks_overflow_669: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %xmm29,%xmm0,%xmm0 +L$_16_blocks_ok_669: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $0,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%xmm17{%k1}{z} + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %xmm31,%xmm0,%xmm0 + vaesenclast %xmm30,%xmm0,%xmm0 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti32x4 $0,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %xmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm17,%zmm17{%k1}{z} + vpshufb %xmm29,%xmm17,%xmm17 + vextracti32x4 $0,%zmm17,%xmm7 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_670 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm17,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm17,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm17,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm17,%xmm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_670 +L$_small_initial_partial_block_670: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + + + vpsrldq $8,%zmm26,%zmm0 + vpslldq $8,%zmm26,%zmm3 + vpxorq %zmm0,%zmm24,%zmm24 + vpxorq %zmm3,%zmm25,%zmm25 + vextracti64x4 $1,%zmm24,%ymm0 + vpxorq %ymm0,%ymm24,%ymm24 + vextracti32x4 $1,%ymm24,%xmm0 + vpxorq %xmm0,%xmm24,%xmm24 + vextracti64x4 $1,%zmm25,%ymm3 + vpxorq %ymm3,%ymm25,%ymm25 + vextracti32x4 $1,%ymm25,%xmm3 + vpxorq %xmm3,%xmm25,%xmm25 + vmovdqa64 POLY2(%rip),%xmm0 + + + vpclmulqdq $0x01,%xmm25,%xmm0,%xmm3 + vpslldq $8,%xmm3,%xmm3 + vpxorq %xmm3,%xmm25,%xmm3 + + + vpclmulqdq $0x00,%xmm3,%xmm0,%xmm4 + vpsrldq $4,%xmm4,%xmm4 + vpclmulqdq $0x10,%xmm3,%xmm0,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm24,%xmm4,%xmm14 + + + + + + + + + + + + + vpxorq %xmm7,%xmm14,%xmm14 + + jmp L$_after_reduction_670 +L$_small_initial_compute_done_670: +L$_after_reduction_670: + jmp L$_last_blocks_done_668 +L$_last_num_blocks_is_2_668: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $254,%r15d + jae L$_16_blocks_overflow_671 + vpaddd %ymm28,%ymm2,%ymm0 + jmp L$_16_blocks_ok_671 + +L$_16_blocks_overflow_671: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %ymm29,%ymm0,%ymm0 +L$_16_blocks_ok_671: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $1,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%ymm17{%k1}{z} + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %ymm31,%ymm0,%ymm0 + vaesenclast %ymm30,%ymm0,%ymm0 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %ymm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm17,%zmm17{%k1}{z} + vpshufb %ymm29,%ymm17,%ymm17 + vextracti32x4 $1,%zmm17,%xmm7 + subq $16 * (2 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_672 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm17,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm17,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm17,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm17,%ymm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_672 +L$_small_initial_partial_block_672: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm17,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm17,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm17,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm17,%xmm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_672: + + orq %r8,%r8 + je L$_after_reduction_672 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_672: + jmp L$_last_blocks_done_668 +L$_last_num_blocks_is_3_668: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $253,%r15d + jae L$_16_blocks_overflow_673 + vpaddd %zmm28,%zmm2,%zmm0 + jmp L$_16_blocks_ok_673 + +L$_16_blocks_overflow_673: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %zmm29,%zmm0,%zmm0 +L$_16_blocks_ok_673: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $2,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm0,%zmm0 + vpxorq %zmm17,%zmm0,%zmm0 + vextracti32x4 $2,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm17,%zmm17{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vextracti32x4 $2,%zmm17,%xmm7 + subq $16 * (3 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_674 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_674 +L$_small_initial_partial_block_674: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm17,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm17,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm17,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm17,%ymm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_674: + + orq %r8,%r8 + je L$_after_reduction_674 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_674: + jmp L$_last_blocks_done_668 +L$_last_num_blocks_is_4_668: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $252,%r15d + jae L$_16_blocks_overflow_675 + vpaddd %zmm28,%zmm2,%zmm0 + jmp L$_16_blocks_ok_675 + +L$_16_blocks_overflow_675: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %zmm29,%zmm0,%zmm0 +L$_16_blocks_ok_675: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $3,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm0,%zmm0 + vpxorq %zmm17,%zmm0,%zmm0 + vextracti32x4 $3,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm17,%zmm17{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vextracti32x4 $3,%zmm17,%xmm7 + subq $16 * (4 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_676 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_676 +L$_small_initial_partial_block_676: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_676: + + orq %r8,%r8 + je L$_after_reduction_676 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_676: + jmp L$_last_blocks_done_668 +L$_last_num_blocks_is_5_668: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $251,%r15d + jae L$_16_blocks_overflow_677 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %xmm27,%xmm0,%xmm3 + jmp L$_16_blocks_ok_677 + +L$_16_blocks_overflow_677: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %xmm29,%xmm3,%xmm3 +L$_16_blocks_ok_677: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $0,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%xmm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %xmm30,%xmm3,%xmm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %xmm19,%xmm3,%xmm3 + vextracti32x4 $0,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %xmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm19,%zmm19{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %xmm29,%xmm19,%xmm19 + vextracti32x4 $0,%zmm19,%xmm7 + subq $16 * (5 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_678 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm19,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm19,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm19,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm19,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_678 +L$_small_initial_partial_block_678: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_678: + + orq %r8,%r8 + je L$_after_reduction_678 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_678: + jmp L$_last_blocks_done_668 +L$_last_num_blocks_is_6_668: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $250,%r15d + jae L$_16_blocks_overflow_679 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %ymm27,%ymm0,%ymm3 + jmp L$_16_blocks_ok_679 + +L$_16_blocks_overflow_679: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %ymm29,%ymm3,%ymm3 +L$_16_blocks_ok_679: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $1,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%ymm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %ymm30,%ymm3,%ymm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %ymm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm19,%zmm19{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %ymm29,%ymm19,%ymm19 + vextracti32x4 $1,%zmm19,%xmm7 + subq $16 * (6 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_680 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm19,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm19,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm19,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm19,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_680 +L$_small_initial_partial_block_680: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm19,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm19,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm19,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm19,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_680: + + orq %r8,%r8 + je L$_after_reduction_680 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_680: + jmp L$_last_blocks_done_668 +L$_last_num_blocks_is_7_668: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $249,%r15d + jae L$_16_blocks_overflow_681 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + jmp L$_16_blocks_ok_681 + +L$_16_blocks_overflow_681: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 +L$_16_blocks_ok_681: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $2,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti32x4 $2,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm19,%zmm19{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vextracti32x4 $2,%zmm19,%xmm7 + subq $16 * (7 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_682 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_682 +L$_small_initial_partial_block_682: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm19,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm19,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm19,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm19,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_682: + + orq %r8,%r8 + je L$_after_reduction_682 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_682: + jmp L$_last_blocks_done_668 +L$_last_num_blocks_is_8_668: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $248,%r15d + jae L$_16_blocks_overflow_683 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + jmp L$_16_blocks_ok_683 + +L$_16_blocks_overflow_683: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 +L$_16_blocks_ok_683: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $3,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti32x4 $3,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm19,%zmm19{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vextracti32x4 $3,%zmm19,%xmm7 + subq $16 * (8 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_684 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_684 +L$_small_initial_partial_block_684: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_684: + + orq %r8,%r8 + je L$_after_reduction_684 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_684: + jmp L$_last_blocks_done_668 +L$_last_num_blocks_is_9_668: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $247,%r15d + jae L$_16_blocks_overflow_685 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %xmm27,%xmm3,%xmm4 + jmp L$_16_blocks_ok_685 + +L$_16_blocks_overflow_685: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %xmm29,%xmm4,%xmm4 +L$_16_blocks_ok_685: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $0,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%xmm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %xmm30,%xmm4,%xmm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %xmm20,%xmm4,%xmm4 + vextracti32x4 $0,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %xmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm20,%zmm20{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %xmm29,%xmm20,%xmm20 + vextracti32x4 $0,%zmm20,%xmm7 + subq $16 * (9 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_686 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm20,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm20,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm20,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm20,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_686 +L$_small_initial_partial_block_686: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_686: + + orq %r8,%r8 + je L$_after_reduction_686 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_686: + jmp L$_last_blocks_done_668 +L$_last_num_blocks_is_10_668: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $246,%r15d + jae L$_16_blocks_overflow_687 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %ymm27,%ymm3,%ymm4 + jmp L$_16_blocks_ok_687 + +L$_16_blocks_overflow_687: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %ymm29,%ymm4,%ymm4 +L$_16_blocks_ok_687: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $1,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%ymm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %ymm30,%ymm4,%ymm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %ymm20,%ymm4,%ymm4 + vextracti32x4 $1,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %ymm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm20,%zmm20{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %ymm29,%ymm20,%ymm20 + vextracti32x4 $1,%zmm20,%xmm7 + subq $16 * (10 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_688 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm20,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm20,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm20,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm20,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_688 +L$_small_initial_partial_block_688: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm20,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm20,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm20,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm20,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_688: + + orq %r8,%r8 + je L$_after_reduction_688 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_688: + jmp L$_last_blocks_done_668 +L$_last_num_blocks_is_11_668: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $245,%r15d + jae L$_16_blocks_overflow_689 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + jmp L$_16_blocks_ok_689 + +L$_16_blocks_overflow_689: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 +L$_16_blocks_ok_689: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $2,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vextracti32x4 $2,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm20,%zmm20{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %zmm29,%zmm20,%zmm20 + vextracti32x4 $2,%zmm20,%xmm7 + subq $16 * (11 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_690 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_690 +L$_small_initial_partial_block_690: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm20,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm20,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm20,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm20,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_690: + + orq %r8,%r8 + je L$_after_reduction_690 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_690: + jmp L$_last_blocks_done_668 +L$_last_num_blocks_is_12_668: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $244,%r15d + jae L$_16_blocks_overflow_691 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + jmp L$_16_blocks_ok_691 + +L$_16_blocks_overflow_691: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 +L$_16_blocks_ok_691: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $3,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vextracti32x4 $3,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm20,%zmm20{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %zmm29,%zmm20,%zmm20 + vextracti32x4 $3,%zmm20,%xmm7 + subq $16 * (12 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_692 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 160(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_692 +L$_small_initial_partial_block_692: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_692: + + orq %r8,%r8 + je L$_after_reduction_692 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_692: + jmp L$_last_blocks_done_668 +L$_last_num_blocks_is_13_668: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $243,%r15d + jae L$_16_blocks_overflow_693 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %xmm27,%xmm4,%xmm5 + jmp L$_16_blocks_ok_693 + +L$_16_blocks_overflow_693: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %xmm29,%xmm5,%xmm5 +L$_16_blocks_ok_693: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $0,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%xmm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %xmm30,%xmm5,%xmm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %xmm21,%xmm5,%xmm5 + vextracti32x4 $0,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %xmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm21,%zmm21{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %zmm29,%zmm20,%zmm20 + vpshufb %xmm29,%xmm21,%xmm21 + vextracti32x4 $0,%zmm21,%xmm7 + subq $16 * (13 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_694 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 144(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm21,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm21,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm21,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm21,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_694 +L$_small_initial_partial_block_694: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 160(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_694: + + orq %r8,%r8 + je L$_after_reduction_694 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_694: + jmp L$_last_blocks_done_668 +L$_last_num_blocks_is_14_668: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $242,%r15d + jae L$_16_blocks_overflow_695 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %ymm27,%ymm4,%ymm5 + jmp L$_16_blocks_ok_695 + +L$_16_blocks_overflow_695: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %ymm29,%ymm5,%ymm5 +L$_16_blocks_ok_695: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $1,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%ymm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %ymm30,%ymm5,%ymm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %ymm21,%ymm5,%ymm5 + vextracti32x4 $1,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %ymm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm21,%zmm21{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %zmm29,%zmm20,%zmm20 + vpshufb %ymm29,%ymm21,%ymm21 + vextracti32x4 $1,%zmm21,%xmm7 + subq $16 * (14 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_696 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 128(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm21,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm21,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm21,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm21,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_696 +L$_small_initial_partial_block_696: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 144(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm21,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm21,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm21,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm21,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_696: + + orq %r8,%r8 + je L$_after_reduction_696 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_696: + jmp L$_last_blocks_done_668 +L$_last_num_blocks_is_15_668: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $241,%r15d + jae L$_16_blocks_overflow_697 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp L$_16_blocks_ok_697 + +L$_16_blocks_overflow_697: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +L$_16_blocks_ok_697: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $2,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%zmm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + vextracti32x4 $2,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %zmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm21,%zmm21{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %zmm29,%zmm20,%zmm20 + vpshufb %zmm29,%zmm21,%zmm21 + vextracti32x4 $2,%zmm21,%xmm7 + subq $16 * (15 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_698 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 112(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm21,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm21,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm21,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm21,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_698 +L$_small_initial_partial_block_698: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 128(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm21,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm21,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm21,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm21,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_698: + + orq %r8,%r8 + je L$_after_reduction_698 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_698: + jmp L$_last_blocks_done_668 +L$_last_num_blocks_is_16_668: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $240,%r15d + jae L$_16_blocks_overflow_699 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp L$_16_blocks_ok_699 + +L$_16_blocks_overflow_699: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +L$_16_blocks_ok_699: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $3,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%zmm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + vextracti32x4 $3,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %zmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm21,%zmm21{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %zmm29,%zmm20,%zmm20 + vpshufb %zmm29,%zmm21,%zmm21 + vextracti32x4 $3,%zmm21,%xmm7 + subq $16 * (16 - 1),%r8 +L$_small_initial_partial_block_700: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 112(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm21,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm21,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm21,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm21,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_700: + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_700: + jmp L$_last_blocks_done_668 +L$_last_num_blocks_is_0_668: + vmovdqa64 1024(%rsp),%zmm13 + vmovdqu64 0(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 1088(%rsp),%zmm13 + vmovdqu64 64(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + vpternlogq $0x96,%zmm10,%zmm4,%zmm26 + vpternlogq $0x96,%zmm6,%zmm0,%zmm24 + vpternlogq $0x96,%zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + vmovdqa64 1152(%rsp),%zmm13 + vmovdqu64 128(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 1216(%rsp),%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + + vpternlogq $0x96,%zmm10,%zmm4,%zmm26 + vpternlogq $0x96,%zmm6,%zmm0,%zmm24 + vpternlogq $0x96,%zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + + vpsrldq $8,%zmm26,%zmm0 + vpslldq $8,%zmm26,%zmm3 + vpxorq %zmm0,%zmm24,%zmm24 + vpxorq %zmm3,%zmm25,%zmm25 + vextracti64x4 $1,%zmm24,%ymm0 + vpxorq %ymm0,%ymm24,%ymm24 + vextracti32x4 $1,%ymm24,%xmm0 + vpxorq %xmm0,%xmm24,%xmm24 + vextracti64x4 $1,%zmm25,%ymm3 + vpxorq %ymm3,%ymm25,%ymm25 + vextracti32x4 $1,%ymm25,%xmm3 + vpxorq %xmm3,%xmm25,%xmm25 + vmovdqa64 POLY2(%rip),%xmm4 + + + vpclmulqdq $0x01,%xmm25,%xmm4,%xmm0 + vpslldq $8,%xmm0,%xmm0 + vpxorq %xmm0,%xmm25,%xmm0 + + + vpclmulqdq $0x00,%xmm0,%xmm4,%xmm3 + vpsrldq $4,%xmm3,%xmm3 + vpclmulqdq $0x10,%xmm0,%xmm4,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm24,%xmm3,%xmm14 + +L$_last_blocks_done_668: + vpshufb %xmm29,%xmm2,%xmm2 + jmp L$_ghash_done_659 +L$_encrypt_32_blocks_659: + cmpb $240,%r15b + jae L$_16_blocks_overflow_701 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp L$_16_blocks_ok_701 +L$_16_blocks_overflow_701: + vpshufb %zmm29,%zmm2,%zmm2 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +L$_16_blocks_ok_701: + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp),%zmm1 + + + + + vshufi64x2 $255,%zmm5,%zmm5,%zmm2 + addb $16,%r15b + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + + + + + + + + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm6 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm6 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + + + + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%zmm21 + + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm15,%zmm10,%zmm26 + vpxorq %zmm12,%zmm6,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 192(%rdi),%zmm30 + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + + + + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + + + + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %zmm5,192(%r10,%r11,1) + vpshufb %zmm29,%zmm17,%zmm0 + vpshufb %zmm29,%zmm19,%zmm3 + vpshufb %zmm29,%zmm20,%zmm4 + vpshufb %zmm29,%zmm21,%zmm5 + vmovdqa64 %zmm0,1280(%rsp) + vmovdqa64 %zmm3,1344(%rsp) + vmovdqa64 %zmm4,1408(%rsp) + vmovdqa64 %zmm5,1472(%rsp) + cmpb $240,%r15b + jae L$_16_blocks_overflow_702 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp L$_16_blocks_ok_702 +L$_16_blocks_overflow_702: + vpshufb %zmm29,%zmm2,%zmm2 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +L$_16_blocks_ok_702: + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 256(%rsp),%zmm1 + + + + + vshufi64x2 $255,%zmm5,%zmm5,%zmm2 + addb $16,%r15b + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 320(%rsp),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + + + + + + + + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm6 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 384(%rsp),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 448(%rsp),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm6 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + + + + vmovdqu8 256(%rcx,%r11,1),%zmm17 + vmovdqu8 320(%rcx,%r11,1),%zmm19 + vmovdqu8 384(%rcx,%r11,1),%zmm20 + vmovdqu8 448(%rcx,%r11,1),%zmm21 + + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vpternlogq $0x96,%zmm12,%zmm6,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 192(%rdi),%zmm30 + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + + + + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + + + + movq %r9,%r10 + vmovdqu8 %zmm0,256(%r10,%r11,1) + vmovdqu8 %zmm3,320(%r10,%r11,1) + vmovdqu8 %zmm4,384(%r10,%r11,1) + vmovdqu8 %zmm5,448(%r10,%r11,1) + vpshufb %zmm29,%zmm17,%zmm0 + vpshufb %zmm29,%zmm19,%zmm3 + vpshufb %zmm29,%zmm20,%zmm4 + vpshufb %zmm29,%zmm21,%zmm5 + vmovdqa64 %zmm0,768(%rsp) + vmovdqa64 %zmm3,832(%rsp) + vmovdqa64 %zmm4,896(%rsp) + vmovdqa64 %zmm5,960(%rsp) + vmovdqa64 1280(%rsp),%zmm13 + vmovdqu64 512(%rsp),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 1344(%rsp),%zmm13 + vmovdqu64 576(%rsp),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + vpternlogq $0x96,%zmm10,%zmm4,%zmm26 + vpternlogq $0x96,%zmm6,%zmm0,%zmm24 + vpternlogq $0x96,%zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + vmovdqa64 1408(%rsp),%zmm13 + vmovdqu64 640(%rsp),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 1472(%rsp),%zmm13 + vmovdqu64 704(%rsp),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + + vpternlogq $0x96,%zmm10,%zmm4,%zmm26 + vpternlogq $0x96,%zmm6,%zmm0,%zmm24 + vpternlogq $0x96,%zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + + vpsrldq $8,%zmm26,%zmm0 + vpslldq $8,%zmm26,%zmm3 + vpxorq %zmm0,%zmm24,%zmm24 + vpxorq %zmm3,%zmm25,%zmm25 + vextracti64x4 $1,%zmm24,%ymm0 + vpxorq %ymm0,%ymm24,%ymm24 + vextracti32x4 $1,%ymm24,%xmm0 + vpxorq %xmm0,%xmm24,%xmm24 + vextracti64x4 $1,%zmm25,%ymm3 + vpxorq %ymm3,%ymm25,%ymm25 + vextracti32x4 $1,%ymm25,%xmm3 + vpxorq %xmm3,%xmm25,%xmm25 + vmovdqa64 POLY2(%rip),%xmm4 + + + vpclmulqdq $0x01,%xmm25,%xmm4,%xmm0 + vpslldq $8,%xmm0,%xmm0 + vpxorq %xmm0,%xmm25,%xmm0 + + + vpclmulqdq $0x00,%xmm0,%xmm4,%xmm3 + vpsrldq $4,%xmm3,%xmm3 + vpclmulqdq $0x10,%xmm0,%xmm4,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm24,%xmm3,%xmm14 + + subq $512,%r8 + addq $512,%r11 + movl %r8d,%r10d + andl $~15,%r10d + movl $512,%ebx + subl %r10d,%ebx + movl %r8d,%r10d + addl $15,%r10d + shrl $4,%r10d + je L$_last_num_blocks_is_0_703 + + cmpl $8,%r10d + je L$_last_num_blocks_is_8_703 + jb L$_last_num_blocks_is_7_1_703 + + + cmpl $12,%r10d + je L$_last_num_blocks_is_12_703 + jb L$_last_num_blocks_is_11_9_703 + + + cmpl $15,%r10d + je L$_last_num_blocks_is_15_703 + ja L$_last_num_blocks_is_16_703 + cmpl $14,%r10d + je L$_last_num_blocks_is_14_703 + jmp L$_last_num_blocks_is_13_703 + +L$_last_num_blocks_is_11_9_703: + + cmpl $10,%r10d + je L$_last_num_blocks_is_10_703 + ja L$_last_num_blocks_is_11_703 + jmp L$_last_num_blocks_is_9_703 + +L$_last_num_blocks_is_7_1_703: + cmpl $4,%r10d + je L$_last_num_blocks_is_4_703 + jb L$_last_num_blocks_is_3_1_703 + + cmpl $6,%r10d + ja L$_last_num_blocks_is_7_703 + je L$_last_num_blocks_is_6_703 + jmp L$_last_num_blocks_is_5_703 + +L$_last_num_blocks_is_3_1_703: + + cmpl $2,%r10d + ja L$_last_num_blocks_is_3_703 + je L$_last_num_blocks_is_2_703 +L$_last_num_blocks_is_1_703: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $255,%r15d + jae L$_16_blocks_overflow_704 + vpaddd %xmm28,%xmm2,%xmm0 + jmp L$_16_blocks_ok_704 + +L$_16_blocks_overflow_704: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %xmm29,%xmm0,%xmm0 +L$_16_blocks_ok_704: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $0,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%xmm17{%k1}{z} + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %xmm31,%xmm0,%xmm0 + vaesenclast %xmm30,%xmm0,%xmm0 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti32x4 $0,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %xmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm17,%zmm17{%k1}{z} + vpshufb %xmm29,%xmm17,%xmm17 + vextracti32x4 $0,%zmm17,%xmm7 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_705 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm17,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm17,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm17,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm17,%xmm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_705 +L$_small_initial_partial_block_705: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + + + vpsrldq $8,%zmm26,%zmm0 + vpslldq $8,%zmm26,%zmm3 + vpxorq %zmm0,%zmm24,%zmm24 + vpxorq %zmm3,%zmm25,%zmm25 + vextracti64x4 $1,%zmm24,%ymm0 + vpxorq %ymm0,%ymm24,%ymm24 + vextracti32x4 $1,%ymm24,%xmm0 + vpxorq %xmm0,%xmm24,%xmm24 + vextracti64x4 $1,%zmm25,%ymm3 + vpxorq %ymm3,%ymm25,%ymm25 + vextracti32x4 $1,%ymm25,%xmm3 + vpxorq %xmm3,%xmm25,%xmm25 + vmovdqa64 POLY2(%rip),%xmm0 + + + vpclmulqdq $0x01,%xmm25,%xmm0,%xmm3 + vpslldq $8,%xmm3,%xmm3 + vpxorq %xmm3,%xmm25,%xmm3 + + + vpclmulqdq $0x00,%xmm3,%xmm0,%xmm4 + vpsrldq $4,%xmm4,%xmm4 + vpclmulqdq $0x10,%xmm3,%xmm0,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm24,%xmm4,%xmm14 + + + + + + + + + + + + + vpxorq %xmm7,%xmm14,%xmm14 + + jmp L$_after_reduction_705 +L$_small_initial_compute_done_705: +L$_after_reduction_705: + jmp L$_last_blocks_done_703 +L$_last_num_blocks_is_2_703: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $254,%r15d + jae L$_16_blocks_overflow_706 + vpaddd %ymm28,%ymm2,%ymm0 + jmp L$_16_blocks_ok_706 + +L$_16_blocks_overflow_706: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %ymm29,%ymm0,%ymm0 +L$_16_blocks_ok_706: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $1,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%ymm17{%k1}{z} + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %ymm31,%ymm0,%ymm0 + vaesenclast %ymm30,%ymm0,%ymm0 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %ymm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm17,%zmm17{%k1}{z} + vpshufb %ymm29,%ymm17,%ymm17 + vextracti32x4 $1,%zmm17,%xmm7 + subq $16 * (2 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_707 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm17,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm17,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm17,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm17,%ymm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_707 +L$_small_initial_partial_block_707: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm17,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm17,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm17,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm17,%xmm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_707: + + orq %r8,%r8 + je L$_after_reduction_707 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_707: + jmp L$_last_blocks_done_703 +L$_last_num_blocks_is_3_703: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $253,%r15d + jae L$_16_blocks_overflow_708 + vpaddd %zmm28,%zmm2,%zmm0 + jmp L$_16_blocks_ok_708 + +L$_16_blocks_overflow_708: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %zmm29,%zmm0,%zmm0 +L$_16_blocks_ok_708: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $2,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm0,%zmm0 + vpxorq %zmm17,%zmm0,%zmm0 + vextracti32x4 $2,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm17,%zmm17{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vextracti32x4 $2,%zmm17,%xmm7 + subq $16 * (3 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_709 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_709 +L$_small_initial_partial_block_709: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm17,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm17,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm17,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm17,%ymm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_709: + + orq %r8,%r8 + je L$_after_reduction_709 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_709: + jmp L$_last_blocks_done_703 +L$_last_num_blocks_is_4_703: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $252,%r15d + jae L$_16_blocks_overflow_710 + vpaddd %zmm28,%zmm2,%zmm0 + jmp L$_16_blocks_ok_710 + +L$_16_blocks_overflow_710: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %zmm29,%zmm0,%zmm0 +L$_16_blocks_ok_710: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $3,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm0,%zmm0 + vpxorq %zmm17,%zmm0,%zmm0 + vextracti32x4 $3,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm17,%zmm17{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vextracti32x4 $3,%zmm17,%xmm7 + subq $16 * (4 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_711 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_711 +L$_small_initial_partial_block_711: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_711: + + orq %r8,%r8 + je L$_after_reduction_711 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_711: + jmp L$_last_blocks_done_703 +L$_last_num_blocks_is_5_703: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $251,%r15d + jae L$_16_blocks_overflow_712 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %xmm27,%xmm0,%xmm3 + jmp L$_16_blocks_ok_712 + +L$_16_blocks_overflow_712: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %xmm29,%xmm3,%xmm3 +L$_16_blocks_ok_712: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $0,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%xmm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %xmm30,%xmm3,%xmm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %xmm19,%xmm3,%xmm3 + vextracti32x4 $0,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %xmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm19,%zmm19{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %xmm29,%xmm19,%xmm19 + vextracti32x4 $0,%zmm19,%xmm7 + subq $16 * (5 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_713 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm19,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm19,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm19,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm19,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_713 +L$_small_initial_partial_block_713: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_713: + + orq %r8,%r8 + je L$_after_reduction_713 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_713: + jmp L$_last_blocks_done_703 +L$_last_num_blocks_is_6_703: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $250,%r15d + jae L$_16_blocks_overflow_714 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %ymm27,%ymm0,%ymm3 + jmp L$_16_blocks_ok_714 + +L$_16_blocks_overflow_714: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %ymm29,%ymm3,%ymm3 +L$_16_blocks_ok_714: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $1,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%ymm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %ymm30,%ymm3,%ymm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %ymm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm19,%zmm19{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %ymm29,%ymm19,%ymm19 + vextracti32x4 $1,%zmm19,%xmm7 + subq $16 * (6 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_715 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm19,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm19,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm19,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm19,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_715 +L$_small_initial_partial_block_715: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm19,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm19,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm19,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm19,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_715: + + orq %r8,%r8 + je L$_after_reduction_715 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_715: + jmp L$_last_blocks_done_703 +L$_last_num_blocks_is_7_703: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $249,%r15d + jae L$_16_blocks_overflow_716 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + jmp L$_16_blocks_ok_716 + +L$_16_blocks_overflow_716: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 +L$_16_blocks_ok_716: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $2,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti32x4 $2,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm19,%zmm19{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vextracti32x4 $2,%zmm19,%xmm7 + subq $16 * (7 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_717 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_717 +L$_small_initial_partial_block_717: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm19,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm19,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm19,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm19,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_717: + + orq %r8,%r8 + je L$_after_reduction_717 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_717: + jmp L$_last_blocks_done_703 +L$_last_num_blocks_is_8_703: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $248,%r15d + jae L$_16_blocks_overflow_718 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + jmp L$_16_blocks_ok_718 + +L$_16_blocks_overflow_718: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 +L$_16_blocks_ok_718: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $3,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti32x4 $3,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm19,%zmm19{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vextracti32x4 $3,%zmm19,%xmm7 + subq $16 * (8 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_719 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_719 +L$_small_initial_partial_block_719: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_719: + + orq %r8,%r8 + je L$_after_reduction_719 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_719: + jmp L$_last_blocks_done_703 +L$_last_num_blocks_is_9_703: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $247,%r15d + jae L$_16_blocks_overflow_720 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %xmm27,%xmm3,%xmm4 + jmp L$_16_blocks_ok_720 + +L$_16_blocks_overflow_720: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %xmm29,%xmm4,%xmm4 +L$_16_blocks_ok_720: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $0,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%xmm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %xmm30,%xmm4,%xmm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %xmm20,%xmm4,%xmm4 + vextracti32x4 $0,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %xmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm20,%zmm20{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %xmm29,%xmm20,%xmm20 + vextracti32x4 $0,%zmm20,%xmm7 + subq $16 * (9 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_721 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm20,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm20,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm20,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm20,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_721 +L$_small_initial_partial_block_721: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_721: + + orq %r8,%r8 + je L$_after_reduction_721 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_721: + jmp L$_last_blocks_done_703 +L$_last_num_blocks_is_10_703: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $246,%r15d + jae L$_16_blocks_overflow_722 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %ymm27,%ymm3,%ymm4 + jmp L$_16_blocks_ok_722 + +L$_16_blocks_overflow_722: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %ymm29,%ymm4,%ymm4 +L$_16_blocks_ok_722: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $1,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%ymm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %ymm30,%ymm4,%ymm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %ymm20,%ymm4,%ymm4 + vextracti32x4 $1,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %ymm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm20,%zmm20{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %ymm29,%ymm20,%ymm20 + vextracti32x4 $1,%zmm20,%xmm7 + subq $16 * (10 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_723 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm20,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm20,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm20,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm20,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_723 +L$_small_initial_partial_block_723: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm20,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm20,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm20,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm20,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_723: + + orq %r8,%r8 + je L$_after_reduction_723 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_723: + jmp L$_last_blocks_done_703 +L$_last_num_blocks_is_11_703: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $245,%r15d + jae L$_16_blocks_overflow_724 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + jmp L$_16_blocks_ok_724 + +L$_16_blocks_overflow_724: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 +L$_16_blocks_ok_724: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $2,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vextracti32x4 $2,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm20,%zmm20{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %zmm29,%zmm20,%zmm20 + vextracti32x4 $2,%zmm20,%xmm7 + subq $16 * (11 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_725 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_725 +L$_small_initial_partial_block_725: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm20,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm20,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm20,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm20,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_725: + + orq %r8,%r8 + je L$_after_reduction_725 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_725: + jmp L$_last_blocks_done_703 +L$_last_num_blocks_is_12_703: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $244,%r15d + jae L$_16_blocks_overflow_726 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + jmp L$_16_blocks_ok_726 + +L$_16_blocks_overflow_726: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 +L$_16_blocks_ok_726: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $3,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vextracti32x4 $3,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm20,%zmm20{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %zmm29,%zmm20,%zmm20 + vextracti32x4 $3,%zmm20,%xmm7 + subq $16 * (12 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_727 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 160(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_727 +L$_small_initial_partial_block_727: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_727: + + orq %r8,%r8 + je L$_after_reduction_727 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_727: + jmp L$_last_blocks_done_703 +L$_last_num_blocks_is_13_703: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $243,%r15d + jae L$_16_blocks_overflow_728 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %xmm27,%xmm4,%xmm5 + jmp L$_16_blocks_ok_728 + +L$_16_blocks_overflow_728: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %xmm29,%xmm5,%xmm5 +L$_16_blocks_ok_728: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $0,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%xmm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %xmm30,%xmm5,%xmm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %xmm21,%xmm5,%xmm5 + vextracti32x4 $0,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %xmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm21,%zmm21{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %zmm29,%zmm20,%zmm20 + vpshufb %xmm29,%xmm21,%xmm21 + vextracti32x4 $0,%zmm21,%xmm7 + subq $16 * (13 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_729 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 144(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm21,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm21,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm21,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm21,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_729 +L$_small_initial_partial_block_729: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 160(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_729: + + orq %r8,%r8 + je L$_after_reduction_729 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_729: + jmp L$_last_blocks_done_703 +L$_last_num_blocks_is_14_703: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $242,%r15d + jae L$_16_blocks_overflow_730 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %ymm27,%ymm4,%ymm5 + jmp L$_16_blocks_ok_730 + +L$_16_blocks_overflow_730: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %ymm29,%ymm5,%ymm5 +L$_16_blocks_ok_730: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $1,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%ymm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %ymm30,%ymm5,%ymm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %ymm21,%ymm5,%ymm5 + vextracti32x4 $1,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %ymm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm21,%zmm21{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %zmm29,%zmm20,%zmm20 + vpshufb %ymm29,%ymm21,%ymm21 + vextracti32x4 $1,%zmm21,%xmm7 + subq $16 * (14 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_731 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 128(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm21,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm21,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm21,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm21,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_731 +L$_small_initial_partial_block_731: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 144(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm21,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm21,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm21,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm21,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_731: + + orq %r8,%r8 + je L$_after_reduction_731 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_731: + jmp L$_last_blocks_done_703 +L$_last_num_blocks_is_15_703: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $241,%r15d + jae L$_16_blocks_overflow_732 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp L$_16_blocks_ok_732 + +L$_16_blocks_overflow_732: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +L$_16_blocks_ok_732: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $2,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%zmm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + vextracti32x4 $2,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %zmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm21,%zmm21{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %zmm29,%zmm20,%zmm20 + vpshufb %zmm29,%zmm21,%zmm21 + vextracti32x4 $2,%zmm21,%xmm7 + subq $16 * (15 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_733 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 112(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm21,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm21,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm21,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm21,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_733 +L$_small_initial_partial_block_733: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 128(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm21,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm21,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm21,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm21,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_733: + + orq %r8,%r8 + je L$_after_reduction_733 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_733: + jmp L$_last_blocks_done_703 +L$_last_num_blocks_is_16_703: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $240,%r15d + jae L$_16_blocks_overflow_734 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp L$_16_blocks_ok_734 + +L$_16_blocks_overflow_734: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +L$_16_blocks_ok_734: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $3,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%zmm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + vextracti32x4 $3,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %zmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm21,%zmm21{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %zmm29,%zmm20,%zmm20 + vpshufb %zmm29,%zmm21,%zmm21 + vextracti32x4 $3,%zmm21,%xmm7 + subq $16 * (16 - 1),%r8 +L$_small_initial_partial_block_735: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 112(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm21,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm21,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm21,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm21,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_735: + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_735: + jmp L$_last_blocks_done_703 +L$_last_num_blocks_is_0_703: + vmovdqa64 768(%rsp),%zmm13 + vpxorq %zmm14,%zmm13,%zmm13 + vmovdqu64 0(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 832(%rsp),%zmm13 + vmovdqu64 64(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + vpxorq %zmm10,%zmm4,%zmm26 + vpxorq %zmm6,%zmm0,%zmm24 + vpxorq %zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + vmovdqa64 896(%rsp),%zmm13 + vmovdqu64 128(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 960(%rsp),%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + + vpternlogq $0x96,%zmm10,%zmm4,%zmm26 + vpternlogq $0x96,%zmm6,%zmm0,%zmm24 + vpternlogq $0x96,%zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + + vpsrldq $8,%zmm26,%zmm0 + vpslldq $8,%zmm26,%zmm3 + vpxorq %zmm0,%zmm24,%zmm24 + vpxorq %zmm3,%zmm25,%zmm25 + vextracti64x4 $1,%zmm24,%ymm0 + vpxorq %ymm0,%ymm24,%ymm24 + vextracti32x4 $1,%ymm24,%xmm0 + vpxorq %xmm0,%xmm24,%xmm24 + vextracti64x4 $1,%zmm25,%ymm3 + vpxorq %ymm3,%ymm25,%ymm25 + vextracti32x4 $1,%ymm25,%xmm3 + vpxorq %xmm3,%xmm25,%xmm25 + vmovdqa64 POLY2(%rip),%xmm4 + + + vpclmulqdq $0x01,%xmm25,%xmm4,%xmm0 + vpslldq $8,%xmm0,%xmm0 + vpxorq %xmm0,%xmm25,%xmm0 + + + vpclmulqdq $0x00,%xmm0,%xmm4,%xmm3 + vpsrldq $4,%xmm3,%xmm3 + vpclmulqdq $0x10,%xmm0,%xmm4,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm24,%xmm3,%xmm14 + +L$_last_blocks_done_703: + vpshufb %xmm29,%xmm2,%xmm2 + jmp L$_ghash_done_659 +L$_encrypt_16_blocks_659: + cmpb $240,%r15b + jae L$_16_blocks_overflow_736 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp L$_16_blocks_ok_736 +L$_16_blocks_overflow_736: + vpshufb %zmm29,%zmm2,%zmm2 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +L$_16_blocks_ok_736: + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp),%zmm1 + + + + + vshufi64x2 $255,%zmm5,%zmm5,%zmm2 + addb $16,%r15b + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + + + + + + + + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm6 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm6 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + + + + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%zmm21 + + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm15,%zmm10,%zmm26 + vpxorq %zmm12,%zmm6,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 192(%rdi),%zmm30 + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + + + + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + + + + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %zmm5,192(%r10,%r11,1) + vpshufb %zmm29,%zmm17,%zmm0 + vpshufb %zmm29,%zmm19,%zmm3 + vpshufb %zmm29,%zmm20,%zmm4 + vpshufb %zmm29,%zmm21,%zmm5 + vmovdqa64 %zmm0,1280(%rsp) + vmovdqa64 %zmm3,1344(%rsp) + vmovdqa64 %zmm4,1408(%rsp) + vmovdqa64 %zmm5,1472(%rsp) + vmovdqa64 1024(%rsp),%zmm13 + vmovdqu64 256(%rsp),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 1088(%rsp),%zmm13 + vmovdqu64 320(%rsp),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + vpternlogq $0x96,%zmm10,%zmm4,%zmm26 + vpternlogq $0x96,%zmm6,%zmm0,%zmm24 + vpternlogq $0x96,%zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + vmovdqa64 1152(%rsp),%zmm13 + vmovdqu64 384(%rsp),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 1216(%rsp),%zmm13 + vmovdqu64 448(%rsp),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + + vpternlogq $0x96,%zmm10,%zmm4,%zmm26 + vpternlogq $0x96,%zmm6,%zmm0,%zmm24 + vpternlogq $0x96,%zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + subq $256,%r8 + addq $256,%r11 + movl %r8d,%r10d + addl $15,%r10d + shrl $4,%r10d + je L$_last_num_blocks_is_0_737 + + cmpl $8,%r10d + je L$_last_num_blocks_is_8_737 + jb L$_last_num_blocks_is_7_1_737 + + + cmpl $12,%r10d + je L$_last_num_blocks_is_12_737 + jb L$_last_num_blocks_is_11_9_737 + + + cmpl $15,%r10d + je L$_last_num_blocks_is_15_737 + ja L$_last_num_blocks_is_16_737 + cmpl $14,%r10d + je L$_last_num_blocks_is_14_737 + jmp L$_last_num_blocks_is_13_737 + +L$_last_num_blocks_is_11_9_737: + + cmpl $10,%r10d + je L$_last_num_blocks_is_10_737 + ja L$_last_num_blocks_is_11_737 + jmp L$_last_num_blocks_is_9_737 + +L$_last_num_blocks_is_7_1_737: + cmpl $4,%r10d + je L$_last_num_blocks_is_4_737 + jb L$_last_num_blocks_is_3_1_737 + + cmpl $6,%r10d + ja L$_last_num_blocks_is_7_737 + je L$_last_num_blocks_is_6_737 + jmp L$_last_num_blocks_is_5_737 + +L$_last_num_blocks_is_3_1_737: + + cmpl $2,%r10d + ja L$_last_num_blocks_is_3_737 + je L$_last_num_blocks_is_2_737 +L$_last_num_blocks_is_1_737: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $255,%r15d + jae L$_16_blocks_overflow_738 + vpaddd %xmm28,%xmm2,%xmm0 + jmp L$_16_blocks_ok_738 + +L$_16_blocks_overflow_738: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %xmm29,%xmm0,%xmm0 +L$_16_blocks_ok_738: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $0,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%xmm17{%k1}{z} + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %xmm31,%xmm0,%xmm0 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vbroadcastf64x2 176(%rdi),%zmm31 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %xmm31,%xmm0,%xmm0 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %xmm30,%xmm0,%xmm0 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti32x4 $0,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %xmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm17,%zmm17{%k1}{z} + vpshufb %xmm29,%xmm17,%xmm17 + vextracti32x4 $0,%zmm17,%xmm7 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_739 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm17,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm17,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm17,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm17,%xmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_739 +L$_small_initial_partial_block_739: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + + + + + + + + + + + + vpxorq %xmm7,%xmm14,%xmm14 + + jmp L$_after_reduction_739 +L$_small_initial_compute_done_739: +L$_after_reduction_739: + jmp L$_last_blocks_done_737 +L$_last_num_blocks_is_2_737: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $254,%r15d + jae L$_16_blocks_overflow_740 + vpaddd %ymm28,%ymm2,%ymm0 + jmp L$_16_blocks_ok_740 + +L$_16_blocks_overflow_740: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %ymm29,%ymm0,%ymm0 +L$_16_blocks_ok_740: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $1,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%ymm17{%k1}{z} + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %ymm31,%ymm0,%ymm0 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vbroadcastf64x2 176(%rdi),%zmm31 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %ymm31,%ymm0,%ymm0 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %ymm30,%ymm0,%ymm0 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %ymm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm17,%zmm17{%k1}{z} + vpshufb %ymm29,%ymm17,%ymm17 + vextracti32x4 $1,%zmm17,%xmm7 + subq $16 * (2 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_741 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm17,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm17,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm17,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm17,%ymm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_741 +L$_small_initial_partial_block_741: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm17,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm17,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm17,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm17,%xmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_741: + + orq %r8,%r8 + je L$_after_reduction_741 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_741: + jmp L$_last_blocks_done_737 +L$_last_num_blocks_is_3_737: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $253,%r15d + jae L$_16_blocks_overflow_742 + vpaddd %zmm28,%zmm2,%zmm0 + jmp L$_16_blocks_ok_742 + +L$_16_blocks_overflow_742: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %zmm29,%zmm0,%zmm0 +L$_16_blocks_ok_742: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $2,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vbroadcastf64x2 176(%rdi),%zmm31 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vpxorq %zmm17,%zmm0,%zmm0 + vextracti32x4 $2,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm17,%zmm17{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vextracti32x4 $2,%zmm17,%xmm7 + subq $16 * (3 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_743 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_743 +L$_small_initial_partial_block_743: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm17,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm17,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm17,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm17,%ymm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_743: + + orq %r8,%r8 + je L$_after_reduction_743 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_743: + jmp L$_last_blocks_done_737 +L$_last_num_blocks_is_4_737: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $252,%r15d + jae L$_16_blocks_overflow_744 + vpaddd %zmm28,%zmm2,%zmm0 + jmp L$_16_blocks_ok_744 + +L$_16_blocks_overflow_744: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %zmm29,%zmm0,%zmm0 +L$_16_blocks_ok_744: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $3,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vbroadcastf64x2 176(%rdi),%zmm31 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vpxorq %zmm17,%zmm0,%zmm0 + vextracti32x4 $3,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm17,%zmm17{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vextracti32x4 $3,%zmm17,%xmm7 + subq $16 * (4 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_745 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_745 +L$_small_initial_partial_block_745: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_745: + + orq %r8,%r8 + je L$_after_reduction_745 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_745: + jmp L$_last_blocks_done_737 +L$_last_num_blocks_is_5_737: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $251,%r15d + jae L$_16_blocks_overflow_746 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %xmm27,%xmm0,%xmm3 + jmp L$_16_blocks_ok_746 + +L$_16_blocks_overflow_746: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %xmm29,%xmm3,%xmm3 +L$_16_blocks_ok_746: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $0,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%xmm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vbroadcastf64x2 176(%rdi),%zmm31 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %xmm30,%xmm3,%xmm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %xmm19,%xmm3,%xmm3 + vextracti32x4 $0,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %xmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm19,%zmm19{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %xmm29,%xmm19,%xmm19 + vextracti32x4 $0,%zmm19,%xmm7 + subq $16 * (5 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_747 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm19,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm19,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm19,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm19,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_747 +L$_small_initial_partial_block_747: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_747: + + orq %r8,%r8 + je L$_after_reduction_747 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_747: + jmp L$_last_blocks_done_737 +L$_last_num_blocks_is_6_737: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $250,%r15d + jae L$_16_blocks_overflow_748 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %ymm27,%ymm0,%ymm3 + jmp L$_16_blocks_ok_748 + +L$_16_blocks_overflow_748: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %ymm29,%ymm3,%ymm3 +L$_16_blocks_ok_748: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $1,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%ymm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vbroadcastf64x2 176(%rdi),%zmm31 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %ymm30,%ymm3,%ymm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %ymm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm19,%zmm19{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %ymm29,%ymm19,%ymm19 + vextracti32x4 $1,%zmm19,%xmm7 + subq $16 * (6 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_749 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm19,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm19,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm19,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm19,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_749 +L$_small_initial_partial_block_749: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm19,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm19,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm19,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm19,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_749: + + orq %r8,%r8 + je L$_after_reduction_749 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_749: + jmp L$_last_blocks_done_737 +L$_last_num_blocks_is_7_737: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $249,%r15d + jae L$_16_blocks_overflow_750 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + jmp L$_16_blocks_ok_750 + +L$_16_blocks_overflow_750: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 +L$_16_blocks_ok_750: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $2,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vbroadcastf64x2 176(%rdi),%zmm31 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti32x4 $2,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm19,%zmm19{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vextracti32x4 $2,%zmm19,%xmm7 + subq $16 * (7 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_751 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_751 +L$_small_initial_partial_block_751: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm19,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm19,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm19,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm19,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_751: + + orq %r8,%r8 + je L$_after_reduction_751 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_751: + jmp L$_last_blocks_done_737 +L$_last_num_blocks_is_8_737: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $248,%r15d + jae L$_16_blocks_overflow_752 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + jmp L$_16_blocks_ok_752 + +L$_16_blocks_overflow_752: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 +L$_16_blocks_ok_752: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $3,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vbroadcastf64x2 176(%rdi),%zmm31 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti32x4 $3,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm19,%zmm19{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vextracti32x4 $3,%zmm19,%xmm7 + subq $16 * (8 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_753 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_753 +L$_small_initial_partial_block_753: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_753: + + orq %r8,%r8 + je L$_after_reduction_753 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_753: + jmp L$_last_blocks_done_737 +L$_last_num_blocks_is_9_737: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $247,%r15d + jae L$_16_blocks_overflow_754 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %xmm27,%xmm3,%xmm4 + jmp L$_16_blocks_ok_754 + +L$_16_blocks_overflow_754: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %xmm29,%xmm4,%xmm4 +L$_16_blocks_ok_754: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $0,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%xmm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vbroadcastf64x2 176(%rdi),%zmm31 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %xmm30,%xmm4,%xmm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %xmm20,%xmm4,%xmm4 + vextracti32x4 $0,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %xmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm20,%zmm20{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %xmm29,%xmm20,%xmm20 + vextracti32x4 $0,%zmm20,%xmm7 + subq $16 * (9 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_755 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm20,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm20,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm20,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm20,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_755 +L$_small_initial_partial_block_755: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_755: + + orq %r8,%r8 + je L$_after_reduction_755 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_755: + jmp L$_last_blocks_done_737 +L$_last_num_blocks_is_10_737: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $246,%r15d + jae L$_16_blocks_overflow_756 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %ymm27,%ymm3,%ymm4 + jmp L$_16_blocks_ok_756 + +L$_16_blocks_overflow_756: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %ymm29,%ymm4,%ymm4 +L$_16_blocks_ok_756: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $1,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%ymm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vbroadcastf64x2 176(%rdi),%zmm31 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %ymm30,%ymm4,%ymm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %ymm20,%ymm4,%ymm4 + vextracti32x4 $1,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %ymm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm20,%zmm20{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %ymm29,%ymm20,%ymm20 + vextracti32x4 $1,%zmm20,%xmm7 + subq $16 * (10 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_757 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm20,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm20,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm20,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm20,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_757 +L$_small_initial_partial_block_757: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm20,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm20,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm20,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm20,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_757: + + orq %r8,%r8 + je L$_after_reduction_757 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_757: + jmp L$_last_blocks_done_737 +L$_last_num_blocks_is_11_737: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $245,%r15d + jae L$_16_blocks_overflow_758 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + jmp L$_16_blocks_ok_758 + +L$_16_blocks_overflow_758: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 +L$_16_blocks_ok_758: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $2,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vbroadcastf64x2 176(%rdi),%zmm31 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vextracti32x4 $2,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm20,%zmm20{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %zmm29,%zmm20,%zmm20 + vextracti32x4 $2,%zmm20,%xmm7 + subq $16 * (11 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_759 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_759 +L$_small_initial_partial_block_759: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm20,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm20,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm20,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm20,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_759: + + orq %r8,%r8 + je L$_after_reduction_759 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_759: + jmp L$_last_blocks_done_737 +L$_last_num_blocks_is_12_737: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $244,%r15d + jae L$_16_blocks_overflow_760 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + jmp L$_16_blocks_ok_760 + +L$_16_blocks_overflow_760: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 +L$_16_blocks_ok_760: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $3,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vbroadcastf64x2 176(%rdi),%zmm31 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vextracti32x4 $3,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm20,%zmm20{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %zmm29,%zmm20,%zmm20 + vextracti32x4 $3,%zmm20,%xmm7 + subq $16 * (12 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_761 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 160(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_761 +L$_small_initial_partial_block_761: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_761: + + orq %r8,%r8 + je L$_after_reduction_761 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_761: + jmp L$_last_blocks_done_737 +L$_last_num_blocks_is_13_737: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $243,%r15d + jae L$_16_blocks_overflow_762 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %xmm27,%xmm4,%xmm5 + jmp L$_16_blocks_ok_762 + +L$_16_blocks_overflow_762: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %xmm29,%xmm5,%xmm5 +L$_16_blocks_ok_762: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $0,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%xmm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vbroadcastf64x2 176(%rdi),%zmm31 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %xmm30,%xmm5,%xmm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %xmm21,%xmm5,%xmm5 + vextracti32x4 $0,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %xmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm21,%zmm21{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %zmm29,%zmm20,%zmm20 + vpshufb %xmm29,%xmm21,%xmm21 + vextracti32x4 $0,%zmm21,%xmm7 + subq $16 * (13 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_763 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 144(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm21,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm21,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm21,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm21,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_763 +L$_small_initial_partial_block_763: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 160(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_763: + + orq %r8,%r8 + je L$_after_reduction_763 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_763: + jmp L$_last_blocks_done_737 +L$_last_num_blocks_is_14_737: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $242,%r15d + jae L$_16_blocks_overflow_764 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %ymm27,%ymm4,%ymm5 + jmp L$_16_blocks_ok_764 + +L$_16_blocks_overflow_764: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %ymm29,%ymm5,%ymm5 +L$_16_blocks_ok_764: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $1,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%ymm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vbroadcastf64x2 176(%rdi),%zmm31 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %ymm30,%ymm5,%ymm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %ymm21,%ymm5,%ymm5 + vextracti32x4 $1,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %ymm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm21,%zmm21{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %zmm29,%zmm20,%zmm20 + vpshufb %ymm29,%ymm21,%ymm21 + vextracti32x4 $1,%zmm21,%xmm7 + subq $16 * (14 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_765 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 128(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm21,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm21,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm21,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm21,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_765 +L$_small_initial_partial_block_765: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 144(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm21,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm21,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm21,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm21,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_765: + + orq %r8,%r8 + je L$_after_reduction_765 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_765: + jmp L$_last_blocks_done_737 +L$_last_num_blocks_is_15_737: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $241,%r15d + jae L$_16_blocks_overflow_766 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp L$_16_blocks_ok_766 + +L$_16_blocks_overflow_766: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +L$_16_blocks_ok_766: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $2,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%zmm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vbroadcastf64x2 176(%rdi),%zmm31 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + vextracti32x4 $2,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %zmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm21,%zmm21{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %zmm29,%zmm20,%zmm20 + vpshufb %zmm29,%zmm21,%zmm21 + vextracti32x4 $2,%zmm21,%xmm7 + subq $16 * (15 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_767 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 112(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm21,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm21,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm21,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm21,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_767 +L$_small_initial_partial_block_767: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 128(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm21,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm21,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm21,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm21,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_767: + + orq %r8,%r8 + je L$_after_reduction_767 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_767: + jmp L$_last_blocks_done_737 +L$_last_num_blocks_is_16_737: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $240,%r15d + jae L$_16_blocks_overflow_768 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp L$_16_blocks_ok_768 + +L$_16_blocks_overflow_768: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +L$_16_blocks_ok_768: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $3,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%zmm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vbroadcastf64x2 176(%rdi),%zmm31 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + vextracti32x4 $3,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %zmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm21,%zmm21{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %zmm29,%zmm20,%zmm20 + vpshufb %zmm29,%zmm21,%zmm21 + vextracti32x4 $3,%zmm21,%xmm7 + subq $16 * (16 - 1),%r8 +L$_small_initial_partial_block_769: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 112(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm21,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm21,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm21,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm21,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_769: + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_769: + jmp L$_last_blocks_done_737 +L$_last_num_blocks_is_0_737: + vmovdqa64 1280(%rsp),%zmm13 + vmovdqu64 512(%rsp),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 1344(%rsp),%zmm13 + vmovdqu64 576(%rsp),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + vpternlogq $0x96,%zmm10,%zmm4,%zmm26 + vpternlogq $0x96,%zmm6,%zmm0,%zmm24 + vpternlogq $0x96,%zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + vmovdqa64 1408(%rsp),%zmm13 + vmovdqu64 640(%rsp),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 1472(%rsp),%zmm13 + vmovdqu64 704(%rsp),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + + vpternlogq $0x96,%zmm10,%zmm4,%zmm26 + vpternlogq $0x96,%zmm6,%zmm0,%zmm24 + vpternlogq $0x96,%zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + + vpsrldq $8,%zmm26,%zmm0 + vpslldq $8,%zmm26,%zmm3 + vpxorq %zmm0,%zmm24,%zmm24 + vpxorq %zmm3,%zmm25,%zmm25 + vextracti64x4 $1,%zmm24,%ymm0 + vpxorq %ymm0,%ymm24,%ymm24 + vextracti32x4 $1,%ymm24,%xmm0 + vpxorq %xmm0,%xmm24,%xmm24 + vextracti64x4 $1,%zmm25,%ymm3 + vpxorq %ymm3,%ymm25,%ymm25 + vextracti32x4 $1,%ymm25,%xmm3 + vpxorq %xmm3,%xmm25,%xmm25 + vmovdqa64 POLY2(%rip),%xmm4 + + + vpclmulqdq $0x01,%xmm25,%xmm4,%xmm0 + vpslldq $8,%xmm0,%xmm0 + vpxorq %xmm0,%xmm25,%xmm0 + + + vpclmulqdq $0x00,%xmm0,%xmm4,%xmm3 + vpsrldq $4,%xmm3,%xmm3 + vpclmulqdq $0x10,%xmm0,%xmm4,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm24,%xmm3,%xmm14 + +L$_last_blocks_done_737: + vpshufb %xmm29,%xmm2,%xmm2 + jmp L$_ghash_done_659 + +L$_message_below_32_blocks_659: + + + subq $256,%r8 + addq $256,%r11 + movl %r8d,%r10d + testq %r14,%r14 + jnz L$_skip_hkeys_precomputation_770 + vmovdqu64 640(%rsp),%zmm3 + + + vshufi64x2 $0x00,%zmm3,%zmm3,%zmm3 + + vmovdqu64 576(%rsp),%zmm4 + vmovdqu64 512(%rsp),%zmm5 + + vpclmulqdq $0x11,%zmm3,%zmm4,%zmm6 + vpclmulqdq $0x00,%zmm3,%zmm4,%zmm7 + vpclmulqdq $0x01,%zmm3,%zmm4,%zmm10 + vpclmulqdq $0x10,%zmm3,%zmm4,%zmm4 + vpxorq %zmm10,%zmm4,%zmm4 + + vpsrldq $8,%zmm4,%zmm10 + vpslldq $8,%zmm4,%zmm4 + vpxorq %zmm10,%zmm6,%zmm6 + vpxorq %zmm7,%zmm4,%zmm4 + + + + vmovdqu64 POLY2(%rip),%zmm10 + + vpclmulqdq $0x01,%zmm4,%zmm10,%zmm7 + vpslldq $8,%zmm7,%zmm7 + vpxorq %zmm7,%zmm4,%zmm4 + + + + vpclmulqdq $0x00,%zmm4,%zmm10,%zmm7 + vpsrldq $4,%zmm7,%zmm7 + vpclmulqdq $0x10,%zmm4,%zmm10,%zmm4 + vpslldq $4,%zmm4,%zmm4 + + vpternlogq $0x96,%zmm7,%zmm6,%zmm4 + + vmovdqu64 %zmm4,448(%rsp) + + vpclmulqdq $0x11,%zmm3,%zmm5,%zmm6 + vpclmulqdq $0x00,%zmm3,%zmm5,%zmm7 + vpclmulqdq $0x01,%zmm3,%zmm5,%zmm10 + vpclmulqdq $0x10,%zmm3,%zmm5,%zmm5 + vpxorq %zmm10,%zmm5,%zmm5 + + vpsrldq $8,%zmm5,%zmm10 + vpslldq $8,%zmm5,%zmm5 + vpxorq %zmm10,%zmm6,%zmm6 + vpxorq %zmm7,%zmm5,%zmm5 + + + + vmovdqu64 POLY2(%rip),%zmm10 + + vpclmulqdq $0x01,%zmm5,%zmm10,%zmm7 + vpslldq $8,%zmm7,%zmm7 + vpxorq %zmm7,%zmm5,%zmm5 + + + + vpclmulqdq $0x00,%zmm5,%zmm10,%zmm7 + vpsrldq $4,%zmm7,%zmm7 + vpclmulqdq $0x10,%zmm5,%zmm10,%zmm5 + vpslldq $4,%zmm5,%zmm5 + + vpternlogq $0x96,%zmm7,%zmm6,%zmm5 + + vmovdqu64 %zmm5,384(%rsp) + + vpclmulqdq $0x11,%zmm3,%zmm4,%zmm6 + vpclmulqdq $0x00,%zmm3,%zmm4,%zmm7 + vpclmulqdq $0x01,%zmm3,%zmm4,%zmm10 + vpclmulqdq $0x10,%zmm3,%zmm4,%zmm4 + vpxorq %zmm10,%zmm4,%zmm4 + + vpsrldq $8,%zmm4,%zmm10 + vpslldq $8,%zmm4,%zmm4 + vpxorq %zmm10,%zmm6,%zmm6 + vpxorq %zmm7,%zmm4,%zmm4 + + + + vmovdqu64 POLY2(%rip),%zmm10 + + vpclmulqdq $0x01,%zmm4,%zmm10,%zmm7 + vpslldq $8,%zmm7,%zmm7 + vpxorq %zmm7,%zmm4,%zmm4 + + + + vpclmulqdq $0x00,%zmm4,%zmm10,%zmm7 + vpsrldq $4,%zmm7,%zmm7 + vpclmulqdq $0x10,%zmm4,%zmm10,%zmm4 + vpslldq $4,%zmm4,%zmm4 + + vpternlogq $0x96,%zmm7,%zmm6,%zmm4 + + vmovdqu64 %zmm4,320(%rsp) + + vpclmulqdq $0x11,%zmm3,%zmm5,%zmm6 + vpclmulqdq $0x00,%zmm3,%zmm5,%zmm7 + vpclmulqdq $0x01,%zmm3,%zmm5,%zmm10 + vpclmulqdq $0x10,%zmm3,%zmm5,%zmm5 + vpxorq %zmm10,%zmm5,%zmm5 + + vpsrldq $8,%zmm5,%zmm10 + vpslldq $8,%zmm5,%zmm5 + vpxorq %zmm10,%zmm6,%zmm6 + vpxorq %zmm7,%zmm5,%zmm5 + + + + vmovdqu64 POLY2(%rip),%zmm10 + + vpclmulqdq $0x01,%zmm5,%zmm10,%zmm7 + vpslldq $8,%zmm7,%zmm7 + vpxorq %zmm7,%zmm5,%zmm5 + + + + vpclmulqdq $0x00,%zmm5,%zmm10,%zmm7 + vpsrldq $4,%zmm7,%zmm7 + vpclmulqdq $0x10,%zmm5,%zmm10,%zmm5 + vpslldq $4,%zmm5,%zmm5 + + vpternlogq $0x96,%zmm7,%zmm6,%zmm5 + + vmovdqu64 %zmm5,256(%rsp) +L$_skip_hkeys_precomputation_770: + movq $1,%r14 + andl $~15,%r10d + movl $512,%ebx + subl %r10d,%ebx + movl %r8d,%r10d + addl $15,%r10d + shrl $4,%r10d + je L$_last_num_blocks_is_0_771 + + cmpl $8,%r10d + je L$_last_num_blocks_is_8_771 + jb L$_last_num_blocks_is_7_1_771 + + + cmpl $12,%r10d + je L$_last_num_blocks_is_12_771 + jb L$_last_num_blocks_is_11_9_771 + + + cmpl $15,%r10d + je L$_last_num_blocks_is_15_771 + ja L$_last_num_blocks_is_16_771 + cmpl $14,%r10d + je L$_last_num_blocks_is_14_771 + jmp L$_last_num_blocks_is_13_771 + +L$_last_num_blocks_is_11_9_771: + + cmpl $10,%r10d + je L$_last_num_blocks_is_10_771 + ja L$_last_num_blocks_is_11_771 + jmp L$_last_num_blocks_is_9_771 + +L$_last_num_blocks_is_7_1_771: + cmpl $4,%r10d + je L$_last_num_blocks_is_4_771 + jb L$_last_num_blocks_is_3_1_771 + + cmpl $6,%r10d + ja L$_last_num_blocks_is_7_771 + je L$_last_num_blocks_is_6_771 + jmp L$_last_num_blocks_is_5_771 + +L$_last_num_blocks_is_3_1_771: + + cmpl $2,%r10d + ja L$_last_num_blocks_is_3_771 + je L$_last_num_blocks_is_2_771 +L$_last_num_blocks_is_1_771: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $255,%r15d + jae L$_16_blocks_overflow_772 + vpaddd %xmm28,%xmm2,%xmm0 + jmp L$_16_blocks_ok_772 + +L$_16_blocks_overflow_772: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %xmm29,%xmm0,%xmm0 +L$_16_blocks_ok_772: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $0,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%xmm17{%k1}{z} + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %xmm31,%xmm0,%xmm0 + vaesenclast %xmm30,%xmm0,%xmm0 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti32x4 $0,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %xmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm17,%zmm17{%k1}{z} + vpshufb %xmm29,%xmm17,%xmm17 + vextracti32x4 $0,%zmm17,%xmm7 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_773 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm17,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm17,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm17,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm17,%xmm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_773 +L$_small_initial_partial_block_773: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + + + vpsrldq $8,%zmm26,%zmm0 + vpslldq $8,%zmm26,%zmm3 + vpxorq %zmm0,%zmm24,%zmm24 + vpxorq %zmm3,%zmm25,%zmm25 + vextracti64x4 $1,%zmm24,%ymm0 + vpxorq %ymm0,%ymm24,%ymm24 + vextracti32x4 $1,%ymm24,%xmm0 + vpxorq %xmm0,%xmm24,%xmm24 + vextracti64x4 $1,%zmm25,%ymm3 + vpxorq %ymm3,%ymm25,%ymm25 + vextracti32x4 $1,%ymm25,%xmm3 + vpxorq %xmm3,%xmm25,%xmm25 + vmovdqa64 POLY2(%rip),%xmm0 + + + vpclmulqdq $0x01,%xmm25,%xmm0,%xmm3 + vpslldq $8,%xmm3,%xmm3 + vpxorq %xmm3,%xmm25,%xmm3 + + + vpclmulqdq $0x00,%xmm3,%xmm0,%xmm4 + vpsrldq $4,%xmm4,%xmm4 + vpclmulqdq $0x10,%xmm3,%xmm0,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm24,%xmm4,%xmm14 + + + + + + + + + + + + + vpxorq %xmm7,%xmm14,%xmm14 + + jmp L$_after_reduction_773 +L$_small_initial_compute_done_773: +L$_after_reduction_773: + jmp L$_last_blocks_done_771 +L$_last_num_blocks_is_2_771: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $254,%r15d + jae L$_16_blocks_overflow_774 + vpaddd %ymm28,%ymm2,%ymm0 + jmp L$_16_blocks_ok_774 + +L$_16_blocks_overflow_774: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %ymm29,%ymm0,%ymm0 +L$_16_blocks_ok_774: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $1,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%ymm17{%k1}{z} + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %ymm31,%ymm0,%ymm0 + vaesenclast %ymm30,%ymm0,%ymm0 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %ymm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm17,%zmm17{%k1}{z} + vpshufb %ymm29,%ymm17,%ymm17 + vextracti32x4 $1,%zmm17,%xmm7 + subq $16 * (2 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_775 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm17,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm17,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm17,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm17,%ymm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_775 +L$_small_initial_partial_block_775: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm17,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm17,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm17,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm17,%xmm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_775: + + orq %r8,%r8 + je L$_after_reduction_775 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_775: + jmp L$_last_blocks_done_771 +L$_last_num_blocks_is_3_771: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $253,%r15d + jae L$_16_blocks_overflow_776 + vpaddd %zmm28,%zmm2,%zmm0 + jmp L$_16_blocks_ok_776 + +L$_16_blocks_overflow_776: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %zmm29,%zmm0,%zmm0 +L$_16_blocks_ok_776: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $2,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm0,%zmm0 + vpxorq %zmm17,%zmm0,%zmm0 + vextracti32x4 $2,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm17,%zmm17{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vextracti32x4 $2,%zmm17,%xmm7 + subq $16 * (3 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_777 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_777 +L$_small_initial_partial_block_777: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm17,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm17,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm17,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm17,%ymm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_777: + + orq %r8,%r8 + je L$_after_reduction_777 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_777: + jmp L$_last_blocks_done_771 +L$_last_num_blocks_is_4_771: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $252,%r15d + jae L$_16_blocks_overflow_778 + vpaddd %zmm28,%zmm2,%zmm0 + jmp L$_16_blocks_ok_778 + +L$_16_blocks_overflow_778: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %zmm29,%zmm0,%zmm0 +L$_16_blocks_ok_778: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $3,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm0,%zmm0 + vpxorq %zmm17,%zmm0,%zmm0 + vextracti32x4 $3,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm17,%zmm17{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vextracti32x4 $3,%zmm17,%xmm7 + subq $16 * (4 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_779 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_779 +L$_small_initial_partial_block_779: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_779: + + orq %r8,%r8 + je L$_after_reduction_779 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_779: + jmp L$_last_blocks_done_771 +L$_last_num_blocks_is_5_771: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $251,%r15d + jae L$_16_blocks_overflow_780 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %xmm27,%xmm0,%xmm3 + jmp L$_16_blocks_ok_780 + +L$_16_blocks_overflow_780: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %xmm29,%xmm3,%xmm3 +L$_16_blocks_ok_780: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $0,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%xmm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %xmm30,%xmm3,%xmm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %xmm19,%xmm3,%xmm3 + vextracti32x4 $0,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %xmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm19,%zmm19{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %xmm29,%xmm19,%xmm19 + vextracti32x4 $0,%zmm19,%xmm7 + subq $16 * (5 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_781 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm19,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm19,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm19,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm19,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_781 +L$_small_initial_partial_block_781: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_781: + + orq %r8,%r8 + je L$_after_reduction_781 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_781: + jmp L$_last_blocks_done_771 +L$_last_num_blocks_is_6_771: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $250,%r15d + jae L$_16_blocks_overflow_782 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %ymm27,%ymm0,%ymm3 + jmp L$_16_blocks_ok_782 + +L$_16_blocks_overflow_782: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %ymm29,%ymm3,%ymm3 +L$_16_blocks_ok_782: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $1,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%ymm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %ymm30,%ymm3,%ymm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %ymm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm19,%zmm19{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %ymm29,%ymm19,%ymm19 + vextracti32x4 $1,%zmm19,%xmm7 + subq $16 * (6 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_783 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm19,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm19,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm19,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm19,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_783 +L$_small_initial_partial_block_783: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm19,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm19,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm19,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm19,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_783: + + orq %r8,%r8 + je L$_after_reduction_783 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_783: + jmp L$_last_blocks_done_771 +L$_last_num_blocks_is_7_771: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $249,%r15d + jae L$_16_blocks_overflow_784 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + jmp L$_16_blocks_ok_784 + +L$_16_blocks_overflow_784: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 +L$_16_blocks_ok_784: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $2,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti32x4 $2,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm19,%zmm19{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vextracti32x4 $2,%zmm19,%xmm7 + subq $16 * (7 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_785 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_785 +L$_small_initial_partial_block_785: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm19,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm19,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm19,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm19,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_785: + + orq %r8,%r8 + je L$_after_reduction_785 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_785: + jmp L$_last_blocks_done_771 +L$_last_num_blocks_is_8_771: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $248,%r15d + jae L$_16_blocks_overflow_786 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + jmp L$_16_blocks_ok_786 + +L$_16_blocks_overflow_786: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 +L$_16_blocks_ok_786: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $3,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti32x4 $3,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm19,%zmm19{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vextracti32x4 $3,%zmm19,%xmm7 + subq $16 * (8 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_787 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_787 +L$_small_initial_partial_block_787: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_787: + + orq %r8,%r8 + je L$_after_reduction_787 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_787: + jmp L$_last_blocks_done_771 +L$_last_num_blocks_is_9_771: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $247,%r15d + jae L$_16_blocks_overflow_788 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %xmm27,%xmm3,%xmm4 + jmp L$_16_blocks_ok_788 + +L$_16_blocks_overflow_788: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %xmm29,%xmm4,%xmm4 +L$_16_blocks_ok_788: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $0,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%xmm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %xmm30,%xmm4,%xmm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %xmm20,%xmm4,%xmm4 + vextracti32x4 $0,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %xmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm20,%zmm20{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %xmm29,%xmm20,%xmm20 + vextracti32x4 $0,%zmm20,%xmm7 + subq $16 * (9 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_789 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm20,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm20,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm20,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm20,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_789 +L$_small_initial_partial_block_789: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_789: + + orq %r8,%r8 + je L$_after_reduction_789 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_789: + jmp L$_last_blocks_done_771 +L$_last_num_blocks_is_10_771: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $246,%r15d + jae L$_16_blocks_overflow_790 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %ymm27,%ymm3,%ymm4 + jmp L$_16_blocks_ok_790 + +L$_16_blocks_overflow_790: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %ymm29,%ymm4,%ymm4 +L$_16_blocks_ok_790: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $1,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%ymm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %ymm30,%ymm4,%ymm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %ymm20,%ymm4,%ymm4 + vextracti32x4 $1,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %ymm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm20,%zmm20{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %ymm29,%ymm20,%ymm20 + vextracti32x4 $1,%zmm20,%xmm7 + subq $16 * (10 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_791 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm20,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm20,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm20,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm20,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_791 +L$_small_initial_partial_block_791: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm20,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm20,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm20,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm20,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_791: + + orq %r8,%r8 + je L$_after_reduction_791 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_791: + jmp L$_last_blocks_done_771 +L$_last_num_blocks_is_11_771: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $245,%r15d + jae L$_16_blocks_overflow_792 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + jmp L$_16_blocks_ok_792 + +L$_16_blocks_overflow_792: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 +L$_16_blocks_ok_792: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $2,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vextracti32x4 $2,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm20,%zmm20{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %zmm29,%zmm20,%zmm20 + vextracti32x4 $2,%zmm20,%xmm7 + subq $16 * (11 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_793 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_793 +L$_small_initial_partial_block_793: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm20,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm20,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm20,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm20,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_793: + + orq %r8,%r8 + je L$_after_reduction_793 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_793: + jmp L$_last_blocks_done_771 +L$_last_num_blocks_is_12_771: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $244,%r15d + jae L$_16_blocks_overflow_794 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + jmp L$_16_blocks_ok_794 + +L$_16_blocks_overflow_794: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 +L$_16_blocks_ok_794: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $3,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vextracti32x4 $3,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm20,%zmm20{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %zmm29,%zmm20,%zmm20 + vextracti32x4 $3,%zmm20,%xmm7 + subq $16 * (12 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_795 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 160(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_795 +L$_small_initial_partial_block_795: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_795: + + orq %r8,%r8 + je L$_after_reduction_795 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_795: + jmp L$_last_blocks_done_771 +L$_last_num_blocks_is_13_771: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $243,%r15d + jae L$_16_blocks_overflow_796 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %xmm27,%xmm4,%xmm5 + jmp L$_16_blocks_ok_796 + +L$_16_blocks_overflow_796: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %xmm29,%xmm5,%xmm5 +L$_16_blocks_ok_796: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $0,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%xmm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %xmm30,%xmm5,%xmm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %xmm21,%xmm5,%xmm5 + vextracti32x4 $0,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %xmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm21,%zmm21{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %zmm29,%zmm20,%zmm20 + vpshufb %xmm29,%xmm21,%xmm21 + vextracti32x4 $0,%zmm21,%xmm7 + subq $16 * (13 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_797 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 144(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm21,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm21,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm21,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm21,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_797 +L$_small_initial_partial_block_797: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 160(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_797: + + orq %r8,%r8 + je L$_after_reduction_797 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_797: + jmp L$_last_blocks_done_771 +L$_last_num_blocks_is_14_771: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $242,%r15d + jae L$_16_blocks_overflow_798 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %ymm27,%ymm4,%ymm5 + jmp L$_16_blocks_ok_798 + +L$_16_blocks_overflow_798: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %ymm29,%ymm5,%ymm5 +L$_16_blocks_ok_798: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $1,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%ymm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %ymm30,%ymm5,%ymm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %ymm21,%ymm5,%ymm5 + vextracti32x4 $1,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %ymm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm21,%zmm21{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %zmm29,%zmm20,%zmm20 + vpshufb %ymm29,%ymm21,%ymm21 + vextracti32x4 $1,%zmm21,%xmm7 + subq $16 * (14 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_799 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 128(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm21,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm21,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm21,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm21,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_799 +L$_small_initial_partial_block_799: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 144(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm21,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm21,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm21,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm21,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_799: + + orq %r8,%r8 + je L$_after_reduction_799 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_799: + jmp L$_last_blocks_done_771 +L$_last_num_blocks_is_15_771: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $241,%r15d + jae L$_16_blocks_overflow_800 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp L$_16_blocks_ok_800 + +L$_16_blocks_overflow_800: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +L$_16_blocks_ok_800: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $2,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%zmm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + vextracti32x4 $2,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %zmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm21,%zmm21{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %zmm29,%zmm20,%zmm20 + vpshufb %zmm29,%zmm21,%zmm21 + vextracti32x4 $2,%zmm21,%xmm7 + subq $16 * (15 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_801 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 112(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm21,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm21,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm21,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm21,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_801 +L$_small_initial_partial_block_801: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 128(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm21,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm21,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm21,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm21,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_801: + + orq %r8,%r8 + je L$_after_reduction_801 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_801: + jmp L$_last_blocks_done_771 +L$_last_num_blocks_is_16_771: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $240,%r15d + jae L$_16_blocks_overflow_802 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp L$_16_blocks_ok_802 + +L$_16_blocks_overflow_802: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +L$_16_blocks_ok_802: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $3,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%zmm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + vextracti32x4 $3,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %zmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm21,%zmm21{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %zmm29,%zmm20,%zmm20 + vpshufb %zmm29,%zmm21,%zmm21 + vextracti32x4 $3,%zmm21,%xmm7 + subq $16 * (16 - 1),%r8 +L$_small_initial_partial_block_803: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 112(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm21,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm21,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm21,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm21,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_803: + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_803: + jmp L$_last_blocks_done_771 +L$_last_num_blocks_is_0_771: + vmovdqa64 768(%rsp),%zmm13 + vpxorq %zmm14,%zmm13,%zmm13 + vmovdqu64 0(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 832(%rsp),%zmm13 + vmovdqu64 64(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + vpxorq %zmm10,%zmm4,%zmm26 + vpxorq %zmm6,%zmm0,%zmm24 + vpxorq %zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + vmovdqa64 896(%rsp),%zmm13 + vmovdqu64 128(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 960(%rsp),%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + + vpternlogq $0x96,%zmm10,%zmm4,%zmm26 + vpternlogq $0x96,%zmm6,%zmm0,%zmm24 + vpternlogq $0x96,%zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + + vpsrldq $8,%zmm26,%zmm0 + vpslldq $8,%zmm26,%zmm3 + vpxorq %zmm0,%zmm24,%zmm24 + vpxorq %zmm3,%zmm25,%zmm25 + vextracti64x4 $1,%zmm24,%ymm0 + vpxorq %ymm0,%ymm24,%ymm24 + vextracti32x4 $1,%ymm24,%xmm0 + vpxorq %xmm0,%xmm24,%xmm24 + vextracti64x4 $1,%zmm25,%ymm3 + vpxorq %ymm3,%ymm25,%ymm25 + vextracti32x4 $1,%ymm25,%xmm3 + vpxorq %xmm3,%xmm25,%xmm25 + vmovdqa64 POLY2(%rip),%xmm4 + + + vpclmulqdq $0x01,%xmm25,%xmm4,%xmm0 + vpslldq $8,%xmm0,%xmm0 + vpxorq %xmm0,%xmm25,%xmm0 + + + vpclmulqdq $0x00,%xmm0,%xmm4,%xmm3 + vpsrldq $4,%xmm3,%xmm3 + vpclmulqdq $0x10,%xmm0,%xmm4,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm24,%xmm3,%xmm14 + +L$_last_blocks_done_771: + vpshufb %xmm29,%xmm2,%xmm2 + jmp L$_ghash_done_659 + +L$_message_below_equal_16_blocks_659: + + + movl %r8d,%r12d + addl $15,%r12d + shrl $4,%r12d + cmpq $8,%r12 + je L$_small_initial_num_blocks_is_8_804 + jl L$_small_initial_num_blocks_is_7_1_804 + + + cmpq $12,%r12 + je L$_small_initial_num_blocks_is_12_804 + jl L$_small_initial_num_blocks_is_11_9_804 + + + cmpq $16,%r12 + je L$_small_initial_num_blocks_is_16_804 + cmpq $15,%r12 + je L$_small_initial_num_blocks_is_15_804 + cmpq $14,%r12 + je L$_small_initial_num_blocks_is_14_804 + jmp L$_small_initial_num_blocks_is_13_804 + +L$_small_initial_num_blocks_is_11_9_804: + + cmpq $11,%r12 + je L$_small_initial_num_blocks_is_11_804 + cmpq $10,%r12 + je L$_small_initial_num_blocks_is_10_804 + jmp L$_small_initial_num_blocks_is_9_804 + +L$_small_initial_num_blocks_is_7_1_804: + cmpq $4,%r12 + je L$_small_initial_num_blocks_is_4_804 + jl L$_small_initial_num_blocks_is_3_1_804 + + cmpq $7,%r12 + je L$_small_initial_num_blocks_is_7_804 + cmpq $6,%r12 + je L$_small_initial_num_blocks_is_6_804 + jmp L$_small_initial_num_blocks_is_5_804 + +L$_small_initial_num_blocks_is_3_1_804: + + cmpq $3,%r12 + je L$_small_initial_num_blocks_is_3_804 + cmpq $2,%r12 + je L$_small_initial_num_blocks_is_2_804 + + + + + +L$_small_initial_num_blocks_is_1_804: + vmovdqa64 SHUF_MASK(%rip),%xmm29 + vpaddd ONE(%rip),%xmm2,%xmm0 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $0,%zmm0,%xmm2 + vpshufb %xmm29,%xmm0,%xmm0 + vmovdqu8 0(%rcx,%r11,1),%xmm6{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %xmm15,%xmm0,%xmm0 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %xmm15,%xmm0,%xmm0 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %xmm15,%xmm0,%xmm0 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %xmm15,%xmm0,%xmm0 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %xmm15,%xmm0,%xmm0 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %xmm15,%xmm0,%xmm0 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %xmm15,%xmm0,%xmm0 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %xmm15,%xmm0,%xmm0 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %xmm15,%xmm0,%xmm0 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %xmm15,%xmm0,%xmm0 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenc %xmm15,%xmm0,%xmm0 + vbroadcastf64x2 176(%rdi),%zmm15 + vaesenc %xmm15,%xmm0,%xmm0 + vbroadcastf64x2 192(%rdi),%zmm15 + vaesenclast %xmm15,%xmm0,%xmm0 + vpxorq %xmm6,%xmm0,%xmm0 + vextracti32x4 $0,%zmm0,%xmm12 + movq %r9,%r10 + vmovdqu8 %xmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm0,%zmm0{%k1}{z} + vpshufb %xmm29,%xmm6,%xmm6 + vextracti32x4 $0,%zmm6,%xmm13 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_805 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 336(%rsi),%xmm20 + vpclmulqdq $0x01,%xmm20,%xmm6,%xmm4 + vpclmulqdq $0x10,%xmm20,%xmm6,%xmm5 + vpclmulqdq $0x11,%xmm20,%xmm6,%xmm0 + vpclmulqdq $0x00,%xmm20,%xmm6,%xmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_805 +L$_small_initial_partial_block_805: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + + + + + + + + + + + + vpxorq %xmm13,%xmm14,%xmm14 + + jmp L$_after_reduction_805 +L$_small_initial_compute_done_805: +L$_after_reduction_805: + jmp L$_small_initial_blocks_encrypted_804 +L$_small_initial_num_blocks_is_2_804: + vmovdqa64 SHUF_MASK(%rip),%ymm29 + vshufi64x2 $0,%ymm2,%ymm2,%ymm0 + vpaddd ddq_add_1234(%rip),%ymm0,%ymm0 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $1,%zmm0,%xmm2 + vpshufb %ymm29,%ymm0,%ymm0 + vmovdqu8 0(%rcx,%r11,1),%ymm6{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %ymm15,%ymm0,%ymm0 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %ymm15,%ymm0,%ymm0 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %ymm15,%ymm0,%ymm0 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %ymm15,%ymm0,%ymm0 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %ymm15,%ymm0,%ymm0 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %ymm15,%ymm0,%ymm0 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %ymm15,%ymm0,%ymm0 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %ymm15,%ymm0,%ymm0 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %ymm15,%ymm0,%ymm0 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %ymm15,%ymm0,%ymm0 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenc %ymm15,%ymm0,%ymm0 + vbroadcastf64x2 176(%rdi),%zmm15 + vaesenc %ymm15,%ymm0,%ymm0 + vbroadcastf64x2 192(%rdi),%zmm15 + vaesenclast %ymm15,%ymm0,%ymm0 + vpxorq %ymm6,%ymm0,%ymm0 + vextracti32x4 $1,%zmm0,%xmm12 + movq %r9,%r10 + vmovdqu8 %ymm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm0,%zmm0{%k1}{z} + vpshufb %ymm29,%ymm6,%ymm6 + vextracti32x4 $1,%zmm6,%xmm13 + subq $16 * (2 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_806 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 320(%rsi),%ymm20 + vpclmulqdq $0x01,%ymm20,%ymm6,%ymm4 + vpclmulqdq $0x10,%ymm20,%ymm6,%ymm5 + vpclmulqdq $0x11,%ymm20,%ymm6,%ymm0 + vpclmulqdq $0x00,%ymm20,%ymm6,%ymm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_806 +L$_small_initial_partial_block_806: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 336(%rsi),%xmm20 + vpclmulqdq $0x01,%xmm20,%xmm6,%xmm4 + vpclmulqdq $0x10,%xmm20,%xmm6,%xmm5 + vpclmulqdq $0x11,%xmm20,%xmm6,%xmm0 + vpclmulqdq $0x00,%xmm20,%xmm6,%xmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_806: + + orq %r8,%r8 + je L$_after_reduction_806 + vpxorq %xmm13,%xmm14,%xmm14 +L$_after_reduction_806: + jmp L$_small_initial_blocks_encrypted_804 +L$_small_initial_num_blocks_is_3_804: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $2,%zmm0,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vmovdqu8 0(%rcx,%r11,1),%zmm6{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 176(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 192(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vpxorq %zmm6,%zmm0,%zmm0 + vextracti32x4 $2,%zmm0,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm0,%zmm0{%k1}{z} + vpshufb %zmm29,%zmm6,%zmm6 + vextracti32x4 $2,%zmm6,%xmm13 + subq $16 * (3 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_807 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 304(%rsi),%ymm20 + vinserti64x2 $2,336(%rsi),%zmm20,%zmm20 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_807 +L$_small_initial_partial_block_807: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 320(%rsi),%ymm20 + vpclmulqdq $0x01,%ymm20,%ymm6,%ymm4 + vpclmulqdq $0x10,%ymm20,%ymm6,%ymm5 + vpclmulqdq $0x11,%ymm20,%ymm6,%ymm0 + vpclmulqdq $0x00,%ymm20,%ymm6,%ymm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_807: + + orq %r8,%r8 + je L$_after_reduction_807 + vpxorq %xmm13,%xmm14,%xmm14 +L$_after_reduction_807: + jmp L$_small_initial_blocks_encrypted_804 +L$_small_initial_num_blocks_is_4_804: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $3,%zmm0,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vmovdqu8 0(%rcx,%r11,1),%zmm6{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 176(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 192(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vpxorq %zmm6,%zmm0,%zmm0 + vextracti32x4 $3,%zmm0,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm0,%zmm0{%k1}{z} + vpshufb %zmm29,%zmm6,%zmm6 + vextracti32x4 $3,%zmm6,%xmm13 + subq $16 * (4 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_808 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 288(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm19 + + vpxorq %zmm19,%zmm17,%zmm17 + vpsrldq $8,%zmm17,%zmm4 + vpslldq $8,%zmm17,%zmm5 + vpxorq %zmm4,%zmm15,%zmm0 + vpxorq %zmm5,%zmm16,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_808 +L$_small_initial_partial_block_808: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 304(%rsi),%ymm20 + vinserti64x2 $2,336(%rsi),%zmm20,%zmm20 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_808: + + orq %r8,%r8 + je L$_after_reduction_808 + vpxorq %xmm13,%xmm14,%xmm14 +L$_after_reduction_808: + jmp L$_small_initial_blocks_encrypted_804 +L$_small_initial_num_blocks_is_5_804: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd ddq_add_5678(%rip),%zmm2,%zmm3 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + subq $64,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $0,%zmm3,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %xmm29,%xmm3,%xmm3 + vmovdqu8 0(%rcx,%r11,1),%zmm6 + vmovdqu8 64(%rcx,%r11,1),%xmm7{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %xmm15,%xmm3,%xmm3 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %xmm15,%xmm3,%xmm3 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %xmm15,%xmm3,%xmm3 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %xmm15,%xmm3,%xmm3 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %xmm15,%xmm3,%xmm3 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %xmm15,%xmm3,%xmm3 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %xmm15,%xmm3,%xmm3 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %xmm15,%xmm3,%xmm3 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %xmm15,%xmm3,%xmm3 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %xmm15,%xmm3,%xmm3 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %xmm15,%xmm3,%xmm3 + vbroadcastf64x2 176(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %xmm15,%xmm3,%xmm3 + vbroadcastf64x2 192(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vaesenclast %xmm15,%xmm3,%xmm3 + vpxorq %zmm6,%zmm0,%zmm0 + vpxorq %xmm7,%xmm3,%xmm3 + vextracti32x4 $0,%zmm3,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %xmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm3,%zmm3{%k1}{z} + vpshufb %zmm29,%zmm6,%zmm6 + vpshufb %xmm29,%xmm7,%xmm7 + vextracti32x4 $0,%zmm7,%xmm13 + subq $16 * (5 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_809 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 272(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm19 + vmovdqu64 336(%rsi),%xmm20 + vpclmulqdq $0x01,%xmm20,%xmm7,%xmm4 + vpclmulqdq $0x10,%xmm20,%xmm7,%xmm5 + vpclmulqdq $0x11,%xmm20,%xmm7,%xmm0 + vpclmulqdq $0x00,%xmm20,%xmm7,%xmm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_809 +L$_small_initial_partial_block_809: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 288(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm19 + + vpxorq %zmm19,%zmm17,%zmm17 + vpsrldq $8,%zmm17,%zmm4 + vpslldq $8,%zmm17,%zmm5 + vpxorq %zmm4,%zmm15,%zmm0 + vpxorq %zmm5,%zmm16,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_809: + + orq %r8,%r8 + je L$_after_reduction_809 + vpxorq %xmm13,%xmm14,%xmm14 +L$_after_reduction_809: + jmp L$_small_initial_blocks_encrypted_804 +L$_small_initial_num_blocks_is_6_804: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd ddq_add_5678(%rip),%zmm2,%zmm3 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + subq $64,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $1,%zmm3,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %ymm29,%ymm3,%ymm3 + vmovdqu8 0(%rcx,%r11,1),%zmm6 + vmovdqu8 64(%rcx,%r11,1),%ymm7{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %ymm15,%ymm3,%ymm3 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %ymm15,%ymm3,%ymm3 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %ymm15,%ymm3,%ymm3 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %ymm15,%ymm3,%ymm3 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %ymm15,%ymm3,%ymm3 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %ymm15,%ymm3,%ymm3 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %ymm15,%ymm3,%ymm3 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %ymm15,%ymm3,%ymm3 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %ymm15,%ymm3,%ymm3 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %ymm15,%ymm3,%ymm3 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %ymm15,%ymm3,%ymm3 + vbroadcastf64x2 176(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %ymm15,%ymm3,%ymm3 + vbroadcastf64x2 192(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vaesenclast %ymm15,%ymm3,%ymm3 + vpxorq %zmm6,%zmm0,%zmm0 + vpxorq %ymm7,%ymm3,%ymm3 + vextracti32x4 $1,%zmm3,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %ymm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm3,%zmm3{%k1}{z} + vpshufb %zmm29,%zmm6,%zmm6 + vpshufb %ymm29,%ymm7,%ymm7 + vextracti32x4 $1,%zmm7,%xmm13 + subq $16 * (6 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_810 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 256(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm19 + vmovdqu64 320(%rsi),%ymm20 + vpclmulqdq $0x01,%ymm20,%ymm7,%ymm4 + vpclmulqdq $0x10,%ymm20,%ymm7,%ymm5 + vpclmulqdq $0x11,%ymm20,%ymm7,%ymm0 + vpclmulqdq $0x00,%ymm20,%ymm7,%ymm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_810 +L$_small_initial_partial_block_810: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 272(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm19 + vmovdqu64 336(%rsi),%xmm20 + vpclmulqdq $0x01,%xmm20,%xmm7,%xmm4 + vpclmulqdq $0x10,%xmm20,%xmm7,%xmm5 + vpclmulqdq $0x11,%xmm20,%xmm7,%xmm0 + vpclmulqdq $0x00,%xmm20,%xmm7,%xmm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_810: + + orq %r8,%r8 + je L$_after_reduction_810 + vpxorq %xmm13,%xmm14,%xmm14 +L$_after_reduction_810: + jmp L$_small_initial_blocks_encrypted_804 +L$_small_initial_num_blocks_is_7_804: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd ddq_add_5678(%rip),%zmm2,%zmm3 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + subq $64,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $2,%zmm3,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vmovdqu8 0(%rcx,%r11,1),%zmm6 + vmovdqu8 64(%rcx,%r11,1),%zmm7{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 176(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 192(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vaesenclast %zmm15,%zmm3,%zmm3 + vpxorq %zmm6,%zmm0,%zmm0 + vpxorq %zmm7,%zmm3,%zmm3 + vextracti32x4 $2,%zmm3,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm3,%zmm3{%k1}{z} + vpshufb %zmm29,%zmm6,%zmm6 + vpshufb %zmm29,%zmm7,%zmm7 + vextracti32x4 $2,%zmm7,%xmm13 + subq $16 * (7 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_811 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 240(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm19 + vmovdqu64 304(%rsi),%ymm20 + vinserti64x2 $2,336(%rsi),%zmm20,%zmm20 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm5 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_811 +L$_small_initial_partial_block_811: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 256(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm19 + vmovdqu64 320(%rsi),%ymm20 + vpclmulqdq $0x01,%ymm20,%ymm7,%ymm4 + vpclmulqdq $0x10,%ymm20,%ymm7,%ymm5 + vpclmulqdq $0x11,%ymm20,%ymm7,%ymm0 + vpclmulqdq $0x00,%ymm20,%ymm7,%ymm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_811: + + orq %r8,%r8 + je L$_after_reduction_811 + vpxorq %xmm13,%xmm14,%xmm14 +L$_after_reduction_811: + jmp L$_small_initial_blocks_encrypted_804 +L$_small_initial_num_blocks_is_8_804: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd ddq_add_5678(%rip),%zmm2,%zmm3 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + subq $64,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $3,%zmm3,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vmovdqu8 0(%rcx,%r11,1),%zmm6 + vmovdqu8 64(%rcx,%r11,1),%zmm7{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 176(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 192(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vaesenclast %zmm15,%zmm3,%zmm3 + vpxorq %zmm6,%zmm0,%zmm0 + vpxorq %zmm7,%zmm3,%zmm3 + vextracti32x4 $3,%zmm3,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm3,%zmm3{%k1}{z} + vpshufb %zmm29,%zmm6,%zmm6 + vpshufb %zmm29,%zmm7,%zmm7 + vextracti32x4 $3,%zmm7,%xmm13 + subq $16 * (8 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_812 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 224(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 288(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vpxorq %zmm15,%zmm0,%zmm15 + vpxorq %zmm16,%zmm3,%zmm16 + vpxorq %zmm17,%zmm4,%zmm17 + vpxorq %zmm19,%zmm5,%zmm19 + + vpxorq %zmm19,%zmm17,%zmm17 + vpsrldq $8,%zmm17,%zmm4 + vpslldq $8,%zmm17,%zmm5 + vpxorq %zmm4,%zmm15,%zmm0 + vpxorq %zmm5,%zmm16,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_812 +L$_small_initial_partial_block_812: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 240(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm19 + vmovdqu64 304(%rsi),%ymm20 + vinserti64x2 $2,336(%rsi),%zmm20,%zmm20 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm5 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_812: + + orq %r8,%r8 + je L$_after_reduction_812 + vpxorq %xmm13,%xmm14,%xmm14 +L$_after_reduction_812: + jmp L$_small_initial_blocks_encrypted_804 +L$_small_initial_num_blocks_is_9_804: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd ddq_add_5678(%rip),%zmm2,%zmm3 + vpaddd ddq_add_8888(%rip),%zmm0,%zmm4 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + subq $128,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $0,%zmm4,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %xmm29,%xmm4,%xmm4 + vmovdqu8 0(%rcx,%r11,1),%zmm6 + vmovdqu8 64(%rcx,%r11,1),%zmm7 + vmovdqu8 128(%rcx,%r11,1),%xmm10{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm15,%zmm3,%zmm3 + vpxorq %xmm15,%xmm4,%xmm4 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %xmm15,%xmm4,%xmm4 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %xmm15,%xmm4,%xmm4 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %xmm15,%xmm4,%xmm4 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %xmm15,%xmm4,%xmm4 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %xmm15,%xmm4,%xmm4 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %xmm15,%xmm4,%xmm4 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %xmm15,%xmm4,%xmm4 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %xmm15,%xmm4,%xmm4 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %xmm15,%xmm4,%xmm4 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %xmm15,%xmm4,%xmm4 + vbroadcastf64x2 176(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %xmm15,%xmm4,%xmm4 + vbroadcastf64x2 192(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vaesenclast %zmm15,%zmm3,%zmm3 + vaesenclast %xmm15,%xmm4,%xmm4 + vpxorq %zmm6,%zmm0,%zmm0 + vpxorq %zmm7,%zmm3,%zmm3 + vpxorq %xmm10,%xmm4,%xmm4 + vextracti32x4 $0,%zmm4,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %xmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm4,%zmm4{%k1}{z} + vpshufb %zmm29,%zmm6,%zmm6 + vpshufb %zmm29,%zmm7,%zmm7 + vpshufb %xmm29,%xmm10,%xmm10 + vextracti32x4 $0,%zmm10,%xmm13 + subq $16 * (9 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_813 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 208(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 272(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vpxorq %zmm15,%zmm0,%zmm15 + vpxorq %zmm16,%zmm3,%zmm16 + vpxorq %zmm17,%zmm4,%zmm17 + vpxorq %zmm19,%zmm5,%zmm19 + vmovdqu64 336(%rsi),%xmm20 + vpclmulqdq $0x01,%xmm20,%xmm10,%xmm4 + vpclmulqdq $0x10,%xmm20,%xmm10,%xmm5 + vpclmulqdq $0x11,%xmm20,%xmm10,%xmm0 + vpclmulqdq $0x00,%xmm20,%xmm10,%xmm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_813 +L$_small_initial_partial_block_813: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 224(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 288(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vpxorq %zmm15,%zmm0,%zmm15 + vpxorq %zmm16,%zmm3,%zmm16 + vpxorq %zmm17,%zmm4,%zmm17 + vpxorq %zmm19,%zmm5,%zmm19 + + vpxorq %zmm19,%zmm17,%zmm17 + vpsrldq $8,%zmm17,%zmm4 + vpslldq $8,%zmm17,%zmm5 + vpxorq %zmm4,%zmm15,%zmm0 + vpxorq %zmm5,%zmm16,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_813: + + orq %r8,%r8 + je L$_after_reduction_813 + vpxorq %xmm13,%xmm14,%xmm14 +L$_after_reduction_813: + jmp L$_small_initial_blocks_encrypted_804 +L$_small_initial_num_blocks_is_10_804: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd ddq_add_5678(%rip),%zmm2,%zmm3 + vpaddd ddq_add_8888(%rip),%zmm0,%zmm4 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + subq $128,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $1,%zmm4,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %ymm29,%ymm4,%ymm4 + vmovdqu8 0(%rcx,%r11,1),%zmm6 + vmovdqu8 64(%rcx,%r11,1),%zmm7 + vmovdqu8 128(%rcx,%r11,1),%ymm10{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm15,%zmm3,%zmm3 + vpxorq %ymm15,%ymm4,%ymm4 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %ymm15,%ymm4,%ymm4 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %ymm15,%ymm4,%ymm4 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %ymm15,%ymm4,%ymm4 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %ymm15,%ymm4,%ymm4 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %ymm15,%ymm4,%ymm4 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %ymm15,%ymm4,%ymm4 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %ymm15,%ymm4,%ymm4 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %ymm15,%ymm4,%ymm4 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %ymm15,%ymm4,%ymm4 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %ymm15,%ymm4,%ymm4 + vbroadcastf64x2 176(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %ymm15,%ymm4,%ymm4 + vbroadcastf64x2 192(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vaesenclast %zmm15,%zmm3,%zmm3 + vaesenclast %ymm15,%ymm4,%ymm4 + vpxorq %zmm6,%zmm0,%zmm0 + vpxorq %zmm7,%zmm3,%zmm3 + vpxorq %ymm10,%ymm4,%ymm4 + vextracti32x4 $1,%zmm4,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %ymm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm4,%zmm4{%k1}{z} + vpshufb %zmm29,%zmm6,%zmm6 + vpshufb %zmm29,%zmm7,%zmm7 + vpshufb %ymm29,%ymm10,%ymm10 + vextracti32x4 $1,%zmm10,%xmm13 + subq $16 * (10 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_814 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 192(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 256(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vpxorq %zmm15,%zmm0,%zmm15 + vpxorq %zmm16,%zmm3,%zmm16 + vpxorq %zmm17,%zmm4,%zmm17 + vpxorq %zmm19,%zmm5,%zmm19 + vmovdqu64 320(%rsi),%ymm20 + vpclmulqdq $0x01,%ymm20,%ymm10,%ymm4 + vpclmulqdq $0x10,%ymm20,%ymm10,%ymm5 + vpclmulqdq $0x11,%ymm20,%ymm10,%ymm0 + vpclmulqdq $0x00,%ymm20,%ymm10,%ymm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_814 +L$_small_initial_partial_block_814: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 208(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 272(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vpxorq %zmm15,%zmm0,%zmm15 + vpxorq %zmm16,%zmm3,%zmm16 + vpxorq %zmm17,%zmm4,%zmm17 + vpxorq %zmm19,%zmm5,%zmm19 + vmovdqu64 336(%rsi),%xmm20 + vpclmulqdq $0x01,%xmm20,%xmm10,%xmm4 + vpclmulqdq $0x10,%xmm20,%xmm10,%xmm5 + vpclmulqdq $0x11,%xmm20,%xmm10,%xmm0 + vpclmulqdq $0x00,%xmm20,%xmm10,%xmm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_814: + + orq %r8,%r8 + je L$_after_reduction_814 + vpxorq %xmm13,%xmm14,%xmm14 +L$_after_reduction_814: + jmp L$_small_initial_blocks_encrypted_804 +L$_small_initial_num_blocks_is_11_804: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd ddq_add_5678(%rip),%zmm2,%zmm3 + vpaddd ddq_add_8888(%rip),%zmm0,%zmm4 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + subq $128,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $2,%zmm4,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vmovdqu8 0(%rcx,%r11,1),%zmm6 + vmovdqu8 64(%rcx,%r11,1),%zmm7 + vmovdqu8 128(%rcx,%r11,1),%zmm10{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm15,%zmm3,%zmm3 + vpxorq %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 176(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 192(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vaesenclast %zmm15,%zmm3,%zmm3 + vaesenclast %zmm15,%zmm4,%zmm4 + vpxorq %zmm6,%zmm0,%zmm0 + vpxorq %zmm7,%zmm3,%zmm3 + vpxorq %zmm10,%zmm4,%zmm4 + vextracti32x4 $2,%zmm4,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm4,%zmm4{%k1}{z} + vpshufb %zmm29,%zmm6,%zmm6 + vpshufb %zmm29,%zmm7,%zmm7 + vpshufb %zmm29,%zmm10,%zmm10 + vextracti32x4 $2,%zmm10,%xmm13 + subq $16 * (11 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_815 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 176(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 240(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vpxorq %zmm15,%zmm0,%zmm15 + vpxorq %zmm16,%zmm3,%zmm16 + vpxorq %zmm17,%zmm4,%zmm17 + vpxorq %zmm19,%zmm5,%zmm19 + vmovdqu64 304(%rsi),%ymm20 + vinserti64x2 $2,336(%rsi),%zmm20,%zmm20 + vpclmulqdq $0x01,%zmm20,%zmm10,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm10,%zmm5 + vpclmulqdq $0x11,%zmm20,%zmm10,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm10,%zmm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_815 +L$_small_initial_partial_block_815: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 192(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 256(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vpxorq %zmm15,%zmm0,%zmm15 + vpxorq %zmm16,%zmm3,%zmm16 + vpxorq %zmm17,%zmm4,%zmm17 + vpxorq %zmm19,%zmm5,%zmm19 + vmovdqu64 320(%rsi),%ymm20 + vpclmulqdq $0x01,%ymm20,%ymm10,%ymm4 + vpclmulqdq $0x10,%ymm20,%ymm10,%ymm5 + vpclmulqdq $0x11,%ymm20,%ymm10,%ymm0 + vpclmulqdq $0x00,%ymm20,%ymm10,%ymm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_815: + + orq %r8,%r8 + je L$_after_reduction_815 + vpxorq %xmm13,%xmm14,%xmm14 +L$_after_reduction_815: + jmp L$_small_initial_blocks_encrypted_804 +L$_small_initial_num_blocks_is_12_804: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd ddq_add_5678(%rip),%zmm2,%zmm3 + vpaddd ddq_add_8888(%rip),%zmm0,%zmm4 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + subq $128,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $3,%zmm4,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vmovdqu8 0(%rcx,%r11,1),%zmm6 + vmovdqu8 64(%rcx,%r11,1),%zmm7 + vmovdqu8 128(%rcx,%r11,1),%zmm10{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm15,%zmm3,%zmm3 + vpxorq %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 176(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 192(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vaesenclast %zmm15,%zmm3,%zmm3 + vaesenclast %zmm15,%zmm4,%zmm4 + vpxorq %zmm6,%zmm0,%zmm0 + vpxorq %zmm7,%zmm3,%zmm3 + vpxorq %zmm10,%zmm4,%zmm4 + vextracti32x4 $3,%zmm4,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm4,%zmm4{%k1}{z} + vpshufb %zmm29,%zmm6,%zmm6 + vpshufb %zmm29,%zmm7,%zmm7 + vpshufb %zmm29,%zmm10,%zmm10 + vextracti32x4 $3,%zmm10,%xmm13 + subq $16 * (12 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_816 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 160(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 224(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vmovdqu64 288(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x00,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm0,%zmm6,%zmm15 + vpternlogq $0x96,%zmm3,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x10,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm4,%zmm6,%zmm17 + vpternlogq $0x96,%zmm5,%zmm7,%zmm19 + + vpxorq %zmm19,%zmm17,%zmm17 + vpsrldq $8,%zmm17,%zmm4 + vpslldq $8,%zmm17,%zmm5 + vpxorq %zmm4,%zmm15,%zmm0 + vpxorq %zmm5,%zmm16,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_816 +L$_small_initial_partial_block_816: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 176(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 240(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vpxorq %zmm15,%zmm0,%zmm15 + vpxorq %zmm16,%zmm3,%zmm16 + vpxorq %zmm17,%zmm4,%zmm17 + vpxorq %zmm19,%zmm5,%zmm19 + vmovdqu64 304(%rsi),%ymm20 + vinserti64x2 $2,336(%rsi),%zmm20,%zmm20 + vpclmulqdq $0x01,%zmm20,%zmm10,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm10,%zmm5 + vpclmulqdq $0x11,%zmm20,%zmm10,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm10,%zmm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_816: + + orq %r8,%r8 + je L$_after_reduction_816 + vpxorq %xmm13,%xmm14,%xmm14 +L$_after_reduction_816: + jmp L$_small_initial_blocks_encrypted_804 +L$_small_initial_num_blocks_is_13_804: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd ddq_add_5678(%rip),%zmm2,%zmm3 + vpaddd ddq_add_8888(%rip),%zmm0,%zmm4 + vpaddd ddq_add_8888(%rip),%zmm3,%zmm5 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + subq $192,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $0,%zmm5,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %xmm29,%xmm5,%xmm5 + vmovdqu8 0(%rcx,%r11,1),%zmm6 + vmovdqu8 64(%rcx,%r11,1),%zmm7 + vmovdqu8 128(%rcx,%r11,1),%zmm10 + vmovdqu8 192(%rcx,%r11,1),%xmm11{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm15,%zmm3,%zmm3 + vpxorq %zmm15,%zmm4,%zmm4 + vpxorq %xmm15,%xmm5,%xmm5 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %xmm15,%xmm5,%xmm5 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %xmm15,%xmm5,%xmm5 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %xmm15,%xmm5,%xmm5 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %xmm15,%xmm5,%xmm5 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %xmm15,%xmm5,%xmm5 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %xmm15,%xmm5,%xmm5 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %xmm15,%xmm5,%xmm5 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %xmm15,%xmm5,%xmm5 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %xmm15,%xmm5,%xmm5 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %xmm15,%xmm5,%xmm5 + vbroadcastf64x2 176(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %xmm15,%xmm5,%xmm5 + vbroadcastf64x2 192(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vaesenclast %zmm15,%zmm3,%zmm3 + vaesenclast %zmm15,%zmm4,%zmm4 + vaesenclast %xmm15,%xmm5,%xmm5 + vpxorq %zmm6,%zmm0,%zmm0 + vpxorq %zmm7,%zmm3,%zmm3 + vpxorq %zmm10,%zmm4,%zmm4 + vpxorq %xmm11,%xmm5,%xmm5 + vextracti32x4 $0,%zmm5,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %xmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm5,%zmm5{%k1}{z} + vpshufb %zmm29,%zmm6,%zmm6 + vpshufb %zmm29,%zmm7,%zmm7 + vpshufb %zmm29,%zmm10,%zmm10 + vpshufb %xmm29,%xmm11,%xmm11 + vextracti32x4 $0,%zmm11,%xmm13 + subq $16 * (13 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_817 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 144(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 208(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vmovdqu64 272(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x00,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm0,%zmm6,%zmm15 + vpternlogq $0x96,%zmm3,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x10,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm4,%zmm6,%zmm17 + vpternlogq $0x96,%zmm5,%zmm7,%zmm19 + vmovdqu64 336(%rsi),%xmm20 + vpclmulqdq $0x01,%xmm20,%xmm11,%xmm4 + vpclmulqdq $0x10,%xmm20,%xmm11,%xmm5 + vpclmulqdq $0x11,%xmm20,%xmm11,%xmm0 + vpclmulqdq $0x00,%xmm20,%xmm11,%xmm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_817 +L$_small_initial_partial_block_817: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 160(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 224(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vmovdqu64 288(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x00,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm0,%zmm6,%zmm15 + vpternlogq $0x96,%zmm3,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x10,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm4,%zmm6,%zmm17 + vpternlogq $0x96,%zmm5,%zmm7,%zmm19 + + vpxorq %zmm19,%zmm17,%zmm17 + vpsrldq $8,%zmm17,%zmm4 + vpslldq $8,%zmm17,%zmm5 + vpxorq %zmm4,%zmm15,%zmm0 + vpxorq %zmm5,%zmm16,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_817: + + orq %r8,%r8 + je L$_after_reduction_817 + vpxorq %xmm13,%xmm14,%xmm14 +L$_after_reduction_817: + jmp L$_small_initial_blocks_encrypted_804 +L$_small_initial_num_blocks_is_14_804: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd ddq_add_5678(%rip),%zmm2,%zmm3 + vpaddd ddq_add_8888(%rip),%zmm0,%zmm4 + vpaddd ddq_add_8888(%rip),%zmm3,%zmm5 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + subq $192,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $1,%zmm5,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %ymm29,%ymm5,%ymm5 + vmovdqu8 0(%rcx,%r11,1),%zmm6 + vmovdqu8 64(%rcx,%r11,1),%zmm7 + vmovdqu8 128(%rcx,%r11,1),%zmm10 + vmovdqu8 192(%rcx,%r11,1),%ymm11{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm15,%zmm3,%zmm3 + vpxorq %zmm15,%zmm4,%zmm4 + vpxorq %ymm15,%ymm5,%ymm5 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %ymm15,%ymm5,%ymm5 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %ymm15,%ymm5,%ymm5 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %ymm15,%ymm5,%ymm5 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %ymm15,%ymm5,%ymm5 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %ymm15,%ymm5,%ymm5 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %ymm15,%ymm5,%ymm5 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %ymm15,%ymm5,%ymm5 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %ymm15,%ymm5,%ymm5 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %ymm15,%ymm5,%ymm5 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %ymm15,%ymm5,%ymm5 + vbroadcastf64x2 176(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %ymm15,%ymm5,%ymm5 + vbroadcastf64x2 192(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vaesenclast %zmm15,%zmm3,%zmm3 + vaesenclast %zmm15,%zmm4,%zmm4 + vaesenclast %ymm15,%ymm5,%ymm5 + vpxorq %zmm6,%zmm0,%zmm0 + vpxorq %zmm7,%zmm3,%zmm3 + vpxorq %zmm10,%zmm4,%zmm4 + vpxorq %ymm11,%ymm5,%ymm5 + vextracti32x4 $1,%zmm5,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %ymm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm5,%zmm5{%k1}{z} + vpshufb %zmm29,%zmm6,%zmm6 + vpshufb %zmm29,%zmm7,%zmm7 + vpshufb %zmm29,%zmm10,%zmm10 + vpshufb %ymm29,%ymm11,%ymm11 + vextracti32x4 $1,%zmm11,%xmm13 + subq $16 * (14 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_818 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 128(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 192(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vmovdqu64 256(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x00,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm0,%zmm6,%zmm15 + vpternlogq $0x96,%zmm3,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x10,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm4,%zmm6,%zmm17 + vpternlogq $0x96,%zmm5,%zmm7,%zmm19 + vmovdqu64 320(%rsi),%ymm20 + vpclmulqdq $0x01,%ymm20,%ymm11,%ymm4 + vpclmulqdq $0x10,%ymm20,%ymm11,%ymm5 + vpclmulqdq $0x11,%ymm20,%ymm11,%ymm0 + vpclmulqdq $0x00,%ymm20,%ymm11,%ymm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_818 +L$_small_initial_partial_block_818: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 144(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 208(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vmovdqu64 272(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x00,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm0,%zmm6,%zmm15 + vpternlogq $0x96,%zmm3,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x10,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm4,%zmm6,%zmm17 + vpternlogq $0x96,%zmm5,%zmm7,%zmm19 + vmovdqu64 336(%rsi),%xmm20 + vpclmulqdq $0x01,%xmm20,%xmm11,%xmm4 + vpclmulqdq $0x10,%xmm20,%xmm11,%xmm5 + vpclmulqdq $0x11,%xmm20,%xmm11,%xmm0 + vpclmulqdq $0x00,%xmm20,%xmm11,%xmm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_818: + + orq %r8,%r8 + je L$_after_reduction_818 + vpxorq %xmm13,%xmm14,%xmm14 +L$_after_reduction_818: + jmp L$_small_initial_blocks_encrypted_804 +L$_small_initial_num_blocks_is_15_804: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd ddq_add_5678(%rip),%zmm2,%zmm3 + vpaddd ddq_add_8888(%rip),%zmm0,%zmm4 + vpaddd ddq_add_8888(%rip),%zmm3,%zmm5 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + subq $192,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $2,%zmm5,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 + vmovdqu8 0(%rcx,%r11,1),%zmm6 + vmovdqu8 64(%rcx,%r11,1),%zmm7 + vmovdqu8 128(%rcx,%r11,1),%zmm10 + vmovdqu8 192(%rcx,%r11,1),%zmm11{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm15,%zmm3,%zmm3 + vpxorq %zmm15,%zmm4,%zmm4 + vpxorq %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 176(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 192(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vaesenclast %zmm15,%zmm3,%zmm3 + vaesenclast %zmm15,%zmm4,%zmm4 + vaesenclast %zmm15,%zmm5,%zmm5 + vpxorq %zmm6,%zmm0,%zmm0 + vpxorq %zmm7,%zmm3,%zmm3 + vpxorq %zmm10,%zmm4,%zmm4 + vpxorq %zmm11,%zmm5,%zmm5 + vextracti32x4 $2,%zmm5,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %zmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm5,%zmm5{%k1}{z} + vpshufb %zmm29,%zmm6,%zmm6 + vpshufb %zmm29,%zmm7,%zmm7 + vpshufb %zmm29,%zmm10,%zmm10 + vpshufb %zmm29,%zmm11,%zmm11 + vextracti32x4 $2,%zmm11,%xmm13 + subq $16 * (15 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_819 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 112(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 176(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vmovdqu64 240(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x00,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm0,%zmm6,%zmm15 + vpternlogq $0x96,%zmm3,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x10,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm4,%zmm6,%zmm17 + vpternlogq $0x96,%zmm5,%zmm7,%zmm19 + vmovdqu64 304(%rsi),%ymm20 + vinserti64x2 $2,336(%rsi),%zmm20,%zmm20 + vpclmulqdq $0x01,%zmm20,%zmm11,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm11,%zmm5 + vpclmulqdq $0x11,%zmm20,%zmm11,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm11,%zmm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_819 +L$_small_initial_partial_block_819: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 128(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 192(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vmovdqu64 256(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x00,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm0,%zmm6,%zmm15 + vpternlogq $0x96,%zmm3,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x10,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm4,%zmm6,%zmm17 + vpternlogq $0x96,%zmm5,%zmm7,%zmm19 + vmovdqu64 320(%rsi),%ymm20 + vpclmulqdq $0x01,%ymm20,%ymm11,%ymm4 + vpclmulqdq $0x10,%ymm20,%ymm11,%ymm5 + vpclmulqdq $0x11,%ymm20,%ymm11,%ymm0 + vpclmulqdq $0x00,%ymm20,%ymm11,%ymm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_819: + + orq %r8,%r8 + je L$_after_reduction_819 + vpxorq %xmm13,%xmm14,%xmm14 +L$_after_reduction_819: + jmp L$_small_initial_blocks_encrypted_804 +L$_small_initial_num_blocks_is_16_804: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd ddq_add_5678(%rip),%zmm2,%zmm3 + vpaddd ddq_add_8888(%rip),%zmm0,%zmm4 + vpaddd ddq_add_8888(%rip),%zmm3,%zmm5 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + subq $192,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $3,%zmm5,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 + vmovdqu8 0(%rcx,%r11,1),%zmm6 + vmovdqu8 64(%rcx,%r11,1),%zmm7 + vmovdqu8 128(%rcx,%r11,1),%zmm10 + vmovdqu8 192(%rcx,%r11,1),%zmm11{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm15,%zmm3,%zmm3 + vpxorq %zmm15,%zmm4,%zmm4 + vpxorq %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 176(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 192(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vaesenclast %zmm15,%zmm3,%zmm3 + vaesenclast %zmm15,%zmm4,%zmm4 + vaesenclast %zmm15,%zmm5,%zmm5 + vpxorq %zmm6,%zmm0,%zmm0 + vpxorq %zmm7,%zmm3,%zmm3 + vpxorq %zmm10,%zmm4,%zmm4 + vpxorq %zmm11,%zmm5,%zmm5 + vextracti32x4 $3,%zmm5,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %zmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm5,%zmm5{%k1}{z} + vpshufb %zmm29,%zmm6,%zmm6 + vpshufb %zmm29,%zmm7,%zmm7 + vpshufb %zmm29,%zmm10,%zmm10 + vpshufb %zmm29,%zmm11,%zmm11 + vextracti32x4 $3,%zmm11,%xmm13 + subq $16 * (16 - 1),%r8 +L$_small_initial_partial_block_820: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 112(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 176(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vmovdqu64 240(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x00,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm0,%zmm6,%zmm15 + vpternlogq $0x96,%zmm3,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x10,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm4,%zmm6,%zmm17 + vpternlogq $0x96,%zmm5,%zmm7,%zmm19 + vmovdqu64 304(%rsi),%ymm20 + vinserti64x2 $2,336(%rsi),%zmm20,%zmm20 + vpclmulqdq $0x01,%zmm20,%zmm11,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm11,%zmm5 + vpclmulqdq $0x11,%zmm20,%zmm11,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm11,%zmm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_820: + vpxorq %xmm13,%xmm14,%xmm14 +L$_after_reduction_820: +L$_small_initial_blocks_encrypted_804: +L$_ghash_done_659: + vmovdqu64 %xmm2,0(%rsi) + vmovdqu64 %xmm14,64(%rsi) +L$_enc_dec_done_659: + jmp L$exit_gcm_decrypt +.p2align 5 +L$aes_gcm_decrypt_256_avx512: + orq %r8,%r8 + je L$_enc_dec_done_821 + xorq %r14,%r14 + vmovdqu64 64(%rsi),%xmm14 + + movq (%rdx),%r11 + orq %r11,%r11 + je L$_partial_block_done_822 + movl $16,%r10d + leaq byte_len_to_mask_table(%rip),%r12 + cmpq %r10,%r8 + cmovcq %r8,%r10 + kmovw (%r12,%r10,2),%k1 + vmovdqu8 (%rcx),%xmm0{%k1}{z} + + vmovdqu64 16(%rsi),%xmm3 + vmovdqu64 336(%rsi),%xmm4 + + + + leaq SHIFT_MASK(%rip),%r12 + addq %r11,%r12 + vmovdqu64 (%r12),%xmm5 + vpshufb %xmm5,%xmm3,%xmm3 + + vmovdqa64 %xmm0,%xmm6 + vpxorq %xmm0,%xmm3,%xmm3 + + + leaq (%r8,%r11,1),%r13 + subq $16,%r13 + jge L$_no_extra_mask_822 + subq %r13,%r12 +L$_no_extra_mask_822: + + + + vmovdqu64 16(%r12),%xmm0 + vpand %xmm0,%xmm3,%xmm3 + vpand %xmm0,%xmm6,%xmm6 + vpshufb SHUF_MASK(%rip),%xmm6,%xmm6 + vpshufb %xmm5,%xmm6,%xmm6 + vpxorq %xmm6,%xmm14,%xmm14 + cmpq $0,%r13 + jl L$_partial_incomplete_822 + + vpclmulqdq $0x11,%xmm4,%xmm14,%xmm7 + vpclmulqdq $0x00,%xmm4,%xmm14,%xmm10 + vpclmulqdq $0x01,%xmm4,%xmm14,%xmm11 + vpclmulqdq $0x10,%xmm4,%xmm14,%xmm14 + vpxorq %xmm11,%xmm14,%xmm14 + + vpsrldq $8,%xmm14,%xmm11 + vpslldq $8,%xmm14,%xmm14 + vpxorq %xmm11,%xmm7,%xmm7 + vpxorq %xmm10,%xmm14,%xmm14 + + + + vmovdqu64 POLY2(%rip),%xmm11 + + vpclmulqdq $0x01,%xmm14,%xmm11,%xmm10 + vpslldq $8,%xmm10,%xmm10 + vpxorq %xmm10,%xmm14,%xmm14 + + + + vpclmulqdq $0x00,%xmm14,%xmm11,%xmm10 + vpsrldq $4,%xmm10,%xmm10 + vpclmulqdq $0x10,%xmm14,%xmm11,%xmm14 + vpslldq $4,%xmm14,%xmm14 + + vpternlogq $0x96,%xmm10,%xmm7,%xmm14 + + movq $0,(%rdx) + + movq %r11,%r12 + movq $16,%r11 + subq %r12,%r11 + jmp L$_enc_dec_done_822 + +L$_partial_incomplete_822: + addq %r8,(%rdx) + movq %r8,%r11 + +L$_enc_dec_done_822: + + + leaq byte_len_to_mask_table(%rip),%r12 + kmovw (%r12,%r11,2),%k1 + vmovdqu64 %xmm14,64(%rsi) + movq %r9,%r12 + vmovdqu8 %xmm3,(%r12){%k1} +L$_partial_block_done_822: + vmovdqu64 0(%rsi),%xmm2 + subq %r11,%r8 + je L$_enc_dec_done_821 + cmpq $256,%r8 + jbe L$_message_below_equal_16_blocks_821 + + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vmovdqa64 ddq_addbe_4444(%rip),%zmm27 + vmovdqa64 ddq_addbe_1234(%rip),%zmm28 + + + + + + + vmovd %xmm2,%r15d + andl $255,%r15d + + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpshufb %zmm29,%zmm2,%zmm2 + + + + cmpb $240,%r15b + jae L$_next_16_overflow_823 + vpaddd %zmm28,%zmm2,%zmm7 + vpaddd %zmm27,%zmm7,%zmm10 + vpaddd %zmm27,%zmm10,%zmm11 + vpaddd %zmm27,%zmm11,%zmm12 + jmp L$_next_16_ok_823 +L$_next_16_overflow_823: + vpshufb %zmm29,%zmm2,%zmm2 + vmovdqa64 ddq_add_4444(%rip),%zmm12 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm7 + vpaddd %zmm12,%zmm7,%zmm10 + vpaddd %zmm12,%zmm10,%zmm11 + vpaddd %zmm12,%zmm11,%zmm12 + vpshufb %zmm29,%zmm7,%zmm7 + vpshufb %zmm29,%zmm10,%zmm10 + vpshufb %zmm29,%zmm11,%zmm11 + vpshufb %zmm29,%zmm12,%zmm12 +L$_next_16_ok_823: + vshufi64x2 $255,%zmm12,%zmm12,%zmm2 + addb $16,%r15b + + vmovdqu8 0(%rcx,%r11,1),%zmm0 + vmovdqu8 64(%rcx,%r11,1),%zmm3 + vmovdqu8 128(%rcx,%r11,1),%zmm4 + vmovdqu8 192(%rcx,%r11,1),%zmm5 + + + vbroadcastf64x2 0(%rdi),%zmm6 + vpxorq %zmm6,%zmm7,%zmm7 + vpxorq %zmm6,%zmm10,%zmm10 + vpxorq %zmm6,%zmm11,%zmm11 + vpxorq %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 16(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 32(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 48(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 64(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 80(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 96(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 112(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 128(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 144(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 160(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 176(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 192(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 208(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 224(%rdi),%zmm6 + vaesenclast %zmm6,%zmm7,%zmm7 + vaesenclast %zmm6,%zmm10,%zmm10 + vaesenclast %zmm6,%zmm11,%zmm11 + vaesenclast %zmm6,%zmm12,%zmm12 + + + vpxorq %zmm0,%zmm7,%zmm7 + vpxorq %zmm3,%zmm10,%zmm10 + vpxorq %zmm4,%zmm11,%zmm11 + vpxorq %zmm5,%zmm12,%zmm12 + + + movq %r9,%r10 + vmovdqu8 %zmm7,0(%r10,%r11,1) + vmovdqu8 %zmm10,64(%r10,%r11,1) + vmovdqu8 %zmm11,128(%r10,%r11,1) + vmovdqu8 %zmm12,192(%r10,%r11,1) + + vpshufb %zmm29,%zmm0,%zmm7 + vpshufb %zmm29,%zmm3,%zmm10 + vpshufb %zmm29,%zmm4,%zmm11 + vpshufb %zmm29,%zmm5,%zmm12 + vmovdqa64 %zmm7,768(%rsp) + vmovdqa64 %zmm10,832(%rsp) + vmovdqa64 %zmm11,896(%rsp) + vmovdqa64 %zmm12,960(%rsp) + testq %r14,%r14 + jnz L$_skip_hkeys_precomputation_824 + + vmovdqu64 288(%rsi),%zmm0 + vmovdqu64 %zmm0,704(%rsp) + + vmovdqu64 224(%rsi),%zmm3 + vmovdqu64 %zmm3,640(%rsp) + + + vshufi64x2 $0x00,%zmm3,%zmm3,%zmm3 + + vmovdqu64 160(%rsi),%zmm4 + vmovdqu64 %zmm4,576(%rsp) + + vmovdqu64 96(%rsi),%zmm5 + vmovdqu64 %zmm5,512(%rsp) +L$_skip_hkeys_precomputation_824: + cmpq $512,%r8 + jb L$_message_below_32_blocks_821 + + + + cmpb $240,%r15b + jae L$_next_16_overflow_825 + vpaddd %zmm28,%zmm2,%zmm7 + vpaddd %zmm27,%zmm7,%zmm10 + vpaddd %zmm27,%zmm10,%zmm11 + vpaddd %zmm27,%zmm11,%zmm12 + jmp L$_next_16_ok_825 +L$_next_16_overflow_825: + vpshufb %zmm29,%zmm2,%zmm2 + vmovdqa64 ddq_add_4444(%rip),%zmm12 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm7 + vpaddd %zmm12,%zmm7,%zmm10 + vpaddd %zmm12,%zmm10,%zmm11 + vpaddd %zmm12,%zmm11,%zmm12 + vpshufb %zmm29,%zmm7,%zmm7 + vpshufb %zmm29,%zmm10,%zmm10 + vpshufb %zmm29,%zmm11,%zmm11 + vpshufb %zmm29,%zmm12,%zmm12 +L$_next_16_ok_825: + vshufi64x2 $255,%zmm12,%zmm12,%zmm2 + addb $16,%r15b + + vmovdqu8 256(%rcx,%r11,1),%zmm0 + vmovdqu8 320(%rcx,%r11,1),%zmm3 + vmovdqu8 384(%rcx,%r11,1),%zmm4 + vmovdqu8 448(%rcx,%r11,1),%zmm5 + + + vbroadcastf64x2 0(%rdi),%zmm6 + vpxorq %zmm6,%zmm7,%zmm7 + vpxorq %zmm6,%zmm10,%zmm10 + vpxorq %zmm6,%zmm11,%zmm11 + vpxorq %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 16(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 32(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 48(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 64(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 80(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 96(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 112(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 128(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 144(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 160(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 176(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 192(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 208(%rdi),%zmm6 + vaesenc %zmm6,%zmm7,%zmm7 + vaesenc %zmm6,%zmm10,%zmm10 + vaesenc %zmm6,%zmm11,%zmm11 + vaesenc %zmm6,%zmm12,%zmm12 + vbroadcastf64x2 224(%rdi),%zmm6 + vaesenclast %zmm6,%zmm7,%zmm7 + vaesenclast %zmm6,%zmm10,%zmm10 + vaesenclast %zmm6,%zmm11,%zmm11 + vaesenclast %zmm6,%zmm12,%zmm12 + + + vpxorq %zmm0,%zmm7,%zmm7 + vpxorq %zmm3,%zmm10,%zmm10 + vpxorq %zmm4,%zmm11,%zmm11 + vpxorq %zmm5,%zmm12,%zmm12 + + + movq %r9,%r10 + vmovdqu8 %zmm7,256(%r10,%r11,1) + vmovdqu8 %zmm10,320(%r10,%r11,1) + vmovdqu8 %zmm11,384(%r10,%r11,1) + vmovdqu8 %zmm12,448(%r10,%r11,1) + + vpshufb %zmm29,%zmm0,%zmm7 + vpshufb %zmm29,%zmm3,%zmm10 + vpshufb %zmm29,%zmm4,%zmm11 + vpshufb %zmm29,%zmm5,%zmm12 + vmovdqa64 %zmm7,1024(%rsp) + vmovdqa64 %zmm10,1088(%rsp) + vmovdqa64 %zmm11,1152(%rsp) + vmovdqa64 %zmm12,1216(%rsp) + testq %r14,%r14 + jnz L$_skip_hkeys_precomputation_826 + vmovdqu64 640(%rsp),%zmm3 + + + vshufi64x2 $0x00,%zmm3,%zmm3,%zmm3 + + vmovdqu64 576(%rsp),%zmm4 + vmovdqu64 512(%rsp),%zmm5 + + vpclmulqdq $0x11,%zmm3,%zmm4,%zmm6 + vpclmulqdq $0x00,%zmm3,%zmm4,%zmm7 + vpclmulqdq $0x01,%zmm3,%zmm4,%zmm10 + vpclmulqdq $0x10,%zmm3,%zmm4,%zmm4 + vpxorq %zmm10,%zmm4,%zmm4 + + vpsrldq $8,%zmm4,%zmm10 + vpslldq $8,%zmm4,%zmm4 + vpxorq %zmm10,%zmm6,%zmm6 + vpxorq %zmm7,%zmm4,%zmm4 + + + + vmovdqu64 POLY2(%rip),%zmm10 + + vpclmulqdq $0x01,%zmm4,%zmm10,%zmm7 + vpslldq $8,%zmm7,%zmm7 + vpxorq %zmm7,%zmm4,%zmm4 + + + + vpclmulqdq $0x00,%zmm4,%zmm10,%zmm7 + vpsrldq $4,%zmm7,%zmm7 + vpclmulqdq $0x10,%zmm4,%zmm10,%zmm4 + vpslldq $4,%zmm4,%zmm4 + + vpternlogq $0x96,%zmm7,%zmm6,%zmm4 + + vmovdqu64 %zmm4,448(%rsp) + + vpclmulqdq $0x11,%zmm3,%zmm5,%zmm6 + vpclmulqdq $0x00,%zmm3,%zmm5,%zmm7 + vpclmulqdq $0x01,%zmm3,%zmm5,%zmm10 + vpclmulqdq $0x10,%zmm3,%zmm5,%zmm5 + vpxorq %zmm10,%zmm5,%zmm5 + + vpsrldq $8,%zmm5,%zmm10 + vpslldq $8,%zmm5,%zmm5 + vpxorq %zmm10,%zmm6,%zmm6 + vpxorq %zmm7,%zmm5,%zmm5 + + + + vmovdqu64 POLY2(%rip),%zmm10 + + vpclmulqdq $0x01,%zmm5,%zmm10,%zmm7 + vpslldq $8,%zmm7,%zmm7 + vpxorq %zmm7,%zmm5,%zmm5 + + + + vpclmulqdq $0x00,%zmm5,%zmm10,%zmm7 + vpsrldq $4,%zmm7,%zmm7 + vpclmulqdq $0x10,%zmm5,%zmm10,%zmm5 + vpslldq $4,%zmm5,%zmm5 + + vpternlogq $0x96,%zmm7,%zmm6,%zmm5 + + vmovdqu64 %zmm5,384(%rsp) + + vpclmulqdq $0x11,%zmm3,%zmm4,%zmm6 + vpclmulqdq $0x00,%zmm3,%zmm4,%zmm7 + vpclmulqdq $0x01,%zmm3,%zmm4,%zmm10 + vpclmulqdq $0x10,%zmm3,%zmm4,%zmm4 + vpxorq %zmm10,%zmm4,%zmm4 + + vpsrldq $8,%zmm4,%zmm10 + vpslldq $8,%zmm4,%zmm4 + vpxorq %zmm10,%zmm6,%zmm6 + vpxorq %zmm7,%zmm4,%zmm4 + + + + vmovdqu64 POLY2(%rip),%zmm10 + + vpclmulqdq $0x01,%zmm4,%zmm10,%zmm7 + vpslldq $8,%zmm7,%zmm7 + vpxorq %zmm7,%zmm4,%zmm4 + + + + vpclmulqdq $0x00,%zmm4,%zmm10,%zmm7 + vpsrldq $4,%zmm7,%zmm7 + vpclmulqdq $0x10,%zmm4,%zmm10,%zmm4 + vpslldq $4,%zmm4,%zmm4 + + vpternlogq $0x96,%zmm7,%zmm6,%zmm4 + + vmovdqu64 %zmm4,320(%rsp) + + vpclmulqdq $0x11,%zmm3,%zmm5,%zmm6 + vpclmulqdq $0x00,%zmm3,%zmm5,%zmm7 + vpclmulqdq $0x01,%zmm3,%zmm5,%zmm10 + vpclmulqdq $0x10,%zmm3,%zmm5,%zmm5 + vpxorq %zmm10,%zmm5,%zmm5 + + vpsrldq $8,%zmm5,%zmm10 + vpslldq $8,%zmm5,%zmm5 + vpxorq %zmm10,%zmm6,%zmm6 + vpxorq %zmm7,%zmm5,%zmm5 + + + + vmovdqu64 POLY2(%rip),%zmm10 + + vpclmulqdq $0x01,%zmm5,%zmm10,%zmm7 + vpslldq $8,%zmm7,%zmm7 + vpxorq %zmm7,%zmm5,%zmm5 + + + + vpclmulqdq $0x00,%zmm5,%zmm10,%zmm7 + vpsrldq $4,%zmm7,%zmm7 + vpclmulqdq $0x10,%zmm5,%zmm10,%zmm5 + vpslldq $4,%zmm5,%zmm5 + + vpternlogq $0x96,%zmm7,%zmm6,%zmm5 + + vmovdqu64 %zmm5,256(%rsp) + + vpclmulqdq $0x11,%zmm3,%zmm4,%zmm6 + vpclmulqdq $0x00,%zmm3,%zmm4,%zmm7 + vpclmulqdq $0x01,%zmm3,%zmm4,%zmm10 + vpclmulqdq $0x10,%zmm3,%zmm4,%zmm4 + vpxorq %zmm10,%zmm4,%zmm4 + + vpsrldq $8,%zmm4,%zmm10 + vpslldq $8,%zmm4,%zmm4 + vpxorq %zmm10,%zmm6,%zmm6 + vpxorq %zmm7,%zmm4,%zmm4 + + + + vmovdqu64 POLY2(%rip),%zmm10 + + vpclmulqdq $0x01,%zmm4,%zmm10,%zmm7 + vpslldq $8,%zmm7,%zmm7 + vpxorq %zmm7,%zmm4,%zmm4 + + + + vpclmulqdq $0x00,%zmm4,%zmm10,%zmm7 + vpsrldq $4,%zmm7,%zmm7 + vpclmulqdq $0x10,%zmm4,%zmm10,%zmm4 + vpslldq $4,%zmm4,%zmm4 + + vpternlogq $0x96,%zmm7,%zmm6,%zmm4 + + vmovdqu64 %zmm4,192(%rsp) + + vpclmulqdq $0x11,%zmm3,%zmm5,%zmm6 + vpclmulqdq $0x00,%zmm3,%zmm5,%zmm7 + vpclmulqdq $0x01,%zmm3,%zmm5,%zmm10 + vpclmulqdq $0x10,%zmm3,%zmm5,%zmm5 + vpxorq %zmm10,%zmm5,%zmm5 + + vpsrldq $8,%zmm5,%zmm10 + vpslldq $8,%zmm5,%zmm5 + vpxorq %zmm10,%zmm6,%zmm6 + vpxorq %zmm7,%zmm5,%zmm5 + + + + vmovdqu64 POLY2(%rip),%zmm10 + + vpclmulqdq $0x01,%zmm5,%zmm10,%zmm7 + vpslldq $8,%zmm7,%zmm7 + vpxorq %zmm7,%zmm5,%zmm5 + + + + vpclmulqdq $0x00,%zmm5,%zmm10,%zmm7 + vpsrldq $4,%zmm7,%zmm7 + vpclmulqdq $0x10,%zmm5,%zmm10,%zmm5 + vpslldq $4,%zmm5,%zmm5 + + vpternlogq $0x96,%zmm7,%zmm6,%zmm5 + + vmovdqu64 %zmm5,128(%rsp) + + vpclmulqdq $0x11,%zmm3,%zmm4,%zmm6 + vpclmulqdq $0x00,%zmm3,%zmm4,%zmm7 + vpclmulqdq $0x01,%zmm3,%zmm4,%zmm10 + vpclmulqdq $0x10,%zmm3,%zmm4,%zmm4 + vpxorq %zmm10,%zmm4,%zmm4 + + vpsrldq $8,%zmm4,%zmm10 + vpslldq $8,%zmm4,%zmm4 + vpxorq %zmm10,%zmm6,%zmm6 + vpxorq %zmm7,%zmm4,%zmm4 + + + + vmovdqu64 POLY2(%rip),%zmm10 + + vpclmulqdq $0x01,%zmm4,%zmm10,%zmm7 + vpslldq $8,%zmm7,%zmm7 + vpxorq %zmm7,%zmm4,%zmm4 + + + + vpclmulqdq $0x00,%zmm4,%zmm10,%zmm7 + vpsrldq $4,%zmm7,%zmm7 + vpclmulqdq $0x10,%zmm4,%zmm10,%zmm4 + vpslldq $4,%zmm4,%zmm4 + + vpternlogq $0x96,%zmm7,%zmm6,%zmm4 + + vmovdqu64 %zmm4,64(%rsp) + + vpclmulqdq $0x11,%zmm3,%zmm5,%zmm6 + vpclmulqdq $0x00,%zmm3,%zmm5,%zmm7 + vpclmulqdq $0x01,%zmm3,%zmm5,%zmm10 + vpclmulqdq $0x10,%zmm3,%zmm5,%zmm5 + vpxorq %zmm10,%zmm5,%zmm5 + + vpsrldq $8,%zmm5,%zmm10 + vpslldq $8,%zmm5,%zmm5 + vpxorq %zmm10,%zmm6,%zmm6 + vpxorq %zmm7,%zmm5,%zmm5 + + + + vmovdqu64 POLY2(%rip),%zmm10 + + vpclmulqdq $0x01,%zmm5,%zmm10,%zmm7 + vpslldq $8,%zmm7,%zmm7 + vpxorq %zmm7,%zmm5,%zmm5 + + + + vpclmulqdq $0x00,%zmm5,%zmm10,%zmm7 + vpsrldq $4,%zmm7,%zmm7 + vpclmulqdq $0x10,%zmm5,%zmm10,%zmm5 + vpslldq $4,%zmm5,%zmm5 + + vpternlogq $0x96,%zmm7,%zmm6,%zmm5 + + vmovdqu64 %zmm5,0(%rsp) +L$_skip_hkeys_precomputation_826: + movq $1,%r14 + addq $512,%r11 + subq $512,%r8 + + cmpq $768,%r8 + jb L$_no_more_big_nblocks_821 +L$_encrypt_big_nblocks_821: + cmpb $240,%r15b + jae L$_16_blocks_overflow_827 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp L$_16_blocks_ok_827 +L$_16_blocks_overflow_827: + vpshufb %zmm29,%zmm2,%zmm2 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +L$_16_blocks_ok_827: + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp),%zmm1 + + + + + vshufi64x2 $255,%zmm5,%zmm5,%zmm2 + addb $16,%r15b + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + + + + + + + + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm6 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm6 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + + + + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%zmm21 + + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm15,%zmm10,%zmm26 + vpxorq %zmm12,%zmm6,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 192(%rdi),%zmm30 + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 208(%rdi),%zmm31 + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 224(%rdi),%zmm30 + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + + + + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + + + + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %zmm5,192(%r10,%r11,1) + vpshufb %zmm29,%zmm17,%zmm0 + vpshufb %zmm29,%zmm19,%zmm3 + vpshufb %zmm29,%zmm20,%zmm4 + vpshufb %zmm29,%zmm21,%zmm5 + vmovdqa64 %zmm0,1280(%rsp) + vmovdqa64 %zmm3,1344(%rsp) + vmovdqa64 %zmm4,1408(%rsp) + vmovdqa64 %zmm5,1472(%rsp) + cmpb $240,%r15b + jae L$_16_blocks_overflow_828 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp L$_16_blocks_ok_828 +L$_16_blocks_overflow_828: + vpshufb %zmm29,%zmm2,%zmm2 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +L$_16_blocks_ok_828: + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 256(%rsp),%zmm1 + + + + + vshufi64x2 $255,%zmm5,%zmm5,%zmm2 + addb $16,%r15b + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 320(%rsp),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + + + + + + + + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm6 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 384(%rsp),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 448(%rsp),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm6 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + + + + vmovdqu8 256(%rcx,%r11,1),%zmm17 + vmovdqu8 320(%rcx,%r11,1),%zmm19 + vmovdqu8 384(%rcx,%r11,1),%zmm20 + vmovdqu8 448(%rcx,%r11,1),%zmm21 + + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vpternlogq $0x96,%zmm12,%zmm6,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 192(%rdi),%zmm30 + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 208(%rdi),%zmm31 + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 224(%rdi),%zmm30 + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + + + + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + + + + movq %r9,%r10 + vmovdqu8 %zmm0,256(%r10,%r11,1) + vmovdqu8 %zmm3,320(%r10,%r11,1) + vmovdqu8 %zmm4,384(%r10,%r11,1) + vmovdqu8 %zmm5,448(%r10,%r11,1) + vpshufb %zmm29,%zmm17,%zmm0 + vpshufb %zmm29,%zmm19,%zmm3 + vpshufb %zmm29,%zmm20,%zmm4 + vpshufb %zmm29,%zmm21,%zmm5 + vmovdqa64 %zmm0,768(%rsp) + vmovdqa64 %zmm3,832(%rsp) + vmovdqa64 %zmm4,896(%rsp) + vmovdqa64 %zmm5,960(%rsp) + cmpb $240,%r15b + jae L$_16_blocks_overflow_829 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp L$_16_blocks_ok_829 +L$_16_blocks_overflow_829: + vpshufb %zmm29,%zmm2,%zmm2 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +L$_16_blocks_ok_829: + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + + + + + vshufi64x2 $255,%zmm5,%zmm5,%zmm2 + addb $16,%r15b + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + + + + + + + + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm6 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm6 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + + + + vmovdqu8 512(%rcx,%r11,1),%zmm17 + vmovdqu8 576(%rcx,%r11,1),%zmm19 + vmovdqu8 640(%rcx,%r11,1),%zmm20 + vmovdqu8 704(%rcx,%r11,1),%zmm21 + + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + + + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vpternlogq $0x96,%zmm15,%zmm12,%zmm6 + vpxorq %zmm24,%zmm6,%zmm6 + vpternlogq $0x96,%zmm10,%zmm13,%zmm7 + vpxorq %zmm25,%zmm7,%zmm7 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vextracti64x4 $1,%zmm6,%ymm12 + vpxorq %ymm12,%ymm6,%ymm6 + vextracti32x4 $1,%ymm6,%xmm12 + vpxorq %xmm12,%xmm6,%xmm6 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 176(%rdi),%zmm31 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 192(%rdi),%zmm30 + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 208(%rdi),%zmm31 + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 224(%rdi),%zmm30 + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm6 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + + + + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + + + + movq %r9,%r10 + vmovdqu8 %zmm0,512(%r10,%r11,1) + vmovdqu8 %zmm3,576(%r10,%r11,1) + vmovdqu8 %zmm4,640(%r10,%r11,1) + vmovdqu8 %zmm5,704(%r10,%r11,1) + vpshufb %zmm29,%zmm17,%zmm0 + vpshufb %zmm29,%zmm19,%zmm3 + vpshufb %zmm29,%zmm20,%zmm4 + vpshufb %zmm29,%zmm21,%zmm5 + vmovdqa64 %zmm0,1024(%rsp) + vmovdqa64 %zmm3,1088(%rsp) + vmovdqa64 %zmm4,1152(%rsp) + vmovdqa64 %zmm5,1216(%rsp) + vmovdqa64 %zmm6,%zmm14 + + addq $768,%r11 + subq $768,%r8 + cmpq $768,%r8 + jae L$_encrypt_big_nblocks_821 + +L$_no_more_big_nblocks_821: + + cmpq $512,%r8 + jae L$_encrypt_32_blocks_821 + + cmpq $256,%r8 + jae L$_encrypt_16_blocks_821 +L$_encrypt_0_blocks_ghash_32_821: + movl %r8d,%r10d + andl $~15,%r10d + movl $256,%ebx + subl %r10d,%ebx + vmovdqa64 768(%rsp),%zmm13 + vpxorq %zmm14,%zmm13,%zmm13 + vmovdqu64 0(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 832(%rsp),%zmm13 + vmovdqu64 64(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + vpxorq %zmm10,%zmm4,%zmm26 + vpxorq %zmm6,%zmm0,%zmm24 + vpxorq %zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + vmovdqa64 896(%rsp),%zmm13 + vmovdqu64 128(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 960(%rsp),%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + + vpternlogq $0x96,%zmm10,%zmm4,%zmm26 + vpternlogq $0x96,%zmm6,%zmm0,%zmm24 + vpternlogq $0x96,%zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + addl $256,%ebx + movl %r8d,%r10d + addl $15,%r10d + shrl $4,%r10d + je L$_last_num_blocks_is_0_830 + + cmpl $8,%r10d + je L$_last_num_blocks_is_8_830 + jb L$_last_num_blocks_is_7_1_830 + + + cmpl $12,%r10d + je L$_last_num_blocks_is_12_830 + jb L$_last_num_blocks_is_11_9_830 + + + cmpl $15,%r10d + je L$_last_num_blocks_is_15_830 + ja L$_last_num_blocks_is_16_830 + cmpl $14,%r10d + je L$_last_num_blocks_is_14_830 + jmp L$_last_num_blocks_is_13_830 + +L$_last_num_blocks_is_11_9_830: + + cmpl $10,%r10d + je L$_last_num_blocks_is_10_830 + ja L$_last_num_blocks_is_11_830 + jmp L$_last_num_blocks_is_9_830 + +L$_last_num_blocks_is_7_1_830: + cmpl $4,%r10d + je L$_last_num_blocks_is_4_830 + jb L$_last_num_blocks_is_3_1_830 + + cmpl $6,%r10d + ja L$_last_num_blocks_is_7_830 + je L$_last_num_blocks_is_6_830 + jmp L$_last_num_blocks_is_5_830 + +L$_last_num_blocks_is_3_1_830: + + cmpl $2,%r10d + ja L$_last_num_blocks_is_3_830 + je L$_last_num_blocks_is_2_830 +L$_last_num_blocks_is_1_830: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $255,%r15d + jae L$_16_blocks_overflow_831 + vpaddd %xmm28,%xmm2,%xmm0 + jmp L$_16_blocks_ok_831 + +L$_16_blocks_overflow_831: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %xmm29,%xmm0,%xmm0 +L$_16_blocks_ok_831: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $0,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%xmm17{%k1}{z} + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %xmm31,%xmm0,%xmm0 + vaesenclast %xmm30,%xmm0,%xmm0 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti32x4 $0,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %xmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm17,%zmm17{%k1}{z} + vpshufb %xmm29,%xmm17,%xmm17 + vextracti32x4 $0,%zmm17,%xmm7 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_832 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm17,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm17,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm17,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm17,%xmm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_832 +L$_small_initial_partial_block_832: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + + + vpsrldq $8,%zmm26,%zmm0 + vpslldq $8,%zmm26,%zmm3 + vpxorq %zmm0,%zmm24,%zmm24 + vpxorq %zmm3,%zmm25,%zmm25 + vextracti64x4 $1,%zmm24,%ymm0 + vpxorq %ymm0,%ymm24,%ymm24 + vextracti32x4 $1,%ymm24,%xmm0 + vpxorq %xmm0,%xmm24,%xmm24 + vextracti64x4 $1,%zmm25,%ymm3 + vpxorq %ymm3,%ymm25,%ymm25 + vextracti32x4 $1,%ymm25,%xmm3 + vpxorq %xmm3,%xmm25,%xmm25 + vmovdqa64 POLY2(%rip),%xmm0 + + + vpclmulqdq $0x01,%xmm25,%xmm0,%xmm3 + vpslldq $8,%xmm3,%xmm3 + vpxorq %xmm3,%xmm25,%xmm3 + + + vpclmulqdq $0x00,%xmm3,%xmm0,%xmm4 + vpsrldq $4,%xmm4,%xmm4 + vpclmulqdq $0x10,%xmm3,%xmm0,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm24,%xmm4,%xmm14 + + + + + + + + + + + + + vpxorq %xmm7,%xmm14,%xmm14 + + jmp L$_after_reduction_832 +L$_small_initial_compute_done_832: +L$_after_reduction_832: + jmp L$_last_blocks_done_830 +L$_last_num_blocks_is_2_830: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $254,%r15d + jae L$_16_blocks_overflow_833 + vpaddd %ymm28,%ymm2,%ymm0 + jmp L$_16_blocks_ok_833 + +L$_16_blocks_overflow_833: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %ymm29,%ymm0,%ymm0 +L$_16_blocks_ok_833: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $1,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%ymm17{%k1}{z} + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %ymm31,%ymm0,%ymm0 + vaesenclast %ymm30,%ymm0,%ymm0 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %ymm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm17,%zmm17{%k1}{z} + vpshufb %ymm29,%ymm17,%ymm17 + vextracti32x4 $1,%zmm17,%xmm7 + subq $16 * (2 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_834 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm17,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm17,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm17,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm17,%ymm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_834 +L$_small_initial_partial_block_834: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm17,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm17,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm17,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm17,%xmm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_834: + + orq %r8,%r8 + je L$_after_reduction_834 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_834: + jmp L$_last_blocks_done_830 +L$_last_num_blocks_is_3_830: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $253,%r15d + jae L$_16_blocks_overflow_835 + vpaddd %zmm28,%zmm2,%zmm0 + jmp L$_16_blocks_ok_835 + +L$_16_blocks_overflow_835: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %zmm29,%zmm0,%zmm0 +L$_16_blocks_ok_835: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $2,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm0,%zmm0 + vpxorq %zmm17,%zmm0,%zmm0 + vextracti32x4 $2,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm17,%zmm17{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vextracti32x4 $2,%zmm17,%xmm7 + subq $16 * (3 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_836 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_836 +L$_small_initial_partial_block_836: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm17,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm17,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm17,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm17,%ymm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_836: + + orq %r8,%r8 + je L$_after_reduction_836 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_836: + jmp L$_last_blocks_done_830 +L$_last_num_blocks_is_4_830: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $252,%r15d + jae L$_16_blocks_overflow_837 + vpaddd %zmm28,%zmm2,%zmm0 + jmp L$_16_blocks_ok_837 + +L$_16_blocks_overflow_837: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %zmm29,%zmm0,%zmm0 +L$_16_blocks_ok_837: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $3,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm0,%zmm0 + vpxorq %zmm17,%zmm0,%zmm0 + vextracti32x4 $3,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm17,%zmm17{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vextracti32x4 $3,%zmm17,%xmm7 + subq $16 * (4 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_838 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_838 +L$_small_initial_partial_block_838: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_838: + + orq %r8,%r8 + je L$_after_reduction_838 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_838: + jmp L$_last_blocks_done_830 +L$_last_num_blocks_is_5_830: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $251,%r15d + jae L$_16_blocks_overflow_839 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %xmm27,%xmm0,%xmm3 + jmp L$_16_blocks_ok_839 + +L$_16_blocks_overflow_839: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %xmm29,%xmm3,%xmm3 +L$_16_blocks_ok_839: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $0,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%xmm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %xmm30,%xmm3,%xmm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %xmm19,%xmm3,%xmm3 + vextracti32x4 $0,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %xmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm19,%zmm19{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %xmm29,%xmm19,%xmm19 + vextracti32x4 $0,%zmm19,%xmm7 + subq $16 * (5 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_840 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm19,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm19,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm19,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm19,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_840 +L$_small_initial_partial_block_840: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_840: + + orq %r8,%r8 + je L$_after_reduction_840 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_840: + jmp L$_last_blocks_done_830 +L$_last_num_blocks_is_6_830: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $250,%r15d + jae L$_16_blocks_overflow_841 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %ymm27,%ymm0,%ymm3 + jmp L$_16_blocks_ok_841 + +L$_16_blocks_overflow_841: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %ymm29,%ymm3,%ymm3 +L$_16_blocks_ok_841: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $1,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%ymm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %ymm30,%ymm3,%ymm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %ymm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm19,%zmm19{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %ymm29,%ymm19,%ymm19 + vextracti32x4 $1,%zmm19,%xmm7 + subq $16 * (6 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_842 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm19,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm19,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm19,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm19,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_842 +L$_small_initial_partial_block_842: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm19,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm19,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm19,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm19,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_842: + + orq %r8,%r8 + je L$_after_reduction_842 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_842: + jmp L$_last_blocks_done_830 +L$_last_num_blocks_is_7_830: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $249,%r15d + jae L$_16_blocks_overflow_843 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + jmp L$_16_blocks_ok_843 + +L$_16_blocks_overflow_843: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 +L$_16_blocks_ok_843: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $2,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti32x4 $2,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm19,%zmm19{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vextracti32x4 $2,%zmm19,%xmm7 + subq $16 * (7 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_844 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_844 +L$_small_initial_partial_block_844: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm19,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm19,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm19,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm19,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_844: + + orq %r8,%r8 + je L$_after_reduction_844 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_844: + jmp L$_last_blocks_done_830 +L$_last_num_blocks_is_8_830: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $248,%r15d + jae L$_16_blocks_overflow_845 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + jmp L$_16_blocks_ok_845 + +L$_16_blocks_overflow_845: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 +L$_16_blocks_ok_845: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $3,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti32x4 $3,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm19,%zmm19{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vextracti32x4 $3,%zmm19,%xmm7 + subq $16 * (8 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_846 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_846 +L$_small_initial_partial_block_846: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_846: + + orq %r8,%r8 + je L$_after_reduction_846 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_846: + jmp L$_last_blocks_done_830 +L$_last_num_blocks_is_9_830: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $247,%r15d + jae L$_16_blocks_overflow_847 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %xmm27,%xmm3,%xmm4 + jmp L$_16_blocks_ok_847 + +L$_16_blocks_overflow_847: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %xmm29,%xmm4,%xmm4 +L$_16_blocks_ok_847: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $0,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%xmm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %xmm30,%xmm4,%xmm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %xmm20,%xmm4,%xmm4 + vextracti32x4 $0,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %xmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm20,%zmm20{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %xmm29,%xmm20,%xmm20 + vextracti32x4 $0,%zmm20,%xmm7 + subq $16 * (9 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_848 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm20,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm20,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm20,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm20,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_848 +L$_small_initial_partial_block_848: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_848: + + orq %r8,%r8 + je L$_after_reduction_848 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_848: + jmp L$_last_blocks_done_830 +L$_last_num_blocks_is_10_830: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $246,%r15d + jae L$_16_blocks_overflow_849 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %ymm27,%ymm3,%ymm4 + jmp L$_16_blocks_ok_849 + +L$_16_blocks_overflow_849: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %ymm29,%ymm4,%ymm4 +L$_16_blocks_ok_849: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $1,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%ymm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %ymm30,%ymm4,%ymm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %ymm20,%ymm4,%ymm4 + vextracti32x4 $1,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %ymm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm20,%zmm20{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %ymm29,%ymm20,%ymm20 + vextracti32x4 $1,%zmm20,%xmm7 + subq $16 * (10 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_850 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm20,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm20,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm20,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm20,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_850 +L$_small_initial_partial_block_850: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm20,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm20,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm20,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm20,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_850: + + orq %r8,%r8 + je L$_after_reduction_850 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_850: + jmp L$_last_blocks_done_830 +L$_last_num_blocks_is_11_830: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $245,%r15d + jae L$_16_blocks_overflow_851 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + jmp L$_16_blocks_ok_851 + +L$_16_blocks_overflow_851: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 +L$_16_blocks_ok_851: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $2,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vextracti32x4 $2,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm20,%zmm20{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %zmm29,%zmm20,%zmm20 + vextracti32x4 $2,%zmm20,%xmm7 + subq $16 * (11 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_852 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_852 +L$_small_initial_partial_block_852: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm20,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm20,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm20,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm20,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_852: + + orq %r8,%r8 + je L$_after_reduction_852 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_852: + jmp L$_last_blocks_done_830 +L$_last_num_blocks_is_12_830: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $244,%r15d + jae L$_16_blocks_overflow_853 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + jmp L$_16_blocks_ok_853 + +L$_16_blocks_overflow_853: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 +L$_16_blocks_ok_853: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $3,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vextracti32x4 $3,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm20,%zmm20{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %zmm29,%zmm20,%zmm20 + vextracti32x4 $3,%zmm20,%xmm7 + subq $16 * (12 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_854 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 160(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_854 +L$_small_initial_partial_block_854: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_854: + + orq %r8,%r8 + je L$_after_reduction_854 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_854: + jmp L$_last_blocks_done_830 +L$_last_num_blocks_is_13_830: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $243,%r15d + jae L$_16_blocks_overflow_855 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %xmm27,%xmm4,%xmm5 + jmp L$_16_blocks_ok_855 + +L$_16_blocks_overflow_855: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %xmm29,%xmm5,%xmm5 +L$_16_blocks_ok_855: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $0,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%xmm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %xmm30,%xmm5,%xmm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %xmm21,%xmm5,%xmm5 + vextracti32x4 $0,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %xmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm21,%zmm21{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %zmm29,%zmm20,%zmm20 + vpshufb %xmm29,%xmm21,%xmm21 + vextracti32x4 $0,%zmm21,%xmm7 + subq $16 * (13 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_856 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 144(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm21,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm21,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm21,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm21,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_856 +L$_small_initial_partial_block_856: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 160(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_856: + + orq %r8,%r8 + je L$_after_reduction_856 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_856: + jmp L$_last_blocks_done_830 +L$_last_num_blocks_is_14_830: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $242,%r15d + jae L$_16_blocks_overflow_857 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %ymm27,%ymm4,%ymm5 + jmp L$_16_blocks_ok_857 + +L$_16_blocks_overflow_857: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %ymm29,%ymm5,%ymm5 +L$_16_blocks_ok_857: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $1,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%ymm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %ymm30,%ymm5,%ymm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %ymm21,%ymm5,%ymm5 + vextracti32x4 $1,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %ymm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm21,%zmm21{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %zmm29,%zmm20,%zmm20 + vpshufb %ymm29,%ymm21,%ymm21 + vextracti32x4 $1,%zmm21,%xmm7 + subq $16 * (14 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_858 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 128(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm21,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm21,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm21,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm21,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_858 +L$_small_initial_partial_block_858: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 144(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm21,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm21,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm21,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm21,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_858: + + orq %r8,%r8 + je L$_after_reduction_858 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_858: + jmp L$_last_blocks_done_830 +L$_last_num_blocks_is_15_830: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $241,%r15d + jae L$_16_blocks_overflow_859 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp L$_16_blocks_ok_859 + +L$_16_blocks_overflow_859: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +L$_16_blocks_ok_859: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $2,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%zmm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + vextracti32x4 $2,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %zmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm21,%zmm21{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %zmm29,%zmm20,%zmm20 + vpshufb %zmm29,%zmm21,%zmm21 + vextracti32x4 $2,%zmm21,%xmm7 + subq $16 * (15 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_860 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 112(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm21,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm21,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm21,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm21,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_860 +L$_small_initial_partial_block_860: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 128(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm21,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm21,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm21,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm21,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_860: + + orq %r8,%r8 + je L$_after_reduction_860 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_860: + jmp L$_last_blocks_done_830 +L$_last_num_blocks_is_16_830: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $240,%r15d + jae L$_16_blocks_overflow_861 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp L$_16_blocks_ok_861 + +L$_16_blocks_overflow_861: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +L$_16_blocks_ok_861: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $3,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%zmm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm14,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + vextracti32x4 $3,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %zmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm21,%zmm21{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %zmm29,%zmm20,%zmm20 + vpshufb %zmm29,%zmm21,%zmm21 + vextracti32x4 $3,%zmm21,%xmm7 + subq $16 * (16 - 1),%r8 +L$_small_initial_partial_block_862: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 112(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm21,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm21,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm21,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm21,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_862: + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_862: + jmp L$_last_blocks_done_830 +L$_last_num_blocks_is_0_830: + vmovdqa64 1024(%rsp),%zmm13 + vmovdqu64 0(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 1088(%rsp),%zmm13 + vmovdqu64 64(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + vpternlogq $0x96,%zmm10,%zmm4,%zmm26 + vpternlogq $0x96,%zmm6,%zmm0,%zmm24 + vpternlogq $0x96,%zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + vmovdqa64 1152(%rsp),%zmm13 + vmovdqu64 128(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 1216(%rsp),%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + + vpternlogq $0x96,%zmm10,%zmm4,%zmm26 + vpternlogq $0x96,%zmm6,%zmm0,%zmm24 + vpternlogq $0x96,%zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + + vpsrldq $8,%zmm26,%zmm0 + vpslldq $8,%zmm26,%zmm3 + vpxorq %zmm0,%zmm24,%zmm24 + vpxorq %zmm3,%zmm25,%zmm25 + vextracti64x4 $1,%zmm24,%ymm0 + vpxorq %ymm0,%ymm24,%ymm24 + vextracti32x4 $1,%ymm24,%xmm0 + vpxorq %xmm0,%xmm24,%xmm24 + vextracti64x4 $1,%zmm25,%ymm3 + vpxorq %ymm3,%ymm25,%ymm25 + vextracti32x4 $1,%ymm25,%xmm3 + vpxorq %xmm3,%xmm25,%xmm25 + vmovdqa64 POLY2(%rip),%xmm4 + + + vpclmulqdq $0x01,%xmm25,%xmm4,%xmm0 + vpslldq $8,%xmm0,%xmm0 + vpxorq %xmm0,%xmm25,%xmm0 + + + vpclmulqdq $0x00,%xmm0,%xmm4,%xmm3 + vpsrldq $4,%xmm3,%xmm3 + vpclmulqdq $0x10,%xmm0,%xmm4,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm24,%xmm3,%xmm14 + +L$_last_blocks_done_830: + vpshufb %xmm29,%xmm2,%xmm2 + jmp L$_ghash_done_821 +L$_encrypt_32_blocks_821: + cmpb $240,%r15b + jae L$_16_blocks_overflow_863 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp L$_16_blocks_ok_863 +L$_16_blocks_overflow_863: + vpshufb %zmm29,%zmm2,%zmm2 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +L$_16_blocks_ok_863: + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp),%zmm1 + + + + + vshufi64x2 $255,%zmm5,%zmm5,%zmm2 + addb $16,%r15b + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + + + + + + + + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm6 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm6 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + + + + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%zmm21 + + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm15,%zmm10,%zmm26 + vpxorq %zmm12,%zmm6,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 192(%rdi),%zmm30 + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 208(%rdi),%zmm31 + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 224(%rdi),%zmm30 + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + + + + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + + + + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %zmm5,192(%r10,%r11,1) + vpshufb %zmm29,%zmm17,%zmm0 + vpshufb %zmm29,%zmm19,%zmm3 + vpshufb %zmm29,%zmm20,%zmm4 + vpshufb %zmm29,%zmm21,%zmm5 + vmovdqa64 %zmm0,1280(%rsp) + vmovdqa64 %zmm3,1344(%rsp) + vmovdqa64 %zmm4,1408(%rsp) + vmovdqa64 %zmm5,1472(%rsp) + cmpb $240,%r15b + jae L$_16_blocks_overflow_864 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp L$_16_blocks_ok_864 +L$_16_blocks_overflow_864: + vpshufb %zmm29,%zmm2,%zmm2 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +L$_16_blocks_ok_864: + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1024(%rsp),%zmm8 + vmovdqu64 256(%rsp),%zmm1 + + + + + vshufi64x2 $255,%zmm5,%zmm5,%zmm2 + addb $16,%r15b + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 320(%rsp),%zmm18 + vmovdqa64 1088(%rsp),%zmm22 + + + + + + + + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm6 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 384(%rsp),%zmm1 + vmovdqa64 1152(%rsp),%zmm8 + + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 448(%rsp),%zmm18 + vmovdqa64 1216(%rsp),%zmm22 + + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm6 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + + + + vmovdqu8 256(%rcx,%r11,1),%zmm17 + vmovdqu8 320(%rcx,%r11,1),%zmm19 + vmovdqu8 384(%rcx,%r11,1),%zmm20 + vmovdqu8 448(%rcx,%r11,1),%zmm21 + + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm15,%zmm10,%zmm26 + vpternlogq $0x96,%zmm12,%zmm6,%zmm24 + vpternlogq $0x96,%zmm13,%zmm7,%zmm25 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 192(%rdi),%zmm30 + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 208(%rdi),%zmm31 + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 224(%rdi),%zmm30 + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + + + + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + + + + movq %r9,%r10 + vmovdqu8 %zmm0,256(%r10,%r11,1) + vmovdqu8 %zmm3,320(%r10,%r11,1) + vmovdqu8 %zmm4,384(%r10,%r11,1) + vmovdqu8 %zmm5,448(%r10,%r11,1) + vpshufb %zmm29,%zmm17,%zmm0 + vpshufb %zmm29,%zmm19,%zmm3 + vpshufb %zmm29,%zmm20,%zmm4 + vpshufb %zmm29,%zmm21,%zmm5 + vmovdqa64 %zmm0,768(%rsp) + vmovdqa64 %zmm3,832(%rsp) + vmovdqa64 %zmm4,896(%rsp) + vmovdqa64 %zmm5,960(%rsp) + vmovdqa64 1280(%rsp),%zmm13 + vmovdqu64 512(%rsp),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 1344(%rsp),%zmm13 + vmovdqu64 576(%rsp),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + vpternlogq $0x96,%zmm10,%zmm4,%zmm26 + vpternlogq $0x96,%zmm6,%zmm0,%zmm24 + vpternlogq $0x96,%zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + vmovdqa64 1408(%rsp),%zmm13 + vmovdqu64 640(%rsp),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 1472(%rsp),%zmm13 + vmovdqu64 704(%rsp),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + + vpternlogq $0x96,%zmm10,%zmm4,%zmm26 + vpternlogq $0x96,%zmm6,%zmm0,%zmm24 + vpternlogq $0x96,%zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + + vpsrldq $8,%zmm26,%zmm0 + vpslldq $8,%zmm26,%zmm3 + vpxorq %zmm0,%zmm24,%zmm24 + vpxorq %zmm3,%zmm25,%zmm25 + vextracti64x4 $1,%zmm24,%ymm0 + vpxorq %ymm0,%ymm24,%ymm24 + vextracti32x4 $1,%ymm24,%xmm0 + vpxorq %xmm0,%xmm24,%xmm24 + vextracti64x4 $1,%zmm25,%ymm3 + vpxorq %ymm3,%ymm25,%ymm25 + vextracti32x4 $1,%ymm25,%xmm3 + vpxorq %xmm3,%xmm25,%xmm25 + vmovdqa64 POLY2(%rip),%xmm4 + + + vpclmulqdq $0x01,%xmm25,%xmm4,%xmm0 + vpslldq $8,%xmm0,%xmm0 + vpxorq %xmm0,%xmm25,%xmm0 + + + vpclmulqdq $0x00,%xmm0,%xmm4,%xmm3 + vpsrldq $4,%xmm3,%xmm3 + vpclmulqdq $0x10,%xmm0,%xmm4,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm24,%xmm3,%xmm14 + + subq $512,%r8 + addq $512,%r11 + movl %r8d,%r10d + andl $~15,%r10d + movl $512,%ebx + subl %r10d,%ebx + movl %r8d,%r10d + addl $15,%r10d + shrl $4,%r10d + je L$_last_num_blocks_is_0_865 + + cmpl $8,%r10d + je L$_last_num_blocks_is_8_865 + jb L$_last_num_blocks_is_7_1_865 + + + cmpl $12,%r10d + je L$_last_num_blocks_is_12_865 + jb L$_last_num_blocks_is_11_9_865 + + + cmpl $15,%r10d + je L$_last_num_blocks_is_15_865 + ja L$_last_num_blocks_is_16_865 + cmpl $14,%r10d + je L$_last_num_blocks_is_14_865 + jmp L$_last_num_blocks_is_13_865 + +L$_last_num_blocks_is_11_9_865: + + cmpl $10,%r10d + je L$_last_num_blocks_is_10_865 + ja L$_last_num_blocks_is_11_865 + jmp L$_last_num_blocks_is_9_865 + +L$_last_num_blocks_is_7_1_865: + cmpl $4,%r10d + je L$_last_num_blocks_is_4_865 + jb L$_last_num_blocks_is_3_1_865 + + cmpl $6,%r10d + ja L$_last_num_blocks_is_7_865 + je L$_last_num_blocks_is_6_865 + jmp L$_last_num_blocks_is_5_865 + +L$_last_num_blocks_is_3_1_865: + + cmpl $2,%r10d + ja L$_last_num_blocks_is_3_865 + je L$_last_num_blocks_is_2_865 +L$_last_num_blocks_is_1_865: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $255,%r15d + jae L$_16_blocks_overflow_866 + vpaddd %xmm28,%xmm2,%xmm0 + jmp L$_16_blocks_ok_866 + +L$_16_blocks_overflow_866: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %xmm29,%xmm0,%xmm0 +L$_16_blocks_ok_866: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $0,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%xmm17{%k1}{z} + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %xmm31,%xmm0,%xmm0 + vaesenclast %xmm30,%xmm0,%xmm0 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti32x4 $0,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %xmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm17,%zmm17{%k1}{z} + vpshufb %xmm29,%xmm17,%xmm17 + vextracti32x4 $0,%zmm17,%xmm7 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_867 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm17,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm17,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm17,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm17,%xmm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_867 +L$_small_initial_partial_block_867: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + + + vpsrldq $8,%zmm26,%zmm0 + vpslldq $8,%zmm26,%zmm3 + vpxorq %zmm0,%zmm24,%zmm24 + vpxorq %zmm3,%zmm25,%zmm25 + vextracti64x4 $1,%zmm24,%ymm0 + vpxorq %ymm0,%ymm24,%ymm24 + vextracti32x4 $1,%ymm24,%xmm0 + vpxorq %xmm0,%xmm24,%xmm24 + vextracti64x4 $1,%zmm25,%ymm3 + vpxorq %ymm3,%ymm25,%ymm25 + vextracti32x4 $1,%ymm25,%xmm3 + vpxorq %xmm3,%xmm25,%xmm25 + vmovdqa64 POLY2(%rip),%xmm0 + + + vpclmulqdq $0x01,%xmm25,%xmm0,%xmm3 + vpslldq $8,%xmm3,%xmm3 + vpxorq %xmm3,%xmm25,%xmm3 + + + vpclmulqdq $0x00,%xmm3,%xmm0,%xmm4 + vpsrldq $4,%xmm4,%xmm4 + vpclmulqdq $0x10,%xmm3,%xmm0,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm24,%xmm4,%xmm14 + + + + + + + + + + + + + vpxorq %xmm7,%xmm14,%xmm14 + + jmp L$_after_reduction_867 +L$_small_initial_compute_done_867: +L$_after_reduction_867: + jmp L$_last_blocks_done_865 +L$_last_num_blocks_is_2_865: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $254,%r15d + jae L$_16_blocks_overflow_868 + vpaddd %ymm28,%ymm2,%ymm0 + jmp L$_16_blocks_ok_868 + +L$_16_blocks_overflow_868: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %ymm29,%ymm0,%ymm0 +L$_16_blocks_ok_868: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $1,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%ymm17{%k1}{z} + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %ymm31,%ymm0,%ymm0 + vaesenclast %ymm30,%ymm0,%ymm0 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %ymm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm17,%zmm17{%k1}{z} + vpshufb %ymm29,%ymm17,%ymm17 + vextracti32x4 $1,%zmm17,%xmm7 + subq $16 * (2 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_869 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm17,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm17,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm17,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm17,%ymm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_869 +L$_small_initial_partial_block_869: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm17,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm17,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm17,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm17,%xmm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_869: + + orq %r8,%r8 + je L$_after_reduction_869 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_869: + jmp L$_last_blocks_done_865 +L$_last_num_blocks_is_3_865: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $253,%r15d + jae L$_16_blocks_overflow_870 + vpaddd %zmm28,%zmm2,%zmm0 + jmp L$_16_blocks_ok_870 + +L$_16_blocks_overflow_870: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %zmm29,%zmm0,%zmm0 +L$_16_blocks_ok_870: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $2,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm0,%zmm0 + vpxorq %zmm17,%zmm0,%zmm0 + vextracti32x4 $2,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm17,%zmm17{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vextracti32x4 $2,%zmm17,%xmm7 + subq $16 * (3 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_871 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_871 +L$_small_initial_partial_block_871: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm17,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm17,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm17,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm17,%ymm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_871: + + orq %r8,%r8 + je L$_after_reduction_871 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_871: + jmp L$_last_blocks_done_865 +L$_last_num_blocks_is_4_865: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $252,%r15d + jae L$_16_blocks_overflow_872 + vpaddd %zmm28,%zmm2,%zmm0 + jmp L$_16_blocks_ok_872 + +L$_16_blocks_overflow_872: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %zmm29,%zmm0,%zmm0 +L$_16_blocks_ok_872: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $3,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm0,%zmm0 + vpxorq %zmm17,%zmm0,%zmm0 + vextracti32x4 $3,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm17,%zmm17{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vextracti32x4 $3,%zmm17,%xmm7 + subq $16 * (4 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_873 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_873 +L$_small_initial_partial_block_873: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_873: + + orq %r8,%r8 + je L$_after_reduction_873 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_873: + jmp L$_last_blocks_done_865 +L$_last_num_blocks_is_5_865: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $251,%r15d + jae L$_16_blocks_overflow_874 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %xmm27,%xmm0,%xmm3 + jmp L$_16_blocks_ok_874 + +L$_16_blocks_overflow_874: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %xmm29,%xmm3,%xmm3 +L$_16_blocks_ok_874: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $0,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%xmm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %xmm30,%xmm3,%xmm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %xmm19,%xmm3,%xmm3 + vextracti32x4 $0,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %xmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm19,%zmm19{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %xmm29,%xmm19,%xmm19 + vextracti32x4 $0,%zmm19,%xmm7 + subq $16 * (5 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_875 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm19,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm19,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm19,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm19,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_875 +L$_small_initial_partial_block_875: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_875: + + orq %r8,%r8 + je L$_after_reduction_875 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_875: + jmp L$_last_blocks_done_865 +L$_last_num_blocks_is_6_865: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $250,%r15d + jae L$_16_blocks_overflow_876 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %ymm27,%ymm0,%ymm3 + jmp L$_16_blocks_ok_876 + +L$_16_blocks_overflow_876: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %ymm29,%ymm3,%ymm3 +L$_16_blocks_ok_876: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $1,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%ymm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %ymm30,%ymm3,%ymm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %ymm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm19,%zmm19{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %ymm29,%ymm19,%ymm19 + vextracti32x4 $1,%zmm19,%xmm7 + subq $16 * (6 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_877 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm19,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm19,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm19,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm19,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_877 +L$_small_initial_partial_block_877: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm19,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm19,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm19,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm19,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_877: + + orq %r8,%r8 + je L$_after_reduction_877 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_877: + jmp L$_last_blocks_done_865 +L$_last_num_blocks_is_7_865: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $249,%r15d + jae L$_16_blocks_overflow_878 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + jmp L$_16_blocks_ok_878 + +L$_16_blocks_overflow_878: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 +L$_16_blocks_ok_878: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $2,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti32x4 $2,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm19,%zmm19{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vextracti32x4 $2,%zmm19,%xmm7 + subq $16 * (7 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_879 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_879 +L$_small_initial_partial_block_879: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm19,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm19,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm19,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm19,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_879: + + orq %r8,%r8 + je L$_after_reduction_879 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_879: + jmp L$_last_blocks_done_865 +L$_last_num_blocks_is_8_865: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $248,%r15d + jae L$_16_blocks_overflow_880 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + jmp L$_16_blocks_ok_880 + +L$_16_blocks_overflow_880: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 +L$_16_blocks_ok_880: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $3,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti32x4 $3,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm19,%zmm19{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vextracti32x4 $3,%zmm19,%xmm7 + subq $16 * (8 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_881 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_881 +L$_small_initial_partial_block_881: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_881: + + orq %r8,%r8 + je L$_after_reduction_881 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_881: + jmp L$_last_blocks_done_865 +L$_last_num_blocks_is_9_865: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $247,%r15d + jae L$_16_blocks_overflow_882 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %xmm27,%xmm3,%xmm4 + jmp L$_16_blocks_ok_882 + +L$_16_blocks_overflow_882: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %xmm29,%xmm4,%xmm4 +L$_16_blocks_ok_882: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $0,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%xmm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %xmm30,%xmm4,%xmm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %xmm20,%xmm4,%xmm4 + vextracti32x4 $0,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %xmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm20,%zmm20{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %xmm29,%xmm20,%xmm20 + vextracti32x4 $0,%zmm20,%xmm7 + subq $16 * (9 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_883 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm20,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm20,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm20,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm20,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_883 +L$_small_initial_partial_block_883: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_883: + + orq %r8,%r8 + je L$_after_reduction_883 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_883: + jmp L$_last_blocks_done_865 +L$_last_num_blocks_is_10_865: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $246,%r15d + jae L$_16_blocks_overflow_884 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %ymm27,%ymm3,%ymm4 + jmp L$_16_blocks_ok_884 + +L$_16_blocks_overflow_884: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %ymm29,%ymm4,%ymm4 +L$_16_blocks_ok_884: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $1,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%ymm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %ymm30,%ymm4,%ymm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %ymm20,%ymm4,%ymm4 + vextracti32x4 $1,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %ymm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm20,%zmm20{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %ymm29,%ymm20,%ymm20 + vextracti32x4 $1,%zmm20,%xmm7 + subq $16 * (10 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_885 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm20,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm20,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm20,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm20,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_885 +L$_small_initial_partial_block_885: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm20,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm20,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm20,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm20,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_885: + + orq %r8,%r8 + je L$_after_reduction_885 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_885: + jmp L$_last_blocks_done_865 +L$_last_num_blocks_is_11_865: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $245,%r15d + jae L$_16_blocks_overflow_886 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + jmp L$_16_blocks_ok_886 + +L$_16_blocks_overflow_886: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 +L$_16_blocks_ok_886: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $2,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vextracti32x4 $2,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm20,%zmm20{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %zmm29,%zmm20,%zmm20 + vextracti32x4 $2,%zmm20,%xmm7 + subq $16 * (11 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_887 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_887 +L$_small_initial_partial_block_887: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm20,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm20,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm20,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm20,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_887: + + orq %r8,%r8 + je L$_after_reduction_887 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_887: + jmp L$_last_blocks_done_865 +L$_last_num_blocks_is_12_865: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $244,%r15d + jae L$_16_blocks_overflow_888 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + jmp L$_16_blocks_ok_888 + +L$_16_blocks_overflow_888: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 +L$_16_blocks_ok_888: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $3,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vextracti32x4 $3,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm20,%zmm20{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %zmm29,%zmm20,%zmm20 + vextracti32x4 $3,%zmm20,%xmm7 + subq $16 * (12 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_889 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 160(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_889 +L$_small_initial_partial_block_889: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_889: + + orq %r8,%r8 + je L$_after_reduction_889 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_889: + jmp L$_last_blocks_done_865 +L$_last_num_blocks_is_13_865: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $243,%r15d + jae L$_16_blocks_overflow_890 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %xmm27,%xmm4,%xmm5 + jmp L$_16_blocks_ok_890 + +L$_16_blocks_overflow_890: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %xmm29,%xmm5,%xmm5 +L$_16_blocks_ok_890: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $0,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%xmm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %xmm30,%xmm5,%xmm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %xmm21,%xmm5,%xmm5 + vextracti32x4 $0,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %xmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm21,%zmm21{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %zmm29,%zmm20,%zmm20 + vpshufb %xmm29,%xmm21,%xmm21 + vextracti32x4 $0,%zmm21,%xmm7 + subq $16 * (13 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_891 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 144(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm21,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm21,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm21,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm21,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_891 +L$_small_initial_partial_block_891: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 160(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_891: + + orq %r8,%r8 + je L$_after_reduction_891 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_891: + jmp L$_last_blocks_done_865 +L$_last_num_blocks_is_14_865: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $242,%r15d + jae L$_16_blocks_overflow_892 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %ymm27,%ymm4,%ymm5 + jmp L$_16_blocks_ok_892 + +L$_16_blocks_overflow_892: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %ymm29,%ymm5,%ymm5 +L$_16_blocks_ok_892: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $1,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%ymm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %ymm30,%ymm5,%ymm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %ymm21,%ymm5,%ymm5 + vextracti32x4 $1,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %ymm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm21,%zmm21{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %zmm29,%zmm20,%zmm20 + vpshufb %ymm29,%ymm21,%ymm21 + vextracti32x4 $1,%zmm21,%xmm7 + subq $16 * (14 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_893 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 128(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm21,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm21,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm21,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm21,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_893 +L$_small_initial_partial_block_893: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 144(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm21,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm21,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm21,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm21,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_893: + + orq %r8,%r8 + je L$_after_reduction_893 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_893: + jmp L$_last_blocks_done_865 +L$_last_num_blocks_is_15_865: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $241,%r15d + jae L$_16_blocks_overflow_894 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp L$_16_blocks_ok_894 + +L$_16_blocks_overflow_894: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +L$_16_blocks_ok_894: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $2,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%zmm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + vextracti32x4 $2,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %zmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm21,%zmm21{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %zmm29,%zmm20,%zmm20 + vpshufb %zmm29,%zmm21,%zmm21 + vextracti32x4 $2,%zmm21,%xmm7 + subq $16 * (15 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_895 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 112(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm21,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm21,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm21,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm21,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_895 +L$_small_initial_partial_block_895: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 128(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm21,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm21,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm21,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm21,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_895: + + orq %r8,%r8 + je L$_after_reduction_895 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_895: + jmp L$_last_blocks_done_865 +L$_last_num_blocks_is_16_865: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $240,%r15d + jae L$_16_blocks_overflow_896 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp L$_16_blocks_ok_896 + +L$_16_blocks_overflow_896: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +L$_16_blocks_ok_896: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $3,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%zmm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + vextracti32x4 $3,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %zmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm21,%zmm21{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %zmm29,%zmm20,%zmm20 + vpshufb %zmm29,%zmm21,%zmm21 + vextracti32x4 $3,%zmm21,%xmm7 + subq $16 * (16 - 1),%r8 +L$_small_initial_partial_block_897: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 112(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm21,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm21,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm21,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm21,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_897: + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_897: + jmp L$_last_blocks_done_865 +L$_last_num_blocks_is_0_865: + vmovdqa64 768(%rsp),%zmm13 + vpxorq %zmm14,%zmm13,%zmm13 + vmovdqu64 0(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 832(%rsp),%zmm13 + vmovdqu64 64(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + vpxorq %zmm10,%zmm4,%zmm26 + vpxorq %zmm6,%zmm0,%zmm24 + vpxorq %zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + vmovdqa64 896(%rsp),%zmm13 + vmovdqu64 128(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 960(%rsp),%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + + vpternlogq $0x96,%zmm10,%zmm4,%zmm26 + vpternlogq $0x96,%zmm6,%zmm0,%zmm24 + vpternlogq $0x96,%zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + + vpsrldq $8,%zmm26,%zmm0 + vpslldq $8,%zmm26,%zmm3 + vpxorq %zmm0,%zmm24,%zmm24 + vpxorq %zmm3,%zmm25,%zmm25 + vextracti64x4 $1,%zmm24,%ymm0 + vpxorq %ymm0,%ymm24,%ymm24 + vextracti32x4 $1,%ymm24,%xmm0 + vpxorq %xmm0,%xmm24,%xmm24 + vextracti64x4 $1,%zmm25,%ymm3 + vpxorq %ymm3,%ymm25,%ymm25 + vextracti32x4 $1,%ymm25,%xmm3 + vpxorq %xmm3,%xmm25,%xmm25 + vmovdqa64 POLY2(%rip),%xmm4 + + + vpclmulqdq $0x01,%xmm25,%xmm4,%xmm0 + vpslldq $8,%xmm0,%xmm0 + vpxorq %xmm0,%xmm25,%xmm0 + + + vpclmulqdq $0x00,%xmm0,%xmm4,%xmm3 + vpsrldq $4,%xmm3,%xmm3 + vpclmulqdq $0x10,%xmm0,%xmm4,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm24,%xmm3,%xmm14 + +L$_last_blocks_done_865: + vpshufb %xmm29,%xmm2,%xmm2 + jmp L$_ghash_done_821 +L$_encrypt_16_blocks_821: + cmpb $240,%r15b + jae L$_16_blocks_overflow_898 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp L$_16_blocks_ok_898 +L$_16_blocks_overflow_898: + vpshufb %zmm29,%zmm2,%zmm2 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +L$_16_blocks_ok_898: + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp),%zmm1 + + + + + vshufi64x2 $255,%zmm5,%zmm5,%zmm2 + addb $16,%r15b + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + + + + + + + + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm6 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm6 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + + + + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%zmm21 + + + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm15,%zmm10,%zmm26 + vpxorq %zmm12,%zmm6,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 192(%rdi),%zmm30 + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 208(%rdi),%zmm31 + + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 224(%rdi),%zmm30 + + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + + + + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + + + + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %zmm5,192(%r10,%r11,1) + vpshufb %zmm29,%zmm17,%zmm0 + vpshufb %zmm29,%zmm19,%zmm3 + vpshufb %zmm29,%zmm20,%zmm4 + vpshufb %zmm29,%zmm21,%zmm5 + vmovdqa64 %zmm0,1280(%rsp) + vmovdqa64 %zmm3,1344(%rsp) + vmovdqa64 %zmm4,1408(%rsp) + vmovdqa64 %zmm5,1472(%rsp) + vmovdqa64 1024(%rsp),%zmm13 + vmovdqu64 256(%rsp),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 1088(%rsp),%zmm13 + vmovdqu64 320(%rsp),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + vpternlogq $0x96,%zmm10,%zmm4,%zmm26 + vpternlogq $0x96,%zmm6,%zmm0,%zmm24 + vpternlogq $0x96,%zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + vmovdqa64 1152(%rsp),%zmm13 + vmovdqu64 384(%rsp),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 1216(%rsp),%zmm13 + vmovdqu64 448(%rsp),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + + vpternlogq $0x96,%zmm10,%zmm4,%zmm26 + vpternlogq $0x96,%zmm6,%zmm0,%zmm24 + vpternlogq $0x96,%zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + subq $256,%r8 + addq $256,%r11 + movl %r8d,%r10d + addl $15,%r10d + shrl $4,%r10d + je L$_last_num_blocks_is_0_899 + + cmpl $8,%r10d + je L$_last_num_blocks_is_8_899 + jb L$_last_num_blocks_is_7_1_899 + + + cmpl $12,%r10d + je L$_last_num_blocks_is_12_899 + jb L$_last_num_blocks_is_11_9_899 + + + cmpl $15,%r10d + je L$_last_num_blocks_is_15_899 + ja L$_last_num_blocks_is_16_899 + cmpl $14,%r10d + je L$_last_num_blocks_is_14_899 + jmp L$_last_num_blocks_is_13_899 + +L$_last_num_blocks_is_11_9_899: + + cmpl $10,%r10d + je L$_last_num_blocks_is_10_899 + ja L$_last_num_blocks_is_11_899 + jmp L$_last_num_blocks_is_9_899 + +L$_last_num_blocks_is_7_1_899: + cmpl $4,%r10d + je L$_last_num_blocks_is_4_899 + jb L$_last_num_blocks_is_3_1_899 + + cmpl $6,%r10d + ja L$_last_num_blocks_is_7_899 + je L$_last_num_blocks_is_6_899 + jmp L$_last_num_blocks_is_5_899 + +L$_last_num_blocks_is_3_1_899: + + cmpl $2,%r10d + ja L$_last_num_blocks_is_3_899 + je L$_last_num_blocks_is_2_899 +L$_last_num_blocks_is_1_899: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $255,%r15d + jae L$_16_blocks_overflow_900 + vpaddd %xmm28,%xmm2,%xmm0 + jmp L$_16_blocks_ok_900 + +L$_16_blocks_overflow_900: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %xmm29,%xmm0,%xmm0 +L$_16_blocks_ok_900: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $0,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%xmm17{%k1}{z} + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %xmm31,%xmm0,%xmm0 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vbroadcastf64x2 176(%rdi),%zmm31 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %xmm31,%xmm0,%xmm0 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %xmm30,%xmm0,%xmm0 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti32x4 $0,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %xmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm17,%zmm17{%k1}{z} + vpshufb %xmm29,%xmm17,%xmm17 + vextracti32x4 $0,%zmm17,%xmm7 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_901 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm17,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm17,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm17,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm17,%xmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_901 +L$_small_initial_partial_block_901: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + + + + + + + + + + + + vpxorq %xmm7,%xmm14,%xmm14 + + jmp L$_after_reduction_901 +L$_small_initial_compute_done_901: +L$_after_reduction_901: + jmp L$_last_blocks_done_899 +L$_last_num_blocks_is_2_899: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $254,%r15d + jae L$_16_blocks_overflow_902 + vpaddd %ymm28,%ymm2,%ymm0 + jmp L$_16_blocks_ok_902 + +L$_16_blocks_overflow_902: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %ymm29,%ymm0,%ymm0 +L$_16_blocks_ok_902: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $1,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%ymm17{%k1}{z} + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %ymm31,%ymm0,%ymm0 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vbroadcastf64x2 176(%rdi),%zmm31 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %ymm31,%ymm0,%ymm0 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %ymm30,%ymm0,%ymm0 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %ymm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm17,%zmm17{%k1}{z} + vpshufb %ymm29,%ymm17,%ymm17 + vextracti32x4 $1,%zmm17,%xmm7 + subq $16 * (2 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_903 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm17,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm17,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm17,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm17,%ymm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_903 +L$_small_initial_partial_block_903: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm17,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm17,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm17,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm17,%xmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_903: + + orq %r8,%r8 + je L$_after_reduction_903 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_903: + jmp L$_last_blocks_done_899 +L$_last_num_blocks_is_3_899: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $253,%r15d + jae L$_16_blocks_overflow_904 + vpaddd %zmm28,%zmm2,%zmm0 + jmp L$_16_blocks_ok_904 + +L$_16_blocks_overflow_904: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %zmm29,%zmm0,%zmm0 +L$_16_blocks_ok_904: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $2,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vbroadcastf64x2 176(%rdi),%zmm31 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vpxorq %zmm17,%zmm0,%zmm0 + vextracti32x4 $2,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm17,%zmm17{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vextracti32x4 $2,%zmm17,%xmm7 + subq $16 * (3 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_905 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_905 +L$_small_initial_partial_block_905: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm17,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm17,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm17,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm17,%ymm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_905: + + orq %r8,%r8 + je L$_after_reduction_905 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_905: + jmp L$_last_blocks_done_899 +L$_last_num_blocks_is_4_899: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $252,%r15d + jae L$_16_blocks_overflow_906 + vpaddd %zmm28,%zmm2,%zmm0 + jmp L$_16_blocks_ok_906 + +L$_16_blocks_overflow_906: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %zmm29,%zmm0,%zmm0 +L$_16_blocks_ok_906: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $3,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vbroadcastf64x2 176(%rdi),%zmm31 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vpxorq %zmm17,%zmm0,%zmm0 + vextracti32x4 $3,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm17,%zmm17{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vextracti32x4 $3,%zmm17,%xmm7 + subq $16 * (4 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_907 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_907 +L$_small_initial_partial_block_907: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_907: + + orq %r8,%r8 + je L$_after_reduction_907 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_907: + jmp L$_last_blocks_done_899 +L$_last_num_blocks_is_5_899: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $251,%r15d + jae L$_16_blocks_overflow_908 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %xmm27,%xmm0,%xmm3 + jmp L$_16_blocks_ok_908 + +L$_16_blocks_overflow_908: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %xmm29,%xmm3,%xmm3 +L$_16_blocks_ok_908: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $0,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%xmm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vbroadcastf64x2 176(%rdi),%zmm31 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %xmm30,%xmm3,%xmm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %xmm19,%xmm3,%xmm3 + vextracti32x4 $0,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %xmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm19,%zmm19{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %xmm29,%xmm19,%xmm19 + vextracti32x4 $0,%zmm19,%xmm7 + subq $16 * (5 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_909 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm19,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm19,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm19,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm19,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_909 +L$_small_initial_partial_block_909: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_909: + + orq %r8,%r8 + je L$_after_reduction_909 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_909: + jmp L$_last_blocks_done_899 +L$_last_num_blocks_is_6_899: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $250,%r15d + jae L$_16_blocks_overflow_910 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %ymm27,%ymm0,%ymm3 + jmp L$_16_blocks_ok_910 + +L$_16_blocks_overflow_910: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %ymm29,%ymm3,%ymm3 +L$_16_blocks_ok_910: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $1,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%ymm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vbroadcastf64x2 176(%rdi),%zmm31 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %ymm30,%ymm3,%ymm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %ymm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm19,%zmm19{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %ymm29,%ymm19,%ymm19 + vextracti32x4 $1,%zmm19,%xmm7 + subq $16 * (6 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_911 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm19,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm19,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm19,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm19,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_911 +L$_small_initial_partial_block_911: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm19,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm19,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm19,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm19,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_911: + + orq %r8,%r8 + je L$_after_reduction_911 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_911: + jmp L$_last_blocks_done_899 +L$_last_num_blocks_is_7_899: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $249,%r15d + jae L$_16_blocks_overflow_912 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + jmp L$_16_blocks_ok_912 + +L$_16_blocks_overflow_912: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 +L$_16_blocks_ok_912: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $2,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vbroadcastf64x2 176(%rdi),%zmm31 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti32x4 $2,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm19,%zmm19{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vextracti32x4 $2,%zmm19,%xmm7 + subq $16 * (7 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_913 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_913 +L$_small_initial_partial_block_913: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm19,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm19,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm19,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm19,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_913: + + orq %r8,%r8 + je L$_after_reduction_913 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_913: + jmp L$_last_blocks_done_899 +L$_last_num_blocks_is_8_899: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $248,%r15d + jae L$_16_blocks_overflow_914 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + jmp L$_16_blocks_ok_914 + +L$_16_blocks_overflow_914: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 +L$_16_blocks_ok_914: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $3,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vbroadcastf64x2 176(%rdi),%zmm31 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti32x4 $3,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm19,%zmm19{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vextracti32x4 $3,%zmm19,%xmm7 + subq $16 * (8 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_915 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_915 +L$_small_initial_partial_block_915: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_915: + + orq %r8,%r8 + je L$_after_reduction_915 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_915: + jmp L$_last_blocks_done_899 +L$_last_num_blocks_is_9_899: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $247,%r15d + jae L$_16_blocks_overflow_916 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %xmm27,%xmm3,%xmm4 + jmp L$_16_blocks_ok_916 + +L$_16_blocks_overflow_916: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %xmm29,%xmm4,%xmm4 +L$_16_blocks_ok_916: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $0,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%xmm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vbroadcastf64x2 176(%rdi),%zmm31 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %xmm30,%xmm4,%xmm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %xmm20,%xmm4,%xmm4 + vextracti32x4 $0,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %xmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm20,%zmm20{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %xmm29,%xmm20,%xmm20 + vextracti32x4 $0,%zmm20,%xmm7 + subq $16 * (9 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_917 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm20,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm20,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm20,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm20,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_917 +L$_small_initial_partial_block_917: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_917: + + orq %r8,%r8 + je L$_after_reduction_917 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_917: + jmp L$_last_blocks_done_899 +L$_last_num_blocks_is_10_899: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $246,%r15d + jae L$_16_blocks_overflow_918 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %ymm27,%ymm3,%ymm4 + jmp L$_16_blocks_ok_918 + +L$_16_blocks_overflow_918: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %ymm29,%ymm4,%ymm4 +L$_16_blocks_ok_918: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $1,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%ymm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vbroadcastf64x2 176(%rdi),%zmm31 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %ymm30,%ymm4,%ymm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %ymm20,%ymm4,%ymm4 + vextracti32x4 $1,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %ymm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm20,%zmm20{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %ymm29,%ymm20,%ymm20 + vextracti32x4 $1,%zmm20,%xmm7 + subq $16 * (10 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_919 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm20,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm20,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm20,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm20,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_919 +L$_small_initial_partial_block_919: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm20,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm20,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm20,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm20,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_919: + + orq %r8,%r8 + je L$_after_reduction_919 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_919: + jmp L$_last_blocks_done_899 +L$_last_num_blocks_is_11_899: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $245,%r15d + jae L$_16_blocks_overflow_920 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + jmp L$_16_blocks_ok_920 + +L$_16_blocks_overflow_920: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 +L$_16_blocks_ok_920: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $2,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vbroadcastf64x2 176(%rdi),%zmm31 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vextracti32x4 $2,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm20,%zmm20{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %zmm29,%zmm20,%zmm20 + vextracti32x4 $2,%zmm20,%xmm7 + subq $16 * (11 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_921 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_921 +L$_small_initial_partial_block_921: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm20,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm20,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm20,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm20,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_921: + + orq %r8,%r8 + je L$_after_reduction_921 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_921: + jmp L$_last_blocks_done_899 +L$_last_num_blocks_is_12_899: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $244,%r15d + jae L$_16_blocks_overflow_922 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + jmp L$_16_blocks_ok_922 + +L$_16_blocks_overflow_922: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 +L$_16_blocks_ok_922: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $3,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vbroadcastf64x2 176(%rdi),%zmm31 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vextracti32x4 $3,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm20,%zmm20{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %zmm29,%zmm20,%zmm20 + vextracti32x4 $3,%zmm20,%xmm7 + subq $16 * (12 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_923 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 160(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_923 +L$_small_initial_partial_block_923: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_923: + + orq %r8,%r8 + je L$_after_reduction_923 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_923: + jmp L$_last_blocks_done_899 +L$_last_num_blocks_is_13_899: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $243,%r15d + jae L$_16_blocks_overflow_924 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %xmm27,%xmm4,%xmm5 + jmp L$_16_blocks_ok_924 + +L$_16_blocks_overflow_924: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %xmm29,%xmm5,%xmm5 +L$_16_blocks_ok_924: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $0,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%xmm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vbroadcastf64x2 176(%rdi),%zmm31 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %xmm30,%xmm5,%xmm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %xmm21,%xmm5,%xmm5 + vextracti32x4 $0,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %xmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm21,%zmm21{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %zmm29,%zmm20,%zmm20 + vpshufb %xmm29,%xmm21,%xmm21 + vextracti32x4 $0,%zmm21,%xmm7 + subq $16 * (13 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_925 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 144(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm21,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm21,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm21,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm21,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_925 +L$_small_initial_partial_block_925: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 160(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_925: + + orq %r8,%r8 + je L$_after_reduction_925 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_925: + jmp L$_last_blocks_done_899 +L$_last_num_blocks_is_14_899: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $242,%r15d + jae L$_16_blocks_overflow_926 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %ymm27,%ymm4,%ymm5 + jmp L$_16_blocks_ok_926 + +L$_16_blocks_overflow_926: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %ymm29,%ymm5,%ymm5 +L$_16_blocks_ok_926: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $1,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%ymm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vbroadcastf64x2 176(%rdi),%zmm31 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %ymm30,%ymm5,%ymm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %ymm21,%ymm5,%ymm5 + vextracti32x4 $1,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %ymm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm21,%zmm21{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %zmm29,%zmm20,%zmm20 + vpshufb %ymm29,%ymm21,%ymm21 + vextracti32x4 $1,%zmm21,%xmm7 + subq $16 * (14 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_927 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 128(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm21,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm21,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm21,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm21,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_927 +L$_small_initial_partial_block_927: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 144(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm21,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm21,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm21,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm21,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_927: + + orq %r8,%r8 + je L$_after_reduction_927 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_927: + jmp L$_last_blocks_done_899 +L$_last_num_blocks_is_15_899: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $241,%r15d + jae L$_16_blocks_overflow_928 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp L$_16_blocks_ok_928 + +L$_16_blocks_overflow_928: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +L$_16_blocks_ok_928: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $2,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%zmm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vbroadcastf64x2 176(%rdi),%zmm31 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + vextracti32x4 $2,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %zmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm21,%zmm21{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %zmm29,%zmm20,%zmm20 + vpshufb %zmm29,%zmm21,%zmm21 + vextracti32x4 $2,%zmm21,%xmm7 + subq $16 * (15 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_929 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 112(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm21,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm21,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm21,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm21,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_929 +L$_small_initial_partial_block_929: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 128(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm21,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm21,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm21,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm21,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_929: + + orq %r8,%r8 + je L$_after_reduction_929 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_929: + jmp L$_last_blocks_done_899 +L$_last_num_blocks_is_16_899: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $240,%r15d + jae L$_16_blocks_overflow_930 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp L$_16_blocks_ok_930 + +L$_16_blocks_overflow_930: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +L$_16_blocks_ok_930: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vmovdqa64 1280(%rsp),%zmm8 + vmovdqu64 512(%rsp),%zmm1 + vextracti32x4 $3,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 576(%rsp),%zmm18 + vmovdqa64 1344(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 640(%rsp),%zmm1 + vmovdqa64 1408(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 704(%rsp),%zmm18 + vmovdqa64 1472(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%zmm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpternlogq $0x96,%zmm12,%zmm24,%zmm14 + vpternlogq $0x96,%zmm13,%zmm25,%zmm7 + vpternlogq $0x96,%zmm15,%zmm26,%zmm10 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vpsrldq $8,%zmm10,%zmm15 + vpslldq $8,%zmm10,%zmm10 + + vmovdqa64 POLY2(%rip),%xmm16 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vpxorq %zmm15,%zmm14,%zmm14 + vpxorq %zmm10,%zmm7,%zmm7 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vextracti64x4 $1,%zmm14,%ymm12 + vpxorq %ymm12,%ymm14,%ymm14 + vextracti32x4 $1,%ymm14,%xmm12 + vpxorq %xmm12,%xmm14,%xmm14 + vextracti64x4 $1,%zmm7,%ymm13 + vpxorq %ymm13,%ymm7,%ymm7 + vextracti32x4 $1,%ymm7,%xmm13 + vpxorq %xmm13,%xmm7,%xmm7 + vbroadcastf64x2 176(%rdi),%zmm31 + vpclmulqdq $0x01,%xmm7,%xmm16,%xmm13 + vpslldq $8,%xmm13,%xmm13 + vpxorq %xmm13,%xmm7,%xmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vpclmulqdq $0x00,%xmm13,%xmm16,%xmm12 + vpsrldq $4,%xmm12,%xmm12 + vpclmulqdq $0x10,%xmm13,%xmm16,%xmm15 + vpslldq $4,%xmm15,%xmm15 + + vpternlogq $0x96,%xmm12,%xmm15,%xmm14 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + vextracti32x4 $3,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %zmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm21,%zmm21{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %zmm29,%zmm20,%zmm20 + vpshufb %zmm29,%zmm21,%zmm21 + vextracti32x4 $3,%zmm21,%xmm7 + subq $16 * (16 - 1),%r8 +L$_small_initial_partial_block_931: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vpxorq %zmm14,%zmm17,%zmm17 + vmovdqu64 112(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm21,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm21,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm21,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm21,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm31,%zmm5,%zmm5 + vpxorq %zmm8,%zmm0,%zmm0 + vpxorq %zmm22,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_931: + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_931: + jmp L$_last_blocks_done_899 +L$_last_num_blocks_is_0_899: + vmovdqa64 1280(%rsp),%zmm13 + vmovdqu64 512(%rsp),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 1344(%rsp),%zmm13 + vmovdqu64 576(%rsp),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + vpternlogq $0x96,%zmm10,%zmm4,%zmm26 + vpternlogq $0x96,%zmm6,%zmm0,%zmm24 + vpternlogq $0x96,%zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + vmovdqa64 1408(%rsp),%zmm13 + vmovdqu64 640(%rsp),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 1472(%rsp),%zmm13 + vmovdqu64 704(%rsp),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + + vpternlogq $0x96,%zmm10,%zmm4,%zmm26 + vpternlogq $0x96,%zmm6,%zmm0,%zmm24 + vpternlogq $0x96,%zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + + vpsrldq $8,%zmm26,%zmm0 + vpslldq $8,%zmm26,%zmm3 + vpxorq %zmm0,%zmm24,%zmm24 + vpxorq %zmm3,%zmm25,%zmm25 + vextracti64x4 $1,%zmm24,%ymm0 + vpxorq %ymm0,%ymm24,%ymm24 + vextracti32x4 $1,%ymm24,%xmm0 + vpxorq %xmm0,%xmm24,%xmm24 + vextracti64x4 $1,%zmm25,%ymm3 + vpxorq %ymm3,%ymm25,%ymm25 + vextracti32x4 $1,%ymm25,%xmm3 + vpxorq %xmm3,%xmm25,%xmm25 + vmovdqa64 POLY2(%rip),%xmm4 + + + vpclmulqdq $0x01,%xmm25,%xmm4,%xmm0 + vpslldq $8,%xmm0,%xmm0 + vpxorq %xmm0,%xmm25,%xmm0 + + + vpclmulqdq $0x00,%xmm0,%xmm4,%xmm3 + vpsrldq $4,%xmm3,%xmm3 + vpclmulqdq $0x10,%xmm0,%xmm4,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm24,%xmm3,%xmm14 + +L$_last_blocks_done_899: + vpshufb %xmm29,%xmm2,%xmm2 + jmp L$_ghash_done_821 + +L$_message_below_32_blocks_821: + + + subq $256,%r8 + addq $256,%r11 + movl %r8d,%r10d + testq %r14,%r14 + jnz L$_skip_hkeys_precomputation_932 + vmovdqu64 640(%rsp),%zmm3 + + + vshufi64x2 $0x00,%zmm3,%zmm3,%zmm3 + + vmovdqu64 576(%rsp),%zmm4 + vmovdqu64 512(%rsp),%zmm5 + + vpclmulqdq $0x11,%zmm3,%zmm4,%zmm6 + vpclmulqdq $0x00,%zmm3,%zmm4,%zmm7 + vpclmulqdq $0x01,%zmm3,%zmm4,%zmm10 + vpclmulqdq $0x10,%zmm3,%zmm4,%zmm4 + vpxorq %zmm10,%zmm4,%zmm4 + + vpsrldq $8,%zmm4,%zmm10 + vpslldq $8,%zmm4,%zmm4 + vpxorq %zmm10,%zmm6,%zmm6 + vpxorq %zmm7,%zmm4,%zmm4 + + + + vmovdqu64 POLY2(%rip),%zmm10 + + vpclmulqdq $0x01,%zmm4,%zmm10,%zmm7 + vpslldq $8,%zmm7,%zmm7 + vpxorq %zmm7,%zmm4,%zmm4 + + + + vpclmulqdq $0x00,%zmm4,%zmm10,%zmm7 + vpsrldq $4,%zmm7,%zmm7 + vpclmulqdq $0x10,%zmm4,%zmm10,%zmm4 + vpslldq $4,%zmm4,%zmm4 + + vpternlogq $0x96,%zmm7,%zmm6,%zmm4 + + vmovdqu64 %zmm4,448(%rsp) + + vpclmulqdq $0x11,%zmm3,%zmm5,%zmm6 + vpclmulqdq $0x00,%zmm3,%zmm5,%zmm7 + vpclmulqdq $0x01,%zmm3,%zmm5,%zmm10 + vpclmulqdq $0x10,%zmm3,%zmm5,%zmm5 + vpxorq %zmm10,%zmm5,%zmm5 + + vpsrldq $8,%zmm5,%zmm10 + vpslldq $8,%zmm5,%zmm5 + vpxorq %zmm10,%zmm6,%zmm6 + vpxorq %zmm7,%zmm5,%zmm5 + + + + vmovdqu64 POLY2(%rip),%zmm10 + + vpclmulqdq $0x01,%zmm5,%zmm10,%zmm7 + vpslldq $8,%zmm7,%zmm7 + vpxorq %zmm7,%zmm5,%zmm5 + + + + vpclmulqdq $0x00,%zmm5,%zmm10,%zmm7 + vpsrldq $4,%zmm7,%zmm7 + vpclmulqdq $0x10,%zmm5,%zmm10,%zmm5 + vpslldq $4,%zmm5,%zmm5 + + vpternlogq $0x96,%zmm7,%zmm6,%zmm5 + + vmovdqu64 %zmm5,384(%rsp) + + vpclmulqdq $0x11,%zmm3,%zmm4,%zmm6 + vpclmulqdq $0x00,%zmm3,%zmm4,%zmm7 + vpclmulqdq $0x01,%zmm3,%zmm4,%zmm10 + vpclmulqdq $0x10,%zmm3,%zmm4,%zmm4 + vpxorq %zmm10,%zmm4,%zmm4 + + vpsrldq $8,%zmm4,%zmm10 + vpslldq $8,%zmm4,%zmm4 + vpxorq %zmm10,%zmm6,%zmm6 + vpxorq %zmm7,%zmm4,%zmm4 + + + + vmovdqu64 POLY2(%rip),%zmm10 + + vpclmulqdq $0x01,%zmm4,%zmm10,%zmm7 + vpslldq $8,%zmm7,%zmm7 + vpxorq %zmm7,%zmm4,%zmm4 + + + + vpclmulqdq $0x00,%zmm4,%zmm10,%zmm7 + vpsrldq $4,%zmm7,%zmm7 + vpclmulqdq $0x10,%zmm4,%zmm10,%zmm4 + vpslldq $4,%zmm4,%zmm4 + + vpternlogq $0x96,%zmm7,%zmm6,%zmm4 + + vmovdqu64 %zmm4,320(%rsp) + + vpclmulqdq $0x11,%zmm3,%zmm5,%zmm6 + vpclmulqdq $0x00,%zmm3,%zmm5,%zmm7 + vpclmulqdq $0x01,%zmm3,%zmm5,%zmm10 + vpclmulqdq $0x10,%zmm3,%zmm5,%zmm5 + vpxorq %zmm10,%zmm5,%zmm5 + + vpsrldq $8,%zmm5,%zmm10 + vpslldq $8,%zmm5,%zmm5 + vpxorq %zmm10,%zmm6,%zmm6 + vpxorq %zmm7,%zmm5,%zmm5 + + + + vmovdqu64 POLY2(%rip),%zmm10 + + vpclmulqdq $0x01,%zmm5,%zmm10,%zmm7 + vpslldq $8,%zmm7,%zmm7 + vpxorq %zmm7,%zmm5,%zmm5 + + + + vpclmulqdq $0x00,%zmm5,%zmm10,%zmm7 + vpsrldq $4,%zmm7,%zmm7 + vpclmulqdq $0x10,%zmm5,%zmm10,%zmm5 + vpslldq $4,%zmm5,%zmm5 + + vpternlogq $0x96,%zmm7,%zmm6,%zmm5 + + vmovdqu64 %zmm5,256(%rsp) +L$_skip_hkeys_precomputation_932: + movq $1,%r14 + andl $~15,%r10d + movl $512,%ebx + subl %r10d,%ebx + movl %r8d,%r10d + addl $15,%r10d + shrl $4,%r10d + je L$_last_num_blocks_is_0_933 + + cmpl $8,%r10d + je L$_last_num_blocks_is_8_933 + jb L$_last_num_blocks_is_7_1_933 + + + cmpl $12,%r10d + je L$_last_num_blocks_is_12_933 + jb L$_last_num_blocks_is_11_9_933 + + + cmpl $15,%r10d + je L$_last_num_blocks_is_15_933 + ja L$_last_num_blocks_is_16_933 + cmpl $14,%r10d + je L$_last_num_blocks_is_14_933 + jmp L$_last_num_blocks_is_13_933 + +L$_last_num_blocks_is_11_9_933: + + cmpl $10,%r10d + je L$_last_num_blocks_is_10_933 + ja L$_last_num_blocks_is_11_933 + jmp L$_last_num_blocks_is_9_933 + +L$_last_num_blocks_is_7_1_933: + cmpl $4,%r10d + je L$_last_num_blocks_is_4_933 + jb L$_last_num_blocks_is_3_1_933 + + cmpl $6,%r10d + ja L$_last_num_blocks_is_7_933 + je L$_last_num_blocks_is_6_933 + jmp L$_last_num_blocks_is_5_933 + +L$_last_num_blocks_is_3_1_933: + + cmpl $2,%r10d + ja L$_last_num_blocks_is_3_933 + je L$_last_num_blocks_is_2_933 +L$_last_num_blocks_is_1_933: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $255,%r15d + jae L$_16_blocks_overflow_934 + vpaddd %xmm28,%xmm2,%xmm0 + jmp L$_16_blocks_ok_934 + +L$_16_blocks_overflow_934: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %xmm29,%xmm0,%xmm0 +L$_16_blocks_ok_934: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $0,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%xmm17{%k1}{z} + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %xmm31,%xmm0,%xmm0 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %xmm30,%xmm0,%xmm0 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %xmm31,%xmm0,%xmm0 + vaesenclast %xmm30,%xmm0,%xmm0 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti32x4 $0,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %xmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm17,%zmm17{%k1}{z} + vpshufb %xmm29,%xmm17,%xmm17 + vextracti32x4 $0,%zmm17,%xmm7 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_935 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm17,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm17,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm17,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm17,%xmm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_935 +L$_small_initial_partial_block_935: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + + + vpsrldq $8,%zmm26,%zmm0 + vpslldq $8,%zmm26,%zmm3 + vpxorq %zmm0,%zmm24,%zmm24 + vpxorq %zmm3,%zmm25,%zmm25 + vextracti64x4 $1,%zmm24,%ymm0 + vpxorq %ymm0,%ymm24,%ymm24 + vextracti32x4 $1,%ymm24,%xmm0 + vpxorq %xmm0,%xmm24,%xmm24 + vextracti64x4 $1,%zmm25,%ymm3 + vpxorq %ymm3,%ymm25,%ymm25 + vextracti32x4 $1,%ymm25,%xmm3 + vpxorq %xmm3,%xmm25,%xmm25 + vmovdqa64 POLY2(%rip),%xmm0 + + + vpclmulqdq $0x01,%xmm25,%xmm0,%xmm3 + vpslldq $8,%xmm3,%xmm3 + vpxorq %xmm3,%xmm25,%xmm3 + + + vpclmulqdq $0x00,%xmm3,%xmm0,%xmm4 + vpsrldq $4,%xmm4,%xmm4 + vpclmulqdq $0x10,%xmm3,%xmm0,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm24,%xmm4,%xmm14 + + + + + + + + + + + + + vpxorq %xmm7,%xmm14,%xmm14 + + jmp L$_after_reduction_935 +L$_small_initial_compute_done_935: +L$_after_reduction_935: + jmp L$_last_blocks_done_933 +L$_last_num_blocks_is_2_933: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $254,%r15d + jae L$_16_blocks_overflow_936 + vpaddd %ymm28,%ymm2,%ymm0 + jmp L$_16_blocks_ok_936 + +L$_16_blocks_overflow_936: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %ymm29,%ymm0,%ymm0 +L$_16_blocks_ok_936: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $1,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%ymm17{%k1}{z} + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %ymm31,%ymm0,%ymm0 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %ymm30,%ymm0,%ymm0 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %ymm31,%ymm0,%ymm0 + vaesenclast %ymm30,%ymm0,%ymm0 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %ymm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm17,%zmm17{%k1}{z} + vpshufb %ymm29,%ymm17,%ymm17 + vextracti32x4 $1,%zmm17,%xmm7 + subq $16 * (2 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_937 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm17,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm17,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm17,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm17,%ymm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_937 +L$_small_initial_partial_block_937: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm17,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm17,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm17,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm17,%xmm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_937: + + orq %r8,%r8 + je L$_after_reduction_937 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_937: + jmp L$_last_blocks_done_933 +L$_last_num_blocks_is_3_933: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $253,%r15d + jae L$_16_blocks_overflow_938 + vpaddd %zmm28,%zmm2,%zmm0 + jmp L$_16_blocks_ok_938 + +L$_16_blocks_overflow_938: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %zmm29,%zmm0,%zmm0 +L$_16_blocks_ok_938: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $2,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm0,%zmm0 + vpxorq %zmm17,%zmm0,%zmm0 + vextracti32x4 $2,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm17,%zmm17{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vextracti32x4 $2,%zmm17,%xmm7 + subq $16 * (3 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_939 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_939 +L$_small_initial_partial_block_939: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm17,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm17,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm17,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm17,%ymm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_939: + + orq %r8,%r8 + je L$_after_reduction_939 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_939: + jmp L$_last_blocks_done_933 +L$_last_num_blocks_is_4_933: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $252,%r15d + jae L$_16_blocks_overflow_940 + vpaddd %zmm28,%zmm2,%zmm0 + jmp L$_16_blocks_ok_940 + +L$_16_blocks_overflow_940: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpshufb %zmm29,%zmm0,%zmm0 +L$_16_blocks_ok_940: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $3,%zmm0,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm0,%zmm0 + vpxorq %zmm17,%zmm0,%zmm0 + vextracti32x4 $3,%zmm0,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm17,%zmm17{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vextracti32x4 $3,%zmm17,%xmm7 + subq $16 * (4 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_941 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_941 +L$_small_initial_partial_block_941: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpxorq %zmm26,%zmm4,%zmm4 + vpxorq %zmm24,%zmm0,%zmm0 + vpxorq %zmm25,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_941: + + orq %r8,%r8 + je L$_after_reduction_941 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_941: + jmp L$_last_blocks_done_933 +L$_last_num_blocks_is_5_933: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $251,%r15d + jae L$_16_blocks_overflow_942 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %xmm27,%xmm0,%xmm3 + jmp L$_16_blocks_ok_942 + +L$_16_blocks_overflow_942: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %xmm29,%xmm3,%xmm3 +L$_16_blocks_ok_942: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $0,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%xmm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %xmm30,%xmm3,%xmm3 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %xmm31,%xmm3,%xmm3 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %xmm30,%xmm3,%xmm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %xmm19,%xmm3,%xmm3 + vextracti32x4 $0,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %xmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm19,%zmm19{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %xmm29,%xmm19,%xmm19 + vextracti32x4 $0,%zmm19,%xmm7 + subq $16 * (5 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_943 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm19,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm19,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm19,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm19,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_943 +L$_small_initial_partial_block_943: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_943: + + orq %r8,%r8 + je L$_after_reduction_943 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_943: + jmp L$_last_blocks_done_933 +L$_last_num_blocks_is_6_933: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $250,%r15d + jae L$_16_blocks_overflow_944 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %ymm27,%ymm0,%ymm3 + jmp L$_16_blocks_ok_944 + +L$_16_blocks_overflow_944: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %ymm29,%ymm3,%ymm3 +L$_16_blocks_ok_944: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $1,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%ymm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %ymm30,%ymm3,%ymm3 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %ymm31,%ymm3,%ymm3 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %ymm30,%ymm3,%ymm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %ymm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm19,%zmm19{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %ymm29,%ymm19,%ymm19 + vextracti32x4 $1,%zmm19,%xmm7 + subq $16 * (6 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_945 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm19,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm19,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm19,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm19,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_945 +L$_small_initial_partial_block_945: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm19,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm19,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm19,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm19,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_945: + + orq %r8,%r8 + je L$_after_reduction_945 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_945: + jmp L$_last_blocks_done_933 +L$_last_num_blocks_is_7_933: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $249,%r15d + jae L$_16_blocks_overflow_946 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + jmp L$_16_blocks_ok_946 + +L$_16_blocks_overflow_946: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 +L$_16_blocks_ok_946: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $2,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti32x4 $2,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm19,%zmm19{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vextracti32x4 $2,%zmm19,%xmm7 + subq $16 * (7 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_947 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_947 +L$_small_initial_partial_block_947: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm19,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm19,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm19,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm19,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_947: + + orq %r8,%r8 + je L$_after_reduction_947 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_947: + jmp L$_last_blocks_done_933 +L$_last_num_blocks_is_8_933: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $64,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $248,%r15d + jae L$_16_blocks_overflow_948 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + jmp L$_16_blocks_ok_948 + +L$_16_blocks_overflow_948: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 +L$_16_blocks_ok_948: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $3,%zmm3,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti32x4 $3,%zmm3,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm19,%zmm19{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vextracti32x4 $3,%zmm19,%xmm7 + subq $16 * (8 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_949 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_949 +L$_small_initial_partial_block_949: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_949: + + orq %r8,%r8 + je L$_after_reduction_949 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_949: + jmp L$_last_blocks_done_933 +L$_last_num_blocks_is_9_933: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $247,%r15d + jae L$_16_blocks_overflow_950 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %xmm27,%xmm3,%xmm4 + jmp L$_16_blocks_ok_950 + +L$_16_blocks_overflow_950: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %xmm29,%xmm4,%xmm4 +L$_16_blocks_ok_950: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $0,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%xmm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %xmm30,%xmm4,%xmm4 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %xmm31,%xmm4,%xmm4 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %xmm30,%xmm4,%xmm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %xmm20,%xmm4,%xmm4 + vextracti32x4 $0,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %xmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm20,%zmm20{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %xmm29,%xmm20,%xmm20 + vextracti32x4 $0,%zmm20,%xmm7 + subq $16 * (9 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_951 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm20,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm20,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm20,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm20,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_951 +L$_small_initial_partial_block_951: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_951: + + orq %r8,%r8 + je L$_after_reduction_951 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_951: + jmp L$_last_blocks_done_933 +L$_last_num_blocks_is_10_933: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $246,%r15d + jae L$_16_blocks_overflow_952 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %ymm27,%ymm3,%ymm4 + jmp L$_16_blocks_ok_952 + +L$_16_blocks_overflow_952: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %ymm29,%ymm4,%ymm4 +L$_16_blocks_ok_952: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $1,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%ymm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %ymm30,%ymm4,%ymm4 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %ymm31,%ymm4,%ymm4 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %ymm30,%ymm4,%ymm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %ymm20,%ymm4,%ymm4 + vextracti32x4 $1,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %ymm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm20,%zmm20{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %ymm29,%ymm20,%ymm20 + vextracti32x4 $1,%zmm20,%xmm7 + subq $16 * (10 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_953 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm20,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm20,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm20,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm20,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_953 +L$_small_initial_partial_block_953: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm20,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm20,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm20,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm20,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_953: + + orq %r8,%r8 + je L$_after_reduction_953 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_953: + jmp L$_last_blocks_done_933 +L$_last_num_blocks_is_11_933: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $245,%r15d + jae L$_16_blocks_overflow_954 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + jmp L$_16_blocks_ok_954 + +L$_16_blocks_overflow_954: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 +L$_16_blocks_ok_954: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $2,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vextracti32x4 $2,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm20,%zmm20{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %zmm29,%zmm20,%zmm20 + vextracti32x4 $2,%zmm20,%xmm7 + subq $16 * (11 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_955 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_955 +L$_small_initial_partial_block_955: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm20,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm20,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm20,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm20,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_955: + + orq %r8,%r8 + je L$_after_reduction_955 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_955: + jmp L$_last_blocks_done_933 +L$_last_num_blocks_is_12_933: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $128,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $244,%r15d + jae L$_16_blocks_overflow_956 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + jmp L$_16_blocks_ok_956 + +L$_16_blocks_overflow_956: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 +L$_16_blocks_ok_956: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $3,%zmm4,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vextracti32x4 $3,%zmm4,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm20,%zmm20{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %zmm29,%zmm20,%zmm20 + vextracti32x4 $3,%zmm20,%xmm7 + subq $16 * (12 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_957 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 160(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_957 +L$_small_initial_partial_block_957: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vpxorq %zmm8,%zmm0,%zmm8 + vpxorq %zmm22,%zmm3,%zmm22 + vpxorq %zmm30,%zmm4,%zmm30 + vpxorq %zmm31,%zmm5,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_957: + + orq %r8,%r8 + je L$_after_reduction_957 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_957: + jmp L$_last_blocks_done_933 +L$_last_num_blocks_is_13_933: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $243,%r15d + jae L$_16_blocks_overflow_958 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %xmm27,%xmm4,%xmm5 + jmp L$_16_blocks_ok_958 + +L$_16_blocks_overflow_958: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %xmm29,%xmm5,%xmm5 +L$_16_blocks_ok_958: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $0,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%xmm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %xmm30,%xmm5,%xmm5 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %xmm31,%xmm5,%xmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %xmm30,%xmm5,%xmm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %xmm21,%xmm5,%xmm5 + vextracti32x4 $0,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %xmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm21,%zmm21{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %zmm29,%zmm20,%zmm20 + vpshufb %xmm29,%xmm21,%xmm21 + vextracti32x4 $0,%zmm21,%xmm7 + subq $16 * (13 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_959 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 144(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm21,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm21,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm21,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm21,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_959 +L$_small_initial_partial_block_959: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 160(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 224(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 288(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + + vpxorq %zmm26,%zmm30,%zmm30 + vpxorq %zmm24,%zmm8,%zmm8 + vpxorq %zmm25,%zmm22,%zmm22 + + vpxorq %zmm31,%zmm30,%zmm30 + vpsrldq $8,%zmm30,%zmm4 + vpslldq $8,%zmm30,%zmm5 + vpxorq %zmm4,%zmm8,%zmm0 + vpxorq %zmm5,%zmm22,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_959: + + orq %r8,%r8 + je L$_after_reduction_959 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_959: + jmp L$_last_blocks_done_933 +L$_last_num_blocks_is_14_933: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $242,%r15d + jae L$_16_blocks_overflow_960 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %ymm27,%ymm4,%ymm5 + jmp L$_16_blocks_ok_960 + +L$_16_blocks_overflow_960: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %ymm29,%ymm5,%ymm5 +L$_16_blocks_ok_960: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $1,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%ymm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %ymm30,%ymm5,%ymm5 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %ymm31,%ymm5,%ymm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %ymm30,%ymm5,%ymm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %ymm21,%ymm5,%ymm5 + vextracti32x4 $1,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %ymm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm21,%zmm21{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %zmm29,%zmm20,%zmm20 + vpshufb %ymm29,%ymm21,%ymm21 + vextracti32x4 $1,%zmm21,%xmm7 + subq $16 * (14 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_961 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 128(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm21,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm21,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm21,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm21,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_961 +L$_small_initial_partial_block_961: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 144(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 208(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 272(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 336(%rsi),%xmm1 + vpclmulqdq $0x01,%xmm1,%xmm21,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm21,%xmm5 + vpclmulqdq $0x11,%xmm1,%xmm21,%xmm0 + vpclmulqdq $0x00,%xmm1,%xmm21,%xmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_961: + + orq %r8,%r8 + je L$_after_reduction_961 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_961: + jmp L$_last_blocks_done_933 +L$_last_num_blocks_is_15_933: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $241,%r15d + jae L$_16_blocks_overflow_962 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp L$_16_blocks_ok_962 + +L$_16_blocks_overflow_962: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +L$_16_blocks_ok_962: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $2,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%zmm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + vextracti32x4 $2,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %zmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm21,%zmm21{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %zmm29,%zmm20,%zmm20 + vpshufb %zmm29,%zmm21,%zmm21 + vextracti32x4 $2,%zmm21,%xmm7 + subq $16 * (15 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_963 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vmovdqu64 112(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm21,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm21,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm21,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm21,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_963 +L$_small_initial_partial_block_963: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 128(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 192(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 256(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 320(%rsi),%ymm1 + vpclmulqdq $0x01,%ymm1,%ymm21,%ymm4 + vpclmulqdq $0x10,%ymm1,%ymm21,%ymm5 + vpclmulqdq $0x11,%ymm1,%ymm21,%ymm0 + vpclmulqdq $0x00,%ymm1,%ymm21,%ymm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_963: + + orq %r8,%r8 + je L$_after_reduction_963 + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_963: + jmp L$_last_blocks_done_933 +L$_last_num_blocks_is_16_933: + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%rax + subq $192,%rax + kmovq (%r10,%rax,8),%k1 + cmpl $240,%r15d + jae L$_16_blocks_overflow_964 + vpaddd %zmm28,%zmm2,%zmm0 + vpaddd %zmm27,%zmm0,%zmm3 + vpaddd %zmm27,%zmm3,%zmm4 + vpaddd %zmm27,%zmm4,%zmm5 + jmp L$_16_blocks_ok_964 + +L$_16_blocks_overflow_964: + vpshufb %zmm29,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vmovdqa64 ddq_add_4444(%rip),%zmm5 + vpaddd %zmm5,%zmm0,%zmm3 + vpaddd %zmm5,%zmm3,%zmm4 + vpaddd %zmm5,%zmm4,%zmm5 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 +L$_16_blocks_ok_964: + + + + + vbroadcastf64x2 0(%rdi),%zmm30 + vpxorq 768(%rsp),%zmm14,%zmm8 + vmovdqu64 0(%rsp,%rbx,1),%zmm1 + vextracti32x4 $3,%zmm5,%xmm2 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + + + vbroadcastf64x2 16(%rdi),%zmm31 + vmovdqu64 64(%rsp,%rbx,1),%zmm18 + vmovdqa64 832(%rsp),%zmm22 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm30,%zmm3,%zmm3 + vpxorq %zmm30,%zmm4,%zmm4 + vpxorq %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm30 + + + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm14 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm7 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm10 + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm11 + vmovdqu64 128(%rsp,%rbx,1),%zmm1 + vmovdqa64 896(%rsp),%zmm8 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm18 + vmovdqa64 960(%rsp),%zmm22 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm30 + + + vpclmulqdq $0x10,%zmm1,%zmm8,%zmm20 + vpclmulqdq $0x01,%zmm1,%zmm8,%zmm21 + vpclmulqdq $0x11,%zmm1,%zmm8,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm8,%zmm19 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm31 + + + vpternlogq $0x96,%zmm17,%zmm12,%zmm14 + vpternlogq $0x96,%zmm19,%zmm13,%zmm7 + vpternlogq $0x96,%zmm21,%zmm16,%zmm11 + vpternlogq $0x96,%zmm20,%zmm15,%zmm10 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm30 + vmovdqu8 0(%rcx,%r11,1),%zmm17 + vmovdqu8 64(%rcx,%r11,1),%zmm19 + vmovdqu8 128(%rcx,%r11,1),%zmm20 + vmovdqu8 192(%rcx,%r11,1),%zmm21{%k1}{z} + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm31 + + + vpclmulqdq $0x10,%zmm18,%zmm22,%zmm15 + vpclmulqdq $0x01,%zmm18,%zmm22,%zmm16 + vpclmulqdq $0x11,%zmm18,%zmm22,%zmm12 + vpclmulqdq $0x00,%zmm18,%zmm22,%zmm13 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm30 + vpternlogq $0x96,%zmm16,%zmm11,%zmm10 + vpxorq %zmm12,%zmm14,%zmm24 + vpxorq %zmm13,%zmm7,%zmm25 + vpxorq %zmm15,%zmm10,%zmm26 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 176(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 192(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vbroadcastf64x2 208(%rdi),%zmm31 + vaesenc %zmm30,%zmm0,%zmm0 + vaesenc %zmm30,%zmm3,%zmm3 + vaesenc %zmm30,%zmm4,%zmm4 + vaesenc %zmm30,%zmm5,%zmm5 + vbroadcastf64x2 224(%rdi),%zmm30 + vaesenc %zmm31,%zmm0,%zmm0 + vaesenc %zmm31,%zmm3,%zmm3 + vaesenc %zmm31,%zmm4,%zmm4 + vaesenc %zmm31,%zmm5,%zmm5 + vaesenclast %zmm30,%zmm0,%zmm0 + vaesenclast %zmm30,%zmm3,%zmm3 + vaesenclast %zmm30,%zmm4,%zmm4 + vaesenclast %zmm30,%zmm5,%zmm5 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vpxorq %zmm20,%zmm4,%zmm4 + vpxorq %zmm21,%zmm5,%zmm5 + vextracti32x4 $3,%zmm5,%xmm11 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %zmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm21,%zmm21{%k1}{z} + vpshufb %zmm29,%zmm17,%zmm17 + vpshufb %zmm29,%zmm19,%zmm19 + vpshufb %zmm29,%zmm20,%zmm20 + vpshufb %zmm29,%zmm21,%zmm21 + vextracti32x4 $3,%zmm21,%xmm7 + subq $16 * (16 - 1),%r8 +L$_small_initial_partial_block_965: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm11,16(%rsi) + vmovdqu64 112(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm17,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm17,%zmm3 + vpclmulqdq $0x01,%zmm1,%zmm17,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm17,%zmm5 + vmovdqu64 176(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm19,%zmm8 + vpclmulqdq $0x00,%zmm1,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm19,%zmm30 + vpclmulqdq $0x10,%zmm1,%zmm19,%zmm31 + vmovdqu64 240(%rsi),%zmm1 + vpclmulqdq $0x11,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x00,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm0,%zmm17,%zmm8 + vpternlogq $0x96,%zmm3,%zmm19,%zmm22 + vpclmulqdq $0x01,%zmm1,%zmm20,%zmm17 + vpclmulqdq $0x10,%zmm1,%zmm20,%zmm19 + vpternlogq $0x96,%zmm4,%zmm17,%zmm30 + vpternlogq $0x96,%zmm5,%zmm19,%zmm31 + vmovdqu64 304(%rsi),%ymm1 + vinserti64x2 $2,336(%rsi),%zmm1,%zmm1 + vpclmulqdq $0x01,%zmm1,%zmm21,%zmm4 + vpclmulqdq $0x10,%zmm1,%zmm21,%zmm5 + vpclmulqdq $0x11,%zmm1,%zmm21,%zmm0 + vpclmulqdq $0x00,%zmm1,%zmm21,%zmm3 + + vpxorq %zmm30,%zmm4,%zmm4 + vpternlogq $0x96,%zmm31,%zmm26,%zmm5 + vpternlogq $0x96,%zmm8,%zmm24,%zmm0 + vpternlogq $0x96,%zmm22,%zmm25,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm30 + vpslldq $8,%zmm4,%zmm31 + vpxorq %zmm30,%zmm0,%zmm0 + vpxorq %zmm31,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm30 + vpxorq %ymm30,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm30 + vpxorq %xmm30,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm31 + vpxorq %ymm31,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm31 + vpxorq %xmm31,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm1 + + + vpclmulqdq $0x01,%xmm3,%xmm1,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm1,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm1,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_965: + vpxorq %xmm7,%xmm14,%xmm14 +L$_after_reduction_965: + jmp L$_last_blocks_done_933 +L$_last_num_blocks_is_0_933: + vmovdqa64 768(%rsp),%zmm13 + vpxorq %zmm14,%zmm13,%zmm13 + vmovdqu64 0(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 832(%rsp),%zmm13 + vmovdqu64 64(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + vpxorq %zmm10,%zmm4,%zmm26 + vpxorq %zmm6,%zmm0,%zmm24 + vpxorq %zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + vmovdqa64 896(%rsp),%zmm13 + vmovdqu64 128(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm0 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm3 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm4 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm5 + vmovdqa64 960(%rsp),%zmm13 + vmovdqu64 192(%rsp,%rbx,1),%zmm12 + vpclmulqdq $0x11,%zmm12,%zmm13,%zmm6 + vpclmulqdq $0x00,%zmm12,%zmm13,%zmm7 + vpclmulqdq $0x01,%zmm12,%zmm13,%zmm10 + vpclmulqdq $0x10,%zmm12,%zmm13,%zmm11 + + vpternlogq $0x96,%zmm10,%zmm4,%zmm26 + vpternlogq $0x96,%zmm6,%zmm0,%zmm24 + vpternlogq $0x96,%zmm7,%zmm3,%zmm25 + vpternlogq $0x96,%zmm11,%zmm5,%zmm26 + + vpsrldq $8,%zmm26,%zmm0 + vpslldq $8,%zmm26,%zmm3 + vpxorq %zmm0,%zmm24,%zmm24 + vpxorq %zmm3,%zmm25,%zmm25 + vextracti64x4 $1,%zmm24,%ymm0 + vpxorq %ymm0,%ymm24,%ymm24 + vextracti32x4 $1,%ymm24,%xmm0 + vpxorq %xmm0,%xmm24,%xmm24 + vextracti64x4 $1,%zmm25,%ymm3 + vpxorq %ymm3,%ymm25,%ymm25 + vextracti32x4 $1,%ymm25,%xmm3 + vpxorq %xmm3,%xmm25,%xmm25 + vmovdqa64 POLY2(%rip),%xmm4 + + + vpclmulqdq $0x01,%xmm25,%xmm4,%xmm0 + vpslldq $8,%xmm0,%xmm0 + vpxorq %xmm0,%xmm25,%xmm0 + + + vpclmulqdq $0x00,%xmm0,%xmm4,%xmm3 + vpsrldq $4,%xmm3,%xmm3 + vpclmulqdq $0x10,%xmm0,%xmm4,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm24,%xmm3,%xmm14 + +L$_last_blocks_done_933: + vpshufb %xmm29,%xmm2,%xmm2 + jmp L$_ghash_done_821 + +L$_message_below_equal_16_blocks_821: + + + movl %r8d,%r12d + addl $15,%r12d + shrl $4,%r12d + cmpq $8,%r12 + je L$_small_initial_num_blocks_is_8_966 + jl L$_small_initial_num_blocks_is_7_1_966 + + + cmpq $12,%r12 + je L$_small_initial_num_blocks_is_12_966 + jl L$_small_initial_num_blocks_is_11_9_966 + + + cmpq $16,%r12 + je L$_small_initial_num_blocks_is_16_966 + cmpq $15,%r12 + je L$_small_initial_num_blocks_is_15_966 + cmpq $14,%r12 + je L$_small_initial_num_blocks_is_14_966 + jmp L$_small_initial_num_blocks_is_13_966 + +L$_small_initial_num_blocks_is_11_9_966: + + cmpq $11,%r12 + je L$_small_initial_num_blocks_is_11_966 + cmpq $10,%r12 + je L$_small_initial_num_blocks_is_10_966 + jmp L$_small_initial_num_blocks_is_9_966 + +L$_small_initial_num_blocks_is_7_1_966: + cmpq $4,%r12 + je L$_small_initial_num_blocks_is_4_966 + jl L$_small_initial_num_blocks_is_3_1_966 + + cmpq $7,%r12 + je L$_small_initial_num_blocks_is_7_966 + cmpq $6,%r12 + je L$_small_initial_num_blocks_is_6_966 + jmp L$_small_initial_num_blocks_is_5_966 + +L$_small_initial_num_blocks_is_3_1_966: + + cmpq $3,%r12 + je L$_small_initial_num_blocks_is_3_966 + cmpq $2,%r12 + je L$_small_initial_num_blocks_is_2_966 + + + + + +L$_small_initial_num_blocks_is_1_966: + vmovdqa64 SHUF_MASK(%rip),%xmm29 + vpaddd ONE(%rip),%xmm2,%xmm0 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $0,%zmm0,%xmm2 + vpshufb %xmm29,%xmm0,%xmm0 + vmovdqu8 0(%rcx,%r11,1),%xmm6{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %xmm15,%xmm0,%xmm0 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %xmm15,%xmm0,%xmm0 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %xmm15,%xmm0,%xmm0 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %xmm15,%xmm0,%xmm0 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %xmm15,%xmm0,%xmm0 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %xmm15,%xmm0,%xmm0 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %xmm15,%xmm0,%xmm0 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %xmm15,%xmm0,%xmm0 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %xmm15,%xmm0,%xmm0 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %xmm15,%xmm0,%xmm0 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenc %xmm15,%xmm0,%xmm0 + vbroadcastf64x2 176(%rdi),%zmm15 + vaesenc %xmm15,%xmm0,%xmm0 + vbroadcastf64x2 192(%rdi),%zmm15 + vaesenc %xmm15,%xmm0,%xmm0 + vbroadcastf64x2 208(%rdi),%zmm15 + vaesenc %xmm15,%xmm0,%xmm0 + vbroadcastf64x2 224(%rdi),%zmm15 + vaesenclast %xmm15,%xmm0,%xmm0 + vpxorq %xmm6,%xmm0,%xmm0 + vextracti32x4 $0,%zmm0,%xmm12 + movq %r9,%r10 + vmovdqu8 %xmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm0,%zmm0{%k1}{z} + vpshufb %xmm29,%xmm6,%xmm6 + vextracti32x4 $0,%zmm6,%xmm13 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_967 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 336(%rsi),%xmm20 + vpclmulqdq $0x01,%xmm20,%xmm6,%xmm4 + vpclmulqdq $0x10,%xmm20,%xmm6,%xmm5 + vpclmulqdq $0x11,%xmm20,%xmm6,%xmm0 + vpclmulqdq $0x00,%xmm20,%xmm6,%xmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_967 +L$_small_initial_partial_block_967: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + + + + + + + + + + + + vpxorq %xmm13,%xmm14,%xmm14 + + jmp L$_after_reduction_967 +L$_small_initial_compute_done_967: +L$_after_reduction_967: + jmp L$_small_initial_blocks_encrypted_966 +L$_small_initial_num_blocks_is_2_966: + vmovdqa64 SHUF_MASK(%rip),%ymm29 + vshufi64x2 $0,%ymm2,%ymm2,%ymm0 + vpaddd ddq_add_1234(%rip),%ymm0,%ymm0 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $1,%zmm0,%xmm2 + vpshufb %ymm29,%ymm0,%ymm0 + vmovdqu8 0(%rcx,%r11,1),%ymm6{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %ymm15,%ymm0,%ymm0 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %ymm15,%ymm0,%ymm0 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %ymm15,%ymm0,%ymm0 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %ymm15,%ymm0,%ymm0 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %ymm15,%ymm0,%ymm0 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %ymm15,%ymm0,%ymm0 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %ymm15,%ymm0,%ymm0 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %ymm15,%ymm0,%ymm0 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %ymm15,%ymm0,%ymm0 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %ymm15,%ymm0,%ymm0 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenc %ymm15,%ymm0,%ymm0 + vbroadcastf64x2 176(%rdi),%zmm15 + vaesenc %ymm15,%ymm0,%ymm0 + vbroadcastf64x2 192(%rdi),%zmm15 + vaesenc %ymm15,%ymm0,%ymm0 + vbroadcastf64x2 208(%rdi),%zmm15 + vaesenc %ymm15,%ymm0,%ymm0 + vbroadcastf64x2 224(%rdi),%zmm15 + vaesenclast %ymm15,%ymm0,%ymm0 + vpxorq %ymm6,%ymm0,%ymm0 + vextracti32x4 $1,%zmm0,%xmm12 + movq %r9,%r10 + vmovdqu8 %ymm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm0,%zmm0{%k1}{z} + vpshufb %ymm29,%ymm6,%ymm6 + vextracti32x4 $1,%zmm6,%xmm13 + subq $16 * (2 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_968 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 320(%rsi),%ymm20 + vpclmulqdq $0x01,%ymm20,%ymm6,%ymm4 + vpclmulqdq $0x10,%ymm20,%ymm6,%ymm5 + vpclmulqdq $0x11,%ymm20,%ymm6,%ymm0 + vpclmulqdq $0x00,%ymm20,%ymm6,%ymm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_968 +L$_small_initial_partial_block_968: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 336(%rsi),%xmm20 + vpclmulqdq $0x01,%xmm20,%xmm6,%xmm4 + vpclmulqdq $0x10,%xmm20,%xmm6,%xmm5 + vpclmulqdq $0x11,%xmm20,%xmm6,%xmm0 + vpclmulqdq $0x00,%xmm20,%xmm6,%xmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_968: + + orq %r8,%r8 + je L$_after_reduction_968 + vpxorq %xmm13,%xmm14,%xmm14 +L$_after_reduction_968: + jmp L$_small_initial_blocks_encrypted_966 +L$_small_initial_num_blocks_is_3_966: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $2,%zmm0,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vmovdqu8 0(%rcx,%r11,1),%zmm6{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 176(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 192(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 208(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 224(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vpxorq %zmm6,%zmm0,%zmm0 + vextracti32x4 $2,%zmm0,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm0,%zmm0{%k1}{z} + vpshufb %zmm29,%zmm6,%zmm6 + vextracti32x4 $2,%zmm6,%xmm13 + subq $16 * (3 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_969 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 304(%rsi),%ymm20 + vinserti64x2 $2,336(%rsi),%zmm20,%zmm20 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_969 +L$_small_initial_partial_block_969: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 320(%rsi),%ymm20 + vpclmulqdq $0x01,%ymm20,%ymm6,%ymm4 + vpclmulqdq $0x10,%ymm20,%ymm6,%ymm5 + vpclmulqdq $0x11,%ymm20,%ymm6,%ymm0 + vpclmulqdq $0x00,%ymm20,%ymm6,%ymm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_969: + + orq %r8,%r8 + je L$_after_reduction_969 + vpxorq %xmm13,%xmm14,%xmm14 +L$_after_reduction_969: + jmp L$_small_initial_blocks_encrypted_966 +L$_small_initial_num_blocks_is_4_966: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $3,%zmm0,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vmovdqu8 0(%rcx,%r11,1),%zmm6{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 176(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 192(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 208(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vbroadcastf64x2 224(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vpxorq %zmm6,%zmm0,%zmm0 + vextracti32x4 $3,%zmm0,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1){%k1} + vmovdqu8 %zmm0,%zmm0{%k1}{z} + vpshufb %zmm29,%zmm6,%zmm6 + vextracti32x4 $3,%zmm6,%xmm13 + subq $16 * (4 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_970 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 288(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm19 + + vpxorq %zmm19,%zmm17,%zmm17 + vpsrldq $8,%zmm17,%zmm4 + vpslldq $8,%zmm17,%zmm5 + vpxorq %zmm4,%zmm15,%zmm0 + vpxorq %zmm5,%zmm16,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_970 +L$_small_initial_partial_block_970: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 304(%rsi),%ymm20 + vinserti64x2 $2,336(%rsi),%zmm20,%zmm20 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_970: + + orq %r8,%r8 + je L$_after_reduction_970 + vpxorq %xmm13,%xmm14,%xmm14 +L$_after_reduction_970: + jmp L$_small_initial_blocks_encrypted_966 +L$_small_initial_num_blocks_is_5_966: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd ddq_add_5678(%rip),%zmm2,%zmm3 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + subq $64,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $0,%zmm3,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %xmm29,%xmm3,%xmm3 + vmovdqu8 0(%rcx,%r11,1),%zmm6 + vmovdqu8 64(%rcx,%r11,1),%xmm7{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %xmm15,%xmm3,%xmm3 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %xmm15,%xmm3,%xmm3 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %xmm15,%xmm3,%xmm3 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %xmm15,%xmm3,%xmm3 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %xmm15,%xmm3,%xmm3 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %xmm15,%xmm3,%xmm3 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %xmm15,%xmm3,%xmm3 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %xmm15,%xmm3,%xmm3 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %xmm15,%xmm3,%xmm3 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %xmm15,%xmm3,%xmm3 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %xmm15,%xmm3,%xmm3 + vbroadcastf64x2 176(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %xmm15,%xmm3,%xmm3 + vbroadcastf64x2 192(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %xmm15,%xmm3,%xmm3 + vbroadcastf64x2 208(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %xmm15,%xmm3,%xmm3 + vbroadcastf64x2 224(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vaesenclast %xmm15,%xmm3,%xmm3 + vpxorq %zmm6,%zmm0,%zmm0 + vpxorq %xmm7,%xmm3,%xmm3 + vextracti32x4 $0,%zmm3,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %xmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm3,%zmm3{%k1}{z} + vpshufb %zmm29,%zmm6,%zmm6 + vpshufb %xmm29,%xmm7,%xmm7 + vextracti32x4 $0,%zmm7,%xmm13 + subq $16 * (5 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_971 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 272(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm19 + vmovdqu64 336(%rsi),%xmm20 + vpclmulqdq $0x01,%xmm20,%xmm7,%xmm4 + vpclmulqdq $0x10,%xmm20,%xmm7,%xmm5 + vpclmulqdq $0x11,%xmm20,%xmm7,%xmm0 + vpclmulqdq $0x00,%xmm20,%xmm7,%xmm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_971 +L$_small_initial_partial_block_971: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 288(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm19 + + vpxorq %zmm19,%zmm17,%zmm17 + vpsrldq $8,%zmm17,%zmm4 + vpslldq $8,%zmm17,%zmm5 + vpxorq %zmm4,%zmm15,%zmm0 + vpxorq %zmm5,%zmm16,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_971: + + orq %r8,%r8 + je L$_after_reduction_971 + vpxorq %xmm13,%xmm14,%xmm14 +L$_after_reduction_971: + jmp L$_small_initial_blocks_encrypted_966 +L$_small_initial_num_blocks_is_6_966: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd ddq_add_5678(%rip),%zmm2,%zmm3 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + subq $64,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $1,%zmm3,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %ymm29,%ymm3,%ymm3 + vmovdqu8 0(%rcx,%r11,1),%zmm6 + vmovdqu8 64(%rcx,%r11,1),%ymm7{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %ymm15,%ymm3,%ymm3 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %ymm15,%ymm3,%ymm3 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %ymm15,%ymm3,%ymm3 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %ymm15,%ymm3,%ymm3 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %ymm15,%ymm3,%ymm3 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %ymm15,%ymm3,%ymm3 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %ymm15,%ymm3,%ymm3 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %ymm15,%ymm3,%ymm3 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %ymm15,%ymm3,%ymm3 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %ymm15,%ymm3,%ymm3 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %ymm15,%ymm3,%ymm3 + vbroadcastf64x2 176(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %ymm15,%ymm3,%ymm3 + vbroadcastf64x2 192(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %ymm15,%ymm3,%ymm3 + vbroadcastf64x2 208(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %ymm15,%ymm3,%ymm3 + vbroadcastf64x2 224(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vaesenclast %ymm15,%ymm3,%ymm3 + vpxorq %zmm6,%zmm0,%zmm0 + vpxorq %ymm7,%ymm3,%ymm3 + vextracti32x4 $1,%zmm3,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %ymm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm3,%zmm3{%k1}{z} + vpshufb %zmm29,%zmm6,%zmm6 + vpshufb %ymm29,%ymm7,%ymm7 + vextracti32x4 $1,%zmm7,%xmm13 + subq $16 * (6 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_972 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 256(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm19 + vmovdqu64 320(%rsi),%ymm20 + vpclmulqdq $0x01,%ymm20,%ymm7,%ymm4 + vpclmulqdq $0x10,%ymm20,%ymm7,%ymm5 + vpclmulqdq $0x11,%ymm20,%ymm7,%ymm0 + vpclmulqdq $0x00,%ymm20,%ymm7,%ymm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_972 +L$_small_initial_partial_block_972: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 272(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm19 + vmovdqu64 336(%rsi),%xmm20 + vpclmulqdq $0x01,%xmm20,%xmm7,%xmm4 + vpclmulqdq $0x10,%xmm20,%xmm7,%xmm5 + vpclmulqdq $0x11,%xmm20,%xmm7,%xmm0 + vpclmulqdq $0x00,%xmm20,%xmm7,%xmm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_972: + + orq %r8,%r8 + je L$_after_reduction_972 + vpxorq %xmm13,%xmm14,%xmm14 +L$_after_reduction_972: + jmp L$_small_initial_blocks_encrypted_966 +L$_small_initial_num_blocks_is_7_966: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd ddq_add_5678(%rip),%zmm2,%zmm3 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + subq $64,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $2,%zmm3,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vmovdqu8 0(%rcx,%r11,1),%zmm6 + vmovdqu8 64(%rcx,%r11,1),%zmm7{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 176(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 192(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 208(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 224(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vaesenclast %zmm15,%zmm3,%zmm3 + vpxorq %zmm6,%zmm0,%zmm0 + vpxorq %zmm7,%zmm3,%zmm3 + vextracti32x4 $2,%zmm3,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm3,%zmm3{%k1}{z} + vpshufb %zmm29,%zmm6,%zmm6 + vpshufb %zmm29,%zmm7,%zmm7 + vextracti32x4 $2,%zmm7,%xmm13 + subq $16 * (7 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_973 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 240(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm19 + vmovdqu64 304(%rsi),%ymm20 + vinserti64x2 $2,336(%rsi),%zmm20,%zmm20 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm5 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_973 +L$_small_initial_partial_block_973: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 256(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm19 + vmovdqu64 320(%rsi),%ymm20 + vpclmulqdq $0x01,%ymm20,%ymm7,%ymm4 + vpclmulqdq $0x10,%ymm20,%ymm7,%ymm5 + vpclmulqdq $0x11,%ymm20,%ymm7,%ymm0 + vpclmulqdq $0x00,%ymm20,%ymm7,%ymm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_973: + + orq %r8,%r8 + je L$_after_reduction_973 + vpxorq %xmm13,%xmm14,%xmm14 +L$_after_reduction_973: + jmp L$_small_initial_blocks_encrypted_966 +L$_small_initial_num_blocks_is_8_966: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd ddq_add_5678(%rip),%zmm2,%zmm3 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + subq $64,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $3,%zmm3,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vmovdqu8 0(%rcx,%r11,1),%zmm6 + vmovdqu8 64(%rcx,%r11,1),%zmm7{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 176(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 192(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 208(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vbroadcastf64x2 224(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vaesenclast %zmm15,%zmm3,%zmm3 + vpxorq %zmm6,%zmm0,%zmm0 + vpxorq %zmm7,%zmm3,%zmm3 + vextracti32x4 $3,%zmm3,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1){%k1} + vmovdqu8 %zmm3,%zmm3{%k1}{z} + vpshufb %zmm29,%zmm6,%zmm6 + vpshufb %zmm29,%zmm7,%zmm7 + vextracti32x4 $3,%zmm7,%xmm13 + subq $16 * (8 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_974 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 224(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 288(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vpxorq %zmm15,%zmm0,%zmm15 + vpxorq %zmm16,%zmm3,%zmm16 + vpxorq %zmm17,%zmm4,%zmm17 + vpxorq %zmm19,%zmm5,%zmm19 + + vpxorq %zmm19,%zmm17,%zmm17 + vpsrldq $8,%zmm17,%zmm4 + vpslldq $8,%zmm17,%zmm5 + vpxorq %zmm4,%zmm15,%zmm0 + vpxorq %zmm5,%zmm16,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_974 +L$_small_initial_partial_block_974: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 240(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm19 + vmovdqu64 304(%rsi),%ymm20 + vinserti64x2 $2,336(%rsi),%zmm20,%zmm20 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm5 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_974: + + orq %r8,%r8 + je L$_after_reduction_974 + vpxorq %xmm13,%xmm14,%xmm14 +L$_after_reduction_974: + jmp L$_small_initial_blocks_encrypted_966 +L$_small_initial_num_blocks_is_9_966: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd ddq_add_5678(%rip),%zmm2,%zmm3 + vpaddd ddq_add_8888(%rip),%zmm0,%zmm4 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + subq $128,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $0,%zmm4,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %xmm29,%xmm4,%xmm4 + vmovdqu8 0(%rcx,%r11,1),%zmm6 + vmovdqu8 64(%rcx,%r11,1),%zmm7 + vmovdqu8 128(%rcx,%r11,1),%xmm10{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm15,%zmm3,%zmm3 + vpxorq %xmm15,%xmm4,%xmm4 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %xmm15,%xmm4,%xmm4 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %xmm15,%xmm4,%xmm4 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %xmm15,%xmm4,%xmm4 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %xmm15,%xmm4,%xmm4 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %xmm15,%xmm4,%xmm4 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %xmm15,%xmm4,%xmm4 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %xmm15,%xmm4,%xmm4 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %xmm15,%xmm4,%xmm4 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %xmm15,%xmm4,%xmm4 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %xmm15,%xmm4,%xmm4 + vbroadcastf64x2 176(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %xmm15,%xmm4,%xmm4 + vbroadcastf64x2 192(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %xmm15,%xmm4,%xmm4 + vbroadcastf64x2 208(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %xmm15,%xmm4,%xmm4 + vbroadcastf64x2 224(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vaesenclast %zmm15,%zmm3,%zmm3 + vaesenclast %xmm15,%xmm4,%xmm4 + vpxorq %zmm6,%zmm0,%zmm0 + vpxorq %zmm7,%zmm3,%zmm3 + vpxorq %xmm10,%xmm4,%xmm4 + vextracti32x4 $0,%zmm4,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %xmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm4,%zmm4{%k1}{z} + vpshufb %zmm29,%zmm6,%zmm6 + vpshufb %zmm29,%zmm7,%zmm7 + vpshufb %xmm29,%xmm10,%xmm10 + vextracti32x4 $0,%zmm10,%xmm13 + subq $16 * (9 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_975 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 208(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 272(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vpxorq %zmm15,%zmm0,%zmm15 + vpxorq %zmm16,%zmm3,%zmm16 + vpxorq %zmm17,%zmm4,%zmm17 + vpxorq %zmm19,%zmm5,%zmm19 + vmovdqu64 336(%rsi),%xmm20 + vpclmulqdq $0x01,%xmm20,%xmm10,%xmm4 + vpclmulqdq $0x10,%xmm20,%xmm10,%xmm5 + vpclmulqdq $0x11,%xmm20,%xmm10,%xmm0 + vpclmulqdq $0x00,%xmm20,%xmm10,%xmm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_975 +L$_small_initial_partial_block_975: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 224(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 288(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vpxorq %zmm15,%zmm0,%zmm15 + vpxorq %zmm16,%zmm3,%zmm16 + vpxorq %zmm17,%zmm4,%zmm17 + vpxorq %zmm19,%zmm5,%zmm19 + + vpxorq %zmm19,%zmm17,%zmm17 + vpsrldq $8,%zmm17,%zmm4 + vpslldq $8,%zmm17,%zmm5 + vpxorq %zmm4,%zmm15,%zmm0 + vpxorq %zmm5,%zmm16,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_975: + + orq %r8,%r8 + je L$_after_reduction_975 + vpxorq %xmm13,%xmm14,%xmm14 +L$_after_reduction_975: + jmp L$_small_initial_blocks_encrypted_966 +L$_small_initial_num_blocks_is_10_966: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd ddq_add_5678(%rip),%zmm2,%zmm3 + vpaddd ddq_add_8888(%rip),%zmm0,%zmm4 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + subq $128,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $1,%zmm4,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %ymm29,%ymm4,%ymm4 + vmovdqu8 0(%rcx,%r11,1),%zmm6 + vmovdqu8 64(%rcx,%r11,1),%zmm7 + vmovdqu8 128(%rcx,%r11,1),%ymm10{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm15,%zmm3,%zmm3 + vpxorq %ymm15,%ymm4,%ymm4 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %ymm15,%ymm4,%ymm4 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %ymm15,%ymm4,%ymm4 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %ymm15,%ymm4,%ymm4 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %ymm15,%ymm4,%ymm4 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %ymm15,%ymm4,%ymm4 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %ymm15,%ymm4,%ymm4 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %ymm15,%ymm4,%ymm4 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %ymm15,%ymm4,%ymm4 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %ymm15,%ymm4,%ymm4 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %ymm15,%ymm4,%ymm4 + vbroadcastf64x2 176(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %ymm15,%ymm4,%ymm4 + vbroadcastf64x2 192(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %ymm15,%ymm4,%ymm4 + vbroadcastf64x2 208(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %ymm15,%ymm4,%ymm4 + vbroadcastf64x2 224(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vaesenclast %zmm15,%zmm3,%zmm3 + vaesenclast %ymm15,%ymm4,%ymm4 + vpxorq %zmm6,%zmm0,%zmm0 + vpxorq %zmm7,%zmm3,%zmm3 + vpxorq %ymm10,%ymm4,%ymm4 + vextracti32x4 $1,%zmm4,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %ymm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm4,%zmm4{%k1}{z} + vpshufb %zmm29,%zmm6,%zmm6 + vpshufb %zmm29,%zmm7,%zmm7 + vpshufb %ymm29,%ymm10,%ymm10 + vextracti32x4 $1,%zmm10,%xmm13 + subq $16 * (10 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_976 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 192(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 256(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vpxorq %zmm15,%zmm0,%zmm15 + vpxorq %zmm16,%zmm3,%zmm16 + vpxorq %zmm17,%zmm4,%zmm17 + vpxorq %zmm19,%zmm5,%zmm19 + vmovdqu64 320(%rsi),%ymm20 + vpclmulqdq $0x01,%ymm20,%ymm10,%ymm4 + vpclmulqdq $0x10,%ymm20,%ymm10,%ymm5 + vpclmulqdq $0x11,%ymm20,%ymm10,%ymm0 + vpclmulqdq $0x00,%ymm20,%ymm10,%ymm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_976 +L$_small_initial_partial_block_976: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 208(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 272(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vpxorq %zmm15,%zmm0,%zmm15 + vpxorq %zmm16,%zmm3,%zmm16 + vpxorq %zmm17,%zmm4,%zmm17 + vpxorq %zmm19,%zmm5,%zmm19 + vmovdqu64 336(%rsi),%xmm20 + vpclmulqdq $0x01,%xmm20,%xmm10,%xmm4 + vpclmulqdq $0x10,%xmm20,%xmm10,%xmm5 + vpclmulqdq $0x11,%xmm20,%xmm10,%xmm0 + vpclmulqdq $0x00,%xmm20,%xmm10,%xmm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_976: + + orq %r8,%r8 + je L$_after_reduction_976 + vpxorq %xmm13,%xmm14,%xmm14 +L$_after_reduction_976: + jmp L$_small_initial_blocks_encrypted_966 +L$_small_initial_num_blocks_is_11_966: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd ddq_add_5678(%rip),%zmm2,%zmm3 + vpaddd ddq_add_8888(%rip),%zmm0,%zmm4 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + subq $128,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $2,%zmm4,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vmovdqu8 0(%rcx,%r11,1),%zmm6 + vmovdqu8 64(%rcx,%r11,1),%zmm7 + vmovdqu8 128(%rcx,%r11,1),%zmm10{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm15,%zmm3,%zmm3 + vpxorq %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 176(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 192(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 208(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 224(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vaesenclast %zmm15,%zmm3,%zmm3 + vaesenclast %zmm15,%zmm4,%zmm4 + vpxorq %zmm6,%zmm0,%zmm0 + vpxorq %zmm7,%zmm3,%zmm3 + vpxorq %zmm10,%zmm4,%zmm4 + vextracti32x4 $2,%zmm4,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm4,%zmm4{%k1}{z} + vpshufb %zmm29,%zmm6,%zmm6 + vpshufb %zmm29,%zmm7,%zmm7 + vpshufb %zmm29,%zmm10,%zmm10 + vextracti32x4 $2,%zmm10,%xmm13 + subq $16 * (11 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_977 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 176(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 240(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vpxorq %zmm15,%zmm0,%zmm15 + vpxorq %zmm16,%zmm3,%zmm16 + vpxorq %zmm17,%zmm4,%zmm17 + vpxorq %zmm19,%zmm5,%zmm19 + vmovdqu64 304(%rsi),%ymm20 + vinserti64x2 $2,336(%rsi),%zmm20,%zmm20 + vpclmulqdq $0x01,%zmm20,%zmm10,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm10,%zmm5 + vpclmulqdq $0x11,%zmm20,%zmm10,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm10,%zmm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_977 +L$_small_initial_partial_block_977: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 192(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 256(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vpxorq %zmm15,%zmm0,%zmm15 + vpxorq %zmm16,%zmm3,%zmm16 + vpxorq %zmm17,%zmm4,%zmm17 + vpxorq %zmm19,%zmm5,%zmm19 + vmovdqu64 320(%rsi),%ymm20 + vpclmulqdq $0x01,%ymm20,%ymm10,%ymm4 + vpclmulqdq $0x10,%ymm20,%ymm10,%ymm5 + vpclmulqdq $0x11,%ymm20,%ymm10,%ymm0 + vpclmulqdq $0x00,%ymm20,%ymm10,%ymm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_977: + + orq %r8,%r8 + je L$_after_reduction_977 + vpxorq %xmm13,%xmm14,%xmm14 +L$_after_reduction_977: + jmp L$_small_initial_blocks_encrypted_966 +L$_small_initial_num_blocks_is_12_966: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd ddq_add_5678(%rip),%zmm2,%zmm3 + vpaddd ddq_add_8888(%rip),%zmm0,%zmm4 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + subq $128,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $3,%zmm4,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vmovdqu8 0(%rcx,%r11,1),%zmm6 + vmovdqu8 64(%rcx,%r11,1),%zmm7 + vmovdqu8 128(%rcx,%r11,1),%zmm10{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm15,%zmm3,%zmm3 + vpxorq %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 176(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 192(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 208(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vbroadcastf64x2 224(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vaesenclast %zmm15,%zmm3,%zmm3 + vaesenclast %zmm15,%zmm4,%zmm4 + vpxorq %zmm6,%zmm0,%zmm0 + vpxorq %zmm7,%zmm3,%zmm3 + vpxorq %zmm10,%zmm4,%zmm4 + vextracti32x4 $3,%zmm4,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1){%k1} + vmovdqu8 %zmm4,%zmm4{%k1}{z} + vpshufb %zmm29,%zmm6,%zmm6 + vpshufb %zmm29,%zmm7,%zmm7 + vpshufb %zmm29,%zmm10,%zmm10 + vextracti32x4 $3,%zmm10,%xmm13 + subq $16 * (12 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_978 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 160(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 224(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vmovdqu64 288(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x00,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm0,%zmm6,%zmm15 + vpternlogq $0x96,%zmm3,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x10,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm4,%zmm6,%zmm17 + vpternlogq $0x96,%zmm5,%zmm7,%zmm19 + + vpxorq %zmm19,%zmm17,%zmm17 + vpsrldq $8,%zmm17,%zmm4 + vpslldq $8,%zmm17,%zmm5 + vpxorq %zmm4,%zmm15,%zmm0 + vpxorq %zmm5,%zmm16,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_978 +L$_small_initial_partial_block_978: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 176(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 240(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vpxorq %zmm15,%zmm0,%zmm15 + vpxorq %zmm16,%zmm3,%zmm16 + vpxorq %zmm17,%zmm4,%zmm17 + vpxorq %zmm19,%zmm5,%zmm19 + vmovdqu64 304(%rsi),%ymm20 + vinserti64x2 $2,336(%rsi),%zmm20,%zmm20 + vpclmulqdq $0x01,%zmm20,%zmm10,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm10,%zmm5 + vpclmulqdq $0x11,%zmm20,%zmm10,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm10,%zmm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_978: + + orq %r8,%r8 + je L$_after_reduction_978 + vpxorq %xmm13,%xmm14,%xmm14 +L$_after_reduction_978: + jmp L$_small_initial_blocks_encrypted_966 +L$_small_initial_num_blocks_is_13_966: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd ddq_add_5678(%rip),%zmm2,%zmm3 + vpaddd ddq_add_8888(%rip),%zmm0,%zmm4 + vpaddd ddq_add_8888(%rip),%zmm3,%zmm5 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + subq $192,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $0,%zmm5,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %xmm29,%xmm5,%xmm5 + vmovdqu8 0(%rcx,%r11,1),%zmm6 + vmovdqu8 64(%rcx,%r11,1),%zmm7 + vmovdqu8 128(%rcx,%r11,1),%zmm10 + vmovdqu8 192(%rcx,%r11,1),%xmm11{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm15,%zmm3,%zmm3 + vpxorq %zmm15,%zmm4,%zmm4 + vpxorq %xmm15,%xmm5,%xmm5 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %xmm15,%xmm5,%xmm5 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %xmm15,%xmm5,%xmm5 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %xmm15,%xmm5,%xmm5 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %xmm15,%xmm5,%xmm5 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %xmm15,%xmm5,%xmm5 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %xmm15,%xmm5,%xmm5 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %xmm15,%xmm5,%xmm5 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %xmm15,%xmm5,%xmm5 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %xmm15,%xmm5,%xmm5 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %xmm15,%xmm5,%xmm5 + vbroadcastf64x2 176(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %xmm15,%xmm5,%xmm5 + vbroadcastf64x2 192(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %xmm15,%xmm5,%xmm5 + vbroadcastf64x2 208(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %xmm15,%xmm5,%xmm5 + vbroadcastf64x2 224(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vaesenclast %zmm15,%zmm3,%zmm3 + vaesenclast %zmm15,%zmm4,%zmm4 + vaesenclast %xmm15,%xmm5,%xmm5 + vpxorq %zmm6,%zmm0,%zmm0 + vpxorq %zmm7,%zmm3,%zmm3 + vpxorq %zmm10,%zmm4,%zmm4 + vpxorq %xmm11,%xmm5,%xmm5 + vextracti32x4 $0,%zmm5,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %xmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm5,%zmm5{%k1}{z} + vpshufb %zmm29,%zmm6,%zmm6 + vpshufb %zmm29,%zmm7,%zmm7 + vpshufb %zmm29,%zmm10,%zmm10 + vpshufb %xmm29,%xmm11,%xmm11 + vextracti32x4 $0,%zmm11,%xmm13 + subq $16 * (13 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_979 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 144(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 208(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vmovdqu64 272(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x00,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm0,%zmm6,%zmm15 + vpternlogq $0x96,%zmm3,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x10,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm4,%zmm6,%zmm17 + vpternlogq $0x96,%zmm5,%zmm7,%zmm19 + vmovdqu64 336(%rsi),%xmm20 + vpclmulqdq $0x01,%xmm20,%xmm11,%xmm4 + vpclmulqdq $0x10,%xmm20,%xmm11,%xmm5 + vpclmulqdq $0x11,%xmm20,%xmm11,%xmm0 + vpclmulqdq $0x00,%xmm20,%xmm11,%xmm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_979 +L$_small_initial_partial_block_979: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 160(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 224(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vmovdqu64 288(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x00,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm0,%zmm6,%zmm15 + vpternlogq $0x96,%zmm3,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x10,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm4,%zmm6,%zmm17 + vpternlogq $0x96,%zmm5,%zmm7,%zmm19 + + vpxorq %zmm19,%zmm17,%zmm17 + vpsrldq $8,%zmm17,%zmm4 + vpslldq $8,%zmm17,%zmm5 + vpxorq %zmm4,%zmm15,%zmm0 + vpxorq %zmm5,%zmm16,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_979: + + orq %r8,%r8 + je L$_after_reduction_979 + vpxorq %xmm13,%xmm14,%xmm14 +L$_after_reduction_979: + jmp L$_small_initial_blocks_encrypted_966 +L$_small_initial_num_blocks_is_14_966: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd ddq_add_5678(%rip),%zmm2,%zmm3 + vpaddd ddq_add_8888(%rip),%zmm0,%zmm4 + vpaddd ddq_add_8888(%rip),%zmm3,%zmm5 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + subq $192,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $1,%zmm5,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %ymm29,%ymm5,%ymm5 + vmovdqu8 0(%rcx,%r11,1),%zmm6 + vmovdqu8 64(%rcx,%r11,1),%zmm7 + vmovdqu8 128(%rcx,%r11,1),%zmm10 + vmovdqu8 192(%rcx,%r11,1),%ymm11{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm15,%zmm3,%zmm3 + vpxorq %zmm15,%zmm4,%zmm4 + vpxorq %ymm15,%ymm5,%ymm5 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %ymm15,%ymm5,%ymm5 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %ymm15,%ymm5,%ymm5 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %ymm15,%ymm5,%ymm5 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %ymm15,%ymm5,%ymm5 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %ymm15,%ymm5,%ymm5 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %ymm15,%ymm5,%ymm5 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %ymm15,%ymm5,%ymm5 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %ymm15,%ymm5,%ymm5 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %ymm15,%ymm5,%ymm5 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %ymm15,%ymm5,%ymm5 + vbroadcastf64x2 176(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %ymm15,%ymm5,%ymm5 + vbroadcastf64x2 192(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %ymm15,%ymm5,%ymm5 + vbroadcastf64x2 208(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %ymm15,%ymm5,%ymm5 + vbroadcastf64x2 224(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vaesenclast %zmm15,%zmm3,%zmm3 + vaesenclast %zmm15,%zmm4,%zmm4 + vaesenclast %ymm15,%ymm5,%ymm5 + vpxorq %zmm6,%zmm0,%zmm0 + vpxorq %zmm7,%zmm3,%zmm3 + vpxorq %zmm10,%zmm4,%zmm4 + vpxorq %ymm11,%ymm5,%ymm5 + vextracti32x4 $1,%zmm5,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %ymm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm5,%zmm5{%k1}{z} + vpshufb %zmm29,%zmm6,%zmm6 + vpshufb %zmm29,%zmm7,%zmm7 + vpshufb %zmm29,%zmm10,%zmm10 + vpshufb %ymm29,%ymm11,%ymm11 + vextracti32x4 $1,%zmm11,%xmm13 + subq $16 * (14 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_980 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 128(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 192(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vmovdqu64 256(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x00,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm0,%zmm6,%zmm15 + vpternlogq $0x96,%zmm3,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x10,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm4,%zmm6,%zmm17 + vpternlogq $0x96,%zmm5,%zmm7,%zmm19 + vmovdqu64 320(%rsi),%ymm20 + vpclmulqdq $0x01,%ymm20,%ymm11,%ymm4 + vpclmulqdq $0x10,%ymm20,%ymm11,%ymm5 + vpclmulqdq $0x11,%ymm20,%ymm11,%ymm0 + vpclmulqdq $0x00,%ymm20,%ymm11,%ymm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_980 +L$_small_initial_partial_block_980: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 144(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 208(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vmovdqu64 272(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x00,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm0,%zmm6,%zmm15 + vpternlogq $0x96,%zmm3,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x10,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm4,%zmm6,%zmm17 + vpternlogq $0x96,%zmm5,%zmm7,%zmm19 + vmovdqu64 336(%rsi),%xmm20 + vpclmulqdq $0x01,%xmm20,%xmm11,%xmm4 + vpclmulqdq $0x10,%xmm20,%xmm11,%xmm5 + vpclmulqdq $0x11,%xmm20,%xmm11,%xmm0 + vpclmulqdq $0x00,%xmm20,%xmm11,%xmm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_980: + + orq %r8,%r8 + je L$_after_reduction_980 + vpxorq %xmm13,%xmm14,%xmm14 +L$_after_reduction_980: + jmp L$_small_initial_blocks_encrypted_966 +L$_small_initial_num_blocks_is_15_966: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd ddq_add_5678(%rip),%zmm2,%zmm3 + vpaddd ddq_add_8888(%rip),%zmm0,%zmm4 + vpaddd ddq_add_8888(%rip),%zmm3,%zmm5 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + subq $192,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $2,%zmm5,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 + vmovdqu8 0(%rcx,%r11,1),%zmm6 + vmovdqu8 64(%rcx,%r11,1),%zmm7 + vmovdqu8 128(%rcx,%r11,1),%zmm10 + vmovdqu8 192(%rcx,%r11,1),%zmm11{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm15,%zmm3,%zmm3 + vpxorq %zmm15,%zmm4,%zmm4 + vpxorq %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 176(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 192(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 208(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 224(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vaesenclast %zmm15,%zmm3,%zmm3 + vaesenclast %zmm15,%zmm4,%zmm4 + vaesenclast %zmm15,%zmm5,%zmm5 + vpxorq %zmm6,%zmm0,%zmm0 + vpxorq %zmm7,%zmm3,%zmm3 + vpxorq %zmm10,%zmm4,%zmm4 + vpxorq %zmm11,%zmm5,%zmm5 + vextracti32x4 $2,%zmm5,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %zmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm5,%zmm5{%k1}{z} + vpshufb %zmm29,%zmm6,%zmm6 + vpshufb %zmm29,%zmm7,%zmm7 + vpshufb %zmm29,%zmm10,%zmm10 + vpshufb %zmm29,%zmm11,%zmm11 + vextracti32x4 $2,%zmm11,%xmm13 + subq $16 * (15 - 1),%r8 + + + cmpq $16,%r8 + jl L$_small_initial_partial_block_981 + + + + + + subq $16,%r8 + movq $0,(%rdx) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 112(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 176(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vmovdqu64 240(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x00,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm0,%zmm6,%zmm15 + vpternlogq $0x96,%zmm3,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x10,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm4,%zmm6,%zmm17 + vpternlogq $0x96,%zmm5,%zmm7,%zmm19 + vmovdqu64 304(%rsi),%ymm20 + vinserti64x2 $2,336(%rsi),%zmm20,%zmm20 + vpclmulqdq $0x01,%zmm20,%zmm11,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm11,%zmm5 + vpclmulqdq $0x11,%zmm20,%zmm11,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm11,%zmm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + + jmp L$_small_initial_compute_done_981 +L$_small_initial_partial_block_981: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 128(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 192(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vmovdqu64 256(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x00,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm0,%zmm6,%zmm15 + vpternlogq $0x96,%zmm3,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x10,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm4,%zmm6,%zmm17 + vpternlogq $0x96,%zmm5,%zmm7,%zmm19 + vmovdqu64 320(%rsi),%ymm20 + vpclmulqdq $0x01,%ymm20,%ymm11,%ymm4 + vpclmulqdq $0x10,%ymm20,%ymm11,%ymm5 + vpclmulqdq $0x11,%ymm20,%ymm11,%ymm0 + vpclmulqdq $0x00,%ymm20,%ymm11,%ymm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_981: + + orq %r8,%r8 + je L$_after_reduction_981 + vpxorq %xmm13,%xmm14,%xmm14 +L$_after_reduction_981: + jmp L$_small_initial_blocks_encrypted_966 +L$_small_initial_num_blocks_is_16_966: + vmovdqa64 SHUF_MASK(%rip),%zmm29 + vshufi64x2 $0,%zmm2,%zmm2,%zmm2 + vpaddd ddq_add_1234(%rip),%zmm2,%zmm0 + vpaddd ddq_add_5678(%rip),%zmm2,%zmm3 + vpaddd ddq_add_8888(%rip),%zmm0,%zmm4 + vpaddd ddq_add_8888(%rip),%zmm3,%zmm5 + leaq byte64_len_to_mask_table(%rip),%r10 + movq %r8,%r15 + subq $192,%r15 + kmovq (%r10,%r15,8),%k1 + vextracti32x4 $3,%zmm5,%xmm2 + vpshufb %zmm29,%zmm0,%zmm0 + vpshufb %zmm29,%zmm3,%zmm3 + vpshufb %zmm29,%zmm4,%zmm4 + vpshufb %zmm29,%zmm5,%zmm5 + vmovdqu8 0(%rcx,%r11,1),%zmm6 + vmovdqu8 64(%rcx,%r11,1),%zmm7 + vmovdqu8 128(%rcx,%r11,1),%zmm10 + vmovdqu8 192(%rcx,%r11,1),%zmm11{%k1}{z} + vbroadcastf64x2 0(%rdi),%zmm15 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm15,%zmm3,%zmm3 + vpxorq %zmm15,%zmm4,%zmm4 + vpxorq %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 16(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 32(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 48(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 64(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 80(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 96(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 112(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 128(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 144(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 160(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 176(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 192(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 208(%rdi),%zmm15 + vaesenc %zmm15,%zmm0,%zmm0 + vaesenc %zmm15,%zmm3,%zmm3 + vaesenc %zmm15,%zmm4,%zmm4 + vaesenc %zmm15,%zmm5,%zmm5 + vbroadcastf64x2 224(%rdi),%zmm15 + vaesenclast %zmm15,%zmm0,%zmm0 + vaesenclast %zmm15,%zmm3,%zmm3 + vaesenclast %zmm15,%zmm4,%zmm4 + vaesenclast %zmm15,%zmm5,%zmm5 + vpxorq %zmm6,%zmm0,%zmm0 + vpxorq %zmm7,%zmm3,%zmm3 + vpxorq %zmm10,%zmm4,%zmm4 + vpxorq %zmm11,%zmm5,%zmm5 + vextracti32x4 $3,%zmm5,%xmm12 + movq %r9,%r10 + vmovdqu8 %zmm0,0(%r10,%r11,1) + vmovdqu8 %zmm3,64(%r10,%r11,1) + vmovdqu8 %zmm4,128(%r10,%r11,1) + vmovdqu8 %zmm5,192(%r10,%r11,1){%k1} + vmovdqu8 %zmm5,%zmm5{%k1}{z} + vpshufb %zmm29,%zmm6,%zmm6 + vpshufb %zmm29,%zmm7,%zmm7 + vpshufb %zmm29,%zmm10,%zmm10 + vpshufb %zmm29,%zmm11,%zmm11 + vextracti32x4 $3,%zmm11,%xmm13 + subq $16 * (16 - 1),%r8 +L$_small_initial_partial_block_982: + + + + + + + + + movq %r8,(%rdx) + vmovdqu64 %xmm12,16(%rsi) + vpxorq %zmm14,%zmm6,%zmm6 + vmovdqu64 112(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm6,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm6,%zmm3 + vpclmulqdq $0x01,%zmm20,%zmm6,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm6,%zmm5 + vmovdqu64 176(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm7,%zmm15 + vpclmulqdq $0x00,%zmm20,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm7,%zmm17 + vpclmulqdq $0x10,%zmm20,%zmm7,%zmm19 + vmovdqu64 240(%rsi),%zmm20 + vpclmulqdq $0x11,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x00,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm0,%zmm6,%zmm15 + vpternlogq $0x96,%zmm3,%zmm7,%zmm16 + vpclmulqdq $0x01,%zmm20,%zmm10,%zmm6 + vpclmulqdq $0x10,%zmm20,%zmm10,%zmm7 + vpternlogq $0x96,%zmm4,%zmm6,%zmm17 + vpternlogq $0x96,%zmm5,%zmm7,%zmm19 + vmovdqu64 304(%rsi),%ymm20 + vinserti64x2 $2,336(%rsi),%zmm20,%zmm20 + vpclmulqdq $0x01,%zmm20,%zmm11,%zmm4 + vpclmulqdq $0x10,%zmm20,%zmm11,%zmm5 + vpclmulqdq $0x11,%zmm20,%zmm11,%zmm0 + vpclmulqdq $0x00,%zmm20,%zmm11,%zmm3 + + vpxorq %zmm17,%zmm4,%zmm4 + vpxorq %zmm19,%zmm5,%zmm5 + vpxorq %zmm15,%zmm0,%zmm0 + vpxorq %zmm16,%zmm3,%zmm3 + + vpxorq %zmm5,%zmm4,%zmm4 + vpsrldq $8,%zmm4,%zmm17 + vpslldq $8,%zmm4,%zmm19 + vpxorq %zmm17,%zmm0,%zmm0 + vpxorq %zmm19,%zmm3,%zmm3 + vextracti64x4 $1,%zmm0,%ymm17 + vpxorq %ymm17,%ymm0,%ymm0 + vextracti32x4 $1,%ymm0,%xmm17 + vpxorq %xmm17,%xmm0,%xmm0 + vextracti64x4 $1,%zmm3,%ymm19 + vpxorq %ymm19,%ymm3,%ymm3 + vextracti32x4 $1,%ymm3,%xmm19 + vpxorq %xmm19,%xmm3,%xmm3 + vmovdqa64 POLY2(%rip),%xmm20 + + + vpclmulqdq $0x01,%xmm3,%xmm20,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm3,%xmm4 + + + vpclmulqdq $0x00,%xmm4,%xmm20,%xmm5 + vpsrldq $4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm4,%xmm20,%xmm14 + vpslldq $4,%xmm14,%xmm14 + vpternlogq $0x96,%xmm0,%xmm5,%xmm14 + +L$_small_initial_compute_done_982: + vpxorq %xmm13,%xmm14,%xmm14 +L$_after_reduction_982: +L$_small_initial_blocks_encrypted_966: +L$_ghash_done_821: + vmovdqu64 %xmm2,0(%rsi) + vmovdqu64 %xmm14,64(%rsi) +L$_enc_dec_done_821: + jmp L$exit_gcm_decrypt +L$exit_gcm_decrypt: + cmpq $256,%r8 + jbe L$skip_hkeys_cleanup_983 + vpxor %xmm0,%xmm0,%xmm0 + vmovdqa64 %zmm0,0(%rsp) + vmovdqa64 %zmm0,64(%rsp) + vmovdqa64 %zmm0,128(%rsp) + vmovdqa64 %zmm0,192(%rsp) + vmovdqa64 %zmm0,256(%rsp) + vmovdqa64 %zmm0,320(%rsp) + vmovdqa64 %zmm0,384(%rsp) + vmovdqa64 %zmm0,448(%rsp) + vmovdqa64 %zmm0,512(%rsp) + vmovdqa64 %zmm0,576(%rsp) + vmovdqa64 %zmm0,640(%rsp) + vmovdqa64 %zmm0,704(%rsp) +L$skip_hkeys_cleanup_983: + vzeroupper + leaq (%rbp),%rsp + + popq %r15 + + popq %r14 + + popq %r13 + + popq %r12 + + popq %rbp + + popq %rbx + + .byte 0xf3,0xc3 +L$decrypt_seh_end: + + +.globl _ossl_aes_gcm_finalize_avx512 + +.p2align 5 +_ossl_aes_gcm_finalize_avx512: + +.byte 243,15,30,250 + vmovdqu 336(%rdi),%xmm2 + vmovdqu 32(%rdi),%xmm3 + vmovdqu 64(%rdi),%xmm4 + + + cmpq $0,%rsi + je L$_partial_done_984 + + vpclmulqdq $0x11,%xmm2,%xmm4,%xmm0 + vpclmulqdq $0x00,%xmm2,%xmm4,%xmm16 + vpclmulqdq $0x01,%xmm2,%xmm4,%xmm17 + vpclmulqdq $0x10,%xmm2,%xmm4,%xmm4 + vpxorq %xmm17,%xmm4,%xmm4 + + vpsrldq $8,%xmm4,%xmm17 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm17,%xmm0,%xmm0 + vpxorq %xmm16,%xmm4,%xmm4 + + + + vmovdqu64 POLY2(%rip),%xmm17 + + vpclmulqdq $0x01,%xmm4,%xmm17,%xmm16 + vpslldq $8,%xmm16,%xmm16 + vpxorq %xmm16,%xmm4,%xmm4 + + + + vpclmulqdq $0x00,%xmm4,%xmm17,%xmm16 + vpsrldq $4,%xmm16,%xmm16 + vpclmulqdq $0x10,%xmm4,%xmm17,%xmm4 + vpslldq $4,%xmm4,%xmm4 + + vpternlogq $0x96,%xmm16,%xmm0,%xmm4 + +L$_partial_done_984: + vmovq 56(%rdi),%xmm5 + vpinsrq $1,48(%rdi),%xmm5,%xmm5 + vpsllq $3,%xmm5,%xmm5 + + vpxor %xmm5,%xmm4,%xmm4 + + vpclmulqdq $0x11,%xmm2,%xmm4,%xmm0 + vpclmulqdq $0x00,%xmm2,%xmm4,%xmm16 + vpclmulqdq $0x01,%xmm2,%xmm4,%xmm17 + vpclmulqdq $0x10,%xmm2,%xmm4,%xmm4 + vpxorq %xmm17,%xmm4,%xmm4 + + vpsrldq $8,%xmm4,%xmm17 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm17,%xmm0,%xmm0 + vpxorq %xmm16,%xmm4,%xmm4 + + + + vmovdqu64 POLY2(%rip),%xmm17 + + vpclmulqdq $0x01,%xmm4,%xmm17,%xmm16 + vpslldq $8,%xmm16,%xmm16 + vpxorq %xmm16,%xmm4,%xmm4 + + + + vpclmulqdq $0x00,%xmm4,%xmm17,%xmm16 + vpsrldq $4,%xmm16,%xmm16 + vpclmulqdq $0x10,%xmm4,%xmm17,%xmm4 + vpslldq $4,%xmm4,%xmm4 + + vpternlogq $0x96,%xmm16,%xmm0,%xmm4 + + vpshufb SHUF_MASK(%rip),%xmm4,%xmm4 + vpxor %xmm4,%xmm3,%xmm3 + +L$_return_T_984: + vmovdqu %xmm3,64(%rdi) +L$abort_finalize: + .byte 0xf3,0xc3 + + +.globl _ossl_gcm_gmult_avx512 +.private_extern _ossl_gcm_gmult_avx512 + +.p2align 5 +_ossl_gcm_gmult_avx512: + +.byte 243,15,30,250 + vmovdqu64 (%rdi),%xmm1 + vmovdqu64 336(%rsi),%xmm2 + + vpclmulqdq $0x11,%xmm2,%xmm1,%xmm3 + vpclmulqdq $0x00,%xmm2,%xmm1,%xmm4 + vpclmulqdq $0x01,%xmm2,%xmm1,%xmm5 + vpclmulqdq $0x10,%xmm2,%xmm1,%xmm1 + vpxorq %xmm5,%xmm1,%xmm1 + + vpsrldq $8,%xmm1,%xmm5 + vpslldq $8,%xmm1,%xmm1 + vpxorq %xmm5,%xmm3,%xmm3 + vpxorq %xmm4,%xmm1,%xmm1 + + + + vmovdqu64 POLY2(%rip),%xmm5 + + vpclmulqdq $0x01,%xmm1,%xmm5,%xmm4 + vpslldq $8,%xmm4,%xmm4 + vpxorq %xmm4,%xmm1,%xmm1 + + + + vpclmulqdq $0x00,%xmm1,%xmm5,%xmm4 + vpsrldq $4,%xmm4,%xmm4 + vpclmulqdq $0x10,%xmm1,%xmm5,%xmm1 + vpslldq $4,%xmm1,%xmm1 + + vpternlogq $0x96,%xmm4,%xmm3,%xmm1 + + vmovdqu64 %xmm1,(%rdi) + vzeroupper +L$abort_gmult: + .byte 0xf3,0xc3 + + +.section __DATA,__const +.p2align 4 +POLY:.quad 0x0000000000000001, 0xC200000000000000 + +.p2align 6 +POLY2: +.quad 0x00000001C2000000, 0xC200000000000000 +.quad 0x00000001C2000000, 0xC200000000000000 +.quad 0x00000001C2000000, 0xC200000000000000 +.quad 0x00000001C2000000, 0xC200000000000000 + +.p2align 4 +TWOONE:.quad 0x0000000000000001, 0x0000000100000000 + + + +.p2align 6 +SHUF_MASK: +.quad 0x08090A0B0C0D0E0F, 0x0001020304050607 +.quad 0x08090A0B0C0D0E0F, 0x0001020304050607 +.quad 0x08090A0B0C0D0E0F, 0x0001020304050607 +.quad 0x08090A0B0C0D0E0F, 0x0001020304050607 + +.p2align 4 +SHIFT_MASK: +.quad 0x0706050403020100, 0x0f0e0d0c0b0a0908 + +ALL_F: +.quad 0xffffffffffffffff, 0xffffffffffffffff + +ZERO: +.quad 0x0000000000000000, 0x0000000000000000 + +.p2align 4 +ONE: +.quad 0x0000000000000001, 0x0000000000000000 + +.p2align 4 +ONEf: +.quad 0x0000000000000000, 0x0100000000000000 + +.p2align 6 +ddq_add_1234: +.quad 0x0000000000000001, 0x0000000000000000 +.quad 0x0000000000000002, 0x0000000000000000 +.quad 0x0000000000000003, 0x0000000000000000 +.quad 0x0000000000000004, 0x0000000000000000 + +.p2align 6 +ddq_add_5678: +.quad 0x0000000000000005, 0x0000000000000000 +.quad 0x0000000000000006, 0x0000000000000000 +.quad 0x0000000000000007, 0x0000000000000000 +.quad 0x0000000000000008, 0x0000000000000000 + +.p2align 6 +ddq_add_4444: +.quad 0x0000000000000004, 0x0000000000000000 +.quad 0x0000000000000004, 0x0000000000000000 +.quad 0x0000000000000004, 0x0000000000000000 +.quad 0x0000000000000004, 0x0000000000000000 + +.p2align 6 +ddq_add_8888: +.quad 0x0000000000000008, 0x0000000000000000 +.quad 0x0000000000000008, 0x0000000000000000 +.quad 0x0000000000000008, 0x0000000000000000 +.quad 0x0000000000000008, 0x0000000000000000 + +.p2align 6 +ddq_addbe_1234: +.quad 0x0000000000000000, 0x0100000000000000 +.quad 0x0000000000000000, 0x0200000000000000 +.quad 0x0000000000000000, 0x0300000000000000 +.quad 0x0000000000000000, 0x0400000000000000 + +.p2align 6 +ddq_addbe_4444: +.quad 0x0000000000000000, 0x0400000000000000 +.quad 0x0000000000000000, 0x0400000000000000 +.quad 0x0000000000000000, 0x0400000000000000 +.quad 0x0000000000000000, 0x0400000000000000 + +.p2align 6 +byte_len_to_mask_table: +.value 0x0000, 0x0001, 0x0003, 0x0007 +.value 0x000f, 0x001f, 0x003f, 0x007f +.value 0x00ff, 0x01ff, 0x03ff, 0x07ff +.value 0x0fff, 0x1fff, 0x3fff, 0x7fff +.value 0xffff + +.p2align 6 +byte64_len_to_mask_table: +.quad 0x0000000000000000, 0x0000000000000001 +.quad 0x0000000000000003, 0x0000000000000007 +.quad 0x000000000000000f, 0x000000000000001f +.quad 0x000000000000003f, 0x000000000000007f +.quad 0x00000000000000ff, 0x00000000000001ff +.quad 0x00000000000003ff, 0x00000000000007ff +.quad 0x0000000000000fff, 0x0000000000001fff +.quad 0x0000000000003fff, 0x0000000000007fff +.quad 0x000000000000ffff, 0x000000000001ffff +.quad 0x000000000003ffff, 0x000000000007ffff +.quad 0x00000000000fffff, 0x00000000001fffff +.quad 0x00000000003fffff, 0x00000000007fffff +.quad 0x0000000000ffffff, 0x0000000001ffffff +.quad 0x0000000003ffffff, 0x0000000007ffffff +.quad 0x000000000fffffff, 0x000000001fffffff +.quad 0x000000003fffffff, 0x000000007fffffff +.quad 0x00000000ffffffff, 0x00000001ffffffff +.quad 0x00000003ffffffff, 0x00000007ffffffff +.quad 0x0000000fffffffff, 0x0000001fffffffff +.quad 0x0000003fffffffff, 0x0000007fffffffff +.quad 0x000000ffffffffff, 0x000001ffffffffff +.quad 0x000003ffffffffff, 0x000007ffffffffff +.quad 0x00000fffffffffff, 0x00001fffffffffff +.quad 0x00003fffffffffff, 0x00007fffffffffff +.quad 0x0000ffffffffffff, 0x0001ffffffffffff +.quad 0x0003ffffffffffff, 0x0007ffffffffffff +.quad 0x000fffffffffffff, 0x001fffffffffffff +.quad 0x003fffffffffffff, 0x007fffffffffffff +.quad 0x00ffffffffffffff, 0x01ffffffffffffff +.quad 0x03ffffffffffffff, 0x07ffffffffffffff +.quad 0x0fffffffffffffff, 0x1fffffffffffffff +.quad 0x3fffffffffffffff, 0x7fffffffffffffff +.quad 0xffffffffffffffff diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/modes/aesni-gcm-x86_64.s b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/modes/aesni-gcm-x86_64.s index c26df9da7e6377..ff62687756e088 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/modes/aesni-gcm-x86_64.s +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/modes/aesni-gcm-x86_64.s @@ -774,6 +774,7 @@ L$gcm_enc_abort: .byte 0xf3,0xc3 +.section __DATA,__const .p2align 6 L$bswap_mask: .byte 15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0 @@ -786,4 +787,5 @@ L$two_lsb: L$one_lsb: .byte 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 .byte 65,69,83,45,78,73,32,71,67,77,32,109,111,100,117,108,101,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 +.text .p2align 6 diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/modes/ghash-x86_64.s b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/modes/ghash-x86_64.s index a5b2d6672ca332..e048e2c429aa4b 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/modes/ghash-x86_64.s +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/modes/ghash-x86_64.s @@ -696,6 +696,7 @@ L$ghash_epilogue: .p2align 4 _gcm_init_clmul: +.byte 243,15,30,250 L$_init_clmul: movdqu (%rsi),%xmm2 pshufd $78,%xmm2,%xmm2 @@ -1294,6 +1295,7 @@ L$done: .p2align 5 _gcm_init_avx: +.byte 243,15,30,250 vzeroupper vmovdqu (%rsi),%xmm2 @@ -1786,6 +1788,7 @@ L$tail_no_xor_avx: .byte 0xf3,0xc3 +.section __DATA,__const .p2align 6 L$bswap_mask: .byte 15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0 @@ -1839,3 +1842,4 @@ L$rem_8bit: .byte 71,72,65,83,72,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 .p2align 6 +.text diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/params_idx.c b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/params_idx.c new file mode 100644 index 00000000000000..9d76ffededc24c --- /dev/null +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/params_idx.c @@ -0,0 +1,3366 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from crypto/params_idx.c.in + * + * Copyright 2023 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + +#include "internal/e_os.h" +#include "internal/param_names.h" +#include + +/* Machine generated TRIE -- generated by util/perl/OpenSSL/paramnames.pm */ +int ossl_param_find_pidx(const char *s) +{ + switch(s[0]) { + default: + break; + case 'a': + switch(s[1]) { + default: + break; + case 'c': + if (strcmp("vp-info", s + 2) == 0) + return PIDX_KDF_PARAM_X942_ACVPINFO; + break; + case 'd': + switch(s[2]) { + default: + break; + case 'd': + if (strcmp("itional-random", s + 3) == 0) + return PIDX_SIGNATURE_PARAM_ADD_RANDOM; + break; + case '\0': + return PIDX_KDF_PARAM_ARGON2_AD; + } + break; + case 'e': + if (strcmp("ad", s + 2) == 0) + return PIDX_CIPHER_PARAM_AEAD; + break; + case 'l': + switch(s[2]) { + default: + break; + case 'g': + switch(s[3]) { + default: + break; + case '_': + if (strcmp("id_param", s + 4) == 0) + return PIDX_CIPHER_PARAM_ALGORITHM_ID_PARAMS_OLD; + break; + case 'i': + if (strcmp("d-absent", s + 4) == 0) + return PIDX_DIGEST_PARAM_ALGID_ABSENT; + break; + case 'o': + switch(s[4]) { + default: + break; + case 'r': + switch(s[5]) { + default: + break; + case 'i': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case 'h': + switch(s[8]) { + default: + break; + case 'm': + switch(s[9]) { + default: + break; + case '-': + switch(s[10]) { + default: + break; + case 'i': + switch(s[11]) { + default: + break; + case 'd': + switch(s[12]) { + default: + break; + case '-': + if (strcmp("params", s + 13) == 0) + return PIDX_ALG_PARAM_ALGORITHM_ID_PARAMS; + break; + case '\0': + return PIDX_ALG_PARAM_ALGORITHM_ID; + } + } + } + } + } + } + } + } + } + } + break; + case 'i': + if (strcmp("as", s + 3) == 0) + return PIDX_STORE_PARAM_ALIAS; + } + break; + case '\0': + return PIDX_PKEY_PARAM_EC_A; + } + break; + case 'b': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("sis-type", s + 2) == 0) + return PIDX_PKEY_PARAM_EC_CHAR2_TYPE; + break; + case 'i': + if (strcmp("ts", s + 2) == 0) + return PIDX_PKEY_PARAM_BITS; + break; + case 'l': + switch(s[2]) { + default: + break; + case 'o': + switch(s[3]) { + default: + break; + case 'c': + switch(s[4]) { + default: + break; + case 'k': + switch(s[5]) { + default: + break; + case '-': + if (strcmp("size", s + 6) == 0) + return PIDX_MAC_PARAM_BLOCK_SIZE; + break; + case '_': + if (strcmp("padding", s + 6) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_BLOCK_PADDING; + break; + case 's': + if (strcmp("ize", s + 6) == 0) + return PIDX_DIGEST_PARAM_BLOCK_SIZE; + } + } + } + } + break; + case 'u': + if (strcmp("ildinfo", s + 2) == 0) + return PIDX_PROV_PARAM_BUILDINFO; + break; + case '\0': + return PIDX_PKEY_PARAM_EC_B; + } + break; + case 'c': + switch(s[1]) { + default: + break; + case '-': + if (strcmp("rounds", s + 2) == 0) + return PIDX_MAC_PARAM_C_ROUNDS; + break; + case 'e': + if (strcmp("kalg", s + 2) == 0) + return PIDX_KDF_PARAM_CEK_ALG; + break; + case 'i': + if (strcmp("pher", s + 2) == 0) + return PIDX_ALG_PARAM_CIPHER; + break; + case 'o': + switch(s[2]) { + default: + break; + case 'f': + if (strcmp("actor", s + 3) == 0) + return PIDX_PKEY_PARAM_EC_COFACTOR; + break; + case 'n': + switch(s[3]) { + default: + break; + case 's': + if (strcmp("tant", s + 4) == 0) + return PIDX_KDF_PARAM_CONSTANT; + break; + case 't': + if (strcmp("ext-string", s + 4) == 0) + return PIDX_SIGNATURE_PARAM_CONTEXT_STRING; + } + } + break; + case 't': + switch(s[2]) { + default: + break; + case 's': + switch(s[3]) { + default: + break; + case '_': + if (strcmp("mode", s + 4) == 0) + return PIDX_CIPHER_PARAM_CTS_MODE; + break; + case '\0': + return PIDX_CIPHER_PARAM_CTS; + } + } + break; + case 'u': + switch(s[2]) { + default: + break; + case 's': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case 'o': + switch(s[5]) { + default: + break; + case 'm': + switch(s[6]) { + default: + break; + case '-': + if (strcmp("iv", s + 7) == 0) + return PIDX_CIPHER_PARAM_CUSTOM_IV; + break; + case '\0': + return PIDX_MAC_PARAM_CUSTOM; + } + } + } + } + } + } + break; + case 'd': + switch(s[1]) { + default: + break; + case '-': + if (strcmp("rounds", s + 2) == 0) + return PIDX_MAC_PARAM_D_ROUNDS; + break; + case 'a': + switch(s[2]) { + default: + break; + case 't': + switch(s[3]) { + default: + break; + case 'a': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 's': + if (strcmp("tructure", s + 6) == 0) + return PIDX_OBJECT_PARAM_DATA_STRUCTURE; + break; + case 't': + if (strcmp("ype", s + 6) == 0) + return PIDX_OBJECT_PARAM_DATA_TYPE; + } + break; + case '\0': + return PIDX_OBJECT_PARAM_DATA; + } + } + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'c': + switch(s[3]) { + default: + break; + case 'o': + if (strcmp("ded-from-explicit", s + 4) == 0) + return PIDX_PKEY_PARAM_EC_DECODED_FROM_EXPLICIT_PARAMS; + break; + case 'r': + if (strcmp("ypt-only", s + 4) == 0) + return PIDX_CIPHER_PARAM_DECRYPT_ONLY; + } + break; + case 'f': + if (strcmp("ault-digest", s + 3) == 0) + return PIDX_PKEY_PARAM_DEFAULT_DIGEST; + break; + case 's': + if (strcmp("c", s + 3) == 0) + return PIDX_OBJECT_PARAM_DESC; + break; + case 't': + if (strcmp("erministic", s + 3) == 0) + return PIDX_SIGNATURE_PARAM_DETERMINISTIC; + } + break; + case 'h': + if (strcmp("kem-ikm", s + 2) == 0) + return PIDX_PKEY_PARAM_DHKEM_IKM; + break; + case 'i': + switch(s[2]) { + default: + break; + case 'g': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case 's': + switch(s[5]) { + default: + break; + case 't': + switch(s[6]) { + default: + break; + case '-': + switch(s[7]) { + default: + break; + case 'c': + if (strcmp("heck", s + 8) == 0) + return PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK; + break; + case 'n': + if (strcmp("oinit", s + 8) == 0) + return PIDX_MAC_PARAM_DIGEST_NOINIT; + break; + case 'o': + if (strcmp("neshot", s + 8) == 0) + return PIDX_MAC_PARAM_DIGEST_ONESHOT; + break; + case 'p': + if (strcmp("rops", s + 8) == 0) + return PIDX_ASYM_CIPHER_PARAM_OAEP_DIGEST_PROPS; + break; + case 's': + if (strcmp("ize", s + 8) == 0) + return PIDX_PKEY_PARAM_DIGEST_SIZE; + } + break; + case '\0': + return PIDX_STORE_PARAM_DIGEST; + } + } + } + } + break; + case 's': + if (strcmp("tid", s + 3) == 0) + return PIDX_PKEY_PARAM_DIST_ID; + } + break; + case 'r': + if (strcmp("bg-no-trunc-md", s + 2) == 0) + return PIDX_PROV_PARAM_DRBG_TRUNC_DIGEST; + break; + case 's': + if (strcmp("a-sign-disabled", s + 2) == 0) + return PIDX_PROV_PARAM_DSA_SIGN_DISABLED; + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_D; + } + break; + case 'e': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("rly_clean", s + 2) == 0) + return PIDX_KDF_PARAM_EARLY_CLEAN; + break; + case 'c': + switch(s[2]) { + default: + break; + case 'd': + switch(s[3]) { + default: + break; + case 'h': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'c': + switch(s[6]) { + default: + break; + case 'o': + switch(s[7]) { + default: + break; + case 'f': + switch(s[8]) { + default: + break; + case 'a': + switch(s[9]) { + default: + break; + case 'c': + switch(s[10]) { + default: + break; + case 't': + switch(s[11]) { + default: + break; + case 'o': + switch(s[12]) { + default: + break; + case 'r': + switch(s[13]) { + default: + break; + case '-': + switch(s[14]) { + default: + break; + case 'c': + if (strcmp("heck", s + 15) == 0) + return PIDX_PROV_PARAM_ECDH_COFACTOR_CHECK; + break; + case 'm': + if (strcmp("ode", s + 15) == 0) + return PIDX_EXCHANGE_PARAM_EC_ECDH_COFACTOR_MODE; + } + } + } + } + } + } + } + } + } + } + } + } + } + break; + case 'm': + if (strcmp("s_check", s + 2) == 0) + return PIDX_KDF_PARAM_FIPS_EMS_CHECK; + break; + case 'n': + switch(s[2]) { + default: + break; + case 'c': + switch(s[3]) { + default: + break; + case 'o': + switch(s[4]) { + default: + break; + case 'd': + switch(s[5]) { + default: + break; + case 'e': + if (strcmp("d-pub-key", s + 6) == 0) + return PIDX_PKEY_PARAM_ENCODED_PUBLIC_KEY; + break; + case 'i': + if (strcmp("ng", s + 6) == 0) + return PIDX_PKEY_PARAM_EC_ENCODING; + } + } + break; + case 'r': + switch(s[4]) { + default: + break; + case 'y': + switch(s[5]) { + default: + break; + case 'p': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case '-': + switch(s[8]) { + default: + break; + case 'c': + if (strcmp("heck", s + 9) == 0) + return PIDX_CIPHER_PARAM_FIPS_ENCRYPT_CHECK; + break; + case 'l': + if (strcmp("evel", s + 9) == 0) + return PIDX_ENCODER_PARAM_ENCRYPT_LEVEL; + } + } + } + } + } + } + break; + case 'g': + if (strcmp("ine", s + 3) == 0) + return PIDX_ALG_PARAM_ENGINE; + break; + case 't': + switch(s[3]) { + default: + break; + case 'r': + switch(s[4]) { + default: + break; + case 'o': + switch(s[5]) { + default: + break; + case 'p': + switch(s[6]) { + default: + break; + case 'y': + switch(s[7]) { + default: + break; + case '_': + if (strcmp("required", s + 8) == 0) + return PIDX_DRBG_PARAM_ENTROPY_REQUIRED; + break; + case '\0': + return PIDX_KDF_PARAM_HMACDRBG_ENTROPY; + } + } + } + } + } + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_E; + break; + case 'x': + if (strcmp("pect", s + 2) == 0) + return PIDX_STORE_PARAM_EXPECT; + } + break; + case 'f': + switch(s[1]) { + default: + break; + case 'i': + switch(s[2]) { + default: + break; + case 'e': + if (strcmp("ld-type", s + 3) == 0) + return PIDX_PKEY_PARAM_EC_FIELD_TYPE; + break; + case 'n': + if (strcmp("gerprint", s + 3) == 0) + return PIDX_STORE_PARAM_FINGERPRINT; + break; + case 'p': + if (strcmp("s-indicator", s + 3) == 0) + return PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR; + } + } + break; + case 'g': + switch(s[1]) { + default: + break; + case 'e': + switch(s[2]) { + default: + break; + case 'n': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case 'r': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case 'e': + switch(s[8]) { + default: + break; + case '\0': + return PIDX_RAND_PARAM_GENERATE; + } + break; + case 'o': + if (strcmp("r", s + 8) == 0) + return PIDX_PKEY_PARAM_EC_GENERATOR; + } + } + } + } + } + } + break; + case 'i': + if (strcmp("ndex", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_GINDEX; + break; + case 'r': + switch(s[2]) { + default: + break; + case 'o': + switch(s[3]) { + default: + break; + case 'u': + switch(s[4]) { + default: + break; + case 'p': + switch(s[5]) { + default: + break; + case '-': + if (strcmp("check", s + 6) == 0) + return PIDX_PKEY_PARAM_EC_GROUP_CHECK_TYPE; + break; + case '\0': + return PIDX_PKEY_PARAM_GROUP_NAME; + } + } + } + } + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_G; + } + break; + case 'h': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("s-randkey", s + 2) == 0) + return PIDX_CIPHER_PARAM_HAS_RAND_KEY; + break; + case 'i': + if (strcmp("ndex", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_H; + break; + case 'k': + switch(s[2]) { + default: + break; + case 'd': + switch(s[3]) { + default: + break; + case 'f': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 6) == 0) + return PIDX_PROV_PARAM_HKDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 6) == 0) + return PIDX_PROV_PARAM_HKDF_KEY_CHECK; + } + } + } + } + break; + case 'm': + if (strcmp("ac-key-check", s + 2) == 0) + return PIDX_PROV_PARAM_HMAC_KEY_CHECK; + break; + case 's': + if (strcmp("_padding", s + 2) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_HS_PADDING; + } + break; + case 'i': + switch(s[1]) { + default: + break; + case 'd': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_KDF_PARAM_PKCS12_ID; + } + break; + case 'k': + if (strcmp("me", s + 2) == 0) + return PIDX_KEM_PARAM_IKME; + break; + case 'm': + if (strcmp("plicit-rejection", s + 2) == 0) + return PIDX_PKEY_PARAM_IMPLICIT_REJECTION; + break; + case 'n': + switch(s[2]) { + default: + break; + case 'c': + if (strcmp("lude-public", s + 3) == 0) + return PIDX_PKEY_PARAM_EC_INCLUDE_PUBLIC; + break; + case 'f': + if (strcmp("o", s + 3) == 0) + return PIDX_PASSPHRASE_PARAM_INFO; + break; + case 'p': + if (strcmp("ut-type", s + 3) == 0) + return PIDX_STORE_PARAM_INPUT_TYPE; + break; + case 's': + if (strcmp("tance", s + 3) == 0) + return PIDX_SIGNATURE_PARAM_INSTANCE; + } + break; + case 't': + switch(s[2]) { + default: + break; + case 'e': + switch(s[3]) { + default: + break; + case 'r': + switch(s[4]) { + default: + break; + case 'a': + if (strcmp("tion", s + 5) == 0) + return PIDX_GEN_PARAM_ITERATION; + break; + case '\0': + return PIDX_KDF_PARAM_ITER; + } + } + } + break; + case 'v': + switch(s[2]) { + default: + break; + case '-': + if (strcmp("generated", s + 3) == 0) + return PIDX_CIPHER_PARAM_AEAD_IV_GENERATED; + break; + case 'l': + if (strcmp("en", s + 3) == 0) + return PIDX_CIPHER_PARAM_IVLEN; + break; + case '\0': + return PIDX_MAC_PARAM_IV; + } + } + break; + case 'j': + switch(s[1]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_COFACTOR; + } + break; + case 'k': + switch(s[1]) { + default: + break; + case '1': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_PP_K1; + } + break; + case '2': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_PP_K2; + } + break; + case '3': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_PP_K3; + } + break; + case 'a': + if (strcmp("t", s + 2) == 0) + return PIDX_SIGNATURE_PARAM_KAT; + break; + case 'b': + if (strcmp("kdf-key-check", s + 2) == 0) + return PIDX_PROV_PARAM_KBKDF_KEY_CHECK; + break; + case 'd': + switch(s[2]) { + default: + break; + case 'f': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'd': + switch(s[5]) { + default: + break; + case 'i': + switch(s[6]) { + default: + break; + case 'g': + switch(s[7]) { + default: + break; + case 'e': + switch(s[8]) { + default: + break; + case 's': + switch(s[9]) { + default: + break; + case 't': + switch(s[10]) { + default: + break; + case '-': + if (strcmp("props", s + 11) == 0) + return PIDX_EXCHANGE_PARAM_KDF_DIGEST_PROPS; + break; + case '\0': + return PIDX_EXCHANGE_PARAM_KDF_DIGEST; + } + } + } + } + } + } + break; + case 'o': + if (strcmp("utlen", s + 5) == 0) + return PIDX_EXCHANGE_PARAM_KDF_OUTLEN; + break; + case 't': + if (strcmp("ype", s + 5) == 0) + return PIDX_EXCHANGE_PARAM_KDF_TYPE; + break; + case 'u': + if (strcmp("km", s + 5) == 0) + return PIDX_EXCHANGE_PARAM_KDF_UKM; + } + } + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'y': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'c': + if (strcmp("heck", s + 5) == 0) + return PIDX_PKEY_PARAM_FIPS_KEY_CHECK; + break; + case 'l': + if (strcmp("ength", s + 5) == 0) + return PIDX_SKEY_PARAM_KEY_LENGTH; + } + break; + case 'b': + if (strcmp("its", s + 4) == 0) + return PIDX_CIPHER_PARAM_RC2_KEYBITS; + break; + case 'l': + if (strcmp("en", s + 4) == 0) + return PIDX_CIPHER_PARAM_KEYLEN; + break; + case '\0': + return PIDX_MAC_PARAM_KEY; + } + } + break; + case 'm': + if (strcmp("ac-key-check", s + 2) == 0) + return PIDX_PROV_PARAM_KMAC_KEY_CHECK; + } + break; + case 'l': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'b': + if (strcmp("el", s + 3) == 0) + return PIDX_KDF_PARAM_LABEL; + break; + case 'n': + if (strcmp("es", s + 3) == 0) + return PIDX_KDF_PARAM_ARGON2_LANES; + } + } + break; + case 'm': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'c': + switch(s[3]) { + default: + break; + case 'k': + if (strcmp("ey", s + 4) == 0) + return PIDX_CIPHER_PARAM_AEAD_MAC_KEY; + break; + case 'l': + if (strcmp("en", s + 4) == 0) + return PIDX_KDF_PARAM_MAC_SIZE; + break; + case '\0': + return PIDX_ALG_PARAM_MAC; + } + break; + case 'n': + if (strcmp("datory-digest", s + 3) == 0) + return PIDX_PKEY_PARAM_MANDATORY_DIGEST; + break; + case 'x': + switch(s[3]) { + default: + break; + case '-': + if (strcmp("size", s + 4) == 0) + return PIDX_PKEY_PARAM_MAX_SIZE; + break; + case '_': + switch(s[4]) { + default: + break; + case 'a': + if (strcmp("dinlen", s + 5) == 0) + return PIDX_DRBG_PARAM_MAX_ADINLEN; + break; + case 'e': + switch(s[5]) { + default: + break; + case 'a': + if (strcmp("rly_data", s + 6) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_MAX_EARLY_DATA; + break; + case 'n': + if (strcmp("tropylen", s + 6) == 0) + return PIDX_DRBG_PARAM_MAX_ENTROPYLEN; + } + break; + case 'f': + if (strcmp("rag_len", s + 5) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_MAX_FRAG_LEN; + break; + case 'n': + if (strcmp("oncelen", s + 5) == 0) + return PIDX_DRBG_PARAM_MAX_NONCELEN; + break; + case 'p': + if (strcmp("erslen", s + 5) == 0) + return PIDX_DRBG_PARAM_MAX_PERSLEN; + break; + case 'r': + if (strcmp("equest", s + 5) == 0) + return PIDX_RAND_PARAM_MAX_REQUEST; + } + break; + case 'i': + if (strcmp("um_length", s + 4) == 0) + return PIDX_DRBG_PARAM_MAX_LENGTH; + break; + case 'm': + if (strcmp("em_bytes", s + 4) == 0) + return PIDX_KDF_PARAM_SCRYPT_MAXMEM; + } + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'm': + if (strcmp("cost", s + 3) == 0) + return PIDX_KDF_PARAM_ARGON2_MEMCOST; + break; + case 's': + if (strcmp("sage-encoding", s + 3) == 0) + return PIDX_SIGNATURE_PARAM_MESSAGE_ENCODING; + } + break; + case 'g': + switch(s[2]) { + default: + break; + case 'f': + switch(s[3]) { + default: + break; + case '1': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'd': + if (strcmp("igest", s + 6) == 0) + return PIDX_PKEY_PARAM_MGF1_DIGEST; + break; + case 'p': + if (strcmp("roperties", s + 6) == 0) + return PIDX_PKEY_PARAM_MGF1_PROPERTIES; + } + } + break; + case '\0': + return PIDX_PKEY_PARAM_MASKGENFUNC; + } + } + break; + case 'i': + switch(s[2]) { + default: + break; + case 'c': + if (strcmp("alg", s + 3) == 0) + return PIDX_DIGEST_PARAM_MICALG; + break; + case 'n': + switch(s[3]) { + default: + break; + case '_': + switch(s[4]) { + default: + break; + case 'e': + if (strcmp("ntropylen", s + 5) == 0) + return PIDX_DRBG_PARAM_MIN_ENTROPYLEN; + break; + case 'n': + if (strcmp("oncelen", s + 5) == 0) + return PIDX_DRBG_PARAM_MIN_NONCELEN; + } + break; + case 'i': + if (strcmp("um_length", s + 4) == 0) + return PIDX_DRBG_PARAM_MIN_LENGTH; + } + } + break; + case 'l': + switch(s[2]) { + default: + break; + case '-': + switch(s[3]) { + default: + break; + case 'd': + switch(s[4]) { + default: + break; + case 's': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case '.': + switch(s[7]) { + default: + break; + case 'i': + if (strcmp("nput_formats", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_DSA_INPUT_FORMATS; + break; + case 'o': + if (strcmp("utput_formats", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_DSA_OUTPUT_FORMATS; + break; + case 'p': + if (strcmp("refer_seed", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_DSA_PREFER_SEED; + break; + case 'r': + if (strcmp("etain_seed", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_DSA_RETAIN_SEED; + } + } + } + } + break; + case 'k': + switch(s[4]) { + default: + break; + case 'e': + switch(s[5]) { + default: + break; + case 'm': + switch(s[6]) { + default: + break; + case '.': + switch(s[7]) { + default: + break; + case 'i': + switch(s[8]) { + default: + break; + case 'm': + if (strcmp("port_pct_type", s + 9) == 0) + return PIDX_PKEY_PARAM_ML_KEM_IMPORT_PCT_TYPE; + break; + case 'n': + if (strcmp("put_formats", s + 9) == 0) + return PIDX_PKEY_PARAM_ML_KEM_INPUT_FORMATS; + } + break; + case 'o': + if (strcmp("utput_formats", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_KEM_OUTPUT_FORMATS; + break; + case 'p': + if (strcmp("refer_seed", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_KEM_PREFER_SEED; + break; + case 'r': + if (strcmp("etain_seed", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_KEM_RETAIN_SEED; + } + } + } + } + } + } + break; + case 'o': + switch(s[2]) { + default: + break; + case 'd': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case '\0': + return PIDX_LIBSSL_RECORD_LAYER_PARAM_MODE; + } + break; + case 'u': + if (strcmp("le-filename", s + 4) == 0) + return PIDX_PROV_PARAM_CORE_MODULE_FILENAME; + } + } + break; + case 'u': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_SIGNATURE_PARAM_MU; + } + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_M; + } + break; + case 'n': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("me", s + 2) == 0) + return PIDX_STORE_PARAM_ISSUER; + break; + case 'o': + switch(s[2]) { + default: + break; + case '-': + if (strcmp("short-mac", s + 3) == 0) + return PIDX_PROV_PARAM_NO_SHORT_MAC; + break; + case 'n': + switch(s[3]) { + default: + break; + case 'c': + switch(s[4]) { + default: + break; + case 'e': + switch(s[5]) { + default: + break; + case '-': + if (strcmp("type", s + 6) == 0) + return PIDX_SIGNATURE_PARAM_NONCE_TYPE; + break; + case '\0': + return PIDX_KDF_PARAM_HMACDRBG_NONCE; + } + } + } + } + break; + case 'u': + if (strcmp("m", s + 2) == 0) + return PIDX_CIPHER_PARAM_NUM; + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_N; + } + break; + case 'o': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("ep-label", s + 2) == 0) + return PIDX_ASYM_CIPHER_PARAM_OAEP_LABEL; + break; + case 'p': + switch(s[2]) { + default: + break; + case 'e': + switch(s[3]) { + default: + break; + case 'n': + if (strcmp("ssl-version", s + 4) == 0) + return PIDX_PROV_PARAM_CORE_VERSION; + break; + case 'r': + if (strcmp("ation", s + 4) == 0) + return PIDX_KEM_PARAM_OPERATION; + } + break; + case 't': + if (strcmp("ions", s + 3) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_OPTIONS; + } + break; + case 'r': + if (strcmp("der", s + 2) == 0) + return PIDX_PKEY_PARAM_EC_ORDER; + } + break; + case 'p': + switch(s[1]) { + default: + break; + case '1': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_P1; + } + break; + case '2': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_P2; + } + break; + case 'a': + switch(s[2]) { + default: + break; + case 'd': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'm': + if (strcmp("ode", s + 5) == 0) + return PIDX_PKEY_PARAM_PAD_MODE; + break; + case 't': + if (strcmp("ype", s + 5) == 0) + return PIDX_DIGEST_PARAM_PAD_TYPE; + } + break; + case 'd': + if (strcmp("ing", s + 4) == 0) + return PIDX_CIPHER_PARAM_PADDING; + break; + case '\0': + return PIDX_EXCHANGE_PARAM_PAD; + } + break; + case 'r': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case 'y': + switch(s[5]) { + default: + break; + case 'u': + if (strcmp("-info", s + 6) == 0) + return PIDX_KDF_PARAM_X942_PARTYUINFO; + break; + case 'v': + if (strcmp("-info", s + 6) == 0) + return PIDX_KDF_PARAM_X942_PARTYVINFO; + } + } + } + break; + case 's': + if (strcmp("s", s + 3) == 0) + return PIDX_KDF_PARAM_PASSWORD; + } + break; + case 'b': + switch(s[2]) { + default: + break; + case 'i': + if (strcmp("ts", s + 3) == 0) + return PIDX_PKEY_PARAM_FFC_PBITS; + break; + case 'k': + if (strcmp("df2-lower-bound-check", s + 3) == 0) + return PIDX_PROV_PARAM_PBKDF2_LOWER_BOUND_CHECK; + } + break; + case 'c': + if (strcmp("ounter", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_PCOUNTER; + break; + case 'i': + if (strcmp("peline-tag", s + 2) == 0) + return PIDX_CIPHER_PARAM_PIPELINE_AEAD_TAG; + break; + case 'k': + if (strcmp("cs5", s + 2) == 0) + return PIDX_KDF_PARAM_PKCS5; + break; + case 'o': + switch(s[2]) { + default: + break; + case 'i': + if (strcmp("nt-format", s + 3) == 0) + return PIDX_PKEY_PARAM_EC_POINT_CONVERSION_FORMAT; + break; + case 't': + if (strcmp("ential", s + 3) == 0) + return PIDX_GEN_PARAM_POTENTIAL; + } + break; + case 'r': + switch(s[2]) { + default: + break; + case 'e': + switch(s[3]) { + default: + break; + case 'd': + if (strcmp("iction_resistance", s + 4) == 0) + return PIDX_DRBG_PARAM_PREDICTION_RESISTANCE; + break; + case 'f': + if (strcmp("ix", s + 4) == 0) + return PIDX_KDF_PARAM_PREFIX; + } + break; + case 'i': + switch(s[3]) { + default: + break; + case 'm': + if (strcmp("es", s + 4) == 0) + return PIDX_PKEY_PARAM_RSA_PRIMES; + break; + case 'v': + switch(s[4]) { + default: + break; + case '_': + if (strcmp("len", s + 5) == 0) + return PIDX_PKEY_PARAM_DH_PRIV_LEN; + break; + case '\0': + return PIDX_PKEY_PARAM_PRIV_KEY; + } + } + break; + case 'o': + switch(s[3]) { + default: + break; + case 'p': + if (strcmp("erties", s + 4) == 0) + return PIDX_STORE_PARAM_PROPERTIES; + break; + case 'v': + if (strcmp("ider-name", s + 4) == 0) + return PIDX_PROV_PARAM_CORE_PROV_NAME; + } + } + break; + case 'u': + if (strcmp("b", s + 2) == 0) + return PIDX_PKEY_PARAM_PUB_KEY; + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_P; + } + break; + case 'q': + switch(s[1]) { + default: + break; + case '1': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_Q1; + } + break; + case '2': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_Q2; + } + break; + case 'b': + if (strcmp("its", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_QBITS; + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_Q; + break; + case 'x': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_PUB_X; + } + break; + case 'y': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_PUB_Y; + } + } + break; + case 'r': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'n': + switch(s[3]) { + default: + break; + case 'd': + switch(s[4]) { + default: + break; + case 'k': + if (strcmp("ey", s + 5) == 0) + return PIDX_CIPHER_PARAM_RANDOM_KEY; + break; + case 'o': + if (strcmp("m_data", s + 5) == 0) + return PIDX_DRBG_PARAM_RANDOM_DATA; + } + } + break; + case 'w': + if (strcmp("-bytes", s + 3) == 0) + return PIDX_SKEY_PARAM_RAW_BYTES; + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'a': + switch(s[3]) { + default: + break; + case 'd': + switch(s[4]) { + default: + break; + case '_': + switch(s[5]) { + default: + break; + case 'a': + if (strcmp("head", s + 6) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_READ_AHEAD; + break; + case 'b': + if (strcmp("uffer_len", s + 6) == 0) + return PIDX_LIBSSL_RECORD_LAYER_READ_BUFFER_LEN; + } + } + } + break; + case 'f': + if (strcmp("erence", s + 3) == 0) + return PIDX_OBJECT_PARAM_REFERENCE; + break; + case 's': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case 'e': + switch(s[5]) { + default: + break; + case 'd': + switch(s[6]) { + default: + break; + case '_': + switch(s[7]) { + default: + break; + case 'c': + if (strcmp("ounter", s + 8) == 0) + return PIDX_DRBG_PARAM_RESEED_COUNTER; + break; + case 'r': + if (strcmp("equests", s + 8) == 0) + return PIDX_DRBG_PARAM_RESEED_REQUESTS; + break; + case 't': + switch(s[8]) { + default: + break; + case 'i': + switch(s[9]) { + default: + break; + case 'm': + switch(s[10]) { + default: + break; + case 'e': + switch(s[11]) { + default: + break; + case '_': + if (strcmp("interval", s + 12) == 0) + return PIDX_DRBG_PARAM_RESEED_TIME_INTERVAL; + break; + case '\0': + return PIDX_DRBG_PARAM_RESEED_TIME; + } + } + } + } + } + } + } + } + } + } + break; + case 'o': + if (strcmp("unds", s + 2) == 0) + return PIDX_CIPHER_PARAM_ROUNDS; + break; + case 's': + switch(s[2]) { + default: + break; + case 'a': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'c': + switch(s[5]) { + default: + break; + case 'o': + switch(s[6]) { + default: + break; + case 'e': + switch(s[7]) { + default: + break; + case 'f': + switch(s[8]) { + default: + break; + case 'f': + switch(s[9]) { + default: + break; + case 'i': + switch(s[10]) { + default: + break; + case 'c': + switch(s[11]) { + default: + break; + case 'i': + switch(s[12]) { + default: + break; + case 'e': + switch(s[13]) { + default: + break; + case 'n': + switch(s[14]) { + default: + break; + case 't': + switch(s[15]) { + default: + break; + case '1': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT1; + } + break; + case '2': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT2; + } + break; + case '3': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT3; + } + break; + case '4': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT4; + } + break; + case '5': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT5; + } + break; + case '6': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT6; + } + break; + case '7': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT7; + } + break; + case '8': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT8; + } + break; + case '9': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT9; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT; + } + } + } + } + } + } + } + } + } + } + } + break; + case 'd': + if (strcmp("erive-from-pq", s + 5) == 0) + return PIDX_PKEY_PARAM_RSA_DERIVE_FROM_PQ; + break; + case 'e': + switch(s[5]) { + default: + break; + case 'x': + switch(s[6]) { + default: + break; + case 'p': + switch(s[7]) { + default: + break; + case 'o': + switch(s[8]) { + default: + break; + case 'n': + switch(s[9]) { + default: + break; + case 'e': + switch(s[10]) { + default: + break; + case 'n': + switch(s[11]) { + default: + break; + case 't': + switch(s[12]) { + default: + break; + case '1': + switch(s[13]) { + default: + break; + case '0': + switch(s[14]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT10; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT1; + } + break; + case '2': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT2; + } + break; + case '3': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT3; + } + break; + case '4': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT4; + } + break; + case '5': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT5; + } + break; + case '6': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT6; + } + break; + case '7': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT7; + } + break; + case '8': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT8; + } + break; + case '9': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT9; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT; + } + } + } + } + } + } + } + } + break; + case 'f': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case 'c': + switch(s[7]) { + default: + break; + case 't': + switch(s[8]) { + default: + break; + case 'o': + switch(s[9]) { + default: + break; + case 'r': + switch(s[10]) { + default: + break; + case '1': + switch(s[11]) { + default: + break; + case '0': + switch(s[12]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR10; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR1; + } + break; + case '2': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR2; + } + break; + case '3': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR3; + } + break; + case '4': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR4; + } + break; + case '5': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR5; + } + break; + case '6': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR6; + } + break; + case '7': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR7; + } + break; + case '8': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR8; + } + break; + case '9': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR9; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR; + } + } + } + } + } + } + break; + case 'p': + switch(s[5]) { + default: + break; + case 'k': + if (strcmp("cs15-pad-disabled", s + 6) == 0) + return PIDX_PROV_PARAM_RSA_PKCS15_PAD_DISABLED; + break; + case 's': + if (strcmp("s-saltlen-check", s + 6) == 0) + return PIDX_SIGNATURE_PARAM_FIPS_RSA_PSS_SALTLEN_CHECK; + } + break; + case 's': + if (strcmp("ign-x931-pad-disabled", s + 5) == 0) + return PIDX_PROV_PARAM_RSA_SIGN_X931_PAD_DISABLED; + } + } + } + break; + case '\0': + return PIDX_KDF_PARAM_SCRYPT_R; + } + break; + case 's': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'f': + if (strcmp("eprime-generator", s + 3) == 0) + return PIDX_PKEY_PARAM_DH_GENERATOR; + break; + case 'l': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case 'l': + if (strcmp("en", s + 5) == 0) + return PIDX_SIGNATURE_PARAM_PSS_SALTLEN; + break; + case '\0': + return PIDX_MAC_PARAM_SALT; + } + } + break; + case 'v': + if (strcmp("e-parameters", s + 3) == 0) + return PIDX_ENCODER_PARAM_SAVE_PARAMETERS; + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'c': + switch(s[3]) { + default: + break; + case 'r': + if (strcmp("et", s + 4) == 0) + return PIDX_KDF_PARAM_SECRET; + break; + case 'u': + switch(s[4]) { + default: + break; + case 'r': + switch(s[5]) { + default: + break; + case 'i': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case 'y': + switch(s[8]) { + default: + break; + case '-': + switch(s[9]) { + default: + break; + case 'b': + if (strcmp("its", s + 10) == 0) + return PIDX_PKEY_PARAM_SECURITY_BITS; + break; + case 'c': + if (strcmp("hecks", s + 10) == 0) + return PIDX_PROV_PARAM_SECURITY_CHECKS; + } + } + } + } + } + } + } + break; + case 'e': + if (strcmp("d", s + 3) == 0) + return PIDX_PKEY_PARAM_SLH_DSA_SEED; + break; + case 'r': + if (strcmp("ial", s + 3) == 0) + return PIDX_STORE_PARAM_SERIAL; + break; + case 's': + if (strcmp("sion_id", s + 3) == 0) + return PIDX_KDF_PARAM_SSHKDF_SESSION_ID; + } + break; + case 'i': + switch(s[2]) { + default: + break; + case 'g': + switch(s[3]) { + default: + break; + case 'n': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'c': + if (strcmp("heck", s + 6) == 0) + return PIDX_PKEY_PARAM_FIPS_SIGN_CHECK; + break; + case 'x': + if (strcmp("931-pad-check", s + 6) == 0) + return PIDX_SIGNATURE_PARAM_FIPS_SIGN_X931_PAD_CHECK; + } + break; + case 'a': + switch(s[5]) { + default: + break; + case 't': + switch(s[6]) { + default: + break; + case 'u': + switch(s[7]) { + default: + break; + case 'r': + switch(s[8]) { + default: + break; + case 'e': + switch(s[9]) { + default: + break; + case '-': + if (strcmp("digest-check", s + 10) == 0) + return PIDX_PROV_PARAM_SIGNATURE_DIGEST_CHECK; + break; + case '\0': + return PIDX_SIGNATURE_PARAM_SIGNATURE; + } + } + } + } + } + } + } + break; + case 'z': + if (strcmp("e", s + 3) == 0) + return PIDX_MAC_PARAM_SIZE; + } + break; + case 'p': + if (strcmp("eed", s + 2) == 0) + return PIDX_CIPHER_PARAM_SPEED; + break; + case 's': + switch(s[2]) { + default: + break; + case 'h': + switch(s[3]) { + default: + break; + case 'k': + switch(s[4]) { + default: + break; + case 'd': + switch(s[5]) { + default: + break; + case 'f': + switch(s[6]) { + default: + break; + case '-': + switch(s[7]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 8) == 0) + return PIDX_PROV_PARAM_SSHKDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 8) == 0) + return PIDX_PROV_PARAM_SSHKDF_KEY_CHECK; + } + } + } + } + } + break; + case 'k': + switch(s[3]) { + default: + break; + case 'd': + switch(s[4]) { + default: + break; + case 'f': + switch(s[5]) { + default: + break; + case '-': + switch(s[6]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 7) == 0) + return PIDX_PROV_PARAM_SSKDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 7) == 0) + return PIDX_PROV_PARAM_SSKDF_KEY_CHECK; + } + } + } + } + break; + case 'l': + if (strcmp("3-ms", s + 3) == 0) + return PIDX_DIGEST_PARAM_SSL3_MS; + } + break; + case 't': + switch(s[2]) { + default: + break; + case '-': + switch(s[3]) { + default: + break; + case 'd': + if (strcmp("esc", s + 4) == 0) + return PIDX_PROV_PARAM_SELF_TEST_DESC; + break; + case 'p': + if (strcmp("hase", s + 4) == 0) + return PIDX_PROV_PARAM_SELF_TEST_PHASE; + break; + case 't': + if (strcmp("ype", s + 4) == 0) + return PIDX_PROV_PARAM_SELF_TEST_TYPE; + } + break; + case 'a': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case 'e': + switch(s[5]) { + default: + break; + case '\0': + return PIDX_RAND_PARAM_STATE; + } + break; + case 'u': + if (strcmp("s", s + 5) == 0) + return PIDX_PROV_PARAM_STATUS; + } + } + break; + case 'r': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case 'a': + if (strcmp("m_mac", s + 5) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_STREAM_MAC; + break; + case 'n': + if (strcmp("gth", s + 5) == 0) + return PIDX_RAND_PARAM_STRENGTH; + } + } + } + break; + case 'u': + switch(s[2]) { + default: + break; + case 'b': + if (strcmp("ject", s + 3) == 0) + return PIDX_STORE_PARAM_SUBJECT; + break; + case 'p': + switch(s[3]) { + default: + break; + case 'p': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'p': + switch(s[6]) { + default: + break; + case 'r': + if (strcmp("ivinfo", s + 7) == 0) + return PIDX_KDF_PARAM_X942_SUPP_PRIVINFO; + break; + case 'u': + if (strcmp("binfo", s + 7) == 0) + return PIDX_KDF_PARAM_X942_SUPP_PUBINFO; + } + } + } + } + } + } + break; + case 't': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'g': + switch(s[3]) { + default: + break; + case 'l': + if (strcmp("en", s + 4) == 0) + return PIDX_CIPHER_PARAM_AEAD_TAGLEN; + break; + case '\0': + return PIDX_CIPHER_PARAM_AEAD_TAG; + } + } + break; + case 'd': + if (strcmp("es-encrypt-disabled", s + 2) == 0) + return PIDX_PROV_PARAM_TDES_ENCRYPT_DISABLED; + break; + case 'e': + switch(s[2]) { + default: + break; + case 's': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case '-': + if (strcmp("entropy", s + 5) == 0) + return PIDX_SIGNATURE_PARAM_TEST_ENTROPY; + break; + case '_': + switch(s[5]) { + default: + break; + case 'e': + if (strcmp("ntropy", s + 6) == 0) + return PIDX_RAND_PARAM_TEST_ENTROPY; + break; + case 'n': + if (strcmp("once", s + 6) == 0) + return PIDX_RAND_PARAM_TEST_NONCE; + } + } + } + } + break; + case 'h': + if (strcmp("reads", s + 2) == 0) + return PIDX_KDF_PARAM_THREADS; + break; + case 'l': + switch(s[2]) { + default: + break; + case 's': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'c': + if (strcmp("lient-version", s + 5) == 0) + return PIDX_ASYM_CIPHER_PARAM_TLS_CLIENT_VERSION; + break; + case 'd': + if (strcmp("ata-size", s + 5) == 0) + return PIDX_MAC_PARAM_TLS_DATA_SIZE; + break; + case 'g': + switch(s[5]) { + default: + break; + case 'r': + switch(s[6]) { + default: + break; + case 'o': + switch(s[7]) { + default: + break; + case 'u': + switch(s[8]) { + default: + break; + case 'p': + switch(s[9]) { + default: + break; + case '-': + switch(s[10]) { + default: + break; + case 'a': + if (strcmp("lg", s + 11) == 0) + return PIDX_CAPABILITY_TLS_GROUP_ALG; + break; + case 'i': + switch(s[11]) { + default: + break; + case 'd': + switch(s[12]) { + default: + break; + case '\0': + return PIDX_CAPABILITY_TLS_GROUP_ID; + } + break; + case 's': + if (strcmp("-kem", s + 12) == 0) + return PIDX_CAPABILITY_TLS_GROUP_IS_KEM; + } + break; + case 'n': + switch(s[11]) { + default: + break; + case 'a': + switch(s[12]) { + default: + break; + case 'm': + switch(s[13]) { + default: + break; + case 'e': + switch(s[14]) { + default: + break; + case '-': + if (strcmp("internal", s + 15) == 0) + return PIDX_CAPABILITY_TLS_GROUP_NAME_INTERNAL; + break; + case '\0': + return PIDX_CAPABILITY_TLS_GROUP_NAME; + } + } + } + } + break; + case 's': + if (strcmp("ec-bits", s + 11) == 0) + return PIDX_CAPABILITY_TLS_GROUP_SECURITY_BITS; + } + } + } + } + } + } + break; + case 'm': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case 'c': + switch(s[7]) { + default: + break; + case '-': + if (strcmp("size", s + 8) == 0) + return PIDX_CIPHER_PARAM_TLS_MAC_SIZE; + break; + case '\0': + return PIDX_CIPHER_PARAM_TLS_MAC; + } + break; + case 'x': + switch(s[7]) { + default: + break; + case '-': + switch(s[8]) { + default: + break; + case 'd': + if (strcmp("tls", s + 9) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_MAX_DTLS; + break; + case 't': + if (strcmp("ls", s + 9) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_MAX_TLS; + } + } + } + break; + case 'i': + switch(s[6]) { + default: + break; + case 'n': + switch(s[7]) { + default: + break; + case '-': + switch(s[8]) { + default: + break; + case 'd': + if (strcmp("tls", s + 9) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_MIN_DTLS; + break; + case 't': + if (strcmp("ls", s + 9) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_MIN_TLS; + } + } + } + break; + case 'u': + if (strcmp("lti", s + 6) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK; + } + break; + case 'n': + if (strcmp("egotiated-version", s + 5) == 0) + return PIDX_ASYM_CIPHER_PARAM_TLS_NEGOTIATED_VERSION; + break; + case 's': + switch(s[5]) { + default: + break; + case 'i': + switch(s[6]) { + default: + break; + case 'g': + switch(s[7]) { + default: + break; + case 'a': + switch(s[8]) { + default: + break; + case 'l': + switch(s[9]) { + default: + break; + case 'g': + switch(s[10]) { + default: + break; + case '-': + switch(s[11]) { + default: + break; + case 'c': + if (strcmp("ode-point", s + 12) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_CODE_POINT; + break; + case 'h': + switch(s[12]) { + default: + break; + case 'a': + switch(s[13]) { + default: + break; + case 's': + switch(s[14]) { + default: + break; + case 'h': + switch(s[15]) { + default: + break; + case '-': + switch(s[16]) { + default: + break; + case 'n': + if (strcmp("ame", s + 17) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_HASH_NAME; + break; + case 'o': + if (strcmp("id", s + 17) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_HASH_OID; + } + } + } + } + } + break; + case 'i': + if (strcmp("ana-name", s + 12) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_IANA_NAME; + break; + case 'k': + switch(s[12]) { + default: + break; + case 'e': + switch(s[13]) { + default: + break; + case 'y': + switch(s[14]) { + default: + break; + case 't': + switch(s[15]) { + default: + break; + case 'y': + switch(s[16]) { + default: + break; + case 'p': + switch(s[17]) { + default: + break; + case 'e': + switch(s[18]) { + default: + break; + case '-': + if (strcmp("oid", s + 19) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_KEYTYPE_OID; + break; + case '\0': + return PIDX_CAPABILITY_TLS_SIGALG_KEYTYPE; + } + } + } + } + } + } + } + break; + case 'n': + if (strcmp("ame", s + 12) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_NAME; + break; + case 'o': + if (strcmp("id", s + 12) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_OID; + break; + case 's': + switch(s[12]) { + default: + break; + case 'e': + if (strcmp("c-bits", s + 13) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_SECURITY_BITS; + break; + case 'i': + switch(s[13]) { + default: + break; + case 'g': + switch(s[14]) { + default: + break; + case '-': + switch(s[15]) { + default: + break; + case 'n': + if (strcmp("ame", s + 16) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_SIG_NAME; + break; + case 'o': + if (strcmp("id", s + 16) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_SIG_OID; + } + } + } + } + } + } + } + } + } + } + } + break; + case 'v': + if (strcmp("ersion", s + 5) == 0) + return PIDX_CIPHER_PARAM_TLS_VERSION; + } + break; + case '1': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'p': + switch(s[6]) { + default: + break; + case 'r': + switch(s[7]) { + default: + break; + case 'f': + switch(s[8]) { + default: + break; + case '-': + switch(s[9]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 10) == 0) + return PIDX_PROV_PARAM_TLS1_PRF_DIGEST_CHECK; + break; + case 'e': + if (strcmp("ms-check", s + 10) == 0) + return PIDX_PROV_PARAM_TLS1_PRF_EMS_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 10) == 0) + return PIDX_PROV_PARAM_TLS1_PRF_KEY_CHECK; + } + } + } + } + } + break; + case '3': + switch(s[5]) { + default: + break; + case '-': + switch(s[6]) { + default: + break; + case 'k': + switch(s[7]) { + default: + break; + case 'd': + switch(s[8]) { + default: + break; + case 'f': + switch(s[9]) { + default: + break; + case '-': + switch(s[10]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 11) == 0) + return PIDX_PROV_PARAM_TLS13_KDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 11) == 0) + return PIDX_PROV_PARAM_TLS13_KDF_KEY_CHECK; + } + } + } + } + } + } + break; + case 'm': + switch(s[5]) { + default: + break; + case 'u': + switch(s[6]) { + default: + break; + case 'l': + switch(s[7]) { + default: + break; + case 't': + switch(s[8]) { + default: + break; + case 'i': + switch(s[9]) { + default: + break; + case '_': + switch(s[10]) { + default: + break; + case 'a': + switch(s[11]) { + default: + break; + case 'a': + switch(s[12]) { + default: + break; + case 'd': + switch(s[13]) { + default: + break; + case 'p': + if (strcmp("acklen", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD_PACKLEN; + break; + case '\0': + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD; + } + } + } + break; + case 'e': + switch(s[11]) { + default: + break; + case 'n': + switch(s[12]) { + default: + break; + case 'c': + switch(s[13]) { + default: + break; + case 'i': + if (strcmp("n", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_IN; + break; + case 'l': + if (strcmp("en", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_LEN; + break; + case '\0': + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC; + } + } + } + break; + case 'i': + if (strcmp("nterleave", s + 11) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_INTERLEAVE; + break; + case 'm': + switch(s[11]) { + default: + break; + case 'a': + switch(s[12]) { + default: + break; + case 'x': + switch(s[13]) { + default: + break; + case 'b': + if (strcmp("ufsz", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_BUFSIZE; + break; + case 's': + if (strcmp("ndfrag", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_SEND_FRAGMENT; + } + } + } + } + } + } + } + } + } + } + break; + case 'a': + switch(s[4]) { + default: + break; + case 'a': + switch(s[5]) { + default: + break; + case 'd': + switch(s[6]) { + default: + break; + case 'p': + if (strcmp("ad", s + 7) == 0) + return PIDX_CIPHER_PARAM_AEAD_TLS1_AAD_PAD; + break; + case '\0': + return PIDX_CIPHER_PARAM_AEAD_TLS1_AAD; + } + } + } + break; + case 'i': + switch(s[4]) { + default: + break; + case 'v': + switch(s[5]) { + default: + break; + case 'f': + if (strcmp("ixed", s + 6) == 0) + return PIDX_CIPHER_PARAM_AEAD_TLS1_IV_FIXED; + break; + case 'g': + if (strcmp("en", s + 6) == 0) + return PIDX_CIPHER_PARAM_AEAD_TLS1_GET_IV_GEN; + break; + case 'i': + if (strcmp("nv", s + 6) == 0) + return PIDX_CIPHER_PARAM_AEAD_TLS1_SET_IV_INV; + } + } + break; + case 't': + if (strcmp("ree", s + 4) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_TLSTREE; + } + } + break; + case 'p': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_TP_BASIS; + } + break; + case 'y': + if (strcmp("pe", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_TYPE; + } + break; + case 'u': + switch(s[1]) { + default: + break; + case 'k': + if (strcmp("m", s + 2) == 0) + return PIDX_KDF_PARAM_UKM; + break; + case 'p': + if (strcmp("dated-iv", s + 2) == 0) + return PIDX_CIPHER_PARAM_UPDATED_IV; + break; + case 's': + switch(s[2]) { + default: + break; + case 'e': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'b': + if (strcmp("its", s + 5) == 0) + return PIDX_CIPHER_PARAM_USE_BITS; + break; + case 'c': + if (strcmp("ofactor-flag", s + 5) == 0) + return PIDX_PKEY_PARAM_USE_COFACTOR_FLAG; + break; + case 'k': + if (strcmp("eybits", s + 5) == 0) + return PIDX_KDF_PARAM_X942_USE_KEYBITS; + break; + case 'l': + switch(s[5]) { + default: + break; + case '\0': + return PIDX_KDF_PARAM_KBKDF_USE_L; + } + break; + case 's': + if (strcmp("eparator", s + 5) == 0) + return PIDX_KDF_PARAM_KBKDF_USE_SEPARATOR; + } + break; + case '_': + switch(s[4]) { + default: + break; + case 'd': + if (strcmp("erivation_function", s + 5) == 0) + return PIDX_DRBG_PARAM_USE_DF; + break; + case 'e': + if (strcmp("tm", s + 5) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_USE_ETM; + } + } + } + } + break; + case 'v': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'l': + switch(s[3]) { + default: + break; + case 'i': + switch(s[4]) { + default: + break; + case 'd': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case 'e': + switch(s[8]) { + default: + break; + case '-': + switch(s[9]) { + default: + break; + case 'g': + switch(s[10]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_VALIDATE_G; + } + break; + case 'l': + if (strcmp("egacy", s + 10) == 0) + return PIDX_PKEY_PARAM_FFC_VALIDATE_LEGACY; + break; + case 'p': + if (strcmp("q", s + 10) == 0) + return PIDX_PKEY_PARAM_FFC_VALIDATE_PQ; + } + } + } + } + } + } + } + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'r': + switch(s[3]) { + default: + break; + case 'i': + if (strcmp("fy-message", s + 4) == 0) + return PIDX_SIGNATURE_PARAM_FIPS_VERIFY_MESSAGE; + break; + case 's': + if (strcmp("ion", s + 4) == 0) + return PIDX_PROV_PARAM_VERSION; + } + } + } + break; + case 'x': + switch(s[1]) { + default: + break; + case '9': + switch(s[2]) { + default: + break; + case '4': + if (strcmp("2kdf-key-check", s + 3) == 0) + return PIDX_PROV_PARAM_X942KDF_KEY_CHECK; + break; + case '6': + switch(s[3]) { + default: + break; + case '3': + switch(s[4]) { + default: + break; + case 'k': + switch(s[5]) { + default: + break; + case 'd': + switch(s[6]) { + default: + break; + case 'f': + switch(s[7]) { + default: + break; + case '-': + switch(s[8]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 9) == 0) + return PIDX_PROV_PARAM_X963KDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 9) == 0) + return PIDX_PROV_PARAM_X963KDF_KEY_CHECK; + } + } + } + } + } + } + } + break; + case 'c': + if (strcmp("ghash", s + 2) == 0) + return PIDX_KDF_PARAM_SSHKDF_XCGHASH; + break; + case 'o': + switch(s[2]) { + default: + break; + case 'f': + switch(s[3]) { + default: + break; + case 'l': + if (strcmp("en", s + 4) == 0) + return PIDX_DIGEST_PARAM_XOFLEN; + break; + case '\0': + return PIDX_MAC_PARAM_XOF; + } + } + break; + case 'p': + switch(s[2]) { + default: + break; + case '1': + switch(s[3]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XP1; + } + break; + case '2': + switch(s[3]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XP2; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XP; + } + break; + case 'q': + switch(s[2]) { + default: + break; + case '1': + switch(s[3]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XQ1; + } + break; + case '2': + switch(s[3]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XQ2; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XQ; + } + break; + case 't': + if (strcmp("s_standard", s + 2) == 0) + return PIDX_CIPHER_PARAM_XTS_STANDARD; + } + } + return -1; +} + +/* End of TRIE */ diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/poly1305/poly1305-x86_64.s b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/poly1305/poly1305-x86_64.s index 64a04b69f9e9e0..c01dcb59e65dd7 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/poly1305/poly1305-x86_64.s +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/poly1305/poly1305-x86_64.s @@ -55,6 +55,7 @@ L$no_key: .p2align 5 _poly1305_blocks: +.byte 243,15,30,250 L$blocks: shrq $4,%rdx jz L$no_data @@ -164,6 +165,7 @@ L$blocks_epilogue: .p2align 5 _poly1305_emit: +.byte 243,15,30,250 L$emit: movq 0(%rdi),%r8 movq 8(%rdi),%r9 @@ -400,6 +402,7 @@ __poly1305_init_avx: .p2align 5 poly1305_blocks_avx: +.byte 243,15,30,250 movl 20(%rdi),%r8d cmpq $128,%rdx jae L$blocks_avx @@ -1223,6 +1226,7 @@ L$short_tail_avx: .p2align 5 poly1305_emit_avx: +.byte 243,15,30,250 cmpl $0,20(%rdi) je L$emit @@ -1279,6 +1283,7 @@ poly1305_emit_avx: .p2align 5 poly1305_blocks_avx2: +.byte 243,15,30,250 movl 20(%rdi),%r8d cmpq $128,%rdx jae L$blocks_avx2 @@ -1917,6 +1922,7 @@ L$tail_avx2: .p2align 5 poly1305_blocks_avx512: +.byte 243,15,30,250 L$blocks_avx512: movl $15,%eax kmovw %eax,%k2 @@ -3420,6 +3426,7 @@ poly1305_emit_base2_44: .byte 0xf3,0xc3 +.section __DATA,__const .p2align 6 L$const: L$mask24: @@ -3451,6 +3458,7 @@ L$x_mask44: L$x_mask42: .quad 0x3ffffffffff,0x3ffffffffff,0x3ffffffffff,0x3ffffffffff .quad 0x3ffffffffff,0x3ffffffffff,0x3ffffffffff,0x3ffffffffff +.text .byte 80,111,108,121,49,51,48,53,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 .p2align 4 .globl _xor128_encrypt_n_pad diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/sha/keccak1600-x86_64.s b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/sha/keccak1600-x86_64.s index 5105d9818b5575..95683930429a74 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/sha/keccak1600-x86_64.s +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/sha/keccak1600-x86_64.s @@ -420,10 +420,12 @@ _SHA3_squeeze: shrq $3,%rcx - movq %rdi,%r8 + movq %rdi,%r9 movq %rsi,%r12 movq %rdx,%r13 movq %rcx,%r14 + btl $0,%r8d + jc L$next_block jmp L$oop_squeeze .p2align 5 @@ -431,8 +433,8 @@ L$oop_squeeze: cmpq $8,%r13 jb L$tail_squeeze - movq (%r8),%rax - leaq 8(%r8),%r8 + movq (%r9),%rax + leaq 8(%r9),%r9 movq %rax,(%r12) leaq 8(%r12),%r12 subq $8,%r13 @@ -440,14 +442,14 @@ L$oop_squeeze: subq $1,%rcx jnz L$oop_squeeze - +L$next_block: call KeccakF1600 - movq %rdi,%r8 + movq %rdi,%r9 movq %r14,%rcx jmp L$oop_squeeze L$tail_squeeze: - movq %r8,%rsi + movq %r9,%rsi movq %r12,%rdi movq %r13,%rcx .byte 0xf3,0xa4 @@ -462,6 +464,7 @@ L$done_squeeze: .byte 0xf3,0xc3 +.section __DATA,__const .p2align 8 .quad 0,0,0,0,0,0,0,0 diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/sha/sha1-mb-x86_64.s b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/sha/sha1-mb-x86_64.s index e6a5320cd511ad..d3e088a45b768e 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/sha/sha1-mb-x86_64.s +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/sha/sha1-mb-x86_64.s @@ -7286,7 +7286,7 @@ L$epilogue_avx2: .byte 0xf3,0xc3 - +.section __DATA,__const .p2align 8 .long 0x5a827999,0x5a827999,0x5a827999,0x5a827999 .long 0x5a827999,0x5a827999,0x5a827999,0x5a827999 @@ -7301,3 +7301,4 @@ K_XX_XX: .long 0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f .byte 0xf,0xe,0xd,0xc,0xb,0xa,0x9,0x8,0x7,0x6,0x5,0x4,0x3,0x2,0x1,0x0 .byte 83,72,65,49,32,109,117,108,116,105,45,98,108,111,99,107,32,116,114,97,110,115,102,111,114,109,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 +.text diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/sha/sha1-x86_64.s b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/sha/sha1-x86_64.s index fb22d41c1a44ed..636ee8e2ac1a25 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/sha/sha1-x86_64.s +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/sha/sha1-x86_64.s @@ -5433,6 +5433,7 @@ L$epilogue_avx2: .byte 0xf3,0xc3 +.section __DATA,__const .p2align 6 K_XX_XX: .long 0x5a827999,0x5a827999,0x5a827999,0x5a827999 @@ -5446,5 +5447,6 @@ K_XX_XX: .long 0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f .long 0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f .byte 0xf,0xe,0xd,0xc,0xb,0xa,0x9,0x8,0x7,0x6,0x5,0x4,0x3,0x2,0x1,0x0 +.text .byte 83,72,65,49,32,98,108,111,99,107,32,116,114,97,110,115,102,111,114,109,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 .p2align 6 diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/sha/sha256-mb-x86_64.s b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/sha/sha256-mb-x86_64.s index f513c466510094..03f81d7ae24d53 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/sha/sha256-mb-x86_64.s +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/sha/sha256-mb-x86_64.s @@ -7831,6 +7831,7 @@ L$epilogue_avx2: .byte 0xf3,0xc3 +.section __DATA,__const .p2align 8 K256: .long 1116352408,1116352408,1116352408,1116352408 @@ -7982,3 +7983,4 @@ K256_shaext: .long 0x748f82ee,0x78a5636f,0x84c87814,0x8cc70208 .long 0x90befffa,0xa4506ceb,0xbef9a3f7,0xc67178f2 .byte 83,72,65,50,53,54,32,109,117,108,116,105,45,98,108,111,99,107,32,116,114,97,110,115,102,111,114,109,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 +.text diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/sha/sha256-x86_64.s b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/sha/sha256-x86_64.s index 3952a775b92182..424f50c93b566b 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/sha/sha256-x86_64.s +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/sha/sha256-x86_64.s @@ -1728,6 +1728,7 @@ L$epilogue: .byte 0xf3,0xc3 +.section __DATA,__const .p2align 6 K256: @@ -1771,6 +1772,7 @@ K256: .long 0xffffffff,0xffffffff,0x03020100,0x0b0a0908 .long 0xffffffff,0xffffffff,0x03020100,0x0b0a0908 .byte 83,72,65,50,53,54,32,98,108,111,99,107,32,116,114,97,110,115,102,111,114,109,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 +.text .p2align 6 sha256_block_data_order_shaext: diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/sha/sha512-x86_64.s b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/sha/sha512-x86_64.s index 6348b0a2c0f8fa..e61e1c07993c6f 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/sha/sha512-x86_64.s +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/sha/sha512-x86_64.s @@ -1726,6 +1726,7 @@ L$epilogue: .byte 0xf3,0xc3 +.section __DATA,__const .p2align 6 K512: @@ -1813,6 +1814,7 @@ K512: .quad 0x0001020304050607,0x08090a0b0c0d0e0f .quad 0x0001020304050607,0x08090a0b0c0d0e0f .byte 83,72,65,53,49,50,32,98,108,111,99,107,32,116,114,97,110,115,102,111,114,109,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 +.text .p2align 6 sha512_block_data_order_xop: diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/whrlpool/wp-x86_64.s b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/whrlpool/wp-x86_64.s index 2c94c14b93395e..94643a06e0a2fc 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/whrlpool/wp-x86_64.s +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/whrlpool/wp-x86_64.s @@ -608,6 +608,7 @@ L$epilogue: +.section __DATA,__const .p2align 6 L$table: diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/x86_64cpuid.s b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/x86_64cpuid.s index b6b35337ff331d..03feb402223f61 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/x86_64cpuid.s +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/x86_64cpuid.s @@ -1,12 +1,12 @@ + .private_extern _OPENSSL_cpuid_setup .mod_init_func .p2align 3 .quad _OPENSSL_cpuid_setup .private_extern _OPENSSL_ia32cap_P -.comm _OPENSSL_ia32cap_P,16,2 - +.comm _OPENSSL_ia32cap_P,40,2 .text .globl _OPENSSL_atomic_add @@ -164,6 +164,7 @@ L$generic: movl $7,%eax xorl %ecx,%ecx cpuid + movd %eax,%xmm1 btl $26,%r9d jc L$notknights andl $0xfff7ffff,%ebx @@ -174,9 +175,31 @@ L$notknights: jne L$notskylakex andl $0xfffeffff,%ebx + L$notskylakex: movl %ebx,8(%rdi) movl %ecx,12(%rdi) + movl %edx,16(%rdi) + + movd %xmm1,%eax + cmpl $0x1,%eax + jb L$no_extended_info + movl $0x7,%eax + movl $0x1,%ecx + cpuid + movl %eax,20(%rdi) + movl %edx,24(%rdi) + movl %ebx,28(%rdi) + movl %ecx,32(%rdi) + + andl $0x80000,%edx + cmpl $0x0,%edx + je L$no_extended_info + movl $0x24,%eax + movl $0x0,%ecx + cpuid + movl %ebx,36(%rdi) + L$no_extended_info: btl $27,%r9d @@ -195,6 +218,9 @@ L$no_extended_info: cmpl $6,%eax je L$done L$clear_avx: + andl $0xff7fffff,20(%rdi) + + movl $0xefffe7ff,%eax andl %eax,%r9d movl $0x3fdeffdf,%eax diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/include/internal/param_names.h b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/include/internal/param_names.h new file mode 100644 index 00000000000000..0a0404a57e82b9 --- /dev/null +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/include/internal/param_names.h @@ -0,0 +1,469 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from include/internal/param_names.h.in + * + * Copyright 2023 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + +int ossl_param_find_pidx(const char *s); + +/* Parameter name definitions - generated by util/perl/OpenSSL/paramnames.pm */ +#define NUM_PIDX 346 + +#define PIDX_ALG_PARAM_ALGORITHM_ID 0 +#define PIDX_ALG_PARAM_ALGORITHM_ID_PARAMS 1 +#define PIDX_ALG_PARAM_CIPHER 2 +#define PIDX_ALG_PARAM_DIGEST 3 +#define PIDX_ALG_PARAM_ENGINE 4 +#define PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR 5 +#define PIDX_ALG_PARAM_MAC 6 +#define PIDX_ALG_PARAM_PROPERTIES 7 +#define PIDX_ASYM_CIPHER_PARAM_DIGEST PIDX_PKEY_PARAM_DIGEST +#define PIDX_ASYM_CIPHER_PARAM_ENGINE PIDX_PKEY_PARAM_ENGINE +#define PIDX_ASYM_CIPHER_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_ASYM_CIPHER_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_ASYM_CIPHER_PARAM_FIPS_RSA_PKCS15_PAD_DISABLED PIDX_PROV_PARAM_RSA_PKCS15_PAD_DISABLED +#define PIDX_ASYM_CIPHER_PARAM_IMPLICIT_REJECTION 8 +#define PIDX_ASYM_CIPHER_PARAM_MGF1_DIGEST PIDX_PKEY_PARAM_MGF1_DIGEST +#define PIDX_ASYM_CIPHER_PARAM_MGF1_DIGEST_PROPS PIDX_PKEY_PARAM_MGF1_PROPERTIES +#define PIDX_ASYM_CIPHER_PARAM_OAEP_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_ASYM_CIPHER_PARAM_OAEP_DIGEST_PROPS 9 +#define PIDX_ASYM_CIPHER_PARAM_OAEP_LABEL 10 +#define PIDX_ASYM_CIPHER_PARAM_PAD_MODE PIDX_PKEY_PARAM_PAD_MODE +#define PIDX_ASYM_CIPHER_PARAM_PROPERTIES PIDX_PKEY_PARAM_PROPERTIES +#define PIDX_ASYM_CIPHER_PARAM_TLS_CLIENT_VERSION 11 +#define PIDX_ASYM_CIPHER_PARAM_TLS_NEGOTIATED_VERSION 12 +#define PIDX_CAPABILITY_TLS_GROUP_ALG 13 +#define PIDX_CAPABILITY_TLS_GROUP_ID 14 +#define PIDX_CAPABILITY_TLS_GROUP_IS_KEM 15 +#define PIDX_CAPABILITY_TLS_GROUP_MAX_DTLS 16 +#define PIDX_CAPABILITY_TLS_GROUP_MAX_TLS 17 +#define PIDX_CAPABILITY_TLS_GROUP_MIN_DTLS 18 +#define PIDX_CAPABILITY_TLS_GROUP_MIN_TLS 19 +#define PIDX_CAPABILITY_TLS_GROUP_NAME 20 +#define PIDX_CAPABILITY_TLS_GROUP_NAME_INTERNAL 21 +#define PIDX_CAPABILITY_TLS_GROUP_SECURITY_BITS 22 +#define PIDX_CAPABILITY_TLS_SIGALG_CODE_POINT 23 +#define PIDX_CAPABILITY_TLS_SIGALG_HASH_NAME 24 +#define PIDX_CAPABILITY_TLS_SIGALG_HASH_OID 25 +#define PIDX_CAPABILITY_TLS_SIGALG_IANA_NAME 26 +#define PIDX_CAPABILITY_TLS_SIGALG_KEYTYPE 27 +#define PIDX_CAPABILITY_TLS_SIGALG_KEYTYPE_OID 28 +#define PIDX_CAPABILITY_TLS_SIGALG_MAX_DTLS 16 +#define PIDX_CAPABILITY_TLS_SIGALG_MAX_TLS 17 +#define PIDX_CAPABILITY_TLS_SIGALG_MIN_DTLS 18 +#define PIDX_CAPABILITY_TLS_SIGALG_MIN_TLS 19 +#define PIDX_CAPABILITY_TLS_SIGALG_NAME 29 +#define PIDX_CAPABILITY_TLS_SIGALG_OID 30 +#define PIDX_CAPABILITY_TLS_SIGALG_SECURITY_BITS 31 +#define PIDX_CAPABILITY_TLS_SIGALG_SIG_NAME 32 +#define PIDX_CAPABILITY_TLS_SIGALG_SIG_OID 33 +#define PIDX_CIPHER_PARAM_AEAD 34 +#define PIDX_CIPHER_PARAM_AEAD_IVLEN PIDX_CIPHER_PARAM_IVLEN +#define PIDX_CIPHER_PARAM_AEAD_IV_GENERATED 35 +#define PIDX_CIPHER_PARAM_AEAD_MAC_KEY 36 +#define PIDX_CIPHER_PARAM_AEAD_TAG 37 +#define PIDX_CIPHER_PARAM_AEAD_TAGLEN 38 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_AAD 39 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_AAD_PAD 40 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_GET_IV_GEN 41 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_IV_FIXED 42 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_SET_IV_INV 43 +#define PIDX_CIPHER_PARAM_ALGORITHM_ID PIDX_ALG_PARAM_ALGORITHM_ID +#define PIDX_CIPHER_PARAM_ALGORITHM_ID_PARAMS PIDX_ALG_PARAM_ALGORITHM_ID_PARAMS +#define PIDX_CIPHER_PARAM_ALGORITHM_ID_PARAMS_OLD 44 +#define PIDX_CIPHER_PARAM_BLOCK_SIZE 45 +#define PIDX_CIPHER_PARAM_CTS 46 +#define PIDX_CIPHER_PARAM_CTS_MODE 47 +#define PIDX_CIPHER_PARAM_CUSTOM_IV 48 +#define PIDX_CIPHER_PARAM_DECRYPT_ONLY 49 +#define PIDX_CIPHER_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_CIPHER_PARAM_FIPS_ENCRYPT_CHECK 50 +#define PIDX_CIPHER_PARAM_HAS_RAND_KEY 51 +#define PIDX_CIPHER_PARAM_IV 52 +#define PIDX_CIPHER_PARAM_IVLEN 53 +#define PIDX_CIPHER_PARAM_KEYLEN 54 +#define PIDX_CIPHER_PARAM_MODE 55 +#define PIDX_CIPHER_PARAM_NUM 56 +#define PIDX_CIPHER_PARAM_PADDING 57 +#define PIDX_CIPHER_PARAM_PIPELINE_AEAD_TAG 58 +#define PIDX_CIPHER_PARAM_RANDOM_KEY 59 +#define PIDX_CIPHER_PARAM_RC2_KEYBITS 60 +#define PIDX_CIPHER_PARAM_ROUNDS 61 +#define PIDX_CIPHER_PARAM_SPEED 62 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK 63 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD 64 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD_PACKLEN 65 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC 66 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_IN 67 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_LEN 68 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_INTERLEAVE 69 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_BUFSIZE 70 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_SEND_FRAGMENT 71 +#define PIDX_CIPHER_PARAM_TLS_MAC 72 +#define PIDX_CIPHER_PARAM_TLS_MAC_SIZE 73 +#define PIDX_CIPHER_PARAM_TLS_VERSION 74 +#define PIDX_CIPHER_PARAM_UPDATED_IV 75 +#define PIDX_CIPHER_PARAM_USE_BITS 76 +#define PIDX_CIPHER_PARAM_XTS_STANDARD 77 +#define PIDX_DECODER_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_DIGEST_PARAM_ALGID_ABSENT 78 +#define PIDX_DIGEST_PARAM_BLOCK_SIZE 45 +#define PIDX_DIGEST_PARAM_MICALG 79 +#define PIDX_DIGEST_PARAM_PAD_TYPE 80 +#define PIDX_DIGEST_PARAM_SIZE 81 +#define PIDX_DIGEST_PARAM_SSL3_MS 82 +#define PIDX_DIGEST_PARAM_XOF 83 +#define PIDX_DIGEST_PARAM_XOFLEN 84 +#define PIDX_DRBG_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_DRBG_PARAM_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_DRBG_PARAM_ENTROPY_REQUIRED 85 +#define PIDX_DRBG_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_DRBG_PARAM_FIPS_DIGEST_CHECK PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK +#define PIDX_DRBG_PARAM_MAC PIDX_ALG_PARAM_MAC +#define PIDX_DRBG_PARAM_MAX_ADINLEN 86 +#define PIDX_DRBG_PARAM_MAX_ENTROPYLEN 87 +#define PIDX_DRBG_PARAM_MAX_LENGTH 88 +#define PIDX_DRBG_PARAM_MAX_NONCELEN 89 +#define PIDX_DRBG_PARAM_MAX_PERSLEN 90 +#define PIDX_DRBG_PARAM_MIN_ENTROPYLEN 91 +#define PIDX_DRBG_PARAM_MIN_LENGTH 92 +#define PIDX_DRBG_PARAM_MIN_NONCELEN 93 +#define PIDX_DRBG_PARAM_PREDICTION_RESISTANCE 94 +#define PIDX_DRBG_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_DRBG_PARAM_RANDOM_DATA 95 +#define PIDX_DRBG_PARAM_RESEED_COUNTER 96 +#define PIDX_DRBG_PARAM_RESEED_REQUESTS 97 +#define PIDX_DRBG_PARAM_RESEED_TIME 98 +#define PIDX_DRBG_PARAM_RESEED_TIME_INTERVAL 99 +#define PIDX_DRBG_PARAM_SIZE 81 +#define PIDX_DRBG_PARAM_USE_DF 100 +#define PIDX_ENCODER_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_ENCODER_PARAM_ENCRYPT_LEVEL 101 +#define PIDX_ENCODER_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_ENCODER_PARAM_SAVE_PARAMETERS 102 +#define PIDX_EXCHANGE_PARAM_EC_ECDH_COFACTOR_MODE 103 +#define PIDX_EXCHANGE_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_EXCHANGE_PARAM_FIPS_DIGEST_CHECK PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK +#define PIDX_EXCHANGE_PARAM_FIPS_ECDH_COFACTOR_CHECK PIDX_PROV_PARAM_ECDH_COFACTOR_CHECK +#define PIDX_EXCHANGE_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_EXCHANGE_PARAM_KDF_DIGEST 104 +#define PIDX_EXCHANGE_PARAM_KDF_DIGEST_PROPS 105 +#define PIDX_EXCHANGE_PARAM_KDF_OUTLEN 106 +#define PIDX_EXCHANGE_PARAM_KDF_TYPE 107 +#define PIDX_EXCHANGE_PARAM_KDF_UKM 108 +#define PIDX_EXCHANGE_PARAM_PAD 109 +#define PIDX_GEN_PARAM_ITERATION 110 +#define PIDX_GEN_PARAM_POTENTIAL 111 +#define PIDX_KDF_PARAM_ARGON2_AD 112 +#define PIDX_KDF_PARAM_ARGON2_LANES 113 +#define PIDX_KDF_PARAM_ARGON2_MEMCOST 114 +#define PIDX_KDF_PARAM_ARGON2_VERSION 115 +#define PIDX_KDF_PARAM_CEK_ALG 116 +#define PIDX_KDF_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_KDF_PARAM_CONSTANT 117 +#define PIDX_KDF_PARAM_DATA 118 +#define PIDX_KDF_PARAM_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_KDF_PARAM_EARLY_CLEAN 119 +#define PIDX_KDF_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_KDF_PARAM_FIPS_DIGEST_CHECK PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK +#define PIDX_KDF_PARAM_FIPS_EMS_CHECK 120 +#define PIDX_KDF_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_KDF_PARAM_HMACDRBG_ENTROPY 121 +#define PIDX_KDF_PARAM_HMACDRBG_NONCE 122 +#define PIDX_KDF_PARAM_INFO 123 +#define PIDX_KDF_PARAM_ITER 124 +#define PIDX_KDF_PARAM_KBKDF_R 125 +#define PIDX_KDF_PARAM_KBKDF_USE_L 126 +#define PIDX_KDF_PARAM_KBKDF_USE_SEPARATOR 127 +#define PIDX_KDF_PARAM_KEY 128 +#define PIDX_KDF_PARAM_LABEL 129 +#define PIDX_KDF_PARAM_MAC PIDX_ALG_PARAM_MAC +#define PIDX_KDF_PARAM_MAC_SIZE 130 +#define PIDX_KDF_PARAM_MODE 55 +#define PIDX_KDF_PARAM_PASSWORD 131 +#define PIDX_KDF_PARAM_PKCS12_ID 132 +#define PIDX_KDF_PARAM_PKCS5 133 +#define PIDX_KDF_PARAM_PREFIX 134 +#define PIDX_KDF_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_KDF_PARAM_SALT 135 +#define PIDX_KDF_PARAM_SCRYPT_MAXMEM 136 +#define PIDX_KDF_PARAM_SCRYPT_N 137 +#define PIDX_KDF_PARAM_SCRYPT_P 138 +#define PIDX_KDF_PARAM_SCRYPT_R 125 +#define PIDX_KDF_PARAM_SECRET 139 +#define PIDX_KDF_PARAM_SEED 140 +#define PIDX_KDF_PARAM_SIZE 81 +#define PIDX_KDF_PARAM_SSHKDF_SESSION_ID 141 +#define PIDX_KDF_PARAM_SSHKDF_TYPE 142 +#define PIDX_KDF_PARAM_SSHKDF_XCGHASH 143 +#define PIDX_KDF_PARAM_THREADS 144 +#define PIDX_KDF_PARAM_UKM 145 +#define PIDX_KDF_PARAM_X942_ACVPINFO 146 +#define PIDX_KDF_PARAM_X942_PARTYUINFO 147 +#define PIDX_KDF_PARAM_X942_PARTYVINFO 148 +#define PIDX_KDF_PARAM_X942_SUPP_PRIVINFO 149 +#define PIDX_KDF_PARAM_X942_SUPP_PUBINFO 150 +#define PIDX_KDF_PARAM_X942_USE_KEYBITS 151 +#define PIDX_KEM_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_KEM_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_KEM_PARAM_IKME 152 +#define PIDX_KEM_PARAM_OPERATION 153 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_BLOCK_PADDING 154 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_HS_PADDING 155 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_MAX_EARLY_DATA 156 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_MAX_FRAG_LEN 157 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_MODE 55 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_OPTIONS 158 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_READ_AHEAD 159 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_STREAM_MAC 160 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_TLSTREE 161 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_USE_ETM 162 +#define PIDX_LIBSSL_RECORD_LAYER_READ_BUFFER_LEN 163 +#define PIDX_MAC_PARAM_BLOCK_SIZE 164 +#define PIDX_MAC_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_MAC_PARAM_CUSTOM 165 +#define PIDX_MAC_PARAM_C_ROUNDS 166 +#define PIDX_MAC_PARAM_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_MAC_PARAM_DIGEST_NOINIT 167 +#define PIDX_MAC_PARAM_DIGEST_ONESHOT 168 +#define PIDX_MAC_PARAM_D_ROUNDS 169 +#define PIDX_MAC_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_MAC_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_MAC_PARAM_FIPS_NO_SHORT_MAC PIDX_PROV_PARAM_NO_SHORT_MAC +#define PIDX_MAC_PARAM_IV 52 +#define PIDX_MAC_PARAM_KEY 128 +#define PIDX_MAC_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_MAC_PARAM_SALT 135 +#define PIDX_MAC_PARAM_SIZE 81 +#define PIDX_MAC_PARAM_TLS_DATA_SIZE 170 +#define PIDX_MAC_PARAM_XOF 83 +#define PIDX_OBJECT_PARAM_DATA 118 +#define PIDX_OBJECT_PARAM_DATA_STRUCTURE 171 +#define PIDX_OBJECT_PARAM_DATA_TYPE 172 +#define PIDX_OBJECT_PARAM_DESC 173 +#define PIDX_OBJECT_PARAM_INPUT_TYPE 174 +#define PIDX_OBJECT_PARAM_REFERENCE 175 +#define PIDX_OBJECT_PARAM_TYPE 142 +#define PIDX_PASSPHRASE_PARAM_INFO 123 +#define PIDX_PKEY_PARAM_ALGORITHM_ID PIDX_ALG_PARAM_ALGORITHM_ID +#define PIDX_PKEY_PARAM_ALGORITHM_ID_PARAMS PIDX_ALG_PARAM_ALGORITHM_ID_PARAMS +#define PIDX_PKEY_PARAM_BITS 176 +#define PIDX_PKEY_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_PKEY_PARAM_DEFAULT_DIGEST 177 +#define PIDX_PKEY_PARAM_DHKEM_IKM 178 +#define PIDX_PKEY_PARAM_DH_GENERATOR 179 +#define PIDX_PKEY_PARAM_DH_PRIV_LEN 180 +#define PIDX_PKEY_PARAM_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_PKEY_PARAM_DIGEST_SIZE 181 +#define PIDX_PKEY_PARAM_DIST_ID 182 +#define PIDX_PKEY_PARAM_EC_A 183 +#define PIDX_PKEY_PARAM_EC_B 184 +#define PIDX_PKEY_PARAM_EC_CHAR2_M 185 +#define PIDX_PKEY_PARAM_EC_CHAR2_PP_K1 186 +#define PIDX_PKEY_PARAM_EC_CHAR2_PP_K2 187 +#define PIDX_PKEY_PARAM_EC_CHAR2_PP_K3 188 +#define PIDX_PKEY_PARAM_EC_CHAR2_TP_BASIS 189 +#define PIDX_PKEY_PARAM_EC_CHAR2_TYPE 190 +#define PIDX_PKEY_PARAM_EC_COFACTOR 191 +#define PIDX_PKEY_PARAM_EC_DECODED_FROM_EXPLICIT_PARAMS 192 +#define PIDX_PKEY_PARAM_EC_ENCODING 193 +#define PIDX_PKEY_PARAM_EC_FIELD_TYPE 194 +#define PIDX_PKEY_PARAM_EC_GENERATOR 195 +#define PIDX_PKEY_PARAM_EC_GROUP_CHECK_TYPE 196 +#define PIDX_PKEY_PARAM_EC_INCLUDE_PUBLIC 197 +#define PIDX_PKEY_PARAM_EC_ORDER 198 +#define PIDX_PKEY_PARAM_EC_P 138 +#define PIDX_PKEY_PARAM_EC_POINT_CONVERSION_FORMAT 199 +#define PIDX_PKEY_PARAM_EC_PUB_X 200 +#define PIDX_PKEY_PARAM_EC_PUB_Y 201 +#define PIDX_PKEY_PARAM_EC_SEED 140 +#define PIDX_PKEY_PARAM_ENCODED_PUBLIC_KEY 202 +#define PIDX_PKEY_PARAM_ENGINE PIDX_ALG_PARAM_ENGINE +#define PIDX_PKEY_PARAM_FFC_COFACTOR 203 +#define PIDX_PKEY_PARAM_FFC_DIGEST PIDX_PKEY_PARAM_DIGEST +#define PIDX_PKEY_PARAM_FFC_DIGEST_PROPS PIDX_PKEY_PARAM_PROPERTIES +#define PIDX_PKEY_PARAM_FFC_G 204 +#define PIDX_PKEY_PARAM_FFC_GINDEX 205 +#define PIDX_PKEY_PARAM_FFC_H 206 +#define PIDX_PKEY_PARAM_FFC_P 138 +#define PIDX_PKEY_PARAM_FFC_PBITS 207 +#define PIDX_PKEY_PARAM_FFC_PCOUNTER 208 +#define PIDX_PKEY_PARAM_FFC_Q 209 +#define PIDX_PKEY_PARAM_FFC_QBITS 210 +#define PIDX_PKEY_PARAM_FFC_SEED 140 +#define PIDX_PKEY_PARAM_FFC_TYPE 142 +#define PIDX_PKEY_PARAM_FFC_VALIDATE_G 211 +#define PIDX_PKEY_PARAM_FFC_VALIDATE_LEGACY 212 +#define PIDX_PKEY_PARAM_FFC_VALIDATE_PQ 213 +#define PIDX_PKEY_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK 214 +#define PIDX_PKEY_PARAM_FIPS_KEY_CHECK 215 +#define PIDX_PKEY_PARAM_FIPS_SIGN_CHECK 216 +#define PIDX_PKEY_PARAM_GROUP_NAME 217 +#define PIDX_PKEY_PARAM_IMPLICIT_REJECTION 8 +#define PIDX_PKEY_PARAM_MANDATORY_DIGEST 218 +#define PIDX_PKEY_PARAM_MASKGENFUNC 219 +#define PIDX_PKEY_PARAM_MAX_SIZE 220 +#define PIDX_PKEY_PARAM_MGF1_DIGEST 221 +#define PIDX_PKEY_PARAM_MGF1_PROPERTIES 222 +#define PIDX_PKEY_PARAM_ML_DSA_INPUT_FORMATS 223 +#define PIDX_PKEY_PARAM_ML_DSA_OUTPUT_FORMATS 224 +#define PIDX_PKEY_PARAM_ML_DSA_PREFER_SEED 225 +#define PIDX_PKEY_PARAM_ML_DSA_RETAIN_SEED 226 +#define PIDX_PKEY_PARAM_ML_DSA_SEED 140 +#define PIDX_PKEY_PARAM_ML_KEM_IMPORT_PCT_TYPE 227 +#define PIDX_PKEY_PARAM_ML_KEM_INPUT_FORMATS 228 +#define PIDX_PKEY_PARAM_ML_KEM_OUTPUT_FORMATS 229 +#define PIDX_PKEY_PARAM_ML_KEM_PREFER_SEED 230 +#define PIDX_PKEY_PARAM_ML_KEM_RETAIN_SEED 231 +#define PIDX_PKEY_PARAM_ML_KEM_SEED 140 +#define PIDX_PKEY_PARAM_PAD_MODE 232 +#define PIDX_PKEY_PARAM_PRIV_KEY 233 +#define PIDX_PKEY_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_PKEY_PARAM_PUB_KEY 234 +#define PIDX_PKEY_PARAM_RSA_BITS PIDX_PKEY_PARAM_BITS +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT 235 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT1 236 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT2 237 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT3 238 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT4 239 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT5 240 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT6 241 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT7 242 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT8 243 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT9 244 +#define PIDX_PKEY_PARAM_RSA_D 245 +#define PIDX_PKEY_PARAM_RSA_DERIVE_FROM_PQ 246 +#define PIDX_PKEY_PARAM_RSA_DIGEST PIDX_PKEY_PARAM_DIGEST +#define PIDX_PKEY_PARAM_RSA_DIGEST_PROPS PIDX_PKEY_PARAM_PROPERTIES +#define PIDX_PKEY_PARAM_RSA_E 247 +#define PIDX_PKEY_PARAM_RSA_EXPONENT 248 +#define PIDX_PKEY_PARAM_RSA_EXPONENT1 249 +#define PIDX_PKEY_PARAM_RSA_EXPONENT10 250 +#define PIDX_PKEY_PARAM_RSA_EXPONENT2 251 +#define PIDX_PKEY_PARAM_RSA_EXPONENT3 252 +#define PIDX_PKEY_PARAM_RSA_EXPONENT4 253 +#define PIDX_PKEY_PARAM_RSA_EXPONENT5 254 +#define PIDX_PKEY_PARAM_RSA_EXPONENT6 255 +#define PIDX_PKEY_PARAM_RSA_EXPONENT7 256 +#define PIDX_PKEY_PARAM_RSA_EXPONENT8 257 +#define PIDX_PKEY_PARAM_RSA_EXPONENT9 258 +#define PIDX_PKEY_PARAM_RSA_FACTOR 259 +#define PIDX_PKEY_PARAM_RSA_FACTOR1 260 +#define PIDX_PKEY_PARAM_RSA_FACTOR10 261 +#define PIDX_PKEY_PARAM_RSA_FACTOR2 262 +#define PIDX_PKEY_PARAM_RSA_FACTOR3 263 +#define PIDX_PKEY_PARAM_RSA_FACTOR4 264 +#define PIDX_PKEY_PARAM_RSA_FACTOR5 265 +#define PIDX_PKEY_PARAM_RSA_FACTOR6 266 +#define PIDX_PKEY_PARAM_RSA_FACTOR7 267 +#define PIDX_PKEY_PARAM_RSA_FACTOR8 268 +#define PIDX_PKEY_PARAM_RSA_FACTOR9 269 +#define PIDX_PKEY_PARAM_RSA_MASKGENFUNC PIDX_PKEY_PARAM_MASKGENFUNC +#define PIDX_PKEY_PARAM_RSA_MGF1_DIGEST PIDX_PKEY_PARAM_MGF1_DIGEST +#define PIDX_PKEY_PARAM_RSA_N 137 +#define PIDX_PKEY_PARAM_RSA_PRIMES 270 +#define PIDX_PKEY_PARAM_RSA_PSS_SALTLEN 271 +#define PIDX_PKEY_PARAM_RSA_TEST_P1 272 +#define PIDX_PKEY_PARAM_RSA_TEST_P2 273 +#define PIDX_PKEY_PARAM_RSA_TEST_Q1 274 +#define PIDX_PKEY_PARAM_RSA_TEST_Q2 275 +#define PIDX_PKEY_PARAM_RSA_TEST_XP 276 +#define PIDX_PKEY_PARAM_RSA_TEST_XP1 277 +#define PIDX_PKEY_PARAM_RSA_TEST_XP2 278 +#define PIDX_PKEY_PARAM_RSA_TEST_XQ 279 +#define PIDX_PKEY_PARAM_RSA_TEST_XQ1 280 +#define PIDX_PKEY_PARAM_RSA_TEST_XQ2 281 +#define PIDX_PKEY_PARAM_SECURITY_BITS 282 +#define PIDX_PKEY_PARAM_SLH_DSA_SEED 140 +#define PIDX_PKEY_PARAM_USE_COFACTOR_ECDH PIDX_PKEY_PARAM_USE_COFACTOR_FLAG +#define PIDX_PKEY_PARAM_USE_COFACTOR_FLAG 283 +#define PIDX_PROV_PARAM_BUILDINFO 284 +#define PIDX_PROV_PARAM_CORE_MODULE_FILENAME 285 +#define PIDX_PROV_PARAM_CORE_PROV_NAME 286 +#define PIDX_PROV_PARAM_CORE_VERSION 287 +#define PIDX_PROV_PARAM_DRBG_TRUNC_DIGEST 288 +#define PIDX_PROV_PARAM_DSA_SIGN_DISABLED 289 +#define PIDX_PROV_PARAM_ECDH_COFACTOR_CHECK 290 +#define PIDX_PROV_PARAM_HKDF_DIGEST_CHECK 291 +#define PIDX_PROV_PARAM_HKDF_KEY_CHECK 292 +#define PIDX_PROV_PARAM_HMAC_KEY_CHECK 293 +#define PIDX_PROV_PARAM_KBKDF_KEY_CHECK 294 +#define PIDX_PROV_PARAM_KMAC_KEY_CHECK 295 +#define PIDX_PROV_PARAM_NAME 296 +#define PIDX_PROV_PARAM_NO_SHORT_MAC 297 +#define PIDX_PROV_PARAM_PBKDF2_LOWER_BOUND_CHECK 298 +#define PIDX_PROV_PARAM_RSA_PKCS15_PAD_DISABLED 299 +#define PIDX_PROV_PARAM_RSA_PSS_SALTLEN_CHECK 300 +#define PIDX_PROV_PARAM_RSA_SIGN_X931_PAD_DISABLED 301 +#define PIDX_PROV_PARAM_SECURITY_CHECKS 302 +#define PIDX_PROV_PARAM_SELF_TEST_DESC 303 +#define PIDX_PROV_PARAM_SELF_TEST_PHASE 304 +#define PIDX_PROV_PARAM_SELF_TEST_TYPE 305 +#define PIDX_PROV_PARAM_SIGNATURE_DIGEST_CHECK 306 +#define PIDX_PROV_PARAM_SSHKDF_DIGEST_CHECK 307 +#define PIDX_PROV_PARAM_SSHKDF_KEY_CHECK 308 +#define PIDX_PROV_PARAM_SSKDF_DIGEST_CHECK 309 +#define PIDX_PROV_PARAM_SSKDF_KEY_CHECK 310 +#define PIDX_PROV_PARAM_STATUS 311 +#define PIDX_PROV_PARAM_TDES_ENCRYPT_DISABLED 312 +#define PIDX_PROV_PARAM_TLS13_KDF_DIGEST_CHECK 313 +#define PIDX_PROV_PARAM_TLS13_KDF_KEY_CHECK 314 +#define PIDX_PROV_PARAM_TLS1_PRF_DIGEST_CHECK 315 +#define PIDX_PROV_PARAM_TLS1_PRF_EMS_CHECK 316 +#define PIDX_PROV_PARAM_TLS1_PRF_KEY_CHECK 317 +#define PIDX_PROV_PARAM_VERSION 115 +#define PIDX_PROV_PARAM_X942KDF_KEY_CHECK 318 +#define PIDX_PROV_PARAM_X963KDF_DIGEST_CHECK 319 +#define PIDX_PROV_PARAM_X963KDF_KEY_CHECK 320 +#define PIDX_RAND_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_RAND_PARAM_GENERATE 321 +#define PIDX_RAND_PARAM_MAX_REQUEST 322 +#define PIDX_RAND_PARAM_STATE 323 +#define PIDX_RAND_PARAM_STRENGTH 324 +#define PIDX_RAND_PARAM_TEST_ENTROPY 325 +#define PIDX_RAND_PARAM_TEST_NONCE 326 +#define PIDX_SIGNATURE_PARAM_ADD_RANDOM 327 +#define PIDX_SIGNATURE_PARAM_ALGORITHM_ID PIDX_PKEY_PARAM_ALGORITHM_ID +#define PIDX_SIGNATURE_PARAM_ALGORITHM_ID_PARAMS PIDX_PKEY_PARAM_ALGORITHM_ID_PARAMS +#define PIDX_SIGNATURE_PARAM_CONTEXT_STRING 328 +#define PIDX_SIGNATURE_PARAM_DETERMINISTIC 329 +#define PIDX_SIGNATURE_PARAM_DIGEST PIDX_PKEY_PARAM_DIGEST +#define PIDX_SIGNATURE_PARAM_DIGEST_SIZE PIDX_PKEY_PARAM_DIGEST_SIZE +#define PIDX_SIGNATURE_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_SIGNATURE_PARAM_FIPS_DIGEST_CHECK PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK +#define PIDX_SIGNATURE_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_SIGNATURE_PARAM_FIPS_RSA_PSS_SALTLEN_CHECK 300 +#define PIDX_SIGNATURE_PARAM_FIPS_SIGN_CHECK PIDX_PKEY_PARAM_FIPS_SIGN_CHECK +#define PIDX_SIGNATURE_PARAM_FIPS_SIGN_X931_PAD_CHECK 330 +#define PIDX_SIGNATURE_PARAM_FIPS_VERIFY_MESSAGE 331 +#define PIDX_SIGNATURE_PARAM_INSTANCE 332 +#define PIDX_SIGNATURE_PARAM_KAT 333 +#define PIDX_SIGNATURE_PARAM_MESSAGE_ENCODING 334 +#define PIDX_SIGNATURE_PARAM_MGF1_DIGEST PIDX_PKEY_PARAM_MGF1_DIGEST +#define PIDX_SIGNATURE_PARAM_MGF1_PROPERTIES PIDX_PKEY_PARAM_MGF1_PROPERTIES +#define PIDX_SIGNATURE_PARAM_MU 335 +#define PIDX_SIGNATURE_PARAM_NONCE_TYPE 336 +#define PIDX_SIGNATURE_PARAM_PAD_MODE PIDX_PKEY_PARAM_PAD_MODE +#define PIDX_SIGNATURE_PARAM_PROPERTIES PIDX_PKEY_PARAM_PROPERTIES +#define PIDX_SIGNATURE_PARAM_PSS_SALTLEN 271 +#define PIDX_SIGNATURE_PARAM_SIGNATURE 337 +#define PIDX_SIGNATURE_PARAM_TEST_ENTROPY 338 +#define PIDX_SKEY_PARAM_KEY_LENGTH 339 +#define PIDX_SKEY_PARAM_RAW_BYTES 340 +#define PIDX_STORE_PARAM_ALIAS 341 +#define PIDX_STORE_PARAM_DIGEST 3 +#define PIDX_STORE_PARAM_EXPECT 342 +#define PIDX_STORE_PARAM_FINGERPRINT 343 +#define PIDX_STORE_PARAM_INPUT_TYPE 174 +#define PIDX_STORE_PARAM_ISSUER 296 +#define PIDX_STORE_PARAM_PROPERTIES 7 +#define PIDX_STORE_PARAM_SERIAL 344 +#define PIDX_STORE_PARAM_SUBJECT 345 diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/include/openssl/asn1.h b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/include/openssl/asn1.h index 21ff58e3d803d4..15e9e44674b0f3 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/include/openssl/asn1.h +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/include/openssl/asn1.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/asn1.h.in * - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -21,6 +21,9 @@ # define HEADER_ASN1_H # endif +# ifndef OPENSSL_NO_STDIO +# include +# endif # include # include # include @@ -50,14 +53,14 @@ extern "C" { # define V_ASN1_PRIMITIVE_TAG 0x1f # define V_ASN1_PRIMATIVE_TAG /*compat*/ V_ASN1_PRIMITIVE_TAG -# define V_ASN1_APP_CHOOSE -2/* let the recipient choose */ -# define V_ASN1_OTHER -3/* used in ASN1_TYPE */ -# define V_ASN1_ANY -4/* used in ASN1 template code */ +# define V_ASN1_APP_CHOOSE -2 /* let the recipient choose */ +# define V_ASN1_OTHER -3 /* used in ASN1_TYPE */ +# define V_ASN1_ANY -4 /* used in ASN1 template code */ # define V_ASN1_UNDEF -1 /* ASN.1 tag values */ # define V_ASN1_EOC 0 -# define V_ASN1_BOOLEAN 1 /**/ +# define V_ASN1_BOOLEAN 1 # define V_ASN1_INTEGER 2 # define V_ASN1_BIT_STRING 3 # define V_ASN1_OCTET_STRING 4 @@ -70,19 +73,19 @@ extern "C" { # define V_ASN1_UTF8STRING 12 # define V_ASN1_SEQUENCE 16 # define V_ASN1_SET 17 -# define V_ASN1_NUMERICSTRING 18 /**/ +# define V_ASN1_NUMERICSTRING 18 # define V_ASN1_PRINTABLESTRING 19 # define V_ASN1_T61STRING 20 -# define V_ASN1_TELETEXSTRING 20/* alias */ -# define V_ASN1_VIDEOTEXSTRING 21 /**/ +# define V_ASN1_TELETEXSTRING 20 /* alias */ +# define V_ASN1_VIDEOTEXSTRING 21 # define V_ASN1_IA5STRING 22 # define V_ASN1_UTCTIME 23 -# define V_ASN1_GENERALIZEDTIME 24 /**/ -# define V_ASN1_GRAPHICSTRING 25 /**/ -# define V_ASN1_ISO64STRING 26 /**/ -# define V_ASN1_VISIBLESTRING 26/* alias */ -# define V_ASN1_GENERALSTRING 27 /**/ -# define V_ASN1_UNIVERSALSTRING 28 /**/ +# define V_ASN1_GENERALIZEDTIME 24 +# define V_ASN1_GRAPHICSTRING 25 +# define V_ASN1_ISO64STRING 26 +# define V_ASN1_VISIBLESTRING 26 /* alias */ +# define V_ASN1_GENERALSTRING 27 +# define V_ASN1_UNIVERSALSTRING 28 # define V_ASN1_BMPSTRING 30 /* @@ -155,7 +158,7 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_ALGOR, X509_ALGOR, X509_ALGOR) -# define ASN1_STRING_FLAG_BITS_LEFT 0x08/* Set if 0x07 has bits left value */ +# define ASN1_STRING_FLAG_BITS_LEFT 0x08 /* Set if 0x07 has bits left value */ /* * This indicates that the ASN1_STRING is not a real value but just a place * holder for the location where indefinite length constructed data should be @@ -275,7 +278,7 @@ typedef struct ASN1_TLC_st ASN1_TLC; /* This is just an opaque pointer */ typedef struct ASN1_VALUE_st ASN1_VALUE; -/* Declare ASN1 functions: the implement macro in in asn1t.h */ +/* Declare ASN1 functions: the implement macro is in asn1t.h */ /* * The mysterious 'extern' that's passed to some macros is innocuous, @@ -368,6 +371,7 @@ typedef struct ASN1_VALUE_st ASN1_VALUE; typedef void *d2i_of_void(void **, const unsigned char **, long); typedef int i2d_of_void(const void *, unsigned char **); +typedef int OSSL_i2d_of_void_ctx(const void *, unsigned char **, void *vctx); /*- * The following macros and typedefs allow an ASN1_ITEM @@ -996,6 +1000,8 @@ int ASN1_TYPE_get_int_octetstring(const ASN1_TYPE *a, long *num, unsigned char *data, int max_len); void *ASN1_item_unpack(const ASN1_STRING *oct, const ASN1_ITEM *it); +void *ASN1_item_unpack_ex(const ASN1_STRING *oct, const ASN1_ITEM *it, + OSSL_LIB_CTX *libctx, const char *propq); ASN1_STRING *ASN1_item_pack(void *obj, const ASN1_ITEM *it, ASN1_OCTET_STRING **oct); diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/include/openssl/bio.h b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/include/openssl/bio.h index f9aa74731c833c..e02f867beb0ec0 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/include/openssl/bio.h +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/include/openssl/bio.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/bio.h.in * - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -67,8 +67,13 @@ extern "C" { # define BIO_TYPE_DGRAM_SCTP (24|BIO_TYPE_SOURCE_SINK|BIO_TYPE_DESCRIPTOR) # endif # define BIO_TYPE_CORE_TO_PROV (25|BIO_TYPE_SOURCE_SINK) +# define BIO_TYPE_DGRAM_PAIR (26|BIO_TYPE_SOURCE_SINK) +# define BIO_TYPE_DGRAM_MEM (27|BIO_TYPE_SOURCE_SINK) +/* Custom type starting index returned by BIO_get_new_index() */ #define BIO_TYPE_START 128 +/* Custom type maximum index that can be returned by BIO_get_new_index() */ +#define BIO_TYPE_MASK 0xFF /* * BIO_FILENAME_READ|BIO_CLOSE to open or close on free. @@ -171,6 +176,31 @@ extern "C" { # define BIO_CTRL_SET_INDENT 80 # define BIO_CTRL_GET_INDENT 81 +# define BIO_CTRL_DGRAM_GET_LOCAL_ADDR_CAP 82 +# define BIO_CTRL_DGRAM_GET_LOCAL_ADDR_ENABLE 83 +# define BIO_CTRL_DGRAM_SET_LOCAL_ADDR_ENABLE 84 +# define BIO_CTRL_DGRAM_GET_EFFECTIVE_CAPS 85 +# define BIO_CTRL_DGRAM_GET_CAPS 86 +# define BIO_CTRL_DGRAM_SET_CAPS 87 +# define BIO_CTRL_DGRAM_GET_NO_TRUNC 88 +# define BIO_CTRL_DGRAM_SET_NO_TRUNC 89 + +/* + * internal BIO: + * # define BIO_CTRL_SET_KTLS_TX_ZEROCOPY_SENDFILE 90 + */ + +# define BIO_CTRL_GET_RPOLL_DESCRIPTOR 91 +# define BIO_CTRL_GET_WPOLL_DESCRIPTOR 92 +# define BIO_CTRL_DGRAM_DETECT_PEER_ADDR 93 +# define BIO_CTRL_DGRAM_SET0_LOCAL_ADDR 94 + +# define BIO_DGRAM_CAP_NONE 0U +# define BIO_DGRAM_CAP_HANDLES_SRC_ADDR (1U << 0) +# define BIO_DGRAM_CAP_HANDLES_DST_ADDR (1U << 1) +# define BIO_DGRAM_CAP_PROVIDES_SRC_ADDR (1U << 2) +# define BIO_DGRAM_CAP_PROVIDES_DST_ADDR (1U << 3) + # ifndef OPENSSL_NO_KTLS # define BIO_get_ktls_send(b) \ (BIO_ctrl(b, BIO_CTRL_GET_KTLS_SEND, 0, NULL) > 0) @@ -208,7 +238,7 @@ extern "C" { # define BIO_FLAGS_NONCLEAR_RST 0x400 # define BIO_FLAGS_IN_EOF 0x800 -/* the BIO FLAGS values 0x1000 to 0x4000 are reserved for internal KTLS flags */ +/* the BIO FLAGS values 0x1000 to 0x8000 are reserved for internal KTLS flags */ typedef union bio_addr_st BIO_ADDR; typedef struct bio_addrinfo_st BIO_ADDRINFO; @@ -256,12 +286,14 @@ void BIO_clear_flags(BIO *b, int flags); # define BIO_RR_ACCEPT 0x03 /* These are passed by the BIO callback */ -# define BIO_CB_FREE 0x01 -# define BIO_CB_READ 0x02 -# define BIO_CB_WRITE 0x03 -# define BIO_CB_PUTS 0x04 -# define BIO_CB_GETS 0x05 -# define BIO_CB_CTRL 0x06 +# define BIO_CB_FREE 0x01 +# define BIO_CB_READ 0x02 +# define BIO_CB_WRITE 0x03 +# define BIO_CB_PUTS 0x04 +# define BIO_CB_GETS 0x05 +# define BIO_CB_CTRL 0x06 +# define BIO_CB_RECVMMSG 0x07 +# define BIO_CB_SENDMMSG 0x08 /* * The callback is called before and after the underling operation, The @@ -362,6 +394,36 @@ struct bio_dgram_sctp_prinfo { }; # endif +/* BIO_sendmmsg/BIO_recvmmsg-related definitions */ +typedef struct bio_msg_st { + void *data; + size_t data_len; + BIO_ADDR *peer, *local; + uint64_t flags; +} BIO_MSG; + +typedef struct bio_mmsg_cb_args_st { + BIO_MSG *msg; + size_t stride, num_msg; + uint64_t flags; + size_t *msgs_processed; +} BIO_MMSG_CB_ARGS; + +#define BIO_POLL_DESCRIPTOR_TYPE_NONE 0 +#define BIO_POLL_DESCRIPTOR_TYPE_SOCK_FD 1 +#define BIO_POLL_DESCRIPTOR_TYPE_SSL 2 +#define BIO_POLL_DESCRIPTOR_CUSTOM_START 8192 + +typedef struct bio_poll_descriptor_st { + uint32_t type; + union { + int fd; + void *custom; + uintptr_t custom_ui; + SSL *ssl; + } value; +} BIO_POLL_DESCRIPTOR; + /* * #define BIO_CONN_get_param_hostname BIO_ctrl */ @@ -428,10 +490,17 @@ struct bio_dgram_sctp_prinfo { # define BIO_C_SET_CONNECT_MODE 155 +# define BIO_C_SET_TFO 156 /* like BIO_C_SET_NBIO */ + +# define BIO_C_SET_SOCK_TYPE 157 +# define BIO_C_GET_SOCK_TYPE 158 +# define BIO_C_GET_DGRAM_BIO 159 + # define BIO_set_app_data(s,arg) BIO_set_ex_data(s,0,arg) # define BIO_get_app_data(s) BIO_get_ex_data(s,0) -# define BIO_set_nbio(b,n) BIO_ctrl(b,BIO_C_SET_NBIO,(n),NULL) +# define BIO_set_nbio(b,n) BIO_ctrl(b,BIO_C_SET_NBIO,(n),NULL) +# define BIO_set_tfo(b,n) BIO_ctrl(b,BIO_C_SET_TFO,(n),NULL) # ifndef OPENSSL_NO_SOCK /* IP families we support, for BIO_s_connect() and BIO_s_accept() */ @@ -452,7 +521,11 @@ struct bio_dgram_sctp_prinfo { # define BIO_get_conn_port(b) ((const char *)BIO_ptr_ctrl(b,BIO_C_GET_CONNECT,1)) # define BIO_get_conn_address(b) ((const BIO_ADDR *)BIO_ptr_ctrl(b,BIO_C_GET_CONNECT,2)) # define BIO_get_conn_ip_family(b) BIO_ctrl(b,BIO_C_GET_CONNECT,3,NULL) +# define BIO_get_conn_mode(b) BIO_ctrl(b,BIO_C_GET_CONNECT,4,NULL) # define BIO_set_conn_mode(b,n) BIO_ctrl(b,BIO_C_SET_CONNECT_MODE,(n),NULL) +# define BIO_set_sock_type(b,t) BIO_ctrl(b,BIO_C_SET_SOCK_TYPE,(t),NULL) +# define BIO_get_sock_type(b) BIO_ctrl(b,BIO_C_GET_SOCK_TYPE,0,NULL) +# define BIO_get0_dgram_bio(b, p) BIO_ctrl(b,BIO_C_GET_DGRAM_BIO,0,(void *)(BIO **)(p)) /* BIO_s_accept() */ # define BIO_set_accept_name(b,name) BIO_ctrl(b,BIO_C_SET_ACCEPT,0, \ @@ -469,6 +542,7 @@ struct bio_dgram_sctp_prinfo { (char *)(bio)) # define BIO_set_accept_ip_family(b,f) BIO_int_ctrl(b,BIO_C_SET_ACCEPT,4,f) # define BIO_get_accept_ip_family(b) BIO_ctrl(b,BIO_C_GET_ACCEPT,4,NULL) +# define BIO_set_tfo_accept(b,n) BIO_ctrl(b,BIO_C_SET_ACCEPT,5,(n)?(void *)"a":NULL) /* Aliases kept for backward compatibility */ # define BIO_BIND_NORMAL 0 @@ -596,8 +670,32 @@ int BIO_ctrl_reset_read_request(BIO *b); (int)BIO_ctrl(b, BIO_CTRL_DGRAM_GET_PEER, 0, (char *)(peer)) # define BIO_dgram_set_peer(b,peer) \ (int)BIO_ctrl(b, BIO_CTRL_DGRAM_SET_PEER, 0, (char *)(peer)) +# define BIO_dgram_detect_peer_addr(b,peer) \ + (int)BIO_ctrl(b, BIO_CTRL_DGRAM_DETECT_PEER_ADDR, 0, (char *)(peer)) # define BIO_dgram_get_mtu_overhead(b) \ (unsigned int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_MTU_OVERHEAD, 0, NULL) +# define BIO_dgram_get_local_addr_cap(b) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_LOCAL_ADDR_CAP, 0, NULL) +# define BIO_dgram_get_local_addr_enable(b, penable) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_LOCAL_ADDR_ENABLE, 0, (char *)(penable)) +# define BIO_dgram_set_local_addr_enable(b, enable) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET_LOCAL_ADDR_ENABLE, (enable), NULL) +# define BIO_dgram_get_effective_caps(b) \ + (uint32_t)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_EFFECTIVE_CAPS, 0, NULL) +# define BIO_dgram_get_caps(b) \ + (uint32_t)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_CAPS, 0, NULL) +# define BIO_dgram_set_caps(b, caps) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET_CAPS, (long)(caps), NULL) +# define BIO_dgram_get_no_trunc(b) \ + (unsigned int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_NO_TRUNC, 0, NULL) +# define BIO_dgram_set_no_trunc(b, enable) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET_NO_TRUNC, (enable), NULL) +# define BIO_dgram_get_mtu(b) \ + (unsigned int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_MTU, 0, NULL) +# define BIO_dgram_set_mtu(b, mtu) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET_MTU, (mtu), NULL) +# define BIO_dgram_set0_local_addr(b, addr) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET0_LOCAL_ADDR, 0, (addr)) /* ctrl macros for BIO_f_prefix */ # define BIO_set_prefix(b,p) BIO_ctrl((b), BIO_CTRL_SET_PREFIX, 0, (void *)(p)) @@ -640,10 +738,18 @@ void BIO_vfree(BIO *a); int BIO_up_ref(BIO *a); int BIO_read(BIO *b, void *data, int dlen); int BIO_read_ex(BIO *b, void *data, size_t dlen, size_t *readbytes); +__owur int BIO_recvmmsg(BIO *b, BIO_MSG *msg, + size_t stride, size_t num_msg, uint64_t flags, + size_t *msgs_processed); int BIO_gets(BIO *bp, char *buf, int size); int BIO_get_line(BIO *bio, char *buf, int size); int BIO_write(BIO *b, const void *data, int dlen); int BIO_write_ex(BIO *b, const void *data, size_t dlen, size_t *written); +__owur int BIO_sendmmsg(BIO *b, BIO_MSG *msg, + size_t stride, size_t num_msg, uint64_t flags, + size_t *msgs_processed); +__owur int BIO_get_rpoll_descriptor(BIO *b, BIO_POLL_DESCRIPTOR *desc); +__owur int BIO_get_wpoll_descriptor(BIO *b, BIO_POLL_DESCRIPTOR *desc); int BIO_puts(BIO *bp, const char *buf); int BIO_indent(BIO *b, int indent, int max); long BIO_ctrl(BIO *bp, int cmd, long larg, void *parg); @@ -667,6 +773,9 @@ int BIO_nwrite0(BIO *bio, char **buf); int BIO_nwrite(BIO *bio, char **buf, int num); const BIO_METHOD *BIO_s_mem(void); +# ifndef OPENSSL_NO_DGRAM +const BIO_METHOD *BIO_s_dgram_mem(void); +# endif const BIO_METHOD *BIO_s_secmem(void); BIO *BIO_new_mem_buf(const void *buf, int len); # ifndef OPENSSL_NO_SOCK @@ -686,6 +795,7 @@ const BIO_METHOD *BIO_f_nbio_test(void); const BIO_METHOD *BIO_f_prefix(void); const BIO_METHOD *BIO_s_core(void); # ifndef OPENSSL_NO_DGRAM +const BIO_METHOD *BIO_s_dgram_pair(void); const BIO_METHOD *BIO_s_datagram(void); int BIO_dgram_non_fatal_error(int error); BIO *BIO_new_dgram(int fd, int close_flag); @@ -704,6 +814,7 @@ int BIO_dgram_sctp_msg_waiting(BIO *b); # ifndef OPENSSL_NO_SOCK int BIO_sock_should_retry(int i); int BIO_sock_non_fatal_error(int error); +int BIO_err_is_non_fatal(unsigned int errcode); int BIO_socket_wait(int fd, int for_read, time_t max_time); # endif int BIO_wait(BIO *bio, time_t max_time, unsigned int nap_milliseconds); @@ -726,6 +837,8 @@ int BIO_hex_string(BIO *out, int indent, int width, const void *data, # ifndef OPENSSL_NO_SOCK BIO_ADDR *BIO_ADDR_new(void); +int BIO_ADDR_copy(BIO_ADDR *dst, const BIO_ADDR *src); +BIO_ADDR *BIO_ADDR_dup(const BIO_ADDR *ap); int BIO_ADDR_rawmake(BIO_ADDR *ap, int family, const void *where, size_t wherelen, unsigned short port); void BIO_ADDR_free(BIO_ADDR *); @@ -788,6 +901,7 @@ int BIO_sock_info(int sock, # define BIO_SOCK_KEEPALIVE 0x04 # define BIO_SOCK_NONBLOCK 0x08 # define BIO_SOCK_NODELAY 0x10 +# define BIO_SOCK_TFO 0x20 int BIO_socket(int domain, int socktype, int protocol, int options); int BIO_connect(int sock, const BIO_ADDR *addr, int options); @@ -805,6 +919,11 @@ BIO *BIO_new_fd(int fd, int close_flag); int BIO_new_bio_pair(BIO **bio1, size_t writebuf1, BIO **bio2, size_t writebuf2); +# ifndef OPENSSL_NO_DGRAM +int BIO_new_bio_dgram_pair(BIO **bio1, size_t writebuf1, + BIO **bio2, size_t writebuf2); +# endif + /* * If successful, returns 1 and in *bio1, *bio2 two BIO pair endpoints. * Otherwise returns 0 and sets *bio1 and *bio2 to NULL. Size 0 uses default @@ -849,38 +968,54 @@ ossl_bio__attr__((__format__(ossl_bio__printf__, 3, 0))); BIO_METHOD *BIO_meth_new(int type, const char *name); void BIO_meth_free(BIO_METHOD *biom); -int (*BIO_meth_get_write(const BIO_METHOD *biom)) (BIO *, const char *, int); -int (*BIO_meth_get_write_ex(const BIO_METHOD *biom)) (BIO *, const char *, size_t, - size_t *); int BIO_meth_set_write(BIO_METHOD *biom, int (*write) (BIO *, const char *, int)); int BIO_meth_set_write_ex(BIO_METHOD *biom, int (*bwrite) (BIO *, const char *, size_t, size_t *)); -int (*BIO_meth_get_read(const BIO_METHOD *biom)) (BIO *, char *, int); -int (*BIO_meth_get_read_ex(const BIO_METHOD *biom)) (BIO *, char *, size_t, size_t *); +int BIO_meth_set_sendmmsg(BIO_METHOD *biom, + int (*f) (BIO *, BIO_MSG *, size_t, size_t, + uint64_t, size_t *)); int BIO_meth_set_read(BIO_METHOD *biom, int (*read) (BIO *, char *, int)); int BIO_meth_set_read_ex(BIO_METHOD *biom, int (*bread) (BIO *, char *, size_t, size_t *)); -int (*BIO_meth_get_puts(const BIO_METHOD *biom)) (BIO *, const char *); +int BIO_meth_set_recvmmsg(BIO_METHOD *biom, + int (*f) (BIO *, BIO_MSG *, size_t, size_t, + uint64_t, size_t *)); int BIO_meth_set_puts(BIO_METHOD *biom, int (*puts) (BIO *, const char *)); -int (*BIO_meth_get_gets(const BIO_METHOD *biom)) (BIO *, char *, int); int BIO_meth_set_gets(BIO_METHOD *biom, int (*ossl_gets) (BIO *, char *, int)); -long (*BIO_meth_get_ctrl(const BIO_METHOD *biom)) (BIO *, int, long, void *); int BIO_meth_set_ctrl(BIO_METHOD *biom, long (*ctrl) (BIO *, int, long, void *)); -int (*BIO_meth_get_create(const BIO_METHOD *bion)) (BIO *); int BIO_meth_set_create(BIO_METHOD *biom, int (*create) (BIO *)); -int (*BIO_meth_get_destroy(const BIO_METHOD *biom)) (BIO *); int BIO_meth_set_destroy(BIO_METHOD *biom, int (*destroy) (BIO *)); -long (*BIO_meth_get_callback_ctrl(const BIO_METHOD *biom)) - (BIO *, int, BIO_info_cb *); int BIO_meth_set_callback_ctrl(BIO_METHOD *biom, long (*callback_ctrl) (BIO *, int, BIO_info_cb *)); - +# ifndef OPENSSL_NO_DEPRECATED_3_5 +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_write(const BIO_METHOD *biom)) (BIO *, const char *, + int); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_write_ex(const BIO_METHOD *biom)) (BIO *, const char *, + size_t, size_t *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_sendmmsg(const BIO_METHOD *biom))(BIO *, BIO_MSG *, + size_t, size_t, + uint64_t, size_t *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_read(const BIO_METHOD *biom)) (BIO *, char *, int); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_read_ex(const BIO_METHOD *biom)) (BIO *, char *, + size_t, size_t *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_recvmmsg(const BIO_METHOD *biom))(BIO *, BIO_MSG *, + size_t, size_t, + uint64_t, size_t *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_puts(const BIO_METHOD *biom)) (BIO *, const char *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_gets(const BIO_METHOD *biom)) (BIO *, char *, int); +OSSL_DEPRECATEDIN_3_5 long (*BIO_meth_get_ctrl(const BIO_METHOD *biom)) (BIO *, int, + long, void *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_create(const BIO_METHOD *bion)) (BIO *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_destroy(const BIO_METHOD *biom)) (BIO *); +OSSL_DEPRECATEDIN_3_5 long (*BIO_meth_get_callback_ctrl(const BIO_METHOD *biom)) (BIO *, int, + BIO_info_cb *); +# endif # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/include/openssl/cmp.h b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/include/openssl/cmp.h index 49825570d8c303..05aed3029d594c 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/include/openssl/cmp.h +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/include/openssl/cmp.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/cmp.h.in * - * Copyright 2007-2023 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2007-2024 The OpenSSL Project Authors. All Rights Reserved. * Copyright Nokia 2007-2019 * Copyright Siemens AG 2015-2019 * @@ -35,7 +35,9 @@ extern "C" { # endif -# define OSSL_CMP_PVNO 2 +# define OSSL_CMP_PVNO_2 2 +# define OSSL_CMP_PVNO_3 3 +# define OSSL_CMP_PVNO OSSL_CMP_PVNO_2 /* v2 is the default */ /*- * PKIFailureInfo ::= BIT STRING { @@ -137,7 +139,6 @@ extern "C" { # if OSSL_CMP_PKIFAILUREINFO_MAX_BIT_PATTERN > INT_MAX # error CMP_PKIFAILUREINFO_MAX bit pattern does not fit in type int # endif - typedef ASN1_BIT_STRING OSSL_CMP_PKIFAILUREINFO; # define OSSL_CMP_CTX_FAILINFO_badAlg (1 << 0) @@ -203,8 +204,8 @@ typedef ASN1_BIT_STRING OSSL_CMP_PKIFAILUREINFO; # define OSSL_CMP_PKISTATUS_revocationWarning 4 # define OSSL_CMP_PKISTATUS_revocationNotification 5 # define OSSL_CMP_PKISTATUS_keyUpdateWarning 6 - typedef ASN1_INTEGER OSSL_CMP_PKISTATUS; + DECLARE_ASN1_ITEM(OSSL_CMP_PKISTATUS) # define OSSL_CMP_CERTORENCCERT_CERTIFICATE 0 @@ -274,6 +275,46 @@ SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CMP_ITAV, OSSL_CMP_ITAV, OSSL_CMP_ITAV) #define sk_OSSL_CMP_ITAV_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_CMP_ITAV) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_CMP_ITAV_sk_type(sk), ossl_check_OSSL_CMP_ITAV_copyfunc_type(copyfunc), ossl_check_OSSL_CMP_ITAV_freefunc_type(freefunc))) #define sk_OSSL_CMP_ITAV_set_cmp_func(sk, cmp) ((sk_OSSL_CMP_ITAV_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CMP_ITAV_sk_type(sk), ossl_check_OSSL_CMP_ITAV_compfunc_type(cmp))) + +typedef struct ossl_cmp_crlstatus_st OSSL_CMP_CRLSTATUS; +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CMP_CRLSTATUS, OSSL_CMP_CRLSTATUS, OSSL_CMP_CRLSTATUS) +#define sk_OSSL_CMP_CRLSTATUS_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_value(sk, idx) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_value(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk), (idx))) +#define sk_OSSL_CMP_CRLSTATUS_new(cmp) ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_new(ossl_check_OSSL_CMP_CRLSTATUS_compfunc_type(cmp))) +#define sk_OSSL_CMP_CRLSTATUS_new_null() ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_new_null()) +#define sk_OSSL_CMP_CRLSTATUS_new_reserve(cmp, n) ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_CMP_CRLSTATUS_compfunc_type(cmp), (n))) +#define sk_OSSL_CMP_CRLSTATUS_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), (n)) +#define sk_OSSL_CMP_CRLSTATUS_free(sk) OPENSSL_sk_free(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_delete(sk, i) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_delete(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), (i))) +#define sk_OSSL_CMP_CRLSTATUS_delete_ptr(sk, ptr) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr))) +#define sk_OSSL_CMP_CRLSTATUS_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr)) +#define sk_OSSL_CMP_CRLSTATUS_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr)) +#define sk_OSSL_CMP_CRLSTATUS_pop(sk) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_pop(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk))) +#define sk_OSSL_CMP_CRLSTATUS_shift(sk) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_shift(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk))) +#define sk_OSSL_CMP_CRLSTATUS_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk),ossl_check_OSSL_CMP_CRLSTATUS_freefunc_type(freefunc)) +#define sk_OSSL_CMP_CRLSTATUS_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr), (idx)) +#define sk_OSSL_CMP_CRLSTATUS_set(sk, idx, ptr) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_set(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), (idx), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr))) +#define sk_OSSL_CMP_CRLSTATUS_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr)) +#define sk_OSSL_CMP_CRLSTATUS_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr)) +#define sk_OSSL_CMP_CRLSTATUS_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr), pnum) +#define sk_OSSL_CMP_CRLSTATUS_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_dup(sk) ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_dup(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk))) +#define sk_OSSL_CMP_CRLSTATUS_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_copyfunc_type(copyfunc), ossl_check_OSSL_CMP_CRLSTATUS_freefunc_type(freefunc))) +#define sk_OSSL_CMP_CRLSTATUS_set_cmp_func(sk, cmp) ((sk_OSSL_CMP_CRLSTATUS_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_compfunc_type(cmp))) + + +typedef OSSL_CRMF_ATTRIBUTETYPEANDVALUE OSSL_CMP_ATAV; +# define OSSL_CMP_ATAV_free OSSL_CRMF_ATTRIBUTETYPEANDVALUE_free +typedef STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) OSSL_CMP_ATAVS; +DECLARE_ASN1_FUNCTIONS(OSSL_CMP_ATAVS) +# define stack_st_OSSL_CMP_ATAV stack_st_OSSL_CRMF_ATTRIBUTETYPEANDVALUE +# define sk_OSSL_CMP_ATAV_num sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_num +# define sk_OSSL_CMP_ATAV_value sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_value +# define sk_OSSL_CMP_ATAV_push sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_push +# define sk_OSSL_CMP_ATAV_pop_free sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_pop_free + typedef struct ossl_cmp_revrepcontent_st OSSL_CMP_REVREPCONTENT; typedef struct ossl_cmp_pkisi_st OSSL_CMP_PKISI; DECLARE_ASN1_FUNCTIONS(OSSL_CMP_PKISI) @@ -375,21 +416,75 @@ void OSSL_CMP_ITAV_set0(OSSL_CMP_ITAV *itav, ASN1_OBJECT *type, ASN1_TYPE *value); ASN1_OBJECT *OSSL_CMP_ITAV_get0_type(const OSSL_CMP_ITAV *itav); ASN1_TYPE *OSSL_CMP_ITAV_get0_value(const OSSL_CMP_ITAV *itav); -int OSSL_CMP_ITAV_push0_stack_item(STACK_OF(OSSL_CMP_ITAV) **itav_sk_p, +int OSSL_CMP_ITAV_push0_stack_item(STACK_OF(OSSL_CMP_ITAV) **sk_p, OSSL_CMP_ITAV *itav); void OSSL_CMP_ITAV_free(OSSL_CMP_ITAV *itav); + +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new0_certProfile(STACK_OF(ASN1_UTF8STRING) + *certProfile); +int OSSL_CMP_ITAV_get0_certProfile(const OSSL_CMP_ITAV *itav, + STACK_OF(ASN1_UTF8STRING) **out); +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new_caCerts(const STACK_OF(X509) *caCerts); +int OSSL_CMP_ITAV_get0_caCerts(const OSSL_CMP_ITAV *itav, STACK_OF(X509) **out); + +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new_rootCaCert(const X509 *rootCaCert); +int OSSL_CMP_ITAV_get0_rootCaCert(const OSSL_CMP_ITAV *itav, X509 **out); +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new_rootCaKeyUpdate(const X509 *newWithNew, + const X509 *newWithOld, + const X509 *oldWithNew); +int OSSL_CMP_ITAV_get0_rootCaKeyUpdate(const OSSL_CMP_ITAV *itav, + X509 **newWithNew, + X509 **newWithOld, + X509 **oldWithNew); + +OSSL_CMP_CRLSTATUS *OSSL_CMP_CRLSTATUS_create(const X509_CRL *crl, + const X509 *cert, int only_DN); +OSSL_CMP_CRLSTATUS *OSSL_CMP_CRLSTATUS_new1(const DIST_POINT_NAME *dpn, + const GENERAL_NAMES *issuer, + const ASN1_TIME *thisUpdate); +int OSSL_CMP_CRLSTATUS_get0(const OSSL_CMP_CRLSTATUS *crlstatus, + DIST_POINT_NAME **dpn, GENERAL_NAMES **issuer, + ASN1_TIME **thisUpdate); +void OSSL_CMP_CRLSTATUS_free(OSSL_CMP_CRLSTATUS *crlstatus); +OSSL_CMP_ITAV +*OSSL_CMP_ITAV_new0_crlStatusList(STACK_OF(OSSL_CMP_CRLSTATUS) *crlStatusList); +int OSSL_CMP_ITAV_get0_crlStatusList(const OSSL_CMP_ITAV *itav, + STACK_OF(OSSL_CMP_CRLSTATUS) **out); +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new_crls(const X509_CRL *crls); +int OSSL_CMP_ITAV_get0_crls(const OSSL_CMP_ITAV *it, STACK_OF(X509_CRL) **out); +OSSL_CMP_ITAV +*OSSL_CMP_ITAV_new0_certReqTemplate(OSSL_CRMF_CERTTEMPLATE *certTemplate, + OSSL_CMP_ATAVS *keySpec); +int OSSL_CMP_ITAV_get1_certReqTemplate(const OSSL_CMP_ITAV *itav, + OSSL_CRMF_CERTTEMPLATE **certTemplate, + OSSL_CMP_ATAVS **keySpec); + +OSSL_CMP_ATAV *OSSL_CMP_ATAV_create(ASN1_OBJECT *type, ASN1_TYPE *value); +void OSSL_CMP_ATAV_set0(OSSL_CMP_ATAV *itav, ASN1_OBJECT *type, + ASN1_TYPE *value); +ASN1_OBJECT *OSSL_CMP_ATAV_get0_type(const OSSL_CMP_ATAV *itav); +ASN1_TYPE *OSSL_CMP_ATAV_get0_value(const OSSL_CMP_ATAV *itav); +OSSL_CMP_ATAV *OSSL_CMP_ATAV_new_algId(const X509_ALGOR *alg); +X509_ALGOR *OSSL_CMP_ATAV_get0_algId(const OSSL_CMP_ATAV *atav); +OSSL_CMP_ATAV *OSSL_CMP_ATAV_new_rsaKeyLen(int len); +int OSSL_CMP_ATAV_get_rsaKeyLen(const OSSL_CMP_ATAV *atav); +int OSSL_CMP_ATAV_push1(OSSL_CMP_ATAVS **sk_p, const OSSL_CMP_ATAV *atav); + void OSSL_CMP_MSG_free(OSSL_CMP_MSG *msg); /* from cmp_ctx.c */ OSSL_CMP_CTX *OSSL_CMP_CTX_new(OSSL_LIB_CTX *libctx, const char *propq); void OSSL_CMP_CTX_free(OSSL_CMP_CTX *ctx); int OSSL_CMP_CTX_reinit(OSSL_CMP_CTX *ctx); +OSSL_LIB_CTX *OSSL_CMP_CTX_get0_libctx(const OSSL_CMP_CTX *ctx); +const char *OSSL_CMP_CTX_get0_propq(const OSSL_CMP_CTX *ctx); /* CMP general options: */ # define OSSL_CMP_OPT_LOG_VERBOSITY 0 /* CMP transfer options: */ -# define OSSL_CMP_OPT_KEEP_ALIVE 10 -# define OSSL_CMP_OPT_MSG_TIMEOUT 11 +# define OSSL_CMP_OPT_KEEP_ALIVE 10 +# define OSSL_CMP_OPT_MSG_TIMEOUT 11 # define OSSL_CMP_OPT_TOTAL_TIMEOUT 12 +# define OSSL_CMP_OPT_USE_TLS 13 /* CMP request options: */ # define OSSL_CMP_OPT_VALIDITY_DAYS 20 # define OSSL_CMP_OPT_SUBJECTALTNAME_NODEFAULT 21 @@ -407,6 +502,7 @@ int OSSL_CMP_CTX_reinit(OSSL_CMP_CTX *ctx); # define OSSL_CMP_OPT_DIGEST_ALGNID 34 # define OSSL_CMP_OPT_IGNORE_KEYUSAGE 35 # define OSSL_CMP_OPT_PERMIT_TA_IN_EXTRACERTS_FOR_IR 36 +# define OSSL_CMP_OPT_NO_CACHE_EXTRACERTS 37 int OSSL_CMP_CTX_set_option(OSSL_CMP_CTX *ctx, int opt, int val); int OSSL_CMP_CTX_get_option(const OSSL_CMP_CTX *ctx, int opt); /* CMP-specific callback for logging and outputting the error queue: */ @@ -420,9 +516,11 @@ int OSSL_CMP_CTX_set1_server(OSSL_CMP_CTX *ctx, const char *address); int OSSL_CMP_CTX_set_serverPort(OSSL_CMP_CTX *ctx, int port); int OSSL_CMP_CTX_set1_proxy(OSSL_CMP_CTX *ctx, const char *name); int OSSL_CMP_CTX_set1_no_proxy(OSSL_CMP_CTX *ctx, const char *names); +# ifndef OPENSSL_NO_HTTP int OSSL_CMP_CTX_set_http_cb(OSSL_CMP_CTX *ctx, OSSL_HTTP_bio_cb_t cb); int OSSL_CMP_CTX_set_http_cb_arg(OSSL_CMP_CTX *ctx, void *arg); void *OSSL_CMP_CTX_get_http_cb_arg(const OSSL_CMP_CTX *ctx); +# endif typedef OSSL_CMP_MSG *(*OSSL_CMP_transfer_cb_t) (OSSL_CMP_CTX *ctx, const OSSL_CMP_MSG *req); int OSSL_CMP_CTX_set_transfer_cb(OSSL_CMP_CTX *ctx, OSSL_CMP_transfer_cb_t cb); @@ -432,7 +530,9 @@ void *OSSL_CMP_CTX_get_transfer_cb_arg(const OSSL_CMP_CTX *ctx); int OSSL_CMP_CTX_set1_srvCert(OSSL_CMP_CTX *ctx, X509 *cert); int OSSL_CMP_CTX_set1_expected_sender(OSSL_CMP_CTX *ctx, const X509_NAME *name); int OSSL_CMP_CTX_set0_trustedStore(OSSL_CMP_CTX *ctx, X509_STORE *store); +# define OSSL_CMP_CTX_set0_trusted OSSL_CMP_CTX_set0_trustedStore X509_STORE *OSSL_CMP_CTX_get0_trustedStore(const OSSL_CMP_CTX *ctx); +# define OSSL_CMP_CTX_get0_trusted OSSL_CMP_CTX_get0_trustedStore int OSSL_CMP_CTX_set1_untrusted(OSSL_CMP_CTX *ctx, STACK_OF(X509) *certs); STACK_OF(X509) *OSSL_CMP_CTX_get0_untrusted(const OSSL_CMP_CTX *ctx); /* client authentication: */ @@ -448,12 +548,15 @@ int OSSL_CMP_CTX_set1_secretValue(OSSL_CMP_CTX *ctx, int OSSL_CMP_CTX_set1_recipient(OSSL_CMP_CTX *ctx, const X509_NAME *name); int OSSL_CMP_CTX_push0_geninfo_ITAV(OSSL_CMP_CTX *ctx, OSSL_CMP_ITAV *itav); int OSSL_CMP_CTX_reset_geninfo_ITAVs(OSSL_CMP_CTX *ctx); +STACK_OF(OSSL_CMP_ITAV) + *OSSL_CMP_CTX_get0_geninfo_ITAVs(const OSSL_CMP_CTX *ctx); int OSSL_CMP_CTX_set1_extraCertsOut(OSSL_CMP_CTX *ctx, STACK_OF(X509) *extraCertsOut); /* certificate template: */ int OSSL_CMP_CTX_set0_newPkey(OSSL_CMP_CTX *ctx, int priv, EVP_PKEY *pkey); EVP_PKEY *OSSL_CMP_CTX_get0_newPkey(const OSSL_CMP_CTX *ctx, int priv); int OSSL_CMP_CTX_set1_issuer(OSSL_CMP_CTX *ctx, const X509_NAME *name); +int OSSL_CMP_CTX_set1_serialNumber(OSSL_CMP_CTX *ctx, const ASN1_INTEGER *sn); int OSSL_CMP_CTX_set1_subjectName(OSSL_CMP_CTX *ctx, const X509_NAME *name); int OSSL_CMP_CTX_push1_subjectAltName(OSSL_CMP_CTX *ctx, const GENERAL_NAME *name); @@ -477,6 +580,7 @@ int OSSL_CMP_CTX_get_status(const OSSL_CMP_CTX *ctx); OSSL_CMP_PKIFREETEXT *OSSL_CMP_CTX_get0_statusString(const OSSL_CMP_CTX *ctx); int OSSL_CMP_CTX_get_failInfoCode(const OSSL_CMP_CTX *ctx); # define OSSL_CMP_PKISI_BUFLEN 1024 +X509 *OSSL_CMP_CTX_get0_validatedSrvCert(const OSSL_CMP_CTX *ctx); X509 *OSSL_CMP_CTX_get0_newCert(const OSSL_CMP_CTX *ctx); STACK_OF(X509) *OSSL_CMP_CTX_get1_newChain(const OSSL_CMP_CTX *ctx); STACK_OF(X509) *OSSL_CMP_CTX_get1_caPubs(const OSSL_CMP_CTX *ctx); @@ -498,10 +602,13 @@ OSSL_CMP_STATUSINFO_new(int status, int fail_info, const char *text); ASN1_OCTET_STRING *OSSL_CMP_HDR_get0_transactionID(const OSSL_CMP_PKIHEADER *hdr); ASN1_OCTET_STRING *OSSL_CMP_HDR_get0_recipNonce(const OSSL_CMP_PKIHEADER *hdr); +STACK_OF(OSSL_CMP_ITAV) + *OSSL_CMP_HDR_get0_geninfo_ITAVs(const OSSL_CMP_PKIHEADER *hdr); /* from cmp_msg.c */ OSSL_CMP_PKIHEADER *OSSL_CMP_MSG_get0_header(const OSSL_CMP_MSG *msg); int OSSL_CMP_MSG_get_bodytype(const OSSL_CMP_MSG *msg); +X509_PUBKEY *OSSL_CMP_MSG_get0_certreq_publickey(const OSSL_CMP_MSG *msg); int OSSL_CMP_MSG_update_transactionID(OSSL_CMP_CTX *ctx, OSSL_CMP_MSG *msg); int OSSL_CMP_MSG_update_recipNonce(OSSL_CMP_CTX *ctx, OSSL_CMP_MSG *msg); OSSL_CRMF_MSG *OSSL_CMP_CTX_setup_CRM(OSSL_CMP_CTX *ctx, int for_KUR, int rid); @@ -517,8 +624,10 @@ int OSSL_CMP_validate_cert_path(const OSSL_CMP_CTX *ctx, X509_STORE *trusted_store, X509 *cert); /* from cmp_http.c */ +# ifndef OPENSSL_NO_HTTP OSSL_CMP_MSG *OSSL_CMP_MSG_http_perform(OSSL_CMP_CTX *ctx, const OSSL_CMP_MSG *req); +# endif /* from cmp_server.c */ typedef struct ossl_cmp_srv_ctx_st OSSL_CMP_SRV_CTX; @@ -561,6 +670,13 @@ int OSSL_CMP_SRV_CTX_init(OSSL_CMP_SRV_CTX *srv_ctx, void *custom_ctx, OSSL_CMP_SRV_error_cb_t process_error, OSSL_CMP_SRV_certConf_cb_t process_certConf, OSSL_CMP_SRV_pollReq_cb_t process_pollReq); +typedef int (*OSSL_CMP_SRV_delayed_delivery_cb_t)(OSSL_CMP_SRV_CTX *srv_ctx, + const OSSL_CMP_MSG *req); +typedef int (*OSSL_CMP_SRV_clean_transaction_cb_t)(OSSL_CMP_SRV_CTX *srv_ctx, + const ASN1_OCTET_STRING *id); +int OSSL_CMP_SRV_CTX_init_trans(OSSL_CMP_SRV_CTX *srv_ctx, + OSSL_CMP_SRV_delayed_delivery_cb_t delay, + OSSL_CMP_SRV_clean_transaction_cb_t clean); OSSL_CMP_CTX *OSSL_CMP_SRV_CTX_get0_cmp_ctx(const OSSL_CMP_SRV_CTX *srv_ctx); void *OSSL_CMP_SRV_CTX_get0_custom_ctx(const OSSL_CMP_SRV_CTX *srv_ctx); int OSSL_CMP_SRV_CTX_set_send_unprotected_errors(OSSL_CMP_SRV_CTX *srv_ctx, @@ -577,6 +693,8 @@ X509 *OSSL_CMP_exec_certreq(OSSL_CMP_CTX *ctx, int req_type, # define OSSL_CMP_CR 2 # define OSSL_CMP_P10CR 4 # define OSSL_CMP_KUR 7 +# define OSSL_CMP_GENM 21 +# define OSSL_CMP_ERROR 23 # define OSSL_CMP_exec_IR_ses(ctx) \ OSSL_CMP_exec_certreq(ctx, OSSL_CMP_IR, NULL) # define OSSL_CMP_exec_CR_ses(ctx) \ @@ -590,6 +708,18 @@ int OSSL_CMP_try_certreq(OSSL_CMP_CTX *ctx, int req_type, int OSSL_CMP_exec_RR_ses(OSSL_CMP_CTX *ctx); STACK_OF(OSSL_CMP_ITAV) *OSSL_CMP_exec_GENM_ses(OSSL_CMP_CTX *ctx); +/* from cmp_genm.c */ +int OSSL_CMP_get1_caCerts(OSSL_CMP_CTX *ctx, STACK_OF(X509) **out); +int OSSL_CMP_get1_rootCaKeyUpdate(OSSL_CMP_CTX *ctx, + const X509 *oldWithOld, X509 **newWithNew, + X509 **newWithOld, X509 **oldWithNew); +int OSSL_CMP_get1_crlUpdate(OSSL_CMP_CTX *ctx, const X509 *crlcert, + const X509_CRL *last_crl, + X509_CRL **crl); +int OSSL_CMP_get1_certReqTemplate(OSSL_CMP_CTX *ctx, + OSSL_CRMF_CERTTEMPLATE **certTemplate, + OSSL_CMP_ATAVS **keySpec); + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/include/openssl/cms.h b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/include/openssl/cms.h index 3b453e6a2187a2..63afab563557b0 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/include/openssl/cms.h +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/include/openssl/cms.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/cms.h.in * - * Copyright 2008-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2008-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -31,8 +31,10 @@ extern "C" { # endif +typedef struct CMS_EnvelopedData_st CMS_EnvelopedData; typedef struct CMS_ContentInfo_st CMS_ContentInfo; typedef struct CMS_SignerInfo_st CMS_SignerInfo; +typedef struct CMS_SignedData_st CMS_SignedData; typedef struct CMS_CertificateChoices CMS_CertificateChoices; typedef struct CMS_RevocationInfoChoice_st CMS_RevocationInfoChoice; typedef struct CMS_RecipientInfo_st CMS_RecipientInfo; @@ -147,10 +149,14 @@ SKM_DEFINE_STACK_OF_INTERNAL(CMS_RevocationInfoChoice, CMS_RevocationInfoChoice, #define sk_CMS_RevocationInfoChoice_set_cmp_func(sk, cmp) ((sk_CMS_RevocationInfoChoice_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_CMS_RevocationInfoChoice_sk_type(sk), ossl_check_CMS_RevocationInfoChoice_compfunc_type(cmp))) +DECLARE_ASN1_ITEM(CMS_EnvelopedData) +DECLARE_ASN1_ALLOC_FUNCTIONS(CMS_SignedData) DECLARE_ASN1_FUNCTIONS(CMS_ContentInfo) DECLARE_ASN1_FUNCTIONS(CMS_ReceiptRequest) DECLARE_ASN1_PRINT_FUNCTION(CMS_ContentInfo) +DECLARE_ASN1_DUP_FUNCTION(CMS_EnvelopedData) + CMS_ContentInfo *CMS_ContentInfo_new_ex(OSSL_LIB_CTX *libctx, const char *propq); # define CMS_SIGNERINFO_ISSUER_SERIAL 0 @@ -190,6 +196,7 @@ CMS_ContentInfo *CMS_ContentInfo_new_ex(OSSL_LIB_CTX *libctx, const char *propq) # define CMS_ASCIICRLF 0x80000 # define CMS_CADES 0x100000 # define CMS_USE_ORIGINATOR_KEYID 0x200000 +# define CMS_NO_SIGNING_TIME 0x400000 const ASN1_OBJECT *CMS_get0_type(const CMS_ContentInfo *cms); @@ -217,13 +224,16 @@ int SMIME_write_CMS(BIO *bio, CMS_ContentInfo *cms, BIO *data, int flags); int CMS_final(CMS_ContentInfo *cms, BIO *data, BIO *dcont, unsigned int flags); +int CMS_final_digest(CMS_ContentInfo *cms, + const unsigned char *md, unsigned int mdlen, BIO *dcont, + unsigned int flags); CMS_ContentInfo *CMS_sign(X509 *signcert, EVP_PKEY *pkey, STACK_OF(X509) *certs, BIO *data, unsigned int flags); CMS_ContentInfo *CMS_sign_ex(X509 *signcert, EVP_PKEY *pkey, STACK_OF(X509) *certs, BIO *data, - unsigned int flags, OSSL_LIB_CTX *ctx, + unsigned int flags, OSSL_LIB_CTX *libctx, const char *propq); CMS_ContentInfo *CMS_sign_receipt(CMS_SignerInfo *si, @@ -233,27 +243,26 @@ CMS_ContentInfo *CMS_sign_receipt(CMS_SignerInfo *si, int CMS_data(CMS_ContentInfo *cms, BIO *out, unsigned int flags); CMS_ContentInfo *CMS_data_create(BIO *in, unsigned int flags); CMS_ContentInfo *CMS_data_create_ex(BIO *in, unsigned int flags, - OSSL_LIB_CTX *ctx, const char *propq); + OSSL_LIB_CTX *libctx, const char *propq); int CMS_digest_verify(CMS_ContentInfo *cms, BIO *dcont, BIO *out, unsigned int flags); CMS_ContentInfo *CMS_digest_create(BIO *in, const EVP_MD *md, unsigned int flags); CMS_ContentInfo *CMS_digest_create_ex(BIO *in, const EVP_MD *md, - unsigned int flags, OSSL_LIB_CTX *ctx, + unsigned int flags, OSSL_LIB_CTX *libctx, const char *propq); int CMS_EncryptedData_decrypt(CMS_ContentInfo *cms, const unsigned char *key, size_t keylen, BIO *dcont, BIO *out, unsigned int flags); - CMS_ContentInfo *CMS_EncryptedData_encrypt(BIO *in, const EVP_CIPHER *cipher, const unsigned char *key, size_t keylen, unsigned int flags); CMS_ContentInfo *CMS_EncryptedData_encrypt_ex(BIO *in, const EVP_CIPHER *cipher, const unsigned char *key, size_t keylen, unsigned int flags, - OSSL_LIB_CTX *ctx, + OSSL_LIB_CTX *libctx, const char *propq); int CMS_EncryptedData_set1_key(CMS_ContentInfo *cms, const EVP_CIPHER *ciph, @@ -272,7 +281,7 @@ CMS_ContentInfo *CMS_encrypt(STACK_OF(X509) *certs, BIO *in, const EVP_CIPHER *cipher, unsigned int flags); CMS_ContentInfo *CMS_encrypt_ex(STACK_OF(X509) *certs, BIO *in, const EVP_CIPHER *cipher, unsigned int flags, - OSSL_LIB_CTX *ctx, const char *propq); + OSSL_LIB_CTX *libctx, const char *propq); int CMS_decrypt(CMS_ContentInfo *cms, EVP_PKEY *pkey, X509 *cert, BIO *dcont, BIO *out, unsigned int flags); @@ -291,12 +300,16 @@ int CMS_RecipientInfo_type(CMS_RecipientInfo *ri); EVP_PKEY_CTX *CMS_RecipientInfo_get0_pkey_ctx(CMS_RecipientInfo *ri); CMS_ContentInfo *CMS_AuthEnvelopedData_create(const EVP_CIPHER *cipher); CMS_ContentInfo * -CMS_AuthEnvelopedData_create_ex(const EVP_CIPHER *cipher, OSSL_LIB_CTX *ctx, +CMS_AuthEnvelopedData_create_ex(const EVP_CIPHER *cipher, OSSL_LIB_CTX *libctx, const char *propq); CMS_ContentInfo *CMS_EnvelopedData_create(const EVP_CIPHER *cipher); CMS_ContentInfo *CMS_EnvelopedData_create_ex(const EVP_CIPHER *cipher, - OSSL_LIB_CTX *ctx, + OSSL_LIB_CTX *libctx, const char *propq); +BIO *CMS_EnvelopedData_decrypt(CMS_EnvelopedData *env, BIO *detached_data, + EVP_PKEY *pkey, X509 *cert, + ASN1_OCTET_STRING *secret, unsigned int flags, + OSSL_LIB_CTX *libctx, const char *propq); CMS_RecipientInfo *CMS_add1_recipient_cert(CMS_ContentInfo *cms, X509 *recip, unsigned int flags); @@ -385,6 +398,11 @@ ASN1_OCTET_STRING *CMS_SignerInfo_get0_signature(CMS_SignerInfo *si); int CMS_SignerInfo_sign(CMS_SignerInfo *si); int CMS_SignerInfo_verify(CMS_SignerInfo *si); int CMS_SignerInfo_verify_content(CMS_SignerInfo *si, BIO *chain); +BIO *CMS_SignedData_verify(CMS_SignedData *sd, BIO *detached_data, + STACK_OF(X509) *scerts, X509_STORE *store, + STACK_OF(X509) *extra, STACK_OF(X509_CRL) *crls, + unsigned int flags, + OSSL_LIB_CTX *libctx, const char *propq); int CMS_add_smimecap(CMS_SignerInfo *si, STACK_OF(X509_ALGOR) *algs); int CMS_add_simple_smimecap(STACK_OF(X509_ALGOR) **algs, @@ -441,7 +459,7 @@ CMS_ReceiptRequest *CMS_ReceiptRequest_create0_ex( unsigned char *id, int idlen, int allorfirst, STACK_OF(GENERAL_NAMES) *receiptList, STACK_OF(GENERAL_NAMES) *receiptsTo, - OSSL_LIB_CTX *ctx); + OSSL_LIB_CTX *libctx); int CMS_add1_ReceiptRequest(CMS_SignerInfo *si, CMS_ReceiptRequest *rr); void CMS_ReceiptRequest_get0_values(CMS_ReceiptRequest *rr, diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/include/openssl/comp.h b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/include/openssl/comp.h new file mode 100644 index 00000000000000..90e39511fe8d28 --- /dev/null +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/include/openssl/comp.h @@ -0,0 +1,98 @@ +/* + * Copyright 2015-2024 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + + +#ifndef OPENSSL_COMP_H +# define OPENSSL_COMP_H +# pragma once + +# include +# ifndef OPENSSL_NO_DEPRECATED_3_0 +# define HEADER_COMP_H +# endif + +# include + +# include +# include +# ifdef __cplusplus +extern "C" { +# endif + + + +# ifndef OPENSSL_NO_COMP + +COMP_CTX *COMP_CTX_new(COMP_METHOD *meth); +const COMP_METHOD *COMP_CTX_get_method(const COMP_CTX *ctx); +int COMP_CTX_get_type(const COMP_CTX* comp); +int COMP_get_type(const COMP_METHOD *meth); +const char *COMP_get_name(const COMP_METHOD *meth); +void COMP_CTX_free(COMP_CTX *ctx); + +int COMP_compress_block(COMP_CTX *ctx, unsigned char *out, int olen, + unsigned char *in, int ilen); +int COMP_expand_block(COMP_CTX *ctx, unsigned char *out, int olen, + unsigned char *in, int ilen); + +COMP_METHOD *COMP_zlib(void); +COMP_METHOD *COMP_zlib_oneshot(void); +COMP_METHOD *COMP_brotli(void); +COMP_METHOD *COMP_brotli_oneshot(void); +COMP_METHOD *COMP_zstd(void); +COMP_METHOD *COMP_zstd_oneshot(void); + +# ifndef OPENSSL_NO_DEPRECATED_1_1_0 +# define COMP_zlib_cleanup() while(0) continue +# endif + +# ifdef OPENSSL_BIO_H +const BIO_METHOD *BIO_f_zlib(void); +const BIO_METHOD *BIO_f_brotli(void); +const BIO_METHOD *BIO_f_zstd(void); +# endif + +# endif + +typedef struct ssl_comp_st SSL_COMP; + +SKM_DEFINE_STACK_OF_INTERNAL(SSL_COMP, SSL_COMP, SSL_COMP) +#define sk_SSL_COMP_num(sk) OPENSSL_sk_num(ossl_check_const_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_value(sk, idx) ((SSL_COMP *)OPENSSL_sk_value(ossl_check_const_SSL_COMP_sk_type(sk), (idx))) +#define sk_SSL_COMP_new(cmp) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new(ossl_check_SSL_COMP_compfunc_type(cmp))) +#define sk_SSL_COMP_new_null() ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new_null()) +#define sk_SSL_COMP_new_reserve(cmp, n) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new_reserve(ossl_check_SSL_COMP_compfunc_type(cmp), (n))) +#define sk_SSL_COMP_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_SSL_COMP_sk_type(sk), (n)) +#define sk_SSL_COMP_free(sk) OPENSSL_sk_free(ossl_check_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_zero(sk) OPENSSL_sk_zero(ossl_check_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_delete(sk, i) ((SSL_COMP *)OPENSSL_sk_delete(ossl_check_SSL_COMP_sk_type(sk), (i))) +#define sk_SSL_COMP_delete_ptr(sk, ptr) ((SSL_COMP *)OPENSSL_sk_delete_ptr(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr))) +#define sk_SSL_COMP_push(sk, ptr) OPENSSL_sk_push(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) +#define sk_SSL_COMP_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) +#define sk_SSL_COMP_pop(sk) ((SSL_COMP *)OPENSSL_sk_pop(ossl_check_SSL_COMP_sk_type(sk))) +#define sk_SSL_COMP_shift(sk) ((SSL_COMP *)OPENSSL_sk_shift(ossl_check_SSL_COMP_sk_type(sk))) +#define sk_SSL_COMP_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_SSL_COMP_sk_type(sk),ossl_check_SSL_COMP_freefunc_type(freefunc)) +#define sk_SSL_COMP_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr), (idx)) +#define sk_SSL_COMP_set(sk, idx, ptr) ((SSL_COMP *)OPENSSL_sk_set(ossl_check_SSL_COMP_sk_type(sk), (idx), ossl_check_SSL_COMP_type(ptr))) +#define sk_SSL_COMP_find(sk, ptr) OPENSSL_sk_find(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) +#define sk_SSL_COMP_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) +#define sk_SSL_COMP_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr), pnum) +#define sk_SSL_COMP_sort(sk) OPENSSL_sk_sort(ossl_check_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_dup(sk) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_dup(ossl_check_const_SSL_COMP_sk_type(sk))) +#define sk_SSL_COMP_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_deep_copy(ossl_check_const_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_copyfunc_type(copyfunc), ossl_check_SSL_COMP_freefunc_type(freefunc))) +#define sk_SSL_COMP_set_cmp_func(sk, cmp) ((sk_SSL_COMP_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_compfunc_type(cmp))) + + + +# ifdef __cplusplus +} +# endif +#endif diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/include/openssl/conf.h b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/include/openssl/conf.h index 44989929f6c84a..38576290bf641b 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/include/openssl/conf.h +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/include/openssl/conf.h @@ -27,6 +27,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -65,7 +68,7 @@ SKM_DEFINE_STACK_OF_INTERNAL(CONF_VALUE, CONF_VALUE, CONF_VALUE) #define sk_CONF_VALUE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(CONF_VALUE) *)OPENSSL_sk_deep_copy(ossl_check_const_CONF_VALUE_sk_type(sk), ossl_check_CONF_VALUE_copyfunc_type(copyfunc), ossl_check_CONF_VALUE_freefunc_type(freefunc))) #define sk_CONF_VALUE_set_cmp_func(sk, cmp) ((sk_CONF_VALUE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_CONF_VALUE_sk_type(sk), ossl_check_CONF_VALUE_compfunc_type(cmp))) DEFINE_LHASH_OF_INTERNAL(CONF_VALUE); -#define lh_CONF_VALUE_new(hfn, cmp) ((LHASH_OF(CONF_VALUE) *)OPENSSL_LH_new(ossl_check_CONF_VALUE_lh_hashfunc_type(hfn), ossl_check_CONF_VALUE_lh_compfunc_type(cmp))) +#define lh_CONF_VALUE_new(hfn, cmp) ((LHASH_OF(CONF_VALUE) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new(ossl_check_CONF_VALUE_lh_hashfunc_type(hfn), ossl_check_CONF_VALUE_lh_compfunc_type(cmp)), lh_CONF_VALUE_hash_thunk, lh_CONF_VALUE_comp_thunk, lh_CONF_VALUE_doall_thunk, lh_CONF_VALUE_doall_arg_thunk)) #define lh_CONF_VALUE_free(lh) OPENSSL_LH_free(ossl_check_CONF_VALUE_lh_type(lh)) #define lh_CONF_VALUE_flush(lh) OPENSSL_LH_flush(ossl_check_CONF_VALUE_lh_type(lh)) #define lh_CONF_VALUE_insert(lh, ptr) ((CONF_VALUE *)OPENSSL_LH_insert(ossl_check_CONF_VALUE_lh_type(lh), ossl_check_CONF_VALUE_lh_plain_type(ptr))) diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/include/openssl/configuration.h b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/include/openssl/configuration.h index 0834be2fa3df77..b0ae5de064cedb 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/include/openssl/configuration.h +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/include/openssl/configuration.h @@ -30,7 +30,7 @@ extern "C" { # ifndef OPENSSL_SYS_MACOSX # define OPENSSL_SYS_MACOSX 1 # endif -# define OPENSSL_CONFIGURED_API 30000 +# define OPENSSL_CONFIGURED_API 30500 # ifndef OPENSSL_RAND_SEED_OS # define OPENSSL_RAND_SEED_OS # endif @@ -43,6 +43,12 @@ extern "C" { # ifndef OPENSSL_NO_ASAN # define OPENSSL_NO_ASAN # endif +# ifndef OPENSSL_NO_BROTLI +# define OPENSSL_NO_BROTLI +# endif +# ifndef OPENSSL_NO_BROTLI_DYNAMIC +# define OPENSSL_NO_BROTLI_DYNAMIC +# endif # ifndef OPENSSL_NO_COMP # define OPENSSL_NO_COMP # endif @@ -52,6 +58,9 @@ extern "C" { # ifndef OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE # define OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE # endif +# ifndef OPENSSL_NO_DEMOS +# define OPENSSL_NO_DEMOS +# endif # ifndef OPENSSL_NO_DEVCRYPTOENG # define OPENSSL_NO_DEVCRYPTOENG # endif @@ -64,12 +73,24 @@ extern "C" { # ifndef OPENSSL_NO_EXTERNAL_TESTS # define OPENSSL_NO_EXTERNAL_TESTS # endif +# ifndef OPENSSL_NO_FIPS_JITTER +# define OPENSSL_NO_FIPS_JITTER +# endif # ifndef OPENSSL_NO_FUZZ_AFL # define OPENSSL_NO_FUZZ_AFL # endif # ifndef OPENSSL_NO_FUZZ_LIBFUZZER # define OPENSSL_NO_FUZZ_LIBFUZZER # endif +# ifndef OPENSSL_NO_H3DEMO +# define OPENSSL_NO_H3DEMO +# endif +# ifndef OPENSSL_NO_HQINTEROP +# define OPENSSL_NO_HQINTEROP +# endif +# ifndef OPENSSL_NO_JITTER +# define OPENSSL_NO_JITTER +# endif # ifndef OPENSSL_NO_KTLS # define OPENSSL_NO_KTLS # endif @@ -82,6 +103,9 @@ extern "C" { # ifndef OPENSSL_NO_MSAN # define OPENSSL_NO_MSAN # endif +# ifndef OPENSSL_NO_PIE +# define OPENSSL_NO_PIE +# endif # ifndef OPENSSL_NO_RC5 # define OPENSSL_NO_RC5 # endif @@ -94,6 +118,12 @@ extern "C" { # ifndef OPENSSL_NO_SSL3_METHOD # define OPENSSL_NO_SSL3_METHOD # endif +# ifndef OPENSSL_NO_SSLKEYLOG +# define OPENSSL_NO_SSLKEYLOG +# endif +# ifndef OPENSSL_NO_TFO +# define OPENSSL_NO_TFO +# endif # ifndef OPENSSL_NO_TRACE # define OPENSSL_NO_TRACE # endif @@ -109,6 +139,21 @@ extern "C" { # ifndef OPENSSL_NO_WEAK_SSL_CIPHERS # define OPENSSL_NO_WEAK_SSL_CIPHERS # endif +# ifndef OPENSSL_NO_WINSTORE +# define OPENSSL_NO_WINSTORE +# endif +# ifndef OPENSSL_NO_ZLIB +# define OPENSSL_NO_ZLIB +# endif +# ifndef OPENSSL_NO_ZLIB_DYNAMIC +# define OPENSSL_NO_ZLIB_DYNAMIC +# endif +# ifndef OPENSSL_NO_ZSTD +# define OPENSSL_NO_ZSTD +# endif +# ifndef OPENSSL_NO_ZSTD_DYNAMIC +# define OPENSSL_NO_ZSTD_DYNAMIC +# endif # ifndef OPENSSL_NO_DYNAMIC_ENGINE # define OPENSSL_NO_DYNAMIC_ENGINE # endif @@ -130,6 +175,12 @@ extern "C" { # define RC4_INT unsigned int +# if defined(OPENSSL_NO_COMP) || (defined(OPENSSL_NO_BROTLI) && defined(OPENSSL_NO_ZSTD) && defined(OPENSSL_NO_ZLIB)) +# define OPENSSL_NO_COMP_ALG +# else +# undef OPENSSL_NO_COMP_ALG +# endif + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/include/openssl/core_names.h b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/include/openssl/core_names.h new file mode 100644 index 00000000000000..e93e79a52bc910 --- /dev/null +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/include/openssl/core_names.h @@ -0,0 +1,575 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from include/openssl/core_names.h.in + * + * Copyright 2019-2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + +#ifndef OPENSSL_CORE_NAMES_H +# define OPENSSL_CORE_NAMES_H +# pragma once + +# ifdef __cplusplus +extern "C" { +# endif + +/* OSSL_CIPHER_PARAM_CTS_MODE Values */ +# define OSSL_CIPHER_CTS_MODE_CS1 "CS1" +# define OSSL_CIPHER_CTS_MODE_CS2 "CS2" +# define OSSL_CIPHER_CTS_MODE_CS3 "CS3" + +/* Known CIPHER names (not a complete list) */ +# define OSSL_CIPHER_NAME_AES_128_GCM_SIV "AES-128-GCM-SIV" +# define OSSL_CIPHER_NAME_AES_192_GCM_SIV "AES-192-GCM-SIV" +# define OSSL_CIPHER_NAME_AES_256_GCM_SIV "AES-256-GCM-SIV" + +/* Known DIGEST names (not a complete list) */ +# define OSSL_DIGEST_NAME_MD5 "MD5" +# define OSSL_DIGEST_NAME_MD5_SHA1 "MD5-SHA1" +# define OSSL_DIGEST_NAME_SHA1 "SHA1" +# define OSSL_DIGEST_NAME_SHA2_224 "SHA2-224" +# define OSSL_DIGEST_NAME_SHA2_256 "SHA2-256" +# define OSSL_DIGEST_NAME_SHA2_256_192 "SHA2-256/192" +# define OSSL_DIGEST_NAME_SHA2_384 "SHA2-384" +# define OSSL_DIGEST_NAME_SHA2_512 "SHA2-512" +# define OSSL_DIGEST_NAME_SHA2_512_224 "SHA2-512/224" +# define OSSL_DIGEST_NAME_SHA2_512_256 "SHA2-512/256" +# define OSSL_DIGEST_NAME_MD2 "MD2" +# define OSSL_DIGEST_NAME_MD4 "MD4" +# define OSSL_DIGEST_NAME_MDC2 "MDC2" +# define OSSL_DIGEST_NAME_RIPEMD160 "RIPEMD160" +# define OSSL_DIGEST_NAME_SHA3_224 "SHA3-224" +# define OSSL_DIGEST_NAME_SHA3_256 "SHA3-256" +# define OSSL_DIGEST_NAME_SHA3_384 "SHA3-384" +# define OSSL_DIGEST_NAME_SHA3_512 "SHA3-512" +# define OSSL_DIGEST_NAME_KECCAK_KMAC128 "KECCAK-KMAC-128" +# define OSSL_DIGEST_NAME_KECCAK_KMAC256 "KECCAK-KMAC-256" +# define OSSL_DIGEST_NAME_SM3 "SM3" + +/* Known MAC names */ +# define OSSL_MAC_NAME_BLAKE2BMAC "BLAKE2BMAC" +# define OSSL_MAC_NAME_BLAKE2SMAC "BLAKE2SMAC" +# define OSSL_MAC_NAME_CMAC "CMAC" +# define OSSL_MAC_NAME_GMAC "GMAC" +# define OSSL_MAC_NAME_HMAC "HMAC" +# define OSSL_MAC_NAME_KMAC128 "KMAC128" +# define OSSL_MAC_NAME_KMAC256 "KMAC256" +# define OSSL_MAC_NAME_POLY1305 "POLY1305" +# define OSSL_MAC_NAME_SIPHASH "SIPHASH" + +/* Known KDF names */ +# define OSSL_KDF_NAME_HKDF "HKDF" +# define OSSL_KDF_NAME_TLS1_3_KDF "TLS13-KDF" +# define OSSL_KDF_NAME_PBKDF1 "PBKDF1" +# define OSSL_KDF_NAME_PBKDF2 "PBKDF2" +# define OSSL_KDF_NAME_SCRYPT "SCRYPT" +# define OSSL_KDF_NAME_SSHKDF "SSHKDF" +# define OSSL_KDF_NAME_SSKDF "SSKDF" +# define OSSL_KDF_NAME_TLS1_PRF "TLS1-PRF" +# define OSSL_KDF_NAME_X942KDF_ASN1 "X942KDF-ASN1" +# define OSSL_KDF_NAME_X942KDF_CONCAT "X942KDF-CONCAT" +# define OSSL_KDF_NAME_X963KDF "X963KDF" +# define OSSL_KDF_NAME_KBKDF "KBKDF" +# define OSSL_KDF_NAME_KRB5KDF "KRB5KDF" +# define OSSL_KDF_NAME_HMACDRBGKDF "HMAC-DRBG-KDF" + +/* RSA padding modes */ +# define OSSL_PKEY_RSA_PAD_MODE_NONE "none" +# define OSSL_PKEY_RSA_PAD_MODE_PKCSV15 "pkcs1" +# define OSSL_PKEY_RSA_PAD_MODE_OAEP "oaep" +# define OSSL_PKEY_RSA_PAD_MODE_X931 "x931" +# define OSSL_PKEY_RSA_PAD_MODE_PSS "pss" + +/* RSA pss padding salt length */ +# define OSSL_PKEY_RSA_PSS_SALT_LEN_DIGEST "digest" +# define OSSL_PKEY_RSA_PSS_SALT_LEN_MAX "max" +# define OSSL_PKEY_RSA_PSS_SALT_LEN_AUTO "auto" +# define OSSL_PKEY_RSA_PSS_SALT_LEN_AUTO_DIGEST_MAX "auto-digestmax" + +/* OSSL_PKEY_PARAM_EC_ENCODING values */ +# define OSSL_PKEY_EC_ENCODING_EXPLICIT "explicit" +# define OSSL_PKEY_EC_ENCODING_GROUP "named_curve" + +# define OSSL_PKEY_EC_POINT_CONVERSION_FORMAT_UNCOMPRESSED "uncompressed" +# define OSSL_PKEY_EC_POINT_CONVERSION_FORMAT_COMPRESSED "compressed" +# define OSSL_PKEY_EC_POINT_CONVERSION_FORMAT_HYBRID "hybrid" + +# define OSSL_PKEY_EC_GROUP_CHECK_DEFAULT "default" +# define OSSL_PKEY_EC_GROUP_CHECK_NAMED "named" +# define OSSL_PKEY_EC_GROUP_CHECK_NAMED_NIST "named-nist" + +/* PROV_SKEY well known key types */ +# define OSSL_SKEY_TYPE_GENERIC "GENERIC-SECRET" +# define OSSL_SKEY_TYPE_AES "AES" + +/* OSSL_KEM_PARAM_OPERATION values */ +#define OSSL_KEM_PARAM_OPERATION_RSASVE "RSASVE" +#define OSSL_KEM_PARAM_OPERATION_DHKEM "DHKEM" + +/* Provider configuration variables */ +#define OSSL_PKEY_RETAIN_SEED "pkey_retain_seed" + +/* Parameter name definitions - generated by util/perl/OpenSSL/paramnames.pm */ +# define OSSL_ALG_PARAM_ALGORITHM_ID "algorithm-id" +# define OSSL_ALG_PARAM_ALGORITHM_ID_PARAMS "algorithm-id-params" +# define OSSL_ALG_PARAM_CIPHER "cipher" +# define OSSL_ALG_PARAM_DIGEST "digest" +# define OSSL_ALG_PARAM_ENGINE "engine" +# define OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR "fips-indicator" +# define OSSL_ALG_PARAM_MAC "mac" +# define OSSL_ALG_PARAM_PROPERTIES "properties" +# define OSSL_ASYM_CIPHER_PARAM_DIGEST OSSL_PKEY_PARAM_DIGEST +# define OSSL_ASYM_CIPHER_PARAM_ENGINE OSSL_PKEY_PARAM_ENGINE +# define OSSL_ASYM_CIPHER_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_ASYM_CIPHER_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_ASYM_CIPHER_PARAM_FIPS_RSA_PKCS15_PAD_DISABLED OSSL_PROV_PARAM_RSA_PKCS15_PAD_DISABLED +# define OSSL_ASYM_CIPHER_PARAM_IMPLICIT_REJECTION "implicit-rejection" +# define OSSL_ASYM_CIPHER_PARAM_MGF1_DIGEST OSSL_PKEY_PARAM_MGF1_DIGEST +# define OSSL_ASYM_CIPHER_PARAM_MGF1_DIGEST_PROPS OSSL_PKEY_PARAM_MGF1_PROPERTIES +# define OSSL_ASYM_CIPHER_PARAM_OAEP_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_ASYM_CIPHER_PARAM_OAEP_DIGEST_PROPS "digest-props" +# define OSSL_ASYM_CIPHER_PARAM_OAEP_LABEL "oaep-label" +# define OSSL_ASYM_CIPHER_PARAM_PAD_MODE OSSL_PKEY_PARAM_PAD_MODE +# define OSSL_ASYM_CIPHER_PARAM_PROPERTIES OSSL_PKEY_PARAM_PROPERTIES +# define OSSL_ASYM_CIPHER_PARAM_TLS_CLIENT_VERSION "tls-client-version" +# define OSSL_ASYM_CIPHER_PARAM_TLS_NEGOTIATED_VERSION "tls-negotiated-version" +# define OSSL_CAPABILITY_TLS_GROUP_ALG "tls-group-alg" +# define OSSL_CAPABILITY_TLS_GROUP_ID "tls-group-id" +# define OSSL_CAPABILITY_TLS_GROUP_IS_KEM "tls-group-is-kem" +# define OSSL_CAPABILITY_TLS_GROUP_MAX_DTLS "tls-max-dtls" +# define OSSL_CAPABILITY_TLS_GROUP_MAX_TLS "tls-max-tls" +# define OSSL_CAPABILITY_TLS_GROUP_MIN_DTLS "tls-min-dtls" +# define OSSL_CAPABILITY_TLS_GROUP_MIN_TLS "tls-min-tls" +# define OSSL_CAPABILITY_TLS_GROUP_NAME "tls-group-name" +# define OSSL_CAPABILITY_TLS_GROUP_NAME_INTERNAL "tls-group-name-internal" +# define OSSL_CAPABILITY_TLS_GROUP_SECURITY_BITS "tls-group-sec-bits" +# define OSSL_CAPABILITY_TLS_SIGALG_CODE_POINT "tls-sigalg-code-point" +# define OSSL_CAPABILITY_TLS_SIGALG_HASH_NAME "tls-sigalg-hash-name" +# define OSSL_CAPABILITY_TLS_SIGALG_HASH_OID "tls-sigalg-hash-oid" +# define OSSL_CAPABILITY_TLS_SIGALG_IANA_NAME "tls-sigalg-iana-name" +# define OSSL_CAPABILITY_TLS_SIGALG_KEYTYPE "tls-sigalg-keytype" +# define OSSL_CAPABILITY_TLS_SIGALG_KEYTYPE_OID "tls-sigalg-keytype-oid" +# define OSSL_CAPABILITY_TLS_SIGALG_MAX_DTLS "tls-max-dtls" +# define OSSL_CAPABILITY_TLS_SIGALG_MAX_TLS "tls-max-tls" +# define OSSL_CAPABILITY_TLS_SIGALG_MIN_DTLS "tls-min-dtls" +# define OSSL_CAPABILITY_TLS_SIGALG_MIN_TLS "tls-min-tls" +# define OSSL_CAPABILITY_TLS_SIGALG_NAME "tls-sigalg-name" +# define OSSL_CAPABILITY_TLS_SIGALG_OID "tls-sigalg-oid" +# define OSSL_CAPABILITY_TLS_SIGALG_SECURITY_BITS "tls-sigalg-sec-bits" +# define OSSL_CAPABILITY_TLS_SIGALG_SIG_NAME "tls-sigalg-sig-name" +# define OSSL_CAPABILITY_TLS_SIGALG_SIG_OID "tls-sigalg-sig-oid" +# define OSSL_CIPHER_PARAM_AEAD "aead" +# define OSSL_CIPHER_PARAM_AEAD_IVLEN OSSL_CIPHER_PARAM_IVLEN +# define OSSL_CIPHER_PARAM_AEAD_IV_GENERATED "iv-generated" +# define OSSL_CIPHER_PARAM_AEAD_MAC_KEY "mackey" +# define OSSL_CIPHER_PARAM_AEAD_TAG "tag" +# define OSSL_CIPHER_PARAM_AEAD_TAGLEN "taglen" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_AAD "tlsaad" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_AAD_PAD "tlsaadpad" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_GET_IV_GEN "tlsivgen" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_IV_FIXED "tlsivfixed" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_SET_IV_INV "tlsivinv" +# define OSSL_CIPHER_PARAM_ALGORITHM_ID OSSL_ALG_PARAM_ALGORITHM_ID +# define OSSL_CIPHER_PARAM_ALGORITHM_ID_PARAMS OSSL_ALG_PARAM_ALGORITHM_ID_PARAMS +# define OSSL_CIPHER_PARAM_ALGORITHM_ID_PARAMS_OLD "alg_id_param" +# define OSSL_CIPHER_PARAM_BLOCK_SIZE "blocksize" +# define OSSL_CIPHER_PARAM_CTS "cts" +# define OSSL_CIPHER_PARAM_CTS_MODE "cts_mode" +# define OSSL_CIPHER_PARAM_CUSTOM_IV "custom-iv" +# define OSSL_CIPHER_PARAM_DECRYPT_ONLY "decrypt-only" +# define OSSL_CIPHER_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_CIPHER_PARAM_FIPS_ENCRYPT_CHECK "encrypt-check" +# define OSSL_CIPHER_PARAM_HAS_RAND_KEY "has-randkey" +# define OSSL_CIPHER_PARAM_IV "iv" +# define OSSL_CIPHER_PARAM_IVLEN "ivlen" +# define OSSL_CIPHER_PARAM_KEYLEN "keylen" +# define OSSL_CIPHER_PARAM_MODE "mode" +# define OSSL_CIPHER_PARAM_NUM "num" +# define OSSL_CIPHER_PARAM_PADDING "padding" +# define OSSL_CIPHER_PARAM_PIPELINE_AEAD_TAG "pipeline-tag" +# define OSSL_CIPHER_PARAM_RANDOM_KEY "randkey" +# define OSSL_CIPHER_PARAM_RC2_KEYBITS "keybits" +# define OSSL_CIPHER_PARAM_ROUNDS "rounds" +# define OSSL_CIPHER_PARAM_SPEED "speed" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK "tls-multi" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD "tls1multi_aad" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD_PACKLEN "tls1multi_aadpacklen" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC "tls1multi_enc" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_IN "tls1multi_encin" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_LEN "tls1multi_enclen" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_INTERLEAVE "tls1multi_interleave" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_BUFSIZE "tls1multi_maxbufsz" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_SEND_FRAGMENT "tls1multi_maxsndfrag" +# define OSSL_CIPHER_PARAM_TLS_MAC "tls-mac" +# define OSSL_CIPHER_PARAM_TLS_MAC_SIZE "tls-mac-size" +# define OSSL_CIPHER_PARAM_TLS_VERSION "tls-version" +# define OSSL_CIPHER_PARAM_UPDATED_IV "updated-iv" +# define OSSL_CIPHER_PARAM_USE_BITS "use-bits" +# define OSSL_CIPHER_PARAM_XTS_STANDARD "xts_standard" +# define OSSL_DECODER_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_DIGEST_PARAM_ALGID_ABSENT "algid-absent" +# define OSSL_DIGEST_PARAM_BLOCK_SIZE "blocksize" +# define OSSL_DIGEST_PARAM_MICALG "micalg" +# define OSSL_DIGEST_PARAM_PAD_TYPE "pad-type" +# define OSSL_DIGEST_PARAM_SIZE "size" +# define OSSL_DIGEST_PARAM_SSL3_MS "ssl3-ms" +# define OSSL_DIGEST_PARAM_XOF "xof" +# define OSSL_DIGEST_PARAM_XOFLEN "xoflen" +# define OSSL_DRBG_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_DRBG_PARAM_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_DRBG_PARAM_ENTROPY_REQUIRED "entropy_required" +# define OSSL_DRBG_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_DRBG_PARAM_FIPS_DIGEST_CHECK OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK +# define OSSL_DRBG_PARAM_MAC OSSL_ALG_PARAM_MAC +# define OSSL_DRBG_PARAM_MAX_ADINLEN "max_adinlen" +# define OSSL_DRBG_PARAM_MAX_ENTROPYLEN "max_entropylen" +# define OSSL_DRBG_PARAM_MAX_LENGTH "maxium_length" +# define OSSL_DRBG_PARAM_MAX_NONCELEN "max_noncelen" +# define OSSL_DRBG_PARAM_MAX_PERSLEN "max_perslen" +# define OSSL_DRBG_PARAM_MIN_ENTROPYLEN "min_entropylen" +# define OSSL_DRBG_PARAM_MIN_LENGTH "minium_length" +# define OSSL_DRBG_PARAM_MIN_NONCELEN "min_noncelen" +# define OSSL_DRBG_PARAM_PREDICTION_RESISTANCE "prediction_resistance" +# define OSSL_DRBG_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_DRBG_PARAM_RANDOM_DATA "random_data" +# define OSSL_DRBG_PARAM_RESEED_COUNTER "reseed_counter" +# define OSSL_DRBG_PARAM_RESEED_REQUESTS "reseed_requests" +# define OSSL_DRBG_PARAM_RESEED_TIME "reseed_time" +# define OSSL_DRBG_PARAM_RESEED_TIME_INTERVAL "reseed_time_interval" +# define OSSL_DRBG_PARAM_SIZE "size" +# define OSSL_DRBG_PARAM_USE_DF "use_derivation_function" +# define OSSL_ENCODER_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_ENCODER_PARAM_ENCRYPT_LEVEL "encrypt-level" +# define OSSL_ENCODER_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_ENCODER_PARAM_SAVE_PARAMETERS "save-parameters" +# define OSSL_EXCHANGE_PARAM_EC_ECDH_COFACTOR_MODE "ecdh-cofactor-mode" +# define OSSL_EXCHANGE_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_EXCHANGE_PARAM_FIPS_DIGEST_CHECK OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK +# define OSSL_EXCHANGE_PARAM_FIPS_ECDH_COFACTOR_CHECK OSSL_PROV_PARAM_ECDH_COFACTOR_CHECK +# define OSSL_EXCHANGE_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_EXCHANGE_PARAM_KDF_DIGEST "kdf-digest" +# define OSSL_EXCHANGE_PARAM_KDF_DIGEST_PROPS "kdf-digest-props" +# define OSSL_EXCHANGE_PARAM_KDF_OUTLEN "kdf-outlen" +# define OSSL_EXCHANGE_PARAM_KDF_TYPE "kdf-type" +# define OSSL_EXCHANGE_PARAM_KDF_UKM "kdf-ukm" +# define OSSL_EXCHANGE_PARAM_PAD "pad" +# define OSSL_GEN_PARAM_ITERATION "iteration" +# define OSSL_GEN_PARAM_POTENTIAL "potential" +# define OSSL_KDF_PARAM_ARGON2_AD "ad" +# define OSSL_KDF_PARAM_ARGON2_LANES "lanes" +# define OSSL_KDF_PARAM_ARGON2_MEMCOST "memcost" +# define OSSL_KDF_PARAM_ARGON2_VERSION "version" +# define OSSL_KDF_PARAM_CEK_ALG "cekalg" +# define OSSL_KDF_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_KDF_PARAM_CONSTANT "constant" +# define OSSL_KDF_PARAM_DATA "data" +# define OSSL_KDF_PARAM_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_KDF_PARAM_EARLY_CLEAN "early_clean" +# define OSSL_KDF_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_KDF_PARAM_FIPS_DIGEST_CHECK OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK +# define OSSL_KDF_PARAM_FIPS_EMS_CHECK "ems_check" +# define OSSL_KDF_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_KDF_PARAM_HMACDRBG_ENTROPY "entropy" +# define OSSL_KDF_PARAM_HMACDRBG_NONCE "nonce" +# define OSSL_KDF_PARAM_INFO "info" +# define OSSL_KDF_PARAM_ITER "iter" +# define OSSL_KDF_PARAM_KBKDF_R "r" +# define OSSL_KDF_PARAM_KBKDF_USE_L "use-l" +# define OSSL_KDF_PARAM_KBKDF_USE_SEPARATOR "use-separator" +# define OSSL_KDF_PARAM_KEY "key" +# define OSSL_KDF_PARAM_LABEL "label" +# define OSSL_KDF_PARAM_MAC OSSL_ALG_PARAM_MAC +# define OSSL_KDF_PARAM_MAC_SIZE "maclen" +# define OSSL_KDF_PARAM_MODE "mode" +# define OSSL_KDF_PARAM_PASSWORD "pass" +# define OSSL_KDF_PARAM_PKCS12_ID "id" +# define OSSL_KDF_PARAM_PKCS5 "pkcs5" +# define OSSL_KDF_PARAM_PREFIX "prefix" +# define OSSL_KDF_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_KDF_PARAM_SALT "salt" +# define OSSL_KDF_PARAM_SCRYPT_MAXMEM "maxmem_bytes" +# define OSSL_KDF_PARAM_SCRYPT_N "n" +# define OSSL_KDF_PARAM_SCRYPT_P "p" +# define OSSL_KDF_PARAM_SCRYPT_R "r" +# define OSSL_KDF_PARAM_SECRET "secret" +# define OSSL_KDF_PARAM_SEED "seed" +# define OSSL_KDF_PARAM_SIZE "size" +# define OSSL_KDF_PARAM_SSHKDF_SESSION_ID "session_id" +# define OSSL_KDF_PARAM_SSHKDF_TYPE "type" +# define OSSL_KDF_PARAM_SSHKDF_XCGHASH "xcghash" +# define OSSL_KDF_PARAM_THREADS "threads" +# define OSSL_KDF_PARAM_UKM "ukm" +# define OSSL_KDF_PARAM_X942_ACVPINFO "acvp-info" +# define OSSL_KDF_PARAM_X942_PARTYUINFO "partyu-info" +# define OSSL_KDF_PARAM_X942_PARTYVINFO "partyv-info" +# define OSSL_KDF_PARAM_X942_SUPP_PRIVINFO "supp-privinfo" +# define OSSL_KDF_PARAM_X942_SUPP_PUBINFO "supp-pubinfo" +# define OSSL_KDF_PARAM_X942_USE_KEYBITS "use-keybits" +# define OSSL_KEM_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_KEM_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_KEM_PARAM_IKME "ikme" +# define OSSL_KEM_PARAM_OPERATION "operation" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_BLOCK_PADDING "block_padding" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_HS_PADDING "hs_padding" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_MAX_EARLY_DATA "max_early_data" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_MAX_FRAG_LEN "max_frag_len" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_MODE "mode" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_OPTIONS "options" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_READ_AHEAD "read_ahead" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_STREAM_MAC "stream_mac" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_TLSTREE "tlstree" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_USE_ETM "use_etm" +# define OSSL_LIBSSL_RECORD_LAYER_READ_BUFFER_LEN "read_buffer_len" +# define OSSL_MAC_PARAM_BLOCK_SIZE "block-size" +# define OSSL_MAC_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_MAC_PARAM_CUSTOM "custom" +# define OSSL_MAC_PARAM_C_ROUNDS "c-rounds" +# define OSSL_MAC_PARAM_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_MAC_PARAM_DIGEST_NOINIT "digest-noinit" +# define OSSL_MAC_PARAM_DIGEST_ONESHOT "digest-oneshot" +# define OSSL_MAC_PARAM_D_ROUNDS "d-rounds" +# define OSSL_MAC_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_MAC_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_MAC_PARAM_FIPS_NO_SHORT_MAC OSSL_PROV_PARAM_NO_SHORT_MAC +# define OSSL_MAC_PARAM_IV "iv" +# define OSSL_MAC_PARAM_KEY "key" +# define OSSL_MAC_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_MAC_PARAM_SALT "salt" +# define OSSL_MAC_PARAM_SIZE "size" +# define OSSL_MAC_PARAM_TLS_DATA_SIZE "tls-data-size" +# define OSSL_MAC_PARAM_XOF "xof" +# define OSSL_OBJECT_PARAM_DATA "data" +# define OSSL_OBJECT_PARAM_DATA_STRUCTURE "data-structure" +# define OSSL_OBJECT_PARAM_DATA_TYPE "data-type" +# define OSSL_OBJECT_PARAM_DESC "desc" +# define OSSL_OBJECT_PARAM_INPUT_TYPE "input-type" +# define OSSL_OBJECT_PARAM_REFERENCE "reference" +# define OSSL_OBJECT_PARAM_TYPE "type" +# define OSSL_PASSPHRASE_PARAM_INFO "info" +# define OSSL_PKEY_PARAM_ALGORITHM_ID OSSL_ALG_PARAM_ALGORITHM_ID +# define OSSL_PKEY_PARAM_ALGORITHM_ID_PARAMS OSSL_ALG_PARAM_ALGORITHM_ID_PARAMS +# define OSSL_PKEY_PARAM_BITS "bits" +# define OSSL_PKEY_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_PKEY_PARAM_DEFAULT_DIGEST "default-digest" +# define OSSL_PKEY_PARAM_DHKEM_IKM "dhkem-ikm" +# define OSSL_PKEY_PARAM_DH_GENERATOR "safeprime-generator" +# define OSSL_PKEY_PARAM_DH_PRIV_LEN "priv_len" +# define OSSL_PKEY_PARAM_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_PKEY_PARAM_DIGEST_SIZE "digest-size" +# define OSSL_PKEY_PARAM_DIST_ID "distid" +# define OSSL_PKEY_PARAM_EC_A "a" +# define OSSL_PKEY_PARAM_EC_B "b" +# define OSSL_PKEY_PARAM_EC_CHAR2_M "m" +# define OSSL_PKEY_PARAM_EC_CHAR2_PP_K1 "k1" +# define OSSL_PKEY_PARAM_EC_CHAR2_PP_K2 "k2" +# define OSSL_PKEY_PARAM_EC_CHAR2_PP_K3 "k3" +# define OSSL_PKEY_PARAM_EC_CHAR2_TP_BASIS "tp" +# define OSSL_PKEY_PARAM_EC_CHAR2_TYPE "basis-type" +# define OSSL_PKEY_PARAM_EC_COFACTOR "cofactor" +# define OSSL_PKEY_PARAM_EC_DECODED_FROM_EXPLICIT_PARAMS "decoded-from-explicit" +# define OSSL_PKEY_PARAM_EC_ENCODING "encoding" +# define OSSL_PKEY_PARAM_EC_FIELD_TYPE "field-type" +# define OSSL_PKEY_PARAM_EC_GENERATOR "generator" +# define OSSL_PKEY_PARAM_EC_GROUP_CHECK_TYPE "group-check" +# define OSSL_PKEY_PARAM_EC_INCLUDE_PUBLIC "include-public" +# define OSSL_PKEY_PARAM_EC_ORDER "order" +# define OSSL_PKEY_PARAM_EC_P "p" +# define OSSL_PKEY_PARAM_EC_POINT_CONVERSION_FORMAT "point-format" +# define OSSL_PKEY_PARAM_EC_PUB_X "qx" +# define OSSL_PKEY_PARAM_EC_PUB_Y "qy" +# define OSSL_PKEY_PARAM_EC_SEED "seed" +# define OSSL_PKEY_PARAM_ENCODED_PUBLIC_KEY "encoded-pub-key" +# define OSSL_PKEY_PARAM_ENGINE OSSL_ALG_PARAM_ENGINE +# define OSSL_PKEY_PARAM_FFC_COFACTOR "j" +# define OSSL_PKEY_PARAM_FFC_DIGEST OSSL_PKEY_PARAM_DIGEST +# define OSSL_PKEY_PARAM_FFC_DIGEST_PROPS OSSL_PKEY_PARAM_PROPERTIES +# define OSSL_PKEY_PARAM_FFC_G "g" +# define OSSL_PKEY_PARAM_FFC_GINDEX "gindex" +# define OSSL_PKEY_PARAM_FFC_H "hindex" +# define OSSL_PKEY_PARAM_FFC_P "p" +# define OSSL_PKEY_PARAM_FFC_PBITS "pbits" +# define OSSL_PKEY_PARAM_FFC_PCOUNTER "pcounter" +# define OSSL_PKEY_PARAM_FFC_Q "q" +# define OSSL_PKEY_PARAM_FFC_QBITS "qbits" +# define OSSL_PKEY_PARAM_FFC_SEED "seed" +# define OSSL_PKEY_PARAM_FFC_TYPE "type" +# define OSSL_PKEY_PARAM_FFC_VALIDATE_G "validate-g" +# define OSSL_PKEY_PARAM_FFC_VALIDATE_LEGACY "validate-legacy" +# define OSSL_PKEY_PARAM_FFC_VALIDATE_PQ "validate-pq" +# define OSSL_PKEY_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK "digest-check" +# define OSSL_PKEY_PARAM_FIPS_KEY_CHECK "key-check" +# define OSSL_PKEY_PARAM_FIPS_SIGN_CHECK "sign-check" +# define OSSL_PKEY_PARAM_GROUP_NAME "group" +# define OSSL_PKEY_PARAM_IMPLICIT_REJECTION "implicit-rejection" +# define OSSL_PKEY_PARAM_MANDATORY_DIGEST "mandatory-digest" +# define OSSL_PKEY_PARAM_MASKGENFUNC "mgf" +# define OSSL_PKEY_PARAM_MAX_SIZE "max-size" +# define OSSL_PKEY_PARAM_MGF1_DIGEST "mgf1-digest" +# define OSSL_PKEY_PARAM_MGF1_PROPERTIES "mgf1-properties" +# define OSSL_PKEY_PARAM_ML_DSA_INPUT_FORMATS "ml-dsa.input_formats" +# define OSSL_PKEY_PARAM_ML_DSA_OUTPUT_FORMATS "ml-dsa.output_formats" +# define OSSL_PKEY_PARAM_ML_DSA_PREFER_SEED "ml-dsa.prefer_seed" +# define OSSL_PKEY_PARAM_ML_DSA_RETAIN_SEED "ml-dsa.retain_seed" +# define OSSL_PKEY_PARAM_ML_DSA_SEED "seed" +# define OSSL_PKEY_PARAM_ML_KEM_IMPORT_PCT_TYPE "ml-kem.import_pct_type" +# define OSSL_PKEY_PARAM_ML_KEM_INPUT_FORMATS "ml-kem.input_formats" +# define OSSL_PKEY_PARAM_ML_KEM_OUTPUT_FORMATS "ml-kem.output_formats" +# define OSSL_PKEY_PARAM_ML_KEM_PREFER_SEED "ml-kem.prefer_seed" +# define OSSL_PKEY_PARAM_ML_KEM_RETAIN_SEED "ml-kem.retain_seed" +# define OSSL_PKEY_PARAM_ML_KEM_SEED "seed" +# define OSSL_PKEY_PARAM_PAD_MODE "pad-mode" +# define OSSL_PKEY_PARAM_PRIV_KEY "priv" +# define OSSL_PKEY_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_PKEY_PARAM_PUB_KEY "pub" +# define OSSL_PKEY_PARAM_RSA_BITS OSSL_PKEY_PARAM_BITS +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT "rsa-coefficient" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT1 "rsa-coefficient1" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT2 "rsa-coefficient2" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT3 "rsa-coefficient3" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT4 "rsa-coefficient4" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT5 "rsa-coefficient5" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT6 "rsa-coefficient6" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT7 "rsa-coefficient7" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT8 "rsa-coefficient8" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT9 "rsa-coefficient9" +# define OSSL_PKEY_PARAM_RSA_D "d" +# define OSSL_PKEY_PARAM_RSA_DERIVE_FROM_PQ "rsa-derive-from-pq" +# define OSSL_PKEY_PARAM_RSA_DIGEST OSSL_PKEY_PARAM_DIGEST +# define OSSL_PKEY_PARAM_RSA_DIGEST_PROPS OSSL_PKEY_PARAM_PROPERTIES +# define OSSL_PKEY_PARAM_RSA_E "e" +# define OSSL_PKEY_PARAM_RSA_EXPONENT "rsa-exponent" +# define OSSL_PKEY_PARAM_RSA_EXPONENT1 "rsa-exponent1" +# define OSSL_PKEY_PARAM_RSA_EXPONENT10 "rsa-exponent10" +# define OSSL_PKEY_PARAM_RSA_EXPONENT2 "rsa-exponent2" +# define OSSL_PKEY_PARAM_RSA_EXPONENT3 "rsa-exponent3" +# define OSSL_PKEY_PARAM_RSA_EXPONENT4 "rsa-exponent4" +# define OSSL_PKEY_PARAM_RSA_EXPONENT5 "rsa-exponent5" +# define OSSL_PKEY_PARAM_RSA_EXPONENT6 "rsa-exponent6" +# define OSSL_PKEY_PARAM_RSA_EXPONENT7 "rsa-exponent7" +# define OSSL_PKEY_PARAM_RSA_EXPONENT8 "rsa-exponent8" +# define OSSL_PKEY_PARAM_RSA_EXPONENT9 "rsa-exponent9" +# define OSSL_PKEY_PARAM_RSA_FACTOR "rsa-factor" +# define OSSL_PKEY_PARAM_RSA_FACTOR1 "rsa-factor1" +# define OSSL_PKEY_PARAM_RSA_FACTOR10 "rsa-factor10" +# define OSSL_PKEY_PARAM_RSA_FACTOR2 "rsa-factor2" +# define OSSL_PKEY_PARAM_RSA_FACTOR3 "rsa-factor3" +# define OSSL_PKEY_PARAM_RSA_FACTOR4 "rsa-factor4" +# define OSSL_PKEY_PARAM_RSA_FACTOR5 "rsa-factor5" +# define OSSL_PKEY_PARAM_RSA_FACTOR6 "rsa-factor6" +# define OSSL_PKEY_PARAM_RSA_FACTOR7 "rsa-factor7" +# define OSSL_PKEY_PARAM_RSA_FACTOR8 "rsa-factor8" +# define OSSL_PKEY_PARAM_RSA_FACTOR9 "rsa-factor9" +# define OSSL_PKEY_PARAM_RSA_MASKGENFUNC OSSL_PKEY_PARAM_MASKGENFUNC +# define OSSL_PKEY_PARAM_RSA_MGF1_DIGEST OSSL_PKEY_PARAM_MGF1_DIGEST +# define OSSL_PKEY_PARAM_RSA_N "n" +# define OSSL_PKEY_PARAM_RSA_PRIMES "primes" +# define OSSL_PKEY_PARAM_RSA_PSS_SALTLEN "saltlen" +# define OSSL_PKEY_PARAM_RSA_TEST_P1 "p1" +# define OSSL_PKEY_PARAM_RSA_TEST_P2 "p2" +# define OSSL_PKEY_PARAM_RSA_TEST_Q1 "q1" +# define OSSL_PKEY_PARAM_RSA_TEST_Q2 "q2" +# define OSSL_PKEY_PARAM_RSA_TEST_XP "xp" +# define OSSL_PKEY_PARAM_RSA_TEST_XP1 "xp1" +# define OSSL_PKEY_PARAM_RSA_TEST_XP2 "xp2" +# define OSSL_PKEY_PARAM_RSA_TEST_XQ "xq" +# define OSSL_PKEY_PARAM_RSA_TEST_XQ1 "xq1" +# define OSSL_PKEY_PARAM_RSA_TEST_XQ2 "xq2" +# define OSSL_PKEY_PARAM_SECURITY_BITS "security-bits" +# define OSSL_PKEY_PARAM_SLH_DSA_SEED "seed" +# define OSSL_PKEY_PARAM_USE_COFACTOR_ECDH OSSL_PKEY_PARAM_USE_COFACTOR_FLAG +# define OSSL_PKEY_PARAM_USE_COFACTOR_FLAG "use-cofactor-flag" +# define OSSL_PROV_PARAM_BUILDINFO "buildinfo" +# define OSSL_PROV_PARAM_CORE_MODULE_FILENAME "module-filename" +# define OSSL_PROV_PARAM_CORE_PROV_NAME "provider-name" +# define OSSL_PROV_PARAM_CORE_VERSION "openssl-version" +# define OSSL_PROV_PARAM_DRBG_TRUNC_DIGEST "drbg-no-trunc-md" +# define OSSL_PROV_PARAM_DSA_SIGN_DISABLED "dsa-sign-disabled" +# define OSSL_PROV_PARAM_ECDH_COFACTOR_CHECK "ecdh-cofactor-check" +# define OSSL_PROV_PARAM_HKDF_DIGEST_CHECK "hkdf-digest-check" +# define OSSL_PROV_PARAM_HKDF_KEY_CHECK "hkdf-key-check" +# define OSSL_PROV_PARAM_HMAC_KEY_CHECK "hmac-key-check" +# define OSSL_PROV_PARAM_KBKDF_KEY_CHECK "kbkdf-key-check" +# define OSSL_PROV_PARAM_KMAC_KEY_CHECK "kmac-key-check" +# define OSSL_PROV_PARAM_NAME "name" +# define OSSL_PROV_PARAM_NO_SHORT_MAC "no-short-mac" +# define OSSL_PROV_PARAM_PBKDF2_LOWER_BOUND_CHECK "pbkdf2-lower-bound-check" +# define OSSL_PROV_PARAM_RSA_PKCS15_PAD_DISABLED "rsa-pkcs15-pad-disabled" +# define OSSL_PROV_PARAM_RSA_PSS_SALTLEN_CHECK "rsa-pss-saltlen-check" +# define OSSL_PROV_PARAM_RSA_SIGN_X931_PAD_DISABLED "rsa-sign-x931-pad-disabled" +# define OSSL_PROV_PARAM_SECURITY_CHECKS "security-checks" +# define OSSL_PROV_PARAM_SELF_TEST_DESC "st-desc" +# define OSSL_PROV_PARAM_SELF_TEST_PHASE "st-phase" +# define OSSL_PROV_PARAM_SELF_TEST_TYPE "st-type" +# define OSSL_PROV_PARAM_SIGNATURE_DIGEST_CHECK "signature-digest-check" +# define OSSL_PROV_PARAM_SSHKDF_DIGEST_CHECK "sshkdf-digest-check" +# define OSSL_PROV_PARAM_SSHKDF_KEY_CHECK "sshkdf-key-check" +# define OSSL_PROV_PARAM_SSKDF_DIGEST_CHECK "sskdf-digest-check" +# define OSSL_PROV_PARAM_SSKDF_KEY_CHECK "sskdf-key-check" +# define OSSL_PROV_PARAM_STATUS "status" +# define OSSL_PROV_PARAM_TDES_ENCRYPT_DISABLED "tdes-encrypt-disabled" +# define OSSL_PROV_PARAM_TLS13_KDF_DIGEST_CHECK "tls13-kdf-digest-check" +# define OSSL_PROV_PARAM_TLS13_KDF_KEY_CHECK "tls13-kdf-key-check" +# define OSSL_PROV_PARAM_TLS1_PRF_DIGEST_CHECK "tls1-prf-digest-check" +# define OSSL_PROV_PARAM_TLS1_PRF_EMS_CHECK "tls1-prf-ems-check" +# define OSSL_PROV_PARAM_TLS1_PRF_KEY_CHECK "tls1-prf-key-check" +# define OSSL_PROV_PARAM_VERSION "version" +# define OSSL_PROV_PARAM_X942KDF_KEY_CHECK "x942kdf-key-check" +# define OSSL_PROV_PARAM_X963KDF_DIGEST_CHECK "x963kdf-digest-check" +# define OSSL_PROV_PARAM_X963KDF_KEY_CHECK "x963kdf-key-check" +# define OSSL_RAND_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_RAND_PARAM_GENERATE "generate" +# define OSSL_RAND_PARAM_MAX_REQUEST "max_request" +# define OSSL_RAND_PARAM_STATE "state" +# define OSSL_RAND_PARAM_STRENGTH "strength" +# define OSSL_RAND_PARAM_TEST_ENTROPY "test_entropy" +# define OSSL_RAND_PARAM_TEST_NONCE "test_nonce" +# define OSSL_SIGNATURE_PARAM_ADD_RANDOM "additional-random" +# define OSSL_SIGNATURE_PARAM_ALGORITHM_ID OSSL_PKEY_PARAM_ALGORITHM_ID +# define OSSL_SIGNATURE_PARAM_ALGORITHM_ID_PARAMS OSSL_PKEY_PARAM_ALGORITHM_ID_PARAMS +# define OSSL_SIGNATURE_PARAM_CONTEXT_STRING "context-string" +# define OSSL_SIGNATURE_PARAM_DETERMINISTIC "deterministic" +# define OSSL_SIGNATURE_PARAM_DIGEST OSSL_PKEY_PARAM_DIGEST +# define OSSL_SIGNATURE_PARAM_DIGEST_SIZE OSSL_PKEY_PARAM_DIGEST_SIZE +# define OSSL_SIGNATURE_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_SIGNATURE_PARAM_FIPS_DIGEST_CHECK OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK +# define OSSL_SIGNATURE_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_SIGNATURE_PARAM_FIPS_RSA_PSS_SALTLEN_CHECK "rsa-pss-saltlen-check" +# define OSSL_SIGNATURE_PARAM_FIPS_SIGN_CHECK OSSL_PKEY_PARAM_FIPS_SIGN_CHECK +# define OSSL_SIGNATURE_PARAM_FIPS_SIGN_X931_PAD_CHECK "sign-x931-pad-check" +# define OSSL_SIGNATURE_PARAM_FIPS_VERIFY_MESSAGE "verify-message" +# define OSSL_SIGNATURE_PARAM_INSTANCE "instance" +# define OSSL_SIGNATURE_PARAM_KAT "kat" +# define OSSL_SIGNATURE_PARAM_MESSAGE_ENCODING "message-encoding" +# define OSSL_SIGNATURE_PARAM_MGF1_DIGEST OSSL_PKEY_PARAM_MGF1_DIGEST +# define OSSL_SIGNATURE_PARAM_MGF1_PROPERTIES OSSL_PKEY_PARAM_MGF1_PROPERTIES +# define OSSL_SIGNATURE_PARAM_MU "mu" +# define OSSL_SIGNATURE_PARAM_NONCE_TYPE "nonce-type" +# define OSSL_SIGNATURE_PARAM_PAD_MODE OSSL_PKEY_PARAM_PAD_MODE +# define OSSL_SIGNATURE_PARAM_PROPERTIES OSSL_PKEY_PARAM_PROPERTIES +# define OSSL_SIGNATURE_PARAM_PSS_SALTLEN "saltlen" +# define OSSL_SIGNATURE_PARAM_SIGNATURE "signature" +# define OSSL_SIGNATURE_PARAM_TEST_ENTROPY "test-entropy" +# define OSSL_SKEY_PARAM_KEY_LENGTH "key-length" +# define OSSL_SKEY_PARAM_RAW_BYTES "raw-bytes" +# define OSSL_STORE_PARAM_ALIAS "alias" +# define OSSL_STORE_PARAM_DIGEST "digest" +# define OSSL_STORE_PARAM_EXPECT "expect" +# define OSSL_STORE_PARAM_FINGERPRINT "fingerprint" +# define OSSL_STORE_PARAM_INPUT_TYPE "input-type" +# define OSSL_STORE_PARAM_ISSUER "name" +# define OSSL_STORE_PARAM_PROPERTIES "properties" +# define OSSL_STORE_PARAM_SERIAL "serial" +# define OSSL_STORE_PARAM_SUBJECT "subject" + +# ifdef __cplusplus +} +# endif + +#endif diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/include/openssl/crmf.h b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/include/openssl/crmf.h index 71b747ed33d239..4bf550fd47daa9 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/include/openssl/crmf.h +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/include/openssl/crmf.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/crmf.h.in * - * Copyright 2007-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2007-2025 The OpenSSL Project Authors. All Rights Reserved. * Copyright Nokia 2007-2019 * Copyright Siemens AG 2015-2019 * @@ -26,6 +26,7 @@ # include # include # include /* for GENERAL_NAME etc. */ +# include /* explicit #includes not strictly needed since implied by the above: */ # include @@ -43,9 +44,12 @@ extern "C" { # define OSSL_CRMF_SUBSEQUENTMESSAGE_ENCRCERT 0 # define OSSL_CRMF_SUBSEQUENTMESSAGE_CHALLENGERESP 1 - typedef struct ossl_crmf_encryptedvalue_st OSSL_CRMF_ENCRYPTEDVALUE; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_ENCRYPTEDVALUE) + +typedef struct ossl_crmf_encryptedkey_st OSSL_CRMF_ENCRYPTEDKEY; +DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_ENCRYPTEDKEY) + typedef struct ossl_crmf_msg_st OSSL_CRMF_MSG; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_MSG) DECLARE_ASN1_DUP_FUNCTION(OSSL_CRMF_MSG) @@ -77,6 +81,36 @@ SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CRMF_MSG, OSSL_CRMF_MSG, OSSL_CRMF_MSG) #define sk_OSSL_CRMF_MSG_set_cmp_func(sk, cmp) ((sk_OSSL_CRMF_MSG_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CRMF_MSG_sk_type(sk), ossl_check_OSSL_CRMF_MSG_compfunc_type(cmp))) typedef struct ossl_crmf_attributetypeandvalue_st OSSL_CRMF_ATTRIBUTETYPEANDVALUE; +void OSSL_CRMF_ATTRIBUTETYPEANDVALUE_free(OSSL_CRMF_ATTRIBUTETYPEANDVALUE *v); +DECLARE_ASN1_DUP_FUNCTION(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CRMF_ATTRIBUTETYPEANDVALUE, OSSL_CRMF_ATTRIBUTETYPEANDVALUE, OSSL_CRMF_ATTRIBUTETYPEANDVALUE) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_value(sk, idx) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_value(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), (idx))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_new(cmp) ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_new(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_compfunc_type(cmp))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_new_null() ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_new_null()) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_new_reserve(cmp, n) ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_compfunc_type(cmp), (n))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), (n)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_free(sk) OPENSSL_sk_free(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_delete(sk, i) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_delete(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), (i))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_delete_ptr(sk, ptr) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_pop(sk) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_pop(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_shift(sk) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_shift(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk),ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_freefunc_type(freefunc)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr), (idx)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_set(sk, idx, ptr) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_set(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), (idx), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr), pnum) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_dup(sk) ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_dup(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_copyfunc_type(copyfunc), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_freefunc_type(freefunc))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_set_cmp_func(sk, cmp) ((sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_compfunc_type(cmp))) + + typedef struct ossl_crmf_pbmparameter_st OSSL_CRMF_PBMPARAMETER; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_PBMPARAMETER) typedef struct ossl_crmf_poposigningkey_st OSSL_CRMF_POPOSIGNINGKEY; @@ -118,6 +152,7 @@ typedef struct ossl_crmf_singlepubinfo_st OSSL_CRMF_SINGLEPUBINFO; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_SINGLEPUBINFO) typedef struct ossl_crmf_certtemplate_st OSSL_CRMF_CERTTEMPLATE; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_CERTTEMPLATE) +DECLARE_ASN1_DUP_FUNCTION(OSSL_CRMF_CERTTEMPLATE) typedef STACK_OF(OSSL_CRMF_MSG) OSSL_CRMF_MSGS; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_MSGS) @@ -198,12 +233,14 @@ int OSSL_CRMF_MSGS_verify_popo(const OSSL_CRMF_MSGS *reqs, int rid, int acceptRAVerified, OSSL_LIB_CTX *libctx, const char *propq); OSSL_CRMF_CERTTEMPLATE *OSSL_CRMF_MSG_get0_tmpl(const OSSL_CRMF_MSG *crm); -const ASN1_INTEGER -*OSSL_CRMF_CERTTEMPLATE_get0_serialNumber(const OSSL_CRMF_CERTTEMPLATE *tmpl); +X509_PUBKEY +*OSSL_CRMF_CERTTEMPLATE_get0_publicKey(const OSSL_CRMF_CERTTEMPLATE *tmpl); const X509_NAME *OSSL_CRMF_CERTTEMPLATE_get0_subject(const OSSL_CRMF_CERTTEMPLATE *tmpl); const X509_NAME *OSSL_CRMF_CERTTEMPLATE_get0_issuer(const OSSL_CRMF_CERTTEMPLATE *tmpl); +const ASN1_INTEGER +*OSSL_CRMF_CERTTEMPLATE_get0_serialNumber(const OSSL_CRMF_CERTTEMPLATE *tmpl); X509_EXTENSIONS *OSSL_CRMF_CERTTEMPLATE_get0_extensions(const OSSL_CRMF_CERTTEMPLATE *tmpl); const X509_NAME @@ -215,10 +252,24 @@ int OSSL_CRMF_CERTTEMPLATE_fill(OSSL_CRMF_CERTTEMPLATE *tmpl, const X509_NAME *subject, const X509_NAME *issuer, const ASN1_INTEGER *serial); -X509 -*OSSL_CRMF_ENCRYPTEDVALUE_get1_encCert(const OSSL_CRMF_ENCRYPTEDVALUE *ecert, - OSSL_LIB_CTX *libctx, const char *propq, - EVP_PKEY *pkey); +X509 *OSSL_CRMF_ENCRYPTEDVALUE_get1_encCert(const OSSL_CRMF_ENCRYPTEDVALUE *ecert, + OSSL_LIB_CTX *libctx, const char *propq, + EVP_PKEY *pkey); +X509 *OSSL_CRMF_ENCRYPTEDKEY_get1_encCert(const OSSL_CRMF_ENCRYPTEDKEY *ecert, + OSSL_LIB_CTX *libctx, const char *propq, + EVP_PKEY *pkey, unsigned int flags); +unsigned char +*OSSL_CRMF_ENCRYPTEDVALUE_decrypt(const OSSL_CRMF_ENCRYPTEDVALUE *enc, + OSSL_LIB_CTX *libctx, const char *propq, + EVP_PKEY *pkey, int *outlen); +EVP_PKEY *OSSL_CRMF_ENCRYPTEDKEY_get1_pkey(const OSSL_CRMF_ENCRYPTEDKEY *encryptedKey, + X509_STORE *ts, STACK_OF(X509) *extra, EVP_PKEY *pkey, + X509 *cert, ASN1_OCTET_STRING *secret, + OSSL_LIB_CTX *libctx, const char *propq); +int OSSL_CRMF_MSG_centralkeygen_requested(const OSSL_CRMF_MSG *crm, const X509_REQ *p10cr); +# ifndef OPENSSL_NO_CMS +OSSL_CRMF_ENCRYPTEDKEY *OSSL_CRMF_ENCRYPTEDKEY_init_envdata(CMS_EnvelopedData *envdata); +# endif # ifdef __cplusplus } diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/include/openssl/crypto.h b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/include/openssl/crypto.h index 3f40be6d8c61d5..fd2cfd3e5a9ac4 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/include/openssl/crypto.h +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/include/openssl/crypto.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/crypto.h.in * - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2024 The OpenSSL Project Authors. All Rights Reserved. * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved * * Licensed under the Apache License 2.0 (the "License"). You may not use @@ -85,9 +85,15 @@ int CRYPTO_THREAD_unlock(CRYPTO_RWLOCK *lock); void CRYPTO_THREAD_lock_free(CRYPTO_RWLOCK *lock); int CRYPTO_atomic_add(int *val, int amount, int *ret, CRYPTO_RWLOCK *lock); +int CRYPTO_atomic_add64(uint64_t *val, uint64_t op, uint64_t *ret, + CRYPTO_RWLOCK *lock); +int CRYPTO_atomic_and(uint64_t *val, uint64_t op, uint64_t *ret, + CRYPTO_RWLOCK *lock); int CRYPTO_atomic_or(uint64_t *val, uint64_t op, uint64_t *ret, CRYPTO_RWLOCK *lock); int CRYPTO_atomic_load(uint64_t *val, uint64_t *ret, CRYPTO_RWLOCK *lock); +int CRYPTO_atomic_load_int(int *val, int *ret, CRYPTO_RWLOCK *lock); +int CRYPTO_atomic_store(uint64_t *dst, uint64_t val, CRYPTO_RWLOCK *lock); /* No longer needed, so this is a no-op */ #define OPENSSL_malloc_init() while(0) continue @@ -96,6 +102,9 @@ int CRYPTO_atomic_load(uint64_t *val, uint64_t *ret, CRYPTO_RWLOCK *lock); CRYPTO_malloc(num, OPENSSL_FILE, OPENSSL_LINE) # define OPENSSL_zalloc(num) \ CRYPTO_zalloc(num, OPENSSL_FILE, OPENSSL_LINE) +# define OPENSSL_aligned_alloc(num, alignment, freeptr) \ + CRYPTO_aligned_alloc(num, alignment, freeptr, \ + OPENSSL_FILE, OPENSSL_LINE) # define OPENSSL_realloc(addr, num) \ CRYPTO_realloc(addr, num, OPENSSL_FILE, OPENSSL_LINE) # define OPENSSL_clear_realloc(addr, old_num, num) \ @@ -124,6 +133,7 @@ int CRYPTO_atomic_load(uint64_t *val, uint64_t *ret, CRYPTO_RWLOCK *lock); size_t OPENSSL_strlcpy(char *dst, const char *src, size_t siz); size_t OPENSSL_strlcat(char *dst, const char *src, size_t siz); size_t OPENSSL_strnlen(const char *str, size_t maxlen); +int OPENSSL_strtoul(const char *str, char **endptr, int base, unsigned long *num); int OPENSSL_buf2hexstr_ex(char *str, size_t str_n, size_t *strlength, const unsigned char *buf, size_t buflen, const char sep); @@ -160,6 +170,7 @@ const char *OpenSSL_version(int type); # define OPENSSL_FULL_VERSION_STRING 7 # define OPENSSL_MODULES_DIR 8 # define OPENSSL_CPU_INFO 9 +# define OPENSSL_WINCTX 10 const char *OPENSSL_info(int type); /* @@ -174,6 +185,7 @@ const char *OPENSSL_info(int type); # define OPENSSL_INFO_LIST_SEPARATOR 1006 # define OPENSSL_INFO_SEED_SOURCE 1007 # define OPENSSL_INFO_CPU_SETTINGS 1008 +# define OPENSSL_INFO_WINDOWS_CONTEXT 1009 int OPENSSL_issetugid(void); @@ -341,11 +353,14 @@ void CRYPTO_get_mem_functions(CRYPTO_malloc_fn *malloc_fn, CRYPTO_realloc_fn *realloc_fn, CRYPTO_free_fn *free_fn); -void *CRYPTO_malloc(size_t num, const char *file, int line); -void *CRYPTO_zalloc(size_t num, const char *file, int line); -void *CRYPTO_memdup(const void *str, size_t siz, const char *file, int line); -char *CRYPTO_strdup(const char *str, const char *file, int line); -char *CRYPTO_strndup(const char *str, size_t s, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_malloc(size_t num, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_zalloc(size_t num, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_aligned_alloc(size_t num, size_t align, + void **freeptr, const char *file, + int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_memdup(const void *str, size_t siz, const char *file, int line); +OSSL_CRYPTO_ALLOC char *CRYPTO_strdup(const char *str, const char *file, int line); +OSSL_CRYPTO_ALLOC char *CRYPTO_strndup(const char *str, size_t s, const char *file, int line); void CRYPTO_free(void *ptr, const char *file, int line); void CRYPTO_clear_free(void *ptr, size_t num, const char *file, int line); void *CRYPTO_realloc(void *addr, size_t num, const char *file, int line); @@ -354,8 +369,8 @@ void *CRYPTO_clear_realloc(void *addr, size_t old_num, size_t num, int CRYPTO_secure_malloc_init(size_t sz, size_t minsize); int CRYPTO_secure_malloc_done(void); -void *CRYPTO_secure_malloc(size_t num, const char *file, int line); -void *CRYPTO_secure_zalloc(size_t num, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_secure_malloc(size_t num, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_secure_zalloc(size_t num, const char *file, int line); void CRYPTO_secure_free(void *ptr, const char *file, int line); void CRYPTO_secure_clear_free(void *ptr, size_t num, const char *file, int line); @@ -376,6 +391,9 @@ void OPENSSL_cleanse(void *ptr, size_t len); # define CRYPTO_MEM_CHECK_ENABLE 0x2 /* Control and mode bit */ # define CRYPTO_MEM_CHECK_DISABLE 0x3 /* Control only */ +/* max allowed length for value of OPENSSL_MALLOC_FAILURES env var. */ +# define CRYPTO_MEM_CHECK_MAX_FS 256 + void CRYPTO_get_alloc_counts(int *mcount, int *rcount, int *fcount); # ifndef OPENSSL_NO_DEPRECATED_3_0 # define OPENSSL_mem_debug_push(info) \ @@ -551,6 +569,13 @@ int OSSL_LIB_CTX_load_config(OSSL_LIB_CTX *ctx, const char *config_file); void OSSL_LIB_CTX_free(OSSL_LIB_CTX *); OSSL_LIB_CTX *OSSL_LIB_CTX_get0_global_default(void); OSSL_LIB_CTX *OSSL_LIB_CTX_set0_default(OSSL_LIB_CTX *libctx); +int OSSL_LIB_CTX_get_conf_diagnostics(OSSL_LIB_CTX *ctx); +void OSSL_LIB_CTX_set_conf_diagnostics(OSSL_LIB_CTX *ctx, int value); + +void OSSL_sleep(uint64_t millis); + + +void *OSSL_LIB_CTX_get_data(OSSL_LIB_CTX *ctx, int index); # ifdef __cplusplus } diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/include/openssl/ct.h b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/include/openssl/ct.h index b6dd8c3547710a..e6dd1192a4e0b3 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/include/openssl/ct.h +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/include/openssl/ct.h @@ -133,7 +133,7 @@ typedef enum { */ CT_POLICY_EVAL_CTX *CT_POLICY_EVAL_CTX_new_ex(OSSL_LIB_CTX *libctx, const char *propq); - + /* * The same as CT_POLICY_EVAL_CTX_new_ex() but the default library * context and property query string is used. diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/include/openssl/err.h b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/include/openssl/err.h index 2abf2483488181..daca18e7b757b0 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/include/openssl/err.h +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/include/openssl/err.h @@ -1,5 +1,5 @@ /* - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -372,7 +372,7 @@ typedef struct ERR_string_data_st { } ERR_STRING_DATA; DEFINE_LHASH_OF_INTERNAL(ERR_STRING_DATA); -#define lh_ERR_STRING_DATA_new(hfn, cmp) ((LHASH_OF(ERR_STRING_DATA) *)OPENSSL_LH_new(ossl_check_ERR_STRING_DATA_lh_hashfunc_type(hfn), ossl_check_ERR_STRING_DATA_lh_compfunc_type(cmp))) +#define lh_ERR_STRING_DATA_new(hfn, cmp) ((LHASH_OF(ERR_STRING_DATA) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new(ossl_check_ERR_STRING_DATA_lh_hashfunc_type(hfn), ossl_check_ERR_STRING_DATA_lh_compfunc_type(cmp)), lh_ERR_STRING_DATA_hash_thunk, lh_ERR_STRING_DATA_comp_thunk, lh_ERR_STRING_DATA_doall_thunk, lh_ERR_STRING_DATA_doall_arg_thunk)) #define lh_ERR_STRING_DATA_free(lh) OPENSSL_LH_free(ossl_check_ERR_STRING_DATA_lh_type(lh)) #define lh_ERR_STRING_DATA_flush(lh) OPENSSL_LH_flush(ossl_check_ERR_STRING_DATA_lh_type(lh)) #define lh_ERR_STRING_DATA_insert(lh, ptr) ((ERR_STRING_DATA *)OPENSSL_LH_insert(ossl_check_ERR_STRING_DATA_lh_type(lh), ossl_check_ERR_STRING_DATA_lh_plain_type(ptr))) @@ -496,6 +496,14 @@ int ERR_get_next_error_library(void); int ERR_set_mark(void); int ERR_pop_to_mark(void); int ERR_clear_last_mark(void); +int ERR_count_to_mark(void); +int ERR_pop(void); + +ERR_STATE *OSSL_ERR_STATE_new(void); +void OSSL_ERR_STATE_save(ERR_STATE *es); +void OSSL_ERR_STATE_save_to_mark(ERR_STATE *es); +void OSSL_ERR_STATE_restore(const ERR_STATE *es); +void OSSL_ERR_STATE_free(ERR_STATE *es); #ifdef __cplusplus } diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/include/openssl/fipskey.h b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/include/openssl/fipskey.h index 42ba014b313ba8..929db18c678364 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/include/openssl/fipskey.h +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/include/openssl/fipskey.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/fipskey.h.in * - * Copyright 2020-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2020-2024 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -29,6 +29,11 @@ extern "C" { */ #define FIPS_KEY_STRING "f4556650ac31d35461610bac4ed81b1a181b2d8a43ea2854cbae22ca74560813" +/* + * The FIPS provider vendor name, as a string. + */ +#define FIPS_VENDOR "OpenSSL FIPS Provider" + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/include/openssl/lhash.h b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/include/openssl/lhash.h index 39dd6254acdeb6..62c55b20fd9716 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/include/openssl/lhash.h +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/include/openssl/lhash.h @@ -1,5 +1,5 @@ /* - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2024 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -24,6 +24,9 @@ # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -31,9 +34,13 @@ extern "C" { typedef struct lhash_node_st OPENSSL_LH_NODE; typedef int (*OPENSSL_LH_COMPFUNC) (const void *, const void *); +typedef int (*OPENSSL_LH_COMPFUNCTHUNK) (const void *, const void *, OPENSSL_LH_COMPFUNC cfn); typedef unsigned long (*OPENSSL_LH_HASHFUNC) (const void *); +typedef unsigned long (*OPENSSL_LH_HASHFUNCTHUNK) (const void *, OPENSSL_LH_HASHFUNC hfn); typedef void (*OPENSSL_LH_DOALL_FUNC) (void *); +typedef void (*OPENSSL_LH_DOALL_FUNC_THUNK) (void *, OPENSSL_LH_DOALL_FUNC doall); typedef void (*OPENSSL_LH_DOALL_FUNCARG) (void *, void *); +typedef void (*OPENSSL_LH_DOALL_FUNCARG_THUNK) (void *, void *, OPENSSL_LH_DOALL_FUNCARG doall); typedef struct lhash_st OPENSSL_LHASH; /* @@ -79,26 +86,40 @@ typedef struct lhash_st OPENSSL_LHASH; int OPENSSL_LH_error(OPENSSL_LHASH *lh); OPENSSL_LHASH *OPENSSL_LH_new(OPENSSL_LH_HASHFUNC h, OPENSSL_LH_COMPFUNC c); +OPENSSL_LHASH *OPENSSL_LH_set_thunks(OPENSSL_LHASH *lh, + OPENSSL_LH_HASHFUNCTHUNK hw, + OPENSSL_LH_COMPFUNCTHUNK cw, + OPENSSL_LH_DOALL_FUNC_THUNK daw, + OPENSSL_LH_DOALL_FUNCARG_THUNK daaw); void OPENSSL_LH_free(OPENSSL_LHASH *lh); void OPENSSL_LH_flush(OPENSSL_LHASH *lh); void *OPENSSL_LH_insert(OPENSSL_LHASH *lh, void *data); void *OPENSSL_LH_delete(OPENSSL_LHASH *lh, const void *data); void *OPENSSL_LH_retrieve(OPENSSL_LHASH *lh, const void *data); void OPENSSL_LH_doall(OPENSSL_LHASH *lh, OPENSSL_LH_DOALL_FUNC func); -void OPENSSL_LH_doall_arg(OPENSSL_LHASH *lh, OPENSSL_LH_DOALL_FUNCARG func, void *arg); +void OPENSSL_LH_doall_arg(OPENSSL_LHASH *lh, + OPENSSL_LH_DOALL_FUNCARG func, void *arg); +void OPENSSL_LH_doall_arg_thunk(OPENSSL_LHASH *lh, + OPENSSL_LH_DOALL_FUNCARG_THUNK daaw, + OPENSSL_LH_DOALL_FUNCARG fn, void *arg); + unsigned long OPENSSL_LH_strhash(const char *c); unsigned long OPENSSL_LH_num_items(const OPENSSL_LHASH *lh); unsigned long OPENSSL_LH_get_down_load(const OPENSSL_LHASH *lh); void OPENSSL_LH_set_down_load(OPENSSL_LHASH *lh, unsigned long down_load); # ifndef OPENSSL_NO_STDIO -void OPENSSL_LH_stats(const OPENSSL_LHASH *lh, FILE *fp); -void OPENSSL_LH_node_stats(const OPENSSL_LHASH *lh, FILE *fp); -void OPENSSL_LH_node_usage_stats(const OPENSSL_LHASH *lh, FILE *fp); +# ifndef OPENSSL_NO_DEPRECATED_3_1 +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_stats(const OPENSSL_LHASH *lh, FILE *fp); +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_node_stats(const OPENSSL_LHASH *lh, FILE *fp); +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_node_usage_stats(const OPENSSL_LHASH *lh, FILE *fp); +# endif +# endif +# ifndef OPENSSL_NO_DEPRECATED_3_1 +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_stats_bio(const OPENSSL_LHASH *lh, BIO *out); +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_node_stats_bio(const OPENSSL_LHASH *lh, BIO *out); +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_node_usage_stats_bio(const OPENSSL_LHASH *lh, BIO *out); # endif -void OPENSSL_LH_stats_bio(const OPENSSL_LHASH *lh, BIO *out); -void OPENSSL_LH_node_stats_bio(const OPENSSL_LHASH *lh, BIO *out); -void OPENSSL_LH_node_usage_stats_bio(const OPENSSL_LHASH *lh, BIO *out); # ifndef OPENSSL_NO_DEPRECATED_1_1_0 # define _LHASH OPENSSL_LHASH @@ -129,110 +150,190 @@ void OPENSSL_LH_node_usage_stats_bio(const OPENSSL_LHASH *lh, BIO *out); /* Helper macro for internal use */ # define DEFINE_LHASH_OF_INTERNAL(type) \ - LHASH_OF(type) { union lh_##type##_dummy { void* d1; unsigned long d2; int d3; } dummy; }; \ + LHASH_OF(type) { \ + union lh_##type##_dummy { void* d1; unsigned long d2; int d3; } dummy; \ + }; \ typedef int (*lh_##type##_compfunc)(const type *a, const type *b); \ typedef unsigned long (*lh_##type##_hashfunc)(const type *a); \ typedef void (*lh_##type##_doallfunc)(type *a); \ - static ossl_unused ossl_inline type *ossl_check_##type##_lh_plain_type(type *ptr) \ + static ossl_inline unsigned long lh_##type##_hash_thunk(const void *data, OPENSSL_LH_HASHFUNC hfn) \ + { \ + unsigned long (*hfn_conv)(const type *) = (unsigned long (*)(const type *))hfn; \ + return hfn_conv((const type *)data); \ + } \ + static ossl_inline int lh_##type##_comp_thunk(const void *da, const void *db, OPENSSL_LH_COMPFUNC cfn) \ + { \ + int (*cfn_conv)(const type *, const type *) = (int (*)(const type *, const type *))cfn; \ + return cfn_conv((const type *)da, (const type *)db); \ + } \ + static ossl_inline void lh_##type##_doall_thunk(void *node, OPENSSL_LH_DOALL_FUNC doall) \ + { \ + void (*doall_conv)(type *) = (void (*)(type *))doall; \ + doall_conv((type *)node); \ + } \ + static ossl_inline void lh_##type##_doall_arg_thunk(void *node, void *arg, OPENSSL_LH_DOALL_FUNCARG doall) \ + { \ + void (*doall_conv)(type *, void *) = (void (*)(type *, void *))doall; \ + doall_conv((type *)node, arg); \ + } \ + static ossl_unused ossl_inline type *\ + ossl_check_##type##_lh_plain_type(type *ptr) \ { \ return ptr; \ } \ - static ossl_unused ossl_inline const type *ossl_check_const_##type##_lh_plain_type(const type *ptr) \ + static ossl_unused ossl_inline const type * \ + ossl_check_const_##type##_lh_plain_type(const type *ptr) \ { \ return ptr; \ } \ - static ossl_unused ossl_inline const OPENSSL_LHASH *ossl_check_const_##type##_lh_type(const LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline const OPENSSL_LHASH * \ + ossl_check_const_##type##_lh_type(const LHASH_OF(type) *lh) \ { \ return (const OPENSSL_LHASH *)lh; \ } \ - static ossl_unused ossl_inline OPENSSL_LHASH *ossl_check_##type##_lh_type(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline OPENSSL_LHASH * \ + ossl_check_##type##_lh_type(LHASH_OF(type) *lh) \ { \ return (OPENSSL_LHASH *)lh; \ } \ - static ossl_unused ossl_inline OPENSSL_LH_COMPFUNC ossl_check_##type##_lh_compfunc_type(lh_##type##_compfunc cmp) \ + static ossl_unused ossl_inline OPENSSL_LH_COMPFUNC \ + ossl_check_##type##_lh_compfunc_type(lh_##type##_compfunc cmp) \ { \ return (OPENSSL_LH_COMPFUNC)cmp; \ } \ - static ossl_unused ossl_inline OPENSSL_LH_HASHFUNC ossl_check_##type##_lh_hashfunc_type(lh_##type##_hashfunc hfn) \ + static ossl_unused ossl_inline OPENSSL_LH_HASHFUNC \ + ossl_check_##type##_lh_hashfunc_type(lh_##type##_hashfunc hfn) \ { \ return (OPENSSL_LH_HASHFUNC)hfn; \ } \ - static ossl_unused ossl_inline OPENSSL_LH_DOALL_FUNC ossl_check_##type##_lh_doallfunc_type(lh_##type##_doallfunc dfn) \ + static ossl_unused ossl_inline OPENSSL_LH_DOALL_FUNC \ + ossl_check_##type##_lh_doallfunc_type(lh_##type##_doallfunc dfn) \ { \ return (OPENSSL_LH_DOALL_FUNC)dfn; \ } \ LHASH_OF(type) -# define DEFINE_LHASH_OF(type) \ - LHASH_OF(type) { union lh_##type##_dummy { void* d1; unsigned long d2; int d3; } dummy; }; \ - static ossl_unused ossl_inline LHASH_OF(type) *lh_##type##_new(unsigned long (*hfn)(const type *), \ - int (*cfn)(const type *, const type *)) \ +# ifndef OPENSSL_NO_DEPRECATED_3_1 +# define DEFINE_LHASH_OF_DEPRECATED(type) \ + static ossl_unused ossl_inline void \ + lh_##type##_node_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ { \ - return (LHASH_OF(type) *) \ - OPENSSL_LH_new((OPENSSL_LH_HASHFUNC)hfn, (OPENSSL_LH_COMPFUNC)cfn); \ + OPENSSL_LH_node_stats_bio((const OPENSSL_LHASH *)lh, out); \ } \ - static ossl_unused ossl_inline void lh_##type##_free(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline void \ + lh_##type##_node_usage_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + { \ + OPENSSL_LH_node_usage_stats_bio((const OPENSSL_LHASH *)lh, out); \ + } \ + static ossl_unused ossl_inline void \ + lh_##type##_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + { \ + OPENSSL_LH_stats_bio((const OPENSSL_LHASH *)lh, out); \ + } +# else +# define DEFINE_LHASH_OF_DEPRECATED(type) +# endif + +# define DEFINE_LHASH_OF_EX(type) \ + LHASH_OF(type) { \ + union lh_##type##_dummy { void* d1; unsigned long d2; int d3; } dummy; \ + }; \ + static unsigned long \ + lh_##type##_hfn_thunk(const void *data, OPENSSL_LH_HASHFUNC hfn) \ + { \ + unsigned long (*hfn_conv)(const type *) = (unsigned long (*)(const type *))hfn; \ + return hfn_conv((const type *)data); \ + } \ + static int lh_##type##_cfn_thunk(const void *da, const void *db, OPENSSL_LH_COMPFUNC cfn) \ + { \ + int (*cfn_conv)(const type *, const type *) = (int (*)(const type *, const type *))cfn; \ + return cfn_conv((const type *)da, (const type *)db); \ + } \ + static ossl_unused ossl_inline void \ + lh_##type##_free(LHASH_OF(type) *lh) \ { \ OPENSSL_LH_free((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline void lh_##type##_flush(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline void \ + lh_##type##_flush(LHASH_OF(type) *lh) \ { \ OPENSSL_LH_flush((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline type *lh_##type##_insert(LHASH_OF(type) *lh, type *d) \ + static ossl_unused ossl_inline type * \ + lh_##type##_insert(LHASH_OF(type) *lh, type *d) \ { \ return (type *)OPENSSL_LH_insert((OPENSSL_LHASH *)lh, d); \ } \ - static ossl_unused ossl_inline type *lh_##type##_delete(LHASH_OF(type) *lh, const type *d) \ + static ossl_unused ossl_inline type * \ + lh_##type##_delete(LHASH_OF(type) *lh, const type *d) \ { \ return (type *)OPENSSL_LH_delete((OPENSSL_LHASH *)lh, d); \ } \ - static ossl_unused ossl_inline type *lh_##type##_retrieve(LHASH_OF(type) *lh, const type *d) \ + static ossl_unused ossl_inline type * \ + lh_##type##_retrieve(LHASH_OF(type) *lh, const type *d) \ { \ return (type *)OPENSSL_LH_retrieve((OPENSSL_LHASH *)lh, d); \ } \ - static ossl_unused ossl_inline int lh_##type##_error(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline int \ + lh_##type##_error(LHASH_OF(type) *lh) \ { \ return OPENSSL_LH_error((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline unsigned long lh_##type##_num_items(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline unsigned long \ + lh_##type##_num_items(LHASH_OF(type) *lh) \ { \ return OPENSSL_LH_num_items((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline void lh_##type##_node_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + static ossl_unused ossl_inline unsigned long \ + lh_##type##_get_down_load(LHASH_OF(type) *lh) \ { \ - OPENSSL_LH_node_stats_bio((const OPENSSL_LHASH *)lh, out); \ + return OPENSSL_LH_get_down_load((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline void lh_##type##_node_usage_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + static ossl_unused ossl_inline void \ + lh_##type##_set_down_load(LHASH_OF(type) *lh, unsigned long dl) \ { \ - OPENSSL_LH_node_usage_stats_bio((const OPENSSL_LHASH *)lh, out); \ + OPENSSL_LH_set_down_load((OPENSSL_LHASH *)lh, dl); \ } \ - static ossl_unused ossl_inline void lh_##type##_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall_thunk(void *node, OPENSSL_LH_DOALL_FUNC doall) \ { \ - OPENSSL_LH_stats_bio((const OPENSSL_LHASH *)lh, out); \ + void (*doall_conv)(type *) = (void (*)(type *))doall; \ + doall_conv((type *)node); \ } \ - static ossl_unused ossl_inline unsigned long lh_##type##_get_down_load(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall_arg_thunk(void *node, void *arg, OPENSSL_LH_DOALL_FUNCARG doall) \ { \ - return OPENSSL_LH_get_down_load((OPENSSL_LHASH *)lh); \ + void (*doall_conv)(type *, void *) = (void (*)(type *, void *))doall; \ + doall_conv((type *)node, arg); \ } \ - static ossl_unused ossl_inline void lh_##type##_set_down_load(LHASH_OF(type) *lh, unsigned long dl) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall(LHASH_OF(type) *lh, void (*doall)(type *)) \ { \ - OPENSSL_LH_set_down_load((OPENSSL_LHASH *)lh, dl); \ + OPENSSL_LH_doall((OPENSSL_LHASH *)lh, (OPENSSL_LH_DOALL_FUNC)doall); \ } \ - static ossl_unused ossl_inline void lh_##type##_doall(LHASH_OF(type) *lh, \ - void (*doall)(type *)) \ + static ossl_unused ossl_inline LHASH_OF(type) * \ + lh_##type##_new(unsigned long (*hfn)(const type *), \ + int (*cfn)(const type *, const type *)) \ { \ - OPENSSL_LH_doall((OPENSSL_LHASH *)lh, (OPENSSL_LH_DOALL_FUNC)doall); \ + return (LHASH_OF(type) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new((OPENSSL_LH_HASHFUNC)hfn, (OPENSSL_LH_COMPFUNC)cfn), \ + lh_##type##_hfn_thunk, lh_##type##_cfn_thunk, \ + lh_##type##_doall_thunk, \ + lh_##type##_doall_arg_thunk); \ } \ - static ossl_unused ossl_inline void lh_##type##_doall_arg(LHASH_OF(type) *lh, \ - void (*doallarg)(type *, void *), \ - void *arg) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall_arg(LHASH_OF(type) *lh, \ + void (*doallarg)(type *, void *), void *arg) \ { \ OPENSSL_LH_doall_arg((OPENSSL_LHASH *)lh, \ (OPENSSL_LH_DOALL_FUNCARG)doallarg, arg); \ } \ LHASH_OF(type) +# define DEFINE_LHASH_OF(type) \ + DEFINE_LHASH_OF_EX(type); \ + DEFINE_LHASH_OF_DEPRECATED(type) \ + LHASH_OF(type) + #define IMPLEMENT_LHASH_DOALL_ARG_CONST(type, argtype) \ int_implement_lhash_doall(type, argtype, const type) @@ -240,17 +341,26 @@ void OPENSSL_LH_node_usage_stats_bio(const OPENSSL_LHASH *lh, BIO *out); int_implement_lhash_doall(type, argtype, type) #define int_implement_lhash_doall(type, argtype, cbargtype) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall_##argtype##_thunk(void *node, void *arg, OPENSSL_LH_DOALL_FUNCARG fn) \ + { \ + void (*fn_conv)(cbargtype *, argtype *) = (void (*)(cbargtype *, argtype *))fn; \ + fn_conv((cbargtype *)node, (argtype *)arg); \ + } \ static ossl_unused ossl_inline void \ lh_##type##_doall_##argtype(LHASH_OF(type) *lh, \ void (*fn)(cbargtype *, argtype *), \ argtype *arg) \ { \ - OPENSSL_LH_doall_arg((OPENSSL_LHASH *)lh, (OPENSSL_LH_DOALL_FUNCARG)fn, (void *)arg); \ + OPENSSL_LH_doall_arg_thunk((OPENSSL_LHASH *)lh, \ + lh_##type##_doall_##argtype##_thunk, \ + (OPENSSL_LH_DOALL_FUNCARG)fn, \ + (void *)arg); \ } \ LHASH_OF(type) DEFINE_LHASH_OF_INTERNAL(OPENSSL_STRING); -#define lh_OPENSSL_STRING_new(hfn, cmp) ((LHASH_OF(OPENSSL_STRING) *)OPENSSL_LH_new(ossl_check_OPENSSL_STRING_lh_hashfunc_type(hfn), ossl_check_OPENSSL_STRING_lh_compfunc_type(cmp))) +#define lh_OPENSSL_STRING_new(hfn, cmp) ((LHASH_OF(OPENSSL_STRING) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new(ossl_check_OPENSSL_STRING_lh_hashfunc_type(hfn), ossl_check_OPENSSL_STRING_lh_compfunc_type(cmp)), lh_OPENSSL_STRING_hash_thunk, lh_OPENSSL_STRING_comp_thunk, lh_OPENSSL_STRING_doall_thunk, lh_OPENSSL_STRING_doall_arg_thunk)) #define lh_OPENSSL_STRING_free(lh) OPENSSL_LH_free(ossl_check_OPENSSL_STRING_lh_type(lh)) #define lh_OPENSSL_STRING_flush(lh) OPENSSL_LH_flush(ossl_check_OPENSSL_STRING_lh_type(lh)) #define lh_OPENSSL_STRING_insert(lh, ptr) ((OPENSSL_STRING *)OPENSSL_LH_insert(ossl_check_OPENSSL_STRING_lh_type(lh), ossl_check_OPENSSL_STRING_lh_plain_type(ptr))) @@ -265,7 +375,7 @@ DEFINE_LHASH_OF_INTERNAL(OPENSSL_STRING); #define lh_OPENSSL_STRING_set_down_load(lh, dl) OPENSSL_LH_set_down_load(ossl_check_OPENSSL_STRING_lh_type(lh), dl) #define lh_OPENSSL_STRING_doall(lh, dfn) OPENSSL_LH_doall(ossl_check_OPENSSL_STRING_lh_type(lh), ossl_check_OPENSSL_STRING_lh_doallfunc_type(dfn)) DEFINE_LHASH_OF_INTERNAL(OPENSSL_CSTRING); -#define lh_OPENSSL_CSTRING_new(hfn, cmp) ((LHASH_OF(OPENSSL_CSTRING) *)OPENSSL_LH_new(ossl_check_OPENSSL_CSTRING_lh_hashfunc_type(hfn), ossl_check_OPENSSL_CSTRING_lh_compfunc_type(cmp))) +#define lh_OPENSSL_CSTRING_new(hfn, cmp) ((LHASH_OF(OPENSSL_CSTRING) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new(ossl_check_OPENSSL_CSTRING_lh_hashfunc_type(hfn), ossl_check_OPENSSL_CSTRING_lh_compfunc_type(cmp)), lh_OPENSSL_CSTRING_hash_thunk, lh_OPENSSL_CSTRING_comp_thunk, lh_OPENSSL_CSTRING_doall_thunk, lh_OPENSSL_CSTRING_doall_arg_thunk)) #define lh_OPENSSL_CSTRING_free(lh) OPENSSL_LH_free(ossl_check_OPENSSL_CSTRING_lh_type(lh)) #define lh_OPENSSL_CSTRING_flush(lh) OPENSSL_LH_flush(ossl_check_OPENSSL_CSTRING_lh_type(lh)) #define lh_OPENSSL_CSTRING_insert(lh, ptr) ((OPENSSL_CSTRING *)OPENSSL_LH_insert(ossl_check_OPENSSL_CSTRING_lh_type(lh), ossl_check_OPENSSL_CSTRING_lh_plain_type(ptr))) diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/include/openssl/opensslv.h b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/include/openssl/opensslv.h index 5fb5bc63056fe0..dd50d89cb9982d 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/include/openssl/opensslv.h +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/include/openssl/opensslv.h @@ -28,8 +28,8 @@ extern "C" { * These macros express version number MAJOR.MINOR.PATCH exactly */ # define OPENSSL_VERSION_MAJOR 3 -# define OPENSSL_VERSION_MINOR 0 -# define OPENSSL_VERSION_PATCH 17 +# define OPENSSL_VERSION_MINOR 5 +# define OPENSSL_VERSION_PATCH 1 /* * Additional version information @@ -74,8 +74,8 @@ extern "C" { * longer variant with OPENSSL_VERSION_PRE_RELEASE_STR and * OPENSSL_VERSION_BUILD_METADATA_STR appended. */ -# define OPENSSL_VERSION_STR "3.0.17" -# define OPENSSL_FULL_VERSION_STR "3.0.17" +# define OPENSSL_VERSION_STR "3.5.1" +# define OPENSSL_FULL_VERSION_STR "3.5.1" /* * SECTION 3: ADDITIONAL METADATA @@ -88,7 +88,7 @@ extern "C" { * SECTION 4: BACKWARD COMPATIBILITY */ -# define OPENSSL_VERSION_TEXT "OpenSSL 3.0.17 1 Jul 2025" +# define OPENSSL_VERSION_TEXT "OpenSSL 3.5.1 1 Jul 2025" /* Synthesize OPENSSL_VERSION_NUMBER with the layout 0xMNN00PPSL */ # ifdef OPENSSL_VERSION_PRE_RELEASE diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/include/openssl/pkcs12.h b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/include/openssl/pkcs12.h index c5e0cab06491ec..0809645dad0bbf 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/include/openssl/pkcs12.h +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/include/openssl/pkcs12.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/pkcs12.h.in * - * Copyright 1999-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1999-2024 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -25,6 +25,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -41,6 +44,7 @@ extern "C" { # define PKCS12_MAC_KEY_LENGTH 20 +/* The macro is expected to be used only internally. Kept for backwards compatibility. */ # define PKCS12_SALT_LEN 8 /* It's not clear if these are actually needed... */ @@ -130,7 +134,9 @@ int PKCS12_SAFEBAG_get_bag_nid(const PKCS12_SAFEBAG *bag); const ASN1_TYPE *PKCS12_SAFEBAG_get0_bag_obj(const PKCS12_SAFEBAG *bag); const ASN1_OBJECT *PKCS12_SAFEBAG_get0_bag_type(const PKCS12_SAFEBAG *bag); +X509 *PKCS12_SAFEBAG_get1_cert_ex(const PKCS12_SAFEBAG *bag, OSSL_LIB_CTX *libctx, const char *propq); X509 *PKCS12_SAFEBAG_get1_cert(const PKCS12_SAFEBAG *bag); +X509_CRL *PKCS12_SAFEBAG_get1_crl_ex(const PKCS12_SAFEBAG *bag, OSSL_LIB_CTX *libctx, const char *propq); X509_CRL *PKCS12_SAFEBAG_get1_crl(const PKCS12_SAFEBAG *bag); const STACK_OF(PKCS12_SAFEBAG) * PKCS12_SAFEBAG_get0_safes(const PKCS12_SAFEBAG *bag); @@ -218,6 +224,7 @@ ASN1_TYPE *PKCS12_get_attr_gen(const STACK_OF(X509_ATTRIBUTE) *attrs, char *PKCS12_get_friendlyname(PKCS12_SAFEBAG *bag); const STACK_OF(X509_ATTRIBUTE) * PKCS12_SAFEBAG_get0_attrs(const PKCS12_SAFEBAG *bag); +void PKCS12_SAFEBAG_set0_attrs(PKCS12_SAFEBAG *bag, STACK_OF(X509_ATTRIBUTE) *attrs); unsigned char *PKCS12_pbe_crypt(const X509_ALGOR *algor, const char *pass, int passlen, const unsigned char *in, int inlen, @@ -285,6 +292,9 @@ int PKCS12_verify_mac(PKCS12 *p12, const char *pass, int passlen); int PKCS12_set_mac(PKCS12 *p12, const char *pass, int passlen, unsigned char *salt, int saltlen, int iter, const EVP_MD *md_type); +int PKCS12_set_pbmac1_pbkdf2(PKCS12 *p12, const char *pass, int passlen, + unsigned char *salt, int saltlen, int iter, + const EVP_MD *md_type, const char *prf_md_name); int PKCS12_setup_mac(PKCS12 *p12, int iter, unsigned char *salt, int saltlen, const EVP_MD *md_type); unsigned char *OPENSSL_asc2uni(const char *asc, int asclen, @@ -305,6 +315,7 @@ DECLARE_ASN1_ITEM(PKCS12_AUTHSAFES) void PKCS12_PBE_add(void); int PKCS12_parse(PKCS12 *p12, const char *pass, EVP_PKEY **pkey, X509 **cert, STACK_OF(X509) **ca); +typedef int PKCS12_create_cb(PKCS12_SAFEBAG *bag, void *cbarg); PKCS12 *PKCS12_create(const char *pass, const char *name, EVP_PKEY *pkey, X509 *cert, STACK_OF(X509) *ca, int nid_key, int nid_cert, int iter, int mac_iter, int keytype); @@ -312,6 +323,11 @@ PKCS12 *PKCS12_create_ex(const char *pass, const char *name, EVP_PKEY *pkey, X509 *cert, STACK_OF(X509) *ca, int nid_key, int nid_cert, int iter, int mac_iter, int keytype, OSSL_LIB_CTX *ctx, const char *propq); +PKCS12 *PKCS12_create_ex2(const char *pass, const char *name, EVP_PKEY *pkey, + X509 *cert, STACK_OF(X509) *ca, int nid_key, int nid_cert, + int iter, int mac_iter, int keytype, + OSSL_LIB_CTX *ctx, const char *propq, + PKCS12_create_cb *cb, void *cbarg); PKCS12_SAFEBAG *PKCS12_add_cert(STACK_OF(PKCS12_SAFEBAG) **pbags, X509 *cert); PKCS12_SAFEBAG *PKCS12_add_key(STACK_OF(PKCS12_SAFEBAG) **pbags, diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/include/openssl/pkcs7.h b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/include/openssl/pkcs7.h index 0ce79bf4fa160e..fa68462aff973b 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/include/openssl/pkcs7.h +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/include/openssl/pkcs7.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/pkcs7.h.in * - * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -28,6 +28,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -131,8 +134,8 @@ SKM_DEFINE_STACK_OF_INTERNAL(PKCS7_RECIP_INFO, PKCS7_RECIP_INFO, PKCS7_RECIP_INF typedef struct pkcs7_signed_st { ASN1_INTEGER *version; /* version 1 */ STACK_OF(X509_ALGOR) *md_algs; /* md used */ - STACK_OF(X509) *cert; /* [ 0 ] */ - STACK_OF(X509_CRL) *crl; /* [ 1 ] */ + STACK_OF(X509) *cert; /* [ 0 ] */ /* name should be 'certificates' */ + STACK_OF(X509_CRL) *crl; /* [ 1 ] */ /* name should be 'crls' */ STACK_OF(PKCS7_SIGNER_INFO) *signer_info; struct pkcs7_st *contents; } PKCS7_SIGNED; @@ -158,8 +161,8 @@ typedef struct pkcs7_enveloped_st { typedef struct pkcs7_signedandenveloped_st { ASN1_INTEGER *version; /* version 1 */ STACK_OF(X509_ALGOR) *md_algs; /* md used */ - STACK_OF(X509) *cert; /* [ 0 ] */ - STACK_OF(X509_CRL) *crl; /* [ 1 ] */ + STACK_OF(X509) *cert; /* [ 0 ] */ /* name should be 'certificates' */ + STACK_OF(X509_CRL) *crl; /* [ 1 ] */ /* name should be 'crls' */ STACK_OF(PKCS7_SIGNER_INFO) *signer_info; PKCS7_ENC_CONTENT *enc_data; STACK_OF(PKCS7_RECIP_INFO) *recipientinfo; @@ -200,7 +203,7 @@ typedef struct pkcs7_st { /* NID_pkcs7_data */ ASN1_OCTET_STRING *data; /* NID_pkcs7_signed */ - PKCS7_SIGNED *sign; + PKCS7_SIGNED *sign; /* field name 'signed' would clash with C keyword */ /* NID_pkcs7_enveloped */ PKCS7_ENVELOPE *enveloped; /* NID_pkcs7_signedAndEnveloped */ @@ -341,13 +344,13 @@ int PKCS7_SIGNER_INFO_set(PKCS7_SIGNER_INFO *p7i, X509 *x509, EVP_PKEY *pkey, const EVP_MD *dgst); int PKCS7_SIGNER_INFO_sign(PKCS7_SIGNER_INFO *si); int PKCS7_add_signer(PKCS7 *p7, PKCS7_SIGNER_INFO *p7i); -int PKCS7_add_certificate(PKCS7 *p7, X509 *x509); -int PKCS7_add_crl(PKCS7 *p7, X509_CRL *x509); +int PKCS7_add_certificate(PKCS7 *p7, X509 *cert); +int PKCS7_add_crl(PKCS7 *p7, X509_CRL *crl); int PKCS7_content_new(PKCS7 *p7, int nid); int PKCS7_dataVerify(X509_STORE *cert_store, X509_STORE_CTX *ctx, BIO *bio, PKCS7 *p7, PKCS7_SIGNER_INFO *si); int PKCS7_signatureVerify(BIO *bio, PKCS7 *p7, PKCS7_SIGNER_INFO *si, - X509 *x509); + X509 *signer); BIO *PKCS7_dataInit(PKCS7 *p7, BIO *bio); int PKCS7_dataFinal(PKCS7 *p7, BIO *bio); diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/include/openssl/ssl.h b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/include/openssl/ssl.h index 3df725c56d6c5e..7e3d89c7ef3dc9 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/include/openssl/ssl.h +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/include/openssl/ssl.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/ssl.h.in * - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved * Copyright 2005 Nokia. All rights reserved. * @@ -24,6 +24,7 @@ # endif # include +# include # include # include # include @@ -42,6 +43,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -231,10 +235,8 @@ typedef struct ssl_cipher_st SSL_CIPHER; typedef struct ssl_session_st SSL_SESSION; typedef struct tls_sigalgs_st TLS_SIGALGS; typedef struct ssl_conf_ctx_st SSL_CONF_CTX; -typedef struct ssl_comp_st SSL_COMP; STACK_OF(SSL_CIPHER); -STACK_OF(SSL_COMP); /* SRTP protection profiles for use with the use_srtp extension (RFC 5764)*/ typedef struct srtp_protection_profile_st { @@ -278,28 +280,31 @@ typedef int (*tls_session_secret_cb_fn)(SSL *s, void *secret, int *secret_len, /* Extension context codes */ /* This extension is only allowed in TLS */ -#define SSL_EXT_TLS_ONLY 0x0001 +#define SSL_EXT_TLS_ONLY 0x00001 /* This extension is only allowed in DTLS */ -#define SSL_EXT_DTLS_ONLY 0x0002 +#define SSL_EXT_DTLS_ONLY 0x00002 /* Some extensions may be allowed in DTLS but we don't implement them for it */ -#define SSL_EXT_TLS_IMPLEMENTATION_ONLY 0x0004 +#define SSL_EXT_TLS_IMPLEMENTATION_ONLY 0x00004 /* Most extensions are not defined for SSLv3 but EXT_TYPE_renegotiate is */ -#define SSL_EXT_SSL3_ALLOWED 0x0008 +#define SSL_EXT_SSL3_ALLOWED 0x00008 /* Extension is only defined for TLS1.2 and below */ -#define SSL_EXT_TLS1_2_AND_BELOW_ONLY 0x0010 +#define SSL_EXT_TLS1_2_AND_BELOW_ONLY 0x00010 /* Extension is only defined for TLS1.3 and above */ -#define SSL_EXT_TLS1_3_ONLY 0x0020 +#define SSL_EXT_TLS1_3_ONLY 0x00020 /* Ignore this extension during parsing if we are resuming */ -#define SSL_EXT_IGNORE_ON_RESUMPTION 0x0040 -#define SSL_EXT_CLIENT_HELLO 0x0080 +#define SSL_EXT_IGNORE_ON_RESUMPTION 0x00040 +#define SSL_EXT_CLIENT_HELLO 0x00080 /* Really means TLS1.2 or below */ -#define SSL_EXT_TLS1_2_SERVER_HELLO 0x0100 -#define SSL_EXT_TLS1_3_SERVER_HELLO 0x0200 -#define SSL_EXT_TLS1_3_ENCRYPTED_EXTENSIONS 0x0400 -#define SSL_EXT_TLS1_3_HELLO_RETRY_REQUEST 0x0800 -#define SSL_EXT_TLS1_3_CERTIFICATE 0x1000 -#define SSL_EXT_TLS1_3_NEW_SESSION_TICKET 0x2000 -#define SSL_EXT_TLS1_3_CERTIFICATE_REQUEST 0x4000 +#define SSL_EXT_TLS1_2_SERVER_HELLO 0x00100 +#define SSL_EXT_TLS1_3_SERVER_HELLO 0x00200 +#define SSL_EXT_TLS1_3_ENCRYPTED_EXTENSIONS 0x00400 +#define SSL_EXT_TLS1_3_HELLO_RETRY_REQUEST 0x00800 +#define SSL_EXT_TLS1_3_CERTIFICATE 0x01000 +#define SSL_EXT_TLS1_3_NEW_SESSION_TICKET 0x02000 +#define SSL_EXT_TLS1_3_CERTIFICATE_REQUEST 0x04000 +#define SSL_EXT_TLS1_3_CERTIFICATE_COMPRESSION 0x08000 +/* When sending a raw public key in a certificate message */ +#define SSL_EXT_TLS1_3_RAW_PUBLIC_KEY 0x10000 /* Typedefs for handling custom extensions */ @@ -404,7 +409,7 @@ typedef int (*SSL_async_callback_fn)(SSL *s, void *arg); */ # define SSL_OP_CIPHER_SERVER_PREFERENCE SSL_OP_BIT(22) /* - * If set, a server will allow a client to issue a SSLv3.0 version + * If set, a server will allow a client to issue an SSLv3.0 version * number as latest version supported in the premaster secret, even when * TLSv1.0 (version 3.1) was announced in the client hello. Normally * this is forbidden to prevent version rollback attacks. @@ -430,6 +435,19 @@ typedef int (*SSL_async_callback_fn)(SSL *s, void *arg); * interoperability with CryptoPro CSP 3.x */ # define SSL_OP_CRYPTOPRO_TLSEXT_BUG SSL_OP_BIT(31) +/* + * Disable RFC8879 certificate compression + * SSL_OP_NO_TX_CERTIFICATE_COMPRESSION: don't send compressed certificates, + * and ignore the extension when received. + * SSL_OP_NO_RX_CERTIFICATE_COMPRESSION: don't send the extension, and + * subsequently indicating that receiving is not supported + */ +# define SSL_OP_NO_TX_CERTIFICATE_COMPRESSION SSL_OP_BIT(32) +# define SSL_OP_NO_RX_CERTIFICATE_COMPRESSION SSL_OP_BIT(33) + /* Enable KTLS TX zerocopy on Linux */ +# define SSL_OP_ENABLE_KTLS_TX_ZEROCOPY_SENDFILE SSL_OP_BIT(34) + +#define SSL_OP_PREFER_NO_DHE_KEX SSL_OP_BIT(35) /* * Option "collections." @@ -574,6 +592,8 @@ typedef int (*SSL_async_callback_fn)(SSL *s, void *arg); # define CERT_PKEY_CERT_TYPE 0x400 /* Cert chain suitable to Suite B */ # define CERT_PKEY_SUITEB 0x800 +/* Cert pkey valid for raw public key use */ +# define CERT_PKEY_RPK 0x1000 # define SSL_CONF_FLAG_CMDLINE 0x1 # define SSL_CONF_FLAG_FILE 0x2 @@ -965,6 +985,7 @@ uint32_t SSL_get_recv_max_early_data(const SSL *s); # include /* This is mostly sslv3 with a few tweaks */ # include /* Datagram TLS */ # include /* Support for the use_srtp extension */ +# include #ifdef __cplusplus extern "C" { @@ -1000,32 +1021,6 @@ SKM_DEFINE_STACK_OF_INTERNAL(SSL_CIPHER, const SSL_CIPHER, SSL_CIPHER) #define sk_SSL_CIPHER_dup(sk) ((STACK_OF(SSL_CIPHER) *)OPENSSL_sk_dup(ossl_check_const_SSL_CIPHER_sk_type(sk))) #define sk_SSL_CIPHER_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(SSL_CIPHER) *)OPENSSL_sk_deep_copy(ossl_check_const_SSL_CIPHER_sk_type(sk), ossl_check_SSL_CIPHER_copyfunc_type(copyfunc), ossl_check_SSL_CIPHER_freefunc_type(freefunc))) #define sk_SSL_CIPHER_set_cmp_func(sk, cmp) ((sk_SSL_CIPHER_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_SSL_CIPHER_sk_type(sk), ossl_check_SSL_CIPHER_compfunc_type(cmp))) -SKM_DEFINE_STACK_OF_INTERNAL(SSL_COMP, SSL_COMP, SSL_COMP) -#define sk_SSL_COMP_num(sk) OPENSSL_sk_num(ossl_check_const_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_value(sk, idx) ((SSL_COMP *)OPENSSL_sk_value(ossl_check_const_SSL_COMP_sk_type(sk), (idx))) -#define sk_SSL_COMP_new(cmp) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new(ossl_check_SSL_COMP_compfunc_type(cmp))) -#define sk_SSL_COMP_new_null() ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new_null()) -#define sk_SSL_COMP_new_reserve(cmp, n) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new_reserve(ossl_check_SSL_COMP_compfunc_type(cmp), (n))) -#define sk_SSL_COMP_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_SSL_COMP_sk_type(sk), (n)) -#define sk_SSL_COMP_free(sk) OPENSSL_sk_free(ossl_check_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_zero(sk) OPENSSL_sk_zero(ossl_check_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_delete(sk, i) ((SSL_COMP *)OPENSSL_sk_delete(ossl_check_SSL_COMP_sk_type(sk), (i))) -#define sk_SSL_COMP_delete_ptr(sk, ptr) ((SSL_COMP *)OPENSSL_sk_delete_ptr(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr))) -#define sk_SSL_COMP_push(sk, ptr) OPENSSL_sk_push(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) -#define sk_SSL_COMP_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) -#define sk_SSL_COMP_pop(sk) ((SSL_COMP *)OPENSSL_sk_pop(ossl_check_SSL_COMP_sk_type(sk))) -#define sk_SSL_COMP_shift(sk) ((SSL_COMP *)OPENSSL_sk_shift(ossl_check_SSL_COMP_sk_type(sk))) -#define sk_SSL_COMP_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_SSL_COMP_sk_type(sk),ossl_check_SSL_COMP_freefunc_type(freefunc)) -#define sk_SSL_COMP_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr), (idx)) -#define sk_SSL_COMP_set(sk, idx, ptr) ((SSL_COMP *)OPENSSL_sk_set(ossl_check_SSL_COMP_sk_type(sk), (idx), ossl_check_SSL_COMP_type(ptr))) -#define sk_SSL_COMP_find(sk, ptr) OPENSSL_sk_find(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) -#define sk_SSL_COMP_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) -#define sk_SSL_COMP_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr), pnum) -#define sk_SSL_COMP_sort(sk) OPENSSL_sk_sort(ossl_check_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_dup(sk) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_dup(ossl_check_const_SSL_COMP_sk_type(sk))) -#define sk_SSL_COMP_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_deep_copy(ossl_check_const_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_copyfunc_type(copyfunc), ossl_check_SSL_COMP_freefunc_type(freefunc))) -#define sk_SSL_COMP_set_cmp_func(sk, cmp) ((sk_SSL_COMP_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_compfunc_type(cmp))) /* compatibility */ @@ -1066,6 +1061,7 @@ typedef enum { DTLS_ST_CR_HELLO_VERIFY_REQUEST, TLS_ST_CR_SRVR_HELLO, TLS_ST_CR_CERT, + TLS_ST_CR_COMP_CERT, TLS_ST_CR_CERT_STATUS, TLS_ST_CR_KEY_EXCH, TLS_ST_CR_CERT_REQ, @@ -1075,6 +1071,7 @@ typedef enum { TLS_ST_CR_FINISHED, TLS_ST_CW_CLNT_HELLO, TLS_ST_CW_CERT, + TLS_ST_CW_COMP_CERT, TLS_ST_CW_KEY_EXCH, TLS_ST_CW_CERT_VRFY, TLS_ST_CW_CHANGE, @@ -1085,10 +1082,12 @@ typedef enum { DTLS_ST_SW_HELLO_VERIFY_REQUEST, TLS_ST_SW_SRVR_HELLO, TLS_ST_SW_CERT, + TLS_ST_SW_COMP_CERT, TLS_ST_SW_KEY_EXCH, TLS_ST_SW_CERT_REQ, TLS_ST_SW_SRVR_DONE, TLS_ST_SR_CERT, + TLS_ST_SR_COMP_CERT, TLS_ST_SR_KEY_EXCH, TLS_ST_SR_CERT_VRFY, TLS_ST_SR_NEXT_PROTO, @@ -1380,9 +1379,13 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) # define SSL_CTRL_GET_SIGNATURE_NID 132 # define SSL_CTRL_GET_TMP_KEY 133 # define SSL_CTRL_GET_NEGOTIATED_GROUP 134 +# define SSL_CTRL_GET_IANA_GROUPS 135 # define SSL_CTRL_SET_RETRY_VERIFY 136 # define SSL_CTRL_GET_VERIFY_CERT_STORE 137 # define SSL_CTRL_GET_CHAIN_CERT_STORE 138 +# define SSL_CTRL_GET0_IMPLEMENTED_GROUPS 139 +# define SSL_CTRL_GET_SIGNATURE_NAME 140 +# define SSL_CTRL_GET_PEER_SIGNATURE_NAME 141 # define SSL_CERT_SET_FIRST 1 # define SSL_CERT_SET_NEXT 2 # define SSL_CERT_SET_SERVER 3 @@ -1485,10 +1488,15 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) # define SSL_get1_groups(s, glist) \ SSL_ctrl(s,SSL_CTRL_GET_GROUPS,0,(int*)(glist)) +# define SSL_get0_iana_groups(s, plst) \ + SSL_ctrl(s,SSL_CTRL_GET_IANA_GROUPS,0,(uint16_t **)(plst)) # define SSL_CTX_set1_groups(ctx, glist, glistlen) \ SSL_CTX_ctrl(ctx,SSL_CTRL_SET_GROUPS,glistlen,(int *)(glist)) # define SSL_CTX_set1_groups_list(ctx, s) \ SSL_CTX_ctrl(ctx,SSL_CTRL_SET_GROUPS_LIST,0,(char *)(s)) +# define SSL_CTX_get0_implemented_groups(ctx, all, out) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_GET0_IMPLEMENTED_GROUPS, all, \ + (STACK_OF(OPENSSL_CSTRING) *)(out)) # define SSL_set1_groups(s, glist, glistlen) \ SSL_ctrl(s,SSL_CTRL_SET_GROUPS,glistlen,(char *)(glist)) # define SSL_set1_groups_list(s, str) \ @@ -1520,8 +1528,12 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) (char *)(clist)) # define SSL_set1_client_certificate_types(s, clist, clistlen) \ SSL_ctrl(s,SSL_CTRL_SET_CLIENT_CERT_TYPES,clistlen,(char *)(clist)) +# define SSL_get0_signature_name(s, str) \ + SSL_ctrl(s,SSL_CTRL_GET_SIGNATURE_NAME,0,(1?(str):(const char **)NULL)) # define SSL_get_signature_nid(s, pn) \ SSL_ctrl(s,SSL_CTRL_GET_SIGNATURE_NID,0,pn) +# define SSL_get0_peer_signature_name(s, str) \ + SSL_ctrl(s,SSL_CTRL_GET_PEER_SIGNATURE_NAME,0,(1?(str):(const char **)NULL)) # define SSL_get_peer_signature_nid(s, pn) \ SSL_ctrl(s,SSL_CTRL_GET_PEER_SIGNATURE_NID,0,pn) # define SSL_get_peer_tmp_key(s, pk) \ @@ -1549,6 +1561,7 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) # define SSL_get_max_proto_version(s) \ SSL_ctrl(s, SSL_CTRL_GET_MAX_PROTO_VERSION, 0, NULL) +const char *SSL_get0_group_name(SSL *s); const char *SSL_group_to_name(SSL *s, int id); /* Backwards compatibility, original 1.1.0 names */ @@ -1613,7 +1626,11 @@ void SSL_CTX_set1_cert_store(SSL_CTX *, X509_STORE *); __owur int SSL_want(const SSL *s); __owur int SSL_clear(SSL *s); +#ifndef OPENSSL_NO_DEPRECATED_3_4 +OSSL_DEPRECATEDIN_3_4_FOR("not Y2038-safe, replace with SSL_CTX_flush_sessions_ex()") void SSL_CTX_flush_sessions(SSL_CTX *ctx, long tm); +#endif +void SSL_CTX_flush_sessions_ex(SSL_CTX *ctx, time_t tm); __owur const SSL_CIPHER *SSL_get_current_cipher(const SSL *s); __owur const SSL_CIPHER *SSL_get_pending_cipher(const SSL *s); @@ -1725,13 +1742,21 @@ __owur const char *SSL_state_string(const SSL *s); __owur const char *SSL_rstate_string(const SSL *s); __owur const char *SSL_state_string_long(const SSL *s); __owur const char *SSL_rstate_string_long(const SSL *s); + +#ifndef OPENSSL_NO_DEPRECATED_3_4 +OSSL_DEPRECATEDIN_3_4_FOR("not Y2038-safe, replace with SSL_SESSION_get_time_ex()") __owur long SSL_SESSION_get_time(const SSL_SESSION *s); +OSSL_DEPRECATEDIN_3_4_FOR("not Y2038-safe, replace with SSL_SESSION_set_time_ex()") __owur long SSL_SESSION_set_time(SSL_SESSION *s, long t); +#endif __owur long SSL_SESSION_get_timeout(const SSL_SESSION *s); __owur long SSL_SESSION_set_timeout(SSL_SESSION *s, long t); __owur int SSL_SESSION_get_protocol_version(const SSL_SESSION *s); __owur int SSL_SESSION_set_protocol_version(SSL_SESSION *s, int version); +__owur time_t SSL_SESSION_get_time_ex(const SSL_SESSION *s); +__owur time_t SSL_SESSION_set_time_ex(SSL_SESSION *s, time_t t); + __owur const char *SSL_SESSION_get0_hostname(const SSL_SESSION *s); __owur int SSL_SESSION_set1_hostname(SSL_SESSION *s, const char *hostname); void SSL_SESSION_get0_alpn_selected(const SSL_SESSION *s, @@ -1783,6 +1808,9 @@ __owur int SSL_has_matching_session_id(const SSL *s, unsigned int id_len); SSL_SESSION *d2i_SSL_SESSION(SSL_SESSION **a, const unsigned char **pp, long length); +SSL_SESSION *d2i_SSL_SESSION_ex(SSL_SESSION **a, const unsigned char **pp, + long length, OSSL_LIB_CTX *libctx, + const char *propq); # ifdef OPENSSL_X509_H __owur X509 *SSL_get0_peer_certificate(const SSL *s); @@ -1840,6 +1868,8 @@ __owur int SSL_CTX_set_session_id_context(SSL_CTX *ctx, SSL *SSL_new(SSL_CTX *ctx); int SSL_up_ref(SSL *s); int SSL_is_dtls(const SSL *s); +int SSL_is_tls(const SSL *s); +int SSL_is_quic(const SSL *s); __owur int SSL_set_session_id_context(SSL *ssl, const unsigned char *sid_ctx, unsigned int sid_ctx_len); @@ -1848,8 +1878,8 @@ __owur int SSL_set_purpose(SSL *ssl, int purpose); __owur int SSL_CTX_set_trust(SSL_CTX *ctx, int trust); __owur int SSL_set_trust(SSL *ssl, int trust); -__owur int SSL_set1_host(SSL *s, const char *hostname); -__owur int SSL_add1_host(SSL *s, const char *hostname); +__owur int SSL_set1_host(SSL *s, const char *host); +__owur int SSL_add1_host(SSL *s, const char *host); __owur const char *SSL_get0_peername(SSL *s); void SSL_set_hostflags(SSL *s, unsigned int flags); @@ -1924,6 +1954,11 @@ OSSL_DEPRECATEDIN_3_0 __owur char *SSL_get_srp_userinfo(SSL *s); typedef int (*SSL_client_hello_cb_fn) (SSL *s, int *al, void *arg); void SSL_CTX_set_client_hello_cb(SSL_CTX *c, SSL_client_hello_cb_fn cb, void *arg); +typedef int (*SSL_new_pending_conn_cb_fn) (SSL_CTX *ctx, SSL *new_ssl, + void *arg); +void SSL_CTX_set_new_pending_conn_cb(SSL_CTX *c, SSL_new_pending_conn_cb_fn cb, + void *arg); + int SSL_client_hello_isv2(SSL *s); unsigned int SSL_client_hello_get0_legacy_version(SSL *s); size_t SSL_client_hello_get0_random(SSL *s, const unsigned char **out); @@ -1932,6 +1967,8 @@ size_t SSL_client_hello_get0_ciphers(SSL *s, const unsigned char **out); size_t SSL_client_hello_get0_compression_methods(SSL *s, const unsigned char **out); int SSL_client_hello_get1_extensions_present(SSL *s, int **out, size_t *outlen); +int SSL_client_hello_get_extension_order(SSL *s, uint16_t *exts, + size_t *num_exts); int SSL_client_hello_get0_ext(SSL *s, unsigned int type, const unsigned char **out, size_t *outlen); @@ -1978,6 +2015,12 @@ long SSL_callback_ctrl(SSL *, int, void (*)(void)); long SSL_CTX_ctrl(SSL_CTX *ctx, int cmd, long larg, void *parg); long SSL_CTX_callback_ctrl(SSL_CTX *, int, void (*)(void)); +# define SSL_WRITE_FLAG_CONCLUDE (1U << 0) + +__owur int SSL_write_ex2(SSL *s, const void *buf, size_t num, + uint64_t flags, + size_t *written); + # define SSL_EARLY_DATA_NOT_SENT 0 # define SSL_EARLY_DATA_REJECTED 1 # define SSL_EARLY_DATA_ACCEPTED 2 @@ -1986,6 +2029,7 @@ __owur int SSL_get_early_data_status(const SSL *s); __owur int SSL_get_error(const SSL *s, int ret_code); __owur const char *SSL_get_version(const SSL *s); +__owur int SSL_get_handshake_rtt(const SSL *s, uint64_t *rtt); /* This sets the 'default' SSL version that SSL_new() will create */ # ifndef OPENSSL_NO_DEPRECATED_3_0 @@ -2281,6 +2325,8 @@ void SSL_CTX_set_record_padding_callback(SSL_CTX *ctx, void SSL_CTX_set_record_padding_callback_arg(SSL_CTX *ctx, void *arg); void *SSL_CTX_get_record_padding_callback_arg(const SSL_CTX *ctx); int SSL_CTX_set_block_padding(SSL_CTX *ctx, size_t block_size); +int SSL_CTX_set_block_padding_ex(SSL_CTX *ctx, size_t app_block_size, + size_t hs_block_size); int SSL_set_record_padding_callback(SSL *ssl, size_t (*cb) (SSL *ssl, int type, @@ -2288,12 +2334,255 @@ int SSL_set_record_padding_callback(SSL *ssl, void SSL_set_record_padding_callback_arg(SSL *ssl, void *arg); void *SSL_get_record_padding_callback_arg(const SSL *ssl); int SSL_set_block_padding(SSL *ssl, size_t block_size); - +int SSL_set_block_padding_ex(SSL *ssl, size_t app_block_size, + size_t hs_block_size); int SSL_set_num_tickets(SSL *s, size_t num_tickets); size_t SSL_get_num_tickets(const SSL *s); int SSL_CTX_set_num_tickets(SSL_CTX *ctx, size_t num_tickets); size_t SSL_CTX_get_num_tickets(const SSL_CTX *ctx); +/* QUIC support */ +int SSL_handle_events(SSL *s); +__owur int SSL_get_event_timeout(SSL *s, struct timeval *tv, int *is_infinite); +__owur int SSL_get_rpoll_descriptor(SSL *s, BIO_POLL_DESCRIPTOR *desc); +__owur int SSL_get_wpoll_descriptor(SSL *s, BIO_POLL_DESCRIPTOR *desc); +__owur int SSL_net_read_desired(SSL *s); +__owur int SSL_net_write_desired(SSL *s); +__owur int SSL_set_blocking_mode(SSL *s, int blocking); +__owur int SSL_get_blocking_mode(SSL *s); +__owur int SSL_set1_initial_peer_addr(SSL *s, const BIO_ADDR *peer_addr); +__owur SSL *SSL_get0_connection(SSL *s); +__owur int SSL_is_connection(SSL *s); + +__owur int SSL_is_listener(SSL *ssl); +__owur SSL *SSL_get0_listener(SSL *s); +#define SSL_LISTENER_FLAG_NO_VALIDATE (1UL << 1) +__owur SSL *SSL_new_listener(SSL_CTX *ctx, uint64_t flags); +__owur SSL *SSL_new_listener_from(SSL *ssl, uint64_t flags); +__owur SSL *SSL_new_from_listener(SSL *ssl, uint64_t flags); +#define SSL_ACCEPT_CONNECTION_NO_BLOCK (1UL << 0) +__owur SSL *SSL_accept_connection(SSL *ssl, uint64_t flags); +__owur size_t SSL_get_accept_connection_queue_len(SSL *ssl); +__owur int SSL_listen(SSL *ssl); + +__owur int SSL_is_domain(SSL *s); +__owur SSL *SSL_get0_domain(SSL *s); +__owur SSL *SSL_new_domain(SSL_CTX *ctx, uint64_t flags); + +#define SSL_DOMAIN_FLAG_SINGLE_THREAD (1U << 0) +#define SSL_DOMAIN_FLAG_MULTI_THREAD (1U << 1) +#define SSL_DOMAIN_FLAG_THREAD_ASSISTED (1U << 2) +#define SSL_DOMAIN_FLAG_BLOCKING (1U << 3) +#define SSL_DOMAIN_FLAG_LEGACY_BLOCKING (1U << 4) + +__owur int SSL_CTX_set_domain_flags(SSL_CTX *ctx, uint64_t domain_flags); +__owur int SSL_CTX_get_domain_flags(const SSL_CTX *ctx, uint64_t *domain_flags); +__owur int SSL_get_domain_flags(const SSL *ssl, uint64_t *domain_flags); + +#define SSL_STREAM_TYPE_NONE 0 +#define SSL_STREAM_TYPE_READ (1U << 0) +#define SSL_STREAM_TYPE_WRITE (1U << 1) +#define SSL_STREAM_TYPE_BIDI (SSL_STREAM_TYPE_READ | SSL_STREAM_TYPE_WRITE) +__owur int SSL_get_stream_type(SSL *s); + +__owur uint64_t SSL_get_stream_id(SSL *s); +__owur int SSL_is_stream_local(SSL *s); + +#define SSL_DEFAULT_STREAM_MODE_NONE 0 +#define SSL_DEFAULT_STREAM_MODE_AUTO_BIDI 1 +#define SSL_DEFAULT_STREAM_MODE_AUTO_UNI 2 +__owur int SSL_set_default_stream_mode(SSL *s, uint32_t mode); + +#define SSL_STREAM_FLAG_UNI (1U << 0) +#define SSL_STREAM_FLAG_NO_BLOCK (1U << 1) +#define SSL_STREAM_FLAG_ADVANCE (1U << 2) +__owur SSL *SSL_new_stream(SSL *s, uint64_t flags); + +#define SSL_INCOMING_STREAM_POLICY_AUTO 0 +#define SSL_INCOMING_STREAM_POLICY_ACCEPT 1 +#define SSL_INCOMING_STREAM_POLICY_REJECT 2 +__owur int SSL_set_incoming_stream_policy(SSL *s, int policy, uint64_t aec); + +#define SSL_ACCEPT_STREAM_NO_BLOCK (1U << 0) +__owur SSL *SSL_accept_stream(SSL *s, uint64_t flags); +__owur size_t SSL_get_accept_stream_queue_len(SSL *s); + +# ifndef OPENSSL_NO_QUIC +__owur int SSL_inject_net_dgram(SSL *s, const unsigned char *buf, + size_t buf_len, + const BIO_ADDR *peer, + const BIO_ADDR *local); +# endif + +typedef struct ssl_shutdown_ex_args_st { + uint64_t quic_error_code; + const char *quic_reason; +} SSL_SHUTDOWN_EX_ARGS; + +#define SSL_SHUTDOWN_FLAG_RAPID (1U << 0) +#define SSL_SHUTDOWN_FLAG_NO_STREAM_FLUSH (1U << 1) +#define SSL_SHUTDOWN_FLAG_NO_BLOCK (1U << 2) +#define SSL_SHUTDOWN_FLAG_WAIT_PEER (1U << 3) + +__owur int SSL_shutdown_ex(SSL *ssl, uint64_t flags, + const SSL_SHUTDOWN_EX_ARGS *args, + size_t args_len); + +__owur int SSL_stream_conclude(SSL *ssl, uint64_t flags); + +typedef struct ssl_stream_reset_args_st { + uint64_t quic_error_code; +} SSL_STREAM_RESET_ARGS; + +__owur int SSL_stream_reset(SSL *ssl, + const SSL_STREAM_RESET_ARGS *args, + size_t args_len); + +#define SSL_STREAM_STATE_NONE 0 +#define SSL_STREAM_STATE_OK 1 +#define SSL_STREAM_STATE_WRONG_DIR 2 +#define SSL_STREAM_STATE_FINISHED 3 +#define SSL_STREAM_STATE_RESET_LOCAL 4 +#define SSL_STREAM_STATE_RESET_REMOTE 5 +#define SSL_STREAM_STATE_CONN_CLOSED 6 +__owur int SSL_get_stream_read_state(SSL *ssl); +__owur int SSL_get_stream_write_state(SSL *ssl); + +__owur int SSL_get_stream_read_error_code(SSL *ssl, uint64_t *app_error_code); +__owur int SSL_get_stream_write_error_code(SSL *ssl, uint64_t *app_error_code); + +#define SSL_CONN_CLOSE_FLAG_LOCAL (1U << 0) +#define SSL_CONN_CLOSE_FLAG_TRANSPORT (1U << 1) + +typedef struct ssl_conn_close_info_st { + uint64_t error_code, frame_type; + const char *reason; + size_t reason_len; + uint32_t flags; +} SSL_CONN_CLOSE_INFO; + +__owur int SSL_get_conn_close_info(SSL *ssl, + SSL_CONN_CLOSE_INFO *info, + size_t info_len); + +# define SSL_VALUE_CLASS_GENERIC 0 +# define SSL_VALUE_CLASS_FEATURE_REQUEST 1 +# define SSL_VALUE_CLASS_FEATURE_PEER_REQUEST 2 +# define SSL_VALUE_CLASS_FEATURE_NEGOTIATED 3 + +# define SSL_VALUE_NONE 0 +# define SSL_VALUE_QUIC_STREAM_BIDI_LOCAL_AVAIL 1 +# define SSL_VALUE_QUIC_STREAM_BIDI_REMOTE_AVAIL 2 +# define SSL_VALUE_QUIC_STREAM_UNI_LOCAL_AVAIL 3 +# define SSL_VALUE_QUIC_STREAM_UNI_REMOTE_AVAIL 4 +# define SSL_VALUE_QUIC_IDLE_TIMEOUT 5 +# define SSL_VALUE_EVENT_HANDLING_MODE 6 +# define SSL_VALUE_STREAM_WRITE_BUF_SIZE 7 +# define SSL_VALUE_STREAM_WRITE_BUF_USED 8 +# define SSL_VALUE_STREAM_WRITE_BUF_AVAIL 9 + +# define SSL_VALUE_EVENT_HANDLING_MODE_INHERIT 0 +# define SSL_VALUE_EVENT_HANDLING_MODE_IMPLICIT 1 +# define SSL_VALUE_EVENT_HANDLING_MODE_EXPLICIT 2 + +int SSL_get_value_uint(SSL *s, uint32_t class_, uint32_t id, uint64_t *v); +int SSL_set_value_uint(SSL *s, uint32_t class_, uint32_t id, uint64_t v); + +# define SSL_get_generic_value_uint(ssl, id, v) \ + SSL_get_value_uint((ssl), SSL_VALUE_CLASS_GENERIC, (id), (v)) +# define SSL_set_generic_value_uint(ssl, id, v) \ + SSL_set_value_uint((ssl), SSL_VALUE_CLASS_GENERIC, (id), (v)) +# define SSL_get_feature_request_uint(ssl, id, v) \ + SSL_get_value_uint((ssl), SSL_VALUE_CLASS_FEATURE_REQUEST, (id), (v)) +# define SSL_set_feature_request_uint(ssl, id, v) \ + SSL_set_value_uint((ssl), SSL_VALUE_CLASS_FEATURE_REQUEST, (id), (v)) +# define SSL_get_feature_peer_request_uint(ssl, id, v) \ + SSL_get_value_uint((ssl), SSL_VALUE_CLASS_FEATURE_PEER_REQUEST, (id), (v)) +# define SSL_get_feature_negotiated_uint(ssl, id, v) \ + SSL_get_value_uint((ssl), SSL_VALUE_CLASS_FEATURE_NEGOTIATED, (id), (v)) + +# define SSL_get_quic_stream_bidi_local_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_QUIC_STREAM_BIDI_LOCAL_AVAIL, \ + (value)) +# define SSL_get_quic_stream_bidi_remote_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_QUIC_STREAM_BIDI_REMOTE_AVAIL, \ + (value)) +# define SSL_get_quic_stream_uni_local_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_QUIC_STREAM_UNI_LOCAL_AVAIL, \ + (value)) +# define SSL_get_quic_stream_uni_remote_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_QUIC_STREAM_UNI_REMOTE_AVAIL, \ + (value)) + +# define SSL_get_event_handling_mode(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_EVENT_HANDLING_MODE, \ + (value)) +# define SSL_set_event_handling_mode(ssl, value) \ + SSL_set_generic_value_uint((ssl), SSL_VALUE_EVENT_HANDLING_MODE, \ + (value)) + +# define SSL_get_stream_write_buf_size(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_STREAM_WRITE_BUF_SIZE, \ + (value)) +# define SSL_get_stream_write_buf_used(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_STREAM_WRITE_BUF_USED, \ + (value)) +# define SSL_get_stream_write_buf_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_STREAM_WRITE_BUF_AVAIL, \ + (value)) + +# define SSL_POLL_EVENT_NONE 0 + +# define SSL_POLL_EVENT_F (1U << 0) /* F (Failure) */ +# define SSL_POLL_EVENT_EL (1U << 1) /* EL (Exception on Listener) */ +# define SSL_POLL_EVENT_EC (1U << 2) /* EC (Exception on Conn) */ +# define SSL_POLL_EVENT_ECD (1U << 3) /* ECD (Exception on Conn Drained) */ +# define SSL_POLL_EVENT_ER (1U << 4) /* ER (Exception on Read) */ +# define SSL_POLL_EVENT_EW (1U << 5) /* EW (Exception on Write) */ +# define SSL_POLL_EVENT_R (1U << 6) /* R (Readable) */ +# define SSL_POLL_EVENT_W (1U << 7) /* W (Writable) */ +# define SSL_POLL_EVENT_IC (1U << 8) /* IC (Incoming Connection) */ +# define SSL_POLL_EVENT_ISB (1U << 9) /* ISB (Incoming Stream: Bidi) */ +# define SSL_POLL_EVENT_ISU (1U << 10) /* ISU (Incoming Stream: Uni) */ +# define SSL_POLL_EVENT_OSB (1U << 11) /* OSB (Outgoing Stream: Bidi) */ +# define SSL_POLL_EVENT_OSU (1U << 12) /* OSU (Outgoing Stream: Uni) */ + +# define SSL_POLL_EVENT_RW (SSL_POLL_EVENT_R | SSL_POLL_EVENT_W) +# define SSL_POLL_EVENT_RE (SSL_POLL_EVENT_R | SSL_POLL_EVENT_ER) +# define SSL_POLL_EVENT_WE (SSL_POLL_EVENT_W | SSL_POLL_EVENT_EW) +# define SSL_POLL_EVENT_RWE (SSL_POLL_EVENT_RE | SSL_POLL_EVENT_WE) +# define SSL_POLL_EVENT_E (SSL_POLL_EVENT_EL | SSL_POLL_EVENT_EC \ + | SSL_POLL_EVENT_ER | SSL_POLL_EVENT_EW) +# define SSL_POLL_EVENT_IS (SSL_POLL_EVENT_ISB | SSL_POLL_EVENT_ISU) +# define SSL_POLL_EVENT_ISE (SSL_POLL_EVENT_IS | SSL_POLL_EVENT_EC) +# define SSL_POLL_EVENT_I (SSL_POLL_EVENT_IS | SSL_POLL_EVENT_IC) +# define SSL_POLL_EVENT_OS (SSL_POLL_EVENT_OSB | SSL_POLL_EVENT_OSU) +# define SSL_POLL_EVENT_OSE (SSL_POLL_EVENT_OS | SSL_POLL_EVENT_EC) + +typedef struct ssl_poll_item_st { + BIO_POLL_DESCRIPTOR desc; + uint64_t events, revents; +} SSL_POLL_ITEM; + +# define SSL_POLL_FLAG_NO_HANDLE_EVENTS (1U << 0) + +__owur int SSL_poll(SSL_POLL_ITEM *items, + size_t num_items, + size_t stride, + const struct timeval *timeout, + uint64_t flags, + size_t *result_count); + +static ossl_inline ossl_unused BIO_POLL_DESCRIPTOR +SSL_as_poll_descriptor(SSL *s) +{ + BIO_POLL_DESCRIPTOR d; + + d.type = BIO_POLL_DESCRIPTOR_TYPE_SSL; + d.value.ssl = s; + return d; +} + # ifndef OPENSSL_NO_DEPRECATED_1_1_0 # define SSL_cache_hit(s) SSL_session_reused(s) # endif @@ -2593,6 +2882,51 @@ void SSL_set_allow_early_data_cb(SSL *s, const char *OSSL_default_cipher_list(void); const char *OSSL_default_ciphersuites(void); +/* RFC8879 Certificate compression APIs */ + +int SSL_CTX_compress_certs(SSL_CTX *ctx, int alg); +int SSL_compress_certs(SSL *ssl, int alg); + +int SSL_CTX_set1_cert_comp_preference(SSL_CTX *ctx, int *algs, size_t len); +int SSL_set1_cert_comp_preference(SSL *ssl, int *algs, size_t len); + +int SSL_CTX_set1_compressed_cert(SSL_CTX *ctx, int algorithm, unsigned char *comp_data, + size_t comp_length, size_t orig_length); +int SSL_set1_compressed_cert(SSL *ssl, int algorithm, unsigned char *comp_data, + size_t comp_length, size_t orig_length); +size_t SSL_CTX_get1_compressed_cert(SSL_CTX *ctx, int alg, unsigned char **data, size_t *orig_len); +size_t SSL_get1_compressed_cert(SSL *ssl, int alg, unsigned char **data, size_t *orig_len); + +__owur int SSL_add_expected_rpk(SSL *s, EVP_PKEY *rpk); +__owur EVP_PKEY *SSL_get0_peer_rpk(const SSL *s); +__owur EVP_PKEY *SSL_SESSION_get0_peer_rpk(SSL_SESSION *s); +__owur int SSL_get_negotiated_client_cert_type(const SSL *s); +__owur int SSL_get_negotiated_server_cert_type(const SSL *s); + +__owur int SSL_set1_client_cert_type(SSL *s, const unsigned char *val, size_t len); +__owur int SSL_set1_server_cert_type(SSL *s, const unsigned char *val, size_t len); +__owur int SSL_CTX_set1_client_cert_type(SSL_CTX *ctx, const unsigned char *val, size_t len); +__owur int SSL_CTX_set1_server_cert_type(SSL_CTX *ctx, const unsigned char *val, size_t len); +__owur int SSL_get0_client_cert_type(const SSL *s, unsigned char **t, size_t *len); +__owur int SSL_get0_server_cert_type(const SSL *s, unsigned char **t, size_t *len); +__owur int SSL_CTX_get0_client_cert_type(const SSL_CTX *ctx, unsigned char **t, size_t *len); +__owur int SSL_CTX_get0_server_cert_type(const SSL_CTX *s, unsigned char **t, size_t *len); + +/* + * Protection level. For <= TLSv1.2 only "NONE" and "APPLICATION" are used. + */ +# define OSSL_RECORD_PROTECTION_LEVEL_NONE 0 +# define OSSL_RECORD_PROTECTION_LEVEL_EARLY 1 +# define OSSL_RECORD_PROTECTION_LEVEL_HANDSHAKE 2 +# define OSSL_RECORD_PROTECTION_LEVEL_APPLICATION 3 + +int SSL_set_quic_tls_cbs(SSL *s, const OSSL_DISPATCH *qtdis, void *arg); +int SSL_set_quic_tls_transport_params(SSL *s, + const unsigned char *params, + size_t params_len); + +int SSL_set_quic_tls_early_data_enabled(SSL *s, int enabled); + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/include/openssl/x509.h b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/include/openssl/x509.h index 1f7755e5b69c75..d013458c226461 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/include/openssl/x509.h +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/include/openssl/x509.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/x509.h.in * - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2024 The OpenSSL Project Authors. All Rights Reserved. * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved * * Licensed under the Apache License 2.0 (the "License"). You may not use @@ -40,6 +40,9 @@ # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -162,16 +165,24 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_CRL, X509_CRL, X509_CRL) # define X509_FILETYPE_ASN1 2 # define X509_FILETYPE_DEFAULT 3 -# define X509v3_KU_DIGITAL_SIGNATURE 0x0080 -# define X509v3_KU_NON_REPUDIATION 0x0040 -# define X509v3_KU_KEY_ENCIPHERMENT 0x0020 -# define X509v3_KU_DATA_ENCIPHERMENT 0x0010 -# define X509v3_KU_KEY_AGREEMENT 0x0008 -# define X509v3_KU_KEY_CERT_SIGN 0x0004 -# define X509v3_KU_CRL_SIGN 0x0002 -# define X509v3_KU_ENCIPHER_ONLY 0x0001 -# define X509v3_KU_DECIPHER_ONLY 0x8000 -# define X509v3_KU_UNDEF 0xffff +/*- + * : + * The KeyUsage BITSTRING is treated as a little-endian integer, hence bit `0` + * is 0x80, while bit `7` is 0x01 (the LSB of the integer value), bit `8` is + * then the MSB of the second octet, or 0x8000. + */ +# define X509v3_KU_DIGITAL_SIGNATURE 0x0080 /* (0) */ +# define X509v3_KU_NON_REPUDIATION 0x0040 /* (1) */ +# define X509v3_KU_KEY_ENCIPHERMENT 0x0020 /* (2) */ +# define X509v3_KU_DATA_ENCIPHERMENT 0x0010 /* (3) */ +# define X509v3_KU_KEY_AGREEMENT 0x0008 /* (4) */ +# define X509v3_KU_KEY_CERT_SIGN 0x0004 /* (5) */ +# define X509v3_KU_CRL_SIGN 0x0002 /* (6) */ +# define X509v3_KU_ENCIPHER_ONLY 0x0001 /* (7) */ +# define X509v3_KU_DECIPHER_ONLY 0x8000 /* (8) */ +# ifndef OPENSSL_NO_DEPRECATED_3_4 +# define X509v3_KU_UNDEF 0xffff /* vestigial, not used */ +# endif struct X509_algor_st { ASN1_OBJECT *algorithm; @@ -462,7 +473,12 @@ typedef struct PBKDF2PARAM_st { X509_ALGOR *prf; } PBKDF2PARAM; -#ifndef OPENSSL_NO_SCRYPT +typedef struct { + X509_ALGOR *keyDerivationFunc; + X509_ALGOR *messageAuthScheme; +} PBMAC1PARAM; + +# ifndef OPENSSL_NO_SCRYPT typedef struct SCRYPT_PARAMS_st { ASN1_OCTET_STRING *salt; ASN1_INTEGER *costParameter; @@ -470,7 +486,7 @@ typedef struct SCRYPT_PARAMS_st { ASN1_INTEGER *parallelizationParameter; ASN1_INTEGER *keyLength; } SCRYPT_PARAMS; -#endif +# endif #ifdef __cplusplus } @@ -603,6 +619,8 @@ EVP_PKEY *d2i_PrivateKey_ex_fp(FILE *fp, EVP_PKEY **a, OSSL_LIB_CTX *libctx, const char *propq); EVP_PKEY *d2i_PrivateKey_fp(FILE *fp, EVP_PKEY **a); int i2d_PUBKEY_fp(FILE *fp, const EVP_PKEY *pkey); +EVP_PKEY *d2i_PUBKEY_ex_fp(FILE *fp, EVP_PKEY **a, OSSL_LIB_CTX *libctx, + const char *propq); EVP_PKEY *d2i_PUBKEY_fp(FILE *fp, EVP_PKEY **a); # endif @@ -651,6 +669,8 @@ EVP_PKEY *d2i_PrivateKey_ex_bio(BIO *bp, EVP_PKEY **a, OSSL_LIB_CTX *libctx, const char *propq); EVP_PKEY *d2i_PrivateKey_bio(BIO *bp, EVP_PKEY **a); int i2d_PUBKEY_bio(BIO *bp, const EVP_PKEY *pkey); +EVP_PKEY *d2i_PUBKEY_ex_bio(BIO *bp, EVP_PKEY **a, OSSL_LIB_CTX *libctx, + const char *propq); EVP_PKEY *d2i_PUBKEY_bio(BIO *bp, EVP_PKEY **a); DECLARE_ASN1_DUP_FUNCTION(X509) @@ -884,12 +904,12 @@ int X509_REQ_get_signature_nid(const X509_REQ *req); int i2d_re_X509_REQ_tbs(X509_REQ *req, unsigned char **pp); int X509_REQ_set_pubkey(X509_REQ *x, EVP_PKEY *pkey); EVP_PKEY *X509_REQ_get_pubkey(X509_REQ *req); -EVP_PKEY *X509_REQ_get0_pubkey(X509_REQ *req); +EVP_PKEY *X509_REQ_get0_pubkey(const X509_REQ *req); X509_PUBKEY *X509_REQ_get_X509_PUBKEY(X509_REQ *req); int X509_REQ_extension_nid(int nid); int *X509_REQ_get_extension_nids(void); void X509_REQ_set_extension_nids(int *nids); -STACK_OF(X509_EXTENSION) *X509_REQ_get_extensions(X509_REQ *req); +STACK_OF(X509_EXTENSION) *X509_REQ_get_extensions(OSSL_FUTURE_CONST X509_REQ *req); int X509_REQ_add_extensions_nid(X509_REQ *req, const STACK_OF(X509_EXTENSION) *exts, int nid); int X509_REQ_add_extensions(X509_REQ *req, const STACK_OF(X509_EXTENSION) *ext); @@ -950,13 +970,14 @@ X509_REVOKED_get0_extensions(const X509_REVOKED *r); X509_CRL *X509_CRL_diff(X509_CRL *base, X509_CRL *newer, EVP_PKEY *skey, const EVP_MD *md, unsigned int flags); -int X509_REQ_check_private_key(X509_REQ *x509, EVP_PKEY *pkey); +int X509_REQ_check_private_key(const X509_REQ *req, EVP_PKEY *pkey); -int X509_check_private_key(const X509 *x509, const EVP_PKEY *pkey); +int X509_check_private_key(const X509 *cert, const EVP_PKEY *pkey); int X509_chain_check_suiteb(int *perror_depth, X509 *x, STACK_OF(X509) *chain, unsigned long flags); int X509_CRL_check_suiteb(X509_CRL *crl, EVP_PKEY *pk, unsigned long flags); +void OSSL_STACK_OF_X509_free(STACK_OF(X509) *certs); STACK_OF(X509) *X509_chain_up_ref(STACK_OF(X509) *chain); int X509_issuer_and_serial_cmp(const X509 *a, const X509 *b); @@ -1077,6 +1098,8 @@ X509_EXTENSION *X509v3_get_ext(const STACK_OF(X509_EXTENSION) *x, int loc); X509_EXTENSION *X509v3_delete_ext(STACK_OF(X509_EXTENSION) *x, int loc); STACK_OF(X509_EXTENSION) *X509v3_add_ext(STACK_OF(X509_EXTENSION) **x, X509_EXTENSION *ex, int loc); +STACK_OF(X509_EXTENSION) *X509v3_add_extensions(STACK_OF(X509_EXTENSION) **target, + const STACK_OF(X509_EXTENSION) *exts); int X509_get_ext_count(const X509 *x); int X509_get_ext_by_NID(const X509 *x, int nid, int lastpos); @@ -1198,9 +1221,10 @@ X509 *X509_find_by_subject(STACK_OF(X509) *sk, const X509_NAME *name); DECLARE_ASN1_FUNCTIONS(PBEPARAM) DECLARE_ASN1_FUNCTIONS(PBE2PARAM) DECLARE_ASN1_FUNCTIONS(PBKDF2PARAM) -#ifndef OPENSSL_NO_SCRYPT +DECLARE_ASN1_FUNCTIONS(PBMAC1PARAM) +# ifndef OPENSSL_NO_SCRYPT DECLARE_ASN1_FUNCTIONS(SCRYPT_PARAMS) -#endif +# endif int PKCS5_pbe_set0_algor(X509_ALGOR *algor, int alg, int iter, const unsigned char *salt, int saltlen); @@ -1237,6 +1261,7 @@ X509_ALGOR *PKCS5_pbkdf2_set_ex(int iter, unsigned char *salt, int saltlen, int prf_nid, int keylen, OSSL_LIB_CTX *libctx); +PBKDF2PARAM *PBMAC1_get1_pbkdf2_param(const X509_ALGOR *macalg); /* PKCS#8 utilities */ DECLARE_ASN1_FUNCTIONS(PKCS8_PRIV_KEY_INFO) @@ -1262,6 +1287,8 @@ int PKCS8_pkey_add1_attr_by_OBJ(PKCS8_PRIV_KEY_INFO *p8, const ASN1_OBJECT *obj, int type, const unsigned char *bytes, int len); +void X509_PUBKEY_set0_public_key(X509_PUBKEY *pub, + unsigned char *penc, int penclen); int X509_PUBKEY_set0_param(X509_PUBKEY *pub, ASN1_OBJECT *aobj, int ptype, void *pval, unsigned char *penc, int penclen); diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/include/openssl/x509_acert.h b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/include/openssl/x509_acert.h new file mode 100644 index 00000000000000..9dde625677f9a9 --- /dev/null +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/include/openssl/x509_acert.h @@ -0,0 +1,294 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from include/openssl/x509_acert.h.in + * + * Copyright 2022-2024 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + + +#ifndef OPENSSL_X509_ACERT_H +# define OPENSSL_X509_ACERT_H +# pragma once + +# include +# include +# include + +typedef struct X509_acert_st X509_ACERT; +typedef struct X509_acert_info_st X509_ACERT_INFO; +typedef struct ossl_object_digest_info_st OSSL_OBJECT_DIGEST_INFO; +typedef struct ossl_issuer_serial_st OSSL_ISSUER_SERIAL; +typedef struct X509_acert_issuer_v2form_st X509_ACERT_ISSUER_V2FORM; + +DECLARE_ASN1_FUNCTIONS(X509_ACERT) +DECLARE_ASN1_DUP_FUNCTION(X509_ACERT) +DECLARE_ASN1_ITEM(X509_ACERT_INFO) +DECLARE_ASN1_ALLOC_FUNCTIONS(X509_ACERT_INFO) +DECLARE_ASN1_ALLOC_FUNCTIONS(OSSL_OBJECT_DIGEST_INFO) +DECLARE_ASN1_ALLOC_FUNCTIONS(OSSL_ISSUER_SERIAL) +DECLARE_ASN1_ALLOC_FUNCTIONS(X509_ACERT_ISSUER_V2FORM) + +# ifndef OPENSSL_NO_STDIO +X509_ACERT *d2i_X509_ACERT_fp(FILE *fp, X509_ACERT **acert); +int i2d_X509_ACERT_fp(FILE *fp, const X509_ACERT *acert); +# endif + +DECLARE_PEM_rw(X509_ACERT, X509_ACERT) + +X509_ACERT *d2i_X509_ACERT_bio(BIO *bp, X509_ACERT **acert); +int i2d_X509_ACERT_bio(BIO *bp, const X509_ACERT *acert); + +int X509_ACERT_sign(X509_ACERT *x, EVP_PKEY *pkey, const EVP_MD *md); +int X509_ACERT_sign_ctx(X509_ACERT *x, EVP_MD_CTX *ctx); +int X509_ACERT_verify(X509_ACERT *a, EVP_PKEY *r); + +# define X509_ACERT_VERSION_2 1 + +const GENERAL_NAMES *X509_ACERT_get0_holder_entityName(const X509_ACERT *x); +const OSSL_ISSUER_SERIAL *X509_ACERT_get0_holder_baseCertId(const X509_ACERT *x); +const OSSL_OBJECT_DIGEST_INFO * X509_ACERT_get0_holder_digest(const X509_ACERT *x); +const X509_NAME *X509_ACERT_get0_issuerName(const X509_ACERT *x); +long X509_ACERT_get_version(const X509_ACERT *x); +void X509_ACERT_get0_signature(const X509_ACERT *x, + const ASN1_BIT_STRING **psig, + const X509_ALGOR **palg); +int X509_ACERT_get_signature_nid(const X509_ACERT *x); +const X509_ALGOR *X509_ACERT_get0_info_sigalg(const X509_ACERT *x); +const ASN1_INTEGER *X509_ACERT_get0_serialNumber(const X509_ACERT *x); +const ASN1_TIME *X509_ACERT_get0_notBefore(const X509_ACERT *x); +const ASN1_TIME *X509_ACERT_get0_notAfter(const X509_ACERT *x); +const ASN1_BIT_STRING *X509_ACERT_get0_issuerUID(const X509_ACERT *x); + +int X509_ACERT_print(BIO *bp, X509_ACERT *x); +int X509_ACERT_print_ex(BIO *bp, X509_ACERT *x, unsigned long nmflags, + unsigned long cflag); + +int X509_ACERT_get_attr_count(const X509_ACERT *x); +int X509_ACERT_get_attr_by_NID(const X509_ACERT *x, int nid, int lastpos); +int X509_ACERT_get_attr_by_OBJ(const X509_ACERT *x, const ASN1_OBJECT *obj, + int lastpos); +X509_ATTRIBUTE *X509_ACERT_get_attr(const X509_ACERT *x, int loc); +X509_ATTRIBUTE *X509_ACERT_delete_attr(X509_ACERT *x, int loc); + +void *X509_ACERT_get_ext_d2i(const X509_ACERT *x, int nid, int *crit, int *idx); +int X509_ACERT_add1_ext_i2d(X509_ACERT *x, int nid, void *value, int crit, + unsigned long flags); +const STACK_OF(X509_EXTENSION) *X509_ACERT_get0_extensions(const X509_ACERT *x); + +# define OSSL_OBJECT_DIGEST_INFO_PUBLIC_KEY 0 +# define OSSL_OBJECT_DIGEST_INFO_PUBLIC_KEY_CERT 1 +# define OSSL_OBJECT_DIGEST_INFO_OTHER 2 /* must not be used in RFC 5755 profile */ +int X509_ACERT_set_version(X509_ACERT *x, long version); +void X509_ACERT_set0_holder_entityName(X509_ACERT *x, GENERAL_NAMES *name); +void X509_ACERT_set0_holder_baseCertId(X509_ACERT *x, OSSL_ISSUER_SERIAL *isss); +void X509_ACERT_set0_holder_digest(X509_ACERT *x, + OSSL_OBJECT_DIGEST_INFO *dinfo); + +int X509_ACERT_add1_attr(X509_ACERT *x, X509_ATTRIBUTE *attr); +int X509_ACERT_add1_attr_by_OBJ(X509_ACERT *x, const ASN1_OBJECT *obj, + int type, const void *bytes, int len); +int X509_ACERT_add1_attr_by_NID(X509_ACERT *x, int nid, int type, + const void *bytes, int len); +int X509_ACERT_add1_attr_by_txt(X509_ACERT *x, const char *attrname, int type, + const unsigned char *bytes, int len); +int X509_ACERT_add_attr_nconf(CONF *conf, const char *section, + X509_ACERT *acert); + +int X509_ACERT_set1_issuerName(X509_ACERT *x, const X509_NAME *name); +int X509_ACERT_set1_serialNumber(X509_ACERT *x, const ASN1_INTEGER *serial); +int X509_ACERT_set1_notBefore(X509_ACERT *x, const ASN1_GENERALIZEDTIME *time); +int X509_ACERT_set1_notAfter(X509_ACERT *x, const ASN1_GENERALIZEDTIME *time); + +void OSSL_OBJECT_DIGEST_INFO_get0_digest(const OSSL_OBJECT_DIGEST_INFO *o, + int *digestedObjectType, + const X509_ALGOR **digestAlgorithm, + const ASN1_BIT_STRING **digest); + +int OSSL_OBJECT_DIGEST_INFO_set1_digest(OSSL_OBJECT_DIGEST_INFO *o, + int digestedObjectType, + X509_ALGOR *digestAlgorithm, + ASN1_BIT_STRING *digest); + +const X509_NAME *OSSL_ISSUER_SERIAL_get0_issuer(const OSSL_ISSUER_SERIAL *isss); +const ASN1_INTEGER *OSSL_ISSUER_SERIAL_get0_serial(const OSSL_ISSUER_SERIAL *isss); +const ASN1_BIT_STRING *OSSL_ISSUER_SERIAL_get0_issuerUID(const OSSL_ISSUER_SERIAL *isss); + +int OSSL_ISSUER_SERIAL_set1_issuer(OSSL_ISSUER_SERIAL *isss, + const X509_NAME *issuer); +int OSSL_ISSUER_SERIAL_set1_serial(OSSL_ISSUER_SERIAL *isss, + const ASN1_INTEGER *serial); +int OSSL_ISSUER_SERIAL_set1_issuerUID(OSSL_ISSUER_SERIAL *isss, + const ASN1_BIT_STRING *uid); + +# define OSSL_IETFAS_OCTETS 0 +# define OSSL_IETFAS_OID 1 +# define OSSL_IETFAS_STRING 2 + +typedef struct OSSL_IETF_ATTR_SYNTAX_VALUE_st OSSL_IETF_ATTR_SYNTAX_VALUE; +typedef struct OSSL_IETF_ATTR_SYNTAX_st OSSL_IETF_ATTR_SYNTAX; +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_IETF_ATTR_SYNTAX_VALUE, OSSL_IETF_ATTR_SYNTAX_VALUE, OSSL_IETF_ATTR_SYNTAX_VALUE) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_value(sk, idx) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_value(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), (idx))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_new(cmp) ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_new(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_compfunc_type(cmp))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_new_null() ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_new_null()) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_new_reserve(cmp, n) ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_compfunc_type(cmp), (n))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), (n)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_free(sk) OPENSSL_sk_free(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_delete(sk, i) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_delete(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), (i))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_delete_ptr(sk, ptr) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_pop(sk) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_pop(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_shift(sk) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_shift(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk),ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_freefunc_type(freefunc)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr), (idx)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_set(sk, idx, ptr) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_set(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), (idx), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr), pnum) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_dup(sk) ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_dup(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_copyfunc_type(copyfunc), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_freefunc_type(freefunc))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_set_cmp_func(sk, cmp) ((sk_OSSL_IETF_ATTR_SYNTAX_VALUE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_compfunc_type(cmp))) + + +DECLARE_ASN1_ITEM(OSSL_IETF_ATTR_SYNTAX_VALUE) +DECLARE_ASN1_ALLOC_FUNCTIONS(OSSL_IETF_ATTR_SYNTAX_VALUE) +DECLARE_ASN1_FUNCTIONS(OSSL_IETF_ATTR_SYNTAX) + +const GENERAL_NAMES * +OSSL_IETF_ATTR_SYNTAX_get0_policyAuthority(const OSSL_IETF_ATTR_SYNTAX *a); +void OSSL_IETF_ATTR_SYNTAX_set0_policyAuthority(OSSL_IETF_ATTR_SYNTAX *a, + GENERAL_NAMES *names); + +int OSSL_IETF_ATTR_SYNTAX_get_value_num(const OSSL_IETF_ATTR_SYNTAX *a); +void *OSSL_IETF_ATTR_SYNTAX_get0_value(const OSSL_IETF_ATTR_SYNTAX *a, + int ind, int *type); +int OSSL_IETF_ATTR_SYNTAX_add1_value(OSSL_IETF_ATTR_SYNTAX *a, int type, + void *data); +int OSSL_IETF_ATTR_SYNTAX_print(BIO *bp, OSSL_IETF_ATTR_SYNTAX *a, int indent); + +struct TARGET_CERT_st { + OSSL_ISSUER_SERIAL *targetCertificate; + GENERAL_NAME *targetName; + OSSL_OBJECT_DIGEST_INFO *certDigestInfo; +}; + +typedef struct TARGET_CERT_st OSSL_TARGET_CERT; + +# define OSSL_TGT_TARGET_NAME 0 +# define OSSL_TGT_TARGET_GROUP 1 +# define OSSL_TGT_TARGET_CERT 2 + +typedef struct TARGET_st { + int type; + union { + GENERAL_NAME *targetName; + GENERAL_NAME *targetGroup; + OSSL_TARGET_CERT *targetCert; + } choice; +} OSSL_TARGET; + +typedef STACK_OF(OSSL_TARGET) OSSL_TARGETS; +typedef STACK_OF(OSSL_TARGETS) OSSL_TARGETING_INFORMATION; + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_TARGET, OSSL_TARGET, OSSL_TARGET) +#define sk_OSSL_TARGET_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_value(sk, idx) ((OSSL_TARGET *)OPENSSL_sk_value(ossl_check_const_OSSL_TARGET_sk_type(sk), (idx))) +#define sk_OSSL_TARGET_new(cmp) ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_new(ossl_check_OSSL_TARGET_compfunc_type(cmp))) +#define sk_OSSL_TARGET_new_null() ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_new_null()) +#define sk_OSSL_TARGET_new_reserve(cmp, n) ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_TARGET_compfunc_type(cmp), (n))) +#define sk_OSSL_TARGET_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_TARGET_sk_type(sk), (n)) +#define sk_OSSL_TARGET_free(sk) OPENSSL_sk_free(ossl_check_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_delete(sk, i) ((OSSL_TARGET *)OPENSSL_sk_delete(ossl_check_OSSL_TARGET_sk_type(sk), (i))) +#define sk_OSSL_TARGET_delete_ptr(sk, ptr) ((OSSL_TARGET *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr))) +#define sk_OSSL_TARGET_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr)) +#define sk_OSSL_TARGET_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr)) +#define sk_OSSL_TARGET_pop(sk) ((OSSL_TARGET *)OPENSSL_sk_pop(ossl_check_OSSL_TARGET_sk_type(sk))) +#define sk_OSSL_TARGET_shift(sk) ((OSSL_TARGET *)OPENSSL_sk_shift(ossl_check_OSSL_TARGET_sk_type(sk))) +#define sk_OSSL_TARGET_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_TARGET_sk_type(sk),ossl_check_OSSL_TARGET_freefunc_type(freefunc)) +#define sk_OSSL_TARGET_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr), (idx)) +#define sk_OSSL_TARGET_set(sk, idx, ptr) ((OSSL_TARGET *)OPENSSL_sk_set(ossl_check_OSSL_TARGET_sk_type(sk), (idx), ossl_check_OSSL_TARGET_type(ptr))) +#define sk_OSSL_TARGET_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr)) +#define sk_OSSL_TARGET_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr)) +#define sk_OSSL_TARGET_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr), pnum) +#define sk_OSSL_TARGET_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_dup(sk) ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_dup(ossl_check_const_OSSL_TARGET_sk_type(sk))) +#define sk_OSSL_TARGET_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_copyfunc_type(copyfunc), ossl_check_OSSL_TARGET_freefunc_type(freefunc))) +#define sk_OSSL_TARGET_set_cmp_func(sk, cmp) ((sk_OSSL_TARGET_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_compfunc_type(cmp))) + + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_TARGETS, OSSL_TARGETS, OSSL_TARGETS) +#define sk_OSSL_TARGETS_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_value(sk, idx) ((OSSL_TARGETS *)OPENSSL_sk_value(ossl_check_const_OSSL_TARGETS_sk_type(sk), (idx))) +#define sk_OSSL_TARGETS_new(cmp) ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_new(ossl_check_OSSL_TARGETS_compfunc_type(cmp))) +#define sk_OSSL_TARGETS_new_null() ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_new_null()) +#define sk_OSSL_TARGETS_new_reserve(cmp, n) ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_TARGETS_compfunc_type(cmp), (n))) +#define sk_OSSL_TARGETS_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_TARGETS_sk_type(sk), (n)) +#define sk_OSSL_TARGETS_free(sk) OPENSSL_sk_free(ossl_check_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_delete(sk, i) ((OSSL_TARGETS *)OPENSSL_sk_delete(ossl_check_OSSL_TARGETS_sk_type(sk), (i))) +#define sk_OSSL_TARGETS_delete_ptr(sk, ptr) ((OSSL_TARGETS *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr))) +#define sk_OSSL_TARGETS_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr)) +#define sk_OSSL_TARGETS_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr)) +#define sk_OSSL_TARGETS_pop(sk) ((OSSL_TARGETS *)OPENSSL_sk_pop(ossl_check_OSSL_TARGETS_sk_type(sk))) +#define sk_OSSL_TARGETS_shift(sk) ((OSSL_TARGETS *)OPENSSL_sk_shift(ossl_check_OSSL_TARGETS_sk_type(sk))) +#define sk_OSSL_TARGETS_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_TARGETS_sk_type(sk),ossl_check_OSSL_TARGETS_freefunc_type(freefunc)) +#define sk_OSSL_TARGETS_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr), (idx)) +#define sk_OSSL_TARGETS_set(sk, idx, ptr) ((OSSL_TARGETS *)OPENSSL_sk_set(ossl_check_OSSL_TARGETS_sk_type(sk), (idx), ossl_check_OSSL_TARGETS_type(ptr))) +#define sk_OSSL_TARGETS_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr)) +#define sk_OSSL_TARGETS_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr)) +#define sk_OSSL_TARGETS_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr), pnum) +#define sk_OSSL_TARGETS_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_dup(sk) ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_dup(ossl_check_const_OSSL_TARGETS_sk_type(sk))) +#define sk_OSSL_TARGETS_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_copyfunc_type(copyfunc), ossl_check_OSSL_TARGETS_freefunc_type(freefunc))) +#define sk_OSSL_TARGETS_set_cmp_func(sk, cmp) ((sk_OSSL_TARGETS_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_compfunc_type(cmp))) + + +DECLARE_ASN1_FUNCTIONS(OSSL_TARGET) +DECLARE_ASN1_FUNCTIONS(OSSL_TARGETS) +DECLARE_ASN1_FUNCTIONS(OSSL_TARGETING_INFORMATION) + +typedef STACK_OF(OSSL_ISSUER_SERIAL) OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX; +DECLARE_ASN1_FUNCTIONS(OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ISSUER_SERIAL, OSSL_ISSUER_SERIAL, OSSL_ISSUER_SERIAL) +#define sk_OSSL_ISSUER_SERIAL_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_value(sk, idx) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_value(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk), (idx))) +#define sk_OSSL_ISSUER_SERIAL_new(cmp) ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_new(ossl_check_OSSL_ISSUER_SERIAL_compfunc_type(cmp))) +#define sk_OSSL_ISSUER_SERIAL_new_null() ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ISSUER_SERIAL_new_reserve(cmp, n) ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ISSUER_SERIAL_compfunc_type(cmp), (n))) +#define sk_OSSL_ISSUER_SERIAL_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), (n)) +#define sk_OSSL_ISSUER_SERIAL_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_delete(sk, i) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_delete(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), (i))) +#define sk_OSSL_ISSUER_SERIAL_delete_ptr(sk, ptr) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr))) +#define sk_OSSL_ISSUER_SERIAL_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr)) +#define sk_OSSL_ISSUER_SERIAL_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr)) +#define sk_OSSL_ISSUER_SERIAL_pop(sk) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_pop(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk))) +#define sk_OSSL_ISSUER_SERIAL_shift(sk) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_shift(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk))) +#define sk_OSSL_ISSUER_SERIAL_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk),ossl_check_OSSL_ISSUER_SERIAL_freefunc_type(freefunc)) +#define sk_OSSL_ISSUER_SERIAL_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr), (idx)) +#define sk_OSSL_ISSUER_SERIAL_set(sk, idx, ptr) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_set(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), (idx), ossl_check_OSSL_ISSUER_SERIAL_type(ptr))) +#define sk_OSSL_ISSUER_SERIAL_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr)) +#define sk_OSSL_ISSUER_SERIAL_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr)) +#define sk_OSSL_ISSUER_SERIAL_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr), pnum) +#define sk_OSSL_ISSUER_SERIAL_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_dup(sk) ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk))) +#define sk_OSSL_ISSUER_SERIAL_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_copyfunc_type(copyfunc), ossl_check_OSSL_ISSUER_SERIAL_freefunc_type(freefunc))) +#define sk_OSSL_ISSUER_SERIAL_set_cmp_func(sk, cmp) ((sk_OSSL_ISSUER_SERIAL_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_compfunc_type(cmp))) + + +#endif diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/include/openssl/x509_vfy.h b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/include/openssl/x509_vfy.h index 29b0e147adcab1..c9bdc3b39d685d 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/include/openssl/x509_vfy.h +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/include/openssl/x509_vfy.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/x509_vfy.h.in * - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -411,6 +411,7 @@ X509_LOOKUP_ctrl_ex((x), X509_L_ADD_STORE, (name), 0, NULL, \ # define X509_V_ERR_CA_CERT_MISSING_KEY_USAGE 92 # define X509_V_ERR_EXTENSIONS_REQUIRE_VERSION_3 93 # define X509_V_ERR_EC_KEY_EXPLICIT_PARAMS 94 +# define X509_V_ERR_RPK_UNTRUSTED 95 /* Certificate verify flags */ # ifndef OPENSSL_NO_DEPRECATED_1_1_0 @@ -491,71 +492,72 @@ int X509_OBJECT_set1_X509(X509_OBJECT *a, X509 *obj); X509_CRL *X509_OBJECT_get0_X509_CRL(const X509_OBJECT *a); int X509_OBJECT_set1_X509_CRL(X509_OBJECT *a, X509_CRL *obj); X509_STORE *X509_STORE_new(void); -void X509_STORE_free(X509_STORE *v); -int X509_STORE_lock(X509_STORE *ctx); -int X509_STORE_unlock(X509_STORE *ctx); -int X509_STORE_up_ref(X509_STORE *v); -STACK_OF(X509_OBJECT) *X509_STORE_get0_objects(const X509_STORE *v); -STACK_OF(X509) *X509_STORE_get1_all_certs(X509_STORE *st); -STACK_OF(X509) *X509_STORE_CTX_get1_certs(X509_STORE_CTX *st, +void X509_STORE_free(X509_STORE *xs); +int X509_STORE_lock(X509_STORE *xs); +int X509_STORE_unlock(X509_STORE *xs); +int X509_STORE_up_ref(X509_STORE *xs); +STACK_OF(X509_OBJECT) *X509_STORE_get0_objects(const X509_STORE *xs); +STACK_OF(X509_OBJECT) *X509_STORE_get1_objects(X509_STORE *xs); +STACK_OF(X509) *X509_STORE_get1_all_certs(X509_STORE *xs); +STACK_OF(X509) *X509_STORE_CTX_get1_certs(X509_STORE_CTX *xs, const X509_NAME *nm); STACK_OF(X509_CRL) *X509_STORE_CTX_get1_crls(const X509_STORE_CTX *st, const X509_NAME *nm); -int X509_STORE_set_flags(X509_STORE *ctx, unsigned long flags); -int X509_STORE_set_purpose(X509_STORE *ctx, int purpose); -int X509_STORE_set_trust(X509_STORE *ctx, int trust); -int X509_STORE_set1_param(X509_STORE *ctx, const X509_VERIFY_PARAM *pm); -X509_VERIFY_PARAM *X509_STORE_get0_param(const X509_STORE *ctx); +int X509_STORE_set_flags(X509_STORE *xs, unsigned long flags); +int X509_STORE_set_purpose(X509_STORE *xs, int purpose); +int X509_STORE_set_trust(X509_STORE *xs, int trust); +int X509_STORE_set1_param(X509_STORE *xs, const X509_VERIFY_PARAM *pm); +X509_VERIFY_PARAM *X509_STORE_get0_param(const X509_STORE *xs); -void X509_STORE_set_verify(X509_STORE *ctx, X509_STORE_CTX_verify_fn verify); +void X509_STORE_set_verify(X509_STORE *xs, X509_STORE_CTX_verify_fn verify); #define X509_STORE_set_verify_func(ctx, func) \ X509_STORE_set_verify((ctx),(func)) void X509_STORE_CTX_set_verify(X509_STORE_CTX *ctx, X509_STORE_CTX_verify_fn verify); -X509_STORE_CTX_verify_fn X509_STORE_get_verify(const X509_STORE *ctx); -void X509_STORE_set_verify_cb(X509_STORE *ctx, +X509_STORE_CTX_verify_fn X509_STORE_get_verify(const X509_STORE *xs); +void X509_STORE_set_verify_cb(X509_STORE *xs, X509_STORE_CTX_verify_cb verify_cb); # define X509_STORE_set_verify_cb_func(ctx,func) \ X509_STORE_set_verify_cb((ctx),(func)) -X509_STORE_CTX_verify_cb X509_STORE_get_verify_cb(const X509_STORE *ctx); -void X509_STORE_set_get_issuer(X509_STORE *ctx, +X509_STORE_CTX_verify_cb X509_STORE_get_verify_cb(const X509_STORE *xs); +void X509_STORE_set_get_issuer(X509_STORE *xs, X509_STORE_CTX_get_issuer_fn get_issuer); -X509_STORE_CTX_get_issuer_fn X509_STORE_get_get_issuer(const X509_STORE *ctx); -void X509_STORE_set_check_issued(X509_STORE *ctx, +X509_STORE_CTX_get_issuer_fn X509_STORE_get_get_issuer(const X509_STORE *xs); +void X509_STORE_set_check_issued(X509_STORE *xs, X509_STORE_CTX_check_issued_fn check_issued); -X509_STORE_CTX_check_issued_fn X509_STORE_get_check_issued(const X509_STORE *ctx); -void X509_STORE_set_check_revocation(X509_STORE *ctx, +X509_STORE_CTX_check_issued_fn X509_STORE_get_check_issued(const X509_STORE *s); +void X509_STORE_set_check_revocation(X509_STORE *xs, X509_STORE_CTX_check_revocation_fn check_revocation); X509_STORE_CTX_check_revocation_fn - X509_STORE_get_check_revocation(const X509_STORE *ctx); -void X509_STORE_set_get_crl(X509_STORE *ctx, + X509_STORE_get_check_revocation(const X509_STORE *xs); +void X509_STORE_set_get_crl(X509_STORE *xs, X509_STORE_CTX_get_crl_fn get_crl); -X509_STORE_CTX_get_crl_fn X509_STORE_get_get_crl(const X509_STORE *ctx); -void X509_STORE_set_check_crl(X509_STORE *ctx, +X509_STORE_CTX_get_crl_fn X509_STORE_get_get_crl(const X509_STORE *xs); +void X509_STORE_set_check_crl(X509_STORE *xs, X509_STORE_CTX_check_crl_fn check_crl); -X509_STORE_CTX_check_crl_fn X509_STORE_get_check_crl(const X509_STORE *ctx); -void X509_STORE_set_cert_crl(X509_STORE *ctx, +X509_STORE_CTX_check_crl_fn X509_STORE_get_check_crl(const X509_STORE *xs); +void X509_STORE_set_cert_crl(X509_STORE *xs, X509_STORE_CTX_cert_crl_fn cert_crl); -X509_STORE_CTX_cert_crl_fn X509_STORE_get_cert_crl(const X509_STORE *ctx); -void X509_STORE_set_check_policy(X509_STORE *ctx, +X509_STORE_CTX_cert_crl_fn X509_STORE_get_cert_crl(const X509_STORE *xs); +void X509_STORE_set_check_policy(X509_STORE *xs, X509_STORE_CTX_check_policy_fn check_policy); -X509_STORE_CTX_check_policy_fn X509_STORE_get_check_policy(const X509_STORE *ctx); -void X509_STORE_set_lookup_certs(X509_STORE *ctx, +X509_STORE_CTX_check_policy_fn X509_STORE_get_check_policy(const X509_STORE *s); +void X509_STORE_set_lookup_certs(X509_STORE *xs, X509_STORE_CTX_lookup_certs_fn lookup_certs); -X509_STORE_CTX_lookup_certs_fn X509_STORE_get_lookup_certs(const X509_STORE *ctx); -void X509_STORE_set_lookup_crls(X509_STORE *ctx, +X509_STORE_CTX_lookup_certs_fn X509_STORE_get_lookup_certs(const X509_STORE *s); +void X509_STORE_set_lookup_crls(X509_STORE *xs, X509_STORE_CTX_lookup_crls_fn lookup_crls); #define X509_STORE_set_lookup_crls_cb(ctx, func) \ X509_STORE_set_lookup_crls((ctx), (func)) -X509_STORE_CTX_lookup_crls_fn X509_STORE_get_lookup_crls(const X509_STORE *ctx); -void X509_STORE_set_cleanup(X509_STORE *ctx, +X509_STORE_CTX_lookup_crls_fn X509_STORE_get_lookup_crls(const X509_STORE *xs); +void X509_STORE_set_cleanup(X509_STORE *xs, X509_STORE_CTX_cleanup_fn cleanup); -X509_STORE_CTX_cleanup_fn X509_STORE_get_cleanup(const X509_STORE *ctx); +X509_STORE_CTX_cleanup_fn X509_STORE_get_cleanup(const X509_STORE *xs); #define X509_STORE_get_ex_new_index(l, p, newf, dupf, freef) \ CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_X509_STORE, l, p, newf, dupf, freef) -int X509_STORE_set_ex_data(X509_STORE *ctx, int idx, void *data); -void *X509_STORE_get_ex_data(const X509_STORE *ctx, int idx); +int X509_STORE_set_ex_data(X509_STORE *xs, int idx, void *data); +void *X509_STORE_get_ex_data(const X509_STORE *xs, int idx); X509_STORE_CTX *X509_STORE_CTX_new_ex(OSSL_LIB_CTX *libctx, const char *propq); X509_STORE_CTX *X509_STORE_CTX_new(void); @@ -565,11 +567,14 @@ int X509_STORE_CTX_get1_issuer(X509 **issuer, X509_STORE_CTX *ctx, X509 *x); void X509_STORE_CTX_free(X509_STORE_CTX *ctx); int X509_STORE_CTX_init(X509_STORE_CTX *ctx, X509_STORE *trust_store, X509 *target, STACK_OF(X509) *untrusted); +int X509_STORE_CTX_init_rpk(X509_STORE_CTX *ctx, X509_STORE *trust_store, + EVP_PKEY* rpk); void X509_STORE_CTX_set0_trusted_stack(X509_STORE_CTX *ctx, STACK_OF(X509) *sk); void X509_STORE_CTX_cleanup(X509_STORE_CTX *ctx); X509_STORE *X509_STORE_CTX_get0_store(const X509_STORE_CTX *ctx); X509 *X509_STORE_CTX_get0_cert(const X509_STORE_CTX *ctx); +EVP_PKEY *X509_STORE_CTX_get0_rpk(const X509_STORE_CTX *ctx); STACK_OF(X509)* X509_STORE_CTX_get0_untrusted(const X509_STORE_CTX *ctx); void X509_STORE_CTX_set0_untrusted(X509_STORE_CTX *ctx, STACK_OF(X509) *sk); void X509_STORE_CTX_set_verify_cb(X509_STORE_CTX *ctx, @@ -579,6 +584,8 @@ X509_STORE_CTX_verify_fn X509_STORE_CTX_get_verify(const X509_STORE_CTX *ctx); X509_STORE_CTX_get_issuer_fn X509_STORE_CTX_get_get_issuer(const X509_STORE_CTX *ctx); X509_STORE_CTX_check_issued_fn X509_STORE_CTX_get_check_issued(const X509_STORE_CTX *ctx); X509_STORE_CTX_check_revocation_fn X509_STORE_CTX_get_check_revocation(const X509_STORE_CTX *ctx); +void X509_STORE_CTX_set_get_crl(X509_STORE_CTX *ctx, + X509_STORE_CTX_get_crl_fn get_crl); X509_STORE_CTX_get_crl_fn X509_STORE_CTX_get_get_crl(const X509_STORE_CTX *ctx); X509_STORE_CTX_check_crl_fn X509_STORE_CTX_get_check_crl(const X509_STORE_CTX *ctx); X509_STORE_CTX_cert_crl_fn X509_STORE_CTX_get_cert_crl(const X509_STORE_CTX *ctx); @@ -600,7 +607,7 @@ X509_STORE_CTX_cleanup_fn X509_STORE_CTX_get_cleanup(const X509_STORE_CTX *ctx); # define X509_STORE_get1_crl X509_STORE_CTX_get1_crls #endif -X509_LOOKUP *X509_STORE_add_lookup(X509_STORE *v, X509_LOOKUP_METHOD *m); +X509_LOOKUP *X509_STORE_add_lookup(X509_STORE *xs, X509_LOOKUP_METHOD *m); X509_LOOKUP_METHOD *X509_LOOKUP_hash_dir(void); X509_LOOKUP_METHOD *X509_LOOKUP_file(void); X509_LOOKUP_METHOD *X509_LOOKUP_store(void); @@ -685,8 +692,8 @@ X509_LOOKUP_get_by_alias_fn X509_LOOKUP_meth_get_get_by_alias( const X509_LOOKUP_METHOD *method); -int X509_STORE_add_cert(X509_STORE *ctx, X509 *x); -int X509_STORE_add_crl(X509_STORE *ctx, X509_CRL *x); +int X509_STORE_add_cert(X509_STORE *xs, X509 *x); +int X509_STORE_add_crl(X509_STORE *xs, X509_CRL *x); int X509_STORE_CTX_get_by_subject(const X509_STORE_CTX *vs, X509_LOOKUP_TYPE type, @@ -730,23 +737,21 @@ void *X509_LOOKUP_get_method_data(const X509_LOOKUP *ctx); X509_STORE *X509_LOOKUP_get_store(const X509_LOOKUP *ctx); int X509_LOOKUP_shutdown(X509_LOOKUP *ctx); -int X509_STORE_load_file(X509_STORE *ctx, const char *file); -int X509_STORE_load_path(X509_STORE *ctx, const char *path); -int X509_STORE_load_store(X509_STORE *ctx, const char *store); -int X509_STORE_load_locations(X509_STORE *ctx, - const char *file, - const char *dir); -int X509_STORE_set_default_paths(X509_STORE *ctx); +int X509_STORE_load_file(X509_STORE *xs, const char *file); +int X509_STORE_load_path(X509_STORE *xs, const char *path); +int X509_STORE_load_store(X509_STORE *xs, const char *store); +int X509_STORE_load_locations(X509_STORE *s, const char *file, const char *dir); +int X509_STORE_set_default_paths(X509_STORE *xs); -int X509_STORE_load_file_ex(X509_STORE *ctx, const char *file, +int X509_STORE_load_file_ex(X509_STORE *xs, const char *file, OSSL_LIB_CTX *libctx, const char *propq); -int X509_STORE_load_store_ex(X509_STORE *ctx, const char *store, +int X509_STORE_load_store_ex(X509_STORE *xs, const char *store, OSSL_LIB_CTX *libctx, const char *propq); -int X509_STORE_load_locations_ex(X509_STORE *ctx, const char *file, - const char *dir, OSSL_LIB_CTX *libctx, - const char *propq); -int X509_STORE_set_default_paths_ex(X509_STORE *ctx, OSSL_LIB_CTX *libctx, - const char *propq); +int X509_STORE_load_locations_ex(X509_STORE *xs, + const char *file, const char *dir, + OSSL_LIB_CTX *libctx, const char *propq); +int X509_STORE_set_default_paths_ex(X509_STORE *xs, + OSSL_LIB_CTX *libctx, const char *propq); #define X509_STORE_CTX_get_ex_new_index(l, p, newf, dupf, freef) \ CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_X509_STORE_CTX, l, p, newf, dupf, freef) @@ -764,6 +769,7 @@ X509_STORE_CTX *X509_STORE_CTX_get0_parent_ctx(const X509_STORE_CTX *ctx); STACK_OF(X509) *X509_STORE_CTX_get0_chain(const X509_STORE_CTX *ctx); STACK_OF(X509) *X509_STORE_CTX_get1_chain(const X509_STORE_CTX *ctx); void X509_STORE_CTX_set_cert(X509_STORE_CTX *ctx, X509 *target); +void X509_STORE_CTX_set0_rpk(X509_STORE_CTX *ctx, EVP_PKEY *target); void X509_STORE_CTX_set0_verified_chain(X509_STORE_CTX *c, STACK_OF(X509) *sk); void X509_STORE_CTX_set0_crls(X509_STORE_CTX *ctx, STACK_OF(X509_CRL) *sk); int X509_STORE_CTX_set_purpose(X509_STORE_CTX *ctx, int purpose); @@ -773,6 +779,8 @@ int X509_STORE_CTX_purpose_inherit(X509_STORE_CTX *ctx, int def_purpose, void X509_STORE_CTX_set_flags(X509_STORE_CTX *ctx, unsigned long flags); void X509_STORE_CTX_set_time(X509_STORE_CTX *ctx, unsigned long flags, time_t t); +void X509_STORE_CTX_set_current_reasons(X509_STORE_CTX *ctx, + unsigned int current_reasons); X509_POLICY_TREE *X509_STORE_CTX_get0_policy_tree(const X509_STORE_CTX *ctx); int X509_STORE_CTX_get_explicit_policy(const X509_STORE_CTX *ctx); @@ -804,6 +812,7 @@ int X509_VERIFY_PARAM_clear_flags(X509_VERIFY_PARAM *param, unsigned long flags); unsigned long X509_VERIFY_PARAM_get_flags(const X509_VERIFY_PARAM *param); int X509_VERIFY_PARAM_set_purpose(X509_VERIFY_PARAM *param, int purpose); +int X509_VERIFY_PARAM_get_purpose(const X509_VERIFY_PARAM *param); int X509_VERIFY_PARAM_set_trust(X509_VERIFY_PARAM *param, int trust); void X509_VERIFY_PARAM_set_depth(X509_VERIFY_PARAM *param, int depth); void X509_VERIFY_PARAM_set_auth_level(X509_VERIFY_PARAM *param, int auth_level); diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/include/openssl/x509v3.h b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/include/openssl/x509v3.h index 20b67455f2061d..b8dabac35a4915 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/include/openssl/x509v3.h +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/include/openssl/x509v3.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/x509v3.h.in * - * Copyright 1999-2023 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1999-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -25,6 +25,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -146,6 +149,11 @@ typedef struct BASIC_CONSTRAINTS_st { ASN1_INTEGER *pathlen; } BASIC_CONSTRAINTS; +typedef struct OSSL_BASIC_ATTR_CONSTRAINTS_st { + int authority; + ASN1_INTEGER *pathlen; +} OSSL_BASIC_ATTR_CONSTRAINTS; + typedef struct PKEY_USAGE_PERIOD_st { ASN1_GENERALIZEDTIME *notBefore; ASN1_GENERALIZEDTIME *notAfter; @@ -198,6 +206,8 @@ typedef struct ACCESS_DESCRIPTION_st { GENERAL_NAME *location; } ACCESS_DESCRIPTION; +int GENERAL_NAME_set1_X509_NAME(GENERAL_NAME **tgt, const X509_NAME *src); + SKM_DEFINE_STACK_OF_INTERNAL(ACCESS_DESCRIPTION, ACCESS_DESCRIPTION, ACCESS_DESCRIPTION) #define sk_ACCESS_DESCRIPTION_num(sk) OPENSSL_sk_num(ossl_check_const_ACCESS_DESCRIPTION_sk_type(sk)) #define sk_ACCESS_DESCRIPTION_value(sk, idx) ((ACCESS_DESCRIPTION *)OPENSSL_sk_value(ossl_check_const_ACCESS_DESCRIPTION_sk_type(sk), (idx))) @@ -294,6 +304,7 @@ typedef struct DIST_POINT_NAME_st { /* If relativename then this contains the full distribution point name */ X509_NAME *dpname; } DIST_POINT_NAME; +DECLARE_ASN1_DUP_FUNCTION(DIST_POINT_NAME) /* All existing reasons */ # define CRLDP_ALL_REASONS 0x807f @@ -659,15 +670,16 @@ struct ISSUING_DIST_POINT_st { # define EXFLAG_SAN_CRITICAL 0x80000 # define EXFLAG_NO_FINGERPRINT 0x100000 -# define KU_DIGITAL_SIGNATURE 0x0080 -# define KU_NON_REPUDIATION 0x0040 -# define KU_KEY_ENCIPHERMENT 0x0020 -# define KU_DATA_ENCIPHERMENT 0x0010 -# define KU_KEY_AGREEMENT 0x0008 -# define KU_KEY_CERT_SIGN 0x0004 -# define KU_CRL_SIGN 0x0002 -# define KU_ENCIPHER_ONLY 0x0001 -# define KU_DECIPHER_ONLY 0x8000 +/* https://datatracker.ietf.org/doc/html/rfc5280#section-4.2.1.3 */ +# define KU_DIGITAL_SIGNATURE X509v3_KU_DIGITAL_SIGNATURE +# define KU_NON_REPUDIATION X509v3_KU_NON_REPUDIATION +# define KU_KEY_ENCIPHERMENT X509v3_KU_KEY_ENCIPHERMENT +# define KU_DATA_ENCIPHERMENT X509v3_KU_DATA_ENCIPHERMENT +# define KU_KEY_AGREEMENT X509v3_KU_KEY_AGREEMENT +# define KU_KEY_CERT_SIGN X509v3_KU_KEY_CERT_SIGN +# define KU_CRL_SIGN X509v3_KU_CRL_SIGN +# define KU_ENCIPHER_ONLY X509v3_KU_ENCIPHER_ONLY +# define KU_DECIPHER_ONLY X509v3_KU_DECIPHER_ONLY # define NS_SSL_CLIENT 0x80 # define NS_SSL_SERVER 0x40 @@ -729,7 +741,7 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_PURPOSE, X509_PURPOSE, X509_PURPOSE) #define sk_X509_PURPOSE_set_cmp_func(sk, cmp) ((sk_X509_PURPOSE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_X509_PURPOSE_sk_type(sk), ossl_check_X509_PURPOSE_compfunc_type(cmp))) - +# define X509_PURPOSE_DEFAULT_ANY 0 # define X509_PURPOSE_SSL_CLIENT 1 # define X509_PURPOSE_SSL_SERVER 2 # define X509_PURPOSE_NS_SSL_SERVER 3 @@ -739,9 +751,10 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_PURPOSE, X509_PURPOSE, X509_PURPOSE) # define X509_PURPOSE_ANY 7 # define X509_PURPOSE_OCSP_HELPER 8 # define X509_PURPOSE_TIMESTAMP_SIGN 9 +# define X509_PURPOSE_CODE_SIGN 10 # define X509_PURPOSE_MIN 1 -# define X509_PURPOSE_MAX 9 +# define X509_PURPOSE_MAX 10 /* Flags for X509V3_EXT_print() */ @@ -767,6 +780,7 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_PURPOSE, X509_PURPOSE, X509_PURPOSE) # define X509V3_ADD_SILENT 0x10 DECLARE_ASN1_FUNCTIONS(BASIC_CONSTRAINTS) +DECLARE_ASN1_FUNCTIONS(OSSL_BASIC_ATTR_CONSTRAINTS) DECLARE_ASN1_FUNCTIONS(SXNET) DECLARE_ASN1_FUNCTIONS(SXNETID) @@ -976,7 +990,6 @@ int X509V3_extensions_print(BIO *out, const char *title, int X509_check_ca(X509 *x); int X509_check_purpose(X509 *x, int id, int ca); int X509_supported_extension(X509_EXTENSION *ex); -int X509_PURPOSE_set(int *p, int purpose); int X509_check_issued(X509 *issuer, X509 *subject); int X509_check_akid(const X509 *issuer, const AUTHORITY_KEYID *akid); void X509_set_proxy_flag(X509 *x); @@ -992,22 +1005,26 @@ const GENERAL_NAMES *X509_get0_authority_issuer(X509 *x); const ASN1_INTEGER *X509_get0_authority_serial(X509 *x); int X509_PURPOSE_get_count(void); -X509_PURPOSE *X509_PURPOSE_get0(int idx); +int X509_PURPOSE_get_unused_id(OSSL_LIB_CTX *libctx); int X509_PURPOSE_get_by_sname(const char *sname); int X509_PURPOSE_get_by_id(int id); int X509_PURPOSE_add(int id, int trust, int flags, int (*ck) (const X509_PURPOSE *, const X509 *, int), const char *name, const char *sname, void *arg); +void X509_PURPOSE_cleanup(void); + +X509_PURPOSE *X509_PURPOSE_get0(int idx); +int X509_PURPOSE_get_id(const X509_PURPOSE *); char *X509_PURPOSE_get0_name(const X509_PURPOSE *xp); char *X509_PURPOSE_get0_sname(const X509_PURPOSE *xp); int X509_PURPOSE_get_trust(const X509_PURPOSE *xp); -void X509_PURPOSE_cleanup(void); -int X509_PURPOSE_get_id(const X509_PURPOSE *); +int X509_PURPOSE_set(int *p, int purpose); STACK_OF(OPENSSL_STRING) *X509_get1_email(X509 *x); STACK_OF(OPENSSL_STRING) *X509_REQ_get1_email(X509_REQ *x); void X509_email_free(STACK_OF(OPENSSL_STRING) *sk); STACK_OF(OPENSSL_STRING) *X509_get1_ocsp(X509 *x); + /* Flags for X509_check_* functions */ /* @@ -1444,6 +1461,507 @@ const ASN1_PRINTABLESTRING *PROFESSION_INFO_get0_registrationNumber( void PROFESSION_INFO_set0_registrationNumber( PROFESSION_INFO *pi, ASN1_PRINTABLESTRING *rn); +int OSSL_GENERAL_NAMES_print(BIO *out, GENERAL_NAMES *gens, int indent); + +typedef STACK_OF(X509_ATTRIBUTE) OSSL_ATTRIBUTES_SYNTAX; +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTES_SYNTAX) + +typedef STACK_OF(USERNOTICE) OSSL_USER_NOTICE_SYNTAX; +DECLARE_ASN1_FUNCTIONS(OSSL_USER_NOTICE_SYNTAX) + +SKM_DEFINE_STACK_OF_INTERNAL(USERNOTICE, USERNOTICE, USERNOTICE) +#define sk_USERNOTICE_num(sk) OPENSSL_sk_num(ossl_check_const_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_value(sk, idx) ((USERNOTICE *)OPENSSL_sk_value(ossl_check_const_USERNOTICE_sk_type(sk), (idx))) +#define sk_USERNOTICE_new(cmp) ((STACK_OF(USERNOTICE) *)OPENSSL_sk_new(ossl_check_USERNOTICE_compfunc_type(cmp))) +#define sk_USERNOTICE_new_null() ((STACK_OF(USERNOTICE) *)OPENSSL_sk_new_null()) +#define sk_USERNOTICE_new_reserve(cmp, n) ((STACK_OF(USERNOTICE) *)OPENSSL_sk_new_reserve(ossl_check_USERNOTICE_compfunc_type(cmp), (n))) +#define sk_USERNOTICE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_USERNOTICE_sk_type(sk), (n)) +#define sk_USERNOTICE_free(sk) OPENSSL_sk_free(ossl_check_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_zero(sk) OPENSSL_sk_zero(ossl_check_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_delete(sk, i) ((USERNOTICE *)OPENSSL_sk_delete(ossl_check_USERNOTICE_sk_type(sk), (i))) +#define sk_USERNOTICE_delete_ptr(sk, ptr) ((USERNOTICE *)OPENSSL_sk_delete_ptr(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr))) +#define sk_USERNOTICE_push(sk, ptr) OPENSSL_sk_push(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr)) +#define sk_USERNOTICE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr)) +#define sk_USERNOTICE_pop(sk) ((USERNOTICE *)OPENSSL_sk_pop(ossl_check_USERNOTICE_sk_type(sk))) +#define sk_USERNOTICE_shift(sk) ((USERNOTICE *)OPENSSL_sk_shift(ossl_check_USERNOTICE_sk_type(sk))) +#define sk_USERNOTICE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_USERNOTICE_sk_type(sk),ossl_check_USERNOTICE_freefunc_type(freefunc)) +#define sk_USERNOTICE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr), (idx)) +#define sk_USERNOTICE_set(sk, idx, ptr) ((USERNOTICE *)OPENSSL_sk_set(ossl_check_USERNOTICE_sk_type(sk), (idx), ossl_check_USERNOTICE_type(ptr))) +#define sk_USERNOTICE_find(sk, ptr) OPENSSL_sk_find(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr)) +#define sk_USERNOTICE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr)) +#define sk_USERNOTICE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr), pnum) +#define sk_USERNOTICE_sort(sk) OPENSSL_sk_sort(ossl_check_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_dup(sk) ((STACK_OF(USERNOTICE) *)OPENSSL_sk_dup(ossl_check_const_USERNOTICE_sk_type(sk))) +#define sk_USERNOTICE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(USERNOTICE) *)OPENSSL_sk_deep_copy(ossl_check_const_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_copyfunc_type(copyfunc), ossl_check_USERNOTICE_freefunc_type(freefunc))) +#define sk_USERNOTICE_set_cmp_func(sk, cmp) ((sk_USERNOTICE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_compfunc_type(cmp))) + + +typedef struct OSSL_ROLE_SPEC_CERT_ID_st { + GENERAL_NAME *roleName; + GENERAL_NAME *roleCertIssuer; + ASN1_INTEGER *roleCertSerialNumber; + GENERAL_NAMES *roleCertLocator; +} OSSL_ROLE_SPEC_CERT_ID; + +DECLARE_ASN1_FUNCTIONS(OSSL_ROLE_SPEC_CERT_ID) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ROLE_SPEC_CERT_ID, OSSL_ROLE_SPEC_CERT_ID, OSSL_ROLE_SPEC_CERT_ID) +#define sk_OSSL_ROLE_SPEC_CERT_ID_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_value(sk, idx) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_value(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), (idx))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_new(cmp) ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_new(ossl_check_OSSL_ROLE_SPEC_CERT_ID_compfunc_type(cmp))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_new_null() ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ROLE_SPEC_CERT_ID_new_reserve(cmp, n) ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ROLE_SPEC_CERT_ID_compfunc_type(cmp), (n))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), (n)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_delete(sk, i) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_delete(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), (i))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_delete_ptr(sk, ptr) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_pop(sk) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_pop(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_shift(sk) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_shift(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk),ossl_check_OSSL_ROLE_SPEC_CERT_ID_freefunc_type(freefunc)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr), (idx)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_set(sk, idx, ptr) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_set(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), (idx), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr), pnum) +#define sk_OSSL_ROLE_SPEC_CERT_ID_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_dup(sk) ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_copyfunc_type(copyfunc), ossl_check_OSSL_ROLE_SPEC_CERT_ID_freefunc_type(freefunc))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_set_cmp_func(sk, cmp) ((sk_OSSL_ROLE_SPEC_CERT_ID_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_compfunc_type(cmp))) + + +typedef STACK_OF(OSSL_ROLE_SPEC_CERT_ID) OSSL_ROLE_SPEC_CERT_ID_SYNTAX; + +DECLARE_ASN1_FUNCTIONS(OSSL_ROLE_SPEC_CERT_ID_SYNTAX) +typedef struct OSSL_HASH_st { + X509_ALGOR *algorithmIdentifier; + ASN1_BIT_STRING *hashValue; +} OSSL_HASH; + +typedef struct OSSL_INFO_SYNTAX_POINTER_st { + GENERAL_NAMES *name; + OSSL_HASH *hash; +} OSSL_INFO_SYNTAX_POINTER; + +# define OSSL_INFO_SYNTAX_TYPE_CONTENT 0 +# define OSSL_INFO_SYNTAX_TYPE_POINTER 1 + +typedef struct OSSL_INFO_SYNTAX_st { + int type; + union { + ASN1_STRING *content; + OSSL_INFO_SYNTAX_POINTER *pointer; + } choice; +} OSSL_INFO_SYNTAX; + +typedef struct OSSL_PRIVILEGE_POLICY_ID_st { + ASN1_OBJECT *privilegePolicy; + OSSL_INFO_SYNTAX *privPolSyntax; +} OSSL_PRIVILEGE_POLICY_ID; + +typedef struct OSSL_ATTRIBUTE_DESCRIPTOR_st { + ASN1_OBJECT *identifier; + ASN1_STRING *attributeSyntax; + ASN1_UTF8STRING *name; + ASN1_UTF8STRING *description; + OSSL_PRIVILEGE_POLICY_ID *dominationRule; +} OSSL_ATTRIBUTE_DESCRIPTOR; + +DECLARE_ASN1_FUNCTIONS(OSSL_HASH) +DECLARE_ASN1_FUNCTIONS(OSSL_INFO_SYNTAX) +DECLARE_ASN1_FUNCTIONS(OSSL_INFO_SYNTAX_POINTER) +DECLARE_ASN1_FUNCTIONS(OSSL_PRIVILEGE_POLICY_ID) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_DESCRIPTOR) + +typedef struct OSSL_TIME_SPEC_ABSOLUTE_st { + ASN1_GENERALIZEDTIME *startTime; + ASN1_GENERALIZEDTIME *endTime; +} OSSL_TIME_SPEC_ABSOLUTE; + +typedef struct OSSL_DAY_TIME_st { + ASN1_INTEGER *hour; + ASN1_INTEGER *minute; + ASN1_INTEGER *second; +} OSSL_DAY_TIME; + +typedef struct OSSL_DAY_TIME_BAND_st { + OSSL_DAY_TIME *startDayTime; + OSSL_DAY_TIME *endDayTime; +} OSSL_DAY_TIME_BAND; + +# define OSSL_NAMED_DAY_TYPE_INT 0 +# define OSSL_NAMED_DAY_TYPE_BIT 1 +# define OSSL_NAMED_DAY_INT_SUN 1 +# define OSSL_NAMED_DAY_INT_MON 2 +# define OSSL_NAMED_DAY_INT_TUE 3 +# define OSSL_NAMED_DAY_INT_WED 4 +# define OSSL_NAMED_DAY_INT_THU 5 +# define OSSL_NAMED_DAY_INT_FRI 6 +# define OSSL_NAMED_DAY_INT_SAT 7 +# define OSSL_NAMED_DAY_BIT_SUN 0 +# define OSSL_NAMED_DAY_BIT_MON 1 +# define OSSL_NAMED_DAY_BIT_TUE 2 +# define OSSL_NAMED_DAY_BIT_WED 3 +# define OSSL_NAMED_DAY_BIT_THU 4 +# define OSSL_NAMED_DAY_BIT_FRI 5 +# define OSSL_NAMED_DAY_BIT_SAT 6 + +typedef struct OSSL_NAMED_DAY_st { + int type; + union { + ASN1_INTEGER *intNamedDays; + ASN1_BIT_STRING *bitNamedDays; + } choice; +} OSSL_NAMED_DAY; + +# define OSSL_TIME_SPEC_X_DAY_OF_FIRST 0 +# define OSSL_TIME_SPEC_X_DAY_OF_SECOND 1 +# define OSSL_TIME_SPEC_X_DAY_OF_THIRD 2 +# define OSSL_TIME_SPEC_X_DAY_OF_FOURTH 3 +# define OSSL_TIME_SPEC_X_DAY_OF_FIFTH 4 + +typedef struct OSSL_TIME_SPEC_X_DAY_OF_st { + int type; + union { + OSSL_NAMED_DAY *first; + OSSL_NAMED_DAY *second; + OSSL_NAMED_DAY *third; + OSSL_NAMED_DAY *fourth; + OSSL_NAMED_DAY *fifth; + } choice; +} OSSL_TIME_SPEC_X_DAY_OF; + +# define OSSL_TIME_SPEC_DAY_TYPE_INT 0 +# define OSSL_TIME_SPEC_DAY_TYPE_BIT 1 +# define OSSL_TIME_SPEC_DAY_TYPE_DAY_OF 2 +# define OSSL_TIME_SPEC_DAY_BIT_SUN 0 +# define OSSL_TIME_SPEC_DAY_BIT_MON 1 +# define OSSL_TIME_SPEC_DAY_BIT_TUE 2 +# define OSSL_TIME_SPEC_DAY_BIT_WED 3 +# define OSSL_TIME_SPEC_DAY_BIT_THU 4 +# define OSSL_TIME_SPEC_DAY_BIT_FRI 5 +# define OSSL_TIME_SPEC_DAY_BIT_SAT 6 +# define OSSL_TIME_SPEC_DAY_INT_SUN 1 +# define OSSL_TIME_SPEC_DAY_INT_MON 2 +# define OSSL_TIME_SPEC_DAY_INT_TUE 3 +# define OSSL_TIME_SPEC_DAY_INT_WED 4 +# define OSSL_TIME_SPEC_DAY_INT_THU 5 +# define OSSL_TIME_SPEC_DAY_INT_FRI 6 +# define OSSL_TIME_SPEC_DAY_INT_SAT 7 + +typedef struct OSSL_TIME_SPEC_DAY_st { + int type; + union { + STACK_OF(ASN1_INTEGER) *intDay; + ASN1_BIT_STRING *bitDay; + OSSL_TIME_SPEC_X_DAY_OF *dayOf; + } choice; +} OSSL_TIME_SPEC_DAY; + +# define OSSL_TIME_SPEC_WEEKS_TYPE_ALL 0 +# define OSSL_TIME_SPEC_WEEKS_TYPE_INT 1 +# define OSSL_TIME_SPEC_WEEKS_TYPE_BIT 2 +# define OSSL_TIME_SPEC_BIT_WEEKS_1 0 +# define OSSL_TIME_SPEC_BIT_WEEKS_2 1 +# define OSSL_TIME_SPEC_BIT_WEEKS_3 2 +# define OSSL_TIME_SPEC_BIT_WEEKS_4 3 +# define OSSL_TIME_SPEC_BIT_WEEKS_5 4 + +typedef struct OSSL_TIME_SPEC_WEEKS_st { + int type; + union { + ASN1_NULL *allWeeks; + STACK_OF(ASN1_INTEGER) *intWeek; + ASN1_BIT_STRING *bitWeek; + } choice; +} OSSL_TIME_SPEC_WEEKS; + +# define OSSL_TIME_SPEC_MONTH_TYPE_ALL 0 +# define OSSL_TIME_SPEC_MONTH_TYPE_INT 1 +# define OSSL_TIME_SPEC_MONTH_TYPE_BIT 2 +# define OSSL_TIME_SPEC_INT_MONTH_JAN 1 +# define OSSL_TIME_SPEC_INT_MONTH_FEB 2 +# define OSSL_TIME_SPEC_INT_MONTH_MAR 3 +# define OSSL_TIME_SPEC_INT_MONTH_APR 4 +# define OSSL_TIME_SPEC_INT_MONTH_MAY 5 +# define OSSL_TIME_SPEC_INT_MONTH_JUN 6 +# define OSSL_TIME_SPEC_INT_MONTH_JUL 7 +# define OSSL_TIME_SPEC_INT_MONTH_AUG 8 +# define OSSL_TIME_SPEC_INT_MONTH_SEP 9 +# define OSSL_TIME_SPEC_INT_MONTH_OCT 10 +# define OSSL_TIME_SPEC_INT_MONTH_NOV 11 +# define OSSL_TIME_SPEC_INT_MONTH_DEC 12 +# define OSSL_TIME_SPEC_BIT_MONTH_JAN 0 +# define OSSL_TIME_SPEC_BIT_MONTH_FEB 1 +# define OSSL_TIME_SPEC_BIT_MONTH_MAR 2 +# define OSSL_TIME_SPEC_BIT_MONTH_APR 3 +# define OSSL_TIME_SPEC_BIT_MONTH_MAY 4 +# define OSSL_TIME_SPEC_BIT_MONTH_JUN 5 +# define OSSL_TIME_SPEC_BIT_MONTH_JUL 6 +# define OSSL_TIME_SPEC_BIT_MONTH_AUG 7 +# define OSSL_TIME_SPEC_BIT_MONTH_SEP 8 +# define OSSL_TIME_SPEC_BIT_MONTH_OCT 9 +# define OSSL_TIME_SPEC_BIT_MONTH_NOV 10 +# define OSSL_TIME_SPEC_BIT_MONTH_DEC 11 + +typedef struct OSSL_TIME_SPEC_MONTH_st { + int type; + union { + ASN1_NULL *allMonths; + STACK_OF(ASN1_INTEGER) *intMonth; + ASN1_BIT_STRING *bitMonth; + } choice; +} OSSL_TIME_SPEC_MONTH; + +typedef struct OSSL_TIME_PERIOD_st { + STACK_OF(OSSL_DAY_TIME_BAND) *timesOfDay; + OSSL_TIME_SPEC_DAY *days; + OSSL_TIME_SPEC_WEEKS *weeks; + OSSL_TIME_SPEC_MONTH *months; + STACK_OF(ASN1_INTEGER) *years; +} OSSL_TIME_PERIOD; + +# define OSSL_TIME_SPEC_TIME_TYPE_ABSOLUTE 0 +# define OSSL_TIME_SPEC_TIME_TYPE_PERIODIC 1 + +typedef struct OSSL_TIME_SPEC_TIME_st { + int type; + union { + OSSL_TIME_SPEC_ABSOLUTE *absolute; + STACK_OF(OSSL_TIME_PERIOD) *periodic; + } choice; +} OSSL_TIME_SPEC_TIME; + +typedef struct OSSL_TIME_SPEC_st { + OSSL_TIME_SPEC_TIME *time; + ASN1_BOOLEAN notThisTime; + ASN1_INTEGER *timeZone; +} OSSL_TIME_SPEC; + +DECLARE_ASN1_FUNCTIONS(OSSL_DAY_TIME) +DECLARE_ASN1_FUNCTIONS(OSSL_DAY_TIME_BAND) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_DAY) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_WEEKS) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_MONTH) +DECLARE_ASN1_FUNCTIONS(OSSL_NAMED_DAY) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_X_DAY_OF) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_ABSOLUTE) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_TIME) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_PERIOD) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_TIME_PERIOD, OSSL_TIME_PERIOD, OSSL_TIME_PERIOD) +#define sk_OSSL_TIME_PERIOD_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_value(sk, idx) ((OSSL_TIME_PERIOD *)OPENSSL_sk_value(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk), (idx))) +#define sk_OSSL_TIME_PERIOD_new(cmp) ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_new(ossl_check_OSSL_TIME_PERIOD_compfunc_type(cmp))) +#define sk_OSSL_TIME_PERIOD_new_null() ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_new_null()) +#define sk_OSSL_TIME_PERIOD_new_reserve(cmp, n) ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_TIME_PERIOD_compfunc_type(cmp), (n))) +#define sk_OSSL_TIME_PERIOD_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), (n)) +#define sk_OSSL_TIME_PERIOD_free(sk) OPENSSL_sk_free(ossl_check_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_delete(sk, i) ((OSSL_TIME_PERIOD *)OPENSSL_sk_delete(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), (i))) +#define sk_OSSL_TIME_PERIOD_delete_ptr(sk, ptr) ((OSSL_TIME_PERIOD *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr))) +#define sk_OSSL_TIME_PERIOD_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr)) +#define sk_OSSL_TIME_PERIOD_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr)) +#define sk_OSSL_TIME_PERIOD_pop(sk) ((OSSL_TIME_PERIOD *)OPENSSL_sk_pop(ossl_check_OSSL_TIME_PERIOD_sk_type(sk))) +#define sk_OSSL_TIME_PERIOD_shift(sk) ((OSSL_TIME_PERIOD *)OPENSSL_sk_shift(ossl_check_OSSL_TIME_PERIOD_sk_type(sk))) +#define sk_OSSL_TIME_PERIOD_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_TIME_PERIOD_sk_type(sk),ossl_check_OSSL_TIME_PERIOD_freefunc_type(freefunc)) +#define sk_OSSL_TIME_PERIOD_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr), (idx)) +#define sk_OSSL_TIME_PERIOD_set(sk, idx, ptr) ((OSSL_TIME_PERIOD *)OPENSSL_sk_set(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), (idx), ossl_check_OSSL_TIME_PERIOD_type(ptr))) +#define sk_OSSL_TIME_PERIOD_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr)) +#define sk_OSSL_TIME_PERIOD_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr)) +#define sk_OSSL_TIME_PERIOD_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr), pnum) +#define sk_OSSL_TIME_PERIOD_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_dup(sk) ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_dup(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk))) +#define sk_OSSL_TIME_PERIOD_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_copyfunc_type(copyfunc), ossl_check_OSSL_TIME_PERIOD_freefunc_type(freefunc))) +#define sk_OSSL_TIME_PERIOD_set_cmp_func(sk, cmp) ((sk_OSSL_TIME_PERIOD_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_compfunc_type(cmp))) + + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_DAY_TIME_BAND, OSSL_DAY_TIME_BAND, OSSL_DAY_TIME_BAND) +#define sk_OSSL_DAY_TIME_BAND_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_value(sk, idx) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_value(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk), (idx))) +#define sk_OSSL_DAY_TIME_BAND_new(cmp) ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_new(ossl_check_OSSL_DAY_TIME_BAND_compfunc_type(cmp))) +#define sk_OSSL_DAY_TIME_BAND_new_null() ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_new_null()) +#define sk_OSSL_DAY_TIME_BAND_new_reserve(cmp, n) ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_DAY_TIME_BAND_compfunc_type(cmp), (n))) +#define sk_OSSL_DAY_TIME_BAND_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), (n)) +#define sk_OSSL_DAY_TIME_BAND_free(sk) OPENSSL_sk_free(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_delete(sk, i) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_delete(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), (i))) +#define sk_OSSL_DAY_TIME_BAND_delete_ptr(sk, ptr) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr))) +#define sk_OSSL_DAY_TIME_BAND_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr)) +#define sk_OSSL_DAY_TIME_BAND_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr)) +#define sk_OSSL_DAY_TIME_BAND_pop(sk) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_pop(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk))) +#define sk_OSSL_DAY_TIME_BAND_shift(sk) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_shift(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk))) +#define sk_OSSL_DAY_TIME_BAND_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk),ossl_check_OSSL_DAY_TIME_BAND_freefunc_type(freefunc)) +#define sk_OSSL_DAY_TIME_BAND_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr), (idx)) +#define sk_OSSL_DAY_TIME_BAND_set(sk, idx, ptr) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_set(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), (idx), ossl_check_OSSL_DAY_TIME_BAND_type(ptr))) +#define sk_OSSL_DAY_TIME_BAND_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr)) +#define sk_OSSL_DAY_TIME_BAND_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr)) +#define sk_OSSL_DAY_TIME_BAND_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr), pnum) +#define sk_OSSL_DAY_TIME_BAND_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_dup(sk) ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_dup(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk))) +#define sk_OSSL_DAY_TIME_BAND_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_copyfunc_type(copyfunc), ossl_check_OSSL_DAY_TIME_BAND_freefunc_type(freefunc))) +#define sk_OSSL_DAY_TIME_BAND_set_cmp_func(sk, cmp) ((sk_OSSL_DAY_TIME_BAND_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_compfunc_type(cmp))) + + +/* Attribute Type and Value */ +typedef struct atav_st { + ASN1_OBJECT *type; + ASN1_TYPE *value; +} OSSL_ATAV; + +typedef struct ATTRIBUTE_TYPE_MAPPING_st { + ASN1_OBJECT *local; + ASN1_OBJECT *remote; +} OSSL_ATTRIBUTE_TYPE_MAPPING; + +typedef struct ATTRIBUTE_VALUE_MAPPING_st { + OSSL_ATAV *local; + OSSL_ATAV *remote; +} OSSL_ATTRIBUTE_VALUE_MAPPING; + +# define OSSL_ATTR_MAP_TYPE 0 +# define OSSL_ATTR_MAP_VALUE 1 + +typedef struct ATTRIBUTE_MAPPING_st { + int type; + union { + OSSL_ATTRIBUTE_TYPE_MAPPING *typeMappings; + OSSL_ATTRIBUTE_VALUE_MAPPING *typeValueMappings; + } choice; +} OSSL_ATTRIBUTE_MAPPING; + +typedef STACK_OF(OSSL_ATTRIBUTE_MAPPING) OSSL_ATTRIBUTE_MAPPINGS; +DECLARE_ASN1_FUNCTIONS(OSSL_ATAV) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_TYPE_MAPPING) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_VALUE_MAPPING) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_MAPPING) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_MAPPINGS) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ATTRIBUTE_MAPPING, OSSL_ATTRIBUTE_MAPPING, OSSL_ATTRIBUTE_MAPPING) +#define sk_OSSL_ATTRIBUTE_MAPPING_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_value(sk, idx) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_value(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), (idx))) +#define sk_OSSL_ATTRIBUTE_MAPPING_new(cmp) ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_new(ossl_check_OSSL_ATTRIBUTE_MAPPING_compfunc_type(cmp))) +#define sk_OSSL_ATTRIBUTE_MAPPING_new_null() ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ATTRIBUTE_MAPPING_new_reserve(cmp, n) ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ATTRIBUTE_MAPPING_compfunc_type(cmp), (n))) +#define sk_OSSL_ATTRIBUTE_MAPPING_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), (n)) +#define sk_OSSL_ATTRIBUTE_MAPPING_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_delete(sk, i) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_delete(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), (i))) +#define sk_OSSL_ATTRIBUTE_MAPPING_delete_ptr(sk, ptr) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr))) +#define sk_OSSL_ATTRIBUTE_MAPPING_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr)) +#define sk_OSSL_ATTRIBUTE_MAPPING_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr)) +#define sk_OSSL_ATTRIBUTE_MAPPING_pop(sk) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_pop(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk))) +#define sk_OSSL_ATTRIBUTE_MAPPING_shift(sk) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_shift(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk))) +#define sk_OSSL_ATTRIBUTE_MAPPING_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk),ossl_check_OSSL_ATTRIBUTE_MAPPING_freefunc_type(freefunc)) +#define sk_OSSL_ATTRIBUTE_MAPPING_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr), (idx)) +#define sk_OSSL_ATTRIBUTE_MAPPING_set(sk, idx, ptr) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_set(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), (idx), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr))) +#define sk_OSSL_ATTRIBUTE_MAPPING_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr)) +#define sk_OSSL_ATTRIBUTE_MAPPING_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr)) +#define sk_OSSL_ATTRIBUTE_MAPPING_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr), pnum) +#define sk_OSSL_ATTRIBUTE_MAPPING_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_dup(sk) ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk))) +#define sk_OSSL_ATTRIBUTE_MAPPING_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_copyfunc_type(copyfunc), ossl_check_OSSL_ATTRIBUTE_MAPPING_freefunc_type(freefunc))) +#define sk_OSSL_ATTRIBUTE_MAPPING_set_cmp_func(sk, cmp) ((sk_OSSL_ATTRIBUTE_MAPPING_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_compfunc_type(cmp))) + + +# define OSSL_AAA_ATTRIBUTE_TYPE 0 +# define OSSL_AAA_ATTRIBUTE_VALUES 1 + +typedef struct ALLOWED_ATTRIBUTES_CHOICE_st { + int type; + union { + ASN1_OBJECT *attributeType; + X509_ATTRIBUTE *attributeTypeandValues; + } choice; +} OSSL_ALLOWED_ATTRIBUTES_CHOICE; + +typedef struct ALLOWED_ATTRIBUTES_ITEM_st { + STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *attributes; + GENERAL_NAME *holderDomain; +} OSSL_ALLOWED_ATTRIBUTES_ITEM; + +typedef STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) OSSL_ALLOWED_ATTRIBUTES_SYNTAX; + +DECLARE_ASN1_FUNCTIONS(OSSL_ALLOWED_ATTRIBUTES_CHOICE) +DECLARE_ASN1_FUNCTIONS(OSSL_ALLOWED_ATTRIBUTES_ITEM) +DECLARE_ASN1_FUNCTIONS(OSSL_ALLOWED_ATTRIBUTES_SYNTAX) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ALLOWED_ATTRIBUTES_CHOICE, OSSL_ALLOWED_ATTRIBUTES_CHOICE, OSSL_ALLOWED_ATTRIBUTES_CHOICE) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_value(sk, idx) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_value(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), (idx))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_new(cmp) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_new(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_compfunc_type(cmp))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_new_null() ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_new_reserve(cmp, n) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_compfunc_type(cmp), (n))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), (n)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_delete(sk, i) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_delete(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), (i))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_delete_ptr(sk, ptr) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_pop(sk) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_pop(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_shift(sk) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_shift(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk),ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_freefunc_type(freefunc)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr), (idx)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_set(sk, idx, ptr) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_set(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), (idx), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr), pnum) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_dup(sk) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_copyfunc_type(copyfunc), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_freefunc_type(freefunc))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_set_cmp_func(sk, cmp) ((sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_compfunc_type(cmp))) + + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ALLOWED_ATTRIBUTES_ITEM, OSSL_ALLOWED_ATTRIBUTES_ITEM, OSSL_ALLOWED_ATTRIBUTES_ITEM) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_value(sk, idx) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_value(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), (idx))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_new(cmp) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_new(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_compfunc_type(cmp))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_new_null() ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_new_reserve(cmp, n) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_compfunc_type(cmp), (n))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), (n)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_delete(sk, i) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_delete(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), (i))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_delete_ptr(sk, ptr) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_pop(sk) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_pop(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_shift(sk) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_shift(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk),ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_freefunc_type(freefunc)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr), (idx)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_set(sk, idx, ptr) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_set(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), (idx), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr), pnum) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_dup(sk) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_copyfunc_type(copyfunc), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_freefunc_type(freefunc))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_set_cmp_func(sk, cmp) ((sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_compfunc_type(cmp))) + + +typedef struct AA_DIST_POINT_st { + DIST_POINT_NAME *distpoint; + ASN1_BIT_STRING *reasons; + int dp_reasons; + ASN1_BOOLEAN indirectCRL; + ASN1_BOOLEAN containsUserAttributeCerts; + ASN1_BOOLEAN containsAACerts; + ASN1_BOOLEAN containsSOAPublicKeyCerts; +} OSSL_AA_DIST_POINT; + +DECLARE_ASN1_FUNCTIONS(OSSL_AA_DIST_POINT) + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/include/progs.h b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/include/progs.h index be55f61503d405..1b62ec37dec130 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/include/progs.h +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/include/progs.h @@ -56,6 +56,7 @@ extern int s_client_main(int argc, char *argv[]); extern int s_server_main(int argc, char *argv[]); extern int s_time_main(int argc, char *argv[]); extern int sess_id_main(int argc, char *argv[]); +extern int skeyutl_main(int argc, char *argv[]); extern int smime_main(int argc, char *argv[]); extern int speed_main(int argc, char *argv[]); extern int spkac_main(int argc, char *argv[]); @@ -110,6 +111,7 @@ extern const OPTIONS s_client_options[]; extern const OPTIONS s_server_options[]; extern const OPTIONS s_time_options[]; extern const OPTIONS sess_id_options[]; +extern const OPTIONS skeyutl_options[]; extern const OPTIONS smime_options[]; extern const OPTIONS speed_options[]; extern const OPTIONS spkac_options[]; diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/openssl-cl.gypi b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/openssl-cl.gypi index 6fc980121a0b7e..e6837cf2fbb1be 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/openssl-cl.gypi +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/openssl-cl.gypi @@ -83,6 +83,7 @@ 'openssl/apps/s_server.c', 'openssl/apps/s_time.c', 'openssl/apps/sess_id.c', + 'openssl/apps/skeyutl.c', 'openssl/apps/smime.c', 'openssl/apps/speed.c', 'openssl/apps/spkac.c', @@ -98,12 +99,14 @@ 'openssl/apps/lib/app_rand.c', 'openssl/apps/lib/app_x509.c', 'openssl/apps/lib/apps.c', + 'openssl/apps/lib/apps_opt_printf.c', 'openssl/apps/lib/apps_ui.c', 'openssl/apps/lib/columns.c', 'openssl/apps/lib/engine.c', 'openssl/apps/lib/engine_loader.c', 'openssl/apps/lib/fmt.c', 'openssl/apps/lib/http_server.c', + 'openssl/apps/lib/log.c', 'openssl/apps/lib/names.c', 'openssl/apps/lib/opt.c', 'openssl/apps/lib/s_cb.c', diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/openssl-fips.gypi b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/openssl-fips.gypi index f7bd0eb9d5f353..d410da85b3130f 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/openssl-fips.gypi +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/openssl-fips.gypi @@ -101,14 +101,15 @@ 'openssl/crypto/evp/kem.c', 'openssl/crypto/evp/keymgmt_lib.c', 'openssl/crypto/evp/keymgmt_meth.c', - 'openssl/crypto/evp/m_sigver.c', 'openssl/crypto/evp/mac_lib.c', 'openssl/crypto/evp/mac_meth.c', 'openssl/crypto/evp/p_lib.c', 'openssl/crypto/evp/pmeth_check.c', 'openssl/crypto/evp/pmeth_gn.c', 'openssl/crypto/evp/pmeth_lib.c', + 'openssl/crypto/evp/s_lib.c', 'openssl/crypto/evp/signature.c', + 'openssl/crypto/evp/skeymgmt_meth.c', 'openssl/crypto/ffc/ffc_backend.c', 'openssl/crypto/ffc/ffc_dh.c', 'openssl/crypto/ffc/ffc_key_generate.c', @@ -116,6 +117,8 @@ 'openssl/crypto/ffc/ffc_params.c', 'openssl/crypto/ffc/ffc_params_generate.c', 'openssl/crypto/ffc/ffc_params_validate.c', + 'openssl/crypto/hashtable/hashfunc.c', + 'openssl/crypto/hashtable/hashtable.c', 'openssl/crypto/hmac/hmac.c', 'openssl/crypto/lhash/lhash.c', 'openssl/crypto/asn1_dsa.c', @@ -145,6 +148,16 @@ 'openssl/crypto/threads_none.c', 'openssl/crypto/threads_pthread.c', 'openssl/crypto/threads_win.c', + 'openssl/crypto/time.c', + 'openssl/crypto/ml_dsa/ml_dsa_encoders.c', + 'openssl/crypto/ml_dsa/ml_dsa_key.c', + 'openssl/crypto/ml_dsa/ml_dsa_key_compress.c', + 'openssl/crypto/ml_dsa/ml_dsa_matrix.c', + 'openssl/crypto/ml_dsa/ml_dsa_ntt.c', + 'openssl/crypto/ml_dsa/ml_dsa_params.c', + 'openssl/crypto/ml_dsa/ml_dsa_sample.c', + 'openssl/crypto/ml_dsa/ml_dsa_sign.c', + 'openssl/crypto/ml_kem/ml_kem.c', 'openssl/crypto/modes/cbc128.c', 'openssl/crypto/modes/ccm128.c', 'openssl/crypto/modes/cfb128.c', @@ -153,6 +166,7 @@ 'openssl/crypto/modes/ofb128.c', 'openssl/crypto/modes/wrap128.c', 'openssl/crypto/modes/xts128.c', + 'openssl/crypto/modes/xts128gb.c', 'openssl/crypto/property/defn_cache.c', 'openssl/crypto/property/property.c', 'openssl/crypto/property/property_parse.c', @@ -180,7 +194,23 @@ 'openssl/crypto/sha/sha256.c', 'openssl/crypto/sha/sha3.c', 'openssl/crypto/sha/sha512.c', + 'openssl/crypto/slh_dsa/slh_adrs.c', + 'openssl/crypto/slh_dsa/slh_dsa.c', + 'openssl/crypto/slh_dsa/slh_dsa_hash_ctx.c', + 'openssl/crypto/slh_dsa/slh_dsa_key.c', + 'openssl/crypto/slh_dsa/slh_fors.c', + 'openssl/crypto/slh_dsa/slh_hash.c', + 'openssl/crypto/slh_dsa/slh_hypertree.c', + 'openssl/crypto/slh_dsa/slh_params.c', + 'openssl/crypto/slh_dsa/slh_wots.c', + 'openssl/crypto/slh_dsa/slh_xmss.c', 'openssl/crypto/stack/stack.c', + 'openssl/crypto/thread/arch/thread_none.c', + 'openssl/crypto/thread/arch/thread_posix.c', + 'openssl/crypto/thread/arch/thread_win.c', + 'openssl/crypto/thread/api.c', + 'openssl/crypto/thread/arch.c', + 'openssl/crypto/thread/internal.c', 'openssl/providers/common/der/der_rsa_sig.c', 'openssl/providers/common/bio_prov.c', 'openssl/providers/common/capabilities.c', @@ -189,6 +219,7 @@ 'openssl/providers/common/provider_util.c', 'openssl/providers/common/securitycheck.c', 'openssl/providers/common/securitycheck_fips.c', + 'openssl/providers/fips/fipsindicator.c', 'openssl/providers/fips/fipsprov.c', 'openssl/providers/fips/self_test.c', 'openssl/providers/fips/self_test_kats.c', @@ -226,6 +257,8 @@ 'openssl/providers/implementations/kdfs/sskdf.c', 'openssl/providers/implementations/kdfs/tls1_prf.c', 'openssl/providers/implementations/kdfs/x942kdf.c', + 'openssl/providers/implementations/kem/ml_kem_kem.c', + 'openssl/providers/implementations/kem/mlx_kem.c', 'openssl/providers/implementations/kem/rsa_kem.c', 'openssl/providers/implementations/keymgmt/dh_kmgmt.c', 'openssl/providers/implementations/keymgmt/dsa_kmgmt.c', @@ -233,29 +266,39 @@ 'openssl/providers/implementations/keymgmt/ecx_kmgmt.c', 'openssl/providers/implementations/keymgmt/kdf_legacy_kmgmt.c', 'openssl/providers/implementations/keymgmt/mac_legacy_kmgmt.c', + 'openssl/providers/implementations/keymgmt/ml_dsa_kmgmt.c', + 'openssl/providers/implementations/keymgmt/ml_kem_kmgmt.c', + 'openssl/providers/implementations/keymgmt/mlx_kmgmt.c', 'openssl/providers/implementations/keymgmt/rsa_kmgmt.c', + 'openssl/providers/implementations/keymgmt/slh_dsa_kmgmt.c', 'openssl/providers/implementations/macs/cmac_prov.c', 'openssl/providers/implementations/macs/gmac_prov.c', 'openssl/providers/implementations/macs/hmac_prov.c', 'openssl/providers/implementations/macs/kmac_prov.c', - 'openssl/providers/implementations/rands/crngt.c', 'openssl/providers/implementations/rands/drbg.c', 'openssl/providers/implementations/rands/drbg_ctr.c', 'openssl/providers/implementations/rands/drbg_hash.c', 'openssl/providers/implementations/rands/drbg_hmac.c', + 'openssl/providers/implementations/rands/fips_crng_test.c', 'openssl/providers/implementations/rands/test_rng.c', 'openssl/providers/implementations/signature/dsa_sig.c', 'openssl/providers/implementations/signature/ecdsa_sig.c', 'openssl/providers/implementations/signature/eddsa_sig.c', 'openssl/providers/implementations/signature/mac_legacy_sig.c', + 'openssl/providers/implementations/signature/ml_dsa_sig.c', 'openssl/providers/implementations/signature/rsa_sig.c', - 'openssl/ssl/s3_cbc.c', + 'openssl/providers/implementations/signature/slh_dsa_sig.c', + 'openssl/providers/implementations/skeymgmt/aes_skmgmt.c', + 'openssl/providers/implementations/skeymgmt/generic.c', + 'openssl/ssl/record/methods/ssl3_cbc.c', 'openssl/providers/common/der/der_dsa_key.c', 'openssl/providers/common/der/der_dsa_sig.c', 'openssl/providers/common/der/der_ec_key.c', 'openssl/providers/common/der/der_ec_sig.c', 'openssl/providers/common/der/der_ecx_key.c', + 'openssl/providers/common/der/der_ml_dsa_key.c', 'openssl/providers/common/der/der_rsa_key.c', + 'openssl/providers/common/der/der_slh_dsa_key.c', 'openssl/providers/common/provider_ctx.c', 'openssl/providers/common/provider_err.c', 'openssl/providers/implementations/ciphers/ciphercommon.c', @@ -266,7 +309,7 @@ 'openssl/providers/implementations/ciphers/ciphercommon_gcm_hw.c', 'openssl/providers/implementations/ciphers/ciphercommon_hw.c', 'openssl/providers/implementations/digests/digestcommon.c', - 'openssl/ssl/record/tls_pad.c', + 'openssl/ssl/record/methods/tls_pad.c', 'openssl/providers/fips/fips_entry.c', ], @@ -276,10 +319,16 @@ './config/archs/darwin64-x86_64-cc/asm/crypto/aes/aesni-sha1-x86_64.s', './config/archs/darwin64-x86_64-cc/asm/crypto/aes/aesni-sha256-x86_64.s', './config/archs/darwin64-x86_64-cc/asm/crypto/aes/aesni-x86_64.s', + './config/archs/darwin64-x86_64-cc/asm/crypto/aes/aesni-xts-avx512.s', './config/archs/darwin64-x86_64-cc/asm/crypto/aes/bsaes-x86_64.s', './config/archs/darwin64-x86_64-cc/asm/crypto/aes/vpaes-x86_64.s', + './config/archs/darwin64-x86_64-cc/asm/crypto/bn/rsaz-2k-avx512.s', + './config/archs/darwin64-x86_64-cc/asm/crypto/bn/rsaz-2k-avxifma.s', + './config/archs/darwin64-x86_64-cc/asm/crypto/bn/rsaz-3k-avx512.s', + './config/archs/darwin64-x86_64-cc/asm/crypto/bn/rsaz-3k-avxifma.s', + './config/archs/darwin64-x86_64-cc/asm/crypto/bn/rsaz-4k-avx512.s', + './config/archs/darwin64-x86_64-cc/asm/crypto/bn/rsaz-4k-avxifma.s', './config/archs/darwin64-x86_64-cc/asm/crypto/bn/rsaz-avx2.s', - './config/archs/darwin64-x86_64-cc/asm/crypto/bn/rsaz-avx512.s', './config/archs/darwin64-x86_64-cc/asm/crypto/bn/rsaz-x86_64.s', './config/archs/darwin64-x86_64-cc/asm/crypto/bn/x86_64-gf2m.s', './config/archs/darwin64-x86_64-cc/asm/crypto/bn/x86_64-mont.s', @@ -288,8 +337,10 @@ './config/archs/darwin64-x86_64-cc/asm/crypto/chacha/chacha-x86_64.s', './config/archs/darwin64-x86_64-cc/asm/crypto/ec/ecp_nistz256-x86_64.s', './config/archs/darwin64-x86_64-cc/asm/crypto/ec/x25519-x86_64.s', + './config/archs/darwin64-x86_64-cc/asm/crypto/params_idx.c', './config/archs/darwin64-x86_64-cc/asm/crypto/x86_64cpuid.s', './config/archs/darwin64-x86_64-cc/asm/crypto/md5/md5-x86_64.s', + './config/archs/darwin64-x86_64-cc/asm/crypto/modes/aes-gcm-avx512.s', './config/archs/darwin64-x86_64-cc/asm/crypto/modes/aesni-gcm-x86_64.s', './config/archs/darwin64-x86_64-cc/asm/crypto/modes/ghash-x86_64.s', './config/archs/darwin64-x86_64-cc/asm/crypto/poly1305/poly1305-x86_64.s', @@ -308,7 +359,9 @@ './config/archs/darwin64-x86_64-cc/asm/providers/common/der/der_dsa_gen.c', './config/archs/darwin64-x86_64-cc/asm/providers/common/der/der_ec_gen.c', './config/archs/darwin64-x86_64-cc/asm/providers/common/der/der_ecx_gen.c', + './config/archs/darwin64-x86_64-cc/asm/providers/common/der/der_ml_dsa_gen.c', './config/archs/darwin64-x86_64-cc/asm/providers/common/der/der_rsa_gen.c', + './config/archs/darwin64-x86_64-cc/asm/providers/common/der/der_slh_dsa_gen.c', './config/archs/darwin64-x86_64-cc/asm/providers/common/der/der_wrap_gen.c', ], diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/openssl.gypi b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/openssl.gypi index 10a92888817f0e..e9c2bc3974dd4d 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/openssl.gypi +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/openssl.gypi @@ -7,14 +7,15 @@ 'openssl/ssl/d1_srtp.c', 'openssl/ssl/methods.c', 'openssl/ssl/pqueue.c', + 'openssl/ssl/priority_queue.c', 'openssl/ssl/s3_enc.c', 'openssl/ssl/s3_lib.c', 'openssl/ssl/s3_msg.c', 'openssl/ssl/ssl_asn1.c', 'openssl/ssl/ssl_cert.c', + 'openssl/ssl/ssl_cert_comp.c', 'openssl/ssl/ssl_ciph.c', 'openssl/ssl/ssl_conf.c', - 'openssl/ssl/ssl_err.c', 'openssl/ssl/ssl_err_legacy.c', 'openssl/ssl/ssl_init.c', 'openssl/ssl/ssl_lib.c', @@ -31,12 +32,60 @@ 'openssl/ssl/tls13_enc.c', 'openssl/ssl/tls_depr.c', 'openssl/ssl/tls_srp.c', - 'openssl/ssl/record/dtls1_bitmap.c', + 'openssl/ssl/quic/cc_newreno.c', + 'openssl/ssl/quic/json_enc.c', + 'openssl/ssl/quic/qlog.c', + 'openssl/ssl/quic/qlog_event_helpers.c', + 'openssl/ssl/quic/quic_ackm.c', + 'openssl/ssl/quic/quic_cfq.c', + 'openssl/ssl/quic/quic_channel.c', + 'openssl/ssl/quic/quic_demux.c', + 'openssl/ssl/quic/quic_engine.c', + 'openssl/ssl/quic/quic_fc.c', + 'openssl/ssl/quic/quic_fifd.c', + 'openssl/ssl/quic/quic_impl.c', + 'openssl/ssl/quic/quic_lcidm.c', + 'openssl/ssl/quic/quic_method.c', + 'openssl/ssl/quic/quic_obj.c', + 'openssl/ssl/quic/quic_port.c', + 'openssl/ssl/quic/quic_rcidm.c', + 'openssl/ssl/quic/quic_reactor.c', + 'openssl/ssl/quic/quic_reactor_wait_ctx.c', + 'openssl/ssl/quic/quic_record_rx.c', + 'openssl/ssl/quic/quic_record_shared.c', + 'openssl/ssl/quic/quic_record_tx.c', + 'openssl/ssl/quic/quic_record_util.c', + 'openssl/ssl/quic/quic_rstream.c', + 'openssl/ssl/quic/quic_rx_depack.c', + 'openssl/ssl/quic/quic_sf_list.c', + 'openssl/ssl/quic/quic_srt_gen.c', + 'openssl/ssl/quic/quic_srtm.c', + 'openssl/ssl/quic/quic_sstream.c', + 'openssl/ssl/quic/quic_statm.c', + 'openssl/ssl/quic/quic_stream_map.c', + 'openssl/ssl/quic/quic_thread_assist.c', + 'openssl/ssl/quic/quic_tls.c', + 'openssl/ssl/quic/quic_tls_api.c', + 'openssl/ssl/quic/quic_trace.c', + 'openssl/ssl/quic/quic_tserver.c', + 'openssl/ssl/quic/quic_txp.c', + 'openssl/ssl/quic/quic_txpim.c', + 'openssl/ssl/quic/quic_types.c', + 'openssl/ssl/quic/quic_wire.c', + 'openssl/ssl/quic/quic_wire_pkt.c', + 'openssl/ssl/quic/uint_set.c', 'openssl/ssl/record/rec_layer_d1.c', 'openssl/ssl/record/rec_layer_s3.c', - 'openssl/ssl/record/ssl3_buffer.c', - 'openssl/ssl/record/ssl3_record.c', - 'openssl/ssl/record/ssl3_record_tls13.c', + 'openssl/ssl/record/methods/dtls_meth.c', + 'openssl/ssl/record/methods/ssl3_meth.c', + 'openssl/ssl/record/methods/tls13_meth.c', + 'openssl/ssl/record/methods/tls1_meth.c', + 'openssl/ssl/record/methods/tls_common.c', + 'openssl/ssl/record/methods/tls_multib.c', + 'openssl/ssl/record/methods/tlsany_meth.c', + 'openssl/ssl/rio/poll_builder.c', + 'openssl/ssl/rio/poll_immediate.c', + 'openssl/ssl/rio/rio_notifier.c', 'openssl/ssl/statem/extensions.c', 'openssl/ssl/statem/extensions_clnt.c', 'openssl/ssl/statem/extensions_cust.c', @@ -148,6 +197,7 @@ 'openssl/crypto/bio/bss_conn.c', 'openssl/crypto/bio/bss_core.c', 'openssl/crypto/bio/bss_dgram.c', + 'openssl/crypto/bio/bss_dgram_pair.c', 'openssl/crypto/bio/bss_fd.c', 'openssl/crypto/bio/bss_file.c', 'openssl/crypto/bio/bss_log.c', @@ -207,6 +257,7 @@ 'openssl/crypto/cmp/cmp_client.c', 'openssl/crypto/cmp/cmp_ctx.c', 'openssl/crypto/cmp/cmp_err.c', + 'openssl/crypto/cmp/cmp_genm.c', 'openssl/crypto/cmp/cmp_hdr.c', 'openssl/crypto/cmp/cmp_http.c', 'openssl/crypto/cmp/cmp_msg.c', @@ -383,7 +434,9 @@ 'openssl/crypto/err/err_all.c', 'openssl/crypto/err/err_all_legacy.c', 'openssl/crypto/err/err_blocks.c', + 'openssl/crypto/err/err_mark.c', 'openssl/crypto/err/err_prn.c', + 'openssl/crypto/err/err_save.c', 'openssl/crypto/ess/ess_asn1.c', 'openssl/crypto/ess/ess_err.c', 'openssl/crypto/ess/ess_lib.c', @@ -466,7 +519,9 @@ 'openssl/crypto/evp/pmeth_check.c', 'openssl/crypto/evp/pmeth_gn.c', 'openssl/crypto/evp/pmeth_lib.c', + 'openssl/crypto/evp/s_lib.c', 'openssl/crypto/evp/signature.c', + 'openssl/crypto/evp/skeymgmt_meth.c', 'openssl/crypto/ffc/ffc_backend.c', 'openssl/crypto/ffc/ffc_dh.c', 'openssl/crypto/ffc/ffc_key_generate.c', @@ -474,7 +529,11 @@ 'openssl/crypto/ffc/ffc_params.c', 'openssl/crypto/ffc/ffc_params_generate.c', 'openssl/crypto/ffc/ffc_params_validate.c', + 'openssl/crypto/hashtable/hashfunc.c', + 'openssl/crypto/hashtable/hashtable.c', 'openssl/crypto/hmac/hmac.c', + 'openssl/crypto/hpke/hpke.c', + 'openssl/crypto/hpke/hpke_util.c', 'openssl/crypto/http/http_client.c', 'openssl/crypto/http/http_err.c', 'openssl/crypto/http/http_lib.c', @@ -488,6 +547,7 @@ 'openssl/crypto/lhash/lhash.c', 'openssl/crypto/asn1_dsa.c', 'openssl/crypto/bsearch.c', + 'openssl/crypto/comp_methods.c', 'openssl/crypto/context.c', 'openssl/crypto/core_algorithm.c', 'openssl/crypto/core_fetch.c', @@ -497,10 +557,13 @@ 'openssl/crypto/cryptlib.c', 'openssl/crypto/ctype.c', 'openssl/crypto/cversion.c', + 'openssl/crypto/defaults.c', 'openssl/crypto/der_writer.c', + 'openssl/crypto/deterministic_nonce.c', 'openssl/crypto/ebcdic.c', 'openssl/crypto/ex_data.c', 'openssl/crypto/getenv.c', + 'openssl/crypto/indicator_core.c', 'openssl/crypto/info.c', 'openssl/crypto/init.c', 'openssl/crypto/initthread.c', @@ -524,12 +587,16 @@ 'openssl/crypto/provider_core.c', 'openssl/crypto/provider_predefined.c', 'openssl/crypto/punycode.c', + 'openssl/crypto/quic_vlint.c', 'openssl/crypto/self_test_core.c', + 'openssl/crypto/sleep.c', 'openssl/crypto/sparse_array.c', + 'openssl/crypto/ssl_err.c', 'openssl/crypto/threads_lib.c', 'openssl/crypto/threads_none.c', 'openssl/crypto/threads_pthread.c', 'openssl/crypto/threads_win.c', + 'openssl/crypto/time.c', 'openssl/crypto/trace.c', 'openssl/crypto/uid.c', 'openssl/crypto/md4/md4_dgst.c', @@ -539,6 +606,15 @@ 'openssl/crypto/md5/md5_sha1.c', 'openssl/crypto/mdc2/mdc2_one.c', 'openssl/crypto/mdc2/mdc2dgst.c', + 'openssl/crypto/ml_dsa/ml_dsa_encoders.c', + 'openssl/crypto/ml_dsa/ml_dsa_key.c', + 'openssl/crypto/ml_dsa/ml_dsa_key_compress.c', + 'openssl/crypto/ml_dsa/ml_dsa_matrix.c', + 'openssl/crypto/ml_dsa/ml_dsa_ntt.c', + 'openssl/crypto/ml_dsa/ml_dsa_params.c', + 'openssl/crypto/ml_dsa/ml_dsa_sample.c', + 'openssl/crypto/ml_dsa/ml_dsa_sign.c', + 'openssl/crypto/ml_kem/ml_kem.c', 'openssl/crypto/modes/cbc128.c', 'openssl/crypto/modes/ccm128.c', 'openssl/crypto/modes/cfb128.c', @@ -550,6 +626,7 @@ 'openssl/crypto/modes/siv128.c', 'openssl/crypto/modes/wrap128.c', 'openssl/crypto/modes/xts128.c', + 'openssl/crypto/modes/xts128gb.c', 'openssl/crypto/objects/o_names.c', 'openssl/crypto/objects/obj_dat.c', 'openssl/crypto/objects/obj_err.c', @@ -613,6 +690,7 @@ 'openssl/crypto/rand/rand_lib.c', 'openssl/crypto/rand/rand_meth.c', 'openssl/crypto/rand/rand_pool.c', + 'openssl/crypto/rand/rand_uniform.c', 'openssl/crypto/rand/randfile.c', 'openssl/crypto/rc2/rc2_cbc.c', 'openssl/crypto/rc2/rc2_ecb.c', @@ -658,6 +736,16 @@ 'openssl/crypto/sha/sha3.c', 'openssl/crypto/sha/sha512.c', 'openssl/crypto/siphash/siphash.c', + 'openssl/crypto/slh_dsa/slh_adrs.c', + 'openssl/crypto/slh_dsa/slh_dsa.c', + 'openssl/crypto/slh_dsa/slh_dsa_hash_ctx.c', + 'openssl/crypto/slh_dsa/slh_dsa_key.c', + 'openssl/crypto/slh_dsa/slh_fors.c', + 'openssl/crypto/slh_dsa/slh_hash.c', + 'openssl/crypto/slh_dsa/slh_hypertree.c', + 'openssl/crypto/slh_dsa/slh_params.c', + 'openssl/crypto/slh_dsa/slh_wots.c', + 'openssl/crypto/slh_dsa/slh_xmss.c', 'openssl/crypto/sm2/sm2_crypt.c', 'openssl/crypto/sm2/sm2_err.c', 'openssl/crypto/sm2/sm2_key.c', @@ -675,6 +763,12 @@ 'openssl/crypto/store/store_register.c', 'openssl/crypto/store/store_result.c', 'openssl/crypto/store/store_strings.c', + 'openssl/crypto/thread/arch/thread_none.c', + 'openssl/crypto/thread/arch/thread_posix.c', + 'openssl/crypto/thread/arch/thread_win.c', + 'openssl/crypto/thread/api.c', + 'openssl/crypto/thread/arch.c', + 'openssl/crypto/thread/internal.c', 'openssl/crypto/ts/ts_asn1.c', 'openssl/crypto/ts/ts_conf.c', 'openssl/crypto/ts/ts_err.c', @@ -702,14 +796,22 @@ 'openssl/crypto/x509/pcy_map.c', 'openssl/crypto/x509/pcy_node.c', 'openssl/crypto/x509/pcy_tree.c', + 'openssl/crypto/x509/t_acert.c', 'openssl/crypto/x509/t_crl.c', 'openssl/crypto/x509/t_req.c', 'openssl/crypto/x509/t_x509.c', + 'openssl/crypto/x509/v3_aaa.c', + 'openssl/crypto/x509/v3_ac_tgt.c', 'openssl/crypto/x509/v3_addr.c', 'openssl/crypto/x509/v3_admis.c', 'openssl/crypto/x509/v3_akeya.c', 'openssl/crypto/x509/v3_akid.c', 'openssl/crypto/x509/v3_asid.c', + 'openssl/crypto/x509/v3_attrdesc.c', + 'openssl/crypto/x509/v3_attrmap.c', + 'openssl/crypto/x509/v3_audit_id.c', + 'openssl/crypto/x509/v3_authattid.c', + 'openssl/crypto/x509/v3_battcons.c', 'openssl/crypto/x509/v3_bcons.c', 'openssl/crypto/x509/v3_bitst.c', 'openssl/crypto/x509/v3_conf.c', @@ -718,12 +820,17 @@ 'openssl/crypto/x509/v3_enum.c', 'openssl/crypto/x509/v3_extku.c', 'openssl/crypto/x509/v3_genn.c', + 'openssl/crypto/x509/v3_group_ac.c', 'openssl/crypto/x509/v3_ia5.c', + 'openssl/crypto/x509/v3_ind_iss.c', 'openssl/crypto/x509/v3_info.c', 'openssl/crypto/x509/v3_int.c', + 'openssl/crypto/x509/v3_iobo.c', 'openssl/crypto/x509/v3_ist.c', 'openssl/crypto/x509/v3_lib.c', 'openssl/crypto/x509/v3_ncons.c', + 'openssl/crypto/x509/v3_no_ass.c', + 'openssl/crypto/x509/v3_no_rev_avail.c', 'openssl/crypto/x509/v3_pci.c', 'openssl/crypto/x509/v3_pcia.c', 'openssl/crypto/x509/v3_pcons.c', @@ -731,13 +838,20 @@ 'openssl/crypto/x509/v3_pmaps.c', 'openssl/crypto/x509/v3_prn.c', 'openssl/crypto/x509/v3_purp.c', + 'openssl/crypto/x509/v3_rolespec.c', 'openssl/crypto/x509/v3_san.c', + 'openssl/crypto/x509/v3_sda.c', + 'openssl/crypto/x509/v3_single_use.c', 'openssl/crypto/x509/v3_skid.c', + 'openssl/crypto/x509/v3_soa_id.c', 'openssl/crypto/x509/v3_sxnet.c', + 'openssl/crypto/x509/v3_timespec.c', 'openssl/crypto/x509/v3_tlsf.c', + 'openssl/crypto/x509/v3_usernotice.c', 'openssl/crypto/x509/v3_utf8.c', 'openssl/crypto/x509/v3_utl.c', 'openssl/crypto/x509/v3err.c', + 'openssl/crypto/x509/x509_acert.c', 'openssl/crypto/x509/x509_att.c', 'openssl/crypto/x509/x509_cmp.c', 'openssl/crypto/x509/x509_d2.c', @@ -755,6 +869,7 @@ 'openssl/crypto/x509/x509_v3.c', 'openssl/crypto/x509/x509_vfy.c', 'openssl/crypto/x509/x509_vpm.c', + 'openssl/crypto/x509/x509aset.c', 'openssl/crypto/x509/x509cset.c', 'openssl/crypto/x509/x509name.c', 'openssl/crypto/x509/x509rset.c', @@ -764,6 +879,7 @@ 'openssl/crypto/x509/x_attrib.c', 'openssl/crypto/x509/x_crl.c', 'openssl/crypto/x509/x_exten.c', + 'openssl/crypto/x509/x_ietfatt.c', 'openssl/crypto/x509/x_name.c', 'openssl/crypto/x509/x_pubkey.c', 'openssl/crypto/x509/x_req.c', @@ -795,6 +911,9 @@ 'openssl/providers/implementations/ciphers/cipher_aes_ccm_hw.c', 'openssl/providers/implementations/ciphers/cipher_aes_gcm.c', 'openssl/providers/implementations/ciphers/cipher_aes_gcm_hw.c', + 'openssl/providers/implementations/ciphers/cipher_aes_gcm_siv.c', + 'openssl/providers/implementations/ciphers/cipher_aes_gcm_siv_hw.c', + 'openssl/providers/implementations/ciphers/cipher_aes_gcm_siv_polyval.c', 'openssl/providers/implementations/ciphers/cipher_aes_hw.c', 'openssl/providers/implementations/ciphers/cipher_aes_ocb.c', 'openssl/providers/implementations/ciphers/cipher_aes_ocb_hw.c', @@ -819,7 +938,13 @@ 'openssl/providers/implementations/ciphers/cipher_cts.c', 'openssl/providers/implementations/ciphers/cipher_null.c', 'openssl/providers/implementations/ciphers/cipher_sm4.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_ccm.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_ccm_hw.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_gcm.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_gcm_hw.c', 'openssl/providers/implementations/ciphers/cipher_sm4_hw.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_xts.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_xts_hw.c', 'openssl/providers/implementations/ciphers/cipher_tdes.c', 'openssl/providers/implementations/ciphers/cipher_tdes_common.c', 'openssl/providers/implementations/ciphers/cipher_tdes_default.c', @@ -848,11 +973,16 @@ 'openssl/providers/implementations/encode_decode/encode_key2ms.c', 'openssl/providers/implementations/encode_decode/encode_key2text.c', 'openssl/providers/implementations/encode_decode/endecoder_common.c', + 'openssl/providers/implementations/encode_decode/ml_common_codecs.c', + 'openssl/providers/implementations/encode_decode/ml_dsa_codecs.c', + 'openssl/providers/implementations/encode_decode/ml_kem_codecs.c', 'openssl/providers/implementations/exchange/dh_exch.c', 'openssl/providers/implementations/exchange/ecdh_exch.c', 'openssl/providers/implementations/exchange/ecx_exch.c', 'openssl/providers/implementations/exchange/kdf_exch.c', + 'openssl/providers/implementations/kdfs/argon2.c', 'openssl/providers/implementations/kdfs/hkdf.c', + 'openssl/providers/implementations/kdfs/hmacdrbg_kdf.c', 'openssl/providers/implementations/kdfs/kbkdf.c', 'openssl/providers/implementations/kdfs/krb5kdf.c', 'openssl/providers/implementations/kdfs/pbkdf2.c', @@ -863,6 +993,11 @@ 'openssl/providers/implementations/kdfs/sskdf.c', 'openssl/providers/implementations/kdfs/tls1_prf.c', 'openssl/providers/implementations/kdfs/x942kdf.c', + 'openssl/providers/implementations/kem/ec_kem.c', + 'openssl/providers/implementations/kem/ecx_kem.c', + 'openssl/providers/implementations/kem/kem_util.c', + 'openssl/providers/implementations/kem/ml_kem_kem.c', + 'openssl/providers/implementations/kem/mlx_kem.c', 'openssl/providers/implementations/kem/rsa_kem.c', 'openssl/providers/implementations/keymgmt/dh_kmgmt.c', 'openssl/providers/implementations/keymgmt/dsa_kmgmt.c', @@ -870,7 +1005,11 @@ 'openssl/providers/implementations/keymgmt/ecx_kmgmt.c', 'openssl/providers/implementations/keymgmt/kdf_legacy_kmgmt.c', 'openssl/providers/implementations/keymgmt/mac_legacy_kmgmt.c', + 'openssl/providers/implementations/keymgmt/ml_dsa_kmgmt.c', + 'openssl/providers/implementations/keymgmt/ml_kem_kmgmt.c', + 'openssl/providers/implementations/keymgmt/mlx_kmgmt.c', 'openssl/providers/implementations/keymgmt/rsa_kmgmt.c', + 'openssl/providers/implementations/keymgmt/slh_dsa_kmgmt.c', 'openssl/providers/implementations/macs/blake2b_mac.c', 'openssl/providers/implementations/macs/blake2s_mac.c', 'openssl/providers/implementations/macs/cmac_prov.c', @@ -879,12 +1018,12 @@ 'openssl/providers/implementations/macs/kmac_prov.c', 'openssl/providers/implementations/macs/poly1305_prov.c', 'openssl/providers/implementations/macs/siphash_prov.c', - 'openssl/providers/implementations/rands/crngt.c', 'openssl/providers/implementations/rands/drbg.c', 'openssl/providers/implementations/rands/drbg_ctr.c', 'openssl/providers/implementations/rands/drbg_hash.c', 'openssl/providers/implementations/rands/drbg_hmac.c', 'openssl/providers/implementations/rands/seed_src.c', + 'openssl/providers/implementations/rands/seed_src_jitter.c', 'openssl/providers/implementations/rands/test_rng.c', 'openssl/providers/implementations/rands/seeding/rand_cpu_x86.c', 'openssl/providers/implementations/rands/seeding/rand_tsc.c', @@ -894,17 +1033,23 @@ 'openssl/providers/implementations/signature/ecdsa_sig.c', 'openssl/providers/implementations/signature/eddsa_sig.c', 'openssl/providers/implementations/signature/mac_legacy_sig.c', + 'openssl/providers/implementations/signature/ml_dsa_sig.c', 'openssl/providers/implementations/signature/rsa_sig.c', + 'openssl/providers/implementations/signature/slh_dsa_sig.c', 'openssl/providers/implementations/signature/sm2_sig.c', + 'openssl/providers/implementations/skeymgmt/aes_skmgmt.c', + 'openssl/providers/implementations/skeymgmt/generic.c', 'openssl/providers/implementations/storemgmt/file_store.c', 'openssl/providers/implementations/storemgmt/file_store_any2obj.c', - 'openssl/ssl/s3_cbc.c', + 'openssl/ssl/record/methods/ssl3_cbc.c', 'openssl/providers/common/der/der_dsa_key.c', 'openssl/providers/common/der/der_dsa_sig.c', 'openssl/providers/common/der/der_ec_key.c', 'openssl/providers/common/der/der_ec_sig.c', 'openssl/providers/common/der/der_ecx_key.c', + 'openssl/providers/common/der/der_ml_dsa_key.c', 'openssl/providers/common/der/der_rsa_key.c', + 'openssl/providers/common/der/der_slh_dsa_key.c', 'openssl/providers/common/provider_ctx.c', 'openssl/providers/common/provider_err.c', 'openssl/providers/implementations/ciphers/ciphercommon.c', @@ -915,7 +1060,7 @@ 'openssl/providers/implementations/ciphers/ciphercommon_gcm_hw.c', 'openssl/providers/implementations/ciphers/ciphercommon_hw.c', 'openssl/providers/implementations/digests/digestcommon.c', - 'openssl/ssl/record/tls_pad.c', + 'openssl/ssl/record/methods/tls_pad.c', 'openssl/providers/implementations/ciphers/cipher_blowfish.c', 'openssl/providers/implementations/ciphers/cipher_blowfish_hw.c', 'openssl/providers/implementations/ciphers/cipher_cast5.c', @@ -940,6 +1085,7 @@ 'openssl/providers/implementations/digests/ripemd_prov.c', 'openssl/providers/implementations/digests/wp_prov.c', 'openssl/providers/implementations/kdfs/pbkdf1.c', + 'openssl/providers/implementations/kdfs/pvkkdf.c', 'openssl/providers/prov_running.c', 'openssl/providers/legacyprov.c', ], @@ -949,10 +1095,16 @@ './config/archs/darwin64-x86_64-cc/asm/crypto/aes/aesni-sha1-x86_64.s', './config/archs/darwin64-x86_64-cc/asm/crypto/aes/aesni-sha256-x86_64.s', './config/archs/darwin64-x86_64-cc/asm/crypto/aes/aesni-x86_64.s', + './config/archs/darwin64-x86_64-cc/asm/crypto/aes/aesni-xts-avx512.s', './config/archs/darwin64-x86_64-cc/asm/crypto/aes/bsaes-x86_64.s', './config/archs/darwin64-x86_64-cc/asm/crypto/aes/vpaes-x86_64.s', + './config/archs/darwin64-x86_64-cc/asm/crypto/bn/rsaz-2k-avx512.s', + './config/archs/darwin64-x86_64-cc/asm/crypto/bn/rsaz-2k-avxifma.s', + './config/archs/darwin64-x86_64-cc/asm/crypto/bn/rsaz-3k-avx512.s', + './config/archs/darwin64-x86_64-cc/asm/crypto/bn/rsaz-3k-avxifma.s', + './config/archs/darwin64-x86_64-cc/asm/crypto/bn/rsaz-4k-avx512.s', + './config/archs/darwin64-x86_64-cc/asm/crypto/bn/rsaz-4k-avxifma.s', './config/archs/darwin64-x86_64-cc/asm/crypto/bn/rsaz-avx2.s', - './config/archs/darwin64-x86_64-cc/asm/crypto/bn/rsaz-avx512.s', './config/archs/darwin64-x86_64-cc/asm/crypto/bn/rsaz-x86_64.s', './config/archs/darwin64-x86_64-cc/asm/crypto/bn/x86_64-gf2m.s', './config/archs/darwin64-x86_64-cc/asm/crypto/bn/x86_64-mont.s', @@ -961,8 +1113,10 @@ './config/archs/darwin64-x86_64-cc/asm/crypto/chacha/chacha-x86_64.s', './config/archs/darwin64-x86_64-cc/asm/crypto/ec/ecp_nistz256-x86_64.s', './config/archs/darwin64-x86_64-cc/asm/crypto/ec/x25519-x86_64.s', + './config/archs/darwin64-x86_64-cc/asm/crypto/params_idx.c', './config/archs/darwin64-x86_64-cc/asm/crypto/x86_64cpuid.s', './config/archs/darwin64-x86_64-cc/asm/crypto/md5/md5-x86_64.s', + './config/archs/darwin64-x86_64-cc/asm/crypto/modes/aes-gcm-avx512.s', './config/archs/darwin64-x86_64-cc/asm/crypto/modes/aesni-gcm-x86_64.s', './config/archs/darwin64-x86_64-cc/asm/crypto/modes/ghash-x86_64.s', './config/archs/darwin64-x86_64-cc/asm/crypto/poly1305/poly1305-x86_64.s', @@ -981,7 +1135,9 @@ './config/archs/darwin64-x86_64-cc/asm/providers/common/der/der_dsa_gen.c', './config/archs/darwin64-x86_64-cc/asm/providers/common/der/der_ec_gen.c', './config/archs/darwin64-x86_64-cc/asm/providers/common/der/der_ecx_gen.c', + './config/archs/darwin64-x86_64-cc/asm/providers/common/der/der_ml_dsa_gen.c', './config/archs/darwin64-x86_64-cc/asm/providers/common/der/der_rsa_gen.c', + './config/archs/darwin64-x86_64-cc/asm/providers/common/der/der_slh_dsa_gen.c', './config/archs/darwin64-x86_64-cc/asm/providers/common/der/der_wrap_gen.c', ], 'openssl_defines_darwin64-x86_64-cc': [ diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/providers/common/der/der_ml_dsa_gen.c b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/providers/common/der/der_ml_dsa_gen.c new file mode 100644 index 00000000000000..4a8a113a268578 --- /dev/null +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/providers/common/der/der_ml_dsa_gen.c @@ -0,0 +1,37 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from providers/common/der/der_ml_dsa_gen.c.in + * + * Copyright 2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include "prov/der_ml_dsa.h" + +/* Well known OIDs precompiled */ + +/* + * id-ml-dsa-44 OBJECT IDENTIFIER ::= { sigAlgs 17 } + */ +const unsigned char ossl_der_oid_id_ml_dsa_44[DER_OID_SZ_id_ml_dsa_44] = { + DER_OID_V_id_ml_dsa_44 +}; + +/* + * id-ml-dsa-65 OBJECT IDENTIFIER ::= { sigAlgs 18 } + */ +const unsigned char ossl_der_oid_id_ml_dsa_65[DER_OID_SZ_id_ml_dsa_65] = { + DER_OID_V_id_ml_dsa_65 +}; + +/* + * id-ml-dsa-87 OBJECT IDENTIFIER ::= { sigAlgs 19 } + */ +const unsigned char ossl_der_oid_id_ml_dsa_87[DER_OID_SZ_id_ml_dsa_87] = { + DER_OID_V_id_ml_dsa_87 +}; + diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/providers/common/der/der_slh_dsa_gen.c b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/providers/common/der/der_slh_dsa_gen.c new file mode 100644 index 00000000000000..1419a9515097dd --- /dev/null +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/providers/common/der/der_slh_dsa_gen.c @@ -0,0 +1,100 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from providers/common/der/der_slh_dsa_gen.c.in + * + * Copyright 2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include "prov/der_slh_dsa.h" + +/* Well known OIDs precompiled */ + +/* + * id-slh-dsa-sha2-128s OBJECT IDENTIFIER ::= { sigAlgs 20 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_128s[DER_OID_SZ_id_slh_dsa_sha2_128s] = { + DER_OID_V_id_slh_dsa_sha2_128s +}; + +/* + * id-slh-dsa-sha2-128f OBJECT IDENTIFIER ::= { sigAlgs 21 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_128f[DER_OID_SZ_id_slh_dsa_sha2_128f] = { + DER_OID_V_id_slh_dsa_sha2_128f +}; + +/* + * id-slh-dsa-sha2-192s OBJECT IDENTIFIER ::= { sigAlgs 22 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_192s[DER_OID_SZ_id_slh_dsa_sha2_192s] = { + DER_OID_V_id_slh_dsa_sha2_192s +}; + +/* + * id-slh-dsa-sha2-192f OBJECT IDENTIFIER ::= { sigAlgs 23 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_192f[DER_OID_SZ_id_slh_dsa_sha2_192f] = { + DER_OID_V_id_slh_dsa_sha2_192f +}; + +/* + * id-slh-dsa-sha2-256s OBJECT IDENTIFIER ::= { sigAlgs 24 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_256s[DER_OID_SZ_id_slh_dsa_sha2_256s] = { + DER_OID_V_id_slh_dsa_sha2_256s +}; + +/* + * id-slh-dsa-sha2-256f OBJECT IDENTIFIER ::= { sigAlgs 25 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_256f[DER_OID_SZ_id_slh_dsa_sha2_256f] = { + DER_OID_V_id_slh_dsa_sha2_256f +}; + +/* + * id-slh-dsa-shake-128s OBJECT IDENTIFIER ::= { sigAlgs 26 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_128s[DER_OID_SZ_id_slh_dsa_shake_128s] = { + DER_OID_V_id_slh_dsa_shake_128s +}; + +/* + * id-slh-dsa-shake-128f OBJECT IDENTIFIER ::= { sigAlgs 27 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_128f[DER_OID_SZ_id_slh_dsa_shake_128f] = { + DER_OID_V_id_slh_dsa_shake_128f +}; + +/* + * id-slh-dsa-shake-192s OBJECT IDENTIFIER ::= { sigAlgs 28 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_192s[DER_OID_SZ_id_slh_dsa_shake_192s] = { + DER_OID_V_id_slh_dsa_shake_192s +}; + +/* + * id-slh-dsa-shake-192f OBJECT IDENTIFIER ::= { sigAlgs 29 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_192f[DER_OID_SZ_id_slh_dsa_shake_192f] = { + DER_OID_V_id_slh_dsa_shake_192f +}; + +/* + * id-slh-dsa-shake-256s OBJECT IDENTIFIER ::= { sigAlgs 30 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_256s[DER_OID_SZ_id_slh_dsa_shake_256s] = { + DER_OID_V_id_slh_dsa_shake_256s +}; + +/* + * id-slh-dsa-shake-256f OBJECT IDENTIFIER ::= { sigAlgs 31 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_256f[DER_OID_SZ_id_slh_dsa_shake_256f] = { + DER_OID_V_id_slh_dsa_shake_256f +}; + diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/providers/common/include/prov/der_ml_dsa.h b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/providers/common/include/prov/der_ml_dsa.h new file mode 100644 index 00000000000000..c55f780ab4527c --- /dev/null +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/providers/common/include/prov/der_ml_dsa.h @@ -0,0 +1,40 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from providers/common/include/prov/der_ml_dsa.h.in + * + * Copyright 2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include "internal/der.h" +#include "crypto/ml_dsa.h" + +/* Well known OIDs precompiled */ + +/* + * id-ml-dsa-44 OBJECT IDENTIFIER ::= { sigAlgs 17 } + */ +#define DER_OID_V_id_ml_dsa_44 DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x11 +#define DER_OID_SZ_id_ml_dsa_44 11 +extern const unsigned char ossl_der_oid_id_ml_dsa_44[DER_OID_SZ_id_ml_dsa_44]; + +/* + * id-ml-dsa-65 OBJECT IDENTIFIER ::= { sigAlgs 18 } + */ +#define DER_OID_V_id_ml_dsa_65 DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x12 +#define DER_OID_SZ_id_ml_dsa_65 11 +extern const unsigned char ossl_der_oid_id_ml_dsa_65[DER_OID_SZ_id_ml_dsa_65]; + +/* + * id-ml-dsa-87 OBJECT IDENTIFIER ::= { sigAlgs 19 } + */ +#define DER_OID_V_id_ml_dsa_87 DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x13 +#define DER_OID_SZ_id_ml_dsa_87 11 +extern const unsigned char ossl_der_oid_id_ml_dsa_87[DER_OID_SZ_id_ml_dsa_87]; + + +int ossl_DER_w_algorithmIdentifier_ML_DSA(WPACKET *pkt, int tag, ML_DSA_KEY *key); diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/providers/common/include/prov/der_slh_dsa.h b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/providers/common/include/prov/der_slh_dsa.h new file mode 100644 index 00000000000000..760f8e7699be72 --- /dev/null +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/providers/common/include/prov/der_slh_dsa.h @@ -0,0 +1,103 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from providers/common/include/prov/der_slh_dsa.h.in + * + * Copyright 2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include "internal/der.h" +#include "crypto/slh_dsa.h" + +/* Well known OIDs precompiled */ + +/* + * id-slh-dsa-sha2-128s OBJECT IDENTIFIER ::= { sigAlgs 20 } + */ +#define DER_OID_V_id_slh_dsa_sha2_128s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x14 +#define DER_OID_SZ_id_slh_dsa_sha2_128s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_128s[DER_OID_SZ_id_slh_dsa_sha2_128s]; + +/* + * id-slh-dsa-sha2-128f OBJECT IDENTIFIER ::= { sigAlgs 21 } + */ +#define DER_OID_V_id_slh_dsa_sha2_128f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x15 +#define DER_OID_SZ_id_slh_dsa_sha2_128f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_128f[DER_OID_SZ_id_slh_dsa_sha2_128f]; + +/* + * id-slh-dsa-sha2-192s OBJECT IDENTIFIER ::= { sigAlgs 22 } + */ +#define DER_OID_V_id_slh_dsa_sha2_192s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x16 +#define DER_OID_SZ_id_slh_dsa_sha2_192s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_192s[DER_OID_SZ_id_slh_dsa_sha2_192s]; + +/* + * id-slh-dsa-sha2-192f OBJECT IDENTIFIER ::= { sigAlgs 23 } + */ +#define DER_OID_V_id_slh_dsa_sha2_192f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x17 +#define DER_OID_SZ_id_slh_dsa_sha2_192f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_192f[DER_OID_SZ_id_slh_dsa_sha2_192f]; + +/* + * id-slh-dsa-sha2-256s OBJECT IDENTIFIER ::= { sigAlgs 24 } + */ +#define DER_OID_V_id_slh_dsa_sha2_256s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x18 +#define DER_OID_SZ_id_slh_dsa_sha2_256s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_256s[DER_OID_SZ_id_slh_dsa_sha2_256s]; + +/* + * id-slh-dsa-sha2-256f OBJECT IDENTIFIER ::= { sigAlgs 25 } + */ +#define DER_OID_V_id_slh_dsa_sha2_256f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x19 +#define DER_OID_SZ_id_slh_dsa_sha2_256f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_256f[DER_OID_SZ_id_slh_dsa_sha2_256f]; + +/* + * id-slh-dsa-shake-128s OBJECT IDENTIFIER ::= { sigAlgs 26 } + */ +#define DER_OID_V_id_slh_dsa_shake_128s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1A +#define DER_OID_SZ_id_slh_dsa_shake_128s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_128s[DER_OID_SZ_id_slh_dsa_shake_128s]; + +/* + * id-slh-dsa-shake-128f OBJECT IDENTIFIER ::= { sigAlgs 27 } + */ +#define DER_OID_V_id_slh_dsa_shake_128f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1B +#define DER_OID_SZ_id_slh_dsa_shake_128f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_128f[DER_OID_SZ_id_slh_dsa_shake_128f]; + +/* + * id-slh-dsa-shake-192s OBJECT IDENTIFIER ::= { sigAlgs 28 } + */ +#define DER_OID_V_id_slh_dsa_shake_192s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1C +#define DER_OID_SZ_id_slh_dsa_shake_192s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_192s[DER_OID_SZ_id_slh_dsa_shake_192s]; + +/* + * id-slh-dsa-shake-192f OBJECT IDENTIFIER ::= { sigAlgs 29 } + */ +#define DER_OID_V_id_slh_dsa_shake_192f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1D +#define DER_OID_SZ_id_slh_dsa_shake_192f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_192f[DER_OID_SZ_id_slh_dsa_shake_192f]; + +/* + * id-slh-dsa-shake-256s OBJECT IDENTIFIER ::= { sigAlgs 30 } + */ +#define DER_OID_V_id_slh_dsa_shake_256s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1E +#define DER_OID_SZ_id_slh_dsa_shake_256s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_256s[DER_OID_SZ_id_slh_dsa_shake_256s]; + +/* + * id-slh-dsa-shake-256f OBJECT IDENTIFIER ::= { sigAlgs 31 } + */ +#define DER_OID_V_id_slh_dsa_shake_256f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1F +#define DER_OID_SZ_id_slh_dsa_shake_256f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_256f[DER_OID_SZ_id_slh_dsa_shake_256f]; + + +int ossl_DER_w_algorithmIdentifier_SLH_DSA(WPACKET *pkt, int tag, SLH_DSA_KEY *key); diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/apps/progs.c b/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/apps/progs.c index 43cef00799b86e..acc204a3e6e781 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/apps/progs.c +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/apps/progs.c @@ -89,6 +89,7 @@ FUNCTION functions[] = { {FT_general, "s_time", s_time_main, s_time_options, NULL, NULL}, #endif {FT_general, "sess_id", sess_id_main, sess_id_options, NULL, NULL}, + {FT_general, "skeyutl", skeyutl_main, skeyutl_options, NULL, NULL}, {FT_general, "smime", smime_main, smime_options, NULL, NULL}, {FT_general, "speed", speed_main, speed_options, NULL, NULL}, {FT_general, "spkac", spkac_main, spkac_options, NULL, NULL}, @@ -225,9 +226,15 @@ FUNCTION functions[] = { {FT_cipher, "camellia-256-ecb", enc_main, enc_options, NULL}, #endif {FT_cipher, "base64", enc_main, enc_options, NULL}, -#ifdef ZLIB +#ifndef OPENSSL_NO_ZLIB {FT_cipher, "zlib", enc_main, enc_options, NULL}, #endif +#ifndef OPENSSL_NO_BROTLI + {FT_cipher, "brotli", enc_main, enc_options, NULL}, +#endif +#ifndef OPENSSL_NO_ZSTD + {FT_cipher, "zstd", enc_main, enc_options, NULL}, +#endif #ifndef OPENSSL_NO_DES {FT_cipher, "des", enc_main, enc_options, NULL}, #endif diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/configdata.pm b/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/configdata.pm index 552c8114dbd08e..106af54c16496d 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/configdata.pm +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/configdata.pm @@ -18,6 +18,7 @@ our %config = ( "ARFLAGS" => [ "qc" ], + "ASFLAGS" => [], "CC" => "../config/fake_gcc.pl", "CFLAGS" => [ "-O3 -Wall" @@ -27,14 +28,16 @@ our %config = ( "CPPINCLUDES" => [], "CXXFLAGS" => [], "FIPSKEY" => "f4556650ac31d35461610bac4ed81b1a181b2d8a43ea2854cbae22ca74560813", + "FIPS_VENDOR" => "OpenSSL FIPS Provider", "HASHBANGPERL" => "/usr/bin/env perl", "LDFLAGS" => [], "LDLIBS" => [], + "OBJCOPY" => "objcopy", "PERL" => "/usr/bin/perl", "RANLIB" => "ranlib -c", "RC" => "windres", "RCFLAGS" => [], - "api" => "30000", + "api" => "30500", "b32" => "0", "b64" => "0", "b64l" => "1", @@ -56,11 +59,13 @@ our %config = ( "doc/build.info", "test/build.info", "engines/build.info", + "exporters/build.info", "crypto/objects/build.info", "crypto/buffer/build.info", "crypto/bio/build.info", "crypto/stack/build.info", "crypto/lhash/build.info", + "crypto/hashtable/build.info", "crypto/rand/build.info", "crypto/evp/build.info", "crypto/asn1/build.info", @@ -78,6 +83,7 @@ our %config = ( "crypto/md5/build.info", "crypto/sha/build.info", "crypto/mdc2/build.info", + "crypto/ml_kem/build.info", "crypto/hmac/build.info", "crypto/ripemd/build.info", "crypto/whrlpool/build.info", @@ -119,11 +125,19 @@ our %config = ( "crypto/cmp/build.info", "crypto/encode_decode/build.info", "crypto/ffc/build.info", + "crypto/hpke/build.info", + "crypto/thread/build.info", + "crypto/ml_dsa/build.info", + "crypto/slh_dsa/build.info", + "ssl/record/build.info", + "ssl/rio/build.info", + "ssl/quic/build.info", "apps/lib/build.info", "providers/common/build.info", "providers/implementations/build.info", "providers/fips/build.info", "doc/man1/build.info", + "ssl/record/methods/build.info", "providers/common/der/build.info", "providers/implementations/digests/build.info", "providers/implementations/ciphers/build.info", @@ -137,6 +151,7 @@ our %config = ( "providers/implementations/encode_decode/build.info", "providers/implementations/storemgmt/build.info", "providers/implementations/kem/build.info", + "providers/implementations/skeymgmt/build.info", "providers/implementations/rands/seeding/build.info" ], "build_metadata" => "", @@ -156,7 +171,7 @@ our %config = ( ], "dynamic_engines" => "0", "ex_libs" => [], - "full_version" => "3.0.17", + "full_version" => "3.5.1", "includes" => [], "lflags" => [], "lib_defines" => [ @@ -165,37 +180,52 @@ our %config = ( "libdir" => "", "major" => "3", "makedep_scheme" => "gcc", - "minor" => "0", + "minor" => "5", "openssl_api_defines" => [ - "OPENSSL_CONFIGURED_API=30000" + "OPENSSL_CONFIGURED_API=30500" ], "openssl_feature_defines" => [ "OPENSSL_RAND_SEED_OS", "OPENSSL_THREADS", "OPENSSL_NO_AFALGENG", "OPENSSL_NO_ASAN", + "OPENSSL_NO_BROTLI", + "OPENSSL_NO_BROTLI_DYNAMIC", "OPENSSL_NO_COMP", "OPENSSL_NO_CRYPTO_MDEBUG", "OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE", + "OPENSSL_NO_DEMOS", "OPENSSL_NO_DEVCRYPTOENG", "OPENSSL_NO_EC_NISTP_64_GCC_128", "OPENSSL_NO_EGD", "OPENSSL_NO_EXTERNAL_TESTS", + "OPENSSL_NO_FIPS_JITTER", "OPENSSL_NO_FUZZ_AFL", "OPENSSL_NO_FUZZ_LIBFUZZER", + "OPENSSL_NO_H3DEMO", + "OPENSSL_NO_HQINTEROP", + "OPENSSL_NO_JITTER", "OPENSSL_NO_KTLS", "OPENSSL_NO_LOADERENG", "OPENSSL_NO_MD2", "OPENSSL_NO_MSAN", + "OPENSSL_NO_PIE", "OPENSSL_NO_RC5", "OPENSSL_NO_SCTP", "OPENSSL_NO_SSL3", "OPENSSL_NO_SSL3_METHOD", + "OPENSSL_NO_SSLKEYLOG", + "OPENSSL_NO_TFO", "OPENSSL_NO_TRACE", "OPENSSL_NO_UBSAN", "OPENSSL_NO_UNIT_TEST", "OPENSSL_NO_UPLINK", "OPENSSL_NO_WEAK_SSL_CIPHERS", + "OPENSSL_NO_WINSTORE", + "OPENSSL_NO_ZLIB", + "OPENSSL_NO_ZLIB_DYNAMIC", + "OPENSSL_NO_ZSTD", + "OPENSSL_NO_ZSTD_DYNAMIC", "OPENSSL_NO_DYNAMIC_ENGINE" ], "openssl_other_defines" => [ @@ -205,11 +235,11 @@ our %config = ( "OPENSSL_SYS_MACOSX" ], "openssldir" => "", - "options" => "enable-ssl-trace enable-fips no-afalgeng no-asan no-buildtest-c++ no-comp no-crypto-mdebug no-crypto-mdebug-backtrace no-devcryptoeng no-dynamic-engine no-ec_nistp_64_gcc_128 no-egd no-external-tests no-fuzz-afl no-fuzz-libfuzzer no-ktls no-loadereng no-md2 no-msan no-rc5 no-sctp no-shared no-ssl3 no-ssl3-method no-trace no-ubsan no-unit-test no-uplink no-weak-ssl-ciphers no-zlib no-zlib-dynamic", - "patch" => "17", + "options" => "enable-ssl-trace enable-fips no-afalgeng no-asan no-brotli no-brotli-dynamic no-buildtest-c++ no-comp no-crypto-mdebug no-crypto-mdebug-backtrace no-demos no-devcryptoeng no-dynamic-engine no-ec_nistp_64_gcc_128 no-egd no-external-tests no-fips-jitter no-fuzz-afl no-fuzz-libfuzzer no-h3demo no-hqinterop no-jitter no-ktls no-loadereng no-md2 no-msan no-pie no-rc5 no-sctp no-shared no-ssl3 no-ssl3-method no-sslkeylog no-tfo no-trace no-ubsan no-unit-test no-uplink no-weak-ssl-ciphers no-winstore no-zlib no-zlib-dynamic no-zstd no-zstd-dynamic", + "patch" => "1", "perl_archname" => "x86_64-linux-gnu-thread-multi", "perl_cmd" => "/usr/bin/perl", - "perl_version" => "5.38.2", + "perl_version" => "5.34.0", "perlargv" => [ "no-comp", "no-shared", @@ -239,6 +269,7 @@ our %config = ( "LDLIBS" => undef, "MT" => undef, "MTFLAGS" => undef, + "OBJCOPY" => undef, "OPENSSL_LOCAL_CONFIG_DIR" => undef, "PERL" => undef, "RANLIB" => undef, @@ -262,7 +293,7 @@ our %config = ( "shlib_version" => "3", "sourcedir" => ".", "target" => "darwin64-x86_64-cc", - "version" => "3.0.17" + "version" => "3.5.1" ); our %target = ( "AR" => "ar", @@ -270,6 +301,7 @@ our %target = ( "CC" => "cc", "CFLAGS" => "-O3 -Wall", "HASHBANGPERL" => "/usr/bin/env perl", + "OBJCOPY" => "objcopy", "RANLIB" => "ranlib -c", "RC" => "windres", "_conf_fname_int" => [ @@ -281,6 +313,8 @@ our %target = ( "Configurations/shared-info.pl" ], "asm_arch" => "x86_64", + "bin_cflags" => "", + "bin_lflags" => "", "bn_ops" => "SIXTY_FOUR_BIT_LONG", "build_file" => "Makefile", "build_scheme" => [ @@ -295,6 +329,7 @@ our %target = ( "disable" => [], "dso_scheme" => "dlfcn", "enable" => [], + "ex_libs" => "", "includes" => [], "lflags" => "-Wl,-search_paths_first", "lib_cflags" => "", @@ -321,6 +356,8 @@ our %target = ( our @disablables = ( "acvp-tests", "afalgeng", + "apps", + "argon2", "aria", "asan", "asm", @@ -331,11 +368,14 @@ our @disablables = ( "autoload-config", "bf", "blake2", + "brotli", + "brotli-dynamic", "buildtest-c++", "bulk", "cached-fetch", "camellia", "capieng", + "winstore", "cast", "chacha", "cmac", @@ -344,11 +384,16 @@ our @disablables = ( "comp", "crypto-mdebug", "ct", + "default-thread-pool", + "demos", + "h3demo", + "hqinterop", "deprecated", "des", "devcryptoeng", "dgram", "dh", + "docs", "dsa", "dso", "dtls", @@ -358,6 +403,7 @@ our @disablables = ( "ec_nistp_64_gcc_128", "ecdh", "ecdsa", + "ecx", "egd", "engine", "err", @@ -365,10 +411,15 @@ our @disablables = ( "filenames", "fips", "fips-securitychecks", + "fips-post", + "fips-jitter", "fuzz-afl", "fuzz-libfuzzer", "gost", + "http", "idea", + "integrity-only-ciphers", + "jitter", "ktls", "legacy", "loadereng", @@ -376,6 +427,8 @@ our @disablables = ( "md2", "md4", "mdc2", + "ml-dsa", + "ml-kem", "module", "msan", "multiblock", @@ -384,10 +437,13 @@ our @disablables = ( "ocsp", "padlockeng", "pic", + "pie", "pinshared", "poly1305", "posix-io", "psk", + "quic", + "unstable-qlog", "rc2", "rc4", "rc5", @@ -401,7 +457,9 @@ our @disablables = ( "shared", "siphash", "siv", + "slh-dsa", "sm2", + "sm2-precomp", "sm3", "sm4", "sock", @@ -412,9 +470,13 @@ our @disablables = ( "ssl-trace", "static-engine", "stdio", + "sslkeylog", "tests", + "tfo", + "thread-pool", "threads", "tls", + "tls-deprecated-ec", "trace", "ts", "ubsan", @@ -425,6 +487,8 @@ our @disablables = ( "whirlpool", "zlib", "zlib-dynamic", + "zstd", + "zstd-dynamic", "ssl3", "ssl3-method", "tls1", @@ -445,33 +509,46 @@ our @disablables_int = ( our %disabled = ( "afalgeng" => "option", "asan" => "default", + "brotli" => "default", + "brotli-dynamic" => "default", "buildtest-c++" => "default", "comp" => "option", "crypto-mdebug" => "default", "crypto-mdebug-backtrace" => "default", + "demos" => "default", "devcryptoeng" => "default", "dynamic-engine" => "cascade", "ec_nistp_64_gcc_128" => "default", "egd" => "default", "external-tests" => "default", + "fips-jitter" => "default", "fuzz-afl" => "default", "fuzz-libfuzzer" => "default", + "h3demo" => "default", + "hqinterop" => "default", + "jitter" => "default", "ktls" => "default", "loadereng" => "cascade", "md2" => "default", "msan" => "default", + "pie" => "default", "rc5" => "default", "sctp" => "default", "shared" => "option", "ssl3" => "default", "ssl3-method" => "default", + "sslkeylog" => "default", + "tfo" => "default", "trace" => "default", "ubsan" => "default", "unit-test" => "default", "uplink" => "no uplink_arch", "weak-ssl-ciphers" => "default", + "winstore" => "not-windows", "zlib" => "default", - "zlib-dynamic" => "default" + "zlib-dynamic" => "default", + "zstd" => "default", + "zstd-dynamic" => "default" ); our %withargs = (); our %unified_info = ( @@ -697,6 +774,11 @@ our %unified_info = ( "pod" => "1" } }, + "doc/man1/openssl-skeyutl.pod" => { + "doc/man1/openssl-skeyutl.pod.in" => { + "pod" => "1" + } + }, "doc/man1/openssl-smime.pod" => { "doc/man1/openssl-smime.pod.in" => { "pod" => "1" @@ -754,6 +836,21 @@ our %unified_info = ( } }, "generate" => { + "exporters/OpenSSLConfig.cmake" => { + "exporter" => "cmake" + }, + "exporters/OpenSSLConfigVersion.cmake" => { + "exporter" => "cmake" + }, + "exporters/libcrypto.pc" => { + "exporter" => "pkg-config" + }, + "exporters/libssl.pc" => { + "exporter" => "pkg-config" + }, + "exporters/openssl.pc" => { + "exporter" => "pkg-config" + }, "include/openssl/configuration.h" => { "skip" => "1" } @@ -774,6 +871,9 @@ our %unified_info = ( "providers/liblegacy.a" => { "noinst" => "1" }, + "providers/libtemplate.a" => { + "noinst" => "1" + }, "test/libtestutil.a" => { "has_main" => "1", "noinst" => "1" @@ -791,6 +891,9 @@ our %unified_info = ( } }, "programs" => { + "fuzz/acert-test" => { + "noinst" => "1" + }, "fuzz/asn1-test" => { "noinst" => "1" }, @@ -821,9 +924,60 @@ our %unified_info = ( "fuzz/ct-test" => { "noinst" => "1" }, + "fuzz/decoder-test" => { + "noinst" => "1" + }, + "fuzz/dtlsclient-test" => { + "noinst" => "1" + }, + "fuzz/dtlsserver-test" => { + "noinst" => "1" + }, + "fuzz/hashtable-test" => { + "noinst" => "1" + }, + "fuzz/ml-dsa-test" => { + "noinst" => "1" + }, + "fuzz/ml-kem-test" => { + "noinst" => "1" + }, + "fuzz/pem-test" => { + "noinst" => "1" + }, + "fuzz/provider-test" => { + "noinst" => "1" + }, + "fuzz/punycode-test" => { + "noinst" => "1" + }, + "fuzz/quic-client-test" => { + "noinst" => "1" + }, + "fuzz/quic-lcidm-test" => { + "noinst" => "1" + }, + "fuzz/quic-rcidm-test" => { + "noinst" => "1" + }, + "fuzz/quic-server-test" => { + "noinst" => "1" + }, + "fuzz/quic-srtm-test" => { + "noinst" => "1" + }, "fuzz/server-test" => { "noinst" => "1" }, + "fuzz/slh-dsa-test" => { + "noinst" => "1" + }, + "fuzz/smime-test" => { + "noinst" => "1" + }, + "fuzz/v3name-test" => { + "noinst" => "1" + }, "fuzz/x509-test" => { "noinst" => "1" }, @@ -875,18 +1029,30 @@ our %unified_info = ( "test/bftest" => { "noinst" => "1" }, + "test/bio_addr_test" => { + "noinst" => "1" + }, + "test/bio_base64_test" => { + "noinst" => "1" + }, "test/bio_callback_test" => { "noinst" => "1" }, "test/bio_core_test" => { "noinst" => "1" }, + "test/bio_dgram_test" => { + "noinst" => "1" + }, "test/bio_enc_test" => { "noinst" => "1" }, "test/bio_memleak_test" => { "noinst" => "1" }, + "test/bio_meth_test" => { + "noinst" => "1" + }, "test/bio_prefix_text" => { "noinst" => "1" }, @@ -896,6 +1062,9 @@ our %unified_info = ( "test/bio_readbuffer_test" => { "noinst" => "1" }, + "test/bio_tfo_test" => { + "noinst" => "1" + }, "test/bioprinttest" => { "noinst" => "1" }, @@ -905,6 +1074,9 @@ our %unified_info = ( "test/bntest" => { "noinst" => "1" }, + "test/build_wincrypt_test" => { + "noinst" => "1" + }, "test/buildtest_c_aes" => { "noinst" => "1" }, @@ -920,6 +1092,9 @@ our %unified_info = ( "test/buildtest_c_buffer" => { "noinst" => "1" }, + "test/buildtest_c_byteorder" => { + "noinst" => "1" + }, "test/buildtest_c_camellia" => { "noinst" => "1" }, @@ -944,9 +1119,6 @@ our %unified_info = ( "test/buildtest_c_core_dispatch" => { "noinst" => "1" }, - "test/buildtest_c_core_names" => { - "noinst" => "1" - }, "test/buildtest_c_core_object" => { "noinst" => "1" }, @@ -971,6 +1143,9 @@ our %unified_info = ( "test/buildtest_c_e_os2" => { "noinst" => "1" }, + "test/buildtest_c_e_ostime" => { + "noinst" => "1" + }, "test/buildtest_c_ebcdic" => { "noinst" => "1" }, @@ -998,12 +1173,18 @@ our %unified_info = ( "test/buildtest_c_hmac" => { "noinst" => "1" }, + "test/buildtest_c_hpke" => { + "noinst" => "1" + }, "test/buildtest_c_http" => { "noinst" => "1" }, "test/buildtest_c_idea" => { "noinst" => "1" }, + "test/buildtest_c_indicator" => { + "noinst" => "1" + }, "test/buildtest_c_kdf" => { "noinst" => "1" }, @@ -1019,6 +1200,9 @@ our %unified_info = ( "test/buildtest_c_mdc2" => { "noinst" => "1" }, + "test/buildtest_c_ml_kem" => { + "noinst" => "1" + }, "test/buildtest_c_modes" => { "noinst" => "1" }, @@ -1049,6 +1233,9 @@ our %unified_info = ( "test/buildtest_c_provider" => { "noinst" => "1" }, + "test/buildtest_c_quic" => { + "noinst" => "1" + }, "test/buildtest_c_rand" => { "noinst" => "1" }, @@ -1091,6 +1278,9 @@ our %unified_info = ( "test/buildtest_c_symhacks" => { "noinst" => "1" }, + "test/buildtest_c_thread" => { + "noinst" => "1" + }, "test/buildtest_c_tls1" => { "noinst" => "1" }, @@ -1106,6 +1296,12 @@ our %unified_info = ( "test/buildtest_c_whrlpool" => { "noinst" => "1" }, + "test/byteorder_test" => { + "noinst" => "1" + }, + "test/ca_internals_test" => { + "noinst" => "1" + }, "test/casttest" => { "noinst" => "1" }, @@ -1190,6 +1386,9 @@ our %unified_info = ( "test/danetest" => { "noinst" => "1" }, + "test/decoder_propq_test" => { + "noinst" => "1" + }, "test/defltfips_test" => { "noinst" => "1" }, @@ -1262,15 +1461,24 @@ our %unified_info = ( "test/evp_pkey_ctx_new_from_name" => { "noinst" => "1" }, + "test/evp_pkey_dhkem_test" => { + "noinst" => "1" + }, "test/evp_pkey_dparams_test" => { "noinst" => "1" }, "test/evp_pkey_provided_test" => { "noinst" => "1" }, + "test/evp_skey_test" => { + "noinst" => "1" + }, "test/evp_test" => { "noinst" => "1" }, + "test/evp_xof_test" => { + "noinst" => "1" + }, "test/exdatatest" => { "noinst" => "1" }, @@ -1298,6 +1506,9 @@ our %unified_info = ( "test/hmactest" => { "noinst" => "1" }, + "test/hpke_test" => { + "noinst" => "1" + }, "test/http_test" => { "noinst" => "1" }, @@ -1307,12 +1518,18 @@ our %unified_info = ( "test/igetest" => { "noinst" => "1" }, + "test/json_test" => { + "noinst" => "1" + }, "test/keymgmt_internal_test" => { "noinst" => "1" }, "test/lhash_test" => { "noinst" => "1" }, + "test/list_test" => { + "noinst" => "1" + }, "test/localetest" => { "noinst" => "1" }, @@ -1322,9 +1539,21 @@ our %unified_info = ( "test/mdc2test" => { "noinst" => "1" }, + "test/membio_test" => { + "noinst" => "1" + }, "test/memleaktest" => { "noinst" => "1" }, + "test/ml_dsa_test" => { + "noinst" => "1" + }, + "test/ml_kem_evp_extra_test" => { + "noinst" => "1" + }, + "test/ml_kem_internal_test" => { + "noinst" => "1" + }, "test/modes_internal_test" => { "noinst" => "1" }, @@ -1343,6 +1572,9 @@ our %unified_info = ( "test/packettest" => { "noinst" => "1" }, + "test/pairwise_fail_test" => { + "noinst" => "1" + }, "test/param_build_test" => { "noinst" => "1" }, @@ -1367,6 +1599,9 @@ our %unified_info = ( "test/pemtest" => { "noinst" => "1" }, + "test/pkcs12_api_test" => { + "noinst" => "1" + }, "test/pkcs12_format_test" => { "noinst" => "1" }, @@ -1382,6 +1617,9 @@ our %unified_info = ( "test/poly1305_internal_test" => { "noinst" => "1" }, + "test/priority_queue_test" => { + "noinst" => "1" + }, "test/property_test" => { "noinst" => "1" }, @@ -1391,6 +1629,9 @@ our %unified_info = ( "test/provfetchtest" => { "noinst" => "1" }, + "test/provider_default_search_path_test" => { + "noinst" => "1" + }, "test/provider_fallback_test" => { "noinst" => "1" }, @@ -1409,6 +1650,72 @@ our %unified_info = ( "test/punycode_test" => { "noinst" => "1" }, + "test/quic_ackm_test" => { + "noinst" => "1" + }, + "test/quic_cc_test" => { + "noinst" => "1" + }, + "test/quic_cfq_test" => { + "noinst" => "1" + }, + "test/quic_client_test" => { + "noinst" => "1" + }, + "test/quic_fc_test" => { + "noinst" => "1" + }, + "test/quic_fifd_test" => { + "noinst" => "1" + }, + "test/quic_lcidm_test" => { + "noinst" => "1" + }, + "test/quic_multistream_test" => { + "noinst" => "1" + }, + "test/quic_newcid_test" => { + "noinst" => "1" + }, + "test/quic_qlog_test" => { + "noinst" => "1" + }, + "test/quic_radix_test" => { + "noinst" => "1" + }, + "test/quic_rcidm_test" => { + "noinst" => "1" + }, + "test/quic_record_test" => { + "noinst" => "1" + }, + "test/quic_srt_gen_test" => { + "noinst" => "1" + }, + "test/quic_srtm_test" => { + "noinst" => "1" + }, + "test/quic_stream_test" => { + "noinst" => "1" + }, + "test/quic_tserver_test" => { + "noinst" => "1" + }, + "test/quic_txp_test" => { + "noinst" => "1" + }, + "test/quic_txpim_test" => { + "noinst" => "1" + }, + "test/quic_wire_test" => { + "noinst" => "1" + }, + "test/quicapitest" => { + "noinst" => "1" + }, + "test/quicfaultstest" => { + "noinst" => "1" + }, "test/rand_status_test" => { "noinst" => "1" }, @@ -1424,12 +1731,15 @@ our %unified_info = ( "test/rc5test" => { "noinst" => "1" }, - "test/rdrand_sanitytest" => { + "test/rdcpu_sanitytest" => { "noinst" => "1" }, "test/recordlentest" => { "noinst" => "1" }, + "test/rpktest" => { + "noinst" => "1" + }, "test/rsa_complex" => { "noinst" => "1" }, @@ -1442,6 +1752,12 @@ our %unified_info = ( "test/rsa_test" => { "noinst" => "1" }, + "test/rsa_x931_test" => { + "noinst" => "1" + }, + "test/safe_math_test" => { + "noinst" => "1" + }, "test/sanitytest" => { "noinst" => "1" }, @@ -1457,6 +1773,9 @@ our %unified_info = ( "test/siphash_internal_test" => { "noinst" => "1" }, + "test/slh_dsa_test" => { + "noinst" => "1" + }, "test/sm2_internal_test" => { "noinst" => "1" }, @@ -1478,6 +1797,9 @@ our %unified_info = ( "test/ssl_ctx_test" => { "noinst" => "1" }, + "test/ssl_handshake_rtt_test" => { + "noinst" => "1" + }, "test/ssl_old_test" => { "noinst" => "1" }, @@ -1499,12 +1821,18 @@ our %unified_info = ( "test/stack_test" => { "noinst" => "1" }, + "test/strtoultest" => { + "noinst" => "1" + }, "test/sysdefaulttest" => { "noinst" => "1" }, "test/test_test" => { "noinst" => "1" }, + "test/threadpool_test" => { + "noinst" => "1" + }, "test/threadstest" => { "noinst" => "1" }, @@ -1514,12 +1842,18 @@ our %unified_info = ( "test/time_offset_test" => { "noinst" => "1" }, + "test/time_test" => { + "noinst" => "1" + }, "test/tls13ccstest" => { "noinst" => "1" }, "test/tls13encryptiontest" => { "noinst" => "1" }, + "test/tls13groupselection_test" => { + "noinst" => "1" + }, "test/trace_api_test" => { "noinst" => "1" }, @@ -1547,6 +1881,9 @@ our %unified_info = ( "test/wpackettest" => { "noinst" => "1" }, + "test/x509_acert_test" => { + "noinst" => "1" + }, "test/x509_check_cert_pkey_test" => { "noinst" => "1" }, @@ -1556,6 +1893,15 @@ our %unified_info = ( "test/x509_internal_test" => { "noinst" => "1" }, + "test/x509_load_cert_file_test" => { + "noinst" => "1" + }, + "test/x509_req_test" => { + "noinst" => "1" + }, + "test/x509_test" => { + "noinst" => "1" + }, "test/x509_time_test" => { "noinst" => "1" }, @@ -1635,6 +1981,7 @@ our %unified_info = ( "ECP_NISTZ256_ASM", "KECCAK1600_ASM", "OPENSSL_CPUID_OBJ", + "OPENSSL_IA32_SSE2", "SHA1_ASM", "SHA256_ASM", "SHA512_ASM", @@ -1663,6 +2010,9 @@ our %unified_info = ( "MD5_ASM", "RC4_ASM" ], + "test/endecode_test" => [ + "STATIC_LEGACY" + ], "test/evp_extra_test" => [ "STATIC_LEGACY" ], @@ -1675,14 +2025,21 @@ our %unified_info = ( }, "depends" => { "" => [ + "OpenSSLConfigVersion.cmake", + "crypto/params_idx.c", + "exporters/OpenSSLConfigVersion.cmake", + "exporters/openssl.pc", "include/crypto/bn_conf.h", "include/crypto/dso_conf.h", + "include/internal/param_names.h", "include/openssl/asn1.h", "include/openssl/asn1t.h", "include/openssl/bio.h", "include/openssl/cmp.h", "include/openssl/cms.h", + "include/openssl/comp.h", "include/openssl/conf.h", + "include/openssl/core_names.h", "include/openssl/crmf.h", "include/openssl/crypto.h", "include/openssl/ct.h", @@ -1699,10 +2056,22 @@ our %unified_info = ( "include/openssl/ssl.h", "include/openssl/ui.h", "include/openssl/x509.h", + "include/openssl/x509_acert.h", "include/openssl/x509_vfy.h", "include/openssl/x509v3.h", + "openssl.pc", "test/provider_internal_test.cnf" ], + "OpenSSLConfig.cmake" => [ + "builddata.pm" + ], + "OpenSSLConfigVersion.cmake" => [ + "OpenSSLConfig.cmake", + "builddata.pm" + ], + "apps/ca_internals_test-bin-ca.o" => [ + "apps/progs.h" + ], "apps/lib/cmp_client_test-bin-cmp_mock_srv.o" => [ "apps/progs.h" ], @@ -1848,6 +2217,9 @@ our %unified_info = ( "apps/openssl-bin-sess_id.o" => [ "apps/progs.h" ], + "apps/openssl-bin-skeyutl.o" => [ + "apps/progs.h" + ], "apps/openssl-bin-smime.o" => [ "apps/progs.h" ], @@ -1936,6 +2308,9 @@ our %unified_info = ( "crypto/libcrypto-lib-info.o" => [ "crypto/buildinf.h" ], + "crypto/params_idx.c" => [ + "util/perl|OpenSSL/paramnames.pm" + ], "crypto/rc4/rc4-586.S" => [ "crypto/perlasm/x86asm.pl" ], @@ -2101,6 +2476,9 @@ our %unified_info = ( "doc/html/man1/openssl-sess_id.html" => [ "doc/man1/openssl-sess_id.pod" ], + "doc/html/man1/openssl-skeyutl.html" => [ + "doc/man1/openssl-skeyutl.pod" + ], "doc/html/man1/openssl-smime.html" => [ "doc/man1/openssl-smime.pod" ], @@ -2242,6 +2620,9 @@ our %unified_info = ( "doc/html/man3/BIO_get_ex_new_index.html" => [ "doc/man3/BIO_get_ex_new_index.pod" ], + "doc/html/man3/BIO_get_rpoll_descriptor.html" => [ + "doc/man3/BIO_get_rpoll_descriptor.pod" + ], "doc/html/man3/BIO_meth_new.html" => [ "doc/man3/BIO_meth_new.pod" ], @@ -2278,6 +2659,9 @@ our %unified_info = ( "doc/html/man3/BIO_s_datagram.html" => [ "doc/man3/BIO_s_datagram.pod" ], + "doc/html/man3/BIO_s_dgram_pair.html" => [ + "doc/man3/BIO_s_dgram_pair.pod" + ], "doc/html/man3/BIO_s_fd.html" => [ "doc/man3/BIO_s_fd.pod" ], @@ -2293,6 +2677,9 @@ our %unified_info = ( "doc/html/man3/BIO_s_socket.html" => [ "doc/man3/BIO_s_socket.pod" ], + "doc/html/man3/BIO_sendmmsg.html" => [ + "doc/man3/BIO_sendmmsg.pod" + ], "doc/html/man3/BIO_set_callback.html" => [ "doc/man3/BIO_set_callback.pod" ], @@ -2365,6 +2752,9 @@ our %unified_info = ( "doc/html/man3/BUF_MEM_new.html" => [ "doc/man3/BUF_MEM_new.pod" ], + "doc/html/man3/CMAC_CTX.html" => [ + "doc/man3/CMAC_CTX.pod" + ], "doc/html/man3/CMS_EncryptedData_decrypt.html" => [ "doc/man3/CMS_EncryptedData_decrypt.pod" ], @@ -2431,6 +2821,9 @@ our %unified_info = ( "doc/html/man3/CMS_verify_receipt.html" => [ "doc/man3/CMS_verify_receipt.pod" ], + "doc/html/man3/COMP_CTX_new.html" => [ + "doc/man3/COMP_CTX_new.pod" + ], "doc/html/man3/CONF_modules_free.html" => [ "doc/man3/CONF_modules_free.pod" ], @@ -2530,6 +2923,12 @@ our %unified_info = ( "doc/html/man3/DTLS_set_timer_cb.html" => [ "doc/man3/DTLS_set_timer_cb.pod" ], + "doc/html/man3/DTLSv1_get_timeout.html" => [ + "doc/man3/DTLSv1_get_timeout.pod" + ], + "doc/html/man3/DTLSv1_handle_timeout.html" => [ + "doc/man3/DTLSv1_handle_timeout.pod" + ], "doc/html/man3/DTLSv1_listen.html" => [ "doc/man3/DTLSv1_listen.pod" ], @@ -2668,6 +3067,9 @@ our %unified_info = ( "doc/html/man3/EVP_PKEY_CTX_get0_pkey.html" => [ "doc/man3/EVP_PKEY_CTX_get0_pkey.pod" ], + "doc/html/man3/EVP_PKEY_CTX_get_algor.html" => [ + "doc/man3/EVP_PKEY_CTX_get_algor.pod" + ], "doc/html/man3/EVP_PKEY_CTX_new.html" => [ "doc/man3/EVP_PKEY_CTX_new.pod" ], @@ -2785,6 +3187,12 @@ our %unified_info = ( "doc/html/man3/EVP_SIGNATURE.html" => [ "doc/man3/EVP_SIGNATURE.pod" ], + "doc/html/man3/EVP_SKEY.html" => [ + "doc/man3/EVP_SKEY.pod" + ], + "doc/html/man3/EVP_SKEYMGMT.html" => [ + "doc/man3/EVP_SKEYMGMT.pod" + ], "doc/html/man3/EVP_SealInit.html" => [ "doc/man3/EVP_SealInit.pod" ], @@ -2872,6 +3280,9 @@ our %unified_info = ( "doc/html/man3/EVP_whirlpool.html" => [ "doc/man3/EVP_whirlpool.pod" ], + "doc/html/man3/GENERAL_NAME.html" => [ + "doc/man3/GENERAL_NAME.pod" + ], "doc/html/man3/HMAC.html" => [ "doc/man3/HMAC.pod" ], @@ -2944,9 +3355,15 @@ our %unified_info = ( "doc/html/man3/OPENSSL_load_builtin_modules.html" => [ "doc/man3/OPENSSL_load_builtin_modules.pod" ], + "doc/html/man3/OPENSSL_load_u16_le.html" => [ + "doc/man3/OPENSSL_load_u16_le.pod" + ], "doc/html/man3/OPENSSL_malloc.html" => [ "doc/man3/OPENSSL_malloc.pod" ], + "doc/html/man3/OPENSSL_riscvcap.html" => [ + "doc/man3/OPENSSL_riscvcap.pod" + ], "doc/html/man3/OPENSSL_s390xcap.html" => [ "doc/man3/OPENSSL_s390xcap.pod" ], @@ -2962,12 +3379,18 @@ our %unified_info = ( "doc/html/man3/OSSL_CALLBACK.html" => [ "doc/man3/OSSL_CALLBACK.pod" ], + "doc/html/man3/OSSL_CMP_ATAV_set0.html" => [ + "doc/man3/OSSL_CMP_ATAV_set0.pod" + ], "doc/html/man3/OSSL_CMP_CTX_new.html" => [ "doc/man3/OSSL_CMP_CTX_new.pod" ], "doc/html/man3/OSSL_CMP_HDR_get0_transactionID.html" => [ "doc/man3/OSSL_CMP_HDR_get0_transactionID.pod" ], + "doc/html/man3/OSSL_CMP_ITAV_new_caCerts.html" => [ + "doc/man3/OSSL_CMP_ITAV_new_caCerts.pod" + ], "doc/html/man3/OSSL_CMP_ITAV_set0.html" => [ "doc/man3/OSSL_CMP_ITAV_set0.pod" ], @@ -3037,9 +3460,18 @@ our %unified_info = ( "doc/html/man3/OSSL_ENCODER_to_bio.html" => [ "doc/man3/OSSL_ENCODER_to_bio.pod" ], + "doc/html/man3/OSSL_ERR_STATE_save.html" => [ + "doc/man3/OSSL_ERR_STATE_save.pod" + ], "doc/html/man3/OSSL_ESS_check_signing_certs.html" => [ "doc/man3/OSSL_ESS_check_signing_certs.pod" ], + "doc/html/man3/OSSL_GENERAL_NAMES_print.html" => [ + "doc/man3/OSSL_GENERAL_NAMES_print.pod" + ], + "doc/html/man3/OSSL_HPKE_CTX_new.html" => [ + "doc/man3/OSSL_HPKE_CTX_new.pod" + ], "doc/html/man3/OSSL_HTTP_REQ_CTX.html" => [ "doc/man3/OSSL_HTTP_REQ_CTX.pod" ], @@ -3049,12 +3481,24 @@ our %unified_info = ( "doc/html/man3/OSSL_HTTP_transfer.html" => [ "doc/man3/OSSL_HTTP_transfer.pod" ], + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX.html" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX.pod" + ], + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX_print.html" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX_print.pod" + ], + "doc/html/man3/OSSL_INDICATOR_set_callback.html" => [ + "doc/man3/OSSL_INDICATOR_set_callback.pod" + ], "doc/html/man3/OSSL_ITEM.html" => [ "doc/man3/OSSL_ITEM.pod" ], "doc/html/man3/OSSL_LIB_CTX.html" => [ "doc/man3/OSSL_LIB_CTX.pod" ], + "doc/html/man3/OSSL_LIB_CTX_set_conf_diagnostics.html" => [ + "doc/man3/OSSL_LIB_CTX_set_conf_diagnostics.pod" + ], "doc/html/man3/OSSL_PARAM.html" => [ "doc/man3/OSSL_PARAM.pod" ], @@ -3070,9 +3514,15 @@ our %unified_info = ( "doc/html/man3/OSSL_PARAM_int.html" => [ "doc/man3/OSSL_PARAM_int.pod" ], + "doc/html/man3/OSSL_PARAM_print_to_bio.html" => [ + "doc/man3/OSSL_PARAM_print_to_bio.pod" + ], "doc/html/man3/OSSL_PROVIDER.html" => [ "doc/man3/OSSL_PROVIDER.pod" ], + "doc/html/man3/OSSL_QUIC_client_method.html" => [ + "doc/man3/OSSL_QUIC_client_method.pod" + ], "doc/html/man3/OSSL_SELF_TEST_new.html" => [ "doc/man3/OSSL_SELF_TEST_new.pod" ], @@ -3097,6 +3547,9 @@ our %unified_info = ( "doc/html/man3/OSSL_STORE_open.html" => [ "doc/man3/OSSL_STORE_open.pod" ], + "doc/html/man3/OSSL_sleep.html" => [ + "doc/man3/OSSL_sleep.pod" + ], "doc/html/man3/OSSL_trace_enabled.html" => [ "doc/man3/OSSL_trace_enabled.pod" ], @@ -3112,6 +3565,9 @@ our %unified_info = ( "doc/html/man3/OpenSSL_version.html" => [ "doc/man3/OpenSSL_version.pod" ], + "doc/html/man3/PBMAC1_get1_pbkdf2_param.html" => [ + "doc/man3/PBMAC1_get1_pbkdf2_param.pod" + ], "doc/html/man3/PEM_X509_INFO_read_bio_ex.html" => [ "doc/man3/PEM_X509_INFO_read_bio_ex.pod" ], @@ -3148,6 +3604,9 @@ our %unified_info = ( "doc/html/man3/PKCS12_SAFEBAG_get1_cert.html" => [ "doc/man3/PKCS12_SAFEBAG_get1_cert.pod" ], + "doc/html/man3/PKCS12_SAFEBAG_set0_attrs.html" => [ + "doc/man3/PKCS12_SAFEBAG_set0_attrs.pod" + ], "doc/html/man3/PKCS12_add1_attr_by_NID.html" => [ "doc/man3/PKCS12_add1_attr_by_NID.pod" ], @@ -3421,6 +3880,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set0_CA_list.html" => [ "doc/man3/SSL_CTX_set0_CA_list.pod" ], + "doc/html/man3/SSL_CTX_set1_cert_comp_preference.html" => [ + "doc/man3/SSL_CTX_set1_cert_comp_preference.pod" + ], "doc/html/man3/SSL_CTX_set1_curves.html" => [ "doc/man3/SSL_CTX_set1_curves.pod" ], @@ -3460,6 +3922,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_default_passwd_cb.html" => [ "doc/man3/SSL_CTX_set_default_passwd_cb.pod" ], + "doc/html/man3/SSL_CTX_set_domain_flags.html" => [ + "doc/man3/SSL_CTX_set_domain_flags.pod" + ], "doc/html/man3/SSL_CTX_set_generate_session_id.html" => [ "doc/man3/SSL_CTX_set_generate_session_id.pod" ], @@ -3481,6 +3946,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_msg_callback.html" => [ "doc/man3/SSL_CTX_set_msg_callback.pod" ], + "doc/html/man3/SSL_CTX_set_new_pending_conn_cb.html" => [ + "doc/man3/SSL_CTX_set_new_pending_conn_cb.pod" + ], "doc/html/man3/SSL_CTX_set_num_tickets.html" => [ "doc/man3/SSL_CTX_set_num_tickets.pod" ], @@ -3595,6 +4063,9 @@ our %unified_info = ( "doc/html/man3/SSL_accept.html" => [ "doc/man3/SSL_accept.pod" ], + "doc/html/man3/SSL_accept_stream.html" => [ + "doc/man3/SSL_accept_stream.pod" + ], "doc/html/man3/SSL_alert_type_string.html" => [ "doc/man3/SSL_alert_type_string.pod" ], @@ -3622,9 +4093,21 @@ our %unified_info = ( "doc/html/man3/SSL_free.html" => [ "doc/man3/SSL_free.pod" ], + "doc/html/man3/SSL_get0_connection.html" => [ + "doc/man3/SSL_get0_connection.pod" + ], + "doc/html/man3/SSL_get0_group_name.html" => [ + "doc/man3/SSL_get0_group_name.pod" + ], + "doc/html/man3/SSL_get0_peer_rpk.html" => [ + "doc/man3/SSL_get0_peer_rpk.pod" + ], "doc/html/man3/SSL_get0_peer_scts.html" => [ "doc/man3/SSL_get0_peer_scts.pod" ], + "doc/html/man3/SSL_get1_builtin_sigalgs.html" => [ + "doc/man3/SSL_get1_builtin_sigalgs.pod" + ], "doc/html/man3/SSL_get_SSL_CTX.html" => [ "doc/man3/SSL_get_SSL_CTX.pod" ], @@ -3640,6 +4123,9 @@ our %unified_info = ( "doc/html/man3/SSL_get_client_random.html" => [ "doc/man3/SSL_get_client_random.pod" ], + "doc/html/man3/SSL_get_conn_close_info.html" => [ + "doc/man3/SSL_get_conn_close_info.pod" + ], "doc/html/man3/SSL_get_current_cipher.html" => [ "doc/man3/SSL_get_current_cipher.pod" ], @@ -3649,12 +4135,18 @@ our %unified_info = ( "doc/html/man3/SSL_get_error.html" => [ "doc/man3/SSL_get_error.pod" ], + "doc/html/man3/SSL_get_event_timeout.html" => [ + "doc/man3/SSL_get_event_timeout.pod" + ], "doc/html/man3/SSL_get_extms_support.html" => [ "doc/man3/SSL_get_extms_support.pod" ], "doc/html/man3/SSL_get_fd.html" => [ "doc/man3/SSL_get_fd.pod" ], + "doc/html/man3/SSL_get_handshake_rtt.html" => [ + "doc/man3/SSL_get_handshake_rtt.pod" + ], "doc/html/man3/SSL_get_peer_cert_chain.html" => [ "doc/man3/SSL_get_peer_cert_chain.pod" ], @@ -3673,12 +4165,24 @@ our %unified_info = ( "doc/html/man3/SSL_get_rbio.html" => [ "doc/man3/SSL_get_rbio.pod" ], + "doc/html/man3/SSL_get_rpoll_descriptor.html" => [ + "doc/man3/SSL_get_rpoll_descriptor.pod" + ], "doc/html/man3/SSL_get_session.html" => [ "doc/man3/SSL_get_session.pod" ], "doc/html/man3/SSL_get_shared_sigalgs.html" => [ "doc/man3/SSL_get_shared_sigalgs.pod" ], + "doc/html/man3/SSL_get_stream_id.html" => [ + "doc/man3/SSL_get_stream_id.pod" + ], + "doc/html/man3/SSL_get_stream_read_state.html" => [ + "doc/man3/SSL_get_stream_read_state.pod" + ], + "doc/html/man3/SSL_get_value_uint.html" => [ + "doc/man3/SSL_get_value_uint.pod" + ], "doc/html/man3/SSL_get_verify_result.html" => [ "doc/man3/SSL_get_verify_result.pod" ], @@ -3688,9 +4192,15 @@ our %unified_info = ( "doc/html/man3/SSL_group_to_name.html" => [ "doc/man3/SSL_group_to_name.pod" ], + "doc/html/man3/SSL_handle_events.html" => [ + "doc/man3/SSL_handle_events.pod" + ], "doc/html/man3/SSL_in_init.html" => [ "doc/man3/SSL_in_init.pod" ], + "doc/html/man3/SSL_inject_net_dgram.html" => [ + "doc/man3/SSL_inject_net_dgram.pod" + ], "doc/html/man3/SSL_key_update.html" => [ "doc/man3/SSL_key_update.pod" ], @@ -3703,9 +4213,21 @@ our %unified_info = ( "doc/html/man3/SSL_new.html" => [ "doc/man3/SSL_new.pod" ], + "doc/html/man3/SSL_new_domain.html" => [ + "doc/man3/SSL_new_domain.pod" + ], + "doc/html/man3/SSL_new_listener.html" => [ + "doc/man3/SSL_new_listener.pod" + ], + "doc/html/man3/SSL_new_stream.html" => [ + "doc/man3/SSL_new_stream.pod" + ], "doc/html/man3/SSL_pending.html" => [ "doc/man3/SSL_pending.pod" ], + "doc/html/man3/SSL_poll.html" => [ + "doc/man3/SSL_poll.pod" + ], "doc/html/man3/SSL_read.html" => [ "doc/man3/SSL_read.pod" ], @@ -3721,24 +4243,45 @@ our %unified_info = ( "doc/html/man3/SSL_set1_host.html" => [ "doc/man3/SSL_set1_host.pod" ], + "doc/html/man3/SSL_set1_initial_peer_addr.html" => [ + "doc/man3/SSL_set1_initial_peer_addr.pod" + ], + "doc/html/man3/SSL_set1_server_cert_type.html" => [ + "doc/man3/SSL_set1_server_cert_type.pod" + ], "doc/html/man3/SSL_set_async_callback.html" => [ "doc/man3/SSL_set_async_callback.pod" ], "doc/html/man3/SSL_set_bio.html" => [ "doc/man3/SSL_set_bio.pod" ], + "doc/html/man3/SSL_set_blocking_mode.html" => [ + "doc/man3/SSL_set_blocking_mode.pod" + ], "doc/html/man3/SSL_set_connect_state.html" => [ "doc/man3/SSL_set_connect_state.pod" ], + "doc/html/man3/SSL_set_default_stream_mode.html" => [ + "doc/man3/SSL_set_default_stream_mode.pod" + ], "doc/html/man3/SSL_set_fd.html" => [ "doc/man3/SSL_set_fd.pod" ], + "doc/html/man3/SSL_set_incoming_stream_policy.html" => [ + "doc/man3/SSL_set_incoming_stream_policy.pod" + ], + "doc/html/man3/SSL_set_quic_tls_cbs.html" => [ + "doc/man3/SSL_set_quic_tls_cbs.pod" + ], "doc/html/man3/SSL_set_retry_verify.html" => [ "doc/man3/SSL_set_retry_verify.pod" ], "doc/html/man3/SSL_set_session.html" => [ "doc/man3/SSL_set_session.pod" ], + "doc/html/man3/SSL_set_session_secret_cb.html" => [ + "doc/man3/SSL_set_session_secret_cb.pod" + ], "doc/html/man3/SSL_set_shutdown.html" => [ "doc/man3/SSL_set_shutdown.pod" ], @@ -3751,6 +4294,12 @@ our %unified_info = ( "doc/html/man3/SSL_state_string.html" => [ "doc/man3/SSL_state_string.pod" ], + "doc/html/man3/SSL_stream_conclude.html" => [ + "doc/man3/SSL_stream_conclude.pod" + ], + "doc/html/man3/SSL_stream_reset.html" => [ + "doc/man3/SSL_stream_reset.pod" + ], "doc/html/man3/SSL_want.html" => [ "doc/man3/SSL_want.pod" ], @@ -3760,8 +4309,8 @@ our %unified_info = ( "doc/html/man3/TS_RESP_CTX_new.html" => [ "doc/man3/TS_RESP_CTX_new.pod" ], - "doc/html/man3/TS_VERIFY_CTX_set_certs.html" => [ - "doc/man3/TS_VERIFY_CTX_set_certs.pod" + "doc/html/man3/TS_VERIFY_CTX.html" => [ + "doc/man3/TS_VERIFY_CTX.pod" ], "doc/html/man3/UI_STRING.html" => [ "doc/man3/UI_STRING.pod" @@ -3781,6 +4330,21 @@ our %unified_info = ( "doc/html/man3/X509V3_set_ctx.html" => [ "doc/man3/X509V3_set_ctx.pod" ], + "doc/html/man3/X509_ACERT_add1_attr.html" => [ + "doc/man3/X509_ACERT_add1_attr.pod" + ], + "doc/html/man3/X509_ACERT_add_attr_nconf.html" => [ + "doc/man3/X509_ACERT_add_attr_nconf.pod" + ], + "doc/html/man3/X509_ACERT_get0_holder_baseCertId.html" => [ + "doc/man3/X509_ACERT_get0_holder_baseCertId.pod" + ], + "doc/html/man3/X509_ACERT_get_attr.html" => [ + "doc/man3/X509_ACERT_get_attr.pod" + ], + "doc/html/man3/X509_ACERT_print_ex.html" => [ + "doc/man3/X509_ACERT_print_ex.pod" + ], "doc/html/man3/X509_ALGOR_dup.html" => [ "doc/man3/X509_ALGOR_dup.pod" ], @@ -3829,6 +4393,9 @@ our %unified_info = ( "doc/html/man3/X509_SIG_get0.html" => [ "doc/man3/X509_SIG_get0.pod" ], + "doc/html/man3/X509_STORE_CTX_get_by_subject.html" => [ + "doc/man3/X509_STORE_CTX_get_by_subject.pod" + ], "doc/html/man3/X509_STORE_CTX_get_error.html" => [ "doc/man3/X509_STORE_CTX_get_error.pod" ], @@ -3895,6 +4462,9 @@ our %unified_info = ( "doc/html/man3/X509_get0_uids.html" => [ "doc/man3/X509_get0_uids.pod" ], + "doc/html/man3/X509_get_default_cert_file.html" => [ + "doc/man3/X509_get_default_cert_file.pod" + ], "doc/html/man3/X509_get_extension_flags.html" => [ "doc/man3/X509_get_extension_flags.pod" ], @@ -4018,9 +4588,15 @@ our %unified_info = ( "doc/html/man7/EVP_CIPHER-SM4.html" => [ "doc/man7/EVP_CIPHER-SM4.pod" ], + "doc/html/man7/EVP_KDF-ARGON2.html" => [ + "doc/man7/EVP_KDF-ARGON2.pod" + ], "doc/html/man7/EVP_KDF-HKDF.html" => [ "doc/man7/EVP_KDF-HKDF.pod" ], + "doc/html/man7/EVP_KDF-HMAC-DRBG.html" => [ + "doc/man7/EVP_KDF-HMAC-DRBG.pod" + ], "doc/html/man7/EVP_KDF-KB.html" => [ "doc/man7/EVP_KDF-KB.pod" ], @@ -4036,6 +4612,9 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-PKCS12KDF.html" => [ "doc/man7/EVP_KDF-PKCS12KDF.pod" ], + "doc/html/man7/EVP_KDF-PVKKDF.html" => [ + "doc/man7/EVP_KDF-PVKKDF.pod" + ], "doc/html/man7/EVP_KDF-SCRYPT.html" => [ "doc/man7/EVP_KDF-SCRYPT.pod" ], @@ -4060,9 +4639,18 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-X963.html" => [ "doc/man7/EVP_KDF-X963.pod" ], + "doc/html/man7/EVP_KEM-EC.html" => [ + "doc/man7/EVP_KEM-EC.pod" + ], + "doc/html/man7/EVP_KEM-ML-KEM.html" => [ + "doc/man7/EVP_KEM-ML-KEM.pod" + ], "doc/html/man7/EVP_KEM-RSA.html" => [ "doc/man7/EVP_KEM-RSA.pod" ], + "doc/html/man7/EVP_KEM-X25519.html" => [ + "doc/man7/EVP_KEM-X25519.pod" + ], "doc/html/man7/EVP_KEYEXCH-DH.html" => [ "doc/man7/EVP_KEYEXCH-DH.pod" ], @@ -4096,6 +4684,9 @@ our %unified_info = ( "doc/html/man7/EVP_MD-BLAKE2.html" => [ "doc/man7/EVP_MD-BLAKE2.pod" ], + "doc/html/man7/EVP_MD-KECCAK.html" => [ + "doc/man7/EVP_MD-KECCAK.pod" + ], "doc/html/man7/EVP_MD-MD2.html" => [ "doc/man7/EVP_MD-MD2.pod" ], @@ -4153,15 +4744,27 @@ our %unified_info = ( "doc/html/man7/EVP_PKEY-HMAC.html" => [ "doc/man7/EVP_PKEY-HMAC.pod" ], + "doc/html/man7/EVP_PKEY-ML-DSA.html" => [ + "doc/man7/EVP_PKEY-ML-DSA.pod" + ], + "doc/html/man7/EVP_PKEY-ML-KEM.html" => [ + "doc/man7/EVP_PKEY-ML-KEM.pod" + ], "doc/html/man7/EVP_PKEY-RSA.html" => [ "doc/man7/EVP_PKEY-RSA.pod" ], + "doc/html/man7/EVP_PKEY-SLH-DSA.html" => [ + "doc/man7/EVP_PKEY-SLH-DSA.pod" + ], "doc/html/man7/EVP_PKEY-SM2.html" => [ "doc/man7/EVP_PKEY-SM2.pod" ], "doc/html/man7/EVP_PKEY-X25519.html" => [ "doc/man7/EVP_PKEY-X25519.pod" ], + "doc/html/man7/EVP_RAND-CRNG-TEST.html" => [ + "doc/man7/EVP_RAND-CRNG-TEST.pod" + ], "doc/html/man7/EVP_RAND-CTR-DRBG.html" => [ "doc/man7/EVP_RAND-CTR-DRBG.pod" ], @@ -4171,6 +4774,9 @@ our %unified_info = ( "doc/html/man7/EVP_RAND-HMAC-DRBG.html" => [ "doc/man7/EVP_RAND-HMAC-DRBG.pod" ], + "doc/html/man7/EVP_RAND-JITTER.html" => [ + "doc/man7/EVP_RAND-JITTER.pod" + ], "doc/html/man7/EVP_RAND-SEED-SRC.html" => [ "doc/man7/EVP_RAND-SEED-SRC.pod" ], @@ -4192,9 +4798,15 @@ our %unified_info = ( "doc/html/man7/EVP_SIGNATURE-HMAC.html" => [ "doc/man7/EVP_SIGNATURE-HMAC.pod" ], + "doc/html/man7/EVP_SIGNATURE-ML-DSA.html" => [ + "doc/man7/EVP_SIGNATURE-ML-DSA.pod" + ], "doc/html/man7/EVP_SIGNATURE-RSA.html" => [ "doc/man7/EVP_SIGNATURE-RSA.pod" ], + "doc/html/man7/EVP_SIGNATURE-SLH-DSA.html" => [ + "doc/man7/EVP_SIGNATURE-SLH-DSA.pod" + ], "doc/html/man7/OSSL_PROVIDER-FIPS.html" => [ "doc/man7/OSSL_PROVIDER-FIPS.pod" ], @@ -4210,6 +4822,9 @@ our %unified_info = ( "doc/html/man7/OSSL_PROVIDER-null.html" => [ "doc/man7/OSSL_PROVIDER-null.pod" ], + "doc/html/man7/OSSL_STORE-winstore.html" => [ + "doc/man7/OSSL_STORE-winstore.pod" + ], "doc/html/man7/RAND.html" => [ "doc/man7/RAND.pod" ], @@ -4222,9 +4837,6 @@ our %unified_info = ( "doc/html/man7/bio.html" => [ "doc/man7/bio.pod" ], - "doc/html/man7/crypto.html" => [ - "doc/man7/crypto.pod" - ], "doc/html/man7/ct.html" => [ "doc/man7/ct.pod" ], @@ -4255,9 +4867,6 @@ our %unified_info = ( "doc/html/man7/life_cycle-rand.html" => [ "doc/man7/life_cycle-rand.pod" ], - "doc/html/man7/migration_guide.html" => [ - "doc/man7/migration_guide.pod" - ], "doc/html/man7/openssl-core.h.html" => [ "doc/man7/openssl-core.h.pod" ], @@ -4273,12 +4882,66 @@ our %unified_info = ( "doc/html/man7/openssl-glossary.html" => [ "doc/man7/openssl-glossary.pod" ], + "doc/html/man7/openssl-qlog.html" => [ + "doc/man7/openssl-qlog.pod" + ], + "doc/html/man7/openssl-quic-concurrency.html" => [ + "doc/man7/openssl-quic-concurrency.pod" + ], + "doc/html/man7/openssl-quic.html" => [ + "doc/man7/openssl-quic.pod" + ], "doc/html/man7/openssl-threads.html" => [ "doc/man7/openssl-threads.pod" ], "doc/html/man7/openssl_user_macros.html" => [ "doc/man7/openssl_user_macros.pod" ], + "doc/html/man7/ossl-guide-introduction.html" => [ + "doc/man7/ossl-guide-introduction.pod" + ], + "doc/html/man7/ossl-guide-libcrypto-introduction.html" => [ + "doc/man7/ossl-guide-libcrypto-introduction.pod" + ], + "doc/html/man7/ossl-guide-libraries-introduction.html" => [ + "doc/man7/ossl-guide-libraries-introduction.pod" + ], + "doc/html/man7/ossl-guide-libssl-introduction.html" => [ + "doc/man7/ossl-guide-libssl-introduction.pod" + ], + "doc/html/man7/ossl-guide-migration.html" => [ + "doc/man7/ossl-guide-migration.pod" + ], + "doc/html/man7/ossl-guide-quic-client-block.html" => [ + "doc/man7/ossl-guide-quic-client-block.pod" + ], + "doc/html/man7/ossl-guide-quic-client-non-block.html" => [ + "doc/man7/ossl-guide-quic-client-non-block.pod" + ], + "doc/html/man7/ossl-guide-quic-introduction.html" => [ + "doc/man7/ossl-guide-quic-introduction.pod" + ], + "doc/html/man7/ossl-guide-quic-multi-stream.html" => [ + "doc/man7/ossl-guide-quic-multi-stream.pod" + ], + "doc/html/man7/ossl-guide-quic-server-block.html" => [ + "doc/man7/ossl-guide-quic-server-block.pod" + ], + "doc/html/man7/ossl-guide-quic-server-non-block.html" => [ + "doc/man7/ossl-guide-quic-server-non-block.pod" + ], + "doc/html/man7/ossl-guide-tls-client-block.html" => [ + "doc/man7/ossl-guide-tls-client-block.pod" + ], + "doc/html/man7/ossl-guide-tls-client-non-block.html" => [ + "doc/man7/ossl-guide-tls-client-non-block.pod" + ], + "doc/html/man7/ossl-guide-tls-introduction.html" => [ + "doc/man7/ossl-guide-tls-introduction.pod" + ], + "doc/html/man7/ossl-guide-tls-server-block.html" => [ + "doc/man7/ossl-guide-tls-server-block.pod" + ], "doc/html/man7/ossl_store-file.html" => [ "doc/man7/ossl_store-file.pod" ], @@ -4333,6 +4996,9 @@ our %unified_info = ( "doc/html/man7/provider-signature.html" => [ "doc/man7/provider-signature.pod" ], + "doc/html/man7/provider-skeymgmt.html" => [ + "doc/man7/provider-skeymgmt.pod" + ], "doc/html/man7/provider-storemgmt.html" => [ "doc/man7/provider-storemgmt.pod" ], @@ -4342,9 +5008,6 @@ our %unified_info = ( "doc/html/man7/proxy-certificates.html" => [ "doc/man7/proxy-certificates.pod" ], - "doc/html/man7/ssl.html" => [ - "doc/man7/ssl.pod" - ], "doc/html/man7/x509.html" => [ "doc/man7/x509.pod" ], @@ -4492,6 +5155,9 @@ our %unified_info = ( "doc/man/man1/openssl-sess_id.1" => [ "doc/man1/openssl-sess_id.pod" ], + "doc/man/man1/openssl-skeyutl.1" => [ + "doc/man1/openssl-skeyutl.pod" + ], "doc/man/man1/openssl-smime.1" => [ "doc/man1/openssl-smime.pod" ], @@ -4633,6 +5299,9 @@ our %unified_info = ( "doc/man/man3/BIO_get_ex_new_index.3" => [ "doc/man3/BIO_get_ex_new_index.pod" ], + "doc/man/man3/BIO_get_rpoll_descriptor.3" => [ + "doc/man3/BIO_get_rpoll_descriptor.pod" + ], "doc/man/man3/BIO_meth_new.3" => [ "doc/man3/BIO_meth_new.pod" ], @@ -4669,6 +5338,9 @@ our %unified_info = ( "doc/man/man3/BIO_s_datagram.3" => [ "doc/man3/BIO_s_datagram.pod" ], + "doc/man/man3/BIO_s_dgram_pair.3" => [ + "doc/man3/BIO_s_dgram_pair.pod" + ], "doc/man/man3/BIO_s_fd.3" => [ "doc/man3/BIO_s_fd.pod" ], @@ -4684,6 +5356,9 @@ our %unified_info = ( "doc/man/man3/BIO_s_socket.3" => [ "doc/man3/BIO_s_socket.pod" ], + "doc/man/man3/BIO_sendmmsg.3" => [ + "doc/man3/BIO_sendmmsg.pod" + ], "doc/man/man3/BIO_set_callback.3" => [ "doc/man3/BIO_set_callback.pod" ], @@ -4756,6 +5431,9 @@ our %unified_info = ( "doc/man/man3/BUF_MEM_new.3" => [ "doc/man3/BUF_MEM_new.pod" ], + "doc/man/man3/CMAC_CTX.3" => [ + "doc/man3/CMAC_CTX.pod" + ], "doc/man/man3/CMS_EncryptedData_decrypt.3" => [ "doc/man3/CMS_EncryptedData_decrypt.pod" ], @@ -4822,6 +5500,9 @@ our %unified_info = ( "doc/man/man3/CMS_verify_receipt.3" => [ "doc/man3/CMS_verify_receipt.pod" ], + "doc/man/man3/COMP_CTX_new.3" => [ + "doc/man3/COMP_CTX_new.pod" + ], "doc/man/man3/CONF_modules_free.3" => [ "doc/man3/CONF_modules_free.pod" ], @@ -4921,6 +5602,12 @@ our %unified_info = ( "doc/man/man3/DTLS_set_timer_cb.3" => [ "doc/man3/DTLS_set_timer_cb.pod" ], + "doc/man/man3/DTLSv1_get_timeout.3" => [ + "doc/man3/DTLSv1_get_timeout.pod" + ], + "doc/man/man3/DTLSv1_handle_timeout.3" => [ + "doc/man3/DTLSv1_handle_timeout.pod" + ], "doc/man/man3/DTLSv1_listen.3" => [ "doc/man3/DTLSv1_listen.pod" ], @@ -5059,6 +5746,9 @@ our %unified_info = ( "doc/man/man3/EVP_PKEY_CTX_get0_pkey.3" => [ "doc/man3/EVP_PKEY_CTX_get0_pkey.pod" ], + "doc/man/man3/EVP_PKEY_CTX_get_algor.3" => [ + "doc/man3/EVP_PKEY_CTX_get_algor.pod" + ], "doc/man/man3/EVP_PKEY_CTX_new.3" => [ "doc/man3/EVP_PKEY_CTX_new.pod" ], @@ -5176,6 +5866,12 @@ our %unified_info = ( "doc/man/man3/EVP_SIGNATURE.3" => [ "doc/man3/EVP_SIGNATURE.pod" ], + "doc/man/man3/EVP_SKEY.3" => [ + "doc/man3/EVP_SKEY.pod" + ], + "doc/man/man3/EVP_SKEYMGMT.3" => [ + "doc/man3/EVP_SKEYMGMT.pod" + ], "doc/man/man3/EVP_SealInit.3" => [ "doc/man3/EVP_SealInit.pod" ], @@ -5263,6 +5959,9 @@ our %unified_info = ( "doc/man/man3/EVP_whirlpool.3" => [ "doc/man3/EVP_whirlpool.pod" ], + "doc/man/man3/GENERAL_NAME.3" => [ + "doc/man3/GENERAL_NAME.pod" + ], "doc/man/man3/HMAC.3" => [ "doc/man3/HMAC.pod" ], @@ -5335,9 +6034,15 @@ our %unified_info = ( "doc/man/man3/OPENSSL_load_builtin_modules.3" => [ "doc/man3/OPENSSL_load_builtin_modules.pod" ], + "doc/man/man3/OPENSSL_load_u16_le.3" => [ + "doc/man3/OPENSSL_load_u16_le.pod" + ], "doc/man/man3/OPENSSL_malloc.3" => [ "doc/man3/OPENSSL_malloc.pod" ], + "doc/man/man3/OPENSSL_riscvcap.3" => [ + "doc/man3/OPENSSL_riscvcap.pod" + ], "doc/man/man3/OPENSSL_s390xcap.3" => [ "doc/man3/OPENSSL_s390xcap.pod" ], @@ -5353,12 +6058,18 @@ our %unified_info = ( "doc/man/man3/OSSL_CALLBACK.3" => [ "doc/man3/OSSL_CALLBACK.pod" ], + "doc/man/man3/OSSL_CMP_ATAV_set0.3" => [ + "doc/man3/OSSL_CMP_ATAV_set0.pod" + ], "doc/man/man3/OSSL_CMP_CTX_new.3" => [ "doc/man3/OSSL_CMP_CTX_new.pod" ], "doc/man/man3/OSSL_CMP_HDR_get0_transactionID.3" => [ "doc/man3/OSSL_CMP_HDR_get0_transactionID.pod" ], + "doc/man/man3/OSSL_CMP_ITAV_new_caCerts.3" => [ + "doc/man3/OSSL_CMP_ITAV_new_caCerts.pod" + ], "doc/man/man3/OSSL_CMP_ITAV_set0.3" => [ "doc/man3/OSSL_CMP_ITAV_set0.pod" ], @@ -5428,9 +6139,18 @@ our %unified_info = ( "doc/man/man3/OSSL_ENCODER_to_bio.3" => [ "doc/man3/OSSL_ENCODER_to_bio.pod" ], + "doc/man/man3/OSSL_ERR_STATE_save.3" => [ + "doc/man3/OSSL_ERR_STATE_save.pod" + ], "doc/man/man3/OSSL_ESS_check_signing_certs.3" => [ "doc/man3/OSSL_ESS_check_signing_certs.pod" ], + "doc/man/man3/OSSL_GENERAL_NAMES_print.3" => [ + "doc/man3/OSSL_GENERAL_NAMES_print.pod" + ], + "doc/man/man3/OSSL_HPKE_CTX_new.3" => [ + "doc/man3/OSSL_HPKE_CTX_new.pod" + ], "doc/man/man3/OSSL_HTTP_REQ_CTX.3" => [ "doc/man3/OSSL_HTTP_REQ_CTX.pod" ], @@ -5440,12 +6160,24 @@ our %unified_info = ( "doc/man/man3/OSSL_HTTP_transfer.3" => [ "doc/man3/OSSL_HTTP_transfer.pod" ], + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX.3" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX.pod" + ], + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX_print.3" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX_print.pod" + ], + "doc/man/man3/OSSL_INDICATOR_set_callback.3" => [ + "doc/man3/OSSL_INDICATOR_set_callback.pod" + ], "doc/man/man3/OSSL_ITEM.3" => [ "doc/man3/OSSL_ITEM.pod" ], "doc/man/man3/OSSL_LIB_CTX.3" => [ "doc/man3/OSSL_LIB_CTX.pod" ], + "doc/man/man3/OSSL_LIB_CTX_set_conf_diagnostics.3" => [ + "doc/man3/OSSL_LIB_CTX_set_conf_diagnostics.pod" + ], "doc/man/man3/OSSL_PARAM.3" => [ "doc/man3/OSSL_PARAM.pod" ], @@ -5461,9 +6193,15 @@ our %unified_info = ( "doc/man/man3/OSSL_PARAM_int.3" => [ "doc/man3/OSSL_PARAM_int.pod" ], + "doc/man/man3/OSSL_PARAM_print_to_bio.3" => [ + "doc/man3/OSSL_PARAM_print_to_bio.pod" + ], "doc/man/man3/OSSL_PROVIDER.3" => [ "doc/man3/OSSL_PROVIDER.pod" ], + "doc/man/man3/OSSL_QUIC_client_method.3" => [ + "doc/man3/OSSL_QUIC_client_method.pod" + ], "doc/man/man3/OSSL_SELF_TEST_new.3" => [ "doc/man3/OSSL_SELF_TEST_new.pod" ], @@ -5488,6 +6226,9 @@ our %unified_info = ( "doc/man/man3/OSSL_STORE_open.3" => [ "doc/man3/OSSL_STORE_open.pod" ], + "doc/man/man3/OSSL_sleep.3" => [ + "doc/man3/OSSL_sleep.pod" + ], "doc/man/man3/OSSL_trace_enabled.3" => [ "doc/man3/OSSL_trace_enabled.pod" ], @@ -5503,6 +6244,9 @@ our %unified_info = ( "doc/man/man3/OpenSSL_version.3" => [ "doc/man3/OpenSSL_version.pod" ], + "doc/man/man3/PBMAC1_get1_pbkdf2_param.3" => [ + "doc/man3/PBMAC1_get1_pbkdf2_param.pod" + ], "doc/man/man3/PEM_X509_INFO_read_bio_ex.3" => [ "doc/man3/PEM_X509_INFO_read_bio_ex.pod" ], @@ -5539,6 +6283,9 @@ our %unified_info = ( "doc/man/man3/PKCS12_SAFEBAG_get1_cert.3" => [ "doc/man3/PKCS12_SAFEBAG_get1_cert.pod" ], + "doc/man/man3/PKCS12_SAFEBAG_set0_attrs.3" => [ + "doc/man3/PKCS12_SAFEBAG_set0_attrs.pod" + ], "doc/man/man3/PKCS12_add1_attr_by_NID.3" => [ "doc/man3/PKCS12_add1_attr_by_NID.pod" ], @@ -5812,6 +6559,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set0_CA_list.3" => [ "doc/man3/SSL_CTX_set0_CA_list.pod" ], + "doc/man/man3/SSL_CTX_set1_cert_comp_preference.3" => [ + "doc/man3/SSL_CTX_set1_cert_comp_preference.pod" + ], "doc/man/man3/SSL_CTX_set1_curves.3" => [ "doc/man3/SSL_CTX_set1_curves.pod" ], @@ -5851,6 +6601,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_default_passwd_cb.3" => [ "doc/man3/SSL_CTX_set_default_passwd_cb.pod" ], + "doc/man/man3/SSL_CTX_set_domain_flags.3" => [ + "doc/man3/SSL_CTX_set_domain_flags.pod" + ], "doc/man/man3/SSL_CTX_set_generate_session_id.3" => [ "doc/man3/SSL_CTX_set_generate_session_id.pod" ], @@ -5872,6 +6625,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_msg_callback.3" => [ "doc/man3/SSL_CTX_set_msg_callback.pod" ], + "doc/man/man3/SSL_CTX_set_new_pending_conn_cb.3" => [ + "doc/man3/SSL_CTX_set_new_pending_conn_cb.pod" + ], "doc/man/man3/SSL_CTX_set_num_tickets.3" => [ "doc/man3/SSL_CTX_set_num_tickets.pod" ], @@ -5986,6 +6742,9 @@ our %unified_info = ( "doc/man/man3/SSL_accept.3" => [ "doc/man3/SSL_accept.pod" ], + "doc/man/man3/SSL_accept_stream.3" => [ + "doc/man3/SSL_accept_stream.pod" + ], "doc/man/man3/SSL_alert_type_string.3" => [ "doc/man3/SSL_alert_type_string.pod" ], @@ -6013,9 +6772,21 @@ our %unified_info = ( "doc/man/man3/SSL_free.3" => [ "doc/man3/SSL_free.pod" ], + "doc/man/man3/SSL_get0_connection.3" => [ + "doc/man3/SSL_get0_connection.pod" + ], + "doc/man/man3/SSL_get0_group_name.3" => [ + "doc/man3/SSL_get0_group_name.pod" + ], + "doc/man/man3/SSL_get0_peer_rpk.3" => [ + "doc/man3/SSL_get0_peer_rpk.pod" + ], "doc/man/man3/SSL_get0_peer_scts.3" => [ "doc/man3/SSL_get0_peer_scts.pod" ], + "doc/man/man3/SSL_get1_builtin_sigalgs.3" => [ + "doc/man3/SSL_get1_builtin_sigalgs.pod" + ], "doc/man/man3/SSL_get_SSL_CTX.3" => [ "doc/man3/SSL_get_SSL_CTX.pod" ], @@ -6031,6 +6802,9 @@ our %unified_info = ( "doc/man/man3/SSL_get_client_random.3" => [ "doc/man3/SSL_get_client_random.pod" ], + "doc/man/man3/SSL_get_conn_close_info.3" => [ + "doc/man3/SSL_get_conn_close_info.pod" + ], "doc/man/man3/SSL_get_current_cipher.3" => [ "doc/man3/SSL_get_current_cipher.pod" ], @@ -6040,12 +6814,18 @@ our %unified_info = ( "doc/man/man3/SSL_get_error.3" => [ "doc/man3/SSL_get_error.pod" ], + "doc/man/man3/SSL_get_event_timeout.3" => [ + "doc/man3/SSL_get_event_timeout.pod" + ], "doc/man/man3/SSL_get_extms_support.3" => [ "doc/man3/SSL_get_extms_support.pod" ], "doc/man/man3/SSL_get_fd.3" => [ "doc/man3/SSL_get_fd.pod" ], + "doc/man/man3/SSL_get_handshake_rtt.3" => [ + "doc/man3/SSL_get_handshake_rtt.pod" + ], "doc/man/man3/SSL_get_peer_cert_chain.3" => [ "doc/man3/SSL_get_peer_cert_chain.pod" ], @@ -6064,12 +6844,24 @@ our %unified_info = ( "doc/man/man3/SSL_get_rbio.3" => [ "doc/man3/SSL_get_rbio.pod" ], + "doc/man/man3/SSL_get_rpoll_descriptor.3" => [ + "doc/man3/SSL_get_rpoll_descriptor.pod" + ], "doc/man/man3/SSL_get_session.3" => [ "doc/man3/SSL_get_session.pod" ], "doc/man/man3/SSL_get_shared_sigalgs.3" => [ "doc/man3/SSL_get_shared_sigalgs.pod" ], + "doc/man/man3/SSL_get_stream_id.3" => [ + "doc/man3/SSL_get_stream_id.pod" + ], + "doc/man/man3/SSL_get_stream_read_state.3" => [ + "doc/man3/SSL_get_stream_read_state.pod" + ], + "doc/man/man3/SSL_get_value_uint.3" => [ + "doc/man3/SSL_get_value_uint.pod" + ], "doc/man/man3/SSL_get_verify_result.3" => [ "doc/man3/SSL_get_verify_result.pod" ], @@ -6079,9 +6871,15 @@ our %unified_info = ( "doc/man/man3/SSL_group_to_name.3" => [ "doc/man3/SSL_group_to_name.pod" ], + "doc/man/man3/SSL_handle_events.3" => [ + "doc/man3/SSL_handle_events.pod" + ], "doc/man/man3/SSL_in_init.3" => [ "doc/man3/SSL_in_init.pod" ], + "doc/man/man3/SSL_inject_net_dgram.3" => [ + "doc/man3/SSL_inject_net_dgram.pod" + ], "doc/man/man3/SSL_key_update.3" => [ "doc/man3/SSL_key_update.pod" ], @@ -6094,9 +6892,21 @@ our %unified_info = ( "doc/man/man3/SSL_new.3" => [ "doc/man3/SSL_new.pod" ], + "doc/man/man3/SSL_new_domain.3" => [ + "doc/man3/SSL_new_domain.pod" + ], + "doc/man/man3/SSL_new_listener.3" => [ + "doc/man3/SSL_new_listener.pod" + ], + "doc/man/man3/SSL_new_stream.3" => [ + "doc/man3/SSL_new_stream.pod" + ], "doc/man/man3/SSL_pending.3" => [ "doc/man3/SSL_pending.pod" ], + "doc/man/man3/SSL_poll.3" => [ + "doc/man3/SSL_poll.pod" + ], "doc/man/man3/SSL_read.3" => [ "doc/man3/SSL_read.pod" ], @@ -6112,24 +6922,45 @@ our %unified_info = ( "doc/man/man3/SSL_set1_host.3" => [ "doc/man3/SSL_set1_host.pod" ], + "doc/man/man3/SSL_set1_initial_peer_addr.3" => [ + "doc/man3/SSL_set1_initial_peer_addr.pod" + ], + "doc/man/man3/SSL_set1_server_cert_type.3" => [ + "doc/man3/SSL_set1_server_cert_type.pod" + ], "doc/man/man3/SSL_set_async_callback.3" => [ "doc/man3/SSL_set_async_callback.pod" ], "doc/man/man3/SSL_set_bio.3" => [ "doc/man3/SSL_set_bio.pod" ], + "doc/man/man3/SSL_set_blocking_mode.3" => [ + "doc/man3/SSL_set_blocking_mode.pod" + ], "doc/man/man3/SSL_set_connect_state.3" => [ "doc/man3/SSL_set_connect_state.pod" ], + "doc/man/man3/SSL_set_default_stream_mode.3" => [ + "doc/man3/SSL_set_default_stream_mode.pod" + ], "doc/man/man3/SSL_set_fd.3" => [ "doc/man3/SSL_set_fd.pod" ], + "doc/man/man3/SSL_set_incoming_stream_policy.3" => [ + "doc/man3/SSL_set_incoming_stream_policy.pod" + ], + "doc/man/man3/SSL_set_quic_tls_cbs.3" => [ + "doc/man3/SSL_set_quic_tls_cbs.pod" + ], "doc/man/man3/SSL_set_retry_verify.3" => [ "doc/man3/SSL_set_retry_verify.pod" ], "doc/man/man3/SSL_set_session.3" => [ "doc/man3/SSL_set_session.pod" ], + "doc/man/man3/SSL_set_session_secret_cb.3" => [ + "doc/man3/SSL_set_session_secret_cb.pod" + ], "doc/man/man3/SSL_set_shutdown.3" => [ "doc/man3/SSL_set_shutdown.pod" ], @@ -6142,6 +6973,12 @@ our %unified_info = ( "doc/man/man3/SSL_state_string.3" => [ "doc/man3/SSL_state_string.pod" ], + "doc/man/man3/SSL_stream_conclude.3" => [ + "doc/man3/SSL_stream_conclude.pod" + ], + "doc/man/man3/SSL_stream_reset.3" => [ + "doc/man3/SSL_stream_reset.pod" + ], "doc/man/man3/SSL_want.3" => [ "doc/man3/SSL_want.pod" ], @@ -6151,8 +6988,8 @@ our %unified_info = ( "doc/man/man3/TS_RESP_CTX_new.3" => [ "doc/man3/TS_RESP_CTX_new.pod" ], - "doc/man/man3/TS_VERIFY_CTX_set_certs.3" => [ - "doc/man3/TS_VERIFY_CTX_set_certs.pod" + "doc/man/man3/TS_VERIFY_CTX.3" => [ + "doc/man3/TS_VERIFY_CTX.pod" ], "doc/man/man3/UI_STRING.3" => [ "doc/man3/UI_STRING.pod" @@ -6172,6 +7009,21 @@ our %unified_info = ( "doc/man/man3/X509V3_set_ctx.3" => [ "doc/man3/X509V3_set_ctx.pod" ], + "doc/man/man3/X509_ACERT_add1_attr.3" => [ + "doc/man3/X509_ACERT_add1_attr.pod" + ], + "doc/man/man3/X509_ACERT_add_attr_nconf.3" => [ + "doc/man3/X509_ACERT_add_attr_nconf.pod" + ], + "doc/man/man3/X509_ACERT_get0_holder_baseCertId.3" => [ + "doc/man3/X509_ACERT_get0_holder_baseCertId.pod" + ], + "doc/man/man3/X509_ACERT_get_attr.3" => [ + "doc/man3/X509_ACERT_get_attr.pod" + ], + "doc/man/man3/X509_ACERT_print_ex.3" => [ + "doc/man3/X509_ACERT_print_ex.pod" + ], "doc/man/man3/X509_ALGOR_dup.3" => [ "doc/man3/X509_ALGOR_dup.pod" ], @@ -6220,6 +7072,9 @@ our %unified_info = ( "doc/man/man3/X509_SIG_get0.3" => [ "doc/man3/X509_SIG_get0.pod" ], + "doc/man/man3/X509_STORE_CTX_get_by_subject.3" => [ + "doc/man3/X509_STORE_CTX_get_by_subject.pod" + ], "doc/man/man3/X509_STORE_CTX_get_error.3" => [ "doc/man3/X509_STORE_CTX_get_error.pod" ], @@ -6286,6 +7141,9 @@ our %unified_info = ( "doc/man/man3/X509_get0_uids.3" => [ "doc/man3/X509_get0_uids.pod" ], + "doc/man/man3/X509_get_default_cert_file.3" => [ + "doc/man3/X509_get_default_cert_file.pod" + ], "doc/man/man3/X509_get_extension_flags.3" => [ "doc/man3/X509_get_extension_flags.pod" ], @@ -6409,9 +7267,15 @@ our %unified_info = ( "doc/man/man7/EVP_CIPHER-SM4.7" => [ "doc/man7/EVP_CIPHER-SM4.pod" ], + "doc/man/man7/EVP_KDF-ARGON2.7" => [ + "doc/man7/EVP_KDF-ARGON2.pod" + ], "doc/man/man7/EVP_KDF-HKDF.7" => [ "doc/man7/EVP_KDF-HKDF.pod" ], + "doc/man/man7/EVP_KDF-HMAC-DRBG.7" => [ + "doc/man7/EVP_KDF-HMAC-DRBG.pod" + ], "doc/man/man7/EVP_KDF-KB.7" => [ "doc/man7/EVP_KDF-KB.pod" ], @@ -6427,6 +7291,9 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-PKCS12KDF.7" => [ "doc/man7/EVP_KDF-PKCS12KDF.pod" ], + "doc/man/man7/EVP_KDF-PVKKDF.7" => [ + "doc/man7/EVP_KDF-PVKKDF.pod" + ], "doc/man/man7/EVP_KDF-SCRYPT.7" => [ "doc/man7/EVP_KDF-SCRYPT.pod" ], @@ -6451,9 +7318,18 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-X963.7" => [ "doc/man7/EVP_KDF-X963.pod" ], + "doc/man/man7/EVP_KEM-EC.7" => [ + "doc/man7/EVP_KEM-EC.pod" + ], + "doc/man/man7/EVP_KEM-ML-KEM.7" => [ + "doc/man7/EVP_KEM-ML-KEM.pod" + ], "doc/man/man7/EVP_KEM-RSA.7" => [ "doc/man7/EVP_KEM-RSA.pod" ], + "doc/man/man7/EVP_KEM-X25519.7" => [ + "doc/man7/EVP_KEM-X25519.pod" + ], "doc/man/man7/EVP_KEYEXCH-DH.7" => [ "doc/man7/EVP_KEYEXCH-DH.pod" ], @@ -6487,6 +7363,9 @@ our %unified_info = ( "doc/man/man7/EVP_MD-BLAKE2.7" => [ "doc/man7/EVP_MD-BLAKE2.pod" ], + "doc/man/man7/EVP_MD-KECCAK.7" => [ + "doc/man7/EVP_MD-KECCAK.pod" + ], "doc/man/man7/EVP_MD-MD2.7" => [ "doc/man7/EVP_MD-MD2.pod" ], @@ -6544,15 +7423,27 @@ our %unified_info = ( "doc/man/man7/EVP_PKEY-HMAC.7" => [ "doc/man7/EVP_PKEY-HMAC.pod" ], + "doc/man/man7/EVP_PKEY-ML-DSA.7" => [ + "doc/man7/EVP_PKEY-ML-DSA.pod" + ], + "doc/man/man7/EVP_PKEY-ML-KEM.7" => [ + "doc/man7/EVP_PKEY-ML-KEM.pod" + ], "doc/man/man7/EVP_PKEY-RSA.7" => [ "doc/man7/EVP_PKEY-RSA.pod" ], + "doc/man/man7/EVP_PKEY-SLH-DSA.7" => [ + "doc/man7/EVP_PKEY-SLH-DSA.pod" + ], "doc/man/man7/EVP_PKEY-SM2.7" => [ "doc/man7/EVP_PKEY-SM2.pod" ], "doc/man/man7/EVP_PKEY-X25519.7" => [ "doc/man7/EVP_PKEY-X25519.pod" ], + "doc/man/man7/EVP_RAND-CRNG-TEST.7" => [ + "doc/man7/EVP_RAND-CRNG-TEST.pod" + ], "doc/man/man7/EVP_RAND-CTR-DRBG.7" => [ "doc/man7/EVP_RAND-CTR-DRBG.pod" ], @@ -6562,6 +7453,9 @@ our %unified_info = ( "doc/man/man7/EVP_RAND-HMAC-DRBG.7" => [ "doc/man7/EVP_RAND-HMAC-DRBG.pod" ], + "doc/man/man7/EVP_RAND-JITTER.7" => [ + "doc/man7/EVP_RAND-JITTER.pod" + ], "doc/man/man7/EVP_RAND-SEED-SRC.7" => [ "doc/man7/EVP_RAND-SEED-SRC.pod" ], @@ -6583,9 +7477,15 @@ our %unified_info = ( "doc/man/man7/EVP_SIGNATURE-HMAC.7" => [ "doc/man7/EVP_SIGNATURE-HMAC.pod" ], + "doc/man/man7/EVP_SIGNATURE-ML-DSA.7" => [ + "doc/man7/EVP_SIGNATURE-ML-DSA.pod" + ], "doc/man/man7/EVP_SIGNATURE-RSA.7" => [ "doc/man7/EVP_SIGNATURE-RSA.pod" ], + "doc/man/man7/EVP_SIGNATURE-SLH-DSA.7" => [ + "doc/man7/EVP_SIGNATURE-SLH-DSA.pod" + ], "doc/man/man7/OSSL_PROVIDER-FIPS.7" => [ "doc/man7/OSSL_PROVIDER-FIPS.pod" ], @@ -6601,6 +7501,9 @@ our %unified_info = ( "doc/man/man7/OSSL_PROVIDER-null.7" => [ "doc/man7/OSSL_PROVIDER-null.pod" ], + "doc/man/man7/OSSL_STORE-winstore.7" => [ + "doc/man7/OSSL_STORE-winstore.pod" + ], "doc/man/man7/RAND.7" => [ "doc/man7/RAND.pod" ], @@ -6613,9 +7516,6 @@ our %unified_info = ( "doc/man/man7/bio.7" => [ "doc/man7/bio.pod" ], - "doc/man/man7/crypto.7" => [ - "doc/man7/crypto.pod" - ], "doc/man/man7/ct.7" => [ "doc/man7/ct.pod" ], @@ -6646,9 +7546,6 @@ our %unified_info = ( "doc/man/man7/life_cycle-rand.7" => [ "doc/man7/life_cycle-rand.pod" ], - "doc/man/man7/migration_guide.7" => [ - "doc/man7/migration_guide.pod" - ], "doc/man/man7/openssl-core.h.7" => [ "doc/man7/openssl-core.h.pod" ], @@ -6664,12 +7561,66 @@ our %unified_info = ( "doc/man/man7/openssl-glossary.7" => [ "doc/man7/openssl-glossary.pod" ], + "doc/man/man7/openssl-qlog.7" => [ + "doc/man7/openssl-qlog.pod" + ], + "doc/man/man7/openssl-quic-concurrency.7" => [ + "doc/man7/openssl-quic-concurrency.pod" + ], + "doc/man/man7/openssl-quic.7" => [ + "doc/man7/openssl-quic.pod" + ], "doc/man/man7/openssl-threads.7" => [ "doc/man7/openssl-threads.pod" ], "doc/man/man7/openssl_user_macros.7" => [ "doc/man7/openssl_user_macros.pod" ], + "doc/man/man7/ossl-guide-introduction.7" => [ + "doc/man7/ossl-guide-introduction.pod" + ], + "doc/man/man7/ossl-guide-libcrypto-introduction.7" => [ + "doc/man7/ossl-guide-libcrypto-introduction.pod" + ], + "doc/man/man7/ossl-guide-libraries-introduction.7" => [ + "doc/man7/ossl-guide-libraries-introduction.pod" + ], + "doc/man/man7/ossl-guide-libssl-introduction.7" => [ + "doc/man7/ossl-guide-libssl-introduction.pod" + ], + "doc/man/man7/ossl-guide-migration.7" => [ + "doc/man7/ossl-guide-migration.pod" + ], + "doc/man/man7/ossl-guide-quic-client-block.7" => [ + "doc/man7/ossl-guide-quic-client-block.pod" + ], + "doc/man/man7/ossl-guide-quic-client-non-block.7" => [ + "doc/man7/ossl-guide-quic-client-non-block.pod" + ], + "doc/man/man7/ossl-guide-quic-introduction.7" => [ + "doc/man7/ossl-guide-quic-introduction.pod" + ], + "doc/man/man7/ossl-guide-quic-multi-stream.7" => [ + "doc/man7/ossl-guide-quic-multi-stream.pod" + ], + "doc/man/man7/ossl-guide-quic-server-block.7" => [ + "doc/man7/ossl-guide-quic-server-block.pod" + ], + "doc/man/man7/ossl-guide-quic-server-non-block.7" => [ + "doc/man7/ossl-guide-quic-server-non-block.pod" + ], + "doc/man/man7/ossl-guide-tls-client-block.7" => [ + "doc/man7/ossl-guide-tls-client-block.pod" + ], + "doc/man/man7/ossl-guide-tls-client-non-block.7" => [ + "doc/man7/ossl-guide-tls-client-non-block.pod" + ], + "doc/man/man7/ossl-guide-tls-introduction.7" => [ + "doc/man7/ossl-guide-tls-introduction.pod" + ], + "doc/man/man7/ossl-guide-tls-server-block.7" => [ + "doc/man7/ossl-guide-tls-server-block.pod" + ], "doc/man/man7/ossl_store-file.7" => [ "doc/man7/ossl_store-file.pod" ], @@ -6724,6 +7675,9 @@ our %unified_info = ( "doc/man/man7/provider-signature.7" => [ "doc/man7/provider-signature.pod" ], + "doc/man/man7/provider-skeymgmt.7" => [ + "doc/man7/provider-skeymgmt.pod" + ], "doc/man/man7/provider-storemgmt.7" => [ "doc/man7/provider-storemgmt.pod" ], @@ -6733,9 +7687,6 @@ our %unified_info = ( "doc/man/man7/proxy-certificates.7" => [ "doc/man7/proxy-certificates.pod" ], - "doc/man/man7/ssl.7" => [ - "doc/man7/ssl.pod" - ], "doc/man/man7/x509.7" => [ "doc/man7/x509.pod" ], @@ -6915,6 +7866,10 @@ our %unified_info = ( "doc/man1/openssl-sess_id.pod.in", "doc/perlvars.pm" ], + "doc/man1/openssl-skeyutl.pod" => [ + "doc/man1/openssl-skeyutl.pod.in", + "doc/perlvars.pm" + ], "doc/man1/openssl-smime.pod" => [ "doc/man1/openssl-smime.pod.in", "doc/perlvars.pm" @@ -6954,6 +7909,27 @@ our %unified_info = ( "doc/man7/openssl_user_macros.pod" => [ "doc/man7/openssl_user_macros.pod.in" ], + "exporters/OpenSSLConfig.cmake" => [ + "installdata.pm" + ], + "exporters/OpenSSLConfigVersion.cmake" => [ + "exporters/OpenSSLConfig.cmake", + "installdata.pm" + ], + "exporters/libcrypto.pc" => [ + "installdata.pm" + ], + "exporters/libssl.pc" => [ + "installdata.pm" + ], + "exporters/openssl.pc" => [ + "exporters/libcrypto.pc", + "exporters/libssl.pc", + "installdata.pm" + ], + "fuzz/acert-test" => [ + "libcrypto" + ], "fuzz/asn1-test" => [ "libcrypto", "libssl" @@ -6986,16 +7962,92 @@ our %unified_info = ( "fuzz/ct-test" => [ "libcrypto" ], + "fuzz/decoder-test" => [ + "libcrypto" + ], + "fuzz/dtlsclient-test" => [ + "libcrypto", + "libssl" + ], + "fuzz/dtlsserver-test" => [ + "libcrypto", + "libssl" + ], + "fuzz/hashtable-test" => [ + "libcrypto.a" + ], + "fuzz/ml-dsa-test" => [ + "libcrypto.a" + ], + "fuzz/ml-kem-test" => [ + "libcrypto.a" + ], + "fuzz/pem-test" => [ + "libcrypto.a" + ], + "fuzz/provider-test" => [ + "libcrypto" + ], + "fuzz/punycode-test" => [ + "libcrypto.a" + ], + "fuzz/quic-client-test" => [ + "libcrypto.a", + "libssl.a" + ], + "fuzz/quic-lcidm-test" => [ + "libcrypto.a", + "libssl.a" + ], + "fuzz/quic-rcidm-test" => [ + "libcrypto.a", + "libssl.a" + ], + "fuzz/quic-server-test" => [ + "libcrypto.a", + "libssl.a" + ], + "fuzz/quic-srtm-test" => [ + "libcrypto.a", + "libssl.a" + ], "fuzz/server-test" => [ "libcrypto", "libssl" ], + "fuzz/slh-dsa-test" => [ + "libcrypto.a" + ], + "fuzz/smime-test" => [ + "libcrypto", + "libssl" + ], + "fuzz/v3name-test" => [ + "libcrypto.a" + ], "fuzz/x509-test" => [ "libcrypto" ], + "include/internal/param_names.h" => [ + "util/perl|OpenSSL/paramnames.pm" + ], + "include/openssl/core_names.h" => [ + "util/perl|OpenSSL/paramnames.pm" + ], + "libcrypto.pc" => [ + "builddata.pm" + ], "libssl" => [ "libcrypto" ], + "libssl.pc" => [ + "builddata.pm" + ], + "openssl.pc" => [ + "builddata.pm", + "libcrypto.pc", + "libssl.pc" + ], "providers/common/der/der_digests_gen.c" => [ "providers/common/der/DIGESTS.asn1", "providers/common/der/NIST.asn1", @@ -7013,11 +8065,19 @@ our %unified_info = ( "providers/common/der/ECX.asn1", "providers/common/der/oids_to_c.pm" ], + "providers/common/der/der_ml_dsa_gen.c" => [ + "providers/common/der/ML_DSA.asn1", + "providers/common/der/oids_to_c.pm" + ], "providers/common/der/der_rsa_gen.c" => [ "providers/common/der/NIST.asn1", "providers/common/der/RSA.asn1", "providers/common/der/oids_to_c.pm" ], + "providers/common/der/der_slh_dsa_gen.c" => [ + "providers/common/der/SLH_DSA.asn1", + "providers/common/der/oids_to_c.pm" + ], "providers/common/der/der_sm2_gen.c" => [ "providers/common/der/SM2.asn1", "providers/common/der/oids_to_c.pm" @@ -7057,6 +8117,12 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ecx_key.o" => [ "providers/common/include/prov/der_ecx.h" ], + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o" => [ + "providers/common/include/prov/der_ml_dsa.h" + ], + "providers/common/der/libcommon-lib-der_ml_dsa_key.o" => [ + "providers/common/include/prov/der_ml_dsa.h" + ], "providers/common/der/libcommon-lib-der_rsa_gen.o" => [ "providers/common/include/prov/der_rsa.h" ], @@ -7064,6 +8130,12 @@ our %unified_info = ( "providers/common/include/prov/der_digests.h", "providers/common/include/prov/der_rsa.h" ], + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o" => [ + "providers/common/include/prov/der_slh_dsa.h" + ], + "providers/common/der/libcommon-lib-der_slh_dsa_key.o" => [ + "providers/common/include/prov/der_slh_dsa.h" + ], "providers/common/der/libcommon-lib-der_wrap_gen.o" => [ "providers/common/include/prov/der_wrap.h" ], @@ -7103,11 +8175,19 @@ our %unified_info = ( "providers/common/der/ECX.asn1", "providers/common/der/oids_to_c.pm" ], + "providers/common/include/prov/der_ml_dsa.h" => [ + "providers/common/der/ML_DSA.asn1", + "providers/common/der/oids_to_c.pm" + ], "providers/common/include/prov/der_rsa.h" => [ "providers/common/der/NIST.asn1", "providers/common/der/RSA.asn1", "providers/common/der/oids_to_c.pm" ], + "providers/common/include/prov/der_slh_dsa.h" => [ + "providers/common/der/SLH_DSA.asn1", + "providers/common/der/oids_to_c.pm" + ], "providers/common/include/prov/der_sm2.h" => [ "providers/common/der/SM2.asn1", "providers/common/der/oids_to_c.pm" @@ -7140,9 +8220,15 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-eddsa_sig.o" => [ "providers/common/include/prov/der_ecx.h" ], + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o" => [ + "providers/common/include/prov/der_ml_dsa.h" + ], "providers/implementations/signature/libdefault-lib-rsa_sig.o" => [ "providers/common/include/prov/der_rsa.h" ], + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o" => [ + "providers/common/include/prov/der_slh_dsa.h" + ], "providers/implementations/signature/libdefault-lib-sm2_sig.o" => [ "providers/common/include/prov/der_sm2.h" ], @@ -7155,9 +8241,15 @@ our %unified_info = ( "providers/implementations/signature/libfips-lib-eddsa_sig.o" => [ "providers/common/include/prov/der_ecx.h" ], + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o" => [ + "providers/common/include/prov/der_ml_dsa.h" + ], "providers/implementations/signature/libfips-lib-rsa_sig.o" => [ "providers/common/include/prov/der_rsa.h" ], + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o" => [ + "providers/common/include/prov/der_slh_dsa.h" + ], "providers/legacy" => [ "libcrypto", "providers/liblegacy.a" @@ -7235,6 +8327,14 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/bio_addr_test" => [ + "libcrypto", + "test/libtestutil.a" + ], + "test/bio_base64_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/bio_callback_test" => [ "libcrypto", "test/libtestutil.a" @@ -7243,6 +8343,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/bio_dgram_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/bio_enc_test" => [ "libcrypto", "test/libtestutil.a" @@ -7251,6 +8355,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/bio_meth_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/bio_prefix_text" => [ "libcrypto", "test/libtestutil.a" @@ -7263,6 +8371,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/bio_tfo_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/bioprinttest" => [ "libcrypto", "test/libtestutil.a" @@ -7275,6 +8387,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/build_wincrypt_test" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_aes" => [ "libcrypto", "libssl" @@ -7295,6 +8411,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_byteorder" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_camellia" => [ "libcrypto", "libssl" @@ -7327,10 +8447,6 @@ our %unified_info = ( "libcrypto", "libssl" ], - "test/buildtest_c_core_names" => [ - "libcrypto", - "libssl" - ], "test/buildtest_c_core_object" => [ "libcrypto", "libssl" @@ -7363,6 +8479,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_e_ostime" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_ebcdic" => [ "libcrypto", "libssl" @@ -7399,6 +8519,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_hpke" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_http" => [ "libcrypto", "libssl" @@ -7407,6 +8531,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_indicator" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_kdf" => [ "libcrypto", "libssl" @@ -7427,6 +8555,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_ml_kem" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_modes" => [ "libcrypto", "libssl" @@ -7467,6 +8599,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_quic" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_rand" => [ "libcrypto", "libssl" @@ -7523,6 +8659,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_thread" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_tls1" => [ "libcrypto", "libssl" @@ -7543,10 +8683,23 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/byteorder_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], + "test/ca_internals_test" => [ + "libssl", + "test/libtestutil.a" + ], "test/casttest" => [ "libcrypto", "test/libtestutil.a" ], + "test/cert_comp_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], "test/chacha_internal_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -7660,6 +8813,10 @@ our %unified_info = ( "libssl", "test/libtestutil.a" ], + "test/decoder_propq_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/defltfips_test" => [ "libcrypto", "test/libtestutil.a" @@ -7716,6 +8873,8 @@ our %unified_info = ( ], "test/endecode_test" => [ "libcrypto.a", + "providers/libcommon.a", + "providers/liblegacy.a", "test/libtestutil.a" ], "test/endecoder_legacy_test" => [ @@ -7759,6 +8918,10 @@ our %unified_info = ( "test/evp_pkey_ctx_new_from_name" => [ "libcrypto" ], + "test/evp_pkey_dhkem_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/evp_pkey_dparams_test" => [ "libcrypto", "test/libtestutil.a" @@ -7767,10 +8930,18 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/evp_skey_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/evp_test" => [ "libcrypto", "test/libtestutil.a" ], + "test/evp_xof_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/exdatatest" => [ "libcrypto", "test/libtestutil.a" @@ -7809,6 +8980,10 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/hpke_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/http_test" => [ "libcrypto", "test/libtestutil.a" @@ -7821,17 +8996,25 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/json_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], "test/keymgmt_internal_test" => [ "libcrypto.a", "test/libtestutil.a" ], "test/lhash_test" => [ - "libcrypto", + "libcrypto.a", "test/libtestutil.a" ], "test/libtestutil.a" => [ "libcrypto" ], + "test/list_test" => [ + "test/libtestutil.a" + ], "test/localetest" => [ "libcrypto", "test/libtestutil.a" @@ -7844,10 +9027,26 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/membio_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/memleaktest" => [ "libcrypto", "test/libtestutil.a" ], + "test/ml_dsa_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], + "test/ml_kem_evp_extra_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], + "test/ml_kem_internal_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/modes_internal_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -7872,6 +9071,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/pairwise_fail_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/param_build_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -7904,6 +9107,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/pkcs12_api_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/pkcs12_format_test" => [ "libcrypto", "test/libtestutil.a" @@ -7924,6 +9131,11 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/priority_queue_test" => [ + "libcrypto", + "libssl.a", + "test/libtestutil.a" + ], "test/property_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -7936,6 +9148,10 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/provider_default_search_path_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/provider_fallback_test" => [ "libcrypto", "test/libtestutil.a" @@ -7960,12 +9176,122 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/quic_ackm_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_cc_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_cfq_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_client_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_fc_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_fifd_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_lcidm_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_multistream_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_newcid_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_qlog_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_radix_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_rcidm_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_record_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_srt_gen_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_srtm_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_stream_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_tserver_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_txp_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_txpim_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_wire_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quicapitest" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quicfaultstest" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], "test/rand_status_test" => [ "libcrypto", "test/libtestutil.a" ], "test/rand_test" => [ - "libcrypto", + "libcrypto.a", "test/libtestutil.a" ], "test/rc2test" => [ @@ -7980,7 +9306,7 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], - "test/rdrand_sanitytest" => [ + "test/rdcpu_sanitytest" => [ "libcrypto.a", "test/libtestutil.a" ], @@ -7989,6 +9315,11 @@ our %unified_info = ( "libssl", "test/libtestutil.a" ], + "test/rpktest" => [ + "libcrypto", + "libssl", + "test/libtestutil.a" + ], "test/rsa_mp_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -8001,10 +9332,18 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], - "test/sanitytest" => [ + "test/rsa_x931_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], + "test/safe_math_test" => [ "libcrypto", "test/libtestutil.a" ], + "test/sanitytest" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/secmemtest" => [ "libcrypto", "test/libtestutil.a" @@ -8022,6 +9361,10 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/slh_dsa_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/sm2_internal_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -8051,6 +9394,11 @@ our %unified_info = ( "libssl", "test/libtestutil.a" ], + "test/ssl_handshake_rtt_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], "test/ssl_old_test" => [ "libcrypto.a", "libssl.a", @@ -8067,8 +9415,8 @@ our %unified_info = ( "test/libtestutil.a" ], "test/sslapitest" => [ - "libcrypto", - "libssl", + "libcrypto.a", + "libssl.a", "test/libtestutil.a" ], "test/sslbuffertest" => [ @@ -8085,6 +9433,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/strtoultest" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/sysdefaulttest" => [ "libcrypto", "libssl", @@ -8094,8 +9446,12 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/threadpool_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/threadstest" => [ - "libcrypto", + "libcrypto.a", "test/libtestutil.a" ], "test/threadstest_fips" => [ @@ -8106,6 +9462,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/time_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/tls13ccstest" => [ "libcrypto", "libssl", @@ -8116,6 +9476,11 @@ our %unified_info = ( "libssl.a", "test/libtestutil.a" ], + "test/tls13groupselection_test" => [ + "libcrypto", + "libssl", + "test/libtestutil.a" + ], "test/trace_api_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -8153,6 +9518,10 @@ our %unified_info = ( "libssl.a", "test/libtestutil.a" ], + "test/x509_acert_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/x509_check_cert_pkey_test" => [ "libcrypto", "test/libtestutil.a" @@ -8165,6 +9534,18 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/x509_load_cert_file_test" => [ + "libcrypto", + "test/libtestutil.a" + ], + "test/x509_req_test" => [ + "libcrypto", + "test/libtestutil.a" + ], + "test/x509_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/x509_time_test" => [ "libcrypto", "test/libtestutil.a" @@ -8179,9 +9560,13 @@ our %unified_info = ( }, "dirinfo" => { "apps" => { + "deps" => [ + "apps/ca_internals_test-bin-ca.o" + ], "products" => { "bin" => [ - "apps/openssl" + "apps/openssl", + "test/ca_internals_test" ], "script" => [ "apps/CA.pl", @@ -8192,6 +9577,14 @@ our %unified_info = ( "apps/lib" => { "deps" => [ "apps/lib/openssl-bin-cmp_mock_srv.o", + "apps/lib/ca_internals_test-bin-app_libctx.o", + "apps/lib/ca_internals_test-bin-app_provider.o", + "apps/lib/ca_internals_test-bin-app_rand.o", + "apps/lib/ca_internals_test-bin-app_x509.o", + "apps/lib/ca_internals_test-bin-apps.o", + "apps/lib/ca_internals_test-bin-apps_ui.o", + "apps/lib/ca_internals_test-bin-engine.o", + "apps/lib/ca_internals_test-bin-fmt.o", "apps/lib/cmp_client_test-bin-cmp_mock_srv.o", "apps/lib/uitest-bin-apps_ui.o", "apps/lib/libapps-lib-app_libctx.o", @@ -8200,12 +9593,14 @@ our %unified_info = ( "apps/lib/libapps-lib-app_rand.o", "apps/lib/libapps-lib-app_x509.o", "apps/lib/libapps-lib-apps.o", + "apps/lib/libapps-lib-apps_opt_printf.o", "apps/lib/libapps-lib-apps_ui.o", "apps/lib/libapps-lib-columns.o", "apps/lib/libapps-lib-engine.o", "apps/lib/libapps-lib-engine_loader.o", "apps/lib/libapps-lib-fmt.o", "apps/lib/libapps-lib-http_server.o", + "apps/lib/libapps-lib-log.o", "apps/lib/libapps-lib-names.o", "apps/lib/libapps-lib-opt.o", "apps/lib/libapps-lib-s_cb.o", @@ -8216,6 +9611,7 @@ our %unified_info = ( "products" => { "bin" => [ "apps/openssl", + "test/ca_internals_test", "test/cmp_client_test", "test/uitest" ], @@ -8227,8 +9623,12 @@ our %unified_info = ( }, "crypto" => { "deps" => [ + "crypto/asn1_time_test-bin-ctype.o", + "crypto/ca_internals_test-bin-ctype.o", + "crypto/packettest-bin-quic_vlint.o", "crypto/libcrypto-lib-asn1_dsa.o", "crypto/libcrypto-lib-bsearch.o", + "crypto/libcrypto-lib-comp_methods.o", "crypto/libcrypto-lib-context.o", "crypto/libcrypto-lib-core_algorithm.o", "crypto/libcrypto-lib-core_fetch.o", @@ -8238,10 +9638,13 @@ our %unified_info = ( "crypto/libcrypto-lib-cryptlib.o", "crypto/libcrypto-lib-ctype.o", "crypto/libcrypto-lib-cversion.o", + "crypto/libcrypto-lib-defaults.o", "crypto/libcrypto-lib-der_writer.o", + "crypto/libcrypto-lib-deterministic_nonce.o", "crypto/libcrypto-lib-ebcdic.o", "crypto/libcrypto-lib-ex_data.o", "crypto/libcrypto-lib-getenv.o", + "crypto/libcrypto-lib-indicator_core.o", "crypto/libcrypto-lib-info.o", "crypto/libcrypto-lib-init.o", "crypto/libcrypto-lib-initthread.o", @@ -8258,6 +9661,7 @@ our %unified_info = ( "crypto/libcrypto-lib-params.o", "crypto/libcrypto-lib-params_dup.o", "crypto/libcrypto-lib-params_from_text.o", + "crypto/libcrypto-lib-params_idx.o", "crypto/libcrypto-lib-passphrase.o", "crypto/libcrypto-lib-provider.o", "crypto/libcrypto-lib-provider_child.o", @@ -8265,12 +9669,16 @@ our %unified_info = ( "crypto/libcrypto-lib-provider_core.o", "crypto/libcrypto-lib-provider_predefined.o", "crypto/libcrypto-lib-punycode.o", + "crypto/libcrypto-lib-quic_vlint.o", "crypto/libcrypto-lib-self_test_core.o", + "crypto/libcrypto-lib-sleep.o", "crypto/libcrypto-lib-sparse_array.o", + "crypto/libcrypto-lib-ssl_err.o", "crypto/libcrypto-lib-threads_lib.o", "crypto/libcrypto-lib-threads_none.o", "crypto/libcrypto-lib-threads_pthread.o", "crypto/libcrypto-lib-threads_win.o", + "crypto/libcrypto-lib-time.o", "crypto/libcrypto-lib-trace.o", "crypto/libcrypto-lib-uid.o", "crypto/libcrypto-lib-x86_64cpuid.o", @@ -8293,6 +9701,7 @@ our %unified_info = ( "crypto/libfips-lib-params.o", "crypto/libfips-lib-params_dup.o", "crypto/libfips-lib-params_from_text.o", + "crypto/libfips-lib-params_idx.o", "crypto/libfips-lib-provider_core.o", "crypto/libfips-lib-provider_predefined.o", "crypto/libfips-lib-self_test_core.o", @@ -8301,9 +9710,15 @@ our %unified_info = ( "crypto/libfips-lib-threads_none.o", "crypto/libfips-lib-threads_pthread.o", "crypto/libfips-lib-threads_win.o", + "crypto/libfips-lib-time.o", "crypto/libfips-lib-x86_64cpuid.o" ], "products" => { + "bin" => [ + "test/asn1_time_test", + "test/ca_internals_test", + "test/packettest" + ], "lib" => [ "libcrypto", "providers/libfips.a" @@ -8323,6 +9738,7 @@ our %unified_info = ( "crypto/aes/libcrypto-lib-aesni-sha1-x86_64.o", "crypto/aes/libcrypto-lib-aesni-sha256-x86_64.o", "crypto/aes/libcrypto-lib-aesni-x86_64.o", + "crypto/aes/libcrypto-lib-aesni-xts-avx512.o", "crypto/aes/libcrypto-lib-bsaes-x86_64.o", "crypto/aes/libcrypto-lib-vpaes-x86_64.o", "crypto/aes/libfips-lib-aes-x86_64.o", @@ -8332,6 +9748,7 @@ our %unified_info = ( "crypto/aes/libfips-lib-aesni-sha1-x86_64.o", "crypto/aes/libfips-lib-aesni-sha256-x86_64.o", "crypto/aes/libfips-lib-aesni-x86_64.o", + "crypto/aes/libfips-lib-aesni-xts-avx512.o", "crypto/aes/libfips-lib-bsaes-x86_64.o", "crypto/aes/libfips-lib-vpaes-x86_64.o" ], @@ -8354,6 +9771,8 @@ our %unified_info = ( }, "crypto/asn1" => { "deps" => [ + "crypto/asn1/asn1_time_test-bin-a_time.o", + "crypto/asn1/ca_internals_test-bin-a_time.o", "crypto/asn1/libcrypto-lib-a_bitstr.o", "crypto/asn1/libcrypto-lib-a_d2i_fp.o", "crypto/asn1/libcrypto-lib-a_digest.o", @@ -8420,6 +9839,10 @@ our %unified_info = ( "crypto/asn1/libcrypto-lib-x_val.o" ], "products" => { + "bin" => [ + "test/asn1_time_test", + "test/ca_internals_test" + ], "lib" => [ "libcrypto" ] @@ -8485,6 +9908,7 @@ our %unified_info = ( "crypto/bio/libcrypto-lib-bss_conn.o", "crypto/bio/libcrypto-lib-bss_core.o", "crypto/bio/libcrypto-lib-bss_dgram.o", + "crypto/bio/libcrypto-lib-bss_dgram_pair.o", "crypto/bio/libcrypto-lib-bss_fd.o", "crypto/bio/libcrypto-lib-bss_file.o", "crypto/bio/libcrypto-lib-bss_log.o", @@ -8533,8 +9957,13 @@ our %unified_info = ( "crypto/bn/libcrypto-lib-bn_srp.o", "crypto/bn/libcrypto-lib-bn_word.o", "crypto/bn/libcrypto-lib-bn_x931p.o", + "crypto/bn/libcrypto-lib-rsaz-2k-avx512.o", + "crypto/bn/libcrypto-lib-rsaz-2k-avxifma.o", + "crypto/bn/libcrypto-lib-rsaz-3k-avx512.o", + "crypto/bn/libcrypto-lib-rsaz-3k-avxifma.o", + "crypto/bn/libcrypto-lib-rsaz-4k-avx512.o", + "crypto/bn/libcrypto-lib-rsaz-4k-avxifma.o", "crypto/bn/libcrypto-lib-rsaz-avx2.o", - "crypto/bn/libcrypto-lib-rsaz-avx512.o", "crypto/bn/libcrypto-lib-rsaz-x86_64.o", "crypto/bn/libcrypto-lib-rsaz_exp.o", "crypto/bn/libcrypto-lib-rsaz_exp_x2.o", @@ -8568,8 +9997,13 @@ our %unified_info = ( "crypto/bn/libfips-lib-bn_sqr.o", "crypto/bn/libfips-lib-bn_sqrt.o", "crypto/bn/libfips-lib-bn_word.o", + "crypto/bn/libfips-lib-rsaz-2k-avx512.o", + "crypto/bn/libfips-lib-rsaz-2k-avxifma.o", + "crypto/bn/libfips-lib-rsaz-3k-avx512.o", + "crypto/bn/libfips-lib-rsaz-3k-avxifma.o", + "crypto/bn/libfips-lib-rsaz-4k-avx512.o", + "crypto/bn/libfips-lib-rsaz-4k-avxifma.o", "crypto/bn/libfips-lib-rsaz-avx2.o", - "crypto/bn/libfips-lib-rsaz-avx512.o", "crypto/bn/libfips-lib-rsaz-x86_64.o", "crypto/bn/libfips-lib-rsaz_exp.o", "crypto/bn/libfips-lib-rsaz_exp_x2.o", @@ -8666,6 +10100,7 @@ our %unified_info = ( "crypto/cmp/libcrypto-lib-cmp_client.o", "crypto/cmp/libcrypto-lib-cmp_ctx.o", "crypto/cmp/libcrypto-lib-cmp_err.o", + "crypto/cmp/libcrypto-lib-cmp_genm.o", "crypto/cmp/libcrypto-lib-cmp_hdr.o", "crypto/cmp/libcrypto-lib-cmp_http.o", "crypto/cmp/libcrypto-lib-cmp_msg.o", @@ -9039,7 +10474,9 @@ our %unified_info = ( "crypto/err/libcrypto-lib-err_all.o", "crypto/err/libcrypto-lib-err_all_legacy.o", "crypto/err/libcrypto-lib-err_blocks.o", - "crypto/err/libcrypto-lib-err_prn.o" + "crypto/err/libcrypto-lib-err_mark.o", + "crypto/err/libcrypto-lib-err_prn.o", + "crypto/err/libcrypto-lib-err_save.o" ], "products" => { "lib" => [ @@ -9140,7 +10577,9 @@ our %unified_info = ( "crypto/evp/libcrypto-lib-pmeth_check.o", "crypto/evp/libcrypto-lib-pmeth_gn.o", "crypto/evp/libcrypto-lib-pmeth_lib.o", + "crypto/evp/libcrypto-lib-s_lib.o", "crypto/evp/libcrypto-lib-signature.o", + "crypto/evp/libcrypto-lib-skeymgmt_meth.o", "crypto/evp/libfips-lib-asymcipher.o", "crypto/evp/libfips-lib-dh_support.o", "crypto/evp/libfips-lib-digest.o", @@ -9156,14 +10595,15 @@ our %unified_info = ( "crypto/evp/libfips-lib-kem.o", "crypto/evp/libfips-lib-keymgmt_lib.o", "crypto/evp/libfips-lib-keymgmt_meth.o", - "crypto/evp/libfips-lib-m_sigver.o", "crypto/evp/libfips-lib-mac_lib.o", "crypto/evp/libfips-lib-mac_meth.o", "crypto/evp/libfips-lib-p_lib.o", "crypto/evp/libfips-lib-pmeth_check.o", "crypto/evp/libfips-lib-pmeth_gn.o", "crypto/evp/libfips-lib-pmeth_lib.o", - "crypto/evp/libfips-lib-signature.o" + "crypto/evp/libfips-lib-s_lib.o", + "crypto/evp/libfips-lib-signature.o", + "crypto/evp/libfips-lib-skeymgmt_meth.o" ], "products" => { "lib" => [ @@ -9196,6 +10636,20 @@ our %unified_info = ( ] } }, + "crypto/hashtable" => { + "deps" => [ + "crypto/hashtable/libcrypto-lib-hashfunc.o", + "crypto/hashtable/libcrypto-lib-hashtable.o", + "crypto/hashtable/libfips-lib-hashfunc.o", + "crypto/hashtable/libfips-lib-hashtable.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, "crypto/hmac" => { "deps" => [ "crypto/hmac/libcrypto-lib-hmac.o", @@ -9208,6 +10662,17 @@ our %unified_info = ( ] } }, + "crypto/hpke" => { + "deps" => [ + "crypto/hpke/libcrypto-lib-hpke.o", + "crypto/hpke/libcrypto-lib-hpke_util.o" + ], + "products" => { + "lib" => [ + "libcrypto" + ] + } + }, "crypto/http" => { "deps" => [ "crypto/http/libcrypto-lib-http_client.o", @@ -9292,8 +10757,47 @@ our %unified_info = ( ] } }, + "crypto/ml_dsa" => { + "deps" => [ + "crypto/ml_dsa/libcrypto-lib-ml_dsa_encoders.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key_compress.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_matrix.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_ntt.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_params.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sample.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sign.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_encoders.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_key.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_key_compress.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_matrix.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_ntt.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_params.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_sample.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_sign.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, + "crypto/ml_kem" => { + "deps" => [ + "crypto/ml_kem/libcrypto-lib-ml_kem.o", + "crypto/ml_kem/libfips-lib-ml_kem.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, "crypto/modes" => { "deps" => [ + "crypto/modes/libcrypto-lib-aes-gcm-avx512.o", "crypto/modes/libcrypto-lib-aesni-gcm-x86_64.o", "crypto/modes/libcrypto-lib-cbc128.o", "crypto/modes/libcrypto-lib-ccm128.o", @@ -9307,6 +10811,8 @@ our %unified_info = ( "crypto/modes/libcrypto-lib-siv128.o", "crypto/modes/libcrypto-lib-wrap128.o", "crypto/modes/libcrypto-lib-xts128.o", + "crypto/modes/libcrypto-lib-xts128gb.o", + "crypto/modes/libfips-lib-aes-gcm-avx512.o", "crypto/modes/libfips-lib-aesni-gcm-x86_64.o", "crypto/modes/libfips-lib-cbc128.o", "crypto/modes/libfips-lib-ccm128.o", @@ -9316,7 +10822,8 @@ our %unified_info = ( "crypto/modes/libfips-lib-ghash-x86_64.o", "crypto/modes/libfips-lib-ofb128.o", "crypto/modes/libfips-lib-wrap128.o", - "crypto/modes/libfips-lib-xts128.o" + "crypto/modes/libfips-lib-xts128.o", + "crypto/modes/libfips-lib-xts128gb.o" ], "products" => { "lib" => [ @@ -9460,6 +10967,7 @@ our %unified_info = ( "crypto/rand/libcrypto-lib-rand_lib.o", "crypto/rand/libcrypto-lib-rand_meth.o", "crypto/rand/libcrypto-lib-rand_pool.o", + "crypto/rand/libcrypto-lib-rand_uniform.o", "crypto/rand/libcrypto-lib-randfile.o", "crypto/rand/libfips-lib-rand_lib.o" ], @@ -9614,6 +11122,36 @@ our %unified_info = ( ] } }, + "crypto/slh_dsa" => { + "deps" => [ + "crypto/slh_dsa/libcrypto-lib-slh_adrs.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa_hash_ctx.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa_key.o", + "crypto/slh_dsa/libcrypto-lib-slh_fors.o", + "crypto/slh_dsa/libcrypto-lib-slh_hash.o", + "crypto/slh_dsa/libcrypto-lib-slh_hypertree.o", + "crypto/slh_dsa/libcrypto-lib-slh_params.o", + "crypto/slh_dsa/libcrypto-lib-slh_wots.o", + "crypto/slh_dsa/libcrypto-lib-slh_xmss.o", + "crypto/slh_dsa/libfips-lib-slh_adrs.o", + "crypto/slh_dsa/libfips-lib-slh_dsa.o", + "crypto/slh_dsa/libfips-lib-slh_dsa_hash_ctx.o", + "crypto/slh_dsa/libfips-lib-slh_dsa_key.o", + "crypto/slh_dsa/libfips-lib-slh_fors.o", + "crypto/slh_dsa/libfips-lib-slh_hash.o", + "crypto/slh_dsa/libfips-lib-slh_hypertree.o", + "crypto/slh_dsa/libfips-lib-slh_params.o", + "crypto/slh_dsa/libfips-lib-slh_wots.o", + "crypto/slh_dsa/libfips-lib-slh_xmss.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, "crypto/sm2" => { "deps" => [ "crypto/sm2/libcrypto-lib-sm2_crypt.o", @@ -9687,6 +11225,38 @@ our %unified_info = ( ] } }, + "crypto/thread" => { + "deps" => [ + "crypto/thread/libcrypto-lib-api.o", + "crypto/thread/libcrypto-lib-arch.o", + "crypto/thread/libcrypto-lib-internal.o", + "crypto/thread/libfips-lib-api.o", + "crypto/thread/libfips-lib-arch.o", + "crypto/thread/libfips-lib-internal.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, + "crypto/thread/arch" => { + "deps" => [ + "crypto/thread/arch/libcrypto-lib-thread_none.o", + "crypto/thread/arch/libcrypto-lib-thread_posix.o", + "crypto/thread/arch/libcrypto-lib-thread_win.o", + "crypto/thread/arch/libfips-lib-thread_none.o", + "crypto/thread/arch/libfips-lib-thread_posix.o", + "crypto/thread/arch/libfips-lib-thread_win.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, "crypto/ts" => { "deps" => [ "crypto/ts/libcrypto-lib-ts_asn1.o", @@ -9753,14 +11323,22 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-pcy_map.o", "crypto/x509/libcrypto-lib-pcy_node.o", "crypto/x509/libcrypto-lib-pcy_tree.o", + "crypto/x509/libcrypto-lib-t_acert.o", "crypto/x509/libcrypto-lib-t_crl.o", "crypto/x509/libcrypto-lib-t_req.o", "crypto/x509/libcrypto-lib-t_x509.o", + "crypto/x509/libcrypto-lib-v3_aaa.o", + "crypto/x509/libcrypto-lib-v3_ac_tgt.o", "crypto/x509/libcrypto-lib-v3_addr.o", "crypto/x509/libcrypto-lib-v3_admis.o", "crypto/x509/libcrypto-lib-v3_akeya.o", "crypto/x509/libcrypto-lib-v3_akid.o", "crypto/x509/libcrypto-lib-v3_asid.o", + "crypto/x509/libcrypto-lib-v3_attrdesc.o", + "crypto/x509/libcrypto-lib-v3_attrmap.o", + "crypto/x509/libcrypto-lib-v3_audit_id.o", + "crypto/x509/libcrypto-lib-v3_authattid.o", + "crypto/x509/libcrypto-lib-v3_battcons.o", "crypto/x509/libcrypto-lib-v3_bcons.o", "crypto/x509/libcrypto-lib-v3_bitst.o", "crypto/x509/libcrypto-lib-v3_conf.o", @@ -9769,12 +11347,17 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_enum.o", "crypto/x509/libcrypto-lib-v3_extku.o", "crypto/x509/libcrypto-lib-v3_genn.o", + "crypto/x509/libcrypto-lib-v3_group_ac.o", "crypto/x509/libcrypto-lib-v3_ia5.o", + "crypto/x509/libcrypto-lib-v3_ind_iss.o", "crypto/x509/libcrypto-lib-v3_info.o", "crypto/x509/libcrypto-lib-v3_int.o", + "crypto/x509/libcrypto-lib-v3_iobo.o", "crypto/x509/libcrypto-lib-v3_ist.o", "crypto/x509/libcrypto-lib-v3_lib.o", "crypto/x509/libcrypto-lib-v3_ncons.o", + "crypto/x509/libcrypto-lib-v3_no_ass.o", + "crypto/x509/libcrypto-lib-v3_no_rev_avail.o", "crypto/x509/libcrypto-lib-v3_pci.o", "crypto/x509/libcrypto-lib-v3_pcia.o", "crypto/x509/libcrypto-lib-v3_pcons.o", @@ -9782,13 +11365,20 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_pmaps.o", "crypto/x509/libcrypto-lib-v3_prn.o", "crypto/x509/libcrypto-lib-v3_purp.o", + "crypto/x509/libcrypto-lib-v3_rolespec.o", "crypto/x509/libcrypto-lib-v3_san.o", + "crypto/x509/libcrypto-lib-v3_sda.o", + "crypto/x509/libcrypto-lib-v3_single_use.o", "crypto/x509/libcrypto-lib-v3_skid.o", + "crypto/x509/libcrypto-lib-v3_soa_id.o", "crypto/x509/libcrypto-lib-v3_sxnet.o", + "crypto/x509/libcrypto-lib-v3_timespec.o", "crypto/x509/libcrypto-lib-v3_tlsf.o", + "crypto/x509/libcrypto-lib-v3_usernotice.o", "crypto/x509/libcrypto-lib-v3_utf8.o", "crypto/x509/libcrypto-lib-v3_utl.o", "crypto/x509/libcrypto-lib-v3err.o", + "crypto/x509/libcrypto-lib-x509_acert.o", "crypto/x509/libcrypto-lib-x509_att.o", "crypto/x509/libcrypto-lib-x509_cmp.o", "crypto/x509/libcrypto-lib-x509_d2.o", @@ -9806,6 +11396,7 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x509_v3.o", "crypto/x509/libcrypto-lib-x509_vfy.o", "crypto/x509/libcrypto-lib-x509_vpm.o", + "crypto/x509/libcrypto-lib-x509aset.o", "crypto/x509/libcrypto-lib-x509cset.o", "crypto/x509/libcrypto-lib-x509name.o", "crypto/x509/libcrypto-lib-x509rset.o", @@ -9815,6 +11406,7 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x_attrib.o", "crypto/x509/libcrypto-lib-x_crl.o", "crypto/x509/libcrypto-lib-x_exten.o", + "crypto/x509/libcrypto-lib-x_ietfatt.o", "crypto/x509/libcrypto-lib-x_name.o", "crypto/x509/libcrypto-lib-x_pubkey.o", "crypto/x509/libcrypto-lib-x_req.o", @@ -9842,6 +11434,7 @@ our %unified_info = ( "fuzz" => { "products" => { "bin" => [ + "fuzz/acert-test", "fuzz/asn1-test", "fuzz/asn1parse-test", "fuzz/bignum-test", @@ -9852,13 +11445,31 @@ our %unified_info = ( "fuzz/conf-test", "fuzz/crl-test", "fuzz/ct-test", + "fuzz/decoder-test", + "fuzz/dtlsclient-test", + "fuzz/dtlsserver-test", + "fuzz/hashtable-test", + "fuzz/ml-dsa-test", + "fuzz/ml-kem-test", + "fuzz/pem-test", + "fuzz/provider-test", + "fuzz/punycode-test", + "fuzz/quic-client-test", + "fuzz/quic-lcidm-test", + "fuzz/quic-rcidm-test", + "fuzz/quic-server-test", + "fuzz/quic-srtm-test", "fuzz/server-test", + "fuzz/slh-dsa-test", + "fuzz/smime-test", + "fuzz/v3name-test", "fuzz/x509-test" ] } }, "providers" => { "deps" => [ + "providers/endecode_test-bin-legacyprov.o", "providers/evp_extra_test-bin-legacyprov.o", "providers/libcrypto-lib-baseprov.o", "providers/libcrypto-lib-defltprov.o", @@ -9868,6 +11479,7 @@ our %unified_info = ( ], "products" => { "bin" => [ + "test/endecode_test", "test/evp_extra_test" ], "dso" => [ @@ -9918,8 +11530,12 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ec_sig.o", "providers/common/der/libcommon-lib-der_ecx_gen.o", "providers/common/der/libcommon-lib-der_ecx_key.o", + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o", + "providers/common/der/libcommon-lib-der_ml_dsa_key.o", "providers/common/der/libcommon-lib-der_rsa_gen.o", "providers/common/der/libcommon-lib-der_rsa_key.o", + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o", + "providers/common/der/libcommon-lib-der_slh_dsa_key.o", "providers/common/der/libcommon-lib-der_wrap_gen.o", "providers/common/der/libdefault-lib-der_rsa_sig.o", "providers/common/der/libdefault-lib-der_sm2_gen.o", @@ -9938,6 +11554,7 @@ our %unified_info = ( "providers/fips" => { "deps" => [ "providers/fips/fips-dso-fips_entry.o", + "providers/fips/libfips-lib-fipsindicator.o", "providers/fips/libfips-lib-fipsprov.o", "providers/fips/libfips-lib-self_test.o", "providers/fips/libfips-lib-self_test_kats.o" @@ -9981,6 +11598,9 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_aes_ccm_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_polyval.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_ocb.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_ocb_hw.o", @@ -10005,7 +11625,13 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_cts.o", "providers/implementations/ciphers/libdefault-lib-cipher_null.o", "providers/implementations/ciphers/libdefault-lib-cipher_sm4.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_sm4_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes_common.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes_default.o", @@ -10102,7 +11728,10 @@ our %unified_info = ( "providers/implementations/encode_decode/libdefault-lib-encode_key2blob.o", "providers/implementations/encode_decode/libdefault-lib-encode_key2ms.o", "providers/implementations/encode_decode/libdefault-lib-encode_key2text.o", - "providers/implementations/encode_decode/libdefault-lib-endecoder_common.o" + "providers/implementations/encode_decode/libdefault-lib-endecoder_common.o", + "providers/implementations/encode_decode/libdefault-lib-ml_common_codecs.o", + "providers/implementations/encode_decode/libdefault-lib-ml_dsa_codecs.o", + "providers/implementations/encode_decode/libdefault-lib-ml_kem_codecs.o" ], "products" => { "lib" => [ @@ -10130,7 +11759,9 @@ our %unified_info = ( }, "providers/implementations/kdfs" => { "deps" => [ + "providers/implementations/kdfs/libdefault-lib-argon2.o", "providers/implementations/kdfs/libdefault-lib-hkdf.o", + "providers/implementations/kdfs/libdefault-lib-hmacdrbg_kdf.o", "providers/implementations/kdfs/libdefault-lib-kbkdf.o", "providers/implementations/kdfs/libdefault-lib-krb5kdf.o", "providers/implementations/kdfs/libdefault-lib-pbkdf2.o", @@ -10149,7 +11780,8 @@ our %unified_info = ( "providers/implementations/kdfs/libfips-lib-sskdf.o", "providers/implementations/kdfs/libfips-lib-tls1_prf.o", "providers/implementations/kdfs/libfips-lib-x942kdf.o", - "providers/implementations/kdfs/liblegacy-lib-pbkdf1.o" + "providers/implementations/kdfs/liblegacy-lib-pbkdf1.o", + "providers/implementations/kdfs/liblegacy-lib-pvkkdf.o" ], "products" => { "lib" => [ @@ -10161,13 +11793,22 @@ our %unified_info = ( }, "providers/implementations/kem" => { "deps" => [ + "providers/implementations/kem/libdefault-lib-ec_kem.o", + "providers/implementations/kem/libdefault-lib-ecx_kem.o", + "providers/implementations/kem/libdefault-lib-kem_util.o", + "providers/implementations/kem/libdefault-lib-ml_kem_kem.o", + "providers/implementations/kem/libdefault-lib-mlx_kem.o", "providers/implementations/kem/libdefault-lib-rsa_kem.o", - "providers/implementations/kem/libfips-lib-rsa_kem.o" + "providers/implementations/kem/libfips-lib-ml_kem_kem.o", + "providers/implementations/kem/libfips-lib-mlx_kem.o", + "providers/implementations/kem/libfips-lib-rsa_kem.o", + "providers/implementations/kem/libtemplate-lib-template_kem.o" ], "products" => { "lib" => [ "providers/libdefault.a", - "providers/libfips.a" + "providers/libfips.a", + "providers/libtemplate.a" ] } }, @@ -10179,19 +11820,29 @@ our %unified_info = ( "providers/implementations/keymgmt/libdefault-lib-ecx_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-kdf_legacy_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-mac_legacy_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-ml_dsa_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-ml_kem_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-mlx_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-rsa_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-slh_dsa_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-dh_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-dsa_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-ec_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-ecx_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-kdf_legacy_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-mac_legacy_kmgmt.o", - "providers/implementations/keymgmt/libfips-lib-rsa_kmgmt.o" + "providers/implementations/keymgmt/libfips-lib-ml_dsa_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-ml_kem_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-mlx_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-rsa_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-slh_dsa_kmgmt.o", + "providers/implementations/keymgmt/libtemplate-lib-template_kmgmt.o" ], "products" => { "lib" => [ "providers/libdefault.a", - "providers/libfips.a" + "providers/libfips.a", + "providers/libtemplate.a" ] } }, @@ -10219,18 +11870,18 @@ our %unified_info = ( }, "providers/implementations/rands" => { "deps" => [ - "providers/implementations/rands/libdefault-lib-crngt.o", "providers/implementations/rands/libdefault-lib-drbg.o", "providers/implementations/rands/libdefault-lib-drbg_ctr.o", "providers/implementations/rands/libdefault-lib-drbg_hash.o", "providers/implementations/rands/libdefault-lib-drbg_hmac.o", "providers/implementations/rands/libdefault-lib-seed_src.o", + "providers/implementations/rands/libdefault-lib-seed_src_jitter.o", "providers/implementations/rands/libdefault-lib-test_rng.o", - "providers/implementations/rands/libfips-lib-crngt.o", "providers/implementations/rands/libfips-lib-drbg.o", "providers/implementations/rands/libfips-lib-drbg_ctr.o", "providers/implementations/rands/libfips-lib-drbg_hash.o", "providers/implementations/rands/libfips-lib-drbg_hmac.o", + "providers/implementations/rands/libfips-lib-fips_crng_test.o", "providers/implementations/rands/libfips-lib-test_rng.o" ], "products" => { @@ -10259,13 +11910,31 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-ecdsa_sig.o", "providers/implementations/signature/libdefault-lib-eddsa_sig.o", "providers/implementations/signature/libdefault-lib-mac_legacy_sig.o", + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o", "providers/implementations/signature/libdefault-lib-rsa_sig.o", + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o", "providers/implementations/signature/libdefault-lib-sm2_sig.o", "providers/implementations/signature/libfips-lib-dsa_sig.o", "providers/implementations/signature/libfips-lib-ecdsa_sig.o", "providers/implementations/signature/libfips-lib-eddsa_sig.o", "providers/implementations/signature/libfips-lib-mac_legacy_sig.o", - "providers/implementations/signature/libfips-lib-rsa_sig.o" + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o", + "providers/implementations/signature/libfips-lib-rsa_sig.o", + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o" + ], + "products" => { + "lib" => [ + "providers/libdefault.a", + "providers/libfips.a" + ] + } + }, + "providers/implementations/skeymgmt" => { + "deps" => [ + "providers/implementations/skeymgmt/libdefault-lib-aes_skmgmt.o", + "providers/implementations/skeymgmt/libdefault-lib-generic.o", + "providers/implementations/skeymgmt/libfips-lib-aes_skmgmt.o", + "providers/implementations/skeymgmt/libfips-lib-generic.o" ], "products" => { "lib" => [ @@ -10293,14 +11962,15 @@ our %unified_info = ( "ssl/libssl-lib-d1_srtp.o", "ssl/libssl-lib-methods.o", "ssl/libssl-lib-pqueue.o", + "ssl/libssl-lib-priority_queue.o", "ssl/libssl-lib-s3_enc.o", "ssl/libssl-lib-s3_lib.o", "ssl/libssl-lib-s3_msg.o", "ssl/libssl-lib-ssl_asn1.o", "ssl/libssl-lib-ssl_cert.o", + "ssl/libssl-lib-ssl_cert_comp.o", "ssl/libssl-lib-ssl_ciph.o", "ssl/libssl-lib-ssl_conf.o", - "ssl/libssl-lib-ssl_err.o", "ssl/libssl-lib-ssl_err_legacy.o", "ssl/libssl-lib-ssl_init.o", "ssl/libssl-lib-ssl_lib.o", @@ -10316,32 +11986,107 @@ our %unified_info = ( "ssl/libssl-lib-t1_trce.o", "ssl/libssl-lib-tls13_enc.o", "ssl/libssl-lib-tls_depr.o", - "ssl/libssl-lib-tls_srp.o", - "ssl/libdefault-lib-s3_cbc.o", - "ssl/libfips-lib-s3_cbc.o" + "ssl/libssl-lib-tls_srp.o" ], "products" => { "lib" => [ - "libssl", - "providers/libdefault.a", - "providers/libfips.a" + "libssl" + ] + } + }, + "ssl/quic" => { + "deps" => [ + "ssl/quic/libssl-lib-cc_newreno.o", + "ssl/quic/libssl-lib-json_enc.o", + "ssl/quic/libssl-lib-qlog.o", + "ssl/quic/libssl-lib-qlog_event_helpers.o", + "ssl/quic/libssl-lib-quic_ackm.o", + "ssl/quic/libssl-lib-quic_cfq.o", + "ssl/quic/libssl-lib-quic_channel.o", + "ssl/quic/libssl-lib-quic_demux.o", + "ssl/quic/libssl-lib-quic_engine.o", + "ssl/quic/libssl-lib-quic_fc.o", + "ssl/quic/libssl-lib-quic_fifd.o", + "ssl/quic/libssl-lib-quic_impl.o", + "ssl/quic/libssl-lib-quic_lcidm.o", + "ssl/quic/libssl-lib-quic_method.o", + "ssl/quic/libssl-lib-quic_obj.o", + "ssl/quic/libssl-lib-quic_port.o", + "ssl/quic/libssl-lib-quic_rcidm.o", + "ssl/quic/libssl-lib-quic_reactor.o", + "ssl/quic/libssl-lib-quic_reactor_wait_ctx.o", + "ssl/quic/libssl-lib-quic_record_rx.o", + "ssl/quic/libssl-lib-quic_record_shared.o", + "ssl/quic/libssl-lib-quic_record_tx.o", + "ssl/quic/libssl-lib-quic_record_util.o", + "ssl/quic/libssl-lib-quic_rstream.o", + "ssl/quic/libssl-lib-quic_rx_depack.o", + "ssl/quic/libssl-lib-quic_sf_list.o", + "ssl/quic/libssl-lib-quic_srt_gen.o", + "ssl/quic/libssl-lib-quic_srtm.o", + "ssl/quic/libssl-lib-quic_sstream.o", + "ssl/quic/libssl-lib-quic_statm.o", + "ssl/quic/libssl-lib-quic_stream_map.o", + "ssl/quic/libssl-lib-quic_thread_assist.o", + "ssl/quic/libssl-lib-quic_tls.o", + "ssl/quic/libssl-lib-quic_tls_api.o", + "ssl/quic/libssl-lib-quic_trace.o", + "ssl/quic/libssl-lib-quic_tserver.o", + "ssl/quic/libssl-lib-quic_txp.o", + "ssl/quic/libssl-lib-quic_txpim.o", + "ssl/quic/libssl-lib-quic_types.o", + "ssl/quic/libssl-lib-quic_wire.o", + "ssl/quic/libssl-lib-quic_wire_pkt.o", + "ssl/quic/libssl-lib-uint_set.o" + ], + "products" => { + "lib" => [ + "libssl" ] } }, "ssl/record" => { "deps" => [ - "ssl/record/libssl-lib-dtls1_bitmap.o", "ssl/record/libssl-lib-rec_layer_d1.o", - "ssl/record/libssl-lib-rec_layer_s3.o", - "ssl/record/libssl-lib-ssl3_buffer.o", - "ssl/record/libssl-lib-ssl3_record.o", - "ssl/record/libssl-lib-ssl3_record_tls13.o", - "ssl/record/libcommon-lib-tls_pad.o" + "ssl/record/libssl-lib-rec_layer_s3.o" + ], + "products" => { + "lib" => [ + "libssl" + ] + } + }, + "ssl/record/methods" => { + "deps" => [ + "ssl/record/methods/libssl-lib-dtls_meth.o", + "ssl/record/methods/libssl-lib-ssl3_meth.o", + "ssl/record/methods/libssl-lib-tls13_meth.o", + "ssl/record/methods/libssl-lib-tls1_meth.o", + "ssl/record/methods/libssl-lib-tls_common.o", + "ssl/record/methods/libssl-lib-tls_multib.o", + "ssl/record/methods/libssl-lib-tlsany_meth.o", + "ssl/record/methods/libcommon-lib-tls_pad.o", + "ssl/record/methods/libdefault-lib-ssl3_cbc.o", + "ssl/record/methods/libfips-lib-ssl3_cbc.o" ], "products" => { "lib" => [ "libssl", - "providers/libcommon.a" + "providers/libcommon.a", + "providers/libdefault.a", + "providers/libfips.a" + ] + } + }, + "ssl/rio" => { + "deps" => [ + "ssl/rio/libssl-lib-poll_builder.o", + "ssl/rio/libssl-lib-poll_immediate.o", + "ssl/rio/libssl-lib-rio_notifier.o" + ], + "products" => { + "lib" => [ + "libssl" ] } }, @@ -10379,9 +12124,40 @@ our %unified_info = ( "test/helpers/dtlstest-bin-ssltestlib.o", "test/helpers/endecode_test-bin-predefined_dhparams.o", "test/helpers/fatalerrtest-bin-ssltestlib.o", + "test/helpers/json_test-bin-noisydgrambio.o", + "test/helpers/json_test-bin-pktsplitbio.o", + "test/helpers/json_test-bin-quictestlib.o", + "test/helpers/json_test-bin-ssltestlib.o", + "test/helpers/pkcs12_api_test-bin-pkcs12.o", "test/helpers/pkcs12_format_test-bin-pkcs12.o", + "test/helpers/quic_multistream_test-bin-noisydgrambio.o", + "test/helpers/quic_multistream_test-bin-pktsplitbio.o", + "test/helpers/quic_multistream_test-bin-quictestlib.o", + "test/helpers/quic_multistream_test-bin-ssltestlib.o", + "test/helpers/quic_newcid_test-bin-noisydgrambio.o", + "test/helpers/quic_newcid_test-bin-pktsplitbio.o", + "test/helpers/quic_newcid_test-bin-quictestlib.o", + "test/helpers/quic_newcid_test-bin-ssltestlib.o", + "test/helpers/quic_radix_test-bin-noisydgrambio.o", + "test/helpers/quic_radix_test-bin-pktsplitbio.o", + "test/helpers/quic_radix_test-bin-quictestlib.o", + "test/helpers/quic_radix_test-bin-ssltestlib.o", + "test/helpers/quic_srt_gen_test-bin-noisydgrambio.o", + "test/helpers/quic_srt_gen_test-bin-pktsplitbio.o", + "test/helpers/quic_srt_gen_test-bin-quictestlib.o", + "test/helpers/quic_srt_gen_test-bin-ssltestlib.o", + "test/helpers/quicapitest-bin-noisydgrambio.o", + "test/helpers/quicapitest-bin-pktsplitbio.o", + "test/helpers/quicapitest-bin-quictestlib.o", + "test/helpers/quicapitest-bin-ssltestlib.o", + "test/helpers/quicfaultstest-bin-noisydgrambio.o", + "test/helpers/quicfaultstest-bin-pktsplitbio.o", + "test/helpers/quicfaultstest-bin-quictestlib.o", + "test/helpers/quicfaultstest-bin-ssltestlib.o", "test/helpers/recordlentest-bin-ssltestlib.o", + "test/helpers/rpktest-bin-ssltestlib.o", "test/helpers/servername_test-bin-ssltestlib.o", + "test/helpers/ssl_handshake_rtt_test-bin-ssltestlib.o", "test/helpers/ssl_old_test-bin-predefined_dhparams.o", "test/helpers/ssl_test-bin-handshake.o", "test/helpers/ssl_test-bin-handshake_srp.o", @@ -10390,7 +12166,8 @@ our %unified_info = ( "test/helpers/sslapitest-bin-ssltestlib.o", "test/helpers/sslbuffertest-bin-ssltestlib.o", "test/helpers/sslcorrupttest-bin-ssltestlib.o", - "test/helpers/tls13ccstest-bin-ssltestlib.o" + "test/helpers/tls13ccstest-bin-ssltestlib.o", + "test/helpers/tls13groupselection_test-bin-ssltestlib.o" ], "products" => { "bin" => [ @@ -10408,16 +12185,37 @@ our %unified_info = ( "test/dtlstest", "test/endecode_test", "test/fatalerrtest", + "test/json_test", + "test/pkcs12_api_test", "test/pkcs12_format_test", + "test/quic_multistream_test", + "test/quic_newcid_test", + "test/quic_radix_test", + "test/quic_srt_gen_test", + "test/quicapitest", + "test/quicfaultstest", "test/recordlentest", + "test/rpktest", "test/servername_test", + "test/ssl_handshake_rtt_test", "test/ssl_old_test", "test/ssl_test", "test/ssl_test_ctx_test", "test/sslapitest", "test/sslbuffertest", "test/sslcorrupttest", - "test/tls13ccstest" + "test/tls13ccstest", + "test/tls13groupselection_test" + ] + } + }, + "test/radix" => { + "deps" => [ + "test/radix/quic_radix_test-bin-quic_radix.o" + ], + "products" => { + "bin" => [ + "test/quic_radix_test" ] } }, @@ -10429,6 +12227,7 @@ our %unified_info = ( "test/testutil/libtestutil-lib-driver.o", "test/testutil/libtestutil-lib-fake_random.o", "test/testutil/libtestutil-lib-format_output.o", + "test/testutil/libtestutil-lib-helper.o", "test/testutil/libtestutil-lib-load.o", "test/testutil/libtestutil-lib-main.o", "test/testutil/libtestutil-lib-options.o", @@ -10464,6 +12263,12 @@ our %unified_info = ( } }, "generate" => { + "OpenSSLConfig.cmake" => [ + "exporters/cmake/OpenSSLConfig.cmake.in" + ], + "OpenSSLConfigVersion.cmake" => [ + "exporters/cmake/OpenSSLConfigVersion.cmake.in" + ], "apps/progs.c" => [ "apps/progs.pl", "\"-C\"", @@ -10474,6 +12279,19 @@ our %unified_info = ( "\"-H\"", "\$(APPS_OPENSSL)" ], + "builddata.pm" => [ + "util/mkinstallvars.pl", + "PREFIX=.", + "BINDIR=apps", + "APPLINKDIR=ms", + "LIBDIR=", + "INCLUDEDIR=include", + "\"INCLUDEDIR=\$(SRCDIR)/include\"", + "ENGINESDIR=engines", + "MODULESDIR=providers", + "\"VERSION=\$(VERSION)\"", + "\"LDLIBS=\$(LIB_EX_LIBS)\"" + ], "crypto/aes/aes-586.S" => [ "crypto/aes/asm/aes-586.pl" ], @@ -10495,6 +12313,24 @@ our %unified_info = ( "crypto/aes/aes-ppc.s" => [ "crypto/aes/asm/aes-ppc.pl" ], + "crypto/aes/aes-riscv32-zkn.s" => [ + "crypto/aes/asm/aes-riscv32-zkn.pl" + ], + "crypto/aes/aes-riscv64-zkn.s" => [ + "crypto/aes/asm/aes-riscv64-zkn.pl" + ], + "crypto/aes/aes-riscv64-zvbb-zvkg-zvkned.s" => [ + "crypto/aes/asm/aes-riscv64-zvbb-zvkg-zvkned.pl" + ], + "crypto/aes/aes-riscv64-zvkb-zvkned.s" => [ + "crypto/aes/asm/aes-riscv64-zvkb-zvkned.pl" + ], + "crypto/aes/aes-riscv64-zvkned.s" => [ + "crypto/aes/asm/aes-riscv64-zvkned.pl" + ], + "crypto/aes/aes-riscv64.s" => [ + "crypto/aes/asm/aes-riscv64.pl" + ], "crypto/aes/aes-s390x.S" => [ "crypto/aes/asm/aes-s390x.pl" ], @@ -10522,6 +12358,9 @@ our %unified_info = ( "crypto/aes/aesni-x86_64.s" => [ "crypto/aes/asm/aesni-x86_64.pl" ], + "crypto/aes/aesni-xts-avx512.s" => [ + "crypto/aes/asm/aesni-xts-avx512.pl" + ], "crypto/aes/aesp8-ppc.s" => [ "crypto/aes/asm/aesp8-ppc.pl" ], @@ -10534,12 +12373,18 @@ our %unified_info = ( "crypto/aes/bsaes-armv7.S" => [ "crypto/aes/asm/bsaes-armv7.pl" ], + "crypto/aes/bsaes-armv8.S" => [ + "crypto/aes/asm/bsaes-armv8.pl" + ], "crypto/aes/bsaes-x86_64.s" => [ "crypto/aes/asm/bsaes-x86_64.pl" ], "crypto/aes/vpaes-armv8.S" => [ "crypto/aes/asm/vpaes-armv8.pl" ], + "crypto/aes/vpaes-loongarch64.S" => [ + "crypto/aes/asm/vpaes-loongarch64.pl" + ], "crypto/aes/vpaes-ppc.s" => [ "crypto/aes/asm/vpaes-ppc.pl" ], @@ -10600,15 +12445,33 @@ our %unified_info = ( "crypto/bn/ppc-mont.s" => [ "crypto/bn/asm/ppc-mont.pl" ], + "crypto/bn/ppc64-mont-fixed.s" => [ + "crypto/bn/asm/ppc64-mont-fixed.pl" + ], "crypto/bn/ppc64-mont.s" => [ "crypto/bn/asm/ppc64-mont.pl" ], + "crypto/bn/rsaz-2k-avx512.s" => [ + "crypto/bn/asm/rsaz-2k-avx512.pl" + ], + "crypto/bn/rsaz-2k-avxifma.s" => [ + "crypto/bn/asm/rsaz-2k-avxifma.pl" + ], + "crypto/bn/rsaz-3k-avx512.s" => [ + "crypto/bn/asm/rsaz-3k-avx512.pl" + ], + "crypto/bn/rsaz-3k-avxifma.s" => [ + "crypto/bn/asm/rsaz-3k-avxifma.pl" + ], + "crypto/bn/rsaz-4k-avx512.s" => [ + "crypto/bn/asm/rsaz-4k-avx512.pl" + ], + "crypto/bn/rsaz-4k-avxifma.s" => [ + "crypto/bn/asm/rsaz-4k-avxifma.pl" + ], "crypto/bn/rsaz-avx2.s" => [ "crypto/bn/asm/rsaz-avx2.pl" ], - "crypto/bn/rsaz-avx512.s" => [ - "crypto/bn/asm/rsaz-avx512.pl" - ], "crypto/bn/rsaz-x86_64.s" => [ "crypto/bn/asm/rsaz-x86_64.pl" ], @@ -10670,6 +12533,9 @@ our %unified_info = ( "crypto/chacha/chacha-armv4.S" => [ "crypto/chacha/asm/chacha-armv4.pl" ], + "crypto/chacha/chacha-armv8-sve.S" => [ + "crypto/chacha/asm/chacha-armv8-sve.pl" + ], "crypto/chacha/chacha-armv8.S" => [ "crypto/chacha/asm/chacha-armv8.pl" ], @@ -10682,9 +12548,19 @@ our %unified_info = ( "crypto/chacha/chacha-ia64.s" => [ "crypto/chacha/chacha-ia64.S" ], + "crypto/chacha/chacha-loongarch64.S" => [ + "crypto/chacha/asm/chacha-loongarch64.pl" + ], "crypto/chacha/chacha-ppc.s" => [ "crypto/chacha/asm/chacha-ppc.pl" ], + "crypto/chacha/chacha-riscv64-v-zbb-zvkb.s" => [ + "crypto/chacha/asm/chacha-riscv64-v-zbb.pl", + "zvkb" + ], + "crypto/chacha/chacha-riscv64-v-zbb.s" => [ + "crypto/chacha/asm/chacha-riscv64-v-zbb.pl" + ], "crypto/chacha/chacha-s390x.S" => [ "crypto/chacha/asm/chacha-s390x.pl" ], @@ -10694,6 +12570,9 @@ our %unified_info = ( "crypto/chacha/chacha-x86_64.s" => [ "crypto/chacha/asm/chacha-x86_64.pl" ], + "crypto/chacha/chachap10-ppc.s" => [ + "crypto/chacha/asm/chachap10-ppc.pl" + ], "crypto/des/crypt586.S" => [ "crypto/des/asm/crypt586.pl" ], @@ -10706,6 +12585,9 @@ our %unified_info = ( "crypto/des/dest4-sparcv9.S" => [ "crypto/des/asm/dest4-sparcv9.pl" ], + "crypto/ec/ecp_nistp384-ppc64.s" => [ + "crypto/ec/asm/ecp_nistp384-ppc64.pl" + ], "crypto/ec/ecp_nistp521-ppc64.s" => [ "crypto/ec/asm/ecp_nistp521-ppc64.pl" ], @@ -10730,6 +12612,9 @@ our %unified_info = ( "crypto/ec/ecp_nistz256-x86_64.s" => [ "crypto/ec/asm/ecp_nistz256-x86_64.pl" ], + "crypto/ec/ecp_sm2p256-armv8.S" => [ + "crypto/ec/asm/ecp_sm2p256-armv8.pl" + ], "crypto/ec/x25519-ppc64.s" => [ "crypto/ec/asm/x25519-ppc64.pl" ], @@ -10739,18 +12624,39 @@ our %unified_info = ( "crypto/ia64cpuid.s" => [ "crypto/ia64cpuid.S" ], + "crypto/loongarch64cpuid.s" => [ + "crypto/loongarch64cpuid.pl" + ], "crypto/md5/md5-586.S" => [ "crypto/md5/asm/md5-586.pl" ], + "crypto/md5/md5-aarch64.S" => [ + "crypto/md5/asm/md5-aarch64.pl" + ], + "crypto/md5/md5-loongarch64.S" => [ + "crypto/md5/asm/md5-loongarch64.pl" + ], "crypto/md5/md5-sparcv9.S" => [ "crypto/md5/asm/md5-sparcv9.pl" ], "crypto/md5/md5-x86_64.s" => [ "crypto/md5/asm/md5-x86_64.pl" ], + "crypto/modes/aes-gcm-armv8-unroll8_64.S" => [ + "crypto/modes/asm/aes-gcm-armv8-unroll8_64.pl" + ], "crypto/modes/aes-gcm-armv8_64.S" => [ "crypto/modes/asm/aes-gcm-armv8_64.pl" ], + "crypto/modes/aes-gcm-avx512.s" => [ + "crypto/modes/asm/aes-gcm-avx512.pl" + ], + "crypto/modes/aes-gcm-ppc.s" => [ + "crypto/modes/asm/aes-gcm-ppc.pl" + ], + "crypto/modes/aes-gcm-riscv64-zvkb-zvkg-zvkned.s" => [ + "crypto/modes/asm/aes-gcm-riscv64-zvkb-zvkg-zvkned.pl" + ], "crypto/modes/aesni-gcm-x86_64.s" => [ "crypto/modes/asm/aesni-gcm-x86_64.pl" ], @@ -10769,6 +12675,15 @@ our %unified_info = ( "crypto/modes/ghash-parisc.s" => [ "crypto/modes/asm/ghash-parisc.pl" ], + "crypto/modes/ghash-riscv64-zvkb-zvbc.s" => [ + "crypto/modes/asm/ghash-riscv64-zvkb-zvbc.pl" + ], + "crypto/modes/ghash-riscv64-zvkg.s" => [ + "crypto/modes/asm/ghash-riscv64-zvkg.pl" + ], + "crypto/modes/ghash-riscv64.s" => [ + "crypto/modes/asm/ghash-riscv64.pl" + ], "crypto/modes/ghash-s390x.S" => [ "crypto/modes/asm/ghash-s390x.pl" ], @@ -10787,6 +12702,9 @@ our %unified_info = ( "crypto/modes/ghashv8-armx.S" => [ "crypto/modes/asm/ghashv8-armx.pl" ], + "crypto/params_idx.c" => [ + "crypto/params_idx.c.in" + ], "crypto/pariscid.s" => [ "crypto/pariscid.pl" ], @@ -10847,6 +12765,12 @@ our %unified_info = ( "crypto/ripemd/rmd-586.S" => [ "crypto/ripemd/asm/rmd-586.pl" ], + "crypto/riscv32cpuid.s" => [ + "crypto/riscv32cpuid.pl" + ], + "crypto/riscv64cpuid.s" => [ + "crypto/riscv64cpuid.pl" + ], "crypto/s390xcpuid.S" => [ "crypto/s390xcpuid.pl" ], @@ -10955,6 +12879,9 @@ our %unified_info = ( "crypto/sha/sha256-ppc.s" => [ "crypto/sha/asm/sha512-ppc.pl" ], + "crypto/sha/sha256-riscv64-zvkb-zvknha_or_zvknhb.S" => [ + "crypto/sha/asm/sha256-riscv64-zvkb-zvknha_or_zvknhb.pl" + ], "crypto/sha/sha256-s390x.S" => [ "crypto/sha/asm/sha512-s390x.pl" ], @@ -10991,6 +12918,9 @@ our %unified_info = ( "crypto/sha/sha512-ppc.s" => [ "crypto/sha/asm/sha512-ppc.pl" ], + "crypto/sha/sha512-riscv64-zvkb-zvknhb.S" => [ + "crypto/sha/asm/sha512-riscv64-zvkb-zvknhb.pl" + ], "crypto/sha/sha512-s390x.S" => [ "crypto/sha/asm/sha512-s390x.pl" ], @@ -11003,6 +12933,24 @@ our %unified_info = ( "crypto/sha/sha512p8-ppc.s" => [ "crypto/sha/asm/sha512p8-ppc.pl" ], + "crypto/sm3/sm3-armv8.S" => [ + "crypto/sm3/asm/sm3-armv8.pl" + ], + "crypto/sm3/sm3-riscv64-zvksh.S" => [ + "crypto/sm3/asm/sm3-riscv64-zvksh.pl" + ], + "crypto/sm4/sm4-armv8.S" => [ + "crypto/sm4/asm/sm4-armv8.pl" + ], + "crypto/sm4/sm4-riscv64-zvksed.s" => [ + "crypto/sm4/asm/sm4-riscv64-zvksed.pl" + ], + "crypto/sm4/vpsm4-armv8.S" => [ + "crypto/sm4/asm/vpsm4-armv8.pl" + ], + "crypto/sm4/vpsm4_ex-armv8.S" => [ + "crypto/sm4/asm/vpsm4_ex-armv8.pl" + ], "crypto/uplink-ia64.s" => [ "ms/uplink-ia64.pl" ], @@ -11168,6 +13116,9 @@ our %unified_info = ( "doc/html/man1/openssl-sess_id.html" => [ "doc/man1/openssl-sess_id.pod" ], + "doc/html/man1/openssl-skeyutl.html" => [ + "doc/man1/openssl-skeyutl.pod" + ], "doc/html/man1/openssl-smime.html" => [ "doc/man1/openssl-smime.pod" ], @@ -11309,6 +13260,9 @@ our %unified_info = ( "doc/html/man3/BIO_get_ex_new_index.html" => [ "doc/man3/BIO_get_ex_new_index.pod" ], + "doc/html/man3/BIO_get_rpoll_descriptor.html" => [ + "doc/man3/BIO_get_rpoll_descriptor.pod" + ], "doc/html/man3/BIO_meth_new.html" => [ "doc/man3/BIO_meth_new.pod" ], @@ -11345,6 +13299,9 @@ our %unified_info = ( "doc/html/man3/BIO_s_datagram.html" => [ "doc/man3/BIO_s_datagram.pod" ], + "doc/html/man3/BIO_s_dgram_pair.html" => [ + "doc/man3/BIO_s_dgram_pair.pod" + ], "doc/html/man3/BIO_s_fd.html" => [ "doc/man3/BIO_s_fd.pod" ], @@ -11360,6 +13317,9 @@ our %unified_info = ( "doc/html/man3/BIO_s_socket.html" => [ "doc/man3/BIO_s_socket.pod" ], + "doc/html/man3/BIO_sendmmsg.html" => [ + "doc/man3/BIO_sendmmsg.pod" + ], "doc/html/man3/BIO_set_callback.html" => [ "doc/man3/BIO_set_callback.pod" ], @@ -11432,6 +13392,9 @@ our %unified_info = ( "doc/html/man3/BUF_MEM_new.html" => [ "doc/man3/BUF_MEM_new.pod" ], + "doc/html/man3/CMAC_CTX.html" => [ + "doc/man3/CMAC_CTX.pod" + ], "doc/html/man3/CMS_EncryptedData_decrypt.html" => [ "doc/man3/CMS_EncryptedData_decrypt.pod" ], @@ -11498,6 +13461,9 @@ our %unified_info = ( "doc/html/man3/CMS_verify_receipt.html" => [ "doc/man3/CMS_verify_receipt.pod" ], + "doc/html/man3/COMP_CTX_new.html" => [ + "doc/man3/COMP_CTX_new.pod" + ], "doc/html/man3/CONF_modules_free.html" => [ "doc/man3/CONF_modules_free.pod" ], @@ -11597,6 +13563,12 @@ our %unified_info = ( "doc/html/man3/DTLS_set_timer_cb.html" => [ "doc/man3/DTLS_set_timer_cb.pod" ], + "doc/html/man3/DTLSv1_get_timeout.html" => [ + "doc/man3/DTLSv1_get_timeout.pod" + ], + "doc/html/man3/DTLSv1_handle_timeout.html" => [ + "doc/man3/DTLSv1_handle_timeout.pod" + ], "doc/html/man3/DTLSv1_listen.html" => [ "doc/man3/DTLSv1_listen.pod" ], @@ -11735,6 +13707,9 @@ our %unified_info = ( "doc/html/man3/EVP_PKEY_CTX_get0_pkey.html" => [ "doc/man3/EVP_PKEY_CTX_get0_pkey.pod" ], + "doc/html/man3/EVP_PKEY_CTX_get_algor.html" => [ + "doc/man3/EVP_PKEY_CTX_get_algor.pod" + ], "doc/html/man3/EVP_PKEY_CTX_new.html" => [ "doc/man3/EVP_PKEY_CTX_new.pod" ], @@ -11852,6 +13827,12 @@ our %unified_info = ( "doc/html/man3/EVP_SIGNATURE.html" => [ "doc/man3/EVP_SIGNATURE.pod" ], + "doc/html/man3/EVP_SKEY.html" => [ + "doc/man3/EVP_SKEY.pod" + ], + "doc/html/man3/EVP_SKEYMGMT.html" => [ + "doc/man3/EVP_SKEYMGMT.pod" + ], "doc/html/man3/EVP_SealInit.html" => [ "doc/man3/EVP_SealInit.pod" ], @@ -11939,6 +13920,9 @@ our %unified_info = ( "doc/html/man3/EVP_whirlpool.html" => [ "doc/man3/EVP_whirlpool.pod" ], + "doc/html/man3/GENERAL_NAME.html" => [ + "doc/man3/GENERAL_NAME.pod" + ], "doc/html/man3/HMAC.html" => [ "doc/man3/HMAC.pod" ], @@ -12011,9 +13995,15 @@ our %unified_info = ( "doc/html/man3/OPENSSL_load_builtin_modules.html" => [ "doc/man3/OPENSSL_load_builtin_modules.pod" ], + "doc/html/man3/OPENSSL_load_u16_le.html" => [ + "doc/man3/OPENSSL_load_u16_le.pod" + ], "doc/html/man3/OPENSSL_malloc.html" => [ "doc/man3/OPENSSL_malloc.pod" ], + "doc/html/man3/OPENSSL_riscvcap.html" => [ + "doc/man3/OPENSSL_riscvcap.pod" + ], "doc/html/man3/OPENSSL_s390xcap.html" => [ "doc/man3/OPENSSL_s390xcap.pod" ], @@ -12029,12 +14019,18 @@ our %unified_info = ( "doc/html/man3/OSSL_CALLBACK.html" => [ "doc/man3/OSSL_CALLBACK.pod" ], + "doc/html/man3/OSSL_CMP_ATAV_set0.html" => [ + "doc/man3/OSSL_CMP_ATAV_set0.pod" + ], "doc/html/man3/OSSL_CMP_CTX_new.html" => [ "doc/man3/OSSL_CMP_CTX_new.pod" ], "doc/html/man3/OSSL_CMP_HDR_get0_transactionID.html" => [ "doc/man3/OSSL_CMP_HDR_get0_transactionID.pod" ], + "doc/html/man3/OSSL_CMP_ITAV_new_caCerts.html" => [ + "doc/man3/OSSL_CMP_ITAV_new_caCerts.pod" + ], "doc/html/man3/OSSL_CMP_ITAV_set0.html" => [ "doc/man3/OSSL_CMP_ITAV_set0.pod" ], @@ -12104,9 +14100,18 @@ our %unified_info = ( "doc/html/man3/OSSL_ENCODER_to_bio.html" => [ "doc/man3/OSSL_ENCODER_to_bio.pod" ], + "doc/html/man3/OSSL_ERR_STATE_save.html" => [ + "doc/man3/OSSL_ERR_STATE_save.pod" + ], "doc/html/man3/OSSL_ESS_check_signing_certs.html" => [ "doc/man3/OSSL_ESS_check_signing_certs.pod" ], + "doc/html/man3/OSSL_GENERAL_NAMES_print.html" => [ + "doc/man3/OSSL_GENERAL_NAMES_print.pod" + ], + "doc/html/man3/OSSL_HPKE_CTX_new.html" => [ + "doc/man3/OSSL_HPKE_CTX_new.pod" + ], "doc/html/man3/OSSL_HTTP_REQ_CTX.html" => [ "doc/man3/OSSL_HTTP_REQ_CTX.pod" ], @@ -12116,12 +14121,24 @@ our %unified_info = ( "doc/html/man3/OSSL_HTTP_transfer.html" => [ "doc/man3/OSSL_HTTP_transfer.pod" ], + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX.html" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX.pod" + ], + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX_print.html" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX_print.pod" + ], + "doc/html/man3/OSSL_INDICATOR_set_callback.html" => [ + "doc/man3/OSSL_INDICATOR_set_callback.pod" + ], "doc/html/man3/OSSL_ITEM.html" => [ "doc/man3/OSSL_ITEM.pod" ], "doc/html/man3/OSSL_LIB_CTX.html" => [ "doc/man3/OSSL_LIB_CTX.pod" ], + "doc/html/man3/OSSL_LIB_CTX_set_conf_diagnostics.html" => [ + "doc/man3/OSSL_LIB_CTX_set_conf_diagnostics.pod" + ], "doc/html/man3/OSSL_PARAM.html" => [ "doc/man3/OSSL_PARAM.pod" ], @@ -12137,9 +14154,15 @@ our %unified_info = ( "doc/html/man3/OSSL_PARAM_int.html" => [ "doc/man3/OSSL_PARAM_int.pod" ], + "doc/html/man3/OSSL_PARAM_print_to_bio.html" => [ + "doc/man3/OSSL_PARAM_print_to_bio.pod" + ], "doc/html/man3/OSSL_PROVIDER.html" => [ "doc/man3/OSSL_PROVIDER.pod" ], + "doc/html/man3/OSSL_QUIC_client_method.html" => [ + "doc/man3/OSSL_QUIC_client_method.pod" + ], "doc/html/man3/OSSL_SELF_TEST_new.html" => [ "doc/man3/OSSL_SELF_TEST_new.pod" ], @@ -12164,6 +14187,9 @@ our %unified_info = ( "doc/html/man3/OSSL_STORE_open.html" => [ "doc/man3/OSSL_STORE_open.pod" ], + "doc/html/man3/OSSL_sleep.html" => [ + "doc/man3/OSSL_sleep.pod" + ], "doc/html/man3/OSSL_trace_enabled.html" => [ "doc/man3/OSSL_trace_enabled.pod" ], @@ -12179,6 +14205,9 @@ our %unified_info = ( "doc/html/man3/OpenSSL_version.html" => [ "doc/man3/OpenSSL_version.pod" ], + "doc/html/man3/PBMAC1_get1_pbkdf2_param.html" => [ + "doc/man3/PBMAC1_get1_pbkdf2_param.pod" + ], "doc/html/man3/PEM_X509_INFO_read_bio_ex.html" => [ "doc/man3/PEM_X509_INFO_read_bio_ex.pod" ], @@ -12215,6 +14244,9 @@ our %unified_info = ( "doc/html/man3/PKCS12_SAFEBAG_get1_cert.html" => [ "doc/man3/PKCS12_SAFEBAG_get1_cert.pod" ], + "doc/html/man3/PKCS12_SAFEBAG_set0_attrs.html" => [ + "doc/man3/PKCS12_SAFEBAG_set0_attrs.pod" + ], "doc/html/man3/PKCS12_add1_attr_by_NID.html" => [ "doc/man3/PKCS12_add1_attr_by_NID.pod" ], @@ -12488,6 +14520,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set0_CA_list.html" => [ "doc/man3/SSL_CTX_set0_CA_list.pod" ], + "doc/html/man3/SSL_CTX_set1_cert_comp_preference.html" => [ + "doc/man3/SSL_CTX_set1_cert_comp_preference.pod" + ], "doc/html/man3/SSL_CTX_set1_curves.html" => [ "doc/man3/SSL_CTX_set1_curves.pod" ], @@ -12527,6 +14562,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_default_passwd_cb.html" => [ "doc/man3/SSL_CTX_set_default_passwd_cb.pod" ], + "doc/html/man3/SSL_CTX_set_domain_flags.html" => [ + "doc/man3/SSL_CTX_set_domain_flags.pod" + ], "doc/html/man3/SSL_CTX_set_generate_session_id.html" => [ "doc/man3/SSL_CTX_set_generate_session_id.pod" ], @@ -12548,6 +14586,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_msg_callback.html" => [ "doc/man3/SSL_CTX_set_msg_callback.pod" ], + "doc/html/man3/SSL_CTX_set_new_pending_conn_cb.html" => [ + "doc/man3/SSL_CTX_set_new_pending_conn_cb.pod" + ], "doc/html/man3/SSL_CTX_set_num_tickets.html" => [ "doc/man3/SSL_CTX_set_num_tickets.pod" ], @@ -12662,6 +14703,9 @@ our %unified_info = ( "doc/html/man3/SSL_accept.html" => [ "doc/man3/SSL_accept.pod" ], + "doc/html/man3/SSL_accept_stream.html" => [ + "doc/man3/SSL_accept_stream.pod" + ], "doc/html/man3/SSL_alert_type_string.html" => [ "doc/man3/SSL_alert_type_string.pod" ], @@ -12689,9 +14733,21 @@ our %unified_info = ( "doc/html/man3/SSL_free.html" => [ "doc/man3/SSL_free.pod" ], + "doc/html/man3/SSL_get0_connection.html" => [ + "doc/man3/SSL_get0_connection.pod" + ], + "doc/html/man3/SSL_get0_group_name.html" => [ + "doc/man3/SSL_get0_group_name.pod" + ], + "doc/html/man3/SSL_get0_peer_rpk.html" => [ + "doc/man3/SSL_get0_peer_rpk.pod" + ], "doc/html/man3/SSL_get0_peer_scts.html" => [ "doc/man3/SSL_get0_peer_scts.pod" ], + "doc/html/man3/SSL_get1_builtin_sigalgs.html" => [ + "doc/man3/SSL_get1_builtin_sigalgs.pod" + ], "doc/html/man3/SSL_get_SSL_CTX.html" => [ "doc/man3/SSL_get_SSL_CTX.pod" ], @@ -12707,6 +14763,9 @@ our %unified_info = ( "doc/html/man3/SSL_get_client_random.html" => [ "doc/man3/SSL_get_client_random.pod" ], + "doc/html/man3/SSL_get_conn_close_info.html" => [ + "doc/man3/SSL_get_conn_close_info.pod" + ], "doc/html/man3/SSL_get_current_cipher.html" => [ "doc/man3/SSL_get_current_cipher.pod" ], @@ -12716,12 +14775,18 @@ our %unified_info = ( "doc/html/man3/SSL_get_error.html" => [ "doc/man3/SSL_get_error.pod" ], + "doc/html/man3/SSL_get_event_timeout.html" => [ + "doc/man3/SSL_get_event_timeout.pod" + ], "doc/html/man3/SSL_get_extms_support.html" => [ "doc/man3/SSL_get_extms_support.pod" ], "doc/html/man3/SSL_get_fd.html" => [ "doc/man3/SSL_get_fd.pod" ], + "doc/html/man3/SSL_get_handshake_rtt.html" => [ + "doc/man3/SSL_get_handshake_rtt.pod" + ], "doc/html/man3/SSL_get_peer_cert_chain.html" => [ "doc/man3/SSL_get_peer_cert_chain.pod" ], @@ -12740,12 +14805,24 @@ our %unified_info = ( "doc/html/man3/SSL_get_rbio.html" => [ "doc/man3/SSL_get_rbio.pod" ], + "doc/html/man3/SSL_get_rpoll_descriptor.html" => [ + "doc/man3/SSL_get_rpoll_descriptor.pod" + ], "doc/html/man3/SSL_get_session.html" => [ "doc/man3/SSL_get_session.pod" ], "doc/html/man3/SSL_get_shared_sigalgs.html" => [ "doc/man3/SSL_get_shared_sigalgs.pod" ], + "doc/html/man3/SSL_get_stream_id.html" => [ + "doc/man3/SSL_get_stream_id.pod" + ], + "doc/html/man3/SSL_get_stream_read_state.html" => [ + "doc/man3/SSL_get_stream_read_state.pod" + ], + "doc/html/man3/SSL_get_value_uint.html" => [ + "doc/man3/SSL_get_value_uint.pod" + ], "doc/html/man3/SSL_get_verify_result.html" => [ "doc/man3/SSL_get_verify_result.pod" ], @@ -12755,9 +14832,15 @@ our %unified_info = ( "doc/html/man3/SSL_group_to_name.html" => [ "doc/man3/SSL_group_to_name.pod" ], + "doc/html/man3/SSL_handle_events.html" => [ + "doc/man3/SSL_handle_events.pod" + ], "doc/html/man3/SSL_in_init.html" => [ "doc/man3/SSL_in_init.pod" ], + "doc/html/man3/SSL_inject_net_dgram.html" => [ + "doc/man3/SSL_inject_net_dgram.pod" + ], "doc/html/man3/SSL_key_update.html" => [ "doc/man3/SSL_key_update.pod" ], @@ -12770,9 +14853,21 @@ our %unified_info = ( "doc/html/man3/SSL_new.html" => [ "doc/man3/SSL_new.pod" ], + "doc/html/man3/SSL_new_domain.html" => [ + "doc/man3/SSL_new_domain.pod" + ], + "doc/html/man3/SSL_new_listener.html" => [ + "doc/man3/SSL_new_listener.pod" + ], + "doc/html/man3/SSL_new_stream.html" => [ + "doc/man3/SSL_new_stream.pod" + ], "doc/html/man3/SSL_pending.html" => [ "doc/man3/SSL_pending.pod" ], + "doc/html/man3/SSL_poll.html" => [ + "doc/man3/SSL_poll.pod" + ], "doc/html/man3/SSL_read.html" => [ "doc/man3/SSL_read.pod" ], @@ -12788,24 +14883,45 @@ our %unified_info = ( "doc/html/man3/SSL_set1_host.html" => [ "doc/man3/SSL_set1_host.pod" ], + "doc/html/man3/SSL_set1_initial_peer_addr.html" => [ + "doc/man3/SSL_set1_initial_peer_addr.pod" + ], + "doc/html/man3/SSL_set1_server_cert_type.html" => [ + "doc/man3/SSL_set1_server_cert_type.pod" + ], "doc/html/man3/SSL_set_async_callback.html" => [ "doc/man3/SSL_set_async_callback.pod" ], "doc/html/man3/SSL_set_bio.html" => [ "doc/man3/SSL_set_bio.pod" ], + "doc/html/man3/SSL_set_blocking_mode.html" => [ + "doc/man3/SSL_set_blocking_mode.pod" + ], "doc/html/man3/SSL_set_connect_state.html" => [ "doc/man3/SSL_set_connect_state.pod" ], + "doc/html/man3/SSL_set_default_stream_mode.html" => [ + "doc/man3/SSL_set_default_stream_mode.pod" + ], "doc/html/man3/SSL_set_fd.html" => [ "doc/man3/SSL_set_fd.pod" ], + "doc/html/man3/SSL_set_incoming_stream_policy.html" => [ + "doc/man3/SSL_set_incoming_stream_policy.pod" + ], + "doc/html/man3/SSL_set_quic_tls_cbs.html" => [ + "doc/man3/SSL_set_quic_tls_cbs.pod" + ], "doc/html/man3/SSL_set_retry_verify.html" => [ "doc/man3/SSL_set_retry_verify.pod" ], "doc/html/man3/SSL_set_session.html" => [ "doc/man3/SSL_set_session.pod" ], + "doc/html/man3/SSL_set_session_secret_cb.html" => [ + "doc/man3/SSL_set_session_secret_cb.pod" + ], "doc/html/man3/SSL_set_shutdown.html" => [ "doc/man3/SSL_set_shutdown.pod" ], @@ -12818,6 +14934,12 @@ our %unified_info = ( "doc/html/man3/SSL_state_string.html" => [ "doc/man3/SSL_state_string.pod" ], + "doc/html/man3/SSL_stream_conclude.html" => [ + "doc/man3/SSL_stream_conclude.pod" + ], + "doc/html/man3/SSL_stream_reset.html" => [ + "doc/man3/SSL_stream_reset.pod" + ], "doc/html/man3/SSL_want.html" => [ "doc/man3/SSL_want.pod" ], @@ -12827,8 +14949,8 @@ our %unified_info = ( "doc/html/man3/TS_RESP_CTX_new.html" => [ "doc/man3/TS_RESP_CTX_new.pod" ], - "doc/html/man3/TS_VERIFY_CTX_set_certs.html" => [ - "doc/man3/TS_VERIFY_CTX_set_certs.pod" + "doc/html/man3/TS_VERIFY_CTX.html" => [ + "doc/man3/TS_VERIFY_CTX.pod" ], "doc/html/man3/UI_STRING.html" => [ "doc/man3/UI_STRING.pod" @@ -12848,6 +14970,21 @@ our %unified_info = ( "doc/html/man3/X509V3_set_ctx.html" => [ "doc/man3/X509V3_set_ctx.pod" ], + "doc/html/man3/X509_ACERT_add1_attr.html" => [ + "doc/man3/X509_ACERT_add1_attr.pod" + ], + "doc/html/man3/X509_ACERT_add_attr_nconf.html" => [ + "doc/man3/X509_ACERT_add_attr_nconf.pod" + ], + "doc/html/man3/X509_ACERT_get0_holder_baseCertId.html" => [ + "doc/man3/X509_ACERT_get0_holder_baseCertId.pod" + ], + "doc/html/man3/X509_ACERT_get_attr.html" => [ + "doc/man3/X509_ACERT_get_attr.pod" + ], + "doc/html/man3/X509_ACERT_print_ex.html" => [ + "doc/man3/X509_ACERT_print_ex.pod" + ], "doc/html/man3/X509_ALGOR_dup.html" => [ "doc/man3/X509_ALGOR_dup.pod" ], @@ -12896,6 +15033,9 @@ our %unified_info = ( "doc/html/man3/X509_SIG_get0.html" => [ "doc/man3/X509_SIG_get0.pod" ], + "doc/html/man3/X509_STORE_CTX_get_by_subject.html" => [ + "doc/man3/X509_STORE_CTX_get_by_subject.pod" + ], "doc/html/man3/X509_STORE_CTX_get_error.html" => [ "doc/man3/X509_STORE_CTX_get_error.pod" ], @@ -12962,6 +15102,9 @@ our %unified_info = ( "doc/html/man3/X509_get0_uids.html" => [ "doc/man3/X509_get0_uids.pod" ], + "doc/html/man3/X509_get_default_cert_file.html" => [ + "doc/man3/X509_get_default_cert_file.pod" + ], "doc/html/man3/X509_get_extension_flags.html" => [ "doc/man3/X509_get_extension_flags.pod" ], @@ -13085,9 +15228,15 @@ our %unified_info = ( "doc/html/man7/EVP_CIPHER-SM4.html" => [ "doc/man7/EVP_CIPHER-SM4.pod" ], + "doc/html/man7/EVP_KDF-ARGON2.html" => [ + "doc/man7/EVP_KDF-ARGON2.pod" + ], "doc/html/man7/EVP_KDF-HKDF.html" => [ "doc/man7/EVP_KDF-HKDF.pod" ], + "doc/html/man7/EVP_KDF-HMAC-DRBG.html" => [ + "doc/man7/EVP_KDF-HMAC-DRBG.pod" + ], "doc/html/man7/EVP_KDF-KB.html" => [ "doc/man7/EVP_KDF-KB.pod" ], @@ -13103,6 +15252,9 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-PKCS12KDF.html" => [ "doc/man7/EVP_KDF-PKCS12KDF.pod" ], + "doc/html/man7/EVP_KDF-PVKKDF.html" => [ + "doc/man7/EVP_KDF-PVKKDF.pod" + ], "doc/html/man7/EVP_KDF-SCRYPT.html" => [ "doc/man7/EVP_KDF-SCRYPT.pod" ], @@ -13127,9 +15279,18 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-X963.html" => [ "doc/man7/EVP_KDF-X963.pod" ], + "doc/html/man7/EVP_KEM-EC.html" => [ + "doc/man7/EVP_KEM-EC.pod" + ], + "doc/html/man7/EVP_KEM-ML-KEM.html" => [ + "doc/man7/EVP_KEM-ML-KEM.pod" + ], "doc/html/man7/EVP_KEM-RSA.html" => [ "doc/man7/EVP_KEM-RSA.pod" ], + "doc/html/man7/EVP_KEM-X25519.html" => [ + "doc/man7/EVP_KEM-X25519.pod" + ], "doc/html/man7/EVP_KEYEXCH-DH.html" => [ "doc/man7/EVP_KEYEXCH-DH.pod" ], @@ -13163,6 +15324,9 @@ our %unified_info = ( "doc/html/man7/EVP_MD-BLAKE2.html" => [ "doc/man7/EVP_MD-BLAKE2.pod" ], + "doc/html/man7/EVP_MD-KECCAK.html" => [ + "doc/man7/EVP_MD-KECCAK.pod" + ], "doc/html/man7/EVP_MD-MD2.html" => [ "doc/man7/EVP_MD-MD2.pod" ], @@ -13220,15 +15384,27 @@ our %unified_info = ( "doc/html/man7/EVP_PKEY-HMAC.html" => [ "doc/man7/EVP_PKEY-HMAC.pod" ], + "doc/html/man7/EVP_PKEY-ML-DSA.html" => [ + "doc/man7/EVP_PKEY-ML-DSA.pod" + ], + "doc/html/man7/EVP_PKEY-ML-KEM.html" => [ + "doc/man7/EVP_PKEY-ML-KEM.pod" + ], "doc/html/man7/EVP_PKEY-RSA.html" => [ "doc/man7/EVP_PKEY-RSA.pod" ], + "doc/html/man7/EVP_PKEY-SLH-DSA.html" => [ + "doc/man7/EVP_PKEY-SLH-DSA.pod" + ], "doc/html/man7/EVP_PKEY-SM2.html" => [ "doc/man7/EVP_PKEY-SM2.pod" ], "doc/html/man7/EVP_PKEY-X25519.html" => [ "doc/man7/EVP_PKEY-X25519.pod" ], + "doc/html/man7/EVP_RAND-CRNG-TEST.html" => [ + "doc/man7/EVP_RAND-CRNG-TEST.pod" + ], "doc/html/man7/EVP_RAND-CTR-DRBG.html" => [ "doc/man7/EVP_RAND-CTR-DRBG.pod" ], @@ -13238,6 +15414,9 @@ our %unified_info = ( "doc/html/man7/EVP_RAND-HMAC-DRBG.html" => [ "doc/man7/EVP_RAND-HMAC-DRBG.pod" ], + "doc/html/man7/EVP_RAND-JITTER.html" => [ + "doc/man7/EVP_RAND-JITTER.pod" + ], "doc/html/man7/EVP_RAND-SEED-SRC.html" => [ "doc/man7/EVP_RAND-SEED-SRC.pod" ], @@ -13259,9 +15438,15 @@ our %unified_info = ( "doc/html/man7/EVP_SIGNATURE-HMAC.html" => [ "doc/man7/EVP_SIGNATURE-HMAC.pod" ], + "doc/html/man7/EVP_SIGNATURE-ML-DSA.html" => [ + "doc/man7/EVP_SIGNATURE-ML-DSA.pod" + ], "doc/html/man7/EVP_SIGNATURE-RSA.html" => [ "doc/man7/EVP_SIGNATURE-RSA.pod" ], + "doc/html/man7/EVP_SIGNATURE-SLH-DSA.html" => [ + "doc/man7/EVP_SIGNATURE-SLH-DSA.pod" + ], "doc/html/man7/OSSL_PROVIDER-FIPS.html" => [ "doc/man7/OSSL_PROVIDER-FIPS.pod" ], @@ -13277,6 +15462,9 @@ our %unified_info = ( "doc/html/man7/OSSL_PROVIDER-null.html" => [ "doc/man7/OSSL_PROVIDER-null.pod" ], + "doc/html/man7/OSSL_STORE-winstore.html" => [ + "doc/man7/OSSL_STORE-winstore.pod" + ], "doc/html/man7/RAND.html" => [ "doc/man7/RAND.pod" ], @@ -13289,9 +15477,6 @@ our %unified_info = ( "doc/html/man7/bio.html" => [ "doc/man7/bio.pod" ], - "doc/html/man7/crypto.html" => [ - "doc/man7/crypto.pod" - ], "doc/html/man7/ct.html" => [ "doc/man7/ct.pod" ], @@ -13322,9 +15507,6 @@ our %unified_info = ( "doc/html/man7/life_cycle-rand.html" => [ "doc/man7/life_cycle-rand.pod" ], - "doc/html/man7/migration_guide.html" => [ - "doc/man7/migration_guide.pod" - ], "doc/html/man7/openssl-core.h.html" => [ "doc/man7/openssl-core.h.pod" ], @@ -13340,12 +15522,66 @@ our %unified_info = ( "doc/html/man7/openssl-glossary.html" => [ "doc/man7/openssl-glossary.pod" ], + "doc/html/man7/openssl-qlog.html" => [ + "doc/man7/openssl-qlog.pod" + ], + "doc/html/man7/openssl-quic-concurrency.html" => [ + "doc/man7/openssl-quic-concurrency.pod" + ], + "doc/html/man7/openssl-quic.html" => [ + "doc/man7/openssl-quic.pod" + ], "doc/html/man7/openssl-threads.html" => [ "doc/man7/openssl-threads.pod" ], "doc/html/man7/openssl_user_macros.html" => [ "doc/man7/openssl_user_macros.pod" ], + "doc/html/man7/ossl-guide-introduction.html" => [ + "doc/man7/ossl-guide-introduction.pod" + ], + "doc/html/man7/ossl-guide-libcrypto-introduction.html" => [ + "doc/man7/ossl-guide-libcrypto-introduction.pod" + ], + "doc/html/man7/ossl-guide-libraries-introduction.html" => [ + "doc/man7/ossl-guide-libraries-introduction.pod" + ], + "doc/html/man7/ossl-guide-libssl-introduction.html" => [ + "doc/man7/ossl-guide-libssl-introduction.pod" + ], + "doc/html/man7/ossl-guide-migration.html" => [ + "doc/man7/ossl-guide-migration.pod" + ], + "doc/html/man7/ossl-guide-quic-client-block.html" => [ + "doc/man7/ossl-guide-quic-client-block.pod" + ], + "doc/html/man7/ossl-guide-quic-client-non-block.html" => [ + "doc/man7/ossl-guide-quic-client-non-block.pod" + ], + "doc/html/man7/ossl-guide-quic-introduction.html" => [ + "doc/man7/ossl-guide-quic-introduction.pod" + ], + "doc/html/man7/ossl-guide-quic-multi-stream.html" => [ + "doc/man7/ossl-guide-quic-multi-stream.pod" + ], + "doc/html/man7/ossl-guide-quic-server-block.html" => [ + "doc/man7/ossl-guide-quic-server-block.pod" + ], + "doc/html/man7/ossl-guide-quic-server-non-block.html" => [ + "doc/man7/ossl-guide-quic-server-non-block.pod" + ], + "doc/html/man7/ossl-guide-tls-client-block.html" => [ + "doc/man7/ossl-guide-tls-client-block.pod" + ], + "doc/html/man7/ossl-guide-tls-client-non-block.html" => [ + "doc/man7/ossl-guide-tls-client-non-block.pod" + ], + "doc/html/man7/ossl-guide-tls-introduction.html" => [ + "doc/man7/ossl-guide-tls-introduction.pod" + ], + "doc/html/man7/ossl-guide-tls-server-block.html" => [ + "doc/man7/ossl-guide-tls-server-block.pod" + ], "doc/html/man7/ossl_store-file.html" => [ "doc/man7/ossl_store-file.pod" ], @@ -13400,6 +15636,9 @@ our %unified_info = ( "doc/html/man7/provider-signature.html" => [ "doc/man7/provider-signature.pod" ], + "doc/html/man7/provider-skeymgmt.html" => [ + "doc/man7/provider-skeymgmt.pod" + ], "doc/html/man7/provider-storemgmt.html" => [ "doc/man7/provider-storemgmt.pod" ], @@ -13409,9 +15648,6 @@ our %unified_info = ( "doc/html/man7/proxy-certificates.html" => [ "doc/man7/proxy-certificates.pod" ], - "doc/html/man7/ssl.html" => [ - "doc/man7/ssl.pod" - ], "doc/html/man7/x509.html" => [ "doc/man7/x509.pod" ], @@ -13559,6 +15795,9 @@ our %unified_info = ( "doc/man/man1/openssl-sess_id.1" => [ "doc/man1/openssl-sess_id.pod" ], + "doc/man/man1/openssl-skeyutl.1" => [ + "doc/man1/openssl-skeyutl.pod" + ], "doc/man/man1/openssl-smime.1" => [ "doc/man1/openssl-smime.pod" ], @@ -13700,6 +15939,9 @@ our %unified_info = ( "doc/man/man3/BIO_get_ex_new_index.3" => [ "doc/man3/BIO_get_ex_new_index.pod" ], + "doc/man/man3/BIO_get_rpoll_descriptor.3" => [ + "doc/man3/BIO_get_rpoll_descriptor.pod" + ], "doc/man/man3/BIO_meth_new.3" => [ "doc/man3/BIO_meth_new.pod" ], @@ -13736,6 +15978,9 @@ our %unified_info = ( "doc/man/man3/BIO_s_datagram.3" => [ "doc/man3/BIO_s_datagram.pod" ], + "doc/man/man3/BIO_s_dgram_pair.3" => [ + "doc/man3/BIO_s_dgram_pair.pod" + ], "doc/man/man3/BIO_s_fd.3" => [ "doc/man3/BIO_s_fd.pod" ], @@ -13751,6 +15996,9 @@ our %unified_info = ( "doc/man/man3/BIO_s_socket.3" => [ "doc/man3/BIO_s_socket.pod" ], + "doc/man/man3/BIO_sendmmsg.3" => [ + "doc/man3/BIO_sendmmsg.pod" + ], "doc/man/man3/BIO_set_callback.3" => [ "doc/man3/BIO_set_callback.pod" ], @@ -13823,6 +16071,9 @@ our %unified_info = ( "doc/man/man3/BUF_MEM_new.3" => [ "doc/man3/BUF_MEM_new.pod" ], + "doc/man/man3/CMAC_CTX.3" => [ + "doc/man3/CMAC_CTX.pod" + ], "doc/man/man3/CMS_EncryptedData_decrypt.3" => [ "doc/man3/CMS_EncryptedData_decrypt.pod" ], @@ -13889,6 +16140,9 @@ our %unified_info = ( "doc/man/man3/CMS_verify_receipt.3" => [ "doc/man3/CMS_verify_receipt.pod" ], + "doc/man/man3/COMP_CTX_new.3" => [ + "doc/man3/COMP_CTX_new.pod" + ], "doc/man/man3/CONF_modules_free.3" => [ "doc/man3/CONF_modules_free.pod" ], @@ -13988,6 +16242,12 @@ our %unified_info = ( "doc/man/man3/DTLS_set_timer_cb.3" => [ "doc/man3/DTLS_set_timer_cb.pod" ], + "doc/man/man3/DTLSv1_get_timeout.3" => [ + "doc/man3/DTLSv1_get_timeout.pod" + ], + "doc/man/man3/DTLSv1_handle_timeout.3" => [ + "doc/man3/DTLSv1_handle_timeout.pod" + ], "doc/man/man3/DTLSv1_listen.3" => [ "doc/man3/DTLSv1_listen.pod" ], @@ -14126,6 +16386,9 @@ our %unified_info = ( "doc/man/man3/EVP_PKEY_CTX_get0_pkey.3" => [ "doc/man3/EVP_PKEY_CTX_get0_pkey.pod" ], + "doc/man/man3/EVP_PKEY_CTX_get_algor.3" => [ + "doc/man3/EVP_PKEY_CTX_get_algor.pod" + ], "doc/man/man3/EVP_PKEY_CTX_new.3" => [ "doc/man3/EVP_PKEY_CTX_new.pod" ], @@ -14243,6 +16506,12 @@ our %unified_info = ( "doc/man/man3/EVP_SIGNATURE.3" => [ "doc/man3/EVP_SIGNATURE.pod" ], + "doc/man/man3/EVP_SKEY.3" => [ + "doc/man3/EVP_SKEY.pod" + ], + "doc/man/man3/EVP_SKEYMGMT.3" => [ + "doc/man3/EVP_SKEYMGMT.pod" + ], "doc/man/man3/EVP_SealInit.3" => [ "doc/man3/EVP_SealInit.pod" ], @@ -14330,6 +16599,9 @@ our %unified_info = ( "doc/man/man3/EVP_whirlpool.3" => [ "doc/man3/EVP_whirlpool.pod" ], + "doc/man/man3/GENERAL_NAME.3" => [ + "doc/man3/GENERAL_NAME.pod" + ], "doc/man/man3/HMAC.3" => [ "doc/man3/HMAC.pod" ], @@ -14402,9 +16674,15 @@ our %unified_info = ( "doc/man/man3/OPENSSL_load_builtin_modules.3" => [ "doc/man3/OPENSSL_load_builtin_modules.pod" ], + "doc/man/man3/OPENSSL_load_u16_le.3" => [ + "doc/man3/OPENSSL_load_u16_le.pod" + ], "doc/man/man3/OPENSSL_malloc.3" => [ "doc/man3/OPENSSL_malloc.pod" ], + "doc/man/man3/OPENSSL_riscvcap.3" => [ + "doc/man3/OPENSSL_riscvcap.pod" + ], "doc/man/man3/OPENSSL_s390xcap.3" => [ "doc/man3/OPENSSL_s390xcap.pod" ], @@ -14420,12 +16698,18 @@ our %unified_info = ( "doc/man/man3/OSSL_CALLBACK.3" => [ "doc/man3/OSSL_CALLBACK.pod" ], + "doc/man/man3/OSSL_CMP_ATAV_set0.3" => [ + "doc/man3/OSSL_CMP_ATAV_set0.pod" + ], "doc/man/man3/OSSL_CMP_CTX_new.3" => [ "doc/man3/OSSL_CMP_CTX_new.pod" ], "doc/man/man3/OSSL_CMP_HDR_get0_transactionID.3" => [ "doc/man3/OSSL_CMP_HDR_get0_transactionID.pod" ], + "doc/man/man3/OSSL_CMP_ITAV_new_caCerts.3" => [ + "doc/man3/OSSL_CMP_ITAV_new_caCerts.pod" + ], "doc/man/man3/OSSL_CMP_ITAV_set0.3" => [ "doc/man3/OSSL_CMP_ITAV_set0.pod" ], @@ -14495,9 +16779,18 @@ our %unified_info = ( "doc/man/man3/OSSL_ENCODER_to_bio.3" => [ "doc/man3/OSSL_ENCODER_to_bio.pod" ], + "doc/man/man3/OSSL_ERR_STATE_save.3" => [ + "doc/man3/OSSL_ERR_STATE_save.pod" + ], "doc/man/man3/OSSL_ESS_check_signing_certs.3" => [ "doc/man3/OSSL_ESS_check_signing_certs.pod" ], + "doc/man/man3/OSSL_GENERAL_NAMES_print.3" => [ + "doc/man3/OSSL_GENERAL_NAMES_print.pod" + ], + "doc/man/man3/OSSL_HPKE_CTX_new.3" => [ + "doc/man3/OSSL_HPKE_CTX_new.pod" + ], "doc/man/man3/OSSL_HTTP_REQ_CTX.3" => [ "doc/man3/OSSL_HTTP_REQ_CTX.pod" ], @@ -14507,12 +16800,24 @@ our %unified_info = ( "doc/man/man3/OSSL_HTTP_transfer.3" => [ "doc/man3/OSSL_HTTP_transfer.pod" ], + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX.3" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX.pod" + ], + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX_print.3" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX_print.pod" + ], + "doc/man/man3/OSSL_INDICATOR_set_callback.3" => [ + "doc/man3/OSSL_INDICATOR_set_callback.pod" + ], "doc/man/man3/OSSL_ITEM.3" => [ "doc/man3/OSSL_ITEM.pod" ], "doc/man/man3/OSSL_LIB_CTX.3" => [ "doc/man3/OSSL_LIB_CTX.pod" ], + "doc/man/man3/OSSL_LIB_CTX_set_conf_diagnostics.3" => [ + "doc/man3/OSSL_LIB_CTX_set_conf_diagnostics.pod" + ], "doc/man/man3/OSSL_PARAM.3" => [ "doc/man3/OSSL_PARAM.pod" ], @@ -14528,9 +16833,15 @@ our %unified_info = ( "doc/man/man3/OSSL_PARAM_int.3" => [ "doc/man3/OSSL_PARAM_int.pod" ], + "doc/man/man3/OSSL_PARAM_print_to_bio.3" => [ + "doc/man3/OSSL_PARAM_print_to_bio.pod" + ], "doc/man/man3/OSSL_PROVIDER.3" => [ "doc/man3/OSSL_PROVIDER.pod" ], + "doc/man/man3/OSSL_QUIC_client_method.3" => [ + "doc/man3/OSSL_QUIC_client_method.pod" + ], "doc/man/man3/OSSL_SELF_TEST_new.3" => [ "doc/man3/OSSL_SELF_TEST_new.pod" ], @@ -14555,6 +16866,9 @@ our %unified_info = ( "doc/man/man3/OSSL_STORE_open.3" => [ "doc/man3/OSSL_STORE_open.pod" ], + "doc/man/man3/OSSL_sleep.3" => [ + "doc/man3/OSSL_sleep.pod" + ], "doc/man/man3/OSSL_trace_enabled.3" => [ "doc/man3/OSSL_trace_enabled.pod" ], @@ -14570,6 +16884,9 @@ our %unified_info = ( "doc/man/man3/OpenSSL_version.3" => [ "doc/man3/OpenSSL_version.pod" ], + "doc/man/man3/PBMAC1_get1_pbkdf2_param.3" => [ + "doc/man3/PBMAC1_get1_pbkdf2_param.pod" + ], "doc/man/man3/PEM_X509_INFO_read_bio_ex.3" => [ "doc/man3/PEM_X509_INFO_read_bio_ex.pod" ], @@ -14606,6 +16923,9 @@ our %unified_info = ( "doc/man/man3/PKCS12_SAFEBAG_get1_cert.3" => [ "doc/man3/PKCS12_SAFEBAG_get1_cert.pod" ], + "doc/man/man3/PKCS12_SAFEBAG_set0_attrs.3" => [ + "doc/man3/PKCS12_SAFEBAG_set0_attrs.pod" + ], "doc/man/man3/PKCS12_add1_attr_by_NID.3" => [ "doc/man3/PKCS12_add1_attr_by_NID.pod" ], @@ -14879,6 +17199,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set0_CA_list.3" => [ "doc/man3/SSL_CTX_set0_CA_list.pod" ], + "doc/man/man3/SSL_CTX_set1_cert_comp_preference.3" => [ + "doc/man3/SSL_CTX_set1_cert_comp_preference.pod" + ], "doc/man/man3/SSL_CTX_set1_curves.3" => [ "doc/man3/SSL_CTX_set1_curves.pod" ], @@ -14918,6 +17241,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_default_passwd_cb.3" => [ "doc/man3/SSL_CTX_set_default_passwd_cb.pod" ], + "doc/man/man3/SSL_CTX_set_domain_flags.3" => [ + "doc/man3/SSL_CTX_set_domain_flags.pod" + ], "doc/man/man3/SSL_CTX_set_generate_session_id.3" => [ "doc/man3/SSL_CTX_set_generate_session_id.pod" ], @@ -14939,6 +17265,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_msg_callback.3" => [ "doc/man3/SSL_CTX_set_msg_callback.pod" ], + "doc/man/man3/SSL_CTX_set_new_pending_conn_cb.3" => [ + "doc/man3/SSL_CTX_set_new_pending_conn_cb.pod" + ], "doc/man/man3/SSL_CTX_set_num_tickets.3" => [ "doc/man3/SSL_CTX_set_num_tickets.pod" ], @@ -15053,6 +17382,9 @@ our %unified_info = ( "doc/man/man3/SSL_accept.3" => [ "doc/man3/SSL_accept.pod" ], + "doc/man/man3/SSL_accept_stream.3" => [ + "doc/man3/SSL_accept_stream.pod" + ], "doc/man/man3/SSL_alert_type_string.3" => [ "doc/man3/SSL_alert_type_string.pod" ], @@ -15080,9 +17412,21 @@ our %unified_info = ( "doc/man/man3/SSL_free.3" => [ "doc/man3/SSL_free.pod" ], + "doc/man/man3/SSL_get0_connection.3" => [ + "doc/man3/SSL_get0_connection.pod" + ], + "doc/man/man3/SSL_get0_group_name.3" => [ + "doc/man3/SSL_get0_group_name.pod" + ], + "doc/man/man3/SSL_get0_peer_rpk.3" => [ + "doc/man3/SSL_get0_peer_rpk.pod" + ], "doc/man/man3/SSL_get0_peer_scts.3" => [ "doc/man3/SSL_get0_peer_scts.pod" ], + "doc/man/man3/SSL_get1_builtin_sigalgs.3" => [ + "doc/man3/SSL_get1_builtin_sigalgs.pod" + ], "doc/man/man3/SSL_get_SSL_CTX.3" => [ "doc/man3/SSL_get_SSL_CTX.pod" ], @@ -15098,6 +17442,9 @@ our %unified_info = ( "doc/man/man3/SSL_get_client_random.3" => [ "doc/man3/SSL_get_client_random.pod" ], + "doc/man/man3/SSL_get_conn_close_info.3" => [ + "doc/man3/SSL_get_conn_close_info.pod" + ], "doc/man/man3/SSL_get_current_cipher.3" => [ "doc/man3/SSL_get_current_cipher.pod" ], @@ -15107,12 +17454,18 @@ our %unified_info = ( "doc/man/man3/SSL_get_error.3" => [ "doc/man3/SSL_get_error.pod" ], + "doc/man/man3/SSL_get_event_timeout.3" => [ + "doc/man3/SSL_get_event_timeout.pod" + ], "doc/man/man3/SSL_get_extms_support.3" => [ "doc/man3/SSL_get_extms_support.pod" ], "doc/man/man3/SSL_get_fd.3" => [ "doc/man3/SSL_get_fd.pod" ], + "doc/man/man3/SSL_get_handshake_rtt.3" => [ + "doc/man3/SSL_get_handshake_rtt.pod" + ], "doc/man/man3/SSL_get_peer_cert_chain.3" => [ "doc/man3/SSL_get_peer_cert_chain.pod" ], @@ -15131,12 +17484,24 @@ our %unified_info = ( "doc/man/man3/SSL_get_rbio.3" => [ "doc/man3/SSL_get_rbio.pod" ], + "doc/man/man3/SSL_get_rpoll_descriptor.3" => [ + "doc/man3/SSL_get_rpoll_descriptor.pod" + ], "doc/man/man3/SSL_get_session.3" => [ "doc/man3/SSL_get_session.pod" ], "doc/man/man3/SSL_get_shared_sigalgs.3" => [ "doc/man3/SSL_get_shared_sigalgs.pod" ], + "doc/man/man3/SSL_get_stream_id.3" => [ + "doc/man3/SSL_get_stream_id.pod" + ], + "doc/man/man3/SSL_get_stream_read_state.3" => [ + "doc/man3/SSL_get_stream_read_state.pod" + ], + "doc/man/man3/SSL_get_value_uint.3" => [ + "doc/man3/SSL_get_value_uint.pod" + ], "doc/man/man3/SSL_get_verify_result.3" => [ "doc/man3/SSL_get_verify_result.pod" ], @@ -15146,9 +17511,15 @@ our %unified_info = ( "doc/man/man3/SSL_group_to_name.3" => [ "doc/man3/SSL_group_to_name.pod" ], + "doc/man/man3/SSL_handle_events.3" => [ + "doc/man3/SSL_handle_events.pod" + ], "doc/man/man3/SSL_in_init.3" => [ "doc/man3/SSL_in_init.pod" ], + "doc/man/man3/SSL_inject_net_dgram.3" => [ + "doc/man3/SSL_inject_net_dgram.pod" + ], "doc/man/man3/SSL_key_update.3" => [ "doc/man3/SSL_key_update.pod" ], @@ -15161,9 +17532,21 @@ our %unified_info = ( "doc/man/man3/SSL_new.3" => [ "doc/man3/SSL_new.pod" ], + "doc/man/man3/SSL_new_domain.3" => [ + "doc/man3/SSL_new_domain.pod" + ], + "doc/man/man3/SSL_new_listener.3" => [ + "doc/man3/SSL_new_listener.pod" + ], + "doc/man/man3/SSL_new_stream.3" => [ + "doc/man3/SSL_new_stream.pod" + ], "doc/man/man3/SSL_pending.3" => [ "doc/man3/SSL_pending.pod" ], + "doc/man/man3/SSL_poll.3" => [ + "doc/man3/SSL_poll.pod" + ], "doc/man/man3/SSL_read.3" => [ "doc/man3/SSL_read.pod" ], @@ -15179,24 +17562,45 @@ our %unified_info = ( "doc/man/man3/SSL_set1_host.3" => [ "doc/man3/SSL_set1_host.pod" ], + "doc/man/man3/SSL_set1_initial_peer_addr.3" => [ + "doc/man3/SSL_set1_initial_peer_addr.pod" + ], + "doc/man/man3/SSL_set1_server_cert_type.3" => [ + "doc/man3/SSL_set1_server_cert_type.pod" + ], "doc/man/man3/SSL_set_async_callback.3" => [ "doc/man3/SSL_set_async_callback.pod" ], "doc/man/man3/SSL_set_bio.3" => [ "doc/man3/SSL_set_bio.pod" ], + "doc/man/man3/SSL_set_blocking_mode.3" => [ + "doc/man3/SSL_set_blocking_mode.pod" + ], "doc/man/man3/SSL_set_connect_state.3" => [ "doc/man3/SSL_set_connect_state.pod" ], + "doc/man/man3/SSL_set_default_stream_mode.3" => [ + "doc/man3/SSL_set_default_stream_mode.pod" + ], "doc/man/man3/SSL_set_fd.3" => [ "doc/man3/SSL_set_fd.pod" ], + "doc/man/man3/SSL_set_incoming_stream_policy.3" => [ + "doc/man3/SSL_set_incoming_stream_policy.pod" + ], + "doc/man/man3/SSL_set_quic_tls_cbs.3" => [ + "doc/man3/SSL_set_quic_tls_cbs.pod" + ], "doc/man/man3/SSL_set_retry_verify.3" => [ "doc/man3/SSL_set_retry_verify.pod" ], "doc/man/man3/SSL_set_session.3" => [ "doc/man3/SSL_set_session.pod" ], + "doc/man/man3/SSL_set_session_secret_cb.3" => [ + "doc/man3/SSL_set_session_secret_cb.pod" + ], "doc/man/man3/SSL_set_shutdown.3" => [ "doc/man3/SSL_set_shutdown.pod" ], @@ -15209,6 +17613,12 @@ our %unified_info = ( "doc/man/man3/SSL_state_string.3" => [ "doc/man3/SSL_state_string.pod" ], + "doc/man/man3/SSL_stream_conclude.3" => [ + "doc/man3/SSL_stream_conclude.pod" + ], + "doc/man/man3/SSL_stream_reset.3" => [ + "doc/man3/SSL_stream_reset.pod" + ], "doc/man/man3/SSL_want.3" => [ "doc/man3/SSL_want.pod" ], @@ -15218,8 +17628,8 @@ our %unified_info = ( "doc/man/man3/TS_RESP_CTX_new.3" => [ "doc/man3/TS_RESP_CTX_new.pod" ], - "doc/man/man3/TS_VERIFY_CTX_set_certs.3" => [ - "doc/man3/TS_VERIFY_CTX_set_certs.pod" + "doc/man/man3/TS_VERIFY_CTX.3" => [ + "doc/man3/TS_VERIFY_CTX.pod" ], "doc/man/man3/UI_STRING.3" => [ "doc/man3/UI_STRING.pod" @@ -15239,6 +17649,21 @@ our %unified_info = ( "doc/man/man3/X509V3_set_ctx.3" => [ "doc/man3/X509V3_set_ctx.pod" ], + "doc/man/man3/X509_ACERT_add1_attr.3" => [ + "doc/man3/X509_ACERT_add1_attr.pod" + ], + "doc/man/man3/X509_ACERT_add_attr_nconf.3" => [ + "doc/man3/X509_ACERT_add_attr_nconf.pod" + ], + "doc/man/man3/X509_ACERT_get0_holder_baseCertId.3" => [ + "doc/man3/X509_ACERT_get0_holder_baseCertId.pod" + ], + "doc/man/man3/X509_ACERT_get_attr.3" => [ + "doc/man3/X509_ACERT_get_attr.pod" + ], + "doc/man/man3/X509_ACERT_print_ex.3" => [ + "doc/man3/X509_ACERT_print_ex.pod" + ], "doc/man/man3/X509_ALGOR_dup.3" => [ "doc/man3/X509_ALGOR_dup.pod" ], @@ -15287,6 +17712,9 @@ our %unified_info = ( "doc/man/man3/X509_SIG_get0.3" => [ "doc/man3/X509_SIG_get0.pod" ], + "doc/man/man3/X509_STORE_CTX_get_by_subject.3" => [ + "doc/man3/X509_STORE_CTX_get_by_subject.pod" + ], "doc/man/man3/X509_STORE_CTX_get_error.3" => [ "doc/man3/X509_STORE_CTX_get_error.pod" ], @@ -15353,6 +17781,9 @@ our %unified_info = ( "doc/man/man3/X509_get0_uids.3" => [ "doc/man3/X509_get0_uids.pod" ], + "doc/man/man3/X509_get_default_cert_file.3" => [ + "doc/man3/X509_get_default_cert_file.pod" + ], "doc/man/man3/X509_get_extension_flags.3" => [ "doc/man3/X509_get_extension_flags.pod" ], @@ -15476,9 +17907,15 @@ our %unified_info = ( "doc/man/man7/EVP_CIPHER-SM4.7" => [ "doc/man7/EVP_CIPHER-SM4.pod" ], + "doc/man/man7/EVP_KDF-ARGON2.7" => [ + "doc/man7/EVP_KDF-ARGON2.pod" + ], "doc/man/man7/EVP_KDF-HKDF.7" => [ "doc/man7/EVP_KDF-HKDF.pod" ], + "doc/man/man7/EVP_KDF-HMAC-DRBG.7" => [ + "doc/man7/EVP_KDF-HMAC-DRBG.pod" + ], "doc/man/man7/EVP_KDF-KB.7" => [ "doc/man7/EVP_KDF-KB.pod" ], @@ -15494,6 +17931,9 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-PKCS12KDF.7" => [ "doc/man7/EVP_KDF-PKCS12KDF.pod" ], + "doc/man/man7/EVP_KDF-PVKKDF.7" => [ + "doc/man7/EVP_KDF-PVKKDF.pod" + ], "doc/man/man7/EVP_KDF-SCRYPT.7" => [ "doc/man7/EVP_KDF-SCRYPT.pod" ], @@ -15518,9 +17958,18 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-X963.7" => [ "doc/man7/EVP_KDF-X963.pod" ], + "doc/man/man7/EVP_KEM-EC.7" => [ + "doc/man7/EVP_KEM-EC.pod" + ], + "doc/man/man7/EVP_KEM-ML-KEM.7" => [ + "doc/man7/EVP_KEM-ML-KEM.pod" + ], "doc/man/man7/EVP_KEM-RSA.7" => [ "doc/man7/EVP_KEM-RSA.pod" ], + "doc/man/man7/EVP_KEM-X25519.7" => [ + "doc/man7/EVP_KEM-X25519.pod" + ], "doc/man/man7/EVP_KEYEXCH-DH.7" => [ "doc/man7/EVP_KEYEXCH-DH.pod" ], @@ -15554,6 +18003,9 @@ our %unified_info = ( "doc/man/man7/EVP_MD-BLAKE2.7" => [ "doc/man7/EVP_MD-BLAKE2.pod" ], + "doc/man/man7/EVP_MD-KECCAK.7" => [ + "doc/man7/EVP_MD-KECCAK.pod" + ], "doc/man/man7/EVP_MD-MD2.7" => [ "doc/man7/EVP_MD-MD2.pod" ], @@ -15611,15 +18063,27 @@ our %unified_info = ( "doc/man/man7/EVP_PKEY-HMAC.7" => [ "doc/man7/EVP_PKEY-HMAC.pod" ], + "doc/man/man7/EVP_PKEY-ML-DSA.7" => [ + "doc/man7/EVP_PKEY-ML-DSA.pod" + ], + "doc/man/man7/EVP_PKEY-ML-KEM.7" => [ + "doc/man7/EVP_PKEY-ML-KEM.pod" + ], "doc/man/man7/EVP_PKEY-RSA.7" => [ "doc/man7/EVP_PKEY-RSA.pod" ], + "doc/man/man7/EVP_PKEY-SLH-DSA.7" => [ + "doc/man7/EVP_PKEY-SLH-DSA.pod" + ], "doc/man/man7/EVP_PKEY-SM2.7" => [ "doc/man7/EVP_PKEY-SM2.pod" ], "doc/man/man7/EVP_PKEY-X25519.7" => [ "doc/man7/EVP_PKEY-X25519.pod" ], + "doc/man/man7/EVP_RAND-CRNG-TEST.7" => [ + "doc/man7/EVP_RAND-CRNG-TEST.pod" + ], "doc/man/man7/EVP_RAND-CTR-DRBG.7" => [ "doc/man7/EVP_RAND-CTR-DRBG.pod" ], @@ -15629,6 +18093,9 @@ our %unified_info = ( "doc/man/man7/EVP_RAND-HMAC-DRBG.7" => [ "doc/man7/EVP_RAND-HMAC-DRBG.pod" ], + "doc/man/man7/EVP_RAND-JITTER.7" => [ + "doc/man7/EVP_RAND-JITTER.pod" + ], "doc/man/man7/EVP_RAND-SEED-SRC.7" => [ "doc/man7/EVP_RAND-SEED-SRC.pod" ], @@ -15650,9 +18117,15 @@ our %unified_info = ( "doc/man/man7/EVP_SIGNATURE-HMAC.7" => [ "doc/man7/EVP_SIGNATURE-HMAC.pod" ], + "doc/man/man7/EVP_SIGNATURE-ML-DSA.7" => [ + "doc/man7/EVP_SIGNATURE-ML-DSA.pod" + ], "doc/man/man7/EVP_SIGNATURE-RSA.7" => [ "doc/man7/EVP_SIGNATURE-RSA.pod" ], + "doc/man/man7/EVP_SIGNATURE-SLH-DSA.7" => [ + "doc/man7/EVP_SIGNATURE-SLH-DSA.pod" + ], "doc/man/man7/OSSL_PROVIDER-FIPS.7" => [ "doc/man7/OSSL_PROVIDER-FIPS.pod" ], @@ -15668,6 +18141,9 @@ our %unified_info = ( "doc/man/man7/OSSL_PROVIDER-null.7" => [ "doc/man7/OSSL_PROVIDER-null.pod" ], + "doc/man/man7/OSSL_STORE-winstore.7" => [ + "doc/man7/OSSL_STORE-winstore.pod" + ], "doc/man/man7/RAND.7" => [ "doc/man7/RAND.pod" ], @@ -15680,9 +18156,6 @@ our %unified_info = ( "doc/man/man7/bio.7" => [ "doc/man7/bio.pod" ], - "doc/man/man7/crypto.7" => [ - "doc/man7/crypto.pod" - ], "doc/man/man7/ct.7" => [ "doc/man7/ct.pod" ], @@ -15713,9 +18186,6 @@ our %unified_info = ( "doc/man/man7/life_cycle-rand.7" => [ "doc/man7/life_cycle-rand.pod" ], - "doc/man/man7/migration_guide.7" => [ - "doc/man7/migration_guide.pod" - ], "doc/man/man7/openssl-core.h.7" => [ "doc/man7/openssl-core.h.pod" ], @@ -15731,12 +18201,66 @@ our %unified_info = ( "doc/man/man7/openssl-glossary.7" => [ "doc/man7/openssl-glossary.pod" ], + "doc/man/man7/openssl-qlog.7" => [ + "doc/man7/openssl-qlog.pod" + ], + "doc/man/man7/openssl-quic-concurrency.7" => [ + "doc/man7/openssl-quic-concurrency.pod" + ], + "doc/man/man7/openssl-quic.7" => [ + "doc/man7/openssl-quic.pod" + ], "doc/man/man7/openssl-threads.7" => [ "doc/man7/openssl-threads.pod" ], "doc/man/man7/openssl_user_macros.7" => [ "doc/man7/openssl_user_macros.pod" ], + "doc/man/man7/ossl-guide-introduction.7" => [ + "doc/man7/ossl-guide-introduction.pod" + ], + "doc/man/man7/ossl-guide-libcrypto-introduction.7" => [ + "doc/man7/ossl-guide-libcrypto-introduction.pod" + ], + "doc/man/man7/ossl-guide-libraries-introduction.7" => [ + "doc/man7/ossl-guide-libraries-introduction.pod" + ], + "doc/man/man7/ossl-guide-libssl-introduction.7" => [ + "doc/man7/ossl-guide-libssl-introduction.pod" + ], + "doc/man/man7/ossl-guide-migration.7" => [ + "doc/man7/ossl-guide-migration.pod" + ], + "doc/man/man7/ossl-guide-quic-client-block.7" => [ + "doc/man7/ossl-guide-quic-client-block.pod" + ], + "doc/man/man7/ossl-guide-quic-client-non-block.7" => [ + "doc/man7/ossl-guide-quic-client-non-block.pod" + ], + "doc/man/man7/ossl-guide-quic-introduction.7" => [ + "doc/man7/ossl-guide-quic-introduction.pod" + ], + "doc/man/man7/ossl-guide-quic-multi-stream.7" => [ + "doc/man7/ossl-guide-quic-multi-stream.pod" + ], + "doc/man/man7/ossl-guide-quic-server-block.7" => [ + "doc/man7/ossl-guide-quic-server-block.pod" + ], + "doc/man/man7/ossl-guide-quic-server-non-block.7" => [ + "doc/man7/ossl-guide-quic-server-non-block.pod" + ], + "doc/man/man7/ossl-guide-tls-client-block.7" => [ + "doc/man7/ossl-guide-tls-client-block.pod" + ], + "doc/man/man7/ossl-guide-tls-client-non-block.7" => [ + "doc/man7/ossl-guide-tls-client-non-block.pod" + ], + "doc/man/man7/ossl-guide-tls-introduction.7" => [ + "doc/man7/ossl-guide-tls-introduction.pod" + ], + "doc/man/man7/ossl-guide-tls-server-block.7" => [ + "doc/man7/ossl-guide-tls-server-block.pod" + ], "doc/man/man7/ossl_store-file.7" => [ "doc/man7/ossl_store-file.pod" ], @@ -15791,6 +18315,9 @@ our %unified_info = ( "doc/man/man7/provider-signature.7" => [ "doc/man7/provider-signature.pod" ], + "doc/man/man7/provider-skeymgmt.7" => [ + "doc/man7/provider-skeymgmt.pod" + ], "doc/man/man7/provider-storemgmt.7" => [ "doc/man7/provider-storemgmt.pod" ], @@ -15800,9 +18327,6 @@ our %unified_info = ( "doc/man/man7/proxy-certificates.7" => [ "doc/man7/proxy-certificates.pod" ], - "doc/man/man7/ssl.7" => [ - "doc/man7/ssl.pod" - ], "doc/man/man7/x509.7" => [ "doc/man7/x509.pod" ], @@ -15938,6 +18462,9 @@ our %unified_info = ( "doc/man1/openssl-sess_id.pod" => [ "doc/man1/openssl-sess_id.pod.in" ], + "doc/man1/openssl-skeyutl.pod" => [ + "doc/man1/openssl-skeyutl.pod.in" + ], "doc/man1/openssl-smime.pod" => [ "doc/man1/openssl-smime.pod.in" ], @@ -15974,12 +18501,30 @@ our %unified_info = ( "engines/e_padlock-x86_64.s" => [ "engines/asm/e_padlock-x86_64.pl" ], + "exporters/OpenSSLConfig.cmake" => [ + "exporters/cmake/OpenSSLConfig.cmake.in" + ], + "exporters/OpenSSLConfigVersion.cmake" => [ + "exporters/cmake/OpenSSLConfigVersion.cmake.in" + ], + "exporters/libcrypto.pc" => [ + "exporters/pkg-config/libcrypto.pc.in" + ], + "exporters/libssl.pc" => [ + "exporters/pkg-config/libssl.pc.in" + ], + "exporters/openssl.pc" => [ + "exporters/pkg-config/openssl.pc.in" + ], "include/crypto/bn_conf.h" => [ "include/crypto/bn_conf.h.in" ], "include/crypto/dso_conf.h" => [ "include/crypto/dso_conf.h.in" ], + "include/internal/param_names.h" => [ + "include/internal/param_names.h.in" + ], "include/openssl/asn1.h" => [ "include/openssl/asn1.h.in" ], @@ -15995,12 +18540,18 @@ our %unified_info = ( "include/openssl/cms.h" => [ "include/openssl/cms.h.in" ], + "include/openssl/comp.h" => [ + "include/openssl/comp.h.in" + ], "include/openssl/conf.h" => [ "include/openssl/conf.h.in" ], "include/openssl/configuration.h" => [ "include/openssl/configuration.h.in" ], + "include/openssl/core_names.h" => [ + "include/openssl/core_names.h.in" + ], "include/openssl/crmf.h" => [ "include/openssl/crmf.h.in" ], @@ -16049,12 +18600,39 @@ our %unified_info = ( "include/openssl/x509.h" => [ "include/openssl/x509.h.in" ], + "include/openssl/x509_acert.h" => [ + "include/openssl/x509_acert.h.in" + ], "include/openssl/x509_vfy.h" => [ "include/openssl/x509_vfy.h.in" ], "include/openssl/x509v3.h" => [ "include/openssl/x509v3.h.in" ], + "installdata.pm" => [ + "util/mkinstallvars.pl", + "\"PREFIX=\$(INSTALLTOP)\"", + "BINDIR=bin", + "\"LIBDIR=\$(LIBDIR)\"", + "\"libdir=\$(libdir)\"", + "INCLUDEDIR=include", + "APPLINKDIR=include/openssl", + "\"ENGINESDIR=\$(ENGINESDIR)\"", + "\"MODULESDIR=\$(MODULESDIR)\"", + "\"PKGCONFIGDIR=\$(PKGCONFIGDIR)\"", + "\"CMAKECONFIGDIR=\$(CMAKECONFIGDIR)\"", + "\"LDLIBS=\$(LIB_EX_LIBS)\"", + "\"VERSION=\$(VERSION)\"" + ], + "libcrypto.pc" => [ + "exporters/pkg-config/libcrypto.pc.in" + ], + "libssl.pc" => [ + "exporters/pkg-config/libssl.pc.in" + ], + "openssl.pc" => [ + "exporters/pkg-config/openssl.pc.in" + ], "providers/common/der/der_digests_gen.c" => [ "providers/common/der/der_digests_gen.c.in" ], @@ -16067,9 +18645,15 @@ our %unified_info = ( "providers/common/der/der_ecx_gen.c" => [ "providers/common/der/der_ecx_gen.c.in" ], + "providers/common/der/der_ml_dsa_gen.c" => [ + "providers/common/der/der_ml_dsa_gen.c.in" + ], "providers/common/der/der_rsa_gen.c" => [ "providers/common/der/der_rsa_gen.c.in" ], + "providers/common/der/der_slh_dsa_gen.c" => [ + "providers/common/der/der_slh_dsa_gen.c.in" + ], "providers/common/der/der_sm2_gen.c" => [ "providers/common/der/der_sm2_gen.c.in" ], @@ -16088,9 +18672,15 @@ our %unified_info = ( "providers/common/include/prov/der_ecx.h" => [ "providers/common/include/prov/der_ecx.h.in" ], + "providers/common/include/prov/der_ml_dsa.h" => [ + "providers/common/include/prov/der_ml_dsa.h.in" + ], "providers/common/include/prov/der_rsa.h" => [ "providers/common/include/prov/der_rsa.h.in" ], + "providers/common/include/prov/der_slh_dsa.h" => [ + "providers/common/include/prov/der_slh_dsa.h.in" + ], "providers/common/include/prov/der_sm2.h" => [ "providers/common/include/prov/der_sm2.h.in" ], @@ -16126,6 +18716,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "buffer" ], + "test/buildtest_byteorder.c" => [ + "test/generate_buildtest.pl", + "byteorder" + ], "test/buildtest_camellia.c" => [ "test/generate_buildtest.pl", "camellia" @@ -16158,10 +18752,6 @@ our %unified_info = ( "test/generate_buildtest.pl", "core_dispatch" ], - "test/buildtest_core_names.c" => [ - "test/generate_buildtest.pl", - "core_names" - ], "test/buildtest_core_object.c" => [ "test/generate_buildtest.pl", "core_object" @@ -16194,6 +18784,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "e_os2" ], + "test/buildtest_e_ostime.c" => [ + "test/generate_buildtest.pl", + "e_ostime" + ], "test/buildtest_ebcdic.c" => [ "test/generate_buildtest.pl", "ebcdic" @@ -16230,6 +18824,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "hmac" ], + "test/buildtest_hpke.c" => [ + "test/generate_buildtest.pl", + "hpke" + ], "test/buildtest_http.c" => [ "test/generate_buildtest.pl", "http" @@ -16238,6 +18836,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "idea" ], + "test/buildtest_indicator.c" => [ + "test/generate_buildtest.pl", + "indicator" + ], "test/buildtest_kdf.c" => [ "test/generate_buildtest.pl", "kdf" @@ -16258,6 +18860,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "mdc2" ], + "test/buildtest_ml_kem.c" => [ + "test/generate_buildtest.pl", + "ml_kem" + ], "test/buildtest_modes.c" => [ "test/generate_buildtest.pl", "modes" @@ -16298,6 +18904,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "provider" ], + "test/buildtest_quic.c" => [ + "test/generate_buildtest.pl", + "quic" + ], "test/buildtest_rand.c" => [ "test/generate_buildtest.pl", "rand" @@ -16354,6 +18964,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "symhacks" ], + "test/buildtest_thread.c" => [ + "test/generate_buildtest.pl", + "thread" + ], "test/buildtest_tls1.c" => [ "test/generate_buildtest.pl", "tls1" @@ -16428,6 +19042,7 @@ our %unified_info = ( "doc/html/man1/openssl-s_server.html", "doc/html/man1/openssl-s_time.html", "doc/html/man1/openssl-sess_id.html", + "doc/html/man1/openssl-skeyutl.html", "doc/html/man1/openssl-smime.html", "doc/html/man1/openssl-speed.html", "doc/html/man1/openssl-spkac.html", @@ -16477,6 +19092,7 @@ our %unified_info = ( "doc/html/man3/BIO_find_type.html", "doc/html/man3/BIO_get_data.html", "doc/html/man3/BIO_get_ex_new_index.html", + "doc/html/man3/BIO_get_rpoll_descriptor.html", "doc/html/man3/BIO_meth_new.html", "doc/html/man3/BIO_new.html", "doc/html/man3/BIO_new_CMS.html", @@ -16489,11 +19105,13 @@ our %unified_info = ( "doc/html/man3/BIO_s_connect.html", "doc/html/man3/BIO_s_core.html", "doc/html/man3/BIO_s_datagram.html", + "doc/html/man3/BIO_s_dgram_pair.html", "doc/html/man3/BIO_s_fd.html", "doc/html/man3/BIO_s_file.html", "doc/html/man3/BIO_s_mem.html", "doc/html/man3/BIO_s_null.html", "doc/html/man3/BIO_s_socket.html", + "doc/html/man3/BIO_sendmmsg.html", "doc/html/man3/BIO_set_callback.html", "doc/html/man3/BIO_should_retry.html", "doc/html/man3/BIO_socket_wait.html", @@ -16518,6 +19136,7 @@ our %unified_info = ( "doc/html/man3/BN_swap.html", "doc/html/man3/BN_zero.html", "doc/html/man3/BUF_MEM_new.html", + "doc/html/man3/CMAC_CTX.html", "doc/html/man3/CMS_EncryptedData_decrypt.html", "doc/html/man3/CMS_EncryptedData_encrypt.html", "doc/html/man3/CMS_EnvelopedData_create.html", @@ -16540,6 +19159,7 @@ our %unified_info = ( "doc/html/man3/CMS_uncompress.html", "doc/html/man3/CMS_verify.html", "doc/html/man3/CMS_verify_receipt.html", + "doc/html/man3/COMP_CTX_new.html", "doc/html/man3/CONF_modules_free.html", "doc/html/man3/CONF_modules_load_file.html", "doc/html/man3/CRYPTO_THREAD_run_once.html", @@ -16573,6 +19193,8 @@ our %unified_info = ( "doc/html/man3/DSA_size.html", "doc/html/man3/DTLS_get_data_mtu.html", "doc/html/man3/DTLS_set_timer_cb.html", + "doc/html/man3/DTLSv1_get_timeout.html", + "doc/html/man3/DTLSv1_handle_timeout.html", "doc/html/man3/DTLSv1_listen.html", "doc/html/man3/ECDSA_SIG_new.html", "doc/html/man3/ECDSA_sign.html", @@ -16619,6 +19241,7 @@ our %unified_info = ( "doc/html/man3/EVP_PKEY_CTX_ctrl.html", "doc/html/man3/EVP_PKEY_CTX_get0_libctx.html", "doc/html/man3/EVP_PKEY_CTX_get0_pkey.html", + "doc/html/man3/EVP_PKEY_CTX_get_algor.html", "doc/html/man3/EVP_PKEY_CTX_new.html", "doc/html/man3/EVP_PKEY_CTX_set1_pbe_pass.html", "doc/html/man3/EVP_PKEY_CTX_set_hkdf_md.html", @@ -16658,6 +19281,8 @@ our %unified_info = ( "doc/html/man3/EVP_PKEY_verify_recover.html", "doc/html/man3/EVP_RAND.html", "doc/html/man3/EVP_SIGNATURE.html", + "doc/html/man3/EVP_SKEY.html", + "doc/html/man3/EVP_SKEYMGMT.html", "doc/html/man3/EVP_SealInit.html", "doc/html/man3/EVP_SignInit.html", "doc/html/man3/EVP_VerifyInit.html", @@ -16687,6 +19312,7 @@ our %unified_info = ( "doc/html/man3/EVP_sm3.html", "doc/html/man3/EVP_sm4_cbc.html", "doc/html/man3/EVP_whirlpool.html", + "doc/html/man3/GENERAL_NAME.html", "doc/html/man3/HMAC.html", "doc/html/man3/MD5.html", "doc/html/man3/MDC2_Init.html", @@ -16711,14 +19337,18 @@ our %unified_info = ( "doc/html/man3/OPENSSL_init_ssl.html", "doc/html/man3/OPENSSL_instrument_bus.html", "doc/html/man3/OPENSSL_load_builtin_modules.html", + "doc/html/man3/OPENSSL_load_u16_le.html", "doc/html/man3/OPENSSL_malloc.html", + "doc/html/man3/OPENSSL_riscvcap.html", "doc/html/man3/OPENSSL_s390xcap.html", "doc/html/man3/OPENSSL_secure_malloc.html", "doc/html/man3/OPENSSL_strcasecmp.html", "doc/html/man3/OSSL_ALGORITHM.html", "doc/html/man3/OSSL_CALLBACK.html", + "doc/html/man3/OSSL_CMP_ATAV_set0.html", "doc/html/man3/OSSL_CMP_CTX_new.html", "doc/html/man3/OSSL_CMP_HDR_get0_transactionID.html", + "doc/html/man3/OSSL_CMP_ITAV_new_caCerts.html", "doc/html/man3/OSSL_CMP_ITAV_set0.html", "doc/html/man3/OSSL_CMP_MSG_get0_header.html", "doc/html/man3/OSSL_CMP_MSG_http_perform.html", @@ -16742,18 +19372,27 @@ our %unified_info = ( "doc/html/man3/OSSL_ENCODER_CTX.html", "doc/html/man3/OSSL_ENCODER_CTX_new_for_pkey.html", "doc/html/man3/OSSL_ENCODER_to_bio.html", + "doc/html/man3/OSSL_ERR_STATE_save.html", "doc/html/man3/OSSL_ESS_check_signing_certs.html", + "doc/html/man3/OSSL_GENERAL_NAMES_print.html", + "doc/html/man3/OSSL_HPKE_CTX_new.html", "doc/html/man3/OSSL_HTTP_REQ_CTX.html", "doc/html/man3/OSSL_HTTP_parse_url.html", "doc/html/man3/OSSL_HTTP_transfer.html", + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX.html", + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX_print.html", + "doc/html/man3/OSSL_INDICATOR_set_callback.html", "doc/html/man3/OSSL_ITEM.html", "doc/html/man3/OSSL_LIB_CTX.html", + "doc/html/man3/OSSL_LIB_CTX_set_conf_diagnostics.html", "doc/html/man3/OSSL_PARAM.html", "doc/html/man3/OSSL_PARAM_BLD.html", "doc/html/man3/OSSL_PARAM_allocate_from_text.html", "doc/html/man3/OSSL_PARAM_dup.html", "doc/html/man3/OSSL_PARAM_int.html", + "doc/html/man3/OSSL_PARAM_print_to_bio.html", "doc/html/man3/OSSL_PROVIDER.html", + "doc/html/man3/OSSL_QUIC_client_method.html", "doc/html/man3/OSSL_SELF_TEST_new.html", "doc/html/man3/OSSL_SELF_TEST_set_callback.html", "doc/html/man3/OSSL_STORE_INFO.html", @@ -16762,11 +19401,13 @@ our %unified_info = ( "doc/html/man3/OSSL_STORE_attach.html", "doc/html/man3/OSSL_STORE_expect.html", "doc/html/man3/OSSL_STORE_open.html", + "doc/html/man3/OSSL_sleep.html", "doc/html/man3/OSSL_trace_enabled.html", "doc/html/man3/OSSL_trace_get_category_num.html", "doc/html/man3/OSSL_trace_set_channel.html", "doc/html/man3/OpenSSL_add_all_algorithms.html", "doc/html/man3/OpenSSL_version.html", + "doc/html/man3/PBMAC1_get1_pbkdf2_param.html", "doc/html/man3/PEM_X509_INFO_read_bio_ex.html", "doc/html/man3/PEM_bytes_read_bio.html", "doc/html/man3/PEM_read.html", @@ -16779,6 +19420,7 @@ our %unified_info = ( "doc/html/man3/PKCS12_SAFEBAG_create_cert.html", "doc/html/man3/PKCS12_SAFEBAG_get0_attrs.html", "doc/html/man3/PKCS12_SAFEBAG_get1_cert.html", + "doc/html/man3/PKCS12_SAFEBAG_set0_attrs.html", "doc/html/man3/PKCS12_add1_attr_by_NID.html", "doc/html/man3/PKCS12_add_CSPName_asc.html", "doc/html/man3/PKCS12_add_cert.html", @@ -16870,6 +19512,7 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_sess_set_get_cb.html", "doc/html/man3/SSL_CTX_sessions.html", "doc/html/man3/SSL_CTX_set0_CA_list.html", + "doc/html/man3/SSL_CTX_set1_cert_comp_preference.html", "doc/html/man3/SSL_CTX_set1_curves.html", "doc/html/man3/SSL_CTX_set1_sigalgs.html", "doc/html/man3/SSL_CTX_set1_verify_cert_store.html", @@ -16883,6 +19526,7 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_ct_validation_callback.html", "doc/html/man3/SSL_CTX_set_ctlog_list_file.html", "doc/html/man3/SSL_CTX_set_default_passwd_cb.html", + "doc/html/man3/SSL_CTX_set_domain_flags.html", "doc/html/man3/SSL_CTX_set_generate_session_id.html", "doc/html/man3/SSL_CTX_set_info_callback.html", "doc/html/man3/SSL_CTX_set_keylog_callback.html", @@ -16890,6 +19534,7 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_min_proto_version.html", "doc/html/man3/SSL_CTX_set_mode.html", "doc/html/man3/SSL_CTX_set_msg_callback.html", + "doc/html/man3/SSL_CTX_set_new_pending_conn_cb.html", "doc/html/man3/SSL_CTX_set_num_tickets.html", "doc/html/man3/SSL_CTX_set_options.html", "doc/html/man3/SSL_CTX_set_psk_client_callback.html", @@ -16928,6 +19573,7 @@ our %unified_info = ( "doc/html/man3/SSL_SESSION_print.html", "doc/html/man3/SSL_SESSION_set1_id.html", "doc/html/man3/SSL_accept.html", + "doc/html/man3/SSL_accept_stream.html", "doc/html/man3/SSL_alert_type_string.html", "doc/html/man3/SSL_alloc_buffers.html", "doc/html/man3/SSL_check_chain.html", @@ -16937,59 +19583,90 @@ our %unified_info = ( "doc/html/man3/SSL_export_keying_material.html", "doc/html/man3/SSL_extension_supported.html", "doc/html/man3/SSL_free.html", + "doc/html/man3/SSL_get0_connection.html", + "doc/html/man3/SSL_get0_group_name.html", + "doc/html/man3/SSL_get0_peer_rpk.html", "doc/html/man3/SSL_get0_peer_scts.html", + "doc/html/man3/SSL_get1_builtin_sigalgs.html", "doc/html/man3/SSL_get_SSL_CTX.html", "doc/html/man3/SSL_get_all_async_fds.html", "doc/html/man3/SSL_get_certificate.html", "doc/html/man3/SSL_get_ciphers.html", "doc/html/man3/SSL_get_client_random.html", + "doc/html/man3/SSL_get_conn_close_info.html", "doc/html/man3/SSL_get_current_cipher.html", "doc/html/man3/SSL_get_default_timeout.html", "doc/html/man3/SSL_get_error.html", + "doc/html/man3/SSL_get_event_timeout.html", "doc/html/man3/SSL_get_extms_support.html", "doc/html/man3/SSL_get_fd.html", + "doc/html/man3/SSL_get_handshake_rtt.html", "doc/html/man3/SSL_get_peer_cert_chain.html", "doc/html/man3/SSL_get_peer_certificate.html", "doc/html/man3/SSL_get_peer_signature_nid.html", "doc/html/man3/SSL_get_peer_tmp_key.html", "doc/html/man3/SSL_get_psk_identity.html", "doc/html/man3/SSL_get_rbio.html", + "doc/html/man3/SSL_get_rpoll_descriptor.html", "doc/html/man3/SSL_get_session.html", "doc/html/man3/SSL_get_shared_sigalgs.html", + "doc/html/man3/SSL_get_stream_id.html", + "doc/html/man3/SSL_get_stream_read_state.html", + "doc/html/man3/SSL_get_value_uint.html", "doc/html/man3/SSL_get_verify_result.html", "doc/html/man3/SSL_get_version.html", "doc/html/man3/SSL_group_to_name.html", + "doc/html/man3/SSL_handle_events.html", "doc/html/man3/SSL_in_init.html", + "doc/html/man3/SSL_inject_net_dgram.html", "doc/html/man3/SSL_key_update.html", "doc/html/man3/SSL_library_init.html", "doc/html/man3/SSL_load_client_CA_file.html", "doc/html/man3/SSL_new.html", + "doc/html/man3/SSL_new_domain.html", + "doc/html/man3/SSL_new_listener.html", + "doc/html/man3/SSL_new_stream.html", "doc/html/man3/SSL_pending.html", + "doc/html/man3/SSL_poll.html", "doc/html/man3/SSL_read.html", "doc/html/man3/SSL_read_early_data.html", "doc/html/man3/SSL_rstate_string.html", "doc/html/man3/SSL_session_reused.html", "doc/html/man3/SSL_set1_host.html", + "doc/html/man3/SSL_set1_initial_peer_addr.html", + "doc/html/man3/SSL_set1_server_cert_type.html", "doc/html/man3/SSL_set_async_callback.html", "doc/html/man3/SSL_set_bio.html", + "doc/html/man3/SSL_set_blocking_mode.html", "doc/html/man3/SSL_set_connect_state.html", + "doc/html/man3/SSL_set_default_stream_mode.html", "doc/html/man3/SSL_set_fd.html", + "doc/html/man3/SSL_set_incoming_stream_policy.html", + "doc/html/man3/SSL_set_quic_tls_cbs.html", "doc/html/man3/SSL_set_retry_verify.html", "doc/html/man3/SSL_set_session.html", + "doc/html/man3/SSL_set_session_secret_cb.html", "doc/html/man3/SSL_set_shutdown.html", "doc/html/man3/SSL_set_verify_result.html", "doc/html/man3/SSL_shutdown.html", "doc/html/man3/SSL_state_string.html", + "doc/html/man3/SSL_stream_conclude.html", + "doc/html/man3/SSL_stream_reset.html", "doc/html/man3/SSL_want.html", "doc/html/man3/SSL_write.html", "doc/html/man3/TS_RESP_CTX_new.html", - "doc/html/man3/TS_VERIFY_CTX_set_certs.html", + "doc/html/man3/TS_VERIFY_CTX.html", "doc/html/man3/UI_STRING.html", "doc/html/man3/UI_UTIL_read_pw.html", "doc/html/man3/UI_create_method.html", "doc/html/man3/UI_new.html", "doc/html/man3/X509V3_get_d2i.html", "doc/html/man3/X509V3_set_ctx.html", + "doc/html/man3/X509_ACERT_add1_attr.html", + "doc/html/man3/X509_ACERT_add_attr_nconf.html", + "doc/html/man3/X509_ACERT_get0_holder_baseCertId.html", + "doc/html/man3/X509_ACERT_get_attr.html", + "doc/html/man3/X509_ACERT_print_ex.html", "doc/html/man3/X509_ALGOR_dup.html", "doc/html/man3/X509_ATTRIBUTE.html", "doc/html/man3/X509_CRL_get0_by_serial.html", @@ -17006,6 +19683,7 @@ our %unified_info = ( "doc/html/man3/X509_REQ_get_attr.html", "doc/html/man3/X509_REQ_get_extensions.html", "doc/html/man3/X509_SIG_get0.html", + "doc/html/man3/X509_STORE_CTX_get_by_subject.html", "doc/html/man3/X509_STORE_CTX_get_error.html", "doc/html/man3/X509_STORE_CTX_new.html", "doc/html/man3/X509_STORE_CTX_set_verify_cb.html", @@ -17028,6 +19706,7 @@ our %unified_info = ( "doc/html/man3/X509_get0_notBefore.html", "doc/html/man3/X509_get0_signature.html", "doc/html/man3/X509_get0_uids.html", + "doc/html/man3/X509_get_default_cert_file.html", "doc/html/man3/X509_get_extension_flags.html", "doc/html/man3/X509_get_pubkey.html", "doc/html/man3/X509_get_serialNumber.html", @@ -17073,12 +19752,15 @@ our %unified_info = ( "doc/html/man7/EVP_CIPHER-RC5.html", "doc/html/man7/EVP_CIPHER-SEED.html", "doc/html/man7/EVP_CIPHER-SM4.html", + "doc/html/man7/EVP_KDF-ARGON2.html", "doc/html/man7/EVP_KDF-HKDF.html", + "doc/html/man7/EVP_KDF-HMAC-DRBG.html", "doc/html/man7/EVP_KDF-KB.html", "doc/html/man7/EVP_KDF-KRB5KDF.html", "doc/html/man7/EVP_KDF-PBKDF1.html", "doc/html/man7/EVP_KDF-PBKDF2.html", "doc/html/man7/EVP_KDF-PKCS12KDF.html", + "doc/html/man7/EVP_KDF-PVKKDF.html", "doc/html/man7/EVP_KDF-SCRYPT.html", "doc/html/man7/EVP_KDF-SS.html", "doc/html/man7/EVP_KDF-SSHKDF.html", @@ -17087,7 +19769,10 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-X942-ASN1.html", "doc/html/man7/EVP_KDF-X942-CONCAT.html", "doc/html/man7/EVP_KDF-X963.html", + "doc/html/man7/EVP_KEM-EC.html", + "doc/html/man7/EVP_KEM-ML-KEM.html", "doc/html/man7/EVP_KEM-RSA.html", + "doc/html/man7/EVP_KEM-X25519.html", "doc/html/man7/EVP_KEYEXCH-DH.html", "doc/html/man7/EVP_KEYEXCH-ECDH.html", "doc/html/man7/EVP_KEYEXCH-X25519.html", @@ -17099,6 +19784,7 @@ our %unified_info = ( "doc/html/man7/EVP_MAC-Poly1305.html", "doc/html/man7/EVP_MAC-Siphash.html", "doc/html/man7/EVP_MD-BLAKE2.html", + "doc/html/man7/EVP_MD-KECCAK.html", "doc/html/man7/EVP_MD-MD2.html", "doc/html/man7/EVP_MD-MD4.html", "doc/html/man7/EVP_MD-MD5-SHA1.html", @@ -17118,12 +19804,17 @@ our %unified_info = ( "doc/html/man7/EVP_PKEY-EC.html", "doc/html/man7/EVP_PKEY-FFC.html", "doc/html/man7/EVP_PKEY-HMAC.html", + "doc/html/man7/EVP_PKEY-ML-DSA.html", + "doc/html/man7/EVP_PKEY-ML-KEM.html", "doc/html/man7/EVP_PKEY-RSA.html", + "doc/html/man7/EVP_PKEY-SLH-DSA.html", "doc/html/man7/EVP_PKEY-SM2.html", "doc/html/man7/EVP_PKEY-X25519.html", + "doc/html/man7/EVP_RAND-CRNG-TEST.html", "doc/html/man7/EVP_RAND-CTR-DRBG.html", "doc/html/man7/EVP_RAND-HASH-DRBG.html", "doc/html/man7/EVP_RAND-HMAC-DRBG.html", + "doc/html/man7/EVP_RAND-JITTER.html", "doc/html/man7/EVP_RAND-SEED-SRC.html", "doc/html/man7/EVP_RAND-TEST-RAND.html", "doc/html/man7/EVP_RAND.html", @@ -17131,17 +19822,19 @@ our %unified_info = ( "doc/html/man7/EVP_SIGNATURE-ECDSA.html", "doc/html/man7/EVP_SIGNATURE-ED25519.html", "doc/html/man7/EVP_SIGNATURE-HMAC.html", + "doc/html/man7/EVP_SIGNATURE-ML-DSA.html", "doc/html/man7/EVP_SIGNATURE-RSA.html", + "doc/html/man7/EVP_SIGNATURE-SLH-DSA.html", "doc/html/man7/OSSL_PROVIDER-FIPS.html", "doc/html/man7/OSSL_PROVIDER-base.html", "doc/html/man7/OSSL_PROVIDER-default.html", "doc/html/man7/OSSL_PROVIDER-legacy.html", "doc/html/man7/OSSL_PROVIDER-null.html", + "doc/html/man7/OSSL_STORE-winstore.html", "doc/html/man7/RAND.html", "doc/html/man7/RSA-PSS.html", "doc/html/man7/X25519.html", "doc/html/man7/bio.html", - "doc/html/man7/crypto.html", "doc/html/man7/ct.html", "doc/html/man7/des_modes.html", "doc/html/man7/evp.html", @@ -17152,14 +19845,31 @@ our %unified_info = ( "doc/html/man7/life_cycle-mac.html", "doc/html/man7/life_cycle-pkey.html", "doc/html/man7/life_cycle-rand.html", - "doc/html/man7/migration_guide.html", "doc/html/man7/openssl-core.h.html", "doc/html/man7/openssl-core_dispatch.h.html", "doc/html/man7/openssl-core_names.h.html", "doc/html/man7/openssl-env.html", "doc/html/man7/openssl-glossary.html", + "doc/html/man7/openssl-qlog.html", + "doc/html/man7/openssl-quic-concurrency.html", + "doc/html/man7/openssl-quic.html", "doc/html/man7/openssl-threads.html", "doc/html/man7/openssl_user_macros.html", + "doc/html/man7/ossl-guide-introduction.html", + "doc/html/man7/ossl-guide-libcrypto-introduction.html", + "doc/html/man7/ossl-guide-libraries-introduction.html", + "doc/html/man7/ossl-guide-libssl-introduction.html", + "doc/html/man7/ossl-guide-migration.html", + "doc/html/man7/ossl-guide-quic-client-block.html", + "doc/html/man7/ossl-guide-quic-client-non-block.html", + "doc/html/man7/ossl-guide-quic-introduction.html", + "doc/html/man7/ossl-guide-quic-multi-stream.html", + "doc/html/man7/ossl-guide-quic-server-block.html", + "doc/html/man7/ossl-guide-quic-server-non-block.html", + "doc/html/man7/ossl-guide-tls-client-block.html", + "doc/html/man7/ossl-guide-tls-client-non-block.html", + "doc/html/man7/ossl-guide-tls-introduction.html", + "doc/html/man7/ossl-guide-tls-server-block.html", "doc/html/man7/ossl_store-file.html", "doc/html/man7/ossl_store.html", "doc/html/man7/passphrase-encoding.html", @@ -17178,10 +19888,10 @@ our %unified_info = ( "doc/html/man7/provider-object.html", "doc/html/man7/provider-rand.html", "doc/html/man7/provider-signature.html", + "doc/html/man7/provider-skeymgmt.html", "doc/html/man7/provider-storemgmt.html", "doc/html/man7/provider.html", "doc/html/man7/proxy-certificates.html", - "doc/html/man7/ssl.html", "doc/html/man7/x509.html" ] }, @@ -17196,12 +19906,21 @@ our %unified_info = ( ] }, "includes" => { + "OpenSSLConfig.cmake" => [ + "." + ], + "OpenSSLConfigVersion.cmake" => [ + "." + ], "apps/asn1parse.o" => [ "apps" ], "apps/ca.o" => [ "apps" ], + "apps/ca_internals_test-bin-ca.o" => [ + "apps" + ], "apps/ciphers.o" => [ "apps" ], @@ -17428,6 +20147,9 @@ our %unified_info = ( "apps/openssl-bin-sess_id.o" => [ "apps" ], + "apps/openssl-bin-skeyutl.o" => [ + "apps" + ], "apps/openssl-bin-smime.o" => [ "apps" ], @@ -17515,6 +20237,9 @@ our %unified_info = ( "apps/sess_id.o" => [ "apps" ], + "apps/skeyutl.o" => [ + "apps" + ], "apps/smime.o" => [ "apps" ], @@ -17566,6 +20291,12 @@ our %unified_info = ( "crypto/aes/bsaes-armv7.o" => [ "crypto" ], + "crypto/aes/vpaes-armv8.o" => [ + "crypto" + ], + "crypto/aes/vpaes-loongarch64.o" => [ + "crypto" + ], "crypto/arm64cpuid.o" => [ "crypto" ], @@ -17617,9 +20348,15 @@ our %unified_info = ( "crypto/chacha/chacha-armv4.o" => [ "crypto" ], + "crypto/chacha/chacha-armv8-sve.o" => [ + "crypto" + ], "crypto/chacha/chacha-armv8.o" => [ "crypto" ], + "crypto/chacha/chacha-loongarch64.o" => [ + "crypto" + ], "crypto/chacha/chacha-s390x.o" => [ "crypto" ], @@ -17644,15 +20381,27 @@ our %unified_info = ( "crypto/ec/ecp_s390x_nistp.o" => [ "crypto" ], + "crypto/ec/ecp_sm2p256-armv8.o" => [ + "crypto" + ], + "crypto/ec/ecx_key.o" => [ + "crypto" + ], "crypto/ec/ecx_meth.o" => [ "crypto" ], "crypto/ec/ecx_s390x.o" => [ "crypto" ], + "crypto/ec/libcrypto-lib-ecx_key.o" => [ + "crypto" + ], "crypto/ec/libcrypto-lib-ecx_meth.o" => [ "crypto" ], + "crypto/ec/libfips-lib-ecx_key.o" => [ + "crypto" + ], "crypto/evp/e_aes.o" => [ "crypto", "crypto/modes" @@ -17724,9 +20473,18 @@ our %unified_info = ( "crypto/libfips-lib-cpuid.o" => [ "." ], + "crypto/md5/md5-aarch64.o" => [ + "crypto" + ], + "crypto/md5/md5-loongarch64.o" => [ + "crypto" + ], "crypto/md5/md5-sparcv9.o" => [ "crypto" ], + "crypto/modes/aes-gcm-armv8-unroll8_64.o" => [ + "crypto" + ], "crypto/modes/aes-gcm-armv8_64.o" => [ "crypto" ], @@ -17751,6 +20509,9 @@ our %unified_info = ( "crypto/modes/libfips-lib-gcm128.o" => [ "crypto" ], + "crypto/params_idx.c" => [ + "util/perl" + ], "crypto/poly1305/poly1305-armv4.o" => [ "crypto" ], @@ -17772,6 +20533,9 @@ our %unified_info = ( "crypto/sha/keccak1600-armv4.o" => [ "crypto" ], + "crypto/sha/keccak1600-armv8.o" => [ + "crypto" + ], "crypto/sha/sha1-armv4-large.o" => [ "crypto" ], @@ -17817,6 +20581,18 @@ our %unified_info = ( "crypto/sha/sha512-sparcv9.o" => [ "crypto" ], + "crypto/sm3/sm3-armv8.o" => [ + "crypto" + ], + "crypto/sm4/sm4-armv8.o" => [ + "crypto" + ], + "crypto/sm4/vpsm4-armv8.o" => [ + "crypto" + ], + "crypto/sm4/vpsm4_ex-armv8.o" => [ + "crypto" + ], "doc/man1/openssl-asn1parse.pod" => [ "doc" ], @@ -17949,6 +20725,9 @@ our %unified_info = ( "doc/man1/openssl-sess_id.pod" => [ "doc" ], + "doc/man1/openssl-skeyutl.pod" => [ + "doc" + ], "doc/man1/openssl-smime.pod" => [ "doc" ], @@ -17976,6 +20755,24 @@ our %unified_info = ( "doc/man1/openssl-x509.pod" => [ "doc" ], + "exporters/OpenSSLConfig.cmake" => [ + "." + ], + "exporters/OpenSSLConfigVersion.cmake" => [ + "." + ], + "exporters/libcrypto.pc" => [ + "." + ], + "exporters/libssl.pc" => [ + "." + ], + "exporters/openssl.pc" => [ + "." + ], + "fuzz/acert-test" => [ + "include" + ], "fuzz/asn1-test" => [ "include" ], @@ -18006,22 +20803,88 @@ our %unified_info = ( "fuzz/ct-test" => [ "include" ], + "fuzz/decoder-test" => [ + "include" + ], + "fuzz/dtlsclient-test" => [ + "include" + ], + "fuzz/dtlsserver-test" => [ + "include" + ], + "fuzz/hashtable-test" => [ + "include" + ], + "fuzz/ml-dsa-test" => [ + "include" + ], + "fuzz/ml-kem-test" => [ + "include" + ], + "fuzz/pem-test" => [ + "include" + ], + "fuzz/provider-test" => [ + "include" + ], + "fuzz/punycode-test" => [ + "include" + ], + "fuzz/quic-client-test" => [ + "include" + ], + "fuzz/quic-lcidm-test" => [ + "include" + ], + "fuzz/quic-rcidm-test" => [ + "include" + ], + "fuzz/quic-server-test" => [ + "include" + ], + "fuzz/quic-srtm-test" => [ + "include" + ], "fuzz/server-test" => [ "include" ], + "fuzz/slh-dsa-test" => [ + "include" + ], + "fuzz/smime-test" => [ + "include" + ], + "fuzz/v3name-test" => [ + "include" + ], "fuzz/x509-test" => [ "include" ], + "include/internal/param_names.h" => [ + "util/perl" + ], + "include/openssl/core_names.h" => [ + "util/perl" + ], "libcrypto" => [ ".", "include", "providers/common/include", "providers/implementations/include" ], + "libcrypto.pc" => [ + "." + ], "libssl" => [ ".", "include" ], + "libssl.pc" => [ + "." + ], + "openssl.pc" => [ + "." + ], "providers/common/der/der_digests_gen.c" => [ "providers/common/der" ], @@ -18061,6 +20924,15 @@ our %unified_info = ( "providers/common/der/der_ecx_key.o" => [ "providers/common/include/prov" ], + "providers/common/der/der_ml_dsa_gen.c" => [ + "providers/common/der" + ], + "providers/common/der/der_ml_dsa_gen.o" => [ + "providers/common/include/prov" + ], + "providers/common/der/der_ml_dsa_key.o" => [ + "providers/common/include/prov" + ], "providers/common/der/der_rsa_gen.c" => [ "providers/common/der" ], @@ -18073,6 +20945,15 @@ our %unified_info = ( "providers/common/der/der_rsa_sig.o" => [ "providers/common/include/prov" ], + "providers/common/der/der_slh_dsa_gen.c" => [ + "providers/common/der" + ], + "providers/common/der/der_slh_dsa_gen.o" => [ + "providers/common/include/prov" + ], + "providers/common/der/der_slh_dsa_key.o" => [ + "providers/common/include/prov" + ], "providers/common/der/der_sm2_gen.c" => [ "providers/common/der" ], @@ -18118,12 +20999,24 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ecx_key.o" => [ "providers/common/include/prov" ], + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o" => [ + "providers/common/include/prov" + ], + "providers/common/der/libcommon-lib-der_ml_dsa_key.o" => [ + "providers/common/include/prov" + ], "providers/common/der/libcommon-lib-der_rsa_gen.o" => [ "providers/common/include/prov" ], "providers/common/der/libcommon-lib-der_rsa_key.o" => [ "providers/common/include/prov" ], + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o" => [ + "providers/common/include/prov" + ], + "providers/common/der/libcommon-lib-der_slh_dsa_key.o" => [ + "providers/common/include/prov" + ], "providers/common/der/libcommon-lib-der_wrap_gen.o" => [ "providers/common/include/prov" ], @@ -18154,9 +21047,15 @@ our %unified_info = ( "providers/common/include/prov/der_ecx.h" => [ "providers/common/der" ], + "providers/common/include/prov/der_ml_dsa.h" => [ + "providers/common/der" + ], "providers/common/include/prov/der_rsa.h" => [ "providers/common/der" ], + "providers/common/include/prov/der_slh_dsa.h" => [ + "providers/common/der" + ], "providers/common/include/prov/der_sm2.h" => [ "providers/common/der" ], @@ -18199,9 +21098,15 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-eddsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/libdefault-lib-rsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/libdefault-lib-sm2_sig.o" => [ "providers/common/include/prov" ], @@ -18214,12 +21119,24 @@ our %unified_info = ( "providers/implementations/signature/libfips-lib-eddsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/libfips-lib-rsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o" => [ + "providers/common/include/prov" + ], + "providers/implementations/signature/ml_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/rsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/slh_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/sm2_sig.o" => [ "providers/common/include/prov" ], @@ -18232,28 +21149,39 @@ our %unified_info = ( "crypto", "include", "providers/implementations/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" ], "providers/libdefault.a" => [ ".", "crypto", "include", "providers/implementations/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" ], "providers/libfips.a" => [ ".", "crypto", "include", "providers/implementations/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" ], "providers/liblegacy.a" => [ ".", "crypto", "include", "providers/implementations/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" + ], + "providers/libtemplate.a" => [ + "crypto", + "include", + "providers/implementations/include", + "providers/common/include", + "providers/fips/include" ], "test/aborttest" => [ "include", @@ -18322,6 +21250,14 @@ our %unified_info = ( "include", "apps/include" ], + "test/bio_addr_test" => [ + "include", + "apps/include" + ], + "test/bio_base64_test" => [ + "include", + "apps/include" + ], "test/bio_callback_test" => [ "include", "apps/include" @@ -18330,6 +21266,11 @@ our %unified_info = ( "include", "apps/include" ], + "test/bio_dgram_test" => [ + "include", + "apps/include", + "." + ], "test/bio_enc_test" => [ "include", "apps/include" @@ -18338,6 +21279,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/bio_meth_test" => [ + "include", + "apps/include" + ], "test/bio_prefix_text" => [ ".", "include", @@ -18351,6 +21296,11 @@ our %unified_info = ( "include", "apps/include" ], + "test/bio_tfo_test" => [ + "include", + "apps/include", + "." + ], "test/bioprinttest" => [ "include", "apps/include" @@ -18365,6 +21315,9 @@ our %unified_info = ( "include", "apps/include" ], + "test/build_wincrypt_test" => [ + "include" + ], "test/buildtest_c_aes" => [ "include" ], @@ -18380,6 +21333,9 @@ our %unified_info = ( "test/buildtest_c_buffer" => [ "include" ], + "test/buildtest_c_byteorder" => [ + "include" + ], "test/buildtest_c_camellia" => [ "include" ], @@ -18404,9 +21360,6 @@ our %unified_info = ( "test/buildtest_c_core_dispatch" => [ "include" ], - "test/buildtest_c_core_names" => [ - "include" - ], "test/buildtest_c_core_object" => [ "include" ], @@ -18431,6 +21384,9 @@ our %unified_info = ( "test/buildtest_c_e_os2" => [ "include" ], + "test/buildtest_c_e_ostime" => [ + "include" + ], "test/buildtest_c_ebcdic" => [ "include" ], @@ -18458,12 +21414,18 @@ our %unified_info = ( "test/buildtest_c_hmac" => [ "include" ], + "test/buildtest_c_hpke" => [ + "include" + ], "test/buildtest_c_http" => [ "include" ], "test/buildtest_c_idea" => [ "include" ], + "test/buildtest_c_indicator" => [ + "include" + ], "test/buildtest_c_kdf" => [ "include" ], @@ -18479,6 +21441,9 @@ our %unified_info = ( "test/buildtest_c_mdc2" => [ "include" ], + "test/buildtest_c_ml_kem" => [ + "include" + ], "test/buildtest_c_modes" => [ "include" ], @@ -18509,6 +21474,9 @@ our %unified_info = ( "test/buildtest_c_provider" => [ "include" ], + "test/buildtest_c_quic" => [ + "include" + ], "test/buildtest_c_rand" => [ "include" ], @@ -18551,6 +21519,9 @@ our %unified_info = ( "test/buildtest_c_symhacks" => [ "include" ], + "test/buildtest_c_thread" => [ + "include" + ], "test/buildtest_c_tls1" => [ "include" ], @@ -18566,10 +21537,24 @@ our %unified_info = ( "test/buildtest_c_whrlpool" => [ "include" ], + "test/byteorder_test" => [ + "include", + "apps/include" + ], + "test/ca_internals_test" => [ + ".", + "include", + "apps/include" + ], "test/casttest" => [ "include", "apps/include" ], + "test/cert_comp_test" => [ + "include", + "apps/include", + "." + ], "test/chacha_internal_test" => [ ".", "include", @@ -18693,6 +21678,11 @@ our %unified_info = ( "include", "apps/include" ], + "test/decoder_propq_test" => [ + ".", + "include", + "apps/include" + ], "test/defltfips_test" => [ "include", "apps/include" @@ -18708,7 +21698,8 @@ our %unified_info = ( "test/drbgtest" => [ "include", "apps/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" ], "test/dsa_no_digest_size_test" => [ "include", @@ -18751,7 +21742,9 @@ our %unified_info = ( "test/endecode_test" => [ ".", "include", - "apps/include" + "apps/include", + "providers/common/include", + "providers/implementations/include" ], "test/endecoder_legacy_test" => [ ".", @@ -18796,6 +21789,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/evp_pkey_dhkem_test" => [ + "include", + "apps/include" + ], "test/evp_pkey_dparams_test" => [ "include", "apps/include" @@ -18804,10 +21801,18 @@ our %unified_info = ( "include", "apps/include" ], + "test/evp_skey_test" => [ + "include", + "apps/include" + ], "test/evp_test" => [ "include", "apps/include" ], + "test/evp_xof_test" => [ + "include", + "apps/include" + ], "test/exdatatest" => [ "include", "apps/include" @@ -18908,22 +21913,62 @@ our %unified_info = ( ".", "include" ], + "test/helpers/json_test-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/helpers/pkcs12.o" => [ ".", "include" ], + "test/helpers/pkcs12_api_test-bin-pkcs12.o" => [ + ".", + "include" + ], "test/helpers/pkcs12_format_test-bin-pkcs12.o" => [ ".", "include" ], + "test/helpers/quic_multistream_test-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quic_newcid_test-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quic_radix_test-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quic_srt_gen_test-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quicapitest-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quicfaultstest-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/helpers/recordlentest-bin-ssltestlib.o" => [ ".", "include" ], + "test/helpers/rpktest-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/helpers/servername_test-bin-ssltestlib.o" => [ ".", "include" ], + "test/helpers/ssl_handshake_rtt_test-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/helpers/ssl_test-bin-handshake.o" => [ ".", "include" @@ -18957,6 +22002,10 @@ our %unified_info = ( ".", "include" ], + "test/helpers/tls13groupselection_test-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/hexstr_test" => [ ".", "include", @@ -18966,6 +22015,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/hpke_test" => [ + "include", + "apps/include" + ], "test/http_test" => [ "include", "apps/include" @@ -18978,6 +22031,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/json_test" => [ + "include", + "apps/include" + ], "test/keymgmt_internal_test" => [ ".", "include", @@ -18992,6 +22049,10 @@ our %unified_info = ( "apps/include", "." ], + "test/list_test" => [ + "include", + "apps/include" + ], "test/localetest" => [ "include", "apps/include" @@ -19005,10 +22066,27 @@ our %unified_info = ( "include", "apps/include" ], + "test/membio_test" => [ + "include", + "apps/include", + "." + ], "test/memleaktest" => [ "include", "apps/include" ], + "test/ml_dsa_test" => [ + "include", + "apps/include" + ], + "test/ml_kem_evp_extra_test" => [ + "include", + "apps/include" + ], + "test/ml_kem_internal_test" => [ + "include", + "apps/include" + ], "test/modes_internal_test" => [ ".", "include", @@ -19043,6 +22121,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/pairwise_fail_test" => [ + "include", + "apps/include" + ], "test/param_build_test" => [ "include", "apps/include" @@ -19076,6 +22158,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/pkcs12_api_test" => [ + "include", + "apps/include" + ], "test/pkcs12_format_test" => [ "include", "apps/include" @@ -19097,6 +22183,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/priority_queue_test" => [ + "include", + "apps/include" + ], "test/property_test" => [ ".", "include", @@ -19110,6 +22200,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/provider_default_search_path_test" => [ + "include", + "apps/include" + ], "test/provider_fallback_test" => [ "include", "apps/include" @@ -19136,6 +22230,97 @@ our %unified_info = ( "include", "apps/include" ], + "test/quic_ackm_test" => [ + "include", + "apps/include" + ], + "test/quic_cc_test" => [ + "include", + "apps/include" + ], + "test/quic_cfq_test" => [ + "include", + "apps/include" + ], + "test/quic_client_test" => [ + "include", + "apps/include" + ], + "test/quic_fc_test" => [ + "include", + "apps/include" + ], + "test/quic_fifd_test" => [ + "include", + "apps/include" + ], + "test/quic_lcidm_test" => [ + "include", + "apps/include" + ], + "test/quic_multistream_test" => [ + "include", + "apps/include" + ], + "test/quic_newcid_test" => [ + "include", + "apps/include", + "." + ], + "test/quic_qlog_test" => [ + "include", + "apps/include" + ], + "test/quic_radix_test" => [ + "include", + "apps/include" + ], + "test/quic_rcidm_test" => [ + "include", + "apps/include" + ], + "test/quic_record_test" => [ + "include", + "apps/include" + ], + "test/quic_srt_gen_test" => [ + "include", + "apps/include", + "." + ], + "test/quic_srtm_test" => [ + "include", + "apps/include" + ], + "test/quic_stream_test" => [ + "include", + "apps/include" + ], + "test/quic_tserver_test" => [ + "include", + "apps/include" + ], + "test/quic_txp_test" => [ + "include", + "apps/include" + ], + "test/quic_txpim_test" => [ + "include", + "apps/include" + ], + "test/quic_wire_test" => [ + "include", + "apps/include" + ], + "test/quicapitest" => [ + "include", + "apps/include" + ], + "test/quicfaultstest" => [ + "include", + "apps/include", + "." + ], "test/rand_status_test" => [ "include", "apps/include" @@ -19156,14 +22341,20 @@ our %unified_info = ( "include", "apps/include" ], - "test/rdrand_sanitytest" => [ + "test/rdcpu_sanitytest" => [ "include", - "apps/include" + "apps/include", + "crypto" ], "test/recordlentest" => [ "include", "apps/include" ], + "test/rpktest" => [ + "include", + "apps/include", + "." + ], "test/rsa_complex" => [ "include", "apps/include" @@ -19182,6 +22373,15 @@ our %unified_info = ( "include", "apps/include" ], + "test/rsa_x931_test" => [ + ".", + "include", + "apps/include" + ], + "test/safe_math_test" => [ + "include", + "apps/include" + ], "test/sanitytest" => [ "include", "apps/include" @@ -19203,6 +22403,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/slh_dsa_test" => [ + "include", + "apps/include" + ], "test/sm2_internal_test" => [ "include", "apps/include" @@ -19233,6 +22437,11 @@ our %unified_info = ( "include", "apps/include" ], + "test/ssl_handshake_rtt_test" => [ + "include", + "apps/include", + "." + ], "test/ssl_old_test" => [ ".", "include", @@ -19249,6 +22458,7 @@ our %unified_info = ( "test/sslapitest" => [ "include", "apps/include", + "providers/common/include", "." ], "test/sslbuffertest" => [ @@ -19263,6 +22473,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/strtoultest" => [ + "include", + "apps/include" + ], "test/sysdefaulttest" => [ "include", "apps/include" @@ -19271,7 +22485,13 @@ our %unified_info = ( "include", "apps/include" ], + "test/threadpool_test" => [ + ".", + "include", + "apps/include" + ], "test/threadstest" => [ + ".", "include", "apps/include" ], @@ -19283,6 +22503,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/time_test" => [ + "include", + "apps/include" + ], "test/tls13ccstest" => [ "include", "apps/include" @@ -19292,6 +22516,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/tls13groupselection_test" => [ + "include", + "apps/include" + ], "test/trace_api_test" => [ ".", "include", @@ -19330,6 +22558,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/x509_acert_test" => [ + "include", + "apps/include" + ], "test/x509_check_cert_pkey_test" => [ "include", "apps/include" @@ -19343,6 +22575,18 @@ our %unified_info = ( "include", "apps/include" ], + "test/x509_load_cert_file_test" => [ + "include", + "apps/include" + ], + "test/x509_req_test" => [ + "include", + "apps/include" + ], + "test/x509_test" => [ + "include", + "apps/include" + ], "test/x509_time_test" => [ "include", "apps/include" @@ -19364,6 +22608,7 @@ our %unified_info = ( "providers/libdefault.a", "providers/libfips.a", "providers/liblegacy.a", + "providers/libtemplate.a", "test/libtestutil.a" ], "mandocs" => { @@ -19416,6 +22661,7 @@ our %unified_info = ( "doc/man/man1/openssl-s_server.1", "doc/man/man1/openssl-s_time.1", "doc/man/man1/openssl-sess_id.1", + "doc/man/man1/openssl-skeyutl.1", "doc/man/man1/openssl-smime.1", "doc/man/man1/openssl-speed.1", "doc/man/man1/openssl-spkac.1", @@ -19465,6 +22711,7 @@ our %unified_info = ( "doc/man/man3/BIO_find_type.3", "doc/man/man3/BIO_get_data.3", "doc/man/man3/BIO_get_ex_new_index.3", + "doc/man/man3/BIO_get_rpoll_descriptor.3", "doc/man/man3/BIO_meth_new.3", "doc/man/man3/BIO_new.3", "doc/man/man3/BIO_new_CMS.3", @@ -19477,11 +22724,13 @@ our %unified_info = ( "doc/man/man3/BIO_s_connect.3", "doc/man/man3/BIO_s_core.3", "doc/man/man3/BIO_s_datagram.3", + "doc/man/man3/BIO_s_dgram_pair.3", "doc/man/man3/BIO_s_fd.3", "doc/man/man3/BIO_s_file.3", "doc/man/man3/BIO_s_mem.3", "doc/man/man3/BIO_s_null.3", "doc/man/man3/BIO_s_socket.3", + "doc/man/man3/BIO_sendmmsg.3", "doc/man/man3/BIO_set_callback.3", "doc/man/man3/BIO_should_retry.3", "doc/man/man3/BIO_socket_wait.3", @@ -19506,6 +22755,7 @@ our %unified_info = ( "doc/man/man3/BN_swap.3", "doc/man/man3/BN_zero.3", "doc/man/man3/BUF_MEM_new.3", + "doc/man/man3/CMAC_CTX.3", "doc/man/man3/CMS_EncryptedData_decrypt.3", "doc/man/man3/CMS_EncryptedData_encrypt.3", "doc/man/man3/CMS_EnvelopedData_create.3", @@ -19528,6 +22778,7 @@ our %unified_info = ( "doc/man/man3/CMS_uncompress.3", "doc/man/man3/CMS_verify.3", "doc/man/man3/CMS_verify_receipt.3", + "doc/man/man3/COMP_CTX_new.3", "doc/man/man3/CONF_modules_free.3", "doc/man/man3/CONF_modules_load_file.3", "doc/man/man3/CRYPTO_THREAD_run_once.3", @@ -19561,6 +22812,8 @@ our %unified_info = ( "doc/man/man3/DSA_size.3", "doc/man/man3/DTLS_get_data_mtu.3", "doc/man/man3/DTLS_set_timer_cb.3", + "doc/man/man3/DTLSv1_get_timeout.3", + "doc/man/man3/DTLSv1_handle_timeout.3", "doc/man/man3/DTLSv1_listen.3", "doc/man/man3/ECDSA_SIG_new.3", "doc/man/man3/ECDSA_sign.3", @@ -19607,6 +22860,7 @@ our %unified_info = ( "doc/man/man3/EVP_PKEY_CTX_ctrl.3", "doc/man/man3/EVP_PKEY_CTX_get0_libctx.3", "doc/man/man3/EVP_PKEY_CTX_get0_pkey.3", + "doc/man/man3/EVP_PKEY_CTX_get_algor.3", "doc/man/man3/EVP_PKEY_CTX_new.3", "doc/man/man3/EVP_PKEY_CTX_set1_pbe_pass.3", "doc/man/man3/EVP_PKEY_CTX_set_hkdf_md.3", @@ -19646,6 +22900,8 @@ our %unified_info = ( "doc/man/man3/EVP_PKEY_verify_recover.3", "doc/man/man3/EVP_RAND.3", "doc/man/man3/EVP_SIGNATURE.3", + "doc/man/man3/EVP_SKEY.3", + "doc/man/man3/EVP_SKEYMGMT.3", "doc/man/man3/EVP_SealInit.3", "doc/man/man3/EVP_SignInit.3", "doc/man/man3/EVP_VerifyInit.3", @@ -19675,6 +22931,7 @@ our %unified_info = ( "doc/man/man3/EVP_sm3.3", "doc/man/man3/EVP_sm4_cbc.3", "doc/man/man3/EVP_whirlpool.3", + "doc/man/man3/GENERAL_NAME.3", "doc/man/man3/HMAC.3", "doc/man/man3/MD5.3", "doc/man/man3/MDC2_Init.3", @@ -19699,14 +22956,18 @@ our %unified_info = ( "doc/man/man3/OPENSSL_init_ssl.3", "doc/man/man3/OPENSSL_instrument_bus.3", "doc/man/man3/OPENSSL_load_builtin_modules.3", + "doc/man/man3/OPENSSL_load_u16_le.3", "doc/man/man3/OPENSSL_malloc.3", + "doc/man/man3/OPENSSL_riscvcap.3", "doc/man/man3/OPENSSL_s390xcap.3", "doc/man/man3/OPENSSL_secure_malloc.3", "doc/man/man3/OPENSSL_strcasecmp.3", "doc/man/man3/OSSL_ALGORITHM.3", "doc/man/man3/OSSL_CALLBACK.3", + "doc/man/man3/OSSL_CMP_ATAV_set0.3", "doc/man/man3/OSSL_CMP_CTX_new.3", "doc/man/man3/OSSL_CMP_HDR_get0_transactionID.3", + "doc/man/man3/OSSL_CMP_ITAV_new_caCerts.3", "doc/man/man3/OSSL_CMP_ITAV_set0.3", "doc/man/man3/OSSL_CMP_MSG_get0_header.3", "doc/man/man3/OSSL_CMP_MSG_http_perform.3", @@ -19730,18 +22991,27 @@ our %unified_info = ( "doc/man/man3/OSSL_ENCODER_CTX.3", "doc/man/man3/OSSL_ENCODER_CTX_new_for_pkey.3", "doc/man/man3/OSSL_ENCODER_to_bio.3", + "doc/man/man3/OSSL_ERR_STATE_save.3", "doc/man/man3/OSSL_ESS_check_signing_certs.3", + "doc/man/man3/OSSL_GENERAL_NAMES_print.3", + "doc/man/man3/OSSL_HPKE_CTX_new.3", "doc/man/man3/OSSL_HTTP_REQ_CTX.3", "doc/man/man3/OSSL_HTTP_parse_url.3", "doc/man/man3/OSSL_HTTP_transfer.3", + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX.3", + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX_print.3", + "doc/man/man3/OSSL_INDICATOR_set_callback.3", "doc/man/man3/OSSL_ITEM.3", "doc/man/man3/OSSL_LIB_CTX.3", + "doc/man/man3/OSSL_LIB_CTX_set_conf_diagnostics.3", "doc/man/man3/OSSL_PARAM.3", "doc/man/man3/OSSL_PARAM_BLD.3", "doc/man/man3/OSSL_PARAM_allocate_from_text.3", "doc/man/man3/OSSL_PARAM_dup.3", "doc/man/man3/OSSL_PARAM_int.3", + "doc/man/man3/OSSL_PARAM_print_to_bio.3", "doc/man/man3/OSSL_PROVIDER.3", + "doc/man/man3/OSSL_QUIC_client_method.3", "doc/man/man3/OSSL_SELF_TEST_new.3", "doc/man/man3/OSSL_SELF_TEST_set_callback.3", "doc/man/man3/OSSL_STORE_INFO.3", @@ -19750,11 +23020,13 @@ our %unified_info = ( "doc/man/man3/OSSL_STORE_attach.3", "doc/man/man3/OSSL_STORE_expect.3", "doc/man/man3/OSSL_STORE_open.3", + "doc/man/man3/OSSL_sleep.3", "doc/man/man3/OSSL_trace_enabled.3", "doc/man/man3/OSSL_trace_get_category_num.3", "doc/man/man3/OSSL_trace_set_channel.3", "doc/man/man3/OpenSSL_add_all_algorithms.3", "doc/man/man3/OpenSSL_version.3", + "doc/man/man3/PBMAC1_get1_pbkdf2_param.3", "doc/man/man3/PEM_X509_INFO_read_bio_ex.3", "doc/man/man3/PEM_bytes_read_bio.3", "doc/man/man3/PEM_read.3", @@ -19767,6 +23039,7 @@ our %unified_info = ( "doc/man/man3/PKCS12_SAFEBAG_create_cert.3", "doc/man/man3/PKCS12_SAFEBAG_get0_attrs.3", "doc/man/man3/PKCS12_SAFEBAG_get1_cert.3", + "doc/man/man3/PKCS12_SAFEBAG_set0_attrs.3", "doc/man/man3/PKCS12_add1_attr_by_NID.3", "doc/man/man3/PKCS12_add_CSPName_asc.3", "doc/man/man3/PKCS12_add_cert.3", @@ -19858,6 +23131,7 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_sess_set_get_cb.3", "doc/man/man3/SSL_CTX_sessions.3", "doc/man/man3/SSL_CTX_set0_CA_list.3", + "doc/man/man3/SSL_CTX_set1_cert_comp_preference.3", "doc/man/man3/SSL_CTX_set1_curves.3", "doc/man/man3/SSL_CTX_set1_sigalgs.3", "doc/man/man3/SSL_CTX_set1_verify_cert_store.3", @@ -19871,6 +23145,7 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_ct_validation_callback.3", "doc/man/man3/SSL_CTX_set_ctlog_list_file.3", "doc/man/man3/SSL_CTX_set_default_passwd_cb.3", + "doc/man/man3/SSL_CTX_set_domain_flags.3", "doc/man/man3/SSL_CTX_set_generate_session_id.3", "doc/man/man3/SSL_CTX_set_info_callback.3", "doc/man/man3/SSL_CTX_set_keylog_callback.3", @@ -19878,6 +23153,7 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_min_proto_version.3", "doc/man/man3/SSL_CTX_set_mode.3", "doc/man/man3/SSL_CTX_set_msg_callback.3", + "doc/man/man3/SSL_CTX_set_new_pending_conn_cb.3", "doc/man/man3/SSL_CTX_set_num_tickets.3", "doc/man/man3/SSL_CTX_set_options.3", "doc/man/man3/SSL_CTX_set_psk_client_callback.3", @@ -19916,6 +23192,7 @@ our %unified_info = ( "doc/man/man3/SSL_SESSION_print.3", "doc/man/man3/SSL_SESSION_set1_id.3", "doc/man/man3/SSL_accept.3", + "doc/man/man3/SSL_accept_stream.3", "doc/man/man3/SSL_alert_type_string.3", "doc/man/man3/SSL_alloc_buffers.3", "doc/man/man3/SSL_check_chain.3", @@ -19925,59 +23202,90 @@ our %unified_info = ( "doc/man/man3/SSL_export_keying_material.3", "doc/man/man3/SSL_extension_supported.3", "doc/man/man3/SSL_free.3", + "doc/man/man3/SSL_get0_connection.3", + "doc/man/man3/SSL_get0_group_name.3", + "doc/man/man3/SSL_get0_peer_rpk.3", "doc/man/man3/SSL_get0_peer_scts.3", + "doc/man/man3/SSL_get1_builtin_sigalgs.3", "doc/man/man3/SSL_get_SSL_CTX.3", "doc/man/man3/SSL_get_all_async_fds.3", "doc/man/man3/SSL_get_certificate.3", "doc/man/man3/SSL_get_ciphers.3", "doc/man/man3/SSL_get_client_random.3", + "doc/man/man3/SSL_get_conn_close_info.3", "doc/man/man3/SSL_get_current_cipher.3", "doc/man/man3/SSL_get_default_timeout.3", "doc/man/man3/SSL_get_error.3", + "doc/man/man3/SSL_get_event_timeout.3", "doc/man/man3/SSL_get_extms_support.3", "doc/man/man3/SSL_get_fd.3", + "doc/man/man3/SSL_get_handshake_rtt.3", "doc/man/man3/SSL_get_peer_cert_chain.3", "doc/man/man3/SSL_get_peer_certificate.3", "doc/man/man3/SSL_get_peer_signature_nid.3", "doc/man/man3/SSL_get_peer_tmp_key.3", "doc/man/man3/SSL_get_psk_identity.3", "doc/man/man3/SSL_get_rbio.3", + "doc/man/man3/SSL_get_rpoll_descriptor.3", "doc/man/man3/SSL_get_session.3", "doc/man/man3/SSL_get_shared_sigalgs.3", + "doc/man/man3/SSL_get_stream_id.3", + "doc/man/man3/SSL_get_stream_read_state.3", + "doc/man/man3/SSL_get_value_uint.3", "doc/man/man3/SSL_get_verify_result.3", "doc/man/man3/SSL_get_version.3", "doc/man/man3/SSL_group_to_name.3", + "doc/man/man3/SSL_handle_events.3", "doc/man/man3/SSL_in_init.3", + "doc/man/man3/SSL_inject_net_dgram.3", "doc/man/man3/SSL_key_update.3", "doc/man/man3/SSL_library_init.3", "doc/man/man3/SSL_load_client_CA_file.3", "doc/man/man3/SSL_new.3", + "doc/man/man3/SSL_new_domain.3", + "doc/man/man3/SSL_new_listener.3", + "doc/man/man3/SSL_new_stream.3", "doc/man/man3/SSL_pending.3", + "doc/man/man3/SSL_poll.3", "doc/man/man3/SSL_read.3", "doc/man/man3/SSL_read_early_data.3", "doc/man/man3/SSL_rstate_string.3", "doc/man/man3/SSL_session_reused.3", "doc/man/man3/SSL_set1_host.3", + "doc/man/man3/SSL_set1_initial_peer_addr.3", + "doc/man/man3/SSL_set1_server_cert_type.3", "doc/man/man3/SSL_set_async_callback.3", "doc/man/man3/SSL_set_bio.3", + "doc/man/man3/SSL_set_blocking_mode.3", "doc/man/man3/SSL_set_connect_state.3", + "doc/man/man3/SSL_set_default_stream_mode.3", "doc/man/man3/SSL_set_fd.3", + "doc/man/man3/SSL_set_incoming_stream_policy.3", + "doc/man/man3/SSL_set_quic_tls_cbs.3", "doc/man/man3/SSL_set_retry_verify.3", "doc/man/man3/SSL_set_session.3", + "doc/man/man3/SSL_set_session_secret_cb.3", "doc/man/man3/SSL_set_shutdown.3", "doc/man/man3/SSL_set_verify_result.3", "doc/man/man3/SSL_shutdown.3", "doc/man/man3/SSL_state_string.3", + "doc/man/man3/SSL_stream_conclude.3", + "doc/man/man3/SSL_stream_reset.3", "doc/man/man3/SSL_want.3", "doc/man/man3/SSL_write.3", "doc/man/man3/TS_RESP_CTX_new.3", - "doc/man/man3/TS_VERIFY_CTX_set_certs.3", + "doc/man/man3/TS_VERIFY_CTX.3", "doc/man/man3/UI_STRING.3", "doc/man/man3/UI_UTIL_read_pw.3", "doc/man/man3/UI_create_method.3", "doc/man/man3/UI_new.3", "doc/man/man3/X509V3_get_d2i.3", "doc/man/man3/X509V3_set_ctx.3", + "doc/man/man3/X509_ACERT_add1_attr.3", + "doc/man/man3/X509_ACERT_add_attr_nconf.3", + "doc/man/man3/X509_ACERT_get0_holder_baseCertId.3", + "doc/man/man3/X509_ACERT_get_attr.3", + "doc/man/man3/X509_ACERT_print_ex.3", "doc/man/man3/X509_ALGOR_dup.3", "doc/man/man3/X509_ATTRIBUTE.3", "doc/man/man3/X509_CRL_get0_by_serial.3", @@ -19994,6 +23302,7 @@ our %unified_info = ( "doc/man/man3/X509_REQ_get_attr.3", "doc/man/man3/X509_REQ_get_extensions.3", "doc/man/man3/X509_SIG_get0.3", + "doc/man/man3/X509_STORE_CTX_get_by_subject.3", "doc/man/man3/X509_STORE_CTX_get_error.3", "doc/man/man3/X509_STORE_CTX_new.3", "doc/man/man3/X509_STORE_CTX_set_verify_cb.3", @@ -20016,6 +23325,7 @@ our %unified_info = ( "doc/man/man3/X509_get0_notBefore.3", "doc/man/man3/X509_get0_signature.3", "doc/man/man3/X509_get0_uids.3", + "doc/man/man3/X509_get_default_cert_file.3", "doc/man/man3/X509_get_extension_flags.3", "doc/man/man3/X509_get_pubkey.3", "doc/man/man3/X509_get_serialNumber.3", @@ -20061,12 +23371,15 @@ our %unified_info = ( "doc/man/man7/EVP_CIPHER-RC5.7", "doc/man/man7/EVP_CIPHER-SEED.7", "doc/man/man7/EVP_CIPHER-SM4.7", + "doc/man/man7/EVP_KDF-ARGON2.7", "doc/man/man7/EVP_KDF-HKDF.7", + "doc/man/man7/EVP_KDF-HMAC-DRBG.7", "doc/man/man7/EVP_KDF-KB.7", "doc/man/man7/EVP_KDF-KRB5KDF.7", "doc/man/man7/EVP_KDF-PBKDF1.7", "doc/man/man7/EVP_KDF-PBKDF2.7", "doc/man/man7/EVP_KDF-PKCS12KDF.7", + "doc/man/man7/EVP_KDF-PVKKDF.7", "doc/man/man7/EVP_KDF-SCRYPT.7", "doc/man/man7/EVP_KDF-SS.7", "doc/man/man7/EVP_KDF-SSHKDF.7", @@ -20075,7 +23388,10 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-X942-ASN1.7", "doc/man/man7/EVP_KDF-X942-CONCAT.7", "doc/man/man7/EVP_KDF-X963.7", + "doc/man/man7/EVP_KEM-EC.7", + "doc/man/man7/EVP_KEM-ML-KEM.7", "doc/man/man7/EVP_KEM-RSA.7", + "doc/man/man7/EVP_KEM-X25519.7", "doc/man/man7/EVP_KEYEXCH-DH.7", "doc/man/man7/EVP_KEYEXCH-ECDH.7", "doc/man/man7/EVP_KEYEXCH-X25519.7", @@ -20087,6 +23403,7 @@ our %unified_info = ( "doc/man/man7/EVP_MAC-Poly1305.7", "doc/man/man7/EVP_MAC-Siphash.7", "doc/man/man7/EVP_MD-BLAKE2.7", + "doc/man/man7/EVP_MD-KECCAK.7", "doc/man/man7/EVP_MD-MD2.7", "doc/man/man7/EVP_MD-MD4.7", "doc/man/man7/EVP_MD-MD5-SHA1.7", @@ -20106,12 +23423,17 @@ our %unified_info = ( "doc/man/man7/EVP_PKEY-EC.7", "doc/man/man7/EVP_PKEY-FFC.7", "doc/man/man7/EVP_PKEY-HMAC.7", + "doc/man/man7/EVP_PKEY-ML-DSA.7", + "doc/man/man7/EVP_PKEY-ML-KEM.7", "doc/man/man7/EVP_PKEY-RSA.7", + "doc/man/man7/EVP_PKEY-SLH-DSA.7", "doc/man/man7/EVP_PKEY-SM2.7", "doc/man/man7/EVP_PKEY-X25519.7", + "doc/man/man7/EVP_RAND-CRNG-TEST.7", "doc/man/man7/EVP_RAND-CTR-DRBG.7", "doc/man/man7/EVP_RAND-HASH-DRBG.7", "doc/man/man7/EVP_RAND-HMAC-DRBG.7", + "doc/man/man7/EVP_RAND-JITTER.7", "doc/man/man7/EVP_RAND-SEED-SRC.7", "doc/man/man7/EVP_RAND-TEST-RAND.7", "doc/man/man7/EVP_RAND.7", @@ -20119,17 +23441,19 @@ our %unified_info = ( "doc/man/man7/EVP_SIGNATURE-ECDSA.7", "doc/man/man7/EVP_SIGNATURE-ED25519.7", "doc/man/man7/EVP_SIGNATURE-HMAC.7", + "doc/man/man7/EVP_SIGNATURE-ML-DSA.7", "doc/man/man7/EVP_SIGNATURE-RSA.7", + "doc/man/man7/EVP_SIGNATURE-SLH-DSA.7", "doc/man/man7/OSSL_PROVIDER-FIPS.7", "doc/man/man7/OSSL_PROVIDER-base.7", "doc/man/man7/OSSL_PROVIDER-default.7", "doc/man/man7/OSSL_PROVIDER-legacy.7", "doc/man/man7/OSSL_PROVIDER-null.7", + "doc/man/man7/OSSL_STORE-winstore.7", "doc/man/man7/RAND.7", "doc/man/man7/RSA-PSS.7", "doc/man/man7/X25519.7", "doc/man/man7/bio.7", - "doc/man/man7/crypto.7", "doc/man/man7/ct.7", "doc/man/man7/des_modes.7", "doc/man/man7/evp.7", @@ -20140,14 +23464,31 @@ our %unified_info = ( "doc/man/man7/life_cycle-mac.7", "doc/man/man7/life_cycle-pkey.7", "doc/man/man7/life_cycle-rand.7", - "doc/man/man7/migration_guide.7", "doc/man/man7/openssl-core.h.7", "doc/man/man7/openssl-core_dispatch.h.7", "doc/man/man7/openssl-core_names.h.7", "doc/man/man7/openssl-env.7", "doc/man/man7/openssl-glossary.7", + "doc/man/man7/openssl-qlog.7", + "doc/man/man7/openssl-quic-concurrency.7", + "doc/man/man7/openssl-quic.7", "doc/man/man7/openssl-threads.7", "doc/man/man7/openssl_user_macros.7", + "doc/man/man7/ossl-guide-introduction.7", + "doc/man/man7/ossl-guide-libcrypto-introduction.7", + "doc/man/man7/ossl-guide-libraries-introduction.7", + "doc/man/man7/ossl-guide-libssl-introduction.7", + "doc/man/man7/ossl-guide-migration.7", + "doc/man/man7/ossl-guide-quic-client-block.7", + "doc/man/man7/ossl-guide-quic-client-non-block.7", + "doc/man/man7/ossl-guide-quic-introduction.7", + "doc/man/man7/ossl-guide-quic-multi-stream.7", + "doc/man/man7/ossl-guide-quic-server-block.7", + "doc/man/man7/ossl-guide-quic-server-non-block.7", + "doc/man/man7/ossl-guide-tls-client-block.7", + "doc/man/man7/ossl-guide-tls-client-non-block.7", + "doc/man/man7/ossl-guide-tls-introduction.7", + "doc/man/man7/ossl-guide-tls-server-block.7", "doc/man/man7/ossl_store-file.7", "doc/man/man7/ossl_store.7", "doc/man/man7/passphrase-encoding.7", @@ -20166,10 +23507,10 @@ our %unified_info = ( "doc/man/man7/provider-object.7", "doc/man/man7/provider-rand.7", "doc/man/man7/provider-signature.7", + "doc/man/man7/provider-skeymgmt.7", "doc/man/man7/provider-storemgmt.7", "doc/man/man7/provider.7", "doc/man/man7/proxy-certificates.7", - "doc/man/man7/ssl.7", "doc/man/man7/x509.7" ] }, @@ -20181,6 +23522,7 @@ our %unified_info = ( ], "programs" => [ "apps/openssl", + "fuzz/acert-test", "fuzz/asn1-test", "fuzz/asn1parse-test", "fuzz/bignum-test", @@ -20191,7 +23533,24 @@ our %unified_info = ( "fuzz/conf-test", "fuzz/crl-test", "fuzz/ct-test", + "fuzz/decoder-test", + "fuzz/dtlsclient-test", + "fuzz/dtlsserver-test", + "fuzz/hashtable-test", + "fuzz/ml-dsa-test", + "fuzz/ml-kem-test", + "fuzz/pem-test", + "fuzz/provider-test", + "fuzz/punycode-test", + "fuzz/quic-client-test", + "fuzz/quic-lcidm-test", + "fuzz/quic-rcidm-test", + "fuzz/quic-server-test", + "fuzz/quic-srtm-test", "fuzz/server-test", + "fuzz/slh-dsa-test", + "fuzz/smime-test", + "fuzz/v3name-test", "fuzz/x509-test", "test/aborttest", "test/acvp_test", @@ -20209,21 +23568,28 @@ our %unified_info = ( "test/asynctest", "test/bad_dtls_test", "test/bftest", + "test/bio_addr_test", + "test/bio_base64_test", "test/bio_callback_test", "test/bio_core_test", + "test/bio_dgram_test", "test/bio_enc_test", "test/bio_memleak_test", + "test/bio_meth_test", "test/bio_prefix_text", "test/bio_pw_callback_test", "test/bio_readbuffer_test", + "test/bio_tfo_test", "test/bioprinttest", "test/bn_internal_test", "test/bntest", + "test/build_wincrypt_test", "test/buildtest_c_aes", "test/buildtest_c_async", "test/buildtest_c_blowfish", "test/buildtest_c_bn", "test/buildtest_c_buffer", + "test/buildtest_c_byteorder", "test/buildtest_c_camellia", "test/buildtest_c_cast", "test/buildtest_c_cmac", @@ -20232,7 +23598,6 @@ our %unified_info = ( "test/buildtest_c_conftypes", "test/buildtest_c_core", "test/buildtest_c_core_dispatch", - "test/buildtest_c_core_names", "test/buildtest_c_core_object", "test/buildtest_c_cryptoerr_legacy", "test/buildtest_c_decoder", @@ -20241,6 +23606,7 @@ our %unified_info = ( "test/buildtest_c_dsa", "test/buildtest_c_dtls1", "test/buildtest_c_e_os2", + "test/buildtest_c_e_ostime", "test/buildtest_c_ebcdic", "test/buildtest_c_ec", "test/buildtest_c_ecdh", @@ -20250,13 +23616,16 @@ our %unified_info = ( "test/buildtest_c_evp", "test/buildtest_c_fips_names", "test/buildtest_c_hmac", + "test/buildtest_c_hpke", "test/buildtest_c_http", "test/buildtest_c_idea", + "test/buildtest_c_indicator", "test/buildtest_c_kdf", "test/buildtest_c_macros", "test/buildtest_c_md4", "test/buildtest_c_md5", "test/buildtest_c_mdc2", + "test/buildtest_c_ml_kem", "test/buildtest_c_modes", "test/buildtest_c_obj_mac", "test/buildtest_c_objects", @@ -20267,6 +23636,7 @@ our %unified_info = ( "test/buildtest_c_pem2", "test/buildtest_c_prov_ssl", "test/buildtest_c_provider", + "test/buildtest_c_quic", "test/buildtest_c_rand", "test/buildtest_c_rc2", "test/buildtest_c_rc4", @@ -20281,11 +23651,14 @@ our %unified_info = ( "test/buildtest_c_stack", "test/buildtest_c_store", "test/buildtest_c_symhacks", + "test/buildtest_c_thread", "test/buildtest_c_tls1", "test/buildtest_c_ts", "test/buildtest_c_txt_db", "test/buildtest_c_types", "test/buildtest_c_whrlpool", + "test/byteorder_test", + "test/ca_internals_test", "test/casttest", "test/chacha_internal_test", "test/cipher_overhead_test", @@ -20314,6 +23687,7 @@ our %unified_info = ( "test/curve448_internal_test", "test/d2i_test", "test/danetest", + "test/decoder_propq_test", "test/defltfips_test", "test/destest", "test/dhtest", @@ -20338,9 +23712,12 @@ our %unified_info = ( "test/evp_kdf_test", "test/evp_libctx_test", "test/evp_pkey_ctx_new_from_name", + "test/evp_pkey_dhkem_test", "test/evp_pkey_dparams_test", "test/evp_pkey_provided_test", + "test/evp_skey_test", "test/evp_test", + "test/evp_xof_test", "test/exdatatest", "test/exptest", "test/ext_internal_test", @@ -20350,21 +23727,29 @@ our %unified_info = ( "test/gmdifftest", "test/hexstr_test", "test/hmactest", + "test/hpke_test", "test/http_test", "test/ideatest", "test/igetest", + "test/json_test", "test/keymgmt_internal_test", "test/lhash_test", + "test/list_test", "test/localetest", "test/mdc2_internal_test", "test/mdc2test", + "test/membio_test", "test/memleaktest", + "test/ml_dsa_test", + "test/ml_kem_evp_extra_test", + "test/ml_kem_internal_test", "test/modes_internal_test", "test/namemap_internal_test", "test/nodefltctxtest", "test/ocspapitest", "test/ossl_store_test", "test/packettest", + "test/pairwise_fail_test", "test/param_build_test", "test/params_api_test", "test/params_conversion_test", @@ -20373,36 +23758,65 @@ our %unified_info = ( "test/pbetest", "test/pem_read_depr_test", "test/pemtest", + "test/pkcs12_api_test", "test/pkcs12_format_test", "test/pkcs7_test", "test/pkey_meth_kdf_test", "test/pkey_meth_test", "test/poly1305_internal_test", + "test/priority_queue_test", "test/property_test", "test/prov_config_test", "test/provfetchtest", + "test/provider_default_search_path_test", "test/provider_fallback_test", "test/provider_internal_test", "test/provider_pkey_test", "test/provider_status_test", "test/provider_test", "test/punycode_test", + "test/quic_ackm_test", + "test/quic_cc_test", + "test/quic_cfq_test", + "test/quic_client_test", + "test/quic_fc_test", + "test/quic_fifd_test", + "test/quic_lcidm_test", + "test/quic_multistream_test", + "test/quic_newcid_test", + "test/quic_qlog_test", + "test/quic_radix_test", + "test/quic_rcidm_test", + "test/quic_record_test", + "test/quic_srt_gen_test", + "test/quic_srtm_test", + "test/quic_stream_test", + "test/quic_tserver_test", + "test/quic_txp_test", + "test/quic_txpim_test", + "test/quic_wire_test", + "test/quicapitest", + "test/quicfaultstest", "test/rand_status_test", "test/rand_test", "test/rc2test", "test/rc4test", "test/rc5test", - "test/rdrand_sanitytest", + "test/rdcpu_sanitytest", "test/recordlentest", + "test/rpktest", "test/rsa_complex", "test/rsa_mp_test", "test/rsa_sp800_56b_test", "test/rsa_test", + "test/rsa_x931_test", + "test/safe_math_test", "test/sanitytest", "test/secmemtest", "test/servername_test", "test/sha_test", "test/siphash_internal_test", + "test/slh_dsa_test", "test/sm2_internal_test", "test/sm3_internal_test", "test/sm4_internal_test", @@ -20410,6 +23824,7 @@ our %unified_info = ( "test/srptest", "test/ssl_cert_table_internal_test", "test/ssl_ctx_test", + "test/ssl_handshake_rtt_test", "test/ssl_old_test", "test/ssl_test", "test/ssl_test_ctx_test", @@ -20417,13 +23832,17 @@ our %unified_info = ( "test/sslbuffertest", "test/sslcorrupttest", "test/stack_test", + "test/strtoultest", "test/sysdefaulttest", "test/test_test", + "test/threadpool_test", "test/threadstest", "test/threadstest_fips", "test/time_offset_test", + "test/time_test", "test/tls13ccstest", "test/tls13encryptiontest", + "test/tls13groupselection_test", "test/trace_api_test", "test/uitest", "test/upcallstest", @@ -20433,9 +23852,13 @@ our %unified_info = ( "test/verify_extra_test", "test/versions", "test/wpackettest", + "test/x509_acert_test", "test/x509_check_cert_pkey_test", "test/x509_dup_cert_test", "test/x509_internal_test", + "test/x509_load_cert_file_test", + "test/x509_req_test", + "test/x509_test", "test/x509_time_test", "test/x509aux" ], @@ -20451,6 +23874,33 @@ our %unified_info = ( "apps/CA.pl" => [ "apps/CA.pl.in" ], + "apps/ca_internals_test-bin-ca.o" => [ + "apps/ca.c" + ], + "apps/lib/ca_internals_test-bin-app_libctx.o" => [ + "apps/lib/app_libctx.c" + ], + "apps/lib/ca_internals_test-bin-app_provider.o" => [ + "apps/lib/app_provider.c" + ], + "apps/lib/ca_internals_test-bin-app_rand.o" => [ + "apps/lib/app_rand.c" + ], + "apps/lib/ca_internals_test-bin-app_x509.o" => [ + "apps/lib/app_x509.c" + ], + "apps/lib/ca_internals_test-bin-apps.o" => [ + "apps/lib/apps.c" + ], + "apps/lib/ca_internals_test-bin-apps_ui.o" => [ + "apps/lib/apps_ui.c" + ], + "apps/lib/ca_internals_test-bin-engine.o" => [ + "apps/lib/engine.c" + ], + "apps/lib/ca_internals_test-bin-fmt.o" => [ + "apps/lib/fmt.c" + ], "apps/lib/cmp_client_test-bin-cmp_mock_srv.o" => [ "apps/lib/cmp_mock_srv.c" ], @@ -20472,6 +23922,9 @@ our %unified_info = ( "apps/lib/libapps-lib-apps.o" => [ "apps/lib/apps.c" ], + "apps/lib/libapps-lib-apps_opt_printf.o" => [ + "apps/lib/apps_opt_printf.c" + ], "apps/lib/libapps-lib-apps_ui.o" => [ "apps/lib/apps_ui.c" ], @@ -20490,6 +23943,9 @@ our %unified_info = ( "apps/lib/libapps-lib-http_server.o" => [ "apps/lib/http_server.c" ], + "apps/lib/libapps-lib-log.o" => [ + "apps/lib/log.c" + ], "apps/lib/libapps-lib-names.o" => [ "apps/lib/names.c" ], @@ -20521,12 +23977,14 @@ our %unified_info = ( "apps/lib/libapps-lib-app_rand.o", "apps/lib/libapps-lib-app_x509.o", "apps/lib/libapps-lib-apps.o", + "apps/lib/libapps-lib-apps_opt_printf.o", "apps/lib/libapps-lib-apps_ui.o", "apps/lib/libapps-lib-columns.o", "apps/lib/libapps-lib-engine.o", "apps/lib/libapps-lib-engine_loader.o", "apps/lib/libapps-lib-fmt.o", "apps/lib/libapps-lib-http_server.o", + "apps/lib/libapps-lib-log.o", "apps/lib/libapps-lib-names.o", "apps/lib/libapps-lib-opt.o", "apps/lib/libapps-lib-s_cb.o", @@ -20580,6 +24038,7 @@ our %unified_info = ( "apps/openssl-bin-s_server.o", "apps/openssl-bin-s_time.o", "apps/openssl-bin-sess_id.o", + "apps/openssl-bin-skeyutl.o", "apps/openssl-bin-smime.o", "apps/openssl-bin-speed.o", "apps/openssl-bin-spkac.o", @@ -20725,6 +24184,9 @@ our %unified_info = ( "apps/openssl-bin-sess_id.o" => [ "apps/sess_id.c" ], + "apps/openssl-bin-skeyutl.o" => [ + "apps/skeyutl.c" + ], "apps/openssl-bin-smime.o" => [ "apps/smime.c" ], @@ -20788,6 +24250,9 @@ our %unified_info = ( "crypto/aes/libcrypto-lib-aesni-x86_64.o" => [ "crypto/aes/aesni-x86_64.s" ], + "crypto/aes/libcrypto-lib-aesni-xts-avx512.o" => [ + "crypto/aes/aesni-xts-avx512.s" + ], "crypto/aes/libcrypto-lib-bsaes-x86_64.o" => [ "crypto/aes/bsaes-x86_64.s" ], @@ -20815,6 +24280,9 @@ our %unified_info = ( "crypto/aes/libfips-lib-aesni-x86_64.o" => [ "crypto/aes/aesni-x86_64.s" ], + "crypto/aes/libfips-lib-aesni-xts-avx512.o" => [ + "crypto/aes/aesni-xts-avx512.s" + ], "crypto/aes/libfips-lib-bsaes-x86_64.o" => [ "crypto/aes/bsaes-x86_64.s" ], @@ -20824,6 +24292,12 @@ our %unified_info = ( "crypto/aria/libcrypto-lib-aria.o" => [ "crypto/aria/aria.c" ], + "crypto/asn1/asn1_time_test-bin-a_time.o" => [ + "crypto/asn1/a_time.c" + ], + "crypto/asn1/ca_internals_test-bin-a_time.o" => [ + "crypto/asn1/a_time.c" + ], "crypto/asn1/libcrypto-lib-a_bitstr.o" => [ "crypto/asn1/a_bitstr.c" ], @@ -21016,6 +24490,9 @@ our %unified_info = ( "crypto/asn1/libcrypto-lib-x_val.o" => [ "crypto/asn1/x_val.c" ], + "crypto/asn1_time_test-bin-ctype.o" => [ + "crypto/ctype.c" + ], "crypto/async/arch/libcrypto-lib-async_null.o" => [ "crypto/async/arch/async_null.c" ], @@ -21109,6 +24586,9 @@ our %unified_info = ( "crypto/bio/libcrypto-lib-bss_dgram.o" => [ "crypto/bio/bss_dgram.c" ], + "crypto/bio/libcrypto-lib-bss_dgram_pair.o" => [ + "crypto/bio/bss_dgram_pair.c" + ], "crypto/bio/libcrypto-lib-bss_fd.o" => [ "crypto/bio/bss_fd.c" ], @@ -21232,12 +24712,27 @@ our %unified_info = ( "crypto/bn/libcrypto-lib-bn_x931p.o" => [ "crypto/bn/bn_x931p.c" ], + "crypto/bn/libcrypto-lib-rsaz-2k-avx512.o" => [ + "crypto/bn/rsaz-2k-avx512.s" + ], + "crypto/bn/libcrypto-lib-rsaz-2k-avxifma.o" => [ + "crypto/bn/rsaz-2k-avxifma.s" + ], + "crypto/bn/libcrypto-lib-rsaz-3k-avx512.o" => [ + "crypto/bn/rsaz-3k-avx512.s" + ], + "crypto/bn/libcrypto-lib-rsaz-3k-avxifma.o" => [ + "crypto/bn/rsaz-3k-avxifma.s" + ], + "crypto/bn/libcrypto-lib-rsaz-4k-avx512.o" => [ + "crypto/bn/rsaz-4k-avx512.s" + ], + "crypto/bn/libcrypto-lib-rsaz-4k-avxifma.o" => [ + "crypto/bn/rsaz-4k-avxifma.s" + ], "crypto/bn/libcrypto-lib-rsaz-avx2.o" => [ "crypto/bn/rsaz-avx2.s" ], - "crypto/bn/libcrypto-lib-rsaz-avx512.o" => [ - "crypto/bn/rsaz-avx512.s" - ], "crypto/bn/libcrypto-lib-rsaz-x86_64.o" => [ "crypto/bn/rsaz-x86_64.s" ], @@ -21337,12 +24832,27 @@ our %unified_info = ( "crypto/bn/libfips-lib-bn_word.o" => [ "crypto/bn/bn_word.c" ], + "crypto/bn/libfips-lib-rsaz-2k-avx512.o" => [ + "crypto/bn/rsaz-2k-avx512.s" + ], + "crypto/bn/libfips-lib-rsaz-2k-avxifma.o" => [ + "crypto/bn/rsaz-2k-avxifma.s" + ], + "crypto/bn/libfips-lib-rsaz-3k-avx512.o" => [ + "crypto/bn/rsaz-3k-avx512.s" + ], + "crypto/bn/libfips-lib-rsaz-3k-avxifma.o" => [ + "crypto/bn/rsaz-3k-avxifma.s" + ], + "crypto/bn/libfips-lib-rsaz-4k-avx512.o" => [ + "crypto/bn/rsaz-4k-avx512.s" + ], + "crypto/bn/libfips-lib-rsaz-4k-avxifma.o" => [ + "crypto/bn/rsaz-4k-avxifma.s" + ], "crypto/bn/libfips-lib-rsaz-avx2.o" => [ "crypto/bn/rsaz-avx2.s" ], - "crypto/bn/libfips-lib-rsaz-avx512.o" => [ - "crypto/bn/rsaz-avx512.s" - ], "crypto/bn/libfips-lib-rsaz-x86_64.o" => [ "crypto/bn/rsaz-x86_64.s" ], @@ -21370,6 +24880,9 @@ our %unified_info = ( "crypto/buffer/libfips-lib-buffer.o" => [ "crypto/buffer/buffer.c" ], + "crypto/ca_internals_test-bin-ctype.o" => [ + "crypto/ctype.c" + ], "crypto/camellia/libcrypto-lib-cmll-x86_64.o" => [ "crypto/camellia/cmll-x86_64.s" ], @@ -21424,6 +24937,9 @@ our %unified_info = ( "crypto/cmp/libcrypto-lib-cmp_err.o" => [ "crypto/cmp/cmp_err.c" ], + "crypto/cmp/libcrypto-lib-cmp_genm.o" => [ + "crypto/cmp/cmp_genm.c" + ], "crypto/cmp/libcrypto-lib-cmp_hdr.o" => [ "crypto/cmp/cmp_hdr.c" ], @@ -22117,9 +25633,15 @@ our %unified_info = ( "crypto/err/libcrypto-lib-err_blocks.o" => [ "crypto/err/err_blocks.c" ], + "crypto/err/libcrypto-lib-err_mark.o" => [ + "crypto/err/err_mark.c" + ], "crypto/err/libcrypto-lib-err_prn.o" => [ "crypto/err/err_prn.c" ], + "crypto/err/libcrypto-lib-err_save.o" => [ + "crypto/err/err_save.c" + ], "crypto/ess/libcrypto-lib-ess_asn1.o" => [ "crypto/ess/ess_asn1.c" ], @@ -22366,9 +25888,15 @@ our %unified_info = ( "crypto/evp/libcrypto-lib-pmeth_lib.o" => [ "crypto/evp/pmeth_lib.c" ], + "crypto/evp/libcrypto-lib-s_lib.o" => [ + "crypto/evp/s_lib.c" + ], "crypto/evp/libcrypto-lib-signature.o" => [ "crypto/evp/signature.c" ], + "crypto/evp/libcrypto-lib-skeymgmt_meth.o" => [ + "crypto/evp/skeymgmt_meth.c" + ], "crypto/evp/libfips-lib-asymcipher.o" => [ "crypto/evp/asymcipher.c" ], @@ -22414,9 +25942,6 @@ our %unified_info = ( "crypto/evp/libfips-lib-keymgmt_meth.o" => [ "crypto/evp/keymgmt_meth.c" ], - "crypto/evp/libfips-lib-m_sigver.o" => [ - "crypto/evp/m_sigver.c" - ], "crypto/evp/libfips-lib-mac_lib.o" => [ "crypto/evp/mac_lib.c" ], @@ -22435,9 +25960,15 @@ our %unified_info = ( "crypto/evp/libfips-lib-pmeth_lib.o" => [ "crypto/evp/pmeth_lib.c" ], + "crypto/evp/libfips-lib-s_lib.o" => [ + "crypto/evp/s_lib.c" + ], "crypto/evp/libfips-lib-signature.o" => [ "crypto/evp/signature.c" ], + "crypto/evp/libfips-lib-skeymgmt_meth.o" => [ + "crypto/evp/skeymgmt_meth.c" + ], "crypto/ffc/libcrypto-lib-ffc_backend.o" => [ "crypto/ffc/ffc_backend.c" ], @@ -22480,12 +26011,30 @@ our %unified_info = ( "crypto/ffc/libfips-lib-ffc_params_validate.o" => [ "crypto/ffc/ffc_params_validate.c" ], + "crypto/hashtable/libcrypto-lib-hashfunc.o" => [ + "crypto/hashtable/hashfunc.c" + ], + "crypto/hashtable/libcrypto-lib-hashtable.o" => [ + "crypto/hashtable/hashtable.c" + ], + "crypto/hashtable/libfips-lib-hashfunc.o" => [ + "crypto/hashtable/hashfunc.c" + ], + "crypto/hashtable/libfips-lib-hashtable.o" => [ + "crypto/hashtable/hashtable.c" + ], "crypto/hmac/libcrypto-lib-hmac.o" => [ "crypto/hmac/hmac.c" ], "crypto/hmac/libfips-lib-hmac.o" => [ "crypto/hmac/hmac.c" ], + "crypto/hpke/libcrypto-lib-hpke.o" => [ + "crypto/hpke/hpke.c" + ], + "crypto/hpke/libcrypto-lib-hpke_util.o" => [ + "crypto/hpke/hpke_util.c" + ], "crypto/http/libcrypto-lib-http_client.o" => [ "crypto/http/http_client.c" ], @@ -22528,6 +26077,9 @@ our %unified_info = ( "crypto/libcrypto-lib-bsearch.o" => [ "crypto/bsearch.c" ], + "crypto/libcrypto-lib-comp_methods.o" => [ + "crypto/comp_methods.c" + ], "crypto/libcrypto-lib-context.o" => [ "crypto/context.c" ], @@ -22555,9 +26107,15 @@ our %unified_info = ( "crypto/libcrypto-lib-cversion.o" => [ "crypto/cversion.c" ], + "crypto/libcrypto-lib-defaults.o" => [ + "crypto/defaults.c" + ], "crypto/libcrypto-lib-der_writer.o" => [ "crypto/der_writer.c" ], + "crypto/libcrypto-lib-deterministic_nonce.o" => [ + "crypto/deterministic_nonce.c" + ], "crypto/libcrypto-lib-ebcdic.o" => [ "crypto/ebcdic.c" ], @@ -22567,6 +26125,9 @@ our %unified_info = ( "crypto/libcrypto-lib-getenv.o" => [ "crypto/getenv.c" ], + "crypto/libcrypto-lib-indicator_core.o" => [ + "crypto/indicator_core.c" + ], "crypto/libcrypto-lib-info.o" => [ "crypto/info.c" ], @@ -22615,6 +26176,9 @@ our %unified_info = ( "crypto/libcrypto-lib-params_from_text.o" => [ "crypto/params_from_text.c" ], + "crypto/libcrypto-lib-params_idx.o" => [ + "crypto/params_idx.c" + ], "crypto/libcrypto-lib-passphrase.o" => [ "crypto/passphrase.c" ], @@ -22636,12 +26200,21 @@ our %unified_info = ( "crypto/libcrypto-lib-punycode.o" => [ "crypto/punycode.c" ], + "crypto/libcrypto-lib-quic_vlint.o" => [ + "crypto/quic_vlint.c" + ], "crypto/libcrypto-lib-self_test_core.o" => [ "crypto/self_test_core.c" ], + "crypto/libcrypto-lib-sleep.o" => [ + "crypto/sleep.c" + ], "crypto/libcrypto-lib-sparse_array.o" => [ "crypto/sparse_array.c" ], + "crypto/libcrypto-lib-ssl_err.o" => [ + "crypto/ssl_err.c" + ], "crypto/libcrypto-lib-threads_lib.o" => [ "crypto/threads_lib.c" ], @@ -22654,6 +26227,9 @@ our %unified_info = ( "crypto/libcrypto-lib-threads_win.o" => [ "crypto/threads_win.c" ], + "crypto/libcrypto-lib-time.o" => [ + "crypto/time.c" + ], "crypto/libcrypto-lib-trace.o" => [ "crypto/trace.c" ], @@ -22720,6 +26296,9 @@ our %unified_info = ( "crypto/libfips-lib-params_from_text.o" => [ "crypto/params_from_text.c" ], + "crypto/libfips-lib-params_idx.o" => [ + "crypto/params_idx.c" + ], "crypto/libfips-lib-provider_core.o" => [ "crypto/provider_core.c" ], @@ -22744,6 +26323,9 @@ our %unified_info = ( "crypto/libfips-lib-threads_win.o" => [ "crypto/threads_win.c" ], + "crypto/libfips-lib-time.o" => [ + "crypto/time.c" + ], "crypto/libfips-lib-x86_64cpuid.o" => [ "crypto/x86_64cpuid.s" ], @@ -22771,6 +26353,63 @@ our %unified_info = ( "crypto/mdc2/libcrypto-lib-mdc2dgst.o" => [ "crypto/mdc2/mdc2dgst.c" ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_encoders.o" => [ + "crypto/ml_dsa/ml_dsa_encoders.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key.o" => [ + "crypto/ml_dsa/ml_dsa_key.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key_compress.o" => [ + "crypto/ml_dsa/ml_dsa_key_compress.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_matrix.o" => [ + "crypto/ml_dsa/ml_dsa_matrix.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_ntt.o" => [ + "crypto/ml_dsa/ml_dsa_ntt.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_params.o" => [ + "crypto/ml_dsa/ml_dsa_params.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sample.o" => [ + "crypto/ml_dsa/ml_dsa_sample.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sign.o" => [ + "crypto/ml_dsa/ml_dsa_sign.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_encoders.o" => [ + "crypto/ml_dsa/ml_dsa_encoders.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_key.o" => [ + "crypto/ml_dsa/ml_dsa_key.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_key_compress.o" => [ + "crypto/ml_dsa/ml_dsa_key_compress.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_matrix.o" => [ + "crypto/ml_dsa/ml_dsa_matrix.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_ntt.o" => [ + "crypto/ml_dsa/ml_dsa_ntt.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_params.o" => [ + "crypto/ml_dsa/ml_dsa_params.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_sample.o" => [ + "crypto/ml_dsa/ml_dsa_sample.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_sign.o" => [ + "crypto/ml_dsa/ml_dsa_sign.c" + ], + "crypto/ml_kem/libcrypto-lib-ml_kem.o" => [ + "crypto/ml_kem/ml_kem.c" + ], + "crypto/ml_kem/libfips-lib-ml_kem.o" => [ + "crypto/ml_kem/ml_kem.c" + ], + "crypto/modes/libcrypto-lib-aes-gcm-avx512.o" => [ + "crypto/modes/aes-gcm-avx512.s" + ], "crypto/modes/libcrypto-lib-aesni-gcm-x86_64.o" => [ "crypto/modes/aesni-gcm-x86_64.s" ], @@ -22810,6 +26449,12 @@ our %unified_info = ( "crypto/modes/libcrypto-lib-xts128.o" => [ "crypto/modes/xts128.c" ], + "crypto/modes/libcrypto-lib-xts128gb.o" => [ + "crypto/modes/xts128gb.c" + ], + "crypto/modes/libfips-lib-aes-gcm-avx512.o" => [ + "crypto/modes/aes-gcm-avx512.s" + ], "crypto/modes/libfips-lib-aesni-gcm-x86_64.o" => [ "crypto/modes/aesni-gcm-x86_64.s" ], @@ -22840,6 +26485,9 @@ our %unified_info = ( "crypto/modes/libfips-lib-xts128.o" => [ "crypto/modes/xts128.c" ], + "crypto/modes/libfips-lib-xts128gb.o" => [ + "crypto/modes/xts128gb.c" + ], "crypto/objects/libcrypto-lib-o_names.o" => [ "crypto/objects/o_names.c" ], @@ -22885,6 +26533,9 @@ our %unified_info = ( "crypto/ocsp/libcrypto-lib-v3_ocsp.o" => [ "crypto/ocsp/v3_ocsp.c" ], + "crypto/packettest-bin-quic_vlint.o" => [ + "crypto/quic_vlint.c" + ], "crypto/pem/libcrypto-lib-pem_all.o" => [ "crypto/pem/pem_all.c" ], @@ -23047,6 +26698,9 @@ our %unified_info = ( "crypto/rand/libcrypto-lib-rand_pool.o" => [ "crypto/rand/rand_pool.c" ], + "crypto/rand/libcrypto-lib-rand_uniform.o" => [ + "crypto/rand/rand_uniform.c" + ], "crypto/rand/libcrypto-lib-randfile.o" => [ "crypto/rand/randfile.c" ], @@ -23290,6 +26944,66 @@ our %unified_info = ( "crypto/siphash/libcrypto-lib-siphash.o" => [ "crypto/siphash/siphash.c" ], + "crypto/slh_dsa/libcrypto-lib-slh_adrs.o" => [ + "crypto/slh_dsa/slh_adrs.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_dsa.o" => [ + "crypto/slh_dsa/slh_dsa.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_dsa_hash_ctx.o" => [ + "crypto/slh_dsa/slh_dsa_hash_ctx.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_dsa_key.o" => [ + "crypto/slh_dsa/slh_dsa_key.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_fors.o" => [ + "crypto/slh_dsa/slh_fors.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_hash.o" => [ + "crypto/slh_dsa/slh_hash.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_hypertree.o" => [ + "crypto/slh_dsa/slh_hypertree.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_params.o" => [ + "crypto/slh_dsa/slh_params.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_wots.o" => [ + "crypto/slh_dsa/slh_wots.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_xmss.o" => [ + "crypto/slh_dsa/slh_xmss.c" + ], + "crypto/slh_dsa/libfips-lib-slh_adrs.o" => [ + "crypto/slh_dsa/slh_adrs.c" + ], + "crypto/slh_dsa/libfips-lib-slh_dsa.o" => [ + "crypto/slh_dsa/slh_dsa.c" + ], + "crypto/slh_dsa/libfips-lib-slh_dsa_hash_ctx.o" => [ + "crypto/slh_dsa/slh_dsa_hash_ctx.c" + ], + "crypto/slh_dsa/libfips-lib-slh_dsa_key.o" => [ + "crypto/slh_dsa/slh_dsa_key.c" + ], + "crypto/slh_dsa/libfips-lib-slh_fors.o" => [ + "crypto/slh_dsa/slh_fors.c" + ], + "crypto/slh_dsa/libfips-lib-slh_hash.o" => [ + "crypto/slh_dsa/slh_hash.c" + ], + "crypto/slh_dsa/libfips-lib-slh_hypertree.o" => [ + "crypto/slh_dsa/slh_hypertree.c" + ], + "crypto/slh_dsa/libfips-lib-slh_params.o" => [ + "crypto/slh_dsa/slh_params.c" + ], + "crypto/slh_dsa/libfips-lib-slh_wots.o" => [ + "crypto/slh_dsa/slh_wots.c" + ], + "crypto/slh_dsa/libfips-lib-slh_xmss.o" => [ + "crypto/slh_dsa/slh_xmss.c" + ], "crypto/sm2/libcrypto-lib-sm2_crypt.o" => [ "crypto/sm2/sm2_crypt.c" ], @@ -23344,6 +27058,42 @@ our %unified_info = ( "crypto/store/libcrypto-lib-store_strings.o" => [ "crypto/store/store_strings.c" ], + "crypto/thread/arch/libcrypto-lib-thread_none.o" => [ + "crypto/thread/arch/thread_none.c" + ], + "crypto/thread/arch/libcrypto-lib-thread_posix.o" => [ + "crypto/thread/arch/thread_posix.c" + ], + "crypto/thread/arch/libcrypto-lib-thread_win.o" => [ + "crypto/thread/arch/thread_win.c" + ], + "crypto/thread/arch/libfips-lib-thread_none.o" => [ + "crypto/thread/arch/thread_none.c" + ], + "crypto/thread/arch/libfips-lib-thread_posix.o" => [ + "crypto/thread/arch/thread_posix.c" + ], + "crypto/thread/arch/libfips-lib-thread_win.o" => [ + "crypto/thread/arch/thread_win.c" + ], + "crypto/thread/libcrypto-lib-api.o" => [ + "crypto/thread/api.c" + ], + "crypto/thread/libcrypto-lib-arch.o" => [ + "crypto/thread/arch.c" + ], + "crypto/thread/libcrypto-lib-internal.o" => [ + "crypto/thread/internal.c" + ], + "crypto/thread/libfips-lib-api.o" => [ + "crypto/thread/api.c" + ], + "crypto/thread/libfips-lib-arch.o" => [ + "crypto/thread/arch.c" + ], + "crypto/thread/libfips-lib-internal.o" => [ + "crypto/thread/internal.c" + ], "crypto/ts/libcrypto-lib-ts_asn1.o" => [ "crypto/ts/ts_asn1.c" ], @@ -23428,6 +27178,9 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-pcy_tree.o" => [ "crypto/x509/pcy_tree.c" ], + "crypto/x509/libcrypto-lib-t_acert.o" => [ + "crypto/x509/t_acert.c" + ], "crypto/x509/libcrypto-lib-t_crl.o" => [ "crypto/x509/t_crl.c" ], @@ -23437,6 +27190,12 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-t_x509.o" => [ "crypto/x509/t_x509.c" ], + "crypto/x509/libcrypto-lib-v3_aaa.o" => [ + "crypto/x509/v3_aaa.c" + ], + "crypto/x509/libcrypto-lib-v3_ac_tgt.o" => [ + "crypto/x509/v3_ac_tgt.c" + ], "crypto/x509/libcrypto-lib-v3_addr.o" => [ "crypto/x509/v3_addr.c" ], @@ -23452,6 +27211,21 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_asid.o" => [ "crypto/x509/v3_asid.c" ], + "crypto/x509/libcrypto-lib-v3_attrdesc.o" => [ + "crypto/x509/v3_attrdesc.c" + ], + "crypto/x509/libcrypto-lib-v3_attrmap.o" => [ + "crypto/x509/v3_attrmap.c" + ], + "crypto/x509/libcrypto-lib-v3_audit_id.o" => [ + "crypto/x509/v3_audit_id.c" + ], + "crypto/x509/libcrypto-lib-v3_authattid.o" => [ + "crypto/x509/v3_authattid.c" + ], + "crypto/x509/libcrypto-lib-v3_battcons.o" => [ + "crypto/x509/v3_battcons.c" + ], "crypto/x509/libcrypto-lib-v3_bcons.o" => [ "crypto/x509/v3_bcons.c" ], @@ -23476,15 +27250,24 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_genn.o" => [ "crypto/x509/v3_genn.c" ], + "crypto/x509/libcrypto-lib-v3_group_ac.o" => [ + "crypto/x509/v3_group_ac.c" + ], "crypto/x509/libcrypto-lib-v3_ia5.o" => [ "crypto/x509/v3_ia5.c" ], + "crypto/x509/libcrypto-lib-v3_ind_iss.o" => [ + "crypto/x509/v3_ind_iss.c" + ], "crypto/x509/libcrypto-lib-v3_info.o" => [ "crypto/x509/v3_info.c" ], "crypto/x509/libcrypto-lib-v3_int.o" => [ "crypto/x509/v3_int.c" ], + "crypto/x509/libcrypto-lib-v3_iobo.o" => [ + "crypto/x509/v3_iobo.c" + ], "crypto/x509/libcrypto-lib-v3_ist.o" => [ "crypto/x509/v3_ist.c" ], @@ -23494,6 +27277,12 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_ncons.o" => [ "crypto/x509/v3_ncons.c" ], + "crypto/x509/libcrypto-lib-v3_no_ass.o" => [ + "crypto/x509/v3_no_ass.c" + ], + "crypto/x509/libcrypto-lib-v3_no_rev_avail.o" => [ + "crypto/x509/v3_no_rev_avail.c" + ], "crypto/x509/libcrypto-lib-v3_pci.o" => [ "crypto/x509/v3_pci.c" ], @@ -23515,18 +27304,36 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_purp.o" => [ "crypto/x509/v3_purp.c" ], + "crypto/x509/libcrypto-lib-v3_rolespec.o" => [ + "crypto/x509/v3_rolespec.c" + ], "crypto/x509/libcrypto-lib-v3_san.o" => [ "crypto/x509/v3_san.c" ], + "crypto/x509/libcrypto-lib-v3_sda.o" => [ + "crypto/x509/v3_sda.c" + ], + "crypto/x509/libcrypto-lib-v3_single_use.o" => [ + "crypto/x509/v3_single_use.c" + ], "crypto/x509/libcrypto-lib-v3_skid.o" => [ "crypto/x509/v3_skid.c" ], + "crypto/x509/libcrypto-lib-v3_soa_id.o" => [ + "crypto/x509/v3_soa_id.c" + ], "crypto/x509/libcrypto-lib-v3_sxnet.o" => [ "crypto/x509/v3_sxnet.c" ], + "crypto/x509/libcrypto-lib-v3_timespec.o" => [ + "crypto/x509/v3_timespec.c" + ], "crypto/x509/libcrypto-lib-v3_tlsf.o" => [ "crypto/x509/v3_tlsf.c" ], + "crypto/x509/libcrypto-lib-v3_usernotice.o" => [ + "crypto/x509/v3_usernotice.c" + ], "crypto/x509/libcrypto-lib-v3_utf8.o" => [ "crypto/x509/v3_utf8.c" ], @@ -23536,6 +27343,9 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3err.o" => [ "crypto/x509/v3err.c" ], + "crypto/x509/libcrypto-lib-x509_acert.o" => [ + "crypto/x509/x509_acert.c" + ], "crypto/x509/libcrypto-lib-x509_att.o" => [ "crypto/x509/x509_att.c" ], @@ -23587,6 +27397,9 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x509_vpm.o" => [ "crypto/x509/x509_vpm.c" ], + "crypto/x509/libcrypto-lib-x509aset.o" => [ + "crypto/x509/x509aset.c" + ], "crypto/x509/libcrypto-lib-x509cset.o" => [ "crypto/x509/x509cset.c" ], @@ -23614,6 +27427,9 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x_exten.o" => [ "crypto/x509/x_exten.c" ], + "crypto/x509/libcrypto-lib-x_ietfatt.o" => [ + "crypto/x509/x_ietfatt.c" + ], "crypto/x509/libcrypto-lib-x_name.o" => [ "crypto/x509/x_name.c" ], @@ -23638,6 +27454,16 @@ our %unified_info = ( "engines/libcrypto-lib-e_padlock.o" => [ "engines/e_padlock.c" ], + "fuzz/acert-test" => [ + "fuzz/acert-test-bin-acert.o", + "fuzz/acert-test-bin-test-corpus.o" + ], + "fuzz/acert-test-bin-acert.o" => [ + "fuzz/acert.c" + ], + "fuzz/acert-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], "fuzz/asn1-test" => [ "fuzz/asn1-test-bin-asn1.o", "fuzz/asn1-test-bin-fuzz_rand.o", @@ -23750,6 +27576,190 @@ our %unified_info = ( "fuzz/ct-test-bin-test-corpus.o" => [ "fuzz/test-corpus.c" ], + "fuzz/decoder-test" => [ + "fuzz/decoder-test-bin-decoder.o", + "fuzz/decoder-test-bin-fuzz_rand.o", + "fuzz/decoder-test-bin-test-corpus.o" + ], + "fuzz/decoder-test-bin-decoder.o" => [ + "fuzz/decoder.c" + ], + "fuzz/decoder-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/decoder-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/dtlsclient-test" => [ + "fuzz/dtlsclient-test-bin-dtlsclient.o", + "fuzz/dtlsclient-test-bin-fuzz_rand.o", + "fuzz/dtlsclient-test-bin-test-corpus.o" + ], + "fuzz/dtlsclient-test-bin-dtlsclient.o" => [ + "fuzz/dtlsclient.c" + ], + "fuzz/dtlsclient-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/dtlsclient-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/dtlsserver-test" => [ + "fuzz/dtlsserver-test-bin-dtlsserver.o", + "fuzz/dtlsserver-test-bin-fuzz_rand.o", + "fuzz/dtlsserver-test-bin-test-corpus.o" + ], + "fuzz/dtlsserver-test-bin-dtlsserver.o" => [ + "fuzz/dtlsserver.c" + ], + "fuzz/dtlsserver-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/dtlsserver-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/hashtable-test" => [ + "fuzz/hashtable-test-bin-fuzz_rand.o", + "fuzz/hashtable-test-bin-hashtable.o", + "fuzz/hashtable-test-bin-test-corpus.o" + ], + "fuzz/hashtable-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/hashtable-test-bin-hashtable.o" => [ + "fuzz/hashtable.c" + ], + "fuzz/hashtable-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/ml-dsa-test" => [ + "fuzz/ml-dsa-test-bin-fuzz_rand.o", + "fuzz/ml-dsa-test-bin-ml-dsa.o", + "fuzz/ml-dsa-test-bin-test-corpus.o" + ], + "fuzz/ml-dsa-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/ml-dsa-test-bin-ml-dsa.o" => [ + "fuzz/ml-dsa.c" + ], + "fuzz/ml-dsa-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/ml-kem-test" => [ + "fuzz/ml-kem-test-bin-fuzz_rand.o", + "fuzz/ml-kem-test-bin-ml-kem.o", + "fuzz/ml-kem-test-bin-test-corpus.o" + ], + "fuzz/ml-kem-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/ml-kem-test-bin-ml-kem.o" => [ + "fuzz/ml-kem.c" + ], + "fuzz/ml-kem-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/pem-test" => [ + "fuzz/pem-test-bin-pem.o", + "fuzz/pem-test-bin-test-corpus.o" + ], + "fuzz/pem-test-bin-pem.o" => [ + "fuzz/pem.c" + ], + "fuzz/pem-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/provider-test" => [ + "fuzz/provider-test-bin-provider.o", + "fuzz/provider-test-bin-test-corpus.o" + ], + "fuzz/provider-test-bin-provider.o" => [ + "fuzz/provider.c" + ], + "fuzz/provider-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/punycode-test" => [ + "fuzz/punycode-test-bin-punycode.o", + "fuzz/punycode-test-bin-test-corpus.o" + ], + "fuzz/punycode-test-bin-punycode.o" => [ + "fuzz/punycode.c" + ], + "fuzz/punycode-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-client-test" => [ + "fuzz/quic-client-test-bin-fuzz_rand.o", + "fuzz/quic-client-test-bin-quic-client.o", + "fuzz/quic-client-test-bin-test-corpus.o" + ], + "fuzz/quic-client-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-client-test-bin-quic-client.o" => [ + "fuzz/quic-client.c" + ], + "fuzz/quic-client-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-lcidm-test" => [ + "fuzz/quic-lcidm-test-bin-fuzz_rand.o", + "fuzz/quic-lcidm-test-bin-quic-lcidm.o", + "fuzz/quic-lcidm-test-bin-test-corpus.o" + ], + "fuzz/quic-lcidm-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-lcidm-test-bin-quic-lcidm.o" => [ + "fuzz/quic-lcidm.c" + ], + "fuzz/quic-lcidm-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-rcidm-test" => [ + "fuzz/quic-rcidm-test-bin-fuzz_rand.o", + "fuzz/quic-rcidm-test-bin-quic-rcidm.o", + "fuzz/quic-rcidm-test-bin-test-corpus.o" + ], + "fuzz/quic-rcidm-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-rcidm-test-bin-quic-rcidm.o" => [ + "fuzz/quic-rcidm.c" + ], + "fuzz/quic-rcidm-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-server-test" => [ + "fuzz/quic-server-test-bin-fuzz_rand.o", + "fuzz/quic-server-test-bin-quic-server.o", + "fuzz/quic-server-test-bin-test-corpus.o" + ], + "fuzz/quic-server-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-server-test-bin-quic-server.o" => [ + "fuzz/quic-server.c" + ], + "fuzz/quic-server-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-srtm-test" => [ + "fuzz/quic-srtm-test-bin-fuzz_rand.o", + "fuzz/quic-srtm-test-bin-quic-srtm.o", + "fuzz/quic-srtm-test-bin-test-corpus.o" + ], + "fuzz/quic-srtm-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-srtm-test-bin-quic-srtm.o" => [ + "fuzz/quic-srtm.c" + ], + "fuzz/quic-srtm-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], "fuzz/server-test" => [ "fuzz/server-test-bin-fuzz_rand.o", "fuzz/server-test-bin-server.o", @@ -23764,6 +27774,40 @@ our %unified_info = ( "fuzz/server-test-bin-test-corpus.o" => [ "fuzz/test-corpus.c" ], + "fuzz/slh-dsa-test" => [ + "fuzz/slh-dsa-test-bin-fuzz_rand.o", + "fuzz/slh-dsa-test-bin-slh-dsa.o", + "fuzz/slh-dsa-test-bin-test-corpus.o" + ], + "fuzz/slh-dsa-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/slh-dsa-test-bin-slh-dsa.o" => [ + "fuzz/slh-dsa.c" + ], + "fuzz/slh-dsa-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/smime-test" => [ + "fuzz/smime-test-bin-smime.o", + "fuzz/smime-test-bin-test-corpus.o" + ], + "fuzz/smime-test-bin-smime.o" => [ + "fuzz/smime.c" + ], + "fuzz/smime-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/v3name-test" => [ + "fuzz/v3name-test-bin-test-corpus.o", + "fuzz/v3name-test-bin-v3name.o" + ], + "fuzz/v3name-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/v3name-test-bin-v3name.o" => [ + "fuzz/v3name.c" + ], "fuzz/x509-test" => [ "fuzz/x509-test-bin-fuzz_rand.o", "fuzz/x509-test-bin-test-corpus.o", @@ -23790,6 +27834,7 @@ our %unified_info = ( "crypto/aes/libcrypto-lib-aesni-sha1-x86_64.o", "crypto/aes/libcrypto-lib-aesni-sha256-x86_64.o", "crypto/aes/libcrypto-lib-aesni-x86_64.o", + "crypto/aes/libcrypto-lib-aesni-xts-avx512.o", "crypto/aes/libcrypto-lib-bsaes-x86_64.o", "crypto/aes/libcrypto-lib-vpaes-x86_64.o", "crypto/aria/libcrypto-lib-aria.o", @@ -23888,6 +27933,7 @@ our %unified_info = ( "crypto/bio/libcrypto-lib-bss_conn.o", "crypto/bio/libcrypto-lib-bss_core.o", "crypto/bio/libcrypto-lib-bss_dgram.o", + "crypto/bio/libcrypto-lib-bss_dgram_pair.o", "crypto/bio/libcrypto-lib-bss_fd.o", "crypto/bio/libcrypto-lib-bss_file.o", "crypto/bio/libcrypto-lib-bss_log.o", @@ -23928,8 +27974,13 @@ our %unified_info = ( "crypto/bn/libcrypto-lib-bn_srp.o", "crypto/bn/libcrypto-lib-bn_word.o", "crypto/bn/libcrypto-lib-bn_x931p.o", + "crypto/bn/libcrypto-lib-rsaz-2k-avx512.o", + "crypto/bn/libcrypto-lib-rsaz-2k-avxifma.o", + "crypto/bn/libcrypto-lib-rsaz-3k-avx512.o", + "crypto/bn/libcrypto-lib-rsaz-3k-avxifma.o", + "crypto/bn/libcrypto-lib-rsaz-4k-avx512.o", + "crypto/bn/libcrypto-lib-rsaz-4k-avxifma.o", "crypto/bn/libcrypto-lib-rsaz-avx2.o", - "crypto/bn/libcrypto-lib-rsaz-avx512.o", "crypto/bn/libcrypto-lib-rsaz-x86_64.o", "crypto/bn/libcrypto-lib-rsaz_exp.o", "crypto/bn/libcrypto-lib-rsaz_exp_x2.o", @@ -23955,6 +28006,7 @@ our %unified_info = ( "crypto/cmp/libcrypto-lib-cmp_client.o", "crypto/cmp/libcrypto-lib-cmp_ctx.o", "crypto/cmp/libcrypto-lib-cmp_err.o", + "crypto/cmp/libcrypto-lib-cmp_genm.o", "crypto/cmp/libcrypto-lib-cmp_hdr.o", "crypto/cmp/libcrypto-lib-cmp_http.o", "crypto/cmp/libcrypto-lib-cmp_msg.o", @@ -24133,7 +28185,9 @@ our %unified_info = ( "crypto/err/libcrypto-lib-err_all.o", "crypto/err/libcrypto-lib-err_all_legacy.o", "crypto/err/libcrypto-lib-err_blocks.o", + "crypto/err/libcrypto-lib-err_mark.o", "crypto/err/libcrypto-lib-err_prn.o", + "crypto/err/libcrypto-lib-err_save.o", "crypto/ess/libcrypto-lib-ess_asn1.o", "crypto/ess/libcrypto-lib-ess_err.o", "crypto/ess/libcrypto-lib-ess_lib.o", @@ -24216,7 +28270,9 @@ our %unified_info = ( "crypto/evp/libcrypto-lib-pmeth_check.o", "crypto/evp/libcrypto-lib-pmeth_gn.o", "crypto/evp/libcrypto-lib-pmeth_lib.o", + "crypto/evp/libcrypto-lib-s_lib.o", "crypto/evp/libcrypto-lib-signature.o", + "crypto/evp/libcrypto-lib-skeymgmt_meth.o", "crypto/ffc/libcrypto-lib-ffc_backend.o", "crypto/ffc/libcrypto-lib-ffc_dh.o", "crypto/ffc/libcrypto-lib-ffc_key_generate.o", @@ -24224,7 +28280,11 @@ our %unified_info = ( "crypto/ffc/libcrypto-lib-ffc_params.o", "crypto/ffc/libcrypto-lib-ffc_params_generate.o", "crypto/ffc/libcrypto-lib-ffc_params_validate.o", + "crypto/hashtable/libcrypto-lib-hashfunc.o", + "crypto/hashtable/libcrypto-lib-hashtable.o", "crypto/hmac/libcrypto-lib-hmac.o", + "crypto/hpke/libcrypto-lib-hpke.o", + "crypto/hpke/libcrypto-lib-hpke_util.o", "crypto/http/libcrypto-lib-http_client.o", "crypto/http/libcrypto-lib-http_err.o", "crypto/http/libcrypto-lib-http_lib.o", @@ -24238,6 +28298,7 @@ our %unified_info = ( "crypto/lhash/libcrypto-lib-lhash.o", "crypto/libcrypto-lib-asn1_dsa.o", "crypto/libcrypto-lib-bsearch.o", + "crypto/libcrypto-lib-comp_methods.o", "crypto/libcrypto-lib-context.o", "crypto/libcrypto-lib-core_algorithm.o", "crypto/libcrypto-lib-core_fetch.o", @@ -24247,10 +28308,13 @@ our %unified_info = ( "crypto/libcrypto-lib-cryptlib.o", "crypto/libcrypto-lib-ctype.o", "crypto/libcrypto-lib-cversion.o", + "crypto/libcrypto-lib-defaults.o", "crypto/libcrypto-lib-der_writer.o", + "crypto/libcrypto-lib-deterministic_nonce.o", "crypto/libcrypto-lib-ebcdic.o", "crypto/libcrypto-lib-ex_data.o", "crypto/libcrypto-lib-getenv.o", + "crypto/libcrypto-lib-indicator_core.o", "crypto/libcrypto-lib-info.o", "crypto/libcrypto-lib-init.o", "crypto/libcrypto-lib-initthread.o", @@ -24267,6 +28331,7 @@ our %unified_info = ( "crypto/libcrypto-lib-params.o", "crypto/libcrypto-lib-params_dup.o", "crypto/libcrypto-lib-params_from_text.o", + "crypto/libcrypto-lib-params_idx.o", "crypto/libcrypto-lib-passphrase.o", "crypto/libcrypto-lib-provider.o", "crypto/libcrypto-lib-provider_child.o", @@ -24274,12 +28339,16 @@ our %unified_info = ( "crypto/libcrypto-lib-provider_core.o", "crypto/libcrypto-lib-provider_predefined.o", "crypto/libcrypto-lib-punycode.o", + "crypto/libcrypto-lib-quic_vlint.o", "crypto/libcrypto-lib-self_test_core.o", + "crypto/libcrypto-lib-sleep.o", "crypto/libcrypto-lib-sparse_array.o", + "crypto/libcrypto-lib-ssl_err.o", "crypto/libcrypto-lib-threads_lib.o", "crypto/libcrypto-lib-threads_none.o", "crypto/libcrypto-lib-threads_pthread.o", "crypto/libcrypto-lib-threads_win.o", + "crypto/libcrypto-lib-time.o", "crypto/libcrypto-lib-trace.o", "crypto/libcrypto-lib-uid.o", "crypto/libcrypto-lib-x86_64cpuid.o", @@ -24291,6 +28360,16 @@ our %unified_info = ( "crypto/md5/libcrypto-lib-md5_sha1.o", "crypto/mdc2/libcrypto-lib-mdc2_one.o", "crypto/mdc2/libcrypto-lib-mdc2dgst.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_encoders.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key_compress.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_matrix.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_ntt.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_params.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sample.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sign.o", + "crypto/ml_kem/libcrypto-lib-ml_kem.o", + "crypto/modes/libcrypto-lib-aes-gcm-avx512.o", "crypto/modes/libcrypto-lib-aesni-gcm-x86_64.o", "crypto/modes/libcrypto-lib-cbc128.o", "crypto/modes/libcrypto-lib-ccm128.o", @@ -24304,6 +28383,7 @@ our %unified_info = ( "crypto/modes/libcrypto-lib-siv128.o", "crypto/modes/libcrypto-lib-wrap128.o", "crypto/modes/libcrypto-lib-xts128.o", + "crypto/modes/libcrypto-lib-xts128gb.o", "crypto/objects/libcrypto-lib-o_names.o", "crypto/objects/libcrypto-lib-obj_dat.o", "crypto/objects/libcrypto-lib-obj_err.o", @@ -24368,6 +28448,7 @@ our %unified_info = ( "crypto/rand/libcrypto-lib-rand_lib.o", "crypto/rand/libcrypto-lib-rand_meth.o", "crypto/rand/libcrypto-lib-rand_pool.o", + "crypto/rand/libcrypto-lib-rand_uniform.o", "crypto/rand/libcrypto-lib-randfile.o", "crypto/rc2/libcrypto-lib-rc2_cbc.o", "crypto/rc2/libcrypto-lib-rc2_ecb.o", @@ -24421,6 +28502,16 @@ our %unified_info = ( "crypto/sha/libcrypto-lib-sha512-x86_64.o", "crypto/sha/libcrypto-lib-sha512.o", "crypto/siphash/libcrypto-lib-siphash.o", + "crypto/slh_dsa/libcrypto-lib-slh_adrs.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa_hash_ctx.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa_key.o", + "crypto/slh_dsa/libcrypto-lib-slh_fors.o", + "crypto/slh_dsa/libcrypto-lib-slh_hash.o", + "crypto/slh_dsa/libcrypto-lib-slh_hypertree.o", + "crypto/slh_dsa/libcrypto-lib-slh_params.o", + "crypto/slh_dsa/libcrypto-lib-slh_wots.o", + "crypto/slh_dsa/libcrypto-lib-slh_xmss.o", "crypto/sm2/libcrypto-lib-sm2_crypt.o", "crypto/sm2/libcrypto-lib-sm2_err.o", "crypto/sm2/libcrypto-lib-sm2_key.o", @@ -24438,6 +28529,12 @@ our %unified_info = ( "crypto/store/libcrypto-lib-store_register.o", "crypto/store/libcrypto-lib-store_result.o", "crypto/store/libcrypto-lib-store_strings.o", + "crypto/thread/arch/libcrypto-lib-thread_none.o", + "crypto/thread/arch/libcrypto-lib-thread_posix.o", + "crypto/thread/arch/libcrypto-lib-thread_win.o", + "crypto/thread/libcrypto-lib-api.o", + "crypto/thread/libcrypto-lib-arch.o", + "crypto/thread/libcrypto-lib-internal.o", "crypto/ts/libcrypto-lib-ts_asn1.o", "crypto/ts/libcrypto-lib-ts_conf.o", "crypto/ts/libcrypto-lib-ts_err.o", @@ -24466,14 +28563,22 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-pcy_map.o", "crypto/x509/libcrypto-lib-pcy_node.o", "crypto/x509/libcrypto-lib-pcy_tree.o", + "crypto/x509/libcrypto-lib-t_acert.o", "crypto/x509/libcrypto-lib-t_crl.o", "crypto/x509/libcrypto-lib-t_req.o", "crypto/x509/libcrypto-lib-t_x509.o", + "crypto/x509/libcrypto-lib-v3_aaa.o", + "crypto/x509/libcrypto-lib-v3_ac_tgt.o", "crypto/x509/libcrypto-lib-v3_addr.o", "crypto/x509/libcrypto-lib-v3_admis.o", "crypto/x509/libcrypto-lib-v3_akeya.o", "crypto/x509/libcrypto-lib-v3_akid.o", "crypto/x509/libcrypto-lib-v3_asid.o", + "crypto/x509/libcrypto-lib-v3_attrdesc.o", + "crypto/x509/libcrypto-lib-v3_attrmap.o", + "crypto/x509/libcrypto-lib-v3_audit_id.o", + "crypto/x509/libcrypto-lib-v3_authattid.o", + "crypto/x509/libcrypto-lib-v3_battcons.o", "crypto/x509/libcrypto-lib-v3_bcons.o", "crypto/x509/libcrypto-lib-v3_bitst.o", "crypto/x509/libcrypto-lib-v3_conf.o", @@ -24482,12 +28587,17 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_enum.o", "crypto/x509/libcrypto-lib-v3_extku.o", "crypto/x509/libcrypto-lib-v3_genn.o", + "crypto/x509/libcrypto-lib-v3_group_ac.o", "crypto/x509/libcrypto-lib-v3_ia5.o", + "crypto/x509/libcrypto-lib-v3_ind_iss.o", "crypto/x509/libcrypto-lib-v3_info.o", "crypto/x509/libcrypto-lib-v3_int.o", + "crypto/x509/libcrypto-lib-v3_iobo.o", "crypto/x509/libcrypto-lib-v3_ist.o", "crypto/x509/libcrypto-lib-v3_lib.o", "crypto/x509/libcrypto-lib-v3_ncons.o", + "crypto/x509/libcrypto-lib-v3_no_ass.o", + "crypto/x509/libcrypto-lib-v3_no_rev_avail.o", "crypto/x509/libcrypto-lib-v3_pci.o", "crypto/x509/libcrypto-lib-v3_pcia.o", "crypto/x509/libcrypto-lib-v3_pcons.o", @@ -24495,13 +28605,20 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_pmaps.o", "crypto/x509/libcrypto-lib-v3_prn.o", "crypto/x509/libcrypto-lib-v3_purp.o", + "crypto/x509/libcrypto-lib-v3_rolespec.o", "crypto/x509/libcrypto-lib-v3_san.o", + "crypto/x509/libcrypto-lib-v3_sda.o", + "crypto/x509/libcrypto-lib-v3_single_use.o", "crypto/x509/libcrypto-lib-v3_skid.o", + "crypto/x509/libcrypto-lib-v3_soa_id.o", "crypto/x509/libcrypto-lib-v3_sxnet.o", + "crypto/x509/libcrypto-lib-v3_timespec.o", "crypto/x509/libcrypto-lib-v3_tlsf.o", + "crypto/x509/libcrypto-lib-v3_usernotice.o", "crypto/x509/libcrypto-lib-v3_utf8.o", "crypto/x509/libcrypto-lib-v3_utl.o", "crypto/x509/libcrypto-lib-v3err.o", + "crypto/x509/libcrypto-lib-x509_acert.o", "crypto/x509/libcrypto-lib-x509_att.o", "crypto/x509/libcrypto-lib-x509_cmp.o", "crypto/x509/libcrypto-lib-x509_d2.o", @@ -24519,6 +28636,7 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x509_v3.o", "crypto/x509/libcrypto-lib-x509_vfy.o", "crypto/x509/libcrypto-lib-x509_vpm.o", + "crypto/x509/libcrypto-lib-x509aset.o", "crypto/x509/libcrypto-lib-x509cset.o", "crypto/x509/libcrypto-lib-x509name.o", "crypto/x509/libcrypto-lib-x509rset.o", @@ -24528,6 +28646,7 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x_attrib.o", "crypto/x509/libcrypto-lib-x_crl.o", "crypto/x509/libcrypto-lib-x_exten.o", + "crypto/x509/libcrypto-lib-x_ietfatt.o", "crypto/x509/libcrypto-lib-x_name.o", "crypto/x509/libcrypto-lib-x_pubkey.o", "crypto/x509/libcrypto-lib-x_req.o", @@ -24549,14 +28668,15 @@ our %unified_info = ( "ssl/libssl-lib-d1_srtp.o", "ssl/libssl-lib-methods.o", "ssl/libssl-lib-pqueue.o", + "ssl/libssl-lib-priority_queue.o", "ssl/libssl-lib-s3_enc.o", "ssl/libssl-lib-s3_lib.o", "ssl/libssl-lib-s3_msg.o", "ssl/libssl-lib-ssl_asn1.o", "ssl/libssl-lib-ssl_cert.o", + "ssl/libssl-lib-ssl_cert_comp.o", "ssl/libssl-lib-ssl_ciph.o", "ssl/libssl-lib-ssl_conf.o", - "ssl/libssl-lib-ssl_err.o", "ssl/libssl-lib-ssl_err_legacy.o", "ssl/libssl-lib-ssl_init.o", "ssl/libssl-lib-ssl_lib.o", @@ -24573,12 +28693,60 @@ our %unified_info = ( "ssl/libssl-lib-tls13_enc.o", "ssl/libssl-lib-tls_depr.o", "ssl/libssl-lib-tls_srp.o", - "ssl/record/libssl-lib-dtls1_bitmap.o", + "ssl/quic/libssl-lib-cc_newreno.o", + "ssl/quic/libssl-lib-json_enc.o", + "ssl/quic/libssl-lib-qlog.o", + "ssl/quic/libssl-lib-qlog_event_helpers.o", + "ssl/quic/libssl-lib-quic_ackm.o", + "ssl/quic/libssl-lib-quic_cfq.o", + "ssl/quic/libssl-lib-quic_channel.o", + "ssl/quic/libssl-lib-quic_demux.o", + "ssl/quic/libssl-lib-quic_engine.o", + "ssl/quic/libssl-lib-quic_fc.o", + "ssl/quic/libssl-lib-quic_fifd.o", + "ssl/quic/libssl-lib-quic_impl.o", + "ssl/quic/libssl-lib-quic_lcidm.o", + "ssl/quic/libssl-lib-quic_method.o", + "ssl/quic/libssl-lib-quic_obj.o", + "ssl/quic/libssl-lib-quic_port.o", + "ssl/quic/libssl-lib-quic_rcidm.o", + "ssl/quic/libssl-lib-quic_reactor.o", + "ssl/quic/libssl-lib-quic_reactor_wait_ctx.o", + "ssl/quic/libssl-lib-quic_record_rx.o", + "ssl/quic/libssl-lib-quic_record_shared.o", + "ssl/quic/libssl-lib-quic_record_tx.o", + "ssl/quic/libssl-lib-quic_record_util.o", + "ssl/quic/libssl-lib-quic_rstream.o", + "ssl/quic/libssl-lib-quic_rx_depack.o", + "ssl/quic/libssl-lib-quic_sf_list.o", + "ssl/quic/libssl-lib-quic_srt_gen.o", + "ssl/quic/libssl-lib-quic_srtm.o", + "ssl/quic/libssl-lib-quic_sstream.o", + "ssl/quic/libssl-lib-quic_statm.o", + "ssl/quic/libssl-lib-quic_stream_map.o", + "ssl/quic/libssl-lib-quic_thread_assist.o", + "ssl/quic/libssl-lib-quic_tls.o", + "ssl/quic/libssl-lib-quic_tls_api.o", + "ssl/quic/libssl-lib-quic_trace.o", + "ssl/quic/libssl-lib-quic_tserver.o", + "ssl/quic/libssl-lib-quic_txp.o", + "ssl/quic/libssl-lib-quic_txpim.o", + "ssl/quic/libssl-lib-quic_types.o", + "ssl/quic/libssl-lib-quic_wire.o", + "ssl/quic/libssl-lib-quic_wire_pkt.o", + "ssl/quic/libssl-lib-uint_set.o", "ssl/record/libssl-lib-rec_layer_d1.o", "ssl/record/libssl-lib-rec_layer_s3.o", - "ssl/record/libssl-lib-ssl3_buffer.o", - "ssl/record/libssl-lib-ssl3_record.o", - "ssl/record/libssl-lib-ssl3_record_tls13.o", + "ssl/record/methods/libssl-lib-dtls_meth.o", + "ssl/record/methods/libssl-lib-ssl3_meth.o", + "ssl/record/methods/libssl-lib-tls13_meth.o", + "ssl/record/methods/libssl-lib-tls1_meth.o", + "ssl/record/methods/libssl-lib-tls_common.o", + "ssl/record/methods/libssl-lib-tls_multib.o", + "ssl/record/methods/libssl-lib-tlsany_meth.o", + "ssl/rio/libssl-lib-poll_builder.o", + "ssl/rio/libssl-lib-poll_immediate.o", + "ssl/rio/libssl-lib-rio_notifier.o", "ssl/statem/libssl-lib-extensions.o", "ssl/statem/libssl-lib-extensions_clnt.o", "ssl/statem/libssl-lib-extensions_cust.o", @@ -24616,12 +28784,24 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ecx_key.o" => [ "providers/common/der/der_ecx_key.c" ], + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o" => [ + "providers/common/der/der_ml_dsa_gen.c" + ], + "providers/common/der/libcommon-lib-der_ml_dsa_key.o" => [ + "providers/common/der/der_ml_dsa_key.c" + ], "providers/common/der/libcommon-lib-der_rsa_gen.o" => [ "providers/common/der/der_rsa_gen.c" ], "providers/common/der/libcommon-lib-der_rsa_key.o" => [ "providers/common/der/der_rsa_key.c" ], + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o" => [ + "providers/common/der/der_slh_dsa_gen.c" + ], + "providers/common/der/libcommon-lib-der_slh_dsa_key.o" => [ + "providers/common/der/der_slh_dsa_key.c" + ], "providers/common/der/libcommon-lib-der_wrap_gen.o" => [ "providers/common/der/der_wrap_gen.c" ], @@ -24688,6 +28868,9 @@ our %unified_info = ( "providers/common/libfips-lib-securitycheck_fips.o" => [ "providers/common/securitycheck_fips.c" ], + "providers/endecode_test-bin-legacyprov.o" => [ + "providers/legacyprov.c" + ], "providers/evp_extra_test-bin-legacyprov.o" => [ "providers/legacyprov.c" ], @@ -24697,6 +28880,9 @@ our %unified_info = ( "providers/fips/fips-dso-fips_entry.o" => [ "providers/fips/fips_entry.c" ], + "providers/fips/libfips-lib-fipsindicator.o" => [ + "providers/fips/fipsindicator.c" + ], "providers/fips/libfips-lib-fipsprov.o" => [ "providers/fips/fipsprov.c" ], @@ -24760,6 +28946,15 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_hw.o" => [ "providers/implementations/ciphers/cipher_aes_gcm_hw.c" ], + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv.o" => [ + "providers/implementations/ciphers/cipher_aes_gcm_siv.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_hw.o" => [ + "providers/implementations/ciphers/cipher_aes_gcm_siv_hw.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_polyval.o" => [ + "providers/implementations/ciphers/cipher_aes_gcm_siv_polyval.c" + ], "providers/implementations/ciphers/libdefault-lib-cipher_aes_hw.o" => [ "providers/implementations/ciphers/cipher_aes_hw.c" ], @@ -24832,9 +29027,27 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_sm4.o" => [ "providers/implementations/ciphers/cipher_sm4.c" ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm.o" => [ + "providers/implementations/ciphers/cipher_sm4_ccm.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm_hw.o" => [ + "providers/implementations/ciphers/cipher_sm4_ccm_hw.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm.o" => [ + "providers/implementations/ciphers/cipher_sm4_gcm.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm_hw.o" => [ + "providers/implementations/ciphers/cipher_sm4_gcm_hw.c" + ], "providers/implementations/ciphers/libdefault-lib-cipher_sm4_hw.o" => [ "providers/implementations/ciphers/cipher_sm4_hw.c" ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts.o" => [ + "providers/implementations/ciphers/cipher_sm4_xts.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts_hw.o" => [ + "providers/implementations/ciphers/cipher_sm4_xts_hw.c" + ], "providers/implementations/ciphers/libdefault-lib-cipher_tdes.o" => [ "providers/implementations/ciphers/cipher_tdes.c" ], @@ -25054,6 +29267,15 @@ our %unified_info = ( "providers/implementations/encode_decode/libdefault-lib-endecoder_common.o" => [ "providers/implementations/encode_decode/endecoder_common.c" ], + "providers/implementations/encode_decode/libdefault-lib-ml_common_codecs.o" => [ + "providers/implementations/encode_decode/ml_common_codecs.c" + ], + "providers/implementations/encode_decode/libdefault-lib-ml_dsa_codecs.o" => [ + "providers/implementations/encode_decode/ml_dsa_codecs.c" + ], + "providers/implementations/encode_decode/libdefault-lib-ml_kem_codecs.o" => [ + "providers/implementations/encode_decode/ml_kem_codecs.c" + ], "providers/implementations/exchange/libdefault-lib-dh_exch.o" => [ "providers/implementations/exchange/dh_exch.c" ], @@ -25078,9 +29300,15 @@ our %unified_info = ( "providers/implementations/exchange/libfips-lib-kdf_exch.o" => [ "providers/implementations/exchange/kdf_exch.c" ], + "providers/implementations/kdfs/libdefault-lib-argon2.o" => [ + "providers/implementations/kdfs/argon2.c" + ], "providers/implementations/kdfs/libdefault-lib-hkdf.o" => [ "providers/implementations/kdfs/hkdf.c" ], + "providers/implementations/kdfs/libdefault-lib-hmacdrbg_kdf.o" => [ + "providers/implementations/kdfs/hmacdrbg_kdf.c" + ], "providers/implementations/kdfs/libdefault-lib-kbkdf.o" => [ "providers/implementations/kdfs/kbkdf.c" ], @@ -25138,12 +29366,39 @@ our %unified_info = ( "providers/implementations/kdfs/liblegacy-lib-pbkdf1.o" => [ "providers/implementations/kdfs/pbkdf1.c" ], + "providers/implementations/kdfs/liblegacy-lib-pvkkdf.o" => [ + "providers/implementations/kdfs/pvkkdf.c" + ], + "providers/implementations/kem/libdefault-lib-ec_kem.o" => [ + "providers/implementations/kem/ec_kem.c" + ], + "providers/implementations/kem/libdefault-lib-ecx_kem.o" => [ + "providers/implementations/kem/ecx_kem.c" + ], + "providers/implementations/kem/libdefault-lib-kem_util.o" => [ + "providers/implementations/kem/kem_util.c" + ], + "providers/implementations/kem/libdefault-lib-ml_kem_kem.o" => [ + "providers/implementations/kem/ml_kem_kem.c" + ], + "providers/implementations/kem/libdefault-lib-mlx_kem.o" => [ + "providers/implementations/kem/mlx_kem.c" + ], "providers/implementations/kem/libdefault-lib-rsa_kem.o" => [ "providers/implementations/kem/rsa_kem.c" ], + "providers/implementations/kem/libfips-lib-ml_kem_kem.o" => [ + "providers/implementations/kem/ml_kem_kem.c" + ], + "providers/implementations/kem/libfips-lib-mlx_kem.o" => [ + "providers/implementations/kem/mlx_kem.c" + ], "providers/implementations/kem/libfips-lib-rsa_kem.o" => [ "providers/implementations/kem/rsa_kem.c" ], + "providers/implementations/kem/libtemplate-lib-template_kem.o" => [ + "providers/implementations/kem/template_kem.c" + ], "providers/implementations/keymgmt/libdefault-lib-dh_kmgmt.o" => [ "providers/implementations/keymgmt/dh_kmgmt.c" ], @@ -25162,9 +29417,21 @@ our %unified_info = ( "providers/implementations/keymgmt/libdefault-lib-mac_legacy_kmgmt.o" => [ "providers/implementations/keymgmt/mac_legacy_kmgmt.c" ], + "providers/implementations/keymgmt/libdefault-lib-ml_dsa_kmgmt.o" => [ + "providers/implementations/keymgmt/ml_dsa_kmgmt.c" + ], + "providers/implementations/keymgmt/libdefault-lib-ml_kem_kmgmt.o" => [ + "providers/implementations/keymgmt/ml_kem_kmgmt.c" + ], + "providers/implementations/keymgmt/libdefault-lib-mlx_kmgmt.o" => [ + "providers/implementations/keymgmt/mlx_kmgmt.c" + ], "providers/implementations/keymgmt/libdefault-lib-rsa_kmgmt.o" => [ "providers/implementations/keymgmt/rsa_kmgmt.c" ], + "providers/implementations/keymgmt/libdefault-lib-slh_dsa_kmgmt.o" => [ + "providers/implementations/keymgmt/slh_dsa_kmgmt.c" + ], "providers/implementations/keymgmt/libfips-lib-dh_kmgmt.o" => [ "providers/implementations/keymgmt/dh_kmgmt.c" ], @@ -25183,9 +29450,24 @@ our %unified_info = ( "providers/implementations/keymgmt/libfips-lib-mac_legacy_kmgmt.o" => [ "providers/implementations/keymgmt/mac_legacy_kmgmt.c" ], + "providers/implementations/keymgmt/libfips-lib-ml_dsa_kmgmt.o" => [ + "providers/implementations/keymgmt/ml_dsa_kmgmt.c" + ], + "providers/implementations/keymgmt/libfips-lib-ml_kem_kmgmt.o" => [ + "providers/implementations/keymgmt/ml_kem_kmgmt.c" + ], + "providers/implementations/keymgmt/libfips-lib-mlx_kmgmt.o" => [ + "providers/implementations/keymgmt/mlx_kmgmt.c" + ], "providers/implementations/keymgmt/libfips-lib-rsa_kmgmt.o" => [ "providers/implementations/keymgmt/rsa_kmgmt.c" ], + "providers/implementations/keymgmt/libfips-lib-slh_dsa_kmgmt.o" => [ + "providers/implementations/keymgmt/slh_dsa_kmgmt.c" + ], + "providers/implementations/keymgmt/libtemplate-lib-template_kmgmt.o" => [ + "providers/implementations/keymgmt/template_kmgmt.c" + ], "providers/implementations/macs/libdefault-lib-blake2b_mac.o" => [ "providers/implementations/macs/blake2b_mac.c" ], @@ -25222,9 +29504,6 @@ our %unified_info = ( "providers/implementations/macs/libfips-lib-kmac_prov.o" => [ "providers/implementations/macs/kmac_prov.c" ], - "providers/implementations/rands/libdefault-lib-crngt.o" => [ - "providers/implementations/rands/crngt.c" - ], "providers/implementations/rands/libdefault-lib-drbg.o" => [ "providers/implementations/rands/drbg.c" ], @@ -25240,12 +29519,12 @@ our %unified_info = ( "providers/implementations/rands/libdefault-lib-seed_src.o" => [ "providers/implementations/rands/seed_src.c" ], + "providers/implementations/rands/libdefault-lib-seed_src_jitter.o" => [ + "providers/implementations/rands/seed_src_jitter.c" + ], "providers/implementations/rands/libdefault-lib-test_rng.o" => [ "providers/implementations/rands/test_rng.c" ], - "providers/implementations/rands/libfips-lib-crngt.o" => [ - "providers/implementations/rands/crngt.c" - ], "providers/implementations/rands/libfips-lib-drbg.o" => [ "providers/implementations/rands/drbg.c" ], @@ -25258,6 +29537,9 @@ our %unified_info = ( "providers/implementations/rands/libfips-lib-drbg_hmac.o" => [ "providers/implementations/rands/drbg_hmac.c" ], + "providers/implementations/rands/libfips-lib-fips_crng_test.o" => [ + "providers/implementations/rands/fips_crng_test.c" + ], "providers/implementations/rands/libfips-lib-test_rng.o" => [ "providers/implementations/rands/test_rng.c" ], @@ -25285,9 +29567,15 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-mac_legacy_sig.o" => [ "providers/implementations/signature/mac_legacy_sig.c" ], + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o" => [ + "providers/implementations/signature/ml_dsa_sig.c" + ], "providers/implementations/signature/libdefault-lib-rsa_sig.o" => [ "providers/implementations/signature/rsa_sig.c" ], + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o" => [ + "providers/implementations/signature/slh_dsa_sig.c" + ], "providers/implementations/signature/libdefault-lib-sm2_sig.o" => [ "providers/implementations/signature/sm2_sig.c" ], @@ -25303,9 +29591,27 @@ our %unified_info = ( "providers/implementations/signature/libfips-lib-mac_legacy_sig.o" => [ "providers/implementations/signature/mac_legacy_sig.c" ], + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o" => [ + "providers/implementations/signature/ml_dsa_sig.c" + ], "providers/implementations/signature/libfips-lib-rsa_sig.o" => [ "providers/implementations/signature/rsa_sig.c" ], + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o" => [ + "providers/implementations/signature/slh_dsa_sig.c" + ], + "providers/implementations/skeymgmt/libdefault-lib-aes_skmgmt.o" => [ + "providers/implementations/skeymgmt/aes_skmgmt.c" + ], + "providers/implementations/skeymgmt/libdefault-lib-generic.o" => [ + "providers/implementations/skeymgmt/generic.c" + ], + "providers/implementations/skeymgmt/libfips-lib-aes_skmgmt.o" => [ + "providers/implementations/skeymgmt/aes_skmgmt.c" + ], + "providers/implementations/skeymgmt/libfips-lib-generic.o" => [ + "providers/implementations/skeymgmt/generic.c" + ], "providers/implementations/storemgmt/libdefault-lib-file_store.o" => [ "providers/implementations/storemgmt/file_store.c" ], @@ -25328,8 +29634,12 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ec_sig.o", "providers/common/der/libcommon-lib-der_ecx_gen.o", "providers/common/der/libcommon-lib-der_ecx_key.o", + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o", + "providers/common/der/libcommon-lib-der_ml_dsa_key.o", "providers/common/der/libcommon-lib-der_rsa_gen.o", "providers/common/der/libcommon-lib-der_rsa_key.o", + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o", + "providers/common/der/libcommon-lib-der_slh_dsa_key.o", "providers/common/der/libcommon-lib-der_wrap_gen.o", "providers/common/libcommon-lib-provider_ctx.o", "providers/common/libcommon-lib-provider_err.o", @@ -25341,7 +29651,7 @@ our %unified_info = ( "providers/implementations/ciphers/libcommon-lib-ciphercommon_gcm_hw.o", "providers/implementations/ciphers/libcommon-lib-ciphercommon_hw.o", "providers/implementations/digests/libcommon-lib-digestcommon.o", - "ssl/record/libcommon-lib-tls_pad.o" + "ssl/record/methods/libcommon-lib-tls_pad.o" ], "providers/libcrypto-lib-baseprov.o" => [ "providers/baseprov.c" @@ -25377,6 +29687,9 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_aes_ccm_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_polyval.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_ocb.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_ocb_hw.o", @@ -25401,7 +29714,13 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_cts.o", "providers/implementations/ciphers/libdefault-lib-cipher_null.o", "providers/implementations/ciphers/libdefault-lib-cipher_sm4.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_sm4_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes_common.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes_default.o", @@ -25430,11 +29749,16 @@ our %unified_info = ( "providers/implementations/encode_decode/libdefault-lib-encode_key2ms.o", "providers/implementations/encode_decode/libdefault-lib-encode_key2text.o", "providers/implementations/encode_decode/libdefault-lib-endecoder_common.o", + "providers/implementations/encode_decode/libdefault-lib-ml_common_codecs.o", + "providers/implementations/encode_decode/libdefault-lib-ml_dsa_codecs.o", + "providers/implementations/encode_decode/libdefault-lib-ml_kem_codecs.o", "providers/implementations/exchange/libdefault-lib-dh_exch.o", "providers/implementations/exchange/libdefault-lib-ecdh_exch.o", "providers/implementations/exchange/libdefault-lib-ecx_exch.o", "providers/implementations/exchange/libdefault-lib-kdf_exch.o", + "providers/implementations/kdfs/libdefault-lib-argon2.o", "providers/implementations/kdfs/libdefault-lib-hkdf.o", + "providers/implementations/kdfs/libdefault-lib-hmacdrbg_kdf.o", "providers/implementations/kdfs/libdefault-lib-kbkdf.o", "providers/implementations/kdfs/libdefault-lib-krb5kdf.o", "providers/implementations/kdfs/libdefault-lib-pbkdf2.o", @@ -25445,6 +29769,11 @@ our %unified_info = ( "providers/implementations/kdfs/libdefault-lib-sskdf.o", "providers/implementations/kdfs/libdefault-lib-tls1_prf.o", "providers/implementations/kdfs/libdefault-lib-x942kdf.o", + "providers/implementations/kem/libdefault-lib-ec_kem.o", + "providers/implementations/kem/libdefault-lib-ecx_kem.o", + "providers/implementations/kem/libdefault-lib-kem_util.o", + "providers/implementations/kem/libdefault-lib-ml_kem_kem.o", + "providers/implementations/kem/libdefault-lib-mlx_kem.o", "providers/implementations/kem/libdefault-lib-rsa_kem.o", "providers/implementations/keymgmt/libdefault-lib-dh_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-dsa_kmgmt.o", @@ -25452,7 +29781,11 @@ our %unified_info = ( "providers/implementations/keymgmt/libdefault-lib-ecx_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-kdf_legacy_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-mac_legacy_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-ml_dsa_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-ml_kem_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-mlx_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-rsa_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-slh_dsa_kmgmt.o", "providers/implementations/macs/libdefault-lib-blake2b_mac.o", "providers/implementations/macs/libdefault-lib-blake2s_mac.o", "providers/implementations/macs/libdefault-lib-cmac_prov.o", @@ -25461,12 +29794,12 @@ our %unified_info = ( "providers/implementations/macs/libdefault-lib-kmac_prov.o", "providers/implementations/macs/libdefault-lib-poly1305_prov.o", "providers/implementations/macs/libdefault-lib-siphash_prov.o", - "providers/implementations/rands/libdefault-lib-crngt.o", "providers/implementations/rands/libdefault-lib-drbg.o", "providers/implementations/rands/libdefault-lib-drbg_ctr.o", "providers/implementations/rands/libdefault-lib-drbg_hash.o", "providers/implementations/rands/libdefault-lib-drbg_hmac.o", "providers/implementations/rands/libdefault-lib-seed_src.o", + "providers/implementations/rands/libdefault-lib-seed_src_jitter.o", "providers/implementations/rands/libdefault-lib-test_rng.o", "providers/implementations/rands/seeding/libdefault-lib-rand_cpu_x86.o", "providers/implementations/rands/seeding/libdefault-lib-rand_tsc.o", @@ -25476,11 +29809,15 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-ecdsa_sig.o", "providers/implementations/signature/libdefault-lib-eddsa_sig.o", "providers/implementations/signature/libdefault-lib-mac_legacy_sig.o", + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o", "providers/implementations/signature/libdefault-lib-rsa_sig.o", + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o", "providers/implementations/signature/libdefault-lib-sm2_sig.o", + "providers/implementations/skeymgmt/libdefault-lib-aes_skmgmt.o", + "providers/implementations/skeymgmt/libdefault-lib-generic.o", "providers/implementations/storemgmt/libdefault-lib-file_store.o", "providers/implementations/storemgmt/libdefault-lib-file_store_any2obj.o", - "ssl/libdefault-lib-s3_cbc.o" + "ssl/record/methods/libdefault-lib-ssl3_cbc.o" ], "providers/libfips.a" => [ "crypto/aes/libfips-lib-aes-x86_64.o", @@ -25490,6 +29827,7 @@ our %unified_info = ( "crypto/aes/libfips-lib-aesni-sha1-x86_64.o", "crypto/aes/libfips-lib-aesni-sha256-x86_64.o", "crypto/aes/libfips-lib-aesni-x86_64.o", + "crypto/aes/libfips-lib-aesni-xts-avx512.o", "crypto/aes/libfips-lib-bsaes-x86_64.o", "crypto/aes/libfips-lib-vpaes-x86_64.o", "crypto/bn/asm/libfips-lib-x86_64-gcc.o", @@ -25520,8 +29858,13 @@ our %unified_info = ( "crypto/bn/libfips-lib-bn_sqr.o", "crypto/bn/libfips-lib-bn_sqrt.o", "crypto/bn/libfips-lib-bn_word.o", + "crypto/bn/libfips-lib-rsaz-2k-avx512.o", + "crypto/bn/libfips-lib-rsaz-2k-avxifma.o", + "crypto/bn/libfips-lib-rsaz-3k-avx512.o", + "crypto/bn/libfips-lib-rsaz-3k-avxifma.o", + "crypto/bn/libfips-lib-rsaz-4k-avx512.o", + "crypto/bn/libfips-lib-rsaz-4k-avxifma.o", "crypto/bn/libfips-lib-rsaz-avx2.o", - "crypto/bn/libfips-lib-rsaz-avx512.o", "crypto/bn/libfips-lib-rsaz-x86_64.o", "crypto/bn/libfips-lib-rsaz_exp.o", "crypto/bn/libfips-lib-rsaz_exp_x2.o", @@ -25598,14 +29941,15 @@ our %unified_info = ( "crypto/evp/libfips-lib-kem.o", "crypto/evp/libfips-lib-keymgmt_lib.o", "crypto/evp/libfips-lib-keymgmt_meth.o", - "crypto/evp/libfips-lib-m_sigver.o", "crypto/evp/libfips-lib-mac_lib.o", "crypto/evp/libfips-lib-mac_meth.o", "crypto/evp/libfips-lib-p_lib.o", "crypto/evp/libfips-lib-pmeth_check.o", "crypto/evp/libfips-lib-pmeth_gn.o", "crypto/evp/libfips-lib-pmeth_lib.o", + "crypto/evp/libfips-lib-s_lib.o", "crypto/evp/libfips-lib-signature.o", + "crypto/evp/libfips-lib-skeymgmt_meth.o", "crypto/ffc/libfips-lib-ffc_backend.o", "crypto/ffc/libfips-lib-ffc_dh.o", "crypto/ffc/libfips-lib-ffc_key_generate.o", @@ -25613,6 +29957,8 @@ our %unified_info = ( "crypto/ffc/libfips-lib-ffc_params.o", "crypto/ffc/libfips-lib-ffc_params_generate.o", "crypto/ffc/libfips-lib-ffc_params_validate.o", + "crypto/hashtable/libfips-lib-hashfunc.o", + "crypto/hashtable/libfips-lib-hashtable.o", "crypto/hmac/libfips-lib-hmac.o", "crypto/lhash/libfips-lib-lhash.o", "crypto/libfips-lib-asn1_dsa.o", @@ -25634,6 +29980,7 @@ our %unified_info = ( "crypto/libfips-lib-params.o", "crypto/libfips-lib-params_dup.o", "crypto/libfips-lib-params_from_text.o", + "crypto/libfips-lib-params_idx.o", "crypto/libfips-lib-provider_core.o", "crypto/libfips-lib-provider_predefined.o", "crypto/libfips-lib-self_test_core.o", @@ -25642,7 +29989,18 @@ our %unified_info = ( "crypto/libfips-lib-threads_none.o", "crypto/libfips-lib-threads_pthread.o", "crypto/libfips-lib-threads_win.o", + "crypto/libfips-lib-time.o", "crypto/libfips-lib-x86_64cpuid.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_encoders.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_key.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_key_compress.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_matrix.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_ntt.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_params.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_sample.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_sign.o", + "crypto/ml_kem/libfips-lib-ml_kem.o", + "crypto/modes/libfips-lib-aes-gcm-avx512.o", "crypto/modes/libfips-lib-aesni-gcm-x86_64.o", "crypto/modes/libfips-lib-cbc128.o", "crypto/modes/libfips-lib-ccm128.o", @@ -25653,6 +30011,7 @@ our %unified_info = ( "crypto/modes/libfips-lib-ofb128.o", "crypto/modes/libfips-lib-wrap128.o", "crypto/modes/libfips-lib-xts128.o", + "crypto/modes/libfips-lib-xts128gb.o", "crypto/property/libfips-lib-defn_cache.o", "crypto/property/libfips-lib-property.o", "crypto/property/libfips-lib-property_parse.o", @@ -25686,7 +30045,23 @@ our %unified_info = ( "crypto/sha/libfips-lib-sha3.o", "crypto/sha/libfips-lib-sha512-x86_64.o", "crypto/sha/libfips-lib-sha512.o", + "crypto/slh_dsa/libfips-lib-slh_adrs.o", + "crypto/slh_dsa/libfips-lib-slh_dsa.o", + "crypto/slh_dsa/libfips-lib-slh_dsa_hash_ctx.o", + "crypto/slh_dsa/libfips-lib-slh_dsa_key.o", + "crypto/slh_dsa/libfips-lib-slh_fors.o", + "crypto/slh_dsa/libfips-lib-slh_hash.o", + "crypto/slh_dsa/libfips-lib-slh_hypertree.o", + "crypto/slh_dsa/libfips-lib-slh_params.o", + "crypto/slh_dsa/libfips-lib-slh_wots.o", + "crypto/slh_dsa/libfips-lib-slh_xmss.o", "crypto/stack/libfips-lib-stack.o", + "crypto/thread/arch/libfips-lib-thread_none.o", + "crypto/thread/arch/libfips-lib-thread_posix.o", + "crypto/thread/arch/libfips-lib-thread_win.o", + "crypto/thread/libfips-lib-api.o", + "crypto/thread/libfips-lib-arch.o", + "crypto/thread/libfips-lib-internal.o", "providers/common/der/libfips-lib-der_rsa_sig.o", "providers/common/libfips-lib-bio_prov.o", "providers/common/libfips-lib-capabilities.o", @@ -25695,6 +30070,7 @@ our %unified_info = ( "providers/common/libfips-lib-provider_util.o", "providers/common/libfips-lib-securitycheck.o", "providers/common/libfips-lib-securitycheck_fips.o", + "providers/fips/libfips-lib-fipsindicator.o", "providers/fips/libfips-lib-fipsprov.o", "providers/fips/libfips-lib-self_test.o", "providers/fips/libfips-lib-self_test_kats.o", @@ -25732,6 +30108,8 @@ our %unified_info = ( "providers/implementations/kdfs/libfips-lib-sskdf.o", "providers/implementations/kdfs/libfips-lib-tls1_prf.o", "providers/implementations/kdfs/libfips-lib-x942kdf.o", + "providers/implementations/kem/libfips-lib-ml_kem_kem.o", + "providers/implementations/kem/libfips-lib-mlx_kem.o", "providers/implementations/kem/libfips-lib-rsa_kem.o", "providers/implementations/keymgmt/libfips-lib-dh_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-dsa_kmgmt.o", @@ -25739,24 +30117,32 @@ our %unified_info = ( "providers/implementations/keymgmt/libfips-lib-ecx_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-kdf_legacy_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-mac_legacy_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-ml_dsa_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-ml_kem_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-mlx_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-rsa_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-slh_dsa_kmgmt.o", "providers/implementations/macs/libfips-lib-cmac_prov.o", "providers/implementations/macs/libfips-lib-gmac_prov.o", "providers/implementations/macs/libfips-lib-hmac_prov.o", "providers/implementations/macs/libfips-lib-kmac_prov.o", - "providers/implementations/rands/libfips-lib-crngt.o", "providers/implementations/rands/libfips-lib-drbg.o", "providers/implementations/rands/libfips-lib-drbg_ctr.o", "providers/implementations/rands/libfips-lib-drbg_hash.o", "providers/implementations/rands/libfips-lib-drbg_hmac.o", + "providers/implementations/rands/libfips-lib-fips_crng_test.o", "providers/implementations/rands/libfips-lib-test_rng.o", "providers/implementations/signature/libfips-lib-dsa_sig.o", "providers/implementations/signature/libfips-lib-ecdsa_sig.o", "providers/implementations/signature/libfips-lib-eddsa_sig.o", "providers/implementations/signature/libfips-lib-mac_legacy_sig.o", + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o", "providers/implementations/signature/libfips-lib-rsa_sig.o", + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o", + "providers/implementations/skeymgmt/libfips-lib-aes_skmgmt.o", + "providers/implementations/skeymgmt/libfips-lib-generic.o", "providers/libcommon.a", - "ssl/libfips-lib-s3_cbc.o" + "ssl/record/methods/libfips-lib-ssl3_cbc.o" ], "providers/liblegacy-lib-prov_running.o" => [ "providers/prov_running.c" @@ -25786,13 +30172,12 @@ our %unified_info = ( "providers/implementations/digests/liblegacy-lib-ripemd_prov.o", "providers/implementations/digests/liblegacy-lib-wp_prov.o", "providers/implementations/kdfs/liblegacy-lib-pbkdf1.o", + "providers/implementations/kdfs/liblegacy-lib-pvkkdf.o", "providers/liblegacy-lib-prov_running.o" ], - "ssl/libdefault-lib-s3_cbc.o" => [ - "ssl/s3_cbc.c" - ], - "ssl/libfips-lib-s3_cbc.o" => [ - "ssl/s3_cbc.c" + "providers/libtemplate.a" => [ + "providers/implementations/kem/libtemplate-lib-template_kem.o", + "providers/implementations/keymgmt/libtemplate-lib-template_kmgmt.o" ], "ssl/libssl-lib-bio_ssl.o" => [ "ssl/bio_ssl.c" @@ -25812,6 +30197,9 @@ our %unified_info = ( "ssl/libssl-lib-pqueue.o" => [ "ssl/pqueue.c" ], + "ssl/libssl-lib-priority_queue.o" => [ + "ssl/priority_queue.c" + ], "ssl/libssl-lib-s3_enc.o" => [ "ssl/s3_enc.c" ], @@ -25827,15 +30215,15 @@ our %unified_info = ( "ssl/libssl-lib-ssl_cert.o" => [ "ssl/ssl_cert.c" ], + "ssl/libssl-lib-ssl_cert_comp.o" => [ + "ssl/ssl_cert_comp.c" + ], "ssl/libssl-lib-ssl_ciph.o" => [ "ssl/ssl_ciph.c" ], "ssl/libssl-lib-ssl_conf.o" => [ "ssl/ssl_conf.c" ], - "ssl/libssl-lib-ssl_err.o" => [ - "ssl/ssl_err.c" - ], "ssl/libssl-lib-ssl_err_legacy.o" => [ "ssl/ssl_err_legacy.c" ], @@ -25884,11 +30272,131 @@ our %unified_info = ( "ssl/libssl-lib-tls_srp.o" => [ "ssl/tls_srp.c" ], - "ssl/record/libcommon-lib-tls_pad.o" => [ - "ssl/record/tls_pad.c" + "ssl/quic/libssl-lib-cc_newreno.o" => [ + "ssl/quic/cc_newreno.c" + ], + "ssl/quic/libssl-lib-json_enc.o" => [ + "ssl/quic/json_enc.c" + ], + "ssl/quic/libssl-lib-qlog.o" => [ + "ssl/quic/qlog.c" + ], + "ssl/quic/libssl-lib-qlog_event_helpers.o" => [ + "ssl/quic/qlog_event_helpers.c" + ], + "ssl/quic/libssl-lib-quic_ackm.o" => [ + "ssl/quic/quic_ackm.c" + ], + "ssl/quic/libssl-lib-quic_cfq.o" => [ + "ssl/quic/quic_cfq.c" + ], + "ssl/quic/libssl-lib-quic_channel.o" => [ + "ssl/quic/quic_channel.c" + ], + "ssl/quic/libssl-lib-quic_demux.o" => [ + "ssl/quic/quic_demux.c" + ], + "ssl/quic/libssl-lib-quic_engine.o" => [ + "ssl/quic/quic_engine.c" + ], + "ssl/quic/libssl-lib-quic_fc.o" => [ + "ssl/quic/quic_fc.c" + ], + "ssl/quic/libssl-lib-quic_fifd.o" => [ + "ssl/quic/quic_fifd.c" + ], + "ssl/quic/libssl-lib-quic_impl.o" => [ + "ssl/quic/quic_impl.c" + ], + "ssl/quic/libssl-lib-quic_lcidm.o" => [ + "ssl/quic/quic_lcidm.c" + ], + "ssl/quic/libssl-lib-quic_method.o" => [ + "ssl/quic/quic_method.c" + ], + "ssl/quic/libssl-lib-quic_obj.o" => [ + "ssl/quic/quic_obj.c" + ], + "ssl/quic/libssl-lib-quic_port.o" => [ + "ssl/quic/quic_port.c" + ], + "ssl/quic/libssl-lib-quic_rcidm.o" => [ + "ssl/quic/quic_rcidm.c" + ], + "ssl/quic/libssl-lib-quic_reactor.o" => [ + "ssl/quic/quic_reactor.c" + ], + "ssl/quic/libssl-lib-quic_reactor_wait_ctx.o" => [ + "ssl/quic/quic_reactor_wait_ctx.c" + ], + "ssl/quic/libssl-lib-quic_record_rx.o" => [ + "ssl/quic/quic_record_rx.c" + ], + "ssl/quic/libssl-lib-quic_record_shared.o" => [ + "ssl/quic/quic_record_shared.c" + ], + "ssl/quic/libssl-lib-quic_record_tx.o" => [ + "ssl/quic/quic_record_tx.c" + ], + "ssl/quic/libssl-lib-quic_record_util.o" => [ + "ssl/quic/quic_record_util.c" + ], + "ssl/quic/libssl-lib-quic_rstream.o" => [ + "ssl/quic/quic_rstream.c" ], - "ssl/record/libssl-lib-dtls1_bitmap.o" => [ - "ssl/record/dtls1_bitmap.c" + "ssl/quic/libssl-lib-quic_rx_depack.o" => [ + "ssl/quic/quic_rx_depack.c" + ], + "ssl/quic/libssl-lib-quic_sf_list.o" => [ + "ssl/quic/quic_sf_list.c" + ], + "ssl/quic/libssl-lib-quic_srt_gen.o" => [ + "ssl/quic/quic_srt_gen.c" + ], + "ssl/quic/libssl-lib-quic_srtm.o" => [ + "ssl/quic/quic_srtm.c" + ], + "ssl/quic/libssl-lib-quic_sstream.o" => [ + "ssl/quic/quic_sstream.c" + ], + "ssl/quic/libssl-lib-quic_statm.o" => [ + "ssl/quic/quic_statm.c" + ], + "ssl/quic/libssl-lib-quic_stream_map.o" => [ + "ssl/quic/quic_stream_map.c" + ], + "ssl/quic/libssl-lib-quic_thread_assist.o" => [ + "ssl/quic/quic_thread_assist.c" + ], + "ssl/quic/libssl-lib-quic_tls.o" => [ + "ssl/quic/quic_tls.c" + ], + "ssl/quic/libssl-lib-quic_tls_api.o" => [ + "ssl/quic/quic_tls_api.c" + ], + "ssl/quic/libssl-lib-quic_trace.o" => [ + "ssl/quic/quic_trace.c" + ], + "ssl/quic/libssl-lib-quic_tserver.o" => [ + "ssl/quic/quic_tserver.c" + ], + "ssl/quic/libssl-lib-quic_txp.o" => [ + "ssl/quic/quic_txp.c" + ], + "ssl/quic/libssl-lib-quic_txpim.o" => [ + "ssl/quic/quic_txpim.c" + ], + "ssl/quic/libssl-lib-quic_types.o" => [ + "ssl/quic/quic_types.c" + ], + "ssl/quic/libssl-lib-quic_wire.o" => [ + "ssl/quic/quic_wire.c" + ], + "ssl/quic/libssl-lib-quic_wire_pkt.o" => [ + "ssl/quic/quic_wire_pkt.c" + ], + "ssl/quic/libssl-lib-uint_set.o" => [ + "ssl/quic/uint_set.c" ], "ssl/record/libssl-lib-rec_layer_d1.o" => [ "ssl/record/rec_layer_d1.c" @@ -25896,14 +30404,44 @@ our %unified_info = ( "ssl/record/libssl-lib-rec_layer_s3.o" => [ "ssl/record/rec_layer_s3.c" ], - "ssl/record/libssl-lib-ssl3_buffer.o" => [ - "ssl/record/ssl3_buffer.c" + "ssl/record/methods/libcommon-lib-tls_pad.o" => [ + "ssl/record/methods/tls_pad.c" + ], + "ssl/record/methods/libdefault-lib-ssl3_cbc.o" => [ + "ssl/record/methods/ssl3_cbc.c" + ], + "ssl/record/methods/libfips-lib-ssl3_cbc.o" => [ + "ssl/record/methods/ssl3_cbc.c" + ], + "ssl/record/methods/libssl-lib-dtls_meth.o" => [ + "ssl/record/methods/dtls_meth.c" + ], + "ssl/record/methods/libssl-lib-ssl3_meth.o" => [ + "ssl/record/methods/ssl3_meth.c" + ], + "ssl/record/methods/libssl-lib-tls13_meth.o" => [ + "ssl/record/methods/tls13_meth.c" + ], + "ssl/record/methods/libssl-lib-tls1_meth.o" => [ + "ssl/record/methods/tls1_meth.c" + ], + "ssl/record/methods/libssl-lib-tls_common.o" => [ + "ssl/record/methods/tls_common.c" ], - "ssl/record/libssl-lib-ssl3_record.o" => [ - "ssl/record/ssl3_record.c" + "ssl/record/methods/libssl-lib-tls_multib.o" => [ + "ssl/record/methods/tls_multib.c" ], - "ssl/record/libssl-lib-ssl3_record_tls13.o" => [ - "ssl/record/ssl3_record_tls13.c" + "ssl/record/methods/libssl-lib-tlsany_meth.o" => [ + "ssl/record/methods/tlsany_meth.c" + ], + "ssl/rio/libssl-lib-poll_builder.o" => [ + "ssl/rio/poll_builder.c" + ], + "ssl/rio/libssl-lib-poll_immediate.o" => [ + "ssl/rio/poll_immediate.c" + ], + "ssl/rio/libssl-lib-rio_notifier.o" => [ + "ssl/rio/rio_notifier.c" ], "ssl/statem/libssl-lib-extensions.o" => [ "ssl/statem/extensions.c" @@ -25999,6 +30537,8 @@ our %unified_info = ( "test/asn1_string_table_test.c" ], "test/asn1_time_test" => [ + "crypto/asn1/asn1_time_test-bin-a_time.o", + "crypto/asn1_time_test-bin-ctype.o", "test/asn1_time_test-bin-asn1_time_test.o" ], "test/asn1_time_test-bin-asn1_time_test.o" => [ @@ -26029,6 +30569,18 @@ our %unified_info = ( "test/bftest-bin-bftest.o" => [ "test/bftest.c" ], + "test/bio_addr_test" => [ + "test/bio_addr_test-bin-bio_addr_test.o" + ], + "test/bio_addr_test-bin-bio_addr_test.o" => [ + "test/bio_addr_test.c" + ], + "test/bio_base64_test" => [ + "test/bio_base64_test-bin-bio_base64_test.o" + ], + "test/bio_base64_test-bin-bio_base64_test.o" => [ + "test/bio_base64_test.c" + ], "test/bio_callback_test" => [ "test/bio_callback_test-bin-bio_callback_test.o" ], @@ -26041,6 +30593,12 @@ our %unified_info = ( "test/bio_core_test-bin-bio_core_test.o" => [ "test/bio_core_test.c" ], + "test/bio_dgram_test" => [ + "test/bio_dgram_test-bin-bio_dgram_test.o" + ], + "test/bio_dgram_test-bin-bio_dgram_test.o" => [ + "test/bio_dgram_test.c" + ], "test/bio_enc_test" => [ "test/bio_enc_test-bin-bio_enc_test.o" ], @@ -26053,6 +30611,12 @@ our %unified_info = ( "test/bio_memleak_test-bin-bio_memleak_test.o" => [ "test/bio_memleak_test.c" ], + "test/bio_meth_test" => [ + "test/bio_meth_test-bin-bio_meth_test.o" + ], + "test/bio_meth_test-bin-bio_meth_test.o" => [ + "test/bio_meth_test.c" + ], "test/bio_prefix_text" => [ "test/bio_prefix_text-bin-bio_prefix_text.o" ], @@ -26071,6 +30635,12 @@ our %unified_info = ( "test/bio_readbuffer_test-bin-bio_readbuffer_test.o" => [ "test/bio_readbuffer_test.c" ], + "test/bio_tfo_test" => [ + "test/bio_tfo_test-bin-bio_tfo_test.o" + ], + "test/bio_tfo_test-bin-bio_tfo_test.o" => [ + "test/bio_tfo_test.c" + ], "test/bioprinttest" => [ "test/bioprinttest-bin-bioprinttest.o" ], @@ -26089,6 +30659,12 @@ our %unified_info = ( "test/bntest-bin-bntest.o" => [ "test/bntest.c" ], + "test/build_wincrypt_test" => [ + "test/build_wincrypt_test-bin-build_wincrypt_test.o" + ], + "test/build_wincrypt_test-bin-build_wincrypt_test.o" => [ + "test/build_wincrypt_test.c" + ], "test/buildtest_c_aes" => [ "test/buildtest_c_aes-bin-buildtest_aes.o" ], @@ -26119,6 +30695,12 @@ our %unified_info = ( "test/buildtest_c_buffer-bin-buildtest_buffer.o" => [ "test/buildtest_buffer.c" ], + "test/buildtest_c_byteorder" => [ + "test/buildtest_c_byteorder-bin-buildtest_byteorder.o" + ], + "test/buildtest_c_byteorder-bin-buildtest_byteorder.o" => [ + "test/buildtest_byteorder.c" + ], "test/buildtest_c_camellia" => [ "test/buildtest_c_camellia-bin-buildtest_camellia.o" ], @@ -26167,12 +30749,6 @@ our %unified_info = ( "test/buildtest_c_core_dispatch-bin-buildtest_core_dispatch.o" => [ "test/buildtest_core_dispatch.c" ], - "test/buildtest_c_core_names" => [ - "test/buildtest_c_core_names-bin-buildtest_core_names.o" - ], - "test/buildtest_c_core_names-bin-buildtest_core_names.o" => [ - "test/buildtest_core_names.c" - ], "test/buildtest_c_core_object" => [ "test/buildtest_c_core_object-bin-buildtest_core_object.o" ], @@ -26221,6 +30797,12 @@ our %unified_info = ( "test/buildtest_c_e_os2-bin-buildtest_e_os2.o" => [ "test/buildtest_e_os2.c" ], + "test/buildtest_c_e_ostime" => [ + "test/buildtest_c_e_ostime-bin-buildtest_e_ostime.o" + ], + "test/buildtest_c_e_ostime-bin-buildtest_e_ostime.o" => [ + "test/buildtest_e_ostime.c" + ], "test/buildtest_c_ebcdic" => [ "test/buildtest_c_ebcdic-bin-buildtest_ebcdic.o" ], @@ -26275,6 +30857,12 @@ our %unified_info = ( "test/buildtest_c_hmac-bin-buildtest_hmac.o" => [ "test/buildtest_hmac.c" ], + "test/buildtest_c_hpke" => [ + "test/buildtest_c_hpke-bin-buildtest_hpke.o" + ], + "test/buildtest_c_hpke-bin-buildtest_hpke.o" => [ + "test/buildtest_hpke.c" + ], "test/buildtest_c_http" => [ "test/buildtest_c_http-bin-buildtest_http.o" ], @@ -26287,6 +30875,12 @@ our %unified_info = ( "test/buildtest_c_idea-bin-buildtest_idea.o" => [ "test/buildtest_idea.c" ], + "test/buildtest_c_indicator" => [ + "test/buildtest_c_indicator-bin-buildtest_indicator.o" + ], + "test/buildtest_c_indicator-bin-buildtest_indicator.o" => [ + "test/buildtest_indicator.c" + ], "test/buildtest_c_kdf" => [ "test/buildtest_c_kdf-bin-buildtest_kdf.o" ], @@ -26317,6 +30911,12 @@ our %unified_info = ( "test/buildtest_c_mdc2-bin-buildtest_mdc2.o" => [ "test/buildtest_mdc2.c" ], + "test/buildtest_c_ml_kem" => [ + "test/buildtest_c_ml_kem-bin-buildtest_ml_kem.o" + ], + "test/buildtest_c_ml_kem-bin-buildtest_ml_kem.o" => [ + "test/buildtest_ml_kem.c" + ], "test/buildtest_c_modes" => [ "test/buildtest_c_modes-bin-buildtest_modes.o" ], @@ -26377,6 +30977,12 @@ our %unified_info = ( "test/buildtest_c_provider-bin-buildtest_provider.o" => [ "test/buildtest_provider.c" ], + "test/buildtest_c_quic" => [ + "test/buildtest_c_quic-bin-buildtest_quic.o" + ], + "test/buildtest_c_quic-bin-buildtest_quic.o" => [ + "test/buildtest_quic.c" + ], "test/buildtest_c_rand" => [ "test/buildtest_c_rand-bin-buildtest_rand.o" ], @@ -26461,6 +31067,12 @@ our %unified_info = ( "test/buildtest_c_symhacks-bin-buildtest_symhacks.o" => [ "test/buildtest_symhacks.c" ], + "test/buildtest_c_thread" => [ + "test/buildtest_c_thread-bin-buildtest_thread.o" + ], + "test/buildtest_c_thread-bin-buildtest_thread.o" => [ + "test/buildtest_thread.c" + ], "test/buildtest_c_tls1" => [ "test/buildtest_c_tls1-bin-buildtest_tls1.o" ], @@ -26491,6 +31103,29 @@ our %unified_info = ( "test/buildtest_c_whrlpool-bin-buildtest_whrlpool.o" => [ "test/buildtest_whrlpool.c" ], + "test/byteorder_test" => [ + "test/byteorder_test-bin-byteorder_test.o" + ], + "test/byteorder_test-bin-byteorder_test.o" => [ + "test/byteorder_test.c" + ], + "test/ca_internals_test" => [ + "apps/ca_internals_test-bin-ca.o", + "apps/lib/ca_internals_test-bin-app_libctx.o", + "apps/lib/ca_internals_test-bin-app_provider.o", + "apps/lib/ca_internals_test-bin-app_rand.o", + "apps/lib/ca_internals_test-bin-app_x509.o", + "apps/lib/ca_internals_test-bin-apps.o", + "apps/lib/ca_internals_test-bin-apps_ui.o", + "apps/lib/ca_internals_test-bin-engine.o", + "apps/lib/ca_internals_test-bin-fmt.o", + "crypto/asn1/ca_internals_test-bin-a_time.o", + "crypto/ca_internals_test-bin-ctype.o", + "test/ca_internals_test-bin-ca_internals_test.o" + ], + "test/ca_internals_test-bin-ca_internals_test.o" => [ + "test/ca_internals_test.c" + ], "test/casttest" => [ "test/casttest-bin-casttest.o" ], @@ -26669,6 +31304,12 @@ our %unified_info = ( "test/danetest-bin-danetest.o" => [ "test/danetest.c" ], + "test/decoder_propq_test" => [ + "test/decoder_propq_test-bin-decoder_propq_test.o" + ], + "test/decoder_propq_test-bin-decoder_propq_test.o" => [ + "test/decoder_propq_test.c" + ], "test/defltfips_test" => [ "test/defltfips_test-bin-defltfips_test.o" ], @@ -26750,6 +31391,7 @@ our %unified_info = ( "test/ectest.c" ], "test/endecode_test" => [ + "providers/endecode_test-bin-legacyprov.o", "test/endecode_test-bin-endecode_test.o", "test/helpers/endecode_test-bin-predefined_dhparams.o" ], @@ -26782,17 +31424,29 @@ our %unified_info = ( ], "test/evp_extra_test" => [ "providers/evp_extra_test-bin-legacyprov.o", - "test/evp_extra_test-bin-evp_extra_test.o" + "test/evp_extra_test-bin-evp_extra_test.o", + "test/evp_extra_test-bin-fake_pipelineprov.o", + "test/evp_extra_test-bin-fake_rsaprov.o" ], "test/evp_extra_test-bin-evp_extra_test.o" => [ "test/evp_extra_test.c" ], + "test/evp_extra_test-bin-fake_pipelineprov.o" => [ + "test/fake_pipelineprov.c" + ], + "test/evp_extra_test-bin-fake_rsaprov.o" => [ + "test/fake_rsaprov.c" + ], "test/evp_extra_test2" => [ - "test/evp_extra_test2-bin-evp_extra_test2.o" + "test/evp_extra_test2-bin-evp_extra_test2.o", + "test/evp_extra_test2-bin-tls-provider.o" ], "test/evp_extra_test2-bin-evp_extra_test2.o" => [ "test/evp_extra_test2.c" ], + "test/evp_extra_test2-bin-tls-provider.o" => [ + "test/tls-provider.c" + ], "test/evp_fetch_prov_test" => [ "test/evp_fetch_prov_test-bin-evp_fetch_prov_test.o" ], @@ -26817,6 +31471,12 @@ our %unified_info = ( "test/evp_pkey_ctx_new_from_name-bin-evp_pkey_ctx_new_from_name.o" => [ "test/evp_pkey_ctx_new_from_name.c" ], + "test/evp_pkey_dhkem_test" => [ + "test/evp_pkey_dhkem_test-bin-evp_pkey_dhkem_test.o" + ], + "test/evp_pkey_dhkem_test-bin-evp_pkey_dhkem_test.o" => [ + "test/evp_pkey_dhkem_test.c" + ], "test/evp_pkey_dparams_test" => [ "test/evp_pkey_dparams_test-bin-evp_pkey_dparams_test.o" ], @@ -26829,12 +31489,28 @@ our %unified_info = ( "test/evp_pkey_provided_test-bin-evp_pkey_provided_test.o" => [ "test/evp_pkey_provided_test.c" ], + "test/evp_skey_test" => [ + "test/evp_skey_test-bin-evp_skey_test.o", + "test/evp_skey_test-bin-fake_cipherprov.o" + ], + "test/evp_skey_test-bin-evp_skey_test.o" => [ + "test/evp_skey_test.c" + ], + "test/evp_skey_test-bin-fake_cipherprov.o" => [ + "test/fake_cipherprov.c" + ], "test/evp_test" => [ "test/evp_test-bin-evp_test.o" ], "test/evp_test-bin-evp_test.o" => [ "test/evp_test.c" ], + "test/evp_xof_test" => [ + "test/evp_xof_test-bin-evp_xof_test.o" + ], + "test/evp_xof_test-bin-evp_xof_test.o" => [ + "test/evp_xof_test.c" + ], "test/exdatatest" => [ "test/exdatatest-bin-exdatatest.o" ], @@ -26920,15 +31596,108 @@ our %unified_info = ( "test/helpers/fatalerrtest-bin-ssltestlib.o" => [ "test/helpers/ssltestlib.c" ], + "test/helpers/json_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/json_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/json_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/json_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/pkcs12_api_test-bin-pkcs12.o" => [ + "test/helpers/pkcs12.c" + ], "test/helpers/pkcs12_format_test-bin-pkcs12.o" => [ "test/helpers/pkcs12.c" ], + "test/helpers/quic_multistream_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quic_multistream_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quic_multistream_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quic_multistream_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quic_newcid_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quic_newcid_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quic_newcid_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quic_newcid_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quic_radix_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quic_radix_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quic_radix_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quic_radix_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quic_srt_gen_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quic_srt_gen_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quic_srt_gen_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quic_srt_gen_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quicapitest-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quicapitest-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quicapitest-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quicapitest-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quicfaultstest-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quicfaultstest-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quicfaultstest-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quicfaultstest-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], "test/helpers/recordlentest-bin-ssltestlib.o" => [ "test/helpers/ssltestlib.c" ], + "test/helpers/rpktest-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], "test/helpers/servername_test-bin-ssltestlib.o" => [ "test/helpers/ssltestlib.c" ], + "test/helpers/ssl_handshake_rtt_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], "test/helpers/ssl_old_test-bin-predefined_dhparams.o" => [ "test/helpers/predefined_dhparams.c" ], @@ -26956,6 +31725,9 @@ our %unified_info = ( "test/helpers/tls13ccstest-bin-ssltestlib.o" => [ "test/helpers/ssltestlib.c" ], + "test/helpers/tls13groupselection_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], "test/hexstr_test" => [ "test/hexstr_test-bin-hexstr_test.o" ], @@ -26968,6 +31740,12 @@ our %unified_info = ( "test/hmactest-bin-hmactest.o" => [ "test/hmactest.c" ], + "test/hpke_test" => [ + "test/hpke_test-bin-hpke_test.o" + ], + "test/hpke_test-bin-hpke_test.o" => [ + "test/hpke_test.c" + ], "test/http_test" => [ "test/http_test-bin-http_test.o" ], @@ -26986,6 +31764,16 @@ our %unified_info = ( "test/igetest-bin-igetest.o" => [ "test/igetest.c" ], + "test/json_test" => [ + "test/helpers/json_test-bin-noisydgrambio.o", + "test/helpers/json_test-bin-pktsplitbio.o", + "test/helpers/json_test-bin-quictestlib.o", + "test/helpers/json_test-bin-ssltestlib.o", + "test/json_test-bin-json_test.o" + ], + "test/json_test-bin-json_test.o" => [ + "test/json_test.c" + ], "test/keymgmt_internal_test" => [ "test/keymgmt_internal_test-bin-keymgmt_internal_test.o" ], @@ -27006,6 +31794,7 @@ our %unified_info = ( "test/testutil/libtestutil-lib-driver.o", "test/testutil/libtestutil-lib-fake_random.o", "test/testutil/libtestutil-lib-format_output.o", + "test/testutil/libtestutil-lib-helper.o", "test/testutil/libtestutil-lib-load.o", "test/testutil/libtestutil-lib-main.o", "test/testutil/libtestutil-lib-options.o", @@ -27018,6 +31807,12 @@ our %unified_info = ( "test/testutil/libtestutil-lib-tests.o", "test/testutil/libtestutil-lib-testutil_init.o" ], + "test/list_test" => [ + "test/list_test-bin-list_test.o" + ], + "test/list_test-bin-list_test.o" => [ + "test/list_test.c" + ], "test/localetest" => [ "test/localetest-bin-localetest.o" ], @@ -27036,12 +31831,36 @@ our %unified_info = ( "test/mdc2test-bin-mdc2test.o" => [ "test/mdc2test.c" ], + "test/membio_test" => [ + "test/membio_test-bin-membio_test.o" + ], + "test/membio_test-bin-membio_test.o" => [ + "test/membio_test.c" + ], "test/memleaktest" => [ "test/memleaktest-bin-memleaktest.o" ], "test/memleaktest-bin-memleaktest.o" => [ "test/memleaktest.c" ], + "test/ml_dsa_test" => [ + "test/ml_dsa_test-bin-ml_dsa_test.o" + ], + "test/ml_dsa_test-bin-ml_dsa_test.o" => [ + "test/ml_dsa_test.c" + ], + "test/ml_kem_evp_extra_test" => [ + "test/ml_kem_evp_extra_test-bin-ml_kem_evp_extra_test.o" + ], + "test/ml_kem_evp_extra_test-bin-ml_kem_evp_extra_test.o" => [ + "test/ml_kem_evp_extra_test.c" + ], + "test/ml_kem_internal_test" => [ + "test/ml_kem_internal_test-bin-ml_kem_internal_test.o" + ], + "test/ml_kem_internal_test-bin-ml_kem_internal_test.o" => [ + "test/ml_kem_internal_test.c" + ], "test/modes_internal_test" => [ "test/modes_internal_test-bin-modes_internal_test.o" ], @@ -27085,11 +31904,18 @@ our %unified_info = ( "test/p_test.c" ], "test/packettest" => [ + "crypto/packettest-bin-quic_vlint.o", "test/packettest-bin-packettest.o" ], "test/packettest-bin-packettest.o" => [ "test/packettest.c" ], + "test/pairwise_fail_test" => [ + "test/pairwise_fail_test-bin-pairwise_fail_test.o" + ], + "test/pairwise_fail_test-bin-pairwise_fail_test.o" => [ + "test/pairwise_fail_test.c" + ], "test/param_build_test" => [ "test/param_build_test-bin-param_build_test.o" ], @@ -27138,6 +31964,13 @@ our %unified_info = ( "test/pemtest-bin-pemtest.o" => [ "test/pemtest.c" ], + "test/pkcs12_api_test" => [ + "test/helpers/pkcs12_api_test-bin-pkcs12.o", + "test/pkcs12_api_test-bin-pkcs12_api_test.o" + ], + "test/pkcs12_api_test-bin-pkcs12_api_test.o" => [ + "test/pkcs12_api_test.c" + ], "test/pkcs12_format_test" => [ "test/helpers/pkcs12_format_test-bin-pkcs12.o", "test/pkcs12_format_test-bin-pkcs12_format_test.o" @@ -27169,6 +32002,12 @@ our %unified_info = ( "test/poly1305_internal_test-bin-poly1305_internal_test.o" => [ "test/poly1305_internal_test.c" ], + "test/priority_queue_test" => [ + "test/priority_queue_test-bin-priority_queue_test.o" + ], + "test/priority_queue_test-bin-priority_queue_test.o" => [ + "test/priority_queue_test.c" + ], "test/property_test" => [ "test/property_test-bin-property_test.o" ], @@ -27187,6 +32026,12 @@ our %unified_info = ( "test/provfetchtest-bin-provfetchtest.o" => [ "test/provfetchtest.c" ], + "test/provider_default_search_path_test" => [ + "test/provider_default_search_path_test-bin-provider_default_search_path_test.o" + ], + "test/provider_default_search_path_test-bin-provider_default_search_path_test.o" => [ + "test/provider_default_search_path_test.c" + ], "test/provider_fallback_test" => [ "test/provider_fallback_test-bin-provider_fallback_test.o" ], @@ -27235,6 +32080,174 @@ our %unified_info = ( "test/punycode_test-bin-punycode_test.o" => [ "test/punycode_test.c" ], + "test/quic_ackm_test" => [ + "test/quic_ackm_test-bin-cc_dummy.o", + "test/quic_ackm_test-bin-quic_ackm_test.o" + ], + "test/quic_ackm_test-bin-cc_dummy.o" => [ + "test/cc_dummy.c" + ], + "test/quic_ackm_test-bin-quic_ackm_test.o" => [ + "test/quic_ackm_test.c" + ], + "test/quic_cc_test" => [ + "test/quic_cc_test-bin-quic_cc_test.o" + ], + "test/quic_cc_test-bin-quic_cc_test.o" => [ + "test/quic_cc_test.c" + ], + "test/quic_cfq_test" => [ + "test/quic_cfq_test-bin-quic_cfq_test.o" + ], + "test/quic_cfq_test-bin-quic_cfq_test.o" => [ + "test/quic_cfq_test.c" + ], + "test/quic_client_test" => [ + "test/quic_client_test-bin-quic_client_test.o" + ], + "test/quic_client_test-bin-quic_client_test.o" => [ + "test/quic_client_test.c" + ], + "test/quic_fc_test" => [ + "test/quic_fc_test-bin-quic_fc_test.o" + ], + "test/quic_fc_test-bin-quic_fc_test.o" => [ + "test/quic_fc_test.c" + ], + "test/quic_fifd_test" => [ + "test/quic_fifd_test-bin-cc_dummy.o", + "test/quic_fifd_test-bin-quic_fifd_test.o" + ], + "test/quic_fifd_test-bin-cc_dummy.o" => [ + "test/cc_dummy.c" + ], + "test/quic_fifd_test-bin-quic_fifd_test.o" => [ + "test/quic_fifd_test.c" + ], + "test/quic_lcidm_test" => [ + "test/quic_lcidm_test-bin-quic_lcidm_test.o" + ], + "test/quic_lcidm_test-bin-quic_lcidm_test.o" => [ + "test/quic_lcidm_test.c" + ], + "test/quic_multistream_test" => [ + "test/helpers/quic_multistream_test-bin-noisydgrambio.o", + "test/helpers/quic_multistream_test-bin-pktsplitbio.o", + "test/helpers/quic_multistream_test-bin-quictestlib.o", + "test/helpers/quic_multistream_test-bin-ssltestlib.o", + "test/quic_multistream_test-bin-quic_multistream_test.o" + ], + "test/quic_multistream_test-bin-quic_multistream_test.o" => [ + "test/quic_multistream_test.c" + ], + "test/quic_newcid_test" => [ + "test/helpers/quic_newcid_test-bin-noisydgrambio.o", + "test/helpers/quic_newcid_test-bin-pktsplitbio.o", + "test/helpers/quic_newcid_test-bin-quictestlib.o", + "test/helpers/quic_newcid_test-bin-ssltestlib.o", + "test/quic_newcid_test-bin-quic_newcid_test.o" + ], + "test/quic_newcid_test-bin-quic_newcid_test.o" => [ + "test/quic_newcid_test.c" + ], + "test/quic_qlog_test" => [ + "test/quic_qlog_test-bin-quic_qlog_test.o" + ], + "test/quic_qlog_test-bin-quic_qlog_test.o" => [ + "test/quic_qlog_test.c" + ], + "test/quic_radix_test" => [ + "test/helpers/quic_radix_test-bin-noisydgrambio.o", + "test/helpers/quic_radix_test-bin-pktsplitbio.o", + "test/helpers/quic_radix_test-bin-quictestlib.o", + "test/helpers/quic_radix_test-bin-ssltestlib.o", + "test/radix/quic_radix_test-bin-quic_radix.o" + ], + "test/quic_rcidm_test" => [ + "test/quic_rcidm_test-bin-quic_rcidm_test.o" + ], + "test/quic_rcidm_test-bin-quic_rcidm_test.o" => [ + "test/quic_rcidm_test.c" + ], + "test/quic_record_test" => [ + "test/quic_record_test-bin-quic_record_test.o" + ], + "test/quic_record_test-bin-quic_record_test.o" => [ + "test/quic_record_test.c" + ], + "test/quic_srt_gen_test" => [ + "test/helpers/quic_srt_gen_test-bin-noisydgrambio.o", + "test/helpers/quic_srt_gen_test-bin-pktsplitbio.o", + "test/helpers/quic_srt_gen_test-bin-quictestlib.o", + "test/helpers/quic_srt_gen_test-bin-ssltestlib.o", + "test/quic_srt_gen_test-bin-quic_srt_gen_test.o" + ], + "test/quic_srt_gen_test-bin-quic_srt_gen_test.o" => [ + "test/quic_srt_gen_test.c" + ], + "test/quic_srtm_test" => [ + "test/quic_srtm_test-bin-quic_srtm_test.o" + ], + "test/quic_srtm_test-bin-quic_srtm_test.o" => [ + "test/quic_srtm_test.c" + ], + "test/quic_stream_test" => [ + "test/quic_stream_test-bin-quic_stream_test.o" + ], + "test/quic_stream_test-bin-quic_stream_test.o" => [ + "test/quic_stream_test.c" + ], + "test/quic_tserver_test" => [ + "test/quic_tserver_test-bin-quic_tserver_test.o" + ], + "test/quic_tserver_test-bin-quic_tserver_test.o" => [ + "test/quic_tserver_test.c" + ], + "test/quic_txp_test" => [ + "test/quic_txp_test-bin-cc_dummy.o", + "test/quic_txp_test-bin-quic_txp_test.o" + ], + "test/quic_txp_test-bin-cc_dummy.o" => [ + "test/cc_dummy.c" + ], + "test/quic_txp_test-bin-quic_txp_test.o" => [ + "test/quic_txp_test.c" + ], + "test/quic_txpim_test" => [ + "test/quic_txpim_test-bin-quic_txpim_test.o" + ], + "test/quic_txpim_test-bin-quic_txpim_test.o" => [ + "test/quic_txpim_test.c" + ], + "test/quic_wire_test" => [ + "test/quic_wire_test-bin-quic_wire_test.o" + ], + "test/quic_wire_test-bin-quic_wire_test.o" => [ + "test/quic_wire_test.c" + ], + "test/quicapitest" => [ + "test/helpers/quicapitest-bin-noisydgrambio.o", + "test/helpers/quicapitest-bin-pktsplitbio.o", + "test/helpers/quicapitest-bin-quictestlib.o", + "test/helpers/quicapitest-bin-ssltestlib.o", + "test/quicapitest-bin-quicapitest.o" + ], + "test/quicapitest-bin-quicapitest.o" => [ + "test/quicapitest.c" + ], + "test/quicfaultstest" => [ + "test/helpers/quicfaultstest-bin-noisydgrambio.o", + "test/helpers/quicfaultstest-bin-pktsplitbio.o", + "test/helpers/quicfaultstest-bin-quictestlib.o", + "test/helpers/quicfaultstest-bin-ssltestlib.o", + "test/quicfaultstest-bin-quicfaultstest.o" + ], + "test/quicfaultstest-bin-quicfaultstest.o" => [ + "test/quicfaultstest.c" + ], + "test/radix/quic_radix_test-bin-quic_radix.o" => [ + "test/radix/quic_radix.c" + ], "test/rand_status_test" => [ "test/rand_status_test-bin-rand_status_test.o" ], @@ -27265,11 +32278,11 @@ our %unified_info = ( "test/rc5test-bin-rc5test.o" => [ "test/rc5test.c" ], - "test/rdrand_sanitytest" => [ - "test/rdrand_sanitytest-bin-rdrand_sanitytest.o" + "test/rdcpu_sanitytest" => [ + "test/rdcpu_sanitytest-bin-rdcpu_sanitytest.o" ], - "test/rdrand_sanitytest-bin-rdrand_sanitytest.o" => [ - "test/rdrand_sanitytest.c" + "test/rdcpu_sanitytest-bin-rdcpu_sanitytest.o" => [ + "test/rdcpu_sanitytest.c" ], "test/recordlentest" => [ "test/helpers/recordlentest-bin-ssltestlib.o", @@ -27278,6 +32291,13 @@ our %unified_info = ( "test/recordlentest-bin-recordlentest.o" => [ "test/recordlentest.c" ], + "test/rpktest" => [ + "test/helpers/rpktest-bin-ssltestlib.o", + "test/rpktest-bin-rpktest.o" + ], + "test/rpktest-bin-rpktest.o" => [ + "test/rpktest.c" + ], "test/rsa_complex" => [ "test/rsa_complex-bin-rsa_complex.o" ], @@ -27302,6 +32322,18 @@ our %unified_info = ( "test/rsa_test-bin-rsa_test.o" => [ "test/rsa_test.c" ], + "test/rsa_x931_test" => [ + "test/rsa_x931_test-bin-rsa_x931_test.o" + ], + "test/rsa_x931_test-bin-rsa_x931_test.o" => [ + "test/rsa_x931_test.c" + ], + "test/safe_math_test" => [ + "test/safe_math_test-bin-safe_math_test.o" + ], + "test/safe_math_test-bin-safe_math_test.o" => [ + "test/safe_math_test.c" + ], "test/sanitytest" => [ "test/sanitytest-bin-sanitytest.o" ], @@ -27333,6 +32365,12 @@ our %unified_info = ( "test/siphash_internal_test-bin-siphash_internal_test.o" => [ "test/siphash_internal_test.c" ], + "test/slh_dsa_test" => [ + "test/slh_dsa_test-bin-slh_dsa_test.o" + ], + "test/slh_dsa_test-bin-slh_dsa_test.o" => [ + "test/slh_dsa_test.c" + ], "test/sm2_internal_test" => [ "test/sm2_internal_test-bin-sm2_internal_test.o" ], @@ -27375,6 +32413,13 @@ our %unified_info = ( "test/ssl_ctx_test-bin-ssl_ctx_test.o" => [ "test/ssl_ctx_test.c" ], + "test/ssl_handshake_rtt_test" => [ + "test/helpers/ssl_handshake_rtt_test-bin-ssltestlib.o", + "test/ssl_handshake_rtt_test-bin-ssl_handshake_rtt_test.o" + ], + "test/ssl_handshake_rtt_test-bin-ssl_handshake_rtt_test.o" => [ + "test/ssl_handshake_rtt_test.c" + ], "test/ssl_old_test" => [ "test/helpers/ssl_old_test-bin-predefined_dhparams.o", "test/ssl_old_test-bin-ssl_old_test.o" @@ -27433,6 +32478,12 @@ our %unified_info = ( "test/stack_test-bin-stack_test.o" => [ "test/stack_test.c" ], + "test/strtoultest" => [ + "test/strtoultest-bin-strtoultest.o" + ], + "test/strtoultest-bin-strtoultest.o" => [ + "test/strtoultest.c" + ], "test/sysdefaulttest" => [ "test/sysdefaulttest-bin-sysdefaulttest.o" ], @@ -27463,6 +32514,9 @@ our %unified_info = ( "test/testutil/libtestutil-lib-format_output.o" => [ "test/testutil/format_output.c" ], + "test/testutil/libtestutil-lib-helper.o" => [ + "test/testutil/helper.c" + ], "test/testutil/libtestutil-lib-load.o" => [ "test/testutil/load.c" ], @@ -27496,6 +32550,12 @@ our %unified_info = ( "test/testutil/libtestutil-lib-testutil_init.o" => [ "test/testutil/testutil_init.c" ], + "test/threadpool_test" => [ + "test/threadpool_test-bin-threadpool_test.o" + ], + "test/threadpool_test-bin-threadpool_test.o" => [ + "test/threadpool_test.c" + ], "test/threadstest" => [ "test/threadstest-bin-threadstest.o" ], @@ -27514,6 +32574,12 @@ our %unified_info = ( "test/time_offset_test-bin-time_offset_test.o" => [ "test/time_offset_test.c" ], + "test/time_test" => [ + "test/time_test-bin-time_test.o" + ], + "test/time_test-bin-time_test.o" => [ + "test/time_test.c" + ], "test/tls13ccstest" => [ "test/helpers/tls13ccstest-bin-ssltestlib.o", "test/tls13ccstest-bin-tls13ccstest.o" @@ -27527,6 +32593,13 @@ our %unified_info = ( "test/tls13encryptiontest-bin-tls13encryptiontest.o" => [ "test/tls13encryptiontest.c" ], + "test/tls13groupselection_test" => [ + "test/helpers/tls13groupselection_test-bin-ssltestlib.o", + "test/tls13groupselection_test-bin-tls13groupselection_test.o" + ], + "test/tls13groupselection_test-bin-tls13groupselection_test.o" => [ + "test/tls13groupselection_test.c" + ], "test/trace_api_test" => [ "test/trace_api_test-bin-trace_api_test.o" ], @@ -27582,6 +32655,12 @@ our %unified_info = ( "test/wpackettest-bin-wpackettest.o" => [ "test/wpackettest.c" ], + "test/x509_acert_test" => [ + "test/x509_acert_test-bin-x509_acert_test.o" + ], + "test/x509_acert_test-bin-x509_acert_test.o" => [ + "test/x509_acert_test.c" + ], "test/x509_check_cert_pkey_test" => [ "test/x509_check_cert_pkey_test-bin-x509_check_cert_pkey_test.o" ], @@ -27600,6 +32679,24 @@ our %unified_info = ( "test/x509_internal_test-bin-x509_internal_test.o" => [ "test/x509_internal_test.c" ], + "test/x509_load_cert_file_test" => [ + "test/x509_load_cert_file_test-bin-x509_load_cert_file_test.o" + ], + "test/x509_load_cert_file_test-bin-x509_load_cert_file_test.o" => [ + "test/x509_load_cert_file_test.c" + ], + "test/x509_req_test" => [ + "test/x509_req_test-bin-x509_req_test.o" + ], + "test/x509_req_test-bin-x509_req_test.o" => [ + "test/x509_req_test.c" + ], + "test/x509_test" => [ + "test/x509_test-bin-x509_test.o" + ], + "test/x509_test-bin-x509_test.o" => [ + "test/x509_test.c" + ], "test/x509_time_test" => [ "test/x509_time_test-bin-x509_time_test.o" ], @@ -27663,6 +32760,7 @@ my @makevars = ( "LDLIBS", "MT", "MTFLAGS", + "OBJCOPY", "PERL", "RANLIB", "RC", @@ -27676,6 +32774,12 @@ my %disabled_info = ( "asan" => { "macro" => "OPENSSL_NO_ASAN" }, + "brotli" => { + "macro" => "OPENSSL_NO_BROTLI" + }, + "brotli-dynamic" => { + "macro" => "OPENSSL_NO_BROTLI_DYNAMIC" + }, "comp" => { "macro" => "OPENSSL_NO_COMP", "skipped" => [ @@ -27688,6 +32792,9 @@ my %disabled_info = ( "crypto-mdebug-backtrace" => { "macro" => "OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE" }, + "demos" => { + "macro" => "OPENSSL_NO_DEMOS" + }, "devcryptoeng" => { "macro" => "OPENSSL_NO_DEVCRYPTOENG" }, @@ -27700,12 +32807,24 @@ my %disabled_info = ( "external-tests" => { "macro" => "OPENSSL_NO_EXTERNAL_TESTS" }, + "fips-jitter" => { + "macro" => "OPENSSL_NO_FIPS_JITTER" + }, "fuzz-afl" => { "macro" => "OPENSSL_NO_FUZZ_AFL" }, "fuzz-libfuzzer" => { "macro" => "OPENSSL_NO_FUZZ_LIBFUZZER" }, + "h3demo" => { + "macro" => "OPENSSL_NO_H3DEMO" + }, + "hqinterop" => { + "macro" => "OPENSSL_NO_HQINTEROP" + }, + "jitter" => { + "macro" => "OPENSSL_NO_JITTER" + }, "ktls" => { "macro" => "OPENSSL_NO_KTLS" }, @@ -27721,6 +32840,9 @@ my %disabled_info = ( "msan" => { "macro" => "OPENSSL_NO_MSAN" }, + "pie" => { + "macro" => "OPENSSL_NO_PIE" + }, "rc5" => { "macro" => "OPENSSL_NO_RC5", "skipped" => [ @@ -27736,6 +32858,12 @@ my %disabled_info = ( "ssl3-method" => { "macro" => "OPENSSL_NO_SSL3_METHOD" }, + "sslkeylog" => { + "macro" => "OPENSSL_NO_SSLKEYLOG" + }, + "tfo" => { + "macro" => "OPENSSL_NO_TFO" + }, "trace" => { "macro" => "OPENSSL_NO_TRACE" }, @@ -27750,6 +32878,21 @@ my %disabled_info = ( }, "weak-ssl-ciphers" => { "macro" => "OPENSSL_NO_WEAK_SSL_CIPHERS" + }, + "winstore" => { + "macro" => "OPENSSL_NO_WINSTORE" + }, + "zlib" => { + "macro" => "OPENSSL_NO_ZLIB" + }, + "zlib-dynamic" => { + "macro" => "OPENSSL_NO_ZLIB_DYNAMIC" + }, + "zstd" => { + "macro" => "OPENSSL_NO_ZSTD" + }, + "zstd-dynamic" => { + "macro" => "OPENSSL_NO_ZSTD_DYNAMIC" } ); my @user_crossable = qw( AR AS CC CXX CPP LD MT RANLIB RC ); @@ -27763,15 +32906,15 @@ unless (caller) { use File::Copy; use Pod::Usage; - use lib '/home/runner/work/node/node/deps/openssl/openssl/util/perl'; - use OpenSSL::fallback '/home/runner/work/node/node/deps/openssl/openssl/external/perl/MODULES.txt'; + use lib '/node/deps/openssl/openssl/util/perl'; + use OpenSSL::fallback '/node/deps/openssl/openssl/external/perl/MODULES.txt'; my $here = dirname($0); if (scalar @ARGV == 0) { # With no arguments, re-create the build file # We do that in two steps, where the first step emits perl - # snipets. + # snippets. my $buildfile = $config{build_file}; my $buildfile_template = "$buildfile.in"; @@ -27791,7 +32934,7 @@ unless (caller) { ); use lib '.'; - use lib '/home/runner/work/node/node/deps/openssl/openssl/Configurations'; + use lib '/node/deps/openssl/openssl/Configurations'; use gentemplate; open my $buildfile_template_fh, ">$buildfile_template" @@ -27808,8 +32951,8 @@ unless (caller) { my $prepend = <<'_____'; use File::Spec::Functions; -use lib '/home/runner/work/node/node/deps/openssl/openssl/util/perl'; -use lib '/home/runner/work/node/node/deps/openssl/openssl/Configurations'; +use lib '/node/deps/openssl/openssl/util/perl'; +use lib '/node/deps/openssl/openssl/Configurations'; use lib '.'; use platform; _____ diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/crypto/aes/aes-x86_64.s b/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/crypto/aes/aes-x86_64.s index ea977ab3e71435..cc4d1892139ec2 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/crypto/aes/aes-x86_64.s +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/crypto/aes/aes-x86_64.s @@ -1852,6 +1852,7 @@ L$cbc_epilogue: .byte 0xf3,0xc3 +.section __DATA,__const .p2align 6 L$AES_Te: .long 0xa56363c6,0xa56363c6 @@ -2638,3 +2639,4 @@ L$AES_Td: .long 0x1b1b1b1b, 0x1b1b1b1b, 0, 0 .byte 65,69,83,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 .p2align 6 +.text diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/crypto/aes/aesni-sha1-x86_64.s b/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/crypto/aes/aesni-sha1-x86_64.s index b0e1036b92e962..fd13982cf4a238 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/crypto/aes/aesni-sha1-x86_64.s +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/crypto/aes/aesni-sha1-x86_64.s @@ -2706,6 +2706,7 @@ L$epilogue_avx: .byte 0xf3,0xc3 +.section __DATA,__const .p2align 6 K_XX_XX: .long 0x5a827999,0x5a827999,0x5a827999,0x5a827999 @@ -2717,6 +2718,7 @@ K_XX_XX: .byte 65,69,83,78,73,45,67,66,67,43,83,72,65,49,32,115,116,105,116,99,104,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 .p2align 6 +.text .p2align 5 aesni_cbc_sha1_enc_shaext: diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/crypto/aes/aesni-sha256-x86_64.s b/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/crypto/aes/aesni-sha256-x86_64.s index cbf5ae8eb01d5c..16feb871a56f0b 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/crypto/aes/aesni-sha256-x86_64.s +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/crypto/aes/aesni-sha256-x86_64.s @@ -34,6 +34,7 @@ L$probe: +.section __DATA,__const .p2align 6 K256: @@ -76,6 +77,7 @@ K256: .long 0,0,0,0, 0,0,0,0 .byte 65,69,83,78,73,45,67,66,67,43,83,72,65,50,53,54,32,115,116,105,116,99,104,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 .p2align 6 +.text .p2align 6 aesni_cbc_sha256_enc_xop: diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/crypto/aes/aesni-x86_64.s b/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/crypto/aes/aesni-x86_64.s index ee768b4912115e..6afc855a02197d 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/crypto/aes/aesni-x86_64.s +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/crypto/aes/aesni-x86_64.s @@ -4451,6 +4451,7 @@ L$key_expansion_256b: +.section __DATA,__const .p2align 6 L$bswap_mask: .byte 15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0 @@ -4473,3 +4474,4 @@ L$key_rcon1b: .byte 65,69,83,32,102,111,114,32,73,110,116,101,108,32,65,69,83,45,78,73,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 .p2align 6 +.text diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/crypto/aes/aesni-xts-avx512.s b/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/crypto/aes/aesni-xts-avx512.s new file mode 100644 index 00000000000000..136db9de13fbf7 --- /dev/null +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/crypto/aes/aesni-xts-avx512.s @@ -0,0 +1,24 @@ +.text +.globl _aesni_xts_128_encrypt_avx512 +.globl _aesni_xts_128_decrypt_avx512 + +_aesni_xts_128_encrypt_avx512: +_aesni_xts_128_decrypt_avx512: +.byte 0x0f,0x0b + .byte 0xf3,0xc3 + +.globl _aesni_xts_256_encrypt_avx512 +.globl _aesni_xts_256_decrypt_avx512 + +_aesni_xts_256_encrypt_avx512: +_aesni_xts_256_decrypt_avx512: +.byte 0x0f,0x0b + .byte 0xf3,0xc3 + +.globl _aesni_xts_avx512_eligible + +_aesni_xts_avx512_eligible: + xorl %eax,%eax + .byte 0xf3,0xc3 + + diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/crypto/aes/bsaes-x86_64.s b/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/crypto/aes/bsaes-x86_64.s index 6d3fdd29cabc12..1d4c35d8ced38f 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/crypto/aes/bsaes-x86_64.s +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/crypto/aes/bsaes-x86_64.s @@ -1559,6 +1559,7 @@ L$ctr_enc_epilogue: .p2align 4 _ossl_bsaes_xts_encrypt: +.byte 243,15,30,250 movq %rsp,%rax L$xts_enc_prologue: pushq %rbp @@ -2028,6 +2029,7 @@ L$xts_enc_epilogue: .p2align 4 _ossl_bsaes_xts_decrypt: +.byte 243,15,30,250 movq %rsp,%rax L$xts_dec_prologue: pushq %rbp @@ -2517,6 +2519,7 @@ L$xts_dec_epilogue: +.section __DATA,__const .p2align 6 _bsaes_const: L$M0ISR: @@ -2568,6 +2571,6 @@ L$M0: .quad 0x02060a0e03070b0f, 0x0004080c0105090d L$63: .quad 0x6363636363636363, 0x6363636363636363 -.byte 66,105,116,45,115,108,105,99,101,100,32,65,69,83,32,102,111,114,32,120,56,54,95,54,52,47,83,83,83,69,51,44,32,69,109,105,108,105,97,32,75,195,164,115,112,101,114,44,32,80,101,116,101,114,32,83,99,104,119,97,98,101,44,32,65,110,100,121,32,80,111,108,121,97,107,111,118,0 .p2align 6 +.byte 66,105,116,45,115,108,105,99,101,100,32,65,69,83,32,102,111,114,32,120,56,54,95,54,52,47,83,83,83,69,51,44,32,69,109,105,108,105,97,32,75,195,164,115,112,101,114,44,32,80,101,116,101,114,32,83,99,104,119,97,98,101,44,32,65,110,100,121,32,80,111,108,121,97,107,111,118,0 diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/crypto/aes/vpaes-x86_64.s b/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/crypto/aes/vpaes-x86_64.s index 2c1e958188dd8b..beaa5cd7fafce6 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/crypto/aes/vpaes-x86_64.s +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/crypto/aes/vpaes-x86_64.s @@ -758,6 +758,7 @@ _vpaes_preheat: +.section __DATA,__const .p2align 6 _vpaes_consts: L$k_inv: @@ -853,6 +854,6 @@ L$k_dsbe: L$k_dsbo: .quad 0x1387EA537EF94000, 0xC7AA6DB9D4943E2D .quad 0x12D7560F93441D00, 0xCA4B8159D8C58E9C -.byte 86,101,99,116,111,114,32,80,101,114,109,117,116,97,116,105,111,110,32,65,69,83,32,102,111,114,32,120,56,54,95,54,52,47,83,83,83,69,51,44,32,77,105,107,101,32,72,97,109,98,117,114,103,32,40,83,116,97,110,102,111,114,100,32,85,110,105,118,101,114,115,105,116,121,41,0 .p2align 6 +.byte 86,101,99,116,111,114,32,80,101,114,109,117,116,97,116,105,111,110,32,65,69,83,32,102,111,114,32,120,56,54,95,54,52,47,83,83,83,69,51,44,32,77,105,107,101,32,72,97,109,98,117,114,103,32,40,83,116,97,110,102,111,114,100,32,85,110,105,118,101,114,115,105,116,121,41,0 diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/crypto/bn/rsaz-avx512.s b/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/crypto/bn/rsaz-2k-avx512.s similarity index 61% rename from deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/crypto/bn/rsaz-avx512.s rename to deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/crypto/bn/rsaz-2k-avx512.s index 05b6e0838686ed..fdab05dc42a35a 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/crypto/bn/rsaz-avx512.s +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/crypto/bn/rsaz-2k-avx512.s @@ -7,12 +7,12 @@ _ossl_rsaz_avx512ifma_eligible: .byte 0xf3,0xc3 -.globl _ossl_rsaz_amm52x20_x1_256 -.globl _ossl_rsaz_amm52x20_x2_256 +.globl _ossl_rsaz_amm52x20_x1_ifma256 +.globl _ossl_rsaz_amm52x20_x2_ifma256 .globl _ossl_extract_multiplier_2x20_win5 -_ossl_rsaz_amm52x20_x1_256: -_ossl_rsaz_amm52x20_x2_256: +_ossl_rsaz_amm52x20_x1_ifma256: +_ossl_rsaz_amm52x20_x2_ifma256: _ossl_extract_multiplier_2x20_win5: .byte 0x0f,0x0b .byte 0xf3,0xc3 diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/crypto/bn/rsaz-2k-avxifma.s b/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/crypto/bn/rsaz-2k-avxifma.s new file mode 100644 index 00000000000000..5d1d4ff68ed1d3 --- /dev/null +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/crypto/bn/rsaz-2k-avxifma.s @@ -0,0 +1,19 @@ +.text + +.globl _ossl_rsaz_avxifma_eligible + +_ossl_rsaz_avxifma_eligible: + xorl %eax,%eax + .byte 0xf3,0xc3 + + +.globl _ossl_rsaz_amm52x20_x1_avxifma256 +.globl _ossl_rsaz_amm52x20_x2_avxifma256 +.globl _ossl_extract_multiplier_2x20_win5_avx + +_ossl_rsaz_amm52x20_x1_avxifma256: +_ossl_rsaz_amm52x20_x2_avxifma256: +_ossl_extract_multiplier_2x20_win5_avx: +.byte 0x0f,0x0b + .byte 0xf3,0xc3 + diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/crypto/bn/rsaz-3k-avx512.s b/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/crypto/bn/rsaz-3k-avx512.s new file mode 100644 index 00000000000000..eb5c23dc29aa1b --- /dev/null +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/crypto/bn/rsaz-3k-avx512.s @@ -0,0 +1,12 @@ +.text + +.globl _ossl_rsaz_amm52x30_x1_ifma256 +.globl _ossl_rsaz_amm52x30_x2_ifma256 +.globl _ossl_extract_multiplier_2x30_win5 + +_ossl_rsaz_amm52x30_x1_ifma256: +_ossl_rsaz_amm52x30_x2_ifma256: +_ossl_extract_multiplier_2x30_win5: +.byte 0x0f,0x0b + .byte 0xf3,0xc3 + diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/crypto/bn/rsaz-3k-avxifma.s b/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/crypto/bn/rsaz-3k-avxifma.s new file mode 100644 index 00000000000000..8baf7082a77ad0 --- /dev/null +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/crypto/bn/rsaz-3k-avxifma.s @@ -0,0 +1,12 @@ +.text + +.globl _ossl_rsaz_amm52x30_x1_avxifma256 +.globl _ossl_rsaz_amm52x30_x2_avxifma256 +.globl _ossl_extract_multiplier_2x30_win5_avx + +_ossl_rsaz_amm52x30_x1_avxifma256: +_ossl_rsaz_amm52x30_x2_avxifma256: +_ossl_extract_multiplier_2x30_win5_avx: +.byte 0x0f,0x0b + .byte 0xf3,0xc3 + diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/crypto/bn/rsaz-4k-avx512.s b/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/crypto/bn/rsaz-4k-avx512.s new file mode 100644 index 00000000000000..f8321c7eb32534 --- /dev/null +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/crypto/bn/rsaz-4k-avx512.s @@ -0,0 +1,12 @@ +.text + +.globl _ossl_rsaz_amm52x40_x1_ifma256 +.globl _ossl_rsaz_amm52x40_x2_ifma256 +.globl _ossl_extract_multiplier_2x40_win5 + +_ossl_rsaz_amm52x40_x1_ifma256: +_ossl_rsaz_amm52x40_x2_ifma256: +_ossl_extract_multiplier_2x40_win5: +.byte 0x0f,0x0b + .byte 0xf3,0xc3 + diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/crypto/bn/rsaz-4k-avxifma.s b/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/crypto/bn/rsaz-4k-avxifma.s new file mode 100644 index 00000000000000..384589dbd6d5a7 --- /dev/null +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/crypto/bn/rsaz-4k-avxifma.s @@ -0,0 +1,12 @@ +.text + +.globl _ossl_rsaz_amm52x40_x1_avxifma256 +.globl _ossl_rsaz_amm52x40_x2_avxifma256 +.globl _ossl_extract_multiplier_2x40_win5_avx + +_ossl_rsaz_amm52x40_x1_avxifma256: +_ossl_rsaz_amm52x40_x2_avxifma256: +_ossl_extract_multiplier_2x40_win5_avx: +.byte 0x0f,0x0b + .byte 0xf3,0xc3 + diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/crypto/bn/rsaz-avx2.s b/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/crypto/bn/rsaz-avx2.s index de597b1e761036..70bdcf2b367bed 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/crypto/bn/rsaz-avx2.s +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/crypto/bn/rsaz-avx2.s @@ -1730,6 +1730,7 @@ _rsaz_avx2_eligible: .byte 0xf3,0xc3 +.section __DATA,__const .p2align 6 L$and_mask: .quad 0x1fffffff,0x1fffffff,0x1fffffff,0x1fffffff @@ -1741,4 +1742,5 @@ L$inc: .long 0,0,0,0, 1,1,1,1 .long 2,2,2,2, 3,3,3,3 .long 4,4,4,4, 4,4,4,4 +.text .p2align 6 diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/crypto/bn/rsaz-x86_64.s b/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/crypto/bn/rsaz-x86_64.s index b572410a065e03..0fbb4e2f580ee7 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/crypto/bn/rsaz-x86_64.s +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/crypto/bn/rsaz-x86_64.s @@ -1979,7 +1979,9 @@ L$SEH_end_rsaz_512_gather4: +.section __DATA,__const .p2align 6 L$inc: .long 0,0, 1,1 .long 2,2, 2,2 +.text diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/crypto/bn/x86_64-mont5.s b/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/crypto/bn/x86_64-mont5.s index 8520cd92f48491..e42299ce86d22b 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/crypto/bn/x86_64-mont5.s +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/crypto/bn/x86_64-mont5.s @@ -3596,8 +3596,10 @@ L$gather: L$SEH_end_bn_gather5: +.section __DATA,__const .p2align 6 L$inc: .long 0,0, 1,1 .long 2,2, 2,2 .byte 77,111,110,116,103,111,109,101,114,121,32,77,117,108,116,105,112,108,105,99,97,116,105,111,110,32,119,105,116,104,32,115,99,97,116,116,101,114,47,103,97,116,104,101,114,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 +.text diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/crypto/buildinf.h b/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/crypto/buildinf.h index 7a7d4993f210f8..7b14503e0d6ce7 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/crypto/buildinf.h +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/crypto/buildinf.h @@ -11,7 +11,7 @@ */ #define PLATFORM "platform: darwin64-x86_64-cc" -#define DATE "built on: Sun Jul 20 00:47:15 2025 UTC" +#define DATE "built on: Sun Jul 27 00:47:55 2025 UTC" /* * Generate compiler_flags as an array of individual characters. This is a diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/crypto/camellia/cmll-x86_64.s b/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/crypto/camellia/cmll-x86_64.s index b255fcfd18ddc1..27ec8393070461 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/crypto/camellia/cmll-x86_64.s +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/crypto/camellia/cmll-x86_64.s @@ -1129,6 +1129,7 @@ L$key_epilogue: .byte 0xf3,0xc3 +.section __DATA,__const .p2align 6 L$Camellia_SIGMA: .long 0x3bcc908b, 0xa09e667f, 0x4caa73b2, 0xb67ae858 @@ -1648,6 +1649,7 @@ L$Camellia_SBOX: .long 0x008f8f8f,0xe300e3e3 .long 0x00010101,0x40004040 .long 0x003d3d3d,0x4f004f4f +.text .globl _Camellia_cbc_encrypt .p2align 4 diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/crypto/chacha/chacha-x86_64.s b/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/crypto/chacha/chacha-x86_64.s index fd8910ba2dc0bc..4f0a547fe676e6 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/crypto/chacha/chacha-x86_64.s +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/crypto/chacha/chacha-x86_64.s @@ -2,6 +2,7 @@ +.section __DATA,__const .p2align 6 L$zero: .long 0,0,0,0 @@ -33,6 +34,7 @@ L$sixteen: L$sigma: .byte 101,120,112,97,110,100,32,51,50,45,98,121,116,101,32,107,0 .byte 67,104,97,67,104,97,50,48,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 +.text .globl _ChaCha20_ctr32 .p2align 6 diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/crypto/ec/ecp_nistz256-x86_64.s b/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/crypto/ec/ecp_nistz256-x86_64.s index dc6bed3b5bdea4..b84aef07a15e31 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/crypto/ec/ecp_nistz256-x86_64.s +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/crypto/ec/ecp_nistz256-x86_64.s @@ -1,4 +1,4 @@ -.text +.section __DATA,__const .globl _ecp_nistz256_precomputed .p2align 12 @@ -2376,6 +2376,7 @@ _ecp_nistz256_precomputed: +.section __DATA,__const .p2align 6 L$poly: .quad 0xffffffffffffffff, 0x00000000ffffffff, 0x0000000000000000, 0xffffffff00000001 @@ -2398,6 +2399,7 @@ L$ord: .quad 0xf3b9cac2fc632551, 0xbce6faada7179e84, 0xffffffffffffffff, 0xffffffff00000000 L$ordK: .quad 0xccd1c8aaee00bc4f +.text .globl _ecp_nistz256_mul_by_2 diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/crypto/md5/md5-x86_64.s b/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/crypto/md5/md5-x86_64.s index e04c0209281eb6..45529306244b4f 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/crypto/md5/md5-x86_64.s +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/crypto/md5/md5-x86_64.s @@ -196,7 +196,7 @@ L$loop: leal -165796510(%rax,%r10,1),%eax andl %ecx,%r11d movl 24(%rsi),%r10d - orl %r11d,%r12d + addl %r11d,%eax movl %ecx,%r11d addl %r12d,%eax movl %ecx,%r12d @@ -207,7 +207,7 @@ L$loop: leal -1069501632(%rdx,%r10,1),%edx andl %ebx,%r11d movl 44(%rsi),%r10d - orl %r11d,%r12d + addl %r11d,%edx movl %ebx,%r11d addl %r12d,%edx movl %ebx,%r12d @@ -218,7 +218,7 @@ L$loop: leal 643717713(%rcx,%r10,1),%ecx andl %eax,%r11d movl 0(%rsi),%r10d - orl %r11d,%r12d + addl %r11d,%ecx movl %eax,%r11d addl %r12d,%ecx movl %eax,%r12d @@ -229,7 +229,7 @@ L$loop: leal -373897302(%rbx,%r10,1),%ebx andl %edx,%r11d movl 20(%rsi),%r10d - orl %r11d,%r12d + addl %r11d,%ebx movl %edx,%r11d addl %r12d,%ebx movl %edx,%r12d @@ -240,7 +240,7 @@ L$loop: leal -701558691(%rax,%r10,1),%eax andl %ecx,%r11d movl 40(%rsi),%r10d - orl %r11d,%r12d + addl %r11d,%eax movl %ecx,%r11d addl %r12d,%eax movl %ecx,%r12d @@ -251,7 +251,7 @@ L$loop: leal 38016083(%rdx,%r10,1),%edx andl %ebx,%r11d movl 60(%rsi),%r10d - orl %r11d,%r12d + addl %r11d,%edx movl %ebx,%r11d addl %r12d,%edx movl %ebx,%r12d @@ -262,7 +262,7 @@ L$loop: leal -660478335(%rcx,%r10,1),%ecx andl %eax,%r11d movl 16(%rsi),%r10d - orl %r11d,%r12d + addl %r11d,%ecx movl %eax,%r11d addl %r12d,%ecx movl %eax,%r12d @@ -273,7 +273,7 @@ L$loop: leal -405537848(%rbx,%r10,1),%ebx andl %edx,%r11d movl 36(%rsi),%r10d - orl %r11d,%r12d + addl %r11d,%ebx movl %edx,%r11d addl %r12d,%ebx movl %edx,%r12d @@ -284,7 +284,7 @@ L$loop: leal 568446438(%rax,%r10,1),%eax andl %ecx,%r11d movl 56(%rsi),%r10d - orl %r11d,%r12d + addl %r11d,%eax movl %ecx,%r11d addl %r12d,%eax movl %ecx,%r12d @@ -295,7 +295,7 @@ L$loop: leal -1019803690(%rdx,%r10,1),%edx andl %ebx,%r11d movl 12(%rsi),%r10d - orl %r11d,%r12d + addl %r11d,%edx movl %ebx,%r11d addl %r12d,%edx movl %ebx,%r12d @@ -306,7 +306,7 @@ L$loop: leal -187363961(%rcx,%r10,1),%ecx andl %eax,%r11d movl 32(%rsi),%r10d - orl %r11d,%r12d + addl %r11d,%ecx movl %eax,%r11d addl %r12d,%ecx movl %eax,%r12d @@ -317,7 +317,7 @@ L$loop: leal 1163531501(%rbx,%r10,1),%ebx andl %edx,%r11d movl 52(%rsi),%r10d - orl %r11d,%r12d + addl %r11d,%ebx movl %edx,%r11d addl %r12d,%ebx movl %edx,%r12d @@ -328,7 +328,7 @@ L$loop: leal -1444681467(%rax,%r10,1),%eax andl %ecx,%r11d movl 8(%rsi),%r10d - orl %r11d,%r12d + addl %r11d,%eax movl %ecx,%r11d addl %r12d,%eax movl %ecx,%r12d @@ -339,7 +339,7 @@ L$loop: leal -51403784(%rdx,%r10,1),%edx andl %ebx,%r11d movl 28(%rsi),%r10d - orl %r11d,%r12d + addl %r11d,%edx movl %ebx,%r11d addl %r12d,%edx movl %ebx,%r12d @@ -350,7 +350,7 @@ L$loop: leal 1735328473(%rcx,%r10,1),%ecx andl %eax,%r11d movl 48(%rsi),%r10d - orl %r11d,%r12d + addl %r11d,%ecx movl %eax,%r11d addl %r12d,%ecx movl %eax,%r12d @@ -361,7 +361,7 @@ L$loop: leal -1926607734(%rbx,%r10,1),%ebx andl %edx,%r11d movl 20(%rsi),%r10d - orl %r11d,%r12d + addl %r11d,%ebx movl %edx,%r11d addl %r12d,%ebx movl %edx,%r12d diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/crypto/modes/aes-gcm-avx512.s b/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/crypto/modes/aes-gcm-avx512.s new file mode 100644 index 00000000000000..bd6bbdf14850ed --- /dev/null +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/crypto/modes/aes-gcm-avx512.s @@ -0,0 +1,27 @@ +.text +.globl _ossl_vaes_vpclmulqdq_capable + +_ossl_vaes_vpclmulqdq_capable: + xorl %eax,%eax + .byte 0xf3,0xc3 + + +.globl _ossl_aes_gcm_init_avx512 +.globl _ossl_aes_gcm_setiv_avx512 +.globl _ossl_aes_gcm_update_aad_avx512 +.globl _ossl_aes_gcm_encrypt_avx512 +.globl _ossl_aes_gcm_decrypt_avx512 +.globl _ossl_aes_gcm_finalize_avx512 +.globl _ossl_gcm_gmult_avx512 + + +_ossl_aes_gcm_init_avx512: +_ossl_aes_gcm_setiv_avx512: +_ossl_aes_gcm_update_aad_avx512: +_ossl_aes_gcm_encrypt_avx512: +_ossl_aes_gcm_decrypt_avx512: +_ossl_aes_gcm_finalize_avx512: +_ossl_gcm_gmult_avx512: +.byte 0x0f,0x0b + .byte 0xf3,0xc3 + diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/crypto/modes/aesni-gcm-x86_64.s b/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/crypto/modes/aesni-gcm-x86_64.s index c26df9da7e6377..ff62687756e088 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/crypto/modes/aesni-gcm-x86_64.s +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/crypto/modes/aesni-gcm-x86_64.s @@ -774,6 +774,7 @@ L$gcm_enc_abort: .byte 0xf3,0xc3 +.section __DATA,__const .p2align 6 L$bswap_mask: .byte 15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0 @@ -786,4 +787,5 @@ L$two_lsb: L$one_lsb: .byte 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 .byte 65,69,83,45,78,73,32,71,67,77,32,109,111,100,117,108,101,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 +.text .p2align 6 diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/crypto/modes/ghash-x86_64.s b/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/crypto/modes/ghash-x86_64.s index a5b2d6672ca332..e048e2c429aa4b 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/crypto/modes/ghash-x86_64.s +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/crypto/modes/ghash-x86_64.s @@ -696,6 +696,7 @@ L$ghash_epilogue: .p2align 4 _gcm_init_clmul: +.byte 243,15,30,250 L$_init_clmul: movdqu (%rsi),%xmm2 pshufd $78,%xmm2,%xmm2 @@ -1294,6 +1295,7 @@ L$done: .p2align 5 _gcm_init_avx: +.byte 243,15,30,250 vzeroupper vmovdqu (%rsi),%xmm2 @@ -1786,6 +1788,7 @@ L$tail_no_xor_avx: .byte 0xf3,0xc3 +.section __DATA,__const .p2align 6 L$bswap_mask: .byte 15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0 @@ -1839,3 +1842,4 @@ L$rem_8bit: .byte 71,72,65,83,72,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 .p2align 6 +.text diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/crypto/params_idx.c b/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/crypto/params_idx.c new file mode 100644 index 00000000000000..9d76ffededc24c --- /dev/null +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/crypto/params_idx.c @@ -0,0 +1,3366 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from crypto/params_idx.c.in + * + * Copyright 2023 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + +#include "internal/e_os.h" +#include "internal/param_names.h" +#include + +/* Machine generated TRIE -- generated by util/perl/OpenSSL/paramnames.pm */ +int ossl_param_find_pidx(const char *s) +{ + switch(s[0]) { + default: + break; + case 'a': + switch(s[1]) { + default: + break; + case 'c': + if (strcmp("vp-info", s + 2) == 0) + return PIDX_KDF_PARAM_X942_ACVPINFO; + break; + case 'd': + switch(s[2]) { + default: + break; + case 'd': + if (strcmp("itional-random", s + 3) == 0) + return PIDX_SIGNATURE_PARAM_ADD_RANDOM; + break; + case '\0': + return PIDX_KDF_PARAM_ARGON2_AD; + } + break; + case 'e': + if (strcmp("ad", s + 2) == 0) + return PIDX_CIPHER_PARAM_AEAD; + break; + case 'l': + switch(s[2]) { + default: + break; + case 'g': + switch(s[3]) { + default: + break; + case '_': + if (strcmp("id_param", s + 4) == 0) + return PIDX_CIPHER_PARAM_ALGORITHM_ID_PARAMS_OLD; + break; + case 'i': + if (strcmp("d-absent", s + 4) == 0) + return PIDX_DIGEST_PARAM_ALGID_ABSENT; + break; + case 'o': + switch(s[4]) { + default: + break; + case 'r': + switch(s[5]) { + default: + break; + case 'i': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case 'h': + switch(s[8]) { + default: + break; + case 'm': + switch(s[9]) { + default: + break; + case '-': + switch(s[10]) { + default: + break; + case 'i': + switch(s[11]) { + default: + break; + case 'd': + switch(s[12]) { + default: + break; + case '-': + if (strcmp("params", s + 13) == 0) + return PIDX_ALG_PARAM_ALGORITHM_ID_PARAMS; + break; + case '\0': + return PIDX_ALG_PARAM_ALGORITHM_ID; + } + } + } + } + } + } + } + } + } + } + break; + case 'i': + if (strcmp("as", s + 3) == 0) + return PIDX_STORE_PARAM_ALIAS; + } + break; + case '\0': + return PIDX_PKEY_PARAM_EC_A; + } + break; + case 'b': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("sis-type", s + 2) == 0) + return PIDX_PKEY_PARAM_EC_CHAR2_TYPE; + break; + case 'i': + if (strcmp("ts", s + 2) == 0) + return PIDX_PKEY_PARAM_BITS; + break; + case 'l': + switch(s[2]) { + default: + break; + case 'o': + switch(s[3]) { + default: + break; + case 'c': + switch(s[4]) { + default: + break; + case 'k': + switch(s[5]) { + default: + break; + case '-': + if (strcmp("size", s + 6) == 0) + return PIDX_MAC_PARAM_BLOCK_SIZE; + break; + case '_': + if (strcmp("padding", s + 6) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_BLOCK_PADDING; + break; + case 's': + if (strcmp("ize", s + 6) == 0) + return PIDX_DIGEST_PARAM_BLOCK_SIZE; + } + } + } + } + break; + case 'u': + if (strcmp("ildinfo", s + 2) == 0) + return PIDX_PROV_PARAM_BUILDINFO; + break; + case '\0': + return PIDX_PKEY_PARAM_EC_B; + } + break; + case 'c': + switch(s[1]) { + default: + break; + case '-': + if (strcmp("rounds", s + 2) == 0) + return PIDX_MAC_PARAM_C_ROUNDS; + break; + case 'e': + if (strcmp("kalg", s + 2) == 0) + return PIDX_KDF_PARAM_CEK_ALG; + break; + case 'i': + if (strcmp("pher", s + 2) == 0) + return PIDX_ALG_PARAM_CIPHER; + break; + case 'o': + switch(s[2]) { + default: + break; + case 'f': + if (strcmp("actor", s + 3) == 0) + return PIDX_PKEY_PARAM_EC_COFACTOR; + break; + case 'n': + switch(s[3]) { + default: + break; + case 's': + if (strcmp("tant", s + 4) == 0) + return PIDX_KDF_PARAM_CONSTANT; + break; + case 't': + if (strcmp("ext-string", s + 4) == 0) + return PIDX_SIGNATURE_PARAM_CONTEXT_STRING; + } + } + break; + case 't': + switch(s[2]) { + default: + break; + case 's': + switch(s[3]) { + default: + break; + case '_': + if (strcmp("mode", s + 4) == 0) + return PIDX_CIPHER_PARAM_CTS_MODE; + break; + case '\0': + return PIDX_CIPHER_PARAM_CTS; + } + } + break; + case 'u': + switch(s[2]) { + default: + break; + case 's': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case 'o': + switch(s[5]) { + default: + break; + case 'm': + switch(s[6]) { + default: + break; + case '-': + if (strcmp("iv", s + 7) == 0) + return PIDX_CIPHER_PARAM_CUSTOM_IV; + break; + case '\0': + return PIDX_MAC_PARAM_CUSTOM; + } + } + } + } + } + } + break; + case 'd': + switch(s[1]) { + default: + break; + case '-': + if (strcmp("rounds", s + 2) == 0) + return PIDX_MAC_PARAM_D_ROUNDS; + break; + case 'a': + switch(s[2]) { + default: + break; + case 't': + switch(s[3]) { + default: + break; + case 'a': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 's': + if (strcmp("tructure", s + 6) == 0) + return PIDX_OBJECT_PARAM_DATA_STRUCTURE; + break; + case 't': + if (strcmp("ype", s + 6) == 0) + return PIDX_OBJECT_PARAM_DATA_TYPE; + } + break; + case '\0': + return PIDX_OBJECT_PARAM_DATA; + } + } + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'c': + switch(s[3]) { + default: + break; + case 'o': + if (strcmp("ded-from-explicit", s + 4) == 0) + return PIDX_PKEY_PARAM_EC_DECODED_FROM_EXPLICIT_PARAMS; + break; + case 'r': + if (strcmp("ypt-only", s + 4) == 0) + return PIDX_CIPHER_PARAM_DECRYPT_ONLY; + } + break; + case 'f': + if (strcmp("ault-digest", s + 3) == 0) + return PIDX_PKEY_PARAM_DEFAULT_DIGEST; + break; + case 's': + if (strcmp("c", s + 3) == 0) + return PIDX_OBJECT_PARAM_DESC; + break; + case 't': + if (strcmp("erministic", s + 3) == 0) + return PIDX_SIGNATURE_PARAM_DETERMINISTIC; + } + break; + case 'h': + if (strcmp("kem-ikm", s + 2) == 0) + return PIDX_PKEY_PARAM_DHKEM_IKM; + break; + case 'i': + switch(s[2]) { + default: + break; + case 'g': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case 's': + switch(s[5]) { + default: + break; + case 't': + switch(s[6]) { + default: + break; + case '-': + switch(s[7]) { + default: + break; + case 'c': + if (strcmp("heck", s + 8) == 0) + return PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK; + break; + case 'n': + if (strcmp("oinit", s + 8) == 0) + return PIDX_MAC_PARAM_DIGEST_NOINIT; + break; + case 'o': + if (strcmp("neshot", s + 8) == 0) + return PIDX_MAC_PARAM_DIGEST_ONESHOT; + break; + case 'p': + if (strcmp("rops", s + 8) == 0) + return PIDX_ASYM_CIPHER_PARAM_OAEP_DIGEST_PROPS; + break; + case 's': + if (strcmp("ize", s + 8) == 0) + return PIDX_PKEY_PARAM_DIGEST_SIZE; + } + break; + case '\0': + return PIDX_STORE_PARAM_DIGEST; + } + } + } + } + break; + case 's': + if (strcmp("tid", s + 3) == 0) + return PIDX_PKEY_PARAM_DIST_ID; + } + break; + case 'r': + if (strcmp("bg-no-trunc-md", s + 2) == 0) + return PIDX_PROV_PARAM_DRBG_TRUNC_DIGEST; + break; + case 's': + if (strcmp("a-sign-disabled", s + 2) == 0) + return PIDX_PROV_PARAM_DSA_SIGN_DISABLED; + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_D; + } + break; + case 'e': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("rly_clean", s + 2) == 0) + return PIDX_KDF_PARAM_EARLY_CLEAN; + break; + case 'c': + switch(s[2]) { + default: + break; + case 'd': + switch(s[3]) { + default: + break; + case 'h': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'c': + switch(s[6]) { + default: + break; + case 'o': + switch(s[7]) { + default: + break; + case 'f': + switch(s[8]) { + default: + break; + case 'a': + switch(s[9]) { + default: + break; + case 'c': + switch(s[10]) { + default: + break; + case 't': + switch(s[11]) { + default: + break; + case 'o': + switch(s[12]) { + default: + break; + case 'r': + switch(s[13]) { + default: + break; + case '-': + switch(s[14]) { + default: + break; + case 'c': + if (strcmp("heck", s + 15) == 0) + return PIDX_PROV_PARAM_ECDH_COFACTOR_CHECK; + break; + case 'm': + if (strcmp("ode", s + 15) == 0) + return PIDX_EXCHANGE_PARAM_EC_ECDH_COFACTOR_MODE; + } + } + } + } + } + } + } + } + } + } + } + } + } + break; + case 'm': + if (strcmp("s_check", s + 2) == 0) + return PIDX_KDF_PARAM_FIPS_EMS_CHECK; + break; + case 'n': + switch(s[2]) { + default: + break; + case 'c': + switch(s[3]) { + default: + break; + case 'o': + switch(s[4]) { + default: + break; + case 'd': + switch(s[5]) { + default: + break; + case 'e': + if (strcmp("d-pub-key", s + 6) == 0) + return PIDX_PKEY_PARAM_ENCODED_PUBLIC_KEY; + break; + case 'i': + if (strcmp("ng", s + 6) == 0) + return PIDX_PKEY_PARAM_EC_ENCODING; + } + } + break; + case 'r': + switch(s[4]) { + default: + break; + case 'y': + switch(s[5]) { + default: + break; + case 'p': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case '-': + switch(s[8]) { + default: + break; + case 'c': + if (strcmp("heck", s + 9) == 0) + return PIDX_CIPHER_PARAM_FIPS_ENCRYPT_CHECK; + break; + case 'l': + if (strcmp("evel", s + 9) == 0) + return PIDX_ENCODER_PARAM_ENCRYPT_LEVEL; + } + } + } + } + } + } + break; + case 'g': + if (strcmp("ine", s + 3) == 0) + return PIDX_ALG_PARAM_ENGINE; + break; + case 't': + switch(s[3]) { + default: + break; + case 'r': + switch(s[4]) { + default: + break; + case 'o': + switch(s[5]) { + default: + break; + case 'p': + switch(s[6]) { + default: + break; + case 'y': + switch(s[7]) { + default: + break; + case '_': + if (strcmp("required", s + 8) == 0) + return PIDX_DRBG_PARAM_ENTROPY_REQUIRED; + break; + case '\0': + return PIDX_KDF_PARAM_HMACDRBG_ENTROPY; + } + } + } + } + } + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_E; + break; + case 'x': + if (strcmp("pect", s + 2) == 0) + return PIDX_STORE_PARAM_EXPECT; + } + break; + case 'f': + switch(s[1]) { + default: + break; + case 'i': + switch(s[2]) { + default: + break; + case 'e': + if (strcmp("ld-type", s + 3) == 0) + return PIDX_PKEY_PARAM_EC_FIELD_TYPE; + break; + case 'n': + if (strcmp("gerprint", s + 3) == 0) + return PIDX_STORE_PARAM_FINGERPRINT; + break; + case 'p': + if (strcmp("s-indicator", s + 3) == 0) + return PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR; + } + } + break; + case 'g': + switch(s[1]) { + default: + break; + case 'e': + switch(s[2]) { + default: + break; + case 'n': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case 'r': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case 'e': + switch(s[8]) { + default: + break; + case '\0': + return PIDX_RAND_PARAM_GENERATE; + } + break; + case 'o': + if (strcmp("r", s + 8) == 0) + return PIDX_PKEY_PARAM_EC_GENERATOR; + } + } + } + } + } + } + break; + case 'i': + if (strcmp("ndex", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_GINDEX; + break; + case 'r': + switch(s[2]) { + default: + break; + case 'o': + switch(s[3]) { + default: + break; + case 'u': + switch(s[4]) { + default: + break; + case 'p': + switch(s[5]) { + default: + break; + case '-': + if (strcmp("check", s + 6) == 0) + return PIDX_PKEY_PARAM_EC_GROUP_CHECK_TYPE; + break; + case '\0': + return PIDX_PKEY_PARAM_GROUP_NAME; + } + } + } + } + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_G; + } + break; + case 'h': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("s-randkey", s + 2) == 0) + return PIDX_CIPHER_PARAM_HAS_RAND_KEY; + break; + case 'i': + if (strcmp("ndex", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_H; + break; + case 'k': + switch(s[2]) { + default: + break; + case 'd': + switch(s[3]) { + default: + break; + case 'f': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 6) == 0) + return PIDX_PROV_PARAM_HKDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 6) == 0) + return PIDX_PROV_PARAM_HKDF_KEY_CHECK; + } + } + } + } + break; + case 'm': + if (strcmp("ac-key-check", s + 2) == 0) + return PIDX_PROV_PARAM_HMAC_KEY_CHECK; + break; + case 's': + if (strcmp("_padding", s + 2) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_HS_PADDING; + } + break; + case 'i': + switch(s[1]) { + default: + break; + case 'd': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_KDF_PARAM_PKCS12_ID; + } + break; + case 'k': + if (strcmp("me", s + 2) == 0) + return PIDX_KEM_PARAM_IKME; + break; + case 'm': + if (strcmp("plicit-rejection", s + 2) == 0) + return PIDX_PKEY_PARAM_IMPLICIT_REJECTION; + break; + case 'n': + switch(s[2]) { + default: + break; + case 'c': + if (strcmp("lude-public", s + 3) == 0) + return PIDX_PKEY_PARAM_EC_INCLUDE_PUBLIC; + break; + case 'f': + if (strcmp("o", s + 3) == 0) + return PIDX_PASSPHRASE_PARAM_INFO; + break; + case 'p': + if (strcmp("ut-type", s + 3) == 0) + return PIDX_STORE_PARAM_INPUT_TYPE; + break; + case 's': + if (strcmp("tance", s + 3) == 0) + return PIDX_SIGNATURE_PARAM_INSTANCE; + } + break; + case 't': + switch(s[2]) { + default: + break; + case 'e': + switch(s[3]) { + default: + break; + case 'r': + switch(s[4]) { + default: + break; + case 'a': + if (strcmp("tion", s + 5) == 0) + return PIDX_GEN_PARAM_ITERATION; + break; + case '\0': + return PIDX_KDF_PARAM_ITER; + } + } + } + break; + case 'v': + switch(s[2]) { + default: + break; + case '-': + if (strcmp("generated", s + 3) == 0) + return PIDX_CIPHER_PARAM_AEAD_IV_GENERATED; + break; + case 'l': + if (strcmp("en", s + 3) == 0) + return PIDX_CIPHER_PARAM_IVLEN; + break; + case '\0': + return PIDX_MAC_PARAM_IV; + } + } + break; + case 'j': + switch(s[1]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_COFACTOR; + } + break; + case 'k': + switch(s[1]) { + default: + break; + case '1': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_PP_K1; + } + break; + case '2': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_PP_K2; + } + break; + case '3': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_PP_K3; + } + break; + case 'a': + if (strcmp("t", s + 2) == 0) + return PIDX_SIGNATURE_PARAM_KAT; + break; + case 'b': + if (strcmp("kdf-key-check", s + 2) == 0) + return PIDX_PROV_PARAM_KBKDF_KEY_CHECK; + break; + case 'd': + switch(s[2]) { + default: + break; + case 'f': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'd': + switch(s[5]) { + default: + break; + case 'i': + switch(s[6]) { + default: + break; + case 'g': + switch(s[7]) { + default: + break; + case 'e': + switch(s[8]) { + default: + break; + case 's': + switch(s[9]) { + default: + break; + case 't': + switch(s[10]) { + default: + break; + case '-': + if (strcmp("props", s + 11) == 0) + return PIDX_EXCHANGE_PARAM_KDF_DIGEST_PROPS; + break; + case '\0': + return PIDX_EXCHANGE_PARAM_KDF_DIGEST; + } + } + } + } + } + } + break; + case 'o': + if (strcmp("utlen", s + 5) == 0) + return PIDX_EXCHANGE_PARAM_KDF_OUTLEN; + break; + case 't': + if (strcmp("ype", s + 5) == 0) + return PIDX_EXCHANGE_PARAM_KDF_TYPE; + break; + case 'u': + if (strcmp("km", s + 5) == 0) + return PIDX_EXCHANGE_PARAM_KDF_UKM; + } + } + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'y': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'c': + if (strcmp("heck", s + 5) == 0) + return PIDX_PKEY_PARAM_FIPS_KEY_CHECK; + break; + case 'l': + if (strcmp("ength", s + 5) == 0) + return PIDX_SKEY_PARAM_KEY_LENGTH; + } + break; + case 'b': + if (strcmp("its", s + 4) == 0) + return PIDX_CIPHER_PARAM_RC2_KEYBITS; + break; + case 'l': + if (strcmp("en", s + 4) == 0) + return PIDX_CIPHER_PARAM_KEYLEN; + break; + case '\0': + return PIDX_MAC_PARAM_KEY; + } + } + break; + case 'm': + if (strcmp("ac-key-check", s + 2) == 0) + return PIDX_PROV_PARAM_KMAC_KEY_CHECK; + } + break; + case 'l': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'b': + if (strcmp("el", s + 3) == 0) + return PIDX_KDF_PARAM_LABEL; + break; + case 'n': + if (strcmp("es", s + 3) == 0) + return PIDX_KDF_PARAM_ARGON2_LANES; + } + } + break; + case 'm': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'c': + switch(s[3]) { + default: + break; + case 'k': + if (strcmp("ey", s + 4) == 0) + return PIDX_CIPHER_PARAM_AEAD_MAC_KEY; + break; + case 'l': + if (strcmp("en", s + 4) == 0) + return PIDX_KDF_PARAM_MAC_SIZE; + break; + case '\0': + return PIDX_ALG_PARAM_MAC; + } + break; + case 'n': + if (strcmp("datory-digest", s + 3) == 0) + return PIDX_PKEY_PARAM_MANDATORY_DIGEST; + break; + case 'x': + switch(s[3]) { + default: + break; + case '-': + if (strcmp("size", s + 4) == 0) + return PIDX_PKEY_PARAM_MAX_SIZE; + break; + case '_': + switch(s[4]) { + default: + break; + case 'a': + if (strcmp("dinlen", s + 5) == 0) + return PIDX_DRBG_PARAM_MAX_ADINLEN; + break; + case 'e': + switch(s[5]) { + default: + break; + case 'a': + if (strcmp("rly_data", s + 6) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_MAX_EARLY_DATA; + break; + case 'n': + if (strcmp("tropylen", s + 6) == 0) + return PIDX_DRBG_PARAM_MAX_ENTROPYLEN; + } + break; + case 'f': + if (strcmp("rag_len", s + 5) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_MAX_FRAG_LEN; + break; + case 'n': + if (strcmp("oncelen", s + 5) == 0) + return PIDX_DRBG_PARAM_MAX_NONCELEN; + break; + case 'p': + if (strcmp("erslen", s + 5) == 0) + return PIDX_DRBG_PARAM_MAX_PERSLEN; + break; + case 'r': + if (strcmp("equest", s + 5) == 0) + return PIDX_RAND_PARAM_MAX_REQUEST; + } + break; + case 'i': + if (strcmp("um_length", s + 4) == 0) + return PIDX_DRBG_PARAM_MAX_LENGTH; + break; + case 'm': + if (strcmp("em_bytes", s + 4) == 0) + return PIDX_KDF_PARAM_SCRYPT_MAXMEM; + } + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'm': + if (strcmp("cost", s + 3) == 0) + return PIDX_KDF_PARAM_ARGON2_MEMCOST; + break; + case 's': + if (strcmp("sage-encoding", s + 3) == 0) + return PIDX_SIGNATURE_PARAM_MESSAGE_ENCODING; + } + break; + case 'g': + switch(s[2]) { + default: + break; + case 'f': + switch(s[3]) { + default: + break; + case '1': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'd': + if (strcmp("igest", s + 6) == 0) + return PIDX_PKEY_PARAM_MGF1_DIGEST; + break; + case 'p': + if (strcmp("roperties", s + 6) == 0) + return PIDX_PKEY_PARAM_MGF1_PROPERTIES; + } + } + break; + case '\0': + return PIDX_PKEY_PARAM_MASKGENFUNC; + } + } + break; + case 'i': + switch(s[2]) { + default: + break; + case 'c': + if (strcmp("alg", s + 3) == 0) + return PIDX_DIGEST_PARAM_MICALG; + break; + case 'n': + switch(s[3]) { + default: + break; + case '_': + switch(s[4]) { + default: + break; + case 'e': + if (strcmp("ntropylen", s + 5) == 0) + return PIDX_DRBG_PARAM_MIN_ENTROPYLEN; + break; + case 'n': + if (strcmp("oncelen", s + 5) == 0) + return PIDX_DRBG_PARAM_MIN_NONCELEN; + } + break; + case 'i': + if (strcmp("um_length", s + 4) == 0) + return PIDX_DRBG_PARAM_MIN_LENGTH; + } + } + break; + case 'l': + switch(s[2]) { + default: + break; + case '-': + switch(s[3]) { + default: + break; + case 'd': + switch(s[4]) { + default: + break; + case 's': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case '.': + switch(s[7]) { + default: + break; + case 'i': + if (strcmp("nput_formats", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_DSA_INPUT_FORMATS; + break; + case 'o': + if (strcmp("utput_formats", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_DSA_OUTPUT_FORMATS; + break; + case 'p': + if (strcmp("refer_seed", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_DSA_PREFER_SEED; + break; + case 'r': + if (strcmp("etain_seed", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_DSA_RETAIN_SEED; + } + } + } + } + break; + case 'k': + switch(s[4]) { + default: + break; + case 'e': + switch(s[5]) { + default: + break; + case 'm': + switch(s[6]) { + default: + break; + case '.': + switch(s[7]) { + default: + break; + case 'i': + switch(s[8]) { + default: + break; + case 'm': + if (strcmp("port_pct_type", s + 9) == 0) + return PIDX_PKEY_PARAM_ML_KEM_IMPORT_PCT_TYPE; + break; + case 'n': + if (strcmp("put_formats", s + 9) == 0) + return PIDX_PKEY_PARAM_ML_KEM_INPUT_FORMATS; + } + break; + case 'o': + if (strcmp("utput_formats", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_KEM_OUTPUT_FORMATS; + break; + case 'p': + if (strcmp("refer_seed", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_KEM_PREFER_SEED; + break; + case 'r': + if (strcmp("etain_seed", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_KEM_RETAIN_SEED; + } + } + } + } + } + } + break; + case 'o': + switch(s[2]) { + default: + break; + case 'd': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case '\0': + return PIDX_LIBSSL_RECORD_LAYER_PARAM_MODE; + } + break; + case 'u': + if (strcmp("le-filename", s + 4) == 0) + return PIDX_PROV_PARAM_CORE_MODULE_FILENAME; + } + } + break; + case 'u': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_SIGNATURE_PARAM_MU; + } + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_M; + } + break; + case 'n': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("me", s + 2) == 0) + return PIDX_STORE_PARAM_ISSUER; + break; + case 'o': + switch(s[2]) { + default: + break; + case '-': + if (strcmp("short-mac", s + 3) == 0) + return PIDX_PROV_PARAM_NO_SHORT_MAC; + break; + case 'n': + switch(s[3]) { + default: + break; + case 'c': + switch(s[4]) { + default: + break; + case 'e': + switch(s[5]) { + default: + break; + case '-': + if (strcmp("type", s + 6) == 0) + return PIDX_SIGNATURE_PARAM_NONCE_TYPE; + break; + case '\0': + return PIDX_KDF_PARAM_HMACDRBG_NONCE; + } + } + } + } + break; + case 'u': + if (strcmp("m", s + 2) == 0) + return PIDX_CIPHER_PARAM_NUM; + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_N; + } + break; + case 'o': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("ep-label", s + 2) == 0) + return PIDX_ASYM_CIPHER_PARAM_OAEP_LABEL; + break; + case 'p': + switch(s[2]) { + default: + break; + case 'e': + switch(s[3]) { + default: + break; + case 'n': + if (strcmp("ssl-version", s + 4) == 0) + return PIDX_PROV_PARAM_CORE_VERSION; + break; + case 'r': + if (strcmp("ation", s + 4) == 0) + return PIDX_KEM_PARAM_OPERATION; + } + break; + case 't': + if (strcmp("ions", s + 3) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_OPTIONS; + } + break; + case 'r': + if (strcmp("der", s + 2) == 0) + return PIDX_PKEY_PARAM_EC_ORDER; + } + break; + case 'p': + switch(s[1]) { + default: + break; + case '1': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_P1; + } + break; + case '2': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_P2; + } + break; + case 'a': + switch(s[2]) { + default: + break; + case 'd': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'm': + if (strcmp("ode", s + 5) == 0) + return PIDX_PKEY_PARAM_PAD_MODE; + break; + case 't': + if (strcmp("ype", s + 5) == 0) + return PIDX_DIGEST_PARAM_PAD_TYPE; + } + break; + case 'd': + if (strcmp("ing", s + 4) == 0) + return PIDX_CIPHER_PARAM_PADDING; + break; + case '\0': + return PIDX_EXCHANGE_PARAM_PAD; + } + break; + case 'r': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case 'y': + switch(s[5]) { + default: + break; + case 'u': + if (strcmp("-info", s + 6) == 0) + return PIDX_KDF_PARAM_X942_PARTYUINFO; + break; + case 'v': + if (strcmp("-info", s + 6) == 0) + return PIDX_KDF_PARAM_X942_PARTYVINFO; + } + } + } + break; + case 's': + if (strcmp("s", s + 3) == 0) + return PIDX_KDF_PARAM_PASSWORD; + } + break; + case 'b': + switch(s[2]) { + default: + break; + case 'i': + if (strcmp("ts", s + 3) == 0) + return PIDX_PKEY_PARAM_FFC_PBITS; + break; + case 'k': + if (strcmp("df2-lower-bound-check", s + 3) == 0) + return PIDX_PROV_PARAM_PBKDF2_LOWER_BOUND_CHECK; + } + break; + case 'c': + if (strcmp("ounter", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_PCOUNTER; + break; + case 'i': + if (strcmp("peline-tag", s + 2) == 0) + return PIDX_CIPHER_PARAM_PIPELINE_AEAD_TAG; + break; + case 'k': + if (strcmp("cs5", s + 2) == 0) + return PIDX_KDF_PARAM_PKCS5; + break; + case 'o': + switch(s[2]) { + default: + break; + case 'i': + if (strcmp("nt-format", s + 3) == 0) + return PIDX_PKEY_PARAM_EC_POINT_CONVERSION_FORMAT; + break; + case 't': + if (strcmp("ential", s + 3) == 0) + return PIDX_GEN_PARAM_POTENTIAL; + } + break; + case 'r': + switch(s[2]) { + default: + break; + case 'e': + switch(s[3]) { + default: + break; + case 'd': + if (strcmp("iction_resistance", s + 4) == 0) + return PIDX_DRBG_PARAM_PREDICTION_RESISTANCE; + break; + case 'f': + if (strcmp("ix", s + 4) == 0) + return PIDX_KDF_PARAM_PREFIX; + } + break; + case 'i': + switch(s[3]) { + default: + break; + case 'm': + if (strcmp("es", s + 4) == 0) + return PIDX_PKEY_PARAM_RSA_PRIMES; + break; + case 'v': + switch(s[4]) { + default: + break; + case '_': + if (strcmp("len", s + 5) == 0) + return PIDX_PKEY_PARAM_DH_PRIV_LEN; + break; + case '\0': + return PIDX_PKEY_PARAM_PRIV_KEY; + } + } + break; + case 'o': + switch(s[3]) { + default: + break; + case 'p': + if (strcmp("erties", s + 4) == 0) + return PIDX_STORE_PARAM_PROPERTIES; + break; + case 'v': + if (strcmp("ider-name", s + 4) == 0) + return PIDX_PROV_PARAM_CORE_PROV_NAME; + } + } + break; + case 'u': + if (strcmp("b", s + 2) == 0) + return PIDX_PKEY_PARAM_PUB_KEY; + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_P; + } + break; + case 'q': + switch(s[1]) { + default: + break; + case '1': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_Q1; + } + break; + case '2': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_Q2; + } + break; + case 'b': + if (strcmp("its", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_QBITS; + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_Q; + break; + case 'x': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_PUB_X; + } + break; + case 'y': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_PUB_Y; + } + } + break; + case 'r': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'n': + switch(s[3]) { + default: + break; + case 'd': + switch(s[4]) { + default: + break; + case 'k': + if (strcmp("ey", s + 5) == 0) + return PIDX_CIPHER_PARAM_RANDOM_KEY; + break; + case 'o': + if (strcmp("m_data", s + 5) == 0) + return PIDX_DRBG_PARAM_RANDOM_DATA; + } + } + break; + case 'w': + if (strcmp("-bytes", s + 3) == 0) + return PIDX_SKEY_PARAM_RAW_BYTES; + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'a': + switch(s[3]) { + default: + break; + case 'd': + switch(s[4]) { + default: + break; + case '_': + switch(s[5]) { + default: + break; + case 'a': + if (strcmp("head", s + 6) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_READ_AHEAD; + break; + case 'b': + if (strcmp("uffer_len", s + 6) == 0) + return PIDX_LIBSSL_RECORD_LAYER_READ_BUFFER_LEN; + } + } + } + break; + case 'f': + if (strcmp("erence", s + 3) == 0) + return PIDX_OBJECT_PARAM_REFERENCE; + break; + case 's': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case 'e': + switch(s[5]) { + default: + break; + case 'd': + switch(s[6]) { + default: + break; + case '_': + switch(s[7]) { + default: + break; + case 'c': + if (strcmp("ounter", s + 8) == 0) + return PIDX_DRBG_PARAM_RESEED_COUNTER; + break; + case 'r': + if (strcmp("equests", s + 8) == 0) + return PIDX_DRBG_PARAM_RESEED_REQUESTS; + break; + case 't': + switch(s[8]) { + default: + break; + case 'i': + switch(s[9]) { + default: + break; + case 'm': + switch(s[10]) { + default: + break; + case 'e': + switch(s[11]) { + default: + break; + case '_': + if (strcmp("interval", s + 12) == 0) + return PIDX_DRBG_PARAM_RESEED_TIME_INTERVAL; + break; + case '\0': + return PIDX_DRBG_PARAM_RESEED_TIME; + } + } + } + } + } + } + } + } + } + } + break; + case 'o': + if (strcmp("unds", s + 2) == 0) + return PIDX_CIPHER_PARAM_ROUNDS; + break; + case 's': + switch(s[2]) { + default: + break; + case 'a': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'c': + switch(s[5]) { + default: + break; + case 'o': + switch(s[6]) { + default: + break; + case 'e': + switch(s[7]) { + default: + break; + case 'f': + switch(s[8]) { + default: + break; + case 'f': + switch(s[9]) { + default: + break; + case 'i': + switch(s[10]) { + default: + break; + case 'c': + switch(s[11]) { + default: + break; + case 'i': + switch(s[12]) { + default: + break; + case 'e': + switch(s[13]) { + default: + break; + case 'n': + switch(s[14]) { + default: + break; + case 't': + switch(s[15]) { + default: + break; + case '1': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT1; + } + break; + case '2': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT2; + } + break; + case '3': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT3; + } + break; + case '4': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT4; + } + break; + case '5': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT5; + } + break; + case '6': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT6; + } + break; + case '7': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT7; + } + break; + case '8': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT8; + } + break; + case '9': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT9; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT; + } + } + } + } + } + } + } + } + } + } + } + break; + case 'd': + if (strcmp("erive-from-pq", s + 5) == 0) + return PIDX_PKEY_PARAM_RSA_DERIVE_FROM_PQ; + break; + case 'e': + switch(s[5]) { + default: + break; + case 'x': + switch(s[6]) { + default: + break; + case 'p': + switch(s[7]) { + default: + break; + case 'o': + switch(s[8]) { + default: + break; + case 'n': + switch(s[9]) { + default: + break; + case 'e': + switch(s[10]) { + default: + break; + case 'n': + switch(s[11]) { + default: + break; + case 't': + switch(s[12]) { + default: + break; + case '1': + switch(s[13]) { + default: + break; + case '0': + switch(s[14]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT10; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT1; + } + break; + case '2': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT2; + } + break; + case '3': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT3; + } + break; + case '4': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT4; + } + break; + case '5': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT5; + } + break; + case '6': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT6; + } + break; + case '7': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT7; + } + break; + case '8': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT8; + } + break; + case '9': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT9; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT; + } + } + } + } + } + } + } + } + break; + case 'f': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case 'c': + switch(s[7]) { + default: + break; + case 't': + switch(s[8]) { + default: + break; + case 'o': + switch(s[9]) { + default: + break; + case 'r': + switch(s[10]) { + default: + break; + case '1': + switch(s[11]) { + default: + break; + case '0': + switch(s[12]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR10; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR1; + } + break; + case '2': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR2; + } + break; + case '3': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR3; + } + break; + case '4': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR4; + } + break; + case '5': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR5; + } + break; + case '6': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR6; + } + break; + case '7': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR7; + } + break; + case '8': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR8; + } + break; + case '9': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR9; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR; + } + } + } + } + } + } + break; + case 'p': + switch(s[5]) { + default: + break; + case 'k': + if (strcmp("cs15-pad-disabled", s + 6) == 0) + return PIDX_PROV_PARAM_RSA_PKCS15_PAD_DISABLED; + break; + case 's': + if (strcmp("s-saltlen-check", s + 6) == 0) + return PIDX_SIGNATURE_PARAM_FIPS_RSA_PSS_SALTLEN_CHECK; + } + break; + case 's': + if (strcmp("ign-x931-pad-disabled", s + 5) == 0) + return PIDX_PROV_PARAM_RSA_SIGN_X931_PAD_DISABLED; + } + } + } + break; + case '\0': + return PIDX_KDF_PARAM_SCRYPT_R; + } + break; + case 's': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'f': + if (strcmp("eprime-generator", s + 3) == 0) + return PIDX_PKEY_PARAM_DH_GENERATOR; + break; + case 'l': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case 'l': + if (strcmp("en", s + 5) == 0) + return PIDX_SIGNATURE_PARAM_PSS_SALTLEN; + break; + case '\0': + return PIDX_MAC_PARAM_SALT; + } + } + break; + case 'v': + if (strcmp("e-parameters", s + 3) == 0) + return PIDX_ENCODER_PARAM_SAVE_PARAMETERS; + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'c': + switch(s[3]) { + default: + break; + case 'r': + if (strcmp("et", s + 4) == 0) + return PIDX_KDF_PARAM_SECRET; + break; + case 'u': + switch(s[4]) { + default: + break; + case 'r': + switch(s[5]) { + default: + break; + case 'i': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case 'y': + switch(s[8]) { + default: + break; + case '-': + switch(s[9]) { + default: + break; + case 'b': + if (strcmp("its", s + 10) == 0) + return PIDX_PKEY_PARAM_SECURITY_BITS; + break; + case 'c': + if (strcmp("hecks", s + 10) == 0) + return PIDX_PROV_PARAM_SECURITY_CHECKS; + } + } + } + } + } + } + } + break; + case 'e': + if (strcmp("d", s + 3) == 0) + return PIDX_PKEY_PARAM_SLH_DSA_SEED; + break; + case 'r': + if (strcmp("ial", s + 3) == 0) + return PIDX_STORE_PARAM_SERIAL; + break; + case 's': + if (strcmp("sion_id", s + 3) == 0) + return PIDX_KDF_PARAM_SSHKDF_SESSION_ID; + } + break; + case 'i': + switch(s[2]) { + default: + break; + case 'g': + switch(s[3]) { + default: + break; + case 'n': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'c': + if (strcmp("heck", s + 6) == 0) + return PIDX_PKEY_PARAM_FIPS_SIGN_CHECK; + break; + case 'x': + if (strcmp("931-pad-check", s + 6) == 0) + return PIDX_SIGNATURE_PARAM_FIPS_SIGN_X931_PAD_CHECK; + } + break; + case 'a': + switch(s[5]) { + default: + break; + case 't': + switch(s[6]) { + default: + break; + case 'u': + switch(s[7]) { + default: + break; + case 'r': + switch(s[8]) { + default: + break; + case 'e': + switch(s[9]) { + default: + break; + case '-': + if (strcmp("digest-check", s + 10) == 0) + return PIDX_PROV_PARAM_SIGNATURE_DIGEST_CHECK; + break; + case '\0': + return PIDX_SIGNATURE_PARAM_SIGNATURE; + } + } + } + } + } + } + } + break; + case 'z': + if (strcmp("e", s + 3) == 0) + return PIDX_MAC_PARAM_SIZE; + } + break; + case 'p': + if (strcmp("eed", s + 2) == 0) + return PIDX_CIPHER_PARAM_SPEED; + break; + case 's': + switch(s[2]) { + default: + break; + case 'h': + switch(s[3]) { + default: + break; + case 'k': + switch(s[4]) { + default: + break; + case 'd': + switch(s[5]) { + default: + break; + case 'f': + switch(s[6]) { + default: + break; + case '-': + switch(s[7]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 8) == 0) + return PIDX_PROV_PARAM_SSHKDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 8) == 0) + return PIDX_PROV_PARAM_SSHKDF_KEY_CHECK; + } + } + } + } + } + break; + case 'k': + switch(s[3]) { + default: + break; + case 'd': + switch(s[4]) { + default: + break; + case 'f': + switch(s[5]) { + default: + break; + case '-': + switch(s[6]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 7) == 0) + return PIDX_PROV_PARAM_SSKDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 7) == 0) + return PIDX_PROV_PARAM_SSKDF_KEY_CHECK; + } + } + } + } + break; + case 'l': + if (strcmp("3-ms", s + 3) == 0) + return PIDX_DIGEST_PARAM_SSL3_MS; + } + break; + case 't': + switch(s[2]) { + default: + break; + case '-': + switch(s[3]) { + default: + break; + case 'd': + if (strcmp("esc", s + 4) == 0) + return PIDX_PROV_PARAM_SELF_TEST_DESC; + break; + case 'p': + if (strcmp("hase", s + 4) == 0) + return PIDX_PROV_PARAM_SELF_TEST_PHASE; + break; + case 't': + if (strcmp("ype", s + 4) == 0) + return PIDX_PROV_PARAM_SELF_TEST_TYPE; + } + break; + case 'a': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case 'e': + switch(s[5]) { + default: + break; + case '\0': + return PIDX_RAND_PARAM_STATE; + } + break; + case 'u': + if (strcmp("s", s + 5) == 0) + return PIDX_PROV_PARAM_STATUS; + } + } + break; + case 'r': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case 'a': + if (strcmp("m_mac", s + 5) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_STREAM_MAC; + break; + case 'n': + if (strcmp("gth", s + 5) == 0) + return PIDX_RAND_PARAM_STRENGTH; + } + } + } + break; + case 'u': + switch(s[2]) { + default: + break; + case 'b': + if (strcmp("ject", s + 3) == 0) + return PIDX_STORE_PARAM_SUBJECT; + break; + case 'p': + switch(s[3]) { + default: + break; + case 'p': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'p': + switch(s[6]) { + default: + break; + case 'r': + if (strcmp("ivinfo", s + 7) == 0) + return PIDX_KDF_PARAM_X942_SUPP_PRIVINFO; + break; + case 'u': + if (strcmp("binfo", s + 7) == 0) + return PIDX_KDF_PARAM_X942_SUPP_PUBINFO; + } + } + } + } + } + } + break; + case 't': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'g': + switch(s[3]) { + default: + break; + case 'l': + if (strcmp("en", s + 4) == 0) + return PIDX_CIPHER_PARAM_AEAD_TAGLEN; + break; + case '\0': + return PIDX_CIPHER_PARAM_AEAD_TAG; + } + } + break; + case 'd': + if (strcmp("es-encrypt-disabled", s + 2) == 0) + return PIDX_PROV_PARAM_TDES_ENCRYPT_DISABLED; + break; + case 'e': + switch(s[2]) { + default: + break; + case 's': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case '-': + if (strcmp("entropy", s + 5) == 0) + return PIDX_SIGNATURE_PARAM_TEST_ENTROPY; + break; + case '_': + switch(s[5]) { + default: + break; + case 'e': + if (strcmp("ntropy", s + 6) == 0) + return PIDX_RAND_PARAM_TEST_ENTROPY; + break; + case 'n': + if (strcmp("once", s + 6) == 0) + return PIDX_RAND_PARAM_TEST_NONCE; + } + } + } + } + break; + case 'h': + if (strcmp("reads", s + 2) == 0) + return PIDX_KDF_PARAM_THREADS; + break; + case 'l': + switch(s[2]) { + default: + break; + case 's': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'c': + if (strcmp("lient-version", s + 5) == 0) + return PIDX_ASYM_CIPHER_PARAM_TLS_CLIENT_VERSION; + break; + case 'd': + if (strcmp("ata-size", s + 5) == 0) + return PIDX_MAC_PARAM_TLS_DATA_SIZE; + break; + case 'g': + switch(s[5]) { + default: + break; + case 'r': + switch(s[6]) { + default: + break; + case 'o': + switch(s[7]) { + default: + break; + case 'u': + switch(s[8]) { + default: + break; + case 'p': + switch(s[9]) { + default: + break; + case '-': + switch(s[10]) { + default: + break; + case 'a': + if (strcmp("lg", s + 11) == 0) + return PIDX_CAPABILITY_TLS_GROUP_ALG; + break; + case 'i': + switch(s[11]) { + default: + break; + case 'd': + switch(s[12]) { + default: + break; + case '\0': + return PIDX_CAPABILITY_TLS_GROUP_ID; + } + break; + case 's': + if (strcmp("-kem", s + 12) == 0) + return PIDX_CAPABILITY_TLS_GROUP_IS_KEM; + } + break; + case 'n': + switch(s[11]) { + default: + break; + case 'a': + switch(s[12]) { + default: + break; + case 'm': + switch(s[13]) { + default: + break; + case 'e': + switch(s[14]) { + default: + break; + case '-': + if (strcmp("internal", s + 15) == 0) + return PIDX_CAPABILITY_TLS_GROUP_NAME_INTERNAL; + break; + case '\0': + return PIDX_CAPABILITY_TLS_GROUP_NAME; + } + } + } + } + break; + case 's': + if (strcmp("ec-bits", s + 11) == 0) + return PIDX_CAPABILITY_TLS_GROUP_SECURITY_BITS; + } + } + } + } + } + } + break; + case 'm': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case 'c': + switch(s[7]) { + default: + break; + case '-': + if (strcmp("size", s + 8) == 0) + return PIDX_CIPHER_PARAM_TLS_MAC_SIZE; + break; + case '\0': + return PIDX_CIPHER_PARAM_TLS_MAC; + } + break; + case 'x': + switch(s[7]) { + default: + break; + case '-': + switch(s[8]) { + default: + break; + case 'd': + if (strcmp("tls", s + 9) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_MAX_DTLS; + break; + case 't': + if (strcmp("ls", s + 9) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_MAX_TLS; + } + } + } + break; + case 'i': + switch(s[6]) { + default: + break; + case 'n': + switch(s[7]) { + default: + break; + case '-': + switch(s[8]) { + default: + break; + case 'd': + if (strcmp("tls", s + 9) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_MIN_DTLS; + break; + case 't': + if (strcmp("ls", s + 9) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_MIN_TLS; + } + } + } + break; + case 'u': + if (strcmp("lti", s + 6) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK; + } + break; + case 'n': + if (strcmp("egotiated-version", s + 5) == 0) + return PIDX_ASYM_CIPHER_PARAM_TLS_NEGOTIATED_VERSION; + break; + case 's': + switch(s[5]) { + default: + break; + case 'i': + switch(s[6]) { + default: + break; + case 'g': + switch(s[7]) { + default: + break; + case 'a': + switch(s[8]) { + default: + break; + case 'l': + switch(s[9]) { + default: + break; + case 'g': + switch(s[10]) { + default: + break; + case '-': + switch(s[11]) { + default: + break; + case 'c': + if (strcmp("ode-point", s + 12) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_CODE_POINT; + break; + case 'h': + switch(s[12]) { + default: + break; + case 'a': + switch(s[13]) { + default: + break; + case 's': + switch(s[14]) { + default: + break; + case 'h': + switch(s[15]) { + default: + break; + case '-': + switch(s[16]) { + default: + break; + case 'n': + if (strcmp("ame", s + 17) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_HASH_NAME; + break; + case 'o': + if (strcmp("id", s + 17) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_HASH_OID; + } + } + } + } + } + break; + case 'i': + if (strcmp("ana-name", s + 12) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_IANA_NAME; + break; + case 'k': + switch(s[12]) { + default: + break; + case 'e': + switch(s[13]) { + default: + break; + case 'y': + switch(s[14]) { + default: + break; + case 't': + switch(s[15]) { + default: + break; + case 'y': + switch(s[16]) { + default: + break; + case 'p': + switch(s[17]) { + default: + break; + case 'e': + switch(s[18]) { + default: + break; + case '-': + if (strcmp("oid", s + 19) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_KEYTYPE_OID; + break; + case '\0': + return PIDX_CAPABILITY_TLS_SIGALG_KEYTYPE; + } + } + } + } + } + } + } + break; + case 'n': + if (strcmp("ame", s + 12) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_NAME; + break; + case 'o': + if (strcmp("id", s + 12) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_OID; + break; + case 's': + switch(s[12]) { + default: + break; + case 'e': + if (strcmp("c-bits", s + 13) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_SECURITY_BITS; + break; + case 'i': + switch(s[13]) { + default: + break; + case 'g': + switch(s[14]) { + default: + break; + case '-': + switch(s[15]) { + default: + break; + case 'n': + if (strcmp("ame", s + 16) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_SIG_NAME; + break; + case 'o': + if (strcmp("id", s + 16) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_SIG_OID; + } + } + } + } + } + } + } + } + } + } + } + break; + case 'v': + if (strcmp("ersion", s + 5) == 0) + return PIDX_CIPHER_PARAM_TLS_VERSION; + } + break; + case '1': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'p': + switch(s[6]) { + default: + break; + case 'r': + switch(s[7]) { + default: + break; + case 'f': + switch(s[8]) { + default: + break; + case '-': + switch(s[9]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 10) == 0) + return PIDX_PROV_PARAM_TLS1_PRF_DIGEST_CHECK; + break; + case 'e': + if (strcmp("ms-check", s + 10) == 0) + return PIDX_PROV_PARAM_TLS1_PRF_EMS_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 10) == 0) + return PIDX_PROV_PARAM_TLS1_PRF_KEY_CHECK; + } + } + } + } + } + break; + case '3': + switch(s[5]) { + default: + break; + case '-': + switch(s[6]) { + default: + break; + case 'k': + switch(s[7]) { + default: + break; + case 'd': + switch(s[8]) { + default: + break; + case 'f': + switch(s[9]) { + default: + break; + case '-': + switch(s[10]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 11) == 0) + return PIDX_PROV_PARAM_TLS13_KDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 11) == 0) + return PIDX_PROV_PARAM_TLS13_KDF_KEY_CHECK; + } + } + } + } + } + } + break; + case 'm': + switch(s[5]) { + default: + break; + case 'u': + switch(s[6]) { + default: + break; + case 'l': + switch(s[7]) { + default: + break; + case 't': + switch(s[8]) { + default: + break; + case 'i': + switch(s[9]) { + default: + break; + case '_': + switch(s[10]) { + default: + break; + case 'a': + switch(s[11]) { + default: + break; + case 'a': + switch(s[12]) { + default: + break; + case 'd': + switch(s[13]) { + default: + break; + case 'p': + if (strcmp("acklen", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD_PACKLEN; + break; + case '\0': + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD; + } + } + } + break; + case 'e': + switch(s[11]) { + default: + break; + case 'n': + switch(s[12]) { + default: + break; + case 'c': + switch(s[13]) { + default: + break; + case 'i': + if (strcmp("n", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_IN; + break; + case 'l': + if (strcmp("en", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_LEN; + break; + case '\0': + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC; + } + } + } + break; + case 'i': + if (strcmp("nterleave", s + 11) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_INTERLEAVE; + break; + case 'm': + switch(s[11]) { + default: + break; + case 'a': + switch(s[12]) { + default: + break; + case 'x': + switch(s[13]) { + default: + break; + case 'b': + if (strcmp("ufsz", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_BUFSIZE; + break; + case 's': + if (strcmp("ndfrag", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_SEND_FRAGMENT; + } + } + } + } + } + } + } + } + } + } + break; + case 'a': + switch(s[4]) { + default: + break; + case 'a': + switch(s[5]) { + default: + break; + case 'd': + switch(s[6]) { + default: + break; + case 'p': + if (strcmp("ad", s + 7) == 0) + return PIDX_CIPHER_PARAM_AEAD_TLS1_AAD_PAD; + break; + case '\0': + return PIDX_CIPHER_PARAM_AEAD_TLS1_AAD; + } + } + } + break; + case 'i': + switch(s[4]) { + default: + break; + case 'v': + switch(s[5]) { + default: + break; + case 'f': + if (strcmp("ixed", s + 6) == 0) + return PIDX_CIPHER_PARAM_AEAD_TLS1_IV_FIXED; + break; + case 'g': + if (strcmp("en", s + 6) == 0) + return PIDX_CIPHER_PARAM_AEAD_TLS1_GET_IV_GEN; + break; + case 'i': + if (strcmp("nv", s + 6) == 0) + return PIDX_CIPHER_PARAM_AEAD_TLS1_SET_IV_INV; + } + } + break; + case 't': + if (strcmp("ree", s + 4) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_TLSTREE; + } + } + break; + case 'p': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_TP_BASIS; + } + break; + case 'y': + if (strcmp("pe", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_TYPE; + } + break; + case 'u': + switch(s[1]) { + default: + break; + case 'k': + if (strcmp("m", s + 2) == 0) + return PIDX_KDF_PARAM_UKM; + break; + case 'p': + if (strcmp("dated-iv", s + 2) == 0) + return PIDX_CIPHER_PARAM_UPDATED_IV; + break; + case 's': + switch(s[2]) { + default: + break; + case 'e': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'b': + if (strcmp("its", s + 5) == 0) + return PIDX_CIPHER_PARAM_USE_BITS; + break; + case 'c': + if (strcmp("ofactor-flag", s + 5) == 0) + return PIDX_PKEY_PARAM_USE_COFACTOR_FLAG; + break; + case 'k': + if (strcmp("eybits", s + 5) == 0) + return PIDX_KDF_PARAM_X942_USE_KEYBITS; + break; + case 'l': + switch(s[5]) { + default: + break; + case '\0': + return PIDX_KDF_PARAM_KBKDF_USE_L; + } + break; + case 's': + if (strcmp("eparator", s + 5) == 0) + return PIDX_KDF_PARAM_KBKDF_USE_SEPARATOR; + } + break; + case '_': + switch(s[4]) { + default: + break; + case 'd': + if (strcmp("erivation_function", s + 5) == 0) + return PIDX_DRBG_PARAM_USE_DF; + break; + case 'e': + if (strcmp("tm", s + 5) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_USE_ETM; + } + } + } + } + break; + case 'v': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'l': + switch(s[3]) { + default: + break; + case 'i': + switch(s[4]) { + default: + break; + case 'd': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case 'e': + switch(s[8]) { + default: + break; + case '-': + switch(s[9]) { + default: + break; + case 'g': + switch(s[10]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_VALIDATE_G; + } + break; + case 'l': + if (strcmp("egacy", s + 10) == 0) + return PIDX_PKEY_PARAM_FFC_VALIDATE_LEGACY; + break; + case 'p': + if (strcmp("q", s + 10) == 0) + return PIDX_PKEY_PARAM_FFC_VALIDATE_PQ; + } + } + } + } + } + } + } + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'r': + switch(s[3]) { + default: + break; + case 'i': + if (strcmp("fy-message", s + 4) == 0) + return PIDX_SIGNATURE_PARAM_FIPS_VERIFY_MESSAGE; + break; + case 's': + if (strcmp("ion", s + 4) == 0) + return PIDX_PROV_PARAM_VERSION; + } + } + } + break; + case 'x': + switch(s[1]) { + default: + break; + case '9': + switch(s[2]) { + default: + break; + case '4': + if (strcmp("2kdf-key-check", s + 3) == 0) + return PIDX_PROV_PARAM_X942KDF_KEY_CHECK; + break; + case '6': + switch(s[3]) { + default: + break; + case '3': + switch(s[4]) { + default: + break; + case 'k': + switch(s[5]) { + default: + break; + case 'd': + switch(s[6]) { + default: + break; + case 'f': + switch(s[7]) { + default: + break; + case '-': + switch(s[8]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 9) == 0) + return PIDX_PROV_PARAM_X963KDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 9) == 0) + return PIDX_PROV_PARAM_X963KDF_KEY_CHECK; + } + } + } + } + } + } + } + break; + case 'c': + if (strcmp("ghash", s + 2) == 0) + return PIDX_KDF_PARAM_SSHKDF_XCGHASH; + break; + case 'o': + switch(s[2]) { + default: + break; + case 'f': + switch(s[3]) { + default: + break; + case 'l': + if (strcmp("en", s + 4) == 0) + return PIDX_DIGEST_PARAM_XOFLEN; + break; + case '\0': + return PIDX_MAC_PARAM_XOF; + } + } + break; + case 'p': + switch(s[2]) { + default: + break; + case '1': + switch(s[3]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XP1; + } + break; + case '2': + switch(s[3]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XP2; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XP; + } + break; + case 'q': + switch(s[2]) { + default: + break; + case '1': + switch(s[3]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XQ1; + } + break; + case '2': + switch(s[3]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XQ2; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XQ; + } + break; + case 't': + if (strcmp("s_standard", s + 2) == 0) + return PIDX_CIPHER_PARAM_XTS_STANDARD; + } + } + return -1; +} + +/* End of TRIE */ diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/crypto/poly1305/poly1305-x86_64.s b/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/crypto/poly1305/poly1305-x86_64.s index a5d240b7462795..4b36137c312198 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/crypto/poly1305/poly1305-x86_64.s +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/crypto/poly1305/poly1305-x86_64.s @@ -50,6 +50,7 @@ L$no_key: .p2align 5 _poly1305_blocks: +.byte 243,15,30,250 L$blocks: shrq $4,%rdx jz L$no_data @@ -159,6 +160,7 @@ L$blocks_epilogue: .p2align 5 _poly1305_emit: +.byte 243,15,30,250 L$emit: movq 0(%rdi),%r8 movq 8(%rdi),%r9 @@ -395,6 +397,7 @@ __poly1305_init_avx: .p2align 5 poly1305_blocks_avx: +.byte 243,15,30,250 movl 20(%rdi),%r8d cmpq $128,%rdx jae L$blocks_avx @@ -1218,6 +1221,7 @@ L$short_tail_avx: .p2align 5 poly1305_emit_avx: +.byte 243,15,30,250 cmpl $0,20(%rdi) je L$emit @@ -1274,6 +1278,7 @@ poly1305_emit_avx: .p2align 5 poly1305_blocks_avx2: +.byte 243,15,30,250 movl 20(%rdi),%r8d cmpq $128,%rdx jae L$blocks_avx2 @@ -1902,6 +1907,7 @@ L$tail_avx2: .byte 0xf3,0xc3 +.section __DATA,__const .p2align 6 L$const: L$mask24: @@ -1933,6 +1939,7 @@ L$x_mask44: L$x_mask42: .quad 0x3ffffffffff,0x3ffffffffff,0x3ffffffffff,0x3ffffffffff .quad 0x3ffffffffff,0x3ffffffffff,0x3ffffffffff,0x3ffffffffff +.text .byte 80,111,108,121,49,51,48,53,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 .p2align 4 .globl _xor128_encrypt_n_pad diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/crypto/sha/keccak1600-x86_64.s b/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/crypto/sha/keccak1600-x86_64.s index 5105d9818b5575..95683930429a74 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/crypto/sha/keccak1600-x86_64.s +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/crypto/sha/keccak1600-x86_64.s @@ -420,10 +420,12 @@ _SHA3_squeeze: shrq $3,%rcx - movq %rdi,%r8 + movq %rdi,%r9 movq %rsi,%r12 movq %rdx,%r13 movq %rcx,%r14 + btl $0,%r8d + jc L$next_block jmp L$oop_squeeze .p2align 5 @@ -431,8 +433,8 @@ L$oop_squeeze: cmpq $8,%r13 jb L$tail_squeeze - movq (%r8),%rax - leaq 8(%r8),%r8 + movq (%r9),%rax + leaq 8(%r9),%r9 movq %rax,(%r12) leaq 8(%r12),%r12 subq $8,%r13 @@ -440,14 +442,14 @@ L$oop_squeeze: subq $1,%rcx jnz L$oop_squeeze - +L$next_block: call KeccakF1600 - movq %rdi,%r8 + movq %rdi,%r9 movq %r14,%rcx jmp L$oop_squeeze L$tail_squeeze: - movq %r8,%rsi + movq %r9,%rsi movq %r12,%rdi movq %r13,%rcx .byte 0xf3,0xa4 @@ -462,6 +464,7 @@ L$done_squeeze: .byte 0xf3,0xc3 +.section __DATA,__const .p2align 8 .quad 0,0,0,0,0,0,0,0 diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/crypto/sha/sha1-mb-x86_64.s b/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/crypto/sha/sha1-mb-x86_64.s index e6a5320cd511ad..d3e088a45b768e 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/crypto/sha/sha1-mb-x86_64.s +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/crypto/sha/sha1-mb-x86_64.s @@ -7286,7 +7286,7 @@ L$epilogue_avx2: .byte 0xf3,0xc3 - +.section __DATA,__const .p2align 8 .long 0x5a827999,0x5a827999,0x5a827999,0x5a827999 .long 0x5a827999,0x5a827999,0x5a827999,0x5a827999 @@ -7301,3 +7301,4 @@ K_XX_XX: .long 0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f .byte 0xf,0xe,0xd,0xc,0xb,0xa,0x9,0x8,0x7,0x6,0x5,0x4,0x3,0x2,0x1,0x0 .byte 83,72,65,49,32,109,117,108,116,105,45,98,108,111,99,107,32,116,114,97,110,115,102,111,114,109,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 +.text diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/crypto/sha/sha1-x86_64.s b/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/crypto/sha/sha1-x86_64.s index fb22d41c1a44ed..636ee8e2ac1a25 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/crypto/sha/sha1-x86_64.s +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/crypto/sha/sha1-x86_64.s @@ -5433,6 +5433,7 @@ L$epilogue_avx2: .byte 0xf3,0xc3 +.section __DATA,__const .p2align 6 K_XX_XX: .long 0x5a827999,0x5a827999,0x5a827999,0x5a827999 @@ -5446,5 +5447,6 @@ K_XX_XX: .long 0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f .long 0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f .byte 0xf,0xe,0xd,0xc,0xb,0xa,0x9,0x8,0x7,0x6,0x5,0x4,0x3,0x2,0x1,0x0 +.text .byte 83,72,65,49,32,98,108,111,99,107,32,116,114,97,110,115,102,111,114,109,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 .p2align 6 diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/crypto/sha/sha256-mb-x86_64.s b/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/crypto/sha/sha256-mb-x86_64.s index f513c466510094..03f81d7ae24d53 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/crypto/sha/sha256-mb-x86_64.s +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/crypto/sha/sha256-mb-x86_64.s @@ -7831,6 +7831,7 @@ L$epilogue_avx2: .byte 0xf3,0xc3 +.section __DATA,__const .p2align 8 K256: .long 1116352408,1116352408,1116352408,1116352408 @@ -7982,3 +7983,4 @@ K256_shaext: .long 0x748f82ee,0x78a5636f,0x84c87814,0x8cc70208 .long 0x90befffa,0xa4506ceb,0xbef9a3f7,0xc67178f2 .byte 83,72,65,50,53,54,32,109,117,108,116,105,45,98,108,111,99,107,32,116,114,97,110,115,102,111,114,109,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 +.text diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/crypto/sha/sha256-x86_64.s b/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/crypto/sha/sha256-x86_64.s index 3952a775b92182..424f50c93b566b 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/crypto/sha/sha256-x86_64.s +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/crypto/sha/sha256-x86_64.s @@ -1728,6 +1728,7 @@ L$epilogue: .byte 0xf3,0xc3 +.section __DATA,__const .p2align 6 K256: @@ -1771,6 +1772,7 @@ K256: .long 0xffffffff,0xffffffff,0x03020100,0x0b0a0908 .long 0xffffffff,0xffffffff,0x03020100,0x0b0a0908 .byte 83,72,65,50,53,54,32,98,108,111,99,107,32,116,114,97,110,115,102,111,114,109,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 +.text .p2align 6 sha256_block_data_order_shaext: diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/crypto/sha/sha512-x86_64.s b/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/crypto/sha/sha512-x86_64.s index 6348b0a2c0f8fa..e61e1c07993c6f 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/crypto/sha/sha512-x86_64.s +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/crypto/sha/sha512-x86_64.s @@ -1726,6 +1726,7 @@ L$epilogue: .byte 0xf3,0xc3 +.section __DATA,__const .p2align 6 K512: @@ -1813,6 +1814,7 @@ K512: .quad 0x0001020304050607,0x08090a0b0c0d0e0f .quad 0x0001020304050607,0x08090a0b0c0d0e0f .byte 83,72,65,53,49,50,32,98,108,111,99,107,32,116,114,97,110,115,102,111,114,109,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 +.text .p2align 6 sha512_block_data_order_xop: diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/crypto/whrlpool/wp-x86_64.s b/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/crypto/whrlpool/wp-x86_64.s index 2c94c14b93395e..94643a06e0a2fc 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/crypto/whrlpool/wp-x86_64.s +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/crypto/whrlpool/wp-x86_64.s @@ -608,6 +608,7 @@ L$epilogue: +.section __DATA,__const .p2align 6 L$table: diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/crypto/x86_64cpuid.s b/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/crypto/x86_64cpuid.s index b6b35337ff331d..03feb402223f61 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/crypto/x86_64cpuid.s +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/crypto/x86_64cpuid.s @@ -1,12 +1,12 @@ + .private_extern _OPENSSL_cpuid_setup .mod_init_func .p2align 3 .quad _OPENSSL_cpuid_setup .private_extern _OPENSSL_ia32cap_P -.comm _OPENSSL_ia32cap_P,16,2 - +.comm _OPENSSL_ia32cap_P,40,2 .text .globl _OPENSSL_atomic_add @@ -164,6 +164,7 @@ L$generic: movl $7,%eax xorl %ecx,%ecx cpuid + movd %eax,%xmm1 btl $26,%r9d jc L$notknights andl $0xfff7ffff,%ebx @@ -174,9 +175,31 @@ L$notknights: jne L$notskylakex andl $0xfffeffff,%ebx + L$notskylakex: movl %ebx,8(%rdi) movl %ecx,12(%rdi) + movl %edx,16(%rdi) + + movd %xmm1,%eax + cmpl $0x1,%eax + jb L$no_extended_info + movl $0x7,%eax + movl $0x1,%ecx + cpuid + movl %eax,20(%rdi) + movl %edx,24(%rdi) + movl %ebx,28(%rdi) + movl %ecx,32(%rdi) + + andl $0x80000,%edx + cmpl $0x0,%edx + je L$no_extended_info + movl $0x24,%eax + movl $0x0,%ecx + cpuid + movl %ebx,36(%rdi) + L$no_extended_info: btl $27,%r9d @@ -195,6 +218,9 @@ L$no_extended_info: cmpl $6,%eax je L$done L$clear_avx: + andl $0xff7fffff,20(%rdi) + + movl $0xefffe7ff,%eax andl %eax,%r9d movl $0x3fdeffdf,%eax diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/include/internal/param_names.h b/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/include/internal/param_names.h new file mode 100644 index 00000000000000..0a0404a57e82b9 --- /dev/null +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/include/internal/param_names.h @@ -0,0 +1,469 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from include/internal/param_names.h.in + * + * Copyright 2023 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + +int ossl_param_find_pidx(const char *s); + +/* Parameter name definitions - generated by util/perl/OpenSSL/paramnames.pm */ +#define NUM_PIDX 346 + +#define PIDX_ALG_PARAM_ALGORITHM_ID 0 +#define PIDX_ALG_PARAM_ALGORITHM_ID_PARAMS 1 +#define PIDX_ALG_PARAM_CIPHER 2 +#define PIDX_ALG_PARAM_DIGEST 3 +#define PIDX_ALG_PARAM_ENGINE 4 +#define PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR 5 +#define PIDX_ALG_PARAM_MAC 6 +#define PIDX_ALG_PARAM_PROPERTIES 7 +#define PIDX_ASYM_CIPHER_PARAM_DIGEST PIDX_PKEY_PARAM_DIGEST +#define PIDX_ASYM_CIPHER_PARAM_ENGINE PIDX_PKEY_PARAM_ENGINE +#define PIDX_ASYM_CIPHER_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_ASYM_CIPHER_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_ASYM_CIPHER_PARAM_FIPS_RSA_PKCS15_PAD_DISABLED PIDX_PROV_PARAM_RSA_PKCS15_PAD_DISABLED +#define PIDX_ASYM_CIPHER_PARAM_IMPLICIT_REJECTION 8 +#define PIDX_ASYM_CIPHER_PARAM_MGF1_DIGEST PIDX_PKEY_PARAM_MGF1_DIGEST +#define PIDX_ASYM_CIPHER_PARAM_MGF1_DIGEST_PROPS PIDX_PKEY_PARAM_MGF1_PROPERTIES +#define PIDX_ASYM_CIPHER_PARAM_OAEP_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_ASYM_CIPHER_PARAM_OAEP_DIGEST_PROPS 9 +#define PIDX_ASYM_CIPHER_PARAM_OAEP_LABEL 10 +#define PIDX_ASYM_CIPHER_PARAM_PAD_MODE PIDX_PKEY_PARAM_PAD_MODE +#define PIDX_ASYM_CIPHER_PARAM_PROPERTIES PIDX_PKEY_PARAM_PROPERTIES +#define PIDX_ASYM_CIPHER_PARAM_TLS_CLIENT_VERSION 11 +#define PIDX_ASYM_CIPHER_PARAM_TLS_NEGOTIATED_VERSION 12 +#define PIDX_CAPABILITY_TLS_GROUP_ALG 13 +#define PIDX_CAPABILITY_TLS_GROUP_ID 14 +#define PIDX_CAPABILITY_TLS_GROUP_IS_KEM 15 +#define PIDX_CAPABILITY_TLS_GROUP_MAX_DTLS 16 +#define PIDX_CAPABILITY_TLS_GROUP_MAX_TLS 17 +#define PIDX_CAPABILITY_TLS_GROUP_MIN_DTLS 18 +#define PIDX_CAPABILITY_TLS_GROUP_MIN_TLS 19 +#define PIDX_CAPABILITY_TLS_GROUP_NAME 20 +#define PIDX_CAPABILITY_TLS_GROUP_NAME_INTERNAL 21 +#define PIDX_CAPABILITY_TLS_GROUP_SECURITY_BITS 22 +#define PIDX_CAPABILITY_TLS_SIGALG_CODE_POINT 23 +#define PIDX_CAPABILITY_TLS_SIGALG_HASH_NAME 24 +#define PIDX_CAPABILITY_TLS_SIGALG_HASH_OID 25 +#define PIDX_CAPABILITY_TLS_SIGALG_IANA_NAME 26 +#define PIDX_CAPABILITY_TLS_SIGALG_KEYTYPE 27 +#define PIDX_CAPABILITY_TLS_SIGALG_KEYTYPE_OID 28 +#define PIDX_CAPABILITY_TLS_SIGALG_MAX_DTLS 16 +#define PIDX_CAPABILITY_TLS_SIGALG_MAX_TLS 17 +#define PIDX_CAPABILITY_TLS_SIGALG_MIN_DTLS 18 +#define PIDX_CAPABILITY_TLS_SIGALG_MIN_TLS 19 +#define PIDX_CAPABILITY_TLS_SIGALG_NAME 29 +#define PIDX_CAPABILITY_TLS_SIGALG_OID 30 +#define PIDX_CAPABILITY_TLS_SIGALG_SECURITY_BITS 31 +#define PIDX_CAPABILITY_TLS_SIGALG_SIG_NAME 32 +#define PIDX_CAPABILITY_TLS_SIGALG_SIG_OID 33 +#define PIDX_CIPHER_PARAM_AEAD 34 +#define PIDX_CIPHER_PARAM_AEAD_IVLEN PIDX_CIPHER_PARAM_IVLEN +#define PIDX_CIPHER_PARAM_AEAD_IV_GENERATED 35 +#define PIDX_CIPHER_PARAM_AEAD_MAC_KEY 36 +#define PIDX_CIPHER_PARAM_AEAD_TAG 37 +#define PIDX_CIPHER_PARAM_AEAD_TAGLEN 38 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_AAD 39 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_AAD_PAD 40 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_GET_IV_GEN 41 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_IV_FIXED 42 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_SET_IV_INV 43 +#define PIDX_CIPHER_PARAM_ALGORITHM_ID PIDX_ALG_PARAM_ALGORITHM_ID +#define PIDX_CIPHER_PARAM_ALGORITHM_ID_PARAMS PIDX_ALG_PARAM_ALGORITHM_ID_PARAMS +#define PIDX_CIPHER_PARAM_ALGORITHM_ID_PARAMS_OLD 44 +#define PIDX_CIPHER_PARAM_BLOCK_SIZE 45 +#define PIDX_CIPHER_PARAM_CTS 46 +#define PIDX_CIPHER_PARAM_CTS_MODE 47 +#define PIDX_CIPHER_PARAM_CUSTOM_IV 48 +#define PIDX_CIPHER_PARAM_DECRYPT_ONLY 49 +#define PIDX_CIPHER_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_CIPHER_PARAM_FIPS_ENCRYPT_CHECK 50 +#define PIDX_CIPHER_PARAM_HAS_RAND_KEY 51 +#define PIDX_CIPHER_PARAM_IV 52 +#define PIDX_CIPHER_PARAM_IVLEN 53 +#define PIDX_CIPHER_PARAM_KEYLEN 54 +#define PIDX_CIPHER_PARAM_MODE 55 +#define PIDX_CIPHER_PARAM_NUM 56 +#define PIDX_CIPHER_PARAM_PADDING 57 +#define PIDX_CIPHER_PARAM_PIPELINE_AEAD_TAG 58 +#define PIDX_CIPHER_PARAM_RANDOM_KEY 59 +#define PIDX_CIPHER_PARAM_RC2_KEYBITS 60 +#define PIDX_CIPHER_PARAM_ROUNDS 61 +#define PIDX_CIPHER_PARAM_SPEED 62 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK 63 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD 64 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD_PACKLEN 65 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC 66 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_IN 67 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_LEN 68 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_INTERLEAVE 69 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_BUFSIZE 70 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_SEND_FRAGMENT 71 +#define PIDX_CIPHER_PARAM_TLS_MAC 72 +#define PIDX_CIPHER_PARAM_TLS_MAC_SIZE 73 +#define PIDX_CIPHER_PARAM_TLS_VERSION 74 +#define PIDX_CIPHER_PARAM_UPDATED_IV 75 +#define PIDX_CIPHER_PARAM_USE_BITS 76 +#define PIDX_CIPHER_PARAM_XTS_STANDARD 77 +#define PIDX_DECODER_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_DIGEST_PARAM_ALGID_ABSENT 78 +#define PIDX_DIGEST_PARAM_BLOCK_SIZE 45 +#define PIDX_DIGEST_PARAM_MICALG 79 +#define PIDX_DIGEST_PARAM_PAD_TYPE 80 +#define PIDX_DIGEST_PARAM_SIZE 81 +#define PIDX_DIGEST_PARAM_SSL3_MS 82 +#define PIDX_DIGEST_PARAM_XOF 83 +#define PIDX_DIGEST_PARAM_XOFLEN 84 +#define PIDX_DRBG_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_DRBG_PARAM_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_DRBG_PARAM_ENTROPY_REQUIRED 85 +#define PIDX_DRBG_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_DRBG_PARAM_FIPS_DIGEST_CHECK PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK +#define PIDX_DRBG_PARAM_MAC PIDX_ALG_PARAM_MAC +#define PIDX_DRBG_PARAM_MAX_ADINLEN 86 +#define PIDX_DRBG_PARAM_MAX_ENTROPYLEN 87 +#define PIDX_DRBG_PARAM_MAX_LENGTH 88 +#define PIDX_DRBG_PARAM_MAX_NONCELEN 89 +#define PIDX_DRBG_PARAM_MAX_PERSLEN 90 +#define PIDX_DRBG_PARAM_MIN_ENTROPYLEN 91 +#define PIDX_DRBG_PARAM_MIN_LENGTH 92 +#define PIDX_DRBG_PARAM_MIN_NONCELEN 93 +#define PIDX_DRBG_PARAM_PREDICTION_RESISTANCE 94 +#define PIDX_DRBG_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_DRBG_PARAM_RANDOM_DATA 95 +#define PIDX_DRBG_PARAM_RESEED_COUNTER 96 +#define PIDX_DRBG_PARAM_RESEED_REQUESTS 97 +#define PIDX_DRBG_PARAM_RESEED_TIME 98 +#define PIDX_DRBG_PARAM_RESEED_TIME_INTERVAL 99 +#define PIDX_DRBG_PARAM_SIZE 81 +#define PIDX_DRBG_PARAM_USE_DF 100 +#define PIDX_ENCODER_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_ENCODER_PARAM_ENCRYPT_LEVEL 101 +#define PIDX_ENCODER_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_ENCODER_PARAM_SAVE_PARAMETERS 102 +#define PIDX_EXCHANGE_PARAM_EC_ECDH_COFACTOR_MODE 103 +#define PIDX_EXCHANGE_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_EXCHANGE_PARAM_FIPS_DIGEST_CHECK PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK +#define PIDX_EXCHANGE_PARAM_FIPS_ECDH_COFACTOR_CHECK PIDX_PROV_PARAM_ECDH_COFACTOR_CHECK +#define PIDX_EXCHANGE_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_EXCHANGE_PARAM_KDF_DIGEST 104 +#define PIDX_EXCHANGE_PARAM_KDF_DIGEST_PROPS 105 +#define PIDX_EXCHANGE_PARAM_KDF_OUTLEN 106 +#define PIDX_EXCHANGE_PARAM_KDF_TYPE 107 +#define PIDX_EXCHANGE_PARAM_KDF_UKM 108 +#define PIDX_EXCHANGE_PARAM_PAD 109 +#define PIDX_GEN_PARAM_ITERATION 110 +#define PIDX_GEN_PARAM_POTENTIAL 111 +#define PIDX_KDF_PARAM_ARGON2_AD 112 +#define PIDX_KDF_PARAM_ARGON2_LANES 113 +#define PIDX_KDF_PARAM_ARGON2_MEMCOST 114 +#define PIDX_KDF_PARAM_ARGON2_VERSION 115 +#define PIDX_KDF_PARAM_CEK_ALG 116 +#define PIDX_KDF_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_KDF_PARAM_CONSTANT 117 +#define PIDX_KDF_PARAM_DATA 118 +#define PIDX_KDF_PARAM_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_KDF_PARAM_EARLY_CLEAN 119 +#define PIDX_KDF_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_KDF_PARAM_FIPS_DIGEST_CHECK PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK +#define PIDX_KDF_PARAM_FIPS_EMS_CHECK 120 +#define PIDX_KDF_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_KDF_PARAM_HMACDRBG_ENTROPY 121 +#define PIDX_KDF_PARAM_HMACDRBG_NONCE 122 +#define PIDX_KDF_PARAM_INFO 123 +#define PIDX_KDF_PARAM_ITER 124 +#define PIDX_KDF_PARAM_KBKDF_R 125 +#define PIDX_KDF_PARAM_KBKDF_USE_L 126 +#define PIDX_KDF_PARAM_KBKDF_USE_SEPARATOR 127 +#define PIDX_KDF_PARAM_KEY 128 +#define PIDX_KDF_PARAM_LABEL 129 +#define PIDX_KDF_PARAM_MAC PIDX_ALG_PARAM_MAC +#define PIDX_KDF_PARAM_MAC_SIZE 130 +#define PIDX_KDF_PARAM_MODE 55 +#define PIDX_KDF_PARAM_PASSWORD 131 +#define PIDX_KDF_PARAM_PKCS12_ID 132 +#define PIDX_KDF_PARAM_PKCS5 133 +#define PIDX_KDF_PARAM_PREFIX 134 +#define PIDX_KDF_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_KDF_PARAM_SALT 135 +#define PIDX_KDF_PARAM_SCRYPT_MAXMEM 136 +#define PIDX_KDF_PARAM_SCRYPT_N 137 +#define PIDX_KDF_PARAM_SCRYPT_P 138 +#define PIDX_KDF_PARAM_SCRYPT_R 125 +#define PIDX_KDF_PARAM_SECRET 139 +#define PIDX_KDF_PARAM_SEED 140 +#define PIDX_KDF_PARAM_SIZE 81 +#define PIDX_KDF_PARAM_SSHKDF_SESSION_ID 141 +#define PIDX_KDF_PARAM_SSHKDF_TYPE 142 +#define PIDX_KDF_PARAM_SSHKDF_XCGHASH 143 +#define PIDX_KDF_PARAM_THREADS 144 +#define PIDX_KDF_PARAM_UKM 145 +#define PIDX_KDF_PARAM_X942_ACVPINFO 146 +#define PIDX_KDF_PARAM_X942_PARTYUINFO 147 +#define PIDX_KDF_PARAM_X942_PARTYVINFO 148 +#define PIDX_KDF_PARAM_X942_SUPP_PRIVINFO 149 +#define PIDX_KDF_PARAM_X942_SUPP_PUBINFO 150 +#define PIDX_KDF_PARAM_X942_USE_KEYBITS 151 +#define PIDX_KEM_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_KEM_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_KEM_PARAM_IKME 152 +#define PIDX_KEM_PARAM_OPERATION 153 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_BLOCK_PADDING 154 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_HS_PADDING 155 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_MAX_EARLY_DATA 156 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_MAX_FRAG_LEN 157 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_MODE 55 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_OPTIONS 158 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_READ_AHEAD 159 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_STREAM_MAC 160 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_TLSTREE 161 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_USE_ETM 162 +#define PIDX_LIBSSL_RECORD_LAYER_READ_BUFFER_LEN 163 +#define PIDX_MAC_PARAM_BLOCK_SIZE 164 +#define PIDX_MAC_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_MAC_PARAM_CUSTOM 165 +#define PIDX_MAC_PARAM_C_ROUNDS 166 +#define PIDX_MAC_PARAM_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_MAC_PARAM_DIGEST_NOINIT 167 +#define PIDX_MAC_PARAM_DIGEST_ONESHOT 168 +#define PIDX_MAC_PARAM_D_ROUNDS 169 +#define PIDX_MAC_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_MAC_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_MAC_PARAM_FIPS_NO_SHORT_MAC PIDX_PROV_PARAM_NO_SHORT_MAC +#define PIDX_MAC_PARAM_IV 52 +#define PIDX_MAC_PARAM_KEY 128 +#define PIDX_MAC_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_MAC_PARAM_SALT 135 +#define PIDX_MAC_PARAM_SIZE 81 +#define PIDX_MAC_PARAM_TLS_DATA_SIZE 170 +#define PIDX_MAC_PARAM_XOF 83 +#define PIDX_OBJECT_PARAM_DATA 118 +#define PIDX_OBJECT_PARAM_DATA_STRUCTURE 171 +#define PIDX_OBJECT_PARAM_DATA_TYPE 172 +#define PIDX_OBJECT_PARAM_DESC 173 +#define PIDX_OBJECT_PARAM_INPUT_TYPE 174 +#define PIDX_OBJECT_PARAM_REFERENCE 175 +#define PIDX_OBJECT_PARAM_TYPE 142 +#define PIDX_PASSPHRASE_PARAM_INFO 123 +#define PIDX_PKEY_PARAM_ALGORITHM_ID PIDX_ALG_PARAM_ALGORITHM_ID +#define PIDX_PKEY_PARAM_ALGORITHM_ID_PARAMS PIDX_ALG_PARAM_ALGORITHM_ID_PARAMS +#define PIDX_PKEY_PARAM_BITS 176 +#define PIDX_PKEY_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_PKEY_PARAM_DEFAULT_DIGEST 177 +#define PIDX_PKEY_PARAM_DHKEM_IKM 178 +#define PIDX_PKEY_PARAM_DH_GENERATOR 179 +#define PIDX_PKEY_PARAM_DH_PRIV_LEN 180 +#define PIDX_PKEY_PARAM_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_PKEY_PARAM_DIGEST_SIZE 181 +#define PIDX_PKEY_PARAM_DIST_ID 182 +#define PIDX_PKEY_PARAM_EC_A 183 +#define PIDX_PKEY_PARAM_EC_B 184 +#define PIDX_PKEY_PARAM_EC_CHAR2_M 185 +#define PIDX_PKEY_PARAM_EC_CHAR2_PP_K1 186 +#define PIDX_PKEY_PARAM_EC_CHAR2_PP_K2 187 +#define PIDX_PKEY_PARAM_EC_CHAR2_PP_K3 188 +#define PIDX_PKEY_PARAM_EC_CHAR2_TP_BASIS 189 +#define PIDX_PKEY_PARAM_EC_CHAR2_TYPE 190 +#define PIDX_PKEY_PARAM_EC_COFACTOR 191 +#define PIDX_PKEY_PARAM_EC_DECODED_FROM_EXPLICIT_PARAMS 192 +#define PIDX_PKEY_PARAM_EC_ENCODING 193 +#define PIDX_PKEY_PARAM_EC_FIELD_TYPE 194 +#define PIDX_PKEY_PARAM_EC_GENERATOR 195 +#define PIDX_PKEY_PARAM_EC_GROUP_CHECK_TYPE 196 +#define PIDX_PKEY_PARAM_EC_INCLUDE_PUBLIC 197 +#define PIDX_PKEY_PARAM_EC_ORDER 198 +#define PIDX_PKEY_PARAM_EC_P 138 +#define PIDX_PKEY_PARAM_EC_POINT_CONVERSION_FORMAT 199 +#define PIDX_PKEY_PARAM_EC_PUB_X 200 +#define PIDX_PKEY_PARAM_EC_PUB_Y 201 +#define PIDX_PKEY_PARAM_EC_SEED 140 +#define PIDX_PKEY_PARAM_ENCODED_PUBLIC_KEY 202 +#define PIDX_PKEY_PARAM_ENGINE PIDX_ALG_PARAM_ENGINE +#define PIDX_PKEY_PARAM_FFC_COFACTOR 203 +#define PIDX_PKEY_PARAM_FFC_DIGEST PIDX_PKEY_PARAM_DIGEST +#define PIDX_PKEY_PARAM_FFC_DIGEST_PROPS PIDX_PKEY_PARAM_PROPERTIES +#define PIDX_PKEY_PARAM_FFC_G 204 +#define PIDX_PKEY_PARAM_FFC_GINDEX 205 +#define PIDX_PKEY_PARAM_FFC_H 206 +#define PIDX_PKEY_PARAM_FFC_P 138 +#define PIDX_PKEY_PARAM_FFC_PBITS 207 +#define PIDX_PKEY_PARAM_FFC_PCOUNTER 208 +#define PIDX_PKEY_PARAM_FFC_Q 209 +#define PIDX_PKEY_PARAM_FFC_QBITS 210 +#define PIDX_PKEY_PARAM_FFC_SEED 140 +#define PIDX_PKEY_PARAM_FFC_TYPE 142 +#define PIDX_PKEY_PARAM_FFC_VALIDATE_G 211 +#define PIDX_PKEY_PARAM_FFC_VALIDATE_LEGACY 212 +#define PIDX_PKEY_PARAM_FFC_VALIDATE_PQ 213 +#define PIDX_PKEY_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK 214 +#define PIDX_PKEY_PARAM_FIPS_KEY_CHECK 215 +#define PIDX_PKEY_PARAM_FIPS_SIGN_CHECK 216 +#define PIDX_PKEY_PARAM_GROUP_NAME 217 +#define PIDX_PKEY_PARAM_IMPLICIT_REJECTION 8 +#define PIDX_PKEY_PARAM_MANDATORY_DIGEST 218 +#define PIDX_PKEY_PARAM_MASKGENFUNC 219 +#define PIDX_PKEY_PARAM_MAX_SIZE 220 +#define PIDX_PKEY_PARAM_MGF1_DIGEST 221 +#define PIDX_PKEY_PARAM_MGF1_PROPERTIES 222 +#define PIDX_PKEY_PARAM_ML_DSA_INPUT_FORMATS 223 +#define PIDX_PKEY_PARAM_ML_DSA_OUTPUT_FORMATS 224 +#define PIDX_PKEY_PARAM_ML_DSA_PREFER_SEED 225 +#define PIDX_PKEY_PARAM_ML_DSA_RETAIN_SEED 226 +#define PIDX_PKEY_PARAM_ML_DSA_SEED 140 +#define PIDX_PKEY_PARAM_ML_KEM_IMPORT_PCT_TYPE 227 +#define PIDX_PKEY_PARAM_ML_KEM_INPUT_FORMATS 228 +#define PIDX_PKEY_PARAM_ML_KEM_OUTPUT_FORMATS 229 +#define PIDX_PKEY_PARAM_ML_KEM_PREFER_SEED 230 +#define PIDX_PKEY_PARAM_ML_KEM_RETAIN_SEED 231 +#define PIDX_PKEY_PARAM_ML_KEM_SEED 140 +#define PIDX_PKEY_PARAM_PAD_MODE 232 +#define PIDX_PKEY_PARAM_PRIV_KEY 233 +#define PIDX_PKEY_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_PKEY_PARAM_PUB_KEY 234 +#define PIDX_PKEY_PARAM_RSA_BITS PIDX_PKEY_PARAM_BITS +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT 235 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT1 236 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT2 237 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT3 238 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT4 239 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT5 240 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT6 241 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT7 242 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT8 243 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT9 244 +#define PIDX_PKEY_PARAM_RSA_D 245 +#define PIDX_PKEY_PARAM_RSA_DERIVE_FROM_PQ 246 +#define PIDX_PKEY_PARAM_RSA_DIGEST PIDX_PKEY_PARAM_DIGEST +#define PIDX_PKEY_PARAM_RSA_DIGEST_PROPS PIDX_PKEY_PARAM_PROPERTIES +#define PIDX_PKEY_PARAM_RSA_E 247 +#define PIDX_PKEY_PARAM_RSA_EXPONENT 248 +#define PIDX_PKEY_PARAM_RSA_EXPONENT1 249 +#define PIDX_PKEY_PARAM_RSA_EXPONENT10 250 +#define PIDX_PKEY_PARAM_RSA_EXPONENT2 251 +#define PIDX_PKEY_PARAM_RSA_EXPONENT3 252 +#define PIDX_PKEY_PARAM_RSA_EXPONENT4 253 +#define PIDX_PKEY_PARAM_RSA_EXPONENT5 254 +#define PIDX_PKEY_PARAM_RSA_EXPONENT6 255 +#define PIDX_PKEY_PARAM_RSA_EXPONENT7 256 +#define PIDX_PKEY_PARAM_RSA_EXPONENT8 257 +#define PIDX_PKEY_PARAM_RSA_EXPONENT9 258 +#define PIDX_PKEY_PARAM_RSA_FACTOR 259 +#define PIDX_PKEY_PARAM_RSA_FACTOR1 260 +#define PIDX_PKEY_PARAM_RSA_FACTOR10 261 +#define PIDX_PKEY_PARAM_RSA_FACTOR2 262 +#define PIDX_PKEY_PARAM_RSA_FACTOR3 263 +#define PIDX_PKEY_PARAM_RSA_FACTOR4 264 +#define PIDX_PKEY_PARAM_RSA_FACTOR5 265 +#define PIDX_PKEY_PARAM_RSA_FACTOR6 266 +#define PIDX_PKEY_PARAM_RSA_FACTOR7 267 +#define PIDX_PKEY_PARAM_RSA_FACTOR8 268 +#define PIDX_PKEY_PARAM_RSA_FACTOR9 269 +#define PIDX_PKEY_PARAM_RSA_MASKGENFUNC PIDX_PKEY_PARAM_MASKGENFUNC +#define PIDX_PKEY_PARAM_RSA_MGF1_DIGEST PIDX_PKEY_PARAM_MGF1_DIGEST +#define PIDX_PKEY_PARAM_RSA_N 137 +#define PIDX_PKEY_PARAM_RSA_PRIMES 270 +#define PIDX_PKEY_PARAM_RSA_PSS_SALTLEN 271 +#define PIDX_PKEY_PARAM_RSA_TEST_P1 272 +#define PIDX_PKEY_PARAM_RSA_TEST_P2 273 +#define PIDX_PKEY_PARAM_RSA_TEST_Q1 274 +#define PIDX_PKEY_PARAM_RSA_TEST_Q2 275 +#define PIDX_PKEY_PARAM_RSA_TEST_XP 276 +#define PIDX_PKEY_PARAM_RSA_TEST_XP1 277 +#define PIDX_PKEY_PARAM_RSA_TEST_XP2 278 +#define PIDX_PKEY_PARAM_RSA_TEST_XQ 279 +#define PIDX_PKEY_PARAM_RSA_TEST_XQ1 280 +#define PIDX_PKEY_PARAM_RSA_TEST_XQ2 281 +#define PIDX_PKEY_PARAM_SECURITY_BITS 282 +#define PIDX_PKEY_PARAM_SLH_DSA_SEED 140 +#define PIDX_PKEY_PARAM_USE_COFACTOR_ECDH PIDX_PKEY_PARAM_USE_COFACTOR_FLAG +#define PIDX_PKEY_PARAM_USE_COFACTOR_FLAG 283 +#define PIDX_PROV_PARAM_BUILDINFO 284 +#define PIDX_PROV_PARAM_CORE_MODULE_FILENAME 285 +#define PIDX_PROV_PARAM_CORE_PROV_NAME 286 +#define PIDX_PROV_PARAM_CORE_VERSION 287 +#define PIDX_PROV_PARAM_DRBG_TRUNC_DIGEST 288 +#define PIDX_PROV_PARAM_DSA_SIGN_DISABLED 289 +#define PIDX_PROV_PARAM_ECDH_COFACTOR_CHECK 290 +#define PIDX_PROV_PARAM_HKDF_DIGEST_CHECK 291 +#define PIDX_PROV_PARAM_HKDF_KEY_CHECK 292 +#define PIDX_PROV_PARAM_HMAC_KEY_CHECK 293 +#define PIDX_PROV_PARAM_KBKDF_KEY_CHECK 294 +#define PIDX_PROV_PARAM_KMAC_KEY_CHECK 295 +#define PIDX_PROV_PARAM_NAME 296 +#define PIDX_PROV_PARAM_NO_SHORT_MAC 297 +#define PIDX_PROV_PARAM_PBKDF2_LOWER_BOUND_CHECK 298 +#define PIDX_PROV_PARAM_RSA_PKCS15_PAD_DISABLED 299 +#define PIDX_PROV_PARAM_RSA_PSS_SALTLEN_CHECK 300 +#define PIDX_PROV_PARAM_RSA_SIGN_X931_PAD_DISABLED 301 +#define PIDX_PROV_PARAM_SECURITY_CHECKS 302 +#define PIDX_PROV_PARAM_SELF_TEST_DESC 303 +#define PIDX_PROV_PARAM_SELF_TEST_PHASE 304 +#define PIDX_PROV_PARAM_SELF_TEST_TYPE 305 +#define PIDX_PROV_PARAM_SIGNATURE_DIGEST_CHECK 306 +#define PIDX_PROV_PARAM_SSHKDF_DIGEST_CHECK 307 +#define PIDX_PROV_PARAM_SSHKDF_KEY_CHECK 308 +#define PIDX_PROV_PARAM_SSKDF_DIGEST_CHECK 309 +#define PIDX_PROV_PARAM_SSKDF_KEY_CHECK 310 +#define PIDX_PROV_PARAM_STATUS 311 +#define PIDX_PROV_PARAM_TDES_ENCRYPT_DISABLED 312 +#define PIDX_PROV_PARAM_TLS13_KDF_DIGEST_CHECK 313 +#define PIDX_PROV_PARAM_TLS13_KDF_KEY_CHECK 314 +#define PIDX_PROV_PARAM_TLS1_PRF_DIGEST_CHECK 315 +#define PIDX_PROV_PARAM_TLS1_PRF_EMS_CHECK 316 +#define PIDX_PROV_PARAM_TLS1_PRF_KEY_CHECK 317 +#define PIDX_PROV_PARAM_VERSION 115 +#define PIDX_PROV_PARAM_X942KDF_KEY_CHECK 318 +#define PIDX_PROV_PARAM_X963KDF_DIGEST_CHECK 319 +#define PIDX_PROV_PARAM_X963KDF_KEY_CHECK 320 +#define PIDX_RAND_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_RAND_PARAM_GENERATE 321 +#define PIDX_RAND_PARAM_MAX_REQUEST 322 +#define PIDX_RAND_PARAM_STATE 323 +#define PIDX_RAND_PARAM_STRENGTH 324 +#define PIDX_RAND_PARAM_TEST_ENTROPY 325 +#define PIDX_RAND_PARAM_TEST_NONCE 326 +#define PIDX_SIGNATURE_PARAM_ADD_RANDOM 327 +#define PIDX_SIGNATURE_PARAM_ALGORITHM_ID PIDX_PKEY_PARAM_ALGORITHM_ID +#define PIDX_SIGNATURE_PARAM_ALGORITHM_ID_PARAMS PIDX_PKEY_PARAM_ALGORITHM_ID_PARAMS +#define PIDX_SIGNATURE_PARAM_CONTEXT_STRING 328 +#define PIDX_SIGNATURE_PARAM_DETERMINISTIC 329 +#define PIDX_SIGNATURE_PARAM_DIGEST PIDX_PKEY_PARAM_DIGEST +#define PIDX_SIGNATURE_PARAM_DIGEST_SIZE PIDX_PKEY_PARAM_DIGEST_SIZE +#define PIDX_SIGNATURE_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_SIGNATURE_PARAM_FIPS_DIGEST_CHECK PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK +#define PIDX_SIGNATURE_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_SIGNATURE_PARAM_FIPS_RSA_PSS_SALTLEN_CHECK 300 +#define PIDX_SIGNATURE_PARAM_FIPS_SIGN_CHECK PIDX_PKEY_PARAM_FIPS_SIGN_CHECK +#define PIDX_SIGNATURE_PARAM_FIPS_SIGN_X931_PAD_CHECK 330 +#define PIDX_SIGNATURE_PARAM_FIPS_VERIFY_MESSAGE 331 +#define PIDX_SIGNATURE_PARAM_INSTANCE 332 +#define PIDX_SIGNATURE_PARAM_KAT 333 +#define PIDX_SIGNATURE_PARAM_MESSAGE_ENCODING 334 +#define PIDX_SIGNATURE_PARAM_MGF1_DIGEST PIDX_PKEY_PARAM_MGF1_DIGEST +#define PIDX_SIGNATURE_PARAM_MGF1_PROPERTIES PIDX_PKEY_PARAM_MGF1_PROPERTIES +#define PIDX_SIGNATURE_PARAM_MU 335 +#define PIDX_SIGNATURE_PARAM_NONCE_TYPE 336 +#define PIDX_SIGNATURE_PARAM_PAD_MODE PIDX_PKEY_PARAM_PAD_MODE +#define PIDX_SIGNATURE_PARAM_PROPERTIES PIDX_PKEY_PARAM_PROPERTIES +#define PIDX_SIGNATURE_PARAM_PSS_SALTLEN 271 +#define PIDX_SIGNATURE_PARAM_SIGNATURE 337 +#define PIDX_SIGNATURE_PARAM_TEST_ENTROPY 338 +#define PIDX_SKEY_PARAM_KEY_LENGTH 339 +#define PIDX_SKEY_PARAM_RAW_BYTES 340 +#define PIDX_STORE_PARAM_ALIAS 341 +#define PIDX_STORE_PARAM_DIGEST 3 +#define PIDX_STORE_PARAM_EXPECT 342 +#define PIDX_STORE_PARAM_FINGERPRINT 343 +#define PIDX_STORE_PARAM_INPUT_TYPE 174 +#define PIDX_STORE_PARAM_ISSUER 296 +#define PIDX_STORE_PARAM_PROPERTIES 7 +#define PIDX_STORE_PARAM_SERIAL 344 +#define PIDX_STORE_PARAM_SUBJECT 345 diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/include/openssl/asn1.h b/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/include/openssl/asn1.h index 21ff58e3d803d4..15e9e44674b0f3 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/include/openssl/asn1.h +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/include/openssl/asn1.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/asn1.h.in * - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -21,6 +21,9 @@ # define HEADER_ASN1_H # endif +# ifndef OPENSSL_NO_STDIO +# include +# endif # include # include # include @@ -50,14 +53,14 @@ extern "C" { # define V_ASN1_PRIMITIVE_TAG 0x1f # define V_ASN1_PRIMATIVE_TAG /*compat*/ V_ASN1_PRIMITIVE_TAG -# define V_ASN1_APP_CHOOSE -2/* let the recipient choose */ -# define V_ASN1_OTHER -3/* used in ASN1_TYPE */ -# define V_ASN1_ANY -4/* used in ASN1 template code */ +# define V_ASN1_APP_CHOOSE -2 /* let the recipient choose */ +# define V_ASN1_OTHER -3 /* used in ASN1_TYPE */ +# define V_ASN1_ANY -4 /* used in ASN1 template code */ # define V_ASN1_UNDEF -1 /* ASN.1 tag values */ # define V_ASN1_EOC 0 -# define V_ASN1_BOOLEAN 1 /**/ +# define V_ASN1_BOOLEAN 1 # define V_ASN1_INTEGER 2 # define V_ASN1_BIT_STRING 3 # define V_ASN1_OCTET_STRING 4 @@ -70,19 +73,19 @@ extern "C" { # define V_ASN1_UTF8STRING 12 # define V_ASN1_SEQUENCE 16 # define V_ASN1_SET 17 -# define V_ASN1_NUMERICSTRING 18 /**/ +# define V_ASN1_NUMERICSTRING 18 # define V_ASN1_PRINTABLESTRING 19 # define V_ASN1_T61STRING 20 -# define V_ASN1_TELETEXSTRING 20/* alias */ -# define V_ASN1_VIDEOTEXSTRING 21 /**/ +# define V_ASN1_TELETEXSTRING 20 /* alias */ +# define V_ASN1_VIDEOTEXSTRING 21 # define V_ASN1_IA5STRING 22 # define V_ASN1_UTCTIME 23 -# define V_ASN1_GENERALIZEDTIME 24 /**/ -# define V_ASN1_GRAPHICSTRING 25 /**/ -# define V_ASN1_ISO64STRING 26 /**/ -# define V_ASN1_VISIBLESTRING 26/* alias */ -# define V_ASN1_GENERALSTRING 27 /**/ -# define V_ASN1_UNIVERSALSTRING 28 /**/ +# define V_ASN1_GENERALIZEDTIME 24 +# define V_ASN1_GRAPHICSTRING 25 +# define V_ASN1_ISO64STRING 26 +# define V_ASN1_VISIBLESTRING 26 /* alias */ +# define V_ASN1_GENERALSTRING 27 +# define V_ASN1_UNIVERSALSTRING 28 # define V_ASN1_BMPSTRING 30 /* @@ -155,7 +158,7 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_ALGOR, X509_ALGOR, X509_ALGOR) -# define ASN1_STRING_FLAG_BITS_LEFT 0x08/* Set if 0x07 has bits left value */ +# define ASN1_STRING_FLAG_BITS_LEFT 0x08 /* Set if 0x07 has bits left value */ /* * This indicates that the ASN1_STRING is not a real value but just a place * holder for the location where indefinite length constructed data should be @@ -275,7 +278,7 @@ typedef struct ASN1_TLC_st ASN1_TLC; /* This is just an opaque pointer */ typedef struct ASN1_VALUE_st ASN1_VALUE; -/* Declare ASN1 functions: the implement macro in in asn1t.h */ +/* Declare ASN1 functions: the implement macro is in asn1t.h */ /* * The mysterious 'extern' that's passed to some macros is innocuous, @@ -368,6 +371,7 @@ typedef struct ASN1_VALUE_st ASN1_VALUE; typedef void *d2i_of_void(void **, const unsigned char **, long); typedef int i2d_of_void(const void *, unsigned char **); +typedef int OSSL_i2d_of_void_ctx(const void *, unsigned char **, void *vctx); /*- * The following macros and typedefs allow an ASN1_ITEM @@ -996,6 +1000,8 @@ int ASN1_TYPE_get_int_octetstring(const ASN1_TYPE *a, long *num, unsigned char *data, int max_len); void *ASN1_item_unpack(const ASN1_STRING *oct, const ASN1_ITEM *it); +void *ASN1_item_unpack_ex(const ASN1_STRING *oct, const ASN1_ITEM *it, + OSSL_LIB_CTX *libctx, const char *propq); ASN1_STRING *ASN1_item_pack(void *obj, const ASN1_ITEM *it, ASN1_OCTET_STRING **oct); diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/include/openssl/bio.h b/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/include/openssl/bio.h index f9aa74731c833c..e02f867beb0ec0 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/include/openssl/bio.h +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/include/openssl/bio.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/bio.h.in * - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -67,8 +67,13 @@ extern "C" { # define BIO_TYPE_DGRAM_SCTP (24|BIO_TYPE_SOURCE_SINK|BIO_TYPE_DESCRIPTOR) # endif # define BIO_TYPE_CORE_TO_PROV (25|BIO_TYPE_SOURCE_SINK) +# define BIO_TYPE_DGRAM_PAIR (26|BIO_TYPE_SOURCE_SINK) +# define BIO_TYPE_DGRAM_MEM (27|BIO_TYPE_SOURCE_SINK) +/* Custom type starting index returned by BIO_get_new_index() */ #define BIO_TYPE_START 128 +/* Custom type maximum index that can be returned by BIO_get_new_index() */ +#define BIO_TYPE_MASK 0xFF /* * BIO_FILENAME_READ|BIO_CLOSE to open or close on free. @@ -171,6 +176,31 @@ extern "C" { # define BIO_CTRL_SET_INDENT 80 # define BIO_CTRL_GET_INDENT 81 +# define BIO_CTRL_DGRAM_GET_LOCAL_ADDR_CAP 82 +# define BIO_CTRL_DGRAM_GET_LOCAL_ADDR_ENABLE 83 +# define BIO_CTRL_DGRAM_SET_LOCAL_ADDR_ENABLE 84 +# define BIO_CTRL_DGRAM_GET_EFFECTIVE_CAPS 85 +# define BIO_CTRL_DGRAM_GET_CAPS 86 +# define BIO_CTRL_DGRAM_SET_CAPS 87 +# define BIO_CTRL_DGRAM_GET_NO_TRUNC 88 +# define BIO_CTRL_DGRAM_SET_NO_TRUNC 89 + +/* + * internal BIO: + * # define BIO_CTRL_SET_KTLS_TX_ZEROCOPY_SENDFILE 90 + */ + +# define BIO_CTRL_GET_RPOLL_DESCRIPTOR 91 +# define BIO_CTRL_GET_WPOLL_DESCRIPTOR 92 +# define BIO_CTRL_DGRAM_DETECT_PEER_ADDR 93 +# define BIO_CTRL_DGRAM_SET0_LOCAL_ADDR 94 + +# define BIO_DGRAM_CAP_NONE 0U +# define BIO_DGRAM_CAP_HANDLES_SRC_ADDR (1U << 0) +# define BIO_DGRAM_CAP_HANDLES_DST_ADDR (1U << 1) +# define BIO_DGRAM_CAP_PROVIDES_SRC_ADDR (1U << 2) +# define BIO_DGRAM_CAP_PROVIDES_DST_ADDR (1U << 3) + # ifndef OPENSSL_NO_KTLS # define BIO_get_ktls_send(b) \ (BIO_ctrl(b, BIO_CTRL_GET_KTLS_SEND, 0, NULL) > 0) @@ -208,7 +238,7 @@ extern "C" { # define BIO_FLAGS_NONCLEAR_RST 0x400 # define BIO_FLAGS_IN_EOF 0x800 -/* the BIO FLAGS values 0x1000 to 0x4000 are reserved for internal KTLS flags */ +/* the BIO FLAGS values 0x1000 to 0x8000 are reserved for internal KTLS flags */ typedef union bio_addr_st BIO_ADDR; typedef struct bio_addrinfo_st BIO_ADDRINFO; @@ -256,12 +286,14 @@ void BIO_clear_flags(BIO *b, int flags); # define BIO_RR_ACCEPT 0x03 /* These are passed by the BIO callback */ -# define BIO_CB_FREE 0x01 -# define BIO_CB_READ 0x02 -# define BIO_CB_WRITE 0x03 -# define BIO_CB_PUTS 0x04 -# define BIO_CB_GETS 0x05 -# define BIO_CB_CTRL 0x06 +# define BIO_CB_FREE 0x01 +# define BIO_CB_READ 0x02 +# define BIO_CB_WRITE 0x03 +# define BIO_CB_PUTS 0x04 +# define BIO_CB_GETS 0x05 +# define BIO_CB_CTRL 0x06 +# define BIO_CB_RECVMMSG 0x07 +# define BIO_CB_SENDMMSG 0x08 /* * The callback is called before and after the underling operation, The @@ -362,6 +394,36 @@ struct bio_dgram_sctp_prinfo { }; # endif +/* BIO_sendmmsg/BIO_recvmmsg-related definitions */ +typedef struct bio_msg_st { + void *data; + size_t data_len; + BIO_ADDR *peer, *local; + uint64_t flags; +} BIO_MSG; + +typedef struct bio_mmsg_cb_args_st { + BIO_MSG *msg; + size_t stride, num_msg; + uint64_t flags; + size_t *msgs_processed; +} BIO_MMSG_CB_ARGS; + +#define BIO_POLL_DESCRIPTOR_TYPE_NONE 0 +#define BIO_POLL_DESCRIPTOR_TYPE_SOCK_FD 1 +#define BIO_POLL_DESCRIPTOR_TYPE_SSL 2 +#define BIO_POLL_DESCRIPTOR_CUSTOM_START 8192 + +typedef struct bio_poll_descriptor_st { + uint32_t type; + union { + int fd; + void *custom; + uintptr_t custom_ui; + SSL *ssl; + } value; +} BIO_POLL_DESCRIPTOR; + /* * #define BIO_CONN_get_param_hostname BIO_ctrl */ @@ -428,10 +490,17 @@ struct bio_dgram_sctp_prinfo { # define BIO_C_SET_CONNECT_MODE 155 +# define BIO_C_SET_TFO 156 /* like BIO_C_SET_NBIO */ + +# define BIO_C_SET_SOCK_TYPE 157 +# define BIO_C_GET_SOCK_TYPE 158 +# define BIO_C_GET_DGRAM_BIO 159 + # define BIO_set_app_data(s,arg) BIO_set_ex_data(s,0,arg) # define BIO_get_app_data(s) BIO_get_ex_data(s,0) -# define BIO_set_nbio(b,n) BIO_ctrl(b,BIO_C_SET_NBIO,(n),NULL) +# define BIO_set_nbio(b,n) BIO_ctrl(b,BIO_C_SET_NBIO,(n),NULL) +# define BIO_set_tfo(b,n) BIO_ctrl(b,BIO_C_SET_TFO,(n),NULL) # ifndef OPENSSL_NO_SOCK /* IP families we support, for BIO_s_connect() and BIO_s_accept() */ @@ -452,7 +521,11 @@ struct bio_dgram_sctp_prinfo { # define BIO_get_conn_port(b) ((const char *)BIO_ptr_ctrl(b,BIO_C_GET_CONNECT,1)) # define BIO_get_conn_address(b) ((const BIO_ADDR *)BIO_ptr_ctrl(b,BIO_C_GET_CONNECT,2)) # define BIO_get_conn_ip_family(b) BIO_ctrl(b,BIO_C_GET_CONNECT,3,NULL) +# define BIO_get_conn_mode(b) BIO_ctrl(b,BIO_C_GET_CONNECT,4,NULL) # define BIO_set_conn_mode(b,n) BIO_ctrl(b,BIO_C_SET_CONNECT_MODE,(n),NULL) +# define BIO_set_sock_type(b,t) BIO_ctrl(b,BIO_C_SET_SOCK_TYPE,(t),NULL) +# define BIO_get_sock_type(b) BIO_ctrl(b,BIO_C_GET_SOCK_TYPE,0,NULL) +# define BIO_get0_dgram_bio(b, p) BIO_ctrl(b,BIO_C_GET_DGRAM_BIO,0,(void *)(BIO **)(p)) /* BIO_s_accept() */ # define BIO_set_accept_name(b,name) BIO_ctrl(b,BIO_C_SET_ACCEPT,0, \ @@ -469,6 +542,7 @@ struct bio_dgram_sctp_prinfo { (char *)(bio)) # define BIO_set_accept_ip_family(b,f) BIO_int_ctrl(b,BIO_C_SET_ACCEPT,4,f) # define BIO_get_accept_ip_family(b) BIO_ctrl(b,BIO_C_GET_ACCEPT,4,NULL) +# define BIO_set_tfo_accept(b,n) BIO_ctrl(b,BIO_C_SET_ACCEPT,5,(n)?(void *)"a":NULL) /* Aliases kept for backward compatibility */ # define BIO_BIND_NORMAL 0 @@ -596,8 +670,32 @@ int BIO_ctrl_reset_read_request(BIO *b); (int)BIO_ctrl(b, BIO_CTRL_DGRAM_GET_PEER, 0, (char *)(peer)) # define BIO_dgram_set_peer(b,peer) \ (int)BIO_ctrl(b, BIO_CTRL_DGRAM_SET_PEER, 0, (char *)(peer)) +# define BIO_dgram_detect_peer_addr(b,peer) \ + (int)BIO_ctrl(b, BIO_CTRL_DGRAM_DETECT_PEER_ADDR, 0, (char *)(peer)) # define BIO_dgram_get_mtu_overhead(b) \ (unsigned int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_MTU_OVERHEAD, 0, NULL) +# define BIO_dgram_get_local_addr_cap(b) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_LOCAL_ADDR_CAP, 0, NULL) +# define BIO_dgram_get_local_addr_enable(b, penable) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_LOCAL_ADDR_ENABLE, 0, (char *)(penable)) +# define BIO_dgram_set_local_addr_enable(b, enable) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET_LOCAL_ADDR_ENABLE, (enable), NULL) +# define BIO_dgram_get_effective_caps(b) \ + (uint32_t)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_EFFECTIVE_CAPS, 0, NULL) +# define BIO_dgram_get_caps(b) \ + (uint32_t)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_CAPS, 0, NULL) +# define BIO_dgram_set_caps(b, caps) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET_CAPS, (long)(caps), NULL) +# define BIO_dgram_get_no_trunc(b) \ + (unsigned int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_NO_TRUNC, 0, NULL) +# define BIO_dgram_set_no_trunc(b, enable) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET_NO_TRUNC, (enable), NULL) +# define BIO_dgram_get_mtu(b) \ + (unsigned int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_MTU, 0, NULL) +# define BIO_dgram_set_mtu(b, mtu) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET_MTU, (mtu), NULL) +# define BIO_dgram_set0_local_addr(b, addr) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET0_LOCAL_ADDR, 0, (addr)) /* ctrl macros for BIO_f_prefix */ # define BIO_set_prefix(b,p) BIO_ctrl((b), BIO_CTRL_SET_PREFIX, 0, (void *)(p)) @@ -640,10 +738,18 @@ void BIO_vfree(BIO *a); int BIO_up_ref(BIO *a); int BIO_read(BIO *b, void *data, int dlen); int BIO_read_ex(BIO *b, void *data, size_t dlen, size_t *readbytes); +__owur int BIO_recvmmsg(BIO *b, BIO_MSG *msg, + size_t stride, size_t num_msg, uint64_t flags, + size_t *msgs_processed); int BIO_gets(BIO *bp, char *buf, int size); int BIO_get_line(BIO *bio, char *buf, int size); int BIO_write(BIO *b, const void *data, int dlen); int BIO_write_ex(BIO *b, const void *data, size_t dlen, size_t *written); +__owur int BIO_sendmmsg(BIO *b, BIO_MSG *msg, + size_t stride, size_t num_msg, uint64_t flags, + size_t *msgs_processed); +__owur int BIO_get_rpoll_descriptor(BIO *b, BIO_POLL_DESCRIPTOR *desc); +__owur int BIO_get_wpoll_descriptor(BIO *b, BIO_POLL_DESCRIPTOR *desc); int BIO_puts(BIO *bp, const char *buf); int BIO_indent(BIO *b, int indent, int max); long BIO_ctrl(BIO *bp, int cmd, long larg, void *parg); @@ -667,6 +773,9 @@ int BIO_nwrite0(BIO *bio, char **buf); int BIO_nwrite(BIO *bio, char **buf, int num); const BIO_METHOD *BIO_s_mem(void); +# ifndef OPENSSL_NO_DGRAM +const BIO_METHOD *BIO_s_dgram_mem(void); +# endif const BIO_METHOD *BIO_s_secmem(void); BIO *BIO_new_mem_buf(const void *buf, int len); # ifndef OPENSSL_NO_SOCK @@ -686,6 +795,7 @@ const BIO_METHOD *BIO_f_nbio_test(void); const BIO_METHOD *BIO_f_prefix(void); const BIO_METHOD *BIO_s_core(void); # ifndef OPENSSL_NO_DGRAM +const BIO_METHOD *BIO_s_dgram_pair(void); const BIO_METHOD *BIO_s_datagram(void); int BIO_dgram_non_fatal_error(int error); BIO *BIO_new_dgram(int fd, int close_flag); @@ -704,6 +814,7 @@ int BIO_dgram_sctp_msg_waiting(BIO *b); # ifndef OPENSSL_NO_SOCK int BIO_sock_should_retry(int i); int BIO_sock_non_fatal_error(int error); +int BIO_err_is_non_fatal(unsigned int errcode); int BIO_socket_wait(int fd, int for_read, time_t max_time); # endif int BIO_wait(BIO *bio, time_t max_time, unsigned int nap_milliseconds); @@ -726,6 +837,8 @@ int BIO_hex_string(BIO *out, int indent, int width, const void *data, # ifndef OPENSSL_NO_SOCK BIO_ADDR *BIO_ADDR_new(void); +int BIO_ADDR_copy(BIO_ADDR *dst, const BIO_ADDR *src); +BIO_ADDR *BIO_ADDR_dup(const BIO_ADDR *ap); int BIO_ADDR_rawmake(BIO_ADDR *ap, int family, const void *where, size_t wherelen, unsigned short port); void BIO_ADDR_free(BIO_ADDR *); @@ -788,6 +901,7 @@ int BIO_sock_info(int sock, # define BIO_SOCK_KEEPALIVE 0x04 # define BIO_SOCK_NONBLOCK 0x08 # define BIO_SOCK_NODELAY 0x10 +# define BIO_SOCK_TFO 0x20 int BIO_socket(int domain, int socktype, int protocol, int options); int BIO_connect(int sock, const BIO_ADDR *addr, int options); @@ -805,6 +919,11 @@ BIO *BIO_new_fd(int fd, int close_flag); int BIO_new_bio_pair(BIO **bio1, size_t writebuf1, BIO **bio2, size_t writebuf2); +# ifndef OPENSSL_NO_DGRAM +int BIO_new_bio_dgram_pair(BIO **bio1, size_t writebuf1, + BIO **bio2, size_t writebuf2); +# endif + /* * If successful, returns 1 and in *bio1, *bio2 two BIO pair endpoints. * Otherwise returns 0 and sets *bio1 and *bio2 to NULL. Size 0 uses default @@ -849,38 +968,54 @@ ossl_bio__attr__((__format__(ossl_bio__printf__, 3, 0))); BIO_METHOD *BIO_meth_new(int type, const char *name); void BIO_meth_free(BIO_METHOD *biom); -int (*BIO_meth_get_write(const BIO_METHOD *biom)) (BIO *, const char *, int); -int (*BIO_meth_get_write_ex(const BIO_METHOD *biom)) (BIO *, const char *, size_t, - size_t *); int BIO_meth_set_write(BIO_METHOD *biom, int (*write) (BIO *, const char *, int)); int BIO_meth_set_write_ex(BIO_METHOD *biom, int (*bwrite) (BIO *, const char *, size_t, size_t *)); -int (*BIO_meth_get_read(const BIO_METHOD *biom)) (BIO *, char *, int); -int (*BIO_meth_get_read_ex(const BIO_METHOD *biom)) (BIO *, char *, size_t, size_t *); +int BIO_meth_set_sendmmsg(BIO_METHOD *biom, + int (*f) (BIO *, BIO_MSG *, size_t, size_t, + uint64_t, size_t *)); int BIO_meth_set_read(BIO_METHOD *biom, int (*read) (BIO *, char *, int)); int BIO_meth_set_read_ex(BIO_METHOD *biom, int (*bread) (BIO *, char *, size_t, size_t *)); -int (*BIO_meth_get_puts(const BIO_METHOD *biom)) (BIO *, const char *); +int BIO_meth_set_recvmmsg(BIO_METHOD *biom, + int (*f) (BIO *, BIO_MSG *, size_t, size_t, + uint64_t, size_t *)); int BIO_meth_set_puts(BIO_METHOD *biom, int (*puts) (BIO *, const char *)); -int (*BIO_meth_get_gets(const BIO_METHOD *biom)) (BIO *, char *, int); int BIO_meth_set_gets(BIO_METHOD *biom, int (*ossl_gets) (BIO *, char *, int)); -long (*BIO_meth_get_ctrl(const BIO_METHOD *biom)) (BIO *, int, long, void *); int BIO_meth_set_ctrl(BIO_METHOD *biom, long (*ctrl) (BIO *, int, long, void *)); -int (*BIO_meth_get_create(const BIO_METHOD *bion)) (BIO *); int BIO_meth_set_create(BIO_METHOD *biom, int (*create) (BIO *)); -int (*BIO_meth_get_destroy(const BIO_METHOD *biom)) (BIO *); int BIO_meth_set_destroy(BIO_METHOD *biom, int (*destroy) (BIO *)); -long (*BIO_meth_get_callback_ctrl(const BIO_METHOD *biom)) - (BIO *, int, BIO_info_cb *); int BIO_meth_set_callback_ctrl(BIO_METHOD *biom, long (*callback_ctrl) (BIO *, int, BIO_info_cb *)); - +# ifndef OPENSSL_NO_DEPRECATED_3_5 +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_write(const BIO_METHOD *biom)) (BIO *, const char *, + int); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_write_ex(const BIO_METHOD *biom)) (BIO *, const char *, + size_t, size_t *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_sendmmsg(const BIO_METHOD *biom))(BIO *, BIO_MSG *, + size_t, size_t, + uint64_t, size_t *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_read(const BIO_METHOD *biom)) (BIO *, char *, int); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_read_ex(const BIO_METHOD *biom)) (BIO *, char *, + size_t, size_t *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_recvmmsg(const BIO_METHOD *biom))(BIO *, BIO_MSG *, + size_t, size_t, + uint64_t, size_t *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_puts(const BIO_METHOD *biom)) (BIO *, const char *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_gets(const BIO_METHOD *biom)) (BIO *, char *, int); +OSSL_DEPRECATEDIN_3_5 long (*BIO_meth_get_ctrl(const BIO_METHOD *biom)) (BIO *, int, + long, void *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_create(const BIO_METHOD *bion)) (BIO *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_destroy(const BIO_METHOD *biom)) (BIO *); +OSSL_DEPRECATEDIN_3_5 long (*BIO_meth_get_callback_ctrl(const BIO_METHOD *biom)) (BIO *, int, + BIO_info_cb *); +# endif # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/include/openssl/cmp.h b/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/include/openssl/cmp.h index 49825570d8c303..05aed3029d594c 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/include/openssl/cmp.h +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/include/openssl/cmp.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/cmp.h.in * - * Copyright 2007-2023 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2007-2024 The OpenSSL Project Authors. All Rights Reserved. * Copyright Nokia 2007-2019 * Copyright Siemens AG 2015-2019 * @@ -35,7 +35,9 @@ extern "C" { # endif -# define OSSL_CMP_PVNO 2 +# define OSSL_CMP_PVNO_2 2 +# define OSSL_CMP_PVNO_3 3 +# define OSSL_CMP_PVNO OSSL_CMP_PVNO_2 /* v2 is the default */ /*- * PKIFailureInfo ::= BIT STRING { @@ -137,7 +139,6 @@ extern "C" { # if OSSL_CMP_PKIFAILUREINFO_MAX_BIT_PATTERN > INT_MAX # error CMP_PKIFAILUREINFO_MAX bit pattern does not fit in type int # endif - typedef ASN1_BIT_STRING OSSL_CMP_PKIFAILUREINFO; # define OSSL_CMP_CTX_FAILINFO_badAlg (1 << 0) @@ -203,8 +204,8 @@ typedef ASN1_BIT_STRING OSSL_CMP_PKIFAILUREINFO; # define OSSL_CMP_PKISTATUS_revocationWarning 4 # define OSSL_CMP_PKISTATUS_revocationNotification 5 # define OSSL_CMP_PKISTATUS_keyUpdateWarning 6 - typedef ASN1_INTEGER OSSL_CMP_PKISTATUS; + DECLARE_ASN1_ITEM(OSSL_CMP_PKISTATUS) # define OSSL_CMP_CERTORENCCERT_CERTIFICATE 0 @@ -274,6 +275,46 @@ SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CMP_ITAV, OSSL_CMP_ITAV, OSSL_CMP_ITAV) #define sk_OSSL_CMP_ITAV_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_CMP_ITAV) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_CMP_ITAV_sk_type(sk), ossl_check_OSSL_CMP_ITAV_copyfunc_type(copyfunc), ossl_check_OSSL_CMP_ITAV_freefunc_type(freefunc))) #define sk_OSSL_CMP_ITAV_set_cmp_func(sk, cmp) ((sk_OSSL_CMP_ITAV_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CMP_ITAV_sk_type(sk), ossl_check_OSSL_CMP_ITAV_compfunc_type(cmp))) + +typedef struct ossl_cmp_crlstatus_st OSSL_CMP_CRLSTATUS; +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CMP_CRLSTATUS, OSSL_CMP_CRLSTATUS, OSSL_CMP_CRLSTATUS) +#define sk_OSSL_CMP_CRLSTATUS_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_value(sk, idx) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_value(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk), (idx))) +#define sk_OSSL_CMP_CRLSTATUS_new(cmp) ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_new(ossl_check_OSSL_CMP_CRLSTATUS_compfunc_type(cmp))) +#define sk_OSSL_CMP_CRLSTATUS_new_null() ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_new_null()) +#define sk_OSSL_CMP_CRLSTATUS_new_reserve(cmp, n) ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_CMP_CRLSTATUS_compfunc_type(cmp), (n))) +#define sk_OSSL_CMP_CRLSTATUS_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), (n)) +#define sk_OSSL_CMP_CRLSTATUS_free(sk) OPENSSL_sk_free(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_delete(sk, i) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_delete(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), (i))) +#define sk_OSSL_CMP_CRLSTATUS_delete_ptr(sk, ptr) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr))) +#define sk_OSSL_CMP_CRLSTATUS_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr)) +#define sk_OSSL_CMP_CRLSTATUS_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr)) +#define sk_OSSL_CMP_CRLSTATUS_pop(sk) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_pop(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk))) +#define sk_OSSL_CMP_CRLSTATUS_shift(sk) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_shift(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk))) +#define sk_OSSL_CMP_CRLSTATUS_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk),ossl_check_OSSL_CMP_CRLSTATUS_freefunc_type(freefunc)) +#define sk_OSSL_CMP_CRLSTATUS_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr), (idx)) +#define sk_OSSL_CMP_CRLSTATUS_set(sk, idx, ptr) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_set(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), (idx), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr))) +#define sk_OSSL_CMP_CRLSTATUS_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr)) +#define sk_OSSL_CMP_CRLSTATUS_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr)) +#define sk_OSSL_CMP_CRLSTATUS_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr), pnum) +#define sk_OSSL_CMP_CRLSTATUS_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_dup(sk) ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_dup(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk))) +#define sk_OSSL_CMP_CRLSTATUS_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_copyfunc_type(copyfunc), ossl_check_OSSL_CMP_CRLSTATUS_freefunc_type(freefunc))) +#define sk_OSSL_CMP_CRLSTATUS_set_cmp_func(sk, cmp) ((sk_OSSL_CMP_CRLSTATUS_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_compfunc_type(cmp))) + + +typedef OSSL_CRMF_ATTRIBUTETYPEANDVALUE OSSL_CMP_ATAV; +# define OSSL_CMP_ATAV_free OSSL_CRMF_ATTRIBUTETYPEANDVALUE_free +typedef STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) OSSL_CMP_ATAVS; +DECLARE_ASN1_FUNCTIONS(OSSL_CMP_ATAVS) +# define stack_st_OSSL_CMP_ATAV stack_st_OSSL_CRMF_ATTRIBUTETYPEANDVALUE +# define sk_OSSL_CMP_ATAV_num sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_num +# define sk_OSSL_CMP_ATAV_value sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_value +# define sk_OSSL_CMP_ATAV_push sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_push +# define sk_OSSL_CMP_ATAV_pop_free sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_pop_free + typedef struct ossl_cmp_revrepcontent_st OSSL_CMP_REVREPCONTENT; typedef struct ossl_cmp_pkisi_st OSSL_CMP_PKISI; DECLARE_ASN1_FUNCTIONS(OSSL_CMP_PKISI) @@ -375,21 +416,75 @@ void OSSL_CMP_ITAV_set0(OSSL_CMP_ITAV *itav, ASN1_OBJECT *type, ASN1_TYPE *value); ASN1_OBJECT *OSSL_CMP_ITAV_get0_type(const OSSL_CMP_ITAV *itav); ASN1_TYPE *OSSL_CMP_ITAV_get0_value(const OSSL_CMP_ITAV *itav); -int OSSL_CMP_ITAV_push0_stack_item(STACK_OF(OSSL_CMP_ITAV) **itav_sk_p, +int OSSL_CMP_ITAV_push0_stack_item(STACK_OF(OSSL_CMP_ITAV) **sk_p, OSSL_CMP_ITAV *itav); void OSSL_CMP_ITAV_free(OSSL_CMP_ITAV *itav); + +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new0_certProfile(STACK_OF(ASN1_UTF8STRING) + *certProfile); +int OSSL_CMP_ITAV_get0_certProfile(const OSSL_CMP_ITAV *itav, + STACK_OF(ASN1_UTF8STRING) **out); +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new_caCerts(const STACK_OF(X509) *caCerts); +int OSSL_CMP_ITAV_get0_caCerts(const OSSL_CMP_ITAV *itav, STACK_OF(X509) **out); + +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new_rootCaCert(const X509 *rootCaCert); +int OSSL_CMP_ITAV_get0_rootCaCert(const OSSL_CMP_ITAV *itav, X509 **out); +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new_rootCaKeyUpdate(const X509 *newWithNew, + const X509 *newWithOld, + const X509 *oldWithNew); +int OSSL_CMP_ITAV_get0_rootCaKeyUpdate(const OSSL_CMP_ITAV *itav, + X509 **newWithNew, + X509 **newWithOld, + X509 **oldWithNew); + +OSSL_CMP_CRLSTATUS *OSSL_CMP_CRLSTATUS_create(const X509_CRL *crl, + const X509 *cert, int only_DN); +OSSL_CMP_CRLSTATUS *OSSL_CMP_CRLSTATUS_new1(const DIST_POINT_NAME *dpn, + const GENERAL_NAMES *issuer, + const ASN1_TIME *thisUpdate); +int OSSL_CMP_CRLSTATUS_get0(const OSSL_CMP_CRLSTATUS *crlstatus, + DIST_POINT_NAME **dpn, GENERAL_NAMES **issuer, + ASN1_TIME **thisUpdate); +void OSSL_CMP_CRLSTATUS_free(OSSL_CMP_CRLSTATUS *crlstatus); +OSSL_CMP_ITAV +*OSSL_CMP_ITAV_new0_crlStatusList(STACK_OF(OSSL_CMP_CRLSTATUS) *crlStatusList); +int OSSL_CMP_ITAV_get0_crlStatusList(const OSSL_CMP_ITAV *itav, + STACK_OF(OSSL_CMP_CRLSTATUS) **out); +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new_crls(const X509_CRL *crls); +int OSSL_CMP_ITAV_get0_crls(const OSSL_CMP_ITAV *it, STACK_OF(X509_CRL) **out); +OSSL_CMP_ITAV +*OSSL_CMP_ITAV_new0_certReqTemplate(OSSL_CRMF_CERTTEMPLATE *certTemplate, + OSSL_CMP_ATAVS *keySpec); +int OSSL_CMP_ITAV_get1_certReqTemplate(const OSSL_CMP_ITAV *itav, + OSSL_CRMF_CERTTEMPLATE **certTemplate, + OSSL_CMP_ATAVS **keySpec); + +OSSL_CMP_ATAV *OSSL_CMP_ATAV_create(ASN1_OBJECT *type, ASN1_TYPE *value); +void OSSL_CMP_ATAV_set0(OSSL_CMP_ATAV *itav, ASN1_OBJECT *type, + ASN1_TYPE *value); +ASN1_OBJECT *OSSL_CMP_ATAV_get0_type(const OSSL_CMP_ATAV *itav); +ASN1_TYPE *OSSL_CMP_ATAV_get0_value(const OSSL_CMP_ATAV *itav); +OSSL_CMP_ATAV *OSSL_CMP_ATAV_new_algId(const X509_ALGOR *alg); +X509_ALGOR *OSSL_CMP_ATAV_get0_algId(const OSSL_CMP_ATAV *atav); +OSSL_CMP_ATAV *OSSL_CMP_ATAV_new_rsaKeyLen(int len); +int OSSL_CMP_ATAV_get_rsaKeyLen(const OSSL_CMP_ATAV *atav); +int OSSL_CMP_ATAV_push1(OSSL_CMP_ATAVS **sk_p, const OSSL_CMP_ATAV *atav); + void OSSL_CMP_MSG_free(OSSL_CMP_MSG *msg); /* from cmp_ctx.c */ OSSL_CMP_CTX *OSSL_CMP_CTX_new(OSSL_LIB_CTX *libctx, const char *propq); void OSSL_CMP_CTX_free(OSSL_CMP_CTX *ctx); int OSSL_CMP_CTX_reinit(OSSL_CMP_CTX *ctx); +OSSL_LIB_CTX *OSSL_CMP_CTX_get0_libctx(const OSSL_CMP_CTX *ctx); +const char *OSSL_CMP_CTX_get0_propq(const OSSL_CMP_CTX *ctx); /* CMP general options: */ # define OSSL_CMP_OPT_LOG_VERBOSITY 0 /* CMP transfer options: */ -# define OSSL_CMP_OPT_KEEP_ALIVE 10 -# define OSSL_CMP_OPT_MSG_TIMEOUT 11 +# define OSSL_CMP_OPT_KEEP_ALIVE 10 +# define OSSL_CMP_OPT_MSG_TIMEOUT 11 # define OSSL_CMP_OPT_TOTAL_TIMEOUT 12 +# define OSSL_CMP_OPT_USE_TLS 13 /* CMP request options: */ # define OSSL_CMP_OPT_VALIDITY_DAYS 20 # define OSSL_CMP_OPT_SUBJECTALTNAME_NODEFAULT 21 @@ -407,6 +502,7 @@ int OSSL_CMP_CTX_reinit(OSSL_CMP_CTX *ctx); # define OSSL_CMP_OPT_DIGEST_ALGNID 34 # define OSSL_CMP_OPT_IGNORE_KEYUSAGE 35 # define OSSL_CMP_OPT_PERMIT_TA_IN_EXTRACERTS_FOR_IR 36 +# define OSSL_CMP_OPT_NO_CACHE_EXTRACERTS 37 int OSSL_CMP_CTX_set_option(OSSL_CMP_CTX *ctx, int opt, int val); int OSSL_CMP_CTX_get_option(const OSSL_CMP_CTX *ctx, int opt); /* CMP-specific callback for logging and outputting the error queue: */ @@ -420,9 +516,11 @@ int OSSL_CMP_CTX_set1_server(OSSL_CMP_CTX *ctx, const char *address); int OSSL_CMP_CTX_set_serverPort(OSSL_CMP_CTX *ctx, int port); int OSSL_CMP_CTX_set1_proxy(OSSL_CMP_CTX *ctx, const char *name); int OSSL_CMP_CTX_set1_no_proxy(OSSL_CMP_CTX *ctx, const char *names); +# ifndef OPENSSL_NO_HTTP int OSSL_CMP_CTX_set_http_cb(OSSL_CMP_CTX *ctx, OSSL_HTTP_bio_cb_t cb); int OSSL_CMP_CTX_set_http_cb_arg(OSSL_CMP_CTX *ctx, void *arg); void *OSSL_CMP_CTX_get_http_cb_arg(const OSSL_CMP_CTX *ctx); +# endif typedef OSSL_CMP_MSG *(*OSSL_CMP_transfer_cb_t) (OSSL_CMP_CTX *ctx, const OSSL_CMP_MSG *req); int OSSL_CMP_CTX_set_transfer_cb(OSSL_CMP_CTX *ctx, OSSL_CMP_transfer_cb_t cb); @@ -432,7 +530,9 @@ void *OSSL_CMP_CTX_get_transfer_cb_arg(const OSSL_CMP_CTX *ctx); int OSSL_CMP_CTX_set1_srvCert(OSSL_CMP_CTX *ctx, X509 *cert); int OSSL_CMP_CTX_set1_expected_sender(OSSL_CMP_CTX *ctx, const X509_NAME *name); int OSSL_CMP_CTX_set0_trustedStore(OSSL_CMP_CTX *ctx, X509_STORE *store); +# define OSSL_CMP_CTX_set0_trusted OSSL_CMP_CTX_set0_trustedStore X509_STORE *OSSL_CMP_CTX_get0_trustedStore(const OSSL_CMP_CTX *ctx); +# define OSSL_CMP_CTX_get0_trusted OSSL_CMP_CTX_get0_trustedStore int OSSL_CMP_CTX_set1_untrusted(OSSL_CMP_CTX *ctx, STACK_OF(X509) *certs); STACK_OF(X509) *OSSL_CMP_CTX_get0_untrusted(const OSSL_CMP_CTX *ctx); /* client authentication: */ @@ -448,12 +548,15 @@ int OSSL_CMP_CTX_set1_secretValue(OSSL_CMP_CTX *ctx, int OSSL_CMP_CTX_set1_recipient(OSSL_CMP_CTX *ctx, const X509_NAME *name); int OSSL_CMP_CTX_push0_geninfo_ITAV(OSSL_CMP_CTX *ctx, OSSL_CMP_ITAV *itav); int OSSL_CMP_CTX_reset_geninfo_ITAVs(OSSL_CMP_CTX *ctx); +STACK_OF(OSSL_CMP_ITAV) + *OSSL_CMP_CTX_get0_geninfo_ITAVs(const OSSL_CMP_CTX *ctx); int OSSL_CMP_CTX_set1_extraCertsOut(OSSL_CMP_CTX *ctx, STACK_OF(X509) *extraCertsOut); /* certificate template: */ int OSSL_CMP_CTX_set0_newPkey(OSSL_CMP_CTX *ctx, int priv, EVP_PKEY *pkey); EVP_PKEY *OSSL_CMP_CTX_get0_newPkey(const OSSL_CMP_CTX *ctx, int priv); int OSSL_CMP_CTX_set1_issuer(OSSL_CMP_CTX *ctx, const X509_NAME *name); +int OSSL_CMP_CTX_set1_serialNumber(OSSL_CMP_CTX *ctx, const ASN1_INTEGER *sn); int OSSL_CMP_CTX_set1_subjectName(OSSL_CMP_CTX *ctx, const X509_NAME *name); int OSSL_CMP_CTX_push1_subjectAltName(OSSL_CMP_CTX *ctx, const GENERAL_NAME *name); @@ -477,6 +580,7 @@ int OSSL_CMP_CTX_get_status(const OSSL_CMP_CTX *ctx); OSSL_CMP_PKIFREETEXT *OSSL_CMP_CTX_get0_statusString(const OSSL_CMP_CTX *ctx); int OSSL_CMP_CTX_get_failInfoCode(const OSSL_CMP_CTX *ctx); # define OSSL_CMP_PKISI_BUFLEN 1024 +X509 *OSSL_CMP_CTX_get0_validatedSrvCert(const OSSL_CMP_CTX *ctx); X509 *OSSL_CMP_CTX_get0_newCert(const OSSL_CMP_CTX *ctx); STACK_OF(X509) *OSSL_CMP_CTX_get1_newChain(const OSSL_CMP_CTX *ctx); STACK_OF(X509) *OSSL_CMP_CTX_get1_caPubs(const OSSL_CMP_CTX *ctx); @@ -498,10 +602,13 @@ OSSL_CMP_STATUSINFO_new(int status, int fail_info, const char *text); ASN1_OCTET_STRING *OSSL_CMP_HDR_get0_transactionID(const OSSL_CMP_PKIHEADER *hdr); ASN1_OCTET_STRING *OSSL_CMP_HDR_get0_recipNonce(const OSSL_CMP_PKIHEADER *hdr); +STACK_OF(OSSL_CMP_ITAV) + *OSSL_CMP_HDR_get0_geninfo_ITAVs(const OSSL_CMP_PKIHEADER *hdr); /* from cmp_msg.c */ OSSL_CMP_PKIHEADER *OSSL_CMP_MSG_get0_header(const OSSL_CMP_MSG *msg); int OSSL_CMP_MSG_get_bodytype(const OSSL_CMP_MSG *msg); +X509_PUBKEY *OSSL_CMP_MSG_get0_certreq_publickey(const OSSL_CMP_MSG *msg); int OSSL_CMP_MSG_update_transactionID(OSSL_CMP_CTX *ctx, OSSL_CMP_MSG *msg); int OSSL_CMP_MSG_update_recipNonce(OSSL_CMP_CTX *ctx, OSSL_CMP_MSG *msg); OSSL_CRMF_MSG *OSSL_CMP_CTX_setup_CRM(OSSL_CMP_CTX *ctx, int for_KUR, int rid); @@ -517,8 +624,10 @@ int OSSL_CMP_validate_cert_path(const OSSL_CMP_CTX *ctx, X509_STORE *trusted_store, X509 *cert); /* from cmp_http.c */ +# ifndef OPENSSL_NO_HTTP OSSL_CMP_MSG *OSSL_CMP_MSG_http_perform(OSSL_CMP_CTX *ctx, const OSSL_CMP_MSG *req); +# endif /* from cmp_server.c */ typedef struct ossl_cmp_srv_ctx_st OSSL_CMP_SRV_CTX; @@ -561,6 +670,13 @@ int OSSL_CMP_SRV_CTX_init(OSSL_CMP_SRV_CTX *srv_ctx, void *custom_ctx, OSSL_CMP_SRV_error_cb_t process_error, OSSL_CMP_SRV_certConf_cb_t process_certConf, OSSL_CMP_SRV_pollReq_cb_t process_pollReq); +typedef int (*OSSL_CMP_SRV_delayed_delivery_cb_t)(OSSL_CMP_SRV_CTX *srv_ctx, + const OSSL_CMP_MSG *req); +typedef int (*OSSL_CMP_SRV_clean_transaction_cb_t)(OSSL_CMP_SRV_CTX *srv_ctx, + const ASN1_OCTET_STRING *id); +int OSSL_CMP_SRV_CTX_init_trans(OSSL_CMP_SRV_CTX *srv_ctx, + OSSL_CMP_SRV_delayed_delivery_cb_t delay, + OSSL_CMP_SRV_clean_transaction_cb_t clean); OSSL_CMP_CTX *OSSL_CMP_SRV_CTX_get0_cmp_ctx(const OSSL_CMP_SRV_CTX *srv_ctx); void *OSSL_CMP_SRV_CTX_get0_custom_ctx(const OSSL_CMP_SRV_CTX *srv_ctx); int OSSL_CMP_SRV_CTX_set_send_unprotected_errors(OSSL_CMP_SRV_CTX *srv_ctx, @@ -577,6 +693,8 @@ X509 *OSSL_CMP_exec_certreq(OSSL_CMP_CTX *ctx, int req_type, # define OSSL_CMP_CR 2 # define OSSL_CMP_P10CR 4 # define OSSL_CMP_KUR 7 +# define OSSL_CMP_GENM 21 +# define OSSL_CMP_ERROR 23 # define OSSL_CMP_exec_IR_ses(ctx) \ OSSL_CMP_exec_certreq(ctx, OSSL_CMP_IR, NULL) # define OSSL_CMP_exec_CR_ses(ctx) \ @@ -590,6 +708,18 @@ int OSSL_CMP_try_certreq(OSSL_CMP_CTX *ctx, int req_type, int OSSL_CMP_exec_RR_ses(OSSL_CMP_CTX *ctx); STACK_OF(OSSL_CMP_ITAV) *OSSL_CMP_exec_GENM_ses(OSSL_CMP_CTX *ctx); +/* from cmp_genm.c */ +int OSSL_CMP_get1_caCerts(OSSL_CMP_CTX *ctx, STACK_OF(X509) **out); +int OSSL_CMP_get1_rootCaKeyUpdate(OSSL_CMP_CTX *ctx, + const X509 *oldWithOld, X509 **newWithNew, + X509 **newWithOld, X509 **oldWithNew); +int OSSL_CMP_get1_crlUpdate(OSSL_CMP_CTX *ctx, const X509 *crlcert, + const X509_CRL *last_crl, + X509_CRL **crl); +int OSSL_CMP_get1_certReqTemplate(OSSL_CMP_CTX *ctx, + OSSL_CRMF_CERTTEMPLATE **certTemplate, + OSSL_CMP_ATAVS **keySpec); + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/include/openssl/cms.h b/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/include/openssl/cms.h index 3b453e6a2187a2..63afab563557b0 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/include/openssl/cms.h +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/include/openssl/cms.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/cms.h.in * - * Copyright 2008-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2008-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -31,8 +31,10 @@ extern "C" { # endif +typedef struct CMS_EnvelopedData_st CMS_EnvelopedData; typedef struct CMS_ContentInfo_st CMS_ContentInfo; typedef struct CMS_SignerInfo_st CMS_SignerInfo; +typedef struct CMS_SignedData_st CMS_SignedData; typedef struct CMS_CertificateChoices CMS_CertificateChoices; typedef struct CMS_RevocationInfoChoice_st CMS_RevocationInfoChoice; typedef struct CMS_RecipientInfo_st CMS_RecipientInfo; @@ -147,10 +149,14 @@ SKM_DEFINE_STACK_OF_INTERNAL(CMS_RevocationInfoChoice, CMS_RevocationInfoChoice, #define sk_CMS_RevocationInfoChoice_set_cmp_func(sk, cmp) ((sk_CMS_RevocationInfoChoice_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_CMS_RevocationInfoChoice_sk_type(sk), ossl_check_CMS_RevocationInfoChoice_compfunc_type(cmp))) +DECLARE_ASN1_ITEM(CMS_EnvelopedData) +DECLARE_ASN1_ALLOC_FUNCTIONS(CMS_SignedData) DECLARE_ASN1_FUNCTIONS(CMS_ContentInfo) DECLARE_ASN1_FUNCTIONS(CMS_ReceiptRequest) DECLARE_ASN1_PRINT_FUNCTION(CMS_ContentInfo) +DECLARE_ASN1_DUP_FUNCTION(CMS_EnvelopedData) + CMS_ContentInfo *CMS_ContentInfo_new_ex(OSSL_LIB_CTX *libctx, const char *propq); # define CMS_SIGNERINFO_ISSUER_SERIAL 0 @@ -190,6 +196,7 @@ CMS_ContentInfo *CMS_ContentInfo_new_ex(OSSL_LIB_CTX *libctx, const char *propq) # define CMS_ASCIICRLF 0x80000 # define CMS_CADES 0x100000 # define CMS_USE_ORIGINATOR_KEYID 0x200000 +# define CMS_NO_SIGNING_TIME 0x400000 const ASN1_OBJECT *CMS_get0_type(const CMS_ContentInfo *cms); @@ -217,13 +224,16 @@ int SMIME_write_CMS(BIO *bio, CMS_ContentInfo *cms, BIO *data, int flags); int CMS_final(CMS_ContentInfo *cms, BIO *data, BIO *dcont, unsigned int flags); +int CMS_final_digest(CMS_ContentInfo *cms, + const unsigned char *md, unsigned int mdlen, BIO *dcont, + unsigned int flags); CMS_ContentInfo *CMS_sign(X509 *signcert, EVP_PKEY *pkey, STACK_OF(X509) *certs, BIO *data, unsigned int flags); CMS_ContentInfo *CMS_sign_ex(X509 *signcert, EVP_PKEY *pkey, STACK_OF(X509) *certs, BIO *data, - unsigned int flags, OSSL_LIB_CTX *ctx, + unsigned int flags, OSSL_LIB_CTX *libctx, const char *propq); CMS_ContentInfo *CMS_sign_receipt(CMS_SignerInfo *si, @@ -233,27 +243,26 @@ CMS_ContentInfo *CMS_sign_receipt(CMS_SignerInfo *si, int CMS_data(CMS_ContentInfo *cms, BIO *out, unsigned int flags); CMS_ContentInfo *CMS_data_create(BIO *in, unsigned int flags); CMS_ContentInfo *CMS_data_create_ex(BIO *in, unsigned int flags, - OSSL_LIB_CTX *ctx, const char *propq); + OSSL_LIB_CTX *libctx, const char *propq); int CMS_digest_verify(CMS_ContentInfo *cms, BIO *dcont, BIO *out, unsigned int flags); CMS_ContentInfo *CMS_digest_create(BIO *in, const EVP_MD *md, unsigned int flags); CMS_ContentInfo *CMS_digest_create_ex(BIO *in, const EVP_MD *md, - unsigned int flags, OSSL_LIB_CTX *ctx, + unsigned int flags, OSSL_LIB_CTX *libctx, const char *propq); int CMS_EncryptedData_decrypt(CMS_ContentInfo *cms, const unsigned char *key, size_t keylen, BIO *dcont, BIO *out, unsigned int flags); - CMS_ContentInfo *CMS_EncryptedData_encrypt(BIO *in, const EVP_CIPHER *cipher, const unsigned char *key, size_t keylen, unsigned int flags); CMS_ContentInfo *CMS_EncryptedData_encrypt_ex(BIO *in, const EVP_CIPHER *cipher, const unsigned char *key, size_t keylen, unsigned int flags, - OSSL_LIB_CTX *ctx, + OSSL_LIB_CTX *libctx, const char *propq); int CMS_EncryptedData_set1_key(CMS_ContentInfo *cms, const EVP_CIPHER *ciph, @@ -272,7 +281,7 @@ CMS_ContentInfo *CMS_encrypt(STACK_OF(X509) *certs, BIO *in, const EVP_CIPHER *cipher, unsigned int flags); CMS_ContentInfo *CMS_encrypt_ex(STACK_OF(X509) *certs, BIO *in, const EVP_CIPHER *cipher, unsigned int flags, - OSSL_LIB_CTX *ctx, const char *propq); + OSSL_LIB_CTX *libctx, const char *propq); int CMS_decrypt(CMS_ContentInfo *cms, EVP_PKEY *pkey, X509 *cert, BIO *dcont, BIO *out, unsigned int flags); @@ -291,12 +300,16 @@ int CMS_RecipientInfo_type(CMS_RecipientInfo *ri); EVP_PKEY_CTX *CMS_RecipientInfo_get0_pkey_ctx(CMS_RecipientInfo *ri); CMS_ContentInfo *CMS_AuthEnvelopedData_create(const EVP_CIPHER *cipher); CMS_ContentInfo * -CMS_AuthEnvelopedData_create_ex(const EVP_CIPHER *cipher, OSSL_LIB_CTX *ctx, +CMS_AuthEnvelopedData_create_ex(const EVP_CIPHER *cipher, OSSL_LIB_CTX *libctx, const char *propq); CMS_ContentInfo *CMS_EnvelopedData_create(const EVP_CIPHER *cipher); CMS_ContentInfo *CMS_EnvelopedData_create_ex(const EVP_CIPHER *cipher, - OSSL_LIB_CTX *ctx, + OSSL_LIB_CTX *libctx, const char *propq); +BIO *CMS_EnvelopedData_decrypt(CMS_EnvelopedData *env, BIO *detached_data, + EVP_PKEY *pkey, X509 *cert, + ASN1_OCTET_STRING *secret, unsigned int flags, + OSSL_LIB_CTX *libctx, const char *propq); CMS_RecipientInfo *CMS_add1_recipient_cert(CMS_ContentInfo *cms, X509 *recip, unsigned int flags); @@ -385,6 +398,11 @@ ASN1_OCTET_STRING *CMS_SignerInfo_get0_signature(CMS_SignerInfo *si); int CMS_SignerInfo_sign(CMS_SignerInfo *si); int CMS_SignerInfo_verify(CMS_SignerInfo *si); int CMS_SignerInfo_verify_content(CMS_SignerInfo *si, BIO *chain); +BIO *CMS_SignedData_verify(CMS_SignedData *sd, BIO *detached_data, + STACK_OF(X509) *scerts, X509_STORE *store, + STACK_OF(X509) *extra, STACK_OF(X509_CRL) *crls, + unsigned int flags, + OSSL_LIB_CTX *libctx, const char *propq); int CMS_add_smimecap(CMS_SignerInfo *si, STACK_OF(X509_ALGOR) *algs); int CMS_add_simple_smimecap(STACK_OF(X509_ALGOR) **algs, @@ -441,7 +459,7 @@ CMS_ReceiptRequest *CMS_ReceiptRequest_create0_ex( unsigned char *id, int idlen, int allorfirst, STACK_OF(GENERAL_NAMES) *receiptList, STACK_OF(GENERAL_NAMES) *receiptsTo, - OSSL_LIB_CTX *ctx); + OSSL_LIB_CTX *libctx); int CMS_add1_ReceiptRequest(CMS_SignerInfo *si, CMS_ReceiptRequest *rr); void CMS_ReceiptRequest_get0_values(CMS_ReceiptRequest *rr, diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/include/openssl/comp.h b/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/include/openssl/comp.h new file mode 100644 index 00000000000000..90e39511fe8d28 --- /dev/null +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/include/openssl/comp.h @@ -0,0 +1,98 @@ +/* + * Copyright 2015-2024 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + + +#ifndef OPENSSL_COMP_H +# define OPENSSL_COMP_H +# pragma once + +# include +# ifndef OPENSSL_NO_DEPRECATED_3_0 +# define HEADER_COMP_H +# endif + +# include + +# include +# include +# ifdef __cplusplus +extern "C" { +# endif + + + +# ifndef OPENSSL_NO_COMP + +COMP_CTX *COMP_CTX_new(COMP_METHOD *meth); +const COMP_METHOD *COMP_CTX_get_method(const COMP_CTX *ctx); +int COMP_CTX_get_type(const COMP_CTX* comp); +int COMP_get_type(const COMP_METHOD *meth); +const char *COMP_get_name(const COMP_METHOD *meth); +void COMP_CTX_free(COMP_CTX *ctx); + +int COMP_compress_block(COMP_CTX *ctx, unsigned char *out, int olen, + unsigned char *in, int ilen); +int COMP_expand_block(COMP_CTX *ctx, unsigned char *out, int olen, + unsigned char *in, int ilen); + +COMP_METHOD *COMP_zlib(void); +COMP_METHOD *COMP_zlib_oneshot(void); +COMP_METHOD *COMP_brotli(void); +COMP_METHOD *COMP_brotli_oneshot(void); +COMP_METHOD *COMP_zstd(void); +COMP_METHOD *COMP_zstd_oneshot(void); + +# ifndef OPENSSL_NO_DEPRECATED_1_1_0 +# define COMP_zlib_cleanup() while(0) continue +# endif + +# ifdef OPENSSL_BIO_H +const BIO_METHOD *BIO_f_zlib(void); +const BIO_METHOD *BIO_f_brotli(void); +const BIO_METHOD *BIO_f_zstd(void); +# endif + +# endif + +typedef struct ssl_comp_st SSL_COMP; + +SKM_DEFINE_STACK_OF_INTERNAL(SSL_COMP, SSL_COMP, SSL_COMP) +#define sk_SSL_COMP_num(sk) OPENSSL_sk_num(ossl_check_const_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_value(sk, idx) ((SSL_COMP *)OPENSSL_sk_value(ossl_check_const_SSL_COMP_sk_type(sk), (idx))) +#define sk_SSL_COMP_new(cmp) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new(ossl_check_SSL_COMP_compfunc_type(cmp))) +#define sk_SSL_COMP_new_null() ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new_null()) +#define sk_SSL_COMP_new_reserve(cmp, n) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new_reserve(ossl_check_SSL_COMP_compfunc_type(cmp), (n))) +#define sk_SSL_COMP_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_SSL_COMP_sk_type(sk), (n)) +#define sk_SSL_COMP_free(sk) OPENSSL_sk_free(ossl_check_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_zero(sk) OPENSSL_sk_zero(ossl_check_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_delete(sk, i) ((SSL_COMP *)OPENSSL_sk_delete(ossl_check_SSL_COMP_sk_type(sk), (i))) +#define sk_SSL_COMP_delete_ptr(sk, ptr) ((SSL_COMP *)OPENSSL_sk_delete_ptr(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr))) +#define sk_SSL_COMP_push(sk, ptr) OPENSSL_sk_push(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) +#define sk_SSL_COMP_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) +#define sk_SSL_COMP_pop(sk) ((SSL_COMP *)OPENSSL_sk_pop(ossl_check_SSL_COMP_sk_type(sk))) +#define sk_SSL_COMP_shift(sk) ((SSL_COMP *)OPENSSL_sk_shift(ossl_check_SSL_COMP_sk_type(sk))) +#define sk_SSL_COMP_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_SSL_COMP_sk_type(sk),ossl_check_SSL_COMP_freefunc_type(freefunc)) +#define sk_SSL_COMP_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr), (idx)) +#define sk_SSL_COMP_set(sk, idx, ptr) ((SSL_COMP *)OPENSSL_sk_set(ossl_check_SSL_COMP_sk_type(sk), (idx), ossl_check_SSL_COMP_type(ptr))) +#define sk_SSL_COMP_find(sk, ptr) OPENSSL_sk_find(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) +#define sk_SSL_COMP_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) +#define sk_SSL_COMP_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr), pnum) +#define sk_SSL_COMP_sort(sk) OPENSSL_sk_sort(ossl_check_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_dup(sk) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_dup(ossl_check_const_SSL_COMP_sk_type(sk))) +#define sk_SSL_COMP_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_deep_copy(ossl_check_const_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_copyfunc_type(copyfunc), ossl_check_SSL_COMP_freefunc_type(freefunc))) +#define sk_SSL_COMP_set_cmp_func(sk, cmp) ((sk_SSL_COMP_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_compfunc_type(cmp))) + + + +# ifdef __cplusplus +} +# endif +#endif diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/include/openssl/conf.h b/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/include/openssl/conf.h index 44989929f6c84a..38576290bf641b 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/include/openssl/conf.h +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/include/openssl/conf.h @@ -27,6 +27,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -65,7 +68,7 @@ SKM_DEFINE_STACK_OF_INTERNAL(CONF_VALUE, CONF_VALUE, CONF_VALUE) #define sk_CONF_VALUE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(CONF_VALUE) *)OPENSSL_sk_deep_copy(ossl_check_const_CONF_VALUE_sk_type(sk), ossl_check_CONF_VALUE_copyfunc_type(copyfunc), ossl_check_CONF_VALUE_freefunc_type(freefunc))) #define sk_CONF_VALUE_set_cmp_func(sk, cmp) ((sk_CONF_VALUE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_CONF_VALUE_sk_type(sk), ossl_check_CONF_VALUE_compfunc_type(cmp))) DEFINE_LHASH_OF_INTERNAL(CONF_VALUE); -#define lh_CONF_VALUE_new(hfn, cmp) ((LHASH_OF(CONF_VALUE) *)OPENSSL_LH_new(ossl_check_CONF_VALUE_lh_hashfunc_type(hfn), ossl_check_CONF_VALUE_lh_compfunc_type(cmp))) +#define lh_CONF_VALUE_new(hfn, cmp) ((LHASH_OF(CONF_VALUE) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new(ossl_check_CONF_VALUE_lh_hashfunc_type(hfn), ossl_check_CONF_VALUE_lh_compfunc_type(cmp)), lh_CONF_VALUE_hash_thunk, lh_CONF_VALUE_comp_thunk, lh_CONF_VALUE_doall_thunk, lh_CONF_VALUE_doall_arg_thunk)) #define lh_CONF_VALUE_free(lh) OPENSSL_LH_free(ossl_check_CONF_VALUE_lh_type(lh)) #define lh_CONF_VALUE_flush(lh) OPENSSL_LH_flush(ossl_check_CONF_VALUE_lh_type(lh)) #define lh_CONF_VALUE_insert(lh, ptr) ((CONF_VALUE *)OPENSSL_LH_insert(ossl_check_CONF_VALUE_lh_type(lh), ossl_check_CONF_VALUE_lh_plain_type(ptr))) diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/include/openssl/configuration.h b/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/include/openssl/configuration.h index 0834be2fa3df77..b0ae5de064cedb 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/include/openssl/configuration.h +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/include/openssl/configuration.h @@ -30,7 +30,7 @@ extern "C" { # ifndef OPENSSL_SYS_MACOSX # define OPENSSL_SYS_MACOSX 1 # endif -# define OPENSSL_CONFIGURED_API 30000 +# define OPENSSL_CONFIGURED_API 30500 # ifndef OPENSSL_RAND_SEED_OS # define OPENSSL_RAND_SEED_OS # endif @@ -43,6 +43,12 @@ extern "C" { # ifndef OPENSSL_NO_ASAN # define OPENSSL_NO_ASAN # endif +# ifndef OPENSSL_NO_BROTLI +# define OPENSSL_NO_BROTLI +# endif +# ifndef OPENSSL_NO_BROTLI_DYNAMIC +# define OPENSSL_NO_BROTLI_DYNAMIC +# endif # ifndef OPENSSL_NO_COMP # define OPENSSL_NO_COMP # endif @@ -52,6 +58,9 @@ extern "C" { # ifndef OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE # define OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE # endif +# ifndef OPENSSL_NO_DEMOS +# define OPENSSL_NO_DEMOS +# endif # ifndef OPENSSL_NO_DEVCRYPTOENG # define OPENSSL_NO_DEVCRYPTOENG # endif @@ -64,12 +73,24 @@ extern "C" { # ifndef OPENSSL_NO_EXTERNAL_TESTS # define OPENSSL_NO_EXTERNAL_TESTS # endif +# ifndef OPENSSL_NO_FIPS_JITTER +# define OPENSSL_NO_FIPS_JITTER +# endif # ifndef OPENSSL_NO_FUZZ_AFL # define OPENSSL_NO_FUZZ_AFL # endif # ifndef OPENSSL_NO_FUZZ_LIBFUZZER # define OPENSSL_NO_FUZZ_LIBFUZZER # endif +# ifndef OPENSSL_NO_H3DEMO +# define OPENSSL_NO_H3DEMO +# endif +# ifndef OPENSSL_NO_HQINTEROP +# define OPENSSL_NO_HQINTEROP +# endif +# ifndef OPENSSL_NO_JITTER +# define OPENSSL_NO_JITTER +# endif # ifndef OPENSSL_NO_KTLS # define OPENSSL_NO_KTLS # endif @@ -82,6 +103,9 @@ extern "C" { # ifndef OPENSSL_NO_MSAN # define OPENSSL_NO_MSAN # endif +# ifndef OPENSSL_NO_PIE +# define OPENSSL_NO_PIE +# endif # ifndef OPENSSL_NO_RC5 # define OPENSSL_NO_RC5 # endif @@ -94,6 +118,12 @@ extern "C" { # ifndef OPENSSL_NO_SSL3_METHOD # define OPENSSL_NO_SSL3_METHOD # endif +# ifndef OPENSSL_NO_SSLKEYLOG +# define OPENSSL_NO_SSLKEYLOG +# endif +# ifndef OPENSSL_NO_TFO +# define OPENSSL_NO_TFO +# endif # ifndef OPENSSL_NO_TRACE # define OPENSSL_NO_TRACE # endif @@ -109,6 +139,21 @@ extern "C" { # ifndef OPENSSL_NO_WEAK_SSL_CIPHERS # define OPENSSL_NO_WEAK_SSL_CIPHERS # endif +# ifndef OPENSSL_NO_WINSTORE +# define OPENSSL_NO_WINSTORE +# endif +# ifndef OPENSSL_NO_ZLIB +# define OPENSSL_NO_ZLIB +# endif +# ifndef OPENSSL_NO_ZLIB_DYNAMIC +# define OPENSSL_NO_ZLIB_DYNAMIC +# endif +# ifndef OPENSSL_NO_ZSTD +# define OPENSSL_NO_ZSTD +# endif +# ifndef OPENSSL_NO_ZSTD_DYNAMIC +# define OPENSSL_NO_ZSTD_DYNAMIC +# endif # ifndef OPENSSL_NO_DYNAMIC_ENGINE # define OPENSSL_NO_DYNAMIC_ENGINE # endif @@ -130,6 +175,12 @@ extern "C" { # define RC4_INT unsigned int +# if defined(OPENSSL_NO_COMP) || (defined(OPENSSL_NO_BROTLI) && defined(OPENSSL_NO_ZSTD) && defined(OPENSSL_NO_ZLIB)) +# define OPENSSL_NO_COMP_ALG +# else +# undef OPENSSL_NO_COMP_ALG +# endif + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/include/openssl/core_names.h b/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/include/openssl/core_names.h new file mode 100644 index 00000000000000..e93e79a52bc910 --- /dev/null +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/include/openssl/core_names.h @@ -0,0 +1,575 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from include/openssl/core_names.h.in + * + * Copyright 2019-2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + +#ifndef OPENSSL_CORE_NAMES_H +# define OPENSSL_CORE_NAMES_H +# pragma once + +# ifdef __cplusplus +extern "C" { +# endif + +/* OSSL_CIPHER_PARAM_CTS_MODE Values */ +# define OSSL_CIPHER_CTS_MODE_CS1 "CS1" +# define OSSL_CIPHER_CTS_MODE_CS2 "CS2" +# define OSSL_CIPHER_CTS_MODE_CS3 "CS3" + +/* Known CIPHER names (not a complete list) */ +# define OSSL_CIPHER_NAME_AES_128_GCM_SIV "AES-128-GCM-SIV" +# define OSSL_CIPHER_NAME_AES_192_GCM_SIV "AES-192-GCM-SIV" +# define OSSL_CIPHER_NAME_AES_256_GCM_SIV "AES-256-GCM-SIV" + +/* Known DIGEST names (not a complete list) */ +# define OSSL_DIGEST_NAME_MD5 "MD5" +# define OSSL_DIGEST_NAME_MD5_SHA1 "MD5-SHA1" +# define OSSL_DIGEST_NAME_SHA1 "SHA1" +# define OSSL_DIGEST_NAME_SHA2_224 "SHA2-224" +# define OSSL_DIGEST_NAME_SHA2_256 "SHA2-256" +# define OSSL_DIGEST_NAME_SHA2_256_192 "SHA2-256/192" +# define OSSL_DIGEST_NAME_SHA2_384 "SHA2-384" +# define OSSL_DIGEST_NAME_SHA2_512 "SHA2-512" +# define OSSL_DIGEST_NAME_SHA2_512_224 "SHA2-512/224" +# define OSSL_DIGEST_NAME_SHA2_512_256 "SHA2-512/256" +# define OSSL_DIGEST_NAME_MD2 "MD2" +# define OSSL_DIGEST_NAME_MD4 "MD4" +# define OSSL_DIGEST_NAME_MDC2 "MDC2" +# define OSSL_DIGEST_NAME_RIPEMD160 "RIPEMD160" +# define OSSL_DIGEST_NAME_SHA3_224 "SHA3-224" +# define OSSL_DIGEST_NAME_SHA3_256 "SHA3-256" +# define OSSL_DIGEST_NAME_SHA3_384 "SHA3-384" +# define OSSL_DIGEST_NAME_SHA3_512 "SHA3-512" +# define OSSL_DIGEST_NAME_KECCAK_KMAC128 "KECCAK-KMAC-128" +# define OSSL_DIGEST_NAME_KECCAK_KMAC256 "KECCAK-KMAC-256" +# define OSSL_DIGEST_NAME_SM3 "SM3" + +/* Known MAC names */ +# define OSSL_MAC_NAME_BLAKE2BMAC "BLAKE2BMAC" +# define OSSL_MAC_NAME_BLAKE2SMAC "BLAKE2SMAC" +# define OSSL_MAC_NAME_CMAC "CMAC" +# define OSSL_MAC_NAME_GMAC "GMAC" +# define OSSL_MAC_NAME_HMAC "HMAC" +# define OSSL_MAC_NAME_KMAC128 "KMAC128" +# define OSSL_MAC_NAME_KMAC256 "KMAC256" +# define OSSL_MAC_NAME_POLY1305 "POLY1305" +# define OSSL_MAC_NAME_SIPHASH "SIPHASH" + +/* Known KDF names */ +# define OSSL_KDF_NAME_HKDF "HKDF" +# define OSSL_KDF_NAME_TLS1_3_KDF "TLS13-KDF" +# define OSSL_KDF_NAME_PBKDF1 "PBKDF1" +# define OSSL_KDF_NAME_PBKDF2 "PBKDF2" +# define OSSL_KDF_NAME_SCRYPT "SCRYPT" +# define OSSL_KDF_NAME_SSHKDF "SSHKDF" +# define OSSL_KDF_NAME_SSKDF "SSKDF" +# define OSSL_KDF_NAME_TLS1_PRF "TLS1-PRF" +# define OSSL_KDF_NAME_X942KDF_ASN1 "X942KDF-ASN1" +# define OSSL_KDF_NAME_X942KDF_CONCAT "X942KDF-CONCAT" +# define OSSL_KDF_NAME_X963KDF "X963KDF" +# define OSSL_KDF_NAME_KBKDF "KBKDF" +# define OSSL_KDF_NAME_KRB5KDF "KRB5KDF" +# define OSSL_KDF_NAME_HMACDRBGKDF "HMAC-DRBG-KDF" + +/* RSA padding modes */ +# define OSSL_PKEY_RSA_PAD_MODE_NONE "none" +# define OSSL_PKEY_RSA_PAD_MODE_PKCSV15 "pkcs1" +# define OSSL_PKEY_RSA_PAD_MODE_OAEP "oaep" +# define OSSL_PKEY_RSA_PAD_MODE_X931 "x931" +# define OSSL_PKEY_RSA_PAD_MODE_PSS "pss" + +/* RSA pss padding salt length */ +# define OSSL_PKEY_RSA_PSS_SALT_LEN_DIGEST "digest" +# define OSSL_PKEY_RSA_PSS_SALT_LEN_MAX "max" +# define OSSL_PKEY_RSA_PSS_SALT_LEN_AUTO "auto" +# define OSSL_PKEY_RSA_PSS_SALT_LEN_AUTO_DIGEST_MAX "auto-digestmax" + +/* OSSL_PKEY_PARAM_EC_ENCODING values */ +# define OSSL_PKEY_EC_ENCODING_EXPLICIT "explicit" +# define OSSL_PKEY_EC_ENCODING_GROUP "named_curve" + +# define OSSL_PKEY_EC_POINT_CONVERSION_FORMAT_UNCOMPRESSED "uncompressed" +# define OSSL_PKEY_EC_POINT_CONVERSION_FORMAT_COMPRESSED "compressed" +# define OSSL_PKEY_EC_POINT_CONVERSION_FORMAT_HYBRID "hybrid" + +# define OSSL_PKEY_EC_GROUP_CHECK_DEFAULT "default" +# define OSSL_PKEY_EC_GROUP_CHECK_NAMED "named" +# define OSSL_PKEY_EC_GROUP_CHECK_NAMED_NIST "named-nist" + +/* PROV_SKEY well known key types */ +# define OSSL_SKEY_TYPE_GENERIC "GENERIC-SECRET" +# define OSSL_SKEY_TYPE_AES "AES" + +/* OSSL_KEM_PARAM_OPERATION values */ +#define OSSL_KEM_PARAM_OPERATION_RSASVE "RSASVE" +#define OSSL_KEM_PARAM_OPERATION_DHKEM "DHKEM" + +/* Provider configuration variables */ +#define OSSL_PKEY_RETAIN_SEED "pkey_retain_seed" + +/* Parameter name definitions - generated by util/perl/OpenSSL/paramnames.pm */ +# define OSSL_ALG_PARAM_ALGORITHM_ID "algorithm-id" +# define OSSL_ALG_PARAM_ALGORITHM_ID_PARAMS "algorithm-id-params" +# define OSSL_ALG_PARAM_CIPHER "cipher" +# define OSSL_ALG_PARAM_DIGEST "digest" +# define OSSL_ALG_PARAM_ENGINE "engine" +# define OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR "fips-indicator" +# define OSSL_ALG_PARAM_MAC "mac" +# define OSSL_ALG_PARAM_PROPERTIES "properties" +# define OSSL_ASYM_CIPHER_PARAM_DIGEST OSSL_PKEY_PARAM_DIGEST +# define OSSL_ASYM_CIPHER_PARAM_ENGINE OSSL_PKEY_PARAM_ENGINE +# define OSSL_ASYM_CIPHER_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_ASYM_CIPHER_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_ASYM_CIPHER_PARAM_FIPS_RSA_PKCS15_PAD_DISABLED OSSL_PROV_PARAM_RSA_PKCS15_PAD_DISABLED +# define OSSL_ASYM_CIPHER_PARAM_IMPLICIT_REJECTION "implicit-rejection" +# define OSSL_ASYM_CIPHER_PARAM_MGF1_DIGEST OSSL_PKEY_PARAM_MGF1_DIGEST +# define OSSL_ASYM_CIPHER_PARAM_MGF1_DIGEST_PROPS OSSL_PKEY_PARAM_MGF1_PROPERTIES +# define OSSL_ASYM_CIPHER_PARAM_OAEP_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_ASYM_CIPHER_PARAM_OAEP_DIGEST_PROPS "digest-props" +# define OSSL_ASYM_CIPHER_PARAM_OAEP_LABEL "oaep-label" +# define OSSL_ASYM_CIPHER_PARAM_PAD_MODE OSSL_PKEY_PARAM_PAD_MODE +# define OSSL_ASYM_CIPHER_PARAM_PROPERTIES OSSL_PKEY_PARAM_PROPERTIES +# define OSSL_ASYM_CIPHER_PARAM_TLS_CLIENT_VERSION "tls-client-version" +# define OSSL_ASYM_CIPHER_PARAM_TLS_NEGOTIATED_VERSION "tls-negotiated-version" +# define OSSL_CAPABILITY_TLS_GROUP_ALG "tls-group-alg" +# define OSSL_CAPABILITY_TLS_GROUP_ID "tls-group-id" +# define OSSL_CAPABILITY_TLS_GROUP_IS_KEM "tls-group-is-kem" +# define OSSL_CAPABILITY_TLS_GROUP_MAX_DTLS "tls-max-dtls" +# define OSSL_CAPABILITY_TLS_GROUP_MAX_TLS "tls-max-tls" +# define OSSL_CAPABILITY_TLS_GROUP_MIN_DTLS "tls-min-dtls" +# define OSSL_CAPABILITY_TLS_GROUP_MIN_TLS "tls-min-tls" +# define OSSL_CAPABILITY_TLS_GROUP_NAME "tls-group-name" +# define OSSL_CAPABILITY_TLS_GROUP_NAME_INTERNAL "tls-group-name-internal" +# define OSSL_CAPABILITY_TLS_GROUP_SECURITY_BITS "tls-group-sec-bits" +# define OSSL_CAPABILITY_TLS_SIGALG_CODE_POINT "tls-sigalg-code-point" +# define OSSL_CAPABILITY_TLS_SIGALG_HASH_NAME "tls-sigalg-hash-name" +# define OSSL_CAPABILITY_TLS_SIGALG_HASH_OID "tls-sigalg-hash-oid" +# define OSSL_CAPABILITY_TLS_SIGALG_IANA_NAME "tls-sigalg-iana-name" +# define OSSL_CAPABILITY_TLS_SIGALG_KEYTYPE "tls-sigalg-keytype" +# define OSSL_CAPABILITY_TLS_SIGALG_KEYTYPE_OID "tls-sigalg-keytype-oid" +# define OSSL_CAPABILITY_TLS_SIGALG_MAX_DTLS "tls-max-dtls" +# define OSSL_CAPABILITY_TLS_SIGALG_MAX_TLS "tls-max-tls" +# define OSSL_CAPABILITY_TLS_SIGALG_MIN_DTLS "tls-min-dtls" +# define OSSL_CAPABILITY_TLS_SIGALG_MIN_TLS "tls-min-tls" +# define OSSL_CAPABILITY_TLS_SIGALG_NAME "tls-sigalg-name" +# define OSSL_CAPABILITY_TLS_SIGALG_OID "tls-sigalg-oid" +# define OSSL_CAPABILITY_TLS_SIGALG_SECURITY_BITS "tls-sigalg-sec-bits" +# define OSSL_CAPABILITY_TLS_SIGALG_SIG_NAME "tls-sigalg-sig-name" +# define OSSL_CAPABILITY_TLS_SIGALG_SIG_OID "tls-sigalg-sig-oid" +# define OSSL_CIPHER_PARAM_AEAD "aead" +# define OSSL_CIPHER_PARAM_AEAD_IVLEN OSSL_CIPHER_PARAM_IVLEN +# define OSSL_CIPHER_PARAM_AEAD_IV_GENERATED "iv-generated" +# define OSSL_CIPHER_PARAM_AEAD_MAC_KEY "mackey" +# define OSSL_CIPHER_PARAM_AEAD_TAG "tag" +# define OSSL_CIPHER_PARAM_AEAD_TAGLEN "taglen" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_AAD "tlsaad" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_AAD_PAD "tlsaadpad" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_GET_IV_GEN "tlsivgen" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_IV_FIXED "tlsivfixed" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_SET_IV_INV "tlsivinv" +# define OSSL_CIPHER_PARAM_ALGORITHM_ID OSSL_ALG_PARAM_ALGORITHM_ID +# define OSSL_CIPHER_PARAM_ALGORITHM_ID_PARAMS OSSL_ALG_PARAM_ALGORITHM_ID_PARAMS +# define OSSL_CIPHER_PARAM_ALGORITHM_ID_PARAMS_OLD "alg_id_param" +# define OSSL_CIPHER_PARAM_BLOCK_SIZE "blocksize" +# define OSSL_CIPHER_PARAM_CTS "cts" +# define OSSL_CIPHER_PARAM_CTS_MODE "cts_mode" +# define OSSL_CIPHER_PARAM_CUSTOM_IV "custom-iv" +# define OSSL_CIPHER_PARAM_DECRYPT_ONLY "decrypt-only" +# define OSSL_CIPHER_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_CIPHER_PARAM_FIPS_ENCRYPT_CHECK "encrypt-check" +# define OSSL_CIPHER_PARAM_HAS_RAND_KEY "has-randkey" +# define OSSL_CIPHER_PARAM_IV "iv" +# define OSSL_CIPHER_PARAM_IVLEN "ivlen" +# define OSSL_CIPHER_PARAM_KEYLEN "keylen" +# define OSSL_CIPHER_PARAM_MODE "mode" +# define OSSL_CIPHER_PARAM_NUM "num" +# define OSSL_CIPHER_PARAM_PADDING "padding" +# define OSSL_CIPHER_PARAM_PIPELINE_AEAD_TAG "pipeline-tag" +# define OSSL_CIPHER_PARAM_RANDOM_KEY "randkey" +# define OSSL_CIPHER_PARAM_RC2_KEYBITS "keybits" +# define OSSL_CIPHER_PARAM_ROUNDS "rounds" +# define OSSL_CIPHER_PARAM_SPEED "speed" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK "tls-multi" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD "tls1multi_aad" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD_PACKLEN "tls1multi_aadpacklen" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC "tls1multi_enc" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_IN "tls1multi_encin" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_LEN "tls1multi_enclen" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_INTERLEAVE "tls1multi_interleave" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_BUFSIZE "tls1multi_maxbufsz" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_SEND_FRAGMENT "tls1multi_maxsndfrag" +# define OSSL_CIPHER_PARAM_TLS_MAC "tls-mac" +# define OSSL_CIPHER_PARAM_TLS_MAC_SIZE "tls-mac-size" +# define OSSL_CIPHER_PARAM_TLS_VERSION "tls-version" +# define OSSL_CIPHER_PARAM_UPDATED_IV "updated-iv" +# define OSSL_CIPHER_PARAM_USE_BITS "use-bits" +# define OSSL_CIPHER_PARAM_XTS_STANDARD "xts_standard" +# define OSSL_DECODER_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_DIGEST_PARAM_ALGID_ABSENT "algid-absent" +# define OSSL_DIGEST_PARAM_BLOCK_SIZE "blocksize" +# define OSSL_DIGEST_PARAM_MICALG "micalg" +# define OSSL_DIGEST_PARAM_PAD_TYPE "pad-type" +# define OSSL_DIGEST_PARAM_SIZE "size" +# define OSSL_DIGEST_PARAM_SSL3_MS "ssl3-ms" +# define OSSL_DIGEST_PARAM_XOF "xof" +# define OSSL_DIGEST_PARAM_XOFLEN "xoflen" +# define OSSL_DRBG_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_DRBG_PARAM_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_DRBG_PARAM_ENTROPY_REQUIRED "entropy_required" +# define OSSL_DRBG_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_DRBG_PARAM_FIPS_DIGEST_CHECK OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK +# define OSSL_DRBG_PARAM_MAC OSSL_ALG_PARAM_MAC +# define OSSL_DRBG_PARAM_MAX_ADINLEN "max_adinlen" +# define OSSL_DRBG_PARAM_MAX_ENTROPYLEN "max_entropylen" +# define OSSL_DRBG_PARAM_MAX_LENGTH "maxium_length" +# define OSSL_DRBG_PARAM_MAX_NONCELEN "max_noncelen" +# define OSSL_DRBG_PARAM_MAX_PERSLEN "max_perslen" +# define OSSL_DRBG_PARAM_MIN_ENTROPYLEN "min_entropylen" +# define OSSL_DRBG_PARAM_MIN_LENGTH "minium_length" +# define OSSL_DRBG_PARAM_MIN_NONCELEN "min_noncelen" +# define OSSL_DRBG_PARAM_PREDICTION_RESISTANCE "prediction_resistance" +# define OSSL_DRBG_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_DRBG_PARAM_RANDOM_DATA "random_data" +# define OSSL_DRBG_PARAM_RESEED_COUNTER "reseed_counter" +# define OSSL_DRBG_PARAM_RESEED_REQUESTS "reseed_requests" +# define OSSL_DRBG_PARAM_RESEED_TIME "reseed_time" +# define OSSL_DRBG_PARAM_RESEED_TIME_INTERVAL "reseed_time_interval" +# define OSSL_DRBG_PARAM_SIZE "size" +# define OSSL_DRBG_PARAM_USE_DF "use_derivation_function" +# define OSSL_ENCODER_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_ENCODER_PARAM_ENCRYPT_LEVEL "encrypt-level" +# define OSSL_ENCODER_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_ENCODER_PARAM_SAVE_PARAMETERS "save-parameters" +# define OSSL_EXCHANGE_PARAM_EC_ECDH_COFACTOR_MODE "ecdh-cofactor-mode" +# define OSSL_EXCHANGE_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_EXCHANGE_PARAM_FIPS_DIGEST_CHECK OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK +# define OSSL_EXCHANGE_PARAM_FIPS_ECDH_COFACTOR_CHECK OSSL_PROV_PARAM_ECDH_COFACTOR_CHECK +# define OSSL_EXCHANGE_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_EXCHANGE_PARAM_KDF_DIGEST "kdf-digest" +# define OSSL_EXCHANGE_PARAM_KDF_DIGEST_PROPS "kdf-digest-props" +# define OSSL_EXCHANGE_PARAM_KDF_OUTLEN "kdf-outlen" +# define OSSL_EXCHANGE_PARAM_KDF_TYPE "kdf-type" +# define OSSL_EXCHANGE_PARAM_KDF_UKM "kdf-ukm" +# define OSSL_EXCHANGE_PARAM_PAD "pad" +# define OSSL_GEN_PARAM_ITERATION "iteration" +# define OSSL_GEN_PARAM_POTENTIAL "potential" +# define OSSL_KDF_PARAM_ARGON2_AD "ad" +# define OSSL_KDF_PARAM_ARGON2_LANES "lanes" +# define OSSL_KDF_PARAM_ARGON2_MEMCOST "memcost" +# define OSSL_KDF_PARAM_ARGON2_VERSION "version" +# define OSSL_KDF_PARAM_CEK_ALG "cekalg" +# define OSSL_KDF_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_KDF_PARAM_CONSTANT "constant" +# define OSSL_KDF_PARAM_DATA "data" +# define OSSL_KDF_PARAM_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_KDF_PARAM_EARLY_CLEAN "early_clean" +# define OSSL_KDF_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_KDF_PARAM_FIPS_DIGEST_CHECK OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK +# define OSSL_KDF_PARAM_FIPS_EMS_CHECK "ems_check" +# define OSSL_KDF_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_KDF_PARAM_HMACDRBG_ENTROPY "entropy" +# define OSSL_KDF_PARAM_HMACDRBG_NONCE "nonce" +# define OSSL_KDF_PARAM_INFO "info" +# define OSSL_KDF_PARAM_ITER "iter" +# define OSSL_KDF_PARAM_KBKDF_R "r" +# define OSSL_KDF_PARAM_KBKDF_USE_L "use-l" +# define OSSL_KDF_PARAM_KBKDF_USE_SEPARATOR "use-separator" +# define OSSL_KDF_PARAM_KEY "key" +# define OSSL_KDF_PARAM_LABEL "label" +# define OSSL_KDF_PARAM_MAC OSSL_ALG_PARAM_MAC +# define OSSL_KDF_PARAM_MAC_SIZE "maclen" +# define OSSL_KDF_PARAM_MODE "mode" +# define OSSL_KDF_PARAM_PASSWORD "pass" +# define OSSL_KDF_PARAM_PKCS12_ID "id" +# define OSSL_KDF_PARAM_PKCS5 "pkcs5" +# define OSSL_KDF_PARAM_PREFIX "prefix" +# define OSSL_KDF_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_KDF_PARAM_SALT "salt" +# define OSSL_KDF_PARAM_SCRYPT_MAXMEM "maxmem_bytes" +# define OSSL_KDF_PARAM_SCRYPT_N "n" +# define OSSL_KDF_PARAM_SCRYPT_P "p" +# define OSSL_KDF_PARAM_SCRYPT_R "r" +# define OSSL_KDF_PARAM_SECRET "secret" +# define OSSL_KDF_PARAM_SEED "seed" +# define OSSL_KDF_PARAM_SIZE "size" +# define OSSL_KDF_PARAM_SSHKDF_SESSION_ID "session_id" +# define OSSL_KDF_PARAM_SSHKDF_TYPE "type" +# define OSSL_KDF_PARAM_SSHKDF_XCGHASH "xcghash" +# define OSSL_KDF_PARAM_THREADS "threads" +# define OSSL_KDF_PARAM_UKM "ukm" +# define OSSL_KDF_PARAM_X942_ACVPINFO "acvp-info" +# define OSSL_KDF_PARAM_X942_PARTYUINFO "partyu-info" +# define OSSL_KDF_PARAM_X942_PARTYVINFO "partyv-info" +# define OSSL_KDF_PARAM_X942_SUPP_PRIVINFO "supp-privinfo" +# define OSSL_KDF_PARAM_X942_SUPP_PUBINFO "supp-pubinfo" +# define OSSL_KDF_PARAM_X942_USE_KEYBITS "use-keybits" +# define OSSL_KEM_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_KEM_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_KEM_PARAM_IKME "ikme" +# define OSSL_KEM_PARAM_OPERATION "operation" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_BLOCK_PADDING "block_padding" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_HS_PADDING "hs_padding" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_MAX_EARLY_DATA "max_early_data" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_MAX_FRAG_LEN "max_frag_len" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_MODE "mode" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_OPTIONS "options" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_READ_AHEAD "read_ahead" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_STREAM_MAC "stream_mac" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_TLSTREE "tlstree" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_USE_ETM "use_etm" +# define OSSL_LIBSSL_RECORD_LAYER_READ_BUFFER_LEN "read_buffer_len" +# define OSSL_MAC_PARAM_BLOCK_SIZE "block-size" +# define OSSL_MAC_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_MAC_PARAM_CUSTOM "custom" +# define OSSL_MAC_PARAM_C_ROUNDS "c-rounds" +# define OSSL_MAC_PARAM_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_MAC_PARAM_DIGEST_NOINIT "digest-noinit" +# define OSSL_MAC_PARAM_DIGEST_ONESHOT "digest-oneshot" +# define OSSL_MAC_PARAM_D_ROUNDS "d-rounds" +# define OSSL_MAC_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_MAC_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_MAC_PARAM_FIPS_NO_SHORT_MAC OSSL_PROV_PARAM_NO_SHORT_MAC +# define OSSL_MAC_PARAM_IV "iv" +# define OSSL_MAC_PARAM_KEY "key" +# define OSSL_MAC_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_MAC_PARAM_SALT "salt" +# define OSSL_MAC_PARAM_SIZE "size" +# define OSSL_MAC_PARAM_TLS_DATA_SIZE "tls-data-size" +# define OSSL_MAC_PARAM_XOF "xof" +# define OSSL_OBJECT_PARAM_DATA "data" +# define OSSL_OBJECT_PARAM_DATA_STRUCTURE "data-structure" +# define OSSL_OBJECT_PARAM_DATA_TYPE "data-type" +# define OSSL_OBJECT_PARAM_DESC "desc" +# define OSSL_OBJECT_PARAM_INPUT_TYPE "input-type" +# define OSSL_OBJECT_PARAM_REFERENCE "reference" +# define OSSL_OBJECT_PARAM_TYPE "type" +# define OSSL_PASSPHRASE_PARAM_INFO "info" +# define OSSL_PKEY_PARAM_ALGORITHM_ID OSSL_ALG_PARAM_ALGORITHM_ID +# define OSSL_PKEY_PARAM_ALGORITHM_ID_PARAMS OSSL_ALG_PARAM_ALGORITHM_ID_PARAMS +# define OSSL_PKEY_PARAM_BITS "bits" +# define OSSL_PKEY_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_PKEY_PARAM_DEFAULT_DIGEST "default-digest" +# define OSSL_PKEY_PARAM_DHKEM_IKM "dhkem-ikm" +# define OSSL_PKEY_PARAM_DH_GENERATOR "safeprime-generator" +# define OSSL_PKEY_PARAM_DH_PRIV_LEN "priv_len" +# define OSSL_PKEY_PARAM_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_PKEY_PARAM_DIGEST_SIZE "digest-size" +# define OSSL_PKEY_PARAM_DIST_ID "distid" +# define OSSL_PKEY_PARAM_EC_A "a" +# define OSSL_PKEY_PARAM_EC_B "b" +# define OSSL_PKEY_PARAM_EC_CHAR2_M "m" +# define OSSL_PKEY_PARAM_EC_CHAR2_PP_K1 "k1" +# define OSSL_PKEY_PARAM_EC_CHAR2_PP_K2 "k2" +# define OSSL_PKEY_PARAM_EC_CHAR2_PP_K3 "k3" +# define OSSL_PKEY_PARAM_EC_CHAR2_TP_BASIS "tp" +# define OSSL_PKEY_PARAM_EC_CHAR2_TYPE "basis-type" +# define OSSL_PKEY_PARAM_EC_COFACTOR "cofactor" +# define OSSL_PKEY_PARAM_EC_DECODED_FROM_EXPLICIT_PARAMS "decoded-from-explicit" +# define OSSL_PKEY_PARAM_EC_ENCODING "encoding" +# define OSSL_PKEY_PARAM_EC_FIELD_TYPE "field-type" +# define OSSL_PKEY_PARAM_EC_GENERATOR "generator" +# define OSSL_PKEY_PARAM_EC_GROUP_CHECK_TYPE "group-check" +# define OSSL_PKEY_PARAM_EC_INCLUDE_PUBLIC "include-public" +# define OSSL_PKEY_PARAM_EC_ORDER "order" +# define OSSL_PKEY_PARAM_EC_P "p" +# define OSSL_PKEY_PARAM_EC_POINT_CONVERSION_FORMAT "point-format" +# define OSSL_PKEY_PARAM_EC_PUB_X "qx" +# define OSSL_PKEY_PARAM_EC_PUB_Y "qy" +# define OSSL_PKEY_PARAM_EC_SEED "seed" +# define OSSL_PKEY_PARAM_ENCODED_PUBLIC_KEY "encoded-pub-key" +# define OSSL_PKEY_PARAM_ENGINE OSSL_ALG_PARAM_ENGINE +# define OSSL_PKEY_PARAM_FFC_COFACTOR "j" +# define OSSL_PKEY_PARAM_FFC_DIGEST OSSL_PKEY_PARAM_DIGEST +# define OSSL_PKEY_PARAM_FFC_DIGEST_PROPS OSSL_PKEY_PARAM_PROPERTIES +# define OSSL_PKEY_PARAM_FFC_G "g" +# define OSSL_PKEY_PARAM_FFC_GINDEX "gindex" +# define OSSL_PKEY_PARAM_FFC_H "hindex" +# define OSSL_PKEY_PARAM_FFC_P "p" +# define OSSL_PKEY_PARAM_FFC_PBITS "pbits" +# define OSSL_PKEY_PARAM_FFC_PCOUNTER "pcounter" +# define OSSL_PKEY_PARAM_FFC_Q "q" +# define OSSL_PKEY_PARAM_FFC_QBITS "qbits" +# define OSSL_PKEY_PARAM_FFC_SEED "seed" +# define OSSL_PKEY_PARAM_FFC_TYPE "type" +# define OSSL_PKEY_PARAM_FFC_VALIDATE_G "validate-g" +# define OSSL_PKEY_PARAM_FFC_VALIDATE_LEGACY "validate-legacy" +# define OSSL_PKEY_PARAM_FFC_VALIDATE_PQ "validate-pq" +# define OSSL_PKEY_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK "digest-check" +# define OSSL_PKEY_PARAM_FIPS_KEY_CHECK "key-check" +# define OSSL_PKEY_PARAM_FIPS_SIGN_CHECK "sign-check" +# define OSSL_PKEY_PARAM_GROUP_NAME "group" +# define OSSL_PKEY_PARAM_IMPLICIT_REJECTION "implicit-rejection" +# define OSSL_PKEY_PARAM_MANDATORY_DIGEST "mandatory-digest" +# define OSSL_PKEY_PARAM_MASKGENFUNC "mgf" +# define OSSL_PKEY_PARAM_MAX_SIZE "max-size" +# define OSSL_PKEY_PARAM_MGF1_DIGEST "mgf1-digest" +# define OSSL_PKEY_PARAM_MGF1_PROPERTIES "mgf1-properties" +# define OSSL_PKEY_PARAM_ML_DSA_INPUT_FORMATS "ml-dsa.input_formats" +# define OSSL_PKEY_PARAM_ML_DSA_OUTPUT_FORMATS "ml-dsa.output_formats" +# define OSSL_PKEY_PARAM_ML_DSA_PREFER_SEED "ml-dsa.prefer_seed" +# define OSSL_PKEY_PARAM_ML_DSA_RETAIN_SEED "ml-dsa.retain_seed" +# define OSSL_PKEY_PARAM_ML_DSA_SEED "seed" +# define OSSL_PKEY_PARAM_ML_KEM_IMPORT_PCT_TYPE "ml-kem.import_pct_type" +# define OSSL_PKEY_PARAM_ML_KEM_INPUT_FORMATS "ml-kem.input_formats" +# define OSSL_PKEY_PARAM_ML_KEM_OUTPUT_FORMATS "ml-kem.output_formats" +# define OSSL_PKEY_PARAM_ML_KEM_PREFER_SEED "ml-kem.prefer_seed" +# define OSSL_PKEY_PARAM_ML_KEM_RETAIN_SEED "ml-kem.retain_seed" +# define OSSL_PKEY_PARAM_ML_KEM_SEED "seed" +# define OSSL_PKEY_PARAM_PAD_MODE "pad-mode" +# define OSSL_PKEY_PARAM_PRIV_KEY "priv" +# define OSSL_PKEY_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_PKEY_PARAM_PUB_KEY "pub" +# define OSSL_PKEY_PARAM_RSA_BITS OSSL_PKEY_PARAM_BITS +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT "rsa-coefficient" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT1 "rsa-coefficient1" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT2 "rsa-coefficient2" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT3 "rsa-coefficient3" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT4 "rsa-coefficient4" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT5 "rsa-coefficient5" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT6 "rsa-coefficient6" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT7 "rsa-coefficient7" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT8 "rsa-coefficient8" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT9 "rsa-coefficient9" +# define OSSL_PKEY_PARAM_RSA_D "d" +# define OSSL_PKEY_PARAM_RSA_DERIVE_FROM_PQ "rsa-derive-from-pq" +# define OSSL_PKEY_PARAM_RSA_DIGEST OSSL_PKEY_PARAM_DIGEST +# define OSSL_PKEY_PARAM_RSA_DIGEST_PROPS OSSL_PKEY_PARAM_PROPERTIES +# define OSSL_PKEY_PARAM_RSA_E "e" +# define OSSL_PKEY_PARAM_RSA_EXPONENT "rsa-exponent" +# define OSSL_PKEY_PARAM_RSA_EXPONENT1 "rsa-exponent1" +# define OSSL_PKEY_PARAM_RSA_EXPONENT10 "rsa-exponent10" +# define OSSL_PKEY_PARAM_RSA_EXPONENT2 "rsa-exponent2" +# define OSSL_PKEY_PARAM_RSA_EXPONENT3 "rsa-exponent3" +# define OSSL_PKEY_PARAM_RSA_EXPONENT4 "rsa-exponent4" +# define OSSL_PKEY_PARAM_RSA_EXPONENT5 "rsa-exponent5" +# define OSSL_PKEY_PARAM_RSA_EXPONENT6 "rsa-exponent6" +# define OSSL_PKEY_PARAM_RSA_EXPONENT7 "rsa-exponent7" +# define OSSL_PKEY_PARAM_RSA_EXPONENT8 "rsa-exponent8" +# define OSSL_PKEY_PARAM_RSA_EXPONENT9 "rsa-exponent9" +# define OSSL_PKEY_PARAM_RSA_FACTOR "rsa-factor" +# define OSSL_PKEY_PARAM_RSA_FACTOR1 "rsa-factor1" +# define OSSL_PKEY_PARAM_RSA_FACTOR10 "rsa-factor10" +# define OSSL_PKEY_PARAM_RSA_FACTOR2 "rsa-factor2" +# define OSSL_PKEY_PARAM_RSA_FACTOR3 "rsa-factor3" +# define OSSL_PKEY_PARAM_RSA_FACTOR4 "rsa-factor4" +# define OSSL_PKEY_PARAM_RSA_FACTOR5 "rsa-factor5" +# define OSSL_PKEY_PARAM_RSA_FACTOR6 "rsa-factor6" +# define OSSL_PKEY_PARAM_RSA_FACTOR7 "rsa-factor7" +# define OSSL_PKEY_PARAM_RSA_FACTOR8 "rsa-factor8" +# define OSSL_PKEY_PARAM_RSA_FACTOR9 "rsa-factor9" +# define OSSL_PKEY_PARAM_RSA_MASKGENFUNC OSSL_PKEY_PARAM_MASKGENFUNC +# define OSSL_PKEY_PARAM_RSA_MGF1_DIGEST OSSL_PKEY_PARAM_MGF1_DIGEST +# define OSSL_PKEY_PARAM_RSA_N "n" +# define OSSL_PKEY_PARAM_RSA_PRIMES "primes" +# define OSSL_PKEY_PARAM_RSA_PSS_SALTLEN "saltlen" +# define OSSL_PKEY_PARAM_RSA_TEST_P1 "p1" +# define OSSL_PKEY_PARAM_RSA_TEST_P2 "p2" +# define OSSL_PKEY_PARAM_RSA_TEST_Q1 "q1" +# define OSSL_PKEY_PARAM_RSA_TEST_Q2 "q2" +# define OSSL_PKEY_PARAM_RSA_TEST_XP "xp" +# define OSSL_PKEY_PARAM_RSA_TEST_XP1 "xp1" +# define OSSL_PKEY_PARAM_RSA_TEST_XP2 "xp2" +# define OSSL_PKEY_PARAM_RSA_TEST_XQ "xq" +# define OSSL_PKEY_PARAM_RSA_TEST_XQ1 "xq1" +# define OSSL_PKEY_PARAM_RSA_TEST_XQ2 "xq2" +# define OSSL_PKEY_PARAM_SECURITY_BITS "security-bits" +# define OSSL_PKEY_PARAM_SLH_DSA_SEED "seed" +# define OSSL_PKEY_PARAM_USE_COFACTOR_ECDH OSSL_PKEY_PARAM_USE_COFACTOR_FLAG +# define OSSL_PKEY_PARAM_USE_COFACTOR_FLAG "use-cofactor-flag" +# define OSSL_PROV_PARAM_BUILDINFO "buildinfo" +# define OSSL_PROV_PARAM_CORE_MODULE_FILENAME "module-filename" +# define OSSL_PROV_PARAM_CORE_PROV_NAME "provider-name" +# define OSSL_PROV_PARAM_CORE_VERSION "openssl-version" +# define OSSL_PROV_PARAM_DRBG_TRUNC_DIGEST "drbg-no-trunc-md" +# define OSSL_PROV_PARAM_DSA_SIGN_DISABLED "dsa-sign-disabled" +# define OSSL_PROV_PARAM_ECDH_COFACTOR_CHECK "ecdh-cofactor-check" +# define OSSL_PROV_PARAM_HKDF_DIGEST_CHECK "hkdf-digest-check" +# define OSSL_PROV_PARAM_HKDF_KEY_CHECK "hkdf-key-check" +# define OSSL_PROV_PARAM_HMAC_KEY_CHECK "hmac-key-check" +# define OSSL_PROV_PARAM_KBKDF_KEY_CHECK "kbkdf-key-check" +# define OSSL_PROV_PARAM_KMAC_KEY_CHECK "kmac-key-check" +# define OSSL_PROV_PARAM_NAME "name" +# define OSSL_PROV_PARAM_NO_SHORT_MAC "no-short-mac" +# define OSSL_PROV_PARAM_PBKDF2_LOWER_BOUND_CHECK "pbkdf2-lower-bound-check" +# define OSSL_PROV_PARAM_RSA_PKCS15_PAD_DISABLED "rsa-pkcs15-pad-disabled" +# define OSSL_PROV_PARAM_RSA_PSS_SALTLEN_CHECK "rsa-pss-saltlen-check" +# define OSSL_PROV_PARAM_RSA_SIGN_X931_PAD_DISABLED "rsa-sign-x931-pad-disabled" +# define OSSL_PROV_PARAM_SECURITY_CHECKS "security-checks" +# define OSSL_PROV_PARAM_SELF_TEST_DESC "st-desc" +# define OSSL_PROV_PARAM_SELF_TEST_PHASE "st-phase" +# define OSSL_PROV_PARAM_SELF_TEST_TYPE "st-type" +# define OSSL_PROV_PARAM_SIGNATURE_DIGEST_CHECK "signature-digest-check" +# define OSSL_PROV_PARAM_SSHKDF_DIGEST_CHECK "sshkdf-digest-check" +# define OSSL_PROV_PARAM_SSHKDF_KEY_CHECK "sshkdf-key-check" +# define OSSL_PROV_PARAM_SSKDF_DIGEST_CHECK "sskdf-digest-check" +# define OSSL_PROV_PARAM_SSKDF_KEY_CHECK "sskdf-key-check" +# define OSSL_PROV_PARAM_STATUS "status" +# define OSSL_PROV_PARAM_TDES_ENCRYPT_DISABLED "tdes-encrypt-disabled" +# define OSSL_PROV_PARAM_TLS13_KDF_DIGEST_CHECK "tls13-kdf-digest-check" +# define OSSL_PROV_PARAM_TLS13_KDF_KEY_CHECK "tls13-kdf-key-check" +# define OSSL_PROV_PARAM_TLS1_PRF_DIGEST_CHECK "tls1-prf-digest-check" +# define OSSL_PROV_PARAM_TLS1_PRF_EMS_CHECK "tls1-prf-ems-check" +# define OSSL_PROV_PARAM_TLS1_PRF_KEY_CHECK "tls1-prf-key-check" +# define OSSL_PROV_PARAM_VERSION "version" +# define OSSL_PROV_PARAM_X942KDF_KEY_CHECK "x942kdf-key-check" +# define OSSL_PROV_PARAM_X963KDF_DIGEST_CHECK "x963kdf-digest-check" +# define OSSL_PROV_PARAM_X963KDF_KEY_CHECK "x963kdf-key-check" +# define OSSL_RAND_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_RAND_PARAM_GENERATE "generate" +# define OSSL_RAND_PARAM_MAX_REQUEST "max_request" +# define OSSL_RAND_PARAM_STATE "state" +# define OSSL_RAND_PARAM_STRENGTH "strength" +# define OSSL_RAND_PARAM_TEST_ENTROPY "test_entropy" +# define OSSL_RAND_PARAM_TEST_NONCE "test_nonce" +# define OSSL_SIGNATURE_PARAM_ADD_RANDOM "additional-random" +# define OSSL_SIGNATURE_PARAM_ALGORITHM_ID OSSL_PKEY_PARAM_ALGORITHM_ID +# define OSSL_SIGNATURE_PARAM_ALGORITHM_ID_PARAMS OSSL_PKEY_PARAM_ALGORITHM_ID_PARAMS +# define OSSL_SIGNATURE_PARAM_CONTEXT_STRING "context-string" +# define OSSL_SIGNATURE_PARAM_DETERMINISTIC "deterministic" +# define OSSL_SIGNATURE_PARAM_DIGEST OSSL_PKEY_PARAM_DIGEST +# define OSSL_SIGNATURE_PARAM_DIGEST_SIZE OSSL_PKEY_PARAM_DIGEST_SIZE +# define OSSL_SIGNATURE_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_SIGNATURE_PARAM_FIPS_DIGEST_CHECK OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK +# define OSSL_SIGNATURE_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_SIGNATURE_PARAM_FIPS_RSA_PSS_SALTLEN_CHECK "rsa-pss-saltlen-check" +# define OSSL_SIGNATURE_PARAM_FIPS_SIGN_CHECK OSSL_PKEY_PARAM_FIPS_SIGN_CHECK +# define OSSL_SIGNATURE_PARAM_FIPS_SIGN_X931_PAD_CHECK "sign-x931-pad-check" +# define OSSL_SIGNATURE_PARAM_FIPS_VERIFY_MESSAGE "verify-message" +# define OSSL_SIGNATURE_PARAM_INSTANCE "instance" +# define OSSL_SIGNATURE_PARAM_KAT "kat" +# define OSSL_SIGNATURE_PARAM_MESSAGE_ENCODING "message-encoding" +# define OSSL_SIGNATURE_PARAM_MGF1_DIGEST OSSL_PKEY_PARAM_MGF1_DIGEST +# define OSSL_SIGNATURE_PARAM_MGF1_PROPERTIES OSSL_PKEY_PARAM_MGF1_PROPERTIES +# define OSSL_SIGNATURE_PARAM_MU "mu" +# define OSSL_SIGNATURE_PARAM_NONCE_TYPE "nonce-type" +# define OSSL_SIGNATURE_PARAM_PAD_MODE OSSL_PKEY_PARAM_PAD_MODE +# define OSSL_SIGNATURE_PARAM_PROPERTIES OSSL_PKEY_PARAM_PROPERTIES +# define OSSL_SIGNATURE_PARAM_PSS_SALTLEN "saltlen" +# define OSSL_SIGNATURE_PARAM_SIGNATURE "signature" +# define OSSL_SIGNATURE_PARAM_TEST_ENTROPY "test-entropy" +# define OSSL_SKEY_PARAM_KEY_LENGTH "key-length" +# define OSSL_SKEY_PARAM_RAW_BYTES "raw-bytes" +# define OSSL_STORE_PARAM_ALIAS "alias" +# define OSSL_STORE_PARAM_DIGEST "digest" +# define OSSL_STORE_PARAM_EXPECT "expect" +# define OSSL_STORE_PARAM_FINGERPRINT "fingerprint" +# define OSSL_STORE_PARAM_INPUT_TYPE "input-type" +# define OSSL_STORE_PARAM_ISSUER "name" +# define OSSL_STORE_PARAM_PROPERTIES "properties" +# define OSSL_STORE_PARAM_SERIAL "serial" +# define OSSL_STORE_PARAM_SUBJECT "subject" + +# ifdef __cplusplus +} +# endif + +#endif diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/include/openssl/crmf.h b/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/include/openssl/crmf.h index 71b747ed33d239..4bf550fd47daa9 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/include/openssl/crmf.h +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/include/openssl/crmf.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/crmf.h.in * - * Copyright 2007-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2007-2025 The OpenSSL Project Authors. All Rights Reserved. * Copyright Nokia 2007-2019 * Copyright Siemens AG 2015-2019 * @@ -26,6 +26,7 @@ # include # include # include /* for GENERAL_NAME etc. */ +# include /* explicit #includes not strictly needed since implied by the above: */ # include @@ -43,9 +44,12 @@ extern "C" { # define OSSL_CRMF_SUBSEQUENTMESSAGE_ENCRCERT 0 # define OSSL_CRMF_SUBSEQUENTMESSAGE_CHALLENGERESP 1 - typedef struct ossl_crmf_encryptedvalue_st OSSL_CRMF_ENCRYPTEDVALUE; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_ENCRYPTEDVALUE) + +typedef struct ossl_crmf_encryptedkey_st OSSL_CRMF_ENCRYPTEDKEY; +DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_ENCRYPTEDKEY) + typedef struct ossl_crmf_msg_st OSSL_CRMF_MSG; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_MSG) DECLARE_ASN1_DUP_FUNCTION(OSSL_CRMF_MSG) @@ -77,6 +81,36 @@ SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CRMF_MSG, OSSL_CRMF_MSG, OSSL_CRMF_MSG) #define sk_OSSL_CRMF_MSG_set_cmp_func(sk, cmp) ((sk_OSSL_CRMF_MSG_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CRMF_MSG_sk_type(sk), ossl_check_OSSL_CRMF_MSG_compfunc_type(cmp))) typedef struct ossl_crmf_attributetypeandvalue_st OSSL_CRMF_ATTRIBUTETYPEANDVALUE; +void OSSL_CRMF_ATTRIBUTETYPEANDVALUE_free(OSSL_CRMF_ATTRIBUTETYPEANDVALUE *v); +DECLARE_ASN1_DUP_FUNCTION(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CRMF_ATTRIBUTETYPEANDVALUE, OSSL_CRMF_ATTRIBUTETYPEANDVALUE, OSSL_CRMF_ATTRIBUTETYPEANDVALUE) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_value(sk, idx) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_value(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), (idx))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_new(cmp) ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_new(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_compfunc_type(cmp))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_new_null() ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_new_null()) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_new_reserve(cmp, n) ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_compfunc_type(cmp), (n))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), (n)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_free(sk) OPENSSL_sk_free(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_delete(sk, i) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_delete(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), (i))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_delete_ptr(sk, ptr) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_pop(sk) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_pop(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_shift(sk) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_shift(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk),ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_freefunc_type(freefunc)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr), (idx)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_set(sk, idx, ptr) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_set(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), (idx), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr), pnum) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_dup(sk) ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_dup(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_copyfunc_type(copyfunc), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_freefunc_type(freefunc))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_set_cmp_func(sk, cmp) ((sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_compfunc_type(cmp))) + + typedef struct ossl_crmf_pbmparameter_st OSSL_CRMF_PBMPARAMETER; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_PBMPARAMETER) typedef struct ossl_crmf_poposigningkey_st OSSL_CRMF_POPOSIGNINGKEY; @@ -118,6 +152,7 @@ typedef struct ossl_crmf_singlepubinfo_st OSSL_CRMF_SINGLEPUBINFO; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_SINGLEPUBINFO) typedef struct ossl_crmf_certtemplate_st OSSL_CRMF_CERTTEMPLATE; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_CERTTEMPLATE) +DECLARE_ASN1_DUP_FUNCTION(OSSL_CRMF_CERTTEMPLATE) typedef STACK_OF(OSSL_CRMF_MSG) OSSL_CRMF_MSGS; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_MSGS) @@ -198,12 +233,14 @@ int OSSL_CRMF_MSGS_verify_popo(const OSSL_CRMF_MSGS *reqs, int rid, int acceptRAVerified, OSSL_LIB_CTX *libctx, const char *propq); OSSL_CRMF_CERTTEMPLATE *OSSL_CRMF_MSG_get0_tmpl(const OSSL_CRMF_MSG *crm); -const ASN1_INTEGER -*OSSL_CRMF_CERTTEMPLATE_get0_serialNumber(const OSSL_CRMF_CERTTEMPLATE *tmpl); +X509_PUBKEY +*OSSL_CRMF_CERTTEMPLATE_get0_publicKey(const OSSL_CRMF_CERTTEMPLATE *tmpl); const X509_NAME *OSSL_CRMF_CERTTEMPLATE_get0_subject(const OSSL_CRMF_CERTTEMPLATE *tmpl); const X509_NAME *OSSL_CRMF_CERTTEMPLATE_get0_issuer(const OSSL_CRMF_CERTTEMPLATE *tmpl); +const ASN1_INTEGER +*OSSL_CRMF_CERTTEMPLATE_get0_serialNumber(const OSSL_CRMF_CERTTEMPLATE *tmpl); X509_EXTENSIONS *OSSL_CRMF_CERTTEMPLATE_get0_extensions(const OSSL_CRMF_CERTTEMPLATE *tmpl); const X509_NAME @@ -215,10 +252,24 @@ int OSSL_CRMF_CERTTEMPLATE_fill(OSSL_CRMF_CERTTEMPLATE *tmpl, const X509_NAME *subject, const X509_NAME *issuer, const ASN1_INTEGER *serial); -X509 -*OSSL_CRMF_ENCRYPTEDVALUE_get1_encCert(const OSSL_CRMF_ENCRYPTEDVALUE *ecert, - OSSL_LIB_CTX *libctx, const char *propq, - EVP_PKEY *pkey); +X509 *OSSL_CRMF_ENCRYPTEDVALUE_get1_encCert(const OSSL_CRMF_ENCRYPTEDVALUE *ecert, + OSSL_LIB_CTX *libctx, const char *propq, + EVP_PKEY *pkey); +X509 *OSSL_CRMF_ENCRYPTEDKEY_get1_encCert(const OSSL_CRMF_ENCRYPTEDKEY *ecert, + OSSL_LIB_CTX *libctx, const char *propq, + EVP_PKEY *pkey, unsigned int flags); +unsigned char +*OSSL_CRMF_ENCRYPTEDVALUE_decrypt(const OSSL_CRMF_ENCRYPTEDVALUE *enc, + OSSL_LIB_CTX *libctx, const char *propq, + EVP_PKEY *pkey, int *outlen); +EVP_PKEY *OSSL_CRMF_ENCRYPTEDKEY_get1_pkey(const OSSL_CRMF_ENCRYPTEDKEY *encryptedKey, + X509_STORE *ts, STACK_OF(X509) *extra, EVP_PKEY *pkey, + X509 *cert, ASN1_OCTET_STRING *secret, + OSSL_LIB_CTX *libctx, const char *propq); +int OSSL_CRMF_MSG_centralkeygen_requested(const OSSL_CRMF_MSG *crm, const X509_REQ *p10cr); +# ifndef OPENSSL_NO_CMS +OSSL_CRMF_ENCRYPTEDKEY *OSSL_CRMF_ENCRYPTEDKEY_init_envdata(CMS_EnvelopedData *envdata); +# endif # ifdef __cplusplus } diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/include/openssl/crypto.h b/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/include/openssl/crypto.h index 3f40be6d8c61d5..fd2cfd3e5a9ac4 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/include/openssl/crypto.h +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/include/openssl/crypto.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/crypto.h.in * - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2024 The OpenSSL Project Authors. All Rights Reserved. * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved * * Licensed under the Apache License 2.0 (the "License"). You may not use @@ -85,9 +85,15 @@ int CRYPTO_THREAD_unlock(CRYPTO_RWLOCK *lock); void CRYPTO_THREAD_lock_free(CRYPTO_RWLOCK *lock); int CRYPTO_atomic_add(int *val, int amount, int *ret, CRYPTO_RWLOCK *lock); +int CRYPTO_atomic_add64(uint64_t *val, uint64_t op, uint64_t *ret, + CRYPTO_RWLOCK *lock); +int CRYPTO_atomic_and(uint64_t *val, uint64_t op, uint64_t *ret, + CRYPTO_RWLOCK *lock); int CRYPTO_atomic_or(uint64_t *val, uint64_t op, uint64_t *ret, CRYPTO_RWLOCK *lock); int CRYPTO_atomic_load(uint64_t *val, uint64_t *ret, CRYPTO_RWLOCK *lock); +int CRYPTO_atomic_load_int(int *val, int *ret, CRYPTO_RWLOCK *lock); +int CRYPTO_atomic_store(uint64_t *dst, uint64_t val, CRYPTO_RWLOCK *lock); /* No longer needed, so this is a no-op */ #define OPENSSL_malloc_init() while(0) continue @@ -96,6 +102,9 @@ int CRYPTO_atomic_load(uint64_t *val, uint64_t *ret, CRYPTO_RWLOCK *lock); CRYPTO_malloc(num, OPENSSL_FILE, OPENSSL_LINE) # define OPENSSL_zalloc(num) \ CRYPTO_zalloc(num, OPENSSL_FILE, OPENSSL_LINE) +# define OPENSSL_aligned_alloc(num, alignment, freeptr) \ + CRYPTO_aligned_alloc(num, alignment, freeptr, \ + OPENSSL_FILE, OPENSSL_LINE) # define OPENSSL_realloc(addr, num) \ CRYPTO_realloc(addr, num, OPENSSL_FILE, OPENSSL_LINE) # define OPENSSL_clear_realloc(addr, old_num, num) \ @@ -124,6 +133,7 @@ int CRYPTO_atomic_load(uint64_t *val, uint64_t *ret, CRYPTO_RWLOCK *lock); size_t OPENSSL_strlcpy(char *dst, const char *src, size_t siz); size_t OPENSSL_strlcat(char *dst, const char *src, size_t siz); size_t OPENSSL_strnlen(const char *str, size_t maxlen); +int OPENSSL_strtoul(const char *str, char **endptr, int base, unsigned long *num); int OPENSSL_buf2hexstr_ex(char *str, size_t str_n, size_t *strlength, const unsigned char *buf, size_t buflen, const char sep); @@ -160,6 +170,7 @@ const char *OpenSSL_version(int type); # define OPENSSL_FULL_VERSION_STRING 7 # define OPENSSL_MODULES_DIR 8 # define OPENSSL_CPU_INFO 9 +# define OPENSSL_WINCTX 10 const char *OPENSSL_info(int type); /* @@ -174,6 +185,7 @@ const char *OPENSSL_info(int type); # define OPENSSL_INFO_LIST_SEPARATOR 1006 # define OPENSSL_INFO_SEED_SOURCE 1007 # define OPENSSL_INFO_CPU_SETTINGS 1008 +# define OPENSSL_INFO_WINDOWS_CONTEXT 1009 int OPENSSL_issetugid(void); @@ -341,11 +353,14 @@ void CRYPTO_get_mem_functions(CRYPTO_malloc_fn *malloc_fn, CRYPTO_realloc_fn *realloc_fn, CRYPTO_free_fn *free_fn); -void *CRYPTO_malloc(size_t num, const char *file, int line); -void *CRYPTO_zalloc(size_t num, const char *file, int line); -void *CRYPTO_memdup(const void *str, size_t siz, const char *file, int line); -char *CRYPTO_strdup(const char *str, const char *file, int line); -char *CRYPTO_strndup(const char *str, size_t s, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_malloc(size_t num, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_zalloc(size_t num, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_aligned_alloc(size_t num, size_t align, + void **freeptr, const char *file, + int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_memdup(const void *str, size_t siz, const char *file, int line); +OSSL_CRYPTO_ALLOC char *CRYPTO_strdup(const char *str, const char *file, int line); +OSSL_CRYPTO_ALLOC char *CRYPTO_strndup(const char *str, size_t s, const char *file, int line); void CRYPTO_free(void *ptr, const char *file, int line); void CRYPTO_clear_free(void *ptr, size_t num, const char *file, int line); void *CRYPTO_realloc(void *addr, size_t num, const char *file, int line); @@ -354,8 +369,8 @@ void *CRYPTO_clear_realloc(void *addr, size_t old_num, size_t num, int CRYPTO_secure_malloc_init(size_t sz, size_t minsize); int CRYPTO_secure_malloc_done(void); -void *CRYPTO_secure_malloc(size_t num, const char *file, int line); -void *CRYPTO_secure_zalloc(size_t num, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_secure_malloc(size_t num, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_secure_zalloc(size_t num, const char *file, int line); void CRYPTO_secure_free(void *ptr, const char *file, int line); void CRYPTO_secure_clear_free(void *ptr, size_t num, const char *file, int line); @@ -376,6 +391,9 @@ void OPENSSL_cleanse(void *ptr, size_t len); # define CRYPTO_MEM_CHECK_ENABLE 0x2 /* Control and mode bit */ # define CRYPTO_MEM_CHECK_DISABLE 0x3 /* Control only */ +/* max allowed length for value of OPENSSL_MALLOC_FAILURES env var. */ +# define CRYPTO_MEM_CHECK_MAX_FS 256 + void CRYPTO_get_alloc_counts(int *mcount, int *rcount, int *fcount); # ifndef OPENSSL_NO_DEPRECATED_3_0 # define OPENSSL_mem_debug_push(info) \ @@ -551,6 +569,13 @@ int OSSL_LIB_CTX_load_config(OSSL_LIB_CTX *ctx, const char *config_file); void OSSL_LIB_CTX_free(OSSL_LIB_CTX *); OSSL_LIB_CTX *OSSL_LIB_CTX_get0_global_default(void); OSSL_LIB_CTX *OSSL_LIB_CTX_set0_default(OSSL_LIB_CTX *libctx); +int OSSL_LIB_CTX_get_conf_diagnostics(OSSL_LIB_CTX *ctx); +void OSSL_LIB_CTX_set_conf_diagnostics(OSSL_LIB_CTX *ctx, int value); + +void OSSL_sleep(uint64_t millis); + + +void *OSSL_LIB_CTX_get_data(OSSL_LIB_CTX *ctx, int index); # ifdef __cplusplus } diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/include/openssl/ct.h b/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/include/openssl/ct.h index b6dd8c3547710a..e6dd1192a4e0b3 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/include/openssl/ct.h +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/include/openssl/ct.h @@ -133,7 +133,7 @@ typedef enum { */ CT_POLICY_EVAL_CTX *CT_POLICY_EVAL_CTX_new_ex(OSSL_LIB_CTX *libctx, const char *propq); - + /* * The same as CT_POLICY_EVAL_CTX_new_ex() but the default library * context and property query string is used. diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/include/openssl/err.h b/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/include/openssl/err.h index 2abf2483488181..daca18e7b757b0 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/include/openssl/err.h +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/include/openssl/err.h @@ -1,5 +1,5 @@ /* - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -372,7 +372,7 @@ typedef struct ERR_string_data_st { } ERR_STRING_DATA; DEFINE_LHASH_OF_INTERNAL(ERR_STRING_DATA); -#define lh_ERR_STRING_DATA_new(hfn, cmp) ((LHASH_OF(ERR_STRING_DATA) *)OPENSSL_LH_new(ossl_check_ERR_STRING_DATA_lh_hashfunc_type(hfn), ossl_check_ERR_STRING_DATA_lh_compfunc_type(cmp))) +#define lh_ERR_STRING_DATA_new(hfn, cmp) ((LHASH_OF(ERR_STRING_DATA) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new(ossl_check_ERR_STRING_DATA_lh_hashfunc_type(hfn), ossl_check_ERR_STRING_DATA_lh_compfunc_type(cmp)), lh_ERR_STRING_DATA_hash_thunk, lh_ERR_STRING_DATA_comp_thunk, lh_ERR_STRING_DATA_doall_thunk, lh_ERR_STRING_DATA_doall_arg_thunk)) #define lh_ERR_STRING_DATA_free(lh) OPENSSL_LH_free(ossl_check_ERR_STRING_DATA_lh_type(lh)) #define lh_ERR_STRING_DATA_flush(lh) OPENSSL_LH_flush(ossl_check_ERR_STRING_DATA_lh_type(lh)) #define lh_ERR_STRING_DATA_insert(lh, ptr) ((ERR_STRING_DATA *)OPENSSL_LH_insert(ossl_check_ERR_STRING_DATA_lh_type(lh), ossl_check_ERR_STRING_DATA_lh_plain_type(ptr))) @@ -496,6 +496,14 @@ int ERR_get_next_error_library(void); int ERR_set_mark(void); int ERR_pop_to_mark(void); int ERR_clear_last_mark(void); +int ERR_count_to_mark(void); +int ERR_pop(void); + +ERR_STATE *OSSL_ERR_STATE_new(void); +void OSSL_ERR_STATE_save(ERR_STATE *es); +void OSSL_ERR_STATE_save_to_mark(ERR_STATE *es); +void OSSL_ERR_STATE_restore(const ERR_STATE *es); +void OSSL_ERR_STATE_free(ERR_STATE *es); #ifdef __cplusplus } diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/include/openssl/fipskey.h b/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/include/openssl/fipskey.h index 42ba014b313ba8..929db18c678364 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/include/openssl/fipskey.h +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/include/openssl/fipskey.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/fipskey.h.in * - * Copyright 2020-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2020-2024 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -29,6 +29,11 @@ extern "C" { */ #define FIPS_KEY_STRING "f4556650ac31d35461610bac4ed81b1a181b2d8a43ea2854cbae22ca74560813" +/* + * The FIPS provider vendor name, as a string. + */ +#define FIPS_VENDOR "OpenSSL FIPS Provider" + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/include/openssl/lhash.h b/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/include/openssl/lhash.h index 39dd6254acdeb6..62c55b20fd9716 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/include/openssl/lhash.h +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/include/openssl/lhash.h @@ -1,5 +1,5 @@ /* - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2024 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -24,6 +24,9 @@ # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -31,9 +34,13 @@ extern "C" { typedef struct lhash_node_st OPENSSL_LH_NODE; typedef int (*OPENSSL_LH_COMPFUNC) (const void *, const void *); +typedef int (*OPENSSL_LH_COMPFUNCTHUNK) (const void *, const void *, OPENSSL_LH_COMPFUNC cfn); typedef unsigned long (*OPENSSL_LH_HASHFUNC) (const void *); +typedef unsigned long (*OPENSSL_LH_HASHFUNCTHUNK) (const void *, OPENSSL_LH_HASHFUNC hfn); typedef void (*OPENSSL_LH_DOALL_FUNC) (void *); +typedef void (*OPENSSL_LH_DOALL_FUNC_THUNK) (void *, OPENSSL_LH_DOALL_FUNC doall); typedef void (*OPENSSL_LH_DOALL_FUNCARG) (void *, void *); +typedef void (*OPENSSL_LH_DOALL_FUNCARG_THUNK) (void *, void *, OPENSSL_LH_DOALL_FUNCARG doall); typedef struct lhash_st OPENSSL_LHASH; /* @@ -79,26 +86,40 @@ typedef struct lhash_st OPENSSL_LHASH; int OPENSSL_LH_error(OPENSSL_LHASH *lh); OPENSSL_LHASH *OPENSSL_LH_new(OPENSSL_LH_HASHFUNC h, OPENSSL_LH_COMPFUNC c); +OPENSSL_LHASH *OPENSSL_LH_set_thunks(OPENSSL_LHASH *lh, + OPENSSL_LH_HASHFUNCTHUNK hw, + OPENSSL_LH_COMPFUNCTHUNK cw, + OPENSSL_LH_DOALL_FUNC_THUNK daw, + OPENSSL_LH_DOALL_FUNCARG_THUNK daaw); void OPENSSL_LH_free(OPENSSL_LHASH *lh); void OPENSSL_LH_flush(OPENSSL_LHASH *lh); void *OPENSSL_LH_insert(OPENSSL_LHASH *lh, void *data); void *OPENSSL_LH_delete(OPENSSL_LHASH *lh, const void *data); void *OPENSSL_LH_retrieve(OPENSSL_LHASH *lh, const void *data); void OPENSSL_LH_doall(OPENSSL_LHASH *lh, OPENSSL_LH_DOALL_FUNC func); -void OPENSSL_LH_doall_arg(OPENSSL_LHASH *lh, OPENSSL_LH_DOALL_FUNCARG func, void *arg); +void OPENSSL_LH_doall_arg(OPENSSL_LHASH *lh, + OPENSSL_LH_DOALL_FUNCARG func, void *arg); +void OPENSSL_LH_doall_arg_thunk(OPENSSL_LHASH *lh, + OPENSSL_LH_DOALL_FUNCARG_THUNK daaw, + OPENSSL_LH_DOALL_FUNCARG fn, void *arg); + unsigned long OPENSSL_LH_strhash(const char *c); unsigned long OPENSSL_LH_num_items(const OPENSSL_LHASH *lh); unsigned long OPENSSL_LH_get_down_load(const OPENSSL_LHASH *lh); void OPENSSL_LH_set_down_load(OPENSSL_LHASH *lh, unsigned long down_load); # ifndef OPENSSL_NO_STDIO -void OPENSSL_LH_stats(const OPENSSL_LHASH *lh, FILE *fp); -void OPENSSL_LH_node_stats(const OPENSSL_LHASH *lh, FILE *fp); -void OPENSSL_LH_node_usage_stats(const OPENSSL_LHASH *lh, FILE *fp); +# ifndef OPENSSL_NO_DEPRECATED_3_1 +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_stats(const OPENSSL_LHASH *lh, FILE *fp); +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_node_stats(const OPENSSL_LHASH *lh, FILE *fp); +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_node_usage_stats(const OPENSSL_LHASH *lh, FILE *fp); +# endif +# endif +# ifndef OPENSSL_NO_DEPRECATED_3_1 +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_stats_bio(const OPENSSL_LHASH *lh, BIO *out); +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_node_stats_bio(const OPENSSL_LHASH *lh, BIO *out); +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_node_usage_stats_bio(const OPENSSL_LHASH *lh, BIO *out); # endif -void OPENSSL_LH_stats_bio(const OPENSSL_LHASH *lh, BIO *out); -void OPENSSL_LH_node_stats_bio(const OPENSSL_LHASH *lh, BIO *out); -void OPENSSL_LH_node_usage_stats_bio(const OPENSSL_LHASH *lh, BIO *out); # ifndef OPENSSL_NO_DEPRECATED_1_1_0 # define _LHASH OPENSSL_LHASH @@ -129,110 +150,190 @@ void OPENSSL_LH_node_usage_stats_bio(const OPENSSL_LHASH *lh, BIO *out); /* Helper macro for internal use */ # define DEFINE_LHASH_OF_INTERNAL(type) \ - LHASH_OF(type) { union lh_##type##_dummy { void* d1; unsigned long d2; int d3; } dummy; }; \ + LHASH_OF(type) { \ + union lh_##type##_dummy { void* d1; unsigned long d2; int d3; } dummy; \ + }; \ typedef int (*lh_##type##_compfunc)(const type *a, const type *b); \ typedef unsigned long (*lh_##type##_hashfunc)(const type *a); \ typedef void (*lh_##type##_doallfunc)(type *a); \ - static ossl_unused ossl_inline type *ossl_check_##type##_lh_plain_type(type *ptr) \ + static ossl_inline unsigned long lh_##type##_hash_thunk(const void *data, OPENSSL_LH_HASHFUNC hfn) \ + { \ + unsigned long (*hfn_conv)(const type *) = (unsigned long (*)(const type *))hfn; \ + return hfn_conv((const type *)data); \ + } \ + static ossl_inline int lh_##type##_comp_thunk(const void *da, const void *db, OPENSSL_LH_COMPFUNC cfn) \ + { \ + int (*cfn_conv)(const type *, const type *) = (int (*)(const type *, const type *))cfn; \ + return cfn_conv((const type *)da, (const type *)db); \ + } \ + static ossl_inline void lh_##type##_doall_thunk(void *node, OPENSSL_LH_DOALL_FUNC doall) \ + { \ + void (*doall_conv)(type *) = (void (*)(type *))doall; \ + doall_conv((type *)node); \ + } \ + static ossl_inline void lh_##type##_doall_arg_thunk(void *node, void *arg, OPENSSL_LH_DOALL_FUNCARG doall) \ + { \ + void (*doall_conv)(type *, void *) = (void (*)(type *, void *))doall; \ + doall_conv((type *)node, arg); \ + } \ + static ossl_unused ossl_inline type *\ + ossl_check_##type##_lh_plain_type(type *ptr) \ { \ return ptr; \ } \ - static ossl_unused ossl_inline const type *ossl_check_const_##type##_lh_plain_type(const type *ptr) \ + static ossl_unused ossl_inline const type * \ + ossl_check_const_##type##_lh_plain_type(const type *ptr) \ { \ return ptr; \ } \ - static ossl_unused ossl_inline const OPENSSL_LHASH *ossl_check_const_##type##_lh_type(const LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline const OPENSSL_LHASH * \ + ossl_check_const_##type##_lh_type(const LHASH_OF(type) *lh) \ { \ return (const OPENSSL_LHASH *)lh; \ } \ - static ossl_unused ossl_inline OPENSSL_LHASH *ossl_check_##type##_lh_type(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline OPENSSL_LHASH * \ + ossl_check_##type##_lh_type(LHASH_OF(type) *lh) \ { \ return (OPENSSL_LHASH *)lh; \ } \ - static ossl_unused ossl_inline OPENSSL_LH_COMPFUNC ossl_check_##type##_lh_compfunc_type(lh_##type##_compfunc cmp) \ + static ossl_unused ossl_inline OPENSSL_LH_COMPFUNC \ + ossl_check_##type##_lh_compfunc_type(lh_##type##_compfunc cmp) \ { \ return (OPENSSL_LH_COMPFUNC)cmp; \ } \ - static ossl_unused ossl_inline OPENSSL_LH_HASHFUNC ossl_check_##type##_lh_hashfunc_type(lh_##type##_hashfunc hfn) \ + static ossl_unused ossl_inline OPENSSL_LH_HASHFUNC \ + ossl_check_##type##_lh_hashfunc_type(lh_##type##_hashfunc hfn) \ { \ return (OPENSSL_LH_HASHFUNC)hfn; \ } \ - static ossl_unused ossl_inline OPENSSL_LH_DOALL_FUNC ossl_check_##type##_lh_doallfunc_type(lh_##type##_doallfunc dfn) \ + static ossl_unused ossl_inline OPENSSL_LH_DOALL_FUNC \ + ossl_check_##type##_lh_doallfunc_type(lh_##type##_doallfunc dfn) \ { \ return (OPENSSL_LH_DOALL_FUNC)dfn; \ } \ LHASH_OF(type) -# define DEFINE_LHASH_OF(type) \ - LHASH_OF(type) { union lh_##type##_dummy { void* d1; unsigned long d2; int d3; } dummy; }; \ - static ossl_unused ossl_inline LHASH_OF(type) *lh_##type##_new(unsigned long (*hfn)(const type *), \ - int (*cfn)(const type *, const type *)) \ +# ifndef OPENSSL_NO_DEPRECATED_3_1 +# define DEFINE_LHASH_OF_DEPRECATED(type) \ + static ossl_unused ossl_inline void \ + lh_##type##_node_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ { \ - return (LHASH_OF(type) *) \ - OPENSSL_LH_new((OPENSSL_LH_HASHFUNC)hfn, (OPENSSL_LH_COMPFUNC)cfn); \ + OPENSSL_LH_node_stats_bio((const OPENSSL_LHASH *)lh, out); \ } \ - static ossl_unused ossl_inline void lh_##type##_free(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline void \ + lh_##type##_node_usage_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + { \ + OPENSSL_LH_node_usage_stats_bio((const OPENSSL_LHASH *)lh, out); \ + } \ + static ossl_unused ossl_inline void \ + lh_##type##_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + { \ + OPENSSL_LH_stats_bio((const OPENSSL_LHASH *)lh, out); \ + } +# else +# define DEFINE_LHASH_OF_DEPRECATED(type) +# endif + +# define DEFINE_LHASH_OF_EX(type) \ + LHASH_OF(type) { \ + union lh_##type##_dummy { void* d1; unsigned long d2; int d3; } dummy; \ + }; \ + static unsigned long \ + lh_##type##_hfn_thunk(const void *data, OPENSSL_LH_HASHFUNC hfn) \ + { \ + unsigned long (*hfn_conv)(const type *) = (unsigned long (*)(const type *))hfn; \ + return hfn_conv((const type *)data); \ + } \ + static int lh_##type##_cfn_thunk(const void *da, const void *db, OPENSSL_LH_COMPFUNC cfn) \ + { \ + int (*cfn_conv)(const type *, const type *) = (int (*)(const type *, const type *))cfn; \ + return cfn_conv((const type *)da, (const type *)db); \ + } \ + static ossl_unused ossl_inline void \ + lh_##type##_free(LHASH_OF(type) *lh) \ { \ OPENSSL_LH_free((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline void lh_##type##_flush(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline void \ + lh_##type##_flush(LHASH_OF(type) *lh) \ { \ OPENSSL_LH_flush((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline type *lh_##type##_insert(LHASH_OF(type) *lh, type *d) \ + static ossl_unused ossl_inline type * \ + lh_##type##_insert(LHASH_OF(type) *lh, type *d) \ { \ return (type *)OPENSSL_LH_insert((OPENSSL_LHASH *)lh, d); \ } \ - static ossl_unused ossl_inline type *lh_##type##_delete(LHASH_OF(type) *lh, const type *d) \ + static ossl_unused ossl_inline type * \ + lh_##type##_delete(LHASH_OF(type) *lh, const type *d) \ { \ return (type *)OPENSSL_LH_delete((OPENSSL_LHASH *)lh, d); \ } \ - static ossl_unused ossl_inline type *lh_##type##_retrieve(LHASH_OF(type) *lh, const type *d) \ + static ossl_unused ossl_inline type * \ + lh_##type##_retrieve(LHASH_OF(type) *lh, const type *d) \ { \ return (type *)OPENSSL_LH_retrieve((OPENSSL_LHASH *)lh, d); \ } \ - static ossl_unused ossl_inline int lh_##type##_error(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline int \ + lh_##type##_error(LHASH_OF(type) *lh) \ { \ return OPENSSL_LH_error((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline unsigned long lh_##type##_num_items(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline unsigned long \ + lh_##type##_num_items(LHASH_OF(type) *lh) \ { \ return OPENSSL_LH_num_items((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline void lh_##type##_node_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + static ossl_unused ossl_inline unsigned long \ + lh_##type##_get_down_load(LHASH_OF(type) *lh) \ { \ - OPENSSL_LH_node_stats_bio((const OPENSSL_LHASH *)lh, out); \ + return OPENSSL_LH_get_down_load((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline void lh_##type##_node_usage_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + static ossl_unused ossl_inline void \ + lh_##type##_set_down_load(LHASH_OF(type) *lh, unsigned long dl) \ { \ - OPENSSL_LH_node_usage_stats_bio((const OPENSSL_LHASH *)lh, out); \ + OPENSSL_LH_set_down_load((OPENSSL_LHASH *)lh, dl); \ } \ - static ossl_unused ossl_inline void lh_##type##_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall_thunk(void *node, OPENSSL_LH_DOALL_FUNC doall) \ { \ - OPENSSL_LH_stats_bio((const OPENSSL_LHASH *)lh, out); \ + void (*doall_conv)(type *) = (void (*)(type *))doall; \ + doall_conv((type *)node); \ } \ - static ossl_unused ossl_inline unsigned long lh_##type##_get_down_load(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall_arg_thunk(void *node, void *arg, OPENSSL_LH_DOALL_FUNCARG doall) \ { \ - return OPENSSL_LH_get_down_load((OPENSSL_LHASH *)lh); \ + void (*doall_conv)(type *, void *) = (void (*)(type *, void *))doall; \ + doall_conv((type *)node, arg); \ } \ - static ossl_unused ossl_inline void lh_##type##_set_down_load(LHASH_OF(type) *lh, unsigned long dl) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall(LHASH_OF(type) *lh, void (*doall)(type *)) \ { \ - OPENSSL_LH_set_down_load((OPENSSL_LHASH *)lh, dl); \ + OPENSSL_LH_doall((OPENSSL_LHASH *)lh, (OPENSSL_LH_DOALL_FUNC)doall); \ } \ - static ossl_unused ossl_inline void lh_##type##_doall(LHASH_OF(type) *lh, \ - void (*doall)(type *)) \ + static ossl_unused ossl_inline LHASH_OF(type) * \ + lh_##type##_new(unsigned long (*hfn)(const type *), \ + int (*cfn)(const type *, const type *)) \ { \ - OPENSSL_LH_doall((OPENSSL_LHASH *)lh, (OPENSSL_LH_DOALL_FUNC)doall); \ + return (LHASH_OF(type) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new((OPENSSL_LH_HASHFUNC)hfn, (OPENSSL_LH_COMPFUNC)cfn), \ + lh_##type##_hfn_thunk, lh_##type##_cfn_thunk, \ + lh_##type##_doall_thunk, \ + lh_##type##_doall_arg_thunk); \ } \ - static ossl_unused ossl_inline void lh_##type##_doall_arg(LHASH_OF(type) *lh, \ - void (*doallarg)(type *, void *), \ - void *arg) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall_arg(LHASH_OF(type) *lh, \ + void (*doallarg)(type *, void *), void *arg) \ { \ OPENSSL_LH_doall_arg((OPENSSL_LHASH *)lh, \ (OPENSSL_LH_DOALL_FUNCARG)doallarg, arg); \ } \ LHASH_OF(type) +# define DEFINE_LHASH_OF(type) \ + DEFINE_LHASH_OF_EX(type); \ + DEFINE_LHASH_OF_DEPRECATED(type) \ + LHASH_OF(type) + #define IMPLEMENT_LHASH_DOALL_ARG_CONST(type, argtype) \ int_implement_lhash_doall(type, argtype, const type) @@ -240,17 +341,26 @@ void OPENSSL_LH_node_usage_stats_bio(const OPENSSL_LHASH *lh, BIO *out); int_implement_lhash_doall(type, argtype, type) #define int_implement_lhash_doall(type, argtype, cbargtype) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall_##argtype##_thunk(void *node, void *arg, OPENSSL_LH_DOALL_FUNCARG fn) \ + { \ + void (*fn_conv)(cbargtype *, argtype *) = (void (*)(cbargtype *, argtype *))fn; \ + fn_conv((cbargtype *)node, (argtype *)arg); \ + } \ static ossl_unused ossl_inline void \ lh_##type##_doall_##argtype(LHASH_OF(type) *lh, \ void (*fn)(cbargtype *, argtype *), \ argtype *arg) \ { \ - OPENSSL_LH_doall_arg((OPENSSL_LHASH *)lh, (OPENSSL_LH_DOALL_FUNCARG)fn, (void *)arg); \ + OPENSSL_LH_doall_arg_thunk((OPENSSL_LHASH *)lh, \ + lh_##type##_doall_##argtype##_thunk, \ + (OPENSSL_LH_DOALL_FUNCARG)fn, \ + (void *)arg); \ } \ LHASH_OF(type) DEFINE_LHASH_OF_INTERNAL(OPENSSL_STRING); -#define lh_OPENSSL_STRING_new(hfn, cmp) ((LHASH_OF(OPENSSL_STRING) *)OPENSSL_LH_new(ossl_check_OPENSSL_STRING_lh_hashfunc_type(hfn), ossl_check_OPENSSL_STRING_lh_compfunc_type(cmp))) +#define lh_OPENSSL_STRING_new(hfn, cmp) ((LHASH_OF(OPENSSL_STRING) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new(ossl_check_OPENSSL_STRING_lh_hashfunc_type(hfn), ossl_check_OPENSSL_STRING_lh_compfunc_type(cmp)), lh_OPENSSL_STRING_hash_thunk, lh_OPENSSL_STRING_comp_thunk, lh_OPENSSL_STRING_doall_thunk, lh_OPENSSL_STRING_doall_arg_thunk)) #define lh_OPENSSL_STRING_free(lh) OPENSSL_LH_free(ossl_check_OPENSSL_STRING_lh_type(lh)) #define lh_OPENSSL_STRING_flush(lh) OPENSSL_LH_flush(ossl_check_OPENSSL_STRING_lh_type(lh)) #define lh_OPENSSL_STRING_insert(lh, ptr) ((OPENSSL_STRING *)OPENSSL_LH_insert(ossl_check_OPENSSL_STRING_lh_type(lh), ossl_check_OPENSSL_STRING_lh_plain_type(ptr))) @@ -265,7 +375,7 @@ DEFINE_LHASH_OF_INTERNAL(OPENSSL_STRING); #define lh_OPENSSL_STRING_set_down_load(lh, dl) OPENSSL_LH_set_down_load(ossl_check_OPENSSL_STRING_lh_type(lh), dl) #define lh_OPENSSL_STRING_doall(lh, dfn) OPENSSL_LH_doall(ossl_check_OPENSSL_STRING_lh_type(lh), ossl_check_OPENSSL_STRING_lh_doallfunc_type(dfn)) DEFINE_LHASH_OF_INTERNAL(OPENSSL_CSTRING); -#define lh_OPENSSL_CSTRING_new(hfn, cmp) ((LHASH_OF(OPENSSL_CSTRING) *)OPENSSL_LH_new(ossl_check_OPENSSL_CSTRING_lh_hashfunc_type(hfn), ossl_check_OPENSSL_CSTRING_lh_compfunc_type(cmp))) +#define lh_OPENSSL_CSTRING_new(hfn, cmp) ((LHASH_OF(OPENSSL_CSTRING) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new(ossl_check_OPENSSL_CSTRING_lh_hashfunc_type(hfn), ossl_check_OPENSSL_CSTRING_lh_compfunc_type(cmp)), lh_OPENSSL_CSTRING_hash_thunk, lh_OPENSSL_CSTRING_comp_thunk, lh_OPENSSL_CSTRING_doall_thunk, lh_OPENSSL_CSTRING_doall_arg_thunk)) #define lh_OPENSSL_CSTRING_free(lh) OPENSSL_LH_free(ossl_check_OPENSSL_CSTRING_lh_type(lh)) #define lh_OPENSSL_CSTRING_flush(lh) OPENSSL_LH_flush(ossl_check_OPENSSL_CSTRING_lh_type(lh)) #define lh_OPENSSL_CSTRING_insert(lh, ptr) ((OPENSSL_CSTRING *)OPENSSL_LH_insert(ossl_check_OPENSSL_CSTRING_lh_type(lh), ossl_check_OPENSSL_CSTRING_lh_plain_type(ptr))) diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/include/openssl/opensslv.h b/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/include/openssl/opensslv.h index 5fb5bc63056fe0..dd50d89cb9982d 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/include/openssl/opensslv.h +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/include/openssl/opensslv.h @@ -28,8 +28,8 @@ extern "C" { * These macros express version number MAJOR.MINOR.PATCH exactly */ # define OPENSSL_VERSION_MAJOR 3 -# define OPENSSL_VERSION_MINOR 0 -# define OPENSSL_VERSION_PATCH 17 +# define OPENSSL_VERSION_MINOR 5 +# define OPENSSL_VERSION_PATCH 1 /* * Additional version information @@ -74,8 +74,8 @@ extern "C" { * longer variant with OPENSSL_VERSION_PRE_RELEASE_STR and * OPENSSL_VERSION_BUILD_METADATA_STR appended. */ -# define OPENSSL_VERSION_STR "3.0.17" -# define OPENSSL_FULL_VERSION_STR "3.0.17" +# define OPENSSL_VERSION_STR "3.5.1" +# define OPENSSL_FULL_VERSION_STR "3.5.1" /* * SECTION 3: ADDITIONAL METADATA @@ -88,7 +88,7 @@ extern "C" { * SECTION 4: BACKWARD COMPATIBILITY */ -# define OPENSSL_VERSION_TEXT "OpenSSL 3.0.17 1 Jul 2025" +# define OPENSSL_VERSION_TEXT "OpenSSL 3.5.1 1 Jul 2025" /* Synthesize OPENSSL_VERSION_NUMBER with the layout 0xMNN00PPSL */ # ifdef OPENSSL_VERSION_PRE_RELEASE diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/include/openssl/pkcs12.h b/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/include/openssl/pkcs12.h index c5e0cab06491ec..0809645dad0bbf 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/include/openssl/pkcs12.h +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/include/openssl/pkcs12.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/pkcs12.h.in * - * Copyright 1999-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1999-2024 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -25,6 +25,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -41,6 +44,7 @@ extern "C" { # define PKCS12_MAC_KEY_LENGTH 20 +/* The macro is expected to be used only internally. Kept for backwards compatibility. */ # define PKCS12_SALT_LEN 8 /* It's not clear if these are actually needed... */ @@ -130,7 +134,9 @@ int PKCS12_SAFEBAG_get_bag_nid(const PKCS12_SAFEBAG *bag); const ASN1_TYPE *PKCS12_SAFEBAG_get0_bag_obj(const PKCS12_SAFEBAG *bag); const ASN1_OBJECT *PKCS12_SAFEBAG_get0_bag_type(const PKCS12_SAFEBAG *bag); +X509 *PKCS12_SAFEBAG_get1_cert_ex(const PKCS12_SAFEBAG *bag, OSSL_LIB_CTX *libctx, const char *propq); X509 *PKCS12_SAFEBAG_get1_cert(const PKCS12_SAFEBAG *bag); +X509_CRL *PKCS12_SAFEBAG_get1_crl_ex(const PKCS12_SAFEBAG *bag, OSSL_LIB_CTX *libctx, const char *propq); X509_CRL *PKCS12_SAFEBAG_get1_crl(const PKCS12_SAFEBAG *bag); const STACK_OF(PKCS12_SAFEBAG) * PKCS12_SAFEBAG_get0_safes(const PKCS12_SAFEBAG *bag); @@ -218,6 +224,7 @@ ASN1_TYPE *PKCS12_get_attr_gen(const STACK_OF(X509_ATTRIBUTE) *attrs, char *PKCS12_get_friendlyname(PKCS12_SAFEBAG *bag); const STACK_OF(X509_ATTRIBUTE) * PKCS12_SAFEBAG_get0_attrs(const PKCS12_SAFEBAG *bag); +void PKCS12_SAFEBAG_set0_attrs(PKCS12_SAFEBAG *bag, STACK_OF(X509_ATTRIBUTE) *attrs); unsigned char *PKCS12_pbe_crypt(const X509_ALGOR *algor, const char *pass, int passlen, const unsigned char *in, int inlen, @@ -285,6 +292,9 @@ int PKCS12_verify_mac(PKCS12 *p12, const char *pass, int passlen); int PKCS12_set_mac(PKCS12 *p12, const char *pass, int passlen, unsigned char *salt, int saltlen, int iter, const EVP_MD *md_type); +int PKCS12_set_pbmac1_pbkdf2(PKCS12 *p12, const char *pass, int passlen, + unsigned char *salt, int saltlen, int iter, + const EVP_MD *md_type, const char *prf_md_name); int PKCS12_setup_mac(PKCS12 *p12, int iter, unsigned char *salt, int saltlen, const EVP_MD *md_type); unsigned char *OPENSSL_asc2uni(const char *asc, int asclen, @@ -305,6 +315,7 @@ DECLARE_ASN1_ITEM(PKCS12_AUTHSAFES) void PKCS12_PBE_add(void); int PKCS12_parse(PKCS12 *p12, const char *pass, EVP_PKEY **pkey, X509 **cert, STACK_OF(X509) **ca); +typedef int PKCS12_create_cb(PKCS12_SAFEBAG *bag, void *cbarg); PKCS12 *PKCS12_create(const char *pass, const char *name, EVP_PKEY *pkey, X509 *cert, STACK_OF(X509) *ca, int nid_key, int nid_cert, int iter, int mac_iter, int keytype); @@ -312,6 +323,11 @@ PKCS12 *PKCS12_create_ex(const char *pass, const char *name, EVP_PKEY *pkey, X509 *cert, STACK_OF(X509) *ca, int nid_key, int nid_cert, int iter, int mac_iter, int keytype, OSSL_LIB_CTX *ctx, const char *propq); +PKCS12 *PKCS12_create_ex2(const char *pass, const char *name, EVP_PKEY *pkey, + X509 *cert, STACK_OF(X509) *ca, int nid_key, int nid_cert, + int iter, int mac_iter, int keytype, + OSSL_LIB_CTX *ctx, const char *propq, + PKCS12_create_cb *cb, void *cbarg); PKCS12_SAFEBAG *PKCS12_add_cert(STACK_OF(PKCS12_SAFEBAG) **pbags, X509 *cert); PKCS12_SAFEBAG *PKCS12_add_key(STACK_OF(PKCS12_SAFEBAG) **pbags, diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/include/openssl/pkcs7.h b/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/include/openssl/pkcs7.h index 0ce79bf4fa160e..fa68462aff973b 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/include/openssl/pkcs7.h +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/include/openssl/pkcs7.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/pkcs7.h.in * - * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -28,6 +28,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -131,8 +134,8 @@ SKM_DEFINE_STACK_OF_INTERNAL(PKCS7_RECIP_INFO, PKCS7_RECIP_INFO, PKCS7_RECIP_INF typedef struct pkcs7_signed_st { ASN1_INTEGER *version; /* version 1 */ STACK_OF(X509_ALGOR) *md_algs; /* md used */ - STACK_OF(X509) *cert; /* [ 0 ] */ - STACK_OF(X509_CRL) *crl; /* [ 1 ] */ + STACK_OF(X509) *cert; /* [ 0 ] */ /* name should be 'certificates' */ + STACK_OF(X509_CRL) *crl; /* [ 1 ] */ /* name should be 'crls' */ STACK_OF(PKCS7_SIGNER_INFO) *signer_info; struct pkcs7_st *contents; } PKCS7_SIGNED; @@ -158,8 +161,8 @@ typedef struct pkcs7_enveloped_st { typedef struct pkcs7_signedandenveloped_st { ASN1_INTEGER *version; /* version 1 */ STACK_OF(X509_ALGOR) *md_algs; /* md used */ - STACK_OF(X509) *cert; /* [ 0 ] */ - STACK_OF(X509_CRL) *crl; /* [ 1 ] */ + STACK_OF(X509) *cert; /* [ 0 ] */ /* name should be 'certificates' */ + STACK_OF(X509_CRL) *crl; /* [ 1 ] */ /* name should be 'crls' */ STACK_OF(PKCS7_SIGNER_INFO) *signer_info; PKCS7_ENC_CONTENT *enc_data; STACK_OF(PKCS7_RECIP_INFO) *recipientinfo; @@ -200,7 +203,7 @@ typedef struct pkcs7_st { /* NID_pkcs7_data */ ASN1_OCTET_STRING *data; /* NID_pkcs7_signed */ - PKCS7_SIGNED *sign; + PKCS7_SIGNED *sign; /* field name 'signed' would clash with C keyword */ /* NID_pkcs7_enveloped */ PKCS7_ENVELOPE *enveloped; /* NID_pkcs7_signedAndEnveloped */ @@ -341,13 +344,13 @@ int PKCS7_SIGNER_INFO_set(PKCS7_SIGNER_INFO *p7i, X509 *x509, EVP_PKEY *pkey, const EVP_MD *dgst); int PKCS7_SIGNER_INFO_sign(PKCS7_SIGNER_INFO *si); int PKCS7_add_signer(PKCS7 *p7, PKCS7_SIGNER_INFO *p7i); -int PKCS7_add_certificate(PKCS7 *p7, X509 *x509); -int PKCS7_add_crl(PKCS7 *p7, X509_CRL *x509); +int PKCS7_add_certificate(PKCS7 *p7, X509 *cert); +int PKCS7_add_crl(PKCS7 *p7, X509_CRL *crl); int PKCS7_content_new(PKCS7 *p7, int nid); int PKCS7_dataVerify(X509_STORE *cert_store, X509_STORE_CTX *ctx, BIO *bio, PKCS7 *p7, PKCS7_SIGNER_INFO *si); int PKCS7_signatureVerify(BIO *bio, PKCS7 *p7, PKCS7_SIGNER_INFO *si, - X509 *x509); + X509 *signer); BIO *PKCS7_dataInit(PKCS7 *p7, BIO *bio); int PKCS7_dataFinal(PKCS7 *p7, BIO *bio); diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/include/openssl/ssl.h b/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/include/openssl/ssl.h index 3df725c56d6c5e..7e3d89c7ef3dc9 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/include/openssl/ssl.h +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/include/openssl/ssl.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/ssl.h.in * - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved * Copyright 2005 Nokia. All rights reserved. * @@ -24,6 +24,7 @@ # endif # include +# include # include # include # include @@ -42,6 +43,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -231,10 +235,8 @@ typedef struct ssl_cipher_st SSL_CIPHER; typedef struct ssl_session_st SSL_SESSION; typedef struct tls_sigalgs_st TLS_SIGALGS; typedef struct ssl_conf_ctx_st SSL_CONF_CTX; -typedef struct ssl_comp_st SSL_COMP; STACK_OF(SSL_CIPHER); -STACK_OF(SSL_COMP); /* SRTP protection profiles for use with the use_srtp extension (RFC 5764)*/ typedef struct srtp_protection_profile_st { @@ -278,28 +280,31 @@ typedef int (*tls_session_secret_cb_fn)(SSL *s, void *secret, int *secret_len, /* Extension context codes */ /* This extension is only allowed in TLS */ -#define SSL_EXT_TLS_ONLY 0x0001 +#define SSL_EXT_TLS_ONLY 0x00001 /* This extension is only allowed in DTLS */ -#define SSL_EXT_DTLS_ONLY 0x0002 +#define SSL_EXT_DTLS_ONLY 0x00002 /* Some extensions may be allowed in DTLS but we don't implement them for it */ -#define SSL_EXT_TLS_IMPLEMENTATION_ONLY 0x0004 +#define SSL_EXT_TLS_IMPLEMENTATION_ONLY 0x00004 /* Most extensions are not defined for SSLv3 but EXT_TYPE_renegotiate is */ -#define SSL_EXT_SSL3_ALLOWED 0x0008 +#define SSL_EXT_SSL3_ALLOWED 0x00008 /* Extension is only defined for TLS1.2 and below */ -#define SSL_EXT_TLS1_2_AND_BELOW_ONLY 0x0010 +#define SSL_EXT_TLS1_2_AND_BELOW_ONLY 0x00010 /* Extension is only defined for TLS1.3 and above */ -#define SSL_EXT_TLS1_3_ONLY 0x0020 +#define SSL_EXT_TLS1_3_ONLY 0x00020 /* Ignore this extension during parsing if we are resuming */ -#define SSL_EXT_IGNORE_ON_RESUMPTION 0x0040 -#define SSL_EXT_CLIENT_HELLO 0x0080 +#define SSL_EXT_IGNORE_ON_RESUMPTION 0x00040 +#define SSL_EXT_CLIENT_HELLO 0x00080 /* Really means TLS1.2 or below */ -#define SSL_EXT_TLS1_2_SERVER_HELLO 0x0100 -#define SSL_EXT_TLS1_3_SERVER_HELLO 0x0200 -#define SSL_EXT_TLS1_3_ENCRYPTED_EXTENSIONS 0x0400 -#define SSL_EXT_TLS1_3_HELLO_RETRY_REQUEST 0x0800 -#define SSL_EXT_TLS1_3_CERTIFICATE 0x1000 -#define SSL_EXT_TLS1_3_NEW_SESSION_TICKET 0x2000 -#define SSL_EXT_TLS1_3_CERTIFICATE_REQUEST 0x4000 +#define SSL_EXT_TLS1_2_SERVER_HELLO 0x00100 +#define SSL_EXT_TLS1_3_SERVER_HELLO 0x00200 +#define SSL_EXT_TLS1_3_ENCRYPTED_EXTENSIONS 0x00400 +#define SSL_EXT_TLS1_3_HELLO_RETRY_REQUEST 0x00800 +#define SSL_EXT_TLS1_3_CERTIFICATE 0x01000 +#define SSL_EXT_TLS1_3_NEW_SESSION_TICKET 0x02000 +#define SSL_EXT_TLS1_3_CERTIFICATE_REQUEST 0x04000 +#define SSL_EXT_TLS1_3_CERTIFICATE_COMPRESSION 0x08000 +/* When sending a raw public key in a certificate message */ +#define SSL_EXT_TLS1_3_RAW_PUBLIC_KEY 0x10000 /* Typedefs for handling custom extensions */ @@ -404,7 +409,7 @@ typedef int (*SSL_async_callback_fn)(SSL *s, void *arg); */ # define SSL_OP_CIPHER_SERVER_PREFERENCE SSL_OP_BIT(22) /* - * If set, a server will allow a client to issue a SSLv3.0 version + * If set, a server will allow a client to issue an SSLv3.0 version * number as latest version supported in the premaster secret, even when * TLSv1.0 (version 3.1) was announced in the client hello. Normally * this is forbidden to prevent version rollback attacks. @@ -430,6 +435,19 @@ typedef int (*SSL_async_callback_fn)(SSL *s, void *arg); * interoperability with CryptoPro CSP 3.x */ # define SSL_OP_CRYPTOPRO_TLSEXT_BUG SSL_OP_BIT(31) +/* + * Disable RFC8879 certificate compression + * SSL_OP_NO_TX_CERTIFICATE_COMPRESSION: don't send compressed certificates, + * and ignore the extension when received. + * SSL_OP_NO_RX_CERTIFICATE_COMPRESSION: don't send the extension, and + * subsequently indicating that receiving is not supported + */ +# define SSL_OP_NO_TX_CERTIFICATE_COMPRESSION SSL_OP_BIT(32) +# define SSL_OP_NO_RX_CERTIFICATE_COMPRESSION SSL_OP_BIT(33) + /* Enable KTLS TX zerocopy on Linux */ +# define SSL_OP_ENABLE_KTLS_TX_ZEROCOPY_SENDFILE SSL_OP_BIT(34) + +#define SSL_OP_PREFER_NO_DHE_KEX SSL_OP_BIT(35) /* * Option "collections." @@ -574,6 +592,8 @@ typedef int (*SSL_async_callback_fn)(SSL *s, void *arg); # define CERT_PKEY_CERT_TYPE 0x400 /* Cert chain suitable to Suite B */ # define CERT_PKEY_SUITEB 0x800 +/* Cert pkey valid for raw public key use */ +# define CERT_PKEY_RPK 0x1000 # define SSL_CONF_FLAG_CMDLINE 0x1 # define SSL_CONF_FLAG_FILE 0x2 @@ -965,6 +985,7 @@ uint32_t SSL_get_recv_max_early_data(const SSL *s); # include /* This is mostly sslv3 with a few tweaks */ # include /* Datagram TLS */ # include /* Support for the use_srtp extension */ +# include #ifdef __cplusplus extern "C" { @@ -1000,32 +1021,6 @@ SKM_DEFINE_STACK_OF_INTERNAL(SSL_CIPHER, const SSL_CIPHER, SSL_CIPHER) #define sk_SSL_CIPHER_dup(sk) ((STACK_OF(SSL_CIPHER) *)OPENSSL_sk_dup(ossl_check_const_SSL_CIPHER_sk_type(sk))) #define sk_SSL_CIPHER_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(SSL_CIPHER) *)OPENSSL_sk_deep_copy(ossl_check_const_SSL_CIPHER_sk_type(sk), ossl_check_SSL_CIPHER_copyfunc_type(copyfunc), ossl_check_SSL_CIPHER_freefunc_type(freefunc))) #define sk_SSL_CIPHER_set_cmp_func(sk, cmp) ((sk_SSL_CIPHER_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_SSL_CIPHER_sk_type(sk), ossl_check_SSL_CIPHER_compfunc_type(cmp))) -SKM_DEFINE_STACK_OF_INTERNAL(SSL_COMP, SSL_COMP, SSL_COMP) -#define sk_SSL_COMP_num(sk) OPENSSL_sk_num(ossl_check_const_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_value(sk, idx) ((SSL_COMP *)OPENSSL_sk_value(ossl_check_const_SSL_COMP_sk_type(sk), (idx))) -#define sk_SSL_COMP_new(cmp) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new(ossl_check_SSL_COMP_compfunc_type(cmp))) -#define sk_SSL_COMP_new_null() ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new_null()) -#define sk_SSL_COMP_new_reserve(cmp, n) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new_reserve(ossl_check_SSL_COMP_compfunc_type(cmp), (n))) -#define sk_SSL_COMP_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_SSL_COMP_sk_type(sk), (n)) -#define sk_SSL_COMP_free(sk) OPENSSL_sk_free(ossl_check_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_zero(sk) OPENSSL_sk_zero(ossl_check_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_delete(sk, i) ((SSL_COMP *)OPENSSL_sk_delete(ossl_check_SSL_COMP_sk_type(sk), (i))) -#define sk_SSL_COMP_delete_ptr(sk, ptr) ((SSL_COMP *)OPENSSL_sk_delete_ptr(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr))) -#define sk_SSL_COMP_push(sk, ptr) OPENSSL_sk_push(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) -#define sk_SSL_COMP_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) -#define sk_SSL_COMP_pop(sk) ((SSL_COMP *)OPENSSL_sk_pop(ossl_check_SSL_COMP_sk_type(sk))) -#define sk_SSL_COMP_shift(sk) ((SSL_COMP *)OPENSSL_sk_shift(ossl_check_SSL_COMP_sk_type(sk))) -#define sk_SSL_COMP_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_SSL_COMP_sk_type(sk),ossl_check_SSL_COMP_freefunc_type(freefunc)) -#define sk_SSL_COMP_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr), (idx)) -#define sk_SSL_COMP_set(sk, idx, ptr) ((SSL_COMP *)OPENSSL_sk_set(ossl_check_SSL_COMP_sk_type(sk), (idx), ossl_check_SSL_COMP_type(ptr))) -#define sk_SSL_COMP_find(sk, ptr) OPENSSL_sk_find(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) -#define sk_SSL_COMP_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) -#define sk_SSL_COMP_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr), pnum) -#define sk_SSL_COMP_sort(sk) OPENSSL_sk_sort(ossl_check_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_dup(sk) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_dup(ossl_check_const_SSL_COMP_sk_type(sk))) -#define sk_SSL_COMP_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_deep_copy(ossl_check_const_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_copyfunc_type(copyfunc), ossl_check_SSL_COMP_freefunc_type(freefunc))) -#define sk_SSL_COMP_set_cmp_func(sk, cmp) ((sk_SSL_COMP_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_compfunc_type(cmp))) /* compatibility */ @@ -1066,6 +1061,7 @@ typedef enum { DTLS_ST_CR_HELLO_VERIFY_REQUEST, TLS_ST_CR_SRVR_HELLO, TLS_ST_CR_CERT, + TLS_ST_CR_COMP_CERT, TLS_ST_CR_CERT_STATUS, TLS_ST_CR_KEY_EXCH, TLS_ST_CR_CERT_REQ, @@ -1075,6 +1071,7 @@ typedef enum { TLS_ST_CR_FINISHED, TLS_ST_CW_CLNT_HELLO, TLS_ST_CW_CERT, + TLS_ST_CW_COMP_CERT, TLS_ST_CW_KEY_EXCH, TLS_ST_CW_CERT_VRFY, TLS_ST_CW_CHANGE, @@ -1085,10 +1082,12 @@ typedef enum { DTLS_ST_SW_HELLO_VERIFY_REQUEST, TLS_ST_SW_SRVR_HELLO, TLS_ST_SW_CERT, + TLS_ST_SW_COMP_CERT, TLS_ST_SW_KEY_EXCH, TLS_ST_SW_CERT_REQ, TLS_ST_SW_SRVR_DONE, TLS_ST_SR_CERT, + TLS_ST_SR_COMP_CERT, TLS_ST_SR_KEY_EXCH, TLS_ST_SR_CERT_VRFY, TLS_ST_SR_NEXT_PROTO, @@ -1380,9 +1379,13 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) # define SSL_CTRL_GET_SIGNATURE_NID 132 # define SSL_CTRL_GET_TMP_KEY 133 # define SSL_CTRL_GET_NEGOTIATED_GROUP 134 +# define SSL_CTRL_GET_IANA_GROUPS 135 # define SSL_CTRL_SET_RETRY_VERIFY 136 # define SSL_CTRL_GET_VERIFY_CERT_STORE 137 # define SSL_CTRL_GET_CHAIN_CERT_STORE 138 +# define SSL_CTRL_GET0_IMPLEMENTED_GROUPS 139 +# define SSL_CTRL_GET_SIGNATURE_NAME 140 +# define SSL_CTRL_GET_PEER_SIGNATURE_NAME 141 # define SSL_CERT_SET_FIRST 1 # define SSL_CERT_SET_NEXT 2 # define SSL_CERT_SET_SERVER 3 @@ -1485,10 +1488,15 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) # define SSL_get1_groups(s, glist) \ SSL_ctrl(s,SSL_CTRL_GET_GROUPS,0,(int*)(glist)) +# define SSL_get0_iana_groups(s, plst) \ + SSL_ctrl(s,SSL_CTRL_GET_IANA_GROUPS,0,(uint16_t **)(plst)) # define SSL_CTX_set1_groups(ctx, glist, glistlen) \ SSL_CTX_ctrl(ctx,SSL_CTRL_SET_GROUPS,glistlen,(int *)(glist)) # define SSL_CTX_set1_groups_list(ctx, s) \ SSL_CTX_ctrl(ctx,SSL_CTRL_SET_GROUPS_LIST,0,(char *)(s)) +# define SSL_CTX_get0_implemented_groups(ctx, all, out) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_GET0_IMPLEMENTED_GROUPS, all, \ + (STACK_OF(OPENSSL_CSTRING) *)(out)) # define SSL_set1_groups(s, glist, glistlen) \ SSL_ctrl(s,SSL_CTRL_SET_GROUPS,glistlen,(char *)(glist)) # define SSL_set1_groups_list(s, str) \ @@ -1520,8 +1528,12 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) (char *)(clist)) # define SSL_set1_client_certificate_types(s, clist, clistlen) \ SSL_ctrl(s,SSL_CTRL_SET_CLIENT_CERT_TYPES,clistlen,(char *)(clist)) +# define SSL_get0_signature_name(s, str) \ + SSL_ctrl(s,SSL_CTRL_GET_SIGNATURE_NAME,0,(1?(str):(const char **)NULL)) # define SSL_get_signature_nid(s, pn) \ SSL_ctrl(s,SSL_CTRL_GET_SIGNATURE_NID,0,pn) +# define SSL_get0_peer_signature_name(s, str) \ + SSL_ctrl(s,SSL_CTRL_GET_PEER_SIGNATURE_NAME,0,(1?(str):(const char **)NULL)) # define SSL_get_peer_signature_nid(s, pn) \ SSL_ctrl(s,SSL_CTRL_GET_PEER_SIGNATURE_NID,0,pn) # define SSL_get_peer_tmp_key(s, pk) \ @@ -1549,6 +1561,7 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) # define SSL_get_max_proto_version(s) \ SSL_ctrl(s, SSL_CTRL_GET_MAX_PROTO_VERSION, 0, NULL) +const char *SSL_get0_group_name(SSL *s); const char *SSL_group_to_name(SSL *s, int id); /* Backwards compatibility, original 1.1.0 names */ @@ -1613,7 +1626,11 @@ void SSL_CTX_set1_cert_store(SSL_CTX *, X509_STORE *); __owur int SSL_want(const SSL *s); __owur int SSL_clear(SSL *s); +#ifndef OPENSSL_NO_DEPRECATED_3_4 +OSSL_DEPRECATEDIN_3_4_FOR("not Y2038-safe, replace with SSL_CTX_flush_sessions_ex()") void SSL_CTX_flush_sessions(SSL_CTX *ctx, long tm); +#endif +void SSL_CTX_flush_sessions_ex(SSL_CTX *ctx, time_t tm); __owur const SSL_CIPHER *SSL_get_current_cipher(const SSL *s); __owur const SSL_CIPHER *SSL_get_pending_cipher(const SSL *s); @@ -1725,13 +1742,21 @@ __owur const char *SSL_state_string(const SSL *s); __owur const char *SSL_rstate_string(const SSL *s); __owur const char *SSL_state_string_long(const SSL *s); __owur const char *SSL_rstate_string_long(const SSL *s); + +#ifndef OPENSSL_NO_DEPRECATED_3_4 +OSSL_DEPRECATEDIN_3_4_FOR("not Y2038-safe, replace with SSL_SESSION_get_time_ex()") __owur long SSL_SESSION_get_time(const SSL_SESSION *s); +OSSL_DEPRECATEDIN_3_4_FOR("not Y2038-safe, replace with SSL_SESSION_set_time_ex()") __owur long SSL_SESSION_set_time(SSL_SESSION *s, long t); +#endif __owur long SSL_SESSION_get_timeout(const SSL_SESSION *s); __owur long SSL_SESSION_set_timeout(SSL_SESSION *s, long t); __owur int SSL_SESSION_get_protocol_version(const SSL_SESSION *s); __owur int SSL_SESSION_set_protocol_version(SSL_SESSION *s, int version); +__owur time_t SSL_SESSION_get_time_ex(const SSL_SESSION *s); +__owur time_t SSL_SESSION_set_time_ex(SSL_SESSION *s, time_t t); + __owur const char *SSL_SESSION_get0_hostname(const SSL_SESSION *s); __owur int SSL_SESSION_set1_hostname(SSL_SESSION *s, const char *hostname); void SSL_SESSION_get0_alpn_selected(const SSL_SESSION *s, @@ -1783,6 +1808,9 @@ __owur int SSL_has_matching_session_id(const SSL *s, unsigned int id_len); SSL_SESSION *d2i_SSL_SESSION(SSL_SESSION **a, const unsigned char **pp, long length); +SSL_SESSION *d2i_SSL_SESSION_ex(SSL_SESSION **a, const unsigned char **pp, + long length, OSSL_LIB_CTX *libctx, + const char *propq); # ifdef OPENSSL_X509_H __owur X509 *SSL_get0_peer_certificate(const SSL *s); @@ -1840,6 +1868,8 @@ __owur int SSL_CTX_set_session_id_context(SSL_CTX *ctx, SSL *SSL_new(SSL_CTX *ctx); int SSL_up_ref(SSL *s); int SSL_is_dtls(const SSL *s); +int SSL_is_tls(const SSL *s); +int SSL_is_quic(const SSL *s); __owur int SSL_set_session_id_context(SSL *ssl, const unsigned char *sid_ctx, unsigned int sid_ctx_len); @@ -1848,8 +1878,8 @@ __owur int SSL_set_purpose(SSL *ssl, int purpose); __owur int SSL_CTX_set_trust(SSL_CTX *ctx, int trust); __owur int SSL_set_trust(SSL *ssl, int trust); -__owur int SSL_set1_host(SSL *s, const char *hostname); -__owur int SSL_add1_host(SSL *s, const char *hostname); +__owur int SSL_set1_host(SSL *s, const char *host); +__owur int SSL_add1_host(SSL *s, const char *host); __owur const char *SSL_get0_peername(SSL *s); void SSL_set_hostflags(SSL *s, unsigned int flags); @@ -1924,6 +1954,11 @@ OSSL_DEPRECATEDIN_3_0 __owur char *SSL_get_srp_userinfo(SSL *s); typedef int (*SSL_client_hello_cb_fn) (SSL *s, int *al, void *arg); void SSL_CTX_set_client_hello_cb(SSL_CTX *c, SSL_client_hello_cb_fn cb, void *arg); +typedef int (*SSL_new_pending_conn_cb_fn) (SSL_CTX *ctx, SSL *new_ssl, + void *arg); +void SSL_CTX_set_new_pending_conn_cb(SSL_CTX *c, SSL_new_pending_conn_cb_fn cb, + void *arg); + int SSL_client_hello_isv2(SSL *s); unsigned int SSL_client_hello_get0_legacy_version(SSL *s); size_t SSL_client_hello_get0_random(SSL *s, const unsigned char **out); @@ -1932,6 +1967,8 @@ size_t SSL_client_hello_get0_ciphers(SSL *s, const unsigned char **out); size_t SSL_client_hello_get0_compression_methods(SSL *s, const unsigned char **out); int SSL_client_hello_get1_extensions_present(SSL *s, int **out, size_t *outlen); +int SSL_client_hello_get_extension_order(SSL *s, uint16_t *exts, + size_t *num_exts); int SSL_client_hello_get0_ext(SSL *s, unsigned int type, const unsigned char **out, size_t *outlen); @@ -1978,6 +2015,12 @@ long SSL_callback_ctrl(SSL *, int, void (*)(void)); long SSL_CTX_ctrl(SSL_CTX *ctx, int cmd, long larg, void *parg); long SSL_CTX_callback_ctrl(SSL_CTX *, int, void (*)(void)); +# define SSL_WRITE_FLAG_CONCLUDE (1U << 0) + +__owur int SSL_write_ex2(SSL *s, const void *buf, size_t num, + uint64_t flags, + size_t *written); + # define SSL_EARLY_DATA_NOT_SENT 0 # define SSL_EARLY_DATA_REJECTED 1 # define SSL_EARLY_DATA_ACCEPTED 2 @@ -1986,6 +2029,7 @@ __owur int SSL_get_early_data_status(const SSL *s); __owur int SSL_get_error(const SSL *s, int ret_code); __owur const char *SSL_get_version(const SSL *s); +__owur int SSL_get_handshake_rtt(const SSL *s, uint64_t *rtt); /* This sets the 'default' SSL version that SSL_new() will create */ # ifndef OPENSSL_NO_DEPRECATED_3_0 @@ -2281,6 +2325,8 @@ void SSL_CTX_set_record_padding_callback(SSL_CTX *ctx, void SSL_CTX_set_record_padding_callback_arg(SSL_CTX *ctx, void *arg); void *SSL_CTX_get_record_padding_callback_arg(const SSL_CTX *ctx); int SSL_CTX_set_block_padding(SSL_CTX *ctx, size_t block_size); +int SSL_CTX_set_block_padding_ex(SSL_CTX *ctx, size_t app_block_size, + size_t hs_block_size); int SSL_set_record_padding_callback(SSL *ssl, size_t (*cb) (SSL *ssl, int type, @@ -2288,12 +2334,255 @@ int SSL_set_record_padding_callback(SSL *ssl, void SSL_set_record_padding_callback_arg(SSL *ssl, void *arg); void *SSL_get_record_padding_callback_arg(const SSL *ssl); int SSL_set_block_padding(SSL *ssl, size_t block_size); - +int SSL_set_block_padding_ex(SSL *ssl, size_t app_block_size, + size_t hs_block_size); int SSL_set_num_tickets(SSL *s, size_t num_tickets); size_t SSL_get_num_tickets(const SSL *s); int SSL_CTX_set_num_tickets(SSL_CTX *ctx, size_t num_tickets); size_t SSL_CTX_get_num_tickets(const SSL_CTX *ctx); +/* QUIC support */ +int SSL_handle_events(SSL *s); +__owur int SSL_get_event_timeout(SSL *s, struct timeval *tv, int *is_infinite); +__owur int SSL_get_rpoll_descriptor(SSL *s, BIO_POLL_DESCRIPTOR *desc); +__owur int SSL_get_wpoll_descriptor(SSL *s, BIO_POLL_DESCRIPTOR *desc); +__owur int SSL_net_read_desired(SSL *s); +__owur int SSL_net_write_desired(SSL *s); +__owur int SSL_set_blocking_mode(SSL *s, int blocking); +__owur int SSL_get_blocking_mode(SSL *s); +__owur int SSL_set1_initial_peer_addr(SSL *s, const BIO_ADDR *peer_addr); +__owur SSL *SSL_get0_connection(SSL *s); +__owur int SSL_is_connection(SSL *s); + +__owur int SSL_is_listener(SSL *ssl); +__owur SSL *SSL_get0_listener(SSL *s); +#define SSL_LISTENER_FLAG_NO_VALIDATE (1UL << 1) +__owur SSL *SSL_new_listener(SSL_CTX *ctx, uint64_t flags); +__owur SSL *SSL_new_listener_from(SSL *ssl, uint64_t flags); +__owur SSL *SSL_new_from_listener(SSL *ssl, uint64_t flags); +#define SSL_ACCEPT_CONNECTION_NO_BLOCK (1UL << 0) +__owur SSL *SSL_accept_connection(SSL *ssl, uint64_t flags); +__owur size_t SSL_get_accept_connection_queue_len(SSL *ssl); +__owur int SSL_listen(SSL *ssl); + +__owur int SSL_is_domain(SSL *s); +__owur SSL *SSL_get0_domain(SSL *s); +__owur SSL *SSL_new_domain(SSL_CTX *ctx, uint64_t flags); + +#define SSL_DOMAIN_FLAG_SINGLE_THREAD (1U << 0) +#define SSL_DOMAIN_FLAG_MULTI_THREAD (1U << 1) +#define SSL_DOMAIN_FLAG_THREAD_ASSISTED (1U << 2) +#define SSL_DOMAIN_FLAG_BLOCKING (1U << 3) +#define SSL_DOMAIN_FLAG_LEGACY_BLOCKING (1U << 4) + +__owur int SSL_CTX_set_domain_flags(SSL_CTX *ctx, uint64_t domain_flags); +__owur int SSL_CTX_get_domain_flags(const SSL_CTX *ctx, uint64_t *domain_flags); +__owur int SSL_get_domain_flags(const SSL *ssl, uint64_t *domain_flags); + +#define SSL_STREAM_TYPE_NONE 0 +#define SSL_STREAM_TYPE_READ (1U << 0) +#define SSL_STREAM_TYPE_WRITE (1U << 1) +#define SSL_STREAM_TYPE_BIDI (SSL_STREAM_TYPE_READ | SSL_STREAM_TYPE_WRITE) +__owur int SSL_get_stream_type(SSL *s); + +__owur uint64_t SSL_get_stream_id(SSL *s); +__owur int SSL_is_stream_local(SSL *s); + +#define SSL_DEFAULT_STREAM_MODE_NONE 0 +#define SSL_DEFAULT_STREAM_MODE_AUTO_BIDI 1 +#define SSL_DEFAULT_STREAM_MODE_AUTO_UNI 2 +__owur int SSL_set_default_stream_mode(SSL *s, uint32_t mode); + +#define SSL_STREAM_FLAG_UNI (1U << 0) +#define SSL_STREAM_FLAG_NO_BLOCK (1U << 1) +#define SSL_STREAM_FLAG_ADVANCE (1U << 2) +__owur SSL *SSL_new_stream(SSL *s, uint64_t flags); + +#define SSL_INCOMING_STREAM_POLICY_AUTO 0 +#define SSL_INCOMING_STREAM_POLICY_ACCEPT 1 +#define SSL_INCOMING_STREAM_POLICY_REJECT 2 +__owur int SSL_set_incoming_stream_policy(SSL *s, int policy, uint64_t aec); + +#define SSL_ACCEPT_STREAM_NO_BLOCK (1U << 0) +__owur SSL *SSL_accept_stream(SSL *s, uint64_t flags); +__owur size_t SSL_get_accept_stream_queue_len(SSL *s); + +# ifndef OPENSSL_NO_QUIC +__owur int SSL_inject_net_dgram(SSL *s, const unsigned char *buf, + size_t buf_len, + const BIO_ADDR *peer, + const BIO_ADDR *local); +# endif + +typedef struct ssl_shutdown_ex_args_st { + uint64_t quic_error_code; + const char *quic_reason; +} SSL_SHUTDOWN_EX_ARGS; + +#define SSL_SHUTDOWN_FLAG_RAPID (1U << 0) +#define SSL_SHUTDOWN_FLAG_NO_STREAM_FLUSH (1U << 1) +#define SSL_SHUTDOWN_FLAG_NO_BLOCK (1U << 2) +#define SSL_SHUTDOWN_FLAG_WAIT_PEER (1U << 3) + +__owur int SSL_shutdown_ex(SSL *ssl, uint64_t flags, + const SSL_SHUTDOWN_EX_ARGS *args, + size_t args_len); + +__owur int SSL_stream_conclude(SSL *ssl, uint64_t flags); + +typedef struct ssl_stream_reset_args_st { + uint64_t quic_error_code; +} SSL_STREAM_RESET_ARGS; + +__owur int SSL_stream_reset(SSL *ssl, + const SSL_STREAM_RESET_ARGS *args, + size_t args_len); + +#define SSL_STREAM_STATE_NONE 0 +#define SSL_STREAM_STATE_OK 1 +#define SSL_STREAM_STATE_WRONG_DIR 2 +#define SSL_STREAM_STATE_FINISHED 3 +#define SSL_STREAM_STATE_RESET_LOCAL 4 +#define SSL_STREAM_STATE_RESET_REMOTE 5 +#define SSL_STREAM_STATE_CONN_CLOSED 6 +__owur int SSL_get_stream_read_state(SSL *ssl); +__owur int SSL_get_stream_write_state(SSL *ssl); + +__owur int SSL_get_stream_read_error_code(SSL *ssl, uint64_t *app_error_code); +__owur int SSL_get_stream_write_error_code(SSL *ssl, uint64_t *app_error_code); + +#define SSL_CONN_CLOSE_FLAG_LOCAL (1U << 0) +#define SSL_CONN_CLOSE_FLAG_TRANSPORT (1U << 1) + +typedef struct ssl_conn_close_info_st { + uint64_t error_code, frame_type; + const char *reason; + size_t reason_len; + uint32_t flags; +} SSL_CONN_CLOSE_INFO; + +__owur int SSL_get_conn_close_info(SSL *ssl, + SSL_CONN_CLOSE_INFO *info, + size_t info_len); + +# define SSL_VALUE_CLASS_GENERIC 0 +# define SSL_VALUE_CLASS_FEATURE_REQUEST 1 +# define SSL_VALUE_CLASS_FEATURE_PEER_REQUEST 2 +# define SSL_VALUE_CLASS_FEATURE_NEGOTIATED 3 + +# define SSL_VALUE_NONE 0 +# define SSL_VALUE_QUIC_STREAM_BIDI_LOCAL_AVAIL 1 +# define SSL_VALUE_QUIC_STREAM_BIDI_REMOTE_AVAIL 2 +# define SSL_VALUE_QUIC_STREAM_UNI_LOCAL_AVAIL 3 +# define SSL_VALUE_QUIC_STREAM_UNI_REMOTE_AVAIL 4 +# define SSL_VALUE_QUIC_IDLE_TIMEOUT 5 +# define SSL_VALUE_EVENT_HANDLING_MODE 6 +# define SSL_VALUE_STREAM_WRITE_BUF_SIZE 7 +# define SSL_VALUE_STREAM_WRITE_BUF_USED 8 +# define SSL_VALUE_STREAM_WRITE_BUF_AVAIL 9 + +# define SSL_VALUE_EVENT_HANDLING_MODE_INHERIT 0 +# define SSL_VALUE_EVENT_HANDLING_MODE_IMPLICIT 1 +# define SSL_VALUE_EVENT_HANDLING_MODE_EXPLICIT 2 + +int SSL_get_value_uint(SSL *s, uint32_t class_, uint32_t id, uint64_t *v); +int SSL_set_value_uint(SSL *s, uint32_t class_, uint32_t id, uint64_t v); + +# define SSL_get_generic_value_uint(ssl, id, v) \ + SSL_get_value_uint((ssl), SSL_VALUE_CLASS_GENERIC, (id), (v)) +# define SSL_set_generic_value_uint(ssl, id, v) \ + SSL_set_value_uint((ssl), SSL_VALUE_CLASS_GENERIC, (id), (v)) +# define SSL_get_feature_request_uint(ssl, id, v) \ + SSL_get_value_uint((ssl), SSL_VALUE_CLASS_FEATURE_REQUEST, (id), (v)) +# define SSL_set_feature_request_uint(ssl, id, v) \ + SSL_set_value_uint((ssl), SSL_VALUE_CLASS_FEATURE_REQUEST, (id), (v)) +# define SSL_get_feature_peer_request_uint(ssl, id, v) \ + SSL_get_value_uint((ssl), SSL_VALUE_CLASS_FEATURE_PEER_REQUEST, (id), (v)) +# define SSL_get_feature_negotiated_uint(ssl, id, v) \ + SSL_get_value_uint((ssl), SSL_VALUE_CLASS_FEATURE_NEGOTIATED, (id), (v)) + +# define SSL_get_quic_stream_bidi_local_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_QUIC_STREAM_BIDI_LOCAL_AVAIL, \ + (value)) +# define SSL_get_quic_stream_bidi_remote_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_QUIC_STREAM_BIDI_REMOTE_AVAIL, \ + (value)) +# define SSL_get_quic_stream_uni_local_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_QUIC_STREAM_UNI_LOCAL_AVAIL, \ + (value)) +# define SSL_get_quic_stream_uni_remote_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_QUIC_STREAM_UNI_REMOTE_AVAIL, \ + (value)) + +# define SSL_get_event_handling_mode(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_EVENT_HANDLING_MODE, \ + (value)) +# define SSL_set_event_handling_mode(ssl, value) \ + SSL_set_generic_value_uint((ssl), SSL_VALUE_EVENT_HANDLING_MODE, \ + (value)) + +# define SSL_get_stream_write_buf_size(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_STREAM_WRITE_BUF_SIZE, \ + (value)) +# define SSL_get_stream_write_buf_used(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_STREAM_WRITE_BUF_USED, \ + (value)) +# define SSL_get_stream_write_buf_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_STREAM_WRITE_BUF_AVAIL, \ + (value)) + +# define SSL_POLL_EVENT_NONE 0 + +# define SSL_POLL_EVENT_F (1U << 0) /* F (Failure) */ +# define SSL_POLL_EVENT_EL (1U << 1) /* EL (Exception on Listener) */ +# define SSL_POLL_EVENT_EC (1U << 2) /* EC (Exception on Conn) */ +# define SSL_POLL_EVENT_ECD (1U << 3) /* ECD (Exception on Conn Drained) */ +# define SSL_POLL_EVENT_ER (1U << 4) /* ER (Exception on Read) */ +# define SSL_POLL_EVENT_EW (1U << 5) /* EW (Exception on Write) */ +# define SSL_POLL_EVENT_R (1U << 6) /* R (Readable) */ +# define SSL_POLL_EVENT_W (1U << 7) /* W (Writable) */ +# define SSL_POLL_EVENT_IC (1U << 8) /* IC (Incoming Connection) */ +# define SSL_POLL_EVENT_ISB (1U << 9) /* ISB (Incoming Stream: Bidi) */ +# define SSL_POLL_EVENT_ISU (1U << 10) /* ISU (Incoming Stream: Uni) */ +# define SSL_POLL_EVENT_OSB (1U << 11) /* OSB (Outgoing Stream: Bidi) */ +# define SSL_POLL_EVENT_OSU (1U << 12) /* OSU (Outgoing Stream: Uni) */ + +# define SSL_POLL_EVENT_RW (SSL_POLL_EVENT_R | SSL_POLL_EVENT_W) +# define SSL_POLL_EVENT_RE (SSL_POLL_EVENT_R | SSL_POLL_EVENT_ER) +# define SSL_POLL_EVENT_WE (SSL_POLL_EVENT_W | SSL_POLL_EVENT_EW) +# define SSL_POLL_EVENT_RWE (SSL_POLL_EVENT_RE | SSL_POLL_EVENT_WE) +# define SSL_POLL_EVENT_E (SSL_POLL_EVENT_EL | SSL_POLL_EVENT_EC \ + | SSL_POLL_EVENT_ER | SSL_POLL_EVENT_EW) +# define SSL_POLL_EVENT_IS (SSL_POLL_EVENT_ISB | SSL_POLL_EVENT_ISU) +# define SSL_POLL_EVENT_ISE (SSL_POLL_EVENT_IS | SSL_POLL_EVENT_EC) +# define SSL_POLL_EVENT_I (SSL_POLL_EVENT_IS | SSL_POLL_EVENT_IC) +# define SSL_POLL_EVENT_OS (SSL_POLL_EVENT_OSB | SSL_POLL_EVENT_OSU) +# define SSL_POLL_EVENT_OSE (SSL_POLL_EVENT_OS | SSL_POLL_EVENT_EC) + +typedef struct ssl_poll_item_st { + BIO_POLL_DESCRIPTOR desc; + uint64_t events, revents; +} SSL_POLL_ITEM; + +# define SSL_POLL_FLAG_NO_HANDLE_EVENTS (1U << 0) + +__owur int SSL_poll(SSL_POLL_ITEM *items, + size_t num_items, + size_t stride, + const struct timeval *timeout, + uint64_t flags, + size_t *result_count); + +static ossl_inline ossl_unused BIO_POLL_DESCRIPTOR +SSL_as_poll_descriptor(SSL *s) +{ + BIO_POLL_DESCRIPTOR d; + + d.type = BIO_POLL_DESCRIPTOR_TYPE_SSL; + d.value.ssl = s; + return d; +} + # ifndef OPENSSL_NO_DEPRECATED_1_1_0 # define SSL_cache_hit(s) SSL_session_reused(s) # endif @@ -2593,6 +2882,51 @@ void SSL_set_allow_early_data_cb(SSL *s, const char *OSSL_default_cipher_list(void); const char *OSSL_default_ciphersuites(void); +/* RFC8879 Certificate compression APIs */ + +int SSL_CTX_compress_certs(SSL_CTX *ctx, int alg); +int SSL_compress_certs(SSL *ssl, int alg); + +int SSL_CTX_set1_cert_comp_preference(SSL_CTX *ctx, int *algs, size_t len); +int SSL_set1_cert_comp_preference(SSL *ssl, int *algs, size_t len); + +int SSL_CTX_set1_compressed_cert(SSL_CTX *ctx, int algorithm, unsigned char *comp_data, + size_t comp_length, size_t orig_length); +int SSL_set1_compressed_cert(SSL *ssl, int algorithm, unsigned char *comp_data, + size_t comp_length, size_t orig_length); +size_t SSL_CTX_get1_compressed_cert(SSL_CTX *ctx, int alg, unsigned char **data, size_t *orig_len); +size_t SSL_get1_compressed_cert(SSL *ssl, int alg, unsigned char **data, size_t *orig_len); + +__owur int SSL_add_expected_rpk(SSL *s, EVP_PKEY *rpk); +__owur EVP_PKEY *SSL_get0_peer_rpk(const SSL *s); +__owur EVP_PKEY *SSL_SESSION_get0_peer_rpk(SSL_SESSION *s); +__owur int SSL_get_negotiated_client_cert_type(const SSL *s); +__owur int SSL_get_negotiated_server_cert_type(const SSL *s); + +__owur int SSL_set1_client_cert_type(SSL *s, const unsigned char *val, size_t len); +__owur int SSL_set1_server_cert_type(SSL *s, const unsigned char *val, size_t len); +__owur int SSL_CTX_set1_client_cert_type(SSL_CTX *ctx, const unsigned char *val, size_t len); +__owur int SSL_CTX_set1_server_cert_type(SSL_CTX *ctx, const unsigned char *val, size_t len); +__owur int SSL_get0_client_cert_type(const SSL *s, unsigned char **t, size_t *len); +__owur int SSL_get0_server_cert_type(const SSL *s, unsigned char **t, size_t *len); +__owur int SSL_CTX_get0_client_cert_type(const SSL_CTX *ctx, unsigned char **t, size_t *len); +__owur int SSL_CTX_get0_server_cert_type(const SSL_CTX *s, unsigned char **t, size_t *len); + +/* + * Protection level. For <= TLSv1.2 only "NONE" and "APPLICATION" are used. + */ +# define OSSL_RECORD_PROTECTION_LEVEL_NONE 0 +# define OSSL_RECORD_PROTECTION_LEVEL_EARLY 1 +# define OSSL_RECORD_PROTECTION_LEVEL_HANDSHAKE 2 +# define OSSL_RECORD_PROTECTION_LEVEL_APPLICATION 3 + +int SSL_set_quic_tls_cbs(SSL *s, const OSSL_DISPATCH *qtdis, void *arg); +int SSL_set_quic_tls_transport_params(SSL *s, + const unsigned char *params, + size_t params_len); + +int SSL_set_quic_tls_early_data_enabled(SSL *s, int enabled); + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/include/openssl/x509.h b/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/include/openssl/x509.h index 1f7755e5b69c75..d013458c226461 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/include/openssl/x509.h +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/include/openssl/x509.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/x509.h.in * - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2024 The OpenSSL Project Authors. All Rights Reserved. * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved * * Licensed under the Apache License 2.0 (the "License"). You may not use @@ -40,6 +40,9 @@ # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -162,16 +165,24 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_CRL, X509_CRL, X509_CRL) # define X509_FILETYPE_ASN1 2 # define X509_FILETYPE_DEFAULT 3 -# define X509v3_KU_DIGITAL_SIGNATURE 0x0080 -# define X509v3_KU_NON_REPUDIATION 0x0040 -# define X509v3_KU_KEY_ENCIPHERMENT 0x0020 -# define X509v3_KU_DATA_ENCIPHERMENT 0x0010 -# define X509v3_KU_KEY_AGREEMENT 0x0008 -# define X509v3_KU_KEY_CERT_SIGN 0x0004 -# define X509v3_KU_CRL_SIGN 0x0002 -# define X509v3_KU_ENCIPHER_ONLY 0x0001 -# define X509v3_KU_DECIPHER_ONLY 0x8000 -# define X509v3_KU_UNDEF 0xffff +/*- + * : + * The KeyUsage BITSTRING is treated as a little-endian integer, hence bit `0` + * is 0x80, while bit `7` is 0x01 (the LSB of the integer value), bit `8` is + * then the MSB of the second octet, or 0x8000. + */ +# define X509v3_KU_DIGITAL_SIGNATURE 0x0080 /* (0) */ +# define X509v3_KU_NON_REPUDIATION 0x0040 /* (1) */ +# define X509v3_KU_KEY_ENCIPHERMENT 0x0020 /* (2) */ +# define X509v3_KU_DATA_ENCIPHERMENT 0x0010 /* (3) */ +# define X509v3_KU_KEY_AGREEMENT 0x0008 /* (4) */ +# define X509v3_KU_KEY_CERT_SIGN 0x0004 /* (5) */ +# define X509v3_KU_CRL_SIGN 0x0002 /* (6) */ +# define X509v3_KU_ENCIPHER_ONLY 0x0001 /* (7) */ +# define X509v3_KU_DECIPHER_ONLY 0x8000 /* (8) */ +# ifndef OPENSSL_NO_DEPRECATED_3_4 +# define X509v3_KU_UNDEF 0xffff /* vestigial, not used */ +# endif struct X509_algor_st { ASN1_OBJECT *algorithm; @@ -462,7 +473,12 @@ typedef struct PBKDF2PARAM_st { X509_ALGOR *prf; } PBKDF2PARAM; -#ifndef OPENSSL_NO_SCRYPT +typedef struct { + X509_ALGOR *keyDerivationFunc; + X509_ALGOR *messageAuthScheme; +} PBMAC1PARAM; + +# ifndef OPENSSL_NO_SCRYPT typedef struct SCRYPT_PARAMS_st { ASN1_OCTET_STRING *salt; ASN1_INTEGER *costParameter; @@ -470,7 +486,7 @@ typedef struct SCRYPT_PARAMS_st { ASN1_INTEGER *parallelizationParameter; ASN1_INTEGER *keyLength; } SCRYPT_PARAMS; -#endif +# endif #ifdef __cplusplus } @@ -603,6 +619,8 @@ EVP_PKEY *d2i_PrivateKey_ex_fp(FILE *fp, EVP_PKEY **a, OSSL_LIB_CTX *libctx, const char *propq); EVP_PKEY *d2i_PrivateKey_fp(FILE *fp, EVP_PKEY **a); int i2d_PUBKEY_fp(FILE *fp, const EVP_PKEY *pkey); +EVP_PKEY *d2i_PUBKEY_ex_fp(FILE *fp, EVP_PKEY **a, OSSL_LIB_CTX *libctx, + const char *propq); EVP_PKEY *d2i_PUBKEY_fp(FILE *fp, EVP_PKEY **a); # endif @@ -651,6 +669,8 @@ EVP_PKEY *d2i_PrivateKey_ex_bio(BIO *bp, EVP_PKEY **a, OSSL_LIB_CTX *libctx, const char *propq); EVP_PKEY *d2i_PrivateKey_bio(BIO *bp, EVP_PKEY **a); int i2d_PUBKEY_bio(BIO *bp, const EVP_PKEY *pkey); +EVP_PKEY *d2i_PUBKEY_ex_bio(BIO *bp, EVP_PKEY **a, OSSL_LIB_CTX *libctx, + const char *propq); EVP_PKEY *d2i_PUBKEY_bio(BIO *bp, EVP_PKEY **a); DECLARE_ASN1_DUP_FUNCTION(X509) @@ -884,12 +904,12 @@ int X509_REQ_get_signature_nid(const X509_REQ *req); int i2d_re_X509_REQ_tbs(X509_REQ *req, unsigned char **pp); int X509_REQ_set_pubkey(X509_REQ *x, EVP_PKEY *pkey); EVP_PKEY *X509_REQ_get_pubkey(X509_REQ *req); -EVP_PKEY *X509_REQ_get0_pubkey(X509_REQ *req); +EVP_PKEY *X509_REQ_get0_pubkey(const X509_REQ *req); X509_PUBKEY *X509_REQ_get_X509_PUBKEY(X509_REQ *req); int X509_REQ_extension_nid(int nid); int *X509_REQ_get_extension_nids(void); void X509_REQ_set_extension_nids(int *nids); -STACK_OF(X509_EXTENSION) *X509_REQ_get_extensions(X509_REQ *req); +STACK_OF(X509_EXTENSION) *X509_REQ_get_extensions(OSSL_FUTURE_CONST X509_REQ *req); int X509_REQ_add_extensions_nid(X509_REQ *req, const STACK_OF(X509_EXTENSION) *exts, int nid); int X509_REQ_add_extensions(X509_REQ *req, const STACK_OF(X509_EXTENSION) *ext); @@ -950,13 +970,14 @@ X509_REVOKED_get0_extensions(const X509_REVOKED *r); X509_CRL *X509_CRL_diff(X509_CRL *base, X509_CRL *newer, EVP_PKEY *skey, const EVP_MD *md, unsigned int flags); -int X509_REQ_check_private_key(X509_REQ *x509, EVP_PKEY *pkey); +int X509_REQ_check_private_key(const X509_REQ *req, EVP_PKEY *pkey); -int X509_check_private_key(const X509 *x509, const EVP_PKEY *pkey); +int X509_check_private_key(const X509 *cert, const EVP_PKEY *pkey); int X509_chain_check_suiteb(int *perror_depth, X509 *x, STACK_OF(X509) *chain, unsigned long flags); int X509_CRL_check_suiteb(X509_CRL *crl, EVP_PKEY *pk, unsigned long flags); +void OSSL_STACK_OF_X509_free(STACK_OF(X509) *certs); STACK_OF(X509) *X509_chain_up_ref(STACK_OF(X509) *chain); int X509_issuer_and_serial_cmp(const X509 *a, const X509 *b); @@ -1077,6 +1098,8 @@ X509_EXTENSION *X509v3_get_ext(const STACK_OF(X509_EXTENSION) *x, int loc); X509_EXTENSION *X509v3_delete_ext(STACK_OF(X509_EXTENSION) *x, int loc); STACK_OF(X509_EXTENSION) *X509v3_add_ext(STACK_OF(X509_EXTENSION) **x, X509_EXTENSION *ex, int loc); +STACK_OF(X509_EXTENSION) *X509v3_add_extensions(STACK_OF(X509_EXTENSION) **target, + const STACK_OF(X509_EXTENSION) *exts); int X509_get_ext_count(const X509 *x); int X509_get_ext_by_NID(const X509 *x, int nid, int lastpos); @@ -1198,9 +1221,10 @@ X509 *X509_find_by_subject(STACK_OF(X509) *sk, const X509_NAME *name); DECLARE_ASN1_FUNCTIONS(PBEPARAM) DECLARE_ASN1_FUNCTIONS(PBE2PARAM) DECLARE_ASN1_FUNCTIONS(PBKDF2PARAM) -#ifndef OPENSSL_NO_SCRYPT +DECLARE_ASN1_FUNCTIONS(PBMAC1PARAM) +# ifndef OPENSSL_NO_SCRYPT DECLARE_ASN1_FUNCTIONS(SCRYPT_PARAMS) -#endif +# endif int PKCS5_pbe_set0_algor(X509_ALGOR *algor, int alg, int iter, const unsigned char *salt, int saltlen); @@ -1237,6 +1261,7 @@ X509_ALGOR *PKCS5_pbkdf2_set_ex(int iter, unsigned char *salt, int saltlen, int prf_nid, int keylen, OSSL_LIB_CTX *libctx); +PBKDF2PARAM *PBMAC1_get1_pbkdf2_param(const X509_ALGOR *macalg); /* PKCS#8 utilities */ DECLARE_ASN1_FUNCTIONS(PKCS8_PRIV_KEY_INFO) @@ -1262,6 +1287,8 @@ int PKCS8_pkey_add1_attr_by_OBJ(PKCS8_PRIV_KEY_INFO *p8, const ASN1_OBJECT *obj, int type, const unsigned char *bytes, int len); +void X509_PUBKEY_set0_public_key(X509_PUBKEY *pub, + unsigned char *penc, int penclen); int X509_PUBKEY_set0_param(X509_PUBKEY *pub, ASN1_OBJECT *aobj, int ptype, void *pval, unsigned char *penc, int penclen); diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/include/openssl/x509_acert.h b/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/include/openssl/x509_acert.h new file mode 100644 index 00000000000000..9dde625677f9a9 --- /dev/null +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/include/openssl/x509_acert.h @@ -0,0 +1,294 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from include/openssl/x509_acert.h.in + * + * Copyright 2022-2024 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + + +#ifndef OPENSSL_X509_ACERT_H +# define OPENSSL_X509_ACERT_H +# pragma once + +# include +# include +# include + +typedef struct X509_acert_st X509_ACERT; +typedef struct X509_acert_info_st X509_ACERT_INFO; +typedef struct ossl_object_digest_info_st OSSL_OBJECT_DIGEST_INFO; +typedef struct ossl_issuer_serial_st OSSL_ISSUER_SERIAL; +typedef struct X509_acert_issuer_v2form_st X509_ACERT_ISSUER_V2FORM; + +DECLARE_ASN1_FUNCTIONS(X509_ACERT) +DECLARE_ASN1_DUP_FUNCTION(X509_ACERT) +DECLARE_ASN1_ITEM(X509_ACERT_INFO) +DECLARE_ASN1_ALLOC_FUNCTIONS(X509_ACERT_INFO) +DECLARE_ASN1_ALLOC_FUNCTIONS(OSSL_OBJECT_DIGEST_INFO) +DECLARE_ASN1_ALLOC_FUNCTIONS(OSSL_ISSUER_SERIAL) +DECLARE_ASN1_ALLOC_FUNCTIONS(X509_ACERT_ISSUER_V2FORM) + +# ifndef OPENSSL_NO_STDIO +X509_ACERT *d2i_X509_ACERT_fp(FILE *fp, X509_ACERT **acert); +int i2d_X509_ACERT_fp(FILE *fp, const X509_ACERT *acert); +# endif + +DECLARE_PEM_rw(X509_ACERT, X509_ACERT) + +X509_ACERT *d2i_X509_ACERT_bio(BIO *bp, X509_ACERT **acert); +int i2d_X509_ACERT_bio(BIO *bp, const X509_ACERT *acert); + +int X509_ACERT_sign(X509_ACERT *x, EVP_PKEY *pkey, const EVP_MD *md); +int X509_ACERT_sign_ctx(X509_ACERT *x, EVP_MD_CTX *ctx); +int X509_ACERT_verify(X509_ACERT *a, EVP_PKEY *r); + +# define X509_ACERT_VERSION_2 1 + +const GENERAL_NAMES *X509_ACERT_get0_holder_entityName(const X509_ACERT *x); +const OSSL_ISSUER_SERIAL *X509_ACERT_get0_holder_baseCertId(const X509_ACERT *x); +const OSSL_OBJECT_DIGEST_INFO * X509_ACERT_get0_holder_digest(const X509_ACERT *x); +const X509_NAME *X509_ACERT_get0_issuerName(const X509_ACERT *x); +long X509_ACERT_get_version(const X509_ACERT *x); +void X509_ACERT_get0_signature(const X509_ACERT *x, + const ASN1_BIT_STRING **psig, + const X509_ALGOR **palg); +int X509_ACERT_get_signature_nid(const X509_ACERT *x); +const X509_ALGOR *X509_ACERT_get0_info_sigalg(const X509_ACERT *x); +const ASN1_INTEGER *X509_ACERT_get0_serialNumber(const X509_ACERT *x); +const ASN1_TIME *X509_ACERT_get0_notBefore(const X509_ACERT *x); +const ASN1_TIME *X509_ACERT_get0_notAfter(const X509_ACERT *x); +const ASN1_BIT_STRING *X509_ACERT_get0_issuerUID(const X509_ACERT *x); + +int X509_ACERT_print(BIO *bp, X509_ACERT *x); +int X509_ACERT_print_ex(BIO *bp, X509_ACERT *x, unsigned long nmflags, + unsigned long cflag); + +int X509_ACERT_get_attr_count(const X509_ACERT *x); +int X509_ACERT_get_attr_by_NID(const X509_ACERT *x, int nid, int lastpos); +int X509_ACERT_get_attr_by_OBJ(const X509_ACERT *x, const ASN1_OBJECT *obj, + int lastpos); +X509_ATTRIBUTE *X509_ACERT_get_attr(const X509_ACERT *x, int loc); +X509_ATTRIBUTE *X509_ACERT_delete_attr(X509_ACERT *x, int loc); + +void *X509_ACERT_get_ext_d2i(const X509_ACERT *x, int nid, int *crit, int *idx); +int X509_ACERT_add1_ext_i2d(X509_ACERT *x, int nid, void *value, int crit, + unsigned long flags); +const STACK_OF(X509_EXTENSION) *X509_ACERT_get0_extensions(const X509_ACERT *x); + +# define OSSL_OBJECT_DIGEST_INFO_PUBLIC_KEY 0 +# define OSSL_OBJECT_DIGEST_INFO_PUBLIC_KEY_CERT 1 +# define OSSL_OBJECT_DIGEST_INFO_OTHER 2 /* must not be used in RFC 5755 profile */ +int X509_ACERT_set_version(X509_ACERT *x, long version); +void X509_ACERT_set0_holder_entityName(X509_ACERT *x, GENERAL_NAMES *name); +void X509_ACERT_set0_holder_baseCertId(X509_ACERT *x, OSSL_ISSUER_SERIAL *isss); +void X509_ACERT_set0_holder_digest(X509_ACERT *x, + OSSL_OBJECT_DIGEST_INFO *dinfo); + +int X509_ACERT_add1_attr(X509_ACERT *x, X509_ATTRIBUTE *attr); +int X509_ACERT_add1_attr_by_OBJ(X509_ACERT *x, const ASN1_OBJECT *obj, + int type, const void *bytes, int len); +int X509_ACERT_add1_attr_by_NID(X509_ACERT *x, int nid, int type, + const void *bytes, int len); +int X509_ACERT_add1_attr_by_txt(X509_ACERT *x, const char *attrname, int type, + const unsigned char *bytes, int len); +int X509_ACERT_add_attr_nconf(CONF *conf, const char *section, + X509_ACERT *acert); + +int X509_ACERT_set1_issuerName(X509_ACERT *x, const X509_NAME *name); +int X509_ACERT_set1_serialNumber(X509_ACERT *x, const ASN1_INTEGER *serial); +int X509_ACERT_set1_notBefore(X509_ACERT *x, const ASN1_GENERALIZEDTIME *time); +int X509_ACERT_set1_notAfter(X509_ACERT *x, const ASN1_GENERALIZEDTIME *time); + +void OSSL_OBJECT_DIGEST_INFO_get0_digest(const OSSL_OBJECT_DIGEST_INFO *o, + int *digestedObjectType, + const X509_ALGOR **digestAlgorithm, + const ASN1_BIT_STRING **digest); + +int OSSL_OBJECT_DIGEST_INFO_set1_digest(OSSL_OBJECT_DIGEST_INFO *o, + int digestedObjectType, + X509_ALGOR *digestAlgorithm, + ASN1_BIT_STRING *digest); + +const X509_NAME *OSSL_ISSUER_SERIAL_get0_issuer(const OSSL_ISSUER_SERIAL *isss); +const ASN1_INTEGER *OSSL_ISSUER_SERIAL_get0_serial(const OSSL_ISSUER_SERIAL *isss); +const ASN1_BIT_STRING *OSSL_ISSUER_SERIAL_get0_issuerUID(const OSSL_ISSUER_SERIAL *isss); + +int OSSL_ISSUER_SERIAL_set1_issuer(OSSL_ISSUER_SERIAL *isss, + const X509_NAME *issuer); +int OSSL_ISSUER_SERIAL_set1_serial(OSSL_ISSUER_SERIAL *isss, + const ASN1_INTEGER *serial); +int OSSL_ISSUER_SERIAL_set1_issuerUID(OSSL_ISSUER_SERIAL *isss, + const ASN1_BIT_STRING *uid); + +# define OSSL_IETFAS_OCTETS 0 +# define OSSL_IETFAS_OID 1 +# define OSSL_IETFAS_STRING 2 + +typedef struct OSSL_IETF_ATTR_SYNTAX_VALUE_st OSSL_IETF_ATTR_SYNTAX_VALUE; +typedef struct OSSL_IETF_ATTR_SYNTAX_st OSSL_IETF_ATTR_SYNTAX; +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_IETF_ATTR_SYNTAX_VALUE, OSSL_IETF_ATTR_SYNTAX_VALUE, OSSL_IETF_ATTR_SYNTAX_VALUE) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_value(sk, idx) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_value(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), (idx))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_new(cmp) ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_new(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_compfunc_type(cmp))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_new_null() ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_new_null()) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_new_reserve(cmp, n) ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_compfunc_type(cmp), (n))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), (n)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_free(sk) OPENSSL_sk_free(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_delete(sk, i) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_delete(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), (i))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_delete_ptr(sk, ptr) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_pop(sk) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_pop(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_shift(sk) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_shift(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk),ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_freefunc_type(freefunc)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr), (idx)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_set(sk, idx, ptr) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_set(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), (idx), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr), pnum) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_dup(sk) ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_dup(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_copyfunc_type(copyfunc), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_freefunc_type(freefunc))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_set_cmp_func(sk, cmp) ((sk_OSSL_IETF_ATTR_SYNTAX_VALUE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_compfunc_type(cmp))) + + +DECLARE_ASN1_ITEM(OSSL_IETF_ATTR_SYNTAX_VALUE) +DECLARE_ASN1_ALLOC_FUNCTIONS(OSSL_IETF_ATTR_SYNTAX_VALUE) +DECLARE_ASN1_FUNCTIONS(OSSL_IETF_ATTR_SYNTAX) + +const GENERAL_NAMES * +OSSL_IETF_ATTR_SYNTAX_get0_policyAuthority(const OSSL_IETF_ATTR_SYNTAX *a); +void OSSL_IETF_ATTR_SYNTAX_set0_policyAuthority(OSSL_IETF_ATTR_SYNTAX *a, + GENERAL_NAMES *names); + +int OSSL_IETF_ATTR_SYNTAX_get_value_num(const OSSL_IETF_ATTR_SYNTAX *a); +void *OSSL_IETF_ATTR_SYNTAX_get0_value(const OSSL_IETF_ATTR_SYNTAX *a, + int ind, int *type); +int OSSL_IETF_ATTR_SYNTAX_add1_value(OSSL_IETF_ATTR_SYNTAX *a, int type, + void *data); +int OSSL_IETF_ATTR_SYNTAX_print(BIO *bp, OSSL_IETF_ATTR_SYNTAX *a, int indent); + +struct TARGET_CERT_st { + OSSL_ISSUER_SERIAL *targetCertificate; + GENERAL_NAME *targetName; + OSSL_OBJECT_DIGEST_INFO *certDigestInfo; +}; + +typedef struct TARGET_CERT_st OSSL_TARGET_CERT; + +# define OSSL_TGT_TARGET_NAME 0 +# define OSSL_TGT_TARGET_GROUP 1 +# define OSSL_TGT_TARGET_CERT 2 + +typedef struct TARGET_st { + int type; + union { + GENERAL_NAME *targetName; + GENERAL_NAME *targetGroup; + OSSL_TARGET_CERT *targetCert; + } choice; +} OSSL_TARGET; + +typedef STACK_OF(OSSL_TARGET) OSSL_TARGETS; +typedef STACK_OF(OSSL_TARGETS) OSSL_TARGETING_INFORMATION; + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_TARGET, OSSL_TARGET, OSSL_TARGET) +#define sk_OSSL_TARGET_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_value(sk, idx) ((OSSL_TARGET *)OPENSSL_sk_value(ossl_check_const_OSSL_TARGET_sk_type(sk), (idx))) +#define sk_OSSL_TARGET_new(cmp) ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_new(ossl_check_OSSL_TARGET_compfunc_type(cmp))) +#define sk_OSSL_TARGET_new_null() ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_new_null()) +#define sk_OSSL_TARGET_new_reserve(cmp, n) ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_TARGET_compfunc_type(cmp), (n))) +#define sk_OSSL_TARGET_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_TARGET_sk_type(sk), (n)) +#define sk_OSSL_TARGET_free(sk) OPENSSL_sk_free(ossl_check_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_delete(sk, i) ((OSSL_TARGET *)OPENSSL_sk_delete(ossl_check_OSSL_TARGET_sk_type(sk), (i))) +#define sk_OSSL_TARGET_delete_ptr(sk, ptr) ((OSSL_TARGET *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr))) +#define sk_OSSL_TARGET_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr)) +#define sk_OSSL_TARGET_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr)) +#define sk_OSSL_TARGET_pop(sk) ((OSSL_TARGET *)OPENSSL_sk_pop(ossl_check_OSSL_TARGET_sk_type(sk))) +#define sk_OSSL_TARGET_shift(sk) ((OSSL_TARGET *)OPENSSL_sk_shift(ossl_check_OSSL_TARGET_sk_type(sk))) +#define sk_OSSL_TARGET_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_TARGET_sk_type(sk),ossl_check_OSSL_TARGET_freefunc_type(freefunc)) +#define sk_OSSL_TARGET_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr), (idx)) +#define sk_OSSL_TARGET_set(sk, idx, ptr) ((OSSL_TARGET *)OPENSSL_sk_set(ossl_check_OSSL_TARGET_sk_type(sk), (idx), ossl_check_OSSL_TARGET_type(ptr))) +#define sk_OSSL_TARGET_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr)) +#define sk_OSSL_TARGET_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr)) +#define sk_OSSL_TARGET_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr), pnum) +#define sk_OSSL_TARGET_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_dup(sk) ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_dup(ossl_check_const_OSSL_TARGET_sk_type(sk))) +#define sk_OSSL_TARGET_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_copyfunc_type(copyfunc), ossl_check_OSSL_TARGET_freefunc_type(freefunc))) +#define sk_OSSL_TARGET_set_cmp_func(sk, cmp) ((sk_OSSL_TARGET_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_compfunc_type(cmp))) + + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_TARGETS, OSSL_TARGETS, OSSL_TARGETS) +#define sk_OSSL_TARGETS_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_value(sk, idx) ((OSSL_TARGETS *)OPENSSL_sk_value(ossl_check_const_OSSL_TARGETS_sk_type(sk), (idx))) +#define sk_OSSL_TARGETS_new(cmp) ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_new(ossl_check_OSSL_TARGETS_compfunc_type(cmp))) +#define sk_OSSL_TARGETS_new_null() ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_new_null()) +#define sk_OSSL_TARGETS_new_reserve(cmp, n) ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_TARGETS_compfunc_type(cmp), (n))) +#define sk_OSSL_TARGETS_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_TARGETS_sk_type(sk), (n)) +#define sk_OSSL_TARGETS_free(sk) OPENSSL_sk_free(ossl_check_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_delete(sk, i) ((OSSL_TARGETS *)OPENSSL_sk_delete(ossl_check_OSSL_TARGETS_sk_type(sk), (i))) +#define sk_OSSL_TARGETS_delete_ptr(sk, ptr) ((OSSL_TARGETS *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr))) +#define sk_OSSL_TARGETS_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr)) +#define sk_OSSL_TARGETS_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr)) +#define sk_OSSL_TARGETS_pop(sk) ((OSSL_TARGETS *)OPENSSL_sk_pop(ossl_check_OSSL_TARGETS_sk_type(sk))) +#define sk_OSSL_TARGETS_shift(sk) ((OSSL_TARGETS *)OPENSSL_sk_shift(ossl_check_OSSL_TARGETS_sk_type(sk))) +#define sk_OSSL_TARGETS_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_TARGETS_sk_type(sk),ossl_check_OSSL_TARGETS_freefunc_type(freefunc)) +#define sk_OSSL_TARGETS_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr), (idx)) +#define sk_OSSL_TARGETS_set(sk, idx, ptr) ((OSSL_TARGETS *)OPENSSL_sk_set(ossl_check_OSSL_TARGETS_sk_type(sk), (idx), ossl_check_OSSL_TARGETS_type(ptr))) +#define sk_OSSL_TARGETS_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr)) +#define sk_OSSL_TARGETS_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr)) +#define sk_OSSL_TARGETS_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr), pnum) +#define sk_OSSL_TARGETS_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_dup(sk) ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_dup(ossl_check_const_OSSL_TARGETS_sk_type(sk))) +#define sk_OSSL_TARGETS_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_copyfunc_type(copyfunc), ossl_check_OSSL_TARGETS_freefunc_type(freefunc))) +#define sk_OSSL_TARGETS_set_cmp_func(sk, cmp) ((sk_OSSL_TARGETS_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_compfunc_type(cmp))) + + +DECLARE_ASN1_FUNCTIONS(OSSL_TARGET) +DECLARE_ASN1_FUNCTIONS(OSSL_TARGETS) +DECLARE_ASN1_FUNCTIONS(OSSL_TARGETING_INFORMATION) + +typedef STACK_OF(OSSL_ISSUER_SERIAL) OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX; +DECLARE_ASN1_FUNCTIONS(OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ISSUER_SERIAL, OSSL_ISSUER_SERIAL, OSSL_ISSUER_SERIAL) +#define sk_OSSL_ISSUER_SERIAL_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_value(sk, idx) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_value(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk), (idx))) +#define sk_OSSL_ISSUER_SERIAL_new(cmp) ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_new(ossl_check_OSSL_ISSUER_SERIAL_compfunc_type(cmp))) +#define sk_OSSL_ISSUER_SERIAL_new_null() ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ISSUER_SERIAL_new_reserve(cmp, n) ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ISSUER_SERIAL_compfunc_type(cmp), (n))) +#define sk_OSSL_ISSUER_SERIAL_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), (n)) +#define sk_OSSL_ISSUER_SERIAL_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_delete(sk, i) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_delete(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), (i))) +#define sk_OSSL_ISSUER_SERIAL_delete_ptr(sk, ptr) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr))) +#define sk_OSSL_ISSUER_SERIAL_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr)) +#define sk_OSSL_ISSUER_SERIAL_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr)) +#define sk_OSSL_ISSUER_SERIAL_pop(sk) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_pop(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk))) +#define sk_OSSL_ISSUER_SERIAL_shift(sk) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_shift(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk))) +#define sk_OSSL_ISSUER_SERIAL_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk),ossl_check_OSSL_ISSUER_SERIAL_freefunc_type(freefunc)) +#define sk_OSSL_ISSUER_SERIAL_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr), (idx)) +#define sk_OSSL_ISSUER_SERIAL_set(sk, idx, ptr) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_set(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), (idx), ossl_check_OSSL_ISSUER_SERIAL_type(ptr))) +#define sk_OSSL_ISSUER_SERIAL_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr)) +#define sk_OSSL_ISSUER_SERIAL_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr)) +#define sk_OSSL_ISSUER_SERIAL_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr), pnum) +#define sk_OSSL_ISSUER_SERIAL_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_dup(sk) ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk))) +#define sk_OSSL_ISSUER_SERIAL_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_copyfunc_type(copyfunc), ossl_check_OSSL_ISSUER_SERIAL_freefunc_type(freefunc))) +#define sk_OSSL_ISSUER_SERIAL_set_cmp_func(sk, cmp) ((sk_OSSL_ISSUER_SERIAL_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_compfunc_type(cmp))) + + +#endif diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/include/openssl/x509_vfy.h b/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/include/openssl/x509_vfy.h index 29b0e147adcab1..c9bdc3b39d685d 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/include/openssl/x509_vfy.h +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/include/openssl/x509_vfy.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/x509_vfy.h.in * - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -411,6 +411,7 @@ X509_LOOKUP_ctrl_ex((x), X509_L_ADD_STORE, (name), 0, NULL, \ # define X509_V_ERR_CA_CERT_MISSING_KEY_USAGE 92 # define X509_V_ERR_EXTENSIONS_REQUIRE_VERSION_3 93 # define X509_V_ERR_EC_KEY_EXPLICIT_PARAMS 94 +# define X509_V_ERR_RPK_UNTRUSTED 95 /* Certificate verify flags */ # ifndef OPENSSL_NO_DEPRECATED_1_1_0 @@ -491,71 +492,72 @@ int X509_OBJECT_set1_X509(X509_OBJECT *a, X509 *obj); X509_CRL *X509_OBJECT_get0_X509_CRL(const X509_OBJECT *a); int X509_OBJECT_set1_X509_CRL(X509_OBJECT *a, X509_CRL *obj); X509_STORE *X509_STORE_new(void); -void X509_STORE_free(X509_STORE *v); -int X509_STORE_lock(X509_STORE *ctx); -int X509_STORE_unlock(X509_STORE *ctx); -int X509_STORE_up_ref(X509_STORE *v); -STACK_OF(X509_OBJECT) *X509_STORE_get0_objects(const X509_STORE *v); -STACK_OF(X509) *X509_STORE_get1_all_certs(X509_STORE *st); -STACK_OF(X509) *X509_STORE_CTX_get1_certs(X509_STORE_CTX *st, +void X509_STORE_free(X509_STORE *xs); +int X509_STORE_lock(X509_STORE *xs); +int X509_STORE_unlock(X509_STORE *xs); +int X509_STORE_up_ref(X509_STORE *xs); +STACK_OF(X509_OBJECT) *X509_STORE_get0_objects(const X509_STORE *xs); +STACK_OF(X509_OBJECT) *X509_STORE_get1_objects(X509_STORE *xs); +STACK_OF(X509) *X509_STORE_get1_all_certs(X509_STORE *xs); +STACK_OF(X509) *X509_STORE_CTX_get1_certs(X509_STORE_CTX *xs, const X509_NAME *nm); STACK_OF(X509_CRL) *X509_STORE_CTX_get1_crls(const X509_STORE_CTX *st, const X509_NAME *nm); -int X509_STORE_set_flags(X509_STORE *ctx, unsigned long flags); -int X509_STORE_set_purpose(X509_STORE *ctx, int purpose); -int X509_STORE_set_trust(X509_STORE *ctx, int trust); -int X509_STORE_set1_param(X509_STORE *ctx, const X509_VERIFY_PARAM *pm); -X509_VERIFY_PARAM *X509_STORE_get0_param(const X509_STORE *ctx); +int X509_STORE_set_flags(X509_STORE *xs, unsigned long flags); +int X509_STORE_set_purpose(X509_STORE *xs, int purpose); +int X509_STORE_set_trust(X509_STORE *xs, int trust); +int X509_STORE_set1_param(X509_STORE *xs, const X509_VERIFY_PARAM *pm); +X509_VERIFY_PARAM *X509_STORE_get0_param(const X509_STORE *xs); -void X509_STORE_set_verify(X509_STORE *ctx, X509_STORE_CTX_verify_fn verify); +void X509_STORE_set_verify(X509_STORE *xs, X509_STORE_CTX_verify_fn verify); #define X509_STORE_set_verify_func(ctx, func) \ X509_STORE_set_verify((ctx),(func)) void X509_STORE_CTX_set_verify(X509_STORE_CTX *ctx, X509_STORE_CTX_verify_fn verify); -X509_STORE_CTX_verify_fn X509_STORE_get_verify(const X509_STORE *ctx); -void X509_STORE_set_verify_cb(X509_STORE *ctx, +X509_STORE_CTX_verify_fn X509_STORE_get_verify(const X509_STORE *xs); +void X509_STORE_set_verify_cb(X509_STORE *xs, X509_STORE_CTX_verify_cb verify_cb); # define X509_STORE_set_verify_cb_func(ctx,func) \ X509_STORE_set_verify_cb((ctx),(func)) -X509_STORE_CTX_verify_cb X509_STORE_get_verify_cb(const X509_STORE *ctx); -void X509_STORE_set_get_issuer(X509_STORE *ctx, +X509_STORE_CTX_verify_cb X509_STORE_get_verify_cb(const X509_STORE *xs); +void X509_STORE_set_get_issuer(X509_STORE *xs, X509_STORE_CTX_get_issuer_fn get_issuer); -X509_STORE_CTX_get_issuer_fn X509_STORE_get_get_issuer(const X509_STORE *ctx); -void X509_STORE_set_check_issued(X509_STORE *ctx, +X509_STORE_CTX_get_issuer_fn X509_STORE_get_get_issuer(const X509_STORE *xs); +void X509_STORE_set_check_issued(X509_STORE *xs, X509_STORE_CTX_check_issued_fn check_issued); -X509_STORE_CTX_check_issued_fn X509_STORE_get_check_issued(const X509_STORE *ctx); -void X509_STORE_set_check_revocation(X509_STORE *ctx, +X509_STORE_CTX_check_issued_fn X509_STORE_get_check_issued(const X509_STORE *s); +void X509_STORE_set_check_revocation(X509_STORE *xs, X509_STORE_CTX_check_revocation_fn check_revocation); X509_STORE_CTX_check_revocation_fn - X509_STORE_get_check_revocation(const X509_STORE *ctx); -void X509_STORE_set_get_crl(X509_STORE *ctx, + X509_STORE_get_check_revocation(const X509_STORE *xs); +void X509_STORE_set_get_crl(X509_STORE *xs, X509_STORE_CTX_get_crl_fn get_crl); -X509_STORE_CTX_get_crl_fn X509_STORE_get_get_crl(const X509_STORE *ctx); -void X509_STORE_set_check_crl(X509_STORE *ctx, +X509_STORE_CTX_get_crl_fn X509_STORE_get_get_crl(const X509_STORE *xs); +void X509_STORE_set_check_crl(X509_STORE *xs, X509_STORE_CTX_check_crl_fn check_crl); -X509_STORE_CTX_check_crl_fn X509_STORE_get_check_crl(const X509_STORE *ctx); -void X509_STORE_set_cert_crl(X509_STORE *ctx, +X509_STORE_CTX_check_crl_fn X509_STORE_get_check_crl(const X509_STORE *xs); +void X509_STORE_set_cert_crl(X509_STORE *xs, X509_STORE_CTX_cert_crl_fn cert_crl); -X509_STORE_CTX_cert_crl_fn X509_STORE_get_cert_crl(const X509_STORE *ctx); -void X509_STORE_set_check_policy(X509_STORE *ctx, +X509_STORE_CTX_cert_crl_fn X509_STORE_get_cert_crl(const X509_STORE *xs); +void X509_STORE_set_check_policy(X509_STORE *xs, X509_STORE_CTX_check_policy_fn check_policy); -X509_STORE_CTX_check_policy_fn X509_STORE_get_check_policy(const X509_STORE *ctx); -void X509_STORE_set_lookup_certs(X509_STORE *ctx, +X509_STORE_CTX_check_policy_fn X509_STORE_get_check_policy(const X509_STORE *s); +void X509_STORE_set_lookup_certs(X509_STORE *xs, X509_STORE_CTX_lookup_certs_fn lookup_certs); -X509_STORE_CTX_lookup_certs_fn X509_STORE_get_lookup_certs(const X509_STORE *ctx); -void X509_STORE_set_lookup_crls(X509_STORE *ctx, +X509_STORE_CTX_lookup_certs_fn X509_STORE_get_lookup_certs(const X509_STORE *s); +void X509_STORE_set_lookup_crls(X509_STORE *xs, X509_STORE_CTX_lookup_crls_fn lookup_crls); #define X509_STORE_set_lookup_crls_cb(ctx, func) \ X509_STORE_set_lookup_crls((ctx), (func)) -X509_STORE_CTX_lookup_crls_fn X509_STORE_get_lookup_crls(const X509_STORE *ctx); -void X509_STORE_set_cleanup(X509_STORE *ctx, +X509_STORE_CTX_lookup_crls_fn X509_STORE_get_lookup_crls(const X509_STORE *xs); +void X509_STORE_set_cleanup(X509_STORE *xs, X509_STORE_CTX_cleanup_fn cleanup); -X509_STORE_CTX_cleanup_fn X509_STORE_get_cleanup(const X509_STORE *ctx); +X509_STORE_CTX_cleanup_fn X509_STORE_get_cleanup(const X509_STORE *xs); #define X509_STORE_get_ex_new_index(l, p, newf, dupf, freef) \ CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_X509_STORE, l, p, newf, dupf, freef) -int X509_STORE_set_ex_data(X509_STORE *ctx, int idx, void *data); -void *X509_STORE_get_ex_data(const X509_STORE *ctx, int idx); +int X509_STORE_set_ex_data(X509_STORE *xs, int idx, void *data); +void *X509_STORE_get_ex_data(const X509_STORE *xs, int idx); X509_STORE_CTX *X509_STORE_CTX_new_ex(OSSL_LIB_CTX *libctx, const char *propq); X509_STORE_CTX *X509_STORE_CTX_new(void); @@ -565,11 +567,14 @@ int X509_STORE_CTX_get1_issuer(X509 **issuer, X509_STORE_CTX *ctx, X509 *x); void X509_STORE_CTX_free(X509_STORE_CTX *ctx); int X509_STORE_CTX_init(X509_STORE_CTX *ctx, X509_STORE *trust_store, X509 *target, STACK_OF(X509) *untrusted); +int X509_STORE_CTX_init_rpk(X509_STORE_CTX *ctx, X509_STORE *trust_store, + EVP_PKEY* rpk); void X509_STORE_CTX_set0_trusted_stack(X509_STORE_CTX *ctx, STACK_OF(X509) *sk); void X509_STORE_CTX_cleanup(X509_STORE_CTX *ctx); X509_STORE *X509_STORE_CTX_get0_store(const X509_STORE_CTX *ctx); X509 *X509_STORE_CTX_get0_cert(const X509_STORE_CTX *ctx); +EVP_PKEY *X509_STORE_CTX_get0_rpk(const X509_STORE_CTX *ctx); STACK_OF(X509)* X509_STORE_CTX_get0_untrusted(const X509_STORE_CTX *ctx); void X509_STORE_CTX_set0_untrusted(X509_STORE_CTX *ctx, STACK_OF(X509) *sk); void X509_STORE_CTX_set_verify_cb(X509_STORE_CTX *ctx, @@ -579,6 +584,8 @@ X509_STORE_CTX_verify_fn X509_STORE_CTX_get_verify(const X509_STORE_CTX *ctx); X509_STORE_CTX_get_issuer_fn X509_STORE_CTX_get_get_issuer(const X509_STORE_CTX *ctx); X509_STORE_CTX_check_issued_fn X509_STORE_CTX_get_check_issued(const X509_STORE_CTX *ctx); X509_STORE_CTX_check_revocation_fn X509_STORE_CTX_get_check_revocation(const X509_STORE_CTX *ctx); +void X509_STORE_CTX_set_get_crl(X509_STORE_CTX *ctx, + X509_STORE_CTX_get_crl_fn get_crl); X509_STORE_CTX_get_crl_fn X509_STORE_CTX_get_get_crl(const X509_STORE_CTX *ctx); X509_STORE_CTX_check_crl_fn X509_STORE_CTX_get_check_crl(const X509_STORE_CTX *ctx); X509_STORE_CTX_cert_crl_fn X509_STORE_CTX_get_cert_crl(const X509_STORE_CTX *ctx); @@ -600,7 +607,7 @@ X509_STORE_CTX_cleanup_fn X509_STORE_CTX_get_cleanup(const X509_STORE_CTX *ctx); # define X509_STORE_get1_crl X509_STORE_CTX_get1_crls #endif -X509_LOOKUP *X509_STORE_add_lookup(X509_STORE *v, X509_LOOKUP_METHOD *m); +X509_LOOKUP *X509_STORE_add_lookup(X509_STORE *xs, X509_LOOKUP_METHOD *m); X509_LOOKUP_METHOD *X509_LOOKUP_hash_dir(void); X509_LOOKUP_METHOD *X509_LOOKUP_file(void); X509_LOOKUP_METHOD *X509_LOOKUP_store(void); @@ -685,8 +692,8 @@ X509_LOOKUP_get_by_alias_fn X509_LOOKUP_meth_get_get_by_alias( const X509_LOOKUP_METHOD *method); -int X509_STORE_add_cert(X509_STORE *ctx, X509 *x); -int X509_STORE_add_crl(X509_STORE *ctx, X509_CRL *x); +int X509_STORE_add_cert(X509_STORE *xs, X509 *x); +int X509_STORE_add_crl(X509_STORE *xs, X509_CRL *x); int X509_STORE_CTX_get_by_subject(const X509_STORE_CTX *vs, X509_LOOKUP_TYPE type, @@ -730,23 +737,21 @@ void *X509_LOOKUP_get_method_data(const X509_LOOKUP *ctx); X509_STORE *X509_LOOKUP_get_store(const X509_LOOKUP *ctx); int X509_LOOKUP_shutdown(X509_LOOKUP *ctx); -int X509_STORE_load_file(X509_STORE *ctx, const char *file); -int X509_STORE_load_path(X509_STORE *ctx, const char *path); -int X509_STORE_load_store(X509_STORE *ctx, const char *store); -int X509_STORE_load_locations(X509_STORE *ctx, - const char *file, - const char *dir); -int X509_STORE_set_default_paths(X509_STORE *ctx); +int X509_STORE_load_file(X509_STORE *xs, const char *file); +int X509_STORE_load_path(X509_STORE *xs, const char *path); +int X509_STORE_load_store(X509_STORE *xs, const char *store); +int X509_STORE_load_locations(X509_STORE *s, const char *file, const char *dir); +int X509_STORE_set_default_paths(X509_STORE *xs); -int X509_STORE_load_file_ex(X509_STORE *ctx, const char *file, +int X509_STORE_load_file_ex(X509_STORE *xs, const char *file, OSSL_LIB_CTX *libctx, const char *propq); -int X509_STORE_load_store_ex(X509_STORE *ctx, const char *store, +int X509_STORE_load_store_ex(X509_STORE *xs, const char *store, OSSL_LIB_CTX *libctx, const char *propq); -int X509_STORE_load_locations_ex(X509_STORE *ctx, const char *file, - const char *dir, OSSL_LIB_CTX *libctx, - const char *propq); -int X509_STORE_set_default_paths_ex(X509_STORE *ctx, OSSL_LIB_CTX *libctx, - const char *propq); +int X509_STORE_load_locations_ex(X509_STORE *xs, + const char *file, const char *dir, + OSSL_LIB_CTX *libctx, const char *propq); +int X509_STORE_set_default_paths_ex(X509_STORE *xs, + OSSL_LIB_CTX *libctx, const char *propq); #define X509_STORE_CTX_get_ex_new_index(l, p, newf, dupf, freef) \ CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_X509_STORE_CTX, l, p, newf, dupf, freef) @@ -764,6 +769,7 @@ X509_STORE_CTX *X509_STORE_CTX_get0_parent_ctx(const X509_STORE_CTX *ctx); STACK_OF(X509) *X509_STORE_CTX_get0_chain(const X509_STORE_CTX *ctx); STACK_OF(X509) *X509_STORE_CTX_get1_chain(const X509_STORE_CTX *ctx); void X509_STORE_CTX_set_cert(X509_STORE_CTX *ctx, X509 *target); +void X509_STORE_CTX_set0_rpk(X509_STORE_CTX *ctx, EVP_PKEY *target); void X509_STORE_CTX_set0_verified_chain(X509_STORE_CTX *c, STACK_OF(X509) *sk); void X509_STORE_CTX_set0_crls(X509_STORE_CTX *ctx, STACK_OF(X509_CRL) *sk); int X509_STORE_CTX_set_purpose(X509_STORE_CTX *ctx, int purpose); @@ -773,6 +779,8 @@ int X509_STORE_CTX_purpose_inherit(X509_STORE_CTX *ctx, int def_purpose, void X509_STORE_CTX_set_flags(X509_STORE_CTX *ctx, unsigned long flags); void X509_STORE_CTX_set_time(X509_STORE_CTX *ctx, unsigned long flags, time_t t); +void X509_STORE_CTX_set_current_reasons(X509_STORE_CTX *ctx, + unsigned int current_reasons); X509_POLICY_TREE *X509_STORE_CTX_get0_policy_tree(const X509_STORE_CTX *ctx); int X509_STORE_CTX_get_explicit_policy(const X509_STORE_CTX *ctx); @@ -804,6 +812,7 @@ int X509_VERIFY_PARAM_clear_flags(X509_VERIFY_PARAM *param, unsigned long flags); unsigned long X509_VERIFY_PARAM_get_flags(const X509_VERIFY_PARAM *param); int X509_VERIFY_PARAM_set_purpose(X509_VERIFY_PARAM *param, int purpose); +int X509_VERIFY_PARAM_get_purpose(const X509_VERIFY_PARAM *param); int X509_VERIFY_PARAM_set_trust(X509_VERIFY_PARAM *param, int trust); void X509_VERIFY_PARAM_set_depth(X509_VERIFY_PARAM *param, int depth); void X509_VERIFY_PARAM_set_auth_level(X509_VERIFY_PARAM *param, int auth_level); diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/include/openssl/x509v3.h b/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/include/openssl/x509v3.h index 20b67455f2061d..b8dabac35a4915 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/include/openssl/x509v3.h +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/include/openssl/x509v3.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/x509v3.h.in * - * Copyright 1999-2023 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1999-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -25,6 +25,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -146,6 +149,11 @@ typedef struct BASIC_CONSTRAINTS_st { ASN1_INTEGER *pathlen; } BASIC_CONSTRAINTS; +typedef struct OSSL_BASIC_ATTR_CONSTRAINTS_st { + int authority; + ASN1_INTEGER *pathlen; +} OSSL_BASIC_ATTR_CONSTRAINTS; + typedef struct PKEY_USAGE_PERIOD_st { ASN1_GENERALIZEDTIME *notBefore; ASN1_GENERALIZEDTIME *notAfter; @@ -198,6 +206,8 @@ typedef struct ACCESS_DESCRIPTION_st { GENERAL_NAME *location; } ACCESS_DESCRIPTION; +int GENERAL_NAME_set1_X509_NAME(GENERAL_NAME **tgt, const X509_NAME *src); + SKM_DEFINE_STACK_OF_INTERNAL(ACCESS_DESCRIPTION, ACCESS_DESCRIPTION, ACCESS_DESCRIPTION) #define sk_ACCESS_DESCRIPTION_num(sk) OPENSSL_sk_num(ossl_check_const_ACCESS_DESCRIPTION_sk_type(sk)) #define sk_ACCESS_DESCRIPTION_value(sk, idx) ((ACCESS_DESCRIPTION *)OPENSSL_sk_value(ossl_check_const_ACCESS_DESCRIPTION_sk_type(sk), (idx))) @@ -294,6 +304,7 @@ typedef struct DIST_POINT_NAME_st { /* If relativename then this contains the full distribution point name */ X509_NAME *dpname; } DIST_POINT_NAME; +DECLARE_ASN1_DUP_FUNCTION(DIST_POINT_NAME) /* All existing reasons */ # define CRLDP_ALL_REASONS 0x807f @@ -659,15 +670,16 @@ struct ISSUING_DIST_POINT_st { # define EXFLAG_SAN_CRITICAL 0x80000 # define EXFLAG_NO_FINGERPRINT 0x100000 -# define KU_DIGITAL_SIGNATURE 0x0080 -# define KU_NON_REPUDIATION 0x0040 -# define KU_KEY_ENCIPHERMENT 0x0020 -# define KU_DATA_ENCIPHERMENT 0x0010 -# define KU_KEY_AGREEMENT 0x0008 -# define KU_KEY_CERT_SIGN 0x0004 -# define KU_CRL_SIGN 0x0002 -# define KU_ENCIPHER_ONLY 0x0001 -# define KU_DECIPHER_ONLY 0x8000 +/* https://datatracker.ietf.org/doc/html/rfc5280#section-4.2.1.3 */ +# define KU_DIGITAL_SIGNATURE X509v3_KU_DIGITAL_SIGNATURE +# define KU_NON_REPUDIATION X509v3_KU_NON_REPUDIATION +# define KU_KEY_ENCIPHERMENT X509v3_KU_KEY_ENCIPHERMENT +# define KU_DATA_ENCIPHERMENT X509v3_KU_DATA_ENCIPHERMENT +# define KU_KEY_AGREEMENT X509v3_KU_KEY_AGREEMENT +# define KU_KEY_CERT_SIGN X509v3_KU_KEY_CERT_SIGN +# define KU_CRL_SIGN X509v3_KU_CRL_SIGN +# define KU_ENCIPHER_ONLY X509v3_KU_ENCIPHER_ONLY +# define KU_DECIPHER_ONLY X509v3_KU_DECIPHER_ONLY # define NS_SSL_CLIENT 0x80 # define NS_SSL_SERVER 0x40 @@ -729,7 +741,7 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_PURPOSE, X509_PURPOSE, X509_PURPOSE) #define sk_X509_PURPOSE_set_cmp_func(sk, cmp) ((sk_X509_PURPOSE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_X509_PURPOSE_sk_type(sk), ossl_check_X509_PURPOSE_compfunc_type(cmp))) - +# define X509_PURPOSE_DEFAULT_ANY 0 # define X509_PURPOSE_SSL_CLIENT 1 # define X509_PURPOSE_SSL_SERVER 2 # define X509_PURPOSE_NS_SSL_SERVER 3 @@ -739,9 +751,10 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_PURPOSE, X509_PURPOSE, X509_PURPOSE) # define X509_PURPOSE_ANY 7 # define X509_PURPOSE_OCSP_HELPER 8 # define X509_PURPOSE_TIMESTAMP_SIGN 9 +# define X509_PURPOSE_CODE_SIGN 10 # define X509_PURPOSE_MIN 1 -# define X509_PURPOSE_MAX 9 +# define X509_PURPOSE_MAX 10 /* Flags for X509V3_EXT_print() */ @@ -767,6 +780,7 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_PURPOSE, X509_PURPOSE, X509_PURPOSE) # define X509V3_ADD_SILENT 0x10 DECLARE_ASN1_FUNCTIONS(BASIC_CONSTRAINTS) +DECLARE_ASN1_FUNCTIONS(OSSL_BASIC_ATTR_CONSTRAINTS) DECLARE_ASN1_FUNCTIONS(SXNET) DECLARE_ASN1_FUNCTIONS(SXNETID) @@ -976,7 +990,6 @@ int X509V3_extensions_print(BIO *out, const char *title, int X509_check_ca(X509 *x); int X509_check_purpose(X509 *x, int id, int ca); int X509_supported_extension(X509_EXTENSION *ex); -int X509_PURPOSE_set(int *p, int purpose); int X509_check_issued(X509 *issuer, X509 *subject); int X509_check_akid(const X509 *issuer, const AUTHORITY_KEYID *akid); void X509_set_proxy_flag(X509 *x); @@ -992,22 +1005,26 @@ const GENERAL_NAMES *X509_get0_authority_issuer(X509 *x); const ASN1_INTEGER *X509_get0_authority_serial(X509 *x); int X509_PURPOSE_get_count(void); -X509_PURPOSE *X509_PURPOSE_get0(int idx); +int X509_PURPOSE_get_unused_id(OSSL_LIB_CTX *libctx); int X509_PURPOSE_get_by_sname(const char *sname); int X509_PURPOSE_get_by_id(int id); int X509_PURPOSE_add(int id, int trust, int flags, int (*ck) (const X509_PURPOSE *, const X509 *, int), const char *name, const char *sname, void *arg); +void X509_PURPOSE_cleanup(void); + +X509_PURPOSE *X509_PURPOSE_get0(int idx); +int X509_PURPOSE_get_id(const X509_PURPOSE *); char *X509_PURPOSE_get0_name(const X509_PURPOSE *xp); char *X509_PURPOSE_get0_sname(const X509_PURPOSE *xp); int X509_PURPOSE_get_trust(const X509_PURPOSE *xp); -void X509_PURPOSE_cleanup(void); -int X509_PURPOSE_get_id(const X509_PURPOSE *); +int X509_PURPOSE_set(int *p, int purpose); STACK_OF(OPENSSL_STRING) *X509_get1_email(X509 *x); STACK_OF(OPENSSL_STRING) *X509_REQ_get1_email(X509_REQ *x); void X509_email_free(STACK_OF(OPENSSL_STRING) *sk); STACK_OF(OPENSSL_STRING) *X509_get1_ocsp(X509 *x); + /* Flags for X509_check_* functions */ /* @@ -1444,6 +1461,507 @@ const ASN1_PRINTABLESTRING *PROFESSION_INFO_get0_registrationNumber( void PROFESSION_INFO_set0_registrationNumber( PROFESSION_INFO *pi, ASN1_PRINTABLESTRING *rn); +int OSSL_GENERAL_NAMES_print(BIO *out, GENERAL_NAMES *gens, int indent); + +typedef STACK_OF(X509_ATTRIBUTE) OSSL_ATTRIBUTES_SYNTAX; +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTES_SYNTAX) + +typedef STACK_OF(USERNOTICE) OSSL_USER_NOTICE_SYNTAX; +DECLARE_ASN1_FUNCTIONS(OSSL_USER_NOTICE_SYNTAX) + +SKM_DEFINE_STACK_OF_INTERNAL(USERNOTICE, USERNOTICE, USERNOTICE) +#define sk_USERNOTICE_num(sk) OPENSSL_sk_num(ossl_check_const_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_value(sk, idx) ((USERNOTICE *)OPENSSL_sk_value(ossl_check_const_USERNOTICE_sk_type(sk), (idx))) +#define sk_USERNOTICE_new(cmp) ((STACK_OF(USERNOTICE) *)OPENSSL_sk_new(ossl_check_USERNOTICE_compfunc_type(cmp))) +#define sk_USERNOTICE_new_null() ((STACK_OF(USERNOTICE) *)OPENSSL_sk_new_null()) +#define sk_USERNOTICE_new_reserve(cmp, n) ((STACK_OF(USERNOTICE) *)OPENSSL_sk_new_reserve(ossl_check_USERNOTICE_compfunc_type(cmp), (n))) +#define sk_USERNOTICE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_USERNOTICE_sk_type(sk), (n)) +#define sk_USERNOTICE_free(sk) OPENSSL_sk_free(ossl_check_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_zero(sk) OPENSSL_sk_zero(ossl_check_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_delete(sk, i) ((USERNOTICE *)OPENSSL_sk_delete(ossl_check_USERNOTICE_sk_type(sk), (i))) +#define sk_USERNOTICE_delete_ptr(sk, ptr) ((USERNOTICE *)OPENSSL_sk_delete_ptr(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr))) +#define sk_USERNOTICE_push(sk, ptr) OPENSSL_sk_push(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr)) +#define sk_USERNOTICE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr)) +#define sk_USERNOTICE_pop(sk) ((USERNOTICE *)OPENSSL_sk_pop(ossl_check_USERNOTICE_sk_type(sk))) +#define sk_USERNOTICE_shift(sk) ((USERNOTICE *)OPENSSL_sk_shift(ossl_check_USERNOTICE_sk_type(sk))) +#define sk_USERNOTICE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_USERNOTICE_sk_type(sk),ossl_check_USERNOTICE_freefunc_type(freefunc)) +#define sk_USERNOTICE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr), (idx)) +#define sk_USERNOTICE_set(sk, idx, ptr) ((USERNOTICE *)OPENSSL_sk_set(ossl_check_USERNOTICE_sk_type(sk), (idx), ossl_check_USERNOTICE_type(ptr))) +#define sk_USERNOTICE_find(sk, ptr) OPENSSL_sk_find(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr)) +#define sk_USERNOTICE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr)) +#define sk_USERNOTICE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr), pnum) +#define sk_USERNOTICE_sort(sk) OPENSSL_sk_sort(ossl_check_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_dup(sk) ((STACK_OF(USERNOTICE) *)OPENSSL_sk_dup(ossl_check_const_USERNOTICE_sk_type(sk))) +#define sk_USERNOTICE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(USERNOTICE) *)OPENSSL_sk_deep_copy(ossl_check_const_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_copyfunc_type(copyfunc), ossl_check_USERNOTICE_freefunc_type(freefunc))) +#define sk_USERNOTICE_set_cmp_func(sk, cmp) ((sk_USERNOTICE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_compfunc_type(cmp))) + + +typedef struct OSSL_ROLE_SPEC_CERT_ID_st { + GENERAL_NAME *roleName; + GENERAL_NAME *roleCertIssuer; + ASN1_INTEGER *roleCertSerialNumber; + GENERAL_NAMES *roleCertLocator; +} OSSL_ROLE_SPEC_CERT_ID; + +DECLARE_ASN1_FUNCTIONS(OSSL_ROLE_SPEC_CERT_ID) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ROLE_SPEC_CERT_ID, OSSL_ROLE_SPEC_CERT_ID, OSSL_ROLE_SPEC_CERT_ID) +#define sk_OSSL_ROLE_SPEC_CERT_ID_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_value(sk, idx) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_value(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), (idx))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_new(cmp) ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_new(ossl_check_OSSL_ROLE_SPEC_CERT_ID_compfunc_type(cmp))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_new_null() ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ROLE_SPEC_CERT_ID_new_reserve(cmp, n) ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ROLE_SPEC_CERT_ID_compfunc_type(cmp), (n))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), (n)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_delete(sk, i) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_delete(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), (i))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_delete_ptr(sk, ptr) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_pop(sk) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_pop(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_shift(sk) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_shift(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk),ossl_check_OSSL_ROLE_SPEC_CERT_ID_freefunc_type(freefunc)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr), (idx)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_set(sk, idx, ptr) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_set(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), (idx), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr), pnum) +#define sk_OSSL_ROLE_SPEC_CERT_ID_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_dup(sk) ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_copyfunc_type(copyfunc), ossl_check_OSSL_ROLE_SPEC_CERT_ID_freefunc_type(freefunc))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_set_cmp_func(sk, cmp) ((sk_OSSL_ROLE_SPEC_CERT_ID_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_compfunc_type(cmp))) + + +typedef STACK_OF(OSSL_ROLE_SPEC_CERT_ID) OSSL_ROLE_SPEC_CERT_ID_SYNTAX; + +DECLARE_ASN1_FUNCTIONS(OSSL_ROLE_SPEC_CERT_ID_SYNTAX) +typedef struct OSSL_HASH_st { + X509_ALGOR *algorithmIdentifier; + ASN1_BIT_STRING *hashValue; +} OSSL_HASH; + +typedef struct OSSL_INFO_SYNTAX_POINTER_st { + GENERAL_NAMES *name; + OSSL_HASH *hash; +} OSSL_INFO_SYNTAX_POINTER; + +# define OSSL_INFO_SYNTAX_TYPE_CONTENT 0 +# define OSSL_INFO_SYNTAX_TYPE_POINTER 1 + +typedef struct OSSL_INFO_SYNTAX_st { + int type; + union { + ASN1_STRING *content; + OSSL_INFO_SYNTAX_POINTER *pointer; + } choice; +} OSSL_INFO_SYNTAX; + +typedef struct OSSL_PRIVILEGE_POLICY_ID_st { + ASN1_OBJECT *privilegePolicy; + OSSL_INFO_SYNTAX *privPolSyntax; +} OSSL_PRIVILEGE_POLICY_ID; + +typedef struct OSSL_ATTRIBUTE_DESCRIPTOR_st { + ASN1_OBJECT *identifier; + ASN1_STRING *attributeSyntax; + ASN1_UTF8STRING *name; + ASN1_UTF8STRING *description; + OSSL_PRIVILEGE_POLICY_ID *dominationRule; +} OSSL_ATTRIBUTE_DESCRIPTOR; + +DECLARE_ASN1_FUNCTIONS(OSSL_HASH) +DECLARE_ASN1_FUNCTIONS(OSSL_INFO_SYNTAX) +DECLARE_ASN1_FUNCTIONS(OSSL_INFO_SYNTAX_POINTER) +DECLARE_ASN1_FUNCTIONS(OSSL_PRIVILEGE_POLICY_ID) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_DESCRIPTOR) + +typedef struct OSSL_TIME_SPEC_ABSOLUTE_st { + ASN1_GENERALIZEDTIME *startTime; + ASN1_GENERALIZEDTIME *endTime; +} OSSL_TIME_SPEC_ABSOLUTE; + +typedef struct OSSL_DAY_TIME_st { + ASN1_INTEGER *hour; + ASN1_INTEGER *minute; + ASN1_INTEGER *second; +} OSSL_DAY_TIME; + +typedef struct OSSL_DAY_TIME_BAND_st { + OSSL_DAY_TIME *startDayTime; + OSSL_DAY_TIME *endDayTime; +} OSSL_DAY_TIME_BAND; + +# define OSSL_NAMED_DAY_TYPE_INT 0 +# define OSSL_NAMED_DAY_TYPE_BIT 1 +# define OSSL_NAMED_DAY_INT_SUN 1 +# define OSSL_NAMED_DAY_INT_MON 2 +# define OSSL_NAMED_DAY_INT_TUE 3 +# define OSSL_NAMED_DAY_INT_WED 4 +# define OSSL_NAMED_DAY_INT_THU 5 +# define OSSL_NAMED_DAY_INT_FRI 6 +# define OSSL_NAMED_DAY_INT_SAT 7 +# define OSSL_NAMED_DAY_BIT_SUN 0 +# define OSSL_NAMED_DAY_BIT_MON 1 +# define OSSL_NAMED_DAY_BIT_TUE 2 +# define OSSL_NAMED_DAY_BIT_WED 3 +# define OSSL_NAMED_DAY_BIT_THU 4 +# define OSSL_NAMED_DAY_BIT_FRI 5 +# define OSSL_NAMED_DAY_BIT_SAT 6 + +typedef struct OSSL_NAMED_DAY_st { + int type; + union { + ASN1_INTEGER *intNamedDays; + ASN1_BIT_STRING *bitNamedDays; + } choice; +} OSSL_NAMED_DAY; + +# define OSSL_TIME_SPEC_X_DAY_OF_FIRST 0 +# define OSSL_TIME_SPEC_X_DAY_OF_SECOND 1 +# define OSSL_TIME_SPEC_X_DAY_OF_THIRD 2 +# define OSSL_TIME_SPEC_X_DAY_OF_FOURTH 3 +# define OSSL_TIME_SPEC_X_DAY_OF_FIFTH 4 + +typedef struct OSSL_TIME_SPEC_X_DAY_OF_st { + int type; + union { + OSSL_NAMED_DAY *first; + OSSL_NAMED_DAY *second; + OSSL_NAMED_DAY *third; + OSSL_NAMED_DAY *fourth; + OSSL_NAMED_DAY *fifth; + } choice; +} OSSL_TIME_SPEC_X_DAY_OF; + +# define OSSL_TIME_SPEC_DAY_TYPE_INT 0 +# define OSSL_TIME_SPEC_DAY_TYPE_BIT 1 +# define OSSL_TIME_SPEC_DAY_TYPE_DAY_OF 2 +# define OSSL_TIME_SPEC_DAY_BIT_SUN 0 +# define OSSL_TIME_SPEC_DAY_BIT_MON 1 +# define OSSL_TIME_SPEC_DAY_BIT_TUE 2 +# define OSSL_TIME_SPEC_DAY_BIT_WED 3 +# define OSSL_TIME_SPEC_DAY_BIT_THU 4 +# define OSSL_TIME_SPEC_DAY_BIT_FRI 5 +# define OSSL_TIME_SPEC_DAY_BIT_SAT 6 +# define OSSL_TIME_SPEC_DAY_INT_SUN 1 +# define OSSL_TIME_SPEC_DAY_INT_MON 2 +# define OSSL_TIME_SPEC_DAY_INT_TUE 3 +# define OSSL_TIME_SPEC_DAY_INT_WED 4 +# define OSSL_TIME_SPEC_DAY_INT_THU 5 +# define OSSL_TIME_SPEC_DAY_INT_FRI 6 +# define OSSL_TIME_SPEC_DAY_INT_SAT 7 + +typedef struct OSSL_TIME_SPEC_DAY_st { + int type; + union { + STACK_OF(ASN1_INTEGER) *intDay; + ASN1_BIT_STRING *bitDay; + OSSL_TIME_SPEC_X_DAY_OF *dayOf; + } choice; +} OSSL_TIME_SPEC_DAY; + +# define OSSL_TIME_SPEC_WEEKS_TYPE_ALL 0 +# define OSSL_TIME_SPEC_WEEKS_TYPE_INT 1 +# define OSSL_TIME_SPEC_WEEKS_TYPE_BIT 2 +# define OSSL_TIME_SPEC_BIT_WEEKS_1 0 +# define OSSL_TIME_SPEC_BIT_WEEKS_2 1 +# define OSSL_TIME_SPEC_BIT_WEEKS_3 2 +# define OSSL_TIME_SPEC_BIT_WEEKS_4 3 +# define OSSL_TIME_SPEC_BIT_WEEKS_5 4 + +typedef struct OSSL_TIME_SPEC_WEEKS_st { + int type; + union { + ASN1_NULL *allWeeks; + STACK_OF(ASN1_INTEGER) *intWeek; + ASN1_BIT_STRING *bitWeek; + } choice; +} OSSL_TIME_SPEC_WEEKS; + +# define OSSL_TIME_SPEC_MONTH_TYPE_ALL 0 +# define OSSL_TIME_SPEC_MONTH_TYPE_INT 1 +# define OSSL_TIME_SPEC_MONTH_TYPE_BIT 2 +# define OSSL_TIME_SPEC_INT_MONTH_JAN 1 +# define OSSL_TIME_SPEC_INT_MONTH_FEB 2 +# define OSSL_TIME_SPEC_INT_MONTH_MAR 3 +# define OSSL_TIME_SPEC_INT_MONTH_APR 4 +# define OSSL_TIME_SPEC_INT_MONTH_MAY 5 +# define OSSL_TIME_SPEC_INT_MONTH_JUN 6 +# define OSSL_TIME_SPEC_INT_MONTH_JUL 7 +# define OSSL_TIME_SPEC_INT_MONTH_AUG 8 +# define OSSL_TIME_SPEC_INT_MONTH_SEP 9 +# define OSSL_TIME_SPEC_INT_MONTH_OCT 10 +# define OSSL_TIME_SPEC_INT_MONTH_NOV 11 +# define OSSL_TIME_SPEC_INT_MONTH_DEC 12 +# define OSSL_TIME_SPEC_BIT_MONTH_JAN 0 +# define OSSL_TIME_SPEC_BIT_MONTH_FEB 1 +# define OSSL_TIME_SPEC_BIT_MONTH_MAR 2 +# define OSSL_TIME_SPEC_BIT_MONTH_APR 3 +# define OSSL_TIME_SPEC_BIT_MONTH_MAY 4 +# define OSSL_TIME_SPEC_BIT_MONTH_JUN 5 +# define OSSL_TIME_SPEC_BIT_MONTH_JUL 6 +# define OSSL_TIME_SPEC_BIT_MONTH_AUG 7 +# define OSSL_TIME_SPEC_BIT_MONTH_SEP 8 +# define OSSL_TIME_SPEC_BIT_MONTH_OCT 9 +# define OSSL_TIME_SPEC_BIT_MONTH_NOV 10 +# define OSSL_TIME_SPEC_BIT_MONTH_DEC 11 + +typedef struct OSSL_TIME_SPEC_MONTH_st { + int type; + union { + ASN1_NULL *allMonths; + STACK_OF(ASN1_INTEGER) *intMonth; + ASN1_BIT_STRING *bitMonth; + } choice; +} OSSL_TIME_SPEC_MONTH; + +typedef struct OSSL_TIME_PERIOD_st { + STACK_OF(OSSL_DAY_TIME_BAND) *timesOfDay; + OSSL_TIME_SPEC_DAY *days; + OSSL_TIME_SPEC_WEEKS *weeks; + OSSL_TIME_SPEC_MONTH *months; + STACK_OF(ASN1_INTEGER) *years; +} OSSL_TIME_PERIOD; + +# define OSSL_TIME_SPEC_TIME_TYPE_ABSOLUTE 0 +# define OSSL_TIME_SPEC_TIME_TYPE_PERIODIC 1 + +typedef struct OSSL_TIME_SPEC_TIME_st { + int type; + union { + OSSL_TIME_SPEC_ABSOLUTE *absolute; + STACK_OF(OSSL_TIME_PERIOD) *periodic; + } choice; +} OSSL_TIME_SPEC_TIME; + +typedef struct OSSL_TIME_SPEC_st { + OSSL_TIME_SPEC_TIME *time; + ASN1_BOOLEAN notThisTime; + ASN1_INTEGER *timeZone; +} OSSL_TIME_SPEC; + +DECLARE_ASN1_FUNCTIONS(OSSL_DAY_TIME) +DECLARE_ASN1_FUNCTIONS(OSSL_DAY_TIME_BAND) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_DAY) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_WEEKS) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_MONTH) +DECLARE_ASN1_FUNCTIONS(OSSL_NAMED_DAY) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_X_DAY_OF) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_ABSOLUTE) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_TIME) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_PERIOD) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_TIME_PERIOD, OSSL_TIME_PERIOD, OSSL_TIME_PERIOD) +#define sk_OSSL_TIME_PERIOD_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_value(sk, idx) ((OSSL_TIME_PERIOD *)OPENSSL_sk_value(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk), (idx))) +#define sk_OSSL_TIME_PERIOD_new(cmp) ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_new(ossl_check_OSSL_TIME_PERIOD_compfunc_type(cmp))) +#define sk_OSSL_TIME_PERIOD_new_null() ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_new_null()) +#define sk_OSSL_TIME_PERIOD_new_reserve(cmp, n) ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_TIME_PERIOD_compfunc_type(cmp), (n))) +#define sk_OSSL_TIME_PERIOD_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), (n)) +#define sk_OSSL_TIME_PERIOD_free(sk) OPENSSL_sk_free(ossl_check_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_delete(sk, i) ((OSSL_TIME_PERIOD *)OPENSSL_sk_delete(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), (i))) +#define sk_OSSL_TIME_PERIOD_delete_ptr(sk, ptr) ((OSSL_TIME_PERIOD *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr))) +#define sk_OSSL_TIME_PERIOD_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr)) +#define sk_OSSL_TIME_PERIOD_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr)) +#define sk_OSSL_TIME_PERIOD_pop(sk) ((OSSL_TIME_PERIOD *)OPENSSL_sk_pop(ossl_check_OSSL_TIME_PERIOD_sk_type(sk))) +#define sk_OSSL_TIME_PERIOD_shift(sk) ((OSSL_TIME_PERIOD *)OPENSSL_sk_shift(ossl_check_OSSL_TIME_PERIOD_sk_type(sk))) +#define sk_OSSL_TIME_PERIOD_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_TIME_PERIOD_sk_type(sk),ossl_check_OSSL_TIME_PERIOD_freefunc_type(freefunc)) +#define sk_OSSL_TIME_PERIOD_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr), (idx)) +#define sk_OSSL_TIME_PERIOD_set(sk, idx, ptr) ((OSSL_TIME_PERIOD *)OPENSSL_sk_set(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), (idx), ossl_check_OSSL_TIME_PERIOD_type(ptr))) +#define sk_OSSL_TIME_PERIOD_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr)) +#define sk_OSSL_TIME_PERIOD_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr)) +#define sk_OSSL_TIME_PERIOD_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr), pnum) +#define sk_OSSL_TIME_PERIOD_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_dup(sk) ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_dup(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk))) +#define sk_OSSL_TIME_PERIOD_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_copyfunc_type(copyfunc), ossl_check_OSSL_TIME_PERIOD_freefunc_type(freefunc))) +#define sk_OSSL_TIME_PERIOD_set_cmp_func(sk, cmp) ((sk_OSSL_TIME_PERIOD_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_compfunc_type(cmp))) + + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_DAY_TIME_BAND, OSSL_DAY_TIME_BAND, OSSL_DAY_TIME_BAND) +#define sk_OSSL_DAY_TIME_BAND_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_value(sk, idx) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_value(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk), (idx))) +#define sk_OSSL_DAY_TIME_BAND_new(cmp) ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_new(ossl_check_OSSL_DAY_TIME_BAND_compfunc_type(cmp))) +#define sk_OSSL_DAY_TIME_BAND_new_null() ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_new_null()) +#define sk_OSSL_DAY_TIME_BAND_new_reserve(cmp, n) ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_DAY_TIME_BAND_compfunc_type(cmp), (n))) +#define sk_OSSL_DAY_TIME_BAND_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), (n)) +#define sk_OSSL_DAY_TIME_BAND_free(sk) OPENSSL_sk_free(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_delete(sk, i) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_delete(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), (i))) +#define sk_OSSL_DAY_TIME_BAND_delete_ptr(sk, ptr) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr))) +#define sk_OSSL_DAY_TIME_BAND_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr)) +#define sk_OSSL_DAY_TIME_BAND_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr)) +#define sk_OSSL_DAY_TIME_BAND_pop(sk) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_pop(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk))) +#define sk_OSSL_DAY_TIME_BAND_shift(sk) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_shift(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk))) +#define sk_OSSL_DAY_TIME_BAND_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk),ossl_check_OSSL_DAY_TIME_BAND_freefunc_type(freefunc)) +#define sk_OSSL_DAY_TIME_BAND_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr), (idx)) +#define sk_OSSL_DAY_TIME_BAND_set(sk, idx, ptr) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_set(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), (idx), ossl_check_OSSL_DAY_TIME_BAND_type(ptr))) +#define sk_OSSL_DAY_TIME_BAND_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr)) +#define sk_OSSL_DAY_TIME_BAND_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr)) +#define sk_OSSL_DAY_TIME_BAND_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr), pnum) +#define sk_OSSL_DAY_TIME_BAND_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_dup(sk) ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_dup(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk))) +#define sk_OSSL_DAY_TIME_BAND_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_copyfunc_type(copyfunc), ossl_check_OSSL_DAY_TIME_BAND_freefunc_type(freefunc))) +#define sk_OSSL_DAY_TIME_BAND_set_cmp_func(sk, cmp) ((sk_OSSL_DAY_TIME_BAND_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_compfunc_type(cmp))) + + +/* Attribute Type and Value */ +typedef struct atav_st { + ASN1_OBJECT *type; + ASN1_TYPE *value; +} OSSL_ATAV; + +typedef struct ATTRIBUTE_TYPE_MAPPING_st { + ASN1_OBJECT *local; + ASN1_OBJECT *remote; +} OSSL_ATTRIBUTE_TYPE_MAPPING; + +typedef struct ATTRIBUTE_VALUE_MAPPING_st { + OSSL_ATAV *local; + OSSL_ATAV *remote; +} OSSL_ATTRIBUTE_VALUE_MAPPING; + +# define OSSL_ATTR_MAP_TYPE 0 +# define OSSL_ATTR_MAP_VALUE 1 + +typedef struct ATTRIBUTE_MAPPING_st { + int type; + union { + OSSL_ATTRIBUTE_TYPE_MAPPING *typeMappings; + OSSL_ATTRIBUTE_VALUE_MAPPING *typeValueMappings; + } choice; +} OSSL_ATTRIBUTE_MAPPING; + +typedef STACK_OF(OSSL_ATTRIBUTE_MAPPING) OSSL_ATTRIBUTE_MAPPINGS; +DECLARE_ASN1_FUNCTIONS(OSSL_ATAV) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_TYPE_MAPPING) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_VALUE_MAPPING) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_MAPPING) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_MAPPINGS) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ATTRIBUTE_MAPPING, OSSL_ATTRIBUTE_MAPPING, OSSL_ATTRIBUTE_MAPPING) +#define sk_OSSL_ATTRIBUTE_MAPPING_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_value(sk, idx) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_value(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), (idx))) +#define sk_OSSL_ATTRIBUTE_MAPPING_new(cmp) ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_new(ossl_check_OSSL_ATTRIBUTE_MAPPING_compfunc_type(cmp))) +#define sk_OSSL_ATTRIBUTE_MAPPING_new_null() ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ATTRIBUTE_MAPPING_new_reserve(cmp, n) ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ATTRIBUTE_MAPPING_compfunc_type(cmp), (n))) +#define sk_OSSL_ATTRIBUTE_MAPPING_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), (n)) +#define sk_OSSL_ATTRIBUTE_MAPPING_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_delete(sk, i) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_delete(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), (i))) +#define sk_OSSL_ATTRIBUTE_MAPPING_delete_ptr(sk, ptr) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr))) +#define sk_OSSL_ATTRIBUTE_MAPPING_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr)) +#define sk_OSSL_ATTRIBUTE_MAPPING_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr)) +#define sk_OSSL_ATTRIBUTE_MAPPING_pop(sk) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_pop(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk))) +#define sk_OSSL_ATTRIBUTE_MAPPING_shift(sk) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_shift(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk))) +#define sk_OSSL_ATTRIBUTE_MAPPING_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk),ossl_check_OSSL_ATTRIBUTE_MAPPING_freefunc_type(freefunc)) +#define sk_OSSL_ATTRIBUTE_MAPPING_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr), (idx)) +#define sk_OSSL_ATTRIBUTE_MAPPING_set(sk, idx, ptr) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_set(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), (idx), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr))) +#define sk_OSSL_ATTRIBUTE_MAPPING_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr)) +#define sk_OSSL_ATTRIBUTE_MAPPING_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr)) +#define sk_OSSL_ATTRIBUTE_MAPPING_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr), pnum) +#define sk_OSSL_ATTRIBUTE_MAPPING_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_dup(sk) ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk))) +#define sk_OSSL_ATTRIBUTE_MAPPING_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_copyfunc_type(copyfunc), ossl_check_OSSL_ATTRIBUTE_MAPPING_freefunc_type(freefunc))) +#define sk_OSSL_ATTRIBUTE_MAPPING_set_cmp_func(sk, cmp) ((sk_OSSL_ATTRIBUTE_MAPPING_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_compfunc_type(cmp))) + + +# define OSSL_AAA_ATTRIBUTE_TYPE 0 +# define OSSL_AAA_ATTRIBUTE_VALUES 1 + +typedef struct ALLOWED_ATTRIBUTES_CHOICE_st { + int type; + union { + ASN1_OBJECT *attributeType; + X509_ATTRIBUTE *attributeTypeandValues; + } choice; +} OSSL_ALLOWED_ATTRIBUTES_CHOICE; + +typedef struct ALLOWED_ATTRIBUTES_ITEM_st { + STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *attributes; + GENERAL_NAME *holderDomain; +} OSSL_ALLOWED_ATTRIBUTES_ITEM; + +typedef STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) OSSL_ALLOWED_ATTRIBUTES_SYNTAX; + +DECLARE_ASN1_FUNCTIONS(OSSL_ALLOWED_ATTRIBUTES_CHOICE) +DECLARE_ASN1_FUNCTIONS(OSSL_ALLOWED_ATTRIBUTES_ITEM) +DECLARE_ASN1_FUNCTIONS(OSSL_ALLOWED_ATTRIBUTES_SYNTAX) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ALLOWED_ATTRIBUTES_CHOICE, OSSL_ALLOWED_ATTRIBUTES_CHOICE, OSSL_ALLOWED_ATTRIBUTES_CHOICE) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_value(sk, idx) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_value(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), (idx))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_new(cmp) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_new(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_compfunc_type(cmp))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_new_null() ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_new_reserve(cmp, n) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_compfunc_type(cmp), (n))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), (n)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_delete(sk, i) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_delete(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), (i))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_delete_ptr(sk, ptr) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_pop(sk) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_pop(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_shift(sk) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_shift(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk),ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_freefunc_type(freefunc)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr), (idx)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_set(sk, idx, ptr) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_set(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), (idx), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr), pnum) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_dup(sk) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_copyfunc_type(copyfunc), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_freefunc_type(freefunc))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_set_cmp_func(sk, cmp) ((sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_compfunc_type(cmp))) + + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ALLOWED_ATTRIBUTES_ITEM, OSSL_ALLOWED_ATTRIBUTES_ITEM, OSSL_ALLOWED_ATTRIBUTES_ITEM) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_value(sk, idx) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_value(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), (idx))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_new(cmp) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_new(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_compfunc_type(cmp))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_new_null() ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_new_reserve(cmp, n) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_compfunc_type(cmp), (n))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), (n)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_delete(sk, i) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_delete(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), (i))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_delete_ptr(sk, ptr) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_pop(sk) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_pop(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_shift(sk) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_shift(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk),ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_freefunc_type(freefunc)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr), (idx)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_set(sk, idx, ptr) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_set(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), (idx), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr), pnum) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_dup(sk) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_copyfunc_type(copyfunc), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_freefunc_type(freefunc))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_set_cmp_func(sk, cmp) ((sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_compfunc_type(cmp))) + + +typedef struct AA_DIST_POINT_st { + DIST_POINT_NAME *distpoint; + ASN1_BIT_STRING *reasons; + int dp_reasons; + ASN1_BOOLEAN indirectCRL; + ASN1_BOOLEAN containsUserAttributeCerts; + ASN1_BOOLEAN containsAACerts; + ASN1_BOOLEAN containsSOAPublicKeyCerts; +} OSSL_AA_DIST_POINT; + +DECLARE_ASN1_FUNCTIONS(OSSL_AA_DIST_POINT) + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/include/progs.h b/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/include/progs.h index be55f61503d405..1b62ec37dec130 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/include/progs.h +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/include/progs.h @@ -56,6 +56,7 @@ extern int s_client_main(int argc, char *argv[]); extern int s_server_main(int argc, char *argv[]); extern int s_time_main(int argc, char *argv[]); extern int sess_id_main(int argc, char *argv[]); +extern int skeyutl_main(int argc, char *argv[]); extern int smime_main(int argc, char *argv[]); extern int speed_main(int argc, char *argv[]); extern int spkac_main(int argc, char *argv[]); @@ -110,6 +111,7 @@ extern const OPTIONS s_client_options[]; extern const OPTIONS s_server_options[]; extern const OPTIONS s_time_options[]; extern const OPTIONS sess_id_options[]; +extern const OPTIONS skeyutl_options[]; extern const OPTIONS smime_options[]; extern const OPTIONS speed_options[]; extern const OPTIONS spkac_options[]; diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/openssl-cl.gypi b/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/openssl-cl.gypi index b4fdd2479ed704..c3500cfc53bc12 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/openssl-cl.gypi +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/openssl-cl.gypi @@ -83,6 +83,7 @@ 'openssl/apps/s_server.c', 'openssl/apps/s_time.c', 'openssl/apps/sess_id.c', + 'openssl/apps/skeyutl.c', 'openssl/apps/smime.c', 'openssl/apps/speed.c', 'openssl/apps/spkac.c', @@ -98,12 +99,14 @@ 'openssl/apps/lib/app_rand.c', 'openssl/apps/lib/app_x509.c', 'openssl/apps/lib/apps.c', + 'openssl/apps/lib/apps_opt_printf.c', 'openssl/apps/lib/apps_ui.c', 'openssl/apps/lib/columns.c', 'openssl/apps/lib/engine.c', 'openssl/apps/lib/engine_loader.c', 'openssl/apps/lib/fmt.c', 'openssl/apps/lib/http_server.c', + 'openssl/apps/lib/log.c', 'openssl/apps/lib/names.c', 'openssl/apps/lib/opt.c', 'openssl/apps/lib/s_cb.c', diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/openssl-fips.gypi b/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/openssl-fips.gypi index b3649b2dbfc9ae..7dcf32d3e02060 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/openssl-fips.gypi +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/openssl-fips.gypi @@ -101,14 +101,15 @@ 'openssl/crypto/evp/kem.c', 'openssl/crypto/evp/keymgmt_lib.c', 'openssl/crypto/evp/keymgmt_meth.c', - 'openssl/crypto/evp/m_sigver.c', 'openssl/crypto/evp/mac_lib.c', 'openssl/crypto/evp/mac_meth.c', 'openssl/crypto/evp/p_lib.c', 'openssl/crypto/evp/pmeth_check.c', 'openssl/crypto/evp/pmeth_gn.c', 'openssl/crypto/evp/pmeth_lib.c', + 'openssl/crypto/evp/s_lib.c', 'openssl/crypto/evp/signature.c', + 'openssl/crypto/evp/skeymgmt_meth.c', 'openssl/crypto/ffc/ffc_backend.c', 'openssl/crypto/ffc/ffc_dh.c', 'openssl/crypto/ffc/ffc_key_generate.c', @@ -116,6 +117,8 @@ 'openssl/crypto/ffc/ffc_params.c', 'openssl/crypto/ffc/ffc_params_generate.c', 'openssl/crypto/ffc/ffc_params_validate.c', + 'openssl/crypto/hashtable/hashfunc.c', + 'openssl/crypto/hashtable/hashtable.c', 'openssl/crypto/hmac/hmac.c', 'openssl/crypto/lhash/lhash.c', 'openssl/crypto/asn1_dsa.c', @@ -145,6 +148,16 @@ 'openssl/crypto/threads_none.c', 'openssl/crypto/threads_pthread.c', 'openssl/crypto/threads_win.c', + 'openssl/crypto/time.c', + 'openssl/crypto/ml_dsa/ml_dsa_encoders.c', + 'openssl/crypto/ml_dsa/ml_dsa_key.c', + 'openssl/crypto/ml_dsa/ml_dsa_key_compress.c', + 'openssl/crypto/ml_dsa/ml_dsa_matrix.c', + 'openssl/crypto/ml_dsa/ml_dsa_ntt.c', + 'openssl/crypto/ml_dsa/ml_dsa_params.c', + 'openssl/crypto/ml_dsa/ml_dsa_sample.c', + 'openssl/crypto/ml_dsa/ml_dsa_sign.c', + 'openssl/crypto/ml_kem/ml_kem.c', 'openssl/crypto/modes/cbc128.c', 'openssl/crypto/modes/ccm128.c', 'openssl/crypto/modes/cfb128.c', @@ -153,6 +166,7 @@ 'openssl/crypto/modes/ofb128.c', 'openssl/crypto/modes/wrap128.c', 'openssl/crypto/modes/xts128.c', + 'openssl/crypto/modes/xts128gb.c', 'openssl/crypto/property/defn_cache.c', 'openssl/crypto/property/property.c', 'openssl/crypto/property/property_parse.c', @@ -180,7 +194,23 @@ 'openssl/crypto/sha/sha256.c', 'openssl/crypto/sha/sha3.c', 'openssl/crypto/sha/sha512.c', + 'openssl/crypto/slh_dsa/slh_adrs.c', + 'openssl/crypto/slh_dsa/slh_dsa.c', + 'openssl/crypto/slh_dsa/slh_dsa_hash_ctx.c', + 'openssl/crypto/slh_dsa/slh_dsa_key.c', + 'openssl/crypto/slh_dsa/slh_fors.c', + 'openssl/crypto/slh_dsa/slh_hash.c', + 'openssl/crypto/slh_dsa/slh_hypertree.c', + 'openssl/crypto/slh_dsa/slh_params.c', + 'openssl/crypto/slh_dsa/slh_wots.c', + 'openssl/crypto/slh_dsa/slh_xmss.c', 'openssl/crypto/stack/stack.c', + 'openssl/crypto/thread/arch/thread_none.c', + 'openssl/crypto/thread/arch/thread_posix.c', + 'openssl/crypto/thread/arch/thread_win.c', + 'openssl/crypto/thread/api.c', + 'openssl/crypto/thread/arch.c', + 'openssl/crypto/thread/internal.c', 'openssl/providers/common/der/der_rsa_sig.c', 'openssl/providers/common/bio_prov.c', 'openssl/providers/common/capabilities.c', @@ -189,6 +219,7 @@ 'openssl/providers/common/provider_util.c', 'openssl/providers/common/securitycheck.c', 'openssl/providers/common/securitycheck_fips.c', + 'openssl/providers/fips/fipsindicator.c', 'openssl/providers/fips/fipsprov.c', 'openssl/providers/fips/self_test.c', 'openssl/providers/fips/self_test_kats.c', @@ -226,6 +257,8 @@ 'openssl/providers/implementations/kdfs/sskdf.c', 'openssl/providers/implementations/kdfs/tls1_prf.c', 'openssl/providers/implementations/kdfs/x942kdf.c', + 'openssl/providers/implementations/kem/ml_kem_kem.c', + 'openssl/providers/implementations/kem/mlx_kem.c', 'openssl/providers/implementations/kem/rsa_kem.c', 'openssl/providers/implementations/keymgmt/dh_kmgmt.c', 'openssl/providers/implementations/keymgmt/dsa_kmgmt.c', @@ -233,29 +266,39 @@ 'openssl/providers/implementations/keymgmt/ecx_kmgmt.c', 'openssl/providers/implementations/keymgmt/kdf_legacy_kmgmt.c', 'openssl/providers/implementations/keymgmt/mac_legacy_kmgmt.c', + 'openssl/providers/implementations/keymgmt/ml_dsa_kmgmt.c', + 'openssl/providers/implementations/keymgmt/ml_kem_kmgmt.c', + 'openssl/providers/implementations/keymgmt/mlx_kmgmt.c', 'openssl/providers/implementations/keymgmt/rsa_kmgmt.c', + 'openssl/providers/implementations/keymgmt/slh_dsa_kmgmt.c', 'openssl/providers/implementations/macs/cmac_prov.c', 'openssl/providers/implementations/macs/gmac_prov.c', 'openssl/providers/implementations/macs/hmac_prov.c', 'openssl/providers/implementations/macs/kmac_prov.c', - 'openssl/providers/implementations/rands/crngt.c', 'openssl/providers/implementations/rands/drbg.c', 'openssl/providers/implementations/rands/drbg_ctr.c', 'openssl/providers/implementations/rands/drbg_hash.c', 'openssl/providers/implementations/rands/drbg_hmac.c', + 'openssl/providers/implementations/rands/fips_crng_test.c', 'openssl/providers/implementations/rands/test_rng.c', 'openssl/providers/implementations/signature/dsa_sig.c', 'openssl/providers/implementations/signature/ecdsa_sig.c', 'openssl/providers/implementations/signature/eddsa_sig.c', 'openssl/providers/implementations/signature/mac_legacy_sig.c', + 'openssl/providers/implementations/signature/ml_dsa_sig.c', 'openssl/providers/implementations/signature/rsa_sig.c', - 'openssl/ssl/s3_cbc.c', + 'openssl/providers/implementations/signature/slh_dsa_sig.c', + 'openssl/providers/implementations/skeymgmt/aes_skmgmt.c', + 'openssl/providers/implementations/skeymgmt/generic.c', + 'openssl/ssl/record/methods/ssl3_cbc.c', 'openssl/providers/common/der/der_dsa_key.c', 'openssl/providers/common/der/der_dsa_sig.c', 'openssl/providers/common/der/der_ec_key.c', 'openssl/providers/common/der/der_ec_sig.c', 'openssl/providers/common/der/der_ecx_key.c', + 'openssl/providers/common/der/der_ml_dsa_key.c', 'openssl/providers/common/der/der_rsa_key.c', + 'openssl/providers/common/der/der_slh_dsa_key.c', 'openssl/providers/common/provider_ctx.c', 'openssl/providers/common/provider_err.c', 'openssl/providers/implementations/ciphers/ciphercommon.c', @@ -266,7 +309,7 @@ 'openssl/providers/implementations/ciphers/ciphercommon_gcm_hw.c', 'openssl/providers/implementations/ciphers/ciphercommon_hw.c', 'openssl/providers/implementations/digests/digestcommon.c', - 'openssl/ssl/record/tls_pad.c', + 'openssl/ssl/record/methods/tls_pad.c', 'openssl/providers/fips/fips_entry.c', ], @@ -276,10 +319,16 @@ './config/archs/darwin64-x86_64-cc/asm_avx2/crypto/aes/aesni-sha1-x86_64.s', './config/archs/darwin64-x86_64-cc/asm_avx2/crypto/aes/aesni-sha256-x86_64.s', './config/archs/darwin64-x86_64-cc/asm_avx2/crypto/aes/aesni-x86_64.s', + './config/archs/darwin64-x86_64-cc/asm_avx2/crypto/aes/aesni-xts-avx512.s', './config/archs/darwin64-x86_64-cc/asm_avx2/crypto/aes/bsaes-x86_64.s', './config/archs/darwin64-x86_64-cc/asm_avx2/crypto/aes/vpaes-x86_64.s', + './config/archs/darwin64-x86_64-cc/asm_avx2/crypto/bn/rsaz-2k-avx512.s', + './config/archs/darwin64-x86_64-cc/asm_avx2/crypto/bn/rsaz-2k-avxifma.s', + './config/archs/darwin64-x86_64-cc/asm_avx2/crypto/bn/rsaz-3k-avx512.s', + './config/archs/darwin64-x86_64-cc/asm_avx2/crypto/bn/rsaz-3k-avxifma.s', + './config/archs/darwin64-x86_64-cc/asm_avx2/crypto/bn/rsaz-4k-avx512.s', + './config/archs/darwin64-x86_64-cc/asm_avx2/crypto/bn/rsaz-4k-avxifma.s', './config/archs/darwin64-x86_64-cc/asm_avx2/crypto/bn/rsaz-avx2.s', - './config/archs/darwin64-x86_64-cc/asm_avx2/crypto/bn/rsaz-avx512.s', './config/archs/darwin64-x86_64-cc/asm_avx2/crypto/bn/rsaz-x86_64.s', './config/archs/darwin64-x86_64-cc/asm_avx2/crypto/bn/x86_64-gf2m.s', './config/archs/darwin64-x86_64-cc/asm_avx2/crypto/bn/x86_64-mont.s', @@ -288,8 +337,10 @@ './config/archs/darwin64-x86_64-cc/asm_avx2/crypto/chacha/chacha-x86_64.s', './config/archs/darwin64-x86_64-cc/asm_avx2/crypto/ec/ecp_nistz256-x86_64.s', './config/archs/darwin64-x86_64-cc/asm_avx2/crypto/ec/x25519-x86_64.s', + './config/archs/darwin64-x86_64-cc/asm_avx2/crypto/params_idx.c', './config/archs/darwin64-x86_64-cc/asm_avx2/crypto/x86_64cpuid.s', './config/archs/darwin64-x86_64-cc/asm_avx2/crypto/md5/md5-x86_64.s', + './config/archs/darwin64-x86_64-cc/asm_avx2/crypto/modes/aes-gcm-avx512.s', './config/archs/darwin64-x86_64-cc/asm_avx2/crypto/modes/aesni-gcm-x86_64.s', './config/archs/darwin64-x86_64-cc/asm_avx2/crypto/modes/ghash-x86_64.s', './config/archs/darwin64-x86_64-cc/asm_avx2/crypto/poly1305/poly1305-x86_64.s', @@ -308,7 +359,9 @@ './config/archs/darwin64-x86_64-cc/asm_avx2/providers/common/der/der_dsa_gen.c', './config/archs/darwin64-x86_64-cc/asm_avx2/providers/common/der/der_ec_gen.c', './config/archs/darwin64-x86_64-cc/asm_avx2/providers/common/der/der_ecx_gen.c', + './config/archs/darwin64-x86_64-cc/asm_avx2/providers/common/der/der_ml_dsa_gen.c', './config/archs/darwin64-x86_64-cc/asm_avx2/providers/common/der/der_rsa_gen.c', + './config/archs/darwin64-x86_64-cc/asm_avx2/providers/common/der/der_slh_dsa_gen.c', './config/archs/darwin64-x86_64-cc/asm_avx2/providers/common/der/der_wrap_gen.c', ], diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/openssl.gypi b/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/openssl.gypi index d1c3557a62e246..0a0ba759b78804 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/openssl.gypi +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/openssl.gypi @@ -7,14 +7,15 @@ 'openssl/ssl/d1_srtp.c', 'openssl/ssl/methods.c', 'openssl/ssl/pqueue.c', + 'openssl/ssl/priority_queue.c', 'openssl/ssl/s3_enc.c', 'openssl/ssl/s3_lib.c', 'openssl/ssl/s3_msg.c', 'openssl/ssl/ssl_asn1.c', 'openssl/ssl/ssl_cert.c', + 'openssl/ssl/ssl_cert_comp.c', 'openssl/ssl/ssl_ciph.c', 'openssl/ssl/ssl_conf.c', - 'openssl/ssl/ssl_err.c', 'openssl/ssl/ssl_err_legacy.c', 'openssl/ssl/ssl_init.c', 'openssl/ssl/ssl_lib.c', @@ -31,12 +32,60 @@ 'openssl/ssl/tls13_enc.c', 'openssl/ssl/tls_depr.c', 'openssl/ssl/tls_srp.c', - 'openssl/ssl/record/dtls1_bitmap.c', + 'openssl/ssl/quic/cc_newreno.c', + 'openssl/ssl/quic/json_enc.c', + 'openssl/ssl/quic/qlog.c', + 'openssl/ssl/quic/qlog_event_helpers.c', + 'openssl/ssl/quic/quic_ackm.c', + 'openssl/ssl/quic/quic_cfq.c', + 'openssl/ssl/quic/quic_channel.c', + 'openssl/ssl/quic/quic_demux.c', + 'openssl/ssl/quic/quic_engine.c', + 'openssl/ssl/quic/quic_fc.c', + 'openssl/ssl/quic/quic_fifd.c', + 'openssl/ssl/quic/quic_impl.c', + 'openssl/ssl/quic/quic_lcidm.c', + 'openssl/ssl/quic/quic_method.c', + 'openssl/ssl/quic/quic_obj.c', + 'openssl/ssl/quic/quic_port.c', + 'openssl/ssl/quic/quic_rcidm.c', + 'openssl/ssl/quic/quic_reactor.c', + 'openssl/ssl/quic/quic_reactor_wait_ctx.c', + 'openssl/ssl/quic/quic_record_rx.c', + 'openssl/ssl/quic/quic_record_shared.c', + 'openssl/ssl/quic/quic_record_tx.c', + 'openssl/ssl/quic/quic_record_util.c', + 'openssl/ssl/quic/quic_rstream.c', + 'openssl/ssl/quic/quic_rx_depack.c', + 'openssl/ssl/quic/quic_sf_list.c', + 'openssl/ssl/quic/quic_srt_gen.c', + 'openssl/ssl/quic/quic_srtm.c', + 'openssl/ssl/quic/quic_sstream.c', + 'openssl/ssl/quic/quic_statm.c', + 'openssl/ssl/quic/quic_stream_map.c', + 'openssl/ssl/quic/quic_thread_assist.c', + 'openssl/ssl/quic/quic_tls.c', + 'openssl/ssl/quic/quic_tls_api.c', + 'openssl/ssl/quic/quic_trace.c', + 'openssl/ssl/quic/quic_tserver.c', + 'openssl/ssl/quic/quic_txp.c', + 'openssl/ssl/quic/quic_txpim.c', + 'openssl/ssl/quic/quic_types.c', + 'openssl/ssl/quic/quic_wire.c', + 'openssl/ssl/quic/quic_wire_pkt.c', + 'openssl/ssl/quic/uint_set.c', 'openssl/ssl/record/rec_layer_d1.c', 'openssl/ssl/record/rec_layer_s3.c', - 'openssl/ssl/record/ssl3_buffer.c', - 'openssl/ssl/record/ssl3_record.c', - 'openssl/ssl/record/ssl3_record_tls13.c', + 'openssl/ssl/record/methods/dtls_meth.c', + 'openssl/ssl/record/methods/ssl3_meth.c', + 'openssl/ssl/record/methods/tls13_meth.c', + 'openssl/ssl/record/methods/tls1_meth.c', + 'openssl/ssl/record/methods/tls_common.c', + 'openssl/ssl/record/methods/tls_multib.c', + 'openssl/ssl/record/methods/tlsany_meth.c', + 'openssl/ssl/rio/poll_builder.c', + 'openssl/ssl/rio/poll_immediate.c', + 'openssl/ssl/rio/rio_notifier.c', 'openssl/ssl/statem/extensions.c', 'openssl/ssl/statem/extensions_clnt.c', 'openssl/ssl/statem/extensions_cust.c', @@ -148,6 +197,7 @@ 'openssl/crypto/bio/bss_conn.c', 'openssl/crypto/bio/bss_core.c', 'openssl/crypto/bio/bss_dgram.c', + 'openssl/crypto/bio/bss_dgram_pair.c', 'openssl/crypto/bio/bss_fd.c', 'openssl/crypto/bio/bss_file.c', 'openssl/crypto/bio/bss_log.c', @@ -207,6 +257,7 @@ 'openssl/crypto/cmp/cmp_client.c', 'openssl/crypto/cmp/cmp_ctx.c', 'openssl/crypto/cmp/cmp_err.c', + 'openssl/crypto/cmp/cmp_genm.c', 'openssl/crypto/cmp/cmp_hdr.c', 'openssl/crypto/cmp/cmp_http.c', 'openssl/crypto/cmp/cmp_msg.c', @@ -383,7 +434,9 @@ 'openssl/crypto/err/err_all.c', 'openssl/crypto/err/err_all_legacy.c', 'openssl/crypto/err/err_blocks.c', + 'openssl/crypto/err/err_mark.c', 'openssl/crypto/err/err_prn.c', + 'openssl/crypto/err/err_save.c', 'openssl/crypto/ess/ess_asn1.c', 'openssl/crypto/ess/ess_err.c', 'openssl/crypto/ess/ess_lib.c', @@ -466,7 +519,9 @@ 'openssl/crypto/evp/pmeth_check.c', 'openssl/crypto/evp/pmeth_gn.c', 'openssl/crypto/evp/pmeth_lib.c', + 'openssl/crypto/evp/s_lib.c', 'openssl/crypto/evp/signature.c', + 'openssl/crypto/evp/skeymgmt_meth.c', 'openssl/crypto/ffc/ffc_backend.c', 'openssl/crypto/ffc/ffc_dh.c', 'openssl/crypto/ffc/ffc_key_generate.c', @@ -474,7 +529,11 @@ 'openssl/crypto/ffc/ffc_params.c', 'openssl/crypto/ffc/ffc_params_generate.c', 'openssl/crypto/ffc/ffc_params_validate.c', + 'openssl/crypto/hashtable/hashfunc.c', + 'openssl/crypto/hashtable/hashtable.c', 'openssl/crypto/hmac/hmac.c', + 'openssl/crypto/hpke/hpke.c', + 'openssl/crypto/hpke/hpke_util.c', 'openssl/crypto/http/http_client.c', 'openssl/crypto/http/http_err.c', 'openssl/crypto/http/http_lib.c', @@ -488,6 +547,7 @@ 'openssl/crypto/lhash/lhash.c', 'openssl/crypto/asn1_dsa.c', 'openssl/crypto/bsearch.c', + 'openssl/crypto/comp_methods.c', 'openssl/crypto/context.c', 'openssl/crypto/core_algorithm.c', 'openssl/crypto/core_fetch.c', @@ -497,10 +557,13 @@ 'openssl/crypto/cryptlib.c', 'openssl/crypto/ctype.c', 'openssl/crypto/cversion.c', + 'openssl/crypto/defaults.c', 'openssl/crypto/der_writer.c', + 'openssl/crypto/deterministic_nonce.c', 'openssl/crypto/ebcdic.c', 'openssl/crypto/ex_data.c', 'openssl/crypto/getenv.c', + 'openssl/crypto/indicator_core.c', 'openssl/crypto/info.c', 'openssl/crypto/init.c', 'openssl/crypto/initthread.c', @@ -524,12 +587,16 @@ 'openssl/crypto/provider_core.c', 'openssl/crypto/provider_predefined.c', 'openssl/crypto/punycode.c', + 'openssl/crypto/quic_vlint.c', 'openssl/crypto/self_test_core.c', + 'openssl/crypto/sleep.c', 'openssl/crypto/sparse_array.c', + 'openssl/crypto/ssl_err.c', 'openssl/crypto/threads_lib.c', 'openssl/crypto/threads_none.c', 'openssl/crypto/threads_pthread.c', 'openssl/crypto/threads_win.c', + 'openssl/crypto/time.c', 'openssl/crypto/trace.c', 'openssl/crypto/uid.c', 'openssl/crypto/md4/md4_dgst.c', @@ -539,6 +606,15 @@ 'openssl/crypto/md5/md5_sha1.c', 'openssl/crypto/mdc2/mdc2_one.c', 'openssl/crypto/mdc2/mdc2dgst.c', + 'openssl/crypto/ml_dsa/ml_dsa_encoders.c', + 'openssl/crypto/ml_dsa/ml_dsa_key.c', + 'openssl/crypto/ml_dsa/ml_dsa_key_compress.c', + 'openssl/crypto/ml_dsa/ml_dsa_matrix.c', + 'openssl/crypto/ml_dsa/ml_dsa_ntt.c', + 'openssl/crypto/ml_dsa/ml_dsa_params.c', + 'openssl/crypto/ml_dsa/ml_dsa_sample.c', + 'openssl/crypto/ml_dsa/ml_dsa_sign.c', + 'openssl/crypto/ml_kem/ml_kem.c', 'openssl/crypto/modes/cbc128.c', 'openssl/crypto/modes/ccm128.c', 'openssl/crypto/modes/cfb128.c', @@ -550,6 +626,7 @@ 'openssl/crypto/modes/siv128.c', 'openssl/crypto/modes/wrap128.c', 'openssl/crypto/modes/xts128.c', + 'openssl/crypto/modes/xts128gb.c', 'openssl/crypto/objects/o_names.c', 'openssl/crypto/objects/obj_dat.c', 'openssl/crypto/objects/obj_err.c', @@ -613,6 +690,7 @@ 'openssl/crypto/rand/rand_lib.c', 'openssl/crypto/rand/rand_meth.c', 'openssl/crypto/rand/rand_pool.c', + 'openssl/crypto/rand/rand_uniform.c', 'openssl/crypto/rand/randfile.c', 'openssl/crypto/rc2/rc2_cbc.c', 'openssl/crypto/rc2/rc2_ecb.c', @@ -658,6 +736,16 @@ 'openssl/crypto/sha/sha3.c', 'openssl/crypto/sha/sha512.c', 'openssl/crypto/siphash/siphash.c', + 'openssl/crypto/slh_dsa/slh_adrs.c', + 'openssl/crypto/slh_dsa/slh_dsa.c', + 'openssl/crypto/slh_dsa/slh_dsa_hash_ctx.c', + 'openssl/crypto/slh_dsa/slh_dsa_key.c', + 'openssl/crypto/slh_dsa/slh_fors.c', + 'openssl/crypto/slh_dsa/slh_hash.c', + 'openssl/crypto/slh_dsa/slh_hypertree.c', + 'openssl/crypto/slh_dsa/slh_params.c', + 'openssl/crypto/slh_dsa/slh_wots.c', + 'openssl/crypto/slh_dsa/slh_xmss.c', 'openssl/crypto/sm2/sm2_crypt.c', 'openssl/crypto/sm2/sm2_err.c', 'openssl/crypto/sm2/sm2_key.c', @@ -675,6 +763,12 @@ 'openssl/crypto/store/store_register.c', 'openssl/crypto/store/store_result.c', 'openssl/crypto/store/store_strings.c', + 'openssl/crypto/thread/arch/thread_none.c', + 'openssl/crypto/thread/arch/thread_posix.c', + 'openssl/crypto/thread/arch/thread_win.c', + 'openssl/crypto/thread/api.c', + 'openssl/crypto/thread/arch.c', + 'openssl/crypto/thread/internal.c', 'openssl/crypto/ts/ts_asn1.c', 'openssl/crypto/ts/ts_conf.c', 'openssl/crypto/ts/ts_err.c', @@ -702,14 +796,22 @@ 'openssl/crypto/x509/pcy_map.c', 'openssl/crypto/x509/pcy_node.c', 'openssl/crypto/x509/pcy_tree.c', + 'openssl/crypto/x509/t_acert.c', 'openssl/crypto/x509/t_crl.c', 'openssl/crypto/x509/t_req.c', 'openssl/crypto/x509/t_x509.c', + 'openssl/crypto/x509/v3_aaa.c', + 'openssl/crypto/x509/v3_ac_tgt.c', 'openssl/crypto/x509/v3_addr.c', 'openssl/crypto/x509/v3_admis.c', 'openssl/crypto/x509/v3_akeya.c', 'openssl/crypto/x509/v3_akid.c', 'openssl/crypto/x509/v3_asid.c', + 'openssl/crypto/x509/v3_attrdesc.c', + 'openssl/crypto/x509/v3_attrmap.c', + 'openssl/crypto/x509/v3_audit_id.c', + 'openssl/crypto/x509/v3_authattid.c', + 'openssl/crypto/x509/v3_battcons.c', 'openssl/crypto/x509/v3_bcons.c', 'openssl/crypto/x509/v3_bitst.c', 'openssl/crypto/x509/v3_conf.c', @@ -718,12 +820,17 @@ 'openssl/crypto/x509/v3_enum.c', 'openssl/crypto/x509/v3_extku.c', 'openssl/crypto/x509/v3_genn.c', + 'openssl/crypto/x509/v3_group_ac.c', 'openssl/crypto/x509/v3_ia5.c', + 'openssl/crypto/x509/v3_ind_iss.c', 'openssl/crypto/x509/v3_info.c', 'openssl/crypto/x509/v3_int.c', + 'openssl/crypto/x509/v3_iobo.c', 'openssl/crypto/x509/v3_ist.c', 'openssl/crypto/x509/v3_lib.c', 'openssl/crypto/x509/v3_ncons.c', + 'openssl/crypto/x509/v3_no_ass.c', + 'openssl/crypto/x509/v3_no_rev_avail.c', 'openssl/crypto/x509/v3_pci.c', 'openssl/crypto/x509/v3_pcia.c', 'openssl/crypto/x509/v3_pcons.c', @@ -731,13 +838,20 @@ 'openssl/crypto/x509/v3_pmaps.c', 'openssl/crypto/x509/v3_prn.c', 'openssl/crypto/x509/v3_purp.c', + 'openssl/crypto/x509/v3_rolespec.c', 'openssl/crypto/x509/v3_san.c', + 'openssl/crypto/x509/v3_sda.c', + 'openssl/crypto/x509/v3_single_use.c', 'openssl/crypto/x509/v3_skid.c', + 'openssl/crypto/x509/v3_soa_id.c', 'openssl/crypto/x509/v3_sxnet.c', + 'openssl/crypto/x509/v3_timespec.c', 'openssl/crypto/x509/v3_tlsf.c', + 'openssl/crypto/x509/v3_usernotice.c', 'openssl/crypto/x509/v3_utf8.c', 'openssl/crypto/x509/v3_utl.c', 'openssl/crypto/x509/v3err.c', + 'openssl/crypto/x509/x509_acert.c', 'openssl/crypto/x509/x509_att.c', 'openssl/crypto/x509/x509_cmp.c', 'openssl/crypto/x509/x509_d2.c', @@ -755,6 +869,7 @@ 'openssl/crypto/x509/x509_v3.c', 'openssl/crypto/x509/x509_vfy.c', 'openssl/crypto/x509/x509_vpm.c', + 'openssl/crypto/x509/x509aset.c', 'openssl/crypto/x509/x509cset.c', 'openssl/crypto/x509/x509name.c', 'openssl/crypto/x509/x509rset.c', @@ -764,6 +879,7 @@ 'openssl/crypto/x509/x_attrib.c', 'openssl/crypto/x509/x_crl.c', 'openssl/crypto/x509/x_exten.c', + 'openssl/crypto/x509/x_ietfatt.c', 'openssl/crypto/x509/x_name.c', 'openssl/crypto/x509/x_pubkey.c', 'openssl/crypto/x509/x_req.c', @@ -795,6 +911,9 @@ 'openssl/providers/implementations/ciphers/cipher_aes_ccm_hw.c', 'openssl/providers/implementations/ciphers/cipher_aes_gcm.c', 'openssl/providers/implementations/ciphers/cipher_aes_gcm_hw.c', + 'openssl/providers/implementations/ciphers/cipher_aes_gcm_siv.c', + 'openssl/providers/implementations/ciphers/cipher_aes_gcm_siv_hw.c', + 'openssl/providers/implementations/ciphers/cipher_aes_gcm_siv_polyval.c', 'openssl/providers/implementations/ciphers/cipher_aes_hw.c', 'openssl/providers/implementations/ciphers/cipher_aes_ocb.c', 'openssl/providers/implementations/ciphers/cipher_aes_ocb_hw.c', @@ -819,7 +938,13 @@ 'openssl/providers/implementations/ciphers/cipher_cts.c', 'openssl/providers/implementations/ciphers/cipher_null.c', 'openssl/providers/implementations/ciphers/cipher_sm4.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_ccm.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_ccm_hw.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_gcm.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_gcm_hw.c', 'openssl/providers/implementations/ciphers/cipher_sm4_hw.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_xts.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_xts_hw.c', 'openssl/providers/implementations/ciphers/cipher_tdes.c', 'openssl/providers/implementations/ciphers/cipher_tdes_common.c', 'openssl/providers/implementations/ciphers/cipher_tdes_default.c', @@ -848,11 +973,16 @@ 'openssl/providers/implementations/encode_decode/encode_key2ms.c', 'openssl/providers/implementations/encode_decode/encode_key2text.c', 'openssl/providers/implementations/encode_decode/endecoder_common.c', + 'openssl/providers/implementations/encode_decode/ml_common_codecs.c', + 'openssl/providers/implementations/encode_decode/ml_dsa_codecs.c', + 'openssl/providers/implementations/encode_decode/ml_kem_codecs.c', 'openssl/providers/implementations/exchange/dh_exch.c', 'openssl/providers/implementations/exchange/ecdh_exch.c', 'openssl/providers/implementations/exchange/ecx_exch.c', 'openssl/providers/implementations/exchange/kdf_exch.c', + 'openssl/providers/implementations/kdfs/argon2.c', 'openssl/providers/implementations/kdfs/hkdf.c', + 'openssl/providers/implementations/kdfs/hmacdrbg_kdf.c', 'openssl/providers/implementations/kdfs/kbkdf.c', 'openssl/providers/implementations/kdfs/krb5kdf.c', 'openssl/providers/implementations/kdfs/pbkdf2.c', @@ -863,6 +993,11 @@ 'openssl/providers/implementations/kdfs/sskdf.c', 'openssl/providers/implementations/kdfs/tls1_prf.c', 'openssl/providers/implementations/kdfs/x942kdf.c', + 'openssl/providers/implementations/kem/ec_kem.c', + 'openssl/providers/implementations/kem/ecx_kem.c', + 'openssl/providers/implementations/kem/kem_util.c', + 'openssl/providers/implementations/kem/ml_kem_kem.c', + 'openssl/providers/implementations/kem/mlx_kem.c', 'openssl/providers/implementations/kem/rsa_kem.c', 'openssl/providers/implementations/keymgmt/dh_kmgmt.c', 'openssl/providers/implementations/keymgmt/dsa_kmgmt.c', @@ -870,7 +1005,11 @@ 'openssl/providers/implementations/keymgmt/ecx_kmgmt.c', 'openssl/providers/implementations/keymgmt/kdf_legacy_kmgmt.c', 'openssl/providers/implementations/keymgmt/mac_legacy_kmgmt.c', + 'openssl/providers/implementations/keymgmt/ml_dsa_kmgmt.c', + 'openssl/providers/implementations/keymgmt/ml_kem_kmgmt.c', + 'openssl/providers/implementations/keymgmt/mlx_kmgmt.c', 'openssl/providers/implementations/keymgmt/rsa_kmgmt.c', + 'openssl/providers/implementations/keymgmt/slh_dsa_kmgmt.c', 'openssl/providers/implementations/macs/blake2b_mac.c', 'openssl/providers/implementations/macs/blake2s_mac.c', 'openssl/providers/implementations/macs/cmac_prov.c', @@ -879,12 +1018,12 @@ 'openssl/providers/implementations/macs/kmac_prov.c', 'openssl/providers/implementations/macs/poly1305_prov.c', 'openssl/providers/implementations/macs/siphash_prov.c', - 'openssl/providers/implementations/rands/crngt.c', 'openssl/providers/implementations/rands/drbg.c', 'openssl/providers/implementations/rands/drbg_ctr.c', 'openssl/providers/implementations/rands/drbg_hash.c', 'openssl/providers/implementations/rands/drbg_hmac.c', 'openssl/providers/implementations/rands/seed_src.c', + 'openssl/providers/implementations/rands/seed_src_jitter.c', 'openssl/providers/implementations/rands/test_rng.c', 'openssl/providers/implementations/rands/seeding/rand_cpu_x86.c', 'openssl/providers/implementations/rands/seeding/rand_tsc.c', @@ -894,17 +1033,23 @@ 'openssl/providers/implementations/signature/ecdsa_sig.c', 'openssl/providers/implementations/signature/eddsa_sig.c', 'openssl/providers/implementations/signature/mac_legacy_sig.c', + 'openssl/providers/implementations/signature/ml_dsa_sig.c', 'openssl/providers/implementations/signature/rsa_sig.c', + 'openssl/providers/implementations/signature/slh_dsa_sig.c', 'openssl/providers/implementations/signature/sm2_sig.c', + 'openssl/providers/implementations/skeymgmt/aes_skmgmt.c', + 'openssl/providers/implementations/skeymgmt/generic.c', 'openssl/providers/implementations/storemgmt/file_store.c', 'openssl/providers/implementations/storemgmt/file_store_any2obj.c', - 'openssl/ssl/s3_cbc.c', + 'openssl/ssl/record/methods/ssl3_cbc.c', 'openssl/providers/common/der/der_dsa_key.c', 'openssl/providers/common/der/der_dsa_sig.c', 'openssl/providers/common/der/der_ec_key.c', 'openssl/providers/common/der/der_ec_sig.c', 'openssl/providers/common/der/der_ecx_key.c', + 'openssl/providers/common/der/der_ml_dsa_key.c', 'openssl/providers/common/der/der_rsa_key.c', + 'openssl/providers/common/der/der_slh_dsa_key.c', 'openssl/providers/common/provider_ctx.c', 'openssl/providers/common/provider_err.c', 'openssl/providers/implementations/ciphers/ciphercommon.c', @@ -915,7 +1060,7 @@ 'openssl/providers/implementations/ciphers/ciphercommon_gcm_hw.c', 'openssl/providers/implementations/ciphers/ciphercommon_hw.c', 'openssl/providers/implementations/digests/digestcommon.c', - 'openssl/ssl/record/tls_pad.c', + 'openssl/ssl/record/methods/tls_pad.c', 'openssl/providers/implementations/ciphers/cipher_blowfish.c', 'openssl/providers/implementations/ciphers/cipher_blowfish_hw.c', 'openssl/providers/implementations/ciphers/cipher_cast5.c', @@ -940,6 +1085,7 @@ 'openssl/providers/implementations/digests/ripemd_prov.c', 'openssl/providers/implementations/digests/wp_prov.c', 'openssl/providers/implementations/kdfs/pbkdf1.c', + 'openssl/providers/implementations/kdfs/pvkkdf.c', 'openssl/providers/prov_running.c', 'openssl/providers/legacyprov.c', ], @@ -949,10 +1095,16 @@ './config/archs/darwin64-x86_64-cc/asm_avx2/crypto/aes/aesni-sha1-x86_64.s', './config/archs/darwin64-x86_64-cc/asm_avx2/crypto/aes/aesni-sha256-x86_64.s', './config/archs/darwin64-x86_64-cc/asm_avx2/crypto/aes/aesni-x86_64.s', + './config/archs/darwin64-x86_64-cc/asm_avx2/crypto/aes/aesni-xts-avx512.s', './config/archs/darwin64-x86_64-cc/asm_avx2/crypto/aes/bsaes-x86_64.s', './config/archs/darwin64-x86_64-cc/asm_avx2/crypto/aes/vpaes-x86_64.s', + './config/archs/darwin64-x86_64-cc/asm_avx2/crypto/bn/rsaz-2k-avx512.s', + './config/archs/darwin64-x86_64-cc/asm_avx2/crypto/bn/rsaz-2k-avxifma.s', + './config/archs/darwin64-x86_64-cc/asm_avx2/crypto/bn/rsaz-3k-avx512.s', + './config/archs/darwin64-x86_64-cc/asm_avx2/crypto/bn/rsaz-3k-avxifma.s', + './config/archs/darwin64-x86_64-cc/asm_avx2/crypto/bn/rsaz-4k-avx512.s', + './config/archs/darwin64-x86_64-cc/asm_avx2/crypto/bn/rsaz-4k-avxifma.s', './config/archs/darwin64-x86_64-cc/asm_avx2/crypto/bn/rsaz-avx2.s', - './config/archs/darwin64-x86_64-cc/asm_avx2/crypto/bn/rsaz-avx512.s', './config/archs/darwin64-x86_64-cc/asm_avx2/crypto/bn/rsaz-x86_64.s', './config/archs/darwin64-x86_64-cc/asm_avx2/crypto/bn/x86_64-gf2m.s', './config/archs/darwin64-x86_64-cc/asm_avx2/crypto/bn/x86_64-mont.s', @@ -961,8 +1113,10 @@ './config/archs/darwin64-x86_64-cc/asm_avx2/crypto/chacha/chacha-x86_64.s', './config/archs/darwin64-x86_64-cc/asm_avx2/crypto/ec/ecp_nistz256-x86_64.s', './config/archs/darwin64-x86_64-cc/asm_avx2/crypto/ec/x25519-x86_64.s', + './config/archs/darwin64-x86_64-cc/asm_avx2/crypto/params_idx.c', './config/archs/darwin64-x86_64-cc/asm_avx2/crypto/x86_64cpuid.s', './config/archs/darwin64-x86_64-cc/asm_avx2/crypto/md5/md5-x86_64.s', + './config/archs/darwin64-x86_64-cc/asm_avx2/crypto/modes/aes-gcm-avx512.s', './config/archs/darwin64-x86_64-cc/asm_avx2/crypto/modes/aesni-gcm-x86_64.s', './config/archs/darwin64-x86_64-cc/asm_avx2/crypto/modes/ghash-x86_64.s', './config/archs/darwin64-x86_64-cc/asm_avx2/crypto/poly1305/poly1305-x86_64.s', @@ -981,7 +1135,9 @@ './config/archs/darwin64-x86_64-cc/asm_avx2/providers/common/der/der_dsa_gen.c', './config/archs/darwin64-x86_64-cc/asm_avx2/providers/common/der/der_ec_gen.c', './config/archs/darwin64-x86_64-cc/asm_avx2/providers/common/der/der_ecx_gen.c', + './config/archs/darwin64-x86_64-cc/asm_avx2/providers/common/der/der_ml_dsa_gen.c', './config/archs/darwin64-x86_64-cc/asm_avx2/providers/common/der/der_rsa_gen.c', + './config/archs/darwin64-x86_64-cc/asm_avx2/providers/common/der/der_slh_dsa_gen.c', './config/archs/darwin64-x86_64-cc/asm_avx2/providers/common/der/der_wrap_gen.c', ], 'openssl_defines_darwin64-x86_64-cc': [ diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/providers/common/der/der_ml_dsa_gen.c b/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/providers/common/der/der_ml_dsa_gen.c new file mode 100644 index 00000000000000..4a8a113a268578 --- /dev/null +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/providers/common/der/der_ml_dsa_gen.c @@ -0,0 +1,37 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from providers/common/der/der_ml_dsa_gen.c.in + * + * Copyright 2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include "prov/der_ml_dsa.h" + +/* Well known OIDs precompiled */ + +/* + * id-ml-dsa-44 OBJECT IDENTIFIER ::= { sigAlgs 17 } + */ +const unsigned char ossl_der_oid_id_ml_dsa_44[DER_OID_SZ_id_ml_dsa_44] = { + DER_OID_V_id_ml_dsa_44 +}; + +/* + * id-ml-dsa-65 OBJECT IDENTIFIER ::= { sigAlgs 18 } + */ +const unsigned char ossl_der_oid_id_ml_dsa_65[DER_OID_SZ_id_ml_dsa_65] = { + DER_OID_V_id_ml_dsa_65 +}; + +/* + * id-ml-dsa-87 OBJECT IDENTIFIER ::= { sigAlgs 19 } + */ +const unsigned char ossl_der_oid_id_ml_dsa_87[DER_OID_SZ_id_ml_dsa_87] = { + DER_OID_V_id_ml_dsa_87 +}; + diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/providers/common/der/der_slh_dsa_gen.c b/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/providers/common/der/der_slh_dsa_gen.c new file mode 100644 index 00000000000000..1419a9515097dd --- /dev/null +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/providers/common/der/der_slh_dsa_gen.c @@ -0,0 +1,100 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from providers/common/der/der_slh_dsa_gen.c.in + * + * Copyright 2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include "prov/der_slh_dsa.h" + +/* Well known OIDs precompiled */ + +/* + * id-slh-dsa-sha2-128s OBJECT IDENTIFIER ::= { sigAlgs 20 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_128s[DER_OID_SZ_id_slh_dsa_sha2_128s] = { + DER_OID_V_id_slh_dsa_sha2_128s +}; + +/* + * id-slh-dsa-sha2-128f OBJECT IDENTIFIER ::= { sigAlgs 21 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_128f[DER_OID_SZ_id_slh_dsa_sha2_128f] = { + DER_OID_V_id_slh_dsa_sha2_128f +}; + +/* + * id-slh-dsa-sha2-192s OBJECT IDENTIFIER ::= { sigAlgs 22 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_192s[DER_OID_SZ_id_slh_dsa_sha2_192s] = { + DER_OID_V_id_slh_dsa_sha2_192s +}; + +/* + * id-slh-dsa-sha2-192f OBJECT IDENTIFIER ::= { sigAlgs 23 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_192f[DER_OID_SZ_id_slh_dsa_sha2_192f] = { + DER_OID_V_id_slh_dsa_sha2_192f +}; + +/* + * id-slh-dsa-sha2-256s OBJECT IDENTIFIER ::= { sigAlgs 24 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_256s[DER_OID_SZ_id_slh_dsa_sha2_256s] = { + DER_OID_V_id_slh_dsa_sha2_256s +}; + +/* + * id-slh-dsa-sha2-256f OBJECT IDENTIFIER ::= { sigAlgs 25 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_256f[DER_OID_SZ_id_slh_dsa_sha2_256f] = { + DER_OID_V_id_slh_dsa_sha2_256f +}; + +/* + * id-slh-dsa-shake-128s OBJECT IDENTIFIER ::= { sigAlgs 26 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_128s[DER_OID_SZ_id_slh_dsa_shake_128s] = { + DER_OID_V_id_slh_dsa_shake_128s +}; + +/* + * id-slh-dsa-shake-128f OBJECT IDENTIFIER ::= { sigAlgs 27 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_128f[DER_OID_SZ_id_slh_dsa_shake_128f] = { + DER_OID_V_id_slh_dsa_shake_128f +}; + +/* + * id-slh-dsa-shake-192s OBJECT IDENTIFIER ::= { sigAlgs 28 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_192s[DER_OID_SZ_id_slh_dsa_shake_192s] = { + DER_OID_V_id_slh_dsa_shake_192s +}; + +/* + * id-slh-dsa-shake-192f OBJECT IDENTIFIER ::= { sigAlgs 29 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_192f[DER_OID_SZ_id_slh_dsa_shake_192f] = { + DER_OID_V_id_slh_dsa_shake_192f +}; + +/* + * id-slh-dsa-shake-256s OBJECT IDENTIFIER ::= { sigAlgs 30 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_256s[DER_OID_SZ_id_slh_dsa_shake_256s] = { + DER_OID_V_id_slh_dsa_shake_256s +}; + +/* + * id-slh-dsa-shake-256f OBJECT IDENTIFIER ::= { sigAlgs 31 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_256f[DER_OID_SZ_id_slh_dsa_shake_256f] = { + DER_OID_V_id_slh_dsa_shake_256f +}; + diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/providers/common/include/prov/der_ml_dsa.h b/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/providers/common/include/prov/der_ml_dsa.h new file mode 100644 index 00000000000000..c55f780ab4527c --- /dev/null +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/providers/common/include/prov/der_ml_dsa.h @@ -0,0 +1,40 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from providers/common/include/prov/der_ml_dsa.h.in + * + * Copyright 2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include "internal/der.h" +#include "crypto/ml_dsa.h" + +/* Well known OIDs precompiled */ + +/* + * id-ml-dsa-44 OBJECT IDENTIFIER ::= { sigAlgs 17 } + */ +#define DER_OID_V_id_ml_dsa_44 DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x11 +#define DER_OID_SZ_id_ml_dsa_44 11 +extern const unsigned char ossl_der_oid_id_ml_dsa_44[DER_OID_SZ_id_ml_dsa_44]; + +/* + * id-ml-dsa-65 OBJECT IDENTIFIER ::= { sigAlgs 18 } + */ +#define DER_OID_V_id_ml_dsa_65 DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x12 +#define DER_OID_SZ_id_ml_dsa_65 11 +extern const unsigned char ossl_der_oid_id_ml_dsa_65[DER_OID_SZ_id_ml_dsa_65]; + +/* + * id-ml-dsa-87 OBJECT IDENTIFIER ::= { sigAlgs 19 } + */ +#define DER_OID_V_id_ml_dsa_87 DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x13 +#define DER_OID_SZ_id_ml_dsa_87 11 +extern const unsigned char ossl_der_oid_id_ml_dsa_87[DER_OID_SZ_id_ml_dsa_87]; + + +int ossl_DER_w_algorithmIdentifier_ML_DSA(WPACKET *pkt, int tag, ML_DSA_KEY *key); diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/providers/common/include/prov/der_slh_dsa.h b/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/providers/common/include/prov/der_slh_dsa.h new file mode 100644 index 00000000000000..760f8e7699be72 --- /dev/null +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/providers/common/include/prov/der_slh_dsa.h @@ -0,0 +1,103 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from providers/common/include/prov/der_slh_dsa.h.in + * + * Copyright 2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include "internal/der.h" +#include "crypto/slh_dsa.h" + +/* Well known OIDs precompiled */ + +/* + * id-slh-dsa-sha2-128s OBJECT IDENTIFIER ::= { sigAlgs 20 } + */ +#define DER_OID_V_id_slh_dsa_sha2_128s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x14 +#define DER_OID_SZ_id_slh_dsa_sha2_128s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_128s[DER_OID_SZ_id_slh_dsa_sha2_128s]; + +/* + * id-slh-dsa-sha2-128f OBJECT IDENTIFIER ::= { sigAlgs 21 } + */ +#define DER_OID_V_id_slh_dsa_sha2_128f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x15 +#define DER_OID_SZ_id_slh_dsa_sha2_128f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_128f[DER_OID_SZ_id_slh_dsa_sha2_128f]; + +/* + * id-slh-dsa-sha2-192s OBJECT IDENTIFIER ::= { sigAlgs 22 } + */ +#define DER_OID_V_id_slh_dsa_sha2_192s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x16 +#define DER_OID_SZ_id_slh_dsa_sha2_192s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_192s[DER_OID_SZ_id_slh_dsa_sha2_192s]; + +/* + * id-slh-dsa-sha2-192f OBJECT IDENTIFIER ::= { sigAlgs 23 } + */ +#define DER_OID_V_id_slh_dsa_sha2_192f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x17 +#define DER_OID_SZ_id_slh_dsa_sha2_192f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_192f[DER_OID_SZ_id_slh_dsa_sha2_192f]; + +/* + * id-slh-dsa-sha2-256s OBJECT IDENTIFIER ::= { sigAlgs 24 } + */ +#define DER_OID_V_id_slh_dsa_sha2_256s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x18 +#define DER_OID_SZ_id_slh_dsa_sha2_256s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_256s[DER_OID_SZ_id_slh_dsa_sha2_256s]; + +/* + * id-slh-dsa-sha2-256f OBJECT IDENTIFIER ::= { sigAlgs 25 } + */ +#define DER_OID_V_id_slh_dsa_sha2_256f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x19 +#define DER_OID_SZ_id_slh_dsa_sha2_256f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_256f[DER_OID_SZ_id_slh_dsa_sha2_256f]; + +/* + * id-slh-dsa-shake-128s OBJECT IDENTIFIER ::= { sigAlgs 26 } + */ +#define DER_OID_V_id_slh_dsa_shake_128s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1A +#define DER_OID_SZ_id_slh_dsa_shake_128s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_128s[DER_OID_SZ_id_slh_dsa_shake_128s]; + +/* + * id-slh-dsa-shake-128f OBJECT IDENTIFIER ::= { sigAlgs 27 } + */ +#define DER_OID_V_id_slh_dsa_shake_128f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1B +#define DER_OID_SZ_id_slh_dsa_shake_128f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_128f[DER_OID_SZ_id_slh_dsa_shake_128f]; + +/* + * id-slh-dsa-shake-192s OBJECT IDENTIFIER ::= { sigAlgs 28 } + */ +#define DER_OID_V_id_slh_dsa_shake_192s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1C +#define DER_OID_SZ_id_slh_dsa_shake_192s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_192s[DER_OID_SZ_id_slh_dsa_shake_192s]; + +/* + * id-slh-dsa-shake-192f OBJECT IDENTIFIER ::= { sigAlgs 29 } + */ +#define DER_OID_V_id_slh_dsa_shake_192f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1D +#define DER_OID_SZ_id_slh_dsa_shake_192f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_192f[DER_OID_SZ_id_slh_dsa_shake_192f]; + +/* + * id-slh-dsa-shake-256s OBJECT IDENTIFIER ::= { sigAlgs 30 } + */ +#define DER_OID_V_id_slh_dsa_shake_256s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1E +#define DER_OID_SZ_id_slh_dsa_shake_256s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_256s[DER_OID_SZ_id_slh_dsa_shake_256s]; + +/* + * id-slh-dsa-shake-256f OBJECT IDENTIFIER ::= { sigAlgs 31 } + */ +#define DER_OID_V_id_slh_dsa_shake_256f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1F +#define DER_OID_SZ_id_slh_dsa_shake_256f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_256f[DER_OID_SZ_id_slh_dsa_shake_256f]; + + +int ossl_DER_w_algorithmIdentifier_SLH_DSA(WPACKET *pkt, int tag, SLH_DSA_KEY *key); diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/apps/progs.c b/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/apps/progs.c index 43cef00799b86e..acc204a3e6e781 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/apps/progs.c +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/apps/progs.c @@ -89,6 +89,7 @@ FUNCTION functions[] = { {FT_general, "s_time", s_time_main, s_time_options, NULL, NULL}, #endif {FT_general, "sess_id", sess_id_main, sess_id_options, NULL, NULL}, + {FT_general, "skeyutl", skeyutl_main, skeyutl_options, NULL, NULL}, {FT_general, "smime", smime_main, smime_options, NULL, NULL}, {FT_general, "speed", speed_main, speed_options, NULL, NULL}, {FT_general, "spkac", spkac_main, spkac_options, NULL, NULL}, @@ -225,9 +226,15 @@ FUNCTION functions[] = { {FT_cipher, "camellia-256-ecb", enc_main, enc_options, NULL}, #endif {FT_cipher, "base64", enc_main, enc_options, NULL}, -#ifdef ZLIB +#ifndef OPENSSL_NO_ZLIB {FT_cipher, "zlib", enc_main, enc_options, NULL}, #endif +#ifndef OPENSSL_NO_BROTLI + {FT_cipher, "brotli", enc_main, enc_options, NULL}, +#endif +#ifndef OPENSSL_NO_ZSTD + {FT_cipher, "zstd", enc_main, enc_options, NULL}, +#endif #ifndef OPENSSL_NO_DES {FT_cipher, "des", enc_main, enc_options, NULL}, #endif diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/configdata.pm b/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/configdata.pm index 042e010cd6665a..496069f3f14754 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/configdata.pm +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/configdata.pm @@ -18,6 +18,7 @@ our %config = ( "ARFLAGS" => [ "qc" ], + "ASFLAGS" => [], "CC" => "cc", "CFLAGS" => [ "-O3 -Wall" @@ -27,14 +28,16 @@ our %config = ( "CPPINCLUDES" => [], "CXXFLAGS" => [], "FIPSKEY" => "f4556650ac31d35461610bac4ed81b1a181b2d8a43ea2854cbae22ca74560813", + "FIPS_VENDOR" => "OpenSSL FIPS Provider", "HASHBANGPERL" => "/usr/bin/env perl", "LDFLAGS" => [], "LDLIBS" => [], + "OBJCOPY" => "objcopy", "PERL" => "/usr/bin/perl", "RANLIB" => "ranlib -c", "RC" => "windres", "RCFLAGS" => [], - "api" => "30000", + "api" => "30500", "b32" => "0", "b64" => "0", "b64l" => "1", @@ -56,11 +59,13 @@ our %config = ( "doc/build.info", "test/build.info", "engines/build.info", + "exporters/build.info", "crypto/objects/build.info", "crypto/buffer/build.info", "crypto/bio/build.info", "crypto/stack/build.info", "crypto/lhash/build.info", + "crypto/hashtable/build.info", "crypto/rand/build.info", "crypto/evp/build.info", "crypto/asn1/build.info", @@ -78,6 +83,7 @@ our %config = ( "crypto/md5/build.info", "crypto/sha/build.info", "crypto/mdc2/build.info", + "crypto/ml_kem/build.info", "crypto/hmac/build.info", "crypto/ripemd/build.info", "crypto/whrlpool/build.info", @@ -119,11 +125,19 @@ our %config = ( "crypto/cmp/build.info", "crypto/encode_decode/build.info", "crypto/ffc/build.info", + "crypto/hpke/build.info", + "crypto/thread/build.info", + "crypto/ml_dsa/build.info", + "crypto/slh_dsa/build.info", + "ssl/record/build.info", + "ssl/rio/build.info", + "ssl/quic/build.info", "apps/lib/build.info", "providers/common/build.info", "providers/implementations/build.info", "providers/fips/build.info", "doc/man1/build.info", + "ssl/record/methods/build.info", "providers/common/der/build.info", "providers/implementations/digests/build.info", "providers/implementations/ciphers/build.info", @@ -137,6 +151,7 @@ our %config = ( "providers/implementations/encode_decode/build.info", "providers/implementations/storemgmt/build.info", "providers/implementations/kem/build.info", + "providers/implementations/skeymgmt/build.info", "providers/implementations/rands/seeding/build.info" ], "build_metadata" => "", @@ -154,7 +169,7 @@ our %config = ( ], "dynamic_engines" => "0", "ex_libs" => [], - "full_version" => "3.0.17", + "full_version" => "3.5.1", "includes" => [], "lflags" => [], "lib_defines" => [ @@ -163,9 +178,9 @@ our %config = ( "libdir" => "", "major" => "3", "makedep_scheme" => "gcc", - "minor" => "0", + "minor" => "5", "openssl_api_defines" => [ - "OPENSSL_CONFIGURED_API=30000" + "OPENSSL_CONFIGURED_API=30500" ], "openssl_feature_defines" => [ "OPENSSL_RAND_SEED_OS", @@ -173,28 +188,43 @@ our %config = ( "OPENSSL_NO_AFALGENG", "OPENSSL_NO_ASAN", "OPENSSL_NO_ASM", + "OPENSSL_NO_BROTLI", + "OPENSSL_NO_BROTLI_DYNAMIC", "OPENSSL_NO_COMP", "OPENSSL_NO_CRYPTO_MDEBUG", "OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE", + "OPENSSL_NO_DEMOS", "OPENSSL_NO_DEVCRYPTOENG", "OPENSSL_NO_EC_NISTP_64_GCC_128", "OPENSSL_NO_EGD", "OPENSSL_NO_EXTERNAL_TESTS", + "OPENSSL_NO_FIPS_JITTER", "OPENSSL_NO_FUZZ_AFL", "OPENSSL_NO_FUZZ_LIBFUZZER", + "OPENSSL_NO_H3DEMO", + "OPENSSL_NO_HQINTEROP", + "OPENSSL_NO_JITTER", "OPENSSL_NO_KTLS", "OPENSSL_NO_LOADERENG", "OPENSSL_NO_MD2", "OPENSSL_NO_MSAN", + "OPENSSL_NO_PIE", "OPENSSL_NO_RC5", "OPENSSL_NO_SCTP", "OPENSSL_NO_SSL3", "OPENSSL_NO_SSL3_METHOD", + "OPENSSL_NO_SSLKEYLOG", + "OPENSSL_NO_TFO", "OPENSSL_NO_TRACE", "OPENSSL_NO_UBSAN", "OPENSSL_NO_UNIT_TEST", "OPENSSL_NO_UPLINK", "OPENSSL_NO_WEAK_SSL_CIPHERS", + "OPENSSL_NO_WINSTORE", + "OPENSSL_NO_ZLIB", + "OPENSSL_NO_ZLIB_DYNAMIC", + "OPENSSL_NO_ZSTD", + "OPENSSL_NO_ZSTD_DYNAMIC", "OPENSSL_NO_DYNAMIC_ENGINE" ], "openssl_other_defines" => [ @@ -204,11 +234,11 @@ our %config = ( "OPENSSL_SYS_MACOSX" ], "openssldir" => "", - "options" => "enable-ssl-trace enable-fips no-afalgeng no-asan no-asm no-buildtest-c++ no-comp no-crypto-mdebug no-crypto-mdebug-backtrace no-devcryptoeng no-dynamic-engine no-ec_nistp_64_gcc_128 no-egd no-external-tests no-fuzz-afl no-fuzz-libfuzzer no-ktls no-loadereng no-md2 no-msan no-rc5 no-sctp no-shared no-ssl3 no-ssl3-method no-trace no-ubsan no-unit-test no-uplink no-weak-ssl-ciphers no-zlib no-zlib-dynamic", - "patch" => "17", + "options" => "enable-ssl-trace enable-fips no-afalgeng no-asan no-asm no-brotli no-brotli-dynamic no-buildtest-c++ no-comp no-crypto-mdebug no-crypto-mdebug-backtrace no-demos no-devcryptoeng no-dynamic-engine no-ec_nistp_64_gcc_128 no-egd no-external-tests no-fips-jitter no-fuzz-afl no-fuzz-libfuzzer no-h3demo no-hqinterop no-jitter no-ktls no-loadereng no-md2 no-msan no-pie no-rc5 no-sctp no-shared no-ssl3 no-ssl3-method no-sslkeylog no-tfo no-trace no-ubsan no-unit-test no-uplink no-weak-ssl-ciphers no-winstore no-zlib no-zlib-dynamic no-zstd no-zstd-dynamic", + "patch" => "1", "perl_archname" => "x86_64-linux-gnu-thread-multi", "perl_cmd" => "/usr/bin/perl", - "perl_version" => "5.38.2", + "perl_version" => "5.34.0", "perlargv" => [ "no-comp", "no-shared", @@ -239,6 +269,7 @@ our %config = ( "LDLIBS" => undef, "MT" => undef, "MTFLAGS" => undef, + "OBJCOPY" => undef, "OPENSSL_LOCAL_CONFIG_DIR" => undef, "PERL" => undef, "RANLIB" => undef, @@ -262,7 +293,7 @@ our %config = ( "shlib_version" => "3", "sourcedir" => ".", "target" => "darwin64-x86_64-cc", - "version" => "3.0.17" + "version" => "3.5.1" ); our %target = ( "AR" => "ar", @@ -270,6 +301,7 @@ our %target = ( "CC" => "cc", "CFLAGS" => "-O3 -Wall", "HASHBANGPERL" => "/usr/bin/env perl", + "OBJCOPY" => "objcopy", "RANLIB" => "ranlib -c", "RC" => "windres", "_conf_fname_int" => [ @@ -281,6 +313,8 @@ our %target = ( "Configurations/shared-info.pl" ], "asm_arch" => "x86_64", + "bin_cflags" => "", + "bin_lflags" => "", "bn_ops" => "SIXTY_FOUR_BIT_LONG", "build_file" => "Makefile", "build_scheme" => [ @@ -295,6 +329,7 @@ our %target = ( "disable" => [], "dso_scheme" => "dlfcn", "enable" => [], + "ex_libs" => "", "includes" => [], "lflags" => "-Wl,-search_paths_first", "lib_cflags" => "", @@ -321,6 +356,8 @@ our %target = ( our @disablables = ( "acvp-tests", "afalgeng", + "apps", + "argon2", "aria", "asan", "asm", @@ -331,11 +368,14 @@ our @disablables = ( "autoload-config", "bf", "blake2", + "brotli", + "brotli-dynamic", "buildtest-c++", "bulk", "cached-fetch", "camellia", "capieng", + "winstore", "cast", "chacha", "cmac", @@ -344,11 +384,16 @@ our @disablables = ( "comp", "crypto-mdebug", "ct", + "default-thread-pool", + "demos", + "h3demo", + "hqinterop", "deprecated", "des", "devcryptoeng", "dgram", "dh", + "docs", "dsa", "dso", "dtls", @@ -358,6 +403,7 @@ our @disablables = ( "ec_nistp_64_gcc_128", "ecdh", "ecdsa", + "ecx", "egd", "engine", "err", @@ -365,10 +411,15 @@ our @disablables = ( "filenames", "fips", "fips-securitychecks", + "fips-post", + "fips-jitter", "fuzz-afl", "fuzz-libfuzzer", "gost", + "http", "idea", + "integrity-only-ciphers", + "jitter", "ktls", "legacy", "loadereng", @@ -376,6 +427,8 @@ our @disablables = ( "md2", "md4", "mdc2", + "ml-dsa", + "ml-kem", "module", "msan", "multiblock", @@ -384,10 +437,13 @@ our @disablables = ( "ocsp", "padlockeng", "pic", + "pie", "pinshared", "poly1305", "posix-io", "psk", + "quic", + "unstable-qlog", "rc2", "rc4", "rc5", @@ -401,7 +457,9 @@ our @disablables = ( "shared", "siphash", "siv", + "slh-dsa", "sm2", + "sm2-precomp", "sm3", "sm4", "sock", @@ -412,9 +470,13 @@ our @disablables = ( "ssl-trace", "static-engine", "stdio", + "sslkeylog", "tests", + "tfo", + "thread-pool", "threads", "tls", + "tls-deprecated-ec", "trace", "ts", "ubsan", @@ -425,6 +487,8 @@ our @disablables = ( "whirlpool", "zlib", "zlib-dynamic", + "zstd", + "zstd-dynamic", "ssl3", "ssl3-method", "tls1", @@ -446,33 +510,46 @@ our %disabled = ( "afalgeng" => "option", "asan" => "default", "asm" => "option", + "brotli" => "default", + "brotli-dynamic" => "default", "buildtest-c++" => "default", "comp" => "option", "crypto-mdebug" => "default", "crypto-mdebug-backtrace" => "default", + "demos" => "default", "devcryptoeng" => "default", "dynamic-engine" => "cascade", "ec_nistp_64_gcc_128" => "default", "egd" => "default", "external-tests" => "default", + "fips-jitter" => "default", "fuzz-afl" => "default", "fuzz-libfuzzer" => "default", + "h3demo" => "default", + "hqinterop" => "default", + "jitter" => "default", "ktls" => "default", "loadereng" => "cascade", "md2" => "default", "msan" => "default", + "pie" => "default", "rc5" => "default", "sctp" => "default", "shared" => "option", "ssl3" => "default", "ssl3-method" => "default", + "sslkeylog" => "default", + "tfo" => "default", "trace" => "default", "ubsan" => "default", "unit-test" => "default", "uplink" => "no uplink_arch", "weak-ssl-ciphers" => "default", + "winstore" => "not-windows", "zlib" => "default", - "zlib-dynamic" => "default" + "zlib-dynamic" => "default", + "zstd" => "default", + "zstd-dynamic" => "default" ); our %withargs = (); our %unified_info = ( @@ -698,6 +775,11 @@ our %unified_info = ( "pod" => "1" } }, + "doc/man1/openssl-skeyutl.pod" => { + "doc/man1/openssl-skeyutl.pod.in" => { + "pod" => "1" + } + }, "doc/man1/openssl-smime.pod" => { "doc/man1/openssl-smime.pod.in" => { "pod" => "1" @@ -755,6 +837,21 @@ our %unified_info = ( } }, "generate" => { + "exporters/OpenSSLConfig.cmake" => { + "exporter" => "cmake" + }, + "exporters/OpenSSLConfigVersion.cmake" => { + "exporter" => "cmake" + }, + "exporters/libcrypto.pc" => { + "exporter" => "pkg-config" + }, + "exporters/libssl.pc" => { + "exporter" => "pkg-config" + }, + "exporters/openssl.pc" => { + "exporter" => "pkg-config" + }, "include/openssl/configuration.h" => { "skip" => "1" } @@ -775,6 +872,9 @@ our %unified_info = ( "providers/liblegacy.a" => { "noinst" => "1" }, + "providers/libtemplate.a" => { + "noinst" => "1" + }, "test/libtestutil.a" => { "has_main" => "1", "noinst" => "1" @@ -792,6 +892,9 @@ our %unified_info = ( } }, "programs" => { + "fuzz/acert-test" => { + "noinst" => "1" + }, "fuzz/asn1-test" => { "noinst" => "1" }, @@ -822,9 +925,60 @@ our %unified_info = ( "fuzz/ct-test" => { "noinst" => "1" }, + "fuzz/decoder-test" => { + "noinst" => "1" + }, + "fuzz/dtlsclient-test" => { + "noinst" => "1" + }, + "fuzz/dtlsserver-test" => { + "noinst" => "1" + }, + "fuzz/hashtable-test" => { + "noinst" => "1" + }, + "fuzz/ml-dsa-test" => { + "noinst" => "1" + }, + "fuzz/ml-kem-test" => { + "noinst" => "1" + }, + "fuzz/pem-test" => { + "noinst" => "1" + }, + "fuzz/provider-test" => { + "noinst" => "1" + }, + "fuzz/punycode-test" => { + "noinst" => "1" + }, + "fuzz/quic-client-test" => { + "noinst" => "1" + }, + "fuzz/quic-lcidm-test" => { + "noinst" => "1" + }, + "fuzz/quic-rcidm-test" => { + "noinst" => "1" + }, + "fuzz/quic-server-test" => { + "noinst" => "1" + }, + "fuzz/quic-srtm-test" => { + "noinst" => "1" + }, "fuzz/server-test" => { "noinst" => "1" }, + "fuzz/slh-dsa-test" => { + "noinst" => "1" + }, + "fuzz/smime-test" => { + "noinst" => "1" + }, + "fuzz/v3name-test" => { + "noinst" => "1" + }, "fuzz/x509-test" => { "noinst" => "1" }, @@ -876,18 +1030,30 @@ our %unified_info = ( "test/bftest" => { "noinst" => "1" }, + "test/bio_addr_test" => { + "noinst" => "1" + }, + "test/bio_base64_test" => { + "noinst" => "1" + }, "test/bio_callback_test" => { "noinst" => "1" }, "test/bio_core_test" => { "noinst" => "1" }, + "test/bio_dgram_test" => { + "noinst" => "1" + }, "test/bio_enc_test" => { "noinst" => "1" }, "test/bio_memleak_test" => { "noinst" => "1" }, + "test/bio_meth_test" => { + "noinst" => "1" + }, "test/bio_prefix_text" => { "noinst" => "1" }, @@ -897,6 +1063,9 @@ our %unified_info = ( "test/bio_readbuffer_test" => { "noinst" => "1" }, + "test/bio_tfo_test" => { + "noinst" => "1" + }, "test/bioprinttest" => { "noinst" => "1" }, @@ -906,6 +1075,9 @@ our %unified_info = ( "test/bntest" => { "noinst" => "1" }, + "test/build_wincrypt_test" => { + "noinst" => "1" + }, "test/buildtest_c_aes" => { "noinst" => "1" }, @@ -921,6 +1093,9 @@ our %unified_info = ( "test/buildtest_c_buffer" => { "noinst" => "1" }, + "test/buildtest_c_byteorder" => { + "noinst" => "1" + }, "test/buildtest_c_camellia" => { "noinst" => "1" }, @@ -945,9 +1120,6 @@ our %unified_info = ( "test/buildtest_c_core_dispatch" => { "noinst" => "1" }, - "test/buildtest_c_core_names" => { - "noinst" => "1" - }, "test/buildtest_c_core_object" => { "noinst" => "1" }, @@ -972,6 +1144,9 @@ our %unified_info = ( "test/buildtest_c_e_os2" => { "noinst" => "1" }, + "test/buildtest_c_e_ostime" => { + "noinst" => "1" + }, "test/buildtest_c_ebcdic" => { "noinst" => "1" }, @@ -999,12 +1174,18 @@ our %unified_info = ( "test/buildtest_c_hmac" => { "noinst" => "1" }, + "test/buildtest_c_hpke" => { + "noinst" => "1" + }, "test/buildtest_c_http" => { "noinst" => "1" }, "test/buildtest_c_idea" => { "noinst" => "1" }, + "test/buildtest_c_indicator" => { + "noinst" => "1" + }, "test/buildtest_c_kdf" => { "noinst" => "1" }, @@ -1020,6 +1201,9 @@ our %unified_info = ( "test/buildtest_c_mdc2" => { "noinst" => "1" }, + "test/buildtest_c_ml_kem" => { + "noinst" => "1" + }, "test/buildtest_c_modes" => { "noinst" => "1" }, @@ -1050,6 +1234,9 @@ our %unified_info = ( "test/buildtest_c_provider" => { "noinst" => "1" }, + "test/buildtest_c_quic" => { + "noinst" => "1" + }, "test/buildtest_c_rand" => { "noinst" => "1" }, @@ -1092,6 +1279,9 @@ our %unified_info = ( "test/buildtest_c_symhacks" => { "noinst" => "1" }, + "test/buildtest_c_thread" => { + "noinst" => "1" + }, "test/buildtest_c_tls1" => { "noinst" => "1" }, @@ -1107,6 +1297,12 @@ our %unified_info = ( "test/buildtest_c_whrlpool" => { "noinst" => "1" }, + "test/byteorder_test" => { + "noinst" => "1" + }, + "test/ca_internals_test" => { + "noinst" => "1" + }, "test/casttest" => { "noinst" => "1" }, @@ -1191,6 +1387,9 @@ our %unified_info = ( "test/danetest" => { "noinst" => "1" }, + "test/decoder_propq_test" => { + "noinst" => "1" + }, "test/defltfips_test" => { "noinst" => "1" }, @@ -1263,15 +1462,24 @@ our %unified_info = ( "test/evp_pkey_ctx_new_from_name" => { "noinst" => "1" }, + "test/evp_pkey_dhkem_test" => { + "noinst" => "1" + }, "test/evp_pkey_dparams_test" => { "noinst" => "1" }, "test/evp_pkey_provided_test" => { "noinst" => "1" }, + "test/evp_skey_test" => { + "noinst" => "1" + }, "test/evp_test" => { "noinst" => "1" }, + "test/evp_xof_test" => { + "noinst" => "1" + }, "test/exdatatest" => { "noinst" => "1" }, @@ -1299,6 +1507,9 @@ our %unified_info = ( "test/hmactest" => { "noinst" => "1" }, + "test/hpke_test" => { + "noinst" => "1" + }, "test/http_test" => { "noinst" => "1" }, @@ -1308,12 +1519,18 @@ our %unified_info = ( "test/igetest" => { "noinst" => "1" }, + "test/json_test" => { + "noinst" => "1" + }, "test/keymgmt_internal_test" => { "noinst" => "1" }, "test/lhash_test" => { "noinst" => "1" }, + "test/list_test" => { + "noinst" => "1" + }, "test/localetest" => { "noinst" => "1" }, @@ -1323,9 +1540,21 @@ our %unified_info = ( "test/mdc2test" => { "noinst" => "1" }, + "test/membio_test" => { + "noinst" => "1" + }, "test/memleaktest" => { "noinst" => "1" }, + "test/ml_dsa_test" => { + "noinst" => "1" + }, + "test/ml_kem_evp_extra_test" => { + "noinst" => "1" + }, + "test/ml_kem_internal_test" => { + "noinst" => "1" + }, "test/modes_internal_test" => { "noinst" => "1" }, @@ -1344,6 +1573,9 @@ our %unified_info = ( "test/packettest" => { "noinst" => "1" }, + "test/pairwise_fail_test" => { + "noinst" => "1" + }, "test/param_build_test" => { "noinst" => "1" }, @@ -1368,6 +1600,9 @@ our %unified_info = ( "test/pemtest" => { "noinst" => "1" }, + "test/pkcs12_api_test" => { + "noinst" => "1" + }, "test/pkcs12_format_test" => { "noinst" => "1" }, @@ -1383,6 +1618,9 @@ our %unified_info = ( "test/poly1305_internal_test" => { "noinst" => "1" }, + "test/priority_queue_test" => { + "noinst" => "1" + }, "test/property_test" => { "noinst" => "1" }, @@ -1392,6 +1630,9 @@ our %unified_info = ( "test/provfetchtest" => { "noinst" => "1" }, + "test/provider_default_search_path_test" => { + "noinst" => "1" + }, "test/provider_fallback_test" => { "noinst" => "1" }, @@ -1410,6 +1651,72 @@ our %unified_info = ( "test/punycode_test" => { "noinst" => "1" }, + "test/quic_ackm_test" => { + "noinst" => "1" + }, + "test/quic_cc_test" => { + "noinst" => "1" + }, + "test/quic_cfq_test" => { + "noinst" => "1" + }, + "test/quic_client_test" => { + "noinst" => "1" + }, + "test/quic_fc_test" => { + "noinst" => "1" + }, + "test/quic_fifd_test" => { + "noinst" => "1" + }, + "test/quic_lcidm_test" => { + "noinst" => "1" + }, + "test/quic_multistream_test" => { + "noinst" => "1" + }, + "test/quic_newcid_test" => { + "noinst" => "1" + }, + "test/quic_qlog_test" => { + "noinst" => "1" + }, + "test/quic_radix_test" => { + "noinst" => "1" + }, + "test/quic_rcidm_test" => { + "noinst" => "1" + }, + "test/quic_record_test" => { + "noinst" => "1" + }, + "test/quic_srt_gen_test" => { + "noinst" => "1" + }, + "test/quic_srtm_test" => { + "noinst" => "1" + }, + "test/quic_stream_test" => { + "noinst" => "1" + }, + "test/quic_tserver_test" => { + "noinst" => "1" + }, + "test/quic_txp_test" => { + "noinst" => "1" + }, + "test/quic_txpim_test" => { + "noinst" => "1" + }, + "test/quic_wire_test" => { + "noinst" => "1" + }, + "test/quicapitest" => { + "noinst" => "1" + }, + "test/quicfaultstest" => { + "noinst" => "1" + }, "test/rand_status_test" => { "noinst" => "1" }, @@ -1425,12 +1732,15 @@ our %unified_info = ( "test/rc5test" => { "noinst" => "1" }, - "test/rdrand_sanitytest" => { + "test/rdcpu_sanitytest" => { "noinst" => "1" }, "test/recordlentest" => { "noinst" => "1" }, + "test/rpktest" => { + "noinst" => "1" + }, "test/rsa_complex" => { "noinst" => "1" }, @@ -1443,6 +1753,12 @@ our %unified_info = ( "test/rsa_test" => { "noinst" => "1" }, + "test/rsa_x931_test" => { + "noinst" => "1" + }, + "test/safe_math_test" => { + "noinst" => "1" + }, "test/sanitytest" => { "noinst" => "1" }, @@ -1458,6 +1774,9 @@ our %unified_info = ( "test/siphash_internal_test" => { "noinst" => "1" }, + "test/slh_dsa_test" => { + "noinst" => "1" + }, "test/sm2_internal_test" => { "noinst" => "1" }, @@ -1479,6 +1798,9 @@ our %unified_info = ( "test/ssl_ctx_test" => { "noinst" => "1" }, + "test/ssl_handshake_rtt_test" => { + "noinst" => "1" + }, "test/ssl_old_test" => { "noinst" => "1" }, @@ -1500,12 +1822,18 @@ our %unified_info = ( "test/stack_test" => { "noinst" => "1" }, + "test/strtoultest" => { + "noinst" => "1" + }, "test/sysdefaulttest" => { "noinst" => "1" }, "test/test_test" => { "noinst" => "1" }, + "test/threadpool_test" => { + "noinst" => "1" + }, "test/threadstest" => { "noinst" => "1" }, @@ -1515,12 +1843,18 @@ our %unified_info = ( "test/time_offset_test" => { "noinst" => "1" }, + "test/time_test" => { + "noinst" => "1" + }, "test/tls13ccstest" => { "noinst" => "1" }, "test/tls13encryptiontest" => { "noinst" => "1" }, + "test/tls13groupselection_test" => { + "noinst" => "1" + }, "test/trace_api_test" => { "noinst" => "1" }, @@ -1548,6 +1882,9 @@ our %unified_info = ( "test/wpackettest" => { "noinst" => "1" }, + "test/x509_acert_test" => { + "noinst" => "1" + }, "test/x509_check_cert_pkey_test" => { "noinst" => "1" }, @@ -1557,6 +1894,15 @@ our %unified_info = ( "test/x509_internal_test" => { "noinst" => "1" }, + "test/x509_load_cert_file_test" => { + "noinst" => "1" + }, + "test/x509_req_test" => { + "noinst" => "1" + }, + "test/x509_test" => { + "noinst" => "1" + }, "test/x509_time_test" => { "noinst" => "1" }, @@ -1600,6 +1946,9 @@ our %unified_info = ( "providers/libfips.a" => [ "FIPS_MODULE" ], + "test/endecode_test" => [ + "STATIC_LEGACY" + ], "test/evp_extra_test" => [ "STATIC_LEGACY" ], @@ -1612,14 +1961,21 @@ our %unified_info = ( }, "depends" => { "" => [ + "OpenSSLConfigVersion.cmake", + "crypto/params_idx.c", + "exporters/OpenSSLConfigVersion.cmake", + "exporters/openssl.pc", "include/crypto/bn_conf.h", "include/crypto/dso_conf.h", + "include/internal/param_names.h", "include/openssl/asn1.h", "include/openssl/asn1t.h", "include/openssl/bio.h", "include/openssl/cmp.h", "include/openssl/cms.h", + "include/openssl/comp.h", "include/openssl/conf.h", + "include/openssl/core_names.h", "include/openssl/crmf.h", "include/openssl/crypto.h", "include/openssl/ct.h", @@ -1636,10 +1992,22 @@ our %unified_info = ( "include/openssl/ssl.h", "include/openssl/ui.h", "include/openssl/x509.h", + "include/openssl/x509_acert.h", "include/openssl/x509_vfy.h", "include/openssl/x509v3.h", + "openssl.pc", "test/provider_internal_test.cnf" ], + "OpenSSLConfig.cmake" => [ + "builddata.pm" + ], + "OpenSSLConfigVersion.cmake" => [ + "OpenSSLConfig.cmake", + "builddata.pm" + ], + "apps/ca_internals_test-bin-ca.o" => [ + "apps/progs.h" + ], "apps/lib/cmp_client_test-bin-cmp_mock_srv.o" => [ "apps/progs.h" ], @@ -1785,6 +2153,9 @@ our %unified_info = ( "apps/openssl-bin-sess_id.o" => [ "apps/progs.h" ], + "apps/openssl-bin-skeyutl.o" => [ + "apps/progs.h" + ], "apps/openssl-bin-smime.o" => [ "apps/progs.h" ], @@ -1873,6 +2244,9 @@ our %unified_info = ( "crypto/libcrypto-lib-info.o" => [ "crypto/buildinf.h" ], + "crypto/params_idx.c" => [ + "util/perl|OpenSSL/paramnames.pm" + ], "crypto/rc4/rc4-586.S" => [ "crypto/perlasm/x86asm.pl" ], @@ -2038,6 +2412,9 @@ our %unified_info = ( "doc/html/man1/openssl-sess_id.html" => [ "doc/man1/openssl-sess_id.pod" ], + "doc/html/man1/openssl-skeyutl.html" => [ + "doc/man1/openssl-skeyutl.pod" + ], "doc/html/man1/openssl-smime.html" => [ "doc/man1/openssl-smime.pod" ], @@ -2179,6 +2556,9 @@ our %unified_info = ( "doc/html/man3/BIO_get_ex_new_index.html" => [ "doc/man3/BIO_get_ex_new_index.pod" ], + "doc/html/man3/BIO_get_rpoll_descriptor.html" => [ + "doc/man3/BIO_get_rpoll_descriptor.pod" + ], "doc/html/man3/BIO_meth_new.html" => [ "doc/man3/BIO_meth_new.pod" ], @@ -2215,6 +2595,9 @@ our %unified_info = ( "doc/html/man3/BIO_s_datagram.html" => [ "doc/man3/BIO_s_datagram.pod" ], + "doc/html/man3/BIO_s_dgram_pair.html" => [ + "doc/man3/BIO_s_dgram_pair.pod" + ], "doc/html/man3/BIO_s_fd.html" => [ "doc/man3/BIO_s_fd.pod" ], @@ -2230,6 +2613,9 @@ our %unified_info = ( "doc/html/man3/BIO_s_socket.html" => [ "doc/man3/BIO_s_socket.pod" ], + "doc/html/man3/BIO_sendmmsg.html" => [ + "doc/man3/BIO_sendmmsg.pod" + ], "doc/html/man3/BIO_set_callback.html" => [ "doc/man3/BIO_set_callback.pod" ], @@ -2302,6 +2688,9 @@ our %unified_info = ( "doc/html/man3/BUF_MEM_new.html" => [ "doc/man3/BUF_MEM_new.pod" ], + "doc/html/man3/CMAC_CTX.html" => [ + "doc/man3/CMAC_CTX.pod" + ], "doc/html/man3/CMS_EncryptedData_decrypt.html" => [ "doc/man3/CMS_EncryptedData_decrypt.pod" ], @@ -2368,6 +2757,9 @@ our %unified_info = ( "doc/html/man3/CMS_verify_receipt.html" => [ "doc/man3/CMS_verify_receipt.pod" ], + "doc/html/man3/COMP_CTX_new.html" => [ + "doc/man3/COMP_CTX_new.pod" + ], "doc/html/man3/CONF_modules_free.html" => [ "doc/man3/CONF_modules_free.pod" ], @@ -2467,6 +2859,12 @@ our %unified_info = ( "doc/html/man3/DTLS_set_timer_cb.html" => [ "doc/man3/DTLS_set_timer_cb.pod" ], + "doc/html/man3/DTLSv1_get_timeout.html" => [ + "doc/man3/DTLSv1_get_timeout.pod" + ], + "doc/html/man3/DTLSv1_handle_timeout.html" => [ + "doc/man3/DTLSv1_handle_timeout.pod" + ], "doc/html/man3/DTLSv1_listen.html" => [ "doc/man3/DTLSv1_listen.pod" ], @@ -2605,6 +3003,9 @@ our %unified_info = ( "doc/html/man3/EVP_PKEY_CTX_get0_pkey.html" => [ "doc/man3/EVP_PKEY_CTX_get0_pkey.pod" ], + "doc/html/man3/EVP_PKEY_CTX_get_algor.html" => [ + "doc/man3/EVP_PKEY_CTX_get_algor.pod" + ], "doc/html/man3/EVP_PKEY_CTX_new.html" => [ "doc/man3/EVP_PKEY_CTX_new.pod" ], @@ -2722,6 +3123,12 @@ our %unified_info = ( "doc/html/man3/EVP_SIGNATURE.html" => [ "doc/man3/EVP_SIGNATURE.pod" ], + "doc/html/man3/EVP_SKEY.html" => [ + "doc/man3/EVP_SKEY.pod" + ], + "doc/html/man3/EVP_SKEYMGMT.html" => [ + "doc/man3/EVP_SKEYMGMT.pod" + ], "doc/html/man3/EVP_SealInit.html" => [ "doc/man3/EVP_SealInit.pod" ], @@ -2809,6 +3216,9 @@ our %unified_info = ( "doc/html/man3/EVP_whirlpool.html" => [ "doc/man3/EVP_whirlpool.pod" ], + "doc/html/man3/GENERAL_NAME.html" => [ + "doc/man3/GENERAL_NAME.pod" + ], "doc/html/man3/HMAC.html" => [ "doc/man3/HMAC.pod" ], @@ -2881,9 +3291,15 @@ our %unified_info = ( "doc/html/man3/OPENSSL_load_builtin_modules.html" => [ "doc/man3/OPENSSL_load_builtin_modules.pod" ], + "doc/html/man3/OPENSSL_load_u16_le.html" => [ + "doc/man3/OPENSSL_load_u16_le.pod" + ], "doc/html/man3/OPENSSL_malloc.html" => [ "doc/man3/OPENSSL_malloc.pod" ], + "doc/html/man3/OPENSSL_riscvcap.html" => [ + "doc/man3/OPENSSL_riscvcap.pod" + ], "doc/html/man3/OPENSSL_s390xcap.html" => [ "doc/man3/OPENSSL_s390xcap.pod" ], @@ -2899,12 +3315,18 @@ our %unified_info = ( "doc/html/man3/OSSL_CALLBACK.html" => [ "doc/man3/OSSL_CALLBACK.pod" ], + "doc/html/man3/OSSL_CMP_ATAV_set0.html" => [ + "doc/man3/OSSL_CMP_ATAV_set0.pod" + ], "doc/html/man3/OSSL_CMP_CTX_new.html" => [ "doc/man3/OSSL_CMP_CTX_new.pod" ], "doc/html/man3/OSSL_CMP_HDR_get0_transactionID.html" => [ "doc/man3/OSSL_CMP_HDR_get0_transactionID.pod" ], + "doc/html/man3/OSSL_CMP_ITAV_new_caCerts.html" => [ + "doc/man3/OSSL_CMP_ITAV_new_caCerts.pod" + ], "doc/html/man3/OSSL_CMP_ITAV_set0.html" => [ "doc/man3/OSSL_CMP_ITAV_set0.pod" ], @@ -2974,9 +3396,18 @@ our %unified_info = ( "doc/html/man3/OSSL_ENCODER_to_bio.html" => [ "doc/man3/OSSL_ENCODER_to_bio.pod" ], + "doc/html/man3/OSSL_ERR_STATE_save.html" => [ + "doc/man3/OSSL_ERR_STATE_save.pod" + ], "doc/html/man3/OSSL_ESS_check_signing_certs.html" => [ "doc/man3/OSSL_ESS_check_signing_certs.pod" ], + "doc/html/man3/OSSL_GENERAL_NAMES_print.html" => [ + "doc/man3/OSSL_GENERAL_NAMES_print.pod" + ], + "doc/html/man3/OSSL_HPKE_CTX_new.html" => [ + "doc/man3/OSSL_HPKE_CTX_new.pod" + ], "doc/html/man3/OSSL_HTTP_REQ_CTX.html" => [ "doc/man3/OSSL_HTTP_REQ_CTX.pod" ], @@ -2986,12 +3417,24 @@ our %unified_info = ( "doc/html/man3/OSSL_HTTP_transfer.html" => [ "doc/man3/OSSL_HTTP_transfer.pod" ], + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX.html" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX.pod" + ], + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX_print.html" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX_print.pod" + ], + "doc/html/man3/OSSL_INDICATOR_set_callback.html" => [ + "doc/man3/OSSL_INDICATOR_set_callback.pod" + ], "doc/html/man3/OSSL_ITEM.html" => [ "doc/man3/OSSL_ITEM.pod" ], "doc/html/man3/OSSL_LIB_CTX.html" => [ "doc/man3/OSSL_LIB_CTX.pod" ], + "doc/html/man3/OSSL_LIB_CTX_set_conf_diagnostics.html" => [ + "doc/man3/OSSL_LIB_CTX_set_conf_diagnostics.pod" + ], "doc/html/man3/OSSL_PARAM.html" => [ "doc/man3/OSSL_PARAM.pod" ], @@ -3007,9 +3450,15 @@ our %unified_info = ( "doc/html/man3/OSSL_PARAM_int.html" => [ "doc/man3/OSSL_PARAM_int.pod" ], + "doc/html/man3/OSSL_PARAM_print_to_bio.html" => [ + "doc/man3/OSSL_PARAM_print_to_bio.pod" + ], "doc/html/man3/OSSL_PROVIDER.html" => [ "doc/man3/OSSL_PROVIDER.pod" ], + "doc/html/man3/OSSL_QUIC_client_method.html" => [ + "doc/man3/OSSL_QUIC_client_method.pod" + ], "doc/html/man3/OSSL_SELF_TEST_new.html" => [ "doc/man3/OSSL_SELF_TEST_new.pod" ], @@ -3034,6 +3483,9 @@ our %unified_info = ( "doc/html/man3/OSSL_STORE_open.html" => [ "doc/man3/OSSL_STORE_open.pod" ], + "doc/html/man3/OSSL_sleep.html" => [ + "doc/man3/OSSL_sleep.pod" + ], "doc/html/man3/OSSL_trace_enabled.html" => [ "doc/man3/OSSL_trace_enabled.pod" ], @@ -3049,6 +3501,9 @@ our %unified_info = ( "doc/html/man3/OpenSSL_version.html" => [ "doc/man3/OpenSSL_version.pod" ], + "doc/html/man3/PBMAC1_get1_pbkdf2_param.html" => [ + "doc/man3/PBMAC1_get1_pbkdf2_param.pod" + ], "doc/html/man3/PEM_X509_INFO_read_bio_ex.html" => [ "doc/man3/PEM_X509_INFO_read_bio_ex.pod" ], @@ -3085,6 +3540,9 @@ our %unified_info = ( "doc/html/man3/PKCS12_SAFEBAG_get1_cert.html" => [ "doc/man3/PKCS12_SAFEBAG_get1_cert.pod" ], + "doc/html/man3/PKCS12_SAFEBAG_set0_attrs.html" => [ + "doc/man3/PKCS12_SAFEBAG_set0_attrs.pod" + ], "doc/html/man3/PKCS12_add1_attr_by_NID.html" => [ "doc/man3/PKCS12_add1_attr_by_NID.pod" ], @@ -3358,6 +3816,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set0_CA_list.html" => [ "doc/man3/SSL_CTX_set0_CA_list.pod" ], + "doc/html/man3/SSL_CTX_set1_cert_comp_preference.html" => [ + "doc/man3/SSL_CTX_set1_cert_comp_preference.pod" + ], "doc/html/man3/SSL_CTX_set1_curves.html" => [ "doc/man3/SSL_CTX_set1_curves.pod" ], @@ -3397,6 +3858,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_default_passwd_cb.html" => [ "doc/man3/SSL_CTX_set_default_passwd_cb.pod" ], + "doc/html/man3/SSL_CTX_set_domain_flags.html" => [ + "doc/man3/SSL_CTX_set_domain_flags.pod" + ], "doc/html/man3/SSL_CTX_set_generate_session_id.html" => [ "doc/man3/SSL_CTX_set_generate_session_id.pod" ], @@ -3418,6 +3882,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_msg_callback.html" => [ "doc/man3/SSL_CTX_set_msg_callback.pod" ], + "doc/html/man3/SSL_CTX_set_new_pending_conn_cb.html" => [ + "doc/man3/SSL_CTX_set_new_pending_conn_cb.pod" + ], "doc/html/man3/SSL_CTX_set_num_tickets.html" => [ "doc/man3/SSL_CTX_set_num_tickets.pod" ], @@ -3532,6 +3999,9 @@ our %unified_info = ( "doc/html/man3/SSL_accept.html" => [ "doc/man3/SSL_accept.pod" ], + "doc/html/man3/SSL_accept_stream.html" => [ + "doc/man3/SSL_accept_stream.pod" + ], "doc/html/man3/SSL_alert_type_string.html" => [ "doc/man3/SSL_alert_type_string.pod" ], @@ -3559,9 +4029,21 @@ our %unified_info = ( "doc/html/man3/SSL_free.html" => [ "doc/man3/SSL_free.pod" ], + "doc/html/man3/SSL_get0_connection.html" => [ + "doc/man3/SSL_get0_connection.pod" + ], + "doc/html/man3/SSL_get0_group_name.html" => [ + "doc/man3/SSL_get0_group_name.pod" + ], + "doc/html/man3/SSL_get0_peer_rpk.html" => [ + "doc/man3/SSL_get0_peer_rpk.pod" + ], "doc/html/man3/SSL_get0_peer_scts.html" => [ "doc/man3/SSL_get0_peer_scts.pod" ], + "doc/html/man3/SSL_get1_builtin_sigalgs.html" => [ + "doc/man3/SSL_get1_builtin_sigalgs.pod" + ], "doc/html/man3/SSL_get_SSL_CTX.html" => [ "doc/man3/SSL_get_SSL_CTX.pod" ], @@ -3577,6 +4059,9 @@ our %unified_info = ( "doc/html/man3/SSL_get_client_random.html" => [ "doc/man3/SSL_get_client_random.pod" ], + "doc/html/man3/SSL_get_conn_close_info.html" => [ + "doc/man3/SSL_get_conn_close_info.pod" + ], "doc/html/man3/SSL_get_current_cipher.html" => [ "doc/man3/SSL_get_current_cipher.pod" ], @@ -3586,12 +4071,18 @@ our %unified_info = ( "doc/html/man3/SSL_get_error.html" => [ "doc/man3/SSL_get_error.pod" ], + "doc/html/man3/SSL_get_event_timeout.html" => [ + "doc/man3/SSL_get_event_timeout.pod" + ], "doc/html/man3/SSL_get_extms_support.html" => [ "doc/man3/SSL_get_extms_support.pod" ], "doc/html/man3/SSL_get_fd.html" => [ "doc/man3/SSL_get_fd.pod" ], + "doc/html/man3/SSL_get_handshake_rtt.html" => [ + "doc/man3/SSL_get_handshake_rtt.pod" + ], "doc/html/man3/SSL_get_peer_cert_chain.html" => [ "doc/man3/SSL_get_peer_cert_chain.pod" ], @@ -3610,12 +4101,24 @@ our %unified_info = ( "doc/html/man3/SSL_get_rbio.html" => [ "doc/man3/SSL_get_rbio.pod" ], + "doc/html/man3/SSL_get_rpoll_descriptor.html" => [ + "doc/man3/SSL_get_rpoll_descriptor.pod" + ], "doc/html/man3/SSL_get_session.html" => [ "doc/man3/SSL_get_session.pod" ], "doc/html/man3/SSL_get_shared_sigalgs.html" => [ "doc/man3/SSL_get_shared_sigalgs.pod" ], + "doc/html/man3/SSL_get_stream_id.html" => [ + "doc/man3/SSL_get_stream_id.pod" + ], + "doc/html/man3/SSL_get_stream_read_state.html" => [ + "doc/man3/SSL_get_stream_read_state.pod" + ], + "doc/html/man3/SSL_get_value_uint.html" => [ + "doc/man3/SSL_get_value_uint.pod" + ], "doc/html/man3/SSL_get_verify_result.html" => [ "doc/man3/SSL_get_verify_result.pod" ], @@ -3625,9 +4128,15 @@ our %unified_info = ( "doc/html/man3/SSL_group_to_name.html" => [ "doc/man3/SSL_group_to_name.pod" ], + "doc/html/man3/SSL_handle_events.html" => [ + "doc/man3/SSL_handle_events.pod" + ], "doc/html/man3/SSL_in_init.html" => [ "doc/man3/SSL_in_init.pod" ], + "doc/html/man3/SSL_inject_net_dgram.html" => [ + "doc/man3/SSL_inject_net_dgram.pod" + ], "doc/html/man3/SSL_key_update.html" => [ "doc/man3/SSL_key_update.pod" ], @@ -3640,9 +4149,21 @@ our %unified_info = ( "doc/html/man3/SSL_new.html" => [ "doc/man3/SSL_new.pod" ], + "doc/html/man3/SSL_new_domain.html" => [ + "doc/man3/SSL_new_domain.pod" + ], + "doc/html/man3/SSL_new_listener.html" => [ + "doc/man3/SSL_new_listener.pod" + ], + "doc/html/man3/SSL_new_stream.html" => [ + "doc/man3/SSL_new_stream.pod" + ], "doc/html/man3/SSL_pending.html" => [ "doc/man3/SSL_pending.pod" ], + "doc/html/man3/SSL_poll.html" => [ + "doc/man3/SSL_poll.pod" + ], "doc/html/man3/SSL_read.html" => [ "doc/man3/SSL_read.pod" ], @@ -3658,24 +4179,45 @@ our %unified_info = ( "doc/html/man3/SSL_set1_host.html" => [ "doc/man3/SSL_set1_host.pod" ], + "doc/html/man3/SSL_set1_initial_peer_addr.html" => [ + "doc/man3/SSL_set1_initial_peer_addr.pod" + ], + "doc/html/man3/SSL_set1_server_cert_type.html" => [ + "doc/man3/SSL_set1_server_cert_type.pod" + ], "doc/html/man3/SSL_set_async_callback.html" => [ "doc/man3/SSL_set_async_callback.pod" ], "doc/html/man3/SSL_set_bio.html" => [ "doc/man3/SSL_set_bio.pod" ], + "doc/html/man3/SSL_set_blocking_mode.html" => [ + "doc/man3/SSL_set_blocking_mode.pod" + ], "doc/html/man3/SSL_set_connect_state.html" => [ "doc/man3/SSL_set_connect_state.pod" ], + "doc/html/man3/SSL_set_default_stream_mode.html" => [ + "doc/man3/SSL_set_default_stream_mode.pod" + ], "doc/html/man3/SSL_set_fd.html" => [ "doc/man3/SSL_set_fd.pod" ], + "doc/html/man3/SSL_set_incoming_stream_policy.html" => [ + "doc/man3/SSL_set_incoming_stream_policy.pod" + ], + "doc/html/man3/SSL_set_quic_tls_cbs.html" => [ + "doc/man3/SSL_set_quic_tls_cbs.pod" + ], "doc/html/man3/SSL_set_retry_verify.html" => [ "doc/man3/SSL_set_retry_verify.pod" ], "doc/html/man3/SSL_set_session.html" => [ "doc/man3/SSL_set_session.pod" ], + "doc/html/man3/SSL_set_session_secret_cb.html" => [ + "doc/man3/SSL_set_session_secret_cb.pod" + ], "doc/html/man3/SSL_set_shutdown.html" => [ "doc/man3/SSL_set_shutdown.pod" ], @@ -3688,6 +4230,12 @@ our %unified_info = ( "doc/html/man3/SSL_state_string.html" => [ "doc/man3/SSL_state_string.pod" ], + "doc/html/man3/SSL_stream_conclude.html" => [ + "doc/man3/SSL_stream_conclude.pod" + ], + "doc/html/man3/SSL_stream_reset.html" => [ + "doc/man3/SSL_stream_reset.pod" + ], "doc/html/man3/SSL_want.html" => [ "doc/man3/SSL_want.pod" ], @@ -3697,8 +4245,8 @@ our %unified_info = ( "doc/html/man3/TS_RESP_CTX_new.html" => [ "doc/man3/TS_RESP_CTX_new.pod" ], - "doc/html/man3/TS_VERIFY_CTX_set_certs.html" => [ - "doc/man3/TS_VERIFY_CTX_set_certs.pod" + "doc/html/man3/TS_VERIFY_CTX.html" => [ + "doc/man3/TS_VERIFY_CTX.pod" ], "doc/html/man3/UI_STRING.html" => [ "doc/man3/UI_STRING.pod" @@ -3718,6 +4266,21 @@ our %unified_info = ( "doc/html/man3/X509V3_set_ctx.html" => [ "doc/man3/X509V3_set_ctx.pod" ], + "doc/html/man3/X509_ACERT_add1_attr.html" => [ + "doc/man3/X509_ACERT_add1_attr.pod" + ], + "doc/html/man3/X509_ACERT_add_attr_nconf.html" => [ + "doc/man3/X509_ACERT_add_attr_nconf.pod" + ], + "doc/html/man3/X509_ACERT_get0_holder_baseCertId.html" => [ + "doc/man3/X509_ACERT_get0_holder_baseCertId.pod" + ], + "doc/html/man3/X509_ACERT_get_attr.html" => [ + "doc/man3/X509_ACERT_get_attr.pod" + ], + "doc/html/man3/X509_ACERT_print_ex.html" => [ + "doc/man3/X509_ACERT_print_ex.pod" + ], "doc/html/man3/X509_ALGOR_dup.html" => [ "doc/man3/X509_ALGOR_dup.pod" ], @@ -3766,6 +4329,9 @@ our %unified_info = ( "doc/html/man3/X509_SIG_get0.html" => [ "doc/man3/X509_SIG_get0.pod" ], + "doc/html/man3/X509_STORE_CTX_get_by_subject.html" => [ + "doc/man3/X509_STORE_CTX_get_by_subject.pod" + ], "doc/html/man3/X509_STORE_CTX_get_error.html" => [ "doc/man3/X509_STORE_CTX_get_error.pod" ], @@ -3832,6 +4398,9 @@ our %unified_info = ( "doc/html/man3/X509_get0_uids.html" => [ "doc/man3/X509_get0_uids.pod" ], + "doc/html/man3/X509_get_default_cert_file.html" => [ + "doc/man3/X509_get_default_cert_file.pod" + ], "doc/html/man3/X509_get_extension_flags.html" => [ "doc/man3/X509_get_extension_flags.pod" ], @@ -3955,9 +4524,15 @@ our %unified_info = ( "doc/html/man7/EVP_CIPHER-SM4.html" => [ "doc/man7/EVP_CIPHER-SM4.pod" ], + "doc/html/man7/EVP_KDF-ARGON2.html" => [ + "doc/man7/EVP_KDF-ARGON2.pod" + ], "doc/html/man7/EVP_KDF-HKDF.html" => [ "doc/man7/EVP_KDF-HKDF.pod" ], + "doc/html/man7/EVP_KDF-HMAC-DRBG.html" => [ + "doc/man7/EVP_KDF-HMAC-DRBG.pod" + ], "doc/html/man7/EVP_KDF-KB.html" => [ "doc/man7/EVP_KDF-KB.pod" ], @@ -3973,6 +4548,9 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-PKCS12KDF.html" => [ "doc/man7/EVP_KDF-PKCS12KDF.pod" ], + "doc/html/man7/EVP_KDF-PVKKDF.html" => [ + "doc/man7/EVP_KDF-PVKKDF.pod" + ], "doc/html/man7/EVP_KDF-SCRYPT.html" => [ "doc/man7/EVP_KDF-SCRYPT.pod" ], @@ -3997,9 +4575,18 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-X963.html" => [ "doc/man7/EVP_KDF-X963.pod" ], + "doc/html/man7/EVP_KEM-EC.html" => [ + "doc/man7/EVP_KEM-EC.pod" + ], + "doc/html/man7/EVP_KEM-ML-KEM.html" => [ + "doc/man7/EVP_KEM-ML-KEM.pod" + ], "doc/html/man7/EVP_KEM-RSA.html" => [ "doc/man7/EVP_KEM-RSA.pod" ], + "doc/html/man7/EVP_KEM-X25519.html" => [ + "doc/man7/EVP_KEM-X25519.pod" + ], "doc/html/man7/EVP_KEYEXCH-DH.html" => [ "doc/man7/EVP_KEYEXCH-DH.pod" ], @@ -4033,6 +4620,9 @@ our %unified_info = ( "doc/html/man7/EVP_MD-BLAKE2.html" => [ "doc/man7/EVP_MD-BLAKE2.pod" ], + "doc/html/man7/EVP_MD-KECCAK.html" => [ + "doc/man7/EVP_MD-KECCAK.pod" + ], "doc/html/man7/EVP_MD-MD2.html" => [ "doc/man7/EVP_MD-MD2.pod" ], @@ -4090,15 +4680,27 @@ our %unified_info = ( "doc/html/man7/EVP_PKEY-HMAC.html" => [ "doc/man7/EVP_PKEY-HMAC.pod" ], + "doc/html/man7/EVP_PKEY-ML-DSA.html" => [ + "doc/man7/EVP_PKEY-ML-DSA.pod" + ], + "doc/html/man7/EVP_PKEY-ML-KEM.html" => [ + "doc/man7/EVP_PKEY-ML-KEM.pod" + ], "doc/html/man7/EVP_PKEY-RSA.html" => [ "doc/man7/EVP_PKEY-RSA.pod" ], + "doc/html/man7/EVP_PKEY-SLH-DSA.html" => [ + "doc/man7/EVP_PKEY-SLH-DSA.pod" + ], "doc/html/man7/EVP_PKEY-SM2.html" => [ "doc/man7/EVP_PKEY-SM2.pod" ], "doc/html/man7/EVP_PKEY-X25519.html" => [ "doc/man7/EVP_PKEY-X25519.pod" ], + "doc/html/man7/EVP_RAND-CRNG-TEST.html" => [ + "doc/man7/EVP_RAND-CRNG-TEST.pod" + ], "doc/html/man7/EVP_RAND-CTR-DRBG.html" => [ "doc/man7/EVP_RAND-CTR-DRBG.pod" ], @@ -4108,6 +4710,9 @@ our %unified_info = ( "doc/html/man7/EVP_RAND-HMAC-DRBG.html" => [ "doc/man7/EVP_RAND-HMAC-DRBG.pod" ], + "doc/html/man7/EVP_RAND-JITTER.html" => [ + "doc/man7/EVP_RAND-JITTER.pod" + ], "doc/html/man7/EVP_RAND-SEED-SRC.html" => [ "doc/man7/EVP_RAND-SEED-SRC.pod" ], @@ -4129,9 +4734,15 @@ our %unified_info = ( "doc/html/man7/EVP_SIGNATURE-HMAC.html" => [ "doc/man7/EVP_SIGNATURE-HMAC.pod" ], + "doc/html/man7/EVP_SIGNATURE-ML-DSA.html" => [ + "doc/man7/EVP_SIGNATURE-ML-DSA.pod" + ], "doc/html/man7/EVP_SIGNATURE-RSA.html" => [ "doc/man7/EVP_SIGNATURE-RSA.pod" ], + "doc/html/man7/EVP_SIGNATURE-SLH-DSA.html" => [ + "doc/man7/EVP_SIGNATURE-SLH-DSA.pod" + ], "doc/html/man7/OSSL_PROVIDER-FIPS.html" => [ "doc/man7/OSSL_PROVIDER-FIPS.pod" ], @@ -4147,6 +4758,9 @@ our %unified_info = ( "doc/html/man7/OSSL_PROVIDER-null.html" => [ "doc/man7/OSSL_PROVIDER-null.pod" ], + "doc/html/man7/OSSL_STORE-winstore.html" => [ + "doc/man7/OSSL_STORE-winstore.pod" + ], "doc/html/man7/RAND.html" => [ "doc/man7/RAND.pod" ], @@ -4159,9 +4773,6 @@ our %unified_info = ( "doc/html/man7/bio.html" => [ "doc/man7/bio.pod" ], - "doc/html/man7/crypto.html" => [ - "doc/man7/crypto.pod" - ], "doc/html/man7/ct.html" => [ "doc/man7/ct.pod" ], @@ -4192,9 +4803,6 @@ our %unified_info = ( "doc/html/man7/life_cycle-rand.html" => [ "doc/man7/life_cycle-rand.pod" ], - "doc/html/man7/migration_guide.html" => [ - "doc/man7/migration_guide.pod" - ], "doc/html/man7/openssl-core.h.html" => [ "doc/man7/openssl-core.h.pod" ], @@ -4210,12 +4818,66 @@ our %unified_info = ( "doc/html/man7/openssl-glossary.html" => [ "doc/man7/openssl-glossary.pod" ], + "doc/html/man7/openssl-qlog.html" => [ + "doc/man7/openssl-qlog.pod" + ], + "doc/html/man7/openssl-quic-concurrency.html" => [ + "doc/man7/openssl-quic-concurrency.pod" + ], + "doc/html/man7/openssl-quic.html" => [ + "doc/man7/openssl-quic.pod" + ], "doc/html/man7/openssl-threads.html" => [ "doc/man7/openssl-threads.pod" ], "doc/html/man7/openssl_user_macros.html" => [ "doc/man7/openssl_user_macros.pod" ], + "doc/html/man7/ossl-guide-introduction.html" => [ + "doc/man7/ossl-guide-introduction.pod" + ], + "doc/html/man7/ossl-guide-libcrypto-introduction.html" => [ + "doc/man7/ossl-guide-libcrypto-introduction.pod" + ], + "doc/html/man7/ossl-guide-libraries-introduction.html" => [ + "doc/man7/ossl-guide-libraries-introduction.pod" + ], + "doc/html/man7/ossl-guide-libssl-introduction.html" => [ + "doc/man7/ossl-guide-libssl-introduction.pod" + ], + "doc/html/man7/ossl-guide-migration.html" => [ + "doc/man7/ossl-guide-migration.pod" + ], + "doc/html/man7/ossl-guide-quic-client-block.html" => [ + "doc/man7/ossl-guide-quic-client-block.pod" + ], + "doc/html/man7/ossl-guide-quic-client-non-block.html" => [ + "doc/man7/ossl-guide-quic-client-non-block.pod" + ], + "doc/html/man7/ossl-guide-quic-introduction.html" => [ + "doc/man7/ossl-guide-quic-introduction.pod" + ], + "doc/html/man7/ossl-guide-quic-multi-stream.html" => [ + "doc/man7/ossl-guide-quic-multi-stream.pod" + ], + "doc/html/man7/ossl-guide-quic-server-block.html" => [ + "doc/man7/ossl-guide-quic-server-block.pod" + ], + "doc/html/man7/ossl-guide-quic-server-non-block.html" => [ + "doc/man7/ossl-guide-quic-server-non-block.pod" + ], + "doc/html/man7/ossl-guide-tls-client-block.html" => [ + "doc/man7/ossl-guide-tls-client-block.pod" + ], + "doc/html/man7/ossl-guide-tls-client-non-block.html" => [ + "doc/man7/ossl-guide-tls-client-non-block.pod" + ], + "doc/html/man7/ossl-guide-tls-introduction.html" => [ + "doc/man7/ossl-guide-tls-introduction.pod" + ], + "doc/html/man7/ossl-guide-tls-server-block.html" => [ + "doc/man7/ossl-guide-tls-server-block.pod" + ], "doc/html/man7/ossl_store-file.html" => [ "doc/man7/ossl_store-file.pod" ], @@ -4270,6 +4932,9 @@ our %unified_info = ( "doc/html/man7/provider-signature.html" => [ "doc/man7/provider-signature.pod" ], + "doc/html/man7/provider-skeymgmt.html" => [ + "doc/man7/provider-skeymgmt.pod" + ], "doc/html/man7/provider-storemgmt.html" => [ "doc/man7/provider-storemgmt.pod" ], @@ -4279,9 +4944,6 @@ our %unified_info = ( "doc/html/man7/proxy-certificates.html" => [ "doc/man7/proxy-certificates.pod" ], - "doc/html/man7/ssl.html" => [ - "doc/man7/ssl.pod" - ], "doc/html/man7/x509.html" => [ "doc/man7/x509.pod" ], @@ -4429,6 +5091,9 @@ our %unified_info = ( "doc/man/man1/openssl-sess_id.1" => [ "doc/man1/openssl-sess_id.pod" ], + "doc/man/man1/openssl-skeyutl.1" => [ + "doc/man1/openssl-skeyutl.pod" + ], "doc/man/man1/openssl-smime.1" => [ "doc/man1/openssl-smime.pod" ], @@ -4570,6 +5235,9 @@ our %unified_info = ( "doc/man/man3/BIO_get_ex_new_index.3" => [ "doc/man3/BIO_get_ex_new_index.pod" ], + "doc/man/man3/BIO_get_rpoll_descriptor.3" => [ + "doc/man3/BIO_get_rpoll_descriptor.pod" + ], "doc/man/man3/BIO_meth_new.3" => [ "doc/man3/BIO_meth_new.pod" ], @@ -4606,6 +5274,9 @@ our %unified_info = ( "doc/man/man3/BIO_s_datagram.3" => [ "doc/man3/BIO_s_datagram.pod" ], + "doc/man/man3/BIO_s_dgram_pair.3" => [ + "doc/man3/BIO_s_dgram_pair.pod" + ], "doc/man/man3/BIO_s_fd.3" => [ "doc/man3/BIO_s_fd.pod" ], @@ -4621,6 +5292,9 @@ our %unified_info = ( "doc/man/man3/BIO_s_socket.3" => [ "doc/man3/BIO_s_socket.pod" ], + "doc/man/man3/BIO_sendmmsg.3" => [ + "doc/man3/BIO_sendmmsg.pod" + ], "doc/man/man3/BIO_set_callback.3" => [ "doc/man3/BIO_set_callback.pod" ], @@ -4693,6 +5367,9 @@ our %unified_info = ( "doc/man/man3/BUF_MEM_new.3" => [ "doc/man3/BUF_MEM_new.pod" ], + "doc/man/man3/CMAC_CTX.3" => [ + "doc/man3/CMAC_CTX.pod" + ], "doc/man/man3/CMS_EncryptedData_decrypt.3" => [ "doc/man3/CMS_EncryptedData_decrypt.pod" ], @@ -4759,6 +5436,9 @@ our %unified_info = ( "doc/man/man3/CMS_verify_receipt.3" => [ "doc/man3/CMS_verify_receipt.pod" ], + "doc/man/man3/COMP_CTX_new.3" => [ + "doc/man3/COMP_CTX_new.pod" + ], "doc/man/man3/CONF_modules_free.3" => [ "doc/man3/CONF_modules_free.pod" ], @@ -4858,6 +5538,12 @@ our %unified_info = ( "doc/man/man3/DTLS_set_timer_cb.3" => [ "doc/man3/DTLS_set_timer_cb.pod" ], + "doc/man/man3/DTLSv1_get_timeout.3" => [ + "doc/man3/DTLSv1_get_timeout.pod" + ], + "doc/man/man3/DTLSv1_handle_timeout.3" => [ + "doc/man3/DTLSv1_handle_timeout.pod" + ], "doc/man/man3/DTLSv1_listen.3" => [ "doc/man3/DTLSv1_listen.pod" ], @@ -4996,6 +5682,9 @@ our %unified_info = ( "doc/man/man3/EVP_PKEY_CTX_get0_pkey.3" => [ "doc/man3/EVP_PKEY_CTX_get0_pkey.pod" ], + "doc/man/man3/EVP_PKEY_CTX_get_algor.3" => [ + "doc/man3/EVP_PKEY_CTX_get_algor.pod" + ], "doc/man/man3/EVP_PKEY_CTX_new.3" => [ "doc/man3/EVP_PKEY_CTX_new.pod" ], @@ -5113,6 +5802,12 @@ our %unified_info = ( "doc/man/man3/EVP_SIGNATURE.3" => [ "doc/man3/EVP_SIGNATURE.pod" ], + "doc/man/man3/EVP_SKEY.3" => [ + "doc/man3/EVP_SKEY.pod" + ], + "doc/man/man3/EVP_SKEYMGMT.3" => [ + "doc/man3/EVP_SKEYMGMT.pod" + ], "doc/man/man3/EVP_SealInit.3" => [ "doc/man3/EVP_SealInit.pod" ], @@ -5200,6 +5895,9 @@ our %unified_info = ( "doc/man/man3/EVP_whirlpool.3" => [ "doc/man3/EVP_whirlpool.pod" ], + "doc/man/man3/GENERAL_NAME.3" => [ + "doc/man3/GENERAL_NAME.pod" + ], "doc/man/man3/HMAC.3" => [ "doc/man3/HMAC.pod" ], @@ -5272,9 +5970,15 @@ our %unified_info = ( "doc/man/man3/OPENSSL_load_builtin_modules.3" => [ "doc/man3/OPENSSL_load_builtin_modules.pod" ], + "doc/man/man3/OPENSSL_load_u16_le.3" => [ + "doc/man3/OPENSSL_load_u16_le.pod" + ], "doc/man/man3/OPENSSL_malloc.3" => [ "doc/man3/OPENSSL_malloc.pod" ], + "doc/man/man3/OPENSSL_riscvcap.3" => [ + "doc/man3/OPENSSL_riscvcap.pod" + ], "doc/man/man3/OPENSSL_s390xcap.3" => [ "doc/man3/OPENSSL_s390xcap.pod" ], @@ -5290,12 +5994,18 @@ our %unified_info = ( "doc/man/man3/OSSL_CALLBACK.3" => [ "doc/man3/OSSL_CALLBACK.pod" ], + "doc/man/man3/OSSL_CMP_ATAV_set0.3" => [ + "doc/man3/OSSL_CMP_ATAV_set0.pod" + ], "doc/man/man3/OSSL_CMP_CTX_new.3" => [ "doc/man3/OSSL_CMP_CTX_new.pod" ], "doc/man/man3/OSSL_CMP_HDR_get0_transactionID.3" => [ "doc/man3/OSSL_CMP_HDR_get0_transactionID.pod" ], + "doc/man/man3/OSSL_CMP_ITAV_new_caCerts.3" => [ + "doc/man3/OSSL_CMP_ITAV_new_caCerts.pod" + ], "doc/man/man3/OSSL_CMP_ITAV_set0.3" => [ "doc/man3/OSSL_CMP_ITAV_set0.pod" ], @@ -5365,9 +6075,18 @@ our %unified_info = ( "doc/man/man3/OSSL_ENCODER_to_bio.3" => [ "doc/man3/OSSL_ENCODER_to_bio.pod" ], + "doc/man/man3/OSSL_ERR_STATE_save.3" => [ + "doc/man3/OSSL_ERR_STATE_save.pod" + ], "doc/man/man3/OSSL_ESS_check_signing_certs.3" => [ "doc/man3/OSSL_ESS_check_signing_certs.pod" ], + "doc/man/man3/OSSL_GENERAL_NAMES_print.3" => [ + "doc/man3/OSSL_GENERAL_NAMES_print.pod" + ], + "doc/man/man3/OSSL_HPKE_CTX_new.3" => [ + "doc/man3/OSSL_HPKE_CTX_new.pod" + ], "doc/man/man3/OSSL_HTTP_REQ_CTX.3" => [ "doc/man3/OSSL_HTTP_REQ_CTX.pod" ], @@ -5377,12 +6096,24 @@ our %unified_info = ( "doc/man/man3/OSSL_HTTP_transfer.3" => [ "doc/man3/OSSL_HTTP_transfer.pod" ], + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX.3" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX.pod" + ], + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX_print.3" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX_print.pod" + ], + "doc/man/man3/OSSL_INDICATOR_set_callback.3" => [ + "doc/man3/OSSL_INDICATOR_set_callback.pod" + ], "doc/man/man3/OSSL_ITEM.3" => [ "doc/man3/OSSL_ITEM.pod" ], "doc/man/man3/OSSL_LIB_CTX.3" => [ "doc/man3/OSSL_LIB_CTX.pod" ], + "doc/man/man3/OSSL_LIB_CTX_set_conf_diagnostics.3" => [ + "doc/man3/OSSL_LIB_CTX_set_conf_diagnostics.pod" + ], "doc/man/man3/OSSL_PARAM.3" => [ "doc/man3/OSSL_PARAM.pod" ], @@ -5398,9 +6129,15 @@ our %unified_info = ( "doc/man/man3/OSSL_PARAM_int.3" => [ "doc/man3/OSSL_PARAM_int.pod" ], + "doc/man/man3/OSSL_PARAM_print_to_bio.3" => [ + "doc/man3/OSSL_PARAM_print_to_bio.pod" + ], "doc/man/man3/OSSL_PROVIDER.3" => [ "doc/man3/OSSL_PROVIDER.pod" ], + "doc/man/man3/OSSL_QUIC_client_method.3" => [ + "doc/man3/OSSL_QUIC_client_method.pod" + ], "doc/man/man3/OSSL_SELF_TEST_new.3" => [ "doc/man3/OSSL_SELF_TEST_new.pod" ], @@ -5425,6 +6162,9 @@ our %unified_info = ( "doc/man/man3/OSSL_STORE_open.3" => [ "doc/man3/OSSL_STORE_open.pod" ], + "doc/man/man3/OSSL_sleep.3" => [ + "doc/man3/OSSL_sleep.pod" + ], "doc/man/man3/OSSL_trace_enabled.3" => [ "doc/man3/OSSL_trace_enabled.pod" ], @@ -5440,6 +6180,9 @@ our %unified_info = ( "doc/man/man3/OpenSSL_version.3" => [ "doc/man3/OpenSSL_version.pod" ], + "doc/man/man3/PBMAC1_get1_pbkdf2_param.3" => [ + "doc/man3/PBMAC1_get1_pbkdf2_param.pod" + ], "doc/man/man3/PEM_X509_INFO_read_bio_ex.3" => [ "doc/man3/PEM_X509_INFO_read_bio_ex.pod" ], @@ -5476,6 +6219,9 @@ our %unified_info = ( "doc/man/man3/PKCS12_SAFEBAG_get1_cert.3" => [ "doc/man3/PKCS12_SAFEBAG_get1_cert.pod" ], + "doc/man/man3/PKCS12_SAFEBAG_set0_attrs.3" => [ + "doc/man3/PKCS12_SAFEBAG_set0_attrs.pod" + ], "doc/man/man3/PKCS12_add1_attr_by_NID.3" => [ "doc/man3/PKCS12_add1_attr_by_NID.pod" ], @@ -5749,6 +6495,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set0_CA_list.3" => [ "doc/man3/SSL_CTX_set0_CA_list.pod" ], + "doc/man/man3/SSL_CTX_set1_cert_comp_preference.3" => [ + "doc/man3/SSL_CTX_set1_cert_comp_preference.pod" + ], "doc/man/man3/SSL_CTX_set1_curves.3" => [ "doc/man3/SSL_CTX_set1_curves.pod" ], @@ -5788,6 +6537,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_default_passwd_cb.3" => [ "doc/man3/SSL_CTX_set_default_passwd_cb.pod" ], + "doc/man/man3/SSL_CTX_set_domain_flags.3" => [ + "doc/man3/SSL_CTX_set_domain_flags.pod" + ], "doc/man/man3/SSL_CTX_set_generate_session_id.3" => [ "doc/man3/SSL_CTX_set_generate_session_id.pod" ], @@ -5809,6 +6561,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_msg_callback.3" => [ "doc/man3/SSL_CTX_set_msg_callback.pod" ], + "doc/man/man3/SSL_CTX_set_new_pending_conn_cb.3" => [ + "doc/man3/SSL_CTX_set_new_pending_conn_cb.pod" + ], "doc/man/man3/SSL_CTX_set_num_tickets.3" => [ "doc/man3/SSL_CTX_set_num_tickets.pod" ], @@ -5923,6 +6678,9 @@ our %unified_info = ( "doc/man/man3/SSL_accept.3" => [ "doc/man3/SSL_accept.pod" ], + "doc/man/man3/SSL_accept_stream.3" => [ + "doc/man3/SSL_accept_stream.pod" + ], "doc/man/man3/SSL_alert_type_string.3" => [ "doc/man3/SSL_alert_type_string.pod" ], @@ -5950,9 +6708,21 @@ our %unified_info = ( "doc/man/man3/SSL_free.3" => [ "doc/man3/SSL_free.pod" ], + "doc/man/man3/SSL_get0_connection.3" => [ + "doc/man3/SSL_get0_connection.pod" + ], + "doc/man/man3/SSL_get0_group_name.3" => [ + "doc/man3/SSL_get0_group_name.pod" + ], + "doc/man/man3/SSL_get0_peer_rpk.3" => [ + "doc/man3/SSL_get0_peer_rpk.pod" + ], "doc/man/man3/SSL_get0_peer_scts.3" => [ "doc/man3/SSL_get0_peer_scts.pod" ], + "doc/man/man3/SSL_get1_builtin_sigalgs.3" => [ + "doc/man3/SSL_get1_builtin_sigalgs.pod" + ], "doc/man/man3/SSL_get_SSL_CTX.3" => [ "doc/man3/SSL_get_SSL_CTX.pod" ], @@ -5968,6 +6738,9 @@ our %unified_info = ( "doc/man/man3/SSL_get_client_random.3" => [ "doc/man3/SSL_get_client_random.pod" ], + "doc/man/man3/SSL_get_conn_close_info.3" => [ + "doc/man3/SSL_get_conn_close_info.pod" + ], "doc/man/man3/SSL_get_current_cipher.3" => [ "doc/man3/SSL_get_current_cipher.pod" ], @@ -5977,12 +6750,18 @@ our %unified_info = ( "doc/man/man3/SSL_get_error.3" => [ "doc/man3/SSL_get_error.pod" ], + "doc/man/man3/SSL_get_event_timeout.3" => [ + "doc/man3/SSL_get_event_timeout.pod" + ], "doc/man/man3/SSL_get_extms_support.3" => [ "doc/man3/SSL_get_extms_support.pod" ], "doc/man/man3/SSL_get_fd.3" => [ "doc/man3/SSL_get_fd.pod" ], + "doc/man/man3/SSL_get_handshake_rtt.3" => [ + "doc/man3/SSL_get_handshake_rtt.pod" + ], "doc/man/man3/SSL_get_peer_cert_chain.3" => [ "doc/man3/SSL_get_peer_cert_chain.pod" ], @@ -6001,12 +6780,24 @@ our %unified_info = ( "doc/man/man3/SSL_get_rbio.3" => [ "doc/man3/SSL_get_rbio.pod" ], + "doc/man/man3/SSL_get_rpoll_descriptor.3" => [ + "doc/man3/SSL_get_rpoll_descriptor.pod" + ], "doc/man/man3/SSL_get_session.3" => [ "doc/man3/SSL_get_session.pod" ], "doc/man/man3/SSL_get_shared_sigalgs.3" => [ "doc/man3/SSL_get_shared_sigalgs.pod" ], + "doc/man/man3/SSL_get_stream_id.3" => [ + "doc/man3/SSL_get_stream_id.pod" + ], + "doc/man/man3/SSL_get_stream_read_state.3" => [ + "doc/man3/SSL_get_stream_read_state.pod" + ], + "doc/man/man3/SSL_get_value_uint.3" => [ + "doc/man3/SSL_get_value_uint.pod" + ], "doc/man/man3/SSL_get_verify_result.3" => [ "doc/man3/SSL_get_verify_result.pod" ], @@ -6016,9 +6807,15 @@ our %unified_info = ( "doc/man/man3/SSL_group_to_name.3" => [ "doc/man3/SSL_group_to_name.pod" ], + "doc/man/man3/SSL_handle_events.3" => [ + "doc/man3/SSL_handle_events.pod" + ], "doc/man/man3/SSL_in_init.3" => [ "doc/man3/SSL_in_init.pod" ], + "doc/man/man3/SSL_inject_net_dgram.3" => [ + "doc/man3/SSL_inject_net_dgram.pod" + ], "doc/man/man3/SSL_key_update.3" => [ "doc/man3/SSL_key_update.pod" ], @@ -6031,9 +6828,21 @@ our %unified_info = ( "doc/man/man3/SSL_new.3" => [ "doc/man3/SSL_new.pod" ], + "doc/man/man3/SSL_new_domain.3" => [ + "doc/man3/SSL_new_domain.pod" + ], + "doc/man/man3/SSL_new_listener.3" => [ + "doc/man3/SSL_new_listener.pod" + ], + "doc/man/man3/SSL_new_stream.3" => [ + "doc/man3/SSL_new_stream.pod" + ], "doc/man/man3/SSL_pending.3" => [ "doc/man3/SSL_pending.pod" ], + "doc/man/man3/SSL_poll.3" => [ + "doc/man3/SSL_poll.pod" + ], "doc/man/man3/SSL_read.3" => [ "doc/man3/SSL_read.pod" ], @@ -6049,24 +6858,45 @@ our %unified_info = ( "doc/man/man3/SSL_set1_host.3" => [ "doc/man3/SSL_set1_host.pod" ], + "doc/man/man3/SSL_set1_initial_peer_addr.3" => [ + "doc/man3/SSL_set1_initial_peer_addr.pod" + ], + "doc/man/man3/SSL_set1_server_cert_type.3" => [ + "doc/man3/SSL_set1_server_cert_type.pod" + ], "doc/man/man3/SSL_set_async_callback.3" => [ "doc/man3/SSL_set_async_callback.pod" ], "doc/man/man3/SSL_set_bio.3" => [ "doc/man3/SSL_set_bio.pod" ], + "doc/man/man3/SSL_set_blocking_mode.3" => [ + "doc/man3/SSL_set_blocking_mode.pod" + ], "doc/man/man3/SSL_set_connect_state.3" => [ "doc/man3/SSL_set_connect_state.pod" ], + "doc/man/man3/SSL_set_default_stream_mode.3" => [ + "doc/man3/SSL_set_default_stream_mode.pod" + ], "doc/man/man3/SSL_set_fd.3" => [ "doc/man3/SSL_set_fd.pod" ], + "doc/man/man3/SSL_set_incoming_stream_policy.3" => [ + "doc/man3/SSL_set_incoming_stream_policy.pod" + ], + "doc/man/man3/SSL_set_quic_tls_cbs.3" => [ + "doc/man3/SSL_set_quic_tls_cbs.pod" + ], "doc/man/man3/SSL_set_retry_verify.3" => [ "doc/man3/SSL_set_retry_verify.pod" ], "doc/man/man3/SSL_set_session.3" => [ "doc/man3/SSL_set_session.pod" ], + "doc/man/man3/SSL_set_session_secret_cb.3" => [ + "doc/man3/SSL_set_session_secret_cb.pod" + ], "doc/man/man3/SSL_set_shutdown.3" => [ "doc/man3/SSL_set_shutdown.pod" ], @@ -6079,6 +6909,12 @@ our %unified_info = ( "doc/man/man3/SSL_state_string.3" => [ "doc/man3/SSL_state_string.pod" ], + "doc/man/man3/SSL_stream_conclude.3" => [ + "doc/man3/SSL_stream_conclude.pod" + ], + "doc/man/man3/SSL_stream_reset.3" => [ + "doc/man3/SSL_stream_reset.pod" + ], "doc/man/man3/SSL_want.3" => [ "doc/man3/SSL_want.pod" ], @@ -6088,8 +6924,8 @@ our %unified_info = ( "doc/man/man3/TS_RESP_CTX_new.3" => [ "doc/man3/TS_RESP_CTX_new.pod" ], - "doc/man/man3/TS_VERIFY_CTX_set_certs.3" => [ - "doc/man3/TS_VERIFY_CTX_set_certs.pod" + "doc/man/man3/TS_VERIFY_CTX.3" => [ + "doc/man3/TS_VERIFY_CTX.pod" ], "doc/man/man3/UI_STRING.3" => [ "doc/man3/UI_STRING.pod" @@ -6109,6 +6945,21 @@ our %unified_info = ( "doc/man/man3/X509V3_set_ctx.3" => [ "doc/man3/X509V3_set_ctx.pod" ], + "doc/man/man3/X509_ACERT_add1_attr.3" => [ + "doc/man3/X509_ACERT_add1_attr.pod" + ], + "doc/man/man3/X509_ACERT_add_attr_nconf.3" => [ + "doc/man3/X509_ACERT_add_attr_nconf.pod" + ], + "doc/man/man3/X509_ACERT_get0_holder_baseCertId.3" => [ + "doc/man3/X509_ACERT_get0_holder_baseCertId.pod" + ], + "doc/man/man3/X509_ACERT_get_attr.3" => [ + "doc/man3/X509_ACERT_get_attr.pod" + ], + "doc/man/man3/X509_ACERT_print_ex.3" => [ + "doc/man3/X509_ACERT_print_ex.pod" + ], "doc/man/man3/X509_ALGOR_dup.3" => [ "doc/man3/X509_ALGOR_dup.pod" ], @@ -6157,6 +7008,9 @@ our %unified_info = ( "doc/man/man3/X509_SIG_get0.3" => [ "doc/man3/X509_SIG_get0.pod" ], + "doc/man/man3/X509_STORE_CTX_get_by_subject.3" => [ + "doc/man3/X509_STORE_CTX_get_by_subject.pod" + ], "doc/man/man3/X509_STORE_CTX_get_error.3" => [ "doc/man3/X509_STORE_CTX_get_error.pod" ], @@ -6223,6 +7077,9 @@ our %unified_info = ( "doc/man/man3/X509_get0_uids.3" => [ "doc/man3/X509_get0_uids.pod" ], + "doc/man/man3/X509_get_default_cert_file.3" => [ + "doc/man3/X509_get_default_cert_file.pod" + ], "doc/man/man3/X509_get_extension_flags.3" => [ "doc/man3/X509_get_extension_flags.pod" ], @@ -6346,9 +7203,15 @@ our %unified_info = ( "doc/man/man7/EVP_CIPHER-SM4.7" => [ "doc/man7/EVP_CIPHER-SM4.pod" ], + "doc/man/man7/EVP_KDF-ARGON2.7" => [ + "doc/man7/EVP_KDF-ARGON2.pod" + ], "doc/man/man7/EVP_KDF-HKDF.7" => [ "doc/man7/EVP_KDF-HKDF.pod" ], + "doc/man/man7/EVP_KDF-HMAC-DRBG.7" => [ + "doc/man7/EVP_KDF-HMAC-DRBG.pod" + ], "doc/man/man7/EVP_KDF-KB.7" => [ "doc/man7/EVP_KDF-KB.pod" ], @@ -6364,6 +7227,9 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-PKCS12KDF.7" => [ "doc/man7/EVP_KDF-PKCS12KDF.pod" ], + "doc/man/man7/EVP_KDF-PVKKDF.7" => [ + "doc/man7/EVP_KDF-PVKKDF.pod" + ], "doc/man/man7/EVP_KDF-SCRYPT.7" => [ "doc/man7/EVP_KDF-SCRYPT.pod" ], @@ -6388,9 +7254,18 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-X963.7" => [ "doc/man7/EVP_KDF-X963.pod" ], + "doc/man/man7/EVP_KEM-EC.7" => [ + "doc/man7/EVP_KEM-EC.pod" + ], + "doc/man/man7/EVP_KEM-ML-KEM.7" => [ + "doc/man7/EVP_KEM-ML-KEM.pod" + ], "doc/man/man7/EVP_KEM-RSA.7" => [ "doc/man7/EVP_KEM-RSA.pod" ], + "doc/man/man7/EVP_KEM-X25519.7" => [ + "doc/man7/EVP_KEM-X25519.pod" + ], "doc/man/man7/EVP_KEYEXCH-DH.7" => [ "doc/man7/EVP_KEYEXCH-DH.pod" ], @@ -6424,6 +7299,9 @@ our %unified_info = ( "doc/man/man7/EVP_MD-BLAKE2.7" => [ "doc/man7/EVP_MD-BLAKE2.pod" ], + "doc/man/man7/EVP_MD-KECCAK.7" => [ + "doc/man7/EVP_MD-KECCAK.pod" + ], "doc/man/man7/EVP_MD-MD2.7" => [ "doc/man7/EVP_MD-MD2.pod" ], @@ -6481,15 +7359,27 @@ our %unified_info = ( "doc/man/man7/EVP_PKEY-HMAC.7" => [ "doc/man7/EVP_PKEY-HMAC.pod" ], + "doc/man/man7/EVP_PKEY-ML-DSA.7" => [ + "doc/man7/EVP_PKEY-ML-DSA.pod" + ], + "doc/man/man7/EVP_PKEY-ML-KEM.7" => [ + "doc/man7/EVP_PKEY-ML-KEM.pod" + ], "doc/man/man7/EVP_PKEY-RSA.7" => [ "doc/man7/EVP_PKEY-RSA.pod" ], + "doc/man/man7/EVP_PKEY-SLH-DSA.7" => [ + "doc/man7/EVP_PKEY-SLH-DSA.pod" + ], "doc/man/man7/EVP_PKEY-SM2.7" => [ "doc/man7/EVP_PKEY-SM2.pod" ], "doc/man/man7/EVP_PKEY-X25519.7" => [ "doc/man7/EVP_PKEY-X25519.pod" ], + "doc/man/man7/EVP_RAND-CRNG-TEST.7" => [ + "doc/man7/EVP_RAND-CRNG-TEST.pod" + ], "doc/man/man7/EVP_RAND-CTR-DRBG.7" => [ "doc/man7/EVP_RAND-CTR-DRBG.pod" ], @@ -6499,6 +7389,9 @@ our %unified_info = ( "doc/man/man7/EVP_RAND-HMAC-DRBG.7" => [ "doc/man7/EVP_RAND-HMAC-DRBG.pod" ], + "doc/man/man7/EVP_RAND-JITTER.7" => [ + "doc/man7/EVP_RAND-JITTER.pod" + ], "doc/man/man7/EVP_RAND-SEED-SRC.7" => [ "doc/man7/EVP_RAND-SEED-SRC.pod" ], @@ -6520,9 +7413,15 @@ our %unified_info = ( "doc/man/man7/EVP_SIGNATURE-HMAC.7" => [ "doc/man7/EVP_SIGNATURE-HMAC.pod" ], + "doc/man/man7/EVP_SIGNATURE-ML-DSA.7" => [ + "doc/man7/EVP_SIGNATURE-ML-DSA.pod" + ], "doc/man/man7/EVP_SIGNATURE-RSA.7" => [ "doc/man7/EVP_SIGNATURE-RSA.pod" ], + "doc/man/man7/EVP_SIGNATURE-SLH-DSA.7" => [ + "doc/man7/EVP_SIGNATURE-SLH-DSA.pod" + ], "doc/man/man7/OSSL_PROVIDER-FIPS.7" => [ "doc/man7/OSSL_PROVIDER-FIPS.pod" ], @@ -6538,6 +7437,9 @@ our %unified_info = ( "doc/man/man7/OSSL_PROVIDER-null.7" => [ "doc/man7/OSSL_PROVIDER-null.pod" ], + "doc/man/man7/OSSL_STORE-winstore.7" => [ + "doc/man7/OSSL_STORE-winstore.pod" + ], "doc/man/man7/RAND.7" => [ "doc/man7/RAND.pod" ], @@ -6550,9 +7452,6 @@ our %unified_info = ( "doc/man/man7/bio.7" => [ "doc/man7/bio.pod" ], - "doc/man/man7/crypto.7" => [ - "doc/man7/crypto.pod" - ], "doc/man/man7/ct.7" => [ "doc/man7/ct.pod" ], @@ -6583,9 +7482,6 @@ our %unified_info = ( "doc/man/man7/life_cycle-rand.7" => [ "doc/man7/life_cycle-rand.pod" ], - "doc/man/man7/migration_guide.7" => [ - "doc/man7/migration_guide.pod" - ], "doc/man/man7/openssl-core.h.7" => [ "doc/man7/openssl-core.h.pod" ], @@ -6601,12 +7497,66 @@ our %unified_info = ( "doc/man/man7/openssl-glossary.7" => [ "doc/man7/openssl-glossary.pod" ], + "doc/man/man7/openssl-qlog.7" => [ + "doc/man7/openssl-qlog.pod" + ], + "doc/man/man7/openssl-quic-concurrency.7" => [ + "doc/man7/openssl-quic-concurrency.pod" + ], + "doc/man/man7/openssl-quic.7" => [ + "doc/man7/openssl-quic.pod" + ], "doc/man/man7/openssl-threads.7" => [ "doc/man7/openssl-threads.pod" ], "doc/man/man7/openssl_user_macros.7" => [ "doc/man7/openssl_user_macros.pod" ], + "doc/man/man7/ossl-guide-introduction.7" => [ + "doc/man7/ossl-guide-introduction.pod" + ], + "doc/man/man7/ossl-guide-libcrypto-introduction.7" => [ + "doc/man7/ossl-guide-libcrypto-introduction.pod" + ], + "doc/man/man7/ossl-guide-libraries-introduction.7" => [ + "doc/man7/ossl-guide-libraries-introduction.pod" + ], + "doc/man/man7/ossl-guide-libssl-introduction.7" => [ + "doc/man7/ossl-guide-libssl-introduction.pod" + ], + "doc/man/man7/ossl-guide-migration.7" => [ + "doc/man7/ossl-guide-migration.pod" + ], + "doc/man/man7/ossl-guide-quic-client-block.7" => [ + "doc/man7/ossl-guide-quic-client-block.pod" + ], + "doc/man/man7/ossl-guide-quic-client-non-block.7" => [ + "doc/man7/ossl-guide-quic-client-non-block.pod" + ], + "doc/man/man7/ossl-guide-quic-introduction.7" => [ + "doc/man7/ossl-guide-quic-introduction.pod" + ], + "doc/man/man7/ossl-guide-quic-multi-stream.7" => [ + "doc/man7/ossl-guide-quic-multi-stream.pod" + ], + "doc/man/man7/ossl-guide-quic-server-block.7" => [ + "doc/man7/ossl-guide-quic-server-block.pod" + ], + "doc/man/man7/ossl-guide-quic-server-non-block.7" => [ + "doc/man7/ossl-guide-quic-server-non-block.pod" + ], + "doc/man/man7/ossl-guide-tls-client-block.7" => [ + "doc/man7/ossl-guide-tls-client-block.pod" + ], + "doc/man/man7/ossl-guide-tls-client-non-block.7" => [ + "doc/man7/ossl-guide-tls-client-non-block.pod" + ], + "doc/man/man7/ossl-guide-tls-introduction.7" => [ + "doc/man7/ossl-guide-tls-introduction.pod" + ], + "doc/man/man7/ossl-guide-tls-server-block.7" => [ + "doc/man7/ossl-guide-tls-server-block.pod" + ], "doc/man/man7/ossl_store-file.7" => [ "doc/man7/ossl_store-file.pod" ], @@ -6661,6 +7611,9 @@ our %unified_info = ( "doc/man/man7/provider-signature.7" => [ "doc/man7/provider-signature.pod" ], + "doc/man/man7/provider-skeymgmt.7" => [ + "doc/man7/provider-skeymgmt.pod" + ], "doc/man/man7/provider-storemgmt.7" => [ "doc/man7/provider-storemgmt.pod" ], @@ -6670,9 +7623,6 @@ our %unified_info = ( "doc/man/man7/proxy-certificates.7" => [ "doc/man7/proxy-certificates.pod" ], - "doc/man/man7/ssl.7" => [ - "doc/man7/ssl.pod" - ], "doc/man/man7/x509.7" => [ "doc/man7/x509.pod" ], @@ -6852,6 +7802,10 @@ our %unified_info = ( "doc/man1/openssl-sess_id.pod.in", "doc/perlvars.pm" ], + "doc/man1/openssl-skeyutl.pod" => [ + "doc/man1/openssl-skeyutl.pod.in", + "doc/perlvars.pm" + ], "doc/man1/openssl-smime.pod" => [ "doc/man1/openssl-smime.pod.in", "doc/perlvars.pm" @@ -6891,6 +7845,27 @@ our %unified_info = ( "doc/man7/openssl_user_macros.pod" => [ "doc/man7/openssl_user_macros.pod.in" ], + "exporters/OpenSSLConfig.cmake" => [ + "installdata.pm" + ], + "exporters/OpenSSLConfigVersion.cmake" => [ + "exporters/OpenSSLConfig.cmake", + "installdata.pm" + ], + "exporters/libcrypto.pc" => [ + "installdata.pm" + ], + "exporters/libssl.pc" => [ + "installdata.pm" + ], + "exporters/openssl.pc" => [ + "exporters/libcrypto.pc", + "exporters/libssl.pc", + "installdata.pm" + ], + "fuzz/acert-test" => [ + "libcrypto" + ], "fuzz/asn1-test" => [ "libcrypto", "libssl" @@ -6923,16 +7898,92 @@ our %unified_info = ( "fuzz/ct-test" => [ "libcrypto" ], + "fuzz/decoder-test" => [ + "libcrypto" + ], + "fuzz/dtlsclient-test" => [ + "libcrypto", + "libssl" + ], + "fuzz/dtlsserver-test" => [ + "libcrypto", + "libssl" + ], + "fuzz/hashtable-test" => [ + "libcrypto.a" + ], + "fuzz/ml-dsa-test" => [ + "libcrypto.a" + ], + "fuzz/ml-kem-test" => [ + "libcrypto.a" + ], + "fuzz/pem-test" => [ + "libcrypto.a" + ], + "fuzz/provider-test" => [ + "libcrypto" + ], + "fuzz/punycode-test" => [ + "libcrypto.a" + ], + "fuzz/quic-client-test" => [ + "libcrypto.a", + "libssl.a" + ], + "fuzz/quic-lcidm-test" => [ + "libcrypto.a", + "libssl.a" + ], + "fuzz/quic-rcidm-test" => [ + "libcrypto.a", + "libssl.a" + ], + "fuzz/quic-server-test" => [ + "libcrypto.a", + "libssl.a" + ], + "fuzz/quic-srtm-test" => [ + "libcrypto.a", + "libssl.a" + ], "fuzz/server-test" => [ "libcrypto", "libssl" ], + "fuzz/slh-dsa-test" => [ + "libcrypto.a" + ], + "fuzz/smime-test" => [ + "libcrypto", + "libssl" + ], + "fuzz/v3name-test" => [ + "libcrypto.a" + ], "fuzz/x509-test" => [ "libcrypto" ], + "include/internal/param_names.h" => [ + "util/perl|OpenSSL/paramnames.pm" + ], + "include/openssl/core_names.h" => [ + "util/perl|OpenSSL/paramnames.pm" + ], + "libcrypto.pc" => [ + "builddata.pm" + ], "libssl" => [ "libcrypto" ], + "libssl.pc" => [ + "builddata.pm" + ], + "openssl.pc" => [ + "builddata.pm", + "libcrypto.pc", + "libssl.pc" + ], "providers/common/der/der_digests_gen.c" => [ "providers/common/der/DIGESTS.asn1", "providers/common/der/NIST.asn1", @@ -6950,11 +8001,19 @@ our %unified_info = ( "providers/common/der/ECX.asn1", "providers/common/der/oids_to_c.pm" ], + "providers/common/der/der_ml_dsa_gen.c" => [ + "providers/common/der/ML_DSA.asn1", + "providers/common/der/oids_to_c.pm" + ], "providers/common/der/der_rsa_gen.c" => [ "providers/common/der/NIST.asn1", "providers/common/der/RSA.asn1", "providers/common/der/oids_to_c.pm" ], + "providers/common/der/der_slh_dsa_gen.c" => [ + "providers/common/der/SLH_DSA.asn1", + "providers/common/der/oids_to_c.pm" + ], "providers/common/der/der_sm2_gen.c" => [ "providers/common/der/SM2.asn1", "providers/common/der/oids_to_c.pm" @@ -6994,6 +8053,12 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ecx_key.o" => [ "providers/common/include/prov/der_ecx.h" ], + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o" => [ + "providers/common/include/prov/der_ml_dsa.h" + ], + "providers/common/der/libcommon-lib-der_ml_dsa_key.o" => [ + "providers/common/include/prov/der_ml_dsa.h" + ], "providers/common/der/libcommon-lib-der_rsa_gen.o" => [ "providers/common/include/prov/der_rsa.h" ], @@ -7001,6 +8066,12 @@ our %unified_info = ( "providers/common/include/prov/der_digests.h", "providers/common/include/prov/der_rsa.h" ], + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o" => [ + "providers/common/include/prov/der_slh_dsa.h" + ], + "providers/common/der/libcommon-lib-der_slh_dsa_key.o" => [ + "providers/common/include/prov/der_slh_dsa.h" + ], "providers/common/der/libcommon-lib-der_wrap_gen.o" => [ "providers/common/include/prov/der_wrap.h" ], @@ -7040,11 +8111,19 @@ our %unified_info = ( "providers/common/der/ECX.asn1", "providers/common/der/oids_to_c.pm" ], + "providers/common/include/prov/der_ml_dsa.h" => [ + "providers/common/der/ML_DSA.asn1", + "providers/common/der/oids_to_c.pm" + ], "providers/common/include/prov/der_rsa.h" => [ "providers/common/der/NIST.asn1", "providers/common/der/RSA.asn1", "providers/common/der/oids_to_c.pm" ], + "providers/common/include/prov/der_slh_dsa.h" => [ + "providers/common/der/SLH_DSA.asn1", + "providers/common/der/oids_to_c.pm" + ], "providers/common/include/prov/der_sm2.h" => [ "providers/common/der/SM2.asn1", "providers/common/der/oids_to_c.pm" @@ -7077,9 +8156,15 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-eddsa_sig.o" => [ "providers/common/include/prov/der_ecx.h" ], + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o" => [ + "providers/common/include/prov/der_ml_dsa.h" + ], "providers/implementations/signature/libdefault-lib-rsa_sig.o" => [ "providers/common/include/prov/der_rsa.h" ], + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o" => [ + "providers/common/include/prov/der_slh_dsa.h" + ], "providers/implementations/signature/libdefault-lib-sm2_sig.o" => [ "providers/common/include/prov/der_sm2.h" ], @@ -7092,9 +8177,15 @@ our %unified_info = ( "providers/implementations/signature/libfips-lib-eddsa_sig.o" => [ "providers/common/include/prov/der_ecx.h" ], + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o" => [ + "providers/common/include/prov/der_ml_dsa.h" + ], "providers/implementations/signature/libfips-lib-rsa_sig.o" => [ "providers/common/include/prov/der_rsa.h" ], + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o" => [ + "providers/common/include/prov/der_slh_dsa.h" + ], "providers/legacy" => [ "libcrypto", "providers/liblegacy.a" @@ -7172,6 +8263,14 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/bio_addr_test" => [ + "libcrypto", + "test/libtestutil.a" + ], + "test/bio_base64_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/bio_callback_test" => [ "libcrypto", "test/libtestutil.a" @@ -7180,6 +8279,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/bio_dgram_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/bio_enc_test" => [ "libcrypto", "test/libtestutil.a" @@ -7188,6 +8291,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/bio_meth_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/bio_prefix_text" => [ "libcrypto", "test/libtestutil.a" @@ -7200,6 +8307,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/bio_tfo_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/bioprinttest" => [ "libcrypto", "test/libtestutil.a" @@ -7212,6 +8323,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/build_wincrypt_test" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_aes" => [ "libcrypto", "libssl" @@ -7232,6 +8347,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_byteorder" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_camellia" => [ "libcrypto", "libssl" @@ -7264,10 +8383,6 @@ our %unified_info = ( "libcrypto", "libssl" ], - "test/buildtest_c_core_names" => [ - "libcrypto", - "libssl" - ], "test/buildtest_c_core_object" => [ "libcrypto", "libssl" @@ -7300,6 +8415,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_e_ostime" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_ebcdic" => [ "libcrypto", "libssl" @@ -7336,6 +8455,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_hpke" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_http" => [ "libcrypto", "libssl" @@ -7344,6 +8467,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_indicator" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_kdf" => [ "libcrypto", "libssl" @@ -7364,6 +8491,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_ml_kem" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_modes" => [ "libcrypto", "libssl" @@ -7404,6 +8535,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_quic" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_rand" => [ "libcrypto", "libssl" @@ -7460,6 +8595,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_thread" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_tls1" => [ "libcrypto", "libssl" @@ -7480,10 +8619,23 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/byteorder_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], + "test/ca_internals_test" => [ + "libssl", + "test/libtestutil.a" + ], "test/casttest" => [ "libcrypto", "test/libtestutil.a" ], + "test/cert_comp_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], "test/chacha_internal_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -7597,7 +8749,11 @@ our %unified_info = ( "libssl", "test/libtestutil.a" ], - "test/defltfips_test" => [ + "test/decoder_propq_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], + "test/defltfips_test" => [ "libcrypto", "test/libtestutil.a" ], @@ -7653,6 +8809,8 @@ our %unified_info = ( ], "test/endecode_test" => [ "libcrypto.a", + "providers/libcommon.a", + "providers/liblegacy.a", "test/libtestutil.a" ], "test/endecoder_legacy_test" => [ @@ -7696,6 +8854,10 @@ our %unified_info = ( "test/evp_pkey_ctx_new_from_name" => [ "libcrypto" ], + "test/evp_pkey_dhkem_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/evp_pkey_dparams_test" => [ "libcrypto", "test/libtestutil.a" @@ -7704,10 +8866,18 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/evp_skey_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/evp_test" => [ "libcrypto", "test/libtestutil.a" ], + "test/evp_xof_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/exdatatest" => [ "libcrypto", "test/libtestutil.a" @@ -7746,6 +8916,10 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/hpke_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/http_test" => [ "libcrypto", "test/libtestutil.a" @@ -7758,17 +8932,25 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/json_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], "test/keymgmt_internal_test" => [ "libcrypto.a", "test/libtestutil.a" ], "test/lhash_test" => [ - "libcrypto", + "libcrypto.a", "test/libtestutil.a" ], "test/libtestutil.a" => [ "libcrypto" ], + "test/list_test" => [ + "test/libtestutil.a" + ], "test/localetest" => [ "libcrypto", "test/libtestutil.a" @@ -7781,10 +8963,26 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/membio_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/memleaktest" => [ "libcrypto", "test/libtestutil.a" ], + "test/ml_dsa_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], + "test/ml_kem_evp_extra_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], + "test/ml_kem_internal_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/modes_internal_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -7809,6 +9007,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/pairwise_fail_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/param_build_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -7841,6 +9043,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/pkcs12_api_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/pkcs12_format_test" => [ "libcrypto", "test/libtestutil.a" @@ -7861,6 +9067,11 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/priority_queue_test" => [ + "libcrypto", + "libssl.a", + "test/libtestutil.a" + ], "test/property_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -7873,6 +9084,10 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/provider_default_search_path_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/provider_fallback_test" => [ "libcrypto", "test/libtestutil.a" @@ -7897,12 +9112,122 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/quic_ackm_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_cc_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_cfq_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_client_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_fc_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_fifd_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_lcidm_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_multistream_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_newcid_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_qlog_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_radix_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_rcidm_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_record_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_srt_gen_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_srtm_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_stream_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_tserver_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_txp_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_txpim_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_wire_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quicapitest" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quicfaultstest" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], "test/rand_status_test" => [ "libcrypto", "test/libtestutil.a" ], "test/rand_test" => [ - "libcrypto", + "libcrypto.a", "test/libtestutil.a" ], "test/rc2test" => [ @@ -7917,7 +9242,7 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], - "test/rdrand_sanitytest" => [ + "test/rdcpu_sanitytest" => [ "libcrypto.a", "test/libtestutil.a" ], @@ -7926,6 +9251,11 @@ our %unified_info = ( "libssl", "test/libtestutil.a" ], + "test/rpktest" => [ + "libcrypto", + "libssl", + "test/libtestutil.a" + ], "test/rsa_mp_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -7938,10 +9268,18 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], - "test/sanitytest" => [ + "test/rsa_x931_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], + "test/safe_math_test" => [ "libcrypto", "test/libtestutil.a" ], + "test/sanitytest" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/secmemtest" => [ "libcrypto", "test/libtestutil.a" @@ -7959,6 +9297,10 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/slh_dsa_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/sm2_internal_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -7988,6 +9330,11 @@ our %unified_info = ( "libssl", "test/libtestutil.a" ], + "test/ssl_handshake_rtt_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], "test/ssl_old_test" => [ "libcrypto.a", "libssl.a", @@ -8004,8 +9351,8 @@ our %unified_info = ( "test/libtestutil.a" ], "test/sslapitest" => [ - "libcrypto", - "libssl", + "libcrypto.a", + "libssl.a", "test/libtestutil.a" ], "test/sslbuffertest" => [ @@ -8022,6 +9369,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/strtoultest" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/sysdefaulttest" => [ "libcrypto", "libssl", @@ -8031,8 +9382,12 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/threadpool_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/threadstest" => [ - "libcrypto", + "libcrypto.a", "test/libtestutil.a" ], "test/threadstest_fips" => [ @@ -8043,6 +9398,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/time_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/tls13ccstest" => [ "libcrypto", "libssl", @@ -8053,6 +9412,11 @@ our %unified_info = ( "libssl.a", "test/libtestutil.a" ], + "test/tls13groupselection_test" => [ + "libcrypto", + "libssl", + "test/libtestutil.a" + ], "test/trace_api_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -8090,6 +9454,10 @@ our %unified_info = ( "libssl.a", "test/libtestutil.a" ], + "test/x509_acert_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/x509_check_cert_pkey_test" => [ "libcrypto", "test/libtestutil.a" @@ -8102,6 +9470,18 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/x509_load_cert_file_test" => [ + "libcrypto", + "test/libtestutil.a" + ], + "test/x509_req_test" => [ + "libcrypto", + "test/libtestutil.a" + ], + "test/x509_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/x509_time_test" => [ "libcrypto", "test/libtestutil.a" @@ -8116,9 +9496,13 @@ our %unified_info = ( }, "dirinfo" => { "apps" => { + "deps" => [ + "apps/ca_internals_test-bin-ca.o" + ], "products" => { "bin" => [ - "apps/openssl" + "apps/openssl", + "test/ca_internals_test" ], "script" => [ "apps/CA.pl", @@ -8129,6 +9513,14 @@ our %unified_info = ( "apps/lib" => { "deps" => [ "apps/lib/openssl-bin-cmp_mock_srv.o", + "apps/lib/ca_internals_test-bin-app_libctx.o", + "apps/lib/ca_internals_test-bin-app_provider.o", + "apps/lib/ca_internals_test-bin-app_rand.o", + "apps/lib/ca_internals_test-bin-app_x509.o", + "apps/lib/ca_internals_test-bin-apps.o", + "apps/lib/ca_internals_test-bin-apps_ui.o", + "apps/lib/ca_internals_test-bin-engine.o", + "apps/lib/ca_internals_test-bin-fmt.o", "apps/lib/cmp_client_test-bin-cmp_mock_srv.o", "apps/lib/uitest-bin-apps_ui.o", "apps/lib/libapps-lib-app_libctx.o", @@ -8137,12 +9529,14 @@ our %unified_info = ( "apps/lib/libapps-lib-app_rand.o", "apps/lib/libapps-lib-app_x509.o", "apps/lib/libapps-lib-apps.o", + "apps/lib/libapps-lib-apps_opt_printf.o", "apps/lib/libapps-lib-apps_ui.o", "apps/lib/libapps-lib-columns.o", "apps/lib/libapps-lib-engine.o", "apps/lib/libapps-lib-engine_loader.o", "apps/lib/libapps-lib-fmt.o", "apps/lib/libapps-lib-http_server.o", + "apps/lib/libapps-lib-log.o", "apps/lib/libapps-lib-names.o", "apps/lib/libapps-lib-opt.o", "apps/lib/libapps-lib-s_cb.o", @@ -8153,6 +9547,7 @@ our %unified_info = ( "products" => { "bin" => [ "apps/openssl", + "test/ca_internals_test", "test/cmp_client_test", "test/uitest" ], @@ -8164,8 +9559,12 @@ our %unified_info = ( }, "crypto" => { "deps" => [ + "crypto/asn1_time_test-bin-ctype.o", + "crypto/ca_internals_test-bin-ctype.o", + "crypto/packettest-bin-quic_vlint.o", "crypto/libcrypto-lib-asn1_dsa.o", "crypto/libcrypto-lib-bsearch.o", + "crypto/libcrypto-lib-comp_methods.o", "crypto/libcrypto-lib-context.o", "crypto/libcrypto-lib-core_algorithm.o", "crypto/libcrypto-lib-core_fetch.o", @@ -8175,10 +9574,13 @@ our %unified_info = ( "crypto/libcrypto-lib-cryptlib.o", "crypto/libcrypto-lib-ctype.o", "crypto/libcrypto-lib-cversion.o", + "crypto/libcrypto-lib-defaults.o", "crypto/libcrypto-lib-der_writer.o", + "crypto/libcrypto-lib-deterministic_nonce.o", "crypto/libcrypto-lib-ebcdic.o", "crypto/libcrypto-lib-ex_data.o", "crypto/libcrypto-lib-getenv.o", + "crypto/libcrypto-lib-indicator_core.o", "crypto/libcrypto-lib-info.o", "crypto/libcrypto-lib-init.o", "crypto/libcrypto-lib-initthread.o", @@ -8196,6 +9598,7 @@ our %unified_info = ( "crypto/libcrypto-lib-params.o", "crypto/libcrypto-lib-params_dup.o", "crypto/libcrypto-lib-params_from_text.o", + "crypto/libcrypto-lib-params_idx.o", "crypto/libcrypto-lib-passphrase.o", "crypto/libcrypto-lib-provider.o", "crypto/libcrypto-lib-provider_child.o", @@ -8203,12 +9606,16 @@ our %unified_info = ( "crypto/libcrypto-lib-provider_core.o", "crypto/libcrypto-lib-provider_predefined.o", "crypto/libcrypto-lib-punycode.o", + "crypto/libcrypto-lib-quic_vlint.o", "crypto/libcrypto-lib-self_test_core.o", + "crypto/libcrypto-lib-sleep.o", "crypto/libcrypto-lib-sparse_array.o", + "crypto/libcrypto-lib-ssl_err.o", "crypto/libcrypto-lib-threads_lib.o", "crypto/libcrypto-lib-threads_none.o", "crypto/libcrypto-lib-threads_pthread.o", "crypto/libcrypto-lib-threads_win.o", + "crypto/libcrypto-lib-time.o", "crypto/libcrypto-lib-trace.o", "crypto/libcrypto-lib-uid.o", "crypto/libfips-lib-asn1_dsa.o", @@ -8231,6 +9638,7 @@ our %unified_info = ( "crypto/libfips-lib-params.o", "crypto/libfips-lib-params_dup.o", "crypto/libfips-lib-params_from_text.o", + "crypto/libfips-lib-params_idx.o", "crypto/libfips-lib-provider_core.o", "crypto/libfips-lib-provider_predefined.o", "crypto/libfips-lib-self_test_core.o", @@ -8238,9 +9646,15 @@ our %unified_info = ( "crypto/libfips-lib-threads_lib.o", "crypto/libfips-lib-threads_none.o", "crypto/libfips-lib-threads_pthread.o", - "crypto/libfips-lib-threads_win.o" + "crypto/libfips-lib-threads_win.o", + "crypto/libfips-lib-time.o" ], "products" => { + "bin" => [ + "test/asn1_time_test", + "test/ca_internals_test", + "test/packettest" + ], "lib" => [ "libcrypto", "providers/libfips.a" @@ -8281,6 +9695,8 @@ our %unified_info = ( }, "crypto/asn1" => { "deps" => [ + "crypto/asn1/asn1_time_test-bin-a_time.o", + "crypto/asn1/ca_internals_test-bin-a_time.o", "crypto/asn1/libcrypto-lib-a_bitstr.o", "crypto/asn1/libcrypto-lib-a_d2i_fp.o", "crypto/asn1/libcrypto-lib-a_digest.o", @@ -8347,6 +9763,10 @@ our %unified_info = ( "crypto/asn1/libcrypto-lib-x_val.o" ], "products" => { + "bin" => [ + "test/asn1_time_test", + "test/ca_internals_test" + ], "lib" => [ "libcrypto" ] @@ -8412,6 +9832,7 @@ our %unified_info = ( "crypto/bio/libcrypto-lib-bss_conn.o", "crypto/bio/libcrypto-lib-bss_core.o", "crypto/bio/libcrypto-lib-bss_dgram.o", + "crypto/bio/libcrypto-lib-bss_dgram_pair.o", "crypto/bio/libcrypto-lib-bss_fd.o", "crypto/bio/libcrypto-lib-bss_file.o", "crypto/bio/libcrypto-lib-bss_log.o", @@ -8568,6 +9989,7 @@ our %unified_info = ( "crypto/cmp/libcrypto-lib-cmp_client.o", "crypto/cmp/libcrypto-lib-cmp_ctx.o", "crypto/cmp/libcrypto-lib-cmp_err.o", + "crypto/cmp/libcrypto-lib-cmp_genm.o", "crypto/cmp/libcrypto-lib-cmp_hdr.o", "crypto/cmp/libcrypto-lib-cmp_http.o", "crypto/cmp/libcrypto-lib-cmp_msg.o", @@ -8935,7 +10357,9 @@ our %unified_info = ( "crypto/err/libcrypto-lib-err_all.o", "crypto/err/libcrypto-lib-err_all_legacy.o", "crypto/err/libcrypto-lib-err_blocks.o", - "crypto/err/libcrypto-lib-err_prn.o" + "crypto/err/libcrypto-lib-err_mark.o", + "crypto/err/libcrypto-lib-err_prn.o", + "crypto/err/libcrypto-lib-err_save.o" ], "products" => { "lib" => [ @@ -9036,7 +10460,9 @@ our %unified_info = ( "crypto/evp/libcrypto-lib-pmeth_check.o", "crypto/evp/libcrypto-lib-pmeth_gn.o", "crypto/evp/libcrypto-lib-pmeth_lib.o", + "crypto/evp/libcrypto-lib-s_lib.o", "crypto/evp/libcrypto-lib-signature.o", + "crypto/evp/libcrypto-lib-skeymgmt_meth.o", "crypto/evp/libfips-lib-asymcipher.o", "crypto/evp/libfips-lib-dh_support.o", "crypto/evp/libfips-lib-digest.o", @@ -9052,14 +10478,15 @@ our %unified_info = ( "crypto/evp/libfips-lib-kem.o", "crypto/evp/libfips-lib-keymgmt_lib.o", "crypto/evp/libfips-lib-keymgmt_meth.o", - "crypto/evp/libfips-lib-m_sigver.o", "crypto/evp/libfips-lib-mac_lib.o", "crypto/evp/libfips-lib-mac_meth.o", "crypto/evp/libfips-lib-p_lib.o", "crypto/evp/libfips-lib-pmeth_check.o", "crypto/evp/libfips-lib-pmeth_gn.o", "crypto/evp/libfips-lib-pmeth_lib.o", - "crypto/evp/libfips-lib-signature.o" + "crypto/evp/libfips-lib-s_lib.o", + "crypto/evp/libfips-lib-signature.o", + "crypto/evp/libfips-lib-skeymgmt_meth.o" ], "products" => { "lib" => [ @@ -9092,6 +10519,20 @@ our %unified_info = ( ] } }, + "crypto/hashtable" => { + "deps" => [ + "crypto/hashtable/libcrypto-lib-hashfunc.o", + "crypto/hashtable/libcrypto-lib-hashtable.o", + "crypto/hashtable/libfips-lib-hashfunc.o", + "crypto/hashtable/libfips-lib-hashtable.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, "crypto/hmac" => { "deps" => [ "crypto/hmac/libcrypto-lib-hmac.o", @@ -9104,6 +10545,17 @@ our %unified_info = ( ] } }, + "crypto/hpke" => { + "deps" => [ + "crypto/hpke/libcrypto-lib-hpke.o", + "crypto/hpke/libcrypto-lib-hpke_util.o" + ], + "products" => { + "lib" => [ + "libcrypto" + ] + } + }, "crypto/http" => { "deps" => [ "crypto/http/libcrypto-lib-http_client.o", @@ -9187,6 +10639,44 @@ our %unified_info = ( ] } }, + "crypto/ml_dsa" => { + "deps" => [ + "crypto/ml_dsa/libcrypto-lib-ml_dsa_encoders.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key_compress.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_matrix.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_ntt.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_params.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sample.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sign.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_encoders.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_key.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_key_compress.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_matrix.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_ntt.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_params.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_sample.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_sign.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, + "crypto/ml_kem" => { + "deps" => [ + "crypto/ml_kem/libcrypto-lib-ml_kem.o", + "crypto/ml_kem/libfips-lib-ml_kem.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, "crypto/modes" => { "deps" => [ "crypto/modes/libcrypto-lib-cbc128.o", @@ -9200,6 +10690,7 @@ our %unified_info = ( "crypto/modes/libcrypto-lib-siv128.o", "crypto/modes/libcrypto-lib-wrap128.o", "crypto/modes/libcrypto-lib-xts128.o", + "crypto/modes/libcrypto-lib-xts128gb.o", "crypto/modes/libfips-lib-cbc128.o", "crypto/modes/libfips-lib-ccm128.o", "crypto/modes/libfips-lib-cfb128.o", @@ -9207,7 +10698,8 @@ our %unified_info = ( "crypto/modes/libfips-lib-gcm128.o", "crypto/modes/libfips-lib-ofb128.o", "crypto/modes/libfips-lib-wrap128.o", - "crypto/modes/libfips-lib-xts128.o" + "crypto/modes/libfips-lib-xts128.o", + "crypto/modes/libfips-lib-xts128gb.o" ], "products" => { "lib" => [ @@ -9350,6 +10842,7 @@ our %unified_info = ( "crypto/rand/libcrypto-lib-rand_lib.o", "crypto/rand/libcrypto-lib-rand_meth.o", "crypto/rand/libcrypto-lib-rand_pool.o", + "crypto/rand/libcrypto-lib-rand_uniform.o", "crypto/rand/libcrypto-lib-randfile.o", "crypto/rand/libfips-lib-rand_lib.o" ], @@ -9494,6 +10987,36 @@ our %unified_info = ( ] } }, + "crypto/slh_dsa" => { + "deps" => [ + "crypto/slh_dsa/libcrypto-lib-slh_adrs.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa_hash_ctx.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa_key.o", + "crypto/slh_dsa/libcrypto-lib-slh_fors.o", + "crypto/slh_dsa/libcrypto-lib-slh_hash.o", + "crypto/slh_dsa/libcrypto-lib-slh_hypertree.o", + "crypto/slh_dsa/libcrypto-lib-slh_params.o", + "crypto/slh_dsa/libcrypto-lib-slh_wots.o", + "crypto/slh_dsa/libcrypto-lib-slh_xmss.o", + "crypto/slh_dsa/libfips-lib-slh_adrs.o", + "crypto/slh_dsa/libfips-lib-slh_dsa.o", + "crypto/slh_dsa/libfips-lib-slh_dsa_hash_ctx.o", + "crypto/slh_dsa/libfips-lib-slh_dsa_key.o", + "crypto/slh_dsa/libfips-lib-slh_fors.o", + "crypto/slh_dsa/libfips-lib-slh_hash.o", + "crypto/slh_dsa/libfips-lib-slh_hypertree.o", + "crypto/slh_dsa/libfips-lib-slh_params.o", + "crypto/slh_dsa/libfips-lib-slh_wots.o", + "crypto/slh_dsa/libfips-lib-slh_xmss.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, "crypto/sm2" => { "deps" => [ "crypto/sm2/libcrypto-lib-sm2_crypt.o", @@ -9567,6 +11090,38 @@ our %unified_info = ( ] } }, + "crypto/thread" => { + "deps" => [ + "crypto/thread/libcrypto-lib-api.o", + "crypto/thread/libcrypto-lib-arch.o", + "crypto/thread/libcrypto-lib-internal.o", + "crypto/thread/libfips-lib-api.o", + "crypto/thread/libfips-lib-arch.o", + "crypto/thread/libfips-lib-internal.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, + "crypto/thread/arch" => { + "deps" => [ + "crypto/thread/arch/libcrypto-lib-thread_none.o", + "crypto/thread/arch/libcrypto-lib-thread_posix.o", + "crypto/thread/arch/libcrypto-lib-thread_win.o", + "crypto/thread/arch/libfips-lib-thread_none.o", + "crypto/thread/arch/libfips-lib-thread_posix.o", + "crypto/thread/arch/libfips-lib-thread_win.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, "crypto/ts" => { "deps" => [ "crypto/ts/libcrypto-lib-ts_asn1.o", @@ -9633,14 +11188,22 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-pcy_map.o", "crypto/x509/libcrypto-lib-pcy_node.o", "crypto/x509/libcrypto-lib-pcy_tree.o", + "crypto/x509/libcrypto-lib-t_acert.o", "crypto/x509/libcrypto-lib-t_crl.o", "crypto/x509/libcrypto-lib-t_req.o", "crypto/x509/libcrypto-lib-t_x509.o", + "crypto/x509/libcrypto-lib-v3_aaa.o", + "crypto/x509/libcrypto-lib-v3_ac_tgt.o", "crypto/x509/libcrypto-lib-v3_addr.o", "crypto/x509/libcrypto-lib-v3_admis.o", "crypto/x509/libcrypto-lib-v3_akeya.o", "crypto/x509/libcrypto-lib-v3_akid.o", "crypto/x509/libcrypto-lib-v3_asid.o", + "crypto/x509/libcrypto-lib-v3_attrdesc.o", + "crypto/x509/libcrypto-lib-v3_attrmap.o", + "crypto/x509/libcrypto-lib-v3_audit_id.o", + "crypto/x509/libcrypto-lib-v3_authattid.o", + "crypto/x509/libcrypto-lib-v3_battcons.o", "crypto/x509/libcrypto-lib-v3_bcons.o", "crypto/x509/libcrypto-lib-v3_bitst.o", "crypto/x509/libcrypto-lib-v3_conf.o", @@ -9649,12 +11212,17 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_enum.o", "crypto/x509/libcrypto-lib-v3_extku.o", "crypto/x509/libcrypto-lib-v3_genn.o", + "crypto/x509/libcrypto-lib-v3_group_ac.o", "crypto/x509/libcrypto-lib-v3_ia5.o", + "crypto/x509/libcrypto-lib-v3_ind_iss.o", "crypto/x509/libcrypto-lib-v3_info.o", "crypto/x509/libcrypto-lib-v3_int.o", + "crypto/x509/libcrypto-lib-v3_iobo.o", "crypto/x509/libcrypto-lib-v3_ist.o", "crypto/x509/libcrypto-lib-v3_lib.o", "crypto/x509/libcrypto-lib-v3_ncons.o", + "crypto/x509/libcrypto-lib-v3_no_ass.o", + "crypto/x509/libcrypto-lib-v3_no_rev_avail.o", "crypto/x509/libcrypto-lib-v3_pci.o", "crypto/x509/libcrypto-lib-v3_pcia.o", "crypto/x509/libcrypto-lib-v3_pcons.o", @@ -9662,13 +11230,20 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_pmaps.o", "crypto/x509/libcrypto-lib-v3_prn.o", "crypto/x509/libcrypto-lib-v3_purp.o", + "crypto/x509/libcrypto-lib-v3_rolespec.o", "crypto/x509/libcrypto-lib-v3_san.o", + "crypto/x509/libcrypto-lib-v3_sda.o", + "crypto/x509/libcrypto-lib-v3_single_use.o", "crypto/x509/libcrypto-lib-v3_skid.o", + "crypto/x509/libcrypto-lib-v3_soa_id.o", "crypto/x509/libcrypto-lib-v3_sxnet.o", + "crypto/x509/libcrypto-lib-v3_timespec.o", "crypto/x509/libcrypto-lib-v3_tlsf.o", + "crypto/x509/libcrypto-lib-v3_usernotice.o", "crypto/x509/libcrypto-lib-v3_utf8.o", "crypto/x509/libcrypto-lib-v3_utl.o", "crypto/x509/libcrypto-lib-v3err.o", + "crypto/x509/libcrypto-lib-x509_acert.o", "crypto/x509/libcrypto-lib-x509_att.o", "crypto/x509/libcrypto-lib-x509_cmp.o", "crypto/x509/libcrypto-lib-x509_d2.o", @@ -9686,6 +11261,7 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x509_v3.o", "crypto/x509/libcrypto-lib-x509_vfy.o", "crypto/x509/libcrypto-lib-x509_vpm.o", + "crypto/x509/libcrypto-lib-x509aset.o", "crypto/x509/libcrypto-lib-x509cset.o", "crypto/x509/libcrypto-lib-x509name.o", "crypto/x509/libcrypto-lib-x509rset.o", @@ -9695,6 +11271,7 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x_attrib.o", "crypto/x509/libcrypto-lib-x_crl.o", "crypto/x509/libcrypto-lib-x_exten.o", + "crypto/x509/libcrypto-lib-x_ietfatt.o", "crypto/x509/libcrypto-lib-x_name.o", "crypto/x509/libcrypto-lib-x_pubkey.o", "crypto/x509/libcrypto-lib-x_req.o", @@ -9721,6 +11298,7 @@ our %unified_info = ( "fuzz" => { "products" => { "bin" => [ + "fuzz/acert-test", "fuzz/asn1-test", "fuzz/asn1parse-test", "fuzz/bignum-test", @@ -9731,13 +11309,31 @@ our %unified_info = ( "fuzz/conf-test", "fuzz/crl-test", "fuzz/ct-test", + "fuzz/decoder-test", + "fuzz/dtlsclient-test", + "fuzz/dtlsserver-test", + "fuzz/hashtable-test", + "fuzz/ml-dsa-test", + "fuzz/ml-kem-test", + "fuzz/pem-test", + "fuzz/provider-test", + "fuzz/punycode-test", + "fuzz/quic-client-test", + "fuzz/quic-lcidm-test", + "fuzz/quic-rcidm-test", + "fuzz/quic-server-test", + "fuzz/quic-srtm-test", "fuzz/server-test", + "fuzz/slh-dsa-test", + "fuzz/smime-test", + "fuzz/v3name-test", "fuzz/x509-test" ] } }, "providers" => { "deps" => [ + "providers/endecode_test-bin-legacyprov.o", "providers/evp_extra_test-bin-legacyprov.o", "providers/libcrypto-lib-baseprov.o", "providers/libcrypto-lib-defltprov.o", @@ -9747,6 +11343,7 @@ our %unified_info = ( ], "products" => { "bin" => [ + "test/endecode_test", "test/evp_extra_test" ], "dso" => [ @@ -9797,8 +11394,12 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ec_sig.o", "providers/common/der/libcommon-lib-der_ecx_gen.o", "providers/common/der/libcommon-lib-der_ecx_key.o", + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o", + "providers/common/der/libcommon-lib-der_ml_dsa_key.o", "providers/common/der/libcommon-lib-der_rsa_gen.o", "providers/common/der/libcommon-lib-der_rsa_key.o", + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o", + "providers/common/der/libcommon-lib-der_slh_dsa_key.o", "providers/common/der/libcommon-lib-der_wrap_gen.o", "providers/common/der/libdefault-lib-der_rsa_sig.o", "providers/common/der/libdefault-lib-der_sm2_gen.o", @@ -9817,6 +11418,7 @@ our %unified_info = ( "providers/fips" => { "deps" => [ "providers/fips/fips-dso-fips_entry.o", + "providers/fips/libfips-lib-fipsindicator.o", "providers/fips/libfips-lib-fipsprov.o", "providers/fips/libfips-lib-self_test.o", "providers/fips/libfips-lib-self_test_kats.o" @@ -9860,6 +11462,9 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_aes_ccm_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_polyval.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_ocb.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_ocb_hw.o", @@ -9884,7 +11489,13 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_cts.o", "providers/implementations/ciphers/libdefault-lib-cipher_null.o", "providers/implementations/ciphers/libdefault-lib-cipher_sm4.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_sm4_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes_common.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes_default.o", @@ -9981,7 +11592,10 @@ our %unified_info = ( "providers/implementations/encode_decode/libdefault-lib-encode_key2blob.o", "providers/implementations/encode_decode/libdefault-lib-encode_key2ms.o", "providers/implementations/encode_decode/libdefault-lib-encode_key2text.o", - "providers/implementations/encode_decode/libdefault-lib-endecoder_common.o" + "providers/implementations/encode_decode/libdefault-lib-endecoder_common.o", + "providers/implementations/encode_decode/libdefault-lib-ml_common_codecs.o", + "providers/implementations/encode_decode/libdefault-lib-ml_dsa_codecs.o", + "providers/implementations/encode_decode/libdefault-lib-ml_kem_codecs.o" ], "products" => { "lib" => [ @@ -10009,7 +11623,9 @@ our %unified_info = ( }, "providers/implementations/kdfs" => { "deps" => [ + "providers/implementations/kdfs/libdefault-lib-argon2.o", "providers/implementations/kdfs/libdefault-lib-hkdf.o", + "providers/implementations/kdfs/libdefault-lib-hmacdrbg_kdf.o", "providers/implementations/kdfs/libdefault-lib-kbkdf.o", "providers/implementations/kdfs/libdefault-lib-krb5kdf.o", "providers/implementations/kdfs/libdefault-lib-pbkdf2.o", @@ -10028,7 +11644,8 @@ our %unified_info = ( "providers/implementations/kdfs/libfips-lib-sskdf.o", "providers/implementations/kdfs/libfips-lib-tls1_prf.o", "providers/implementations/kdfs/libfips-lib-x942kdf.o", - "providers/implementations/kdfs/liblegacy-lib-pbkdf1.o" + "providers/implementations/kdfs/liblegacy-lib-pbkdf1.o", + "providers/implementations/kdfs/liblegacy-lib-pvkkdf.o" ], "products" => { "lib" => [ @@ -10040,13 +11657,22 @@ our %unified_info = ( }, "providers/implementations/kem" => { "deps" => [ + "providers/implementations/kem/libdefault-lib-ec_kem.o", + "providers/implementations/kem/libdefault-lib-ecx_kem.o", + "providers/implementations/kem/libdefault-lib-kem_util.o", + "providers/implementations/kem/libdefault-lib-ml_kem_kem.o", + "providers/implementations/kem/libdefault-lib-mlx_kem.o", "providers/implementations/kem/libdefault-lib-rsa_kem.o", - "providers/implementations/kem/libfips-lib-rsa_kem.o" + "providers/implementations/kem/libfips-lib-ml_kem_kem.o", + "providers/implementations/kem/libfips-lib-mlx_kem.o", + "providers/implementations/kem/libfips-lib-rsa_kem.o", + "providers/implementations/kem/libtemplate-lib-template_kem.o" ], "products" => { "lib" => [ "providers/libdefault.a", - "providers/libfips.a" + "providers/libfips.a", + "providers/libtemplate.a" ] } }, @@ -10058,19 +11684,29 @@ our %unified_info = ( "providers/implementations/keymgmt/libdefault-lib-ecx_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-kdf_legacy_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-mac_legacy_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-ml_dsa_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-ml_kem_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-mlx_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-rsa_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-slh_dsa_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-dh_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-dsa_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-ec_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-ecx_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-kdf_legacy_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-mac_legacy_kmgmt.o", - "providers/implementations/keymgmt/libfips-lib-rsa_kmgmt.o" + "providers/implementations/keymgmt/libfips-lib-ml_dsa_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-ml_kem_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-mlx_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-rsa_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-slh_dsa_kmgmt.o", + "providers/implementations/keymgmt/libtemplate-lib-template_kmgmt.o" ], "products" => { "lib" => [ "providers/libdefault.a", - "providers/libfips.a" + "providers/libfips.a", + "providers/libtemplate.a" ] } }, @@ -10098,18 +11734,18 @@ our %unified_info = ( }, "providers/implementations/rands" => { "deps" => [ - "providers/implementations/rands/libdefault-lib-crngt.o", "providers/implementations/rands/libdefault-lib-drbg.o", "providers/implementations/rands/libdefault-lib-drbg_ctr.o", "providers/implementations/rands/libdefault-lib-drbg_hash.o", "providers/implementations/rands/libdefault-lib-drbg_hmac.o", "providers/implementations/rands/libdefault-lib-seed_src.o", + "providers/implementations/rands/libdefault-lib-seed_src_jitter.o", "providers/implementations/rands/libdefault-lib-test_rng.o", - "providers/implementations/rands/libfips-lib-crngt.o", "providers/implementations/rands/libfips-lib-drbg.o", "providers/implementations/rands/libfips-lib-drbg_ctr.o", "providers/implementations/rands/libfips-lib-drbg_hash.o", "providers/implementations/rands/libfips-lib-drbg_hmac.o", + "providers/implementations/rands/libfips-lib-fips_crng_test.o", "providers/implementations/rands/libfips-lib-test_rng.o" ], "products" => { @@ -10138,13 +11774,31 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-ecdsa_sig.o", "providers/implementations/signature/libdefault-lib-eddsa_sig.o", "providers/implementations/signature/libdefault-lib-mac_legacy_sig.o", + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o", "providers/implementations/signature/libdefault-lib-rsa_sig.o", + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o", "providers/implementations/signature/libdefault-lib-sm2_sig.o", "providers/implementations/signature/libfips-lib-dsa_sig.o", "providers/implementations/signature/libfips-lib-ecdsa_sig.o", "providers/implementations/signature/libfips-lib-eddsa_sig.o", "providers/implementations/signature/libfips-lib-mac_legacy_sig.o", - "providers/implementations/signature/libfips-lib-rsa_sig.o" + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o", + "providers/implementations/signature/libfips-lib-rsa_sig.o", + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o" + ], + "products" => { + "lib" => [ + "providers/libdefault.a", + "providers/libfips.a" + ] + } + }, + "providers/implementations/skeymgmt" => { + "deps" => [ + "providers/implementations/skeymgmt/libdefault-lib-aes_skmgmt.o", + "providers/implementations/skeymgmt/libdefault-lib-generic.o", + "providers/implementations/skeymgmt/libfips-lib-aes_skmgmt.o", + "providers/implementations/skeymgmt/libfips-lib-generic.o" ], "products" => { "lib" => [ @@ -10172,14 +11826,15 @@ our %unified_info = ( "ssl/libssl-lib-d1_srtp.o", "ssl/libssl-lib-methods.o", "ssl/libssl-lib-pqueue.o", + "ssl/libssl-lib-priority_queue.o", "ssl/libssl-lib-s3_enc.o", "ssl/libssl-lib-s3_lib.o", "ssl/libssl-lib-s3_msg.o", "ssl/libssl-lib-ssl_asn1.o", "ssl/libssl-lib-ssl_cert.o", + "ssl/libssl-lib-ssl_cert_comp.o", "ssl/libssl-lib-ssl_ciph.o", "ssl/libssl-lib-ssl_conf.o", - "ssl/libssl-lib-ssl_err.o", "ssl/libssl-lib-ssl_err_legacy.o", "ssl/libssl-lib-ssl_init.o", "ssl/libssl-lib-ssl_lib.o", @@ -10195,32 +11850,107 @@ our %unified_info = ( "ssl/libssl-lib-t1_trce.o", "ssl/libssl-lib-tls13_enc.o", "ssl/libssl-lib-tls_depr.o", - "ssl/libssl-lib-tls_srp.o", - "ssl/libdefault-lib-s3_cbc.o", - "ssl/libfips-lib-s3_cbc.o" + "ssl/libssl-lib-tls_srp.o" ], "products" => { "lib" => [ - "libssl", - "providers/libdefault.a", - "providers/libfips.a" + "libssl" + ] + } + }, + "ssl/quic" => { + "deps" => [ + "ssl/quic/libssl-lib-cc_newreno.o", + "ssl/quic/libssl-lib-json_enc.o", + "ssl/quic/libssl-lib-qlog.o", + "ssl/quic/libssl-lib-qlog_event_helpers.o", + "ssl/quic/libssl-lib-quic_ackm.o", + "ssl/quic/libssl-lib-quic_cfq.o", + "ssl/quic/libssl-lib-quic_channel.o", + "ssl/quic/libssl-lib-quic_demux.o", + "ssl/quic/libssl-lib-quic_engine.o", + "ssl/quic/libssl-lib-quic_fc.o", + "ssl/quic/libssl-lib-quic_fifd.o", + "ssl/quic/libssl-lib-quic_impl.o", + "ssl/quic/libssl-lib-quic_lcidm.o", + "ssl/quic/libssl-lib-quic_method.o", + "ssl/quic/libssl-lib-quic_obj.o", + "ssl/quic/libssl-lib-quic_port.o", + "ssl/quic/libssl-lib-quic_rcidm.o", + "ssl/quic/libssl-lib-quic_reactor.o", + "ssl/quic/libssl-lib-quic_reactor_wait_ctx.o", + "ssl/quic/libssl-lib-quic_record_rx.o", + "ssl/quic/libssl-lib-quic_record_shared.o", + "ssl/quic/libssl-lib-quic_record_tx.o", + "ssl/quic/libssl-lib-quic_record_util.o", + "ssl/quic/libssl-lib-quic_rstream.o", + "ssl/quic/libssl-lib-quic_rx_depack.o", + "ssl/quic/libssl-lib-quic_sf_list.o", + "ssl/quic/libssl-lib-quic_srt_gen.o", + "ssl/quic/libssl-lib-quic_srtm.o", + "ssl/quic/libssl-lib-quic_sstream.o", + "ssl/quic/libssl-lib-quic_statm.o", + "ssl/quic/libssl-lib-quic_stream_map.o", + "ssl/quic/libssl-lib-quic_thread_assist.o", + "ssl/quic/libssl-lib-quic_tls.o", + "ssl/quic/libssl-lib-quic_tls_api.o", + "ssl/quic/libssl-lib-quic_trace.o", + "ssl/quic/libssl-lib-quic_tserver.o", + "ssl/quic/libssl-lib-quic_txp.o", + "ssl/quic/libssl-lib-quic_txpim.o", + "ssl/quic/libssl-lib-quic_types.o", + "ssl/quic/libssl-lib-quic_wire.o", + "ssl/quic/libssl-lib-quic_wire_pkt.o", + "ssl/quic/libssl-lib-uint_set.o" + ], + "products" => { + "lib" => [ + "libssl" ] } }, "ssl/record" => { "deps" => [ - "ssl/record/libssl-lib-dtls1_bitmap.o", "ssl/record/libssl-lib-rec_layer_d1.o", - "ssl/record/libssl-lib-rec_layer_s3.o", - "ssl/record/libssl-lib-ssl3_buffer.o", - "ssl/record/libssl-lib-ssl3_record.o", - "ssl/record/libssl-lib-ssl3_record_tls13.o", - "ssl/record/libcommon-lib-tls_pad.o" + "ssl/record/libssl-lib-rec_layer_s3.o" + ], + "products" => { + "lib" => [ + "libssl" + ] + } + }, + "ssl/record/methods" => { + "deps" => [ + "ssl/record/methods/libssl-lib-dtls_meth.o", + "ssl/record/methods/libssl-lib-ssl3_meth.o", + "ssl/record/methods/libssl-lib-tls13_meth.o", + "ssl/record/methods/libssl-lib-tls1_meth.o", + "ssl/record/methods/libssl-lib-tls_common.o", + "ssl/record/methods/libssl-lib-tls_multib.o", + "ssl/record/methods/libssl-lib-tlsany_meth.o", + "ssl/record/methods/libcommon-lib-tls_pad.o", + "ssl/record/methods/libdefault-lib-ssl3_cbc.o", + "ssl/record/methods/libfips-lib-ssl3_cbc.o" ], "products" => { "lib" => [ "libssl", - "providers/libcommon.a" + "providers/libcommon.a", + "providers/libdefault.a", + "providers/libfips.a" + ] + } + }, + "ssl/rio" => { + "deps" => [ + "ssl/rio/libssl-lib-poll_builder.o", + "ssl/rio/libssl-lib-poll_immediate.o", + "ssl/rio/libssl-lib-rio_notifier.o" + ], + "products" => { + "lib" => [ + "libssl" ] } }, @@ -10258,9 +11988,40 @@ our %unified_info = ( "test/helpers/dtlstest-bin-ssltestlib.o", "test/helpers/endecode_test-bin-predefined_dhparams.o", "test/helpers/fatalerrtest-bin-ssltestlib.o", + "test/helpers/json_test-bin-noisydgrambio.o", + "test/helpers/json_test-bin-pktsplitbio.o", + "test/helpers/json_test-bin-quictestlib.o", + "test/helpers/json_test-bin-ssltestlib.o", + "test/helpers/pkcs12_api_test-bin-pkcs12.o", "test/helpers/pkcs12_format_test-bin-pkcs12.o", + "test/helpers/quic_multistream_test-bin-noisydgrambio.o", + "test/helpers/quic_multistream_test-bin-pktsplitbio.o", + "test/helpers/quic_multistream_test-bin-quictestlib.o", + "test/helpers/quic_multistream_test-bin-ssltestlib.o", + "test/helpers/quic_newcid_test-bin-noisydgrambio.o", + "test/helpers/quic_newcid_test-bin-pktsplitbio.o", + "test/helpers/quic_newcid_test-bin-quictestlib.o", + "test/helpers/quic_newcid_test-bin-ssltestlib.o", + "test/helpers/quic_radix_test-bin-noisydgrambio.o", + "test/helpers/quic_radix_test-bin-pktsplitbio.o", + "test/helpers/quic_radix_test-bin-quictestlib.o", + "test/helpers/quic_radix_test-bin-ssltestlib.o", + "test/helpers/quic_srt_gen_test-bin-noisydgrambio.o", + "test/helpers/quic_srt_gen_test-bin-pktsplitbio.o", + "test/helpers/quic_srt_gen_test-bin-quictestlib.o", + "test/helpers/quic_srt_gen_test-bin-ssltestlib.o", + "test/helpers/quicapitest-bin-noisydgrambio.o", + "test/helpers/quicapitest-bin-pktsplitbio.o", + "test/helpers/quicapitest-bin-quictestlib.o", + "test/helpers/quicapitest-bin-ssltestlib.o", + "test/helpers/quicfaultstest-bin-noisydgrambio.o", + "test/helpers/quicfaultstest-bin-pktsplitbio.o", + "test/helpers/quicfaultstest-bin-quictestlib.o", + "test/helpers/quicfaultstest-bin-ssltestlib.o", "test/helpers/recordlentest-bin-ssltestlib.o", + "test/helpers/rpktest-bin-ssltestlib.o", "test/helpers/servername_test-bin-ssltestlib.o", + "test/helpers/ssl_handshake_rtt_test-bin-ssltestlib.o", "test/helpers/ssl_old_test-bin-predefined_dhparams.o", "test/helpers/ssl_test-bin-handshake.o", "test/helpers/ssl_test-bin-handshake_srp.o", @@ -10269,7 +12030,8 @@ our %unified_info = ( "test/helpers/sslapitest-bin-ssltestlib.o", "test/helpers/sslbuffertest-bin-ssltestlib.o", "test/helpers/sslcorrupttest-bin-ssltestlib.o", - "test/helpers/tls13ccstest-bin-ssltestlib.o" + "test/helpers/tls13ccstest-bin-ssltestlib.o", + "test/helpers/tls13groupselection_test-bin-ssltestlib.o" ], "products" => { "bin" => [ @@ -10287,16 +12049,37 @@ our %unified_info = ( "test/dtlstest", "test/endecode_test", "test/fatalerrtest", + "test/json_test", + "test/pkcs12_api_test", "test/pkcs12_format_test", + "test/quic_multistream_test", + "test/quic_newcid_test", + "test/quic_radix_test", + "test/quic_srt_gen_test", + "test/quicapitest", + "test/quicfaultstest", "test/recordlentest", + "test/rpktest", "test/servername_test", + "test/ssl_handshake_rtt_test", "test/ssl_old_test", "test/ssl_test", "test/ssl_test_ctx_test", "test/sslapitest", "test/sslbuffertest", "test/sslcorrupttest", - "test/tls13ccstest" + "test/tls13ccstest", + "test/tls13groupselection_test" + ] + } + }, + "test/radix" => { + "deps" => [ + "test/radix/quic_radix_test-bin-quic_radix.o" + ], + "products" => { + "bin" => [ + "test/quic_radix_test" ] } }, @@ -10308,6 +12091,7 @@ our %unified_info = ( "test/testutil/libtestutil-lib-driver.o", "test/testutil/libtestutil-lib-fake_random.o", "test/testutil/libtestutil-lib-format_output.o", + "test/testutil/libtestutil-lib-helper.o", "test/testutil/libtestutil-lib-load.o", "test/testutil/libtestutil-lib-main.o", "test/testutil/libtestutil-lib-options.o", @@ -10343,6 +12127,12 @@ our %unified_info = ( } }, "generate" => { + "OpenSSLConfig.cmake" => [ + "exporters/cmake/OpenSSLConfig.cmake.in" + ], + "OpenSSLConfigVersion.cmake" => [ + "exporters/cmake/OpenSSLConfigVersion.cmake.in" + ], "apps/progs.c" => [ "apps/progs.pl", "\"-C\"", @@ -10353,6 +12143,19 @@ our %unified_info = ( "\"-H\"", "\$(APPS_OPENSSL)" ], + "builddata.pm" => [ + "util/mkinstallvars.pl", + "PREFIX=.", + "BINDIR=apps", + "APPLINKDIR=ms", + "LIBDIR=", + "INCLUDEDIR=include", + "\"INCLUDEDIR=\$(SRCDIR)/include\"", + "ENGINESDIR=engines", + "MODULESDIR=providers", + "\"VERSION=\$(VERSION)\"", + "\"LDLIBS=\$(LIB_EX_LIBS)\"" + ], "crypto/aes/aes-586.S" => [ "crypto/aes/asm/aes-586.pl" ], @@ -10374,6 +12177,24 @@ our %unified_info = ( "crypto/aes/aes-ppc.s" => [ "crypto/aes/asm/aes-ppc.pl" ], + "crypto/aes/aes-riscv32-zkn.s" => [ + "crypto/aes/asm/aes-riscv32-zkn.pl" + ], + "crypto/aes/aes-riscv64-zkn.s" => [ + "crypto/aes/asm/aes-riscv64-zkn.pl" + ], + "crypto/aes/aes-riscv64-zvbb-zvkg-zvkned.s" => [ + "crypto/aes/asm/aes-riscv64-zvbb-zvkg-zvkned.pl" + ], + "crypto/aes/aes-riscv64-zvkb-zvkned.s" => [ + "crypto/aes/asm/aes-riscv64-zvkb-zvkned.pl" + ], + "crypto/aes/aes-riscv64-zvkned.s" => [ + "crypto/aes/asm/aes-riscv64-zvkned.pl" + ], + "crypto/aes/aes-riscv64.s" => [ + "crypto/aes/asm/aes-riscv64.pl" + ], "crypto/aes/aes-s390x.S" => [ "crypto/aes/asm/aes-s390x.pl" ], @@ -10401,6 +12222,9 @@ our %unified_info = ( "crypto/aes/aesni-x86_64.s" => [ "crypto/aes/asm/aesni-x86_64.pl" ], + "crypto/aes/aesni-xts-avx512.s" => [ + "crypto/aes/asm/aesni-xts-avx512.pl" + ], "crypto/aes/aesp8-ppc.s" => [ "crypto/aes/asm/aesp8-ppc.pl" ], @@ -10413,12 +12237,18 @@ our %unified_info = ( "crypto/aes/bsaes-armv7.S" => [ "crypto/aes/asm/bsaes-armv7.pl" ], + "crypto/aes/bsaes-armv8.S" => [ + "crypto/aes/asm/bsaes-armv8.pl" + ], "crypto/aes/bsaes-x86_64.s" => [ "crypto/aes/asm/bsaes-x86_64.pl" ], "crypto/aes/vpaes-armv8.S" => [ "crypto/aes/asm/vpaes-armv8.pl" ], + "crypto/aes/vpaes-loongarch64.S" => [ + "crypto/aes/asm/vpaes-loongarch64.pl" + ], "crypto/aes/vpaes-ppc.s" => [ "crypto/aes/asm/vpaes-ppc.pl" ], @@ -10479,15 +12309,33 @@ our %unified_info = ( "crypto/bn/ppc-mont.s" => [ "crypto/bn/asm/ppc-mont.pl" ], + "crypto/bn/ppc64-mont-fixed.s" => [ + "crypto/bn/asm/ppc64-mont-fixed.pl" + ], "crypto/bn/ppc64-mont.s" => [ "crypto/bn/asm/ppc64-mont.pl" ], + "crypto/bn/rsaz-2k-avx512.s" => [ + "crypto/bn/asm/rsaz-2k-avx512.pl" + ], + "crypto/bn/rsaz-2k-avxifma.s" => [ + "crypto/bn/asm/rsaz-2k-avxifma.pl" + ], + "crypto/bn/rsaz-3k-avx512.s" => [ + "crypto/bn/asm/rsaz-3k-avx512.pl" + ], + "crypto/bn/rsaz-3k-avxifma.s" => [ + "crypto/bn/asm/rsaz-3k-avxifma.pl" + ], + "crypto/bn/rsaz-4k-avx512.s" => [ + "crypto/bn/asm/rsaz-4k-avx512.pl" + ], + "crypto/bn/rsaz-4k-avxifma.s" => [ + "crypto/bn/asm/rsaz-4k-avxifma.pl" + ], "crypto/bn/rsaz-avx2.s" => [ "crypto/bn/asm/rsaz-avx2.pl" ], - "crypto/bn/rsaz-avx512.s" => [ - "crypto/bn/asm/rsaz-avx512.pl" - ], "crypto/bn/rsaz-x86_64.s" => [ "crypto/bn/asm/rsaz-x86_64.pl" ], @@ -10549,6 +12397,9 @@ our %unified_info = ( "crypto/chacha/chacha-armv4.S" => [ "crypto/chacha/asm/chacha-armv4.pl" ], + "crypto/chacha/chacha-armv8-sve.S" => [ + "crypto/chacha/asm/chacha-armv8-sve.pl" + ], "crypto/chacha/chacha-armv8.S" => [ "crypto/chacha/asm/chacha-armv8.pl" ], @@ -10561,9 +12412,19 @@ our %unified_info = ( "crypto/chacha/chacha-ia64.s" => [ "crypto/chacha/chacha-ia64.S" ], + "crypto/chacha/chacha-loongarch64.S" => [ + "crypto/chacha/asm/chacha-loongarch64.pl" + ], "crypto/chacha/chacha-ppc.s" => [ "crypto/chacha/asm/chacha-ppc.pl" ], + "crypto/chacha/chacha-riscv64-v-zbb-zvkb.s" => [ + "crypto/chacha/asm/chacha-riscv64-v-zbb.pl", + "zvkb" + ], + "crypto/chacha/chacha-riscv64-v-zbb.s" => [ + "crypto/chacha/asm/chacha-riscv64-v-zbb.pl" + ], "crypto/chacha/chacha-s390x.S" => [ "crypto/chacha/asm/chacha-s390x.pl" ], @@ -10573,6 +12434,9 @@ our %unified_info = ( "crypto/chacha/chacha-x86_64.s" => [ "crypto/chacha/asm/chacha-x86_64.pl" ], + "crypto/chacha/chachap10-ppc.s" => [ + "crypto/chacha/asm/chachap10-ppc.pl" + ], "crypto/des/crypt586.S" => [ "crypto/des/asm/crypt586.pl" ], @@ -10585,6 +12449,9 @@ our %unified_info = ( "crypto/des/dest4-sparcv9.S" => [ "crypto/des/asm/dest4-sparcv9.pl" ], + "crypto/ec/ecp_nistp384-ppc64.s" => [ + "crypto/ec/asm/ecp_nistp384-ppc64.pl" + ], "crypto/ec/ecp_nistp521-ppc64.s" => [ "crypto/ec/asm/ecp_nistp521-ppc64.pl" ], @@ -10609,6 +12476,9 @@ our %unified_info = ( "crypto/ec/ecp_nistz256-x86_64.s" => [ "crypto/ec/asm/ecp_nistz256-x86_64.pl" ], + "crypto/ec/ecp_sm2p256-armv8.S" => [ + "crypto/ec/asm/ecp_sm2p256-armv8.pl" + ], "crypto/ec/x25519-ppc64.s" => [ "crypto/ec/asm/x25519-ppc64.pl" ], @@ -10618,18 +12488,39 @@ our %unified_info = ( "crypto/ia64cpuid.s" => [ "crypto/ia64cpuid.S" ], + "crypto/loongarch64cpuid.s" => [ + "crypto/loongarch64cpuid.pl" + ], "crypto/md5/md5-586.S" => [ "crypto/md5/asm/md5-586.pl" ], + "crypto/md5/md5-aarch64.S" => [ + "crypto/md5/asm/md5-aarch64.pl" + ], + "crypto/md5/md5-loongarch64.S" => [ + "crypto/md5/asm/md5-loongarch64.pl" + ], "crypto/md5/md5-sparcv9.S" => [ "crypto/md5/asm/md5-sparcv9.pl" ], "crypto/md5/md5-x86_64.s" => [ "crypto/md5/asm/md5-x86_64.pl" ], + "crypto/modes/aes-gcm-armv8-unroll8_64.S" => [ + "crypto/modes/asm/aes-gcm-armv8-unroll8_64.pl" + ], "crypto/modes/aes-gcm-armv8_64.S" => [ "crypto/modes/asm/aes-gcm-armv8_64.pl" ], + "crypto/modes/aes-gcm-avx512.s" => [ + "crypto/modes/asm/aes-gcm-avx512.pl" + ], + "crypto/modes/aes-gcm-ppc.s" => [ + "crypto/modes/asm/aes-gcm-ppc.pl" + ], + "crypto/modes/aes-gcm-riscv64-zvkb-zvkg-zvkned.s" => [ + "crypto/modes/asm/aes-gcm-riscv64-zvkb-zvkg-zvkned.pl" + ], "crypto/modes/aesni-gcm-x86_64.s" => [ "crypto/modes/asm/aesni-gcm-x86_64.pl" ], @@ -10648,6 +12539,15 @@ our %unified_info = ( "crypto/modes/ghash-parisc.s" => [ "crypto/modes/asm/ghash-parisc.pl" ], + "crypto/modes/ghash-riscv64-zvkb-zvbc.s" => [ + "crypto/modes/asm/ghash-riscv64-zvkb-zvbc.pl" + ], + "crypto/modes/ghash-riscv64-zvkg.s" => [ + "crypto/modes/asm/ghash-riscv64-zvkg.pl" + ], + "crypto/modes/ghash-riscv64.s" => [ + "crypto/modes/asm/ghash-riscv64.pl" + ], "crypto/modes/ghash-s390x.S" => [ "crypto/modes/asm/ghash-s390x.pl" ], @@ -10666,6 +12566,9 @@ our %unified_info = ( "crypto/modes/ghashv8-armx.S" => [ "crypto/modes/asm/ghashv8-armx.pl" ], + "crypto/params_idx.c" => [ + "crypto/params_idx.c.in" + ], "crypto/pariscid.s" => [ "crypto/pariscid.pl" ], @@ -10726,6 +12629,12 @@ our %unified_info = ( "crypto/ripemd/rmd-586.S" => [ "crypto/ripemd/asm/rmd-586.pl" ], + "crypto/riscv32cpuid.s" => [ + "crypto/riscv32cpuid.pl" + ], + "crypto/riscv64cpuid.s" => [ + "crypto/riscv64cpuid.pl" + ], "crypto/s390xcpuid.S" => [ "crypto/s390xcpuid.pl" ], @@ -10834,6 +12743,9 @@ our %unified_info = ( "crypto/sha/sha256-ppc.s" => [ "crypto/sha/asm/sha512-ppc.pl" ], + "crypto/sha/sha256-riscv64-zvkb-zvknha_or_zvknhb.S" => [ + "crypto/sha/asm/sha256-riscv64-zvkb-zvknha_or_zvknhb.pl" + ], "crypto/sha/sha256-s390x.S" => [ "crypto/sha/asm/sha512-s390x.pl" ], @@ -10870,6 +12782,9 @@ our %unified_info = ( "crypto/sha/sha512-ppc.s" => [ "crypto/sha/asm/sha512-ppc.pl" ], + "crypto/sha/sha512-riscv64-zvkb-zvknhb.S" => [ + "crypto/sha/asm/sha512-riscv64-zvkb-zvknhb.pl" + ], "crypto/sha/sha512-s390x.S" => [ "crypto/sha/asm/sha512-s390x.pl" ], @@ -10882,6 +12797,24 @@ our %unified_info = ( "crypto/sha/sha512p8-ppc.s" => [ "crypto/sha/asm/sha512p8-ppc.pl" ], + "crypto/sm3/sm3-armv8.S" => [ + "crypto/sm3/asm/sm3-armv8.pl" + ], + "crypto/sm3/sm3-riscv64-zvksh.S" => [ + "crypto/sm3/asm/sm3-riscv64-zvksh.pl" + ], + "crypto/sm4/sm4-armv8.S" => [ + "crypto/sm4/asm/sm4-armv8.pl" + ], + "crypto/sm4/sm4-riscv64-zvksed.s" => [ + "crypto/sm4/asm/sm4-riscv64-zvksed.pl" + ], + "crypto/sm4/vpsm4-armv8.S" => [ + "crypto/sm4/asm/vpsm4-armv8.pl" + ], + "crypto/sm4/vpsm4_ex-armv8.S" => [ + "crypto/sm4/asm/vpsm4_ex-armv8.pl" + ], "crypto/uplink-ia64.s" => [ "ms/uplink-ia64.pl" ], @@ -11047,6 +12980,9 @@ our %unified_info = ( "doc/html/man1/openssl-sess_id.html" => [ "doc/man1/openssl-sess_id.pod" ], + "doc/html/man1/openssl-skeyutl.html" => [ + "doc/man1/openssl-skeyutl.pod" + ], "doc/html/man1/openssl-smime.html" => [ "doc/man1/openssl-smime.pod" ], @@ -11188,6 +13124,9 @@ our %unified_info = ( "doc/html/man3/BIO_get_ex_new_index.html" => [ "doc/man3/BIO_get_ex_new_index.pod" ], + "doc/html/man3/BIO_get_rpoll_descriptor.html" => [ + "doc/man3/BIO_get_rpoll_descriptor.pod" + ], "doc/html/man3/BIO_meth_new.html" => [ "doc/man3/BIO_meth_new.pod" ], @@ -11224,6 +13163,9 @@ our %unified_info = ( "doc/html/man3/BIO_s_datagram.html" => [ "doc/man3/BIO_s_datagram.pod" ], + "doc/html/man3/BIO_s_dgram_pair.html" => [ + "doc/man3/BIO_s_dgram_pair.pod" + ], "doc/html/man3/BIO_s_fd.html" => [ "doc/man3/BIO_s_fd.pod" ], @@ -11239,6 +13181,9 @@ our %unified_info = ( "doc/html/man3/BIO_s_socket.html" => [ "doc/man3/BIO_s_socket.pod" ], + "doc/html/man3/BIO_sendmmsg.html" => [ + "doc/man3/BIO_sendmmsg.pod" + ], "doc/html/man3/BIO_set_callback.html" => [ "doc/man3/BIO_set_callback.pod" ], @@ -11311,6 +13256,9 @@ our %unified_info = ( "doc/html/man3/BUF_MEM_new.html" => [ "doc/man3/BUF_MEM_new.pod" ], + "doc/html/man3/CMAC_CTX.html" => [ + "doc/man3/CMAC_CTX.pod" + ], "doc/html/man3/CMS_EncryptedData_decrypt.html" => [ "doc/man3/CMS_EncryptedData_decrypt.pod" ], @@ -11377,6 +13325,9 @@ our %unified_info = ( "doc/html/man3/CMS_verify_receipt.html" => [ "doc/man3/CMS_verify_receipt.pod" ], + "doc/html/man3/COMP_CTX_new.html" => [ + "doc/man3/COMP_CTX_new.pod" + ], "doc/html/man3/CONF_modules_free.html" => [ "doc/man3/CONF_modules_free.pod" ], @@ -11476,6 +13427,12 @@ our %unified_info = ( "doc/html/man3/DTLS_set_timer_cb.html" => [ "doc/man3/DTLS_set_timer_cb.pod" ], + "doc/html/man3/DTLSv1_get_timeout.html" => [ + "doc/man3/DTLSv1_get_timeout.pod" + ], + "doc/html/man3/DTLSv1_handle_timeout.html" => [ + "doc/man3/DTLSv1_handle_timeout.pod" + ], "doc/html/man3/DTLSv1_listen.html" => [ "doc/man3/DTLSv1_listen.pod" ], @@ -11614,6 +13571,9 @@ our %unified_info = ( "doc/html/man3/EVP_PKEY_CTX_get0_pkey.html" => [ "doc/man3/EVP_PKEY_CTX_get0_pkey.pod" ], + "doc/html/man3/EVP_PKEY_CTX_get_algor.html" => [ + "doc/man3/EVP_PKEY_CTX_get_algor.pod" + ], "doc/html/man3/EVP_PKEY_CTX_new.html" => [ "doc/man3/EVP_PKEY_CTX_new.pod" ], @@ -11731,6 +13691,12 @@ our %unified_info = ( "doc/html/man3/EVP_SIGNATURE.html" => [ "doc/man3/EVP_SIGNATURE.pod" ], + "doc/html/man3/EVP_SKEY.html" => [ + "doc/man3/EVP_SKEY.pod" + ], + "doc/html/man3/EVP_SKEYMGMT.html" => [ + "doc/man3/EVP_SKEYMGMT.pod" + ], "doc/html/man3/EVP_SealInit.html" => [ "doc/man3/EVP_SealInit.pod" ], @@ -11818,6 +13784,9 @@ our %unified_info = ( "doc/html/man3/EVP_whirlpool.html" => [ "doc/man3/EVP_whirlpool.pod" ], + "doc/html/man3/GENERAL_NAME.html" => [ + "doc/man3/GENERAL_NAME.pod" + ], "doc/html/man3/HMAC.html" => [ "doc/man3/HMAC.pod" ], @@ -11890,9 +13859,15 @@ our %unified_info = ( "doc/html/man3/OPENSSL_load_builtin_modules.html" => [ "doc/man3/OPENSSL_load_builtin_modules.pod" ], + "doc/html/man3/OPENSSL_load_u16_le.html" => [ + "doc/man3/OPENSSL_load_u16_le.pod" + ], "doc/html/man3/OPENSSL_malloc.html" => [ "doc/man3/OPENSSL_malloc.pod" ], + "doc/html/man3/OPENSSL_riscvcap.html" => [ + "doc/man3/OPENSSL_riscvcap.pod" + ], "doc/html/man3/OPENSSL_s390xcap.html" => [ "doc/man3/OPENSSL_s390xcap.pod" ], @@ -11908,12 +13883,18 @@ our %unified_info = ( "doc/html/man3/OSSL_CALLBACK.html" => [ "doc/man3/OSSL_CALLBACK.pod" ], + "doc/html/man3/OSSL_CMP_ATAV_set0.html" => [ + "doc/man3/OSSL_CMP_ATAV_set0.pod" + ], "doc/html/man3/OSSL_CMP_CTX_new.html" => [ "doc/man3/OSSL_CMP_CTX_new.pod" ], "doc/html/man3/OSSL_CMP_HDR_get0_transactionID.html" => [ "doc/man3/OSSL_CMP_HDR_get0_transactionID.pod" ], + "doc/html/man3/OSSL_CMP_ITAV_new_caCerts.html" => [ + "doc/man3/OSSL_CMP_ITAV_new_caCerts.pod" + ], "doc/html/man3/OSSL_CMP_ITAV_set0.html" => [ "doc/man3/OSSL_CMP_ITAV_set0.pod" ], @@ -11983,9 +13964,18 @@ our %unified_info = ( "doc/html/man3/OSSL_ENCODER_to_bio.html" => [ "doc/man3/OSSL_ENCODER_to_bio.pod" ], + "doc/html/man3/OSSL_ERR_STATE_save.html" => [ + "doc/man3/OSSL_ERR_STATE_save.pod" + ], "doc/html/man3/OSSL_ESS_check_signing_certs.html" => [ "doc/man3/OSSL_ESS_check_signing_certs.pod" ], + "doc/html/man3/OSSL_GENERAL_NAMES_print.html" => [ + "doc/man3/OSSL_GENERAL_NAMES_print.pod" + ], + "doc/html/man3/OSSL_HPKE_CTX_new.html" => [ + "doc/man3/OSSL_HPKE_CTX_new.pod" + ], "doc/html/man3/OSSL_HTTP_REQ_CTX.html" => [ "doc/man3/OSSL_HTTP_REQ_CTX.pod" ], @@ -11995,12 +13985,24 @@ our %unified_info = ( "doc/html/man3/OSSL_HTTP_transfer.html" => [ "doc/man3/OSSL_HTTP_transfer.pod" ], + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX.html" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX.pod" + ], + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX_print.html" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX_print.pod" + ], + "doc/html/man3/OSSL_INDICATOR_set_callback.html" => [ + "doc/man3/OSSL_INDICATOR_set_callback.pod" + ], "doc/html/man3/OSSL_ITEM.html" => [ "doc/man3/OSSL_ITEM.pod" ], "doc/html/man3/OSSL_LIB_CTX.html" => [ "doc/man3/OSSL_LIB_CTX.pod" ], + "doc/html/man3/OSSL_LIB_CTX_set_conf_diagnostics.html" => [ + "doc/man3/OSSL_LIB_CTX_set_conf_diagnostics.pod" + ], "doc/html/man3/OSSL_PARAM.html" => [ "doc/man3/OSSL_PARAM.pod" ], @@ -12016,9 +14018,15 @@ our %unified_info = ( "doc/html/man3/OSSL_PARAM_int.html" => [ "doc/man3/OSSL_PARAM_int.pod" ], + "doc/html/man3/OSSL_PARAM_print_to_bio.html" => [ + "doc/man3/OSSL_PARAM_print_to_bio.pod" + ], "doc/html/man3/OSSL_PROVIDER.html" => [ "doc/man3/OSSL_PROVIDER.pod" ], + "doc/html/man3/OSSL_QUIC_client_method.html" => [ + "doc/man3/OSSL_QUIC_client_method.pod" + ], "doc/html/man3/OSSL_SELF_TEST_new.html" => [ "doc/man3/OSSL_SELF_TEST_new.pod" ], @@ -12043,6 +14051,9 @@ our %unified_info = ( "doc/html/man3/OSSL_STORE_open.html" => [ "doc/man3/OSSL_STORE_open.pod" ], + "doc/html/man3/OSSL_sleep.html" => [ + "doc/man3/OSSL_sleep.pod" + ], "doc/html/man3/OSSL_trace_enabled.html" => [ "doc/man3/OSSL_trace_enabled.pod" ], @@ -12058,6 +14069,9 @@ our %unified_info = ( "doc/html/man3/OpenSSL_version.html" => [ "doc/man3/OpenSSL_version.pod" ], + "doc/html/man3/PBMAC1_get1_pbkdf2_param.html" => [ + "doc/man3/PBMAC1_get1_pbkdf2_param.pod" + ], "doc/html/man3/PEM_X509_INFO_read_bio_ex.html" => [ "doc/man3/PEM_X509_INFO_read_bio_ex.pod" ], @@ -12094,6 +14108,9 @@ our %unified_info = ( "doc/html/man3/PKCS12_SAFEBAG_get1_cert.html" => [ "doc/man3/PKCS12_SAFEBAG_get1_cert.pod" ], + "doc/html/man3/PKCS12_SAFEBAG_set0_attrs.html" => [ + "doc/man3/PKCS12_SAFEBAG_set0_attrs.pod" + ], "doc/html/man3/PKCS12_add1_attr_by_NID.html" => [ "doc/man3/PKCS12_add1_attr_by_NID.pod" ], @@ -12367,6 +14384,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set0_CA_list.html" => [ "doc/man3/SSL_CTX_set0_CA_list.pod" ], + "doc/html/man3/SSL_CTX_set1_cert_comp_preference.html" => [ + "doc/man3/SSL_CTX_set1_cert_comp_preference.pod" + ], "doc/html/man3/SSL_CTX_set1_curves.html" => [ "doc/man3/SSL_CTX_set1_curves.pod" ], @@ -12406,6 +14426,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_default_passwd_cb.html" => [ "doc/man3/SSL_CTX_set_default_passwd_cb.pod" ], + "doc/html/man3/SSL_CTX_set_domain_flags.html" => [ + "doc/man3/SSL_CTX_set_domain_flags.pod" + ], "doc/html/man3/SSL_CTX_set_generate_session_id.html" => [ "doc/man3/SSL_CTX_set_generate_session_id.pod" ], @@ -12427,6 +14450,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_msg_callback.html" => [ "doc/man3/SSL_CTX_set_msg_callback.pod" ], + "doc/html/man3/SSL_CTX_set_new_pending_conn_cb.html" => [ + "doc/man3/SSL_CTX_set_new_pending_conn_cb.pod" + ], "doc/html/man3/SSL_CTX_set_num_tickets.html" => [ "doc/man3/SSL_CTX_set_num_tickets.pod" ], @@ -12541,6 +14567,9 @@ our %unified_info = ( "doc/html/man3/SSL_accept.html" => [ "doc/man3/SSL_accept.pod" ], + "doc/html/man3/SSL_accept_stream.html" => [ + "doc/man3/SSL_accept_stream.pod" + ], "doc/html/man3/SSL_alert_type_string.html" => [ "doc/man3/SSL_alert_type_string.pod" ], @@ -12568,9 +14597,21 @@ our %unified_info = ( "doc/html/man3/SSL_free.html" => [ "doc/man3/SSL_free.pod" ], + "doc/html/man3/SSL_get0_connection.html" => [ + "doc/man3/SSL_get0_connection.pod" + ], + "doc/html/man3/SSL_get0_group_name.html" => [ + "doc/man3/SSL_get0_group_name.pod" + ], + "doc/html/man3/SSL_get0_peer_rpk.html" => [ + "doc/man3/SSL_get0_peer_rpk.pod" + ], "doc/html/man3/SSL_get0_peer_scts.html" => [ "doc/man3/SSL_get0_peer_scts.pod" ], + "doc/html/man3/SSL_get1_builtin_sigalgs.html" => [ + "doc/man3/SSL_get1_builtin_sigalgs.pod" + ], "doc/html/man3/SSL_get_SSL_CTX.html" => [ "doc/man3/SSL_get_SSL_CTX.pod" ], @@ -12586,6 +14627,9 @@ our %unified_info = ( "doc/html/man3/SSL_get_client_random.html" => [ "doc/man3/SSL_get_client_random.pod" ], + "doc/html/man3/SSL_get_conn_close_info.html" => [ + "doc/man3/SSL_get_conn_close_info.pod" + ], "doc/html/man3/SSL_get_current_cipher.html" => [ "doc/man3/SSL_get_current_cipher.pod" ], @@ -12595,12 +14639,18 @@ our %unified_info = ( "doc/html/man3/SSL_get_error.html" => [ "doc/man3/SSL_get_error.pod" ], + "doc/html/man3/SSL_get_event_timeout.html" => [ + "doc/man3/SSL_get_event_timeout.pod" + ], "doc/html/man3/SSL_get_extms_support.html" => [ "doc/man3/SSL_get_extms_support.pod" ], "doc/html/man3/SSL_get_fd.html" => [ "doc/man3/SSL_get_fd.pod" ], + "doc/html/man3/SSL_get_handshake_rtt.html" => [ + "doc/man3/SSL_get_handshake_rtt.pod" + ], "doc/html/man3/SSL_get_peer_cert_chain.html" => [ "doc/man3/SSL_get_peer_cert_chain.pod" ], @@ -12619,12 +14669,24 @@ our %unified_info = ( "doc/html/man3/SSL_get_rbio.html" => [ "doc/man3/SSL_get_rbio.pod" ], + "doc/html/man3/SSL_get_rpoll_descriptor.html" => [ + "doc/man3/SSL_get_rpoll_descriptor.pod" + ], "doc/html/man3/SSL_get_session.html" => [ "doc/man3/SSL_get_session.pod" ], "doc/html/man3/SSL_get_shared_sigalgs.html" => [ "doc/man3/SSL_get_shared_sigalgs.pod" ], + "doc/html/man3/SSL_get_stream_id.html" => [ + "doc/man3/SSL_get_stream_id.pod" + ], + "doc/html/man3/SSL_get_stream_read_state.html" => [ + "doc/man3/SSL_get_stream_read_state.pod" + ], + "doc/html/man3/SSL_get_value_uint.html" => [ + "doc/man3/SSL_get_value_uint.pod" + ], "doc/html/man3/SSL_get_verify_result.html" => [ "doc/man3/SSL_get_verify_result.pod" ], @@ -12634,9 +14696,15 @@ our %unified_info = ( "doc/html/man3/SSL_group_to_name.html" => [ "doc/man3/SSL_group_to_name.pod" ], + "doc/html/man3/SSL_handle_events.html" => [ + "doc/man3/SSL_handle_events.pod" + ], "doc/html/man3/SSL_in_init.html" => [ "doc/man3/SSL_in_init.pod" ], + "doc/html/man3/SSL_inject_net_dgram.html" => [ + "doc/man3/SSL_inject_net_dgram.pod" + ], "doc/html/man3/SSL_key_update.html" => [ "doc/man3/SSL_key_update.pod" ], @@ -12649,9 +14717,21 @@ our %unified_info = ( "doc/html/man3/SSL_new.html" => [ "doc/man3/SSL_new.pod" ], + "doc/html/man3/SSL_new_domain.html" => [ + "doc/man3/SSL_new_domain.pod" + ], + "doc/html/man3/SSL_new_listener.html" => [ + "doc/man3/SSL_new_listener.pod" + ], + "doc/html/man3/SSL_new_stream.html" => [ + "doc/man3/SSL_new_stream.pod" + ], "doc/html/man3/SSL_pending.html" => [ "doc/man3/SSL_pending.pod" ], + "doc/html/man3/SSL_poll.html" => [ + "doc/man3/SSL_poll.pod" + ], "doc/html/man3/SSL_read.html" => [ "doc/man3/SSL_read.pod" ], @@ -12667,24 +14747,45 @@ our %unified_info = ( "doc/html/man3/SSL_set1_host.html" => [ "doc/man3/SSL_set1_host.pod" ], + "doc/html/man3/SSL_set1_initial_peer_addr.html" => [ + "doc/man3/SSL_set1_initial_peer_addr.pod" + ], + "doc/html/man3/SSL_set1_server_cert_type.html" => [ + "doc/man3/SSL_set1_server_cert_type.pod" + ], "doc/html/man3/SSL_set_async_callback.html" => [ "doc/man3/SSL_set_async_callback.pod" ], "doc/html/man3/SSL_set_bio.html" => [ "doc/man3/SSL_set_bio.pod" ], + "doc/html/man3/SSL_set_blocking_mode.html" => [ + "doc/man3/SSL_set_blocking_mode.pod" + ], "doc/html/man3/SSL_set_connect_state.html" => [ "doc/man3/SSL_set_connect_state.pod" ], + "doc/html/man3/SSL_set_default_stream_mode.html" => [ + "doc/man3/SSL_set_default_stream_mode.pod" + ], "doc/html/man3/SSL_set_fd.html" => [ "doc/man3/SSL_set_fd.pod" ], + "doc/html/man3/SSL_set_incoming_stream_policy.html" => [ + "doc/man3/SSL_set_incoming_stream_policy.pod" + ], + "doc/html/man3/SSL_set_quic_tls_cbs.html" => [ + "doc/man3/SSL_set_quic_tls_cbs.pod" + ], "doc/html/man3/SSL_set_retry_verify.html" => [ "doc/man3/SSL_set_retry_verify.pod" ], "doc/html/man3/SSL_set_session.html" => [ "doc/man3/SSL_set_session.pod" ], + "doc/html/man3/SSL_set_session_secret_cb.html" => [ + "doc/man3/SSL_set_session_secret_cb.pod" + ], "doc/html/man3/SSL_set_shutdown.html" => [ "doc/man3/SSL_set_shutdown.pod" ], @@ -12697,6 +14798,12 @@ our %unified_info = ( "doc/html/man3/SSL_state_string.html" => [ "doc/man3/SSL_state_string.pod" ], + "doc/html/man3/SSL_stream_conclude.html" => [ + "doc/man3/SSL_stream_conclude.pod" + ], + "doc/html/man3/SSL_stream_reset.html" => [ + "doc/man3/SSL_stream_reset.pod" + ], "doc/html/man3/SSL_want.html" => [ "doc/man3/SSL_want.pod" ], @@ -12706,8 +14813,8 @@ our %unified_info = ( "doc/html/man3/TS_RESP_CTX_new.html" => [ "doc/man3/TS_RESP_CTX_new.pod" ], - "doc/html/man3/TS_VERIFY_CTX_set_certs.html" => [ - "doc/man3/TS_VERIFY_CTX_set_certs.pod" + "doc/html/man3/TS_VERIFY_CTX.html" => [ + "doc/man3/TS_VERIFY_CTX.pod" ], "doc/html/man3/UI_STRING.html" => [ "doc/man3/UI_STRING.pod" @@ -12727,6 +14834,21 @@ our %unified_info = ( "doc/html/man3/X509V3_set_ctx.html" => [ "doc/man3/X509V3_set_ctx.pod" ], + "doc/html/man3/X509_ACERT_add1_attr.html" => [ + "doc/man3/X509_ACERT_add1_attr.pod" + ], + "doc/html/man3/X509_ACERT_add_attr_nconf.html" => [ + "doc/man3/X509_ACERT_add_attr_nconf.pod" + ], + "doc/html/man3/X509_ACERT_get0_holder_baseCertId.html" => [ + "doc/man3/X509_ACERT_get0_holder_baseCertId.pod" + ], + "doc/html/man3/X509_ACERT_get_attr.html" => [ + "doc/man3/X509_ACERT_get_attr.pod" + ], + "doc/html/man3/X509_ACERT_print_ex.html" => [ + "doc/man3/X509_ACERT_print_ex.pod" + ], "doc/html/man3/X509_ALGOR_dup.html" => [ "doc/man3/X509_ALGOR_dup.pod" ], @@ -12775,6 +14897,9 @@ our %unified_info = ( "doc/html/man3/X509_SIG_get0.html" => [ "doc/man3/X509_SIG_get0.pod" ], + "doc/html/man3/X509_STORE_CTX_get_by_subject.html" => [ + "doc/man3/X509_STORE_CTX_get_by_subject.pod" + ], "doc/html/man3/X509_STORE_CTX_get_error.html" => [ "doc/man3/X509_STORE_CTX_get_error.pod" ], @@ -12841,6 +14966,9 @@ our %unified_info = ( "doc/html/man3/X509_get0_uids.html" => [ "doc/man3/X509_get0_uids.pod" ], + "doc/html/man3/X509_get_default_cert_file.html" => [ + "doc/man3/X509_get_default_cert_file.pod" + ], "doc/html/man3/X509_get_extension_flags.html" => [ "doc/man3/X509_get_extension_flags.pod" ], @@ -12964,9 +15092,15 @@ our %unified_info = ( "doc/html/man7/EVP_CIPHER-SM4.html" => [ "doc/man7/EVP_CIPHER-SM4.pod" ], + "doc/html/man7/EVP_KDF-ARGON2.html" => [ + "doc/man7/EVP_KDF-ARGON2.pod" + ], "doc/html/man7/EVP_KDF-HKDF.html" => [ "doc/man7/EVP_KDF-HKDF.pod" ], + "doc/html/man7/EVP_KDF-HMAC-DRBG.html" => [ + "doc/man7/EVP_KDF-HMAC-DRBG.pod" + ], "doc/html/man7/EVP_KDF-KB.html" => [ "doc/man7/EVP_KDF-KB.pod" ], @@ -12982,6 +15116,9 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-PKCS12KDF.html" => [ "doc/man7/EVP_KDF-PKCS12KDF.pod" ], + "doc/html/man7/EVP_KDF-PVKKDF.html" => [ + "doc/man7/EVP_KDF-PVKKDF.pod" + ], "doc/html/man7/EVP_KDF-SCRYPT.html" => [ "doc/man7/EVP_KDF-SCRYPT.pod" ], @@ -13006,9 +15143,18 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-X963.html" => [ "doc/man7/EVP_KDF-X963.pod" ], + "doc/html/man7/EVP_KEM-EC.html" => [ + "doc/man7/EVP_KEM-EC.pod" + ], + "doc/html/man7/EVP_KEM-ML-KEM.html" => [ + "doc/man7/EVP_KEM-ML-KEM.pod" + ], "doc/html/man7/EVP_KEM-RSA.html" => [ "doc/man7/EVP_KEM-RSA.pod" ], + "doc/html/man7/EVP_KEM-X25519.html" => [ + "doc/man7/EVP_KEM-X25519.pod" + ], "doc/html/man7/EVP_KEYEXCH-DH.html" => [ "doc/man7/EVP_KEYEXCH-DH.pod" ], @@ -13042,6 +15188,9 @@ our %unified_info = ( "doc/html/man7/EVP_MD-BLAKE2.html" => [ "doc/man7/EVP_MD-BLAKE2.pod" ], + "doc/html/man7/EVP_MD-KECCAK.html" => [ + "doc/man7/EVP_MD-KECCAK.pod" + ], "doc/html/man7/EVP_MD-MD2.html" => [ "doc/man7/EVP_MD-MD2.pod" ], @@ -13099,15 +15248,27 @@ our %unified_info = ( "doc/html/man7/EVP_PKEY-HMAC.html" => [ "doc/man7/EVP_PKEY-HMAC.pod" ], + "doc/html/man7/EVP_PKEY-ML-DSA.html" => [ + "doc/man7/EVP_PKEY-ML-DSA.pod" + ], + "doc/html/man7/EVP_PKEY-ML-KEM.html" => [ + "doc/man7/EVP_PKEY-ML-KEM.pod" + ], "doc/html/man7/EVP_PKEY-RSA.html" => [ "doc/man7/EVP_PKEY-RSA.pod" ], + "doc/html/man7/EVP_PKEY-SLH-DSA.html" => [ + "doc/man7/EVP_PKEY-SLH-DSA.pod" + ], "doc/html/man7/EVP_PKEY-SM2.html" => [ "doc/man7/EVP_PKEY-SM2.pod" ], "doc/html/man7/EVP_PKEY-X25519.html" => [ "doc/man7/EVP_PKEY-X25519.pod" ], + "doc/html/man7/EVP_RAND-CRNG-TEST.html" => [ + "doc/man7/EVP_RAND-CRNG-TEST.pod" + ], "doc/html/man7/EVP_RAND-CTR-DRBG.html" => [ "doc/man7/EVP_RAND-CTR-DRBG.pod" ], @@ -13117,6 +15278,9 @@ our %unified_info = ( "doc/html/man7/EVP_RAND-HMAC-DRBG.html" => [ "doc/man7/EVP_RAND-HMAC-DRBG.pod" ], + "doc/html/man7/EVP_RAND-JITTER.html" => [ + "doc/man7/EVP_RAND-JITTER.pod" + ], "doc/html/man7/EVP_RAND-SEED-SRC.html" => [ "doc/man7/EVP_RAND-SEED-SRC.pod" ], @@ -13138,9 +15302,15 @@ our %unified_info = ( "doc/html/man7/EVP_SIGNATURE-HMAC.html" => [ "doc/man7/EVP_SIGNATURE-HMAC.pod" ], + "doc/html/man7/EVP_SIGNATURE-ML-DSA.html" => [ + "doc/man7/EVP_SIGNATURE-ML-DSA.pod" + ], "doc/html/man7/EVP_SIGNATURE-RSA.html" => [ "doc/man7/EVP_SIGNATURE-RSA.pod" ], + "doc/html/man7/EVP_SIGNATURE-SLH-DSA.html" => [ + "doc/man7/EVP_SIGNATURE-SLH-DSA.pod" + ], "doc/html/man7/OSSL_PROVIDER-FIPS.html" => [ "doc/man7/OSSL_PROVIDER-FIPS.pod" ], @@ -13156,6 +15326,9 @@ our %unified_info = ( "doc/html/man7/OSSL_PROVIDER-null.html" => [ "doc/man7/OSSL_PROVIDER-null.pod" ], + "doc/html/man7/OSSL_STORE-winstore.html" => [ + "doc/man7/OSSL_STORE-winstore.pod" + ], "doc/html/man7/RAND.html" => [ "doc/man7/RAND.pod" ], @@ -13168,9 +15341,6 @@ our %unified_info = ( "doc/html/man7/bio.html" => [ "doc/man7/bio.pod" ], - "doc/html/man7/crypto.html" => [ - "doc/man7/crypto.pod" - ], "doc/html/man7/ct.html" => [ "doc/man7/ct.pod" ], @@ -13201,9 +15371,6 @@ our %unified_info = ( "doc/html/man7/life_cycle-rand.html" => [ "doc/man7/life_cycle-rand.pod" ], - "doc/html/man7/migration_guide.html" => [ - "doc/man7/migration_guide.pod" - ], "doc/html/man7/openssl-core.h.html" => [ "doc/man7/openssl-core.h.pod" ], @@ -13219,12 +15386,66 @@ our %unified_info = ( "doc/html/man7/openssl-glossary.html" => [ "doc/man7/openssl-glossary.pod" ], + "doc/html/man7/openssl-qlog.html" => [ + "doc/man7/openssl-qlog.pod" + ], + "doc/html/man7/openssl-quic-concurrency.html" => [ + "doc/man7/openssl-quic-concurrency.pod" + ], + "doc/html/man7/openssl-quic.html" => [ + "doc/man7/openssl-quic.pod" + ], "doc/html/man7/openssl-threads.html" => [ "doc/man7/openssl-threads.pod" ], "doc/html/man7/openssl_user_macros.html" => [ "doc/man7/openssl_user_macros.pod" ], + "doc/html/man7/ossl-guide-introduction.html" => [ + "doc/man7/ossl-guide-introduction.pod" + ], + "doc/html/man7/ossl-guide-libcrypto-introduction.html" => [ + "doc/man7/ossl-guide-libcrypto-introduction.pod" + ], + "doc/html/man7/ossl-guide-libraries-introduction.html" => [ + "doc/man7/ossl-guide-libraries-introduction.pod" + ], + "doc/html/man7/ossl-guide-libssl-introduction.html" => [ + "doc/man7/ossl-guide-libssl-introduction.pod" + ], + "doc/html/man7/ossl-guide-migration.html" => [ + "doc/man7/ossl-guide-migration.pod" + ], + "doc/html/man7/ossl-guide-quic-client-block.html" => [ + "doc/man7/ossl-guide-quic-client-block.pod" + ], + "doc/html/man7/ossl-guide-quic-client-non-block.html" => [ + "doc/man7/ossl-guide-quic-client-non-block.pod" + ], + "doc/html/man7/ossl-guide-quic-introduction.html" => [ + "doc/man7/ossl-guide-quic-introduction.pod" + ], + "doc/html/man7/ossl-guide-quic-multi-stream.html" => [ + "doc/man7/ossl-guide-quic-multi-stream.pod" + ], + "doc/html/man7/ossl-guide-quic-server-block.html" => [ + "doc/man7/ossl-guide-quic-server-block.pod" + ], + "doc/html/man7/ossl-guide-quic-server-non-block.html" => [ + "doc/man7/ossl-guide-quic-server-non-block.pod" + ], + "doc/html/man7/ossl-guide-tls-client-block.html" => [ + "doc/man7/ossl-guide-tls-client-block.pod" + ], + "doc/html/man7/ossl-guide-tls-client-non-block.html" => [ + "doc/man7/ossl-guide-tls-client-non-block.pod" + ], + "doc/html/man7/ossl-guide-tls-introduction.html" => [ + "doc/man7/ossl-guide-tls-introduction.pod" + ], + "doc/html/man7/ossl-guide-tls-server-block.html" => [ + "doc/man7/ossl-guide-tls-server-block.pod" + ], "doc/html/man7/ossl_store-file.html" => [ "doc/man7/ossl_store-file.pod" ], @@ -13279,6 +15500,9 @@ our %unified_info = ( "doc/html/man7/provider-signature.html" => [ "doc/man7/provider-signature.pod" ], + "doc/html/man7/provider-skeymgmt.html" => [ + "doc/man7/provider-skeymgmt.pod" + ], "doc/html/man7/provider-storemgmt.html" => [ "doc/man7/provider-storemgmt.pod" ], @@ -13288,9 +15512,6 @@ our %unified_info = ( "doc/html/man7/proxy-certificates.html" => [ "doc/man7/proxy-certificates.pod" ], - "doc/html/man7/ssl.html" => [ - "doc/man7/ssl.pod" - ], "doc/html/man7/x509.html" => [ "doc/man7/x509.pod" ], @@ -13438,6 +15659,9 @@ our %unified_info = ( "doc/man/man1/openssl-sess_id.1" => [ "doc/man1/openssl-sess_id.pod" ], + "doc/man/man1/openssl-skeyutl.1" => [ + "doc/man1/openssl-skeyutl.pod" + ], "doc/man/man1/openssl-smime.1" => [ "doc/man1/openssl-smime.pod" ], @@ -13579,6 +15803,9 @@ our %unified_info = ( "doc/man/man3/BIO_get_ex_new_index.3" => [ "doc/man3/BIO_get_ex_new_index.pod" ], + "doc/man/man3/BIO_get_rpoll_descriptor.3" => [ + "doc/man3/BIO_get_rpoll_descriptor.pod" + ], "doc/man/man3/BIO_meth_new.3" => [ "doc/man3/BIO_meth_new.pod" ], @@ -13615,6 +15842,9 @@ our %unified_info = ( "doc/man/man3/BIO_s_datagram.3" => [ "doc/man3/BIO_s_datagram.pod" ], + "doc/man/man3/BIO_s_dgram_pair.3" => [ + "doc/man3/BIO_s_dgram_pair.pod" + ], "doc/man/man3/BIO_s_fd.3" => [ "doc/man3/BIO_s_fd.pod" ], @@ -13630,6 +15860,9 @@ our %unified_info = ( "doc/man/man3/BIO_s_socket.3" => [ "doc/man3/BIO_s_socket.pod" ], + "doc/man/man3/BIO_sendmmsg.3" => [ + "doc/man3/BIO_sendmmsg.pod" + ], "doc/man/man3/BIO_set_callback.3" => [ "doc/man3/BIO_set_callback.pod" ], @@ -13702,6 +15935,9 @@ our %unified_info = ( "doc/man/man3/BUF_MEM_new.3" => [ "doc/man3/BUF_MEM_new.pod" ], + "doc/man/man3/CMAC_CTX.3" => [ + "doc/man3/CMAC_CTX.pod" + ], "doc/man/man3/CMS_EncryptedData_decrypt.3" => [ "doc/man3/CMS_EncryptedData_decrypt.pod" ], @@ -13768,6 +16004,9 @@ our %unified_info = ( "doc/man/man3/CMS_verify_receipt.3" => [ "doc/man3/CMS_verify_receipt.pod" ], + "doc/man/man3/COMP_CTX_new.3" => [ + "doc/man3/COMP_CTX_new.pod" + ], "doc/man/man3/CONF_modules_free.3" => [ "doc/man3/CONF_modules_free.pod" ], @@ -13867,6 +16106,12 @@ our %unified_info = ( "doc/man/man3/DTLS_set_timer_cb.3" => [ "doc/man3/DTLS_set_timer_cb.pod" ], + "doc/man/man3/DTLSv1_get_timeout.3" => [ + "doc/man3/DTLSv1_get_timeout.pod" + ], + "doc/man/man3/DTLSv1_handle_timeout.3" => [ + "doc/man3/DTLSv1_handle_timeout.pod" + ], "doc/man/man3/DTLSv1_listen.3" => [ "doc/man3/DTLSv1_listen.pod" ], @@ -14005,6 +16250,9 @@ our %unified_info = ( "doc/man/man3/EVP_PKEY_CTX_get0_pkey.3" => [ "doc/man3/EVP_PKEY_CTX_get0_pkey.pod" ], + "doc/man/man3/EVP_PKEY_CTX_get_algor.3" => [ + "doc/man3/EVP_PKEY_CTX_get_algor.pod" + ], "doc/man/man3/EVP_PKEY_CTX_new.3" => [ "doc/man3/EVP_PKEY_CTX_new.pod" ], @@ -14122,6 +16370,12 @@ our %unified_info = ( "doc/man/man3/EVP_SIGNATURE.3" => [ "doc/man3/EVP_SIGNATURE.pod" ], + "doc/man/man3/EVP_SKEY.3" => [ + "doc/man3/EVP_SKEY.pod" + ], + "doc/man/man3/EVP_SKEYMGMT.3" => [ + "doc/man3/EVP_SKEYMGMT.pod" + ], "doc/man/man3/EVP_SealInit.3" => [ "doc/man3/EVP_SealInit.pod" ], @@ -14209,6 +16463,9 @@ our %unified_info = ( "doc/man/man3/EVP_whirlpool.3" => [ "doc/man3/EVP_whirlpool.pod" ], + "doc/man/man3/GENERAL_NAME.3" => [ + "doc/man3/GENERAL_NAME.pod" + ], "doc/man/man3/HMAC.3" => [ "doc/man3/HMAC.pod" ], @@ -14281,9 +16538,15 @@ our %unified_info = ( "doc/man/man3/OPENSSL_load_builtin_modules.3" => [ "doc/man3/OPENSSL_load_builtin_modules.pod" ], + "doc/man/man3/OPENSSL_load_u16_le.3" => [ + "doc/man3/OPENSSL_load_u16_le.pod" + ], "doc/man/man3/OPENSSL_malloc.3" => [ "doc/man3/OPENSSL_malloc.pod" ], + "doc/man/man3/OPENSSL_riscvcap.3" => [ + "doc/man3/OPENSSL_riscvcap.pod" + ], "doc/man/man3/OPENSSL_s390xcap.3" => [ "doc/man3/OPENSSL_s390xcap.pod" ], @@ -14299,12 +16562,18 @@ our %unified_info = ( "doc/man/man3/OSSL_CALLBACK.3" => [ "doc/man3/OSSL_CALLBACK.pod" ], + "doc/man/man3/OSSL_CMP_ATAV_set0.3" => [ + "doc/man3/OSSL_CMP_ATAV_set0.pod" + ], "doc/man/man3/OSSL_CMP_CTX_new.3" => [ "doc/man3/OSSL_CMP_CTX_new.pod" ], "doc/man/man3/OSSL_CMP_HDR_get0_transactionID.3" => [ "doc/man3/OSSL_CMP_HDR_get0_transactionID.pod" ], + "doc/man/man3/OSSL_CMP_ITAV_new_caCerts.3" => [ + "doc/man3/OSSL_CMP_ITAV_new_caCerts.pod" + ], "doc/man/man3/OSSL_CMP_ITAV_set0.3" => [ "doc/man3/OSSL_CMP_ITAV_set0.pod" ], @@ -14374,9 +16643,18 @@ our %unified_info = ( "doc/man/man3/OSSL_ENCODER_to_bio.3" => [ "doc/man3/OSSL_ENCODER_to_bio.pod" ], + "doc/man/man3/OSSL_ERR_STATE_save.3" => [ + "doc/man3/OSSL_ERR_STATE_save.pod" + ], "doc/man/man3/OSSL_ESS_check_signing_certs.3" => [ "doc/man3/OSSL_ESS_check_signing_certs.pod" ], + "doc/man/man3/OSSL_GENERAL_NAMES_print.3" => [ + "doc/man3/OSSL_GENERAL_NAMES_print.pod" + ], + "doc/man/man3/OSSL_HPKE_CTX_new.3" => [ + "doc/man3/OSSL_HPKE_CTX_new.pod" + ], "doc/man/man3/OSSL_HTTP_REQ_CTX.3" => [ "doc/man3/OSSL_HTTP_REQ_CTX.pod" ], @@ -14386,12 +16664,24 @@ our %unified_info = ( "doc/man/man3/OSSL_HTTP_transfer.3" => [ "doc/man3/OSSL_HTTP_transfer.pod" ], + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX.3" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX.pod" + ], + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX_print.3" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX_print.pod" + ], + "doc/man/man3/OSSL_INDICATOR_set_callback.3" => [ + "doc/man3/OSSL_INDICATOR_set_callback.pod" + ], "doc/man/man3/OSSL_ITEM.3" => [ "doc/man3/OSSL_ITEM.pod" ], "doc/man/man3/OSSL_LIB_CTX.3" => [ "doc/man3/OSSL_LIB_CTX.pod" ], + "doc/man/man3/OSSL_LIB_CTX_set_conf_diagnostics.3" => [ + "doc/man3/OSSL_LIB_CTX_set_conf_diagnostics.pod" + ], "doc/man/man3/OSSL_PARAM.3" => [ "doc/man3/OSSL_PARAM.pod" ], @@ -14407,9 +16697,15 @@ our %unified_info = ( "doc/man/man3/OSSL_PARAM_int.3" => [ "doc/man3/OSSL_PARAM_int.pod" ], + "doc/man/man3/OSSL_PARAM_print_to_bio.3" => [ + "doc/man3/OSSL_PARAM_print_to_bio.pod" + ], "doc/man/man3/OSSL_PROVIDER.3" => [ "doc/man3/OSSL_PROVIDER.pod" ], + "doc/man/man3/OSSL_QUIC_client_method.3" => [ + "doc/man3/OSSL_QUIC_client_method.pod" + ], "doc/man/man3/OSSL_SELF_TEST_new.3" => [ "doc/man3/OSSL_SELF_TEST_new.pod" ], @@ -14434,6 +16730,9 @@ our %unified_info = ( "doc/man/man3/OSSL_STORE_open.3" => [ "doc/man3/OSSL_STORE_open.pod" ], + "doc/man/man3/OSSL_sleep.3" => [ + "doc/man3/OSSL_sleep.pod" + ], "doc/man/man3/OSSL_trace_enabled.3" => [ "doc/man3/OSSL_trace_enabled.pod" ], @@ -14449,6 +16748,9 @@ our %unified_info = ( "doc/man/man3/OpenSSL_version.3" => [ "doc/man3/OpenSSL_version.pod" ], + "doc/man/man3/PBMAC1_get1_pbkdf2_param.3" => [ + "doc/man3/PBMAC1_get1_pbkdf2_param.pod" + ], "doc/man/man3/PEM_X509_INFO_read_bio_ex.3" => [ "doc/man3/PEM_X509_INFO_read_bio_ex.pod" ], @@ -14485,6 +16787,9 @@ our %unified_info = ( "doc/man/man3/PKCS12_SAFEBAG_get1_cert.3" => [ "doc/man3/PKCS12_SAFEBAG_get1_cert.pod" ], + "doc/man/man3/PKCS12_SAFEBAG_set0_attrs.3" => [ + "doc/man3/PKCS12_SAFEBAG_set0_attrs.pod" + ], "doc/man/man3/PKCS12_add1_attr_by_NID.3" => [ "doc/man3/PKCS12_add1_attr_by_NID.pod" ], @@ -14758,6 +17063,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set0_CA_list.3" => [ "doc/man3/SSL_CTX_set0_CA_list.pod" ], + "doc/man/man3/SSL_CTX_set1_cert_comp_preference.3" => [ + "doc/man3/SSL_CTX_set1_cert_comp_preference.pod" + ], "doc/man/man3/SSL_CTX_set1_curves.3" => [ "doc/man3/SSL_CTX_set1_curves.pod" ], @@ -14797,6 +17105,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_default_passwd_cb.3" => [ "doc/man3/SSL_CTX_set_default_passwd_cb.pod" ], + "doc/man/man3/SSL_CTX_set_domain_flags.3" => [ + "doc/man3/SSL_CTX_set_domain_flags.pod" + ], "doc/man/man3/SSL_CTX_set_generate_session_id.3" => [ "doc/man3/SSL_CTX_set_generate_session_id.pod" ], @@ -14818,6 +17129,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_msg_callback.3" => [ "doc/man3/SSL_CTX_set_msg_callback.pod" ], + "doc/man/man3/SSL_CTX_set_new_pending_conn_cb.3" => [ + "doc/man3/SSL_CTX_set_new_pending_conn_cb.pod" + ], "doc/man/man3/SSL_CTX_set_num_tickets.3" => [ "doc/man3/SSL_CTX_set_num_tickets.pod" ], @@ -14932,6 +17246,9 @@ our %unified_info = ( "doc/man/man3/SSL_accept.3" => [ "doc/man3/SSL_accept.pod" ], + "doc/man/man3/SSL_accept_stream.3" => [ + "doc/man3/SSL_accept_stream.pod" + ], "doc/man/man3/SSL_alert_type_string.3" => [ "doc/man3/SSL_alert_type_string.pod" ], @@ -14959,9 +17276,21 @@ our %unified_info = ( "doc/man/man3/SSL_free.3" => [ "doc/man3/SSL_free.pod" ], + "doc/man/man3/SSL_get0_connection.3" => [ + "doc/man3/SSL_get0_connection.pod" + ], + "doc/man/man3/SSL_get0_group_name.3" => [ + "doc/man3/SSL_get0_group_name.pod" + ], + "doc/man/man3/SSL_get0_peer_rpk.3" => [ + "doc/man3/SSL_get0_peer_rpk.pod" + ], "doc/man/man3/SSL_get0_peer_scts.3" => [ "doc/man3/SSL_get0_peer_scts.pod" ], + "doc/man/man3/SSL_get1_builtin_sigalgs.3" => [ + "doc/man3/SSL_get1_builtin_sigalgs.pod" + ], "doc/man/man3/SSL_get_SSL_CTX.3" => [ "doc/man3/SSL_get_SSL_CTX.pod" ], @@ -14977,6 +17306,9 @@ our %unified_info = ( "doc/man/man3/SSL_get_client_random.3" => [ "doc/man3/SSL_get_client_random.pod" ], + "doc/man/man3/SSL_get_conn_close_info.3" => [ + "doc/man3/SSL_get_conn_close_info.pod" + ], "doc/man/man3/SSL_get_current_cipher.3" => [ "doc/man3/SSL_get_current_cipher.pod" ], @@ -14986,12 +17318,18 @@ our %unified_info = ( "doc/man/man3/SSL_get_error.3" => [ "doc/man3/SSL_get_error.pod" ], + "doc/man/man3/SSL_get_event_timeout.3" => [ + "doc/man3/SSL_get_event_timeout.pod" + ], "doc/man/man3/SSL_get_extms_support.3" => [ "doc/man3/SSL_get_extms_support.pod" ], "doc/man/man3/SSL_get_fd.3" => [ "doc/man3/SSL_get_fd.pod" ], + "doc/man/man3/SSL_get_handshake_rtt.3" => [ + "doc/man3/SSL_get_handshake_rtt.pod" + ], "doc/man/man3/SSL_get_peer_cert_chain.3" => [ "doc/man3/SSL_get_peer_cert_chain.pod" ], @@ -15010,12 +17348,24 @@ our %unified_info = ( "doc/man/man3/SSL_get_rbio.3" => [ "doc/man3/SSL_get_rbio.pod" ], + "doc/man/man3/SSL_get_rpoll_descriptor.3" => [ + "doc/man3/SSL_get_rpoll_descriptor.pod" + ], "doc/man/man3/SSL_get_session.3" => [ "doc/man3/SSL_get_session.pod" ], "doc/man/man3/SSL_get_shared_sigalgs.3" => [ "doc/man3/SSL_get_shared_sigalgs.pod" ], + "doc/man/man3/SSL_get_stream_id.3" => [ + "doc/man3/SSL_get_stream_id.pod" + ], + "doc/man/man3/SSL_get_stream_read_state.3" => [ + "doc/man3/SSL_get_stream_read_state.pod" + ], + "doc/man/man3/SSL_get_value_uint.3" => [ + "doc/man3/SSL_get_value_uint.pod" + ], "doc/man/man3/SSL_get_verify_result.3" => [ "doc/man3/SSL_get_verify_result.pod" ], @@ -15025,9 +17375,15 @@ our %unified_info = ( "doc/man/man3/SSL_group_to_name.3" => [ "doc/man3/SSL_group_to_name.pod" ], + "doc/man/man3/SSL_handle_events.3" => [ + "doc/man3/SSL_handle_events.pod" + ], "doc/man/man3/SSL_in_init.3" => [ "doc/man3/SSL_in_init.pod" ], + "doc/man/man3/SSL_inject_net_dgram.3" => [ + "doc/man3/SSL_inject_net_dgram.pod" + ], "doc/man/man3/SSL_key_update.3" => [ "doc/man3/SSL_key_update.pod" ], @@ -15040,9 +17396,21 @@ our %unified_info = ( "doc/man/man3/SSL_new.3" => [ "doc/man3/SSL_new.pod" ], + "doc/man/man3/SSL_new_domain.3" => [ + "doc/man3/SSL_new_domain.pod" + ], + "doc/man/man3/SSL_new_listener.3" => [ + "doc/man3/SSL_new_listener.pod" + ], + "doc/man/man3/SSL_new_stream.3" => [ + "doc/man3/SSL_new_stream.pod" + ], "doc/man/man3/SSL_pending.3" => [ "doc/man3/SSL_pending.pod" ], + "doc/man/man3/SSL_poll.3" => [ + "doc/man3/SSL_poll.pod" + ], "doc/man/man3/SSL_read.3" => [ "doc/man3/SSL_read.pod" ], @@ -15058,24 +17426,45 @@ our %unified_info = ( "doc/man/man3/SSL_set1_host.3" => [ "doc/man3/SSL_set1_host.pod" ], + "doc/man/man3/SSL_set1_initial_peer_addr.3" => [ + "doc/man3/SSL_set1_initial_peer_addr.pod" + ], + "doc/man/man3/SSL_set1_server_cert_type.3" => [ + "doc/man3/SSL_set1_server_cert_type.pod" + ], "doc/man/man3/SSL_set_async_callback.3" => [ "doc/man3/SSL_set_async_callback.pod" ], "doc/man/man3/SSL_set_bio.3" => [ "doc/man3/SSL_set_bio.pod" ], + "doc/man/man3/SSL_set_blocking_mode.3" => [ + "doc/man3/SSL_set_blocking_mode.pod" + ], "doc/man/man3/SSL_set_connect_state.3" => [ "doc/man3/SSL_set_connect_state.pod" ], + "doc/man/man3/SSL_set_default_stream_mode.3" => [ + "doc/man3/SSL_set_default_stream_mode.pod" + ], "doc/man/man3/SSL_set_fd.3" => [ "doc/man3/SSL_set_fd.pod" ], + "doc/man/man3/SSL_set_incoming_stream_policy.3" => [ + "doc/man3/SSL_set_incoming_stream_policy.pod" + ], + "doc/man/man3/SSL_set_quic_tls_cbs.3" => [ + "doc/man3/SSL_set_quic_tls_cbs.pod" + ], "doc/man/man3/SSL_set_retry_verify.3" => [ "doc/man3/SSL_set_retry_verify.pod" ], "doc/man/man3/SSL_set_session.3" => [ "doc/man3/SSL_set_session.pod" ], + "doc/man/man3/SSL_set_session_secret_cb.3" => [ + "doc/man3/SSL_set_session_secret_cb.pod" + ], "doc/man/man3/SSL_set_shutdown.3" => [ "doc/man3/SSL_set_shutdown.pod" ], @@ -15088,6 +17477,12 @@ our %unified_info = ( "doc/man/man3/SSL_state_string.3" => [ "doc/man3/SSL_state_string.pod" ], + "doc/man/man3/SSL_stream_conclude.3" => [ + "doc/man3/SSL_stream_conclude.pod" + ], + "doc/man/man3/SSL_stream_reset.3" => [ + "doc/man3/SSL_stream_reset.pod" + ], "doc/man/man3/SSL_want.3" => [ "doc/man3/SSL_want.pod" ], @@ -15097,8 +17492,8 @@ our %unified_info = ( "doc/man/man3/TS_RESP_CTX_new.3" => [ "doc/man3/TS_RESP_CTX_new.pod" ], - "doc/man/man3/TS_VERIFY_CTX_set_certs.3" => [ - "doc/man3/TS_VERIFY_CTX_set_certs.pod" + "doc/man/man3/TS_VERIFY_CTX.3" => [ + "doc/man3/TS_VERIFY_CTX.pod" ], "doc/man/man3/UI_STRING.3" => [ "doc/man3/UI_STRING.pod" @@ -15118,6 +17513,21 @@ our %unified_info = ( "doc/man/man3/X509V3_set_ctx.3" => [ "doc/man3/X509V3_set_ctx.pod" ], + "doc/man/man3/X509_ACERT_add1_attr.3" => [ + "doc/man3/X509_ACERT_add1_attr.pod" + ], + "doc/man/man3/X509_ACERT_add_attr_nconf.3" => [ + "doc/man3/X509_ACERT_add_attr_nconf.pod" + ], + "doc/man/man3/X509_ACERT_get0_holder_baseCertId.3" => [ + "doc/man3/X509_ACERT_get0_holder_baseCertId.pod" + ], + "doc/man/man3/X509_ACERT_get_attr.3" => [ + "doc/man3/X509_ACERT_get_attr.pod" + ], + "doc/man/man3/X509_ACERT_print_ex.3" => [ + "doc/man3/X509_ACERT_print_ex.pod" + ], "doc/man/man3/X509_ALGOR_dup.3" => [ "doc/man3/X509_ALGOR_dup.pod" ], @@ -15166,6 +17576,9 @@ our %unified_info = ( "doc/man/man3/X509_SIG_get0.3" => [ "doc/man3/X509_SIG_get0.pod" ], + "doc/man/man3/X509_STORE_CTX_get_by_subject.3" => [ + "doc/man3/X509_STORE_CTX_get_by_subject.pod" + ], "doc/man/man3/X509_STORE_CTX_get_error.3" => [ "doc/man3/X509_STORE_CTX_get_error.pod" ], @@ -15232,6 +17645,9 @@ our %unified_info = ( "doc/man/man3/X509_get0_uids.3" => [ "doc/man3/X509_get0_uids.pod" ], + "doc/man/man3/X509_get_default_cert_file.3" => [ + "doc/man3/X509_get_default_cert_file.pod" + ], "doc/man/man3/X509_get_extension_flags.3" => [ "doc/man3/X509_get_extension_flags.pod" ], @@ -15355,9 +17771,15 @@ our %unified_info = ( "doc/man/man7/EVP_CIPHER-SM4.7" => [ "doc/man7/EVP_CIPHER-SM4.pod" ], + "doc/man/man7/EVP_KDF-ARGON2.7" => [ + "doc/man7/EVP_KDF-ARGON2.pod" + ], "doc/man/man7/EVP_KDF-HKDF.7" => [ "doc/man7/EVP_KDF-HKDF.pod" ], + "doc/man/man7/EVP_KDF-HMAC-DRBG.7" => [ + "doc/man7/EVP_KDF-HMAC-DRBG.pod" + ], "doc/man/man7/EVP_KDF-KB.7" => [ "doc/man7/EVP_KDF-KB.pod" ], @@ -15373,6 +17795,9 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-PKCS12KDF.7" => [ "doc/man7/EVP_KDF-PKCS12KDF.pod" ], + "doc/man/man7/EVP_KDF-PVKKDF.7" => [ + "doc/man7/EVP_KDF-PVKKDF.pod" + ], "doc/man/man7/EVP_KDF-SCRYPT.7" => [ "doc/man7/EVP_KDF-SCRYPT.pod" ], @@ -15397,9 +17822,18 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-X963.7" => [ "doc/man7/EVP_KDF-X963.pod" ], + "doc/man/man7/EVP_KEM-EC.7" => [ + "doc/man7/EVP_KEM-EC.pod" + ], + "doc/man/man7/EVP_KEM-ML-KEM.7" => [ + "doc/man7/EVP_KEM-ML-KEM.pod" + ], "doc/man/man7/EVP_KEM-RSA.7" => [ "doc/man7/EVP_KEM-RSA.pod" ], + "doc/man/man7/EVP_KEM-X25519.7" => [ + "doc/man7/EVP_KEM-X25519.pod" + ], "doc/man/man7/EVP_KEYEXCH-DH.7" => [ "doc/man7/EVP_KEYEXCH-DH.pod" ], @@ -15433,6 +17867,9 @@ our %unified_info = ( "doc/man/man7/EVP_MD-BLAKE2.7" => [ "doc/man7/EVP_MD-BLAKE2.pod" ], + "doc/man/man7/EVP_MD-KECCAK.7" => [ + "doc/man7/EVP_MD-KECCAK.pod" + ], "doc/man/man7/EVP_MD-MD2.7" => [ "doc/man7/EVP_MD-MD2.pod" ], @@ -15490,15 +17927,27 @@ our %unified_info = ( "doc/man/man7/EVP_PKEY-HMAC.7" => [ "doc/man7/EVP_PKEY-HMAC.pod" ], + "doc/man/man7/EVP_PKEY-ML-DSA.7" => [ + "doc/man7/EVP_PKEY-ML-DSA.pod" + ], + "doc/man/man7/EVP_PKEY-ML-KEM.7" => [ + "doc/man7/EVP_PKEY-ML-KEM.pod" + ], "doc/man/man7/EVP_PKEY-RSA.7" => [ "doc/man7/EVP_PKEY-RSA.pod" ], + "doc/man/man7/EVP_PKEY-SLH-DSA.7" => [ + "doc/man7/EVP_PKEY-SLH-DSA.pod" + ], "doc/man/man7/EVP_PKEY-SM2.7" => [ "doc/man7/EVP_PKEY-SM2.pod" ], "doc/man/man7/EVP_PKEY-X25519.7" => [ "doc/man7/EVP_PKEY-X25519.pod" ], + "doc/man/man7/EVP_RAND-CRNG-TEST.7" => [ + "doc/man7/EVP_RAND-CRNG-TEST.pod" + ], "doc/man/man7/EVP_RAND-CTR-DRBG.7" => [ "doc/man7/EVP_RAND-CTR-DRBG.pod" ], @@ -15508,6 +17957,9 @@ our %unified_info = ( "doc/man/man7/EVP_RAND-HMAC-DRBG.7" => [ "doc/man7/EVP_RAND-HMAC-DRBG.pod" ], + "doc/man/man7/EVP_RAND-JITTER.7" => [ + "doc/man7/EVP_RAND-JITTER.pod" + ], "doc/man/man7/EVP_RAND-SEED-SRC.7" => [ "doc/man7/EVP_RAND-SEED-SRC.pod" ], @@ -15529,9 +17981,15 @@ our %unified_info = ( "doc/man/man7/EVP_SIGNATURE-HMAC.7" => [ "doc/man7/EVP_SIGNATURE-HMAC.pod" ], + "doc/man/man7/EVP_SIGNATURE-ML-DSA.7" => [ + "doc/man7/EVP_SIGNATURE-ML-DSA.pod" + ], "doc/man/man7/EVP_SIGNATURE-RSA.7" => [ "doc/man7/EVP_SIGNATURE-RSA.pod" ], + "doc/man/man7/EVP_SIGNATURE-SLH-DSA.7" => [ + "doc/man7/EVP_SIGNATURE-SLH-DSA.pod" + ], "doc/man/man7/OSSL_PROVIDER-FIPS.7" => [ "doc/man7/OSSL_PROVIDER-FIPS.pod" ], @@ -15547,6 +18005,9 @@ our %unified_info = ( "doc/man/man7/OSSL_PROVIDER-null.7" => [ "doc/man7/OSSL_PROVIDER-null.pod" ], + "doc/man/man7/OSSL_STORE-winstore.7" => [ + "doc/man7/OSSL_STORE-winstore.pod" + ], "doc/man/man7/RAND.7" => [ "doc/man7/RAND.pod" ], @@ -15559,9 +18020,6 @@ our %unified_info = ( "doc/man/man7/bio.7" => [ "doc/man7/bio.pod" ], - "doc/man/man7/crypto.7" => [ - "doc/man7/crypto.pod" - ], "doc/man/man7/ct.7" => [ "doc/man7/ct.pod" ], @@ -15592,9 +18050,6 @@ our %unified_info = ( "doc/man/man7/life_cycle-rand.7" => [ "doc/man7/life_cycle-rand.pod" ], - "doc/man/man7/migration_guide.7" => [ - "doc/man7/migration_guide.pod" - ], "doc/man/man7/openssl-core.h.7" => [ "doc/man7/openssl-core.h.pod" ], @@ -15610,12 +18065,66 @@ our %unified_info = ( "doc/man/man7/openssl-glossary.7" => [ "doc/man7/openssl-glossary.pod" ], + "doc/man/man7/openssl-qlog.7" => [ + "doc/man7/openssl-qlog.pod" + ], + "doc/man/man7/openssl-quic-concurrency.7" => [ + "doc/man7/openssl-quic-concurrency.pod" + ], + "doc/man/man7/openssl-quic.7" => [ + "doc/man7/openssl-quic.pod" + ], "doc/man/man7/openssl-threads.7" => [ "doc/man7/openssl-threads.pod" ], "doc/man/man7/openssl_user_macros.7" => [ "doc/man7/openssl_user_macros.pod" ], + "doc/man/man7/ossl-guide-introduction.7" => [ + "doc/man7/ossl-guide-introduction.pod" + ], + "doc/man/man7/ossl-guide-libcrypto-introduction.7" => [ + "doc/man7/ossl-guide-libcrypto-introduction.pod" + ], + "doc/man/man7/ossl-guide-libraries-introduction.7" => [ + "doc/man7/ossl-guide-libraries-introduction.pod" + ], + "doc/man/man7/ossl-guide-libssl-introduction.7" => [ + "doc/man7/ossl-guide-libssl-introduction.pod" + ], + "doc/man/man7/ossl-guide-migration.7" => [ + "doc/man7/ossl-guide-migration.pod" + ], + "doc/man/man7/ossl-guide-quic-client-block.7" => [ + "doc/man7/ossl-guide-quic-client-block.pod" + ], + "doc/man/man7/ossl-guide-quic-client-non-block.7" => [ + "doc/man7/ossl-guide-quic-client-non-block.pod" + ], + "doc/man/man7/ossl-guide-quic-introduction.7" => [ + "doc/man7/ossl-guide-quic-introduction.pod" + ], + "doc/man/man7/ossl-guide-quic-multi-stream.7" => [ + "doc/man7/ossl-guide-quic-multi-stream.pod" + ], + "doc/man/man7/ossl-guide-quic-server-block.7" => [ + "doc/man7/ossl-guide-quic-server-block.pod" + ], + "doc/man/man7/ossl-guide-quic-server-non-block.7" => [ + "doc/man7/ossl-guide-quic-server-non-block.pod" + ], + "doc/man/man7/ossl-guide-tls-client-block.7" => [ + "doc/man7/ossl-guide-tls-client-block.pod" + ], + "doc/man/man7/ossl-guide-tls-client-non-block.7" => [ + "doc/man7/ossl-guide-tls-client-non-block.pod" + ], + "doc/man/man7/ossl-guide-tls-introduction.7" => [ + "doc/man7/ossl-guide-tls-introduction.pod" + ], + "doc/man/man7/ossl-guide-tls-server-block.7" => [ + "doc/man7/ossl-guide-tls-server-block.pod" + ], "doc/man/man7/ossl_store-file.7" => [ "doc/man7/ossl_store-file.pod" ], @@ -15670,6 +18179,9 @@ our %unified_info = ( "doc/man/man7/provider-signature.7" => [ "doc/man7/provider-signature.pod" ], + "doc/man/man7/provider-skeymgmt.7" => [ + "doc/man7/provider-skeymgmt.pod" + ], "doc/man/man7/provider-storemgmt.7" => [ "doc/man7/provider-storemgmt.pod" ], @@ -15679,9 +18191,6 @@ our %unified_info = ( "doc/man/man7/proxy-certificates.7" => [ "doc/man7/proxy-certificates.pod" ], - "doc/man/man7/ssl.7" => [ - "doc/man7/ssl.pod" - ], "doc/man/man7/x509.7" => [ "doc/man7/x509.pod" ], @@ -15817,6 +18326,9 @@ our %unified_info = ( "doc/man1/openssl-sess_id.pod" => [ "doc/man1/openssl-sess_id.pod.in" ], + "doc/man1/openssl-skeyutl.pod" => [ + "doc/man1/openssl-skeyutl.pod.in" + ], "doc/man1/openssl-smime.pod" => [ "doc/man1/openssl-smime.pod.in" ], @@ -15853,12 +18365,30 @@ our %unified_info = ( "engines/e_padlock-x86_64.s" => [ "engines/asm/e_padlock-x86_64.pl" ], + "exporters/OpenSSLConfig.cmake" => [ + "exporters/cmake/OpenSSLConfig.cmake.in" + ], + "exporters/OpenSSLConfigVersion.cmake" => [ + "exporters/cmake/OpenSSLConfigVersion.cmake.in" + ], + "exporters/libcrypto.pc" => [ + "exporters/pkg-config/libcrypto.pc.in" + ], + "exporters/libssl.pc" => [ + "exporters/pkg-config/libssl.pc.in" + ], + "exporters/openssl.pc" => [ + "exporters/pkg-config/openssl.pc.in" + ], "include/crypto/bn_conf.h" => [ "include/crypto/bn_conf.h.in" ], "include/crypto/dso_conf.h" => [ "include/crypto/dso_conf.h.in" ], + "include/internal/param_names.h" => [ + "include/internal/param_names.h.in" + ], "include/openssl/asn1.h" => [ "include/openssl/asn1.h.in" ], @@ -15874,12 +18404,18 @@ our %unified_info = ( "include/openssl/cms.h" => [ "include/openssl/cms.h.in" ], + "include/openssl/comp.h" => [ + "include/openssl/comp.h.in" + ], "include/openssl/conf.h" => [ "include/openssl/conf.h.in" ], "include/openssl/configuration.h" => [ "include/openssl/configuration.h.in" ], + "include/openssl/core_names.h" => [ + "include/openssl/core_names.h.in" + ], "include/openssl/crmf.h" => [ "include/openssl/crmf.h.in" ], @@ -15928,12 +18464,39 @@ our %unified_info = ( "include/openssl/x509.h" => [ "include/openssl/x509.h.in" ], + "include/openssl/x509_acert.h" => [ + "include/openssl/x509_acert.h.in" + ], "include/openssl/x509_vfy.h" => [ "include/openssl/x509_vfy.h.in" ], "include/openssl/x509v3.h" => [ "include/openssl/x509v3.h.in" ], + "installdata.pm" => [ + "util/mkinstallvars.pl", + "\"PREFIX=\$(INSTALLTOP)\"", + "BINDIR=bin", + "\"LIBDIR=\$(LIBDIR)\"", + "\"libdir=\$(libdir)\"", + "INCLUDEDIR=include", + "APPLINKDIR=include/openssl", + "\"ENGINESDIR=\$(ENGINESDIR)\"", + "\"MODULESDIR=\$(MODULESDIR)\"", + "\"PKGCONFIGDIR=\$(PKGCONFIGDIR)\"", + "\"CMAKECONFIGDIR=\$(CMAKECONFIGDIR)\"", + "\"LDLIBS=\$(LIB_EX_LIBS)\"", + "\"VERSION=\$(VERSION)\"" + ], + "libcrypto.pc" => [ + "exporters/pkg-config/libcrypto.pc.in" + ], + "libssl.pc" => [ + "exporters/pkg-config/libssl.pc.in" + ], + "openssl.pc" => [ + "exporters/pkg-config/openssl.pc.in" + ], "providers/common/der/der_digests_gen.c" => [ "providers/common/der/der_digests_gen.c.in" ], @@ -15946,9 +18509,15 @@ our %unified_info = ( "providers/common/der/der_ecx_gen.c" => [ "providers/common/der/der_ecx_gen.c.in" ], + "providers/common/der/der_ml_dsa_gen.c" => [ + "providers/common/der/der_ml_dsa_gen.c.in" + ], "providers/common/der/der_rsa_gen.c" => [ "providers/common/der/der_rsa_gen.c.in" ], + "providers/common/der/der_slh_dsa_gen.c" => [ + "providers/common/der/der_slh_dsa_gen.c.in" + ], "providers/common/der/der_sm2_gen.c" => [ "providers/common/der/der_sm2_gen.c.in" ], @@ -15967,9 +18536,15 @@ our %unified_info = ( "providers/common/include/prov/der_ecx.h" => [ "providers/common/include/prov/der_ecx.h.in" ], + "providers/common/include/prov/der_ml_dsa.h" => [ + "providers/common/include/prov/der_ml_dsa.h.in" + ], "providers/common/include/prov/der_rsa.h" => [ "providers/common/include/prov/der_rsa.h.in" ], + "providers/common/include/prov/der_slh_dsa.h" => [ + "providers/common/include/prov/der_slh_dsa.h.in" + ], "providers/common/include/prov/der_sm2.h" => [ "providers/common/include/prov/der_sm2.h.in" ], @@ -16005,6 +18580,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "buffer" ], + "test/buildtest_byteorder.c" => [ + "test/generate_buildtest.pl", + "byteorder" + ], "test/buildtest_camellia.c" => [ "test/generate_buildtest.pl", "camellia" @@ -16037,10 +18616,6 @@ our %unified_info = ( "test/generate_buildtest.pl", "core_dispatch" ], - "test/buildtest_core_names.c" => [ - "test/generate_buildtest.pl", - "core_names" - ], "test/buildtest_core_object.c" => [ "test/generate_buildtest.pl", "core_object" @@ -16073,6 +18648,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "e_os2" ], + "test/buildtest_e_ostime.c" => [ + "test/generate_buildtest.pl", + "e_ostime" + ], "test/buildtest_ebcdic.c" => [ "test/generate_buildtest.pl", "ebcdic" @@ -16109,6 +18688,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "hmac" ], + "test/buildtest_hpke.c" => [ + "test/generate_buildtest.pl", + "hpke" + ], "test/buildtest_http.c" => [ "test/generate_buildtest.pl", "http" @@ -16117,6 +18700,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "idea" ], + "test/buildtest_indicator.c" => [ + "test/generate_buildtest.pl", + "indicator" + ], "test/buildtest_kdf.c" => [ "test/generate_buildtest.pl", "kdf" @@ -16137,6 +18724,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "mdc2" ], + "test/buildtest_ml_kem.c" => [ + "test/generate_buildtest.pl", + "ml_kem" + ], "test/buildtest_modes.c" => [ "test/generate_buildtest.pl", "modes" @@ -16177,6 +18768,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "provider" ], + "test/buildtest_quic.c" => [ + "test/generate_buildtest.pl", + "quic" + ], "test/buildtest_rand.c" => [ "test/generate_buildtest.pl", "rand" @@ -16233,6 +18828,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "symhacks" ], + "test/buildtest_thread.c" => [ + "test/generate_buildtest.pl", + "thread" + ], "test/buildtest_tls1.c" => [ "test/generate_buildtest.pl", "tls1" @@ -16307,6 +18906,7 @@ our %unified_info = ( "doc/html/man1/openssl-s_server.html", "doc/html/man1/openssl-s_time.html", "doc/html/man1/openssl-sess_id.html", + "doc/html/man1/openssl-skeyutl.html", "doc/html/man1/openssl-smime.html", "doc/html/man1/openssl-speed.html", "doc/html/man1/openssl-spkac.html", @@ -16356,6 +18956,7 @@ our %unified_info = ( "doc/html/man3/BIO_find_type.html", "doc/html/man3/BIO_get_data.html", "doc/html/man3/BIO_get_ex_new_index.html", + "doc/html/man3/BIO_get_rpoll_descriptor.html", "doc/html/man3/BIO_meth_new.html", "doc/html/man3/BIO_new.html", "doc/html/man3/BIO_new_CMS.html", @@ -16368,11 +18969,13 @@ our %unified_info = ( "doc/html/man3/BIO_s_connect.html", "doc/html/man3/BIO_s_core.html", "doc/html/man3/BIO_s_datagram.html", + "doc/html/man3/BIO_s_dgram_pair.html", "doc/html/man3/BIO_s_fd.html", "doc/html/man3/BIO_s_file.html", "doc/html/man3/BIO_s_mem.html", "doc/html/man3/BIO_s_null.html", "doc/html/man3/BIO_s_socket.html", + "doc/html/man3/BIO_sendmmsg.html", "doc/html/man3/BIO_set_callback.html", "doc/html/man3/BIO_should_retry.html", "doc/html/man3/BIO_socket_wait.html", @@ -16397,6 +19000,7 @@ our %unified_info = ( "doc/html/man3/BN_swap.html", "doc/html/man3/BN_zero.html", "doc/html/man3/BUF_MEM_new.html", + "doc/html/man3/CMAC_CTX.html", "doc/html/man3/CMS_EncryptedData_decrypt.html", "doc/html/man3/CMS_EncryptedData_encrypt.html", "doc/html/man3/CMS_EnvelopedData_create.html", @@ -16419,6 +19023,7 @@ our %unified_info = ( "doc/html/man3/CMS_uncompress.html", "doc/html/man3/CMS_verify.html", "doc/html/man3/CMS_verify_receipt.html", + "doc/html/man3/COMP_CTX_new.html", "doc/html/man3/CONF_modules_free.html", "doc/html/man3/CONF_modules_load_file.html", "doc/html/man3/CRYPTO_THREAD_run_once.html", @@ -16452,6 +19057,8 @@ our %unified_info = ( "doc/html/man3/DSA_size.html", "doc/html/man3/DTLS_get_data_mtu.html", "doc/html/man3/DTLS_set_timer_cb.html", + "doc/html/man3/DTLSv1_get_timeout.html", + "doc/html/man3/DTLSv1_handle_timeout.html", "doc/html/man3/DTLSv1_listen.html", "doc/html/man3/ECDSA_SIG_new.html", "doc/html/man3/ECDSA_sign.html", @@ -16498,6 +19105,7 @@ our %unified_info = ( "doc/html/man3/EVP_PKEY_CTX_ctrl.html", "doc/html/man3/EVP_PKEY_CTX_get0_libctx.html", "doc/html/man3/EVP_PKEY_CTX_get0_pkey.html", + "doc/html/man3/EVP_PKEY_CTX_get_algor.html", "doc/html/man3/EVP_PKEY_CTX_new.html", "doc/html/man3/EVP_PKEY_CTX_set1_pbe_pass.html", "doc/html/man3/EVP_PKEY_CTX_set_hkdf_md.html", @@ -16537,6 +19145,8 @@ our %unified_info = ( "doc/html/man3/EVP_PKEY_verify_recover.html", "doc/html/man3/EVP_RAND.html", "doc/html/man3/EVP_SIGNATURE.html", + "doc/html/man3/EVP_SKEY.html", + "doc/html/man3/EVP_SKEYMGMT.html", "doc/html/man3/EVP_SealInit.html", "doc/html/man3/EVP_SignInit.html", "doc/html/man3/EVP_VerifyInit.html", @@ -16566,6 +19176,7 @@ our %unified_info = ( "doc/html/man3/EVP_sm3.html", "doc/html/man3/EVP_sm4_cbc.html", "doc/html/man3/EVP_whirlpool.html", + "doc/html/man3/GENERAL_NAME.html", "doc/html/man3/HMAC.html", "doc/html/man3/MD5.html", "doc/html/man3/MDC2_Init.html", @@ -16590,14 +19201,18 @@ our %unified_info = ( "doc/html/man3/OPENSSL_init_ssl.html", "doc/html/man3/OPENSSL_instrument_bus.html", "doc/html/man3/OPENSSL_load_builtin_modules.html", + "doc/html/man3/OPENSSL_load_u16_le.html", "doc/html/man3/OPENSSL_malloc.html", + "doc/html/man3/OPENSSL_riscvcap.html", "doc/html/man3/OPENSSL_s390xcap.html", "doc/html/man3/OPENSSL_secure_malloc.html", "doc/html/man3/OPENSSL_strcasecmp.html", "doc/html/man3/OSSL_ALGORITHM.html", "doc/html/man3/OSSL_CALLBACK.html", + "doc/html/man3/OSSL_CMP_ATAV_set0.html", "doc/html/man3/OSSL_CMP_CTX_new.html", "doc/html/man3/OSSL_CMP_HDR_get0_transactionID.html", + "doc/html/man3/OSSL_CMP_ITAV_new_caCerts.html", "doc/html/man3/OSSL_CMP_ITAV_set0.html", "doc/html/man3/OSSL_CMP_MSG_get0_header.html", "doc/html/man3/OSSL_CMP_MSG_http_perform.html", @@ -16621,18 +19236,27 @@ our %unified_info = ( "doc/html/man3/OSSL_ENCODER_CTX.html", "doc/html/man3/OSSL_ENCODER_CTX_new_for_pkey.html", "doc/html/man3/OSSL_ENCODER_to_bio.html", + "doc/html/man3/OSSL_ERR_STATE_save.html", "doc/html/man3/OSSL_ESS_check_signing_certs.html", + "doc/html/man3/OSSL_GENERAL_NAMES_print.html", + "doc/html/man3/OSSL_HPKE_CTX_new.html", "doc/html/man3/OSSL_HTTP_REQ_CTX.html", "doc/html/man3/OSSL_HTTP_parse_url.html", "doc/html/man3/OSSL_HTTP_transfer.html", + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX.html", + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX_print.html", + "doc/html/man3/OSSL_INDICATOR_set_callback.html", "doc/html/man3/OSSL_ITEM.html", "doc/html/man3/OSSL_LIB_CTX.html", + "doc/html/man3/OSSL_LIB_CTX_set_conf_diagnostics.html", "doc/html/man3/OSSL_PARAM.html", "doc/html/man3/OSSL_PARAM_BLD.html", "doc/html/man3/OSSL_PARAM_allocate_from_text.html", "doc/html/man3/OSSL_PARAM_dup.html", "doc/html/man3/OSSL_PARAM_int.html", + "doc/html/man3/OSSL_PARAM_print_to_bio.html", "doc/html/man3/OSSL_PROVIDER.html", + "doc/html/man3/OSSL_QUIC_client_method.html", "doc/html/man3/OSSL_SELF_TEST_new.html", "doc/html/man3/OSSL_SELF_TEST_set_callback.html", "doc/html/man3/OSSL_STORE_INFO.html", @@ -16641,11 +19265,13 @@ our %unified_info = ( "doc/html/man3/OSSL_STORE_attach.html", "doc/html/man3/OSSL_STORE_expect.html", "doc/html/man3/OSSL_STORE_open.html", + "doc/html/man3/OSSL_sleep.html", "doc/html/man3/OSSL_trace_enabled.html", "doc/html/man3/OSSL_trace_get_category_num.html", "doc/html/man3/OSSL_trace_set_channel.html", "doc/html/man3/OpenSSL_add_all_algorithms.html", "doc/html/man3/OpenSSL_version.html", + "doc/html/man3/PBMAC1_get1_pbkdf2_param.html", "doc/html/man3/PEM_X509_INFO_read_bio_ex.html", "doc/html/man3/PEM_bytes_read_bio.html", "doc/html/man3/PEM_read.html", @@ -16658,6 +19284,7 @@ our %unified_info = ( "doc/html/man3/PKCS12_SAFEBAG_create_cert.html", "doc/html/man3/PKCS12_SAFEBAG_get0_attrs.html", "doc/html/man3/PKCS12_SAFEBAG_get1_cert.html", + "doc/html/man3/PKCS12_SAFEBAG_set0_attrs.html", "doc/html/man3/PKCS12_add1_attr_by_NID.html", "doc/html/man3/PKCS12_add_CSPName_asc.html", "doc/html/man3/PKCS12_add_cert.html", @@ -16749,6 +19376,7 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_sess_set_get_cb.html", "doc/html/man3/SSL_CTX_sessions.html", "doc/html/man3/SSL_CTX_set0_CA_list.html", + "doc/html/man3/SSL_CTX_set1_cert_comp_preference.html", "doc/html/man3/SSL_CTX_set1_curves.html", "doc/html/man3/SSL_CTX_set1_sigalgs.html", "doc/html/man3/SSL_CTX_set1_verify_cert_store.html", @@ -16762,6 +19390,7 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_ct_validation_callback.html", "doc/html/man3/SSL_CTX_set_ctlog_list_file.html", "doc/html/man3/SSL_CTX_set_default_passwd_cb.html", + "doc/html/man3/SSL_CTX_set_domain_flags.html", "doc/html/man3/SSL_CTX_set_generate_session_id.html", "doc/html/man3/SSL_CTX_set_info_callback.html", "doc/html/man3/SSL_CTX_set_keylog_callback.html", @@ -16769,6 +19398,7 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_min_proto_version.html", "doc/html/man3/SSL_CTX_set_mode.html", "doc/html/man3/SSL_CTX_set_msg_callback.html", + "doc/html/man3/SSL_CTX_set_new_pending_conn_cb.html", "doc/html/man3/SSL_CTX_set_num_tickets.html", "doc/html/man3/SSL_CTX_set_options.html", "doc/html/man3/SSL_CTX_set_psk_client_callback.html", @@ -16807,6 +19437,7 @@ our %unified_info = ( "doc/html/man3/SSL_SESSION_print.html", "doc/html/man3/SSL_SESSION_set1_id.html", "doc/html/man3/SSL_accept.html", + "doc/html/man3/SSL_accept_stream.html", "doc/html/man3/SSL_alert_type_string.html", "doc/html/man3/SSL_alloc_buffers.html", "doc/html/man3/SSL_check_chain.html", @@ -16816,59 +19447,90 @@ our %unified_info = ( "doc/html/man3/SSL_export_keying_material.html", "doc/html/man3/SSL_extension_supported.html", "doc/html/man3/SSL_free.html", + "doc/html/man3/SSL_get0_connection.html", + "doc/html/man3/SSL_get0_group_name.html", + "doc/html/man3/SSL_get0_peer_rpk.html", "doc/html/man3/SSL_get0_peer_scts.html", + "doc/html/man3/SSL_get1_builtin_sigalgs.html", "doc/html/man3/SSL_get_SSL_CTX.html", "doc/html/man3/SSL_get_all_async_fds.html", "doc/html/man3/SSL_get_certificate.html", "doc/html/man3/SSL_get_ciphers.html", "doc/html/man3/SSL_get_client_random.html", + "doc/html/man3/SSL_get_conn_close_info.html", "doc/html/man3/SSL_get_current_cipher.html", "doc/html/man3/SSL_get_default_timeout.html", "doc/html/man3/SSL_get_error.html", + "doc/html/man3/SSL_get_event_timeout.html", "doc/html/man3/SSL_get_extms_support.html", "doc/html/man3/SSL_get_fd.html", + "doc/html/man3/SSL_get_handshake_rtt.html", "doc/html/man3/SSL_get_peer_cert_chain.html", "doc/html/man3/SSL_get_peer_certificate.html", "doc/html/man3/SSL_get_peer_signature_nid.html", "doc/html/man3/SSL_get_peer_tmp_key.html", "doc/html/man3/SSL_get_psk_identity.html", "doc/html/man3/SSL_get_rbio.html", + "doc/html/man3/SSL_get_rpoll_descriptor.html", "doc/html/man3/SSL_get_session.html", "doc/html/man3/SSL_get_shared_sigalgs.html", + "doc/html/man3/SSL_get_stream_id.html", + "doc/html/man3/SSL_get_stream_read_state.html", + "doc/html/man3/SSL_get_value_uint.html", "doc/html/man3/SSL_get_verify_result.html", "doc/html/man3/SSL_get_version.html", "doc/html/man3/SSL_group_to_name.html", + "doc/html/man3/SSL_handle_events.html", "doc/html/man3/SSL_in_init.html", + "doc/html/man3/SSL_inject_net_dgram.html", "doc/html/man3/SSL_key_update.html", "doc/html/man3/SSL_library_init.html", "doc/html/man3/SSL_load_client_CA_file.html", "doc/html/man3/SSL_new.html", + "doc/html/man3/SSL_new_domain.html", + "doc/html/man3/SSL_new_listener.html", + "doc/html/man3/SSL_new_stream.html", "doc/html/man3/SSL_pending.html", + "doc/html/man3/SSL_poll.html", "doc/html/man3/SSL_read.html", "doc/html/man3/SSL_read_early_data.html", "doc/html/man3/SSL_rstate_string.html", "doc/html/man3/SSL_session_reused.html", "doc/html/man3/SSL_set1_host.html", + "doc/html/man3/SSL_set1_initial_peer_addr.html", + "doc/html/man3/SSL_set1_server_cert_type.html", "doc/html/man3/SSL_set_async_callback.html", "doc/html/man3/SSL_set_bio.html", + "doc/html/man3/SSL_set_blocking_mode.html", "doc/html/man3/SSL_set_connect_state.html", + "doc/html/man3/SSL_set_default_stream_mode.html", "doc/html/man3/SSL_set_fd.html", + "doc/html/man3/SSL_set_incoming_stream_policy.html", + "doc/html/man3/SSL_set_quic_tls_cbs.html", "doc/html/man3/SSL_set_retry_verify.html", "doc/html/man3/SSL_set_session.html", + "doc/html/man3/SSL_set_session_secret_cb.html", "doc/html/man3/SSL_set_shutdown.html", "doc/html/man3/SSL_set_verify_result.html", "doc/html/man3/SSL_shutdown.html", "doc/html/man3/SSL_state_string.html", + "doc/html/man3/SSL_stream_conclude.html", + "doc/html/man3/SSL_stream_reset.html", "doc/html/man3/SSL_want.html", "doc/html/man3/SSL_write.html", "doc/html/man3/TS_RESP_CTX_new.html", - "doc/html/man3/TS_VERIFY_CTX_set_certs.html", + "doc/html/man3/TS_VERIFY_CTX.html", "doc/html/man3/UI_STRING.html", "doc/html/man3/UI_UTIL_read_pw.html", "doc/html/man3/UI_create_method.html", "doc/html/man3/UI_new.html", "doc/html/man3/X509V3_get_d2i.html", "doc/html/man3/X509V3_set_ctx.html", + "doc/html/man3/X509_ACERT_add1_attr.html", + "doc/html/man3/X509_ACERT_add_attr_nconf.html", + "doc/html/man3/X509_ACERT_get0_holder_baseCertId.html", + "doc/html/man3/X509_ACERT_get_attr.html", + "doc/html/man3/X509_ACERT_print_ex.html", "doc/html/man3/X509_ALGOR_dup.html", "doc/html/man3/X509_ATTRIBUTE.html", "doc/html/man3/X509_CRL_get0_by_serial.html", @@ -16885,6 +19547,7 @@ our %unified_info = ( "doc/html/man3/X509_REQ_get_attr.html", "doc/html/man3/X509_REQ_get_extensions.html", "doc/html/man3/X509_SIG_get0.html", + "doc/html/man3/X509_STORE_CTX_get_by_subject.html", "doc/html/man3/X509_STORE_CTX_get_error.html", "doc/html/man3/X509_STORE_CTX_new.html", "doc/html/man3/X509_STORE_CTX_set_verify_cb.html", @@ -16907,6 +19570,7 @@ our %unified_info = ( "doc/html/man3/X509_get0_notBefore.html", "doc/html/man3/X509_get0_signature.html", "doc/html/man3/X509_get0_uids.html", + "doc/html/man3/X509_get_default_cert_file.html", "doc/html/man3/X509_get_extension_flags.html", "doc/html/man3/X509_get_pubkey.html", "doc/html/man3/X509_get_serialNumber.html", @@ -16952,12 +19616,15 @@ our %unified_info = ( "doc/html/man7/EVP_CIPHER-RC5.html", "doc/html/man7/EVP_CIPHER-SEED.html", "doc/html/man7/EVP_CIPHER-SM4.html", + "doc/html/man7/EVP_KDF-ARGON2.html", "doc/html/man7/EVP_KDF-HKDF.html", + "doc/html/man7/EVP_KDF-HMAC-DRBG.html", "doc/html/man7/EVP_KDF-KB.html", "doc/html/man7/EVP_KDF-KRB5KDF.html", "doc/html/man7/EVP_KDF-PBKDF1.html", "doc/html/man7/EVP_KDF-PBKDF2.html", "doc/html/man7/EVP_KDF-PKCS12KDF.html", + "doc/html/man7/EVP_KDF-PVKKDF.html", "doc/html/man7/EVP_KDF-SCRYPT.html", "doc/html/man7/EVP_KDF-SS.html", "doc/html/man7/EVP_KDF-SSHKDF.html", @@ -16966,7 +19633,10 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-X942-ASN1.html", "doc/html/man7/EVP_KDF-X942-CONCAT.html", "doc/html/man7/EVP_KDF-X963.html", + "doc/html/man7/EVP_KEM-EC.html", + "doc/html/man7/EVP_KEM-ML-KEM.html", "doc/html/man7/EVP_KEM-RSA.html", + "doc/html/man7/EVP_KEM-X25519.html", "doc/html/man7/EVP_KEYEXCH-DH.html", "doc/html/man7/EVP_KEYEXCH-ECDH.html", "doc/html/man7/EVP_KEYEXCH-X25519.html", @@ -16978,6 +19648,7 @@ our %unified_info = ( "doc/html/man7/EVP_MAC-Poly1305.html", "doc/html/man7/EVP_MAC-Siphash.html", "doc/html/man7/EVP_MD-BLAKE2.html", + "doc/html/man7/EVP_MD-KECCAK.html", "doc/html/man7/EVP_MD-MD2.html", "doc/html/man7/EVP_MD-MD4.html", "doc/html/man7/EVP_MD-MD5-SHA1.html", @@ -16997,12 +19668,17 @@ our %unified_info = ( "doc/html/man7/EVP_PKEY-EC.html", "doc/html/man7/EVP_PKEY-FFC.html", "doc/html/man7/EVP_PKEY-HMAC.html", + "doc/html/man7/EVP_PKEY-ML-DSA.html", + "doc/html/man7/EVP_PKEY-ML-KEM.html", "doc/html/man7/EVP_PKEY-RSA.html", + "doc/html/man7/EVP_PKEY-SLH-DSA.html", "doc/html/man7/EVP_PKEY-SM2.html", "doc/html/man7/EVP_PKEY-X25519.html", + "doc/html/man7/EVP_RAND-CRNG-TEST.html", "doc/html/man7/EVP_RAND-CTR-DRBG.html", "doc/html/man7/EVP_RAND-HASH-DRBG.html", "doc/html/man7/EVP_RAND-HMAC-DRBG.html", + "doc/html/man7/EVP_RAND-JITTER.html", "doc/html/man7/EVP_RAND-SEED-SRC.html", "doc/html/man7/EVP_RAND-TEST-RAND.html", "doc/html/man7/EVP_RAND.html", @@ -17010,17 +19686,19 @@ our %unified_info = ( "doc/html/man7/EVP_SIGNATURE-ECDSA.html", "doc/html/man7/EVP_SIGNATURE-ED25519.html", "doc/html/man7/EVP_SIGNATURE-HMAC.html", + "doc/html/man7/EVP_SIGNATURE-ML-DSA.html", "doc/html/man7/EVP_SIGNATURE-RSA.html", + "doc/html/man7/EVP_SIGNATURE-SLH-DSA.html", "doc/html/man7/OSSL_PROVIDER-FIPS.html", "doc/html/man7/OSSL_PROVIDER-base.html", "doc/html/man7/OSSL_PROVIDER-default.html", "doc/html/man7/OSSL_PROVIDER-legacy.html", "doc/html/man7/OSSL_PROVIDER-null.html", + "doc/html/man7/OSSL_STORE-winstore.html", "doc/html/man7/RAND.html", "doc/html/man7/RSA-PSS.html", "doc/html/man7/X25519.html", "doc/html/man7/bio.html", - "doc/html/man7/crypto.html", "doc/html/man7/ct.html", "doc/html/man7/des_modes.html", "doc/html/man7/evp.html", @@ -17031,14 +19709,31 @@ our %unified_info = ( "doc/html/man7/life_cycle-mac.html", "doc/html/man7/life_cycle-pkey.html", "doc/html/man7/life_cycle-rand.html", - "doc/html/man7/migration_guide.html", "doc/html/man7/openssl-core.h.html", "doc/html/man7/openssl-core_dispatch.h.html", "doc/html/man7/openssl-core_names.h.html", "doc/html/man7/openssl-env.html", "doc/html/man7/openssl-glossary.html", + "doc/html/man7/openssl-qlog.html", + "doc/html/man7/openssl-quic-concurrency.html", + "doc/html/man7/openssl-quic.html", "doc/html/man7/openssl-threads.html", "doc/html/man7/openssl_user_macros.html", + "doc/html/man7/ossl-guide-introduction.html", + "doc/html/man7/ossl-guide-libcrypto-introduction.html", + "doc/html/man7/ossl-guide-libraries-introduction.html", + "doc/html/man7/ossl-guide-libssl-introduction.html", + "doc/html/man7/ossl-guide-migration.html", + "doc/html/man7/ossl-guide-quic-client-block.html", + "doc/html/man7/ossl-guide-quic-client-non-block.html", + "doc/html/man7/ossl-guide-quic-introduction.html", + "doc/html/man7/ossl-guide-quic-multi-stream.html", + "doc/html/man7/ossl-guide-quic-server-block.html", + "doc/html/man7/ossl-guide-quic-server-non-block.html", + "doc/html/man7/ossl-guide-tls-client-block.html", + "doc/html/man7/ossl-guide-tls-client-non-block.html", + "doc/html/man7/ossl-guide-tls-introduction.html", + "doc/html/man7/ossl-guide-tls-server-block.html", "doc/html/man7/ossl_store-file.html", "doc/html/man7/ossl_store.html", "doc/html/man7/passphrase-encoding.html", @@ -17057,10 +19752,10 @@ our %unified_info = ( "doc/html/man7/provider-object.html", "doc/html/man7/provider-rand.html", "doc/html/man7/provider-signature.html", + "doc/html/man7/provider-skeymgmt.html", "doc/html/man7/provider-storemgmt.html", "doc/html/man7/provider.html", "doc/html/man7/proxy-certificates.html", - "doc/html/man7/ssl.html", "doc/html/man7/x509.html" ] }, @@ -17075,12 +19770,21 @@ our %unified_info = ( ] }, "includes" => { + "OpenSSLConfig.cmake" => [ + "." + ], + "OpenSSLConfigVersion.cmake" => [ + "." + ], "apps/asn1parse.o" => [ "apps" ], "apps/ca.o" => [ "apps" ], + "apps/ca_internals_test-bin-ca.o" => [ + "apps" + ], "apps/ciphers.o" => [ "apps" ], @@ -17307,6 +20011,9 @@ our %unified_info = ( "apps/openssl-bin-sess_id.o" => [ "apps" ], + "apps/openssl-bin-skeyutl.o" => [ + "apps" + ], "apps/openssl-bin-smime.o" => [ "apps" ], @@ -17394,6 +20101,9 @@ our %unified_info = ( "apps/sess_id.o" => [ "apps" ], + "apps/skeyutl.o" => [ + "apps" + ], "apps/smime.o" => [ "apps" ], @@ -17445,6 +20155,12 @@ our %unified_info = ( "crypto/aes/bsaes-armv7.o" => [ "crypto" ], + "crypto/aes/vpaes-armv8.o" => [ + "crypto" + ], + "crypto/aes/vpaes-loongarch64.o" => [ + "crypto" + ], "crypto/arm64cpuid.o" => [ "crypto" ], @@ -17496,9 +20212,15 @@ our %unified_info = ( "crypto/chacha/chacha-armv4.o" => [ "crypto" ], + "crypto/chacha/chacha-armv8-sve.o" => [ + "crypto" + ], "crypto/chacha/chacha-armv8.o" => [ "crypto" ], + "crypto/chacha/chacha-loongarch64.o" => [ + "crypto" + ], "crypto/chacha/chacha-s390x.o" => [ "crypto" ], @@ -17523,15 +20245,24 @@ our %unified_info = ( "crypto/ec/ecp_s390x_nistp.o" => [ "crypto" ], + "crypto/ec/ecp_sm2p256-armv8.o" => [ + "crypto" + ], + "crypto/ec/ecx_key.o" => [ + "crypto" + ], "crypto/ec/ecx_meth.o" => [ "crypto" ], - "crypto/ec/ecx_s390x.o" => [ + "crypto/ec/libcrypto-lib-ecx_key.o" => [ "crypto" ], "crypto/ec/libcrypto-lib-ecx_meth.o" => [ "crypto" ], + "crypto/ec/libfips-lib-ecx_key.o" => [ + "crypto" + ], "crypto/evp/e_aes.o" => [ "crypto", "crypto/modes" @@ -17603,9 +20334,18 @@ our %unified_info = ( "crypto/libfips-lib-cpuid.o" => [ "." ], + "crypto/md5/md5-aarch64.o" => [ + "crypto" + ], + "crypto/md5/md5-loongarch64.o" => [ + "crypto" + ], "crypto/md5/md5-sparcv9.o" => [ "crypto" ], + "crypto/modes/aes-gcm-armv8-unroll8_64.o" => [ + "crypto" + ], "crypto/modes/aes-gcm-armv8_64.o" => [ "crypto" ], @@ -17630,6 +20370,9 @@ our %unified_info = ( "crypto/modes/libfips-lib-gcm128.o" => [ "crypto" ], + "crypto/params_idx.c" => [ + "util/perl" + ], "crypto/poly1305/poly1305-armv4.o" => [ "crypto" ], @@ -17651,6 +20394,9 @@ our %unified_info = ( "crypto/sha/keccak1600-armv4.o" => [ "crypto" ], + "crypto/sha/keccak1600-armv8.o" => [ + "crypto" + ], "crypto/sha/sha1-armv4-large.o" => [ "crypto" ], @@ -17696,6 +20442,18 @@ our %unified_info = ( "crypto/sha/sha512-sparcv9.o" => [ "crypto" ], + "crypto/sm3/sm3-armv8.o" => [ + "crypto" + ], + "crypto/sm4/sm4-armv8.o" => [ + "crypto" + ], + "crypto/sm4/vpsm4-armv8.o" => [ + "crypto" + ], + "crypto/sm4/vpsm4_ex-armv8.o" => [ + "crypto" + ], "doc/man1/openssl-asn1parse.pod" => [ "doc" ], @@ -17828,6 +20586,9 @@ our %unified_info = ( "doc/man1/openssl-sess_id.pod" => [ "doc" ], + "doc/man1/openssl-skeyutl.pod" => [ + "doc" + ], "doc/man1/openssl-smime.pod" => [ "doc" ], @@ -17855,6 +20616,24 @@ our %unified_info = ( "doc/man1/openssl-x509.pod" => [ "doc" ], + "exporters/OpenSSLConfig.cmake" => [ + "." + ], + "exporters/OpenSSLConfigVersion.cmake" => [ + "." + ], + "exporters/libcrypto.pc" => [ + "." + ], + "exporters/libssl.pc" => [ + "." + ], + "exporters/openssl.pc" => [ + "." + ], + "fuzz/acert-test" => [ + "include" + ], "fuzz/asn1-test" => [ "include" ], @@ -17885,22 +20664,88 @@ our %unified_info = ( "fuzz/ct-test" => [ "include" ], + "fuzz/decoder-test" => [ + "include" + ], + "fuzz/dtlsclient-test" => [ + "include" + ], + "fuzz/dtlsserver-test" => [ + "include" + ], + "fuzz/hashtable-test" => [ + "include" + ], + "fuzz/ml-dsa-test" => [ + "include" + ], + "fuzz/ml-kem-test" => [ + "include" + ], + "fuzz/pem-test" => [ + "include" + ], + "fuzz/provider-test" => [ + "include" + ], + "fuzz/punycode-test" => [ + "include" + ], + "fuzz/quic-client-test" => [ + "include" + ], + "fuzz/quic-lcidm-test" => [ + "include" + ], + "fuzz/quic-rcidm-test" => [ + "include" + ], + "fuzz/quic-server-test" => [ + "include" + ], + "fuzz/quic-srtm-test" => [ + "include" + ], "fuzz/server-test" => [ "include" ], + "fuzz/slh-dsa-test" => [ + "include" + ], + "fuzz/smime-test" => [ + "include" + ], + "fuzz/v3name-test" => [ + "include" + ], "fuzz/x509-test" => [ "include" ], + "include/internal/param_names.h" => [ + "util/perl" + ], + "include/openssl/core_names.h" => [ + "util/perl" + ], "libcrypto" => [ ".", "include", "providers/common/include", "providers/implementations/include" ], + "libcrypto.pc" => [ + "." + ], "libssl" => [ ".", "include" ], + "libssl.pc" => [ + "." + ], + "openssl.pc" => [ + "." + ], "providers/common/der/der_digests_gen.c" => [ "providers/common/der" ], @@ -17940,6 +20785,15 @@ our %unified_info = ( "providers/common/der/der_ecx_key.o" => [ "providers/common/include/prov" ], + "providers/common/der/der_ml_dsa_gen.c" => [ + "providers/common/der" + ], + "providers/common/der/der_ml_dsa_gen.o" => [ + "providers/common/include/prov" + ], + "providers/common/der/der_ml_dsa_key.o" => [ + "providers/common/include/prov" + ], "providers/common/der/der_rsa_gen.c" => [ "providers/common/der" ], @@ -17952,6 +20806,15 @@ our %unified_info = ( "providers/common/der/der_rsa_sig.o" => [ "providers/common/include/prov" ], + "providers/common/der/der_slh_dsa_gen.c" => [ + "providers/common/der" + ], + "providers/common/der/der_slh_dsa_gen.o" => [ + "providers/common/include/prov" + ], + "providers/common/der/der_slh_dsa_key.o" => [ + "providers/common/include/prov" + ], "providers/common/der/der_sm2_gen.c" => [ "providers/common/der" ], @@ -17997,12 +20860,24 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ecx_key.o" => [ "providers/common/include/prov" ], + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o" => [ + "providers/common/include/prov" + ], + "providers/common/der/libcommon-lib-der_ml_dsa_key.o" => [ + "providers/common/include/prov" + ], "providers/common/der/libcommon-lib-der_rsa_gen.o" => [ "providers/common/include/prov" ], "providers/common/der/libcommon-lib-der_rsa_key.o" => [ "providers/common/include/prov" ], + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o" => [ + "providers/common/include/prov" + ], + "providers/common/der/libcommon-lib-der_slh_dsa_key.o" => [ + "providers/common/include/prov" + ], "providers/common/der/libcommon-lib-der_wrap_gen.o" => [ "providers/common/include/prov" ], @@ -18033,9 +20908,15 @@ our %unified_info = ( "providers/common/include/prov/der_ecx.h" => [ "providers/common/der" ], + "providers/common/include/prov/der_ml_dsa.h" => [ + "providers/common/der" + ], "providers/common/include/prov/der_rsa.h" => [ "providers/common/der" ], + "providers/common/include/prov/der_slh_dsa.h" => [ + "providers/common/der" + ], "providers/common/include/prov/der_sm2.h" => [ "providers/common/der" ], @@ -18078,9 +20959,15 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-eddsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/libdefault-lib-rsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/libdefault-lib-sm2_sig.o" => [ "providers/common/include/prov" ], @@ -18093,12 +20980,24 @@ our %unified_info = ( "providers/implementations/signature/libfips-lib-eddsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/libfips-lib-rsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o" => [ + "providers/common/include/prov" + ], + "providers/implementations/signature/ml_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/rsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/slh_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/sm2_sig.o" => [ "providers/common/include/prov" ], @@ -18111,28 +21010,39 @@ our %unified_info = ( "crypto", "include", "providers/implementations/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" ], "providers/libdefault.a" => [ ".", "crypto", "include", "providers/implementations/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" ], "providers/libfips.a" => [ ".", "crypto", "include", "providers/implementations/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" ], "providers/liblegacy.a" => [ ".", "crypto", "include", "providers/implementations/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" + ], + "providers/libtemplate.a" => [ + "crypto", + "include", + "providers/implementations/include", + "providers/common/include", + "providers/fips/include" ], "test/aborttest" => [ "include", @@ -18201,6 +21111,14 @@ our %unified_info = ( "include", "apps/include" ], + "test/bio_addr_test" => [ + "include", + "apps/include" + ], + "test/bio_base64_test" => [ + "include", + "apps/include" + ], "test/bio_callback_test" => [ "include", "apps/include" @@ -18209,11 +21127,20 @@ our %unified_info = ( "include", "apps/include" ], + "test/bio_dgram_test" => [ + "include", + "apps/include", + "." + ], "test/bio_enc_test" => [ "include", "apps/include" ], - "test/bio_memleak_test" => [ + "test/bio_memleak_test" => [ + "include", + "apps/include" + ], + "test/bio_meth_test" => [ "include", "apps/include" ], @@ -18230,6 +21157,11 @@ our %unified_info = ( "include", "apps/include" ], + "test/bio_tfo_test" => [ + "include", + "apps/include", + "." + ], "test/bioprinttest" => [ "include", "apps/include" @@ -18244,6 +21176,9 @@ our %unified_info = ( "include", "apps/include" ], + "test/build_wincrypt_test" => [ + "include" + ], "test/buildtest_c_aes" => [ "include" ], @@ -18259,6 +21194,9 @@ our %unified_info = ( "test/buildtest_c_buffer" => [ "include" ], + "test/buildtest_c_byteorder" => [ + "include" + ], "test/buildtest_c_camellia" => [ "include" ], @@ -18283,9 +21221,6 @@ our %unified_info = ( "test/buildtest_c_core_dispatch" => [ "include" ], - "test/buildtest_c_core_names" => [ - "include" - ], "test/buildtest_c_core_object" => [ "include" ], @@ -18310,6 +21245,9 @@ our %unified_info = ( "test/buildtest_c_e_os2" => [ "include" ], + "test/buildtest_c_e_ostime" => [ + "include" + ], "test/buildtest_c_ebcdic" => [ "include" ], @@ -18337,12 +21275,18 @@ our %unified_info = ( "test/buildtest_c_hmac" => [ "include" ], + "test/buildtest_c_hpke" => [ + "include" + ], "test/buildtest_c_http" => [ "include" ], "test/buildtest_c_idea" => [ "include" ], + "test/buildtest_c_indicator" => [ + "include" + ], "test/buildtest_c_kdf" => [ "include" ], @@ -18358,6 +21302,9 @@ our %unified_info = ( "test/buildtest_c_mdc2" => [ "include" ], + "test/buildtest_c_ml_kem" => [ + "include" + ], "test/buildtest_c_modes" => [ "include" ], @@ -18388,6 +21335,9 @@ our %unified_info = ( "test/buildtest_c_provider" => [ "include" ], + "test/buildtest_c_quic" => [ + "include" + ], "test/buildtest_c_rand" => [ "include" ], @@ -18430,6 +21380,9 @@ our %unified_info = ( "test/buildtest_c_symhacks" => [ "include" ], + "test/buildtest_c_thread" => [ + "include" + ], "test/buildtest_c_tls1" => [ "include" ], @@ -18445,10 +21398,24 @@ our %unified_info = ( "test/buildtest_c_whrlpool" => [ "include" ], + "test/byteorder_test" => [ + "include", + "apps/include" + ], + "test/ca_internals_test" => [ + ".", + "include", + "apps/include" + ], "test/casttest" => [ "include", "apps/include" ], + "test/cert_comp_test" => [ + "include", + "apps/include", + "." + ], "test/chacha_internal_test" => [ ".", "include", @@ -18572,6 +21539,11 @@ our %unified_info = ( "include", "apps/include" ], + "test/decoder_propq_test" => [ + ".", + "include", + "apps/include" + ], "test/defltfips_test" => [ "include", "apps/include" @@ -18587,7 +21559,8 @@ our %unified_info = ( "test/drbgtest" => [ "include", "apps/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" ], "test/dsa_no_digest_size_test" => [ "include", @@ -18630,7 +21603,9 @@ our %unified_info = ( "test/endecode_test" => [ ".", "include", - "apps/include" + "apps/include", + "providers/common/include", + "providers/implementations/include" ], "test/endecoder_legacy_test" => [ ".", @@ -18675,6 +21650,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/evp_pkey_dhkem_test" => [ + "include", + "apps/include" + ], "test/evp_pkey_dparams_test" => [ "include", "apps/include" @@ -18683,10 +21662,18 @@ our %unified_info = ( "include", "apps/include" ], + "test/evp_skey_test" => [ + "include", + "apps/include" + ], "test/evp_test" => [ "include", "apps/include" ], + "test/evp_xof_test" => [ + "include", + "apps/include" + ], "test/exdatatest" => [ "include", "apps/include" @@ -18787,22 +21774,62 @@ our %unified_info = ( ".", "include" ], + "test/helpers/json_test-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/helpers/pkcs12.o" => [ ".", "include" ], + "test/helpers/pkcs12_api_test-bin-pkcs12.o" => [ + ".", + "include" + ], "test/helpers/pkcs12_format_test-bin-pkcs12.o" => [ ".", "include" ], + "test/helpers/quic_multistream_test-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quic_newcid_test-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quic_radix_test-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quic_srt_gen_test-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quicapitest-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quicfaultstest-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/helpers/recordlentest-bin-ssltestlib.o" => [ ".", "include" ], + "test/helpers/rpktest-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/helpers/servername_test-bin-ssltestlib.o" => [ ".", "include" ], + "test/helpers/ssl_handshake_rtt_test-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/helpers/ssl_test-bin-handshake.o" => [ ".", "include" @@ -18836,6 +21863,10 @@ our %unified_info = ( ".", "include" ], + "test/helpers/tls13groupselection_test-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/hexstr_test" => [ ".", "include", @@ -18845,6 +21876,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/hpke_test" => [ + "include", + "apps/include" + ], "test/http_test" => [ "include", "apps/include" @@ -18857,6 +21892,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/json_test" => [ + "include", + "apps/include" + ], "test/keymgmt_internal_test" => [ ".", "include", @@ -18871,6 +21910,10 @@ our %unified_info = ( "apps/include", "." ], + "test/list_test" => [ + "include", + "apps/include" + ], "test/localetest" => [ "include", "apps/include" @@ -18884,10 +21927,27 @@ our %unified_info = ( "include", "apps/include" ], + "test/membio_test" => [ + "include", + "apps/include", + "." + ], "test/memleaktest" => [ "include", "apps/include" ], + "test/ml_dsa_test" => [ + "include", + "apps/include" + ], + "test/ml_kem_evp_extra_test" => [ + "include", + "apps/include" + ], + "test/ml_kem_internal_test" => [ + "include", + "apps/include" + ], "test/modes_internal_test" => [ ".", "include", @@ -18922,6 +21982,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/pairwise_fail_test" => [ + "include", + "apps/include" + ], "test/param_build_test" => [ "include", "apps/include" @@ -18955,6 +22019,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/pkcs12_api_test" => [ + "include", + "apps/include" + ], "test/pkcs12_format_test" => [ "include", "apps/include" @@ -18976,6 +22044,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/priority_queue_test" => [ + "include", + "apps/include" + ], "test/property_test" => [ ".", "include", @@ -18989,6 +22061,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/provider_default_search_path_test" => [ + "include", + "apps/include" + ], "test/provider_fallback_test" => [ "include", "apps/include" @@ -19015,6 +22091,97 @@ our %unified_info = ( "include", "apps/include" ], + "test/quic_ackm_test" => [ + "include", + "apps/include" + ], + "test/quic_cc_test" => [ + "include", + "apps/include" + ], + "test/quic_cfq_test" => [ + "include", + "apps/include" + ], + "test/quic_client_test" => [ + "include", + "apps/include" + ], + "test/quic_fc_test" => [ + "include", + "apps/include" + ], + "test/quic_fifd_test" => [ + "include", + "apps/include" + ], + "test/quic_lcidm_test" => [ + "include", + "apps/include" + ], + "test/quic_multistream_test" => [ + "include", + "apps/include" + ], + "test/quic_newcid_test" => [ + "include", + "apps/include", + "." + ], + "test/quic_qlog_test" => [ + "include", + "apps/include" + ], + "test/quic_radix_test" => [ + "include", + "apps/include" + ], + "test/quic_rcidm_test" => [ + "include", + "apps/include" + ], + "test/quic_record_test" => [ + "include", + "apps/include" + ], + "test/quic_srt_gen_test" => [ + "include", + "apps/include", + "." + ], + "test/quic_srtm_test" => [ + "include", + "apps/include" + ], + "test/quic_stream_test" => [ + "include", + "apps/include" + ], + "test/quic_tserver_test" => [ + "include", + "apps/include" + ], + "test/quic_txp_test" => [ + "include", + "apps/include" + ], + "test/quic_txpim_test" => [ + "include", + "apps/include" + ], + "test/quic_wire_test" => [ + "include", + "apps/include" + ], + "test/quicapitest" => [ + "include", + "apps/include" + ], + "test/quicfaultstest" => [ + "include", + "apps/include", + "." + ], "test/rand_status_test" => [ "include", "apps/include" @@ -19035,14 +22202,20 @@ our %unified_info = ( "include", "apps/include" ], - "test/rdrand_sanitytest" => [ + "test/rdcpu_sanitytest" => [ "include", - "apps/include" + "apps/include", + "crypto" ], "test/recordlentest" => [ "include", "apps/include" ], + "test/rpktest" => [ + "include", + "apps/include", + "." + ], "test/rsa_complex" => [ "include", "apps/include" @@ -19061,6 +22234,15 @@ our %unified_info = ( "include", "apps/include" ], + "test/rsa_x931_test" => [ + ".", + "include", + "apps/include" + ], + "test/safe_math_test" => [ + "include", + "apps/include" + ], "test/sanitytest" => [ "include", "apps/include" @@ -19082,6 +22264,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/slh_dsa_test" => [ + "include", + "apps/include" + ], "test/sm2_internal_test" => [ "include", "apps/include" @@ -19112,6 +22298,11 @@ our %unified_info = ( "include", "apps/include" ], + "test/ssl_handshake_rtt_test" => [ + "include", + "apps/include", + "." + ], "test/ssl_old_test" => [ ".", "include", @@ -19128,6 +22319,7 @@ our %unified_info = ( "test/sslapitest" => [ "include", "apps/include", + "providers/common/include", "." ], "test/sslbuffertest" => [ @@ -19142,6 +22334,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/strtoultest" => [ + "include", + "apps/include" + ], "test/sysdefaulttest" => [ "include", "apps/include" @@ -19150,7 +22346,13 @@ our %unified_info = ( "include", "apps/include" ], + "test/threadpool_test" => [ + ".", + "include", + "apps/include" + ], "test/threadstest" => [ + ".", "include", "apps/include" ], @@ -19162,6 +22364,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/time_test" => [ + "include", + "apps/include" + ], "test/tls13ccstest" => [ "include", "apps/include" @@ -19171,6 +22377,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/tls13groupselection_test" => [ + "include", + "apps/include" + ], "test/trace_api_test" => [ ".", "include", @@ -19209,6 +22419,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/x509_acert_test" => [ + "include", + "apps/include" + ], "test/x509_check_cert_pkey_test" => [ "include", "apps/include" @@ -19222,6 +22436,18 @@ our %unified_info = ( "include", "apps/include" ], + "test/x509_load_cert_file_test" => [ + "include", + "apps/include" + ], + "test/x509_req_test" => [ + "include", + "apps/include" + ], + "test/x509_test" => [ + "include", + "apps/include" + ], "test/x509_time_test" => [ "include", "apps/include" @@ -19243,6 +22469,7 @@ our %unified_info = ( "providers/libdefault.a", "providers/libfips.a", "providers/liblegacy.a", + "providers/libtemplate.a", "test/libtestutil.a" ], "mandocs" => { @@ -19295,6 +22522,7 @@ our %unified_info = ( "doc/man/man1/openssl-s_server.1", "doc/man/man1/openssl-s_time.1", "doc/man/man1/openssl-sess_id.1", + "doc/man/man1/openssl-skeyutl.1", "doc/man/man1/openssl-smime.1", "doc/man/man1/openssl-speed.1", "doc/man/man1/openssl-spkac.1", @@ -19344,6 +22572,7 @@ our %unified_info = ( "doc/man/man3/BIO_find_type.3", "doc/man/man3/BIO_get_data.3", "doc/man/man3/BIO_get_ex_new_index.3", + "doc/man/man3/BIO_get_rpoll_descriptor.3", "doc/man/man3/BIO_meth_new.3", "doc/man/man3/BIO_new.3", "doc/man/man3/BIO_new_CMS.3", @@ -19356,11 +22585,13 @@ our %unified_info = ( "doc/man/man3/BIO_s_connect.3", "doc/man/man3/BIO_s_core.3", "doc/man/man3/BIO_s_datagram.3", + "doc/man/man3/BIO_s_dgram_pair.3", "doc/man/man3/BIO_s_fd.3", "doc/man/man3/BIO_s_file.3", "doc/man/man3/BIO_s_mem.3", "doc/man/man3/BIO_s_null.3", "doc/man/man3/BIO_s_socket.3", + "doc/man/man3/BIO_sendmmsg.3", "doc/man/man3/BIO_set_callback.3", "doc/man/man3/BIO_should_retry.3", "doc/man/man3/BIO_socket_wait.3", @@ -19385,6 +22616,7 @@ our %unified_info = ( "doc/man/man3/BN_swap.3", "doc/man/man3/BN_zero.3", "doc/man/man3/BUF_MEM_new.3", + "doc/man/man3/CMAC_CTX.3", "doc/man/man3/CMS_EncryptedData_decrypt.3", "doc/man/man3/CMS_EncryptedData_encrypt.3", "doc/man/man3/CMS_EnvelopedData_create.3", @@ -19407,6 +22639,7 @@ our %unified_info = ( "doc/man/man3/CMS_uncompress.3", "doc/man/man3/CMS_verify.3", "doc/man/man3/CMS_verify_receipt.3", + "doc/man/man3/COMP_CTX_new.3", "doc/man/man3/CONF_modules_free.3", "doc/man/man3/CONF_modules_load_file.3", "doc/man/man3/CRYPTO_THREAD_run_once.3", @@ -19440,6 +22673,8 @@ our %unified_info = ( "doc/man/man3/DSA_size.3", "doc/man/man3/DTLS_get_data_mtu.3", "doc/man/man3/DTLS_set_timer_cb.3", + "doc/man/man3/DTLSv1_get_timeout.3", + "doc/man/man3/DTLSv1_handle_timeout.3", "doc/man/man3/DTLSv1_listen.3", "doc/man/man3/ECDSA_SIG_new.3", "doc/man/man3/ECDSA_sign.3", @@ -19486,6 +22721,7 @@ our %unified_info = ( "doc/man/man3/EVP_PKEY_CTX_ctrl.3", "doc/man/man3/EVP_PKEY_CTX_get0_libctx.3", "doc/man/man3/EVP_PKEY_CTX_get0_pkey.3", + "doc/man/man3/EVP_PKEY_CTX_get_algor.3", "doc/man/man3/EVP_PKEY_CTX_new.3", "doc/man/man3/EVP_PKEY_CTX_set1_pbe_pass.3", "doc/man/man3/EVP_PKEY_CTX_set_hkdf_md.3", @@ -19525,6 +22761,8 @@ our %unified_info = ( "doc/man/man3/EVP_PKEY_verify_recover.3", "doc/man/man3/EVP_RAND.3", "doc/man/man3/EVP_SIGNATURE.3", + "doc/man/man3/EVP_SKEY.3", + "doc/man/man3/EVP_SKEYMGMT.3", "doc/man/man3/EVP_SealInit.3", "doc/man/man3/EVP_SignInit.3", "doc/man/man3/EVP_VerifyInit.3", @@ -19554,6 +22792,7 @@ our %unified_info = ( "doc/man/man3/EVP_sm3.3", "doc/man/man3/EVP_sm4_cbc.3", "doc/man/man3/EVP_whirlpool.3", + "doc/man/man3/GENERAL_NAME.3", "doc/man/man3/HMAC.3", "doc/man/man3/MD5.3", "doc/man/man3/MDC2_Init.3", @@ -19578,14 +22817,18 @@ our %unified_info = ( "doc/man/man3/OPENSSL_init_ssl.3", "doc/man/man3/OPENSSL_instrument_bus.3", "doc/man/man3/OPENSSL_load_builtin_modules.3", + "doc/man/man3/OPENSSL_load_u16_le.3", "doc/man/man3/OPENSSL_malloc.3", + "doc/man/man3/OPENSSL_riscvcap.3", "doc/man/man3/OPENSSL_s390xcap.3", "doc/man/man3/OPENSSL_secure_malloc.3", "doc/man/man3/OPENSSL_strcasecmp.3", "doc/man/man3/OSSL_ALGORITHM.3", "doc/man/man3/OSSL_CALLBACK.3", + "doc/man/man3/OSSL_CMP_ATAV_set0.3", "doc/man/man3/OSSL_CMP_CTX_new.3", "doc/man/man3/OSSL_CMP_HDR_get0_transactionID.3", + "doc/man/man3/OSSL_CMP_ITAV_new_caCerts.3", "doc/man/man3/OSSL_CMP_ITAV_set0.3", "doc/man/man3/OSSL_CMP_MSG_get0_header.3", "doc/man/man3/OSSL_CMP_MSG_http_perform.3", @@ -19609,18 +22852,27 @@ our %unified_info = ( "doc/man/man3/OSSL_ENCODER_CTX.3", "doc/man/man3/OSSL_ENCODER_CTX_new_for_pkey.3", "doc/man/man3/OSSL_ENCODER_to_bio.3", + "doc/man/man3/OSSL_ERR_STATE_save.3", "doc/man/man3/OSSL_ESS_check_signing_certs.3", + "doc/man/man3/OSSL_GENERAL_NAMES_print.3", + "doc/man/man3/OSSL_HPKE_CTX_new.3", "doc/man/man3/OSSL_HTTP_REQ_CTX.3", "doc/man/man3/OSSL_HTTP_parse_url.3", "doc/man/man3/OSSL_HTTP_transfer.3", + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX.3", + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX_print.3", + "doc/man/man3/OSSL_INDICATOR_set_callback.3", "doc/man/man3/OSSL_ITEM.3", "doc/man/man3/OSSL_LIB_CTX.3", + "doc/man/man3/OSSL_LIB_CTX_set_conf_diagnostics.3", "doc/man/man3/OSSL_PARAM.3", "doc/man/man3/OSSL_PARAM_BLD.3", "doc/man/man3/OSSL_PARAM_allocate_from_text.3", "doc/man/man3/OSSL_PARAM_dup.3", "doc/man/man3/OSSL_PARAM_int.3", + "doc/man/man3/OSSL_PARAM_print_to_bio.3", "doc/man/man3/OSSL_PROVIDER.3", + "doc/man/man3/OSSL_QUIC_client_method.3", "doc/man/man3/OSSL_SELF_TEST_new.3", "doc/man/man3/OSSL_SELF_TEST_set_callback.3", "doc/man/man3/OSSL_STORE_INFO.3", @@ -19629,11 +22881,13 @@ our %unified_info = ( "doc/man/man3/OSSL_STORE_attach.3", "doc/man/man3/OSSL_STORE_expect.3", "doc/man/man3/OSSL_STORE_open.3", + "doc/man/man3/OSSL_sleep.3", "doc/man/man3/OSSL_trace_enabled.3", "doc/man/man3/OSSL_trace_get_category_num.3", "doc/man/man3/OSSL_trace_set_channel.3", "doc/man/man3/OpenSSL_add_all_algorithms.3", "doc/man/man3/OpenSSL_version.3", + "doc/man/man3/PBMAC1_get1_pbkdf2_param.3", "doc/man/man3/PEM_X509_INFO_read_bio_ex.3", "doc/man/man3/PEM_bytes_read_bio.3", "doc/man/man3/PEM_read.3", @@ -19646,6 +22900,7 @@ our %unified_info = ( "doc/man/man3/PKCS12_SAFEBAG_create_cert.3", "doc/man/man3/PKCS12_SAFEBAG_get0_attrs.3", "doc/man/man3/PKCS12_SAFEBAG_get1_cert.3", + "doc/man/man3/PKCS12_SAFEBAG_set0_attrs.3", "doc/man/man3/PKCS12_add1_attr_by_NID.3", "doc/man/man3/PKCS12_add_CSPName_asc.3", "doc/man/man3/PKCS12_add_cert.3", @@ -19737,6 +22992,7 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_sess_set_get_cb.3", "doc/man/man3/SSL_CTX_sessions.3", "doc/man/man3/SSL_CTX_set0_CA_list.3", + "doc/man/man3/SSL_CTX_set1_cert_comp_preference.3", "doc/man/man3/SSL_CTX_set1_curves.3", "doc/man/man3/SSL_CTX_set1_sigalgs.3", "doc/man/man3/SSL_CTX_set1_verify_cert_store.3", @@ -19750,6 +23006,7 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_ct_validation_callback.3", "doc/man/man3/SSL_CTX_set_ctlog_list_file.3", "doc/man/man3/SSL_CTX_set_default_passwd_cb.3", + "doc/man/man3/SSL_CTX_set_domain_flags.3", "doc/man/man3/SSL_CTX_set_generate_session_id.3", "doc/man/man3/SSL_CTX_set_info_callback.3", "doc/man/man3/SSL_CTX_set_keylog_callback.3", @@ -19757,6 +23014,7 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_min_proto_version.3", "doc/man/man3/SSL_CTX_set_mode.3", "doc/man/man3/SSL_CTX_set_msg_callback.3", + "doc/man/man3/SSL_CTX_set_new_pending_conn_cb.3", "doc/man/man3/SSL_CTX_set_num_tickets.3", "doc/man/man3/SSL_CTX_set_options.3", "doc/man/man3/SSL_CTX_set_psk_client_callback.3", @@ -19795,6 +23053,7 @@ our %unified_info = ( "doc/man/man3/SSL_SESSION_print.3", "doc/man/man3/SSL_SESSION_set1_id.3", "doc/man/man3/SSL_accept.3", + "doc/man/man3/SSL_accept_stream.3", "doc/man/man3/SSL_alert_type_string.3", "doc/man/man3/SSL_alloc_buffers.3", "doc/man/man3/SSL_check_chain.3", @@ -19804,59 +23063,90 @@ our %unified_info = ( "doc/man/man3/SSL_export_keying_material.3", "doc/man/man3/SSL_extension_supported.3", "doc/man/man3/SSL_free.3", + "doc/man/man3/SSL_get0_connection.3", + "doc/man/man3/SSL_get0_group_name.3", + "doc/man/man3/SSL_get0_peer_rpk.3", "doc/man/man3/SSL_get0_peer_scts.3", + "doc/man/man3/SSL_get1_builtin_sigalgs.3", "doc/man/man3/SSL_get_SSL_CTX.3", "doc/man/man3/SSL_get_all_async_fds.3", "doc/man/man3/SSL_get_certificate.3", "doc/man/man3/SSL_get_ciphers.3", "doc/man/man3/SSL_get_client_random.3", + "doc/man/man3/SSL_get_conn_close_info.3", "doc/man/man3/SSL_get_current_cipher.3", "doc/man/man3/SSL_get_default_timeout.3", "doc/man/man3/SSL_get_error.3", + "doc/man/man3/SSL_get_event_timeout.3", "doc/man/man3/SSL_get_extms_support.3", "doc/man/man3/SSL_get_fd.3", + "doc/man/man3/SSL_get_handshake_rtt.3", "doc/man/man3/SSL_get_peer_cert_chain.3", "doc/man/man3/SSL_get_peer_certificate.3", "doc/man/man3/SSL_get_peer_signature_nid.3", "doc/man/man3/SSL_get_peer_tmp_key.3", "doc/man/man3/SSL_get_psk_identity.3", "doc/man/man3/SSL_get_rbio.3", + "doc/man/man3/SSL_get_rpoll_descriptor.3", "doc/man/man3/SSL_get_session.3", "doc/man/man3/SSL_get_shared_sigalgs.3", + "doc/man/man3/SSL_get_stream_id.3", + "doc/man/man3/SSL_get_stream_read_state.3", + "doc/man/man3/SSL_get_value_uint.3", "doc/man/man3/SSL_get_verify_result.3", "doc/man/man3/SSL_get_version.3", "doc/man/man3/SSL_group_to_name.3", + "doc/man/man3/SSL_handle_events.3", "doc/man/man3/SSL_in_init.3", + "doc/man/man3/SSL_inject_net_dgram.3", "doc/man/man3/SSL_key_update.3", "doc/man/man3/SSL_library_init.3", "doc/man/man3/SSL_load_client_CA_file.3", "doc/man/man3/SSL_new.3", + "doc/man/man3/SSL_new_domain.3", + "doc/man/man3/SSL_new_listener.3", + "doc/man/man3/SSL_new_stream.3", "doc/man/man3/SSL_pending.3", + "doc/man/man3/SSL_poll.3", "doc/man/man3/SSL_read.3", "doc/man/man3/SSL_read_early_data.3", "doc/man/man3/SSL_rstate_string.3", "doc/man/man3/SSL_session_reused.3", "doc/man/man3/SSL_set1_host.3", + "doc/man/man3/SSL_set1_initial_peer_addr.3", + "doc/man/man3/SSL_set1_server_cert_type.3", "doc/man/man3/SSL_set_async_callback.3", "doc/man/man3/SSL_set_bio.3", + "doc/man/man3/SSL_set_blocking_mode.3", "doc/man/man3/SSL_set_connect_state.3", + "doc/man/man3/SSL_set_default_stream_mode.3", "doc/man/man3/SSL_set_fd.3", + "doc/man/man3/SSL_set_incoming_stream_policy.3", + "doc/man/man3/SSL_set_quic_tls_cbs.3", "doc/man/man3/SSL_set_retry_verify.3", "doc/man/man3/SSL_set_session.3", + "doc/man/man3/SSL_set_session_secret_cb.3", "doc/man/man3/SSL_set_shutdown.3", "doc/man/man3/SSL_set_verify_result.3", "doc/man/man3/SSL_shutdown.3", "doc/man/man3/SSL_state_string.3", + "doc/man/man3/SSL_stream_conclude.3", + "doc/man/man3/SSL_stream_reset.3", "doc/man/man3/SSL_want.3", "doc/man/man3/SSL_write.3", "doc/man/man3/TS_RESP_CTX_new.3", - "doc/man/man3/TS_VERIFY_CTX_set_certs.3", + "doc/man/man3/TS_VERIFY_CTX.3", "doc/man/man3/UI_STRING.3", "doc/man/man3/UI_UTIL_read_pw.3", "doc/man/man3/UI_create_method.3", "doc/man/man3/UI_new.3", "doc/man/man3/X509V3_get_d2i.3", "doc/man/man3/X509V3_set_ctx.3", + "doc/man/man3/X509_ACERT_add1_attr.3", + "doc/man/man3/X509_ACERT_add_attr_nconf.3", + "doc/man/man3/X509_ACERT_get0_holder_baseCertId.3", + "doc/man/man3/X509_ACERT_get_attr.3", + "doc/man/man3/X509_ACERT_print_ex.3", "doc/man/man3/X509_ALGOR_dup.3", "doc/man/man3/X509_ATTRIBUTE.3", "doc/man/man3/X509_CRL_get0_by_serial.3", @@ -19873,6 +23163,7 @@ our %unified_info = ( "doc/man/man3/X509_REQ_get_attr.3", "doc/man/man3/X509_REQ_get_extensions.3", "doc/man/man3/X509_SIG_get0.3", + "doc/man/man3/X509_STORE_CTX_get_by_subject.3", "doc/man/man3/X509_STORE_CTX_get_error.3", "doc/man/man3/X509_STORE_CTX_new.3", "doc/man/man3/X509_STORE_CTX_set_verify_cb.3", @@ -19895,6 +23186,7 @@ our %unified_info = ( "doc/man/man3/X509_get0_notBefore.3", "doc/man/man3/X509_get0_signature.3", "doc/man/man3/X509_get0_uids.3", + "doc/man/man3/X509_get_default_cert_file.3", "doc/man/man3/X509_get_extension_flags.3", "doc/man/man3/X509_get_pubkey.3", "doc/man/man3/X509_get_serialNumber.3", @@ -19940,12 +23232,15 @@ our %unified_info = ( "doc/man/man7/EVP_CIPHER-RC5.7", "doc/man/man7/EVP_CIPHER-SEED.7", "doc/man/man7/EVP_CIPHER-SM4.7", + "doc/man/man7/EVP_KDF-ARGON2.7", "doc/man/man7/EVP_KDF-HKDF.7", + "doc/man/man7/EVP_KDF-HMAC-DRBG.7", "doc/man/man7/EVP_KDF-KB.7", "doc/man/man7/EVP_KDF-KRB5KDF.7", "doc/man/man7/EVP_KDF-PBKDF1.7", "doc/man/man7/EVP_KDF-PBKDF2.7", "doc/man/man7/EVP_KDF-PKCS12KDF.7", + "doc/man/man7/EVP_KDF-PVKKDF.7", "doc/man/man7/EVP_KDF-SCRYPT.7", "doc/man/man7/EVP_KDF-SS.7", "doc/man/man7/EVP_KDF-SSHKDF.7", @@ -19954,7 +23249,10 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-X942-ASN1.7", "doc/man/man7/EVP_KDF-X942-CONCAT.7", "doc/man/man7/EVP_KDF-X963.7", + "doc/man/man7/EVP_KEM-EC.7", + "doc/man/man7/EVP_KEM-ML-KEM.7", "doc/man/man7/EVP_KEM-RSA.7", + "doc/man/man7/EVP_KEM-X25519.7", "doc/man/man7/EVP_KEYEXCH-DH.7", "doc/man/man7/EVP_KEYEXCH-ECDH.7", "doc/man/man7/EVP_KEYEXCH-X25519.7", @@ -19966,6 +23264,7 @@ our %unified_info = ( "doc/man/man7/EVP_MAC-Poly1305.7", "doc/man/man7/EVP_MAC-Siphash.7", "doc/man/man7/EVP_MD-BLAKE2.7", + "doc/man/man7/EVP_MD-KECCAK.7", "doc/man/man7/EVP_MD-MD2.7", "doc/man/man7/EVP_MD-MD4.7", "doc/man/man7/EVP_MD-MD5-SHA1.7", @@ -19985,12 +23284,17 @@ our %unified_info = ( "doc/man/man7/EVP_PKEY-EC.7", "doc/man/man7/EVP_PKEY-FFC.7", "doc/man/man7/EVP_PKEY-HMAC.7", + "doc/man/man7/EVP_PKEY-ML-DSA.7", + "doc/man/man7/EVP_PKEY-ML-KEM.7", "doc/man/man7/EVP_PKEY-RSA.7", + "doc/man/man7/EVP_PKEY-SLH-DSA.7", "doc/man/man7/EVP_PKEY-SM2.7", "doc/man/man7/EVP_PKEY-X25519.7", + "doc/man/man7/EVP_RAND-CRNG-TEST.7", "doc/man/man7/EVP_RAND-CTR-DRBG.7", "doc/man/man7/EVP_RAND-HASH-DRBG.7", "doc/man/man7/EVP_RAND-HMAC-DRBG.7", + "doc/man/man7/EVP_RAND-JITTER.7", "doc/man/man7/EVP_RAND-SEED-SRC.7", "doc/man/man7/EVP_RAND-TEST-RAND.7", "doc/man/man7/EVP_RAND.7", @@ -19998,17 +23302,19 @@ our %unified_info = ( "doc/man/man7/EVP_SIGNATURE-ECDSA.7", "doc/man/man7/EVP_SIGNATURE-ED25519.7", "doc/man/man7/EVP_SIGNATURE-HMAC.7", + "doc/man/man7/EVP_SIGNATURE-ML-DSA.7", "doc/man/man7/EVP_SIGNATURE-RSA.7", + "doc/man/man7/EVP_SIGNATURE-SLH-DSA.7", "doc/man/man7/OSSL_PROVIDER-FIPS.7", "doc/man/man7/OSSL_PROVIDER-base.7", "doc/man/man7/OSSL_PROVIDER-default.7", "doc/man/man7/OSSL_PROVIDER-legacy.7", "doc/man/man7/OSSL_PROVIDER-null.7", + "doc/man/man7/OSSL_STORE-winstore.7", "doc/man/man7/RAND.7", "doc/man/man7/RSA-PSS.7", "doc/man/man7/X25519.7", "doc/man/man7/bio.7", - "doc/man/man7/crypto.7", "doc/man/man7/ct.7", "doc/man/man7/des_modes.7", "doc/man/man7/evp.7", @@ -20019,14 +23325,31 @@ our %unified_info = ( "doc/man/man7/life_cycle-mac.7", "doc/man/man7/life_cycle-pkey.7", "doc/man/man7/life_cycle-rand.7", - "doc/man/man7/migration_guide.7", "doc/man/man7/openssl-core.h.7", "doc/man/man7/openssl-core_dispatch.h.7", "doc/man/man7/openssl-core_names.h.7", "doc/man/man7/openssl-env.7", "doc/man/man7/openssl-glossary.7", + "doc/man/man7/openssl-qlog.7", + "doc/man/man7/openssl-quic-concurrency.7", + "doc/man/man7/openssl-quic.7", "doc/man/man7/openssl-threads.7", "doc/man/man7/openssl_user_macros.7", + "doc/man/man7/ossl-guide-introduction.7", + "doc/man/man7/ossl-guide-libcrypto-introduction.7", + "doc/man/man7/ossl-guide-libraries-introduction.7", + "doc/man/man7/ossl-guide-libssl-introduction.7", + "doc/man/man7/ossl-guide-migration.7", + "doc/man/man7/ossl-guide-quic-client-block.7", + "doc/man/man7/ossl-guide-quic-client-non-block.7", + "doc/man/man7/ossl-guide-quic-introduction.7", + "doc/man/man7/ossl-guide-quic-multi-stream.7", + "doc/man/man7/ossl-guide-quic-server-block.7", + "doc/man/man7/ossl-guide-quic-server-non-block.7", + "doc/man/man7/ossl-guide-tls-client-block.7", + "doc/man/man7/ossl-guide-tls-client-non-block.7", + "doc/man/man7/ossl-guide-tls-introduction.7", + "doc/man/man7/ossl-guide-tls-server-block.7", "doc/man/man7/ossl_store-file.7", "doc/man/man7/ossl_store.7", "doc/man/man7/passphrase-encoding.7", @@ -20045,10 +23368,10 @@ our %unified_info = ( "doc/man/man7/provider-object.7", "doc/man/man7/provider-rand.7", "doc/man/man7/provider-signature.7", + "doc/man/man7/provider-skeymgmt.7", "doc/man/man7/provider-storemgmt.7", "doc/man/man7/provider.7", "doc/man/man7/proxy-certificates.7", - "doc/man/man7/ssl.7", "doc/man/man7/x509.7" ] }, @@ -20060,6 +23383,7 @@ our %unified_info = ( ], "programs" => [ "apps/openssl", + "fuzz/acert-test", "fuzz/asn1-test", "fuzz/asn1parse-test", "fuzz/bignum-test", @@ -20070,7 +23394,24 @@ our %unified_info = ( "fuzz/conf-test", "fuzz/crl-test", "fuzz/ct-test", + "fuzz/decoder-test", + "fuzz/dtlsclient-test", + "fuzz/dtlsserver-test", + "fuzz/hashtable-test", + "fuzz/ml-dsa-test", + "fuzz/ml-kem-test", + "fuzz/pem-test", + "fuzz/provider-test", + "fuzz/punycode-test", + "fuzz/quic-client-test", + "fuzz/quic-lcidm-test", + "fuzz/quic-rcidm-test", + "fuzz/quic-server-test", + "fuzz/quic-srtm-test", "fuzz/server-test", + "fuzz/slh-dsa-test", + "fuzz/smime-test", + "fuzz/v3name-test", "fuzz/x509-test", "test/aborttest", "test/acvp_test", @@ -20088,21 +23429,28 @@ our %unified_info = ( "test/asynctest", "test/bad_dtls_test", "test/bftest", + "test/bio_addr_test", + "test/bio_base64_test", "test/bio_callback_test", "test/bio_core_test", + "test/bio_dgram_test", "test/bio_enc_test", "test/bio_memleak_test", + "test/bio_meth_test", "test/bio_prefix_text", "test/bio_pw_callback_test", "test/bio_readbuffer_test", + "test/bio_tfo_test", "test/bioprinttest", "test/bn_internal_test", "test/bntest", + "test/build_wincrypt_test", "test/buildtest_c_aes", "test/buildtest_c_async", "test/buildtest_c_blowfish", "test/buildtest_c_bn", "test/buildtest_c_buffer", + "test/buildtest_c_byteorder", "test/buildtest_c_camellia", "test/buildtest_c_cast", "test/buildtest_c_cmac", @@ -20111,7 +23459,6 @@ our %unified_info = ( "test/buildtest_c_conftypes", "test/buildtest_c_core", "test/buildtest_c_core_dispatch", - "test/buildtest_c_core_names", "test/buildtest_c_core_object", "test/buildtest_c_cryptoerr_legacy", "test/buildtest_c_decoder", @@ -20120,6 +23467,7 @@ our %unified_info = ( "test/buildtest_c_dsa", "test/buildtest_c_dtls1", "test/buildtest_c_e_os2", + "test/buildtest_c_e_ostime", "test/buildtest_c_ebcdic", "test/buildtest_c_ec", "test/buildtest_c_ecdh", @@ -20129,13 +23477,16 @@ our %unified_info = ( "test/buildtest_c_evp", "test/buildtest_c_fips_names", "test/buildtest_c_hmac", + "test/buildtest_c_hpke", "test/buildtest_c_http", "test/buildtest_c_idea", + "test/buildtest_c_indicator", "test/buildtest_c_kdf", "test/buildtest_c_macros", "test/buildtest_c_md4", "test/buildtest_c_md5", "test/buildtest_c_mdc2", + "test/buildtest_c_ml_kem", "test/buildtest_c_modes", "test/buildtest_c_obj_mac", "test/buildtest_c_objects", @@ -20146,6 +23497,7 @@ our %unified_info = ( "test/buildtest_c_pem2", "test/buildtest_c_prov_ssl", "test/buildtest_c_provider", + "test/buildtest_c_quic", "test/buildtest_c_rand", "test/buildtest_c_rc2", "test/buildtest_c_rc4", @@ -20160,11 +23512,14 @@ our %unified_info = ( "test/buildtest_c_stack", "test/buildtest_c_store", "test/buildtest_c_symhacks", + "test/buildtest_c_thread", "test/buildtest_c_tls1", "test/buildtest_c_ts", "test/buildtest_c_txt_db", "test/buildtest_c_types", "test/buildtest_c_whrlpool", + "test/byteorder_test", + "test/ca_internals_test", "test/casttest", "test/chacha_internal_test", "test/cipher_overhead_test", @@ -20193,6 +23548,7 @@ our %unified_info = ( "test/curve448_internal_test", "test/d2i_test", "test/danetest", + "test/decoder_propq_test", "test/defltfips_test", "test/destest", "test/dhtest", @@ -20217,9 +23573,12 @@ our %unified_info = ( "test/evp_kdf_test", "test/evp_libctx_test", "test/evp_pkey_ctx_new_from_name", + "test/evp_pkey_dhkem_test", "test/evp_pkey_dparams_test", "test/evp_pkey_provided_test", + "test/evp_skey_test", "test/evp_test", + "test/evp_xof_test", "test/exdatatest", "test/exptest", "test/ext_internal_test", @@ -20229,21 +23588,29 @@ our %unified_info = ( "test/gmdifftest", "test/hexstr_test", "test/hmactest", + "test/hpke_test", "test/http_test", "test/ideatest", "test/igetest", + "test/json_test", "test/keymgmt_internal_test", "test/lhash_test", + "test/list_test", "test/localetest", "test/mdc2_internal_test", "test/mdc2test", + "test/membio_test", "test/memleaktest", + "test/ml_dsa_test", + "test/ml_kem_evp_extra_test", + "test/ml_kem_internal_test", "test/modes_internal_test", "test/namemap_internal_test", "test/nodefltctxtest", "test/ocspapitest", "test/ossl_store_test", "test/packettest", + "test/pairwise_fail_test", "test/param_build_test", "test/params_api_test", "test/params_conversion_test", @@ -20252,36 +23619,65 @@ our %unified_info = ( "test/pbetest", "test/pem_read_depr_test", "test/pemtest", + "test/pkcs12_api_test", "test/pkcs12_format_test", "test/pkcs7_test", "test/pkey_meth_kdf_test", "test/pkey_meth_test", "test/poly1305_internal_test", + "test/priority_queue_test", "test/property_test", "test/prov_config_test", "test/provfetchtest", + "test/provider_default_search_path_test", "test/provider_fallback_test", "test/provider_internal_test", "test/provider_pkey_test", "test/provider_status_test", "test/provider_test", "test/punycode_test", + "test/quic_ackm_test", + "test/quic_cc_test", + "test/quic_cfq_test", + "test/quic_client_test", + "test/quic_fc_test", + "test/quic_fifd_test", + "test/quic_lcidm_test", + "test/quic_multistream_test", + "test/quic_newcid_test", + "test/quic_qlog_test", + "test/quic_radix_test", + "test/quic_rcidm_test", + "test/quic_record_test", + "test/quic_srt_gen_test", + "test/quic_srtm_test", + "test/quic_stream_test", + "test/quic_tserver_test", + "test/quic_txp_test", + "test/quic_txpim_test", + "test/quic_wire_test", + "test/quicapitest", + "test/quicfaultstest", "test/rand_status_test", "test/rand_test", "test/rc2test", "test/rc4test", "test/rc5test", - "test/rdrand_sanitytest", + "test/rdcpu_sanitytest", "test/recordlentest", + "test/rpktest", "test/rsa_complex", "test/rsa_mp_test", "test/rsa_sp800_56b_test", "test/rsa_test", + "test/rsa_x931_test", + "test/safe_math_test", "test/sanitytest", "test/secmemtest", "test/servername_test", "test/sha_test", "test/siphash_internal_test", + "test/slh_dsa_test", "test/sm2_internal_test", "test/sm3_internal_test", "test/sm4_internal_test", @@ -20289,6 +23685,7 @@ our %unified_info = ( "test/srptest", "test/ssl_cert_table_internal_test", "test/ssl_ctx_test", + "test/ssl_handshake_rtt_test", "test/ssl_old_test", "test/ssl_test", "test/ssl_test_ctx_test", @@ -20296,13 +23693,17 @@ our %unified_info = ( "test/sslbuffertest", "test/sslcorrupttest", "test/stack_test", + "test/strtoultest", "test/sysdefaulttest", "test/test_test", + "test/threadpool_test", "test/threadstest", "test/threadstest_fips", "test/time_offset_test", + "test/time_test", "test/tls13ccstest", "test/tls13encryptiontest", + "test/tls13groupselection_test", "test/trace_api_test", "test/uitest", "test/upcallstest", @@ -20312,9 +23713,13 @@ our %unified_info = ( "test/verify_extra_test", "test/versions", "test/wpackettest", + "test/x509_acert_test", "test/x509_check_cert_pkey_test", "test/x509_dup_cert_test", "test/x509_internal_test", + "test/x509_load_cert_file_test", + "test/x509_req_test", + "test/x509_test", "test/x509_time_test", "test/x509aux" ], @@ -20330,6 +23735,33 @@ our %unified_info = ( "apps/CA.pl" => [ "apps/CA.pl.in" ], + "apps/ca_internals_test-bin-ca.o" => [ + "apps/ca.c" + ], + "apps/lib/ca_internals_test-bin-app_libctx.o" => [ + "apps/lib/app_libctx.c" + ], + "apps/lib/ca_internals_test-bin-app_provider.o" => [ + "apps/lib/app_provider.c" + ], + "apps/lib/ca_internals_test-bin-app_rand.o" => [ + "apps/lib/app_rand.c" + ], + "apps/lib/ca_internals_test-bin-app_x509.o" => [ + "apps/lib/app_x509.c" + ], + "apps/lib/ca_internals_test-bin-apps.o" => [ + "apps/lib/apps.c" + ], + "apps/lib/ca_internals_test-bin-apps_ui.o" => [ + "apps/lib/apps_ui.c" + ], + "apps/lib/ca_internals_test-bin-engine.o" => [ + "apps/lib/engine.c" + ], + "apps/lib/ca_internals_test-bin-fmt.o" => [ + "apps/lib/fmt.c" + ], "apps/lib/cmp_client_test-bin-cmp_mock_srv.o" => [ "apps/lib/cmp_mock_srv.c" ], @@ -20351,6 +23783,9 @@ our %unified_info = ( "apps/lib/libapps-lib-apps.o" => [ "apps/lib/apps.c" ], + "apps/lib/libapps-lib-apps_opt_printf.o" => [ + "apps/lib/apps_opt_printf.c" + ], "apps/lib/libapps-lib-apps_ui.o" => [ "apps/lib/apps_ui.c" ], @@ -20369,6 +23804,9 @@ our %unified_info = ( "apps/lib/libapps-lib-http_server.o" => [ "apps/lib/http_server.c" ], + "apps/lib/libapps-lib-log.o" => [ + "apps/lib/log.c" + ], "apps/lib/libapps-lib-names.o" => [ "apps/lib/names.c" ], @@ -20400,12 +23838,14 @@ our %unified_info = ( "apps/lib/libapps-lib-app_rand.o", "apps/lib/libapps-lib-app_x509.o", "apps/lib/libapps-lib-apps.o", + "apps/lib/libapps-lib-apps_opt_printf.o", "apps/lib/libapps-lib-apps_ui.o", "apps/lib/libapps-lib-columns.o", "apps/lib/libapps-lib-engine.o", "apps/lib/libapps-lib-engine_loader.o", "apps/lib/libapps-lib-fmt.o", "apps/lib/libapps-lib-http_server.o", + "apps/lib/libapps-lib-log.o", "apps/lib/libapps-lib-names.o", "apps/lib/libapps-lib-opt.o", "apps/lib/libapps-lib-s_cb.o", @@ -20459,6 +23899,7 @@ our %unified_info = ( "apps/openssl-bin-s_server.o", "apps/openssl-bin-s_time.o", "apps/openssl-bin-sess_id.o", + "apps/openssl-bin-skeyutl.o", "apps/openssl-bin-smime.o", "apps/openssl-bin-speed.o", "apps/openssl-bin-spkac.o", @@ -20604,6 +24045,9 @@ our %unified_info = ( "apps/openssl-bin-sess_id.o" => [ "apps/sess_id.c" ], + "apps/openssl-bin-skeyutl.o" => [ + "apps/skeyutl.c" + ], "apps/openssl-bin-smime.o" => [ "apps/smime.c" ], @@ -20673,6 +24117,12 @@ our %unified_info = ( "crypto/aria/libcrypto-lib-aria.o" => [ "crypto/aria/aria.c" ], + "crypto/asn1/asn1_time_test-bin-a_time.o" => [ + "crypto/asn1/a_time.c" + ], + "crypto/asn1/ca_internals_test-bin-a_time.o" => [ + "crypto/asn1/a_time.c" + ], "crypto/asn1/libcrypto-lib-a_bitstr.o" => [ "crypto/asn1/a_bitstr.c" ], @@ -20865,6 +24315,9 @@ our %unified_info = ( "crypto/asn1/libcrypto-lib-x_val.o" => [ "crypto/asn1/x_val.c" ], + "crypto/asn1_time_test-bin-ctype.o" => [ + "crypto/ctype.c" + ], "crypto/async/arch/libcrypto-lib-async_null.o" => [ "crypto/async/arch/async_null.c" ], @@ -20958,6 +24411,9 @@ our %unified_info = ( "crypto/bio/libcrypto-lib-bss_dgram.o" => [ "crypto/bio/bss_dgram.c" ], + "crypto/bio/libcrypto-lib-bss_dgram_pair.o" => [ + "crypto/bio/bss_dgram_pair.c" + ], "crypto/bio/libcrypto-lib-bss_fd.o" => [ "crypto/bio/bss_fd.c" ], @@ -21171,6 +24627,9 @@ our %unified_info = ( "crypto/buffer/libfips-lib-buffer.o" => [ "crypto/buffer/buffer.c" ], + "crypto/ca_internals_test-bin-ctype.o" => [ + "crypto/ctype.c" + ], "crypto/camellia/libcrypto-lib-camellia.o" => [ "crypto/camellia/camellia.c" ], @@ -21228,6 +24687,9 @@ our %unified_info = ( "crypto/cmp/libcrypto-lib-cmp_err.o" => [ "crypto/cmp/cmp_err.c" ], + "crypto/cmp/libcrypto-lib-cmp_genm.o" => [ + "crypto/cmp/cmp_genm.c" + ], "crypto/cmp/libcrypto-lib-cmp_hdr.o" => [ "crypto/cmp/cmp_hdr.c" ], @@ -21903,9 +25365,15 @@ our %unified_info = ( "crypto/err/libcrypto-lib-err_blocks.o" => [ "crypto/err/err_blocks.c" ], + "crypto/err/libcrypto-lib-err_mark.o" => [ + "crypto/err/err_mark.c" + ], "crypto/err/libcrypto-lib-err_prn.o" => [ "crypto/err/err_prn.c" ], + "crypto/err/libcrypto-lib-err_save.o" => [ + "crypto/err/err_save.c" + ], "crypto/ess/libcrypto-lib-ess_asn1.o" => [ "crypto/ess/ess_asn1.c" ], @@ -22152,9 +25620,15 @@ our %unified_info = ( "crypto/evp/libcrypto-lib-pmeth_lib.o" => [ "crypto/evp/pmeth_lib.c" ], + "crypto/evp/libcrypto-lib-s_lib.o" => [ + "crypto/evp/s_lib.c" + ], "crypto/evp/libcrypto-lib-signature.o" => [ "crypto/evp/signature.c" ], + "crypto/evp/libcrypto-lib-skeymgmt_meth.o" => [ + "crypto/evp/skeymgmt_meth.c" + ], "crypto/evp/libfips-lib-asymcipher.o" => [ "crypto/evp/asymcipher.c" ], @@ -22200,9 +25674,6 @@ our %unified_info = ( "crypto/evp/libfips-lib-keymgmt_meth.o" => [ "crypto/evp/keymgmt_meth.c" ], - "crypto/evp/libfips-lib-m_sigver.o" => [ - "crypto/evp/m_sigver.c" - ], "crypto/evp/libfips-lib-mac_lib.o" => [ "crypto/evp/mac_lib.c" ], @@ -22221,9 +25692,15 @@ our %unified_info = ( "crypto/evp/libfips-lib-pmeth_lib.o" => [ "crypto/evp/pmeth_lib.c" ], + "crypto/evp/libfips-lib-s_lib.o" => [ + "crypto/evp/s_lib.c" + ], "crypto/evp/libfips-lib-signature.o" => [ "crypto/evp/signature.c" ], + "crypto/evp/libfips-lib-skeymgmt_meth.o" => [ + "crypto/evp/skeymgmt_meth.c" + ], "crypto/ffc/libcrypto-lib-ffc_backend.o" => [ "crypto/ffc/ffc_backend.c" ], @@ -22266,12 +25743,30 @@ our %unified_info = ( "crypto/ffc/libfips-lib-ffc_params_validate.o" => [ "crypto/ffc/ffc_params_validate.c" ], + "crypto/hashtable/libcrypto-lib-hashfunc.o" => [ + "crypto/hashtable/hashfunc.c" + ], + "crypto/hashtable/libcrypto-lib-hashtable.o" => [ + "crypto/hashtable/hashtable.c" + ], + "crypto/hashtable/libfips-lib-hashfunc.o" => [ + "crypto/hashtable/hashfunc.c" + ], + "crypto/hashtable/libfips-lib-hashtable.o" => [ + "crypto/hashtable/hashtable.c" + ], "crypto/hmac/libcrypto-lib-hmac.o" => [ "crypto/hmac/hmac.c" ], "crypto/hmac/libfips-lib-hmac.o" => [ "crypto/hmac/hmac.c" ], + "crypto/hpke/libcrypto-lib-hpke.o" => [ + "crypto/hpke/hpke.c" + ], + "crypto/hpke/libcrypto-lib-hpke_util.o" => [ + "crypto/hpke/hpke_util.c" + ], "crypto/http/libcrypto-lib-http_client.o" => [ "crypto/http/http_client.c" ], @@ -22314,6 +25809,9 @@ our %unified_info = ( "crypto/libcrypto-lib-bsearch.o" => [ "crypto/bsearch.c" ], + "crypto/libcrypto-lib-comp_methods.o" => [ + "crypto/comp_methods.c" + ], "crypto/libcrypto-lib-context.o" => [ "crypto/context.c" ], @@ -22341,9 +25839,15 @@ our %unified_info = ( "crypto/libcrypto-lib-cversion.o" => [ "crypto/cversion.c" ], + "crypto/libcrypto-lib-defaults.o" => [ + "crypto/defaults.c" + ], "crypto/libcrypto-lib-der_writer.o" => [ "crypto/der_writer.c" ], + "crypto/libcrypto-lib-deterministic_nonce.o" => [ + "crypto/deterministic_nonce.c" + ], "crypto/libcrypto-lib-ebcdic.o" => [ "crypto/ebcdic.c" ], @@ -22353,6 +25857,9 @@ our %unified_info = ( "crypto/libcrypto-lib-getenv.o" => [ "crypto/getenv.c" ], + "crypto/libcrypto-lib-indicator_core.o" => [ + "crypto/indicator_core.c" + ], "crypto/libcrypto-lib-info.o" => [ "crypto/info.c" ], @@ -22404,6 +25911,9 @@ our %unified_info = ( "crypto/libcrypto-lib-params_from_text.o" => [ "crypto/params_from_text.c" ], + "crypto/libcrypto-lib-params_idx.o" => [ + "crypto/params_idx.c" + ], "crypto/libcrypto-lib-passphrase.o" => [ "crypto/passphrase.c" ], @@ -22425,12 +25935,21 @@ our %unified_info = ( "crypto/libcrypto-lib-punycode.o" => [ "crypto/punycode.c" ], + "crypto/libcrypto-lib-quic_vlint.o" => [ + "crypto/quic_vlint.c" + ], "crypto/libcrypto-lib-self_test_core.o" => [ "crypto/self_test_core.c" ], + "crypto/libcrypto-lib-sleep.o" => [ + "crypto/sleep.c" + ], "crypto/libcrypto-lib-sparse_array.o" => [ "crypto/sparse_array.c" ], + "crypto/libcrypto-lib-ssl_err.o" => [ + "crypto/ssl_err.c" + ], "crypto/libcrypto-lib-threads_lib.o" => [ "crypto/threads_lib.c" ], @@ -22443,6 +25962,9 @@ our %unified_info = ( "crypto/libcrypto-lib-threads_win.o" => [ "crypto/threads_win.c" ], + "crypto/libcrypto-lib-time.o" => [ + "crypto/time.c" + ], "crypto/libcrypto-lib-trace.o" => [ "crypto/trace.c" ], @@ -22509,6 +26031,9 @@ our %unified_info = ( "crypto/libfips-lib-params_from_text.o" => [ "crypto/params_from_text.c" ], + "crypto/libfips-lib-params_idx.o" => [ + "crypto/params_idx.c" + ], "crypto/libfips-lib-provider_core.o" => [ "crypto/provider_core.c" ], @@ -22533,6 +26058,9 @@ our %unified_info = ( "crypto/libfips-lib-threads_win.o" => [ "crypto/threads_win.c" ], + "crypto/libfips-lib-time.o" => [ + "crypto/time.c" + ], "crypto/md4/libcrypto-lib-md4_dgst.o" => [ "crypto/md4/md4_dgst.c" ], @@ -22554,6 +26082,60 @@ our %unified_info = ( "crypto/mdc2/libcrypto-lib-mdc2dgst.o" => [ "crypto/mdc2/mdc2dgst.c" ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_encoders.o" => [ + "crypto/ml_dsa/ml_dsa_encoders.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key.o" => [ + "crypto/ml_dsa/ml_dsa_key.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key_compress.o" => [ + "crypto/ml_dsa/ml_dsa_key_compress.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_matrix.o" => [ + "crypto/ml_dsa/ml_dsa_matrix.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_ntt.o" => [ + "crypto/ml_dsa/ml_dsa_ntt.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_params.o" => [ + "crypto/ml_dsa/ml_dsa_params.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sample.o" => [ + "crypto/ml_dsa/ml_dsa_sample.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sign.o" => [ + "crypto/ml_dsa/ml_dsa_sign.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_encoders.o" => [ + "crypto/ml_dsa/ml_dsa_encoders.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_key.o" => [ + "crypto/ml_dsa/ml_dsa_key.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_key_compress.o" => [ + "crypto/ml_dsa/ml_dsa_key_compress.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_matrix.o" => [ + "crypto/ml_dsa/ml_dsa_matrix.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_ntt.o" => [ + "crypto/ml_dsa/ml_dsa_ntt.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_params.o" => [ + "crypto/ml_dsa/ml_dsa_params.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_sample.o" => [ + "crypto/ml_dsa/ml_dsa_sample.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_sign.o" => [ + "crypto/ml_dsa/ml_dsa_sign.c" + ], + "crypto/ml_kem/libcrypto-lib-ml_kem.o" => [ + "crypto/ml_kem/ml_kem.c" + ], + "crypto/ml_kem/libfips-lib-ml_kem.o" => [ + "crypto/ml_kem/ml_kem.c" + ], "crypto/modes/libcrypto-lib-cbc128.o" => [ "crypto/modes/cbc128.c" ], @@ -22587,6 +26169,9 @@ our %unified_info = ( "crypto/modes/libcrypto-lib-xts128.o" => [ "crypto/modes/xts128.c" ], + "crypto/modes/libcrypto-lib-xts128gb.o" => [ + "crypto/modes/xts128gb.c" + ], "crypto/modes/libfips-lib-cbc128.o" => [ "crypto/modes/cbc128.c" ], @@ -22611,6 +26196,9 @@ our %unified_info = ( "crypto/modes/libfips-lib-xts128.o" => [ "crypto/modes/xts128.c" ], + "crypto/modes/libfips-lib-xts128gb.o" => [ + "crypto/modes/xts128gb.c" + ], "crypto/objects/libcrypto-lib-o_names.o" => [ "crypto/objects/o_names.c" ], @@ -22656,6 +26244,9 @@ our %unified_info = ( "crypto/ocsp/libcrypto-lib-v3_ocsp.o" => [ "crypto/ocsp/v3_ocsp.c" ], + "crypto/packettest-bin-quic_vlint.o" => [ + "crypto/quic_vlint.c" + ], "crypto/pem/libcrypto-lib-pem_all.o" => [ "crypto/pem/pem_all.c" ], @@ -22815,6 +26406,9 @@ our %unified_info = ( "crypto/rand/libcrypto-lib-rand_pool.o" => [ "crypto/rand/rand_pool.c" ], + "crypto/rand/libcrypto-lib-rand_uniform.o" => [ + "crypto/rand/rand_uniform.c" + ], "crypto/rand/libcrypto-lib-randfile.o" => [ "crypto/rand/randfile.c" ], @@ -23028,6 +26622,66 @@ our %unified_info = ( "crypto/siphash/libcrypto-lib-siphash.o" => [ "crypto/siphash/siphash.c" ], + "crypto/slh_dsa/libcrypto-lib-slh_adrs.o" => [ + "crypto/slh_dsa/slh_adrs.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_dsa.o" => [ + "crypto/slh_dsa/slh_dsa.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_dsa_hash_ctx.o" => [ + "crypto/slh_dsa/slh_dsa_hash_ctx.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_dsa_key.o" => [ + "crypto/slh_dsa/slh_dsa_key.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_fors.o" => [ + "crypto/slh_dsa/slh_fors.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_hash.o" => [ + "crypto/slh_dsa/slh_hash.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_hypertree.o" => [ + "crypto/slh_dsa/slh_hypertree.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_params.o" => [ + "crypto/slh_dsa/slh_params.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_wots.o" => [ + "crypto/slh_dsa/slh_wots.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_xmss.o" => [ + "crypto/slh_dsa/slh_xmss.c" + ], + "crypto/slh_dsa/libfips-lib-slh_adrs.o" => [ + "crypto/slh_dsa/slh_adrs.c" + ], + "crypto/slh_dsa/libfips-lib-slh_dsa.o" => [ + "crypto/slh_dsa/slh_dsa.c" + ], + "crypto/slh_dsa/libfips-lib-slh_dsa_hash_ctx.o" => [ + "crypto/slh_dsa/slh_dsa_hash_ctx.c" + ], + "crypto/slh_dsa/libfips-lib-slh_dsa_key.o" => [ + "crypto/slh_dsa/slh_dsa_key.c" + ], + "crypto/slh_dsa/libfips-lib-slh_fors.o" => [ + "crypto/slh_dsa/slh_fors.c" + ], + "crypto/slh_dsa/libfips-lib-slh_hash.o" => [ + "crypto/slh_dsa/slh_hash.c" + ], + "crypto/slh_dsa/libfips-lib-slh_hypertree.o" => [ + "crypto/slh_dsa/slh_hypertree.c" + ], + "crypto/slh_dsa/libfips-lib-slh_params.o" => [ + "crypto/slh_dsa/slh_params.c" + ], + "crypto/slh_dsa/libfips-lib-slh_wots.o" => [ + "crypto/slh_dsa/slh_wots.c" + ], + "crypto/slh_dsa/libfips-lib-slh_xmss.o" => [ + "crypto/slh_dsa/slh_xmss.c" + ], "crypto/sm2/libcrypto-lib-sm2_crypt.o" => [ "crypto/sm2/sm2_crypt.c" ], @@ -23082,6 +26736,42 @@ our %unified_info = ( "crypto/store/libcrypto-lib-store_strings.o" => [ "crypto/store/store_strings.c" ], + "crypto/thread/arch/libcrypto-lib-thread_none.o" => [ + "crypto/thread/arch/thread_none.c" + ], + "crypto/thread/arch/libcrypto-lib-thread_posix.o" => [ + "crypto/thread/arch/thread_posix.c" + ], + "crypto/thread/arch/libcrypto-lib-thread_win.o" => [ + "crypto/thread/arch/thread_win.c" + ], + "crypto/thread/arch/libfips-lib-thread_none.o" => [ + "crypto/thread/arch/thread_none.c" + ], + "crypto/thread/arch/libfips-lib-thread_posix.o" => [ + "crypto/thread/arch/thread_posix.c" + ], + "crypto/thread/arch/libfips-lib-thread_win.o" => [ + "crypto/thread/arch/thread_win.c" + ], + "crypto/thread/libcrypto-lib-api.o" => [ + "crypto/thread/api.c" + ], + "crypto/thread/libcrypto-lib-arch.o" => [ + "crypto/thread/arch.c" + ], + "crypto/thread/libcrypto-lib-internal.o" => [ + "crypto/thread/internal.c" + ], + "crypto/thread/libfips-lib-api.o" => [ + "crypto/thread/api.c" + ], + "crypto/thread/libfips-lib-arch.o" => [ + "crypto/thread/arch.c" + ], + "crypto/thread/libfips-lib-internal.o" => [ + "crypto/thread/internal.c" + ], "crypto/ts/libcrypto-lib-ts_asn1.o" => [ "crypto/ts/ts_asn1.c" ], @@ -23166,6 +26856,9 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-pcy_tree.o" => [ "crypto/x509/pcy_tree.c" ], + "crypto/x509/libcrypto-lib-t_acert.o" => [ + "crypto/x509/t_acert.c" + ], "crypto/x509/libcrypto-lib-t_crl.o" => [ "crypto/x509/t_crl.c" ], @@ -23175,6 +26868,12 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-t_x509.o" => [ "crypto/x509/t_x509.c" ], + "crypto/x509/libcrypto-lib-v3_aaa.o" => [ + "crypto/x509/v3_aaa.c" + ], + "crypto/x509/libcrypto-lib-v3_ac_tgt.o" => [ + "crypto/x509/v3_ac_tgt.c" + ], "crypto/x509/libcrypto-lib-v3_addr.o" => [ "crypto/x509/v3_addr.c" ], @@ -23190,6 +26889,21 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_asid.o" => [ "crypto/x509/v3_asid.c" ], + "crypto/x509/libcrypto-lib-v3_attrdesc.o" => [ + "crypto/x509/v3_attrdesc.c" + ], + "crypto/x509/libcrypto-lib-v3_attrmap.o" => [ + "crypto/x509/v3_attrmap.c" + ], + "crypto/x509/libcrypto-lib-v3_audit_id.o" => [ + "crypto/x509/v3_audit_id.c" + ], + "crypto/x509/libcrypto-lib-v3_authattid.o" => [ + "crypto/x509/v3_authattid.c" + ], + "crypto/x509/libcrypto-lib-v3_battcons.o" => [ + "crypto/x509/v3_battcons.c" + ], "crypto/x509/libcrypto-lib-v3_bcons.o" => [ "crypto/x509/v3_bcons.c" ], @@ -23214,15 +26928,24 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_genn.o" => [ "crypto/x509/v3_genn.c" ], + "crypto/x509/libcrypto-lib-v3_group_ac.o" => [ + "crypto/x509/v3_group_ac.c" + ], "crypto/x509/libcrypto-lib-v3_ia5.o" => [ "crypto/x509/v3_ia5.c" ], + "crypto/x509/libcrypto-lib-v3_ind_iss.o" => [ + "crypto/x509/v3_ind_iss.c" + ], "crypto/x509/libcrypto-lib-v3_info.o" => [ "crypto/x509/v3_info.c" ], "crypto/x509/libcrypto-lib-v3_int.o" => [ "crypto/x509/v3_int.c" ], + "crypto/x509/libcrypto-lib-v3_iobo.o" => [ + "crypto/x509/v3_iobo.c" + ], "crypto/x509/libcrypto-lib-v3_ist.o" => [ "crypto/x509/v3_ist.c" ], @@ -23232,6 +26955,12 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_ncons.o" => [ "crypto/x509/v3_ncons.c" ], + "crypto/x509/libcrypto-lib-v3_no_ass.o" => [ + "crypto/x509/v3_no_ass.c" + ], + "crypto/x509/libcrypto-lib-v3_no_rev_avail.o" => [ + "crypto/x509/v3_no_rev_avail.c" + ], "crypto/x509/libcrypto-lib-v3_pci.o" => [ "crypto/x509/v3_pci.c" ], @@ -23253,18 +26982,36 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_purp.o" => [ "crypto/x509/v3_purp.c" ], + "crypto/x509/libcrypto-lib-v3_rolespec.o" => [ + "crypto/x509/v3_rolespec.c" + ], "crypto/x509/libcrypto-lib-v3_san.o" => [ "crypto/x509/v3_san.c" ], + "crypto/x509/libcrypto-lib-v3_sda.o" => [ + "crypto/x509/v3_sda.c" + ], + "crypto/x509/libcrypto-lib-v3_single_use.o" => [ + "crypto/x509/v3_single_use.c" + ], "crypto/x509/libcrypto-lib-v3_skid.o" => [ "crypto/x509/v3_skid.c" ], + "crypto/x509/libcrypto-lib-v3_soa_id.o" => [ + "crypto/x509/v3_soa_id.c" + ], "crypto/x509/libcrypto-lib-v3_sxnet.o" => [ "crypto/x509/v3_sxnet.c" ], + "crypto/x509/libcrypto-lib-v3_timespec.o" => [ + "crypto/x509/v3_timespec.c" + ], "crypto/x509/libcrypto-lib-v3_tlsf.o" => [ "crypto/x509/v3_tlsf.c" ], + "crypto/x509/libcrypto-lib-v3_usernotice.o" => [ + "crypto/x509/v3_usernotice.c" + ], "crypto/x509/libcrypto-lib-v3_utf8.o" => [ "crypto/x509/v3_utf8.c" ], @@ -23274,6 +27021,9 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3err.o" => [ "crypto/x509/v3err.c" ], + "crypto/x509/libcrypto-lib-x509_acert.o" => [ + "crypto/x509/x509_acert.c" + ], "crypto/x509/libcrypto-lib-x509_att.o" => [ "crypto/x509/x509_att.c" ], @@ -23325,6 +27075,9 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x509_vpm.o" => [ "crypto/x509/x509_vpm.c" ], + "crypto/x509/libcrypto-lib-x509aset.o" => [ + "crypto/x509/x509aset.c" + ], "crypto/x509/libcrypto-lib-x509cset.o" => [ "crypto/x509/x509cset.c" ], @@ -23352,6 +27105,9 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x_exten.o" => [ "crypto/x509/x_exten.c" ], + "crypto/x509/libcrypto-lib-x_ietfatt.o" => [ + "crypto/x509/x_ietfatt.c" + ], "crypto/x509/libcrypto-lib-x_name.o" => [ "crypto/x509/x_name.c" ], @@ -23373,6 +27129,16 @@ our %unified_info = ( "engines/libcrypto-lib-e_padlock.o" => [ "engines/e_padlock.c" ], + "fuzz/acert-test" => [ + "fuzz/acert-test-bin-acert.o", + "fuzz/acert-test-bin-test-corpus.o" + ], + "fuzz/acert-test-bin-acert.o" => [ + "fuzz/acert.c" + ], + "fuzz/acert-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], "fuzz/asn1-test" => [ "fuzz/asn1-test-bin-asn1.o", "fuzz/asn1-test-bin-fuzz_rand.o", @@ -23485,6 +27251,190 @@ our %unified_info = ( "fuzz/ct-test-bin-test-corpus.o" => [ "fuzz/test-corpus.c" ], + "fuzz/decoder-test" => [ + "fuzz/decoder-test-bin-decoder.o", + "fuzz/decoder-test-bin-fuzz_rand.o", + "fuzz/decoder-test-bin-test-corpus.o" + ], + "fuzz/decoder-test-bin-decoder.o" => [ + "fuzz/decoder.c" + ], + "fuzz/decoder-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/decoder-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/dtlsclient-test" => [ + "fuzz/dtlsclient-test-bin-dtlsclient.o", + "fuzz/dtlsclient-test-bin-fuzz_rand.o", + "fuzz/dtlsclient-test-bin-test-corpus.o" + ], + "fuzz/dtlsclient-test-bin-dtlsclient.o" => [ + "fuzz/dtlsclient.c" + ], + "fuzz/dtlsclient-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/dtlsclient-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/dtlsserver-test" => [ + "fuzz/dtlsserver-test-bin-dtlsserver.o", + "fuzz/dtlsserver-test-bin-fuzz_rand.o", + "fuzz/dtlsserver-test-bin-test-corpus.o" + ], + "fuzz/dtlsserver-test-bin-dtlsserver.o" => [ + "fuzz/dtlsserver.c" + ], + "fuzz/dtlsserver-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/dtlsserver-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/hashtable-test" => [ + "fuzz/hashtable-test-bin-fuzz_rand.o", + "fuzz/hashtable-test-bin-hashtable.o", + "fuzz/hashtable-test-bin-test-corpus.o" + ], + "fuzz/hashtable-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/hashtable-test-bin-hashtable.o" => [ + "fuzz/hashtable.c" + ], + "fuzz/hashtable-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/ml-dsa-test" => [ + "fuzz/ml-dsa-test-bin-fuzz_rand.o", + "fuzz/ml-dsa-test-bin-ml-dsa.o", + "fuzz/ml-dsa-test-bin-test-corpus.o" + ], + "fuzz/ml-dsa-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/ml-dsa-test-bin-ml-dsa.o" => [ + "fuzz/ml-dsa.c" + ], + "fuzz/ml-dsa-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/ml-kem-test" => [ + "fuzz/ml-kem-test-bin-fuzz_rand.o", + "fuzz/ml-kem-test-bin-ml-kem.o", + "fuzz/ml-kem-test-bin-test-corpus.o" + ], + "fuzz/ml-kem-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/ml-kem-test-bin-ml-kem.o" => [ + "fuzz/ml-kem.c" + ], + "fuzz/ml-kem-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/pem-test" => [ + "fuzz/pem-test-bin-pem.o", + "fuzz/pem-test-bin-test-corpus.o" + ], + "fuzz/pem-test-bin-pem.o" => [ + "fuzz/pem.c" + ], + "fuzz/pem-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/provider-test" => [ + "fuzz/provider-test-bin-provider.o", + "fuzz/provider-test-bin-test-corpus.o" + ], + "fuzz/provider-test-bin-provider.o" => [ + "fuzz/provider.c" + ], + "fuzz/provider-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/punycode-test" => [ + "fuzz/punycode-test-bin-punycode.o", + "fuzz/punycode-test-bin-test-corpus.o" + ], + "fuzz/punycode-test-bin-punycode.o" => [ + "fuzz/punycode.c" + ], + "fuzz/punycode-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-client-test" => [ + "fuzz/quic-client-test-bin-fuzz_rand.o", + "fuzz/quic-client-test-bin-quic-client.o", + "fuzz/quic-client-test-bin-test-corpus.o" + ], + "fuzz/quic-client-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-client-test-bin-quic-client.o" => [ + "fuzz/quic-client.c" + ], + "fuzz/quic-client-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-lcidm-test" => [ + "fuzz/quic-lcidm-test-bin-fuzz_rand.o", + "fuzz/quic-lcidm-test-bin-quic-lcidm.o", + "fuzz/quic-lcidm-test-bin-test-corpus.o" + ], + "fuzz/quic-lcidm-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-lcidm-test-bin-quic-lcidm.o" => [ + "fuzz/quic-lcidm.c" + ], + "fuzz/quic-lcidm-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-rcidm-test" => [ + "fuzz/quic-rcidm-test-bin-fuzz_rand.o", + "fuzz/quic-rcidm-test-bin-quic-rcidm.o", + "fuzz/quic-rcidm-test-bin-test-corpus.o" + ], + "fuzz/quic-rcidm-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-rcidm-test-bin-quic-rcidm.o" => [ + "fuzz/quic-rcidm.c" + ], + "fuzz/quic-rcidm-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-server-test" => [ + "fuzz/quic-server-test-bin-fuzz_rand.o", + "fuzz/quic-server-test-bin-quic-server.o", + "fuzz/quic-server-test-bin-test-corpus.o" + ], + "fuzz/quic-server-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-server-test-bin-quic-server.o" => [ + "fuzz/quic-server.c" + ], + "fuzz/quic-server-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-srtm-test" => [ + "fuzz/quic-srtm-test-bin-fuzz_rand.o", + "fuzz/quic-srtm-test-bin-quic-srtm.o", + "fuzz/quic-srtm-test-bin-test-corpus.o" + ], + "fuzz/quic-srtm-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-srtm-test-bin-quic-srtm.o" => [ + "fuzz/quic-srtm.c" + ], + "fuzz/quic-srtm-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], "fuzz/server-test" => [ "fuzz/server-test-bin-fuzz_rand.o", "fuzz/server-test-bin-server.o", @@ -23499,6 +27449,40 @@ our %unified_info = ( "fuzz/server-test-bin-test-corpus.o" => [ "fuzz/test-corpus.c" ], + "fuzz/slh-dsa-test" => [ + "fuzz/slh-dsa-test-bin-fuzz_rand.o", + "fuzz/slh-dsa-test-bin-slh-dsa.o", + "fuzz/slh-dsa-test-bin-test-corpus.o" + ], + "fuzz/slh-dsa-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/slh-dsa-test-bin-slh-dsa.o" => [ + "fuzz/slh-dsa.c" + ], + "fuzz/slh-dsa-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/smime-test" => [ + "fuzz/smime-test-bin-smime.o", + "fuzz/smime-test-bin-test-corpus.o" + ], + "fuzz/smime-test-bin-smime.o" => [ + "fuzz/smime.c" + ], + "fuzz/smime-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/v3name-test" => [ + "fuzz/v3name-test-bin-test-corpus.o", + "fuzz/v3name-test-bin-v3name.o" + ], + "fuzz/v3name-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/v3name-test-bin-v3name.o" => [ + "fuzz/v3name.c" + ], "fuzz/x509-test" => [ "fuzz/x509-test-bin-fuzz_rand.o", "fuzz/x509-test-bin-test-corpus.o", @@ -23618,6 +27602,7 @@ our %unified_info = ( "crypto/bio/libcrypto-lib-bss_conn.o", "crypto/bio/libcrypto-lib-bss_core.o", "crypto/bio/libcrypto-lib-bss_dgram.o", + "crypto/bio/libcrypto-lib-bss_dgram_pair.o", "crypto/bio/libcrypto-lib-bss_fd.o", "crypto/bio/libcrypto-lib-bss_file.o", "crypto/bio/libcrypto-lib-bss_log.o", @@ -23678,6 +27663,7 @@ our %unified_info = ( "crypto/cmp/libcrypto-lib-cmp_client.o", "crypto/cmp/libcrypto-lib-cmp_ctx.o", "crypto/cmp/libcrypto-lib-cmp_err.o", + "crypto/cmp/libcrypto-lib-cmp_genm.o", "crypto/cmp/libcrypto-lib-cmp_hdr.o", "crypto/cmp/libcrypto-lib-cmp_http.o", "crypto/cmp/libcrypto-lib-cmp_msg.o", @@ -23853,7 +27839,9 @@ our %unified_info = ( "crypto/err/libcrypto-lib-err_all.o", "crypto/err/libcrypto-lib-err_all_legacy.o", "crypto/err/libcrypto-lib-err_blocks.o", + "crypto/err/libcrypto-lib-err_mark.o", "crypto/err/libcrypto-lib-err_prn.o", + "crypto/err/libcrypto-lib-err_save.o", "crypto/ess/libcrypto-lib-ess_asn1.o", "crypto/ess/libcrypto-lib-ess_err.o", "crypto/ess/libcrypto-lib-ess_lib.o", @@ -23936,7 +27924,9 @@ our %unified_info = ( "crypto/evp/libcrypto-lib-pmeth_check.o", "crypto/evp/libcrypto-lib-pmeth_gn.o", "crypto/evp/libcrypto-lib-pmeth_lib.o", + "crypto/evp/libcrypto-lib-s_lib.o", "crypto/evp/libcrypto-lib-signature.o", + "crypto/evp/libcrypto-lib-skeymgmt_meth.o", "crypto/ffc/libcrypto-lib-ffc_backend.o", "crypto/ffc/libcrypto-lib-ffc_dh.o", "crypto/ffc/libcrypto-lib-ffc_key_generate.o", @@ -23944,7 +27934,11 @@ our %unified_info = ( "crypto/ffc/libcrypto-lib-ffc_params.o", "crypto/ffc/libcrypto-lib-ffc_params_generate.o", "crypto/ffc/libcrypto-lib-ffc_params_validate.o", + "crypto/hashtable/libcrypto-lib-hashfunc.o", + "crypto/hashtable/libcrypto-lib-hashtable.o", "crypto/hmac/libcrypto-lib-hmac.o", + "crypto/hpke/libcrypto-lib-hpke.o", + "crypto/hpke/libcrypto-lib-hpke_util.o", "crypto/http/libcrypto-lib-http_client.o", "crypto/http/libcrypto-lib-http_err.o", "crypto/http/libcrypto-lib-http_lib.o", @@ -23958,6 +27952,7 @@ our %unified_info = ( "crypto/lhash/libcrypto-lib-lhash.o", "crypto/libcrypto-lib-asn1_dsa.o", "crypto/libcrypto-lib-bsearch.o", + "crypto/libcrypto-lib-comp_methods.o", "crypto/libcrypto-lib-context.o", "crypto/libcrypto-lib-core_algorithm.o", "crypto/libcrypto-lib-core_fetch.o", @@ -23967,10 +27962,13 @@ our %unified_info = ( "crypto/libcrypto-lib-cryptlib.o", "crypto/libcrypto-lib-ctype.o", "crypto/libcrypto-lib-cversion.o", + "crypto/libcrypto-lib-defaults.o", "crypto/libcrypto-lib-der_writer.o", + "crypto/libcrypto-lib-deterministic_nonce.o", "crypto/libcrypto-lib-ebcdic.o", "crypto/libcrypto-lib-ex_data.o", "crypto/libcrypto-lib-getenv.o", + "crypto/libcrypto-lib-indicator_core.o", "crypto/libcrypto-lib-info.o", "crypto/libcrypto-lib-init.o", "crypto/libcrypto-lib-initthread.o", @@ -23988,6 +27986,7 @@ our %unified_info = ( "crypto/libcrypto-lib-params.o", "crypto/libcrypto-lib-params_dup.o", "crypto/libcrypto-lib-params_from_text.o", + "crypto/libcrypto-lib-params_idx.o", "crypto/libcrypto-lib-passphrase.o", "crypto/libcrypto-lib-provider.o", "crypto/libcrypto-lib-provider_child.o", @@ -23995,12 +27994,16 @@ our %unified_info = ( "crypto/libcrypto-lib-provider_core.o", "crypto/libcrypto-lib-provider_predefined.o", "crypto/libcrypto-lib-punycode.o", + "crypto/libcrypto-lib-quic_vlint.o", "crypto/libcrypto-lib-self_test_core.o", + "crypto/libcrypto-lib-sleep.o", "crypto/libcrypto-lib-sparse_array.o", + "crypto/libcrypto-lib-ssl_err.o", "crypto/libcrypto-lib-threads_lib.o", "crypto/libcrypto-lib-threads_none.o", "crypto/libcrypto-lib-threads_pthread.o", "crypto/libcrypto-lib-threads_win.o", + "crypto/libcrypto-lib-time.o", "crypto/libcrypto-lib-trace.o", "crypto/libcrypto-lib-uid.o", "crypto/md4/libcrypto-lib-md4_dgst.o", @@ -24010,6 +28013,15 @@ our %unified_info = ( "crypto/md5/libcrypto-lib-md5_sha1.o", "crypto/mdc2/libcrypto-lib-mdc2_one.o", "crypto/mdc2/libcrypto-lib-mdc2dgst.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_encoders.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key_compress.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_matrix.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_ntt.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_params.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sample.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sign.o", + "crypto/ml_kem/libcrypto-lib-ml_kem.o", "crypto/modes/libcrypto-lib-cbc128.o", "crypto/modes/libcrypto-lib-ccm128.o", "crypto/modes/libcrypto-lib-cfb128.o", @@ -24021,6 +28033,7 @@ our %unified_info = ( "crypto/modes/libcrypto-lib-siv128.o", "crypto/modes/libcrypto-lib-wrap128.o", "crypto/modes/libcrypto-lib-xts128.o", + "crypto/modes/libcrypto-lib-xts128gb.o", "crypto/objects/libcrypto-lib-o_names.o", "crypto/objects/libcrypto-lib-obj_dat.o", "crypto/objects/libcrypto-lib-obj_err.o", @@ -24084,6 +28097,7 @@ our %unified_info = ( "crypto/rand/libcrypto-lib-rand_lib.o", "crypto/rand/libcrypto-lib-rand_meth.o", "crypto/rand/libcrypto-lib-rand_pool.o", + "crypto/rand/libcrypto-lib-rand_uniform.o", "crypto/rand/libcrypto-lib-randfile.o", "crypto/rc2/libcrypto-lib-rc2_cbc.o", "crypto/rc2/libcrypto-lib-rc2_ecb.o", @@ -24132,6 +28146,16 @@ our %unified_info = ( "crypto/sha/libcrypto-lib-sha3.o", "crypto/sha/libcrypto-lib-sha512.o", "crypto/siphash/libcrypto-lib-siphash.o", + "crypto/slh_dsa/libcrypto-lib-slh_adrs.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa_hash_ctx.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa_key.o", + "crypto/slh_dsa/libcrypto-lib-slh_fors.o", + "crypto/slh_dsa/libcrypto-lib-slh_hash.o", + "crypto/slh_dsa/libcrypto-lib-slh_hypertree.o", + "crypto/slh_dsa/libcrypto-lib-slh_params.o", + "crypto/slh_dsa/libcrypto-lib-slh_wots.o", + "crypto/slh_dsa/libcrypto-lib-slh_xmss.o", "crypto/sm2/libcrypto-lib-sm2_crypt.o", "crypto/sm2/libcrypto-lib-sm2_err.o", "crypto/sm2/libcrypto-lib-sm2_key.o", @@ -24149,6 +28173,12 @@ our %unified_info = ( "crypto/store/libcrypto-lib-store_register.o", "crypto/store/libcrypto-lib-store_result.o", "crypto/store/libcrypto-lib-store_strings.o", + "crypto/thread/arch/libcrypto-lib-thread_none.o", + "crypto/thread/arch/libcrypto-lib-thread_posix.o", + "crypto/thread/arch/libcrypto-lib-thread_win.o", + "crypto/thread/libcrypto-lib-api.o", + "crypto/thread/libcrypto-lib-arch.o", + "crypto/thread/libcrypto-lib-internal.o", "crypto/ts/libcrypto-lib-ts_asn1.o", "crypto/ts/libcrypto-lib-ts_conf.o", "crypto/ts/libcrypto-lib-ts_err.o", @@ -24177,14 +28207,22 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-pcy_map.o", "crypto/x509/libcrypto-lib-pcy_node.o", "crypto/x509/libcrypto-lib-pcy_tree.o", + "crypto/x509/libcrypto-lib-t_acert.o", "crypto/x509/libcrypto-lib-t_crl.o", "crypto/x509/libcrypto-lib-t_req.o", "crypto/x509/libcrypto-lib-t_x509.o", + "crypto/x509/libcrypto-lib-v3_aaa.o", + "crypto/x509/libcrypto-lib-v3_ac_tgt.o", "crypto/x509/libcrypto-lib-v3_addr.o", "crypto/x509/libcrypto-lib-v3_admis.o", "crypto/x509/libcrypto-lib-v3_akeya.o", "crypto/x509/libcrypto-lib-v3_akid.o", "crypto/x509/libcrypto-lib-v3_asid.o", + "crypto/x509/libcrypto-lib-v3_attrdesc.o", + "crypto/x509/libcrypto-lib-v3_attrmap.o", + "crypto/x509/libcrypto-lib-v3_audit_id.o", + "crypto/x509/libcrypto-lib-v3_authattid.o", + "crypto/x509/libcrypto-lib-v3_battcons.o", "crypto/x509/libcrypto-lib-v3_bcons.o", "crypto/x509/libcrypto-lib-v3_bitst.o", "crypto/x509/libcrypto-lib-v3_conf.o", @@ -24193,12 +28231,17 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_enum.o", "crypto/x509/libcrypto-lib-v3_extku.o", "crypto/x509/libcrypto-lib-v3_genn.o", + "crypto/x509/libcrypto-lib-v3_group_ac.o", "crypto/x509/libcrypto-lib-v3_ia5.o", + "crypto/x509/libcrypto-lib-v3_ind_iss.o", "crypto/x509/libcrypto-lib-v3_info.o", "crypto/x509/libcrypto-lib-v3_int.o", + "crypto/x509/libcrypto-lib-v3_iobo.o", "crypto/x509/libcrypto-lib-v3_ist.o", "crypto/x509/libcrypto-lib-v3_lib.o", "crypto/x509/libcrypto-lib-v3_ncons.o", + "crypto/x509/libcrypto-lib-v3_no_ass.o", + "crypto/x509/libcrypto-lib-v3_no_rev_avail.o", "crypto/x509/libcrypto-lib-v3_pci.o", "crypto/x509/libcrypto-lib-v3_pcia.o", "crypto/x509/libcrypto-lib-v3_pcons.o", @@ -24206,13 +28249,20 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_pmaps.o", "crypto/x509/libcrypto-lib-v3_prn.o", "crypto/x509/libcrypto-lib-v3_purp.o", + "crypto/x509/libcrypto-lib-v3_rolespec.o", "crypto/x509/libcrypto-lib-v3_san.o", + "crypto/x509/libcrypto-lib-v3_sda.o", + "crypto/x509/libcrypto-lib-v3_single_use.o", "crypto/x509/libcrypto-lib-v3_skid.o", + "crypto/x509/libcrypto-lib-v3_soa_id.o", "crypto/x509/libcrypto-lib-v3_sxnet.o", + "crypto/x509/libcrypto-lib-v3_timespec.o", "crypto/x509/libcrypto-lib-v3_tlsf.o", + "crypto/x509/libcrypto-lib-v3_usernotice.o", "crypto/x509/libcrypto-lib-v3_utf8.o", "crypto/x509/libcrypto-lib-v3_utl.o", "crypto/x509/libcrypto-lib-v3err.o", + "crypto/x509/libcrypto-lib-x509_acert.o", "crypto/x509/libcrypto-lib-x509_att.o", "crypto/x509/libcrypto-lib-x509_cmp.o", "crypto/x509/libcrypto-lib-x509_d2.o", @@ -24230,6 +28280,7 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x509_v3.o", "crypto/x509/libcrypto-lib-x509_vfy.o", "crypto/x509/libcrypto-lib-x509_vpm.o", + "crypto/x509/libcrypto-lib-x509aset.o", "crypto/x509/libcrypto-lib-x509cset.o", "crypto/x509/libcrypto-lib-x509name.o", "crypto/x509/libcrypto-lib-x509rset.o", @@ -24239,6 +28290,7 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x_attrib.o", "crypto/x509/libcrypto-lib-x_crl.o", "crypto/x509/libcrypto-lib-x_exten.o", + "crypto/x509/libcrypto-lib-x_ietfatt.o", "crypto/x509/libcrypto-lib-x_name.o", "crypto/x509/libcrypto-lib-x_pubkey.o", "crypto/x509/libcrypto-lib-x_req.o", @@ -24259,14 +28311,15 @@ our %unified_info = ( "ssl/libssl-lib-d1_srtp.o", "ssl/libssl-lib-methods.o", "ssl/libssl-lib-pqueue.o", + "ssl/libssl-lib-priority_queue.o", "ssl/libssl-lib-s3_enc.o", "ssl/libssl-lib-s3_lib.o", "ssl/libssl-lib-s3_msg.o", "ssl/libssl-lib-ssl_asn1.o", "ssl/libssl-lib-ssl_cert.o", + "ssl/libssl-lib-ssl_cert_comp.o", "ssl/libssl-lib-ssl_ciph.o", "ssl/libssl-lib-ssl_conf.o", - "ssl/libssl-lib-ssl_err.o", "ssl/libssl-lib-ssl_err_legacy.o", "ssl/libssl-lib-ssl_init.o", "ssl/libssl-lib-ssl_lib.o", @@ -24283,12 +28336,60 @@ our %unified_info = ( "ssl/libssl-lib-tls13_enc.o", "ssl/libssl-lib-tls_depr.o", "ssl/libssl-lib-tls_srp.o", - "ssl/record/libssl-lib-dtls1_bitmap.o", + "ssl/quic/libssl-lib-cc_newreno.o", + "ssl/quic/libssl-lib-json_enc.o", + "ssl/quic/libssl-lib-qlog.o", + "ssl/quic/libssl-lib-qlog_event_helpers.o", + "ssl/quic/libssl-lib-quic_ackm.o", + "ssl/quic/libssl-lib-quic_cfq.o", + "ssl/quic/libssl-lib-quic_channel.o", + "ssl/quic/libssl-lib-quic_demux.o", + "ssl/quic/libssl-lib-quic_engine.o", + "ssl/quic/libssl-lib-quic_fc.o", + "ssl/quic/libssl-lib-quic_fifd.o", + "ssl/quic/libssl-lib-quic_impl.o", + "ssl/quic/libssl-lib-quic_lcidm.o", + "ssl/quic/libssl-lib-quic_method.o", + "ssl/quic/libssl-lib-quic_obj.o", + "ssl/quic/libssl-lib-quic_port.o", + "ssl/quic/libssl-lib-quic_rcidm.o", + "ssl/quic/libssl-lib-quic_reactor.o", + "ssl/quic/libssl-lib-quic_reactor_wait_ctx.o", + "ssl/quic/libssl-lib-quic_record_rx.o", + "ssl/quic/libssl-lib-quic_record_shared.o", + "ssl/quic/libssl-lib-quic_record_tx.o", + "ssl/quic/libssl-lib-quic_record_util.o", + "ssl/quic/libssl-lib-quic_rstream.o", + "ssl/quic/libssl-lib-quic_rx_depack.o", + "ssl/quic/libssl-lib-quic_sf_list.o", + "ssl/quic/libssl-lib-quic_srt_gen.o", + "ssl/quic/libssl-lib-quic_srtm.o", + "ssl/quic/libssl-lib-quic_sstream.o", + "ssl/quic/libssl-lib-quic_statm.o", + "ssl/quic/libssl-lib-quic_stream_map.o", + "ssl/quic/libssl-lib-quic_thread_assist.o", + "ssl/quic/libssl-lib-quic_tls.o", + "ssl/quic/libssl-lib-quic_tls_api.o", + "ssl/quic/libssl-lib-quic_trace.o", + "ssl/quic/libssl-lib-quic_tserver.o", + "ssl/quic/libssl-lib-quic_txp.o", + "ssl/quic/libssl-lib-quic_txpim.o", + "ssl/quic/libssl-lib-quic_types.o", + "ssl/quic/libssl-lib-quic_wire.o", + "ssl/quic/libssl-lib-quic_wire_pkt.o", + "ssl/quic/libssl-lib-uint_set.o", "ssl/record/libssl-lib-rec_layer_d1.o", "ssl/record/libssl-lib-rec_layer_s3.o", - "ssl/record/libssl-lib-ssl3_buffer.o", - "ssl/record/libssl-lib-ssl3_record.o", - "ssl/record/libssl-lib-ssl3_record_tls13.o", + "ssl/record/methods/libssl-lib-dtls_meth.o", + "ssl/record/methods/libssl-lib-ssl3_meth.o", + "ssl/record/methods/libssl-lib-tls13_meth.o", + "ssl/record/methods/libssl-lib-tls1_meth.o", + "ssl/record/methods/libssl-lib-tls_common.o", + "ssl/record/methods/libssl-lib-tls_multib.o", + "ssl/record/methods/libssl-lib-tlsany_meth.o", + "ssl/rio/libssl-lib-poll_builder.o", + "ssl/rio/libssl-lib-poll_immediate.o", + "ssl/rio/libssl-lib-rio_notifier.o", "ssl/statem/libssl-lib-extensions.o", "ssl/statem/libssl-lib-extensions_clnt.o", "ssl/statem/libssl-lib-extensions_cust.o", @@ -24326,12 +28427,24 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ecx_key.o" => [ "providers/common/der/der_ecx_key.c" ], + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o" => [ + "providers/common/der/der_ml_dsa_gen.c" + ], + "providers/common/der/libcommon-lib-der_ml_dsa_key.o" => [ + "providers/common/der/der_ml_dsa_key.c" + ], "providers/common/der/libcommon-lib-der_rsa_gen.o" => [ "providers/common/der/der_rsa_gen.c" ], "providers/common/der/libcommon-lib-der_rsa_key.o" => [ "providers/common/der/der_rsa_key.c" ], + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o" => [ + "providers/common/der/der_slh_dsa_gen.c" + ], + "providers/common/der/libcommon-lib-der_slh_dsa_key.o" => [ + "providers/common/der/der_slh_dsa_key.c" + ], "providers/common/der/libcommon-lib-der_wrap_gen.o" => [ "providers/common/der/der_wrap_gen.c" ], @@ -24398,6 +28511,9 @@ our %unified_info = ( "providers/common/libfips-lib-securitycheck_fips.o" => [ "providers/common/securitycheck_fips.c" ], + "providers/endecode_test-bin-legacyprov.o" => [ + "providers/legacyprov.c" + ], "providers/evp_extra_test-bin-legacyprov.o" => [ "providers/legacyprov.c" ], @@ -24407,6 +28523,9 @@ our %unified_info = ( "providers/fips/fips-dso-fips_entry.o" => [ "providers/fips/fips_entry.c" ], + "providers/fips/libfips-lib-fipsindicator.o" => [ + "providers/fips/fipsindicator.c" + ], "providers/fips/libfips-lib-fipsprov.o" => [ "providers/fips/fipsprov.c" ], @@ -24470,6 +28589,15 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_hw.o" => [ "providers/implementations/ciphers/cipher_aes_gcm_hw.c" ], + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv.o" => [ + "providers/implementations/ciphers/cipher_aes_gcm_siv.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_hw.o" => [ + "providers/implementations/ciphers/cipher_aes_gcm_siv_hw.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_polyval.o" => [ + "providers/implementations/ciphers/cipher_aes_gcm_siv_polyval.c" + ], "providers/implementations/ciphers/libdefault-lib-cipher_aes_hw.o" => [ "providers/implementations/ciphers/cipher_aes_hw.c" ], @@ -24542,9 +28670,27 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_sm4.o" => [ "providers/implementations/ciphers/cipher_sm4.c" ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm.o" => [ + "providers/implementations/ciphers/cipher_sm4_ccm.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm_hw.o" => [ + "providers/implementations/ciphers/cipher_sm4_ccm_hw.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm.o" => [ + "providers/implementations/ciphers/cipher_sm4_gcm.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm_hw.o" => [ + "providers/implementations/ciphers/cipher_sm4_gcm_hw.c" + ], "providers/implementations/ciphers/libdefault-lib-cipher_sm4_hw.o" => [ "providers/implementations/ciphers/cipher_sm4_hw.c" ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts.o" => [ + "providers/implementations/ciphers/cipher_sm4_xts.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts_hw.o" => [ + "providers/implementations/ciphers/cipher_sm4_xts_hw.c" + ], "providers/implementations/ciphers/libdefault-lib-cipher_tdes.o" => [ "providers/implementations/ciphers/cipher_tdes.c" ], @@ -24764,6 +28910,15 @@ our %unified_info = ( "providers/implementations/encode_decode/libdefault-lib-endecoder_common.o" => [ "providers/implementations/encode_decode/endecoder_common.c" ], + "providers/implementations/encode_decode/libdefault-lib-ml_common_codecs.o" => [ + "providers/implementations/encode_decode/ml_common_codecs.c" + ], + "providers/implementations/encode_decode/libdefault-lib-ml_dsa_codecs.o" => [ + "providers/implementations/encode_decode/ml_dsa_codecs.c" + ], + "providers/implementations/encode_decode/libdefault-lib-ml_kem_codecs.o" => [ + "providers/implementations/encode_decode/ml_kem_codecs.c" + ], "providers/implementations/exchange/libdefault-lib-dh_exch.o" => [ "providers/implementations/exchange/dh_exch.c" ], @@ -24788,9 +28943,15 @@ our %unified_info = ( "providers/implementations/exchange/libfips-lib-kdf_exch.o" => [ "providers/implementations/exchange/kdf_exch.c" ], + "providers/implementations/kdfs/libdefault-lib-argon2.o" => [ + "providers/implementations/kdfs/argon2.c" + ], "providers/implementations/kdfs/libdefault-lib-hkdf.o" => [ "providers/implementations/kdfs/hkdf.c" ], + "providers/implementations/kdfs/libdefault-lib-hmacdrbg_kdf.o" => [ + "providers/implementations/kdfs/hmacdrbg_kdf.c" + ], "providers/implementations/kdfs/libdefault-lib-kbkdf.o" => [ "providers/implementations/kdfs/kbkdf.c" ], @@ -24848,12 +29009,39 @@ our %unified_info = ( "providers/implementations/kdfs/liblegacy-lib-pbkdf1.o" => [ "providers/implementations/kdfs/pbkdf1.c" ], + "providers/implementations/kdfs/liblegacy-lib-pvkkdf.o" => [ + "providers/implementations/kdfs/pvkkdf.c" + ], + "providers/implementations/kem/libdefault-lib-ec_kem.o" => [ + "providers/implementations/kem/ec_kem.c" + ], + "providers/implementations/kem/libdefault-lib-ecx_kem.o" => [ + "providers/implementations/kem/ecx_kem.c" + ], + "providers/implementations/kem/libdefault-lib-kem_util.o" => [ + "providers/implementations/kem/kem_util.c" + ], + "providers/implementations/kem/libdefault-lib-ml_kem_kem.o" => [ + "providers/implementations/kem/ml_kem_kem.c" + ], + "providers/implementations/kem/libdefault-lib-mlx_kem.o" => [ + "providers/implementations/kem/mlx_kem.c" + ], "providers/implementations/kem/libdefault-lib-rsa_kem.o" => [ "providers/implementations/kem/rsa_kem.c" ], + "providers/implementations/kem/libfips-lib-ml_kem_kem.o" => [ + "providers/implementations/kem/ml_kem_kem.c" + ], + "providers/implementations/kem/libfips-lib-mlx_kem.o" => [ + "providers/implementations/kem/mlx_kem.c" + ], "providers/implementations/kem/libfips-lib-rsa_kem.o" => [ "providers/implementations/kem/rsa_kem.c" ], + "providers/implementations/kem/libtemplate-lib-template_kem.o" => [ + "providers/implementations/kem/template_kem.c" + ], "providers/implementations/keymgmt/libdefault-lib-dh_kmgmt.o" => [ "providers/implementations/keymgmt/dh_kmgmt.c" ], @@ -24872,9 +29060,21 @@ our %unified_info = ( "providers/implementations/keymgmt/libdefault-lib-mac_legacy_kmgmt.o" => [ "providers/implementations/keymgmt/mac_legacy_kmgmt.c" ], + "providers/implementations/keymgmt/libdefault-lib-ml_dsa_kmgmt.o" => [ + "providers/implementations/keymgmt/ml_dsa_kmgmt.c" + ], + "providers/implementations/keymgmt/libdefault-lib-ml_kem_kmgmt.o" => [ + "providers/implementations/keymgmt/ml_kem_kmgmt.c" + ], + "providers/implementations/keymgmt/libdefault-lib-mlx_kmgmt.o" => [ + "providers/implementations/keymgmt/mlx_kmgmt.c" + ], "providers/implementations/keymgmt/libdefault-lib-rsa_kmgmt.o" => [ "providers/implementations/keymgmt/rsa_kmgmt.c" ], + "providers/implementations/keymgmt/libdefault-lib-slh_dsa_kmgmt.o" => [ + "providers/implementations/keymgmt/slh_dsa_kmgmt.c" + ], "providers/implementations/keymgmt/libfips-lib-dh_kmgmt.o" => [ "providers/implementations/keymgmt/dh_kmgmt.c" ], @@ -24893,9 +29093,24 @@ our %unified_info = ( "providers/implementations/keymgmt/libfips-lib-mac_legacy_kmgmt.o" => [ "providers/implementations/keymgmt/mac_legacy_kmgmt.c" ], + "providers/implementations/keymgmt/libfips-lib-ml_dsa_kmgmt.o" => [ + "providers/implementations/keymgmt/ml_dsa_kmgmt.c" + ], + "providers/implementations/keymgmt/libfips-lib-ml_kem_kmgmt.o" => [ + "providers/implementations/keymgmt/ml_kem_kmgmt.c" + ], + "providers/implementations/keymgmt/libfips-lib-mlx_kmgmt.o" => [ + "providers/implementations/keymgmt/mlx_kmgmt.c" + ], "providers/implementations/keymgmt/libfips-lib-rsa_kmgmt.o" => [ "providers/implementations/keymgmt/rsa_kmgmt.c" ], + "providers/implementations/keymgmt/libfips-lib-slh_dsa_kmgmt.o" => [ + "providers/implementations/keymgmt/slh_dsa_kmgmt.c" + ], + "providers/implementations/keymgmt/libtemplate-lib-template_kmgmt.o" => [ + "providers/implementations/keymgmt/template_kmgmt.c" + ], "providers/implementations/macs/libdefault-lib-blake2b_mac.o" => [ "providers/implementations/macs/blake2b_mac.c" ], @@ -24932,9 +29147,6 @@ our %unified_info = ( "providers/implementations/macs/libfips-lib-kmac_prov.o" => [ "providers/implementations/macs/kmac_prov.c" ], - "providers/implementations/rands/libdefault-lib-crngt.o" => [ - "providers/implementations/rands/crngt.c" - ], "providers/implementations/rands/libdefault-lib-drbg.o" => [ "providers/implementations/rands/drbg.c" ], @@ -24950,12 +29162,12 @@ our %unified_info = ( "providers/implementations/rands/libdefault-lib-seed_src.o" => [ "providers/implementations/rands/seed_src.c" ], + "providers/implementations/rands/libdefault-lib-seed_src_jitter.o" => [ + "providers/implementations/rands/seed_src_jitter.c" + ], "providers/implementations/rands/libdefault-lib-test_rng.o" => [ "providers/implementations/rands/test_rng.c" ], - "providers/implementations/rands/libfips-lib-crngt.o" => [ - "providers/implementations/rands/crngt.c" - ], "providers/implementations/rands/libfips-lib-drbg.o" => [ "providers/implementations/rands/drbg.c" ], @@ -24968,6 +29180,9 @@ our %unified_info = ( "providers/implementations/rands/libfips-lib-drbg_hmac.o" => [ "providers/implementations/rands/drbg_hmac.c" ], + "providers/implementations/rands/libfips-lib-fips_crng_test.o" => [ + "providers/implementations/rands/fips_crng_test.c" + ], "providers/implementations/rands/libfips-lib-test_rng.o" => [ "providers/implementations/rands/test_rng.c" ], @@ -24995,9 +29210,15 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-mac_legacy_sig.o" => [ "providers/implementations/signature/mac_legacy_sig.c" ], + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o" => [ + "providers/implementations/signature/ml_dsa_sig.c" + ], "providers/implementations/signature/libdefault-lib-rsa_sig.o" => [ "providers/implementations/signature/rsa_sig.c" ], + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o" => [ + "providers/implementations/signature/slh_dsa_sig.c" + ], "providers/implementations/signature/libdefault-lib-sm2_sig.o" => [ "providers/implementations/signature/sm2_sig.c" ], @@ -25013,9 +29234,27 @@ our %unified_info = ( "providers/implementations/signature/libfips-lib-mac_legacy_sig.o" => [ "providers/implementations/signature/mac_legacy_sig.c" ], + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o" => [ + "providers/implementations/signature/ml_dsa_sig.c" + ], "providers/implementations/signature/libfips-lib-rsa_sig.o" => [ "providers/implementations/signature/rsa_sig.c" ], + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o" => [ + "providers/implementations/signature/slh_dsa_sig.c" + ], + "providers/implementations/skeymgmt/libdefault-lib-aes_skmgmt.o" => [ + "providers/implementations/skeymgmt/aes_skmgmt.c" + ], + "providers/implementations/skeymgmt/libdefault-lib-generic.o" => [ + "providers/implementations/skeymgmt/generic.c" + ], + "providers/implementations/skeymgmt/libfips-lib-aes_skmgmt.o" => [ + "providers/implementations/skeymgmt/aes_skmgmt.c" + ], + "providers/implementations/skeymgmt/libfips-lib-generic.o" => [ + "providers/implementations/skeymgmt/generic.c" + ], "providers/implementations/storemgmt/libdefault-lib-file_store.o" => [ "providers/implementations/storemgmt/file_store.c" ], @@ -25038,8 +29277,12 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ec_sig.o", "providers/common/der/libcommon-lib-der_ecx_gen.o", "providers/common/der/libcommon-lib-der_ecx_key.o", + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o", + "providers/common/der/libcommon-lib-der_ml_dsa_key.o", "providers/common/der/libcommon-lib-der_rsa_gen.o", "providers/common/der/libcommon-lib-der_rsa_key.o", + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o", + "providers/common/der/libcommon-lib-der_slh_dsa_key.o", "providers/common/der/libcommon-lib-der_wrap_gen.o", "providers/common/libcommon-lib-provider_ctx.o", "providers/common/libcommon-lib-provider_err.o", @@ -25051,7 +29294,7 @@ our %unified_info = ( "providers/implementations/ciphers/libcommon-lib-ciphercommon_gcm_hw.o", "providers/implementations/ciphers/libcommon-lib-ciphercommon_hw.o", "providers/implementations/digests/libcommon-lib-digestcommon.o", - "ssl/record/libcommon-lib-tls_pad.o" + "ssl/record/methods/libcommon-lib-tls_pad.o" ], "providers/libcrypto-lib-baseprov.o" => [ "providers/baseprov.c" @@ -25087,6 +29330,9 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_aes_ccm_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_polyval.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_ocb.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_ocb_hw.o", @@ -25111,7 +29357,13 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_cts.o", "providers/implementations/ciphers/libdefault-lib-cipher_null.o", "providers/implementations/ciphers/libdefault-lib-cipher_sm4.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_sm4_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes_common.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes_default.o", @@ -25140,11 +29392,16 @@ our %unified_info = ( "providers/implementations/encode_decode/libdefault-lib-encode_key2ms.o", "providers/implementations/encode_decode/libdefault-lib-encode_key2text.o", "providers/implementations/encode_decode/libdefault-lib-endecoder_common.o", + "providers/implementations/encode_decode/libdefault-lib-ml_common_codecs.o", + "providers/implementations/encode_decode/libdefault-lib-ml_dsa_codecs.o", + "providers/implementations/encode_decode/libdefault-lib-ml_kem_codecs.o", "providers/implementations/exchange/libdefault-lib-dh_exch.o", "providers/implementations/exchange/libdefault-lib-ecdh_exch.o", "providers/implementations/exchange/libdefault-lib-ecx_exch.o", "providers/implementations/exchange/libdefault-lib-kdf_exch.o", + "providers/implementations/kdfs/libdefault-lib-argon2.o", "providers/implementations/kdfs/libdefault-lib-hkdf.o", + "providers/implementations/kdfs/libdefault-lib-hmacdrbg_kdf.o", "providers/implementations/kdfs/libdefault-lib-kbkdf.o", "providers/implementations/kdfs/libdefault-lib-krb5kdf.o", "providers/implementations/kdfs/libdefault-lib-pbkdf2.o", @@ -25155,6 +29412,11 @@ our %unified_info = ( "providers/implementations/kdfs/libdefault-lib-sskdf.o", "providers/implementations/kdfs/libdefault-lib-tls1_prf.o", "providers/implementations/kdfs/libdefault-lib-x942kdf.o", + "providers/implementations/kem/libdefault-lib-ec_kem.o", + "providers/implementations/kem/libdefault-lib-ecx_kem.o", + "providers/implementations/kem/libdefault-lib-kem_util.o", + "providers/implementations/kem/libdefault-lib-ml_kem_kem.o", + "providers/implementations/kem/libdefault-lib-mlx_kem.o", "providers/implementations/kem/libdefault-lib-rsa_kem.o", "providers/implementations/keymgmt/libdefault-lib-dh_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-dsa_kmgmt.o", @@ -25162,7 +29424,11 @@ our %unified_info = ( "providers/implementations/keymgmt/libdefault-lib-ecx_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-kdf_legacy_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-mac_legacy_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-ml_dsa_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-ml_kem_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-mlx_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-rsa_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-slh_dsa_kmgmt.o", "providers/implementations/macs/libdefault-lib-blake2b_mac.o", "providers/implementations/macs/libdefault-lib-blake2s_mac.o", "providers/implementations/macs/libdefault-lib-cmac_prov.o", @@ -25171,12 +29437,12 @@ our %unified_info = ( "providers/implementations/macs/libdefault-lib-kmac_prov.o", "providers/implementations/macs/libdefault-lib-poly1305_prov.o", "providers/implementations/macs/libdefault-lib-siphash_prov.o", - "providers/implementations/rands/libdefault-lib-crngt.o", "providers/implementations/rands/libdefault-lib-drbg.o", "providers/implementations/rands/libdefault-lib-drbg_ctr.o", "providers/implementations/rands/libdefault-lib-drbg_hash.o", "providers/implementations/rands/libdefault-lib-drbg_hmac.o", "providers/implementations/rands/libdefault-lib-seed_src.o", + "providers/implementations/rands/libdefault-lib-seed_src_jitter.o", "providers/implementations/rands/libdefault-lib-test_rng.o", "providers/implementations/rands/seeding/libdefault-lib-rand_cpu_x86.o", "providers/implementations/rands/seeding/libdefault-lib-rand_tsc.o", @@ -25186,11 +29452,15 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-ecdsa_sig.o", "providers/implementations/signature/libdefault-lib-eddsa_sig.o", "providers/implementations/signature/libdefault-lib-mac_legacy_sig.o", + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o", "providers/implementations/signature/libdefault-lib-rsa_sig.o", + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o", "providers/implementations/signature/libdefault-lib-sm2_sig.o", + "providers/implementations/skeymgmt/libdefault-lib-aes_skmgmt.o", + "providers/implementations/skeymgmt/libdefault-lib-generic.o", "providers/implementations/storemgmt/libdefault-lib-file_store.o", "providers/implementations/storemgmt/libdefault-lib-file_store_any2obj.o", - "ssl/libdefault-lib-s3_cbc.o" + "ssl/record/methods/libdefault-lib-ssl3_cbc.o" ], "providers/libfips.a" => [ "crypto/aes/libfips-lib-aes_cbc.o", @@ -25292,14 +29562,15 @@ our %unified_info = ( "crypto/evp/libfips-lib-kem.o", "crypto/evp/libfips-lib-keymgmt_lib.o", "crypto/evp/libfips-lib-keymgmt_meth.o", - "crypto/evp/libfips-lib-m_sigver.o", "crypto/evp/libfips-lib-mac_lib.o", "crypto/evp/libfips-lib-mac_meth.o", "crypto/evp/libfips-lib-p_lib.o", "crypto/evp/libfips-lib-pmeth_check.o", "crypto/evp/libfips-lib-pmeth_gn.o", "crypto/evp/libfips-lib-pmeth_lib.o", + "crypto/evp/libfips-lib-s_lib.o", "crypto/evp/libfips-lib-signature.o", + "crypto/evp/libfips-lib-skeymgmt_meth.o", "crypto/ffc/libfips-lib-ffc_backend.o", "crypto/ffc/libfips-lib-ffc_dh.o", "crypto/ffc/libfips-lib-ffc_key_generate.o", @@ -25307,6 +29578,8 @@ our %unified_info = ( "crypto/ffc/libfips-lib-ffc_params.o", "crypto/ffc/libfips-lib-ffc_params_generate.o", "crypto/ffc/libfips-lib-ffc_params_validate.o", + "crypto/hashtable/libfips-lib-hashfunc.o", + "crypto/hashtable/libfips-lib-hashtable.o", "crypto/hmac/libfips-lib-hmac.o", "crypto/lhash/libfips-lib-lhash.o", "crypto/libfips-lib-asn1_dsa.o", @@ -25329,6 +29602,7 @@ our %unified_info = ( "crypto/libfips-lib-params.o", "crypto/libfips-lib-params_dup.o", "crypto/libfips-lib-params_from_text.o", + "crypto/libfips-lib-params_idx.o", "crypto/libfips-lib-provider_core.o", "crypto/libfips-lib-provider_predefined.o", "crypto/libfips-lib-self_test_core.o", @@ -25337,6 +29611,16 @@ our %unified_info = ( "crypto/libfips-lib-threads_none.o", "crypto/libfips-lib-threads_pthread.o", "crypto/libfips-lib-threads_win.o", + "crypto/libfips-lib-time.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_encoders.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_key.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_key_compress.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_matrix.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_ntt.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_params.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_sample.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_sign.o", + "crypto/ml_kem/libfips-lib-ml_kem.o", "crypto/modes/libfips-lib-cbc128.o", "crypto/modes/libfips-lib-ccm128.o", "crypto/modes/libfips-lib-cfb128.o", @@ -25345,6 +29629,7 @@ our %unified_info = ( "crypto/modes/libfips-lib-ofb128.o", "crypto/modes/libfips-lib-wrap128.o", "crypto/modes/libfips-lib-xts128.o", + "crypto/modes/libfips-lib-xts128gb.o", "crypto/property/libfips-lib-defn_cache.o", "crypto/property/libfips-lib-property.o", "crypto/property/libfips-lib-property_parse.o", @@ -25373,7 +29658,23 @@ our %unified_info = ( "crypto/sha/libfips-lib-sha256.o", "crypto/sha/libfips-lib-sha3.o", "crypto/sha/libfips-lib-sha512.o", + "crypto/slh_dsa/libfips-lib-slh_adrs.o", + "crypto/slh_dsa/libfips-lib-slh_dsa.o", + "crypto/slh_dsa/libfips-lib-slh_dsa_hash_ctx.o", + "crypto/slh_dsa/libfips-lib-slh_dsa_key.o", + "crypto/slh_dsa/libfips-lib-slh_fors.o", + "crypto/slh_dsa/libfips-lib-slh_hash.o", + "crypto/slh_dsa/libfips-lib-slh_hypertree.o", + "crypto/slh_dsa/libfips-lib-slh_params.o", + "crypto/slh_dsa/libfips-lib-slh_wots.o", + "crypto/slh_dsa/libfips-lib-slh_xmss.o", "crypto/stack/libfips-lib-stack.o", + "crypto/thread/arch/libfips-lib-thread_none.o", + "crypto/thread/arch/libfips-lib-thread_posix.o", + "crypto/thread/arch/libfips-lib-thread_win.o", + "crypto/thread/libfips-lib-api.o", + "crypto/thread/libfips-lib-arch.o", + "crypto/thread/libfips-lib-internal.o", "providers/common/der/libfips-lib-der_rsa_sig.o", "providers/common/libfips-lib-bio_prov.o", "providers/common/libfips-lib-capabilities.o", @@ -25382,6 +29683,7 @@ our %unified_info = ( "providers/common/libfips-lib-provider_util.o", "providers/common/libfips-lib-securitycheck.o", "providers/common/libfips-lib-securitycheck_fips.o", + "providers/fips/libfips-lib-fipsindicator.o", "providers/fips/libfips-lib-fipsprov.o", "providers/fips/libfips-lib-self_test.o", "providers/fips/libfips-lib-self_test_kats.o", @@ -25419,6 +29721,8 @@ our %unified_info = ( "providers/implementations/kdfs/libfips-lib-sskdf.o", "providers/implementations/kdfs/libfips-lib-tls1_prf.o", "providers/implementations/kdfs/libfips-lib-x942kdf.o", + "providers/implementations/kem/libfips-lib-ml_kem_kem.o", + "providers/implementations/kem/libfips-lib-mlx_kem.o", "providers/implementations/kem/libfips-lib-rsa_kem.o", "providers/implementations/keymgmt/libfips-lib-dh_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-dsa_kmgmt.o", @@ -25426,24 +29730,32 @@ our %unified_info = ( "providers/implementations/keymgmt/libfips-lib-ecx_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-kdf_legacy_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-mac_legacy_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-ml_dsa_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-ml_kem_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-mlx_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-rsa_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-slh_dsa_kmgmt.o", "providers/implementations/macs/libfips-lib-cmac_prov.o", "providers/implementations/macs/libfips-lib-gmac_prov.o", "providers/implementations/macs/libfips-lib-hmac_prov.o", "providers/implementations/macs/libfips-lib-kmac_prov.o", - "providers/implementations/rands/libfips-lib-crngt.o", "providers/implementations/rands/libfips-lib-drbg.o", "providers/implementations/rands/libfips-lib-drbg_ctr.o", "providers/implementations/rands/libfips-lib-drbg_hash.o", "providers/implementations/rands/libfips-lib-drbg_hmac.o", + "providers/implementations/rands/libfips-lib-fips_crng_test.o", "providers/implementations/rands/libfips-lib-test_rng.o", "providers/implementations/signature/libfips-lib-dsa_sig.o", "providers/implementations/signature/libfips-lib-ecdsa_sig.o", "providers/implementations/signature/libfips-lib-eddsa_sig.o", "providers/implementations/signature/libfips-lib-mac_legacy_sig.o", + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o", "providers/implementations/signature/libfips-lib-rsa_sig.o", + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o", + "providers/implementations/skeymgmt/libfips-lib-aes_skmgmt.o", + "providers/implementations/skeymgmt/libfips-lib-generic.o", "providers/libcommon.a", - "ssl/libfips-lib-s3_cbc.o" + "ssl/record/methods/libfips-lib-ssl3_cbc.o" ], "providers/liblegacy-lib-prov_running.o" => [ "providers/prov_running.c" @@ -25473,13 +29785,12 @@ our %unified_info = ( "providers/implementations/digests/liblegacy-lib-ripemd_prov.o", "providers/implementations/digests/liblegacy-lib-wp_prov.o", "providers/implementations/kdfs/liblegacy-lib-pbkdf1.o", + "providers/implementations/kdfs/liblegacy-lib-pvkkdf.o", "providers/liblegacy-lib-prov_running.o" ], - "ssl/libdefault-lib-s3_cbc.o" => [ - "ssl/s3_cbc.c" - ], - "ssl/libfips-lib-s3_cbc.o" => [ - "ssl/s3_cbc.c" + "providers/libtemplate.a" => [ + "providers/implementations/kem/libtemplate-lib-template_kem.o", + "providers/implementations/keymgmt/libtemplate-lib-template_kmgmt.o" ], "ssl/libssl-lib-bio_ssl.o" => [ "ssl/bio_ssl.c" @@ -25499,6 +29810,9 @@ our %unified_info = ( "ssl/libssl-lib-pqueue.o" => [ "ssl/pqueue.c" ], + "ssl/libssl-lib-priority_queue.o" => [ + "ssl/priority_queue.c" + ], "ssl/libssl-lib-s3_enc.o" => [ "ssl/s3_enc.c" ], @@ -25514,15 +29828,15 @@ our %unified_info = ( "ssl/libssl-lib-ssl_cert.o" => [ "ssl/ssl_cert.c" ], + "ssl/libssl-lib-ssl_cert_comp.o" => [ + "ssl/ssl_cert_comp.c" + ], "ssl/libssl-lib-ssl_ciph.o" => [ "ssl/ssl_ciph.c" ], "ssl/libssl-lib-ssl_conf.o" => [ "ssl/ssl_conf.c" ], - "ssl/libssl-lib-ssl_err.o" => [ - "ssl/ssl_err.c" - ], "ssl/libssl-lib-ssl_err_legacy.o" => [ "ssl/ssl_err_legacy.c" ], @@ -25571,11 +29885,131 @@ our %unified_info = ( "ssl/libssl-lib-tls_srp.o" => [ "ssl/tls_srp.c" ], - "ssl/record/libcommon-lib-tls_pad.o" => [ - "ssl/record/tls_pad.c" + "ssl/quic/libssl-lib-cc_newreno.o" => [ + "ssl/quic/cc_newreno.c" + ], + "ssl/quic/libssl-lib-json_enc.o" => [ + "ssl/quic/json_enc.c" + ], + "ssl/quic/libssl-lib-qlog.o" => [ + "ssl/quic/qlog.c" + ], + "ssl/quic/libssl-lib-qlog_event_helpers.o" => [ + "ssl/quic/qlog_event_helpers.c" + ], + "ssl/quic/libssl-lib-quic_ackm.o" => [ + "ssl/quic/quic_ackm.c" + ], + "ssl/quic/libssl-lib-quic_cfq.o" => [ + "ssl/quic/quic_cfq.c" + ], + "ssl/quic/libssl-lib-quic_channel.o" => [ + "ssl/quic/quic_channel.c" + ], + "ssl/quic/libssl-lib-quic_demux.o" => [ + "ssl/quic/quic_demux.c" + ], + "ssl/quic/libssl-lib-quic_engine.o" => [ + "ssl/quic/quic_engine.c" + ], + "ssl/quic/libssl-lib-quic_fc.o" => [ + "ssl/quic/quic_fc.c" + ], + "ssl/quic/libssl-lib-quic_fifd.o" => [ + "ssl/quic/quic_fifd.c" + ], + "ssl/quic/libssl-lib-quic_impl.o" => [ + "ssl/quic/quic_impl.c" + ], + "ssl/quic/libssl-lib-quic_lcidm.o" => [ + "ssl/quic/quic_lcidm.c" + ], + "ssl/quic/libssl-lib-quic_method.o" => [ + "ssl/quic/quic_method.c" + ], + "ssl/quic/libssl-lib-quic_obj.o" => [ + "ssl/quic/quic_obj.c" + ], + "ssl/quic/libssl-lib-quic_port.o" => [ + "ssl/quic/quic_port.c" + ], + "ssl/quic/libssl-lib-quic_rcidm.o" => [ + "ssl/quic/quic_rcidm.c" + ], + "ssl/quic/libssl-lib-quic_reactor.o" => [ + "ssl/quic/quic_reactor.c" + ], + "ssl/quic/libssl-lib-quic_reactor_wait_ctx.o" => [ + "ssl/quic/quic_reactor_wait_ctx.c" + ], + "ssl/quic/libssl-lib-quic_record_rx.o" => [ + "ssl/quic/quic_record_rx.c" + ], + "ssl/quic/libssl-lib-quic_record_shared.o" => [ + "ssl/quic/quic_record_shared.c" + ], + "ssl/quic/libssl-lib-quic_record_tx.o" => [ + "ssl/quic/quic_record_tx.c" + ], + "ssl/quic/libssl-lib-quic_record_util.o" => [ + "ssl/quic/quic_record_util.c" + ], + "ssl/quic/libssl-lib-quic_rstream.o" => [ + "ssl/quic/quic_rstream.c" ], - "ssl/record/libssl-lib-dtls1_bitmap.o" => [ - "ssl/record/dtls1_bitmap.c" + "ssl/quic/libssl-lib-quic_rx_depack.o" => [ + "ssl/quic/quic_rx_depack.c" + ], + "ssl/quic/libssl-lib-quic_sf_list.o" => [ + "ssl/quic/quic_sf_list.c" + ], + "ssl/quic/libssl-lib-quic_srt_gen.o" => [ + "ssl/quic/quic_srt_gen.c" + ], + "ssl/quic/libssl-lib-quic_srtm.o" => [ + "ssl/quic/quic_srtm.c" + ], + "ssl/quic/libssl-lib-quic_sstream.o" => [ + "ssl/quic/quic_sstream.c" + ], + "ssl/quic/libssl-lib-quic_statm.o" => [ + "ssl/quic/quic_statm.c" + ], + "ssl/quic/libssl-lib-quic_stream_map.o" => [ + "ssl/quic/quic_stream_map.c" + ], + "ssl/quic/libssl-lib-quic_thread_assist.o" => [ + "ssl/quic/quic_thread_assist.c" + ], + "ssl/quic/libssl-lib-quic_tls.o" => [ + "ssl/quic/quic_tls.c" + ], + "ssl/quic/libssl-lib-quic_tls_api.o" => [ + "ssl/quic/quic_tls_api.c" + ], + "ssl/quic/libssl-lib-quic_trace.o" => [ + "ssl/quic/quic_trace.c" + ], + "ssl/quic/libssl-lib-quic_tserver.o" => [ + "ssl/quic/quic_tserver.c" + ], + "ssl/quic/libssl-lib-quic_txp.o" => [ + "ssl/quic/quic_txp.c" + ], + "ssl/quic/libssl-lib-quic_txpim.o" => [ + "ssl/quic/quic_txpim.c" + ], + "ssl/quic/libssl-lib-quic_types.o" => [ + "ssl/quic/quic_types.c" + ], + "ssl/quic/libssl-lib-quic_wire.o" => [ + "ssl/quic/quic_wire.c" + ], + "ssl/quic/libssl-lib-quic_wire_pkt.o" => [ + "ssl/quic/quic_wire_pkt.c" + ], + "ssl/quic/libssl-lib-uint_set.o" => [ + "ssl/quic/uint_set.c" ], "ssl/record/libssl-lib-rec_layer_d1.o" => [ "ssl/record/rec_layer_d1.c" @@ -25583,14 +30017,44 @@ our %unified_info = ( "ssl/record/libssl-lib-rec_layer_s3.o" => [ "ssl/record/rec_layer_s3.c" ], - "ssl/record/libssl-lib-ssl3_buffer.o" => [ - "ssl/record/ssl3_buffer.c" + "ssl/record/methods/libcommon-lib-tls_pad.o" => [ + "ssl/record/methods/tls_pad.c" + ], + "ssl/record/methods/libdefault-lib-ssl3_cbc.o" => [ + "ssl/record/methods/ssl3_cbc.c" + ], + "ssl/record/methods/libfips-lib-ssl3_cbc.o" => [ + "ssl/record/methods/ssl3_cbc.c" + ], + "ssl/record/methods/libssl-lib-dtls_meth.o" => [ + "ssl/record/methods/dtls_meth.c" + ], + "ssl/record/methods/libssl-lib-ssl3_meth.o" => [ + "ssl/record/methods/ssl3_meth.c" + ], + "ssl/record/methods/libssl-lib-tls13_meth.o" => [ + "ssl/record/methods/tls13_meth.c" + ], + "ssl/record/methods/libssl-lib-tls1_meth.o" => [ + "ssl/record/methods/tls1_meth.c" + ], + "ssl/record/methods/libssl-lib-tls_common.o" => [ + "ssl/record/methods/tls_common.c" ], - "ssl/record/libssl-lib-ssl3_record.o" => [ - "ssl/record/ssl3_record.c" + "ssl/record/methods/libssl-lib-tls_multib.o" => [ + "ssl/record/methods/tls_multib.c" ], - "ssl/record/libssl-lib-ssl3_record_tls13.o" => [ - "ssl/record/ssl3_record_tls13.c" + "ssl/record/methods/libssl-lib-tlsany_meth.o" => [ + "ssl/record/methods/tlsany_meth.c" + ], + "ssl/rio/libssl-lib-poll_builder.o" => [ + "ssl/rio/poll_builder.c" + ], + "ssl/rio/libssl-lib-poll_immediate.o" => [ + "ssl/rio/poll_immediate.c" + ], + "ssl/rio/libssl-lib-rio_notifier.o" => [ + "ssl/rio/rio_notifier.c" ], "ssl/statem/libssl-lib-extensions.o" => [ "ssl/statem/extensions.c" @@ -25686,6 +30150,8 @@ our %unified_info = ( "test/asn1_string_table_test.c" ], "test/asn1_time_test" => [ + "crypto/asn1/asn1_time_test-bin-a_time.o", + "crypto/asn1_time_test-bin-ctype.o", "test/asn1_time_test-bin-asn1_time_test.o" ], "test/asn1_time_test-bin-asn1_time_test.o" => [ @@ -25716,6 +30182,18 @@ our %unified_info = ( "test/bftest-bin-bftest.o" => [ "test/bftest.c" ], + "test/bio_addr_test" => [ + "test/bio_addr_test-bin-bio_addr_test.o" + ], + "test/bio_addr_test-bin-bio_addr_test.o" => [ + "test/bio_addr_test.c" + ], + "test/bio_base64_test" => [ + "test/bio_base64_test-bin-bio_base64_test.o" + ], + "test/bio_base64_test-bin-bio_base64_test.o" => [ + "test/bio_base64_test.c" + ], "test/bio_callback_test" => [ "test/bio_callback_test-bin-bio_callback_test.o" ], @@ -25728,6 +30206,12 @@ our %unified_info = ( "test/bio_core_test-bin-bio_core_test.o" => [ "test/bio_core_test.c" ], + "test/bio_dgram_test" => [ + "test/bio_dgram_test-bin-bio_dgram_test.o" + ], + "test/bio_dgram_test-bin-bio_dgram_test.o" => [ + "test/bio_dgram_test.c" + ], "test/bio_enc_test" => [ "test/bio_enc_test-bin-bio_enc_test.o" ], @@ -25740,6 +30224,12 @@ our %unified_info = ( "test/bio_memleak_test-bin-bio_memleak_test.o" => [ "test/bio_memleak_test.c" ], + "test/bio_meth_test" => [ + "test/bio_meth_test-bin-bio_meth_test.o" + ], + "test/bio_meth_test-bin-bio_meth_test.o" => [ + "test/bio_meth_test.c" + ], "test/bio_prefix_text" => [ "test/bio_prefix_text-bin-bio_prefix_text.o" ], @@ -25758,6 +30248,12 @@ our %unified_info = ( "test/bio_readbuffer_test-bin-bio_readbuffer_test.o" => [ "test/bio_readbuffer_test.c" ], + "test/bio_tfo_test" => [ + "test/bio_tfo_test-bin-bio_tfo_test.o" + ], + "test/bio_tfo_test-bin-bio_tfo_test.o" => [ + "test/bio_tfo_test.c" + ], "test/bioprinttest" => [ "test/bioprinttest-bin-bioprinttest.o" ], @@ -25776,6 +30272,12 @@ our %unified_info = ( "test/bntest-bin-bntest.o" => [ "test/bntest.c" ], + "test/build_wincrypt_test" => [ + "test/build_wincrypt_test-bin-build_wincrypt_test.o" + ], + "test/build_wincrypt_test-bin-build_wincrypt_test.o" => [ + "test/build_wincrypt_test.c" + ], "test/buildtest_c_aes" => [ "test/buildtest_c_aes-bin-buildtest_aes.o" ], @@ -25806,6 +30308,12 @@ our %unified_info = ( "test/buildtest_c_buffer-bin-buildtest_buffer.o" => [ "test/buildtest_buffer.c" ], + "test/buildtest_c_byteorder" => [ + "test/buildtest_c_byteorder-bin-buildtest_byteorder.o" + ], + "test/buildtest_c_byteorder-bin-buildtest_byteorder.o" => [ + "test/buildtest_byteorder.c" + ], "test/buildtest_c_camellia" => [ "test/buildtest_c_camellia-bin-buildtest_camellia.o" ], @@ -25854,12 +30362,6 @@ our %unified_info = ( "test/buildtest_c_core_dispatch-bin-buildtest_core_dispatch.o" => [ "test/buildtest_core_dispatch.c" ], - "test/buildtest_c_core_names" => [ - "test/buildtest_c_core_names-bin-buildtest_core_names.o" - ], - "test/buildtest_c_core_names-bin-buildtest_core_names.o" => [ - "test/buildtest_core_names.c" - ], "test/buildtest_c_core_object" => [ "test/buildtest_c_core_object-bin-buildtest_core_object.o" ], @@ -25908,6 +30410,12 @@ our %unified_info = ( "test/buildtest_c_e_os2-bin-buildtest_e_os2.o" => [ "test/buildtest_e_os2.c" ], + "test/buildtest_c_e_ostime" => [ + "test/buildtest_c_e_ostime-bin-buildtest_e_ostime.o" + ], + "test/buildtest_c_e_ostime-bin-buildtest_e_ostime.o" => [ + "test/buildtest_e_ostime.c" + ], "test/buildtest_c_ebcdic" => [ "test/buildtest_c_ebcdic-bin-buildtest_ebcdic.o" ], @@ -25962,6 +30470,12 @@ our %unified_info = ( "test/buildtest_c_hmac-bin-buildtest_hmac.o" => [ "test/buildtest_hmac.c" ], + "test/buildtest_c_hpke" => [ + "test/buildtest_c_hpke-bin-buildtest_hpke.o" + ], + "test/buildtest_c_hpke-bin-buildtest_hpke.o" => [ + "test/buildtest_hpke.c" + ], "test/buildtest_c_http" => [ "test/buildtest_c_http-bin-buildtest_http.o" ], @@ -25974,6 +30488,12 @@ our %unified_info = ( "test/buildtest_c_idea-bin-buildtest_idea.o" => [ "test/buildtest_idea.c" ], + "test/buildtest_c_indicator" => [ + "test/buildtest_c_indicator-bin-buildtest_indicator.o" + ], + "test/buildtest_c_indicator-bin-buildtest_indicator.o" => [ + "test/buildtest_indicator.c" + ], "test/buildtest_c_kdf" => [ "test/buildtest_c_kdf-bin-buildtest_kdf.o" ], @@ -26004,6 +30524,12 @@ our %unified_info = ( "test/buildtest_c_mdc2-bin-buildtest_mdc2.o" => [ "test/buildtest_mdc2.c" ], + "test/buildtest_c_ml_kem" => [ + "test/buildtest_c_ml_kem-bin-buildtest_ml_kem.o" + ], + "test/buildtest_c_ml_kem-bin-buildtest_ml_kem.o" => [ + "test/buildtest_ml_kem.c" + ], "test/buildtest_c_modes" => [ "test/buildtest_c_modes-bin-buildtest_modes.o" ], @@ -26064,6 +30590,12 @@ our %unified_info = ( "test/buildtest_c_provider-bin-buildtest_provider.o" => [ "test/buildtest_provider.c" ], + "test/buildtest_c_quic" => [ + "test/buildtest_c_quic-bin-buildtest_quic.o" + ], + "test/buildtest_c_quic-bin-buildtest_quic.o" => [ + "test/buildtest_quic.c" + ], "test/buildtest_c_rand" => [ "test/buildtest_c_rand-bin-buildtest_rand.o" ], @@ -26148,6 +30680,12 @@ our %unified_info = ( "test/buildtest_c_symhacks-bin-buildtest_symhacks.o" => [ "test/buildtest_symhacks.c" ], + "test/buildtest_c_thread" => [ + "test/buildtest_c_thread-bin-buildtest_thread.o" + ], + "test/buildtest_c_thread-bin-buildtest_thread.o" => [ + "test/buildtest_thread.c" + ], "test/buildtest_c_tls1" => [ "test/buildtest_c_tls1-bin-buildtest_tls1.o" ], @@ -26178,6 +30716,29 @@ our %unified_info = ( "test/buildtest_c_whrlpool-bin-buildtest_whrlpool.o" => [ "test/buildtest_whrlpool.c" ], + "test/byteorder_test" => [ + "test/byteorder_test-bin-byteorder_test.o" + ], + "test/byteorder_test-bin-byteorder_test.o" => [ + "test/byteorder_test.c" + ], + "test/ca_internals_test" => [ + "apps/ca_internals_test-bin-ca.o", + "apps/lib/ca_internals_test-bin-app_libctx.o", + "apps/lib/ca_internals_test-bin-app_provider.o", + "apps/lib/ca_internals_test-bin-app_rand.o", + "apps/lib/ca_internals_test-bin-app_x509.o", + "apps/lib/ca_internals_test-bin-apps.o", + "apps/lib/ca_internals_test-bin-apps_ui.o", + "apps/lib/ca_internals_test-bin-engine.o", + "apps/lib/ca_internals_test-bin-fmt.o", + "crypto/asn1/ca_internals_test-bin-a_time.o", + "crypto/ca_internals_test-bin-ctype.o", + "test/ca_internals_test-bin-ca_internals_test.o" + ], + "test/ca_internals_test-bin-ca_internals_test.o" => [ + "test/ca_internals_test.c" + ], "test/casttest" => [ "test/casttest-bin-casttest.o" ], @@ -26356,6 +30917,12 @@ our %unified_info = ( "test/danetest-bin-danetest.o" => [ "test/danetest.c" ], + "test/decoder_propq_test" => [ + "test/decoder_propq_test-bin-decoder_propq_test.o" + ], + "test/decoder_propq_test-bin-decoder_propq_test.o" => [ + "test/decoder_propq_test.c" + ], "test/defltfips_test" => [ "test/defltfips_test-bin-defltfips_test.o" ], @@ -26437,6 +31004,7 @@ our %unified_info = ( "test/ectest.c" ], "test/endecode_test" => [ + "providers/endecode_test-bin-legacyprov.o", "test/endecode_test-bin-endecode_test.o", "test/helpers/endecode_test-bin-predefined_dhparams.o" ], @@ -26469,17 +31037,29 @@ our %unified_info = ( ], "test/evp_extra_test" => [ "providers/evp_extra_test-bin-legacyprov.o", - "test/evp_extra_test-bin-evp_extra_test.o" + "test/evp_extra_test-bin-evp_extra_test.o", + "test/evp_extra_test-bin-fake_pipelineprov.o", + "test/evp_extra_test-bin-fake_rsaprov.o" ], "test/evp_extra_test-bin-evp_extra_test.o" => [ "test/evp_extra_test.c" ], + "test/evp_extra_test-bin-fake_pipelineprov.o" => [ + "test/fake_pipelineprov.c" + ], + "test/evp_extra_test-bin-fake_rsaprov.o" => [ + "test/fake_rsaprov.c" + ], "test/evp_extra_test2" => [ - "test/evp_extra_test2-bin-evp_extra_test2.o" + "test/evp_extra_test2-bin-evp_extra_test2.o", + "test/evp_extra_test2-bin-tls-provider.o" ], "test/evp_extra_test2-bin-evp_extra_test2.o" => [ "test/evp_extra_test2.c" ], + "test/evp_extra_test2-bin-tls-provider.o" => [ + "test/tls-provider.c" + ], "test/evp_fetch_prov_test" => [ "test/evp_fetch_prov_test-bin-evp_fetch_prov_test.o" ], @@ -26504,6 +31084,12 @@ our %unified_info = ( "test/evp_pkey_ctx_new_from_name-bin-evp_pkey_ctx_new_from_name.o" => [ "test/evp_pkey_ctx_new_from_name.c" ], + "test/evp_pkey_dhkem_test" => [ + "test/evp_pkey_dhkem_test-bin-evp_pkey_dhkem_test.o" + ], + "test/evp_pkey_dhkem_test-bin-evp_pkey_dhkem_test.o" => [ + "test/evp_pkey_dhkem_test.c" + ], "test/evp_pkey_dparams_test" => [ "test/evp_pkey_dparams_test-bin-evp_pkey_dparams_test.o" ], @@ -26516,12 +31102,28 @@ our %unified_info = ( "test/evp_pkey_provided_test-bin-evp_pkey_provided_test.o" => [ "test/evp_pkey_provided_test.c" ], + "test/evp_skey_test" => [ + "test/evp_skey_test-bin-evp_skey_test.o", + "test/evp_skey_test-bin-fake_cipherprov.o" + ], + "test/evp_skey_test-bin-evp_skey_test.o" => [ + "test/evp_skey_test.c" + ], + "test/evp_skey_test-bin-fake_cipherprov.o" => [ + "test/fake_cipherprov.c" + ], "test/evp_test" => [ "test/evp_test-bin-evp_test.o" ], "test/evp_test-bin-evp_test.o" => [ "test/evp_test.c" ], + "test/evp_xof_test" => [ + "test/evp_xof_test-bin-evp_xof_test.o" + ], + "test/evp_xof_test-bin-evp_xof_test.o" => [ + "test/evp_xof_test.c" + ], "test/exdatatest" => [ "test/exdatatest-bin-exdatatest.o" ], @@ -26607,15 +31209,108 @@ our %unified_info = ( "test/helpers/fatalerrtest-bin-ssltestlib.o" => [ "test/helpers/ssltestlib.c" ], + "test/helpers/json_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/json_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/json_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/json_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/pkcs12_api_test-bin-pkcs12.o" => [ + "test/helpers/pkcs12.c" + ], "test/helpers/pkcs12_format_test-bin-pkcs12.o" => [ "test/helpers/pkcs12.c" ], + "test/helpers/quic_multistream_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quic_multistream_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quic_multistream_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quic_multistream_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quic_newcid_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quic_newcid_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quic_newcid_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quic_newcid_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quic_radix_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quic_radix_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quic_radix_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quic_radix_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quic_srt_gen_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quic_srt_gen_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quic_srt_gen_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quic_srt_gen_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quicapitest-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quicapitest-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quicapitest-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quicapitest-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quicfaultstest-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quicfaultstest-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quicfaultstest-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quicfaultstest-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], "test/helpers/recordlentest-bin-ssltestlib.o" => [ "test/helpers/ssltestlib.c" ], + "test/helpers/rpktest-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], "test/helpers/servername_test-bin-ssltestlib.o" => [ "test/helpers/ssltestlib.c" ], + "test/helpers/ssl_handshake_rtt_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], "test/helpers/ssl_old_test-bin-predefined_dhparams.o" => [ "test/helpers/predefined_dhparams.c" ], @@ -26643,6 +31338,9 @@ our %unified_info = ( "test/helpers/tls13ccstest-bin-ssltestlib.o" => [ "test/helpers/ssltestlib.c" ], + "test/helpers/tls13groupselection_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], "test/hexstr_test" => [ "test/hexstr_test-bin-hexstr_test.o" ], @@ -26655,6 +31353,12 @@ our %unified_info = ( "test/hmactest-bin-hmactest.o" => [ "test/hmactest.c" ], + "test/hpke_test" => [ + "test/hpke_test-bin-hpke_test.o" + ], + "test/hpke_test-bin-hpke_test.o" => [ + "test/hpke_test.c" + ], "test/http_test" => [ "test/http_test-bin-http_test.o" ], @@ -26673,6 +31377,16 @@ our %unified_info = ( "test/igetest-bin-igetest.o" => [ "test/igetest.c" ], + "test/json_test" => [ + "test/helpers/json_test-bin-noisydgrambio.o", + "test/helpers/json_test-bin-pktsplitbio.o", + "test/helpers/json_test-bin-quictestlib.o", + "test/helpers/json_test-bin-ssltestlib.o", + "test/json_test-bin-json_test.o" + ], + "test/json_test-bin-json_test.o" => [ + "test/json_test.c" + ], "test/keymgmt_internal_test" => [ "test/keymgmt_internal_test-bin-keymgmt_internal_test.o" ], @@ -26693,6 +31407,7 @@ our %unified_info = ( "test/testutil/libtestutil-lib-driver.o", "test/testutil/libtestutil-lib-fake_random.o", "test/testutil/libtestutil-lib-format_output.o", + "test/testutil/libtestutil-lib-helper.o", "test/testutil/libtestutil-lib-load.o", "test/testutil/libtestutil-lib-main.o", "test/testutil/libtestutil-lib-options.o", @@ -26705,6 +31420,12 @@ our %unified_info = ( "test/testutil/libtestutil-lib-tests.o", "test/testutil/libtestutil-lib-testutil_init.o" ], + "test/list_test" => [ + "test/list_test-bin-list_test.o" + ], + "test/list_test-bin-list_test.o" => [ + "test/list_test.c" + ], "test/localetest" => [ "test/localetest-bin-localetest.o" ], @@ -26723,12 +31444,36 @@ our %unified_info = ( "test/mdc2test-bin-mdc2test.o" => [ "test/mdc2test.c" ], + "test/membio_test" => [ + "test/membio_test-bin-membio_test.o" + ], + "test/membio_test-bin-membio_test.o" => [ + "test/membio_test.c" + ], "test/memleaktest" => [ "test/memleaktest-bin-memleaktest.o" ], "test/memleaktest-bin-memleaktest.o" => [ "test/memleaktest.c" ], + "test/ml_dsa_test" => [ + "test/ml_dsa_test-bin-ml_dsa_test.o" + ], + "test/ml_dsa_test-bin-ml_dsa_test.o" => [ + "test/ml_dsa_test.c" + ], + "test/ml_kem_evp_extra_test" => [ + "test/ml_kem_evp_extra_test-bin-ml_kem_evp_extra_test.o" + ], + "test/ml_kem_evp_extra_test-bin-ml_kem_evp_extra_test.o" => [ + "test/ml_kem_evp_extra_test.c" + ], + "test/ml_kem_internal_test" => [ + "test/ml_kem_internal_test-bin-ml_kem_internal_test.o" + ], + "test/ml_kem_internal_test-bin-ml_kem_internal_test.o" => [ + "test/ml_kem_internal_test.c" + ], "test/modes_internal_test" => [ "test/modes_internal_test-bin-modes_internal_test.o" ], @@ -26772,11 +31517,18 @@ our %unified_info = ( "test/p_test.c" ], "test/packettest" => [ + "crypto/packettest-bin-quic_vlint.o", "test/packettest-bin-packettest.o" ], "test/packettest-bin-packettest.o" => [ "test/packettest.c" ], + "test/pairwise_fail_test" => [ + "test/pairwise_fail_test-bin-pairwise_fail_test.o" + ], + "test/pairwise_fail_test-bin-pairwise_fail_test.o" => [ + "test/pairwise_fail_test.c" + ], "test/param_build_test" => [ "test/param_build_test-bin-param_build_test.o" ], @@ -26825,6 +31577,13 @@ our %unified_info = ( "test/pemtest-bin-pemtest.o" => [ "test/pemtest.c" ], + "test/pkcs12_api_test" => [ + "test/helpers/pkcs12_api_test-bin-pkcs12.o", + "test/pkcs12_api_test-bin-pkcs12_api_test.o" + ], + "test/pkcs12_api_test-bin-pkcs12_api_test.o" => [ + "test/pkcs12_api_test.c" + ], "test/pkcs12_format_test" => [ "test/helpers/pkcs12_format_test-bin-pkcs12.o", "test/pkcs12_format_test-bin-pkcs12_format_test.o" @@ -26856,6 +31615,12 @@ our %unified_info = ( "test/poly1305_internal_test-bin-poly1305_internal_test.o" => [ "test/poly1305_internal_test.c" ], + "test/priority_queue_test" => [ + "test/priority_queue_test-bin-priority_queue_test.o" + ], + "test/priority_queue_test-bin-priority_queue_test.o" => [ + "test/priority_queue_test.c" + ], "test/property_test" => [ "test/property_test-bin-property_test.o" ], @@ -26874,6 +31639,12 @@ our %unified_info = ( "test/provfetchtest-bin-provfetchtest.o" => [ "test/provfetchtest.c" ], + "test/provider_default_search_path_test" => [ + "test/provider_default_search_path_test-bin-provider_default_search_path_test.o" + ], + "test/provider_default_search_path_test-bin-provider_default_search_path_test.o" => [ + "test/provider_default_search_path_test.c" + ], "test/provider_fallback_test" => [ "test/provider_fallback_test-bin-provider_fallback_test.o" ], @@ -26922,6 +31693,174 @@ our %unified_info = ( "test/punycode_test-bin-punycode_test.o" => [ "test/punycode_test.c" ], + "test/quic_ackm_test" => [ + "test/quic_ackm_test-bin-cc_dummy.o", + "test/quic_ackm_test-bin-quic_ackm_test.o" + ], + "test/quic_ackm_test-bin-cc_dummy.o" => [ + "test/cc_dummy.c" + ], + "test/quic_ackm_test-bin-quic_ackm_test.o" => [ + "test/quic_ackm_test.c" + ], + "test/quic_cc_test" => [ + "test/quic_cc_test-bin-quic_cc_test.o" + ], + "test/quic_cc_test-bin-quic_cc_test.o" => [ + "test/quic_cc_test.c" + ], + "test/quic_cfq_test" => [ + "test/quic_cfq_test-bin-quic_cfq_test.o" + ], + "test/quic_cfq_test-bin-quic_cfq_test.o" => [ + "test/quic_cfq_test.c" + ], + "test/quic_client_test" => [ + "test/quic_client_test-bin-quic_client_test.o" + ], + "test/quic_client_test-bin-quic_client_test.o" => [ + "test/quic_client_test.c" + ], + "test/quic_fc_test" => [ + "test/quic_fc_test-bin-quic_fc_test.o" + ], + "test/quic_fc_test-bin-quic_fc_test.o" => [ + "test/quic_fc_test.c" + ], + "test/quic_fifd_test" => [ + "test/quic_fifd_test-bin-cc_dummy.o", + "test/quic_fifd_test-bin-quic_fifd_test.o" + ], + "test/quic_fifd_test-bin-cc_dummy.o" => [ + "test/cc_dummy.c" + ], + "test/quic_fifd_test-bin-quic_fifd_test.o" => [ + "test/quic_fifd_test.c" + ], + "test/quic_lcidm_test" => [ + "test/quic_lcidm_test-bin-quic_lcidm_test.o" + ], + "test/quic_lcidm_test-bin-quic_lcidm_test.o" => [ + "test/quic_lcidm_test.c" + ], + "test/quic_multistream_test" => [ + "test/helpers/quic_multistream_test-bin-noisydgrambio.o", + "test/helpers/quic_multistream_test-bin-pktsplitbio.o", + "test/helpers/quic_multistream_test-bin-quictestlib.o", + "test/helpers/quic_multistream_test-bin-ssltestlib.o", + "test/quic_multistream_test-bin-quic_multistream_test.o" + ], + "test/quic_multistream_test-bin-quic_multistream_test.o" => [ + "test/quic_multistream_test.c" + ], + "test/quic_newcid_test" => [ + "test/helpers/quic_newcid_test-bin-noisydgrambio.o", + "test/helpers/quic_newcid_test-bin-pktsplitbio.o", + "test/helpers/quic_newcid_test-bin-quictestlib.o", + "test/helpers/quic_newcid_test-bin-ssltestlib.o", + "test/quic_newcid_test-bin-quic_newcid_test.o" + ], + "test/quic_newcid_test-bin-quic_newcid_test.o" => [ + "test/quic_newcid_test.c" + ], + "test/quic_qlog_test" => [ + "test/quic_qlog_test-bin-quic_qlog_test.o" + ], + "test/quic_qlog_test-bin-quic_qlog_test.o" => [ + "test/quic_qlog_test.c" + ], + "test/quic_radix_test" => [ + "test/helpers/quic_radix_test-bin-noisydgrambio.o", + "test/helpers/quic_radix_test-bin-pktsplitbio.o", + "test/helpers/quic_radix_test-bin-quictestlib.o", + "test/helpers/quic_radix_test-bin-ssltestlib.o", + "test/radix/quic_radix_test-bin-quic_radix.o" + ], + "test/quic_rcidm_test" => [ + "test/quic_rcidm_test-bin-quic_rcidm_test.o" + ], + "test/quic_rcidm_test-bin-quic_rcidm_test.o" => [ + "test/quic_rcidm_test.c" + ], + "test/quic_record_test" => [ + "test/quic_record_test-bin-quic_record_test.o" + ], + "test/quic_record_test-bin-quic_record_test.o" => [ + "test/quic_record_test.c" + ], + "test/quic_srt_gen_test" => [ + "test/helpers/quic_srt_gen_test-bin-noisydgrambio.o", + "test/helpers/quic_srt_gen_test-bin-pktsplitbio.o", + "test/helpers/quic_srt_gen_test-bin-quictestlib.o", + "test/helpers/quic_srt_gen_test-bin-ssltestlib.o", + "test/quic_srt_gen_test-bin-quic_srt_gen_test.o" + ], + "test/quic_srt_gen_test-bin-quic_srt_gen_test.o" => [ + "test/quic_srt_gen_test.c" + ], + "test/quic_srtm_test" => [ + "test/quic_srtm_test-bin-quic_srtm_test.o" + ], + "test/quic_srtm_test-bin-quic_srtm_test.o" => [ + "test/quic_srtm_test.c" + ], + "test/quic_stream_test" => [ + "test/quic_stream_test-bin-quic_stream_test.o" + ], + "test/quic_stream_test-bin-quic_stream_test.o" => [ + "test/quic_stream_test.c" + ], + "test/quic_tserver_test" => [ + "test/quic_tserver_test-bin-quic_tserver_test.o" + ], + "test/quic_tserver_test-bin-quic_tserver_test.o" => [ + "test/quic_tserver_test.c" + ], + "test/quic_txp_test" => [ + "test/quic_txp_test-bin-cc_dummy.o", + "test/quic_txp_test-bin-quic_txp_test.o" + ], + "test/quic_txp_test-bin-cc_dummy.o" => [ + "test/cc_dummy.c" + ], + "test/quic_txp_test-bin-quic_txp_test.o" => [ + "test/quic_txp_test.c" + ], + "test/quic_txpim_test" => [ + "test/quic_txpim_test-bin-quic_txpim_test.o" + ], + "test/quic_txpim_test-bin-quic_txpim_test.o" => [ + "test/quic_txpim_test.c" + ], + "test/quic_wire_test" => [ + "test/quic_wire_test-bin-quic_wire_test.o" + ], + "test/quic_wire_test-bin-quic_wire_test.o" => [ + "test/quic_wire_test.c" + ], + "test/quicapitest" => [ + "test/helpers/quicapitest-bin-noisydgrambio.o", + "test/helpers/quicapitest-bin-pktsplitbio.o", + "test/helpers/quicapitest-bin-quictestlib.o", + "test/helpers/quicapitest-bin-ssltestlib.o", + "test/quicapitest-bin-quicapitest.o" + ], + "test/quicapitest-bin-quicapitest.o" => [ + "test/quicapitest.c" + ], + "test/quicfaultstest" => [ + "test/helpers/quicfaultstest-bin-noisydgrambio.o", + "test/helpers/quicfaultstest-bin-pktsplitbio.o", + "test/helpers/quicfaultstest-bin-quictestlib.o", + "test/helpers/quicfaultstest-bin-ssltestlib.o", + "test/quicfaultstest-bin-quicfaultstest.o" + ], + "test/quicfaultstest-bin-quicfaultstest.o" => [ + "test/quicfaultstest.c" + ], + "test/radix/quic_radix_test-bin-quic_radix.o" => [ + "test/radix/quic_radix.c" + ], "test/rand_status_test" => [ "test/rand_status_test-bin-rand_status_test.o" ], @@ -26952,11 +31891,11 @@ our %unified_info = ( "test/rc5test-bin-rc5test.o" => [ "test/rc5test.c" ], - "test/rdrand_sanitytest" => [ - "test/rdrand_sanitytest-bin-rdrand_sanitytest.o" + "test/rdcpu_sanitytest" => [ + "test/rdcpu_sanitytest-bin-rdcpu_sanitytest.o" ], - "test/rdrand_sanitytest-bin-rdrand_sanitytest.o" => [ - "test/rdrand_sanitytest.c" + "test/rdcpu_sanitytest-bin-rdcpu_sanitytest.o" => [ + "test/rdcpu_sanitytest.c" ], "test/recordlentest" => [ "test/helpers/recordlentest-bin-ssltestlib.o", @@ -26965,6 +31904,13 @@ our %unified_info = ( "test/recordlentest-bin-recordlentest.o" => [ "test/recordlentest.c" ], + "test/rpktest" => [ + "test/helpers/rpktest-bin-ssltestlib.o", + "test/rpktest-bin-rpktest.o" + ], + "test/rpktest-bin-rpktest.o" => [ + "test/rpktest.c" + ], "test/rsa_complex" => [ "test/rsa_complex-bin-rsa_complex.o" ], @@ -26989,6 +31935,18 @@ our %unified_info = ( "test/rsa_test-bin-rsa_test.o" => [ "test/rsa_test.c" ], + "test/rsa_x931_test" => [ + "test/rsa_x931_test-bin-rsa_x931_test.o" + ], + "test/rsa_x931_test-bin-rsa_x931_test.o" => [ + "test/rsa_x931_test.c" + ], + "test/safe_math_test" => [ + "test/safe_math_test-bin-safe_math_test.o" + ], + "test/safe_math_test-bin-safe_math_test.o" => [ + "test/safe_math_test.c" + ], "test/sanitytest" => [ "test/sanitytest-bin-sanitytest.o" ], @@ -27020,6 +31978,12 @@ our %unified_info = ( "test/siphash_internal_test-bin-siphash_internal_test.o" => [ "test/siphash_internal_test.c" ], + "test/slh_dsa_test" => [ + "test/slh_dsa_test-bin-slh_dsa_test.o" + ], + "test/slh_dsa_test-bin-slh_dsa_test.o" => [ + "test/slh_dsa_test.c" + ], "test/sm2_internal_test" => [ "test/sm2_internal_test-bin-sm2_internal_test.o" ], @@ -27062,6 +32026,13 @@ our %unified_info = ( "test/ssl_ctx_test-bin-ssl_ctx_test.o" => [ "test/ssl_ctx_test.c" ], + "test/ssl_handshake_rtt_test" => [ + "test/helpers/ssl_handshake_rtt_test-bin-ssltestlib.o", + "test/ssl_handshake_rtt_test-bin-ssl_handshake_rtt_test.o" + ], + "test/ssl_handshake_rtt_test-bin-ssl_handshake_rtt_test.o" => [ + "test/ssl_handshake_rtt_test.c" + ], "test/ssl_old_test" => [ "test/helpers/ssl_old_test-bin-predefined_dhparams.o", "test/ssl_old_test-bin-ssl_old_test.o" @@ -27120,6 +32091,12 @@ our %unified_info = ( "test/stack_test-bin-stack_test.o" => [ "test/stack_test.c" ], + "test/strtoultest" => [ + "test/strtoultest-bin-strtoultest.o" + ], + "test/strtoultest-bin-strtoultest.o" => [ + "test/strtoultest.c" + ], "test/sysdefaulttest" => [ "test/sysdefaulttest-bin-sysdefaulttest.o" ], @@ -27150,6 +32127,9 @@ our %unified_info = ( "test/testutil/libtestutil-lib-format_output.o" => [ "test/testutil/format_output.c" ], + "test/testutil/libtestutil-lib-helper.o" => [ + "test/testutil/helper.c" + ], "test/testutil/libtestutil-lib-load.o" => [ "test/testutil/load.c" ], @@ -27183,6 +32163,12 @@ our %unified_info = ( "test/testutil/libtestutil-lib-testutil_init.o" => [ "test/testutil/testutil_init.c" ], + "test/threadpool_test" => [ + "test/threadpool_test-bin-threadpool_test.o" + ], + "test/threadpool_test-bin-threadpool_test.o" => [ + "test/threadpool_test.c" + ], "test/threadstest" => [ "test/threadstest-bin-threadstest.o" ], @@ -27201,6 +32187,12 @@ our %unified_info = ( "test/time_offset_test-bin-time_offset_test.o" => [ "test/time_offset_test.c" ], + "test/time_test" => [ + "test/time_test-bin-time_test.o" + ], + "test/time_test-bin-time_test.o" => [ + "test/time_test.c" + ], "test/tls13ccstest" => [ "test/helpers/tls13ccstest-bin-ssltestlib.o", "test/tls13ccstest-bin-tls13ccstest.o" @@ -27214,6 +32206,13 @@ our %unified_info = ( "test/tls13encryptiontest-bin-tls13encryptiontest.o" => [ "test/tls13encryptiontest.c" ], + "test/tls13groupselection_test" => [ + "test/helpers/tls13groupselection_test-bin-ssltestlib.o", + "test/tls13groupselection_test-bin-tls13groupselection_test.o" + ], + "test/tls13groupselection_test-bin-tls13groupselection_test.o" => [ + "test/tls13groupselection_test.c" + ], "test/trace_api_test" => [ "test/trace_api_test-bin-trace_api_test.o" ], @@ -27269,6 +32268,12 @@ our %unified_info = ( "test/wpackettest-bin-wpackettest.o" => [ "test/wpackettest.c" ], + "test/x509_acert_test" => [ + "test/x509_acert_test-bin-x509_acert_test.o" + ], + "test/x509_acert_test-bin-x509_acert_test.o" => [ + "test/x509_acert_test.c" + ], "test/x509_check_cert_pkey_test" => [ "test/x509_check_cert_pkey_test-bin-x509_check_cert_pkey_test.o" ], @@ -27287,6 +32292,24 @@ our %unified_info = ( "test/x509_internal_test-bin-x509_internal_test.o" => [ "test/x509_internal_test.c" ], + "test/x509_load_cert_file_test" => [ + "test/x509_load_cert_file_test-bin-x509_load_cert_file_test.o" + ], + "test/x509_load_cert_file_test-bin-x509_load_cert_file_test.o" => [ + "test/x509_load_cert_file_test.c" + ], + "test/x509_req_test" => [ + "test/x509_req_test-bin-x509_req_test.o" + ], + "test/x509_req_test-bin-x509_req_test.o" => [ + "test/x509_req_test.c" + ], + "test/x509_test" => [ + "test/x509_test-bin-x509_test.o" + ], + "test/x509_test-bin-x509_test.o" => [ + "test/x509_test.c" + ], "test/x509_time_test" => [ "test/x509_time_test-bin-x509_time_test.o" ], @@ -27350,6 +32373,7 @@ my @makevars = ( "LDLIBS", "MT", "MTFLAGS", + "OBJCOPY", "PERL", "RANLIB", "RC", @@ -27366,6 +32390,12 @@ my %disabled_info = ( "asm" => { "macro" => "OPENSSL_NO_ASM" }, + "brotli" => { + "macro" => "OPENSSL_NO_BROTLI" + }, + "brotli-dynamic" => { + "macro" => "OPENSSL_NO_BROTLI_DYNAMIC" + }, "comp" => { "macro" => "OPENSSL_NO_COMP", "skipped" => [ @@ -27378,6 +32408,9 @@ my %disabled_info = ( "crypto-mdebug-backtrace" => { "macro" => "OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE" }, + "demos" => { + "macro" => "OPENSSL_NO_DEMOS" + }, "devcryptoeng" => { "macro" => "OPENSSL_NO_DEVCRYPTOENG" }, @@ -27390,12 +32423,24 @@ my %disabled_info = ( "external-tests" => { "macro" => "OPENSSL_NO_EXTERNAL_TESTS" }, + "fips-jitter" => { + "macro" => "OPENSSL_NO_FIPS_JITTER" + }, "fuzz-afl" => { "macro" => "OPENSSL_NO_FUZZ_AFL" }, "fuzz-libfuzzer" => { "macro" => "OPENSSL_NO_FUZZ_LIBFUZZER" }, + "h3demo" => { + "macro" => "OPENSSL_NO_H3DEMO" + }, + "hqinterop" => { + "macro" => "OPENSSL_NO_HQINTEROP" + }, + "jitter" => { + "macro" => "OPENSSL_NO_JITTER" + }, "ktls" => { "macro" => "OPENSSL_NO_KTLS" }, @@ -27411,6 +32456,9 @@ my %disabled_info = ( "msan" => { "macro" => "OPENSSL_NO_MSAN" }, + "pie" => { + "macro" => "OPENSSL_NO_PIE" + }, "rc5" => { "macro" => "OPENSSL_NO_RC5", "skipped" => [ @@ -27426,6 +32474,12 @@ my %disabled_info = ( "ssl3-method" => { "macro" => "OPENSSL_NO_SSL3_METHOD" }, + "sslkeylog" => { + "macro" => "OPENSSL_NO_SSLKEYLOG" + }, + "tfo" => { + "macro" => "OPENSSL_NO_TFO" + }, "trace" => { "macro" => "OPENSSL_NO_TRACE" }, @@ -27440,6 +32494,21 @@ my %disabled_info = ( }, "weak-ssl-ciphers" => { "macro" => "OPENSSL_NO_WEAK_SSL_CIPHERS" + }, + "winstore" => { + "macro" => "OPENSSL_NO_WINSTORE" + }, + "zlib" => { + "macro" => "OPENSSL_NO_ZLIB" + }, + "zlib-dynamic" => { + "macro" => "OPENSSL_NO_ZLIB_DYNAMIC" + }, + "zstd" => { + "macro" => "OPENSSL_NO_ZSTD" + }, + "zstd-dynamic" => { + "macro" => "OPENSSL_NO_ZSTD_DYNAMIC" } ); my @user_crossable = qw( AR AS CC CXX CPP LD MT RANLIB RC ); @@ -27453,15 +32522,15 @@ unless (caller) { use File::Copy; use Pod::Usage; - use lib '/home/runner/work/node/node/deps/openssl/openssl/util/perl'; - use OpenSSL::fallback '/home/runner/work/node/node/deps/openssl/openssl/external/perl/MODULES.txt'; + use lib '/node/deps/openssl/openssl/util/perl'; + use OpenSSL::fallback '/node/deps/openssl/openssl/external/perl/MODULES.txt'; my $here = dirname($0); if (scalar @ARGV == 0) { # With no arguments, re-create the build file # We do that in two steps, where the first step emits perl - # snipets. + # snippets. my $buildfile = $config{build_file}; my $buildfile_template = "$buildfile.in"; @@ -27481,7 +32550,7 @@ unless (caller) { ); use lib '.'; - use lib '/home/runner/work/node/node/deps/openssl/openssl/Configurations'; + use lib '/node/deps/openssl/openssl/Configurations'; use gentemplate; open my $buildfile_template_fh, ">$buildfile_template" @@ -27498,8 +32567,8 @@ unless (caller) { my $prepend = <<'_____'; use File::Spec::Functions; -use lib '/home/runner/work/node/node/deps/openssl/openssl/util/perl'; -use lib '/home/runner/work/node/node/deps/openssl/openssl/Configurations'; +use lib '/node/deps/openssl/openssl/util/perl'; +use lib '/node/deps/openssl/openssl/Configurations'; use lib '.'; use platform; _____ diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/crypto/buildinf.h b/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/crypto/buildinf.h index ac87a9b79e256c..f96fb48f49d1b8 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/crypto/buildinf.h +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/crypto/buildinf.h @@ -11,7 +11,7 @@ */ #define PLATFORM "platform: darwin64-x86_64-cc" -#define DATE "built on: Sun Jul 20 00:47:30 2025 UTC" +#define DATE "built on: Sun Jul 27 00:48:15 2025 UTC" /* * Generate compiler_flags as an array of individual characters. This is a diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/crypto/params_idx.c b/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/crypto/params_idx.c new file mode 100644 index 00000000000000..9d76ffededc24c --- /dev/null +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/crypto/params_idx.c @@ -0,0 +1,3366 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from crypto/params_idx.c.in + * + * Copyright 2023 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + +#include "internal/e_os.h" +#include "internal/param_names.h" +#include + +/* Machine generated TRIE -- generated by util/perl/OpenSSL/paramnames.pm */ +int ossl_param_find_pidx(const char *s) +{ + switch(s[0]) { + default: + break; + case 'a': + switch(s[1]) { + default: + break; + case 'c': + if (strcmp("vp-info", s + 2) == 0) + return PIDX_KDF_PARAM_X942_ACVPINFO; + break; + case 'd': + switch(s[2]) { + default: + break; + case 'd': + if (strcmp("itional-random", s + 3) == 0) + return PIDX_SIGNATURE_PARAM_ADD_RANDOM; + break; + case '\0': + return PIDX_KDF_PARAM_ARGON2_AD; + } + break; + case 'e': + if (strcmp("ad", s + 2) == 0) + return PIDX_CIPHER_PARAM_AEAD; + break; + case 'l': + switch(s[2]) { + default: + break; + case 'g': + switch(s[3]) { + default: + break; + case '_': + if (strcmp("id_param", s + 4) == 0) + return PIDX_CIPHER_PARAM_ALGORITHM_ID_PARAMS_OLD; + break; + case 'i': + if (strcmp("d-absent", s + 4) == 0) + return PIDX_DIGEST_PARAM_ALGID_ABSENT; + break; + case 'o': + switch(s[4]) { + default: + break; + case 'r': + switch(s[5]) { + default: + break; + case 'i': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case 'h': + switch(s[8]) { + default: + break; + case 'm': + switch(s[9]) { + default: + break; + case '-': + switch(s[10]) { + default: + break; + case 'i': + switch(s[11]) { + default: + break; + case 'd': + switch(s[12]) { + default: + break; + case '-': + if (strcmp("params", s + 13) == 0) + return PIDX_ALG_PARAM_ALGORITHM_ID_PARAMS; + break; + case '\0': + return PIDX_ALG_PARAM_ALGORITHM_ID; + } + } + } + } + } + } + } + } + } + } + break; + case 'i': + if (strcmp("as", s + 3) == 0) + return PIDX_STORE_PARAM_ALIAS; + } + break; + case '\0': + return PIDX_PKEY_PARAM_EC_A; + } + break; + case 'b': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("sis-type", s + 2) == 0) + return PIDX_PKEY_PARAM_EC_CHAR2_TYPE; + break; + case 'i': + if (strcmp("ts", s + 2) == 0) + return PIDX_PKEY_PARAM_BITS; + break; + case 'l': + switch(s[2]) { + default: + break; + case 'o': + switch(s[3]) { + default: + break; + case 'c': + switch(s[4]) { + default: + break; + case 'k': + switch(s[5]) { + default: + break; + case '-': + if (strcmp("size", s + 6) == 0) + return PIDX_MAC_PARAM_BLOCK_SIZE; + break; + case '_': + if (strcmp("padding", s + 6) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_BLOCK_PADDING; + break; + case 's': + if (strcmp("ize", s + 6) == 0) + return PIDX_DIGEST_PARAM_BLOCK_SIZE; + } + } + } + } + break; + case 'u': + if (strcmp("ildinfo", s + 2) == 0) + return PIDX_PROV_PARAM_BUILDINFO; + break; + case '\0': + return PIDX_PKEY_PARAM_EC_B; + } + break; + case 'c': + switch(s[1]) { + default: + break; + case '-': + if (strcmp("rounds", s + 2) == 0) + return PIDX_MAC_PARAM_C_ROUNDS; + break; + case 'e': + if (strcmp("kalg", s + 2) == 0) + return PIDX_KDF_PARAM_CEK_ALG; + break; + case 'i': + if (strcmp("pher", s + 2) == 0) + return PIDX_ALG_PARAM_CIPHER; + break; + case 'o': + switch(s[2]) { + default: + break; + case 'f': + if (strcmp("actor", s + 3) == 0) + return PIDX_PKEY_PARAM_EC_COFACTOR; + break; + case 'n': + switch(s[3]) { + default: + break; + case 's': + if (strcmp("tant", s + 4) == 0) + return PIDX_KDF_PARAM_CONSTANT; + break; + case 't': + if (strcmp("ext-string", s + 4) == 0) + return PIDX_SIGNATURE_PARAM_CONTEXT_STRING; + } + } + break; + case 't': + switch(s[2]) { + default: + break; + case 's': + switch(s[3]) { + default: + break; + case '_': + if (strcmp("mode", s + 4) == 0) + return PIDX_CIPHER_PARAM_CTS_MODE; + break; + case '\0': + return PIDX_CIPHER_PARAM_CTS; + } + } + break; + case 'u': + switch(s[2]) { + default: + break; + case 's': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case 'o': + switch(s[5]) { + default: + break; + case 'm': + switch(s[6]) { + default: + break; + case '-': + if (strcmp("iv", s + 7) == 0) + return PIDX_CIPHER_PARAM_CUSTOM_IV; + break; + case '\0': + return PIDX_MAC_PARAM_CUSTOM; + } + } + } + } + } + } + break; + case 'd': + switch(s[1]) { + default: + break; + case '-': + if (strcmp("rounds", s + 2) == 0) + return PIDX_MAC_PARAM_D_ROUNDS; + break; + case 'a': + switch(s[2]) { + default: + break; + case 't': + switch(s[3]) { + default: + break; + case 'a': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 's': + if (strcmp("tructure", s + 6) == 0) + return PIDX_OBJECT_PARAM_DATA_STRUCTURE; + break; + case 't': + if (strcmp("ype", s + 6) == 0) + return PIDX_OBJECT_PARAM_DATA_TYPE; + } + break; + case '\0': + return PIDX_OBJECT_PARAM_DATA; + } + } + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'c': + switch(s[3]) { + default: + break; + case 'o': + if (strcmp("ded-from-explicit", s + 4) == 0) + return PIDX_PKEY_PARAM_EC_DECODED_FROM_EXPLICIT_PARAMS; + break; + case 'r': + if (strcmp("ypt-only", s + 4) == 0) + return PIDX_CIPHER_PARAM_DECRYPT_ONLY; + } + break; + case 'f': + if (strcmp("ault-digest", s + 3) == 0) + return PIDX_PKEY_PARAM_DEFAULT_DIGEST; + break; + case 's': + if (strcmp("c", s + 3) == 0) + return PIDX_OBJECT_PARAM_DESC; + break; + case 't': + if (strcmp("erministic", s + 3) == 0) + return PIDX_SIGNATURE_PARAM_DETERMINISTIC; + } + break; + case 'h': + if (strcmp("kem-ikm", s + 2) == 0) + return PIDX_PKEY_PARAM_DHKEM_IKM; + break; + case 'i': + switch(s[2]) { + default: + break; + case 'g': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case 's': + switch(s[5]) { + default: + break; + case 't': + switch(s[6]) { + default: + break; + case '-': + switch(s[7]) { + default: + break; + case 'c': + if (strcmp("heck", s + 8) == 0) + return PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK; + break; + case 'n': + if (strcmp("oinit", s + 8) == 0) + return PIDX_MAC_PARAM_DIGEST_NOINIT; + break; + case 'o': + if (strcmp("neshot", s + 8) == 0) + return PIDX_MAC_PARAM_DIGEST_ONESHOT; + break; + case 'p': + if (strcmp("rops", s + 8) == 0) + return PIDX_ASYM_CIPHER_PARAM_OAEP_DIGEST_PROPS; + break; + case 's': + if (strcmp("ize", s + 8) == 0) + return PIDX_PKEY_PARAM_DIGEST_SIZE; + } + break; + case '\0': + return PIDX_STORE_PARAM_DIGEST; + } + } + } + } + break; + case 's': + if (strcmp("tid", s + 3) == 0) + return PIDX_PKEY_PARAM_DIST_ID; + } + break; + case 'r': + if (strcmp("bg-no-trunc-md", s + 2) == 0) + return PIDX_PROV_PARAM_DRBG_TRUNC_DIGEST; + break; + case 's': + if (strcmp("a-sign-disabled", s + 2) == 0) + return PIDX_PROV_PARAM_DSA_SIGN_DISABLED; + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_D; + } + break; + case 'e': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("rly_clean", s + 2) == 0) + return PIDX_KDF_PARAM_EARLY_CLEAN; + break; + case 'c': + switch(s[2]) { + default: + break; + case 'd': + switch(s[3]) { + default: + break; + case 'h': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'c': + switch(s[6]) { + default: + break; + case 'o': + switch(s[7]) { + default: + break; + case 'f': + switch(s[8]) { + default: + break; + case 'a': + switch(s[9]) { + default: + break; + case 'c': + switch(s[10]) { + default: + break; + case 't': + switch(s[11]) { + default: + break; + case 'o': + switch(s[12]) { + default: + break; + case 'r': + switch(s[13]) { + default: + break; + case '-': + switch(s[14]) { + default: + break; + case 'c': + if (strcmp("heck", s + 15) == 0) + return PIDX_PROV_PARAM_ECDH_COFACTOR_CHECK; + break; + case 'm': + if (strcmp("ode", s + 15) == 0) + return PIDX_EXCHANGE_PARAM_EC_ECDH_COFACTOR_MODE; + } + } + } + } + } + } + } + } + } + } + } + } + } + break; + case 'm': + if (strcmp("s_check", s + 2) == 0) + return PIDX_KDF_PARAM_FIPS_EMS_CHECK; + break; + case 'n': + switch(s[2]) { + default: + break; + case 'c': + switch(s[3]) { + default: + break; + case 'o': + switch(s[4]) { + default: + break; + case 'd': + switch(s[5]) { + default: + break; + case 'e': + if (strcmp("d-pub-key", s + 6) == 0) + return PIDX_PKEY_PARAM_ENCODED_PUBLIC_KEY; + break; + case 'i': + if (strcmp("ng", s + 6) == 0) + return PIDX_PKEY_PARAM_EC_ENCODING; + } + } + break; + case 'r': + switch(s[4]) { + default: + break; + case 'y': + switch(s[5]) { + default: + break; + case 'p': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case '-': + switch(s[8]) { + default: + break; + case 'c': + if (strcmp("heck", s + 9) == 0) + return PIDX_CIPHER_PARAM_FIPS_ENCRYPT_CHECK; + break; + case 'l': + if (strcmp("evel", s + 9) == 0) + return PIDX_ENCODER_PARAM_ENCRYPT_LEVEL; + } + } + } + } + } + } + break; + case 'g': + if (strcmp("ine", s + 3) == 0) + return PIDX_ALG_PARAM_ENGINE; + break; + case 't': + switch(s[3]) { + default: + break; + case 'r': + switch(s[4]) { + default: + break; + case 'o': + switch(s[5]) { + default: + break; + case 'p': + switch(s[6]) { + default: + break; + case 'y': + switch(s[7]) { + default: + break; + case '_': + if (strcmp("required", s + 8) == 0) + return PIDX_DRBG_PARAM_ENTROPY_REQUIRED; + break; + case '\0': + return PIDX_KDF_PARAM_HMACDRBG_ENTROPY; + } + } + } + } + } + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_E; + break; + case 'x': + if (strcmp("pect", s + 2) == 0) + return PIDX_STORE_PARAM_EXPECT; + } + break; + case 'f': + switch(s[1]) { + default: + break; + case 'i': + switch(s[2]) { + default: + break; + case 'e': + if (strcmp("ld-type", s + 3) == 0) + return PIDX_PKEY_PARAM_EC_FIELD_TYPE; + break; + case 'n': + if (strcmp("gerprint", s + 3) == 0) + return PIDX_STORE_PARAM_FINGERPRINT; + break; + case 'p': + if (strcmp("s-indicator", s + 3) == 0) + return PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR; + } + } + break; + case 'g': + switch(s[1]) { + default: + break; + case 'e': + switch(s[2]) { + default: + break; + case 'n': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case 'r': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case 'e': + switch(s[8]) { + default: + break; + case '\0': + return PIDX_RAND_PARAM_GENERATE; + } + break; + case 'o': + if (strcmp("r", s + 8) == 0) + return PIDX_PKEY_PARAM_EC_GENERATOR; + } + } + } + } + } + } + break; + case 'i': + if (strcmp("ndex", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_GINDEX; + break; + case 'r': + switch(s[2]) { + default: + break; + case 'o': + switch(s[3]) { + default: + break; + case 'u': + switch(s[4]) { + default: + break; + case 'p': + switch(s[5]) { + default: + break; + case '-': + if (strcmp("check", s + 6) == 0) + return PIDX_PKEY_PARAM_EC_GROUP_CHECK_TYPE; + break; + case '\0': + return PIDX_PKEY_PARAM_GROUP_NAME; + } + } + } + } + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_G; + } + break; + case 'h': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("s-randkey", s + 2) == 0) + return PIDX_CIPHER_PARAM_HAS_RAND_KEY; + break; + case 'i': + if (strcmp("ndex", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_H; + break; + case 'k': + switch(s[2]) { + default: + break; + case 'd': + switch(s[3]) { + default: + break; + case 'f': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 6) == 0) + return PIDX_PROV_PARAM_HKDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 6) == 0) + return PIDX_PROV_PARAM_HKDF_KEY_CHECK; + } + } + } + } + break; + case 'm': + if (strcmp("ac-key-check", s + 2) == 0) + return PIDX_PROV_PARAM_HMAC_KEY_CHECK; + break; + case 's': + if (strcmp("_padding", s + 2) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_HS_PADDING; + } + break; + case 'i': + switch(s[1]) { + default: + break; + case 'd': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_KDF_PARAM_PKCS12_ID; + } + break; + case 'k': + if (strcmp("me", s + 2) == 0) + return PIDX_KEM_PARAM_IKME; + break; + case 'm': + if (strcmp("plicit-rejection", s + 2) == 0) + return PIDX_PKEY_PARAM_IMPLICIT_REJECTION; + break; + case 'n': + switch(s[2]) { + default: + break; + case 'c': + if (strcmp("lude-public", s + 3) == 0) + return PIDX_PKEY_PARAM_EC_INCLUDE_PUBLIC; + break; + case 'f': + if (strcmp("o", s + 3) == 0) + return PIDX_PASSPHRASE_PARAM_INFO; + break; + case 'p': + if (strcmp("ut-type", s + 3) == 0) + return PIDX_STORE_PARAM_INPUT_TYPE; + break; + case 's': + if (strcmp("tance", s + 3) == 0) + return PIDX_SIGNATURE_PARAM_INSTANCE; + } + break; + case 't': + switch(s[2]) { + default: + break; + case 'e': + switch(s[3]) { + default: + break; + case 'r': + switch(s[4]) { + default: + break; + case 'a': + if (strcmp("tion", s + 5) == 0) + return PIDX_GEN_PARAM_ITERATION; + break; + case '\0': + return PIDX_KDF_PARAM_ITER; + } + } + } + break; + case 'v': + switch(s[2]) { + default: + break; + case '-': + if (strcmp("generated", s + 3) == 0) + return PIDX_CIPHER_PARAM_AEAD_IV_GENERATED; + break; + case 'l': + if (strcmp("en", s + 3) == 0) + return PIDX_CIPHER_PARAM_IVLEN; + break; + case '\0': + return PIDX_MAC_PARAM_IV; + } + } + break; + case 'j': + switch(s[1]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_COFACTOR; + } + break; + case 'k': + switch(s[1]) { + default: + break; + case '1': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_PP_K1; + } + break; + case '2': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_PP_K2; + } + break; + case '3': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_PP_K3; + } + break; + case 'a': + if (strcmp("t", s + 2) == 0) + return PIDX_SIGNATURE_PARAM_KAT; + break; + case 'b': + if (strcmp("kdf-key-check", s + 2) == 0) + return PIDX_PROV_PARAM_KBKDF_KEY_CHECK; + break; + case 'd': + switch(s[2]) { + default: + break; + case 'f': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'd': + switch(s[5]) { + default: + break; + case 'i': + switch(s[6]) { + default: + break; + case 'g': + switch(s[7]) { + default: + break; + case 'e': + switch(s[8]) { + default: + break; + case 's': + switch(s[9]) { + default: + break; + case 't': + switch(s[10]) { + default: + break; + case '-': + if (strcmp("props", s + 11) == 0) + return PIDX_EXCHANGE_PARAM_KDF_DIGEST_PROPS; + break; + case '\0': + return PIDX_EXCHANGE_PARAM_KDF_DIGEST; + } + } + } + } + } + } + break; + case 'o': + if (strcmp("utlen", s + 5) == 0) + return PIDX_EXCHANGE_PARAM_KDF_OUTLEN; + break; + case 't': + if (strcmp("ype", s + 5) == 0) + return PIDX_EXCHANGE_PARAM_KDF_TYPE; + break; + case 'u': + if (strcmp("km", s + 5) == 0) + return PIDX_EXCHANGE_PARAM_KDF_UKM; + } + } + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'y': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'c': + if (strcmp("heck", s + 5) == 0) + return PIDX_PKEY_PARAM_FIPS_KEY_CHECK; + break; + case 'l': + if (strcmp("ength", s + 5) == 0) + return PIDX_SKEY_PARAM_KEY_LENGTH; + } + break; + case 'b': + if (strcmp("its", s + 4) == 0) + return PIDX_CIPHER_PARAM_RC2_KEYBITS; + break; + case 'l': + if (strcmp("en", s + 4) == 0) + return PIDX_CIPHER_PARAM_KEYLEN; + break; + case '\0': + return PIDX_MAC_PARAM_KEY; + } + } + break; + case 'm': + if (strcmp("ac-key-check", s + 2) == 0) + return PIDX_PROV_PARAM_KMAC_KEY_CHECK; + } + break; + case 'l': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'b': + if (strcmp("el", s + 3) == 0) + return PIDX_KDF_PARAM_LABEL; + break; + case 'n': + if (strcmp("es", s + 3) == 0) + return PIDX_KDF_PARAM_ARGON2_LANES; + } + } + break; + case 'm': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'c': + switch(s[3]) { + default: + break; + case 'k': + if (strcmp("ey", s + 4) == 0) + return PIDX_CIPHER_PARAM_AEAD_MAC_KEY; + break; + case 'l': + if (strcmp("en", s + 4) == 0) + return PIDX_KDF_PARAM_MAC_SIZE; + break; + case '\0': + return PIDX_ALG_PARAM_MAC; + } + break; + case 'n': + if (strcmp("datory-digest", s + 3) == 0) + return PIDX_PKEY_PARAM_MANDATORY_DIGEST; + break; + case 'x': + switch(s[3]) { + default: + break; + case '-': + if (strcmp("size", s + 4) == 0) + return PIDX_PKEY_PARAM_MAX_SIZE; + break; + case '_': + switch(s[4]) { + default: + break; + case 'a': + if (strcmp("dinlen", s + 5) == 0) + return PIDX_DRBG_PARAM_MAX_ADINLEN; + break; + case 'e': + switch(s[5]) { + default: + break; + case 'a': + if (strcmp("rly_data", s + 6) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_MAX_EARLY_DATA; + break; + case 'n': + if (strcmp("tropylen", s + 6) == 0) + return PIDX_DRBG_PARAM_MAX_ENTROPYLEN; + } + break; + case 'f': + if (strcmp("rag_len", s + 5) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_MAX_FRAG_LEN; + break; + case 'n': + if (strcmp("oncelen", s + 5) == 0) + return PIDX_DRBG_PARAM_MAX_NONCELEN; + break; + case 'p': + if (strcmp("erslen", s + 5) == 0) + return PIDX_DRBG_PARAM_MAX_PERSLEN; + break; + case 'r': + if (strcmp("equest", s + 5) == 0) + return PIDX_RAND_PARAM_MAX_REQUEST; + } + break; + case 'i': + if (strcmp("um_length", s + 4) == 0) + return PIDX_DRBG_PARAM_MAX_LENGTH; + break; + case 'm': + if (strcmp("em_bytes", s + 4) == 0) + return PIDX_KDF_PARAM_SCRYPT_MAXMEM; + } + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'm': + if (strcmp("cost", s + 3) == 0) + return PIDX_KDF_PARAM_ARGON2_MEMCOST; + break; + case 's': + if (strcmp("sage-encoding", s + 3) == 0) + return PIDX_SIGNATURE_PARAM_MESSAGE_ENCODING; + } + break; + case 'g': + switch(s[2]) { + default: + break; + case 'f': + switch(s[3]) { + default: + break; + case '1': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'd': + if (strcmp("igest", s + 6) == 0) + return PIDX_PKEY_PARAM_MGF1_DIGEST; + break; + case 'p': + if (strcmp("roperties", s + 6) == 0) + return PIDX_PKEY_PARAM_MGF1_PROPERTIES; + } + } + break; + case '\0': + return PIDX_PKEY_PARAM_MASKGENFUNC; + } + } + break; + case 'i': + switch(s[2]) { + default: + break; + case 'c': + if (strcmp("alg", s + 3) == 0) + return PIDX_DIGEST_PARAM_MICALG; + break; + case 'n': + switch(s[3]) { + default: + break; + case '_': + switch(s[4]) { + default: + break; + case 'e': + if (strcmp("ntropylen", s + 5) == 0) + return PIDX_DRBG_PARAM_MIN_ENTROPYLEN; + break; + case 'n': + if (strcmp("oncelen", s + 5) == 0) + return PIDX_DRBG_PARAM_MIN_NONCELEN; + } + break; + case 'i': + if (strcmp("um_length", s + 4) == 0) + return PIDX_DRBG_PARAM_MIN_LENGTH; + } + } + break; + case 'l': + switch(s[2]) { + default: + break; + case '-': + switch(s[3]) { + default: + break; + case 'd': + switch(s[4]) { + default: + break; + case 's': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case '.': + switch(s[7]) { + default: + break; + case 'i': + if (strcmp("nput_formats", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_DSA_INPUT_FORMATS; + break; + case 'o': + if (strcmp("utput_formats", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_DSA_OUTPUT_FORMATS; + break; + case 'p': + if (strcmp("refer_seed", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_DSA_PREFER_SEED; + break; + case 'r': + if (strcmp("etain_seed", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_DSA_RETAIN_SEED; + } + } + } + } + break; + case 'k': + switch(s[4]) { + default: + break; + case 'e': + switch(s[5]) { + default: + break; + case 'm': + switch(s[6]) { + default: + break; + case '.': + switch(s[7]) { + default: + break; + case 'i': + switch(s[8]) { + default: + break; + case 'm': + if (strcmp("port_pct_type", s + 9) == 0) + return PIDX_PKEY_PARAM_ML_KEM_IMPORT_PCT_TYPE; + break; + case 'n': + if (strcmp("put_formats", s + 9) == 0) + return PIDX_PKEY_PARAM_ML_KEM_INPUT_FORMATS; + } + break; + case 'o': + if (strcmp("utput_formats", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_KEM_OUTPUT_FORMATS; + break; + case 'p': + if (strcmp("refer_seed", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_KEM_PREFER_SEED; + break; + case 'r': + if (strcmp("etain_seed", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_KEM_RETAIN_SEED; + } + } + } + } + } + } + break; + case 'o': + switch(s[2]) { + default: + break; + case 'd': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case '\0': + return PIDX_LIBSSL_RECORD_LAYER_PARAM_MODE; + } + break; + case 'u': + if (strcmp("le-filename", s + 4) == 0) + return PIDX_PROV_PARAM_CORE_MODULE_FILENAME; + } + } + break; + case 'u': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_SIGNATURE_PARAM_MU; + } + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_M; + } + break; + case 'n': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("me", s + 2) == 0) + return PIDX_STORE_PARAM_ISSUER; + break; + case 'o': + switch(s[2]) { + default: + break; + case '-': + if (strcmp("short-mac", s + 3) == 0) + return PIDX_PROV_PARAM_NO_SHORT_MAC; + break; + case 'n': + switch(s[3]) { + default: + break; + case 'c': + switch(s[4]) { + default: + break; + case 'e': + switch(s[5]) { + default: + break; + case '-': + if (strcmp("type", s + 6) == 0) + return PIDX_SIGNATURE_PARAM_NONCE_TYPE; + break; + case '\0': + return PIDX_KDF_PARAM_HMACDRBG_NONCE; + } + } + } + } + break; + case 'u': + if (strcmp("m", s + 2) == 0) + return PIDX_CIPHER_PARAM_NUM; + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_N; + } + break; + case 'o': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("ep-label", s + 2) == 0) + return PIDX_ASYM_CIPHER_PARAM_OAEP_LABEL; + break; + case 'p': + switch(s[2]) { + default: + break; + case 'e': + switch(s[3]) { + default: + break; + case 'n': + if (strcmp("ssl-version", s + 4) == 0) + return PIDX_PROV_PARAM_CORE_VERSION; + break; + case 'r': + if (strcmp("ation", s + 4) == 0) + return PIDX_KEM_PARAM_OPERATION; + } + break; + case 't': + if (strcmp("ions", s + 3) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_OPTIONS; + } + break; + case 'r': + if (strcmp("der", s + 2) == 0) + return PIDX_PKEY_PARAM_EC_ORDER; + } + break; + case 'p': + switch(s[1]) { + default: + break; + case '1': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_P1; + } + break; + case '2': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_P2; + } + break; + case 'a': + switch(s[2]) { + default: + break; + case 'd': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'm': + if (strcmp("ode", s + 5) == 0) + return PIDX_PKEY_PARAM_PAD_MODE; + break; + case 't': + if (strcmp("ype", s + 5) == 0) + return PIDX_DIGEST_PARAM_PAD_TYPE; + } + break; + case 'd': + if (strcmp("ing", s + 4) == 0) + return PIDX_CIPHER_PARAM_PADDING; + break; + case '\0': + return PIDX_EXCHANGE_PARAM_PAD; + } + break; + case 'r': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case 'y': + switch(s[5]) { + default: + break; + case 'u': + if (strcmp("-info", s + 6) == 0) + return PIDX_KDF_PARAM_X942_PARTYUINFO; + break; + case 'v': + if (strcmp("-info", s + 6) == 0) + return PIDX_KDF_PARAM_X942_PARTYVINFO; + } + } + } + break; + case 's': + if (strcmp("s", s + 3) == 0) + return PIDX_KDF_PARAM_PASSWORD; + } + break; + case 'b': + switch(s[2]) { + default: + break; + case 'i': + if (strcmp("ts", s + 3) == 0) + return PIDX_PKEY_PARAM_FFC_PBITS; + break; + case 'k': + if (strcmp("df2-lower-bound-check", s + 3) == 0) + return PIDX_PROV_PARAM_PBKDF2_LOWER_BOUND_CHECK; + } + break; + case 'c': + if (strcmp("ounter", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_PCOUNTER; + break; + case 'i': + if (strcmp("peline-tag", s + 2) == 0) + return PIDX_CIPHER_PARAM_PIPELINE_AEAD_TAG; + break; + case 'k': + if (strcmp("cs5", s + 2) == 0) + return PIDX_KDF_PARAM_PKCS5; + break; + case 'o': + switch(s[2]) { + default: + break; + case 'i': + if (strcmp("nt-format", s + 3) == 0) + return PIDX_PKEY_PARAM_EC_POINT_CONVERSION_FORMAT; + break; + case 't': + if (strcmp("ential", s + 3) == 0) + return PIDX_GEN_PARAM_POTENTIAL; + } + break; + case 'r': + switch(s[2]) { + default: + break; + case 'e': + switch(s[3]) { + default: + break; + case 'd': + if (strcmp("iction_resistance", s + 4) == 0) + return PIDX_DRBG_PARAM_PREDICTION_RESISTANCE; + break; + case 'f': + if (strcmp("ix", s + 4) == 0) + return PIDX_KDF_PARAM_PREFIX; + } + break; + case 'i': + switch(s[3]) { + default: + break; + case 'm': + if (strcmp("es", s + 4) == 0) + return PIDX_PKEY_PARAM_RSA_PRIMES; + break; + case 'v': + switch(s[4]) { + default: + break; + case '_': + if (strcmp("len", s + 5) == 0) + return PIDX_PKEY_PARAM_DH_PRIV_LEN; + break; + case '\0': + return PIDX_PKEY_PARAM_PRIV_KEY; + } + } + break; + case 'o': + switch(s[3]) { + default: + break; + case 'p': + if (strcmp("erties", s + 4) == 0) + return PIDX_STORE_PARAM_PROPERTIES; + break; + case 'v': + if (strcmp("ider-name", s + 4) == 0) + return PIDX_PROV_PARAM_CORE_PROV_NAME; + } + } + break; + case 'u': + if (strcmp("b", s + 2) == 0) + return PIDX_PKEY_PARAM_PUB_KEY; + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_P; + } + break; + case 'q': + switch(s[1]) { + default: + break; + case '1': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_Q1; + } + break; + case '2': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_Q2; + } + break; + case 'b': + if (strcmp("its", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_QBITS; + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_Q; + break; + case 'x': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_PUB_X; + } + break; + case 'y': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_PUB_Y; + } + } + break; + case 'r': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'n': + switch(s[3]) { + default: + break; + case 'd': + switch(s[4]) { + default: + break; + case 'k': + if (strcmp("ey", s + 5) == 0) + return PIDX_CIPHER_PARAM_RANDOM_KEY; + break; + case 'o': + if (strcmp("m_data", s + 5) == 0) + return PIDX_DRBG_PARAM_RANDOM_DATA; + } + } + break; + case 'w': + if (strcmp("-bytes", s + 3) == 0) + return PIDX_SKEY_PARAM_RAW_BYTES; + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'a': + switch(s[3]) { + default: + break; + case 'd': + switch(s[4]) { + default: + break; + case '_': + switch(s[5]) { + default: + break; + case 'a': + if (strcmp("head", s + 6) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_READ_AHEAD; + break; + case 'b': + if (strcmp("uffer_len", s + 6) == 0) + return PIDX_LIBSSL_RECORD_LAYER_READ_BUFFER_LEN; + } + } + } + break; + case 'f': + if (strcmp("erence", s + 3) == 0) + return PIDX_OBJECT_PARAM_REFERENCE; + break; + case 's': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case 'e': + switch(s[5]) { + default: + break; + case 'd': + switch(s[6]) { + default: + break; + case '_': + switch(s[7]) { + default: + break; + case 'c': + if (strcmp("ounter", s + 8) == 0) + return PIDX_DRBG_PARAM_RESEED_COUNTER; + break; + case 'r': + if (strcmp("equests", s + 8) == 0) + return PIDX_DRBG_PARAM_RESEED_REQUESTS; + break; + case 't': + switch(s[8]) { + default: + break; + case 'i': + switch(s[9]) { + default: + break; + case 'm': + switch(s[10]) { + default: + break; + case 'e': + switch(s[11]) { + default: + break; + case '_': + if (strcmp("interval", s + 12) == 0) + return PIDX_DRBG_PARAM_RESEED_TIME_INTERVAL; + break; + case '\0': + return PIDX_DRBG_PARAM_RESEED_TIME; + } + } + } + } + } + } + } + } + } + } + break; + case 'o': + if (strcmp("unds", s + 2) == 0) + return PIDX_CIPHER_PARAM_ROUNDS; + break; + case 's': + switch(s[2]) { + default: + break; + case 'a': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'c': + switch(s[5]) { + default: + break; + case 'o': + switch(s[6]) { + default: + break; + case 'e': + switch(s[7]) { + default: + break; + case 'f': + switch(s[8]) { + default: + break; + case 'f': + switch(s[9]) { + default: + break; + case 'i': + switch(s[10]) { + default: + break; + case 'c': + switch(s[11]) { + default: + break; + case 'i': + switch(s[12]) { + default: + break; + case 'e': + switch(s[13]) { + default: + break; + case 'n': + switch(s[14]) { + default: + break; + case 't': + switch(s[15]) { + default: + break; + case '1': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT1; + } + break; + case '2': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT2; + } + break; + case '3': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT3; + } + break; + case '4': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT4; + } + break; + case '5': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT5; + } + break; + case '6': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT6; + } + break; + case '7': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT7; + } + break; + case '8': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT8; + } + break; + case '9': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT9; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT; + } + } + } + } + } + } + } + } + } + } + } + break; + case 'd': + if (strcmp("erive-from-pq", s + 5) == 0) + return PIDX_PKEY_PARAM_RSA_DERIVE_FROM_PQ; + break; + case 'e': + switch(s[5]) { + default: + break; + case 'x': + switch(s[6]) { + default: + break; + case 'p': + switch(s[7]) { + default: + break; + case 'o': + switch(s[8]) { + default: + break; + case 'n': + switch(s[9]) { + default: + break; + case 'e': + switch(s[10]) { + default: + break; + case 'n': + switch(s[11]) { + default: + break; + case 't': + switch(s[12]) { + default: + break; + case '1': + switch(s[13]) { + default: + break; + case '0': + switch(s[14]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT10; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT1; + } + break; + case '2': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT2; + } + break; + case '3': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT3; + } + break; + case '4': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT4; + } + break; + case '5': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT5; + } + break; + case '6': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT6; + } + break; + case '7': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT7; + } + break; + case '8': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT8; + } + break; + case '9': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT9; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT; + } + } + } + } + } + } + } + } + break; + case 'f': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case 'c': + switch(s[7]) { + default: + break; + case 't': + switch(s[8]) { + default: + break; + case 'o': + switch(s[9]) { + default: + break; + case 'r': + switch(s[10]) { + default: + break; + case '1': + switch(s[11]) { + default: + break; + case '0': + switch(s[12]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR10; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR1; + } + break; + case '2': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR2; + } + break; + case '3': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR3; + } + break; + case '4': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR4; + } + break; + case '5': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR5; + } + break; + case '6': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR6; + } + break; + case '7': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR7; + } + break; + case '8': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR8; + } + break; + case '9': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR9; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR; + } + } + } + } + } + } + break; + case 'p': + switch(s[5]) { + default: + break; + case 'k': + if (strcmp("cs15-pad-disabled", s + 6) == 0) + return PIDX_PROV_PARAM_RSA_PKCS15_PAD_DISABLED; + break; + case 's': + if (strcmp("s-saltlen-check", s + 6) == 0) + return PIDX_SIGNATURE_PARAM_FIPS_RSA_PSS_SALTLEN_CHECK; + } + break; + case 's': + if (strcmp("ign-x931-pad-disabled", s + 5) == 0) + return PIDX_PROV_PARAM_RSA_SIGN_X931_PAD_DISABLED; + } + } + } + break; + case '\0': + return PIDX_KDF_PARAM_SCRYPT_R; + } + break; + case 's': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'f': + if (strcmp("eprime-generator", s + 3) == 0) + return PIDX_PKEY_PARAM_DH_GENERATOR; + break; + case 'l': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case 'l': + if (strcmp("en", s + 5) == 0) + return PIDX_SIGNATURE_PARAM_PSS_SALTLEN; + break; + case '\0': + return PIDX_MAC_PARAM_SALT; + } + } + break; + case 'v': + if (strcmp("e-parameters", s + 3) == 0) + return PIDX_ENCODER_PARAM_SAVE_PARAMETERS; + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'c': + switch(s[3]) { + default: + break; + case 'r': + if (strcmp("et", s + 4) == 0) + return PIDX_KDF_PARAM_SECRET; + break; + case 'u': + switch(s[4]) { + default: + break; + case 'r': + switch(s[5]) { + default: + break; + case 'i': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case 'y': + switch(s[8]) { + default: + break; + case '-': + switch(s[9]) { + default: + break; + case 'b': + if (strcmp("its", s + 10) == 0) + return PIDX_PKEY_PARAM_SECURITY_BITS; + break; + case 'c': + if (strcmp("hecks", s + 10) == 0) + return PIDX_PROV_PARAM_SECURITY_CHECKS; + } + } + } + } + } + } + } + break; + case 'e': + if (strcmp("d", s + 3) == 0) + return PIDX_PKEY_PARAM_SLH_DSA_SEED; + break; + case 'r': + if (strcmp("ial", s + 3) == 0) + return PIDX_STORE_PARAM_SERIAL; + break; + case 's': + if (strcmp("sion_id", s + 3) == 0) + return PIDX_KDF_PARAM_SSHKDF_SESSION_ID; + } + break; + case 'i': + switch(s[2]) { + default: + break; + case 'g': + switch(s[3]) { + default: + break; + case 'n': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'c': + if (strcmp("heck", s + 6) == 0) + return PIDX_PKEY_PARAM_FIPS_SIGN_CHECK; + break; + case 'x': + if (strcmp("931-pad-check", s + 6) == 0) + return PIDX_SIGNATURE_PARAM_FIPS_SIGN_X931_PAD_CHECK; + } + break; + case 'a': + switch(s[5]) { + default: + break; + case 't': + switch(s[6]) { + default: + break; + case 'u': + switch(s[7]) { + default: + break; + case 'r': + switch(s[8]) { + default: + break; + case 'e': + switch(s[9]) { + default: + break; + case '-': + if (strcmp("digest-check", s + 10) == 0) + return PIDX_PROV_PARAM_SIGNATURE_DIGEST_CHECK; + break; + case '\0': + return PIDX_SIGNATURE_PARAM_SIGNATURE; + } + } + } + } + } + } + } + break; + case 'z': + if (strcmp("e", s + 3) == 0) + return PIDX_MAC_PARAM_SIZE; + } + break; + case 'p': + if (strcmp("eed", s + 2) == 0) + return PIDX_CIPHER_PARAM_SPEED; + break; + case 's': + switch(s[2]) { + default: + break; + case 'h': + switch(s[3]) { + default: + break; + case 'k': + switch(s[4]) { + default: + break; + case 'd': + switch(s[5]) { + default: + break; + case 'f': + switch(s[6]) { + default: + break; + case '-': + switch(s[7]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 8) == 0) + return PIDX_PROV_PARAM_SSHKDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 8) == 0) + return PIDX_PROV_PARAM_SSHKDF_KEY_CHECK; + } + } + } + } + } + break; + case 'k': + switch(s[3]) { + default: + break; + case 'd': + switch(s[4]) { + default: + break; + case 'f': + switch(s[5]) { + default: + break; + case '-': + switch(s[6]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 7) == 0) + return PIDX_PROV_PARAM_SSKDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 7) == 0) + return PIDX_PROV_PARAM_SSKDF_KEY_CHECK; + } + } + } + } + break; + case 'l': + if (strcmp("3-ms", s + 3) == 0) + return PIDX_DIGEST_PARAM_SSL3_MS; + } + break; + case 't': + switch(s[2]) { + default: + break; + case '-': + switch(s[3]) { + default: + break; + case 'd': + if (strcmp("esc", s + 4) == 0) + return PIDX_PROV_PARAM_SELF_TEST_DESC; + break; + case 'p': + if (strcmp("hase", s + 4) == 0) + return PIDX_PROV_PARAM_SELF_TEST_PHASE; + break; + case 't': + if (strcmp("ype", s + 4) == 0) + return PIDX_PROV_PARAM_SELF_TEST_TYPE; + } + break; + case 'a': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case 'e': + switch(s[5]) { + default: + break; + case '\0': + return PIDX_RAND_PARAM_STATE; + } + break; + case 'u': + if (strcmp("s", s + 5) == 0) + return PIDX_PROV_PARAM_STATUS; + } + } + break; + case 'r': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case 'a': + if (strcmp("m_mac", s + 5) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_STREAM_MAC; + break; + case 'n': + if (strcmp("gth", s + 5) == 0) + return PIDX_RAND_PARAM_STRENGTH; + } + } + } + break; + case 'u': + switch(s[2]) { + default: + break; + case 'b': + if (strcmp("ject", s + 3) == 0) + return PIDX_STORE_PARAM_SUBJECT; + break; + case 'p': + switch(s[3]) { + default: + break; + case 'p': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'p': + switch(s[6]) { + default: + break; + case 'r': + if (strcmp("ivinfo", s + 7) == 0) + return PIDX_KDF_PARAM_X942_SUPP_PRIVINFO; + break; + case 'u': + if (strcmp("binfo", s + 7) == 0) + return PIDX_KDF_PARAM_X942_SUPP_PUBINFO; + } + } + } + } + } + } + break; + case 't': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'g': + switch(s[3]) { + default: + break; + case 'l': + if (strcmp("en", s + 4) == 0) + return PIDX_CIPHER_PARAM_AEAD_TAGLEN; + break; + case '\0': + return PIDX_CIPHER_PARAM_AEAD_TAG; + } + } + break; + case 'd': + if (strcmp("es-encrypt-disabled", s + 2) == 0) + return PIDX_PROV_PARAM_TDES_ENCRYPT_DISABLED; + break; + case 'e': + switch(s[2]) { + default: + break; + case 's': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case '-': + if (strcmp("entropy", s + 5) == 0) + return PIDX_SIGNATURE_PARAM_TEST_ENTROPY; + break; + case '_': + switch(s[5]) { + default: + break; + case 'e': + if (strcmp("ntropy", s + 6) == 0) + return PIDX_RAND_PARAM_TEST_ENTROPY; + break; + case 'n': + if (strcmp("once", s + 6) == 0) + return PIDX_RAND_PARAM_TEST_NONCE; + } + } + } + } + break; + case 'h': + if (strcmp("reads", s + 2) == 0) + return PIDX_KDF_PARAM_THREADS; + break; + case 'l': + switch(s[2]) { + default: + break; + case 's': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'c': + if (strcmp("lient-version", s + 5) == 0) + return PIDX_ASYM_CIPHER_PARAM_TLS_CLIENT_VERSION; + break; + case 'd': + if (strcmp("ata-size", s + 5) == 0) + return PIDX_MAC_PARAM_TLS_DATA_SIZE; + break; + case 'g': + switch(s[5]) { + default: + break; + case 'r': + switch(s[6]) { + default: + break; + case 'o': + switch(s[7]) { + default: + break; + case 'u': + switch(s[8]) { + default: + break; + case 'p': + switch(s[9]) { + default: + break; + case '-': + switch(s[10]) { + default: + break; + case 'a': + if (strcmp("lg", s + 11) == 0) + return PIDX_CAPABILITY_TLS_GROUP_ALG; + break; + case 'i': + switch(s[11]) { + default: + break; + case 'd': + switch(s[12]) { + default: + break; + case '\0': + return PIDX_CAPABILITY_TLS_GROUP_ID; + } + break; + case 's': + if (strcmp("-kem", s + 12) == 0) + return PIDX_CAPABILITY_TLS_GROUP_IS_KEM; + } + break; + case 'n': + switch(s[11]) { + default: + break; + case 'a': + switch(s[12]) { + default: + break; + case 'm': + switch(s[13]) { + default: + break; + case 'e': + switch(s[14]) { + default: + break; + case '-': + if (strcmp("internal", s + 15) == 0) + return PIDX_CAPABILITY_TLS_GROUP_NAME_INTERNAL; + break; + case '\0': + return PIDX_CAPABILITY_TLS_GROUP_NAME; + } + } + } + } + break; + case 's': + if (strcmp("ec-bits", s + 11) == 0) + return PIDX_CAPABILITY_TLS_GROUP_SECURITY_BITS; + } + } + } + } + } + } + break; + case 'm': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case 'c': + switch(s[7]) { + default: + break; + case '-': + if (strcmp("size", s + 8) == 0) + return PIDX_CIPHER_PARAM_TLS_MAC_SIZE; + break; + case '\0': + return PIDX_CIPHER_PARAM_TLS_MAC; + } + break; + case 'x': + switch(s[7]) { + default: + break; + case '-': + switch(s[8]) { + default: + break; + case 'd': + if (strcmp("tls", s + 9) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_MAX_DTLS; + break; + case 't': + if (strcmp("ls", s + 9) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_MAX_TLS; + } + } + } + break; + case 'i': + switch(s[6]) { + default: + break; + case 'n': + switch(s[7]) { + default: + break; + case '-': + switch(s[8]) { + default: + break; + case 'd': + if (strcmp("tls", s + 9) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_MIN_DTLS; + break; + case 't': + if (strcmp("ls", s + 9) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_MIN_TLS; + } + } + } + break; + case 'u': + if (strcmp("lti", s + 6) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK; + } + break; + case 'n': + if (strcmp("egotiated-version", s + 5) == 0) + return PIDX_ASYM_CIPHER_PARAM_TLS_NEGOTIATED_VERSION; + break; + case 's': + switch(s[5]) { + default: + break; + case 'i': + switch(s[6]) { + default: + break; + case 'g': + switch(s[7]) { + default: + break; + case 'a': + switch(s[8]) { + default: + break; + case 'l': + switch(s[9]) { + default: + break; + case 'g': + switch(s[10]) { + default: + break; + case '-': + switch(s[11]) { + default: + break; + case 'c': + if (strcmp("ode-point", s + 12) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_CODE_POINT; + break; + case 'h': + switch(s[12]) { + default: + break; + case 'a': + switch(s[13]) { + default: + break; + case 's': + switch(s[14]) { + default: + break; + case 'h': + switch(s[15]) { + default: + break; + case '-': + switch(s[16]) { + default: + break; + case 'n': + if (strcmp("ame", s + 17) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_HASH_NAME; + break; + case 'o': + if (strcmp("id", s + 17) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_HASH_OID; + } + } + } + } + } + break; + case 'i': + if (strcmp("ana-name", s + 12) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_IANA_NAME; + break; + case 'k': + switch(s[12]) { + default: + break; + case 'e': + switch(s[13]) { + default: + break; + case 'y': + switch(s[14]) { + default: + break; + case 't': + switch(s[15]) { + default: + break; + case 'y': + switch(s[16]) { + default: + break; + case 'p': + switch(s[17]) { + default: + break; + case 'e': + switch(s[18]) { + default: + break; + case '-': + if (strcmp("oid", s + 19) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_KEYTYPE_OID; + break; + case '\0': + return PIDX_CAPABILITY_TLS_SIGALG_KEYTYPE; + } + } + } + } + } + } + } + break; + case 'n': + if (strcmp("ame", s + 12) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_NAME; + break; + case 'o': + if (strcmp("id", s + 12) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_OID; + break; + case 's': + switch(s[12]) { + default: + break; + case 'e': + if (strcmp("c-bits", s + 13) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_SECURITY_BITS; + break; + case 'i': + switch(s[13]) { + default: + break; + case 'g': + switch(s[14]) { + default: + break; + case '-': + switch(s[15]) { + default: + break; + case 'n': + if (strcmp("ame", s + 16) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_SIG_NAME; + break; + case 'o': + if (strcmp("id", s + 16) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_SIG_OID; + } + } + } + } + } + } + } + } + } + } + } + break; + case 'v': + if (strcmp("ersion", s + 5) == 0) + return PIDX_CIPHER_PARAM_TLS_VERSION; + } + break; + case '1': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'p': + switch(s[6]) { + default: + break; + case 'r': + switch(s[7]) { + default: + break; + case 'f': + switch(s[8]) { + default: + break; + case '-': + switch(s[9]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 10) == 0) + return PIDX_PROV_PARAM_TLS1_PRF_DIGEST_CHECK; + break; + case 'e': + if (strcmp("ms-check", s + 10) == 0) + return PIDX_PROV_PARAM_TLS1_PRF_EMS_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 10) == 0) + return PIDX_PROV_PARAM_TLS1_PRF_KEY_CHECK; + } + } + } + } + } + break; + case '3': + switch(s[5]) { + default: + break; + case '-': + switch(s[6]) { + default: + break; + case 'k': + switch(s[7]) { + default: + break; + case 'd': + switch(s[8]) { + default: + break; + case 'f': + switch(s[9]) { + default: + break; + case '-': + switch(s[10]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 11) == 0) + return PIDX_PROV_PARAM_TLS13_KDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 11) == 0) + return PIDX_PROV_PARAM_TLS13_KDF_KEY_CHECK; + } + } + } + } + } + } + break; + case 'm': + switch(s[5]) { + default: + break; + case 'u': + switch(s[6]) { + default: + break; + case 'l': + switch(s[7]) { + default: + break; + case 't': + switch(s[8]) { + default: + break; + case 'i': + switch(s[9]) { + default: + break; + case '_': + switch(s[10]) { + default: + break; + case 'a': + switch(s[11]) { + default: + break; + case 'a': + switch(s[12]) { + default: + break; + case 'd': + switch(s[13]) { + default: + break; + case 'p': + if (strcmp("acklen", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD_PACKLEN; + break; + case '\0': + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD; + } + } + } + break; + case 'e': + switch(s[11]) { + default: + break; + case 'n': + switch(s[12]) { + default: + break; + case 'c': + switch(s[13]) { + default: + break; + case 'i': + if (strcmp("n", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_IN; + break; + case 'l': + if (strcmp("en", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_LEN; + break; + case '\0': + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC; + } + } + } + break; + case 'i': + if (strcmp("nterleave", s + 11) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_INTERLEAVE; + break; + case 'm': + switch(s[11]) { + default: + break; + case 'a': + switch(s[12]) { + default: + break; + case 'x': + switch(s[13]) { + default: + break; + case 'b': + if (strcmp("ufsz", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_BUFSIZE; + break; + case 's': + if (strcmp("ndfrag", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_SEND_FRAGMENT; + } + } + } + } + } + } + } + } + } + } + break; + case 'a': + switch(s[4]) { + default: + break; + case 'a': + switch(s[5]) { + default: + break; + case 'd': + switch(s[6]) { + default: + break; + case 'p': + if (strcmp("ad", s + 7) == 0) + return PIDX_CIPHER_PARAM_AEAD_TLS1_AAD_PAD; + break; + case '\0': + return PIDX_CIPHER_PARAM_AEAD_TLS1_AAD; + } + } + } + break; + case 'i': + switch(s[4]) { + default: + break; + case 'v': + switch(s[5]) { + default: + break; + case 'f': + if (strcmp("ixed", s + 6) == 0) + return PIDX_CIPHER_PARAM_AEAD_TLS1_IV_FIXED; + break; + case 'g': + if (strcmp("en", s + 6) == 0) + return PIDX_CIPHER_PARAM_AEAD_TLS1_GET_IV_GEN; + break; + case 'i': + if (strcmp("nv", s + 6) == 0) + return PIDX_CIPHER_PARAM_AEAD_TLS1_SET_IV_INV; + } + } + break; + case 't': + if (strcmp("ree", s + 4) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_TLSTREE; + } + } + break; + case 'p': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_TP_BASIS; + } + break; + case 'y': + if (strcmp("pe", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_TYPE; + } + break; + case 'u': + switch(s[1]) { + default: + break; + case 'k': + if (strcmp("m", s + 2) == 0) + return PIDX_KDF_PARAM_UKM; + break; + case 'p': + if (strcmp("dated-iv", s + 2) == 0) + return PIDX_CIPHER_PARAM_UPDATED_IV; + break; + case 's': + switch(s[2]) { + default: + break; + case 'e': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'b': + if (strcmp("its", s + 5) == 0) + return PIDX_CIPHER_PARAM_USE_BITS; + break; + case 'c': + if (strcmp("ofactor-flag", s + 5) == 0) + return PIDX_PKEY_PARAM_USE_COFACTOR_FLAG; + break; + case 'k': + if (strcmp("eybits", s + 5) == 0) + return PIDX_KDF_PARAM_X942_USE_KEYBITS; + break; + case 'l': + switch(s[5]) { + default: + break; + case '\0': + return PIDX_KDF_PARAM_KBKDF_USE_L; + } + break; + case 's': + if (strcmp("eparator", s + 5) == 0) + return PIDX_KDF_PARAM_KBKDF_USE_SEPARATOR; + } + break; + case '_': + switch(s[4]) { + default: + break; + case 'd': + if (strcmp("erivation_function", s + 5) == 0) + return PIDX_DRBG_PARAM_USE_DF; + break; + case 'e': + if (strcmp("tm", s + 5) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_USE_ETM; + } + } + } + } + break; + case 'v': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'l': + switch(s[3]) { + default: + break; + case 'i': + switch(s[4]) { + default: + break; + case 'd': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case 'e': + switch(s[8]) { + default: + break; + case '-': + switch(s[9]) { + default: + break; + case 'g': + switch(s[10]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_VALIDATE_G; + } + break; + case 'l': + if (strcmp("egacy", s + 10) == 0) + return PIDX_PKEY_PARAM_FFC_VALIDATE_LEGACY; + break; + case 'p': + if (strcmp("q", s + 10) == 0) + return PIDX_PKEY_PARAM_FFC_VALIDATE_PQ; + } + } + } + } + } + } + } + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'r': + switch(s[3]) { + default: + break; + case 'i': + if (strcmp("fy-message", s + 4) == 0) + return PIDX_SIGNATURE_PARAM_FIPS_VERIFY_MESSAGE; + break; + case 's': + if (strcmp("ion", s + 4) == 0) + return PIDX_PROV_PARAM_VERSION; + } + } + } + break; + case 'x': + switch(s[1]) { + default: + break; + case '9': + switch(s[2]) { + default: + break; + case '4': + if (strcmp("2kdf-key-check", s + 3) == 0) + return PIDX_PROV_PARAM_X942KDF_KEY_CHECK; + break; + case '6': + switch(s[3]) { + default: + break; + case '3': + switch(s[4]) { + default: + break; + case 'k': + switch(s[5]) { + default: + break; + case 'd': + switch(s[6]) { + default: + break; + case 'f': + switch(s[7]) { + default: + break; + case '-': + switch(s[8]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 9) == 0) + return PIDX_PROV_PARAM_X963KDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 9) == 0) + return PIDX_PROV_PARAM_X963KDF_KEY_CHECK; + } + } + } + } + } + } + } + break; + case 'c': + if (strcmp("ghash", s + 2) == 0) + return PIDX_KDF_PARAM_SSHKDF_XCGHASH; + break; + case 'o': + switch(s[2]) { + default: + break; + case 'f': + switch(s[3]) { + default: + break; + case 'l': + if (strcmp("en", s + 4) == 0) + return PIDX_DIGEST_PARAM_XOFLEN; + break; + case '\0': + return PIDX_MAC_PARAM_XOF; + } + } + break; + case 'p': + switch(s[2]) { + default: + break; + case '1': + switch(s[3]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XP1; + } + break; + case '2': + switch(s[3]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XP2; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XP; + } + break; + case 'q': + switch(s[2]) { + default: + break; + case '1': + switch(s[3]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XQ1; + } + break; + case '2': + switch(s[3]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XQ2; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XQ; + } + break; + case 't': + if (strcmp("s_standard", s + 2) == 0) + return PIDX_CIPHER_PARAM_XTS_STANDARD; + } + } + return -1; +} + +/* End of TRIE */ diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/include/internal/param_names.h b/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/include/internal/param_names.h new file mode 100644 index 00000000000000..0a0404a57e82b9 --- /dev/null +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/include/internal/param_names.h @@ -0,0 +1,469 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from include/internal/param_names.h.in + * + * Copyright 2023 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + +int ossl_param_find_pidx(const char *s); + +/* Parameter name definitions - generated by util/perl/OpenSSL/paramnames.pm */ +#define NUM_PIDX 346 + +#define PIDX_ALG_PARAM_ALGORITHM_ID 0 +#define PIDX_ALG_PARAM_ALGORITHM_ID_PARAMS 1 +#define PIDX_ALG_PARAM_CIPHER 2 +#define PIDX_ALG_PARAM_DIGEST 3 +#define PIDX_ALG_PARAM_ENGINE 4 +#define PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR 5 +#define PIDX_ALG_PARAM_MAC 6 +#define PIDX_ALG_PARAM_PROPERTIES 7 +#define PIDX_ASYM_CIPHER_PARAM_DIGEST PIDX_PKEY_PARAM_DIGEST +#define PIDX_ASYM_CIPHER_PARAM_ENGINE PIDX_PKEY_PARAM_ENGINE +#define PIDX_ASYM_CIPHER_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_ASYM_CIPHER_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_ASYM_CIPHER_PARAM_FIPS_RSA_PKCS15_PAD_DISABLED PIDX_PROV_PARAM_RSA_PKCS15_PAD_DISABLED +#define PIDX_ASYM_CIPHER_PARAM_IMPLICIT_REJECTION 8 +#define PIDX_ASYM_CIPHER_PARAM_MGF1_DIGEST PIDX_PKEY_PARAM_MGF1_DIGEST +#define PIDX_ASYM_CIPHER_PARAM_MGF1_DIGEST_PROPS PIDX_PKEY_PARAM_MGF1_PROPERTIES +#define PIDX_ASYM_CIPHER_PARAM_OAEP_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_ASYM_CIPHER_PARAM_OAEP_DIGEST_PROPS 9 +#define PIDX_ASYM_CIPHER_PARAM_OAEP_LABEL 10 +#define PIDX_ASYM_CIPHER_PARAM_PAD_MODE PIDX_PKEY_PARAM_PAD_MODE +#define PIDX_ASYM_CIPHER_PARAM_PROPERTIES PIDX_PKEY_PARAM_PROPERTIES +#define PIDX_ASYM_CIPHER_PARAM_TLS_CLIENT_VERSION 11 +#define PIDX_ASYM_CIPHER_PARAM_TLS_NEGOTIATED_VERSION 12 +#define PIDX_CAPABILITY_TLS_GROUP_ALG 13 +#define PIDX_CAPABILITY_TLS_GROUP_ID 14 +#define PIDX_CAPABILITY_TLS_GROUP_IS_KEM 15 +#define PIDX_CAPABILITY_TLS_GROUP_MAX_DTLS 16 +#define PIDX_CAPABILITY_TLS_GROUP_MAX_TLS 17 +#define PIDX_CAPABILITY_TLS_GROUP_MIN_DTLS 18 +#define PIDX_CAPABILITY_TLS_GROUP_MIN_TLS 19 +#define PIDX_CAPABILITY_TLS_GROUP_NAME 20 +#define PIDX_CAPABILITY_TLS_GROUP_NAME_INTERNAL 21 +#define PIDX_CAPABILITY_TLS_GROUP_SECURITY_BITS 22 +#define PIDX_CAPABILITY_TLS_SIGALG_CODE_POINT 23 +#define PIDX_CAPABILITY_TLS_SIGALG_HASH_NAME 24 +#define PIDX_CAPABILITY_TLS_SIGALG_HASH_OID 25 +#define PIDX_CAPABILITY_TLS_SIGALG_IANA_NAME 26 +#define PIDX_CAPABILITY_TLS_SIGALG_KEYTYPE 27 +#define PIDX_CAPABILITY_TLS_SIGALG_KEYTYPE_OID 28 +#define PIDX_CAPABILITY_TLS_SIGALG_MAX_DTLS 16 +#define PIDX_CAPABILITY_TLS_SIGALG_MAX_TLS 17 +#define PIDX_CAPABILITY_TLS_SIGALG_MIN_DTLS 18 +#define PIDX_CAPABILITY_TLS_SIGALG_MIN_TLS 19 +#define PIDX_CAPABILITY_TLS_SIGALG_NAME 29 +#define PIDX_CAPABILITY_TLS_SIGALG_OID 30 +#define PIDX_CAPABILITY_TLS_SIGALG_SECURITY_BITS 31 +#define PIDX_CAPABILITY_TLS_SIGALG_SIG_NAME 32 +#define PIDX_CAPABILITY_TLS_SIGALG_SIG_OID 33 +#define PIDX_CIPHER_PARAM_AEAD 34 +#define PIDX_CIPHER_PARAM_AEAD_IVLEN PIDX_CIPHER_PARAM_IVLEN +#define PIDX_CIPHER_PARAM_AEAD_IV_GENERATED 35 +#define PIDX_CIPHER_PARAM_AEAD_MAC_KEY 36 +#define PIDX_CIPHER_PARAM_AEAD_TAG 37 +#define PIDX_CIPHER_PARAM_AEAD_TAGLEN 38 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_AAD 39 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_AAD_PAD 40 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_GET_IV_GEN 41 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_IV_FIXED 42 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_SET_IV_INV 43 +#define PIDX_CIPHER_PARAM_ALGORITHM_ID PIDX_ALG_PARAM_ALGORITHM_ID +#define PIDX_CIPHER_PARAM_ALGORITHM_ID_PARAMS PIDX_ALG_PARAM_ALGORITHM_ID_PARAMS +#define PIDX_CIPHER_PARAM_ALGORITHM_ID_PARAMS_OLD 44 +#define PIDX_CIPHER_PARAM_BLOCK_SIZE 45 +#define PIDX_CIPHER_PARAM_CTS 46 +#define PIDX_CIPHER_PARAM_CTS_MODE 47 +#define PIDX_CIPHER_PARAM_CUSTOM_IV 48 +#define PIDX_CIPHER_PARAM_DECRYPT_ONLY 49 +#define PIDX_CIPHER_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_CIPHER_PARAM_FIPS_ENCRYPT_CHECK 50 +#define PIDX_CIPHER_PARAM_HAS_RAND_KEY 51 +#define PIDX_CIPHER_PARAM_IV 52 +#define PIDX_CIPHER_PARAM_IVLEN 53 +#define PIDX_CIPHER_PARAM_KEYLEN 54 +#define PIDX_CIPHER_PARAM_MODE 55 +#define PIDX_CIPHER_PARAM_NUM 56 +#define PIDX_CIPHER_PARAM_PADDING 57 +#define PIDX_CIPHER_PARAM_PIPELINE_AEAD_TAG 58 +#define PIDX_CIPHER_PARAM_RANDOM_KEY 59 +#define PIDX_CIPHER_PARAM_RC2_KEYBITS 60 +#define PIDX_CIPHER_PARAM_ROUNDS 61 +#define PIDX_CIPHER_PARAM_SPEED 62 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK 63 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD 64 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD_PACKLEN 65 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC 66 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_IN 67 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_LEN 68 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_INTERLEAVE 69 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_BUFSIZE 70 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_SEND_FRAGMENT 71 +#define PIDX_CIPHER_PARAM_TLS_MAC 72 +#define PIDX_CIPHER_PARAM_TLS_MAC_SIZE 73 +#define PIDX_CIPHER_PARAM_TLS_VERSION 74 +#define PIDX_CIPHER_PARAM_UPDATED_IV 75 +#define PIDX_CIPHER_PARAM_USE_BITS 76 +#define PIDX_CIPHER_PARAM_XTS_STANDARD 77 +#define PIDX_DECODER_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_DIGEST_PARAM_ALGID_ABSENT 78 +#define PIDX_DIGEST_PARAM_BLOCK_SIZE 45 +#define PIDX_DIGEST_PARAM_MICALG 79 +#define PIDX_DIGEST_PARAM_PAD_TYPE 80 +#define PIDX_DIGEST_PARAM_SIZE 81 +#define PIDX_DIGEST_PARAM_SSL3_MS 82 +#define PIDX_DIGEST_PARAM_XOF 83 +#define PIDX_DIGEST_PARAM_XOFLEN 84 +#define PIDX_DRBG_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_DRBG_PARAM_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_DRBG_PARAM_ENTROPY_REQUIRED 85 +#define PIDX_DRBG_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_DRBG_PARAM_FIPS_DIGEST_CHECK PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK +#define PIDX_DRBG_PARAM_MAC PIDX_ALG_PARAM_MAC +#define PIDX_DRBG_PARAM_MAX_ADINLEN 86 +#define PIDX_DRBG_PARAM_MAX_ENTROPYLEN 87 +#define PIDX_DRBG_PARAM_MAX_LENGTH 88 +#define PIDX_DRBG_PARAM_MAX_NONCELEN 89 +#define PIDX_DRBG_PARAM_MAX_PERSLEN 90 +#define PIDX_DRBG_PARAM_MIN_ENTROPYLEN 91 +#define PIDX_DRBG_PARAM_MIN_LENGTH 92 +#define PIDX_DRBG_PARAM_MIN_NONCELEN 93 +#define PIDX_DRBG_PARAM_PREDICTION_RESISTANCE 94 +#define PIDX_DRBG_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_DRBG_PARAM_RANDOM_DATA 95 +#define PIDX_DRBG_PARAM_RESEED_COUNTER 96 +#define PIDX_DRBG_PARAM_RESEED_REQUESTS 97 +#define PIDX_DRBG_PARAM_RESEED_TIME 98 +#define PIDX_DRBG_PARAM_RESEED_TIME_INTERVAL 99 +#define PIDX_DRBG_PARAM_SIZE 81 +#define PIDX_DRBG_PARAM_USE_DF 100 +#define PIDX_ENCODER_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_ENCODER_PARAM_ENCRYPT_LEVEL 101 +#define PIDX_ENCODER_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_ENCODER_PARAM_SAVE_PARAMETERS 102 +#define PIDX_EXCHANGE_PARAM_EC_ECDH_COFACTOR_MODE 103 +#define PIDX_EXCHANGE_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_EXCHANGE_PARAM_FIPS_DIGEST_CHECK PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK +#define PIDX_EXCHANGE_PARAM_FIPS_ECDH_COFACTOR_CHECK PIDX_PROV_PARAM_ECDH_COFACTOR_CHECK +#define PIDX_EXCHANGE_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_EXCHANGE_PARAM_KDF_DIGEST 104 +#define PIDX_EXCHANGE_PARAM_KDF_DIGEST_PROPS 105 +#define PIDX_EXCHANGE_PARAM_KDF_OUTLEN 106 +#define PIDX_EXCHANGE_PARAM_KDF_TYPE 107 +#define PIDX_EXCHANGE_PARAM_KDF_UKM 108 +#define PIDX_EXCHANGE_PARAM_PAD 109 +#define PIDX_GEN_PARAM_ITERATION 110 +#define PIDX_GEN_PARAM_POTENTIAL 111 +#define PIDX_KDF_PARAM_ARGON2_AD 112 +#define PIDX_KDF_PARAM_ARGON2_LANES 113 +#define PIDX_KDF_PARAM_ARGON2_MEMCOST 114 +#define PIDX_KDF_PARAM_ARGON2_VERSION 115 +#define PIDX_KDF_PARAM_CEK_ALG 116 +#define PIDX_KDF_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_KDF_PARAM_CONSTANT 117 +#define PIDX_KDF_PARAM_DATA 118 +#define PIDX_KDF_PARAM_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_KDF_PARAM_EARLY_CLEAN 119 +#define PIDX_KDF_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_KDF_PARAM_FIPS_DIGEST_CHECK PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK +#define PIDX_KDF_PARAM_FIPS_EMS_CHECK 120 +#define PIDX_KDF_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_KDF_PARAM_HMACDRBG_ENTROPY 121 +#define PIDX_KDF_PARAM_HMACDRBG_NONCE 122 +#define PIDX_KDF_PARAM_INFO 123 +#define PIDX_KDF_PARAM_ITER 124 +#define PIDX_KDF_PARAM_KBKDF_R 125 +#define PIDX_KDF_PARAM_KBKDF_USE_L 126 +#define PIDX_KDF_PARAM_KBKDF_USE_SEPARATOR 127 +#define PIDX_KDF_PARAM_KEY 128 +#define PIDX_KDF_PARAM_LABEL 129 +#define PIDX_KDF_PARAM_MAC PIDX_ALG_PARAM_MAC +#define PIDX_KDF_PARAM_MAC_SIZE 130 +#define PIDX_KDF_PARAM_MODE 55 +#define PIDX_KDF_PARAM_PASSWORD 131 +#define PIDX_KDF_PARAM_PKCS12_ID 132 +#define PIDX_KDF_PARAM_PKCS5 133 +#define PIDX_KDF_PARAM_PREFIX 134 +#define PIDX_KDF_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_KDF_PARAM_SALT 135 +#define PIDX_KDF_PARAM_SCRYPT_MAXMEM 136 +#define PIDX_KDF_PARAM_SCRYPT_N 137 +#define PIDX_KDF_PARAM_SCRYPT_P 138 +#define PIDX_KDF_PARAM_SCRYPT_R 125 +#define PIDX_KDF_PARAM_SECRET 139 +#define PIDX_KDF_PARAM_SEED 140 +#define PIDX_KDF_PARAM_SIZE 81 +#define PIDX_KDF_PARAM_SSHKDF_SESSION_ID 141 +#define PIDX_KDF_PARAM_SSHKDF_TYPE 142 +#define PIDX_KDF_PARAM_SSHKDF_XCGHASH 143 +#define PIDX_KDF_PARAM_THREADS 144 +#define PIDX_KDF_PARAM_UKM 145 +#define PIDX_KDF_PARAM_X942_ACVPINFO 146 +#define PIDX_KDF_PARAM_X942_PARTYUINFO 147 +#define PIDX_KDF_PARAM_X942_PARTYVINFO 148 +#define PIDX_KDF_PARAM_X942_SUPP_PRIVINFO 149 +#define PIDX_KDF_PARAM_X942_SUPP_PUBINFO 150 +#define PIDX_KDF_PARAM_X942_USE_KEYBITS 151 +#define PIDX_KEM_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_KEM_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_KEM_PARAM_IKME 152 +#define PIDX_KEM_PARAM_OPERATION 153 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_BLOCK_PADDING 154 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_HS_PADDING 155 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_MAX_EARLY_DATA 156 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_MAX_FRAG_LEN 157 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_MODE 55 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_OPTIONS 158 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_READ_AHEAD 159 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_STREAM_MAC 160 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_TLSTREE 161 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_USE_ETM 162 +#define PIDX_LIBSSL_RECORD_LAYER_READ_BUFFER_LEN 163 +#define PIDX_MAC_PARAM_BLOCK_SIZE 164 +#define PIDX_MAC_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_MAC_PARAM_CUSTOM 165 +#define PIDX_MAC_PARAM_C_ROUNDS 166 +#define PIDX_MAC_PARAM_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_MAC_PARAM_DIGEST_NOINIT 167 +#define PIDX_MAC_PARAM_DIGEST_ONESHOT 168 +#define PIDX_MAC_PARAM_D_ROUNDS 169 +#define PIDX_MAC_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_MAC_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_MAC_PARAM_FIPS_NO_SHORT_MAC PIDX_PROV_PARAM_NO_SHORT_MAC +#define PIDX_MAC_PARAM_IV 52 +#define PIDX_MAC_PARAM_KEY 128 +#define PIDX_MAC_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_MAC_PARAM_SALT 135 +#define PIDX_MAC_PARAM_SIZE 81 +#define PIDX_MAC_PARAM_TLS_DATA_SIZE 170 +#define PIDX_MAC_PARAM_XOF 83 +#define PIDX_OBJECT_PARAM_DATA 118 +#define PIDX_OBJECT_PARAM_DATA_STRUCTURE 171 +#define PIDX_OBJECT_PARAM_DATA_TYPE 172 +#define PIDX_OBJECT_PARAM_DESC 173 +#define PIDX_OBJECT_PARAM_INPUT_TYPE 174 +#define PIDX_OBJECT_PARAM_REFERENCE 175 +#define PIDX_OBJECT_PARAM_TYPE 142 +#define PIDX_PASSPHRASE_PARAM_INFO 123 +#define PIDX_PKEY_PARAM_ALGORITHM_ID PIDX_ALG_PARAM_ALGORITHM_ID +#define PIDX_PKEY_PARAM_ALGORITHM_ID_PARAMS PIDX_ALG_PARAM_ALGORITHM_ID_PARAMS +#define PIDX_PKEY_PARAM_BITS 176 +#define PIDX_PKEY_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_PKEY_PARAM_DEFAULT_DIGEST 177 +#define PIDX_PKEY_PARAM_DHKEM_IKM 178 +#define PIDX_PKEY_PARAM_DH_GENERATOR 179 +#define PIDX_PKEY_PARAM_DH_PRIV_LEN 180 +#define PIDX_PKEY_PARAM_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_PKEY_PARAM_DIGEST_SIZE 181 +#define PIDX_PKEY_PARAM_DIST_ID 182 +#define PIDX_PKEY_PARAM_EC_A 183 +#define PIDX_PKEY_PARAM_EC_B 184 +#define PIDX_PKEY_PARAM_EC_CHAR2_M 185 +#define PIDX_PKEY_PARAM_EC_CHAR2_PP_K1 186 +#define PIDX_PKEY_PARAM_EC_CHAR2_PP_K2 187 +#define PIDX_PKEY_PARAM_EC_CHAR2_PP_K3 188 +#define PIDX_PKEY_PARAM_EC_CHAR2_TP_BASIS 189 +#define PIDX_PKEY_PARAM_EC_CHAR2_TYPE 190 +#define PIDX_PKEY_PARAM_EC_COFACTOR 191 +#define PIDX_PKEY_PARAM_EC_DECODED_FROM_EXPLICIT_PARAMS 192 +#define PIDX_PKEY_PARAM_EC_ENCODING 193 +#define PIDX_PKEY_PARAM_EC_FIELD_TYPE 194 +#define PIDX_PKEY_PARAM_EC_GENERATOR 195 +#define PIDX_PKEY_PARAM_EC_GROUP_CHECK_TYPE 196 +#define PIDX_PKEY_PARAM_EC_INCLUDE_PUBLIC 197 +#define PIDX_PKEY_PARAM_EC_ORDER 198 +#define PIDX_PKEY_PARAM_EC_P 138 +#define PIDX_PKEY_PARAM_EC_POINT_CONVERSION_FORMAT 199 +#define PIDX_PKEY_PARAM_EC_PUB_X 200 +#define PIDX_PKEY_PARAM_EC_PUB_Y 201 +#define PIDX_PKEY_PARAM_EC_SEED 140 +#define PIDX_PKEY_PARAM_ENCODED_PUBLIC_KEY 202 +#define PIDX_PKEY_PARAM_ENGINE PIDX_ALG_PARAM_ENGINE +#define PIDX_PKEY_PARAM_FFC_COFACTOR 203 +#define PIDX_PKEY_PARAM_FFC_DIGEST PIDX_PKEY_PARAM_DIGEST +#define PIDX_PKEY_PARAM_FFC_DIGEST_PROPS PIDX_PKEY_PARAM_PROPERTIES +#define PIDX_PKEY_PARAM_FFC_G 204 +#define PIDX_PKEY_PARAM_FFC_GINDEX 205 +#define PIDX_PKEY_PARAM_FFC_H 206 +#define PIDX_PKEY_PARAM_FFC_P 138 +#define PIDX_PKEY_PARAM_FFC_PBITS 207 +#define PIDX_PKEY_PARAM_FFC_PCOUNTER 208 +#define PIDX_PKEY_PARAM_FFC_Q 209 +#define PIDX_PKEY_PARAM_FFC_QBITS 210 +#define PIDX_PKEY_PARAM_FFC_SEED 140 +#define PIDX_PKEY_PARAM_FFC_TYPE 142 +#define PIDX_PKEY_PARAM_FFC_VALIDATE_G 211 +#define PIDX_PKEY_PARAM_FFC_VALIDATE_LEGACY 212 +#define PIDX_PKEY_PARAM_FFC_VALIDATE_PQ 213 +#define PIDX_PKEY_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK 214 +#define PIDX_PKEY_PARAM_FIPS_KEY_CHECK 215 +#define PIDX_PKEY_PARAM_FIPS_SIGN_CHECK 216 +#define PIDX_PKEY_PARAM_GROUP_NAME 217 +#define PIDX_PKEY_PARAM_IMPLICIT_REJECTION 8 +#define PIDX_PKEY_PARAM_MANDATORY_DIGEST 218 +#define PIDX_PKEY_PARAM_MASKGENFUNC 219 +#define PIDX_PKEY_PARAM_MAX_SIZE 220 +#define PIDX_PKEY_PARAM_MGF1_DIGEST 221 +#define PIDX_PKEY_PARAM_MGF1_PROPERTIES 222 +#define PIDX_PKEY_PARAM_ML_DSA_INPUT_FORMATS 223 +#define PIDX_PKEY_PARAM_ML_DSA_OUTPUT_FORMATS 224 +#define PIDX_PKEY_PARAM_ML_DSA_PREFER_SEED 225 +#define PIDX_PKEY_PARAM_ML_DSA_RETAIN_SEED 226 +#define PIDX_PKEY_PARAM_ML_DSA_SEED 140 +#define PIDX_PKEY_PARAM_ML_KEM_IMPORT_PCT_TYPE 227 +#define PIDX_PKEY_PARAM_ML_KEM_INPUT_FORMATS 228 +#define PIDX_PKEY_PARAM_ML_KEM_OUTPUT_FORMATS 229 +#define PIDX_PKEY_PARAM_ML_KEM_PREFER_SEED 230 +#define PIDX_PKEY_PARAM_ML_KEM_RETAIN_SEED 231 +#define PIDX_PKEY_PARAM_ML_KEM_SEED 140 +#define PIDX_PKEY_PARAM_PAD_MODE 232 +#define PIDX_PKEY_PARAM_PRIV_KEY 233 +#define PIDX_PKEY_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_PKEY_PARAM_PUB_KEY 234 +#define PIDX_PKEY_PARAM_RSA_BITS PIDX_PKEY_PARAM_BITS +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT 235 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT1 236 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT2 237 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT3 238 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT4 239 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT5 240 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT6 241 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT7 242 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT8 243 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT9 244 +#define PIDX_PKEY_PARAM_RSA_D 245 +#define PIDX_PKEY_PARAM_RSA_DERIVE_FROM_PQ 246 +#define PIDX_PKEY_PARAM_RSA_DIGEST PIDX_PKEY_PARAM_DIGEST +#define PIDX_PKEY_PARAM_RSA_DIGEST_PROPS PIDX_PKEY_PARAM_PROPERTIES +#define PIDX_PKEY_PARAM_RSA_E 247 +#define PIDX_PKEY_PARAM_RSA_EXPONENT 248 +#define PIDX_PKEY_PARAM_RSA_EXPONENT1 249 +#define PIDX_PKEY_PARAM_RSA_EXPONENT10 250 +#define PIDX_PKEY_PARAM_RSA_EXPONENT2 251 +#define PIDX_PKEY_PARAM_RSA_EXPONENT3 252 +#define PIDX_PKEY_PARAM_RSA_EXPONENT4 253 +#define PIDX_PKEY_PARAM_RSA_EXPONENT5 254 +#define PIDX_PKEY_PARAM_RSA_EXPONENT6 255 +#define PIDX_PKEY_PARAM_RSA_EXPONENT7 256 +#define PIDX_PKEY_PARAM_RSA_EXPONENT8 257 +#define PIDX_PKEY_PARAM_RSA_EXPONENT9 258 +#define PIDX_PKEY_PARAM_RSA_FACTOR 259 +#define PIDX_PKEY_PARAM_RSA_FACTOR1 260 +#define PIDX_PKEY_PARAM_RSA_FACTOR10 261 +#define PIDX_PKEY_PARAM_RSA_FACTOR2 262 +#define PIDX_PKEY_PARAM_RSA_FACTOR3 263 +#define PIDX_PKEY_PARAM_RSA_FACTOR4 264 +#define PIDX_PKEY_PARAM_RSA_FACTOR5 265 +#define PIDX_PKEY_PARAM_RSA_FACTOR6 266 +#define PIDX_PKEY_PARAM_RSA_FACTOR7 267 +#define PIDX_PKEY_PARAM_RSA_FACTOR8 268 +#define PIDX_PKEY_PARAM_RSA_FACTOR9 269 +#define PIDX_PKEY_PARAM_RSA_MASKGENFUNC PIDX_PKEY_PARAM_MASKGENFUNC +#define PIDX_PKEY_PARAM_RSA_MGF1_DIGEST PIDX_PKEY_PARAM_MGF1_DIGEST +#define PIDX_PKEY_PARAM_RSA_N 137 +#define PIDX_PKEY_PARAM_RSA_PRIMES 270 +#define PIDX_PKEY_PARAM_RSA_PSS_SALTLEN 271 +#define PIDX_PKEY_PARAM_RSA_TEST_P1 272 +#define PIDX_PKEY_PARAM_RSA_TEST_P2 273 +#define PIDX_PKEY_PARAM_RSA_TEST_Q1 274 +#define PIDX_PKEY_PARAM_RSA_TEST_Q2 275 +#define PIDX_PKEY_PARAM_RSA_TEST_XP 276 +#define PIDX_PKEY_PARAM_RSA_TEST_XP1 277 +#define PIDX_PKEY_PARAM_RSA_TEST_XP2 278 +#define PIDX_PKEY_PARAM_RSA_TEST_XQ 279 +#define PIDX_PKEY_PARAM_RSA_TEST_XQ1 280 +#define PIDX_PKEY_PARAM_RSA_TEST_XQ2 281 +#define PIDX_PKEY_PARAM_SECURITY_BITS 282 +#define PIDX_PKEY_PARAM_SLH_DSA_SEED 140 +#define PIDX_PKEY_PARAM_USE_COFACTOR_ECDH PIDX_PKEY_PARAM_USE_COFACTOR_FLAG +#define PIDX_PKEY_PARAM_USE_COFACTOR_FLAG 283 +#define PIDX_PROV_PARAM_BUILDINFO 284 +#define PIDX_PROV_PARAM_CORE_MODULE_FILENAME 285 +#define PIDX_PROV_PARAM_CORE_PROV_NAME 286 +#define PIDX_PROV_PARAM_CORE_VERSION 287 +#define PIDX_PROV_PARAM_DRBG_TRUNC_DIGEST 288 +#define PIDX_PROV_PARAM_DSA_SIGN_DISABLED 289 +#define PIDX_PROV_PARAM_ECDH_COFACTOR_CHECK 290 +#define PIDX_PROV_PARAM_HKDF_DIGEST_CHECK 291 +#define PIDX_PROV_PARAM_HKDF_KEY_CHECK 292 +#define PIDX_PROV_PARAM_HMAC_KEY_CHECK 293 +#define PIDX_PROV_PARAM_KBKDF_KEY_CHECK 294 +#define PIDX_PROV_PARAM_KMAC_KEY_CHECK 295 +#define PIDX_PROV_PARAM_NAME 296 +#define PIDX_PROV_PARAM_NO_SHORT_MAC 297 +#define PIDX_PROV_PARAM_PBKDF2_LOWER_BOUND_CHECK 298 +#define PIDX_PROV_PARAM_RSA_PKCS15_PAD_DISABLED 299 +#define PIDX_PROV_PARAM_RSA_PSS_SALTLEN_CHECK 300 +#define PIDX_PROV_PARAM_RSA_SIGN_X931_PAD_DISABLED 301 +#define PIDX_PROV_PARAM_SECURITY_CHECKS 302 +#define PIDX_PROV_PARAM_SELF_TEST_DESC 303 +#define PIDX_PROV_PARAM_SELF_TEST_PHASE 304 +#define PIDX_PROV_PARAM_SELF_TEST_TYPE 305 +#define PIDX_PROV_PARAM_SIGNATURE_DIGEST_CHECK 306 +#define PIDX_PROV_PARAM_SSHKDF_DIGEST_CHECK 307 +#define PIDX_PROV_PARAM_SSHKDF_KEY_CHECK 308 +#define PIDX_PROV_PARAM_SSKDF_DIGEST_CHECK 309 +#define PIDX_PROV_PARAM_SSKDF_KEY_CHECK 310 +#define PIDX_PROV_PARAM_STATUS 311 +#define PIDX_PROV_PARAM_TDES_ENCRYPT_DISABLED 312 +#define PIDX_PROV_PARAM_TLS13_KDF_DIGEST_CHECK 313 +#define PIDX_PROV_PARAM_TLS13_KDF_KEY_CHECK 314 +#define PIDX_PROV_PARAM_TLS1_PRF_DIGEST_CHECK 315 +#define PIDX_PROV_PARAM_TLS1_PRF_EMS_CHECK 316 +#define PIDX_PROV_PARAM_TLS1_PRF_KEY_CHECK 317 +#define PIDX_PROV_PARAM_VERSION 115 +#define PIDX_PROV_PARAM_X942KDF_KEY_CHECK 318 +#define PIDX_PROV_PARAM_X963KDF_DIGEST_CHECK 319 +#define PIDX_PROV_PARAM_X963KDF_KEY_CHECK 320 +#define PIDX_RAND_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_RAND_PARAM_GENERATE 321 +#define PIDX_RAND_PARAM_MAX_REQUEST 322 +#define PIDX_RAND_PARAM_STATE 323 +#define PIDX_RAND_PARAM_STRENGTH 324 +#define PIDX_RAND_PARAM_TEST_ENTROPY 325 +#define PIDX_RAND_PARAM_TEST_NONCE 326 +#define PIDX_SIGNATURE_PARAM_ADD_RANDOM 327 +#define PIDX_SIGNATURE_PARAM_ALGORITHM_ID PIDX_PKEY_PARAM_ALGORITHM_ID +#define PIDX_SIGNATURE_PARAM_ALGORITHM_ID_PARAMS PIDX_PKEY_PARAM_ALGORITHM_ID_PARAMS +#define PIDX_SIGNATURE_PARAM_CONTEXT_STRING 328 +#define PIDX_SIGNATURE_PARAM_DETERMINISTIC 329 +#define PIDX_SIGNATURE_PARAM_DIGEST PIDX_PKEY_PARAM_DIGEST +#define PIDX_SIGNATURE_PARAM_DIGEST_SIZE PIDX_PKEY_PARAM_DIGEST_SIZE +#define PIDX_SIGNATURE_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_SIGNATURE_PARAM_FIPS_DIGEST_CHECK PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK +#define PIDX_SIGNATURE_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_SIGNATURE_PARAM_FIPS_RSA_PSS_SALTLEN_CHECK 300 +#define PIDX_SIGNATURE_PARAM_FIPS_SIGN_CHECK PIDX_PKEY_PARAM_FIPS_SIGN_CHECK +#define PIDX_SIGNATURE_PARAM_FIPS_SIGN_X931_PAD_CHECK 330 +#define PIDX_SIGNATURE_PARAM_FIPS_VERIFY_MESSAGE 331 +#define PIDX_SIGNATURE_PARAM_INSTANCE 332 +#define PIDX_SIGNATURE_PARAM_KAT 333 +#define PIDX_SIGNATURE_PARAM_MESSAGE_ENCODING 334 +#define PIDX_SIGNATURE_PARAM_MGF1_DIGEST PIDX_PKEY_PARAM_MGF1_DIGEST +#define PIDX_SIGNATURE_PARAM_MGF1_PROPERTIES PIDX_PKEY_PARAM_MGF1_PROPERTIES +#define PIDX_SIGNATURE_PARAM_MU 335 +#define PIDX_SIGNATURE_PARAM_NONCE_TYPE 336 +#define PIDX_SIGNATURE_PARAM_PAD_MODE PIDX_PKEY_PARAM_PAD_MODE +#define PIDX_SIGNATURE_PARAM_PROPERTIES PIDX_PKEY_PARAM_PROPERTIES +#define PIDX_SIGNATURE_PARAM_PSS_SALTLEN 271 +#define PIDX_SIGNATURE_PARAM_SIGNATURE 337 +#define PIDX_SIGNATURE_PARAM_TEST_ENTROPY 338 +#define PIDX_SKEY_PARAM_KEY_LENGTH 339 +#define PIDX_SKEY_PARAM_RAW_BYTES 340 +#define PIDX_STORE_PARAM_ALIAS 341 +#define PIDX_STORE_PARAM_DIGEST 3 +#define PIDX_STORE_PARAM_EXPECT 342 +#define PIDX_STORE_PARAM_FINGERPRINT 343 +#define PIDX_STORE_PARAM_INPUT_TYPE 174 +#define PIDX_STORE_PARAM_ISSUER 296 +#define PIDX_STORE_PARAM_PROPERTIES 7 +#define PIDX_STORE_PARAM_SERIAL 344 +#define PIDX_STORE_PARAM_SUBJECT 345 diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/include/openssl/asn1.h b/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/include/openssl/asn1.h index 21ff58e3d803d4..15e9e44674b0f3 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/include/openssl/asn1.h +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/include/openssl/asn1.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/asn1.h.in * - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -21,6 +21,9 @@ # define HEADER_ASN1_H # endif +# ifndef OPENSSL_NO_STDIO +# include +# endif # include # include # include @@ -50,14 +53,14 @@ extern "C" { # define V_ASN1_PRIMITIVE_TAG 0x1f # define V_ASN1_PRIMATIVE_TAG /*compat*/ V_ASN1_PRIMITIVE_TAG -# define V_ASN1_APP_CHOOSE -2/* let the recipient choose */ -# define V_ASN1_OTHER -3/* used in ASN1_TYPE */ -# define V_ASN1_ANY -4/* used in ASN1 template code */ +# define V_ASN1_APP_CHOOSE -2 /* let the recipient choose */ +# define V_ASN1_OTHER -3 /* used in ASN1_TYPE */ +# define V_ASN1_ANY -4 /* used in ASN1 template code */ # define V_ASN1_UNDEF -1 /* ASN.1 tag values */ # define V_ASN1_EOC 0 -# define V_ASN1_BOOLEAN 1 /**/ +# define V_ASN1_BOOLEAN 1 # define V_ASN1_INTEGER 2 # define V_ASN1_BIT_STRING 3 # define V_ASN1_OCTET_STRING 4 @@ -70,19 +73,19 @@ extern "C" { # define V_ASN1_UTF8STRING 12 # define V_ASN1_SEQUENCE 16 # define V_ASN1_SET 17 -# define V_ASN1_NUMERICSTRING 18 /**/ +# define V_ASN1_NUMERICSTRING 18 # define V_ASN1_PRINTABLESTRING 19 # define V_ASN1_T61STRING 20 -# define V_ASN1_TELETEXSTRING 20/* alias */ -# define V_ASN1_VIDEOTEXSTRING 21 /**/ +# define V_ASN1_TELETEXSTRING 20 /* alias */ +# define V_ASN1_VIDEOTEXSTRING 21 # define V_ASN1_IA5STRING 22 # define V_ASN1_UTCTIME 23 -# define V_ASN1_GENERALIZEDTIME 24 /**/ -# define V_ASN1_GRAPHICSTRING 25 /**/ -# define V_ASN1_ISO64STRING 26 /**/ -# define V_ASN1_VISIBLESTRING 26/* alias */ -# define V_ASN1_GENERALSTRING 27 /**/ -# define V_ASN1_UNIVERSALSTRING 28 /**/ +# define V_ASN1_GENERALIZEDTIME 24 +# define V_ASN1_GRAPHICSTRING 25 +# define V_ASN1_ISO64STRING 26 +# define V_ASN1_VISIBLESTRING 26 /* alias */ +# define V_ASN1_GENERALSTRING 27 +# define V_ASN1_UNIVERSALSTRING 28 # define V_ASN1_BMPSTRING 30 /* @@ -155,7 +158,7 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_ALGOR, X509_ALGOR, X509_ALGOR) -# define ASN1_STRING_FLAG_BITS_LEFT 0x08/* Set if 0x07 has bits left value */ +# define ASN1_STRING_FLAG_BITS_LEFT 0x08 /* Set if 0x07 has bits left value */ /* * This indicates that the ASN1_STRING is not a real value but just a place * holder for the location where indefinite length constructed data should be @@ -275,7 +278,7 @@ typedef struct ASN1_TLC_st ASN1_TLC; /* This is just an opaque pointer */ typedef struct ASN1_VALUE_st ASN1_VALUE; -/* Declare ASN1 functions: the implement macro in in asn1t.h */ +/* Declare ASN1 functions: the implement macro is in asn1t.h */ /* * The mysterious 'extern' that's passed to some macros is innocuous, @@ -368,6 +371,7 @@ typedef struct ASN1_VALUE_st ASN1_VALUE; typedef void *d2i_of_void(void **, const unsigned char **, long); typedef int i2d_of_void(const void *, unsigned char **); +typedef int OSSL_i2d_of_void_ctx(const void *, unsigned char **, void *vctx); /*- * The following macros and typedefs allow an ASN1_ITEM @@ -996,6 +1000,8 @@ int ASN1_TYPE_get_int_octetstring(const ASN1_TYPE *a, long *num, unsigned char *data, int max_len); void *ASN1_item_unpack(const ASN1_STRING *oct, const ASN1_ITEM *it); +void *ASN1_item_unpack_ex(const ASN1_STRING *oct, const ASN1_ITEM *it, + OSSL_LIB_CTX *libctx, const char *propq); ASN1_STRING *ASN1_item_pack(void *obj, const ASN1_ITEM *it, ASN1_OCTET_STRING **oct); diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/include/openssl/bio.h b/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/include/openssl/bio.h index f9aa74731c833c..e02f867beb0ec0 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/include/openssl/bio.h +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/include/openssl/bio.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/bio.h.in * - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -67,8 +67,13 @@ extern "C" { # define BIO_TYPE_DGRAM_SCTP (24|BIO_TYPE_SOURCE_SINK|BIO_TYPE_DESCRIPTOR) # endif # define BIO_TYPE_CORE_TO_PROV (25|BIO_TYPE_SOURCE_SINK) +# define BIO_TYPE_DGRAM_PAIR (26|BIO_TYPE_SOURCE_SINK) +# define BIO_TYPE_DGRAM_MEM (27|BIO_TYPE_SOURCE_SINK) +/* Custom type starting index returned by BIO_get_new_index() */ #define BIO_TYPE_START 128 +/* Custom type maximum index that can be returned by BIO_get_new_index() */ +#define BIO_TYPE_MASK 0xFF /* * BIO_FILENAME_READ|BIO_CLOSE to open or close on free. @@ -171,6 +176,31 @@ extern "C" { # define BIO_CTRL_SET_INDENT 80 # define BIO_CTRL_GET_INDENT 81 +# define BIO_CTRL_DGRAM_GET_LOCAL_ADDR_CAP 82 +# define BIO_CTRL_DGRAM_GET_LOCAL_ADDR_ENABLE 83 +# define BIO_CTRL_DGRAM_SET_LOCAL_ADDR_ENABLE 84 +# define BIO_CTRL_DGRAM_GET_EFFECTIVE_CAPS 85 +# define BIO_CTRL_DGRAM_GET_CAPS 86 +# define BIO_CTRL_DGRAM_SET_CAPS 87 +# define BIO_CTRL_DGRAM_GET_NO_TRUNC 88 +# define BIO_CTRL_DGRAM_SET_NO_TRUNC 89 + +/* + * internal BIO: + * # define BIO_CTRL_SET_KTLS_TX_ZEROCOPY_SENDFILE 90 + */ + +# define BIO_CTRL_GET_RPOLL_DESCRIPTOR 91 +# define BIO_CTRL_GET_WPOLL_DESCRIPTOR 92 +# define BIO_CTRL_DGRAM_DETECT_PEER_ADDR 93 +# define BIO_CTRL_DGRAM_SET0_LOCAL_ADDR 94 + +# define BIO_DGRAM_CAP_NONE 0U +# define BIO_DGRAM_CAP_HANDLES_SRC_ADDR (1U << 0) +# define BIO_DGRAM_CAP_HANDLES_DST_ADDR (1U << 1) +# define BIO_DGRAM_CAP_PROVIDES_SRC_ADDR (1U << 2) +# define BIO_DGRAM_CAP_PROVIDES_DST_ADDR (1U << 3) + # ifndef OPENSSL_NO_KTLS # define BIO_get_ktls_send(b) \ (BIO_ctrl(b, BIO_CTRL_GET_KTLS_SEND, 0, NULL) > 0) @@ -208,7 +238,7 @@ extern "C" { # define BIO_FLAGS_NONCLEAR_RST 0x400 # define BIO_FLAGS_IN_EOF 0x800 -/* the BIO FLAGS values 0x1000 to 0x4000 are reserved for internal KTLS flags */ +/* the BIO FLAGS values 0x1000 to 0x8000 are reserved for internal KTLS flags */ typedef union bio_addr_st BIO_ADDR; typedef struct bio_addrinfo_st BIO_ADDRINFO; @@ -256,12 +286,14 @@ void BIO_clear_flags(BIO *b, int flags); # define BIO_RR_ACCEPT 0x03 /* These are passed by the BIO callback */ -# define BIO_CB_FREE 0x01 -# define BIO_CB_READ 0x02 -# define BIO_CB_WRITE 0x03 -# define BIO_CB_PUTS 0x04 -# define BIO_CB_GETS 0x05 -# define BIO_CB_CTRL 0x06 +# define BIO_CB_FREE 0x01 +# define BIO_CB_READ 0x02 +# define BIO_CB_WRITE 0x03 +# define BIO_CB_PUTS 0x04 +# define BIO_CB_GETS 0x05 +# define BIO_CB_CTRL 0x06 +# define BIO_CB_RECVMMSG 0x07 +# define BIO_CB_SENDMMSG 0x08 /* * The callback is called before and after the underling operation, The @@ -362,6 +394,36 @@ struct bio_dgram_sctp_prinfo { }; # endif +/* BIO_sendmmsg/BIO_recvmmsg-related definitions */ +typedef struct bio_msg_st { + void *data; + size_t data_len; + BIO_ADDR *peer, *local; + uint64_t flags; +} BIO_MSG; + +typedef struct bio_mmsg_cb_args_st { + BIO_MSG *msg; + size_t stride, num_msg; + uint64_t flags; + size_t *msgs_processed; +} BIO_MMSG_CB_ARGS; + +#define BIO_POLL_DESCRIPTOR_TYPE_NONE 0 +#define BIO_POLL_DESCRIPTOR_TYPE_SOCK_FD 1 +#define BIO_POLL_DESCRIPTOR_TYPE_SSL 2 +#define BIO_POLL_DESCRIPTOR_CUSTOM_START 8192 + +typedef struct bio_poll_descriptor_st { + uint32_t type; + union { + int fd; + void *custom; + uintptr_t custom_ui; + SSL *ssl; + } value; +} BIO_POLL_DESCRIPTOR; + /* * #define BIO_CONN_get_param_hostname BIO_ctrl */ @@ -428,10 +490,17 @@ struct bio_dgram_sctp_prinfo { # define BIO_C_SET_CONNECT_MODE 155 +# define BIO_C_SET_TFO 156 /* like BIO_C_SET_NBIO */ + +# define BIO_C_SET_SOCK_TYPE 157 +# define BIO_C_GET_SOCK_TYPE 158 +# define BIO_C_GET_DGRAM_BIO 159 + # define BIO_set_app_data(s,arg) BIO_set_ex_data(s,0,arg) # define BIO_get_app_data(s) BIO_get_ex_data(s,0) -# define BIO_set_nbio(b,n) BIO_ctrl(b,BIO_C_SET_NBIO,(n),NULL) +# define BIO_set_nbio(b,n) BIO_ctrl(b,BIO_C_SET_NBIO,(n),NULL) +# define BIO_set_tfo(b,n) BIO_ctrl(b,BIO_C_SET_TFO,(n),NULL) # ifndef OPENSSL_NO_SOCK /* IP families we support, for BIO_s_connect() and BIO_s_accept() */ @@ -452,7 +521,11 @@ struct bio_dgram_sctp_prinfo { # define BIO_get_conn_port(b) ((const char *)BIO_ptr_ctrl(b,BIO_C_GET_CONNECT,1)) # define BIO_get_conn_address(b) ((const BIO_ADDR *)BIO_ptr_ctrl(b,BIO_C_GET_CONNECT,2)) # define BIO_get_conn_ip_family(b) BIO_ctrl(b,BIO_C_GET_CONNECT,3,NULL) +# define BIO_get_conn_mode(b) BIO_ctrl(b,BIO_C_GET_CONNECT,4,NULL) # define BIO_set_conn_mode(b,n) BIO_ctrl(b,BIO_C_SET_CONNECT_MODE,(n),NULL) +# define BIO_set_sock_type(b,t) BIO_ctrl(b,BIO_C_SET_SOCK_TYPE,(t),NULL) +# define BIO_get_sock_type(b) BIO_ctrl(b,BIO_C_GET_SOCK_TYPE,0,NULL) +# define BIO_get0_dgram_bio(b, p) BIO_ctrl(b,BIO_C_GET_DGRAM_BIO,0,(void *)(BIO **)(p)) /* BIO_s_accept() */ # define BIO_set_accept_name(b,name) BIO_ctrl(b,BIO_C_SET_ACCEPT,0, \ @@ -469,6 +542,7 @@ struct bio_dgram_sctp_prinfo { (char *)(bio)) # define BIO_set_accept_ip_family(b,f) BIO_int_ctrl(b,BIO_C_SET_ACCEPT,4,f) # define BIO_get_accept_ip_family(b) BIO_ctrl(b,BIO_C_GET_ACCEPT,4,NULL) +# define BIO_set_tfo_accept(b,n) BIO_ctrl(b,BIO_C_SET_ACCEPT,5,(n)?(void *)"a":NULL) /* Aliases kept for backward compatibility */ # define BIO_BIND_NORMAL 0 @@ -596,8 +670,32 @@ int BIO_ctrl_reset_read_request(BIO *b); (int)BIO_ctrl(b, BIO_CTRL_DGRAM_GET_PEER, 0, (char *)(peer)) # define BIO_dgram_set_peer(b,peer) \ (int)BIO_ctrl(b, BIO_CTRL_DGRAM_SET_PEER, 0, (char *)(peer)) +# define BIO_dgram_detect_peer_addr(b,peer) \ + (int)BIO_ctrl(b, BIO_CTRL_DGRAM_DETECT_PEER_ADDR, 0, (char *)(peer)) # define BIO_dgram_get_mtu_overhead(b) \ (unsigned int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_MTU_OVERHEAD, 0, NULL) +# define BIO_dgram_get_local_addr_cap(b) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_LOCAL_ADDR_CAP, 0, NULL) +# define BIO_dgram_get_local_addr_enable(b, penable) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_LOCAL_ADDR_ENABLE, 0, (char *)(penable)) +# define BIO_dgram_set_local_addr_enable(b, enable) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET_LOCAL_ADDR_ENABLE, (enable), NULL) +# define BIO_dgram_get_effective_caps(b) \ + (uint32_t)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_EFFECTIVE_CAPS, 0, NULL) +# define BIO_dgram_get_caps(b) \ + (uint32_t)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_CAPS, 0, NULL) +# define BIO_dgram_set_caps(b, caps) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET_CAPS, (long)(caps), NULL) +# define BIO_dgram_get_no_trunc(b) \ + (unsigned int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_NO_TRUNC, 0, NULL) +# define BIO_dgram_set_no_trunc(b, enable) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET_NO_TRUNC, (enable), NULL) +# define BIO_dgram_get_mtu(b) \ + (unsigned int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_MTU, 0, NULL) +# define BIO_dgram_set_mtu(b, mtu) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET_MTU, (mtu), NULL) +# define BIO_dgram_set0_local_addr(b, addr) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET0_LOCAL_ADDR, 0, (addr)) /* ctrl macros for BIO_f_prefix */ # define BIO_set_prefix(b,p) BIO_ctrl((b), BIO_CTRL_SET_PREFIX, 0, (void *)(p)) @@ -640,10 +738,18 @@ void BIO_vfree(BIO *a); int BIO_up_ref(BIO *a); int BIO_read(BIO *b, void *data, int dlen); int BIO_read_ex(BIO *b, void *data, size_t dlen, size_t *readbytes); +__owur int BIO_recvmmsg(BIO *b, BIO_MSG *msg, + size_t stride, size_t num_msg, uint64_t flags, + size_t *msgs_processed); int BIO_gets(BIO *bp, char *buf, int size); int BIO_get_line(BIO *bio, char *buf, int size); int BIO_write(BIO *b, const void *data, int dlen); int BIO_write_ex(BIO *b, const void *data, size_t dlen, size_t *written); +__owur int BIO_sendmmsg(BIO *b, BIO_MSG *msg, + size_t stride, size_t num_msg, uint64_t flags, + size_t *msgs_processed); +__owur int BIO_get_rpoll_descriptor(BIO *b, BIO_POLL_DESCRIPTOR *desc); +__owur int BIO_get_wpoll_descriptor(BIO *b, BIO_POLL_DESCRIPTOR *desc); int BIO_puts(BIO *bp, const char *buf); int BIO_indent(BIO *b, int indent, int max); long BIO_ctrl(BIO *bp, int cmd, long larg, void *parg); @@ -667,6 +773,9 @@ int BIO_nwrite0(BIO *bio, char **buf); int BIO_nwrite(BIO *bio, char **buf, int num); const BIO_METHOD *BIO_s_mem(void); +# ifndef OPENSSL_NO_DGRAM +const BIO_METHOD *BIO_s_dgram_mem(void); +# endif const BIO_METHOD *BIO_s_secmem(void); BIO *BIO_new_mem_buf(const void *buf, int len); # ifndef OPENSSL_NO_SOCK @@ -686,6 +795,7 @@ const BIO_METHOD *BIO_f_nbio_test(void); const BIO_METHOD *BIO_f_prefix(void); const BIO_METHOD *BIO_s_core(void); # ifndef OPENSSL_NO_DGRAM +const BIO_METHOD *BIO_s_dgram_pair(void); const BIO_METHOD *BIO_s_datagram(void); int BIO_dgram_non_fatal_error(int error); BIO *BIO_new_dgram(int fd, int close_flag); @@ -704,6 +814,7 @@ int BIO_dgram_sctp_msg_waiting(BIO *b); # ifndef OPENSSL_NO_SOCK int BIO_sock_should_retry(int i); int BIO_sock_non_fatal_error(int error); +int BIO_err_is_non_fatal(unsigned int errcode); int BIO_socket_wait(int fd, int for_read, time_t max_time); # endif int BIO_wait(BIO *bio, time_t max_time, unsigned int nap_milliseconds); @@ -726,6 +837,8 @@ int BIO_hex_string(BIO *out, int indent, int width, const void *data, # ifndef OPENSSL_NO_SOCK BIO_ADDR *BIO_ADDR_new(void); +int BIO_ADDR_copy(BIO_ADDR *dst, const BIO_ADDR *src); +BIO_ADDR *BIO_ADDR_dup(const BIO_ADDR *ap); int BIO_ADDR_rawmake(BIO_ADDR *ap, int family, const void *where, size_t wherelen, unsigned short port); void BIO_ADDR_free(BIO_ADDR *); @@ -788,6 +901,7 @@ int BIO_sock_info(int sock, # define BIO_SOCK_KEEPALIVE 0x04 # define BIO_SOCK_NONBLOCK 0x08 # define BIO_SOCK_NODELAY 0x10 +# define BIO_SOCK_TFO 0x20 int BIO_socket(int domain, int socktype, int protocol, int options); int BIO_connect(int sock, const BIO_ADDR *addr, int options); @@ -805,6 +919,11 @@ BIO *BIO_new_fd(int fd, int close_flag); int BIO_new_bio_pair(BIO **bio1, size_t writebuf1, BIO **bio2, size_t writebuf2); +# ifndef OPENSSL_NO_DGRAM +int BIO_new_bio_dgram_pair(BIO **bio1, size_t writebuf1, + BIO **bio2, size_t writebuf2); +# endif + /* * If successful, returns 1 and in *bio1, *bio2 two BIO pair endpoints. * Otherwise returns 0 and sets *bio1 and *bio2 to NULL. Size 0 uses default @@ -849,38 +968,54 @@ ossl_bio__attr__((__format__(ossl_bio__printf__, 3, 0))); BIO_METHOD *BIO_meth_new(int type, const char *name); void BIO_meth_free(BIO_METHOD *biom); -int (*BIO_meth_get_write(const BIO_METHOD *biom)) (BIO *, const char *, int); -int (*BIO_meth_get_write_ex(const BIO_METHOD *biom)) (BIO *, const char *, size_t, - size_t *); int BIO_meth_set_write(BIO_METHOD *biom, int (*write) (BIO *, const char *, int)); int BIO_meth_set_write_ex(BIO_METHOD *biom, int (*bwrite) (BIO *, const char *, size_t, size_t *)); -int (*BIO_meth_get_read(const BIO_METHOD *biom)) (BIO *, char *, int); -int (*BIO_meth_get_read_ex(const BIO_METHOD *biom)) (BIO *, char *, size_t, size_t *); +int BIO_meth_set_sendmmsg(BIO_METHOD *biom, + int (*f) (BIO *, BIO_MSG *, size_t, size_t, + uint64_t, size_t *)); int BIO_meth_set_read(BIO_METHOD *biom, int (*read) (BIO *, char *, int)); int BIO_meth_set_read_ex(BIO_METHOD *biom, int (*bread) (BIO *, char *, size_t, size_t *)); -int (*BIO_meth_get_puts(const BIO_METHOD *biom)) (BIO *, const char *); +int BIO_meth_set_recvmmsg(BIO_METHOD *biom, + int (*f) (BIO *, BIO_MSG *, size_t, size_t, + uint64_t, size_t *)); int BIO_meth_set_puts(BIO_METHOD *biom, int (*puts) (BIO *, const char *)); -int (*BIO_meth_get_gets(const BIO_METHOD *biom)) (BIO *, char *, int); int BIO_meth_set_gets(BIO_METHOD *biom, int (*ossl_gets) (BIO *, char *, int)); -long (*BIO_meth_get_ctrl(const BIO_METHOD *biom)) (BIO *, int, long, void *); int BIO_meth_set_ctrl(BIO_METHOD *biom, long (*ctrl) (BIO *, int, long, void *)); -int (*BIO_meth_get_create(const BIO_METHOD *bion)) (BIO *); int BIO_meth_set_create(BIO_METHOD *biom, int (*create) (BIO *)); -int (*BIO_meth_get_destroy(const BIO_METHOD *biom)) (BIO *); int BIO_meth_set_destroy(BIO_METHOD *biom, int (*destroy) (BIO *)); -long (*BIO_meth_get_callback_ctrl(const BIO_METHOD *biom)) - (BIO *, int, BIO_info_cb *); int BIO_meth_set_callback_ctrl(BIO_METHOD *biom, long (*callback_ctrl) (BIO *, int, BIO_info_cb *)); - +# ifndef OPENSSL_NO_DEPRECATED_3_5 +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_write(const BIO_METHOD *biom)) (BIO *, const char *, + int); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_write_ex(const BIO_METHOD *biom)) (BIO *, const char *, + size_t, size_t *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_sendmmsg(const BIO_METHOD *biom))(BIO *, BIO_MSG *, + size_t, size_t, + uint64_t, size_t *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_read(const BIO_METHOD *biom)) (BIO *, char *, int); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_read_ex(const BIO_METHOD *biom)) (BIO *, char *, + size_t, size_t *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_recvmmsg(const BIO_METHOD *biom))(BIO *, BIO_MSG *, + size_t, size_t, + uint64_t, size_t *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_puts(const BIO_METHOD *biom)) (BIO *, const char *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_gets(const BIO_METHOD *biom)) (BIO *, char *, int); +OSSL_DEPRECATEDIN_3_5 long (*BIO_meth_get_ctrl(const BIO_METHOD *biom)) (BIO *, int, + long, void *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_create(const BIO_METHOD *bion)) (BIO *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_destroy(const BIO_METHOD *biom)) (BIO *); +OSSL_DEPRECATEDIN_3_5 long (*BIO_meth_get_callback_ctrl(const BIO_METHOD *biom)) (BIO *, int, + BIO_info_cb *); +# endif # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/include/openssl/cmp.h b/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/include/openssl/cmp.h index 49825570d8c303..05aed3029d594c 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/include/openssl/cmp.h +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/include/openssl/cmp.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/cmp.h.in * - * Copyright 2007-2023 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2007-2024 The OpenSSL Project Authors. All Rights Reserved. * Copyright Nokia 2007-2019 * Copyright Siemens AG 2015-2019 * @@ -35,7 +35,9 @@ extern "C" { # endif -# define OSSL_CMP_PVNO 2 +# define OSSL_CMP_PVNO_2 2 +# define OSSL_CMP_PVNO_3 3 +# define OSSL_CMP_PVNO OSSL_CMP_PVNO_2 /* v2 is the default */ /*- * PKIFailureInfo ::= BIT STRING { @@ -137,7 +139,6 @@ extern "C" { # if OSSL_CMP_PKIFAILUREINFO_MAX_BIT_PATTERN > INT_MAX # error CMP_PKIFAILUREINFO_MAX bit pattern does not fit in type int # endif - typedef ASN1_BIT_STRING OSSL_CMP_PKIFAILUREINFO; # define OSSL_CMP_CTX_FAILINFO_badAlg (1 << 0) @@ -203,8 +204,8 @@ typedef ASN1_BIT_STRING OSSL_CMP_PKIFAILUREINFO; # define OSSL_CMP_PKISTATUS_revocationWarning 4 # define OSSL_CMP_PKISTATUS_revocationNotification 5 # define OSSL_CMP_PKISTATUS_keyUpdateWarning 6 - typedef ASN1_INTEGER OSSL_CMP_PKISTATUS; + DECLARE_ASN1_ITEM(OSSL_CMP_PKISTATUS) # define OSSL_CMP_CERTORENCCERT_CERTIFICATE 0 @@ -274,6 +275,46 @@ SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CMP_ITAV, OSSL_CMP_ITAV, OSSL_CMP_ITAV) #define sk_OSSL_CMP_ITAV_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_CMP_ITAV) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_CMP_ITAV_sk_type(sk), ossl_check_OSSL_CMP_ITAV_copyfunc_type(copyfunc), ossl_check_OSSL_CMP_ITAV_freefunc_type(freefunc))) #define sk_OSSL_CMP_ITAV_set_cmp_func(sk, cmp) ((sk_OSSL_CMP_ITAV_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CMP_ITAV_sk_type(sk), ossl_check_OSSL_CMP_ITAV_compfunc_type(cmp))) + +typedef struct ossl_cmp_crlstatus_st OSSL_CMP_CRLSTATUS; +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CMP_CRLSTATUS, OSSL_CMP_CRLSTATUS, OSSL_CMP_CRLSTATUS) +#define sk_OSSL_CMP_CRLSTATUS_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_value(sk, idx) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_value(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk), (idx))) +#define sk_OSSL_CMP_CRLSTATUS_new(cmp) ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_new(ossl_check_OSSL_CMP_CRLSTATUS_compfunc_type(cmp))) +#define sk_OSSL_CMP_CRLSTATUS_new_null() ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_new_null()) +#define sk_OSSL_CMP_CRLSTATUS_new_reserve(cmp, n) ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_CMP_CRLSTATUS_compfunc_type(cmp), (n))) +#define sk_OSSL_CMP_CRLSTATUS_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), (n)) +#define sk_OSSL_CMP_CRLSTATUS_free(sk) OPENSSL_sk_free(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_delete(sk, i) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_delete(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), (i))) +#define sk_OSSL_CMP_CRLSTATUS_delete_ptr(sk, ptr) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr))) +#define sk_OSSL_CMP_CRLSTATUS_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr)) +#define sk_OSSL_CMP_CRLSTATUS_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr)) +#define sk_OSSL_CMP_CRLSTATUS_pop(sk) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_pop(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk))) +#define sk_OSSL_CMP_CRLSTATUS_shift(sk) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_shift(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk))) +#define sk_OSSL_CMP_CRLSTATUS_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk),ossl_check_OSSL_CMP_CRLSTATUS_freefunc_type(freefunc)) +#define sk_OSSL_CMP_CRLSTATUS_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr), (idx)) +#define sk_OSSL_CMP_CRLSTATUS_set(sk, idx, ptr) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_set(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), (idx), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr))) +#define sk_OSSL_CMP_CRLSTATUS_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr)) +#define sk_OSSL_CMP_CRLSTATUS_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr)) +#define sk_OSSL_CMP_CRLSTATUS_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr), pnum) +#define sk_OSSL_CMP_CRLSTATUS_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_dup(sk) ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_dup(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk))) +#define sk_OSSL_CMP_CRLSTATUS_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_copyfunc_type(copyfunc), ossl_check_OSSL_CMP_CRLSTATUS_freefunc_type(freefunc))) +#define sk_OSSL_CMP_CRLSTATUS_set_cmp_func(sk, cmp) ((sk_OSSL_CMP_CRLSTATUS_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_compfunc_type(cmp))) + + +typedef OSSL_CRMF_ATTRIBUTETYPEANDVALUE OSSL_CMP_ATAV; +# define OSSL_CMP_ATAV_free OSSL_CRMF_ATTRIBUTETYPEANDVALUE_free +typedef STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) OSSL_CMP_ATAVS; +DECLARE_ASN1_FUNCTIONS(OSSL_CMP_ATAVS) +# define stack_st_OSSL_CMP_ATAV stack_st_OSSL_CRMF_ATTRIBUTETYPEANDVALUE +# define sk_OSSL_CMP_ATAV_num sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_num +# define sk_OSSL_CMP_ATAV_value sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_value +# define sk_OSSL_CMP_ATAV_push sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_push +# define sk_OSSL_CMP_ATAV_pop_free sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_pop_free + typedef struct ossl_cmp_revrepcontent_st OSSL_CMP_REVREPCONTENT; typedef struct ossl_cmp_pkisi_st OSSL_CMP_PKISI; DECLARE_ASN1_FUNCTIONS(OSSL_CMP_PKISI) @@ -375,21 +416,75 @@ void OSSL_CMP_ITAV_set0(OSSL_CMP_ITAV *itav, ASN1_OBJECT *type, ASN1_TYPE *value); ASN1_OBJECT *OSSL_CMP_ITAV_get0_type(const OSSL_CMP_ITAV *itav); ASN1_TYPE *OSSL_CMP_ITAV_get0_value(const OSSL_CMP_ITAV *itav); -int OSSL_CMP_ITAV_push0_stack_item(STACK_OF(OSSL_CMP_ITAV) **itav_sk_p, +int OSSL_CMP_ITAV_push0_stack_item(STACK_OF(OSSL_CMP_ITAV) **sk_p, OSSL_CMP_ITAV *itav); void OSSL_CMP_ITAV_free(OSSL_CMP_ITAV *itav); + +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new0_certProfile(STACK_OF(ASN1_UTF8STRING) + *certProfile); +int OSSL_CMP_ITAV_get0_certProfile(const OSSL_CMP_ITAV *itav, + STACK_OF(ASN1_UTF8STRING) **out); +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new_caCerts(const STACK_OF(X509) *caCerts); +int OSSL_CMP_ITAV_get0_caCerts(const OSSL_CMP_ITAV *itav, STACK_OF(X509) **out); + +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new_rootCaCert(const X509 *rootCaCert); +int OSSL_CMP_ITAV_get0_rootCaCert(const OSSL_CMP_ITAV *itav, X509 **out); +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new_rootCaKeyUpdate(const X509 *newWithNew, + const X509 *newWithOld, + const X509 *oldWithNew); +int OSSL_CMP_ITAV_get0_rootCaKeyUpdate(const OSSL_CMP_ITAV *itav, + X509 **newWithNew, + X509 **newWithOld, + X509 **oldWithNew); + +OSSL_CMP_CRLSTATUS *OSSL_CMP_CRLSTATUS_create(const X509_CRL *crl, + const X509 *cert, int only_DN); +OSSL_CMP_CRLSTATUS *OSSL_CMP_CRLSTATUS_new1(const DIST_POINT_NAME *dpn, + const GENERAL_NAMES *issuer, + const ASN1_TIME *thisUpdate); +int OSSL_CMP_CRLSTATUS_get0(const OSSL_CMP_CRLSTATUS *crlstatus, + DIST_POINT_NAME **dpn, GENERAL_NAMES **issuer, + ASN1_TIME **thisUpdate); +void OSSL_CMP_CRLSTATUS_free(OSSL_CMP_CRLSTATUS *crlstatus); +OSSL_CMP_ITAV +*OSSL_CMP_ITAV_new0_crlStatusList(STACK_OF(OSSL_CMP_CRLSTATUS) *crlStatusList); +int OSSL_CMP_ITAV_get0_crlStatusList(const OSSL_CMP_ITAV *itav, + STACK_OF(OSSL_CMP_CRLSTATUS) **out); +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new_crls(const X509_CRL *crls); +int OSSL_CMP_ITAV_get0_crls(const OSSL_CMP_ITAV *it, STACK_OF(X509_CRL) **out); +OSSL_CMP_ITAV +*OSSL_CMP_ITAV_new0_certReqTemplate(OSSL_CRMF_CERTTEMPLATE *certTemplate, + OSSL_CMP_ATAVS *keySpec); +int OSSL_CMP_ITAV_get1_certReqTemplate(const OSSL_CMP_ITAV *itav, + OSSL_CRMF_CERTTEMPLATE **certTemplate, + OSSL_CMP_ATAVS **keySpec); + +OSSL_CMP_ATAV *OSSL_CMP_ATAV_create(ASN1_OBJECT *type, ASN1_TYPE *value); +void OSSL_CMP_ATAV_set0(OSSL_CMP_ATAV *itav, ASN1_OBJECT *type, + ASN1_TYPE *value); +ASN1_OBJECT *OSSL_CMP_ATAV_get0_type(const OSSL_CMP_ATAV *itav); +ASN1_TYPE *OSSL_CMP_ATAV_get0_value(const OSSL_CMP_ATAV *itav); +OSSL_CMP_ATAV *OSSL_CMP_ATAV_new_algId(const X509_ALGOR *alg); +X509_ALGOR *OSSL_CMP_ATAV_get0_algId(const OSSL_CMP_ATAV *atav); +OSSL_CMP_ATAV *OSSL_CMP_ATAV_new_rsaKeyLen(int len); +int OSSL_CMP_ATAV_get_rsaKeyLen(const OSSL_CMP_ATAV *atav); +int OSSL_CMP_ATAV_push1(OSSL_CMP_ATAVS **sk_p, const OSSL_CMP_ATAV *atav); + void OSSL_CMP_MSG_free(OSSL_CMP_MSG *msg); /* from cmp_ctx.c */ OSSL_CMP_CTX *OSSL_CMP_CTX_new(OSSL_LIB_CTX *libctx, const char *propq); void OSSL_CMP_CTX_free(OSSL_CMP_CTX *ctx); int OSSL_CMP_CTX_reinit(OSSL_CMP_CTX *ctx); +OSSL_LIB_CTX *OSSL_CMP_CTX_get0_libctx(const OSSL_CMP_CTX *ctx); +const char *OSSL_CMP_CTX_get0_propq(const OSSL_CMP_CTX *ctx); /* CMP general options: */ # define OSSL_CMP_OPT_LOG_VERBOSITY 0 /* CMP transfer options: */ -# define OSSL_CMP_OPT_KEEP_ALIVE 10 -# define OSSL_CMP_OPT_MSG_TIMEOUT 11 +# define OSSL_CMP_OPT_KEEP_ALIVE 10 +# define OSSL_CMP_OPT_MSG_TIMEOUT 11 # define OSSL_CMP_OPT_TOTAL_TIMEOUT 12 +# define OSSL_CMP_OPT_USE_TLS 13 /* CMP request options: */ # define OSSL_CMP_OPT_VALIDITY_DAYS 20 # define OSSL_CMP_OPT_SUBJECTALTNAME_NODEFAULT 21 @@ -407,6 +502,7 @@ int OSSL_CMP_CTX_reinit(OSSL_CMP_CTX *ctx); # define OSSL_CMP_OPT_DIGEST_ALGNID 34 # define OSSL_CMP_OPT_IGNORE_KEYUSAGE 35 # define OSSL_CMP_OPT_PERMIT_TA_IN_EXTRACERTS_FOR_IR 36 +# define OSSL_CMP_OPT_NO_CACHE_EXTRACERTS 37 int OSSL_CMP_CTX_set_option(OSSL_CMP_CTX *ctx, int opt, int val); int OSSL_CMP_CTX_get_option(const OSSL_CMP_CTX *ctx, int opt); /* CMP-specific callback for logging and outputting the error queue: */ @@ -420,9 +516,11 @@ int OSSL_CMP_CTX_set1_server(OSSL_CMP_CTX *ctx, const char *address); int OSSL_CMP_CTX_set_serverPort(OSSL_CMP_CTX *ctx, int port); int OSSL_CMP_CTX_set1_proxy(OSSL_CMP_CTX *ctx, const char *name); int OSSL_CMP_CTX_set1_no_proxy(OSSL_CMP_CTX *ctx, const char *names); +# ifndef OPENSSL_NO_HTTP int OSSL_CMP_CTX_set_http_cb(OSSL_CMP_CTX *ctx, OSSL_HTTP_bio_cb_t cb); int OSSL_CMP_CTX_set_http_cb_arg(OSSL_CMP_CTX *ctx, void *arg); void *OSSL_CMP_CTX_get_http_cb_arg(const OSSL_CMP_CTX *ctx); +# endif typedef OSSL_CMP_MSG *(*OSSL_CMP_transfer_cb_t) (OSSL_CMP_CTX *ctx, const OSSL_CMP_MSG *req); int OSSL_CMP_CTX_set_transfer_cb(OSSL_CMP_CTX *ctx, OSSL_CMP_transfer_cb_t cb); @@ -432,7 +530,9 @@ void *OSSL_CMP_CTX_get_transfer_cb_arg(const OSSL_CMP_CTX *ctx); int OSSL_CMP_CTX_set1_srvCert(OSSL_CMP_CTX *ctx, X509 *cert); int OSSL_CMP_CTX_set1_expected_sender(OSSL_CMP_CTX *ctx, const X509_NAME *name); int OSSL_CMP_CTX_set0_trustedStore(OSSL_CMP_CTX *ctx, X509_STORE *store); +# define OSSL_CMP_CTX_set0_trusted OSSL_CMP_CTX_set0_trustedStore X509_STORE *OSSL_CMP_CTX_get0_trustedStore(const OSSL_CMP_CTX *ctx); +# define OSSL_CMP_CTX_get0_trusted OSSL_CMP_CTX_get0_trustedStore int OSSL_CMP_CTX_set1_untrusted(OSSL_CMP_CTX *ctx, STACK_OF(X509) *certs); STACK_OF(X509) *OSSL_CMP_CTX_get0_untrusted(const OSSL_CMP_CTX *ctx); /* client authentication: */ @@ -448,12 +548,15 @@ int OSSL_CMP_CTX_set1_secretValue(OSSL_CMP_CTX *ctx, int OSSL_CMP_CTX_set1_recipient(OSSL_CMP_CTX *ctx, const X509_NAME *name); int OSSL_CMP_CTX_push0_geninfo_ITAV(OSSL_CMP_CTX *ctx, OSSL_CMP_ITAV *itav); int OSSL_CMP_CTX_reset_geninfo_ITAVs(OSSL_CMP_CTX *ctx); +STACK_OF(OSSL_CMP_ITAV) + *OSSL_CMP_CTX_get0_geninfo_ITAVs(const OSSL_CMP_CTX *ctx); int OSSL_CMP_CTX_set1_extraCertsOut(OSSL_CMP_CTX *ctx, STACK_OF(X509) *extraCertsOut); /* certificate template: */ int OSSL_CMP_CTX_set0_newPkey(OSSL_CMP_CTX *ctx, int priv, EVP_PKEY *pkey); EVP_PKEY *OSSL_CMP_CTX_get0_newPkey(const OSSL_CMP_CTX *ctx, int priv); int OSSL_CMP_CTX_set1_issuer(OSSL_CMP_CTX *ctx, const X509_NAME *name); +int OSSL_CMP_CTX_set1_serialNumber(OSSL_CMP_CTX *ctx, const ASN1_INTEGER *sn); int OSSL_CMP_CTX_set1_subjectName(OSSL_CMP_CTX *ctx, const X509_NAME *name); int OSSL_CMP_CTX_push1_subjectAltName(OSSL_CMP_CTX *ctx, const GENERAL_NAME *name); @@ -477,6 +580,7 @@ int OSSL_CMP_CTX_get_status(const OSSL_CMP_CTX *ctx); OSSL_CMP_PKIFREETEXT *OSSL_CMP_CTX_get0_statusString(const OSSL_CMP_CTX *ctx); int OSSL_CMP_CTX_get_failInfoCode(const OSSL_CMP_CTX *ctx); # define OSSL_CMP_PKISI_BUFLEN 1024 +X509 *OSSL_CMP_CTX_get0_validatedSrvCert(const OSSL_CMP_CTX *ctx); X509 *OSSL_CMP_CTX_get0_newCert(const OSSL_CMP_CTX *ctx); STACK_OF(X509) *OSSL_CMP_CTX_get1_newChain(const OSSL_CMP_CTX *ctx); STACK_OF(X509) *OSSL_CMP_CTX_get1_caPubs(const OSSL_CMP_CTX *ctx); @@ -498,10 +602,13 @@ OSSL_CMP_STATUSINFO_new(int status, int fail_info, const char *text); ASN1_OCTET_STRING *OSSL_CMP_HDR_get0_transactionID(const OSSL_CMP_PKIHEADER *hdr); ASN1_OCTET_STRING *OSSL_CMP_HDR_get0_recipNonce(const OSSL_CMP_PKIHEADER *hdr); +STACK_OF(OSSL_CMP_ITAV) + *OSSL_CMP_HDR_get0_geninfo_ITAVs(const OSSL_CMP_PKIHEADER *hdr); /* from cmp_msg.c */ OSSL_CMP_PKIHEADER *OSSL_CMP_MSG_get0_header(const OSSL_CMP_MSG *msg); int OSSL_CMP_MSG_get_bodytype(const OSSL_CMP_MSG *msg); +X509_PUBKEY *OSSL_CMP_MSG_get0_certreq_publickey(const OSSL_CMP_MSG *msg); int OSSL_CMP_MSG_update_transactionID(OSSL_CMP_CTX *ctx, OSSL_CMP_MSG *msg); int OSSL_CMP_MSG_update_recipNonce(OSSL_CMP_CTX *ctx, OSSL_CMP_MSG *msg); OSSL_CRMF_MSG *OSSL_CMP_CTX_setup_CRM(OSSL_CMP_CTX *ctx, int for_KUR, int rid); @@ -517,8 +624,10 @@ int OSSL_CMP_validate_cert_path(const OSSL_CMP_CTX *ctx, X509_STORE *trusted_store, X509 *cert); /* from cmp_http.c */ +# ifndef OPENSSL_NO_HTTP OSSL_CMP_MSG *OSSL_CMP_MSG_http_perform(OSSL_CMP_CTX *ctx, const OSSL_CMP_MSG *req); +# endif /* from cmp_server.c */ typedef struct ossl_cmp_srv_ctx_st OSSL_CMP_SRV_CTX; @@ -561,6 +670,13 @@ int OSSL_CMP_SRV_CTX_init(OSSL_CMP_SRV_CTX *srv_ctx, void *custom_ctx, OSSL_CMP_SRV_error_cb_t process_error, OSSL_CMP_SRV_certConf_cb_t process_certConf, OSSL_CMP_SRV_pollReq_cb_t process_pollReq); +typedef int (*OSSL_CMP_SRV_delayed_delivery_cb_t)(OSSL_CMP_SRV_CTX *srv_ctx, + const OSSL_CMP_MSG *req); +typedef int (*OSSL_CMP_SRV_clean_transaction_cb_t)(OSSL_CMP_SRV_CTX *srv_ctx, + const ASN1_OCTET_STRING *id); +int OSSL_CMP_SRV_CTX_init_trans(OSSL_CMP_SRV_CTX *srv_ctx, + OSSL_CMP_SRV_delayed_delivery_cb_t delay, + OSSL_CMP_SRV_clean_transaction_cb_t clean); OSSL_CMP_CTX *OSSL_CMP_SRV_CTX_get0_cmp_ctx(const OSSL_CMP_SRV_CTX *srv_ctx); void *OSSL_CMP_SRV_CTX_get0_custom_ctx(const OSSL_CMP_SRV_CTX *srv_ctx); int OSSL_CMP_SRV_CTX_set_send_unprotected_errors(OSSL_CMP_SRV_CTX *srv_ctx, @@ -577,6 +693,8 @@ X509 *OSSL_CMP_exec_certreq(OSSL_CMP_CTX *ctx, int req_type, # define OSSL_CMP_CR 2 # define OSSL_CMP_P10CR 4 # define OSSL_CMP_KUR 7 +# define OSSL_CMP_GENM 21 +# define OSSL_CMP_ERROR 23 # define OSSL_CMP_exec_IR_ses(ctx) \ OSSL_CMP_exec_certreq(ctx, OSSL_CMP_IR, NULL) # define OSSL_CMP_exec_CR_ses(ctx) \ @@ -590,6 +708,18 @@ int OSSL_CMP_try_certreq(OSSL_CMP_CTX *ctx, int req_type, int OSSL_CMP_exec_RR_ses(OSSL_CMP_CTX *ctx); STACK_OF(OSSL_CMP_ITAV) *OSSL_CMP_exec_GENM_ses(OSSL_CMP_CTX *ctx); +/* from cmp_genm.c */ +int OSSL_CMP_get1_caCerts(OSSL_CMP_CTX *ctx, STACK_OF(X509) **out); +int OSSL_CMP_get1_rootCaKeyUpdate(OSSL_CMP_CTX *ctx, + const X509 *oldWithOld, X509 **newWithNew, + X509 **newWithOld, X509 **oldWithNew); +int OSSL_CMP_get1_crlUpdate(OSSL_CMP_CTX *ctx, const X509 *crlcert, + const X509_CRL *last_crl, + X509_CRL **crl); +int OSSL_CMP_get1_certReqTemplate(OSSL_CMP_CTX *ctx, + OSSL_CRMF_CERTTEMPLATE **certTemplate, + OSSL_CMP_ATAVS **keySpec); + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/include/openssl/cms.h b/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/include/openssl/cms.h index 3b453e6a2187a2..63afab563557b0 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/include/openssl/cms.h +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/include/openssl/cms.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/cms.h.in * - * Copyright 2008-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2008-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -31,8 +31,10 @@ extern "C" { # endif +typedef struct CMS_EnvelopedData_st CMS_EnvelopedData; typedef struct CMS_ContentInfo_st CMS_ContentInfo; typedef struct CMS_SignerInfo_st CMS_SignerInfo; +typedef struct CMS_SignedData_st CMS_SignedData; typedef struct CMS_CertificateChoices CMS_CertificateChoices; typedef struct CMS_RevocationInfoChoice_st CMS_RevocationInfoChoice; typedef struct CMS_RecipientInfo_st CMS_RecipientInfo; @@ -147,10 +149,14 @@ SKM_DEFINE_STACK_OF_INTERNAL(CMS_RevocationInfoChoice, CMS_RevocationInfoChoice, #define sk_CMS_RevocationInfoChoice_set_cmp_func(sk, cmp) ((sk_CMS_RevocationInfoChoice_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_CMS_RevocationInfoChoice_sk_type(sk), ossl_check_CMS_RevocationInfoChoice_compfunc_type(cmp))) +DECLARE_ASN1_ITEM(CMS_EnvelopedData) +DECLARE_ASN1_ALLOC_FUNCTIONS(CMS_SignedData) DECLARE_ASN1_FUNCTIONS(CMS_ContentInfo) DECLARE_ASN1_FUNCTIONS(CMS_ReceiptRequest) DECLARE_ASN1_PRINT_FUNCTION(CMS_ContentInfo) +DECLARE_ASN1_DUP_FUNCTION(CMS_EnvelopedData) + CMS_ContentInfo *CMS_ContentInfo_new_ex(OSSL_LIB_CTX *libctx, const char *propq); # define CMS_SIGNERINFO_ISSUER_SERIAL 0 @@ -190,6 +196,7 @@ CMS_ContentInfo *CMS_ContentInfo_new_ex(OSSL_LIB_CTX *libctx, const char *propq) # define CMS_ASCIICRLF 0x80000 # define CMS_CADES 0x100000 # define CMS_USE_ORIGINATOR_KEYID 0x200000 +# define CMS_NO_SIGNING_TIME 0x400000 const ASN1_OBJECT *CMS_get0_type(const CMS_ContentInfo *cms); @@ -217,13 +224,16 @@ int SMIME_write_CMS(BIO *bio, CMS_ContentInfo *cms, BIO *data, int flags); int CMS_final(CMS_ContentInfo *cms, BIO *data, BIO *dcont, unsigned int flags); +int CMS_final_digest(CMS_ContentInfo *cms, + const unsigned char *md, unsigned int mdlen, BIO *dcont, + unsigned int flags); CMS_ContentInfo *CMS_sign(X509 *signcert, EVP_PKEY *pkey, STACK_OF(X509) *certs, BIO *data, unsigned int flags); CMS_ContentInfo *CMS_sign_ex(X509 *signcert, EVP_PKEY *pkey, STACK_OF(X509) *certs, BIO *data, - unsigned int flags, OSSL_LIB_CTX *ctx, + unsigned int flags, OSSL_LIB_CTX *libctx, const char *propq); CMS_ContentInfo *CMS_sign_receipt(CMS_SignerInfo *si, @@ -233,27 +243,26 @@ CMS_ContentInfo *CMS_sign_receipt(CMS_SignerInfo *si, int CMS_data(CMS_ContentInfo *cms, BIO *out, unsigned int flags); CMS_ContentInfo *CMS_data_create(BIO *in, unsigned int flags); CMS_ContentInfo *CMS_data_create_ex(BIO *in, unsigned int flags, - OSSL_LIB_CTX *ctx, const char *propq); + OSSL_LIB_CTX *libctx, const char *propq); int CMS_digest_verify(CMS_ContentInfo *cms, BIO *dcont, BIO *out, unsigned int flags); CMS_ContentInfo *CMS_digest_create(BIO *in, const EVP_MD *md, unsigned int flags); CMS_ContentInfo *CMS_digest_create_ex(BIO *in, const EVP_MD *md, - unsigned int flags, OSSL_LIB_CTX *ctx, + unsigned int flags, OSSL_LIB_CTX *libctx, const char *propq); int CMS_EncryptedData_decrypt(CMS_ContentInfo *cms, const unsigned char *key, size_t keylen, BIO *dcont, BIO *out, unsigned int flags); - CMS_ContentInfo *CMS_EncryptedData_encrypt(BIO *in, const EVP_CIPHER *cipher, const unsigned char *key, size_t keylen, unsigned int flags); CMS_ContentInfo *CMS_EncryptedData_encrypt_ex(BIO *in, const EVP_CIPHER *cipher, const unsigned char *key, size_t keylen, unsigned int flags, - OSSL_LIB_CTX *ctx, + OSSL_LIB_CTX *libctx, const char *propq); int CMS_EncryptedData_set1_key(CMS_ContentInfo *cms, const EVP_CIPHER *ciph, @@ -272,7 +281,7 @@ CMS_ContentInfo *CMS_encrypt(STACK_OF(X509) *certs, BIO *in, const EVP_CIPHER *cipher, unsigned int flags); CMS_ContentInfo *CMS_encrypt_ex(STACK_OF(X509) *certs, BIO *in, const EVP_CIPHER *cipher, unsigned int flags, - OSSL_LIB_CTX *ctx, const char *propq); + OSSL_LIB_CTX *libctx, const char *propq); int CMS_decrypt(CMS_ContentInfo *cms, EVP_PKEY *pkey, X509 *cert, BIO *dcont, BIO *out, unsigned int flags); @@ -291,12 +300,16 @@ int CMS_RecipientInfo_type(CMS_RecipientInfo *ri); EVP_PKEY_CTX *CMS_RecipientInfo_get0_pkey_ctx(CMS_RecipientInfo *ri); CMS_ContentInfo *CMS_AuthEnvelopedData_create(const EVP_CIPHER *cipher); CMS_ContentInfo * -CMS_AuthEnvelopedData_create_ex(const EVP_CIPHER *cipher, OSSL_LIB_CTX *ctx, +CMS_AuthEnvelopedData_create_ex(const EVP_CIPHER *cipher, OSSL_LIB_CTX *libctx, const char *propq); CMS_ContentInfo *CMS_EnvelopedData_create(const EVP_CIPHER *cipher); CMS_ContentInfo *CMS_EnvelopedData_create_ex(const EVP_CIPHER *cipher, - OSSL_LIB_CTX *ctx, + OSSL_LIB_CTX *libctx, const char *propq); +BIO *CMS_EnvelopedData_decrypt(CMS_EnvelopedData *env, BIO *detached_data, + EVP_PKEY *pkey, X509 *cert, + ASN1_OCTET_STRING *secret, unsigned int flags, + OSSL_LIB_CTX *libctx, const char *propq); CMS_RecipientInfo *CMS_add1_recipient_cert(CMS_ContentInfo *cms, X509 *recip, unsigned int flags); @@ -385,6 +398,11 @@ ASN1_OCTET_STRING *CMS_SignerInfo_get0_signature(CMS_SignerInfo *si); int CMS_SignerInfo_sign(CMS_SignerInfo *si); int CMS_SignerInfo_verify(CMS_SignerInfo *si); int CMS_SignerInfo_verify_content(CMS_SignerInfo *si, BIO *chain); +BIO *CMS_SignedData_verify(CMS_SignedData *sd, BIO *detached_data, + STACK_OF(X509) *scerts, X509_STORE *store, + STACK_OF(X509) *extra, STACK_OF(X509_CRL) *crls, + unsigned int flags, + OSSL_LIB_CTX *libctx, const char *propq); int CMS_add_smimecap(CMS_SignerInfo *si, STACK_OF(X509_ALGOR) *algs); int CMS_add_simple_smimecap(STACK_OF(X509_ALGOR) **algs, @@ -441,7 +459,7 @@ CMS_ReceiptRequest *CMS_ReceiptRequest_create0_ex( unsigned char *id, int idlen, int allorfirst, STACK_OF(GENERAL_NAMES) *receiptList, STACK_OF(GENERAL_NAMES) *receiptsTo, - OSSL_LIB_CTX *ctx); + OSSL_LIB_CTX *libctx); int CMS_add1_ReceiptRequest(CMS_SignerInfo *si, CMS_ReceiptRequest *rr); void CMS_ReceiptRequest_get0_values(CMS_ReceiptRequest *rr, diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/include/openssl/comp.h b/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/include/openssl/comp.h new file mode 100644 index 00000000000000..90e39511fe8d28 --- /dev/null +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/include/openssl/comp.h @@ -0,0 +1,98 @@ +/* + * Copyright 2015-2024 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + + +#ifndef OPENSSL_COMP_H +# define OPENSSL_COMP_H +# pragma once + +# include +# ifndef OPENSSL_NO_DEPRECATED_3_0 +# define HEADER_COMP_H +# endif + +# include + +# include +# include +# ifdef __cplusplus +extern "C" { +# endif + + + +# ifndef OPENSSL_NO_COMP + +COMP_CTX *COMP_CTX_new(COMP_METHOD *meth); +const COMP_METHOD *COMP_CTX_get_method(const COMP_CTX *ctx); +int COMP_CTX_get_type(const COMP_CTX* comp); +int COMP_get_type(const COMP_METHOD *meth); +const char *COMP_get_name(const COMP_METHOD *meth); +void COMP_CTX_free(COMP_CTX *ctx); + +int COMP_compress_block(COMP_CTX *ctx, unsigned char *out, int olen, + unsigned char *in, int ilen); +int COMP_expand_block(COMP_CTX *ctx, unsigned char *out, int olen, + unsigned char *in, int ilen); + +COMP_METHOD *COMP_zlib(void); +COMP_METHOD *COMP_zlib_oneshot(void); +COMP_METHOD *COMP_brotli(void); +COMP_METHOD *COMP_brotli_oneshot(void); +COMP_METHOD *COMP_zstd(void); +COMP_METHOD *COMP_zstd_oneshot(void); + +# ifndef OPENSSL_NO_DEPRECATED_1_1_0 +# define COMP_zlib_cleanup() while(0) continue +# endif + +# ifdef OPENSSL_BIO_H +const BIO_METHOD *BIO_f_zlib(void); +const BIO_METHOD *BIO_f_brotli(void); +const BIO_METHOD *BIO_f_zstd(void); +# endif + +# endif + +typedef struct ssl_comp_st SSL_COMP; + +SKM_DEFINE_STACK_OF_INTERNAL(SSL_COMP, SSL_COMP, SSL_COMP) +#define sk_SSL_COMP_num(sk) OPENSSL_sk_num(ossl_check_const_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_value(sk, idx) ((SSL_COMP *)OPENSSL_sk_value(ossl_check_const_SSL_COMP_sk_type(sk), (idx))) +#define sk_SSL_COMP_new(cmp) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new(ossl_check_SSL_COMP_compfunc_type(cmp))) +#define sk_SSL_COMP_new_null() ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new_null()) +#define sk_SSL_COMP_new_reserve(cmp, n) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new_reserve(ossl_check_SSL_COMP_compfunc_type(cmp), (n))) +#define sk_SSL_COMP_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_SSL_COMP_sk_type(sk), (n)) +#define sk_SSL_COMP_free(sk) OPENSSL_sk_free(ossl_check_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_zero(sk) OPENSSL_sk_zero(ossl_check_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_delete(sk, i) ((SSL_COMP *)OPENSSL_sk_delete(ossl_check_SSL_COMP_sk_type(sk), (i))) +#define sk_SSL_COMP_delete_ptr(sk, ptr) ((SSL_COMP *)OPENSSL_sk_delete_ptr(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr))) +#define sk_SSL_COMP_push(sk, ptr) OPENSSL_sk_push(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) +#define sk_SSL_COMP_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) +#define sk_SSL_COMP_pop(sk) ((SSL_COMP *)OPENSSL_sk_pop(ossl_check_SSL_COMP_sk_type(sk))) +#define sk_SSL_COMP_shift(sk) ((SSL_COMP *)OPENSSL_sk_shift(ossl_check_SSL_COMP_sk_type(sk))) +#define sk_SSL_COMP_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_SSL_COMP_sk_type(sk),ossl_check_SSL_COMP_freefunc_type(freefunc)) +#define sk_SSL_COMP_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr), (idx)) +#define sk_SSL_COMP_set(sk, idx, ptr) ((SSL_COMP *)OPENSSL_sk_set(ossl_check_SSL_COMP_sk_type(sk), (idx), ossl_check_SSL_COMP_type(ptr))) +#define sk_SSL_COMP_find(sk, ptr) OPENSSL_sk_find(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) +#define sk_SSL_COMP_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) +#define sk_SSL_COMP_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr), pnum) +#define sk_SSL_COMP_sort(sk) OPENSSL_sk_sort(ossl_check_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_dup(sk) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_dup(ossl_check_const_SSL_COMP_sk_type(sk))) +#define sk_SSL_COMP_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_deep_copy(ossl_check_const_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_copyfunc_type(copyfunc), ossl_check_SSL_COMP_freefunc_type(freefunc))) +#define sk_SSL_COMP_set_cmp_func(sk, cmp) ((sk_SSL_COMP_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_compfunc_type(cmp))) + + + +# ifdef __cplusplus +} +# endif +#endif diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/include/openssl/conf.h b/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/include/openssl/conf.h index 44989929f6c84a..38576290bf641b 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/include/openssl/conf.h +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/include/openssl/conf.h @@ -27,6 +27,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -65,7 +68,7 @@ SKM_DEFINE_STACK_OF_INTERNAL(CONF_VALUE, CONF_VALUE, CONF_VALUE) #define sk_CONF_VALUE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(CONF_VALUE) *)OPENSSL_sk_deep_copy(ossl_check_const_CONF_VALUE_sk_type(sk), ossl_check_CONF_VALUE_copyfunc_type(copyfunc), ossl_check_CONF_VALUE_freefunc_type(freefunc))) #define sk_CONF_VALUE_set_cmp_func(sk, cmp) ((sk_CONF_VALUE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_CONF_VALUE_sk_type(sk), ossl_check_CONF_VALUE_compfunc_type(cmp))) DEFINE_LHASH_OF_INTERNAL(CONF_VALUE); -#define lh_CONF_VALUE_new(hfn, cmp) ((LHASH_OF(CONF_VALUE) *)OPENSSL_LH_new(ossl_check_CONF_VALUE_lh_hashfunc_type(hfn), ossl_check_CONF_VALUE_lh_compfunc_type(cmp))) +#define lh_CONF_VALUE_new(hfn, cmp) ((LHASH_OF(CONF_VALUE) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new(ossl_check_CONF_VALUE_lh_hashfunc_type(hfn), ossl_check_CONF_VALUE_lh_compfunc_type(cmp)), lh_CONF_VALUE_hash_thunk, lh_CONF_VALUE_comp_thunk, lh_CONF_VALUE_doall_thunk, lh_CONF_VALUE_doall_arg_thunk)) #define lh_CONF_VALUE_free(lh) OPENSSL_LH_free(ossl_check_CONF_VALUE_lh_type(lh)) #define lh_CONF_VALUE_flush(lh) OPENSSL_LH_flush(ossl_check_CONF_VALUE_lh_type(lh)) #define lh_CONF_VALUE_insert(lh, ptr) ((CONF_VALUE *)OPENSSL_LH_insert(ossl_check_CONF_VALUE_lh_type(lh), ossl_check_CONF_VALUE_lh_plain_type(ptr))) diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/include/openssl/configuration.h b/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/include/openssl/configuration.h index 4639f45a525049..a2a9ea0a064139 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/include/openssl/configuration.h +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/include/openssl/configuration.h @@ -30,7 +30,7 @@ extern "C" { # ifndef OPENSSL_SYS_MACOSX # define OPENSSL_SYS_MACOSX 1 # endif -# define OPENSSL_CONFIGURED_API 30000 +# define OPENSSL_CONFIGURED_API 30500 # ifndef OPENSSL_RAND_SEED_OS # define OPENSSL_RAND_SEED_OS # endif @@ -46,6 +46,12 @@ extern "C" { # ifndef OPENSSL_NO_ASM # define OPENSSL_NO_ASM # endif +# ifndef OPENSSL_NO_BROTLI +# define OPENSSL_NO_BROTLI +# endif +# ifndef OPENSSL_NO_BROTLI_DYNAMIC +# define OPENSSL_NO_BROTLI_DYNAMIC +# endif # ifndef OPENSSL_NO_COMP # define OPENSSL_NO_COMP # endif @@ -55,6 +61,9 @@ extern "C" { # ifndef OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE # define OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE # endif +# ifndef OPENSSL_NO_DEMOS +# define OPENSSL_NO_DEMOS +# endif # ifndef OPENSSL_NO_DEVCRYPTOENG # define OPENSSL_NO_DEVCRYPTOENG # endif @@ -67,12 +76,24 @@ extern "C" { # ifndef OPENSSL_NO_EXTERNAL_TESTS # define OPENSSL_NO_EXTERNAL_TESTS # endif +# ifndef OPENSSL_NO_FIPS_JITTER +# define OPENSSL_NO_FIPS_JITTER +# endif # ifndef OPENSSL_NO_FUZZ_AFL # define OPENSSL_NO_FUZZ_AFL # endif # ifndef OPENSSL_NO_FUZZ_LIBFUZZER # define OPENSSL_NO_FUZZ_LIBFUZZER # endif +# ifndef OPENSSL_NO_H3DEMO +# define OPENSSL_NO_H3DEMO +# endif +# ifndef OPENSSL_NO_HQINTEROP +# define OPENSSL_NO_HQINTEROP +# endif +# ifndef OPENSSL_NO_JITTER +# define OPENSSL_NO_JITTER +# endif # ifndef OPENSSL_NO_KTLS # define OPENSSL_NO_KTLS # endif @@ -85,6 +106,9 @@ extern "C" { # ifndef OPENSSL_NO_MSAN # define OPENSSL_NO_MSAN # endif +# ifndef OPENSSL_NO_PIE +# define OPENSSL_NO_PIE +# endif # ifndef OPENSSL_NO_RC5 # define OPENSSL_NO_RC5 # endif @@ -97,6 +121,12 @@ extern "C" { # ifndef OPENSSL_NO_SSL3_METHOD # define OPENSSL_NO_SSL3_METHOD # endif +# ifndef OPENSSL_NO_SSLKEYLOG +# define OPENSSL_NO_SSLKEYLOG +# endif +# ifndef OPENSSL_NO_TFO +# define OPENSSL_NO_TFO +# endif # ifndef OPENSSL_NO_TRACE # define OPENSSL_NO_TRACE # endif @@ -112,6 +142,21 @@ extern "C" { # ifndef OPENSSL_NO_WEAK_SSL_CIPHERS # define OPENSSL_NO_WEAK_SSL_CIPHERS # endif +# ifndef OPENSSL_NO_WINSTORE +# define OPENSSL_NO_WINSTORE +# endif +# ifndef OPENSSL_NO_ZLIB +# define OPENSSL_NO_ZLIB +# endif +# ifndef OPENSSL_NO_ZLIB_DYNAMIC +# define OPENSSL_NO_ZLIB_DYNAMIC +# endif +# ifndef OPENSSL_NO_ZSTD +# define OPENSSL_NO_ZSTD +# endif +# ifndef OPENSSL_NO_ZSTD_DYNAMIC +# define OPENSSL_NO_ZSTD_DYNAMIC +# endif # ifndef OPENSSL_NO_DYNAMIC_ENGINE # define OPENSSL_NO_DYNAMIC_ENGINE # endif @@ -133,6 +178,12 @@ extern "C" { # define RC4_INT unsigned int +# if defined(OPENSSL_NO_COMP) || (defined(OPENSSL_NO_BROTLI) && defined(OPENSSL_NO_ZSTD) && defined(OPENSSL_NO_ZLIB)) +# define OPENSSL_NO_COMP_ALG +# else +# undef OPENSSL_NO_COMP_ALG +# endif + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/include/openssl/core_names.h b/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/include/openssl/core_names.h new file mode 100644 index 00000000000000..e93e79a52bc910 --- /dev/null +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/include/openssl/core_names.h @@ -0,0 +1,575 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from include/openssl/core_names.h.in + * + * Copyright 2019-2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + +#ifndef OPENSSL_CORE_NAMES_H +# define OPENSSL_CORE_NAMES_H +# pragma once + +# ifdef __cplusplus +extern "C" { +# endif + +/* OSSL_CIPHER_PARAM_CTS_MODE Values */ +# define OSSL_CIPHER_CTS_MODE_CS1 "CS1" +# define OSSL_CIPHER_CTS_MODE_CS2 "CS2" +# define OSSL_CIPHER_CTS_MODE_CS3 "CS3" + +/* Known CIPHER names (not a complete list) */ +# define OSSL_CIPHER_NAME_AES_128_GCM_SIV "AES-128-GCM-SIV" +# define OSSL_CIPHER_NAME_AES_192_GCM_SIV "AES-192-GCM-SIV" +# define OSSL_CIPHER_NAME_AES_256_GCM_SIV "AES-256-GCM-SIV" + +/* Known DIGEST names (not a complete list) */ +# define OSSL_DIGEST_NAME_MD5 "MD5" +# define OSSL_DIGEST_NAME_MD5_SHA1 "MD5-SHA1" +# define OSSL_DIGEST_NAME_SHA1 "SHA1" +# define OSSL_DIGEST_NAME_SHA2_224 "SHA2-224" +# define OSSL_DIGEST_NAME_SHA2_256 "SHA2-256" +# define OSSL_DIGEST_NAME_SHA2_256_192 "SHA2-256/192" +# define OSSL_DIGEST_NAME_SHA2_384 "SHA2-384" +# define OSSL_DIGEST_NAME_SHA2_512 "SHA2-512" +# define OSSL_DIGEST_NAME_SHA2_512_224 "SHA2-512/224" +# define OSSL_DIGEST_NAME_SHA2_512_256 "SHA2-512/256" +# define OSSL_DIGEST_NAME_MD2 "MD2" +# define OSSL_DIGEST_NAME_MD4 "MD4" +# define OSSL_DIGEST_NAME_MDC2 "MDC2" +# define OSSL_DIGEST_NAME_RIPEMD160 "RIPEMD160" +# define OSSL_DIGEST_NAME_SHA3_224 "SHA3-224" +# define OSSL_DIGEST_NAME_SHA3_256 "SHA3-256" +# define OSSL_DIGEST_NAME_SHA3_384 "SHA3-384" +# define OSSL_DIGEST_NAME_SHA3_512 "SHA3-512" +# define OSSL_DIGEST_NAME_KECCAK_KMAC128 "KECCAK-KMAC-128" +# define OSSL_DIGEST_NAME_KECCAK_KMAC256 "KECCAK-KMAC-256" +# define OSSL_DIGEST_NAME_SM3 "SM3" + +/* Known MAC names */ +# define OSSL_MAC_NAME_BLAKE2BMAC "BLAKE2BMAC" +# define OSSL_MAC_NAME_BLAKE2SMAC "BLAKE2SMAC" +# define OSSL_MAC_NAME_CMAC "CMAC" +# define OSSL_MAC_NAME_GMAC "GMAC" +# define OSSL_MAC_NAME_HMAC "HMAC" +# define OSSL_MAC_NAME_KMAC128 "KMAC128" +# define OSSL_MAC_NAME_KMAC256 "KMAC256" +# define OSSL_MAC_NAME_POLY1305 "POLY1305" +# define OSSL_MAC_NAME_SIPHASH "SIPHASH" + +/* Known KDF names */ +# define OSSL_KDF_NAME_HKDF "HKDF" +# define OSSL_KDF_NAME_TLS1_3_KDF "TLS13-KDF" +# define OSSL_KDF_NAME_PBKDF1 "PBKDF1" +# define OSSL_KDF_NAME_PBKDF2 "PBKDF2" +# define OSSL_KDF_NAME_SCRYPT "SCRYPT" +# define OSSL_KDF_NAME_SSHKDF "SSHKDF" +# define OSSL_KDF_NAME_SSKDF "SSKDF" +# define OSSL_KDF_NAME_TLS1_PRF "TLS1-PRF" +# define OSSL_KDF_NAME_X942KDF_ASN1 "X942KDF-ASN1" +# define OSSL_KDF_NAME_X942KDF_CONCAT "X942KDF-CONCAT" +# define OSSL_KDF_NAME_X963KDF "X963KDF" +# define OSSL_KDF_NAME_KBKDF "KBKDF" +# define OSSL_KDF_NAME_KRB5KDF "KRB5KDF" +# define OSSL_KDF_NAME_HMACDRBGKDF "HMAC-DRBG-KDF" + +/* RSA padding modes */ +# define OSSL_PKEY_RSA_PAD_MODE_NONE "none" +# define OSSL_PKEY_RSA_PAD_MODE_PKCSV15 "pkcs1" +# define OSSL_PKEY_RSA_PAD_MODE_OAEP "oaep" +# define OSSL_PKEY_RSA_PAD_MODE_X931 "x931" +# define OSSL_PKEY_RSA_PAD_MODE_PSS "pss" + +/* RSA pss padding salt length */ +# define OSSL_PKEY_RSA_PSS_SALT_LEN_DIGEST "digest" +# define OSSL_PKEY_RSA_PSS_SALT_LEN_MAX "max" +# define OSSL_PKEY_RSA_PSS_SALT_LEN_AUTO "auto" +# define OSSL_PKEY_RSA_PSS_SALT_LEN_AUTO_DIGEST_MAX "auto-digestmax" + +/* OSSL_PKEY_PARAM_EC_ENCODING values */ +# define OSSL_PKEY_EC_ENCODING_EXPLICIT "explicit" +# define OSSL_PKEY_EC_ENCODING_GROUP "named_curve" + +# define OSSL_PKEY_EC_POINT_CONVERSION_FORMAT_UNCOMPRESSED "uncompressed" +# define OSSL_PKEY_EC_POINT_CONVERSION_FORMAT_COMPRESSED "compressed" +# define OSSL_PKEY_EC_POINT_CONVERSION_FORMAT_HYBRID "hybrid" + +# define OSSL_PKEY_EC_GROUP_CHECK_DEFAULT "default" +# define OSSL_PKEY_EC_GROUP_CHECK_NAMED "named" +# define OSSL_PKEY_EC_GROUP_CHECK_NAMED_NIST "named-nist" + +/* PROV_SKEY well known key types */ +# define OSSL_SKEY_TYPE_GENERIC "GENERIC-SECRET" +# define OSSL_SKEY_TYPE_AES "AES" + +/* OSSL_KEM_PARAM_OPERATION values */ +#define OSSL_KEM_PARAM_OPERATION_RSASVE "RSASVE" +#define OSSL_KEM_PARAM_OPERATION_DHKEM "DHKEM" + +/* Provider configuration variables */ +#define OSSL_PKEY_RETAIN_SEED "pkey_retain_seed" + +/* Parameter name definitions - generated by util/perl/OpenSSL/paramnames.pm */ +# define OSSL_ALG_PARAM_ALGORITHM_ID "algorithm-id" +# define OSSL_ALG_PARAM_ALGORITHM_ID_PARAMS "algorithm-id-params" +# define OSSL_ALG_PARAM_CIPHER "cipher" +# define OSSL_ALG_PARAM_DIGEST "digest" +# define OSSL_ALG_PARAM_ENGINE "engine" +# define OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR "fips-indicator" +# define OSSL_ALG_PARAM_MAC "mac" +# define OSSL_ALG_PARAM_PROPERTIES "properties" +# define OSSL_ASYM_CIPHER_PARAM_DIGEST OSSL_PKEY_PARAM_DIGEST +# define OSSL_ASYM_CIPHER_PARAM_ENGINE OSSL_PKEY_PARAM_ENGINE +# define OSSL_ASYM_CIPHER_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_ASYM_CIPHER_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_ASYM_CIPHER_PARAM_FIPS_RSA_PKCS15_PAD_DISABLED OSSL_PROV_PARAM_RSA_PKCS15_PAD_DISABLED +# define OSSL_ASYM_CIPHER_PARAM_IMPLICIT_REJECTION "implicit-rejection" +# define OSSL_ASYM_CIPHER_PARAM_MGF1_DIGEST OSSL_PKEY_PARAM_MGF1_DIGEST +# define OSSL_ASYM_CIPHER_PARAM_MGF1_DIGEST_PROPS OSSL_PKEY_PARAM_MGF1_PROPERTIES +# define OSSL_ASYM_CIPHER_PARAM_OAEP_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_ASYM_CIPHER_PARAM_OAEP_DIGEST_PROPS "digest-props" +# define OSSL_ASYM_CIPHER_PARAM_OAEP_LABEL "oaep-label" +# define OSSL_ASYM_CIPHER_PARAM_PAD_MODE OSSL_PKEY_PARAM_PAD_MODE +# define OSSL_ASYM_CIPHER_PARAM_PROPERTIES OSSL_PKEY_PARAM_PROPERTIES +# define OSSL_ASYM_CIPHER_PARAM_TLS_CLIENT_VERSION "tls-client-version" +# define OSSL_ASYM_CIPHER_PARAM_TLS_NEGOTIATED_VERSION "tls-negotiated-version" +# define OSSL_CAPABILITY_TLS_GROUP_ALG "tls-group-alg" +# define OSSL_CAPABILITY_TLS_GROUP_ID "tls-group-id" +# define OSSL_CAPABILITY_TLS_GROUP_IS_KEM "tls-group-is-kem" +# define OSSL_CAPABILITY_TLS_GROUP_MAX_DTLS "tls-max-dtls" +# define OSSL_CAPABILITY_TLS_GROUP_MAX_TLS "tls-max-tls" +# define OSSL_CAPABILITY_TLS_GROUP_MIN_DTLS "tls-min-dtls" +# define OSSL_CAPABILITY_TLS_GROUP_MIN_TLS "tls-min-tls" +# define OSSL_CAPABILITY_TLS_GROUP_NAME "tls-group-name" +# define OSSL_CAPABILITY_TLS_GROUP_NAME_INTERNAL "tls-group-name-internal" +# define OSSL_CAPABILITY_TLS_GROUP_SECURITY_BITS "tls-group-sec-bits" +# define OSSL_CAPABILITY_TLS_SIGALG_CODE_POINT "tls-sigalg-code-point" +# define OSSL_CAPABILITY_TLS_SIGALG_HASH_NAME "tls-sigalg-hash-name" +# define OSSL_CAPABILITY_TLS_SIGALG_HASH_OID "tls-sigalg-hash-oid" +# define OSSL_CAPABILITY_TLS_SIGALG_IANA_NAME "tls-sigalg-iana-name" +# define OSSL_CAPABILITY_TLS_SIGALG_KEYTYPE "tls-sigalg-keytype" +# define OSSL_CAPABILITY_TLS_SIGALG_KEYTYPE_OID "tls-sigalg-keytype-oid" +# define OSSL_CAPABILITY_TLS_SIGALG_MAX_DTLS "tls-max-dtls" +# define OSSL_CAPABILITY_TLS_SIGALG_MAX_TLS "tls-max-tls" +# define OSSL_CAPABILITY_TLS_SIGALG_MIN_DTLS "tls-min-dtls" +# define OSSL_CAPABILITY_TLS_SIGALG_MIN_TLS "tls-min-tls" +# define OSSL_CAPABILITY_TLS_SIGALG_NAME "tls-sigalg-name" +# define OSSL_CAPABILITY_TLS_SIGALG_OID "tls-sigalg-oid" +# define OSSL_CAPABILITY_TLS_SIGALG_SECURITY_BITS "tls-sigalg-sec-bits" +# define OSSL_CAPABILITY_TLS_SIGALG_SIG_NAME "tls-sigalg-sig-name" +# define OSSL_CAPABILITY_TLS_SIGALG_SIG_OID "tls-sigalg-sig-oid" +# define OSSL_CIPHER_PARAM_AEAD "aead" +# define OSSL_CIPHER_PARAM_AEAD_IVLEN OSSL_CIPHER_PARAM_IVLEN +# define OSSL_CIPHER_PARAM_AEAD_IV_GENERATED "iv-generated" +# define OSSL_CIPHER_PARAM_AEAD_MAC_KEY "mackey" +# define OSSL_CIPHER_PARAM_AEAD_TAG "tag" +# define OSSL_CIPHER_PARAM_AEAD_TAGLEN "taglen" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_AAD "tlsaad" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_AAD_PAD "tlsaadpad" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_GET_IV_GEN "tlsivgen" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_IV_FIXED "tlsivfixed" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_SET_IV_INV "tlsivinv" +# define OSSL_CIPHER_PARAM_ALGORITHM_ID OSSL_ALG_PARAM_ALGORITHM_ID +# define OSSL_CIPHER_PARAM_ALGORITHM_ID_PARAMS OSSL_ALG_PARAM_ALGORITHM_ID_PARAMS +# define OSSL_CIPHER_PARAM_ALGORITHM_ID_PARAMS_OLD "alg_id_param" +# define OSSL_CIPHER_PARAM_BLOCK_SIZE "blocksize" +# define OSSL_CIPHER_PARAM_CTS "cts" +# define OSSL_CIPHER_PARAM_CTS_MODE "cts_mode" +# define OSSL_CIPHER_PARAM_CUSTOM_IV "custom-iv" +# define OSSL_CIPHER_PARAM_DECRYPT_ONLY "decrypt-only" +# define OSSL_CIPHER_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_CIPHER_PARAM_FIPS_ENCRYPT_CHECK "encrypt-check" +# define OSSL_CIPHER_PARAM_HAS_RAND_KEY "has-randkey" +# define OSSL_CIPHER_PARAM_IV "iv" +# define OSSL_CIPHER_PARAM_IVLEN "ivlen" +# define OSSL_CIPHER_PARAM_KEYLEN "keylen" +# define OSSL_CIPHER_PARAM_MODE "mode" +# define OSSL_CIPHER_PARAM_NUM "num" +# define OSSL_CIPHER_PARAM_PADDING "padding" +# define OSSL_CIPHER_PARAM_PIPELINE_AEAD_TAG "pipeline-tag" +# define OSSL_CIPHER_PARAM_RANDOM_KEY "randkey" +# define OSSL_CIPHER_PARAM_RC2_KEYBITS "keybits" +# define OSSL_CIPHER_PARAM_ROUNDS "rounds" +# define OSSL_CIPHER_PARAM_SPEED "speed" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK "tls-multi" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD "tls1multi_aad" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD_PACKLEN "tls1multi_aadpacklen" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC "tls1multi_enc" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_IN "tls1multi_encin" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_LEN "tls1multi_enclen" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_INTERLEAVE "tls1multi_interleave" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_BUFSIZE "tls1multi_maxbufsz" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_SEND_FRAGMENT "tls1multi_maxsndfrag" +# define OSSL_CIPHER_PARAM_TLS_MAC "tls-mac" +# define OSSL_CIPHER_PARAM_TLS_MAC_SIZE "tls-mac-size" +# define OSSL_CIPHER_PARAM_TLS_VERSION "tls-version" +# define OSSL_CIPHER_PARAM_UPDATED_IV "updated-iv" +# define OSSL_CIPHER_PARAM_USE_BITS "use-bits" +# define OSSL_CIPHER_PARAM_XTS_STANDARD "xts_standard" +# define OSSL_DECODER_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_DIGEST_PARAM_ALGID_ABSENT "algid-absent" +# define OSSL_DIGEST_PARAM_BLOCK_SIZE "blocksize" +# define OSSL_DIGEST_PARAM_MICALG "micalg" +# define OSSL_DIGEST_PARAM_PAD_TYPE "pad-type" +# define OSSL_DIGEST_PARAM_SIZE "size" +# define OSSL_DIGEST_PARAM_SSL3_MS "ssl3-ms" +# define OSSL_DIGEST_PARAM_XOF "xof" +# define OSSL_DIGEST_PARAM_XOFLEN "xoflen" +# define OSSL_DRBG_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_DRBG_PARAM_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_DRBG_PARAM_ENTROPY_REQUIRED "entropy_required" +# define OSSL_DRBG_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_DRBG_PARAM_FIPS_DIGEST_CHECK OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK +# define OSSL_DRBG_PARAM_MAC OSSL_ALG_PARAM_MAC +# define OSSL_DRBG_PARAM_MAX_ADINLEN "max_adinlen" +# define OSSL_DRBG_PARAM_MAX_ENTROPYLEN "max_entropylen" +# define OSSL_DRBG_PARAM_MAX_LENGTH "maxium_length" +# define OSSL_DRBG_PARAM_MAX_NONCELEN "max_noncelen" +# define OSSL_DRBG_PARAM_MAX_PERSLEN "max_perslen" +# define OSSL_DRBG_PARAM_MIN_ENTROPYLEN "min_entropylen" +# define OSSL_DRBG_PARAM_MIN_LENGTH "minium_length" +# define OSSL_DRBG_PARAM_MIN_NONCELEN "min_noncelen" +# define OSSL_DRBG_PARAM_PREDICTION_RESISTANCE "prediction_resistance" +# define OSSL_DRBG_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_DRBG_PARAM_RANDOM_DATA "random_data" +# define OSSL_DRBG_PARAM_RESEED_COUNTER "reseed_counter" +# define OSSL_DRBG_PARAM_RESEED_REQUESTS "reseed_requests" +# define OSSL_DRBG_PARAM_RESEED_TIME "reseed_time" +# define OSSL_DRBG_PARAM_RESEED_TIME_INTERVAL "reseed_time_interval" +# define OSSL_DRBG_PARAM_SIZE "size" +# define OSSL_DRBG_PARAM_USE_DF "use_derivation_function" +# define OSSL_ENCODER_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_ENCODER_PARAM_ENCRYPT_LEVEL "encrypt-level" +# define OSSL_ENCODER_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_ENCODER_PARAM_SAVE_PARAMETERS "save-parameters" +# define OSSL_EXCHANGE_PARAM_EC_ECDH_COFACTOR_MODE "ecdh-cofactor-mode" +# define OSSL_EXCHANGE_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_EXCHANGE_PARAM_FIPS_DIGEST_CHECK OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK +# define OSSL_EXCHANGE_PARAM_FIPS_ECDH_COFACTOR_CHECK OSSL_PROV_PARAM_ECDH_COFACTOR_CHECK +# define OSSL_EXCHANGE_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_EXCHANGE_PARAM_KDF_DIGEST "kdf-digest" +# define OSSL_EXCHANGE_PARAM_KDF_DIGEST_PROPS "kdf-digest-props" +# define OSSL_EXCHANGE_PARAM_KDF_OUTLEN "kdf-outlen" +# define OSSL_EXCHANGE_PARAM_KDF_TYPE "kdf-type" +# define OSSL_EXCHANGE_PARAM_KDF_UKM "kdf-ukm" +# define OSSL_EXCHANGE_PARAM_PAD "pad" +# define OSSL_GEN_PARAM_ITERATION "iteration" +# define OSSL_GEN_PARAM_POTENTIAL "potential" +# define OSSL_KDF_PARAM_ARGON2_AD "ad" +# define OSSL_KDF_PARAM_ARGON2_LANES "lanes" +# define OSSL_KDF_PARAM_ARGON2_MEMCOST "memcost" +# define OSSL_KDF_PARAM_ARGON2_VERSION "version" +# define OSSL_KDF_PARAM_CEK_ALG "cekalg" +# define OSSL_KDF_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_KDF_PARAM_CONSTANT "constant" +# define OSSL_KDF_PARAM_DATA "data" +# define OSSL_KDF_PARAM_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_KDF_PARAM_EARLY_CLEAN "early_clean" +# define OSSL_KDF_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_KDF_PARAM_FIPS_DIGEST_CHECK OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK +# define OSSL_KDF_PARAM_FIPS_EMS_CHECK "ems_check" +# define OSSL_KDF_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_KDF_PARAM_HMACDRBG_ENTROPY "entropy" +# define OSSL_KDF_PARAM_HMACDRBG_NONCE "nonce" +# define OSSL_KDF_PARAM_INFO "info" +# define OSSL_KDF_PARAM_ITER "iter" +# define OSSL_KDF_PARAM_KBKDF_R "r" +# define OSSL_KDF_PARAM_KBKDF_USE_L "use-l" +# define OSSL_KDF_PARAM_KBKDF_USE_SEPARATOR "use-separator" +# define OSSL_KDF_PARAM_KEY "key" +# define OSSL_KDF_PARAM_LABEL "label" +# define OSSL_KDF_PARAM_MAC OSSL_ALG_PARAM_MAC +# define OSSL_KDF_PARAM_MAC_SIZE "maclen" +# define OSSL_KDF_PARAM_MODE "mode" +# define OSSL_KDF_PARAM_PASSWORD "pass" +# define OSSL_KDF_PARAM_PKCS12_ID "id" +# define OSSL_KDF_PARAM_PKCS5 "pkcs5" +# define OSSL_KDF_PARAM_PREFIX "prefix" +# define OSSL_KDF_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_KDF_PARAM_SALT "salt" +# define OSSL_KDF_PARAM_SCRYPT_MAXMEM "maxmem_bytes" +# define OSSL_KDF_PARAM_SCRYPT_N "n" +# define OSSL_KDF_PARAM_SCRYPT_P "p" +# define OSSL_KDF_PARAM_SCRYPT_R "r" +# define OSSL_KDF_PARAM_SECRET "secret" +# define OSSL_KDF_PARAM_SEED "seed" +# define OSSL_KDF_PARAM_SIZE "size" +# define OSSL_KDF_PARAM_SSHKDF_SESSION_ID "session_id" +# define OSSL_KDF_PARAM_SSHKDF_TYPE "type" +# define OSSL_KDF_PARAM_SSHKDF_XCGHASH "xcghash" +# define OSSL_KDF_PARAM_THREADS "threads" +# define OSSL_KDF_PARAM_UKM "ukm" +# define OSSL_KDF_PARAM_X942_ACVPINFO "acvp-info" +# define OSSL_KDF_PARAM_X942_PARTYUINFO "partyu-info" +# define OSSL_KDF_PARAM_X942_PARTYVINFO "partyv-info" +# define OSSL_KDF_PARAM_X942_SUPP_PRIVINFO "supp-privinfo" +# define OSSL_KDF_PARAM_X942_SUPP_PUBINFO "supp-pubinfo" +# define OSSL_KDF_PARAM_X942_USE_KEYBITS "use-keybits" +# define OSSL_KEM_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_KEM_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_KEM_PARAM_IKME "ikme" +# define OSSL_KEM_PARAM_OPERATION "operation" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_BLOCK_PADDING "block_padding" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_HS_PADDING "hs_padding" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_MAX_EARLY_DATA "max_early_data" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_MAX_FRAG_LEN "max_frag_len" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_MODE "mode" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_OPTIONS "options" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_READ_AHEAD "read_ahead" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_STREAM_MAC "stream_mac" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_TLSTREE "tlstree" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_USE_ETM "use_etm" +# define OSSL_LIBSSL_RECORD_LAYER_READ_BUFFER_LEN "read_buffer_len" +# define OSSL_MAC_PARAM_BLOCK_SIZE "block-size" +# define OSSL_MAC_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_MAC_PARAM_CUSTOM "custom" +# define OSSL_MAC_PARAM_C_ROUNDS "c-rounds" +# define OSSL_MAC_PARAM_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_MAC_PARAM_DIGEST_NOINIT "digest-noinit" +# define OSSL_MAC_PARAM_DIGEST_ONESHOT "digest-oneshot" +# define OSSL_MAC_PARAM_D_ROUNDS "d-rounds" +# define OSSL_MAC_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_MAC_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_MAC_PARAM_FIPS_NO_SHORT_MAC OSSL_PROV_PARAM_NO_SHORT_MAC +# define OSSL_MAC_PARAM_IV "iv" +# define OSSL_MAC_PARAM_KEY "key" +# define OSSL_MAC_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_MAC_PARAM_SALT "salt" +# define OSSL_MAC_PARAM_SIZE "size" +# define OSSL_MAC_PARAM_TLS_DATA_SIZE "tls-data-size" +# define OSSL_MAC_PARAM_XOF "xof" +# define OSSL_OBJECT_PARAM_DATA "data" +# define OSSL_OBJECT_PARAM_DATA_STRUCTURE "data-structure" +# define OSSL_OBJECT_PARAM_DATA_TYPE "data-type" +# define OSSL_OBJECT_PARAM_DESC "desc" +# define OSSL_OBJECT_PARAM_INPUT_TYPE "input-type" +# define OSSL_OBJECT_PARAM_REFERENCE "reference" +# define OSSL_OBJECT_PARAM_TYPE "type" +# define OSSL_PASSPHRASE_PARAM_INFO "info" +# define OSSL_PKEY_PARAM_ALGORITHM_ID OSSL_ALG_PARAM_ALGORITHM_ID +# define OSSL_PKEY_PARAM_ALGORITHM_ID_PARAMS OSSL_ALG_PARAM_ALGORITHM_ID_PARAMS +# define OSSL_PKEY_PARAM_BITS "bits" +# define OSSL_PKEY_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_PKEY_PARAM_DEFAULT_DIGEST "default-digest" +# define OSSL_PKEY_PARAM_DHKEM_IKM "dhkem-ikm" +# define OSSL_PKEY_PARAM_DH_GENERATOR "safeprime-generator" +# define OSSL_PKEY_PARAM_DH_PRIV_LEN "priv_len" +# define OSSL_PKEY_PARAM_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_PKEY_PARAM_DIGEST_SIZE "digest-size" +# define OSSL_PKEY_PARAM_DIST_ID "distid" +# define OSSL_PKEY_PARAM_EC_A "a" +# define OSSL_PKEY_PARAM_EC_B "b" +# define OSSL_PKEY_PARAM_EC_CHAR2_M "m" +# define OSSL_PKEY_PARAM_EC_CHAR2_PP_K1 "k1" +# define OSSL_PKEY_PARAM_EC_CHAR2_PP_K2 "k2" +# define OSSL_PKEY_PARAM_EC_CHAR2_PP_K3 "k3" +# define OSSL_PKEY_PARAM_EC_CHAR2_TP_BASIS "tp" +# define OSSL_PKEY_PARAM_EC_CHAR2_TYPE "basis-type" +# define OSSL_PKEY_PARAM_EC_COFACTOR "cofactor" +# define OSSL_PKEY_PARAM_EC_DECODED_FROM_EXPLICIT_PARAMS "decoded-from-explicit" +# define OSSL_PKEY_PARAM_EC_ENCODING "encoding" +# define OSSL_PKEY_PARAM_EC_FIELD_TYPE "field-type" +# define OSSL_PKEY_PARAM_EC_GENERATOR "generator" +# define OSSL_PKEY_PARAM_EC_GROUP_CHECK_TYPE "group-check" +# define OSSL_PKEY_PARAM_EC_INCLUDE_PUBLIC "include-public" +# define OSSL_PKEY_PARAM_EC_ORDER "order" +# define OSSL_PKEY_PARAM_EC_P "p" +# define OSSL_PKEY_PARAM_EC_POINT_CONVERSION_FORMAT "point-format" +# define OSSL_PKEY_PARAM_EC_PUB_X "qx" +# define OSSL_PKEY_PARAM_EC_PUB_Y "qy" +# define OSSL_PKEY_PARAM_EC_SEED "seed" +# define OSSL_PKEY_PARAM_ENCODED_PUBLIC_KEY "encoded-pub-key" +# define OSSL_PKEY_PARAM_ENGINE OSSL_ALG_PARAM_ENGINE +# define OSSL_PKEY_PARAM_FFC_COFACTOR "j" +# define OSSL_PKEY_PARAM_FFC_DIGEST OSSL_PKEY_PARAM_DIGEST +# define OSSL_PKEY_PARAM_FFC_DIGEST_PROPS OSSL_PKEY_PARAM_PROPERTIES +# define OSSL_PKEY_PARAM_FFC_G "g" +# define OSSL_PKEY_PARAM_FFC_GINDEX "gindex" +# define OSSL_PKEY_PARAM_FFC_H "hindex" +# define OSSL_PKEY_PARAM_FFC_P "p" +# define OSSL_PKEY_PARAM_FFC_PBITS "pbits" +# define OSSL_PKEY_PARAM_FFC_PCOUNTER "pcounter" +# define OSSL_PKEY_PARAM_FFC_Q "q" +# define OSSL_PKEY_PARAM_FFC_QBITS "qbits" +# define OSSL_PKEY_PARAM_FFC_SEED "seed" +# define OSSL_PKEY_PARAM_FFC_TYPE "type" +# define OSSL_PKEY_PARAM_FFC_VALIDATE_G "validate-g" +# define OSSL_PKEY_PARAM_FFC_VALIDATE_LEGACY "validate-legacy" +# define OSSL_PKEY_PARAM_FFC_VALIDATE_PQ "validate-pq" +# define OSSL_PKEY_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK "digest-check" +# define OSSL_PKEY_PARAM_FIPS_KEY_CHECK "key-check" +# define OSSL_PKEY_PARAM_FIPS_SIGN_CHECK "sign-check" +# define OSSL_PKEY_PARAM_GROUP_NAME "group" +# define OSSL_PKEY_PARAM_IMPLICIT_REJECTION "implicit-rejection" +# define OSSL_PKEY_PARAM_MANDATORY_DIGEST "mandatory-digest" +# define OSSL_PKEY_PARAM_MASKGENFUNC "mgf" +# define OSSL_PKEY_PARAM_MAX_SIZE "max-size" +# define OSSL_PKEY_PARAM_MGF1_DIGEST "mgf1-digest" +# define OSSL_PKEY_PARAM_MGF1_PROPERTIES "mgf1-properties" +# define OSSL_PKEY_PARAM_ML_DSA_INPUT_FORMATS "ml-dsa.input_formats" +# define OSSL_PKEY_PARAM_ML_DSA_OUTPUT_FORMATS "ml-dsa.output_formats" +# define OSSL_PKEY_PARAM_ML_DSA_PREFER_SEED "ml-dsa.prefer_seed" +# define OSSL_PKEY_PARAM_ML_DSA_RETAIN_SEED "ml-dsa.retain_seed" +# define OSSL_PKEY_PARAM_ML_DSA_SEED "seed" +# define OSSL_PKEY_PARAM_ML_KEM_IMPORT_PCT_TYPE "ml-kem.import_pct_type" +# define OSSL_PKEY_PARAM_ML_KEM_INPUT_FORMATS "ml-kem.input_formats" +# define OSSL_PKEY_PARAM_ML_KEM_OUTPUT_FORMATS "ml-kem.output_formats" +# define OSSL_PKEY_PARAM_ML_KEM_PREFER_SEED "ml-kem.prefer_seed" +# define OSSL_PKEY_PARAM_ML_KEM_RETAIN_SEED "ml-kem.retain_seed" +# define OSSL_PKEY_PARAM_ML_KEM_SEED "seed" +# define OSSL_PKEY_PARAM_PAD_MODE "pad-mode" +# define OSSL_PKEY_PARAM_PRIV_KEY "priv" +# define OSSL_PKEY_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_PKEY_PARAM_PUB_KEY "pub" +# define OSSL_PKEY_PARAM_RSA_BITS OSSL_PKEY_PARAM_BITS +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT "rsa-coefficient" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT1 "rsa-coefficient1" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT2 "rsa-coefficient2" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT3 "rsa-coefficient3" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT4 "rsa-coefficient4" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT5 "rsa-coefficient5" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT6 "rsa-coefficient6" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT7 "rsa-coefficient7" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT8 "rsa-coefficient8" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT9 "rsa-coefficient9" +# define OSSL_PKEY_PARAM_RSA_D "d" +# define OSSL_PKEY_PARAM_RSA_DERIVE_FROM_PQ "rsa-derive-from-pq" +# define OSSL_PKEY_PARAM_RSA_DIGEST OSSL_PKEY_PARAM_DIGEST +# define OSSL_PKEY_PARAM_RSA_DIGEST_PROPS OSSL_PKEY_PARAM_PROPERTIES +# define OSSL_PKEY_PARAM_RSA_E "e" +# define OSSL_PKEY_PARAM_RSA_EXPONENT "rsa-exponent" +# define OSSL_PKEY_PARAM_RSA_EXPONENT1 "rsa-exponent1" +# define OSSL_PKEY_PARAM_RSA_EXPONENT10 "rsa-exponent10" +# define OSSL_PKEY_PARAM_RSA_EXPONENT2 "rsa-exponent2" +# define OSSL_PKEY_PARAM_RSA_EXPONENT3 "rsa-exponent3" +# define OSSL_PKEY_PARAM_RSA_EXPONENT4 "rsa-exponent4" +# define OSSL_PKEY_PARAM_RSA_EXPONENT5 "rsa-exponent5" +# define OSSL_PKEY_PARAM_RSA_EXPONENT6 "rsa-exponent6" +# define OSSL_PKEY_PARAM_RSA_EXPONENT7 "rsa-exponent7" +# define OSSL_PKEY_PARAM_RSA_EXPONENT8 "rsa-exponent8" +# define OSSL_PKEY_PARAM_RSA_EXPONENT9 "rsa-exponent9" +# define OSSL_PKEY_PARAM_RSA_FACTOR "rsa-factor" +# define OSSL_PKEY_PARAM_RSA_FACTOR1 "rsa-factor1" +# define OSSL_PKEY_PARAM_RSA_FACTOR10 "rsa-factor10" +# define OSSL_PKEY_PARAM_RSA_FACTOR2 "rsa-factor2" +# define OSSL_PKEY_PARAM_RSA_FACTOR3 "rsa-factor3" +# define OSSL_PKEY_PARAM_RSA_FACTOR4 "rsa-factor4" +# define OSSL_PKEY_PARAM_RSA_FACTOR5 "rsa-factor5" +# define OSSL_PKEY_PARAM_RSA_FACTOR6 "rsa-factor6" +# define OSSL_PKEY_PARAM_RSA_FACTOR7 "rsa-factor7" +# define OSSL_PKEY_PARAM_RSA_FACTOR8 "rsa-factor8" +# define OSSL_PKEY_PARAM_RSA_FACTOR9 "rsa-factor9" +# define OSSL_PKEY_PARAM_RSA_MASKGENFUNC OSSL_PKEY_PARAM_MASKGENFUNC +# define OSSL_PKEY_PARAM_RSA_MGF1_DIGEST OSSL_PKEY_PARAM_MGF1_DIGEST +# define OSSL_PKEY_PARAM_RSA_N "n" +# define OSSL_PKEY_PARAM_RSA_PRIMES "primes" +# define OSSL_PKEY_PARAM_RSA_PSS_SALTLEN "saltlen" +# define OSSL_PKEY_PARAM_RSA_TEST_P1 "p1" +# define OSSL_PKEY_PARAM_RSA_TEST_P2 "p2" +# define OSSL_PKEY_PARAM_RSA_TEST_Q1 "q1" +# define OSSL_PKEY_PARAM_RSA_TEST_Q2 "q2" +# define OSSL_PKEY_PARAM_RSA_TEST_XP "xp" +# define OSSL_PKEY_PARAM_RSA_TEST_XP1 "xp1" +# define OSSL_PKEY_PARAM_RSA_TEST_XP2 "xp2" +# define OSSL_PKEY_PARAM_RSA_TEST_XQ "xq" +# define OSSL_PKEY_PARAM_RSA_TEST_XQ1 "xq1" +# define OSSL_PKEY_PARAM_RSA_TEST_XQ2 "xq2" +# define OSSL_PKEY_PARAM_SECURITY_BITS "security-bits" +# define OSSL_PKEY_PARAM_SLH_DSA_SEED "seed" +# define OSSL_PKEY_PARAM_USE_COFACTOR_ECDH OSSL_PKEY_PARAM_USE_COFACTOR_FLAG +# define OSSL_PKEY_PARAM_USE_COFACTOR_FLAG "use-cofactor-flag" +# define OSSL_PROV_PARAM_BUILDINFO "buildinfo" +# define OSSL_PROV_PARAM_CORE_MODULE_FILENAME "module-filename" +# define OSSL_PROV_PARAM_CORE_PROV_NAME "provider-name" +# define OSSL_PROV_PARAM_CORE_VERSION "openssl-version" +# define OSSL_PROV_PARAM_DRBG_TRUNC_DIGEST "drbg-no-trunc-md" +# define OSSL_PROV_PARAM_DSA_SIGN_DISABLED "dsa-sign-disabled" +# define OSSL_PROV_PARAM_ECDH_COFACTOR_CHECK "ecdh-cofactor-check" +# define OSSL_PROV_PARAM_HKDF_DIGEST_CHECK "hkdf-digest-check" +# define OSSL_PROV_PARAM_HKDF_KEY_CHECK "hkdf-key-check" +# define OSSL_PROV_PARAM_HMAC_KEY_CHECK "hmac-key-check" +# define OSSL_PROV_PARAM_KBKDF_KEY_CHECK "kbkdf-key-check" +# define OSSL_PROV_PARAM_KMAC_KEY_CHECK "kmac-key-check" +# define OSSL_PROV_PARAM_NAME "name" +# define OSSL_PROV_PARAM_NO_SHORT_MAC "no-short-mac" +# define OSSL_PROV_PARAM_PBKDF2_LOWER_BOUND_CHECK "pbkdf2-lower-bound-check" +# define OSSL_PROV_PARAM_RSA_PKCS15_PAD_DISABLED "rsa-pkcs15-pad-disabled" +# define OSSL_PROV_PARAM_RSA_PSS_SALTLEN_CHECK "rsa-pss-saltlen-check" +# define OSSL_PROV_PARAM_RSA_SIGN_X931_PAD_DISABLED "rsa-sign-x931-pad-disabled" +# define OSSL_PROV_PARAM_SECURITY_CHECKS "security-checks" +# define OSSL_PROV_PARAM_SELF_TEST_DESC "st-desc" +# define OSSL_PROV_PARAM_SELF_TEST_PHASE "st-phase" +# define OSSL_PROV_PARAM_SELF_TEST_TYPE "st-type" +# define OSSL_PROV_PARAM_SIGNATURE_DIGEST_CHECK "signature-digest-check" +# define OSSL_PROV_PARAM_SSHKDF_DIGEST_CHECK "sshkdf-digest-check" +# define OSSL_PROV_PARAM_SSHKDF_KEY_CHECK "sshkdf-key-check" +# define OSSL_PROV_PARAM_SSKDF_DIGEST_CHECK "sskdf-digest-check" +# define OSSL_PROV_PARAM_SSKDF_KEY_CHECK "sskdf-key-check" +# define OSSL_PROV_PARAM_STATUS "status" +# define OSSL_PROV_PARAM_TDES_ENCRYPT_DISABLED "tdes-encrypt-disabled" +# define OSSL_PROV_PARAM_TLS13_KDF_DIGEST_CHECK "tls13-kdf-digest-check" +# define OSSL_PROV_PARAM_TLS13_KDF_KEY_CHECK "tls13-kdf-key-check" +# define OSSL_PROV_PARAM_TLS1_PRF_DIGEST_CHECK "tls1-prf-digest-check" +# define OSSL_PROV_PARAM_TLS1_PRF_EMS_CHECK "tls1-prf-ems-check" +# define OSSL_PROV_PARAM_TLS1_PRF_KEY_CHECK "tls1-prf-key-check" +# define OSSL_PROV_PARAM_VERSION "version" +# define OSSL_PROV_PARAM_X942KDF_KEY_CHECK "x942kdf-key-check" +# define OSSL_PROV_PARAM_X963KDF_DIGEST_CHECK "x963kdf-digest-check" +# define OSSL_PROV_PARAM_X963KDF_KEY_CHECK "x963kdf-key-check" +# define OSSL_RAND_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_RAND_PARAM_GENERATE "generate" +# define OSSL_RAND_PARAM_MAX_REQUEST "max_request" +# define OSSL_RAND_PARAM_STATE "state" +# define OSSL_RAND_PARAM_STRENGTH "strength" +# define OSSL_RAND_PARAM_TEST_ENTROPY "test_entropy" +# define OSSL_RAND_PARAM_TEST_NONCE "test_nonce" +# define OSSL_SIGNATURE_PARAM_ADD_RANDOM "additional-random" +# define OSSL_SIGNATURE_PARAM_ALGORITHM_ID OSSL_PKEY_PARAM_ALGORITHM_ID +# define OSSL_SIGNATURE_PARAM_ALGORITHM_ID_PARAMS OSSL_PKEY_PARAM_ALGORITHM_ID_PARAMS +# define OSSL_SIGNATURE_PARAM_CONTEXT_STRING "context-string" +# define OSSL_SIGNATURE_PARAM_DETERMINISTIC "deterministic" +# define OSSL_SIGNATURE_PARAM_DIGEST OSSL_PKEY_PARAM_DIGEST +# define OSSL_SIGNATURE_PARAM_DIGEST_SIZE OSSL_PKEY_PARAM_DIGEST_SIZE +# define OSSL_SIGNATURE_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_SIGNATURE_PARAM_FIPS_DIGEST_CHECK OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK +# define OSSL_SIGNATURE_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_SIGNATURE_PARAM_FIPS_RSA_PSS_SALTLEN_CHECK "rsa-pss-saltlen-check" +# define OSSL_SIGNATURE_PARAM_FIPS_SIGN_CHECK OSSL_PKEY_PARAM_FIPS_SIGN_CHECK +# define OSSL_SIGNATURE_PARAM_FIPS_SIGN_X931_PAD_CHECK "sign-x931-pad-check" +# define OSSL_SIGNATURE_PARAM_FIPS_VERIFY_MESSAGE "verify-message" +# define OSSL_SIGNATURE_PARAM_INSTANCE "instance" +# define OSSL_SIGNATURE_PARAM_KAT "kat" +# define OSSL_SIGNATURE_PARAM_MESSAGE_ENCODING "message-encoding" +# define OSSL_SIGNATURE_PARAM_MGF1_DIGEST OSSL_PKEY_PARAM_MGF1_DIGEST +# define OSSL_SIGNATURE_PARAM_MGF1_PROPERTIES OSSL_PKEY_PARAM_MGF1_PROPERTIES +# define OSSL_SIGNATURE_PARAM_MU "mu" +# define OSSL_SIGNATURE_PARAM_NONCE_TYPE "nonce-type" +# define OSSL_SIGNATURE_PARAM_PAD_MODE OSSL_PKEY_PARAM_PAD_MODE +# define OSSL_SIGNATURE_PARAM_PROPERTIES OSSL_PKEY_PARAM_PROPERTIES +# define OSSL_SIGNATURE_PARAM_PSS_SALTLEN "saltlen" +# define OSSL_SIGNATURE_PARAM_SIGNATURE "signature" +# define OSSL_SIGNATURE_PARAM_TEST_ENTROPY "test-entropy" +# define OSSL_SKEY_PARAM_KEY_LENGTH "key-length" +# define OSSL_SKEY_PARAM_RAW_BYTES "raw-bytes" +# define OSSL_STORE_PARAM_ALIAS "alias" +# define OSSL_STORE_PARAM_DIGEST "digest" +# define OSSL_STORE_PARAM_EXPECT "expect" +# define OSSL_STORE_PARAM_FINGERPRINT "fingerprint" +# define OSSL_STORE_PARAM_INPUT_TYPE "input-type" +# define OSSL_STORE_PARAM_ISSUER "name" +# define OSSL_STORE_PARAM_PROPERTIES "properties" +# define OSSL_STORE_PARAM_SERIAL "serial" +# define OSSL_STORE_PARAM_SUBJECT "subject" + +# ifdef __cplusplus +} +# endif + +#endif diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/include/openssl/crmf.h b/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/include/openssl/crmf.h index 71b747ed33d239..4bf550fd47daa9 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/include/openssl/crmf.h +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/include/openssl/crmf.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/crmf.h.in * - * Copyright 2007-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2007-2025 The OpenSSL Project Authors. All Rights Reserved. * Copyright Nokia 2007-2019 * Copyright Siemens AG 2015-2019 * @@ -26,6 +26,7 @@ # include # include # include /* for GENERAL_NAME etc. */ +# include /* explicit #includes not strictly needed since implied by the above: */ # include @@ -43,9 +44,12 @@ extern "C" { # define OSSL_CRMF_SUBSEQUENTMESSAGE_ENCRCERT 0 # define OSSL_CRMF_SUBSEQUENTMESSAGE_CHALLENGERESP 1 - typedef struct ossl_crmf_encryptedvalue_st OSSL_CRMF_ENCRYPTEDVALUE; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_ENCRYPTEDVALUE) + +typedef struct ossl_crmf_encryptedkey_st OSSL_CRMF_ENCRYPTEDKEY; +DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_ENCRYPTEDKEY) + typedef struct ossl_crmf_msg_st OSSL_CRMF_MSG; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_MSG) DECLARE_ASN1_DUP_FUNCTION(OSSL_CRMF_MSG) @@ -77,6 +81,36 @@ SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CRMF_MSG, OSSL_CRMF_MSG, OSSL_CRMF_MSG) #define sk_OSSL_CRMF_MSG_set_cmp_func(sk, cmp) ((sk_OSSL_CRMF_MSG_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CRMF_MSG_sk_type(sk), ossl_check_OSSL_CRMF_MSG_compfunc_type(cmp))) typedef struct ossl_crmf_attributetypeandvalue_st OSSL_CRMF_ATTRIBUTETYPEANDVALUE; +void OSSL_CRMF_ATTRIBUTETYPEANDVALUE_free(OSSL_CRMF_ATTRIBUTETYPEANDVALUE *v); +DECLARE_ASN1_DUP_FUNCTION(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CRMF_ATTRIBUTETYPEANDVALUE, OSSL_CRMF_ATTRIBUTETYPEANDVALUE, OSSL_CRMF_ATTRIBUTETYPEANDVALUE) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_value(sk, idx) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_value(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), (idx))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_new(cmp) ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_new(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_compfunc_type(cmp))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_new_null() ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_new_null()) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_new_reserve(cmp, n) ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_compfunc_type(cmp), (n))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), (n)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_free(sk) OPENSSL_sk_free(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_delete(sk, i) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_delete(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), (i))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_delete_ptr(sk, ptr) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_pop(sk) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_pop(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_shift(sk) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_shift(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk),ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_freefunc_type(freefunc)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr), (idx)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_set(sk, idx, ptr) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_set(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), (idx), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr), pnum) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_dup(sk) ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_dup(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_copyfunc_type(copyfunc), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_freefunc_type(freefunc))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_set_cmp_func(sk, cmp) ((sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_compfunc_type(cmp))) + + typedef struct ossl_crmf_pbmparameter_st OSSL_CRMF_PBMPARAMETER; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_PBMPARAMETER) typedef struct ossl_crmf_poposigningkey_st OSSL_CRMF_POPOSIGNINGKEY; @@ -118,6 +152,7 @@ typedef struct ossl_crmf_singlepubinfo_st OSSL_CRMF_SINGLEPUBINFO; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_SINGLEPUBINFO) typedef struct ossl_crmf_certtemplate_st OSSL_CRMF_CERTTEMPLATE; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_CERTTEMPLATE) +DECLARE_ASN1_DUP_FUNCTION(OSSL_CRMF_CERTTEMPLATE) typedef STACK_OF(OSSL_CRMF_MSG) OSSL_CRMF_MSGS; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_MSGS) @@ -198,12 +233,14 @@ int OSSL_CRMF_MSGS_verify_popo(const OSSL_CRMF_MSGS *reqs, int rid, int acceptRAVerified, OSSL_LIB_CTX *libctx, const char *propq); OSSL_CRMF_CERTTEMPLATE *OSSL_CRMF_MSG_get0_tmpl(const OSSL_CRMF_MSG *crm); -const ASN1_INTEGER -*OSSL_CRMF_CERTTEMPLATE_get0_serialNumber(const OSSL_CRMF_CERTTEMPLATE *tmpl); +X509_PUBKEY +*OSSL_CRMF_CERTTEMPLATE_get0_publicKey(const OSSL_CRMF_CERTTEMPLATE *tmpl); const X509_NAME *OSSL_CRMF_CERTTEMPLATE_get0_subject(const OSSL_CRMF_CERTTEMPLATE *tmpl); const X509_NAME *OSSL_CRMF_CERTTEMPLATE_get0_issuer(const OSSL_CRMF_CERTTEMPLATE *tmpl); +const ASN1_INTEGER +*OSSL_CRMF_CERTTEMPLATE_get0_serialNumber(const OSSL_CRMF_CERTTEMPLATE *tmpl); X509_EXTENSIONS *OSSL_CRMF_CERTTEMPLATE_get0_extensions(const OSSL_CRMF_CERTTEMPLATE *tmpl); const X509_NAME @@ -215,10 +252,24 @@ int OSSL_CRMF_CERTTEMPLATE_fill(OSSL_CRMF_CERTTEMPLATE *tmpl, const X509_NAME *subject, const X509_NAME *issuer, const ASN1_INTEGER *serial); -X509 -*OSSL_CRMF_ENCRYPTEDVALUE_get1_encCert(const OSSL_CRMF_ENCRYPTEDVALUE *ecert, - OSSL_LIB_CTX *libctx, const char *propq, - EVP_PKEY *pkey); +X509 *OSSL_CRMF_ENCRYPTEDVALUE_get1_encCert(const OSSL_CRMF_ENCRYPTEDVALUE *ecert, + OSSL_LIB_CTX *libctx, const char *propq, + EVP_PKEY *pkey); +X509 *OSSL_CRMF_ENCRYPTEDKEY_get1_encCert(const OSSL_CRMF_ENCRYPTEDKEY *ecert, + OSSL_LIB_CTX *libctx, const char *propq, + EVP_PKEY *pkey, unsigned int flags); +unsigned char +*OSSL_CRMF_ENCRYPTEDVALUE_decrypt(const OSSL_CRMF_ENCRYPTEDVALUE *enc, + OSSL_LIB_CTX *libctx, const char *propq, + EVP_PKEY *pkey, int *outlen); +EVP_PKEY *OSSL_CRMF_ENCRYPTEDKEY_get1_pkey(const OSSL_CRMF_ENCRYPTEDKEY *encryptedKey, + X509_STORE *ts, STACK_OF(X509) *extra, EVP_PKEY *pkey, + X509 *cert, ASN1_OCTET_STRING *secret, + OSSL_LIB_CTX *libctx, const char *propq); +int OSSL_CRMF_MSG_centralkeygen_requested(const OSSL_CRMF_MSG *crm, const X509_REQ *p10cr); +# ifndef OPENSSL_NO_CMS +OSSL_CRMF_ENCRYPTEDKEY *OSSL_CRMF_ENCRYPTEDKEY_init_envdata(CMS_EnvelopedData *envdata); +# endif # ifdef __cplusplus } diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/include/openssl/crypto.h b/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/include/openssl/crypto.h index 3f40be6d8c61d5..fd2cfd3e5a9ac4 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/include/openssl/crypto.h +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/include/openssl/crypto.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/crypto.h.in * - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2024 The OpenSSL Project Authors. All Rights Reserved. * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved * * Licensed under the Apache License 2.0 (the "License"). You may not use @@ -85,9 +85,15 @@ int CRYPTO_THREAD_unlock(CRYPTO_RWLOCK *lock); void CRYPTO_THREAD_lock_free(CRYPTO_RWLOCK *lock); int CRYPTO_atomic_add(int *val, int amount, int *ret, CRYPTO_RWLOCK *lock); +int CRYPTO_atomic_add64(uint64_t *val, uint64_t op, uint64_t *ret, + CRYPTO_RWLOCK *lock); +int CRYPTO_atomic_and(uint64_t *val, uint64_t op, uint64_t *ret, + CRYPTO_RWLOCK *lock); int CRYPTO_atomic_or(uint64_t *val, uint64_t op, uint64_t *ret, CRYPTO_RWLOCK *lock); int CRYPTO_atomic_load(uint64_t *val, uint64_t *ret, CRYPTO_RWLOCK *lock); +int CRYPTO_atomic_load_int(int *val, int *ret, CRYPTO_RWLOCK *lock); +int CRYPTO_atomic_store(uint64_t *dst, uint64_t val, CRYPTO_RWLOCK *lock); /* No longer needed, so this is a no-op */ #define OPENSSL_malloc_init() while(0) continue @@ -96,6 +102,9 @@ int CRYPTO_atomic_load(uint64_t *val, uint64_t *ret, CRYPTO_RWLOCK *lock); CRYPTO_malloc(num, OPENSSL_FILE, OPENSSL_LINE) # define OPENSSL_zalloc(num) \ CRYPTO_zalloc(num, OPENSSL_FILE, OPENSSL_LINE) +# define OPENSSL_aligned_alloc(num, alignment, freeptr) \ + CRYPTO_aligned_alloc(num, alignment, freeptr, \ + OPENSSL_FILE, OPENSSL_LINE) # define OPENSSL_realloc(addr, num) \ CRYPTO_realloc(addr, num, OPENSSL_FILE, OPENSSL_LINE) # define OPENSSL_clear_realloc(addr, old_num, num) \ @@ -124,6 +133,7 @@ int CRYPTO_atomic_load(uint64_t *val, uint64_t *ret, CRYPTO_RWLOCK *lock); size_t OPENSSL_strlcpy(char *dst, const char *src, size_t siz); size_t OPENSSL_strlcat(char *dst, const char *src, size_t siz); size_t OPENSSL_strnlen(const char *str, size_t maxlen); +int OPENSSL_strtoul(const char *str, char **endptr, int base, unsigned long *num); int OPENSSL_buf2hexstr_ex(char *str, size_t str_n, size_t *strlength, const unsigned char *buf, size_t buflen, const char sep); @@ -160,6 +170,7 @@ const char *OpenSSL_version(int type); # define OPENSSL_FULL_VERSION_STRING 7 # define OPENSSL_MODULES_DIR 8 # define OPENSSL_CPU_INFO 9 +# define OPENSSL_WINCTX 10 const char *OPENSSL_info(int type); /* @@ -174,6 +185,7 @@ const char *OPENSSL_info(int type); # define OPENSSL_INFO_LIST_SEPARATOR 1006 # define OPENSSL_INFO_SEED_SOURCE 1007 # define OPENSSL_INFO_CPU_SETTINGS 1008 +# define OPENSSL_INFO_WINDOWS_CONTEXT 1009 int OPENSSL_issetugid(void); @@ -341,11 +353,14 @@ void CRYPTO_get_mem_functions(CRYPTO_malloc_fn *malloc_fn, CRYPTO_realloc_fn *realloc_fn, CRYPTO_free_fn *free_fn); -void *CRYPTO_malloc(size_t num, const char *file, int line); -void *CRYPTO_zalloc(size_t num, const char *file, int line); -void *CRYPTO_memdup(const void *str, size_t siz, const char *file, int line); -char *CRYPTO_strdup(const char *str, const char *file, int line); -char *CRYPTO_strndup(const char *str, size_t s, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_malloc(size_t num, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_zalloc(size_t num, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_aligned_alloc(size_t num, size_t align, + void **freeptr, const char *file, + int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_memdup(const void *str, size_t siz, const char *file, int line); +OSSL_CRYPTO_ALLOC char *CRYPTO_strdup(const char *str, const char *file, int line); +OSSL_CRYPTO_ALLOC char *CRYPTO_strndup(const char *str, size_t s, const char *file, int line); void CRYPTO_free(void *ptr, const char *file, int line); void CRYPTO_clear_free(void *ptr, size_t num, const char *file, int line); void *CRYPTO_realloc(void *addr, size_t num, const char *file, int line); @@ -354,8 +369,8 @@ void *CRYPTO_clear_realloc(void *addr, size_t old_num, size_t num, int CRYPTO_secure_malloc_init(size_t sz, size_t minsize); int CRYPTO_secure_malloc_done(void); -void *CRYPTO_secure_malloc(size_t num, const char *file, int line); -void *CRYPTO_secure_zalloc(size_t num, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_secure_malloc(size_t num, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_secure_zalloc(size_t num, const char *file, int line); void CRYPTO_secure_free(void *ptr, const char *file, int line); void CRYPTO_secure_clear_free(void *ptr, size_t num, const char *file, int line); @@ -376,6 +391,9 @@ void OPENSSL_cleanse(void *ptr, size_t len); # define CRYPTO_MEM_CHECK_ENABLE 0x2 /* Control and mode bit */ # define CRYPTO_MEM_CHECK_DISABLE 0x3 /* Control only */ +/* max allowed length for value of OPENSSL_MALLOC_FAILURES env var. */ +# define CRYPTO_MEM_CHECK_MAX_FS 256 + void CRYPTO_get_alloc_counts(int *mcount, int *rcount, int *fcount); # ifndef OPENSSL_NO_DEPRECATED_3_0 # define OPENSSL_mem_debug_push(info) \ @@ -551,6 +569,13 @@ int OSSL_LIB_CTX_load_config(OSSL_LIB_CTX *ctx, const char *config_file); void OSSL_LIB_CTX_free(OSSL_LIB_CTX *); OSSL_LIB_CTX *OSSL_LIB_CTX_get0_global_default(void); OSSL_LIB_CTX *OSSL_LIB_CTX_set0_default(OSSL_LIB_CTX *libctx); +int OSSL_LIB_CTX_get_conf_diagnostics(OSSL_LIB_CTX *ctx); +void OSSL_LIB_CTX_set_conf_diagnostics(OSSL_LIB_CTX *ctx, int value); + +void OSSL_sleep(uint64_t millis); + + +void *OSSL_LIB_CTX_get_data(OSSL_LIB_CTX *ctx, int index); # ifdef __cplusplus } diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/include/openssl/ct.h b/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/include/openssl/ct.h index b6dd8c3547710a..e6dd1192a4e0b3 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/include/openssl/ct.h +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/include/openssl/ct.h @@ -133,7 +133,7 @@ typedef enum { */ CT_POLICY_EVAL_CTX *CT_POLICY_EVAL_CTX_new_ex(OSSL_LIB_CTX *libctx, const char *propq); - + /* * The same as CT_POLICY_EVAL_CTX_new_ex() but the default library * context and property query string is used. diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/include/openssl/err.h b/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/include/openssl/err.h index 2abf2483488181..daca18e7b757b0 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/include/openssl/err.h +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/include/openssl/err.h @@ -1,5 +1,5 @@ /* - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -372,7 +372,7 @@ typedef struct ERR_string_data_st { } ERR_STRING_DATA; DEFINE_LHASH_OF_INTERNAL(ERR_STRING_DATA); -#define lh_ERR_STRING_DATA_new(hfn, cmp) ((LHASH_OF(ERR_STRING_DATA) *)OPENSSL_LH_new(ossl_check_ERR_STRING_DATA_lh_hashfunc_type(hfn), ossl_check_ERR_STRING_DATA_lh_compfunc_type(cmp))) +#define lh_ERR_STRING_DATA_new(hfn, cmp) ((LHASH_OF(ERR_STRING_DATA) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new(ossl_check_ERR_STRING_DATA_lh_hashfunc_type(hfn), ossl_check_ERR_STRING_DATA_lh_compfunc_type(cmp)), lh_ERR_STRING_DATA_hash_thunk, lh_ERR_STRING_DATA_comp_thunk, lh_ERR_STRING_DATA_doall_thunk, lh_ERR_STRING_DATA_doall_arg_thunk)) #define lh_ERR_STRING_DATA_free(lh) OPENSSL_LH_free(ossl_check_ERR_STRING_DATA_lh_type(lh)) #define lh_ERR_STRING_DATA_flush(lh) OPENSSL_LH_flush(ossl_check_ERR_STRING_DATA_lh_type(lh)) #define lh_ERR_STRING_DATA_insert(lh, ptr) ((ERR_STRING_DATA *)OPENSSL_LH_insert(ossl_check_ERR_STRING_DATA_lh_type(lh), ossl_check_ERR_STRING_DATA_lh_plain_type(ptr))) @@ -496,6 +496,14 @@ int ERR_get_next_error_library(void); int ERR_set_mark(void); int ERR_pop_to_mark(void); int ERR_clear_last_mark(void); +int ERR_count_to_mark(void); +int ERR_pop(void); + +ERR_STATE *OSSL_ERR_STATE_new(void); +void OSSL_ERR_STATE_save(ERR_STATE *es); +void OSSL_ERR_STATE_save_to_mark(ERR_STATE *es); +void OSSL_ERR_STATE_restore(const ERR_STATE *es); +void OSSL_ERR_STATE_free(ERR_STATE *es); #ifdef __cplusplus } diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/include/openssl/fipskey.h b/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/include/openssl/fipskey.h index 42ba014b313ba8..929db18c678364 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/include/openssl/fipskey.h +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/include/openssl/fipskey.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/fipskey.h.in * - * Copyright 2020-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2020-2024 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -29,6 +29,11 @@ extern "C" { */ #define FIPS_KEY_STRING "f4556650ac31d35461610bac4ed81b1a181b2d8a43ea2854cbae22ca74560813" +/* + * The FIPS provider vendor name, as a string. + */ +#define FIPS_VENDOR "OpenSSL FIPS Provider" + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/include/openssl/lhash.h b/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/include/openssl/lhash.h index 39dd6254acdeb6..62c55b20fd9716 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/include/openssl/lhash.h +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/include/openssl/lhash.h @@ -1,5 +1,5 @@ /* - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2024 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -24,6 +24,9 @@ # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -31,9 +34,13 @@ extern "C" { typedef struct lhash_node_st OPENSSL_LH_NODE; typedef int (*OPENSSL_LH_COMPFUNC) (const void *, const void *); +typedef int (*OPENSSL_LH_COMPFUNCTHUNK) (const void *, const void *, OPENSSL_LH_COMPFUNC cfn); typedef unsigned long (*OPENSSL_LH_HASHFUNC) (const void *); +typedef unsigned long (*OPENSSL_LH_HASHFUNCTHUNK) (const void *, OPENSSL_LH_HASHFUNC hfn); typedef void (*OPENSSL_LH_DOALL_FUNC) (void *); +typedef void (*OPENSSL_LH_DOALL_FUNC_THUNK) (void *, OPENSSL_LH_DOALL_FUNC doall); typedef void (*OPENSSL_LH_DOALL_FUNCARG) (void *, void *); +typedef void (*OPENSSL_LH_DOALL_FUNCARG_THUNK) (void *, void *, OPENSSL_LH_DOALL_FUNCARG doall); typedef struct lhash_st OPENSSL_LHASH; /* @@ -79,26 +86,40 @@ typedef struct lhash_st OPENSSL_LHASH; int OPENSSL_LH_error(OPENSSL_LHASH *lh); OPENSSL_LHASH *OPENSSL_LH_new(OPENSSL_LH_HASHFUNC h, OPENSSL_LH_COMPFUNC c); +OPENSSL_LHASH *OPENSSL_LH_set_thunks(OPENSSL_LHASH *lh, + OPENSSL_LH_HASHFUNCTHUNK hw, + OPENSSL_LH_COMPFUNCTHUNK cw, + OPENSSL_LH_DOALL_FUNC_THUNK daw, + OPENSSL_LH_DOALL_FUNCARG_THUNK daaw); void OPENSSL_LH_free(OPENSSL_LHASH *lh); void OPENSSL_LH_flush(OPENSSL_LHASH *lh); void *OPENSSL_LH_insert(OPENSSL_LHASH *lh, void *data); void *OPENSSL_LH_delete(OPENSSL_LHASH *lh, const void *data); void *OPENSSL_LH_retrieve(OPENSSL_LHASH *lh, const void *data); void OPENSSL_LH_doall(OPENSSL_LHASH *lh, OPENSSL_LH_DOALL_FUNC func); -void OPENSSL_LH_doall_arg(OPENSSL_LHASH *lh, OPENSSL_LH_DOALL_FUNCARG func, void *arg); +void OPENSSL_LH_doall_arg(OPENSSL_LHASH *lh, + OPENSSL_LH_DOALL_FUNCARG func, void *arg); +void OPENSSL_LH_doall_arg_thunk(OPENSSL_LHASH *lh, + OPENSSL_LH_DOALL_FUNCARG_THUNK daaw, + OPENSSL_LH_DOALL_FUNCARG fn, void *arg); + unsigned long OPENSSL_LH_strhash(const char *c); unsigned long OPENSSL_LH_num_items(const OPENSSL_LHASH *lh); unsigned long OPENSSL_LH_get_down_load(const OPENSSL_LHASH *lh); void OPENSSL_LH_set_down_load(OPENSSL_LHASH *lh, unsigned long down_load); # ifndef OPENSSL_NO_STDIO -void OPENSSL_LH_stats(const OPENSSL_LHASH *lh, FILE *fp); -void OPENSSL_LH_node_stats(const OPENSSL_LHASH *lh, FILE *fp); -void OPENSSL_LH_node_usage_stats(const OPENSSL_LHASH *lh, FILE *fp); +# ifndef OPENSSL_NO_DEPRECATED_3_1 +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_stats(const OPENSSL_LHASH *lh, FILE *fp); +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_node_stats(const OPENSSL_LHASH *lh, FILE *fp); +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_node_usage_stats(const OPENSSL_LHASH *lh, FILE *fp); +# endif +# endif +# ifndef OPENSSL_NO_DEPRECATED_3_1 +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_stats_bio(const OPENSSL_LHASH *lh, BIO *out); +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_node_stats_bio(const OPENSSL_LHASH *lh, BIO *out); +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_node_usage_stats_bio(const OPENSSL_LHASH *lh, BIO *out); # endif -void OPENSSL_LH_stats_bio(const OPENSSL_LHASH *lh, BIO *out); -void OPENSSL_LH_node_stats_bio(const OPENSSL_LHASH *lh, BIO *out); -void OPENSSL_LH_node_usage_stats_bio(const OPENSSL_LHASH *lh, BIO *out); # ifndef OPENSSL_NO_DEPRECATED_1_1_0 # define _LHASH OPENSSL_LHASH @@ -129,110 +150,190 @@ void OPENSSL_LH_node_usage_stats_bio(const OPENSSL_LHASH *lh, BIO *out); /* Helper macro for internal use */ # define DEFINE_LHASH_OF_INTERNAL(type) \ - LHASH_OF(type) { union lh_##type##_dummy { void* d1; unsigned long d2; int d3; } dummy; }; \ + LHASH_OF(type) { \ + union lh_##type##_dummy { void* d1; unsigned long d2; int d3; } dummy; \ + }; \ typedef int (*lh_##type##_compfunc)(const type *a, const type *b); \ typedef unsigned long (*lh_##type##_hashfunc)(const type *a); \ typedef void (*lh_##type##_doallfunc)(type *a); \ - static ossl_unused ossl_inline type *ossl_check_##type##_lh_plain_type(type *ptr) \ + static ossl_inline unsigned long lh_##type##_hash_thunk(const void *data, OPENSSL_LH_HASHFUNC hfn) \ + { \ + unsigned long (*hfn_conv)(const type *) = (unsigned long (*)(const type *))hfn; \ + return hfn_conv((const type *)data); \ + } \ + static ossl_inline int lh_##type##_comp_thunk(const void *da, const void *db, OPENSSL_LH_COMPFUNC cfn) \ + { \ + int (*cfn_conv)(const type *, const type *) = (int (*)(const type *, const type *))cfn; \ + return cfn_conv((const type *)da, (const type *)db); \ + } \ + static ossl_inline void lh_##type##_doall_thunk(void *node, OPENSSL_LH_DOALL_FUNC doall) \ + { \ + void (*doall_conv)(type *) = (void (*)(type *))doall; \ + doall_conv((type *)node); \ + } \ + static ossl_inline void lh_##type##_doall_arg_thunk(void *node, void *arg, OPENSSL_LH_DOALL_FUNCARG doall) \ + { \ + void (*doall_conv)(type *, void *) = (void (*)(type *, void *))doall; \ + doall_conv((type *)node, arg); \ + } \ + static ossl_unused ossl_inline type *\ + ossl_check_##type##_lh_plain_type(type *ptr) \ { \ return ptr; \ } \ - static ossl_unused ossl_inline const type *ossl_check_const_##type##_lh_plain_type(const type *ptr) \ + static ossl_unused ossl_inline const type * \ + ossl_check_const_##type##_lh_plain_type(const type *ptr) \ { \ return ptr; \ } \ - static ossl_unused ossl_inline const OPENSSL_LHASH *ossl_check_const_##type##_lh_type(const LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline const OPENSSL_LHASH * \ + ossl_check_const_##type##_lh_type(const LHASH_OF(type) *lh) \ { \ return (const OPENSSL_LHASH *)lh; \ } \ - static ossl_unused ossl_inline OPENSSL_LHASH *ossl_check_##type##_lh_type(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline OPENSSL_LHASH * \ + ossl_check_##type##_lh_type(LHASH_OF(type) *lh) \ { \ return (OPENSSL_LHASH *)lh; \ } \ - static ossl_unused ossl_inline OPENSSL_LH_COMPFUNC ossl_check_##type##_lh_compfunc_type(lh_##type##_compfunc cmp) \ + static ossl_unused ossl_inline OPENSSL_LH_COMPFUNC \ + ossl_check_##type##_lh_compfunc_type(lh_##type##_compfunc cmp) \ { \ return (OPENSSL_LH_COMPFUNC)cmp; \ } \ - static ossl_unused ossl_inline OPENSSL_LH_HASHFUNC ossl_check_##type##_lh_hashfunc_type(lh_##type##_hashfunc hfn) \ + static ossl_unused ossl_inline OPENSSL_LH_HASHFUNC \ + ossl_check_##type##_lh_hashfunc_type(lh_##type##_hashfunc hfn) \ { \ return (OPENSSL_LH_HASHFUNC)hfn; \ } \ - static ossl_unused ossl_inline OPENSSL_LH_DOALL_FUNC ossl_check_##type##_lh_doallfunc_type(lh_##type##_doallfunc dfn) \ + static ossl_unused ossl_inline OPENSSL_LH_DOALL_FUNC \ + ossl_check_##type##_lh_doallfunc_type(lh_##type##_doallfunc dfn) \ { \ return (OPENSSL_LH_DOALL_FUNC)dfn; \ } \ LHASH_OF(type) -# define DEFINE_LHASH_OF(type) \ - LHASH_OF(type) { union lh_##type##_dummy { void* d1; unsigned long d2; int d3; } dummy; }; \ - static ossl_unused ossl_inline LHASH_OF(type) *lh_##type##_new(unsigned long (*hfn)(const type *), \ - int (*cfn)(const type *, const type *)) \ +# ifndef OPENSSL_NO_DEPRECATED_3_1 +# define DEFINE_LHASH_OF_DEPRECATED(type) \ + static ossl_unused ossl_inline void \ + lh_##type##_node_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ { \ - return (LHASH_OF(type) *) \ - OPENSSL_LH_new((OPENSSL_LH_HASHFUNC)hfn, (OPENSSL_LH_COMPFUNC)cfn); \ + OPENSSL_LH_node_stats_bio((const OPENSSL_LHASH *)lh, out); \ } \ - static ossl_unused ossl_inline void lh_##type##_free(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline void \ + lh_##type##_node_usage_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + { \ + OPENSSL_LH_node_usage_stats_bio((const OPENSSL_LHASH *)lh, out); \ + } \ + static ossl_unused ossl_inline void \ + lh_##type##_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + { \ + OPENSSL_LH_stats_bio((const OPENSSL_LHASH *)lh, out); \ + } +# else +# define DEFINE_LHASH_OF_DEPRECATED(type) +# endif + +# define DEFINE_LHASH_OF_EX(type) \ + LHASH_OF(type) { \ + union lh_##type##_dummy { void* d1; unsigned long d2; int d3; } dummy; \ + }; \ + static unsigned long \ + lh_##type##_hfn_thunk(const void *data, OPENSSL_LH_HASHFUNC hfn) \ + { \ + unsigned long (*hfn_conv)(const type *) = (unsigned long (*)(const type *))hfn; \ + return hfn_conv((const type *)data); \ + } \ + static int lh_##type##_cfn_thunk(const void *da, const void *db, OPENSSL_LH_COMPFUNC cfn) \ + { \ + int (*cfn_conv)(const type *, const type *) = (int (*)(const type *, const type *))cfn; \ + return cfn_conv((const type *)da, (const type *)db); \ + } \ + static ossl_unused ossl_inline void \ + lh_##type##_free(LHASH_OF(type) *lh) \ { \ OPENSSL_LH_free((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline void lh_##type##_flush(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline void \ + lh_##type##_flush(LHASH_OF(type) *lh) \ { \ OPENSSL_LH_flush((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline type *lh_##type##_insert(LHASH_OF(type) *lh, type *d) \ + static ossl_unused ossl_inline type * \ + lh_##type##_insert(LHASH_OF(type) *lh, type *d) \ { \ return (type *)OPENSSL_LH_insert((OPENSSL_LHASH *)lh, d); \ } \ - static ossl_unused ossl_inline type *lh_##type##_delete(LHASH_OF(type) *lh, const type *d) \ + static ossl_unused ossl_inline type * \ + lh_##type##_delete(LHASH_OF(type) *lh, const type *d) \ { \ return (type *)OPENSSL_LH_delete((OPENSSL_LHASH *)lh, d); \ } \ - static ossl_unused ossl_inline type *lh_##type##_retrieve(LHASH_OF(type) *lh, const type *d) \ + static ossl_unused ossl_inline type * \ + lh_##type##_retrieve(LHASH_OF(type) *lh, const type *d) \ { \ return (type *)OPENSSL_LH_retrieve((OPENSSL_LHASH *)lh, d); \ } \ - static ossl_unused ossl_inline int lh_##type##_error(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline int \ + lh_##type##_error(LHASH_OF(type) *lh) \ { \ return OPENSSL_LH_error((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline unsigned long lh_##type##_num_items(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline unsigned long \ + lh_##type##_num_items(LHASH_OF(type) *lh) \ { \ return OPENSSL_LH_num_items((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline void lh_##type##_node_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + static ossl_unused ossl_inline unsigned long \ + lh_##type##_get_down_load(LHASH_OF(type) *lh) \ { \ - OPENSSL_LH_node_stats_bio((const OPENSSL_LHASH *)lh, out); \ + return OPENSSL_LH_get_down_load((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline void lh_##type##_node_usage_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + static ossl_unused ossl_inline void \ + lh_##type##_set_down_load(LHASH_OF(type) *lh, unsigned long dl) \ { \ - OPENSSL_LH_node_usage_stats_bio((const OPENSSL_LHASH *)lh, out); \ + OPENSSL_LH_set_down_load((OPENSSL_LHASH *)lh, dl); \ } \ - static ossl_unused ossl_inline void lh_##type##_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall_thunk(void *node, OPENSSL_LH_DOALL_FUNC doall) \ { \ - OPENSSL_LH_stats_bio((const OPENSSL_LHASH *)lh, out); \ + void (*doall_conv)(type *) = (void (*)(type *))doall; \ + doall_conv((type *)node); \ } \ - static ossl_unused ossl_inline unsigned long lh_##type##_get_down_load(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall_arg_thunk(void *node, void *arg, OPENSSL_LH_DOALL_FUNCARG doall) \ { \ - return OPENSSL_LH_get_down_load((OPENSSL_LHASH *)lh); \ + void (*doall_conv)(type *, void *) = (void (*)(type *, void *))doall; \ + doall_conv((type *)node, arg); \ } \ - static ossl_unused ossl_inline void lh_##type##_set_down_load(LHASH_OF(type) *lh, unsigned long dl) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall(LHASH_OF(type) *lh, void (*doall)(type *)) \ { \ - OPENSSL_LH_set_down_load((OPENSSL_LHASH *)lh, dl); \ + OPENSSL_LH_doall((OPENSSL_LHASH *)lh, (OPENSSL_LH_DOALL_FUNC)doall); \ } \ - static ossl_unused ossl_inline void lh_##type##_doall(LHASH_OF(type) *lh, \ - void (*doall)(type *)) \ + static ossl_unused ossl_inline LHASH_OF(type) * \ + lh_##type##_new(unsigned long (*hfn)(const type *), \ + int (*cfn)(const type *, const type *)) \ { \ - OPENSSL_LH_doall((OPENSSL_LHASH *)lh, (OPENSSL_LH_DOALL_FUNC)doall); \ + return (LHASH_OF(type) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new((OPENSSL_LH_HASHFUNC)hfn, (OPENSSL_LH_COMPFUNC)cfn), \ + lh_##type##_hfn_thunk, lh_##type##_cfn_thunk, \ + lh_##type##_doall_thunk, \ + lh_##type##_doall_arg_thunk); \ } \ - static ossl_unused ossl_inline void lh_##type##_doall_arg(LHASH_OF(type) *lh, \ - void (*doallarg)(type *, void *), \ - void *arg) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall_arg(LHASH_OF(type) *lh, \ + void (*doallarg)(type *, void *), void *arg) \ { \ OPENSSL_LH_doall_arg((OPENSSL_LHASH *)lh, \ (OPENSSL_LH_DOALL_FUNCARG)doallarg, arg); \ } \ LHASH_OF(type) +# define DEFINE_LHASH_OF(type) \ + DEFINE_LHASH_OF_EX(type); \ + DEFINE_LHASH_OF_DEPRECATED(type) \ + LHASH_OF(type) + #define IMPLEMENT_LHASH_DOALL_ARG_CONST(type, argtype) \ int_implement_lhash_doall(type, argtype, const type) @@ -240,17 +341,26 @@ void OPENSSL_LH_node_usage_stats_bio(const OPENSSL_LHASH *lh, BIO *out); int_implement_lhash_doall(type, argtype, type) #define int_implement_lhash_doall(type, argtype, cbargtype) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall_##argtype##_thunk(void *node, void *arg, OPENSSL_LH_DOALL_FUNCARG fn) \ + { \ + void (*fn_conv)(cbargtype *, argtype *) = (void (*)(cbargtype *, argtype *))fn; \ + fn_conv((cbargtype *)node, (argtype *)arg); \ + } \ static ossl_unused ossl_inline void \ lh_##type##_doall_##argtype(LHASH_OF(type) *lh, \ void (*fn)(cbargtype *, argtype *), \ argtype *arg) \ { \ - OPENSSL_LH_doall_arg((OPENSSL_LHASH *)lh, (OPENSSL_LH_DOALL_FUNCARG)fn, (void *)arg); \ + OPENSSL_LH_doall_arg_thunk((OPENSSL_LHASH *)lh, \ + lh_##type##_doall_##argtype##_thunk, \ + (OPENSSL_LH_DOALL_FUNCARG)fn, \ + (void *)arg); \ } \ LHASH_OF(type) DEFINE_LHASH_OF_INTERNAL(OPENSSL_STRING); -#define lh_OPENSSL_STRING_new(hfn, cmp) ((LHASH_OF(OPENSSL_STRING) *)OPENSSL_LH_new(ossl_check_OPENSSL_STRING_lh_hashfunc_type(hfn), ossl_check_OPENSSL_STRING_lh_compfunc_type(cmp))) +#define lh_OPENSSL_STRING_new(hfn, cmp) ((LHASH_OF(OPENSSL_STRING) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new(ossl_check_OPENSSL_STRING_lh_hashfunc_type(hfn), ossl_check_OPENSSL_STRING_lh_compfunc_type(cmp)), lh_OPENSSL_STRING_hash_thunk, lh_OPENSSL_STRING_comp_thunk, lh_OPENSSL_STRING_doall_thunk, lh_OPENSSL_STRING_doall_arg_thunk)) #define lh_OPENSSL_STRING_free(lh) OPENSSL_LH_free(ossl_check_OPENSSL_STRING_lh_type(lh)) #define lh_OPENSSL_STRING_flush(lh) OPENSSL_LH_flush(ossl_check_OPENSSL_STRING_lh_type(lh)) #define lh_OPENSSL_STRING_insert(lh, ptr) ((OPENSSL_STRING *)OPENSSL_LH_insert(ossl_check_OPENSSL_STRING_lh_type(lh), ossl_check_OPENSSL_STRING_lh_plain_type(ptr))) @@ -265,7 +375,7 @@ DEFINE_LHASH_OF_INTERNAL(OPENSSL_STRING); #define lh_OPENSSL_STRING_set_down_load(lh, dl) OPENSSL_LH_set_down_load(ossl_check_OPENSSL_STRING_lh_type(lh), dl) #define lh_OPENSSL_STRING_doall(lh, dfn) OPENSSL_LH_doall(ossl_check_OPENSSL_STRING_lh_type(lh), ossl_check_OPENSSL_STRING_lh_doallfunc_type(dfn)) DEFINE_LHASH_OF_INTERNAL(OPENSSL_CSTRING); -#define lh_OPENSSL_CSTRING_new(hfn, cmp) ((LHASH_OF(OPENSSL_CSTRING) *)OPENSSL_LH_new(ossl_check_OPENSSL_CSTRING_lh_hashfunc_type(hfn), ossl_check_OPENSSL_CSTRING_lh_compfunc_type(cmp))) +#define lh_OPENSSL_CSTRING_new(hfn, cmp) ((LHASH_OF(OPENSSL_CSTRING) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new(ossl_check_OPENSSL_CSTRING_lh_hashfunc_type(hfn), ossl_check_OPENSSL_CSTRING_lh_compfunc_type(cmp)), lh_OPENSSL_CSTRING_hash_thunk, lh_OPENSSL_CSTRING_comp_thunk, lh_OPENSSL_CSTRING_doall_thunk, lh_OPENSSL_CSTRING_doall_arg_thunk)) #define lh_OPENSSL_CSTRING_free(lh) OPENSSL_LH_free(ossl_check_OPENSSL_CSTRING_lh_type(lh)) #define lh_OPENSSL_CSTRING_flush(lh) OPENSSL_LH_flush(ossl_check_OPENSSL_CSTRING_lh_type(lh)) #define lh_OPENSSL_CSTRING_insert(lh, ptr) ((OPENSSL_CSTRING *)OPENSSL_LH_insert(ossl_check_OPENSSL_CSTRING_lh_type(lh), ossl_check_OPENSSL_CSTRING_lh_plain_type(ptr))) diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/include/openssl/opensslv.h b/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/include/openssl/opensslv.h index 5fb5bc63056fe0..dd50d89cb9982d 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/include/openssl/opensslv.h +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/include/openssl/opensslv.h @@ -28,8 +28,8 @@ extern "C" { * These macros express version number MAJOR.MINOR.PATCH exactly */ # define OPENSSL_VERSION_MAJOR 3 -# define OPENSSL_VERSION_MINOR 0 -# define OPENSSL_VERSION_PATCH 17 +# define OPENSSL_VERSION_MINOR 5 +# define OPENSSL_VERSION_PATCH 1 /* * Additional version information @@ -74,8 +74,8 @@ extern "C" { * longer variant with OPENSSL_VERSION_PRE_RELEASE_STR and * OPENSSL_VERSION_BUILD_METADATA_STR appended. */ -# define OPENSSL_VERSION_STR "3.0.17" -# define OPENSSL_FULL_VERSION_STR "3.0.17" +# define OPENSSL_VERSION_STR "3.5.1" +# define OPENSSL_FULL_VERSION_STR "3.5.1" /* * SECTION 3: ADDITIONAL METADATA @@ -88,7 +88,7 @@ extern "C" { * SECTION 4: BACKWARD COMPATIBILITY */ -# define OPENSSL_VERSION_TEXT "OpenSSL 3.0.17 1 Jul 2025" +# define OPENSSL_VERSION_TEXT "OpenSSL 3.5.1 1 Jul 2025" /* Synthesize OPENSSL_VERSION_NUMBER with the layout 0xMNN00PPSL */ # ifdef OPENSSL_VERSION_PRE_RELEASE diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/include/openssl/pkcs12.h b/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/include/openssl/pkcs12.h index c5e0cab06491ec..0809645dad0bbf 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/include/openssl/pkcs12.h +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/include/openssl/pkcs12.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/pkcs12.h.in * - * Copyright 1999-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1999-2024 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -25,6 +25,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -41,6 +44,7 @@ extern "C" { # define PKCS12_MAC_KEY_LENGTH 20 +/* The macro is expected to be used only internally. Kept for backwards compatibility. */ # define PKCS12_SALT_LEN 8 /* It's not clear if these are actually needed... */ @@ -130,7 +134,9 @@ int PKCS12_SAFEBAG_get_bag_nid(const PKCS12_SAFEBAG *bag); const ASN1_TYPE *PKCS12_SAFEBAG_get0_bag_obj(const PKCS12_SAFEBAG *bag); const ASN1_OBJECT *PKCS12_SAFEBAG_get0_bag_type(const PKCS12_SAFEBAG *bag); +X509 *PKCS12_SAFEBAG_get1_cert_ex(const PKCS12_SAFEBAG *bag, OSSL_LIB_CTX *libctx, const char *propq); X509 *PKCS12_SAFEBAG_get1_cert(const PKCS12_SAFEBAG *bag); +X509_CRL *PKCS12_SAFEBAG_get1_crl_ex(const PKCS12_SAFEBAG *bag, OSSL_LIB_CTX *libctx, const char *propq); X509_CRL *PKCS12_SAFEBAG_get1_crl(const PKCS12_SAFEBAG *bag); const STACK_OF(PKCS12_SAFEBAG) * PKCS12_SAFEBAG_get0_safes(const PKCS12_SAFEBAG *bag); @@ -218,6 +224,7 @@ ASN1_TYPE *PKCS12_get_attr_gen(const STACK_OF(X509_ATTRIBUTE) *attrs, char *PKCS12_get_friendlyname(PKCS12_SAFEBAG *bag); const STACK_OF(X509_ATTRIBUTE) * PKCS12_SAFEBAG_get0_attrs(const PKCS12_SAFEBAG *bag); +void PKCS12_SAFEBAG_set0_attrs(PKCS12_SAFEBAG *bag, STACK_OF(X509_ATTRIBUTE) *attrs); unsigned char *PKCS12_pbe_crypt(const X509_ALGOR *algor, const char *pass, int passlen, const unsigned char *in, int inlen, @@ -285,6 +292,9 @@ int PKCS12_verify_mac(PKCS12 *p12, const char *pass, int passlen); int PKCS12_set_mac(PKCS12 *p12, const char *pass, int passlen, unsigned char *salt, int saltlen, int iter, const EVP_MD *md_type); +int PKCS12_set_pbmac1_pbkdf2(PKCS12 *p12, const char *pass, int passlen, + unsigned char *salt, int saltlen, int iter, + const EVP_MD *md_type, const char *prf_md_name); int PKCS12_setup_mac(PKCS12 *p12, int iter, unsigned char *salt, int saltlen, const EVP_MD *md_type); unsigned char *OPENSSL_asc2uni(const char *asc, int asclen, @@ -305,6 +315,7 @@ DECLARE_ASN1_ITEM(PKCS12_AUTHSAFES) void PKCS12_PBE_add(void); int PKCS12_parse(PKCS12 *p12, const char *pass, EVP_PKEY **pkey, X509 **cert, STACK_OF(X509) **ca); +typedef int PKCS12_create_cb(PKCS12_SAFEBAG *bag, void *cbarg); PKCS12 *PKCS12_create(const char *pass, const char *name, EVP_PKEY *pkey, X509 *cert, STACK_OF(X509) *ca, int nid_key, int nid_cert, int iter, int mac_iter, int keytype); @@ -312,6 +323,11 @@ PKCS12 *PKCS12_create_ex(const char *pass, const char *name, EVP_PKEY *pkey, X509 *cert, STACK_OF(X509) *ca, int nid_key, int nid_cert, int iter, int mac_iter, int keytype, OSSL_LIB_CTX *ctx, const char *propq); +PKCS12 *PKCS12_create_ex2(const char *pass, const char *name, EVP_PKEY *pkey, + X509 *cert, STACK_OF(X509) *ca, int nid_key, int nid_cert, + int iter, int mac_iter, int keytype, + OSSL_LIB_CTX *ctx, const char *propq, + PKCS12_create_cb *cb, void *cbarg); PKCS12_SAFEBAG *PKCS12_add_cert(STACK_OF(PKCS12_SAFEBAG) **pbags, X509 *cert); PKCS12_SAFEBAG *PKCS12_add_key(STACK_OF(PKCS12_SAFEBAG) **pbags, diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/include/openssl/pkcs7.h b/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/include/openssl/pkcs7.h index 0ce79bf4fa160e..fa68462aff973b 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/include/openssl/pkcs7.h +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/include/openssl/pkcs7.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/pkcs7.h.in * - * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -28,6 +28,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -131,8 +134,8 @@ SKM_DEFINE_STACK_OF_INTERNAL(PKCS7_RECIP_INFO, PKCS7_RECIP_INFO, PKCS7_RECIP_INF typedef struct pkcs7_signed_st { ASN1_INTEGER *version; /* version 1 */ STACK_OF(X509_ALGOR) *md_algs; /* md used */ - STACK_OF(X509) *cert; /* [ 0 ] */ - STACK_OF(X509_CRL) *crl; /* [ 1 ] */ + STACK_OF(X509) *cert; /* [ 0 ] */ /* name should be 'certificates' */ + STACK_OF(X509_CRL) *crl; /* [ 1 ] */ /* name should be 'crls' */ STACK_OF(PKCS7_SIGNER_INFO) *signer_info; struct pkcs7_st *contents; } PKCS7_SIGNED; @@ -158,8 +161,8 @@ typedef struct pkcs7_enveloped_st { typedef struct pkcs7_signedandenveloped_st { ASN1_INTEGER *version; /* version 1 */ STACK_OF(X509_ALGOR) *md_algs; /* md used */ - STACK_OF(X509) *cert; /* [ 0 ] */ - STACK_OF(X509_CRL) *crl; /* [ 1 ] */ + STACK_OF(X509) *cert; /* [ 0 ] */ /* name should be 'certificates' */ + STACK_OF(X509_CRL) *crl; /* [ 1 ] */ /* name should be 'crls' */ STACK_OF(PKCS7_SIGNER_INFO) *signer_info; PKCS7_ENC_CONTENT *enc_data; STACK_OF(PKCS7_RECIP_INFO) *recipientinfo; @@ -200,7 +203,7 @@ typedef struct pkcs7_st { /* NID_pkcs7_data */ ASN1_OCTET_STRING *data; /* NID_pkcs7_signed */ - PKCS7_SIGNED *sign; + PKCS7_SIGNED *sign; /* field name 'signed' would clash with C keyword */ /* NID_pkcs7_enveloped */ PKCS7_ENVELOPE *enveloped; /* NID_pkcs7_signedAndEnveloped */ @@ -341,13 +344,13 @@ int PKCS7_SIGNER_INFO_set(PKCS7_SIGNER_INFO *p7i, X509 *x509, EVP_PKEY *pkey, const EVP_MD *dgst); int PKCS7_SIGNER_INFO_sign(PKCS7_SIGNER_INFO *si); int PKCS7_add_signer(PKCS7 *p7, PKCS7_SIGNER_INFO *p7i); -int PKCS7_add_certificate(PKCS7 *p7, X509 *x509); -int PKCS7_add_crl(PKCS7 *p7, X509_CRL *x509); +int PKCS7_add_certificate(PKCS7 *p7, X509 *cert); +int PKCS7_add_crl(PKCS7 *p7, X509_CRL *crl); int PKCS7_content_new(PKCS7 *p7, int nid); int PKCS7_dataVerify(X509_STORE *cert_store, X509_STORE_CTX *ctx, BIO *bio, PKCS7 *p7, PKCS7_SIGNER_INFO *si); int PKCS7_signatureVerify(BIO *bio, PKCS7 *p7, PKCS7_SIGNER_INFO *si, - X509 *x509); + X509 *signer); BIO *PKCS7_dataInit(PKCS7 *p7, BIO *bio); int PKCS7_dataFinal(PKCS7 *p7, BIO *bio); diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/include/openssl/ssl.h b/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/include/openssl/ssl.h index 3df725c56d6c5e..7e3d89c7ef3dc9 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/include/openssl/ssl.h +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/include/openssl/ssl.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/ssl.h.in * - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved * Copyright 2005 Nokia. All rights reserved. * @@ -24,6 +24,7 @@ # endif # include +# include # include # include # include @@ -42,6 +43,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -231,10 +235,8 @@ typedef struct ssl_cipher_st SSL_CIPHER; typedef struct ssl_session_st SSL_SESSION; typedef struct tls_sigalgs_st TLS_SIGALGS; typedef struct ssl_conf_ctx_st SSL_CONF_CTX; -typedef struct ssl_comp_st SSL_COMP; STACK_OF(SSL_CIPHER); -STACK_OF(SSL_COMP); /* SRTP protection profiles for use with the use_srtp extension (RFC 5764)*/ typedef struct srtp_protection_profile_st { @@ -278,28 +280,31 @@ typedef int (*tls_session_secret_cb_fn)(SSL *s, void *secret, int *secret_len, /* Extension context codes */ /* This extension is only allowed in TLS */ -#define SSL_EXT_TLS_ONLY 0x0001 +#define SSL_EXT_TLS_ONLY 0x00001 /* This extension is only allowed in DTLS */ -#define SSL_EXT_DTLS_ONLY 0x0002 +#define SSL_EXT_DTLS_ONLY 0x00002 /* Some extensions may be allowed in DTLS but we don't implement them for it */ -#define SSL_EXT_TLS_IMPLEMENTATION_ONLY 0x0004 +#define SSL_EXT_TLS_IMPLEMENTATION_ONLY 0x00004 /* Most extensions are not defined for SSLv3 but EXT_TYPE_renegotiate is */ -#define SSL_EXT_SSL3_ALLOWED 0x0008 +#define SSL_EXT_SSL3_ALLOWED 0x00008 /* Extension is only defined for TLS1.2 and below */ -#define SSL_EXT_TLS1_2_AND_BELOW_ONLY 0x0010 +#define SSL_EXT_TLS1_2_AND_BELOW_ONLY 0x00010 /* Extension is only defined for TLS1.3 and above */ -#define SSL_EXT_TLS1_3_ONLY 0x0020 +#define SSL_EXT_TLS1_3_ONLY 0x00020 /* Ignore this extension during parsing if we are resuming */ -#define SSL_EXT_IGNORE_ON_RESUMPTION 0x0040 -#define SSL_EXT_CLIENT_HELLO 0x0080 +#define SSL_EXT_IGNORE_ON_RESUMPTION 0x00040 +#define SSL_EXT_CLIENT_HELLO 0x00080 /* Really means TLS1.2 or below */ -#define SSL_EXT_TLS1_2_SERVER_HELLO 0x0100 -#define SSL_EXT_TLS1_3_SERVER_HELLO 0x0200 -#define SSL_EXT_TLS1_3_ENCRYPTED_EXTENSIONS 0x0400 -#define SSL_EXT_TLS1_3_HELLO_RETRY_REQUEST 0x0800 -#define SSL_EXT_TLS1_3_CERTIFICATE 0x1000 -#define SSL_EXT_TLS1_3_NEW_SESSION_TICKET 0x2000 -#define SSL_EXT_TLS1_3_CERTIFICATE_REQUEST 0x4000 +#define SSL_EXT_TLS1_2_SERVER_HELLO 0x00100 +#define SSL_EXT_TLS1_3_SERVER_HELLO 0x00200 +#define SSL_EXT_TLS1_3_ENCRYPTED_EXTENSIONS 0x00400 +#define SSL_EXT_TLS1_3_HELLO_RETRY_REQUEST 0x00800 +#define SSL_EXT_TLS1_3_CERTIFICATE 0x01000 +#define SSL_EXT_TLS1_3_NEW_SESSION_TICKET 0x02000 +#define SSL_EXT_TLS1_3_CERTIFICATE_REQUEST 0x04000 +#define SSL_EXT_TLS1_3_CERTIFICATE_COMPRESSION 0x08000 +/* When sending a raw public key in a certificate message */ +#define SSL_EXT_TLS1_3_RAW_PUBLIC_KEY 0x10000 /* Typedefs for handling custom extensions */ @@ -404,7 +409,7 @@ typedef int (*SSL_async_callback_fn)(SSL *s, void *arg); */ # define SSL_OP_CIPHER_SERVER_PREFERENCE SSL_OP_BIT(22) /* - * If set, a server will allow a client to issue a SSLv3.0 version + * If set, a server will allow a client to issue an SSLv3.0 version * number as latest version supported in the premaster secret, even when * TLSv1.0 (version 3.1) was announced in the client hello. Normally * this is forbidden to prevent version rollback attacks. @@ -430,6 +435,19 @@ typedef int (*SSL_async_callback_fn)(SSL *s, void *arg); * interoperability with CryptoPro CSP 3.x */ # define SSL_OP_CRYPTOPRO_TLSEXT_BUG SSL_OP_BIT(31) +/* + * Disable RFC8879 certificate compression + * SSL_OP_NO_TX_CERTIFICATE_COMPRESSION: don't send compressed certificates, + * and ignore the extension when received. + * SSL_OP_NO_RX_CERTIFICATE_COMPRESSION: don't send the extension, and + * subsequently indicating that receiving is not supported + */ +# define SSL_OP_NO_TX_CERTIFICATE_COMPRESSION SSL_OP_BIT(32) +# define SSL_OP_NO_RX_CERTIFICATE_COMPRESSION SSL_OP_BIT(33) + /* Enable KTLS TX zerocopy on Linux */ +# define SSL_OP_ENABLE_KTLS_TX_ZEROCOPY_SENDFILE SSL_OP_BIT(34) + +#define SSL_OP_PREFER_NO_DHE_KEX SSL_OP_BIT(35) /* * Option "collections." @@ -574,6 +592,8 @@ typedef int (*SSL_async_callback_fn)(SSL *s, void *arg); # define CERT_PKEY_CERT_TYPE 0x400 /* Cert chain suitable to Suite B */ # define CERT_PKEY_SUITEB 0x800 +/* Cert pkey valid for raw public key use */ +# define CERT_PKEY_RPK 0x1000 # define SSL_CONF_FLAG_CMDLINE 0x1 # define SSL_CONF_FLAG_FILE 0x2 @@ -965,6 +985,7 @@ uint32_t SSL_get_recv_max_early_data(const SSL *s); # include /* This is mostly sslv3 with a few tweaks */ # include /* Datagram TLS */ # include /* Support for the use_srtp extension */ +# include #ifdef __cplusplus extern "C" { @@ -1000,32 +1021,6 @@ SKM_DEFINE_STACK_OF_INTERNAL(SSL_CIPHER, const SSL_CIPHER, SSL_CIPHER) #define sk_SSL_CIPHER_dup(sk) ((STACK_OF(SSL_CIPHER) *)OPENSSL_sk_dup(ossl_check_const_SSL_CIPHER_sk_type(sk))) #define sk_SSL_CIPHER_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(SSL_CIPHER) *)OPENSSL_sk_deep_copy(ossl_check_const_SSL_CIPHER_sk_type(sk), ossl_check_SSL_CIPHER_copyfunc_type(copyfunc), ossl_check_SSL_CIPHER_freefunc_type(freefunc))) #define sk_SSL_CIPHER_set_cmp_func(sk, cmp) ((sk_SSL_CIPHER_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_SSL_CIPHER_sk_type(sk), ossl_check_SSL_CIPHER_compfunc_type(cmp))) -SKM_DEFINE_STACK_OF_INTERNAL(SSL_COMP, SSL_COMP, SSL_COMP) -#define sk_SSL_COMP_num(sk) OPENSSL_sk_num(ossl_check_const_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_value(sk, idx) ((SSL_COMP *)OPENSSL_sk_value(ossl_check_const_SSL_COMP_sk_type(sk), (idx))) -#define sk_SSL_COMP_new(cmp) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new(ossl_check_SSL_COMP_compfunc_type(cmp))) -#define sk_SSL_COMP_new_null() ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new_null()) -#define sk_SSL_COMP_new_reserve(cmp, n) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new_reserve(ossl_check_SSL_COMP_compfunc_type(cmp), (n))) -#define sk_SSL_COMP_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_SSL_COMP_sk_type(sk), (n)) -#define sk_SSL_COMP_free(sk) OPENSSL_sk_free(ossl_check_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_zero(sk) OPENSSL_sk_zero(ossl_check_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_delete(sk, i) ((SSL_COMP *)OPENSSL_sk_delete(ossl_check_SSL_COMP_sk_type(sk), (i))) -#define sk_SSL_COMP_delete_ptr(sk, ptr) ((SSL_COMP *)OPENSSL_sk_delete_ptr(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr))) -#define sk_SSL_COMP_push(sk, ptr) OPENSSL_sk_push(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) -#define sk_SSL_COMP_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) -#define sk_SSL_COMP_pop(sk) ((SSL_COMP *)OPENSSL_sk_pop(ossl_check_SSL_COMP_sk_type(sk))) -#define sk_SSL_COMP_shift(sk) ((SSL_COMP *)OPENSSL_sk_shift(ossl_check_SSL_COMP_sk_type(sk))) -#define sk_SSL_COMP_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_SSL_COMP_sk_type(sk),ossl_check_SSL_COMP_freefunc_type(freefunc)) -#define sk_SSL_COMP_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr), (idx)) -#define sk_SSL_COMP_set(sk, idx, ptr) ((SSL_COMP *)OPENSSL_sk_set(ossl_check_SSL_COMP_sk_type(sk), (idx), ossl_check_SSL_COMP_type(ptr))) -#define sk_SSL_COMP_find(sk, ptr) OPENSSL_sk_find(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) -#define sk_SSL_COMP_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) -#define sk_SSL_COMP_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr), pnum) -#define sk_SSL_COMP_sort(sk) OPENSSL_sk_sort(ossl_check_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_dup(sk) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_dup(ossl_check_const_SSL_COMP_sk_type(sk))) -#define sk_SSL_COMP_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_deep_copy(ossl_check_const_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_copyfunc_type(copyfunc), ossl_check_SSL_COMP_freefunc_type(freefunc))) -#define sk_SSL_COMP_set_cmp_func(sk, cmp) ((sk_SSL_COMP_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_compfunc_type(cmp))) /* compatibility */ @@ -1066,6 +1061,7 @@ typedef enum { DTLS_ST_CR_HELLO_VERIFY_REQUEST, TLS_ST_CR_SRVR_HELLO, TLS_ST_CR_CERT, + TLS_ST_CR_COMP_CERT, TLS_ST_CR_CERT_STATUS, TLS_ST_CR_KEY_EXCH, TLS_ST_CR_CERT_REQ, @@ -1075,6 +1071,7 @@ typedef enum { TLS_ST_CR_FINISHED, TLS_ST_CW_CLNT_HELLO, TLS_ST_CW_CERT, + TLS_ST_CW_COMP_CERT, TLS_ST_CW_KEY_EXCH, TLS_ST_CW_CERT_VRFY, TLS_ST_CW_CHANGE, @@ -1085,10 +1082,12 @@ typedef enum { DTLS_ST_SW_HELLO_VERIFY_REQUEST, TLS_ST_SW_SRVR_HELLO, TLS_ST_SW_CERT, + TLS_ST_SW_COMP_CERT, TLS_ST_SW_KEY_EXCH, TLS_ST_SW_CERT_REQ, TLS_ST_SW_SRVR_DONE, TLS_ST_SR_CERT, + TLS_ST_SR_COMP_CERT, TLS_ST_SR_KEY_EXCH, TLS_ST_SR_CERT_VRFY, TLS_ST_SR_NEXT_PROTO, @@ -1380,9 +1379,13 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) # define SSL_CTRL_GET_SIGNATURE_NID 132 # define SSL_CTRL_GET_TMP_KEY 133 # define SSL_CTRL_GET_NEGOTIATED_GROUP 134 +# define SSL_CTRL_GET_IANA_GROUPS 135 # define SSL_CTRL_SET_RETRY_VERIFY 136 # define SSL_CTRL_GET_VERIFY_CERT_STORE 137 # define SSL_CTRL_GET_CHAIN_CERT_STORE 138 +# define SSL_CTRL_GET0_IMPLEMENTED_GROUPS 139 +# define SSL_CTRL_GET_SIGNATURE_NAME 140 +# define SSL_CTRL_GET_PEER_SIGNATURE_NAME 141 # define SSL_CERT_SET_FIRST 1 # define SSL_CERT_SET_NEXT 2 # define SSL_CERT_SET_SERVER 3 @@ -1485,10 +1488,15 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) # define SSL_get1_groups(s, glist) \ SSL_ctrl(s,SSL_CTRL_GET_GROUPS,0,(int*)(glist)) +# define SSL_get0_iana_groups(s, plst) \ + SSL_ctrl(s,SSL_CTRL_GET_IANA_GROUPS,0,(uint16_t **)(plst)) # define SSL_CTX_set1_groups(ctx, glist, glistlen) \ SSL_CTX_ctrl(ctx,SSL_CTRL_SET_GROUPS,glistlen,(int *)(glist)) # define SSL_CTX_set1_groups_list(ctx, s) \ SSL_CTX_ctrl(ctx,SSL_CTRL_SET_GROUPS_LIST,0,(char *)(s)) +# define SSL_CTX_get0_implemented_groups(ctx, all, out) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_GET0_IMPLEMENTED_GROUPS, all, \ + (STACK_OF(OPENSSL_CSTRING) *)(out)) # define SSL_set1_groups(s, glist, glistlen) \ SSL_ctrl(s,SSL_CTRL_SET_GROUPS,glistlen,(char *)(glist)) # define SSL_set1_groups_list(s, str) \ @@ -1520,8 +1528,12 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) (char *)(clist)) # define SSL_set1_client_certificate_types(s, clist, clistlen) \ SSL_ctrl(s,SSL_CTRL_SET_CLIENT_CERT_TYPES,clistlen,(char *)(clist)) +# define SSL_get0_signature_name(s, str) \ + SSL_ctrl(s,SSL_CTRL_GET_SIGNATURE_NAME,0,(1?(str):(const char **)NULL)) # define SSL_get_signature_nid(s, pn) \ SSL_ctrl(s,SSL_CTRL_GET_SIGNATURE_NID,0,pn) +# define SSL_get0_peer_signature_name(s, str) \ + SSL_ctrl(s,SSL_CTRL_GET_PEER_SIGNATURE_NAME,0,(1?(str):(const char **)NULL)) # define SSL_get_peer_signature_nid(s, pn) \ SSL_ctrl(s,SSL_CTRL_GET_PEER_SIGNATURE_NID,0,pn) # define SSL_get_peer_tmp_key(s, pk) \ @@ -1549,6 +1561,7 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) # define SSL_get_max_proto_version(s) \ SSL_ctrl(s, SSL_CTRL_GET_MAX_PROTO_VERSION, 0, NULL) +const char *SSL_get0_group_name(SSL *s); const char *SSL_group_to_name(SSL *s, int id); /* Backwards compatibility, original 1.1.0 names */ @@ -1613,7 +1626,11 @@ void SSL_CTX_set1_cert_store(SSL_CTX *, X509_STORE *); __owur int SSL_want(const SSL *s); __owur int SSL_clear(SSL *s); +#ifndef OPENSSL_NO_DEPRECATED_3_4 +OSSL_DEPRECATEDIN_3_4_FOR("not Y2038-safe, replace with SSL_CTX_flush_sessions_ex()") void SSL_CTX_flush_sessions(SSL_CTX *ctx, long tm); +#endif +void SSL_CTX_flush_sessions_ex(SSL_CTX *ctx, time_t tm); __owur const SSL_CIPHER *SSL_get_current_cipher(const SSL *s); __owur const SSL_CIPHER *SSL_get_pending_cipher(const SSL *s); @@ -1725,13 +1742,21 @@ __owur const char *SSL_state_string(const SSL *s); __owur const char *SSL_rstate_string(const SSL *s); __owur const char *SSL_state_string_long(const SSL *s); __owur const char *SSL_rstate_string_long(const SSL *s); + +#ifndef OPENSSL_NO_DEPRECATED_3_4 +OSSL_DEPRECATEDIN_3_4_FOR("not Y2038-safe, replace with SSL_SESSION_get_time_ex()") __owur long SSL_SESSION_get_time(const SSL_SESSION *s); +OSSL_DEPRECATEDIN_3_4_FOR("not Y2038-safe, replace with SSL_SESSION_set_time_ex()") __owur long SSL_SESSION_set_time(SSL_SESSION *s, long t); +#endif __owur long SSL_SESSION_get_timeout(const SSL_SESSION *s); __owur long SSL_SESSION_set_timeout(SSL_SESSION *s, long t); __owur int SSL_SESSION_get_protocol_version(const SSL_SESSION *s); __owur int SSL_SESSION_set_protocol_version(SSL_SESSION *s, int version); +__owur time_t SSL_SESSION_get_time_ex(const SSL_SESSION *s); +__owur time_t SSL_SESSION_set_time_ex(SSL_SESSION *s, time_t t); + __owur const char *SSL_SESSION_get0_hostname(const SSL_SESSION *s); __owur int SSL_SESSION_set1_hostname(SSL_SESSION *s, const char *hostname); void SSL_SESSION_get0_alpn_selected(const SSL_SESSION *s, @@ -1783,6 +1808,9 @@ __owur int SSL_has_matching_session_id(const SSL *s, unsigned int id_len); SSL_SESSION *d2i_SSL_SESSION(SSL_SESSION **a, const unsigned char **pp, long length); +SSL_SESSION *d2i_SSL_SESSION_ex(SSL_SESSION **a, const unsigned char **pp, + long length, OSSL_LIB_CTX *libctx, + const char *propq); # ifdef OPENSSL_X509_H __owur X509 *SSL_get0_peer_certificate(const SSL *s); @@ -1840,6 +1868,8 @@ __owur int SSL_CTX_set_session_id_context(SSL_CTX *ctx, SSL *SSL_new(SSL_CTX *ctx); int SSL_up_ref(SSL *s); int SSL_is_dtls(const SSL *s); +int SSL_is_tls(const SSL *s); +int SSL_is_quic(const SSL *s); __owur int SSL_set_session_id_context(SSL *ssl, const unsigned char *sid_ctx, unsigned int sid_ctx_len); @@ -1848,8 +1878,8 @@ __owur int SSL_set_purpose(SSL *ssl, int purpose); __owur int SSL_CTX_set_trust(SSL_CTX *ctx, int trust); __owur int SSL_set_trust(SSL *ssl, int trust); -__owur int SSL_set1_host(SSL *s, const char *hostname); -__owur int SSL_add1_host(SSL *s, const char *hostname); +__owur int SSL_set1_host(SSL *s, const char *host); +__owur int SSL_add1_host(SSL *s, const char *host); __owur const char *SSL_get0_peername(SSL *s); void SSL_set_hostflags(SSL *s, unsigned int flags); @@ -1924,6 +1954,11 @@ OSSL_DEPRECATEDIN_3_0 __owur char *SSL_get_srp_userinfo(SSL *s); typedef int (*SSL_client_hello_cb_fn) (SSL *s, int *al, void *arg); void SSL_CTX_set_client_hello_cb(SSL_CTX *c, SSL_client_hello_cb_fn cb, void *arg); +typedef int (*SSL_new_pending_conn_cb_fn) (SSL_CTX *ctx, SSL *new_ssl, + void *arg); +void SSL_CTX_set_new_pending_conn_cb(SSL_CTX *c, SSL_new_pending_conn_cb_fn cb, + void *arg); + int SSL_client_hello_isv2(SSL *s); unsigned int SSL_client_hello_get0_legacy_version(SSL *s); size_t SSL_client_hello_get0_random(SSL *s, const unsigned char **out); @@ -1932,6 +1967,8 @@ size_t SSL_client_hello_get0_ciphers(SSL *s, const unsigned char **out); size_t SSL_client_hello_get0_compression_methods(SSL *s, const unsigned char **out); int SSL_client_hello_get1_extensions_present(SSL *s, int **out, size_t *outlen); +int SSL_client_hello_get_extension_order(SSL *s, uint16_t *exts, + size_t *num_exts); int SSL_client_hello_get0_ext(SSL *s, unsigned int type, const unsigned char **out, size_t *outlen); @@ -1978,6 +2015,12 @@ long SSL_callback_ctrl(SSL *, int, void (*)(void)); long SSL_CTX_ctrl(SSL_CTX *ctx, int cmd, long larg, void *parg); long SSL_CTX_callback_ctrl(SSL_CTX *, int, void (*)(void)); +# define SSL_WRITE_FLAG_CONCLUDE (1U << 0) + +__owur int SSL_write_ex2(SSL *s, const void *buf, size_t num, + uint64_t flags, + size_t *written); + # define SSL_EARLY_DATA_NOT_SENT 0 # define SSL_EARLY_DATA_REJECTED 1 # define SSL_EARLY_DATA_ACCEPTED 2 @@ -1986,6 +2029,7 @@ __owur int SSL_get_early_data_status(const SSL *s); __owur int SSL_get_error(const SSL *s, int ret_code); __owur const char *SSL_get_version(const SSL *s); +__owur int SSL_get_handshake_rtt(const SSL *s, uint64_t *rtt); /* This sets the 'default' SSL version that SSL_new() will create */ # ifndef OPENSSL_NO_DEPRECATED_3_0 @@ -2281,6 +2325,8 @@ void SSL_CTX_set_record_padding_callback(SSL_CTX *ctx, void SSL_CTX_set_record_padding_callback_arg(SSL_CTX *ctx, void *arg); void *SSL_CTX_get_record_padding_callback_arg(const SSL_CTX *ctx); int SSL_CTX_set_block_padding(SSL_CTX *ctx, size_t block_size); +int SSL_CTX_set_block_padding_ex(SSL_CTX *ctx, size_t app_block_size, + size_t hs_block_size); int SSL_set_record_padding_callback(SSL *ssl, size_t (*cb) (SSL *ssl, int type, @@ -2288,12 +2334,255 @@ int SSL_set_record_padding_callback(SSL *ssl, void SSL_set_record_padding_callback_arg(SSL *ssl, void *arg); void *SSL_get_record_padding_callback_arg(const SSL *ssl); int SSL_set_block_padding(SSL *ssl, size_t block_size); - +int SSL_set_block_padding_ex(SSL *ssl, size_t app_block_size, + size_t hs_block_size); int SSL_set_num_tickets(SSL *s, size_t num_tickets); size_t SSL_get_num_tickets(const SSL *s); int SSL_CTX_set_num_tickets(SSL_CTX *ctx, size_t num_tickets); size_t SSL_CTX_get_num_tickets(const SSL_CTX *ctx); +/* QUIC support */ +int SSL_handle_events(SSL *s); +__owur int SSL_get_event_timeout(SSL *s, struct timeval *tv, int *is_infinite); +__owur int SSL_get_rpoll_descriptor(SSL *s, BIO_POLL_DESCRIPTOR *desc); +__owur int SSL_get_wpoll_descriptor(SSL *s, BIO_POLL_DESCRIPTOR *desc); +__owur int SSL_net_read_desired(SSL *s); +__owur int SSL_net_write_desired(SSL *s); +__owur int SSL_set_blocking_mode(SSL *s, int blocking); +__owur int SSL_get_blocking_mode(SSL *s); +__owur int SSL_set1_initial_peer_addr(SSL *s, const BIO_ADDR *peer_addr); +__owur SSL *SSL_get0_connection(SSL *s); +__owur int SSL_is_connection(SSL *s); + +__owur int SSL_is_listener(SSL *ssl); +__owur SSL *SSL_get0_listener(SSL *s); +#define SSL_LISTENER_FLAG_NO_VALIDATE (1UL << 1) +__owur SSL *SSL_new_listener(SSL_CTX *ctx, uint64_t flags); +__owur SSL *SSL_new_listener_from(SSL *ssl, uint64_t flags); +__owur SSL *SSL_new_from_listener(SSL *ssl, uint64_t flags); +#define SSL_ACCEPT_CONNECTION_NO_BLOCK (1UL << 0) +__owur SSL *SSL_accept_connection(SSL *ssl, uint64_t flags); +__owur size_t SSL_get_accept_connection_queue_len(SSL *ssl); +__owur int SSL_listen(SSL *ssl); + +__owur int SSL_is_domain(SSL *s); +__owur SSL *SSL_get0_domain(SSL *s); +__owur SSL *SSL_new_domain(SSL_CTX *ctx, uint64_t flags); + +#define SSL_DOMAIN_FLAG_SINGLE_THREAD (1U << 0) +#define SSL_DOMAIN_FLAG_MULTI_THREAD (1U << 1) +#define SSL_DOMAIN_FLAG_THREAD_ASSISTED (1U << 2) +#define SSL_DOMAIN_FLAG_BLOCKING (1U << 3) +#define SSL_DOMAIN_FLAG_LEGACY_BLOCKING (1U << 4) + +__owur int SSL_CTX_set_domain_flags(SSL_CTX *ctx, uint64_t domain_flags); +__owur int SSL_CTX_get_domain_flags(const SSL_CTX *ctx, uint64_t *domain_flags); +__owur int SSL_get_domain_flags(const SSL *ssl, uint64_t *domain_flags); + +#define SSL_STREAM_TYPE_NONE 0 +#define SSL_STREAM_TYPE_READ (1U << 0) +#define SSL_STREAM_TYPE_WRITE (1U << 1) +#define SSL_STREAM_TYPE_BIDI (SSL_STREAM_TYPE_READ | SSL_STREAM_TYPE_WRITE) +__owur int SSL_get_stream_type(SSL *s); + +__owur uint64_t SSL_get_stream_id(SSL *s); +__owur int SSL_is_stream_local(SSL *s); + +#define SSL_DEFAULT_STREAM_MODE_NONE 0 +#define SSL_DEFAULT_STREAM_MODE_AUTO_BIDI 1 +#define SSL_DEFAULT_STREAM_MODE_AUTO_UNI 2 +__owur int SSL_set_default_stream_mode(SSL *s, uint32_t mode); + +#define SSL_STREAM_FLAG_UNI (1U << 0) +#define SSL_STREAM_FLAG_NO_BLOCK (1U << 1) +#define SSL_STREAM_FLAG_ADVANCE (1U << 2) +__owur SSL *SSL_new_stream(SSL *s, uint64_t flags); + +#define SSL_INCOMING_STREAM_POLICY_AUTO 0 +#define SSL_INCOMING_STREAM_POLICY_ACCEPT 1 +#define SSL_INCOMING_STREAM_POLICY_REJECT 2 +__owur int SSL_set_incoming_stream_policy(SSL *s, int policy, uint64_t aec); + +#define SSL_ACCEPT_STREAM_NO_BLOCK (1U << 0) +__owur SSL *SSL_accept_stream(SSL *s, uint64_t flags); +__owur size_t SSL_get_accept_stream_queue_len(SSL *s); + +# ifndef OPENSSL_NO_QUIC +__owur int SSL_inject_net_dgram(SSL *s, const unsigned char *buf, + size_t buf_len, + const BIO_ADDR *peer, + const BIO_ADDR *local); +# endif + +typedef struct ssl_shutdown_ex_args_st { + uint64_t quic_error_code; + const char *quic_reason; +} SSL_SHUTDOWN_EX_ARGS; + +#define SSL_SHUTDOWN_FLAG_RAPID (1U << 0) +#define SSL_SHUTDOWN_FLAG_NO_STREAM_FLUSH (1U << 1) +#define SSL_SHUTDOWN_FLAG_NO_BLOCK (1U << 2) +#define SSL_SHUTDOWN_FLAG_WAIT_PEER (1U << 3) + +__owur int SSL_shutdown_ex(SSL *ssl, uint64_t flags, + const SSL_SHUTDOWN_EX_ARGS *args, + size_t args_len); + +__owur int SSL_stream_conclude(SSL *ssl, uint64_t flags); + +typedef struct ssl_stream_reset_args_st { + uint64_t quic_error_code; +} SSL_STREAM_RESET_ARGS; + +__owur int SSL_stream_reset(SSL *ssl, + const SSL_STREAM_RESET_ARGS *args, + size_t args_len); + +#define SSL_STREAM_STATE_NONE 0 +#define SSL_STREAM_STATE_OK 1 +#define SSL_STREAM_STATE_WRONG_DIR 2 +#define SSL_STREAM_STATE_FINISHED 3 +#define SSL_STREAM_STATE_RESET_LOCAL 4 +#define SSL_STREAM_STATE_RESET_REMOTE 5 +#define SSL_STREAM_STATE_CONN_CLOSED 6 +__owur int SSL_get_stream_read_state(SSL *ssl); +__owur int SSL_get_stream_write_state(SSL *ssl); + +__owur int SSL_get_stream_read_error_code(SSL *ssl, uint64_t *app_error_code); +__owur int SSL_get_stream_write_error_code(SSL *ssl, uint64_t *app_error_code); + +#define SSL_CONN_CLOSE_FLAG_LOCAL (1U << 0) +#define SSL_CONN_CLOSE_FLAG_TRANSPORT (1U << 1) + +typedef struct ssl_conn_close_info_st { + uint64_t error_code, frame_type; + const char *reason; + size_t reason_len; + uint32_t flags; +} SSL_CONN_CLOSE_INFO; + +__owur int SSL_get_conn_close_info(SSL *ssl, + SSL_CONN_CLOSE_INFO *info, + size_t info_len); + +# define SSL_VALUE_CLASS_GENERIC 0 +# define SSL_VALUE_CLASS_FEATURE_REQUEST 1 +# define SSL_VALUE_CLASS_FEATURE_PEER_REQUEST 2 +# define SSL_VALUE_CLASS_FEATURE_NEGOTIATED 3 + +# define SSL_VALUE_NONE 0 +# define SSL_VALUE_QUIC_STREAM_BIDI_LOCAL_AVAIL 1 +# define SSL_VALUE_QUIC_STREAM_BIDI_REMOTE_AVAIL 2 +# define SSL_VALUE_QUIC_STREAM_UNI_LOCAL_AVAIL 3 +# define SSL_VALUE_QUIC_STREAM_UNI_REMOTE_AVAIL 4 +# define SSL_VALUE_QUIC_IDLE_TIMEOUT 5 +# define SSL_VALUE_EVENT_HANDLING_MODE 6 +# define SSL_VALUE_STREAM_WRITE_BUF_SIZE 7 +# define SSL_VALUE_STREAM_WRITE_BUF_USED 8 +# define SSL_VALUE_STREAM_WRITE_BUF_AVAIL 9 + +# define SSL_VALUE_EVENT_HANDLING_MODE_INHERIT 0 +# define SSL_VALUE_EVENT_HANDLING_MODE_IMPLICIT 1 +# define SSL_VALUE_EVENT_HANDLING_MODE_EXPLICIT 2 + +int SSL_get_value_uint(SSL *s, uint32_t class_, uint32_t id, uint64_t *v); +int SSL_set_value_uint(SSL *s, uint32_t class_, uint32_t id, uint64_t v); + +# define SSL_get_generic_value_uint(ssl, id, v) \ + SSL_get_value_uint((ssl), SSL_VALUE_CLASS_GENERIC, (id), (v)) +# define SSL_set_generic_value_uint(ssl, id, v) \ + SSL_set_value_uint((ssl), SSL_VALUE_CLASS_GENERIC, (id), (v)) +# define SSL_get_feature_request_uint(ssl, id, v) \ + SSL_get_value_uint((ssl), SSL_VALUE_CLASS_FEATURE_REQUEST, (id), (v)) +# define SSL_set_feature_request_uint(ssl, id, v) \ + SSL_set_value_uint((ssl), SSL_VALUE_CLASS_FEATURE_REQUEST, (id), (v)) +# define SSL_get_feature_peer_request_uint(ssl, id, v) \ + SSL_get_value_uint((ssl), SSL_VALUE_CLASS_FEATURE_PEER_REQUEST, (id), (v)) +# define SSL_get_feature_negotiated_uint(ssl, id, v) \ + SSL_get_value_uint((ssl), SSL_VALUE_CLASS_FEATURE_NEGOTIATED, (id), (v)) + +# define SSL_get_quic_stream_bidi_local_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_QUIC_STREAM_BIDI_LOCAL_AVAIL, \ + (value)) +# define SSL_get_quic_stream_bidi_remote_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_QUIC_STREAM_BIDI_REMOTE_AVAIL, \ + (value)) +# define SSL_get_quic_stream_uni_local_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_QUIC_STREAM_UNI_LOCAL_AVAIL, \ + (value)) +# define SSL_get_quic_stream_uni_remote_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_QUIC_STREAM_UNI_REMOTE_AVAIL, \ + (value)) + +# define SSL_get_event_handling_mode(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_EVENT_HANDLING_MODE, \ + (value)) +# define SSL_set_event_handling_mode(ssl, value) \ + SSL_set_generic_value_uint((ssl), SSL_VALUE_EVENT_HANDLING_MODE, \ + (value)) + +# define SSL_get_stream_write_buf_size(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_STREAM_WRITE_BUF_SIZE, \ + (value)) +# define SSL_get_stream_write_buf_used(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_STREAM_WRITE_BUF_USED, \ + (value)) +# define SSL_get_stream_write_buf_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_STREAM_WRITE_BUF_AVAIL, \ + (value)) + +# define SSL_POLL_EVENT_NONE 0 + +# define SSL_POLL_EVENT_F (1U << 0) /* F (Failure) */ +# define SSL_POLL_EVENT_EL (1U << 1) /* EL (Exception on Listener) */ +# define SSL_POLL_EVENT_EC (1U << 2) /* EC (Exception on Conn) */ +# define SSL_POLL_EVENT_ECD (1U << 3) /* ECD (Exception on Conn Drained) */ +# define SSL_POLL_EVENT_ER (1U << 4) /* ER (Exception on Read) */ +# define SSL_POLL_EVENT_EW (1U << 5) /* EW (Exception on Write) */ +# define SSL_POLL_EVENT_R (1U << 6) /* R (Readable) */ +# define SSL_POLL_EVENT_W (1U << 7) /* W (Writable) */ +# define SSL_POLL_EVENT_IC (1U << 8) /* IC (Incoming Connection) */ +# define SSL_POLL_EVENT_ISB (1U << 9) /* ISB (Incoming Stream: Bidi) */ +# define SSL_POLL_EVENT_ISU (1U << 10) /* ISU (Incoming Stream: Uni) */ +# define SSL_POLL_EVENT_OSB (1U << 11) /* OSB (Outgoing Stream: Bidi) */ +# define SSL_POLL_EVENT_OSU (1U << 12) /* OSU (Outgoing Stream: Uni) */ + +# define SSL_POLL_EVENT_RW (SSL_POLL_EVENT_R | SSL_POLL_EVENT_W) +# define SSL_POLL_EVENT_RE (SSL_POLL_EVENT_R | SSL_POLL_EVENT_ER) +# define SSL_POLL_EVENT_WE (SSL_POLL_EVENT_W | SSL_POLL_EVENT_EW) +# define SSL_POLL_EVENT_RWE (SSL_POLL_EVENT_RE | SSL_POLL_EVENT_WE) +# define SSL_POLL_EVENT_E (SSL_POLL_EVENT_EL | SSL_POLL_EVENT_EC \ + | SSL_POLL_EVENT_ER | SSL_POLL_EVENT_EW) +# define SSL_POLL_EVENT_IS (SSL_POLL_EVENT_ISB | SSL_POLL_EVENT_ISU) +# define SSL_POLL_EVENT_ISE (SSL_POLL_EVENT_IS | SSL_POLL_EVENT_EC) +# define SSL_POLL_EVENT_I (SSL_POLL_EVENT_IS | SSL_POLL_EVENT_IC) +# define SSL_POLL_EVENT_OS (SSL_POLL_EVENT_OSB | SSL_POLL_EVENT_OSU) +# define SSL_POLL_EVENT_OSE (SSL_POLL_EVENT_OS | SSL_POLL_EVENT_EC) + +typedef struct ssl_poll_item_st { + BIO_POLL_DESCRIPTOR desc; + uint64_t events, revents; +} SSL_POLL_ITEM; + +# define SSL_POLL_FLAG_NO_HANDLE_EVENTS (1U << 0) + +__owur int SSL_poll(SSL_POLL_ITEM *items, + size_t num_items, + size_t stride, + const struct timeval *timeout, + uint64_t flags, + size_t *result_count); + +static ossl_inline ossl_unused BIO_POLL_DESCRIPTOR +SSL_as_poll_descriptor(SSL *s) +{ + BIO_POLL_DESCRIPTOR d; + + d.type = BIO_POLL_DESCRIPTOR_TYPE_SSL; + d.value.ssl = s; + return d; +} + # ifndef OPENSSL_NO_DEPRECATED_1_1_0 # define SSL_cache_hit(s) SSL_session_reused(s) # endif @@ -2593,6 +2882,51 @@ void SSL_set_allow_early_data_cb(SSL *s, const char *OSSL_default_cipher_list(void); const char *OSSL_default_ciphersuites(void); +/* RFC8879 Certificate compression APIs */ + +int SSL_CTX_compress_certs(SSL_CTX *ctx, int alg); +int SSL_compress_certs(SSL *ssl, int alg); + +int SSL_CTX_set1_cert_comp_preference(SSL_CTX *ctx, int *algs, size_t len); +int SSL_set1_cert_comp_preference(SSL *ssl, int *algs, size_t len); + +int SSL_CTX_set1_compressed_cert(SSL_CTX *ctx, int algorithm, unsigned char *comp_data, + size_t comp_length, size_t orig_length); +int SSL_set1_compressed_cert(SSL *ssl, int algorithm, unsigned char *comp_data, + size_t comp_length, size_t orig_length); +size_t SSL_CTX_get1_compressed_cert(SSL_CTX *ctx, int alg, unsigned char **data, size_t *orig_len); +size_t SSL_get1_compressed_cert(SSL *ssl, int alg, unsigned char **data, size_t *orig_len); + +__owur int SSL_add_expected_rpk(SSL *s, EVP_PKEY *rpk); +__owur EVP_PKEY *SSL_get0_peer_rpk(const SSL *s); +__owur EVP_PKEY *SSL_SESSION_get0_peer_rpk(SSL_SESSION *s); +__owur int SSL_get_negotiated_client_cert_type(const SSL *s); +__owur int SSL_get_negotiated_server_cert_type(const SSL *s); + +__owur int SSL_set1_client_cert_type(SSL *s, const unsigned char *val, size_t len); +__owur int SSL_set1_server_cert_type(SSL *s, const unsigned char *val, size_t len); +__owur int SSL_CTX_set1_client_cert_type(SSL_CTX *ctx, const unsigned char *val, size_t len); +__owur int SSL_CTX_set1_server_cert_type(SSL_CTX *ctx, const unsigned char *val, size_t len); +__owur int SSL_get0_client_cert_type(const SSL *s, unsigned char **t, size_t *len); +__owur int SSL_get0_server_cert_type(const SSL *s, unsigned char **t, size_t *len); +__owur int SSL_CTX_get0_client_cert_type(const SSL_CTX *ctx, unsigned char **t, size_t *len); +__owur int SSL_CTX_get0_server_cert_type(const SSL_CTX *s, unsigned char **t, size_t *len); + +/* + * Protection level. For <= TLSv1.2 only "NONE" and "APPLICATION" are used. + */ +# define OSSL_RECORD_PROTECTION_LEVEL_NONE 0 +# define OSSL_RECORD_PROTECTION_LEVEL_EARLY 1 +# define OSSL_RECORD_PROTECTION_LEVEL_HANDSHAKE 2 +# define OSSL_RECORD_PROTECTION_LEVEL_APPLICATION 3 + +int SSL_set_quic_tls_cbs(SSL *s, const OSSL_DISPATCH *qtdis, void *arg); +int SSL_set_quic_tls_transport_params(SSL *s, + const unsigned char *params, + size_t params_len); + +int SSL_set_quic_tls_early_data_enabled(SSL *s, int enabled); + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/include/openssl/x509.h b/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/include/openssl/x509.h index 1f7755e5b69c75..d013458c226461 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/include/openssl/x509.h +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/include/openssl/x509.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/x509.h.in * - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2024 The OpenSSL Project Authors. All Rights Reserved. * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved * * Licensed under the Apache License 2.0 (the "License"). You may not use @@ -40,6 +40,9 @@ # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -162,16 +165,24 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_CRL, X509_CRL, X509_CRL) # define X509_FILETYPE_ASN1 2 # define X509_FILETYPE_DEFAULT 3 -# define X509v3_KU_DIGITAL_SIGNATURE 0x0080 -# define X509v3_KU_NON_REPUDIATION 0x0040 -# define X509v3_KU_KEY_ENCIPHERMENT 0x0020 -# define X509v3_KU_DATA_ENCIPHERMENT 0x0010 -# define X509v3_KU_KEY_AGREEMENT 0x0008 -# define X509v3_KU_KEY_CERT_SIGN 0x0004 -# define X509v3_KU_CRL_SIGN 0x0002 -# define X509v3_KU_ENCIPHER_ONLY 0x0001 -# define X509v3_KU_DECIPHER_ONLY 0x8000 -# define X509v3_KU_UNDEF 0xffff +/*- + * : + * The KeyUsage BITSTRING is treated as a little-endian integer, hence bit `0` + * is 0x80, while bit `7` is 0x01 (the LSB of the integer value), bit `8` is + * then the MSB of the second octet, or 0x8000. + */ +# define X509v3_KU_DIGITAL_SIGNATURE 0x0080 /* (0) */ +# define X509v3_KU_NON_REPUDIATION 0x0040 /* (1) */ +# define X509v3_KU_KEY_ENCIPHERMENT 0x0020 /* (2) */ +# define X509v3_KU_DATA_ENCIPHERMENT 0x0010 /* (3) */ +# define X509v3_KU_KEY_AGREEMENT 0x0008 /* (4) */ +# define X509v3_KU_KEY_CERT_SIGN 0x0004 /* (5) */ +# define X509v3_KU_CRL_SIGN 0x0002 /* (6) */ +# define X509v3_KU_ENCIPHER_ONLY 0x0001 /* (7) */ +# define X509v3_KU_DECIPHER_ONLY 0x8000 /* (8) */ +# ifndef OPENSSL_NO_DEPRECATED_3_4 +# define X509v3_KU_UNDEF 0xffff /* vestigial, not used */ +# endif struct X509_algor_st { ASN1_OBJECT *algorithm; @@ -462,7 +473,12 @@ typedef struct PBKDF2PARAM_st { X509_ALGOR *prf; } PBKDF2PARAM; -#ifndef OPENSSL_NO_SCRYPT +typedef struct { + X509_ALGOR *keyDerivationFunc; + X509_ALGOR *messageAuthScheme; +} PBMAC1PARAM; + +# ifndef OPENSSL_NO_SCRYPT typedef struct SCRYPT_PARAMS_st { ASN1_OCTET_STRING *salt; ASN1_INTEGER *costParameter; @@ -470,7 +486,7 @@ typedef struct SCRYPT_PARAMS_st { ASN1_INTEGER *parallelizationParameter; ASN1_INTEGER *keyLength; } SCRYPT_PARAMS; -#endif +# endif #ifdef __cplusplus } @@ -603,6 +619,8 @@ EVP_PKEY *d2i_PrivateKey_ex_fp(FILE *fp, EVP_PKEY **a, OSSL_LIB_CTX *libctx, const char *propq); EVP_PKEY *d2i_PrivateKey_fp(FILE *fp, EVP_PKEY **a); int i2d_PUBKEY_fp(FILE *fp, const EVP_PKEY *pkey); +EVP_PKEY *d2i_PUBKEY_ex_fp(FILE *fp, EVP_PKEY **a, OSSL_LIB_CTX *libctx, + const char *propq); EVP_PKEY *d2i_PUBKEY_fp(FILE *fp, EVP_PKEY **a); # endif @@ -651,6 +669,8 @@ EVP_PKEY *d2i_PrivateKey_ex_bio(BIO *bp, EVP_PKEY **a, OSSL_LIB_CTX *libctx, const char *propq); EVP_PKEY *d2i_PrivateKey_bio(BIO *bp, EVP_PKEY **a); int i2d_PUBKEY_bio(BIO *bp, const EVP_PKEY *pkey); +EVP_PKEY *d2i_PUBKEY_ex_bio(BIO *bp, EVP_PKEY **a, OSSL_LIB_CTX *libctx, + const char *propq); EVP_PKEY *d2i_PUBKEY_bio(BIO *bp, EVP_PKEY **a); DECLARE_ASN1_DUP_FUNCTION(X509) @@ -884,12 +904,12 @@ int X509_REQ_get_signature_nid(const X509_REQ *req); int i2d_re_X509_REQ_tbs(X509_REQ *req, unsigned char **pp); int X509_REQ_set_pubkey(X509_REQ *x, EVP_PKEY *pkey); EVP_PKEY *X509_REQ_get_pubkey(X509_REQ *req); -EVP_PKEY *X509_REQ_get0_pubkey(X509_REQ *req); +EVP_PKEY *X509_REQ_get0_pubkey(const X509_REQ *req); X509_PUBKEY *X509_REQ_get_X509_PUBKEY(X509_REQ *req); int X509_REQ_extension_nid(int nid); int *X509_REQ_get_extension_nids(void); void X509_REQ_set_extension_nids(int *nids); -STACK_OF(X509_EXTENSION) *X509_REQ_get_extensions(X509_REQ *req); +STACK_OF(X509_EXTENSION) *X509_REQ_get_extensions(OSSL_FUTURE_CONST X509_REQ *req); int X509_REQ_add_extensions_nid(X509_REQ *req, const STACK_OF(X509_EXTENSION) *exts, int nid); int X509_REQ_add_extensions(X509_REQ *req, const STACK_OF(X509_EXTENSION) *ext); @@ -950,13 +970,14 @@ X509_REVOKED_get0_extensions(const X509_REVOKED *r); X509_CRL *X509_CRL_diff(X509_CRL *base, X509_CRL *newer, EVP_PKEY *skey, const EVP_MD *md, unsigned int flags); -int X509_REQ_check_private_key(X509_REQ *x509, EVP_PKEY *pkey); +int X509_REQ_check_private_key(const X509_REQ *req, EVP_PKEY *pkey); -int X509_check_private_key(const X509 *x509, const EVP_PKEY *pkey); +int X509_check_private_key(const X509 *cert, const EVP_PKEY *pkey); int X509_chain_check_suiteb(int *perror_depth, X509 *x, STACK_OF(X509) *chain, unsigned long flags); int X509_CRL_check_suiteb(X509_CRL *crl, EVP_PKEY *pk, unsigned long flags); +void OSSL_STACK_OF_X509_free(STACK_OF(X509) *certs); STACK_OF(X509) *X509_chain_up_ref(STACK_OF(X509) *chain); int X509_issuer_and_serial_cmp(const X509 *a, const X509 *b); @@ -1077,6 +1098,8 @@ X509_EXTENSION *X509v3_get_ext(const STACK_OF(X509_EXTENSION) *x, int loc); X509_EXTENSION *X509v3_delete_ext(STACK_OF(X509_EXTENSION) *x, int loc); STACK_OF(X509_EXTENSION) *X509v3_add_ext(STACK_OF(X509_EXTENSION) **x, X509_EXTENSION *ex, int loc); +STACK_OF(X509_EXTENSION) *X509v3_add_extensions(STACK_OF(X509_EXTENSION) **target, + const STACK_OF(X509_EXTENSION) *exts); int X509_get_ext_count(const X509 *x); int X509_get_ext_by_NID(const X509 *x, int nid, int lastpos); @@ -1198,9 +1221,10 @@ X509 *X509_find_by_subject(STACK_OF(X509) *sk, const X509_NAME *name); DECLARE_ASN1_FUNCTIONS(PBEPARAM) DECLARE_ASN1_FUNCTIONS(PBE2PARAM) DECLARE_ASN1_FUNCTIONS(PBKDF2PARAM) -#ifndef OPENSSL_NO_SCRYPT +DECLARE_ASN1_FUNCTIONS(PBMAC1PARAM) +# ifndef OPENSSL_NO_SCRYPT DECLARE_ASN1_FUNCTIONS(SCRYPT_PARAMS) -#endif +# endif int PKCS5_pbe_set0_algor(X509_ALGOR *algor, int alg, int iter, const unsigned char *salt, int saltlen); @@ -1237,6 +1261,7 @@ X509_ALGOR *PKCS5_pbkdf2_set_ex(int iter, unsigned char *salt, int saltlen, int prf_nid, int keylen, OSSL_LIB_CTX *libctx); +PBKDF2PARAM *PBMAC1_get1_pbkdf2_param(const X509_ALGOR *macalg); /* PKCS#8 utilities */ DECLARE_ASN1_FUNCTIONS(PKCS8_PRIV_KEY_INFO) @@ -1262,6 +1287,8 @@ int PKCS8_pkey_add1_attr_by_OBJ(PKCS8_PRIV_KEY_INFO *p8, const ASN1_OBJECT *obj, int type, const unsigned char *bytes, int len); +void X509_PUBKEY_set0_public_key(X509_PUBKEY *pub, + unsigned char *penc, int penclen); int X509_PUBKEY_set0_param(X509_PUBKEY *pub, ASN1_OBJECT *aobj, int ptype, void *pval, unsigned char *penc, int penclen); diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/include/openssl/x509_acert.h b/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/include/openssl/x509_acert.h new file mode 100644 index 00000000000000..9dde625677f9a9 --- /dev/null +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/include/openssl/x509_acert.h @@ -0,0 +1,294 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from include/openssl/x509_acert.h.in + * + * Copyright 2022-2024 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + + +#ifndef OPENSSL_X509_ACERT_H +# define OPENSSL_X509_ACERT_H +# pragma once + +# include +# include +# include + +typedef struct X509_acert_st X509_ACERT; +typedef struct X509_acert_info_st X509_ACERT_INFO; +typedef struct ossl_object_digest_info_st OSSL_OBJECT_DIGEST_INFO; +typedef struct ossl_issuer_serial_st OSSL_ISSUER_SERIAL; +typedef struct X509_acert_issuer_v2form_st X509_ACERT_ISSUER_V2FORM; + +DECLARE_ASN1_FUNCTIONS(X509_ACERT) +DECLARE_ASN1_DUP_FUNCTION(X509_ACERT) +DECLARE_ASN1_ITEM(X509_ACERT_INFO) +DECLARE_ASN1_ALLOC_FUNCTIONS(X509_ACERT_INFO) +DECLARE_ASN1_ALLOC_FUNCTIONS(OSSL_OBJECT_DIGEST_INFO) +DECLARE_ASN1_ALLOC_FUNCTIONS(OSSL_ISSUER_SERIAL) +DECLARE_ASN1_ALLOC_FUNCTIONS(X509_ACERT_ISSUER_V2FORM) + +# ifndef OPENSSL_NO_STDIO +X509_ACERT *d2i_X509_ACERT_fp(FILE *fp, X509_ACERT **acert); +int i2d_X509_ACERT_fp(FILE *fp, const X509_ACERT *acert); +# endif + +DECLARE_PEM_rw(X509_ACERT, X509_ACERT) + +X509_ACERT *d2i_X509_ACERT_bio(BIO *bp, X509_ACERT **acert); +int i2d_X509_ACERT_bio(BIO *bp, const X509_ACERT *acert); + +int X509_ACERT_sign(X509_ACERT *x, EVP_PKEY *pkey, const EVP_MD *md); +int X509_ACERT_sign_ctx(X509_ACERT *x, EVP_MD_CTX *ctx); +int X509_ACERT_verify(X509_ACERT *a, EVP_PKEY *r); + +# define X509_ACERT_VERSION_2 1 + +const GENERAL_NAMES *X509_ACERT_get0_holder_entityName(const X509_ACERT *x); +const OSSL_ISSUER_SERIAL *X509_ACERT_get0_holder_baseCertId(const X509_ACERT *x); +const OSSL_OBJECT_DIGEST_INFO * X509_ACERT_get0_holder_digest(const X509_ACERT *x); +const X509_NAME *X509_ACERT_get0_issuerName(const X509_ACERT *x); +long X509_ACERT_get_version(const X509_ACERT *x); +void X509_ACERT_get0_signature(const X509_ACERT *x, + const ASN1_BIT_STRING **psig, + const X509_ALGOR **palg); +int X509_ACERT_get_signature_nid(const X509_ACERT *x); +const X509_ALGOR *X509_ACERT_get0_info_sigalg(const X509_ACERT *x); +const ASN1_INTEGER *X509_ACERT_get0_serialNumber(const X509_ACERT *x); +const ASN1_TIME *X509_ACERT_get0_notBefore(const X509_ACERT *x); +const ASN1_TIME *X509_ACERT_get0_notAfter(const X509_ACERT *x); +const ASN1_BIT_STRING *X509_ACERT_get0_issuerUID(const X509_ACERT *x); + +int X509_ACERT_print(BIO *bp, X509_ACERT *x); +int X509_ACERT_print_ex(BIO *bp, X509_ACERT *x, unsigned long nmflags, + unsigned long cflag); + +int X509_ACERT_get_attr_count(const X509_ACERT *x); +int X509_ACERT_get_attr_by_NID(const X509_ACERT *x, int nid, int lastpos); +int X509_ACERT_get_attr_by_OBJ(const X509_ACERT *x, const ASN1_OBJECT *obj, + int lastpos); +X509_ATTRIBUTE *X509_ACERT_get_attr(const X509_ACERT *x, int loc); +X509_ATTRIBUTE *X509_ACERT_delete_attr(X509_ACERT *x, int loc); + +void *X509_ACERT_get_ext_d2i(const X509_ACERT *x, int nid, int *crit, int *idx); +int X509_ACERT_add1_ext_i2d(X509_ACERT *x, int nid, void *value, int crit, + unsigned long flags); +const STACK_OF(X509_EXTENSION) *X509_ACERT_get0_extensions(const X509_ACERT *x); + +# define OSSL_OBJECT_DIGEST_INFO_PUBLIC_KEY 0 +# define OSSL_OBJECT_DIGEST_INFO_PUBLIC_KEY_CERT 1 +# define OSSL_OBJECT_DIGEST_INFO_OTHER 2 /* must not be used in RFC 5755 profile */ +int X509_ACERT_set_version(X509_ACERT *x, long version); +void X509_ACERT_set0_holder_entityName(X509_ACERT *x, GENERAL_NAMES *name); +void X509_ACERT_set0_holder_baseCertId(X509_ACERT *x, OSSL_ISSUER_SERIAL *isss); +void X509_ACERT_set0_holder_digest(X509_ACERT *x, + OSSL_OBJECT_DIGEST_INFO *dinfo); + +int X509_ACERT_add1_attr(X509_ACERT *x, X509_ATTRIBUTE *attr); +int X509_ACERT_add1_attr_by_OBJ(X509_ACERT *x, const ASN1_OBJECT *obj, + int type, const void *bytes, int len); +int X509_ACERT_add1_attr_by_NID(X509_ACERT *x, int nid, int type, + const void *bytes, int len); +int X509_ACERT_add1_attr_by_txt(X509_ACERT *x, const char *attrname, int type, + const unsigned char *bytes, int len); +int X509_ACERT_add_attr_nconf(CONF *conf, const char *section, + X509_ACERT *acert); + +int X509_ACERT_set1_issuerName(X509_ACERT *x, const X509_NAME *name); +int X509_ACERT_set1_serialNumber(X509_ACERT *x, const ASN1_INTEGER *serial); +int X509_ACERT_set1_notBefore(X509_ACERT *x, const ASN1_GENERALIZEDTIME *time); +int X509_ACERT_set1_notAfter(X509_ACERT *x, const ASN1_GENERALIZEDTIME *time); + +void OSSL_OBJECT_DIGEST_INFO_get0_digest(const OSSL_OBJECT_DIGEST_INFO *o, + int *digestedObjectType, + const X509_ALGOR **digestAlgorithm, + const ASN1_BIT_STRING **digest); + +int OSSL_OBJECT_DIGEST_INFO_set1_digest(OSSL_OBJECT_DIGEST_INFO *o, + int digestedObjectType, + X509_ALGOR *digestAlgorithm, + ASN1_BIT_STRING *digest); + +const X509_NAME *OSSL_ISSUER_SERIAL_get0_issuer(const OSSL_ISSUER_SERIAL *isss); +const ASN1_INTEGER *OSSL_ISSUER_SERIAL_get0_serial(const OSSL_ISSUER_SERIAL *isss); +const ASN1_BIT_STRING *OSSL_ISSUER_SERIAL_get0_issuerUID(const OSSL_ISSUER_SERIAL *isss); + +int OSSL_ISSUER_SERIAL_set1_issuer(OSSL_ISSUER_SERIAL *isss, + const X509_NAME *issuer); +int OSSL_ISSUER_SERIAL_set1_serial(OSSL_ISSUER_SERIAL *isss, + const ASN1_INTEGER *serial); +int OSSL_ISSUER_SERIAL_set1_issuerUID(OSSL_ISSUER_SERIAL *isss, + const ASN1_BIT_STRING *uid); + +# define OSSL_IETFAS_OCTETS 0 +# define OSSL_IETFAS_OID 1 +# define OSSL_IETFAS_STRING 2 + +typedef struct OSSL_IETF_ATTR_SYNTAX_VALUE_st OSSL_IETF_ATTR_SYNTAX_VALUE; +typedef struct OSSL_IETF_ATTR_SYNTAX_st OSSL_IETF_ATTR_SYNTAX; +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_IETF_ATTR_SYNTAX_VALUE, OSSL_IETF_ATTR_SYNTAX_VALUE, OSSL_IETF_ATTR_SYNTAX_VALUE) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_value(sk, idx) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_value(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), (idx))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_new(cmp) ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_new(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_compfunc_type(cmp))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_new_null() ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_new_null()) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_new_reserve(cmp, n) ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_compfunc_type(cmp), (n))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), (n)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_free(sk) OPENSSL_sk_free(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_delete(sk, i) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_delete(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), (i))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_delete_ptr(sk, ptr) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_pop(sk) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_pop(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_shift(sk) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_shift(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk),ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_freefunc_type(freefunc)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr), (idx)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_set(sk, idx, ptr) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_set(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), (idx), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr), pnum) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_dup(sk) ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_dup(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_copyfunc_type(copyfunc), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_freefunc_type(freefunc))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_set_cmp_func(sk, cmp) ((sk_OSSL_IETF_ATTR_SYNTAX_VALUE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_compfunc_type(cmp))) + + +DECLARE_ASN1_ITEM(OSSL_IETF_ATTR_SYNTAX_VALUE) +DECLARE_ASN1_ALLOC_FUNCTIONS(OSSL_IETF_ATTR_SYNTAX_VALUE) +DECLARE_ASN1_FUNCTIONS(OSSL_IETF_ATTR_SYNTAX) + +const GENERAL_NAMES * +OSSL_IETF_ATTR_SYNTAX_get0_policyAuthority(const OSSL_IETF_ATTR_SYNTAX *a); +void OSSL_IETF_ATTR_SYNTAX_set0_policyAuthority(OSSL_IETF_ATTR_SYNTAX *a, + GENERAL_NAMES *names); + +int OSSL_IETF_ATTR_SYNTAX_get_value_num(const OSSL_IETF_ATTR_SYNTAX *a); +void *OSSL_IETF_ATTR_SYNTAX_get0_value(const OSSL_IETF_ATTR_SYNTAX *a, + int ind, int *type); +int OSSL_IETF_ATTR_SYNTAX_add1_value(OSSL_IETF_ATTR_SYNTAX *a, int type, + void *data); +int OSSL_IETF_ATTR_SYNTAX_print(BIO *bp, OSSL_IETF_ATTR_SYNTAX *a, int indent); + +struct TARGET_CERT_st { + OSSL_ISSUER_SERIAL *targetCertificate; + GENERAL_NAME *targetName; + OSSL_OBJECT_DIGEST_INFO *certDigestInfo; +}; + +typedef struct TARGET_CERT_st OSSL_TARGET_CERT; + +# define OSSL_TGT_TARGET_NAME 0 +# define OSSL_TGT_TARGET_GROUP 1 +# define OSSL_TGT_TARGET_CERT 2 + +typedef struct TARGET_st { + int type; + union { + GENERAL_NAME *targetName; + GENERAL_NAME *targetGroup; + OSSL_TARGET_CERT *targetCert; + } choice; +} OSSL_TARGET; + +typedef STACK_OF(OSSL_TARGET) OSSL_TARGETS; +typedef STACK_OF(OSSL_TARGETS) OSSL_TARGETING_INFORMATION; + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_TARGET, OSSL_TARGET, OSSL_TARGET) +#define sk_OSSL_TARGET_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_value(sk, idx) ((OSSL_TARGET *)OPENSSL_sk_value(ossl_check_const_OSSL_TARGET_sk_type(sk), (idx))) +#define sk_OSSL_TARGET_new(cmp) ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_new(ossl_check_OSSL_TARGET_compfunc_type(cmp))) +#define sk_OSSL_TARGET_new_null() ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_new_null()) +#define sk_OSSL_TARGET_new_reserve(cmp, n) ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_TARGET_compfunc_type(cmp), (n))) +#define sk_OSSL_TARGET_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_TARGET_sk_type(sk), (n)) +#define sk_OSSL_TARGET_free(sk) OPENSSL_sk_free(ossl_check_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_delete(sk, i) ((OSSL_TARGET *)OPENSSL_sk_delete(ossl_check_OSSL_TARGET_sk_type(sk), (i))) +#define sk_OSSL_TARGET_delete_ptr(sk, ptr) ((OSSL_TARGET *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr))) +#define sk_OSSL_TARGET_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr)) +#define sk_OSSL_TARGET_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr)) +#define sk_OSSL_TARGET_pop(sk) ((OSSL_TARGET *)OPENSSL_sk_pop(ossl_check_OSSL_TARGET_sk_type(sk))) +#define sk_OSSL_TARGET_shift(sk) ((OSSL_TARGET *)OPENSSL_sk_shift(ossl_check_OSSL_TARGET_sk_type(sk))) +#define sk_OSSL_TARGET_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_TARGET_sk_type(sk),ossl_check_OSSL_TARGET_freefunc_type(freefunc)) +#define sk_OSSL_TARGET_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr), (idx)) +#define sk_OSSL_TARGET_set(sk, idx, ptr) ((OSSL_TARGET *)OPENSSL_sk_set(ossl_check_OSSL_TARGET_sk_type(sk), (idx), ossl_check_OSSL_TARGET_type(ptr))) +#define sk_OSSL_TARGET_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr)) +#define sk_OSSL_TARGET_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr)) +#define sk_OSSL_TARGET_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr), pnum) +#define sk_OSSL_TARGET_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_dup(sk) ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_dup(ossl_check_const_OSSL_TARGET_sk_type(sk))) +#define sk_OSSL_TARGET_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_copyfunc_type(copyfunc), ossl_check_OSSL_TARGET_freefunc_type(freefunc))) +#define sk_OSSL_TARGET_set_cmp_func(sk, cmp) ((sk_OSSL_TARGET_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_compfunc_type(cmp))) + + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_TARGETS, OSSL_TARGETS, OSSL_TARGETS) +#define sk_OSSL_TARGETS_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_value(sk, idx) ((OSSL_TARGETS *)OPENSSL_sk_value(ossl_check_const_OSSL_TARGETS_sk_type(sk), (idx))) +#define sk_OSSL_TARGETS_new(cmp) ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_new(ossl_check_OSSL_TARGETS_compfunc_type(cmp))) +#define sk_OSSL_TARGETS_new_null() ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_new_null()) +#define sk_OSSL_TARGETS_new_reserve(cmp, n) ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_TARGETS_compfunc_type(cmp), (n))) +#define sk_OSSL_TARGETS_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_TARGETS_sk_type(sk), (n)) +#define sk_OSSL_TARGETS_free(sk) OPENSSL_sk_free(ossl_check_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_delete(sk, i) ((OSSL_TARGETS *)OPENSSL_sk_delete(ossl_check_OSSL_TARGETS_sk_type(sk), (i))) +#define sk_OSSL_TARGETS_delete_ptr(sk, ptr) ((OSSL_TARGETS *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr))) +#define sk_OSSL_TARGETS_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr)) +#define sk_OSSL_TARGETS_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr)) +#define sk_OSSL_TARGETS_pop(sk) ((OSSL_TARGETS *)OPENSSL_sk_pop(ossl_check_OSSL_TARGETS_sk_type(sk))) +#define sk_OSSL_TARGETS_shift(sk) ((OSSL_TARGETS *)OPENSSL_sk_shift(ossl_check_OSSL_TARGETS_sk_type(sk))) +#define sk_OSSL_TARGETS_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_TARGETS_sk_type(sk),ossl_check_OSSL_TARGETS_freefunc_type(freefunc)) +#define sk_OSSL_TARGETS_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr), (idx)) +#define sk_OSSL_TARGETS_set(sk, idx, ptr) ((OSSL_TARGETS *)OPENSSL_sk_set(ossl_check_OSSL_TARGETS_sk_type(sk), (idx), ossl_check_OSSL_TARGETS_type(ptr))) +#define sk_OSSL_TARGETS_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr)) +#define sk_OSSL_TARGETS_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr)) +#define sk_OSSL_TARGETS_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr), pnum) +#define sk_OSSL_TARGETS_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_dup(sk) ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_dup(ossl_check_const_OSSL_TARGETS_sk_type(sk))) +#define sk_OSSL_TARGETS_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_copyfunc_type(copyfunc), ossl_check_OSSL_TARGETS_freefunc_type(freefunc))) +#define sk_OSSL_TARGETS_set_cmp_func(sk, cmp) ((sk_OSSL_TARGETS_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_compfunc_type(cmp))) + + +DECLARE_ASN1_FUNCTIONS(OSSL_TARGET) +DECLARE_ASN1_FUNCTIONS(OSSL_TARGETS) +DECLARE_ASN1_FUNCTIONS(OSSL_TARGETING_INFORMATION) + +typedef STACK_OF(OSSL_ISSUER_SERIAL) OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX; +DECLARE_ASN1_FUNCTIONS(OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ISSUER_SERIAL, OSSL_ISSUER_SERIAL, OSSL_ISSUER_SERIAL) +#define sk_OSSL_ISSUER_SERIAL_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_value(sk, idx) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_value(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk), (idx))) +#define sk_OSSL_ISSUER_SERIAL_new(cmp) ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_new(ossl_check_OSSL_ISSUER_SERIAL_compfunc_type(cmp))) +#define sk_OSSL_ISSUER_SERIAL_new_null() ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ISSUER_SERIAL_new_reserve(cmp, n) ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ISSUER_SERIAL_compfunc_type(cmp), (n))) +#define sk_OSSL_ISSUER_SERIAL_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), (n)) +#define sk_OSSL_ISSUER_SERIAL_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_delete(sk, i) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_delete(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), (i))) +#define sk_OSSL_ISSUER_SERIAL_delete_ptr(sk, ptr) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr))) +#define sk_OSSL_ISSUER_SERIAL_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr)) +#define sk_OSSL_ISSUER_SERIAL_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr)) +#define sk_OSSL_ISSUER_SERIAL_pop(sk) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_pop(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk))) +#define sk_OSSL_ISSUER_SERIAL_shift(sk) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_shift(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk))) +#define sk_OSSL_ISSUER_SERIAL_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk),ossl_check_OSSL_ISSUER_SERIAL_freefunc_type(freefunc)) +#define sk_OSSL_ISSUER_SERIAL_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr), (idx)) +#define sk_OSSL_ISSUER_SERIAL_set(sk, idx, ptr) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_set(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), (idx), ossl_check_OSSL_ISSUER_SERIAL_type(ptr))) +#define sk_OSSL_ISSUER_SERIAL_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr)) +#define sk_OSSL_ISSUER_SERIAL_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr)) +#define sk_OSSL_ISSUER_SERIAL_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr), pnum) +#define sk_OSSL_ISSUER_SERIAL_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_dup(sk) ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk))) +#define sk_OSSL_ISSUER_SERIAL_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_copyfunc_type(copyfunc), ossl_check_OSSL_ISSUER_SERIAL_freefunc_type(freefunc))) +#define sk_OSSL_ISSUER_SERIAL_set_cmp_func(sk, cmp) ((sk_OSSL_ISSUER_SERIAL_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_compfunc_type(cmp))) + + +#endif diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/include/openssl/x509_vfy.h b/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/include/openssl/x509_vfy.h index 29b0e147adcab1..c9bdc3b39d685d 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/include/openssl/x509_vfy.h +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/include/openssl/x509_vfy.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/x509_vfy.h.in * - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -411,6 +411,7 @@ X509_LOOKUP_ctrl_ex((x), X509_L_ADD_STORE, (name), 0, NULL, \ # define X509_V_ERR_CA_CERT_MISSING_KEY_USAGE 92 # define X509_V_ERR_EXTENSIONS_REQUIRE_VERSION_3 93 # define X509_V_ERR_EC_KEY_EXPLICIT_PARAMS 94 +# define X509_V_ERR_RPK_UNTRUSTED 95 /* Certificate verify flags */ # ifndef OPENSSL_NO_DEPRECATED_1_1_0 @@ -491,71 +492,72 @@ int X509_OBJECT_set1_X509(X509_OBJECT *a, X509 *obj); X509_CRL *X509_OBJECT_get0_X509_CRL(const X509_OBJECT *a); int X509_OBJECT_set1_X509_CRL(X509_OBJECT *a, X509_CRL *obj); X509_STORE *X509_STORE_new(void); -void X509_STORE_free(X509_STORE *v); -int X509_STORE_lock(X509_STORE *ctx); -int X509_STORE_unlock(X509_STORE *ctx); -int X509_STORE_up_ref(X509_STORE *v); -STACK_OF(X509_OBJECT) *X509_STORE_get0_objects(const X509_STORE *v); -STACK_OF(X509) *X509_STORE_get1_all_certs(X509_STORE *st); -STACK_OF(X509) *X509_STORE_CTX_get1_certs(X509_STORE_CTX *st, +void X509_STORE_free(X509_STORE *xs); +int X509_STORE_lock(X509_STORE *xs); +int X509_STORE_unlock(X509_STORE *xs); +int X509_STORE_up_ref(X509_STORE *xs); +STACK_OF(X509_OBJECT) *X509_STORE_get0_objects(const X509_STORE *xs); +STACK_OF(X509_OBJECT) *X509_STORE_get1_objects(X509_STORE *xs); +STACK_OF(X509) *X509_STORE_get1_all_certs(X509_STORE *xs); +STACK_OF(X509) *X509_STORE_CTX_get1_certs(X509_STORE_CTX *xs, const X509_NAME *nm); STACK_OF(X509_CRL) *X509_STORE_CTX_get1_crls(const X509_STORE_CTX *st, const X509_NAME *nm); -int X509_STORE_set_flags(X509_STORE *ctx, unsigned long flags); -int X509_STORE_set_purpose(X509_STORE *ctx, int purpose); -int X509_STORE_set_trust(X509_STORE *ctx, int trust); -int X509_STORE_set1_param(X509_STORE *ctx, const X509_VERIFY_PARAM *pm); -X509_VERIFY_PARAM *X509_STORE_get0_param(const X509_STORE *ctx); +int X509_STORE_set_flags(X509_STORE *xs, unsigned long flags); +int X509_STORE_set_purpose(X509_STORE *xs, int purpose); +int X509_STORE_set_trust(X509_STORE *xs, int trust); +int X509_STORE_set1_param(X509_STORE *xs, const X509_VERIFY_PARAM *pm); +X509_VERIFY_PARAM *X509_STORE_get0_param(const X509_STORE *xs); -void X509_STORE_set_verify(X509_STORE *ctx, X509_STORE_CTX_verify_fn verify); +void X509_STORE_set_verify(X509_STORE *xs, X509_STORE_CTX_verify_fn verify); #define X509_STORE_set_verify_func(ctx, func) \ X509_STORE_set_verify((ctx),(func)) void X509_STORE_CTX_set_verify(X509_STORE_CTX *ctx, X509_STORE_CTX_verify_fn verify); -X509_STORE_CTX_verify_fn X509_STORE_get_verify(const X509_STORE *ctx); -void X509_STORE_set_verify_cb(X509_STORE *ctx, +X509_STORE_CTX_verify_fn X509_STORE_get_verify(const X509_STORE *xs); +void X509_STORE_set_verify_cb(X509_STORE *xs, X509_STORE_CTX_verify_cb verify_cb); # define X509_STORE_set_verify_cb_func(ctx,func) \ X509_STORE_set_verify_cb((ctx),(func)) -X509_STORE_CTX_verify_cb X509_STORE_get_verify_cb(const X509_STORE *ctx); -void X509_STORE_set_get_issuer(X509_STORE *ctx, +X509_STORE_CTX_verify_cb X509_STORE_get_verify_cb(const X509_STORE *xs); +void X509_STORE_set_get_issuer(X509_STORE *xs, X509_STORE_CTX_get_issuer_fn get_issuer); -X509_STORE_CTX_get_issuer_fn X509_STORE_get_get_issuer(const X509_STORE *ctx); -void X509_STORE_set_check_issued(X509_STORE *ctx, +X509_STORE_CTX_get_issuer_fn X509_STORE_get_get_issuer(const X509_STORE *xs); +void X509_STORE_set_check_issued(X509_STORE *xs, X509_STORE_CTX_check_issued_fn check_issued); -X509_STORE_CTX_check_issued_fn X509_STORE_get_check_issued(const X509_STORE *ctx); -void X509_STORE_set_check_revocation(X509_STORE *ctx, +X509_STORE_CTX_check_issued_fn X509_STORE_get_check_issued(const X509_STORE *s); +void X509_STORE_set_check_revocation(X509_STORE *xs, X509_STORE_CTX_check_revocation_fn check_revocation); X509_STORE_CTX_check_revocation_fn - X509_STORE_get_check_revocation(const X509_STORE *ctx); -void X509_STORE_set_get_crl(X509_STORE *ctx, + X509_STORE_get_check_revocation(const X509_STORE *xs); +void X509_STORE_set_get_crl(X509_STORE *xs, X509_STORE_CTX_get_crl_fn get_crl); -X509_STORE_CTX_get_crl_fn X509_STORE_get_get_crl(const X509_STORE *ctx); -void X509_STORE_set_check_crl(X509_STORE *ctx, +X509_STORE_CTX_get_crl_fn X509_STORE_get_get_crl(const X509_STORE *xs); +void X509_STORE_set_check_crl(X509_STORE *xs, X509_STORE_CTX_check_crl_fn check_crl); -X509_STORE_CTX_check_crl_fn X509_STORE_get_check_crl(const X509_STORE *ctx); -void X509_STORE_set_cert_crl(X509_STORE *ctx, +X509_STORE_CTX_check_crl_fn X509_STORE_get_check_crl(const X509_STORE *xs); +void X509_STORE_set_cert_crl(X509_STORE *xs, X509_STORE_CTX_cert_crl_fn cert_crl); -X509_STORE_CTX_cert_crl_fn X509_STORE_get_cert_crl(const X509_STORE *ctx); -void X509_STORE_set_check_policy(X509_STORE *ctx, +X509_STORE_CTX_cert_crl_fn X509_STORE_get_cert_crl(const X509_STORE *xs); +void X509_STORE_set_check_policy(X509_STORE *xs, X509_STORE_CTX_check_policy_fn check_policy); -X509_STORE_CTX_check_policy_fn X509_STORE_get_check_policy(const X509_STORE *ctx); -void X509_STORE_set_lookup_certs(X509_STORE *ctx, +X509_STORE_CTX_check_policy_fn X509_STORE_get_check_policy(const X509_STORE *s); +void X509_STORE_set_lookup_certs(X509_STORE *xs, X509_STORE_CTX_lookup_certs_fn lookup_certs); -X509_STORE_CTX_lookup_certs_fn X509_STORE_get_lookup_certs(const X509_STORE *ctx); -void X509_STORE_set_lookup_crls(X509_STORE *ctx, +X509_STORE_CTX_lookup_certs_fn X509_STORE_get_lookup_certs(const X509_STORE *s); +void X509_STORE_set_lookup_crls(X509_STORE *xs, X509_STORE_CTX_lookup_crls_fn lookup_crls); #define X509_STORE_set_lookup_crls_cb(ctx, func) \ X509_STORE_set_lookup_crls((ctx), (func)) -X509_STORE_CTX_lookup_crls_fn X509_STORE_get_lookup_crls(const X509_STORE *ctx); -void X509_STORE_set_cleanup(X509_STORE *ctx, +X509_STORE_CTX_lookup_crls_fn X509_STORE_get_lookup_crls(const X509_STORE *xs); +void X509_STORE_set_cleanup(X509_STORE *xs, X509_STORE_CTX_cleanup_fn cleanup); -X509_STORE_CTX_cleanup_fn X509_STORE_get_cleanup(const X509_STORE *ctx); +X509_STORE_CTX_cleanup_fn X509_STORE_get_cleanup(const X509_STORE *xs); #define X509_STORE_get_ex_new_index(l, p, newf, dupf, freef) \ CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_X509_STORE, l, p, newf, dupf, freef) -int X509_STORE_set_ex_data(X509_STORE *ctx, int idx, void *data); -void *X509_STORE_get_ex_data(const X509_STORE *ctx, int idx); +int X509_STORE_set_ex_data(X509_STORE *xs, int idx, void *data); +void *X509_STORE_get_ex_data(const X509_STORE *xs, int idx); X509_STORE_CTX *X509_STORE_CTX_new_ex(OSSL_LIB_CTX *libctx, const char *propq); X509_STORE_CTX *X509_STORE_CTX_new(void); @@ -565,11 +567,14 @@ int X509_STORE_CTX_get1_issuer(X509 **issuer, X509_STORE_CTX *ctx, X509 *x); void X509_STORE_CTX_free(X509_STORE_CTX *ctx); int X509_STORE_CTX_init(X509_STORE_CTX *ctx, X509_STORE *trust_store, X509 *target, STACK_OF(X509) *untrusted); +int X509_STORE_CTX_init_rpk(X509_STORE_CTX *ctx, X509_STORE *trust_store, + EVP_PKEY* rpk); void X509_STORE_CTX_set0_trusted_stack(X509_STORE_CTX *ctx, STACK_OF(X509) *sk); void X509_STORE_CTX_cleanup(X509_STORE_CTX *ctx); X509_STORE *X509_STORE_CTX_get0_store(const X509_STORE_CTX *ctx); X509 *X509_STORE_CTX_get0_cert(const X509_STORE_CTX *ctx); +EVP_PKEY *X509_STORE_CTX_get0_rpk(const X509_STORE_CTX *ctx); STACK_OF(X509)* X509_STORE_CTX_get0_untrusted(const X509_STORE_CTX *ctx); void X509_STORE_CTX_set0_untrusted(X509_STORE_CTX *ctx, STACK_OF(X509) *sk); void X509_STORE_CTX_set_verify_cb(X509_STORE_CTX *ctx, @@ -579,6 +584,8 @@ X509_STORE_CTX_verify_fn X509_STORE_CTX_get_verify(const X509_STORE_CTX *ctx); X509_STORE_CTX_get_issuer_fn X509_STORE_CTX_get_get_issuer(const X509_STORE_CTX *ctx); X509_STORE_CTX_check_issued_fn X509_STORE_CTX_get_check_issued(const X509_STORE_CTX *ctx); X509_STORE_CTX_check_revocation_fn X509_STORE_CTX_get_check_revocation(const X509_STORE_CTX *ctx); +void X509_STORE_CTX_set_get_crl(X509_STORE_CTX *ctx, + X509_STORE_CTX_get_crl_fn get_crl); X509_STORE_CTX_get_crl_fn X509_STORE_CTX_get_get_crl(const X509_STORE_CTX *ctx); X509_STORE_CTX_check_crl_fn X509_STORE_CTX_get_check_crl(const X509_STORE_CTX *ctx); X509_STORE_CTX_cert_crl_fn X509_STORE_CTX_get_cert_crl(const X509_STORE_CTX *ctx); @@ -600,7 +607,7 @@ X509_STORE_CTX_cleanup_fn X509_STORE_CTX_get_cleanup(const X509_STORE_CTX *ctx); # define X509_STORE_get1_crl X509_STORE_CTX_get1_crls #endif -X509_LOOKUP *X509_STORE_add_lookup(X509_STORE *v, X509_LOOKUP_METHOD *m); +X509_LOOKUP *X509_STORE_add_lookup(X509_STORE *xs, X509_LOOKUP_METHOD *m); X509_LOOKUP_METHOD *X509_LOOKUP_hash_dir(void); X509_LOOKUP_METHOD *X509_LOOKUP_file(void); X509_LOOKUP_METHOD *X509_LOOKUP_store(void); @@ -685,8 +692,8 @@ X509_LOOKUP_get_by_alias_fn X509_LOOKUP_meth_get_get_by_alias( const X509_LOOKUP_METHOD *method); -int X509_STORE_add_cert(X509_STORE *ctx, X509 *x); -int X509_STORE_add_crl(X509_STORE *ctx, X509_CRL *x); +int X509_STORE_add_cert(X509_STORE *xs, X509 *x); +int X509_STORE_add_crl(X509_STORE *xs, X509_CRL *x); int X509_STORE_CTX_get_by_subject(const X509_STORE_CTX *vs, X509_LOOKUP_TYPE type, @@ -730,23 +737,21 @@ void *X509_LOOKUP_get_method_data(const X509_LOOKUP *ctx); X509_STORE *X509_LOOKUP_get_store(const X509_LOOKUP *ctx); int X509_LOOKUP_shutdown(X509_LOOKUP *ctx); -int X509_STORE_load_file(X509_STORE *ctx, const char *file); -int X509_STORE_load_path(X509_STORE *ctx, const char *path); -int X509_STORE_load_store(X509_STORE *ctx, const char *store); -int X509_STORE_load_locations(X509_STORE *ctx, - const char *file, - const char *dir); -int X509_STORE_set_default_paths(X509_STORE *ctx); +int X509_STORE_load_file(X509_STORE *xs, const char *file); +int X509_STORE_load_path(X509_STORE *xs, const char *path); +int X509_STORE_load_store(X509_STORE *xs, const char *store); +int X509_STORE_load_locations(X509_STORE *s, const char *file, const char *dir); +int X509_STORE_set_default_paths(X509_STORE *xs); -int X509_STORE_load_file_ex(X509_STORE *ctx, const char *file, +int X509_STORE_load_file_ex(X509_STORE *xs, const char *file, OSSL_LIB_CTX *libctx, const char *propq); -int X509_STORE_load_store_ex(X509_STORE *ctx, const char *store, +int X509_STORE_load_store_ex(X509_STORE *xs, const char *store, OSSL_LIB_CTX *libctx, const char *propq); -int X509_STORE_load_locations_ex(X509_STORE *ctx, const char *file, - const char *dir, OSSL_LIB_CTX *libctx, - const char *propq); -int X509_STORE_set_default_paths_ex(X509_STORE *ctx, OSSL_LIB_CTX *libctx, - const char *propq); +int X509_STORE_load_locations_ex(X509_STORE *xs, + const char *file, const char *dir, + OSSL_LIB_CTX *libctx, const char *propq); +int X509_STORE_set_default_paths_ex(X509_STORE *xs, + OSSL_LIB_CTX *libctx, const char *propq); #define X509_STORE_CTX_get_ex_new_index(l, p, newf, dupf, freef) \ CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_X509_STORE_CTX, l, p, newf, dupf, freef) @@ -764,6 +769,7 @@ X509_STORE_CTX *X509_STORE_CTX_get0_parent_ctx(const X509_STORE_CTX *ctx); STACK_OF(X509) *X509_STORE_CTX_get0_chain(const X509_STORE_CTX *ctx); STACK_OF(X509) *X509_STORE_CTX_get1_chain(const X509_STORE_CTX *ctx); void X509_STORE_CTX_set_cert(X509_STORE_CTX *ctx, X509 *target); +void X509_STORE_CTX_set0_rpk(X509_STORE_CTX *ctx, EVP_PKEY *target); void X509_STORE_CTX_set0_verified_chain(X509_STORE_CTX *c, STACK_OF(X509) *sk); void X509_STORE_CTX_set0_crls(X509_STORE_CTX *ctx, STACK_OF(X509_CRL) *sk); int X509_STORE_CTX_set_purpose(X509_STORE_CTX *ctx, int purpose); @@ -773,6 +779,8 @@ int X509_STORE_CTX_purpose_inherit(X509_STORE_CTX *ctx, int def_purpose, void X509_STORE_CTX_set_flags(X509_STORE_CTX *ctx, unsigned long flags); void X509_STORE_CTX_set_time(X509_STORE_CTX *ctx, unsigned long flags, time_t t); +void X509_STORE_CTX_set_current_reasons(X509_STORE_CTX *ctx, + unsigned int current_reasons); X509_POLICY_TREE *X509_STORE_CTX_get0_policy_tree(const X509_STORE_CTX *ctx); int X509_STORE_CTX_get_explicit_policy(const X509_STORE_CTX *ctx); @@ -804,6 +812,7 @@ int X509_VERIFY_PARAM_clear_flags(X509_VERIFY_PARAM *param, unsigned long flags); unsigned long X509_VERIFY_PARAM_get_flags(const X509_VERIFY_PARAM *param); int X509_VERIFY_PARAM_set_purpose(X509_VERIFY_PARAM *param, int purpose); +int X509_VERIFY_PARAM_get_purpose(const X509_VERIFY_PARAM *param); int X509_VERIFY_PARAM_set_trust(X509_VERIFY_PARAM *param, int trust); void X509_VERIFY_PARAM_set_depth(X509_VERIFY_PARAM *param, int depth); void X509_VERIFY_PARAM_set_auth_level(X509_VERIFY_PARAM *param, int auth_level); diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/include/openssl/x509v3.h b/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/include/openssl/x509v3.h index 20b67455f2061d..b8dabac35a4915 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/include/openssl/x509v3.h +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/include/openssl/x509v3.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/x509v3.h.in * - * Copyright 1999-2023 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1999-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -25,6 +25,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -146,6 +149,11 @@ typedef struct BASIC_CONSTRAINTS_st { ASN1_INTEGER *pathlen; } BASIC_CONSTRAINTS; +typedef struct OSSL_BASIC_ATTR_CONSTRAINTS_st { + int authority; + ASN1_INTEGER *pathlen; +} OSSL_BASIC_ATTR_CONSTRAINTS; + typedef struct PKEY_USAGE_PERIOD_st { ASN1_GENERALIZEDTIME *notBefore; ASN1_GENERALIZEDTIME *notAfter; @@ -198,6 +206,8 @@ typedef struct ACCESS_DESCRIPTION_st { GENERAL_NAME *location; } ACCESS_DESCRIPTION; +int GENERAL_NAME_set1_X509_NAME(GENERAL_NAME **tgt, const X509_NAME *src); + SKM_DEFINE_STACK_OF_INTERNAL(ACCESS_DESCRIPTION, ACCESS_DESCRIPTION, ACCESS_DESCRIPTION) #define sk_ACCESS_DESCRIPTION_num(sk) OPENSSL_sk_num(ossl_check_const_ACCESS_DESCRIPTION_sk_type(sk)) #define sk_ACCESS_DESCRIPTION_value(sk, idx) ((ACCESS_DESCRIPTION *)OPENSSL_sk_value(ossl_check_const_ACCESS_DESCRIPTION_sk_type(sk), (idx))) @@ -294,6 +304,7 @@ typedef struct DIST_POINT_NAME_st { /* If relativename then this contains the full distribution point name */ X509_NAME *dpname; } DIST_POINT_NAME; +DECLARE_ASN1_DUP_FUNCTION(DIST_POINT_NAME) /* All existing reasons */ # define CRLDP_ALL_REASONS 0x807f @@ -659,15 +670,16 @@ struct ISSUING_DIST_POINT_st { # define EXFLAG_SAN_CRITICAL 0x80000 # define EXFLAG_NO_FINGERPRINT 0x100000 -# define KU_DIGITAL_SIGNATURE 0x0080 -# define KU_NON_REPUDIATION 0x0040 -# define KU_KEY_ENCIPHERMENT 0x0020 -# define KU_DATA_ENCIPHERMENT 0x0010 -# define KU_KEY_AGREEMENT 0x0008 -# define KU_KEY_CERT_SIGN 0x0004 -# define KU_CRL_SIGN 0x0002 -# define KU_ENCIPHER_ONLY 0x0001 -# define KU_DECIPHER_ONLY 0x8000 +/* https://datatracker.ietf.org/doc/html/rfc5280#section-4.2.1.3 */ +# define KU_DIGITAL_SIGNATURE X509v3_KU_DIGITAL_SIGNATURE +# define KU_NON_REPUDIATION X509v3_KU_NON_REPUDIATION +# define KU_KEY_ENCIPHERMENT X509v3_KU_KEY_ENCIPHERMENT +# define KU_DATA_ENCIPHERMENT X509v3_KU_DATA_ENCIPHERMENT +# define KU_KEY_AGREEMENT X509v3_KU_KEY_AGREEMENT +# define KU_KEY_CERT_SIGN X509v3_KU_KEY_CERT_SIGN +# define KU_CRL_SIGN X509v3_KU_CRL_SIGN +# define KU_ENCIPHER_ONLY X509v3_KU_ENCIPHER_ONLY +# define KU_DECIPHER_ONLY X509v3_KU_DECIPHER_ONLY # define NS_SSL_CLIENT 0x80 # define NS_SSL_SERVER 0x40 @@ -729,7 +741,7 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_PURPOSE, X509_PURPOSE, X509_PURPOSE) #define sk_X509_PURPOSE_set_cmp_func(sk, cmp) ((sk_X509_PURPOSE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_X509_PURPOSE_sk_type(sk), ossl_check_X509_PURPOSE_compfunc_type(cmp))) - +# define X509_PURPOSE_DEFAULT_ANY 0 # define X509_PURPOSE_SSL_CLIENT 1 # define X509_PURPOSE_SSL_SERVER 2 # define X509_PURPOSE_NS_SSL_SERVER 3 @@ -739,9 +751,10 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_PURPOSE, X509_PURPOSE, X509_PURPOSE) # define X509_PURPOSE_ANY 7 # define X509_PURPOSE_OCSP_HELPER 8 # define X509_PURPOSE_TIMESTAMP_SIGN 9 +# define X509_PURPOSE_CODE_SIGN 10 # define X509_PURPOSE_MIN 1 -# define X509_PURPOSE_MAX 9 +# define X509_PURPOSE_MAX 10 /* Flags for X509V3_EXT_print() */ @@ -767,6 +780,7 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_PURPOSE, X509_PURPOSE, X509_PURPOSE) # define X509V3_ADD_SILENT 0x10 DECLARE_ASN1_FUNCTIONS(BASIC_CONSTRAINTS) +DECLARE_ASN1_FUNCTIONS(OSSL_BASIC_ATTR_CONSTRAINTS) DECLARE_ASN1_FUNCTIONS(SXNET) DECLARE_ASN1_FUNCTIONS(SXNETID) @@ -976,7 +990,6 @@ int X509V3_extensions_print(BIO *out, const char *title, int X509_check_ca(X509 *x); int X509_check_purpose(X509 *x, int id, int ca); int X509_supported_extension(X509_EXTENSION *ex); -int X509_PURPOSE_set(int *p, int purpose); int X509_check_issued(X509 *issuer, X509 *subject); int X509_check_akid(const X509 *issuer, const AUTHORITY_KEYID *akid); void X509_set_proxy_flag(X509 *x); @@ -992,22 +1005,26 @@ const GENERAL_NAMES *X509_get0_authority_issuer(X509 *x); const ASN1_INTEGER *X509_get0_authority_serial(X509 *x); int X509_PURPOSE_get_count(void); -X509_PURPOSE *X509_PURPOSE_get0(int idx); +int X509_PURPOSE_get_unused_id(OSSL_LIB_CTX *libctx); int X509_PURPOSE_get_by_sname(const char *sname); int X509_PURPOSE_get_by_id(int id); int X509_PURPOSE_add(int id, int trust, int flags, int (*ck) (const X509_PURPOSE *, const X509 *, int), const char *name, const char *sname, void *arg); +void X509_PURPOSE_cleanup(void); + +X509_PURPOSE *X509_PURPOSE_get0(int idx); +int X509_PURPOSE_get_id(const X509_PURPOSE *); char *X509_PURPOSE_get0_name(const X509_PURPOSE *xp); char *X509_PURPOSE_get0_sname(const X509_PURPOSE *xp); int X509_PURPOSE_get_trust(const X509_PURPOSE *xp); -void X509_PURPOSE_cleanup(void); -int X509_PURPOSE_get_id(const X509_PURPOSE *); +int X509_PURPOSE_set(int *p, int purpose); STACK_OF(OPENSSL_STRING) *X509_get1_email(X509 *x); STACK_OF(OPENSSL_STRING) *X509_REQ_get1_email(X509_REQ *x); void X509_email_free(STACK_OF(OPENSSL_STRING) *sk); STACK_OF(OPENSSL_STRING) *X509_get1_ocsp(X509 *x); + /* Flags for X509_check_* functions */ /* @@ -1444,6 +1461,507 @@ const ASN1_PRINTABLESTRING *PROFESSION_INFO_get0_registrationNumber( void PROFESSION_INFO_set0_registrationNumber( PROFESSION_INFO *pi, ASN1_PRINTABLESTRING *rn); +int OSSL_GENERAL_NAMES_print(BIO *out, GENERAL_NAMES *gens, int indent); + +typedef STACK_OF(X509_ATTRIBUTE) OSSL_ATTRIBUTES_SYNTAX; +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTES_SYNTAX) + +typedef STACK_OF(USERNOTICE) OSSL_USER_NOTICE_SYNTAX; +DECLARE_ASN1_FUNCTIONS(OSSL_USER_NOTICE_SYNTAX) + +SKM_DEFINE_STACK_OF_INTERNAL(USERNOTICE, USERNOTICE, USERNOTICE) +#define sk_USERNOTICE_num(sk) OPENSSL_sk_num(ossl_check_const_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_value(sk, idx) ((USERNOTICE *)OPENSSL_sk_value(ossl_check_const_USERNOTICE_sk_type(sk), (idx))) +#define sk_USERNOTICE_new(cmp) ((STACK_OF(USERNOTICE) *)OPENSSL_sk_new(ossl_check_USERNOTICE_compfunc_type(cmp))) +#define sk_USERNOTICE_new_null() ((STACK_OF(USERNOTICE) *)OPENSSL_sk_new_null()) +#define sk_USERNOTICE_new_reserve(cmp, n) ((STACK_OF(USERNOTICE) *)OPENSSL_sk_new_reserve(ossl_check_USERNOTICE_compfunc_type(cmp), (n))) +#define sk_USERNOTICE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_USERNOTICE_sk_type(sk), (n)) +#define sk_USERNOTICE_free(sk) OPENSSL_sk_free(ossl_check_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_zero(sk) OPENSSL_sk_zero(ossl_check_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_delete(sk, i) ((USERNOTICE *)OPENSSL_sk_delete(ossl_check_USERNOTICE_sk_type(sk), (i))) +#define sk_USERNOTICE_delete_ptr(sk, ptr) ((USERNOTICE *)OPENSSL_sk_delete_ptr(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr))) +#define sk_USERNOTICE_push(sk, ptr) OPENSSL_sk_push(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr)) +#define sk_USERNOTICE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr)) +#define sk_USERNOTICE_pop(sk) ((USERNOTICE *)OPENSSL_sk_pop(ossl_check_USERNOTICE_sk_type(sk))) +#define sk_USERNOTICE_shift(sk) ((USERNOTICE *)OPENSSL_sk_shift(ossl_check_USERNOTICE_sk_type(sk))) +#define sk_USERNOTICE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_USERNOTICE_sk_type(sk),ossl_check_USERNOTICE_freefunc_type(freefunc)) +#define sk_USERNOTICE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr), (idx)) +#define sk_USERNOTICE_set(sk, idx, ptr) ((USERNOTICE *)OPENSSL_sk_set(ossl_check_USERNOTICE_sk_type(sk), (idx), ossl_check_USERNOTICE_type(ptr))) +#define sk_USERNOTICE_find(sk, ptr) OPENSSL_sk_find(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr)) +#define sk_USERNOTICE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr)) +#define sk_USERNOTICE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr), pnum) +#define sk_USERNOTICE_sort(sk) OPENSSL_sk_sort(ossl_check_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_dup(sk) ((STACK_OF(USERNOTICE) *)OPENSSL_sk_dup(ossl_check_const_USERNOTICE_sk_type(sk))) +#define sk_USERNOTICE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(USERNOTICE) *)OPENSSL_sk_deep_copy(ossl_check_const_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_copyfunc_type(copyfunc), ossl_check_USERNOTICE_freefunc_type(freefunc))) +#define sk_USERNOTICE_set_cmp_func(sk, cmp) ((sk_USERNOTICE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_compfunc_type(cmp))) + + +typedef struct OSSL_ROLE_SPEC_CERT_ID_st { + GENERAL_NAME *roleName; + GENERAL_NAME *roleCertIssuer; + ASN1_INTEGER *roleCertSerialNumber; + GENERAL_NAMES *roleCertLocator; +} OSSL_ROLE_SPEC_CERT_ID; + +DECLARE_ASN1_FUNCTIONS(OSSL_ROLE_SPEC_CERT_ID) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ROLE_SPEC_CERT_ID, OSSL_ROLE_SPEC_CERT_ID, OSSL_ROLE_SPEC_CERT_ID) +#define sk_OSSL_ROLE_SPEC_CERT_ID_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_value(sk, idx) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_value(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), (idx))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_new(cmp) ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_new(ossl_check_OSSL_ROLE_SPEC_CERT_ID_compfunc_type(cmp))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_new_null() ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ROLE_SPEC_CERT_ID_new_reserve(cmp, n) ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ROLE_SPEC_CERT_ID_compfunc_type(cmp), (n))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), (n)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_delete(sk, i) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_delete(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), (i))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_delete_ptr(sk, ptr) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_pop(sk) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_pop(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_shift(sk) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_shift(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk),ossl_check_OSSL_ROLE_SPEC_CERT_ID_freefunc_type(freefunc)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr), (idx)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_set(sk, idx, ptr) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_set(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), (idx), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr), pnum) +#define sk_OSSL_ROLE_SPEC_CERT_ID_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_dup(sk) ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_copyfunc_type(copyfunc), ossl_check_OSSL_ROLE_SPEC_CERT_ID_freefunc_type(freefunc))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_set_cmp_func(sk, cmp) ((sk_OSSL_ROLE_SPEC_CERT_ID_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_compfunc_type(cmp))) + + +typedef STACK_OF(OSSL_ROLE_SPEC_CERT_ID) OSSL_ROLE_SPEC_CERT_ID_SYNTAX; + +DECLARE_ASN1_FUNCTIONS(OSSL_ROLE_SPEC_CERT_ID_SYNTAX) +typedef struct OSSL_HASH_st { + X509_ALGOR *algorithmIdentifier; + ASN1_BIT_STRING *hashValue; +} OSSL_HASH; + +typedef struct OSSL_INFO_SYNTAX_POINTER_st { + GENERAL_NAMES *name; + OSSL_HASH *hash; +} OSSL_INFO_SYNTAX_POINTER; + +# define OSSL_INFO_SYNTAX_TYPE_CONTENT 0 +# define OSSL_INFO_SYNTAX_TYPE_POINTER 1 + +typedef struct OSSL_INFO_SYNTAX_st { + int type; + union { + ASN1_STRING *content; + OSSL_INFO_SYNTAX_POINTER *pointer; + } choice; +} OSSL_INFO_SYNTAX; + +typedef struct OSSL_PRIVILEGE_POLICY_ID_st { + ASN1_OBJECT *privilegePolicy; + OSSL_INFO_SYNTAX *privPolSyntax; +} OSSL_PRIVILEGE_POLICY_ID; + +typedef struct OSSL_ATTRIBUTE_DESCRIPTOR_st { + ASN1_OBJECT *identifier; + ASN1_STRING *attributeSyntax; + ASN1_UTF8STRING *name; + ASN1_UTF8STRING *description; + OSSL_PRIVILEGE_POLICY_ID *dominationRule; +} OSSL_ATTRIBUTE_DESCRIPTOR; + +DECLARE_ASN1_FUNCTIONS(OSSL_HASH) +DECLARE_ASN1_FUNCTIONS(OSSL_INFO_SYNTAX) +DECLARE_ASN1_FUNCTIONS(OSSL_INFO_SYNTAX_POINTER) +DECLARE_ASN1_FUNCTIONS(OSSL_PRIVILEGE_POLICY_ID) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_DESCRIPTOR) + +typedef struct OSSL_TIME_SPEC_ABSOLUTE_st { + ASN1_GENERALIZEDTIME *startTime; + ASN1_GENERALIZEDTIME *endTime; +} OSSL_TIME_SPEC_ABSOLUTE; + +typedef struct OSSL_DAY_TIME_st { + ASN1_INTEGER *hour; + ASN1_INTEGER *minute; + ASN1_INTEGER *second; +} OSSL_DAY_TIME; + +typedef struct OSSL_DAY_TIME_BAND_st { + OSSL_DAY_TIME *startDayTime; + OSSL_DAY_TIME *endDayTime; +} OSSL_DAY_TIME_BAND; + +# define OSSL_NAMED_DAY_TYPE_INT 0 +# define OSSL_NAMED_DAY_TYPE_BIT 1 +# define OSSL_NAMED_DAY_INT_SUN 1 +# define OSSL_NAMED_DAY_INT_MON 2 +# define OSSL_NAMED_DAY_INT_TUE 3 +# define OSSL_NAMED_DAY_INT_WED 4 +# define OSSL_NAMED_DAY_INT_THU 5 +# define OSSL_NAMED_DAY_INT_FRI 6 +# define OSSL_NAMED_DAY_INT_SAT 7 +# define OSSL_NAMED_DAY_BIT_SUN 0 +# define OSSL_NAMED_DAY_BIT_MON 1 +# define OSSL_NAMED_DAY_BIT_TUE 2 +# define OSSL_NAMED_DAY_BIT_WED 3 +# define OSSL_NAMED_DAY_BIT_THU 4 +# define OSSL_NAMED_DAY_BIT_FRI 5 +# define OSSL_NAMED_DAY_BIT_SAT 6 + +typedef struct OSSL_NAMED_DAY_st { + int type; + union { + ASN1_INTEGER *intNamedDays; + ASN1_BIT_STRING *bitNamedDays; + } choice; +} OSSL_NAMED_DAY; + +# define OSSL_TIME_SPEC_X_DAY_OF_FIRST 0 +# define OSSL_TIME_SPEC_X_DAY_OF_SECOND 1 +# define OSSL_TIME_SPEC_X_DAY_OF_THIRD 2 +# define OSSL_TIME_SPEC_X_DAY_OF_FOURTH 3 +# define OSSL_TIME_SPEC_X_DAY_OF_FIFTH 4 + +typedef struct OSSL_TIME_SPEC_X_DAY_OF_st { + int type; + union { + OSSL_NAMED_DAY *first; + OSSL_NAMED_DAY *second; + OSSL_NAMED_DAY *third; + OSSL_NAMED_DAY *fourth; + OSSL_NAMED_DAY *fifth; + } choice; +} OSSL_TIME_SPEC_X_DAY_OF; + +# define OSSL_TIME_SPEC_DAY_TYPE_INT 0 +# define OSSL_TIME_SPEC_DAY_TYPE_BIT 1 +# define OSSL_TIME_SPEC_DAY_TYPE_DAY_OF 2 +# define OSSL_TIME_SPEC_DAY_BIT_SUN 0 +# define OSSL_TIME_SPEC_DAY_BIT_MON 1 +# define OSSL_TIME_SPEC_DAY_BIT_TUE 2 +# define OSSL_TIME_SPEC_DAY_BIT_WED 3 +# define OSSL_TIME_SPEC_DAY_BIT_THU 4 +# define OSSL_TIME_SPEC_DAY_BIT_FRI 5 +# define OSSL_TIME_SPEC_DAY_BIT_SAT 6 +# define OSSL_TIME_SPEC_DAY_INT_SUN 1 +# define OSSL_TIME_SPEC_DAY_INT_MON 2 +# define OSSL_TIME_SPEC_DAY_INT_TUE 3 +# define OSSL_TIME_SPEC_DAY_INT_WED 4 +# define OSSL_TIME_SPEC_DAY_INT_THU 5 +# define OSSL_TIME_SPEC_DAY_INT_FRI 6 +# define OSSL_TIME_SPEC_DAY_INT_SAT 7 + +typedef struct OSSL_TIME_SPEC_DAY_st { + int type; + union { + STACK_OF(ASN1_INTEGER) *intDay; + ASN1_BIT_STRING *bitDay; + OSSL_TIME_SPEC_X_DAY_OF *dayOf; + } choice; +} OSSL_TIME_SPEC_DAY; + +# define OSSL_TIME_SPEC_WEEKS_TYPE_ALL 0 +# define OSSL_TIME_SPEC_WEEKS_TYPE_INT 1 +# define OSSL_TIME_SPEC_WEEKS_TYPE_BIT 2 +# define OSSL_TIME_SPEC_BIT_WEEKS_1 0 +# define OSSL_TIME_SPEC_BIT_WEEKS_2 1 +# define OSSL_TIME_SPEC_BIT_WEEKS_3 2 +# define OSSL_TIME_SPEC_BIT_WEEKS_4 3 +# define OSSL_TIME_SPEC_BIT_WEEKS_5 4 + +typedef struct OSSL_TIME_SPEC_WEEKS_st { + int type; + union { + ASN1_NULL *allWeeks; + STACK_OF(ASN1_INTEGER) *intWeek; + ASN1_BIT_STRING *bitWeek; + } choice; +} OSSL_TIME_SPEC_WEEKS; + +# define OSSL_TIME_SPEC_MONTH_TYPE_ALL 0 +# define OSSL_TIME_SPEC_MONTH_TYPE_INT 1 +# define OSSL_TIME_SPEC_MONTH_TYPE_BIT 2 +# define OSSL_TIME_SPEC_INT_MONTH_JAN 1 +# define OSSL_TIME_SPEC_INT_MONTH_FEB 2 +# define OSSL_TIME_SPEC_INT_MONTH_MAR 3 +# define OSSL_TIME_SPEC_INT_MONTH_APR 4 +# define OSSL_TIME_SPEC_INT_MONTH_MAY 5 +# define OSSL_TIME_SPEC_INT_MONTH_JUN 6 +# define OSSL_TIME_SPEC_INT_MONTH_JUL 7 +# define OSSL_TIME_SPEC_INT_MONTH_AUG 8 +# define OSSL_TIME_SPEC_INT_MONTH_SEP 9 +# define OSSL_TIME_SPEC_INT_MONTH_OCT 10 +# define OSSL_TIME_SPEC_INT_MONTH_NOV 11 +# define OSSL_TIME_SPEC_INT_MONTH_DEC 12 +# define OSSL_TIME_SPEC_BIT_MONTH_JAN 0 +# define OSSL_TIME_SPEC_BIT_MONTH_FEB 1 +# define OSSL_TIME_SPEC_BIT_MONTH_MAR 2 +# define OSSL_TIME_SPEC_BIT_MONTH_APR 3 +# define OSSL_TIME_SPEC_BIT_MONTH_MAY 4 +# define OSSL_TIME_SPEC_BIT_MONTH_JUN 5 +# define OSSL_TIME_SPEC_BIT_MONTH_JUL 6 +# define OSSL_TIME_SPEC_BIT_MONTH_AUG 7 +# define OSSL_TIME_SPEC_BIT_MONTH_SEP 8 +# define OSSL_TIME_SPEC_BIT_MONTH_OCT 9 +# define OSSL_TIME_SPEC_BIT_MONTH_NOV 10 +# define OSSL_TIME_SPEC_BIT_MONTH_DEC 11 + +typedef struct OSSL_TIME_SPEC_MONTH_st { + int type; + union { + ASN1_NULL *allMonths; + STACK_OF(ASN1_INTEGER) *intMonth; + ASN1_BIT_STRING *bitMonth; + } choice; +} OSSL_TIME_SPEC_MONTH; + +typedef struct OSSL_TIME_PERIOD_st { + STACK_OF(OSSL_DAY_TIME_BAND) *timesOfDay; + OSSL_TIME_SPEC_DAY *days; + OSSL_TIME_SPEC_WEEKS *weeks; + OSSL_TIME_SPEC_MONTH *months; + STACK_OF(ASN1_INTEGER) *years; +} OSSL_TIME_PERIOD; + +# define OSSL_TIME_SPEC_TIME_TYPE_ABSOLUTE 0 +# define OSSL_TIME_SPEC_TIME_TYPE_PERIODIC 1 + +typedef struct OSSL_TIME_SPEC_TIME_st { + int type; + union { + OSSL_TIME_SPEC_ABSOLUTE *absolute; + STACK_OF(OSSL_TIME_PERIOD) *periodic; + } choice; +} OSSL_TIME_SPEC_TIME; + +typedef struct OSSL_TIME_SPEC_st { + OSSL_TIME_SPEC_TIME *time; + ASN1_BOOLEAN notThisTime; + ASN1_INTEGER *timeZone; +} OSSL_TIME_SPEC; + +DECLARE_ASN1_FUNCTIONS(OSSL_DAY_TIME) +DECLARE_ASN1_FUNCTIONS(OSSL_DAY_TIME_BAND) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_DAY) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_WEEKS) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_MONTH) +DECLARE_ASN1_FUNCTIONS(OSSL_NAMED_DAY) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_X_DAY_OF) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_ABSOLUTE) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_TIME) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_PERIOD) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_TIME_PERIOD, OSSL_TIME_PERIOD, OSSL_TIME_PERIOD) +#define sk_OSSL_TIME_PERIOD_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_value(sk, idx) ((OSSL_TIME_PERIOD *)OPENSSL_sk_value(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk), (idx))) +#define sk_OSSL_TIME_PERIOD_new(cmp) ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_new(ossl_check_OSSL_TIME_PERIOD_compfunc_type(cmp))) +#define sk_OSSL_TIME_PERIOD_new_null() ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_new_null()) +#define sk_OSSL_TIME_PERIOD_new_reserve(cmp, n) ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_TIME_PERIOD_compfunc_type(cmp), (n))) +#define sk_OSSL_TIME_PERIOD_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), (n)) +#define sk_OSSL_TIME_PERIOD_free(sk) OPENSSL_sk_free(ossl_check_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_delete(sk, i) ((OSSL_TIME_PERIOD *)OPENSSL_sk_delete(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), (i))) +#define sk_OSSL_TIME_PERIOD_delete_ptr(sk, ptr) ((OSSL_TIME_PERIOD *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr))) +#define sk_OSSL_TIME_PERIOD_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr)) +#define sk_OSSL_TIME_PERIOD_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr)) +#define sk_OSSL_TIME_PERIOD_pop(sk) ((OSSL_TIME_PERIOD *)OPENSSL_sk_pop(ossl_check_OSSL_TIME_PERIOD_sk_type(sk))) +#define sk_OSSL_TIME_PERIOD_shift(sk) ((OSSL_TIME_PERIOD *)OPENSSL_sk_shift(ossl_check_OSSL_TIME_PERIOD_sk_type(sk))) +#define sk_OSSL_TIME_PERIOD_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_TIME_PERIOD_sk_type(sk),ossl_check_OSSL_TIME_PERIOD_freefunc_type(freefunc)) +#define sk_OSSL_TIME_PERIOD_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr), (idx)) +#define sk_OSSL_TIME_PERIOD_set(sk, idx, ptr) ((OSSL_TIME_PERIOD *)OPENSSL_sk_set(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), (idx), ossl_check_OSSL_TIME_PERIOD_type(ptr))) +#define sk_OSSL_TIME_PERIOD_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr)) +#define sk_OSSL_TIME_PERIOD_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr)) +#define sk_OSSL_TIME_PERIOD_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr), pnum) +#define sk_OSSL_TIME_PERIOD_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_dup(sk) ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_dup(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk))) +#define sk_OSSL_TIME_PERIOD_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_copyfunc_type(copyfunc), ossl_check_OSSL_TIME_PERIOD_freefunc_type(freefunc))) +#define sk_OSSL_TIME_PERIOD_set_cmp_func(sk, cmp) ((sk_OSSL_TIME_PERIOD_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_compfunc_type(cmp))) + + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_DAY_TIME_BAND, OSSL_DAY_TIME_BAND, OSSL_DAY_TIME_BAND) +#define sk_OSSL_DAY_TIME_BAND_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_value(sk, idx) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_value(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk), (idx))) +#define sk_OSSL_DAY_TIME_BAND_new(cmp) ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_new(ossl_check_OSSL_DAY_TIME_BAND_compfunc_type(cmp))) +#define sk_OSSL_DAY_TIME_BAND_new_null() ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_new_null()) +#define sk_OSSL_DAY_TIME_BAND_new_reserve(cmp, n) ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_DAY_TIME_BAND_compfunc_type(cmp), (n))) +#define sk_OSSL_DAY_TIME_BAND_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), (n)) +#define sk_OSSL_DAY_TIME_BAND_free(sk) OPENSSL_sk_free(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_delete(sk, i) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_delete(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), (i))) +#define sk_OSSL_DAY_TIME_BAND_delete_ptr(sk, ptr) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr))) +#define sk_OSSL_DAY_TIME_BAND_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr)) +#define sk_OSSL_DAY_TIME_BAND_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr)) +#define sk_OSSL_DAY_TIME_BAND_pop(sk) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_pop(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk))) +#define sk_OSSL_DAY_TIME_BAND_shift(sk) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_shift(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk))) +#define sk_OSSL_DAY_TIME_BAND_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk),ossl_check_OSSL_DAY_TIME_BAND_freefunc_type(freefunc)) +#define sk_OSSL_DAY_TIME_BAND_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr), (idx)) +#define sk_OSSL_DAY_TIME_BAND_set(sk, idx, ptr) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_set(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), (idx), ossl_check_OSSL_DAY_TIME_BAND_type(ptr))) +#define sk_OSSL_DAY_TIME_BAND_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr)) +#define sk_OSSL_DAY_TIME_BAND_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr)) +#define sk_OSSL_DAY_TIME_BAND_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr), pnum) +#define sk_OSSL_DAY_TIME_BAND_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_dup(sk) ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_dup(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk))) +#define sk_OSSL_DAY_TIME_BAND_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_copyfunc_type(copyfunc), ossl_check_OSSL_DAY_TIME_BAND_freefunc_type(freefunc))) +#define sk_OSSL_DAY_TIME_BAND_set_cmp_func(sk, cmp) ((sk_OSSL_DAY_TIME_BAND_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_compfunc_type(cmp))) + + +/* Attribute Type and Value */ +typedef struct atav_st { + ASN1_OBJECT *type; + ASN1_TYPE *value; +} OSSL_ATAV; + +typedef struct ATTRIBUTE_TYPE_MAPPING_st { + ASN1_OBJECT *local; + ASN1_OBJECT *remote; +} OSSL_ATTRIBUTE_TYPE_MAPPING; + +typedef struct ATTRIBUTE_VALUE_MAPPING_st { + OSSL_ATAV *local; + OSSL_ATAV *remote; +} OSSL_ATTRIBUTE_VALUE_MAPPING; + +# define OSSL_ATTR_MAP_TYPE 0 +# define OSSL_ATTR_MAP_VALUE 1 + +typedef struct ATTRIBUTE_MAPPING_st { + int type; + union { + OSSL_ATTRIBUTE_TYPE_MAPPING *typeMappings; + OSSL_ATTRIBUTE_VALUE_MAPPING *typeValueMappings; + } choice; +} OSSL_ATTRIBUTE_MAPPING; + +typedef STACK_OF(OSSL_ATTRIBUTE_MAPPING) OSSL_ATTRIBUTE_MAPPINGS; +DECLARE_ASN1_FUNCTIONS(OSSL_ATAV) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_TYPE_MAPPING) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_VALUE_MAPPING) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_MAPPING) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_MAPPINGS) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ATTRIBUTE_MAPPING, OSSL_ATTRIBUTE_MAPPING, OSSL_ATTRIBUTE_MAPPING) +#define sk_OSSL_ATTRIBUTE_MAPPING_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_value(sk, idx) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_value(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), (idx))) +#define sk_OSSL_ATTRIBUTE_MAPPING_new(cmp) ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_new(ossl_check_OSSL_ATTRIBUTE_MAPPING_compfunc_type(cmp))) +#define sk_OSSL_ATTRIBUTE_MAPPING_new_null() ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ATTRIBUTE_MAPPING_new_reserve(cmp, n) ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ATTRIBUTE_MAPPING_compfunc_type(cmp), (n))) +#define sk_OSSL_ATTRIBUTE_MAPPING_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), (n)) +#define sk_OSSL_ATTRIBUTE_MAPPING_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_delete(sk, i) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_delete(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), (i))) +#define sk_OSSL_ATTRIBUTE_MAPPING_delete_ptr(sk, ptr) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr))) +#define sk_OSSL_ATTRIBUTE_MAPPING_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr)) +#define sk_OSSL_ATTRIBUTE_MAPPING_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr)) +#define sk_OSSL_ATTRIBUTE_MAPPING_pop(sk) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_pop(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk))) +#define sk_OSSL_ATTRIBUTE_MAPPING_shift(sk) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_shift(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk))) +#define sk_OSSL_ATTRIBUTE_MAPPING_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk),ossl_check_OSSL_ATTRIBUTE_MAPPING_freefunc_type(freefunc)) +#define sk_OSSL_ATTRIBUTE_MAPPING_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr), (idx)) +#define sk_OSSL_ATTRIBUTE_MAPPING_set(sk, idx, ptr) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_set(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), (idx), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr))) +#define sk_OSSL_ATTRIBUTE_MAPPING_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr)) +#define sk_OSSL_ATTRIBUTE_MAPPING_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr)) +#define sk_OSSL_ATTRIBUTE_MAPPING_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr), pnum) +#define sk_OSSL_ATTRIBUTE_MAPPING_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_dup(sk) ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk))) +#define sk_OSSL_ATTRIBUTE_MAPPING_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_copyfunc_type(copyfunc), ossl_check_OSSL_ATTRIBUTE_MAPPING_freefunc_type(freefunc))) +#define sk_OSSL_ATTRIBUTE_MAPPING_set_cmp_func(sk, cmp) ((sk_OSSL_ATTRIBUTE_MAPPING_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_compfunc_type(cmp))) + + +# define OSSL_AAA_ATTRIBUTE_TYPE 0 +# define OSSL_AAA_ATTRIBUTE_VALUES 1 + +typedef struct ALLOWED_ATTRIBUTES_CHOICE_st { + int type; + union { + ASN1_OBJECT *attributeType; + X509_ATTRIBUTE *attributeTypeandValues; + } choice; +} OSSL_ALLOWED_ATTRIBUTES_CHOICE; + +typedef struct ALLOWED_ATTRIBUTES_ITEM_st { + STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *attributes; + GENERAL_NAME *holderDomain; +} OSSL_ALLOWED_ATTRIBUTES_ITEM; + +typedef STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) OSSL_ALLOWED_ATTRIBUTES_SYNTAX; + +DECLARE_ASN1_FUNCTIONS(OSSL_ALLOWED_ATTRIBUTES_CHOICE) +DECLARE_ASN1_FUNCTIONS(OSSL_ALLOWED_ATTRIBUTES_ITEM) +DECLARE_ASN1_FUNCTIONS(OSSL_ALLOWED_ATTRIBUTES_SYNTAX) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ALLOWED_ATTRIBUTES_CHOICE, OSSL_ALLOWED_ATTRIBUTES_CHOICE, OSSL_ALLOWED_ATTRIBUTES_CHOICE) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_value(sk, idx) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_value(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), (idx))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_new(cmp) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_new(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_compfunc_type(cmp))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_new_null() ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_new_reserve(cmp, n) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_compfunc_type(cmp), (n))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), (n)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_delete(sk, i) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_delete(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), (i))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_delete_ptr(sk, ptr) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_pop(sk) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_pop(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_shift(sk) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_shift(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk),ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_freefunc_type(freefunc)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr), (idx)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_set(sk, idx, ptr) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_set(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), (idx), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr), pnum) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_dup(sk) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_copyfunc_type(copyfunc), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_freefunc_type(freefunc))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_set_cmp_func(sk, cmp) ((sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_compfunc_type(cmp))) + + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ALLOWED_ATTRIBUTES_ITEM, OSSL_ALLOWED_ATTRIBUTES_ITEM, OSSL_ALLOWED_ATTRIBUTES_ITEM) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_value(sk, idx) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_value(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), (idx))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_new(cmp) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_new(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_compfunc_type(cmp))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_new_null() ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_new_reserve(cmp, n) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_compfunc_type(cmp), (n))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), (n)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_delete(sk, i) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_delete(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), (i))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_delete_ptr(sk, ptr) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_pop(sk) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_pop(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_shift(sk) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_shift(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk),ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_freefunc_type(freefunc)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr), (idx)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_set(sk, idx, ptr) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_set(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), (idx), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr), pnum) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_dup(sk) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_copyfunc_type(copyfunc), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_freefunc_type(freefunc))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_set_cmp_func(sk, cmp) ((sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_compfunc_type(cmp))) + + +typedef struct AA_DIST_POINT_st { + DIST_POINT_NAME *distpoint; + ASN1_BIT_STRING *reasons; + int dp_reasons; + ASN1_BOOLEAN indirectCRL; + ASN1_BOOLEAN containsUserAttributeCerts; + ASN1_BOOLEAN containsAACerts; + ASN1_BOOLEAN containsSOAPublicKeyCerts; +} OSSL_AA_DIST_POINT; + +DECLARE_ASN1_FUNCTIONS(OSSL_AA_DIST_POINT) + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/include/progs.h b/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/include/progs.h index be55f61503d405..1b62ec37dec130 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/include/progs.h +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/include/progs.h @@ -56,6 +56,7 @@ extern int s_client_main(int argc, char *argv[]); extern int s_server_main(int argc, char *argv[]); extern int s_time_main(int argc, char *argv[]); extern int sess_id_main(int argc, char *argv[]); +extern int skeyutl_main(int argc, char *argv[]); extern int smime_main(int argc, char *argv[]); extern int speed_main(int argc, char *argv[]); extern int spkac_main(int argc, char *argv[]); @@ -110,6 +111,7 @@ extern const OPTIONS s_client_options[]; extern const OPTIONS s_server_options[]; extern const OPTIONS s_time_options[]; extern const OPTIONS sess_id_options[]; +extern const OPTIONS skeyutl_options[]; extern const OPTIONS smime_options[]; extern const OPTIONS speed_options[]; extern const OPTIONS spkac_options[]; diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/openssl-cl.gypi b/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/openssl-cl.gypi index db9620211ff38c..53b6e4ddd2c30c 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/openssl-cl.gypi +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/openssl-cl.gypi @@ -61,6 +61,7 @@ 'openssl/apps/s_server.c', 'openssl/apps/s_time.c', 'openssl/apps/sess_id.c', + 'openssl/apps/skeyutl.c', 'openssl/apps/smime.c', 'openssl/apps/speed.c', 'openssl/apps/spkac.c', @@ -76,12 +77,14 @@ 'openssl/apps/lib/app_rand.c', 'openssl/apps/lib/app_x509.c', 'openssl/apps/lib/apps.c', + 'openssl/apps/lib/apps_opt_printf.c', 'openssl/apps/lib/apps_ui.c', 'openssl/apps/lib/columns.c', 'openssl/apps/lib/engine.c', 'openssl/apps/lib/engine_loader.c', 'openssl/apps/lib/fmt.c', 'openssl/apps/lib/http_server.c', + 'openssl/apps/lib/log.c', 'openssl/apps/lib/names.c', 'openssl/apps/lib/opt.c', 'openssl/apps/lib/s_cb.c', diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/openssl-fips.gypi b/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/openssl-fips.gypi index 58076c5e610ec2..c44a696348fd08 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/openssl-fips.gypi +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/openssl-fips.gypi @@ -100,14 +100,15 @@ 'openssl/crypto/evp/kem.c', 'openssl/crypto/evp/keymgmt_lib.c', 'openssl/crypto/evp/keymgmt_meth.c', - 'openssl/crypto/evp/m_sigver.c', 'openssl/crypto/evp/mac_lib.c', 'openssl/crypto/evp/mac_meth.c', 'openssl/crypto/evp/p_lib.c', 'openssl/crypto/evp/pmeth_check.c', 'openssl/crypto/evp/pmeth_gn.c', 'openssl/crypto/evp/pmeth_lib.c', + 'openssl/crypto/evp/s_lib.c', 'openssl/crypto/evp/signature.c', + 'openssl/crypto/evp/skeymgmt_meth.c', 'openssl/crypto/ffc/ffc_backend.c', 'openssl/crypto/ffc/ffc_dh.c', 'openssl/crypto/ffc/ffc_key_generate.c', @@ -115,6 +116,8 @@ 'openssl/crypto/ffc/ffc_params.c', 'openssl/crypto/ffc/ffc_params_generate.c', 'openssl/crypto/ffc/ffc_params_validate.c', + 'openssl/crypto/hashtable/hashfunc.c', + 'openssl/crypto/hashtable/hashtable.c', 'openssl/crypto/hmac/hmac.c', 'openssl/crypto/lhash/lhash.c', 'openssl/crypto/asn1_dsa.c', @@ -145,6 +148,16 @@ 'openssl/crypto/threads_none.c', 'openssl/crypto/threads_pthread.c', 'openssl/crypto/threads_win.c', + 'openssl/crypto/time.c', + 'openssl/crypto/ml_dsa/ml_dsa_encoders.c', + 'openssl/crypto/ml_dsa/ml_dsa_key.c', + 'openssl/crypto/ml_dsa/ml_dsa_key_compress.c', + 'openssl/crypto/ml_dsa/ml_dsa_matrix.c', + 'openssl/crypto/ml_dsa/ml_dsa_ntt.c', + 'openssl/crypto/ml_dsa/ml_dsa_params.c', + 'openssl/crypto/ml_dsa/ml_dsa_sample.c', + 'openssl/crypto/ml_dsa/ml_dsa_sign.c', + 'openssl/crypto/ml_kem/ml_kem.c', 'openssl/crypto/modes/cbc128.c', 'openssl/crypto/modes/ccm128.c', 'openssl/crypto/modes/cfb128.c', @@ -153,6 +166,7 @@ 'openssl/crypto/modes/ofb128.c', 'openssl/crypto/modes/wrap128.c', 'openssl/crypto/modes/xts128.c', + 'openssl/crypto/modes/xts128gb.c', 'openssl/crypto/property/defn_cache.c', 'openssl/crypto/property/property.c', 'openssl/crypto/property/property_parse.c', @@ -181,7 +195,23 @@ 'openssl/crypto/sha/sha256.c', 'openssl/crypto/sha/sha3.c', 'openssl/crypto/sha/sha512.c', + 'openssl/crypto/slh_dsa/slh_adrs.c', + 'openssl/crypto/slh_dsa/slh_dsa.c', + 'openssl/crypto/slh_dsa/slh_dsa_hash_ctx.c', + 'openssl/crypto/slh_dsa/slh_dsa_key.c', + 'openssl/crypto/slh_dsa/slh_fors.c', + 'openssl/crypto/slh_dsa/slh_hash.c', + 'openssl/crypto/slh_dsa/slh_hypertree.c', + 'openssl/crypto/slh_dsa/slh_params.c', + 'openssl/crypto/slh_dsa/slh_wots.c', + 'openssl/crypto/slh_dsa/slh_xmss.c', 'openssl/crypto/stack/stack.c', + 'openssl/crypto/thread/arch/thread_none.c', + 'openssl/crypto/thread/arch/thread_posix.c', + 'openssl/crypto/thread/arch/thread_win.c', + 'openssl/crypto/thread/api.c', + 'openssl/crypto/thread/arch.c', + 'openssl/crypto/thread/internal.c', 'openssl/providers/common/der/der_rsa_sig.c', 'openssl/providers/common/bio_prov.c', 'openssl/providers/common/capabilities.c', @@ -190,6 +220,7 @@ 'openssl/providers/common/provider_util.c', 'openssl/providers/common/securitycheck.c', 'openssl/providers/common/securitycheck_fips.c', + 'openssl/providers/fips/fipsindicator.c', 'openssl/providers/fips/fipsprov.c', 'openssl/providers/fips/self_test.c', 'openssl/providers/fips/self_test_kats.c', @@ -227,6 +258,8 @@ 'openssl/providers/implementations/kdfs/sskdf.c', 'openssl/providers/implementations/kdfs/tls1_prf.c', 'openssl/providers/implementations/kdfs/x942kdf.c', + 'openssl/providers/implementations/kem/ml_kem_kem.c', + 'openssl/providers/implementations/kem/mlx_kem.c', 'openssl/providers/implementations/kem/rsa_kem.c', 'openssl/providers/implementations/keymgmt/dh_kmgmt.c', 'openssl/providers/implementations/keymgmt/dsa_kmgmt.c', @@ -234,29 +267,39 @@ 'openssl/providers/implementations/keymgmt/ecx_kmgmt.c', 'openssl/providers/implementations/keymgmt/kdf_legacy_kmgmt.c', 'openssl/providers/implementations/keymgmt/mac_legacy_kmgmt.c', + 'openssl/providers/implementations/keymgmt/ml_dsa_kmgmt.c', + 'openssl/providers/implementations/keymgmt/ml_kem_kmgmt.c', + 'openssl/providers/implementations/keymgmt/mlx_kmgmt.c', 'openssl/providers/implementations/keymgmt/rsa_kmgmt.c', + 'openssl/providers/implementations/keymgmt/slh_dsa_kmgmt.c', 'openssl/providers/implementations/macs/cmac_prov.c', 'openssl/providers/implementations/macs/gmac_prov.c', 'openssl/providers/implementations/macs/hmac_prov.c', 'openssl/providers/implementations/macs/kmac_prov.c', - 'openssl/providers/implementations/rands/crngt.c', 'openssl/providers/implementations/rands/drbg.c', 'openssl/providers/implementations/rands/drbg_ctr.c', 'openssl/providers/implementations/rands/drbg_hash.c', 'openssl/providers/implementations/rands/drbg_hmac.c', + 'openssl/providers/implementations/rands/fips_crng_test.c', 'openssl/providers/implementations/rands/test_rng.c', 'openssl/providers/implementations/signature/dsa_sig.c', 'openssl/providers/implementations/signature/ecdsa_sig.c', 'openssl/providers/implementations/signature/eddsa_sig.c', 'openssl/providers/implementations/signature/mac_legacy_sig.c', + 'openssl/providers/implementations/signature/ml_dsa_sig.c', 'openssl/providers/implementations/signature/rsa_sig.c', - 'openssl/ssl/s3_cbc.c', + 'openssl/providers/implementations/signature/slh_dsa_sig.c', + 'openssl/providers/implementations/skeymgmt/aes_skmgmt.c', + 'openssl/providers/implementations/skeymgmt/generic.c', + 'openssl/ssl/record/methods/ssl3_cbc.c', 'openssl/providers/common/der/der_dsa_key.c', 'openssl/providers/common/der/der_dsa_sig.c', 'openssl/providers/common/der/der_ec_key.c', 'openssl/providers/common/der/der_ec_sig.c', 'openssl/providers/common/der/der_ecx_key.c', + 'openssl/providers/common/der/der_ml_dsa_key.c', 'openssl/providers/common/der/der_rsa_key.c', + 'openssl/providers/common/der/der_slh_dsa_key.c', 'openssl/providers/common/provider_ctx.c', 'openssl/providers/common/provider_err.c', 'openssl/providers/implementations/ciphers/ciphercommon.c', @@ -267,17 +310,20 @@ 'openssl/providers/implementations/ciphers/ciphercommon_gcm_hw.c', 'openssl/providers/implementations/ciphers/ciphercommon_hw.c', 'openssl/providers/implementations/digests/digestcommon.c', - 'openssl/ssl/record/tls_pad.c', + 'openssl/ssl/record/methods/tls_pad.c', 'openssl/providers/fips/fips_entry.c', ], 'openssl_sources_darwin64-x86_64-cc': [ + './config/archs/darwin64-x86_64-cc/no-asm/crypto/params_idx.c', './config/archs/darwin64-x86_64-cc/no-asm/providers/common/der/der_sm2_gen.c', './config/archs/darwin64-x86_64-cc/no-asm/providers/common/der/der_digests_gen.c', './config/archs/darwin64-x86_64-cc/no-asm/providers/common/der/der_dsa_gen.c', './config/archs/darwin64-x86_64-cc/no-asm/providers/common/der/der_ec_gen.c', './config/archs/darwin64-x86_64-cc/no-asm/providers/common/der/der_ecx_gen.c', + './config/archs/darwin64-x86_64-cc/no-asm/providers/common/der/der_ml_dsa_gen.c', './config/archs/darwin64-x86_64-cc/no-asm/providers/common/der/der_rsa_gen.c', + './config/archs/darwin64-x86_64-cc/no-asm/providers/common/der/der_slh_dsa_gen.c', './config/archs/darwin64-x86_64-cc/no-asm/providers/common/der/der_wrap_gen.c', ], diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/openssl.gypi b/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/openssl.gypi index cd8cb60dca73cb..b1974600fdf4f3 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/openssl.gypi +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/openssl.gypi @@ -7,14 +7,15 @@ 'openssl/ssl/d1_srtp.c', 'openssl/ssl/methods.c', 'openssl/ssl/pqueue.c', + 'openssl/ssl/priority_queue.c', 'openssl/ssl/s3_enc.c', 'openssl/ssl/s3_lib.c', 'openssl/ssl/s3_msg.c', 'openssl/ssl/ssl_asn1.c', 'openssl/ssl/ssl_cert.c', + 'openssl/ssl/ssl_cert_comp.c', 'openssl/ssl/ssl_ciph.c', 'openssl/ssl/ssl_conf.c', - 'openssl/ssl/ssl_err.c', 'openssl/ssl/ssl_err_legacy.c', 'openssl/ssl/ssl_init.c', 'openssl/ssl/ssl_lib.c', @@ -31,12 +32,60 @@ 'openssl/ssl/tls13_enc.c', 'openssl/ssl/tls_depr.c', 'openssl/ssl/tls_srp.c', - 'openssl/ssl/record/dtls1_bitmap.c', + 'openssl/ssl/quic/cc_newreno.c', + 'openssl/ssl/quic/json_enc.c', + 'openssl/ssl/quic/qlog.c', + 'openssl/ssl/quic/qlog_event_helpers.c', + 'openssl/ssl/quic/quic_ackm.c', + 'openssl/ssl/quic/quic_cfq.c', + 'openssl/ssl/quic/quic_channel.c', + 'openssl/ssl/quic/quic_demux.c', + 'openssl/ssl/quic/quic_engine.c', + 'openssl/ssl/quic/quic_fc.c', + 'openssl/ssl/quic/quic_fifd.c', + 'openssl/ssl/quic/quic_impl.c', + 'openssl/ssl/quic/quic_lcidm.c', + 'openssl/ssl/quic/quic_method.c', + 'openssl/ssl/quic/quic_obj.c', + 'openssl/ssl/quic/quic_port.c', + 'openssl/ssl/quic/quic_rcidm.c', + 'openssl/ssl/quic/quic_reactor.c', + 'openssl/ssl/quic/quic_reactor_wait_ctx.c', + 'openssl/ssl/quic/quic_record_rx.c', + 'openssl/ssl/quic/quic_record_shared.c', + 'openssl/ssl/quic/quic_record_tx.c', + 'openssl/ssl/quic/quic_record_util.c', + 'openssl/ssl/quic/quic_rstream.c', + 'openssl/ssl/quic/quic_rx_depack.c', + 'openssl/ssl/quic/quic_sf_list.c', + 'openssl/ssl/quic/quic_srt_gen.c', + 'openssl/ssl/quic/quic_srtm.c', + 'openssl/ssl/quic/quic_sstream.c', + 'openssl/ssl/quic/quic_statm.c', + 'openssl/ssl/quic/quic_stream_map.c', + 'openssl/ssl/quic/quic_thread_assist.c', + 'openssl/ssl/quic/quic_tls.c', + 'openssl/ssl/quic/quic_tls_api.c', + 'openssl/ssl/quic/quic_trace.c', + 'openssl/ssl/quic/quic_tserver.c', + 'openssl/ssl/quic/quic_txp.c', + 'openssl/ssl/quic/quic_txpim.c', + 'openssl/ssl/quic/quic_types.c', + 'openssl/ssl/quic/quic_wire.c', + 'openssl/ssl/quic/quic_wire_pkt.c', + 'openssl/ssl/quic/uint_set.c', 'openssl/ssl/record/rec_layer_d1.c', 'openssl/ssl/record/rec_layer_s3.c', - 'openssl/ssl/record/ssl3_buffer.c', - 'openssl/ssl/record/ssl3_record.c', - 'openssl/ssl/record/ssl3_record_tls13.c', + 'openssl/ssl/record/methods/dtls_meth.c', + 'openssl/ssl/record/methods/ssl3_meth.c', + 'openssl/ssl/record/methods/tls13_meth.c', + 'openssl/ssl/record/methods/tls1_meth.c', + 'openssl/ssl/record/methods/tls_common.c', + 'openssl/ssl/record/methods/tls_multib.c', + 'openssl/ssl/record/methods/tlsany_meth.c', + 'openssl/ssl/rio/poll_builder.c', + 'openssl/ssl/rio/poll_immediate.c', + 'openssl/ssl/rio/rio_notifier.c', 'openssl/ssl/statem/extensions.c', 'openssl/ssl/statem/extensions_clnt.c', 'openssl/ssl/statem/extensions_cust.c', @@ -150,6 +199,7 @@ 'openssl/crypto/bio/bss_conn.c', 'openssl/crypto/bio/bss_core.c', 'openssl/crypto/bio/bss_dgram.c', + 'openssl/crypto/bio/bss_dgram_pair.c', 'openssl/crypto/bio/bss_fd.c', 'openssl/crypto/bio/bss_file.c', 'openssl/crypto/bio/bss_log.c', @@ -210,6 +260,7 @@ 'openssl/crypto/cmp/cmp_client.c', 'openssl/crypto/cmp/cmp_ctx.c', 'openssl/crypto/cmp/cmp_err.c', + 'openssl/crypto/cmp/cmp_genm.c', 'openssl/crypto/cmp/cmp_hdr.c', 'openssl/crypto/cmp/cmp_http.c', 'openssl/crypto/cmp/cmp_msg.c', @@ -385,7 +436,9 @@ 'openssl/crypto/err/err_all.c', 'openssl/crypto/err/err_all_legacy.c', 'openssl/crypto/err/err_blocks.c', + 'openssl/crypto/err/err_mark.c', 'openssl/crypto/err/err_prn.c', + 'openssl/crypto/err/err_save.c', 'openssl/crypto/ess/ess_asn1.c', 'openssl/crypto/ess/ess_err.c', 'openssl/crypto/ess/ess_lib.c', @@ -468,7 +521,9 @@ 'openssl/crypto/evp/pmeth_check.c', 'openssl/crypto/evp/pmeth_gn.c', 'openssl/crypto/evp/pmeth_lib.c', + 'openssl/crypto/evp/s_lib.c', 'openssl/crypto/evp/signature.c', + 'openssl/crypto/evp/skeymgmt_meth.c', 'openssl/crypto/ffc/ffc_backend.c', 'openssl/crypto/ffc/ffc_dh.c', 'openssl/crypto/ffc/ffc_key_generate.c', @@ -476,7 +531,11 @@ 'openssl/crypto/ffc/ffc_params.c', 'openssl/crypto/ffc/ffc_params_generate.c', 'openssl/crypto/ffc/ffc_params_validate.c', + 'openssl/crypto/hashtable/hashfunc.c', + 'openssl/crypto/hashtable/hashtable.c', 'openssl/crypto/hmac/hmac.c', + 'openssl/crypto/hpke/hpke.c', + 'openssl/crypto/hpke/hpke_util.c', 'openssl/crypto/http/http_client.c', 'openssl/crypto/http/http_err.c', 'openssl/crypto/http/http_lib.c', @@ -490,6 +549,7 @@ 'openssl/crypto/lhash/lhash.c', 'openssl/crypto/asn1_dsa.c', 'openssl/crypto/bsearch.c', + 'openssl/crypto/comp_methods.c', 'openssl/crypto/context.c', 'openssl/crypto/core_algorithm.c', 'openssl/crypto/core_fetch.c', @@ -499,10 +559,13 @@ 'openssl/crypto/cryptlib.c', 'openssl/crypto/ctype.c', 'openssl/crypto/cversion.c', + 'openssl/crypto/defaults.c', 'openssl/crypto/der_writer.c', + 'openssl/crypto/deterministic_nonce.c', 'openssl/crypto/ebcdic.c', 'openssl/crypto/ex_data.c', 'openssl/crypto/getenv.c', + 'openssl/crypto/indicator_core.c', 'openssl/crypto/info.c', 'openssl/crypto/init.c', 'openssl/crypto/initthread.c', @@ -527,12 +590,16 @@ 'openssl/crypto/provider_core.c', 'openssl/crypto/provider_predefined.c', 'openssl/crypto/punycode.c', + 'openssl/crypto/quic_vlint.c', 'openssl/crypto/self_test_core.c', + 'openssl/crypto/sleep.c', 'openssl/crypto/sparse_array.c', + 'openssl/crypto/ssl_err.c', 'openssl/crypto/threads_lib.c', 'openssl/crypto/threads_none.c', 'openssl/crypto/threads_pthread.c', 'openssl/crypto/threads_win.c', + 'openssl/crypto/time.c', 'openssl/crypto/trace.c', 'openssl/crypto/uid.c', 'openssl/crypto/md4/md4_dgst.c', @@ -542,6 +609,15 @@ 'openssl/crypto/md5/md5_sha1.c', 'openssl/crypto/mdc2/mdc2_one.c', 'openssl/crypto/mdc2/mdc2dgst.c', + 'openssl/crypto/ml_dsa/ml_dsa_encoders.c', + 'openssl/crypto/ml_dsa/ml_dsa_key.c', + 'openssl/crypto/ml_dsa/ml_dsa_key_compress.c', + 'openssl/crypto/ml_dsa/ml_dsa_matrix.c', + 'openssl/crypto/ml_dsa/ml_dsa_ntt.c', + 'openssl/crypto/ml_dsa/ml_dsa_params.c', + 'openssl/crypto/ml_dsa/ml_dsa_sample.c', + 'openssl/crypto/ml_dsa/ml_dsa_sign.c', + 'openssl/crypto/ml_kem/ml_kem.c', 'openssl/crypto/modes/cbc128.c', 'openssl/crypto/modes/ccm128.c', 'openssl/crypto/modes/cfb128.c', @@ -553,6 +629,7 @@ 'openssl/crypto/modes/siv128.c', 'openssl/crypto/modes/wrap128.c', 'openssl/crypto/modes/xts128.c', + 'openssl/crypto/modes/xts128gb.c', 'openssl/crypto/objects/o_names.c', 'openssl/crypto/objects/obj_dat.c', 'openssl/crypto/objects/obj_err.c', @@ -616,6 +693,7 @@ 'openssl/crypto/rand/rand_lib.c', 'openssl/crypto/rand/rand_meth.c', 'openssl/crypto/rand/rand_pool.c', + 'openssl/crypto/rand/rand_uniform.c', 'openssl/crypto/rand/randfile.c', 'openssl/crypto/rc2/rc2_cbc.c', 'openssl/crypto/rc2/rc2_ecb.c', @@ -664,6 +742,16 @@ 'openssl/crypto/sha/sha3.c', 'openssl/crypto/sha/sha512.c', 'openssl/crypto/siphash/siphash.c', + 'openssl/crypto/slh_dsa/slh_adrs.c', + 'openssl/crypto/slh_dsa/slh_dsa.c', + 'openssl/crypto/slh_dsa/slh_dsa_hash_ctx.c', + 'openssl/crypto/slh_dsa/slh_dsa_key.c', + 'openssl/crypto/slh_dsa/slh_fors.c', + 'openssl/crypto/slh_dsa/slh_hash.c', + 'openssl/crypto/slh_dsa/slh_hypertree.c', + 'openssl/crypto/slh_dsa/slh_params.c', + 'openssl/crypto/slh_dsa/slh_wots.c', + 'openssl/crypto/slh_dsa/slh_xmss.c', 'openssl/crypto/sm2/sm2_crypt.c', 'openssl/crypto/sm2/sm2_err.c', 'openssl/crypto/sm2/sm2_key.c', @@ -681,6 +769,12 @@ 'openssl/crypto/store/store_register.c', 'openssl/crypto/store/store_result.c', 'openssl/crypto/store/store_strings.c', + 'openssl/crypto/thread/arch/thread_none.c', + 'openssl/crypto/thread/arch/thread_posix.c', + 'openssl/crypto/thread/arch/thread_win.c', + 'openssl/crypto/thread/api.c', + 'openssl/crypto/thread/arch.c', + 'openssl/crypto/thread/internal.c', 'openssl/crypto/ts/ts_asn1.c', 'openssl/crypto/ts/ts_conf.c', 'openssl/crypto/ts/ts_err.c', @@ -709,14 +803,22 @@ 'openssl/crypto/x509/pcy_map.c', 'openssl/crypto/x509/pcy_node.c', 'openssl/crypto/x509/pcy_tree.c', + 'openssl/crypto/x509/t_acert.c', 'openssl/crypto/x509/t_crl.c', 'openssl/crypto/x509/t_req.c', 'openssl/crypto/x509/t_x509.c', + 'openssl/crypto/x509/v3_aaa.c', + 'openssl/crypto/x509/v3_ac_tgt.c', 'openssl/crypto/x509/v3_addr.c', 'openssl/crypto/x509/v3_admis.c', 'openssl/crypto/x509/v3_akeya.c', 'openssl/crypto/x509/v3_akid.c', 'openssl/crypto/x509/v3_asid.c', + 'openssl/crypto/x509/v3_attrdesc.c', + 'openssl/crypto/x509/v3_attrmap.c', + 'openssl/crypto/x509/v3_audit_id.c', + 'openssl/crypto/x509/v3_authattid.c', + 'openssl/crypto/x509/v3_battcons.c', 'openssl/crypto/x509/v3_bcons.c', 'openssl/crypto/x509/v3_bitst.c', 'openssl/crypto/x509/v3_conf.c', @@ -725,12 +827,17 @@ 'openssl/crypto/x509/v3_enum.c', 'openssl/crypto/x509/v3_extku.c', 'openssl/crypto/x509/v3_genn.c', + 'openssl/crypto/x509/v3_group_ac.c', 'openssl/crypto/x509/v3_ia5.c', + 'openssl/crypto/x509/v3_ind_iss.c', 'openssl/crypto/x509/v3_info.c', 'openssl/crypto/x509/v3_int.c', + 'openssl/crypto/x509/v3_iobo.c', 'openssl/crypto/x509/v3_ist.c', 'openssl/crypto/x509/v3_lib.c', 'openssl/crypto/x509/v3_ncons.c', + 'openssl/crypto/x509/v3_no_ass.c', + 'openssl/crypto/x509/v3_no_rev_avail.c', 'openssl/crypto/x509/v3_pci.c', 'openssl/crypto/x509/v3_pcia.c', 'openssl/crypto/x509/v3_pcons.c', @@ -738,13 +845,20 @@ 'openssl/crypto/x509/v3_pmaps.c', 'openssl/crypto/x509/v3_prn.c', 'openssl/crypto/x509/v3_purp.c', + 'openssl/crypto/x509/v3_rolespec.c', 'openssl/crypto/x509/v3_san.c', + 'openssl/crypto/x509/v3_sda.c', + 'openssl/crypto/x509/v3_single_use.c', 'openssl/crypto/x509/v3_skid.c', + 'openssl/crypto/x509/v3_soa_id.c', 'openssl/crypto/x509/v3_sxnet.c', + 'openssl/crypto/x509/v3_timespec.c', 'openssl/crypto/x509/v3_tlsf.c', + 'openssl/crypto/x509/v3_usernotice.c', 'openssl/crypto/x509/v3_utf8.c', 'openssl/crypto/x509/v3_utl.c', 'openssl/crypto/x509/v3err.c', + 'openssl/crypto/x509/x509_acert.c', 'openssl/crypto/x509/x509_att.c', 'openssl/crypto/x509/x509_cmp.c', 'openssl/crypto/x509/x509_d2.c', @@ -762,6 +876,7 @@ 'openssl/crypto/x509/x509_v3.c', 'openssl/crypto/x509/x509_vfy.c', 'openssl/crypto/x509/x509_vpm.c', + 'openssl/crypto/x509/x509aset.c', 'openssl/crypto/x509/x509cset.c', 'openssl/crypto/x509/x509name.c', 'openssl/crypto/x509/x509rset.c', @@ -771,6 +886,7 @@ 'openssl/crypto/x509/x_attrib.c', 'openssl/crypto/x509/x_crl.c', 'openssl/crypto/x509/x_exten.c', + 'openssl/crypto/x509/x_ietfatt.c', 'openssl/crypto/x509/x_name.c', 'openssl/crypto/x509/x_pubkey.c', 'openssl/crypto/x509/x_req.c', @@ -802,6 +918,9 @@ 'openssl/providers/implementations/ciphers/cipher_aes_ccm_hw.c', 'openssl/providers/implementations/ciphers/cipher_aes_gcm.c', 'openssl/providers/implementations/ciphers/cipher_aes_gcm_hw.c', + 'openssl/providers/implementations/ciphers/cipher_aes_gcm_siv.c', + 'openssl/providers/implementations/ciphers/cipher_aes_gcm_siv_hw.c', + 'openssl/providers/implementations/ciphers/cipher_aes_gcm_siv_polyval.c', 'openssl/providers/implementations/ciphers/cipher_aes_hw.c', 'openssl/providers/implementations/ciphers/cipher_aes_ocb.c', 'openssl/providers/implementations/ciphers/cipher_aes_ocb_hw.c', @@ -826,7 +945,13 @@ 'openssl/providers/implementations/ciphers/cipher_cts.c', 'openssl/providers/implementations/ciphers/cipher_null.c', 'openssl/providers/implementations/ciphers/cipher_sm4.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_ccm.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_ccm_hw.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_gcm.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_gcm_hw.c', 'openssl/providers/implementations/ciphers/cipher_sm4_hw.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_xts.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_xts_hw.c', 'openssl/providers/implementations/ciphers/cipher_tdes.c', 'openssl/providers/implementations/ciphers/cipher_tdes_common.c', 'openssl/providers/implementations/ciphers/cipher_tdes_default.c', @@ -855,11 +980,16 @@ 'openssl/providers/implementations/encode_decode/encode_key2ms.c', 'openssl/providers/implementations/encode_decode/encode_key2text.c', 'openssl/providers/implementations/encode_decode/endecoder_common.c', + 'openssl/providers/implementations/encode_decode/ml_common_codecs.c', + 'openssl/providers/implementations/encode_decode/ml_dsa_codecs.c', + 'openssl/providers/implementations/encode_decode/ml_kem_codecs.c', 'openssl/providers/implementations/exchange/dh_exch.c', 'openssl/providers/implementations/exchange/ecdh_exch.c', 'openssl/providers/implementations/exchange/ecx_exch.c', 'openssl/providers/implementations/exchange/kdf_exch.c', + 'openssl/providers/implementations/kdfs/argon2.c', 'openssl/providers/implementations/kdfs/hkdf.c', + 'openssl/providers/implementations/kdfs/hmacdrbg_kdf.c', 'openssl/providers/implementations/kdfs/kbkdf.c', 'openssl/providers/implementations/kdfs/krb5kdf.c', 'openssl/providers/implementations/kdfs/pbkdf2.c', @@ -870,6 +1000,11 @@ 'openssl/providers/implementations/kdfs/sskdf.c', 'openssl/providers/implementations/kdfs/tls1_prf.c', 'openssl/providers/implementations/kdfs/x942kdf.c', + 'openssl/providers/implementations/kem/ec_kem.c', + 'openssl/providers/implementations/kem/ecx_kem.c', + 'openssl/providers/implementations/kem/kem_util.c', + 'openssl/providers/implementations/kem/ml_kem_kem.c', + 'openssl/providers/implementations/kem/mlx_kem.c', 'openssl/providers/implementations/kem/rsa_kem.c', 'openssl/providers/implementations/keymgmt/dh_kmgmt.c', 'openssl/providers/implementations/keymgmt/dsa_kmgmt.c', @@ -877,7 +1012,11 @@ 'openssl/providers/implementations/keymgmt/ecx_kmgmt.c', 'openssl/providers/implementations/keymgmt/kdf_legacy_kmgmt.c', 'openssl/providers/implementations/keymgmt/mac_legacy_kmgmt.c', + 'openssl/providers/implementations/keymgmt/ml_dsa_kmgmt.c', + 'openssl/providers/implementations/keymgmt/ml_kem_kmgmt.c', + 'openssl/providers/implementations/keymgmt/mlx_kmgmt.c', 'openssl/providers/implementations/keymgmt/rsa_kmgmt.c', + 'openssl/providers/implementations/keymgmt/slh_dsa_kmgmt.c', 'openssl/providers/implementations/macs/blake2b_mac.c', 'openssl/providers/implementations/macs/blake2s_mac.c', 'openssl/providers/implementations/macs/cmac_prov.c', @@ -886,12 +1025,12 @@ 'openssl/providers/implementations/macs/kmac_prov.c', 'openssl/providers/implementations/macs/poly1305_prov.c', 'openssl/providers/implementations/macs/siphash_prov.c', - 'openssl/providers/implementations/rands/crngt.c', 'openssl/providers/implementations/rands/drbg.c', 'openssl/providers/implementations/rands/drbg_ctr.c', 'openssl/providers/implementations/rands/drbg_hash.c', 'openssl/providers/implementations/rands/drbg_hmac.c', 'openssl/providers/implementations/rands/seed_src.c', + 'openssl/providers/implementations/rands/seed_src_jitter.c', 'openssl/providers/implementations/rands/test_rng.c', 'openssl/providers/implementations/rands/seeding/rand_cpu_x86.c', 'openssl/providers/implementations/rands/seeding/rand_tsc.c', @@ -901,17 +1040,23 @@ 'openssl/providers/implementations/signature/ecdsa_sig.c', 'openssl/providers/implementations/signature/eddsa_sig.c', 'openssl/providers/implementations/signature/mac_legacy_sig.c', + 'openssl/providers/implementations/signature/ml_dsa_sig.c', 'openssl/providers/implementations/signature/rsa_sig.c', + 'openssl/providers/implementations/signature/slh_dsa_sig.c', 'openssl/providers/implementations/signature/sm2_sig.c', + 'openssl/providers/implementations/skeymgmt/aes_skmgmt.c', + 'openssl/providers/implementations/skeymgmt/generic.c', 'openssl/providers/implementations/storemgmt/file_store.c', 'openssl/providers/implementations/storemgmt/file_store_any2obj.c', - 'openssl/ssl/s3_cbc.c', + 'openssl/ssl/record/methods/ssl3_cbc.c', 'openssl/providers/common/der/der_dsa_key.c', 'openssl/providers/common/der/der_dsa_sig.c', 'openssl/providers/common/der/der_ec_key.c', 'openssl/providers/common/der/der_ec_sig.c', 'openssl/providers/common/der/der_ecx_key.c', + 'openssl/providers/common/der/der_ml_dsa_key.c', 'openssl/providers/common/der/der_rsa_key.c', + 'openssl/providers/common/der/der_slh_dsa_key.c', 'openssl/providers/common/provider_ctx.c', 'openssl/providers/common/provider_err.c', 'openssl/providers/implementations/ciphers/ciphercommon.c', @@ -922,7 +1067,7 @@ 'openssl/providers/implementations/ciphers/ciphercommon_gcm_hw.c', 'openssl/providers/implementations/ciphers/ciphercommon_hw.c', 'openssl/providers/implementations/digests/digestcommon.c', - 'openssl/ssl/record/tls_pad.c', + 'openssl/ssl/record/methods/tls_pad.c', 'openssl/providers/implementations/ciphers/cipher_blowfish.c', 'openssl/providers/implementations/ciphers/cipher_blowfish_hw.c', 'openssl/providers/implementations/ciphers/cipher_cast5.c', @@ -947,16 +1092,20 @@ 'openssl/providers/implementations/digests/ripemd_prov.c', 'openssl/providers/implementations/digests/wp_prov.c', 'openssl/providers/implementations/kdfs/pbkdf1.c', + 'openssl/providers/implementations/kdfs/pvkkdf.c', 'openssl/providers/prov_running.c', 'openssl/providers/legacyprov.c', ], 'openssl_sources_darwin64-x86_64-cc': [ + './config/archs/darwin64-x86_64-cc/no-asm/crypto/params_idx.c', './config/archs/darwin64-x86_64-cc/no-asm/providers/common/der/der_sm2_gen.c', './config/archs/darwin64-x86_64-cc/no-asm/providers/common/der/der_digests_gen.c', './config/archs/darwin64-x86_64-cc/no-asm/providers/common/der/der_dsa_gen.c', './config/archs/darwin64-x86_64-cc/no-asm/providers/common/der/der_ec_gen.c', './config/archs/darwin64-x86_64-cc/no-asm/providers/common/der/der_ecx_gen.c', + './config/archs/darwin64-x86_64-cc/no-asm/providers/common/der/der_ml_dsa_gen.c', './config/archs/darwin64-x86_64-cc/no-asm/providers/common/der/der_rsa_gen.c', + './config/archs/darwin64-x86_64-cc/no-asm/providers/common/der/der_slh_dsa_gen.c', './config/archs/darwin64-x86_64-cc/no-asm/providers/common/der/der_wrap_gen.c', ], 'openssl_defines_darwin64-x86_64-cc': [ diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/providers/common/der/der_ml_dsa_gen.c b/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/providers/common/der/der_ml_dsa_gen.c new file mode 100644 index 00000000000000..4a8a113a268578 --- /dev/null +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/providers/common/der/der_ml_dsa_gen.c @@ -0,0 +1,37 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from providers/common/der/der_ml_dsa_gen.c.in + * + * Copyright 2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include "prov/der_ml_dsa.h" + +/* Well known OIDs precompiled */ + +/* + * id-ml-dsa-44 OBJECT IDENTIFIER ::= { sigAlgs 17 } + */ +const unsigned char ossl_der_oid_id_ml_dsa_44[DER_OID_SZ_id_ml_dsa_44] = { + DER_OID_V_id_ml_dsa_44 +}; + +/* + * id-ml-dsa-65 OBJECT IDENTIFIER ::= { sigAlgs 18 } + */ +const unsigned char ossl_der_oid_id_ml_dsa_65[DER_OID_SZ_id_ml_dsa_65] = { + DER_OID_V_id_ml_dsa_65 +}; + +/* + * id-ml-dsa-87 OBJECT IDENTIFIER ::= { sigAlgs 19 } + */ +const unsigned char ossl_der_oid_id_ml_dsa_87[DER_OID_SZ_id_ml_dsa_87] = { + DER_OID_V_id_ml_dsa_87 +}; + diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/providers/common/der/der_slh_dsa_gen.c b/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/providers/common/der/der_slh_dsa_gen.c new file mode 100644 index 00000000000000..1419a9515097dd --- /dev/null +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/providers/common/der/der_slh_dsa_gen.c @@ -0,0 +1,100 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from providers/common/der/der_slh_dsa_gen.c.in + * + * Copyright 2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include "prov/der_slh_dsa.h" + +/* Well known OIDs precompiled */ + +/* + * id-slh-dsa-sha2-128s OBJECT IDENTIFIER ::= { sigAlgs 20 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_128s[DER_OID_SZ_id_slh_dsa_sha2_128s] = { + DER_OID_V_id_slh_dsa_sha2_128s +}; + +/* + * id-slh-dsa-sha2-128f OBJECT IDENTIFIER ::= { sigAlgs 21 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_128f[DER_OID_SZ_id_slh_dsa_sha2_128f] = { + DER_OID_V_id_slh_dsa_sha2_128f +}; + +/* + * id-slh-dsa-sha2-192s OBJECT IDENTIFIER ::= { sigAlgs 22 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_192s[DER_OID_SZ_id_slh_dsa_sha2_192s] = { + DER_OID_V_id_slh_dsa_sha2_192s +}; + +/* + * id-slh-dsa-sha2-192f OBJECT IDENTIFIER ::= { sigAlgs 23 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_192f[DER_OID_SZ_id_slh_dsa_sha2_192f] = { + DER_OID_V_id_slh_dsa_sha2_192f +}; + +/* + * id-slh-dsa-sha2-256s OBJECT IDENTIFIER ::= { sigAlgs 24 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_256s[DER_OID_SZ_id_slh_dsa_sha2_256s] = { + DER_OID_V_id_slh_dsa_sha2_256s +}; + +/* + * id-slh-dsa-sha2-256f OBJECT IDENTIFIER ::= { sigAlgs 25 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_256f[DER_OID_SZ_id_slh_dsa_sha2_256f] = { + DER_OID_V_id_slh_dsa_sha2_256f +}; + +/* + * id-slh-dsa-shake-128s OBJECT IDENTIFIER ::= { sigAlgs 26 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_128s[DER_OID_SZ_id_slh_dsa_shake_128s] = { + DER_OID_V_id_slh_dsa_shake_128s +}; + +/* + * id-slh-dsa-shake-128f OBJECT IDENTIFIER ::= { sigAlgs 27 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_128f[DER_OID_SZ_id_slh_dsa_shake_128f] = { + DER_OID_V_id_slh_dsa_shake_128f +}; + +/* + * id-slh-dsa-shake-192s OBJECT IDENTIFIER ::= { sigAlgs 28 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_192s[DER_OID_SZ_id_slh_dsa_shake_192s] = { + DER_OID_V_id_slh_dsa_shake_192s +}; + +/* + * id-slh-dsa-shake-192f OBJECT IDENTIFIER ::= { sigAlgs 29 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_192f[DER_OID_SZ_id_slh_dsa_shake_192f] = { + DER_OID_V_id_slh_dsa_shake_192f +}; + +/* + * id-slh-dsa-shake-256s OBJECT IDENTIFIER ::= { sigAlgs 30 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_256s[DER_OID_SZ_id_slh_dsa_shake_256s] = { + DER_OID_V_id_slh_dsa_shake_256s +}; + +/* + * id-slh-dsa-shake-256f OBJECT IDENTIFIER ::= { sigAlgs 31 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_256f[DER_OID_SZ_id_slh_dsa_shake_256f] = { + DER_OID_V_id_slh_dsa_shake_256f +}; + diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/providers/common/include/prov/der_ml_dsa.h b/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/providers/common/include/prov/der_ml_dsa.h new file mode 100644 index 00000000000000..c55f780ab4527c --- /dev/null +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/providers/common/include/prov/der_ml_dsa.h @@ -0,0 +1,40 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from providers/common/include/prov/der_ml_dsa.h.in + * + * Copyright 2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include "internal/der.h" +#include "crypto/ml_dsa.h" + +/* Well known OIDs precompiled */ + +/* + * id-ml-dsa-44 OBJECT IDENTIFIER ::= { sigAlgs 17 } + */ +#define DER_OID_V_id_ml_dsa_44 DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x11 +#define DER_OID_SZ_id_ml_dsa_44 11 +extern const unsigned char ossl_der_oid_id_ml_dsa_44[DER_OID_SZ_id_ml_dsa_44]; + +/* + * id-ml-dsa-65 OBJECT IDENTIFIER ::= { sigAlgs 18 } + */ +#define DER_OID_V_id_ml_dsa_65 DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x12 +#define DER_OID_SZ_id_ml_dsa_65 11 +extern const unsigned char ossl_der_oid_id_ml_dsa_65[DER_OID_SZ_id_ml_dsa_65]; + +/* + * id-ml-dsa-87 OBJECT IDENTIFIER ::= { sigAlgs 19 } + */ +#define DER_OID_V_id_ml_dsa_87 DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x13 +#define DER_OID_SZ_id_ml_dsa_87 11 +extern const unsigned char ossl_der_oid_id_ml_dsa_87[DER_OID_SZ_id_ml_dsa_87]; + + +int ossl_DER_w_algorithmIdentifier_ML_DSA(WPACKET *pkt, int tag, ML_DSA_KEY *key); diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/providers/common/include/prov/der_slh_dsa.h b/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/providers/common/include/prov/der_slh_dsa.h new file mode 100644 index 00000000000000..760f8e7699be72 --- /dev/null +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/providers/common/include/prov/der_slh_dsa.h @@ -0,0 +1,103 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from providers/common/include/prov/der_slh_dsa.h.in + * + * Copyright 2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include "internal/der.h" +#include "crypto/slh_dsa.h" + +/* Well known OIDs precompiled */ + +/* + * id-slh-dsa-sha2-128s OBJECT IDENTIFIER ::= { sigAlgs 20 } + */ +#define DER_OID_V_id_slh_dsa_sha2_128s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x14 +#define DER_OID_SZ_id_slh_dsa_sha2_128s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_128s[DER_OID_SZ_id_slh_dsa_sha2_128s]; + +/* + * id-slh-dsa-sha2-128f OBJECT IDENTIFIER ::= { sigAlgs 21 } + */ +#define DER_OID_V_id_slh_dsa_sha2_128f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x15 +#define DER_OID_SZ_id_slh_dsa_sha2_128f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_128f[DER_OID_SZ_id_slh_dsa_sha2_128f]; + +/* + * id-slh-dsa-sha2-192s OBJECT IDENTIFIER ::= { sigAlgs 22 } + */ +#define DER_OID_V_id_slh_dsa_sha2_192s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x16 +#define DER_OID_SZ_id_slh_dsa_sha2_192s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_192s[DER_OID_SZ_id_slh_dsa_sha2_192s]; + +/* + * id-slh-dsa-sha2-192f OBJECT IDENTIFIER ::= { sigAlgs 23 } + */ +#define DER_OID_V_id_slh_dsa_sha2_192f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x17 +#define DER_OID_SZ_id_slh_dsa_sha2_192f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_192f[DER_OID_SZ_id_slh_dsa_sha2_192f]; + +/* + * id-slh-dsa-sha2-256s OBJECT IDENTIFIER ::= { sigAlgs 24 } + */ +#define DER_OID_V_id_slh_dsa_sha2_256s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x18 +#define DER_OID_SZ_id_slh_dsa_sha2_256s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_256s[DER_OID_SZ_id_slh_dsa_sha2_256s]; + +/* + * id-slh-dsa-sha2-256f OBJECT IDENTIFIER ::= { sigAlgs 25 } + */ +#define DER_OID_V_id_slh_dsa_sha2_256f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x19 +#define DER_OID_SZ_id_slh_dsa_sha2_256f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_256f[DER_OID_SZ_id_slh_dsa_sha2_256f]; + +/* + * id-slh-dsa-shake-128s OBJECT IDENTIFIER ::= { sigAlgs 26 } + */ +#define DER_OID_V_id_slh_dsa_shake_128s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1A +#define DER_OID_SZ_id_slh_dsa_shake_128s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_128s[DER_OID_SZ_id_slh_dsa_shake_128s]; + +/* + * id-slh-dsa-shake-128f OBJECT IDENTIFIER ::= { sigAlgs 27 } + */ +#define DER_OID_V_id_slh_dsa_shake_128f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1B +#define DER_OID_SZ_id_slh_dsa_shake_128f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_128f[DER_OID_SZ_id_slh_dsa_shake_128f]; + +/* + * id-slh-dsa-shake-192s OBJECT IDENTIFIER ::= { sigAlgs 28 } + */ +#define DER_OID_V_id_slh_dsa_shake_192s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1C +#define DER_OID_SZ_id_slh_dsa_shake_192s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_192s[DER_OID_SZ_id_slh_dsa_shake_192s]; + +/* + * id-slh-dsa-shake-192f OBJECT IDENTIFIER ::= { sigAlgs 29 } + */ +#define DER_OID_V_id_slh_dsa_shake_192f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1D +#define DER_OID_SZ_id_slh_dsa_shake_192f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_192f[DER_OID_SZ_id_slh_dsa_shake_192f]; + +/* + * id-slh-dsa-shake-256s OBJECT IDENTIFIER ::= { sigAlgs 30 } + */ +#define DER_OID_V_id_slh_dsa_shake_256s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1E +#define DER_OID_SZ_id_slh_dsa_shake_256s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_256s[DER_OID_SZ_id_slh_dsa_shake_256s]; + +/* + * id-slh-dsa-shake-256f OBJECT IDENTIFIER ::= { sigAlgs 31 } + */ +#define DER_OID_V_id_slh_dsa_shake_256f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1F +#define DER_OID_SZ_id_slh_dsa_shake_256f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_256f[DER_OID_SZ_id_slh_dsa_shake_256f]; + + +int ossl_DER_w_algorithmIdentifier_SLH_DSA(WPACKET *pkt, int tag, SLH_DSA_KEY *key); diff --git a/deps/openssl/config/archs/linux-aarch64/asm/apps/progs.c b/deps/openssl/config/archs/linux-aarch64/asm/apps/progs.c index 43cef00799b86e..acc204a3e6e781 100644 --- a/deps/openssl/config/archs/linux-aarch64/asm/apps/progs.c +++ b/deps/openssl/config/archs/linux-aarch64/asm/apps/progs.c @@ -89,6 +89,7 @@ FUNCTION functions[] = { {FT_general, "s_time", s_time_main, s_time_options, NULL, NULL}, #endif {FT_general, "sess_id", sess_id_main, sess_id_options, NULL, NULL}, + {FT_general, "skeyutl", skeyutl_main, skeyutl_options, NULL, NULL}, {FT_general, "smime", smime_main, smime_options, NULL, NULL}, {FT_general, "speed", speed_main, speed_options, NULL, NULL}, {FT_general, "spkac", spkac_main, spkac_options, NULL, NULL}, @@ -225,9 +226,15 @@ FUNCTION functions[] = { {FT_cipher, "camellia-256-ecb", enc_main, enc_options, NULL}, #endif {FT_cipher, "base64", enc_main, enc_options, NULL}, -#ifdef ZLIB +#ifndef OPENSSL_NO_ZLIB {FT_cipher, "zlib", enc_main, enc_options, NULL}, #endif +#ifndef OPENSSL_NO_BROTLI + {FT_cipher, "brotli", enc_main, enc_options, NULL}, +#endif +#ifndef OPENSSL_NO_ZSTD + {FT_cipher, "zstd", enc_main, enc_options, NULL}, +#endif #ifndef OPENSSL_NO_DES {FT_cipher, "des", enc_main, enc_options, NULL}, #endif diff --git a/deps/openssl/config/archs/linux-aarch64/asm/configdata.pm b/deps/openssl/config/archs/linux-aarch64/asm/configdata.pm index 929ed405307bfd..761036f8eec32a 100644 --- a/deps/openssl/config/archs/linux-aarch64/asm/configdata.pm +++ b/deps/openssl/config/archs/linux-aarch64/asm/configdata.pm @@ -18,6 +18,7 @@ our %config = ( "ARFLAGS" => [ "qc" ], + "ASFLAGS" => [], "CC" => "gcc", "CFLAGS" => [ "-Wall -O3" @@ -30,14 +31,16 @@ our %config = ( "-Wall -O3" ], "FIPSKEY" => "f4556650ac31d35461610bac4ed81b1a181b2d8a43ea2854cbae22ca74560813", + "FIPS_VENDOR" => "OpenSSL FIPS Provider", "HASHBANGPERL" => "/usr/bin/env perl", "LDFLAGS" => [], "LDLIBS" => [], + "OBJCOPY" => "objcopy", "PERL" => "/usr/bin/perl", "RANLIB" => "ranlib", "RC" => "windres", "RCFLAGS" => [], - "api" => "30000", + "api" => "30500", "b32" => "0", "b64" => "0", "b64l" => "1", @@ -59,11 +62,13 @@ our %config = ( "doc/build.info", "test/build.info", "engines/build.info", + "exporters/build.info", "crypto/objects/build.info", "crypto/buffer/build.info", "crypto/bio/build.info", "crypto/stack/build.info", "crypto/lhash/build.info", + "crypto/hashtable/build.info", "crypto/rand/build.info", "crypto/evp/build.info", "crypto/asn1/build.info", @@ -81,6 +86,7 @@ our %config = ( "crypto/md5/build.info", "crypto/sha/build.info", "crypto/mdc2/build.info", + "crypto/ml_kem/build.info", "crypto/hmac/build.info", "crypto/ripemd/build.info", "crypto/whrlpool/build.info", @@ -122,11 +128,19 @@ our %config = ( "crypto/cmp/build.info", "crypto/encode_decode/build.info", "crypto/ffc/build.info", + "crypto/hpke/build.info", + "crypto/thread/build.info", + "crypto/ml_dsa/build.info", + "crypto/slh_dsa/build.info", + "ssl/record/build.info", + "ssl/rio/build.info", + "ssl/quic/build.info", "apps/lib/build.info", "providers/common/build.info", "providers/implementations/build.info", "providers/fips/build.info", "doc/man1/build.info", + "ssl/record/methods/build.info", "providers/common/der/build.info", "providers/implementations/digests/build.info", "providers/implementations/ciphers/build.info", @@ -140,6 +154,7 @@ our %config = ( "providers/implementations/encode_decode/build.info", "providers/implementations/storemgmt/build.info", "providers/implementations/kem/build.info", + "providers/implementations/skeymgmt/build.info", "providers/implementations/rands/seeding/build.info" ], "build_metadata" => "", @@ -159,7 +174,7 @@ our %config = ( ], "dynamic_engines" => "0", "ex_libs" => [], - "full_version" => "3.0.17", + "full_version" => "3.5.1", "includes" => [], "lflags" => [], "lib_defines" => [ @@ -168,37 +183,52 @@ our %config = ( "libdir" => "", "major" => "3", "makedep_scheme" => "gcc", - "minor" => "0", + "minor" => "5", "openssl_api_defines" => [ - "OPENSSL_CONFIGURED_API=30000" + "OPENSSL_CONFIGURED_API=30500" ], "openssl_feature_defines" => [ "OPENSSL_RAND_SEED_OS", "OPENSSL_THREADS", "OPENSSL_NO_AFALGENG", "OPENSSL_NO_ASAN", + "OPENSSL_NO_BROTLI", + "OPENSSL_NO_BROTLI_DYNAMIC", "OPENSSL_NO_COMP", "OPENSSL_NO_CRYPTO_MDEBUG", "OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE", + "OPENSSL_NO_DEMOS", "OPENSSL_NO_DEVCRYPTOENG", "OPENSSL_NO_EC_NISTP_64_GCC_128", "OPENSSL_NO_EGD", "OPENSSL_NO_EXTERNAL_TESTS", + "OPENSSL_NO_FIPS_JITTER", "OPENSSL_NO_FUZZ_AFL", "OPENSSL_NO_FUZZ_LIBFUZZER", + "OPENSSL_NO_H3DEMO", + "OPENSSL_NO_HQINTEROP", + "OPENSSL_NO_JITTER", "OPENSSL_NO_KTLS", "OPENSSL_NO_LOADERENG", "OPENSSL_NO_MD2", "OPENSSL_NO_MSAN", + "OPENSSL_NO_PIE", "OPENSSL_NO_RC5", "OPENSSL_NO_SCTP", "OPENSSL_NO_SSL3", "OPENSSL_NO_SSL3_METHOD", + "OPENSSL_NO_SSLKEYLOG", + "OPENSSL_NO_TFO", "OPENSSL_NO_TRACE", "OPENSSL_NO_UBSAN", "OPENSSL_NO_UNIT_TEST", "OPENSSL_NO_UPLINK", "OPENSSL_NO_WEAK_SSL_CIPHERS", + "OPENSSL_NO_WINSTORE", + "OPENSSL_NO_ZLIB", + "OPENSSL_NO_ZLIB_DYNAMIC", + "OPENSSL_NO_ZSTD", + "OPENSSL_NO_ZSTD_DYNAMIC", "OPENSSL_NO_DYNAMIC_ENGINE" ], "openssl_other_defines" => [ @@ -206,11 +236,11 @@ our %config = ( ], "openssl_sys_defines" => [], "openssldir" => "", - "options" => "enable-ssl-trace enable-fips no-afalgeng no-asan no-buildtest-c++ no-comp no-crypto-mdebug no-crypto-mdebug-backtrace no-devcryptoeng no-dynamic-engine no-ec_nistp_64_gcc_128 no-egd no-external-tests no-fuzz-afl no-fuzz-libfuzzer no-ktls no-loadereng no-md2 no-msan no-rc5 no-sctp no-shared no-ssl3 no-ssl3-method no-trace no-ubsan no-unit-test no-uplink no-weak-ssl-ciphers no-zlib no-zlib-dynamic", - "patch" => "17", + "options" => "enable-ssl-trace enable-fips no-afalgeng no-asan no-brotli no-brotli-dynamic no-buildtest-c++ no-comp no-crypto-mdebug no-crypto-mdebug-backtrace no-demos no-devcryptoeng no-dynamic-engine no-ec_nistp_64_gcc_128 no-egd no-external-tests no-fips-jitter no-fuzz-afl no-fuzz-libfuzzer no-h3demo no-hqinterop no-jitter no-ktls no-loadereng no-md2 no-msan no-pie no-rc5 no-sctp no-shared no-ssl3 no-ssl3-method no-sslkeylog no-tfo no-trace no-ubsan no-unit-test no-uplink no-weak-ssl-ciphers no-winstore no-zlib no-zlib-dynamic no-zstd no-zstd-dynamic", + "patch" => "1", "perl_archname" => "x86_64-linux-gnu-thread-multi", "perl_cmd" => "/usr/bin/perl", - "perl_version" => "5.38.2", + "perl_version" => "5.34.0", "perlargv" => [ "no-comp", "no-shared", @@ -240,6 +270,7 @@ our %config = ( "LDLIBS" => undef, "MT" => undef, "MTFLAGS" => undef, + "OBJCOPY" => undef, "OPENSSL_LOCAL_CONFIG_DIR" => undef, "PERL" => undef, "RANLIB" => undef, @@ -263,7 +294,7 @@ our %config = ( "shlib_version" => "3", "sourcedir" => ".", "target" => "linux-aarch64", - "version" => "3.0.17" + "version" => "3.5.1" ); our %target = ( "AR" => "ar", @@ -273,6 +304,7 @@ our %target = ( "CXX" => "g++", "CXXFLAGS" => "-Wall -O3", "HASHBANGPERL" => "/usr/bin/env perl", + "OBJCOPY" => "objcopy", "RANLIB" => "ranlib", "RC" => "windres", "_conf_fname_int" => [ @@ -284,6 +316,8 @@ our %target = ( "Configurations/shared-info.pl" ], "asm_arch" => "aarch64", + "bin_cflags" => "", + "bin_lflags" => "", "bn_ops" => "SIXTY_FOUR_BIT_LONG RC4_CHAR", "build_file" => "Makefile", "build_scheme" => [ @@ -328,6 +362,8 @@ our %target = ( our @disablables = ( "acvp-tests", "afalgeng", + "apps", + "argon2", "aria", "asan", "asm", @@ -338,11 +374,14 @@ our @disablables = ( "autoload-config", "bf", "blake2", + "brotli", + "brotli-dynamic", "buildtest-c++", "bulk", "cached-fetch", "camellia", "capieng", + "winstore", "cast", "chacha", "cmac", @@ -351,11 +390,16 @@ our @disablables = ( "comp", "crypto-mdebug", "ct", + "default-thread-pool", + "demos", + "h3demo", + "hqinterop", "deprecated", "des", "devcryptoeng", "dgram", "dh", + "docs", "dsa", "dso", "dtls", @@ -365,6 +409,7 @@ our @disablables = ( "ec_nistp_64_gcc_128", "ecdh", "ecdsa", + "ecx", "egd", "engine", "err", @@ -372,10 +417,15 @@ our @disablables = ( "filenames", "fips", "fips-securitychecks", + "fips-post", + "fips-jitter", "fuzz-afl", "fuzz-libfuzzer", "gost", + "http", "idea", + "integrity-only-ciphers", + "jitter", "ktls", "legacy", "loadereng", @@ -383,6 +433,8 @@ our @disablables = ( "md2", "md4", "mdc2", + "ml-dsa", + "ml-kem", "module", "msan", "multiblock", @@ -391,10 +443,13 @@ our @disablables = ( "ocsp", "padlockeng", "pic", + "pie", "pinshared", "poly1305", "posix-io", "psk", + "quic", + "unstable-qlog", "rc2", "rc4", "rc5", @@ -408,7 +463,9 @@ our @disablables = ( "shared", "siphash", "siv", + "slh-dsa", "sm2", + "sm2-precomp", "sm3", "sm4", "sock", @@ -419,9 +476,13 @@ our @disablables = ( "ssl-trace", "static-engine", "stdio", + "sslkeylog", "tests", + "tfo", + "thread-pool", "threads", "tls", + "tls-deprecated-ec", "trace", "ts", "ubsan", @@ -432,6 +493,8 @@ our @disablables = ( "whirlpool", "zlib", "zlib-dynamic", + "zstd", + "zstd-dynamic", "ssl3", "ssl3-method", "tls1", @@ -452,33 +515,46 @@ our @disablables_int = ( our %disabled = ( "afalgeng" => "option", "asan" => "default", + "brotli" => "default", + "brotli-dynamic" => "default", "buildtest-c++" => "default", "comp" => "option", "crypto-mdebug" => "default", "crypto-mdebug-backtrace" => "default", + "demos" => "default", "devcryptoeng" => "default", "dynamic-engine" => "cascade", "ec_nistp_64_gcc_128" => "default", "egd" => "default", "external-tests" => "default", + "fips-jitter" => "default", "fuzz-afl" => "default", "fuzz-libfuzzer" => "default", + "h3demo" => "default", + "hqinterop" => "default", + "jitter" => "default", "ktls" => "default", "loadereng" => "cascade", "md2" => "default", "msan" => "default", + "pie" => "default", "rc5" => "default", "sctp" => "default", "shared" => "option", "ssl3" => "default", "ssl3-method" => "default", + "sslkeylog" => "default", + "tfo" => "default", "trace" => "default", "ubsan" => "default", "unit-test" => "default", "uplink" => "no uplink_arch", "weak-ssl-ciphers" => "default", + "winstore" => "not-windows", "zlib" => "default", - "zlib-dynamic" => "default" + "zlib-dynamic" => "default", + "zstd" => "default", + "zstd-dynamic" => "default" ); our %withargs = (); our %unified_info = ( @@ -704,6 +780,11 @@ our %unified_info = ( "pod" => "1" } }, + "doc/man1/openssl-skeyutl.pod" => { + "doc/man1/openssl-skeyutl.pod.in" => { + "pod" => "1" + } + }, "doc/man1/openssl-smime.pod" => { "doc/man1/openssl-smime.pod.in" => { "pod" => "1" @@ -761,6 +842,21 @@ our %unified_info = ( } }, "generate" => { + "exporters/OpenSSLConfig.cmake" => { + "exporter" => "cmake" + }, + "exporters/OpenSSLConfigVersion.cmake" => { + "exporter" => "cmake" + }, + "exporters/libcrypto.pc" => { + "exporter" => "pkg-config" + }, + "exporters/libssl.pc" => { + "exporter" => "pkg-config" + }, + "exporters/openssl.pc" => { + "exporter" => "pkg-config" + }, "include/openssl/configuration.h" => { "skip" => "1" } @@ -781,6 +877,9 @@ our %unified_info = ( "providers/liblegacy.a" => { "noinst" => "1" }, + "providers/libtemplate.a" => { + "noinst" => "1" + }, "test/libtestutil.a" => { "has_main" => "1", "noinst" => "1" @@ -798,6 +897,9 @@ our %unified_info = ( } }, "programs" => { + "fuzz/acert-test" => { + "noinst" => "1" + }, "fuzz/asn1-test" => { "noinst" => "1" }, @@ -828,9 +930,60 @@ our %unified_info = ( "fuzz/ct-test" => { "noinst" => "1" }, + "fuzz/decoder-test" => { + "noinst" => "1" + }, + "fuzz/dtlsclient-test" => { + "noinst" => "1" + }, + "fuzz/dtlsserver-test" => { + "noinst" => "1" + }, + "fuzz/hashtable-test" => { + "noinst" => "1" + }, + "fuzz/ml-dsa-test" => { + "noinst" => "1" + }, + "fuzz/ml-kem-test" => { + "noinst" => "1" + }, + "fuzz/pem-test" => { + "noinst" => "1" + }, + "fuzz/provider-test" => { + "noinst" => "1" + }, + "fuzz/punycode-test" => { + "noinst" => "1" + }, + "fuzz/quic-client-test" => { + "noinst" => "1" + }, + "fuzz/quic-lcidm-test" => { + "noinst" => "1" + }, + "fuzz/quic-rcidm-test" => { + "noinst" => "1" + }, + "fuzz/quic-server-test" => { + "noinst" => "1" + }, + "fuzz/quic-srtm-test" => { + "noinst" => "1" + }, "fuzz/server-test" => { "noinst" => "1" }, + "fuzz/slh-dsa-test" => { + "noinst" => "1" + }, + "fuzz/smime-test" => { + "noinst" => "1" + }, + "fuzz/v3name-test" => { + "noinst" => "1" + }, "fuzz/x509-test" => { "noinst" => "1" }, @@ -882,18 +1035,30 @@ our %unified_info = ( "test/bftest" => { "noinst" => "1" }, + "test/bio_addr_test" => { + "noinst" => "1" + }, + "test/bio_base64_test" => { + "noinst" => "1" + }, "test/bio_callback_test" => { "noinst" => "1" }, "test/bio_core_test" => { "noinst" => "1" }, + "test/bio_dgram_test" => { + "noinst" => "1" + }, "test/bio_enc_test" => { "noinst" => "1" }, "test/bio_memleak_test" => { "noinst" => "1" }, + "test/bio_meth_test" => { + "noinst" => "1" + }, "test/bio_prefix_text" => { "noinst" => "1" }, @@ -903,6 +1068,9 @@ our %unified_info = ( "test/bio_readbuffer_test" => { "noinst" => "1" }, + "test/bio_tfo_test" => { + "noinst" => "1" + }, "test/bioprinttest" => { "noinst" => "1" }, @@ -912,6 +1080,9 @@ our %unified_info = ( "test/bntest" => { "noinst" => "1" }, + "test/build_wincrypt_test" => { + "noinst" => "1" + }, "test/buildtest_c_aes" => { "noinst" => "1" }, @@ -927,6 +1098,9 @@ our %unified_info = ( "test/buildtest_c_buffer" => { "noinst" => "1" }, + "test/buildtest_c_byteorder" => { + "noinst" => "1" + }, "test/buildtest_c_camellia" => { "noinst" => "1" }, @@ -951,9 +1125,6 @@ our %unified_info = ( "test/buildtest_c_core_dispatch" => { "noinst" => "1" }, - "test/buildtest_c_core_names" => { - "noinst" => "1" - }, "test/buildtest_c_core_object" => { "noinst" => "1" }, @@ -978,6 +1149,9 @@ our %unified_info = ( "test/buildtest_c_e_os2" => { "noinst" => "1" }, + "test/buildtest_c_e_ostime" => { + "noinst" => "1" + }, "test/buildtest_c_ebcdic" => { "noinst" => "1" }, @@ -1005,12 +1179,18 @@ our %unified_info = ( "test/buildtest_c_hmac" => { "noinst" => "1" }, + "test/buildtest_c_hpke" => { + "noinst" => "1" + }, "test/buildtest_c_http" => { "noinst" => "1" }, "test/buildtest_c_idea" => { "noinst" => "1" }, + "test/buildtest_c_indicator" => { + "noinst" => "1" + }, "test/buildtest_c_kdf" => { "noinst" => "1" }, @@ -1026,6 +1206,9 @@ our %unified_info = ( "test/buildtest_c_mdc2" => { "noinst" => "1" }, + "test/buildtest_c_ml_kem" => { + "noinst" => "1" + }, "test/buildtest_c_modes" => { "noinst" => "1" }, @@ -1056,6 +1239,9 @@ our %unified_info = ( "test/buildtest_c_provider" => { "noinst" => "1" }, + "test/buildtest_c_quic" => { + "noinst" => "1" + }, "test/buildtest_c_rand" => { "noinst" => "1" }, @@ -1098,6 +1284,9 @@ our %unified_info = ( "test/buildtest_c_symhacks" => { "noinst" => "1" }, + "test/buildtest_c_thread" => { + "noinst" => "1" + }, "test/buildtest_c_tls1" => { "noinst" => "1" }, @@ -1113,6 +1302,12 @@ our %unified_info = ( "test/buildtest_c_whrlpool" => { "noinst" => "1" }, + "test/byteorder_test" => { + "noinst" => "1" + }, + "test/ca_internals_test" => { + "noinst" => "1" + }, "test/casttest" => { "noinst" => "1" }, @@ -1197,6 +1392,9 @@ our %unified_info = ( "test/danetest" => { "noinst" => "1" }, + "test/decoder_propq_test" => { + "noinst" => "1" + }, "test/defltfips_test" => { "noinst" => "1" }, @@ -1269,15 +1467,24 @@ our %unified_info = ( "test/evp_pkey_ctx_new_from_name" => { "noinst" => "1" }, + "test/evp_pkey_dhkem_test" => { + "noinst" => "1" + }, "test/evp_pkey_dparams_test" => { "noinst" => "1" }, "test/evp_pkey_provided_test" => { "noinst" => "1" }, + "test/evp_skey_test" => { + "noinst" => "1" + }, "test/evp_test" => { "noinst" => "1" }, + "test/evp_xof_test" => { + "noinst" => "1" + }, "test/exdatatest" => { "noinst" => "1" }, @@ -1305,6 +1512,9 @@ our %unified_info = ( "test/hmactest" => { "noinst" => "1" }, + "test/hpke_test" => { + "noinst" => "1" + }, "test/http_test" => { "noinst" => "1" }, @@ -1314,12 +1524,18 @@ our %unified_info = ( "test/igetest" => { "noinst" => "1" }, + "test/json_test" => { + "noinst" => "1" + }, "test/keymgmt_internal_test" => { "noinst" => "1" }, "test/lhash_test" => { "noinst" => "1" }, + "test/list_test" => { + "noinst" => "1" + }, "test/localetest" => { "noinst" => "1" }, @@ -1329,9 +1545,21 @@ our %unified_info = ( "test/mdc2test" => { "noinst" => "1" }, + "test/membio_test" => { + "noinst" => "1" + }, "test/memleaktest" => { "noinst" => "1" }, + "test/ml_dsa_test" => { + "noinst" => "1" + }, + "test/ml_kem_evp_extra_test" => { + "noinst" => "1" + }, + "test/ml_kem_internal_test" => { + "noinst" => "1" + }, "test/modes_internal_test" => { "noinst" => "1" }, @@ -1350,6 +1578,9 @@ our %unified_info = ( "test/packettest" => { "noinst" => "1" }, + "test/pairwise_fail_test" => { + "noinst" => "1" + }, "test/param_build_test" => { "noinst" => "1" }, @@ -1374,6 +1605,9 @@ our %unified_info = ( "test/pemtest" => { "noinst" => "1" }, + "test/pkcs12_api_test" => { + "noinst" => "1" + }, "test/pkcs12_format_test" => { "noinst" => "1" }, @@ -1389,6 +1623,9 @@ our %unified_info = ( "test/poly1305_internal_test" => { "noinst" => "1" }, + "test/priority_queue_test" => { + "noinst" => "1" + }, "test/property_test" => { "noinst" => "1" }, @@ -1398,6 +1635,9 @@ our %unified_info = ( "test/provfetchtest" => { "noinst" => "1" }, + "test/provider_default_search_path_test" => { + "noinst" => "1" + }, "test/provider_fallback_test" => { "noinst" => "1" }, @@ -1416,6 +1656,72 @@ our %unified_info = ( "test/punycode_test" => { "noinst" => "1" }, + "test/quic_ackm_test" => { + "noinst" => "1" + }, + "test/quic_cc_test" => { + "noinst" => "1" + }, + "test/quic_cfq_test" => { + "noinst" => "1" + }, + "test/quic_client_test" => { + "noinst" => "1" + }, + "test/quic_fc_test" => { + "noinst" => "1" + }, + "test/quic_fifd_test" => { + "noinst" => "1" + }, + "test/quic_lcidm_test" => { + "noinst" => "1" + }, + "test/quic_multistream_test" => { + "noinst" => "1" + }, + "test/quic_newcid_test" => { + "noinst" => "1" + }, + "test/quic_qlog_test" => { + "noinst" => "1" + }, + "test/quic_radix_test" => { + "noinst" => "1" + }, + "test/quic_rcidm_test" => { + "noinst" => "1" + }, + "test/quic_record_test" => { + "noinst" => "1" + }, + "test/quic_srt_gen_test" => { + "noinst" => "1" + }, + "test/quic_srtm_test" => { + "noinst" => "1" + }, + "test/quic_stream_test" => { + "noinst" => "1" + }, + "test/quic_tserver_test" => { + "noinst" => "1" + }, + "test/quic_txp_test" => { + "noinst" => "1" + }, + "test/quic_txpim_test" => { + "noinst" => "1" + }, + "test/quic_wire_test" => { + "noinst" => "1" + }, + "test/quicapitest" => { + "noinst" => "1" + }, + "test/quicfaultstest" => { + "noinst" => "1" + }, "test/rand_status_test" => { "noinst" => "1" }, @@ -1431,12 +1737,15 @@ our %unified_info = ( "test/rc5test" => { "noinst" => "1" }, - "test/rdrand_sanitytest" => { + "test/rdcpu_sanitytest" => { "noinst" => "1" }, "test/recordlentest" => { "noinst" => "1" }, + "test/rpktest" => { + "noinst" => "1" + }, "test/rsa_complex" => { "noinst" => "1" }, @@ -1449,6 +1758,12 @@ our %unified_info = ( "test/rsa_test" => { "noinst" => "1" }, + "test/rsa_x931_test" => { + "noinst" => "1" + }, + "test/safe_math_test" => { + "noinst" => "1" + }, "test/sanitytest" => { "noinst" => "1" }, @@ -1464,6 +1779,9 @@ our %unified_info = ( "test/siphash_internal_test" => { "noinst" => "1" }, + "test/slh_dsa_test" => { + "noinst" => "1" + }, "test/sm2_internal_test" => { "noinst" => "1" }, @@ -1485,6 +1803,9 @@ our %unified_info = ( "test/ssl_ctx_test" => { "noinst" => "1" }, + "test/ssl_handshake_rtt_test" => { + "noinst" => "1" + }, "test/ssl_old_test" => { "noinst" => "1" }, @@ -1506,12 +1827,18 @@ our %unified_info = ( "test/stack_test" => { "noinst" => "1" }, + "test/strtoultest" => { + "noinst" => "1" + }, "test/sysdefaulttest" => { "noinst" => "1" }, "test/test_test" => { "noinst" => "1" }, + "test/threadpool_test" => { + "noinst" => "1" + }, "test/threadstest" => { "noinst" => "1" }, @@ -1521,12 +1848,18 @@ our %unified_info = ( "test/time_offset_test" => { "noinst" => "1" }, + "test/time_test" => { + "noinst" => "1" + }, "test/tls13ccstest" => { "noinst" => "1" }, "test/tls13encryptiontest" => { "noinst" => "1" }, + "test/tls13groupselection_test" => { + "noinst" => "1" + }, "test/trace_api_test" => { "noinst" => "1" }, @@ -1554,6 +1887,9 @@ our %unified_info = ( "test/wpackettest" => { "noinst" => "1" }, + "test/x509_acert_test" => { + "noinst" => "1" + }, "test/x509_check_cert_pkey_test" => { "noinst" => "1" }, @@ -1563,6 +1899,15 @@ our %unified_info = ( "test/x509_internal_test" => { "noinst" => "1" }, + "test/x509_load_cert_file_test" => { + "noinst" => "1" + }, + "test/x509_req_test" => { + "noinst" => "1" + }, + "test/x509_test" => { + "noinst" => "1" + }, "test/x509_time_test" => { "noinst" => "1" }, @@ -1601,15 +1946,21 @@ our %unified_info = ( }, "defines" => { "libcrypto" => [ + "BSAES_ASM", "ECP_NISTZ256_ASM", + "ECP_SM2P256_ASM", "KECCAK1600_ASM", + "MD5_ASM", "OPENSSL_BN_ASM_MONT", "OPENSSL_CPUID_OBJ", + "OPENSSL_SM3_ASM", "POLY1305_ASM", "SHA1_ASM", "SHA256_ASM", "SHA512_ASM", - "VPAES_ASM" + "SM4_ASM", + "VPAES_ASM", + "VPSM4_ASM" ], "providers/fips" => [ "FIPS_MODULE" @@ -1619,16 +1970,22 @@ our %unified_info = ( "OPENSSL_CPUID_OBJ" ], "providers/libdefault.a" => [ + "BSAES_ASM", "ECP_NISTZ256_ASM", + "ECP_SM2P256_ASM", "KECCAK1600_ASM", "OPENSSL_CPUID_OBJ", "SHA1_ASM", "SHA256_ASM", "SHA512_ASM", - "VPAES_ASM" + "SM4_ASM", + "VPAES_ASM", + "VPSM4_ASM" ], "providers/libfips.a" => [ + "BSAES_ASM", "ECP_NISTZ256_ASM", + "ECP_SM2P256_ASM", "FIPS_MODULE", "KECCAK1600_ASM", "OPENSSL_BN_ASM_MONT", @@ -1636,7 +1993,15 @@ our %unified_info = ( "SHA1_ASM", "SHA256_ASM", "SHA512_ASM", - "VPAES_ASM" + "SM4_ASM", + "VPAES_ASM", + "VPSM4_ASM" + ], + "providers/liblegacy.a" => [ + "MD5_ASM" + ], + "test/endecode_test" => [ + "STATIC_LEGACY" ], "test/evp_extra_test" => [ "STATIC_LEGACY" @@ -1650,14 +2015,21 @@ our %unified_info = ( }, "depends" => { "" => [ + "OpenSSLConfigVersion.cmake", + "crypto/params_idx.c", + "exporters/OpenSSLConfigVersion.cmake", + "exporters/openssl.pc", "include/crypto/bn_conf.h", "include/crypto/dso_conf.h", + "include/internal/param_names.h", "include/openssl/asn1.h", "include/openssl/asn1t.h", "include/openssl/bio.h", "include/openssl/cmp.h", "include/openssl/cms.h", + "include/openssl/comp.h", "include/openssl/conf.h", + "include/openssl/core_names.h", "include/openssl/crmf.h", "include/openssl/crypto.h", "include/openssl/ct.h", @@ -1674,10 +2046,22 @@ our %unified_info = ( "include/openssl/ssl.h", "include/openssl/ui.h", "include/openssl/x509.h", + "include/openssl/x509_acert.h", "include/openssl/x509_vfy.h", "include/openssl/x509v3.h", + "openssl.pc", "test/provider_internal_test.cnf" ], + "OpenSSLConfig.cmake" => [ + "builddata.pm" + ], + "OpenSSLConfigVersion.cmake" => [ + "OpenSSLConfig.cmake", + "builddata.pm" + ], + "apps/ca_internals_test-bin-ca.o" => [ + "apps/progs.h" + ], "apps/lib/cmp_client_test-bin-cmp_mock_srv.o" => [ "apps/progs.h" ], @@ -1823,6 +2207,9 @@ our %unified_info = ( "apps/openssl-bin-sess_id.o" => [ "apps/progs.h" ], + "apps/openssl-bin-skeyutl.o" => [ + "apps/progs.h" + ], "apps/openssl-bin-smime.o" => [ "apps/progs.h" ], @@ -1911,6 +2298,9 @@ our %unified_info = ( "crypto/libcrypto-lib-info.o" => [ "crypto/buildinf.h" ], + "crypto/params_idx.c" => [ + "util/perl|OpenSSL/paramnames.pm" + ], "crypto/rc4/rc4-586.S" => [ "crypto/perlasm/x86asm.pl" ], @@ -2076,6 +2466,9 @@ our %unified_info = ( "doc/html/man1/openssl-sess_id.html" => [ "doc/man1/openssl-sess_id.pod" ], + "doc/html/man1/openssl-skeyutl.html" => [ + "doc/man1/openssl-skeyutl.pod" + ], "doc/html/man1/openssl-smime.html" => [ "doc/man1/openssl-smime.pod" ], @@ -2217,6 +2610,9 @@ our %unified_info = ( "doc/html/man3/BIO_get_ex_new_index.html" => [ "doc/man3/BIO_get_ex_new_index.pod" ], + "doc/html/man3/BIO_get_rpoll_descriptor.html" => [ + "doc/man3/BIO_get_rpoll_descriptor.pod" + ], "doc/html/man3/BIO_meth_new.html" => [ "doc/man3/BIO_meth_new.pod" ], @@ -2253,6 +2649,9 @@ our %unified_info = ( "doc/html/man3/BIO_s_datagram.html" => [ "doc/man3/BIO_s_datagram.pod" ], + "doc/html/man3/BIO_s_dgram_pair.html" => [ + "doc/man3/BIO_s_dgram_pair.pod" + ], "doc/html/man3/BIO_s_fd.html" => [ "doc/man3/BIO_s_fd.pod" ], @@ -2268,6 +2667,9 @@ our %unified_info = ( "doc/html/man3/BIO_s_socket.html" => [ "doc/man3/BIO_s_socket.pod" ], + "doc/html/man3/BIO_sendmmsg.html" => [ + "doc/man3/BIO_sendmmsg.pod" + ], "doc/html/man3/BIO_set_callback.html" => [ "doc/man3/BIO_set_callback.pod" ], @@ -2340,6 +2742,9 @@ our %unified_info = ( "doc/html/man3/BUF_MEM_new.html" => [ "doc/man3/BUF_MEM_new.pod" ], + "doc/html/man3/CMAC_CTX.html" => [ + "doc/man3/CMAC_CTX.pod" + ], "doc/html/man3/CMS_EncryptedData_decrypt.html" => [ "doc/man3/CMS_EncryptedData_decrypt.pod" ], @@ -2406,6 +2811,9 @@ our %unified_info = ( "doc/html/man3/CMS_verify_receipt.html" => [ "doc/man3/CMS_verify_receipt.pod" ], + "doc/html/man3/COMP_CTX_new.html" => [ + "doc/man3/COMP_CTX_new.pod" + ], "doc/html/man3/CONF_modules_free.html" => [ "doc/man3/CONF_modules_free.pod" ], @@ -2505,6 +2913,12 @@ our %unified_info = ( "doc/html/man3/DTLS_set_timer_cb.html" => [ "doc/man3/DTLS_set_timer_cb.pod" ], + "doc/html/man3/DTLSv1_get_timeout.html" => [ + "doc/man3/DTLSv1_get_timeout.pod" + ], + "doc/html/man3/DTLSv1_handle_timeout.html" => [ + "doc/man3/DTLSv1_handle_timeout.pod" + ], "doc/html/man3/DTLSv1_listen.html" => [ "doc/man3/DTLSv1_listen.pod" ], @@ -2643,6 +3057,9 @@ our %unified_info = ( "doc/html/man3/EVP_PKEY_CTX_get0_pkey.html" => [ "doc/man3/EVP_PKEY_CTX_get0_pkey.pod" ], + "doc/html/man3/EVP_PKEY_CTX_get_algor.html" => [ + "doc/man3/EVP_PKEY_CTX_get_algor.pod" + ], "doc/html/man3/EVP_PKEY_CTX_new.html" => [ "doc/man3/EVP_PKEY_CTX_new.pod" ], @@ -2760,6 +3177,12 @@ our %unified_info = ( "doc/html/man3/EVP_SIGNATURE.html" => [ "doc/man3/EVP_SIGNATURE.pod" ], + "doc/html/man3/EVP_SKEY.html" => [ + "doc/man3/EVP_SKEY.pod" + ], + "doc/html/man3/EVP_SKEYMGMT.html" => [ + "doc/man3/EVP_SKEYMGMT.pod" + ], "doc/html/man3/EVP_SealInit.html" => [ "doc/man3/EVP_SealInit.pod" ], @@ -2847,6 +3270,9 @@ our %unified_info = ( "doc/html/man3/EVP_whirlpool.html" => [ "doc/man3/EVP_whirlpool.pod" ], + "doc/html/man3/GENERAL_NAME.html" => [ + "doc/man3/GENERAL_NAME.pod" + ], "doc/html/man3/HMAC.html" => [ "doc/man3/HMAC.pod" ], @@ -2919,9 +3345,15 @@ our %unified_info = ( "doc/html/man3/OPENSSL_load_builtin_modules.html" => [ "doc/man3/OPENSSL_load_builtin_modules.pod" ], + "doc/html/man3/OPENSSL_load_u16_le.html" => [ + "doc/man3/OPENSSL_load_u16_le.pod" + ], "doc/html/man3/OPENSSL_malloc.html" => [ "doc/man3/OPENSSL_malloc.pod" ], + "doc/html/man3/OPENSSL_riscvcap.html" => [ + "doc/man3/OPENSSL_riscvcap.pod" + ], "doc/html/man3/OPENSSL_s390xcap.html" => [ "doc/man3/OPENSSL_s390xcap.pod" ], @@ -2937,12 +3369,18 @@ our %unified_info = ( "doc/html/man3/OSSL_CALLBACK.html" => [ "doc/man3/OSSL_CALLBACK.pod" ], + "doc/html/man3/OSSL_CMP_ATAV_set0.html" => [ + "doc/man3/OSSL_CMP_ATAV_set0.pod" + ], "doc/html/man3/OSSL_CMP_CTX_new.html" => [ "doc/man3/OSSL_CMP_CTX_new.pod" ], "doc/html/man3/OSSL_CMP_HDR_get0_transactionID.html" => [ "doc/man3/OSSL_CMP_HDR_get0_transactionID.pod" ], + "doc/html/man3/OSSL_CMP_ITAV_new_caCerts.html" => [ + "doc/man3/OSSL_CMP_ITAV_new_caCerts.pod" + ], "doc/html/man3/OSSL_CMP_ITAV_set0.html" => [ "doc/man3/OSSL_CMP_ITAV_set0.pod" ], @@ -3012,9 +3450,18 @@ our %unified_info = ( "doc/html/man3/OSSL_ENCODER_to_bio.html" => [ "doc/man3/OSSL_ENCODER_to_bio.pod" ], + "doc/html/man3/OSSL_ERR_STATE_save.html" => [ + "doc/man3/OSSL_ERR_STATE_save.pod" + ], "doc/html/man3/OSSL_ESS_check_signing_certs.html" => [ "doc/man3/OSSL_ESS_check_signing_certs.pod" ], + "doc/html/man3/OSSL_GENERAL_NAMES_print.html" => [ + "doc/man3/OSSL_GENERAL_NAMES_print.pod" + ], + "doc/html/man3/OSSL_HPKE_CTX_new.html" => [ + "doc/man3/OSSL_HPKE_CTX_new.pod" + ], "doc/html/man3/OSSL_HTTP_REQ_CTX.html" => [ "doc/man3/OSSL_HTTP_REQ_CTX.pod" ], @@ -3024,12 +3471,24 @@ our %unified_info = ( "doc/html/man3/OSSL_HTTP_transfer.html" => [ "doc/man3/OSSL_HTTP_transfer.pod" ], + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX.html" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX.pod" + ], + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX_print.html" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX_print.pod" + ], + "doc/html/man3/OSSL_INDICATOR_set_callback.html" => [ + "doc/man3/OSSL_INDICATOR_set_callback.pod" + ], "doc/html/man3/OSSL_ITEM.html" => [ "doc/man3/OSSL_ITEM.pod" ], "doc/html/man3/OSSL_LIB_CTX.html" => [ "doc/man3/OSSL_LIB_CTX.pod" ], + "doc/html/man3/OSSL_LIB_CTX_set_conf_diagnostics.html" => [ + "doc/man3/OSSL_LIB_CTX_set_conf_diagnostics.pod" + ], "doc/html/man3/OSSL_PARAM.html" => [ "doc/man3/OSSL_PARAM.pod" ], @@ -3045,9 +3504,15 @@ our %unified_info = ( "doc/html/man3/OSSL_PARAM_int.html" => [ "doc/man3/OSSL_PARAM_int.pod" ], + "doc/html/man3/OSSL_PARAM_print_to_bio.html" => [ + "doc/man3/OSSL_PARAM_print_to_bio.pod" + ], "doc/html/man3/OSSL_PROVIDER.html" => [ "doc/man3/OSSL_PROVIDER.pod" ], + "doc/html/man3/OSSL_QUIC_client_method.html" => [ + "doc/man3/OSSL_QUIC_client_method.pod" + ], "doc/html/man3/OSSL_SELF_TEST_new.html" => [ "doc/man3/OSSL_SELF_TEST_new.pod" ], @@ -3072,6 +3537,9 @@ our %unified_info = ( "doc/html/man3/OSSL_STORE_open.html" => [ "doc/man3/OSSL_STORE_open.pod" ], + "doc/html/man3/OSSL_sleep.html" => [ + "doc/man3/OSSL_sleep.pod" + ], "doc/html/man3/OSSL_trace_enabled.html" => [ "doc/man3/OSSL_trace_enabled.pod" ], @@ -3087,6 +3555,9 @@ our %unified_info = ( "doc/html/man3/OpenSSL_version.html" => [ "doc/man3/OpenSSL_version.pod" ], + "doc/html/man3/PBMAC1_get1_pbkdf2_param.html" => [ + "doc/man3/PBMAC1_get1_pbkdf2_param.pod" + ], "doc/html/man3/PEM_X509_INFO_read_bio_ex.html" => [ "doc/man3/PEM_X509_INFO_read_bio_ex.pod" ], @@ -3123,6 +3594,9 @@ our %unified_info = ( "doc/html/man3/PKCS12_SAFEBAG_get1_cert.html" => [ "doc/man3/PKCS12_SAFEBAG_get1_cert.pod" ], + "doc/html/man3/PKCS12_SAFEBAG_set0_attrs.html" => [ + "doc/man3/PKCS12_SAFEBAG_set0_attrs.pod" + ], "doc/html/man3/PKCS12_add1_attr_by_NID.html" => [ "doc/man3/PKCS12_add1_attr_by_NID.pod" ], @@ -3396,6 +3870,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set0_CA_list.html" => [ "doc/man3/SSL_CTX_set0_CA_list.pod" ], + "doc/html/man3/SSL_CTX_set1_cert_comp_preference.html" => [ + "doc/man3/SSL_CTX_set1_cert_comp_preference.pod" + ], "doc/html/man3/SSL_CTX_set1_curves.html" => [ "doc/man3/SSL_CTX_set1_curves.pod" ], @@ -3435,6 +3912,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_default_passwd_cb.html" => [ "doc/man3/SSL_CTX_set_default_passwd_cb.pod" ], + "doc/html/man3/SSL_CTX_set_domain_flags.html" => [ + "doc/man3/SSL_CTX_set_domain_flags.pod" + ], "doc/html/man3/SSL_CTX_set_generate_session_id.html" => [ "doc/man3/SSL_CTX_set_generate_session_id.pod" ], @@ -3456,6 +3936,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_msg_callback.html" => [ "doc/man3/SSL_CTX_set_msg_callback.pod" ], + "doc/html/man3/SSL_CTX_set_new_pending_conn_cb.html" => [ + "doc/man3/SSL_CTX_set_new_pending_conn_cb.pod" + ], "doc/html/man3/SSL_CTX_set_num_tickets.html" => [ "doc/man3/SSL_CTX_set_num_tickets.pod" ], @@ -3570,6 +4053,9 @@ our %unified_info = ( "doc/html/man3/SSL_accept.html" => [ "doc/man3/SSL_accept.pod" ], + "doc/html/man3/SSL_accept_stream.html" => [ + "doc/man3/SSL_accept_stream.pod" + ], "doc/html/man3/SSL_alert_type_string.html" => [ "doc/man3/SSL_alert_type_string.pod" ], @@ -3597,9 +4083,21 @@ our %unified_info = ( "doc/html/man3/SSL_free.html" => [ "doc/man3/SSL_free.pod" ], + "doc/html/man3/SSL_get0_connection.html" => [ + "doc/man3/SSL_get0_connection.pod" + ], + "doc/html/man3/SSL_get0_group_name.html" => [ + "doc/man3/SSL_get0_group_name.pod" + ], + "doc/html/man3/SSL_get0_peer_rpk.html" => [ + "doc/man3/SSL_get0_peer_rpk.pod" + ], "doc/html/man3/SSL_get0_peer_scts.html" => [ "doc/man3/SSL_get0_peer_scts.pod" ], + "doc/html/man3/SSL_get1_builtin_sigalgs.html" => [ + "doc/man3/SSL_get1_builtin_sigalgs.pod" + ], "doc/html/man3/SSL_get_SSL_CTX.html" => [ "doc/man3/SSL_get_SSL_CTX.pod" ], @@ -3615,6 +4113,9 @@ our %unified_info = ( "doc/html/man3/SSL_get_client_random.html" => [ "doc/man3/SSL_get_client_random.pod" ], + "doc/html/man3/SSL_get_conn_close_info.html" => [ + "doc/man3/SSL_get_conn_close_info.pod" + ], "doc/html/man3/SSL_get_current_cipher.html" => [ "doc/man3/SSL_get_current_cipher.pod" ], @@ -3624,12 +4125,18 @@ our %unified_info = ( "doc/html/man3/SSL_get_error.html" => [ "doc/man3/SSL_get_error.pod" ], + "doc/html/man3/SSL_get_event_timeout.html" => [ + "doc/man3/SSL_get_event_timeout.pod" + ], "doc/html/man3/SSL_get_extms_support.html" => [ "doc/man3/SSL_get_extms_support.pod" ], "doc/html/man3/SSL_get_fd.html" => [ "doc/man3/SSL_get_fd.pod" ], + "doc/html/man3/SSL_get_handshake_rtt.html" => [ + "doc/man3/SSL_get_handshake_rtt.pod" + ], "doc/html/man3/SSL_get_peer_cert_chain.html" => [ "doc/man3/SSL_get_peer_cert_chain.pod" ], @@ -3648,12 +4155,24 @@ our %unified_info = ( "doc/html/man3/SSL_get_rbio.html" => [ "doc/man3/SSL_get_rbio.pod" ], + "doc/html/man3/SSL_get_rpoll_descriptor.html" => [ + "doc/man3/SSL_get_rpoll_descriptor.pod" + ], "doc/html/man3/SSL_get_session.html" => [ "doc/man3/SSL_get_session.pod" ], "doc/html/man3/SSL_get_shared_sigalgs.html" => [ "doc/man3/SSL_get_shared_sigalgs.pod" ], + "doc/html/man3/SSL_get_stream_id.html" => [ + "doc/man3/SSL_get_stream_id.pod" + ], + "doc/html/man3/SSL_get_stream_read_state.html" => [ + "doc/man3/SSL_get_stream_read_state.pod" + ], + "doc/html/man3/SSL_get_value_uint.html" => [ + "doc/man3/SSL_get_value_uint.pod" + ], "doc/html/man3/SSL_get_verify_result.html" => [ "doc/man3/SSL_get_verify_result.pod" ], @@ -3663,9 +4182,15 @@ our %unified_info = ( "doc/html/man3/SSL_group_to_name.html" => [ "doc/man3/SSL_group_to_name.pod" ], + "doc/html/man3/SSL_handle_events.html" => [ + "doc/man3/SSL_handle_events.pod" + ], "doc/html/man3/SSL_in_init.html" => [ "doc/man3/SSL_in_init.pod" ], + "doc/html/man3/SSL_inject_net_dgram.html" => [ + "doc/man3/SSL_inject_net_dgram.pod" + ], "doc/html/man3/SSL_key_update.html" => [ "doc/man3/SSL_key_update.pod" ], @@ -3678,9 +4203,21 @@ our %unified_info = ( "doc/html/man3/SSL_new.html" => [ "doc/man3/SSL_new.pod" ], + "doc/html/man3/SSL_new_domain.html" => [ + "doc/man3/SSL_new_domain.pod" + ], + "doc/html/man3/SSL_new_listener.html" => [ + "doc/man3/SSL_new_listener.pod" + ], + "doc/html/man3/SSL_new_stream.html" => [ + "doc/man3/SSL_new_stream.pod" + ], "doc/html/man3/SSL_pending.html" => [ "doc/man3/SSL_pending.pod" ], + "doc/html/man3/SSL_poll.html" => [ + "doc/man3/SSL_poll.pod" + ], "doc/html/man3/SSL_read.html" => [ "doc/man3/SSL_read.pod" ], @@ -3696,24 +4233,45 @@ our %unified_info = ( "doc/html/man3/SSL_set1_host.html" => [ "doc/man3/SSL_set1_host.pod" ], + "doc/html/man3/SSL_set1_initial_peer_addr.html" => [ + "doc/man3/SSL_set1_initial_peer_addr.pod" + ], + "doc/html/man3/SSL_set1_server_cert_type.html" => [ + "doc/man3/SSL_set1_server_cert_type.pod" + ], "doc/html/man3/SSL_set_async_callback.html" => [ "doc/man3/SSL_set_async_callback.pod" ], "doc/html/man3/SSL_set_bio.html" => [ "doc/man3/SSL_set_bio.pod" ], + "doc/html/man3/SSL_set_blocking_mode.html" => [ + "doc/man3/SSL_set_blocking_mode.pod" + ], "doc/html/man3/SSL_set_connect_state.html" => [ "doc/man3/SSL_set_connect_state.pod" ], + "doc/html/man3/SSL_set_default_stream_mode.html" => [ + "doc/man3/SSL_set_default_stream_mode.pod" + ], "doc/html/man3/SSL_set_fd.html" => [ "doc/man3/SSL_set_fd.pod" ], + "doc/html/man3/SSL_set_incoming_stream_policy.html" => [ + "doc/man3/SSL_set_incoming_stream_policy.pod" + ], + "doc/html/man3/SSL_set_quic_tls_cbs.html" => [ + "doc/man3/SSL_set_quic_tls_cbs.pod" + ], "doc/html/man3/SSL_set_retry_verify.html" => [ "doc/man3/SSL_set_retry_verify.pod" ], "doc/html/man3/SSL_set_session.html" => [ "doc/man3/SSL_set_session.pod" ], + "doc/html/man3/SSL_set_session_secret_cb.html" => [ + "doc/man3/SSL_set_session_secret_cb.pod" + ], "doc/html/man3/SSL_set_shutdown.html" => [ "doc/man3/SSL_set_shutdown.pod" ], @@ -3726,6 +4284,12 @@ our %unified_info = ( "doc/html/man3/SSL_state_string.html" => [ "doc/man3/SSL_state_string.pod" ], + "doc/html/man3/SSL_stream_conclude.html" => [ + "doc/man3/SSL_stream_conclude.pod" + ], + "doc/html/man3/SSL_stream_reset.html" => [ + "doc/man3/SSL_stream_reset.pod" + ], "doc/html/man3/SSL_want.html" => [ "doc/man3/SSL_want.pod" ], @@ -3735,8 +4299,8 @@ our %unified_info = ( "doc/html/man3/TS_RESP_CTX_new.html" => [ "doc/man3/TS_RESP_CTX_new.pod" ], - "doc/html/man3/TS_VERIFY_CTX_set_certs.html" => [ - "doc/man3/TS_VERIFY_CTX_set_certs.pod" + "doc/html/man3/TS_VERIFY_CTX.html" => [ + "doc/man3/TS_VERIFY_CTX.pod" ], "doc/html/man3/UI_STRING.html" => [ "doc/man3/UI_STRING.pod" @@ -3756,6 +4320,21 @@ our %unified_info = ( "doc/html/man3/X509V3_set_ctx.html" => [ "doc/man3/X509V3_set_ctx.pod" ], + "doc/html/man3/X509_ACERT_add1_attr.html" => [ + "doc/man3/X509_ACERT_add1_attr.pod" + ], + "doc/html/man3/X509_ACERT_add_attr_nconf.html" => [ + "doc/man3/X509_ACERT_add_attr_nconf.pod" + ], + "doc/html/man3/X509_ACERT_get0_holder_baseCertId.html" => [ + "doc/man3/X509_ACERT_get0_holder_baseCertId.pod" + ], + "doc/html/man3/X509_ACERT_get_attr.html" => [ + "doc/man3/X509_ACERT_get_attr.pod" + ], + "doc/html/man3/X509_ACERT_print_ex.html" => [ + "doc/man3/X509_ACERT_print_ex.pod" + ], "doc/html/man3/X509_ALGOR_dup.html" => [ "doc/man3/X509_ALGOR_dup.pod" ], @@ -3804,6 +4383,9 @@ our %unified_info = ( "doc/html/man3/X509_SIG_get0.html" => [ "doc/man3/X509_SIG_get0.pod" ], + "doc/html/man3/X509_STORE_CTX_get_by_subject.html" => [ + "doc/man3/X509_STORE_CTX_get_by_subject.pod" + ], "doc/html/man3/X509_STORE_CTX_get_error.html" => [ "doc/man3/X509_STORE_CTX_get_error.pod" ], @@ -3870,6 +4452,9 @@ our %unified_info = ( "doc/html/man3/X509_get0_uids.html" => [ "doc/man3/X509_get0_uids.pod" ], + "doc/html/man3/X509_get_default_cert_file.html" => [ + "doc/man3/X509_get_default_cert_file.pod" + ], "doc/html/man3/X509_get_extension_flags.html" => [ "doc/man3/X509_get_extension_flags.pod" ], @@ -3993,9 +4578,15 @@ our %unified_info = ( "doc/html/man7/EVP_CIPHER-SM4.html" => [ "doc/man7/EVP_CIPHER-SM4.pod" ], + "doc/html/man7/EVP_KDF-ARGON2.html" => [ + "doc/man7/EVP_KDF-ARGON2.pod" + ], "doc/html/man7/EVP_KDF-HKDF.html" => [ "doc/man7/EVP_KDF-HKDF.pod" ], + "doc/html/man7/EVP_KDF-HMAC-DRBG.html" => [ + "doc/man7/EVP_KDF-HMAC-DRBG.pod" + ], "doc/html/man7/EVP_KDF-KB.html" => [ "doc/man7/EVP_KDF-KB.pod" ], @@ -4011,6 +4602,9 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-PKCS12KDF.html" => [ "doc/man7/EVP_KDF-PKCS12KDF.pod" ], + "doc/html/man7/EVP_KDF-PVKKDF.html" => [ + "doc/man7/EVP_KDF-PVKKDF.pod" + ], "doc/html/man7/EVP_KDF-SCRYPT.html" => [ "doc/man7/EVP_KDF-SCRYPT.pod" ], @@ -4035,9 +4629,18 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-X963.html" => [ "doc/man7/EVP_KDF-X963.pod" ], + "doc/html/man7/EVP_KEM-EC.html" => [ + "doc/man7/EVP_KEM-EC.pod" + ], + "doc/html/man7/EVP_KEM-ML-KEM.html" => [ + "doc/man7/EVP_KEM-ML-KEM.pod" + ], "doc/html/man7/EVP_KEM-RSA.html" => [ "doc/man7/EVP_KEM-RSA.pod" ], + "doc/html/man7/EVP_KEM-X25519.html" => [ + "doc/man7/EVP_KEM-X25519.pod" + ], "doc/html/man7/EVP_KEYEXCH-DH.html" => [ "doc/man7/EVP_KEYEXCH-DH.pod" ], @@ -4071,6 +4674,9 @@ our %unified_info = ( "doc/html/man7/EVP_MD-BLAKE2.html" => [ "doc/man7/EVP_MD-BLAKE2.pod" ], + "doc/html/man7/EVP_MD-KECCAK.html" => [ + "doc/man7/EVP_MD-KECCAK.pod" + ], "doc/html/man7/EVP_MD-MD2.html" => [ "doc/man7/EVP_MD-MD2.pod" ], @@ -4128,15 +4734,27 @@ our %unified_info = ( "doc/html/man7/EVP_PKEY-HMAC.html" => [ "doc/man7/EVP_PKEY-HMAC.pod" ], + "doc/html/man7/EVP_PKEY-ML-DSA.html" => [ + "doc/man7/EVP_PKEY-ML-DSA.pod" + ], + "doc/html/man7/EVP_PKEY-ML-KEM.html" => [ + "doc/man7/EVP_PKEY-ML-KEM.pod" + ], "doc/html/man7/EVP_PKEY-RSA.html" => [ "doc/man7/EVP_PKEY-RSA.pod" ], + "doc/html/man7/EVP_PKEY-SLH-DSA.html" => [ + "doc/man7/EVP_PKEY-SLH-DSA.pod" + ], "doc/html/man7/EVP_PKEY-SM2.html" => [ "doc/man7/EVP_PKEY-SM2.pod" ], "doc/html/man7/EVP_PKEY-X25519.html" => [ "doc/man7/EVP_PKEY-X25519.pod" ], + "doc/html/man7/EVP_RAND-CRNG-TEST.html" => [ + "doc/man7/EVP_RAND-CRNG-TEST.pod" + ], "doc/html/man7/EVP_RAND-CTR-DRBG.html" => [ "doc/man7/EVP_RAND-CTR-DRBG.pod" ], @@ -4146,6 +4764,9 @@ our %unified_info = ( "doc/html/man7/EVP_RAND-HMAC-DRBG.html" => [ "doc/man7/EVP_RAND-HMAC-DRBG.pod" ], + "doc/html/man7/EVP_RAND-JITTER.html" => [ + "doc/man7/EVP_RAND-JITTER.pod" + ], "doc/html/man7/EVP_RAND-SEED-SRC.html" => [ "doc/man7/EVP_RAND-SEED-SRC.pod" ], @@ -4167,9 +4788,15 @@ our %unified_info = ( "doc/html/man7/EVP_SIGNATURE-HMAC.html" => [ "doc/man7/EVP_SIGNATURE-HMAC.pod" ], + "doc/html/man7/EVP_SIGNATURE-ML-DSA.html" => [ + "doc/man7/EVP_SIGNATURE-ML-DSA.pod" + ], "doc/html/man7/EVP_SIGNATURE-RSA.html" => [ "doc/man7/EVP_SIGNATURE-RSA.pod" ], + "doc/html/man7/EVP_SIGNATURE-SLH-DSA.html" => [ + "doc/man7/EVP_SIGNATURE-SLH-DSA.pod" + ], "doc/html/man7/OSSL_PROVIDER-FIPS.html" => [ "doc/man7/OSSL_PROVIDER-FIPS.pod" ], @@ -4185,6 +4812,9 @@ our %unified_info = ( "doc/html/man7/OSSL_PROVIDER-null.html" => [ "doc/man7/OSSL_PROVIDER-null.pod" ], + "doc/html/man7/OSSL_STORE-winstore.html" => [ + "doc/man7/OSSL_STORE-winstore.pod" + ], "doc/html/man7/RAND.html" => [ "doc/man7/RAND.pod" ], @@ -4197,9 +4827,6 @@ our %unified_info = ( "doc/html/man7/bio.html" => [ "doc/man7/bio.pod" ], - "doc/html/man7/crypto.html" => [ - "doc/man7/crypto.pod" - ], "doc/html/man7/ct.html" => [ "doc/man7/ct.pod" ], @@ -4230,9 +4857,6 @@ our %unified_info = ( "doc/html/man7/life_cycle-rand.html" => [ "doc/man7/life_cycle-rand.pod" ], - "doc/html/man7/migration_guide.html" => [ - "doc/man7/migration_guide.pod" - ], "doc/html/man7/openssl-core.h.html" => [ "doc/man7/openssl-core.h.pod" ], @@ -4248,12 +4872,66 @@ our %unified_info = ( "doc/html/man7/openssl-glossary.html" => [ "doc/man7/openssl-glossary.pod" ], + "doc/html/man7/openssl-qlog.html" => [ + "doc/man7/openssl-qlog.pod" + ], + "doc/html/man7/openssl-quic-concurrency.html" => [ + "doc/man7/openssl-quic-concurrency.pod" + ], + "doc/html/man7/openssl-quic.html" => [ + "doc/man7/openssl-quic.pod" + ], "doc/html/man7/openssl-threads.html" => [ "doc/man7/openssl-threads.pod" ], "doc/html/man7/openssl_user_macros.html" => [ "doc/man7/openssl_user_macros.pod" ], + "doc/html/man7/ossl-guide-introduction.html" => [ + "doc/man7/ossl-guide-introduction.pod" + ], + "doc/html/man7/ossl-guide-libcrypto-introduction.html" => [ + "doc/man7/ossl-guide-libcrypto-introduction.pod" + ], + "doc/html/man7/ossl-guide-libraries-introduction.html" => [ + "doc/man7/ossl-guide-libraries-introduction.pod" + ], + "doc/html/man7/ossl-guide-libssl-introduction.html" => [ + "doc/man7/ossl-guide-libssl-introduction.pod" + ], + "doc/html/man7/ossl-guide-migration.html" => [ + "doc/man7/ossl-guide-migration.pod" + ], + "doc/html/man7/ossl-guide-quic-client-block.html" => [ + "doc/man7/ossl-guide-quic-client-block.pod" + ], + "doc/html/man7/ossl-guide-quic-client-non-block.html" => [ + "doc/man7/ossl-guide-quic-client-non-block.pod" + ], + "doc/html/man7/ossl-guide-quic-introduction.html" => [ + "doc/man7/ossl-guide-quic-introduction.pod" + ], + "doc/html/man7/ossl-guide-quic-multi-stream.html" => [ + "doc/man7/ossl-guide-quic-multi-stream.pod" + ], + "doc/html/man7/ossl-guide-quic-server-block.html" => [ + "doc/man7/ossl-guide-quic-server-block.pod" + ], + "doc/html/man7/ossl-guide-quic-server-non-block.html" => [ + "doc/man7/ossl-guide-quic-server-non-block.pod" + ], + "doc/html/man7/ossl-guide-tls-client-block.html" => [ + "doc/man7/ossl-guide-tls-client-block.pod" + ], + "doc/html/man7/ossl-guide-tls-client-non-block.html" => [ + "doc/man7/ossl-guide-tls-client-non-block.pod" + ], + "doc/html/man7/ossl-guide-tls-introduction.html" => [ + "doc/man7/ossl-guide-tls-introduction.pod" + ], + "doc/html/man7/ossl-guide-tls-server-block.html" => [ + "doc/man7/ossl-guide-tls-server-block.pod" + ], "doc/html/man7/ossl_store-file.html" => [ "doc/man7/ossl_store-file.pod" ], @@ -4308,6 +4986,9 @@ our %unified_info = ( "doc/html/man7/provider-signature.html" => [ "doc/man7/provider-signature.pod" ], + "doc/html/man7/provider-skeymgmt.html" => [ + "doc/man7/provider-skeymgmt.pod" + ], "doc/html/man7/provider-storemgmt.html" => [ "doc/man7/provider-storemgmt.pod" ], @@ -4317,9 +4998,6 @@ our %unified_info = ( "doc/html/man7/proxy-certificates.html" => [ "doc/man7/proxy-certificates.pod" ], - "doc/html/man7/ssl.html" => [ - "doc/man7/ssl.pod" - ], "doc/html/man7/x509.html" => [ "doc/man7/x509.pod" ], @@ -4467,6 +5145,9 @@ our %unified_info = ( "doc/man/man1/openssl-sess_id.1" => [ "doc/man1/openssl-sess_id.pod" ], + "doc/man/man1/openssl-skeyutl.1" => [ + "doc/man1/openssl-skeyutl.pod" + ], "doc/man/man1/openssl-smime.1" => [ "doc/man1/openssl-smime.pod" ], @@ -4608,6 +5289,9 @@ our %unified_info = ( "doc/man/man3/BIO_get_ex_new_index.3" => [ "doc/man3/BIO_get_ex_new_index.pod" ], + "doc/man/man3/BIO_get_rpoll_descriptor.3" => [ + "doc/man3/BIO_get_rpoll_descriptor.pod" + ], "doc/man/man3/BIO_meth_new.3" => [ "doc/man3/BIO_meth_new.pod" ], @@ -4644,6 +5328,9 @@ our %unified_info = ( "doc/man/man3/BIO_s_datagram.3" => [ "doc/man3/BIO_s_datagram.pod" ], + "doc/man/man3/BIO_s_dgram_pair.3" => [ + "doc/man3/BIO_s_dgram_pair.pod" + ], "doc/man/man3/BIO_s_fd.3" => [ "doc/man3/BIO_s_fd.pod" ], @@ -4659,6 +5346,9 @@ our %unified_info = ( "doc/man/man3/BIO_s_socket.3" => [ "doc/man3/BIO_s_socket.pod" ], + "doc/man/man3/BIO_sendmmsg.3" => [ + "doc/man3/BIO_sendmmsg.pod" + ], "doc/man/man3/BIO_set_callback.3" => [ "doc/man3/BIO_set_callback.pod" ], @@ -4731,6 +5421,9 @@ our %unified_info = ( "doc/man/man3/BUF_MEM_new.3" => [ "doc/man3/BUF_MEM_new.pod" ], + "doc/man/man3/CMAC_CTX.3" => [ + "doc/man3/CMAC_CTX.pod" + ], "doc/man/man3/CMS_EncryptedData_decrypt.3" => [ "doc/man3/CMS_EncryptedData_decrypt.pod" ], @@ -4797,6 +5490,9 @@ our %unified_info = ( "doc/man/man3/CMS_verify_receipt.3" => [ "doc/man3/CMS_verify_receipt.pod" ], + "doc/man/man3/COMP_CTX_new.3" => [ + "doc/man3/COMP_CTX_new.pod" + ], "doc/man/man3/CONF_modules_free.3" => [ "doc/man3/CONF_modules_free.pod" ], @@ -4896,6 +5592,12 @@ our %unified_info = ( "doc/man/man3/DTLS_set_timer_cb.3" => [ "doc/man3/DTLS_set_timer_cb.pod" ], + "doc/man/man3/DTLSv1_get_timeout.3" => [ + "doc/man3/DTLSv1_get_timeout.pod" + ], + "doc/man/man3/DTLSv1_handle_timeout.3" => [ + "doc/man3/DTLSv1_handle_timeout.pod" + ], "doc/man/man3/DTLSv1_listen.3" => [ "doc/man3/DTLSv1_listen.pod" ], @@ -5034,6 +5736,9 @@ our %unified_info = ( "doc/man/man3/EVP_PKEY_CTX_get0_pkey.3" => [ "doc/man3/EVP_PKEY_CTX_get0_pkey.pod" ], + "doc/man/man3/EVP_PKEY_CTX_get_algor.3" => [ + "doc/man3/EVP_PKEY_CTX_get_algor.pod" + ], "doc/man/man3/EVP_PKEY_CTX_new.3" => [ "doc/man3/EVP_PKEY_CTX_new.pod" ], @@ -5151,6 +5856,12 @@ our %unified_info = ( "doc/man/man3/EVP_SIGNATURE.3" => [ "doc/man3/EVP_SIGNATURE.pod" ], + "doc/man/man3/EVP_SKEY.3" => [ + "doc/man3/EVP_SKEY.pod" + ], + "doc/man/man3/EVP_SKEYMGMT.3" => [ + "doc/man3/EVP_SKEYMGMT.pod" + ], "doc/man/man3/EVP_SealInit.3" => [ "doc/man3/EVP_SealInit.pod" ], @@ -5238,6 +5949,9 @@ our %unified_info = ( "doc/man/man3/EVP_whirlpool.3" => [ "doc/man3/EVP_whirlpool.pod" ], + "doc/man/man3/GENERAL_NAME.3" => [ + "doc/man3/GENERAL_NAME.pod" + ], "doc/man/man3/HMAC.3" => [ "doc/man3/HMAC.pod" ], @@ -5310,9 +6024,15 @@ our %unified_info = ( "doc/man/man3/OPENSSL_load_builtin_modules.3" => [ "doc/man3/OPENSSL_load_builtin_modules.pod" ], + "doc/man/man3/OPENSSL_load_u16_le.3" => [ + "doc/man3/OPENSSL_load_u16_le.pod" + ], "doc/man/man3/OPENSSL_malloc.3" => [ "doc/man3/OPENSSL_malloc.pod" ], + "doc/man/man3/OPENSSL_riscvcap.3" => [ + "doc/man3/OPENSSL_riscvcap.pod" + ], "doc/man/man3/OPENSSL_s390xcap.3" => [ "doc/man3/OPENSSL_s390xcap.pod" ], @@ -5328,12 +6048,18 @@ our %unified_info = ( "doc/man/man3/OSSL_CALLBACK.3" => [ "doc/man3/OSSL_CALLBACK.pod" ], + "doc/man/man3/OSSL_CMP_ATAV_set0.3" => [ + "doc/man3/OSSL_CMP_ATAV_set0.pod" + ], "doc/man/man3/OSSL_CMP_CTX_new.3" => [ "doc/man3/OSSL_CMP_CTX_new.pod" ], "doc/man/man3/OSSL_CMP_HDR_get0_transactionID.3" => [ "doc/man3/OSSL_CMP_HDR_get0_transactionID.pod" ], + "doc/man/man3/OSSL_CMP_ITAV_new_caCerts.3" => [ + "doc/man3/OSSL_CMP_ITAV_new_caCerts.pod" + ], "doc/man/man3/OSSL_CMP_ITAV_set0.3" => [ "doc/man3/OSSL_CMP_ITAV_set0.pod" ], @@ -5403,9 +6129,18 @@ our %unified_info = ( "doc/man/man3/OSSL_ENCODER_to_bio.3" => [ "doc/man3/OSSL_ENCODER_to_bio.pod" ], + "doc/man/man3/OSSL_ERR_STATE_save.3" => [ + "doc/man3/OSSL_ERR_STATE_save.pod" + ], "doc/man/man3/OSSL_ESS_check_signing_certs.3" => [ "doc/man3/OSSL_ESS_check_signing_certs.pod" ], + "doc/man/man3/OSSL_GENERAL_NAMES_print.3" => [ + "doc/man3/OSSL_GENERAL_NAMES_print.pod" + ], + "doc/man/man3/OSSL_HPKE_CTX_new.3" => [ + "doc/man3/OSSL_HPKE_CTX_new.pod" + ], "doc/man/man3/OSSL_HTTP_REQ_CTX.3" => [ "doc/man3/OSSL_HTTP_REQ_CTX.pod" ], @@ -5415,12 +6150,24 @@ our %unified_info = ( "doc/man/man3/OSSL_HTTP_transfer.3" => [ "doc/man3/OSSL_HTTP_transfer.pod" ], + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX.3" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX.pod" + ], + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX_print.3" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX_print.pod" + ], + "doc/man/man3/OSSL_INDICATOR_set_callback.3" => [ + "doc/man3/OSSL_INDICATOR_set_callback.pod" + ], "doc/man/man3/OSSL_ITEM.3" => [ "doc/man3/OSSL_ITEM.pod" ], "doc/man/man3/OSSL_LIB_CTX.3" => [ "doc/man3/OSSL_LIB_CTX.pod" ], + "doc/man/man3/OSSL_LIB_CTX_set_conf_diagnostics.3" => [ + "doc/man3/OSSL_LIB_CTX_set_conf_diagnostics.pod" + ], "doc/man/man3/OSSL_PARAM.3" => [ "doc/man3/OSSL_PARAM.pod" ], @@ -5436,9 +6183,15 @@ our %unified_info = ( "doc/man/man3/OSSL_PARAM_int.3" => [ "doc/man3/OSSL_PARAM_int.pod" ], + "doc/man/man3/OSSL_PARAM_print_to_bio.3" => [ + "doc/man3/OSSL_PARAM_print_to_bio.pod" + ], "doc/man/man3/OSSL_PROVIDER.3" => [ "doc/man3/OSSL_PROVIDER.pod" ], + "doc/man/man3/OSSL_QUIC_client_method.3" => [ + "doc/man3/OSSL_QUIC_client_method.pod" + ], "doc/man/man3/OSSL_SELF_TEST_new.3" => [ "doc/man3/OSSL_SELF_TEST_new.pod" ], @@ -5463,6 +6216,9 @@ our %unified_info = ( "doc/man/man3/OSSL_STORE_open.3" => [ "doc/man3/OSSL_STORE_open.pod" ], + "doc/man/man3/OSSL_sleep.3" => [ + "doc/man3/OSSL_sleep.pod" + ], "doc/man/man3/OSSL_trace_enabled.3" => [ "doc/man3/OSSL_trace_enabled.pod" ], @@ -5478,6 +6234,9 @@ our %unified_info = ( "doc/man/man3/OpenSSL_version.3" => [ "doc/man3/OpenSSL_version.pod" ], + "doc/man/man3/PBMAC1_get1_pbkdf2_param.3" => [ + "doc/man3/PBMAC1_get1_pbkdf2_param.pod" + ], "doc/man/man3/PEM_X509_INFO_read_bio_ex.3" => [ "doc/man3/PEM_X509_INFO_read_bio_ex.pod" ], @@ -5514,6 +6273,9 @@ our %unified_info = ( "doc/man/man3/PKCS12_SAFEBAG_get1_cert.3" => [ "doc/man3/PKCS12_SAFEBAG_get1_cert.pod" ], + "doc/man/man3/PKCS12_SAFEBAG_set0_attrs.3" => [ + "doc/man3/PKCS12_SAFEBAG_set0_attrs.pod" + ], "doc/man/man3/PKCS12_add1_attr_by_NID.3" => [ "doc/man3/PKCS12_add1_attr_by_NID.pod" ], @@ -5787,6 +6549,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set0_CA_list.3" => [ "doc/man3/SSL_CTX_set0_CA_list.pod" ], + "doc/man/man3/SSL_CTX_set1_cert_comp_preference.3" => [ + "doc/man3/SSL_CTX_set1_cert_comp_preference.pod" + ], "doc/man/man3/SSL_CTX_set1_curves.3" => [ "doc/man3/SSL_CTX_set1_curves.pod" ], @@ -5826,6 +6591,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_default_passwd_cb.3" => [ "doc/man3/SSL_CTX_set_default_passwd_cb.pod" ], + "doc/man/man3/SSL_CTX_set_domain_flags.3" => [ + "doc/man3/SSL_CTX_set_domain_flags.pod" + ], "doc/man/man3/SSL_CTX_set_generate_session_id.3" => [ "doc/man3/SSL_CTX_set_generate_session_id.pod" ], @@ -5847,6 +6615,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_msg_callback.3" => [ "doc/man3/SSL_CTX_set_msg_callback.pod" ], + "doc/man/man3/SSL_CTX_set_new_pending_conn_cb.3" => [ + "doc/man3/SSL_CTX_set_new_pending_conn_cb.pod" + ], "doc/man/man3/SSL_CTX_set_num_tickets.3" => [ "doc/man3/SSL_CTX_set_num_tickets.pod" ], @@ -5961,6 +6732,9 @@ our %unified_info = ( "doc/man/man3/SSL_accept.3" => [ "doc/man3/SSL_accept.pod" ], + "doc/man/man3/SSL_accept_stream.3" => [ + "doc/man3/SSL_accept_stream.pod" + ], "doc/man/man3/SSL_alert_type_string.3" => [ "doc/man3/SSL_alert_type_string.pod" ], @@ -5988,9 +6762,21 @@ our %unified_info = ( "doc/man/man3/SSL_free.3" => [ "doc/man3/SSL_free.pod" ], + "doc/man/man3/SSL_get0_connection.3" => [ + "doc/man3/SSL_get0_connection.pod" + ], + "doc/man/man3/SSL_get0_group_name.3" => [ + "doc/man3/SSL_get0_group_name.pod" + ], + "doc/man/man3/SSL_get0_peer_rpk.3" => [ + "doc/man3/SSL_get0_peer_rpk.pod" + ], "doc/man/man3/SSL_get0_peer_scts.3" => [ "doc/man3/SSL_get0_peer_scts.pod" ], + "doc/man/man3/SSL_get1_builtin_sigalgs.3" => [ + "doc/man3/SSL_get1_builtin_sigalgs.pod" + ], "doc/man/man3/SSL_get_SSL_CTX.3" => [ "doc/man3/SSL_get_SSL_CTX.pod" ], @@ -6006,6 +6792,9 @@ our %unified_info = ( "doc/man/man3/SSL_get_client_random.3" => [ "doc/man3/SSL_get_client_random.pod" ], + "doc/man/man3/SSL_get_conn_close_info.3" => [ + "doc/man3/SSL_get_conn_close_info.pod" + ], "doc/man/man3/SSL_get_current_cipher.3" => [ "doc/man3/SSL_get_current_cipher.pod" ], @@ -6015,12 +6804,18 @@ our %unified_info = ( "doc/man/man3/SSL_get_error.3" => [ "doc/man3/SSL_get_error.pod" ], + "doc/man/man3/SSL_get_event_timeout.3" => [ + "doc/man3/SSL_get_event_timeout.pod" + ], "doc/man/man3/SSL_get_extms_support.3" => [ "doc/man3/SSL_get_extms_support.pod" ], "doc/man/man3/SSL_get_fd.3" => [ "doc/man3/SSL_get_fd.pod" ], + "doc/man/man3/SSL_get_handshake_rtt.3" => [ + "doc/man3/SSL_get_handshake_rtt.pod" + ], "doc/man/man3/SSL_get_peer_cert_chain.3" => [ "doc/man3/SSL_get_peer_cert_chain.pod" ], @@ -6039,12 +6834,24 @@ our %unified_info = ( "doc/man/man3/SSL_get_rbio.3" => [ "doc/man3/SSL_get_rbio.pod" ], + "doc/man/man3/SSL_get_rpoll_descriptor.3" => [ + "doc/man3/SSL_get_rpoll_descriptor.pod" + ], "doc/man/man3/SSL_get_session.3" => [ "doc/man3/SSL_get_session.pod" ], "doc/man/man3/SSL_get_shared_sigalgs.3" => [ "doc/man3/SSL_get_shared_sigalgs.pod" ], + "doc/man/man3/SSL_get_stream_id.3" => [ + "doc/man3/SSL_get_stream_id.pod" + ], + "doc/man/man3/SSL_get_stream_read_state.3" => [ + "doc/man3/SSL_get_stream_read_state.pod" + ], + "doc/man/man3/SSL_get_value_uint.3" => [ + "doc/man3/SSL_get_value_uint.pod" + ], "doc/man/man3/SSL_get_verify_result.3" => [ "doc/man3/SSL_get_verify_result.pod" ], @@ -6054,9 +6861,15 @@ our %unified_info = ( "doc/man/man3/SSL_group_to_name.3" => [ "doc/man3/SSL_group_to_name.pod" ], + "doc/man/man3/SSL_handle_events.3" => [ + "doc/man3/SSL_handle_events.pod" + ], "doc/man/man3/SSL_in_init.3" => [ "doc/man3/SSL_in_init.pod" ], + "doc/man/man3/SSL_inject_net_dgram.3" => [ + "doc/man3/SSL_inject_net_dgram.pod" + ], "doc/man/man3/SSL_key_update.3" => [ "doc/man3/SSL_key_update.pod" ], @@ -6069,9 +6882,21 @@ our %unified_info = ( "doc/man/man3/SSL_new.3" => [ "doc/man3/SSL_new.pod" ], + "doc/man/man3/SSL_new_domain.3" => [ + "doc/man3/SSL_new_domain.pod" + ], + "doc/man/man3/SSL_new_listener.3" => [ + "doc/man3/SSL_new_listener.pod" + ], + "doc/man/man3/SSL_new_stream.3" => [ + "doc/man3/SSL_new_stream.pod" + ], "doc/man/man3/SSL_pending.3" => [ "doc/man3/SSL_pending.pod" ], + "doc/man/man3/SSL_poll.3" => [ + "doc/man3/SSL_poll.pod" + ], "doc/man/man3/SSL_read.3" => [ "doc/man3/SSL_read.pod" ], @@ -6087,24 +6912,45 @@ our %unified_info = ( "doc/man/man3/SSL_set1_host.3" => [ "doc/man3/SSL_set1_host.pod" ], + "doc/man/man3/SSL_set1_initial_peer_addr.3" => [ + "doc/man3/SSL_set1_initial_peer_addr.pod" + ], + "doc/man/man3/SSL_set1_server_cert_type.3" => [ + "doc/man3/SSL_set1_server_cert_type.pod" + ], "doc/man/man3/SSL_set_async_callback.3" => [ "doc/man3/SSL_set_async_callback.pod" ], "doc/man/man3/SSL_set_bio.3" => [ "doc/man3/SSL_set_bio.pod" ], + "doc/man/man3/SSL_set_blocking_mode.3" => [ + "doc/man3/SSL_set_blocking_mode.pod" + ], "doc/man/man3/SSL_set_connect_state.3" => [ "doc/man3/SSL_set_connect_state.pod" ], + "doc/man/man3/SSL_set_default_stream_mode.3" => [ + "doc/man3/SSL_set_default_stream_mode.pod" + ], "doc/man/man3/SSL_set_fd.3" => [ "doc/man3/SSL_set_fd.pod" ], + "doc/man/man3/SSL_set_incoming_stream_policy.3" => [ + "doc/man3/SSL_set_incoming_stream_policy.pod" + ], + "doc/man/man3/SSL_set_quic_tls_cbs.3" => [ + "doc/man3/SSL_set_quic_tls_cbs.pod" + ], "doc/man/man3/SSL_set_retry_verify.3" => [ "doc/man3/SSL_set_retry_verify.pod" ], "doc/man/man3/SSL_set_session.3" => [ "doc/man3/SSL_set_session.pod" ], + "doc/man/man3/SSL_set_session_secret_cb.3" => [ + "doc/man3/SSL_set_session_secret_cb.pod" + ], "doc/man/man3/SSL_set_shutdown.3" => [ "doc/man3/SSL_set_shutdown.pod" ], @@ -6117,6 +6963,12 @@ our %unified_info = ( "doc/man/man3/SSL_state_string.3" => [ "doc/man3/SSL_state_string.pod" ], + "doc/man/man3/SSL_stream_conclude.3" => [ + "doc/man3/SSL_stream_conclude.pod" + ], + "doc/man/man3/SSL_stream_reset.3" => [ + "doc/man3/SSL_stream_reset.pod" + ], "doc/man/man3/SSL_want.3" => [ "doc/man3/SSL_want.pod" ], @@ -6126,8 +6978,8 @@ our %unified_info = ( "doc/man/man3/TS_RESP_CTX_new.3" => [ "doc/man3/TS_RESP_CTX_new.pod" ], - "doc/man/man3/TS_VERIFY_CTX_set_certs.3" => [ - "doc/man3/TS_VERIFY_CTX_set_certs.pod" + "doc/man/man3/TS_VERIFY_CTX.3" => [ + "doc/man3/TS_VERIFY_CTX.pod" ], "doc/man/man3/UI_STRING.3" => [ "doc/man3/UI_STRING.pod" @@ -6147,6 +6999,21 @@ our %unified_info = ( "doc/man/man3/X509V3_set_ctx.3" => [ "doc/man3/X509V3_set_ctx.pod" ], + "doc/man/man3/X509_ACERT_add1_attr.3" => [ + "doc/man3/X509_ACERT_add1_attr.pod" + ], + "doc/man/man3/X509_ACERT_add_attr_nconf.3" => [ + "doc/man3/X509_ACERT_add_attr_nconf.pod" + ], + "doc/man/man3/X509_ACERT_get0_holder_baseCertId.3" => [ + "doc/man3/X509_ACERT_get0_holder_baseCertId.pod" + ], + "doc/man/man3/X509_ACERT_get_attr.3" => [ + "doc/man3/X509_ACERT_get_attr.pod" + ], + "doc/man/man3/X509_ACERT_print_ex.3" => [ + "doc/man3/X509_ACERT_print_ex.pod" + ], "doc/man/man3/X509_ALGOR_dup.3" => [ "doc/man3/X509_ALGOR_dup.pod" ], @@ -6195,6 +7062,9 @@ our %unified_info = ( "doc/man/man3/X509_SIG_get0.3" => [ "doc/man3/X509_SIG_get0.pod" ], + "doc/man/man3/X509_STORE_CTX_get_by_subject.3" => [ + "doc/man3/X509_STORE_CTX_get_by_subject.pod" + ], "doc/man/man3/X509_STORE_CTX_get_error.3" => [ "doc/man3/X509_STORE_CTX_get_error.pod" ], @@ -6261,6 +7131,9 @@ our %unified_info = ( "doc/man/man3/X509_get0_uids.3" => [ "doc/man3/X509_get0_uids.pod" ], + "doc/man/man3/X509_get_default_cert_file.3" => [ + "doc/man3/X509_get_default_cert_file.pod" + ], "doc/man/man3/X509_get_extension_flags.3" => [ "doc/man3/X509_get_extension_flags.pod" ], @@ -6384,9 +7257,15 @@ our %unified_info = ( "doc/man/man7/EVP_CIPHER-SM4.7" => [ "doc/man7/EVP_CIPHER-SM4.pod" ], + "doc/man/man7/EVP_KDF-ARGON2.7" => [ + "doc/man7/EVP_KDF-ARGON2.pod" + ], "doc/man/man7/EVP_KDF-HKDF.7" => [ "doc/man7/EVP_KDF-HKDF.pod" ], + "doc/man/man7/EVP_KDF-HMAC-DRBG.7" => [ + "doc/man7/EVP_KDF-HMAC-DRBG.pod" + ], "doc/man/man7/EVP_KDF-KB.7" => [ "doc/man7/EVP_KDF-KB.pod" ], @@ -6402,6 +7281,9 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-PKCS12KDF.7" => [ "doc/man7/EVP_KDF-PKCS12KDF.pod" ], + "doc/man/man7/EVP_KDF-PVKKDF.7" => [ + "doc/man7/EVP_KDF-PVKKDF.pod" + ], "doc/man/man7/EVP_KDF-SCRYPT.7" => [ "doc/man7/EVP_KDF-SCRYPT.pod" ], @@ -6426,9 +7308,18 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-X963.7" => [ "doc/man7/EVP_KDF-X963.pod" ], + "doc/man/man7/EVP_KEM-EC.7" => [ + "doc/man7/EVP_KEM-EC.pod" + ], + "doc/man/man7/EVP_KEM-ML-KEM.7" => [ + "doc/man7/EVP_KEM-ML-KEM.pod" + ], "doc/man/man7/EVP_KEM-RSA.7" => [ "doc/man7/EVP_KEM-RSA.pod" ], + "doc/man/man7/EVP_KEM-X25519.7" => [ + "doc/man7/EVP_KEM-X25519.pod" + ], "doc/man/man7/EVP_KEYEXCH-DH.7" => [ "doc/man7/EVP_KEYEXCH-DH.pod" ], @@ -6462,6 +7353,9 @@ our %unified_info = ( "doc/man/man7/EVP_MD-BLAKE2.7" => [ "doc/man7/EVP_MD-BLAKE2.pod" ], + "doc/man/man7/EVP_MD-KECCAK.7" => [ + "doc/man7/EVP_MD-KECCAK.pod" + ], "doc/man/man7/EVP_MD-MD2.7" => [ "doc/man7/EVP_MD-MD2.pod" ], @@ -6519,15 +7413,27 @@ our %unified_info = ( "doc/man/man7/EVP_PKEY-HMAC.7" => [ "doc/man7/EVP_PKEY-HMAC.pod" ], + "doc/man/man7/EVP_PKEY-ML-DSA.7" => [ + "doc/man7/EVP_PKEY-ML-DSA.pod" + ], + "doc/man/man7/EVP_PKEY-ML-KEM.7" => [ + "doc/man7/EVP_PKEY-ML-KEM.pod" + ], "doc/man/man7/EVP_PKEY-RSA.7" => [ "doc/man7/EVP_PKEY-RSA.pod" ], + "doc/man/man7/EVP_PKEY-SLH-DSA.7" => [ + "doc/man7/EVP_PKEY-SLH-DSA.pod" + ], "doc/man/man7/EVP_PKEY-SM2.7" => [ "doc/man7/EVP_PKEY-SM2.pod" ], "doc/man/man7/EVP_PKEY-X25519.7" => [ "doc/man7/EVP_PKEY-X25519.pod" ], + "doc/man/man7/EVP_RAND-CRNG-TEST.7" => [ + "doc/man7/EVP_RAND-CRNG-TEST.pod" + ], "doc/man/man7/EVP_RAND-CTR-DRBG.7" => [ "doc/man7/EVP_RAND-CTR-DRBG.pod" ], @@ -6537,6 +7443,9 @@ our %unified_info = ( "doc/man/man7/EVP_RAND-HMAC-DRBG.7" => [ "doc/man7/EVP_RAND-HMAC-DRBG.pod" ], + "doc/man/man7/EVP_RAND-JITTER.7" => [ + "doc/man7/EVP_RAND-JITTER.pod" + ], "doc/man/man7/EVP_RAND-SEED-SRC.7" => [ "doc/man7/EVP_RAND-SEED-SRC.pod" ], @@ -6558,9 +7467,15 @@ our %unified_info = ( "doc/man/man7/EVP_SIGNATURE-HMAC.7" => [ "doc/man7/EVP_SIGNATURE-HMAC.pod" ], + "doc/man/man7/EVP_SIGNATURE-ML-DSA.7" => [ + "doc/man7/EVP_SIGNATURE-ML-DSA.pod" + ], "doc/man/man7/EVP_SIGNATURE-RSA.7" => [ "doc/man7/EVP_SIGNATURE-RSA.pod" ], + "doc/man/man7/EVP_SIGNATURE-SLH-DSA.7" => [ + "doc/man7/EVP_SIGNATURE-SLH-DSA.pod" + ], "doc/man/man7/OSSL_PROVIDER-FIPS.7" => [ "doc/man7/OSSL_PROVIDER-FIPS.pod" ], @@ -6576,6 +7491,9 @@ our %unified_info = ( "doc/man/man7/OSSL_PROVIDER-null.7" => [ "doc/man7/OSSL_PROVIDER-null.pod" ], + "doc/man/man7/OSSL_STORE-winstore.7" => [ + "doc/man7/OSSL_STORE-winstore.pod" + ], "doc/man/man7/RAND.7" => [ "doc/man7/RAND.pod" ], @@ -6588,9 +7506,6 @@ our %unified_info = ( "doc/man/man7/bio.7" => [ "doc/man7/bio.pod" ], - "doc/man/man7/crypto.7" => [ - "doc/man7/crypto.pod" - ], "doc/man/man7/ct.7" => [ "doc/man7/ct.pod" ], @@ -6621,9 +7536,6 @@ our %unified_info = ( "doc/man/man7/life_cycle-rand.7" => [ "doc/man7/life_cycle-rand.pod" ], - "doc/man/man7/migration_guide.7" => [ - "doc/man7/migration_guide.pod" - ], "doc/man/man7/openssl-core.h.7" => [ "doc/man7/openssl-core.h.pod" ], @@ -6639,12 +7551,66 @@ our %unified_info = ( "doc/man/man7/openssl-glossary.7" => [ "doc/man7/openssl-glossary.pod" ], + "doc/man/man7/openssl-qlog.7" => [ + "doc/man7/openssl-qlog.pod" + ], + "doc/man/man7/openssl-quic-concurrency.7" => [ + "doc/man7/openssl-quic-concurrency.pod" + ], + "doc/man/man7/openssl-quic.7" => [ + "doc/man7/openssl-quic.pod" + ], "doc/man/man7/openssl-threads.7" => [ "doc/man7/openssl-threads.pod" ], "doc/man/man7/openssl_user_macros.7" => [ "doc/man7/openssl_user_macros.pod" ], + "doc/man/man7/ossl-guide-introduction.7" => [ + "doc/man7/ossl-guide-introduction.pod" + ], + "doc/man/man7/ossl-guide-libcrypto-introduction.7" => [ + "doc/man7/ossl-guide-libcrypto-introduction.pod" + ], + "doc/man/man7/ossl-guide-libraries-introduction.7" => [ + "doc/man7/ossl-guide-libraries-introduction.pod" + ], + "doc/man/man7/ossl-guide-libssl-introduction.7" => [ + "doc/man7/ossl-guide-libssl-introduction.pod" + ], + "doc/man/man7/ossl-guide-migration.7" => [ + "doc/man7/ossl-guide-migration.pod" + ], + "doc/man/man7/ossl-guide-quic-client-block.7" => [ + "doc/man7/ossl-guide-quic-client-block.pod" + ], + "doc/man/man7/ossl-guide-quic-client-non-block.7" => [ + "doc/man7/ossl-guide-quic-client-non-block.pod" + ], + "doc/man/man7/ossl-guide-quic-introduction.7" => [ + "doc/man7/ossl-guide-quic-introduction.pod" + ], + "doc/man/man7/ossl-guide-quic-multi-stream.7" => [ + "doc/man7/ossl-guide-quic-multi-stream.pod" + ], + "doc/man/man7/ossl-guide-quic-server-block.7" => [ + "doc/man7/ossl-guide-quic-server-block.pod" + ], + "doc/man/man7/ossl-guide-quic-server-non-block.7" => [ + "doc/man7/ossl-guide-quic-server-non-block.pod" + ], + "doc/man/man7/ossl-guide-tls-client-block.7" => [ + "doc/man7/ossl-guide-tls-client-block.pod" + ], + "doc/man/man7/ossl-guide-tls-client-non-block.7" => [ + "doc/man7/ossl-guide-tls-client-non-block.pod" + ], + "doc/man/man7/ossl-guide-tls-introduction.7" => [ + "doc/man7/ossl-guide-tls-introduction.pod" + ], + "doc/man/man7/ossl-guide-tls-server-block.7" => [ + "doc/man7/ossl-guide-tls-server-block.pod" + ], "doc/man/man7/ossl_store-file.7" => [ "doc/man7/ossl_store-file.pod" ], @@ -6699,6 +7665,9 @@ our %unified_info = ( "doc/man/man7/provider-signature.7" => [ "doc/man7/provider-signature.pod" ], + "doc/man/man7/provider-skeymgmt.7" => [ + "doc/man7/provider-skeymgmt.pod" + ], "doc/man/man7/provider-storemgmt.7" => [ "doc/man7/provider-storemgmt.pod" ], @@ -6708,9 +7677,6 @@ our %unified_info = ( "doc/man/man7/proxy-certificates.7" => [ "doc/man7/proxy-certificates.pod" ], - "doc/man/man7/ssl.7" => [ - "doc/man7/ssl.pod" - ], "doc/man/man7/x509.7" => [ "doc/man7/x509.pod" ], @@ -6890,6 +7856,10 @@ our %unified_info = ( "doc/man1/openssl-sess_id.pod.in", "doc/perlvars.pm" ], + "doc/man1/openssl-skeyutl.pod" => [ + "doc/man1/openssl-skeyutl.pod.in", + "doc/perlvars.pm" + ], "doc/man1/openssl-smime.pod" => [ "doc/man1/openssl-smime.pod.in", "doc/perlvars.pm" @@ -6929,6 +7899,27 @@ our %unified_info = ( "doc/man7/openssl_user_macros.pod" => [ "doc/man7/openssl_user_macros.pod.in" ], + "exporters/OpenSSLConfig.cmake" => [ + "installdata.pm" + ], + "exporters/OpenSSLConfigVersion.cmake" => [ + "exporters/OpenSSLConfig.cmake", + "installdata.pm" + ], + "exporters/libcrypto.pc" => [ + "installdata.pm" + ], + "exporters/libssl.pc" => [ + "installdata.pm" + ], + "exporters/openssl.pc" => [ + "exporters/libcrypto.pc", + "exporters/libssl.pc", + "installdata.pm" + ], + "fuzz/acert-test" => [ + "libcrypto" + ], "fuzz/asn1-test" => [ "libcrypto", "libssl" @@ -6961,17 +7952,85 @@ our %unified_info = ( "fuzz/ct-test" => [ "libcrypto" ], + "fuzz/decoder-test" => [ + "libcrypto" + ], + "fuzz/dtlsclient-test" => [ + "libcrypto", + "libssl" + ], + "fuzz/dtlsserver-test" => [ + "libcrypto", + "libssl" + ], + "fuzz/hashtable-test" => [ + "libcrypto.a" + ], + "fuzz/ml-dsa-test" => [ + "libcrypto.a" + ], + "fuzz/ml-kem-test" => [ + "libcrypto.a" + ], + "fuzz/pem-test" => [ + "libcrypto.a" + ], + "fuzz/provider-test" => [ + "libcrypto" + ], + "fuzz/punycode-test" => [ + "libcrypto.a" + ], + "fuzz/quic-client-test" => [ + "libcrypto.a", + "libssl.a" + ], + "fuzz/quic-lcidm-test" => [ + "libcrypto.a", + "libssl.a" + ], + "fuzz/quic-rcidm-test" => [ + "libcrypto.a", + "libssl.a" + ], + "fuzz/quic-server-test" => [ + "libcrypto.a", + "libssl.a" + ], + "fuzz/quic-srtm-test" => [ + "libcrypto.a", + "libssl.a" + ], "fuzz/server-test" => [ "libcrypto", "libssl" ], + "fuzz/slh-dsa-test" => [ + "libcrypto.a" + ], + "fuzz/smime-test" => [ + "libcrypto", + "libssl" + ], + "fuzz/v3name-test" => [ + "libcrypto.a" + ], "fuzz/x509-test" => [ "libcrypto" ], + "include/internal/param_names.h" => [ + "util/perl|OpenSSL/paramnames.pm" + ], + "include/openssl/core_names.h" => [ + "util/perl|OpenSSL/paramnames.pm" + ], "libcrypto.ld" => [ "configdata.pm", "util/perl/OpenSSL/Ordinals.pm" ], + "libcrypto.pc" => [ + "builddata.pm" + ], "libssl" => [ "libcrypto" ], @@ -6979,6 +8038,14 @@ our %unified_info = ( "configdata.pm", "util/perl/OpenSSL/Ordinals.pm" ], + "libssl.pc" => [ + "builddata.pm" + ], + "openssl.pc" => [ + "builddata.pm", + "libcrypto.pc", + "libssl.pc" + ], "providers/common/der/der_digests_gen.c" => [ "providers/common/der/DIGESTS.asn1", "providers/common/der/NIST.asn1", @@ -6996,11 +8063,19 @@ our %unified_info = ( "providers/common/der/ECX.asn1", "providers/common/der/oids_to_c.pm" ], + "providers/common/der/der_ml_dsa_gen.c" => [ + "providers/common/der/ML_DSA.asn1", + "providers/common/der/oids_to_c.pm" + ], "providers/common/der/der_rsa_gen.c" => [ "providers/common/der/NIST.asn1", "providers/common/der/RSA.asn1", "providers/common/der/oids_to_c.pm" ], + "providers/common/der/der_slh_dsa_gen.c" => [ + "providers/common/der/SLH_DSA.asn1", + "providers/common/der/oids_to_c.pm" + ], "providers/common/der/der_sm2_gen.c" => [ "providers/common/der/SM2.asn1", "providers/common/der/oids_to_c.pm" @@ -7040,6 +8115,12 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ecx_key.o" => [ "providers/common/include/prov/der_ecx.h" ], + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o" => [ + "providers/common/include/prov/der_ml_dsa.h" + ], + "providers/common/der/libcommon-lib-der_ml_dsa_key.o" => [ + "providers/common/include/prov/der_ml_dsa.h" + ], "providers/common/der/libcommon-lib-der_rsa_gen.o" => [ "providers/common/include/prov/der_rsa.h" ], @@ -7047,6 +8128,12 @@ our %unified_info = ( "providers/common/include/prov/der_digests.h", "providers/common/include/prov/der_rsa.h" ], + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o" => [ + "providers/common/include/prov/der_slh_dsa.h" + ], + "providers/common/der/libcommon-lib-der_slh_dsa_key.o" => [ + "providers/common/include/prov/der_slh_dsa.h" + ], "providers/common/der/libcommon-lib-der_wrap_gen.o" => [ "providers/common/include/prov/der_wrap.h" ], @@ -7086,11 +8173,19 @@ our %unified_info = ( "providers/common/der/ECX.asn1", "providers/common/der/oids_to_c.pm" ], + "providers/common/include/prov/der_ml_dsa.h" => [ + "providers/common/der/ML_DSA.asn1", + "providers/common/der/oids_to_c.pm" + ], "providers/common/include/prov/der_rsa.h" => [ "providers/common/der/NIST.asn1", "providers/common/der/RSA.asn1", "providers/common/der/oids_to_c.pm" ], + "providers/common/include/prov/der_slh_dsa.h" => [ + "providers/common/der/SLH_DSA.asn1", + "providers/common/der/oids_to_c.pm" + ], "providers/common/include/prov/der_sm2.h" => [ "providers/common/der/SM2.asn1", "providers/common/der/oids_to_c.pm" @@ -7123,9 +8218,15 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-eddsa_sig.o" => [ "providers/common/include/prov/der_ecx.h" ], + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o" => [ + "providers/common/include/prov/der_ml_dsa.h" + ], "providers/implementations/signature/libdefault-lib-rsa_sig.o" => [ "providers/common/include/prov/der_rsa.h" ], + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o" => [ + "providers/common/include/prov/der_slh_dsa.h" + ], "providers/implementations/signature/libdefault-lib-sm2_sig.o" => [ "providers/common/include/prov/der_sm2.h" ], @@ -7138,9 +8239,15 @@ our %unified_info = ( "providers/implementations/signature/libfips-lib-eddsa_sig.o" => [ "providers/common/include/prov/der_ecx.h" ], + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o" => [ + "providers/common/include/prov/der_ml_dsa.h" + ], "providers/implementations/signature/libfips-lib-rsa_sig.o" => [ "providers/common/include/prov/der_rsa.h" ], + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o" => [ + "providers/common/include/prov/der_slh_dsa.h" + ], "providers/legacy" => [ "libcrypto", "providers/liblegacy.a" @@ -7218,6 +8325,14 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/bio_addr_test" => [ + "libcrypto", + "test/libtestutil.a" + ], + "test/bio_base64_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/bio_callback_test" => [ "libcrypto", "test/libtestutil.a" @@ -7226,6 +8341,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/bio_dgram_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/bio_enc_test" => [ "libcrypto", "test/libtestutil.a" @@ -7234,6 +8353,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/bio_meth_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/bio_prefix_text" => [ "libcrypto", "test/libtestutil.a" @@ -7246,6 +8369,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/bio_tfo_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/bioprinttest" => [ "libcrypto", "test/libtestutil.a" @@ -7258,6 +8385,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/build_wincrypt_test" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_aes" => [ "libcrypto", "libssl" @@ -7278,6 +8409,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_byteorder" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_camellia" => [ "libcrypto", "libssl" @@ -7310,10 +8445,6 @@ our %unified_info = ( "libcrypto", "libssl" ], - "test/buildtest_c_core_names" => [ - "libcrypto", - "libssl" - ], "test/buildtest_c_core_object" => [ "libcrypto", "libssl" @@ -7346,6 +8477,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_e_ostime" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_ebcdic" => [ "libcrypto", "libssl" @@ -7382,6 +8517,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_hpke" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_http" => [ "libcrypto", "libssl" @@ -7390,6 +8529,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_indicator" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_kdf" => [ "libcrypto", "libssl" @@ -7410,6 +8553,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_ml_kem" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_modes" => [ "libcrypto", "libssl" @@ -7450,6 +8597,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_quic" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_rand" => [ "libcrypto", "libssl" @@ -7506,6 +8657,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_thread" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_tls1" => [ "libcrypto", "libssl" @@ -7526,15 +8681,28 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/byteorder_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], + "test/ca_internals_test" => [ + "libssl", + "test/libtestutil.a" + ], "test/casttest" => [ "libcrypto", "test/libtestutil.a" ], - "test/chacha_internal_test" => [ + "test/cert_comp_test" => [ "libcrypto.a", + "libssl.a", "test/libtestutil.a" ], - "test/cipher_overhead_test" => [ + "test/chacha_internal_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], + "test/cipher_overhead_test" => [ "libcrypto.a", "libssl.a", "test/libtestutil.a" @@ -7643,6 +8811,10 @@ our %unified_info = ( "libssl", "test/libtestutil.a" ], + "test/decoder_propq_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/defltfips_test" => [ "libcrypto", "test/libtestutil.a" @@ -7699,6 +8871,8 @@ our %unified_info = ( ], "test/endecode_test" => [ "libcrypto.a", + "providers/libcommon.a", + "providers/liblegacy.a", "test/libtestutil.a" ], "test/endecoder_legacy_test" => [ @@ -7742,6 +8916,10 @@ our %unified_info = ( "test/evp_pkey_ctx_new_from_name" => [ "libcrypto" ], + "test/evp_pkey_dhkem_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/evp_pkey_dparams_test" => [ "libcrypto", "test/libtestutil.a" @@ -7750,10 +8928,18 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/evp_skey_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/evp_test" => [ "libcrypto", "test/libtestutil.a" ], + "test/evp_xof_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/exdatatest" => [ "libcrypto", "test/libtestutil.a" @@ -7792,6 +8978,10 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/hpke_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/http_test" => [ "libcrypto", "test/libtestutil.a" @@ -7804,17 +8994,25 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/json_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], "test/keymgmt_internal_test" => [ "libcrypto.a", "test/libtestutil.a" ], "test/lhash_test" => [ - "libcrypto", + "libcrypto.a", "test/libtestutil.a" ], "test/libtestutil.a" => [ "libcrypto" ], + "test/list_test" => [ + "test/libtestutil.a" + ], "test/localetest" => [ "libcrypto", "test/libtestutil.a" @@ -7827,10 +9025,26 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/membio_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/memleaktest" => [ "libcrypto", "test/libtestutil.a" ], + "test/ml_dsa_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], + "test/ml_kem_evp_extra_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], + "test/ml_kem_internal_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/modes_internal_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -7855,6 +9069,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/pairwise_fail_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/param_build_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -7887,6 +9105,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/pkcs12_api_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/pkcs12_format_test" => [ "libcrypto", "test/libtestutil.a" @@ -7907,6 +9129,11 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/priority_queue_test" => [ + "libcrypto", + "libssl.a", + "test/libtestutil.a" + ], "test/property_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -7919,6 +9146,10 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/provider_default_search_path_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/provider_fallback_test" => [ "libcrypto", "test/libtestutil.a" @@ -7943,12 +9174,122 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/quic_ackm_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_cc_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_cfq_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_client_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_fc_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_fifd_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_lcidm_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_multistream_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_newcid_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_qlog_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_radix_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_rcidm_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_record_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_srt_gen_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_srtm_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_stream_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_tserver_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_txp_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_txpim_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_wire_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quicapitest" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quicfaultstest" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], "test/rand_status_test" => [ "libcrypto", "test/libtestutil.a" ], "test/rand_test" => [ - "libcrypto", + "libcrypto.a", "test/libtestutil.a" ], "test/rc2test" => [ @@ -7963,7 +9304,7 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], - "test/rdrand_sanitytest" => [ + "test/rdcpu_sanitytest" => [ "libcrypto.a", "test/libtestutil.a" ], @@ -7972,6 +9313,11 @@ our %unified_info = ( "libssl", "test/libtestutil.a" ], + "test/rpktest" => [ + "libcrypto", + "libssl", + "test/libtestutil.a" + ], "test/rsa_mp_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -7984,10 +9330,18 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], - "test/sanitytest" => [ + "test/rsa_x931_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], + "test/safe_math_test" => [ "libcrypto", "test/libtestutil.a" ], + "test/sanitytest" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/secmemtest" => [ "libcrypto", "test/libtestutil.a" @@ -8005,6 +9359,10 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/slh_dsa_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/sm2_internal_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -8034,6 +9392,11 @@ our %unified_info = ( "libssl", "test/libtestutil.a" ], + "test/ssl_handshake_rtt_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], "test/ssl_old_test" => [ "libcrypto.a", "libssl.a", @@ -8050,8 +9413,8 @@ our %unified_info = ( "test/libtestutil.a" ], "test/sslapitest" => [ - "libcrypto", - "libssl", + "libcrypto.a", + "libssl.a", "test/libtestutil.a" ], "test/sslbuffertest" => [ @@ -8068,6 +9431,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/strtoultest" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/sysdefaulttest" => [ "libcrypto", "libssl", @@ -8077,8 +9444,12 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/threadpool_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/threadstest" => [ - "libcrypto", + "libcrypto.a", "test/libtestutil.a" ], "test/threadstest_fips" => [ @@ -8089,6 +9460,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/time_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/tls13ccstest" => [ "libcrypto", "libssl", @@ -8099,6 +9474,11 @@ our %unified_info = ( "libssl.a", "test/libtestutil.a" ], + "test/tls13groupselection_test" => [ + "libcrypto", + "libssl", + "test/libtestutil.a" + ], "test/trace_api_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -8136,6 +9516,10 @@ our %unified_info = ( "libssl.a", "test/libtestutil.a" ], + "test/x509_acert_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/x509_check_cert_pkey_test" => [ "libcrypto", "test/libtestutil.a" @@ -8148,6 +9532,18 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/x509_load_cert_file_test" => [ + "libcrypto", + "test/libtestutil.a" + ], + "test/x509_req_test" => [ + "libcrypto", + "test/libtestutil.a" + ], + "test/x509_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/x509_time_test" => [ "libcrypto", "test/libtestutil.a" @@ -8162,9 +9558,13 @@ our %unified_info = ( }, "dirinfo" => { "apps" => { + "deps" => [ + "apps/ca_internals_test-bin-ca.o" + ], "products" => { "bin" => [ - "apps/openssl" + "apps/openssl", + "test/ca_internals_test" ], "script" => [ "apps/CA.pl", @@ -8175,6 +9575,14 @@ our %unified_info = ( "apps/lib" => { "deps" => [ "apps/lib/openssl-bin-cmp_mock_srv.o", + "apps/lib/ca_internals_test-bin-app_libctx.o", + "apps/lib/ca_internals_test-bin-app_provider.o", + "apps/lib/ca_internals_test-bin-app_rand.o", + "apps/lib/ca_internals_test-bin-app_x509.o", + "apps/lib/ca_internals_test-bin-apps.o", + "apps/lib/ca_internals_test-bin-apps_ui.o", + "apps/lib/ca_internals_test-bin-engine.o", + "apps/lib/ca_internals_test-bin-fmt.o", "apps/lib/cmp_client_test-bin-cmp_mock_srv.o", "apps/lib/uitest-bin-apps_ui.o", "apps/lib/libapps-lib-app_libctx.o", @@ -8183,12 +9591,14 @@ our %unified_info = ( "apps/lib/libapps-lib-app_rand.o", "apps/lib/libapps-lib-app_x509.o", "apps/lib/libapps-lib-apps.o", + "apps/lib/libapps-lib-apps_opt_printf.o", "apps/lib/libapps-lib-apps_ui.o", "apps/lib/libapps-lib-columns.o", "apps/lib/libapps-lib-engine.o", "apps/lib/libapps-lib-engine_loader.o", "apps/lib/libapps-lib-fmt.o", "apps/lib/libapps-lib-http_server.o", + "apps/lib/libapps-lib-log.o", "apps/lib/libapps-lib-names.o", "apps/lib/libapps-lib-opt.o", "apps/lib/libapps-lib-s_cb.o", @@ -8199,6 +9609,7 @@ our %unified_info = ( "products" => { "bin" => [ "apps/openssl", + "test/ca_internals_test", "test/cmp_client_test", "test/uitest" ], @@ -8210,10 +9621,14 @@ our %unified_info = ( }, "crypto" => { "deps" => [ + "crypto/asn1_time_test-bin-ctype.o", + "crypto/ca_internals_test-bin-ctype.o", + "crypto/packettest-bin-quic_vlint.o", "crypto/libcrypto-lib-arm64cpuid.o", "crypto/libcrypto-lib-armcap.o", "crypto/libcrypto-lib-asn1_dsa.o", "crypto/libcrypto-lib-bsearch.o", + "crypto/libcrypto-lib-comp_methods.o", "crypto/libcrypto-lib-context.o", "crypto/libcrypto-lib-core_algorithm.o", "crypto/libcrypto-lib-core_fetch.o", @@ -8223,10 +9638,13 @@ our %unified_info = ( "crypto/libcrypto-lib-cryptlib.o", "crypto/libcrypto-lib-ctype.o", "crypto/libcrypto-lib-cversion.o", + "crypto/libcrypto-lib-defaults.o", "crypto/libcrypto-lib-der_writer.o", + "crypto/libcrypto-lib-deterministic_nonce.o", "crypto/libcrypto-lib-ebcdic.o", "crypto/libcrypto-lib-ex_data.o", "crypto/libcrypto-lib-getenv.o", + "crypto/libcrypto-lib-indicator_core.o", "crypto/libcrypto-lib-info.o", "crypto/libcrypto-lib-init.o", "crypto/libcrypto-lib-initthread.o", @@ -8243,6 +9661,7 @@ our %unified_info = ( "crypto/libcrypto-lib-params.o", "crypto/libcrypto-lib-params_dup.o", "crypto/libcrypto-lib-params_from_text.o", + "crypto/libcrypto-lib-params_idx.o", "crypto/libcrypto-lib-passphrase.o", "crypto/libcrypto-lib-provider.o", "crypto/libcrypto-lib-provider_child.o", @@ -8250,12 +9669,16 @@ our %unified_info = ( "crypto/libcrypto-lib-provider_core.o", "crypto/libcrypto-lib-provider_predefined.o", "crypto/libcrypto-lib-punycode.o", + "crypto/libcrypto-lib-quic_vlint.o", "crypto/libcrypto-lib-self_test_core.o", + "crypto/libcrypto-lib-sleep.o", "crypto/libcrypto-lib-sparse_array.o", + "crypto/libcrypto-lib-ssl_err.o", "crypto/libcrypto-lib-threads_lib.o", "crypto/libcrypto-lib-threads_none.o", "crypto/libcrypto-lib-threads_pthread.o", "crypto/libcrypto-lib-threads_win.o", + "crypto/libcrypto-lib-time.o", "crypto/libcrypto-lib-trace.o", "crypto/libcrypto-lib-uid.o", "crypto/libfips-lib-arm64cpuid.o", @@ -8279,6 +9702,7 @@ our %unified_info = ( "crypto/libfips-lib-params.o", "crypto/libfips-lib-params_dup.o", "crypto/libfips-lib-params_from_text.o", + "crypto/libfips-lib-params_idx.o", "crypto/libfips-lib-provider_core.o", "crypto/libfips-lib-provider_predefined.o", "crypto/libfips-lib-self_test_core.o", @@ -8286,9 +9710,15 @@ our %unified_info = ( "crypto/libfips-lib-threads_lib.o", "crypto/libfips-lib-threads_none.o", "crypto/libfips-lib-threads_pthread.o", - "crypto/libfips-lib-threads_win.o" + "crypto/libfips-lib-threads_win.o", + "crypto/libfips-lib-time.o" ], "products" => { + "bin" => [ + "test/asn1_time_test", + "test/ca_internals_test", + "test/packettest" + ], "lib" => [ "libcrypto", "providers/libfips.a" @@ -8306,12 +9736,14 @@ our %unified_info = ( "crypto/aes/libcrypto-lib-aes_ofb.o", "crypto/aes/libcrypto-lib-aes_wrap.o", "crypto/aes/libcrypto-lib-aesv8-armx.o", + "crypto/aes/libcrypto-lib-bsaes-armv8.o", "crypto/aes/libcrypto-lib-vpaes-armv8.o", "crypto/aes/libfips-lib-aes_cbc.o", "crypto/aes/libfips-lib-aes_core.o", "crypto/aes/libfips-lib-aes_ecb.o", "crypto/aes/libfips-lib-aes_misc.o", "crypto/aes/libfips-lib-aesv8-armx.o", + "crypto/aes/libfips-lib-bsaes-armv8.o", "crypto/aes/libfips-lib-vpaes-armv8.o" ], "products" => { @@ -8333,6 +9765,8 @@ our %unified_info = ( }, "crypto/asn1" => { "deps" => [ + "crypto/asn1/asn1_time_test-bin-a_time.o", + "crypto/asn1/ca_internals_test-bin-a_time.o", "crypto/asn1/libcrypto-lib-a_bitstr.o", "crypto/asn1/libcrypto-lib-a_d2i_fp.o", "crypto/asn1/libcrypto-lib-a_digest.o", @@ -8399,6 +9833,10 @@ our %unified_info = ( "crypto/asn1/libcrypto-lib-x_val.o" ], "products" => { + "bin" => [ + "test/asn1_time_test", + "test/ca_internals_test" + ], "lib" => [ "libcrypto" ] @@ -8464,6 +9902,7 @@ our %unified_info = ( "crypto/bio/libcrypto-lib-bss_conn.o", "crypto/bio/libcrypto-lib-bss_core.o", "crypto/bio/libcrypto-lib-bss_dgram.o", + "crypto/bio/libcrypto-lib-bss_dgram_pair.o", "crypto/bio/libcrypto-lib-bss_fd.o", "crypto/bio/libcrypto-lib-bss_file.o", "crypto/bio/libcrypto-lib-bss_log.o", @@ -8596,6 +10035,7 @@ our %unified_info = ( }, "crypto/chacha" => { "deps" => [ + "crypto/chacha/libcrypto-lib-chacha-armv8-sve.o", "crypto/chacha/libcrypto-lib-chacha-armv8.o" ], "products" => { @@ -8622,6 +10062,7 @@ our %unified_info = ( "crypto/cmp/libcrypto-lib-cmp_client.o", "crypto/cmp/libcrypto-lib-cmp_ctx.o", "crypto/cmp/libcrypto-lib-cmp_err.o", + "crypto/cmp/libcrypto-lib-cmp_genm.o", "crypto/cmp/libcrypto-lib-cmp_hdr.o", "crypto/cmp/libcrypto-lib-cmp_http.o", "crypto/cmp/libcrypto-lib-cmp_msg.o", @@ -8857,6 +10298,9 @@ our %unified_info = ( "crypto/ec/libcrypto-lib-ecp_nistz256-armv8.o", "crypto/ec/libcrypto-lib-ecp_nistz256.o", "crypto/ec/libcrypto-lib-ecp_oct.o", + "crypto/ec/libcrypto-lib-ecp_sm2p256-armv8.o", + "crypto/ec/libcrypto-lib-ecp_sm2p256.o", + "crypto/ec/libcrypto-lib-ecp_sm2p256_table.o", "crypto/ec/libcrypto-lib-ecp_smpl.o", "crypto/ec/libcrypto-lib-ecx_backend.o", "crypto/ec/libcrypto-lib-ecx_key.o", @@ -8884,6 +10328,9 @@ our %unified_info = ( "crypto/ec/libfips-lib-ecp_nistz256-armv8.o", "crypto/ec/libfips-lib-ecp_nistz256.o", "crypto/ec/libfips-lib-ecp_oct.o", + "crypto/ec/libfips-lib-ecp_sm2p256-armv8.o", + "crypto/ec/libfips-lib-ecp_sm2p256.o", + "crypto/ec/libfips-lib-ecp_sm2p256_table.o", "crypto/ec/libfips-lib-ecp_smpl.o", "crypto/ec/libfips-lib-ecx_backend.o", "crypto/ec/libfips-lib-ecx_key.o" @@ -8993,7 +10440,9 @@ our %unified_info = ( "crypto/err/libcrypto-lib-err_all.o", "crypto/err/libcrypto-lib-err_all_legacy.o", "crypto/err/libcrypto-lib-err_blocks.o", - "crypto/err/libcrypto-lib-err_prn.o" + "crypto/err/libcrypto-lib-err_mark.o", + "crypto/err/libcrypto-lib-err_prn.o", + "crypto/err/libcrypto-lib-err_save.o" ], "products" => { "lib" => [ @@ -9094,7 +10543,9 @@ our %unified_info = ( "crypto/evp/libcrypto-lib-pmeth_check.o", "crypto/evp/libcrypto-lib-pmeth_gn.o", "crypto/evp/libcrypto-lib-pmeth_lib.o", + "crypto/evp/libcrypto-lib-s_lib.o", "crypto/evp/libcrypto-lib-signature.o", + "crypto/evp/libcrypto-lib-skeymgmt_meth.o", "crypto/evp/libfips-lib-asymcipher.o", "crypto/evp/libfips-lib-dh_support.o", "crypto/evp/libfips-lib-digest.o", @@ -9110,14 +10561,15 @@ our %unified_info = ( "crypto/evp/libfips-lib-kem.o", "crypto/evp/libfips-lib-keymgmt_lib.o", "crypto/evp/libfips-lib-keymgmt_meth.o", - "crypto/evp/libfips-lib-m_sigver.o", "crypto/evp/libfips-lib-mac_lib.o", "crypto/evp/libfips-lib-mac_meth.o", "crypto/evp/libfips-lib-p_lib.o", "crypto/evp/libfips-lib-pmeth_check.o", "crypto/evp/libfips-lib-pmeth_gn.o", "crypto/evp/libfips-lib-pmeth_lib.o", - "crypto/evp/libfips-lib-signature.o" + "crypto/evp/libfips-lib-s_lib.o", + "crypto/evp/libfips-lib-signature.o", + "crypto/evp/libfips-lib-skeymgmt_meth.o" ], "products" => { "lib" => [ @@ -9150,6 +10602,20 @@ our %unified_info = ( ] } }, + "crypto/hashtable" => { + "deps" => [ + "crypto/hashtable/libcrypto-lib-hashfunc.o", + "crypto/hashtable/libcrypto-lib-hashtable.o", + "crypto/hashtable/libfips-lib-hashfunc.o", + "crypto/hashtable/libfips-lib-hashtable.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, "crypto/hmac" => { "deps" => [ "crypto/hmac/libcrypto-lib-hmac.o", @@ -9162,6 +10628,17 @@ our %unified_info = ( ] } }, + "crypto/hpke" => { + "deps" => [ + "crypto/hpke/libcrypto-lib-hpke.o", + "crypto/hpke/libcrypto-lib-hpke_util.o" + ], + "products" => { + "lib" => [ + "libcrypto" + ] + } + }, "crypto/http" => { "deps" => [ "crypto/http/libcrypto-lib-http_client.o", @@ -9224,6 +10701,7 @@ our %unified_info = ( }, "crypto/md5" => { "deps" => [ + "crypto/md5/libcrypto-lib-md5-aarch64.o", "crypto/md5/libcrypto-lib-md5_dgst.o", "crypto/md5/libcrypto-lib-md5_one.o", "crypto/md5/libcrypto-lib-md5_sha1.o" @@ -9245,8 +10723,47 @@ our %unified_info = ( ] } }, + "crypto/ml_dsa" => { + "deps" => [ + "crypto/ml_dsa/libcrypto-lib-ml_dsa_encoders.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key_compress.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_matrix.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_ntt.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_params.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sample.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sign.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_encoders.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_key.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_key_compress.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_matrix.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_ntt.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_params.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_sample.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_sign.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, + "crypto/ml_kem" => { + "deps" => [ + "crypto/ml_kem/libcrypto-lib-ml_kem.o", + "crypto/ml_kem/libfips-lib-ml_kem.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, "crypto/modes" => { "deps" => [ + "crypto/modes/libcrypto-lib-aes-gcm-armv8-unroll8_64.o", "crypto/modes/libcrypto-lib-aes-gcm-armv8_64.o", "crypto/modes/libcrypto-lib-cbc128.o", "crypto/modes/libcrypto-lib-ccm128.o", @@ -9260,6 +10777,8 @@ our %unified_info = ( "crypto/modes/libcrypto-lib-siv128.o", "crypto/modes/libcrypto-lib-wrap128.o", "crypto/modes/libcrypto-lib-xts128.o", + "crypto/modes/libcrypto-lib-xts128gb.o", + "crypto/modes/libfips-lib-aes-gcm-armv8-unroll8_64.o", "crypto/modes/libfips-lib-aes-gcm-armv8_64.o", "crypto/modes/libfips-lib-cbc128.o", "crypto/modes/libfips-lib-ccm128.o", @@ -9269,7 +10788,8 @@ our %unified_info = ( "crypto/modes/libfips-lib-ghashv8-armx.o", "crypto/modes/libfips-lib-ofb128.o", "crypto/modes/libfips-lib-wrap128.o", - "crypto/modes/libfips-lib-xts128.o" + "crypto/modes/libfips-lib-xts128.o", + "crypto/modes/libfips-lib-xts128gb.o" ], "products" => { "lib" => [ @@ -9413,6 +10933,7 @@ our %unified_info = ( "crypto/rand/libcrypto-lib-rand_lib.o", "crypto/rand/libcrypto-lib-rand_meth.o", "crypto/rand/libcrypto-lib-rand_pool.o", + "crypto/rand/libcrypto-lib-rand_uniform.o", "crypto/rand/libcrypto-lib-randfile.o", "crypto/rand/libfips-lib-rand_lib.o" ], @@ -9563,6 +11084,36 @@ our %unified_info = ( ] } }, + "crypto/slh_dsa" => { + "deps" => [ + "crypto/slh_dsa/libcrypto-lib-slh_adrs.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa_hash_ctx.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa_key.o", + "crypto/slh_dsa/libcrypto-lib-slh_fors.o", + "crypto/slh_dsa/libcrypto-lib-slh_hash.o", + "crypto/slh_dsa/libcrypto-lib-slh_hypertree.o", + "crypto/slh_dsa/libcrypto-lib-slh_params.o", + "crypto/slh_dsa/libcrypto-lib-slh_wots.o", + "crypto/slh_dsa/libcrypto-lib-slh_xmss.o", + "crypto/slh_dsa/libfips-lib-slh_adrs.o", + "crypto/slh_dsa/libfips-lib-slh_dsa.o", + "crypto/slh_dsa/libfips-lib-slh_dsa_hash_ctx.o", + "crypto/slh_dsa/libfips-lib-slh_dsa_key.o", + "crypto/slh_dsa/libfips-lib-slh_fors.o", + "crypto/slh_dsa/libfips-lib-slh_hash.o", + "crypto/slh_dsa/libfips-lib-slh_hypertree.o", + "crypto/slh_dsa/libfips-lib-slh_params.o", + "crypto/slh_dsa/libfips-lib-slh_wots.o", + "crypto/slh_dsa/libfips-lib-slh_xmss.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, "crypto/sm2" => { "deps" => [ "crypto/sm2/libcrypto-lib-sm2_crypt.o", @@ -9579,6 +11130,7 @@ our %unified_info = ( "crypto/sm3" => { "deps" => [ "crypto/sm3/libcrypto-lib-legacy_sm3.o", + "crypto/sm3/libcrypto-lib-sm3-armv8.o", "crypto/sm3/libcrypto-lib-sm3.o" ], "products" => { @@ -9589,7 +11141,10 @@ our %unified_info = ( }, "crypto/sm4" => { "deps" => [ - "crypto/sm4/libcrypto-lib-sm4.o" + "crypto/sm4/libcrypto-lib-sm4-armv8.o", + "crypto/sm4/libcrypto-lib-sm4.o", + "crypto/sm4/libcrypto-lib-vpsm4-armv8.o", + "crypto/sm4/libcrypto-lib-vpsm4_ex-armv8.o" ], "products" => { "lib" => [ @@ -9636,6 +11191,38 @@ our %unified_info = ( ] } }, + "crypto/thread" => { + "deps" => [ + "crypto/thread/libcrypto-lib-api.o", + "crypto/thread/libcrypto-lib-arch.o", + "crypto/thread/libcrypto-lib-internal.o", + "crypto/thread/libfips-lib-api.o", + "crypto/thread/libfips-lib-arch.o", + "crypto/thread/libfips-lib-internal.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, + "crypto/thread/arch" => { + "deps" => [ + "crypto/thread/arch/libcrypto-lib-thread_none.o", + "crypto/thread/arch/libcrypto-lib-thread_posix.o", + "crypto/thread/arch/libcrypto-lib-thread_win.o", + "crypto/thread/arch/libfips-lib-thread_none.o", + "crypto/thread/arch/libfips-lib-thread_posix.o", + "crypto/thread/arch/libfips-lib-thread_win.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, "crypto/ts" => { "deps" => [ "crypto/ts/libcrypto-lib-ts_asn1.o", @@ -9702,14 +11289,22 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-pcy_map.o", "crypto/x509/libcrypto-lib-pcy_node.o", "crypto/x509/libcrypto-lib-pcy_tree.o", + "crypto/x509/libcrypto-lib-t_acert.o", "crypto/x509/libcrypto-lib-t_crl.o", "crypto/x509/libcrypto-lib-t_req.o", "crypto/x509/libcrypto-lib-t_x509.o", + "crypto/x509/libcrypto-lib-v3_aaa.o", + "crypto/x509/libcrypto-lib-v3_ac_tgt.o", "crypto/x509/libcrypto-lib-v3_addr.o", "crypto/x509/libcrypto-lib-v3_admis.o", "crypto/x509/libcrypto-lib-v3_akeya.o", "crypto/x509/libcrypto-lib-v3_akid.o", "crypto/x509/libcrypto-lib-v3_asid.o", + "crypto/x509/libcrypto-lib-v3_attrdesc.o", + "crypto/x509/libcrypto-lib-v3_attrmap.o", + "crypto/x509/libcrypto-lib-v3_audit_id.o", + "crypto/x509/libcrypto-lib-v3_authattid.o", + "crypto/x509/libcrypto-lib-v3_battcons.o", "crypto/x509/libcrypto-lib-v3_bcons.o", "crypto/x509/libcrypto-lib-v3_bitst.o", "crypto/x509/libcrypto-lib-v3_conf.o", @@ -9718,12 +11313,17 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_enum.o", "crypto/x509/libcrypto-lib-v3_extku.o", "crypto/x509/libcrypto-lib-v3_genn.o", + "crypto/x509/libcrypto-lib-v3_group_ac.o", "crypto/x509/libcrypto-lib-v3_ia5.o", + "crypto/x509/libcrypto-lib-v3_ind_iss.o", "crypto/x509/libcrypto-lib-v3_info.o", "crypto/x509/libcrypto-lib-v3_int.o", + "crypto/x509/libcrypto-lib-v3_iobo.o", "crypto/x509/libcrypto-lib-v3_ist.o", "crypto/x509/libcrypto-lib-v3_lib.o", "crypto/x509/libcrypto-lib-v3_ncons.o", + "crypto/x509/libcrypto-lib-v3_no_ass.o", + "crypto/x509/libcrypto-lib-v3_no_rev_avail.o", "crypto/x509/libcrypto-lib-v3_pci.o", "crypto/x509/libcrypto-lib-v3_pcia.o", "crypto/x509/libcrypto-lib-v3_pcons.o", @@ -9731,13 +11331,20 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_pmaps.o", "crypto/x509/libcrypto-lib-v3_prn.o", "crypto/x509/libcrypto-lib-v3_purp.o", + "crypto/x509/libcrypto-lib-v3_rolespec.o", "crypto/x509/libcrypto-lib-v3_san.o", + "crypto/x509/libcrypto-lib-v3_sda.o", + "crypto/x509/libcrypto-lib-v3_single_use.o", "crypto/x509/libcrypto-lib-v3_skid.o", + "crypto/x509/libcrypto-lib-v3_soa_id.o", "crypto/x509/libcrypto-lib-v3_sxnet.o", + "crypto/x509/libcrypto-lib-v3_timespec.o", "crypto/x509/libcrypto-lib-v3_tlsf.o", + "crypto/x509/libcrypto-lib-v3_usernotice.o", "crypto/x509/libcrypto-lib-v3_utf8.o", "crypto/x509/libcrypto-lib-v3_utl.o", "crypto/x509/libcrypto-lib-v3err.o", + "crypto/x509/libcrypto-lib-x509_acert.o", "crypto/x509/libcrypto-lib-x509_att.o", "crypto/x509/libcrypto-lib-x509_cmp.o", "crypto/x509/libcrypto-lib-x509_d2.o", @@ -9755,6 +11362,7 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x509_v3.o", "crypto/x509/libcrypto-lib-x509_vfy.o", "crypto/x509/libcrypto-lib-x509_vpm.o", + "crypto/x509/libcrypto-lib-x509aset.o", "crypto/x509/libcrypto-lib-x509cset.o", "crypto/x509/libcrypto-lib-x509name.o", "crypto/x509/libcrypto-lib-x509rset.o", @@ -9764,6 +11372,7 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x_attrib.o", "crypto/x509/libcrypto-lib-x_crl.o", "crypto/x509/libcrypto-lib-x_exten.o", + "crypto/x509/libcrypto-lib-x_ietfatt.o", "crypto/x509/libcrypto-lib-x_name.o", "crypto/x509/libcrypto-lib-x_pubkey.o", "crypto/x509/libcrypto-lib-x_req.o", @@ -9790,6 +11399,7 @@ our %unified_info = ( "fuzz" => { "products" => { "bin" => [ + "fuzz/acert-test", "fuzz/asn1-test", "fuzz/asn1parse-test", "fuzz/bignum-test", @@ -9800,13 +11410,31 @@ our %unified_info = ( "fuzz/conf-test", "fuzz/crl-test", "fuzz/ct-test", + "fuzz/decoder-test", + "fuzz/dtlsclient-test", + "fuzz/dtlsserver-test", + "fuzz/hashtable-test", + "fuzz/ml-dsa-test", + "fuzz/ml-kem-test", + "fuzz/pem-test", + "fuzz/provider-test", + "fuzz/punycode-test", + "fuzz/quic-client-test", + "fuzz/quic-lcidm-test", + "fuzz/quic-rcidm-test", + "fuzz/quic-server-test", + "fuzz/quic-srtm-test", "fuzz/server-test", + "fuzz/slh-dsa-test", + "fuzz/smime-test", + "fuzz/v3name-test", "fuzz/x509-test" ] } }, "providers" => { "deps" => [ + "providers/endecode_test-bin-legacyprov.o", "providers/evp_extra_test-bin-legacyprov.o", "providers/libcrypto-lib-baseprov.o", "providers/libcrypto-lib-defltprov.o", @@ -9816,6 +11444,7 @@ our %unified_info = ( ], "products" => { "bin" => [ + "test/endecode_test", "test/evp_extra_test" ], "dso" => [ @@ -9867,8 +11496,12 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ec_sig.o", "providers/common/der/libcommon-lib-der_ecx_gen.o", "providers/common/der/libcommon-lib-der_ecx_key.o", + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o", + "providers/common/der/libcommon-lib-der_ml_dsa_key.o", "providers/common/der/libcommon-lib-der_rsa_gen.o", "providers/common/der/libcommon-lib-der_rsa_key.o", + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o", + "providers/common/der/libcommon-lib-der_slh_dsa_key.o", "providers/common/der/libcommon-lib-der_wrap_gen.o", "providers/common/der/libdefault-lib-der_rsa_sig.o", "providers/common/der/libdefault-lib-der_sm2_gen.o", @@ -9887,6 +11520,7 @@ our %unified_info = ( "providers/fips" => { "deps" => [ "providers/fips/fips-dso-fips_entry.o", + "providers/fips/libfips-lib-fipsindicator.o", "providers/fips/libfips-lib-fipsprov.o", "providers/fips/libfips-lib-self_test.o", "providers/fips/libfips-lib-self_test_kats.o" @@ -9930,6 +11564,9 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_aes_ccm_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_polyval.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_ocb.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_ocb_hw.o", @@ -9954,7 +11591,13 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_cts.o", "providers/implementations/ciphers/libdefault-lib-cipher_null.o", "providers/implementations/ciphers/libdefault-lib-cipher_sm4.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_sm4_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes_common.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes_default.o", @@ -10051,7 +11694,10 @@ our %unified_info = ( "providers/implementations/encode_decode/libdefault-lib-encode_key2blob.o", "providers/implementations/encode_decode/libdefault-lib-encode_key2ms.o", "providers/implementations/encode_decode/libdefault-lib-encode_key2text.o", - "providers/implementations/encode_decode/libdefault-lib-endecoder_common.o" + "providers/implementations/encode_decode/libdefault-lib-endecoder_common.o", + "providers/implementations/encode_decode/libdefault-lib-ml_common_codecs.o", + "providers/implementations/encode_decode/libdefault-lib-ml_dsa_codecs.o", + "providers/implementations/encode_decode/libdefault-lib-ml_kem_codecs.o" ], "products" => { "lib" => [ @@ -10079,7 +11725,9 @@ our %unified_info = ( }, "providers/implementations/kdfs" => { "deps" => [ + "providers/implementations/kdfs/libdefault-lib-argon2.o", "providers/implementations/kdfs/libdefault-lib-hkdf.o", + "providers/implementations/kdfs/libdefault-lib-hmacdrbg_kdf.o", "providers/implementations/kdfs/libdefault-lib-kbkdf.o", "providers/implementations/kdfs/libdefault-lib-krb5kdf.o", "providers/implementations/kdfs/libdefault-lib-pbkdf2.o", @@ -10098,7 +11746,8 @@ our %unified_info = ( "providers/implementations/kdfs/libfips-lib-sskdf.o", "providers/implementations/kdfs/libfips-lib-tls1_prf.o", "providers/implementations/kdfs/libfips-lib-x942kdf.o", - "providers/implementations/kdfs/liblegacy-lib-pbkdf1.o" + "providers/implementations/kdfs/liblegacy-lib-pbkdf1.o", + "providers/implementations/kdfs/liblegacy-lib-pvkkdf.o" ], "products" => { "lib" => [ @@ -10110,13 +11759,22 @@ our %unified_info = ( }, "providers/implementations/kem" => { "deps" => [ + "providers/implementations/kem/libdefault-lib-ec_kem.o", + "providers/implementations/kem/libdefault-lib-ecx_kem.o", + "providers/implementations/kem/libdefault-lib-kem_util.o", + "providers/implementations/kem/libdefault-lib-ml_kem_kem.o", + "providers/implementations/kem/libdefault-lib-mlx_kem.o", "providers/implementations/kem/libdefault-lib-rsa_kem.o", - "providers/implementations/kem/libfips-lib-rsa_kem.o" + "providers/implementations/kem/libfips-lib-ml_kem_kem.o", + "providers/implementations/kem/libfips-lib-mlx_kem.o", + "providers/implementations/kem/libfips-lib-rsa_kem.o", + "providers/implementations/kem/libtemplate-lib-template_kem.o" ], "products" => { "lib" => [ "providers/libdefault.a", - "providers/libfips.a" + "providers/libfips.a", + "providers/libtemplate.a" ] } }, @@ -10128,19 +11786,29 @@ our %unified_info = ( "providers/implementations/keymgmt/libdefault-lib-ecx_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-kdf_legacy_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-mac_legacy_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-ml_dsa_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-ml_kem_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-mlx_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-rsa_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-slh_dsa_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-dh_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-dsa_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-ec_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-ecx_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-kdf_legacy_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-mac_legacy_kmgmt.o", - "providers/implementations/keymgmt/libfips-lib-rsa_kmgmt.o" + "providers/implementations/keymgmt/libfips-lib-ml_dsa_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-ml_kem_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-mlx_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-rsa_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-slh_dsa_kmgmt.o", + "providers/implementations/keymgmt/libtemplate-lib-template_kmgmt.o" ], "products" => { "lib" => [ "providers/libdefault.a", - "providers/libfips.a" + "providers/libfips.a", + "providers/libtemplate.a" ] } }, @@ -10168,18 +11836,18 @@ our %unified_info = ( }, "providers/implementations/rands" => { "deps" => [ - "providers/implementations/rands/libdefault-lib-crngt.o", "providers/implementations/rands/libdefault-lib-drbg.o", "providers/implementations/rands/libdefault-lib-drbg_ctr.o", "providers/implementations/rands/libdefault-lib-drbg_hash.o", "providers/implementations/rands/libdefault-lib-drbg_hmac.o", "providers/implementations/rands/libdefault-lib-seed_src.o", + "providers/implementations/rands/libdefault-lib-seed_src_jitter.o", "providers/implementations/rands/libdefault-lib-test_rng.o", - "providers/implementations/rands/libfips-lib-crngt.o", "providers/implementations/rands/libfips-lib-drbg.o", "providers/implementations/rands/libfips-lib-drbg_ctr.o", "providers/implementations/rands/libfips-lib-drbg_hash.o", "providers/implementations/rands/libfips-lib-drbg_hmac.o", + "providers/implementations/rands/libfips-lib-fips_crng_test.o", "providers/implementations/rands/libfips-lib-test_rng.o" ], "products" => { @@ -10191,7 +11859,7 @@ our %unified_info = ( }, "providers/implementations/rands/seeding" => { "deps" => [ - "providers/implementations/rands/seeding/libdefault-lib-rand_cpu_x86.o", + "providers/implementations/rands/seeding/libdefault-lib-rand_cpu_arm64.o", "providers/implementations/rands/seeding/libdefault-lib-rand_tsc.o", "providers/implementations/rands/seeding/libdefault-lib-rand_unix.o", "providers/implementations/rands/seeding/libdefault-lib-rand_win.o" @@ -10208,13 +11876,31 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-ecdsa_sig.o", "providers/implementations/signature/libdefault-lib-eddsa_sig.o", "providers/implementations/signature/libdefault-lib-mac_legacy_sig.o", + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o", "providers/implementations/signature/libdefault-lib-rsa_sig.o", + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o", "providers/implementations/signature/libdefault-lib-sm2_sig.o", "providers/implementations/signature/libfips-lib-dsa_sig.o", "providers/implementations/signature/libfips-lib-ecdsa_sig.o", "providers/implementations/signature/libfips-lib-eddsa_sig.o", "providers/implementations/signature/libfips-lib-mac_legacy_sig.o", - "providers/implementations/signature/libfips-lib-rsa_sig.o" + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o", + "providers/implementations/signature/libfips-lib-rsa_sig.o", + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o" + ], + "products" => { + "lib" => [ + "providers/libdefault.a", + "providers/libfips.a" + ] + } + }, + "providers/implementations/skeymgmt" => { + "deps" => [ + "providers/implementations/skeymgmt/libdefault-lib-aes_skmgmt.o", + "providers/implementations/skeymgmt/libdefault-lib-generic.o", + "providers/implementations/skeymgmt/libfips-lib-aes_skmgmt.o", + "providers/implementations/skeymgmt/libfips-lib-generic.o" ], "products" => { "lib" => [ @@ -10242,14 +11928,15 @@ our %unified_info = ( "ssl/libssl-lib-d1_srtp.o", "ssl/libssl-lib-methods.o", "ssl/libssl-lib-pqueue.o", + "ssl/libssl-lib-priority_queue.o", "ssl/libssl-lib-s3_enc.o", "ssl/libssl-lib-s3_lib.o", "ssl/libssl-lib-s3_msg.o", "ssl/libssl-lib-ssl_asn1.o", "ssl/libssl-lib-ssl_cert.o", + "ssl/libssl-lib-ssl_cert_comp.o", "ssl/libssl-lib-ssl_ciph.o", "ssl/libssl-lib-ssl_conf.o", - "ssl/libssl-lib-ssl_err.o", "ssl/libssl-lib-ssl_err_legacy.o", "ssl/libssl-lib-ssl_init.o", "ssl/libssl-lib-ssl_lib.o", @@ -10265,32 +11952,107 @@ our %unified_info = ( "ssl/libssl-lib-t1_trce.o", "ssl/libssl-lib-tls13_enc.o", "ssl/libssl-lib-tls_depr.o", - "ssl/libssl-lib-tls_srp.o", - "ssl/libdefault-lib-s3_cbc.o", - "ssl/libfips-lib-s3_cbc.o" + "ssl/libssl-lib-tls_srp.o" ], "products" => { "lib" => [ - "libssl", - "providers/libdefault.a", - "providers/libfips.a" + "libssl" + ] + } + }, + "ssl/quic" => { + "deps" => [ + "ssl/quic/libssl-lib-cc_newreno.o", + "ssl/quic/libssl-lib-json_enc.o", + "ssl/quic/libssl-lib-qlog.o", + "ssl/quic/libssl-lib-qlog_event_helpers.o", + "ssl/quic/libssl-lib-quic_ackm.o", + "ssl/quic/libssl-lib-quic_cfq.o", + "ssl/quic/libssl-lib-quic_channel.o", + "ssl/quic/libssl-lib-quic_demux.o", + "ssl/quic/libssl-lib-quic_engine.o", + "ssl/quic/libssl-lib-quic_fc.o", + "ssl/quic/libssl-lib-quic_fifd.o", + "ssl/quic/libssl-lib-quic_impl.o", + "ssl/quic/libssl-lib-quic_lcidm.o", + "ssl/quic/libssl-lib-quic_method.o", + "ssl/quic/libssl-lib-quic_obj.o", + "ssl/quic/libssl-lib-quic_port.o", + "ssl/quic/libssl-lib-quic_rcidm.o", + "ssl/quic/libssl-lib-quic_reactor.o", + "ssl/quic/libssl-lib-quic_reactor_wait_ctx.o", + "ssl/quic/libssl-lib-quic_record_rx.o", + "ssl/quic/libssl-lib-quic_record_shared.o", + "ssl/quic/libssl-lib-quic_record_tx.o", + "ssl/quic/libssl-lib-quic_record_util.o", + "ssl/quic/libssl-lib-quic_rstream.o", + "ssl/quic/libssl-lib-quic_rx_depack.o", + "ssl/quic/libssl-lib-quic_sf_list.o", + "ssl/quic/libssl-lib-quic_srt_gen.o", + "ssl/quic/libssl-lib-quic_srtm.o", + "ssl/quic/libssl-lib-quic_sstream.o", + "ssl/quic/libssl-lib-quic_statm.o", + "ssl/quic/libssl-lib-quic_stream_map.o", + "ssl/quic/libssl-lib-quic_thread_assist.o", + "ssl/quic/libssl-lib-quic_tls.o", + "ssl/quic/libssl-lib-quic_tls_api.o", + "ssl/quic/libssl-lib-quic_trace.o", + "ssl/quic/libssl-lib-quic_tserver.o", + "ssl/quic/libssl-lib-quic_txp.o", + "ssl/quic/libssl-lib-quic_txpim.o", + "ssl/quic/libssl-lib-quic_types.o", + "ssl/quic/libssl-lib-quic_wire.o", + "ssl/quic/libssl-lib-quic_wire_pkt.o", + "ssl/quic/libssl-lib-uint_set.o" + ], + "products" => { + "lib" => [ + "libssl" ] } }, "ssl/record" => { "deps" => [ - "ssl/record/libssl-lib-dtls1_bitmap.o", "ssl/record/libssl-lib-rec_layer_d1.o", - "ssl/record/libssl-lib-rec_layer_s3.o", - "ssl/record/libssl-lib-ssl3_buffer.o", - "ssl/record/libssl-lib-ssl3_record.o", - "ssl/record/libssl-lib-ssl3_record_tls13.o", - "ssl/record/libcommon-lib-tls_pad.o" + "ssl/record/libssl-lib-rec_layer_s3.o" + ], + "products" => { + "lib" => [ + "libssl" + ] + } + }, + "ssl/record/methods" => { + "deps" => [ + "ssl/record/methods/libssl-lib-dtls_meth.o", + "ssl/record/methods/libssl-lib-ssl3_meth.o", + "ssl/record/methods/libssl-lib-tls13_meth.o", + "ssl/record/methods/libssl-lib-tls1_meth.o", + "ssl/record/methods/libssl-lib-tls_common.o", + "ssl/record/methods/libssl-lib-tls_multib.o", + "ssl/record/methods/libssl-lib-tlsany_meth.o", + "ssl/record/methods/libcommon-lib-tls_pad.o", + "ssl/record/methods/libdefault-lib-ssl3_cbc.o", + "ssl/record/methods/libfips-lib-ssl3_cbc.o" ], "products" => { "lib" => [ "libssl", - "providers/libcommon.a" + "providers/libcommon.a", + "providers/libdefault.a", + "providers/libfips.a" + ] + } + }, + "ssl/rio" => { + "deps" => [ + "ssl/rio/libssl-lib-poll_builder.o", + "ssl/rio/libssl-lib-poll_immediate.o", + "ssl/rio/libssl-lib-rio_notifier.o" + ], + "products" => { + "lib" => [ + "libssl" ] } }, @@ -10328,9 +12090,40 @@ our %unified_info = ( "test/helpers/dtlstest-bin-ssltestlib.o", "test/helpers/endecode_test-bin-predefined_dhparams.o", "test/helpers/fatalerrtest-bin-ssltestlib.o", + "test/helpers/json_test-bin-noisydgrambio.o", + "test/helpers/json_test-bin-pktsplitbio.o", + "test/helpers/json_test-bin-quictestlib.o", + "test/helpers/json_test-bin-ssltestlib.o", + "test/helpers/pkcs12_api_test-bin-pkcs12.o", "test/helpers/pkcs12_format_test-bin-pkcs12.o", + "test/helpers/quic_multistream_test-bin-noisydgrambio.o", + "test/helpers/quic_multistream_test-bin-pktsplitbio.o", + "test/helpers/quic_multistream_test-bin-quictestlib.o", + "test/helpers/quic_multistream_test-bin-ssltestlib.o", + "test/helpers/quic_newcid_test-bin-noisydgrambio.o", + "test/helpers/quic_newcid_test-bin-pktsplitbio.o", + "test/helpers/quic_newcid_test-bin-quictestlib.o", + "test/helpers/quic_newcid_test-bin-ssltestlib.o", + "test/helpers/quic_radix_test-bin-noisydgrambio.o", + "test/helpers/quic_radix_test-bin-pktsplitbio.o", + "test/helpers/quic_radix_test-bin-quictestlib.o", + "test/helpers/quic_radix_test-bin-ssltestlib.o", + "test/helpers/quic_srt_gen_test-bin-noisydgrambio.o", + "test/helpers/quic_srt_gen_test-bin-pktsplitbio.o", + "test/helpers/quic_srt_gen_test-bin-quictestlib.o", + "test/helpers/quic_srt_gen_test-bin-ssltestlib.o", + "test/helpers/quicapitest-bin-noisydgrambio.o", + "test/helpers/quicapitest-bin-pktsplitbio.o", + "test/helpers/quicapitest-bin-quictestlib.o", + "test/helpers/quicapitest-bin-ssltestlib.o", + "test/helpers/quicfaultstest-bin-noisydgrambio.o", + "test/helpers/quicfaultstest-bin-pktsplitbio.o", + "test/helpers/quicfaultstest-bin-quictestlib.o", + "test/helpers/quicfaultstest-bin-ssltestlib.o", "test/helpers/recordlentest-bin-ssltestlib.o", + "test/helpers/rpktest-bin-ssltestlib.o", "test/helpers/servername_test-bin-ssltestlib.o", + "test/helpers/ssl_handshake_rtt_test-bin-ssltestlib.o", "test/helpers/ssl_old_test-bin-predefined_dhparams.o", "test/helpers/ssl_test-bin-handshake.o", "test/helpers/ssl_test-bin-handshake_srp.o", @@ -10339,7 +12132,8 @@ our %unified_info = ( "test/helpers/sslapitest-bin-ssltestlib.o", "test/helpers/sslbuffertest-bin-ssltestlib.o", "test/helpers/sslcorrupttest-bin-ssltestlib.o", - "test/helpers/tls13ccstest-bin-ssltestlib.o" + "test/helpers/tls13ccstest-bin-ssltestlib.o", + "test/helpers/tls13groupselection_test-bin-ssltestlib.o" ], "products" => { "bin" => [ @@ -10357,16 +12151,37 @@ our %unified_info = ( "test/dtlstest", "test/endecode_test", "test/fatalerrtest", + "test/json_test", + "test/pkcs12_api_test", "test/pkcs12_format_test", + "test/quic_multistream_test", + "test/quic_newcid_test", + "test/quic_radix_test", + "test/quic_srt_gen_test", + "test/quicapitest", + "test/quicfaultstest", "test/recordlentest", + "test/rpktest", "test/servername_test", + "test/ssl_handshake_rtt_test", "test/ssl_old_test", "test/ssl_test", "test/ssl_test_ctx_test", "test/sslapitest", "test/sslbuffertest", "test/sslcorrupttest", - "test/tls13ccstest" + "test/tls13ccstest", + "test/tls13groupselection_test" + ] + } + }, + "test/radix" => { + "deps" => [ + "test/radix/quic_radix_test-bin-quic_radix.o" + ], + "products" => { + "bin" => [ + "test/quic_radix_test" ] } }, @@ -10378,6 +12193,7 @@ our %unified_info = ( "test/testutil/libtestutil-lib-driver.o", "test/testutil/libtestutil-lib-fake_random.o", "test/testutil/libtestutil-lib-format_output.o", + "test/testutil/libtestutil-lib-helper.o", "test/testutil/libtestutil-lib-load.o", "test/testutil/libtestutil-lib-main.o", "test/testutil/libtestutil-lib-options.o", @@ -10413,6 +12229,12 @@ our %unified_info = ( } }, "generate" => { + "OpenSSLConfig.cmake" => [ + "exporters/cmake/OpenSSLConfig.cmake.in" + ], + "OpenSSLConfigVersion.cmake" => [ + "exporters/cmake/OpenSSLConfigVersion.cmake.in" + ], "apps/progs.c" => [ "apps/progs.pl", "\"-C\"", @@ -10423,6 +12245,19 @@ our %unified_info = ( "\"-H\"", "\$(APPS_OPENSSL)" ], + "builddata.pm" => [ + "util/mkinstallvars.pl", + "PREFIX=.", + "BINDIR=apps", + "APPLINKDIR=ms", + "LIBDIR=", + "INCLUDEDIR=include", + "\"INCLUDEDIR=\$(SRCDIR)/include\"", + "ENGINESDIR=engines", + "MODULESDIR=providers", + "\"VERSION=\$(VERSION)\"", + "\"LDLIBS=\$(LIB_EX_LIBS)\"" + ], "crypto/aes/aes-586.S" => [ "crypto/aes/asm/aes-586.pl" ], @@ -10444,6 +12279,24 @@ our %unified_info = ( "crypto/aes/aes-ppc.s" => [ "crypto/aes/asm/aes-ppc.pl" ], + "crypto/aes/aes-riscv32-zkn.s" => [ + "crypto/aes/asm/aes-riscv32-zkn.pl" + ], + "crypto/aes/aes-riscv64-zkn.s" => [ + "crypto/aes/asm/aes-riscv64-zkn.pl" + ], + "crypto/aes/aes-riscv64-zvbb-zvkg-zvkned.s" => [ + "crypto/aes/asm/aes-riscv64-zvbb-zvkg-zvkned.pl" + ], + "crypto/aes/aes-riscv64-zvkb-zvkned.s" => [ + "crypto/aes/asm/aes-riscv64-zvkb-zvkned.pl" + ], + "crypto/aes/aes-riscv64-zvkned.s" => [ + "crypto/aes/asm/aes-riscv64-zvkned.pl" + ], + "crypto/aes/aes-riscv64.s" => [ + "crypto/aes/asm/aes-riscv64.pl" + ], "crypto/aes/aes-s390x.S" => [ "crypto/aes/asm/aes-s390x.pl" ], @@ -10471,6 +12324,9 @@ our %unified_info = ( "crypto/aes/aesni-x86_64.s" => [ "crypto/aes/asm/aesni-x86_64.pl" ], + "crypto/aes/aesni-xts-avx512.s" => [ + "crypto/aes/asm/aesni-xts-avx512.pl" + ], "crypto/aes/aesp8-ppc.s" => [ "crypto/aes/asm/aesp8-ppc.pl" ], @@ -10483,12 +12339,18 @@ our %unified_info = ( "crypto/aes/bsaes-armv7.S" => [ "crypto/aes/asm/bsaes-armv7.pl" ], + "crypto/aes/bsaes-armv8.S" => [ + "crypto/aes/asm/bsaes-armv8.pl" + ], "crypto/aes/bsaes-x86_64.s" => [ "crypto/aes/asm/bsaes-x86_64.pl" ], "crypto/aes/vpaes-armv8.S" => [ "crypto/aes/asm/vpaes-armv8.pl" ], + "crypto/aes/vpaes-loongarch64.S" => [ + "crypto/aes/asm/vpaes-loongarch64.pl" + ], "crypto/aes/vpaes-ppc.s" => [ "crypto/aes/asm/vpaes-ppc.pl" ], @@ -10549,15 +12411,33 @@ our %unified_info = ( "crypto/bn/ppc-mont.s" => [ "crypto/bn/asm/ppc-mont.pl" ], + "crypto/bn/ppc64-mont-fixed.s" => [ + "crypto/bn/asm/ppc64-mont-fixed.pl" + ], "crypto/bn/ppc64-mont.s" => [ "crypto/bn/asm/ppc64-mont.pl" ], + "crypto/bn/rsaz-2k-avx512.s" => [ + "crypto/bn/asm/rsaz-2k-avx512.pl" + ], + "crypto/bn/rsaz-2k-avxifma.s" => [ + "crypto/bn/asm/rsaz-2k-avxifma.pl" + ], + "crypto/bn/rsaz-3k-avx512.s" => [ + "crypto/bn/asm/rsaz-3k-avx512.pl" + ], + "crypto/bn/rsaz-3k-avxifma.s" => [ + "crypto/bn/asm/rsaz-3k-avxifma.pl" + ], + "crypto/bn/rsaz-4k-avx512.s" => [ + "crypto/bn/asm/rsaz-4k-avx512.pl" + ], + "crypto/bn/rsaz-4k-avxifma.s" => [ + "crypto/bn/asm/rsaz-4k-avxifma.pl" + ], "crypto/bn/rsaz-avx2.s" => [ "crypto/bn/asm/rsaz-avx2.pl" ], - "crypto/bn/rsaz-avx512.s" => [ - "crypto/bn/asm/rsaz-avx512.pl" - ], "crypto/bn/rsaz-x86_64.s" => [ "crypto/bn/asm/rsaz-x86_64.pl" ], @@ -10619,6 +12499,9 @@ our %unified_info = ( "crypto/chacha/chacha-armv4.S" => [ "crypto/chacha/asm/chacha-armv4.pl" ], + "crypto/chacha/chacha-armv8-sve.S" => [ + "crypto/chacha/asm/chacha-armv8-sve.pl" + ], "crypto/chacha/chacha-armv8.S" => [ "crypto/chacha/asm/chacha-armv8.pl" ], @@ -10631,9 +12514,19 @@ our %unified_info = ( "crypto/chacha/chacha-ia64.s" => [ "crypto/chacha/chacha-ia64.S" ], + "crypto/chacha/chacha-loongarch64.S" => [ + "crypto/chacha/asm/chacha-loongarch64.pl" + ], "crypto/chacha/chacha-ppc.s" => [ "crypto/chacha/asm/chacha-ppc.pl" ], + "crypto/chacha/chacha-riscv64-v-zbb-zvkb.s" => [ + "crypto/chacha/asm/chacha-riscv64-v-zbb.pl", + "zvkb" + ], + "crypto/chacha/chacha-riscv64-v-zbb.s" => [ + "crypto/chacha/asm/chacha-riscv64-v-zbb.pl" + ], "crypto/chacha/chacha-s390x.S" => [ "crypto/chacha/asm/chacha-s390x.pl" ], @@ -10643,6 +12536,9 @@ our %unified_info = ( "crypto/chacha/chacha-x86_64.s" => [ "crypto/chacha/asm/chacha-x86_64.pl" ], + "crypto/chacha/chachap10-ppc.s" => [ + "crypto/chacha/asm/chachap10-ppc.pl" + ], "crypto/des/crypt586.S" => [ "crypto/des/asm/crypt586.pl" ], @@ -10655,6 +12551,9 @@ our %unified_info = ( "crypto/des/dest4-sparcv9.S" => [ "crypto/des/asm/dest4-sparcv9.pl" ], + "crypto/ec/ecp_nistp384-ppc64.s" => [ + "crypto/ec/asm/ecp_nistp384-ppc64.pl" + ], "crypto/ec/ecp_nistp521-ppc64.s" => [ "crypto/ec/asm/ecp_nistp521-ppc64.pl" ], @@ -10679,6 +12578,9 @@ our %unified_info = ( "crypto/ec/ecp_nistz256-x86_64.s" => [ "crypto/ec/asm/ecp_nistz256-x86_64.pl" ], + "crypto/ec/ecp_sm2p256-armv8.S" => [ + "crypto/ec/asm/ecp_sm2p256-armv8.pl" + ], "crypto/ec/x25519-ppc64.s" => [ "crypto/ec/asm/x25519-ppc64.pl" ], @@ -10688,18 +12590,39 @@ our %unified_info = ( "crypto/ia64cpuid.s" => [ "crypto/ia64cpuid.S" ], + "crypto/loongarch64cpuid.s" => [ + "crypto/loongarch64cpuid.pl" + ], "crypto/md5/md5-586.S" => [ "crypto/md5/asm/md5-586.pl" ], + "crypto/md5/md5-aarch64.S" => [ + "crypto/md5/asm/md5-aarch64.pl" + ], + "crypto/md5/md5-loongarch64.S" => [ + "crypto/md5/asm/md5-loongarch64.pl" + ], "crypto/md5/md5-sparcv9.S" => [ "crypto/md5/asm/md5-sparcv9.pl" ], "crypto/md5/md5-x86_64.s" => [ "crypto/md5/asm/md5-x86_64.pl" ], + "crypto/modes/aes-gcm-armv8-unroll8_64.S" => [ + "crypto/modes/asm/aes-gcm-armv8-unroll8_64.pl" + ], "crypto/modes/aes-gcm-armv8_64.S" => [ "crypto/modes/asm/aes-gcm-armv8_64.pl" ], + "crypto/modes/aes-gcm-avx512.s" => [ + "crypto/modes/asm/aes-gcm-avx512.pl" + ], + "crypto/modes/aes-gcm-ppc.s" => [ + "crypto/modes/asm/aes-gcm-ppc.pl" + ], + "crypto/modes/aes-gcm-riscv64-zvkb-zvkg-zvkned.s" => [ + "crypto/modes/asm/aes-gcm-riscv64-zvkb-zvkg-zvkned.pl" + ], "crypto/modes/aesni-gcm-x86_64.s" => [ "crypto/modes/asm/aesni-gcm-x86_64.pl" ], @@ -10718,6 +12641,15 @@ our %unified_info = ( "crypto/modes/ghash-parisc.s" => [ "crypto/modes/asm/ghash-parisc.pl" ], + "crypto/modes/ghash-riscv64-zvkb-zvbc.s" => [ + "crypto/modes/asm/ghash-riscv64-zvkb-zvbc.pl" + ], + "crypto/modes/ghash-riscv64-zvkg.s" => [ + "crypto/modes/asm/ghash-riscv64-zvkg.pl" + ], + "crypto/modes/ghash-riscv64.s" => [ + "crypto/modes/asm/ghash-riscv64.pl" + ], "crypto/modes/ghash-s390x.S" => [ "crypto/modes/asm/ghash-s390x.pl" ], @@ -10736,6 +12668,9 @@ our %unified_info = ( "crypto/modes/ghashv8-armx.S" => [ "crypto/modes/asm/ghashv8-armx.pl" ], + "crypto/params_idx.c" => [ + "crypto/params_idx.c.in" + ], "crypto/pariscid.s" => [ "crypto/pariscid.pl" ], @@ -10796,6 +12731,12 @@ our %unified_info = ( "crypto/ripemd/rmd-586.S" => [ "crypto/ripemd/asm/rmd-586.pl" ], + "crypto/riscv32cpuid.s" => [ + "crypto/riscv32cpuid.pl" + ], + "crypto/riscv64cpuid.s" => [ + "crypto/riscv64cpuid.pl" + ], "crypto/s390xcpuid.S" => [ "crypto/s390xcpuid.pl" ], @@ -10904,6 +12845,9 @@ our %unified_info = ( "crypto/sha/sha256-ppc.s" => [ "crypto/sha/asm/sha512-ppc.pl" ], + "crypto/sha/sha256-riscv64-zvkb-zvknha_or_zvknhb.S" => [ + "crypto/sha/asm/sha256-riscv64-zvkb-zvknha_or_zvknhb.pl" + ], "crypto/sha/sha256-s390x.S" => [ "crypto/sha/asm/sha512-s390x.pl" ], @@ -10940,6 +12884,9 @@ our %unified_info = ( "crypto/sha/sha512-ppc.s" => [ "crypto/sha/asm/sha512-ppc.pl" ], + "crypto/sha/sha512-riscv64-zvkb-zvknhb.S" => [ + "crypto/sha/asm/sha512-riscv64-zvkb-zvknhb.pl" + ], "crypto/sha/sha512-s390x.S" => [ "crypto/sha/asm/sha512-s390x.pl" ], @@ -10952,6 +12899,24 @@ our %unified_info = ( "crypto/sha/sha512p8-ppc.s" => [ "crypto/sha/asm/sha512p8-ppc.pl" ], + "crypto/sm3/sm3-armv8.S" => [ + "crypto/sm3/asm/sm3-armv8.pl" + ], + "crypto/sm3/sm3-riscv64-zvksh.S" => [ + "crypto/sm3/asm/sm3-riscv64-zvksh.pl" + ], + "crypto/sm4/sm4-armv8.S" => [ + "crypto/sm4/asm/sm4-armv8.pl" + ], + "crypto/sm4/sm4-riscv64-zvksed.s" => [ + "crypto/sm4/asm/sm4-riscv64-zvksed.pl" + ], + "crypto/sm4/vpsm4-armv8.S" => [ + "crypto/sm4/asm/vpsm4-armv8.pl" + ], + "crypto/sm4/vpsm4_ex-armv8.S" => [ + "crypto/sm4/asm/vpsm4_ex-armv8.pl" + ], "crypto/uplink-ia64.s" => [ "ms/uplink-ia64.pl" ], @@ -11117,6 +13082,9 @@ our %unified_info = ( "doc/html/man1/openssl-sess_id.html" => [ "doc/man1/openssl-sess_id.pod" ], + "doc/html/man1/openssl-skeyutl.html" => [ + "doc/man1/openssl-skeyutl.pod" + ], "doc/html/man1/openssl-smime.html" => [ "doc/man1/openssl-smime.pod" ], @@ -11258,6 +13226,9 @@ our %unified_info = ( "doc/html/man3/BIO_get_ex_new_index.html" => [ "doc/man3/BIO_get_ex_new_index.pod" ], + "doc/html/man3/BIO_get_rpoll_descriptor.html" => [ + "doc/man3/BIO_get_rpoll_descriptor.pod" + ], "doc/html/man3/BIO_meth_new.html" => [ "doc/man3/BIO_meth_new.pod" ], @@ -11294,6 +13265,9 @@ our %unified_info = ( "doc/html/man3/BIO_s_datagram.html" => [ "doc/man3/BIO_s_datagram.pod" ], + "doc/html/man3/BIO_s_dgram_pair.html" => [ + "doc/man3/BIO_s_dgram_pair.pod" + ], "doc/html/man3/BIO_s_fd.html" => [ "doc/man3/BIO_s_fd.pod" ], @@ -11309,6 +13283,9 @@ our %unified_info = ( "doc/html/man3/BIO_s_socket.html" => [ "doc/man3/BIO_s_socket.pod" ], + "doc/html/man3/BIO_sendmmsg.html" => [ + "doc/man3/BIO_sendmmsg.pod" + ], "doc/html/man3/BIO_set_callback.html" => [ "doc/man3/BIO_set_callback.pod" ], @@ -11381,6 +13358,9 @@ our %unified_info = ( "doc/html/man3/BUF_MEM_new.html" => [ "doc/man3/BUF_MEM_new.pod" ], + "doc/html/man3/CMAC_CTX.html" => [ + "doc/man3/CMAC_CTX.pod" + ], "doc/html/man3/CMS_EncryptedData_decrypt.html" => [ "doc/man3/CMS_EncryptedData_decrypt.pod" ], @@ -11447,6 +13427,9 @@ our %unified_info = ( "doc/html/man3/CMS_verify_receipt.html" => [ "doc/man3/CMS_verify_receipt.pod" ], + "doc/html/man3/COMP_CTX_new.html" => [ + "doc/man3/COMP_CTX_new.pod" + ], "doc/html/man3/CONF_modules_free.html" => [ "doc/man3/CONF_modules_free.pod" ], @@ -11546,6 +13529,12 @@ our %unified_info = ( "doc/html/man3/DTLS_set_timer_cb.html" => [ "doc/man3/DTLS_set_timer_cb.pod" ], + "doc/html/man3/DTLSv1_get_timeout.html" => [ + "doc/man3/DTLSv1_get_timeout.pod" + ], + "doc/html/man3/DTLSv1_handle_timeout.html" => [ + "doc/man3/DTLSv1_handle_timeout.pod" + ], "doc/html/man3/DTLSv1_listen.html" => [ "doc/man3/DTLSv1_listen.pod" ], @@ -11684,6 +13673,9 @@ our %unified_info = ( "doc/html/man3/EVP_PKEY_CTX_get0_pkey.html" => [ "doc/man3/EVP_PKEY_CTX_get0_pkey.pod" ], + "doc/html/man3/EVP_PKEY_CTX_get_algor.html" => [ + "doc/man3/EVP_PKEY_CTX_get_algor.pod" + ], "doc/html/man3/EVP_PKEY_CTX_new.html" => [ "doc/man3/EVP_PKEY_CTX_new.pod" ], @@ -11801,6 +13793,12 @@ our %unified_info = ( "doc/html/man3/EVP_SIGNATURE.html" => [ "doc/man3/EVP_SIGNATURE.pod" ], + "doc/html/man3/EVP_SKEY.html" => [ + "doc/man3/EVP_SKEY.pod" + ], + "doc/html/man3/EVP_SKEYMGMT.html" => [ + "doc/man3/EVP_SKEYMGMT.pod" + ], "doc/html/man3/EVP_SealInit.html" => [ "doc/man3/EVP_SealInit.pod" ], @@ -11888,6 +13886,9 @@ our %unified_info = ( "doc/html/man3/EVP_whirlpool.html" => [ "doc/man3/EVP_whirlpool.pod" ], + "doc/html/man3/GENERAL_NAME.html" => [ + "doc/man3/GENERAL_NAME.pod" + ], "doc/html/man3/HMAC.html" => [ "doc/man3/HMAC.pod" ], @@ -11960,9 +13961,15 @@ our %unified_info = ( "doc/html/man3/OPENSSL_load_builtin_modules.html" => [ "doc/man3/OPENSSL_load_builtin_modules.pod" ], + "doc/html/man3/OPENSSL_load_u16_le.html" => [ + "doc/man3/OPENSSL_load_u16_le.pod" + ], "doc/html/man3/OPENSSL_malloc.html" => [ "doc/man3/OPENSSL_malloc.pod" ], + "doc/html/man3/OPENSSL_riscvcap.html" => [ + "doc/man3/OPENSSL_riscvcap.pod" + ], "doc/html/man3/OPENSSL_s390xcap.html" => [ "doc/man3/OPENSSL_s390xcap.pod" ], @@ -11978,12 +13985,18 @@ our %unified_info = ( "doc/html/man3/OSSL_CALLBACK.html" => [ "doc/man3/OSSL_CALLBACK.pod" ], + "doc/html/man3/OSSL_CMP_ATAV_set0.html" => [ + "doc/man3/OSSL_CMP_ATAV_set0.pod" + ], "doc/html/man3/OSSL_CMP_CTX_new.html" => [ "doc/man3/OSSL_CMP_CTX_new.pod" ], "doc/html/man3/OSSL_CMP_HDR_get0_transactionID.html" => [ "doc/man3/OSSL_CMP_HDR_get0_transactionID.pod" ], + "doc/html/man3/OSSL_CMP_ITAV_new_caCerts.html" => [ + "doc/man3/OSSL_CMP_ITAV_new_caCerts.pod" + ], "doc/html/man3/OSSL_CMP_ITAV_set0.html" => [ "doc/man3/OSSL_CMP_ITAV_set0.pod" ], @@ -12053,9 +14066,18 @@ our %unified_info = ( "doc/html/man3/OSSL_ENCODER_to_bio.html" => [ "doc/man3/OSSL_ENCODER_to_bio.pod" ], + "doc/html/man3/OSSL_ERR_STATE_save.html" => [ + "doc/man3/OSSL_ERR_STATE_save.pod" + ], "doc/html/man3/OSSL_ESS_check_signing_certs.html" => [ "doc/man3/OSSL_ESS_check_signing_certs.pod" ], + "doc/html/man3/OSSL_GENERAL_NAMES_print.html" => [ + "doc/man3/OSSL_GENERAL_NAMES_print.pod" + ], + "doc/html/man3/OSSL_HPKE_CTX_new.html" => [ + "doc/man3/OSSL_HPKE_CTX_new.pod" + ], "doc/html/man3/OSSL_HTTP_REQ_CTX.html" => [ "doc/man3/OSSL_HTTP_REQ_CTX.pod" ], @@ -12065,12 +14087,24 @@ our %unified_info = ( "doc/html/man3/OSSL_HTTP_transfer.html" => [ "doc/man3/OSSL_HTTP_transfer.pod" ], + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX.html" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX.pod" + ], + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX_print.html" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX_print.pod" + ], + "doc/html/man3/OSSL_INDICATOR_set_callback.html" => [ + "doc/man3/OSSL_INDICATOR_set_callback.pod" + ], "doc/html/man3/OSSL_ITEM.html" => [ "doc/man3/OSSL_ITEM.pod" ], "doc/html/man3/OSSL_LIB_CTX.html" => [ "doc/man3/OSSL_LIB_CTX.pod" ], + "doc/html/man3/OSSL_LIB_CTX_set_conf_diagnostics.html" => [ + "doc/man3/OSSL_LIB_CTX_set_conf_diagnostics.pod" + ], "doc/html/man3/OSSL_PARAM.html" => [ "doc/man3/OSSL_PARAM.pod" ], @@ -12086,9 +14120,15 @@ our %unified_info = ( "doc/html/man3/OSSL_PARAM_int.html" => [ "doc/man3/OSSL_PARAM_int.pod" ], + "doc/html/man3/OSSL_PARAM_print_to_bio.html" => [ + "doc/man3/OSSL_PARAM_print_to_bio.pod" + ], "doc/html/man3/OSSL_PROVIDER.html" => [ "doc/man3/OSSL_PROVIDER.pod" ], + "doc/html/man3/OSSL_QUIC_client_method.html" => [ + "doc/man3/OSSL_QUIC_client_method.pod" + ], "doc/html/man3/OSSL_SELF_TEST_new.html" => [ "doc/man3/OSSL_SELF_TEST_new.pod" ], @@ -12113,6 +14153,9 @@ our %unified_info = ( "doc/html/man3/OSSL_STORE_open.html" => [ "doc/man3/OSSL_STORE_open.pod" ], + "doc/html/man3/OSSL_sleep.html" => [ + "doc/man3/OSSL_sleep.pod" + ], "doc/html/man3/OSSL_trace_enabled.html" => [ "doc/man3/OSSL_trace_enabled.pod" ], @@ -12128,6 +14171,9 @@ our %unified_info = ( "doc/html/man3/OpenSSL_version.html" => [ "doc/man3/OpenSSL_version.pod" ], + "doc/html/man3/PBMAC1_get1_pbkdf2_param.html" => [ + "doc/man3/PBMAC1_get1_pbkdf2_param.pod" + ], "doc/html/man3/PEM_X509_INFO_read_bio_ex.html" => [ "doc/man3/PEM_X509_INFO_read_bio_ex.pod" ], @@ -12164,6 +14210,9 @@ our %unified_info = ( "doc/html/man3/PKCS12_SAFEBAG_get1_cert.html" => [ "doc/man3/PKCS12_SAFEBAG_get1_cert.pod" ], + "doc/html/man3/PKCS12_SAFEBAG_set0_attrs.html" => [ + "doc/man3/PKCS12_SAFEBAG_set0_attrs.pod" + ], "doc/html/man3/PKCS12_add1_attr_by_NID.html" => [ "doc/man3/PKCS12_add1_attr_by_NID.pod" ], @@ -12437,6 +14486,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set0_CA_list.html" => [ "doc/man3/SSL_CTX_set0_CA_list.pod" ], + "doc/html/man3/SSL_CTX_set1_cert_comp_preference.html" => [ + "doc/man3/SSL_CTX_set1_cert_comp_preference.pod" + ], "doc/html/man3/SSL_CTX_set1_curves.html" => [ "doc/man3/SSL_CTX_set1_curves.pod" ], @@ -12476,6 +14528,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_default_passwd_cb.html" => [ "doc/man3/SSL_CTX_set_default_passwd_cb.pod" ], + "doc/html/man3/SSL_CTX_set_domain_flags.html" => [ + "doc/man3/SSL_CTX_set_domain_flags.pod" + ], "doc/html/man3/SSL_CTX_set_generate_session_id.html" => [ "doc/man3/SSL_CTX_set_generate_session_id.pod" ], @@ -12497,6 +14552,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_msg_callback.html" => [ "doc/man3/SSL_CTX_set_msg_callback.pod" ], + "doc/html/man3/SSL_CTX_set_new_pending_conn_cb.html" => [ + "doc/man3/SSL_CTX_set_new_pending_conn_cb.pod" + ], "doc/html/man3/SSL_CTX_set_num_tickets.html" => [ "doc/man3/SSL_CTX_set_num_tickets.pod" ], @@ -12611,6 +14669,9 @@ our %unified_info = ( "doc/html/man3/SSL_accept.html" => [ "doc/man3/SSL_accept.pod" ], + "doc/html/man3/SSL_accept_stream.html" => [ + "doc/man3/SSL_accept_stream.pod" + ], "doc/html/man3/SSL_alert_type_string.html" => [ "doc/man3/SSL_alert_type_string.pod" ], @@ -12638,9 +14699,21 @@ our %unified_info = ( "doc/html/man3/SSL_free.html" => [ "doc/man3/SSL_free.pod" ], + "doc/html/man3/SSL_get0_connection.html" => [ + "doc/man3/SSL_get0_connection.pod" + ], + "doc/html/man3/SSL_get0_group_name.html" => [ + "doc/man3/SSL_get0_group_name.pod" + ], + "doc/html/man3/SSL_get0_peer_rpk.html" => [ + "doc/man3/SSL_get0_peer_rpk.pod" + ], "doc/html/man3/SSL_get0_peer_scts.html" => [ "doc/man3/SSL_get0_peer_scts.pod" ], + "doc/html/man3/SSL_get1_builtin_sigalgs.html" => [ + "doc/man3/SSL_get1_builtin_sigalgs.pod" + ], "doc/html/man3/SSL_get_SSL_CTX.html" => [ "doc/man3/SSL_get_SSL_CTX.pod" ], @@ -12656,6 +14729,9 @@ our %unified_info = ( "doc/html/man3/SSL_get_client_random.html" => [ "doc/man3/SSL_get_client_random.pod" ], + "doc/html/man3/SSL_get_conn_close_info.html" => [ + "doc/man3/SSL_get_conn_close_info.pod" + ], "doc/html/man3/SSL_get_current_cipher.html" => [ "doc/man3/SSL_get_current_cipher.pod" ], @@ -12665,12 +14741,18 @@ our %unified_info = ( "doc/html/man3/SSL_get_error.html" => [ "doc/man3/SSL_get_error.pod" ], + "doc/html/man3/SSL_get_event_timeout.html" => [ + "doc/man3/SSL_get_event_timeout.pod" + ], "doc/html/man3/SSL_get_extms_support.html" => [ "doc/man3/SSL_get_extms_support.pod" ], "doc/html/man3/SSL_get_fd.html" => [ "doc/man3/SSL_get_fd.pod" ], + "doc/html/man3/SSL_get_handshake_rtt.html" => [ + "doc/man3/SSL_get_handshake_rtt.pod" + ], "doc/html/man3/SSL_get_peer_cert_chain.html" => [ "doc/man3/SSL_get_peer_cert_chain.pod" ], @@ -12689,12 +14771,24 @@ our %unified_info = ( "doc/html/man3/SSL_get_rbio.html" => [ "doc/man3/SSL_get_rbio.pod" ], + "doc/html/man3/SSL_get_rpoll_descriptor.html" => [ + "doc/man3/SSL_get_rpoll_descriptor.pod" + ], "doc/html/man3/SSL_get_session.html" => [ "doc/man3/SSL_get_session.pod" ], "doc/html/man3/SSL_get_shared_sigalgs.html" => [ "doc/man3/SSL_get_shared_sigalgs.pod" ], + "doc/html/man3/SSL_get_stream_id.html" => [ + "doc/man3/SSL_get_stream_id.pod" + ], + "doc/html/man3/SSL_get_stream_read_state.html" => [ + "doc/man3/SSL_get_stream_read_state.pod" + ], + "doc/html/man3/SSL_get_value_uint.html" => [ + "doc/man3/SSL_get_value_uint.pod" + ], "doc/html/man3/SSL_get_verify_result.html" => [ "doc/man3/SSL_get_verify_result.pod" ], @@ -12704,9 +14798,15 @@ our %unified_info = ( "doc/html/man3/SSL_group_to_name.html" => [ "doc/man3/SSL_group_to_name.pod" ], + "doc/html/man3/SSL_handle_events.html" => [ + "doc/man3/SSL_handle_events.pod" + ], "doc/html/man3/SSL_in_init.html" => [ "doc/man3/SSL_in_init.pod" ], + "doc/html/man3/SSL_inject_net_dgram.html" => [ + "doc/man3/SSL_inject_net_dgram.pod" + ], "doc/html/man3/SSL_key_update.html" => [ "doc/man3/SSL_key_update.pod" ], @@ -12719,9 +14819,21 @@ our %unified_info = ( "doc/html/man3/SSL_new.html" => [ "doc/man3/SSL_new.pod" ], + "doc/html/man3/SSL_new_domain.html" => [ + "doc/man3/SSL_new_domain.pod" + ], + "doc/html/man3/SSL_new_listener.html" => [ + "doc/man3/SSL_new_listener.pod" + ], + "doc/html/man3/SSL_new_stream.html" => [ + "doc/man3/SSL_new_stream.pod" + ], "doc/html/man3/SSL_pending.html" => [ "doc/man3/SSL_pending.pod" ], + "doc/html/man3/SSL_poll.html" => [ + "doc/man3/SSL_poll.pod" + ], "doc/html/man3/SSL_read.html" => [ "doc/man3/SSL_read.pod" ], @@ -12737,24 +14849,45 @@ our %unified_info = ( "doc/html/man3/SSL_set1_host.html" => [ "doc/man3/SSL_set1_host.pod" ], + "doc/html/man3/SSL_set1_initial_peer_addr.html" => [ + "doc/man3/SSL_set1_initial_peer_addr.pod" + ], + "doc/html/man3/SSL_set1_server_cert_type.html" => [ + "doc/man3/SSL_set1_server_cert_type.pod" + ], "doc/html/man3/SSL_set_async_callback.html" => [ "doc/man3/SSL_set_async_callback.pod" ], "doc/html/man3/SSL_set_bio.html" => [ "doc/man3/SSL_set_bio.pod" ], + "doc/html/man3/SSL_set_blocking_mode.html" => [ + "doc/man3/SSL_set_blocking_mode.pod" + ], "doc/html/man3/SSL_set_connect_state.html" => [ "doc/man3/SSL_set_connect_state.pod" ], + "doc/html/man3/SSL_set_default_stream_mode.html" => [ + "doc/man3/SSL_set_default_stream_mode.pod" + ], "doc/html/man3/SSL_set_fd.html" => [ "doc/man3/SSL_set_fd.pod" ], + "doc/html/man3/SSL_set_incoming_stream_policy.html" => [ + "doc/man3/SSL_set_incoming_stream_policy.pod" + ], + "doc/html/man3/SSL_set_quic_tls_cbs.html" => [ + "doc/man3/SSL_set_quic_tls_cbs.pod" + ], "doc/html/man3/SSL_set_retry_verify.html" => [ "doc/man3/SSL_set_retry_verify.pod" ], "doc/html/man3/SSL_set_session.html" => [ "doc/man3/SSL_set_session.pod" ], + "doc/html/man3/SSL_set_session_secret_cb.html" => [ + "doc/man3/SSL_set_session_secret_cb.pod" + ], "doc/html/man3/SSL_set_shutdown.html" => [ "doc/man3/SSL_set_shutdown.pod" ], @@ -12767,6 +14900,12 @@ our %unified_info = ( "doc/html/man3/SSL_state_string.html" => [ "doc/man3/SSL_state_string.pod" ], + "doc/html/man3/SSL_stream_conclude.html" => [ + "doc/man3/SSL_stream_conclude.pod" + ], + "doc/html/man3/SSL_stream_reset.html" => [ + "doc/man3/SSL_stream_reset.pod" + ], "doc/html/man3/SSL_want.html" => [ "doc/man3/SSL_want.pod" ], @@ -12776,8 +14915,8 @@ our %unified_info = ( "doc/html/man3/TS_RESP_CTX_new.html" => [ "doc/man3/TS_RESP_CTX_new.pod" ], - "doc/html/man3/TS_VERIFY_CTX_set_certs.html" => [ - "doc/man3/TS_VERIFY_CTX_set_certs.pod" + "doc/html/man3/TS_VERIFY_CTX.html" => [ + "doc/man3/TS_VERIFY_CTX.pod" ], "doc/html/man3/UI_STRING.html" => [ "doc/man3/UI_STRING.pod" @@ -12797,6 +14936,21 @@ our %unified_info = ( "doc/html/man3/X509V3_set_ctx.html" => [ "doc/man3/X509V3_set_ctx.pod" ], + "doc/html/man3/X509_ACERT_add1_attr.html" => [ + "doc/man3/X509_ACERT_add1_attr.pod" + ], + "doc/html/man3/X509_ACERT_add_attr_nconf.html" => [ + "doc/man3/X509_ACERT_add_attr_nconf.pod" + ], + "doc/html/man3/X509_ACERT_get0_holder_baseCertId.html" => [ + "doc/man3/X509_ACERT_get0_holder_baseCertId.pod" + ], + "doc/html/man3/X509_ACERT_get_attr.html" => [ + "doc/man3/X509_ACERT_get_attr.pod" + ], + "doc/html/man3/X509_ACERT_print_ex.html" => [ + "doc/man3/X509_ACERT_print_ex.pod" + ], "doc/html/man3/X509_ALGOR_dup.html" => [ "doc/man3/X509_ALGOR_dup.pod" ], @@ -12845,6 +14999,9 @@ our %unified_info = ( "doc/html/man3/X509_SIG_get0.html" => [ "doc/man3/X509_SIG_get0.pod" ], + "doc/html/man3/X509_STORE_CTX_get_by_subject.html" => [ + "doc/man3/X509_STORE_CTX_get_by_subject.pod" + ], "doc/html/man3/X509_STORE_CTX_get_error.html" => [ "doc/man3/X509_STORE_CTX_get_error.pod" ], @@ -12911,6 +15068,9 @@ our %unified_info = ( "doc/html/man3/X509_get0_uids.html" => [ "doc/man3/X509_get0_uids.pod" ], + "doc/html/man3/X509_get_default_cert_file.html" => [ + "doc/man3/X509_get_default_cert_file.pod" + ], "doc/html/man3/X509_get_extension_flags.html" => [ "doc/man3/X509_get_extension_flags.pod" ], @@ -13034,9 +15194,15 @@ our %unified_info = ( "doc/html/man7/EVP_CIPHER-SM4.html" => [ "doc/man7/EVP_CIPHER-SM4.pod" ], + "doc/html/man7/EVP_KDF-ARGON2.html" => [ + "doc/man7/EVP_KDF-ARGON2.pod" + ], "doc/html/man7/EVP_KDF-HKDF.html" => [ "doc/man7/EVP_KDF-HKDF.pod" ], + "doc/html/man7/EVP_KDF-HMAC-DRBG.html" => [ + "doc/man7/EVP_KDF-HMAC-DRBG.pod" + ], "doc/html/man7/EVP_KDF-KB.html" => [ "doc/man7/EVP_KDF-KB.pod" ], @@ -13052,6 +15218,9 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-PKCS12KDF.html" => [ "doc/man7/EVP_KDF-PKCS12KDF.pod" ], + "doc/html/man7/EVP_KDF-PVKKDF.html" => [ + "doc/man7/EVP_KDF-PVKKDF.pod" + ], "doc/html/man7/EVP_KDF-SCRYPT.html" => [ "doc/man7/EVP_KDF-SCRYPT.pod" ], @@ -13076,9 +15245,18 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-X963.html" => [ "doc/man7/EVP_KDF-X963.pod" ], + "doc/html/man7/EVP_KEM-EC.html" => [ + "doc/man7/EVP_KEM-EC.pod" + ], + "doc/html/man7/EVP_KEM-ML-KEM.html" => [ + "doc/man7/EVP_KEM-ML-KEM.pod" + ], "doc/html/man7/EVP_KEM-RSA.html" => [ "doc/man7/EVP_KEM-RSA.pod" ], + "doc/html/man7/EVP_KEM-X25519.html" => [ + "doc/man7/EVP_KEM-X25519.pod" + ], "doc/html/man7/EVP_KEYEXCH-DH.html" => [ "doc/man7/EVP_KEYEXCH-DH.pod" ], @@ -13112,6 +15290,9 @@ our %unified_info = ( "doc/html/man7/EVP_MD-BLAKE2.html" => [ "doc/man7/EVP_MD-BLAKE2.pod" ], + "doc/html/man7/EVP_MD-KECCAK.html" => [ + "doc/man7/EVP_MD-KECCAK.pod" + ], "doc/html/man7/EVP_MD-MD2.html" => [ "doc/man7/EVP_MD-MD2.pod" ], @@ -13169,15 +15350,27 @@ our %unified_info = ( "doc/html/man7/EVP_PKEY-HMAC.html" => [ "doc/man7/EVP_PKEY-HMAC.pod" ], + "doc/html/man7/EVP_PKEY-ML-DSA.html" => [ + "doc/man7/EVP_PKEY-ML-DSA.pod" + ], + "doc/html/man7/EVP_PKEY-ML-KEM.html" => [ + "doc/man7/EVP_PKEY-ML-KEM.pod" + ], "doc/html/man7/EVP_PKEY-RSA.html" => [ "doc/man7/EVP_PKEY-RSA.pod" ], + "doc/html/man7/EVP_PKEY-SLH-DSA.html" => [ + "doc/man7/EVP_PKEY-SLH-DSA.pod" + ], "doc/html/man7/EVP_PKEY-SM2.html" => [ "doc/man7/EVP_PKEY-SM2.pod" ], "doc/html/man7/EVP_PKEY-X25519.html" => [ "doc/man7/EVP_PKEY-X25519.pod" ], + "doc/html/man7/EVP_RAND-CRNG-TEST.html" => [ + "doc/man7/EVP_RAND-CRNG-TEST.pod" + ], "doc/html/man7/EVP_RAND-CTR-DRBG.html" => [ "doc/man7/EVP_RAND-CTR-DRBG.pod" ], @@ -13187,6 +15380,9 @@ our %unified_info = ( "doc/html/man7/EVP_RAND-HMAC-DRBG.html" => [ "doc/man7/EVP_RAND-HMAC-DRBG.pod" ], + "doc/html/man7/EVP_RAND-JITTER.html" => [ + "doc/man7/EVP_RAND-JITTER.pod" + ], "doc/html/man7/EVP_RAND-SEED-SRC.html" => [ "doc/man7/EVP_RAND-SEED-SRC.pod" ], @@ -13208,9 +15404,15 @@ our %unified_info = ( "doc/html/man7/EVP_SIGNATURE-HMAC.html" => [ "doc/man7/EVP_SIGNATURE-HMAC.pod" ], + "doc/html/man7/EVP_SIGNATURE-ML-DSA.html" => [ + "doc/man7/EVP_SIGNATURE-ML-DSA.pod" + ], "doc/html/man7/EVP_SIGNATURE-RSA.html" => [ "doc/man7/EVP_SIGNATURE-RSA.pod" ], + "doc/html/man7/EVP_SIGNATURE-SLH-DSA.html" => [ + "doc/man7/EVP_SIGNATURE-SLH-DSA.pod" + ], "doc/html/man7/OSSL_PROVIDER-FIPS.html" => [ "doc/man7/OSSL_PROVIDER-FIPS.pod" ], @@ -13226,6 +15428,9 @@ our %unified_info = ( "doc/html/man7/OSSL_PROVIDER-null.html" => [ "doc/man7/OSSL_PROVIDER-null.pod" ], + "doc/html/man7/OSSL_STORE-winstore.html" => [ + "doc/man7/OSSL_STORE-winstore.pod" + ], "doc/html/man7/RAND.html" => [ "doc/man7/RAND.pod" ], @@ -13238,9 +15443,6 @@ our %unified_info = ( "doc/html/man7/bio.html" => [ "doc/man7/bio.pod" ], - "doc/html/man7/crypto.html" => [ - "doc/man7/crypto.pod" - ], "doc/html/man7/ct.html" => [ "doc/man7/ct.pod" ], @@ -13271,9 +15473,6 @@ our %unified_info = ( "doc/html/man7/life_cycle-rand.html" => [ "doc/man7/life_cycle-rand.pod" ], - "doc/html/man7/migration_guide.html" => [ - "doc/man7/migration_guide.pod" - ], "doc/html/man7/openssl-core.h.html" => [ "doc/man7/openssl-core.h.pod" ], @@ -13289,12 +15488,66 @@ our %unified_info = ( "doc/html/man7/openssl-glossary.html" => [ "doc/man7/openssl-glossary.pod" ], + "doc/html/man7/openssl-qlog.html" => [ + "doc/man7/openssl-qlog.pod" + ], + "doc/html/man7/openssl-quic-concurrency.html" => [ + "doc/man7/openssl-quic-concurrency.pod" + ], + "doc/html/man7/openssl-quic.html" => [ + "doc/man7/openssl-quic.pod" + ], "doc/html/man7/openssl-threads.html" => [ "doc/man7/openssl-threads.pod" ], "doc/html/man7/openssl_user_macros.html" => [ "doc/man7/openssl_user_macros.pod" ], + "doc/html/man7/ossl-guide-introduction.html" => [ + "doc/man7/ossl-guide-introduction.pod" + ], + "doc/html/man7/ossl-guide-libcrypto-introduction.html" => [ + "doc/man7/ossl-guide-libcrypto-introduction.pod" + ], + "doc/html/man7/ossl-guide-libraries-introduction.html" => [ + "doc/man7/ossl-guide-libraries-introduction.pod" + ], + "doc/html/man7/ossl-guide-libssl-introduction.html" => [ + "doc/man7/ossl-guide-libssl-introduction.pod" + ], + "doc/html/man7/ossl-guide-migration.html" => [ + "doc/man7/ossl-guide-migration.pod" + ], + "doc/html/man7/ossl-guide-quic-client-block.html" => [ + "doc/man7/ossl-guide-quic-client-block.pod" + ], + "doc/html/man7/ossl-guide-quic-client-non-block.html" => [ + "doc/man7/ossl-guide-quic-client-non-block.pod" + ], + "doc/html/man7/ossl-guide-quic-introduction.html" => [ + "doc/man7/ossl-guide-quic-introduction.pod" + ], + "doc/html/man7/ossl-guide-quic-multi-stream.html" => [ + "doc/man7/ossl-guide-quic-multi-stream.pod" + ], + "doc/html/man7/ossl-guide-quic-server-block.html" => [ + "doc/man7/ossl-guide-quic-server-block.pod" + ], + "doc/html/man7/ossl-guide-quic-server-non-block.html" => [ + "doc/man7/ossl-guide-quic-server-non-block.pod" + ], + "doc/html/man7/ossl-guide-tls-client-block.html" => [ + "doc/man7/ossl-guide-tls-client-block.pod" + ], + "doc/html/man7/ossl-guide-tls-client-non-block.html" => [ + "doc/man7/ossl-guide-tls-client-non-block.pod" + ], + "doc/html/man7/ossl-guide-tls-introduction.html" => [ + "doc/man7/ossl-guide-tls-introduction.pod" + ], + "doc/html/man7/ossl-guide-tls-server-block.html" => [ + "doc/man7/ossl-guide-tls-server-block.pod" + ], "doc/html/man7/ossl_store-file.html" => [ "doc/man7/ossl_store-file.pod" ], @@ -13349,6 +15602,9 @@ our %unified_info = ( "doc/html/man7/provider-signature.html" => [ "doc/man7/provider-signature.pod" ], + "doc/html/man7/provider-skeymgmt.html" => [ + "doc/man7/provider-skeymgmt.pod" + ], "doc/html/man7/provider-storemgmt.html" => [ "doc/man7/provider-storemgmt.pod" ], @@ -13358,9 +15614,6 @@ our %unified_info = ( "doc/html/man7/proxy-certificates.html" => [ "doc/man7/proxy-certificates.pod" ], - "doc/html/man7/ssl.html" => [ - "doc/man7/ssl.pod" - ], "doc/html/man7/x509.html" => [ "doc/man7/x509.pod" ], @@ -13508,6 +15761,9 @@ our %unified_info = ( "doc/man/man1/openssl-sess_id.1" => [ "doc/man1/openssl-sess_id.pod" ], + "doc/man/man1/openssl-skeyutl.1" => [ + "doc/man1/openssl-skeyutl.pod" + ], "doc/man/man1/openssl-smime.1" => [ "doc/man1/openssl-smime.pod" ], @@ -13649,6 +15905,9 @@ our %unified_info = ( "doc/man/man3/BIO_get_ex_new_index.3" => [ "doc/man3/BIO_get_ex_new_index.pod" ], + "doc/man/man3/BIO_get_rpoll_descriptor.3" => [ + "doc/man3/BIO_get_rpoll_descriptor.pod" + ], "doc/man/man3/BIO_meth_new.3" => [ "doc/man3/BIO_meth_new.pod" ], @@ -13685,6 +15944,9 @@ our %unified_info = ( "doc/man/man3/BIO_s_datagram.3" => [ "doc/man3/BIO_s_datagram.pod" ], + "doc/man/man3/BIO_s_dgram_pair.3" => [ + "doc/man3/BIO_s_dgram_pair.pod" + ], "doc/man/man3/BIO_s_fd.3" => [ "doc/man3/BIO_s_fd.pod" ], @@ -13700,6 +15962,9 @@ our %unified_info = ( "doc/man/man3/BIO_s_socket.3" => [ "doc/man3/BIO_s_socket.pod" ], + "doc/man/man3/BIO_sendmmsg.3" => [ + "doc/man3/BIO_sendmmsg.pod" + ], "doc/man/man3/BIO_set_callback.3" => [ "doc/man3/BIO_set_callback.pod" ], @@ -13772,6 +16037,9 @@ our %unified_info = ( "doc/man/man3/BUF_MEM_new.3" => [ "doc/man3/BUF_MEM_new.pod" ], + "doc/man/man3/CMAC_CTX.3" => [ + "doc/man3/CMAC_CTX.pod" + ], "doc/man/man3/CMS_EncryptedData_decrypt.3" => [ "doc/man3/CMS_EncryptedData_decrypt.pod" ], @@ -13838,6 +16106,9 @@ our %unified_info = ( "doc/man/man3/CMS_verify_receipt.3" => [ "doc/man3/CMS_verify_receipt.pod" ], + "doc/man/man3/COMP_CTX_new.3" => [ + "doc/man3/COMP_CTX_new.pod" + ], "doc/man/man3/CONF_modules_free.3" => [ "doc/man3/CONF_modules_free.pod" ], @@ -13937,6 +16208,12 @@ our %unified_info = ( "doc/man/man3/DTLS_set_timer_cb.3" => [ "doc/man3/DTLS_set_timer_cb.pod" ], + "doc/man/man3/DTLSv1_get_timeout.3" => [ + "doc/man3/DTLSv1_get_timeout.pod" + ], + "doc/man/man3/DTLSv1_handle_timeout.3" => [ + "doc/man3/DTLSv1_handle_timeout.pod" + ], "doc/man/man3/DTLSv1_listen.3" => [ "doc/man3/DTLSv1_listen.pod" ], @@ -14075,6 +16352,9 @@ our %unified_info = ( "doc/man/man3/EVP_PKEY_CTX_get0_pkey.3" => [ "doc/man3/EVP_PKEY_CTX_get0_pkey.pod" ], + "doc/man/man3/EVP_PKEY_CTX_get_algor.3" => [ + "doc/man3/EVP_PKEY_CTX_get_algor.pod" + ], "doc/man/man3/EVP_PKEY_CTX_new.3" => [ "doc/man3/EVP_PKEY_CTX_new.pod" ], @@ -14192,6 +16472,12 @@ our %unified_info = ( "doc/man/man3/EVP_SIGNATURE.3" => [ "doc/man3/EVP_SIGNATURE.pod" ], + "doc/man/man3/EVP_SKEY.3" => [ + "doc/man3/EVP_SKEY.pod" + ], + "doc/man/man3/EVP_SKEYMGMT.3" => [ + "doc/man3/EVP_SKEYMGMT.pod" + ], "doc/man/man3/EVP_SealInit.3" => [ "doc/man3/EVP_SealInit.pod" ], @@ -14279,6 +16565,9 @@ our %unified_info = ( "doc/man/man3/EVP_whirlpool.3" => [ "doc/man3/EVP_whirlpool.pod" ], + "doc/man/man3/GENERAL_NAME.3" => [ + "doc/man3/GENERAL_NAME.pod" + ], "doc/man/man3/HMAC.3" => [ "doc/man3/HMAC.pod" ], @@ -14351,9 +16640,15 @@ our %unified_info = ( "doc/man/man3/OPENSSL_load_builtin_modules.3" => [ "doc/man3/OPENSSL_load_builtin_modules.pod" ], + "doc/man/man3/OPENSSL_load_u16_le.3" => [ + "doc/man3/OPENSSL_load_u16_le.pod" + ], "doc/man/man3/OPENSSL_malloc.3" => [ "doc/man3/OPENSSL_malloc.pod" ], + "doc/man/man3/OPENSSL_riscvcap.3" => [ + "doc/man3/OPENSSL_riscvcap.pod" + ], "doc/man/man3/OPENSSL_s390xcap.3" => [ "doc/man3/OPENSSL_s390xcap.pod" ], @@ -14369,12 +16664,18 @@ our %unified_info = ( "doc/man/man3/OSSL_CALLBACK.3" => [ "doc/man3/OSSL_CALLBACK.pod" ], + "doc/man/man3/OSSL_CMP_ATAV_set0.3" => [ + "doc/man3/OSSL_CMP_ATAV_set0.pod" + ], "doc/man/man3/OSSL_CMP_CTX_new.3" => [ "doc/man3/OSSL_CMP_CTX_new.pod" ], "doc/man/man3/OSSL_CMP_HDR_get0_transactionID.3" => [ "doc/man3/OSSL_CMP_HDR_get0_transactionID.pod" ], + "doc/man/man3/OSSL_CMP_ITAV_new_caCerts.3" => [ + "doc/man3/OSSL_CMP_ITAV_new_caCerts.pod" + ], "doc/man/man3/OSSL_CMP_ITAV_set0.3" => [ "doc/man3/OSSL_CMP_ITAV_set0.pod" ], @@ -14444,9 +16745,18 @@ our %unified_info = ( "doc/man/man3/OSSL_ENCODER_to_bio.3" => [ "doc/man3/OSSL_ENCODER_to_bio.pod" ], + "doc/man/man3/OSSL_ERR_STATE_save.3" => [ + "doc/man3/OSSL_ERR_STATE_save.pod" + ], "doc/man/man3/OSSL_ESS_check_signing_certs.3" => [ "doc/man3/OSSL_ESS_check_signing_certs.pod" ], + "doc/man/man3/OSSL_GENERAL_NAMES_print.3" => [ + "doc/man3/OSSL_GENERAL_NAMES_print.pod" + ], + "doc/man/man3/OSSL_HPKE_CTX_new.3" => [ + "doc/man3/OSSL_HPKE_CTX_new.pod" + ], "doc/man/man3/OSSL_HTTP_REQ_CTX.3" => [ "doc/man3/OSSL_HTTP_REQ_CTX.pod" ], @@ -14456,12 +16766,24 @@ our %unified_info = ( "doc/man/man3/OSSL_HTTP_transfer.3" => [ "doc/man3/OSSL_HTTP_transfer.pod" ], + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX.3" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX.pod" + ], + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX_print.3" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX_print.pod" + ], + "doc/man/man3/OSSL_INDICATOR_set_callback.3" => [ + "doc/man3/OSSL_INDICATOR_set_callback.pod" + ], "doc/man/man3/OSSL_ITEM.3" => [ "doc/man3/OSSL_ITEM.pod" ], "doc/man/man3/OSSL_LIB_CTX.3" => [ "doc/man3/OSSL_LIB_CTX.pod" ], + "doc/man/man3/OSSL_LIB_CTX_set_conf_diagnostics.3" => [ + "doc/man3/OSSL_LIB_CTX_set_conf_diagnostics.pod" + ], "doc/man/man3/OSSL_PARAM.3" => [ "doc/man3/OSSL_PARAM.pod" ], @@ -14477,9 +16799,15 @@ our %unified_info = ( "doc/man/man3/OSSL_PARAM_int.3" => [ "doc/man3/OSSL_PARAM_int.pod" ], + "doc/man/man3/OSSL_PARAM_print_to_bio.3" => [ + "doc/man3/OSSL_PARAM_print_to_bio.pod" + ], "doc/man/man3/OSSL_PROVIDER.3" => [ "doc/man3/OSSL_PROVIDER.pod" ], + "doc/man/man3/OSSL_QUIC_client_method.3" => [ + "doc/man3/OSSL_QUIC_client_method.pod" + ], "doc/man/man3/OSSL_SELF_TEST_new.3" => [ "doc/man3/OSSL_SELF_TEST_new.pod" ], @@ -14504,6 +16832,9 @@ our %unified_info = ( "doc/man/man3/OSSL_STORE_open.3" => [ "doc/man3/OSSL_STORE_open.pod" ], + "doc/man/man3/OSSL_sleep.3" => [ + "doc/man3/OSSL_sleep.pod" + ], "doc/man/man3/OSSL_trace_enabled.3" => [ "doc/man3/OSSL_trace_enabled.pod" ], @@ -14519,6 +16850,9 @@ our %unified_info = ( "doc/man/man3/OpenSSL_version.3" => [ "doc/man3/OpenSSL_version.pod" ], + "doc/man/man3/PBMAC1_get1_pbkdf2_param.3" => [ + "doc/man3/PBMAC1_get1_pbkdf2_param.pod" + ], "doc/man/man3/PEM_X509_INFO_read_bio_ex.3" => [ "doc/man3/PEM_X509_INFO_read_bio_ex.pod" ], @@ -14555,6 +16889,9 @@ our %unified_info = ( "doc/man/man3/PKCS12_SAFEBAG_get1_cert.3" => [ "doc/man3/PKCS12_SAFEBAG_get1_cert.pod" ], + "doc/man/man3/PKCS12_SAFEBAG_set0_attrs.3" => [ + "doc/man3/PKCS12_SAFEBAG_set0_attrs.pod" + ], "doc/man/man3/PKCS12_add1_attr_by_NID.3" => [ "doc/man3/PKCS12_add1_attr_by_NID.pod" ], @@ -14828,6 +17165,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set0_CA_list.3" => [ "doc/man3/SSL_CTX_set0_CA_list.pod" ], + "doc/man/man3/SSL_CTX_set1_cert_comp_preference.3" => [ + "doc/man3/SSL_CTX_set1_cert_comp_preference.pod" + ], "doc/man/man3/SSL_CTX_set1_curves.3" => [ "doc/man3/SSL_CTX_set1_curves.pod" ], @@ -14867,6 +17207,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_default_passwd_cb.3" => [ "doc/man3/SSL_CTX_set_default_passwd_cb.pod" ], + "doc/man/man3/SSL_CTX_set_domain_flags.3" => [ + "doc/man3/SSL_CTX_set_domain_flags.pod" + ], "doc/man/man3/SSL_CTX_set_generate_session_id.3" => [ "doc/man3/SSL_CTX_set_generate_session_id.pod" ], @@ -14888,6 +17231,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_msg_callback.3" => [ "doc/man3/SSL_CTX_set_msg_callback.pod" ], + "doc/man/man3/SSL_CTX_set_new_pending_conn_cb.3" => [ + "doc/man3/SSL_CTX_set_new_pending_conn_cb.pod" + ], "doc/man/man3/SSL_CTX_set_num_tickets.3" => [ "doc/man3/SSL_CTX_set_num_tickets.pod" ], @@ -15002,6 +17348,9 @@ our %unified_info = ( "doc/man/man3/SSL_accept.3" => [ "doc/man3/SSL_accept.pod" ], + "doc/man/man3/SSL_accept_stream.3" => [ + "doc/man3/SSL_accept_stream.pod" + ], "doc/man/man3/SSL_alert_type_string.3" => [ "doc/man3/SSL_alert_type_string.pod" ], @@ -15029,9 +17378,21 @@ our %unified_info = ( "doc/man/man3/SSL_free.3" => [ "doc/man3/SSL_free.pod" ], + "doc/man/man3/SSL_get0_connection.3" => [ + "doc/man3/SSL_get0_connection.pod" + ], + "doc/man/man3/SSL_get0_group_name.3" => [ + "doc/man3/SSL_get0_group_name.pod" + ], + "doc/man/man3/SSL_get0_peer_rpk.3" => [ + "doc/man3/SSL_get0_peer_rpk.pod" + ], "doc/man/man3/SSL_get0_peer_scts.3" => [ "doc/man3/SSL_get0_peer_scts.pod" ], + "doc/man/man3/SSL_get1_builtin_sigalgs.3" => [ + "doc/man3/SSL_get1_builtin_sigalgs.pod" + ], "doc/man/man3/SSL_get_SSL_CTX.3" => [ "doc/man3/SSL_get_SSL_CTX.pod" ], @@ -15047,6 +17408,9 @@ our %unified_info = ( "doc/man/man3/SSL_get_client_random.3" => [ "doc/man3/SSL_get_client_random.pod" ], + "doc/man/man3/SSL_get_conn_close_info.3" => [ + "doc/man3/SSL_get_conn_close_info.pod" + ], "doc/man/man3/SSL_get_current_cipher.3" => [ "doc/man3/SSL_get_current_cipher.pod" ], @@ -15056,12 +17420,18 @@ our %unified_info = ( "doc/man/man3/SSL_get_error.3" => [ "doc/man3/SSL_get_error.pod" ], + "doc/man/man3/SSL_get_event_timeout.3" => [ + "doc/man3/SSL_get_event_timeout.pod" + ], "doc/man/man3/SSL_get_extms_support.3" => [ "doc/man3/SSL_get_extms_support.pod" ], "doc/man/man3/SSL_get_fd.3" => [ "doc/man3/SSL_get_fd.pod" ], + "doc/man/man3/SSL_get_handshake_rtt.3" => [ + "doc/man3/SSL_get_handshake_rtt.pod" + ], "doc/man/man3/SSL_get_peer_cert_chain.3" => [ "doc/man3/SSL_get_peer_cert_chain.pod" ], @@ -15080,12 +17450,24 @@ our %unified_info = ( "doc/man/man3/SSL_get_rbio.3" => [ "doc/man3/SSL_get_rbio.pod" ], + "doc/man/man3/SSL_get_rpoll_descriptor.3" => [ + "doc/man3/SSL_get_rpoll_descriptor.pod" + ], "doc/man/man3/SSL_get_session.3" => [ "doc/man3/SSL_get_session.pod" ], "doc/man/man3/SSL_get_shared_sigalgs.3" => [ "doc/man3/SSL_get_shared_sigalgs.pod" ], + "doc/man/man3/SSL_get_stream_id.3" => [ + "doc/man3/SSL_get_stream_id.pod" + ], + "doc/man/man3/SSL_get_stream_read_state.3" => [ + "doc/man3/SSL_get_stream_read_state.pod" + ], + "doc/man/man3/SSL_get_value_uint.3" => [ + "doc/man3/SSL_get_value_uint.pod" + ], "doc/man/man3/SSL_get_verify_result.3" => [ "doc/man3/SSL_get_verify_result.pod" ], @@ -15095,9 +17477,15 @@ our %unified_info = ( "doc/man/man3/SSL_group_to_name.3" => [ "doc/man3/SSL_group_to_name.pod" ], + "doc/man/man3/SSL_handle_events.3" => [ + "doc/man3/SSL_handle_events.pod" + ], "doc/man/man3/SSL_in_init.3" => [ "doc/man3/SSL_in_init.pod" ], + "doc/man/man3/SSL_inject_net_dgram.3" => [ + "doc/man3/SSL_inject_net_dgram.pod" + ], "doc/man/man3/SSL_key_update.3" => [ "doc/man3/SSL_key_update.pod" ], @@ -15110,9 +17498,21 @@ our %unified_info = ( "doc/man/man3/SSL_new.3" => [ "doc/man3/SSL_new.pod" ], + "doc/man/man3/SSL_new_domain.3" => [ + "doc/man3/SSL_new_domain.pod" + ], + "doc/man/man3/SSL_new_listener.3" => [ + "doc/man3/SSL_new_listener.pod" + ], + "doc/man/man3/SSL_new_stream.3" => [ + "doc/man3/SSL_new_stream.pod" + ], "doc/man/man3/SSL_pending.3" => [ "doc/man3/SSL_pending.pod" ], + "doc/man/man3/SSL_poll.3" => [ + "doc/man3/SSL_poll.pod" + ], "doc/man/man3/SSL_read.3" => [ "doc/man3/SSL_read.pod" ], @@ -15128,24 +17528,45 @@ our %unified_info = ( "doc/man/man3/SSL_set1_host.3" => [ "doc/man3/SSL_set1_host.pod" ], + "doc/man/man3/SSL_set1_initial_peer_addr.3" => [ + "doc/man3/SSL_set1_initial_peer_addr.pod" + ], + "doc/man/man3/SSL_set1_server_cert_type.3" => [ + "doc/man3/SSL_set1_server_cert_type.pod" + ], "doc/man/man3/SSL_set_async_callback.3" => [ "doc/man3/SSL_set_async_callback.pod" ], "doc/man/man3/SSL_set_bio.3" => [ "doc/man3/SSL_set_bio.pod" ], + "doc/man/man3/SSL_set_blocking_mode.3" => [ + "doc/man3/SSL_set_blocking_mode.pod" + ], "doc/man/man3/SSL_set_connect_state.3" => [ "doc/man3/SSL_set_connect_state.pod" ], + "doc/man/man3/SSL_set_default_stream_mode.3" => [ + "doc/man3/SSL_set_default_stream_mode.pod" + ], "doc/man/man3/SSL_set_fd.3" => [ "doc/man3/SSL_set_fd.pod" ], + "doc/man/man3/SSL_set_incoming_stream_policy.3" => [ + "doc/man3/SSL_set_incoming_stream_policy.pod" + ], + "doc/man/man3/SSL_set_quic_tls_cbs.3" => [ + "doc/man3/SSL_set_quic_tls_cbs.pod" + ], "doc/man/man3/SSL_set_retry_verify.3" => [ "doc/man3/SSL_set_retry_verify.pod" ], "doc/man/man3/SSL_set_session.3" => [ "doc/man3/SSL_set_session.pod" ], + "doc/man/man3/SSL_set_session_secret_cb.3" => [ + "doc/man3/SSL_set_session_secret_cb.pod" + ], "doc/man/man3/SSL_set_shutdown.3" => [ "doc/man3/SSL_set_shutdown.pod" ], @@ -15158,6 +17579,12 @@ our %unified_info = ( "doc/man/man3/SSL_state_string.3" => [ "doc/man3/SSL_state_string.pod" ], + "doc/man/man3/SSL_stream_conclude.3" => [ + "doc/man3/SSL_stream_conclude.pod" + ], + "doc/man/man3/SSL_stream_reset.3" => [ + "doc/man3/SSL_stream_reset.pod" + ], "doc/man/man3/SSL_want.3" => [ "doc/man3/SSL_want.pod" ], @@ -15167,8 +17594,8 @@ our %unified_info = ( "doc/man/man3/TS_RESP_CTX_new.3" => [ "doc/man3/TS_RESP_CTX_new.pod" ], - "doc/man/man3/TS_VERIFY_CTX_set_certs.3" => [ - "doc/man3/TS_VERIFY_CTX_set_certs.pod" + "doc/man/man3/TS_VERIFY_CTX.3" => [ + "doc/man3/TS_VERIFY_CTX.pod" ], "doc/man/man3/UI_STRING.3" => [ "doc/man3/UI_STRING.pod" @@ -15188,6 +17615,21 @@ our %unified_info = ( "doc/man/man3/X509V3_set_ctx.3" => [ "doc/man3/X509V3_set_ctx.pod" ], + "doc/man/man3/X509_ACERT_add1_attr.3" => [ + "doc/man3/X509_ACERT_add1_attr.pod" + ], + "doc/man/man3/X509_ACERT_add_attr_nconf.3" => [ + "doc/man3/X509_ACERT_add_attr_nconf.pod" + ], + "doc/man/man3/X509_ACERT_get0_holder_baseCertId.3" => [ + "doc/man3/X509_ACERT_get0_holder_baseCertId.pod" + ], + "doc/man/man3/X509_ACERT_get_attr.3" => [ + "doc/man3/X509_ACERT_get_attr.pod" + ], + "doc/man/man3/X509_ACERT_print_ex.3" => [ + "doc/man3/X509_ACERT_print_ex.pod" + ], "doc/man/man3/X509_ALGOR_dup.3" => [ "doc/man3/X509_ALGOR_dup.pod" ], @@ -15236,6 +17678,9 @@ our %unified_info = ( "doc/man/man3/X509_SIG_get0.3" => [ "doc/man3/X509_SIG_get0.pod" ], + "doc/man/man3/X509_STORE_CTX_get_by_subject.3" => [ + "doc/man3/X509_STORE_CTX_get_by_subject.pod" + ], "doc/man/man3/X509_STORE_CTX_get_error.3" => [ "doc/man3/X509_STORE_CTX_get_error.pod" ], @@ -15302,6 +17747,9 @@ our %unified_info = ( "doc/man/man3/X509_get0_uids.3" => [ "doc/man3/X509_get0_uids.pod" ], + "doc/man/man3/X509_get_default_cert_file.3" => [ + "doc/man3/X509_get_default_cert_file.pod" + ], "doc/man/man3/X509_get_extension_flags.3" => [ "doc/man3/X509_get_extension_flags.pod" ], @@ -15425,9 +17873,15 @@ our %unified_info = ( "doc/man/man7/EVP_CIPHER-SM4.7" => [ "doc/man7/EVP_CIPHER-SM4.pod" ], + "doc/man/man7/EVP_KDF-ARGON2.7" => [ + "doc/man7/EVP_KDF-ARGON2.pod" + ], "doc/man/man7/EVP_KDF-HKDF.7" => [ "doc/man7/EVP_KDF-HKDF.pod" ], + "doc/man/man7/EVP_KDF-HMAC-DRBG.7" => [ + "doc/man7/EVP_KDF-HMAC-DRBG.pod" + ], "doc/man/man7/EVP_KDF-KB.7" => [ "doc/man7/EVP_KDF-KB.pod" ], @@ -15443,6 +17897,9 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-PKCS12KDF.7" => [ "doc/man7/EVP_KDF-PKCS12KDF.pod" ], + "doc/man/man7/EVP_KDF-PVKKDF.7" => [ + "doc/man7/EVP_KDF-PVKKDF.pod" + ], "doc/man/man7/EVP_KDF-SCRYPT.7" => [ "doc/man7/EVP_KDF-SCRYPT.pod" ], @@ -15467,9 +17924,18 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-X963.7" => [ "doc/man7/EVP_KDF-X963.pod" ], + "doc/man/man7/EVP_KEM-EC.7" => [ + "doc/man7/EVP_KEM-EC.pod" + ], + "doc/man/man7/EVP_KEM-ML-KEM.7" => [ + "doc/man7/EVP_KEM-ML-KEM.pod" + ], "doc/man/man7/EVP_KEM-RSA.7" => [ "doc/man7/EVP_KEM-RSA.pod" ], + "doc/man/man7/EVP_KEM-X25519.7" => [ + "doc/man7/EVP_KEM-X25519.pod" + ], "doc/man/man7/EVP_KEYEXCH-DH.7" => [ "doc/man7/EVP_KEYEXCH-DH.pod" ], @@ -15503,6 +17969,9 @@ our %unified_info = ( "doc/man/man7/EVP_MD-BLAKE2.7" => [ "doc/man7/EVP_MD-BLAKE2.pod" ], + "doc/man/man7/EVP_MD-KECCAK.7" => [ + "doc/man7/EVP_MD-KECCAK.pod" + ], "doc/man/man7/EVP_MD-MD2.7" => [ "doc/man7/EVP_MD-MD2.pod" ], @@ -15560,15 +18029,27 @@ our %unified_info = ( "doc/man/man7/EVP_PKEY-HMAC.7" => [ "doc/man7/EVP_PKEY-HMAC.pod" ], + "doc/man/man7/EVP_PKEY-ML-DSA.7" => [ + "doc/man7/EVP_PKEY-ML-DSA.pod" + ], + "doc/man/man7/EVP_PKEY-ML-KEM.7" => [ + "doc/man7/EVP_PKEY-ML-KEM.pod" + ], "doc/man/man7/EVP_PKEY-RSA.7" => [ "doc/man7/EVP_PKEY-RSA.pod" ], + "doc/man/man7/EVP_PKEY-SLH-DSA.7" => [ + "doc/man7/EVP_PKEY-SLH-DSA.pod" + ], "doc/man/man7/EVP_PKEY-SM2.7" => [ "doc/man7/EVP_PKEY-SM2.pod" ], "doc/man/man7/EVP_PKEY-X25519.7" => [ "doc/man7/EVP_PKEY-X25519.pod" ], + "doc/man/man7/EVP_RAND-CRNG-TEST.7" => [ + "doc/man7/EVP_RAND-CRNG-TEST.pod" + ], "doc/man/man7/EVP_RAND-CTR-DRBG.7" => [ "doc/man7/EVP_RAND-CTR-DRBG.pod" ], @@ -15578,6 +18059,9 @@ our %unified_info = ( "doc/man/man7/EVP_RAND-HMAC-DRBG.7" => [ "doc/man7/EVP_RAND-HMAC-DRBG.pod" ], + "doc/man/man7/EVP_RAND-JITTER.7" => [ + "doc/man7/EVP_RAND-JITTER.pod" + ], "doc/man/man7/EVP_RAND-SEED-SRC.7" => [ "doc/man7/EVP_RAND-SEED-SRC.pod" ], @@ -15599,9 +18083,15 @@ our %unified_info = ( "doc/man/man7/EVP_SIGNATURE-HMAC.7" => [ "doc/man7/EVP_SIGNATURE-HMAC.pod" ], + "doc/man/man7/EVP_SIGNATURE-ML-DSA.7" => [ + "doc/man7/EVP_SIGNATURE-ML-DSA.pod" + ], "doc/man/man7/EVP_SIGNATURE-RSA.7" => [ "doc/man7/EVP_SIGNATURE-RSA.pod" ], + "doc/man/man7/EVP_SIGNATURE-SLH-DSA.7" => [ + "doc/man7/EVP_SIGNATURE-SLH-DSA.pod" + ], "doc/man/man7/OSSL_PROVIDER-FIPS.7" => [ "doc/man7/OSSL_PROVIDER-FIPS.pod" ], @@ -15617,6 +18107,9 @@ our %unified_info = ( "doc/man/man7/OSSL_PROVIDER-null.7" => [ "doc/man7/OSSL_PROVIDER-null.pod" ], + "doc/man/man7/OSSL_STORE-winstore.7" => [ + "doc/man7/OSSL_STORE-winstore.pod" + ], "doc/man/man7/RAND.7" => [ "doc/man7/RAND.pod" ], @@ -15629,9 +18122,6 @@ our %unified_info = ( "doc/man/man7/bio.7" => [ "doc/man7/bio.pod" ], - "doc/man/man7/crypto.7" => [ - "doc/man7/crypto.pod" - ], "doc/man/man7/ct.7" => [ "doc/man7/ct.pod" ], @@ -15662,29 +18152,80 @@ our %unified_info = ( "doc/man/man7/life_cycle-rand.7" => [ "doc/man7/life_cycle-rand.pod" ], - "doc/man/man7/migration_guide.7" => [ - "doc/man7/migration_guide.pod" - ], "doc/man/man7/openssl-core.h.7" => [ "doc/man7/openssl-core.h.pod" ], "doc/man/man7/openssl-core_dispatch.h.7" => [ "doc/man7/openssl-core_dispatch.h.pod" ], - "doc/man/man7/openssl-core_names.h.7" => [ - "doc/man7/openssl-core_names.h.pod" + "doc/man/man7/openssl-core_names.h.7" => [ + "doc/man7/openssl-core_names.h.pod" + ], + "doc/man/man7/openssl-env.7" => [ + "doc/man7/openssl-env.pod" + ], + "doc/man/man7/openssl-glossary.7" => [ + "doc/man7/openssl-glossary.pod" + ], + "doc/man/man7/openssl-qlog.7" => [ + "doc/man7/openssl-qlog.pod" + ], + "doc/man/man7/openssl-quic-concurrency.7" => [ + "doc/man7/openssl-quic-concurrency.pod" + ], + "doc/man/man7/openssl-quic.7" => [ + "doc/man7/openssl-quic.pod" + ], + "doc/man/man7/openssl-threads.7" => [ + "doc/man7/openssl-threads.pod" + ], + "doc/man/man7/openssl_user_macros.7" => [ + "doc/man7/openssl_user_macros.pod" + ], + "doc/man/man7/ossl-guide-introduction.7" => [ + "doc/man7/ossl-guide-introduction.pod" + ], + "doc/man/man7/ossl-guide-libcrypto-introduction.7" => [ + "doc/man7/ossl-guide-libcrypto-introduction.pod" + ], + "doc/man/man7/ossl-guide-libraries-introduction.7" => [ + "doc/man7/ossl-guide-libraries-introduction.pod" + ], + "doc/man/man7/ossl-guide-libssl-introduction.7" => [ + "doc/man7/ossl-guide-libssl-introduction.pod" + ], + "doc/man/man7/ossl-guide-migration.7" => [ + "doc/man7/ossl-guide-migration.pod" + ], + "doc/man/man7/ossl-guide-quic-client-block.7" => [ + "doc/man7/ossl-guide-quic-client-block.pod" + ], + "doc/man/man7/ossl-guide-quic-client-non-block.7" => [ + "doc/man7/ossl-guide-quic-client-non-block.pod" + ], + "doc/man/man7/ossl-guide-quic-introduction.7" => [ + "doc/man7/ossl-guide-quic-introduction.pod" + ], + "doc/man/man7/ossl-guide-quic-multi-stream.7" => [ + "doc/man7/ossl-guide-quic-multi-stream.pod" + ], + "doc/man/man7/ossl-guide-quic-server-block.7" => [ + "doc/man7/ossl-guide-quic-server-block.pod" ], - "doc/man/man7/openssl-env.7" => [ - "doc/man7/openssl-env.pod" + "doc/man/man7/ossl-guide-quic-server-non-block.7" => [ + "doc/man7/ossl-guide-quic-server-non-block.pod" ], - "doc/man/man7/openssl-glossary.7" => [ - "doc/man7/openssl-glossary.pod" + "doc/man/man7/ossl-guide-tls-client-block.7" => [ + "doc/man7/ossl-guide-tls-client-block.pod" ], - "doc/man/man7/openssl-threads.7" => [ - "doc/man7/openssl-threads.pod" + "doc/man/man7/ossl-guide-tls-client-non-block.7" => [ + "doc/man7/ossl-guide-tls-client-non-block.pod" ], - "doc/man/man7/openssl_user_macros.7" => [ - "doc/man7/openssl_user_macros.pod" + "doc/man/man7/ossl-guide-tls-introduction.7" => [ + "doc/man7/ossl-guide-tls-introduction.pod" + ], + "doc/man/man7/ossl-guide-tls-server-block.7" => [ + "doc/man7/ossl-guide-tls-server-block.pod" ], "doc/man/man7/ossl_store-file.7" => [ "doc/man7/ossl_store-file.pod" @@ -15740,6 +18281,9 @@ our %unified_info = ( "doc/man/man7/provider-signature.7" => [ "doc/man7/provider-signature.pod" ], + "doc/man/man7/provider-skeymgmt.7" => [ + "doc/man7/provider-skeymgmt.pod" + ], "doc/man/man7/provider-storemgmt.7" => [ "doc/man7/provider-storemgmt.pod" ], @@ -15749,9 +18293,6 @@ our %unified_info = ( "doc/man/man7/proxy-certificates.7" => [ "doc/man7/proxy-certificates.pod" ], - "doc/man/man7/ssl.7" => [ - "doc/man7/ssl.pod" - ], "doc/man/man7/x509.7" => [ "doc/man7/x509.pod" ], @@ -15887,6 +18428,9 @@ our %unified_info = ( "doc/man1/openssl-sess_id.pod" => [ "doc/man1/openssl-sess_id.pod.in" ], + "doc/man1/openssl-skeyutl.pod" => [ + "doc/man1/openssl-skeyutl.pod.in" + ], "doc/man1/openssl-smime.pod" => [ "doc/man1/openssl-smime.pod.in" ], @@ -15923,12 +18467,30 @@ our %unified_info = ( "engines/e_padlock-x86_64.s" => [ "engines/asm/e_padlock-x86_64.pl" ], + "exporters/OpenSSLConfig.cmake" => [ + "exporters/cmake/OpenSSLConfig.cmake.in" + ], + "exporters/OpenSSLConfigVersion.cmake" => [ + "exporters/cmake/OpenSSLConfigVersion.cmake.in" + ], + "exporters/libcrypto.pc" => [ + "exporters/pkg-config/libcrypto.pc.in" + ], + "exporters/libssl.pc" => [ + "exporters/pkg-config/libssl.pc.in" + ], + "exporters/openssl.pc" => [ + "exporters/pkg-config/openssl.pc.in" + ], "include/crypto/bn_conf.h" => [ "include/crypto/bn_conf.h.in" ], "include/crypto/dso_conf.h" => [ "include/crypto/dso_conf.h.in" ], + "include/internal/param_names.h" => [ + "include/internal/param_names.h.in" + ], "include/openssl/asn1.h" => [ "include/openssl/asn1.h.in" ], @@ -15944,12 +18506,18 @@ our %unified_info = ( "include/openssl/cms.h" => [ "include/openssl/cms.h.in" ], + "include/openssl/comp.h" => [ + "include/openssl/comp.h.in" + ], "include/openssl/conf.h" => [ "include/openssl/conf.h.in" ], "include/openssl/configuration.h" => [ "include/openssl/configuration.h.in" ], + "include/openssl/core_names.h" => [ + "include/openssl/core_names.h.in" + ], "include/openssl/crmf.h" => [ "include/openssl/crmf.h.in" ], @@ -15998,20 +18566,47 @@ our %unified_info = ( "include/openssl/x509.h" => [ "include/openssl/x509.h.in" ], + "include/openssl/x509_acert.h" => [ + "include/openssl/x509_acert.h.in" + ], "include/openssl/x509_vfy.h" => [ "include/openssl/x509_vfy.h.in" ], "include/openssl/x509v3.h" => [ "include/openssl/x509v3.h.in" ], + "installdata.pm" => [ + "util/mkinstallvars.pl", + "\"PREFIX=\$(INSTALLTOP)\"", + "BINDIR=bin", + "\"LIBDIR=\$(LIBDIR)\"", + "\"libdir=\$(libdir)\"", + "INCLUDEDIR=include", + "APPLINKDIR=include/openssl", + "\"ENGINESDIR=\$(ENGINESDIR)\"", + "\"MODULESDIR=\$(MODULESDIR)\"", + "\"PKGCONFIGDIR=\$(PKGCONFIGDIR)\"", + "\"CMAKECONFIGDIR=\$(CMAKECONFIGDIR)\"", + "\"LDLIBS=\$(LIB_EX_LIBS)\"", + "\"VERSION=\$(VERSION)\"" + ], "libcrypto.ld" => [ "util/libcrypto.num", "libcrypto" ], + "libcrypto.pc" => [ + "exporters/pkg-config/libcrypto.pc.in" + ], "libssl.ld" => [ "util/libssl.num", "libssl" ], + "libssl.pc" => [ + "exporters/pkg-config/libssl.pc.in" + ], + "openssl.pc" => [ + "exporters/pkg-config/openssl.pc.in" + ], "providers/common/der/der_digests_gen.c" => [ "providers/common/der/der_digests_gen.c.in" ], @@ -16024,9 +18619,15 @@ our %unified_info = ( "providers/common/der/der_ecx_gen.c" => [ "providers/common/der/der_ecx_gen.c.in" ], + "providers/common/der/der_ml_dsa_gen.c" => [ + "providers/common/der/der_ml_dsa_gen.c.in" + ], "providers/common/der/der_rsa_gen.c" => [ "providers/common/der/der_rsa_gen.c.in" ], + "providers/common/der/der_slh_dsa_gen.c" => [ + "providers/common/der/der_slh_dsa_gen.c.in" + ], "providers/common/der/der_sm2_gen.c" => [ "providers/common/der/der_sm2_gen.c.in" ], @@ -16045,9 +18646,15 @@ our %unified_info = ( "providers/common/include/prov/der_ecx.h" => [ "providers/common/include/prov/der_ecx.h.in" ], + "providers/common/include/prov/der_ml_dsa.h" => [ + "providers/common/include/prov/der_ml_dsa.h.in" + ], "providers/common/include/prov/der_rsa.h" => [ "providers/common/include/prov/der_rsa.h.in" ], + "providers/common/include/prov/der_slh_dsa.h" => [ + "providers/common/include/prov/der_slh_dsa.h.in" + ], "providers/common/include/prov/der_sm2.h" => [ "providers/common/include/prov/der_sm2.h.in" ], @@ -16089,6 +18696,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "buffer" ], + "test/buildtest_byteorder.c" => [ + "test/generate_buildtest.pl", + "byteorder" + ], "test/buildtest_camellia.c" => [ "test/generate_buildtest.pl", "camellia" @@ -16121,10 +18732,6 @@ our %unified_info = ( "test/generate_buildtest.pl", "core_dispatch" ], - "test/buildtest_core_names.c" => [ - "test/generate_buildtest.pl", - "core_names" - ], "test/buildtest_core_object.c" => [ "test/generate_buildtest.pl", "core_object" @@ -16157,6 +18764,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "e_os2" ], + "test/buildtest_e_ostime.c" => [ + "test/generate_buildtest.pl", + "e_ostime" + ], "test/buildtest_ebcdic.c" => [ "test/generate_buildtest.pl", "ebcdic" @@ -16193,6 +18804,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "hmac" ], + "test/buildtest_hpke.c" => [ + "test/generate_buildtest.pl", + "hpke" + ], "test/buildtest_http.c" => [ "test/generate_buildtest.pl", "http" @@ -16201,6 +18816,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "idea" ], + "test/buildtest_indicator.c" => [ + "test/generate_buildtest.pl", + "indicator" + ], "test/buildtest_kdf.c" => [ "test/generate_buildtest.pl", "kdf" @@ -16221,6 +18840,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "mdc2" ], + "test/buildtest_ml_kem.c" => [ + "test/generate_buildtest.pl", + "ml_kem" + ], "test/buildtest_modes.c" => [ "test/generate_buildtest.pl", "modes" @@ -16261,6 +18884,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "provider" ], + "test/buildtest_quic.c" => [ + "test/generate_buildtest.pl", + "quic" + ], "test/buildtest_rand.c" => [ "test/generate_buildtest.pl", "rand" @@ -16317,6 +18944,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "symhacks" ], + "test/buildtest_thread.c" => [ + "test/generate_buildtest.pl", + "thread" + ], "test/buildtest_tls1.c" => [ "test/generate_buildtest.pl", "tls1" @@ -16397,6 +19028,7 @@ our %unified_info = ( "doc/html/man1/openssl-s_server.html", "doc/html/man1/openssl-s_time.html", "doc/html/man1/openssl-sess_id.html", + "doc/html/man1/openssl-skeyutl.html", "doc/html/man1/openssl-smime.html", "doc/html/man1/openssl-speed.html", "doc/html/man1/openssl-spkac.html", @@ -16446,6 +19078,7 @@ our %unified_info = ( "doc/html/man3/BIO_find_type.html", "doc/html/man3/BIO_get_data.html", "doc/html/man3/BIO_get_ex_new_index.html", + "doc/html/man3/BIO_get_rpoll_descriptor.html", "doc/html/man3/BIO_meth_new.html", "doc/html/man3/BIO_new.html", "doc/html/man3/BIO_new_CMS.html", @@ -16458,11 +19091,13 @@ our %unified_info = ( "doc/html/man3/BIO_s_connect.html", "doc/html/man3/BIO_s_core.html", "doc/html/man3/BIO_s_datagram.html", + "doc/html/man3/BIO_s_dgram_pair.html", "doc/html/man3/BIO_s_fd.html", "doc/html/man3/BIO_s_file.html", "doc/html/man3/BIO_s_mem.html", "doc/html/man3/BIO_s_null.html", "doc/html/man3/BIO_s_socket.html", + "doc/html/man3/BIO_sendmmsg.html", "doc/html/man3/BIO_set_callback.html", "doc/html/man3/BIO_should_retry.html", "doc/html/man3/BIO_socket_wait.html", @@ -16487,6 +19122,7 @@ our %unified_info = ( "doc/html/man3/BN_swap.html", "doc/html/man3/BN_zero.html", "doc/html/man3/BUF_MEM_new.html", + "doc/html/man3/CMAC_CTX.html", "doc/html/man3/CMS_EncryptedData_decrypt.html", "doc/html/man3/CMS_EncryptedData_encrypt.html", "doc/html/man3/CMS_EnvelopedData_create.html", @@ -16509,6 +19145,7 @@ our %unified_info = ( "doc/html/man3/CMS_uncompress.html", "doc/html/man3/CMS_verify.html", "doc/html/man3/CMS_verify_receipt.html", + "doc/html/man3/COMP_CTX_new.html", "doc/html/man3/CONF_modules_free.html", "doc/html/man3/CONF_modules_load_file.html", "doc/html/man3/CRYPTO_THREAD_run_once.html", @@ -16542,6 +19179,8 @@ our %unified_info = ( "doc/html/man3/DSA_size.html", "doc/html/man3/DTLS_get_data_mtu.html", "doc/html/man3/DTLS_set_timer_cb.html", + "doc/html/man3/DTLSv1_get_timeout.html", + "doc/html/man3/DTLSv1_handle_timeout.html", "doc/html/man3/DTLSv1_listen.html", "doc/html/man3/ECDSA_SIG_new.html", "doc/html/man3/ECDSA_sign.html", @@ -16588,6 +19227,7 @@ our %unified_info = ( "doc/html/man3/EVP_PKEY_CTX_ctrl.html", "doc/html/man3/EVP_PKEY_CTX_get0_libctx.html", "doc/html/man3/EVP_PKEY_CTX_get0_pkey.html", + "doc/html/man3/EVP_PKEY_CTX_get_algor.html", "doc/html/man3/EVP_PKEY_CTX_new.html", "doc/html/man3/EVP_PKEY_CTX_set1_pbe_pass.html", "doc/html/man3/EVP_PKEY_CTX_set_hkdf_md.html", @@ -16627,6 +19267,8 @@ our %unified_info = ( "doc/html/man3/EVP_PKEY_verify_recover.html", "doc/html/man3/EVP_RAND.html", "doc/html/man3/EVP_SIGNATURE.html", + "doc/html/man3/EVP_SKEY.html", + "doc/html/man3/EVP_SKEYMGMT.html", "doc/html/man3/EVP_SealInit.html", "doc/html/man3/EVP_SignInit.html", "doc/html/man3/EVP_VerifyInit.html", @@ -16656,6 +19298,7 @@ our %unified_info = ( "doc/html/man3/EVP_sm3.html", "doc/html/man3/EVP_sm4_cbc.html", "doc/html/man3/EVP_whirlpool.html", + "doc/html/man3/GENERAL_NAME.html", "doc/html/man3/HMAC.html", "doc/html/man3/MD5.html", "doc/html/man3/MDC2_Init.html", @@ -16680,14 +19323,18 @@ our %unified_info = ( "doc/html/man3/OPENSSL_init_ssl.html", "doc/html/man3/OPENSSL_instrument_bus.html", "doc/html/man3/OPENSSL_load_builtin_modules.html", + "doc/html/man3/OPENSSL_load_u16_le.html", "doc/html/man3/OPENSSL_malloc.html", + "doc/html/man3/OPENSSL_riscvcap.html", "doc/html/man3/OPENSSL_s390xcap.html", "doc/html/man3/OPENSSL_secure_malloc.html", "doc/html/man3/OPENSSL_strcasecmp.html", "doc/html/man3/OSSL_ALGORITHM.html", "doc/html/man3/OSSL_CALLBACK.html", + "doc/html/man3/OSSL_CMP_ATAV_set0.html", "doc/html/man3/OSSL_CMP_CTX_new.html", "doc/html/man3/OSSL_CMP_HDR_get0_transactionID.html", + "doc/html/man3/OSSL_CMP_ITAV_new_caCerts.html", "doc/html/man3/OSSL_CMP_ITAV_set0.html", "doc/html/man3/OSSL_CMP_MSG_get0_header.html", "doc/html/man3/OSSL_CMP_MSG_http_perform.html", @@ -16711,18 +19358,27 @@ our %unified_info = ( "doc/html/man3/OSSL_ENCODER_CTX.html", "doc/html/man3/OSSL_ENCODER_CTX_new_for_pkey.html", "doc/html/man3/OSSL_ENCODER_to_bio.html", + "doc/html/man3/OSSL_ERR_STATE_save.html", "doc/html/man3/OSSL_ESS_check_signing_certs.html", + "doc/html/man3/OSSL_GENERAL_NAMES_print.html", + "doc/html/man3/OSSL_HPKE_CTX_new.html", "doc/html/man3/OSSL_HTTP_REQ_CTX.html", "doc/html/man3/OSSL_HTTP_parse_url.html", "doc/html/man3/OSSL_HTTP_transfer.html", + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX.html", + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX_print.html", + "doc/html/man3/OSSL_INDICATOR_set_callback.html", "doc/html/man3/OSSL_ITEM.html", "doc/html/man3/OSSL_LIB_CTX.html", + "doc/html/man3/OSSL_LIB_CTX_set_conf_diagnostics.html", "doc/html/man3/OSSL_PARAM.html", "doc/html/man3/OSSL_PARAM_BLD.html", "doc/html/man3/OSSL_PARAM_allocate_from_text.html", "doc/html/man3/OSSL_PARAM_dup.html", "doc/html/man3/OSSL_PARAM_int.html", + "doc/html/man3/OSSL_PARAM_print_to_bio.html", "doc/html/man3/OSSL_PROVIDER.html", + "doc/html/man3/OSSL_QUIC_client_method.html", "doc/html/man3/OSSL_SELF_TEST_new.html", "doc/html/man3/OSSL_SELF_TEST_set_callback.html", "doc/html/man3/OSSL_STORE_INFO.html", @@ -16731,11 +19387,13 @@ our %unified_info = ( "doc/html/man3/OSSL_STORE_attach.html", "doc/html/man3/OSSL_STORE_expect.html", "doc/html/man3/OSSL_STORE_open.html", + "doc/html/man3/OSSL_sleep.html", "doc/html/man3/OSSL_trace_enabled.html", "doc/html/man3/OSSL_trace_get_category_num.html", "doc/html/man3/OSSL_trace_set_channel.html", "doc/html/man3/OpenSSL_add_all_algorithms.html", "doc/html/man3/OpenSSL_version.html", + "doc/html/man3/PBMAC1_get1_pbkdf2_param.html", "doc/html/man3/PEM_X509_INFO_read_bio_ex.html", "doc/html/man3/PEM_bytes_read_bio.html", "doc/html/man3/PEM_read.html", @@ -16748,6 +19406,7 @@ our %unified_info = ( "doc/html/man3/PKCS12_SAFEBAG_create_cert.html", "doc/html/man3/PKCS12_SAFEBAG_get0_attrs.html", "doc/html/man3/PKCS12_SAFEBAG_get1_cert.html", + "doc/html/man3/PKCS12_SAFEBAG_set0_attrs.html", "doc/html/man3/PKCS12_add1_attr_by_NID.html", "doc/html/man3/PKCS12_add_CSPName_asc.html", "doc/html/man3/PKCS12_add_cert.html", @@ -16839,6 +19498,7 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_sess_set_get_cb.html", "doc/html/man3/SSL_CTX_sessions.html", "doc/html/man3/SSL_CTX_set0_CA_list.html", + "doc/html/man3/SSL_CTX_set1_cert_comp_preference.html", "doc/html/man3/SSL_CTX_set1_curves.html", "doc/html/man3/SSL_CTX_set1_sigalgs.html", "doc/html/man3/SSL_CTX_set1_verify_cert_store.html", @@ -16852,6 +19512,7 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_ct_validation_callback.html", "doc/html/man3/SSL_CTX_set_ctlog_list_file.html", "doc/html/man3/SSL_CTX_set_default_passwd_cb.html", + "doc/html/man3/SSL_CTX_set_domain_flags.html", "doc/html/man3/SSL_CTX_set_generate_session_id.html", "doc/html/man3/SSL_CTX_set_info_callback.html", "doc/html/man3/SSL_CTX_set_keylog_callback.html", @@ -16859,6 +19520,7 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_min_proto_version.html", "doc/html/man3/SSL_CTX_set_mode.html", "doc/html/man3/SSL_CTX_set_msg_callback.html", + "doc/html/man3/SSL_CTX_set_new_pending_conn_cb.html", "doc/html/man3/SSL_CTX_set_num_tickets.html", "doc/html/man3/SSL_CTX_set_options.html", "doc/html/man3/SSL_CTX_set_psk_client_callback.html", @@ -16897,6 +19559,7 @@ our %unified_info = ( "doc/html/man3/SSL_SESSION_print.html", "doc/html/man3/SSL_SESSION_set1_id.html", "doc/html/man3/SSL_accept.html", + "doc/html/man3/SSL_accept_stream.html", "doc/html/man3/SSL_alert_type_string.html", "doc/html/man3/SSL_alloc_buffers.html", "doc/html/man3/SSL_check_chain.html", @@ -16906,59 +19569,90 @@ our %unified_info = ( "doc/html/man3/SSL_export_keying_material.html", "doc/html/man3/SSL_extension_supported.html", "doc/html/man3/SSL_free.html", + "doc/html/man3/SSL_get0_connection.html", + "doc/html/man3/SSL_get0_group_name.html", + "doc/html/man3/SSL_get0_peer_rpk.html", "doc/html/man3/SSL_get0_peer_scts.html", + "doc/html/man3/SSL_get1_builtin_sigalgs.html", "doc/html/man3/SSL_get_SSL_CTX.html", "doc/html/man3/SSL_get_all_async_fds.html", "doc/html/man3/SSL_get_certificate.html", "doc/html/man3/SSL_get_ciphers.html", "doc/html/man3/SSL_get_client_random.html", + "doc/html/man3/SSL_get_conn_close_info.html", "doc/html/man3/SSL_get_current_cipher.html", "doc/html/man3/SSL_get_default_timeout.html", "doc/html/man3/SSL_get_error.html", + "doc/html/man3/SSL_get_event_timeout.html", "doc/html/man3/SSL_get_extms_support.html", "doc/html/man3/SSL_get_fd.html", + "doc/html/man3/SSL_get_handshake_rtt.html", "doc/html/man3/SSL_get_peer_cert_chain.html", "doc/html/man3/SSL_get_peer_certificate.html", "doc/html/man3/SSL_get_peer_signature_nid.html", "doc/html/man3/SSL_get_peer_tmp_key.html", "doc/html/man3/SSL_get_psk_identity.html", "doc/html/man3/SSL_get_rbio.html", + "doc/html/man3/SSL_get_rpoll_descriptor.html", "doc/html/man3/SSL_get_session.html", "doc/html/man3/SSL_get_shared_sigalgs.html", + "doc/html/man3/SSL_get_stream_id.html", + "doc/html/man3/SSL_get_stream_read_state.html", + "doc/html/man3/SSL_get_value_uint.html", "doc/html/man3/SSL_get_verify_result.html", "doc/html/man3/SSL_get_version.html", "doc/html/man3/SSL_group_to_name.html", + "doc/html/man3/SSL_handle_events.html", "doc/html/man3/SSL_in_init.html", + "doc/html/man3/SSL_inject_net_dgram.html", "doc/html/man3/SSL_key_update.html", "doc/html/man3/SSL_library_init.html", "doc/html/man3/SSL_load_client_CA_file.html", "doc/html/man3/SSL_new.html", + "doc/html/man3/SSL_new_domain.html", + "doc/html/man3/SSL_new_listener.html", + "doc/html/man3/SSL_new_stream.html", "doc/html/man3/SSL_pending.html", + "doc/html/man3/SSL_poll.html", "doc/html/man3/SSL_read.html", "doc/html/man3/SSL_read_early_data.html", "doc/html/man3/SSL_rstate_string.html", "doc/html/man3/SSL_session_reused.html", "doc/html/man3/SSL_set1_host.html", + "doc/html/man3/SSL_set1_initial_peer_addr.html", + "doc/html/man3/SSL_set1_server_cert_type.html", "doc/html/man3/SSL_set_async_callback.html", "doc/html/man3/SSL_set_bio.html", + "doc/html/man3/SSL_set_blocking_mode.html", "doc/html/man3/SSL_set_connect_state.html", + "doc/html/man3/SSL_set_default_stream_mode.html", "doc/html/man3/SSL_set_fd.html", + "doc/html/man3/SSL_set_incoming_stream_policy.html", + "doc/html/man3/SSL_set_quic_tls_cbs.html", "doc/html/man3/SSL_set_retry_verify.html", "doc/html/man3/SSL_set_session.html", + "doc/html/man3/SSL_set_session_secret_cb.html", "doc/html/man3/SSL_set_shutdown.html", "doc/html/man3/SSL_set_verify_result.html", "doc/html/man3/SSL_shutdown.html", "doc/html/man3/SSL_state_string.html", + "doc/html/man3/SSL_stream_conclude.html", + "doc/html/man3/SSL_stream_reset.html", "doc/html/man3/SSL_want.html", "doc/html/man3/SSL_write.html", "doc/html/man3/TS_RESP_CTX_new.html", - "doc/html/man3/TS_VERIFY_CTX_set_certs.html", + "doc/html/man3/TS_VERIFY_CTX.html", "doc/html/man3/UI_STRING.html", "doc/html/man3/UI_UTIL_read_pw.html", "doc/html/man3/UI_create_method.html", "doc/html/man3/UI_new.html", "doc/html/man3/X509V3_get_d2i.html", "doc/html/man3/X509V3_set_ctx.html", + "doc/html/man3/X509_ACERT_add1_attr.html", + "doc/html/man3/X509_ACERT_add_attr_nconf.html", + "doc/html/man3/X509_ACERT_get0_holder_baseCertId.html", + "doc/html/man3/X509_ACERT_get_attr.html", + "doc/html/man3/X509_ACERT_print_ex.html", "doc/html/man3/X509_ALGOR_dup.html", "doc/html/man3/X509_ATTRIBUTE.html", "doc/html/man3/X509_CRL_get0_by_serial.html", @@ -16975,6 +19669,7 @@ our %unified_info = ( "doc/html/man3/X509_REQ_get_attr.html", "doc/html/man3/X509_REQ_get_extensions.html", "doc/html/man3/X509_SIG_get0.html", + "doc/html/man3/X509_STORE_CTX_get_by_subject.html", "doc/html/man3/X509_STORE_CTX_get_error.html", "doc/html/man3/X509_STORE_CTX_new.html", "doc/html/man3/X509_STORE_CTX_set_verify_cb.html", @@ -16997,6 +19692,7 @@ our %unified_info = ( "doc/html/man3/X509_get0_notBefore.html", "doc/html/man3/X509_get0_signature.html", "doc/html/man3/X509_get0_uids.html", + "doc/html/man3/X509_get_default_cert_file.html", "doc/html/man3/X509_get_extension_flags.html", "doc/html/man3/X509_get_pubkey.html", "doc/html/man3/X509_get_serialNumber.html", @@ -17042,12 +19738,15 @@ our %unified_info = ( "doc/html/man7/EVP_CIPHER-RC5.html", "doc/html/man7/EVP_CIPHER-SEED.html", "doc/html/man7/EVP_CIPHER-SM4.html", + "doc/html/man7/EVP_KDF-ARGON2.html", "doc/html/man7/EVP_KDF-HKDF.html", + "doc/html/man7/EVP_KDF-HMAC-DRBG.html", "doc/html/man7/EVP_KDF-KB.html", "doc/html/man7/EVP_KDF-KRB5KDF.html", "doc/html/man7/EVP_KDF-PBKDF1.html", "doc/html/man7/EVP_KDF-PBKDF2.html", "doc/html/man7/EVP_KDF-PKCS12KDF.html", + "doc/html/man7/EVP_KDF-PVKKDF.html", "doc/html/man7/EVP_KDF-SCRYPT.html", "doc/html/man7/EVP_KDF-SS.html", "doc/html/man7/EVP_KDF-SSHKDF.html", @@ -17056,7 +19755,10 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-X942-ASN1.html", "doc/html/man7/EVP_KDF-X942-CONCAT.html", "doc/html/man7/EVP_KDF-X963.html", + "doc/html/man7/EVP_KEM-EC.html", + "doc/html/man7/EVP_KEM-ML-KEM.html", "doc/html/man7/EVP_KEM-RSA.html", + "doc/html/man7/EVP_KEM-X25519.html", "doc/html/man7/EVP_KEYEXCH-DH.html", "doc/html/man7/EVP_KEYEXCH-ECDH.html", "doc/html/man7/EVP_KEYEXCH-X25519.html", @@ -17068,6 +19770,7 @@ our %unified_info = ( "doc/html/man7/EVP_MAC-Poly1305.html", "doc/html/man7/EVP_MAC-Siphash.html", "doc/html/man7/EVP_MD-BLAKE2.html", + "doc/html/man7/EVP_MD-KECCAK.html", "doc/html/man7/EVP_MD-MD2.html", "doc/html/man7/EVP_MD-MD4.html", "doc/html/man7/EVP_MD-MD5-SHA1.html", @@ -17087,12 +19790,17 @@ our %unified_info = ( "doc/html/man7/EVP_PKEY-EC.html", "doc/html/man7/EVP_PKEY-FFC.html", "doc/html/man7/EVP_PKEY-HMAC.html", + "doc/html/man7/EVP_PKEY-ML-DSA.html", + "doc/html/man7/EVP_PKEY-ML-KEM.html", "doc/html/man7/EVP_PKEY-RSA.html", + "doc/html/man7/EVP_PKEY-SLH-DSA.html", "doc/html/man7/EVP_PKEY-SM2.html", "doc/html/man7/EVP_PKEY-X25519.html", + "doc/html/man7/EVP_RAND-CRNG-TEST.html", "doc/html/man7/EVP_RAND-CTR-DRBG.html", "doc/html/man7/EVP_RAND-HASH-DRBG.html", "doc/html/man7/EVP_RAND-HMAC-DRBG.html", + "doc/html/man7/EVP_RAND-JITTER.html", "doc/html/man7/EVP_RAND-SEED-SRC.html", "doc/html/man7/EVP_RAND-TEST-RAND.html", "doc/html/man7/EVP_RAND.html", @@ -17100,17 +19808,19 @@ our %unified_info = ( "doc/html/man7/EVP_SIGNATURE-ECDSA.html", "doc/html/man7/EVP_SIGNATURE-ED25519.html", "doc/html/man7/EVP_SIGNATURE-HMAC.html", + "doc/html/man7/EVP_SIGNATURE-ML-DSA.html", "doc/html/man7/EVP_SIGNATURE-RSA.html", + "doc/html/man7/EVP_SIGNATURE-SLH-DSA.html", "doc/html/man7/OSSL_PROVIDER-FIPS.html", "doc/html/man7/OSSL_PROVIDER-base.html", "doc/html/man7/OSSL_PROVIDER-default.html", "doc/html/man7/OSSL_PROVIDER-legacy.html", "doc/html/man7/OSSL_PROVIDER-null.html", + "doc/html/man7/OSSL_STORE-winstore.html", "doc/html/man7/RAND.html", "doc/html/man7/RSA-PSS.html", "doc/html/man7/X25519.html", "doc/html/man7/bio.html", - "doc/html/man7/crypto.html", "doc/html/man7/ct.html", "doc/html/man7/des_modes.html", "doc/html/man7/evp.html", @@ -17121,14 +19831,31 @@ our %unified_info = ( "doc/html/man7/life_cycle-mac.html", "doc/html/man7/life_cycle-pkey.html", "doc/html/man7/life_cycle-rand.html", - "doc/html/man7/migration_guide.html", "doc/html/man7/openssl-core.h.html", "doc/html/man7/openssl-core_dispatch.h.html", "doc/html/man7/openssl-core_names.h.html", "doc/html/man7/openssl-env.html", "doc/html/man7/openssl-glossary.html", + "doc/html/man7/openssl-qlog.html", + "doc/html/man7/openssl-quic-concurrency.html", + "doc/html/man7/openssl-quic.html", "doc/html/man7/openssl-threads.html", "doc/html/man7/openssl_user_macros.html", + "doc/html/man7/ossl-guide-introduction.html", + "doc/html/man7/ossl-guide-libcrypto-introduction.html", + "doc/html/man7/ossl-guide-libraries-introduction.html", + "doc/html/man7/ossl-guide-libssl-introduction.html", + "doc/html/man7/ossl-guide-migration.html", + "doc/html/man7/ossl-guide-quic-client-block.html", + "doc/html/man7/ossl-guide-quic-client-non-block.html", + "doc/html/man7/ossl-guide-quic-introduction.html", + "doc/html/man7/ossl-guide-quic-multi-stream.html", + "doc/html/man7/ossl-guide-quic-server-block.html", + "doc/html/man7/ossl-guide-quic-server-non-block.html", + "doc/html/man7/ossl-guide-tls-client-block.html", + "doc/html/man7/ossl-guide-tls-client-non-block.html", + "doc/html/man7/ossl-guide-tls-introduction.html", + "doc/html/man7/ossl-guide-tls-server-block.html", "doc/html/man7/ossl_store-file.html", "doc/html/man7/ossl_store.html", "doc/html/man7/passphrase-encoding.html", @@ -17147,10 +19874,10 @@ our %unified_info = ( "doc/html/man7/provider-object.html", "doc/html/man7/provider-rand.html", "doc/html/man7/provider-signature.html", + "doc/html/man7/provider-skeymgmt.html", "doc/html/man7/provider-storemgmt.html", "doc/html/man7/provider.html", "doc/html/man7/proxy-certificates.html", - "doc/html/man7/ssl.html", "doc/html/man7/x509.html" ] }, @@ -17165,12 +19892,21 @@ our %unified_info = ( ] }, "includes" => { + "OpenSSLConfig.cmake" => [ + "." + ], + "OpenSSLConfigVersion.cmake" => [ + "." + ], "apps/asn1parse.o" => [ "apps" ], "apps/ca.o" => [ "apps" ], + "apps/ca_internals_test-bin-ca.o" => [ + "apps" + ], "apps/ciphers.o" => [ "apps" ], @@ -17397,6 +20133,9 @@ our %unified_info = ( "apps/openssl-bin-sess_id.o" => [ "apps" ], + "apps/openssl-bin-skeyutl.o" => [ + "apps" + ], "apps/openssl-bin-smime.o" => [ "apps" ], @@ -17484,6 +20223,9 @@ our %unified_info = ( "apps/sess_id.o" => [ "apps" ], + "apps/skeyutl.o" => [ + "apps" + ], "apps/smime.o" => [ "apps" ], @@ -17538,9 +20280,21 @@ our %unified_info = ( "crypto/aes/libcrypto-lib-aesv8-armx.o" => [ "crypto" ], + "crypto/aes/libcrypto-lib-vpaes-armv8.o" => [ + "crypto" + ], "crypto/aes/libfips-lib-aesv8-armx.o" => [ "crypto" ], + "crypto/aes/libfips-lib-vpaes-armv8.o" => [ + "crypto" + ], + "crypto/aes/vpaes-armv8.o" => [ + "crypto" + ], + "crypto/aes/vpaes-loongarch64.o" => [ + "crypto" + ], "crypto/arm64cpuid.o" => [ "crypto" ], @@ -17598,12 +20352,21 @@ our %unified_info = ( "crypto/chacha/chacha-armv4.o" => [ "crypto" ], + "crypto/chacha/chacha-armv8-sve.o" => [ + "crypto" + ], "crypto/chacha/chacha-armv8.o" => [ "crypto" ], + "crypto/chacha/chacha-loongarch64.o" => [ + "crypto" + ], "crypto/chacha/chacha-s390x.o" => [ "crypto" ], + "crypto/chacha/libcrypto-lib-chacha-armv8-sve.o" => [ + "crypto" + ], "crypto/chacha/libcrypto-lib-chacha-armv8.o" => [ "crypto" ], @@ -17628,6 +20391,12 @@ our %unified_info = ( "crypto/ec/ecp_s390x_nistp.o" => [ "crypto" ], + "crypto/ec/ecp_sm2p256-armv8.o" => [ + "crypto" + ], + "crypto/ec/ecx_key.o" => [ + "crypto" + ], "crypto/ec/ecx_meth.o" => [ "crypto" ], @@ -17637,12 +20406,24 @@ our %unified_info = ( "crypto/ec/libcrypto-lib-ecp_nistz256-armv8.o" => [ "crypto" ], + "crypto/ec/libcrypto-lib-ecp_sm2p256-armv8.o" => [ + "crypto" + ], + "crypto/ec/libcrypto-lib-ecx_key.o" => [ + "crypto" + ], "crypto/ec/libcrypto-lib-ecx_meth.o" => [ "crypto" ], "crypto/ec/libfips-lib-ecp_nistz256-armv8.o" => [ "crypto" ], + "crypto/ec/libfips-lib-ecp_sm2p256-armv8.o" => [ + "crypto" + ], + "crypto/ec/libfips-lib-ecx_key.o" => [ + "crypto" + ], "crypto/evp/e_aes.o" => [ "crypto", "crypto/modes" @@ -17720,9 +20501,21 @@ our %unified_info = ( "crypto/libfips-lib-cpuid.o" => [ "." ], + "crypto/md5/libcrypto-lib-md5-aarch64.o" => [ + "crypto" + ], + "crypto/md5/md5-aarch64.o" => [ + "crypto" + ], + "crypto/md5/md5-loongarch64.o" => [ + "crypto" + ], "crypto/md5/md5-sparcv9.o" => [ "crypto" ], + "crypto/modes/aes-gcm-armv8-unroll8_64.o" => [ + "crypto" + ], "crypto/modes/aes-gcm-armv8_64.o" => [ "crypto" ], @@ -17741,6 +20534,9 @@ our %unified_info = ( "crypto/modes/ghashv8-armx.o" => [ "crypto" ], + "crypto/modes/libcrypto-lib-aes-gcm-armv8-unroll8_64.o" => [ + "crypto" + ], "crypto/modes/libcrypto-lib-aes-gcm-armv8_64.o" => [ "crypto" ], @@ -17750,6 +20546,9 @@ our %unified_info = ( "crypto/modes/libcrypto-lib-ghashv8-armx.o" => [ "crypto" ], + "crypto/modes/libfips-lib-aes-gcm-armv8-unroll8_64.o" => [ + "crypto" + ], "crypto/modes/libfips-lib-aes-gcm-armv8_64.o" => [ "crypto" ], @@ -17759,6 +20558,9 @@ our %unified_info = ( "crypto/modes/libfips-lib-ghashv8-armx.o" => [ "crypto" ], + "crypto/params_idx.c" => [ + "util/perl" + ], "crypto/poly1305/libcrypto-lib-poly1305-armv8.o" => [ "crypto" ], @@ -17783,6 +20585,12 @@ our %unified_info = ( "crypto/sha/keccak1600-armv4.o" => [ "crypto" ], + "crypto/sha/keccak1600-armv8.o" => [ + "crypto" + ], + "crypto/sha/libcrypto-lib-keccak1600-armv8.o" => [ + "crypto" + ], "crypto/sha/libcrypto-lib-sha1-armv8.o" => [ "crypto" ], @@ -17792,6 +20600,9 @@ our %unified_info = ( "crypto/sha/libcrypto-lib-sha512-armv8.o" => [ "crypto" ], + "crypto/sha/libfips-lib-keccak1600-armv8.o" => [ + "crypto" + ], "crypto/sha/libfips-lib-sha1-armv8.o" => [ "crypto" ], @@ -17846,6 +20657,30 @@ our %unified_info = ( "crypto/sha/sha512-sparcv9.o" => [ "crypto" ], + "crypto/sm3/libcrypto-lib-sm3-armv8.o" => [ + "crypto" + ], + "crypto/sm3/sm3-armv8.o" => [ + "crypto" + ], + "crypto/sm4/libcrypto-lib-sm4-armv8.o" => [ + "crypto" + ], + "crypto/sm4/libcrypto-lib-vpsm4-armv8.o" => [ + "crypto" + ], + "crypto/sm4/libcrypto-lib-vpsm4_ex-armv8.o" => [ + "crypto" + ], + "crypto/sm4/sm4-armv8.o" => [ + "crypto" + ], + "crypto/sm4/vpsm4-armv8.o" => [ + "crypto" + ], + "crypto/sm4/vpsm4_ex-armv8.o" => [ + "crypto" + ], "doc/man1/openssl-asn1parse.pod" => [ "doc" ], @@ -17978,6 +20813,9 @@ our %unified_info = ( "doc/man1/openssl-sess_id.pod" => [ "doc" ], + "doc/man1/openssl-skeyutl.pod" => [ + "doc" + ], "doc/man1/openssl-smime.pod" => [ "doc" ], @@ -18005,6 +20843,24 @@ our %unified_info = ( "doc/man1/openssl-x509.pod" => [ "doc" ], + "exporters/OpenSSLConfig.cmake" => [ + "." + ], + "exporters/OpenSSLConfigVersion.cmake" => [ + "." + ], + "exporters/libcrypto.pc" => [ + "." + ], + "exporters/libssl.pc" => [ + "." + ], + "exporters/openssl.pc" => [ + "." + ], + "fuzz/acert-test" => [ + "include" + ], "fuzz/asn1-test" => [ "include" ], @@ -18035,12 +20891,69 @@ our %unified_info = ( "fuzz/ct-test" => [ "include" ], + "fuzz/decoder-test" => [ + "include" + ], + "fuzz/dtlsclient-test" => [ + "include" + ], + "fuzz/dtlsserver-test" => [ + "include" + ], + "fuzz/hashtable-test" => [ + "include" + ], + "fuzz/ml-dsa-test" => [ + "include" + ], + "fuzz/ml-kem-test" => [ + "include" + ], + "fuzz/pem-test" => [ + "include" + ], + "fuzz/provider-test" => [ + "include" + ], + "fuzz/punycode-test" => [ + "include" + ], + "fuzz/quic-client-test" => [ + "include" + ], + "fuzz/quic-lcidm-test" => [ + "include" + ], + "fuzz/quic-rcidm-test" => [ + "include" + ], + "fuzz/quic-server-test" => [ + "include" + ], + "fuzz/quic-srtm-test" => [ + "include" + ], "fuzz/server-test" => [ "include" ], + "fuzz/slh-dsa-test" => [ + "include" + ], + "fuzz/smime-test" => [ + "include" + ], + "fuzz/v3name-test" => [ + "include" + ], "fuzz/x509-test" => [ "include" ], + "include/internal/param_names.h" => [ + "util/perl" + ], + "include/openssl/core_names.h" => [ + "util/perl" + ], "libcrypto" => [ ".", "include", @@ -18051,6 +20964,9 @@ our %unified_info = ( ".", "util/perl/OpenSSL" ], + "libcrypto.pc" => [ + "." + ], "libssl" => [ ".", "include" @@ -18059,6 +20975,12 @@ our %unified_info = ( ".", "util/perl/OpenSSL" ], + "libssl.pc" => [ + "." + ], + "openssl.pc" => [ + "." + ], "providers/common/der/der_digests_gen.c" => [ "providers/common/der" ], @@ -18098,6 +21020,15 @@ our %unified_info = ( "providers/common/der/der_ecx_key.o" => [ "providers/common/include/prov" ], + "providers/common/der/der_ml_dsa_gen.c" => [ + "providers/common/der" + ], + "providers/common/der/der_ml_dsa_gen.o" => [ + "providers/common/include/prov" + ], + "providers/common/der/der_ml_dsa_key.o" => [ + "providers/common/include/prov" + ], "providers/common/der/der_rsa_gen.c" => [ "providers/common/der" ], @@ -18110,6 +21041,15 @@ our %unified_info = ( "providers/common/der/der_rsa_sig.o" => [ "providers/common/include/prov" ], + "providers/common/der/der_slh_dsa_gen.c" => [ + "providers/common/der" + ], + "providers/common/der/der_slh_dsa_gen.o" => [ + "providers/common/include/prov" + ], + "providers/common/der/der_slh_dsa_key.o" => [ + "providers/common/include/prov" + ], "providers/common/der/der_sm2_gen.c" => [ "providers/common/der" ], @@ -18155,12 +21095,24 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ecx_key.o" => [ "providers/common/include/prov" ], + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o" => [ + "providers/common/include/prov" + ], + "providers/common/der/libcommon-lib-der_ml_dsa_key.o" => [ + "providers/common/include/prov" + ], "providers/common/der/libcommon-lib-der_rsa_gen.o" => [ "providers/common/include/prov" ], "providers/common/der/libcommon-lib-der_rsa_key.o" => [ "providers/common/include/prov" ], + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o" => [ + "providers/common/include/prov" + ], + "providers/common/der/libcommon-lib-der_slh_dsa_key.o" => [ + "providers/common/include/prov" + ], "providers/common/der/libcommon-lib-der_wrap_gen.o" => [ "providers/common/include/prov" ], @@ -18191,9 +21143,15 @@ our %unified_info = ( "providers/common/include/prov/der_ecx.h" => [ "providers/common/der" ], + "providers/common/include/prov/der_ml_dsa.h" => [ + "providers/common/der" + ], "providers/common/include/prov/der_rsa.h" => [ "providers/common/der" ], + "providers/common/include/prov/der_slh_dsa.h" => [ + "providers/common/der" + ], "providers/common/include/prov/der_sm2.h" => [ "providers/common/der" ], @@ -18236,9 +21194,15 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-eddsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/libdefault-lib-rsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/libdefault-lib-sm2_sig.o" => [ "providers/common/include/prov" ], @@ -18251,12 +21215,24 @@ our %unified_info = ( "providers/implementations/signature/libfips-lib-eddsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/libfips-lib-rsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o" => [ + "providers/common/include/prov" + ], + "providers/implementations/signature/ml_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/rsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/slh_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/sm2_sig.o" => [ "providers/common/include/prov" ], @@ -18269,28 +21245,39 @@ our %unified_info = ( "crypto", "include", "providers/implementations/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" ], "providers/libdefault.a" => [ ".", "crypto", "include", "providers/implementations/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" ], "providers/libfips.a" => [ ".", "crypto", "include", "providers/implementations/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" ], "providers/liblegacy.a" => [ ".", "crypto", "include", "providers/implementations/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" + ], + "providers/libtemplate.a" => [ + "crypto", + "include", + "providers/implementations/include", + "providers/common/include", + "providers/fips/include" ], "test/aborttest" => [ "include", @@ -18359,6 +21346,14 @@ our %unified_info = ( "include", "apps/include" ], + "test/bio_addr_test" => [ + "include", + "apps/include" + ], + "test/bio_base64_test" => [ + "include", + "apps/include" + ], "test/bio_callback_test" => [ "include", "apps/include" @@ -18367,6 +21362,11 @@ our %unified_info = ( "include", "apps/include" ], + "test/bio_dgram_test" => [ + "include", + "apps/include", + "." + ], "test/bio_enc_test" => [ "include", "apps/include" @@ -18375,6 +21375,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/bio_meth_test" => [ + "include", + "apps/include" + ], "test/bio_prefix_text" => [ ".", "include", @@ -18388,6 +21392,11 @@ our %unified_info = ( "include", "apps/include" ], + "test/bio_tfo_test" => [ + "include", + "apps/include", + "." + ], "test/bioprinttest" => [ "include", "apps/include" @@ -18402,6 +21411,9 @@ our %unified_info = ( "include", "apps/include" ], + "test/build_wincrypt_test" => [ + "include" + ], "test/buildtest_c_aes" => [ "include" ], @@ -18417,6 +21429,9 @@ our %unified_info = ( "test/buildtest_c_buffer" => [ "include" ], + "test/buildtest_c_byteorder" => [ + "include" + ], "test/buildtest_c_camellia" => [ "include" ], @@ -18441,9 +21456,6 @@ our %unified_info = ( "test/buildtest_c_core_dispatch" => [ "include" ], - "test/buildtest_c_core_names" => [ - "include" - ], "test/buildtest_c_core_object" => [ "include" ], @@ -18468,6 +21480,9 @@ our %unified_info = ( "test/buildtest_c_e_os2" => [ "include" ], + "test/buildtest_c_e_ostime" => [ + "include" + ], "test/buildtest_c_ebcdic" => [ "include" ], @@ -18495,12 +21510,18 @@ our %unified_info = ( "test/buildtest_c_hmac" => [ "include" ], + "test/buildtest_c_hpke" => [ + "include" + ], "test/buildtest_c_http" => [ "include" ], "test/buildtest_c_idea" => [ "include" ], + "test/buildtest_c_indicator" => [ + "include" + ], "test/buildtest_c_kdf" => [ "include" ], @@ -18516,6 +21537,9 @@ our %unified_info = ( "test/buildtest_c_mdc2" => [ "include" ], + "test/buildtest_c_ml_kem" => [ + "include" + ], "test/buildtest_c_modes" => [ "include" ], @@ -18546,6 +21570,9 @@ our %unified_info = ( "test/buildtest_c_provider" => [ "include" ], + "test/buildtest_c_quic" => [ + "include" + ], "test/buildtest_c_rand" => [ "include" ], @@ -18588,6 +21615,9 @@ our %unified_info = ( "test/buildtest_c_symhacks" => [ "include" ], + "test/buildtest_c_thread" => [ + "include" + ], "test/buildtest_c_tls1" => [ "include" ], @@ -18603,10 +21633,24 @@ our %unified_info = ( "test/buildtest_c_whrlpool" => [ "include" ], + "test/byteorder_test" => [ + "include", + "apps/include" + ], + "test/ca_internals_test" => [ + ".", + "include", + "apps/include" + ], "test/casttest" => [ "include", "apps/include" ], + "test/cert_comp_test" => [ + "include", + "apps/include", + "." + ], "test/chacha_internal_test" => [ ".", "include", @@ -18730,6 +21774,11 @@ our %unified_info = ( "include", "apps/include" ], + "test/decoder_propq_test" => [ + ".", + "include", + "apps/include" + ], "test/defltfips_test" => [ "include", "apps/include" @@ -18745,7 +21794,8 @@ our %unified_info = ( "test/drbgtest" => [ "include", "apps/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" ], "test/dsa_no_digest_size_test" => [ "include", @@ -18788,7 +21838,9 @@ our %unified_info = ( "test/endecode_test" => [ ".", "include", - "apps/include" + "apps/include", + "providers/common/include", + "providers/implementations/include" ], "test/endecoder_legacy_test" => [ ".", @@ -18833,6 +21885,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/evp_pkey_dhkem_test" => [ + "include", + "apps/include" + ], "test/evp_pkey_dparams_test" => [ "include", "apps/include" @@ -18841,10 +21897,18 @@ our %unified_info = ( "include", "apps/include" ], + "test/evp_skey_test" => [ + "include", + "apps/include" + ], "test/evp_test" => [ "include", "apps/include" ], + "test/evp_xof_test" => [ + "include", + "apps/include" + ], "test/exdatatest" => [ "include", "apps/include" @@ -18945,22 +22009,62 @@ our %unified_info = ( ".", "include" ], + "test/helpers/json_test-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/helpers/pkcs12.o" => [ ".", "include" ], + "test/helpers/pkcs12_api_test-bin-pkcs12.o" => [ + ".", + "include" + ], "test/helpers/pkcs12_format_test-bin-pkcs12.o" => [ ".", "include" ], + "test/helpers/quic_multistream_test-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quic_newcid_test-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quic_radix_test-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quic_srt_gen_test-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quicapitest-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quicfaultstest-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/helpers/recordlentest-bin-ssltestlib.o" => [ ".", "include" ], + "test/helpers/rpktest-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/helpers/servername_test-bin-ssltestlib.o" => [ ".", "include" ], + "test/helpers/ssl_handshake_rtt_test-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/helpers/ssl_test-bin-handshake.o" => [ ".", "include" @@ -18994,6 +22098,10 @@ our %unified_info = ( ".", "include" ], + "test/helpers/tls13groupselection_test-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/hexstr_test" => [ ".", "include", @@ -19003,6 +22111,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/hpke_test" => [ + "include", + "apps/include" + ], "test/http_test" => [ "include", "apps/include" @@ -19015,6 +22127,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/json_test" => [ + "include", + "apps/include" + ], "test/keymgmt_internal_test" => [ ".", "include", @@ -19029,6 +22145,10 @@ our %unified_info = ( "apps/include", "." ], + "test/list_test" => [ + "include", + "apps/include" + ], "test/localetest" => [ "include", "apps/include" @@ -19042,10 +22162,27 @@ our %unified_info = ( "include", "apps/include" ], + "test/membio_test" => [ + "include", + "apps/include", + "." + ], "test/memleaktest" => [ "include", "apps/include" ], + "test/ml_dsa_test" => [ + "include", + "apps/include" + ], + "test/ml_kem_evp_extra_test" => [ + "include", + "apps/include" + ], + "test/ml_kem_internal_test" => [ + "include", + "apps/include" + ], "test/modes_internal_test" => [ ".", "include", @@ -19080,6 +22217,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/pairwise_fail_test" => [ + "include", + "apps/include" + ], "test/param_build_test" => [ "include", "apps/include" @@ -19113,6 +22254,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/pkcs12_api_test" => [ + "include", + "apps/include" + ], "test/pkcs12_format_test" => [ "include", "apps/include" @@ -19134,6 +22279,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/priority_queue_test" => [ + "include", + "apps/include" + ], "test/property_test" => [ ".", "include", @@ -19147,6 +22296,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/provider_default_search_path_test" => [ + "include", + "apps/include" + ], "test/provider_fallback_test" => [ "include", "apps/include" @@ -19173,6 +22326,97 @@ our %unified_info = ( "include", "apps/include" ], + "test/quic_ackm_test" => [ + "include", + "apps/include" + ], + "test/quic_cc_test" => [ + "include", + "apps/include" + ], + "test/quic_cfq_test" => [ + "include", + "apps/include" + ], + "test/quic_client_test" => [ + "include", + "apps/include" + ], + "test/quic_fc_test" => [ + "include", + "apps/include" + ], + "test/quic_fifd_test" => [ + "include", + "apps/include" + ], + "test/quic_lcidm_test" => [ + "include", + "apps/include" + ], + "test/quic_multistream_test" => [ + "include", + "apps/include" + ], + "test/quic_newcid_test" => [ + "include", + "apps/include", + "." + ], + "test/quic_qlog_test" => [ + "include", + "apps/include" + ], + "test/quic_radix_test" => [ + "include", + "apps/include" + ], + "test/quic_rcidm_test" => [ + "include", + "apps/include" + ], + "test/quic_record_test" => [ + "include", + "apps/include" + ], + "test/quic_srt_gen_test" => [ + "include", + "apps/include", + "." + ], + "test/quic_srtm_test" => [ + "include", + "apps/include" + ], + "test/quic_stream_test" => [ + "include", + "apps/include" + ], + "test/quic_tserver_test" => [ + "include", + "apps/include" + ], + "test/quic_txp_test" => [ + "include", + "apps/include" + ], + "test/quic_txpim_test" => [ + "include", + "apps/include" + ], + "test/quic_wire_test" => [ + "include", + "apps/include" + ], + "test/quicapitest" => [ + "include", + "apps/include" + ], + "test/quicfaultstest" => [ + "include", + "apps/include", + "." + ], "test/rand_status_test" => [ "include", "apps/include" @@ -19193,14 +22437,20 @@ our %unified_info = ( "include", "apps/include" ], - "test/rdrand_sanitytest" => [ + "test/rdcpu_sanitytest" => [ "include", - "apps/include" + "apps/include", + "crypto" ], "test/recordlentest" => [ "include", "apps/include" ], + "test/rpktest" => [ + "include", + "apps/include", + "." + ], "test/rsa_complex" => [ "include", "apps/include" @@ -19219,6 +22469,15 @@ our %unified_info = ( "include", "apps/include" ], + "test/rsa_x931_test" => [ + ".", + "include", + "apps/include" + ], + "test/safe_math_test" => [ + "include", + "apps/include" + ], "test/sanitytest" => [ "include", "apps/include" @@ -19240,6 +22499,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/slh_dsa_test" => [ + "include", + "apps/include" + ], "test/sm2_internal_test" => [ "include", "apps/include" @@ -19270,6 +22533,11 @@ our %unified_info = ( "include", "apps/include" ], + "test/ssl_handshake_rtt_test" => [ + "include", + "apps/include", + "." + ], "test/ssl_old_test" => [ ".", "include", @@ -19286,6 +22554,7 @@ our %unified_info = ( "test/sslapitest" => [ "include", "apps/include", + "providers/common/include", "." ], "test/sslbuffertest" => [ @@ -19300,6 +22569,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/strtoultest" => [ + "include", + "apps/include" + ], "test/sysdefaulttest" => [ "include", "apps/include" @@ -19308,7 +22581,13 @@ our %unified_info = ( "include", "apps/include" ], + "test/threadpool_test" => [ + ".", + "include", + "apps/include" + ], "test/threadstest" => [ + ".", "include", "apps/include" ], @@ -19320,6 +22599,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/time_test" => [ + "include", + "apps/include" + ], "test/tls13ccstest" => [ "include", "apps/include" @@ -19329,6 +22612,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/tls13groupselection_test" => [ + "include", + "apps/include" + ], "test/trace_api_test" => [ ".", "include", @@ -19367,6 +22654,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/x509_acert_test" => [ + "include", + "apps/include" + ], "test/x509_check_cert_pkey_test" => [ "include", "apps/include" @@ -19380,6 +22671,18 @@ our %unified_info = ( "include", "apps/include" ], + "test/x509_load_cert_file_test" => [ + "include", + "apps/include" + ], + "test/x509_req_test" => [ + "include", + "apps/include" + ], + "test/x509_test" => [ + "include", + "apps/include" + ], "test/x509_time_test" => [ "include", "apps/include" @@ -19401,6 +22704,7 @@ our %unified_info = ( "providers/libdefault.a", "providers/libfips.a", "providers/liblegacy.a", + "providers/libtemplate.a", "test/libtestutil.a" ], "mandocs" => { @@ -19453,6 +22757,7 @@ our %unified_info = ( "doc/man/man1/openssl-s_server.1", "doc/man/man1/openssl-s_time.1", "doc/man/man1/openssl-sess_id.1", + "doc/man/man1/openssl-skeyutl.1", "doc/man/man1/openssl-smime.1", "doc/man/man1/openssl-speed.1", "doc/man/man1/openssl-spkac.1", @@ -19502,6 +22807,7 @@ our %unified_info = ( "doc/man/man3/BIO_find_type.3", "doc/man/man3/BIO_get_data.3", "doc/man/man3/BIO_get_ex_new_index.3", + "doc/man/man3/BIO_get_rpoll_descriptor.3", "doc/man/man3/BIO_meth_new.3", "doc/man/man3/BIO_new.3", "doc/man/man3/BIO_new_CMS.3", @@ -19514,11 +22820,13 @@ our %unified_info = ( "doc/man/man3/BIO_s_connect.3", "doc/man/man3/BIO_s_core.3", "doc/man/man3/BIO_s_datagram.3", + "doc/man/man3/BIO_s_dgram_pair.3", "doc/man/man3/BIO_s_fd.3", "doc/man/man3/BIO_s_file.3", "doc/man/man3/BIO_s_mem.3", "doc/man/man3/BIO_s_null.3", "doc/man/man3/BIO_s_socket.3", + "doc/man/man3/BIO_sendmmsg.3", "doc/man/man3/BIO_set_callback.3", "doc/man/man3/BIO_should_retry.3", "doc/man/man3/BIO_socket_wait.3", @@ -19543,6 +22851,7 @@ our %unified_info = ( "doc/man/man3/BN_swap.3", "doc/man/man3/BN_zero.3", "doc/man/man3/BUF_MEM_new.3", + "doc/man/man3/CMAC_CTX.3", "doc/man/man3/CMS_EncryptedData_decrypt.3", "doc/man/man3/CMS_EncryptedData_encrypt.3", "doc/man/man3/CMS_EnvelopedData_create.3", @@ -19565,6 +22874,7 @@ our %unified_info = ( "doc/man/man3/CMS_uncompress.3", "doc/man/man3/CMS_verify.3", "doc/man/man3/CMS_verify_receipt.3", + "doc/man/man3/COMP_CTX_new.3", "doc/man/man3/CONF_modules_free.3", "doc/man/man3/CONF_modules_load_file.3", "doc/man/man3/CRYPTO_THREAD_run_once.3", @@ -19598,6 +22908,8 @@ our %unified_info = ( "doc/man/man3/DSA_size.3", "doc/man/man3/DTLS_get_data_mtu.3", "doc/man/man3/DTLS_set_timer_cb.3", + "doc/man/man3/DTLSv1_get_timeout.3", + "doc/man/man3/DTLSv1_handle_timeout.3", "doc/man/man3/DTLSv1_listen.3", "doc/man/man3/ECDSA_SIG_new.3", "doc/man/man3/ECDSA_sign.3", @@ -19644,6 +22956,7 @@ our %unified_info = ( "doc/man/man3/EVP_PKEY_CTX_ctrl.3", "doc/man/man3/EVP_PKEY_CTX_get0_libctx.3", "doc/man/man3/EVP_PKEY_CTX_get0_pkey.3", + "doc/man/man3/EVP_PKEY_CTX_get_algor.3", "doc/man/man3/EVP_PKEY_CTX_new.3", "doc/man/man3/EVP_PKEY_CTX_set1_pbe_pass.3", "doc/man/man3/EVP_PKEY_CTX_set_hkdf_md.3", @@ -19683,6 +22996,8 @@ our %unified_info = ( "doc/man/man3/EVP_PKEY_verify_recover.3", "doc/man/man3/EVP_RAND.3", "doc/man/man3/EVP_SIGNATURE.3", + "doc/man/man3/EVP_SKEY.3", + "doc/man/man3/EVP_SKEYMGMT.3", "doc/man/man3/EVP_SealInit.3", "doc/man/man3/EVP_SignInit.3", "doc/man/man3/EVP_VerifyInit.3", @@ -19712,6 +23027,7 @@ our %unified_info = ( "doc/man/man3/EVP_sm3.3", "doc/man/man3/EVP_sm4_cbc.3", "doc/man/man3/EVP_whirlpool.3", + "doc/man/man3/GENERAL_NAME.3", "doc/man/man3/HMAC.3", "doc/man/man3/MD5.3", "doc/man/man3/MDC2_Init.3", @@ -19736,14 +23052,18 @@ our %unified_info = ( "doc/man/man3/OPENSSL_init_ssl.3", "doc/man/man3/OPENSSL_instrument_bus.3", "doc/man/man3/OPENSSL_load_builtin_modules.3", + "doc/man/man3/OPENSSL_load_u16_le.3", "doc/man/man3/OPENSSL_malloc.3", + "doc/man/man3/OPENSSL_riscvcap.3", "doc/man/man3/OPENSSL_s390xcap.3", "doc/man/man3/OPENSSL_secure_malloc.3", "doc/man/man3/OPENSSL_strcasecmp.3", "doc/man/man3/OSSL_ALGORITHM.3", "doc/man/man3/OSSL_CALLBACK.3", + "doc/man/man3/OSSL_CMP_ATAV_set0.3", "doc/man/man3/OSSL_CMP_CTX_new.3", "doc/man/man3/OSSL_CMP_HDR_get0_transactionID.3", + "doc/man/man3/OSSL_CMP_ITAV_new_caCerts.3", "doc/man/man3/OSSL_CMP_ITAV_set0.3", "doc/man/man3/OSSL_CMP_MSG_get0_header.3", "doc/man/man3/OSSL_CMP_MSG_http_perform.3", @@ -19767,18 +23087,27 @@ our %unified_info = ( "doc/man/man3/OSSL_ENCODER_CTX.3", "doc/man/man3/OSSL_ENCODER_CTX_new_for_pkey.3", "doc/man/man3/OSSL_ENCODER_to_bio.3", + "doc/man/man3/OSSL_ERR_STATE_save.3", "doc/man/man3/OSSL_ESS_check_signing_certs.3", + "doc/man/man3/OSSL_GENERAL_NAMES_print.3", + "doc/man/man3/OSSL_HPKE_CTX_new.3", "doc/man/man3/OSSL_HTTP_REQ_CTX.3", "doc/man/man3/OSSL_HTTP_parse_url.3", "doc/man/man3/OSSL_HTTP_transfer.3", + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX.3", + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX_print.3", + "doc/man/man3/OSSL_INDICATOR_set_callback.3", "doc/man/man3/OSSL_ITEM.3", "doc/man/man3/OSSL_LIB_CTX.3", + "doc/man/man3/OSSL_LIB_CTX_set_conf_diagnostics.3", "doc/man/man3/OSSL_PARAM.3", "doc/man/man3/OSSL_PARAM_BLD.3", "doc/man/man3/OSSL_PARAM_allocate_from_text.3", "doc/man/man3/OSSL_PARAM_dup.3", "doc/man/man3/OSSL_PARAM_int.3", + "doc/man/man3/OSSL_PARAM_print_to_bio.3", "doc/man/man3/OSSL_PROVIDER.3", + "doc/man/man3/OSSL_QUIC_client_method.3", "doc/man/man3/OSSL_SELF_TEST_new.3", "doc/man/man3/OSSL_SELF_TEST_set_callback.3", "doc/man/man3/OSSL_STORE_INFO.3", @@ -19787,11 +23116,13 @@ our %unified_info = ( "doc/man/man3/OSSL_STORE_attach.3", "doc/man/man3/OSSL_STORE_expect.3", "doc/man/man3/OSSL_STORE_open.3", + "doc/man/man3/OSSL_sleep.3", "doc/man/man3/OSSL_trace_enabled.3", "doc/man/man3/OSSL_trace_get_category_num.3", "doc/man/man3/OSSL_trace_set_channel.3", "doc/man/man3/OpenSSL_add_all_algorithms.3", "doc/man/man3/OpenSSL_version.3", + "doc/man/man3/PBMAC1_get1_pbkdf2_param.3", "doc/man/man3/PEM_X509_INFO_read_bio_ex.3", "doc/man/man3/PEM_bytes_read_bio.3", "doc/man/man3/PEM_read.3", @@ -19804,6 +23135,7 @@ our %unified_info = ( "doc/man/man3/PKCS12_SAFEBAG_create_cert.3", "doc/man/man3/PKCS12_SAFEBAG_get0_attrs.3", "doc/man/man3/PKCS12_SAFEBAG_get1_cert.3", + "doc/man/man3/PKCS12_SAFEBAG_set0_attrs.3", "doc/man/man3/PKCS12_add1_attr_by_NID.3", "doc/man/man3/PKCS12_add_CSPName_asc.3", "doc/man/man3/PKCS12_add_cert.3", @@ -19895,6 +23227,7 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_sess_set_get_cb.3", "doc/man/man3/SSL_CTX_sessions.3", "doc/man/man3/SSL_CTX_set0_CA_list.3", + "doc/man/man3/SSL_CTX_set1_cert_comp_preference.3", "doc/man/man3/SSL_CTX_set1_curves.3", "doc/man/man3/SSL_CTX_set1_sigalgs.3", "doc/man/man3/SSL_CTX_set1_verify_cert_store.3", @@ -19908,6 +23241,7 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_ct_validation_callback.3", "doc/man/man3/SSL_CTX_set_ctlog_list_file.3", "doc/man/man3/SSL_CTX_set_default_passwd_cb.3", + "doc/man/man3/SSL_CTX_set_domain_flags.3", "doc/man/man3/SSL_CTX_set_generate_session_id.3", "doc/man/man3/SSL_CTX_set_info_callback.3", "doc/man/man3/SSL_CTX_set_keylog_callback.3", @@ -19915,6 +23249,7 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_min_proto_version.3", "doc/man/man3/SSL_CTX_set_mode.3", "doc/man/man3/SSL_CTX_set_msg_callback.3", + "doc/man/man3/SSL_CTX_set_new_pending_conn_cb.3", "doc/man/man3/SSL_CTX_set_num_tickets.3", "doc/man/man3/SSL_CTX_set_options.3", "doc/man/man3/SSL_CTX_set_psk_client_callback.3", @@ -19953,6 +23288,7 @@ our %unified_info = ( "doc/man/man3/SSL_SESSION_print.3", "doc/man/man3/SSL_SESSION_set1_id.3", "doc/man/man3/SSL_accept.3", + "doc/man/man3/SSL_accept_stream.3", "doc/man/man3/SSL_alert_type_string.3", "doc/man/man3/SSL_alloc_buffers.3", "doc/man/man3/SSL_check_chain.3", @@ -19962,59 +23298,90 @@ our %unified_info = ( "doc/man/man3/SSL_export_keying_material.3", "doc/man/man3/SSL_extension_supported.3", "doc/man/man3/SSL_free.3", + "doc/man/man3/SSL_get0_connection.3", + "doc/man/man3/SSL_get0_group_name.3", + "doc/man/man3/SSL_get0_peer_rpk.3", "doc/man/man3/SSL_get0_peer_scts.3", + "doc/man/man3/SSL_get1_builtin_sigalgs.3", "doc/man/man3/SSL_get_SSL_CTX.3", "doc/man/man3/SSL_get_all_async_fds.3", "doc/man/man3/SSL_get_certificate.3", "doc/man/man3/SSL_get_ciphers.3", "doc/man/man3/SSL_get_client_random.3", + "doc/man/man3/SSL_get_conn_close_info.3", "doc/man/man3/SSL_get_current_cipher.3", "doc/man/man3/SSL_get_default_timeout.3", "doc/man/man3/SSL_get_error.3", + "doc/man/man3/SSL_get_event_timeout.3", "doc/man/man3/SSL_get_extms_support.3", "doc/man/man3/SSL_get_fd.3", + "doc/man/man3/SSL_get_handshake_rtt.3", "doc/man/man3/SSL_get_peer_cert_chain.3", "doc/man/man3/SSL_get_peer_certificate.3", "doc/man/man3/SSL_get_peer_signature_nid.3", "doc/man/man3/SSL_get_peer_tmp_key.3", "doc/man/man3/SSL_get_psk_identity.3", "doc/man/man3/SSL_get_rbio.3", + "doc/man/man3/SSL_get_rpoll_descriptor.3", "doc/man/man3/SSL_get_session.3", "doc/man/man3/SSL_get_shared_sigalgs.3", + "doc/man/man3/SSL_get_stream_id.3", + "doc/man/man3/SSL_get_stream_read_state.3", + "doc/man/man3/SSL_get_value_uint.3", "doc/man/man3/SSL_get_verify_result.3", "doc/man/man3/SSL_get_version.3", "doc/man/man3/SSL_group_to_name.3", + "doc/man/man3/SSL_handle_events.3", "doc/man/man3/SSL_in_init.3", + "doc/man/man3/SSL_inject_net_dgram.3", "doc/man/man3/SSL_key_update.3", "doc/man/man3/SSL_library_init.3", "doc/man/man3/SSL_load_client_CA_file.3", "doc/man/man3/SSL_new.3", + "doc/man/man3/SSL_new_domain.3", + "doc/man/man3/SSL_new_listener.3", + "doc/man/man3/SSL_new_stream.3", "doc/man/man3/SSL_pending.3", + "doc/man/man3/SSL_poll.3", "doc/man/man3/SSL_read.3", "doc/man/man3/SSL_read_early_data.3", "doc/man/man3/SSL_rstate_string.3", "doc/man/man3/SSL_session_reused.3", "doc/man/man3/SSL_set1_host.3", + "doc/man/man3/SSL_set1_initial_peer_addr.3", + "doc/man/man3/SSL_set1_server_cert_type.3", "doc/man/man3/SSL_set_async_callback.3", "doc/man/man3/SSL_set_bio.3", + "doc/man/man3/SSL_set_blocking_mode.3", "doc/man/man3/SSL_set_connect_state.3", + "doc/man/man3/SSL_set_default_stream_mode.3", "doc/man/man3/SSL_set_fd.3", + "doc/man/man3/SSL_set_incoming_stream_policy.3", + "doc/man/man3/SSL_set_quic_tls_cbs.3", "doc/man/man3/SSL_set_retry_verify.3", "doc/man/man3/SSL_set_session.3", + "doc/man/man3/SSL_set_session_secret_cb.3", "doc/man/man3/SSL_set_shutdown.3", "doc/man/man3/SSL_set_verify_result.3", "doc/man/man3/SSL_shutdown.3", "doc/man/man3/SSL_state_string.3", + "doc/man/man3/SSL_stream_conclude.3", + "doc/man/man3/SSL_stream_reset.3", "doc/man/man3/SSL_want.3", "doc/man/man3/SSL_write.3", "doc/man/man3/TS_RESP_CTX_new.3", - "doc/man/man3/TS_VERIFY_CTX_set_certs.3", + "doc/man/man3/TS_VERIFY_CTX.3", "doc/man/man3/UI_STRING.3", "doc/man/man3/UI_UTIL_read_pw.3", "doc/man/man3/UI_create_method.3", "doc/man/man3/UI_new.3", "doc/man/man3/X509V3_get_d2i.3", "doc/man/man3/X509V3_set_ctx.3", + "doc/man/man3/X509_ACERT_add1_attr.3", + "doc/man/man3/X509_ACERT_add_attr_nconf.3", + "doc/man/man3/X509_ACERT_get0_holder_baseCertId.3", + "doc/man/man3/X509_ACERT_get_attr.3", + "doc/man/man3/X509_ACERT_print_ex.3", "doc/man/man3/X509_ALGOR_dup.3", "doc/man/man3/X509_ATTRIBUTE.3", "doc/man/man3/X509_CRL_get0_by_serial.3", @@ -20031,6 +23398,7 @@ our %unified_info = ( "doc/man/man3/X509_REQ_get_attr.3", "doc/man/man3/X509_REQ_get_extensions.3", "doc/man/man3/X509_SIG_get0.3", + "doc/man/man3/X509_STORE_CTX_get_by_subject.3", "doc/man/man3/X509_STORE_CTX_get_error.3", "doc/man/man3/X509_STORE_CTX_new.3", "doc/man/man3/X509_STORE_CTX_set_verify_cb.3", @@ -20053,6 +23421,7 @@ our %unified_info = ( "doc/man/man3/X509_get0_notBefore.3", "doc/man/man3/X509_get0_signature.3", "doc/man/man3/X509_get0_uids.3", + "doc/man/man3/X509_get_default_cert_file.3", "doc/man/man3/X509_get_extension_flags.3", "doc/man/man3/X509_get_pubkey.3", "doc/man/man3/X509_get_serialNumber.3", @@ -20098,12 +23467,15 @@ our %unified_info = ( "doc/man/man7/EVP_CIPHER-RC5.7", "doc/man/man7/EVP_CIPHER-SEED.7", "doc/man/man7/EVP_CIPHER-SM4.7", + "doc/man/man7/EVP_KDF-ARGON2.7", "doc/man/man7/EVP_KDF-HKDF.7", + "doc/man/man7/EVP_KDF-HMAC-DRBG.7", "doc/man/man7/EVP_KDF-KB.7", "doc/man/man7/EVP_KDF-KRB5KDF.7", "doc/man/man7/EVP_KDF-PBKDF1.7", "doc/man/man7/EVP_KDF-PBKDF2.7", "doc/man/man7/EVP_KDF-PKCS12KDF.7", + "doc/man/man7/EVP_KDF-PVKKDF.7", "doc/man/man7/EVP_KDF-SCRYPT.7", "doc/man/man7/EVP_KDF-SS.7", "doc/man/man7/EVP_KDF-SSHKDF.7", @@ -20112,7 +23484,10 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-X942-ASN1.7", "doc/man/man7/EVP_KDF-X942-CONCAT.7", "doc/man/man7/EVP_KDF-X963.7", + "doc/man/man7/EVP_KEM-EC.7", + "doc/man/man7/EVP_KEM-ML-KEM.7", "doc/man/man7/EVP_KEM-RSA.7", + "doc/man/man7/EVP_KEM-X25519.7", "doc/man/man7/EVP_KEYEXCH-DH.7", "doc/man/man7/EVP_KEYEXCH-ECDH.7", "doc/man/man7/EVP_KEYEXCH-X25519.7", @@ -20124,6 +23499,7 @@ our %unified_info = ( "doc/man/man7/EVP_MAC-Poly1305.7", "doc/man/man7/EVP_MAC-Siphash.7", "doc/man/man7/EVP_MD-BLAKE2.7", + "doc/man/man7/EVP_MD-KECCAK.7", "doc/man/man7/EVP_MD-MD2.7", "doc/man/man7/EVP_MD-MD4.7", "doc/man/man7/EVP_MD-MD5-SHA1.7", @@ -20143,12 +23519,17 @@ our %unified_info = ( "doc/man/man7/EVP_PKEY-EC.7", "doc/man/man7/EVP_PKEY-FFC.7", "doc/man/man7/EVP_PKEY-HMAC.7", + "doc/man/man7/EVP_PKEY-ML-DSA.7", + "doc/man/man7/EVP_PKEY-ML-KEM.7", "doc/man/man7/EVP_PKEY-RSA.7", + "doc/man/man7/EVP_PKEY-SLH-DSA.7", "doc/man/man7/EVP_PKEY-SM2.7", "doc/man/man7/EVP_PKEY-X25519.7", + "doc/man/man7/EVP_RAND-CRNG-TEST.7", "doc/man/man7/EVP_RAND-CTR-DRBG.7", "doc/man/man7/EVP_RAND-HASH-DRBG.7", "doc/man/man7/EVP_RAND-HMAC-DRBG.7", + "doc/man/man7/EVP_RAND-JITTER.7", "doc/man/man7/EVP_RAND-SEED-SRC.7", "doc/man/man7/EVP_RAND-TEST-RAND.7", "doc/man/man7/EVP_RAND.7", @@ -20156,17 +23537,19 @@ our %unified_info = ( "doc/man/man7/EVP_SIGNATURE-ECDSA.7", "doc/man/man7/EVP_SIGNATURE-ED25519.7", "doc/man/man7/EVP_SIGNATURE-HMAC.7", + "doc/man/man7/EVP_SIGNATURE-ML-DSA.7", "doc/man/man7/EVP_SIGNATURE-RSA.7", + "doc/man/man7/EVP_SIGNATURE-SLH-DSA.7", "doc/man/man7/OSSL_PROVIDER-FIPS.7", "doc/man/man7/OSSL_PROVIDER-base.7", "doc/man/man7/OSSL_PROVIDER-default.7", "doc/man/man7/OSSL_PROVIDER-legacy.7", "doc/man/man7/OSSL_PROVIDER-null.7", + "doc/man/man7/OSSL_STORE-winstore.7", "doc/man/man7/RAND.7", "doc/man/man7/RSA-PSS.7", "doc/man/man7/X25519.7", "doc/man/man7/bio.7", - "doc/man/man7/crypto.7", "doc/man/man7/ct.7", "doc/man/man7/des_modes.7", "doc/man/man7/evp.7", @@ -20177,14 +23560,31 @@ our %unified_info = ( "doc/man/man7/life_cycle-mac.7", "doc/man/man7/life_cycle-pkey.7", "doc/man/man7/life_cycle-rand.7", - "doc/man/man7/migration_guide.7", "doc/man/man7/openssl-core.h.7", "doc/man/man7/openssl-core_dispatch.h.7", "doc/man/man7/openssl-core_names.h.7", "doc/man/man7/openssl-env.7", "doc/man/man7/openssl-glossary.7", + "doc/man/man7/openssl-qlog.7", + "doc/man/man7/openssl-quic-concurrency.7", + "doc/man/man7/openssl-quic.7", "doc/man/man7/openssl-threads.7", "doc/man/man7/openssl_user_macros.7", + "doc/man/man7/ossl-guide-introduction.7", + "doc/man/man7/ossl-guide-libcrypto-introduction.7", + "doc/man/man7/ossl-guide-libraries-introduction.7", + "doc/man/man7/ossl-guide-libssl-introduction.7", + "doc/man/man7/ossl-guide-migration.7", + "doc/man/man7/ossl-guide-quic-client-block.7", + "doc/man/man7/ossl-guide-quic-client-non-block.7", + "doc/man/man7/ossl-guide-quic-introduction.7", + "doc/man/man7/ossl-guide-quic-multi-stream.7", + "doc/man/man7/ossl-guide-quic-server-block.7", + "doc/man/man7/ossl-guide-quic-server-non-block.7", + "doc/man/man7/ossl-guide-tls-client-block.7", + "doc/man/man7/ossl-guide-tls-client-non-block.7", + "doc/man/man7/ossl-guide-tls-introduction.7", + "doc/man/man7/ossl-guide-tls-server-block.7", "doc/man/man7/ossl_store-file.7", "doc/man/man7/ossl_store.7", "doc/man/man7/passphrase-encoding.7", @@ -20203,10 +23603,10 @@ our %unified_info = ( "doc/man/man7/provider-object.7", "doc/man/man7/provider-rand.7", "doc/man/man7/provider-signature.7", + "doc/man/man7/provider-skeymgmt.7", "doc/man/man7/provider-storemgmt.7", "doc/man/man7/provider.7", "doc/man/man7/proxy-certificates.7", - "doc/man/man7/ssl.7", "doc/man/man7/x509.7" ] }, @@ -20218,6 +23618,7 @@ our %unified_info = ( ], "programs" => [ "apps/openssl", + "fuzz/acert-test", "fuzz/asn1-test", "fuzz/asn1parse-test", "fuzz/bignum-test", @@ -20228,7 +23629,24 @@ our %unified_info = ( "fuzz/conf-test", "fuzz/crl-test", "fuzz/ct-test", + "fuzz/decoder-test", + "fuzz/dtlsclient-test", + "fuzz/dtlsserver-test", + "fuzz/hashtable-test", + "fuzz/ml-dsa-test", + "fuzz/ml-kem-test", + "fuzz/pem-test", + "fuzz/provider-test", + "fuzz/punycode-test", + "fuzz/quic-client-test", + "fuzz/quic-lcidm-test", + "fuzz/quic-rcidm-test", + "fuzz/quic-server-test", + "fuzz/quic-srtm-test", "fuzz/server-test", + "fuzz/slh-dsa-test", + "fuzz/smime-test", + "fuzz/v3name-test", "fuzz/x509-test", "test/aborttest", "test/acvp_test", @@ -20246,21 +23664,28 @@ our %unified_info = ( "test/asynctest", "test/bad_dtls_test", "test/bftest", + "test/bio_addr_test", + "test/bio_base64_test", "test/bio_callback_test", "test/bio_core_test", + "test/bio_dgram_test", "test/bio_enc_test", "test/bio_memleak_test", + "test/bio_meth_test", "test/bio_prefix_text", "test/bio_pw_callback_test", "test/bio_readbuffer_test", + "test/bio_tfo_test", "test/bioprinttest", "test/bn_internal_test", "test/bntest", + "test/build_wincrypt_test", "test/buildtest_c_aes", "test/buildtest_c_async", "test/buildtest_c_blowfish", "test/buildtest_c_bn", "test/buildtest_c_buffer", + "test/buildtest_c_byteorder", "test/buildtest_c_camellia", "test/buildtest_c_cast", "test/buildtest_c_cmac", @@ -20269,7 +23694,6 @@ our %unified_info = ( "test/buildtest_c_conftypes", "test/buildtest_c_core", "test/buildtest_c_core_dispatch", - "test/buildtest_c_core_names", "test/buildtest_c_core_object", "test/buildtest_c_cryptoerr_legacy", "test/buildtest_c_decoder", @@ -20278,6 +23702,7 @@ our %unified_info = ( "test/buildtest_c_dsa", "test/buildtest_c_dtls1", "test/buildtest_c_e_os2", + "test/buildtest_c_e_ostime", "test/buildtest_c_ebcdic", "test/buildtest_c_ec", "test/buildtest_c_ecdh", @@ -20287,13 +23712,16 @@ our %unified_info = ( "test/buildtest_c_evp", "test/buildtest_c_fips_names", "test/buildtest_c_hmac", + "test/buildtest_c_hpke", "test/buildtest_c_http", "test/buildtest_c_idea", + "test/buildtest_c_indicator", "test/buildtest_c_kdf", "test/buildtest_c_macros", "test/buildtest_c_md4", "test/buildtest_c_md5", "test/buildtest_c_mdc2", + "test/buildtest_c_ml_kem", "test/buildtest_c_modes", "test/buildtest_c_obj_mac", "test/buildtest_c_objects", @@ -20304,6 +23732,7 @@ our %unified_info = ( "test/buildtest_c_pem2", "test/buildtest_c_prov_ssl", "test/buildtest_c_provider", + "test/buildtest_c_quic", "test/buildtest_c_rand", "test/buildtest_c_rc2", "test/buildtest_c_rc4", @@ -20318,11 +23747,14 @@ our %unified_info = ( "test/buildtest_c_stack", "test/buildtest_c_store", "test/buildtest_c_symhacks", + "test/buildtest_c_thread", "test/buildtest_c_tls1", "test/buildtest_c_ts", "test/buildtest_c_txt_db", "test/buildtest_c_types", "test/buildtest_c_whrlpool", + "test/byteorder_test", + "test/ca_internals_test", "test/casttest", "test/chacha_internal_test", "test/cipher_overhead_test", @@ -20351,6 +23783,7 @@ our %unified_info = ( "test/curve448_internal_test", "test/d2i_test", "test/danetest", + "test/decoder_propq_test", "test/defltfips_test", "test/destest", "test/dhtest", @@ -20375,9 +23808,12 @@ our %unified_info = ( "test/evp_kdf_test", "test/evp_libctx_test", "test/evp_pkey_ctx_new_from_name", + "test/evp_pkey_dhkem_test", "test/evp_pkey_dparams_test", "test/evp_pkey_provided_test", + "test/evp_skey_test", "test/evp_test", + "test/evp_xof_test", "test/exdatatest", "test/exptest", "test/ext_internal_test", @@ -20387,21 +23823,29 @@ our %unified_info = ( "test/gmdifftest", "test/hexstr_test", "test/hmactest", + "test/hpke_test", "test/http_test", "test/ideatest", "test/igetest", + "test/json_test", "test/keymgmt_internal_test", "test/lhash_test", + "test/list_test", "test/localetest", "test/mdc2_internal_test", "test/mdc2test", + "test/membio_test", "test/memleaktest", + "test/ml_dsa_test", + "test/ml_kem_evp_extra_test", + "test/ml_kem_internal_test", "test/modes_internal_test", "test/namemap_internal_test", "test/nodefltctxtest", "test/ocspapitest", "test/ossl_store_test", "test/packettest", + "test/pairwise_fail_test", "test/param_build_test", "test/params_api_test", "test/params_conversion_test", @@ -20410,36 +23854,65 @@ our %unified_info = ( "test/pbetest", "test/pem_read_depr_test", "test/pemtest", + "test/pkcs12_api_test", "test/pkcs12_format_test", "test/pkcs7_test", "test/pkey_meth_kdf_test", "test/pkey_meth_test", "test/poly1305_internal_test", + "test/priority_queue_test", "test/property_test", "test/prov_config_test", "test/provfetchtest", + "test/provider_default_search_path_test", "test/provider_fallback_test", "test/provider_internal_test", "test/provider_pkey_test", "test/provider_status_test", "test/provider_test", "test/punycode_test", + "test/quic_ackm_test", + "test/quic_cc_test", + "test/quic_cfq_test", + "test/quic_client_test", + "test/quic_fc_test", + "test/quic_fifd_test", + "test/quic_lcidm_test", + "test/quic_multistream_test", + "test/quic_newcid_test", + "test/quic_qlog_test", + "test/quic_radix_test", + "test/quic_rcidm_test", + "test/quic_record_test", + "test/quic_srt_gen_test", + "test/quic_srtm_test", + "test/quic_stream_test", + "test/quic_tserver_test", + "test/quic_txp_test", + "test/quic_txpim_test", + "test/quic_wire_test", + "test/quicapitest", + "test/quicfaultstest", "test/rand_status_test", "test/rand_test", "test/rc2test", "test/rc4test", "test/rc5test", - "test/rdrand_sanitytest", + "test/rdcpu_sanitytest", "test/recordlentest", + "test/rpktest", "test/rsa_complex", "test/rsa_mp_test", "test/rsa_sp800_56b_test", "test/rsa_test", + "test/rsa_x931_test", + "test/safe_math_test", "test/sanitytest", "test/secmemtest", "test/servername_test", "test/sha_test", "test/siphash_internal_test", + "test/slh_dsa_test", "test/sm2_internal_test", "test/sm3_internal_test", "test/sm4_internal_test", @@ -20447,6 +23920,7 @@ our %unified_info = ( "test/srptest", "test/ssl_cert_table_internal_test", "test/ssl_ctx_test", + "test/ssl_handshake_rtt_test", "test/ssl_old_test", "test/ssl_test", "test/ssl_test_ctx_test", @@ -20454,13 +23928,17 @@ our %unified_info = ( "test/sslbuffertest", "test/sslcorrupttest", "test/stack_test", + "test/strtoultest", "test/sysdefaulttest", "test/test_test", + "test/threadpool_test", "test/threadstest", "test/threadstest_fips", "test/time_offset_test", + "test/time_test", "test/tls13ccstest", "test/tls13encryptiontest", + "test/tls13groupselection_test", "test/trace_api_test", "test/uitest", "test/upcallstest", @@ -20470,9 +23948,13 @@ our %unified_info = ( "test/verify_extra_test", "test/versions", "test/wpackettest", + "test/x509_acert_test", "test/x509_check_cert_pkey_test", "test/x509_dup_cert_test", "test/x509_internal_test", + "test/x509_load_cert_file_test", + "test/x509_req_test", + "test/x509_test", "test/x509_time_test", "test/x509aux" ], @@ -20488,6 +23970,33 @@ our %unified_info = ( "apps/CA.pl" => [ "apps/CA.pl.in" ], + "apps/ca_internals_test-bin-ca.o" => [ + "apps/ca.c" + ], + "apps/lib/ca_internals_test-bin-app_libctx.o" => [ + "apps/lib/app_libctx.c" + ], + "apps/lib/ca_internals_test-bin-app_provider.o" => [ + "apps/lib/app_provider.c" + ], + "apps/lib/ca_internals_test-bin-app_rand.o" => [ + "apps/lib/app_rand.c" + ], + "apps/lib/ca_internals_test-bin-app_x509.o" => [ + "apps/lib/app_x509.c" + ], + "apps/lib/ca_internals_test-bin-apps.o" => [ + "apps/lib/apps.c" + ], + "apps/lib/ca_internals_test-bin-apps_ui.o" => [ + "apps/lib/apps_ui.c" + ], + "apps/lib/ca_internals_test-bin-engine.o" => [ + "apps/lib/engine.c" + ], + "apps/lib/ca_internals_test-bin-fmt.o" => [ + "apps/lib/fmt.c" + ], "apps/lib/cmp_client_test-bin-cmp_mock_srv.o" => [ "apps/lib/cmp_mock_srv.c" ], @@ -20509,6 +24018,9 @@ our %unified_info = ( "apps/lib/libapps-lib-apps.o" => [ "apps/lib/apps.c" ], + "apps/lib/libapps-lib-apps_opt_printf.o" => [ + "apps/lib/apps_opt_printf.c" + ], "apps/lib/libapps-lib-apps_ui.o" => [ "apps/lib/apps_ui.c" ], @@ -20527,6 +24039,9 @@ our %unified_info = ( "apps/lib/libapps-lib-http_server.o" => [ "apps/lib/http_server.c" ], + "apps/lib/libapps-lib-log.o" => [ + "apps/lib/log.c" + ], "apps/lib/libapps-lib-names.o" => [ "apps/lib/names.c" ], @@ -20558,12 +24073,14 @@ our %unified_info = ( "apps/lib/libapps-lib-app_rand.o", "apps/lib/libapps-lib-app_x509.o", "apps/lib/libapps-lib-apps.o", + "apps/lib/libapps-lib-apps_opt_printf.o", "apps/lib/libapps-lib-apps_ui.o", "apps/lib/libapps-lib-columns.o", "apps/lib/libapps-lib-engine.o", "apps/lib/libapps-lib-engine_loader.o", "apps/lib/libapps-lib-fmt.o", "apps/lib/libapps-lib-http_server.o", + "apps/lib/libapps-lib-log.o", "apps/lib/libapps-lib-names.o", "apps/lib/libapps-lib-opt.o", "apps/lib/libapps-lib-s_cb.o", @@ -20617,6 +24134,7 @@ our %unified_info = ( "apps/openssl-bin-s_server.o", "apps/openssl-bin-s_time.o", "apps/openssl-bin-sess_id.o", + "apps/openssl-bin-skeyutl.o", "apps/openssl-bin-smime.o", "apps/openssl-bin-speed.o", "apps/openssl-bin-spkac.o", @@ -20762,6 +24280,9 @@ our %unified_info = ( "apps/openssl-bin-sess_id.o" => [ "apps/sess_id.c" ], + "apps/openssl-bin-skeyutl.o" => [ + "apps/skeyutl.c" + ], "apps/openssl-bin-smime.o" => [ "apps/smime.c" ], @@ -20819,6 +24340,9 @@ our %unified_info = ( "crypto/aes/libcrypto-lib-aesv8-armx.o" => [ "crypto/aes/aesv8-armx.S" ], + "crypto/aes/libcrypto-lib-bsaes-armv8.o" => [ + "crypto/aes/bsaes-armv8.S" + ], "crypto/aes/libcrypto-lib-vpaes-armv8.o" => [ "crypto/aes/vpaes-armv8.S" ], @@ -20837,12 +24361,21 @@ our %unified_info = ( "crypto/aes/libfips-lib-aesv8-armx.o" => [ "crypto/aes/aesv8-armx.S" ], + "crypto/aes/libfips-lib-bsaes-armv8.o" => [ + "crypto/aes/bsaes-armv8.S" + ], "crypto/aes/libfips-lib-vpaes-armv8.o" => [ "crypto/aes/vpaes-armv8.S" ], "crypto/aria/libcrypto-lib-aria.o" => [ "crypto/aria/aria.c" ], + "crypto/asn1/asn1_time_test-bin-a_time.o" => [ + "crypto/asn1/a_time.c" + ], + "crypto/asn1/ca_internals_test-bin-a_time.o" => [ + "crypto/asn1/a_time.c" + ], "crypto/asn1/libcrypto-lib-a_bitstr.o" => [ "crypto/asn1/a_bitstr.c" ], @@ -21035,6 +24568,9 @@ our %unified_info = ( "crypto/asn1/libcrypto-lib-x_val.o" => [ "crypto/asn1/x_val.c" ], + "crypto/asn1_time_test-bin-ctype.o" => [ + "crypto/ctype.c" + ], "crypto/async/arch/libcrypto-lib-async_null.o" => [ "crypto/async/arch/async_null.c" ], @@ -21128,6 +24664,9 @@ our %unified_info = ( "crypto/bio/libcrypto-lib-bss_dgram.o" => [ "crypto/bio/bss_dgram.c" ], + "crypto/bio/libcrypto-lib-bss_dgram_pair.o" => [ + "crypto/bio/bss_dgram_pair.c" + ], "crypto/bio/libcrypto-lib-bss_fd.o" => [ "crypto/bio/bss_fd.c" ], @@ -21347,6 +24886,9 @@ our %unified_info = ( "crypto/buffer/libfips-lib-buffer.o" => [ "crypto/buffer/buffer.c" ], + "crypto/ca_internals_test-bin-ctype.o" => [ + "crypto/ctype.c" + ], "crypto/camellia/libcrypto-lib-camellia.o" => [ "crypto/camellia/camellia.c" ], @@ -21383,6 +24925,9 @@ our %unified_info = ( "crypto/cast/libcrypto-lib-c_skey.o" => [ "crypto/cast/c_skey.c" ], + "crypto/chacha/libcrypto-lib-chacha-armv8-sve.o" => [ + "crypto/chacha/chacha-armv8-sve.S" + ], "crypto/chacha/libcrypto-lib-chacha-armv8.o" => [ "crypto/chacha/chacha-armv8.S" ], @@ -21404,6 +24949,9 @@ our %unified_info = ( "crypto/cmp/libcrypto-lib-cmp_err.o" => [ "crypto/cmp/cmp_err.c" ], + "crypto/cmp/libcrypto-lib-cmp_genm.o" => [ + "crypto/cmp/cmp_genm.c" + ], "crypto/cmp/libcrypto-lib-cmp_hdr.o" => [ "crypto/cmp/cmp_hdr.c" ], @@ -21899,6 +25447,15 @@ our %unified_info = ( "crypto/ec/libcrypto-lib-ecp_oct.o" => [ "crypto/ec/ecp_oct.c" ], + "crypto/ec/libcrypto-lib-ecp_sm2p256-armv8.o" => [ + "crypto/ec/ecp_sm2p256-armv8.S" + ], + "crypto/ec/libcrypto-lib-ecp_sm2p256.o" => [ + "crypto/ec/ecp_sm2p256.c" + ], + "crypto/ec/libcrypto-lib-ecp_sm2p256_table.o" => [ + "crypto/ec/ecp_sm2p256_table.c" + ], "crypto/ec/libcrypto-lib-ecp_smpl.o" => [ "crypto/ec/ecp_smpl.c" ], @@ -21980,6 +25537,15 @@ our %unified_info = ( "crypto/ec/libfips-lib-ecp_oct.o" => [ "crypto/ec/ecp_oct.c" ], + "crypto/ec/libfips-lib-ecp_sm2p256-armv8.o" => [ + "crypto/ec/ecp_sm2p256-armv8.S" + ], + "crypto/ec/libfips-lib-ecp_sm2p256.o" => [ + "crypto/ec/ecp_sm2p256.c" + ], + "crypto/ec/libfips-lib-ecp_sm2p256_table.o" => [ + "crypto/ec/ecp_sm2p256_table.c" + ], "crypto/ec/libfips-lib-ecp_smpl.o" => [ "crypto/ec/ecp_smpl.c" ], @@ -22091,9 +25657,15 @@ our %unified_info = ( "crypto/err/libcrypto-lib-err_blocks.o" => [ "crypto/err/err_blocks.c" ], + "crypto/err/libcrypto-lib-err_mark.o" => [ + "crypto/err/err_mark.c" + ], "crypto/err/libcrypto-lib-err_prn.o" => [ "crypto/err/err_prn.c" ], + "crypto/err/libcrypto-lib-err_save.o" => [ + "crypto/err/err_save.c" + ], "crypto/ess/libcrypto-lib-ess_asn1.o" => [ "crypto/ess/ess_asn1.c" ], @@ -22340,9 +25912,15 @@ our %unified_info = ( "crypto/evp/libcrypto-lib-pmeth_lib.o" => [ "crypto/evp/pmeth_lib.c" ], + "crypto/evp/libcrypto-lib-s_lib.o" => [ + "crypto/evp/s_lib.c" + ], "crypto/evp/libcrypto-lib-signature.o" => [ "crypto/evp/signature.c" ], + "crypto/evp/libcrypto-lib-skeymgmt_meth.o" => [ + "crypto/evp/skeymgmt_meth.c" + ], "crypto/evp/libfips-lib-asymcipher.o" => [ "crypto/evp/asymcipher.c" ], @@ -22388,9 +25966,6 @@ our %unified_info = ( "crypto/evp/libfips-lib-keymgmt_meth.o" => [ "crypto/evp/keymgmt_meth.c" ], - "crypto/evp/libfips-lib-m_sigver.o" => [ - "crypto/evp/m_sigver.c" - ], "crypto/evp/libfips-lib-mac_lib.o" => [ "crypto/evp/mac_lib.c" ], @@ -22409,9 +25984,15 @@ our %unified_info = ( "crypto/evp/libfips-lib-pmeth_lib.o" => [ "crypto/evp/pmeth_lib.c" ], + "crypto/evp/libfips-lib-s_lib.o" => [ + "crypto/evp/s_lib.c" + ], "crypto/evp/libfips-lib-signature.o" => [ "crypto/evp/signature.c" ], + "crypto/evp/libfips-lib-skeymgmt_meth.o" => [ + "crypto/evp/skeymgmt_meth.c" + ], "crypto/ffc/libcrypto-lib-ffc_backend.o" => [ "crypto/ffc/ffc_backend.c" ], @@ -22454,12 +26035,30 @@ our %unified_info = ( "crypto/ffc/libfips-lib-ffc_params_validate.o" => [ "crypto/ffc/ffc_params_validate.c" ], + "crypto/hashtable/libcrypto-lib-hashfunc.o" => [ + "crypto/hashtable/hashfunc.c" + ], + "crypto/hashtable/libcrypto-lib-hashtable.o" => [ + "crypto/hashtable/hashtable.c" + ], + "crypto/hashtable/libfips-lib-hashfunc.o" => [ + "crypto/hashtable/hashfunc.c" + ], + "crypto/hashtable/libfips-lib-hashtable.o" => [ + "crypto/hashtable/hashtable.c" + ], "crypto/hmac/libcrypto-lib-hmac.o" => [ "crypto/hmac/hmac.c" ], "crypto/hmac/libfips-lib-hmac.o" => [ "crypto/hmac/hmac.c" ], + "crypto/hpke/libcrypto-lib-hpke.o" => [ + "crypto/hpke/hpke.c" + ], + "crypto/hpke/libcrypto-lib-hpke_util.o" => [ + "crypto/hpke/hpke_util.c" + ], "crypto/http/libcrypto-lib-http_client.o" => [ "crypto/http/http_client.c" ], @@ -22508,6 +26107,9 @@ our %unified_info = ( "crypto/libcrypto-lib-bsearch.o" => [ "crypto/bsearch.c" ], + "crypto/libcrypto-lib-comp_methods.o" => [ + "crypto/comp_methods.c" + ], "crypto/libcrypto-lib-context.o" => [ "crypto/context.c" ], @@ -22535,9 +26137,15 @@ our %unified_info = ( "crypto/libcrypto-lib-cversion.o" => [ "crypto/cversion.c" ], + "crypto/libcrypto-lib-defaults.o" => [ + "crypto/defaults.c" + ], "crypto/libcrypto-lib-der_writer.o" => [ "crypto/der_writer.c" ], + "crypto/libcrypto-lib-deterministic_nonce.o" => [ + "crypto/deterministic_nonce.c" + ], "crypto/libcrypto-lib-ebcdic.o" => [ "crypto/ebcdic.c" ], @@ -22547,6 +26155,9 @@ our %unified_info = ( "crypto/libcrypto-lib-getenv.o" => [ "crypto/getenv.c" ], + "crypto/libcrypto-lib-indicator_core.o" => [ + "crypto/indicator_core.c" + ], "crypto/libcrypto-lib-info.o" => [ "crypto/info.c" ], @@ -22595,6 +26206,9 @@ our %unified_info = ( "crypto/libcrypto-lib-params_from_text.o" => [ "crypto/params_from_text.c" ], + "crypto/libcrypto-lib-params_idx.o" => [ + "crypto/params_idx.c" + ], "crypto/libcrypto-lib-passphrase.o" => [ "crypto/passphrase.c" ], @@ -22616,12 +26230,21 @@ our %unified_info = ( "crypto/libcrypto-lib-punycode.o" => [ "crypto/punycode.c" ], + "crypto/libcrypto-lib-quic_vlint.o" => [ + "crypto/quic_vlint.c" + ], "crypto/libcrypto-lib-self_test_core.o" => [ "crypto/self_test_core.c" ], + "crypto/libcrypto-lib-sleep.o" => [ + "crypto/sleep.c" + ], "crypto/libcrypto-lib-sparse_array.o" => [ "crypto/sparse_array.c" ], + "crypto/libcrypto-lib-ssl_err.o" => [ + "crypto/ssl_err.c" + ], "crypto/libcrypto-lib-threads_lib.o" => [ "crypto/threads_lib.c" ], @@ -22634,6 +26257,9 @@ our %unified_info = ( "crypto/libcrypto-lib-threads_win.o" => [ "crypto/threads_win.c" ], + "crypto/libcrypto-lib-time.o" => [ + "crypto/time.c" + ], "crypto/libcrypto-lib-trace.o" => [ "crypto/trace.c" ], @@ -22703,6 +26329,9 @@ our %unified_info = ( "crypto/libfips-lib-params_from_text.o" => [ "crypto/params_from_text.c" ], + "crypto/libfips-lib-params_idx.o" => [ + "crypto/params_idx.c" + ], "crypto/libfips-lib-provider_core.o" => [ "crypto/provider_core.c" ], @@ -22727,12 +26356,18 @@ our %unified_info = ( "crypto/libfips-lib-threads_win.o" => [ "crypto/threads_win.c" ], + "crypto/libfips-lib-time.o" => [ + "crypto/time.c" + ], "crypto/md4/libcrypto-lib-md4_dgst.o" => [ "crypto/md4/md4_dgst.c" ], "crypto/md4/libcrypto-lib-md4_one.o" => [ "crypto/md4/md4_one.c" ], + "crypto/md5/libcrypto-lib-md5-aarch64.o" => [ + "crypto/md5/md5-aarch64.S" + ], "crypto/md5/libcrypto-lib-md5_dgst.o" => [ "crypto/md5/md5_dgst.c" ], @@ -22748,6 +26383,63 @@ our %unified_info = ( "crypto/mdc2/libcrypto-lib-mdc2dgst.o" => [ "crypto/mdc2/mdc2dgst.c" ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_encoders.o" => [ + "crypto/ml_dsa/ml_dsa_encoders.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key.o" => [ + "crypto/ml_dsa/ml_dsa_key.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key_compress.o" => [ + "crypto/ml_dsa/ml_dsa_key_compress.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_matrix.o" => [ + "crypto/ml_dsa/ml_dsa_matrix.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_ntt.o" => [ + "crypto/ml_dsa/ml_dsa_ntt.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_params.o" => [ + "crypto/ml_dsa/ml_dsa_params.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sample.o" => [ + "crypto/ml_dsa/ml_dsa_sample.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sign.o" => [ + "crypto/ml_dsa/ml_dsa_sign.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_encoders.o" => [ + "crypto/ml_dsa/ml_dsa_encoders.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_key.o" => [ + "crypto/ml_dsa/ml_dsa_key.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_key_compress.o" => [ + "crypto/ml_dsa/ml_dsa_key_compress.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_matrix.o" => [ + "crypto/ml_dsa/ml_dsa_matrix.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_ntt.o" => [ + "crypto/ml_dsa/ml_dsa_ntt.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_params.o" => [ + "crypto/ml_dsa/ml_dsa_params.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_sample.o" => [ + "crypto/ml_dsa/ml_dsa_sample.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_sign.o" => [ + "crypto/ml_dsa/ml_dsa_sign.c" + ], + "crypto/ml_kem/libcrypto-lib-ml_kem.o" => [ + "crypto/ml_kem/ml_kem.c" + ], + "crypto/ml_kem/libfips-lib-ml_kem.o" => [ + "crypto/ml_kem/ml_kem.c" + ], + "crypto/modes/libcrypto-lib-aes-gcm-armv8-unroll8_64.o" => [ + "crypto/modes/aes-gcm-armv8-unroll8_64.S" + ], "crypto/modes/libcrypto-lib-aes-gcm-armv8_64.o" => [ "crypto/modes/aes-gcm-armv8_64.S" ], @@ -22787,6 +26479,12 @@ our %unified_info = ( "crypto/modes/libcrypto-lib-xts128.o" => [ "crypto/modes/xts128.c" ], + "crypto/modes/libcrypto-lib-xts128gb.o" => [ + "crypto/modes/xts128gb.c" + ], + "crypto/modes/libfips-lib-aes-gcm-armv8-unroll8_64.o" => [ + "crypto/modes/aes-gcm-armv8-unroll8_64.S" + ], "crypto/modes/libfips-lib-aes-gcm-armv8_64.o" => [ "crypto/modes/aes-gcm-armv8_64.S" ], @@ -22817,6 +26515,9 @@ our %unified_info = ( "crypto/modes/libfips-lib-xts128.o" => [ "crypto/modes/xts128.c" ], + "crypto/modes/libfips-lib-xts128gb.o" => [ + "crypto/modes/xts128gb.c" + ], "crypto/objects/libcrypto-lib-o_names.o" => [ "crypto/objects/o_names.c" ], @@ -22862,6 +26563,9 @@ our %unified_info = ( "crypto/ocsp/libcrypto-lib-v3_ocsp.o" => [ "crypto/ocsp/v3_ocsp.c" ], + "crypto/packettest-bin-quic_vlint.o" => [ + "crypto/quic_vlint.c" + ], "crypto/pem/libcrypto-lib-pem_all.o" => [ "crypto/pem/pem_all.c" ], @@ -23024,6 +26728,9 @@ our %unified_info = ( "crypto/rand/libcrypto-lib-rand_pool.o" => [ "crypto/rand/rand_pool.c" ], + "crypto/rand/libcrypto-lib-rand_uniform.o" => [ + "crypto/rand/rand_uniform.c" + ], "crypto/rand/libcrypto-lib-randfile.o" => [ "crypto/rand/randfile.c" ], @@ -23255,6 +26962,66 @@ our %unified_info = ( "crypto/siphash/libcrypto-lib-siphash.o" => [ "crypto/siphash/siphash.c" ], + "crypto/slh_dsa/libcrypto-lib-slh_adrs.o" => [ + "crypto/slh_dsa/slh_adrs.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_dsa.o" => [ + "crypto/slh_dsa/slh_dsa.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_dsa_hash_ctx.o" => [ + "crypto/slh_dsa/slh_dsa_hash_ctx.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_dsa_key.o" => [ + "crypto/slh_dsa/slh_dsa_key.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_fors.o" => [ + "crypto/slh_dsa/slh_fors.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_hash.o" => [ + "crypto/slh_dsa/slh_hash.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_hypertree.o" => [ + "crypto/slh_dsa/slh_hypertree.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_params.o" => [ + "crypto/slh_dsa/slh_params.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_wots.o" => [ + "crypto/slh_dsa/slh_wots.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_xmss.o" => [ + "crypto/slh_dsa/slh_xmss.c" + ], + "crypto/slh_dsa/libfips-lib-slh_adrs.o" => [ + "crypto/slh_dsa/slh_adrs.c" + ], + "crypto/slh_dsa/libfips-lib-slh_dsa.o" => [ + "crypto/slh_dsa/slh_dsa.c" + ], + "crypto/slh_dsa/libfips-lib-slh_dsa_hash_ctx.o" => [ + "crypto/slh_dsa/slh_dsa_hash_ctx.c" + ], + "crypto/slh_dsa/libfips-lib-slh_dsa_key.o" => [ + "crypto/slh_dsa/slh_dsa_key.c" + ], + "crypto/slh_dsa/libfips-lib-slh_fors.o" => [ + "crypto/slh_dsa/slh_fors.c" + ], + "crypto/slh_dsa/libfips-lib-slh_hash.o" => [ + "crypto/slh_dsa/slh_hash.c" + ], + "crypto/slh_dsa/libfips-lib-slh_hypertree.o" => [ + "crypto/slh_dsa/slh_hypertree.c" + ], + "crypto/slh_dsa/libfips-lib-slh_params.o" => [ + "crypto/slh_dsa/slh_params.c" + ], + "crypto/slh_dsa/libfips-lib-slh_wots.o" => [ + "crypto/slh_dsa/slh_wots.c" + ], + "crypto/slh_dsa/libfips-lib-slh_xmss.o" => [ + "crypto/slh_dsa/slh_xmss.c" + ], "crypto/sm2/libcrypto-lib-sm2_crypt.o" => [ "crypto/sm2/sm2_crypt.c" ], @@ -23270,12 +27037,24 @@ our %unified_info = ( "crypto/sm3/libcrypto-lib-legacy_sm3.o" => [ "crypto/sm3/legacy_sm3.c" ], + "crypto/sm3/libcrypto-lib-sm3-armv8.o" => [ + "crypto/sm3/sm3-armv8.S" + ], "crypto/sm3/libcrypto-lib-sm3.o" => [ "crypto/sm3/sm3.c" ], + "crypto/sm4/libcrypto-lib-sm4-armv8.o" => [ + "crypto/sm4/sm4-armv8.S" + ], "crypto/sm4/libcrypto-lib-sm4.o" => [ "crypto/sm4/sm4.c" ], + "crypto/sm4/libcrypto-lib-vpsm4-armv8.o" => [ + "crypto/sm4/vpsm4-armv8.S" + ], + "crypto/sm4/libcrypto-lib-vpsm4_ex-armv8.o" => [ + "crypto/sm4/vpsm4_ex-armv8.S" + ], "crypto/srp/libcrypto-lib-srp_lib.o" => [ "crypto/srp/srp_lib.c" ], @@ -23309,6 +27088,42 @@ our %unified_info = ( "crypto/store/libcrypto-lib-store_strings.o" => [ "crypto/store/store_strings.c" ], + "crypto/thread/arch/libcrypto-lib-thread_none.o" => [ + "crypto/thread/arch/thread_none.c" + ], + "crypto/thread/arch/libcrypto-lib-thread_posix.o" => [ + "crypto/thread/arch/thread_posix.c" + ], + "crypto/thread/arch/libcrypto-lib-thread_win.o" => [ + "crypto/thread/arch/thread_win.c" + ], + "crypto/thread/arch/libfips-lib-thread_none.o" => [ + "crypto/thread/arch/thread_none.c" + ], + "crypto/thread/arch/libfips-lib-thread_posix.o" => [ + "crypto/thread/arch/thread_posix.c" + ], + "crypto/thread/arch/libfips-lib-thread_win.o" => [ + "crypto/thread/arch/thread_win.c" + ], + "crypto/thread/libcrypto-lib-api.o" => [ + "crypto/thread/api.c" + ], + "crypto/thread/libcrypto-lib-arch.o" => [ + "crypto/thread/arch.c" + ], + "crypto/thread/libcrypto-lib-internal.o" => [ + "crypto/thread/internal.c" + ], + "crypto/thread/libfips-lib-api.o" => [ + "crypto/thread/api.c" + ], + "crypto/thread/libfips-lib-arch.o" => [ + "crypto/thread/arch.c" + ], + "crypto/thread/libfips-lib-internal.o" => [ + "crypto/thread/internal.c" + ], "crypto/ts/libcrypto-lib-ts_asn1.o" => [ "crypto/ts/ts_asn1.c" ], @@ -23393,6 +27208,9 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-pcy_tree.o" => [ "crypto/x509/pcy_tree.c" ], + "crypto/x509/libcrypto-lib-t_acert.o" => [ + "crypto/x509/t_acert.c" + ], "crypto/x509/libcrypto-lib-t_crl.o" => [ "crypto/x509/t_crl.c" ], @@ -23402,6 +27220,12 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-t_x509.o" => [ "crypto/x509/t_x509.c" ], + "crypto/x509/libcrypto-lib-v3_aaa.o" => [ + "crypto/x509/v3_aaa.c" + ], + "crypto/x509/libcrypto-lib-v3_ac_tgt.o" => [ + "crypto/x509/v3_ac_tgt.c" + ], "crypto/x509/libcrypto-lib-v3_addr.o" => [ "crypto/x509/v3_addr.c" ], @@ -23417,6 +27241,21 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_asid.o" => [ "crypto/x509/v3_asid.c" ], + "crypto/x509/libcrypto-lib-v3_attrdesc.o" => [ + "crypto/x509/v3_attrdesc.c" + ], + "crypto/x509/libcrypto-lib-v3_attrmap.o" => [ + "crypto/x509/v3_attrmap.c" + ], + "crypto/x509/libcrypto-lib-v3_audit_id.o" => [ + "crypto/x509/v3_audit_id.c" + ], + "crypto/x509/libcrypto-lib-v3_authattid.o" => [ + "crypto/x509/v3_authattid.c" + ], + "crypto/x509/libcrypto-lib-v3_battcons.o" => [ + "crypto/x509/v3_battcons.c" + ], "crypto/x509/libcrypto-lib-v3_bcons.o" => [ "crypto/x509/v3_bcons.c" ], @@ -23441,15 +27280,24 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_genn.o" => [ "crypto/x509/v3_genn.c" ], + "crypto/x509/libcrypto-lib-v3_group_ac.o" => [ + "crypto/x509/v3_group_ac.c" + ], "crypto/x509/libcrypto-lib-v3_ia5.o" => [ "crypto/x509/v3_ia5.c" ], + "crypto/x509/libcrypto-lib-v3_ind_iss.o" => [ + "crypto/x509/v3_ind_iss.c" + ], "crypto/x509/libcrypto-lib-v3_info.o" => [ "crypto/x509/v3_info.c" ], "crypto/x509/libcrypto-lib-v3_int.o" => [ "crypto/x509/v3_int.c" ], + "crypto/x509/libcrypto-lib-v3_iobo.o" => [ + "crypto/x509/v3_iobo.c" + ], "crypto/x509/libcrypto-lib-v3_ist.o" => [ "crypto/x509/v3_ist.c" ], @@ -23459,6 +27307,12 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_ncons.o" => [ "crypto/x509/v3_ncons.c" ], + "crypto/x509/libcrypto-lib-v3_no_ass.o" => [ + "crypto/x509/v3_no_ass.c" + ], + "crypto/x509/libcrypto-lib-v3_no_rev_avail.o" => [ + "crypto/x509/v3_no_rev_avail.c" + ], "crypto/x509/libcrypto-lib-v3_pci.o" => [ "crypto/x509/v3_pci.c" ], @@ -23480,18 +27334,36 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_purp.o" => [ "crypto/x509/v3_purp.c" ], + "crypto/x509/libcrypto-lib-v3_rolespec.o" => [ + "crypto/x509/v3_rolespec.c" + ], "crypto/x509/libcrypto-lib-v3_san.o" => [ "crypto/x509/v3_san.c" ], + "crypto/x509/libcrypto-lib-v3_sda.o" => [ + "crypto/x509/v3_sda.c" + ], + "crypto/x509/libcrypto-lib-v3_single_use.o" => [ + "crypto/x509/v3_single_use.c" + ], "crypto/x509/libcrypto-lib-v3_skid.o" => [ "crypto/x509/v3_skid.c" ], + "crypto/x509/libcrypto-lib-v3_soa_id.o" => [ + "crypto/x509/v3_soa_id.c" + ], "crypto/x509/libcrypto-lib-v3_sxnet.o" => [ "crypto/x509/v3_sxnet.c" ], + "crypto/x509/libcrypto-lib-v3_timespec.o" => [ + "crypto/x509/v3_timespec.c" + ], "crypto/x509/libcrypto-lib-v3_tlsf.o" => [ "crypto/x509/v3_tlsf.c" ], + "crypto/x509/libcrypto-lib-v3_usernotice.o" => [ + "crypto/x509/v3_usernotice.c" + ], "crypto/x509/libcrypto-lib-v3_utf8.o" => [ "crypto/x509/v3_utf8.c" ], @@ -23501,6 +27373,9 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3err.o" => [ "crypto/x509/v3err.c" ], + "crypto/x509/libcrypto-lib-x509_acert.o" => [ + "crypto/x509/x509_acert.c" + ], "crypto/x509/libcrypto-lib-x509_att.o" => [ "crypto/x509/x509_att.c" ], @@ -23552,6 +27427,9 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x509_vpm.o" => [ "crypto/x509/x509_vpm.c" ], + "crypto/x509/libcrypto-lib-x509aset.o" => [ + "crypto/x509/x509aset.c" + ], "crypto/x509/libcrypto-lib-x509cset.o" => [ "crypto/x509/x509cset.c" ], @@ -23579,6 +27457,9 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x_exten.o" => [ "crypto/x509/x_exten.c" ], + "crypto/x509/libcrypto-lib-x_ietfatt.o" => [ + "crypto/x509/x_ietfatt.c" + ], "crypto/x509/libcrypto-lib-x_name.o" => [ "crypto/x509/x_name.c" ], @@ -23600,6 +27481,16 @@ our %unified_info = ( "engines/libcrypto-lib-e_padlock.o" => [ "engines/e_padlock.c" ], + "fuzz/acert-test" => [ + "fuzz/acert-test-bin-acert.o", + "fuzz/acert-test-bin-test-corpus.o" + ], + "fuzz/acert-test-bin-acert.o" => [ + "fuzz/acert.c" + ], + "fuzz/acert-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], "fuzz/asn1-test" => [ "fuzz/asn1-test-bin-asn1.o", "fuzz/asn1-test-bin-fuzz_rand.o", @@ -23712,6 +27603,190 @@ our %unified_info = ( "fuzz/ct-test-bin-test-corpus.o" => [ "fuzz/test-corpus.c" ], + "fuzz/decoder-test" => [ + "fuzz/decoder-test-bin-decoder.o", + "fuzz/decoder-test-bin-fuzz_rand.o", + "fuzz/decoder-test-bin-test-corpus.o" + ], + "fuzz/decoder-test-bin-decoder.o" => [ + "fuzz/decoder.c" + ], + "fuzz/decoder-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/decoder-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/dtlsclient-test" => [ + "fuzz/dtlsclient-test-bin-dtlsclient.o", + "fuzz/dtlsclient-test-bin-fuzz_rand.o", + "fuzz/dtlsclient-test-bin-test-corpus.o" + ], + "fuzz/dtlsclient-test-bin-dtlsclient.o" => [ + "fuzz/dtlsclient.c" + ], + "fuzz/dtlsclient-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/dtlsclient-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/dtlsserver-test" => [ + "fuzz/dtlsserver-test-bin-dtlsserver.o", + "fuzz/dtlsserver-test-bin-fuzz_rand.o", + "fuzz/dtlsserver-test-bin-test-corpus.o" + ], + "fuzz/dtlsserver-test-bin-dtlsserver.o" => [ + "fuzz/dtlsserver.c" + ], + "fuzz/dtlsserver-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/dtlsserver-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/hashtable-test" => [ + "fuzz/hashtable-test-bin-fuzz_rand.o", + "fuzz/hashtable-test-bin-hashtable.o", + "fuzz/hashtable-test-bin-test-corpus.o" + ], + "fuzz/hashtable-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/hashtable-test-bin-hashtable.o" => [ + "fuzz/hashtable.c" + ], + "fuzz/hashtable-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/ml-dsa-test" => [ + "fuzz/ml-dsa-test-bin-fuzz_rand.o", + "fuzz/ml-dsa-test-bin-ml-dsa.o", + "fuzz/ml-dsa-test-bin-test-corpus.o" + ], + "fuzz/ml-dsa-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/ml-dsa-test-bin-ml-dsa.o" => [ + "fuzz/ml-dsa.c" + ], + "fuzz/ml-dsa-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/ml-kem-test" => [ + "fuzz/ml-kem-test-bin-fuzz_rand.o", + "fuzz/ml-kem-test-bin-ml-kem.o", + "fuzz/ml-kem-test-bin-test-corpus.o" + ], + "fuzz/ml-kem-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/ml-kem-test-bin-ml-kem.o" => [ + "fuzz/ml-kem.c" + ], + "fuzz/ml-kem-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/pem-test" => [ + "fuzz/pem-test-bin-pem.o", + "fuzz/pem-test-bin-test-corpus.o" + ], + "fuzz/pem-test-bin-pem.o" => [ + "fuzz/pem.c" + ], + "fuzz/pem-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/provider-test" => [ + "fuzz/provider-test-bin-provider.o", + "fuzz/provider-test-bin-test-corpus.o" + ], + "fuzz/provider-test-bin-provider.o" => [ + "fuzz/provider.c" + ], + "fuzz/provider-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/punycode-test" => [ + "fuzz/punycode-test-bin-punycode.o", + "fuzz/punycode-test-bin-test-corpus.o" + ], + "fuzz/punycode-test-bin-punycode.o" => [ + "fuzz/punycode.c" + ], + "fuzz/punycode-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-client-test" => [ + "fuzz/quic-client-test-bin-fuzz_rand.o", + "fuzz/quic-client-test-bin-quic-client.o", + "fuzz/quic-client-test-bin-test-corpus.o" + ], + "fuzz/quic-client-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-client-test-bin-quic-client.o" => [ + "fuzz/quic-client.c" + ], + "fuzz/quic-client-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-lcidm-test" => [ + "fuzz/quic-lcidm-test-bin-fuzz_rand.o", + "fuzz/quic-lcidm-test-bin-quic-lcidm.o", + "fuzz/quic-lcidm-test-bin-test-corpus.o" + ], + "fuzz/quic-lcidm-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-lcidm-test-bin-quic-lcidm.o" => [ + "fuzz/quic-lcidm.c" + ], + "fuzz/quic-lcidm-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-rcidm-test" => [ + "fuzz/quic-rcidm-test-bin-fuzz_rand.o", + "fuzz/quic-rcidm-test-bin-quic-rcidm.o", + "fuzz/quic-rcidm-test-bin-test-corpus.o" + ], + "fuzz/quic-rcidm-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-rcidm-test-bin-quic-rcidm.o" => [ + "fuzz/quic-rcidm.c" + ], + "fuzz/quic-rcidm-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-server-test" => [ + "fuzz/quic-server-test-bin-fuzz_rand.o", + "fuzz/quic-server-test-bin-quic-server.o", + "fuzz/quic-server-test-bin-test-corpus.o" + ], + "fuzz/quic-server-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-server-test-bin-quic-server.o" => [ + "fuzz/quic-server.c" + ], + "fuzz/quic-server-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-srtm-test" => [ + "fuzz/quic-srtm-test-bin-fuzz_rand.o", + "fuzz/quic-srtm-test-bin-quic-srtm.o", + "fuzz/quic-srtm-test-bin-test-corpus.o" + ], + "fuzz/quic-srtm-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-srtm-test-bin-quic-srtm.o" => [ + "fuzz/quic-srtm.c" + ], + "fuzz/quic-srtm-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], "fuzz/server-test" => [ "fuzz/server-test-bin-fuzz_rand.o", "fuzz/server-test-bin-server.o", @@ -23726,6 +27801,40 @@ our %unified_info = ( "fuzz/server-test-bin-test-corpus.o" => [ "fuzz/test-corpus.c" ], + "fuzz/slh-dsa-test" => [ + "fuzz/slh-dsa-test-bin-fuzz_rand.o", + "fuzz/slh-dsa-test-bin-slh-dsa.o", + "fuzz/slh-dsa-test-bin-test-corpus.o" + ], + "fuzz/slh-dsa-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/slh-dsa-test-bin-slh-dsa.o" => [ + "fuzz/slh-dsa.c" + ], + "fuzz/slh-dsa-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/smime-test" => [ + "fuzz/smime-test-bin-smime.o", + "fuzz/smime-test-bin-test-corpus.o" + ], + "fuzz/smime-test-bin-smime.o" => [ + "fuzz/smime.c" + ], + "fuzz/smime-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/v3name-test" => [ + "fuzz/v3name-test-bin-test-corpus.o", + "fuzz/v3name-test-bin-v3name.o" + ], + "fuzz/v3name-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/v3name-test-bin-v3name.o" => [ + "fuzz/v3name.c" + ], "fuzz/x509-test" => [ "fuzz/x509-test-bin-fuzz_rand.o", "fuzz/x509-test-bin-test-corpus.o", @@ -23750,6 +27859,7 @@ our %unified_info = ( "crypto/aes/libcrypto-lib-aes_ofb.o", "crypto/aes/libcrypto-lib-aes_wrap.o", "crypto/aes/libcrypto-lib-aesv8-armx.o", + "crypto/aes/libcrypto-lib-bsaes-armv8.o", "crypto/aes/libcrypto-lib-vpaes-armv8.o", "crypto/aria/libcrypto-lib-aria.o", "crypto/asn1/libcrypto-lib-a_bitstr.o", @@ -23847,6 +27957,7 @@ our %unified_info = ( "crypto/bio/libcrypto-lib-bss_conn.o", "crypto/bio/libcrypto-lib-bss_core.o", "crypto/bio/libcrypto-lib-bss_dgram.o", + "crypto/bio/libcrypto-lib-bss_dgram_pair.o", "crypto/bio/libcrypto-lib-bss_fd.o", "crypto/bio/libcrypto-lib-bss_file.o", "crypto/bio/libcrypto-lib-bss_log.o", @@ -23902,12 +28013,14 @@ our %unified_info = ( "crypto/cast/libcrypto-lib-c_enc.o", "crypto/cast/libcrypto-lib-c_ofb64.o", "crypto/cast/libcrypto-lib-c_skey.o", + "crypto/chacha/libcrypto-lib-chacha-armv8-sve.o", "crypto/chacha/libcrypto-lib-chacha-armv8.o", "crypto/cmac/libcrypto-lib-cmac.o", "crypto/cmp/libcrypto-lib-cmp_asn.o", "crypto/cmp/libcrypto-lib-cmp_client.o", "crypto/cmp/libcrypto-lib-cmp_ctx.o", "crypto/cmp/libcrypto-lib-cmp_err.o", + "crypto/cmp/libcrypto-lib-cmp_genm.o", "crypto/cmp/libcrypto-lib-cmp_hdr.o", "crypto/cmp/libcrypto-lib-cmp_http.o", "crypto/cmp/libcrypto-lib-cmp_msg.o", @@ -24047,6 +28160,9 @@ our %unified_info = ( "crypto/ec/libcrypto-lib-ecp_nistz256-armv8.o", "crypto/ec/libcrypto-lib-ecp_nistz256.o", "crypto/ec/libcrypto-lib-ecp_oct.o", + "crypto/ec/libcrypto-lib-ecp_sm2p256-armv8.o", + "crypto/ec/libcrypto-lib-ecp_sm2p256.o", + "crypto/ec/libcrypto-lib-ecp_sm2p256_table.o", "crypto/ec/libcrypto-lib-ecp_smpl.o", "crypto/ec/libcrypto-lib-ecx_backend.o", "crypto/ec/libcrypto-lib-ecx_key.o", @@ -24085,7 +28201,9 @@ our %unified_info = ( "crypto/err/libcrypto-lib-err_all.o", "crypto/err/libcrypto-lib-err_all_legacy.o", "crypto/err/libcrypto-lib-err_blocks.o", + "crypto/err/libcrypto-lib-err_mark.o", "crypto/err/libcrypto-lib-err_prn.o", + "crypto/err/libcrypto-lib-err_save.o", "crypto/ess/libcrypto-lib-ess_asn1.o", "crypto/ess/libcrypto-lib-ess_err.o", "crypto/ess/libcrypto-lib-ess_lib.o", @@ -24168,7 +28286,9 @@ our %unified_info = ( "crypto/evp/libcrypto-lib-pmeth_check.o", "crypto/evp/libcrypto-lib-pmeth_gn.o", "crypto/evp/libcrypto-lib-pmeth_lib.o", + "crypto/evp/libcrypto-lib-s_lib.o", "crypto/evp/libcrypto-lib-signature.o", + "crypto/evp/libcrypto-lib-skeymgmt_meth.o", "crypto/ffc/libcrypto-lib-ffc_backend.o", "crypto/ffc/libcrypto-lib-ffc_dh.o", "crypto/ffc/libcrypto-lib-ffc_key_generate.o", @@ -24176,7 +28296,11 @@ our %unified_info = ( "crypto/ffc/libcrypto-lib-ffc_params.o", "crypto/ffc/libcrypto-lib-ffc_params_generate.o", "crypto/ffc/libcrypto-lib-ffc_params_validate.o", + "crypto/hashtable/libcrypto-lib-hashfunc.o", + "crypto/hashtable/libcrypto-lib-hashtable.o", "crypto/hmac/libcrypto-lib-hmac.o", + "crypto/hpke/libcrypto-lib-hpke.o", + "crypto/hpke/libcrypto-lib-hpke_util.o", "crypto/http/libcrypto-lib-http_client.o", "crypto/http/libcrypto-lib-http_err.o", "crypto/http/libcrypto-lib-http_lib.o", @@ -24192,6 +28316,7 @@ our %unified_info = ( "crypto/libcrypto-lib-armcap.o", "crypto/libcrypto-lib-asn1_dsa.o", "crypto/libcrypto-lib-bsearch.o", + "crypto/libcrypto-lib-comp_methods.o", "crypto/libcrypto-lib-context.o", "crypto/libcrypto-lib-core_algorithm.o", "crypto/libcrypto-lib-core_fetch.o", @@ -24201,10 +28326,13 @@ our %unified_info = ( "crypto/libcrypto-lib-cryptlib.o", "crypto/libcrypto-lib-ctype.o", "crypto/libcrypto-lib-cversion.o", + "crypto/libcrypto-lib-defaults.o", "crypto/libcrypto-lib-der_writer.o", + "crypto/libcrypto-lib-deterministic_nonce.o", "crypto/libcrypto-lib-ebcdic.o", "crypto/libcrypto-lib-ex_data.o", "crypto/libcrypto-lib-getenv.o", + "crypto/libcrypto-lib-indicator_core.o", "crypto/libcrypto-lib-info.o", "crypto/libcrypto-lib-init.o", "crypto/libcrypto-lib-initthread.o", @@ -24221,6 +28349,7 @@ our %unified_info = ( "crypto/libcrypto-lib-params.o", "crypto/libcrypto-lib-params_dup.o", "crypto/libcrypto-lib-params_from_text.o", + "crypto/libcrypto-lib-params_idx.o", "crypto/libcrypto-lib-passphrase.o", "crypto/libcrypto-lib-provider.o", "crypto/libcrypto-lib-provider_child.o", @@ -24228,21 +28357,36 @@ our %unified_info = ( "crypto/libcrypto-lib-provider_core.o", "crypto/libcrypto-lib-provider_predefined.o", "crypto/libcrypto-lib-punycode.o", + "crypto/libcrypto-lib-quic_vlint.o", "crypto/libcrypto-lib-self_test_core.o", + "crypto/libcrypto-lib-sleep.o", "crypto/libcrypto-lib-sparse_array.o", + "crypto/libcrypto-lib-ssl_err.o", "crypto/libcrypto-lib-threads_lib.o", "crypto/libcrypto-lib-threads_none.o", "crypto/libcrypto-lib-threads_pthread.o", "crypto/libcrypto-lib-threads_win.o", + "crypto/libcrypto-lib-time.o", "crypto/libcrypto-lib-trace.o", "crypto/libcrypto-lib-uid.o", "crypto/md4/libcrypto-lib-md4_dgst.o", "crypto/md4/libcrypto-lib-md4_one.o", + "crypto/md5/libcrypto-lib-md5-aarch64.o", "crypto/md5/libcrypto-lib-md5_dgst.o", "crypto/md5/libcrypto-lib-md5_one.o", "crypto/md5/libcrypto-lib-md5_sha1.o", "crypto/mdc2/libcrypto-lib-mdc2_one.o", "crypto/mdc2/libcrypto-lib-mdc2dgst.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_encoders.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key_compress.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_matrix.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_ntt.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_params.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sample.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sign.o", + "crypto/ml_kem/libcrypto-lib-ml_kem.o", + "crypto/modes/libcrypto-lib-aes-gcm-armv8-unroll8_64.o", "crypto/modes/libcrypto-lib-aes-gcm-armv8_64.o", "crypto/modes/libcrypto-lib-cbc128.o", "crypto/modes/libcrypto-lib-ccm128.o", @@ -24256,6 +28400,7 @@ our %unified_info = ( "crypto/modes/libcrypto-lib-siv128.o", "crypto/modes/libcrypto-lib-wrap128.o", "crypto/modes/libcrypto-lib-xts128.o", + "crypto/modes/libcrypto-lib-xts128gb.o", "crypto/objects/libcrypto-lib-o_names.o", "crypto/objects/libcrypto-lib-obj_dat.o", "crypto/objects/libcrypto-lib-obj_err.o", @@ -24320,6 +28465,7 @@ our %unified_info = ( "crypto/rand/libcrypto-lib-rand_lib.o", "crypto/rand/libcrypto-lib-rand_meth.o", "crypto/rand/libcrypto-lib-rand_pool.o", + "crypto/rand/libcrypto-lib-rand_uniform.o", "crypto/rand/libcrypto-lib-randfile.o", "crypto/rc2/libcrypto-lib-rc2_cbc.o", "crypto/rc2/libcrypto-lib-rc2_ecb.o", @@ -24371,13 +28517,27 @@ our %unified_info = ( "crypto/sha/libcrypto-lib-sha512-armv8.o", "crypto/sha/libcrypto-lib-sha512.o", "crypto/siphash/libcrypto-lib-siphash.o", + "crypto/slh_dsa/libcrypto-lib-slh_adrs.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa_hash_ctx.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa_key.o", + "crypto/slh_dsa/libcrypto-lib-slh_fors.o", + "crypto/slh_dsa/libcrypto-lib-slh_hash.o", + "crypto/slh_dsa/libcrypto-lib-slh_hypertree.o", + "crypto/slh_dsa/libcrypto-lib-slh_params.o", + "crypto/slh_dsa/libcrypto-lib-slh_wots.o", + "crypto/slh_dsa/libcrypto-lib-slh_xmss.o", "crypto/sm2/libcrypto-lib-sm2_crypt.o", "crypto/sm2/libcrypto-lib-sm2_err.o", "crypto/sm2/libcrypto-lib-sm2_key.o", "crypto/sm2/libcrypto-lib-sm2_sign.o", "crypto/sm3/libcrypto-lib-legacy_sm3.o", + "crypto/sm3/libcrypto-lib-sm3-armv8.o", "crypto/sm3/libcrypto-lib-sm3.o", + "crypto/sm4/libcrypto-lib-sm4-armv8.o", "crypto/sm4/libcrypto-lib-sm4.o", + "crypto/sm4/libcrypto-lib-vpsm4-armv8.o", + "crypto/sm4/libcrypto-lib-vpsm4_ex-armv8.o", "crypto/srp/libcrypto-lib-srp_lib.o", "crypto/srp/libcrypto-lib-srp_vfy.o", "crypto/stack/libcrypto-lib-stack.o", @@ -24388,6 +28548,12 @@ our %unified_info = ( "crypto/store/libcrypto-lib-store_register.o", "crypto/store/libcrypto-lib-store_result.o", "crypto/store/libcrypto-lib-store_strings.o", + "crypto/thread/arch/libcrypto-lib-thread_none.o", + "crypto/thread/arch/libcrypto-lib-thread_posix.o", + "crypto/thread/arch/libcrypto-lib-thread_win.o", + "crypto/thread/libcrypto-lib-api.o", + "crypto/thread/libcrypto-lib-arch.o", + "crypto/thread/libcrypto-lib-internal.o", "crypto/ts/libcrypto-lib-ts_asn1.o", "crypto/ts/libcrypto-lib-ts_conf.o", "crypto/ts/libcrypto-lib-ts_err.o", @@ -24416,14 +28582,22 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-pcy_map.o", "crypto/x509/libcrypto-lib-pcy_node.o", "crypto/x509/libcrypto-lib-pcy_tree.o", + "crypto/x509/libcrypto-lib-t_acert.o", "crypto/x509/libcrypto-lib-t_crl.o", "crypto/x509/libcrypto-lib-t_req.o", "crypto/x509/libcrypto-lib-t_x509.o", + "crypto/x509/libcrypto-lib-v3_aaa.o", + "crypto/x509/libcrypto-lib-v3_ac_tgt.o", "crypto/x509/libcrypto-lib-v3_addr.o", "crypto/x509/libcrypto-lib-v3_admis.o", "crypto/x509/libcrypto-lib-v3_akeya.o", "crypto/x509/libcrypto-lib-v3_akid.o", "crypto/x509/libcrypto-lib-v3_asid.o", + "crypto/x509/libcrypto-lib-v3_attrdesc.o", + "crypto/x509/libcrypto-lib-v3_attrmap.o", + "crypto/x509/libcrypto-lib-v3_audit_id.o", + "crypto/x509/libcrypto-lib-v3_authattid.o", + "crypto/x509/libcrypto-lib-v3_battcons.o", "crypto/x509/libcrypto-lib-v3_bcons.o", "crypto/x509/libcrypto-lib-v3_bitst.o", "crypto/x509/libcrypto-lib-v3_conf.o", @@ -24432,12 +28606,17 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_enum.o", "crypto/x509/libcrypto-lib-v3_extku.o", "crypto/x509/libcrypto-lib-v3_genn.o", + "crypto/x509/libcrypto-lib-v3_group_ac.o", "crypto/x509/libcrypto-lib-v3_ia5.o", + "crypto/x509/libcrypto-lib-v3_ind_iss.o", "crypto/x509/libcrypto-lib-v3_info.o", "crypto/x509/libcrypto-lib-v3_int.o", + "crypto/x509/libcrypto-lib-v3_iobo.o", "crypto/x509/libcrypto-lib-v3_ist.o", "crypto/x509/libcrypto-lib-v3_lib.o", "crypto/x509/libcrypto-lib-v3_ncons.o", + "crypto/x509/libcrypto-lib-v3_no_ass.o", + "crypto/x509/libcrypto-lib-v3_no_rev_avail.o", "crypto/x509/libcrypto-lib-v3_pci.o", "crypto/x509/libcrypto-lib-v3_pcia.o", "crypto/x509/libcrypto-lib-v3_pcons.o", @@ -24445,13 +28624,20 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_pmaps.o", "crypto/x509/libcrypto-lib-v3_prn.o", "crypto/x509/libcrypto-lib-v3_purp.o", + "crypto/x509/libcrypto-lib-v3_rolespec.o", "crypto/x509/libcrypto-lib-v3_san.o", + "crypto/x509/libcrypto-lib-v3_sda.o", + "crypto/x509/libcrypto-lib-v3_single_use.o", "crypto/x509/libcrypto-lib-v3_skid.o", + "crypto/x509/libcrypto-lib-v3_soa_id.o", "crypto/x509/libcrypto-lib-v3_sxnet.o", + "crypto/x509/libcrypto-lib-v3_timespec.o", "crypto/x509/libcrypto-lib-v3_tlsf.o", + "crypto/x509/libcrypto-lib-v3_usernotice.o", "crypto/x509/libcrypto-lib-v3_utf8.o", "crypto/x509/libcrypto-lib-v3_utl.o", "crypto/x509/libcrypto-lib-v3err.o", + "crypto/x509/libcrypto-lib-x509_acert.o", "crypto/x509/libcrypto-lib-x509_att.o", "crypto/x509/libcrypto-lib-x509_cmp.o", "crypto/x509/libcrypto-lib-x509_d2.o", @@ -24469,6 +28655,7 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x509_v3.o", "crypto/x509/libcrypto-lib-x509_vfy.o", "crypto/x509/libcrypto-lib-x509_vpm.o", + "crypto/x509/libcrypto-lib-x509aset.o", "crypto/x509/libcrypto-lib-x509cset.o", "crypto/x509/libcrypto-lib-x509name.o", "crypto/x509/libcrypto-lib-x509rset.o", @@ -24478,6 +28665,7 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x_attrib.o", "crypto/x509/libcrypto-lib-x_crl.o", "crypto/x509/libcrypto-lib-x_exten.o", + "crypto/x509/libcrypto-lib-x_ietfatt.o", "crypto/x509/libcrypto-lib-x_name.o", "crypto/x509/libcrypto-lib-x_pubkey.o", "crypto/x509/libcrypto-lib-x_req.o", @@ -24498,14 +28686,15 @@ our %unified_info = ( "ssl/libssl-lib-d1_srtp.o", "ssl/libssl-lib-methods.o", "ssl/libssl-lib-pqueue.o", + "ssl/libssl-lib-priority_queue.o", "ssl/libssl-lib-s3_enc.o", "ssl/libssl-lib-s3_lib.o", "ssl/libssl-lib-s3_msg.o", "ssl/libssl-lib-ssl_asn1.o", "ssl/libssl-lib-ssl_cert.o", + "ssl/libssl-lib-ssl_cert_comp.o", "ssl/libssl-lib-ssl_ciph.o", "ssl/libssl-lib-ssl_conf.o", - "ssl/libssl-lib-ssl_err.o", "ssl/libssl-lib-ssl_err_legacy.o", "ssl/libssl-lib-ssl_init.o", "ssl/libssl-lib-ssl_lib.o", @@ -24522,12 +28711,60 @@ our %unified_info = ( "ssl/libssl-lib-tls13_enc.o", "ssl/libssl-lib-tls_depr.o", "ssl/libssl-lib-tls_srp.o", - "ssl/record/libssl-lib-dtls1_bitmap.o", + "ssl/quic/libssl-lib-cc_newreno.o", + "ssl/quic/libssl-lib-json_enc.o", + "ssl/quic/libssl-lib-qlog.o", + "ssl/quic/libssl-lib-qlog_event_helpers.o", + "ssl/quic/libssl-lib-quic_ackm.o", + "ssl/quic/libssl-lib-quic_cfq.o", + "ssl/quic/libssl-lib-quic_channel.o", + "ssl/quic/libssl-lib-quic_demux.o", + "ssl/quic/libssl-lib-quic_engine.o", + "ssl/quic/libssl-lib-quic_fc.o", + "ssl/quic/libssl-lib-quic_fifd.o", + "ssl/quic/libssl-lib-quic_impl.o", + "ssl/quic/libssl-lib-quic_lcidm.o", + "ssl/quic/libssl-lib-quic_method.o", + "ssl/quic/libssl-lib-quic_obj.o", + "ssl/quic/libssl-lib-quic_port.o", + "ssl/quic/libssl-lib-quic_rcidm.o", + "ssl/quic/libssl-lib-quic_reactor.o", + "ssl/quic/libssl-lib-quic_reactor_wait_ctx.o", + "ssl/quic/libssl-lib-quic_record_rx.o", + "ssl/quic/libssl-lib-quic_record_shared.o", + "ssl/quic/libssl-lib-quic_record_tx.o", + "ssl/quic/libssl-lib-quic_record_util.o", + "ssl/quic/libssl-lib-quic_rstream.o", + "ssl/quic/libssl-lib-quic_rx_depack.o", + "ssl/quic/libssl-lib-quic_sf_list.o", + "ssl/quic/libssl-lib-quic_srt_gen.o", + "ssl/quic/libssl-lib-quic_srtm.o", + "ssl/quic/libssl-lib-quic_sstream.o", + "ssl/quic/libssl-lib-quic_statm.o", + "ssl/quic/libssl-lib-quic_stream_map.o", + "ssl/quic/libssl-lib-quic_thread_assist.o", + "ssl/quic/libssl-lib-quic_tls.o", + "ssl/quic/libssl-lib-quic_tls_api.o", + "ssl/quic/libssl-lib-quic_trace.o", + "ssl/quic/libssl-lib-quic_tserver.o", + "ssl/quic/libssl-lib-quic_txp.o", + "ssl/quic/libssl-lib-quic_txpim.o", + "ssl/quic/libssl-lib-quic_types.o", + "ssl/quic/libssl-lib-quic_wire.o", + "ssl/quic/libssl-lib-quic_wire_pkt.o", + "ssl/quic/libssl-lib-uint_set.o", "ssl/record/libssl-lib-rec_layer_d1.o", "ssl/record/libssl-lib-rec_layer_s3.o", - "ssl/record/libssl-lib-ssl3_buffer.o", - "ssl/record/libssl-lib-ssl3_record.o", - "ssl/record/libssl-lib-ssl3_record_tls13.o", + "ssl/record/methods/libssl-lib-dtls_meth.o", + "ssl/record/methods/libssl-lib-ssl3_meth.o", + "ssl/record/methods/libssl-lib-tls13_meth.o", + "ssl/record/methods/libssl-lib-tls1_meth.o", + "ssl/record/methods/libssl-lib-tls_common.o", + "ssl/record/methods/libssl-lib-tls_multib.o", + "ssl/record/methods/libssl-lib-tlsany_meth.o", + "ssl/rio/libssl-lib-poll_builder.o", + "ssl/rio/libssl-lib-poll_immediate.o", + "ssl/rio/libssl-lib-rio_notifier.o", "ssl/statem/libssl-lib-extensions.o", "ssl/statem/libssl-lib-extensions_clnt.o", "ssl/statem/libssl-lib-extensions_cust.o", @@ -24565,12 +28802,24 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ecx_key.o" => [ "providers/common/der/der_ecx_key.c" ], + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o" => [ + "providers/common/der/der_ml_dsa_gen.c" + ], + "providers/common/der/libcommon-lib-der_ml_dsa_key.o" => [ + "providers/common/der/der_ml_dsa_key.c" + ], "providers/common/der/libcommon-lib-der_rsa_gen.o" => [ "providers/common/der/der_rsa_gen.c" ], "providers/common/der/libcommon-lib-der_rsa_key.o" => [ "providers/common/der/der_rsa_key.c" ], + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o" => [ + "providers/common/der/der_slh_dsa_gen.c" + ], + "providers/common/der/libcommon-lib-der_slh_dsa_key.o" => [ + "providers/common/der/der_slh_dsa_key.c" + ], "providers/common/der/libcommon-lib-der_wrap_gen.o" => [ "providers/common/der/der_wrap_gen.c" ], @@ -24637,6 +28886,9 @@ our %unified_info = ( "providers/common/libfips-lib-securitycheck_fips.o" => [ "providers/common/securitycheck_fips.c" ], + "providers/endecode_test-bin-legacyprov.o" => [ + "providers/legacyprov.c" + ], "providers/evp_extra_test-bin-legacyprov.o" => [ "providers/legacyprov.c" ], @@ -24647,6 +28899,9 @@ our %unified_info = ( "providers/fips/fips-dso-fips_entry.o" => [ "providers/fips/fips_entry.c" ], + "providers/fips/libfips-lib-fipsindicator.o" => [ + "providers/fips/fipsindicator.c" + ], "providers/fips/libfips-lib-fipsprov.o" => [ "providers/fips/fipsprov.c" ], @@ -24710,6 +28965,15 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_hw.o" => [ "providers/implementations/ciphers/cipher_aes_gcm_hw.c" ], + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv.o" => [ + "providers/implementations/ciphers/cipher_aes_gcm_siv.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_hw.o" => [ + "providers/implementations/ciphers/cipher_aes_gcm_siv_hw.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_polyval.o" => [ + "providers/implementations/ciphers/cipher_aes_gcm_siv_polyval.c" + ], "providers/implementations/ciphers/libdefault-lib-cipher_aes_hw.o" => [ "providers/implementations/ciphers/cipher_aes_hw.c" ], @@ -24782,9 +29046,27 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_sm4.o" => [ "providers/implementations/ciphers/cipher_sm4.c" ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm.o" => [ + "providers/implementations/ciphers/cipher_sm4_ccm.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm_hw.o" => [ + "providers/implementations/ciphers/cipher_sm4_ccm_hw.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm.o" => [ + "providers/implementations/ciphers/cipher_sm4_gcm.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm_hw.o" => [ + "providers/implementations/ciphers/cipher_sm4_gcm_hw.c" + ], "providers/implementations/ciphers/libdefault-lib-cipher_sm4_hw.o" => [ "providers/implementations/ciphers/cipher_sm4_hw.c" ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts.o" => [ + "providers/implementations/ciphers/cipher_sm4_xts.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts_hw.o" => [ + "providers/implementations/ciphers/cipher_sm4_xts_hw.c" + ], "providers/implementations/ciphers/libdefault-lib-cipher_tdes.o" => [ "providers/implementations/ciphers/cipher_tdes.c" ], @@ -25004,6 +29286,15 @@ our %unified_info = ( "providers/implementations/encode_decode/libdefault-lib-endecoder_common.o" => [ "providers/implementations/encode_decode/endecoder_common.c" ], + "providers/implementations/encode_decode/libdefault-lib-ml_common_codecs.o" => [ + "providers/implementations/encode_decode/ml_common_codecs.c" + ], + "providers/implementations/encode_decode/libdefault-lib-ml_dsa_codecs.o" => [ + "providers/implementations/encode_decode/ml_dsa_codecs.c" + ], + "providers/implementations/encode_decode/libdefault-lib-ml_kem_codecs.o" => [ + "providers/implementations/encode_decode/ml_kem_codecs.c" + ], "providers/implementations/exchange/libdefault-lib-dh_exch.o" => [ "providers/implementations/exchange/dh_exch.c" ], @@ -25028,9 +29319,15 @@ our %unified_info = ( "providers/implementations/exchange/libfips-lib-kdf_exch.o" => [ "providers/implementations/exchange/kdf_exch.c" ], + "providers/implementations/kdfs/libdefault-lib-argon2.o" => [ + "providers/implementations/kdfs/argon2.c" + ], "providers/implementations/kdfs/libdefault-lib-hkdf.o" => [ "providers/implementations/kdfs/hkdf.c" ], + "providers/implementations/kdfs/libdefault-lib-hmacdrbg_kdf.o" => [ + "providers/implementations/kdfs/hmacdrbg_kdf.c" + ], "providers/implementations/kdfs/libdefault-lib-kbkdf.o" => [ "providers/implementations/kdfs/kbkdf.c" ], @@ -25088,12 +29385,39 @@ our %unified_info = ( "providers/implementations/kdfs/liblegacy-lib-pbkdf1.o" => [ "providers/implementations/kdfs/pbkdf1.c" ], + "providers/implementations/kdfs/liblegacy-lib-pvkkdf.o" => [ + "providers/implementations/kdfs/pvkkdf.c" + ], + "providers/implementations/kem/libdefault-lib-ec_kem.o" => [ + "providers/implementations/kem/ec_kem.c" + ], + "providers/implementations/kem/libdefault-lib-ecx_kem.o" => [ + "providers/implementations/kem/ecx_kem.c" + ], + "providers/implementations/kem/libdefault-lib-kem_util.o" => [ + "providers/implementations/kem/kem_util.c" + ], + "providers/implementations/kem/libdefault-lib-ml_kem_kem.o" => [ + "providers/implementations/kem/ml_kem_kem.c" + ], + "providers/implementations/kem/libdefault-lib-mlx_kem.o" => [ + "providers/implementations/kem/mlx_kem.c" + ], "providers/implementations/kem/libdefault-lib-rsa_kem.o" => [ "providers/implementations/kem/rsa_kem.c" ], + "providers/implementations/kem/libfips-lib-ml_kem_kem.o" => [ + "providers/implementations/kem/ml_kem_kem.c" + ], + "providers/implementations/kem/libfips-lib-mlx_kem.o" => [ + "providers/implementations/kem/mlx_kem.c" + ], "providers/implementations/kem/libfips-lib-rsa_kem.o" => [ "providers/implementations/kem/rsa_kem.c" ], + "providers/implementations/kem/libtemplate-lib-template_kem.o" => [ + "providers/implementations/kem/template_kem.c" + ], "providers/implementations/keymgmt/libdefault-lib-dh_kmgmt.o" => [ "providers/implementations/keymgmt/dh_kmgmt.c" ], @@ -25112,9 +29436,21 @@ our %unified_info = ( "providers/implementations/keymgmt/libdefault-lib-mac_legacy_kmgmt.o" => [ "providers/implementations/keymgmt/mac_legacy_kmgmt.c" ], + "providers/implementations/keymgmt/libdefault-lib-ml_dsa_kmgmt.o" => [ + "providers/implementations/keymgmt/ml_dsa_kmgmt.c" + ], + "providers/implementations/keymgmt/libdefault-lib-ml_kem_kmgmt.o" => [ + "providers/implementations/keymgmt/ml_kem_kmgmt.c" + ], + "providers/implementations/keymgmt/libdefault-lib-mlx_kmgmt.o" => [ + "providers/implementations/keymgmt/mlx_kmgmt.c" + ], "providers/implementations/keymgmt/libdefault-lib-rsa_kmgmt.o" => [ "providers/implementations/keymgmt/rsa_kmgmt.c" ], + "providers/implementations/keymgmt/libdefault-lib-slh_dsa_kmgmt.o" => [ + "providers/implementations/keymgmt/slh_dsa_kmgmt.c" + ], "providers/implementations/keymgmt/libfips-lib-dh_kmgmt.o" => [ "providers/implementations/keymgmt/dh_kmgmt.c" ], @@ -25133,9 +29469,24 @@ our %unified_info = ( "providers/implementations/keymgmt/libfips-lib-mac_legacy_kmgmt.o" => [ "providers/implementations/keymgmt/mac_legacy_kmgmt.c" ], + "providers/implementations/keymgmt/libfips-lib-ml_dsa_kmgmt.o" => [ + "providers/implementations/keymgmt/ml_dsa_kmgmt.c" + ], + "providers/implementations/keymgmt/libfips-lib-ml_kem_kmgmt.o" => [ + "providers/implementations/keymgmt/ml_kem_kmgmt.c" + ], + "providers/implementations/keymgmt/libfips-lib-mlx_kmgmt.o" => [ + "providers/implementations/keymgmt/mlx_kmgmt.c" + ], "providers/implementations/keymgmt/libfips-lib-rsa_kmgmt.o" => [ "providers/implementations/keymgmt/rsa_kmgmt.c" ], + "providers/implementations/keymgmt/libfips-lib-slh_dsa_kmgmt.o" => [ + "providers/implementations/keymgmt/slh_dsa_kmgmt.c" + ], + "providers/implementations/keymgmt/libtemplate-lib-template_kmgmt.o" => [ + "providers/implementations/keymgmt/template_kmgmt.c" + ], "providers/implementations/macs/libdefault-lib-blake2b_mac.o" => [ "providers/implementations/macs/blake2b_mac.c" ], @@ -25172,9 +29523,6 @@ our %unified_info = ( "providers/implementations/macs/libfips-lib-kmac_prov.o" => [ "providers/implementations/macs/kmac_prov.c" ], - "providers/implementations/rands/libdefault-lib-crngt.o" => [ - "providers/implementations/rands/crngt.c" - ], "providers/implementations/rands/libdefault-lib-drbg.o" => [ "providers/implementations/rands/drbg.c" ], @@ -25190,12 +29538,12 @@ our %unified_info = ( "providers/implementations/rands/libdefault-lib-seed_src.o" => [ "providers/implementations/rands/seed_src.c" ], + "providers/implementations/rands/libdefault-lib-seed_src_jitter.o" => [ + "providers/implementations/rands/seed_src_jitter.c" + ], "providers/implementations/rands/libdefault-lib-test_rng.o" => [ "providers/implementations/rands/test_rng.c" ], - "providers/implementations/rands/libfips-lib-crngt.o" => [ - "providers/implementations/rands/crngt.c" - ], "providers/implementations/rands/libfips-lib-drbg.o" => [ "providers/implementations/rands/drbg.c" ], @@ -25208,11 +29556,14 @@ our %unified_info = ( "providers/implementations/rands/libfips-lib-drbg_hmac.o" => [ "providers/implementations/rands/drbg_hmac.c" ], + "providers/implementations/rands/libfips-lib-fips_crng_test.o" => [ + "providers/implementations/rands/fips_crng_test.c" + ], "providers/implementations/rands/libfips-lib-test_rng.o" => [ "providers/implementations/rands/test_rng.c" ], - "providers/implementations/rands/seeding/libdefault-lib-rand_cpu_x86.o" => [ - "providers/implementations/rands/seeding/rand_cpu_x86.c" + "providers/implementations/rands/seeding/libdefault-lib-rand_cpu_arm64.o" => [ + "providers/implementations/rands/seeding/rand_cpu_arm64.c" ], "providers/implementations/rands/seeding/libdefault-lib-rand_tsc.o" => [ "providers/implementations/rands/seeding/rand_tsc.c" @@ -25235,9 +29586,15 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-mac_legacy_sig.o" => [ "providers/implementations/signature/mac_legacy_sig.c" ], + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o" => [ + "providers/implementations/signature/ml_dsa_sig.c" + ], "providers/implementations/signature/libdefault-lib-rsa_sig.o" => [ "providers/implementations/signature/rsa_sig.c" ], + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o" => [ + "providers/implementations/signature/slh_dsa_sig.c" + ], "providers/implementations/signature/libdefault-lib-sm2_sig.o" => [ "providers/implementations/signature/sm2_sig.c" ], @@ -25253,9 +29610,27 @@ our %unified_info = ( "providers/implementations/signature/libfips-lib-mac_legacy_sig.o" => [ "providers/implementations/signature/mac_legacy_sig.c" ], + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o" => [ + "providers/implementations/signature/ml_dsa_sig.c" + ], "providers/implementations/signature/libfips-lib-rsa_sig.o" => [ "providers/implementations/signature/rsa_sig.c" ], + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o" => [ + "providers/implementations/signature/slh_dsa_sig.c" + ], + "providers/implementations/skeymgmt/libdefault-lib-aes_skmgmt.o" => [ + "providers/implementations/skeymgmt/aes_skmgmt.c" + ], + "providers/implementations/skeymgmt/libdefault-lib-generic.o" => [ + "providers/implementations/skeymgmt/generic.c" + ], + "providers/implementations/skeymgmt/libfips-lib-aes_skmgmt.o" => [ + "providers/implementations/skeymgmt/aes_skmgmt.c" + ], + "providers/implementations/skeymgmt/libfips-lib-generic.o" => [ + "providers/implementations/skeymgmt/generic.c" + ], "providers/implementations/storemgmt/libdefault-lib-file_store.o" => [ "providers/implementations/storemgmt/file_store.c" ], @@ -25279,8 +29654,12 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ec_sig.o", "providers/common/der/libcommon-lib-der_ecx_gen.o", "providers/common/der/libcommon-lib-der_ecx_key.o", + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o", + "providers/common/der/libcommon-lib-der_ml_dsa_key.o", "providers/common/der/libcommon-lib-der_rsa_gen.o", "providers/common/der/libcommon-lib-der_rsa_key.o", + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o", + "providers/common/der/libcommon-lib-der_slh_dsa_key.o", "providers/common/der/libcommon-lib-der_wrap_gen.o", "providers/common/libcommon-lib-provider_ctx.o", "providers/common/libcommon-lib-provider_err.o", @@ -25292,7 +29671,7 @@ our %unified_info = ( "providers/implementations/ciphers/libcommon-lib-ciphercommon_gcm_hw.o", "providers/implementations/ciphers/libcommon-lib-ciphercommon_hw.o", "providers/implementations/digests/libcommon-lib-digestcommon.o", - "ssl/record/libcommon-lib-tls_pad.o" + "ssl/record/methods/libcommon-lib-tls_pad.o" ], "providers/libcrypto-lib-baseprov.o" => [ "providers/baseprov.c" @@ -25328,6 +29707,9 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_aes_ccm_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_polyval.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_ocb.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_ocb_hw.o", @@ -25352,7 +29734,13 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_cts.o", "providers/implementations/ciphers/libdefault-lib-cipher_null.o", "providers/implementations/ciphers/libdefault-lib-cipher_sm4.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_sm4_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes_common.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes_default.o", @@ -25381,11 +29769,16 @@ our %unified_info = ( "providers/implementations/encode_decode/libdefault-lib-encode_key2ms.o", "providers/implementations/encode_decode/libdefault-lib-encode_key2text.o", "providers/implementations/encode_decode/libdefault-lib-endecoder_common.o", + "providers/implementations/encode_decode/libdefault-lib-ml_common_codecs.o", + "providers/implementations/encode_decode/libdefault-lib-ml_dsa_codecs.o", + "providers/implementations/encode_decode/libdefault-lib-ml_kem_codecs.o", "providers/implementations/exchange/libdefault-lib-dh_exch.o", "providers/implementations/exchange/libdefault-lib-ecdh_exch.o", "providers/implementations/exchange/libdefault-lib-ecx_exch.o", "providers/implementations/exchange/libdefault-lib-kdf_exch.o", + "providers/implementations/kdfs/libdefault-lib-argon2.o", "providers/implementations/kdfs/libdefault-lib-hkdf.o", + "providers/implementations/kdfs/libdefault-lib-hmacdrbg_kdf.o", "providers/implementations/kdfs/libdefault-lib-kbkdf.o", "providers/implementations/kdfs/libdefault-lib-krb5kdf.o", "providers/implementations/kdfs/libdefault-lib-pbkdf2.o", @@ -25396,6 +29789,11 @@ our %unified_info = ( "providers/implementations/kdfs/libdefault-lib-sskdf.o", "providers/implementations/kdfs/libdefault-lib-tls1_prf.o", "providers/implementations/kdfs/libdefault-lib-x942kdf.o", + "providers/implementations/kem/libdefault-lib-ec_kem.o", + "providers/implementations/kem/libdefault-lib-ecx_kem.o", + "providers/implementations/kem/libdefault-lib-kem_util.o", + "providers/implementations/kem/libdefault-lib-ml_kem_kem.o", + "providers/implementations/kem/libdefault-lib-mlx_kem.o", "providers/implementations/kem/libdefault-lib-rsa_kem.o", "providers/implementations/keymgmt/libdefault-lib-dh_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-dsa_kmgmt.o", @@ -25403,7 +29801,11 @@ our %unified_info = ( "providers/implementations/keymgmt/libdefault-lib-ecx_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-kdf_legacy_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-mac_legacy_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-ml_dsa_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-ml_kem_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-mlx_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-rsa_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-slh_dsa_kmgmt.o", "providers/implementations/macs/libdefault-lib-blake2b_mac.o", "providers/implementations/macs/libdefault-lib-blake2s_mac.o", "providers/implementations/macs/libdefault-lib-cmac_prov.o", @@ -25412,14 +29814,14 @@ our %unified_info = ( "providers/implementations/macs/libdefault-lib-kmac_prov.o", "providers/implementations/macs/libdefault-lib-poly1305_prov.o", "providers/implementations/macs/libdefault-lib-siphash_prov.o", - "providers/implementations/rands/libdefault-lib-crngt.o", "providers/implementations/rands/libdefault-lib-drbg.o", "providers/implementations/rands/libdefault-lib-drbg_ctr.o", "providers/implementations/rands/libdefault-lib-drbg_hash.o", "providers/implementations/rands/libdefault-lib-drbg_hmac.o", "providers/implementations/rands/libdefault-lib-seed_src.o", + "providers/implementations/rands/libdefault-lib-seed_src_jitter.o", "providers/implementations/rands/libdefault-lib-test_rng.o", - "providers/implementations/rands/seeding/libdefault-lib-rand_cpu_x86.o", + "providers/implementations/rands/seeding/libdefault-lib-rand_cpu_arm64.o", "providers/implementations/rands/seeding/libdefault-lib-rand_tsc.o", "providers/implementations/rands/seeding/libdefault-lib-rand_unix.o", "providers/implementations/rands/seeding/libdefault-lib-rand_win.o", @@ -25427,11 +29829,15 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-ecdsa_sig.o", "providers/implementations/signature/libdefault-lib-eddsa_sig.o", "providers/implementations/signature/libdefault-lib-mac_legacy_sig.o", + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o", "providers/implementations/signature/libdefault-lib-rsa_sig.o", + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o", "providers/implementations/signature/libdefault-lib-sm2_sig.o", + "providers/implementations/skeymgmt/libdefault-lib-aes_skmgmt.o", + "providers/implementations/skeymgmt/libdefault-lib-generic.o", "providers/implementations/storemgmt/libdefault-lib-file_store.o", "providers/implementations/storemgmt/libdefault-lib-file_store_any2obj.o", - "ssl/libdefault-lib-s3_cbc.o" + "ssl/record/methods/libdefault-lib-ssl3_cbc.o" ], "providers/libfips.a" => [ "crypto/aes/libfips-lib-aes_cbc.o", @@ -25439,6 +29845,7 @@ our %unified_info = ( "crypto/aes/libfips-lib-aes_ecb.o", "crypto/aes/libfips-lib-aes_misc.o", "crypto/aes/libfips-lib-aesv8-armx.o", + "crypto/aes/libfips-lib-bsaes-armv8.o", "crypto/aes/libfips-lib-vpaes-armv8.o", "crypto/bn/libfips-lib-armv8-mont.o", "crypto/bn/libfips-lib-bn_add.o", @@ -25520,6 +29927,9 @@ our %unified_info = ( "crypto/ec/libfips-lib-ecp_nistz256-armv8.o", "crypto/ec/libfips-lib-ecp_nistz256.o", "crypto/ec/libfips-lib-ecp_oct.o", + "crypto/ec/libfips-lib-ecp_sm2p256-armv8.o", + "crypto/ec/libfips-lib-ecp_sm2p256.o", + "crypto/ec/libfips-lib-ecp_sm2p256_table.o", "crypto/ec/libfips-lib-ecp_smpl.o", "crypto/ec/libfips-lib-ecx_backend.o", "crypto/ec/libfips-lib-ecx_key.o", @@ -25538,14 +29948,15 @@ our %unified_info = ( "crypto/evp/libfips-lib-kem.o", "crypto/evp/libfips-lib-keymgmt_lib.o", "crypto/evp/libfips-lib-keymgmt_meth.o", - "crypto/evp/libfips-lib-m_sigver.o", "crypto/evp/libfips-lib-mac_lib.o", "crypto/evp/libfips-lib-mac_meth.o", "crypto/evp/libfips-lib-p_lib.o", "crypto/evp/libfips-lib-pmeth_check.o", "crypto/evp/libfips-lib-pmeth_gn.o", "crypto/evp/libfips-lib-pmeth_lib.o", + "crypto/evp/libfips-lib-s_lib.o", "crypto/evp/libfips-lib-signature.o", + "crypto/evp/libfips-lib-skeymgmt_meth.o", "crypto/ffc/libfips-lib-ffc_backend.o", "crypto/ffc/libfips-lib-ffc_dh.o", "crypto/ffc/libfips-lib-ffc_key_generate.o", @@ -25553,6 +29964,8 @@ our %unified_info = ( "crypto/ffc/libfips-lib-ffc_params.o", "crypto/ffc/libfips-lib-ffc_params_generate.o", "crypto/ffc/libfips-lib-ffc_params_validate.o", + "crypto/hashtable/libfips-lib-hashfunc.o", + "crypto/hashtable/libfips-lib-hashtable.o", "crypto/hmac/libfips-lib-hmac.o", "crypto/lhash/libfips-lib-lhash.o", "crypto/libfips-lib-arm64cpuid.o", @@ -25576,6 +29989,7 @@ our %unified_info = ( "crypto/libfips-lib-params.o", "crypto/libfips-lib-params_dup.o", "crypto/libfips-lib-params_from_text.o", + "crypto/libfips-lib-params_idx.o", "crypto/libfips-lib-provider_core.o", "crypto/libfips-lib-provider_predefined.o", "crypto/libfips-lib-self_test_core.o", @@ -25584,6 +29998,17 @@ our %unified_info = ( "crypto/libfips-lib-threads_none.o", "crypto/libfips-lib-threads_pthread.o", "crypto/libfips-lib-threads_win.o", + "crypto/libfips-lib-time.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_encoders.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_key.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_key_compress.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_matrix.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_ntt.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_params.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_sample.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_sign.o", + "crypto/ml_kem/libfips-lib-ml_kem.o", + "crypto/modes/libfips-lib-aes-gcm-armv8-unroll8_64.o", "crypto/modes/libfips-lib-aes-gcm-armv8_64.o", "crypto/modes/libfips-lib-cbc128.o", "crypto/modes/libfips-lib-ccm128.o", @@ -25594,6 +30019,7 @@ our %unified_info = ( "crypto/modes/libfips-lib-ofb128.o", "crypto/modes/libfips-lib-wrap128.o", "crypto/modes/libfips-lib-xts128.o", + "crypto/modes/libfips-lib-xts128gb.o", "crypto/property/libfips-lib-defn_cache.o", "crypto/property/libfips-lib-property.o", "crypto/property/libfips-lib-property_parse.o", @@ -25625,7 +30051,23 @@ our %unified_info = ( "crypto/sha/libfips-lib-sha3.o", "crypto/sha/libfips-lib-sha512-armv8.o", "crypto/sha/libfips-lib-sha512.o", + "crypto/slh_dsa/libfips-lib-slh_adrs.o", + "crypto/slh_dsa/libfips-lib-slh_dsa.o", + "crypto/slh_dsa/libfips-lib-slh_dsa_hash_ctx.o", + "crypto/slh_dsa/libfips-lib-slh_dsa_key.o", + "crypto/slh_dsa/libfips-lib-slh_fors.o", + "crypto/slh_dsa/libfips-lib-slh_hash.o", + "crypto/slh_dsa/libfips-lib-slh_hypertree.o", + "crypto/slh_dsa/libfips-lib-slh_params.o", + "crypto/slh_dsa/libfips-lib-slh_wots.o", + "crypto/slh_dsa/libfips-lib-slh_xmss.o", "crypto/stack/libfips-lib-stack.o", + "crypto/thread/arch/libfips-lib-thread_none.o", + "crypto/thread/arch/libfips-lib-thread_posix.o", + "crypto/thread/arch/libfips-lib-thread_win.o", + "crypto/thread/libfips-lib-api.o", + "crypto/thread/libfips-lib-arch.o", + "crypto/thread/libfips-lib-internal.o", "providers/common/der/libfips-lib-der_rsa_sig.o", "providers/common/libfips-lib-bio_prov.o", "providers/common/libfips-lib-capabilities.o", @@ -25634,6 +30076,7 @@ our %unified_info = ( "providers/common/libfips-lib-provider_util.o", "providers/common/libfips-lib-securitycheck.o", "providers/common/libfips-lib-securitycheck_fips.o", + "providers/fips/libfips-lib-fipsindicator.o", "providers/fips/libfips-lib-fipsprov.o", "providers/fips/libfips-lib-self_test.o", "providers/fips/libfips-lib-self_test_kats.o", @@ -25671,6 +30114,8 @@ our %unified_info = ( "providers/implementations/kdfs/libfips-lib-sskdf.o", "providers/implementations/kdfs/libfips-lib-tls1_prf.o", "providers/implementations/kdfs/libfips-lib-x942kdf.o", + "providers/implementations/kem/libfips-lib-ml_kem_kem.o", + "providers/implementations/kem/libfips-lib-mlx_kem.o", "providers/implementations/kem/libfips-lib-rsa_kem.o", "providers/implementations/keymgmt/libfips-lib-dh_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-dsa_kmgmt.o", @@ -25678,24 +30123,32 @@ our %unified_info = ( "providers/implementations/keymgmt/libfips-lib-ecx_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-kdf_legacy_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-mac_legacy_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-ml_dsa_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-ml_kem_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-mlx_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-rsa_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-slh_dsa_kmgmt.o", "providers/implementations/macs/libfips-lib-cmac_prov.o", "providers/implementations/macs/libfips-lib-gmac_prov.o", "providers/implementations/macs/libfips-lib-hmac_prov.o", "providers/implementations/macs/libfips-lib-kmac_prov.o", - "providers/implementations/rands/libfips-lib-crngt.o", "providers/implementations/rands/libfips-lib-drbg.o", "providers/implementations/rands/libfips-lib-drbg_ctr.o", "providers/implementations/rands/libfips-lib-drbg_hash.o", "providers/implementations/rands/libfips-lib-drbg_hmac.o", + "providers/implementations/rands/libfips-lib-fips_crng_test.o", "providers/implementations/rands/libfips-lib-test_rng.o", "providers/implementations/signature/libfips-lib-dsa_sig.o", "providers/implementations/signature/libfips-lib-ecdsa_sig.o", "providers/implementations/signature/libfips-lib-eddsa_sig.o", "providers/implementations/signature/libfips-lib-mac_legacy_sig.o", + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o", "providers/implementations/signature/libfips-lib-rsa_sig.o", + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o", + "providers/implementations/skeymgmt/libfips-lib-aes_skmgmt.o", + "providers/implementations/skeymgmt/libfips-lib-generic.o", "providers/libcommon.a", - "ssl/libfips-lib-s3_cbc.o" + "ssl/record/methods/libfips-lib-ssl3_cbc.o" ], "providers/liblegacy-lib-prov_running.o" => [ "providers/prov_running.c" @@ -25725,13 +30178,12 @@ our %unified_info = ( "providers/implementations/digests/liblegacy-lib-ripemd_prov.o", "providers/implementations/digests/liblegacy-lib-wp_prov.o", "providers/implementations/kdfs/liblegacy-lib-pbkdf1.o", + "providers/implementations/kdfs/liblegacy-lib-pvkkdf.o", "providers/liblegacy-lib-prov_running.o" ], - "ssl/libdefault-lib-s3_cbc.o" => [ - "ssl/s3_cbc.c" - ], - "ssl/libfips-lib-s3_cbc.o" => [ - "ssl/s3_cbc.c" + "providers/libtemplate.a" => [ + "providers/implementations/kem/libtemplate-lib-template_kem.o", + "providers/implementations/keymgmt/libtemplate-lib-template_kmgmt.o" ], "ssl/libssl-lib-bio_ssl.o" => [ "ssl/bio_ssl.c" @@ -25751,6 +30203,9 @@ our %unified_info = ( "ssl/libssl-lib-pqueue.o" => [ "ssl/pqueue.c" ], + "ssl/libssl-lib-priority_queue.o" => [ + "ssl/priority_queue.c" + ], "ssl/libssl-lib-s3_enc.o" => [ "ssl/s3_enc.c" ], @@ -25766,15 +30221,15 @@ our %unified_info = ( "ssl/libssl-lib-ssl_cert.o" => [ "ssl/ssl_cert.c" ], + "ssl/libssl-lib-ssl_cert_comp.o" => [ + "ssl/ssl_cert_comp.c" + ], "ssl/libssl-lib-ssl_ciph.o" => [ "ssl/ssl_ciph.c" ], "ssl/libssl-lib-ssl_conf.o" => [ "ssl/ssl_conf.c" ], - "ssl/libssl-lib-ssl_err.o" => [ - "ssl/ssl_err.c" - ], "ssl/libssl-lib-ssl_err_legacy.o" => [ "ssl/ssl_err_legacy.c" ], @@ -25823,11 +30278,131 @@ our %unified_info = ( "ssl/libssl-lib-tls_srp.o" => [ "ssl/tls_srp.c" ], - "ssl/record/libcommon-lib-tls_pad.o" => [ - "ssl/record/tls_pad.c" + "ssl/quic/libssl-lib-cc_newreno.o" => [ + "ssl/quic/cc_newreno.c" + ], + "ssl/quic/libssl-lib-json_enc.o" => [ + "ssl/quic/json_enc.c" + ], + "ssl/quic/libssl-lib-qlog.o" => [ + "ssl/quic/qlog.c" + ], + "ssl/quic/libssl-lib-qlog_event_helpers.o" => [ + "ssl/quic/qlog_event_helpers.c" + ], + "ssl/quic/libssl-lib-quic_ackm.o" => [ + "ssl/quic/quic_ackm.c" + ], + "ssl/quic/libssl-lib-quic_cfq.o" => [ + "ssl/quic/quic_cfq.c" + ], + "ssl/quic/libssl-lib-quic_channel.o" => [ + "ssl/quic/quic_channel.c" + ], + "ssl/quic/libssl-lib-quic_demux.o" => [ + "ssl/quic/quic_demux.c" + ], + "ssl/quic/libssl-lib-quic_engine.o" => [ + "ssl/quic/quic_engine.c" + ], + "ssl/quic/libssl-lib-quic_fc.o" => [ + "ssl/quic/quic_fc.c" + ], + "ssl/quic/libssl-lib-quic_fifd.o" => [ + "ssl/quic/quic_fifd.c" + ], + "ssl/quic/libssl-lib-quic_impl.o" => [ + "ssl/quic/quic_impl.c" + ], + "ssl/quic/libssl-lib-quic_lcidm.o" => [ + "ssl/quic/quic_lcidm.c" + ], + "ssl/quic/libssl-lib-quic_method.o" => [ + "ssl/quic/quic_method.c" + ], + "ssl/quic/libssl-lib-quic_obj.o" => [ + "ssl/quic/quic_obj.c" + ], + "ssl/quic/libssl-lib-quic_port.o" => [ + "ssl/quic/quic_port.c" + ], + "ssl/quic/libssl-lib-quic_rcidm.o" => [ + "ssl/quic/quic_rcidm.c" + ], + "ssl/quic/libssl-lib-quic_reactor.o" => [ + "ssl/quic/quic_reactor.c" + ], + "ssl/quic/libssl-lib-quic_reactor_wait_ctx.o" => [ + "ssl/quic/quic_reactor_wait_ctx.c" + ], + "ssl/quic/libssl-lib-quic_record_rx.o" => [ + "ssl/quic/quic_record_rx.c" + ], + "ssl/quic/libssl-lib-quic_record_shared.o" => [ + "ssl/quic/quic_record_shared.c" + ], + "ssl/quic/libssl-lib-quic_record_tx.o" => [ + "ssl/quic/quic_record_tx.c" + ], + "ssl/quic/libssl-lib-quic_record_util.o" => [ + "ssl/quic/quic_record_util.c" + ], + "ssl/quic/libssl-lib-quic_rstream.o" => [ + "ssl/quic/quic_rstream.c" ], - "ssl/record/libssl-lib-dtls1_bitmap.o" => [ - "ssl/record/dtls1_bitmap.c" + "ssl/quic/libssl-lib-quic_rx_depack.o" => [ + "ssl/quic/quic_rx_depack.c" + ], + "ssl/quic/libssl-lib-quic_sf_list.o" => [ + "ssl/quic/quic_sf_list.c" + ], + "ssl/quic/libssl-lib-quic_srt_gen.o" => [ + "ssl/quic/quic_srt_gen.c" + ], + "ssl/quic/libssl-lib-quic_srtm.o" => [ + "ssl/quic/quic_srtm.c" + ], + "ssl/quic/libssl-lib-quic_sstream.o" => [ + "ssl/quic/quic_sstream.c" + ], + "ssl/quic/libssl-lib-quic_statm.o" => [ + "ssl/quic/quic_statm.c" + ], + "ssl/quic/libssl-lib-quic_stream_map.o" => [ + "ssl/quic/quic_stream_map.c" + ], + "ssl/quic/libssl-lib-quic_thread_assist.o" => [ + "ssl/quic/quic_thread_assist.c" + ], + "ssl/quic/libssl-lib-quic_tls.o" => [ + "ssl/quic/quic_tls.c" + ], + "ssl/quic/libssl-lib-quic_tls_api.o" => [ + "ssl/quic/quic_tls_api.c" + ], + "ssl/quic/libssl-lib-quic_trace.o" => [ + "ssl/quic/quic_trace.c" + ], + "ssl/quic/libssl-lib-quic_tserver.o" => [ + "ssl/quic/quic_tserver.c" + ], + "ssl/quic/libssl-lib-quic_txp.o" => [ + "ssl/quic/quic_txp.c" + ], + "ssl/quic/libssl-lib-quic_txpim.o" => [ + "ssl/quic/quic_txpim.c" + ], + "ssl/quic/libssl-lib-quic_types.o" => [ + "ssl/quic/quic_types.c" + ], + "ssl/quic/libssl-lib-quic_wire.o" => [ + "ssl/quic/quic_wire.c" + ], + "ssl/quic/libssl-lib-quic_wire_pkt.o" => [ + "ssl/quic/quic_wire_pkt.c" + ], + "ssl/quic/libssl-lib-uint_set.o" => [ + "ssl/quic/uint_set.c" ], "ssl/record/libssl-lib-rec_layer_d1.o" => [ "ssl/record/rec_layer_d1.c" @@ -25835,14 +30410,44 @@ our %unified_info = ( "ssl/record/libssl-lib-rec_layer_s3.o" => [ "ssl/record/rec_layer_s3.c" ], - "ssl/record/libssl-lib-ssl3_buffer.o" => [ - "ssl/record/ssl3_buffer.c" + "ssl/record/methods/libcommon-lib-tls_pad.o" => [ + "ssl/record/methods/tls_pad.c" + ], + "ssl/record/methods/libdefault-lib-ssl3_cbc.o" => [ + "ssl/record/methods/ssl3_cbc.c" + ], + "ssl/record/methods/libfips-lib-ssl3_cbc.o" => [ + "ssl/record/methods/ssl3_cbc.c" + ], + "ssl/record/methods/libssl-lib-dtls_meth.o" => [ + "ssl/record/methods/dtls_meth.c" + ], + "ssl/record/methods/libssl-lib-ssl3_meth.o" => [ + "ssl/record/methods/ssl3_meth.c" + ], + "ssl/record/methods/libssl-lib-tls13_meth.o" => [ + "ssl/record/methods/tls13_meth.c" + ], + "ssl/record/methods/libssl-lib-tls1_meth.o" => [ + "ssl/record/methods/tls1_meth.c" + ], + "ssl/record/methods/libssl-lib-tls_common.o" => [ + "ssl/record/methods/tls_common.c" ], - "ssl/record/libssl-lib-ssl3_record.o" => [ - "ssl/record/ssl3_record.c" + "ssl/record/methods/libssl-lib-tls_multib.o" => [ + "ssl/record/methods/tls_multib.c" ], - "ssl/record/libssl-lib-ssl3_record_tls13.o" => [ - "ssl/record/ssl3_record_tls13.c" + "ssl/record/methods/libssl-lib-tlsany_meth.o" => [ + "ssl/record/methods/tlsany_meth.c" + ], + "ssl/rio/libssl-lib-poll_builder.o" => [ + "ssl/rio/poll_builder.c" + ], + "ssl/rio/libssl-lib-poll_immediate.o" => [ + "ssl/rio/poll_immediate.c" + ], + "ssl/rio/libssl-lib-rio_notifier.o" => [ + "ssl/rio/rio_notifier.c" ], "ssl/statem/libssl-lib-extensions.o" => [ "ssl/statem/extensions.c" @@ -25938,6 +30543,8 @@ our %unified_info = ( "test/asn1_string_table_test.c" ], "test/asn1_time_test" => [ + "crypto/asn1/asn1_time_test-bin-a_time.o", + "crypto/asn1_time_test-bin-ctype.o", "test/asn1_time_test-bin-asn1_time_test.o" ], "test/asn1_time_test-bin-asn1_time_test.o" => [ @@ -25968,6 +30575,18 @@ our %unified_info = ( "test/bftest-bin-bftest.o" => [ "test/bftest.c" ], + "test/bio_addr_test" => [ + "test/bio_addr_test-bin-bio_addr_test.o" + ], + "test/bio_addr_test-bin-bio_addr_test.o" => [ + "test/bio_addr_test.c" + ], + "test/bio_base64_test" => [ + "test/bio_base64_test-bin-bio_base64_test.o" + ], + "test/bio_base64_test-bin-bio_base64_test.o" => [ + "test/bio_base64_test.c" + ], "test/bio_callback_test" => [ "test/bio_callback_test-bin-bio_callback_test.o" ], @@ -25980,6 +30599,12 @@ our %unified_info = ( "test/bio_core_test-bin-bio_core_test.o" => [ "test/bio_core_test.c" ], + "test/bio_dgram_test" => [ + "test/bio_dgram_test-bin-bio_dgram_test.o" + ], + "test/bio_dgram_test-bin-bio_dgram_test.o" => [ + "test/bio_dgram_test.c" + ], "test/bio_enc_test" => [ "test/bio_enc_test-bin-bio_enc_test.o" ], @@ -25992,6 +30617,12 @@ our %unified_info = ( "test/bio_memleak_test-bin-bio_memleak_test.o" => [ "test/bio_memleak_test.c" ], + "test/bio_meth_test" => [ + "test/bio_meth_test-bin-bio_meth_test.o" + ], + "test/bio_meth_test-bin-bio_meth_test.o" => [ + "test/bio_meth_test.c" + ], "test/bio_prefix_text" => [ "test/bio_prefix_text-bin-bio_prefix_text.o" ], @@ -26010,6 +30641,12 @@ our %unified_info = ( "test/bio_readbuffer_test-bin-bio_readbuffer_test.o" => [ "test/bio_readbuffer_test.c" ], + "test/bio_tfo_test" => [ + "test/bio_tfo_test-bin-bio_tfo_test.o" + ], + "test/bio_tfo_test-bin-bio_tfo_test.o" => [ + "test/bio_tfo_test.c" + ], "test/bioprinttest" => [ "test/bioprinttest-bin-bioprinttest.o" ], @@ -26028,6 +30665,12 @@ our %unified_info = ( "test/bntest-bin-bntest.o" => [ "test/bntest.c" ], + "test/build_wincrypt_test" => [ + "test/build_wincrypt_test-bin-build_wincrypt_test.o" + ], + "test/build_wincrypt_test-bin-build_wincrypt_test.o" => [ + "test/build_wincrypt_test.c" + ], "test/buildtest_c_aes" => [ "test/buildtest_c_aes-bin-buildtest_aes.o" ], @@ -26058,6 +30701,12 @@ our %unified_info = ( "test/buildtest_c_buffer-bin-buildtest_buffer.o" => [ "test/buildtest_buffer.c" ], + "test/buildtest_c_byteorder" => [ + "test/buildtest_c_byteorder-bin-buildtest_byteorder.o" + ], + "test/buildtest_c_byteorder-bin-buildtest_byteorder.o" => [ + "test/buildtest_byteorder.c" + ], "test/buildtest_c_camellia" => [ "test/buildtest_c_camellia-bin-buildtest_camellia.o" ], @@ -26106,12 +30755,6 @@ our %unified_info = ( "test/buildtest_c_core_dispatch-bin-buildtest_core_dispatch.o" => [ "test/buildtest_core_dispatch.c" ], - "test/buildtest_c_core_names" => [ - "test/buildtest_c_core_names-bin-buildtest_core_names.o" - ], - "test/buildtest_c_core_names-bin-buildtest_core_names.o" => [ - "test/buildtest_core_names.c" - ], "test/buildtest_c_core_object" => [ "test/buildtest_c_core_object-bin-buildtest_core_object.o" ], @@ -26160,6 +30803,12 @@ our %unified_info = ( "test/buildtest_c_e_os2-bin-buildtest_e_os2.o" => [ "test/buildtest_e_os2.c" ], + "test/buildtest_c_e_ostime" => [ + "test/buildtest_c_e_ostime-bin-buildtest_e_ostime.o" + ], + "test/buildtest_c_e_ostime-bin-buildtest_e_ostime.o" => [ + "test/buildtest_e_ostime.c" + ], "test/buildtest_c_ebcdic" => [ "test/buildtest_c_ebcdic-bin-buildtest_ebcdic.o" ], @@ -26214,6 +30863,12 @@ our %unified_info = ( "test/buildtest_c_hmac-bin-buildtest_hmac.o" => [ "test/buildtest_hmac.c" ], + "test/buildtest_c_hpke" => [ + "test/buildtest_c_hpke-bin-buildtest_hpke.o" + ], + "test/buildtest_c_hpke-bin-buildtest_hpke.o" => [ + "test/buildtest_hpke.c" + ], "test/buildtest_c_http" => [ "test/buildtest_c_http-bin-buildtest_http.o" ], @@ -26226,6 +30881,12 @@ our %unified_info = ( "test/buildtest_c_idea-bin-buildtest_idea.o" => [ "test/buildtest_idea.c" ], + "test/buildtest_c_indicator" => [ + "test/buildtest_c_indicator-bin-buildtest_indicator.o" + ], + "test/buildtest_c_indicator-bin-buildtest_indicator.o" => [ + "test/buildtest_indicator.c" + ], "test/buildtest_c_kdf" => [ "test/buildtest_c_kdf-bin-buildtest_kdf.o" ], @@ -26256,6 +30917,12 @@ our %unified_info = ( "test/buildtest_c_mdc2-bin-buildtest_mdc2.o" => [ "test/buildtest_mdc2.c" ], + "test/buildtest_c_ml_kem" => [ + "test/buildtest_c_ml_kem-bin-buildtest_ml_kem.o" + ], + "test/buildtest_c_ml_kem-bin-buildtest_ml_kem.o" => [ + "test/buildtest_ml_kem.c" + ], "test/buildtest_c_modes" => [ "test/buildtest_c_modes-bin-buildtest_modes.o" ], @@ -26316,6 +30983,12 @@ our %unified_info = ( "test/buildtest_c_provider-bin-buildtest_provider.o" => [ "test/buildtest_provider.c" ], + "test/buildtest_c_quic" => [ + "test/buildtest_c_quic-bin-buildtest_quic.o" + ], + "test/buildtest_c_quic-bin-buildtest_quic.o" => [ + "test/buildtest_quic.c" + ], "test/buildtest_c_rand" => [ "test/buildtest_c_rand-bin-buildtest_rand.o" ], @@ -26400,6 +31073,12 @@ our %unified_info = ( "test/buildtest_c_symhacks-bin-buildtest_symhacks.o" => [ "test/buildtest_symhacks.c" ], + "test/buildtest_c_thread" => [ + "test/buildtest_c_thread-bin-buildtest_thread.o" + ], + "test/buildtest_c_thread-bin-buildtest_thread.o" => [ + "test/buildtest_thread.c" + ], "test/buildtest_c_tls1" => [ "test/buildtest_c_tls1-bin-buildtest_tls1.o" ], @@ -26430,6 +31109,29 @@ our %unified_info = ( "test/buildtest_c_whrlpool-bin-buildtest_whrlpool.o" => [ "test/buildtest_whrlpool.c" ], + "test/byteorder_test" => [ + "test/byteorder_test-bin-byteorder_test.o" + ], + "test/byteorder_test-bin-byteorder_test.o" => [ + "test/byteorder_test.c" + ], + "test/ca_internals_test" => [ + "apps/ca_internals_test-bin-ca.o", + "apps/lib/ca_internals_test-bin-app_libctx.o", + "apps/lib/ca_internals_test-bin-app_provider.o", + "apps/lib/ca_internals_test-bin-app_rand.o", + "apps/lib/ca_internals_test-bin-app_x509.o", + "apps/lib/ca_internals_test-bin-apps.o", + "apps/lib/ca_internals_test-bin-apps_ui.o", + "apps/lib/ca_internals_test-bin-engine.o", + "apps/lib/ca_internals_test-bin-fmt.o", + "crypto/asn1/ca_internals_test-bin-a_time.o", + "crypto/ca_internals_test-bin-ctype.o", + "test/ca_internals_test-bin-ca_internals_test.o" + ], + "test/ca_internals_test-bin-ca_internals_test.o" => [ + "test/ca_internals_test.c" + ], "test/casttest" => [ "test/casttest-bin-casttest.o" ], @@ -26608,6 +31310,12 @@ our %unified_info = ( "test/danetest-bin-danetest.o" => [ "test/danetest.c" ], + "test/decoder_propq_test" => [ + "test/decoder_propq_test-bin-decoder_propq_test.o" + ], + "test/decoder_propq_test-bin-decoder_propq_test.o" => [ + "test/decoder_propq_test.c" + ], "test/defltfips_test" => [ "test/defltfips_test-bin-defltfips_test.o" ], @@ -26689,6 +31397,7 @@ our %unified_info = ( "test/ectest.c" ], "test/endecode_test" => [ + "providers/endecode_test-bin-legacyprov.o", "test/endecode_test-bin-endecode_test.o", "test/helpers/endecode_test-bin-predefined_dhparams.o" ], @@ -26721,17 +31430,29 @@ our %unified_info = ( ], "test/evp_extra_test" => [ "providers/evp_extra_test-bin-legacyprov.o", - "test/evp_extra_test-bin-evp_extra_test.o" + "test/evp_extra_test-bin-evp_extra_test.o", + "test/evp_extra_test-bin-fake_pipelineprov.o", + "test/evp_extra_test-bin-fake_rsaprov.o" ], "test/evp_extra_test-bin-evp_extra_test.o" => [ "test/evp_extra_test.c" ], + "test/evp_extra_test-bin-fake_pipelineprov.o" => [ + "test/fake_pipelineprov.c" + ], + "test/evp_extra_test-bin-fake_rsaprov.o" => [ + "test/fake_rsaprov.c" + ], "test/evp_extra_test2" => [ - "test/evp_extra_test2-bin-evp_extra_test2.o" + "test/evp_extra_test2-bin-evp_extra_test2.o", + "test/evp_extra_test2-bin-tls-provider.o" ], "test/evp_extra_test2-bin-evp_extra_test2.o" => [ "test/evp_extra_test2.c" ], + "test/evp_extra_test2-bin-tls-provider.o" => [ + "test/tls-provider.c" + ], "test/evp_fetch_prov_test" => [ "test/evp_fetch_prov_test-bin-evp_fetch_prov_test.o" ], @@ -26756,6 +31477,12 @@ our %unified_info = ( "test/evp_pkey_ctx_new_from_name-bin-evp_pkey_ctx_new_from_name.o" => [ "test/evp_pkey_ctx_new_from_name.c" ], + "test/evp_pkey_dhkem_test" => [ + "test/evp_pkey_dhkem_test-bin-evp_pkey_dhkem_test.o" + ], + "test/evp_pkey_dhkem_test-bin-evp_pkey_dhkem_test.o" => [ + "test/evp_pkey_dhkem_test.c" + ], "test/evp_pkey_dparams_test" => [ "test/evp_pkey_dparams_test-bin-evp_pkey_dparams_test.o" ], @@ -26768,12 +31495,28 @@ our %unified_info = ( "test/evp_pkey_provided_test-bin-evp_pkey_provided_test.o" => [ "test/evp_pkey_provided_test.c" ], + "test/evp_skey_test" => [ + "test/evp_skey_test-bin-evp_skey_test.o", + "test/evp_skey_test-bin-fake_cipherprov.o" + ], + "test/evp_skey_test-bin-evp_skey_test.o" => [ + "test/evp_skey_test.c" + ], + "test/evp_skey_test-bin-fake_cipherprov.o" => [ + "test/fake_cipherprov.c" + ], "test/evp_test" => [ "test/evp_test-bin-evp_test.o" ], "test/evp_test-bin-evp_test.o" => [ "test/evp_test.c" ], + "test/evp_xof_test" => [ + "test/evp_xof_test-bin-evp_xof_test.o" + ], + "test/evp_xof_test-bin-evp_xof_test.o" => [ + "test/evp_xof_test.c" + ], "test/exdatatest" => [ "test/exdatatest-bin-exdatatest.o" ], @@ -26859,15 +31602,108 @@ our %unified_info = ( "test/helpers/fatalerrtest-bin-ssltestlib.o" => [ "test/helpers/ssltestlib.c" ], + "test/helpers/json_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/json_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/json_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/json_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/pkcs12_api_test-bin-pkcs12.o" => [ + "test/helpers/pkcs12.c" + ], "test/helpers/pkcs12_format_test-bin-pkcs12.o" => [ "test/helpers/pkcs12.c" ], + "test/helpers/quic_multistream_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quic_multistream_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quic_multistream_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quic_multistream_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quic_newcid_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quic_newcid_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quic_newcid_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quic_newcid_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quic_radix_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quic_radix_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quic_radix_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quic_radix_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quic_srt_gen_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quic_srt_gen_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quic_srt_gen_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quic_srt_gen_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quicapitest-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quicapitest-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quicapitest-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quicapitest-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quicfaultstest-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quicfaultstest-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quicfaultstest-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quicfaultstest-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], "test/helpers/recordlentest-bin-ssltestlib.o" => [ "test/helpers/ssltestlib.c" ], + "test/helpers/rpktest-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], "test/helpers/servername_test-bin-ssltestlib.o" => [ "test/helpers/ssltestlib.c" ], + "test/helpers/ssl_handshake_rtt_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], "test/helpers/ssl_old_test-bin-predefined_dhparams.o" => [ "test/helpers/predefined_dhparams.c" ], @@ -26895,6 +31731,9 @@ our %unified_info = ( "test/helpers/tls13ccstest-bin-ssltestlib.o" => [ "test/helpers/ssltestlib.c" ], + "test/helpers/tls13groupselection_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], "test/hexstr_test" => [ "test/hexstr_test-bin-hexstr_test.o" ], @@ -26907,6 +31746,12 @@ our %unified_info = ( "test/hmactest-bin-hmactest.o" => [ "test/hmactest.c" ], + "test/hpke_test" => [ + "test/hpke_test-bin-hpke_test.o" + ], + "test/hpke_test-bin-hpke_test.o" => [ + "test/hpke_test.c" + ], "test/http_test" => [ "test/http_test-bin-http_test.o" ], @@ -26925,6 +31770,16 @@ our %unified_info = ( "test/igetest-bin-igetest.o" => [ "test/igetest.c" ], + "test/json_test" => [ + "test/helpers/json_test-bin-noisydgrambio.o", + "test/helpers/json_test-bin-pktsplitbio.o", + "test/helpers/json_test-bin-quictestlib.o", + "test/helpers/json_test-bin-ssltestlib.o", + "test/json_test-bin-json_test.o" + ], + "test/json_test-bin-json_test.o" => [ + "test/json_test.c" + ], "test/keymgmt_internal_test" => [ "test/keymgmt_internal_test-bin-keymgmt_internal_test.o" ], @@ -26945,6 +31800,7 @@ our %unified_info = ( "test/testutil/libtestutil-lib-driver.o", "test/testutil/libtestutil-lib-fake_random.o", "test/testutil/libtestutil-lib-format_output.o", + "test/testutil/libtestutil-lib-helper.o", "test/testutil/libtestutil-lib-load.o", "test/testutil/libtestutil-lib-main.o", "test/testutil/libtestutil-lib-options.o", @@ -26957,6 +31813,12 @@ our %unified_info = ( "test/testutil/libtestutil-lib-tests.o", "test/testutil/libtestutil-lib-testutil_init.o" ], + "test/list_test" => [ + "test/list_test-bin-list_test.o" + ], + "test/list_test-bin-list_test.o" => [ + "test/list_test.c" + ], "test/localetest" => [ "test/localetest-bin-localetest.o" ], @@ -26975,12 +31837,36 @@ our %unified_info = ( "test/mdc2test-bin-mdc2test.o" => [ "test/mdc2test.c" ], + "test/membio_test" => [ + "test/membio_test-bin-membio_test.o" + ], + "test/membio_test-bin-membio_test.o" => [ + "test/membio_test.c" + ], "test/memleaktest" => [ "test/memleaktest-bin-memleaktest.o" ], "test/memleaktest-bin-memleaktest.o" => [ "test/memleaktest.c" ], + "test/ml_dsa_test" => [ + "test/ml_dsa_test-bin-ml_dsa_test.o" + ], + "test/ml_dsa_test-bin-ml_dsa_test.o" => [ + "test/ml_dsa_test.c" + ], + "test/ml_kem_evp_extra_test" => [ + "test/ml_kem_evp_extra_test-bin-ml_kem_evp_extra_test.o" + ], + "test/ml_kem_evp_extra_test-bin-ml_kem_evp_extra_test.o" => [ + "test/ml_kem_evp_extra_test.c" + ], + "test/ml_kem_internal_test" => [ + "test/ml_kem_internal_test-bin-ml_kem_internal_test.o" + ], + "test/ml_kem_internal_test-bin-ml_kem_internal_test.o" => [ + "test/ml_kem_internal_test.c" + ], "test/modes_internal_test" => [ "test/modes_internal_test-bin-modes_internal_test.o" ], @@ -27026,11 +31912,18 @@ our %unified_info = ( "test/p_test.c" ], "test/packettest" => [ + "crypto/packettest-bin-quic_vlint.o", "test/packettest-bin-packettest.o" ], "test/packettest-bin-packettest.o" => [ "test/packettest.c" ], + "test/pairwise_fail_test" => [ + "test/pairwise_fail_test-bin-pairwise_fail_test.o" + ], + "test/pairwise_fail_test-bin-pairwise_fail_test.o" => [ + "test/pairwise_fail_test.c" + ], "test/param_build_test" => [ "test/param_build_test-bin-param_build_test.o" ], @@ -27079,6 +31972,13 @@ our %unified_info = ( "test/pemtest-bin-pemtest.o" => [ "test/pemtest.c" ], + "test/pkcs12_api_test" => [ + "test/helpers/pkcs12_api_test-bin-pkcs12.o", + "test/pkcs12_api_test-bin-pkcs12_api_test.o" + ], + "test/pkcs12_api_test-bin-pkcs12_api_test.o" => [ + "test/pkcs12_api_test.c" + ], "test/pkcs12_format_test" => [ "test/helpers/pkcs12_format_test-bin-pkcs12.o", "test/pkcs12_format_test-bin-pkcs12_format_test.o" @@ -27110,6 +32010,12 @@ our %unified_info = ( "test/poly1305_internal_test-bin-poly1305_internal_test.o" => [ "test/poly1305_internal_test.c" ], + "test/priority_queue_test" => [ + "test/priority_queue_test-bin-priority_queue_test.o" + ], + "test/priority_queue_test-bin-priority_queue_test.o" => [ + "test/priority_queue_test.c" + ], "test/property_test" => [ "test/property_test-bin-property_test.o" ], @@ -27128,6 +32034,12 @@ our %unified_info = ( "test/provfetchtest-bin-provfetchtest.o" => [ "test/provfetchtest.c" ], + "test/provider_default_search_path_test" => [ + "test/provider_default_search_path_test-bin-provider_default_search_path_test.o" + ], + "test/provider_default_search_path_test-bin-provider_default_search_path_test.o" => [ + "test/provider_default_search_path_test.c" + ], "test/provider_fallback_test" => [ "test/provider_fallback_test-bin-provider_fallback_test.o" ], @@ -27176,6 +32088,174 @@ our %unified_info = ( "test/punycode_test-bin-punycode_test.o" => [ "test/punycode_test.c" ], + "test/quic_ackm_test" => [ + "test/quic_ackm_test-bin-cc_dummy.o", + "test/quic_ackm_test-bin-quic_ackm_test.o" + ], + "test/quic_ackm_test-bin-cc_dummy.o" => [ + "test/cc_dummy.c" + ], + "test/quic_ackm_test-bin-quic_ackm_test.o" => [ + "test/quic_ackm_test.c" + ], + "test/quic_cc_test" => [ + "test/quic_cc_test-bin-quic_cc_test.o" + ], + "test/quic_cc_test-bin-quic_cc_test.o" => [ + "test/quic_cc_test.c" + ], + "test/quic_cfq_test" => [ + "test/quic_cfq_test-bin-quic_cfq_test.o" + ], + "test/quic_cfq_test-bin-quic_cfq_test.o" => [ + "test/quic_cfq_test.c" + ], + "test/quic_client_test" => [ + "test/quic_client_test-bin-quic_client_test.o" + ], + "test/quic_client_test-bin-quic_client_test.o" => [ + "test/quic_client_test.c" + ], + "test/quic_fc_test" => [ + "test/quic_fc_test-bin-quic_fc_test.o" + ], + "test/quic_fc_test-bin-quic_fc_test.o" => [ + "test/quic_fc_test.c" + ], + "test/quic_fifd_test" => [ + "test/quic_fifd_test-bin-cc_dummy.o", + "test/quic_fifd_test-bin-quic_fifd_test.o" + ], + "test/quic_fifd_test-bin-cc_dummy.o" => [ + "test/cc_dummy.c" + ], + "test/quic_fifd_test-bin-quic_fifd_test.o" => [ + "test/quic_fifd_test.c" + ], + "test/quic_lcidm_test" => [ + "test/quic_lcidm_test-bin-quic_lcidm_test.o" + ], + "test/quic_lcidm_test-bin-quic_lcidm_test.o" => [ + "test/quic_lcidm_test.c" + ], + "test/quic_multistream_test" => [ + "test/helpers/quic_multistream_test-bin-noisydgrambio.o", + "test/helpers/quic_multistream_test-bin-pktsplitbio.o", + "test/helpers/quic_multistream_test-bin-quictestlib.o", + "test/helpers/quic_multistream_test-bin-ssltestlib.o", + "test/quic_multistream_test-bin-quic_multistream_test.o" + ], + "test/quic_multistream_test-bin-quic_multistream_test.o" => [ + "test/quic_multistream_test.c" + ], + "test/quic_newcid_test" => [ + "test/helpers/quic_newcid_test-bin-noisydgrambio.o", + "test/helpers/quic_newcid_test-bin-pktsplitbio.o", + "test/helpers/quic_newcid_test-bin-quictestlib.o", + "test/helpers/quic_newcid_test-bin-ssltestlib.o", + "test/quic_newcid_test-bin-quic_newcid_test.o" + ], + "test/quic_newcid_test-bin-quic_newcid_test.o" => [ + "test/quic_newcid_test.c" + ], + "test/quic_qlog_test" => [ + "test/quic_qlog_test-bin-quic_qlog_test.o" + ], + "test/quic_qlog_test-bin-quic_qlog_test.o" => [ + "test/quic_qlog_test.c" + ], + "test/quic_radix_test" => [ + "test/helpers/quic_radix_test-bin-noisydgrambio.o", + "test/helpers/quic_radix_test-bin-pktsplitbio.o", + "test/helpers/quic_radix_test-bin-quictestlib.o", + "test/helpers/quic_radix_test-bin-ssltestlib.o", + "test/radix/quic_radix_test-bin-quic_radix.o" + ], + "test/quic_rcidm_test" => [ + "test/quic_rcidm_test-bin-quic_rcidm_test.o" + ], + "test/quic_rcidm_test-bin-quic_rcidm_test.o" => [ + "test/quic_rcidm_test.c" + ], + "test/quic_record_test" => [ + "test/quic_record_test-bin-quic_record_test.o" + ], + "test/quic_record_test-bin-quic_record_test.o" => [ + "test/quic_record_test.c" + ], + "test/quic_srt_gen_test" => [ + "test/helpers/quic_srt_gen_test-bin-noisydgrambio.o", + "test/helpers/quic_srt_gen_test-bin-pktsplitbio.o", + "test/helpers/quic_srt_gen_test-bin-quictestlib.o", + "test/helpers/quic_srt_gen_test-bin-ssltestlib.o", + "test/quic_srt_gen_test-bin-quic_srt_gen_test.o" + ], + "test/quic_srt_gen_test-bin-quic_srt_gen_test.o" => [ + "test/quic_srt_gen_test.c" + ], + "test/quic_srtm_test" => [ + "test/quic_srtm_test-bin-quic_srtm_test.o" + ], + "test/quic_srtm_test-bin-quic_srtm_test.o" => [ + "test/quic_srtm_test.c" + ], + "test/quic_stream_test" => [ + "test/quic_stream_test-bin-quic_stream_test.o" + ], + "test/quic_stream_test-bin-quic_stream_test.o" => [ + "test/quic_stream_test.c" + ], + "test/quic_tserver_test" => [ + "test/quic_tserver_test-bin-quic_tserver_test.o" + ], + "test/quic_tserver_test-bin-quic_tserver_test.o" => [ + "test/quic_tserver_test.c" + ], + "test/quic_txp_test" => [ + "test/quic_txp_test-bin-cc_dummy.o", + "test/quic_txp_test-bin-quic_txp_test.o" + ], + "test/quic_txp_test-bin-cc_dummy.o" => [ + "test/cc_dummy.c" + ], + "test/quic_txp_test-bin-quic_txp_test.o" => [ + "test/quic_txp_test.c" + ], + "test/quic_txpim_test" => [ + "test/quic_txpim_test-bin-quic_txpim_test.o" + ], + "test/quic_txpim_test-bin-quic_txpim_test.o" => [ + "test/quic_txpim_test.c" + ], + "test/quic_wire_test" => [ + "test/quic_wire_test-bin-quic_wire_test.o" + ], + "test/quic_wire_test-bin-quic_wire_test.o" => [ + "test/quic_wire_test.c" + ], + "test/quicapitest" => [ + "test/helpers/quicapitest-bin-noisydgrambio.o", + "test/helpers/quicapitest-bin-pktsplitbio.o", + "test/helpers/quicapitest-bin-quictestlib.o", + "test/helpers/quicapitest-bin-ssltestlib.o", + "test/quicapitest-bin-quicapitest.o" + ], + "test/quicapitest-bin-quicapitest.o" => [ + "test/quicapitest.c" + ], + "test/quicfaultstest" => [ + "test/helpers/quicfaultstest-bin-noisydgrambio.o", + "test/helpers/quicfaultstest-bin-pktsplitbio.o", + "test/helpers/quicfaultstest-bin-quictestlib.o", + "test/helpers/quicfaultstest-bin-ssltestlib.o", + "test/quicfaultstest-bin-quicfaultstest.o" + ], + "test/quicfaultstest-bin-quicfaultstest.o" => [ + "test/quicfaultstest.c" + ], + "test/radix/quic_radix_test-bin-quic_radix.o" => [ + "test/radix/quic_radix.c" + ], "test/rand_status_test" => [ "test/rand_status_test-bin-rand_status_test.o" ], @@ -27206,11 +32286,11 @@ our %unified_info = ( "test/rc5test-bin-rc5test.o" => [ "test/rc5test.c" ], - "test/rdrand_sanitytest" => [ - "test/rdrand_sanitytest-bin-rdrand_sanitytest.o" + "test/rdcpu_sanitytest" => [ + "test/rdcpu_sanitytest-bin-rdcpu_sanitytest.o" ], - "test/rdrand_sanitytest-bin-rdrand_sanitytest.o" => [ - "test/rdrand_sanitytest.c" + "test/rdcpu_sanitytest-bin-rdcpu_sanitytest.o" => [ + "test/rdcpu_sanitytest.c" ], "test/recordlentest" => [ "test/helpers/recordlentest-bin-ssltestlib.o", @@ -27219,6 +32299,13 @@ our %unified_info = ( "test/recordlentest-bin-recordlentest.o" => [ "test/recordlentest.c" ], + "test/rpktest" => [ + "test/helpers/rpktest-bin-ssltestlib.o", + "test/rpktest-bin-rpktest.o" + ], + "test/rpktest-bin-rpktest.o" => [ + "test/rpktest.c" + ], "test/rsa_complex" => [ "test/rsa_complex-bin-rsa_complex.o" ], @@ -27243,6 +32330,18 @@ our %unified_info = ( "test/rsa_test-bin-rsa_test.o" => [ "test/rsa_test.c" ], + "test/rsa_x931_test" => [ + "test/rsa_x931_test-bin-rsa_x931_test.o" + ], + "test/rsa_x931_test-bin-rsa_x931_test.o" => [ + "test/rsa_x931_test.c" + ], + "test/safe_math_test" => [ + "test/safe_math_test-bin-safe_math_test.o" + ], + "test/safe_math_test-bin-safe_math_test.o" => [ + "test/safe_math_test.c" + ], "test/sanitytest" => [ "test/sanitytest-bin-sanitytest.o" ], @@ -27274,6 +32373,12 @@ our %unified_info = ( "test/siphash_internal_test-bin-siphash_internal_test.o" => [ "test/siphash_internal_test.c" ], + "test/slh_dsa_test" => [ + "test/slh_dsa_test-bin-slh_dsa_test.o" + ], + "test/slh_dsa_test-bin-slh_dsa_test.o" => [ + "test/slh_dsa_test.c" + ], "test/sm2_internal_test" => [ "test/sm2_internal_test-bin-sm2_internal_test.o" ], @@ -27316,6 +32421,13 @@ our %unified_info = ( "test/ssl_ctx_test-bin-ssl_ctx_test.o" => [ "test/ssl_ctx_test.c" ], + "test/ssl_handshake_rtt_test" => [ + "test/helpers/ssl_handshake_rtt_test-bin-ssltestlib.o", + "test/ssl_handshake_rtt_test-bin-ssl_handshake_rtt_test.o" + ], + "test/ssl_handshake_rtt_test-bin-ssl_handshake_rtt_test.o" => [ + "test/ssl_handshake_rtt_test.c" + ], "test/ssl_old_test" => [ "test/helpers/ssl_old_test-bin-predefined_dhparams.o", "test/ssl_old_test-bin-ssl_old_test.o" @@ -27374,6 +32486,12 @@ our %unified_info = ( "test/stack_test-bin-stack_test.o" => [ "test/stack_test.c" ], + "test/strtoultest" => [ + "test/strtoultest-bin-strtoultest.o" + ], + "test/strtoultest-bin-strtoultest.o" => [ + "test/strtoultest.c" + ], "test/sysdefaulttest" => [ "test/sysdefaulttest-bin-sysdefaulttest.o" ], @@ -27404,6 +32522,9 @@ our %unified_info = ( "test/testutil/libtestutil-lib-format_output.o" => [ "test/testutil/format_output.c" ], + "test/testutil/libtestutil-lib-helper.o" => [ + "test/testutil/helper.c" + ], "test/testutil/libtestutil-lib-load.o" => [ "test/testutil/load.c" ], @@ -27437,6 +32558,12 @@ our %unified_info = ( "test/testutil/libtestutil-lib-testutil_init.o" => [ "test/testutil/testutil_init.c" ], + "test/threadpool_test" => [ + "test/threadpool_test-bin-threadpool_test.o" + ], + "test/threadpool_test-bin-threadpool_test.o" => [ + "test/threadpool_test.c" + ], "test/threadstest" => [ "test/threadstest-bin-threadstest.o" ], @@ -27455,6 +32582,12 @@ our %unified_info = ( "test/time_offset_test-bin-time_offset_test.o" => [ "test/time_offset_test.c" ], + "test/time_test" => [ + "test/time_test-bin-time_test.o" + ], + "test/time_test-bin-time_test.o" => [ + "test/time_test.c" + ], "test/tls13ccstest" => [ "test/helpers/tls13ccstest-bin-ssltestlib.o", "test/tls13ccstest-bin-tls13ccstest.o" @@ -27468,6 +32601,13 @@ our %unified_info = ( "test/tls13encryptiontest-bin-tls13encryptiontest.o" => [ "test/tls13encryptiontest.c" ], + "test/tls13groupselection_test" => [ + "test/helpers/tls13groupselection_test-bin-ssltestlib.o", + "test/tls13groupselection_test-bin-tls13groupselection_test.o" + ], + "test/tls13groupselection_test-bin-tls13groupselection_test.o" => [ + "test/tls13groupselection_test.c" + ], "test/trace_api_test" => [ "test/trace_api_test-bin-trace_api_test.o" ], @@ -27523,6 +32663,12 @@ our %unified_info = ( "test/wpackettest-bin-wpackettest.o" => [ "test/wpackettest.c" ], + "test/x509_acert_test" => [ + "test/x509_acert_test-bin-x509_acert_test.o" + ], + "test/x509_acert_test-bin-x509_acert_test.o" => [ + "test/x509_acert_test.c" + ], "test/x509_check_cert_pkey_test" => [ "test/x509_check_cert_pkey_test-bin-x509_check_cert_pkey_test.o" ], @@ -27541,6 +32687,24 @@ our %unified_info = ( "test/x509_internal_test-bin-x509_internal_test.o" => [ "test/x509_internal_test.c" ], + "test/x509_load_cert_file_test" => [ + "test/x509_load_cert_file_test-bin-x509_load_cert_file_test.o" + ], + "test/x509_load_cert_file_test-bin-x509_load_cert_file_test.o" => [ + "test/x509_load_cert_file_test.c" + ], + "test/x509_req_test" => [ + "test/x509_req_test-bin-x509_req_test.o" + ], + "test/x509_req_test-bin-x509_req_test.o" => [ + "test/x509_req_test.c" + ], + "test/x509_test" => [ + "test/x509_test-bin-x509_test.o" + ], + "test/x509_test-bin-x509_test.o" => [ + "test/x509_test.c" + ], "test/x509_time_test" => [ "test/x509_time_test-bin-x509_time_test.o" ], @@ -27604,6 +32768,7 @@ my @makevars = ( "LDLIBS", "MT", "MTFLAGS", + "OBJCOPY", "PERL", "RANLIB", "RC", @@ -27617,6 +32782,12 @@ my %disabled_info = ( "asan" => { "macro" => "OPENSSL_NO_ASAN" }, + "brotli" => { + "macro" => "OPENSSL_NO_BROTLI" + }, + "brotli-dynamic" => { + "macro" => "OPENSSL_NO_BROTLI_DYNAMIC" + }, "comp" => { "macro" => "OPENSSL_NO_COMP", "skipped" => [ @@ -27629,6 +32800,9 @@ my %disabled_info = ( "crypto-mdebug-backtrace" => { "macro" => "OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE" }, + "demos" => { + "macro" => "OPENSSL_NO_DEMOS" + }, "devcryptoeng" => { "macro" => "OPENSSL_NO_DEVCRYPTOENG" }, @@ -27641,12 +32815,24 @@ my %disabled_info = ( "external-tests" => { "macro" => "OPENSSL_NO_EXTERNAL_TESTS" }, + "fips-jitter" => { + "macro" => "OPENSSL_NO_FIPS_JITTER" + }, "fuzz-afl" => { "macro" => "OPENSSL_NO_FUZZ_AFL" }, "fuzz-libfuzzer" => { "macro" => "OPENSSL_NO_FUZZ_LIBFUZZER" }, + "h3demo" => { + "macro" => "OPENSSL_NO_H3DEMO" + }, + "hqinterop" => { + "macro" => "OPENSSL_NO_HQINTEROP" + }, + "jitter" => { + "macro" => "OPENSSL_NO_JITTER" + }, "ktls" => { "macro" => "OPENSSL_NO_KTLS" }, @@ -27662,6 +32848,9 @@ my %disabled_info = ( "msan" => { "macro" => "OPENSSL_NO_MSAN" }, + "pie" => { + "macro" => "OPENSSL_NO_PIE" + }, "rc5" => { "macro" => "OPENSSL_NO_RC5", "skipped" => [ @@ -27677,6 +32866,12 @@ my %disabled_info = ( "ssl3-method" => { "macro" => "OPENSSL_NO_SSL3_METHOD" }, + "sslkeylog" => { + "macro" => "OPENSSL_NO_SSLKEYLOG" + }, + "tfo" => { + "macro" => "OPENSSL_NO_TFO" + }, "trace" => { "macro" => "OPENSSL_NO_TRACE" }, @@ -27691,6 +32886,21 @@ my %disabled_info = ( }, "weak-ssl-ciphers" => { "macro" => "OPENSSL_NO_WEAK_SSL_CIPHERS" + }, + "winstore" => { + "macro" => "OPENSSL_NO_WINSTORE" + }, + "zlib" => { + "macro" => "OPENSSL_NO_ZLIB" + }, + "zlib-dynamic" => { + "macro" => "OPENSSL_NO_ZLIB_DYNAMIC" + }, + "zstd" => { + "macro" => "OPENSSL_NO_ZSTD" + }, + "zstd-dynamic" => { + "macro" => "OPENSSL_NO_ZSTD_DYNAMIC" } ); my @user_crossable = qw( AR AS CC CXX CPP LD MT RANLIB RC ); @@ -27704,15 +32914,15 @@ unless (caller) { use File::Copy; use Pod::Usage; - use lib '/home/runner/work/node/node/deps/openssl/openssl/util/perl'; - use OpenSSL::fallback '/home/runner/work/node/node/deps/openssl/openssl/external/perl/MODULES.txt'; + use lib '/node/deps/openssl/openssl/util/perl'; + use OpenSSL::fallback '/node/deps/openssl/openssl/external/perl/MODULES.txt'; my $here = dirname($0); if (scalar @ARGV == 0) { # With no arguments, re-create the build file # We do that in two steps, where the first step emits perl - # snipets. + # snippets. my $buildfile = $config{build_file}; my $buildfile_template = "$buildfile.in"; @@ -27732,7 +32942,7 @@ unless (caller) { ); use lib '.'; - use lib '/home/runner/work/node/node/deps/openssl/openssl/Configurations'; + use lib '/node/deps/openssl/openssl/Configurations'; use gentemplate; open my $buildfile_template_fh, ">$buildfile_template" @@ -27749,8 +32959,8 @@ unless (caller) { my $prepend = <<'_____'; use File::Spec::Functions; -use lib '/home/runner/work/node/node/deps/openssl/openssl/util/perl'; -use lib '/home/runner/work/node/node/deps/openssl/openssl/Configurations'; +use lib '/node/deps/openssl/openssl/util/perl'; +use lib '/node/deps/openssl/openssl/Configurations'; use lib '.'; use platform; _____ diff --git a/deps/openssl/config/archs/linux-aarch64/asm/crypto/aes/aesv8-armx.S b/deps/openssl/config/archs/linux-aarch64/asm/crypto/aes/aesv8-armx.S index 0d2a81daf9d2bf..a5f1ed7ac942c9 100644 --- a/deps/openssl/config/archs/linux-aarch64/asm/crypto/aes/aesv8-armx.S +++ b/deps/openssl/config/archs/linux-aarch64/asm/crypto/aes/aesv8-armx.S @@ -3,17 +3,20 @@ #if __ARM_MAX_ARCH__>=7 .arch armv8-a+crypto .text +.section .rodata .align 5 .Lrcon: .long 0x01,0x01,0x01,0x01 .long 0x0c0f0e0d,0x0c0f0e0d,0x0c0f0e0d,0x0c0f0e0d // rotate-n-splat .long 0x1b,0x1b,0x1b,0x1b - +.previous .globl aes_v8_set_encrypt_key .type aes_v8_set_encrypt_key,%function .align 5 aes_v8_set_encrypt_key: .Lenc_key: + AARCH64_VALID_CALL_TARGET + // Armv8.3-A PAuth: even though x30 is pushed to stack it is not popped later. stp x29,x30,[sp,#-16]! add x29,sp,#0 mov x3,#-1 @@ -29,7 +32,8 @@ aes_v8_set_encrypt_key: tst w1,#0x3f b.ne .Lenc_key_abort - adr x3,.Lrcon + adrp x3,.Lrcon + add x3,x3,#:lo12:.Lrcon cmp w1,#192 eor v0.16b,v0.16b,v0.16b @@ -185,7 +189,7 @@ aes_v8_set_encrypt_key: .type aes_v8_set_decrypt_key,%function .align 5 aes_v8_set_decrypt_key: -.inst 0xd503233f // paciasp + AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-16]! add x29,sp,#0 bl .Lenc_key @@ -219,13 +223,14 @@ aes_v8_set_decrypt_key: eor x0,x0,x0 // return value .Ldec_key_abort: ldp x29,x30,[sp],#16 -.inst 0xd50323bf // autiasp + AARCH64_VALIDATE_LINK_REGISTER ret .size aes_v8_set_decrypt_key,.-aes_v8_set_decrypt_key .globl aes_v8_encrypt .type aes_v8_encrypt,%function .align 5 aes_v8_encrypt: + AARCH64_VALID_CALL_TARGET ldr w3,[x2,#240] ld1 {v0.4s},[x2],#16 ld1 {v2.16b},[x0] @@ -255,6 +260,7 @@ aes_v8_encrypt: .type aes_v8_decrypt,%function .align 5 aes_v8_decrypt: + AARCH64_VALID_CALL_TARGET ldr w3,[x2,#240] ld1 {v0.4s},[x2],#16 ld1 {v2.16b},[x0] @@ -284,6 +290,7 @@ aes_v8_decrypt: .type aes_v8_ecb_encrypt,%function .align 5 aes_v8_ecb_encrypt: + AARCH64_VALID_CALL_TARGET subs x2,x2,#16 // Original input data size bigger than 16, jump to big size processing. b.ne .Lecb_big_size @@ -1030,6 +1037,8 @@ aes_v8_ecb_encrypt: .type aes_v8_cbc_encrypt,%function .align 5 aes_v8_cbc_encrypt: + AARCH64_VALID_CALL_TARGET + // Armv8.3-A PAuth: even though x30 is pushed to stack it is not popped later. stp x29,x30,[sp,#-16]! add x29,sp,#0 subs x2,x2,#16 @@ -1501,10 +1510,735 @@ aes_v8_cbc_encrypt: ldr x29,[sp],#16 ret .size aes_v8_cbc_encrypt,.-aes_v8_cbc_encrypt +.globl aes_v8_ctr32_encrypt_blocks_unroll12_eor3 +.type aes_v8_ctr32_encrypt_blocks_unroll12_eor3,%function +.align 5 +aes_v8_ctr32_encrypt_blocks_unroll12_eor3: + AARCH64_VALID_CALL_TARGET + // Armv8.3-A PAuth: even though x30 is pushed to stack it is not popped later. + stp x29,x30,[sp,#-80]! + stp d8,d9,[sp, #16] + stp d10,d11,[sp, #32] + stp d12,d13,[sp, #48] + stp d14,d15,[sp, #64] + add x29,sp,#0 + + ldr w5,[x3,#240] + + ldr w8, [x4, #12] +#ifdef __AARCH64EB__ + ld1 {v24.16b},[x4] +#else + ld1 {v24.4s},[x4] +#endif + ld1 {v2.4s,v3.4s},[x3] // load key schedule... + sub w5,w5,#4 + cmp x2,#2 + add x7,x3,x5,lsl#4 // pointer to last round key + sub w5,w5,#2 + add x7, x7, #64 + ld1 {v1.4s},[x7] + add x7,x3,#32 + mov w6,w5 +#ifndef __AARCH64EB__ + rev w8, w8 +#endif + + orr v25.16b,v24.16b,v24.16b + add w10, w8, #1 + orr v26.16b,v24.16b,v24.16b + add w8, w8, #2 + orr v0.16b,v24.16b,v24.16b + rev w10, w10 + mov v25.s[3],w10 + b.ls .Lctr32_tail_unroll + cmp x2,#6 + rev w12, w8 + sub x2,x2,#3 // bias + mov v26.s[3],w12 + b.lo .Loop3x_ctr32_unroll + cmp x2,#9 + orr v27.16b,v24.16b,v24.16b + add w11, w8, #1 + orr v28.16b,v24.16b,v24.16b + add w13, w8, #2 + rev w11, w11 + orr v29.16b,v24.16b,v24.16b + add w8, w8, #3 + rev w13, w13 + mov v27.s[3],w11 + rev w14, w8 + mov v28.s[3],w13 + mov v29.s[3],w14 + sub x2,x2,#3 + b.lo .Loop6x_ctr32_unroll + + // push regs to stack when 12 data chunks are interleaved + stp x19,x20,[sp,#-16]! + stp x21,x22,[sp,#-16]! + stp x23,x24,[sp,#-16]! + stp d8,d9,[sp,#-32]! + stp d10,d11,[sp,#-32]! + + add w15,w8,#1 + add w19,w8,#2 + add w20,w8,#3 + add w21,w8,#4 + add w22,w8,#5 + add w8,w8,#6 + orr v30.16b,v24.16b,v24.16b + rev w15,w15 + orr v31.16b,v24.16b,v24.16b + rev w19,w19 + orr v8.16b,v24.16b,v24.16b + rev w20,w20 + orr v9.16b,v24.16b,v24.16b + rev w21,w21 + orr v10.16b,v24.16b,v24.16b + rev w22,w22 + orr v11.16b,v24.16b,v24.16b + rev w23,w8 + + sub x2,x2,#6 // bias + mov v30.s[3],w15 + mov v31.s[3],w19 + mov v8.s[3],w20 + mov v9.s[3],w21 + mov v10.s[3],w22 + mov v11.s[3],w23 + b .Loop12x_ctr32_unroll + +.align 4 +.Loop12x_ctr32_unroll: + aese v24.16b,v2.16b + aesmc v24.16b,v24.16b + aese v25.16b,v2.16b + aesmc v25.16b,v25.16b + aese v26.16b,v2.16b + aesmc v26.16b,v26.16b + aese v27.16b,v2.16b + aesmc v27.16b,v27.16b + aese v28.16b,v2.16b + aesmc v28.16b,v28.16b + aese v29.16b,v2.16b + aesmc v29.16b,v29.16b + aese v30.16b,v2.16b + aesmc v30.16b,v30.16b + aese v31.16b,v2.16b + aesmc v31.16b,v31.16b + aese v8.16b,v2.16b + aesmc v8.16b,v8.16b + aese v9.16b,v2.16b + aesmc v9.16b,v9.16b + aese v10.16b,v2.16b + aesmc v10.16b,v10.16b + aese v11.16b,v2.16b + aesmc v11.16b,v11.16b + ld1 {v2.4s},[x7],#16 + subs w6,w6,#2 + aese v24.16b,v3.16b + aesmc v24.16b,v24.16b + aese v25.16b,v3.16b + aesmc v25.16b,v25.16b + aese v26.16b,v3.16b + aesmc v26.16b,v26.16b + aese v27.16b,v3.16b + aesmc v27.16b,v27.16b + aese v28.16b,v3.16b + aesmc v28.16b,v28.16b + aese v29.16b,v3.16b + aesmc v29.16b,v29.16b + aese v30.16b,v3.16b + aesmc v30.16b,v30.16b + aese v31.16b,v3.16b + aesmc v31.16b,v31.16b + aese v8.16b,v3.16b + aesmc v8.16b,v8.16b + aese v9.16b,v3.16b + aesmc v9.16b,v9.16b + aese v10.16b,v3.16b + aesmc v10.16b,v10.16b + aese v11.16b,v3.16b + aesmc v11.16b,v11.16b + ld1 {v3.4s},[x7],#16 + b.gt .Loop12x_ctr32_unroll + + aese v24.16b,v2.16b + aesmc v24.16b,v24.16b + aese v25.16b,v2.16b + aesmc v25.16b,v25.16b + aese v26.16b,v2.16b + aesmc v26.16b,v26.16b + aese v27.16b,v2.16b + aesmc v27.16b,v27.16b + aese v28.16b,v2.16b + aesmc v28.16b,v28.16b + aese v29.16b,v2.16b + aesmc v29.16b,v29.16b + aese v30.16b,v2.16b + aesmc v30.16b,v30.16b + aese v31.16b,v2.16b + aesmc v31.16b,v31.16b + aese v8.16b,v2.16b + aesmc v8.16b,v8.16b + aese v9.16b,v2.16b + aesmc v9.16b,v9.16b + aese v10.16b,v2.16b + aesmc v10.16b,v10.16b + aese v11.16b,v2.16b + aesmc v11.16b,v11.16b + ld1 {v2.4s},[x7],#16 + + aese v24.16b,v3.16b + aesmc v24.16b,v24.16b + aese v25.16b,v3.16b + aesmc v25.16b,v25.16b + aese v26.16b,v3.16b + aesmc v26.16b,v26.16b + aese v27.16b,v3.16b + aesmc v27.16b,v27.16b + aese v28.16b,v3.16b + aesmc v28.16b,v28.16b + aese v29.16b,v3.16b + aesmc v29.16b,v29.16b + aese v30.16b,v3.16b + aesmc v30.16b,v30.16b + aese v31.16b,v3.16b + aesmc v31.16b,v31.16b + aese v8.16b,v3.16b + aesmc v8.16b,v8.16b + aese v9.16b,v3.16b + aesmc v9.16b,v9.16b + aese v10.16b,v3.16b + aesmc v10.16b,v10.16b + aese v11.16b,v3.16b + aesmc v11.16b,v11.16b + ld1 {v3.4s},[x7],#16 + + aese v24.16b,v2.16b + aesmc v24.16b,v24.16b + add w9,w8,#1 + add w10,w8,#2 + aese v25.16b,v2.16b + aesmc v25.16b,v25.16b + add w12,w8,#3 + add w11,w8,#4 + aese v26.16b,v2.16b + aesmc v26.16b,v26.16b + add w13,w8,#5 + add w14,w8,#6 + rev w9,w9 + aese v27.16b,v2.16b + aesmc v27.16b,v27.16b + add w15,w8,#7 + add w19,w8,#8 + rev w10,w10 + rev w12,w12 + aese v28.16b,v2.16b + aesmc v28.16b,v28.16b + add w20,w8,#9 + add w21,w8,#10 + rev w11,w11 + rev w13,w13 + aese v29.16b,v2.16b + aesmc v29.16b,v29.16b + add w22,w8,#11 + add w23,w8,#12 + rev w14,w14 + rev w15,w15 + aese v30.16b,v2.16b + aesmc v30.16b,v30.16b + rev w19,w19 + rev w20,w20 + aese v31.16b,v2.16b + aesmc v31.16b,v31.16b + rev w21,w21 + rev w22,w22 + aese v8.16b,v2.16b + aesmc v8.16b,v8.16b + rev w23,w23 + aese v9.16b,v2.16b + aesmc v9.16b,v9.16b + aese v10.16b,v2.16b + aesmc v10.16b,v10.16b + aese v11.16b,v2.16b + aesmc v11.16b,v11.16b + ld1 {v2.4s},[x7],#16 + + aese v24.16b,v3.16b + aesmc v24.16b,v24.16b + aese v25.16b,v3.16b + aesmc v25.16b,v25.16b + aese v26.16b,v3.16b + aesmc v26.16b,v26.16b + aese v27.16b,v3.16b + aesmc v27.16b,v27.16b + ld1 {v4.16b,v5.16b,v6.16b,v7.16b},[x0],#64 + aese v28.16b,v3.16b + aesmc v28.16b,v28.16b + aese v29.16b,v3.16b + aesmc v29.16b,v29.16b + aese v30.16b,v3.16b + aesmc v30.16b,v30.16b + aese v31.16b,v3.16b + aesmc v31.16b,v31.16b + ld1 {v16.16b,v17.16b,v18.16b,v19.16b},[x0],#64 + aese v8.16b,v3.16b + aesmc v8.16b,v8.16b + aese v9.16b,v3.16b + aesmc v9.16b,v9.16b + aese v10.16b,v3.16b + aesmc v10.16b,v10.16b + aese v11.16b,v3.16b + aesmc v11.16b,v11.16b + ld1 {v20.16b,v21.16b,v22.16b,v23.16b},[x0],#64 + ld1 {v3.4s},[x7],#16 + + mov x7, x3 + aese v24.16b,v2.16b + aesmc v24.16b,v24.16b + aese v25.16b,v2.16b + aesmc v25.16b,v25.16b + aese v26.16b,v2.16b + aesmc v26.16b,v26.16b + aese v27.16b,v2.16b + aesmc v27.16b,v27.16b + aese v28.16b,v2.16b + aesmc v28.16b,v28.16b + aese v29.16b,v2.16b + aesmc v29.16b,v29.16b + aese v30.16b,v2.16b + aesmc v30.16b,v30.16b + aese v31.16b,v2.16b + aesmc v31.16b,v31.16b + aese v8.16b,v2.16b + aesmc v8.16b,v8.16b + aese v9.16b,v2.16b + aesmc v9.16b,v9.16b + aese v10.16b,v2.16b + aesmc v10.16b,v10.16b + aese v11.16b,v2.16b + aesmc v11.16b,v11.16b + ld1 {v2.4s},[x7],#16 // re-pre-load rndkey[0] + + aese v24.16b,v3.16b +.inst 0xce016084 //eor3 v4.16b,v4.16b,v1.16b,v24.16b + orr v24.16b,v0.16b,v0.16b + aese v25.16b,v3.16b +.inst 0xce0164a5 //eor3 v5.16b,v5.16b,v1.16b,v25.16b + orr v25.16b,v0.16b,v0.16b + aese v26.16b,v3.16b +.inst 0xce0168c6 //eor3 v6.16b,v6.16b,v1.16b,v26.16b + orr v26.16b,v0.16b,v0.16b + aese v27.16b,v3.16b +.inst 0xce016ce7 //eor3 v7.16b,v7.16b,v1.16b,v27.16b + orr v27.16b,v0.16b,v0.16b + aese v28.16b,v3.16b +.inst 0xce017210 //eor3 v16.16b,v16.16b,v1.16b,v28.16b + orr v28.16b,v0.16b,v0.16b + aese v29.16b,v3.16b +.inst 0xce017631 //eor3 v17.16b,v17.16b,v1.16b,v29.16b + orr v29.16b,v0.16b,v0.16b + aese v30.16b,v3.16b +.inst 0xce017a52 //eor3 v18.16b,v18.16b,v1.16b,v30.16b + orr v30.16b,v0.16b,v0.16b + aese v31.16b,v3.16b +.inst 0xce017e73 //eor3 v19.16b,v19.16b,v1.16b,v31.16b + orr v31.16b,v0.16b,v0.16b + aese v8.16b,v3.16b +.inst 0xce012294 //eor3 v20.16b,v20.16b,v1.16b,v8.16b + orr v8.16b,v0.16b,v0.16b + aese v9.16b,v3.16b +.inst 0xce0126b5 //eor3 v21.16b,v21.16b,v1.16b,v9.16b + orr v9.16b,v0.16b,v0.16b + aese v10.16b,v3.16b +.inst 0xce012ad6 //eor3 v22.16b,v22.16b,v1.16b,v10.16b + orr v10.16b,v0.16b,v0.16b + aese v11.16b,v3.16b +.inst 0xce012ef7 //eor3 v23.16b,v23.16b,v1.16b,v11.16b + orr v11.16b,v0.16b,v0.16b + ld1 {v3.4s},[x7],#16 // re-pre-load rndkey[1] + + mov v24.s[3],w9 + mov v25.s[3],w10 + mov v26.s[3],w12 + mov v27.s[3],w11 + st1 {v4.16b,v5.16b,v6.16b,v7.16b},[x1],#64 + mov v28.s[3],w13 + mov v29.s[3],w14 + mov v30.s[3],w15 + mov v31.s[3],w19 + st1 {v16.16b,v17.16b,v18.16b,v19.16b},[x1],#64 + mov v8.s[3],w20 + mov v9.s[3],w21 + mov v10.s[3],w22 + mov v11.s[3],w23 + st1 {v20.16b,v21.16b,v22.16b,v23.16b},[x1],#64 + + mov w6,w5 + + add w8,w8,#12 + subs x2,x2,#12 + b.hs .Loop12x_ctr32_unroll + + // pop regs from stack when 12 data chunks are interleaved + ldp d10,d11,[sp],#32 + ldp d8,d9,[sp],#32 + ldp x23,x24,[sp],#16 + ldp x21,x22,[sp],#16 + ldp x19,x20,[sp],#16 + + add x2,x2,#12 + cbz x2,.Lctr32_done_unroll + sub w8,w8,#12 + + cmp x2,#2 + b.ls .Lctr32_tail_unroll + + cmp x2,#6 + sub x2,x2,#3 // bias + add w8,w8,#3 + b.lo .Loop3x_ctr32_unroll + + sub x2,x2,#3 + add w8,w8,#3 + b.lo .Loop6x_ctr32_unroll + +.align 4 +.Loop6x_ctr32_unroll: + aese v24.16b,v2.16b + aesmc v24.16b,v24.16b + aese v25.16b,v2.16b + aesmc v25.16b,v25.16b + aese v26.16b,v2.16b + aesmc v26.16b,v26.16b + aese v27.16b,v2.16b + aesmc v27.16b,v27.16b + aese v28.16b,v2.16b + aesmc v28.16b,v28.16b + aese v29.16b,v2.16b + aesmc v29.16b,v29.16b + ld1 {v2.4s},[x7],#16 + subs w6,w6,#2 + aese v24.16b,v3.16b + aesmc v24.16b,v24.16b + aese v25.16b,v3.16b + aesmc v25.16b,v25.16b + aese v26.16b,v3.16b + aesmc v26.16b,v26.16b + aese v27.16b,v3.16b + aesmc v27.16b,v27.16b + aese v28.16b,v3.16b + aesmc v28.16b,v28.16b + aese v29.16b,v3.16b + aesmc v29.16b,v29.16b + ld1 {v3.4s},[x7],#16 + b.gt .Loop6x_ctr32_unroll + + aese v24.16b,v2.16b + aesmc v24.16b,v24.16b + aese v25.16b,v2.16b + aesmc v25.16b,v25.16b + aese v26.16b,v2.16b + aesmc v26.16b,v26.16b + aese v27.16b,v2.16b + aesmc v27.16b,v27.16b + aese v28.16b,v2.16b + aesmc v28.16b,v28.16b + aese v29.16b,v2.16b + aesmc v29.16b,v29.16b + ld1 {v2.4s},[x7],#16 + + aese v24.16b,v3.16b + aesmc v24.16b,v24.16b + aese v25.16b,v3.16b + aesmc v25.16b,v25.16b + aese v26.16b,v3.16b + aesmc v26.16b,v26.16b + aese v27.16b,v3.16b + aesmc v27.16b,v27.16b + aese v28.16b,v3.16b + aesmc v28.16b,v28.16b + aese v29.16b,v3.16b + aesmc v29.16b,v29.16b + ld1 {v3.4s},[x7],#16 + + aese v24.16b,v2.16b + aesmc v24.16b,v24.16b + add w9,w8,#1 + add w10,w8,#2 + aese v25.16b,v2.16b + aesmc v25.16b,v25.16b + add w12,w8,#3 + add w11,w8,#4 + aese v26.16b,v2.16b + aesmc v26.16b,v26.16b + add w13,w8,#5 + add w14,w8,#6 + rev w9,w9 + aese v27.16b,v2.16b + aesmc v27.16b,v27.16b + rev w10,w10 + rev w12,w12 + aese v28.16b,v2.16b + aesmc v28.16b,v28.16b + rev w11,w11 + rev w13,w13 + aese v29.16b,v2.16b + aesmc v29.16b,v29.16b + rev w14,w14 + ld1 {v2.4s},[x7],#16 + + aese v24.16b,v3.16b + aesmc v24.16b,v24.16b + aese v25.16b,v3.16b + aesmc v25.16b,v25.16b + ld1 {v4.16b,v5.16b,v6.16b,v7.16b},[x0],#64 + aese v26.16b,v3.16b + aesmc v26.16b,v26.16b + aese v27.16b,v3.16b + aesmc v27.16b,v27.16b + ld1 {v16.16b,v17.16b},[x0],#32 + aese v28.16b,v3.16b + aesmc v28.16b,v28.16b + aese v29.16b,v3.16b + aesmc v29.16b,v29.16b + ld1 {v3.4s},[x7],#16 + + mov x7, x3 + aese v24.16b,v2.16b + aesmc v24.16b,v24.16b + aese v25.16b,v2.16b + aesmc v25.16b,v25.16b + aese v26.16b,v2.16b + aesmc v26.16b,v26.16b + aese v27.16b,v2.16b + aesmc v27.16b,v27.16b + aese v28.16b,v2.16b + aesmc v28.16b,v28.16b + aese v29.16b,v2.16b + aesmc v29.16b,v29.16b + ld1 {v2.4s},[x7],#16 // re-pre-load rndkey[0] + + aese v24.16b,v3.16b +.inst 0xce016084 //eor3 v4.16b,v4.16b,v1.16b,v24.16b + aese v25.16b,v3.16b +.inst 0xce0164a5 //eor3 v5.16b,v5.16b,v1.16b,v25.16b + aese v26.16b,v3.16b +.inst 0xce0168c6 //eor3 v6.16b,v6.16b,v1.16b,v26.16b + aese v27.16b,v3.16b +.inst 0xce016ce7 //eor3 v7.16b,v7.16b,v1.16b,v27.16b + aese v28.16b,v3.16b +.inst 0xce017210 //eor3 v16.16b,v16.16b,v1.16b,v28.16b + aese v29.16b,v3.16b +.inst 0xce017631 //eor3 v17.16b,v17.16b,v1.16b,v29.16b + ld1 {v3.4s},[x7],#16 // re-pre-load rndkey[1] + + orr v24.16b,v0.16b,v0.16b + orr v25.16b,v0.16b,v0.16b + orr v26.16b,v0.16b,v0.16b + orr v27.16b,v0.16b,v0.16b + orr v28.16b,v0.16b,v0.16b + orr v29.16b,v0.16b,v0.16b + + mov v24.s[3],w9 + mov v25.s[3],w10 + st1 {v4.16b,v5.16b,v6.16b,v7.16b},[x1],#64 + mov v26.s[3],w12 + mov v27.s[3],w11 + st1 {v16.16b,v17.16b},[x1],#32 + mov v28.s[3],w13 + mov v29.s[3],w14 + + cbz x2,.Lctr32_done_unroll + mov w6,w5 + + cmp x2,#2 + b.ls .Lctr32_tail_unroll + + sub x2,x2,#3 // bias + add w8,w8,#3 + b .Loop3x_ctr32_unroll + +.align 4 +.Loop3x_ctr32_unroll: + aese v24.16b,v2.16b + aesmc v24.16b,v24.16b + aese v25.16b,v2.16b + aesmc v25.16b,v25.16b + aese v26.16b,v2.16b + aesmc v26.16b,v26.16b + ld1 {v2.4s},[x7],#16 + subs w6,w6,#2 + aese v24.16b,v3.16b + aesmc v24.16b,v24.16b + aese v25.16b,v3.16b + aesmc v25.16b,v25.16b + aese v26.16b,v3.16b + aesmc v26.16b,v26.16b + ld1 {v3.4s},[x7],#16 + b.gt .Loop3x_ctr32_unroll + + aese v24.16b,v2.16b + aesmc v9.16b,v24.16b + aese v25.16b,v2.16b + aesmc v10.16b,v25.16b + ld1 {v4.16b,v5.16b,v6.16b},[x0],#48 + orr v24.16b,v0.16b,v0.16b + aese v26.16b,v2.16b + aesmc v26.16b,v26.16b + ld1 {v2.4s},[x7],#16 + orr v25.16b,v0.16b,v0.16b + aese v9.16b,v3.16b + aesmc v9.16b,v9.16b + aese v10.16b,v3.16b + aesmc v10.16b,v10.16b + aese v26.16b,v3.16b + aesmc v11.16b,v26.16b + ld1 {v3.4s},[x7],#16 + orr v26.16b,v0.16b,v0.16b + add w9,w8,#1 + aese v9.16b,v2.16b + aesmc v9.16b,v9.16b + aese v10.16b,v2.16b + aesmc v10.16b,v10.16b + add w10,w8,#2 + aese v11.16b,v2.16b + aesmc v11.16b,v11.16b + ld1 {v2.4s},[x7],#16 + add w8,w8,#3 + aese v9.16b,v3.16b + aesmc v9.16b,v9.16b + aese v10.16b,v3.16b + aesmc v10.16b,v10.16b + + rev w9,w9 + aese v11.16b,v3.16b + aesmc v11.16b,v11.16b + ld1 {v3.4s},[x7],#16 + mov v24.s[3], w9 + mov x7,x3 + rev w10,w10 + aese v9.16b,v2.16b + aesmc v9.16b,v9.16b + + aese v10.16b,v2.16b + aesmc v10.16b,v10.16b + mov v25.s[3], w10 + rev w12,w8 + aese v11.16b,v2.16b + aesmc v11.16b,v11.16b + mov v26.s[3], w12 + + aese v9.16b,v3.16b + aese v10.16b,v3.16b + aese v11.16b,v3.16b + +.inst 0xce012484 //eor3 v4.16b,v4.16b,v1.16b,v9.16b + ld1 {v2.4s},[x7],#16 // re-pre-load rndkey[0] +.inst 0xce0128a5 //eor3 v5.16b,v5.16b,v1.16b,v10.16b + mov w6,w5 +.inst 0xce012cc6 //eor3 v6.16b,v6.16b,v1.16b,v11.16b + ld1 {v3.4s},[x7],#16 // re-pre-load rndkey[1] + st1 {v4.16b,v5.16b,v6.16b},[x1],#48 + + cbz x2,.Lctr32_done_unroll + +.Lctr32_tail_unroll: + cmp x2,#1 + b.eq .Lctr32_tail_1_unroll + +.Lctr32_tail_2_unroll: + aese v24.16b,v2.16b + aesmc v24.16b,v24.16b + aese v25.16b,v2.16b + aesmc v25.16b,v25.16b + ld1 {v2.4s},[x7],#16 + subs w6,w6,#2 + aese v24.16b,v3.16b + aesmc v24.16b,v24.16b + aese v25.16b,v3.16b + aesmc v25.16b,v25.16b + ld1 {v3.4s},[x7],#16 + b.gt .Lctr32_tail_2_unroll + + aese v24.16b,v2.16b + aesmc v24.16b,v24.16b + aese v25.16b,v2.16b + aesmc v25.16b,v25.16b + ld1 {v2.4s},[x7],#16 + aese v24.16b,v3.16b + aesmc v24.16b,v24.16b + aese v25.16b,v3.16b + aesmc v25.16b,v25.16b + ld1 {v3.4s},[x7],#16 + ld1 {v4.16b,v5.16b},[x0],#32 + aese v24.16b,v2.16b + aesmc v24.16b,v24.16b + aese v25.16b,v2.16b + aesmc v25.16b,v25.16b + ld1 {v2.4s},[x7],#16 + aese v24.16b,v3.16b + aesmc v24.16b,v24.16b + aese v25.16b,v3.16b + aesmc v25.16b,v25.16b + ld1 {v3.4s},[x7],#16 + aese v24.16b,v2.16b + aesmc v24.16b,v24.16b + aese v25.16b,v2.16b + aesmc v25.16b,v25.16b + aese v24.16b,v3.16b + aese v25.16b,v3.16b + +.inst 0xce016084 //eor3 v4.16b,v4.16b,v1.16b,v24.16b +.inst 0xce0164a5 //eor3 v5.16b,v5.16b,v1.16b,v25.16b + st1 {v4.16b,v5.16b},[x1],#32 + b .Lctr32_done_unroll + +.Lctr32_tail_1_unroll: + aese v24.16b,v2.16b + aesmc v24.16b,v24.16b + ld1 {v2.4s},[x7],#16 + subs w6,w6,#2 + aese v24.16b,v3.16b + aesmc v24.16b,v24.16b + ld1 {v3.4s},[x7],#16 + b.gt .Lctr32_tail_1_unroll + + aese v24.16b,v2.16b + aesmc v24.16b,v24.16b + ld1 {v2.4s},[x7],#16 + aese v24.16b,v3.16b + aesmc v24.16b,v24.16b + ld1 {v3.4s},[x7],#16 + ld1 {v4.16b},[x0] + aese v24.16b,v2.16b + aesmc v24.16b,v24.16b + ld1 {v2.4s},[x7],#16 + aese v24.16b,v3.16b + aesmc v24.16b,v24.16b + ld1 {v3.4s},[x7],#16 + aese v24.16b,v2.16b + aesmc v24.16b,v24.16b + aese v24.16b,v3.16b + +.inst 0xce016084 //eor3 v4.16b,v4.16b,v1.16b,v24.16b + st1 {v4.16b},[x1],#16 + +.Lctr32_done_unroll: + ldp d8,d9,[sp, #16] + ldp d10,d11,[sp, #32] + ldp d12,d13,[sp, #48] + ldp d14,d15,[sp, #64] + ldr x29,[sp],#80 + ret +.size aes_v8_ctr32_encrypt_blocks_unroll12_eor3,.-aes_v8_ctr32_encrypt_blocks_unroll12_eor3 .globl aes_v8_ctr32_encrypt_blocks .type aes_v8_ctr32_encrypt_blocks,%function .align 5 aes_v8_ctr32_encrypt_blocks: + AARCH64_VALID_CALL_TARGET + // Armv8.3-A PAuth: even though x30 is pushed to stack it is not popped later. stp x29,x30,[sp,#-16]! add x29,sp,#0 ldr w5,[x3,#240] @@ -1854,6 +2588,7 @@ aes_v8_ctr32_encrypt_blocks: .type aes_v8_xts_encrypt,%function .align 5 aes_v8_xts_encrypt: + AARCH64_VALID_CALL_TARGET cmp x2,#16 // Original input data size bigger than 16, jump to big size processing. b.ne .Lxts_enc_big_size @@ -2495,6 +3230,7 @@ aes_v8_xts_encrypt: .type aes_v8_xts_decrypt,%function .align 5 aes_v8_xts_decrypt: + AARCH64_VALID_CALL_TARGET cmp x2,#16 // Original input data size bigger than 16, jump to big size processing. b.ne .Lxts_dec_big_size @@ -3104,7 +3840,7 @@ aes_v8_xts_decrypt: cbnz x2,.Lxts_dec_1st_done ld1 {v0.16b},[x0],#16 - // Decrypt the last secod block to get the last plain text block + // Decrypt the last second block to get the last plain text block .Lxts_dec_1st_done: eor v26.16b,v0.16b,v8.16b ldr w6,[x3,#240] diff --git a/deps/openssl/config/archs/linux-aarch64/asm/crypto/aes/bsaes-armv8.S b/deps/openssl/config/archs/linux-aarch64/asm/crypto/aes/bsaes-armv8.S new file mode 100644 index 00000000000000..536cbdce04635a --- /dev/null +++ b/deps/openssl/config/archs/linux-aarch64/asm/crypto/aes/bsaes-armv8.S @@ -0,0 +1,2355 @@ +// Copyright 2021-2025 The OpenSSL Project Authors. All Rights Reserved. +// +// Licensed under the OpenSSL license (the "License"). You may not use +// this file except in compliance with the License. You can obtain a copy +// in the file LICENSE in the source distribution or at +// https://www.openssl.org/source/license.html +// +// ==================================================================== +// Written by Ben Avison for the OpenSSL +// project. Rights for redistribution and usage in source and binary +// forms are granted according to the OpenSSL license. +// ==================================================================== +// +// This implementation is a translation of bsaes-armv7 for AArch64. +// No attempt has been made to carry across the build switches for +// kernel targets, since the Linux kernel crypto support has moved on +// from when it was based on OpenSSL. + +// A lot of hand-scheduling has been performed. Consequently, this code +// doesn't factor out neatly into macros in the same way that the +// AArch32 version did, and there is little to be gained by wrapping it +// up in Perl, and it is presented as pure assembly. + + +#include "crypto/arm_arch.h" + +.text + + + + + +.type _bsaes_decrypt8,%function +.align 4 +// On entry: +// x9 -> key (previously expanded using _bsaes_key_convert) +// x10 = number of rounds +// v0-v7 input data +// On exit: +// x9-x11 corrupted +// other general-purpose registers preserved +// v0-v7 output data +// v11-v15 preserved +// other SIMD registers corrupted +_bsaes_decrypt8: + ldr q8, [x9], #16 + adrp x11, .LM0ISR + add x11, x11, #:lo12:.LM0ISR + movi v9.16b, #0x55 + ldr q10, [x11], #16 + movi v16.16b, #0x33 + movi v17.16b, #0x0f + sub x10, x10, #1 + eor v0.16b, v0.16b, v8.16b + eor v1.16b, v1.16b, v8.16b + eor v2.16b, v2.16b, v8.16b + eor v4.16b, v4.16b, v8.16b + eor v3.16b, v3.16b, v8.16b + eor v5.16b, v5.16b, v8.16b + tbl v0.16b, {v0.16b}, v10.16b + tbl v1.16b, {v1.16b}, v10.16b + tbl v2.16b, {v2.16b}, v10.16b + tbl v4.16b, {v4.16b}, v10.16b + eor v6.16b, v6.16b, v8.16b + eor v7.16b, v7.16b, v8.16b + tbl v3.16b, {v3.16b}, v10.16b + tbl v5.16b, {v5.16b}, v10.16b + tbl v6.16b, {v6.16b}, v10.16b + ushr v8.2d, v0.2d, #1 + tbl v7.16b, {v7.16b}, v10.16b + ushr v10.2d, v4.2d, #1 + ushr v18.2d, v2.2d, #1 + eor v8.16b, v8.16b, v1.16b + ushr v19.2d, v6.2d, #1 + eor v10.16b, v10.16b, v5.16b + eor v18.16b, v18.16b, v3.16b + and v8.16b, v8.16b, v9.16b + eor v19.16b, v19.16b, v7.16b + and v10.16b, v10.16b, v9.16b + and v18.16b, v18.16b, v9.16b + eor v1.16b, v1.16b, v8.16b + shl v8.2d, v8.2d, #1 + and v9.16b, v19.16b, v9.16b + eor v5.16b, v5.16b, v10.16b + shl v10.2d, v10.2d, #1 + eor v3.16b, v3.16b, v18.16b + shl v18.2d, v18.2d, #1 + eor v0.16b, v0.16b, v8.16b + shl v8.2d, v9.2d, #1 + eor v7.16b, v7.16b, v9.16b + eor v4.16b, v4.16b, v10.16b + eor v2.16b, v2.16b, v18.16b + ushr v9.2d, v1.2d, #2 + eor v6.16b, v6.16b, v8.16b + ushr v8.2d, v0.2d, #2 + ushr v10.2d, v5.2d, #2 + ushr v18.2d, v4.2d, #2 + eor v9.16b, v9.16b, v3.16b + eor v8.16b, v8.16b, v2.16b + eor v10.16b, v10.16b, v7.16b + eor v18.16b, v18.16b, v6.16b + and v9.16b, v9.16b, v16.16b + and v8.16b, v8.16b, v16.16b + and v10.16b, v10.16b, v16.16b + and v16.16b, v18.16b, v16.16b + eor v3.16b, v3.16b, v9.16b + shl v9.2d, v9.2d, #2 + eor v2.16b, v2.16b, v8.16b + shl v8.2d, v8.2d, #2 + eor v7.16b, v7.16b, v10.16b + shl v10.2d, v10.2d, #2 + eor v6.16b, v6.16b, v16.16b + shl v16.2d, v16.2d, #2 + eor v1.16b, v1.16b, v9.16b + eor v0.16b, v0.16b, v8.16b + eor v5.16b, v5.16b, v10.16b + eor v4.16b, v4.16b, v16.16b + ushr v8.2d, v3.2d, #4 + ushr v9.2d, v2.2d, #4 + ushr v10.2d, v1.2d, #4 + ushr v16.2d, v0.2d, #4 + eor v8.16b, v8.16b, v7.16b + eor v9.16b, v9.16b, v6.16b + eor v10.16b, v10.16b, v5.16b + eor v16.16b, v16.16b, v4.16b + and v8.16b, v8.16b, v17.16b + and v9.16b, v9.16b, v17.16b + and v10.16b, v10.16b, v17.16b + and v16.16b, v16.16b, v17.16b + eor v7.16b, v7.16b, v8.16b + shl v8.2d, v8.2d, #4 + eor v6.16b, v6.16b, v9.16b + shl v9.2d, v9.2d, #4 + eor v5.16b, v5.16b, v10.16b + shl v10.2d, v10.2d, #4 + eor v4.16b, v4.16b, v16.16b + shl v16.2d, v16.2d, #4 + eor v3.16b, v3.16b, v8.16b + eor v2.16b, v2.16b, v9.16b + eor v1.16b, v1.16b, v10.16b + eor v0.16b, v0.16b, v16.16b + b .Ldec_sbox +.align 4 +.Ldec_loop: + ld1 {v16.16b, v17.16b, v18.16b, v19.16b}, [x9], #64 + ldp q8, q9, [x9], #32 + eor v0.16b, v16.16b, v0.16b + ldr q10, [x9], #16 + eor v1.16b, v17.16b, v1.16b + ldr q16, [x9], #16 + eor v2.16b, v18.16b, v2.16b + eor v3.16b, v19.16b, v3.16b + eor v4.16b, v8.16b, v4.16b + eor v5.16b, v9.16b, v5.16b + eor v6.16b, v10.16b, v6.16b + eor v7.16b, v16.16b, v7.16b + tbl v0.16b, {v0.16b}, v28.16b + tbl v1.16b, {v1.16b}, v28.16b + tbl v2.16b, {v2.16b}, v28.16b + tbl v3.16b, {v3.16b}, v28.16b + tbl v4.16b, {v4.16b}, v28.16b + tbl v5.16b, {v5.16b}, v28.16b + tbl v6.16b, {v6.16b}, v28.16b + tbl v7.16b, {v7.16b}, v28.16b +.Ldec_sbox: + eor v1.16b, v1.16b, v4.16b + eor v3.16b, v3.16b, v4.16b + subs x10, x10, #1 + eor v4.16b, v4.16b, v7.16b + eor v2.16b, v2.16b, v7.16b + eor v1.16b, v1.16b, v6.16b + eor v6.16b, v6.16b, v4.16b + eor v2.16b, v2.16b, v5.16b + eor v0.16b, v0.16b, v1.16b + eor v7.16b, v7.16b, v6.16b + eor v8.16b, v6.16b, v2.16b + and v9.16b, v4.16b, v6.16b + eor v10.16b, v2.16b, v6.16b + eor v3.16b, v3.16b, v0.16b + eor v5.16b, v5.16b, v0.16b + eor v16.16b, v7.16b, v4.16b + eor v17.16b, v4.16b, v0.16b + and v18.16b, v0.16b, v2.16b + eor v19.16b, v7.16b, v4.16b + eor v1.16b, v1.16b, v3.16b + eor v20.16b, v3.16b, v0.16b + eor v21.16b, v5.16b, v2.16b + eor v22.16b, v3.16b, v7.16b + and v8.16b, v17.16b, v8.16b + orr v17.16b, v3.16b, v5.16b + eor v23.16b, v1.16b, v6.16b + eor v24.16b, v20.16b, v16.16b + eor v25.16b, v1.16b, v5.16b + orr v26.16b, v20.16b, v21.16b + and v20.16b, v20.16b, v21.16b + and v27.16b, v7.16b, v1.16b + eor v21.16b, v21.16b, v23.16b + orr v28.16b, v16.16b, v23.16b + orr v29.16b, v22.16b, v25.16b + eor v26.16b, v26.16b, v8.16b + and v16.16b, v16.16b, v23.16b + and v22.16b, v22.16b, v25.16b + and v21.16b, v24.16b, v21.16b + eor v8.16b, v28.16b, v8.16b + eor v23.16b, v5.16b, v2.16b + eor v24.16b, v1.16b, v6.16b + eor v16.16b, v16.16b, v22.16b + eor v22.16b, v3.16b, v0.16b + eor v25.16b, v29.16b, v21.16b + eor v21.16b, v26.16b, v21.16b + eor v8.16b, v8.16b, v20.16b + eor v26.16b, v23.16b, v24.16b + eor v16.16b, v16.16b, v20.16b + eor v28.16b, v22.16b, v19.16b + eor v20.16b, v25.16b, v20.16b + eor v9.16b, v21.16b, v9.16b + eor v8.16b, v8.16b, v18.16b + eor v18.16b, v5.16b, v1.16b + eor v21.16b, v16.16b, v17.16b + eor v16.16b, v16.16b, v17.16b + eor v17.16b, v20.16b, v27.16b + eor v20.16b, v3.16b, v7.16b + eor v25.16b, v9.16b, v8.16b + eor v27.16b, v0.16b, v4.16b + and v29.16b, v9.16b, v17.16b + eor v30.16b, v8.16b, v29.16b + eor v31.16b, v21.16b, v29.16b + eor v29.16b, v21.16b, v29.16b + bsl v30.16b, v17.16b, v21.16b + bsl v31.16b, v9.16b, v8.16b + bsl v16.16b, v30.16b, v29.16b + bsl v21.16b, v29.16b, v30.16b + eor v8.16b, v31.16b, v30.16b + and v1.16b, v1.16b, v31.16b + and v9.16b, v16.16b, v31.16b + and v6.16b, v6.16b, v30.16b + eor v16.16b, v17.16b, v21.16b + and v4.16b, v4.16b, v30.16b + eor v17.16b, v8.16b, v30.16b + and v21.16b, v24.16b, v8.16b + eor v9.16b, v9.16b, v25.16b + and v19.16b, v19.16b, v8.16b + eor v24.16b, v30.16b, v16.16b + eor v25.16b, v30.16b, v16.16b + and v7.16b, v7.16b, v17.16b + and v10.16b, v10.16b, v16.16b + eor v29.16b, v9.16b, v16.16b + eor v30.16b, v31.16b, v9.16b + and v0.16b, v24.16b, v0.16b + and v9.16b, v18.16b, v9.16b + and v2.16b, v25.16b, v2.16b + eor v10.16b, v10.16b, v6.16b + eor v18.16b, v29.16b, v16.16b + and v5.16b, v30.16b, v5.16b + eor v24.16b, v8.16b, v29.16b + and v25.16b, v26.16b, v29.16b + and v26.16b, v28.16b, v29.16b + eor v8.16b, v8.16b, v29.16b + eor v17.16b, v17.16b, v18.16b + eor v5.16b, v1.16b, v5.16b + and v23.16b, v24.16b, v23.16b + eor v21.16b, v21.16b, v25.16b + eor v19.16b, v19.16b, v26.16b + eor v0.16b, v4.16b, v0.16b + and v3.16b, v17.16b, v3.16b + eor v1.16b, v9.16b, v1.16b + eor v9.16b, v25.16b, v23.16b + eor v5.16b, v5.16b, v21.16b + eor v2.16b, v6.16b, v2.16b + and v6.16b, v8.16b, v22.16b + eor v3.16b, v7.16b, v3.16b + and v8.16b, v20.16b, v18.16b + eor v10.16b, v10.16b, v9.16b + eor v0.16b, v0.16b, v19.16b + eor v9.16b, v1.16b, v9.16b + eor v1.16b, v2.16b, v21.16b + eor v3.16b, v3.16b, v19.16b + and v16.16b, v27.16b, v16.16b + eor v17.16b, v26.16b, v6.16b + eor v6.16b, v8.16b, v7.16b + eor v7.16b, v1.16b, v9.16b + eor v1.16b, v5.16b, v3.16b + eor v2.16b, v10.16b, v3.16b + eor v4.16b, v16.16b, v4.16b + eor v8.16b, v6.16b, v17.16b + eor v5.16b, v9.16b, v3.16b + eor v9.16b, v0.16b, v1.16b + eor v6.16b, v7.16b, v1.16b + eor v0.16b, v4.16b, v17.16b + eor v4.16b, v8.16b, v7.16b + eor v7.16b, v9.16b, v2.16b + eor v8.16b, v3.16b, v0.16b + eor v7.16b, v7.16b, v5.16b + eor v3.16b, v4.16b, v7.16b + eor v4.16b, v7.16b, v0.16b + eor v7.16b, v8.16b, v3.16b + bcc .Ldec_done + ext v8.16b, v0.16b, v0.16b, #8 + ext v9.16b, v1.16b, v1.16b, #8 + ldr q28, [x11] // load from .LISR in common case (x10 > 0) + ext v10.16b, v6.16b, v6.16b, #8 + ext v16.16b, v3.16b, v3.16b, #8 + ext v17.16b, v5.16b, v5.16b, #8 + ext v18.16b, v4.16b, v4.16b, #8 + eor v8.16b, v8.16b, v0.16b + eor v9.16b, v9.16b, v1.16b + eor v10.16b, v10.16b, v6.16b + eor v16.16b, v16.16b, v3.16b + eor v17.16b, v17.16b, v5.16b + ext v19.16b, v2.16b, v2.16b, #8 + ext v20.16b, v7.16b, v7.16b, #8 + eor v18.16b, v18.16b, v4.16b + eor v6.16b, v6.16b, v8.16b + eor v8.16b, v2.16b, v10.16b + eor v4.16b, v4.16b, v9.16b + eor v2.16b, v19.16b, v2.16b + eor v9.16b, v20.16b, v7.16b + eor v0.16b, v0.16b, v16.16b + eor v1.16b, v1.16b, v16.16b + eor v6.16b, v6.16b, v17.16b + eor v8.16b, v8.16b, v16.16b + eor v7.16b, v7.16b, v18.16b + eor v4.16b, v4.16b, v16.16b + eor v2.16b, v3.16b, v2.16b + eor v1.16b, v1.16b, v17.16b + eor v3.16b, v5.16b, v9.16b + eor v5.16b, v8.16b, v17.16b + eor v7.16b, v7.16b, v17.16b + ext v8.16b, v0.16b, v0.16b, #12 + ext v9.16b, v6.16b, v6.16b, #12 + ext v10.16b, v4.16b, v4.16b, #12 + ext v16.16b, v1.16b, v1.16b, #12 + ext v17.16b, v5.16b, v5.16b, #12 + ext v18.16b, v7.16b, v7.16b, #12 + eor v0.16b, v0.16b, v8.16b + eor v6.16b, v6.16b, v9.16b + eor v4.16b, v4.16b, v10.16b + ext v19.16b, v2.16b, v2.16b, #12 + ext v20.16b, v3.16b, v3.16b, #12 + eor v1.16b, v1.16b, v16.16b + eor v5.16b, v5.16b, v17.16b + eor v7.16b, v7.16b, v18.16b + eor v2.16b, v2.16b, v19.16b + eor v16.16b, v16.16b, v0.16b + eor v3.16b, v3.16b, v20.16b + eor v17.16b, v17.16b, v4.16b + eor v10.16b, v10.16b, v6.16b + ext v0.16b, v0.16b, v0.16b, #8 + eor v9.16b, v9.16b, v1.16b + ext v1.16b, v1.16b, v1.16b, #8 + eor v8.16b, v8.16b, v3.16b + eor v16.16b, v16.16b, v3.16b + eor v18.16b, v18.16b, v5.16b + eor v19.16b, v19.16b, v7.16b + ext v21.16b, v5.16b, v5.16b, #8 + ext v5.16b, v7.16b, v7.16b, #8 + eor v7.16b, v20.16b, v2.16b + ext v4.16b, v4.16b, v4.16b, #8 + ext v20.16b, v3.16b, v3.16b, #8 + eor v17.16b, v17.16b, v3.16b + ext v2.16b, v2.16b, v2.16b, #8 + eor v3.16b, v10.16b, v3.16b + ext v10.16b, v6.16b, v6.16b, #8 + eor v0.16b, v0.16b, v8.16b + eor v1.16b, v1.16b, v16.16b + eor v5.16b, v5.16b, v18.16b + eor v3.16b, v3.16b, v4.16b + eor v7.16b, v20.16b, v7.16b + eor v6.16b, v2.16b, v19.16b + eor v4.16b, v21.16b, v17.16b + eor v2.16b, v10.16b, v9.16b + bne .Ldec_loop + ldr q28, [x11, #16]! // load from .LISRM0 on last round (x10 == 0) + b .Ldec_loop +.align 4 +.Ldec_done: + ushr v8.2d, v0.2d, #1 + movi v9.16b, #0x55 + ldr q10, [x9] + ushr v16.2d, v2.2d, #1 + movi v17.16b, #0x33 + ushr v18.2d, v6.2d, #1 + movi v19.16b, #0x0f + eor v8.16b, v8.16b, v1.16b + ushr v20.2d, v3.2d, #1 + eor v16.16b, v16.16b, v7.16b + eor v18.16b, v18.16b, v4.16b + and v8.16b, v8.16b, v9.16b + eor v20.16b, v20.16b, v5.16b + and v16.16b, v16.16b, v9.16b + and v18.16b, v18.16b, v9.16b + shl v21.2d, v8.2d, #1 + eor v1.16b, v1.16b, v8.16b + and v8.16b, v20.16b, v9.16b + eor v7.16b, v7.16b, v16.16b + shl v9.2d, v16.2d, #1 + eor v4.16b, v4.16b, v18.16b + shl v16.2d, v18.2d, #1 + eor v0.16b, v0.16b, v21.16b + shl v18.2d, v8.2d, #1 + eor v5.16b, v5.16b, v8.16b + eor v2.16b, v2.16b, v9.16b + eor v6.16b, v6.16b, v16.16b + ushr v8.2d, v1.2d, #2 + eor v3.16b, v3.16b, v18.16b + ushr v9.2d, v0.2d, #2 + ushr v16.2d, v7.2d, #2 + ushr v18.2d, v2.2d, #2 + eor v8.16b, v8.16b, v4.16b + eor v9.16b, v9.16b, v6.16b + eor v16.16b, v16.16b, v5.16b + eor v18.16b, v18.16b, v3.16b + and v8.16b, v8.16b, v17.16b + and v9.16b, v9.16b, v17.16b + and v16.16b, v16.16b, v17.16b + and v17.16b, v18.16b, v17.16b + eor v4.16b, v4.16b, v8.16b + shl v8.2d, v8.2d, #2 + eor v6.16b, v6.16b, v9.16b + shl v9.2d, v9.2d, #2 + eor v5.16b, v5.16b, v16.16b + shl v16.2d, v16.2d, #2 + eor v3.16b, v3.16b, v17.16b + shl v17.2d, v17.2d, #2 + eor v1.16b, v1.16b, v8.16b + eor v0.16b, v0.16b, v9.16b + eor v7.16b, v7.16b, v16.16b + eor v2.16b, v2.16b, v17.16b + ushr v8.2d, v4.2d, #4 + ushr v9.2d, v6.2d, #4 + ushr v16.2d, v1.2d, #4 + ushr v17.2d, v0.2d, #4 + eor v8.16b, v8.16b, v5.16b + eor v9.16b, v9.16b, v3.16b + eor v16.16b, v16.16b, v7.16b + eor v17.16b, v17.16b, v2.16b + and v8.16b, v8.16b, v19.16b + and v9.16b, v9.16b, v19.16b + and v16.16b, v16.16b, v19.16b + and v17.16b, v17.16b, v19.16b + eor v5.16b, v5.16b, v8.16b + shl v8.2d, v8.2d, #4 + eor v3.16b, v3.16b, v9.16b + shl v9.2d, v9.2d, #4 + eor v7.16b, v7.16b, v16.16b + shl v16.2d, v16.2d, #4 + eor v2.16b, v2.16b, v17.16b + shl v17.2d, v17.2d, #4 + eor v4.16b, v4.16b, v8.16b + eor v6.16b, v6.16b, v9.16b + eor v7.16b, v7.16b, v10.16b + eor v1.16b, v1.16b, v16.16b + eor v2.16b, v2.16b, v10.16b + eor v0.16b, v0.16b, v17.16b + eor v4.16b, v4.16b, v10.16b + eor v6.16b, v6.16b, v10.16b + eor v3.16b, v3.16b, v10.16b + eor v5.16b, v5.16b, v10.16b + eor v1.16b, v1.16b, v10.16b + eor v0.16b, v0.16b, v10.16b + ret +.size _bsaes_decrypt8,.-_bsaes_decrypt8 + +.section .rodata +.type _bsaes_consts,%object +.align 6 +_bsaes_consts: +// InvShiftRows constants +// Used in _bsaes_decrypt8, which assumes contiguity +// .LM0ISR used with round 0 key +// .LISR used with middle round keys +// .LISRM0 used with final round key +.LM0ISR: +.quad 0x0a0e0206070b0f03, 0x0004080c0d010509 +.LISR: +.quad 0x0504070602010003, 0x0f0e0d0c080b0a09 +.LISRM0: +.quad 0x01040b0e0205080f, 0x0306090c00070a0d + +// ShiftRows constants +// Used in _bsaes_encrypt8, which assumes contiguity +// .LM0SR used with round 0 key +// .LSR used with middle round keys +// .LSRM0 used with final round key +.LM0SR: +.quad 0x0a0e02060f03070b, 0x0004080c05090d01 +.LSR: +.quad 0x0504070600030201, 0x0f0e0d0c0a09080b +.LSRM0: +.quad 0x0304090e00050a0f, 0x01060b0c0207080d + +.LM0_bigendian: +.quad 0x02060a0e03070b0f, 0x0004080c0105090d +.LM0_littleendian: +.quad 0x0105090d0004080c, 0x03070b0f02060a0e + +// Used in ossl_bsaes_ctr32_encrypt_blocks, prior to dropping into +// _bsaes_encrypt8_alt, for round 0 key in place of .LM0SR +.LREVM0SR: +.quad 0x090d01050c000408, 0x03070b0f060a0e02 + +.align 6 +.size _bsaes_consts,.-_bsaes_consts + +.previous + +.type _bsaes_encrypt8,%function +.align 4 +// On entry: +// x9 -> key (previously expanded using _bsaes_key_convert) +// x10 = number of rounds +// v0-v7 input data +// On exit: +// x9-x11 corrupted +// other general-purpose registers preserved +// v0-v7 output data +// v11-v15 preserved +// other SIMD registers corrupted +_bsaes_encrypt8: + ldr q8, [x9], #16 + adrp x11, .LM0SR + add x11, x11, #:lo12:.LM0SR + ldr q9, [x11], #16 +_bsaes_encrypt8_alt: + eor v0.16b, v0.16b, v8.16b + eor v1.16b, v1.16b, v8.16b + sub x10, x10, #1 + eor v2.16b, v2.16b, v8.16b + eor v4.16b, v4.16b, v8.16b + eor v3.16b, v3.16b, v8.16b + eor v5.16b, v5.16b, v8.16b + tbl v0.16b, {v0.16b}, v9.16b + tbl v1.16b, {v1.16b}, v9.16b + tbl v2.16b, {v2.16b}, v9.16b + tbl v4.16b, {v4.16b}, v9.16b + eor v6.16b, v6.16b, v8.16b + eor v7.16b, v7.16b, v8.16b + tbl v3.16b, {v3.16b}, v9.16b + tbl v5.16b, {v5.16b}, v9.16b + tbl v6.16b, {v6.16b}, v9.16b + ushr v8.2d, v0.2d, #1 + movi v10.16b, #0x55 + tbl v7.16b, {v7.16b}, v9.16b + ushr v9.2d, v4.2d, #1 + movi v16.16b, #0x33 + ushr v17.2d, v2.2d, #1 + eor v8.16b, v8.16b, v1.16b + movi v18.16b, #0x0f + ushr v19.2d, v6.2d, #1 + eor v9.16b, v9.16b, v5.16b + eor v17.16b, v17.16b, v3.16b + and v8.16b, v8.16b, v10.16b + eor v19.16b, v19.16b, v7.16b + and v9.16b, v9.16b, v10.16b + and v17.16b, v17.16b, v10.16b + eor v1.16b, v1.16b, v8.16b + shl v8.2d, v8.2d, #1 + and v10.16b, v19.16b, v10.16b + eor v5.16b, v5.16b, v9.16b + shl v9.2d, v9.2d, #1 + eor v3.16b, v3.16b, v17.16b + shl v17.2d, v17.2d, #1 + eor v0.16b, v0.16b, v8.16b + shl v8.2d, v10.2d, #1 + eor v7.16b, v7.16b, v10.16b + eor v4.16b, v4.16b, v9.16b + eor v2.16b, v2.16b, v17.16b + ushr v9.2d, v1.2d, #2 + eor v6.16b, v6.16b, v8.16b + ushr v8.2d, v0.2d, #2 + ushr v10.2d, v5.2d, #2 + ushr v17.2d, v4.2d, #2 + eor v9.16b, v9.16b, v3.16b + eor v8.16b, v8.16b, v2.16b + eor v10.16b, v10.16b, v7.16b + eor v17.16b, v17.16b, v6.16b + and v9.16b, v9.16b, v16.16b + and v8.16b, v8.16b, v16.16b + and v10.16b, v10.16b, v16.16b + and v16.16b, v17.16b, v16.16b + eor v3.16b, v3.16b, v9.16b + shl v9.2d, v9.2d, #2 + eor v2.16b, v2.16b, v8.16b + shl v8.2d, v8.2d, #2 + eor v7.16b, v7.16b, v10.16b + shl v10.2d, v10.2d, #2 + eor v6.16b, v6.16b, v16.16b + shl v16.2d, v16.2d, #2 + eor v1.16b, v1.16b, v9.16b + eor v0.16b, v0.16b, v8.16b + eor v5.16b, v5.16b, v10.16b + eor v4.16b, v4.16b, v16.16b + ushr v8.2d, v3.2d, #4 + ushr v9.2d, v2.2d, #4 + ushr v10.2d, v1.2d, #4 + ushr v16.2d, v0.2d, #4 + eor v8.16b, v8.16b, v7.16b + eor v9.16b, v9.16b, v6.16b + eor v10.16b, v10.16b, v5.16b + eor v16.16b, v16.16b, v4.16b + and v8.16b, v8.16b, v18.16b + and v9.16b, v9.16b, v18.16b + and v10.16b, v10.16b, v18.16b + and v16.16b, v16.16b, v18.16b + eor v7.16b, v7.16b, v8.16b + shl v8.2d, v8.2d, #4 + eor v6.16b, v6.16b, v9.16b + shl v9.2d, v9.2d, #4 + eor v5.16b, v5.16b, v10.16b + shl v10.2d, v10.2d, #4 + eor v4.16b, v4.16b, v16.16b + shl v16.2d, v16.2d, #4 + eor v3.16b, v3.16b, v8.16b + eor v2.16b, v2.16b, v9.16b + eor v1.16b, v1.16b, v10.16b + eor v0.16b, v0.16b, v16.16b + b .Lenc_sbox +.align 4 +.Lenc_loop: + ld1 {v16.16b, v17.16b, v18.16b, v19.16b}, [x9], #64 + ldp q8, q9, [x9], #32 + eor v0.16b, v16.16b, v0.16b + ldr q10, [x9], #16 + eor v1.16b, v17.16b, v1.16b + ldr q16, [x9], #16 + eor v2.16b, v18.16b, v2.16b + eor v3.16b, v19.16b, v3.16b + eor v4.16b, v8.16b, v4.16b + eor v5.16b, v9.16b, v5.16b + eor v6.16b, v10.16b, v6.16b + eor v7.16b, v16.16b, v7.16b + tbl v0.16b, {v0.16b}, v28.16b + tbl v1.16b, {v1.16b}, v28.16b + tbl v2.16b, {v2.16b}, v28.16b + tbl v3.16b, {v3.16b}, v28.16b + tbl v4.16b, {v4.16b}, v28.16b + tbl v5.16b, {v5.16b}, v28.16b + tbl v6.16b, {v6.16b}, v28.16b + tbl v7.16b, {v7.16b}, v28.16b +.Lenc_sbox: + eor v5.16b, v5.16b, v6.16b + eor v3.16b, v3.16b, v0.16b + subs x10, x10, #1 + eor v2.16b, v2.16b, v1.16b + eor v5.16b, v5.16b, v0.16b + eor v8.16b, v3.16b, v7.16b + eor v6.16b, v6.16b, v2.16b + eor v7.16b, v7.16b, v5.16b + eor v8.16b, v8.16b, v4.16b + eor v3.16b, v6.16b, v3.16b + eor v4.16b, v4.16b, v5.16b + eor v6.16b, v1.16b, v5.16b + eor v2.16b, v2.16b, v7.16b + eor v1.16b, v8.16b, v1.16b + eor v8.16b, v7.16b, v4.16b + eor v9.16b, v3.16b, v0.16b + eor v10.16b, v7.16b, v6.16b + eor v16.16b, v5.16b, v3.16b + eor v17.16b, v6.16b, v2.16b + eor v18.16b, v5.16b, v1.16b + eor v19.16b, v2.16b, v4.16b + eor v20.16b, v1.16b, v0.16b + orr v21.16b, v8.16b, v9.16b + orr v22.16b, v10.16b, v16.16b + eor v23.16b, v8.16b, v17.16b + eor v24.16b, v9.16b, v18.16b + and v19.16b, v19.16b, v20.16b + orr v20.16b, v17.16b, v18.16b + and v8.16b, v8.16b, v9.16b + and v9.16b, v17.16b, v18.16b + and v17.16b, v23.16b, v24.16b + and v10.16b, v10.16b, v16.16b + eor v16.16b, v21.16b, v19.16b + eor v18.16b, v20.16b, v19.16b + and v19.16b, v2.16b, v1.16b + and v20.16b, v6.16b, v5.16b + eor v21.16b, v22.16b, v17.16b + eor v9.16b, v9.16b, v10.16b + eor v10.16b, v16.16b, v17.16b + eor v16.16b, v18.16b, v8.16b + and v17.16b, v4.16b, v0.16b + orr v18.16b, v7.16b, v3.16b + eor v21.16b, v21.16b, v8.16b + eor v8.16b, v9.16b, v8.16b + eor v9.16b, v10.16b, v19.16b + eor v10.16b, v3.16b, v0.16b + eor v16.16b, v16.16b, v17.16b + eor v17.16b, v5.16b, v1.16b + eor v19.16b, v21.16b, v20.16b + eor v20.16b, v8.16b, v18.16b + eor v8.16b, v8.16b, v18.16b + eor v18.16b, v7.16b, v4.16b + eor v21.16b, v9.16b, v16.16b + eor v22.16b, v6.16b, v2.16b + and v23.16b, v9.16b, v19.16b + eor v24.16b, v10.16b, v17.16b + eor v25.16b, v0.16b, v1.16b + eor v26.16b, v7.16b, v6.16b + eor v27.16b, v18.16b, v22.16b + eor v28.16b, v3.16b, v5.16b + eor v29.16b, v16.16b, v23.16b + eor v30.16b, v20.16b, v23.16b + eor v23.16b, v20.16b, v23.16b + eor v31.16b, v4.16b, v2.16b + bsl v29.16b, v19.16b, v20.16b + bsl v30.16b, v9.16b, v16.16b + bsl v8.16b, v29.16b, v23.16b + bsl v20.16b, v23.16b, v29.16b + eor v9.16b, v30.16b, v29.16b + and v5.16b, v5.16b, v30.16b + and v8.16b, v8.16b, v30.16b + and v1.16b, v1.16b, v29.16b + eor v16.16b, v19.16b, v20.16b + and v2.16b, v2.16b, v29.16b + eor v19.16b, v9.16b, v29.16b + and v17.16b, v17.16b, v9.16b + eor v8.16b, v8.16b, v21.16b + and v20.16b, v22.16b, v9.16b + eor v21.16b, v29.16b, v16.16b + eor v22.16b, v29.16b, v16.16b + and v23.16b, v25.16b, v16.16b + and v6.16b, v6.16b, v19.16b + eor v25.16b, v8.16b, v16.16b + eor v29.16b, v30.16b, v8.16b + and v4.16b, v21.16b, v4.16b + and v8.16b, v28.16b, v8.16b + and v0.16b, v22.16b, v0.16b + eor v21.16b, v23.16b, v1.16b + eor v22.16b, v9.16b, v25.16b + eor v9.16b, v9.16b, v25.16b + eor v23.16b, v25.16b, v16.16b + and v3.16b, v29.16b, v3.16b + and v24.16b, v24.16b, v25.16b + and v25.16b, v27.16b, v25.16b + and v10.16b, v22.16b, v10.16b + and v9.16b, v9.16b, v18.16b + eor v18.16b, v19.16b, v23.16b + and v19.16b, v26.16b, v23.16b + eor v3.16b, v5.16b, v3.16b + eor v17.16b, v17.16b, v24.16b + eor v10.16b, v24.16b, v10.16b + and v16.16b, v31.16b, v16.16b + eor v20.16b, v20.16b, v25.16b + eor v9.16b, v25.16b, v9.16b + eor v4.16b, v2.16b, v4.16b + and v7.16b, v18.16b, v7.16b + eor v18.16b, v19.16b, v6.16b + eor v5.16b, v8.16b, v5.16b + eor v0.16b, v1.16b, v0.16b + eor v1.16b, v21.16b, v10.16b + eor v8.16b, v3.16b, v17.16b + eor v2.16b, v16.16b, v2.16b + eor v3.16b, v6.16b, v7.16b + eor v6.16b, v18.16b, v9.16b + eor v4.16b, v4.16b, v20.16b + eor v10.16b, v5.16b, v10.16b + eor v0.16b, v0.16b, v17.16b + eor v9.16b, v2.16b, v9.16b + eor v3.16b, v3.16b, v20.16b + eor v7.16b, v6.16b, v1.16b + eor v5.16b, v8.16b, v4.16b + eor v6.16b, v10.16b, v1.16b + eor v2.16b, v4.16b, v0.16b + eor v4.16b, v3.16b, v10.16b + eor v9.16b, v9.16b, v7.16b + eor v3.16b, v0.16b, v5.16b + eor v0.16b, v1.16b, v4.16b + eor v1.16b, v4.16b, v8.16b + eor v4.16b, v9.16b, v5.16b + eor v6.16b, v6.16b, v3.16b + bcc .Lenc_done + ext v8.16b, v0.16b, v0.16b, #12 + ext v9.16b, v4.16b, v4.16b, #12 + ldr q28, [x11] + ext v10.16b, v6.16b, v6.16b, #12 + ext v16.16b, v1.16b, v1.16b, #12 + ext v17.16b, v3.16b, v3.16b, #12 + ext v18.16b, v7.16b, v7.16b, #12 + eor v0.16b, v0.16b, v8.16b + eor v4.16b, v4.16b, v9.16b + eor v6.16b, v6.16b, v10.16b + ext v19.16b, v2.16b, v2.16b, #12 + ext v20.16b, v5.16b, v5.16b, #12 + eor v1.16b, v1.16b, v16.16b + eor v3.16b, v3.16b, v17.16b + eor v7.16b, v7.16b, v18.16b + eor v2.16b, v2.16b, v19.16b + eor v16.16b, v16.16b, v0.16b + eor v5.16b, v5.16b, v20.16b + eor v17.16b, v17.16b, v6.16b + eor v10.16b, v10.16b, v4.16b + ext v0.16b, v0.16b, v0.16b, #8 + eor v9.16b, v9.16b, v1.16b + ext v1.16b, v1.16b, v1.16b, #8 + eor v8.16b, v8.16b, v5.16b + eor v16.16b, v16.16b, v5.16b + eor v18.16b, v18.16b, v3.16b + eor v19.16b, v19.16b, v7.16b + ext v3.16b, v3.16b, v3.16b, #8 + ext v7.16b, v7.16b, v7.16b, #8 + eor v20.16b, v20.16b, v2.16b + ext v6.16b, v6.16b, v6.16b, #8 + ext v21.16b, v5.16b, v5.16b, #8 + eor v17.16b, v17.16b, v5.16b + ext v2.16b, v2.16b, v2.16b, #8 + eor v10.16b, v10.16b, v5.16b + ext v22.16b, v4.16b, v4.16b, #8 + eor v0.16b, v0.16b, v8.16b + eor v1.16b, v1.16b, v16.16b + eor v5.16b, v7.16b, v18.16b + eor v4.16b, v3.16b, v17.16b + eor v3.16b, v6.16b, v10.16b + eor v7.16b, v21.16b, v20.16b + eor v6.16b, v2.16b, v19.16b + eor v2.16b, v22.16b, v9.16b + bne .Lenc_loop + ldr q28, [x11, #16]! // load from .LSRM0 on last round (x10 == 0) + b .Lenc_loop +.align 4 +.Lenc_done: + ushr v8.2d, v0.2d, #1 + movi v9.16b, #0x55 + ldr q10, [x9] + ushr v16.2d, v3.2d, #1 + movi v17.16b, #0x33 + ushr v18.2d, v4.2d, #1 + movi v19.16b, #0x0f + eor v8.16b, v8.16b, v1.16b + ushr v20.2d, v2.2d, #1 + eor v16.16b, v16.16b, v7.16b + eor v18.16b, v18.16b, v6.16b + and v8.16b, v8.16b, v9.16b + eor v20.16b, v20.16b, v5.16b + and v16.16b, v16.16b, v9.16b + and v18.16b, v18.16b, v9.16b + shl v21.2d, v8.2d, #1 + eor v1.16b, v1.16b, v8.16b + and v8.16b, v20.16b, v9.16b + eor v7.16b, v7.16b, v16.16b + shl v9.2d, v16.2d, #1 + eor v6.16b, v6.16b, v18.16b + shl v16.2d, v18.2d, #1 + eor v0.16b, v0.16b, v21.16b + shl v18.2d, v8.2d, #1 + eor v5.16b, v5.16b, v8.16b + eor v3.16b, v3.16b, v9.16b + eor v4.16b, v4.16b, v16.16b + ushr v8.2d, v1.2d, #2 + eor v2.16b, v2.16b, v18.16b + ushr v9.2d, v0.2d, #2 + ushr v16.2d, v7.2d, #2 + ushr v18.2d, v3.2d, #2 + eor v8.16b, v8.16b, v6.16b + eor v9.16b, v9.16b, v4.16b + eor v16.16b, v16.16b, v5.16b + eor v18.16b, v18.16b, v2.16b + and v8.16b, v8.16b, v17.16b + and v9.16b, v9.16b, v17.16b + and v16.16b, v16.16b, v17.16b + and v17.16b, v18.16b, v17.16b + eor v6.16b, v6.16b, v8.16b + shl v8.2d, v8.2d, #2 + eor v4.16b, v4.16b, v9.16b + shl v9.2d, v9.2d, #2 + eor v5.16b, v5.16b, v16.16b + shl v16.2d, v16.2d, #2 + eor v2.16b, v2.16b, v17.16b + shl v17.2d, v17.2d, #2 + eor v1.16b, v1.16b, v8.16b + eor v0.16b, v0.16b, v9.16b + eor v7.16b, v7.16b, v16.16b + eor v3.16b, v3.16b, v17.16b + ushr v8.2d, v6.2d, #4 + ushr v9.2d, v4.2d, #4 + ushr v16.2d, v1.2d, #4 + ushr v17.2d, v0.2d, #4 + eor v8.16b, v8.16b, v5.16b + eor v9.16b, v9.16b, v2.16b + eor v16.16b, v16.16b, v7.16b + eor v17.16b, v17.16b, v3.16b + and v8.16b, v8.16b, v19.16b + and v9.16b, v9.16b, v19.16b + and v16.16b, v16.16b, v19.16b + and v17.16b, v17.16b, v19.16b + eor v5.16b, v5.16b, v8.16b + shl v8.2d, v8.2d, #4 + eor v2.16b, v2.16b, v9.16b + shl v9.2d, v9.2d, #4 + eor v7.16b, v7.16b, v16.16b + shl v16.2d, v16.2d, #4 + eor v3.16b, v3.16b, v17.16b + shl v17.2d, v17.2d, #4 + eor v6.16b, v6.16b, v8.16b + eor v4.16b, v4.16b, v9.16b + eor v7.16b, v7.16b, v10.16b + eor v1.16b, v1.16b, v16.16b + eor v3.16b, v3.16b, v10.16b + eor v0.16b, v0.16b, v17.16b + eor v6.16b, v6.16b, v10.16b + eor v4.16b, v4.16b, v10.16b + eor v2.16b, v2.16b, v10.16b + eor v5.16b, v5.16b, v10.16b + eor v1.16b, v1.16b, v10.16b + eor v0.16b, v0.16b, v10.16b + ret +.size _bsaes_encrypt8,.-_bsaes_encrypt8 + +.type _bsaes_key_convert,%function +.align 4 +// On entry: +// x9 -> input key (big-endian) +// x10 = number of rounds +// x17 -> output key (native endianness) +// On exit: +// x9, x10 corrupted +// x11 -> .LM0_bigendian +// x17 -> last quadword of output key +// other general-purpose registers preserved +// v2-v6 preserved +// v7.16b[] = 0x63 +// v8-v14 preserved +// v15 = last round key (converted to native endianness) +// other SIMD registers corrupted +_bsaes_key_convert: +#ifdef __AARCH64EL__ + adrp x11, .LM0_littleendian + add x11, x11, #:lo12:.LM0_littleendian +#else + adrp x11, .LM0_bigendian + add x11, x11, #:lo12:.LM0_bigendian +#endif + ldr q0, [x9], #16 // load round 0 key + ldr q1, [x11] // .LM0 + ldr q15, [x9], #16 // load round 1 key + + movi v7.16b, #0x63 // compose .L63 + movi v16.16b, #0x01 // bit masks + movi v17.16b, #0x02 + movi v18.16b, #0x04 + movi v19.16b, #0x08 + movi v20.16b, #0x10 + movi v21.16b, #0x20 + movi v22.16b, #0x40 + movi v23.16b, #0x80 + +#ifdef __AARCH64EL__ + rev32 v0.16b, v0.16b +#endif + sub x10, x10, #1 + str q0, [x17], #16 // save round 0 key + +.align 4 +.Lkey_loop: + tbl v0.16b, {v15.16b}, v1.16b + ldr q15, [x9], #16 // load next round key + + eor v0.16b, v0.16b, v7.16b + cmtst v24.16b, v0.16b, v16.16b + cmtst v25.16b, v0.16b, v17.16b + cmtst v26.16b, v0.16b, v18.16b + cmtst v27.16b, v0.16b, v19.16b + cmtst v28.16b, v0.16b, v20.16b + cmtst v29.16b, v0.16b, v21.16b + cmtst v30.16b, v0.16b, v22.16b + cmtst v31.16b, v0.16b, v23.16b + sub x10, x10, #1 + st1 {v24.16b,v25.16b,v26.16b,v27.16b}, [x17], #64 // write bit-sliced round key + st1 {v28.16b,v29.16b,v30.16b,v31.16b}, [x17], #64 + cbnz x10, .Lkey_loop + + // don't save last round key +#ifdef __AARCH64EL__ + rev32 v15.16b, v15.16b + adrp x11, .LM0_bigendian + add x11, x11, #:lo12:.LM0_bigendian +#endif + ret +.size _bsaes_key_convert,.-_bsaes_key_convert + +.globl ossl_bsaes_cbc_encrypt +.type ossl_bsaes_cbc_encrypt,%function +.align 4 +// On entry: +// x0 -> input ciphertext +// x1 -> output plaintext +// x2 = size of ciphertext and plaintext in bytes (assumed a multiple of 16) +// x3 -> key +// x4 -> 128-bit initialisation vector (or preceding 128-bit block of ciphertext if continuing after an earlier call) +// w5 must be == 0 +// On exit: +// Output plaintext filled in +// Initialisation vector overwritten with last quadword of ciphertext +// No output registers, usual AAPCS64 register preservation +ossl_bsaes_cbc_encrypt: + AARCH64_VALID_CALL_TARGET + cmp x2, #128 + bhs .Lcbc_do_bsaes + b AES_cbc_encrypt +.Lcbc_do_bsaes: + + // it is up to the caller to make sure we are called with enc == 0 + + stp x29, x30, [sp, #-48]! + stp d8, d9, [sp, #16] + stp d10, d15, [sp, #32] + lsr x2, x2, #4 // len in 16 byte blocks + + ldr w15, [x3, #240] // get # of rounds + mov x14, sp + + // allocate the key schedule on the stack + add x17, sp, #96 + sub x17, x17, x15, lsl #7 // 128 bytes per inner round key, less 96 bytes + + // populate the key schedule + mov x9, x3 // pass key + mov x10, x15 // pass # of rounds + mov sp, x17 // sp is sp + bl _bsaes_key_convert + ldr q6, [sp] + str q15, [x17] // save last round key + eor v6.16b, v6.16b, v7.16b // fix up round 0 key (by XORing with 0x63) + str q6, [sp] + + ldr q15, [x4] // load IV + b .Lcbc_dec_loop + +.align 4 +.Lcbc_dec_loop: + subs x2, x2, #0x8 + bmi .Lcbc_dec_loop_finish + + ldr q0, [x0], #16 // load input + mov x9, sp // pass the key + ldr q1, [x0], #16 + mov x10, x15 + ldr q2, [x0], #16 + ldr q3, [x0], #16 + ldr q4, [x0], #16 + ldr q5, [x0], #16 + ldr q6, [x0], #16 + ldr q7, [x0], #-7*16 + + bl _bsaes_decrypt8 + + ldr q16, [x0], #16 // reload input + eor v0.16b, v0.16b, v15.16b // ^= IV + eor v1.16b, v1.16b, v16.16b + str q0, [x1], #16 // write output + ldr q0, [x0], #16 + str q1, [x1], #16 + ldr q1, [x0], #16 + eor v1.16b, v4.16b, v1.16b + ldr q4, [x0], #16 + eor v2.16b, v2.16b, v4.16b + eor v0.16b, v6.16b, v0.16b + ldr q4, [x0], #16 + str q0, [x1], #16 + str q1, [x1], #16 + eor v0.16b, v7.16b, v4.16b + ldr q1, [x0], #16 + str q2, [x1], #16 + ldr q2, [x0], #16 + ldr q15, [x0], #16 + str q0, [x1], #16 + eor v0.16b, v5.16b, v2.16b + eor v1.16b, v3.16b, v1.16b + str q1, [x1], #16 + str q0, [x1], #16 + + b .Lcbc_dec_loop + +.Lcbc_dec_loop_finish: + adds x2, x2, #8 + beq .Lcbc_dec_done + + ldr q0, [x0], #16 // load input + cmp x2, #2 + blo .Lcbc_dec_one + ldr q1, [x0], #16 + mov x9, sp // pass the key + mov x10, x15 + beq .Lcbc_dec_two + ldr q2, [x0], #16 + cmp x2, #4 + blo .Lcbc_dec_three + ldr q3, [x0], #16 + beq .Lcbc_dec_four + ldr q4, [x0], #16 + cmp x2, #6 + blo .Lcbc_dec_five + ldr q5, [x0], #16 + beq .Lcbc_dec_six + ldr q6, [x0], #-6*16 + + bl _bsaes_decrypt8 + + ldr q5, [x0], #16 // reload input + eor v0.16b, v0.16b, v15.16b // ^= IV + ldr q8, [x0], #16 + ldr q9, [x0], #16 + ldr q10, [x0], #16 + str q0, [x1], #16 // write output + ldr q0, [x0], #16 + eor v1.16b, v1.16b, v5.16b + ldr q5, [x0], #16 + eor v6.16b, v6.16b, v8.16b + ldr q15, [x0] + eor v4.16b, v4.16b, v9.16b + eor v2.16b, v2.16b, v10.16b + str q1, [x1], #16 + eor v0.16b, v7.16b, v0.16b + str q6, [x1], #16 + eor v1.16b, v3.16b, v5.16b + str q4, [x1], #16 + str q2, [x1], #16 + str q0, [x1], #16 + str q1, [x1] + b .Lcbc_dec_done +.align 4 +.Lcbc_dec_six: + sub x0, x0, #0x60 + bl _bsaes_decrypt8 + ldr q3, [x0], #16 // reload input + eor v0.16b, v0.16b, v15.16b // ^= IV + ldr q5, [x0], #16 + ldr q8, [x0], #16 + ldr q9, [x0], #16 + str q0, [x1], #16 // write output + ldr q0, [x0], #16 + eor v1.16b, v1.16b, v3.16b + ldr q15, [x0] + eor v3.16b, v6.16b, v5.16b + eor v4.16b, v4.16b, v8.16b + eor v2.16b, v2.16b, v9.16b + str q1, [x1], #16 + eor v0.16b, v7.16b, v0.16b + str q3, [x1], #16 + str q4, [x1], #16 + str q2, [x1], #16 + str q0, [x1] + b .Lcbc_dec_done +.align 4 +.Lcbc_dec_five: + sub x0, x0, #0x50 + bl _bsaes_decrypt8 + ldr q3, [x0], #16 // reload input + eor v0.16b, v0.16b, v15.16b // ^= IV + ldr q5, [x0], #16 + ldr q7, [x0], #16 + ldr q8, [x0], #16 + str q0, [x1], #16 // write output + ldr q15, [x0] + eor v0.16b, v1.16b, v3.16b + eor v1.16b, v6.16b, v5.16b + eor v3.16b, v4.16b, v7.16b + str q0, [x1], #16 + eor v0.16b, v2.16b, v8.16b + str q1, [x1], #16 + str q3, [x1], #16 + str q0, [x1] + b .Lcbc_dec_done +.align 4 +.Lcbc_dec_four: + sub x0, x0, #0x40 + bl _bsaes_decrypt8 + ldr q2, [x0], #16 // reload input + eor v0.16b, v0.16b, v15.16b // ^= IV + ldr q3, [x0], #16 + ldr q5, [x0], #16 + str q0, [x1], #16 // write output + ldr q15, [x0] + eor v0.16b, v1.16b, v2.16b + eor v1.16b, v6.16b, v3.16b + eor v2.16b, v4.16b, v5.16b + str q0, [x1], #16 + str q1, [x1], #16 + str q2, [x1] + b .Lcbc_dec_done +.align 4 +.Lcbc_dec_three: + sub x0, x0, #0x30 + bl _bsaes_decrypt8 + ldr q2, [x0], #16 // reload input + eor v0.16b, v0.16b, v15.16b // ^= IV + ldr q3, [x0], #16 + ldr q15, [x0] + str q0, [x1], #16 // write output + eor v0.16b, v1.16b, v2.16b + eor v1.16b, v6.16b, v3.16b + str q0, [x1], #16 + str q1, [x1] + b .Lcbc_dec_done +.align 4 +.Lcbc_dec_two: + sub x0, x0, #0x20 + bl _bsaes_decrypt8 + ldr q2, [x0], #16 // reload input + eor v0.16b, v0.16b, v15.16b // ^= IV + ldr q15, [x0] + str q0, [x1], #16 // write output + eor v0.16b, v1.16b, v2.16b + str q0, [x1] + b .Lcbc_dec_done +.align 4 +.Lcbc_dec_one: + sub x0, x0, #0x10 + stp x1, x4, [sp, #-32]! + str x14, [sp, #16] + mov v8.16b, v15.16b + mov v15.16b, v0.16b + mov x2, x3 + bl AES_decrypt + ldr x14, [sp, #16] + ldp x1, x4, [sp], #32 + ldr q0, [x1] // load result + eor v0.16b, v0.16b, v8.16b // ^= IV + str q0, [x1] // write output + +.align 4 +.Lcbc_dec_done: + movi v0.16b, #0 + movi v1.16b, #0 +.Lcbc_dec_bzero: // wipe key schedule [if any] + stp q0, q1, [sp], #32 + cmp sp, x14 + bne .Lcbc_dec_bzero + str q15, [x4] // return IV + ldp d8, d9, [sp, #16] + ldp d10, d15, [sp, #32] + ldp x29, x30, [sp], #48 + ret +.size ossl_bsaes_cbc_encrypt,.-ossl_bsaes_cbc_encrypt + +.globl ossl_bsaes_ctr32_encrypt_blocks +.type ossl_bsaes_ctr32_encrypt_blocks,%function +.align 4 +// On entry: +// x0 -> input text (whole 16-byte blocks) +// x1 -> output text (whole 16-byte blocks) +// x2 = number of 16-byte blocks to encrypt/decrypt (> 0) +// x3 -> key +// x4 -> initial value of 128-bit counter (stored big-endian) which increments, modulo 2^32, for each block +// On exit: +// Output text filled in +// No output registers, usual AAPCS64 register preservation +ossl_bsaes_ctr32_encrypt_blocks: + AARCH64_VALID_CALL_TARGET + cmp x2, #8 // use plain AES for + blo .Lctr_enc_short // small sizes + + stp x29, x30, [sp, #-80]! + stp d8, d9, [sp, #16] + stp d10, d11, [sp, #32] + stp d12, d13, [sp, #48] + stp d14, d15, [sp, #64] + + ldr w15, [x3, #240] // get # of rounds + mov x14, sp + + // allocate the key schedule on the stack + add x17, sp, #96 + sub x17, x17, x15, lsl #7 // 128 bytes per inner round key, less 96 bytes + + // populate the key schedule + mov x9, x3 // pass key + mov x10, x15 // pass # of rounds + mov sp, x17 // sp is sp + bl _bsaes_key_convert + eor v7.16b, v7.16b, v15.16b // fix up last round key + str q7, [x17] // save last round key + + ldr q0, [x4] // load counter + add x13, x11, #.LREVM0SR-.LM0_bigendian + ldr q4, [sp] // load round0 key + + movi v8.4s, #1 // compose 1<<96 + movi v9.16b, #0 + rev32 v15.16b, v0.16b + rev32 v0.16b, v0.16b + ext v11.16b, v9.16b, v8.16b, #4 + rev32 v4.16b, v4.16b + add v12.4s, v11.4s, v11.4s // compose 2<<96 + str q4, [sp] // save adjusted round0 key + add v13.4s, v11.4s, v12.4s // compose 3<<96 + add v14.4s, v12.4s, v12.4s // compose 4<<96 + b .Lctr_enc_loop + +.align 4 +.Lctr_enc_loop: + // Intermix prologue from _bsaes_encrypt8 to use the opportunity + // to flip byte order in 32-bit counter + + add v1.4s, v15.4s, v11.4s // +1 + add x9, sp, #0x10 // pass next round key + add v2.4s, v15.4s, v12.4s // +2 + ldr q9, [x13] // .LREVM0SR + ldr q8, [sp] // load round0 key + add v3.4s, v15.4s, v13.4s // +3 + mov x10, x15 // pass rounds + sub x11, x13, #.LREVM0SR-.LSR // pass constants + add v6.4s, v2.4s, v14.4s + add v4.4s, v15.4s, v14.4s // +4 + add v7.4s, v3.4s, v14.4s + add v15.4s, v4.4s, v14.4s // next counter + add v5.4s, v1.4s, v14.4s + + bl _bsaes_encrypt8_alt + + subs x2, x2, #8 + blo .Lctr_enc_loop_done + + ldr q16, [x0], #16 + ldr q17, [x0], #16 + eor v1.16b, v1.16b, v17.16b + ldr q17, [x0], #16 + eor v0.16b, v0.16b, v16.16b + eor v4.16b, v4.16b, v17.16b + str q0, [x1], #16 + ldr q16, [x0], #16 + str q1, [x1], #16 + mov v0.16b, v15.16b + str q4, [x1], #16 + ldr q1, [x0], #16 + eor v4.16b, v6.16b, v16.16b + eor v1.16b, v3.16b, v1.16b + ldr q3, [x0], #16 + eor v3.16b, v7.16b, v3.16b + ldr q6, [x0], #16 + eor v2.16b, v2.16b, v6.16b + ldr q6, [x0], #16 + eor v5.16b, v5.16b, v6.16b + str q4, [x1], #16 + str q1, [x1], #16 + str q3, [x1], #16 + str q2, [x1], #16 + str q5, [x1], #16 + + bne .Lctr_enc_loop + b .Lctr_enc_done + +.align 4 +.Lctr_enc_loop_done: + add x2, x2, #8 + ldr q16, [x0], #16 // load input + eor v0.16b, v0.16b, v16.16b + str q0, [x1], #16 // write output + cmp x2, #2 + blo .Lctr_enc_done + ldr q17, [x0], #16 + eor v1.16b, v1.16b, v17.16b + str q1, [x1], #16 + beq .Lctr_enc_done + ldr q18, [x0], #16 + eor v4.16b, v4.16b, v18.16b + str q4, [x1], #16 + cmp x2, #4 + blo .Lctr_enc_done + ldr q19, [x0], #16 + eor v6.16b, v6.16b, v19.16b + str q6, [x1], #16 + beq .Lctr_enc_done + ldr q20, [x0], #16 + eor v3.16b, v3.16b, v20.16b + str q3, [x1], #16 + cmp x2, #6 + blo .Lctr_enc_done + ldr q21, [x0], #16 + eor v7.16b, v7.16b, v21.16b + str q7, [x1], #16 + beq .Lctr_enc_done + ldr q22, [x0] + eor v2.16b, v2.16b, v22.16b + str q2, [x1], #16 + +.Lctr_enc_done: + movi v0.16b, #0 + movi v1.16b, #0 +.Lctr_enc_bzero: // wipe key schedule [if any] + stp q0, q1, [sp], #32 + cmp sp, x14 + bne .Lctr_enc_bzero + + ldp d8, d9, [sp, #16] + ldp d10, d11, [sp, #32] + ldp d12, d13, [sp, #48] + ldp d14, d15, [sp, #64] + ldp x29, x30, [sp], #80 + ret + +.Lctr_enc_short: + stp x29, x30, [sp, #-96]! + stp x19, x20, [sp, #16] + stp x21, x22, [sp, #32] + str x23, [sp, #48] + + mov x19, x0 // copy arguments + mov x20, x1 + mov x21, x2 + mov x22, x3 + ldr w23, [x4, #12] // load counter .LSW + ldr q1, [x4] // load whole counter value +#ifdef __AARCH64EL__ + rev w23, w23 +#endif + str q1, [sp, #80] // copy counter value + +.Lctr_enc_short_loop: + add x0, sp, #80 // input counter value + add x1, sp, #64 // output on the stack + mov x2, x22 // key + + bl AES_encrypt + + ldr q0, [x19], #16 // load input + ldr q1, [sp, #64] // load encrypted counter + add x23, x23, #1 +#ifdef __AARCH64EL__ + rev w0, w23 + str w0, [sp, #80+12] // next counter value +#else + str w23, [sp, #80+12] // next counter value +#endif + eor v0.16b, v0.16b, v1.16b + str q0, [x20], #16 // store output + subs x21, x21, #1 + bne .Lctr_enc_short_loop + + movi v0.16b, #0 + movi v1.16b, #0 + stp q0, q1, [sp, #64] + + ldr x23, [sp, #48] + ldp x21, x22, [sp, #32] + ldp x19, x20, [sp, #16] + ldp x29, x30, [sp], #96 + ret +.size ossl_bsaes_ctr32_encrypt_blocks,.-ossl_bsaes_ctr32_encrypt_blocks + +.globl ossl_bsaes_xts_encrypt +.type ossl_bsaes_xts_encrypt,%function +.align 4 +// On entry: +// x0 -> input plaintext +// x1 -> output ciphertext +// x2 -> length of text in bytes (must be at least 16) +// x3 -> key1 (used to encrypt the XORed plaintext blocks) +// x4 -> key2 (used to encrypt the initial vector to yield the initial tweak) +// x5 -> 16-byte initial vector (typically, sector number) +// On exit: +// Output ciphertext filled in +// No output registers, usual AAPCS64 register preservation +ossl_bsaes_xts_encrypt: + AARCH64_VALID_CALL_TARGET + // Stack layout: + // sp -> + // nrounds*128-96 bytes: key schedule + // x19 -> + // 16 bytes: frame record + // 4*16 bytes: tweak storage across _bsaes_encrypt8 + // 6*8 bytes: storage for 5 callee-saved general-purpose registers + // 8*8 bytes: storage for 8 callee-saved SIMD registers + stp x29, x30, [sp, #-192]! + stp x19, x20, [sp, #80] + stp x21, x22, [sp, #96] + str x23, [sp, #112] + stp d8, d9, [sp, #128] + stp d10, d11, [sp, #144] + stp d12, d13, [sp, #160] + stp d14, d15, [sp, #176] + + mov x19, sp + mov x20, x0 + mov x21, x1 + mov x22, x2 + mov x23, x3 + + // generate initial tweak + sub sp, sp, #16 + mov x0, x5 // iv[] + mov x1, sp + mov x2, x4 // key2 + bl AES_encrypt + ldr q11, [sp], #16 + + ldr w1, [x23, #240] // get # of rounds + // allocate the key schedule on the stack + add x17, sp, #96 + sub x17, x17, x1, lsl #7 // 128 bytes per inner round key, less 96 bytes + + // populate the key schedule + mov x9, x23 // pass key + mov x10, x1 // pass # of rounds + mov sp, x17 + bl _bsaes_key_convert + eor v15.16b, v15.16b, v7.16b // fix up last round key + str q15, [x17] // save last round key + + subs x22, x22, #0x80 + blo .Lxts_enc_short + b .Lxts_enc_loop + +.align 4 +.Lxts_enc_loop: + ldr q8, .Lxts_magic + mov x10, x1 // pass rounds + add x2, x19, #16 + ldr q0, [x20], #16 + sshr v1.2d, v11.2d, #63 + mov x9, sp // pass key schedule + ldr q6, .Lxts_magic+16 + add v2.2d, v11.2d, v11.2d + cmtst v3.2d, v11.2d, v6.2d + and v1.16b, v1.16b, v8.16b + ext v1.16b, v1.16b, v1.16b, #8 + and v3.16b, v3.16b, v8.16b + ldr q4, [x20], #16 + eor v12.16b, v2.16b, v1.16b + eor v1.16b, v4.16b, v12.16b + eor v0.16b, v0.16b, v11.16b + cmtst v2.2d, v12.2d, v6.2d + add v4.2d, v12.2d, v12.2d + add x0, x19, #16 + ext v3.16b, v3.16b, v3.16b, #8 + and v2.16b, v2.16b, v8.16b + eor v13.16b, v4.16b, v3.16b + ldr q3, [x20], #16 + ext v4.16b, v2.16b, v2.16b, #8 + eor v2.16b, v3.16b, v13.16b + ldr q3, [x20], #16 + add v5.2d, v13.2d, v13.2d + cmtst v7.2d, v13.2d, v6.2d + and v7.16b, v7.16b, v8.16b + ldr q9, [x20], #16 + ext v7.16b, v7.16b, v7.16b, #8 + ldr q10, [x20], #16 + eor v14.16b, v5.16b, v4.16b + ldr q16, [x20], #16 + add v4.2d, v14.2d, v14.2d + eor v3.16b, v3.16b, v14.16b + eor v15.16b, v4.16b, v7.16b + add v5.2d, v15.2d, v15.2d + ldr q7, [x20], #16 + cmtst v4.2d, v14.2d, v6.2d + and v17.16b, v4.16b, v8.16b + cmtst v18.2d, v15.2d, v6.2d + eor v4.16b, v9.16b, v15.16b + ext v9.16b, v17.16b, v17.16b, #8 + eor v9.16b, v5.16b, v9.16b + add v17.2d, v9.2d, v9.2d + and v18.16b, v18.16b, v8.16b + eor v5.16b, v10.16b, v9.16b + str q9, [x2], #16 + ext v10.16b, v18.16b, v18.16b, #8 + cmtst v9.2d, v9.2d, v6.2d + and v9.16b, v9.16b, v8.16b + eor v10.16b, v17.16b, v10.16b + cmtst v17.2d, v10.2d, v6.2d + eor v6.16b, v16.16b, v10.16b + str q10, [x2], #16 + ext v9.16b, v9.16b, v9.16b, #8 + add v10.2d, v10.2d, v10.2d + eor v9.16b, v10.16b, v9.16b + str q9, [x2], #16 + eor v7.16b, v7.16b, v9.16b + add v9.2d, v9.2d, v9.2d + and v8.16b, v17.16b, v8.16b + ext v8.16b, v8.16b, v8.16b, #8 + eor v8.16b, v9.16b, v8.16b + str q8, [x2] // next round tweak + + bl _bsaes_encrypt8 + + ldr q8, [x0], #16 + eor v0.16b, v0.16b, v11.16b + eor v1.16b, v1.16b, v12.16b + ldr q9, [x0], #16 + eor v4.16b, v4.16b, v13.16b + eor v6.16b, v6.16b, v14.16b + ldr q10, [x0], #16 + eor v3.16b, v3.16b, v15.16b + subs x22, x22, #0x80 + str q0, [x21], #16 + ldr q11, [x0] // next round tweak + str q1, [x21], #16 + eor v0.16b, v7.16b, v8.16b + eor v1.16b, v2.16b, v9.16b + str q4, [x21], #16 + eor v2.16b, v5.16b, v10.16b + str q6, [x21], #16 + str q3, [x21], #16 + str q0, [x21], #16 + str q1, [x21], #16 + str q2, [x21], #16 + bpl .Lxts_enc_loop + +.Lxts_enc_short: + adds x22, x22, #0x70 + bmi .Lxts_enc_done + + ldr q8, .Lxts_magic + sshr v1.2d, v11.2d, #63 + add v2.2d, v11.2d, v11.2d + ldr q9, .Lxts_magic+16 + subs x22, x22, #0x10 + ldr q0, [x20], #16 + and v1.16b, v1.16b, v8.16b + cmtst v3.2d, v11.2d, v9.2d + ext v1.16b, v1.16b, v1.16b, #8 + and v3.16b, v3.16b, v8.16b + eor v12.16b, v2.16b, v1.16b + ext v1.16b, v3.16b, v3.16b, #8 + add v2.2d, v12.2d, v12.2d + cmtst v3.2d, v12.2d, v9.2d + eor v13.16b, v2.16b, v1.16b + and v22.16b, v3.16b, v8.16b + bmi .Lxts_enc_1 + + ext v2.16b, v22.16b, v22.16b, #8 + add v3.2d, v13.2d, v13.2d + ldr q1, [x20], #16 + cmtst v4.2d, v13.2d, v9.2d + subs x22, x22, #0x10 + eor v14.16b, v3.16b, v2.16b + and v23.16b, v4.16b, v8.16b + bmi .Lxts_enc_2 + + ext v3.16b, v23.16b, v23.16b, #8 + add v4.2d, v14.2d, v14.2d + ldr q2, [x20], #16 + cmtst v5.2d, v14.2d, v9.2d + eor v0.16b, v0.16b, v11.16b + subs x22, x22, #0x10 + eor v15.16b, v4.16b, v3.16b + and v24.16b, v5.16b, v8.16b + bmi .Lxts_enc_3 + + ext v4.16b, v24.16b, v24.16b, #8 + add v5.2d, v15.2d, v15.2d + ldr q3, [x20], #16 + cmtst v6.2d, v15.2d, v9.2d + eor v1.16b, v1.16b, v12.16b + subs x22, x22, #0x10 + eor v16.16b, v5.16b, v4.16b + and v25.16b, v6.16b, v8.16b + bmi .Lxts_enc_4 + + ext v5.16b, v25.16b, v25.16b, #8 + add v6.2d, v16.2d, v16.2d + add x0, x19, #16 + cmtst v7.2d, v16.2d, v9.2d + ldr q4, [x20], #16 + eor v2.16b, v2.16b, v13.16b + str q16, [x0], #16 + subs x22, x22, #0x10 + eor v17.16b, v6.16b, v5.16b + and v26.16b, v7.16b, v8.16b + bmi .Lxts_enc_5 + + ext v7.16b, v26.16b, v26.16b, #8 + add v18.2d, v17.2d, v17.2d + ldr q5, [x20], #16 + eor v3.16b, v3.16b, v14.16b + str q17, [x0], #16 + subs x22, x22, #0x10 + eor v18.16b, v18.16b, v7.16b + bmi .Lxts_enc_6 + + ldr q6, [x20], #16 + eor v4.16b, v4.16b, v15.16b + eor v5.16b, v5.16b, v16.16b + str q18, [x0] // next round tweak + mov x9, sp // pass key schedule + mov x10, x1 + add x0, x19, #16 + sub x22, x22, #0x10 + eor v6.16b, v6.16b, v17.16b + + bl _bsaes_encrypt8 + + ldr q16, [x0], #16 + eor v0.16b, v0.16b, v11.16b + eor v1.16b, v1.16b, v12.16b + ldr q17, [x0], #16 + eor v4.16b, v4.16b, v13.16b + eor v6.16b, v6.16b, v14.16b + eor v3.16b, v3.16b, v15.16b + ldr q11, [x0] // next round tweak + str q0, [x21], #16 + str q1, [x21], #16 + eor v0.16b, v7.16b, v16.16b + eor v1.16b, v2.16b, v17.16b + str q4, [x21], #16 + str q6, [x21], #16 + str q3, [x21], #16 + str q0, [x21], #16 + str q1, [x21], #16 + b .Lxts_enc_done + +.align 4 +.Lxts_enc_6: + eor v4.16b, v4.16b, v15.16b + eor v5.16b, v5.16b, v16.16b + mov x9, sp // pass key schedule + mov x10, x1 // pass rounds + add x0, x19, #16 + + bl _bsaes_encrypt8 + + ldr q16, [x0], #16 + eor v0.16b, v0.16b, v11.16b + eor v1.16b, v1.16b, v12.16b + eor v4.16b, v4.16b, v13.16b + eor v6.16b, v6.16b, v14.16b + ldr q11, [x0] // next round tweak + eor v3.16b, v3.16b, v15.16b + str q0, [x21], #16 + str q1, [x21], #16 + eor v0.16b, v7.16b, v16.16b + str q4, [x21], #16 + str q6, [x21], #16 + str q3, [x21], #16 + str q0, [x21], #16 + b .Lxts_enc_done + +.align 4 +.Lxts_enc_5: + eor v3.16b, v3.16b, v14.16b + eor v4.16b, v4.16b, v15.16b + mov x9, sp // pass key schedule + mov x10, x1 // pass rounds + add x0, x19, #16 + + bl _bsaes_encrypt8 + + eor v0.16b, v0.16b, v11.16b + eor v1.16b, v1.16b, v12.16b + ldr q11, [x0] // next round tweak + eor v4.16b, v4.16b, v13.16b + eor v6.16b, v6.16b, v14.16b + eor v3.16b, v3.16b, v15.16b + str q0, [x21], #16 + str q1, [x21], #16 + str q4, [x21], #16 + str q6, [x21], #16 + str q3, [x21], #16 + b .Lxts_enc_done + +.align 4 +.Lxts_enc_4: + eor v2.16b, v2.16b, v13.16b + eor v3.16b, v3.16b, v14.16b + mov x9, sp // pass key schedule + mov x10, x1 // pass rounds + add x0, x19, #16 + + bl _bsaes_encrypt8 + + eor v0.16b, v0.16b, v11.16b + eor v1.16b, v1.16b, v12.16b + eor v4.16b, v4.16b, v13.16b + eor v6.16b, v6.16b, v14.16b + mov v11.16b, v15.16b // next round tweak + str q0, [x21], #16 + str q1, [x21], #16 + str q4, [x21], #16 + str q6, [x21], #16 + b .Lxts_enc_done + +.align 4 +.Lxts_enc_3: + eor v1.16b, v1.16b, v12.16b + eor v2.16b, v2.16b, v13.16b + mov x9, sp // pass key schedule + mov x10, x1 // pass rounds + add x0, x19, #16 + + bl _bsaes_encrypt8 + + eor v0.16b, v0.16b, v11.16b + eor v1.16b, v1.16b, v12.16b + eor v4.16b, v4.16b, v13.16b + mov v11.16b, v14.16b // next round tweak + str q0, [x21], #16 + str q1, [x21], #16 + str q4, [x21], #16 + b .Lxts_enc_done + +.align 4 +.Lxts_enc_2: + eor v0.16b, v0.16b, v11.16b + eor v1.16b, v1.16b, v12.16b + mov x9, sp // pass key schedule + mov x10, x1 // pass rounds + add x0, x19, #16 + + bl _bsaes_encrypt8 + + eor v0.16b, v0.16b, v11.16b + eor v1.16b, v1.16b, v12.16b + mov v11.16b, v13.16b // next round tweak + str q0, [x21], #16 + str q1, [x21], #16 + b .Lxts_enc_done + +.align 4 +.Lxts_enc_1: + eor v0.16b, v0.16b, v11.16b + sub x0, sp, #16 + sub x1, sp, #16 + mov x2, x23 + mov v13.d[0], v11.d[1] // just in case AES_encrypt corrupts top half of callee-saved SIMD registers + mov v14.d[0], v12.d[1] + str q0, [sp, #-16]! + + bl AES_encrypt + + ldr q0, [sp], #16 + trn1 v13.2d, v11.2d, v13.2d + trn1 v11.2d, v12.2d, v14.2d // next round tweak + eor v0.16b, v0.16b, v13.16b + str q0, [x21], #16 + +.Lxts_enc_done: + adds x22, x22, #0x10 + beq .Lxts_enc_ret + + sub x6, x21, #0x10 + // Penultimate plaintext block produces final ciphertext part-block + // plus remaining part of final plaintext block. Move ciphertext part + // to final position and reuse penultimate ciphertext block buffer to + // construct final plaintext block +.Lxts_enc_steal: + ldrb w0, [x20], #1 + ldrb w1, [x21, #-0x10] + strb w0, [x21, #-0x10] + strb w1, [x21], #1 + + subs x22, x22, #1 + bhi .Lxts_enc_steal + + // Finally encrypt the penultimate ciphertext block using the + // last tweak + ldr q0, [x6] + eor v0.16b, v0.16b, v11.16b + str q0, [sp, #-16]! + mov x0, sp + mov x1, sp + mov x2, x23 + mov x21, x6 + mov v13.d[0], v11.d[1] // just in case AES_encrypt corrupts top half of callee-saved SIMD registers + + bl AES_encrypt + + trn1 v11.2d, v11.2d, v13.2d + ldr q0, [sp], #16 + eor v0.16b, v0.16b, v11.16b + str q0, [x21] + +.Lxts_enc_ret: + + movi v0.16b, #0 + movi v1.16b, #0 +.Lxts_enc_bzero: // wipe key schedule + stp q0, q1, [sp], #32 + cmp sp, x19 + bne .Lxts_enc_bzero + + ldp x19, x20, [sp, #80] + ldp x21, x22, [sp, #96] + ldr x23, [sp, #112] + ldp d8, d9, [sp, #128] + ldp d10, d11, [sp, #144] + ldp d12, d13, [sp, #160] + ldp d14, d15, [sp, #176] + ldp x29, x30, [sp], #192 + ret +.size ossl_bsaes_xts_encrypt,.-ossl_bsaes_xts_encrypt + +// The assembler doesn't seem capable of de-duplicating these when expressed +// using `ldr qd,=` syntax, so assign a symbolic address +.align 5 +.Lxts_magic: +.quad 1, 0x87, 0x4000000000000000, 0x4000000000000000 + +.globl ossl_bsaes_xts_decrypt +.type ossl_bsaes_xts_decrypt,%function +.align 4 +// On entry: +// x0 -> input ciphertext +// x1 -> output plaintext +// x2 -> length of text in bytes (must be at least 16) +// x3 -> key1 (used to decrypt the XORed ciphertext blocks) +// x4 -> key2 (used to encrypt the initial vector to yield the initial tweak) +// x5 -> 16-byte initial vector (typically, sector number) +// On exit: +// Output plaintext filled in +// No output registers, usual AAPCS64 register preservation +ossl_bsaes_xts_decrypt: + AARCH64_VALID_CALL_TARGET + // Stack layout: + // sp -> + // nrounds*128-96 bytes: key schedule + // x19 -> + // 16 bytes: frame record + // 4*16 bytes: tweak storage across _bsaes_decrypt8 + // 6*8 bytes: storage for 5 callee-saved general-purpose registers + // 8*8 bytes: storage for 8 callee-saved SIMD registers + stp x29, x30, [sp, #-192]! + stp x19, x20, [sp, #80] + stp x21, x22, [sp, #96] + str x23, [sp, #112] + stp d8, d9, [sp, #128] + stp d10, d11, [sp, #144] + stp d12, d13, [sp, #160] + stp d14, d15, [sp, #176] + + mov x19, sp + mov x20, x0 + mov x21, x1 + mov x22, x2 + mov x23, x3 + + // generate initial tweak + sub sp, sp, #16 + mov x0, x5 // iv[] + mov x1, sp + mov x2, x4 // key2 + bl AES_encrypt + ldr q11, [sp], #16 + + ldr w1, [x23, #240] // get # of rounds + // allocate the key schedule on the stack + add x17, sp, #96 + sub x17, x17, x1, lsl #7 // 128 bytes per inner round key, less 96 bytes + + // populate the key schedule + mov x9, x23 // pass key + mov x10, x1 // pass # of rounds + mov sp, x17 + bl _bsaes_key_convert + ldr q6, [sp] + str q15, [x17] // save last round key + eor v6.16b, v6.16b, v7.16b // fix up round 0 key (by XORing with 0x63) + str q6, [sp] + + sub x30, x22, #0x10 + tst x22, #0xf // if not multiple of 16 + csel x22, x30, x22, ne // subtract another 16 bytes + subs x22, x22, #0x80 + + blo .Lxts_dec_short + b .Lxts_dec_loop + +.align 4 +.Lxts_dec_loop: + ldr q8, .Lxts_magic + mov x10, x1 // pass rounds + add x2, x19, #16 + ldr q0, [x20], #16 + sshr v1.2d, v11.2d, #63 + mov x9, sp // pass key schedule + ldr q6, .Lxts_magic+16 + add v2.2d, v11.2d, v11.2d + cmtst v3.2d, v11.2d, v6.2d + and v1.16b, v1.16b, v8.16b + ext v1.16b, v1.16b, v1.16b, #8 + and v3.16b, v3.16b, v8.16b + ldr q4, [x20], #16 + eor v12.16b, v2.16b, v1.16b + eor v1.16b, v4.16b, v12.16b + eor v0.16b, v0.16b, v11.16b + cmtst v2.2d, v12.2d, v6.2d + add v4.2d, v12.2d, v12.2d + add x0, x19, #16 + ext v3.16b, v3.16b, v3.16b, #8 + and v2.16b, v2.16b, v8.16b + eor v13.16b, v4.16b, v3.16b + ldr q3, [x20], #16 + ext v4.16b, v2.16b, v2.16b, #8 + eor v2.16b, v3.16b, v13.16b + ldr q3, [x20], #16 + add v5.2d, v13.2d, v13.2d + cmtst v7.2d, v13.2d, v6.2d + and v7.16b, v7.16b, v8.16b + ldr q9, [x20], #16 + ext v7.16b, v7.16b, v7.16b, #8 + ldr q10, [x20], #16 + eor v14.16b, v5.16b, v4.16b + ldr q16, [x20], #16 + add v4.2d, v14.2d, v14.2d + eor v3.16b, v3.16b, v14.16b + eor v15.16b, v4.16b, v7.16b + add v5.2d, v15.2d, v15.2d + ldr q7, [x20], #16 + cmtst v4.2d, v14.2d, v6.2d + and v17.16b, v4.16b, v8.16b + cmtst v18.2d, v15.2d, v6.2d + eor v4.16b, v9.16b, v15.16b + ext v9.16b, v17.16b, v17.16b, #8 + eor v9.16b, v5.16b, v9.16b + add v17.2d, v9.2d, v9.2d + and v18.16b, v18.16b, v8.16b + eor v5.16b, v10.16b, v9.16b + str q9, [x2], #16 + ext v10.16b, v18.16b, v18.16b, #8 + cmtst v9.2d, v9.2d, v6.2d + and v9.16b, v9.16b, v8.16b + eor v10.16b, v17.16b, v10.16b + cmtst v17.2d, v10.2d, v6.2d + eor v6.16b, v16.16b, v10.16b + str q10, [x2], #16 + ext v9.16b, v9.16b, v9.16b, #8 + add v10.2d, v10.2d, v10.2d + eor v9.16b, v10.16b, v9.16b + str q9, [x2], #16 + eor v7.16b, v7.16b, v9.16b + add v9.2d, v9.2d, v9.2d + and v8.16b, v17.16b, v8.16b + ext v8.16b, v8.16b, v8.16b, #8 + eor v8.16b, v9.16b, v8.16b + str q8, [x2] // next round tweak + + bl _bsaes_decrypt8 + + eor v6.16b, v6.16b, v13.16b + eor v0.16b, v0.16b, v11.16b + ldr q8, [x0], #16 + eor v7.16b, v7.16b, v8.16b + str q0, [x21], #16 + eor v0.16b, v1.16b, v12.16b + ldr q1, [x0], #16 + eor v1.16b, v3.16b, v1.16b + subs x22, x22, #0x80 + eor v2.16b, v2.16b, v15.16b + eor v3.16b, v4.16b, v14.16b + ldr q4, [x0], #16 + str q0, [x21], #16 + ldr q11, [x0] // next round tweak + eor v0.16b, v5.16b, v4.16b + str q6, [x21], #16 + str q3, [x21], #16 + str q2, [x21], #16 + str q7, [x21], #16 + str q1, [x21], #16 + str q0, [x21], #16 + bpl .Lxts_dec_loop + +.Lxts_dec_short: + adds x22, x22, #0x70 + bmi .Lxts_dec_done + + ldr q8, .Lxts_magic + sshr v1.2d, v11.2d, #63 + add v2.2d, v11.2d, v11.2d + ldr q9, .Lxts_magic+16 + subs x22, x22, #0x10 + ldr q0, [x20], #16 + and v1.16b, v1.16b, v8.16b + cmtst v3.2d, v11.2d, v9.2d + ext v1.16b, v1.16b, v1.16b, #8 + and v3.16b, v3.16b, v8.16b + eor v12.16b, v2.16b, v1.16b + ext v1.16b, v3.16b, v3.16b, #8 + add v2.2d, v12.2d, v12.2d + cmtst v3.2d, v12.2d, v9.2d + eor v13.16b, v2.16b, v1.16b + and v22.16b, v3.16b, v8.16b + bmi .Lxts_dec_1 + + ext v2.16b, v22.16b, v22.16b, #8 + add v3.2d, v13.2d, v13.2d + ldr q1, [x20], #16 + cmtst v4.2d, v13.2d, v9.2d + subs x22, x22, #0x10 + eor v14.16b, v3.16b, v2.16b + and v23.16b, v4.16b, v8.16b + bmi .Lxts_dec_2 + + ext v3.16b, v23.16b, v23.16b, #8 + add v4.2d, v14.2d, v14.2d + ldr q2, [x20], #16 + cmtst v5.2d, v14.2d, v9.2d + eor v0.16b, v0.16b, v11.16b + subs x22, x22, #0x10 + eor v15.16b, v4.16b, v3.16b + and v24.16b, v5.16b, v8.16b + bmi .Lxts_dec_3 + + ext v4.16b, v24.16b, v24.16b, #8 + add v5.2d, v15.2d, v15.2d + ldr q3, [x20], #16 + cmtst v6.2d, v15.2d, v9.2d + eor v1.16b, v1.16b, v12.16b + subs x22, x22, #0x10 + eor v16.16b, v5.16b, v4.16b + and v25.16b, v6.16b, v8.16b + bmi .Lxts_dec_4 + + ext v5.16b, v25.16b, v25.16b, #8 + add v6.2d, v16.2d, v16.2d + add x0, x19, #16 + cmtst v7.2d, v16.2d, v9.2d + ldr q4, [x20], #16 + eor v2.16b, v2.16b, v13.16b + str q16, [x0], #16 + subs x22, x22, #0x10 + eor v17.16b, v6.16b, v5.16b + and v26.16b, v7.16b, v8.16b + bmi .Lxts_dec_5 + + ext v7.16b, v26.16b, v26.16b, #8 + add v18.2d, v17.2d, v17.2d + ldr q5, [x20], #16 + eor v3.16b, v3.16b, v14.16b + str q17, [x0], #16 + subs x22, x22, #0x10 + eor v18.16b, v18.16b, v7.16b + bmi .Lxts_dec_6 + + ldr q6, [x20], #16 + eor v4.16b, v4.16b, v15.16b + eor v5.16b, v5.16b, v16.16b + str q18, [x0] // next round tweak + mov x9, sp // pass key schedule + mov x10, x1 + add x0, x19, #16 + sub x22, x22, #0x10 + eor v6.16b, v6.16b, v17.16b + + bl _bsaes_decrypt8 + + ldr q16, [x0], #16 + eor v0.16b, v0.16b, v11.16b + eor v1.16b, v1.16b, v12.16b + ldr q17, [x0], #16 + eor v6.16b, v6.16b, v13.16b + eor v4.16b, v4.16b, v14.16b + eor v2.16b, v2.16b, v15.16b + ldr q11, [x0] // next round tweak + str q0, [x21], #16 + str q1, [x21], #16 + eor v0.16b, v7.16b, v16.16b + eor v1.16b, v3.16b, v17.16b + str q6, [x21], #16 + str q4, [x21], #16 + str q2, [x21], #16 + str q0, [x21], #16 + str q1, [x21], #16 + b .Lxts_dec_done + +.align 4 +.Lxts_dec_6: + eor v4.16b, v4.16b, v15.16b + eor v5.16b, v5.16b, v16.16b + mov x9, sp // pass key schedule + mov x10, x1 // pass rounds + add x0, x19, #16 + + bl _bsaes_decrypt8 + + ldr q16, [x0], #16 + eor v0.16b, v0.16b, v11.16b + eor v1.16b, v1.16b, v12.16b + eor v6.16b, v6.16b, v13.16b + eor v4.16b, v4.16b, v14.16b + ldr q11, [x0] // next round tweak + eor v2.16b, v2.16b, v15.16b + str q0, [x21], #16 + str q1, [x21], #16 + eor v0.16b, v7.16b, v16.16b + str q6, [x21], #16 + str q4, [x21], #16 + str q2, [x21], #16 + str q0, [x21], #16 + b .Lxts_dec_done + +.align 4 +.Lxts_dec_5: + eor v3.16b, v3.16b, v14.16b + eor v4.16b, v4.16b, v15.16b + mov x9, sp // pass key schedule + mov x10, x1 // pass rounds + add x0, x19, #16 + + bl _bsaes_decrypt8 + + eor v0.16b, v0.16b, v11.16b + eor v1.16b, v1.16b, v12.16b + ldr q11, [x0] // next round tweak + eor v6.16b, v6.16b, v13.16b + eor v4.16b, v4.16b, v14.16b + eor v2.16b, v2.16b, v15.16b + str q0, [x21], #16 + str q1, [x21], #16 + str q6, [x21], #16 + str q4, [x21], #16 + str q2, [x21], #16 + b .Lxts_dec_done + +.align 4 +.Lxts_dec_4: + eor v2.16b, v2.16b, v13.16b + eor v3.16b, v3.16b, v14.16b + mov x9, sp // pass key schedule + mov x10, x1 // pass rounds + add x0, x19, #16 + + bl _bsaes_decrypt8 + + eor v0.16b, v0.16b, v11.16b + eor v1.16b, v1.16b, v12.16b + eor v6.16b, v6.16b, v13.16b + eor v4.16b, v4.16b, v14.16b + mov v11.16b, v15.16b // next round tweak + str q0, [x21], #16 + str q1, [x21], #16 + str q6, [x21], #16 + str q4, [x21], #16 + b .Lxts_dec_done + +.align 4 +.Lxts_dec_3: + eor v1.16b, v1.16b, v12.16b + eor v2.16b, v2.16b, v13.16b + mov x9, sp // pass key schedule + mov x10, x1 // pass rounds + add x0, x19, #16 + + bl _bsaes_decrypt8 + + eor v0.16b, v0.16b, v11.16b + eor v1.16b, v1.16b, v12.16b + eor v6.16b, v6.16b, v13.16b + mov v11.16b, v14.16b // next round tweak + str q0, [x21], #16 + str q1, [x21], #16 + str q6, [x21], #16 + b .Lxts_dec_done + +.align 4 +.Lxts_dec_2: + eor v0.16b, v0.16b, v11.16b + eor v1.16b, v1.16b, v12.16b + mov x9, sp // pass key schedule + mov x10, x1 // pass rounds + add x0, x19, #16 + + bl _bsaes_decrypt8 + + eor v0.16b, v0.16b, v11.16b + eor v1.16b, v1.16b, v12.16b + mov v11.16b, v13.16b // next round tweak + str q0, [x21], #16 + str q1, [x21], #16 + b .Lxts_dec_done + +.align 4 +.Lxts_dec_1: + eor v0.16b, v0.16b, v11.16b + sub x0, sp, #16 + sub x1, sp, #16 + mov x2, x23 + mov v13.d[0], v11.d[1] // just in case AES_decrypt corrupts top half of callee-saved SIMD registers + mov v14.d[0], v12.d[1] + str q0, [sp, #-16]! + + bl AES_decrypt + + ldr q0, [sp], #16 + trn1 v13.2d, v11.2d, v13.2d + trn1 v11.2d, v12.2d, v14.2d // next round tweak + eor v0.16b, v0.16b, v13.16b + str q0, [x21], #16 + +.Lxts_dec_done: + adds x22, x22, #0x10 + beq .Lxts_dec_ret + + // calculate one round of extra tweak for the stolen ciphertext + ldr q8, .Lxts_magic + sshr v6.2d, v11.2d, #63 + and v6.16b, v6.16b, v8.16b + add v12.2d, v11.2d, v11.2d + ext v6.16b, v6.16b, v6.16b, #8 + eor v12.16b, v12.16b, v6.16b + + // perform the final decryption with the last tweak value + ldr q0, [x20], #16 + eor v0.16b, v0.16b, v12.16b + str q0, [sp, #-16]! + mov x0, sp + mov x1, sp + mov x2, x23 + mov v13.d[0], v11.d[1] // just in case AES_decrypt corrupts top half of callee-saved SIMD registers + mov v14.d[0], v12.d[1] + + bl AES_decrypt + + trn1 v12.2d, v12.2d, v14.2d + trn1 v11.2d, v11.2d, v13.2d + ldr q0, [sp], #16 + eor v0.16b, v0.16b, v12.16b + str q0, [x21] + + mov x6, x21 + // Penultimate ciphertext block produces final plaintext part-block + // plus remaining part of final ciphertext block. Move plaintext part + // to final position and reuse penultimate plaintext block buffer to + // construct final ciphertext block +.Lxts_dec_steal: + ldrb w1, [x21] + ldrb w0, [x20], #1 + strb w1, [x21, #0x10] + strb w0, [x21], #1 + + subs x22, x22, #1 + bhi .Lxts_dec_steal + + // Finally decrypt the penultimate plaintext block using the + // penultimate tweak + ldr q0, [x6] + eor v0.16b, v0.16b, v11.16b + str q0, [sp, #-16]! + mov x0, sp + mov x1, sp + mov x2, x23 + mov x21, x6 + + bl AES_decrypt + + trn1 v11.2d, v11.2d, v13.2d + ldr q0, [sp], #16 + eor v0.16b, v0.16b, v11.16b + str q0, [x21] + +.Lxts_dec_ret: + + movi v0.16b, #0 + movi v1.16b, #0 +.Lxts_dec_bzero: // wipe key schedule + stp q0, q1, [sp], #32 + cmp sp, x19 + bne .Lxts_dec_bzero + + ldp x19, x20, [sp, #80] + ldp x21, x22, [sp, #96] + ldr x23, [sp, #112] + ldp d8, d9, [sp, #128] + ldp d10, d11, [sp, #144] + ldp d12, d13, [sp, #160] + ldp d14, d15, [sp, #176] + ldp x29, x30, [sp], #192 + ret +.size ossl_bsaes_xts_decrypt,.-ossl_bsaes_xts_decrypt diff --git a/deps/openssl/config/archs/linux-aarch64/asm/crypto/aes/vpaes-armv8.S b/deps/openssl/config/archs/linux-aarch64/asm/crypto/aes/vpaes-armv8.S index 4724cdfd27fc89..9d9be004162d3e 100644 --- a/deps/openssl/config/archs/linux-aarch64/asm/crypto/aes/vpaes-armv8.S +++ b/deps/openssl/config/archs/linux-aarch64/asm/crypto/aes/vpaes-armv8.S @@ -1,4 +1,6 @@ -.text +#include "arm_arch.h" + +.section .rodata .type _vpaes_consts,%object .align 7 // totally strategic alignment @@ -90,6 +92,9 @@ _vpaes_consts: .align 2 .size _vpaes_consts,.-_vpaes_consts .align 6 + +.text + // // _aes_preheat // @@ -99,7 +104,8 @@ _vpaes_consts: .type _vpaes_encrypt_preheat,%function .align 4 _vpaes_encrypt_preheat: - adr x10, .Lk_inv + adrp x10, .Lk_inv + add x10, x10, #:lo12:.Lk_inv movi v17.16b, #0x0f ld1 {v18.2d,v19.2d}, [x10],#32 // .Lk_inv ld1 {v20.2d,v21.2d,v22.2d,v23.2d}, [x10],#64 // .Lk_ipt, .Lk_sbo @@ -127,7 +133,8 @@ _vpaes_encrypt_preheat: _vpaes_encrypt_core: mov x9, x2 ldr w8, [x2,#240] // pull rounds - adr x11, .Lk_mc_forward+16 + adrp x11, .Lk_mc_forward+16 + add x11, x11, #:lo12:.Lk_mc_forward+16 // vmovdqa .Lk_ipt(%rip), %xmm2 # iptlo ld1 {v16.2d}, [x9], #16 // vmovdqu (%r9), %xmm5 # round0 key and v1.16b, v7.16b, v17.16b // vpand %xmm9, %xmm0, %xmm1 @@ -195,7 +202,7 @@ _vpaes_encrypt_core: .type vpaes_encrypt,%function .align 4 vpaes_encrypt: -.inst 0xd503233f // paciasp + AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-16]! add x29,sp,#0 @@ -205,7 +212,7 @@ vpaes_encrypt: st1 {v0.16b}, [x1] ldp x29,x30,[sp],#16 -.inst 0xd50323bf // autiasp + AARCH64_VALIDATE_LINK_REGISTER ret .size vpaes_encrypt,.-vpaes_encrypt @@ -214,7 +221,8 @@ vpaes_encrypt: _vpaes_encrypt_2x: mov x9, x2 ldr w8, [x2,#240] // pull rounds - adr x11, .Lk_mc_forward+16 + adrp x11, .Lk_mc_forward+16 + add x11, x11, #:lo12:.Lk_mc_forward+16 // vmovdqa .Lk_ipt(%rip), %xmm2 # iptlo ld1 {v16.2d}, [x9], #16 // vmovdqu (%r9), %xmm5 # round0 key and v1.16b, v14.16b, v17.16b // vpand %xmm9, %xmm0, %xmm1 @@ -317,9 +325,11 @@ _vpaes_encrypt_2x: .type _vpaes_decrypt_preheat,%function .align 4 _vpaes_decrypt_preheat: - adr x10, .Lk_inv + adrp x10, .Lk_inv + add x10, x10, #:lo12:.Lk_inv movi v17.16b, #0x0f - adr x11, .Lk_dipt + adrp x11, .Lk_dipt + add x11, x11, #:lo12:.Lk_dipt ld1 {v18.2d,v19.2d}, [x10],#32 // .Lk_inv ld1 {v20.2d,v21.2d,v22.2d,v23.2d}, [x11],#64 // .Lk_dipt, .Lk_dsbo ld1 {v24.2d,v25.2d,v26.2d,v27.2d}, [x11],#64 // .Lk_dsb9, .Lk_dsbd @@ -341,10 +351,12 @@ _vpaes_decrypt_core: // vmovdqa .Lk_dipt(%rip), %xmm2 # iptlo lsl x11, x8, #4 // mov %rax, %r11; shl $4, %r11 eor x11, x11, #0x30 // xor $0x30, %r11 - adr x10, .Lk_sr + adrp x10, .Lk_sr + add x10, x10, #:lo12:.Lk_sr and x11, x11, #0x30 // and $0x30, %r11 add x11, x11, x10 - adr x10, .Lk_mc_forward+48 + adrp x10, .Lk_mc_forward+48 + add x10, x10, #:lo12:.Lk_mc_forward+48 ld1 {v16.2d}, [x9],#16 // vmovdqu (%r9), %xmm4 # round0 key and v1.16b, v7.16b, v17.16b // vpand %xmm9, %xmm0, %xmm1 @@ -428,7 +440,7 @@ _vpaes_decrypt_core: .type vpaes_decrypt,%function .align 4 vpaes_decrypt: -.inst 0xd503233f // paciasp + AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-16]! add x29,sp,#0 @@ -438,7 +450,7 @@ vpaes_decrypt: st1 {v0.16b}, [x1] ldp x29,x30,[sp],#16 -.inst 0xd50323bf // autiasp + AARCH64_VALIDATE_LINK_REGISTER ret .size vpaes_decrypt,.-vpaes_decrypt @@ -452,10 +464,12 @@ _vpaes_decrypt_2x: // vmovdqa .Lk_dipt(%rip), %xmm2 # iptlo lsl x11, x8, #4 // mov %rax, %r11; shl $4, %r11 eor x11, x11, #0x30 // xor $0x30, %r11 - adr x10, .Lk_sr + adrp x10, .Lk_sr + add x10, x10, #:lo12:.Lk_sr and x11, x11, #0x30 // and $0x30, %r11 add x11, x11, x10 - adr x10, .Lk_mc_forward+48 + adrp x10, .Lk_mc_forward+48 + add x10, x10, #:lo12:.Lk_mc_forward+48 ld1 {v16.2d}, [x9],#16 // vmovdqu (%r9), %xmm4 # round0 key and v1.16b, v14.16b, v17.16b // vpand %xmm9, %xmm0, %xmm1 @@ -584,14 +598,18 @@ _vpaes_decrypt_2x: .type _vpaes_key_preheat,%function .align 4 _vpaes_key_preheat: - adr x10, .Lk_inv + adrp x10, .Lk_inv + add x10, x10, #:lo12:.Lk_inv movi v16.16b, #0x5b // .Lk_s63 - adr x11, .Lk_sb1 + adrp x11, .Lk_sb1 + add x11, x11, #:lo12:.Lk_sb1 movi v17.16b, #0x0f // .Lk_s0F ld1 {v18.2d,v19.2d,v20.2d,v21.2d}, [x10] // .Lk_inv, .Lk_ipt - adr x10, .Lk_dksd + adrp x10, .Lk_dksd + add x10, x10, #:lo12:.Lk_dksd ld1 {v22.2d,v23.2d}, [x11] // .Lk_sb1 - adr x11, .Lk_mc_forward + adrp x11, .Lk_mc_forward + add x11, x11, #:lo12:.Lk_mc_forward ld1 {v24.2d,v25.2d,v26.2d,v27.2d}, [x10],#64 // .Lk_dksd, .Lk_dksb ld1 {v28.2d,v29.2d,v30.2d,v31.2d}, [x10],#64 // .Lk_dkse, .Lk_dks9 ld1 {v8.2d}, [x10] // .Lk_rcon @@ -602,7 +620,7 @@ _vpaes_key_preheat: .type _vpaes_schedule_core,%function .align 4 _vpaes_schedule_core: -.inst 0xd503233f // paciasp + AARCH64_SIGN_LINK_REGISTER stp x29, x30, [sp,#-16]! add x29,sp,#0 @@ -615,7 +633,8 @@ _vpaes_schedule_core: bl _vpaes_schedule_transform mov v7.16b, v0.16b // vmovdqa %xmm0, %xmm7 - adr x10, .Lk_sr // lea .Lk_sr(%rip),%r10 + adrp x10, .Lk_sr + add x10, x10, #:lo12:.Lk_sr add x8, x8, x10 cbnz w3, .Lschedule_am_decrypting @@ -741,12 +760,14 @@ _vpaes_schedule_core: .align 4 .Lschedule_mangle_last: // schedule last round key from xmm0 - adr x11, .Lk_deskew // lea .Lk_deskew(%rip),%r11 # prepare to deskew + adrp x11, .Lk_deskew + add x11, x11, #:lo12:.Lk_deskew cbnz w3, .Lschedule_mangle_last_dec // encrypting ld1 {v1.2d}, [x8] // vmovdqa (%r8,%r10),%xmm1 - adr x11, .Lk_opt // lea .Lk_opt(%rip), %r11 # prepare to output transform + adrp x11, .Lk_opt + add x11, x11, #:lo12:.Lk_opt add x2, x2, #32 // add $32, %rdx tbl v0.16b, {v0.16b}, v1.16b // vpshufb %xmm1, %xmm0, %xmm0 # output permute @@ -767,7 +788,7 @@ _vpaes_schedule_core: eor v6.16b, v6.16b, v6.16b // vpxor %xmm6, %xmm6, %xmm6 eor v7.16b, v7.16b, v7.16b // vpxor %xmm7, %xmm7, %xmm7 ldp x29, x30, [sp],#16 -.inst 0xd50323bf // autiasp + AARCH64_VALIDATE_LINK_REGISTER ret .size _vpaes_schedule_core,.-_vpaes_schedule_core @@ -980,7 +1001,7 @@ _vpaes_schedule_mangle: .type vpaes_set_encrypt_key,%function .align 4 vpaes_set_encrypt_key: -.inst 0xd503233f // paciasp + AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-16]! add x29,sp,#0 stp d8,d9,[sp,#-16]! // ABI spec says so @@ -996,7 +1017,7 @@ vpaes_set_encrypt_key: ldp d8,d9,[sp],#16 ldp x29,x30,[sp],#16 -.inst 0xd50323bf // autiasp + AARCH64_VALIDATE_LINK_REGISTER ret .size vpaes_set_encrypt_key,.-vpaes_set_encrypt_key @@ -1004,7 +1025,7 @@ vpaes_set_encrypt_key: .type vpaes_set_decrypt_key,%function .align 4 vpaes_set_decrypt_key: -.inst 0xd503233f // paciasp + AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-16]! add x29,sp,#0 stp d8,d9,[sp,#-16]! // ABI spec says so @@ -1024,18 +1045,18 @@ vpaes_set_decrypt_key: ldp d8,d9,[sp],#16 ldp x29,x30,[sp],#16 -.inst 0xd50323bf // autiasp + AARCH64_VALIDATE_LINK_REGISTER ret .size vpaes_set_decrypt_key,.-vpaes_set_decrypt_key .globl vpaes_cbc_encrypt .type vpaes_cbc_encrypt,%function .align 4 vpaes_cbc_encrypt: + AARCH64_SIGN_LINK_REGISTER cbz x2, .Lcbc_abort cmp w5, #0 // check direction b.eq vpaes_cbc_decrypt -.inst 0xd503233f // paciasp stp x29,x30,[sp,#-16]! add x29,sp,#0 @@ -1058,15 +1079,16 @@ vpaes_cbc_encrypt: st1 {v0.16b}, [x4] // write ivec ldp x29,x30,[sp],#16 -.inst 0xd50323bf // autiasp .Lcbc_abort: + AARCH64_VALIDATE_LINK_REGISTER ret .size vpaes_cbc_encrypt,.-vpaes_cbc_encrypt .type vpaes_cbc_decrypt,%function .align 4 vpaes_cbc_decrypt: -.inst 0xd503233f // paciasp + // Not adding AARCH64_SIGN_LINK_REGISTER here because vpaes_cbc_decrypt is jumped to + // only from vpaes_cbc_encrypt which has already signed the return address. stp x29,x30,[sp,#-16]! add x29,sp,#0 stp d8,d9,[sp,#-16]! // ABI spec says so @@ -1108,14 +1130,14 @@ vpaes_cbc_decrypt: ldp d10,d11,[sp],#16 ldp d8,d9,[sp],#16 ldp x29,x30,[sp],#16 -.inst 0xd50323bf // autiasp + AARCH64_VALIDATE_LINK_REGISTER ret .size vpaes_cbc_decrypt,.-vpaes_cbc_decrypt .globl vpaes_ecb_encrypt .type vpaes_ecb_encrypt,%function .align 4 vpaes_ecb_encrypt: -.inst 0xd503233f // paciasp + AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-16]! add x29,sp,#0 stp d8,d9,[sp,#-16]! // ABI spec says so @@ -1149,7 +1171,7 @@ vpaes_ecb_encrypt: ldp d10,d11,[sp],#16 ldp d8,d9,[sp],#16 ldp x29,x30,[sp],#16 -.inst 0xd50323bf // autiasp + AARCH64_VALIDATE_LINK_REGISTER ret .size vpaes_ecb_encrypt,.-vpaes_ecb_encrypt @@ -1157,7 +1179,7 @@ vpaes_ecb_encrypt: .type vpaes_ecb_decrypt,%function .align 4 vpaes_ecb_decrypt: -.inst 0xd503233f // paciasp + AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-16]! add x29,sp,#0 stp d8,d9,[sp,#-16]! // ABI spec says so @@ -1191,6 +1213,6 @@ vpaes_ecb_decrypt: ldp d10,d11,[sp],#16 ldp d8,d9,[sp],#16 ldp x29,x30,[sp],#16 -.inst 0xd50323bf // autiasp + AARCH64_VALIDATE_LINK_REGISTER ret .size vpaes_ecb_decrypt,.-vpaes_ecb_decrypt diff --git a/deps/openssl/config/archs/linux-aarch64/asm/crypto/arm64cpuid.S b/deps/openssl/config/archs/linux-aarch64/asm/crypto/arm64cpuid.S index 7fb4c7507a0d2f..5cc56673f3d004 100644 --- a/deps/openssl/config/archs/linux-aarch64/asm/crypto/arm64cpuid.S +++ b/deps/openssl/config/archs/linux-aarch64/asm/crypto/arm64cpuid.S @@ -7,6 +7,7 @@ .globl _armv7_neon_probe .type _armv7_neon_probe,%function _armv7_neon_probe: + AARCH64_VALID_CALL_TARGET orr v15.16b, v15.16b, v15.16b ret .size _armv7_neon_probe,.-_armv7_neon_probe @@ -14,6 +15,7 @@ _armv7_neon_probe: .globl _armv7_tick .type _armv7_tick,%function _armv7_tick: + AARCH64_VALID_CALL_TARGET #ifdef __APPLE__ mrs x0, CNTPCT_EL0 #else @@ -25,6 +27,7 @@ _armv7_tick: .globl _armv8_aes_probe .type _armv8_aes_probe,%function _armv8_aes_probe: + AARCH64_VALID_CALL_TARGET aese v0.16b, v0.16b ret .size _armv8_aes_probe,.-_armv8_aes_probe @@ -32,6 +35,7 @@ _armv8_aes_probe: .globl _armv8_sha1_probe .type _armv8_sha1_probe,%function _armv8_sha1_probe: + AARCH64_VALID_CALL_TARGET sha1h s0, s0 ret .size _armv8_sha1_probe,.-_armv8_sha1_probe @@ -39,6 +43,7 @@ _armv8_sha1_probe: .globl _armv8_sha256_probe .type _armv8_sha256_probe,%function _armv8_sha256_probe: + AARCH64_VALID_CALL_TARGET sha256su0 v0.4s, v0.4s ret .size _armv8_sha256_probe,.-_armv8_sha256_probe @@ -46,28 +51,72 @@ _armv8_sha256_probe: .globl _armv8_pmull_probe .type _armv8_pmull_probe,%function _armv8_pmull_probe: + AARCH64_VALID_CALL_TARGET pmull v0.1q, v0.1d, v0.1d ret .size _armv8_pmull_probe,.-_armv8_pmull_probe +.globl _armv8_sm4_probe +.type _armv8_sm4_probe,%function +_armv8_sm4_probe: + AARCH64_VALID_CALL_TARGET +.inst 0xcec08400 // sm4e v0.4s, v0.4s + ret +.size _armv8_sm4_probe,.-_armv8_sm4_probe + .globl _armv8_sha512_probe .type _armv8_sha512_probe,%function _armv8_sha512_probe: -.long 0xcec08000 // sha512su0 v0.2d,v0.2d + AARCH64_VALID_CALL_TARGET +.inst 0xcec08000 // sha512su0 v0.2d,v0.2d ret .size _armv8_sha512_probe,.-_armv8_sha512_probe +.globl _armv8_eor3_probe +.type _armv8_eor3_probe,%function +_armv8_eor3_probe: + AARCH64_VALID_CALL_TARGET +.inst 0xce010800 // eor3 v0.16b, v0.16b, v1.16b, v2.16b + ret +.size _armv8_eor3_probe,.-_armv8_eor3_probe + +.globl _armv8_sve_probe +.type _armv8_sve_probe,%function +_armv8_sve_probe: + AARCH64_VALID_CALL_TARGET +.inst 0x04a03000 // eor z0.d,z0.d,z0.d + ret +.size _armv8_sve_probe,.-_armv8_sve_probe + +.globl _armv8_sve2_probe +.type _armv8_sve2_probe,%function +_armv8_sve2_probe: + AARCH64_VALID_CALL_TARGET +.inst 0x04e03400 // xar z0.d,z0.d,z0.d + ret +.size _armv8_sve2_probe,.-_armv8_sve2_probe + .globl _armv8_cpuid_probe .type _armv8_cpuid_probe,%function _armv8_cpuid_probe: + AARCH64_VALID_CALL_TARGET mrs x0, midr_el1 ret .size _armv8_cpuid_probe,.-_armv8_cpuid_probe +.globl _armv8_sm3_probe +.type _armv8_sm3_probe,%function +_armv8_sm3_probe: + AARCH64_VALID_CALL_TARGET +.inst 0xce63c004 // sm3partw1 v4.4s, v0.4s, v3.4s + ret +.size _armv8_sm3_probe,.-_armv8_sm3_probe + .globl OPENSSL_cleanse .type OPENSSL_cleanse,%function .align 5 OPENSSL_cleanse: + AARCH64_VALID_CALL_TARGET cbz x1,.Lret // len==0? cmp x1,#15 b.hi .Lot // len>15 @@ -99,6 +148,7 @@ OPENSSL_cleanse: .type CRYPTO_memcmp,%function .align 4 CRYPTO_memcmp: + AARCH64_VALID_CALL_TARGET eor w3,w3,w3 cbz x2,.Lno_data // len==0? cmp x2,#16 @@ -127,3 +177,98 @@ CRYPTO_memcmp: lsr w0,w0,#31 ret .size CRYPTO_memcmp,.-CRYPTO_memcmp + +.globl _armv8_rng_probe +.type _armv8_rng_probe,%function +_armv8_rng_probe: + AARCH64_VALID_CALL_TARGET + mrs x0, s3_3_c2_c4_0 // rndr + mrs x0, s3_3_c2_c4_1 // rndrrs + ret +.size _armv8_rng_probe,.-_armv8_rng_probe +// Fill buffer with Randomly Generated Bytes +// inputs: char * in x0 - Pointer to buffer +// size_t in x1 - Number of bytes to write to buffer +// outputs: size_t in x0 - Number of bytes successfully written to buffer +.globl OPENSSL_rndr_asm +.type OPENSSL_rndr_asm,%function +.align 4 +OPENSSL_rndr_asm: + AARCH64_VALID_CALL_TARGET + mov x2,xzr + mov x3,xzr + +.align 4 +.Loop_rndr: + cmp x1,#0 + b.eq .rndr_done + mov x3,xzr + mrs x3,s3_3_c2_c4_0 + b.eq .rndr_done + + cmp x1,#8 + b.lt .Loop_single_byte_rndr + + str x3,[x0] + add x0,x0,#8 + add x2,x2,#8 + subs x1,x1,#8 + b.ge .Loop_rndr + +.align 4 +.Loop_single_byte_rndr: + strb w3,[x0] + lsr x3,x3,#8 + add x2,x2,#1 + add x0,x0,#1 + subs x1,x1,#1 + b.gt .Loop_single_byte_rndr + +.align 4 +.rndr_done: + mov x0,x2 + ret +.size OPENSSL_rndr_asm,.-OPENSSL_rndr_asm +// Fill buffer with Randomly Generated Bytes +// inputs: char * in x0 - Pointer to buffer +// size_t in x1 - Number of bytes to write to buffer +// outputs: size_t in x0 - Number of bytes successfully written to buffer +.globl OPENSSL_rndrrs_asm +.type OPENSSL_rndrrs_asm,%function +.align 4 +OPENSSL_rndrrs_asm: + AARCH64_VALID_CALL_TARGET + mov x2,xzr + mov x3,xzr + +.align 4 +.Loop_rndrrs: + cmp x1,#0 + b.eq .rndrrs_done + mov x3,xzr + mrs x3,s3_3_c2_c4_1 + b.eq .rndrrs_done + + cmp x1,#8 + b.lt .Loop_single_byte_rndrrs + + str x3,[x0] + add x0,x0,#8 + add x2,x2,#8 + subs x1,x1,#8 + b.ge .Loop_rndrrs + +.align 4 +.Loop_single_byte_rndrrs: + strb w3,[x0] + lsr x3,x3,#8 + add x2,x2,#1 + add x0,x0,#1 + subs x1,x1,#1 + b.gt .Loop_single_byte_rndrrs + +.align 4 +.rndrrs_done: + mov x0,x2 + ret +.size OPENSSL_rndrrs_asm,.-OPENSSL_rndrrs_asm diff --git a/deps/openssl/config/archs/linux-aarch64/asm/crypto/bn/armv8-mont.S b/deps/openssl/config/archs/linux-aarch64/asm/crypto/bn/armv8-mont.S index 397c83e863839f..c9fe7621f4220f 100644 --- a/deps/openssl/config/archs/linux-aarch64/asm/crypto/bn/armv8-mont.S +++ b/deps/openssl/config/archs/linux-aarch64/asm/crypto/bn/armv8-mont.S @@ -1,5 +1,5 @@ +#include "arm_arch.h" #ifndef __KERNEL__ -# include "arm_arch.h" .hidden OPENSSL_armv8_rsa_neonized #endif @@ -9,6 +9,7 @@ .type bn_mul_mont,%function .align 5 bn_mul_mont: + AARCH64_SIGN_LINK_REGISTER .Lbn_mul_mont: tst x5,#3 b.ne .Lmul_mont @@ -221,11 +222,14 @@ bn_mul_mont: mov x0,#1 ldp x23,x24,[x29,#48] ldr x29,[sp],#64 + AARCH64_VALIDATE_LINK_REGISTER ret .size bn_mul_mont,.-bn_mul_mont .type bn_mul8x_mont_neon,%function .align 5 bn_mul8x_mont_neon: + // Not adding AARCH64_SIGN_LINK_REGISTER here because bn_mul8x_mont_neon is jumped to + // only from bn_mul_mont which has already signed the return address. stp x29,x30,[sp,#-80]! mov x16,sp stp d8,d9,[sp,#16] @@ -918,6 +922,7 @@ bn_mul8x_mont_neon: ldp d10,d11,[sp,#32] ldp d8,d9,[sp,#16] ldr x29,[sp],#80 + AARCH64_VALIDATE_LINK_REGISTER ret // bx lr .size bn_mul8x_mont_neon,.-bn_mul8x_mont_neon @@ -927,7 +932,8 @@ __bn_sqr8x_mont: cmp x1,x2 b.ne __bn_mul4x_mont .Lsqr8x_mont: -.inst 0xd503233f // paciasp + // Not adding AARCH64_SIGN_LINK_REGISTER here because __bn_sqr8x_mont is jumped to + // only from bn_mul_mont which has already signed the return address. stp x29,x30,[sp,#-128]! add x29,sp,#0 stp x19,x20,[sp,#16] @@ -1678,13 +1684,15 @@ __bn_sqr8x_mont: ldp x25,x26,[x29,#64] ldp x27,x28,[x29,#80] ldr x29,[sp],#128 -.inst 0xd50323bf // autiasp + // x30 is loaded earlier + AARCH64_VALIDATE_LINK_REGISTER ret .size __bn_sqr8x_mont,.-__bn_sqr8x_mont .type __bn_mul4x_mont,%function .align 5 __bn_mul4x_mont: -.inst 0xd503233f // paciasp + // Not adding AARCH64_SIGN_LINK_REGISTER here because __bn_mul4x_mont is jumped to + // only from bn_mul_mont (or __bn_sqr8x_mont from bn_mul_mont) which has already signed the return address. stp x29,x30,[sp,#-128]! add x29,sp,#0 stp x19,x20,[sp,#16] @@ -2118,9 +2126,11 @@ __bn_mul4x_mont: ldp x25,x26,[x29,#64] ldp x27,x28,[x29,#80] ldr x29,[sp],#128 -.inst 0xd50323bf // autiasp + // x30 loaded earlier + AARCH64_VALIDATE_LINK_REGISTER ret .size __bn_mul4x_mont,.-__bn_mul4x_mont +.section .rodata .byte 77,111,110,116,103,111,109,101,114,121,32,77,117,108,116,105,112,108,105,99,97,116,105,111,110,32,102,111,114,32,65,82,77,118,56,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 .align 2 .align 4 diff --git a/deps/openssl/config/archs/linux-aarch64/asm/crypto/buildinf.h b/deps/openssl/config/archs/linux-aarch64/asm/crypto/buildinf.h index ba449cee7440d2..0cbf6332ece0e6 100644 --- a/deps/openssl/config/archs/linux-aarch64/asm/crypto/buildinf.h +++ b/deps/openssl/config/archs/linux-aarch64/asm/crypto/buildinf.h @@ -11,7 +11,7 @@ */ #define PLATFORM "platform: linux-aarch64" -#define DATE "built on: Sun Jul 20 00:48:54 2025 UTC" +#define DATE "built on: Sun Jul 27 00:50:08 2025 UTC" /* * Generate compiler_flags as an array of individual characters. This is a diff --git a/deps/openssl/config/archs/linux-aarch64/asm/crypto/chacha/chacha-armv8-sve.S b/deps/openssl/config/archs/linux-aarch64/asm/crypto/chacha/chacha-armv8-sve.S new file mode 100644 index 00000000000000..e64c2544d1b4cc --- /dev/null +++ b/deps/openssl/config/archs/linux-aarch64/asm/crypto/chacha/chacha-armv8-sve.S @@ -0,0 +1,3558 @@ +// Copyright 2022-2025 The OpenSSL Project Authors. All Rights Reserved. +// +// Licensed under the Apache License 2.0 (the "License"). You may not use +// this file except in compliance with the License. You can obtain a copy +// in the file LICENSE in the source distribution or at +// https://www.openssl.org/source/license.html +// +// +// ChaCha20 for ARMv8 via SVE +// +// $output is the last argument if it looks like a file (it has an extension) +// $flavour is the first argument if it doesn't look like a file +#include "arm_arch.h" + +.arch armv8-a + + +.hidden OPENSSL_armcap_P + +.text + +.section .rodata +.align 5 +.type _chacha_sve_consts,%object +_chacha_sve_consts: +.Lchacha20_consts: +.quad 0x3320646e61707865,0x6b20657479622d32 // endian-neutral +.Lrot8: +.word 0x02010003,0x04040404,0x02010003,0x04040404 +.size _chacha_sve_consts,.-_chacha_sve_consts + +.previous + +.globl ChaCha20_ctr32_sve +.type ChaCha20_ctr32_sve,%function +.align 5 +ChaCha20_ctr32_sve: + AARCH64_VALID_CALL_TARGET +.inst 0x04a0e3e5 //cntw x5, ALL, MUL #1 + cmp x2,x5,lsl #6 + b.lt .Lreturn + mov x7,0 + adrp x6,OPENSSL_armcap_P + ldr w6,[x6,#:lo12:OPENSSL_armcap_P] + tst w6,#ARMV8_SVE2 + b.eq 1f + mov x7,1 + b 2f +1: + cmp x5,4 + b.le .Lreturn + adrp x6,.Lrot8 + add x6,x6,#:lo12:.Lrot8 + ldp w9,w10,[x6] +.inst 0x04aa4d3f //index z31.s,w9,w10 +2: + AARCH64_SIGN_LINK_REGISTER + stp d8,d9,[sp,-192]! + stp d10,d11,[sp,16] + stp d12,d13,[sp,32] + stp d14,d15,[sp,48] + stp x16,x17,[sp,64] + stp x18,x19,[sp,80] + stp x20,x21,[sp,96] + stp x22,x23,[sp,112] + stp x24,x25,[sp,128] + stp x26,x27,[sp,144] + stp x28,x29,[sp,160] + str x30,[sp,176] + + adrp x6,.Lchacha20_consts + add x6,x6,#:lo12:.Lchacha20_consts + ldp x23,x24,[x6] + ldp x25,x26,[x3] + ldp x27,x28,[x3, 16] + ldp x29,x30,[x4] +.inst 0x2599e3e0 //ptrues p0.s,ALL +#ifdef __AARCH64EB__ + ror x25,x25,#32 + ror x26,x26,#32 + ror x27,x27,#32 + ror x28,x28,#32 + ror x29,x29,#32 + ror x30,x30,#32 +#endif + cbz x7, 1f +.align 5 +100: + subs x7,x2,x5,lsl #6 + b.lt 110f + mov x2,x7 + b.eq 101f + cmp x2,64 + b.lt 101f + mixin=1 + lsr x8,x23,#32 +.inst 0x05a03ae0 //dup z0.s,w23 +.inst 0x05a03af9 //dup z25.s,w23 +.if mixin == 1 + mov w7,w23 +.endif +.inst 0x05a03904 //dup z4.s,w8 +.inst 0x05a0391a //dup z26.s,w8 + lsr x10,x24,#32 +.inst 0x05a03b08 //dup z8.s,w24 +.inst 0x05a03b1b //dup z27.s,w24 +.if mixin == 1 + mov w9,w24 +.endif +.inst 0x05a0394c //dup z12.s,w10 +.inst 0x05a0395c //dup z28.s,w10 + lsr x12,x25,#32 +.inst 0x05a03b21 //dup z1.s,w25 +.inst 0x05a03b3d //dup z29.s,w25 +.if mixin == 1 + mov w11,w25 +.endif +.inst 0x05a03985 //dup z5.s,w12 +.inst 0x05a0399e //dup z30.s,w12 + lsr x14,x26,#32 +.inst 0x05a03b49 //dup z9.s,w26 +.inst 0x05a03b55 //dup z21.s,w26 +.if mixin == 1 + mov w13,w26 +.endif +.inst 0x05a039cd //dup z13.s,w14 +.inst 0x05a039d6 //dup z22.s,w14 + lsr x16,x27,#32 +.inst 0x05a03b62 //dup z2.s,w27 +.inst 0x05a03b77 //dup z23.s,w27 +.if mixin == 1 + mov w15,w27 +.endif +.inst 0x05a03a06 //dup z6.s,w16 +.inst 0x05a03a18 //dup z24.s,w16 + lsr x18,x28,#32 +.inst 0x05a03b8a //dup z10.s,w28 +.inst 0x05a03b91 //dup z17.s,w28 +.if mixin == 1 + mov w17,w28 +.endif +.inst 0x05a03a4e //dup z14.s,w18 +.inst 0x05a03a52 //dup z18.s,w18 + lsr x22,x30,#32 +.inst 0x05a03bcb //dup z11.s,w30 +.inst 0x05a03bd4 //dup z20.s,w30 +.if mixin == 1 + mov w21,w30 +.endif +.inst 0x05a03acf //dup z15.s,w22 +.inst 0x05a03adf //dup z31.s,w22 +.if mixin == 1 + add w20,w29,#1 + mov w19,w29 +.inst 0x04a14690 //index z16.s,w20,1 +.inst 0x04a14683 //index z3.s,w20,1 +.else +.inst 0x04a147b0 //index z16.s,w29,1 +.inst 0x04a147a3 //index z3.s,w29,1 +.endif + lsr x20,x29,#32 +.inst 0x05a03a87 //dup z7.s,w20 +.inst 0x05a03a93 //dup z19.s,w20 + mov x6,#10 +10: +.align 5 +.inst 0x04a10000 //add z0.s,z0.s,z1.s +.if mixin == 1 + add w7,w7,w11 +.endif +.inst 0x04a50084 //add z4.s,z4.s,z5.s +.if mixin == 1 + add w8,w8,w12 +.endif +.inst 0x04a90108 //add z8.s,z8.s,z9.s +.if mixin == 1 + add w9,w9,w13 +.endif +.inst 0x04ad018c //add z12.s,z12.s,z13.s +.if mixin == 1 + add w10,w10,w14 +.endif +.if mixin == 1 + eor w19,w19,w7 +.endif +.inst 0x04703403 //xar z3.s,z3.s,z0.s,16 +.if mixin == 1 + ror w19,w19,16 +.endif +.if mixin == 1 + eor w20,w20,w8 +.endif +.inst 0x04703487 //xar z7.s,z7.s,z4.s,16 +.if mixin == 1 + ror w20,w20,16 +.endif +.if mixin == 1 + eor w21,w21,w9 +.endif +.inst 0x0470350b //xar z11.s,z11.s,z8.s,16 +.if mixin == 1 + ror w21,w21,16 +.endif +.if mixin == 1 + eor w22,w22,w10 +.endif +.inst 0x0470358f //xar z15.s,z15.s,z12.s,16 +.if mixin == 1 + ror w22,w22,16 +.endif +.inst 0x04a30042 //add z2.s,z2.s,z3.s +.if mixin == 1 + add w15,w15,w19 +.endif +.inst 0x04a700c6 //add z6.s,z6.s,z7.s +.if mixin == 1 + add w16,w16,w20 +.endif +.inst 0x04ab014a //add z10.s,z10.s,z11.s +.if mixin == 1 + add w17,w17,w21 +.endif +.inst 0x04af01ce //add z14.s,z14.s,z15.s +.if mixin == 1 + add w18,w18,w22 +.endif +.if mixin == 1 + eor w11,w11,w15 +.endif +.inst 0x046c3441 //xar z1.s,z1.s,z2.s,20 +.if mixin == 1 + ror w11,w11,20 +.endif +.if mixin == 1 + eor w12,w12,w16 +.endif +.inst 0x046c34c5 //xar z5.s,z5.s,z6.s,20 +.if mixin == 1 + ror w12,w12,20 +.endif +.if mixin == 1 + eor w13,w13,w17 +.endif +.inst 0x046c3549 //xar z9.s,z9.s,z10.s,20 +.if mixin == 1 + ror w13,w13,20 +.endif +.if mixin == 1 + eor w14,w14,w18 +.endif +.inst 0x046c35cd //xar z13.s,z13.s,z14.s,20 +.if mixin == 1 + ror w14,w14,20 +.endif +.inst 0x04a10000 //add z0.s,z0.s,z1.s +.if mixin == 1 + add w7,w7,w11 +.endif +.inst 0x04a50084 //add z4.s,z4.s,z5.s +.if mixin == 1 + add w8,w8,w12 +.endif +.inst 0x04a90108 //add z8.s,z8.s,z9.s +.if mixin == 1 + add w9,w9,w13 +.endif +.inst 0x04ad018c //add z12.s,z12.s,z13.s +.if mixin == 1 + add w10,w10,w14 +.endif +.if mixin == 1 + eor w19,w19,w7 +.endif +.inst 0x04683403 //xar z3.s,z3.s,z0.s,24 +.if mixin == 1 + ror w19,w19,24 +.endif +.if mixin == 1 + eor w20,w20,w8 +.endif +.inst 0x04683487 //xar z7.s,z7.s,z4.s,24 +.if mixin == 1 + ror w20,w20,24 +.endif +.if mixin == 1 + eor w21,w21,w9 +.endif +.inst 0x0468350b //xar z11.s,z11.s,z8.s,24 +.if mixin == 1 + ror w21,w21,24 +.endif +.if mixin == 1 + eor w22,w22,w10 +.endif +.inst 0x0468358f //xar z15.s,z15.s,z12.s,24 +.if mixin == 1 + ror w22,w22,24 +.endif +.inst 0x04a30042 //add z2.s,z2.s,z3.s +.if mixin == 1 + add w15,w15,w19 +.endif +.inst 0x04a700c6 //add z6.s,z6.s,z7.s +.if mixin == 1 + add w16,w16,w20 +.endif +.inst 0x04ab014a //add z10.s,z10.s,z11.s +.if mixin == 1 + add w17,w17,w21 +.endif +.inst 0x04af01ce //add z14.s,z14.s,z15.s +.if mixin == 1 + add w18,w18,w22 +.endif +.if mixin == 1 + eor w11,w11,w15 +.endif +.inst 0x04673441 //xar z1.s,z1.s,z2.s,25 +.if mixin == 1 + ror w11,w11,25 +.endif +.if mixin == 1 + eor w12,w12,w16 +.endif +.inst 0x046734c5 //xar z5.s,z5.s,z6.s,25 +.if mixin == 1 + ror w12,w12,25 +.endif +.if mixin == 1 + eor w13,w13,w17 +.endif +.inst 0x04673549 //xar z9.s,z9.s,z10.s,25 +.if mixin == 1 + ror w13,w13,25 +.endif +.if mixin == 1 + eor w14,w14,w18 +.endif +.inst 0x046735cd //xar z13.s,z13.s,z14.s,25 +.if mixin == 1 + ror w14,w14,25 +.endif +.inst 0x04a50000 //add z0.s,z0.s,z5.s +.if mixin == 1 + add w7,w7,w12 +.endif +.inst 0x04a90084 //add z4.s,z4.s,z9.s +.if mixin == 1 + add w8,w8,w13 +.endif +.inst 0x04ad0108 //add z8.s,z8.s,z13.s +.if mixin == 1 + add w9,w9,w14 +.endif +.inst 0x04a1018c //add z12.s,z12.s,z1.s +.if mixin == 1 + add w10,w10,w11 +.endif +.if mixin == 1 + eor w22,w22,w7 +.endif +.inst 0x0470340f //xar z15.s,z15.s,z0.s,16 +.if mixin == 1 + ror w22,w22,16 +.endif +.if mixin == 1 + eor w19,w19,w8 +.endif +.inst 0x04703483 //xar z3.s,z3.s,z4.s,16 +.if mixin == 1 + ror w19,w19,16 +.endif +.if mixin == 1 + eor w20,w20,w9 +.endif +.inst 0x04703507 //xar z7.s,z7.s,z8.s,16 +.if mixin == 1 + ror w20,w20,16 +.endif +.if mixin == 1 + eor w21,w21,w10 +.endif +.inst 0x0470358b //xar z11.s,z11.s,z12.s,16 +.if mixin == 1 + ror w21,w21,16 +.endif +.inst 0x04af014a //add z10.s,z10.s,z15.s +.if mixin == 1 + add w17,w17,w22 +.endif +.inst 0x04a301ce //add z14.s,z14.s,z3.s +.if mixin == 1 + add w18,w18,w19 +.endif +.inst 0x04a70042 //add z2.s,z2.s,z7.s +.if mixin == 1 + add w15,w15,w20 +.endif +.inst 0x04ab00c6 //add z6.s,z6.s,z11.s +.if mixin == 1 + add w16,w16,w21 +.endif +.if mixin == 1 + eor w12,w12,w17 +.endif +.inst 0x046c3545 //xar z5.s,z5.s,z10.s,20 +.if mixin == 1 + ror w12,w12,20 +.endif +.if mixin == 1 + eor w13,w13,w18 +.endif +.inst 0x046c35c9 //xar z9.s,z9.s,z14.s,20 +.if mixin == 1 + ror w13,w13,20 +.endif +.if mixin == 1 + eor w14,w14,w15 +.endif +.inst 0x046c344d //xar z13.s,z13.s,z2.s,20 +.if mixin == 1 + ror w14,w14,20 +.endif +.if mixin == 1 + eor w11,w11,w16 +.endif +.inst 0x046c34c1 //xar z1.s,z1.s,z6.s,20 +.if mixin == 1 + ror w11,w11,20 +.endif +.inst 0x04a50000 //add z0.s,z0.s,z5.s +.if mixin == 1 + add w7,w7,w12 +.endif +.inst 0x04a90084 //add z4.s,z4.s,z9.s +.if mixin == 1 + add w8,w8,w13 +.endif +.inst 0x04ad0108 //add z8.s,z8.s,z13.s +.if mixin == 1 + add w9,w9,w14 +.endif +.inst 0x04a1018c //add z12.s,z12.s,z1.s +.if mixin == 1 + add w10,w10,w11 +.endif +.if mixin == 1 + eor w22,w22,w7 +.endif +.inst 0x0468340f //xar z15.s,z15.s,z0.s,24 +.if mixin == 1 + ror w22,w22,24 +.endif +.if mixin == 1 + eor w19,w19,w8 +.endif +.inst 0x04683483 //xar z3.s,z3.s,z4.s,24 +.if mixin == 1 + ror w19,w19,24 +.endif +.if mixin == 1 + eor w20,w20,w9 +.endif +.inst 0x04683507 //xar z7.s,z7.s,z8.s,24 +.if mixin == 1 + ror w20,w20,24 +.endif +.if mixin == 1 + eor w21,w21,w10 +.endif +.inst 0x0468358b //xar z11.s,z11.s,z12.s,24 +.if mixin == 1 + ror w21,w21,24 +.endif +.inst 0x04af014a //add z10.s,z10.s,z15.s +.if mixin == 1 + add w17,w17,w22 +.endif +.inst 0x04a301ce //add z14.s,z14.s,z3.s +.if mixin == 1 + add w18,w18,w19 +.endif +.inst 0x04a70042 //add z2.s,z2.s,z7.s +.if mixin == 1 + add w15,w15,w20 +.endif +.inst 0x04ab00c6 //add z6.s,z6.s,z11.s +.if mixin == 1 + add w16,w16,w21 +.endif +.if mixin == 1 + eor w12,w12,w17 +.endif +.inst 0x04673545 //xar z5.s,z5.s,z10.s,25 +.if mixin == 1 + ror w12,w12,25 +.endif +.if mixin == 1 + eor w13,w13,w18 +.endif +.inst 0x046735c9 //xar z9.s,z9.s,z14.s,25 +.if mixin == 1 + ror w13,w13,25 +.endif +.if mixin == 1 + eor w14,w14,w15 +.endif +.inst 0x0467344d //xar z13.s,z13.s,z2.s,25 +.if mixin == 1 + ror w14,w14,25 +.endif +.if mixin == 1 + eor w11,w11,w16 +.endif +.inst 0x046734c1 //xar z1.s,z1.s,z6.s,25 +.if mixin == 1 + ror w11,w11,25 +.endif + sub x6,x6,1 + cbnz x6,10b +.if mixin == 1 + add w7,w7,w23 +.endif +.inst 0x04b90000 //add z0.s,z0.s,z25.s +.if mixin == 1 + add x8,x8,x23,lsr #32 +.endif +.inst 0x04ba0084 //add z4.s,z4.s,z26.s +.if mixin == 1 + add x7,x7,x8,lsl #32 // pack +.endif +.if mixin == 1 + add w9,w9,w24 +.endif +.inst 0x04bb0108 //add z8.s,z8.s,z27.s +.if mixin == 1 + add x10,x10,x24,lsr #32 +.endif +.inst 0x04bc018c //add z12.s,z12.s,z28.s +.if mixin == 1 + add x9,x9,x10,lsl #32 // pack +.endif +.if mixin == 1 + ldp x8,x10,[x1],#16 +.endif +.if mixin == 1 + add w11,w11,w25 +.endif +.inst 0x04bd0021 //add z1.s,z1.s,z29.s +.if mixin == 1 + add x12,x12,x25,lsr #32 +.endif +.inst 0x04be00a5 //add z5.s,z5.s,z30.s +.if mixin == 1 + add x11,x11,x12,lsl #32 // pack +.endif +.if mixin == 1 + add w13,w13,w26 +.endif +.inst 0x04b50129 //add z9.s,z9.s,z21.s +.if mixin == 1 + add x14,x14,x26,lsr #32 +.endif +.inst 0x04b601ad //add z13.s,z13.s,z22.s +.if mixin == 1 + add x13,x13,x14,lsl #32 // pack +.endif +.if mixin == 1 + ldp x12,x14,[x1],#16 +.endif +.if mixin == 1 + add w15,w15,w27 +.endif +.inst 0x04b70042 //add z2.s,z2.s,z23.s +.if mixin == 1 + add x16,x16,x27,lsr #32 +.endif +.inst 0x04b800c6 //add z6.s,z6.s,z24.s +.if mixin == 1 + add x15,x15,x16,lsl #32 // pack +.endif +.if mixin == 1 + add w17,w17,w28 +.endif +.inst 0x04b1014a //add z10.s,z10.s,z17.s +.if mixin == 1 + add x18,x18,x28,lsr #32 +.endif +.inst 0x04b201ce //add z14.s,z14.s,z18.s +.if mixin == 1 + add x17,x17,x18,lsl #32 // pack +.endif +.if mixin == 1 + ldp x16,x18,[x1],#16 +.endif +.if mixin == 1 + add w19,w19,w29 +.endif +.inst 0x04b00063 //add z3.s,z3.s,z16.s +.if mixin == 1 + add x20,x20,x29,lsr #32 +.endif +.inst 0x04b300e7 //add z7.s,z7.s,z19.s +.if mixin == 1 + add x19,x19,x20,lsl #32 // pack +.endif +.if mixin == 1 + add w21,w21,w30 +.endif +.inst 0x04b4016b //add z11.s,z11.s,z20.s +.if mixin == 1 + add x22,x22,x30,lsr #32 +.endif +.inst 0x04bf01ef //add z15.s,z15.s,z31.s +.if mixin == 1 + add x21,x21,x22,lsl #32 // pack +.endif +.if mixin == 1 + ldp x20,x22,[x1],#16 +.endif +#ifdef __AARCH64EB__ + rev x7,x7 +.inst 0x05a48000 //revb z0.s,p0/m,z0.s +.inst 0x05a48084 //revb z4.s,p0/m,z4.s + rev x9,x9 +.inst 0x05a48108 //revb z8.s,p0/m,z8.s +.inst 0x05a4818c //revb z12.s,p0/m,z12.s + rev x11,x11 +.inst 0x05a48021 //revb z1.s,p0/m,z1.s +.inst 0x05a480a5 //revb z5.s,p0/m,z5.s + rev x13,x13 +.inst 0x05a48129 //revb z9.s,p0/m,z9.s +.inst 0x05a481ad //revb z13.s,p0/m,z13.s + rev x15,x15 +.inst 0x05a48042 //revb z2.s,p0/m,z2.s +.inst 0x05a480c6 //revb z6.s,p0/m,z6.s + rev x17,x17 +.inst 0x05a4814a //revb z10.s,p0/m,z10.s +.inst 0x05a481ce //revb z14.s,p0/m,z14.s + rev x19,x19 +.inst 0x05a48063 //revb z3.s,p0/m,z3.s +.inst 0x05a480e7 //revb z7.s,p0/m,z7.s + rev x21,x21 +.inst 0x05a4816b //revb z11.s,p0/m,z11.s +.inst 0x05a481ef //revb z15.s,p0/m,z15.s +#endif +.if mixin == 1 + add x29,x29,#1 +.endif + cmp x5,4 + b.ne 200f +.if mixin == 1 + eor x7,x7,x8 +.endif +.if mixin == 1 + eor x9,x9,x10 +.endif +.if mixin == 1 + eor x11,x11,x12 +.endif +.inst 0x05a46011 //zip1 z17.s,z0.s,z4.s +.inst 0x05a46412 //zip2 z18.s,z0.s,z4.s +.inst 0x05ac6113 //zip1 z19.s,z8.s,z12.s +.inst 0x05ac6514 //zip2 z20.s,z8.s,z12.s + +.inst 0x05a56035 //zip1 z21.s,z1.s,z5.s +.inst 0x05a56436 //zip2 z22.s,z1.s,z5.s +.inst 0x05ad6137 //zip1 z23.s,z9.s,z13.s +.inst 0x05ad6538 //zip2 z24.s,z9.s,z13.s + +.inst 0x05f36220 //zip1 z0.d,z17.d,z19.d +.inst 0x05f36624 //zip2 z4.d,z17.d,z19.d +.inst 0x05f46248 //zip1 z8.d,z18.d,z20.d +.inst 0x05f4664c //zip2 z12.d,z18.d,z20.d + +.inst 0x05f762a1 //zip1 z1.d,z21.d,z23.d +.inst 0x05f766a5 //zip2 z5.d,z21.d,z23.d +.inst 0x05f862c9 //zip1 z9.d,z22.d,z24.d +.inst 0x05f866cd //zip2 z13.d,z22.d,z24.d +.if mixin == 1 + eor x13,x13,x14 +.endif +.if mixin == 1 + eor x15,x15,x16 +.endif +.if mixin == 1 + eor x17,x17,x18 +.endif +.inst 0x05a66051 //zip1 z17.s,z2.s,z6.s +.inst 0x05a66452 //zip2 z18.s,z2.s,z6.s +.inst 0x05ae6153 //zip1 z19.s,z10.s,z14.s +.inst 0x05ae6554 //zip2 z20.s,z10.s,z14.s + +.inst 0x05a76075 //zip1 z21.s,z3.s,z7.s +.inst 0x05a76476 //zip2 z22.s,z3.s,z7.s +.inst 0x05af6177 //zip1 z23.s,z11.s,z15.s +.inst 0x05af6578 //zip2 z24.s,z11.s,z15.s + +.inst 0x05f36222 //zip1 z2.d,z17.d,z19.d +.inst 0x05f36626 //zip2 z6.d,z17.d,z19.d +.inst 0x05f4624a //zip1 z10.d,z18.d,z20.d +.inst 0x05f4664e //zip2 z14.d,z18.d,z20.d + +.inst 0x05f762a3 //zip1 z3.d,z21.d,z23.d +.inst 0x05f766a7 //zip2 z7.d,z21.d,z23.d +.inst 0x05f862cb //zip1 z11.d,z22.d,z24.d +.inst 0x05f866cf //zip2 z15.d,z22.d,z24.d +.if mixin == 1 + eor x19,x19,x20 +.endif +.if mixin == 1 + eor x21,x21,x22 +.endif + ld1 {v17.4s,v18.4s,v19.4s,v20.4s},[x1],#64 + ld1 {v21.4s,v22.4s,v23.4s,v24.4s},[x1],#64 +.inst 0x04b13000 //eor z0.d,z0.d,z17.d +.inst 0x04b23021 //eor z1.d,z1.d,z18.d +.inst 0x04b33042 //eor z2.d,z2.d,z19.d +.inst 0x04b43063 //eor z3.d,z3.d,z20.d +.inst 0x04b53084 //eor z4.d,z4.d,z21.d +.inst 0x04b630a5 //eor z5.d,z5.d,z22.d +.inst 0x04b730c6 //eor z6.d,z6.d,z23.d +.inst 0x04b830e7 //eor z7.d,z7.d,z24.d + ld1 {v17.4s,v18.4s,v19.4s,v20.4s},[x1],#64 + ld1 {v21.4s,v22.4s,v23.4s,v24.4s},[x1],#64 +.if mixin == 1 + stp x7,x9,[x0],#16 +.endif +.inst 0x04b13108 //eor z8.d,z8.d,z17.d +.inst 0x04b23129 //eor z9.d,z9.d,z18.d +.if mixin == 1 + stp x11,x13,[x0],#16 +.endif +.inst 0x04b3314a //eor z10.d,z10.d,z19.d +.inst 0x04b4316b //eor z11.d,z11.d,z20.d +.if mixin == 1 + stp x15,x17,[x0],#16 +.endif +.inst 0x04b5318c //eor z12.d,z12.d,z21.d +.inst 0x04b631ad //eor z13.d,z13.d,z22.d +.if mixin == 1 + stp x19,x21,[x0],#16 +.endif +.inst 0x04b731ce //eor z14.d,z14.d,z23.d +.inst 0x04b831ef //eor z15.d,z15.d,z24.d + st1 {v0.4s,v1.4s,v2.4s,v3.4s},[x0],#64 + st1 {v4.4s,v5.4s,v6.4s,v7.4s},[x0],#64 + st1 {v8.4s,v9.4s,v10.4s,v11.4s},[x0],#64 + st1 {v12.4s,v13.4s,v14.4s,v15.4s},[x0],#64 + b 210f +200: +.inst 0x05a16011 //zip1 z17.s,z0.s,z1.s +.inst 0x05a16412 //zip2 z18.s,z0.s,z1.s +.inst 0x05a36053 //zip1 z19.s,z2.s,z3.s +.inst 0x05a36454 //zip2 z20.s,z2.s,z3.s + +.inst 0x05a56095 //zip1 z21.s,z4.s,z5.s +.inst 0x05a56496 //zip2 z22.s,z4.s,z5.s +.inst 0x05a760d7 //zip1 z23.s,z6.s,z7.s +.inst 0x05a764d8 //zip2 z24.s,z6.s,z7.s + +.inst 0x05f36220 //zip1 z0.d,z17.d,z19.d +.inst 0x05f36621 //zip2 z1.d,z17.d,z19.d +.inst 0x05f46242 //zip1 z2.d,z18.d,z20.d +.inst 0x05f46643 //zip2 z3.d,z18.d,z20.d + +.inst 0x05f762a4 //zip1 z4.d,z21.d,z23.d +.inst 0x05f766a5 //zip2 z5.d,z21.d,z23.d +.inst 0x05f862c6 //zip1 z6.d,z22.d,z24.d +.inst 0x05f866c7 //zip2 z7.d,z22.d,z24.d +.if mixin == 1 + eor x7,x7,x8 +.endif +.if mixin == 1 + eor x9,x9,x10 +.endif +.inst 0x05a96111 //zip1 z17.s,z8.s,z9.s +.inst 0x05a96512 //zip2 z18.s,z8.s,z9.s +.inst 0x05ab6153 //zip1 z19.s,z10.s,z11.s +.inst 0x05ab6554 //zip2 z20.s,z10.s,z11.s + +.inst 0x05ad6195 //zip1 z21.s,z12.s,z13.s +.inst 0x05ad6596 //zip2 z22.s,z12.s,z13.s +.inst 0x05af61d7 //zip1 z23.s,z14.s,z15.s +.inst 0x05af65d8 //zip2 z24.s,z14.s,z15.s + +.inst 0x05f36228 //zip1 z8.d,z17.d,z19.d +.inst 0x05f36629 //zip2 z9.d,z17.d,z19.d +.inst 0x05f4624a //zip1 z10.d,z18.d,z20.d +.inst 0x05f4664b //zip2 z11.d,z18.d,z20.d + +.inst 0x05f762ac //zip1 z12.d,z21.d,z23.d +.inst 0x05f766ad //zip2 z13.d,z21.d,z23.d +.inst 0x05f862ce //zip1 z14.d,z22.d,z24.d +.inst 0x05f866cf //zip2 z15.d,z22.d,z24.d +.if mixin == 1 + eor x11,x11,x12 +.endif +.if mixin == 1 + eor x13,x13,x14 +.endif +.inst 0x05a46011 //zip1 z17.s,z0.s,z4.s +.inst 0x05a46412 //zip2 z18.s,z0.s,z4.s +.inst 0x05ac6113 //zip1 z19.s,z8.s,z12.s +.inst 0x05ac6514 //zip2 z20.s,z8.s,z12.s + +.inst 0x05a56035 //zip1 z21.s,z1.s,z5.s +.inst 0x05a56436 //zip2 z22.s,z1.s,z5.s +.inst 0x05ad6137 //zip1 z23.s,z9.s,z13.s +.inst 0x05ad6538 //zip2 z24.s,z9.s,z13.s + +.inst 0x05f36220 //zip1 z0.d,z17.d,z19.d +.inst 0x05f36624 //zip2 z4.d,z17.d,z19.d +.inst 0x05f46248 //zip1 z8.d,z18.d,z20.d +.inst 0x05f4664c //zip2 z12.d,z18.d,z20.d + +.inst 0x05f762a1 //zip1 z1.d,z21.d,z23.d +.inst 0x05f766a5 //zip2 z5.d,z21.d,z23.d +.inst 0x05f862c9 //zip1 z9.d,z22.d,z24.d +.inst 0x05f866cd //zip2 z13.d,z22.d,z24.d +.if mixin == 1 + eor x15,x15,x16 +.endif +.if mixin == 1 + eor x17,x17,x18 +.endif +.inst 0x05a66051 //zip1 z17.s,z2.s,z6.s +.inst 0x05a66452 //zip2 z18.s,z2.s,z6.s +.inst 0x05ae6153 //zip1 z19.s,z10.s,z14.s +.inst 0x05ae6554 //zip2 z20.s,z10.s,z14.s + +.inst 0x05a76075 //zip1 z21.s,z3.s,z7.s +.inst 0x05a76476 //zip2 z22.s,z3.s,z7.s +.inst 0x05af6177 //zip1 z23.s,z11.s,z15.s +.inst 0x05af6578 //zip2 z24.s,z11.s,z15.s + +.inst 0x05f36222 //zip1 z2.d,z17.d,z19.d +.inst 0x05f36626 //zip2 z6.d,z17.d,z19.d +.inst 0x05f4624a //zip1 z10.d,z18.d,z20.d +.inst 0x05f4664e //zip2 z14.d,z18.d,z20.d + +.inst 0x05f762a3 //zip1 z3.d,z21.d,z23.d +.inst 0x05f766a7 //zip2 z7.d,z21.d,z23.d +.inst 0x05f862cb //zip1 z11.d,z22.d,z24.d +.inst 0x05f866cf //zip2 z15.d,z22.d,z24.d +.if mixin == 1 + eor x19,x19,x20 +.endif +.if mixin == 1 + eor x21,x21,x22 +.endif +.inst 0xa540a031 //ld1w {z17.s},p0/z,[x1,#0,MUL VL] +.inst 0xa541a032 //ld1w {z18.s},p0/z,[x1,#1,MUL VL] +.inst 0xa542a033 //ld1w {z19.s},p0/z,[x1,#2,MUL VL] +.inst 0xa543a034 //ld1w {z20.s},p0/z,[x1,#3,MUL VL] +.inst 0xa544a035 //ld1w {z21.s},p0/z,[x1,#4,MUL VL] +.inst 0xa545a036 //ld1w {z22.s},p0/z,[x1,#5,MUL VL] +.inst 0xa546a037 //ld1w {z23.s},p0/z,[x1,#6,MUL VL] +.inst 0xa547a038 //ld1w {z24.s},p0/z,[x1,#7,MUL VL] +.inst 0x04215101 //addvl x1,x1,8 +.inst 0x04b13000 //eor z0.d,z0.d,z17.d +.inst 0x04b23084 //eor z4.d,z4.d,z18.d +.inst 0x04b33108 //eor z8.d,z8.d,z19.d +.inst 0x04b4318c //eor z12.d,z12.d,z20.d +.inst 0x04b53021 //eor z1.d,z1.d,z21.d +.inst 0x04b630a5 //eor z5.d,z5.d,z22.d +.inst 0x04b73129 //eor z9.d,z9.d,z23.d +.inst 0x04b831ad //eor z13.d,z13.d,z24.d +.inst 0xa540a031 //ld1w {z17.s},p0/z,[x1,#0,MUL VL] +.inst 0xa541a032 //ld1w {z18.s},p0/z,[x1,#1,MUL VL] +.inst 0xa542a033 //ld1w {z19.s},p0/z,[x1,#2,MUL VL] +.inst 0xa543a034 //ld1w {z20.s},p0/z,[x1,#3,MUL VL] +.inst 0xa544a035 //ld1w {z21.s},p0/z,[x1,#4,MUL VL] +.inst 0xa545a036 //ld1w {z22.s},p0/z,[x1,#5,MUL VL] +.inst 0xa546a037 //ld1w {z23.s},p0/z,[x1,#6,MUL VL] +.inst 0xa547a038 //ld1w {z24.s},p0/z,[x1,#7,MUL VL] +.inst 0x04215101 //addvl x1,x1,8 +.if mixin == 1 + stp x7,x9,[x0],#16 +.endif +.inst 0x04b13042 //eor z2.d,z2.d,z17.d +.inst 0x04b230c6 //eor z6.d,z6.d,z18.d +.if mixin == 1 + stp x11,x13,[x0],#16 +.endif +.inst 0x04b3314a //eor z10.d,z10.d,z19.d +.inst 0x04b431ce //eor z14.d,z14.d,z20.d +.if mixin == 1 + stp x15,x17,[x0],#16 +.endif +.inst 0x04b53063 //eor z3.d,z3.d,z21.d +.inst 0x04b630e7 //eor z7.d,z7.d,z22.d +.if mixin == 1 + stp x19,x21,[x0],#16 +.endif +.inst 0x04b7316b //eor z11.d,z11.d,z23.d +.inst 0x04b831ef //eor z15.d,z15.d,z24.d +.inst 0xe540e000 //st1w {z0.s},p0,[x0,#0,MUL VL] +.inst 0xe541e004 //st1w {z4.s},p0,[x0,#1,MUL VL] +.inst 0xe542e008 //st1w {z8.s},p0,[x0,#2,MUL VL] +.inst 0xe543e00c //st1w {z12.s},p0,[x0,#3,MUL VL] +.inst 0xe544e001 //st1w {z1.s},p0,[x0,#4,MUL VL] +.inst 0xe545e005 //st1w {z5.s},p0,[x0,#5,MUL VL] +.inst 0xe546e009 //st1w {z9.s},p0,[x0,#6,MUL VL] +.inst 0xe547e00d //st1w {z13.s},p0,[x0,#7,MUL VL] +.inst 0x04205100 //addvl x0,x0,8 +.inst 0xe540e002 //st1w {z2.s},p0,[x0,#0,MUL VL] +.inst 0xe541e006 //st1w {z6.s},p0,[x0,#1,MUL VL] +.inst 0xe542e00a //st1w {z10.s},p0,[x0,#2,MUL VL] +.inst 0xe543e00e //st1w {z14.s},p0,[x0,#3,MUL VL] +.inst 0xe544e003 //st1w {z3.s},p0,[x0,#4,MUL VL] +.inst 0xe545e007 //st1w {z7.s},p0,[x0,#5,MUL VL] +.inst 0xe546e00b //st1w {z11.s},p0,[x0,#6,MUL VL] +.inst 0xe547e00f //st1w {z15.s},p0,[x0,#7,MUL VL] +.inst 0x04205100 //addvl x0,x0,8 +210: +.inst 0x04b0e3fd //incw x29, ALL, MUL #1 + subs x2,x2,64 + b.gt 100b + b 110f +101: + mixin=0 + lsr x8,x23,#32 +.inst 0x05a03ae0 //dup z0.s,w23 +.inst 0x05a03af9 //dup z25.s,w23 +.if mixin == 1 + mov w7,w23 +.endif +.inst 0x05a03904 //dup z4.s,w8 +.inst 0x05a0391a //dup z26.s,w8 + lsr x10,x24,#32 +.inst 0x05a03b08 //dup z8.s,w24 +.inst 0x05a03b1b //dup z27.s,w24 +.if mixin == 1 + mov w9,w24 +.endif +.inst 0x05a0394c //dup z12.s,w10 +.inst 0x05a0395c //dup z28.s,w10 + lsr x12,x25,#32 +.inst 0x05a03b21 //dup z1.s,w25 +.inst 0x05a03b3d //dup z29.s,w25 +.if mixin == 1 + mov w11,w25 +.endif +.inst 0x05a03985 //dup z5.s,w12 +.inst 0x05a0399e //dup z30.s,w12 + lsr x14,x26,#32 +.inst 0x05a03b49 //dup z9.s,w26 +.inst 0x05a03b55 //dup z21.s,w26 +.if mixin == 1 + mov w13,w26 +.endif +.inst 0x05a039cd //dup z13.s,w14 +.inst 0x05a039d6 //dup z22.s,w14 + lsr x16,x27,#32 +.inst 0x05a03b62 //dup z2.s,w27 +.inst 0x05a03b77 //dup z23.s,w27 +.if mixin == 1 + mov w15,w27 +.endif +.inst 0x05a03a06 //dup z6.s,w16 +.inst 0x05a03a18 //dup z24.s,w16 + lsr x18,x28,#32 +.inst 0x05a03b8a //dup z10.s,w28 +.inst 0x05a03b91 //dup z17.s,w28 +.if mixin == 1 + mov w17,w28 +.endif +.inst 0x05a03a4e //dup z14.s,w18 +.inst 0x05a03a52 //dup z18.s,w18 + lsr x22,x30,#32 +.inst 0x05a03bcb //dup z11.s,w30 +.inst 0x05a03bd4 //dup z20.s,w30 +.if mixin == 1 + mov w21,w30 +.endif +.inst 0x05a03acf //dup z15.s,w22 +.inst 0x05a03adf //dup z31.s,w22 +.if mixin == 1 + add w20,w29,#1 + mov w19,w29 +.inst 0x04a14690 //index z16.s,w20,1 +.inst 0x04a14683 //index z3.s,w20,1 +.else +.inst 0x04a147b0 //index z16.s,w29,1 +.inst 0x04a147a3 //index z3.s,w29,1 +.endif + lsr x20,x29,#32 +.inst 0x05a03a87 //dup z7.s,w20 +.inst 0x05a03a93 //dup z19.s,w20 + mov x6,#10 +10: +.align 5 +.inst 0x04a10000 //add z0.s,z0.s,z1.s +.if mixin == 1 + add w7,w7,w11 +.endif +.inst 0x04a50084 //add z4.s,z4.s,z5.s +.if mixin == 1 + add w8,w8,w12 +.endif +.inst 0x04a90108 //add z8.s,z8.s,z9.s +.if mixin == 1 + add w9,w9,w13 +.endif +.inst 0x04ad018c //add z12.s,z12.s,z13.s +.if mixin == 1 + add w10,w10,w14 +.endif +.if mixin == 1 + eor w19,w19,w7 +.endif +.inst 0x04703403 //xar z3.s,z3.s,z0.s,16 +.if mixin == 1 + ror w19,w19,16 +.endif +.if mixin == 1 + eor w20,w20,w8 +.endif +.inst 0x04703487 //xar z7.s,z7.s,z4.s,16 +.if mixin == 1 + ror w20,w20,16 +.endif +.if mixin == 1 + eor w21,w21,w9 +.endif +.inst 0x0470350b //xar z11.s,z11.s,z8.s,16 +.if mixin == 1 + ror w21,w21,16 +.endif +.if mixin == 1 + eor w22,w22,w10 +.endif +.inst 0x0470358f //xar z15.s,z15.s,z12.s,16 +.if mixin == 1 + ror w22,w22,16 +.endif +.inst 0x04a30042 //add z2.s,z2.s,z3.s +.if mixin == 1 + add w15,w15,w19 +.endif +.inst 0x04a700c6 //add z6.s,z6.s,z7.s +.if mixin == 1 + add w16,w16,w20 +.endif +.inst 0x04ab014a //add z10.s,z10.s,z11.s +.if mixin == 1 + add w17,w17,w21 +.endif +.inst 0x04af01ce //add z14.s,z14.s,z15.s +.if mixin == 1 + add w18,w18,w22 +.endif +.if mixin == 1 + eor w11,w11,w15 +.endif +.inst 0x046c3441 //xar z1.s,z1.s,z2.s,20 +.if mixin == 1 + ror w11,w11,20 +.endif +.if mixin == 1 + eor w12,w12,w16 +.endif +.inst 0x046c34c5 //xar z5.s,z5.s,z6.s,20 +.if mixin == 1 + ror w12,w12,20 +.endif +.if mixin == 1 + eor w13,w13,w17 +.endif +.inst 0x046c3549 //xar z9.s,z9.s,z10.s,20 +.if mixin == 1 + ror w13,w13,20 +.endif +.if mixin == 1 + eor w14,w14,w18 +.endif +.inst 0x046c35cd //xar z13.s,z13.s,z14.s,20 +.if mixin == 1 + ror w14,w14,20 +.endif +.inst 0x04a10000 //add z0.s,z0.s,z1.s +.if mixin == 1 + add w7,w7,w11 +.endif +.inst 0x04a50084 //add z4.s,z4.s,z5.s +.if mixin == 1 + add w8,w8,w12 +.endif +.inst 0x04a90108 //add z8.s,z8.s,z9.s +.if mixin == 1 + add w9,w9,w13 +.endif +.inst 0x04ad018c //add z12.s,z12.s,z13.s +.if mixin == 1 + add w10,w10,w14 +.endif +.if mixin == 1 + eor w19,w19,w7 +.endif +.inst 0x04683403 //xar z3.s,z3.s,z0.s,24 +.if mixin == 1 + ror w19,w19,24 +.endif +.if mixin == 1 + eor w20,w20,w8 +.endif +.inst 0x04683487 //xar z7.s,z7.s,z4.s,24 +.if mixin == 1 + ror w20,w20,24 +.endif +.if mixin == 1 + eor w21,w21,w9 +.endif +.inst 0x0468350b //xar z11.s,z11.s,z8.s,24 +.if mixin == 1 + ror w21,w21,24 +.endif +.if mixin == 1 + eor w22,w22,w10 +.endif +.inst 0x0468358f //xar z15.s,z15.s,z12.s,24 +.if mixin == 1 + ror w22,w22,24 +.endif +.inst 0x04a30042 //add z2.s,z2.s,z3.s +.if mixin == 1 + add w15,w15,w19 +.endif +.inst 0x04a700c6 //add z6.s,z6.s,z7.s +.if mixin == 1 + add w16,w16,w20 +.endif +.inst 0x04ab014a //add z10.s,z10.s,z11.s +.if mixin == 1 + add w17,w17,w21 +.endif +.inst 0x04af01ce //add z14.s,z14.s,z15.s +.if mixin == 1 + add w18,w18,w22 +.endif +.if mixin == 1 + eor w11,w11,w15 +.endif +.inst 0x04673441 //xar z1.s,z1.s,z2.s,25 +.if mixin == 1 + ror w11,w11,25 +.endif +.if mixin == 1 + eor w12,w12,w16 +.endif +.inst 0x046734c5 //xar z5.s,z5.s,z6.s,25 +.if mixin == 1 + ror w12,w12,25 +.endif +.if mixin == 1 + eor w13,w13,w17 +.endif +.inst 0x04673549 //xar z9.s,z9.s,z10.s,25 +.if mixin == 1 + ror w13,w13,25 +.endif +.if mixin == 1 + eor w14,w14,w18 +.endif +.inst 0x046735cd //xar z13.s,z13.s,z14.s,25 +.if mixin == 1 + ror w14,w14,25 +.endif +.inst 0x04a50000 //add z0.s,z0.s,z5.s +.if mixin == 1 + add w7,w7,w12 +.endif +.inst 0x04a90084 //add z4.s,z4.s,z9.s +.if mixin == 1 + add w8,w8,w13 +.endif +.inst 0x04ad0108 //add z8.s,z8.s,z13.s +.if mixin == 1 + add w9,w9,w14 +.endif +.inst 0x04a1018c //add z12.s,z12.s,z1.s +.if mixin == 1 + add w10,w10,w11 +.endif +.if mixin == 1 + eor w22,w22,w7 +.endif +.inst 0x0470340f //xar z15.s,z15.s,z0.s,16 +.if mixin == 1 + ror w22,w22,16 +.endif +.if mixin == 1 + eor w19,w19,w8 +.endif +.inst 0x04703483 //xar z3.s,z3.s,z4.s,16 +.if mixin == 1 + ror w19,w19,16 +.endif +.if mixin == 1 + eor w20,w20,w9 +.endif +.inst 0x04703507 //xar z7.s,z7.s,z8.s,16 +.if mixin == 1 + ror w20,w20,16 +.endif +.if mixin == 1 + eor w21,w21,w10 +.endif +.inst 0x0470358b //xar z11.s,z11.s,z12.s,16 +.if mixin == 1 + ror w21,w21,16 +.endif +.inst 0x04af014a //add z10.s,z10.s,z15.s +.if mixin == 1 + add w17,w17,w22 +.endif +.inst 0x04a301ce //add z14.s,z14.s,z3.s +.if mixin == 1 + add w18,w18,w19 +.endif +.inst 0x04a70042 //add z2.s,z2.s,z7.s +.if mixin == 1 + add w15,w15,w20 +.endif +.inst 0x04ab00c6 //add z6.s,z6.s,z11.s +.if mixin == 1 + add w16,w16,w21 +.endif +.if mixin == 1 + eor w12,w12,w17 +.endif +.inst 0x046c3545 //xar z5.s,z5.s,z10.s,20 +.if mixin == 1 + ror w12,w12,20 +.endif +.if mixin == 1 + eor w13,w13,w18 +.endif +.inst 0x046c35c9 //xar z9.s,z9.s,z14.s,20 +.if mixin == 1 + ror w13,w13,20 +.endif +.if mixin == 1 + eor w14,w14,w15 +.endif +.inst 0x046c344d //xar z13.s,z13.s,z2.s,20 +.if mixin == 1 + ror w14,w14,20 +.endif +.if mixin == 1 + eor w11,w11,w16 +.endif +.inst 0x046c34c1 //xar z1.s,z1.s,z6.s,20 +.if mixin == 1 + ror w11,w11,20 +.endif +.inst 0x04a50000 //add z0.s,z0.s,z5.s +.if mixin == 1 + add w7,w7,w12 +.endif +.inst 0x04a90084 //add z4.s,z4.s,z9.s +.if mixin == 1 + add w8,w8,w13 +.endif +.inst 0x04ad0108 //add z8.s,z8.s,z13.s +.if mixin == 1 + add w9,w9,w14 +.endif +.inst 0x04a1018c //add z12.s,z12.s,z1.s +.if mixin == 1 + add w10,w10,w11 +.endif +.if mixin == 1 + eor w22,w22,w7 +.endif +.inst 0x0468340f //xar z15.s,z15.s,z0.s,24 +.if mixin == 1 + ror w22,w22,24 +.endif +.if mixin == 1 + eor w19,w19,w8 +.endif +.inst 0x04683483 //xar z3.s,z3.s,z4.s,24 +.if mixin == 1 + ror w19,w19,24 +.endif +.if mixin == 1 + eor w20,w20,w9 +.endif +.inst 0x04683507 //xar z7.s,z7.s,z8.s,24 +.if mixin == 1 + ror w20,w20,24 +.endif +.if mixin == 1 + eor w21,w21,w10 +.endif +.inst 0x0468358b //xar z11.s,z11.s,z12.s,24 +.if mixin == 1 + ror w21,w21,24 +.endif +.inst 0x04af014a //add z10.s,z10.s,z15.s +.if mixin == 1 + add w17,w17,w22 +.endif +.inst 0x04a301ce //add z14.s,z14.s,z3.s +.if mixin == 1 + add w18,w18,w19 +.endif +.inst 0x04a70042 //add z2.s,z2.s,z7.s +.if mixin == 1 + add w15,w15,w20 +.endif +.inst 0x04ab00c6 //add z6.s,z6.s,z11.s +.if mixin == 1 + add w16,w16,w21 +.endif +.if mixin == 1 + eor w12,w12,w17 +.endif +.inst 0x04673545 //xar z5.s,z5.s,z10.s,25 +.if mixin == 1 + ror w12,w12,25 +.endif +.if mixin == 1 + eor w13,w13,w18 +.endif +.inst 0x046735c9 //xar z9.s,z9.s,z14.s,25 +.if mixin == 1 + ror w13,w13,25 +.endif +.if mixin == 1 + eor w14,w14,w15 +.endif +.inst 0x0467344d //xar z13.s,z13.s,z2.s,25 +.if mixin == 1 + ror w14,w14,25 +.endif +.if mixin == 1 + eor w11,w11,w16 +.endif +.inst 0x046734c1 //xar z1.s,z1.s,z6.s,25 +.if mixin == 1 + ror w11,w11,25 +.endif + sub x6,x6,1 + cbnz x6,10b +.if mixin == 1 + add w7,w7,w23 +.endif +.inst 0x04b90000 //add z0.s,z0.s,z25.s +.if mixin == 1 + add x8,x8,x23,lsr #32 +.endif +.inst 0x04ba0084 //add z4.s,z4.s,z26.s +.if mixin == 1 + add x7,x7,x8,lsl #32 // pack +.endif +.if mixin == 1 + add w9,w9,w24 +.endif +.inst 0x04bb0108 //add z8.s,z8.s,z27.s +.if mixin == 1 + add x10,x10,x24,lsr #32 +.endif +.inst 0x04bc018c //add z12.s,z12.s,z28.s +.if mixin == 1 + add x9,x9,x10,lsl #32 // pack +.endif +.if mixin == 1 + ldp x8,x10,[x1],#16 +.endif +.if mixin == 1 + add w11,w11,w25 +.endif +.inst 0x04bd0021 //add z1.s,z1.s,z29.s +.if mixin == 1 + add x12,x12,x25,lsr #32 +.endif +.inst 0x04be00a5 //add z5.s,z5.s,z30.s +.if mixin == 1 + add x11,x11,x12,lsl #32 // pack +.endif +.if mixin == 1 + add w13,w13,w26 +.endif +.inst 0x04b50129 //add z9.s,z9.s,z21.s +.if mixin == 1 + add x14,x14,x26,lsr #32 +.endif +.inst 0x04b601ad //add z13.s,z13.s,z22.s +.if mixin == 1 + add x13,x13,x14,lsl #32 // pack +.endif +.if mixin == 1 + ldp x12,x14,[x1],#16 +.endif +.if mixin == 1 + add w15,w15,w27 +.endif +.inst 0x04b70042 //add z2.s,z2.s,z23.s +.if mixin == 1 + add x16,x16,x27,lsr #32 +.endif +.inst 0x04b800c6 //add z6.s,z6.s,z24.s +.if mixin == 1 + add x15,x15,x16,lsl #32 // pack +.endif +.if mixin == 1 + add w17,w17,w28 +.endif +.inst 0x04b1014a //add z10.s,z10.s,z17.s +.if mixin == 1 + add x18,x18,x28,lsr #32 +.endif +.inst 0x04b201ce //add z14.s,z14.s,z18.s +.if mixin == 1 + add x17,x17,x18,lsl #32 // pack +.endif +.if mixin == 1 + ldp x16,x18,[x1],#16 +.endif +.if mixin == 1 + add w19,w19,w29 +.endif +.inst 0x04b00063 //add z3.s,z3.s,z16.s +.if mixin == 1 + add x20,x20,x29,lsr #32 +.endif +.inst 0x04b300e7 //add z7.s,z7.s,z19.s +.if mixin == 1 + add x19,x19,x20,lsl #32 // pack +.endif +.if mixin == 1 + add w21,w21,w30 +.endif +.inst 0x04b4016b //add z11.s,z11.s,z20.s +.if mixin == 1 + add x22,x22,x30,lsr #32 +.endif +.inst 0x04bf01ef //add z15.s,z15.s,z31.s +.if mixin == 1 + add x21,x21,x22,lsl #32 // pack +.endif +.if mixin == 1 + ldp x20,x22,[x1],#16 +.endif +#ifdef __AARCH64EB__ + rev x7,x7 +.inst 0x05a48000 //revb z0.s,p0/m,z0.s +.inst 0x05a48084 //revb z4.s,p0/m,z4.s + rev x9,x9 +.inst 0x05a48108 //revb z8.s,p0/m,z8.s +.inst 0x05a4818c //revb z12.s,p0/m,z12.s + rev x11,x11 +.inst 0x05a48021 //revb z1.s,p0/m,z1.s +.inst 0x05a480a5 //revb z5.s,p0/m,z5.s + rev x13,x13 +.inst 0x05a48129 //revb z9.s,p0/m,z9.s +.inst 0x05a481ad //revb z13.s,p0/m,z13.s + rev x15,x15 +.inst 0x05a48042 //revb z2.s,p0/m,z2.s +.inst 0x05a480c6 //revb z6.s,p0/m,z6.s + rev x17,x17 +.inst 0x05a4814a //revb z10.s,p0/m,z10.s +.inst 0x05a481ce //revb z14.s,p0/m,z14.s + rev x19,x19 +.inst 0x05a48063 //revb z3.s,p0/m,z3.s +.inst 0x05a480e7 //revb z7.s,p0/m,z7.s + rev x21,x21 +.inst 0x05a4816b //revb z11.s,p0/m,z11.s +.inst 0x05a481ef //revb z15.s,p0/m,z15.s +#endif +.if mixin == 1 + add x29,x29,#1 +.endif + cmp x5,4 + b.ne 200f +.if mixin == 1 + eor x7,x7,x8 +.endif +.if mixin == 1 + eor x9,x9,x10 +.endif +.if mixin == 1 + eor x11,x11,x12 +.endif +.inst 0x05a46011 //zip1 z17.s,z0.s,z4.s +.inst 0x05a46412 //zip2 z18.s,z0.s,z4.s +.inst 0x05ac6113 //zip1 z19.s,z8.s,z12.s +.inst 0x05ac6514 //zip2 z20.s,z8.s,z12.s + +.inst 0x05a56035 //zip1 z21.s,z1.s,z5.s +.inst 0x05a56436 //zip2 z22.s,z1.s,z5.s +.inst 0x05ad6137 //zip1 z23.s,z9.s,z13.s +.inst 0x05ad6538 //zip2 z24.s,z9.s,z13.s + +.inst 0x05f36220 //zip1 z0.d,z17.d,z19.d +.inst 0x05f36624 //zip2 z4.d,z17.d,z19.d +.inst 0x05f46248 //zip1 z8.d,z18.d,z20.d +.inst 0x05f4664c //zip2 z12.d,z18.d,z20.d + +.inst 0x05f762a1 //zip1 z1.d,z21.d,z23.d +.inst 0x05f766a5 //zip2 z5.d,z21.d,z23.d +.inst 0x05f862c9 //zip1 z9.d,z22.d,z24.d +.inst 0x05f866cd //zip2 z13.d,z22.d,z24.d +.if mixin == 1 + eor x13,x13,x14 +.endif +.if mixin == 1 + eor x15,x15,x16 +.endif +.if mixin == 1 + eor x17,x17,x18 +.endif +.inst 0x05a66051 //zip1 z17.s,z2.s,z6.s +.inst 0x05a66452 //zip2 z18.s,z2.s,z6.s +.inst 0x05ae6153 //zip1 z19.s,z10.s,z14.s +.inst 0x05ae6554 //zip2 z20.s,z10.s,z14.s + +.inst 0x05a76075 //zip1 z21.s,z3.s,z7.s +.inst 0x05a76476 //zip2 z22.s,z3.s,z7.s +.inst 0x05af6177 //zip1 z23.s,z11.s,z15.s +.inst 0x05af6578 //zip2 z24.s,z11.s,z15.s + +.inst 0x05f36222 //zip1 z2.d,z17.d,z19.d +.inst 0x05f36626 //zip2 z6.d,z17.d,z19.d +.inst 0x05f4624a //zip1 z10.d,z18.d,z20.d +.inst 0x05f4664e //zip2 z14.d,z18.d,z20.d + +.inst 0x05f762a3 //zip1 z3.d,z21.d,z23.d +.inst 0x05f766a7 //zip2 z7.d,z21.d,z23.d +.inst 0x05f862cb //zip1 z11.d,z22.d,z24.d +.inst 0x05f866cf //zip2 z15.d,z22.d,z24.d +.if mixin == 1 + eor x19,x19,x20 +.endif +.if mixin == 1 + eor x21,x21,x22 +.endif + ld1 {v17.4s,v18.4s,v19.4s,v20.4s},[x1],#64 + ld1 {v21.4s,v22.4s,v23.4s,v24.4s},[x1],#64 +.inst 0x04b13000 //eor z0.d,z0.d,z17.d +.inst 0x04b23021 //eor z1.d,z1.d,z18.d +.inst 0x04b33042 //eor z2.d,z2.d,z19.d +.inst 0x04b43063 //eor z3.d,z3.d,z20.d +.inst 0x04b53084 //eor z4.d,z4.d,z21.d +.inst 0x04b630a5 //eor z5.d,z5.d,z22.d +.inst 0x04b730c6 //eor z6.d,z6.d,z23.d +.inst 0x04b830e7 //eor z7.d,z7.d,z24.d + ld1 {v17.4s,v18.4s,v19.4s,v20.4s},[x1],#64 + ld1 {v21.4s,v22.4s,v23.4s,v24.4s},[x1],#64 +.if mixin == 1 + stp x7,x9,[x0],#16 +.endif +.inst 0x04b13108 //eor z8.d,z8.d,z17.d +.inst 0x04b23129 //eor z9.d,z9.d,z18.d +.if mixin == 1 + stp x11,x13,[x0],#16 +.endif +.inst 0x04b3314a //eor z10.d,z10.d,z19.d +.inst 0x04b4316b //eor z11.d,z11.d,z20.d +.if mixin == 1 + stp x15,x17,[x0],#16 +.endif +.inst 0x04b5318c //eor z12.d,z12.d,z21.d +.inst 0x04b631ad //eor z13.d,z13.d,z22.d +.if mixin == 1 + stp x19,x21,[x0],#16 +.endif +.inst 0x04b731ce //eor z14.d,z14.d,z23.d +.inst 0x04b831ef //eor z15.d,z15.d,z24.d + st1 {v0.4s,v1.4s,v2.4s,v3.4s},[x0],#64 + st1 {v4.4s,v5.4s,v6.4s,v7.4s},[x0],#64 + st1 {v8.4s,v9.4s,v10.4s,v11.4s},[x0],#64 + st1 {v12.4s,v13.4s,v14.4s,v15.4s},[x0],#64 + b 210f +200: +.inst 0x05a16011 //zip1 z17.s,z0.s,z1.s +.inst 0x05a16412 //zip2 z18.s,z0.s,z1.s +.inst 0x05a36053 //zip1 z19.s,z2.s,z3.s +.inst 0x05a36454 //zip2 z20.s,z2.s,z3.s + +.inst 0x05a56095 //zip1 z21.s,z4.s,z5.s +.inst 0x05a56496 //zip2 z22.s,z4.s,z5.s +.inst 0x05a760d7 //zip1 z23.s,z6.s,z7.s +.inst 0x05a764d8 //zip2 z24.s,z6.s,z7.s + +.inst 0x05f36220 //zip1 z0.d,z17.d,z19.d +.inst 0x05f36621 //zip2 z1.d,z17.d,z19.d +.inst 0x05f46242 //zip1 z2.d,z18.d,z20.d +.inst 0x05f46643 //zip2 z3.d,z18.d,z20.d + +.inst 0x05f762a4 //zip1 z4.d,z21.d,z23.d +.inst 0x05f766a5 //zip2 z5.d,z21.d,z23.d +.inst 0x05f862c6 //zip1 z6.d,z22.d,z24.d +.inst 0x05f866c7 //zip2 z7.d,z22.d,z24.d +.if mixin == 1 + eor x7,x7,x8 +.endif +.if mixin == 1 + eor x9,x9,x10 +.endif +.inst 0x05a96111 //zip1 z17.s,z8.s,z9.s +.inst 0x05a96512 //zip2 z18.s,z8.s,z9.s +.inst 0x05ab6153 //zip1 z19.s,z10.s,z11.s +.inst 0x05ab6554 //zip2 z20.s,z10.s,z11.s + +.inst 0x05ad6195 //zip1 z21.s,z12.s,z13.s +.inst 0x05ad6596 //zip2 z22.s,z12.s,z13.s +.inst 0x05af61d7 //zip1 z23.s,z14.s,z15.s +.inst 0x05af65d8 //zip2 z24.s,z14.s,z15.s + +.inst 0x05f36228 //zip1 z8.d,z17.d,z19.d +.inst 0x05f36629 //zip2 z9.d,z17.d,z19.d +.inst 0x05f4624a //zip1 z10.d,z18.d,z20.d +.inst 0x05f4664b //zip2 z11.d,z18.d,z20.d + +.inst 0x05f762ac //zip1 z12.d,z21.d,z23.d +.inst 0x05f766ad //zip2 z13.d,z21.d,z23.d +.inst 0x05f862ce //zip1 z14.d,z22.d,z24.d +.inst 0x05f866cf //zip2 z15.d,z22.d,z24.d +.if mixin == 1 + eor x11,x11,x12 +.endif +.if mixin == 1 + eor x13,x13,x14 +.endif +.inst 0x05a46011 //zip1 z17.s,z0.s,z4.s +.inst 0x05a46412 //zip2 z18.s,z0.s,z4.s +.inst 0x05ac6113 //zip1 z19.s,z8.s,z12.s +.inst 0x05ac6514 //zip2 z20.s,z8.s,z12.s + +.inst 0x05a56035 //zip1 z21.s,z1.s,z5.s +.inst 0x05a56436 //zip2 z22.s,z1.s,z5.s +.inst 0x05ad6137 //zip1 z23.s,z9.s,z13.s +.inst 0x05ad6538 //zip2 z24.s,z9.s,z13.s + +.inst 0x05f36220 //zip1 z0.d,z17.d,z19.d +.inst 0x05f36624 //zip2 z4.d,z17.d,z19.d +.inst 0x05f46248 //zip1 z8.d,z18.d,z20.d +.inst 0x05f4664c //zip2 z12.d,z18.d,z20.d + +.inst 0x05f762a1 //zip1 z1.d,z21.d,z23.d +.inst 0x05f766a5 //zip2 z5.d,z21.d,z23.d +.inst 0x05f862c9 //zip1 z9.d,z22.d,z24.d +.inst 0x05f866cd //zip2 z13.d,z22.d,z24.d +.if mixin == 1 + eor x15,x15,x16 +.endif +.if mixin == 1 + eor x17,x17,x18 +.endif +.inst 0x05a66051 //zip1 z17.s,z2.s,z6.s +.inst 0x05a66452 //zip2 z18.s,z2.s,z6.s +.inst 0x05ae6153 //zip1 z19.s,z10.s,z14.s +.inst 0x05ae6554 //zip2 z20.s,z10.s,z14.s + +.inst 0x05a76075 //zip1 z21.s,z3.s,z7.s +.inst 0x05a76476 //zip2 z22.s,z3.s,z7.s +.inst 0x05af6177 //zip1 z23.s,z11.s,z15.s +.inst 0x05af6578 //zip2 z24.s,z11.s,z15.s + +.inst 0x05f36222 //zip1 z2.d,z17.d,z19.d +.inst 0x05f36626 //zip2 z6.d,z17.d,z19.d +.inst 0x05f4624a //zip1 z10.d,z18.d,z20.d +.inst 0x05f4664e //zip2 z14.d,z18.d,z20.d + +.inst 0x05f762a3 //zip1 z3.d,z21.d,z23.d +.inst 0x05f766a7 //zip2 z7.d,z21.d,z23.d +.inst 0x05f862cb //zip1 z11.d,z22.d,z24.d +.inst 0x05f866cf //zip2 z15.d,z22.d,z24.d +.if mixin == 1 + eor x19,x19,x20 +.endif +.if mixin == 1 + eor x21,x21,x22 +.endif +.inst 0xa540a031 //ld1w {z17.s},p0/z,[x1,#0,MUL VL] +.inst 0xa541a032 //ld1w {z18.s},p0/z,[x1,#1,MUL VL] +.inst 0xa542a033 //ld1w {z19.s},p0/z,[x1,#2,MUL VL] +.inst 0xa543a034 //ld1w {z20.s},p0/z,[x1,#3,MUL VL] +.inst 0xa544a035 //ld1w {z21.s},p0/z,[x1,#4,MUL VL] +.inst 0xa545a036 //ld1w {z22.s},p0/z,[x1,#5,MUL VL] +.inst 0xa546a037 //ld1w {z23.s},p0/z,[x1,#6,MUL VL] +.inst 0xa547a038 //ld1w {z24.s},p0/z,[x1,#7,MUL VL] +.inst 0x04215101 //addvl x1,x1,8 +.inst 0x04b13000 //eor z0.d,z0.d,z17.d +.inst 0x04b23084 //eor z4.d,z4.d,z18.d +.inst 0x04b33108 //eor z8.d,z8.d,z19.d +.inst 0x04b4318c //eor z12.d,z12.d,z20.d +.inst 0x04b53021 //eor z1.d,z1.d,z21.d +.inst 0x04b630a5 //eor z5.d,z5.d,z22.d +.inst 0x04b73129 //eor z9.d,z9.d,z23.d +.inst 0x04b831ad //eor z13.d,z13.d,z24.d +.inst 0xa540a031 //ld1w {z17.s},p0/z,[x1,#0,MUL VL] +.inst 0xa541a032 //ld1w {z18.s},p0/z,[x1,#1,MUL VL] +.inst 0xa542a033 //ld1w {z19.s},p0/z,[x1,#2,MUL VL] +.inst 0xa543a034 //ld1w {z20.s},p0/z,[x1,#3,MUL VL] +.inst 0xa544a035 //ld1w {z21.s},p0/z,[x1,#4,MUL VL] +.inst 0xa545a036 //ld1w {z22.s},p0/z,[x1,#5,MUL VL] +.inst 0xa546a037 //ld1w {z23.s},p0/z,[x1,#6,MUL VL] +.inst 0xa547a038 //ld1w {z24.s},p0/z,[x1,#7,MUL VL] +.inst 0x04215101 //addvl x1,x1,8 +.if mixin == 1 + stp x7,x9,[x0],#16 +.endif +.inst 0x04b13042 //eor z2.d,z2.d,z17.d +.inst 0x04b230c6 //eor z6.d,z6.d,z18.d +.if mixin == 1 + stp x11,x13,[x0],#16 +.endif +.inst 0x04b3314a //eor z10.d,z10.d,z19.d +.inst 0x04b431ce //eor z14.d,z14.d,z20.d +.if mixin == 1 + stp x15,x17,[x0],#16 +.endif +.inst 0x04b53063 //eor z3.d,z3.d,z21.d +.inst 0x04b630e7 //eor z7.d,z7.d,z22.d +.if mixin == 1 + stp x19,x21,[x0],#16 +.endif +.inst 0x04b7316b //eor z11.d,z11.d,z23.d +.inst 0x04b831ef //eor z15.d,z15.d,z24.d +.inst 0xe540e000 //st1w {z0.s},p0,[x0,#0,MUL VL] +.inst 0xe541e004 //st1w {z4.s},p0,[x0,#1,MUL VL] +.inst 0xe542e008 //st1w {z8.s},p0,[x0,#2,MUL VL] +.inst 0xe543e00c //st1w {z12.s},p0,[x0,#3,MUL VL] +.inst 0xe544e001 //st1w {z1.s},p0,[x0,#4,MUL VL] +.inst 0xe545e005 //st1w {z5.s},p0,[x0,#5,MUL VL] +.inst 0xe546e009 //st1w {z9.s},p0,[x0,#6,MUL VL] +.inst 0xe547e00d //st1w {z13.s},p0,[x0,#7,MUL VL] +.inst 0x04205100 //addvl x0,x0,8 +.inst 0xe540e002 //st1w {z2.s},p0,[x0,#0,MUL VL] +.inst 0xe541e006 //st1w {z6.s},p0,[x0,#1,MUL VL] +.inst 0xe542e00a //st1w {z10.s},p0,[x0,#2,MUL VL] +.inst 0xe543e00e //st1w {z14.s},p0,[x0,#3,MUL VL] +.inst 0xe544e003 //st1w {z3.s},p0,[x0,#4,MUL VL] +.inst 0xe545e007 //st1w {z7.s},p0,[x0,#5,MUL VL] +.inst 0xe546e00b //st1w {z11.s},p0,[x0,#6,MUL VL] +.inst 0xe547e00f //st1w {z15.s},p0,[x0,#7,MUL VL] +.inst 0x04205100 //addvl x0,x0,8 +210: +.inst 0x04b0e3fd //incw x29, ALL, MUL #1 +110: + b 2f +1: +.align 5 +100: + subs x7,x2,x5,lsl #6 + b.lt 110f + mov x2,x7 + b.eq 101f + cmp x2,64 + b.lt 101f + mixin=1 + lsr x8,x23,#32 +.inst 0x05a03ae0 //dup z0.s,w23 +.inst 0x05a03af9 //dup z25.s,w23 +.if mixin == 1 + mov w7,w23 +.endif +.inst 0x05a03904 //dup z4.s,w8 +.inst 0x05a0391a //dup z26.s,w8 + lsr x10,x24,#32 +.inst 0x05a03b08 //dup z8.s,w24 +.inst 0x05a03b1b //dup z27.s,w24 +.if mixin == 1 + mov w9,w24 +.endif +.inst 0x05a0394c //dup z12.s,w10 +.inst 0x05a0395c //dup z28.s,w10 + lsr x12,x25,#32 +.inst 0x05a03b21 //dup z1.s,w25 +.inst 0x05a03b3d //dup z29.s,w25 +.if mixin == 1 + mov w11,w25 +.endif +.inst 0x05a03985 //dup z5.s,w12 +.inst 0x05a0399e //dup z30.s,w12 + lsr x14,x26,#32 +.inst 0x05a03b49 //dup z9.s,w26 +.inst 0x05a03b55 //dup z21.s,w26 +.if mixin == 1 + mov w13,w26 +.endif +.inst 0x05a039cd //dup z13.s,w14 +.inst 0x05a039d6 //dup z22.s,w14 + lsr x16,x27,#32 +.inst 0x05a03b62 //dup z2.s,w27 +.inst 0x05a03b77 //dup z23.s,w27 +.if mixin == 1 + mov w15,w27 +.endif +.inst 0x05a03a06 //dup z6.s,w16 +.inst 0x05a03a18 //dup z24.s,w16 + lsr x18,x28,#32 +.inst 0x05a03b8a //dup z10.s,w28 +.if mixin == 1 + mov w17,w28 +.endif +.inst 0x05a03a4e //dup z14.s,w18 + lsr x22,x30,#32 +.inst 0x05a03bcb //dup z11.s,w30 +.if mixin == 1 + mov w21,w30 +.endif +.inst 0x05a03acf //dup z15.s,w22 +.if mixin == 1 + add w20,w29,#1 + mov w19,w29 +.inst 0x04a14690 //index z16.s,w20,1 +.inst 0x04a14683 //index z3.s,w20,1 +.else +.inst 0x04a147b0 //index z16.s,w29,1 +.inst 0x04a147a3 //index z3.s,w29,1 +.endif + lsr x20,x29,#32 +.inst 0x05a03a87 //dup z7.s,w20 + mov x6,#10 +10: +.align 5 +.inst 0x04a10000 //add z0.s,z0.s,z1.s +.if mixin == 1 + add w7,w7,w11 +.endif +.inst 0x04a50084 //add z4.s,z4.s,z5.s +.if mixin == 1 + add w8,w8,w12 +.endif +.inst 0x04a90108 //add z8.s,z8.s,z9.s +.if mixin == 1 + add w9,w9,w13 +.endif +.inst 0x04ad018c //add z12.s,z12.s,z13.s +.if mixin == 1 + add w10,w10,w14 +.endif +.inst 0x04a03063 //eor z3.d,z3.d,z0.d +.if mixin == 1 + eor w19,w19,w7 +.endif +.inst 0x04a430e7 //eor z7.d,z7.d,z4.d +.if mixin == 1 + eor w20,w20,w8 +.endif +.inst 0x04a8316b //eor z11.d,z11.d,z8.d +.if mixin == 1 + eor w21,w21,w9 +.endif +.inst 0x04ac31ef //eor z15.d,z15.d,z12.d +.if mixin == 1 + eor w22,w22,w10 +.endif +.inst 0x05a58063 //revh z3.s,p0/m,z3.s +.if mixin == 1 + ror w19,w19,#16 +.endif +.inst 0x05a580e7 //revh z7.s,p0/m,z7.s +.if mixin == 1 + ror w20,w20,#16 +.endif +.inst 0x05a5816b //revh z11.s,p0/m,z11.s +.if mixin == 1 + ror w21,w21,#16 +.endif +.inst 0x05a581ef //revh z15.s,p0/m,z15.s +.if mixin == 1 + ror w22,w22,#16 +.endif +.inst 0x04a30042 //add z2.s,z2.s,z3.s +.if mixin == 1 + add w15,w15,w19 +.endif +.inst 0x04a700c6 //add z6.s,z6.s,z7.s +.if mixin == 1 + add w16,w16,w20 +.endif +.inst 0x04ab014a //add z10.s,z10.s,z11.s +.if mixin == 1 + add w17,w17,w21 +.endif +.inst 0x04af01ce //add z14.s,z14.s,z15.s +.if mixin == 1 + add w18,w18,w22 +.endif +.inst 0x04a23021 //eor z1.d,z1.d,z2.d +.if mixin == 1 + eor w11,w11,w15 +.endif +.inst 0x04a630a5 //eor z5.d,z5.d,z6.d +.if mixin == 1 + eor w12,w12,w16 +.endif +.inst 0x04aa3129 //eor z9.d,z9.d,z10.d +.if mixin == 1 + eor w13,w13,w17 +.endif +.inst 0x04ae31ad //eor z13.d,z13.d,z14.d +.if mixin == 1 + eor w14,w14,w18 +.endif +.inst 0x046c9c31 //lsl z17.s,z1.s,12 +.inst 0x046c9cb2 //lsl z18.s,z5.s,12 +.inst 0x046c9d33 //lsl z19.s,z9.s,12 +.inst 0x046c9db4 //lsl z20.s,z13.s,12 +.inst 0x046c9421 //lsr z1.s,z1.s,20 +.if mixin == 1 + ror w11,w11,20 +.endif +.inst 0x046c94a5 //lsr z5.s,z5.s,20 +.if mixin == 1 + ror w12,w12,20 +.endif +.inst 0x046c9529 //lsr z9.s,z9.s,20 +.if mixin == 1 + ror w13,w13,20 +.endif +.inst 0x046c95ad //lsr z13.s,z13.s,20 +.if mixin == 1 + ror w14,w14,20 +.endif +.inst 0x04713021 //orr z1.d,z1.d,z17.d +.inst 0x047230a5 //orr z5.d,z5.d,z18.d +.inst 0x04733129 //orr z9.d,z9.d,z19.d +.inst 0x047431ad //orr z13.d,z13.d,z20.d +.inst 0x04a10000 //add z0.s,z0.s,z1.s +.if mixin == 1 + add w7,w7,w11 +.endif +.inst 0x04a50084 //add z4.s,z4.s,z5.s +.if mixin == 1 + add w8,w8,w12 +.endif +.inst 0x04a90108 //add z8.s,z8.s,z9.s +.if mixin == 1 + add w9,w9,w13 +.endif +.inst 0x04ad018c //add z12.s,z12.s,z13.s +.if mixin == 1 + add w10,w10,w14 +.endif +.inst 0x04a03063 //eor z3.d,z3.d,z0.d +.if mixin == 1 + eor w19,w19,w7 +.endif +.inst 0x04a430e7 //eor z7.d,z7.d,z4.d +.if mixin == 1 + eor w20,w20,w8 +.endif +.inst 0x04a8316b //eor z11.d,z11.d,z8.d +.if mixin == 1 + eor w21,w21,w9 +.endif +.inst 0x04ac31ef //eor z15.d,z15.d,z12.d +.if mixin == 1 + eor w22,w22,w10 +.endif +.inst 0x053f3063 //tbl z3.b,{z3.b},z31.b +.if mixin == 1 + ror w19,w19,#24 +.endif +.inst 0x053f30e7 //tbl z7.b,{z7.b},z31.b +.if mixin == 1 + ror w20,w20,#24 +.endif +.inst 0x053f316b //tbl z11.b,{z11.b},z31.b +.if mixin == 1 + ror w21,w21,#24 +.endif +.inst 0x053f31ef //tbl z15.b,{z15.b},z31.b +.if mixin == 1 + ror w22,w22,#24 +.endif +.inst 0x04a30042 //add z2.s,z2.s,z3.s +.if mixin == 1 + add w15,w15,w19 +.endif +.inst 0x04a700c6 //add z6.s,z6.s,z7.s +.if mixin == 1 + add w16,w16,w20 +.endif +.inst 0x04ab014a //add z10.s,z10.s,z11.s +.if mixin == 1 + add w17,w17,w21 +.endif +.inst 0x04af01ce //add z14.s,z14.s,z15.s +.if mixin == 1 + add w18,w18,w22 +.endif +.inst 0x04a23021 //eor z1.d,z1.d,z2.d +.if mixin == 1 + eor w11,w11,w15 +.endif +.inst 0x04a630a5 //eor z5.d,z5.d,z6.d +.if mixin == 1 + eor w12,w12,w16 +.endif +.inst 0x04aa3129 //eor z9.d,z9.d,z10.d +.if mixin == 1 + eor w13,w13,w17 +.endif +.inst 0x04ae31ad //eor z13.d,z13.d,z14.d +.if mixin == 1 + eor w14,w14,w18 +.endif +.inst 0x04679c31 //lsl z17.s,z1.s,7 +.inst 0x04679cb2 //lsl z18.s,z5.s,7 +.inst 0x04679d33 //lsl z19.s,z9.s,7 +.inst 0x04679db4 //lsl z20.s,z13.s,7 +.inst 0x04679421 //lsr z1.s,z1.s,25 +.if mixin == 1 + ror w11,w11,25 +.endif +.inst 0x046794a5 //lsr z5.s,z5.s,25 +.if mixin == 1 + ror w12,w12,25 +.endif +.inst 0x04679529 //lsr z9.s,z9.s,25 +.if mixin == 1 + ror w13,w13,25 +.endif +.inst 0x046795ad //lsr z13.s,z13.s,25 +.if mixin == 1 + ror w14,w14,25 +.endif +.inst 0x04713021 //orr z1.d,z1.d,z17.d +.inst 0x047230a5 //orr z5.d,z5.d,z18.d +.inst 0x04733129 //orr z9.d,z9.d,z19.d +.inst 0x047431ad //orr z13.d,z13.d,z20.d +.inst 0x04a50000 //add z0.s,z0.s,z5.s +.if mixin == 1 + add w7,w7,w12 +.endif +.inst 0x04a90084 //add z4.s,z4.s,z9.s +.if mixin == 1 + add w8,w8,w13 +.endif +.inst 0x04ad0108 //add z8.s,z8.s,z13.s +.if mixin == 1 + add w9,w9,w14 +.endif +.inst 0x04a1018c //add z12.s,z12.s,z1.s +.if mixin == 1 + add w10,w10,w11 +.endif +.inst 0x04a031ef //eor z15.d,z15.d,z0.d +.if mixin == 1 + eor w22,w22,w7 +.endif +.inst 0x04a43063 //eor z3.d,z3.d,z4.d +.if mixin == 1 + eor w19,w19,w8 +.endif +.inst 0x04a830e7 //eor z7.d,z7.d,z8.d +.if mixin == 1 + eor w20,w20,w9 +.endif +.inst 0x04ac316b //eor z11.d,z11.d,z12.d +.if mixin == 1 + eor w21,w21,w10 +.endif +.inst 0x05a581ef //revh z15.s,p0/m,z15.s +.if mixin == 1 + ror w22,w22,#16 +.endif +.inst 0x05a58063 //revh z3.s,p0/m,z3.s +.if mixin == 1 + ror w19,w19,#16 +.endif +.inst 0x05a580e7 //revh z7.s,p0/m,z7.s +.if mixin == 1 + ror w20,w20,#16 +.endif +.inst 0x05a5816b //revh z11.s,p0/m,z11.s +.if mixin == 1 + ror w21,w21,#16 +.endif +.inst 0x04af014a //add z10.s,z10.s,z15.s +.if mixin == 1 + add w17,w17,w22 +.endif +.inst 0x04a301ce //add z14.s,z14.s,z3.s +.if mixin == 1 + add w18,w18,w19 +.endif +.inst 0x04a70042 //add z2.s,z2.s,z7.s +.if mixin == 1 + add w15,w15,w20 +.endif +.inst 0x04ab00c6 //add z6.s,z6.s,z11.s +.if mixin == 1 + add w16,w16,w21 +.endif +.inst 0x04aa30a5 //eor z5.d,z5.d,z10.d +.if mixin == 1 + eor w12,w12,w17 +.endif +.inst 0x04ae3129 //eor z9.d,z9.d,z14.d +.if mixin == 1 + eor w13,w13,w18 +.endif +.inst 0x04a231ad //eor z13.d,z13.d,z2.d +.if mixin == 1 + eor w14,w14,w15 +.endif +.inst 0x04a63021 //eor z1.d,z1.d,z6.d +.if mixin == 1 + eor w11,w11,w16 +.endif +.inst 0x046c9cb1 //lsl z17.s,z5.s,12 +.inst 0x046c9d32 //lsl z18.s,z9.s,12 +.inst 0x046c9db3 //lsl z19.s,z13.s,12 +.inst 0x046c9c34 //lsl z20.s,z1.s,12 +.inst 0x046c94a5 //lsr z5.s,z5.s,20 +.if mixin == 1 + ror w12,w12,20 +.endif +.inst 0x046c9529 //lsr z9.s,z9.s,20 +.if mixin == 1 + ror w13,w13,20 +.endif +.inst 0x046c95ad //lsr z13.s,z13.s,20 +.if mixin == 1 + ror w14,w14,20 +.endif +.inst 0x046c9421 //lsr z1.s,z1.s,20 +.if mixin == 1 + ror w11,w11,20 +.endif +.inst 0x047130a5 //orr z5.d,z5.d,z17.d +.inst 0x04723129 //orr z9.d,z9.d,z18.d +.inst 0x047331ad //orr z13.d,z13.d,z19.d +.inst 0x04743021 //orr z1.d,z1.d,z20.d +.inst 0x04a50000 //add z0.s,z0.s,z5.s +.if mixin == 1 + add w7,w7,w12 +.endif +.inst 0x04a90084 //add z4.s,z4.s,z9.s +.if mixin == 1 + add w8,w8,w13 +.endif +.inst 0x04ad0108 //add z8.s,z8.s,z13.s +.if mixin == 1 + add w9,w9,w14 +.endif +.inst 0x04a1018c //add z12.s,z12.s,z1.s +.if mixin == 1 + add w10,w10,w11 +.endif +.inst 0x04a031ef //eor z15.d,z15.d,z0.d +.if mixin == 1 + eor w22,w22,w7 +.endif +.inst 0x04a43063 //eor z3.d,z3.d,z4.d +.if mixin == 1 + eor w19,w19,w8 +.endif +.inst 0x04a830e7 //eor z7.d,z7.d,z8.d +.if mixin == 1 + eor w20,w20,w9 +.endif +.inst 0x04ac316b //eor z11.d,z11.d,z12.d +.if mixin == 1 + eor w21,w21,w10 +.endif +.inst 0x053f31ef //tbl z15.b,{z15.b},z31.b +.if mixin == 1 + ror w22,w22,#24 +.endif +.inst 0x053f3063 //tbl z3.b,{z3.b},z31.b +.if mixin == 1 + ror w19,w19,#24 +.endif +.inst 0x053f30e7 //tbl z7.b,{z7.b},z31.b +.if mixin == 1 + ror w20,w20,#24 +.endif +.inst 0x053f316b //tbl z11.b,{z11.b},z31.b +.if mixin == 1 + ror w21,w21,#24 +.endif +.inst 0x04af014a //add z10.s,z10.s,z15.s +.if mixin == 1 + add w17,w17,w22 +.endif +.inst 0x04a301ce //add z14.s,z14.s,z3.s +.if mixin == 1 + add w18,w18,w19 +.endif +.inst 0x04a70042 //add z2.s,z2.s,z7.s +.if mixin == 1 + add w15,w15,w20 +.endif +.inst 0x04ab00c6 //add z6.s,z6.s,z11.s +.if mixin == 1 + add w16,w16,w21 +.endif +.inst 0x04aa30a5 //eor z5.d,z5.d,z10.d +.if mixin == 1 + eor w12,w12,w17 +.endif +.inst 0x04ae3129 //eor z9.d,z9.d,z14.d +.if mixin == 1 + eor w13,w13,w18 +.endif +.inst 0x04a231ad //eor z13.d,z13.d,z2.d +.if mixin == 1 + eor w14,w14,w15 +.endif +.inst 0x04a63021 //eor z1.d,z1.d,z6.d +.if mixin == 1 + eor w11,w11,w16 +.endif +.inst 0x04679cb1 //lsl z17.s,z5.s,7 +.inst 0x04679d32 //lsl z18.s,z9.s,7 +.inst 0x04679db3 //lsl z19.s,z13.s,7 +.inst 0x04679c34 //lsl z20.s,z1.s,7 +.inst 0x046794a5 //lsr z5.s,z5.s,25 +.if mixin == 1 + ror w12,w12,25 +.endif +.inst 0x04679529 //lsr z9.s,z9.s,25 +.if mixin == 1 + ror w13,w13,25 +.endif +.inst 0x046795ad //lsr z13.s,z13.s,25 +.if mixin == 1 + ror w14,w14,25 +.endif +.inst 0x04679421 //lsr z1.s,z1.s,25 +.if mixin == 1 + ror w11,w11,25 +.endif +.inst 0x047130a5 //orr z5.d,z5.d,z17.d +.inst 0x04723129 //orr z9.d,z9.d,z18.d +.inst 0x047331ad //orr z13.d,z13.d,z19.d +.inst 0x04743021 //orr z1.d,z1.d,z20.d + sub x6,x6,1 + cbnz x6,10b + lsr x6,x28,#32 +.inst 0x05a03b91 //dup z17.s,w28 +.inst 0x05a038d2 //dup z18.s,w6 + lsr x6,x29,#32 +.inst 0x05a038d3 //dup z19.s,w6 + lsr x6,x30,#32 +.if mixin == 1 + add w7,w7,w23 +.endif +.inst 0x04b90000 //add z0.s,z0.s,z25.s +.if mixin == 1 + add x8,x8,x23,lsr #32 +.endif +.inst 0x04ba0084 //add z4.s,z4.s,z26.s +.if mixin == 1 + add x7,x7,x8,lsl #32 // pack +.endif +.if mixin == 1 + add w9,w9,w24 +.endif +.inst 0x04bb0108 //add z8.s,z8.s,z27.s +.if mixin == 1 + add x10,x10,x24,lsr #32 +.endif +.inst 0x04bc018c //add z12.s,z12.s,z28.s +.if mixin == 1 + add x9,x9,x10,lsl #32 // pack +.endif +.if mixin == 1 + ldp x8,x10,[x1],#16 +.endif +.if mixin == 1 + add w11,w11,w25 +.endif +.inst 0x04bd0021 //add z1.s,z1.s,z29.s +.if mixin == 1 + add x12,x12,x25,lsr #32 +.endif +.inst 0x04be00a5 //add z5.s,z5.s,z30.s +.if mixin == 1 + add x11,x11,x12,lsl #32 // pack +.endif +.if mixin == 1 + add w13,w13,w26 +.endif +.inst 0x04b50129 //add z9.s,z9.s,z21.s +.if mixin == 1 + add x14,x14,x26,lsr #32 +.endif +.inst 0x04b601ad //add z13.s,z13.s,z22.s +.if mixin == 1 + add x13,x13,x14,lsl #32 // pack +.endif +.if mixin == 1 + ldp x12,x14,[x1],#16 +.endif +.if mixin == 1 + add w15,w15,w27 +.endif +.inst 0x04b70042 //add z2.s,z2.s,z23.s +.if mixin == 1 + add x16,x16,x27,lsr #32 +.endif +.inst 0x04b800c6 //add z6.s,z6.s,z24.s +.if mixin == 1 + add x15,x15,x16,lsl #32 // pack +.endif +.if mixin == 1 + add w17,w17,w28 +.endif +.inst 0x04b1014a //add z10.s,z10.s,z17.s +.if mixin == 1 + add x18,x18,x28,lsr #32 +.endif +.inst 0x04b201ce //add z14.s,z14.s,z18.s +.if mixin == 1 + add x17,x17,x18,lsl #32 // pack +.endif +.if mixin == 1 + ldp x16,x18,[x1],#16 +.endif +.inst 0x05a03bd4 //dup z20.s,w30 +.inst 0x05a038d9 //dup z25.s,w6 // bak[15] not available for SVE +.if mixin == 1 + add w19,w19,w29 +.endif +.inst 0x04b00063 //add z3.s,z3.s,z16.s +.if mixin == 1 + add x20,x20,x29,lsr #32 +.endif +.inst 0x04b300e7 //add z7.s,z7.s,z19.s +.if mixin == 1 + add x19,x19,x20,lsl #32 // pack +.endif +.if mixin == 1 + add w21,w21,w30 +.endif +.inst 0x04b4016b //add z11.s,z11.s,z20.s +.if mixin == 1 + add x22,x22,x30,lsr #32 +.endif +.inst 0x04b901ef //add z15.s,z15.s,z25.s +.if mixin == 1 + add x21,x21,x22,lsl #32 // pack +.endif +.if mixin == 1 + ldp x20,x22,[x1],#16 +.endif +#ifdef __AARCH64EB__ + rev x7,x7 +.inst 0x05a48000 //revb z0.s,p0/m,z0.s +.inst 0x05a48084 //revb z4.s,p0/m,z4.s + rev x9,x9 +.inst 0x05a48108 //revb z8.s,p0/m,z8.s +.inst 0x05a4818c //revb z12.s,p0/m,z12.s + rev x11,x11 +.inst 0x05a48021 //revb z1.s,p0/m,z1.s +.inst 0x05a480a5 //revb z5.s,p0/m,z5.s + rev x13,x13 +.inst 0x05a48129 //revb z9.s,p0/m,z9.s +.inst 0x05a481ad //revb z13.s,p0/m,z13.s + rev x15,x15 +.inst 0x05a48042 //revb z2.s,p0/m,z2.s +.inst 0x05a480c6 //revb z6.s,p0/m,z6.s + rev x17,x17 +.inst 0x05a4814a //revb z10.s,p0/m,z10.s +.inst 0x05a481ce //revb z14.s,p0/m,z14.s + rev x19,x19 +.inst 0x05a48063 //revb z3.s,p0/m,z3.s +.inst 0x05a480e7 //revb z7.s,p0/m,z7.s + rev x21,x21 +.inst 0x05a4816b //revb z11.s,p0/m,z11.s +.inst 0x05a481ef //revb z15.s,p0/m,z15.s +#endif +.if mixin == 1 + add x29,x29,#1 +.endif + cmp x5,4 + b.ne 200f +.if mixin == 1 + eor x7,x7,x8 +.endif +.if mixin == 1 + eor x9,x9,x10 +.endif +.if mixin == 1 + eor x11,x11,x12 +.endif +.inst 0x05a46011 //zip1 z17.s,z0.s,z4.s +.inst 0x05a46412 //zip2 z18.s,z0.s,z4.s +.inst 0x05ac6113 //zip1 z19.s,z8.s,z12.s +.inst 0x05ac6514 //zip2 z20.s,z8.s,z12.s + +.inst 0x05a56035 //zip1 z21.s,z1.s,z5.s +.inst 0x05a56436 //zip2 z22.s,z1.s,z5.s +.inst 0x05ad6137 //zip1 z23.s,z9.s,z13.s +.inst 0x05ad6538 //zip2 z24.s,z9.s,z13.s + +.inst 0x05f36220 //zip1 z0.d,z17.d,z19.d +.inst 0x05f36624 //zip2 z4.d,z17.d,z19.d +.inst 0x05f46248 //zip1 z8.d,z18.d,z20.d +.inst 0x05f4664c //zip2 z12.d,z18.d,z20.d + +.inst 0x05f762a1 //zip1 z1.d,z21.d,z23.d +.inst 0x05f766a5 //zip2 z5.d,z21.d,z23.d +.inst 0x05f862c9 //zip1 z9.d,z22.d,z24.d +.inst 0x05f866cd //zip2 z13.d,z22.d,z24.d +.if mixin == 1 + eor x13,x13,x14 +.endif +.if mixin == 1 + eor x15,x15,x16 +.endif +.if mixin == 1 + eor x17,x17,x18 +.endif +.inst 0x05a66051 //zip1 z17.s,z2.s,z6.s +.inst 0x05a66452 //zip2 z18.s,z2.s,z6.s +.inst 0x05ae6153 //zip1 z19.s,z10.s,z14.s +.inst 0x05ae6554 //zip2 z20.s,z10.s,z14.s + +.inst 0x05a76075 //zip1 z21.s,z3.s,z7.s +.inst 0x05a76476 //zip2 z22.s,z3.s,z7.s +.inst 0x05af6177 //zip1 z23.s,z11.s,z15.s +.inst 0x05af6578 //zip2 z24.s,z11.s,z15.s + +.inst 0x05f36222 //zip1 z2.d,z17.d,z19.d +.inst 0x05f36626 //zip2 z6.d,z17.d,z19.d +.inst 0x05f4624a //zip1 z10.d,z18.d,z20.d +.inst 0x05f4664e //zip2 z14.d,z18.d,z20.d + +.inst 0x05f762a3 //zip1 z3.d,z21.d,z23.d +.inst 0x05f766a7 //zip2 z7.d,z21.d,z23.d +.inst 0x05f862cb //zip1 z11.d,z22.d,z24.d +.inst 0x05f866cf //zip2 z15.d,z22.d,z24.d +.if mixin == 1 + eor x19,x19,x20 +.endif +.if mixin == 1 + eor x21,x21,x22 +.endif + ld1 {v17.4s,v18.4s,v19.4s,v20.4s},[x1],#64 + ld1 {v21.4s,v22.4s,v23.4s,v24.4s},[x1],#64 +.inst 0x04b13000 //eor z0.d,z0.d,z17.d +.inst 0x04b23021 //eor z1.d,z1.d,z18.d +.inst 0x04b33042 //eor z2.d,z2.d,z19.d +.inst 0x04b43063 //eor z3.d,z3.d,z20.d +.inst 0x04b53084 //eor z4.d,z4.d,z21.d +.inst 0x04b630a5 //eor z5.d,z5.d,z22.d +.inst 0x04b730c6 //eor z6.d,z6.d,z23.d +.inst 0x04b830e7 //eor z7.d,z7.d,z24.d + ld1 {v17.4s,v18.4s,v19.4s,v20.4s},[x1],#64 + ld1 {v21.4s,v22.4s,v23.4s,v24.4s},[x1],#64 +.if mixin == 1 + stp x7,x9,[x0],#16 +.endif +.inst 0x04b13108 //eor z8.d,z8.d,z17.d +.inst 0x04b23129 //eor z9.d,z9.d,z18.d +.if mixin == 1 + stp x11,x13,[x0],#16 +.endif +.inst 0x04b3314a //eor z10.d,z10.d,z19.d +.inst 0x04b4316b //eor z11.d,z11.d,z20.d +.if mixin == 1 + stp x15,x17,[x0],#16 +.endif +.inst 0x04b5318c //eor z12.d,z12.d,z21.d +.inst 0x04b631ad //eor z13.d,z13.d,z22.d +.if mixin == 1 + stp x19,x21,[x0],#16 +.endif +.inst 0x04b731ce //eor z14.d,z14.d,z23.d +.inst 0x04b831ef //eor z15.d,z15.d,z24.d + st1 {v0.4s,v1.4s,v2.4s,v3.4s},[x0],#64 + st1 {v4.4s,v5.4s,v6.4s,v7.4s},[x0],#64 + st1 {v8.4s,v9.4s,v10.4s,v11.4s},[x0],#64 + st1 {v12.4s,v13.4s,v14.4s,v15.4s},[x0],#64 + b 210f +200: +.inst 0x05a16011 //zip1 z17.s,z0.s,z1.s +.inst 0x05a16412 //zip2 z18.s,z0.s,z1.s +.inst 0x05a36053 //zip1 z19.s,z2.s,z3.s +.inst 0x05a36454 //zip2 z20.s,z2.s,z3.s + +.inst 0x05a56095 //zip1 z21.s,z4.s,z5.s +.inst 0x05a56496 //zip2 z22.s,z4.s,z5.s +.inst 0x05a760d7 //zip1 z23.s,z6.s,z7.s +.inst 0x05a764d8 //zip2 z24.s,z6.s,z7.s + +.inst 0x05f36220 //zip1 z0.d,z17.d,z19.d +.inst 0x05f36621 //zip2 z1.d,z17.d,z19.d +.inst 0x05f46242 //zip1 z2.d,z18.d,z20.d +.inst 0x05f46643 //zip2 z3.d,z18.d,z20.d + +.inst 0x05f762a4 //zip1 z4.d,z21.d,z23.d +.inst 0x05f766a5 //zip2 z5.d,z21.d,z23.d +.inst 0x05f862c6 //zip1 z6.d,z22.d,z24.d +.inst 0x05f866c7 //zip2 z7.d,z22.d,z24.d +.if mixin == 1 + eor x7,x7,x8 +.endif +.if mixin == 1 + eor x9,x9,x10 +.endif +.inst 0x05a96111 //zip1 z17.s,z8.s,z9.s +.inst 0x05a96512 //zip2 z18.s,z8.s,z9.s +.inst 0x05ab6153 //zip1 z19.s,z10.s,z11.s +.inst 0x05ab6554 //zip2 z20.s,z10.s,z11.s + +.inst 0x05ad6195 //zip1 z21.s,z12.s,z13.s +.inst 0x05ad6596 //zip2 z22.s,z12.s,z13.s +.inst 0x05af61d7 //zip1 z23.s,z14.s,z15.s +.inst 0x05af65d8 //zip2 z24.s,z14.s,z15.s + +.inst 0x05f36228 //zip1 z8.d,z17.d,z19.d +.inst 0x05f36629 //zip2 z9.d,z17.d,z19.d +.inst 0x05f4624a //zip1 z10.d,z18.d,z20.d +.inst 0x05f4664b //zip2 z11.d,z18.d,z20.d + +.inst 0x05f762ac //zip1 z12.d,z21.d,z23.d +.inst 0x05f766ad //zip2 z13.d,z21.d,z23.d +.inst 0x05f862ce //zip1 z14.d,z22.d,z24.d +.inst 0x05f866cf //zip2 z15.d,z22.d,z24.d +.if mixin == 1 + eor x11,x11,x12 +.endif +.if mixin == 1 + eor x13,x13,x14 +.endif +.inst 0x05a46011 //zip1 z17.s,z0.s,z4.s +.inst 0x05a46412 //zip2 z18.s,z0.s,z4.s +.inst 0x05ac6113 //zip1 z19.s,z8.s,z12.s +.inst 0x05ac6514 //zip2 z20.s,z8.s,z12.s + +.inst 0x05a56035 //zip1 z21.s,z1.s,z5.s +.inst 0x05a56436 //zip2 z22.s,z1.s,z5.s +.inst 0x05ad6137 //zip1 z23.s,z9.s,z13.s +.inst 0x05ad6538 //zip2 z24.s,z9.s,z13.s + +.inst 0x05f36220 //zip1 z0.d,z17.d,z19.d +.inst 0x05f36624 //zip2 z4.d,z17.d,z19.d +.inst 0x05f46248 //zip1 z8.d,z18.d,z20.d +.inst 0x05f4664c //zip2 z12.d,z18.d,z20.d + +.inst 0x05f762a1 //zip1 z1.d,z21.d,z23.d +.inst 0x05f766a5 //zip2 z5.d,z21.d,z23.d +.inst 0x05f862c9 //zip1 z9.d,z22.d,z24.d +.inst 0x05f866cd //zip2 z13.d,z22.d,z24.d +.if mixin == 1 + eor x15,x15,x16 +.endif +.if mixin == 1 + eor x17,x17,x18 +.endif +.inst 0x05a66051 //zip1 z17.s,z2.s,z6.s +.inst 0x05a66452 //zip2 z18.s,z2.s,z6.s +.inst 0x05ae6153 //zip1 z19.s,z10.s,z14.s +.inst 0x05ae6554 //zip2 z20.s,z10.s,z14.s + +.inst 0x05a76075 //zip1 z21.s,z3.s,z7.s +.inst 0x05a76476 //zip2 z22.s,z3.s,z7.s +.inst 0x05af6177 //zip1 z23.s,z11.s,z15.s +.inst 0x05af6578 //zip2 z24.s,z11.s,z15.s + +.inst 0x05f36222 //zip1 z2.d,z17.d,z19.d +.inst 0x05f36626 //zip2 z6.d,z17.d,z19.d +.inst 0x05f4624a //zip1 z10.d,z18.d,z20.d +.inst 0x05f4664e //zip2 z14.d,z18.d,z20.d + +.inst 0x05f762a3 //zip1 z3.d,z21.d,z23.d +.inst 0x05f766a7 //zip2 z7.d,z21.d,z23.d +.inst 0x05f862cb //zip1 z11.d,z22.d,z24.d +.inst 0x05f866cf //zip2 z15.d,z22.d,z24.d +.if mixin == 1 + eor x19,x19,x20 +.endif +.if mixin == 1 + eor x21,x21,x22 +.endif +.inst 0xa540a031 //ld1w {z17.s},p0/z,[x1,#0,MUL VL] +.inst 0xa541a032 //ld1w {z18.s},p0/z,[x1,#1,MUL VL] +.inst 0xa542a033 //ld1w {z19.s},p0/z,[x1,#2,MUL VL] +.inst 0xa543a034 //ld1w {z20.s},p0/z,[x1,#3,MUL VL] +.inst 0xa544a035 //ld1w {z21.s},p0/z,[x1,#4,MUL VL] +.inst 0xa545a036 //ld1w {z22.s},p0/z,[x1,#5,MUL VL] +.inst 0xa546a037 //ld1w {z23.s},p0/z,[x1,#6,MUL VL] +.inst 0xa547a038 //ld1w {z24.s},p0/z,[x1,#7,MUL VL] +.inst 0x04215101 //addvl x1,x1,8 +.inst 0x04b13000 //eor z0.d,z0.d,z17.d +.inst 0x04b23084 //eor z4.d,z4.d,z18.d +.inst 0x04b33108 //eor z8.d,z8.d,z19.d +.inst 0x04b4318c //eor z12.d,z12.d,z20.d +.inst 0x04b53021 //eor z1.d,z1.d,z21.d +.inst 0x04b630a5 //eor z5.d,z5.d,z22.d +.inst 0x04b73129 //eor z9.d,z9.d,z23.d +.inst 0x04b831ad //eor z13.d,z13.d,z24.d +.inst 0xa540a031 //ld1w {z17.s},p0/z,[x1,#0,MUL VL] +.inst 0xa541a032 //ld1w {z18.s},p0/z,[x1,#1,MUL VL] +.inst 0xa542a033 //ld1w {z19.s},p0/z,[x1,#2,MUL VL] +.inst 0xa543a034 //ld1w {z20.s},p0/z,[x1,#3,MUL VL] +.inst 0xa544a035 //ld1w {z21.s},p0/z,[x1,#4,MUL VL] +.inst 0xa545a036 //ld1w {z22.s},p0/z,[x1,#5,MUL VL] +.inst 0xa546a037 //ld1w {z23.s},p0/z,[x1,#6,MUL VL] +.inst 0xa547a038 //ld1w {z24.s},p0/z,[x1,#7,MUL VL] +.inst 0x04215101 //addvl x1,x1,8 +.if mixin == 1 + stp x7,x9,[x0],#16 +.endif +.inst 0x04b13042 //eor z2.d,z2.d,z17.d +.inst 0x04b230c6 //eor z6.d,z6.d,z18.d +.if mixin == 1 + stp x11,x13,[x0],#16 +.endif +.inst 0x04b3314a //eor z10.d,z10.d,z19.d +.inst 0x04b431ce //eor z14.d,z14.d,z20.d +.if mixin == 1 + stp x15,x17,[x0],#16 +.endif +.inst 0x04b53063 //eor z3.d,z3.d,z21.d +.inst 0x04b630e7 //eor z7.d,z7.d,z22.d +.if mixin == 1 + stp x19,x21,[x0],#16 +.endif +.inst 0x04b7316b //eor z11.d,z11.d,z23.d +.inst 0x04b831ef //eor z15.d,z15.d,z24.d +.inst 0xe540e000 //st1w {z0.s},p0,[x0,#0,MUL VL] +.inst 0xe541e004 //st1w {z4.s},p0,[x0,#1,MUL VL] +.inst 0xe542e008 //st1w {z8.s},p0,[x0,#2,MUL VL] +.inst 0xe543e00c //st1w {z12.s},p0,[x0,#3,MUL VL] +.inst 0xe544e001 //st1w {z1.s},p0,[x0,#4,MUL VL] +.inst 0xe545e005 //st1w {z5.s},p0,[x0,#5,MUL VL] +.inst 0xe546e009 //st1w {z9.s},p0,[x0,#6,MUL VL] +.inst 0xe547e00d //st1w {z13.s},p0,[x0,#7,MUL VL] +.inst 0x04205100 //addvl x0,x0,8 +.inst 0xe540e002 //st1w {z2.s},p0,[x0,#0,MUL VL] +.inst 0xe541e006 //st1w {z6.s},p0,[x0,#1,MUL VL] +.inst 0xe542e00a //st1w {z10.s},p0,[x0,#2,MUL VL] +.inst 0xe543e00e //st1w {z14.s},p0,[x0,#3,MUL VL] +.inst 0xe544e003 //st1w {z3.s},p0,[x0,#4,MUL VL] +.inst 0xe545e007 //st1w {z7.s},p0,[x0,#5,MUL VL] +.inst 0xe546e00b //st1w {z11.s},p0,[x0,#6,MUL VL] +.inst 0xe547e00f //st1w {z15.s},p0,[x0,#7,MUL VL] +.inst 0x04205100 //addvl x0,x0,8 +210: +.inst 0x04b0e3fd //incw x29, ALL, MUL #1 + subs x2,x2,64 + b.gt 100b + b 110f +101: + mixin=0 + lsr x8,x23,#32 +.inst 0x05a03ae0 //dup z0.s,w23 +.inst 0x05a03af9 //dup z25.s,w23 +.if mixin == 1 + mov w7,w23 +.endif +.inst 0x05a03904 //dup z4.s,w8 +.inst 0x05a0391a //dup z26.s,w8 + lsr x10,x24,#32 +.inst 0x05a03b08 //dup z8.s,w24 +.inst 0x05a03b1b //dup z27.s,w24 +.if mixin == 1 + mov w9,w24 +.endif +.inst 0x05a0394c //dup z12.s,w10 +.inst 0x05a0395c //dup z28.s,w10 + lsr x12,x25,#32 +.inst 0x05a03b21 //dup z1.s,w25 +.inst 0x05a03b3d //dup z29.s,w25 +.if mixin == 1 + mov w11,w25 +.endif +.inst 0x05a03985 //dup z5.s,w12 +.inst 0x05a0399e //dup z30.s,w12 + lsr x14,x26,#32 +.inst 0x05a03b49 //dup z9.s,w26 +.inst 0x05a03b55 //dup z21.s,w26 +.if mixin == 1 + mov w13,w26 +.endif +.inst 0x05a039cd //dup z13.s,w14 +.inst 0x05a039d6 //dup z22.s,w14 + lsr x16,x27,#32 +.inst 0x05a03b62 //dup z2.s,w27 +.inst 0x05a03b77 //dup z23.s,w27 +.if mixin == 1 + mov w15,w27 +.endif +.inst 0x05a03a06 //dup z6.s,w16 +.inst 0x05a03a18 //dup z24.s,w16 + lsr x18,x28,#32 +.inst 0x05a03b8a //dup z10.s,w28 +.if mixin == 1 + mov w17,w28 +.endif +.inst 0x05a03a4e //dup z14.s,w18 + lsr x22,x30,#32 +.inst 0x05a03bcb //dup z11.s,w30 +.if mixin == 1 + mov w21,w30 +.endif +.inst 0x05a03acf //dup z15.s,w22 +.if mixin == 1 + add w20,w29,#1 + mov w19,w29 +.inst 0x04a14690 //index z16.s,w20,1 +.inst 0x04a14683 //index z3.s,w20,1 +.else +.inst 0x04a147b0 //index z16.s,w29,1 +.inst 0x04a147a3 //index z3.s,w29,1 +.endif + lsr x20,x29,#32 +.inst 0x05a03a87 //dup z7.s,w20 + mov x6,#10 +10: +.align 5 +.inst 0x04a10000 //add z0.s,z0.s,z1.s +.if mixin == 1 + add w7,w7,w11 +.endif +.inst 0x04a50084 //add z4.s,z4.s,z5.s +.if mixin == 1 + add w8,w8,w12 +.endif +.inst 0x04a90108 //add z8.s,z8.s,z9.s +.if mixin == 1 + add w9,w9,w13 +.endif +.inst 0x04ad018c //add z12.s,z12.s,z13.s +.if mixin == 1 + add w10,w10,w14 +.endif +.inst 0x04a03063 //eor z3.d,z3.d,z0.d +.if mixin == 1 + eor w19,w19,w7 +.endif +.inst 0x04a430e7 //eor z7.d,z7.d,z4.d +.if mixin == 1 + eor w20,w20,w8 +.endif +.inst 0x04a8316b //eor z11.d,z11.d,z8.d +.if mixin == 1 + eor w21,w21,w9 +.endif +.inst 0x04ac31ef //eor z15.d,z15.d,z12.d +.if mixin == 1 + eor w22,w22,w10 +.endif +.inst 0x05a58063 //revh z3.s,p0/m,z3.s +.if mixin == 1 + ror w19,w19,#16 +.endif +.inst 0x05a580e7 //revh z7.s,p0/m,z7.s +.if mixin == 1 + ror w20,w20,#16 +.endif +.inst 0x05a5816b //revh z11.s,p0/m,z11.s +.if mixin == 1 + ror w21,w21,#16 +.endif +.inst 0x05a581ef //revh z15.s,p0/m,z15.s +.if mixin == 1 + ror w22,w22,#16 +.endif +.inst 0x04a30042 //add z2.s,z2.s,z3.s +.if mixin == 1 + add w15,w15,w19 +.endif +.inst 0x04a700c6 //add z6.s,z6.s,z7.s +.if mixin == 1 + add w16,w16,w20 +.endif +.inst 0x04ab014a //add z10.s,z10.s,z11.s +.if mixin == 1 + add w17,w17,w21 +.endif +.inst 0x04af01ce //add z14.s,z14.s,z15.s +.if mixin == 1 + add w18,w18,w22 +.endif +.inst 0x04a23021 //eor z1.d,z1.d,z2.d +.if mixin == 1 + eor w11,w11,w15 +.endif +.inst 0x04a630a5 //eor z5.d,z5.d,z6.d +.if mixin == 1 + eor w12,w12,w16 +.endif +.inst 0x04aa3129 //eor z9.d,z9.d,z10.d +.if mixin == 1 + eor w13,w13,w17 +.endif +.inst 0x04ae31ad //eor z13.d,z13.d,z14.d +.if mixin == 1 + eor w14,w14,w18 +.endif +.inst 0x046c9c31 //lsl z17.s,z1.s,12 +.inst 0x046c9cb2 //lsl z18.s,z5.s,12 +.inst 0x046c9d33 //lsl z19.s,z9.s,12 +.inst 0x046c9db4 //lsl z20.s,z13.s,12 +.inst 0x046c9421 //lsr z1.s,z1.s,20 +.if mixin == 1 + ror w11,w11,20 +.endif +.inst 0x046c94a5 //lsr z5.s,z5.s,20 +.if mixin == 1 + ror w12,w12,20 +.endif +.inst 0x046c9529 //lsr z9.s,z9.s,20 +.if mixin == 1 + ror w13,w13,20 +.endif +.inst 0x046c95ad //lsr z13.s,z13.s,20 +.if mixin == 1 + ror w14,w14,20 +.endif +.inst 0x04713021 //orr z1.d,z1.d,z17.d +.inst 0x047230a5 //orr z5.d,z5.d,z18.d +.inst 0x04733129 //orr z9.d,z9.d,z19.d +.inst 0x047431ad //orr z13.d,z13.d,z20.d +.inst 0x04a10000 //add z0.s,z0.s,z1.s +.if mixin == 1 + add w7,w7,w11 +.endif +.inst 0x04a50084 //add z4.s,z4.s,z5.s +.if mixin == 1 + add w8,w8,w12 +.endif +.inst 0x04a90108 //add z8.s,z8.s,z9.s +.if mixin == 1 + add w9,w9,w13 +.endif +.inst 0x04ad018c //add z12.s,z12.s,z13.s +.if mixin == 1 + add w10,w10,w14 +.endif +.inst 0x04a03063 //eor z3.d,z3.d,z0.d +.if mixin == 1 + eor w19,w19,w7 +.endif +.inst 0x04a430e7 //eor z7.d,z7.d,z4.d +.if mixin == 1 + eor w20,w20,w8 +.endif +.inst 0x04a8316b //eor z11.d,z11.d,z8.d +.if mixin == 1 + eor w21,w21,w9 +.endif +.inst 0x04ac31ef //eor z15.d,z15.d,z12.d +.if mixin == 1 + eor w22,w22,w10 +.endif +.inst 0x053f3063 //tbl z3.b,{z3.b},z31.b +.if mixin == 1 + ror w19,w19,#24 +.endif +.inst 0x053f30e7 //tbl z7.b,{z7.b},z31.b +.if mixin == 1 + ror w20,w20,#24 +.endif +.inst 0x053f316b //tbl z11.b,{z11.b},z31.b +.if mixin == 1 + ror w21,w21,#24 +.endif +.inst 0x053f31ef //tbl z15.b,{z15.b},z31.b +.if mixin == 1 + ror w22,w22,#24 +.endif +.inst 0x04a30042 //add z2.s,z2.s,z3.s +.if mixin == 1 + add w15,w15,w19 +.endif +.inst 0x04a700c6 //add z6.s,z6.s,z7.s +.if mixin == 1 + add w16,w16,w20 +.endif +.inst 0x04ab014a //add z10.s,z10.s,z11.s +.if mixin == 1 + add w17,w17,w21 +.endif +.inst 0x04af01ce //add z14.s,z14.s,z15.s +.if mixin == 1 + add w18,w18,w22 +.endif +.inst 0x04a23021 //eor z1.d,z1.d,z2.d +.if mixin == 1 + eor w11,w11,w15 +.endif +.inst 0x04a630a5 //eor z5.d,z5.d,z6.d +.if mixin == 1 + eor w12,w12,w16 +.endif +.inst 0x04aa3129 //eor z9.d,z9.d,z10.d +.if mixin == 1 + eor w13,w13,w17 +.endif +.inst 0x04ae31ad //eor z13.d,z13.d,z14.d +.if mixin == 1 + eor w14,w14,w18 +.endif +.inst 0x04679c31 //lsl z17.s,z1.s,7 +.inst 0x04679cb2 //lsl z18.s,z5.s,7 +.inst 0x04679d33 //lsl z19.s,z9.s,7 +.inst 0x04679db4 //lsl z20.s,z13.s,7 +.inst 0x04679421 //lsr z1.s,z1.s,25 +.if mixin == 1 + ror w11,w11,25 +.endif +.inst 0x046794a5 //lsr z5.s,z5.s,25 +.if mixin == 1 + ror w12,w12,25 +.endif +.inst 0x04679529 //lsr z9.s,z9.s,25 +.if mixin == 1 + ror w13,w13,25 +.endif +.inst 0x046795ad //lsr z13.s,z13.s,25 +.if mixin == 1 + ror w14,w14,25 +.endif +.inst 0x04713021 //orr z1.d,z1.d,z17.d +.inst 0x047230a5 //orr z5.d,z5.d,z18.d +.inst 0x04733129 //orr z9.d,z9.d,z19.d +.inst 0x047431ad //orr z13.d,z13.d,z20.d +.inst 0x04a50000 //add z0.s,z0.s,z5.s +.if mixin == 1 + add w7,w7,w12 +.endif +.inst 0x04a90084 //add z4.s,z4.s,z9.s +.if mixin == 1 + add w8,w8,w13 +.endif +.inst 0x04ad0108 //add z8.s,z8.s,z13.s +.if mixin == 1 + add w9,w9,w14 +.endif +.inst 0x04a1018c //add z12.s,z12.s,z1.s +.if mixin == 1 + add w10,w10,w11 +.endif +.inst 0x04a031ef //eor z15.d,z15.d,z0.d +.if mixin == 1 + eor w22,w22,w7 +.endif +.inst 0x04a43063 //eor z3.d,z3.d,z4.d +.if mixin == 1 + eor w19,w19,w8 +.endif +.inst 0x04a830e7 //eor z7.d,z7.d,z8.d +.if mixin == 1 + eor w20,w20,w9 +.endif +.inst 0x04ac316b //eor z11.d,z11.d,z12.d +.if mixin == 1 + eor w21,w21,w10 +.endif +.inst 0x05a581ef //revh z15.s,p0/m,z15.s +.if mixin == 1 + ror w22,w22,#16 +.endif +.inst 0x05a58063 //revh z3.s,p0/m,z3.s +.if mixin == 1 + ror w19,w19,#16 +.endif +.inst 0x05a580e7 //revh z7.s,p0/m,z7.s +.if mixin == 1 + ror w20,w20,#16 +.endif +.inst 0x05a5816b //revh z11.s,p0/m,z11.s +.if mixin == 1 + ror w21,w21,#16 +.endif +.inst 0x04af014a //add z10.s,z10.s,z15.s +.if mixin == 1 + add w17,w17,w22 +.endif +.inst 0x04a301ce //add z14.s,z14.s,z3.s +.if mixin == 1 + add w18,w18,w19 +.endif +.inst 0x04a70042 //add z2.s,z2.s,z7.s +.if mixin == 1 + add w15,w15,w20 +.endif +.inst 0x04ab00c6 //add z6.s,z6.s,z11.s +.if mixin == 1 + add w16,w16,w21 +.endif +.inst 0x04aa30a5 //eor z5.d,z5.d,z10.d +.if mixin == 1 + eor w12,w12,w17 +.endif +.inst 0x04ae3129 //eor z9.d,z9.d,z14.d +.if mixin == 1 + eor w13,w13,w18 +.endif +.inst 0x04a231ad //eor z13.d,z13.d,z2.d +.if mixin == 1 + eor w14,w14,w15 +.endif +.inst 0x04a63021 //eor z1.d,z1.d,z6.d +.if mixin == 1 + eor w11,w11,w16 +.endif +.inst 0x046c9cb1 //lsl z17.s,z5.s,12 +.inst 0x046c9d32 //lsl z18.s,z9.s,12 +.inst 0x046c9db3 //lsl z19.s,z13.s,12 +.inst 0x046c9c34 //lsl z20.s,z1.s,12 +.inst 0x046c94a5 //lsr z5.s,z5.s,20 +.if mixin == 1 + ror w12,w12,20 +.endif +.inst 0x046c9529 //lsr z9.s,z9.s,20 +.if mixin == 1 + ror w13,w13,20 +.endif +.inst 0x046c95ad //lsr z13.s,z13.s,20 +.if mixin == 1 + ror w14,w14,20 +.endif +.inst 0x046c9421 //lsr z1.s,z1.s,20 +.if mixin == 1 + ror w11,w11,20 +.endif +.inst 0x047130a5 //orr z5.d,z5.d,z17.d +.inst 0x04723129 //orr z9.d,z9.d,z18.d +.inst 0x047331ad //orr z13.d,z13.d,z19.d +.inst 0x04743021 //orr z1.d,z1.d,z20.d +.inst 0x04a50000 //add z0.s,z0.s,z5.s +.if mixin == 1 + add w7,w7,w12 +.endif +.inst 0x04a90084 //add z4.s,z4.s,z9.s +.if mixin == 1 + add w8,w8,w13 +.endif +.inst 0x04ad0108 //add z8.s,z8.s,z13.s +.if mixin == 1 + add w9,w9,w14 +.endif +.inst 0x04a1018c //add z12.s,z12.s,z1.s +.if mixin == 1 + add w10,w10,w11 +.endif +.inst 0x04a031ef //eor z15.d,z15.d,z0.d +.if mixin == 1 + eor w22,w22,w7 +.endif +.inst 0x04a43063 //eor z3.d,z3.d,z4.d +.if mixin == 1 + eor w19,w19,w8 +.endif +.inst 0x04a830e7 //eor z7.d,z7.d,z8.d +.if mixin == 1 + eor w20,w20,w9 +.endif +.inst 0x04ac316b //eor z11.d,z11.d,z12.d +.if mixin == 1 + eor w21,w21,w10 +.endif +.inst 0x053f31ef //tbl z15.b,{z15.b},z31.b +.if mixin == 1 + ror w22,w22,#24 +.endif +.inst 0x053f3063 //tbl z3.b,{z3.b},z31.b +.if mixin == 1 + ror w19,w19,#24 +.endif +.inst 0x053f30e7 //tbl z7.b,{z7.b},z31.b +.if mixin == 1 + ror w20,w20,#24 +.endif +.inst 0x053f316b //tbl z11.b,{z11.b},z31.b +.if mixin == 1 + ror w21,w21,#24 +.endif +.inst 0x04af014a //add z10.s,z10.s,z15.s +.if mixin == 1 + add w17,w17,w22 +.endif +.inst 0x04a301ce //add z14.s,z14.s,z3.s +.if mixin == 1 + add w18,w18,w19 +.endif +.inst 0x04a70042 //add z2.s,z2.s,z7.s +.if mixin == 1 + add w15,w15,w20 +.endif +.inst 0x04ab00c6 //add z6.s,z6.s,z11.s +.if mixin == 1 + add w16,w16,w21 +.endif +.inst 0x04aa30a5 //eor z5.d,z5.d,z10.d +.if mixin == 1 + eor w12,w12,w17 +.endif +.inst 0x04ae3129 //eor z9.d,z9.d,z14.d +.if mixin == 1 + eor w13,w13,w18 +.endif +.inst 0x04a231ad //eor z13.d,z13.d,z2.d +.if mixin == 1 + eor w14,w14,w15 +.endif +.inst 0x04a63021 //eor z1.d,z1.d,z6.d +.if mixin == 1 + eor w11,w11,w16 +.endif +.inst 0x04679cb1 //lsl z17.s,z5.s,7 +.inst 0x04679d32 //lsl z18.s,z9.s,7 +.inst 0x04679db3 //lsl z19.s,z13.s,7 +.inst 0x04679c34 //lsl z20.s,z1.s,7 +.inst 0x046794a5 //lsr z5.s,z5.s,25 +.if mixin == 1 + ror w12,w12,25 +.endif +.inst 0x04679529 //lsr z9.s,z9.s,25 +.if mixin == 1 + ror w13,w13,25 +.endif +.inst 0x046795ad //lsr z13.s,z13.s,25 +.if mixin == 1 + ror w14,w14,25 +.endif +.inst 0x04679421 //lsr z1.s,z1.s,25 +.if mixin == 1 + ror w11,w11,25 +.endif +.inst 0x047130a5 //orr z5.d,z5.d,z17.d +.inst 0x04723129 //orr z9.d,z9.d,z18.d +.inst 0x047331ad //orr z13.d,z13.d,z19.d +.inst 0x04743021 //orr z1.d,z1.d,z20.d + sub x6,x6,1 + cbnz x6,10b + lsr x6,x28,#32 +.inst 0x05a03b91 //dup z17.s,w28 +.inst 0x05a038d2 //dup z18.s,w6 + lsr x6,x29,#32 +.inst 0x05a038d3 //dup z19.s,w6 + lsr x6,x30,#32 +.if mixin == 1 + add w7,w7,w23 +.endif +.inst 0x04b90000 //add z0.s,z0.s,z25.s +.if mixin == 1 + add x8,x8,x23,lsr #32 +.endif +.inst 0x04ba0084 //add z4.s,z4.s,z26.s +.if mixin == 1 + add x7,x7,x8,lsl #32 // pack +.endif +.if mixin == 1 + add w9,w9,w24 +.endif +.inst 0x04bb0108 //add z8.s,z8.s,z27.s +.if mixin == 1 + add x10,x10,x24,lsr #32 +.endif +.inst 0x04bc018c //add z12.s,z12.s,z28.s +.if mixin == 1 + add x9,x9,x10,lsl #32 // pack +.endif +.if mixin == 1 + ldp x8,x10,[x1],#16 +.endif +.if mixin == 1 + add w11,w11,w25 +.endif +.inst 0x04bd0021 //add z1.s,z1.s,z29.s +.if mixin == 1 + add x12,x12,x25,lsr #32 +.endif +.inst 0x04be00a5 //add z5.s,z5.s,z30.s +.if mixin == 1 + add x11,x11,x12,lsl #32 // pack +.endif +.if mixin == 1 + add w13,w13,w26 +.endif +.inst 0x04b50129 //add z9.s,z9.s,z21.s +.if mixin == 1 + add x14,x14,x26,lsr #32 +.endif +.inst 0x04b601ad //add z13.s,z13.s,z22.s +.if mixin == 1 + add x13,x13,x14,lsl #32 // pack +.endif +.if mixin == 1 + ldp x12,x14,[x1],#16 +.endif +.if mixin == 1 + add w15,w15,w27 +.endif +.inst 0x04b70042 //add z2.s,z2.s,z23.s +.if mixin == 1 + add x16,x16,x27,lsr #32 +.endif +.inst 0x04b800c6 //add z6.s,z6.s,z24.s +.if mixin == 1 + add x15,x15,x16,lsl #32 // pack +.endif +.if mixin == 1 + add w17,w17,w28 +.endif +.inst 0x04b1014a //add z10.s,z10.s,z17.s +.if mixin == 1 + add x18,x18,x28,lsr #32 +.endif +.inst 0x04b201ce //add z14.s,z14.s,z18.s +.if mixin == 1 + add x17,x17,x18,lsl #32 // pack +.endif +.if mixin == 1 + ldp x16,x18,[x1],#16 +.endif +.inst 0x05a03bd4 //dup z20.s,w30 +.inst 0x05a038d9 //dup z25.s,w6 // bak[15] not available for SVE +.if mixin == 1 + add w19,w19,w29 +.endif +.inst 0x04b00063 //add z3.s,z3.s,z16.s +.if mixin == 1 + add x20,x20,x29,lsr #32 +.endif +.inst 0x04b300e7 //add z7.s,z7.s,z19.s +.if mixin == 1 + add x19,x19,x20,lsl #32 // pack +.endif +.if mixin == 1 + add w21,w21,w30 +.endif +.inst 0x04b4016b //add z11.s,z11.s,z20.s +.if mixin == 1 + add x22,x22,x30,lsr #32 +.endif +.inst 0x04b901ef //add z15.s,z15.s,z25.s +.if mixin == 1 + add x21,x21,x22,lsl #32 // pack +.endif +.if mixin == 1 + ldp x20,x22,[x1],#16 +.endif +#ifdef __AARCH64EB__ + rev x7,x7 +.inst 0x05a48000 //revb z0.s,p0/m,z0.s +.inst 0x05a48084 //revb z4.s,p0/m,z4.s + rev x9,x9 +.inst 0x05a48108 //revb z8.s,p0/m,z8.s +.inst 0x05a4818c //revb z12.s,p0/m,z12.s + rev x11,x11 +.inst 0x05a48021 //revb z1.s,p0/m,z1.s +.inst 0x05a480a5 //revb z5.s,p0/m,z5.s + rev x13,x13 +.inst 0x05a48129 //revb z9.s,p0/m,z9.s +.inst 0x05a481ad //revb z13.s,p0/m,z13.s + rev x15,x15 +.inst 0x05a48042 //revb z2.s,p0/m,z2.s +.inst 0x05a480c6 //revb z6.s,p0/m,z6.s + rev x17,x17 +.inst 0x05a4814a //revb z10.s,p0/m,z10.s +.inst 0x05a481ce //revb z14.s,p0/m,z14.s + rev x19,x19 +.inst 0x05a48063 //revb z3.s,p0/m,z3.s +.inst 0x05a480e7 //revb z7.s,p0/m,z7.s + rev x21,x21 +.inst 0x05a4816b //revb z11.s,p0/m,z11.s +.inst 0x05a481ef //revb z15.s,p0/m,z15.s +#endif +.if mixin == 1 + add x29,x29,#1 +.endif + cmp x5,4 + b.ne 200f +.if mixin == 1 + eor x7,x7,x8 +.endif +.if mixin == 1 + eor x9,x9,x10 +.endif +.if mixin == 1 + eor x11,x11,x12 +.endif +.inst 0x05a46011 //zip1 z17.s,z0.s,z4.s +.inst 0x05a46412 //zip2 z18.s,z0.s,z4.s +.inst 0x05ac6113 //zip1 z19.s,z8.s,z12.s +.inst 0x05ac6514 //zip2 z20.s,z8.s,z12.s + +.inst 0x05a56035 //zip1 z21.s,z1.s,z5.s +.inst 0x05a56436 //zip2 z22.s,z1.s,z5.s +.inst 0x05ad6137 //zip1 z23.s,z9.s,z13.s +.inst 0x05ad6538 //zip2 z24.s,z9.s,z13.s + +.inst 0x05f36220 //zip1 z0.d,z17.d,z19.d +.inst 0x05f36624 //zip2 z4.d,z17.d,z19.d +.inst 0x05f46248 //zip1 z8.d,z18.d,z20.d +.inst 0x05f4664c //zip2 z12.d,z18.d,z20.d + +.inst 0x05f762a1 //zip1 z1.d,z21.d,z23.d +.inst 0x05f766a5 //zip2 z5.d,z21.d,z23.d +.inst 0x05f862c9 //zip1 z9.d,z22.d,z24.d +.inst 0x05f866cd //zip2 z13.d,z22.d,z24.d +.if mixin == 1 + eor x13,x13,x14 +.endif +.if mixin == 1 + eor x15,x15,x16 +.endif +.if mixin == 1 + eor x17,x17,x18 +.endif +.inst 0x05a66051 //zip1 z17.s,z2.s,z6.s +.inst 0x05a66452 //zip2 z18.s,z2.s,z6.s +.inst 0x05ae6153 //zip1 z19.s,z10.s,z14.s +.inst 0x05ae6554 //zip2 z20.s,z10.s,z14.s + +.inst 0x05a76075 //zip1 z21.s,z3.s,z7.s +.inst 0x05a76476 //zip2 z22.s,z3.s,z7.s +.inst 0x05af6177 //zip1 z23.s,z11.s,z15.s +.inst 0x05af6578 //zip2 z24.s,z11.s,z15.s + +.inst 0x05f36222 //zip1 z2.d,z17.d,z19.d +.inst 0x05f36626 //zip2 z6.d,z17.d,z19.d +.inst 0x05f4624a //zip1 z10.d,z18.d,z20.d +.inst 0x05f4664e //zip2 z14.d,z18.d,z20.d + +.inst 0x05f762a3 //zip1 z3.d,z21.d,z23.d +.inst 0x05f766a7 //zip2 z7.d,z21.d,z23.d +.inst 0x05f862cb //zip1 z11.d,z22.d,z24.d +.inst 0x05f866cf //zip2 z15.d,z22.d,z24.d +.if mixin == 1 + eor x19,x19,x20 +.endif +.if mixin == 1 + eor x21,x21,x22 +.endif + ld1 {v17.4s,v18.4s,v19.4s,v20.4s},[x1],#64 + ld1 {v21.4s,v22.4s,v23.4s,v24.4s},[x1],#64 +.inst 0x04b13000 //eor z0.d,z0.d,z17.d +.inst 0x04b23021 //eor z1.d,z1.d,z18.d +.inst 0x04b33042 //eor z2.d,z2.d,z19.d +.inst 0x04b43063 //eor z3.d,z3.d,z20.d +.inst 0x04b53084 //eor z4.d,z4.d,z21.d +.inst 0x04b630a5 //eor z5.d,z5.d,z22.d +.inst 0x04b730c6 //eor z6.d,z6.d,z23.d +.inst 0x04b830e7 //eor z7.d,z7.d,z24.d + ld1 {v17.4s,v18.4s,v19.4s,v20.4s},[x1],#64 + ld1 {v21.4s,v22.4s,v23.4s,v24.4s},[x1],#64 +.if mixin == 1 + stp x7,x9,[x0],#16 +.endif +.inst 0x04b13108 //eor z8.d,z8.d,z17.d +.inst 0x04b23129 //eor z9.d,z9.d,z18.d +.if mixin == 1 + stp x11,x13,[x0],#16 +.endif +.inst 0x04b3314a //eor z10.d,z10.d,z19.d +.inst 0x04b4316b //eor z11.d,z11.d,z20.d +.if mixin == 1 + stp x15,x17,[x0],#16 +.endif +.inst 0x04b5318c //eor z12.d,z12.d,z21.d +.inst 0x04b631ad //eor z13.d,z13.d,z22.d +.if mixin == 1 + stp x19,x21,[x0],#16 +.endif +.inst 0x04b731ce //eor z14.d,z14.d,z23.d +.inst 0x04b831ef //eor z15.d,z15.d,z24.d + st1 {v0.4s,v1.4s,v2.4s,v3.4s},[x0],#64 + st1 {v4.4s,v5.4s,v6.4s,v7.4s},[x0],#64 + st1 {v8.4s,v9.4s,v10.4s,v11.4s},[x0],#64 + st1 {v12.4s,v13.4s,v14.4s,v15.4s},[x0],#64 + b 210f +200: +.inst 0x05a16011 //zip1 z17.s,z0.s,z1.s +.inst 0x05a16412 //zip2 z18.s,z0.s,z1.s +.inst 0x05a36053 //zip1 z19.s,z2.s,z3.s +.inst 0x05a36454 //zip2 z20.s,z2.s,z3.s + +.inst 0x05a56095 //zip1 z21.s,z4.s,z5.s +.inst 0x05a56496 //zip2 z22.s,z4.s,z5.s +.inst 0x05a760d7 //zip1 z23.s,z6.s,z7.s +.inst 0x05a764d8 //zip2 z24.s,z6.s,z7.s + +.inst 0x05f36220 //zip1 z0.d,z17.d,z19.d +.inst 0x05f36621 //zip2 z1.d,z17.d,z19.d +.inst 0x05f46242 //zip1 z2.d,z18.d,z20.d +.inst 0x05f46643 //zip2 z3.d,z18.d,z20.d + +.inst 0x05f762a4 //zip1 z4.d,z21.d,z23.d +.inst 0x05f766a5 //zip2 z5.d,z21.d,z23.d +.inst 0x05f862c6 //zip1 z6.d,z22.d,z24.d +.inst 0x05f866c7 //zip2 z7.d,z22.d,z24.d +.if mixin == 1 + eor x7,x7,x8 +.endif +.if mixin == 1 + eor x9,x9,x10 +.endif +.inst 0x05a96111 //zip1 z17.s,z8.s,z9.s +.inst 0x05a96512 //zip2 z18.s,z8.s,z9.s +.inst 0x05ab6153 //zip1 z19.s,z10.s,z11.s +.inst 0x05ab6554 //zip2 z20.s,z10.s,z11.s + +.inst 0x05ad6195 //zip1 z21.s,z12.s,z13.s +.inst 0x05ad6596 //zip2 z22.s,z12.s,z13.s +.inst 0x05af61d7 //zip1 z23.s,z14.s,z15.s +.inst 0x05af65d8 //zip2 z24.s,z14.s,z15.s + +.inst 0x05f36228 //zip1 z8.d,z17.d,z19.d +.inst 0x05f36629 //zip2 z9.d,z17.d,z19.d +.inst 0x05f4624a //zip1 z10.d,z18.d,z20.d +.inst 0x05f4664b //zip2 z11.d,z18.d,z20.d + +.inst 0x05f762ac //zip1 z12.d,z21.d,z23.d +.inst 0x05f766ad //zip2 z13.d,z21.d,z23.d +.inst 0x05f862ce //zip1 z14.d,z22.d,z24.d +.inst 0x05f866cf //zip2 z15.d,z22.d,z24.d +.if mixin == 1 + eor x11,x11,x12 +.endif +.if mixin == 1 + eor x13,x13,x14 +.endif +.inst 0x05a46011 //zip1 z17.s,z0.s,z4.s +.inst 0x05a46412 //zip2 z18.s,z0.s,z4.s +.inst 0x05ac6113 //zip1 z19.s,z8.s,z12.s +.inst 0x05ac6514 //zip2 z20.s,z8.s,z12.s + +.inst 0x05a56035 //zip1 z21.s,z1.s,z5.s +.inst 0x05a56436 //zip2 z22.s,z1.s,z5.s +.inst 0x05ad6137 //zip1 z23.s,z9.s,z13.s +.inst 0x05ad6538 //zip2 z24.s,z9.s,z13.s + +.inst 0x05f36220 //zip1 z0.d,z17.d,z19.d +.inst 0x05f36624 //zip2 z4.d,z17.d,z19.d +.inst 0x05f46248 //zip1 z8.d,z18.d,z20.d +.inst 0x05f4664c //zip2 z12.d,z18.d,z20.d + +.inst 0x05f762a1 //zip1 z1.d,z21.d,z23.d +.inst 0x05f766a5 //zip2 z5.d,z21.d,z23.d +.inst 0x05f862c9 //zip1 z9.d,z22.d,z24.d +.inst 0x05f866cd //zip2 z13.d,z22.d,z24.d +.if mixin == 1 + eor x15,x15,x16 +.endif +.if mixin == 1 + eor x17,x17,x18 +.endif +.inst 0x05a66051 //zip1 z17.s,z2.s,z6.s +.inst 0x05a66452 //zip2 z18.s,z2.s,z6.s +.inst 0x05ae6153 //zip1 z19.s,z10.s,z14.s +.inst 0x05ae6554 //zip2 z20.s,z10.s,z14.s + +.inst 0x05a76075 //zip1 z21.s,z3.s,z7.s +.inst 0x05a76476 //zip2 z22.s,z3.s,z7.s +.inst 0x05af6177 //zip1 z23.s,z11.s,z15.s +.inst 0x05af6578 //zip2 z24.s,z11.s,z15.s + +.inst 0x05f36222 //zip1 z2.d,z17.d,z19.d +.inst 0x05f36626 //zip2 z6.d,z17.d,z19.d +.inst 0x05f4624a //zip1 z10.d,z18.d,z20.d +.inst 0x05f4664e //zip2 z14.d,z18.d,z20.d + +.inst 0x05f762a3 //zip1 z3.d,z21.d,z23.d +.inst 0x05f766a7 //zip2 z7.d,z21.d,z23.d +.inst 0x05f862cb //zip1 z11.d,z22.d,z24.d +.inst 0x05f866cf //zip2 z15.d,z22.d,z24.d +.if mixin == 1 + eor x19,x19,x20 +.endif +.if mixin == 1 + eor x21,x21,x22 +.endif +.inst 0xa540a031 //ld1w {z17.s},p0/z,[x1,#0,MUL VL] +.inst 0xa541a032 //ld1w {z18.s},p0/z,[x1,#1,MUL VL] +.inst 0xa542a033 //ld1w {z19.s},p0/z,[x1,#2,MUL VL] +.inst 0xa543a034 //ld1w {z20.s},p0/z,[x1,#3,MUL VL] +.inst 0xa544a035 //ld1w {z21.s},p0/z,[x1,#4,MUL VL] +.inst 0xa545a036 //ld1w {z22.s},p0/z,[x1,#5,MUL VL] +.inst 0xa546a037 //ld1w {z23.s},p0/z,[x1,#6,MUL VL] +.inst 0xa547a038 //ld1w {z24.s},p0/z,[x1,#7,MUL VL] +.inst 0x04215101 //addvl x1,x1,8 +.inst 0x04b13000 //eor z0.d,z0.d,z17.d +.inst 0x04b23084 //eor z4.d,z4.d,z18.d +.inst 0x04b33108 //eor z8.d,z8.d,z19.d +.inst 0x04b4318c //eor z12.d,z12.d,z20.d +.inst 0x04b53021 //eor z1.d,z1.d,z21.d +.inst 0x04b630a5 //eor z5.d,z5.d,z22.d +.inst 0x04b73129 //eor z9.d,z9.d,z23.d +.inst 0x04b831ad //eor z13.d,z13.d,z24.d +.inst 0xa540a031 //ld1w {z17.s},p0/z,[x1,#0,MUL VL] +.inst 0xa541a032 //ld1w {z18.s},p0/z,[x1,#1,MUL VL] +.inst 0xa542a033 //ld1w {z19.s},p0/z,[x1,#2,MUL VL] +.inst 0xa543a034 //ld1w {z20.s},p0/z,[x1,#3,MUL VL] +.inst 0xa544a035 //ld1w {z21.s},p0/z,[x1,#4,MUL VL] +.inst 0xa545a036 //ld1w {z22.s},p0/z,[x1,#5,MUL VL] +.inst 0xa546a037 //ld1w {z23.s},p0/z,[x1,#6,MUL VL] +.inst 0xa547a038 //ld1w {z24.s},p0/z,[x1,#7,MUL VL] +.inst 0x04215101 //addvl x1,x1,8 +.if mixin == 1 + stp x7,x9,[x0],#16 +.endif +.inst 0x04b13042 //eor z2.d,z2.d,z17.d +.inst 0x04b230c6 //eor z6.d,z6.d,z18.d +.if mixin == 1 + stp x11,x13,[x0],#16 +.endif +.inst 0x04b3314a //eor z10.d,z10.d,z19.d +.inst 0x04b431ce //eor z14.d,z14.d,z20.d +.if mixin == 1 + stp x15,x17,[x0],#16 +.endif +.inst 0x04b53063 //eor z3.d,z3.d,z21.d +.inst 0x04b630e7 //eor z7.d,z7.d,z22.d +.if mixin == 1 + stp x19,x21,[x0],#16 +.endif +.inst 0x04b7316b //eor z11.d,z11.d,z23.d +.inst 0x04b831ef //eor z15.d,z15.d,z24.d +.inst 0xe540e000 //st1w {z0.s},p0,[x0,#0,MUL VL] +.inst 0xe541e004 //st1w {z4.s},p0,[x0,#1,MUL VL] +.inst 0xe542e008 //st1w {z8.s},p0,[x0,#2,MUL VL] +.inst 0xe543e00c //st1w {z12.s},p0,[x0,#3,MUL VL] +.inst 0xe544e001 //st1w {z1.s},p0,[x0,#4,MUL VL] +.inst 0xe545e005 //st1w {z5.s},p0,[x0,#5,MUL VL] +.inst 0xe546e009 //st1w {z9.s},p0,[x0,#6,MUL VL] +.inst 0xe547e00d //st1w {z13.s},p0,[x0,#7,MUL VL] +.inst 0x04205100 //addvl x0,x0,8 +.inst 0xe540e002 //st1w {z2.s},p0,[x0,#0,MUL VL] +.inst 0xe541e006 //st1w {z6.s},p0,[x0,#1,MUL VL] +.inst 0xe542e00a //st1w {z10.s},p0,[x0,#2,MUL VL] +.inst 0xe543e00e //st1w {z14.s},p0,[x0,#3,MUL VL] +.inst 0xe544e003 //st1w {z3.s},p0,[x0,#4,MUL VL] +.inst 0xe545e007 //st1w {z7.s},p0,[x0,#5,MUL VL] +.inst 0xe546e00b //st1w {z11.s},p0,[x0,#6,MUL VL] +.inst 0xe547e00f //st1w {z15.s},p0,[x0,#7,MUL VL] +.inst 0x04205100 //addvl x0,x0,8 +210: +.inst 0x04b0e3fd //incw x29, ALL, MUL #1 +110: +2: + str w29,[x4] + ldp d10,d11,[sp,16] + ldp d12,d13,[sp,32] + ldp d14,d15,[sp,48] + ldp x16,x17,[sp,64] + ldp x18,x19,[sp,80] + ldp x20,x21,[sp,96] + ldp x22,x23,[sp,112] + ldp x24,x25,[sp,128] + ldp x26,x27,[sp,144] + ldp x28,x29,[sp,160] + ldr x30,[sp,176] + ldp d8,d9,[sp],192 + AARCH64_VALIDATE_LINK_REGISTER +.Lreturn: + ret +.size ChaCha20_ctr32_sve,.-ChaCha20_ctr32_sve diff --git a/deps/openssl/config/archs/linux-aarch64/asm/crypto/chacha/chacha-armv8.S b/deps/openssl/config/archs/linux-aarch64/asm/crypto/chacha/chacha-armv8.S index 66eb96ec57bbb3..ca9d709ed67055 100644 --- a/deps/openssl/config/archs/linux-aarch64/asm/crypto/chacha/chacha-armv8.S +++ b/deps/openssl/config/archs/linux-aarch64/asm/crypto/chacha/chacha-armv8.S @@ -1,10 +1,12 @@ +#include "arm_arch.h" #ifndef __KERNEL__ -# include "arm_arch.h" .hidden OPENSSL_armcap_P + + #endif -.text +.section .rodata .align 5 .Lsigma: @@ -16,27 +18,29 @@ .byte 67,104,97,67,104,97,50,48,32,102,111,114,32,65,82,77,118,56,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,64,100,111,116,45,97,115,109,0 .align 2 -.globl ChaCha20_ctr32 -.type ChaCha20_ctr32,%function +.text + +.globl ChaCha20_ctr32_dflt +.type ChaCha20_ctr32_dflt,%function .align 5 -ChaCha20_ctr32: - cbz x2,.Labort +ChaCha20_ctr32_dflt: + AARCH64_SIGN_LINK_REGISTER cmp x2,#192 b.lo .Lshort - #ifndef __KERNEL__ adrp x17,OPENSSL_armcap_P ldr w17,[x17,#:lo12:OPENSSL_armcap_P] +.Lcheck_neon: tst w17,#ARMV7_NEON b.ne .LChaCha20_neon #endif .Lshort: -.inst 0xd503233f // paciasp stp x29,x30,[sp,#-96]! add x29,sp,#0 - adr x5,.Lsigma + adrp x5,.Lsigma + add x5,x5,#:lo12:.Lsigma stp x19,x20,[sp,#16] stp x21,x22,[sp,#32] stp x23,x24,[sp,#48] @@ -244,8 +248,8 @@ ChaCha20_ctr32: ldp x25,x26,[x29,#64] ldp x27,x28,[x29,#80] ldp x29,x30,[sp],#96 -.inst 0xd50323bf // autiasp .Labort: + AARCH64_VALIDATE_LINK_REGISTER ret .align 4 @@ -301,8 +305,43 @@ ChaCha20_ctr32: ldp x25,x26,[x29,#64] ldp x27,x28,[x29,#80] ldp x29,x30,[sp],#96 -.inst 0xd50323bf // autiasp + AARCH64_VALIDATE_LINK_REGISTER ret +.size ChaCha20_ctr32_dflt,.-ChaCha20_ctr32_dflt + +.globl ChaCha20_ctr32 +.type ChaCha20_ctr32,%function +.align 5 +ChaCha20_ctr32: + AARCH64_SIGN_LINK_REGISTER + cbz x2,.Labort + cmp x2,#192 + b.lo .Lshort +#ifndef __KERNEL__ + adrp x17,OPENSSL_armcap_P + ldr w17,[x17,#:lo12:OPENSSL_armcap_P] + tst w17,#ARMV8_SVE + b.eq .Lcheck_neon + stp x29,x30,[sp,#-16]! + sub sp,sp,#16 + // SVE handling will inevitably increment the counter + // Neon/Scalar code that follows to process tail data needs to + // use new counter, unfortunately the input counter buffer + // pointed to by ctr is meant to be read-only per API contract + // we have to copy the buffer to stack to be writable by SVE + ldp x5,x6,[x4] + stp x5,x6,[sp] + mov x4,sp + bl ChaCha20_ctr32_sve + cbz x2,1f + bl ChaCha20_ctr32_dflt +1: + add sp,sp,#16 + ldp x29,x30,[sp],#16 + AARCH64_VALIDATE_LINK_REGISTER + ret +#endif + b .Lshort .size ChaCha20_ctr32,.-ChaCha20_ctr32 #ifdef __KERNEL__ @@ -311,12 +350,13 @@ ChaCha20_ctr32: .type ChaCha20_neon,%function .align 5 ChaCha20_neon: + AARCH64_SIGN_LINK_REGISTER .LChaCha20_neon: -.inst 0xd503233f // paciasp stp x29,x30,[sp,#-96]! add x29,sp,#0 - adr x5,.Lsigma + adrp x5,.Lsigma + add x5,x5,#:lo12:.Lsigma stp x19,x20,[sp,#16] stp x21,x22,[sp,#32] stp x23,x24,[sp,#48] @@ -747,7 +787,7 @@ ChaCha20_neon: ldp x25,x26,[x29,#64] ldp x27,x28,[x29,#80] ldp x29,x30,[sp],#96 -.inst 0xd50323bf // autiasp + AARCH64_VALIDATE_LINK_REGISTER ret .align 4 @@ -879,17 +919,18 @@ ChaCha20_neon: ldp x25,x26,[x29,#64] ldp x27,x28,[x29,#80] ldp x29,x30,[sp],#96 -.inst 0xd50323bf // autiasp + AARCH64_VALIDATE_LINK_REGISTER ret .size ChaCha20_neon,.-ChaCha20_neon .type ChaCha20_512_neon,%function .align 5 ChaCha20_512_neon: -.inst 0xd503233f // paciasp + AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-96]! add x29,sp,#0 - adr x5,.Lsigma + adrp x5,.Lsigma + add x5,x5,#:lo12:.Lsigma stp x19,x20,[sp,#16] stp x21,x22,[sp,#32] stp x23,x24,[sp,#48] @@ -2029,6 +2070,6 @@ ChaCha20_512_neon: ldp x25,x26,[x29,#64] ldp x27,x28,[x29,#80] ldp x29,x30,[sp],#96 -.inst 0xd50323bf // autiasp + AARCH64_VALIDATE_LINK_REGISTER ret .size ChaCha20_512_neon,.-ChaCha20_512_neon diff --git a/deps/openssl/config/archs/linux-aarch64/asm/crypto/ec/ecp_nistz256-armv8.S b/deps/openssl/config/archs/linux-aarch64/asm/crypto/ec/ecp_nistz256-armv8.S index e7230f81f69ca0..5e97928ee12245 100644 --- a/deps/openssl/config/archs/linux-aarch64/asm/crypto/ec/ecp_nistz256-armv8.S +++ b/deps/openssl/config/archs/linux-aarch64/asm/crypto/ec/ecp_nistz256-armv8.S @@ -1,6 +1,6 @@ #include "arm_arch.h" -.text +.section .rodata .globl ecp_nistz256_precomputed .type ecp_nistz256_precomputed,%object .align 12 @@ -2390,28 +2390,34 @@ ecp_nistz256_precomputed: .byte 69,67,80,95,78,73,83,84,90,50,53,54,32,102,111,114,32,65,82,77,118,56,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 .align 2 +.text + // void ecp_nistz256_to_mont(BN_ULONG x0[4],const BN_ULONG x1[4]); .globl ecp_nistz256_to_mont .type ecp_nistz256_to_mont,%function .align 6 ecp_nistz256_to_mont: -.inst 0xd503233f // paciasp + AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-32]! add x29,sp,#0 stp x19,x20,[sp,#16] - ldr x3,.LRR // bp[0] + adrp x3,.LRR + ldr x3,[x3,#:lo12:.LRR] // bp[0] ldp x4,x5,[x1] ldp x6,x7,[x1,#16] - ldr x12,.Lpoly+8 - ldr x13,.Lpoly+24 - adr x2,.LRR // &bp[0] + adrp x13,.Lpoly + add x13,x13,#:lo12:.Lpoly + ldr x12,[x13,#8] + ldr x13,[x13,#24] + adrp x2,.LRR + add x2,x2,#:lo12:.LRR bl __ecp_nistz256_mul_mont ldp x19,x20,[sp,#16] ldp x29,x30,[sp],#32 -.inst 0xd50323bf // autiasp + AARCH64_VALIDATE_LINK_REGISTER ret .size ecp_nistz256_to_mont,.-ecp_nistz256_to_mont @@ -2420,7 +2426,7 @@ ecp_nistz256_to_mont: .type ecp_nistz256_from_mont,%function .align 4 ecp_nistz256_from_mont: -.inst 0xd503233f // paciasp + AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-32]! add x29,sp,#0 stp x19,x20,[sp,#16] @@ -2428,15 +2434,18 @@ ecp_nistz256_from_mont: mov x3,#1 // bp[0] ldp x4,x5,[x1] ldp x6,x7,[x1,#16] - ldr x12,.Lpoly+8 - ldr x13,.Lpoly+24 - adr x2,.Lone // &bp[0] + adrp x13,.Lpoly + add x13,x13,#:lo12:.Lpoly + ldr x12,[x13,#8] + ldr x13,[x13,#24] + adrp x2,.Lone + add x2,x2,#:lo12:.Lone bl __ecp_nistz256_mul_mont ldp x19,x20,[sp,#16] ldp x29,x30,[sp],#32 -.inst 0xd50323bf // autiasp + AARCH64_VALIDATE_LINK_REGISTER ret .size ecp_nistz256_from_mont,.-ecp_nistz256_from_mont @@ -2446,7 +2455,7 @@ ecp_nistz256_from_mont: .type ecp_nistz256_mul_mont,%function .align 4 ecp_nistz256_mul_mont: -.inst 0xd503233f // paciasp + AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-32]! add x29,sp,#0 stp x19,x20,[sp,#16] @@ -2454,14 +2463,16 @@ ecp_nistz256_mul_mont: ldr x3,[x2] // bp[0] ldp x4,x5,[x1] ldp x6,x7,[x1,#16] - ldr x12,.Lpoly+8 - ldr x13,.Lpoly+24 + adrp x13,.Lpoly + add x13,x13,#:lo12:.Lpoly + ldr x12,[x13,#8] + ldr x13,[x13,#24] bl __ecp_nistz256_mul_mont ldp x19,x20,[sp,#16] ldp x29,x30,[sp],#32 -.inst 0xd50323bf // autiasp + AARCH64_VALIDATE_LINK_REGISTER ret .size ecp_nistz256_mul_mont,.-ecp_nistz256_mul_mont @@ -2470,21 +2481,23 @@ ecp_nistz256_mul_mont: .type ecp_nistz256_sqr_mont,%function .align 4 ecp_nistz256_sqr_mont: -.inst 0xd503233f // paciasp + AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-32]! add x29,sp,#0 stp x19,x20,[sp,#16] ldp x4,x5,[x1] ldp x6,x7,[x1,#16] - ldr x12,.Lpoly+8 - ldr x13,.Lpoly+24 + adrp x13,.Lpoly + add x13,x13,#:lo12:.Lpoly + ldr x12,[x13,#8] + ldr x13,[x13,#24] bl __ecp_nistz256_sqr_mont ldp x19,x20,[sp,#16] ldp x29,x30,[sp],#32 -.inst 0xd50323bf // autiasp + AARCH64_VALIDATE_LINK_REGISTER ret .size ecp_nistz256_sqr_mont,.-ecp_nistz256_sqr_mont @@ -2494,7 +2507,7 @@ ecp_nistz256_sqr_mont: .type ecp_nistz256_add,%function .align 4 ecp_nistz256_add: -.inst 0xd503233f // paciasp + AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-16]! add x29,sp,#0 @@ -2502,13 +2515,15 @@ ecp_nistz256_add: ldp x8,x9,[x2] ldp x16,x17,[x1,#16] ldp x10,x11,[x2,#16] - ldr x12,.Lpoly+8 - ldr x13,.Lpoly+24 + adrp x13,.Lpoly + add x13,x13,#:lo12:.Lpoly + ldr x12,[x13,#8] + ldr x13,[x13,#24] bl __ecp_nistz256_add ldp x29,x30,[sp],#16 -.inst 0xd50323bf // autiasp + AARCH64_VALIDATE_LINK_REGISTER ret .size ecp_nistz256_add,.-ecp_nistz256_add @@ -2517,19 +2532,21 @@ ecp_nistz256_add: .type ecp_nistz256_div_by_2,%function .align 4 ecp_nistz256_div_by_2: -.inst 0xd503233f // paciasp + AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-16]! add x29,sp,#0 ldp x14,x15,[x1] ldp x16,x17,[x1,#16] - ldr x12,.Lpoly+8 - ldr x13,.Lpoly+24 + adrp x13,.Lpoly + add x13,x13,#:lo12:.Lpoly + ldr x12,[x13,#8] + ldr x13,[x13,#24] bl __ecp_nistz256_div_by_2 ldp x29,x30,[sp],#16 -.inst 0xd50323bf // autiasp + AARCH64_VALIDATE_LINK_REGISTER ret .size ecp_nistz256_div_by_2,.-ecp_nistz256_div_by_2 @@ -2538,14 +2555,16 @@ ecp_nistz256_div_by_2: .type ecp_nistz256_mul_by_2,%function .align 4 ecp_nistz256_mul_by_2: -.inst 0xd503233f // paciasp + AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-16]! add x29,sp,#0 ldp x14,x15,[x1] ldp x16,x17,[x1,#16] - ldr x12,.Lpoly+8 - ldr x13,.Lpoly+24 + adrp x13,.Lpoly + add x13,x13,#:lo12:.Lpoly + ldr x12,[x13,#8] + ldr x13,[x13,#24] mov x8,x14 mov x9,x15 mov x10,x16 @@ -2554,7 +2573,7 @@ ecp_nistz256_mul_by_2: bl __ecp_nistz256_add // ret = a+a // 2*a ldp x29,x30,[sp],#16 -.inst 0xd50323bf // autiasp + AARCH64_VALIDATE_LINK_REGISTER ret .size ecp_nistz256_mul_by_2,.-ecp_nistz256_mul_by_2 @@ -2563,14 +2582,16 @@ ecp_nistz256_mul_by_2: .type ecp_nistz256_mul_by_3,%function .align 4 ecp_nistz256_mul_by_3: -.inst 0xd503233f // paciasp + AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-16]! add x29,sp,#0 ldp x14,x15,[x1] ldp x16,x17,[x1,#16] - ldr x12,.Lpoly+8 - ldr x13,.Lpoly+24 + adrp x13,.Lpoly + add x13,x13,#:lo12:.Lpoly + ldr x12,[x13,#8] + ldr x13,[x13,#24] mov x8,x14 mov x9,x15 mov x10,x16 @@ -2590,7 +2611,7 @@ ecp_nistz256_mul_by_3: bl __ecp_nistz256_add // ret += a // 2*a+a=3*a ldp x29,x30,[sp],#16 -.inst 0xd50323bf // autiasp + AARCH64_VALIDATE_LINK_REGISTER ret .size ecp_nistz256_mul_by_3,.-ecp_nistz256_mul_by_3 @@ -2600,19 +2621,21 @@ ecp_nistz256_mul_by_3: .type ecp_nistz256_sub,%function .align 4 ecp_nistz256_sub: -.inst 0xd503233f // paciasp + AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-16]! add x29,sp,#0 ldp x14,x15,[x1] ldp x16,x17,[x1,#16] - ldr x12,.Lpoly+8 - ldr x13,.Lpoly+24 + adrp x13,.Lpoly + add x13,x13,#:lo12:.Lpoly + ldr x12,[x13,#8] + ldr x13,[x13,#24] bl __ecp_nistz256_sub_from ldp x29,x30,[sp],#16 -.inst 0xd50323bf // autiasp + AARCH64_VALIDATE_LINK_REGISTER ret .size ecp_nistz256_sub,.-ecp_nistz256_sub @@ -2621,7 +2644,7 @@ ecp_nistz256_sub: .type ecp_nistz256_neg,%function .align 4 ecp_nistz256_neg: -.inst 0xd503233f // paciasp + AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-16]! add x29,sp,#0 @@ -2630,13 +2653,15 @@ ecp_nistz256_neg: mov x15,xzr mov x16,xzr mov x17,xzr - ldr x12,.Lpoly+8 - ldr x13,.Lpoly+24 + adrp x13,.Lpoly + add x13,x13,#:lo12:.Lpoly + ldr x12,[x13,#8] + ldr x13,[x13,#24] bl __ecp_nistz256_sub_from ldp x29,x30,[sp],#16 -.inst 0xd50323bf // autiasp + AARCH64_VALIDATE_LINK_REGISTER ret .size ecp_nistz256_neg,.-ecp_nistz256_neg @@ -3014,7 +3039,7 @@ __ecp_nistz256_div_by_2: .type ecp_nistz256_point_double,%function .align 5 ecp_nistz256_point_double: -.inst 0xd503233f // paciasp + AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-96]! add x29,sp,#0 stp x19,x20,[sp,#16] @@ -3026,9 +3051,11 @@ ecp_nistz256_point_double: mov x21,x0 ldp x16,x17,[x1,#48] mov x22,x1 - ldr x12,.Lpoly+8 + adrp x13,.Lpoly + add x13,x13,#:lo12:.Lpoly + ldr x12,[x13,#8] mov x8,x14 - ldr x13,.Lpoly+24 + ldr x13,[x13,#24] mov x9,x15 ldp x4,x5,[x22,#64] // forward load for p256_sqr_mont mov x10,x16 @@ -3149,14 +3176,14 @@ ecp_nistz256_point_double: ldp x19,x20,[x29,#16] ldp x21,x22,[x29,#32] ldp x29,x30,[sp],#96 -.inst 0xd50323bf // autiasp + AARCH64_VALIDATE_LINK_REGISTER ret .size ecp_nistz256_point_double,.-ecp_nistz256_point_double .globl ecp_nistz256_point_add .type ecp_nistz256_point_add,%function .align 5 ecp_nistz256_point_add: -.inst 0xd503233f // paciasp + AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-96]! add x29,sp,#0 stp x19,x20,[sp,#16] @@ -3171,8 +3198,10 @@ ecp_nistz256_point_add: mov x21,x0 mov x22,x1 mov x23,x2 - ldr x12,.Lpoly+8 - ldr x13,.Lpoly+24 + adrp x13,.Lpoly + add x13,x13,#:lo12:.Lpoly + ldr x12,[x13,#8] + ldr x13,[x13,#24] orr x8,x4,x5 orr x10,x6,x7 orr x25,x8,x10 @@ -3403,14 +3432,14 @@ ecp_nistz256_point_add: ldp x25,x26,[x29,#64] ldp x27,x28,[x29,#80] ldp x29,x30,[sp],#96 -.inst 0xd50323bf // autiasp + AARCH64_VALIDATE_LINK_REGISTER ret .size ecp_nistz256_point_add,.-ecp_nistz256_point_add .globl ecp_nistz256_point_add_affine .type ecp_nistz256_point_add_affine,%function .align 5 ecp_nistz256_point_add_affine: -.inst 0xd503233f // paciasp + AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-80]! add x29,sp,#0 stp x19,x20,[sp,#16] @@ -3422,8 +3451,10 @@ ecp_nistz256_point_add_affine: mov x21,x0 mov x22,x1 mov x23,x2 - ldr x12,.Lpoly+8 - ldr x13,.Lpoly+24 + adrp x13,.Lpoly + add x13,x13,#:lo12:.Lpoly + ldr x12,[x13,#8] + ldr x13,[x13,#24] ldp x4,x5,[x1,#64] // in1_z ldp x6,x7,[x1,#64+16] @@ -3569,7 +3600,8 @@ ecp_nistz256_point_add_affine: ldp x10,x11,[x23,#0+48] stp x14,x15,[x21,#0] stp x16,x17,[x21,#0+16] - adr x23,.Lone_mont-64 + adrp x23,.Lone_mont-64 + add x23,x23,#:lo12:.Lone_mont-64 ldp x14,x15,[x22,#32] // in1 cmp x24,#0 // ~, remember? ldp x16,x17,[x22,#32+16] @@ -3609,7 +3641,7 @@ ecp_nistz256_point_add_affine: ldp x23,x24,[x29,#48] ldp x25,x26,[x29,#64] ldp x29,x30,[sp],#80 -.inst 0xd50323bf // autiasp + AARCH64_VALIDATE_LINK_REGISTER ret .size ecp_nistz256_point_add_affine,.-ecp_nistz256_point_add_affine //////////////////////////////////////////////////////////////////////// @@ -3619,13 +3651,16 @@ ecp_nistz256_point_add_affine: .type ecp_nistz256_ord_mul_mont,%function .align 4 ecp_nistz256_ord_mul_mont: + AARCH64_VALID_CALL_TARGET + // Armv8.3-A PAuth: even though x30 is pushed to stack it is not popped later. stp x29,x30,[sp,#-64]! add x29,sp,#0 stp x19,x20,[sp,#16] stp x21,x22,[sp,#32] stp x23,x24,[sp,#48] - adr x23,.Lord + adrp x23,.Lord + add x23,x23,#:lo12:.Lord ldr x3,[x2] // bp[0] ldp x4,x5,[x1] ldp x6,x7,[x1,#16] @@ -3827,13 +3862,16 @@ ecp_nistz256_ord_mul_mont: .type ecp_nistz256_ord_sqr_mont,%function .align 4 ecp_nistz256_ord_sqr_mont: + AARCH64_VALID_CALL_TARGET + // Armv8.3-A PAuth: even though x30 is pushed to stack it is not popped later. stp x29,x30,[sp,#-64]! add x29,sp,#0 stp x19,x20,[sp,#16] stp x21,x22,[sp,#32] stp x23,x24,[sp,#48] - adr x23,.Lord + adrp x23,.Lord + add x23,x23,#:lo12:.Lord ldp x4,x5,[x1] ldp x6,x7,[x1,#16] @@ -4015,6 +4053,8 @@ ecp_nistz256_ord_sqr_mont: .type ecp_nistz256_scatter_w5,%function .align 4 ecp_nistz256_scatter_w5: + AARCH64_VALID_CALL_TARGET + // Armv8.3-A PAuth: even though x30 is pushed to stack it is not popped later. stp x29,x30,[sp,#-16]! add x29,sp,#0 @@ -4077,6 +4117,8 @@ ecp_nistz256_scatter_w5: .type ecp_nistz256_gather_w5,%function .align 4 ecp_nistz256_gather_w5: + AARCH64_VALID_CALL_TARGET + // Armv8.3-A PAuth: even though x30 is pushed to stack it is not popped later. stp x29,x30,[sp,#-16]! add x29,sp,#0 @@ -4154,6 +4196,8 @@ ecp_nistz256_gather_w5: .type ecp_nistz256_scatter_w7,%function .align 4 ecp_nistz256_scatter_w7: + AARCH64_VALID_CALL_TARGET + // Armv8.3-A PAuth: even though x30 is pushed to stack it is not popped later. stp x29,x30,[sp,#-16]! add x29,sp,#0 @@ -4198,6 +4242,8 @@ ecp_nistz256_scatter_w7: .type ecp_nistz256_gather_w7,%function .align 4 ecp_nistz256_gather_w7: + AARCH64_VALID_CALL_TARGET + // Armv8.3-A PAuth: even though x30 is pushed to stack it is not popped later. stp x29,x30,[sp,#-16]! add x29,sp,#0 diff --git a/deps/openssl/config/archs/linux-aarch64/asm/crypto/ec/ecp_sm2p256-armv8.S b/deps/openssl/config/archs/linux-aarch64/asm/crypto/ec/ecp_sm2p256-armv8.S new file mode 100644 index 00000000000000..50497f60a699e6 --- /dev/null +++ b/deps/openssl/config/archs/linux-aarch64/asm/crypto/ec/ecp_sm2p256-armv8.S @@ -0,0 +1,836 @@ +#include "arm_arch.h" +.arch armv8-a +.section .rodata + +.align 5 +// The polynomial p +.Lpoly: +.quad 0xffffffffffffffff,0xffffffff00000000,0xffffffffffffffff,0xfffffffeffffffff +// The order of polynomial n +.Lord: +.quad 0x53bbf40939d54123,0x7203df6b21c6052b,0xffffffffffffffff,0xfffffffeffffffff +// (p + 1) / 2 +.Lpoly_div_2: +.quad 0x8000000000000000,0xffffffff80000000,0xffffffffffffffff,0x7fffffff7fffffff +// (n + 1) / 2 +.Lord_div_2: +.quad 0xa9ddfa049ceaa092,0xb901efb590e30295,0xffffffffffffffff,0x7fffffff7fffffff + +.text + +// void bn_rshift1(BN_ULONG *a); +.globl bn_rshift1 +.type bn_rshift1,%function +.align 5 +bn_rshift1: + AARCH64_VALID_CALL_TARGET + // Load inputs + ldp x7,x8,[x0] + ldp x9,x10,[x0,#16] + + // Right shift + extr x7,x8,x7,#1 + extr x8,x9,x8,#1 + extr x9,x10,x9,#1 + lsr x10,x10,#1 + + // Store results + stp x7,x8,[x0] + stp x9,x10,[x0,#16] + + ret +.size bn_rshift1,.-bn_rshift1 + +// void bn_sub(BN_ULONG *r, const BN_ULONG *a, const BN_ULONG *b); +.globl bn_sub +.type bn_sub,%function +.align 5 +bn_sub: + AARCH64_VALID_CALL_TARGET + // Load inputs + ldp x7,x8,[x1] + ldp x9,x10,[x1,#16] + ldp x11,x12,[x2] + ldp x13,x14,[x2,#16] + + // Subtraction + subs x7,x7,x11 + sbcs x8,x8,x12 + sbcs x9,x9,x13 + sbc x10,x10,x14 + + // Store results + stp x7,x8,[x0] + stp x9,x10,[x0,#16] + + ret +.size bn_sub,.-bn_sub + +// void ecp_sm2p256_div_by_2(BN_ULONG *r,const BN_ULONG *a); +.globl ecp_sm2p256_div_by_2 +.type ecp_sm2p256_div_by_2,%function +.align 5 +ecp_sm2p256_div_by_2: + AARCH64_VALID_CALL_TARGET + // Load inputs + ldp x7,x8,[x1] + ldp x9,x10,[x1,#16] + + // Save the least significant bit + mov x3,x7 + + // Right shift 1 + extr x7,x8,x7,#1 + extr x8,x9,x8,#1 + extr x9,x10,x9,#1 + lsr x10,x10,#1 + + // Load mod + adrp x2,.Lpoly_div_2 + add x2,x2,#:lo12:.Lpoly_div_2 + ldp x11,x12,[x2] + ldp x13,x14,[x2,#16] + + // Parity check + tst x3,#1 + csel x11,xzr,x11,eq + csel x12,xzr,x12,eq + csel x13,xzr,x13,eq + csel x14,xzr,x14,eq + + // Add + adds x7,x7,x11 + adcs x8,x8,x12 + adcs x9,x9,x13 + adc x10,x10,x14 + + // Store results + stp x7,x8,[x0] + stp x9,x10,[x0,#16] + ret +.size ecp_sm2p256_div_by_2,.-ecp_sm2p256_div_by_2 + +// void ecp_sm2p256_div_by_2_mod_ord(BN_ULONG *r,const BN_ULONG *a); +.globl ecp_sm2p256_div_by_2_mod_ord +.type ecp_sm2p256_div_by_2_mod_ord,%function +.align 5 +ecp_sm2p256_div_by_2_mod_ord: + AARCH64_VALID_CALL_TARGET + // Load inputs + ldp x7,x8,[x1] + ldp x9,x10,[x1,#16] + + // Save the least significant bit + mov x3,x7 + + // Right shift 1 + extr x7,x8,x7,#1 + extr x8,x9,x8,#1 + extr x9,x10,x9,#1 + lsr x10,x10,#1 + + // Load mod + adrp x2,.Lord_div_2 + add x2,x2,#:lo12:.Lord_div_2 + ldp x11,x12,[x2] + ldp x13,x14,[x2,#16] + + // Parity check + tst x3,#1 + csel x11,xzr,x11,eq + csel x12,xzr,x12,eq + csel x13,xzr,x13,eq + csel x14,xzr,x14,eq + + // Add + adds x7,x7,x11 + adcs x8,x8,x12 + adcs x9,x9,x13 + adc x10,x10,x14 + + // Store results + stp x7,x8,[x0] + stp x9,x10,[x0,#16] + ret +.size ecp_sm2p256_div_by_2_mod_ord,.-ecp_sm2p256_div_by_2_mod_ord + +// void ecp_sm2p256_mul_by_3(BN_ULONG *r,const BN_ULONG *a); +.globl ecp_sm2p256_mul_by_3 +.type ecp_sm2p256_mul_by_3,%function +.align 5 +ecp_sm2p256_mul_by_3: + AARCH64_VALID_CALL_TARGET + // Load inputs + ldp x7,x8,[x1] + ldp x9,x10,[x1,#16] + + // 2*a + adds x7,x7,x7 + adcs x8,x8,x8 + adcs x9,x9,x9 + adcs x10,x10,x10 + adcs x15,xzr,xzr + + mov x3,x7 + mov x4,x8 + mov x5,x9 + mov x6,x10 + + // Sub polynomial + adrp x2,.Lpoly + add x2,x2,#:lo12:.Lpoly + ldp x11,x12,[x2] + ldp x13,x14,[x2,#16] + subs x7,x7,x11 + sbcs x8,x8,x12 + sbcs x9,x9,x13 + sbcs x10,x10,x14 + sbcs x15,x15,xzr + + csel x7,x7,x3,cs + csel x8,x8,x4,cs + csel x9,x9,x5,cs + csel x10,x10,x6,cs + eor x15,x15,x15 + + // 3*a + ldp x11,x12,[x1] + ldp x13,x14,[x1,#16] + adds x7,x7,x11 + adcs x8,x8,x12 + adcs x9,x9,x13 + adcs x10,x10,x14 + adcs x15,xzr,xzr + + mov x3,x7 + mov x4,x8 + mov x5,x9 + mov x6,x10 + + // Sub polynomial + adrp x2,.Lpoly + add x2,x2,#:lo12:.Lpoly + ldp x11,x12,[x2] + ldp x13,x14,[x2,#16] + subs x7,x7,x11 + sbcs x8,x8,x12 + sbcs x9,x9,x13 + sbcs x10,x10,x14 + sbcs x15,x15,xzr + + csel x7,x7,x3,cs + csel x8,x8,x4,cs + csel x9,x9,x5,cs + csel x10,x10,x6,cs + + // Store results + stp x7,x8,[x0] + stp x9,x10,[x0,#16] + + ret +.size ecp_sm2p256_mul_by_3,.-ecp_sm2p256_mul_by_3 + +// void ecp_sm2p256_add(BN_ULONG *r,const BN_ULONG *a,const BN_ULONG *b); +.globl ecp_sm2p256_add +.type ecp_sm2p256_add,%function +.align 5 +ecp_sm2p256_add: + AARCH64_VALID_CALL_TARGET + // Load inputs + ldp x7,x8,[x1] + ldp x9,x10,[x1,#16] + ldp x11,x12,[x2] + ldp x13,x14,[x2,#16] + + // Addition + adds x7,x7,x11 + adcs x8,x8,x12 + adcs x9,x9,x13 + adcs x10,x10,x14 + adc x15,xzr,xzr + + // Load polynomial + adrp x2,.Lpoly + add x2,x2,#:lo12:.Lpoly + ldp x11,x12,[x2] + ldp x13,x14,[x2,#16] + + // Backup Addition + mov x3,x7 + mov x4,x8 + mov x5,x9 + mov x6,x10 + + // Sub polynomial + subs x3,x3,x11 + sbcs x4,x4,x12 + sbcs x5,x5,x13 + sbcs x6,x6,x14 + sbcs x15,x15,xzr + + // Select based on carry + csel x7,x7,x3,cc + csel x8,x8,x4,cc + csel x9,x9,x5,cc + csel x10,x10,x6,cc + + // Store results + stp x7,x8,[x0] + stp x9,x10,[x0,#16] + ret +.size ecp_sm2p256_add,.-ecp_sm2p256_add + +// void ecp_sm2p256_sub(BN_ULONG *r,const BN_ULONG *a,const BN_ULONG *b); +.globl ecp_sm2p256_sub +.type ecp_sm2p256_sub,%function +.align 5 +ecp_sm2p256_sub: + AARCH64_VALID_CALL_TARGET + // Load inputs + ldp x7,x8,[x1] + ldp x9,x10,[x1,#16] + ldp x11,x12,[x2] + ldp x13,x14,[x2,#16] + + // Subtraction + subs x7,x7,x11 + sbcs x8,x8,x12 + sbcs x9,x9,x13 + sbcs x10,x10,x14 + sbc x15,xzr,xzr + + // Load polynomial + adrp x2,.Lpoly + add x2,x2,#:lo12:.Lpoly + ldp x11,x12,[x2] + ldp x13,x14,[x2,#16] + + // Backup subtraction + mov x3,x7 + mov x4,x8 + mov x5,x9 + mov x6,x10 + + // Add polynomial + adds x3,x3,x11 + adcs x4,x4,x12 + adcs x5,x5,x13 + adcs x6,x6,x14 + tst x15,x15 + + // Select based on carry + csel x7,x7,x3,eq + csel x8,x8,x4,eq + csel x9,x9,x5,eq + csel x10,x10,x6,eq + + // Store results + stp x7,x8,[x0] + stp x9,x10,[x0,#16] + ret +.size ecp_sm2p256_sub,.-ecp_sm2p256_sub + +// void ecp_sm2p256_sub_mod_ord(BN_ULONG *r,const BN_ULONG *a,const BN_ULONG *b); +.globl ecp_sm2p256_sub_mod_ord +.type ecp_sm2p256_sub_mod_ord,%function +.align 5 +ecp_sm2p256_sub_mod_ord: + AARCH64_VALID_CALL_TARGET + // Load inputs + ldp x7,x8,[x1] + ldp x9,x10,[x1,#16] + ldp x11,x12,[x2] + ldp x13,x14,[x2,#16] + + // Subtraction + subs x7,x7,x11 + sbcs x8,x8,x12 + sbcs x9,x9,x13 + sbcs x10,x10,x14 + sbc x15,xzr,xzr + + // Load polynomial + adrp x2,.Lord + add x2,x2,#:lo12:.Lord + ldp x11,x12,[x2] + ldp x13,x14,[x2,#16] + + // Backup subtraction + mov x3,x7 + mov x4,x8 + mov x5,x9 + mov x6,x10 + + // Add polynomial + adds x3,x3,x11 + adcs x4,x4,x12 + adcs x5,x5,x13 + adcs x6,x6,x14 + tst x15,x15 + + // Select based on carry + csel x7,x7,x3,eq + csel x8,x8,x4,eq + csel x9,x9,x5,eq + csel x10,x10,x6,eq + + // Store results + stp x7,x8,[x0] + stp x9,x10,[x0,#16] + ret +.size ecp_sm2p256_sub_mod_ord,.-ecp_sm2p256_sub_mod_ord + +.macro RDC + // a = | s7 | ... | s0 |, where si are 64-bit quantities + // = |a15|a14| ... |a1|a0|, where ai are 32-bit quantities + // | s7 | s6 | s5 | s4 | + // | a15 | a14 | a13 | a12 | a11 | a10 | a9 | a8 | + // | s3 | s2 | s1 | s0 | + // | a7 | a6 | a5 | a4 | a3 | a2 | a1 | a0 | + // ================================================= + // | a8 | a11 | a10 | a9 | a8 | 0 | s4 | (+) + // | a9 | a15 | s6 | a11 | 0 | a10 | a9 | (+) + // | a10 | 0 | a14 | a13 | a12 | 0 | s5 | (+) + // | a11 | 0 | s7 | a13 | 0 | a12 | a11 | (+) + // | a12 | 0 | s7 | a13 | 0 | s6 | (+) + // | a12 | 0 | 0 | a15 | a14 | 0 | a14 | a13 | (+) + // | a13 | 0 | 0 | 0 | a15 | 0 | a14 | a13 | (+) + // | a13 | 0 | 0 | 0 | 0 | 0 | s7 | (+) + // | a14 | 0 | 0 | 0 | 0 | 0 | s7 | (+) + // | a14 | 0 | 0 | 0 | 0 | 0 | 0 | a15 | (+) + // | a15 | 0 | 0 | 0 | 0 | 0 | 0 | a15 | (+) + // | a15 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | (+) + // | s7 | 0 | 0 | 0 | 0 | 0 | 0 | (+) + // | 0 | 0 | 0 | 0 | 0 | a8 | 0 | 0 | (-) + // | 0 | 0 | 0 | 0 | 0 | a9 | 0 | 0 | (-) + // | 0 | 0 | 0 | 0 | 0 | a13 | 0 | 0 | (-) + // | 0 | 0 | 0 | 0 | 0 | a14 | 0 | 0 | (-) + // | U[7]| U[6]| U[5]| U[4]| U[3]| U[2]| U[1]| U[0]| + // | V[3] | V[2] | V[1] | V[0] | + + // 1. 64-bit addition + // t2=s6+s7+s7 + adds x5,x13,x14 + adcs x4,xzr,xzr + adds x5,x5,x14 + adcs x4,x4,xzr + // t3=s4+s5+t2 + adds x6,x11,x5 + adcs x15,x4,xzr + adds x6,x6,x12 + adcs x15,x15,xzr + // sum + adds x7,x7,x6 + adcs x8,x8,x15 + adcs x9,x9,x5 + adcs x10,x10,x14 + adcs x3,xzr,xzr + adds x10,x10,x4 + adcs x3,x3,xzr + + stp x7,x8,[sp,#32] + stp x9,x10,[sp,#48] + + // 2. 64-bit to 32-bit spread + mov x4,#0xffffffff + mov x7,x11 + mov x8,x12 + mov x9,x13 + mov x10,x14 + and x7,x7,x4 // a8 + and x8,x8,x4 // a10 + and x9,x9,x4 // a12 + and x10,x10,x4 // a14 + lsr x11,x11,#32 // a9 + lsr x12,x12,#32 // a11 + lsr x13,x13,#32 // a13 + lsr x14,x14,#32 // a15 + + // 3. 32-bit addition + add x4,x10,x9 // t1 <- a12 + a14 + add x5,x14,x13 // t2 <- a13 + a15 + add x6,x7,x11 // t3 <- a8 + a9 + add x15,x10,x8 // t4 <- a10 + a14 + add x14,x14,x12 // a15 <- a11 + a15 + add x9,x5,x4 // a12 <- a12 + a13 + a14 + a15 + add x8,x8,x9 // a10 <- a10 + a12 + a13 + a14 + a15 + add x8,x8,x9 // a10 <- a10 + 2*(a12 + a13 + a14 + a15) + add x8,x8,x6 // a10 <- a8 + a9 + a10 + 2*(a12 + a13 + a14 + a15) + add x8,x8,x12 // a10 <- a8 + a9 + a10 + a11 + 2*(a12 + a13 + a14 + a15) + add x9,x9,x13 // a12 <- a12 + 2*a13 + a14 + a15 + add x9,x9,x12 // a12 <- a11 + a12 + 2*a13 + a14 + a15 + add x9,x9,x7 // a12 <- a8 + a11 + a12 + 2*a13 + a14 + a15 + add x6,x6,x10 // t3 <- a8 + a9 + a14 + add x6,x6,x13 // t3 <- a8 + a9 + a13 + a14 + add x11,x11,x5 // a9 <- a9 + a13 + a15 + add x12,x12,x11 // a11 <- a9 + a11 + a13 + a15 + add x12,x12,x5 // a11 <- a9 + a11 + 2*(a13 + a15) + add x4,x4,x15 // t1 <- a10 + a12 + 2*a14 + + // U[0] s5 a9 + a11 + 2*(a13 + a15) + // U[1] t1 a10 + a12 + 2*a14 + // U[2] -t3 a8 + a9 + a13 + a14 + // U[3] s2 a8 + a11 + a12 + 2*a13 + a14 + a15 + // U[4] s4 a9 + a13 + a15 + // U[5] t4 a10 + a14 + // U[6] s7 a11 + a15 + // U[7] s1 a8 + a9 + a10 + a11 + 2*(a12 + a13 + a14 + a15) + + // 4. 32-bit to 64-bit + lsl x7,x4,#32 + extr x4,x9,x4,#32 + extr x9,x15,x9,#32 + extr x15,x8,x15,#32 + lsr x8,x8,#32 + + // 5. 64-bit addition + adds x12,x12,x7 + adcs x4,x4,xzr + adcs x11,x11,x9 + adcs x14,x14,x15 + adcs x3,x3,x8 + + // V[0] s5 + // V[1] t1 + // V[2] s4 + // V[3] s7 + // carry t0 + // sub t3 + + // 5. Process s0-s3 + ldp x7,x8,[sp,#32] + ldp x9,x10,[sp,#48] + // add with V0-V3 + adds x7,x7,x12 + adcs x8,x8,x4 + adcs x9,x9,x11 + adcs x10,x10,x14 + adcs x3,x3,xzr + // sub with t3 + subs x8,x8,x6 + sbcs x9,x9,xzr + sbcs x10,x10,xzr + sbcs x3,x3,xzr + + // 6. MOD + // First Mod + lsl x4,x3,#32 + subs x5,x4,x3 + + adds x7,x7,x3 + adcs x8,x8,x5 + adcs x9,x9,xzr + adcs x10,x10,x4 + + // Last Mod + // return y - p if y > p else y + mov x11,x7 + mov x12,x8 + mov x13,x9 + mov x14,x10 + + adrp x3,.Lpoly + add x3,x3,#:lo12:.Lpoly + ldp x4,x5,[x3] + ldp x6,x15,[x3,#16] + + adcs x16,xzr,xzr + + subs x7,x7,x4 + sbcs x8,x8,x5 + sbcs x9,x9,x6 + sbcs x10,x10,x15 + sbcs x16,x16,xzr + + csel x7,x7,x11,cs + csel x8,x8,x12,cs + csel x9,x9,x13,cs + csel x10,x10,x14,cs + +.endm + +// void ecp_sm2p256_mul(BN_ULONG *r, const BN_ULONG *a, const BN_ULONG *b); +.globl ecp_sm2p256_mul +.type ecp_sm2p256_mul,%function +.align 5 +ecp_sm2p256_mul: + AARCH64_SIGN_LINK_REGISTER + // Store scalar registers + stp x29,x30,[sp,#-80]! + add x29,sp,#0 + stp x16,x17,[sp,#16] + stp x19,x20,[sp,#64] + + // Load inputs + ldp x7,x8,[x1] + ldp x9,x10,[x1,#16] + ldp x11,x12,[x2] + ldp x13,x14,[x2,#16] + +// ### multiplication ### + // ======================== + // s3 s2 s1 s0 + // * s7 s6 s5 s4 + // ------------------------ + // + s0 s0 s0 s0 + // * * * * + // s7 s6 s5 s4 + // s1 s1 s1 s1 + // * * * * + // s7 s6 s5 s4 + // s2 s2 s2 s2 + // * * * * + // s7 s6 s5 s4 + // s3 s3 s3 s3 + // * * * * + // s7 s6 s5 s4 + // ------------------------ + // s7 s6 s5 s4 s3 s2 s1 s0 + // ======================== + +// ### s0*s4 ### + mul x16,x7,x11 + umulh x5,x7,x11 + +// ### s1*s4 + s0*s5 ### + mul x3,x8,x11 + umulh x4,x8,x11 + adds x5,x5,x3 + adcs x6,x4,xzr + + mul x3,x7,x12 + umulh x4,x7,x12 + adds x5,x5,x3 + adcs x6,x6,x4 + adcs x15,xzr,xzr + +// ### s2*s4 + s1*s5 + s0*s6 ### + mul x3,x9,x11 + umulh x4,x9,x11 + adds x6,x6,x3 + adcs x15,x15,x4 + + mul x3,x8,x12 + umulh x4,x8,x12 + adds x6,x6,x3 + adcs x15,x15,x4 + adcs x17,xzr,xzr + + mul x3,x7,x13 + umulh x4,x7,x13 + adds x6,x6,x3 + adcs x15,x15,x4 + adcs x17,x17,xzr + +// ### s3*s4 + s2*s5 + s1*s6 + s0*s7 ### + mul x3,x10,x11 + umulh x4,x10,x11 + adds x15,x15,x3 + adcs x17,x17,x4 + adcs x19,xzr,xzr + + mul x3,x9,x12 + umulh x4,x9,x12 + adds x15,x15,x3 + adcs x17,x17,x4 + adcs x19,x19,xzr + + mul x3,x8,x13 + umulh x4,x8,x13 + adds x15,x15,x3 + adcs x17,x17,x4 + adcs x19,x19,xzr + + mul x3,x7,x14 + umulh x4,x7,x14 + adds x15,x15,x3 + adcs x17,x17,x4 + adcs x19,x19,xzr + +// ### s3*s5 + s2*s6 + s1*s7 ### + mul x3,x10,x12 + umulh x4,x10,x12 + adds x17,x17,x3 + adcs x19,x19,x4 + adcs x20,xzr,xzr + + mul x3,x9,x13 + umulh x4,x9,x13 + adds x17,x17,x3 + adcs x19,x19,x4 + adcs x20,x20,xzr + + mul x3,x8,x14 + umulh x4,x8,x14 + adds x11,x17,x3 + adcs x19,x19,x4 + adcs x20,x20,xzr + +// ### s3*s6 + s2*s7 ### + mul x3,x10,x13 + umulh x4,x10,x13 + adds x19,x19,x3 + adcs x20,x20,x4 + adcs x17,xzr,xzr + + mul x3,x9,x14 + umulh x4,x9,x14 + adds x12,x19,x3 + adcs x20,x20,x4 + adcs x17,x17,xzr + +// ### s3*s7 ### + mul x3,x10,x14 + umulh x4,x10,x14 + adds x13,x20,x3 + adcs x14,x17,x4 + + mov x7,x16 + mov x8,x5 + mov x9,x6 + mov x10,x15 + + // result of mul: s7 s6 s5 s4 s3 s2 s1 s0 + +// ### Reduction ### + RDC + + stp x7,x8,[x0] + stp x9,x10,[x0,#16] + + // Restore scalar registers + ldp x16,x17,[sp,#16] + ldp x19,x20,[sp,#64] + ldp x29,x30,[sp],#80 + + AARCH64_VALIDATE_LINK_REGISTER + ret +.size ecp_sm2p256_mul,.-ecp_sm2p256_mul + +// void ecp_sm2p256_sqr(BN_ULONG *r, const BN_ULONG *a); +.globl ecp_sm2p256_sqr +.type ecp_sm2p256_sqr,%function +.align 5 + +ecp_sm2p256_sqr: + AARCH64_SIGN_LINK_REGISTER + // Store scalar registers + stp x29,x30,[sp,#-80]! + add x29,sp,#0 + stp x16,x17,[sp,#16] + stp x19,x20,[sp,#64] + + // Load inputs + ldp x11,x12,[x1] + ldp x13,x14,[x1,#16] + +// ### square ### + // ======================== + // s7 s6 s5 s4 + // * s7 s6 s5 s4 + // ------------------------ + // + s4 s4 s4 s4 + // * * * * + // s7 s6 s5 s4 + // s5 s5 s5 s5 + // * * * * + // s7 s6 s5 s4 + // s6 s6 s6 s6 + // * * * * + // s7 s6 s5 s4 + // s7 s7 s7 s7 + // * * * * + // s7 s6 s5 s4 + // ------------------------ + // s7 s6 s5 s4 s3 s2 s1 s0 + // ======================== + +// ### s4*s5 ### + mul x8,x11,x12 + umulh x9,x11,x12 + +// ### s4*s6 ### + mul x3,x13,x11 + umulh x10,x13,x11 + adds x9,x9,x3 + adcs x10,x10,xzr + +// ### s4*s7 + s5*s6 ### + mul x3,x14,x11 + umulh x4,x14,x11 + adds x10,x10,x3 + adcs x7,x4,xzr + + mul x3,x13,x12 + umulh x4,x13,x12 + adds x10,x10,x3 + adcs x7,x7,x4 + adcs x5,xzr,xzr + +// ### s5*s7 ### + mul x3,x14,x12 + umulh x4,x14,x12 + adds x7,x7,x3 + adcs x5,x5,x4 + +// ### s6*s7 ### + mul x3,x14,x13 + umulh x4,x14,x13 + adds x5,x5,x3 + adcs x6,x4,xzr + +// ### 2*(t3,t2,s0,s3,s2,s1) ### + adds x8,x8,x8 + adcs x9,x9,x9 + adcs x10,x10,x10 + adcs x7,x7,x7 + adcs x5,x5,x5 + adcs x6,x6,x6 + adcs x15,xzr,xzr + +// ### s4*s4 ### + mul x16,x11,x11 + umulh x17,x11,x11 + +// ### s5*s5 ### + mul x11,x12,x12 + umulh x12,x12,x12 + +// ### s6*s6 ### + mul x3,x13,x13 + umulh x4,x13,x13 + +// ### s7*s7 ### + mul x19,x14,x14 + umulh x20,x14,x14 + + adds x8,x8,x17 + adcs x9,x9,x11 + adcs x10,x10,x12 + adcs x7,x7,x3 + adcs x5,x5,x4 + adcs x6,x6,x19 + adcs x15,x15,x20 + + mov x11,x7 + mov x7,x16 + mov x12,x5 + mov x13,x6 + mov x14,x15 + + // result of mul: s7 s6 s5 s4 s3 s2 s1 s0 + +// ### Reduction ### + RDC + + stp x7,x8,[x0] + stp x9,x10,[x0,#16] + + // Restore scalar registers + ldp x16,x17,[sp,#16] + ldp x19,x20,[sp,#64] + ldp x29,x30,[sp],#80 + + AARCH64_VALIDATE_LINK_REGISTER + ret +.size ecp_sm2p256_sqr,.-ecp_sm2p256_sqr diff --git a/deps/openssl/config/archs/linux-aarch64/asm/crypto/md5/md5-aarch64.S b/deps/openssl/config/archs/linux-aarch64/asm/crypto/md5/md5-aarch64.S new file mode 100644 index 00000000000000..b6f8777c9fd01c --- /dev/null +++ b/deps/openssl/config/archs/linux-aarch64/asm/crypto/md5/md5-aarch64.S @@ -0,0 +1,677 @@ +#include "arm_arch.h" + +.text +.globl ossl_md5_block_asm_data_order +.type ossl_md5_block_asm_data_order,@function +ossl_md5_block_asm_data_order: + AARCH64_VALID_CALL_TARGET + // Save all callee-saved registers + stp x19,x20,[sp,#-80]! + stp x21,x22,[sp,#16] + stp x23,x24,[sp,#32] + stp x25,x26,[sp,#48] + stp x27,x28,[sp,#64] + + ldp w10, w11, [x0, #0] // .Load MD5 state->A and state->B + ldp w12, w13, [x0, #8] // .Load MD5 state->C and state->D +.align 5 +ossl_md5_blocks_loop: + eor x17, x12, x13 // Begin aux function round 1 F(x,y,z)=(((y^z)&x)^z) + and x16, x17, x11 // Continue aux function round 1 F(x,y,z)=(((y^z)&x)^z) + ldp w15, w20, [x1] // .Load 2 words of input data0 M[0],M[1] + ldp w3, w21, [x1, #8] // .Load 2 words of input data0 M[2],M[3] +#ifdef __AARCH64EB__ + rev w15, w15 + rev w20, w20 + rev w3, w3 + rev w21, w21 +#endif + eor x14, x16, x13 // End aux function round 1 F(x,y,z)=(((y^z)&x)^z) + movz x9, #0xa478 // .Load lower half of constant 0xd76aa478 + movk x9, #0xd76a, lsl #16 // .Load upper half of constant 0xd76aa478 + add w8, w10, w15 // Add dest value + add w7, w8, w9 // Add constant 0xd76aa478 + add w6, w7, w14 // Add aux function result + ror w6, w6, #25 // Rotate left s=7 bits + eor x5, x11, x12 // Begin aux function round 1 F(x,y,z)=(((y^z)&x)^z) + add w4, w11, w6 // Add X parameter round 1 A=FF(A, B, C, D, 0xd76aa478, s=7, M[0]) + and x8, x5, x4 // Continue aux function round 1 F(x,y,z)=(((y^z)&x)^z) + eor x17, x8, x12 // End aux function round 1 F(x,y,z)=(((y^z)&x)^z) + movz x16, #0xb756 // .Load lower half of constant 0xe8c7b756 + movk x16, #0xe8c7, lsl #16 // .Load upper half of constant 0xe8c7b756 + add w9, w13, w20 // Add dest value + add w7, w9, w16 // Add constant 0xe8c7b756 + add w14, w7, w17 // Add aux function result + ror w14, w14, #20 // Rotate left s=12 bits + eor x6, x4, x11 // Begin aux function round 1 F(x,y,z)=(((y^z)&x)^z) + add w5, w4, w14 // Add X parameter round 1 D=FF(D, A, B, C, 0xe8c7b756, s=12, M[1]) + and x8, x6, x5 // Continue aux function round 1 F(x,y,z)=(((y^z)&x)^z) + eor x9, x8, x11 // End aux function round 1 F(x,y,z)=(((y^z)&x)^z) + movz x16, #0x70db // .Load lower half of constant 0x242070db + movk x16, #0x2420, lsl #16 // .Load upper half of constant 0x242070db + add w7, w12, w3 // Add dest value + add w17, w7, w16 // Add constant 0x242070db + add w14, w17, w9 // Add aux function result + ror w14, w14, #15 // Rotate left s=17 bits + eor x6, x5, x4 // Begin aux function round 1 F(x,y,z)=(((y^z)&x)^z) + add w8, w5, w14 // Add X parameter round 1 C=FF(C, D, A, B, 0x242070db, s=17, M[2]) + and x7, x6, x8 // Continue aux function round 1 F(x,y,z)=(((y^z)&x)^z) + eor x16, x7, x4 // End aux function round 1 F(x,y,z)=(((y^z)&x)^z) + movz x9, #0xceee // .Load lower half of constant 0xc1bdceee + movk x9, #0xc1bd, lsl #16 // .Load upper half of constant 0xc1bdceee + add w14, w11, w21 // Add dest value + add w6, w14, w9 // Add constant 0xc1bdceee + add w7, w6, w16 // Add aux function result + ror w7, w7, #10 // Rotate left s=22 bits + eor x17, x8, x5 // Begin aux function round 1 F(x,y,z)=(((y^z)&x)^z) + add w9, w8, w7 // Add X parameter round 1 B=FF(B, C, D, A, 0xc1bdceee, s=22, M[3]) + ldp w14, w22, [x1, #16] // .Load 2 words of input data0 M[4],M[5] + ldp w7, w23, [x1, #24] // .Load 2 words of input data0 M[6],M[7] +#ifdef __AARCH64EB__ + rev w14, w14 + rev w22, w22 + rev w7, w7 + rev w23, w23 +#endif + and x16, x17, x9 // Continue aux function round 1 F(x,y,z)=(((y^z)&x)^z) + eor x6, x16, x5 // End aux function round 1 F(x,y,z)=(((y^z)&x)^z) + movz x16, #0xfaf // .Load lower half of constant 0xf57c0faf + movk x16, #0xf57c, lsl #16 // .Load upper half of constant 0xf57c0faf + add w17, w4, w14 // Add dest value + add w16, w17, w16 // Add constant 0xf57c0faf + add w4, w16, w6 // Add aux function result + ror w4, w4, #25 // Rotate left s=7 bits + eor x16, x9, x8 // Begin aux function round 1 F(x,y,z)=(((y^z)&x)^z) + add w17, w9, w4 // Add X parameter round 1 A=FF(A, B, C, D, 0xf57c0faf, s=7, M[4]) + and x16, x16, x17 // Continue aux function round 1 F(x,y,z)=(((y^z)&x)^z) + eor x6, x16, x8 // End aux function round 1 F(x,y,z)=(((y^z)&x)^z) + movz x4, #0xc62a // .Load lower half of constant 0x4787c62a + movk x4, #0x4787, lsl #16 // .Load upper half of constant 0x4787c62a + add w16, w5, w22 // Add dest value + add w16, w16, w4 // Add constant 0x4787c62a + add w5, w16, w6 // Add aux function result + ror w5, w5, #20 // Rotate left s=12 bits + eor x4, x17, x9 // Begin aux function round 1 F(x,y,z)=(((y^z)&x)^z) + add w19, w17, w5 // Add X parameter round 1 D=FF(D, A, B, C, 0x4787c62a, s=12, M[5]) + and x6, x4, x19 // Continue aux function round 1 F(x,y,z)=(((y^z)&x)^z) + eor x5, x6, x9 // End aux function round 1 F(x,y,z)=(((y^z)&x)^z) + movz x4, #0x4613 // .Load lower half of constant 0xa8304613 + movk x4, #0xa830, lsl #16 // .Load upper half of constant 0xa8304613 + add w6, w8, w7 // Add dest value + add w8, w6, w4 // Add constant 0xa8304613 + add w4, w8, w5 // Add aux function result + ror w4, w4, #15 // Rotate left s=17 bits + eor x6, x19, x17 // Begin aux function round 1 F(x,y,z)=(((y^z)&x)^z) + add w8, w19, w4 // Add X parameter round 1 C=FF(C, D, A, B, 0xa8304613, s=17, M[6]) + and x5, x6, x8 // Continue aux function round 1 F(x,y,z)=(((y^z)&x)^z) + eor x4, x5, x17 // End aux function round 1 F(x,y,z)=(((y^z)&x)^z) + movz x6, #0x9501 // .Load lower half of constant 0xfd469501 + movk x6, #0xfd46, lsl #16 // .Load upper half of constant 0xfd469501 + add w9, w9, w23 // Add dest value + add w5, w9, w6 // Add constant 0xfd469501 + add w9, w5, w4 // Add aux function result + ror w9, w9, #10 // Rotate left s=22 bits + eor x6, x8, x19 // Begin aux function round 1 F(x,y,z)=(((y^z)&x)^z) + add w4, w8, w9 // Add X parameter round 1 B=FF(B, C, D, A, 0xfd469501, s=22, M[7]) + ldp w5, w24, [x1, #32] // .Load 2 words of input data0 M[8],M[9] + ldp w16, w25, [x1, #40] // .Load 2 words of input data0 M[10],M[11] +#ifdef __AARCH64EB__ + rev w5, w5 + rev w24, w24 + rev w16, w16 + rev w25, w25 +#endif + and x9, x6, x4 // Continue aux function round 1 F(x,y,z)=(((y^z)&x)^z) + eor x6, x9, x19 // End aux function round 1 F(x,y,z)=(((y^z)&x)^z) + movz x9, #0x98d8 // .Load lower half of constant 0x698098d8 + movk x9, #0x6980, lsl #16 // .Load upper half of constant 0x698098d8 + add w17, w17, w5 // Add dest value + add w9, w17, w9 // Add constant 0x698098d8 + add w17, w9, w6 // Add aux function result + ror w17, w17, #25 // Rotate left s=7 bits + eor x9, x4, x8 // Begin aux function round 1 F(x,y,z)=(((y^z)&x)^z) + add w6, w4, w17 // Add X parameter round 1 A=FF(A, B, C, D, 0x698098d8, s=7, M[8]) + and x17, x9, x6 // Continue aux function round 1 F(x,y,z)=(((y^z)&x)^z) + eor x9, x17, x8 // End aux function round 1 F(x,y,z)=(((y^z)&x)^z) + movz x17, #0xf7af // .Load lower half of constant 0x8b44f7af + movk x17, #0x8b44, lsl #16 // .Load upper half of constant 0x8b44f7af + add w19, w19, w24 // Add dest value + add w17, w19, w17 // Add constant 0x8b44f7af + add w19, w17, w9 // Add aux function result + ror w19, w19, #20 // Rotate left s=12 bits + eor x9, x6, x4 // Begin aux function round 1 F(x,y,z)=(((y^z)&x)^z) + add w17, w6, w19 // Add X parameter round 1 D=FF(D, A, B, C, 0x8b44f7af, s=12, M[9]) + and x9, x9, x17 // Continue aux function round 1 F(x,y,z)=(((y^z)&x)^z) + eor x9, x9, x4 // End aux function round 1 F(x,y,z)=(((y^z)&x)^z) + movz x11, #0x5bb1 // .Load lower half of constant 0xffff5bb1 + movk x11, #0xffff, lsl #16 // .Load upper half of constant 0xffff5bb1 + add w8, w8, w16 // Add dest value + add w8, w8, w11 // Add constant 0xffff5bb1 + add w8, w8, w9 // Add aux function result + ror w8, w8, #15 // Rotate left s=17 bits + eor x9, x17, x6 // Begin aux function round 1 F(x,y,z)=(((y^z)&x)^z) + add w8, w17, w8 // Add X parameter round 1 C=FF(C, D, A, B, 0xffff5bb1, s=17, M[10]) + and x9, x9, x8 // Continue aux function round 1 F(x,y,z)=(((y^z)&x)^z) + eor x9, x9, x6 // End aux function round 1 F(x,y,z)=(((y^z)&x)^z) + movz x11, #0xd7be // .Load lower half of constant 0x895cd7be + movk x11, #0x895c, lsl #16 // .Load upper half of constant 0x895cd7be + add w4, w4, w25 // Add dest value + add w4, w4, w11 // Add constant 0x895cd7be + add w9, w4, w9 // Add aux function result + ror w9, w9, #10 // Rotate left s=22 bits + eor x4, x8, x17 // Begin aux function round 1 F(x,y,z)=(((y^z)&x)^z) + add w9, w8, w9 // Add X parameter round 1 B=FF(B, C, D, A, 0x895cd7be, s=22, M[11]) + ldp w11, w26, [x1, #48] // .Load 2 words of input data0 M[12],M[13] + ldp w12, w27, [x1, #56] // .Load 2 words of input data0 M[14],M[15] +#ifdef __AARCH64EB__ + rev w11, w11 + rev w26, w26 + rev w12, w12 + rev w27, w27 +#endif + and x4, x4, x9 // Continue aux function round 1 F(x,y,z)=(((y^z)&x)^z) + eor x4, x4, x17 // End aux function round 1 F(x,y,z)=(((y^z)&x)^z) + movz x19, #0x1122 // .Load lower half of constant 0x6b901122 + movk x19, #0x6b90, lsl #16 // .Load upper half of constant 0x6b901122 + add w6, w6, w11 // Add dest value + add w6, w6, w19 // Add constant 0x6b901122 + add w4, w6, w4 // Add aux function result + ror w4, w4, #25 // Rotate left s=7 bits + eor x6, x9, x8 // Begin aux function round 1 F(x,y,z)=(((y^z)&x)^z) + add w4, w9, w4 // Add X parameter round 1 A=FF(A, B, C, D, 0x6b901122, s=7, M[12]) + and x6, x6, x4 // Continue aux function round 1 F(x,y,z)=(((y^z)&x)^z) + eor x6, x6, x8 // End aux function round 1 F(x,y,z)=(((y^z)&x)^z) + movz x19, #0x7193 // .Load lower half of constant 0xfd987193 + movk x19, #0xfd98, lsl #16 // .Load upper half of constant 0xfd987193 + add w17, w17, w26 // Add dest value + add w17, w17, w19 // Add constant 0xfd987193 + add w17, w17, w6 // Add aux function result + ror w17, w17, #20 // Rotate left s=12 bits + eor x6, x4, x9 // Begin aux function round 1 F(x,y,z)=(((y^z)&x)^z) + add w17, w4, w17 // Add X parameter round 1 D=FF(D, A, B, C, 0xfd987193, s=12, M[13]) + and x6, x6, x17 // Continue aux function round 1 F(x,y,z)=(((y^z)&x)^z) + eor x6, x6, x9 // End aux function round 1 F(x,y,z)=(((y^z)&x)^z) + movz x13, #0x438e // .Load lower half of constant 0xa679438e + movk x13, #0xa679, lsl #16 // .Load upper half of constant 0xa679438e + add w8, w8, w12 // Add dest value + add w8, w8, w13 // Add constant 0xa679438e + add w8, w8, w6 // Add aux function result + ror w8, w8, #15 // Rotate left s=17 bits + eor x6, x17, x4 // Begin aux function round 1 F(x,y,z)=(((y^z)&x)^z) + add w8, w17, w8 // Add X parameter round 1 C=FF(C, D, A, B, 0xa679438e, s=17, M[14]) + and x6, x6, x8 // Continue aux function round 1 F(x,y,z)=(((y^z)&x)^z) + eor x6, x6, x4 // End aux function round 1 F(x,y,z)=(((y^z)&x)^z) + movz x13, #0x821 // .Load lower half of constant 0x49b40821 + movk x13, #0x49b4, lsl #16 // .Load upper half of constant 0x49b40821 + add w9, w9, w27 // Add dest value + add w9, w9, w13 // Add constant 0x49b40821 + add w9, w9, w6 // Add aux function result + ror w9, w9, #10 // Rotate left s=22 bits + bic x6, x8, x17 // Aux function round 2 (~z & y) + add w9, w8, w9 // Add X parameter round 1 B=FF(B, C, D, A, 0x49b40821, s=22, M[15]) + movz x13, #0x2562 // .Load lower half of constant 0xf61e2562 + movk x13, #0xf61e, lsl #16 // .Load upper half of constant 0xf61e2562 + add w4, w4, w20 // Add dest value + add w4, w4, w13 // Add constant 0xf61e2562 + and x13, x9, x17 // Aux function round 2 (x & z) + add w4, w4, w6 // Add (~z & y) + add w4, w4, w13 // Add (x & z) + ror w4, w4, #27 // Rotate left s=5 bits + bic x6, x9, x8 // Aux function round 2 (~z & y) + add w4, w9, w4 // Add X parameter round 2 A=GG(A, B, C, D, 0xf61e2562, s=5, M[1]) + movz x13, #0xb340 // .Load lower half of constant 0xc040b340 + movk x13, #0xc040, lsl #16 // .Load upper half of constant 0xc040b340 + add w17, w17, w7 // Add dest value + add w17, w17, w13 // Add constant 0xc040b340 + and x13, x4, x8 // Aux function round 2 (x & z) + add w17, w17, w6 // Add (~z & y) + add w17, w17, w13 // Add (x & z) + ror w17, w17, #23 // Rotate left s=9 bits + bic x6, x4, x9 // Aux function round 2 (~z & y) + add w17, w4, w17 // Add X parameter round 2 D=GG(D, A, B, C, 0xc040b340, s=9, M[6]) + movz x13, #0x5a51 // .Load lower half of constant 0x265e5a51 + movk x13, #0x265e, lsl #16 // .Load upper half of constant 0x265e5a51 + add w8, w8, w25 // Add dest value + add w8, w8, w13 // Add constant 0x265e5a51 + and x13, x17, x9 // Aux function round 2 (x & z) + add w8, w8, w6 // Add (~z & y) + add w8, w8, w13 // Add (x & z) + ror w8, w8, #18 // Rotate left s=14 bits + bic x6, x17, x4 // Aux function round 2 (~z & y) + add w8, w17, w8 // Add X parameter round 2 C=GG(C, D, A, B, 0x265e5a51, s=14, M[11]) + movz x13, #0xc7aa // .Load lower half of constant 0xe9b6c7aa + movk x13, #0xe9b6, lsl #16 // .Load upper half of constant 0xe9b6c7aa + add w9, w9, w15 // Add dest value + add w9, w9, w13 // Add constant 0xe9b6c7aa + and x13, x8, x4 // Aux function round 2 (x & z) + add w9, w9, w6 // Add (~z & y) + add w9, w9, w13 // Add (x & z) + ror w9, w9, #12 // Rotate left s=20 bits + bic x6, x8, x17 // Aux function round 2 (~z & y) + add w9, w8, w9 // Add X parameter round 2 B=GG(B, C, D, A, 0xe9b6c7aa, s=20, M[0]) + movz x13, #0x105d // .Load lower half of constant 0xd62f105d + movk x13, #0xd62f, lsl #16 // .Load upper half of constant 0xd62f105d + add w4, w4, w22 // Add dest value + add w4, w4, w13 // Add constant 0xd62f105d + and x13, x9, x17 // Aux function round 2 (x & z) + add w4, w4, w6 // Add (~z & y) + add w4, w4, w13 // Add (x & z) + ror w4, w4, #27 // Rotate left s=5 bits + bic x6, x9, x8 // Aux function round 2 (~z & y) + add w4, w9, w4 // Add X parameter round 2 A=GG(A, B, C, D, 0xd62f105d, s=5, M[5]) + movz x13, #0x1453 // .Load lower half of constant 0x2441453 + movk x13, #0x244, lsl #16 // .Load upper half of constant 0x2441453 + add w17, w17, w16 // Add dest value + add w17, w17, w13 // Add constant 0x2441453 + and x13, x4, x8 // Aux function round 2 (x & z) + add w17, w17, w6 // Add (~z & y) + add w17, w17, w13 // Add (x & z) + ror w17, w17, #23 // Rotate left s=9 bits + bic x6, x4, x9 // Aux function round 2 (~z & y) + add w17, w4, w17 // Add X parameter round 2 D=GG(D, A, B, C, 0x2441453, s=9, M[10]) + movz x13, #0xe681 // .Load lower half of constant 0xd8a1e681 + movk x13, #0xd8a1, lsl #16 // .Load upper half of constant 0xd8a1e681 + add w8, w8, w27 // Add dest value + add w8, w8, w13 // Add constant 0xd8a1e681 + and x13, x17, x9 // Aux function round 2 (x & z) + add w8, w8, w6 // Add (~z & y) + add w8, w8, w13 // Add (x & z) + ror w8, w8, #18 // Rotate left s=14 bits + bic x6, x17, x4 // Aux function round 2 (~z & y) + add w8, w17, w8 // Add X parameter round 2 C=GG(C, D, A, B, 0xd8a1e681, s=14, M[15]) + movz x13, #0xfbc8 // .Load lower half of constant 0xe7d3fbc8 + movk x13, #0xe7d3, lsl #16 // .Load upper half of constant 0xe7d3fbc8 + add w9, w9, w14 // Add dest value + add w9, w9, w13 // Add constant 0xe7d3fbc8 + and x13, x8, x4 // Aux function round 2 (x & z) + add w9, w9, w6 // Add (~z & y) + add w9, w9, w13 // Add (x & z) + ror w9, w9, #12 // Rotate left s=20 bits + bic x6, x8, x17 // Aux function round 2 (~z & y) + add w9, w8, w9 // Add X parameter round 2 B=GG(B, C, D, A, 0xe7d3fbc8, s=20, M[4]) + movz x13, #0xcde6 // .Load lower half of constant 0x21e1cde6 + movk x13, #0x21e1, lsl #16 // .Load upper half of constant 0x21e1cde6 + add w4, w4, w24 // Add dest value + add w4, w4, w13 // Add constant 0x21e1cde6 + and x13, x9, x17 // Aux function round 2 (x & z) + add w4, w4, w6 // Add (~z & y) + add w4, w4, w13 // Add (x & z) + ror w4, w4, #27 // Rotate left s=5 bits + bic x6, x9, x8 // Aux function round 2 (~z & y) + add w4, w9, w4 // Add X parameter round 2 A=GG(A, B, C, D, 0x21e1cde6, s=5, M[9]) + movz x13, #0x7d6 // .Load lower half of constant 0xc33707d6 + movk x13, #0xc337, lsl #16 // .Load upper half of constant 0xc33707d6 + add w17, w17, w12 // Add dest value + add w17, w17, w13 // Add constant 0xc33707d6 + and x13, x4, x8 // Aux function round 2 (x & z) + add w17, w17, w6 // Add (~z & y) + add w17, w17, w13 // Add (x & z) + ror w17, w17, #23 // Rotate left s=9 bits + bic x6, x4, x9 // Aux function round 2 (~z & y) + add w17, w4, w17 // Add X parameter round 2 D=GG(D, A, B, C, 0xc33707d6, s=9, M[14]) + movz x13, #0xd87 // .Load lower half of constant 0xf4d50d87 + movk x13, #0xf4d5, lsl #16 // .Load upper half of constant 0xf4d50d87 + add w8, w8, w21 // Add dest value + add w8, w8, w13 // Add constant 0xf4d50d87 + and x13, x17, x9 // Aux function round 2 (x & z) + add w8, w8, w6 // Add (~z & y) + add w8, w8, w13 // Add (x & z) + ror w8, w8, #18 // Rotate left s=14 bits + bic x6, x17, x4 // Aux function round 2 (~z & y) + add w8, w17, w8 // Add X parameter round 2 C=GG(C, D, A, B, 0xf4d50d87, s=14, M[3]) + movz x13, #0x14ed // .Load lower half of constant 0x455a14ed + movk x13, #0x455a, lsl #16 // .Load upper half of constant 0x455a14ed + add w9, w9, w5 // Add dest value + add w9, w9, w13 // Add constant 0x455a14ed + and x13, x8, x4 // Aux function round 2 (x & z) + add w9, w9, w6 // Add (~z & y) + add w9, w9, w13 // Add (x & z) + ror w9, w9, #12 // Rotate left s=20 bits + bic x6, x8, x17 // Aux function round 2 (~z & y) + add w9, w8, w9 // Add X parameter round 2 B=GG(B, C, D, A, 0x455a14ed, s=20, M[8]) + movz x13, #0xe905 // .Load lower half of constant 0xa9e3e905 + movk x13, #0xa9e3, lsl #16 // .Load upper half of constant 0xa9e3e905 + add w4, w4, w26 // Add dest value + add w4, w4, w13 // Add constant 0xa9e3e905 + and x13, x9, x17 // Aux function round 2 (x & z) + add w4, w4, w6 // Add (~z & y) + add w4, w4, w13 // Add (x & z) + ror w4, w4, #27 // Rotate left s=5 bits + bic x6, x9, x8 // Aux function round 2 (~z & y) + add w4, w9, w4 // Add X parameter round 2 A=GG(A, B, C, D, 0xa9e3e905, s=5, M[13]) + movz x13, #0xa3f8 // .Load lower half of constant 0xfcefa3f8 + movk x13, #0xfcef, lsl #16 // .Load upper half of constant 0xfcefa3f8 + add w17, w17, w3 // Add dest value + add w17, w17, w13 // Add constant 0xfcefa3f8 + and x13, x4, x8 // Aux function round 2 (x & z) + add w17, w17, w6 // Add (~z & y) + add w17, w17, w13 // Add (x & z) + ror w17, w17, #23 // Rotate left s=9 bits + bic x6, x4, x9 // Aux function round 2 (~z & y) + add w17, w4, w17 // Add X parameter round 2 D=GG(D, A, B, C, 0xfcefa3f8, s=9, M[2]) + movz x13, #0x2d9 // .Load lower half of constant 0x676f02d9 + movk x13, #0x676f, lsl #16 // .Load upper half of constant 0x676f02d9 + add w8, w8, w23 // Add dest value + add w8, w8, w13 // Add constant 0x676f02d9 + and x13, x17, x9 // Aux function round 2 (x & z) + add w8, w8, w6 // Add (~z & y) + add w8, w8, w13 // Add (x & z) + ror w8, w8, #18 // Rotate left s=14 bits + bic x6, x17, x4 // Aux function round 2 (~z & y) + add w8, w17, w8 // Add X parameter round 2 C=GG(C, D, A, B, 0x676f02d9, s=14, M[7]) + movz x13, #0x4c8a // .Load lower half of constant 0x8d2a4c8a + movk x13, #0x8d2a, lsl #16 // .Load upper half of constant 0x8d2a4c8a + add w9, w9, w11 // Add dest value + add w9, w9, w13 // Add constant 0x8d2a4c8a + and x13, x8, x4 // Aux function round 2 (x & z) + add w9, w9, w6 // Add (~z & y) + add w9, w9, w13 // Add (x & z) + eor x6, x8, x17 // Begin aux function round 3 H(x,y,z)=(x^y^z) + ror w9, w9, #12 // Rotate left s=20 bits + movz x10, #0x3942 // .Load lower half of constant 0xfffa3942 + add w9, w8, w9 // Add X parameter round 2 B=GG(B, C, D, A, 0x8d2a4c8a, s=20, M[12]) + movk x10, #0xfffa, lsl #16 // .Load upper half of constant 0xfffa3942 + add w4, w4, w22 // Add dest value + eor x6, x6, x9 // End aux function round 3 H(x,y,z)=(x^y^z) + add w4, w4, w10 // Add constant 0xfffa3942 + add w4, w4, w6 // Add aux function result + ror w4, w4, #28 // Rotate left s=4 bits + eor x6, x9, x8 // Begin aux function round 3 H(x,y,z)=(x^y^z) + movz x10, #0xf681 // .Load lower half of constant 0x8771f681 + add w4, w9, w4 // Add X parameter round 3 A=HH(A, B, C, D, 0xfffa3942, s=4, M[5]) + movk x10, #0x8771, lsl #16 // .Load upper half of constant 0x8771f681 + add w17, w17, w5 // Add dest value + eor x6, x6, x4 // End aux function round 3 H(x,y,z)=(x^y^z) + add w17, w17, w10 // Add constant 0x8771f681 + add w17, w17, w6 // Add aux function result + eor x6, x4, x9 // Begin aux function round 3 H(x,y,z)=(x^y^z) + ror w17, w17, #21 // Rotate left s=11 bits + movz x13, #0x6122 // .Load lower half of constant 0x6d9d6122 + add w17, w4, w17 // Add X parameter round 3 D=HH(D, A, B, C, 0x8771f681, s=11, M[8]) + movk x13, #0x6d9d, lsl #16 // .Load upper half of constant 0x6d9d6122 + add w8, w8, w25 // Add dest value + eor x6, x6, x17 // End aux function round 3 H(x,y,z)=(x^y^z) + add w8, w8, w13 // Add constant 0x6d9d6122 + add w8, w8, w6 // Add aux function result + ror w8, w8, #16 // Rotate left s=16 bits + eor x6, x17, x4 // Begin aux function round 3 H(x,y,z)=(x^y^z) + movz x13, #0x380c // .Load lower half of constant 0xfde5380c + add w8, w17, w8 // Add X parameter round 3 C=HH(C, D, A, B, 0x6d9d6122, s=16, M[11]) + movk x13, #0xfde5, lsl #16 // .Load upper half of constant 0xfde5380c + add w9, w9, w12 // Add dest value + eor x6, x6, x8 // End aux function round 3 H(x,y,z)=(x^y^z) + add w9, w9, w13 // Add constant 0xfde5380c + add w9, w9, w6 // Add aux function result + eor x6, x8, x17 // Begin aux function round 3 H(x,y,z)=(x^y^z) + ror w9, w9, #9 // Rotate left s=23 bits + movz x10, #0xea44 // .Load lower half of constant 0xa4beea44 + add w9, w8, w9 // Add X parameter round 3 B=HH(B, C, D, A, 0xfde5380c, s=23, M[14]) + movk x10, #0xa4be, lsl #16 // .Load upper half of constant 0xa4beea44 + add w4, w4, w20 // Add dest value + eor x6, x6, x9 // End aux function round 3 H(x,y,z)=(x^y^z) + add w4, w4, w10 // Add constant 0xa4beea44 + add w4, w4, w6 // Add aux function result + ror w4, w4, #28 // Rotate left s=4 bits + eor x6, x9, x8 // Begin aux function round 3 H(x,y,z)=(x^y^z) + movz x10, #0xcfa9 // .Load lower half of constant 0x4bdecfa9 + add w4, w9, w4 // Add X parameter round 3 A=HH(A, B, C, D, 0xa4beea44, s=4, M[1]) + movk x10, #0x4bde, lsl #16 // .Load upper half of constant 0x4bdecfa9 + add w17, w17, w14 // Add dest value + eor x6, x6, x4 // End aux function round 3 H(x,y,z)=(x^y^z) + add w17, w17, w10 // Add constant 0x4bdecfa9 + add w17, w17, w6 // Add aux function result + eor x6, x4, x9 // Begin aux function round 3 H(x,y,z)=(x^y^z) + ror w17, w17, #21 // Rotate left s=11 bits + movz x13, #0x4b60 // .Load lower half of constant 0xf6bb4b60 + add w17, w4, w17 // Add X parameter round 3 D=HH(D, A, B, C, 0x4bdecfa9, s=11, M[4]) + movk x13, #0xf6bb, lsl #16 // .Load upper half of constant 0xf6bb4b60 + add w8, w8, w23 // Add dest value + eor x6, x6, x17 // End aux function round 3 H(x,y,z)=(x^y^z) + add w8, w8, w13 // Add constant 0xf6bb4b60 + add w8, w8, w6 // Add aux function result + ror w8, w8, #16 // Rotate left s=16 bits + eor x6, x17, x4 // Begin aux function round 3 H(x,y,z)=(x^y^z) + movz x13, #0xbc70 // .Load lower half of constant 0xbebfbc70 + add w8, w17, w8 // Add X parameter round 3 C=HH(C, D, A, B, 0xf6bb4b60, s=16, M[7]) + movk x13, #0xbebf, lsl #16 // .Load upper half of constant 0xbebfbc70 + add w9, w9, w16 // Add dest value + eor x6, x6, x8 // End aux function round 3 H(x,y,z)=(x^y^z) + add w9, w9, w13 // Add constant 0xbebfbc70 + add w9, w9, w6 // Add aux function result + eor x6, x8, x17 // Begin aux function round 3 H(x,y,z)=(x^y^z) + ror w9, w9, #9 // Rotate left s=23 bits + movz x10, #0x7ec6 // .Load lower half of constant 0x289b7ec6 + add w9, w8, w9 // Add X parameter round 3 B=HH(B, C, D, A, 0xbebfbc70, s=23, M[10]) + movk x10, #0x289b, lsl #16 // .Load upper half of constant 0x289b7ec6 + add w4, w4, w26 // Add dest value + eor x6, x6, x9 // End aux function round 3 H(x,y,z)=(x^y^z) + add w4, w4, w10 // Add constant 0x289b7ec6 + add w4, w4, w6 // Add aux function result + ror w4, w4, #28 // Rotate left s=4 bits + eor x6, x9, x8 // Begin aux function round 3 H(x,y,z)=(x^y^z) + movz x10, #0x27fa // .Load lower half of constant 0xeaa127fa + add w4, w9, w4 // Add X parameter round 3 A=HH(A, B, C, D, 0x289b7ec6, s=4, M[13]) + movk x10, #0xeaa1, lsl #16 // .Load upper half of constant 0xeaa127fa + add w17, w17, w15 // Add dest value + eor x6, x6, x4 // End aux function round 3 H(x,y,z)=(x^y^z) + add w17, w17, w10 // Add constant 0xeaa127fa + add w17, w17, w6 // Add aux function result + eor x6, x4, x9 // Begin aux function round 3 H(x,y,z)=(x^y^z) + ror w17, w17, #21 // Rotate left s=11 bits + movz x13, #0x3085 // .Load lower half of constant 0xd4ef3085 + add w17, w4, w17 // Add X parameter round 3 D=HH(D, A, B, C, 0xeaa127fa, s=11, M[0]) + movk x13, #0xd4ef, lsl #16 // .Load upper half of constant 0xd4ef3085 + add w8, w8, w21 // Add dest value + eor x6, x6, x17 // End aux function round 3 H(x,y,z)=(x^y^z) + add w8, w8, w13 // Add constant 0xd4ef3085 + add w8, w8, w6 // Add aux function result + ror w8, w8, #16 // Rotate left s=16 bits + eor x6, x17, x4 // Begin aux function round 3 H(x,y,z)=(x^y^z) + movz x13, #0x1d05 // .Load lower half of constant 0x4881d05 + add w8, w17, w8 // Add X parameter round 3 C=HH(C, D, A, B, 0xd4ef3085, s=16, M[3]) + movk x13, #0x488, lsl #16 // .Load upper half of constant 0x4881d05 + add w9, w9, w7 // Add dest value + eor x6, x6, x8 // End aux function round 3 H(x,y,z)=(x^y^z) + add w9, w9, w13 // Add constant 0x4881d05 + add w9, w9, w6 // Add aux function result + eor x6, x8, x17 // Begin aux function round 3 H(x,y,z)=(x^y^z) + ror w9, w9, #9 // Rotate left s=23 bits + movz x10, #0xd039 // .Load lower half of constant 0xd9d4d039 + add w9, w8, w9 // Add X parameter round 3 B=HH(B, C, D, A, 0x4881d05, s=23, M[6]) + movk x10, #0xd9d4, lsl #16 // .Load upper half of constant 0xd9d4d039 + add w4, w4, w24 // Add dest value + eor x6, x6, x9 // End aux function round 3 H(x,y,z)=(x^y^z) + add w4, w4, w10 // Add constant 0xd9d4d039 + add w4, w4, w6 // Add aux function result + ror w4, w4, #28 // Rotate left s=4 bits + eor x6, x9, x8 // Begin aux function round 3 H(x,y,z)=(x^y^z) + movz x10, #0x99e5 // .Load lower half of constant 0xe6db99e5 + add w4, w9, w4 // Add X parameter round 3 A=HH(A, B, C, D, 0xd9d4d039, s=4, M[9]) + movk x10, #0xe6db, lsl #16 // .Load upper half of constant 0xe6db99e5 + add w17, w17, w11 // Add dest value + eor x6, x6, x4 // End aux function round 3 H(x,y,z)=(x^y^z) + add w17, w17, w10 // Add constant 0xe6db99e5 + add w17, w17, w6 // Add aux function result + eor x6, x4, x9 // Begin aux function round 3 H(x,y,z)=(x^y^z) + ror w17, w17, #21 // Rotate left s=11 bits + movz x13, #0x7cf8 // .Load lower half of constant 0x1fa27cf8 + add w17, w4, w17 // Add X parameter round 3 D=HH(D, A, B, C, 0xe6db99e5, s=11, M[12]) + movk x13, #0x1fa2, lsl #16 // .Load upper half of constant 0x1fa27cf8 + add w8, w8, w27 // Add dest value + eor x6, x6, x17 // End aux function round 3 H(x,y,z)=(x^y^z) + add w8, w8, w13 // Add constant 0x1fa27cf8 + add w8, w8, w6 // Add aux function result + ror w8, w8, #16 // Rotate left s=16 bits + eor x6, x17, x4 // Begin aux function round 3 H(x,y,z)=(x^y^z) + movz x13, #0x5665 // .Load lower half of constant 0xc4ac5665 + add w8, w17, w8 // Add X parameter round 3 C=HH(C, D, A, B, 0x1fa27cf8, s=16, M[15]) + movk x13, #0xc4ac, lsl #16 // .Load upper half of constant 0xc4ac5665 + add w9, w9, w3 // Add dest value + eor x6, x6, x8 // End aux function round 3 H(x,y,z)=(x^y^z) + add w9, w9, w13 // Add constant 0xc4ac5665 + add w9, w9, w6 // Add aux function result + ror w9, w9, #9 // Rotate left s=23 bits + movz x6, #0x2244 // .Load lower half of constant 0xf4292244 + movk x6, #0xf429, lsl #16 // .Load upper half of constant 0xf4292244 + add w9, w8, w9 // Add X parameter round 3 B=HH(B, C, D, A, 0xc4ac5665, s=23, M[2]) + add w4, w4, w15 // Add dest value + orn x13, x9, x17 // Begin aux function round 4 I(x,y,z)=((~z|x)^y) + add w4, w4, w6 // Add constant 0xf4292244 + eor x6, x8, x13 // End aux function round 4 I(x,y,z)=((~z|x)^y) + add w4, w4, w6 // Add aux function result + ror w4, w4, #26 // Rotate left s=6 bits + movz x6, #0xff97 // .Load lower half of constant 0x432aff97 + movk x6, #0x432a, lsl #16 // .Load upper half of constant 0x432aff97 + add w4, w9, w4 // Add X parameter round 4 A=II(A, B, C, D, 0xf4292244, s=6, M[0]) + orn x10, x4, x8 // Begin aux function round 4 I(x,y,z)=((~z|x)^y) + add w17, w17, w23 // Add dest value + eor x10, x9, x10 // End aux function round 4 I(x,y,z)=((~z|x)^y) + add w17, w17, w6 // Add constant 0x432aff97 + add w6, w17, w10 // Add aux function result + ror w6, w6, #22 // Rotate left s=10 bits + movz x17, #0x23a7 // .Load lower half of constant 0xab9423a7 + movk x17, #0xab94, lsl #16 // .Load upper half of constant 0xab9423a7 + add w6, w4, w6 // Add X parameter round 4 D=II(D, A, B, C, 0x432aff97, s=10, M[7]) + add w8, w8, w12 // Add dest value + orn x10, x6, x9 // Begin aux function round 4 I(x,y,z)=((~z|x)^y) + add w8, w8, w17 // Add constant 0xab9423a7 + eor x17, x4, x10 // End aux function round 4 I(x,y,z)=((~z|x)^y) + add w8, w8, w17 // Add aux function result + ror w8, w8, #17 // Rotate left s=15 bits + movz x17, #0xa039 // .Load lower half of constant 0xfc93a039 + movk x17, #0xfc93, lsl #16 // .Load upper half of constant 0xfc93a039 + add w8, w6, w8 // Add X parameter round 4 C=II(C, D, A, B, 0xab9423a7, s=15, M[14]) + orn x13, x8, x4 // Begin aux function round 4 I(x,y,z)=((~z|x)^y) + add w9, w9, w22 // Add dest value + eor x13, x6, x13 // End aux function round 4 I(x,y,z)=((~z|x)^y) + add w9, w9, w17 // Add constant 0xfc93a039 + add w17, w9, w13 // Add aux function result + ror w17, w17, #11 // Rotate left s=21 bits + movz x9, #0x59c3 // .Load lower half of constant 0x655b59c3 + movk x9, #0x655b, lsl #16 // .Load upper half of constant 0x655b59c3 + add w17, w8, w17 // Add X parameter round 4 B=II(B, C, D, A, 0xfc93a039, s=21, M[5]) + add w4, w4, w11 // Add dest value + orn x13, x17, x6 // Begin aux function round 4 I(x,y,z)=((~z|x)^y) + add w9, w4, w9 // Add constant 0x655b59c3 + eor x4, x8, x13 // End aux function round 4 I(x,y,z)=((~z|x)^y) + add w9, w9, w4 // Add aux function result + ror w9, w9, #26 // Rotate left s=6 bits + movz x4, #0xcc92 // .Load lower half of constant 0x8f0ccc92 + movk x4, #0x8f0c, lsl #16 // .Load upper half of constant 0x8f0ccc92 + add w9, w17, w9 // Add X parameter round 4 A=II(A, B, C, D, 0x655b59c3, s=6, M[12]) + orn x10, x9, x8 // Begin aux function round 4 I(x,y,z)=((~z|x)^y) + add w6, w6, w21 // Add dest value + eor x10, x17, x10 // End aux function round 4 I(x,y,z)=((~z|x)^y) + add w4, w6, w4 // Add constant 0x8f0ccc92 + add w6, w4, w10 // Add aux function result + ror w6, w6, #22 // Rotate left s=10 bits + movz x4, #0xf47d // .Load lower half of constant 0xffeff47d + movk x4, #0xffef, lsl #16 // .Load upper half of constant 0xffeff47d + add w6, w9, w6 // Add X parameter round 4 D=II(D, A, B, C, 0x8f0ccc92, s=10, M[3]) + add w8, w8, w16 // Add dest value + orn x10, x6, x17 // Begin aux function round 4 I(x,y,z)=((~z|x)^y) + add w8, w8, w4 // Add constant 0xffeff47d + eor x4, x9, x10 // End aux function round 4 I(x,y,z)=((~z|x)^y) + add w8, w8, w4 // Add aux function result + ror w8, w8, #17 // Rotate left s=15 bits + movz x4, #0x5dd1 // .Load lower half of constant 0x85845dd1 + movk x4, #0x8584, lsl #16 // .Load upper half of constant 0x85845dd1 + add w8, w6, w8 // Add X parameter round 4 C=II(C, D, A, B, 0xffeff47d, s=15, M[10]) + orn x10, x8, x9 // Begin aux function round 4 I(x,y,z)=((~z|x)^y) + add w15, w17, w20 // Add dest value + eor x17, x6, x10 // End aux function round 4 I(x,y,z)=((~z|x)^y) + add w15, w15, w4 // Add constant 0x85845dd1 + add w4, w15, w17 // Add aux function result + ror w4, w4, #11 // Rotate left s=21 bits + movz x15, #0x7e4f // .Load lower half of constant 0x6fa87e4f + movk x15, #0x6fa8, lsl #16 // .Load upper half of constant 0x6fa87e4f + add w17, w8, w4 // Add X parameter round 4 B=II(B, C, D, A, 0x85845dd1, s=21, M[1]) + add w4, w9, w5 // Add dest value + orn x9, x17, x6 // Begin aux function round 4 I(x,y,z)=((~z|x)^y) + add w15, w4, w15 // Add constant 0x6fa87e4f + eor x4, x8, x9 // End aux function round 4 I(x,y,z)=((~z|x)^y) + add w9, w15, w4 // Add aux function result + ror w9, w9, #26 // Rotate left s=6 bits + movz x15, #0xe6e0 // .Load lower half of constant 0xfe2ce6e0 + movk x15, #0xfe2c, lsl #16 // .Load upper half of constant 0xfe2ce6e0 + add w4, w17, w9 // Add X parameter round 4 A=II(A, B, C, D, 0x6fa87e4f, s=6, M[8]) + orn x9, x4, x8 // Begin aux function round 4 I(x,y,z)=((~z|x)^y) + add w6, w6, w27 // Add dest value + eor x9, x17, x9 // End aux function round 4 I(x,y,z)=((~z|x)^y) + add w15, w6, w15 // Add constant 0xfe2ce6e0 + add w6, w15, w9 // Add aux function result + ror w6, w6, #22 // Rotate left s=10 bits + movz x9, #0x4314 // .Load lower half of constant 0xa3014314 + movk x9, #0xa301, lsl #16 // .Load upper half of constant 0xa3014314 + add w15, w4, w6 // Add X parameter round 4 D=II(D, A, B, C, 0xfe2ce6e0, s=10, M[15]) + add w6, w8, w7 // Add dest value + orn x7, x15, x17 // Begin aux function round 4 I(x,y,z)=((~z|x)^y) + add w8, w6, w9 // Add constant 0xa3014314 + eor x9, x4, x7 // End aux function round 4 I(x,y,z)=((~z|x)^y) + add w6, w8, w9 // Add aux function result + ror w6, w6, #17 // Rotate left s=15 bits + movz x7, #0x11a1 // .Load lower half of constant 0x4e0811a1 + movk x7, #0x4e08, lsl #16 // .Load upper half of constant 0x4e0811a1 + add w8, w15, w6 // Add X parameter round 4 C=II(C, D, A, B, 0xa3014314, s=15, M[6]) + orn x9, x8, x4 // Begin aux function round 4 I(x,y,z)=((~z|x)^y) + add w6, w17, w26 // Add dest value + eor x17, x15, x9 // End aux function round 4 I(x,y,z)=((~z|x)^y) + add w9, w6, w7 // Add constant 0x4e0811a1 + add w7, w9, w17 // Add aux function result + ror w7, w7, #11 // Rotate left s=21 bits + movz x6, #0x7e82 // .Load lower half of constant 0xf7537e82 + movk x6, #0xf753, lsl #16 // .Load upper half of constant 0xf7537e82 + add w9, w8, w7 // Add X parameter round 4 B=II(B, C, D, A, 0x4e0811a1, s=21, M[13]) + add w17, w4, w14 // Add dest value + orn x7, x9, x15 // Begin aux function round 4 I(x,y,z)=((~z|x)^y) + add w14, w17, w6 // Add constant 0xf7537e82 + eor x4, x8, x7 // End aux function round 4 I(x,y,z)=((~z|x)^y) + add w17, w14, w4 // Add aux function result + ror w17, w17, #26 // Rotate left s=6 bits + movz x6, #0xf235 // .Load lower half of constant 0xbd3af235 + movk x6, #0xbd3a, lsl #16 // .Load upper half of constant 0xbd3af235 + add w7, w9, w17 // Add X parameter round 4 A=II(A, B, C, D, 0xf7537e82, s=6, M[4]) + orn x14, x7, x8 // Begin aux function round 4 I(x,y,z)=((~z|x)^y) + add w4, w15, w25 // Add dest value + eor x17, x9, x14 // End aux function round 4 I(x,y,z)=((~z|x)^y) + add w15, w4, w6 // Add constant 0xbd3af235 + add w16, w15, w17 // Add aux function result + ror w16, w16, #22 // Rotate left s=10 bits + movz x14, #0xd2bb // .Load lower half of constant 0x2ad7d2bb + movk x14, #0x2ad7, lsl #16 // .Load upper half of constant 0x2ad7d2bb + add w4, w7, w16 // Add X parameter round 4 D=II(D, A, B, C, 0xbd3af235, s=10, M[11]) + add w6, w8, w3 // Add dest value + orn x15, x4, x9 // Begin aux function round 4 I(x,y,z)=((~z|x)^y) + add w17, w6, w14 // Add constant 0x2ad7d2bb + eor x16, x7, x15 // End aux function round 4 I(x,y,z)=((~z|x)^y) + add w8, w17, w16 // Add aux function result + ror w8, w8, #17 // Rotate left s=15 bits + movz x3, #0xd391 // .Load lower half of constant 0xeb86d391 + movk x3, #0xeb86, lsl #16 // .Load upper half of constant 0xeb86d391 + add w14, w4, w8 // Add X parameter round 4 C=II(C, D, A, B, 0x2ad7d2bb, s=15, M[2]) + orn x6, x14, x7 // Begin aux function round 4 I(x,y,z)=((~z|x)^y) + add w15, w9, w24 // Add dest value + eor x17, x4, x6 // End aux function round 4 I(x,y,z)=((~z|x)^y) + add w16, w15, w3 // Add constant 0xeb86d391 + add w8, w16, w17 // Add aux function result + ror w8, w8, #11 // Rotate left s=21 bits + ldp w6, w15, [x0] // Reload MD5 state->A and state->B + ldp w5, w9, [x0, #8] // Reload MD5 state->C and state->D + add w3, w14, w8 // Add X parameter round 4 B=II(B, C, D, A, 0xeb86d391, s=21, M[9]) + add w13, w4, w9 // Add result of MD5 rounds to state->D + add w12, w14, w5 // Add result of MD5 rounds to state->C + add w10, w7, w6 // Add result of MD5 rounds to state->A + add w11, w3, w15 // Add result of MD5 rounds to state->B + stp w12, w13, [x0, #8] // Store MD5 states C,D + stp w10, w11, [x0] // Store MD5 states A,B + add x1, x1, #64 // Increment data pointer + subs w2, w2, #1 // Decrement block counter + b.ne ossl_md5_blocks_loop + + ldp x21,x22,[sp,#16] + ldp x23,x24,[sp,#32] + ldp x25,x26,[sp,#48] + ldp x27,x28,[sp,#64] + ldp x19,x20,[sp],#80 + ret + diff --git a/deps/openssl/config/archs/linux-aarch64/asm/crypto/modes/aes-gcm-armv8-unroll8_64.S b/deps/openssl/config/archs/linux-aarch64/asm/crypto/modes/aes-gcm-armv8-unroll8_64.S new file mode 100644 index 00000000000000..a53d209f2cda18 --- /dev/null +++ b/deps/openssl/config/archs/linux-aarch64/asm/crypto/modes/aes-gcm-armv8-unroll8_64.S @@ -0,0 +1,8487 @@ +#include "arm_arch.h" + +#if __ARM_MAX_ARCH__>=8 +.arch armv8-a+crypto +.text +.globl unroll8_eor3_aes_gcm_enc_128_kernel +.type unroll8_eor3_aes_gcm_enc_128_kernel,%function +.align 4 +unroll8_eor3_aes_gcm_enc_128_kernel: + AARCH64_VALID_CALL_TARGET + cbz x1, .L128_enc_ret + stp d8, d9, [sp, #-80]! + lsr x9, x1, #3 + mov x16, x4 + mov x8, x5 + stp d10, d11, [sp, #16] + stp d12, d13, [sp, #32] + stp d14, d15, [sp, #48] + mov x5, #0xc200000000000000 + stp x5, xzr, [sp, #64] + add x10, sp, #64 + + mov x15, #0x100000000 //set up counter increment + movi v31.16b, #0x0 + mov v31.d[1], x15 + mov x5, x9 + ld1 { v0.16b}, [x16] //CTR block 0 + + sub x5, x5, #1 //byte_len - 1 + + and x5, x5, #0xffffffffffffff80 //number of bytes to be processed in main loop (at least 1 byte must be handled by tail) + + rev32 v30.16b, v0.16b //set up reversed counter + + add v30.4s, v30.4s, v31.4s //CTR block 0 + + rev32 v1.16b, v30.16b //CTR block 1 + add v30.4s, v30.4s, v31.4s //CTR block 1 + + rev32 v2.16b, v30.16b //CTR block 2 + add v30.4s, v30.4s, v31.4s //CTR block 2 + + rev32 v3.16b, v30.16b //CTR block 3 + add v30.4s, v30.4s, v31.4s //CTR block 3 + + rev32 v4.16b, v30.16b //CTR block 4 + add v30.4s, v30.4s, v31.4s //CTR block 4 + + rev32 v5.16b, v30.16b //CTR block 5 + add v30.4s, v30.4s, v31.4s //CTR block 5 + ldp q26, q27, [x8, #0] //load rk0, rk1 + + rev32 v6.16b, v30.16b //CTR block 6 + add v30.4s, v30.4s, v31.4s //CTR block 6 + + rev32 v7.16b, v30.16b //CTR block 7 + add v30.4s, v30.4s, v31.4s //CTR block 7 + + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 4 - round 0 + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 6 - round 0 + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 3 - round 0 + + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 0 - round 0 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 1 - round 0 + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 2 - round 0 + + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 7 - round 0 + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 5 - round 0 + ldp q28, q26, [x8, #32] //load rk2, rk3 + + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 3 - round 1 + + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 7 - round 1 + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 5 - round 1 + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 4 - round 1 + + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 2 - round 1 + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 6 - round 1 + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 0 - round 1 + + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 5 - round 2 + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 1 - round 1 + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 0 - round 2 + + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 2 - round 2 + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 3 - round 2 + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 7 - round 2 + + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 1 - round 2 + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 6 - round 2 + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 4 - round 2 + + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 2 - round 3 + + ldp q27, q28, [x8, #64] //load rk4, rk5 + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 5 - round 3 + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 0 - round 3 + + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 4 - round 3 + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 3 - round 3 + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 6 - round 3 + + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 7 - round 3 + + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 6 - round 4 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 1 - round 3 + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 5 - round 4 + + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 7 - round 4 + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 4 - round 4 + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 0 - round 4 + + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 1 - round 4 + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 2 - round 4 + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 3 - round 4 + + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 7 - round 5 + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 0 - round 5 + ldp q26, q27, [x8, #96] //load rk6, rk7 + + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 1 - round 5 + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 3 - round 5 + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 2 - round 5 + + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 4 - round 5 + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 5 - round 5 + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 6 - round 5 + + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 4 - round 6 + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 3 - round 6 + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 2 - round 6 + + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 7 - round 6 + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 6 - round 6 + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 5 - round 6 + + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 0 - round 6 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 1 - round 6 + ldp q28, q26, [x8, #128] //load rk8, rk9 + + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 5 - round 7 + + ld1 { v19.16b}, [x3] + ext v19.16b, v19.16b, v19.16b, #8 + rev64 v19.16b, v19.16b + + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 7 - round 7 + + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 4 - round 7 + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 3 - round 7 + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 6 - round 7 + + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 1 - round 7 + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 2 - round 7 + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 0 - round 7 + + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 8 + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 8 + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 8 + + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 8 + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 8 + ldr q27, [x8, #160] //load rk10 + + aese v3.16b, v26.16b //AES block 8k+11 - round 9 + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 8 + aese v2.16b, v26.16b //AES block 8k+10 - round 9 + + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 8 + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 8 + aese v6.16b, v26.16b //AES block 8k+14 - round 9 + + aese v4.16b, v26.16b //AES block 8k+12 - round 9 + add x5, x5, x0 + aese v0.16b, v26.16b //AES block 8k+8 - round 9 + + aese v7.16b, v26.16b //AES block 8k+15 - round 9 + aese v5.16b, v26.16b //AES block 8k+13 - round 9 + aese v1.16b, v26.16b //AES block 8k+9 - round 9 + + add x4, x0, x1, lsr #3 //end_input_ptr + cmp x0, x5 //check if we have <= 8 blocks + b.ge .L128_enc_tail //handle tail + + ldp q8, q9, [x0], #32 //AES block 0, 1 - load plaintext + + ldp q10, q11, [x0], #32 //AES block 2, 3 - load plaintext + + ldp q12, q13, [x0], #32 //AES block 4, 5 - load plaintext + + ldp q14, q15, [x0], #32 //AES block 6, 7 - load plaintext + cmp x0, x5 //check if we have <= 8 blocks + +.inst 0xce006d08 //eor3 v8.16b, v8.16b, v0.16b, v27.16b //AES block 0 - result + rev32 v0.16b, v30.16b //CTR block 8 + add v30.4s, v30.4s, v31.4s //CTR block 8 + +.inst 0xce016d29 //eor3 v9.16b, v9.16b, v1.16b, v27.16b //AES block 1 - result + stp q8, q9, [x2], #32 //AES block 0, 1 - store result + + rev32 v1.16b, v30.16b //CTR block 9 +.inst 0xce056dad //eor3 v13.16b, v13.16b, v5.16b, v27.16b //AES block 5 - result + add v30.4s, v30.4s, v31.4s //CTR block 9 + +.inst 0xce026d4a //eor3 v10.16b, v10.16b, v2.16b, v27.16b //AES block 2 - result +.inst 0xce066dce //eor3 v14.16b, v14.16b, v6.16b, v27.16b //AES block 6 - result +.inst 0xce046d8c //eor3 v12.16b, v12.16b, v4.16b, v27.16b //AES block 4 - result + + rev32 v2.16b, v30.16b //CTR block 10 + add v30.4s, v30.4s, v31.4s //CTR block 10 + +.inst 0xce036d6b //eor3 v11.16b, v11.16b, v3.16b, v27.16b //AES block 3 - result +.inst 0xce076def //eor3 v15.16b, v15.16b, v7.16b,v27.16b //AES block 7 - result + stp q10, q11, [x2], #32 //AES block 2, 3 - store result + + rev32 v3.16b, v30.16b //CTR block 11 + add v30.4s, v30.4s, v31.4s //CTR block 11 + stp q12, q13, [x2], #32 //AES block 4, 5 - store result + + stp q14, q15, [x2], #32 //AES block 6, 7 - store result + + rev32 v4.16b, v30.16b //CTR block 12 + add v30.4s, v30.4s, v31.4s //CTR block 12 + b.ge .L128_enc_prepretail //do prepretail + +.L128_enc_main_loop: //main loop start + rev32 v5.16b, v30.16b //CTR block 8k+13 + ldr q20, [x3, #128] //load h5l | h5h + ext v20.16b, v20.16b, v20.16b, #8 + ldr q22, [x3, #160] //load h6l | h6h + ext v22.16b, v22.16b, v22.16b, #8 + add v30.4s, v30.4s, v31.4s //CTR block 8k+13 + + rev64 v9.16b, v9.16b //GHASH block 8k+1 + rev64 v8.16b, v8.16b //GHASH block 8k + ldr q23, [x3, #176] //load h7l | h7h + ext v23.16b, v23.16b, v23.16b, #8 + ldr q25, [x3, #208] //load h8l | h8h + ext v25.16b, v25.16b, v25.16b, #8 + + rev32 v6.16b, v30.16b //CTR block 8k+14 + add v30.4s, v30.4s, v31.4s //CTR block 8k+14 + ext v19.16b, v19.16b, v19.16b, #8 //PRE 0 + + ldr q21, [x3, #144] //load h6k | h5k + ldr q24, [x3, #192] //load h8k | h7k + rev64 v13.16b, v13.16b //GHASH block 8k+5 (t0, t1, t2 and t3 free) + rev64 v11.16b, v11.16b //GHASH block 8k+3 + + ldp q26, q27, [x8, #0] //load rk0, rk1 + eor v8.16b, v8.16b, v19.16b //PRE 1 + rev32 v7.16b, v30.16b //CTR block 8k+15 + + rev64 v15.16b, v15.16b //GHASH block 8k+7 (t0, t1, t2 and t3 free) + + pmull2 v16.1q, v9.2d, v23.2d //GHASH block 8k+1 - high + rev64 v10.16b, v10.16b //GHASH block 8k+2 + pmull2 v17.1q, v8.2d, v25.2d //GHASH block 8k - high + + pmull v23.1q, v9.1d, v23.1d //GHASH block 8k+1 - low + trn1 v18.2d, v9.2d, v8.2d //GHASH block 8k, 8k+1 - mid + pmull v19.1q, v8.1d, v25.1d //GHASH block 8k - low + + trn2 v8.2d, v9.2d, v8.2d //GHASH block 8k, 8k+1 - mid + pmull2 v29.1q, v10.2d, v22.2d //GHASH block 8k+2 - high + pmull2 v9.1q, v11.2d, v20.2d //GHASH block 8k+3 - high + + eor v19.16b, v19.16b, v23.16b //GHASH block 8k+1 - low + ldr q23, [x3, #80] //load h3l | h3h + ext v23.16b, v23.16b, v23.16b, #8 + ldr q25, [x3, #112] //load h3l | h3h + ext v25.16b, v25.16b, v25.16b, #8 + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 0 + + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 0 + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 0 + eor v17.16b, v17.16b, v16.16b //GHASH block 8k+1 - high + + add v30.4s, v30.4s, v31.4s //CTR block 8k+15 + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 0 + eor v8.16b, v8.16b, v18.16b //GHASH block 8k, 8k+1 - mid + + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 0 + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 1 + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 0 + + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 1 + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 0 + pmull v22.1q, v10.1d, v22.1d //GHASH block 8k+2 - low + + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 1 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 0 + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 1 + +.inst 0xce1d2631 //eor3 v17.16b, v17.16b, v29.16b,v9.16b //GHASH block 8k+2, 8k+3 - high + trn1 v29.2d, v11.2d, v10.2d //GHASH block 8k+2, 8k+3 - mid + trn2 v10.2d, v11.2d, v10.2d //GHASH block 8k+2, 8k+3 - mid + + ldp q28, q26, [x8, #32] //load rk2, rk3 + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 1 + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 1 + + pmull v20.1q, v11.1d, v20.1d //GHASH block 8k+3 - low + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 1 + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 1 + + pmull2 v18.1q, v8.2d, v24.2d //GHASH block 8k - mid + eor v10.16b, v10.16b, v29.16b //GHASH block 8k+2, 8k+3 - mid + pmull v24.1q, v8.1d, v24.1d //GHASH block 8k+1 - mid + + rev64 v14.16b, v14.16b //GHASH block 8k+6 (t0, t1, and t2 free) +.inst 0xce165273 //eor3 v19.16b, v19.16b, v22.16b, v20.16b //GHASH block 8k+2, 8k+3 - low + + pmull2 v29.1q, v10.2d, v21.2d //GHASH block 8k+2 - mid + eor v18.16b, v18.16b, v24.16b //GHASH block 8k+1 - mid + pmull v21.1q, v10.1d, v21.1d //GHASH block 8k+3 - mid + + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 2 + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 2 + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 2 + + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 2 +.inst 0xce157652 //eor3 v18.16b, v18.16b, v21.16b, v29.16b //GHASH block 8k+2, 8k+3 - mid + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 2 + + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 2 + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 2 + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 2 + + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 3 + ldr q21, [x3, #48] //load h2k | h1k + ldr q24, [x3, #96] //load h4k | h3k + rev64 v12.16b, v12.16b //GHASH block 8k+4 (t0, t1, and t2 free) + + ldp q27, q28, [x8, #64] //load rk4, rk5 + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 3 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 3 + + ldr q20, [x3, #32] //load h1l | h1h + ext v20.16b, v20.16b, v20.16b, #8 + ldr q22, [x3, #64] //load h1l | h1h + ext v22.16b, v22.16b, v22.16b, #8 + pmull2 v8.1q, v12.2d, v25.2d //GHASH block 8k+4 - high + pmull v25.1q, v12.1d, v25.1d //GHASH block 8k+4 - low + + trn1 v16.2d, v13.2d, v12.2d //GHASH block 8k+4, 8k+5 - mid + trn2 v12.2d, v13.2d, v12.2d //GHASH block 8k+4, 8k+5 - mid + + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 3 + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 3 + + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 3 + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 3 + + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 3 + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 4 + + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 4 + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 4 + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 4 + + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 4 + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 4 + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 4 + + pmull2 v10.1q, v13.2d, v23.2d //GHASH block 8k+5 - high + eor v12.16b, v12.16b, v16.16b //GHASH block 8k+4, 8k+5 - mid + pmull v23.1q, v13.1d, v23.1d //GHASH block 8k+5 - low + + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 4 + ldp q26, q27, [x8, #96] //load rk6, rk7 + trn1 v13.2d, v15.2d, v14.2d //GHASH block 8k+6, 8k+7 - mid + + pmull2 v16.1q, v12.2d, v24.2d //GHASH block 8k+4 - mid + pmull v24.1q, v12.1d, v24.1d //GHASH block 8k+5 - mid + pmull2 v11.1q, v14.2d, v22.2d //GHASH block 8k+6 - high + + pmull2 v12.1q, v15.2d, v20.2d //GHASH block 8k+7 - high + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 5 + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 5 + + pmull v22.1q, v14.1d, v22.1d //GHASH block 8k+6 - low +.inst 0xce082a31 //eor3 v17.16b, v17.16b, v8.16b, v10.16b //GHASH block 8k+4, 8k+5 - high + trn2 v14.2d, v15.2d, v14.2d //GHASH block 8k+6, 8k+7 - mid + +.inst 0xce195e73 //eor3 v19.16b, v19.16b, v25.16b, v23.16b //GHASH block 8k+4, 8k+5 - low + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 5 + + eor v14.16b, v14.16b, v13.16b //GHASH block 8k+6, 8k+7 - mid + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 5 + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 5 + + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 5 + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 5 + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 5 + +.inst 0xce184252 //eor3 v18.16b, v18.16b, v24.16b, v16.16b //GHASH block 8k+4, 8k+5 - mid + ldr d16, [x10] //MODULO - load modulo constant + pmull v20.1q, v15.1d, v20.1d //GHASH block 8k+7 - low + + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 6 + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 6 + + pmull2 v13.1q, v14.2d, v21.2d //GHASH block 8k+6 - mid + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 6 + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 6 + + pmull v21.1q, v14.1d, v21.1d //GHASH block 8k+7 - mid +.inst 0xce165273 //eor3 v19.16b, v19.16b, v22.16b, v20.16b //GHASH block 8k+6, 8k+7 - low + ldp q8, q9, [x0], #32 //AES block 8k+8, 8k+9 - load plaintext + + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 6 + rev32 v20.16b, v30.16b //CTR block 8k+16 + add v30.4s, v30.4s, v31.4s //CTR block 8k+16 + + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 6 + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 6 + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 6 + +.inst 0xce153652 //eor3 v18.16b, v18.16b, v21.16b, v13.16b //GHASH block 8k+6, 8k+7 - mid + ldp q28, q26, [x8, #128] //load rk8, rk9 +.inst 0xce0b3231 //eor3 v17.16b, v17.16b, v11.16b, v12.16b //GHASH block 8k+6, 8k+7 - high + + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 7 + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 7 + ldp q10, q11, [x0], #32 //AES block 8k+10, 8k+11 - load plaintext + + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 7 + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 7 + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 7 + + pmull v21.1q, v17.1d, v16.1d //MODULO - top 64b align with mid + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 7 + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 7 + + rev32 v22.16b, v30.16b //CTR block 8k+17 + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 7 + + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 8 + ldp q12, q13, [x0], #32 //AES block 8k+12, 8k+13 - load plaintext + add v30.4s, v30.4s, v31.4s //CTR block 8k+17 + + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 8 + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 8 + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 8 + + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 8 +.inst 0xce114e52 //eor3 v18.16b, v18.16b, v17.16b, v19.16b //MODULO - karatsuba tidy up + ldr q27, [x8, #160] //load rk10 + + ext v29.16b, v17.16b, v17.16b, #8 //MODULO - other top alignment + rev32 v23.16b, v30.16b //CTR block 8k+18 + add v30.4s, v30.4s, v31.4s //CTR block 8k+18 + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 8 + + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 8 +.inst 0xce1d5652 //eor3 v18.16b, v18.16b, v29.16b, v21.16b //MODULO - fold into mid + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 8 + + aese v2.16b, v26.16b //AES block 8k+10 - round 9 + aese v4.16b, v26.16b //AES block 8k+12 - round 9 + aese v1.16b, v26.16b //AES block 8k+9 - round 9 + + ldp q14, q15, [x0], #32 //AES block 8k+14, 8k+15 - load plaintext + rev32 v25.16b, v30.16b //CTR block 8k+19 + add v30.4s, v30.4s, v31.4s //CTR block 8k+19 + + cmp x0, x5 //.LOOP CONTROL +.inst 0xce046d8c //eor3 v12.16b, v12.16b, v4.16b, v27.16b //AES block 4 - result + aese v7.16b, v26.16b //AES block 8k+15 - round 9 + + aese v6.16b, v26.16b //AES block 8k+14 - round 9 + aese v3.16b, v26.16b //AES block 8k+11 - round 9 + +.inst 0xce026d4a //eor3 v10.16b, v10.16b, v2.16b, v27.16b //AES block 8k+10 - result + + mov v2.16b, v23.16b //CTR block 8k+18 + aese v0.16b, v26.16b //AES block 8k+8 - round 9 + + rev32 v4.16b, v30.16b //CTR block 8k+20 + add v30.4s, v30.4s, v31.4s //CTR block 8k+20 + +.inst 0xce076def //eor3 v15.16b, v15.16b, v7.16b, v27.16b //AES block 7 - result + aese v5.16b, v26.16b //AES block 8k+13 - round 9 + pmull v17.1q, v18.1d, v16.1d //MODULO - mid 64b align with low + +.inst 0xce016d29 //eor3 v9.16b, v9.16b, v1.16b, v27.16b //AES block 8k+9 - result +.inst 0xce036d6b //eor3 v11.16b, v11.16b, v3.16b, v27.16b //AES block 8k+11 - result + mov v3.16b, v25.16b //CTR block 8k+19 + + ext v21.16b, v18.16b, v18.16b, #8 //MODULO - other mid alignment +.inst 0xce056dad //eor3 v13.16b, v13.16b, v5.16b, v27.16b //AES block 5 - result + mov v1.16b, v22.16b //CTR block 8k+17 + +.inst 0xce006d08 //eor3 v8.16b, v8.16b, v0.16b, v27.16b //AES block 8k+8 - result + mov v0.16b, v20.16b //CTR block 8k+16 + stp q8, q9, [x2], #32 //AES block 8k+8, 8k+9 - store result + + stp q10, q11, [x2], #32 //AES block 8k+10, 8k+11 - store result +.inst 0xce066dce //eor3 v14.16b, v14.16b, v6.16b, v27.16b //AES block 6 - result + + stp q12, q13, [x2], #32 //AES block 8k+12, 8k+13 - store result +.inst 0xce115673 //eor3 v19.16b, v19.16b, v17.16b, v21.16b //MODULO - fold into low + + stp q14, q15, [x2], #32 //AES block 8k+14, 8k+15 - store result + b.lt .L128_enc_main_loop + +.L128_enc_prepretail: //PREPRETAIL + rev32 v5.16b, v30.16b //CTR block 8k+13 + ldr q23, [x3, #176] //load h7l | h7h + ext v23.16b, v23.16b, v23.16b, #8 + ldr q25, [x3, #208] //load h8l | h8h + ext v25.16b, v25.16b, v25.16b, #8 + ext v19.16b, v19.16b, v19.16b, #8 //PRE 0 + + ldr q20, [x3, #128] //load h5l | h5h + ext v20.16b, v20.16b, v20.16b, #8 + ldr q22, [x3, #160] //load h6l | h6h + ext v22.16b, v22.16b, v22.16b, #8 + rev64 v8.16b, v8.16b //GHASH block 8k + rev64 v9.16b, v9.16b //GHASH block 8k+1 + + ldr q21, [x3, #144] //load h6k | h5k + ldr q24, [x3, #192] //load h6k | h5k + add v30.4s, v30.4s, v31.4s //CTR block 8k+13 + rev64 v11.16b, v11.16b //GHASH block 8k+3 + + rev64 v10.16b, v10.16b //GHASH block 8k+2 + eor v8.16b, v8.16b, v19.16b //PRE 1 + + rev32 v6.16b, v30.16b //CTR block 8k+14 + + pmull2 v16.1q, v9.2d, v23.2d //GHASH block 8k+1 - high + pmull v19.1q, v8.1d, v25.1d //GHASH block 8k - low + pmull2 v17.1q, v8.2d, v25.2d //GHASH block 8k - high + + rev64 v13.16b, v13.16b //GHASH block 8k+5 (t0, t1, t2 and t3 free) + trn1 v18.2d, v9.2d, v8.2d //GHASH block 8k, 8k+1 - mid + + pmull v23.1q, v9.1d, v23.1d //GHASH block 8k+1 - low + eor v17.16b, v17.16b, v16.16b //GHASH block 8k+1 - high + trn2 v8.2d, v9.2d, v8.2d //GHASH block 8k, 8k+1 - mid + + eor v19.16b, v19.16b, v23.16b //GHASH block 8k+1 - low + eor v8.16b, v8.16b, v18.16b //GHASH block 8k, 8k+1 - mid + + ldp q26, q27, [x8, #0] //load rk0, rk1 + add v30.4s, v30.4s, v31.4s //CTR block 8k+14 + + pmull2 v18.1q, v8.2d, v24.2d //GHASH block 8k - mid + pmull v24.1q, v8.1d, v24.1d //GHASH block 8k+1 - mid + + rev64 v12.16b, v12.16b //GHASH block 8k+4 (t0, t1, and t2 free) + rev64 v15.16b, v15.16b //GHASH block 8k+7 (t0, t1, t2 and t3 free) + + eor v18.16b, v18.16b, v24.16b //GHASH block 8k+1 - mid + + rev32 v7.16b, v30.16b //CTR block 8k+15 + + rev64 v14.16b, v14.16b //GHASH block 8k+6 (t0, t1, and t2 free) + + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 0 + + pmull2 v9.1q, v11.2d, v20.2d //GHASH block 8k+3 - high + pmull2 v29.1q, v10.2d, v22.2d //GHASH block 8k+2 - high + + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 0 + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 0 + + pmull v22.1q, v10.1d, v22.1d //GHASH block 8k+2 - low + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 0 + +.inst 0xce1d2631 //eor3 v17.16b, v17.16b, v29.16b, v9.16b //GHASH block 8k+2, 8k+3 - high + trn1 v29.2d, v11.2d, v10.2d //GHASH block 8k+2, 8k+3 - mid + trn2 v10.2d, v11.2d, v10.2d //GHASH block 8k+2, 8k+3 - mid + + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 0 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 0 + + eor v10.16b, v10.16b, v29.16b //GHASH block 8k+2, 8k+3 - mid + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 0 + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 0 + + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 1 + pmull v20.1q, v11.1d, v20.1d //GHASH block 8k+3 - low + + ldr q23, [x3, #80] //load h3l | h3h + ext v23.16b, v23.16b, v23.16b, #8 + ldr q25, [x3, #112] //load h4l | h4h + ext v25.16b, v25.16b, v25.16b, #8 + + ldp q28, q26, [x8, #32] //load rk2, rk3 + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 1 + pmull2 v29.1q, v10.2d, v21.2d //GHASH block 8k+2 - mid + +.inst 0xce165273 //eor3 v19.16b, v19.16b, v22.16b, v20.16b //GHASH block 8k+2, 8k+3 - low + pmull v21.1q, v10.1d, v21.1d //GHASH block 8k+3 - mid + + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 1 + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 1 + +.inst 0xce157652 //eor3 v18.16b, v18.16b, v21.16b, v29.16b //GHASH block 8k+2, 8k+3 - mid + ldr q21, [x3, #48] //load h2k | h1k + ldr q24, [x3, #96] //load h4k | h3k + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 1 + + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 1 + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 1 + + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 2 + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 2 + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 2 + + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 2 + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 1 + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 2 + + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 3 + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 2 + + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 2 + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 2 + ldp q27, q28, [x8, #64] //load rk4, rk5 + + ldr q20, [x3, #32] //load h1l | h1h + ext v20.16b, v20.16b, v20.16b, #8 + ldr q22, [x3, #64] //load h1l | h1h + ext v22.16b, v22.16b, v22.16b, #8 + trn1 v16.2d, v13.2d, v12.2d //GHASH block 8k+4, 8k+5 - mid + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 3 + + pmull2 v8.1q, v12.2d, v25.2d //GHASH block 8k+4 - high + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 3 + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 3 + + pmull v25.1q, v12.1d, v25.1d //GHASH block 8k+4 - low + trn2 v12.2d, v13.2d, v12.2d //GHASH block 8k+4, 8k+5 - mid + pmull2 v10.1q, v13.2d, v23.2d //GHASH block 8k+5 - high + + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 3 + add v30.4s, v30.4s, v31.4s //CTR block 8k+15 + + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 3 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 3 + eor v12.16b, v12.16b, v16.16b //GHASH block 8k+4, 8k+5 - mid + + pmull v23.1q, v13.1d, v23.1d //GHASH block 8k+5 - low + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 3 + pmull2 v11.1q, v14.2d, v22.2d //GHASH block 8k+6 - high + + trn1 v13.2d, v15.2d, v14.2d //GHASH block 8k+6, 8k+7 - mid + pmull v22.1q, v14.1d, v22.1d //GHASH block 8k+6 - low + trn2 v14.2d, v15.2d, v14.2d //GHASH block 8k+6, 8k+7 - mid + + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 4 + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 4 +.inst 0xce082a31 //eor3 v17.16b, v17.16b, v8.16b, v10.16b //GHASH block 8k+4, 8k+5 - high + +.inst 0xce195e73 //eor3 v19.16b, v19.16b, v25.16b, v23.16b //GHASH block 8k+4, 8k+5 - low + eor v14.16b, v14.16b, v13.16b //GHASH block 8k+6, 8k+7 - mid + pmull2 v16.1q, v12.2d, v24.2d //GHASH block 8k+4 - mid + + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 5 + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 4 + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 4 + + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 4 + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 4 + + pmull v24.1q, v12.1d, v24.1d //GHASH block 8k+5 - mid + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 4 + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 4 + + pmull2 v12.1q, v15.2d, v20.2d //GHASH block 8k+7 - high + ldp q26, q27, [x8, #96] //load rk6, rk7 + pmull v20.1q, v15.1d, v20.1d //GHASH block 8k+7 - low + +.inst 0xce184252 //eor3 v18.16b, v18.16b, v24.16b, v16.16b //GHASH block 8k+4, 8k+5 - mid + pmull2 v13.1q, v14.2d, v21.2d //GHASH block 8k+6 - mid + pmull v21.1q, v14.1d, v21.1d //GHASH block 8k+7 - mid + + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 5 + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 5 + ldr d16, [x10] //MODULO - load modulo constant + + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 5 + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 5 + +.inst 0xce0b3231 //eor3 v17.16b, v17.16b, v11.16b, v12.16b //GHASH block 8k+6, 8k+7 - high + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 5 + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 5 + + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 5 + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 6 + + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 6 + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 6 + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 6 + + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 6 +.inst 0xce165273 //eor3 v19.16b, v19.16b, v22.16b, v20.16b //GHASH block 8k+6, 8k+7 - low +.inst 0xce153652 //eor3 v18.16b, v18.16b, v21.16b, v13.16b //GHASH block 8k+6, 8k+7 - mid + + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 6 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 6 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 6 + + pmull v21.1q, v17.1d, v16.1d //MODULO - top 64b align with mid +.inst 0xce114e52 //eor3 v18.16b, v18.16b, v17.16b, v19.16b //MODULO - karatsuba tidy up + ldp q28, q26, [x8, #128] //load rk8, rk9 + + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 7 + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 7 + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 7 + ext v29.16b, v17.16b, v17.16b, #8 //MODULO - other top alignment + + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 7 + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 7 +.inst 0xce1d5652 //eor3 v18.16b, v18.16b, v29.16b, v21.16b //MODULO - fold into mid + + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 7 + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 7 + + pmull v17.1q, v18.1d, v16.1d //MODULO - mid 64b align with low + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 7 + + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 8 + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 8 + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 8 + ext v18.16b, v18.16b, v18.16b, #8 //MODULO - other mid alignment + + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 8 +.inst 0xce114a73 //eor3 v19.16b, v19.16b, v17.16b, v18.16b //MODULO - fold into low + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 8 + + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 8 + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 8 + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 8 + + ldr q27, [x8, #160] //load rk10 + aese v6.16b, v26.16b //AES block 8k+14 - round 9 + aese v2.16b, v26.16b //AES block 8k+10 - round 9 + + aese v0.16b, v26.16b //AES block 8k+8 - round 9 + aese v1.16b, v26.16b //AES block 8k+9 - round 9 + + aese v3.16b, v26.16b //AES block 8k+11 - round 9 + aese v5.16b, v26.16b //AES block 8k+13 - round 9 + + aese v4.16b, v26.16b //AES block 8k+12 - round 9 + aese v7.16b, v26.16b //AES block 8k+15 - round 9 +.L128_enc_tail: //TAIL + + sub x5, x4, x0 //main_end_input_ptr is number of bytes left to process + ldr q8, [x0], #16 //AES block 8k+8 - load plaintext + + mov v29.16b, v27.16b + ldp q20, q21, [x3, #128] //load h5l | h5h + ext v20.16b, v20.16b, v20.16b, #8 + +.inst 0xce007509 //eor3 v9.16b, v8.16b, v0.16b, v29.16b //AES block 8k+8 - result + ext v16.16b, v19.16b, v19.16b, #8 //prepare final partial tag + ldp q22, q23, [x3, #160] //load h6l | h6h + ext v22.16b, v22.16b, v22.16b, #8 + ext v23.16b, v23.16b, v23.16b, #8 + + ldp q24, q25, [x3, #192] //load h8k | h7k + ext v25.16b, v25.16b, v25.16b, #8 + cmp x5, #112 + b.gt .L128_enc_blocks_more_than_7 + + mov v7.16b, v6.16b + mov v6.16b, v5.16b + movi v17.8b, #0 + + cmp x5, #96 + sub v30.4s, v30.4s, v31.4s + mov v5.16b, v4.16b + + mov v4.16b, v3.16b + mov v3.16b, v2.16b + mov v2.16b, v1.16b + + movi v19.8b, #0 + movi v18.8b, #0 + b.gt .L128_enc_blocks_more_than_6 + + mov v7.16b, v6.16b + cmp x5, #80 + + sub v30.4s, v30.4s, v31.4s + mov v6.16b, v5.16b + mov v5.16b, v4.16b + + mov v4.16b, v3.16b + mov v3.16b, v1.16b + b.gt .L128_enc_blocks_more_than_5 + + cmp x5, #64 + sub v30.4s, v30.4s, v31.4s + + mov v7.16b, v6.16b + mov v6.16b, v5.16b + + mov v5.16b, v4.16b + mov v4.16b, v1.16b + b.gt .L128_enc_blocks_more_than_4 + + mov v7.16b, v6.16b + sub v30.4s, v30.4s, v31.4s + mov v6.16b, v5.16b + + mov v5.16b, v1.16b + cmp x5, #48 + b.gt .L128_enc_blocks_more_than_3 + + sub v30.4s, v30.4s, v31.4s + mov v7.16b, v6.16b + mov v6.16b, v1.16b + + cmp x5, #32 + ldr q24, [x3, #96] //load h4k | h3k + b.gt .L128_enc_blocks_more_than_2 + + cmp x5, #16 + + sub v30.4s, v30.4s, v31.4s + mov v7.16b, v1.16b + b.gt .L128_enc_blocks_more_than_1 + + ldr q21, [x3, #48] //load h2k | h1k + sub v30.4s, v30.4s, v31.4s + b .L128_enc_blocks_less_than_1 +.L128_enc_blocks_more_than_7: //blocks left > 7 + st1 { v9.16b}, [x2], #16 //AES final-7 block - store result + + rev64 v8.16b, v9.16b //GHASH final-7 block + ldr q9, [x0], #16 //AES final-6 block - load plaintext + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + + ins v27.d[0], v8.d[1] //GHASH final-7 block - mid + + pmull2 v17.1q, v8.2d, v25.2d //GHASH final-7 block - high + + ins v18.d[0], v24.d[1] //GHASH final-7 block - mid + + eor v27.8b, v27.8b, v8.8b //GHASH final-7 block - mid + movi v16.8b, #0 //suppress further partial tag feed in + +.inst 0xce017529 //eor3 v9.16b, v9.16b, v1.16b, v29.16b //AES final-6 block - result + + pmull v18.1q, v27.1d, v18.1d //GHASH final-7 block - mid + pmull v19.1q, v8.1d, v25.1d //GHASH final-7 block - low +.L128_enc_blocks_more_than_6: //blocks left > 6 + + st1 { v9.16b}, [x2], #16 //AES final-6 block - store result + + rev64 v8.16b, v9.16b //GHASH final-6 block + ldr q9, [x0], #16 //AES final-5 block - load plaintext + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + + ins v27.d[0], v8.d[1] //GHASH final-6 block - mid + +.inst 0xce027529 //eor3 v9.16b, v9.16b, v2.16b, v29.16b //AES final-5 block - result + pmull v26.1q, v8.1d, v23.1d //GHASH final-6 block - low + + eor v27.8b, v27.8b, v8.8b //GHASH final-6 block - mid + movi v16.8b, #0 //suppress further partial tag feed in + + pmull v27.1q, v27.1d, v24.1d //GHASH final-6 block - mid + pmull2 v28.1q, v8.2d, v23.2d //GHASH final-6 block - high + + eor v19.16b, v19.16b, v26.16b //GHASH final-6 block - low + + eor v18.16b, v18.16b, v27.16b //GHASH final-6 block - mid + eor v17.16b, v17.16b, v28.16b //GHASH final-6 block - high +.L128_enc_blocks_more_than_5: //blocks left > 5 + + st1 { v9.16b}, [x2], #16 //AES final-5 block - store result + + rev64 v8.16b, v9.16b //GHASH final-5 block + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + + ins v27.d[0], v8.d[1] //GHASH final-5 block - mid + ldr q9, [x0], #16 //AES final-4 block - load plaintext + pmull2 v28.1q, v8.2d, v22.2d //GHASH final-5 block - high + + eor v17.16b, v17.16b, v28.16b //GHASH final-5 block - high + + eor v27.8b, v27.8b, v8.8b //GHASH final-5 block - mid + + ins v27.d[1], v27.d[0] //GHASH final-5 block - mid + +.inst 0xce037529 //eor3 v9.16b, v9.16b, v3.16b, v29.16b //AES final-4 block - result + pmull v26.1q, v8.1d, v22.1d //GHASH final-5 block - low + movi v16.8b, #0 //suppress further partial tag feed in + + pmull2 v27.1q, v27.2d, v21.2d //GHASH final-5 block - mid + eor v19.16b, v19.16b, v26.16b //GHASH final-5 block - low + + eor v18.16b, v18.16b, v27.16b //GHASH final-5 block - mid +.L128_enc_blocks_more_than_4: //blocks left > 4 + + st1 { v9.16b}, [x2], #16 //AES final-4 block - store result + + rev64 v8.16b, v9.16b //GHASH final-4 block + + ldr q9, [x0], #16 //AES final-3 block - load plaintext + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + + ins v27.d[0], v8.d[1] //GHASH final-4 block - mid + movi v16.8b, #0 //suppress further partial tag feed in + pmull2 v28.1q, v8.2d, v20.2d //GHASH final-4 block - high + + eor v27.8b, v27.8b, v8.8b //GHASH final-4 block - mid + + pmull v26.1q, v8.1d, v20.1d //GHASH final-4 block - low + + eor v17.16b, v17.16b, v28.16b //GHASH final-4 block - high + pmull v27.1q, v27.1d, v21.1d //GHASH final-4 block - mid + + eor v19.16b, v19.16b, v26.16b //GHASH final-4 block - low + +.inst 0xce047529 //eor3 v9.16b, v9.16b, v4.16b, v29.16b //AES final-3 block - result + eor v18.16b, v18.16b, v27.16b //GHASH final-4 block - mid +.L128_enc_blocks_more_than_3: //blocks left > 3 + + st1 { v9.16b}, [x2], #16 //AES final-3 block - store result + + ldr q25, [x3, #112] //load h4l | h4h + ext v25.16b, v25.16b, v25.16b, #8 + + rev64 v8.16b, v9.16b //GHASH final-3 block + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + movi v16.8b, #0 //suppress further partial tag feed in + + ins v27.d[0], v8.d[1] //GHASH final-3 block - mid + ldr q24, [x3, #96] //load h4k | h3k + pmull v26.1q, v8.1d, v25.1d //GHASH final-3 block - low + + ldr q9, [x0], #16 //AES final-2 block - load plaintext + + eor v27.8b, v27.8b, v8.8b //GHASH final-3 block - mid + + ins v27.d[1], v27.d[0] //GHASH final-3 block - mid + eor v19.16b, v19.16b, v26.16b //GHASH final-3 block - low + +.inst 0xce057529 //eor3 v9.16b, v9.16b, v5.16b, v29.16b //AES final-2 block - result + + pmull2 v27.1q, v27.2d, v24.2d //GHASH final-3 block - mid + pmull2 v28.1q, v8.2d, v25.2d //GHASH final-3 block - high + + eor v18.16b, v18.16b, v27.16b //GHASH final-3 block - mid + eor v17.16b, v17.16b, v28.16b //GHASH final-3 block - high +.L128_enc_blocks_more_than_2: //blocks left > 2 + + st1 { v9.16b}, [x2], #16 //AES final-2 block - store result + + rev64 v8.16b, v9.16b //GHASH final-2 block + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + + ldr q9, [x0], #16 //AES final-1 block - load plaintext + + ins v27.d[0], v8.d[1] //GHASH final-2 block - mid + ldr q23, [x3, #80] //load h3l | h3h + ext v23.16b, v23.16b, v23.16b, #8 + movi v16.8b, #0 //suppress further partial tag feed in + + eor v27.8b, v27.8b, v8.8b //GHASH final-2 block - mid +.inst 0xce067529 //eor3 v9.16b, v9.16b, v6.16b, v29.16b //AES final-1 block - result + + pmull2 v28.1q, v8.2d, v23.2d //GHASH final-2 block - high + + pmull v26.1q, v8.1d, v23.1d //GHASH final-2 block - low + pmull v27.1q, v27.1d, v24.1d //GHASH final-2 block - mid + + eor v17.16b, v17.16b, v28.16b //GHASH final-2 block - high + + eor v18.16b, v18.16b, v27.16b //GHASH final-2 block - mid + eor v19.16b, v19.16b, v26.16b //GHASH final-2 block - low +.L128_enc_blocks_more_than_1: //blocks left > 1 + + st1 { v9.16b}, [x2], #16 //AES final-1 block - store result + + ldr q22, [x3, #64] //load h2l | h2h + ext v22.16b, v22.16b, v22.16b, #8 + rev64 v8.16b, v9.16b //GHASH final-1 block + ldr q9, [x0], #16 //AES final block - load plaintext + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + + movi v16.8b, #0 //suppress further partial tag feed in + ins v27.d[0], v8.d[1] //GHASH final-1 block - mid +.inst 0xce077529 //eor3 v9.16b, v9.16b, v7.16b, v29.16b //AES final block - result + + pmull2 v28.1q, v8.2d, v22.2d //GHASH final-1 block - high + + eor v27.8b, v27.8b, v8.8b //GHASH final-1 block - mid + + ldr q21, [x3, #48] //load h2k | h1k + + ins v27.d[1], v27.d[0] //GHASH final-1 block - mid + + pmull v26.1q, v8.1d, v22.1d //GHASH final-1 block - low + pmull2 v27.1q, v27.2d, v21.2d //GHASH final-1 block - mid + + eor v17.16b, v17.16b, v28.16b //GHASH final-1 block - high + + eor v18.16b, v18.16b, v27.16b //GHASH final-1 block - mid + eor v19.16b, v19.16b, v26.16b //GHASH final-1 block - low +.L128_enc_blocks_less_than_1: //blocks left <= 1 + + rev32 v30.16b, v30.16b + str q30, [x16] //store the updated counter + and x1, x1, #127 //bit_length %= 128 + + sub x1, x1, #128 //bit_length -= 128 + + neg x1, x1 //bit_length = 128 - #bits in input (in range [1,128]) + + mvn x6, xzr //temp0_x = 0xffffffffffffffff + ld1 { v26.16b}, [x2] //load existing bytes where the possibly partial last block is to be stored + and x1, x1, #127 //bit_length %= 128 + + lsr x6, x6, x1 //temp0_x is mask for top 64b of last block + mvn x7, xzr //temp1_x = 0xffffffffffffffff + cmp x1, #64 + + csel x13, x7, x6, lt + csel x14, x6, xzr, lt + + mov v0.d[1], x14 + mov v0.d[0], x13 //ctr0b is mask for last block + + and v9.16b, v9.16b, v0.16b //possibly partial last block has zeroes in highest bits + + rev64 v8.16b, v9.16b //GHASH final block + + bif v9.16b, v26.16b, v0.16b //insert existing bytes in top end of result before storing + st1 { v9.16b}, [x2] //store all 16B + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + + ins v16.d[0], v8.d[1] //GHASH final block - mid + + eor v16.8b, v16.8b, v8.8b //GHASH final block - mid + ldr q20, [x3, #32] //load h1l | h1h + ext v20.16b, v20.16b, v20.16b, #8 + + pmull v16.1q, v16.1d, v21.1d //GHASH final block - mid + + pmull2 v28.1q, v8.2d, v20.2d //GHASH final block - high + eor v18.16b, v18.16b, v16.16b //GHASH final block - mid + ldr d16, [x10] //MODULO - load modulo constant + + pmull v26.1q, v8.1d, v20.1d //GHASH final block - low + + eor v17.16b, v17.16b, v28.16b //GHASH final block - high + + eor v19.16b, v19.16b, v26.16b //GHASH final block - low + + ext v21.16b, v17.16b, v17.16b, #8 //MODULO - other top alignment + pmull v29.1q, v17.1d, v16.1d //MODULO - top 64b align with mid + +.inst 0xce114e52 //eor3 v18.16b, v18.16b, v17.16b, v19.16b //MODULO - karatsuba tidy up + +.inst 0xce1d5652 //eor3 v18.16b, v18.16b, v29.16b, v21.16b //MODULO - fold into mid + + pmull v17.1q, v18.1d, v16.1d //MODULO - mid 64b align with low + ext v21.16b, v18.16b, v18.16b, #8 //MODULO - other mid alignment + +.inst 0xce115673 //eor3 v19.16b, v19.16b, v17.16b, v21.16b //MODULO - fold into low + ext v19.16b, v19.16b, v19.16b, #8 + rev64 v19.16b, v19.16b + st1 { v19.16b }, [x3] + mov x0, x9 + + ldp d10, d11, [sp, #16] + ldp d12, d13, [sp, #32] + ldp d14, d15, [sp, #48] + ldp d8, d9, [sp], #80 + ret + +.L128_enc_ret: + mov w0, #0x0 + ret +.size unroll8_eor3_aes_gcm_enc_128_kernel,.-unroll8_eor3_aes_gcm_enc_128_kernel +.globl unroll8_eor3_aes_gcm_dec_128_kernel +.type unroll8_eor3_aes_gcm_dec_128_kernel,%function +.align 4 +unroll8_eor3_aes_gcm_dec_128_kernel: + AARCH64_VALID_CALL_TARGET + cbz x1, .L128_dec_ret + stp d8, d9, [sp, #-80]! + lsr x9, x1, #3 + mov x16, x4 + mov x8, x5 + stp d10, d11, [sp, #16] + stp d12, d13, [sp, #32] + stp d14, d15, [sp, #48] + mov x5, #0xc200000000000000 + stp x5, xzr, [sp, #64] + add x10, sp, #64 + + mov x5, x9 + ld1 { v0.16b}, [x16] //CTR block 0 + + ldp q26, q27, [x8, #0] //load rk0, rk1 + sub x5, x5, #1 //byte_len - 1 + + mov x15, #0x100000000 //set up counter increment + movi v31.16b, #0x0 + mov v31.d[1], x15 + ld1 { v19.16b}, [x3] + ext v19.16b, v19.16b, v19.16b, #8 + rev64 v19.16b, v19.16b + + rev32 v30.16b, v0.16b //set up reversed counter + + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 0 - round 0 + + add v30.4s, v30.4s, v31.4s //CTR block 0 + + rev32 v1.16b, v30.16b //CTR block 1 + add v30.4s, v30.4s, v31.4s //CTR block 1 + + and x5, x5, #0xffffffffffffff80 //number of bytes to be processed in main loop (at least 1 byte must be handled by tail) + + rev32 v2.16b, v30.16b //CTR block 2 + add v30.4s, v30.4s, v31.4s //CTR block 2 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 1 - round 0 + + rev32 v3.16b, v30.16b //CTR block 3 + add v30.4s, v30.4s, v31.4s //CTR block 3 + + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 0 - round 1 + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 1 - round 1 + + rev32 v4.16b, v30.16b //CTR block 4 + add v30.4s, v30.4s, v31.4s //CTR block 4 + + rev32 v5.16b, v30.16b //CTR block 5 + add v30.4s, v30.4s, v31.4s //CTR block 5 + + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 2 - round 0 + + rev32 v6.16b, v30.16b //CTR block 6 + add v30.4s, v30.4s, v31.4s //CTR block 6 + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 5 - round 0 + + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 3 - round 0 + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 4 - round 0 + + rev32 v7.16b, v30.16b //CTR block 7 + + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 6 - round 0 + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 2 - round 1 + + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 7 - round 0 + + ldp q28, q26, [x8, #32] //load rk2, rk3 + + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 6 - round 1 + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 5 - round 1 + + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 4 - round 1 + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 7 - round 1 + + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 7 - round 2 + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 0 - round 2 + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 3 - round 1 + + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 6 - round 2 + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 2 - round 2 + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 5 - round 2 + + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 4 - round 2 + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 3 - round 2 + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 1 - round 2 + + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 6 - round 3 + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 2 - round 3 + + ldp q27, q28, [x8, #64] //load rk4, rk5 + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 5 - round 3 + + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 0 - round 3 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 7 - round 3 + + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 3 - round 3 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 1 - round 3 + + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 0 - round 4 + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 7 - round 4 + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 4 - round 3 + + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 6 - round 4 + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 1 - round 4 + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 3 - round 4 + + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 5 - round 4 + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 4 - round 4 + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 2 - round 4 + + ldp q26, q27, [x8, #96] //load rk6, rk7 + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 2 - round 5 + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 3 - round 5 + + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 6 - round 5 + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 1 - round 5 + + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 7 - round 5 + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 5 - round 5 + + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 4 - round 5 + + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 3 - round 6 + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 2 - round 6 + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 0 - round 5 + + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 5 - round 6 + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 4 - round 6 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 1 - round 6 + + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 0 - round 6 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 7 - round 6 + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 6 - round 6 + + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 3 - round 7 + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 4 - round 7 + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 1 - round 7 + + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 7 - round 7 + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 5 - round 7 + ldp q28, q26, [x8, #128] //load rk8, rk9 + + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 6 - round 7 + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 2 - round 7 + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 0 - round 7 + + add x5, x5, x0 + add v30.4s, v30.4s, v31.4s //CTR block 7 + + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 6 - round 8 + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 0 - round 8 + + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 1 - round 8 + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 7 - round 8 + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 3 - round 8 + + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 5 - round 8 + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 2 - round 8 + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 4 - round 8 + + aese v0.16b, v26.16b //AES block 0 - round 9 + aese v1.16b, v26.16b //AES block 1 - round 9 + aese v6.16b, v26.16b //AES block 6 - round 9 + + ldr q27, [x8, #160] //load rk10 + aese v4.16b, v26.16b //AES block 4 - round 9 + aese v3.16b, v26.16b //AES block 3 - round 9 + + aese v2.16b, v26.16b //AES block 2 - round 9 + aese v5.16b, v26.16b //AES block 5 - round 9 + aese v7.16b, v26.16b //AES block 7 - round 9 + + add x4, x0, x1, lsr #3 //end_input_ptr + cmp x0, x5 //check if we have <= 8 blocks + b.ge .L128_dec_tail //handle tail + + ldp q8, q9, [x0], #32 //AES block 0, 1 - load ciphertext + +.inst 0xce006d00 //eor3 v0.16b, v8.16b, v0.16b, v27.16b //AES block 0 - result +.inst 0xce016d21 //eor3 v1.16b, v9.16b, v1.16b, v27.16b //AES block 1 - result + stp q0, q1, [x2], #32 //AES block 0, 1 - store result + + rev32 v0.16b, v30.16b //CTR block 8 + add v30.4s, v30.4s, v31.4s //CTR block 8 + ldp q10, q11, [x0], #32 //AES block 2, 3 - load ciphertext + + ldp q12, q13, [x0], #32 //AES block 4, 5 - load ciphertext + + rev32 v1.16b, v30.16b //CTR block 9 + add v30.4s, v30.4s, v31.4s //CTR block 9 + ldp q14, q15, [x0], #32 //AES block 6, 7 - load ciphertext + +.inst 0xce036d63 //eor3 v3.16b, v11.16b, v3.16b, v27.16b //AES block 3 - result +.inst 0xce026d42 //eor3 v2.16b, v10.16b, v2.16b, v27.16b //AES block 2 - result + stp q2, q3, [x2], #32 //AES block 2, 3 - store result + + rev32 v2.16b, v30.16b //CTR block 10 + add v30.4s, v30.4s, v31.4s //CTR block 10 + +.inst 0xce066dc6 //eor3 v6.16b, v14.16b, v6.16b, v27.16b //AES block 6 - result + + rev32 v3.16b, v30.16b //CTR block 11 + add v30.4s, v30.4s, v31.4s //CTR block 11 + +.inst 0xce046d84 //eor3 v4.16b, v12.16b, v4.16b, v27.16b //AES block 4 - result +.inst 0xce056da5 //eor3 v5.16b, v13.16b, v5.16b, v27.16b //AES block 5 - result + stp q4, q5, [x2], #32 //AES block 4, 5 - store result + +.inst 0xce076de7 //eor3 v7.16b, v15.16b, v7.16b, v27.16b //AES block 7 - result + stp q6, q7, [x2], #32 //AES block 6, 7 - store result + rev32 v4.16b, v30.16b //CTR block 12 + + cmp x0, x5 //check if we have <= 8 blocks + add v30.4s, v30.4s, v31.4s //CTR block 12 + b.ge .L128_dec_prepretail //do prepretail + +.L128_dec_main_loop: //main loop start + ldr q23, [x3, #176] //load h7l | h7h + ext v23.16b, v23.16b, v23.16b, #8 + ldr q25, [x3, #208] //load h8l | h8h + ext v25.16b, v25.16b, v25.16b, #8 + + rev64 v9.16b, v9.16b //GHASH block 8k+1 + rev64 v8.16b, v8.16b //GHASH block 8k + ext v19.16b, v19.16b, v19.16b, #8 //PRE 0 + + rev64 v14.16b, v14.16b //GHASH block 8k+6 + ldr q20, [x3, #128] //load h5l | h5h + ext v20.16b, v20.16b, v20.16b, #8 + ldr q22, [x3, #160] //load h6l | h6h + ext v22.16b, v22.16b, v22.16b, #8 + + eor v8.16b, v8.16b, v19.16b //PRE 1 + rev32 v5.16b, v30.16b //CTR block 8k+13 + add v30.4s, v30.4s, v31.4s //CTR block 8k+13 + + rev64 v10.16b, v10.16b //GHASH block 8k+2 + rev64 v12.16b, v12.16b //GHASH block 8k+4 + ldp q26, q27, [x8, #0] //load rk0, rk1 + + rev32 v6.16b, v30.16b //CTR block 8k+14 + add v30.4s, v30.4s, v31.4s //CTR block 8k+14 + ldr q21, [x3, #144] //load h6k | h5k + ldr q24, [x3, #192] //load h8k | h7k + + pmull2 v16.1q, v9.2d, v23.2d //GHASH block 8k+1 - high + pmull2 v17.1q, v8.2d, v25.2d //GHASH block 8k - high + rev64 v11.16b, v11.16b //GHASH block 8k+3 + + rev32 v7.16b, v30.16b //CTR block 8k+15 + trn1 v18.2d, v9.2d, v8.2d //GHASH block 8k, 8k+1 - mid + rev64 v13.16b, v13.16b //GHASH block 8k+5 + + pmull v23.1q, v9.1d, v23.1d //GHASH block 8k+1 - low + pmull v19.1q, v8.1d, v25.1d //GHASH block 8k - low + trn2 v8.2d, v9.2d, v8.2d //GHASH block 8k, 8k+1 - mid + + pmull2 v29.1q, v10.2d, v22.2d //GHASH block 8k+2 - high + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 0 + pmull2 v9.1q, v11.2d, v20.2d //GHASH block 8k+3 - high + + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 0 + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 0 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 0 + + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 0 + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 0 + eor v17.16b, v17.16b, v16.16b //GHASH block 8k+1 - high + + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 0 + eor v8.16b, v8.16b, v18.16b //GHASH block 8k, 8k+1 - mid + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 0 + + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 1 + eor v19.16b, v19.16b, v23.16b //GHASH block 8k+1 - low +.inst 0xce1d2631 //eor3 v17.16b, v17.16b, v29.16b, v9.16b //GHASH block 8k+2, 8k+3 - high + + ldp q28, q26, [x8, #32] //load rk2, rk3 + trn1 v29.2d, v11.2d, v10.2d //GHASH block 8k+2, 8k+3 - mid + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 1 + + pmull v22.1q, v10.1d, v22.1d //GHASH block 8k+2 - low + trn2 v10.2d, v11.2d, v10.2d //GHASH block 8k+2, 8k+3 - mid + pmull2 v18.1q, v8.2d, v24.2d //GHASH block 8k - mid + + ldr q23, [x3, #80] //load h3l | h3h + ext v23.16b, v23.16b, v23.16b, #8 + ldr q25, [x3, #112] //load h4l | h4h + ext v25.16b, v25.16b, v25.16b, #8 + pmull v24.1q, v8.1d, v24.1d //GHASH block 8k+1 - mid + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 1 + + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 1 + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 1 + pmull v20.1q, v11.1d, v20.1d //GHASH block 8k+3 - low + + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 1 + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 1 + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 1 + + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 2 + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 2 +.inst 0xce165273 //eor3 v19.16b, v19.16b, v22.16b, v20.16b //GHASH block 8k+2, 8k+3 - low + + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 2 + eor v10.16b, v10.16b, v29.16b //GHASH block 8k+2, 8k+3 - mid + ldr q20, [x3, #32] //load h1l | h1h + ext v20.16b, v20.16b, v20.16b, #8 + ldr q22, [x3, #64] //load h2l | h2h + ext v22.16b, v22.16b, v22.16b, #8 + + eor v18.16b, v18.16b, v24.16b //GHASH block 8k+1 - mid + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 2 + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 2 + + trn1 v16.2d, v13.2d, v12.2d //GHASH block 8k+4, 8k+5 - mid + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 2 + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 2 + + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 2 + pmull2 v29.1q, v10.2d, v21.2d //GHASH block 8k+2 - mid + pmull v21.1q, v10.1d, v21.1d //GHASH block 8k+3 - mid + + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 3 + rev64 v15.16b, v15.16b //GHASH block 8k+7 + pmull2 v8.1q, v12.2d, v25.2d //GHASH block 8k+4 - high + + ldp q27, q28, [x8, #64] //load rk4, rk5 + pmull v25.1q, v12.1d, v25.1d //GHASH block 8k+4 - low +.inst 0xce157652 //eor3 v18.16b, v18.16b, v21.16b, v29.16b //GHASH block 8k+2, 8k+3 - mid + + ldr q21, [x3, #48] //load h2k | h1k + ldr q24, [x3, #96] //load h4k | h3k + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 3 + trn2 v12.2d, v13.2d, v12.2d //GHASH block 8k+4, 8k+5 - mid + + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 3 + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 3 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 3 + + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 3 + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 3 + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 3 + + pmull2 v10.1q, v13.2d, v23.2d //GHASH block 8k+5 - high + pmull v23.1q, v13.1d, v23.1d //GHASH block 8k+5 - low + pmull2 v11.1q, v14.2d, v22.2d //GHASH block 8k+6 - high + + pmull v22.1q, v14.1d, v22.1d //GHASH block 8k+6 - low + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 4 + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 4 + + eor v12.16b, v12.16b, v16.16b //GHASH block 8k+4, 8k+5 - mid + trn1 v13.2d, v15.2d, v14.2d //GHASH block 8k+6, 8k+7 - mid + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 4 + + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 4 + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 4 + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 4 + + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 4 + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 4 + trn2 v14.2d, v15.2d, v14.2d //GHASH block 8k+6, 8k+7 - mid + + ldp q26, q27, [x8, #96] //load rk6, rk7 + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 5 + pmull2 v16.1q, v12.2d, v24.2d //GHASH block 8k+4 - mid + + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 5 + eor v14.16b, v14.16b, v13.16b //GHASH block 8k+6, 8k+7 - mid + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 5 + + pmull v24.1q, v12.1d, v24.1d //GHASH block 8k+5 - mid + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 5 + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 5 + + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 5 + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 5 + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 5 + + pmull2 v12.1q, v15.2d, v20.2d //GHASH block 8k+7 - high +.inst 0xce184252 //eor3 v18.16b, v18.16b, v24.16b, v16.16b //GHASH block 8k+4, 8k+5 - mid +.inst 0xce195e73 //eor3 v19.16b, v19.16b, v25.16b, v23.16b //GHASH block 8k+4, 8k+5 - low + + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 6 +.inst 0xce082a31 //eor3 v17.16b, v17.16b, v8.16b, v10.16b //GHASH block 8k+4, 8k+5 - high + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 6 + + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 6 + pmull2 v13.1q, v14.2d, v21.2d //GHASH block 8k+6 - mid + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 6 + + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 6 + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 6 + pmull v20.1q, v15.1d, v20.1d //GHASH block 8k+7 - low + + pmull v21.1q, v14.1d, v21.1d //GHASH block 8k+7 - mid + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 6 + add v30.4s, v30.4s, v31.4s //CTR block 8k+15 + +.inst 0xce0b3231 //eor3 v17.16b, v17.16b, v11.16b, v12.16b //GHASH block 8k+6, 8k+7 - high + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 6 + ldp q28, q26, [x8, #128] //load rk8, rk9 + + ldr d16, [x10] //MODULO - load modulo constant +.inst 0xce165273 //eor3 v19.16b, v19.16b, v22.16b, v20.16b //GHASH block 8k+6, 8k+7 - low + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 7 + + rev32 v20.16b, v30.16b //CTR block 8k+16 +.inst 0xce153652 //eor3 v18.16b, v18.16b, v21.16b, v13.16b //GHASH block 8k+6, 8k+7 - mid + add v30.4s, v30.4s, v31.4s //CTR block 8k+16 + + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 7 + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 7 + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 7 + + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 7 + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 7 + rev32 v22.16b, v30.16b //CTR block 8k+17 + + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 7 + ext v21.16b, v17.16b, v17.16b, #8 //MODULO - other top alignment + pmull v29.1q, v17.1d, v16.1d //MODULO - top 64b align with mid + +.inst 0xce114e52 //eor3 v18.16b, v18.16b, v17.16b, v19.16b //MODULO - karatsuba tidy up + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 7 + add v30.4s, v30.4s, v31.4s //CTR block 8k+17 + + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 8 + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 8 + ldp q8, q9, [x0], #32 //AES block 8k+8, 8k+9 - load ciphertext + + ldp q10, q11, [x0], #32 //AES block 8k+10, 8k+11 - load ciphertext + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 8 + rev32 v23.16b, v30.16b //CTR block 8k+18 + + ldp q12, q13, [x0], #32 //AES block 8k+12, 8k+13 - load ciphertext + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 8 +.inst 0xce1d5652 //eor3 v18.16b, v18.16b, v29.16b, v21.16b //MODULO - fold into mid + + ldp q14, q15, [x0], #32 //AES block 8k+14, 8k+15 - load ciphertext + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 8 + add v30.4s, v30.4s, v31.4s //CTR block 8k+18 + + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 8 + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 8 + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 8 + + aese v0.16b, v26.16b //AES block 8k+8 - round 9 + aese v1.16b, v26.16b //AES block 8k+9 - round 9 + ldr q27, [x8, #160] //load rk10 + + aese v6.16b, v26.16b //AES block 8k+14 - round 9 + pmull v17.1q, v18.1d, v16.1d //MODULO - mid 64b align with low + aese v2.16b, v26.16b //AES block 8k+10 - round 9 + + aese v7.16b, v26.16b //AES block 8k+15 - round 9 + aese v4.16b, v26.16b //AES block 8k+12 - round 9 + ext v21.16b, v18.16b, v18.16b, #8 //MODULO - other mid alignment + + rev32 v25.16b, v30.16b //CTR block 8k+19 + add v30.4s, v30.4s, v31.4s //CTR block 8k+19 + + aese v3.16b, v26.16b //AES block 8k+11 - round 9 + aese v5.16b, v26.16b //AES block 8k+13 - round 9 +.inst 0xce016d21 //eor3 v1.16b, v9.16b, v1.16b, v27.16b //AES block 8k+9 - result + +.inst 0xce006d00 //eor3 v0.16b, v8.16b, v0.16b, v27.16b //AES block 8k+8 - result +.inst 0xce076de7 //eor3 v7.16b, v15.16b, v7.16b, v27.16b //AES block 8k+15 - result +.inst 0xce066dc6 //eor3 v6.16b, v14.16b, v6.16b, v27.16b //AES block 8k+14 - result + +.inst 0xce026d42 //eor3 v2.16b, v10.16b, v2.16b, v27.16b //AES block 8k+10 - result + stp q0, q1, [x2], #32 //AES block 8k+8, 8k+9 - store result + mov v1.16b, v22.16b //CTR block 8k+17 + +.inst 0xce046d84 //eor3 v4.16b, v12.16b, v4.16b, v27.16b //AES block 8k+12 - result +.inst 0xce115673 //eor3 v19.16b, v19.16b, v17.16b, v21.16b //MODULO - fold into low + mov v0.16b, v20.16b //CTR block 8k+16 + +.inst 0xce036d63 //eor3 v3.16b, v11.16b, v3.16b, v27.16b //AES block 8k+11 - result + cmp x0, x5 //.LOOP CONTROL + stp q2, q3, [x2], #32 //AES block 8k+10, 8k+11 - store result + +.inst 0xce056da5 //eor3 v5.16b, v13.16b, v5.16b, v27.16b //AES block 8k+13 - result + mov v2.16b, v23.16b //CTR block 8k+18 + + stp q4, q5, [x2], #32 //AES block 8k+12, 8k+13 - store result + rev32 v4.16b, v30.16b //CTR block 8k+20 + add v30.4s, v30.4s, v31.4s //CTR block 8k+20 + + stp q6, q7, [x2], #32 //AES block 8k+14, 8k+15 - store result + mov v3.16b, v25.16b //CTR block 8k+19 + b.lt .L128_dec_main_loop + +.L128_dec_prepretail: //PREPRETAIL + rev64 v11.16b, v11.16b //GHASH block 8k+3 + ext v19.16b, v19.16b, v19.16b, #8 //PRE 0 + rev64 v8.16b, v8.16b //GHASH block 8k + + rev64 v10.16b, v10.16b //GHASH block 8k+2 + rev32 v5.16b, v30.16b //CTR block 8k+13 + ldp q26, q27, [x8, #0] //load rk0, rk1 + + ldr q23, [x3, #176] //load h7l | h7h + ext v23.16b, v23.16b, v23.16b, #8 + ldr q25, [x3, #208] //load h8l | h8h + ext v25.16b, v25.16b, v25.16b, #8 + eor v8.16b, v8.16b, v19.16b //PRE 1 + rev64 v9.16b, v9.16b //GHASH block 8k+1 + + add v30.4s, v30.4s, v31.4s //CTR block 8k+13 + ldr q20, [x3, #128] //load h5l | h5h + ext v20.16b, v20.16b, v20.16b, #8 + ldr q22, [x3, #160] //load h6l | h6h + ext v22.16b, v22.16b, v22.16b, #8 + rev64 v13.16b, v13.16b //GHASH block 8k+5 + + rev64 v12.16b, v12.16b //GHASH block 8k+4 + + rev64 v14.16b, v14.16b //GHASH block 8k+6 + + ldr q21, [x3, #144] //load h6k | h5k + ldr q24, [x3, #192] //load h8k | h7k + rev32 v6.16b, v30.16b //CTR block 8k+14 + add v30.4s, v30.4s, v31.4s //CTR block 8k+14 + + pmull2 v16.1q, v9.2d, v23.2d //GHASH block 8k+1 - high + pmull v19.1q, v8.1d, v25.1d //GHASH block 8k - low + pmull2 v17.1q, v8.2d, v25.2d //GHASH block 8k - high + + trn1 v18.2d, v9.2d, v8.2d //GHASH block 8k, 8k+1 - mid + trn2 v8.2d, v9.2d, v8.2d //GHASH block 8k, 8k+1 - mid + pmull2 v29.1q, v10.2d, v22.2d //GHASH block 8k+2 - high + + pmull v23.1q, v9.1d, v23.1d //GHASH block 8k+1 - low + pmull2 v9.1q, v11.2d, v20.2d //GHASH block 8k+3 - high + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 0 + + eor v17.16b, v17.16b, v16.16b //GHASH block 8k+1 - high + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 0 + eor v8.16b, v8.16b, v18.16b //GHASH block 8k, 8k+1 - mid + + pmull v22.1q, v10.1d, v22.1d //GHASH block 8k+2 - low + rev32 v7.16b, v30.16b //CTR block 8k+15 + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 0 + +.inst 0xce1d2631 //eor3 v17.16b, v17.16b, v29.16b, v9.16b //GHASH block 8k+2, 8k+3 - high + trn1 v29.2d, v11.2d, v10.2d //GHASH block 8k+2, 8k+3 - mid + trn2 v10.2d, v11.2d, v10.2d //GHASH block 8k+2, 8k+3 - mid + + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 0 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 0 + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 0 + + pmull2 v18.1q, v8.2d, v24.2d //GHASH block 8k - mid + pmull v24.1q, v8.1d, v24.1d //GHASH block 8k+1 - mid + pmull v20.1q, v11.1d, v20.1d //GHASH block 8k+3 - low + + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 1 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 0 + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 0 + + eor v19.16b, v19.16b, v23.16b //GHASH block 8k+1 - low + eor v10.16b, v10.16b, v29.16b //GHASH block 8k+2, 8k+3 - mid + eor v18.16b, v18.16b, v24.16b //GHASH block 8k+1 - mid + + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 1 + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 1 + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 1 + + ldp q28, q26, [x8, #32] //load rk2, rk3 +.inst 0xce165273 //eor3 v19.16b, v19.16b, v22.16b, v20.16b //GHASH block 8k+2, 8k+3 - low + pmull2 v29.1q, v10.2d, v21.2d //GHASH block 8k+2 - mid + + ldr q23, [x3, #80] //load h3l | h3h + ext v23.16b, v23.16b, v23.16b, #8 + ldr q25, [x3, #112] //load h4l | h4h + ext v25.16b, v25.16b, v25.16b, #8 + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 1 + pmull v21.1q, v10.1d, v21.1d //GHASH block 8k+3 - mid + + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 1 + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 1 + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 1 + + ldr q20, [x3, #32] //load h1l | h1h + ext v20.16b, v20.16b, v20.16b, #8 + ldr q22, [x3, #64] //load h2l | h2h + ext v22.16b, v22.16b, v22.16b, #8 +.inst 0xce157652 //eor3 v18.16b, v18.16b, v21.16b, v29.16b //GHASH block 8k+2, 8k+3 - mid + + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 2 + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 2 + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 2 + + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 2 + trn1 v16.2d, v13.2d, v12.2d //GHASH block 8k+4, 8k+5 - mid + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 2 + + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 2 + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 2 + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 2 + + pmull2 v8.1q, v12.2d, v25.2d //GHASH block 8k+4 - high + pmull v25.1q, v12.1d, v25.1d //GHASH block 8k+4 - low + trn2 v12.2d, v13.2d, v12.2d //GHASH block 8k+4, 8k+5 - mid + + ldp q27, q28, [x8, #64] //load rk4, rk5 + rev64 v15.16b, v15.16b //GHASH block 8k+7 + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 3 + + ldr q21, [x3, #48] //load h2k | h1k + ldr q24, [x3, #96] //load h4k | h3k + pmull2 v10.1q, v13.2d, v23.2d //GHASH block 8k+5 - high + pmull v23.1q, v13.1d, v23.1d //GHASH block 8k+5 - low + + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 3 + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 3 + trn1 v13.2d, v15.2d, v14.2d //GHASH block 8k+6, 8k+7 - mid + + pmull2 v11.1q, v14.2d, v22.2d //GHASH block 8k+6 - high + pmull v22.1q, v14.1d, v22.1d //GHASH block 8k+6 - low + trn2 v14.2d, v15.2d, v14.2d //GHASH block 8k+6, 8k+7 - mid + + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 3 + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 3 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 3 + + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 3 + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 3 + eor v12.16b, v12.16b, v16.16b //GHASH block 8k+4, 8k+5 - mid + +.inst 0xce082a31 //eor3 v17.16b, v17.16b, v8.16b, v10.16b //GHASH block 8k+4, 8k+5 - high + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 4 + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 4 + + eor v14.16b, v14.16b, v13.16b //GHASH block 8k+6, 8k+7 - mid + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 4 + pmull2 v16.1q, v12.2d, v24.2d //GHASH block 8k+4 - mid + + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 4 + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 4 + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 4 + + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 4 + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 4 + pmull v24.1q, v12.1d, v24.1d //GHASH block 8k+5 - mid + + pmull2 v12.1q, v15.2d, v20.2d //GHASH block 8k+7 - high + pmull2 v13.1q, v14.2d, v21.2d //GHASH block 8k+6 - mid + pmull v21.1q, v14.1d, v21.1d //GHASH block 8k+7 - mid + + ldp q26, q27, [x8, #96] //load rk6, rk7 +.inst 0xce184252 //eor3 v18.16b, v18.16b, v24.16b, v16.16b //GHASH block 8k+4, 8k+5 - mid + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 5 + + ldr d16, [x10] //MODULO - load modulo constant + pmull v20.1q, v15.1d, v20.1d //GHASH block 8k+7 - low +.inst 0xce195e73 //eor3 v19.16b, v19.16b, v25.16b, v23.16b //GHASH block 8k+4, 8k+5 - low + + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 5 + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 5 + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 5 + + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 5 + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 5 + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 5 + + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 5 +.inst 0xce153652 //eor3 v18.16b, v18.16b, v21.16b, v13.16b //GHASH block 8k+6, 8k+7 - mid +.inst 0xce165273 //eor3 v19.16b, v19.16b, v22.16b, v20.16b //GHASH block 8k+6, 8k+7 - low + + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 6 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 6 + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 6 + +.inst 0xce0b3231 //eor3 v17.16b, v17.16b, v11.16b, v12.16b //GHASH block 8k+6, 8k+7 - high + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 6 + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 6 + + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 6 + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 6 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 6 + + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 7 +.inst 0xce114e52 //eor3 v18.16b, v18.16b, v17.16b, v19.16b //MODULO - karatsuba tidy up + ldp q28, q26, [x8, #128] //load rk8, rk9 + + pmull v29.1q, v17.1d, v16.1d //MODULO - top 64b align with mid + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 7 + ext v21.16b, v17.16b, v17.16b, #8 //MODULO - other top alignment + + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 7 + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 7 + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 7 + + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 7 + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 7 + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 7 + +.inst 0xce1d5652 //eor3 v18.16b, v18.16b, v29.16b, v21.16b //MODULO - fold into mid + ldr q27, [x8, #160] //load rk10 + + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 8 + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 8 + + pmull v17.1q, v18.1d, v16.1d //MODULO - mid 64b align with low + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 8 + ext v21.16b, v18.16b, v18.16b, #8 //MODULO - other mid alignment + + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 8 + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 8 + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 8 + + aese v6.16b, v26.16b //AES block 8k+14 - round 9 + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 8 + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 8 + +.inst 0xce115673 //eor3 v19.16b, v19.16b, v17.16b, v21.16b //MODULO - fold into low + add v30.4s, v30.4s, v31.4s //CTR block 8k+15 + aese v2.16b, v26.16b //AES block 8k+10 - round 9 + + aese v3.16b, v26.16b //AES block 8k+11 - round 9 + aese v5.16b, v26.16b //AES block 8k+13 - round 9 + aese v0.16b, v26.16b //AES block 8k+8 - round 9 + + aese v4.16b, v26.16b //AES block 8k+12 - round 9 + aese v1.16b, v26.16b //AES block 8k+9 - round 9 + aese v7.16b, v26.16b //AES block 8k+15 - round 9 + +.L128_dec_tail: //TAIL + + mov v29.16b, v27.16b + sub x5, x4, x0 //main_end_input_ptr is number of bytes left to process + + cmp x5, #112 + + ldp q24, q25, [x3, #192] //load h8k | h7k + ext v25.16b, v25.16b, v25.16b, #8 + ldr q9, [x0], #16 //AES block 8k+8 - load ciphertext + + ldp q20, q21, [x3, #128] //load h5l | h5h + ext v20.16b, v20.16b, v20.16b, #8 + ext v16.16b, v19.16b, v19.16b, #8 //prepare final partial tag + + ldp q22, q23, [x3, #160] //load h6l | h6h + ext v22.16b, v22.16b, v22.16b, #8 + ext v23.16b, v23.16b, v23.16b, #8 + +.inst 0xce00752c //eor3 v12.16b, v9.16b, v0.16b, v29.16b //AES block 8k+8 - result + b.gt .L128_dec_blocks_more_than_7 + + cmp x5, #96 + mov v7.16b, v6.16b + movi v19.8b, #0 + + movi v17.8b, #0 + mov v6.16b, v5.16b + mov v5.16b, v4.16b + + mov v4.16b, v3.16b + mov v3.16b, v2.16b + mov v2.16b, v1.16b + + movi v18.8b, #0 + sub v30.4s, v30.4s, v31.4s + b.gt .L128_dec_blocks_more_than_6 + + cmp x5, #80 + sub v30.4s, v30.4s, v31.4s + + mov v7.16b, v6.16b + mov v6.16b, v5.16b + mov v5.16b, v4.16b + + mov v4.16b, v3.16b + mov v3.16b, v1.16b + b.gt .L128_dec_blocks_more_than_5 + + cmp x5, #64 + + mov v7.16b, v6.16b + mov v6.16b, v5.16b + mov v5.16b, v4.16b + + mov v4.16b, v1.16b + sub v30.4s, v30.4s, v31.4s + b.gt .L128_dec_blocks_more_than_4 + + sub v30.4s, v30.4s, v31.4s + mov v7.16b, v6.16b + mov v6.16b, v5.16b + + mov v5.16b, v1.16b + cmp x5, #48 + b.gt .L128_dec_blocks_more_than_3 + + sub v30.4s, v30.4s, v31.4s + mov v7.16b, v6.16b + cmp x5, #32 + + ldr q24, [x3, #96] //load h4k | h3k + mov v6.16b, v1.16b + b.gt .L128_dec_blocks_more_than_2 + + cmp x5, #16 + + mov v7.16b, v1.16b + sub v30.4s, v30.4s, v31.4s + b.gt .L128_dec_blocks_more_than_1 + + sub v30.4s, v30.4s, v31.4s + ldr q21, [x3, #48] //load h2k | h1k + b .L128_dec_blocks_less_than_1 +.L128_dec_blocks_more_than_7: //blocks left > 7 + rev64 v8.16b, v9.16b //GHASH final-7 block + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + + ins v18.d[0], v24.d[1] //GHASH final-7 block - mid + + pmull v19.1q, v8.1d, v25.1d //GHASH final-7 block - low + ins v27.d[0], v8.d[1] //GHASH final-7 block - mid + + movi v16.8b, #0 //suppress further partial tag feed in + ldr q9, [x0], #16 //AES final-6 block - load ciphertext + + eor v27.8b, v27.8b, v8.8b //GHASH final-7 block - mid + + pmull2 v17.1q, v8.2d, v25.2d //GHASH final-7 block - high + st1 { v12.16b}, [x2], #16 //AES final-7 block - store result +.inst 0xce01752c //eor3 v12.16b, v9.16b, v1.16b, v29.16b //AES final-6 block - result + + pmull v18.1q, v27.1d, v18.1d //GHASH final-7 block - mid +.L128_dec_blocks_more_than_6: //blocks left > 6 + + rev64 v8.16b, v9.16b //GHASH final-6 block + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + + ins v27.d[0], v8.d[1] //GHASH final-6 block - mid + + eor v27.8b, v27.8b, v8.8b //GHASH final-6 block - mid + + pmull v26.1q, v8.1d, v23.1d //GHASH final-6 block - low + ldr q9, [x0], #16 //AES final-5 block - load ciphertext + movi v16.8b, #0 //suppress further partial tag feed in + + pmull v27.1q, v27.1d, v24.1d //GHASH final-6 block - mid + st1 { v12.16b}, [x2], #16 //AES final-6 block - store result + pmull2 v28.1q, v8.2d, v23.2d //GHASH final-6 block - high + + eor v19.16b, v19.16b, v26.16b //GHASH final-6 block - low + eor v17.16b, v17.16b, v28.16b //GHASH final-6 block - high + + eor v18.16b, v18.16b, v27.16b //GHASH final-6 block - mid +.inst 0xce02752c //eor3 v12.16b, v9.16b, v2.16b, v29.16b //AES final-5 block - result +.L128_dec_blocks_more_than_5: //blocks left > 5 + + rev64 v8.16b, v9.16b //GHASH final-5 block + + ldr q9, [x0], #16 //AES final-4 block - load ciphertext + st1 { v12.16b}, [x2], #16 //AES final-5 block - store result + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + + ins v27.d[0], v8.d[1] //GHASH final-5 block - mid + +.inst 0xce03752c //eor3 v12.16b, v9.16b, v3.16b, v29.16b //AES final-4 block - result + + eor v27.8b, v27.8b, v8.8b //GHASH final-5 block - mid + + ins v27.d[1], v27.d[0] //GHASH final-5 block - mid + pmull v26.1q, v8.1d, v22.1d //GHASH final-5 block - low + movi v16.8b, #0 //suppress further partial tag feed in + + pmull2 v27.1q, v27.2d, v21.2d //GHASH final-5 block - mid + pmull2 v28.1q, v8.2d, v22.2d //GHASH final-5 block - high + eor v19.16b, v19.16b, v26.16b //GHASH final-5 block - low + + eor v18.16b, v18.16b, v27.16b //GHASH final-5 block - mid + eor v17.16b, v17.16b, v28.16b //GHASH final-5 block - high +.L128_dec_blocks_more_than_4: //blocks left > 4 + + rev64 v8.16b, v9.16b //GHASH final-4 block + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + ldr q9, [x0], #16 //AES final-3 block - load ciphertext + + ins v27.d[0], v8.d[1] //GHASH final-4 block - mid + movi v16.8b, #0 //suppress further partial tag feed in + pmull2 v28.1q, v8.2d, v20.2d //GHASH final-4 block - high + + pmull v26.1q, v8.1d, v20.1d //GHASH final-4 block - low + + eor v17.16b, v17.16b, v28.16b //GHASH final-4 block - high + + st1 { v12.16b}, [x2], #16 //AES final-4 block - store result + eor v27.8b, v27.8b, v8.8b //GHASH final-4 block - mid + +.inst 0xce04752c //eor3 v12.16b, v9.16b, v4.16b, v29.16b //AES final-3 block - result + eor v19.16b, v19.16b, v26.16b //GHASH final-4 block - low + + pmull v27.1q, v27.1d, v21.1d //GHASH final-4 block - mid + + eor v18.16b, v18.16b, v27.16b //GHASH final-4 block - mid +.L128_dec_blocks_more_than_3: //blocks left > 3 + + st1 { v12.16b}, [x2], #16 //AES final-3 block - store result + rev64 v8.16b, v9.16b //GHASH final-3 block + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + + ins v27.d[0], v8.d[1] //GHASH final-3 block - mid + + ldr q25, [x3, #112] //load h4l | h4h + ext v25.16b, v25.16b, v25.16b, #8 + ldr q24, [x3, #96] //load h4k | h3k + + eor v27.8b, v27.8b, v8.8b //GHASH final-3 block - mid + + ldr q9, [x0], #16 //AES final-2 block - load ciphertext + + ins v27.d[1], v27.d[0] //GHASH final-3 block - mid + pmull v26.1q, v8.1d, v25.1d //GHASH final-3 block - low + pmull2 v28.1q, v8.2d, v25.2d //GHASH final-3 block - high + + movi v16.8b, #0 //suppress further partial tag feed in +.inst 0xce05752c //eor3 v12.16b, v9.16b, v5.16b, v29.16b //AES final-2 block - result + eor v19.16b, v19.16b, v26.16b //GHASH final-3 block - low + + pmull2 v27.1q, v27.2d, v24.2d //GHASH final-3 block - mid + + eor v17.16b, v17.16b, v28.16b //GHASH final-3 block - high + eor v18.16b, v18.16b, v27.16b //GHASH final-3 block - mid +.L128_dec_blocks_more_than_2: //blocks left > 2 + + rev64 v8.16b, v9.16b //GHASH final-2 block + + st1 { v12.16b}, [x2], #16 //AES final-2 block - store result + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + ldr q23, [x3, #80] //load h3l | h3h + ext v23.16b, v23.16b, v23.16b, #8 + movi v16.8b, #0 //suppress further partial tag feed in + + ins v27.d[0], v8.d[1] //GHASH final-2 block - mid + + eor v27.8b, v27.8b, v8.8b //GHASH final-2 block - mid + + pmull v26.1q, v8.1d, v23.1d //GHASH final-2 block - low + + pmull2 v28.1q, v8.2d, v23.2d //GHASH final-2 block - high + pmull v27.1q, v27.1d, v24.1d //GHASH final-2 block - mid + ldr q9, [x0], #16 //AES final-1 block - load ciphertext + + eor v18.16b, v18.16b, v27.16b //GHASH final-2 block - mid + + eor v19.16b, v19.16b, v26.16b //GHASH final-2 block - low + +.inst 0xce06752c //eor3 v12.16b, v9.16b, v6.16b, v29.16b //AES final-1 block - result + eor v17.16b, v17.16b, v28.16b //GHASH final-2 block - high +.L128_dec_blocks_more_than_1: //blocks left > 1 + + st1 { v12.16b}, [x2], #16 //AES final-1 block - store result + rev64 v8.16b, v9.16b //GHASH final-1 block + + ldr q22, [x3, #64] //load h2l | h2h + ext v22.16b, v22.16b, v22.16b, #8 + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + + movi v16.8b, #0 //suppress further partial tag feed in + + ins v27.d[0], v8.d[1] //GHASH final-1 block - mid + + ldr q9, [x0], #16 //AES final block - load ciphertext + pmull2 v28.1q, v8.2d, v22.2d //GHASH final-1 block - high + + eor v27.8b, v27.8b, v8.8b //GHASH final-1 block - mid + eor v17.16b, v17.16b, v28.16b //GHASH final-1 block - high + ldr q21, [x3, #48] //load h2k | h1k + + ins v27.d[1], v27.d[0] //GHASH final-1 block - mid +.inst 0xce07752c //eor3 v12.16b, v9.16b, v7.16b, v29.16b //AES final block - result + + pmull v26.1q, v8.1d, v22.1d //GHASH final-1 block - low + + pmull2 v27.1q, v27.2d, v21.2d //GHASH final-1 block - mid + + eor v19.16b, v19.16b, v26.16b //GHASH final-1 block - low + + eor v18.16b, v18.16b, v27.16b //GHASH final-1 block - mid +.L128_dec_blocks_less_than_1: //blocks left <= 1 + + and x1, x1, #127 //bit_length %= 128 + + sub x1, x1, #128 //bit_length -= 128 + + neg x1, x1 //bit_length = 128 - #bits in input (in range [1,128]) + + mvn x6, xzr //temp0_x = 0xffffffffffffffff + and x1, x1, #127 //bit_length %= 128 + + lsr x6, x6, x1 //temp0_x is mask for top 64b of last block + cmp x1, #64 + mvn x7, xzr //temp1_x = 0xffffffffffffffff + + csel x13, x7, x6, lt + csel x14, x6, xzr, lt + + mov v0.d[1], x14 + mov v0.d[0], x13 //ctr0b is mask for last block + + ldr q20, [x3, #32] //load h1l | h1h + ext v20.16b, v20.16b, v20.16b, #8 + ld1 { v26.16b}, [x2] //load existing bytes where the possibly partial last block is to be stored + + and v9.16b, v9.16b, v0.16b //possibly partial last block has zeroes in highest bits + + rev64 v8.16b, v9.16b //GHASH final block + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + + pmull2 v28.1q, v8.2d, v20.2d //GHASH final block - high + ins v16.d[0], v8.d[1] //GHASH final block - mid + + eor v17.16b, v17.16b, v28.16b //GHASH final block - high + eor v16.8b, v16.8b, v8.8b //GHASH final block - mid + + bif v12.16b, v26.16b, v0.16b //insert existing bytes in top end of result before storing + + pmull v16.1q, v16.1d, v21.1d //GHASH final block - mid + st1 { v12.16b}, [x2] //store all 16B + + pmull v26.1q, v8.1d, v20.1d //GHASH final block - low + + eor v18.16b, v18.16b, v16.16b //GHASH final block - mid + ldr d16, [x10] //MODULO - load modulo constant + + eor v19.16b, v19.16b, v26.16b //GHASH final block - low + + eor v14.16b, v17.16b, v19.16b //MODULO - karatsuba tidy up + + pmull v21.1q, v17.1d, v16.1d //MODULO - top 64b align with mid + ext v17.16b, v17.16b, v17.16b, #8 //MODULO - other top alignment + + eor v18.16b, v18.16b, v14.16b //MODULO - karatsuba tidy up + +.inst 0xce115652 //eor3 v18.16b, v18.16b, v17.16b, v21.16b //MODULO - fold into mid + + pmull v17.1q, v18.1d, v16.1d //MODULO - mid 64b align with low + ext v18.16b, v18.16b, v18.16b, #8 //MODULO - other mid alignment + +.inst 0xce124673 //eor3 v19.16b, v19.16b, v18.16b, v17.16b //MODULO - fold into low + ext v19.16b, v19.16b, v19.16b, #8 + rev64 v19.16b, v19.16b + st1 { v19.16b }, [x3] + rev32 v30.16b, v30.16b + + str q30, [x16] //store the updated counter + + mov x0, x9 + + ldp d10, d11, [sp, #16] + ldp d12, d13, [sp, #32] + ldp d14, d15, [sp, #48] + ldp d8, d9, [sp], #80 + ret +.L128_dec_ret: + mov w0, #0x0 + ret +.size unroll8_eor3_aes_gcm_dec_128_kernel,.-unroll8_eor3_aes_gcm_dec_128_kernel +.globl unroll8_eor3_aes_gcm_enc_192_kernel +.type unroll8_eor3_aes_gcm_enc_192_kernel,%function +.align 4 +unroll8_eor3_aes_gcm_enc_192_kernel: + AARCH64_VALID_CALL_TARGET + cbz x1, .L192_enc_ret + stp d8, d9, [sp, #-80]! + lsr x9, x1, #3 + mov x16, x4 + mov x8, x5 + stp d10, d11, [sp, #16] + stp d12, d13, [sp, #32] + stp d14, d15, [sp, #48] + mov x5, #0xc200000000000000 + stp x5, xzr, [sp, #64] + add x10, sp, #64 + + mov x5, x9 + ld1 { v0.16b}, [x16] //CTR block 0 + + mov x15, #0x100000000 //set up counter increment + movi v31.16b, #0x0 + mov v31.d[1], x15 + + rev32 v30.16b, v0.16b //set up reversed counter + + add v30.4s, v30.4s, v31.4s //CTR block 0 + + rev32 v1.16b, v30.16b //CTR block 1 + add v30.4s, v30.4s, v31.4s //CTR block 1 + + rev32 v2.16b, v30.16b //CTR block 2 + add v30.4s, v30.4s, v31.4s //CTR block 2 + + rev32 v3.16b, v30.16b //CTR block 3 + add v30.4s, v30.4s, v31.4s //CTR block 3 + + rev32 v4.16b, v30.16b //CTR block 4 + add v30.4s, v30.4s, v31.4s //CTR block 4 + sub x5, x5, #1 //byte_len - 1 + + and x5, x5, #0xffffffffffffff80 //number of bytes to be processed in main loop (at least 1 byte must be handled by tail) + + rev32 v5.16b, v30.16b //CTR block 5 + add v30.4s, v30.4s, v31.4s //CTR block 5 + ldp q26, q27, [x8, #0] //load rk0, rk1 + + add x5, x5, x0 + + rev32 v6.16b, v30.16b //CTR block 6 + add v30.4s, v30.4s, v31.4s //CTR block 6 + + rev32 v7.16b, v30.16b //CTR block 7 + + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 5 - round 0 + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 4 - round 0 + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 3 - round 0 + + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 0 - round 0 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 1 - round 0 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 7 - round 0 + + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 6 - round 0 + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 2 - round 0 + ldp q28, q26, [x8, #32] //load rk2, rk3 + + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 5 - round 1 + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 7 - round 1 + + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 2 - round 1 + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 3 - round 1 + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 6 - round 1 + + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 5 - round 2 + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 4 - round 1 + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 0 - round 1 + + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 1 - round 1 + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 7 - round 2 + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 3 - round 2 + + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 2 - round 2 + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 0 - round 2 + + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 1 - round 2 + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 4 - round 2 + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 6 - round 2 + + ldp q27, q28, [x8, #64] //load rk4, rk5 + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 4 - round 3 + + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 7 - round 3 + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 3 - round 3 + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 2 - round 3 + + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 1 - round 3 + + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 0 - round 3 + + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 6 - round 3 + + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 0 - round 4 + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 1 - round 4 + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 5 - round 3 + + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 3 - round 4 + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 2 - round 4 + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 4 - round 4 + + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 6 - round 4 + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 7 - round 4 + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 5 - round 4 + + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 1 - round 5 + ldp q26, q27, [x8, #96] //load rk6, rk7 + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 2 - round 5 + + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 4 - round 5 + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 7 - round 5 + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 0 - round 5 + + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 5 - round 5 + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 6 - round 5 + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 3 - round 5 + + add v30.4s, v30.4s, v31.4s //CTR block 7 + + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 5 - round 6 + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 4 - round 6 + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 3 - round 6 + + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 2 - round 6 + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 6 - round 6 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 1 - round 6 + + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 0 - round 6 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 7 - round 6 + ldp q28, q26, [x8, #128] //load rk8, rk9 + + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 6 - round 7 + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 3 - round 7 + + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 4 - round 7 + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 0 - round 7 + + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 7 - round 7 + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 1 - round 7 + + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 2 - round 7 + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 5 - round 7 + + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 7 - round 8 + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 0 - round 8 + + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 4 - round 8 + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 3 - round 8 + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 5 - round 8 + + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 2 - round 8 + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 1 - round 8 + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 6 - round 8 + + add x4, x0, x1, lsr #3 //end_input_ptr + cmp x0, x5 //check if we have <= 8 blocks + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 3 - round 9 + + ld1 { v19.16b}, [x3] + ext v19.16b, v19.16b, v19.16b, #8 + rev64 v19.16b, v19.16b + ldp q27, q28, [x8, #160] //load rk10, rk11 + + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 6 - round 9 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 1 - round 9 + + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 5 - round 9 + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 2 - round 9 + + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 0 - round 9 + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 4 - round 9 + + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 14 - round 10 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 7 - round 9 + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 11 - round 10 + + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 9 - round 10 + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 13 - round 10 + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 12 - round 10 + + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8 - round 10 + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 10 - round 10 + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 15 - round 10 + + aese v6.16b, v28.16b //AES block 14 - round 11 + aese v3.16b, v28.16b //AES block 11 - round 11 + + aese v4.16b, v28.16b //AES block 12 - round 11 + aese v7.16b, v28.16b //AES block 15 - round 11 + ldr q26, [x8, #192] //load rk12 + + aese v1.16b, v28.16b //AES block 9 - round 11 + aese v5.16b, v28.16b //AES block 13 - round 11 + + aese v2.16b, v28.16b //AES block 10 - round 11 + aese v0.16b, v28.16b //AES block 8 - round 11 + b.ge .L192_enc_tail //handle tail + + ldp q8, q9, [x0], #32 //AES block 0, 1 - load plaintext + + ldp q10, q11, [x0], #32 //AES block 2, 3 - load plaintext + + ldp q12, q13, [x0], #32 //AES block 4, 5 - load plaintext + + ldp q14, q15, [x0], #32 //AES block 6, 7 - load plaintext + +.inst 0xce006908 //eor3 v8.16b, v8.16b, v0.16b, v26.16b //AES block 0 - result + rev32 v0.16b, v30.16b //CTR block 8 + add v30.4s, v30.4s, v31.4s //CTR block 8 + +.inst 0xce03696b //eor3 v11.16b, v11.16b, v3.16b, v26.16b //AES block 3 - result +.inst 0xce016929 //eor3 v9.16b, v9.16b, v1.16b, v26.16b //AES block 1 - result + + rev32 v1.16b, v30.16b //CTR block 9 + add v30.4s, v30.4s, v31.4s //CTR block 9 +.inst 0xce04698c //eor3 v12.16b, v12.16b, v4.16b, v26.16b //AES block 4 - result + +.inst 0xce0569ad //eor3 v13.16b, v13.16b, v5.16b, v26.16b //AES block 5 - result +.inst 0xce0769ef //eor3 v15.16b, v15.16b, v7.16b, v26.16b //AES block 7 - result + stp q8, q9, [x2], #32 //AES block 0, 1 - store result + +.inst 0xce02694a //eor3 v10.16b, v10.16b, v2.16b, v26.16b //AES block 2 - result + rev32 v2.16b, v30.16b //CTR block 10 + add v30.4s, v30.4s, v31.4s //CTR block 10 + + stp q10, q11, [x2], #32 //AES block 2, 3 - store result + cmp x0, x5 //check if we have <= 8 blocks + + rev32 v3.16b, v30.16b //CTR block 11 + add v30.4s, v30.4s, v31.4s //CTR block 11 +.inst 0xce0669ce //eor3 v14.16b, v14.16b, v6.16b, v26.16b //AES block 6 - result + + stp q12, q13, [x2], #32 //AES block 4, 5 - store result + + rev32 v4.16b, v30.16b //CTR block 12 + stp q14, q15, [x2], #32 //AES block 6, 7 - store result + add v30.4s, v30.4s, v31.4s //CTR block 12 + + b.ge .L192_enc_prepretail //do prepretail + +.L192_enc_main_loop: //main loop start + rev64 v12.16b, v12.16b //GHASH block 8k+4 (t0, t1, and t2 free) + ldp q26, q27, [x8, #0] //load rk0, rk1 + rev64 v10.16b, v10.16b //GHASH block 8k+2 + + rev32 v5.16b, v30.16b //CTR block 8k+13 + add v30.4s, v30.4s, v31.4s //CTR block 8k+13 + ldr q23, [x3, #176] //load h7l | h7h + ext v23.16b, v23.16b, v23.16b, #8 + ldr q25, [x3, #208] //load h8l | h8h + ext v25.16b, v25.16b, v25.16b, #8 + + ext v19.16b, v19.16b, v19.16b, #8 //PRE 0 + rev64 v8.16b, v8.16b //GHASH block 8k + ldr q20, [x3, #128] //load h5l | h5h + ext v20.16b, v20.16b, v20.16b, #8 + ldr q22, [x3, #160] //load h6l | h6h + ext v22.16b, v22.16b, v22.16b, #8 + + rev64 v9.16b, v9.16b //GHASH block 8k+1 + rev32 v6.16b, v30.16b //CTR block 8k+14 + add v30.4s, v30.4s, v31.4s //CTR block 8k+14 + + eor v8.16b, v8.16b, v19.16b //PRE 1 + rev64 v11.16b, v11.16b //GHASH block 8k+3 + rev64 v13.16b, v13.16b //GHASH block 8k+5 (t0, t1, t2 and t3 free) + + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 0 + rev32 v7.16b, v30.16b //CTR block 8k+15 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 0 + + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 0 + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 0 + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 0 + + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 0 + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 0 + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 0 + + ldp q28, q26, [x8, #32] //load rk2, rk3 + pmull2 v17.1q, v8.2d, v25.2d //GHASH block 8k - high + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 1 + + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 1 + pmull2 v16.1q, v9.2d, v23.2d //GHASH block 8k+1 - high + pmull v23.1q, v9.1d, v23.1d //GHASH block 8k+1 - low + + trn1 v18.2d, v9.2d, v8.2d //GHASH block 8k, 8k+1 - mid + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 1 + ldr q21, [x3, #144] //load h6k | h5k + ldr q24, [x3, #192] //load h8k | h7k + + pmull2 v29.1q, v10.2d, v22.2d //GHASH block 8k+2 - high + pmull v19.1q, v8.1d, v25.1d //GHASH block 8k - low + trn2 v8.2d, v9.2d, v8.2d //GHASH block 8k, 8k+1 - mid + + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 1 + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 1 + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 1 + + eor v17.16b, v17.16b, v16.16b //GHASH block 8k+1 - high + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 1 + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 1 + + pmull2 v9.1q, v11.2d, v20.2d //GHASH block 8k+3 - high + eor v8.16b, v8.16b, v18.16b //GHASH block 8k, 8k+1 - mid + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 2 + + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 2 + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 2 + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 2 + + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 2 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 3 +.inst 0xce1d2631 //eor3 v17.16b, v17.16b, v29.16b, v9.16b //GHASH block 8k+2, 8k+3 - high + + pmull v22.1q, v10.1d, v22.1d //GHASH block 8k+2 - low + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 2 + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 3 + + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 2 + trn1 v29.2d, v11.2d, v10.2d //GHASH block 8k+2, 8k+3 - mid + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 2 + + trn2 v10.2d, v11.2d, v10.2d //GHASH block 8k+2, 8k+3 - mid + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 3 + ldp q27, q28, [x8, #64] //load rk4, rk5 + + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 3 + eor v19.16b, v19.16b, v23.16b //GHASH block 8k+1 - low + ldr q23, [x3, #80] //load h3l | h3h + ext v23.16b, v23.16b, v23.16b, #8 + ldr q25, [x3, #112] //load h4l | h4h + ext v25.16b, v25.16b, v25.16b, #8 + + pmull2 v18.1q, v8.2d, v24.2d //GHASH block 8k - mid + pmull v24.1q, v8.1d, v24.1d //GHASH block 8k+1 - mid + pmull v20.1q, v11.1d, v20.1d //GHASH block 8k+3 - low + + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 3 + eor v10.16b, v10.16b, v29.16b //GHASH block 8k+2, 8k+3 - mid + trn1 v16.2d, v13.2d, v12.2d //GHASH block 8k+4, 8k+5 - mid + + eor v18.16b, v18.16b, v24.16b //GHASH block 8k+1 - mid + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 3 +.inst 0xce165273 //eor3 v19.16b, v19.16b, v22.16b, v20.16b //GHASH block 8k+2, 8k+3 - low + + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 4 + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 4 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 3 + + pmull2 v29.1q, v10.2d, v21.2d //GHASH block 8k+2 - mid + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 4 + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 3 + + pmull v21.1q, v10.1d, v21.1d //GHASH block 8k+3 - mid + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 4 + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 4 + + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 4 + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 4 + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 4 + +.inst 0xce157652 //eor3 v18.16b, v18.16b, v21.16b, v29.16b //GHASH block 8k+2, 8k+3 - mid + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 5 + ldr q20, [x3, #32] //load h1l | h1h + ext v20.16b, v20.16b, v20.16b, #8 + ldr q22, [x3, #64] //load h2l | h2h + ext v22.16b, v22.16b, v22.16b, #8 + + ldp q26, q27, [x8, #96] //load rk6, rk7 + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 5 + rev64 v15.16b, v15.16b //GHASH block 8k+7 (t0, t1, t2 and t3 free) + + rev64 v14.16b, v14.16b //GHASH block 8k+6 (t0, t1, and t2 free) + pmull2 v8.1q, v12.2d, v25.2d //GHASH block 8k+4 - high + pmull v25.1q, v12.1d, v25.1d //GHASH block 8k+4 - low + + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 5 + trn2 v12.2d, v13.2d, v12.2d //GHASH block 8k+4, 8k+5 - mid + + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 5 + ldr q21, [x3, #48] //load h2k | h1k + ldr q24, [x3, #96] //load h4k | h3k + + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 5 + pmull2 v10.1q, v13.2d, v23.2d //GHASH block 8k+5 - high + eor v12.16b, v12.16b, v16.16b //GHASH block 8k+4, 8k+5 - mid + + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 5 + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 5 + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 5 + + pmull v23.1q, v13.1d, v23.1d //GHASH block 8k+5 - low + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 6 + trn1 v13.2d, v15.2d, v14.2d //GHASH block 8k+6, 8k+7 - mid + + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 6 + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 6 + pmull2 v11.1q, v14.2d, v22.2d //GHASH block 8k+6 - high + + pmull v22.1q, v14.1d, v22.1d //GHASH block 8k+6 - low + trn2 v14.2d, v15.2d, v14.2d //GHASH block 8k+6, 8k+7 - mid + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 6 + + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 6 + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 6 + + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 6 + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 7 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 6 + + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 7 + eor v14.16b, v14.16b, v13.16b //GHASH block 8k+6, 8k+7 - mid + + pmull2 v16.1q, v12.2d, v24.2d //GHASH block 8k+4 - mid + ldp q28, q26, [x8, #128] //load rk8, rk9 + pmull v24.1q, v12.1d, v24.1d //GHASH block 8k+5 - mid + + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 7 + pmull2 v12.1q, v15.2d, v20.2d //GHASH block 8k+7 - high + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 7 + +.inst 0xce184252 //eor3 v18.16b, v18.16b, v24.16b, v16.16b //GHASH block 8k+4, 8k+5 - mid + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 7 + add v30.4s, v30.4s, v31.4s //CTR block 8k+15 + + ldr d16, [x10] //MODULO - load modulo constant +.inst 0xce082a31 //eor3 v17.16b, v17.16b, v8.16b, v10.16b //GHASH block 8k+4, 8k+5 - high + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 7 + + pmull2 v13.1q, v14.2d, v21.2d //GHASH block 8k+6 - mid + pmull v20.1q, v15.1d, v20.1d //GHASH block 8k+7 - low + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 7 + + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 8 + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 8 + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 8 + + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 8 +.inst 0xce195e73 //eor3 v19.16b, v19.16b, v25.16b, v23.16b //GHASH block 8k+4, 8k+5 - low + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 7 + + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 8 + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 8 + pmull v21.1q, v14.1d, v21.1d //GHASH block 8k+7 - mid + + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 8 + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 8 + ldp q27, q28, [x8, #160] //load rk10, rk11 + +.inst 0xce165273 //eor3 v19.16b, v19.16b, v22.16b, v20.16b //GHASH block 8k+6, 8k+7 - low + rev32 v20.16b, v30.16b //CTR block 8k+16 + add v30.4s, v30.4s, v31.4s //CTR block 8k+16 + + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 9 +.inst 0xce153652 //eor3 v18.16b, v18.16b, v21.16b, v13.16b //GHASH block 8k+6, 8k+7 - mid +.inst 0xce0b3231 //eor3 v17.16b, v17.16b, v11.16b, v12.16b //GHASH block 8k+6, 8k+7 - high + + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 9 + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 9 + ldp q8, q9, [x0], #32 //AES block 8k+8, 8k+9 - load plaintext + + pmull v21.1q, v17.1d, v16.1d //MODULO - top 64b align with mid + rev32 v22.16b, v30.16b //CTR block 8k+17 + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 9 + + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 9 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 9 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 9 + +.inst 0xce114e52 //eor3 v18.16b, v18.16b, v17.16b, v19.16b //MODULO - karatsuba tidy up + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 9 + add v30.4s, v30.4s, v31.4s //CTR block 8k+17 + + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 10 + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 10 + ldr q26, [x8, #192] //load rk12 + ext v29.16b, v17.16b, v17.16b, #8 //MODULO - other top alignment + + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 10 + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 10 + ldp q10, q11, [x0], #32 //AES block 8k+10, 8k+11 - load plaintext + + aese v4.16b, v28.16b //AES block 8k+12 - round 11 +.inst 0xce1d5652 //eor3 v18.16b, v18.16b, v29.16b, v21.16b //MODULO - fold into mid + ldp q12, q13, [x0], #32 //AES block 8k+12, 8k+13 - load plaintext + + ldp q14, q15, [x0], #32 //AES block 8k+14, 8k+15 - load plaintext + aese v2.16b, v28.16b //AES block 8k+10 - round 11 + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 10 + + rev32 v23.16b, v30.16b //CTR block 8k+18 + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 10 + + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 10 + pmull v17.1q, v18.1d, v16.1d //MODULO - mid 64b align with low + + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 10 + aese v5.16b, v28.16b //AES block 8k+13 - round 11 + add v30.4s, v30.4s, v31.4s //CTR block 8k+18 + + aese v7.16b, v28.16b //AES block 8k+15 - round 11 + aese v0.16b, v28.16b //AES block 8k+8 - round 11 +.inst 0xce04698c //eor3 v12.16b, v12.16b, v4.16b, v26.16b //AES block 4 - result + + aese v6.16b, v28.16b //AES block 8k+14 - round 11 + aese v3.16b, v28.16b //AES block 8k+11 - round 11 + aese v1.16b, v28.16b //AES block 8k+9 - round 11 + + rev32 v25.16b, v30.16b //CTR block 8k+19 + add v30.4s, v30.4s, v31.4s //CTR block 8k+19 +.inst 0xce0769ef //eor3 v15.16b, v15.16b, v7.16b, v26.16b //AES block 7 - result + +.inst 0xce02694a //eor3 v10.16b, v10.16b, v2.16b, v26.16b //AES block 8k+10 - result +.inst 0xce006908 //eor3 v8.16b, v8.16b, v0.16b, v26.16b //AES block 8k+8 - result + mov v2.16b, v23.16b //CTR block 8k+18 + +.inst 0xce016929 //eor3 v9.16b, v9.16b, v1.16b, v26.16b //AES block 8k+9 - result + mov v1.16b, v22.16b //CTR block 8k+17 + stp q8, q9, [x2], #32 //AES block 8k+8, 8k+9 - store result + ext v21.16b, v18.16b, v18.16b, #8 //MODULO - other mid alignment + +.inst 0xce0669ce //eor3 v14.16b, v14.16b, v6.16b, v26.16b //AES block 6 - result + mov v0.16b, v20.16b //CTR block 8k+16 + rev32 v4.16b, v30.16b //CTR block 8k+20 + + add v30.4s, v30.4s, v31.4s //CTR block 8k+20 +.inst 0xce0569ad //eor3 v13.16b, v13.16b, v5.16b, v26.16b //AES block 5 - result +.inst 0xce115673 //eor3 v19.16b, v19.16b, v17.16b, v21.16b //MODULO - fold into low + +.inst 0xce03696b //eor3 v11.16b, v11.16b, v3.16b, v26.16b //AES block 8k+11 - result + mov v3.16b, v25.16b //CTR block 8k+19 + + stp q10, q11, [x2], #32 //AES block 8k+10, 8k+11 - store result + + stp q12, q13, [x2], #32 //AES block 8k+12, 8k+13 - store result + + cmp x0, x5 //.LOOP CONTROL + stp q14, q15, [x2], #32 //AES block 8k+14, 8k+15 - store result + b.lt .L192_enc_main_loop + +.L192_enc_prepretail: //PREPRETAIL + rev32 v5.16b, v30.16b //CTR block 8k+13 + ldp q26, q27, [x8, #0] //load rk0, rk1 + add v30.4s, v30.4s, v31.4s //CTR block 8k+13 + + ldr q23, [x3, #176] //load h7l | h7h + ext v23.16b, v23.16b, v23.16b, #8 + ldr q25, [x3, #208] //load h8l | h8h + ext v25.16b, v25.16b, v25.16b, #8 + rev64 v8.16b, v8.16b //GHASH block 8k + ext v19.16b, v19.16b, v19.16b, #8 //PRE 0 + + rev32 v6.16b, v30.16b //CTR block 8k+14 + add v30.4s, v30.4s, v31.4s //CTR block 8k+14 + ldr q21, [x3, #144] //load h6k | h5k + ldr q24, [x3, #192] //load h8k | h7k + + rev64 v11.16b, v11.16b //GHASH block 8k+3 + rev64 v10.16b, v10.16b //GHASH block 8k+2 + ldr q20, [x3, #128] //load h5l | h5h + ext v20.16b, v20.16b, v20.16b, #8 + ldr q22, [x3, #160] //load h6l | h6h + ext v22.16b, v22.16b, v22.16b, #8 + + eor v8.16b, v8.16b, v19.16b //PRE 1 + rev32 v7.16b, v30.16b //CTR block 8k+15 + rev64 v9.16b, v9.16b //GHASH block 8k+1 + + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 0 + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 0 + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 0 + + pmull2 v16.1q, v9.2d, v23.2d //GHASH block 8k+1 - high + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 0 + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 0 + + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 0 + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 0 + pmull2 v17.1q, v8.2d, v25.2d //GHASH block 8k - high + + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 1 + pmull v19.1q, v8.1d, v25.1d //GHASH block 8k - low + trn1 v18.2d, v9.2d, v8.2d //GHASH block 8k, 8k+1 - mid + + trn2 v8.2d, v9.2d, v8.2d //GHASH block 8k, 8k+1 - mid + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 0 + ldp q28, q26, [x8, #32] //load rk2, rk3 + + pmull v23.1q, v9.1d, v23.1d //GHASH block 8k+1 - low + eor v17.16b, v17.16b, v16.16b //GHASH block 8k+1 - high + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 1 + + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 1 + eor v8.16b, v8.16b, v18.16b //GHASH block 8k, 8k+1 - mid + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 1 + + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 1 + pmull2 v9.1q, v11.2d, v20.2d //GHASH block 8k+3 - high + pmull2 v29.1q, v10.2d, v22.2d //GHASH block 8k+2 - high + + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 1 + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 1 + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 1 + + pmull v22.1q, v10.1d, v22.1d //GHASH block 8k+2 - low + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 2 + eor v19.16b, v19.16b, v23.16b //GHASH block 8k+1 - low + + pmull v20.1q, v11.1d, v20.1d //GHASH block 8k+3 - low + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 2 +.inst 0xce1d2631 //eor3 v17.16b, v17.16b, v29.16b, v9.16b //GHASH block 8k+2, 8k+3 - high + + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 3 + trn1 v29.2d, v11.2d, v10.2d //GHASH block 8k+2, 8k+3 - mid + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 2 + + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 2 + pmull2 v18.1q, v8.2d, v24.2d //GHASH block 8k - mid + trn2 v10.2d, v11.2d, v10.2d //GHASH block 8k+2, 8k+3 - mid + + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 2 + rev64 v13.16b, v13.16b //GHASH block 8k+5 (t0, t1, t2 and t3 free) + rev64 v14.16b, v14.16b //GHASH block 8k+6 (t0, t1, and t2 free) + + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 2 + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 2 + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 2 + + eor v10.16b, v10.16b, v29.16b //GHASH block 8k+2, 8k+3 - mid + pmull v24.1q, v8.1d, v24.1d //GHASH block 8k+1 - mid + ldp q27, q28, [x8, #64] //load rk4, rk5 + + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 3 + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 3 + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 3 + + eor v18.16b, v18.16b, v24.16b //GHASH block 8k+1 - mid +.inst 0xce165273 //eor3 v19.16b, v19.16b, v22.16b, v20.16b //GHASH block 8k+2, 8k+3 - low + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 3 + + ldr q23, [x3, #80] //load h3l | h3h + ext v23.16b, v23.16b, v23.16b, #8 + ldr q25, [x3, #112] //load h4l | h4h + ext v25.16b, v25.16b, v25.16b, #8 + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 3 + pmull2 v29.1q, v10.2d, v21.2d //GHASH block 8k+2 - mid + + ldr q20, [x3, #32] //load h1l | h1h + ext v20.16b, v20.16b, v20.16b, #8 + ldr q22, [x3, #64] //load h2l | h2h + ext v22.16b, v22.16b, v22.16b, #8 + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 3 + rev64 v12.16b, v12.16b //GHASH block 8k+4 (t0, t1, and t2 free) + + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 3 + pmull v21.1q, v10.1d, v21.1d //GHASH block 8k+3 - mid + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 4 + + trn1 v16.2d, v13.2d, v12.2d //GHASH block 8k+4, 8k+5 - mid + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 4 + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 4 + +.inst 0xce157652 //eor3 v18.16b, v18.16b, v21.16b, v29.16b //GHASH block 8k+2, 8k+3 - mid + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 4 + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 4 + + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 4 + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 4 + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 4 + + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 5 + rev64 v15.16b, v15.16b //GHASH block 8k+7 (t0, t1, t2 and t3 free) + ldr q21, [x3, #48] //load h2k | h1k + ldr q24, [x3, #96] //load h4k | h3k + + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 5 + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 5 + ldp q26, q27, [x8, #96] //load rk6, rk7 + + pmull2 v11.1q, v14.2d, v22.2d //GHASH block 8k+6 - high + pmull2 v8.1q, v12.2d, v25.2d //GHASH block 8k+4 - high + pmull v25.1q, v12.1d, v25.1d //GHASH block 8k+4 - low + + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 5 + trn2 v12.2d, v13.2d, v12.2d //GHASH block 8k+4, 8k+5 - mid + + pmull2 v10.1q, v13.2d, v23.2d //GHASH block 8k+5 - high + pmull v23.1q, v13.1d, v23.1d //GHASH block 8k+5 - low + pmull v22.1q, v14.1d, v22.1d //GHASH block 8k+6 - low + + trn1 v13.2d, v15.2d, v14.2d //GHASH block 8k+6, 8k+7 - mid + eor v12.16b, v12.16b, v16.16b //GHASH block 8k+4, 8k+5 - mid + trn2 v14.2d, v15.2d, v14.2d //GHASH block 8k+6, 8k+7 - mid + + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 5 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 6 + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 5 + + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 5 + eor v14.16b, v14.16b, v13.16b //GHASH block 8k+6, 8k+7 - mid + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 5 + + pmull2 v16.1q, v12.2d, v24.2d //GHASH block 8k+4 - mid + pmull v24.1q, v12.1d, v24.1d //GHASH block 8k+5 - mid + + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 6 + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 6 + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 7 + + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 6 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 6 +.inst 0xce184252 //eor3 v18.16b, v18.16b, v24.16b, v16.16b //GHASH block 8k+4, 8k+5 - mid + + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 6 +.inst 0xce082a31 //eor3 v17.16b, v17.16b, v8.16b, v10.16b //GHASH block 8k+4, 8k+5 - high + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 7 + + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 6 + ldr d16, [x10] //MODULO - load modulo constant + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 6 + + pmull2 v13.1q, v14.2d, v21.2d //GHASH block 8k+6 - mid + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 7 +.inst 0xce195e73 //eor3 v19.16b, v19.16b, v25.16b, v23.16b //GHASH block 8k+4, 8k+5 - low + + pmull2 v12.1q, v15.2d, v20.2d //GHASH block 8k+7 - high + pmull v21.1q, v14.1d, v21.1d //GHASH block 8k+7 - mid + pmull v20.1q, v15.1d, v20.1d //GHASH block 8k+7 - low + + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 7 + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 7 + ldp q28, q26, [x8, #128] //load rk8, rk9 + + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 7 +.inst 0xce153652 //eor3 v18.16b, v18.16b, v21.16b, v13.16b //GHASH block 8k+6, 8k+7 - mid + +.inst 0xce165273 //eor3 v19.16b, v19.16b, v22.16b, v20.16b //GHASH block 8k+6, 8k+7 - low +.inst 0xce0b3231 //eor3 v17.16b, v17.16b, v11.16b, v12.16b //GHASH block 8k+6, 8k+7 - high + +.inst 0xce114e52 //eor3 v18.16b, v18.16b, v17.16b, v19.16b //MODULO - karatsuba tidy up + ext v29.16b, v17.16b, v17.16b, #8 //MODULO - other top alignment + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 7 + pmull v21.1q, v17.1d, v16.1d //MODULO - top 64b align with mid + + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 8 + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 8 + + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 7 + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 8 +.inst 0xce1d5652 //eor3 v18.16b, v18.16b, v29.16b, v21.16b //MODULO - fold into mid + + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 8 + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 9 + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 8 + + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 8 + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 8 + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 8 + + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 9 + ldp q27, q28, [x8, #160] //load rk10, rk11 + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 9 + + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 9 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 9 + + ext v21.16b, v18.16b, v18.16b, #8 //MODULO - other mid alignment + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 9 + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 9 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 9 + + pmull v17.1q, v18.1d, v16.1d //MODULO - mid 64b align with low + ldr q26, [x8, #192] //load rk12 + + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 10 + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 10 + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 10 + +.inst 0xce115673 //eor3 v19.16b, v19.16b, v17.16b, v21.16b //MODULO - fold into low + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 10 + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 10 + + aese v1.16b, v28.16b //AES block 8k+9 - round 11 + aese v7.16b, v28.16b //AES block 8k+15 - round 11 + + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 10 + aese v3.16b, v28.16b //AES block 8k+11 - round 11 + + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 10 + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 10 + + add v30.4s, v30.4s, v31.4s //CTR block 8k+15 + aese v2.16b, v28.16b //AES block 8k+10 - round 11 + aese v0.16b, v28.16b //AES block 8k+8 - round 11 + + aese v6.16b, v28.16b //AES block 8k+14 - round 11 + aese v4.16b, v28.16b //AES block 8k+12 - round 11 + aese v5.16b, v28.16b //AES block 8k+13 - round 11 + +.L192_enc_tail: //TAIL + + ldp q20, q21, [x3, #128] //load h5l | h5h + ext v20.16b, v20.16b, v20.16b, #8 + sub x5, x4, x0 //main_end_input_ptr is number of bytes left to process + + ldr q8, [x0], #16 //AES block 8k+8 - l3ad plaintext + + ldp q24, q25, [x3, #192] //load h8k | h7k + ext v25.16b, v25.16b, v25.16b, #8 + + mov v29.16b, v26.16b + + ldp q22, q23, [x3, #160] //load h6l | h6h + ext v22.16b, v22.16b, v22.16b, #8 + ext v23.16b, v23.16b, v23.16b, #8 + cmp x5, #112 + +.inst 0xce007509 //eor3 v9.16b, v8.16b, v0.16b, v29.16b //AES block 8k+8 - result + ext v16.16b, v19.16b, v19.16b, #8 //prepare final partial tag + b.gt .L192_enc_blocks_more_than_7 + + cmp x5, #96 + mov v7.16b, v6.16b + movi v17.8b, #0 + + mov v6.16b, v5.16b + movi v19.8b, #0 + sub v30.4s, v30.4s, v31.4s + + mov v5.16b, v4.16b + mov v4.16b, v3.16b + mov v3.16b, v2.16b + + mov v2.16b, v1.16b + movi v18.8b, #0 + b.gt .L192_enc_blocks_more_than_6 + + mov v7.16b, v6.16b + cmp x5, #80 + + mov v6.16b, v5.16b + mov v5.16b, v4.16b + mov v4.16b, v3.16b + + mov v3.16b, v1.16b + sub v30.4s, v30.4s, v31.4s + b.gt .L192_enc_blocks_more_than_5 + + cmp x5, #64 + sub v30.4s, v30.4s, v31.4s + + mov v7.16b, v6.16b + mov v6.16b, v5.16b + mov v5.16b, v4.16b + + mov v4.16b, v1.16b + b.gt .L192_enc_blocks_more_than_4 + + mov v7.16b, v6.16b + mov v6.16b, v5.16b + mov v5.16b, v1.16b + + sub v30.4s, v30.4s, v31.4s + cmp x5, #48 + b.gt .L192_enc_blocks_more_than_3 + + mov v7.16b, v6.16b + mov v6.16b, v1.16b + sub v30.4s, v30.4s, v31.4s + + ldr q24, [x3, #96] //load h4k | h3k + cmp x5, #32 + b.gt .L192_enc_blocks_more_than_2 + + sub v30.4s, v30.4s, v31.4s + + cmp x5, #16 + mov v7.16b, v1.16b + b.gt .L192_enc_blocks_more_than_1 + + sub v30.4s, v30.4s, v31.4s + ldr q21, [x3, #48] //load h2k | h1k + b .L192_enc_blocks_less_than_1 +.L192_enc_blocks_more_than_7: //blocks left > 7 + st1 { v9.16b}, [x2], #16 //AES final-7 block - store result + + rev64 v8.16b, v9.16b //GHASH final-7 block + ins v18.d[0], v24.d[1] //GHASH final-7 block - mid + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + + ins v27.d[0], v8.d[1] //GHASH final-7 block - mid + + ldr q9, [x0], #16 //AES final-6 block - load plaintext + + eor v27.8b, v27.8b, v8.8b //GHASH final-7 block - mid + movi v16.8b, #0 //suppress further partial tag feed in + pmull v19.1q, v8.1d, v25.1d //GHASH final-7 block - low + + pmull2 v17.1q, v8.2d, v25.2d //GHASH final-7 block - high + + pmull v18.1q, v27.1d, v18.1d //GHASH final-7 block - mid +.inst 0xce017529 //eor3 v9.16b, v9.16b, v1.16b, v29.16b //AES final-6 block - result +.L192_enc_blocks_more_than_6: //blocks left > 6 + + st1 { v9.16b}, [x2], #16 //AES final-6 block - store result + + rev64 v8.16b, v9.16b //GHASH final-6 block + + ldr q9, [x0], #16 //AES final-5 block - load plaintext + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + + ins v27.d[0], v8.d[1] //GHASH final-6 block - mid + + pmull v26.1q, v8.1d, v23.1d //GHASH final-6 block - low +.inst 0xce027529 //eor3 v9.16b, v9.16b, v2.16b, v29.16b //AES final-5 block - result + + movi v16.8b, #0 //suppress further partial tag feed in + pmull2 v28.1q, v8.2d, v23.2d //GHASH final-6 block - high + eor v27.8b, v27.8b, v8.8b //GHASH final-6 block - mid + + pmull v27.1q, v27.1d, v24.1d //GHASH final-6 block - mid + + eor v17.16b, v17.16b, v28.16b //GHASH final-6 block - high + eor v19.16b, v19.16b, v26.16b //GHASH final-6 block - low + + eor v18.16b, v18.16b, v27.16b //GHASH final-6 block - mid +.L192_enc_blocks_more_than_5: //blocks left > 5 + + st1 { v9.16b}, [x2], #16 //AES final-5 block - store result + + rev64 v8.16b, v9.16b //GHASH final-5 block + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + + ins v27.d[0], v8.d[1] //GHASH final-5 block - mid + + ldr q9, [x0], #16 //AES final-4 block - load plaintext + pmull2 v28.1q, v8.2d, v22.2d //GHASH final-5 block - high + + eor v27.8b, v27.8b, v8.8b //GHASH final-5 block - mid + eor v17.16b, v17.16b, v28.16b //GHASH final-5 block - high + + ins v27.d[1], v27.d[0] //GHASH final-5 block - mid + pmull v26.1q, v8.1d, v22.1d //GHASH final-5 block - low + + eor v19.16b, v19.16b, v26.16b //GHASH final-5 block - low + pmull2 v27.1q, v27.2d, v21.2d //GHASH final-5 block - mid + +.inst 0xce037529 //eor3 v9.16b, v9.16b, v3.16b, v29.16b //AES final-4 block - result + movi v16.8b, #0 //suppress further partial tag feed in + + eor v18.16b, v18.16b, v27.16b //GHASH final-5 block - mid +.L192_enc_blocks_more_than_4: //blocks left > 4 + + st1 { v9.16b}, [x2], #16 //AES final-4 block - store result + + rev64 v8.16b, v9.16b //GHASH final-4 block + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + + ldr q9, [x0], #16 //AES final-3 block - load plaintext + pmull2 v28.1q, v8.2d, v20.2d //GHASH final-4 block - high + ins v27.d[0], v8.d[1] //GHASH final-4 block - mid + + pmull v26.1q, v8.1d, v20.1d //GHASH final-4 block - low + eor v17.16b, v17.16b, v28.16b //GHASH final-4 block - high + + eor v27.8b, v27.8b, v8.8b //GHASH final-4 block - mid + + movi v16.8b, #0 //suppress further partial tag feed in + eor v19.16b, v19.16b, v26.16b //GHASH final-4 block - low + + pmull v27.1q, v27.1d, v21.1d //GHASH final-4 block - mid + + eor v18.16b, v18.16b, v27.16b //GHASH final-4 block - mid +.inst 0xce047529 //eor3 v9.16b, v9.16b, v4.16b, v29.16b //AES final-3 block - result +.L192_enc_blocks_more_than_3: //blocks left > 3 + + ldr q24, [x3, #96] //load h4k | h3k + st1 { v9.16b}, [x2], #16 //AES final-3 block - store result + + rev64 v8.16b, v9.16b //GHASH final-3 block + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + movi v16.8b, #0 //suppress further partial tag feed in + + ldr q9, [x0], #16 //AES final-2 block - load plaintext + ldr q25, [x3, #112] //load h4l | h4h + ext v25.16b, v25.16b, v25.16b, #8 + + ins v27.d[0], v8.d[1] //GHASH final-3 block - mid + +.inst 0xce057529 //eor3 v9.16b, v9.16b, v5.16b, v29.16b //AES final-2 block - result + eor v27.8b, v27.8b, v8.8b //GHASH final-3 block - mid + + ins v27.d[1], v27.d[0] //GHASH final-3 block - mid + pmull v26.1q, v8.1d, v25.1d //GHASH final-3 block - low + + pmull2 v28.1q, v8.2d, v25.2d //GHASH final-3 block - high + pmull2 v27.1q, v27.2d, v24.2d //GHASH final-3 block - mid + + eor v19.16b, v19.16b, v26.16b //GHASH final-3 block - low + + eor v18.16b, v18.16b, v27.16b //GHASH final-3 block - mid + eor v17.16b, v17.16b, v28.16b //GHASH final-3 block - high +.L192_enc_blocks_more_than_2: //blocks left > 2 + + st1 { v9.16b}, [x2], #16 //AES final-2 block - store result + + rev64 v8.16b, v9.16b //GHASH final-2 block + ldr q23, [x3, #80] //load h3l | h3h + ext v23.16b, v23.16b, v23.16b, #8 + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + + ldr q9, [x0], #16 //AES final-1 block - load plaintext + ins v27.d[0], v8.d[1] //GHASH final-2 block - mid + + eor v27.8b, v27.8b, v8.8b //GHASH final-2 block - mid + + pmull v26.1q, v8.1d, v23.1d //GHASH final-2 block - low + pmull2 v28.1q, v8.2d, v23.2d //GHASH final-2 block - high + movi v16.8b, #0 //suppress further partial tag feed in + + pmull v27.1q, v27.1d, v24.1d //GHASH final-2 block - mid + + eor v19.16b, v19.16b, v26.16b //GHASH final-2 block - low + eor v17.16b, v17.16b, v28.16b //GHASH final-2 block - high + + eor v18.16b, v18.16b, v27.16b //GHASH final-2 block - mid +.inst 0xce067529 //eor3 v9.16b, v9.16b, v6.16b, v29.16b //AES final-1 block - result +.L192_enc_blocks_more_than_1: //blocks left > 1 + + ldr q22, [x3, #64] //load h1l | h1h + ext v22.16b, v22.16b, v22.16b, #8 + st1 { v9.16b}, [x2], #16 //AES final-1 block - store result + + rev64 v8.16b, v9.16b //GHASH final-1 block + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + + ins v27.d[0], v8.d[1] //GHASH final-1 block - mid + pmull v26.1q, v8.1d, v22.1d //GHASH final-1 block - low + + eor v19.16b, v19.16b, v26.16b //GHASH final-1 block - low + pmull2 v28.1q, v8.2d, v22.2d //GHASH final-1 block - high + eor v27.8b, v27.8b, v8.8b //GHASH final-1 block - mid + + ldr q9, [x0], #16 //AES final block - load plaintext + ldr q21, [x3, #48] //load h2k | h1k + + ins v27.d[1], v27.d[0] //GHASH final-1 block - mid + +.inst 0xce077529 //eor3 v9.16b, v9.16b, v7.16b, v29.16b //AES final block - result + pmull2 v27.1q, v27.2d, v21.2d //GHASH final-1 block - mid + + movi v16.8b, #0 //suppress further partial tag feed in + + eor v18.16b, v18.16b, v27.16b //GHASH final-1 block - mid + eor v17.16b, v17.16b, v28.16b //GHASH final-1 block - high +.L192_enc_blocks_less_than_1: //blocks left <= 1 + + mvn x6, xzr //temp0_x = 0xffffffffffffffff + and x1, x1, #127 //bit_length %= 128 + + sub x1, x1, #128 //bit_length -= 128 + + neg x1, x1 //bit_length = 128 - #bits in input (in range [1,128]) + + and x1, x1, #127 //bit_length %= 128 + + lsr x6, x6, x1 //temp0_x is mask for top 64b of last block + cmp x1, #64 + mvn x7, xzr //temp1_x = 0xffffffffffffffff + + csel x13, x7, x6, lt + csel x14, x6, xzr, lt + + mov v0.d[1], x14 + ldr q20, [x3, #32] //load h1l | h1h + ext v20.16b, v20.16b, v20.16b, #8 + + ld1 { v26.16b}, [x2] //load existing bytes where the possibly partial last block is to be stored + mov v0.d[0], x13 //ctr0b is mask for last block + + and v9.16b, v9.16b, v0.16b //possibly partial last block has zeroes in highest bits + + rev64 v8.16b, v9.16b //GHASH final block + bif v9.16b, v26.16b, v0.16b //insert existing bytes in top end of result before storing + + st1 { v9.16b}, [x2] //store all 16B + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + + ins v16.d[0], v8.d[1] //GHASH final block - mid + pmull2 v28.1q, v8.2d, v20.2d //GHASH final block - high + + eor v17.16b, v17.16b, v28.16b //GHASH final block - high + pmull v26.1q, v8.1d, v20.1d //GHASH final block - low + + eor v16.8b, v16.8b, v8.8b //GHASH final block - mid + + pmull v16.1q, v16.1d, v21.1d //GHASH final block - mid + + eor v18.16b, v18.16b, v16.16b //GHASH final block - mid + ldr d16, [x10] //MODULO - load modulo constant + + eor v19.16b, v19.16b, v26.16b //GHASH final block - low + ext v21.16b, v17.16b, v17.16b, #8 //MODULO - other top alignment + + rev32 v30.16b, v30.16b + + str q30, [x16] //store the updated counter +.inst 0xce114e52 //eor3 v18.16b, v18.16b, v17.16b, v19.16b //MODULO - karatsuba tidy up + + pmull v29.1q, v17.1d, v16.1d //MODULO - top 64b align with mid + +.inst 0xce1d5652 //eor3 v18.16b, v18.16b, v29.16b, v21.16b //MODULO - fold into mid + + pmull v17.1q, v18.1d, v16.1d //MODULO - mid 64b align with low + ext v21.16b, v18.16b, v18.16b, #8 //MODULO - other mid alignment + +.inst 0xce115673 //eor3 v19.16b, v19.16b, v17.16b, v21.16b //MODULO - fold into low + ext v19.16b, v19.16b, v19.16b, #8 + rev64 v19.16b, v19.16b + st1 { v19.16b }, [x3] + + mov x0, x9 //return sizes + + ldp d10, d11, [sp, #16] + ldp d12, d13, [sp, #32] + ldp d14, d15, [sp, #48] + ldp d8, d9, [sp], #80 + ret + +.L192_enc_ret: + mov w0, #0x0 + ret +.size unroll8_eor3_aes_gcm_enc_192_kernel,.-unroll8_eor3_aes_gcm_enc_192_kernel +.globl unroll8_eor3_aes_gcm_dec_192_kernel +.type unroll8_eor3_aes_gcm_dec_192_kernel,%function +.align 4 +unroll8_eor3_aes_gcm_dec_192_kernel: + AARCH64_VALID_CALL_TARGET + cbz x1, .L192_dec_ret + stp d8, d9, [sp, #-80]! + lsr x9, x1, #3 + mov x16, x4 + mov x8, x5 + stp d10, d11, [sp, #16] + stp d12, d13, [sp, #32] + stp d14, d15, [sp, #48] + mov x5, #0xc200000000000000 + stp x5, xzr, [sp, #64] + add x10, sp, #64 + + mov x5, x9 + ld1 { v0.16b}, [x16] //CTR block 0 + ld1 { v19.16b}, [x3] + + mov x15, #0x100000000 //set up counter increment + movi v31.16b, #0x0 + mov v31.d[1], x15 + + rev32 v30.16b, v0.16b //set up reversed counter + + add v30.4s, v30.4s, v31.4s //CTR block 0 + + rev32 v1.16b, v30.16b //CTR block 1 + add v30.4s, v30.4s, v31.4s //CTR block 1 + + rev32 v2.16b, v30.16b //CTR block 2 + add v30.4s, v30.4s, v31.4s //CTR block 2 + + rev32 v3.16b, v30.16b //CTR block 3 + add v30.4s, v30.4s, v31.4s //CTR block 3 + + rev32 v4.16b, v30.16b //CTR block 4 + add v30.4s, v30.4s, v31.4s //CTR block 4 + + rev32 v5.16b, v30.16b //CTR block 5 + add v30.4s, v30.4s, v31.4s //CTR block 5 + ldp q26, q27, [x8, #0] //load rk0, rk1 + + rev32 v6.16b, v30.16b //CTR block 6 + add v30.4s, v30.4s, v31.4s //CTR block 6 + + rev32 v7.16b, v30.16b //CTR block 7 + + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 3 - round 0 + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 6 - round 0 + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 5 - round 0 + + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 0 - round 0 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 1 - round 0 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 7 - round 0 + + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 2 - round 0 + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 4 - round 0 + ldp q28, q26, [x8, #32] //load rk2, rk3 + + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 1 - round 1 + + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 2 - round 1 + + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 0 - round 1 + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 3 - round 1 + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 7 - round 1 + + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 5 - round 1 + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 6 - round 1 + + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 7 - round 2 + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 0 - round 2 + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 4 - round 1 + + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 5 - round 2 + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 1 - round 2 + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 2 - round 2 + + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 3 - round 2 + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 4 - round 2 + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 6 - round 2 + + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 7 - round 3 + + ldp q27, q28, [x8, #64] //load rk4, rk5 + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 2 - round 3 + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 5 - round 3 + + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 0 - round 3 + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 3 - round 3 + + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 4 - round 3 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 1 - round 3 + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 6 - round 3 + + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 3 - round 4 + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 2 - round 4 + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 5 - round 4 + + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 1 - round 4 + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 7 - round 4 + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 6 - round 4 + + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 0 - round 4 + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 5 - round 5 + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 4 - round 4 + + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 6 - round 5 + ldp q26, q27, [x8, #96] //load rk6, rk7 + + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 0 - round 5 + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 4 - round 5 + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 1 - round 5 + + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 3 - round 5 + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 2 - round 5 + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 7 - round 5 + + sub x5, x5, #1 //byte_len - 1 + + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 4 - round 6 + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 5 - round 6 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 1 - round 6 + + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 0 - round 6 + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 3 - round 6 + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 6 - round 6 + + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 7 - round 6 + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 2 - round 6 + ldp q28, q26, [x8, #128] //load rk8, rk9 + + add v30.4s, v30.4s, v31.4s //CTR block 7 + + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 3 - round 7 + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 7 - round 7 + + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 2 - round 7 + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 1 - round 7 + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 4 - round 7 + + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 6 - round 7 + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 0 - round 7 + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 5 - round 7 + + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 1 - round 8 + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 2 - round 8 + and x5, x5, #0xffffffffffffff80 //number of bytes to be processed in main loop (at least 1 byte must be handled by tail) + + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 7 - round 8 + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 6 - round 8 + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 5 - round 8 + + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 4 - round 8 + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 3 - round 8 + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 0 - round 8 + + add x4, x0, x1, lsr #3 //end_input_ptr + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 6 - round 9 + + ld1 { v19.16b}, [x3] + ext v19.16b, v19.16b, v19.16b, #8 + rev64 v19.16b, v19.16b + + ldp q27, q28, [x8, #160] //load rk10, rk11 + + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 0 - round 9 + add x5, x5, x0 + + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 1 - round 9 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 7 - round 9 + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 4 - round 9 + + cmp x0, x5 //check if we have <= 8 blocks + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 3 - round 9 + + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 5 - round 9 + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 2 - round 9 + + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 3 - round 10 + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 1 - round 10 + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 7 - round 10 + + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 4 - round 10 + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 0 - round 10 + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 2 - round 10 + + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 6 - round 10 + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 5 - round 10 + ldr q26, [x8, #192] //load rk12 + + aese v0.16b, v28.16b //AES block 0 - round 11 + aese v1.16b, v28.16b //AES block 1 - round 11 + aese v4.16b, v28.16b //AES block 4 - round 11 + + aese v6.16b, v28.16b //AES block 6 - round 11 + aese v5.16b, v28.16b //AES block 5 - round 11 + aese v7.16b, v28.16b //AES block 7 - round 11 + + aese v2.16b, v28.16b //AES block 2 - round 11 + aese v3.16b, v28.16b //AES block 3 - round 11 + b.ge .L192_dec_tail //handle tail + + ldp q8, q9, [x0], #32 //AES block 0, 1 - load ciphertext + + ldp q10, q11, [x0], #32 //AES block 2, 3 - load ciphertext + + ldp q12, q13, [x0], #32 //AES block 4, 5 - load ciphertext + +.inst 0xce016921 //eor3 v1.16b, v9.16b, v1.16b, v26.16b //AES block 1 - result +.inst 0xce006900 //eor3 v0.16b, v8.16b, v0.16b, v26.16b //AES block 0 - result + stp q0, q1, [x2], #32 //AES block 0, 1 - store result + + rev32 v0.16b, v30.16b //CTR block 8 + add v30.4s, v30.4s, v31.4s //CTR block 8 + + rev32 v1.16b, v30.16b //CTR block 9 + add v30.4s, v30.4s, v31.4s //CTR block 9 +.inst 0xce036963 //eor3 v3.16b, v11.16b, v3.16b, v26.16b //AES block 3 - result + +.inst 0xce026942 //eor3 v2.16b, v10.16b, v2.16b, v26.16b //AES block 2 - result + stp q2, q3, [x2], #32 //AES block 2, 3 - store result + ldp q14, q15, [x0], #32 //AES block 6, 7 - load ciphertext + + rev32 v2.16b, v30.16b //CTR block 10 + add v30.4s, v30.4s, v31.4s //CTR block 10 + +.inst 0xce046984 //eor3 v4.16b, v12.16b, v4.16b, v26.16b //AES block 4 - result + + rev32 v3.16b, v30.16b //CTR block 11 + add v30.4s, v30.4s, v31.4s //CTR block 11 + +.inst 0xce0569a5 //eor3 v5.16b, v13.16b, v5.16b, v26.16b //AES block 5 - result + stp q4, q5, [x2], #32 //AES block 4, 5 - store result + cmp x0, x5 //check if we have <= 8 blocks + +.inst 0xce0669c6 //eor3 v6.16b, v14.16b, v6.16b, v26.16b //AES block 6 - result +.inst 0xce0769e7 //eor3 v7.16b, v15.16b, v7.16b, v26.16b //AES block 7 - result + rev32 v4.16b, v30.16b //CTR block 12 + + add v30.4s, v30.4s, v31.4s //CTR block 12 + stp q6, q7, [x2], #32 //AES block 6, 7 - store result + b.ge .L192_dec_prepretail //do prepretail + +.L192_dec_main_loop: //main loop start + rev64 v9.16b, v9.16b //GHASH block 8k+1 + ldp q26, q27, [x8, #0] //load rk0, rk1 + ext v19.16b, v19.16b, v19.16b, #8 //PRE 0 + + rev64 v8.16b, v8.16b //GHASH block 8k + rev32 v5.16b, v30.16b //CTR block 8k+13 + add v30.4s, v30.4s, v31.4s //CTR block 8k+13 + + ldr q23, [x3, #176] //load h7l | h7h + ext v23.16b, v23.16b, v23.16b, #8 + ldr q25, [x3, #208] //load h8l | h8h + ext v25.16b, v25.16b, v25.16b, #8 + rev64 v12.16b, v12.16b //GHASH block 8k+4 + rev64 v11.16b, v11.16b //GHASH block 8k+3 + + eor v8.16b, v8.16b, v19.16b //PRE 1 + rev32 v6.16b, v30.16b //CTR block 8k+14 + add v30.4s, v30.4s, v31.4s //CTR block 8k+14 + + rev64 v13.16b, v13.16b //GHASH block 8k+5 + + rev32 v7.16b, v30.16b //CTR block 8k+15 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 0 + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 0 + + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 0 + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 0 + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 0 + + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 0 + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 0 + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 0 + + pmull v19.1q, v8.1d, v25.1d //GHASH block 8k - low + pmull2 v16.1q, v9.2d, v23.2d //GHASH block 8k+1 - high + ldp q28, q26, [x8, #32] //load rk2, rk3 + + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 1 + pmull v23.1q, v9.1d, v23.1d //GHASH block 8k+1 - low + ldr q20, [x3, #128] //load h5l | h5h + ext v20.16b, v20.16b, v20.16b, #8 + ldr q22, [x3, #160] //load h6l | h6h + ext v22.16b, v22.16b, v22.16b, #8 + + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 1 + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 1 + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 1 + + pmull2 v17.1q, v8.2d, v25.2d //GHASH block 8k - high + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 1 + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 1 + + trn1 v18.2d, v9.2d, v8.2d //GHASH block 8k, 8k+1 - mid + rev64 v10.16b, v10.16b //GHASH block 8k+2 + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 1 + + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 1 + ldr q21, [x3, #144] //load h6k | h5k + ldr q24, [x3, #192] //load h8k | h7k + trn2 v8.2d, v9.2d, v8.2d //GHASH block 8k, 8k+1 - mid + + eor v17.16b, v17.16b, v16.16b //GHASH block 8k+1 - high + pmull2 v9.1q, v11.2d, v20.2d //GHASH block 8k+3 - high + pmull2 v29.1q, v10.2d, v22.2d //GHASH block 8k+2 - high + + eor v8.16b, v8.16b, v18.16b //GHASH block 8k, 8k+1 - mid + eor v19.16b, v19.16b, v23.16b //GHASH block 8k+1 - low + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 2 + + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 2 + pmull v20.1q, v11.1d, v20.1d //GHASH block 8k+3 - low +.inst 0xce1d2631 //eor3 v17.16b, v17.16b, v29.16b, v9.16b //GHASH block 8k+2, 8k+3 - high + + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 2 + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 3 + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 2 + + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 2 + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 2 + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 2 + + ldr q23, [x3, #80] //load h3l | h3h + ext v23.16b, v23.16b, v23.16b, #8 + ldr q25, [x3, #112] //load h4l | h4h + ext v25.16b, v25.16b, v25.16b, #8 + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 2 + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 3 + + pmull v22.1q, v10.1d, v22.1d //GHASH block 8k+2 - low + trn1 v29.2d, v11.2d, v10.2d //GHASH block 8k+2, 8k+3 - mid + trn2 v10.2d, v11.2d, v10.2d //GHASH block 8k+2, 8k+3 - mid + + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 3 + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 3 + + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 3 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 3 + ldp q27, q28, [x8, #64] //load rk4, rk5 + + eor v10.16b, v10.16b, v29.16b //GHASH block 8k+2, 8k+3 - mid +.inst 0xce165273 //eor3 v19.16b, v19.16b, v22.16b, v20.16b //GHASH block 8k+2, 8k+3 - low + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 3 + + trn1 v16.2d, v13.2d, v12.2d //GHASH block 8k+4, 8k+5 - mid + add v30.4s, v30.4s, v31.4s //CTR block 8k+15 + + pmull2 v29.1q, v10.2d, v21.2d //GHASH block 8k+2 - mid + pmull2 v18.1q, v8.2d, v24.2d //GHASH block 8k - mid + pmull v24.1q, v8.1d, v24.1d //GHASH block 8k+1 - mid + + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 3 + pmull v21.1q, v10.1d, v21.1d //GHASH block 8k+3 - mid + pmull2 v8.1q, v12.2d, v25.2d //GHASH block 8k+4 - high + + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 4 + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 4 + eor v18.16b, v18.16b, v24.16b //GHASH block 8k+1 - mid + + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 4 + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 4 + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 4 + + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 4 + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 4 + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 4 + + ldr q20, [x3, #32] //load h1l | h1h + ext v20.16b, v20.16b, v20.16b, #8 + ldr q22, [x3, #64] //load h2l | h2h + ext v22.16b, v22.16b, v22.16b, #8 + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 5 + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 5 + + ldp q26, q27, [x8, #96] //load rk6, rk7 + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 5 + rev64 v15.16b, v15.16b //GHASH block 8k+7 + + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 5 +.inst 0xce157652 //eor3 v18.16b, v18.16b, v21.16b, v29.16b //GHASH block 8k+2, 8k+3 - mid + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 5 + + pmull v25.1q, v12.1d, v25.1d //GHASH block 8k+4 - low + trn2 v12.2d, v13.2d, v12.2d //GHASH block 8k+4, 8k+5 - mid + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 5 + + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 5 + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 5 + rev64 v14.16b, v14.16b //GHASH block 8k+6 + + ldr q21, [x3, #48] //load h2k | h1k + ldr q24, [x3, #96] //load h4k | h3k + pmull2 v10.1q, v13.2d, v23.2d //GHASH block 8k+5 - high + pmull v23.1q, v13.1d, v23.1d //GHASH block 8k+5 - low + + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 6 + eor v12.16b, v12.16b, v16.16b //GHASH block 8k+4, 8k+5 - mid + trn1 v13.2d, v15.2d, v14.2d //GHASH block 8k+6, 8k+7 - mid + + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 6 + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 6 + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 6 + + pmull2 v11.1q, v14.2d, v22.2d //GHASH block 8k+6 - high + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 6 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 6 + + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 7 + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 7 + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 6 + + pmull2 v16.1q, v12.2d, v24.2d //GHASH block 8k+4 - mid +.inst 0xce082a31 //eor3 v17.16b, v17.16b, v8.16b, v10.16b //GHASH block 8k+4, 8k+5 - high +.inst 0xce195e73 //eor3 v19.16b, v19.16b, v25.16b, v23.16b //GHASH block 8k+4, 8k+5 - low + + pmull v22.1q, v14.1d, v22.1d //GHASH block 8k+6 - low + trn2 v14.2d, v15.2d, v14.2d //GHASH block 8k+6, 8k+7 - mid + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 6 + + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 7 + ldp q28, q26, [x8, #128] //load rk8, rk9 + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 7 + + eor v14.16b, v14.16b, v13.16b //GHASH block 8k+6, 8k+7 - mid + pmull v24.1q, v12.1d, v24.1d //GHASH block 8k+5 - mid + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 7 + + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 7 + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 7 + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 7 + +.inst 0xce184252 //eor3 v18.16b, v18.16b, v24.16b, v16.16b //GHASH block 8k+4, 8k+5 - mid + pmull2 v13.1q, v14.2d, v21.2d //GHASH block 8k+6 - mid + pmull2 v12.1q, v15.2d, v20.2d //GHASH block 8k+7 - high + + pmull v21.1q, v14.1d, v21.1d //GHASH block 8k+7 - mid + ldr d16, [x10] //MODULO - load modulo constant + pmull v20.1q, v15.1d, v20.1d //GHASH block 8k+7 - low + + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 8 + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 8 + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 8 + + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 8 + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 8 +.inst 0xce165273 //eor3 v19.16b, v19.16b, v22.16b, v20.16b //GHASH block 8k+6, 8k+7 - low + + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 8 + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 8 + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 8 + +.inst 0xce0b3231 //eor3 v17.16b, v17.16b, v11.16b, v12.16b //GHASH block 8k+6, 8k+7 - high + rev32 v20.16b, v30.16b //CTR block 8k+16 + add v30.4s, v30.4s, v31.4s //CTR block 8k+16 + + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 9 +.inst 0xce153652 //eor3 v18.16b, v18.16b, v21.16b, v13.16b //GHASH block 8k+6, 8k+7 - mid + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 9 + + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 9 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 9 + ldp q27, q28, [x8, #160] //load rk10, rk11 + +.inst 0xce114e52 //eor3 v18.16b, v18.16b, v17.16b, v19.16b //MODULO - karatsuba tidy up + ldp q8, q9, [x0], #32 //AES block 8k+8, 8k+9 - load ciphertext + + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 9 + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 9 + ldp q10, q11, [x0], #32 //AES block 8k+10, 8k+11 - load ciphertext + + rev32 v22.16b, v30.16b //CTR block 8k+17 + pmull v29.1q, v17.1d, v16.1d //MODULO - top 64b align with mid + add v30.4s, v30.4s, v31.4s //CTR block 8k+17 + + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 9 + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 9 + ext v21.16b, v17.16b, v17.16b, #8 //MODULO - other top alignment + + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 10 + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 10 + ldp q12, q13, [x0], #32 //AES block 8k+12, 8k+13 - load ciphertext + + rev32 v23.16b, v30.16b //CTR block 8k+18 + add v30.4s, v30.4s, v31.4s //CTR block 8k+18 +.inst 0xce1d5652 //eor3 v18.16b, v18.16b, v29.16b, v21.16b //MODULO - fold into mid + + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 10 + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 10 + ldr q26, [x8, #192] //load rk12 + + ldp q14, q15, [x0], #32 //AES block 8k+14, 8k+15 - load ciphertext + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 10 + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 10 + + aese v0.16b, v28.16b //AES block 8k+8 - round 11 + ext v21.16b, v18.16b, v18.16b, #8 //MODULO - other mid alignment + aese v1.16b, v28.16b //AES block 8k+9 - round 11 + + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 10 + aese v6.16b, v28.16b //AES block 8k+14 - round 11 + aese v3.16b, v28.16b //AES block 8k+11 - round 11 + +.inst 0xce006900 //eor3 v0.16b, v8.16b, v0.16b, v26.16b //AES block 8k+8 - result + rev32 v25.16b, v30.16b //CTR block 8k+19 + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 10 + + aese v4.16b, v28.16b //AES block 8k+12 - round 11 + aese v2.16b, v28.16b //AES block 8k+10 - round 11 + add v30.4s, v30.4s, v31.4s //CTR block 8k+19 + + aese v7.16b, v28.16b //AES block 8k+15 - round 11 + aese v5.16b, v28.16b //AES block 8k+13 - round 11 + pmull v17.1q, v18.1d, v16.1d //MODULO - mid 64b align with low + +.inst 0xce016921 //eor3 v1.16b, v9.16b, v1.16b, v26.16b //AES block 8k+9 - result + stp q0, q1, [x2], #32 //AES block 8k+8, 8k+9 - store result +.inst 0xce036963 //eor3 v3.16b, v11.16b, v3.16b, v26.16b //AES block 8k+11 - result + +.inst 0xce026942 //eor3 v2.16b, v10.16b, v2.16b, v26.16b //AES block 8k+10 - result +.inst 0xce0769e7 //eor3 v7.16b, v15.16b, v7.16b, v26.16b //AES block 8k+15 - result + stp q2, q3, [x2], #32 //AES block 8k+10, 8k+11 - store result + +.inst 0xce0569a5 //eor3 v5.16b, v13.16b, v5.16b, v26.16b //AES block 8k+13 - result +.inst 0xce115673 //eor3 v19.16b, v19.16b, v17.16b, v21.16b //MODULO - fold into low + mov v3.16b, v25.16b //CTR block 8k+19 + +.inst 0xce046984 //eor3 v4.16b, v12.16b, v4.16b, v26.16b //AES block 8k+12 - result + stp q4, q5, [x2], #32 //AES block 8k+12, 8k+13 - store result + cmp x0, x5 //.LOOP CONTROL + +.inst 0xce0669c6 //eor3 v6.16b, v14.16b, v6.16b, v26.16b //AES block 8k+14 - result + stp q6, q7, [x2], #32 //AES block 8k+14, 8k+15 - store result + mov v0.16b, v20.16b //CTR block 8k+16 + + mov v1.16b, v22.16b //CTR block 8k+17 + mov v2.16b, v23.16b //CTR block 8k+18 + + rev32 v4.16b, v30.16b //CTR block 8k+20 + add v30.4s, v30.4s, v31.4s //CTR block 8k+20 + b.lt .L192_dec_main_loop + +.L192_dec_prepretail: //PREPRETAIL + ldp q26, q27, [x8, #0] //load rk0, rk1 + rev32 v5.16b, v30.16b //CTR block 8k+13 + add v30.4s, v30.4s, v31.4s //CTR block 8k+13 + + ldr q23, [x3, #176] //load h7l | h7h + ext v23.16b, v23.16b, v23.16b, #8 + ldr q25, [x3, #208] //load h8l | h8h + ext v25.16b, v25.16b, v25.16b, #8 + rev64 v8.16b, v8.16b //GHASH block 8k + ext v19.16b, v19.16b, v19.16b, #8 //PRE 0 + + rev64 v11.16b, v11.16b //GHASH block 8k+3 + rev32 v6.16b, v30.16b //CTR block 8k+14 + add v30.4s, v30.4s, v31.4s //CTR block 8k+14 + + eor v8.16b, v8.16b, v19.16b //PRE 1 + rev64 v10.16b, v10.16b //GHASH block 8k+2 + rev64 v9.16b, v9.16b //GHASH block 8k+1 + + ldr q20, [x3, #128] //load h5l | h5h + ext v20.16b, v20.16b, v20.16b, #8 + ldr q22, [x3, #160] //load h6l | h6h + ext v22.16b, v22.16b, v22.16b, #8 + rev32 v7.16b, v30.16b //CTR block 8k+15 + + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 0 + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 0 + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 0 + + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 0 + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 0 + pmull2 v16.1q, v9.2d, v23.2d //GHASH block 8k+1 - high + + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 0 + pmull2 v17.1q, v8.2d, v25.2d //GHASH block 8k - high + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 0 + + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 1 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 0 + ldp q28, q26, [x8, #32] //load rk2, rk3 + + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 1 + pmull2 v29.1q, v10.2d, v22.2d //GHASH block 8k+2 - high + pmull v22.1q, v10.1d, v22.1d //GHASH block 8k+2 - low + + pmull v23.1q, v9.1d, v23.1d //GHASH block 8k+1 - low + eor v17.16b, v17.16b, v16.16b //GHASH block 8k+1 - high + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 1 + + pmull v19.1q, v8.1d, v25.1d //GHASH block 8k - low + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 1 + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 1 + + trn1 v18.2d, v9.2d, v8.2d //GHASH block 8k, 8k+1 - mid + trn2 v8.2d, v9.2d, v8.2d //GHASH block 8k, 8k+1 - mid + pmull2 v9.1q, v11.2d, v20.2d //GHASH block 8k+3 - high + + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 1 + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 1 + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 1 + + ldr q21, [x3, #144] //load h6k | h5k + ldr q24, [x3, #192] //load h8k | h7k + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 2 + eor v8.16b, v8.16b, v18.16b //GHASH block 8k, 8k+1 - mid + + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 2 + rev64 v13.16b, v13.16b //GHASH block 8k+5 + pmull v20.1q, v11.1d, v20.1d //GHASH block 8k+3 - low + +.inst 0xce1d2631 //eor3 v17.16b, v17.16b, v29.16b, v9.16b //GHASH block 8k+2, 8k+3 - high + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 2 + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 2 + + trn1 v29.2d, v11.2d, v10.2d //GHASH block 8k+2, 8k+3 - mid + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 3 + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 2 + + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 2 + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 2 + trn2 v10.2d, v11.2d, v10.2d //GHASH block 8k+2, 8k+3 - mid + + pmull2 v18.1q, v8.2d, v24.2d //GHASH block 8k - mid + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 2 + pmull v24.1q, v8.1d, v24.1d //GHASH block 8k+1 - mid + + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 3 + eor v10.16b, v10.16b, v29.16b //GHASH block 8k+2, 8k+3 - mid + eor v19.16b, v19.16b, v23.16b //GHASH block 8k+1 - low + + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 3 + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 3 + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 3 + +.inst 0xce165273 //eor3 v19.16b, v19.16b, v22.16b, v20.16b //GHASH block 8k+2, 8k+3 - low + ldp q27, q28, [x8, #64] //load rk4, rk5 + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 3 + + ldr q23, [x3, #80] //load h3l | h3h + ext v23.16b, v23.16b, v23.16b, #8 + ldr q25, [x3, #112] //load h4l | h4h + ext v25.16b, v25.16b, v25.16b, #8 + pmull2 v29.1q, v10.2d, v21.2d //GHASH block 8k+2 - mid + pmull v21.1q, v10.1d, v21.1d //GHASH block 8k+3 - mid + + ldr q20, [x3, #32] //load h1l | h1h + ext v20.16b, v20.16b, v20.16b, #8 + ldr q22, [x3, #64] //load h2l | h2h + ext v22.16b, v22.16b, v22.16b, #8 + eor v18.16b, v18.16b, v24.16b //GHASH block 8k+1 - mid + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 3 + + rev64 v15.16b, v15.16b //GHASH block 8k+7 + +.inst 0xce157652 //eor3 v18.16b, v18.16b, v21.16b, v29.16b //GHASH block 8k+2, 8k+3 - mid + rev64 v12.16b, v12.16b //GHASH block 8k+4 + + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 4 + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 4 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 3 + + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 4 + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 4 + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 4 + + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 4 + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 4 + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 4 + + rev64 v14.16b, v14.16b //GHASH block 8k+6 + ldr q21, [x3, #48] //load h2k | h1k + ldr q24, [x3, #96] //load h4k | h3k + trn1 v16.2d, v13.2d, v12.2d //GHASH block 8k+4, 8k+5 - mid + + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 5 + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 5 + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 5 + + ldp q26, q27, [x8, #96] //load rk6, rk7 + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 5 + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 5 + + pmull2 v11.1q, v14.2d, v22.2d //GHASH block 8k+6 - high + pmull2 v8.1q, v12.2d, v25.2d //GHASH block 8k+4 - high + pmull v22.1q, v14.1d, v22.1d //GHASH block 8k+6 - low + + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 5 + + pmull v25.1q, v12.1d, v25.1d //GHASH block 8k+4 - low + trn2 v12.2d, v13.2d, v12.2d //GHASH block 8k+4, 8k+5 - mid + pmull2 v10.1q, v13.2d, v23.2d //GHASH block 8k+5 - high + + pmull v23.1q, v13.1d, v23.1d //GHASH block 8k+5 - low + trn1 v13.2d, v15.2d, v14.2d //GHASH block 8k+6, 8k+7 - mid + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 5 + + trn2 v14.2d, v15.2d, v14.2d //GHASH block 8k+6, 8k+7 - mid + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 5 + eor v12.16b, v12.16b, v16.16b //GHASH block 8k+4, 8k+5 - mid + + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 6 + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 6 + + eor v14.16b, v14.16b, v13.16b //GHASH block 8k+6, 8k+7 - mid + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 6 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 6 + + pmull2 v16.1q, v12.2d, v24.2d //GHASH block 8k+4 - mid + pmull v24.1q, v12.1d, v24.1d //GHASH block 8k+5 - mid + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 6 + + pmull2 v13.1q, v14.2d, v21.2d //GHASH block 8k+6 - mid + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 6 + pmull2 v12.1q, v15.2d, v20.2d //GHASH block 8k+7 - high + +.inst 0xce184252 //eor3 v18.16b, v18.16b, v24.16b, v16.16b //GHASH block 8k+4, 8k+5 - mid + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 7 +.inst 0xce195e73 //eor3 v19.16b, v19.16b, v25.16b, v23.16b //GHASH block 8k+4, 8k+5 - low + + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 6 + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 6 + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 7 + + ldp q28, q26, [x8, #128] //load rk8, rk9 + pmull v21.1q, v14.1d, v21.1d //GHASH block 8k+7 - mid + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 7 + + ldr d16, [x10] //MODULO - load modulo constant +.inst 0xce082a31 //eor3 v17.16b, v17.16b, v8.16b, v10.16b //GHASH block 8k+4, 8k+5 - high + pmull v20.1q, v15.1d, v20.1d //GHASH block 8k+7 - low + + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 7 + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 7 + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 7 + +.inst 0xce0b3231 //eor3 v17.16b, v17.16b, v11.16b, v12.16b //GHASH block 8k+6, 8k+7 - high +.inst 0xce165273 //eor3 v19.16b, v19.16b, v22.16b, v20.16b //GHASH block 8k+6, 8k+7 - low +.inst 0xce153652 //eor3 v18.16b, v18.16b, v21.16b, v13.16b //GHASH block 8k+6, 8k+7 - mid + + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 7 + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 7 + +.inst 0xce114e52 //eor3 v18.16b, v18.16b, v17.16b, v19.16b //MODULO - karatsuba tidy up + ext v21.16b, v17.16b, v17.16b, #8 //MODULO - other top alignment + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 8 + + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 8 + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 8 + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 8 + + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 8 + pmull v29.1q, v17.1d, v16.1d //MODULO - top 64b align with mid + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 8 + + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 8 + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 8 + ldp q27, q28, [x8, #160] //load rk10, rk11 + +.inst 0xce1d5652 //eor3 v18.16b, v18.16b, v29.16b, v21.16b //MODULO - fold into mid + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 9 + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 9 + + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 9 + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 9 + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 9 + + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 9 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 9 + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 9 + + pmull v17.1q, v18.1d, v16.1d //MODULO - mid 64b align with low + ldr q26, [x8, #192] //load rk12 + ext v21.16b, v18.16b, v18.16b, #8 //MODULO - other mid alignment + + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 10 + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 10 + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 10 + + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 10 + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 10 + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 10 + + aese v0.16b, v28.16b //AES block 8k+8 - round 11 +.inst 0xce115673 //eor3 v19.16b, v19.16b, v17.16b, v21.16b //MODULO - fold into low + aese v5.16b, v28.16b //AES block 8k+13 - round 11 + + aese v2.16b, v28.16b //AES block 8k+10 - round 11 + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 10 + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 10 + + aese v6.16b, v28.16b //AES block 8k+14 - round 11 + aese v4.16b, v28.16b //AES block 8k+12 - round 11 + add v30.4s, v30.4s, v31.4s //CTR block 8k+15 + + aese v3.16b, v28.16b //AES block 8k+11 - round 11 + aese v1.16b, v28.16b //AES block 8k+9 - round 11 + aese v7.16b, v28.16b //AES block 8k+15 - round 11 + +.L192_dec_tail: //TAIL + + sub x5, x4, x0 //main_end_input_ptr is number of bytes left to process + + ldp q20, q21, [x3, #128] //load h5l | h5h + ext v20.16b, v20.16b, v20.16b, #8 + ldr q9, [x0], #16 //AES block 8k+8 - load ciphertext + + ldp q24, q25, [x3, #192] //load h8k | h7k + ext v25.16b, v25.16b, v25.16b, #8 + + mov v29.16b, v26.16b + + ldp q22, q23, [x3, #160] //load h6l | h6h + ext v22.16b, v22.16b, v22.16b, #8 + ext v23.16b, v23.16b, v23.16b, #8 + ext v16.16b, v19.16b, v19.16b, #8 //prepare final partial tag + +.inst 0xce00752c //eor3 v12.16b, v9.16b, v0.16b, v29.16b //AES block 8k+8 - result + cmp x5, #112 + b.gt .L192_dec_blocks_more_than_7 + + mov v7.16b, v6.16b + movi v17.8b, #0 + sub v30.4s, v30.4s, v31.4s + + mov v6.16b, v5.16b + mov v5.16b, v4.16b + mov v4.16b, v3.16b + + cmp x5, #96 + movi v19.8b, #0 + mov v3.16b, v2.16b + + mov v2.16b, v1.16b + movi v18.8b, #0 + b.gt .L192_dec_blocks_more_than_6 + + mov v7.16b, v6.16b + mov v6.16b, v5.16b + mov v5.16b, v4.16b + + mov v4.16b, v3.16b + mov v3.16b, v1.16b + + sub v30.4s, v30.4s, v31.4s + cmp x5, #80 + b.gt .L192_dec_blocks_more_than_5 + + mov v7.16b, v6.16b + mov v6.16b, v5.16b + + mov v5.16b, v4.16b + mov v4.16b, v1.16b + cmp x5, #64 + + sub v30.4s, v30.4s, v31.4s + b.gt .L192_dec_blocks_more_than_4 + + sub v30.4s, v30.4s, v31.4s + mov v7.16b, v6.16b + mov v6.16b, v5.16b + + mov v5.16b, v1.16b + cmp x5, #48 + b.gt .L192_dec_blocks_more_than_3 + + sub v30.4s, v30.4s, v31.4s + mov v7.16b, v6.16b + cmp x5, #32 + + mov v6.16b, v1.16b + ldr q24, [x3, #96] //load h4k | h3k + b.gt .L192_dec_blocks_more_than_2 + + sub v30.4s, v30.4s, v31.4s + + mov v7.16b, v1.16b + cmp x5, #16 + b.gt .L192_dec_blocks_more_than_1 + + sub v30.4s, v30.4s, v31.4s + ldr q21, [x3, #48] //load h2k | h1k + b .L192_dec_blocks_less_than_1 +.L192_dec_blocks_more_than_7: //blocks left > 7 + rev64 v8.16b, v9.16b //GHASH final-7 block + + ins v18.d[0], v24.d[1] //GHASH final-7 block - mid + eor v8.16b, v8.16b, v16.16b //feed in partial tag + + pmull2 v17.1q, v8.2d, v25.2d //GHASH final-7 block - high + ins v27.d[0], v8.d[1] //GHASH final-7 block - mid + ldr q9, [x0], #16 //AES final-6 block - load ciphertext + + pmull v19.1q, v8.1d, v25.1d //GHASH final-7 block - low + + eor v27.8b, v27.8b, v8.8b //GHASH final-7 block - mid + st1 { v12.16b}, [x2], #16 //AES final-7 block - store result + +.inst 0xce01752c //eor3 v12.16b, v9.16b, v1.16b, v29.16b //AES final-6 block - result + + pmull v18.1q, v27.1d, v18.1d //GHASH final-7 block - mid + movi v16.8b, #0 //suppress further partial tag feed in +.L192_dec_blocks_more_than_6: //blocks left > 6 + + rev64 v8.16b, v9.16b //GHASH final-6 block + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + + ldr q9, [x0], #16 //AES final-5 block - load ciphertext + ins v27.d[0], v8.d[1] //GHASH final-6 block - mid + + eor v27.8b, v27.8b, v8.8b //GHASH final-6 block - mid + movi v16.8b, #0 //suppress further partial tag feed in + pmull2 v28.1q, v8.2d, v23.2d //GHASH final-6 block - high + + st1 { v12.16b}, [x2], #16 //AES final-6 block - store result +.inst 0xce02752c //eor3 v12.16b, v9.16b, v2.16b, v29.16b //AES final-5 block - result + + eor v17.16b, v17.16b, v28.16b //GHASH final-6 block - high + pmull v27.1q, v27.1d, v24.1d //GHASH final-6 block - mid + pmull v26.1q, v8.1d, v23.1d //GHASH final-6 block - low + + eor v18.16b, v18.16b, v27.16b //GHASH final-6 block - mid + eor v19.16b, v19.16b, v26.16b //GHASH final-6 block - low +.L192_dec_blocks_more_than_5: //blocks left > 5 + + rev64 v8.16b, v9.16b //GHASH final-5 block + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + + ins v27.d[0], v8.d[1] //GHASH final-5 block - mid + + eor v27.8b, v27.8b, v8.8b //GHASH final-5 block - mid + + ins v27.d[1], v27.d[0] //GHASH final-5 block - mid + pmull2 v28.1q, v8.2d, v22.2d //GHASH final-5 block - high + + ldr q9, [x0], #16 //AES final-4 block - load ciphertext + + eor v17.16b, v17.16b, v28.16b //GHASH final-5 block - high + pmull v26.1q, v8.1d, v22.1d //GHASH final-5 block - low + + pmull2 v27.1q, v27.2d, v21.2d //GHASH final-5 block - mid + + eor v19.16b, v19.16b, v26.16b //GHASH final-5 block - low + movi v16.8b, #0 //suppress further partial tag feed in + st1 { v12.16b}, [x2], #16 //AES final-5 block - store result + + eor v18.16b, v18.16b, v27.16b //GHASH final-5 block - mid +.inst 0xce03752c //eor3 v12.16b, v9.16b, v3.16b, v29.16b //AES final-4 block - result +.L192_dec_blocks_more_than_4: //blocks left > 4 + + rev64 v8.16b, v9.16b //GHASH final-4 block + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + movi v16.8b, #0 //suppress further partial tag feed in + + ldr q9, [x0], #16 //AES final-3 block - load ciphertext + ins v27.d[0], v8.d[1] //GHASH final-4 block - mid + pmull v26.1q, v8.1d, v20.1d //GHASH final-4 block - low + + eor v27.8b, v27.8b, v8.8b //GHASH final-4 block - mid + + eor v19.16b, v19.16b, v26.16b //GHASH final-4 block - low + + pmull v27.1q, v27.1d, v21.1d //GHASH final-4 block - mid + st1 { v12.16b}, [x2], #16 //AES final-4 block - store result + pmull2 v28.1q, v8.2d, v20.2d //GHASH final-4 block - high + +.inst 0xce04752c //eor3 v12.16b, v9.16b, v4.16b, v29.16b //AES final-3 block - result + + eor v18.16b, v18.16b, v27.16b //GHASH final-4 block - mid + eor v17.16b, v17.16b, v28.16b //GHASH final-4 block - high +.L192_dec_blocks_more_than_3: //blocks left > 3 + + ldr q25, [x3, #112] //load h4l | h4h + ext v25.16b, v25.16b, v25.16b, #8 + rev64 v8.16b, v9.16b //GHASH final-3 block + ldr q9, [x0], #16 //AES final-2 block - load ciphertext + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + + ins v27.d[0], v8.d[1] //GHASH final-3 block - mid + pmull2 v28.1q, v8.2d, v25.2d //GHASH final-3 block - high + + eor v17.16b, v17.16b, v28.16b //GHASH final-3 block - high + movi v16.8b, #0 //suppress further partial tag feed in + pmull v26.1q, v8.1d, v25.1d //GHASH final-3 block - low + + st1 { v12.16b}, [x2], #16 //AES final-3 block - store result + eor v27.8b, v27.8b, v8.8b //GHASH final-3 block - mid +.inst 0xce05752c //eor3 v12.16b, v9.16b, v5.16b, v29.16b //AES final-2 block - result + + eor v19.16b, v19.16b, v26.16b //GHASH final-3 block - low + ldr q24, [x3, #96] //load h4k | h3k + + ins v27.d[1], v27.d[0] //GHASH final-3 block - mid + + pmull2 v27.1q, v27.2d, v24.2d //GHASH final-3 block - mid + + eor v18.16b, v18.16b, v27.16b //GHASH final-3 block - mid +.L192_dec_blocks_more_than_2: //blocks left > 2 + + rev64 v8.16b, v9.16b //GHASH final-2 block + ldr q23, [x3, #80] //load h3l | h3h + ext v23.16b, v23.16b, v23.16b, #8 + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + + ins v27.d[0], v8.d[1] //GHASH final-2 block - mid + ldr q9, [x0], #16 //AES final-1 block - load ciphertext + + pmull2 v28.1q, v8.2d, v23.2d //GHASH final-2 block - high + + eor v27.8b, v27.8b, v8.8b //GHASH final-2 block - mid + + eor v17.16b, v17.16b, v28.16b //GHASH final-2 block - high + pmull v26.1q, v8.1d, v23.1d //GHASH final-2 block - low + + pmull v27.1q, v27.1d, v24.1d //GHASH final-2 block - mid + movi v16.8b, #0 //suppress further partial tag feed in + + eor v19.16b, v19.16b, v26.16b //GHASH final-2 block - low + st1 { v12.16b}, [x2], #16 //AES final-2 block - store result + + eor v18.16b, v18.16b, v27.16b //GHASH final-2 block - mid +.inst 0xce06752c //eor3 v12.16b, v9.16b, v6.16b, v29.16b //AES final-1 block - result +.L192_dec_blocks_more_than_1: //blocks left > 1 + + rev64 v8.16b, v9.16b //GHASH final-1 block + ldr q9, [x0], #16 //AES final block - load ciphertext + ldr q22, [x3, #64] //load h1l | h1h + ext v22.16b, v22.16b, v22.16b, #8 + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + movi v16.8b, #0 //suppress further partial tag feed in + ldr q21, [x3, #48] //load h2k | h1k + + pmull v26.1q, v8.1d, v22.1d //GHASH final-1 block - low + ins v27.d[0], v8.d[1] //GHASH final-1 block - mid + st1 { v12.16b}, [x2], #16 //AES final-1 block - store result + + pmull2 v28.1q, v8.2d, v22.2d //GHASH final-1 block - high + +.inst 0xce07752c //eor3 v12.16b, v9.16b, v7.16b, v29.16b //AES final block - result + + eor v27.8b, v27.8b, v8.8b //GHASH final-1 block - mid + + ins v27.d[1], v27.d[0] //GHASH final-1 block - mid + + pmull2 v27.1q, v27.2d, v21.2d //GHASH final-1 block - mid + + eor v19.16b, v19.16b, v26.16b //GHASH final-1 block - low + + eor v18.16b, v18.16b, v27.16b //GHASH final-1 block - mid + eor v17.16b, v17.16b, v28.16b //GHASH final-1 block - high +.L192_dec_blocks_less_than_1: //blocks left <= 1 + + rev32 v30.16b, v30.16b + and x1, x1, #127 //bit_length %= 128 + + sub x1, x1, #128 //bit_length -= 128 + str q30, [x16] //store the updated counter + + neg x1, x1 //bit_length = 128 - #bits in input (in range [1,128]) + mvn x6, xzr //temp0_x = 0xffffffffffffffff + + and x1, x1, #127 //bit_length %= 128 + + mvn x7, xzr //temp1_x = 0xffffffffffffffff + lsr x6, x6, x1 //temp0_x is mask for top 64b of last block + cmp x1, #64 + + csel x13, x7, x6, lt + csel x14, x6, xzr, lt + ldr q20, [x3, #32] //load h1l | h1h + ext v20.16b, v20.16b, v20.16b, #8 + + mov v0.d[1], x14 + ld1 { v26.16b}, [x2] //load existing bytes where the possibly partial last block is to be stored + + mov v0.d[0], x13 //ctr0b is mask for last block + + and v9.16b, v9.16b, v0.16b //possibly partial last block has zeroes in highest bits + bif v12.16b, v26.16b, v0.16b //insert existing bytes in top end of result before storing + + rev64 v8.16b, v9.16b //GHASH final block + + st1 { v12.16b}, [x2] //store all 16B + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + + ins v16.d[0], v8.d[1] //GHASH final block - mid + pmull v26.1q, v8.1d, v20.1d //GHASH final block - low + + eor v16.8b, v16.8b, v8.8b //GHASH final block - mid + pmull2 v28.1q, v8.2d, v20.2d //GHASH final block - high + eor v19.16b, v19.16b, v26.16b //GHASH final block - low + + pmull v16.1q, v16.1d, v21.1d //GHASH final block - mid + eor v17.16b, v17.16b, v28.16b //GHASH final block - high + + eor v14.16b, v17.16b, v19.16b //MODULO - karatsuba tidy up + eor v18.16b, v18.16b, v16.16b //GHASH final block - mid + ldr d16, [x10] //MODULO - load modulo constant + + pmull v21.1q, v17.1d, v16.1d //MODULO - top 64b align with mid + ext v17.16b, v17.16b, v17.16b, #8 //MODULO - other top alignment + + eor v18.16b, v18.16b, v14.16b //MODULO - karatsuba tidy up + +.inst 0xce115652 //eor3 v18.16b, v18.16b, v17.16b, v21.16b //MODULO - fold into mid + + pmull v17.1q, v18.1d, v16.1d //MODULO - mid 64b align with low + ext v18.16b, v18.16b, v18.16b, #8 //MODULO - other mid alignment + +.inst 0xce124673 //eor3 v19.16b, v19.16b, v18.16b, v17.16b //MODULO - fold into low + ext v19.16b, v19.16b, v19.16b, #8 + rev64 v19.16b, v19.16b + st1 { v19.16b }, [x3] + + mov x0, x9 + + ldp d10, d11, [sp, #16] + ldp d12, d13, [sp, #32] + ldp d14, d15, [sp, #48] + ldp d8, d9, [sp], #80 + ret + +.L192_dec_ret: + mov w0, #0x0 + ret +.size unroll8_eor3_aes_gcm_dec_192_kernel,.-unroll8_eor3_aes_gcm_dec_192_kernel +.globl unroll8_eor3_aes_gcm_enc_256_kernel +.type unroll8_eor3_aes_gcm_enc_256_kernel,%function +.align 4 +unroll8_eor3_aes_gcm_enc_256_kernel: + AARCH64_VALID_CALL_TARGET + cbz x1, .L256_enc_ret + stp d8, d9, [sp, #-80]! + lsr x9, x1, #3 + mov x16, x4 + mov x8, x5 + stp d10, d11, [sp, #16] + stp d12, d13, [sp, #32] + stp d14, d15, [sp, #48] + mov x5, #0xc200000000000000 + stp x5, xzr, [sp, #64] + add x10, sp, #64 + + ld1 { v0.16b}, [x16] //CTR block 0 + + mov x5, x9 + + mov x15, #0x100000000 //set up counter increment + movi v31.16b, #0x0 + mov v31.d[1], x15 + sub x5, x5, #1 //byte_len - 1 + + and x5, x5, #0xffffffffffffff80 //number of bytes to be processed in main loop (at least 1 byte must be handled by tail) + + add x5, x5, x0 + + rev32 v30.16b, v0.16b //set up reversed counter + + add v30.4s, v30.4s, v31.4s //CTR block 0 + + rev32 v1.16b, v30.16b //CTR block 1 + add v30.4s, v30.4s, v31.4s //CTR block 1 + + rev32 v2.16b, v30.16b //CTR block 2 + add v30.4s, v30.4s, v31.4s //CTR block 2 + + rev32 v3.16b, v30.16b //CTR block 3 + add v30.4s, v30.4s, v31.4s //CTR block 3 + + rev32 v4.16b, v30.16b //CTR block 4 + add v30.4s, v30.4s, v31.4s //CTR block 4 + + rev32 v5.16b, v30.16b //CTR block 5 + add v30.4s, v30.4s, v31.4s //CTR block 5 + ldp q26, q27, [x8, #0] //load rk0, rk1 + + rev32 v6.16b, v30.16b //CTR block 6 + add v30.4s, v30.4s, v31.4s //CTR block 6 + + rev32 v7.16b, v30.16b //CTR block 7 + + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 3 - round 0 + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 4 - round 0 + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 2 - round 0 + + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 0 - round 0 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 1 - round 0 + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 6 - round 0 + + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 5 - round 0 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 7 - round 0 + ldp q28, q26, [x8, #32] //load rk2, rk3 + + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 4 - round 1 + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 1 - round 1 + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 3 - round 1 + + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 6 - round 1 + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 5 - round 1 + + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 2 - round 1 + + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 7 - round 1 + + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 2 - round 2 + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 3 - round 2 + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 0 - round 1 + + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 7 - round 2 + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 6 - round 2 + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 5 - round 2 + + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 4 - round 2 + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 0 - round 2 + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 1 - round 2 + + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 5 - round 3 + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 3 - round 3 + ldp q27, q28, [x8, #64] //load rk4, rk5 + + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 4 - round 3 + + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 1 - round 3 + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 6 - round 3 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 7 - round 3 + + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 2 - round 3 + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 0 - round 3 + + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 4 - round 4 + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 6 - round 4 + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 1 - round 4 + + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 2 - round 4 + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 0 - round 4 + + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 3 - round 4 + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 7 - round 4 + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 5 - round 4 + + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 0 - round 5 + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 2 - round 5 + ldp q26, q27, [x8, #96] //load rk6, rk7 + + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 1 - round 5 + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 4 - round 5 + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 5 - round 5 + + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 3 - round 5 + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 6 - round 5 + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 7 - round 5 + + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 1 - round 6 + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 5 - round 6 + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 4 - round 6 + + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 2 - round 6 + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 6 - round 6 + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 0 - round 6 + + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 7 - round 6 + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 3 - round 6 + ldp q28, q26, [x8, #128] //load rk8, rk9 + + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 2 - round 7 + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 0 - round 7 + + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 7 - round 7 + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 6 - round 7 + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 1 - round 7 + + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 5 - round 7 + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 3 - round 7 + + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 4 - round 7 + + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 6 - round 8 + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 1 - round 8 + + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 3 - round 8 + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 0 - round 8 + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 7 - round 8 + + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 5 - round 8 + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 4 - round 8 + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 2 - round 8 + + ld1 { v19.16b}, [x3] + ext v19.16b, v19.16b, v19.16b, #8 + rev64 v19.16b, v19.16b + ldp q27, q28, [x8, #160] //load rk10, rk11 + + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 6 - round 9 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 7 - round 9 + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 3 - round 9 + + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 4 - round 9 + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 5 - round 9 + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 2 - round 9 + + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 1 - round 9 + + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 7 - round 10 + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 4 - round 10 + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 0 - round 9 + + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 1 - round 10 + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 5 - round 10 + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 3 - round 10 + + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 2 - round 10 + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 0 - round 10 + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 6 - round 10 + + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 4 - round 11 + ldp q26, q27, [x8, #192] //load rk12, rk13 + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 5 - round 11 + + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 2 - round 11 + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 6 - round 11 + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 1 - round 11 + + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 0 - round 11 + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 3 - round 11 + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 7 - round 11 + + add v30.4s, v30.4s, v31.4s //CTR block 7 + ldr q28, [x8, #224] //load rk14 + + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 4 - round 12 + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 2 - round 12 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 1 - round 12 + + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 0 - round 12 + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 5 - round 12 + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 3 - round 12 + + aese v2.16b, v27.16b //AES block 2 - round 13 + aese v1.16b, v27.16b //AES block 1 - round 13 + aese v4.16b, v27.16b //AES block 4 - round 13 + + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 6 - round 12 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 7 - round 12 + + aese v0.16b, v27.16b //AES block 0 - round 13 + aese v5.16b, v27.16b //AES block 5 - round 13 + + aese v6.16b, v27.16b //AES block 6 - round 13 + aese v7.16b, v27.16b //AES block 7 - round 13 + aese v3.16b, v27.16b //AES block 3 - round 13 + + add x4, x0, x1, lsr #3 //end_input_ptr + cmp x0, x5 //check if we have <= 8 blocks + b.ge .L256_enc_tail //handle tail + + ldp q8, q9, [x0], #32 //AES block 0, 1 - load plaintext + + ldp q10, q11, [x0], #32 //AES block 2, 3 - load plaintext + +.inst 0xce007108 //eor3 v8.16b, v8.16b, v0.16b, v28.16b //AES block 0 - result + rev32 v0.16b, v30.16b //CTR block 8 + add v30.4s, v30.4s, v31.4s //CTR block 8 + +.inst 0xce017129 //eor3 v9.16b, v9.16b, v1.16b, v28.16b //AES block 1 - result +.inst 0xce03716b //eor3 v11.16b, v11.16b, v3.16b, v28.16b //AES block 3 - result + + rev32 v1.16b, v30.16b //CTR block 9 + add v30.4s, v30.4s, v31.4s //CTR block 9 + ldp q12, q13, [x0], #32 //AES block 4, 5 - load plaintext + + ldp q14, q15, [x0], #32 //AES block 6, 7 - load plaintext +.inst 0xce02714a //eor3 v10.16b, v10.16b, v2.16b, v28.16b //AES block 2 - result + cmp x0, x5 //check if we have <= 8 blocks + + rev32 v2.16b, v30.16b //CTR block 10 + add v30.4s, v30.4s, v31.4s //CTR block 10 + stp q8, q9, [x2], #32 //AES block 0, 1 - store result + + stp q10, q11, [x2], #32 //AES block 2, 3 - store result + + rev32 v3.16b, v30.16b //CTR block 11 + add v30.4s, v30.4s, v31.4s //CTR block 11 + +.inst 0xce04718c //eor3 v12.16b, v12.16b, v4.16b, v28.16b //AES block 4 - result + +.inst 0xce0771ef //eor3 v15.16b, v15.16b, v7.16b, v28.16b //AES block 7 - result +.inst 0xce0671ce //eor3 v14.16b, v14.16b, v6.16b, v28.16b //AES block 6 - result +.inst 0xce0571ad //eor3 v13.16b, v13.16b, v5.16b, v28.16b //AES block 5 - result + + stp q12, q13, [x2], #32 //AES block 4, 5 - store result + rev32 v4.16b, v30.16b //CTR block 12 + + stp q14, q15, [x2], #32 //AES block 6, 7 - store result + add v30.4s, v30.4s, v31.4s //CTR block 12 + b.ge .L256_enc_prepretail //do prepretail + +.L256_enc_main_loop: //main loop start + ldp q26, q27, [x8, #0] //load rk0, rk1 + + rev32 v5.16b, v30.16b //CTR block 8k+13 + add v30.4s, v30.4s, v31.4s //CTR block 8k+13 + ldr q21, [x3, #144] //load h6k | h5k + ldr q24, [x3, #192] //load h8k | h7k + + rev64 v11.16b, v11.16b //GHASH block 8k+3 + ldr q20, [x3, #128] //load h5l | h5h + ext v20.16b, v20.16b, v20.16b, #8 + ldr q22, [x3, #160] //load h6l | h6h + ext v22.16b, v22.16b, v22.16b, #8 + rev64 v9.16b, v9.16b //GHASH block 8k+1 + + rev32 v6.16b, v30.16b //CTR block 8k+14 + add v30.4s, v30.4s, v31.4s //CTR block 8k+14 + rev64 v8.16b, v8.16b //GHASH block 8k + + rev64 v12.16b, v12.16b //GHASH block 8k+4 + ext v19.16b, v19.16b, v19.16b, #8 //PRE 0 + ldr q23, [x3, #176] //load h7l | h7h + ext v23.16b, v23.16b, v23.16b, #8 + ldr q25, [x3, #208] //load h8l | h8h + ext v25.16b, v25.16b, v25.16b, #8 + + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 0 + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 0 + rev32 v7.16b, v30.16b //CTR block 8k+15 + + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 0 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 0 + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 0 + + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 0 + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 0 + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 0 + + ldp q28, q26, [x8, #32] //load rk2, rk3 + eor v8.16b, v8.16b, v19.16b //PRE 1 + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 1 + + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 1 + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 1 + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 1 + + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 1 + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 1 + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 1 + + pmull2 v17.1q, v8.2d, v25.2d //GHASH block 8k - high + pmull v19.1q, v8.1d, v25.1d //GHASH block 8k - low + pmull2 v16.1q, v9.2d, v23.2d //GHASH block 8k+1 - high + + trn1 v18.2d, v9.2d, v8.2d //GHASH block 8k, 8k+1 - mid + trn2 v8.2d, v9.2d, v8.2d //GHASH block 8k, 8k+1 - mid + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 1 + + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 2 + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 2 + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 2 + + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 2 + pmull v23.1q, v9.1d, v23.1d //GHASH block 8k+1 - low + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 2 + + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 3 + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 3 + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 2 + + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 3 + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 2 + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 2 + + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 3 + rev64 v14.16b, v14.16b //GHASH block 8k+6 + pmull2 v9.1q, v11.2d, v20.2d //GHASH block 8k+3 - high + + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 3 + ldp q27, q28, [x8, #64] //load rk4, rk5 + rev64 v10.16b, v10.16b //GHASH block 8k+2 + + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 3 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 3 + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 3 + + eor v17.16b, v17.16b, v16.16b //GHASH block 8k+1 - high + pmull2 v29.1q, v10.2d, v22.2d //GHASH block 8k+2 - high + rev64 v13.16b, v13.16b //GHASH block 8k+5 + + pmull v20.1q, v11.1d, v20.1d //GHASH block 8k+3 - low + eor v19.16b, v19.16b, v23.16b //GHASH block 8k+1 - low + ldr q23, [x3, #80] //load h3l | h3h + ext v23.16b, v23.16b, v23.16b, #8 + ldr q25, [x3, #112] //load h4l | h4h + ext v25.16b, v25.16b, v25.16b, #8 + + trn1 v16.2d, v13.2d, v12.2d //GHASH block 8k+4, 8k+5 - mid +.inst 0xce1d2631 //eor3 v17.16b, v17.16b, v29.16b, v9.16b //GHASH block 8k+2, 8k+3 - high + pmull v22.1q, v10.1d, v22.1d //GHASH block 8k+2 - low + + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 4 + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 4 + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 4 + + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 4 + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 4 + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 4 + + trn1 v29.2d, v11.2d, v10.2d //GHASH block 8k+2, 8k+3 - mid + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 4 + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 4 + + trn2 v10.2d, v11.2d, v10.2d //GHASH block 8k+2, 8k+3 - mid + eor v8.16b, v8.16b, v18.16b //GHASH block 8k, 8k+1 - mid + ldp q26, q27, [x8, #96] //load rk6, rk7 + + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 5 + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 5 + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 5 + + eor v10.16b, v10.16b, v29.16b //GHASH block 8k+2, 8k+3 - mid + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 5 + rev64 v15.16b, v15.16b //GHASH block 8k+7 + + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 5 + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 5 + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 5 + + pmull2 v29.1q, v10.2d, v21.2d //GHASH block 8k+2 - mid + pmull2 v18.1q, v8.2d, v24.2d //GHASH block 8k - mid + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 5 + + pmull v24.1q, v8.1d, v24.1d //GHASH block 8k+1 - mid + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 6 + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 6 + + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 6 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 6 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 6 + + eor v18.16b, v18.16b, v24.16b //GHASH block 8k+1 - mid + pmull v21.1q, v10.1d, v21.1d //GHASH block 8k+3 - mid + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 6 + +.inst 0xce165273 //eor3 v19.16b, v19.16b, v22.16b, v20.16b //GHASH block 8k+2, 8k+3 - low + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 6 + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 6 + + ldp q28, q26, [x8, #128] //load rk8, rk9 + pmull2 v8.1q, v12.2d, v25.2d //GHASH block 8k+4 - high + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 7 + + ldr q20, [x3, #32] //load h1l | h1h + ext v20.16b, v20.16b, v20.16b, #8 + ldr q22, [x3, #64] //load h2l | h2h + ext v22.16b, v22.16b, v22.16b, #8 + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 7 +.inst 0xce157652 //eor3 v18.16b, v18.16b, v21.16b, v29.16b //GHASH block 8k+2, 8k+3 - mid + + ldr q21, [x3, #48] //load h2k | h1k + ldr q24, [x3, #96] //load h4k | h3k + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 7 + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 7 + + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 7 + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 7 + pmull v25.1q, v12.1d, v25.1d //GHASH block 8k+4 - low + + trn2 v12.2d, v13.2d, v12.2d //GHASH block 8k+4, 8k+5 - mid + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 7 + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 7 + + pmull2 v10.1q, v13.2d, v23.2d //GHASH block 8k+5 - high + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 8 + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 8 + + pmull v23.1q, v13.1d, v23.1d //GHASH block 8k+5 - low + trn1 v13.2d, v15.2d, v14.2d //GHASH block 8k+6, 8k+7 - mid + eor v12.16b, v12.16b, v16.16b //GHASH block 8k+4, 8k+5 - mid + + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 8 + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 9 + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 8 + + pmull2 v16.1q, v12.2d, v24.2d //GHASH block 8k+4 - mid + pmull v24.1q, v12.1d, v24.1d //GHASH block 8k+5 - mid + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 8 + + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 8 + pmull2 v11.1q, v14.2d, v22.2d //GHASH block 8k+6 - high + pmull v22.1q, v14.1d, v22.1d //GHASH block 8k+6 - low + + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 8 + trn2 v14.2d, v15.2d, v14.2d //GHASH block 8k+6, 8k+7 - mid + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 8 + +.inst 0xce184252 //eor3 v18.16b, v18.16b, v24.16b, v16.16b //GHASH block 8k+4, 8k+5 - mid + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 9 + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 9 + + eor v14.16b, v14.16b, v13.16b //GHASH block 8k+6, 8k+7 - mid + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 9 + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 9 + + ldp q27, q28, [x8, #160] //load rk10, rk11 + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 9 + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 9 + + pmull2 v12.1q, v15.2d, v20.2d //GHASH block 8k+7 - high +.inst 0xce195e73 //eor3 v19.16b, v19.16b, v25.16b, v23.16b //GHASH block 8k+4, 8k+5 - low + pmull v20.1q, v15.1d, v20.1d //GHASH block 8k+7 - low + + ldr d16, [x10] //MODULO - load modulo constant + pmull2 v13.1q, v14.2d, v21.2d //GHASH block 8k+6 - mid + pmull v21.1q, v14.1d, v21.1d //GHASH block 8k+7 - mid + + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 9 + +.inst 0xce153652 //eor3 v18.16b, v18.16b, v21.16b, v13.16b //GHASH block 8k+6, 8k+7 - mid +.inst 0xce165273 //eor3 v19.16b, v19.16b, v22.16b, v20.16b //GHASH block 8k+6, 8k+7 - low +.inst 0xce082a31 //eor3 v17.16b, v17.16b, v8.16b, v10.16b //GHASH block 8k+4, 8k+5 - high + + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 10 + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 10 + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 10 + + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 10 + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 10 + add v30.4s, v30.4s, v31.4s //CTR block 8k+15 + + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 10 + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 10 + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 10 + +.inst 0xce0b3231 //eor3 v17.16b, v17.16b, v11.16b, v12.16b //GHASH block 8k+6, 8k+7 - high + + ldp q26, q27, [x8, #192] //load rk12, rk13 + rev32 v20.16b, v30.16b //CTR block 8k+16 + + ext v21.16b, v17.16b, v17.16b, #8 //MODULO - other top alignment + ldp q8, q9, [x0], #32 //AES block 8k+8, 8k+9 - load plaintext + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 11 + + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 11 + add v30.4s, v30.4s, v31.4s //CTR block 8k+16 + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 11 + + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 11 + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 11 + + pmull v29.1q, v17.1d, v16.1d //MODULO - top 64b align with mid + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 11 + + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 12 + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 11 + + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 12 + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 12 + rev32 v22.16b, v30.16b //CTR block 8k+17 + + add v30.4s, v30.4s, v31.4s //CTR block 8k+17 + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 11 +.inst 0xce114e52 //eor3 v18.16b, v18.16b, v17.16b, v19.16b //MODULO - karatsuba tidy up + + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 12 + ldr q28, [x8, #224] //load rk14 + aese v7.16b, v27.16b //AES block 8k+15 - round 13 + + ldp q10, q11, [x0], #32 //AES block 8k+10, 8k+11 - load plaintext + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 12 + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 12 + +.inst 0xce1d5652 //eor3 v18.16b, v18.16b, v29.16b, v21.16b //MODULO - fold into mid + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 12 + ldp q12, q13, [x0], #32 //AES block 4, 5 - load plaintext + + ldp q14, q15, [x0], #32 //AES block 6, 7 - load plaintext + aese v2.16b, v27.16b //AES block 8k+10 - round 13 + aese v4.16b, v27.16b //AES block 8k+12 - round 13 + + rev32 v23.16b, v30.16b //CTR block 8k+18 + add v30.4s, v30.4s, v31.4s //CTR block 8k+18 + aese v5.16b, v27.16b //AES block 8k+13 - round 13 + + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 12 + aese v3.16b, v27.16b //AES block 8k+11 - round 13 + cmp x0, x5 //.LOOP CONTROL + +.inst 0xce02714a //eor3 v10.16b, v10.16b, v2.16b, v28.16b //AES block 8k+10 - result + rev32 v25.16b, v30.16b //CTR block 8k+19 + add v30.4s, v30.4s, v31.4s //CTR block 8k+19 + + aese v0.16b, v27.16b //AES block 8k+8 - round 13 + aese v6.16b, v27.16b //AES block 8k+14 - round 13 +.inst 0xce0571ad //eor3 v13.16b, v13.16b, v5.16b, v28.16b //AES block 5 - result + + ext v21.16b, v18.16b, v18.16b, #8 //MODULO - other mid alignment + pmull v17.1q, v18.1d, v16.1d //MODULO - mid 64b align with low + aese v1.16b, v27.16b //AES block 8k+9 - round 13 + +.inst 0xce04718c //eor3 v12.16b, v12.16b, v4.16b, v28.16b //AES block 4 - result + rev32 v4.16b, v30.16b //CTR block 8k+20 +.inst 0xce03716b //eor3 v11.16b, v11.16b, v3.16b, v28.16b //AES block 8k+11 - result + + mov v3.16b, v25.16b //CTR block 8k+19 +.inst 0xce017129 //eor3 v9.16b, v9.16b, v1.16b, v28.16b //AES block 8k+9 - result +.inst 0xce007108 //eor3 v8.16b, v8.16b, v0.16b, v28.16b //AES block 8k+8 - result + + add v30.4s, v30.4s, v31.4s //CTR block 8k+20 + stp q8, q9, [x2], #32 //AES block 8k+8, 8k+9 - store result + mov v2.16b, v23.16b //CTR block 8k+18 + +.inst 0xce0771ef //eor3 v15.16b, v15.16b, v7.16b, v28.16b //AES block 7 - result +.inst 0xce154673 //eor3 v19.16b, v19.16b, v21.16b, v17.16b //MODULO - fold into low + stp q10, q11, [x2], #32 //AES block 8k+10, 8k+11 - store result + +.inst 0xce0671ce //eor3 v14.16b, v14.16b, v6.16b, v28.16b //AES block 6 - result + mov v1.16b, v22.16b //CTR block 8k+17 + stp q12, q13, [x2], #32 //AES block 4, 5 - store result + + stp q14, q15, [x2], #32 //AES block 6, 7 - store result + mov v0.16b, v20.16b //CTR block 8k+16 + b.lt .L256_enc_main_loop + +.L256_enc_prepretail: //PREPRETAIL + rev32 v5.16b, v30.16b //CTR block 8k+13 + ldp q26, q27, [x8, #0] //load rk0, rk1 + add v30.4s, v30.4s, v31.4s //CTR block 8k+13 + + rev64 v10.16b, v10.16b //GHASH block 8k+2 + + rev32 v6.16b, v30.16b //CTR block 8k+14 + add v30.4s, v30.4s, v31.4s //CTR block 8k+14 + + rev64 v13.16b, v13.16b //GHASH block 8k+5 + ldr q21, [x3, #144] //load h6k | h5k + ldr q24, [x3, #192] //load h8k | h7k + + rev32 v7.16b, v30.16b //CTR block 8k+15 + + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 0 + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 0 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 0 + + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 0 + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 0 + + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 0 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 0 + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 0 + + ext v19.16b, v19.16b, v19.16b, #8 //PRE 0 + rev64 v8.16b, v8.16b //GHASH block 8k + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 1 + + rev64 v9.16b, v9.16b //GHASH block 8k+1 + ldp q28, q26, [x8, #32] //load rk2, rk3 + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 1 + + ldr q23, [x3, #176] //load h7l | h7h + ext v23.16b, v23.16b, v23.16b, #8 + ldr q25, [x3, #208] //load h8l | h8h + ext v25.16b, v25.16b, v25.16b, #8 + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 1 + + ldr q20, [x3, #128] //load h5l | h5h + ext v20.16b, v20.16b, v20.16b, #8 + ldr q22, [x3, #160] //load h6l | h6h + ext v22.16b, v22.16b, v22.16b, #8 + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 1 + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 1 + + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 1 + eor v8.16b, v8.16b, v19.16b //PRE 1 + + rev64 v11.16b, v11.16b //GHASH block 8k+3 + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 1 + + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 2 + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 2 + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 1 + + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 2 + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 2 + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 2 + + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 2 + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 2 + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 2 + + ldp q27, q28, [x8, #64] //load rk4, rk5 + trn1 v18.2d, v9.2d, v8.2d //GHASH block 8k, 8k+1 - mid + pmull2 v17.1q, v8.2d, v25.2d //GHASH block 8k - high + + rev64 v14.16b, v14.16b //GHASH block 8k+6 + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 3 + pmull2 v16.1q, v9.2d, v23.2d //GHASH block 8k+1 - high + + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 3 + pmull v19.1q, v8.1d, v25.1d //GHASH block 8k - low + trn2 v8.2d, v9.2d, v8.2d //GHASH block 8k, 8k+1 - mid + + pmull2 v29.1q, v10.2d, v22.2d //GHASH block 8k+2 - high + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 3 + + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 3 + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 3 + eor v17.16b, v17.16b, v16.16b //GHASH block 8k+1 - high + + pmull v23.1q, v9.1d, v23.1d //GHASH block 8k+1 - low + pmull2 v9.1q, v11.2d, v20.2d //GHASH block 8k+3 - high + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 3 + + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 3 + eor v8.16b, v8.16b, v18.16b //GHASH block 8k, 8k+1 - mid + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 3 + + pmull v22.1q, v10.1d, v22.1d //GHASH block 8k+2 - low + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 4 + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 4 + + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 4 + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 4 + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 4 + + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 5 + pmull2 v18.1q, v8.2d, v24.2d //GHASH block 8k - mid +.inst 0xce1d2631 //eor3 v17.16b, v17.16b, v29.16b, v9.16b //GHASH block 8k+2, 8k+3 - high + + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 4 + trn1 v29.2d, v11.2d, v10.2d //GHASH block 8k+2, 8k+3 - mid + trn2 v10.2d, v11.2d, v10.2d //GHASH block 8k+2, 8k+3 - mid + + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 4 + eor v19.16b, v19.16b, v23.16b //GHASH block 8k+1 - low + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 4 + + pmull v20.1q, v11.1d, v20.1d //GHASH block 8k+3 - low + pmull v24.1q, v8.1d, v24.1d //GHASH block 8k+1 - mid + eor v10.16b, v10.16b, v29.16b //GHASH block 8k+2, 8k+3 - mid + + rev64 v12.16b, v12.16b //GHASH block 8k+4 + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 5 + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 5 + + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 5 + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 5 + ldp q26, q27, [x8, #96] //load rk6, rk7 + + ldr q23, [x3, #80] //load h3l | h3h + ext v23.16b, v23.16b, v23.16b, #8 + ldr q25, [x3, #112] //load h4l | h4h + ext v25.16b, v25.16b, v25.16b, #8 + pmull2 v29.1q, v10.2d, v21.2d //GHASH block 8k+2 - mid + pmull v21.1q, v10.1d, v21.1d //GHASH block 8k+3 - mid + +.inst 0xce165273 //eor3 v19.16b, v19.16b, v22.16b, v20.16b //GHASH block 8k+2, 8k+3 - low + eor v18.16b, v18.16b, v24.16b //GHASH block 8k+1 - mid + + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 5 + rev64 v15.16b, v15.16b //GHASH block 8k+7 + trn1 v16.2d, v13.2d, v12.2d //GHASH block 8k+4, 8k+5 - mid + + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 5 + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 5 +.inst 0xce157652 //eor3 v18.16b, v18.16b, v21.16b, v29.16b //GHASH block 8k+2, 8k+3 - mid + + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 6 + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 6 + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 6 + + ldr q21, [x3, #48] //load h2k | h1k + ldr q24, [x3, #96] //load h4k | h3k + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 6 + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 6 + + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 6 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 6 + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 6 + + pmull2 v8.1q, v12.2d, v25.2d //GHASH block 8k+4 - high + pmull v25.1q, v12.1d, v25.1d //GHASH block 8k+4 - low + ldr q20, [x3, #32] //load h1l | h1h + ext v20.16b, v20.16b, v20.16b, #8 + ldr q22, [x3, #64] //load h2l | h2h + ext v22.16b, v22.16b, v22.16b, #8 + + ldp q28, q26, [x8, #128] //load rk8, rk9 + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 7 + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 7 + + pmull2 v10.1q, v13.2d, v23.2d //GHASH block 8k+5 - high + trn2 v12.2d, v13.2d, v12.2d //GHASH block 8k+4, 8k+5 - mid + + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 7 + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 7 + pmull v23.1q, v13.1d, v23.1d //GHASH block 8k+5 - low + + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 7 + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 7 + eor v12.16b, v12.16b, v16.16b //GHASH block 8k+4, 8k+5 - mid + + pmull2 v11.1q, v14.2d, v22.2d //GHASH block 8k+6 - high + pmull v22.1q, v14.1d, v22.1d //GHASH block 8k+6 - low + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 7 + + trn1 v13.2d, v15.2d, v14.2d //GHASH block 8k+6, 8k+7 - mid + trn2 v14.2d, v15.2d, v14.2d //GHASH block 8k+6, 8k+7 - mid + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 7 + + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 8 +.inst 0xce195e73 //eor3 v19.16b, v19.16b, v25.16b, v23.16b //GHASH block 8k+4, 8k+5 - low + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 8 + + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 8 + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 8 + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 8 + + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 8 + eor v14.16b, v14.16b, v13.16b //GHASH block 8k+6, 8k+7 - mid + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 8 + + pmull2 v16.1q, v12.2d, v24.2d //GHASH block 8k+4 - mid + pmull v24.1q, v12.1d, v24.1d //GHASH block 8k+5 - mid + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 8 + + pmull2 v12.1q, v15.2d, v20.2d //GHASH block 8k+7 - high + pmull2 v13.1q, v14.2d, v21.2d //GHASH block 8k+6 - mid + pmull v21.1q, v14.1d, v21.1d //GHASH block 8k+7 - mid + + pmull v20.1q, v15.1d, v20.1d //GHASH block 8k+7 - low +.inst 0xce184252 //eor3 v18.16b, v18.16b, v24.16b, v16.16b //GHASH block 8k+4, 8k+5 - mid +.inst 0xce082a31 //eor3 v17.16b, v17.16b, v8.16b, v10.16b //GHASH block 8k+4, 8k+5 - high + + ldp q27, q28, [x8, #160] //load rk10, rk11 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 9 + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 9 + +.inst 0xce0b3231 //eor3 v17.16b, v17.16b, v11.16b, v12.16b //GHASH block 8k+6, 8k+7 - high +.inst 0xce153652 //eor3 v18.16b, v18.16b, v21.16b, v13.16b //GHASH block 8k+6, 8k+7 - mid + ldr d16, [x10] //MODULO - load modulo constant + +.inst 0xce165273 //eor3 v19.16b, v19.16b, v22.16b, v20.16b //GHASH block 8k+6, 8k+7 - low + + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 9 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 9 + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 9 + + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 9 + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 9 + + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 10 + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 10 + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 9 + + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 10 + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 10 + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 10 + + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 10 + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 10 + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 10 + + pmull v29.1q, v17.1d, v16.1d //MODULO - top 64b align with mid +.inst 0xce114e52 //eor3 v18.16b, v18.16b, v17.16b, v19.16b //MODULO - karatsuba tidy up + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 11 + + ldp q26, q27, [x8, #192] //load rk12, rk13 + ext v21.16b, v17.16b, v17.16b, #8 //MODULO - other top alignment + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 11 + +.inst 0xce1d5652 //eor3 v18.16b, v18.16b, v29.16b, v21.16b //MODULO - fold into mid + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 11 + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 11 + + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 11 + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 11 + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 11 + + pmull v17.1q, v18.1d, v16.1d //MODULO - mid 64b align with low + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 11 + ldr q28, [x8, #224] //load rk14 + + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 12 + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 12 + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 12 + + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 12 + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 12 + ext v21.16b, v18.16b, v18.16b, #8 //MODULO - other mid alignment + + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 12 + add v30.4s, v30.4s, v31.4s //CTR block 8k+15 + + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 12 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 12 + aese v0.16b, v27.16b //AES block 8k+8 - round 13 + +.inst 0xce154673 //eor3 v19.16b, v19.16b, v21.16b, v17.16b //MODULO - fold into low + aese v5.16b, v27.16b //AES block 8k+13 - round 13 + aese v1.16b, v27.16b //AES block 8k+9 - round 13 + + aese v3.16b, v27.16b //AES block 8k+11 - round 13 + aese v4.16b, v27.16b //AES block 8k+12 - round 13 + aese v7.16b, v27.16b //AES block 8k+15 - round 13 + + aese v2.16b, v27.16b //AES block 8k+10 - round 13 + aese v6.16b, v27.16b //AES block 8k+14 - round 13 +.L256_enc_tail: //TAIL + + ldp q24, q25, [x3, #192] //load h8l | h8h + ext v25.16b, v25.16b, v25.16b, #8 + sub x5, x4, x0 //main_end_input_ptr is number of bytes left to process + + ldr q8, [x0], #16 //AES block 8k+8 - load plaintext + + ldp q20, q21, [x3, #128] //load h5l | h5h + ext v20.16b, v20.16b, v20.16b, #8 + + ext v16.16b, v19.16b, v19.16b, #8 //prepare final partial tag + ldp q22, q23, [x3, #160] //load h6l | h6h + ext v22.16b, v22.16b, v22.16b, #8 + ext v23.16b, v23.16b, v23.16b, #8 + mov v29.16b, v28.16b + + cmp x5, #112 +.inst 0xce007509 //eor3 v9.16b, v8.16b, v0.16b, v29.16b //AES block 8k+8 - result + b.gt .L256_enc_blocks_more_than_7 + + movi v19.8b, #0 + mov v7.16b, v6.16b + movi v17.8b, #0 + + mov v6.16b, v5.16b + mov v5.16b, v4.16b + mov v4.16b, v3.16b + + mov v3.16b, v2.16b + sub v30.4s, v30.4s, v31.4s + mov v2.16b, v1.16b + + movi v18.8b, #0 + cmp x5, #96 + b.gt .L256_enc_blocks_more_than_6 + + mov v7.16b, v6.16b + mov v6.16b, v5.16b + cmp x5, #80 + + mov v5.16b, v4.16b + mov v4.16b, v3.16b + mov v3.16b, v1.16b + + sub v30.4s, v30.4s, v31.4s + b.gt .L256_enc_blocks_more_than_5 + + mov v7.16b, v6.16b + sub v30.4s, v30.4s, v31.4s + + mov v6.16b, v5.16b + mov v5.16b, v4.16b + + cmp x5, #64 + mov v4.16b, v1.16b + b.gt .L256_enc_blocks_more_than_4 + + cmp x5, #48 + mov v7.16b, v6.16b + mov v6.16b, v5.16b + + mov v5.16b, v1.16b + sub v30.4s, v30.4s, v31.4s + b.gt .L256_enc_blocks_more_than_3 + + cmp x5, #32 + mov v7.16b, v6.16b + ldr q24, [x3, #96] //load h4k | h3k + + mov v6.16b, v1.16b + sub v30.4s, v30.4s, v31.4s + b.gt .L256_enc_blocks_more_than_2 + + mov v7.16b, v1.16b + + sub v30.4s, v30.4s, v31.4s + cmp x5, #16 + b.gt .L256_enc_blocks_more_than_1 + + sub v30.4s, v30.4s, v31.4s + ldr q21, [x3, #48] //load h2k | h1k + b .L256_enc_blocks_less_than_1 +.L256_enc_blocks_more_than_7: //blocks left > 7 + st1 { v9.16b}, [x2], #16 //AES final-7 block - store result + + rev64 v8.16b, v9.16b //GHASH final-7 block + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + + ldr q9, [x0], #16 //AES final-6 block - load plaintext + + pmull2 v17.1q, v8.2d, v25.2d //GHASH final-7 block - high + ins v27.d[0], v8.d[1] //GHASH final-7 block - mid + ins v18.d[0], v24.d[1] //GHASH final-7 block - mid + + movi v16.8b, #0 //suppress further partial tag feed in + + eor v27.8b, v27.8b, v8.8b //GHASH final-7 block - mid +.inst 0xce017529 //eor3 v9.16b, v9.16b, v1.16b, v29.16b //AES final-6 block - result + + pmull v18.1q, v27.1d, v18.1d //GHASH final-7 block - mid + pmull v19.1q, v8.1d, v25.1d //GHASH final-7 block - low +.L256_enc_blocks_more_than_6: //blocks left > 6 + + st1 { v9.16b}, [x2], #16 //AES final-6 block - store result + + rev64 v8.16b, v9.16b //GHASH final-6 block + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + + pmull v26.1q, v8.1d, v23.1d //GHASH final-6 block - low + ins v27.d[0], v8.d[1] //GHASH final-6 block - mid + pmull2 v28.1q, v8.2d, v23.2d //GHASH final-6 block - high + + ldr q9, [x0], #16 //AES final-5 block - load plaintext + + eor v19.16b, v19.16b, v26.16b //GHASH final-6 block - low + + eor v27.8b, v27.8b, v8.8b //GHASH final-6 block - mid + + pmull v27.1q, v27.1d, v24.1d //GHASH final-6 block - mid +.inst 0xce027529 //eor3 v9.16b, v9.16b, v2.16b, v29.16b //AES final-5 block - result + + movi v16.8b, #0 //suppress further partial tag feed in + + eor v18.16b, v18.16b, v27.16b //GHASH final-6 block - mid + eor v17.16b, v17.16b, v28.16b //GHASH final-6 block - high +.L256_enc_blocks_more_than_5: //blocks left > 5 + + st1 { v9.16b}, [x2], #16 //AES final-5 block - store result + + rev64 v8.16b, v9.16b //GHASH final-5 block + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + + ins v27.d[0], v8.d[1] //GHASH final-5 block - mid + + pmull2 v28.1q, v8.2d, v22.2d //GHASH final-5 block - high + + eor v17.16b, v17.16b, v28.16b //GHASH final-5 block - high + eor v27.8b, v27.8b, v8.8b //GHASH final-5 block - mid + + ins v27.d[1], v27.d[0] //GHASH final-5 block - mid + + ldr q9, [x0], #16 //AES final-4 block - load plaintext + pmull v26.1q, v8.1d, v22.1d //GHASH final-5 block - low + + pmull2 v27.1q, v27.2d, v21.2d //GHASH final-5 block - mid + movi v16.8b, #0 //suppress further partial tag feed in + eor v19.16b, v19.16b, v26.16b //GHASH final-5 block - low + + eor v18.16b, v18.16b, v27.16b //GHASH final-5 block - mid +.inst 0xce037529 //eor3 v9.16b, v9.16b, v3.16b, v29.16b //AES final-4 block - result +.L256_enc_blocks_more_than_4: //blocks left > 4 + + st1 { v9.16b}, [x2], #16 //AES final-4 block - store result + + rev64 v8.16b, v9.16b //GHASH final-4 block + + ldr q9, [x0], #16 //AES final-3 block - load plaintext + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + + ins v27.d[0], v8.d[1] //GHASH final-4 block - mid + pmull2 v28.1q, v8.2d, v20.2d //GHASH final-4 block - high + +.inst 0xce047529 //eor3 v9.16b, v9.16b, v4.16b, v29.16b //AES final-3 block - result + pmull v26.1q, v8.1d, v20.1d //GHASH final-4 block - low + + eor v27.8b, v27.8b, v8.8b //GHASH final-4 block - mid + eor v19.16b, v19.16b, v26.16b //GHASH final-4 block - low + + pmull v27.1q, v27.1d, v21.1d //GHASH final-4 block - mid + + movi v16.8b, #0 //suppress further partial tag feed in + + eor v18.16b, v18.16b, v27.16b //GHASH final-4 block - mid + eor v17.16b, v17.16b, v28.16b //GHASH final-4 block - high +.L256_enc_blocks_more_than_3: //blocks left > 3 + + st1 { v9.16b}, [x2], #16 //AES final-3 block - store result + + ldr q25, [x3, #112] //load h4l | h4h + ext v25.16b, v25.16b, v25.16b, #8 + rev64 v8.16b, v9.16b //GHASH final-3 block + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + + ins v27.d[0], v8.d[1] //GHASH final-3 block - mid + pmull2 v28.1q, v8.2d, v25.2d //GHASH final-3 block - high + + eor v17.16b, v17.16b, v28.16b //GHASH final-3 block - high + eor v27.8b, v27.8b, v8.8b //GHASH final-3 block - mid + ldr q24, [x3, #96] //load h4k | h3k + + ins v27.d[1], v27.d[0] //GHASH final-3 block - mid + ldr q9, [x0], #16 //AES final-2 block - load plaintext + + pmull2 v27.1q, v27.2d, v24.2d //GHASH final-3 block - mid + pmull v26.1q, v8.1d, v25.1d //GHASH final-3 block - low + +.inst 0xce057529 //eor3 v9.16b, v9.16b, v5.16b, v29.16b //AES final-2 block - result + movi v16.8b, #0 //suppress further partial tag feed in + + eor v18.16b, v18.16b, v27.16b //GHASH final-3 block - mid + eor v19.16b, v19.16b, v26.16b //GHASH final-3 block - low +.L256_enc_blocks_more_than_2: //blocks left > 2 + + ldr q23, [x3, #80] //load h3l | h3h + ext v23.16b, v23.16b, v23.16b, #8 + + st1 { v9.16b}, [x2], #16 //AES final-2 block - store result + + rev64 v8.16b, v9.16b //GHASH final-2 block + ldr q9, [x0], #16 //AES final-1 block - load plaintext + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + + ins v27.d[0], v8.d[1] //GHASH final-2 block - mid + + movi v16.8b, #0 //suppress further partial tag feed in + + pmull2 v28.1q, v8.2d, v23.2d //GHASH final-2 block - high +.inst 0xce067529 //eor3 v9.16b, v9.16b, v6.16b, v29.16b //AES final-1 block - result + + eor v27.8b, v27.8b, v8.8b //GHASH final-2 block - mid + + eor v17.16b, v17.16b, v28.16b //GHASH final-2 block - high + + pmull v27.1q, v27.1d, v24.1d //GHASH final-2 block - mid + pmull v26.1q, v8.1d, v23.1d //GHASH final-2 block - low + + eor v18.16b, v18.16b, v27.16b //GHASH final-2 block - mid + eor v19.16b, v19.16b, v26.16b //GHASH final-2 block - low +.L256_enc_blocks_more_than_1: //blocks left > 1 + + st1 { v9.16b}, [x2], #16 //AES final-1 block - store result + + ldr q22, [x3, #64] //load h2l | h2h + ext v22.16b, v22.16b, v22.16b, #8 + rev64 v8.16b, v9.16b //GHASH final-1 block + ldr q9, [x0], #16 //AES final block - load plaintext + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + movi v16.8b, #0 //suppress further partial tag feed in + + ins v27.d[0], v8.d[1] //GHASH final-1 block - mid + pmull2 v28.1q, v8.2d, v22.2d //GHASH final-1 block - high + +.inst 0xce077529 //eor3 v9.16b, v9.16b, v7.16b, v29.16b //AES final block - result + eor v17.16b, v17.16b, v28.16b //GHASH final-1 block - high + + pmull v26.1q, v8.1d, v22.1d //GHASH final-1 block - low + eor v27.8b, v27.8b, v8.8b //GHASH final-1 block - mid + + ldr q21, [x3, #48] //load h2k | h1k + + eor v19.16b, v19.16b, v26.16b //GHASH final-1 block - low + ins v27.d[1], v27.d[0] //GHASH final-1 block - mid + + pmull2 v27.1q, v27.2d, v21.2d //GHASH final-1 block - mid + + eor v18.16b, v18.16b, v27.16b //GHASH final-1 block - mid +.L256_enc_blocks_less_than_1: //blocks left <= 1 + + and x1, x1, #127 //bit_length %= 128 + + sub x1, x1, #128 //bit_length -= 128 + + neg x1, x1 //bit_length = 128 - #bits in input (in range [1,128]) + + mvn x6, xzr //temp0_x = 0xffffffffffffffff + and x1, x1, #127 //bit_length %= 128 + + lsr x6, x6, x1 //temp0_x is mask for top 64b of last block + cmp x1, #64 + mvn x7, xzr //temp1_x = 0xffffffffffffffff + + csel x14, x6, xzr, lt + csel x13, x7, x6, lt + + mov v0.d[0], x13 //ctr0b is mask for last block + ldr q20, [x3, #32] //load h1l | h1h + ext v20.16b, v20.16b, v20.16b, #8 + + ld1 { v26.16b}, [x2] //load existing bytes where the possibly partial last block is to be stored + mov v0.d[1], x14 + + and v9.16b, v9.16b, v0.16b //possibly partial last block has zeroes in highest bits + + rev64 v8.16b, v9.16b //GHASH final block + + rev32 v30.16b, v30.16b + bif v9.16b, v26.16b, v0.16b //insert existing bytes in top end of result before storing + str q30, [x16] //store the updated counter + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + st1 { v9.16b}, [x2] //store all 16B + + ins v16.d[0], v8.d[1] //GHASH final block - mid + pmull2 v28.1q, v8.2d, v20.2d //GHASH final block - high + pmull v26.1q, v8.1d, v20.1d //GHASH final block - low + + eor v17.16b, v17.16b, v28.16b //GHASH final block - high + eor v19.16b, v19.16b, v26.16b //GHASH final block - low + + eor v16.8b, v16.8b, v8.8b //GHASH final block - mid + + pmull v16.1q, v16.1d, v21.1d //GHASH final block - mid + + eor v18.16b, v18.16b, v16.16b //GHASH final block - mid + ldr d16, [x10] //MODULO - load modulo constant + + ext v21.16b, v17.16b, v17.16b, #8 //MODULO - other top alignment + +.inst 0xce114e52 //eor3 v18.16b, v18.16b, v17.16b, v19.16b //MODULO - karatsuba tidy up + pmull v29.1q, v17.1d, v16.1d //MODULO - top 64b align with mid + +.inst 0xce1d5652 //eor3 v18.16b, v18.16b, v29.16b, v21.16b //MODULO - fold into mid + + pmull v17.1q, v18.1d, v16.1d //MODULO - mid 64b align with low + ext v21.16b, v18.16b, v18.16b, #8 //MODULO - other mid alignment + +.inst 0xce115673 //eor3 v19.16b, v19.16b, v17.16b, v21.16b //MODULO - fold into low + ext v19.16b, v19.16b, v19.16b, #8 + rev64 v19.16b, v19.16b + st1 { v19.16b }, [x3] + mov x0, x9 //return sizes + + ldp d10, d11, [sp, #16] + ldp d12, d13, [sp, #32] + ldp d14, d15, [sp, #48] + ldp d8, d9, [sp], #80 + ret + +.L256_enc_ret: + mov w0, #0x0 + ret +.size unroll8_eor3_aes_gcm_enc_256_kernel,.-unroll8_eor3_aes_gcm_enc_256_kernel +.globl unroll8_eor3_aes_gcm_dec_256_kernel +.type unroll8_eor3_aes_gcm_dec_256_kernel,%function +.align 4 +unroll8_eor3_aes_gcm_dec_256_kernel: + AARCH64_VALID_CALL_TARGET + cbz x1, .L256_dec_ret + stp d8, d9, [sp, #-80]! + lsr x9, x1, #3 + mov x16, x4 + mov x8, x5 + stp d10, d11, [sp, #16] + stp d12, d13, [sp, #32] + stp d14, d15, [sp, #48] + mov x5, #0xc200000000000000 + stp x5, xzr, [sp, #64] + add x10, sp, #64 + + ld1 { v0.16b}, [x16] //CTR block 0 + + mov x15, #0x100000000 //set up counter increment + movi v31.16b, #0x0 + mov v31.d[1], x15 + mov x5, x9 + + sub x5, x5, #1 //byte_len - 1 + + rev32 v30.16b, v0.16b //set up reversed counter + + add v30.4s, v30.4s, v31.4s //CTR block 0 + + rev32 v1.16b, v30.16b //CTR block 1 + add v30.4s, v30.4s, v31.4s //CTR block 1 + + rev32 v2.16b, v30.16b //CTR block 2 + add v30.4s, v30.4s, v31.4s //CTR block 2 + ldp q26, q27, [x8, #0] //load rk0, rk1 + + rev32 v3.16b, v30.16b //CTR block 3 + add v30.4s, v30.4s, v31.4s //CTR block 3 + + rev32 v4.16b, v30.16b //CTR block 4 + add v30.4s, v30.4s, v31.4s //CTR block 4 + + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 0 - round 0 + + rev32 v5.16b, v30.16b //CTR block 5 + add v30.4s, v30.4s, v31.4s //CTR block 5 + + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 1 - round 0 + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 2 - round 0 + + rev32 v6.16b, v30.16b //CTR block 6 + add v30.4s, v30.4s, v31.4s //CTR block 6 + + rev32 v7.16b, v30.16b //CTR block 7 + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 4 - round 0 + + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 6 - round 0 + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 5 - round 0 + + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 3 - round 0 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 7 - round 0 + ldp q28, q26, [x8, #32] //load rk2, rk3 + + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 6 - round 1 + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 4 - round 1 + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 0 - round 1 + + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 5 - round 1 + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 7 - round 1 + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 1 - round 1 + + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 2 - round 1 + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 3 - round 1 + + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 3 - round 2 + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 2 - round 2 + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 6 - round 2 + + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 1 - round 2 + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 7 - round 2 + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 5 - round 2 + + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 0 - round 2 + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 4 - round 2 + ldp q27, q28, [x8, #64] //load rk4, rk5 + + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 1 - round 3 + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 2 - round 3 + + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 3 - round 3 + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 4 - round 3 + + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 5 - round 3 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 7 - round 3 + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 0 - round 3 + + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 6 - round 3 + + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 7 - round 4 + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 3 - round 4 + + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 6 - round 4 + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 2 - round 4 + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 0 - round 4 + + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 4 - round 4 + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 1 - round 4 + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 5 - round 4 + + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 0 - round 5 + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 6 - round 5 + + ldp q26, q27, [x8, #96] //load rk6, rk7 + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 4 - round 5 + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 7 - round 5 + + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 5 - round 5 + + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 2 - round 5 + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 3 - round 5 + + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 1 - round 5 + + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 4 - round 6 + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 3 - round 6 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 7 - round 6 + + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 6 - round 6 + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 0 - round 6 + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 5 - round 6 + + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 2 - round 6 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 1 - round 6 + ldp q28, q26, [x8, #128] //load rk8, rk9 + + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 5 - round 7 + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 0 - round 7 + + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 3 - round 7 + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 2 - round 7 + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 7 - round 7 + + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 4 - round 7 + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 1 - round 7 + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 6 - round 7 + + and x5, x5, #0xffffffffffffff80 //number of bytes to be processed in main loop (at least 1 byte must be handled by tail) + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 7 - round 8 + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 5 - round 8 + + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 0 - round 8 + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 1 - round 8 + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 2 - round 8 + + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 4 - round 8 + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 3 - round 8 + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 6 - round 8 + + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 2 - round 9 + + ld1 { v19.16b}, [x3] + ext v19.16b, v19.16b, v19.16b, #8 + rev64 v19.16b, v19.16b + ldp q27, q28, [x8, #160] //load rk10, rk11 + add x4, x0, x1, lsr #3 //end_input_ptr + add x5, x5, x0 + + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 3 - round 9 + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 6 - round 9 + + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 4 - round 9 + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 5 - round 9 + + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 7 - round 9 + + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 0 - round 9 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 1 - round 9 + + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 4 - round 10 + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 7 - round 10 + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 5 - round 10 + + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 1 - round 10 + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 2 - round 10 + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 0 - round 10 + + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 6 - round 10 + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 3 - round 10 + ldp q26, q27, [x8, #192] //load rk12, rk13 + + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 0 - round 11 + add v30.4s, v30.4s, v31.4s //CTR block 7 + + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 7 - round 11 + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 3 - round 11 + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 1 - round 11 + + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 5 - round 11 + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 4 - round 11 + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 2 - round 11 + + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 6 - round 11 + ldr q28, [x8, #224] //load rk14 + + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 1 - round 12 + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 4 - round 12 + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 5 - round 12 + + cmp x0, x5 //check if we have <= 8 blocks + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 3 - round 12 + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 2 - round 12 + + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 6 - round 12 + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 0 - round 12 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 7 - round 12 + + aese v5.16b, v27.16b //AES block 5 - round 13 + aese v1.16b, v27.16b //AES block 1 - round 13 + aese v2.16b, v27.16b //AES block 2 - round 13 + + aese v0.16b, v27.16b //AES block 0 - round 13 + aese v4.16b, v27.16b //AES block 4 - round 13 + aese v6.16b, v27.16b //AES block 6 - round 13 + + aese v3.16b, v27.16b //AES block 3 - round 13 + aese v7.16b, v27.16b //AES block 7 - round 13 + b.ge .L256_dec_tail //handle tail + + ldp q8, q9, [x0], #32 //AES block 0, 1 - load ciphertext + + ldp q10, q11, [x0], #32 //AES block 2, 3 - load ciphertext + + ldp q12, q13, [x0], #32 //AES block 4, 5 - load ciphertext + + ldp q14, q15, [x0], #32 //AES block 6, 7 - load ciphertext + cmp x0, x5 //check if we have <= 8 blocks + +.inst 0xce017121 //eor3 v1.16b, v9.16b, v1.16b, v28.16b //AES block 1 - result +.inst 0xce007100 //eor3 v0.16b, v8.16b, v0.16b, v28.16b //AES block 0 - result + stp q0, q1, [x2], #32 //AES block 0, 1 - store result + + rev32 v0.16b, v30.16b //CTR block 8 + add v30.4s, v30.4s, v31.4s //CTR block 8 +.inst 0xce037163 //eor3 v3.16b, v11.16b, v3.16b, v28.16b //AES block 3 - result + +.inst 0xce0571a5 //eor3 v5.16b, v13.16b, v5.16b, v28.16b //AES block 5 - result + +.inst 0xce047184 //eor3 v4.16b, v12.16b, v4.16b, v28.16b //AES block 4 - result + rev32 v1.16b, v30.16b //CTR block 9 + add v30.4s, v30.4s, v31.4s //CTR block 9 + +.inst 0xce027142 //eor3 v2.16b, v10.16b, v2.16b, v28.16b //AES block 2 - result + stp q2, q3, [x2], #32 //AES block 2, 3 - store result + + rev32 v2.16b, v30.16b //CTR block 10 + add v30.4s, v30.4s, v31.4s //CTR block 10 + +.inst 0xce0671c6 //eor3 v6.16b, v14.16b, v6.16b, v28.16b //AES block 6 - result + + rev32 v3.16b, v30.16b //CTR block 11 + add v30.4s, v30.4s, v31.4s //CTR block 11 + stp q4, q5, [x2], #32 //AES block 4, 5 - store result + +.inst 0xce0771e7 //eor3 v7.16b, v15.16b, v7.16b, v28.16b //AES block 7 - result + stp q6, q7, [x2], #32 //AES block 6, 7 - store result + + rev32 v4.16b, v30.16b //CTR block 12 + add v30.4s, v30.4s, v31.4s //CTR block 12 + b.ge .L256_dec_prepretail //do prepretail + +.L256_dec_main_loop: //main loop start + rev32 v5.16b, v30.16b //CTR block 8k+13 + ldp q26, q27, [x8, #0] //load rk0, rk1 + add v30.4s, v30.4s, v31.4s //CTR block 8k+13 + + rev64 v9.16b, v9.16b //GHASH block 8k+1 + ldr q23, [x3, #176] //load h7l | h7h + ext v23.16b, v23.16b, v23.16b, #8 + ldr q25, [x3, #208] //load h8l | h8h + ext v25.16b, v25.16b, v25.16b, #8 + + rev32 v6.16b, v30.16b //CTR block 8k+14 + add v30.4s, v30.4s, v31.4s //CTR block 8k+14 + rev64 v8.16b, v8.16b //GHASH block 8k + + ext v19.16b, v19.16b, v19.16b, #8 //PRE 0 + rev64 v12.16b, v12.16b //GHASH block 8k+4 + rev64 v11.16b, v11.16b //GHASH block 8k+3 + + rev32 v7.16b, v30.16b //CTR block 8k+15 + rev64 v15.16b, v15.16b //GHASH block 8k+7 + + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 0 + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 0 + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 0 + + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 0 + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 0 + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 0 + + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 0 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 0 + ldp q28, q26, [x8, #32] //load rk2, rk3 + + eor v8.16b, v8.16b, v19.16b //PRE 1 + ldr q20, [x3, #128] //load h5l | h5h + ext v20.16b, v20.16b, v20.16b, #8 + ldr q22, [x3, #160] //load h6l | h6h + ext v22.16b, v22.16b, v22.16b, #8 + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 1 + + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 1 + rev64 v10.16b, v10.16b //GHASH block 8k+2 + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 1 + + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 1 + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 1 + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 1 + + trn1 v18.2d, v9.2d, v8.2d //GHASH block 8k, 8k+1 - mid + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 1 + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 1 + + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 2 + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 2 + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 2 + + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 2 + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 2 + pmull v19.1q, v8.1d, v25.1d //GHASH block 8k - low + + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 2 + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 2 + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 2 + + ldp q27, q28, [x8, #64] //load rk4, rk5 + pmull2 v29.1q, v10.2d, v22.2d //GHASH block 8k+2 - high + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 3 + + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 3 + pmull2 v16.1q, v9.2d, v23.2d //GHASH block 8k+1 - high + pmull v23.1q, v9.1d, v23.1d //GHASH block 8k+1 - low + + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 3 + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 3 + pmull2 v17.1q, v8.2d, v25.2d //GHASH block 8k - high + + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 3 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 3 + trn2 v8.2d, v9.2d, v8.2d //GHASH block 8k, 8k+1 - mid + + pmull2 v9.1q, v11.2d, v20.2d //GHASH block 8k+3 - high + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 3 + eor v17.16b, v17.16b, v16.16b //GHASH block 8k+1 - high + + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 4 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 3 + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 4 + + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 4 + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 4 + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 4 + + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 4 + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 4 + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 4 + + ldr q21, [x3, #144] //load h6k | h5k + ldr q24, [x3, #192] //load h8k | h7k + eor v8.16b, v8.16b, v18.16b //GHASH block 8k, 8k+1 - mid + pmull v22.1q, v10.1d, v22.1d //GHASH block 8k+2 - low + + ldp q26, q27, [x8, #96] //load rk6, rk7 + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 5 + eor v19.16b, v19.16b, v23.16b //GHASH block 8k+1 - low + + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 5 + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 5 + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 5 + + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 5 + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 5 + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 5 + +.inst 0xce1d2631 //eor3 v17.16b, v17.16b, v29.16b, v9.16b //GHASH block 8k+2, 8k+3 - high + trn1 v29.2d, v11.2d, v10.2d //GHASH block 8k+2, 8k+3 - mid + rev64 v13.16b, v13.16b //GHASH block 8k+5 + + pmull2 v18.1q, v8.2d, v24.2d //GHASH block 8k - mid + pmull v24.1q, v8.1d, v24.1d //GHASH block 8k+1 - mid + trn2 v10.2d, v11.2d, v10.2d //GHASH block 8k+2, 8k+3 - mid + + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 6 + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 6 + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 5 + + trn1 v16.2d, v13.2d, v12.2d //GHASH block 8k+4, 8k+5 - mid + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 6 + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 6 + + eor v10.16b, v10.16b, v29.16b //GHASH block 8k+2, 8k+3 - mid + pmull v20.1q, v11.1d, v20.1d //GHASH block 8k+3 - low + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 6 + + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 6 + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 6 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 6 + + pmull2 v29.1q, v10.2d, v21.2d //GHASH block 8k+2 - mid + pmull v21.1q, v10.1d, v21.1d //GHASH block 8k+3 - mid +.inst 0xce165273 //eor3 v19.16b, v19.16b, v22.16b, v20.16b //GHASH block 8k+2, 8k+3 - low + + ldr q23, [x3, #80] //load h3l | h3h + ext v23.16b, v23.16b, v23.16b, #8 + ldr q25, [x3, #112] //load h4l | h4h + ext v25.16b, v25.16b, v25.16b, #8 + rev64 v14.16b, v14.16b //GHASH block 8k+6 + eor v18.16b, v18.16b, v24.16b //GHASH block 8k+1 - mid + + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 7 + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 7 + ldp q28, q26, [x8, #128] //load rk8, rk9 + + ldr q20, [x3, #32] //load h1l | h1h + ext v20.16b, v20.16b, v20.16b, #8 + ldr q22, [x3, #64] //load h2l | h2h + ext v22.16b, v22.16b, v22.16b, #8 +.inst 0xce157652 //eor3 v18.16b, v18.16b, v21.16b, v29.16b //GHASH block 8k+2, 8k+3 - mid + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 7 + + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 7 + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 7 + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 7 + + ldr q21, [x3, #48] //load h2k | h1k + ldr q24, [x3, #96] //load h4k | h3k + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 7 + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 7 + + pmull2 v8.1q, v12.2d, v25.2d //GHASH block 8k+4 - high + pmull v25.1q, v12.1d, v25.1d //GHASH block 8k+4 - low + trn2 v12.2d, v13.2d, v12.2d //GHASH block 8k+4, 8k+5 - mid + + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 8 + pmull2 v10.1q, v13.2d, v23.2d //GHASH block 8k+5 - high + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 8 + + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 8 + pmull v23.1q, v13.1d, v23.1d //GHASH block 8k+5 - low + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 8 + + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 8 + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 8 + pmull2 v11.1q, v14.2d, v22.2d //GHASH block 8k+6 - high + + trn1 v13.2d, v15.2d, v14.2d //GHASH block 8k+6, 8k+7 - mid + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 8 + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 8 + + ldp q27, q28, [x8, #160] //load rk10, rk11 + pmull v22.1q, v14.1d, v22.1d //GHASH block 8k+6 - low + trn2 v14.2d, v15.2d, v14.2d //GHASH block 8k+6, 8k+7 - mid + + add v30.4s, v30.4s, v31.4s //CTR block 8k+15 +.inst 0xce082a31 //eor3 v17.16b, v17.16b, v8.16b, v10.16b //GHASH block 8k+4, 8k+5 - high + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 9 + + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 9 + eor v14.16b, v14.16b, v13.16b //GHASH block 8k+6, 8k+7 - mid + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 9 + + ldp q8, q9, [x0], #32 //AES block 8k+8, 8k+9 - load ciphertext + eor v12.16b, v12.16b, v16.16b //GHASH block 8k+4, 8k+5 - mid + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 9 + + pmull2 v13.1q, v14.2d, v21.2d //GHASH block 8k+6 - mid + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 9 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 9 + + pmull2 v16.1q, v12.2d, v24.2d //GHASH block 8k+4 - mid + pmull v24.1q, v12.1d, v24.1d //GHASH block 8k+5 - mid + pmull2 v12.1q, v15.2d, v20.2d //GHASH block 8k+7 - high + + pmull v20.1q, v15.1d, v20.1d //GHASH block 8k+7 - low + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 10 + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 10 + + pmull v21.1q, v14.1d, v21.1d //GHASH block 8k+7 - mid + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 9 +.inst 0xce195e73 //eor3 v19.16b, v19.16b, v25.16b, v23.16b //GHASH block 8k+4, 8k+5 - low + + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 9 +.inst 0xce184252 //eor3 v18.16b, v18.16b, v24.16b, v16.16b //GHASH block 8k+4, 8k+5 - mid +.inst 0xce0b3231 //eor3 v17.16b, v17.16b, v11.16b, v12.16b //GHASH block 8k+6, 8k+7 - high + + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 10 + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 10 + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 10 + + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 10 + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 10 + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 10 + +.inst 0xce165273 //eor3 v19.16b, v19.16b, v22.16b, v20.16b //GHASH block 8k+6, 8k+7 - low + rev32 v20.16b, v30.16b //CTR block 8k+16 + ldr d16, [x10] //MODULO - load modulo constant + + add v30.4s, v30.4s, v31.4s //CTR block 8k+16 + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 11 + ldp q26, q27, [x8, #192] //load rk12, rk13 + + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 11 + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 11 + +.inst 0xce153652 //eor3 v18.16b, v18.16b, v21.16b, v13.16b //GHASH block 8k+6, 8k+7 - mid + rev32 v22.16b, v30.16b //CTR block 8k+17 + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 11 + + ldp q10, q11, [x0], #32 //AES block 8k+10, 8k+11 - load ciphertext + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 11 + ext v21.16b, v17.16b, v17.16b, #8 //MODULO - other top alignment + + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 11 + add v30.4s, v30.4s, v31.4s //CTR block 8k+17 + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 11 + + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 12 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 12 + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 12 + + rev32 v23.16b, v30.16b //CTR block 8k+18 + add v30.4s, v30.4s, v31.4s //CTR block 8k+18 + pmull v29.1q, v17.1d, v16.1d //MODULO - top 64b align with mid + +.inst 0xce114e52 //eor3 v18.16b, v18.16b, v17.16b, v19.16b //MODULO - karatsuba tidy up + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 12 + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 11 + + ldr q28, [x8, #224] //load rk14 + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 12 + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 12 + +.inst 0xce1d5652 //eor3 v18.16b, v18.16b, v29.16b, v21.16b //MODULO - fold into mid + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 12 + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 12 + + ldp q12, q13, [x0], #32 //AES block 8k+12, 8k+13 - load ciphertext + aese v1.16b, v27.16b //AES block 8k+9 - round 13 + aese v2.16b, v27.16b //AES block 8k+10 - round 13 + + ldp q14, q15, [x0], #32 //AES block 8k+14, 8k+15 - load ciphertext + aese v0.16b, v27.16b //AES block 8k+8 - round 13 + aese v5.16b, v27.16b //AES block 8k+13 - round 13 + + rev32 v25.16b, v30.16b //CTR block 8k+19 +.inst 0xce027142 //eor3 v2.16b, v10.16b, v2.16b, v28.16b //AES block 8k+10 - result +.inst 0xce017121 //eor3 v1.16b, v9.16b, v1.16b, v28.16b //AES block 8k+9 - result + + ext v21.16b, v18.16b, v18.16b, #8 //MODULO - other mid alignment + aese v7.16b, v27.16b //AES block 8k+15 - round 13 + + add v30.4s, v30.4s, v31.4s //CTR block 8k+19 + pmull v17.1q, v18.1d, v16.1d //MODULO - mid 64b align with low + aese v4.16b, v27.16b //AES block 8k+12 - round 13 + +.inst 0xce0571a5 //eor3 v5.16b, v13.16b, v5.16b, v28.16b //AES block 8k+13 - result +.inst 0xce007100 //eor3 v0.16b, v8.16b, v0.16b, v28.16b //AES block 8k+8 - result + aese v3.16b, v27.16b //AES block 8k+11 - round 13 + + stp q0, q1, [x2], #32 //AES block 8k+8, 8k+9 - store result + mov v0.16b, v20.16b //CTR block 8k+16 +.inst 0xce047184 //eor3 v4.16b, v12.16b, v4.16b, v28.16b //AES block 8k+12 - result + +.inst 0xce154673 //eor3 v19.16b, v19.16b, v21.16b, v17.16b //MODULO - fold into low +.inst 0xce037163 //eor3 v3.16b, v11.16b, v3.16b, v28.16b //AES block 8k+11 - result + stp q2, q3, [x2], #32 //AES block 8k+10, 8k+11 - store result + + mov v3.16b, v25.16b //CTR block 8k+19 + mov v2.16b, v23.16b //CTR block 8k+18 + aese v6.16b, v27.16b //AES block 8k+14 - round 13 + + mov v1.16b, v22.16b //CTR block 8k+17 + stp q4, q5, [x2], #32 //AES block 8k+12, 8k+13 - store result +.inst 0xce0771e7 //eor3 v7.16b, v15.16b, v7.16b, v28.16b //AES block 8k+15 - result + +.inst 0xce0671c6 //eor3 v6.16b, v14.16b, v6.16b, v28.16b //AES block 8k+14 - result + rev32 v4.16b, v30.16b //CTR block 8k+20 + add v30.4s, v30.4s, v31.4s //CTR block 8k+20 + + cmp x0, x5 //.LOOP CONTROL + stp q6, q7, [x2], #32 //AES block 8k+14, 8k+15 - store result + b.lt .L256_dec_main_loop + +.L256_dec_prepretail: //PREPRETAIL + ldp q26, q27, [x8, #0] //load rk0, rk1 + rev32 v5.16b, v30.16b //CTR block 8k+13 + add v30.4s, v30.4s, v31.4s //CTR block 8k+13 + + rev64 v12.16b, v12.16b //GHASH block 8k+4 + ldr q21, [x3, #144] //load h6k | h5k + ldr q24, [x3, #192] //load h8k | h7k + + rev32 v6.16b, v30.16b //CTR block 8k+14 + rev64 v8.16b, v8.16b //GHASH block 8k + add v30.4s, v30.4s, v31.4s //CTR block 8k+14 + + ext v19.16b, v19.16b, v19.16b, #8 //PRE 0 + ldr q23, [x3, #176] //load h7l | h7h + ext v23.16b, v23.16b, v23.16b, #8 + ldr q25, [x3, #208] //load h8l | h8h + ext v25.16b, v25.16b, v25.16b, #8 + rev64 v9.16b, v9.16b //GHASH block 8k+1 + + rev32 v7.16b, v30.16b //CTR block 8k+15 + rev64 v10.16b, v10.16b //GHASH block 8k+2 + ldr q20, [x3, #128] //load h5l | h5h + ext v20.16b, v20.16b, v20.16b, #8 + ldr q22, [x3, #160] //load h6l | h6h + ext v22.16b, v22.16b, v22.16b, #8 + + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 0 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 0 + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 0 + + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 0 + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 0 + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 0 + + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 1 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 0 + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 0 + + ldp q28, q26, [x8, #32] //load rk2, rk3 + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 1 + eor v8.16b, v8.16b, v19.16b //PRE 1 + + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 1 + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 1 + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 1 + + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 1 + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 1 + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 1 + + pmull2 v16.1q, v9.2d, v23.2d //GHASH block 8k+1 - high + trn1 v18.2d, v9.2d, v8.2d //GHASH block 8k, 8k+1 - mid + pmull v19.1q, v8.1d, v25.1d //GHASH block 8k - low + + rev64 v11.16b, v11.16b //GHASH block 8k+3 + pmull v23.1q, v9.1d, v23.1d //GHASH block 8k+1 - low + + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 2 + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 2 + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 2 + + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 2 + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 2 + pmull2 v17.1q, v8.2d, v25.2d //GHASH block 8k - high + + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 2 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 3 + + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 3 + rev64 v14.16b, v14.16b //GHASH block 8k+6 + + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 3 + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 2 + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 3 + + pmull2 v29.1q, v10.2d, v22.2d //GHASH block 8k+2 - high + trn2 v8.2d, v9.2d, v8.2d //GHASH block 8k, 8k+1 - mid + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 2 + + ldp q27, q28, [x8, #64] //load rk4, rk5 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 3 + pmull2 v9.1q, v11.2d, v20.2d //GHASH block 8k+3 - high + + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 3 + eor v17.16b, v17.16b, v16.16b //GHASH block 8k+1 - high + eor v8.16b, v8.16b, v18.16b //GHASH block 8k, 8k+1 - mid + + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 3 + pmull v22.1q, v10.1d, v22.1d //GHASH block 8k+2 - low + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 3 + +.inst 0xce1d2631 //eor3 v17.16b, v17.16b, v29.16b, v9.16b //GHASH block 8k+2, 8k+3 - high + trn1 v29.2d, v11.2d, v10.2d //GHASH block 8k+2, 8k+3 - mid + trn2 v10.2d, v11.2d, v10.2d //GHASH block 8k+2, 8k+3 - mid + + pmull2 v18.1q, v8.2d, v24.2d //GHASH block 8k - mid + pmull v20.1q, v11.1d, v20.1d //GHASH block 8k+3 - low + eor v19.16b, v19.16b, v23.16b //GHASH block 8k+1 - low + + pmull v24.1q, v8.1d, v24.1d //GHASH block 8k+1 - mid + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 4 + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 4 + +.inst 0xce165273 //eor3 v19.16b, v19.16b, v22.16b, v20.16b //GHASH block 8k+2, 8k+3 - low + ldr q20, [x3, #32] //load h1l | h1h + ext v20.16b, v20.16b, v20.16b, #8 + ldr q22, [x3, #64] //load h2l | h2h + ext v22.16b, v22.16b, v22.16b, #8 + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 4 + + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 4 + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 4 + eor v18.16b, v18.16b, v24.16b //GHASH block 8k+1 - mid + + eor v10.16b, v10.16b, v29.16b //GHASH block 8k+2, 8k+3 - mid + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 5 + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 4 + + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 5 + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 4 + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 4 + + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 5 + pmull2 v29.1q, v10.2d, v21.2d //GHASH block 8k+2 - mid + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 5 + + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 5 + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 5 + pmull v21.1q, v10.1d, v21.1d //GHASH block 8k+3 - mid + + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 5 + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 5 + ldp q26, q27, [x8, #96] //load rk6, rk7 + + ldr q23, [x3, #80] //load h3l | h3h + ext v23.16b, v23.16b, v23.16b, #8 + ldr q25, [x3, #112] //load h4l | h4h + ext v25.16b, v25.16b, v25.16b, #8 + rev64 v15.16b, v15.16b //GHASH block 8k+7 + rev64 v13.16b, v13.16b //GHASH block 8k+5 + +.inst 0xce157652 //eor3 v18.16b, v18.16b, v21.16b, v29.16b //GHASH block 8k+2, 8k+3 - mid + + trn1 v16.2d, v13.2d, v12.2d //GHASH block 8k+4, 8k+5 - mid + + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 6 + ldr q21, [x3, #48] //load h2k | h1k + ldr q24, [x3, #96] //load h4k | h3k + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 6 + + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 6 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 6 + + pmull2 v8.1q, v12.2d, v25.2d //GHASH block 8k+4 - high + pmull2 v10.1q, v13.2d, v23.2d //GHASH block 8k+5 - high + pmull v25.1q, v12.1d, v25.1d //GHASH block 8k+4 - low + + trn2 v12.2d, v13.2d, v12.2d //GHASH block 8k+4, 8k+5 - mid + pmull v23.1q, v13.1d, v23.1d //GHASH block 8k+5 - low + trn1 v13.2d, v15.2d, v14.2d //GHASH block 8k+6, 8k+7 - mid + + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 7 + pmull2 v11.1q, v14.2d, v22.2d //GHASH block 8k+6 - high + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 6 + + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 6 + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 6 + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 6 + + ldp q28, q26, [x8, #128] //load rk8, rk9 + pmull v22.1q, v14.1d, v22.1d //GHASH block 8k+6 - low + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 7 + + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 7 + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 7 + + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 7 + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 7 +.inst 0xce082a31 //eor3 v17.16b, v17.16b, v8.16b, v10.16b //GHASH block 8k+4, 8k+5 - high + + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 7 + trn2 v14.2d, v15.2d, v14.2d //GHASH block 8k+6, 8k+7 - mid + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 7 + + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 8 + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 8 + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 8 + + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 8 + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 8 + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 8 + + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 8 + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 9 + eor v12.16b, v12.16b, v16.16b //GHASH block 8k+4, 8k+5 - mid + + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 9 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 9 + eor v14.16b, v14.16b, v13.16b //GHASH block 8k+6, 8k+7 - mid + + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 9 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 9 + pmull2 v16.1q, v12.2d, v24.2d //GHASH block 8k+4 - mid + + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 8 + pmull v24.1q, v12.1d, v24.1d //GHASH block 8k+5 - mid + pmull2 v12.1q, v15.2d, v20.2d //GHASH block 8k+7 - high + + pmull2 v13.1q, v14.2d, v21.2d //GHASH block 8k+6 - mid + pmull v21.1q, v14.1d, v21.1d //GHASH block 8k+7 - mid + pmull v20.1q, v15.1d, v20.1d //GHASH block 8k+7 - low + + ldp q27, q28, [x8, #160] //load rk10, rk11 +.inst 0xce195e73 //eor3 v19.16b, v19.16b, v25.16b, v23.16b //GHASH block 8k+4, 8k+5 - low +.inst 0xce184252 //eor3 v18.16b, v18.16b, v24.16b, v16.16b //GHASH block 8k+4, 8k+5 - mid + + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 9 + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 9 + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 9 + +.inst 0xce0b3231 //eor3 v17.16b, v17.16b, v11.16b, v12.16b //GHASH block 8k+6, 8k+7 - high +.inst 0xce165273 //eor3 v19.16b, v19.16b, v22.16b, v20.16b //GHASH block 8k+6, 8k+7 - low + ldr d16, [x10] //MODULO - load modulo constant + +.inst 0xce153652 //eor3 v18.16b, v18.16b, v21.16b, v13.16b //GHASH block 8k+6, 8k+7 - mid + + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 10 + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 10 + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 10 + + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 10 + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 10 + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 10 + +.inst 0xce114e52 //eor3 v18.16b, v18.16b, v17.16b, v19.16b //MODULO - karatsuba tidy up + + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 10 + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 10 + ldp q26, q27, [x8, #192] //load rk12, rk13 + + ext v21.16b, v17.16b, v17.16b, #8 //MODULO - other top alignment + + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 11 + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 11 + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 11 + + pmull v29.1q, v17.1d, v16.1d //MODULO - top 64b align with mid + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 11 + + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 11 + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 11 + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 11 + + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 11 + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 12 + +.inst 0xce1d5652 //eor3 v18.16b, v18.16b, v29.16b, v21.16b //MODULO - fold into mid + + aese v3.16b, v27.16b //AES block 8k+11 - round 13 + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 12 + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 12 + + pmull v17.1q, v18.1d, v16.1d //MODULO - mid 64b align with low + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 12 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 12 + + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 12 + ldr q28, [x8, #224] //load rk14 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 12 + + aese v4.16b, v27.16b //AES block 8k+12 - round 13 + ext v21.16b, v18.16b, v18.16b, #8 //MODULO - other mid alignment + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 12 + + aese v6.16b, v27.16b //AES block 8k+14 - round 13 + aese v2.16b, v27.16b //AES block 8k+10 - round 13 + aese v1.16b, v27.16b //AES block 8k+9 - round 13 + + aese v5.16b, v27.16b //AES block 8k+13 - round 13 +.inst 0xce154673 //eor3 v19.16b, v19.16b, v21.16b, v17.16b //MODULO - fold into low + add v30.4s, v30.4s, v31.4s //CTR block 8k+15 + + aese v7.16b, v27.16b //AES block 8k+15 - round 13 + aese v0.16b, v27.16b //AES block 8k+8 - round 13 +.L256_dec_tail: //TAIL + + ext v16.16b, v19.16b, v19.16b, #8 //prepare final partial tag + sub x5, x4, x0 //main_end_input_ptr is number of bytes left to process + cmp x5, #112 + + ldr q9, [x0], #16 //AES block 8k+8 - load ciphertext + + ldp q24, q25, [x3, #192] //load h8k | h7k + ext v25.16b, v25.16b, v25.16b, #8 + mov v29.16b, v28.16b + + ldp q20, q21, [x3, #128] //load h5l | h5h + ext v20.16b, v20.16b, v20.16b, #8 + +.inst 0xce00752c //eor3 v12.16b, v9.16b, v0.16b, v29.16b //AES block 8k+8 - result + ldp q22, q23, [x3, #160] //load h6l | h6h + ext v22.16b, v22.16b, v22.16b, #8 + ext v23.16b, v23.16b, v23.16b, #8 + b.gt .L256_dec_blocks_more_than_7 + + mov v7.16b, v6.16b + sub v30.4s, v30.4s, v31.4s + mov v6.16b, v5.16b + + mov v5.16b, v4.16b + mov v4.16b, v3.16b + movi v19.8b, #0 + + movi v17.8b, #0 + movi v18.8b, #0 + mov v3.16b, v2.16b + + cmp x5, #96 + mov v2.16b, v1.16b + b.gt .L256_dec_blocks_more_than_6 + + mov v7.16b, v6.16b + mov v6.16b, v5.16b + + mov v5.16b, v4.16b + cmp x5, #80 + sub v30.4s, v30.4s, v31.4s + + mov v4.16b, v3.16b + mov v3.16b, v1.16b + b.gt .L256_dec_blocks_more_than_5 + + cmp x5, #64 + mov v7.16b, v6.16b + sub v30.4s, v30.4s, v31.4s + + mov v6.16b, v5.16b + + mov v5.16b, v4.16b + mov v4.16b, v1.16b + b.gt .L256_dec_blocks_more_than_4 + + sub v30.4s, v30.4s, v31.4s + mov v7.16b, v6.16b + cmp x5, #48 + + mov v6.16b, v5.16b + mov v5.16b, v1.16b + b.gt .L256_dec_blocks_more_than_3 + + ldr q24, [x3, #96] //load h4k | h3k + sub v30.4s, v30.4s, v31.4s + mov v7.16b, v6.16b + + cmp x5, #32 + mov v6.16b, v1.16b + b.gt .L256_dec_blocks_more_than_2 + + sub v30.4s, v30.4s, v31.4s + + mov v7.16b, v1.16b + cmp x5, #16 + b.gt .L256_dec_blocks_more_than_1 + + sub v30.4s, v30.4s, v31.4s + ldr q21, [x3, #48] //load h2k | h1k + b .L256_dec_blocks_less_than_1 +.L256_dec_blocks_more_than_7: //blocks left > 7 + rev64 v8.16b, v9.16b //GHASH final-7 block + ldr q9, [x0], #16 //AES final-6 block - load ciphertext + st1 { v12.16b}, [x2], #16 //AES final-7 block - store result + + ins v18.d[0], v24.d[1] //GHASH final-7 block - mid + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + + ins v27.d[0], v8.d[1] //GHASH final-7 block - mid +.inst 0xce01752c //eor3 v12.16b, v9.16b, v1.16b, v29.16b //AES final-6 block - result + + pmull2 v17.1q, v8.2d, v25.2d //GHASH final-7 block - high + + eor v27.8b, v27.8b, v8.8b //GHASH final-7 block - mid + movi v16.8b, #0 //suppress further partial tag feed in + + pmull v19.1q, v8.1d, v25.1d //GHASH final-7 block - low + pmull v18.1q, v27.1d, v18.1d //GHASH final-7 block - mid +.L256_dec_blocks_more_than_6: //blocks left > 6 + + rev64 v8.16b, v9.16b //GHASH final-6 block + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + ldr q9, [x0], #16 //AES final-5 block - load ciphertext + movi v16.8b, #0 //suppress further partial tag feed in + + ins v27.d[0], v8.d[1] //GHASH final-6 block - mid + st1 { v12.16b}, [x2], #16 //AES final-6 block - store result + pmull2 v28.1q, v8.2d, v23.2d //GHASH final-6 block - high + + pmull v26.1q, v8.1d, v23.1d //GHASH final-6 block - low + +.inst 0xce02752c //eor3 v12.16b, v9.16b, v2.16b, v29.16b //AES final-5 block - result + eor v19.16b, v19.16b, v26.16b //GHASH final-6 block - low + eor v27.8b, v27.8b, v8.8b //GHASH final-6 block - mid + + pmull v27.1q, v27.1d, v24.1d //GHASH final-6 block - mid + + eor v18.16b, v18.16b, v27.16b //GHASH final-6 block - mid + eor v17.16b, v17.16b, v28.16b //GHASH final-6 block - high +.L256_dec_blocks_more_than_5: //blocks left > 5 + + rev64 v8.16b, v9.16b //GHASH final-5 block + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + + pmull2 v28.1q, v8.2d, v22.2d //GHASH final-5 block - high + ins v27.d[0], v8.d[1] //GHASH final-5 block - mid + + ldr q9, [x0], #16 //AES final-4 block - load ciphertext + + eor v27.8b, v27.8b, v8.8b //GHASH final-5 block - mid + st1 { v12.16b}, [x2], #16 //AES final-5 block - store result + + pmull v26.1q, v8.1d, v22.1d //GHASH final-5 block - low + ins v27.d[1], v27.d[0] //GHASH final-5 block - mid + + pmull2 v27.1q, v27.2d, v21.2d //GHASH final-5 block - mid + + eor v17.16b, v17.16b, v28.16b //GHASH final-5 block - high +.inst 0xce03752c //eor3 v12.16b, v9.16b, v3.16b, v29.16b //AES final-4 block - result + eor v19.16b, v19.16b, v26.16b //GHASH final-5 block - low + + eor v18.16b, v18.16b, v27.16b //GHASH final-5 block - mid + movi v16.8b, #0 //suppress further partial tag feed in +.L256_dec_blocks_more_than_4: //blocks left > 4 + + rev64 v8.16b, v9.16b //GHASH final-4 block + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + + ins v27.d[0], v8.d[1] //GHASH final-4 block - mid + ldr q9, [x0], #16 //AES final-3 block - load ciphertext + + movi v16.8b, #0 //suppress further partial tag feed in + + pmull v26.1q, v8.1d, v20.1d //GHASH final-4 block - low + pmull2 v28.1q, v8.2d, v20.2d //GHASH final-4 block - high + + eor v27.8b, v27.8b, v8.8b //GHASH final-4 block - mid + + eor v17.16b, v17.16b, v28.16b //GHASH final-4 block - high + + pmull v27.1q, v27.1d, v21.1d //GHASH final-4 block - mid + + eor v19.16b, v19.16b, v26.16b //GHASH final-4 block - low + st1 { v12.16b}, [x2], #16 //AES final-4 block - store result + + eor v18.16b, v18.16b, v27.16b //GHASH final-4 block - mid +.inst 0xce04752c //eor3 v12.16b, v9.16b, v4.16b, v29.16b //AES final-3 block - result +.L256_dec_blocks_more_than_3: //blocks left > 3 + + ldr q25, [x3, #112] //load h4l | h4h + ext v25.16b, v25.16b, v25.16b, #8 + rev64 v8.16b, v9.16b //GHASH final-3 block + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + ldr q9, [x0], #16 //AES final-2 block - load ciphertext + ldr q24, [x3, #96] //load h4k | h3k + + ins v27.d[0], v8.d[1] //GHASH final-3 block - mid + st1 { v12.16b}, [x2], #16 //AES final-3 block - store result + +.inst 0xce05752c //eor3 v12.16b, v9.16b, v5.16b, v29.16b //AES final-2 block - result + + eor v27.8b, v27.8b, v8.8b //GHASH final-3 block - mid + + ins v27.d[1], v27.d[0] //GHASH final-3 block - mid + pmull v26.1q, v8.1d, v25.1d //GHASH final-3 block - low + pmull2 v28.1q, v8.2d, v25.2d //GHASH final-3 block - high + + movi v16.8b, #0 //suppress further partial tag feed in + pmull2 v27.1q, v27.2d, v24.2d //GHASH final-3 block - mid + eor v19.16b, v19.16b, v26.16b //GHASH final-3 block - low + + eor v17.16b, v17.16b, v28.16b //GHASH final-3 block - high + + eor v18.16b, v18.16b, v27.16b //GHASH final-3 block - mid +.L256_dec_blocks_more_than_2: //blocks left > 2 + + rev64 v8.16b, v9.16b //GHASH final-2 block + + ldr q23, [x3, #80] //load h3l | h3h + ext v23.16b, v23.16b, v23.16b, #8 + ldr q9, [x0], #16 //AES final-1 block - load ciphertext + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + + ins v27.d[0], v8.d[1] //GHASH final-2 block - mid + + pmull v26.1q, v8.1d, v23.1d //GHASH final-2 block - low + st1 { v12.16b}, [x2], #16 //AES final-2 block - store result +.inst 0xce06752c //eor3 v12.16b, v9.16b, v6.16b, v29.16b //AES final-1 block - result + + eor v27.8b, v27.8b, v8.8b //GHASH final-2 block - mid + eor v19.16b, v19.16b, v26.16b //GHASH final-2 block - low + movi v16.8b, #0 //suppress further partial tag feed in + + pmull v27.1q, v27.1d, v24.1d //GHASH final-2 block - mid + pmull2 v28.1q, v8.2d, v23.2d //GHASH final-2 block - high + + eor v18.16b, v18.16b, v27.16b //GHASH final-2 block - mid + eor v17.16b, v17.16b, v28.16b //GHASH final-2 block - high +.L256_dec_blocks_more_than_1: //blocks left > 1 + + rev64 v8.16b, v9.16b //GHASH final-1 block + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + + ins v27.d[0], v8.d[1] //GHASH final-1 block - mid + ldr q22, [x3, #64] //load h2l | h2h + ext v22.16b, v22.16b, v22.16b, #8 + + eor v27.8b, v27.8b, v8.8b //GHASH final-1 block - mid + ldr q9, [x0], #16 //AES final block - load ciphertext + st1 { v12.16b}, [x2], #16 //AES final-1 block - store result + + ldr q21, [x3, #48] //load h2k | h1k + pmull v26.1q, v8.1d, v22.1d //GHASH final-1 block - low + + ins v27.d[1], v27.d[0] //GHASH final-1 block - mid + + eor v19.16b, v19.16b, v26.16b //GHASH final-1 block - low + +.inst 0xce07752c //eor3 v12.16b, v9.16b, v7.16b, v29.16b //AES final block - result + pmull2 v28.1q, v8.2d, v22.2d //GHASH final-1 block - high + + pmull2 v27.1q, v27.2d, v21.2d //GHASH final-1 block - mid + + movi v16.8b, #0 //suppress further partial tag feed in + eor v17.16b, v17.16b, v28.16b //GHASH final-1 block - high + + eor v18.16b, v18.16b, v27.16b //GHASH final-1 block - mid +.L256_dec_blocks_less_than_1: //blocks left <= 1 + + ld1 { v26.16b}, [x2] //load existing bytes where the possibly partial last block is to be stored + mvn x6, xzr //temp0_x = 0xffffffffffffffff + and x1, x1, #127 //bit_length %= 128 + + sub x1, x1, #128 //bit_length -= 128 + rev32 v30.16b, v30.16b + str q30, [x16] //store the updated counter + + neg x1, x1 //bit_length = 128 - #bits in input (in range [1,128]) + + and x1, x1, #127 //bit_length %= 128 + + lsr x6, x6, x1 //temp0_x is mask for top 64b of last block + cmp x1, #64 + mvn x7, xzr //temp1_x = 0xffffffffffffffff + + csel x14, x6, xzr, lt + csel x13, x7, x6, lt + + mov v0.d[0], x13 //ctr0b is mask for last block + mov v0.d[1], x14 + + and v9.16b, v9.16b, v0.16b //possibly partial last block has zeroes in highest bits + ldr q20, [x3, #32] //load h1l | h1h + ext v20.16b, v20.16b, v20.16b, #8 + bif v12.16b, v26.16b, v0.16b //insert existing bytes in top end of result before storing + + rev64 v8.16b, v9.16b //GHASH final block + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + + ins v16.d[0], v8.d[1] //GHASH final block - mid + pmull2 v28.1q, v8.2d, v20.2d //GHASH final block - high + + eor v16.8b, v16.8b, v8.8b //GHASH final block - mid + + pmull v26.1q, v8.1d, v20.1d //GHASH final block - low + eor v17.16b, v17.16b, v28.16b //GHASH final block - high + + pmull v16.1q, v16.1d, v21.1d //GHASH final block - mid + + eor v18.16b, v18.16b, v16.16b //GHASH final block - mid + ldr d16, [x10] //MODULO - load modulo constant + eor v19.16b, v19.16b, v26.16b //GHASH final block - low + + pmull v21.1q, v17.1d, v16.1d //MODULO - top 64b align with mid + eor v14.16b, v17.16b, v19.16b //MODULO - karatsuba tidy up + + ext v17.16b, v17.16b, v17.16b, #8 //MODULO - other top alignment + st1 { v12.16b}, [x2] //store all 16B + + eor v18.16b, v18.16b, v14.16b //MODULO - karatsuba tidy up + + eor v21.16b, v17.16b, v21.16b //MODULO - fold into mid + eor v18.16b, v18.16b, v21.16b //MODULO - fold into mid + + pmull v17.1q, v18.1d, v16.1d //MODULO - mid 64b align with low + + ext v18.16b, v18.16b, v18.16b, #8 //MODULO - other mid alignment + eor v19.16b, v19.16b, v17.16b //MODULO - fold into low + + eor v19.16b, v19.16b, v18.16b //MODULO - fold into low + ext v19.16b, v19.16b, v19.16b, #8 + rev64 v19.16b, v19.16b + st1 { v19.16b }, [x3] + mov x0, x9 + + ldp d10, d11, [sp, #16] + ldp d12, d13, [sp, #32] + ldp d14, d15, [sp, #48] + ldp d8, d9, [sp], #80 + ret + +.L256_dec_ret: + mov w0, #0x0 + ret +.size unroll8_eor3_aes_gcm_dec_256_kernel,.-unroll8_eor3_aes_gcm_dec_256_kernel +.byte 65,69,83,32,71,67,77,32,109,111,100,117,108,101,32,102,111,114,32,65,82,77,118,56,44,32,83,80,68,88,32,66,83,68,45,51,45,67,108,97,117,115,101,32,98,121,32,60,120,105,97,111,107,97,110,103,46,113,105,97,110,64,97,114,109,46,99,111,109,62,0 +.align 2 +.align 2 +#endif diff --git a/deps/openssl/config/archs/linux-aarch64/asm/crypto/modes/aes-gcm-armv8_64.S b/deps/openssl/config/archs/linux-aarch64/asm/crypto/modes/aes-gcm-armv8_64.S index d052cbb85cdbbf..def2071cf37834 100644 --- a/deps/openssl/config/archs/linux-aarch64/asm/crypto/modes/aes-gcm-armv8_64.S +++ b/deps/openssl/config/archs/linux-aarch64/asm/crypto/modes/aes-gcm-armv8_64.S @@ -7,6 +7,7 @@ .type aes_gcm_enc_128_kernel,%function .align 4 aes_gcm_enc_128_kernel: + AARCH64_VALID_CALL_TARGET cbz x1, .L128_enc_ret stp x19, x20, [sp, #-112]! mov x16, x4 @@ -989,6 +990,7 @@ aes_gcm_enc_128_kernel: .type aes_gcm_dec_128_kernel,%function .align 4 aes_gcm_dec_128_kernel: + AARCH64_VALID_CALL_TARGET cbz x1, .L128_dec_ret stp x19, x20, [sp, #-112]! mov x16, x4 @@ -1981,6 +1983,7 @@ aes_gcm_dec_128_kernel: .type aes_gcm_enc_192_kernel,%function .align 4 aes_gcm_enc_192_kernel: + AARCH64_VALID_CALL_TARGET cbz x1, .L192_enc_ret stp x19, x20, [sp, #-112]! mov x16, x4 @@ -3038,6 +3041,7 @@ aes_gcm_enc_192_kernel: .type aes_gcm_dec_192_kernel,%function .align 4 aes_gcm_dec_192_kernel: + AARCH64_VALID_CALL_TARGET cbz x1, .L192_dec_ret stp x19, x20, [sp, #-112]! mov x16, x4 @@ -4105,6 +4109,7 @@ aes_gcm_dec_192_kernel: .type aes_gcm_enc_256_kernel,%function .align 4 aes_gcm_enc_256_kernel: + AARCH64_VALID_CALL_TARGET cbz x1, .L256_enc_ret stp x19, x20, [sp, #-112]! mov x16, x4 @@ -5229,6 +5234,7 @@ aes_gcm_enc_256_kernel: .type aes_gcm_dec_256_kernel,%function .align 4 aes_gcm_dec_256_kernel: + AARCH64_VALID_CALL_TARGET cbz x1, .L256_dec_ret stp x19, x20, [sp, #-112]! mov x16, x4 @@ -6383,6 +6389,7 @@ aes_gcm_dec_256_kernel: mov w0, #0x0 ret .size aes_gcm_dec_256_kernel,.-aes_gcm_dec_256_kernel +.section .rodata .byte 71,72,65,83,72,32,102,111,114,32,65,82,77,118,56,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 .align 2 .align 2 diff --git a/deps/openssl/config/archs/linux-aarch64/asm/crypto/modes/ghashv8-armx.S b/deps/openssl/config/archs/linux-aarch64/asm/crypto/modes/ghashv8-armx.S index ea6a66a229e10f..2224d2e7f7d8bb 100644 --- a/deps/openssl/config/archs/linux-aarch64/asm/crypto/modes/ghashv8-armx.S +++ b/deps/openssl/config/archs/linux-aarch64/asm/crypto/modes/ghashv8-armx.S @@ -7,6 +7,7 @@ .type gcm_init_v8,%function .align 4 gcm_init_v8: + AARCH64_VALID_CALL_TARGET ld1 {v17.2d},[x1] //load input H movi v19.16b,#0xe1 shl v19.2d,v19.2d,#57 //0xc2.0 @@ -82,21 +83,110 @@ gcm_init_v8: pmull v5.1q,v5.1d,v19.1d eor v18.16b,v18.16b,v2.16b eor v4.16b,v4.16b,v7.16b - eor v20.16b, v0.16b,v18.16b //H^3 - eor v22.16b,v5.16b,v4.16b //H^4 + eor v23.16b, v0.16b,v18.16b //H^3 + eor v25.16b,v5.16b,v4.16b //H^4 + + ext v16.16b,v23.16b, v23.16b,#8 //Karatsuba pre-processing + ext v17.16b,v25.16b,v25.16b,#8 + ext v18.16b,v22.16b,v22.16b,#8 + eor v16.16b,v16.16b,v23.16b + eor v17.16b,v17.16b,v25.16b + eor v18.16b,v18.16b,v22.16b + ext v24.16b,v16.16b,v17.16b,#8 //pack Karatsuba pre-processed + st1 {v23.2d,v24.2d,v25.2d},[x0],#48 //store Htable[3..5] + + //calculate H^5 and H^6 + pmull v0.1q,v22.1d, v23.1d + pmull v5.1q,v23.1d,v23.1d + pmull2 v2.1q,v22.2d, v23.2d + pmull2 v7.1q,v23.2d,v23.2d + pmull v1.1q,v16.1d,v18.1d + pmull v6.1q,v16.1d,v16.1d - ext v16.16b,v20.16b, v20.16b,#8 //Karatsuba pre-processing - ext v17.16b,v22.16b,v22.16b,#8 - eor v16.16b,v16.16b,v20.16b - eor v17.16b,v17.16b,v22.16b - ext v21.16b,v16.16b,v17.16b,#8 //pack Karatsuba pre-processed - st1 {v20.2d,v21.2d,v22.2d},[x0] //store Htable[3..5] + ext v16.16b,v0.16b,v2.16b,#8 //Karatsuba post-processing + ext v17.16b,v5.16b,v7.16b,#8 + eor v18.16b,v0.16b,v2.16b + eor v1.16b,v1.16b,v16.16b + eor v4.16b,v5.16b,v7.16b + eor v6.16b,v6.16b,v17.16b + eor v1.16b,v1.16b,v18.16b + pmull v18.1q,v0.1d,v19.1d //1st phase + eor v6.16b,v6.16b,v4.16b + pmull v4.1q,v5.1d,v19.1d + + ins v2.d[0],v1.d[1] + ins v7.d[0],v6.d[1] + ins v1.d[1],v0.d[0] + ins v6.d[1],v5.d[0] + eor v0.16b,v1.16b,v18.16b + eor v5.16b,v6.16b,v4.16b + + ext v18.16b,v0.16b,v0.16b,#8 //2nd phase + ext v4.16b,v5.16b,v5.16b,#8 + pmull v0.1q,v0.1d,v19.1d + pmull v5.1q,v5.1d,v19.1d + eor v18.16b,v18.16b,v2.16b + eor v4.16b,v4.16b,v7.16b + eor v26.16b,v0.16b,v18.16b //H^5 + eor v28.16b,v5.16b,v4.16b //H^6 + + ext v16.16b,v26.16b, v26.16b,#8 //Karatsuba pre-processing + ext v17.16b,v28.16b,v28.16b,#8 + ext v18.16b,v22.16b,v22.16b,#8 + eor v16.16b,v16.16b,v26.16b + eor v17.16b,v17.16b,v28.16b + eor v18.16b,v18.16b,v22.16b + ext v27.16b,v16.16b,v17.16b,#8 //pack Karatsuba pre-processed + st1 {v26.2d,v27.2d,v28.2d},[x0],#48 //store Htable[6..8] + + //calculate H^7 and H^8 + pmull v0.1q,v22.1d,v26.1d + pmull v5.1q,v22.1d,v28.1d + pmull2 v2.1q,v22.2d,v26.2d + pmull2 v7.1q,v22.2d,v28.2d + pmull v1.1q,v16.1d,v18.1d + pmull v6.1q,v17.1d,v18.1d + + ext v16.16b,v0.16b,v2.16b,#8 //Karatsuba post-processing + ext v17.16b,v5.16b,v7.16b,#8 + eor v18.16b,v0.16b,v2.16b + eor v1.16b,v1.16b,v16.16b + eor v4.16b,v5.16b,v7.16b + eor v6.16b,v6.16b,v17.16b + eor v1.16b,v1.16b,v18.16b + pmull v18.1q,v0.1d,v19.1d //1st phase + eor v6.16b,v6.16b,v4.16b + pmull v4.1q,v5.1d,v19.1d + + ins v2.d[0],v1.d[1] + ins v7.d[0],v6.d[1] + ins v1.d[1],v0.d[0] + ins v6.d[1],v5.d[0] + eor v0.16b,v1.16b,v18.16b + eor v5.16b,v6.16b,v4.16b + + ext v18.16b,v0.16b,v0.16b,#8 //2nd phase + ext v4.16b,v5.16b,v5.16b,#8 + pmull v0.1q,v0.1d,v19.1d + pmull v5.1q,v5.1d,v19.1d + eor v18.16b,v18.16b,v2.16b + eor v4.16b,v4.16b,v7.16b + eor v29.16b,v0.16b,v18.16b //H^7 + eor v31.16b,v5.16b,v4.16b //H^8 + + ext v16.16b,v29.16b,v29.16b,#8 //Karatsuba pre-processing + ext v17.16b,v31.16b,v31.16b,#8 + eor v16.16b,v16.16b,v29.16b + eor v17.16b,v17.16b,v31.16b + ext v30.16b,v16.16b,v17.16b,#8 //pack Karatsuba pre-processed + st1 {v29.2d,v30.2d,v31.2d},[x0] //store Htable[9..11] ret .size gcm_init_v8,.-gcm_init_v8 .globl gcm_gmult_v8 .type gcm_gmult_v8,%function .align 4 gcm_gmult_v8: + AARCH64_VALID_CALL_TARGET ld1 {v17.2d},[x0] //load Xi movi v19.16b,#0xe1 ld1 {v20.2d,v21.2d},[x1] //load twisted H, ... @@ -138,6 +228,7 @@ gcm_gmult_v8: .type gcm_ghash_v8,%function .align 4 gcm_ghash_v8: + AARCH64_VALID_CALL_TARGET cmp x3,#64 b.hs .Lgcm_ghash_v8_4x ld1 {v0.2d},[x0] //load [rotated] Xi @@ -546,6 +637,7 @@ gcm_ghash_v8_4x: ret .size gcm_ghash_v8_4x,.-gcm_ghash_v8_4x +.section .rodata .byte 71,72,65,83,72,32,102,111,114,32,65,82,77,118,56,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 .align 2 .align 2 diff --git a/deps/openssl/config/archs/linux-aarch64/asm/crypto/params_idx.c b/deps/openssl/config/archs/linux-aarch64/asm/crypto/params_idx.c new file mode 100644 index 00000000000000..9d76ffededc24c --- /dev/null +++ b/deps/openssl/config/archs/linux-aarch64/asm/crypto/params_idx.c @@ -0,0 +1,3366 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from crypto/params_idx.c.in + * + * Copyright 2023 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + +#include "internal/e_os.h" +#include "internal/param_names.h" +#include + +/* Machine generated TRIE -- generated by util/perl/OpenSSL/paramnames.pm */ +int ossl_param_find_pidx(const char *s) +{ + switch(s[0]) { + default: + break; + case 'a': + switch(s[1]) { + default: + break; + case 'c': + if (strcmp("vp-info", s + 2) == 0) + return PIDX_KDF_PARAM_X942_ACVPINFO; + break; + case 'd': + switch(s[2]) { + default: + break; + case 'd': + if (strcmp("itional-random", s + 3) == 0) + return PIDX_SIGNATURE_PARAM_ADD_RANDOM; + break; + case '\0': + return PIDX_KDF_PARAM_ARGON2_AD; + } + break; + case 'e': + if (strcmp("ad", s + 2) == 0) + return PIDX_CIPHER_PARAM_AEAD; + break; + case 'l': + switch(s[2]) { + default: + break; + case 'g': + switch(s[3]) { + default: + break; + case '_': + if (strcmp("id_param", s + 4) == 0) + return PIDX_CIPHER_PARAM_ALGORITHM_ID_PARAMS_OLD; + break; + case 'i': + if (strcmp("d-absent", s + 4) == 0) + return PIDX_DIGEST_PARAM_ALGID_ABSENT; + break; + case 'o': + switch(s[4]) { + default: + break; + case 'r': + switch(s[5]) { + default: + break; + case 'i': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case 'h': + switch(s[8]) { + default: + break; + case 'm': + switch(s[9]) { + default: + break; + case '-': + switch(s[10]) { + default: + break; + case 'i': + switch(s[11]) { + default: + break; + case 'd': + switch(s[12]) { + default: + break; + case '-': + if (strcmp("params", s + 13) == 0) + return PIDX_ALG_PARAM_ALGORITHM_ID_PARAMS; + break; + case '\0': + return PIDX_ALG_PARAM_ALGORITHM_ID; + } + } + } + } + } + } + } + } + } + } + break; + case 'i': + if (strcmp("as", s + 3) == 0) + return PIDX_STORE_PARAM_ALIAS; + } + break; + case '\0': + return PIDX_PKEY_PARAM_EC_A; + } + break; + case 'b': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("sis-type", s + 2) == 0) + return PIDX_PKEY_PARAM_EC_CHAR2_TYPE; + break; + case 'i': + if (strcmp("ts", s + 2) == 0) + return PIDX_PKEY_PARAM_BITS; + break; + case 'l': + switch(s[2]) { + default: + break; + case 'o': + switch(s[3]) { + default: + break; + case 'c': + switch(s[4]) { + default: + break; + case 'k': + switch(s[5]) { + default: + break; + case '-': + if (strcmp("size", s + 6) == 0) + return PIDX_MAC_PARAM_BLOCK_SIZE; + break; + case '_': + if (strcmp("padding", s + 6) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_BLOCK_PADDING; + break; + case 's': + if (strcmp("ize", s + 6) == 0) + return PIDX_DIGEST_PARAM_BLOCK_SIZE; + } + } + } + } + break; + case 'u': + if (strcmp("ildinfo", s + 2) == 0) + return PIDX_PROV_PARAM_BUILDINFO; + break; + case '\0': + return PIDX_PKEY_PARAM_EC_B; + } + break; + case 'c': + switch(s[1]) { + default: + break; + case '-': + if (strcmp("rounds", s + 2) == 0) + return PIDX_MAC_PARAM_C_ROUNDS; + break; + case 'e': + if (strcmp("kalg", s + 2) == 0) + return PIDX_KDF_PARAM_CEK_ALG; + break; + case 'i': + if (strcmp("pher", s + 2) == 0) + return PIDX_ALG_PARAM_CIPHER; + break; + case 'o': + switch(s[2]) { + default: + break; + case 'f': + if (strcmp("actor", s + 3) == 0) + return PIDX_PKEY_PARAM_EC_COFACTOR; + break; + case 'n': + switch(s[3]) { + default: + break; + case 's': + if (strcmp("tant", s + 4) == 0) + return PIDX_KDF_PARAM_CONSTANT; + break; + case 't': + if (strcmp("ext-string", s + 4) == 0) + return PIDX_SIGNATURE_PARAM_CONTEXT_STRING; + } + } + break; + case 't': + switch(s[2]) { + default: + break; + case 's': + switch(s[3]) { + default: + break; + case '_': + if (strcmp("mode", s + 4) == 0) + return PIDX_CIPHER_PARAM_CTS_MODE; + break; + case '\0': + return PIDX_CIPHER_PARAM_CTS; + } + } + break; + case 'u': + switch(s[2]) { + default: + break; + case 's': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case 'o': + switch(s[5]) { + default: + break; + case 'm': + switch(s[6]) { + default: + break; + case '-': + if (strcmp("iv", s + 7) == 0) + return PIDX_CIPHER_PARAM_CUSTOM_IV; + break; + case '\0': + return PIDX_MAC_PARAM_CUSTOM; + } + } + } + } + } + } + break; + case 'd': + switch(s[1]) { + default: + break; + case '-': + if (strcmp("rounds", s + 2) == 0) + return PIDX_MAC_PARAM_D_ROUNDS; + break; + case 'a': + switch(s[2]) { + default: + break; + case 't': + switch(s[3]) { + default: + break; + case 'a': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 's': + if (strcmp("tructure", s + 6) == 0) + return PIDX_OBJECT_PARAM_DATA_STRUCTURE; + break; + case 't': + if (strcmp("ype", s + 6) == 0) + return PIDX_OBJECT_PARAM_DATA_TYPE; + } + break; + case '\0': + return PIDX_OBJECT_PARAM_DATA; + } + } + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'c': + switch(s[3]) { + default: + break; + case 'o': + if (strcmp("ded-from-explicit", s + 4) == 0) + return PIDX_PKEY_PARAM_EC_DECODED_FROM_EXPLICIT_PARAMS; + break; + case 'r': + if (strcmp("ypt-only", s + 4) == 0) + return PIDX_CIPHER_PARAM_DECRYPT_ONLY; + } + break; + case 'f': + if (strcmp("ault-digest", s + 3) == 0) + return PIDX_PKEY_PARAM_DEFAULT_DIGEST; + break; + case 's': + if (strcmp("c", s + 3) == 0) + return PIDX_OBJECT_PARAM_DESC; + break; + case 't': + if (strcmp("erministic", s + 3) == 0) + return PIDX_SIGNATURE_PARAM_DETERMINISTIC; + } + break; + case 'h': + if (strcmp("kem-ikm", s + 2) == 0) + return PIDX_PKEY_PARAM_DHKEM_IKM; + break; + case 'i': + switch(s[2]) { + default: + break; + case 'g': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case 's': + switch(s[5]) { + default: + break; + case 't': + switch(s[6]) { + default: + break; + case '-': + switch(s[7]) { + default: + break; + case 'c': + if (strcmp("heck", s + 8) == 0) + return PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK; + break; + case 'n': + if (strcmp("oinit", s + 8) == 0) + return PIDX_MAC_PARAM_DIGEST_NOINIT; + break; + case 'o': + if (strcmp("neshot", s + 8) == 0) + return PIDX_MAC_PARAM_DIGEST_ONESHOT; + break; + case 'p': + if (strcmp("rops", s + 8) == 0) + return PIDX_ASYM_CIPHER_PARAM_OAEP_DIGEST_PROPS; + break; + case 's': + if (strcmp("ize", s + 8) == 0) + return PIDX_PKEY_PARAM_DIGEST_SIZE; + } + break; + case '\0': + return PIDX_STORE_PARAM_DIGEST; + } + } + } + } + break; + case 's': + if (strcmp("tid", s + 3) == 0) + return PIDX_PKEY_PARAM_DIST_ID; + } + break; + case 'r': + if (strcmp("bg-no-trunc-md", s + 2) == 0) + return PIDX_PROV_PARAM_DRBG_TRUNC_DIGEST; + break; + case 's': + if (strcmp("a-sign-disabled", s + 2) == 0) + return PIDX_PROV_PARAM_DSA_SIGN_DISABLED; + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_D; + } + break; + case 'e': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("rly_clean", s + 2) == 0) + return PIDX_KDF_PARAM_EARLY_CLEAN; + break; + case 'c': + switch(s[2]) { + default: + break; + case 'd': + switch(s[3]) { + default: + break; + case 'h': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'c': + switch(s[6]) { + default: + break; + case 'o': + switch(s[7]) { + default: + break; + case 'f': + switch(s[8]) { + default: + break; + case 'a': + switch(s[9]) { + default: + break; + case 'c': + switch(s[10]) { + default: + break; + case 't': + switch(s[11]) { + default: + break; + case 'o': + switch(s[12]) { + default: + break; + case 'r': + switch(s[13]) { + default: + break; + case '-': + switch(s[14]) { + default: + break; + case 'c': + if (strcmp("heck", s + 15) == 0) + return PIDX_PROV_PARAM_ECDH_COFACTOR_CHECK; + break; + case 'm': + if (strcmp("ode", s + 15) == 0) + return PIDX_EXCHANGE_PARAM_EC_ECDH_COFACTOR_MODE; + } + } + } + } + } + } + } + } + } + } + } + } + } + break; + case 'm': + if (strcmp("s_check", s + 2) == 0) + return PIDX_KDF_PARAM_FIPS_EMS_CHECK; + break; + case 'n': + switch(s[2]) { + default: + break; + case 'c': + switch(s[3]) { + default: + break; + case 'o': + switch(s[4]) { + default: + break; + case 'd': + switch(s[5]) { + default: + break; + case 'e': + if (strcmp("d-pub-key", s + 6) == 0) + return PIDX_PKEY_PARAM_ENCODED_PUBLIC_KEY; + break; + case 'i': + if (strcmp("ng", s + 6) == 0) + return PIDX_PKEY_PARAM_EC_ENCODING; + } + } + break; + case 'r': + switch(s[4]) { + default: + break; + case 'y': + switch(s[5]) { + default: + break; + case 'p': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case '-': + switch(s[8]) { + default: + break; + case 'c': + if (strcmp("heck", s + 9) == 0) + return PIDX_CIPHER_PARAM_FIPS_ENCRYPT_CHECK; + break; + case 'l': + if (strcmp("evel", s + 9) == 0) + return PIDX_ENCODER_PARAM_ENCRYPT_LEVEL; + } + } + } + } + } + } + break; + case 'g': + if (strcmp("ine", s + 3) == 0) + return PIDX_ALG_PARAM_ENGINE; + break; + case 't': + switch(s[3]) { + default: + break; + case 'r': + switch(s[4]) { + default: + break; + case 'o': + switch(s[5]) { + default: + break; + case 'p': + switch(s[6]) { + default: + break; + case 'y': + switch(s[7]) { + default: + break; + case '_': + if (strcmp("required", s + 8) == 0) + return PIDX_DRBG_PARAM_ENTROPY_REQUIRED; + break; + case '\0': + return PIDX_KDF_PARAM_HMACDRBG_ENTROPY; + } + } + } + } + } + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_E; + break; + case 'x': + if (strcmp("pect", s + 2) == 0) + return PIDX_STORE_PARAM_EXPECT; + } + break; + case 'f': + switch(s[1]) { + default: + break; + case 'i': + switch(s[2]) { + default: + break; + case 'e': + if (strcmp("ld-type", s + 3) == 0) + return PIDX_PKEY_PARAM_EC_FIELD_TYPE; + break; + case 'n': + if (strcmp("gerprint", s + 3) == 0) + return PIDX_STORE_PARAM_FINGERPRINT; + break; + case 'p': + if (strcmp("s-indicator", s + 3) == 0) + return PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR; + } + } + break; + case 'g': + switch(s[1]) { + default: + break; + case 'e': + switch(s[2]) { + default: + break; + case 'n': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case 'r': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case 'e': + switch(s[8]) { + default: + break; + case '\0': + return PIDX_RAND_PARAM_GENERATE; + } + break; + case 'o': + if (strcmp("r", s + 8) == 0) + return PIDX_PKEY_PARAM_EC_GENERATOR; + } + } + } + } + } + } + break; + case 'i': + if (strcmp("ndex", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_GINDEX; + break; + case 'r': + switch(s[2]) { + default: + break; + case 'o': + switch(s[3]) { + default: + break; + case 'u': + switch(s[4]) { + default: + break; + case 'p': + switch(s[5]) { + default: + break; + case '-': + if (strcmp("check", s + 6) == 0) + return PIDX_PKEY_PARAM_EC_GROUP_CHECK_TYPE; + break; + case '\0': + return PIDX_PKEY_PARAM_GROUP_NAME; + } + } + } + } + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_G; + } + break; + case 'h': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("s-randkey", s + 2) == 0) + return PIDX_CIPHER_PARAM_HAS_RAND_KEY; + break; + case 'i': + if (strcmp("ndex", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_H; + break; + case 'k': + switch(s[2]) { + default: + break; + case 'd': + switch(s[3]) { + default: + break; + case 'f': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 6) == 0) + return PIDX_PROV_PARAM_HKDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 6) == 0) + return PIDX_PROV_PARAM_HKDF_KEY_CHECK; + } + } + } + } + break; + case 'm': + if (strcmp("ac-key-check", s + 2) == 0) + return PIDX_PROV_PARAM_HMAC_KEY_CHECK; + break; + case 's': + if (strcmp("_padding", s + 2) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_HS_PADDING; + } + break; + case 'i': + switch(s[1]) { + default: + break; + case 'd': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_KDF_PARAM_PKCS12_ID; + } + break; + case 'k': + if (strcmp("me", s + 2) == 0) + return PIDX_KEM_PARAM_IKME; + break; + case 'm': + if (strcmp("plicit-rejection", s + 2) == 0) + return PIDX_PKEY_PARAM_IMPLICIT_REJECTION; + break; + case 'n': + switch(s[2]) { + default: + break; + case 'c': + if (strcmp("lude-public", s + 3) == 0) + return PIDX_PKEY_PARAM_EC_INCLUDE_PUBLIC; + break; + case 'f': + if (strcmp("o", s + 3) == 0) + return PIDX_PASSPHRASE_PARAM_INFO; + break; + case 'p': + if (strcmp("ut-type", s + 3) == 0) + return PIDX_STORE_PARAM_INPUT_TYPE; + break; + case 's': + if (strcmp("tance", s + 3) == 0) + return PIDX_SIGNATURE_PARAM_INSTANCE; + } + break; + case 't': + switch(s[2]) { + default: + break; + case 'e': + switch(s[3]) { + default: + break; + case 'r': + switch(s[4]) { + default: + break; + case 'a': + if (strcmp("tion", s + 5) == 0) + return PIDX_GEN_PARAM_ITERATION; + break; + case '\0': + return PIDX_KDF_PARAM_ITER; + } + } + } + break; + case 'v': + switch(s[2]) { + default: + break; + case '-': + if (strcmp("generated", s + 3) == 0) + return PIDX_CIPHER_PARAM_AEAD_IV_GENERATED; + break; + case 'l': + if (strcmp("en", s + 3) == 0) + return PIDX_CIPHER_PARAM_IVLEN; + break; + case '\0': + return PIDX_MAC_PARAM_IV; + } + } + break; + case 'j': + switch(s[1]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_COFACTOR; + } + break; + case 'k': + switch(s[1]) { + default: + break; + case '1': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_PP_K1; + } + break; + case '2': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_PP_K2; + } + break; + case '3': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_PP_K3; + } + break; + case 'a': + if (strcmp("t", s + 2) == 0) + return PIDX_SIGNATURE_PARAM_KAT; + break; + case 'b': + if (strcmp("kdf-key-check", s + 2) == 0) + return PIDX_PROV_PARAM_KBKDF_KEY_CHECK; + break; + case 'd': + switch(s[2]) { + default: + break; + case 'f': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'd': + switch(s[5]) { + default: + break; + case 'i': + switch(s[6]) { + default: + break; + case 'g': + switch(s[7]) { + default: + break; + case 'e': + switch(s[8]) { + default: + break; + case 's': + switch(s[9]) { + default: + break; + case 't': + switch(s[10]) { + default: + break; + case '-': + if (strcmp("props", s + 11) == 0) + return PIDX_EXCHANGE_PARAM_KDF_DIGEST_PROPS; + break; + case '\0': + return PIDX_EXCHANGE_PARAM_KDF_DIGEST; + } + } + } + } + } + } + break; + case 'o': + if (strcmp("utlen", s + 5) == 0) + return PIDX_EXCHANGE_PARAM_KDF_OUTLEN; + break; + case 't': + if (strcmp("ype", s + 5) == 0) + return PIDX_EXCHANGE_PARAM_KDF_TYPE; + break; + case 'u': + if (strcmp("km", s + 5) == 0) + return PIDX_EXCHANGE_PARAM_KDF_UKM; + } + } + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'y': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'c': + if (strcmp("heck", s + 5) == 0) + return PIDX_PKEY_PARAM_FIPS_KEY_CHECK; + break; + case 'l': + if (strcmp("ength", s + 5) == 0) + return PIDX_SKEY_PARAM_KEY_LENGTH; + } + break; + case 'b': + if (strcmp("its", s + 4) == 0) + return PIDX_CIPHER_PARAM_RC2_KEYBITS; + break; + case 'l': + if (strcmp("en", s + 4) == 0) + return PIDX_CIPHER_PARAM_KEYLEN; + break; + case '\0': + return PIDX_MAC_PARAM_KEY; + } + } + break; + case 'm': + if (strcmp("ac-key-check", s + 2) == 0) + return PIDX_PROV_PARAM_KMAC_KEY_CHECK; + } + break; + case 'l': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'b': + if (strcmp("el", s + 3) == 0) + return PIDX_KDF_PARAM_LABEL; + break; + case 'n': + if (strcmp("es", s + 3) == 0) + return PIDX_KDF_PARAM_ARGON2_LANES; + } + } + break; + case 'm': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'c': + switch(s[3]) { + default: + break; + case 'k': + if (strcmp("ey", s + 4) == 0) + return PIDX_CIPHER_PARAM_AEAD_MAC_KEY; + break; + case 'l': + if (strcmp("en", s + 4) == 0) + return PIDX_KDF_PARAM_MAC_SIZE; + break; + case '\0': + return PIDX_ALG_PARAM_MAC; + } + break; + case 'n': + if (strcmp("datory-digest", s + 3) == 0) + return PIDX_PKEY_PARAM_MANDATORY_DIGEST; + break; + case 'x': + switch(s[3]) { + default: + break; + case '-': + if (strcmp("size", s + 4) == 0) + return PIDX_PKEY_PARAM_MAX_SIZE; + break; + case '_': + switch(s[4]) { + default: + break; + case 'a': + if (strcmp("dinlen", s + 5) == 0) + return PIDX_DRBG_PARAM_MAX_ADINLEN; + break; + case 'e': + switch(s[5]) { + default: + break; + case 'a': + if (strcmp("rly_data", s + 6) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_MAX_EARLY_DATA; + break; + case 'n': + if (strcmp("tropylen", s + 6) == 0) + return PIDX_DRBG_PARAM_MAX_ENTROPYLEN; + } + break; + case 'f': + if (strcmp("rag_len", s + 5) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_MAX_FRAG_LEN; + break; + case 'n': + if (strcmp("oncelen", s + 5) == 0) + return PIDX_DRBG_PARAM_MAX_NONCELEN; + break; + case 'p': + if (strcmp("erslen", s + 5) == 0) + return PIDX_DRBG_PARAM_MAX_PERSLEN; + break; + case 'r': + if (strcmp("equest", s + 5) == 0) + return PIDX_RAND_PARAM_MAX_REQUEST; + } + break; + case 'i': + if (strcmp("um_length", s + 4) == 0) + return PIDX_DRBG_PARAM_MAX_LENGTH; + break; + case 'm': + if (strcmp("em_bytes", s + 4) == 0) + return PIDX_KDF_PARAM_SCRYPT_MAXMEM; + } + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'm': + if (strcmp("cost", s + 3) == 0) + return PIDX_KDF_PARAM_ARGON2_MEMCOST; + break; + case 's': + if (strcmp("sage-encoding", s + 3) == 0) + return PIDX_SIGNATURE_PARAM_MESSAGE_ENCODING; + } + break; + case 'g': + switch(s[2]) { + default: + break; + case 'f': + switch(s[3]) { + default: + break; + case '1': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'd': + if (strcmp("igest", s + 6) == 0) + return PIDX_PKEY_PARAM_MGF1_DIGEST; + break; + case 'p': + if (strcmp("roperties", s + 6) == 0) + return PIDX_PKEY_PARAM_MGF1_PROPERTIES; + } + } + break; + case '\0': + return PIDX_PKEY_PARAM_MASKGENFUNC; + } + } + break; + case 'i': + switch(s[2]) { + default: + break; + case 'c': + if (strcmp("alg", s + 3) == 0) + return PIDX_DIGEST_PARAM_MICALG; + break; + case 'n': + switch(s[3]) { + default: + break; + case '_': + switch(s[4]) { + default: + break; + case 'e': + if (strcmp("ntropylen", s + 5) == 0) + return PIDX_DRBG_PARAM_MIN_ENTROPYLEN; + break; + case 'n': + if (strcmp("oncelen", s + 5) == 0) + return PIDX_DRBG_PARAM_MIN_NONCELEN; + } + break; + case 'i': + if (strcmp("um_length", s + 4) == 0) + return PIDX_DRBG_PARAM_MIN_LENGTH; + } + } + break; + case 'l': + switch(s[2]) { + default: + break; + case '-': + switch(s[3]) { + default: + break; + case 'd': + switch(s[4]) { + default: + break; + case 's': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case '.': + switch(s[7]) { + default: + break; + case 'i': + if (strcmp("nput_formats", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_DSA_INPUT_FORMATS; + break; + case 'o': + if (strcmp("utput_formats", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_DSA_OUTPUT_FORMATS; + break; + case 'p': + if (strcmp("refer_seed", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_DSA_PREFER_SEED; + break; + case 'r': + if (strcmp("etain_seed", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_DSA_RETAIN_SEED; + } + } + } + } + break; + case 'k': + switch(s[4]) { + default: + break; + case 'e': + switch(s[5]) { + default: + break; + case 'm': + switch(s[6]) { + default: + break; + case '.': + switch(s[7]) { + default: + break; + case 'i': + switch(s[8]) { + default: + break; + case 'm': + if (strcmp("port_pct_type", s + 9) == 0) + return PIDX_PKEY_PARAM_ML_KEM_IMPORT_PCT_TYPE; + break; + case 'n': + if (strcmp("put_formats", s + 9) == 0) + return PIDX_PKEY_PARAM_ML_KEM_INPUT_FORMATS; + } + break; + case 'o': + if (strcmp("utput_formats", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_KEM_OUTPUT_FORMATS; + break; + case 'p': + if (strcmp("refer_seed", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_KEM_PREFER_SEED; + break; + case 'r': + if (strcmp("etain_seed", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_KEM_RETAIN_SEED; + } + } + } + } + } + } + break; + case 'o': + switch(s[2]) { + default: + break; + case 'd': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case '\0': + return PIDX_LIBSSL_RECORD_LAYER_PARAM_MODE; + } + break; + case 'u': + if (strcmp("le-filename", s + 4) == 0) + return PIDX_PROV_PARAM_CORE_MODULE_FILENAME; + } + } + break; + case 'u': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_SIGNATURE_PARAM_MU; + } + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_M; + } + break; + case 'n': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("me", s + 2) == 0) + return PIDX_STORE_PARAM_ISSUER; + break; + case 'o': + switch(s[2]) { + default: + break; + case '-': + if (strcmp("short-mac", s + 3) == 0) + return PIDX_PROV_PARAM_NO_SHORT_MAC; + break; + case 'n': + switch(s[3]) { + default: + break; + case 'c': + switch(s[4]) { + default: + break; + case 'e': + switch(s[5]) { + default: + break; + case '-': + if (strcmp("type", s + 6) == 0) + return PIDX_SIGNATURE_PARAM_NONCE_TYPE; + break; + case '\0': + return PIDX_KDF_PARAM_HMACDRBG_NONCE; + } + } + } + } + break; + case 'u': + if (strcmp("m", s + 2) == 0) + return PIDX_CIPHER_PARAM_NUM; + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_N; + } + break; + case 'o': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("ep-label", s + 2) == 0) + return PIDX_ASYM_CIPHER_PARAM_OAEP_LABEL; + break; + case 'p': + switch(s[2]) { + default: + break; + case 'e': + switch(s[3]) { + default: + break; + case 'n': + if (strcmp("ssl-version", s + 4) == 0) + return PIDX_PROV_PARAM_CORE_VERSION; + break; + case 'r': + if (strcmp("ation", s + 4) == 0) + return PIDX_KEM_PARAM_OPERATION; + } + break; + case 't': + if (strcmp("ions", s + 3) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_OPTIONS; + } + break; + case 'r': + if (strcmp("der", s + 2) == 0) + return PIDX_PKEY_PARAM_EC_ORDER; + } + break; + case 'p': + switch(s[1]) { + default: + break; + case '1': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_P1; + } + break; + case '2': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_P2; + } + break; + case 'a': + switch(s[2]) { + default: + break; + case 'd': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'm': + if (strcmp("ode", s + 5) == 0) + return PIDX_PKEY_PARAM_PAD_MODE; + break; + case 't': + if (strcmp("ype", s + 5) == 0) + return PIDX_DIGEST_PARAM_PAD_TYPE; + } + break; + case 'd': + if (strcmp("ing", s + 4) == 0) + return PIDX_CIPHER_PARAM_PADDING; + break; + case '\0': + return PIDX_EXCHANGE_PARAM_PAD; + } + break; + case 'r': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case 'y': + switch(s[5]) { + default: + break; + case 'u': + if (strcmp("-info", s + 6) == 0) + return PIDX_KDF_PARAM_X942_PARTYUINFO; + break; + case 'v': + if (strcmp("-info", s + 6) == 0) + return PIDX_KDF_PARAM_X942_PARTYVINFO; + } + } + } + break; + case 's': + if (strcmp("s", s + 3) == 0) + return PIDX_KDF_PARAM_PASSWORD; + } + break; + case 'b': + switch(s[2]) { + default: + break; + case 'i': + if (strcmp("ts", s + 3) == 0) + return PIDX_PKEY_PARAM_FFC_PBITS; + break; + case 'k': + if (strcmp("df2-lower-bound-check", s + 3) == 0) + return PIDX_PROV_PARAM_PBKDF2_LOWER_BOUND_CHECK; + } + break; + case 'c': + if (strcmp("ounter", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_PCOUNTER; + break; + case 'i': + if (strcmp("peline-tag", s + 2) == 0) + return PIDX_CIPHER_PARAM_PIPELINE_AEAD_TAG; + break; + case 'k': + if (strcmp("cs5", s + 2) == 0) + return PIDX_KDF_PARAM_PKCS5; + break; + case 'o': + switch(s[2]) { + default: + break; + case 'i': + if (strcmp("nt-format", s + 3) == 0) + return PIDX_PKEY_PARAM_EC_POINT_CONVERSION_FORMAT; + break; + case 't': + if (strcmp("ential", s + 3) == 0) + return PIDX_GEN_PARAM_POTENTIAL; + } + break; + case 'r': + switch(s[2]) { + default: + break; + case 'e': + switch(s[3]) { + default: + break; + case 'd': + if (strcmp("iction_resistance", s + 4) == 0) + return PIDX_DRBG_PARAM_PREDICTION_RESISTANCE; + break; + case 'f': + if (strcmp("ix", s + 4) == 0) + return PIDX_KDF_PARAM_PREFIX; + } + break; + case 'i': + switch(s[3]) { + default: + break; + case 'm': + if (strcmp("es", s + 4) == 0) + return PIDX_PKEY_PARAM_RSA_PRIMES; + break; + case 'v': + switch(s[4]) { + default: + break; + case '_': + if (strcmp("len", s + 5) == 0) + return PIDX_PKEY_PARAM_DH_PRIV_LEN; + break; + case '\0': + return PIDX_PKEY_PARAM_PRIV_KEY; + } + } + break; + case 'o': + switch(s[3]) { + default: + break; + case 'p': + if (strcmp("erties", s + 4) == 0) + return PIDX_STORE_PARAM_PROPERTIES; + break; + case 'v': + if (strcmp("ider-name", s + 4) == 0) + return PIDX_PROV_PARAM_CORE_PROV_NAME; + } + } + break; + case 'u': + if (strcmp("b", s + 2) == 0) + return PIDX_PKEY_PARAM_PUB_KEY; + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_P; + } + break; + case 'q': + switch(s[1]) { + default: + break; + case '1': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_Q1; + } + break; + case '2': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_Q2; + } + break; + case 'b': + if (strcmp("its", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_QBITS; + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_Q; + break; + case 'x': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_PUB_X; + } + break; + case 'y': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_PUB_Y; + } + } + break; + case 'r': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'n': + switch(s[3]) { + default: + break; + case 'd': + switch(s[4]) { + default: + break; + case 'k': + if (strcmp("ey", s + 5) == 0) + return PIDX_CIPHER_PARAM_RANDOM_KEY; + break; + case 'o': + if (strcmp("m_data", s + 5) == 0) + return PIDX_DRBG_PARAM_RANDOM_DATA; + } + } + break; + case 'w': + if (strcmp("-bytes", s + 3) == 0) + return PIDX_SKEY_PARAM_RAW_BYTES; + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'a': + switch(s[3]) { + default: + break; + case 'd': + switch(s[4]) { + default: + break; + case '_': + switch(s[5]) { + default: + break; + case 'a': + if (strcmp("head", s + 6) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_READ_AHEAD; + break; + case 'b': + if (strcmp("uffer_len", s + 6) == 0) + return PIDX_LIBSSL_RECORD_LAYER_READ_BUFFER_LEN; + } + } + } + break; + case 'f': + if (strcmp("erence", s + 3) == 0) + return PIDX_OBJECT_PARAM_REFERENCE; + break; + case 's': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case 'e': + switch(s[5]) { + default: + break; + case 'd': + switch(s[6]) { + default: + break; + case '_': + switch(s[7]) { + default: + break; + case 'c': + if (strcmp("ounter", s + 8) == 0) + return PIDX_DRBG_PARAM_RESEED_COUNTER; + break; + case 'r': + if (strcmp("equests", s + 8) == 0) + return PIDX_DRBG_PARAM_RESEED_REQUESTS; + break; + case 't': + switch(s[8]) { + default: + break; + case 'i': + switch(s[9]) { + default: + break; + case 'm': + switch(s[10]) { + default: + break; + case 'e': + switch(s[11]) { + default: + break; + case '_': + if (strcmp("interval", s + 12) == 0) + return PIDX_DRBG_PARAM_RESEED_TIME_INTERVAL; + break; + case '\0': + return PIDX_DRBG_PARAM_RESEED_TIME; + } + } + } + } + } + } + } + } + } + } + break; + case 'o': + if (strcmp("unds", s + 2) == 0) + return PIDX_CIPHER_PARAM_ROUNDS; + break; + case 's': + switch(s[2]) { + default: + break; + case 'a': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'c': + switch(s[5]) { + default: + break; + case 'o': + switch(s[6]) { + default: + break; + case 'e': + switch(s[7]) { + default: + break; + case 'f': + switch(s[8]) { + default: + break; + case 'f': + switch(s[9]) { + default: + break; + case 'i': + switch(s[10]) { + default: + break; + case 'c': + switch(s[11]) { + default: + break; + case 'i': + switch(s[12]) { + default: + break; + case 'e': + switch(s[13]) { + default: + break; + case 'n': + switch(s[14]) { + default: + break; + case 't': + switch(s[15]) { + default: + break; + case '1': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT1; + } + break; + case '2': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT2; + } + break; + case '3': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT3; + } + break; + case '4': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT4; + } + break; + case '5': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT5; + } + break; + case '6': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT6; + } + break; + case '7': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT7; + } + break; + case '8': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT8; + } + break; + case '9': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT9; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT; + } + } + } + } + } + } + } + } + } + } + } + break; + case 'd': + if (strcmp("erive-from-pq", s + 5) == 0) + return PIDX_PKEY_PARAM_RSA_DERIVE_FROM_PQ; + break; + case 'e': + switch(s[5]) { + default: + break; + case 'x': + switch(s[6]) { + default: + break; + case 'p': + switch(s[7]) { + default: + break; + case 'o': + switch(s[8]) { + default: + break; + case 'n': + switch(s[9]) { + default: + break; + case 'e': + switch(s[10]) { + default: + break; + case 'n': + switch(s[11]) { + default: + break; + case 't': + switch(s[12]) { + default: + break; + case '1': + switch(s[13]) { + default: + break; + case '0': + switch(s[14]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT10; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT1; + } + break; + case '2': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT2; + } + break; + case '3': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT3; + } + break; + case '4': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT4; + } + break; + case '5': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT5; + } + break; + case '6': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT6; + } + break; + case '7': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT7; + } + break; + case '8': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT8; + } + break; + case '9': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT9; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT; + } + } + } + } + } + } + } + } + break; + case 'f': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case 'c': + switch(s[7]) { + default: + break; + case 't': + switch(s[8]) { + default: + break; + case 'o': + switch(s[9]) { + default: + break; + case 'r': + switch(s[10]) { + default: + break; + case '1': + switch(s[11]) { + default: + break; + case '0': + switch(s[12]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR10; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR1; + } + break; + case '2': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR2; + } + break; + case '3': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR3; + } + break; + case '4': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR4; + } + break; + case '5': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR5; + } + break; + case '6': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR6; + } + break; + case '7': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR7; + } + break; + case '8': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR8; + } + break; + case '9': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR9; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR; + } + } + } + } + } + } + break; + case 'p': + switch(s[5]) { + default: + break; + case 'k': + if (strcmp("cs15-pad-disabled", s + 6) == 0) + return PIDX_PROV_PARAM_RSA_PKCS15_PAD_DISABLED; + break; + case 's': + if (strcmp("s-saltlen-check", s + 6) == 0) + return PIDX_SIGNATURE_PARAM_FIPS_RSA_PSS_SALTLEN_CHECK; + } + break; + case 's': + if (strcmp("ign-x931-pad-disabled", s + 5) == 0) + return PIDX_PROV_PARAM_RSA_SIGN_X931_PAD_DISABLED; + } + } + } + break; + case '\0': + return PIDX_KDF_PARAM_SCRYPT_R; + } + break; + case 's': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'f': + if (strcmp("eprime-generator", s + 3) == 0) + return PIDX_PKEY_PARAM_DH_GENERATOR; + break; + case 'l': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case 'l': + if (strcmp("en", s + 5) == 0) + return PIDX_SIGNATURE_PARAM_PSS_SALTLEN; + break; + case '\0': + return PIDX_MAC_PARAM_SALT; + } + } + break; + case 'v': + if (strcmp("e-parameters", s + 3) == 0) + return PIDX_ENCODER_PARAM_SAVE_PARAMETERS; + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'c': + switch(s[3]) { + default: + break; + case 'r': + if (strcmp("et", s + 4) == 0) + return PIDX_KDF_PARAM_SECRET; + break; + case 'u': + switch(s[4]) { + default: + break; + case 'r': + switch(s[5]) { + default: + break; + case 'i': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case 'y': + switch(s[8]) { + default: + break; + case '-': + switch(s[9]) { + default: + break; + case 'b': + if (strcmp("its", s + 10) == 0) + return PIDX_PKEY_PARAM_SECURITY_BITS; + break; + case 'c': + if (strcmp("hecks", s + 10) == 0) + return PIDX_PROV_PARAM_SECURITY_CHECKS; + } + } + } + } + } + } + } + break; + case 'e': + if (strcmp("d", s + 3) == 0) + return PIDX_PKEY_PARAM_SLH_DSA_SEED; + break; + case 'r': + if (strcmp("ial", s + 3) == 0) + return PIDX_STORE_PARAM_SERIAL; + break; + case 's': + if (strcmp("sion_id", s + 3) == 0) + return PIDX_KDF_PARAM_SSHKDF_SESSION_ID; + } + break; + case 'i': + switch(s[2]) { + default: + break; + case 'g': + switch(s[3]) { + default: + break; + case 'n': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'c': + if (strcmp("heck", s + 6) == 0) + return PIDX_PKEY_PARAM_FIPS_SIGN_CHECK; + break; + case 'x': + if (strcmp("931-pad-check", s + 6) == 0) + return PIDX_SIGNATURE_PARAM_FIPS_SIGN_X931_PAD_CHECK; + } + break; + case 'a': + switch(s[5]) { + default: + break; + case 't': + switch(s[6]) { + default: + break; + case 'u': + switch(s[7]) { + default: + break; + case 'r': + switch(s[8]) { + default: + break; + case 'e': + switch(s[9]) { + default: + break; + case '-': + if (strcmp("digest-check", s + 10) == 0) + return PIDX_PROV_PARAM_SIGNATURE_DIGEST_CHECK; + break; + case '\0': + return PIDX_SIGNATURE_PARAM_SIGNATURE; + } + } + } + } + } + } + } + break; + case 'z': + if (strcmp("e", s + 3) == 0) + return PIDX_MAC_PARAM_SIZE; + } + break; + case 'p': + if (strcmp("eed", s + 2) == 0) + return PIDX_CIPHER_PARAM_SPEED; + break; + case 's': + switch(s[2]) { + default: + break; + case 'h': + switch(s[3]) { + default: + break; + case 'k': + switch(s[4]) { + default: + break; + case 'd': + switch(s[5]) { + default: + break; + case 'f': + switch(s[6]) { + default: + break; + case '-': + switch(s[7]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 8) == 0) + return PIDX_PROV_PARAM_SSHKDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 8) == 0) + return PIDX_PROV_PARAM_SSHKDF_KEY_CHECK; + } + } + } + } + } + break; + case 'k': + switch(s[3]) { + default: + break; + case 'd': + switch(s[4]) { + default: + break; + case 'f': + switch(s[5]) { + default: + break; + case '-': + switch(s[6]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 7) == 0) + return PIDX_PROV_PARAM_SSKDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 7) == 0) + return PIDX_PROV_PARAM_SSKDF_KEY_CHECK; + } + } + } + } + break; + case 'l': + if (strcmp("3-ms", s + 3) == 0) + return PIDX_DIGEST_PARAM_SSL3_MS; + } + break; + case 't': + switch(s[2]) { + default: + break; + case '-': + switch(s[3]) { + default: + break; + case 'd': + if (strcmp("esc", s + 4) == 0) + return PIDX_PROV_PARAM_SELF_TEST_DESC; + break; + case 'p': + if (strcmp("hase", s + 4) == 0) + return PIDX_PROV_PARAM_SELF_TEST_PHASE; + break; + case 't': + if (strcmp("ype", s + 4) == 0) + return PIDX_PROV_PARAM_SELF_TEST_TYPE; + } + break; + case 'a': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case 'e': + switch(s[5]) { + default: + break; + case '\0': + return PIDX_RAND_PARAM_STATE; + } + break; + case 'u': + if (strcmp("s", s + 5) == 0) + return PIDX_PROV_PARAM_STATUS; + } + } + break; + case 'r': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case 'a': + if (strcmp("m_mac", s + 5) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_STREAM_MAC; + break; + case 'n': + if (strcmp("gth", s + 5) == 0) + return PIDX_RAND_PARAM_STRENGTH; + } + } + } + break; + case 'u': + switch(s[2]) { + default: + break; + case 'b': + if (strcmp("ject", s + 3) == 0) + return PIDX_STORE_PARAM_SUBJECT; + break; + case 'p': + switch(s[3]) { + default: + break; + case 'p': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'p': + switch(s[6]) { + default: + break; + case 'r': + if (strcmp("ivinfo", s + 7) == 0) + return PIDX_KDF_PARAM_X942_SUPP_PRIVINFO; + break; + case 'u': + if (strcmp("binfo", s + 7) == 0) + return PIDX_KDF_PARAM_X942_SUPP_PUBINFO; + } + } + } + } + } + } + break; + case 't': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'g': + switch(s[3]) { + default: + break; + case 'l': + if (strcmp("en", s + 4) == 0) + return PIDX_CIPHER_PARAM_AEAD_TAGLEN; + break; + case '\0': + return PIDX_CIPHER_PARAM_AEAD_TAG; + } + } + break; + case 'd': + if (strcmp("es-encrypt-disabled", s + 2) == 0) + return PIDX_PROV_PARAM_TDES_ENCRYPT_DISABLED; + break; + case 'e': + switch(s[2]) { + default: + break; + case 's': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case '-': + if (strcmp("entropy", s + 5) == 0) + return PIDX_SIGNATURE_PARAM_TEST_ENTROPY; + break; + case '_': + switch(s[5]) { + default: + break; + case 'e': + if (strcmp("ntropy", s + 6) == 0) + return PIDX_RAND_PARAM_TEST_ENTROPY; + break; + case 'n': + if (strcmp("once", s + 6) == 0) + return PIDX_RAND_PARAM_TEST_NONCE; + } + } + } + } + break; + case 'h': + if (strcmp("reads", s + 2) == 0) + return PIDX_KDF_PARAM_THREADS; + break; + case 'l': + switch(s[2]) { + default: + break; + case 's': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'c': + if (strcmp("lient-version", s + 5) == 0) + return PIDX_ASYM_CIPHER_PARAM_TLS_CLIENT_VERSION; + break; + case 'd': + if (strcmp("ata-size", s + 5) == 0) + return PIDX_MAC_PARAM_TLS_DATA_SIZE; + break; + case 'g': + switch(s[5]) { + default: + break; + case 'r': + switch(s[6]) { + default: + break; + case 'o': + switch(s[7]) { + default: + break; + case 'u': + switch(s[8]) { + default: + break; + case 'p': + switch(s[9]) { + default: + break; + case '-': + switch(s[10]) { + default: + break; + case 'a': + if (strcmp("lg", s + 11) == 0) + return PIDX_CAPABILITY_TLS_GROUP_ALG; + break; + case 'i': + switch(s[11]) { + default: + break; + case 'd': + switch(s[12]) { + default: + break; + case '\0': + return PIDX_CAPABILITY_TLS_GROUP_ID; + } + break; + case 's': + if (strcmp("-kem", s + 12) == 0) + return PIDX_CAPABILITY_TLS_GROUP_IS_KEM; + } + break; + case 'n': + switch(s[11]) { + default: + break; + case 'a': + switch(s[12]) { + default: + break; + case 'm': + switch(s[13]) { + default: + break; + case 'e': + switch(s[14]) { + default: + break; + case '-': + if (strcmp("internal", s + 15) == 0) + return PIDX_CAPABILITY_TLS_GROUP_NAME_INTERNAL; + break; + case '\0': + return PIDX_CAPABILITY_TLS_GROUP_NAME; + } + } + } + } + break; + case 's': + if (strcmp("ec-bits", s + 11) == 0) + return PIDX_CAPABILITY_TLS_GROUP_SECURITY_BITS; + } + } + } + } + } + } + break; + case 'm': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case 'c': + switch(s[7]) { + default: + break; + case '-': + if (strcmp("size", s + 8) == 0) + return PIDX_CIPHER_PARAM_TLS_MAC_SIZE; + break; + case '\0': + return PIDX_CIPHER_PARAM_TLS_MAC; + } + break; + case 'x': + switch(s[7]) { + default: + break; + case '-': + switch(s[8]) { + default: + break; + case 'd': + if (strcmp("tls", s + 9) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_MAX_DTLS; + break; + case 't': + if (strcmp("ls", s + 9) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_MAX_TLS; + } + } + } + break; + case 'i': + switch(s[6]) { + default: + break; + case 'n': + switch(s[7]) { + default: + break; + case '-': + switch(s[8]) { + default: + break; + case 'd': + if (strcmp("tls", s + 9) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_MIN_DTLS; + break; + case 't': + if (strcmp("ls", s + 9) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_MIN_TLS; + } + } + } + break; + case 'u': + if (strcmp("lti", s + 6) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK; + } + break; + case 'n': + if (strcmp("egotiated-version", s + 5) == 0) + return PIDX_ASYM_CIPHER_PARAM_TLS_NEGOTIATED_VERSION; + break; + case 's': + switch(s[5]) { + default: + break; + case 'i': + switch(s[6]) { + default: + break; + case 'g': + switch(s[7]) { + default: + break; + case 'a': + switch(s[8]) { + default: + break; + case 'l': + switch(s[9]) { + default: + break; + case 'g': + switch(s[10]) { + default: + break; + case '-': + switch(s[11]) { + default: + break; + case 'c': + if (strcmp("ode-point", s + 12) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_CODE_POINT; + break; + case 'h': + switch(s[12]) { + default: + break; + case 'a': + switch(s[13]) { + default: + break; + case 's': + switch(s[14]) { + default: + break; + case 'h': + switch(s[15]) { + default: + break; + case '-': + switch(s[16]) { + default: + break; + case 'n': + if (strcmp("ame", s + 17) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_HASH_NAME; + break; + case 'o': + if (strcmp("id", s + 17) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_HASH_OID; + } + } + } + } + } + break; + case 'i': + if (strcmp("ana-name", s + 12) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_IANA_NAME; + break; + case 'k': + switch(s[12]) { + default: + break; + case 'e': + switch(s[13]) { + default: + break; + case 'y': + switch(s[14]) { + default: + break; + case 't': + switch(s[15]) { + default: + break; + case 'y': + switch(s[16]) { + default: + break; + case 'p': + switch(s[17]) { + default: + break; + case 'e': + switch(s[18]) { + default: + break; + case '-': + if (strcmp("oid", s + 19) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_KEYTYPE_OID; + break; + case '\0': + return PIDX_CAPABILITY_TLS_SIGALG_KEYTYPE; + } + } + } + } + } + } + } + break; + case 'n': + if (strcmp("ame", s + 12) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_NAME; + break; + case 'o': + if (strcmp("id", s + 12) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_OID; + break; + case 's': + switch(s[12]) { + default: + break; + case 'e': + if (strcmp("c-bits", s + 13) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_SECURITY_BITS; + break; + case 'i': + switch(s[13]) { + default: + break; + case 'g': + switch(s[14]) { + default: + break; + case '-': + switch(s[15]) { + default: + break; + case 'n': + if (strcmp("ame", s + 16) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_SIG_NAME; + break; + case 'o': + if (strcmp("id", s + 16) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_SIG_OID; + } + } + } + } + } + } + } + } + } + } + } + break; + case 'v': + if (strcmp("ersion", s + 5) == 0) + return PIDX_CIPHER_PARAM_TLS_VERSION; + } + break; + case '1': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'p': + switch(s[6]) { + default: + break; + case 'r': + switch(s[7]) { + default: + break; + case 'f': + switch(s[8]) { + default: + break; + case '-': + switch(s[9]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 10) == 0) + return PIDX_PROV_PARAM_TLS1_PRF_DIGEST_CHECK; + break; + case 'e': + if (strcmp("ms-check", s + 10) == 0) + return PIDX_PROV_PARAM_TLS1_PRF_EMS_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 10) == 0) + return PIDX_PROV_PARAM_TLS1_PRF_KEY_CHECK; + } + } + } + } + } + break; + case '3': + switch(s[5]) { + default: + break; + case '-': + switch(s[6]) { + default: + break; + case 'k': + switch(s[7]) { + default: + break; + case 'd': + switch(s[8]) { + default: + break; + case 'f': + switch(s[9]) { + default: + break; + case '-': + switch(s[10]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 11) == 0) + return PIDX_PROV_PARAM_TLS13_KDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 11) == 0) + return PIDX_PROV_PARAM_TLS13_KDF_KEY_CHECK; + } + } + } + } + } + } + break; + case 'm': + switch(s[5]) { + default: + break; + case 'u': + switch(s[6]) { + default: + break; + case 'l': + switch(s[7]) { + default: + break; + case 't': + switch(s[8]) { + default: + break; + case 'i': + switch(s[9]) { + default: + break; + case '_': + switch(s[10]) { + default: + break; + case 'a': + switch(s[11]) { + default: + break; + case 'a': + switch(s[12]) { + default: + break; + case 'd': + switch(s[13]) { + default: + break; + case 'p': + if (strcmp("acklen", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD_PACKLEN; + break; + case '\0': + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD; + } + } + } + break; + case 'e': + switch(s[11]) { + default: + break; + case 'n': + switch(s[12]) { + default: + break; + case 'c': + switch(s[13]) { + default: + break; + case 'i': + if (strcmp("n", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_IN; + break; + case 'l': + if (strcmp("en", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_LEN; + break; + case '\0': + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC; + } + } + } + break; + case 'i': + if (strcmp("nterleave", s + 11) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_INTERLEAVE; + break; + case 'm': + switch(s[11]) { + default: + break; + case 'a': + switch(s[12]) { + default: + break; + case 'x': + switch(s[13]) { + default: + break; + case 'b': + if (strcmp("ufsz", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_BUFSIZE; + break; + case 's': + if (strcmp("ndfrag", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_SEND_FRAGMENT; + } + } + } + } + } + } + } + } + } + } + break; + case 'a': + switch(s[4]) { + default: + break; + case 'a': + switch(s[5]) { + default: + break; + case 'd': + switch(s[6]) { + default: + break; + case 'p': + if (strcmp("ad", s + 7) == 0) + return PIDX_CIPHER_PARAM_AEAD_TLS1_AAD_PAD; + break; + case '\0': + return PIDX_CIPHER_PARAM_AEAD_TLS1_AAD; + } + } + } + break; + case 'i': + switch(s[4]) { + default: + break; + case 'v': + switch(s[5]) { + default: + break; + case 'f': + if (strcmp("ixed", s + 6) == 0) + return PIDX_CIPHER_PARAM_AEAD_TLS1_IV_FIXED; + break; + case 'g': + if (strcmp("en", s + 6) == 0) + return PIDX_CIPHER_PARAM_AEAD_TLS1_GET_IV_GEN; + break; + case 'i': + if (strcmp("nv", s + 6) == 0) + return PIDX_CIPHER_PARAM_AEAD_TLS1_SET_IV_INV; + } + } + break; + case 't': + if (strcmp("ree", s + 4) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_TLSTREE; + } + } + break; + case 'p': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_TP_BASIS; + } + break; + case 'y': + if (strcmp("pe", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_TYPE; + } + break; + case 'u': + switch(s[1]) { + default: + break; + case 'k': + if (strcmp("m", s + 2) == 0) + return PIDX_KDF_PARAM_UKM; + break; + case 'p': + if (strcmp("dated-iv", s + 2) == 0) + return PIDX_CIPHER_PARAM_UPDATED_IV; + break; + case 's': + switch(s[2]) { + default: + break; + case 'e': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'b': + if (strcmp("its", s + 5) == 0) + return PIDX_CIPHER_PARAM_USE_BITS; + break; + case 'c': + if (strcmp("ofactor-flag", s + 5) == 0) + return PIDX_PKEY_PARAM_USE_COFACTOR_FLAG; + break; + case 'k': + if (strcmp("eybits", s + 5) == 0) + return PIDX_KDF_PARAM_X942_USE_KEYBITS; + break; + case 'l': + switch(s[5]) { + default: + break; + case '\0': + return PIDX_KDF_PARAM_KBKDF_USE_L; + } + break; + case 's': + if (strcmp("eparator", s + 5) == 0) + return PIDX_KDF_PARAM_KBKDF_USE_SEPARATOR; + } + break; + case '_': + switch(s[4]) { + default: + break; + case 'd': + if (strcmp("erivation_function", s + 5) == 0) + return PIDX_DRBG_PARAM_USE_DF; + break; + case 'e': + if (strcmp("tm", s + 5) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_USE_ETM; + } + } + } + } + break; + case 'v': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'l': + switch(s[3]) { + default: + break; + case 'i': + switch(s[4]) { + default: + break; + case 'd': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case 'e': + switch(s[8]) { + default: + break; + case '-': + switch(s[9]) { + default: + break; + case 'g': + switch(s[10]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_VALIDATE_G; + } + break; + case 'l': + if (strcmp("egacy", s + 10) == 0) + return PIDX_PKEY_PARAM_FFC_VALIDATE_LEGACY; + break; + case 'p': + if (strcmp("q", s + 10) == 0) + return PIDX_PKEY_PARAM_FFC_VALIDATE_PQ; + } + } + } + } + } + } + } + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'r': + switch(s[3]) { + default: + break; + case 'i': + if (strcmp("fy-message", s + 4) == 0) + return PIDX_SIGNATURE_PARAM_FIPS_VERIFY_MESSAGE; + break; + case 's': + if (strcmp("ion", s + 4) == 0) + return PIDX_PROV_PARAM_VERSION; + } + } + } + break; + case 'x': + switch(s[1]) { + default: + break; + case '9': + switch(s[2]) { + default: + break; + case '4': + if (strcmp("2kdf-key-check", s + 3) == 0) + return PIDX_PROV_PARAM_X942KDF_KEY_CHECK; + break; + case '6': + switch(s[3]) { + default: + break; + case '3': + switch(s[4]) { + default: + break; + case 'k': + switch(s[5]) { + default: + break; + case 'd': + switch(s[6]) { + default: + break; + case 'f': + switch(s[7]) { + default: + break; + case '-': + switch(s[8]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 9) == 0) + return PIDX_PROV_PARAM_X963KDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 9) == 0) + return PIDX_PROV_PARAM_X963KDF_KEY_CHECK; + } + } + } + } + } + } + } + break; + case 'c': + if (strcmp("ghash", s + 2) == 0) + return PIDX_KDF_PARAM_SSHKDF_XCGHASH; + break; + case 'o': + switch(s[2]) { + default: + break; + case 'f': + switch(s[3]) { + default: + break; + case 'l': + if (strcmp("en", s + 4) == 0) + return PIDX_DIGEST_PARAM_XOFLEN; + break; + case '\0': + return PIDX_MAC_PARAM_XOF; + } + } + break; + case 'p': + switch(s[2]) { + default: + break; + case '1': + switch(s[3]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XP1; + } + break; + case '2': + switch(s[3]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XP2; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XP; + } + break; + case 'q': + switch(s[2]) { + default: + break; + case '1': + switch(s[3]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XQ1; + } + break; + case '2': + switch(s[3]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XQ2; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XQ; + } + break; + case 't': + if (strcmp("s_standard", s + 2) == 0) + return PIDX_CIPHER_PARAM_XTS_STANDARD; + } + } + return -1; +} + +/* End of TRIE */ diff --git a/deps/openssl/config/archs/linux-aarch64/asm/crypto/poly1305/poly1305-armv8.S b/deps/openssl/config/archs/linux-aarch64/asm/crypto/poly1305/poly1305-armv8.S index 98ebf48535e5e9..edf9679a11d45b 100644 --- a/deps/openssl/config/archs/linux-aarch64/asm/crypto/poly1305/poly1305-armv8.S +++ b/deps/openssl/config/archs/linux-aarch64/asm/crypto/poly1305/poly1305-armv8.S @@ -15,6 +15,7 @@ .type poly1305_init,%function .align 5 poly1305_init: + AARCH64_VALID_CALL_TARGET cmp x1,xzr stp xzr,xzr,[x0] // zero hash value stp xzr,xzr,[x0,#16] // [along with is_base2_26] @@ -39,10 +40,14 @@ poly1305_init: tst w17,#ARMV7_NEON - adr x12,.Lpoly1305_blocks - adr x7,.Lpoly1305_blocks_neon - adr x13,.Lpoly1305_emit - adr x8,.Lpoly1305_emit_neon + adrp x12,poly1305_blocks + add x12,x12,#:lo12:.Lpoly1305_blocks + adrp x7,poly1305_blocks_neon + add x7,x7,#:lo12:.Lpoly1305_blocks_neon + adrp x13,poly1305_emit + add x13,x13,#:lo12:.Lpoly1305_emit + adrp x8,poly1305_emit_neon + add x8,x8,#:lo12:.Lpoly1305_emit_neon csel x12,x12,x7,eq csel x13,x13,x8,eq @@ -62,6 +67,9 @@ poly1305_init: .align 5 poly1305_blocks: .Lpoly1305_blocks: + // The symbol .Lpoly1305_blocks is not a .globl symbol + // but a pointer to it is returned by poly1305_init + AARCH64_VALID_CALL_TARGET ands x2,x2,#-16 b.eq .Lno_data @@ -127,6 +135,9 @@ poly1305_blocks: .align 5 poly1305_emit: .Lpoly1305_emit: + // The symbol .poly1305_emit is not a .globl symbol + // but a pointer to it is returned by poly1305_init + AARCH64_VALID_CALL_TARGET ldp x4,x5,[x0] // load hash base 2^64 ldr x6,[x0,#16] ldp x10,x11,[x2] // load nonce @@ -222,13 +233,16 @@ poly1305_splat: .align 5 poly1305_blocks_neon: .Lpoly1305_blocks_neon: + // The symbol .Lpoly1305_blocks_neon is not a .globl symbol + // but a pointer to it is returned by poly1305_init + AARCH64_VALID_CALL_TARGET ldr x17,[x0,#24] cmp x2,#128 b.hs .Lblocks_neon cbz x17,.Lpoly1305_blocks .Lblocks_neon: -.inst 0xd503233f // paciasp + AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-80]! add x29,sp,#0 @@ -363,7 +377,8 @@ poly1305_blocks_neon: ldr x30,[sp,#8] add x16,x1,#32 - adr x17,.Lzeros + adrp x17,.Lzeros + add x17,x17,#:lo12:.Lzeros subs x2,x2,#64 csel x16,x17,x16,lo @@ -375,7 +390,8 @@ poly1305_blocks_neon: .align 4 .Leven_neon: add x16,x1,#32 - adr x17,.Lzeros + adrp x17,.Lzeros + add x17,x17,#:lo12:.Lzeros subs x2,x2,#64 csel x16,x17,x16,lo @@ -798,7 +814,7 @@ poly1305_blocks_neon: .Lno_data_neon: ldr x29,[sp],#80 -.inst 0xd50323bf // autiasp + AARCH64_VALIDATE_LINK_REGISTER ret .size poly1305_blocks_neon,.-poly1305_blocks_neon @@ -806,6 +822,9 @@ poly1305_blocks_neon: .align 5 poly1305_emit_neon: .Lpoly1305_emit_neon: + // The symbol .Lpoly1305_emit_neon is not a .globl symbol + // but a pointer to it is returned by poly1305_init + AARCH64_VALID_CALL_TARGET ldr x17,[x0,#24] cbz x17,poly1305_emit @@ -855,6 +874,8 @@ poly1305_emit_neon: ret .size poly1305_emit_neon,.-poly1305_emit_neon +.section .rodata + .align 5 .Lzeros: .long 0,0,0,0,0,0,0,0 diff --git a/deps/openssl/config/archs/linux-aarch64/asm/crypto/sha/keccak1600-armv8.S b/deps/openssl/config/archs/linux-aarch64/asm/crypto/sha/keccak1600-armv8.S index 3a3385e285802c..8b6b5d0b799f5d 100644 --- a/deps/openssl/config/archs/linux-aarch64/asm/crypto/sha/keccak1600-armv8.S +++ b/deps/openssl/config/archs/linux-aarch64/asm/crypto/sha/keccak1600-armv8.S @@ -1,4 +1,6 @@ -.text +#include "arm_arch.h" + +.section .rodata .align 8 // strategic alignment and padding that allows to use // address value as loop termination condition... @@ -30,11 +32,14 @@ iotas: .quad 0x0000000080000001 .quad 0x8000000080008008 .size iotas,.-iotas +.text + .type KeccakF1600_int,%function .align 5 KeccakF1600_int: - adr x28,iotas -.inst 0xd503233f // paciasp + AARCH64_SIGN_LINK_REGISTER + adrp x28,iotas + add x28,x28,#:lo12:iotas stp x28,x30,[sp,#16] // 32 bytes on top are mine b .Loop .align 4 @@ -198,14 +203,14 @@ KeccakF1600_int: bne .Loop ldr x30,[sp,#24] -.inst 0xd50323bf // autiasp + AARCH64_VALIDATE_LINK_REGISTER ret .size KeccakF1600_int,.-KeccakF1600_int .type KeccakF1600,%function .align 5 KeccakF1600: -.inst 0xd503233f // paciasp + AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-128]! add x29,sp,#0 stp x19,x20,[sp,#16] @@ -255,7 +260,7 @@ KeccakF1600: ldp x25,x26,[x29,#64] ldp x27,x28,[x29,#80] ldp x29,x30,[sp],#128 -.inst 0xd50323bf // autiasp + AARCH64_VALIDATE_LINK_REGISTER ret .size KeccakF1600,.-KeccakF1600 @@ -263,7 +268,7 @@ KeccakF1600: .type SHA3_absorb,%function .align 5 SHA3_absorb: -.inst 0xd503233f // paciasp + AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-128]! add x29,sp,#0 stp x19,x20,[sp,#16] @@ -497,14 +502,14 @@ SHA3_absorb: ldp x25,x26,[x29,#64] ldp x27,x28,[x29,#80] ldp x29,x30,[sp],#128 -.inst 0xd50323bf // autiasp + AARCH64_VALIDATE_LINK_REGISTER ret .size SHA3_absorb,.-SHA3_absorb .globl SHA3_squeeze .type SHA3_squeeze,%function .align 5 SHA3_squeeze: -.inst 0xd503233f // paciasp + AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-48]! add x29,sp,#0 stp x19,x20,[sp,#16] @@ -514,6 +519,8 @@ SHA3_squeeze: mov x20,x1 mov x21,x2 mov x22,x3 + cmp w4, #0 // w4 = 'next' argument + bne .Lnext_block .Loop_squeeze: ldr x4,[x0],#8 @@ -528,7 +535,7 @@ SHA3_squeeze: subs x3,x3,#8 bhi .Loop_squeeze - +.Lnext_block: mov x0,x19 bl KeccakF1600 mov x0,x19 @@ -567,14 +574,15 @@ SHA3_squeeze: ldp x19,x20,[sp,#16] ldp x21,x22,[sp,#32] ldp x29,x30,[sp],#48 -.inst 0xd50323bf // autiasp + AARCH64_VALIDATE_LINK_REGISTER ret .size SHA3_squeeze,.-SHA3_squeeze .type KeccakF1600_ce,%function .align 5 KeccakF1600_ce: mov x9,#24 - adr x10,iotas + adrp x10,iotas + add x10,x10,#:lo12:iotas b .Loop_ce .align 4 .Loop_ce: @@ -675,7 +683,7 @@ KeccakF1600_ce: .type KeccakF1600_cext,%function .align 5 KeccakF1600_cext: -.inst 0xd503233f // paciasp + AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-80]! add x29,sp,#0 stp d8,d9,[sp,#16] // per ABI requirement @@ -716,14 +724,14 @@ KeccakF1600_cext: ldp d12,d13,[sp,#48] ldp d14,d15,[sp,#64] ldr x29,[sp],#80 -.inst 0xd50323bf // autiasp + AARCH64_VALIDATE_LINK_REGISTER ret .size KeccakF1600_cext,.-KeccakF1600_cext .globl SHA3_absorb_cext .type SHA3_absorb_cext,%function .align 5 SHA3_absorb_cext: -.inst 0xd503233f // paciasp + AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-80]! add x29,sp,#0 stp d8,d9,[sp,#16] // per ABI requirement @@ -939,14 +947,14 @@ SHA3_absorb_cext: ldp d12,d13,[sp,#48] ldp d14,d15,[sp,#64] ldp x29,x30,[sp],#80 -.inst 0xd50323bf // autiasp + AARCH64_VALIDATE_LINK_REGISTER ret .size SHA3_absorb_cext,.-SHA3_absorb_cext .globl SHA3_squeeze_cext .type SHA3_squeeze_cext,%function .align 5 SHA3_squeeze_cext: -.inst 0xd503233f // paciasp + AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-16]! add x29,sp,#0 mov x9,x0 @@ -1002,7 +1010,7 @@ SHA3_squeeze_cext: .Lsqueeze_done_ce: ldr x29,[sp],#16 -.inst 0xd50323bf // autiasp + AARCH64_VALIDATE_LINK_REGISTER ret .size SHA3_squeeze_cext,.-SHA3_squeeze_cext .byte 75,101,99,99,97,107,45,49,54,48,48,32,97,98,115,111,114,98,32,97,110,100,32,115,113,117,101,101,122,101,32,102,111,114,32,65,82,77,118,56,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 diff --git a/deps/openssl/config/archs/linux-aarch64/asm/crypto/sha/sha1-armv8.S b/deps/openssl/config/archs/linux-aarch64/asm/crypto/sha/sha1-armv8.S index a3cb53020a00c7..365bfd164a1c85 100644 --- a/deps/openssl/config/archs/linux-aarch64/asm/crypto/sha/sha1-armv8.S +++ b/deps/openssl/config/archs/linux-aarch64/asm/crypto/sha/sha1-armv8.S @@ -1,5 +1,5 @@ +#include "arm_arch.h" #ifndef __KERNEL__ -# include "arm_arch.h" .hidden OPENSSL_armcap_P #endif @@ -10,11 +10,13 @@ .type sha1_block_data_order,%function .align 6 sha1_block_data_order: + AARCH64_VALID_CALL_TARGET adrp x16,OPENSSL_armcap_P ldr w16,[x16,#:lo12:OPENSSL_armcap_P] tst w16,#ARMV8_SHA1 b.ne .Lv8_entry + // Armv8.3-A PAuth: even though x30 is pushed to stack it is not popped later. stp x29,x30,[sp,#-96]! add x29,sp,#0 stp x19,x20,[sp,#16] @@ -1074,10 +1076,12 @@ sha1_block_data_order: .align 6 sha1_block_armv8: .Lv8_entry: + // Armv8.3-A PAuth: even though x30 is pushed to stack it is not popped later. stp x29,x30,[sp,#-16]! add x29,sp,#0 - adr x4,.Lconst + adrp x4,.Lconst + add x4,x4,#:lo12:.Lconst eor v1.16b,v1.16b,v1.16b ld1 {v0.4s},[x0],#16 ld1 {v1.s}[0],[x0] @@ -1200,6 +1204,9 @@ sha1_block_armv8: ldr x29,[sp],#16 ret .size sha1_block_armv8,.-sha1_block_armv8 + +.section .rodata + .align 6 .Lconst: .long 0x5a827999,0x5a827999,0x5a827999,0x5a827999 //K_00_19 diff --git a/deps/openssl/config/archs/linux-aarch64/asm/crypto/sha/sha256-armv8.S b/deps/openssl/config/archs/linux-aarch64/asm/crypto/sha/sha256-armv8.S index e0965b668ddc2b..385242dab979c8 100644 --- a/deps/openssl/config/archs/linux-aarch64/asm/crypto/sha/sha256-armv8.S +++ b/deps/openssl/config/archs/linux-aarch64/asm/crypto/sha/sha256-armv8.S @@ -1,4 +1,4 @@ -// Copyright 2014-2020 The OpenSSL Project Authors. All Rights Reserved. +// Copyright 2014-2025 The OpenSSL Project Authors. All Rights Reserved. // // Licensed under the Apache License 2.0 (the "License"). You may not use // this file except in compliance with the License. You can obtain a copy @@ -55,8 +55,8 @@ // $output is the last argument if it looks like a file (it has an extension) // $flavour is the first argument if it doesn't look like a file +#include "arm_arch.h" #ifndef __KERNEL__ -# include "arm_arch.h" .hidden OPENSSL_armcap_P #endif @@ -67,6 +67,7 @@ .type sha256_block_data_order,%function .align 6 sha256_block_data_order: + AARCH64_VALID_CALL_TARGET #ifndef __KERNEL__ adrp x16,OPENSSL_armcap_P ldr w16,[x16,#:lo12:OPENSSL_armcap_P] @@ -75,7 +76,7 @@ sha256_block_data_order: tst w16,#ARMV7_NEON b.ne .Lneon_entry #endif -.inst 0xd503233f // paciasp + AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-128]! add x29,sp,#0 @@ -91,7 +92,8 @@ sha256_block_data_order: ldp w24,w25,[x0,#4*4] add x2,x1,x2,lsl#6 // end of input ldp w26,w27,[x0,#6*4] - adr x30,.LK256 + adrp x30,.LK256 + add x30,x30,#:lo12:.LK256 stp x0,x2,[x29,#96] .Loop: @@ -1035,10 +1037,12 @@ sha256_block_data_order: ldp x25,x26,[x29,#64] ldp x27,x28,[x29,#80] ldp x29,x30,[sp],#128 -.inst 0xd50323bf // autiasp + AARCH64_VALIDATE_LINK_REGISTER ret .size sha256_block_data_order,.-sha256_block_data_order +.section .rodata + .align 6 .type .LK256,%object .LK256: @@ -1063,16 +1067,20 @@ sha256_block_data_order: .byte 83,72,65,50,53,54,32,98,108,111,99,107,32,116,114,97,110,115,102,111,114,109,32,102,111,114,32,65,82,77,118,56,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 .align 2 .align 2 + +.text #ifndef __KERNEL__ .type sha256_block_armv8,%function .align 6 sha256_block_armv8: .Lv8_entry: + // Armv8.3-A PAuth: even though x30 is pushed to stack it is not popped later. stp x29,x30,[sp,#-16]! add x29,sp,#0 ld1 {v0.4s,v1.4s},[x0] - adr x3,.LK256 + adrp x3,.LK256 + add x3,x3,#:lo12:.LK256 .Loop_hw: ld1 {v4.16b,v5.16b,v6.16b,v7.16b},[x1],#64 @@ -1209,12 +1217,15 @@ sha256_block_armv8: .type sha256_block_neon,%function .align 4 sha256_block_neon: + AARCH64_VALID_CALL_TARGET .Lneon_entry: + // Armv8.3-A PAuth: even though x30 is pushed to stack it is not popped later stp x29, x30, [sp, #-16]! mov x29, sp sub sp,sp,#16*4 - adr x16,.LK256 + adrp x16,.LK256 + add x16,x16,#:lo12:.LK256 add x2,x1,x2,lsl#6 // len to point at the end of inp ld1 {v0.16b},[x1], #16 diff --git a/deps/openssl/config/archs/linux-aarch64/asm/crypto/sha/sha512-armv8.S b/deps/openssl/config/archs/linux-aarch64/asm/crypto/sha/sha512-armv8.S index 79914442633bc5..29c38b0bb07540 100644 --- a/deps/openssl/config/archs/linux-aarch64/asm/crypto/sha/sha512-armv8.S +++ b/deps/openssl/config/archs/linux-aarch64/asm/crypto/sha/sha512-armv8.S @@ -1,4 +1,4 @@ -// Copyright 2014-2020 The OpenSSL Project Authors. All Rights Reserved. +// Copyright 2014-2025 The OpenSSL Project Authors. All Rights Reserved. // // Licensed under the Apache License 2.0 (the "License"). You may not use // this file except in compliance with the License. You can obtain a copy @@ -55,8 +55,8 @@ // $output is the last argument if it looks like a file (it has an extension) // $flavour is the first argument if it doesn't look like a file +#include "arm_arch.h" #ifndef __KERNEL__ -# include "arm_arch.h" .hidden OPENSSL_armcap_P #endif @@ -67,13 +67,14 @@ .type sha512_block_data_order,%function .align 6 sha512_block_data_order: + AARCH64_VALID_CALL_TARGET #ifndef __KERNEL__ adrp x16,OPENSSL_armcap_P ldr w16,[x16,#:lo12:OPENSSL_armcap_P] tst w16,#ARMV8_SHA512 b.ne .Lv8_entry #endif -.inst 0xd503233f // paciasp + AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-128]! add x29,sp,#0 @@ -89,7 +90,8 @@ sha512_block_data_order: ldp x24,x25,[x0,#4*8] add x2,x1,x2,lsl#7 // end of input ldp x26,x27,[x0,#6*8] - adr x30,.LK512 + adrp x30,.LK512 + add x30,x30,#:lo12:.LK512 stp x0,x2,[x29,#96] .Loop: @@ -1033,10 +1035,12 @@ sha512_block_data_order: ldp x25,x26,[x29,#64] ldp x27,x28,[x29,#80] ldp x29,x30,[sp],#128 -.inst 0xd50323bf // autiasp + AARCH64_VALIDATE_LINK_REGISTER ret .size sha512_block_data_order,.-sha512_block_data_order +.section .rodata + .align 6 .type .LK512,%object .LK512: @@ -1085,11 +1089,14 @@ sha512_block_data_order: .byte 83,72,65,53,49,50,32,98,108,111,99,107,32,116,114,97,110,115,102,111,114,109,32,102,111,114,32,65,82,77,118,56,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 .align 2 .align 2 + +.text #ifndef __KERNEL__ .type sha512_block_armv8,%function .align 6 sha512_block_armv8: .Lv8_entry: + // Armv8.3-A PAuth: even though x30 is pushed to stack it is not popped later stp x29,x30,[sp,#-16]! add x29,sp,#0 @@ -1097,7 +1104,8 @@ sha512_block_armv8: ld1 {v20.16b,v21.16b,v22.16b,v23.16b},[x1],#64 ld1 {v0.2d,v1.2d,v2.2d,v3.2d},[x0] // load context - adr x3,.LK512 + adrp x3,.LK512 + add x3,x3,#:lo12:.LK512 rev64 v16.16b,v16.16b rev64 v17.16b,v17.16b diff --git a/deps/openssl/config/archs/linux-aarch64/asm/crypto/sm3/sm3-armv8.S b/deps/openssl/config/archs/linux-aarch64/asm/crypto/sm3/sm3-armv8.S new file mode 100644 index 00000000000000..5c6167e6f2508e --- /dev/null +++ b/deps/openssl/config/archs/linux-aarch64/asm/crypto/sm3/sm3-armv8.S @@ -0,0 +1,508 @@ +// Copyright 2021-2025 The OpenSSL Project Authors. All Rights Reserved. +// +// Licensed under the Apache License 2.0 (the "License"). You may not use +// this file except in compliance with the License. You can obtain a copy +// in the file LICENSE in the source distribution or at +// https://www.openssl.org/source/license.html +// +// This module implements support for Armv8 SM3 instructions + +// $output is the last argument if it looks like a file (it has an extension) +// $flavour is the first argument if it doesn't look like a file +#include "arm_arch.h" +.text +.globl ossl_hwsm3_block_data_order +.type ossl_hwsm3_block_data_order,%function +.align 5 +ossl_hwsm3_block_data_order: + AARCH64_VALID_CALL_TARGET + // load state + ld1 {v5.4s,v6.4s}, [x0] + rev64 v5.4s, v5.4s + rev64 v6.4s, v6.4s + ext v5.16b, v5.16b, v5.16b, #8 + ext v6.16b, v6.16b, v6.16b, #8 + adrp x8, .Tj + add x8, x8, #:lo12:.Tj + ldp s16, s17, [x8] + +.Loop: + // load input + ld1 {v0.4s,v1.4s,v2.4s,v3.4s}, [x1], #64 + sub w2, w2, #1 + + mov v18.16b, v5.16b + mov v19.16b, v6.16b + +#ifndef __AARCH64EB__ + rev32 v0.16b, v0.16b + rev32 v1.16b, v1.16b + rev32 v2.16b, v2.16b + rev32 v3.16b, v3.16b +#endif + + ext v20.16b, v16.16b, v16.16b, #4 + // s4 = w7 | w8 | w9 | w10 + ext v4.16b, v1.16b, v2.16b, #12 + // vtmp1 = w3 | w4 | w5 | w6 + ext v22.16b, v0.16b, v1.16b, #12 + // vtmp2 = w10 | w11 | w12 | w13 + ext v23.16b, v2.16b, v3.16b, #8 +.inst 0xce63c004 //sm3partw1 v4.4s, v0.4s, v3.4s +.inst 0xce76c6e4 //sm3partw2 v4.4s, v23.4s, v22.4s + eor v22.16b, v0.16b, v1.16b +.inst 0xce5418b7 //sm3ss1 v23.4s, v5.4s, v20.4s, v6.4s + shl v21.4s, v20.4s, #1 + sri v21.4s, v20.4s, #31 +.inst 0xce5682e5 //sm3tt1a v5.4s, v23.4s, v22.4s[0] +.inst 0xce408ae6 //sm3tt2a v6.4s, v23.4s, v0.4s[0] +.inst 0xce5518b7 //sm3ss1 v23.4s, v5.4s, v21.4s, v6.4s + shl v20.4s, v21.4s, #1 + sri v20.4s, v21.4s, #31 +.inst 0xce5692e5 //sm3tt1a v5.4s, v23.4s, v22.4s[1] +.inst 0xce409ae6 //sm3tt2a v6.4s, v23.4s, v0.4s[1] +.inst 0xce5418b7 //sm3ss1 v23.4s, v5.4s, v20.4s, v6.4s + shl v21.4s, v20.4s, #1 + sri v21.4s, v20.4s, #31 +.inst 0xce56a2e5 //sm3tt1a v5.4s, v23.4s, v22.4s[2] +.inst 0xce40aae6 //sm3tt2a v6.4s, v23.4s, v0.4s[2] +.inst 0xce5518b7 //sm3ss1 v23.4s, v5.4s, v21.4s, v6.4s + shl v20.4s, v21.4s, #1 + sri v20.4s, v21.4s, #31 +.inst 0xce56b2e5 //sm3tt1a v5.4s, v23.4s, v22.4s[3] +.inst 0xce40bae6 //sm3tt2a v6.4s, v23.4s, v0.4s[3] + // s4 = w7 | w8 | w9 | w10 + ext v0.16b, v2.16b, v3.16b, #12 + // vtmp1 = w3 | w4 | w5 | w6 + ext v22.16b, v1.16b, v2.16b, #12 + // vtmp2 = w10 | w11 | w12 | w13 + ext v23.16b, v3.16b, v4.16b, #8 +.inst 0xce64c020 //sm3partw1 v0.4s, v1.4s, v4.4s +.inst 0xce76c6e0 //sm3partw2 v0.4s, v23.4s, v22.4s + eor v22.16b, v1.16b, v2.16b +.inst 0xce5418b7 //sm3ss1 v23.4s, v5.4s, v20.4s, v6.4s + shl v21.4s, v20.4s, #1 + sri v21.4s, v20.4s, #31 +.inst 0xce5682e5 //sm3tt1a v5.4s, v23.4s, v22.4s[0] +.inst 0xce418ae6 //sm3tt2a v6.4s, v23.4s, v1.4s[0] +.inst 0xce5518b7 //sm3ss1 v23.4s, v5.4s, v21.4s, v6.4s + shl v20.4s, v21.4s, #1 + sri v20.4s, v21.4s, #31 +.inst 0xce5692e5 //sm3tt1a v5.4s, v23.4s, v22.4s[1] +.inst 0xce419ae6 //sm3tt2a v6.4s, v23.4s, v1.4s[1] +.inst 0xce5418b7 //sm3ss1 v23.4s, v5.4s, v20.4s, v6.4s + shl v21.4s, v20.4s, #1 + sri v21.4s, v20.4s, #31 +.inst 0xce56a2e5 //sm3tt1a v5.4s, v23.4s, v22.4s[2] +.inst 0xce41aae6 //sm3tt2a v6.4s, v23.4s, v1.4s[2] +.inst 0xce5518b7 //sm3ss1 v23.4s, v5.4s, v21.4s, v6.4s + shl v20.4s, v21.4s, #1 + sri v20.4s, v21.4s, #31 +.inst 0xce56b2e5 //sm3tt1a v5.4s, v23.4s, v22.4s[3] +.inst 0xce41bae6 //sm3tt2a v6.4s, v23.4s, v1.4s[3] + // s4 = w7 | w8 | w9 | w10 + ext v1.16b, v3.16b, v4.16b, #12 + // vtmp1 = w3 | w4 | w5 | w6 + ext v22.16b, v2.16b, v3.16b, #12 + // vtmp2 = w10 | w11 | w12 | w13 + ext v23.16b, v4.16b, v0.16b, #8 +.inst 0xce60c041 //sm3partw1 v1.4s, v2.4s, v0.4s +.inst 0xce76c6e1 //sm3partw2 v1.4s, v23.4s, v22.4s + eor v22.16b, v2.16b, v3.16b +.inst 0xce5418b7 //sm3ss1 v23.4s, v5.4s, v20.4s, v6.4s + shl v21.4s, v20.4s, #1 + sri v21.4s, v20.4s, #31 +.inst 0xce5682e5 //sm3tt1a v5.4s, v23.4s, v22.4s[0] +.inst 0xce428ae6 //sm3tt2a v6.4s, v23.4s, v2.4s[0] +.inst 0xce5518b7 //sm3ss1 v23.4s, v5.4s, v21.4s, v6.4s + shl v20.4s, v21.4s, #1 + sri v20.4s, v21.4s, #31 +.inst 0xce5692e5 //sm3tt1a v5.4s, v23.4s, v22.4s[1] +.inst 0xce429ae6 //sm3tt2a v6.4s, v23.4s, v2.4s[1] +.inst 0xce5418b7 //sm3ss1 v23.4s, v5.4s, v20.4s, v6.4s + shl v21.4s, v20.4s, #1 + sri v21.4s, v20.4s, #31 +.inst 0xce56a2e5 //sm3tt1a v5.4s, v23.4s, v22.4s[2] +.inst 0xce42aae6 //sm3tt2a v6.4s, v23.4s, v2.4s[2] +.inst 0xce5518b7 //sm3ss1 v23.4s, v5.4s, v21.4s, v6.4s + shl v20.4s, v21.4s, #1 + sri v20.4s, v21.4s, #31 +.inst 0xce56b2e5 //sm3tt1a v5.4s, v23.4s, v22.4s[3] +.inst 0xce42bae6 //sm3tt2a v6.4s, v23.4s, v2.4s[3] + // s4 = w7 | w8 | w9 | w10 + ext v2.16b, v4.16b, v0.16b, #12 + // vtmp1 = w3 | w4 | w5 | w6 + ext v22.16b, v3.16b, v4.16b, #12 + // vtmp2 = w10 | w11 | w12 | w13 + ext v23.16b, v0.16b, v1.16b, #8 +.inst 0xce61c062 //sm3partw1 v2.4s, v3.4s, v1.4s +.inst 0xce76c6e2 //sm3partw2 v2.4s, v23.4s, v22.4s + eor v22.16b, v3.16b, v4.16b +.inst 0xce5418b7 //sm3ss1 v23.4s, v5.4s, v20.4s, v6.4s + shl v21.4s, v20.4s, #1 + sri v21.4s, v20.4s, #31 +.inst 0xce5682e5 //sm3tt1a v5.4s, v23.4s, v22.4s[0] +.inst 0xce438ae6 //sm3tt2a v6.4s, v23.4s, v3.4s[0] +.inst 0xce5518b7 //sm3ss1 v23.4s, v5.4s, v21.4s, v6.4s + shl v20.4s, v21.4s, #1 + sri v20.4s, v21.4s, #31 +.inst 0xce5692e5 //sm3tt1a v5.4s, v23.4s, v22.4s[1] +.inst 0xce439ae6 //sm3tt2a v6.4s, v23.4s, v3.4s[1] +.inst 0xce5418b7 //sm3ss1 v23.4s, v5.4s, v20.4s, v6.4s + shl v21.4s, v20.4s, #1 + sri v21.4s, v20.4s, #31 +.inst 0xce56a2e5 //sm3tt1a v5.4s, v23.4s, v22.4s[2] +.inst 0xce43aae6 //sm3tt2a v6.4s, v23.4s, v3.4s[2] +.inst 0xce5518b7 //sm3ss1 v23.4s, v5.4s, v21.4s, v6.4s + shl v20.4s, v21.4s, #1 + sri v20.4s, v21.4s, #31 +.inst 0xce56b2e5 //sm3tt1a v5.4s, v23.4s, v22.4s[3] +.inst 0xce43bae6 //sm3tt2a v6.4s, v23.4s, v3.4s[3] + ext v20.16b, v17.16b, v17.16b, #4 + // s4 = w7 | w8 | w9 | w10 + ext v3.16b, v0.16b, v1.16b, #12 + // vtmp1 = w3 | w4 | w5 | w6 + ext v22.16b, v4.16b, v0.16b, #12 + // vtmp2 = w10 | w11 | w12 | w13 + ext v23.16b, v1.16b, v2.16b, #8 +.inst 0xce62c083 //sm3partw1 v3.4s, v4.4s, v2.4s +.inst 0xce76c6e3 //sm3partw2 v3.4s, v23.4s, v22.4s + eor v22.16b, v4.16b, v0.16b +.inst 0xce5418b7 //sm3ss1 v23.4s, v5.4s, v20.4s, v6.4s + shl v21.4s, v20.4s, #1 + sri v21.4s, v20.4s, #31 +.inst 0xce5686e5 //sm3tt1b v5.4s, v23.4s, v22.4s[0] +.inst 0xce448ee6 //sm3tt2b v6.4s, v23.4s, v4.4s[0] +.inst 0xce5518b7 //sm3ss1 v23.4s, v5.4s, v21.4s, v6.4s + shl v20.4s, v21.4s, #1 + sri v20.4s, v21.4s, #31 +.inst 0xce5696e5 //sm3tt1b v5.4s, v23.4s, v22.4s[1] +.inst 0xce449ee6 //sm3tt2b v6.4s, v23.4s, v4.4s[1] +.inst 0xce5418b7 //sm3ss1 v23.4s, v5.4s, v20.4s, v6.4s + shl v21.4s, v20.4s, #1 + sri v21.4s, v20.4s, #31 +.inst 0xce56a6e5 //sm3tt1b v5.4s, v23.4s, v22.4s[2] +.inst 0xce44aee6 //sm3tt2b v6.4s, v23.4s, v4.4s[2] +.inst 0xce5518b7 //sm3ss1 v23.4s, v5.4s, v21.4s, v6.4s + shl v20.4s, v21.4s, #1 + sri v20.4s, v21.4s, #31 +.inst 0xce56b6e5 //sm3tt1b v5.4s, v23.4s, v22.4s[3] +.inst 0xce44bee6 //sm3tt2b v6.4s, v23.4s, v4.4s[3] + // s4 = w7 | w8 | w9 | w10 + ext v4.16b, v1.16b, v2.16b, #12 + // vtmp1 = w3 | w4 | w5 | w6 + ext v22.16b, v0.16b, v1.16b, #12 + // vtmp2 = w10 | w11 | w12 | w13 + ext v23.16b, v2.16b, v3.16b, #8 +.inst 0xce63c004 //sm3partw1 v4.4s, v0.4s, v3.4s +.inst 0xce76c6e4 //sm3partw2 v4.4s, v23.4s, v22.4s + eor v22.16b, v0.16b, v1.16b +.inst 0xce5418b7 //sm3ss1 v23.4s, v5.4s, v20.4s, v6.4s + shl v21.4s, v20.4s, #1 + sri v21.4s, v20.4s, #31 +.inst 0xce5686e5 //sm3tt1b v5.4s, v23.4s, v22.4s[0] +.inst 0xce408ee6 //sm3tt2b v6.4s, v23.4s, v0.4s[0] +.inst 0xce5518b7 //sm3ss1 v23.4s, v5.4s, v21.4s, v6.4s + shl v20.4s, v21.4s, #1 + sri v20.4s, v21.4s, #31 +.inst 0xce5696e5 //sm3tt1b v5.4s, v23.4s, v22.4s[1] +.inst 0xce409ee6 //sm3tt2b v6.4s, v23.4s, v0.4s[1] +.inst 0xce5418b7 //sm3ss1 v23.4s, v5.4s, v20.4s, v6.4s + shl v21.4s, v20.4s, #1 + sri v21.4s, v20.4s, #31 +.inst 0xce56a6e5 //sm3tt1b v5.4s, v23.4s, v22.4s[2] +.inst 0xce40aee6 //sm3tt2b v6.4s, v23.4s, v0.4s[2] +.inst 0xce5518b7 //sm3ss1 v23.4s, v5.4s, v21.4s, v6.4s + shl v20.4s, v21.4s, #1 + sri v20.4s, v21.4s, #31 +.inst 0xce56b6e5 //sm3tt1b v5.4s, v23.4s, v22.4s[3] +.inst 0xce40bee6 //sm3tt2b v6.4s, v23.4s, v0.4s[3] + // s4 = w7 | w8 | w9 | w10 + ext v0.16b, v2.16b, v3.16b, #12 + // vtmp1 = w3 | w4 | w5 | w6 + ext v22.16b, v1.16b, v2.16b, #12 + // vtmp2 = w10 | w11 | w12 | w13 + ext v23.16b, v3.16b, v4.16b, #8 +.inst 0xce64c020 //sm3partw1 v0.4s, v1.4s, v4.4s +.inst 0xce76c6e0 //sm3partw2 v0.4s, v23.4s, v22.4s + eor v22.16b, v1.16b, v2.16b +.inst 0xce5418b7 //sm3ss1 v23.4s, v5.4s, v20.4s, v6.4s + shl v21.4s, v20.4s, #1 + sri v21.4s, v20.4s, #31 +.inst 0xce5686e5 //sm3tt1b v5.4s, v23.4s, v22.4s[0] +.inst 0xce418ee6 //sm3tt2b v6.4s, v23.4s, v1.4s[0] +.inst 0xce5518b7 //sm3ss1 v23.4s, v5.4s, v21.4s, v6.4s + shl v20.4s, v21.4s, #1 + sri v20.4s, v21.4s, #31 +.inst 0xce5696e5 //sm3tt1b v5.4s, v23.4s, v22.4s[1] +.inst 0xce419ee6 //sm3tt2b v6.4s, v23.4s, v1.4s[1] +.inst 0xce5418b7 //sm3ss1 v23.4s, v5.4s, v20.4s, v6.4s + shl v21.4s, v20.4s, #1 + sri v21.4s, v20.4s, #31 +.inst 0xce56a6e5 //sm3tt1b v5.4s, v23.4s, v22.4s[2] +.inst 0xce41aee6 //sm3tt2b v6.4s, v23.4s, v1.4s[2] +.inst 0xce5518b7 //sm3ss1 v23.4s, v5.4s, v21.4s, v6.4s + shl v20.4s, v21.4s, #1 + sri v20.4s, v21.4s, #31 +.inst 0xce56b6e5 //sm3tt1b v5.4s, v23.4s, v22.4s[3] +.inst 0xce41bee6 //sm3tt2b v6.4s, v23.4s, v1.4s[3] + // s4 = w7 | w8 | w9 | w10 + ext v1.16b, v3.16b, v4.16b, #12 + // vtmp1 = w3 | w4 | w5 | w6 + ext v22.16b, v2.16b, v3.16b, #12 + // vtmp2 = w10 | w11 | w12 | w13 + ext v23.16b, v4.16b, v0.16b, #8 +.inst 0xce60c041 //sm3partw1 v1.4s, v2.4s, v0.4s +.inst 0xce76c6e1 //sm3partw2 v1.4s, v23.4s, v22.4s + eor v22.16b, v2.16b, v3.16b +.inst 0xce5418b7 //sm3ss1 v23.4s, v5.4s, v20.4s, v6.4s + shl v21.4s, v20.4s, #1 + sri v21.4s, v20.4s, #31 +.inst 0xce5686e5 //sm3tt1b v5.4s, v23.4s, v22.4s[0] +.inst 0xce428ee6 //sm3tt2b v6.4s, v23.4s, v2.4s[0] +.inst 0xce5518b7 //sm3ss1 v23.4s, v5.4s, v21.4s, v6.4s + shl v20.4s, v21.4s, #1 + sri v20.4s, v21.4s, #31 +.inst 0xce5696e5 //sm3tt1b v5.4s, v23.4s, v22.4s[1] +.inst 0xce429ee6 //sm3tt2b v6.4s, v23.4s, v2.4s[1] +.inst 0xce5418b7 //sm3ss1 v23.4s, v5.4s, v20.4s, v6.4s + shl v21.4s, v20.4s, #1 + sri v21.4s, v20.4s, #31 +.inst 0xce56a6e5 //sm3tt1b v5.4s, v23.4s, v22.4s[2] +.inst 0xce42aee6 //sm3tt2b v6.4s, v23.4s, v2.4s[2] +.inst 0xce5518b7 //sm3ss1 v23.4s, v5.4s, v21.4s, v6.4s + shl v20.4s, v21.4s, #1 + sri v20.4s, v21.4s, #31 +.inst 0xce56b6e5 //sm3tt1b v5.4s, v23.4s, v22.4s[3] +.inst 0xce42bee6 //sm3tt2b v6.4s, v23.4s, v2.4s[3] + // s4 = w7 | w8 | w9 | w10 + ext v2.16b, v4.16b, v0.16b, #12 + // vtmp1 = w3 | w4 | w5 | w6 + ext v22.16b, v3.16b, v4.16b, #12 + // vtmp2 = w10 | w11 | w12 | w13 + ext v23.16b, v0.16b, v1.16b, #8 +.inst 0xce61c062 //sm3partw1 v2.4s, v3.4s, v1.4s +.inst 0xce76c6e2 //sm3partw2 v2.4s, v23.4s, v22.4s + eor v22.16b, v3.16b, v4.16b +.inst 0xce5418b7 //sm3ss1 v23.4s, v5.4s, v20.4s, v6.4s + shl v21.4s, v20.4s, #1 + sri v21.4s, v20.4s, #31 +.inst 0xce5686e5 //sm3tt1b v5.4s, v23.4s, v22.4s[0] +.inst 0xce438ee6 //sm3tt2b v6.4s, v23.4s, v3.4s[0] +.inst 0xce5518b7 //sm3ss1 v23.4s, v5.4s, v21.4s, v6.4s + shl v20.4s, v21.4s, #1 + sri v20.4s, v21.4s, #31 +.inst 0xce5696e5 //sm3tt1b v5.4s, v23.4s, v22.4s[1] +.inst 0xce439ee6 //sm3tt2b v6.4s, v23.4s, v3.4s[1] +.inst 0xce5418b7 //sm3ss1 v23.4s, v5.4s, v20.4s, v6.4s + shl v21.4s, v20.4s, #1 + sri v21.4s, v20.4s, #31 +.inst 0xce56a6e5 //sm3tt1b v5.4s, v23.4s, v22.4s[2] +.inst 0xce43aee6 //sm3tt2b v6.4s, v23.4s, v3.4s[2] +.inst 0xce5518b7 //sm3ss1 v23.4s, v5.4s, v21.4s, v6.4s + shl v20.4s, v21.4s, #1 + sri v20.4s, v21.4s, #31 +.inst 0xce56b6e5 //sm3tt1b v5.4s, v23.4s, v22.4s[3] +.inst 0xce43bee6 //sm3tt2b v6.4s, v23.4s, v3.4s[3] + // s4 = w7 | w8 | w9 | w10 + ext v3.16b, v0.16b, v1.16b, #12 + // vtmp1 = w3 | w4 | w5 | w6 + ext v22.16b, v4.16b, v0.16b, #12 + // vtmp2 = w10 | w11 | w12 | w13 + ext v23.16b, v1.16b, v2.16b, #8 +.inst 0xce62c083 //sm3partw1 v3.4s, v4.4s, v2.4s +.inst 0xce76c6e3 //sm3partw2 v3.4s, v23.4s, v22.4s + eor v22.16b, v4.16b, v0.16b +.inst 0xce5418b7 //sm3ss1 v23.4s, v5.4s, v20.4s, v6.4s + shl v21.4s, v20.4s, #1 + sri v21.4s, v20.4s, #31 +.inst 0xce5686e5 //sm3tt1b v5.4s, v23.4s, v22.4s[0] +.inst 0xce448ee6 //sm3tt2b v6.4s, v23.4s, v4.4s[0] +.inst 0xce5518b7 //sm3ss1 v23.4s, v5.4s, v21.4s, v6.4s + shl v20.4s, v21.4s, #1 + sri v20.4s, v21.4s, #31 +.inst 0xce5696e5 //sm3tt1b v5.4s, v23.4s, v22.4s[1] +.inst 0xce449ee6 //sm3tt2b v6.4s, v23.4s, v4.4s[1] +.inst 0xce5418b7 //sm3ss1 v23.4s, v5.4s, v20.4s, v6.4s + shl v21.4s, v20.4s, #1 + sri v21.4s, v20.4s, #31 +.inst 0xce56a6e5 //sm3tt1b v5.4s, v23.4s, v22.4s[2] +.inst 0xce44aee6 //sm3tt2b v6.4s, v23.4s, v4.4s[2] +.inst 0xce5518b7 //sm3ss1 v23.4s, v5.4s, v21.4s, v6.4s + shl v20.4s, v21.4s, #1 + sri v20.4s, v21.4s, #31 +.inst 0xce56b6e5 //sm3tt1b v5.4s, v23.4s, v22.4s[3] +.inst 0xce44bee6 //sm3tt2b v6.4s, v23.4s, v4.4s[3] + // s4 = w7 | w8 | w9 | w10 + ext v4.16b, v1.16b, v2.16b, #12 + // vtmp1 = w3 | w4 | w5 | w6 + ext v22.16b, v0.16b, v1.16b, #12 + // vtmp2 = w10 | w11 | w12 | w13 + ext v23.16b, v2.16b, v3.16b, #8 +.inst 0xce63c004 //sm3partw1 v4.4s, v0.4s, v3.4s +.inst 0xce76c6e4 //sm3partw2 v4.4s, v23.4s, v22.4s + eor v22.16b, v0.16b, v1.16b +.inst 0xce5418b7 //sm3ss1 v23.4s, v5.4s, v20.4s, v6.4s + shl v21.4s, v20.4s, #1 + sri v21.4s, v20.4s, #31 +.inst 0xce5686e5 //sm3tt1b v5.4s, v23.4s, v22.4s[0] +.inst 0xce408ee6 //sm3tt2b v6.4s, v23.4s, v0.4s[0] +.inst 0xce5518b7 //sm3ss1 v23.4s, v5.4s, v21.4s, v6.4s + shl v20.4s, v21.4s, #1 + sri v20.4s, v21.4s, #31 +.inst 0xce5696e5 //sm3tt1b v5.4s, v23.4s, v22.4s[1] +.inst 0xce409ee6 //sm3tt2b v6.4s, v23.4s, v0.4s[1] +.inst 0xce5418b7 //sm3ss1 v23.4s, v5.4s, v20.4s, v6.4s + shl v21.4s, v20.4s, #1 + sri v21.4s, v20.4s, #31 +.inst 0xce56a6e5 //sm3tt1b v5.4s, v23.4s, v22.4s[2] +.inst 0xce40aee6 //sm3tt2b v6.4s, v23.4s, v0.4s[2] +.inst 0xce5518b7 //sm3ss1 v23.4s, v5.4s, v21.4s, v6.4s + shl v20.4s, v21.4s, #1 + sri v20.4s, v21.4s, #31 +.inst 0xce56b6e5 //sm3tt1b v5.4s, v23.4s, v22.4s[3] +.inst 0xce40bee6 //sm3tt2b v6.4s, v23.4s, v0.4s[3] + // s4 = w7 | w8 | w9 | w10 + ext v0.16b, v2.16b, v3.16b, #12 + // vtmp1 = w3 | w4 | w5 | w6 + ext v22.16b, v1.16b, v2.16b, #12 + // vtmp2 = w10 | w11 | w12 | w13 + ext v23.16b, v3.16b, v4.16b, #8 +.inst 0xce64c020 //sm3partw1 v0.4s, v1.4s, v4.4s +.inst 0xce76c6e0 //sm3partw2 v0.4s, v23.4s, v22.4s + eor v22.16b, v1.16b, v2.16b +.inst 0xce5418b7 //sm3ss1 v23.4s, v5.4s, v20.4s, v6.4s + shl v21.4s, v20.4s, #1 + sri v21.4s, v20.4s, #31 +.inst 0xce5686e5 //sm3tt1b v5.4s, v23.4s, v22.4s[0] +.inst 0xce418ee6 //sm3tt2b v6.4s, v23.4s, v1.4s[0] +.inst 0xce5518b7 //sm3ss1 v23.4s, v5.4s, v21.4s, v6.4s + shl v20.4s, v21.4s, #1 + sri v20.4s, v21.4s, #31 +.inst 0xce5696e5 //sm3tt1b v5.4s, v23.4s, v22.4s[1] +.inst 0xce419ee6 //sm3tt2b v6.4s, v23.4s, v1.4s[1] +.inst 0xce5418b7 //sm3ss1 v23.4s, v5.4s, v20.4s, v6.4s + shl v21.4s, v20.4s, #1 + sri v21.4s, v20.4s, #31 +.inst 0xce56a6e5 //sm3tt1b v5.4s, v23.4s, v22.4s[2] +.inst 0xce41aee6 //sm3tt2b v6.4s, v23.4s, v1.4s[2] +.inst 0xce5518b7 //sm3ss1 v23.4s, v5.4s, v21.4s, v6.4s + shl v20.4s, v21.4s, #1 + sri v20.4s, v21.4s, #31 +.inst 0xce56b6e5 //sm3tt1b v5.4s, v23.4s, v22.4s[3] +.inst 0xce41bee6 //sm3tt2b v6.4s, v23.4s, v1.4s[3] + // s4 = w7 | w8 | w9 | w10 + ext v1.16b, v3.16b, v4.16b, #12 + // vtmp1 = w3 | w4 | w5 | w6 + ext v22.16b, v2.16b, v3.16b, #12 + // vtmp2 = w10 | w11 | w12 | w13 + ext v23.16b, v4.16b, v0.16b, #8 +.inst 0xce60c041 //sm3partw1 v1.4s, v2.4s, v0.4s +.inst 0xce76c6e1 //sm3partw2 v1.4s, v23.4s, v22.4s + eor v22.16b, v2.16b, v3.16b +.inst 0xce5418b7 //sm3ss1 v23.4s, v5.4s, v20.4s, v6.4s + shl v21.4s, v20.4s, #1 + sri v21.4s, v20.4s, #31 +.inst 0xce5686e5 //sm3tt1b v5.4s, v23.4s, v22.4s[0] +.inst 0xce428ee6 //sm3tt2b v6.4s, v23.4s, v2.4s[0] +.inst 0xce5518b7 //sm3ss1 v23.4s, v5.4s, v21.4s, v6.4s + shl v20.4s, v21.4s, #1 + sri v20.4s, v21.4s, #31 +.inst 0xce5696e5 //sm3tt1b v5.4s, v23.4s, v22.4s[1] +.inst 0xce429ee6 //sm3tt2b v6.4s, v23.4s, v2.4s[1] +.inst 0xce5418b7 //sm3ss1 v23.4s, v5.4s, v20.4s, v6.4s + shl v21.4s, v20.4s, #1 + sri v21.4s, v20.4s, #31 +.inst 0xce56a6e5 //sm3tt1b v5.4s, v23.4s, v22.4s[2] +.inst 0xce42aee6 //sm3tt2b v6.4s, v23.4s, v2.4s[2] +.inst 0xce5518b7 //sm3ss1 v23.4s, v5.4s, v21.4s, v6.4s + shl v20.4s, v21.4s, #1 + sri v20.4s, v21.4s, #31 +.inst 0xce56b6e5 //sm3tt1b v5.4s, v23.4s, v22.4s[3] +.inst 0xce42bee6 //sm3tt2b v6.4s, v23.4s, v2.4s[3] + eor v22.16b, v3.16b, v4.16b +.inst 0xce5418b7 //sm3ss1 v23.4s, v5.4s, v20.4s, v6.4s + shl v21.4s, v20.4s, #1 + sri v21.4s, v20.4s, #31 +.inst 0xce5686e5 //sm3tt1b v5.4s, v23.4s, v22.4s[0] +.inst 0xce438ee6 //sm3tt2b v6.4s, v23.4s, v3.4s[0] +.inst 0xce5518b7 //sm3ss1 v23.4s, v5.4s, v21.4s, v6.4s + shl v20.4s, v21.4s, #1 + sri v20.4s, v21.4s, #31 +.inst 0xce5696e5 //sm3tt1b v5.4s, v23.4s, v22.4s[1] +.inst 0xce439ee6 //sm3tt2b v6.4s, v23.4s, v3.4s[1] +.inst 0xce5418b7 //sm3ss1 v23.4s, v5.4s, v20.4s, v6.4s + shl v21.4s, v20.4s, #1 + sri v21.4s, v20.4s, #31 +.inst 0xce56a6e5 //sm3tt1b v5.4s, v23.4s, v22.4s[2] +.inst 0xce43aee6 //sm3tt2b v6.4s, v23.4s, v3.4s[2] +.inst 0xce5518b7 //sm3ss1 v23.4s, v5.4s, v21.4s, v6.4s + shl v20.4s, v21.4s, #1 + sri v20.4s, v21.4s, #31 +.inst 0xce56b6e5 //sm3tt1b v5.4s, v23.4s, v22.4s[3] +.inst 0xce43bee6 //sm3tt2b v6.4s, v23.4s, v3.4s[3] + eor v22.16b, v4.16b, v0.16b +.inst 0xce5418b7 //sm3ss1 v23.4s, v5.4s, v20.4s, v6.4s + shl v21.4s, v20.4s, #1 + sri v21.4s, v20.4s, #31 +.inst 0xce5686e5 //sm3tt1b v5.4s, v23.4s, v22.4s[0] +.inst 0xce448ee6 //sm3tt2b v6.4s, v23.4s, v4.4s[0] +.inst 0xce5518b7 //sm3ss1 v23.4s, v5.4s, v21.4s, v6.4s + shl v20.4s, v21.4s, #1 + sri v20.4s, v21.4s, #31 +.inst 0xce5696e5 //sm3tt1b v5.4s, v23.4s, v22.4s[1] +.inst 0xce449ee6 //sm3tt2b v6.4s, v23.4s, v4.4s[1] +.inst 0xce5418b7 //sm3ss1 v23.4s, v5.4s, v20.4s, v6.4s + shl v21.4s, v20.4s, #1 + sri v21.4s, v20.4s, #31 +.inst 0xce56a6e5 //sm3tt1b v5.4s, v23.4s, v22.4s[2] +.inst 0xce44aee6 //sm3tt2b v6.4s, v23.4s, v4.4s[2] +.inst 0xce5518b7 //sm3ss1 v23.4s, v5.4s, v21.4s, v6.4s + shl v20.4s, v21.4s, #1 + sri v20.4s, v21.4s, #31 +.inst 0xce56b6e5 //sm3tt1b v5.4s, v23.4s, v22.4s[3] +.inst 0xce44bee6 //sm3tt2b v6.4s, v23.4s, v4.4s[3] + eor v22.16b, v0.16b, v1.16b +.inst 0xce5418b7 //sm3ss1 v23.4s, v5.4s, v20.4s, v6.4s + shl v21.4s, v20.4s, #1 + sri v21.4s, v20.4s, #31 +.inst 0xce5686e5 //sm3tt1b v5.4s, v23.4s, v22.4s[0] +.inst 0xce408ee6 //sm3tt2b v6.4s, v23.4s, v0.4s[0] +.inst 0xce5518b7 //sm3ss1 v23.4s, v5.4s, v21.4s, v6.4s + shl v20.4s, v21.4s, #1 + sri v20.4s, v21.4s, #31 +.inst 0xce5696e5 //sm3tt1b v5.4s, v23.4s, v22.4s[1] +.inst 0xce409ee6 //sm3tt2b v6.4s, v23.4s, v0.4s[1] +.inst 0xce5418b7 //sm3ss1 v23.4s, v5.4s, v20.4s, v6.4s + shl v21.4s, v20.4s, #1 + sri v21.4s, v20.4s, #31 +.inst 0xce56a6e5 //sm3tt1b v5.4s, v23.4s, v22.4s[2] +.inst 0xce40aee6 //sm3tt2b v6.4s, v23.4s, v0.4s[2] +.inst 0xce5518b7 //sm3ss1 v23.4s, v5.4s, v21.4s, v6.4s + shl v20.4s, v21.4s, #1 + sri v20.4s, v21.4s, #31 +.inst 0xce56b6e5 //sm3tt1b v5.4s, v23.4s, v22.4s[3] +.inst 0xce40bee6 //sm3tt2b v6.4s, v23.4s, v0.4s[3] + eor v5.16b, v5.16b, v18.16b + eor v6.16b, v6.16b, v19.16b + + // any remained blocks? + cbnz w2, .Loop + + // save state + rev64 v5.4s, v5.4s + rev64 v6.4s, v6.4s + ext v5.16b, v5.16b, v5.16b, #8 + ext v6.16b, v6.16b, v6.16b, #8 + st1 {v5.4s,v6.4s}, [x0] + ret +.size ossl_hwsm3_block_data_order,.-ossl_hwsm3_block_data_order +.section .rodata + +.type _sm3_consts,%object +.align 3 +_sm3_consts: +.Tj: +.word 0x79cc4519, 0x9d8a7a87 +.size _sm3_consts,.-_sm3_consts +.previous diff --git a/deps/openssl/config/archs/linux-aarch64/asm/crypto/sm4/sm4-armv8.S b/deps/openssl/config/archs/linux-aarch64/asm/crypto/sm4/sm4-armv8.S new file mode 100644 index 00000000000000..0135313075e4f8 --- /dev/null +++ b/deps/openssl/config/archs/linux-aarch64/asm/crypto/sm4/sm4-armv8.S @@ -0,0 +1,1092 @@ +// Copyright 2022-2025 The OpenSSL Project Authors. All Rights Reserved. +// +// Licensed under the Apache License 2.0 (the "License"). You may not use +// this file except in compliance with the License. You can obtain a copy +// in the file LICENSE in the source distribution or at +// https://www.openssl.org/source/license.html + +// +// This module implements support for SM4 hw support on aarch64 +// Oct 2021 +// + +// $output is the last argument if it looks like a file (it has an extension) +// $flavour is the first argument if it doesn't look like a file +#include "arm_arch.h" +.arch armv8-a+crypto +.text + +.section .rodata +.type _sm4_v8_consts,%object +.align 6 +_sm4_v8_consts: +.Lck: +.long 0x00070E15, 0x1C232A31, 0x383F464D, 0x545B6269 +.long 0x70777E85, 0x8C939AA1, 0xA8AFB6BD, 0xC4CBD2D9 +.long 0xE0E7EEF5, 0xFC030A11, 0x181F262D, 0x343B4249 +.long 0x50575E65, 0x6C737A81, 0x888F969D, 0xA4ABB2B9 +.long 0xC0C7CED5, 0xDCE3EAF1, 0xF8FF060D, 0x141B2229 +.long 0x30373E45, 0x4C535A61, 0x686F767D, 0x848B9299 +.long 0xA0A7AEB5, 0xBCC3CAD1, 0xD8DFE6ED, 0xF4FB0209 +.long 0x10171E25, 0x2C333A41, 0x484F565D, 0x646B7279 +.Lfk: +.long 0xa3b1bac6, 0x56aa3350, 0x677d9197, 0xb27022dc +.size _sm4_v8_consts,.-_sm4_v8_consts +.previous + +.globl sm4_v8_set_encrypt_key +.type sm4_v8_set_encrypt_key,%function +.align 5 +sm4_v8_set_encrypt_key: + AARCH64_VALID_CALL_TARGET + ld1 {v0.4s},[x0] + adrp x2,.Lfk + add x2,x2,#:lo12:.Lfk + ld1 {v24.4s},[x2] + adrp x2,.Lck + add x2,x2,#:lo12:.Lck + ld1 {v16.4s,v17.4s,v18.4s,v19.4s},[x2],64 +#ifndef __AARCH64EB__ + rev32 v0.16b,v0.16b +#endif + ld1 {v20.4s,v21.4s,v22.4s,v23.4s},[x2] + eor v0.16b,v0.16b,v24.16b; +.inst 0xce70c800 //sm4ekey v0.4S,v0.4S,v16.4S +.inst 0xce71c801 //sm4ekey v1.4S,v0.4S,v17.4S +.inst 0xce72c822 //sm4ekey v2.4S,v1.4S,v18.4S +.inst 0xce73c843 //sm4ekey v3.4S,v2.4S,v19.4S +.inst 0xce74c864 //sm4ekey v4.4S,v3.4S,v20.4S + st1 {v0.4s,v1.4s,v2.4s,v3.4s},[x1],64 +.inst 0xce75c885 //sm4ekey v5.4S,v4.4S,v21.4S +.inst 0xce76c8a6 //sm4ekey v6.4S,v5.4S,v22.4S +.inst 0xce77c8c7 //sm4ekey v7.4S,v6.4S,v23.4S + st1 {v4.4s,v5.4s,v6.4s,v7.4s},[x1] + ret +.size sm4_v8_set_encrypt_key,.-sm4_v8_set_encrypt_key +.globl sm4_v8_set_decrypt_key +.type sm4_v8_set_decrypt_key,%function +.align 5 +sm4_v8_set_decrypt_key: + AARCH64_VALID_CALL_TARGET + ld1 {v7.4s},[x0] + adrp x2,.Lfk + add x2,x2,#:lo12:.Lfk + ld1 {v24.4s},[x2] + adrp x2,.Lck + add x2,x2,#:lo12:.Lck + ld1 {v16.4s,v17.4s,v18.4s,v19.4s},[x2],64 +#ifndef __AARCH64EB__ + rev32 v7.16b,v7.16b +#endif + ld1 {v20.4s,v21.4s,v22.4s,v23.4s},[x2] + eor v7.16b, v7.16b,v24.16b; +.inst 0xce70c8e7 //sm4ekey v7.4S,v7.4S,v16.4S +.inst 0xce71c8e6 //sm4ekey v6.4S,v7.4S,v17.4S +.inst 0xce72c8c5 //sm4ekey v5.4S,v6.4S,v18.4S + rev64 v7.4s,v7.4s + rev64 v6.4s,v6.4s + ext v7.16b,v7.16b,v7.16b,#8 + ext v6.16b,v6.16b,v6.16b,#8 +.inst 0xce73c8a4 //sm4ekey v4.4S,v5.4S,v19.4S +.inst 0xce74c883 //sm4ekey v3.4S,v4.4S,v20.4S + rev64 v5.4s,v5.4s + rev64 v4.4s,v4.4s + ext v5.16b,v5.16b,v5.16b,#8 + ext v4.16b,v4.16b,v4.16b,#8 +.inst 0xce75c862 //sm4ekey v2.4S,v3.4S,v21.4S +.inst 0xce76c841 //sm4ekey v1.4S,v2.4S,v22.4S + rev64 v3.4s,v3.4s + rev64 v2.4s,v2.4s + ext v3.16b,v3.16b,v3.16b,#8 + ext v2.16b,v2.16b,v2.16b,#8 +.inst 0xce77c820 //sm4ekey v0.4S,v1.4S,v23.4S + rev64 v1.4s, v1.4s + rev64 v0.4s, v0.4s + ext v1.16b,v1.16b,v1.16b,#8 + ext v0.16b,v0.16b,v0.16b,#8 + st1 {v0.4s,v1.4s,v2.4s,v3.4s},[x1],64 + st1 {v4.4s,v5.4s,v6.4s,v7.4s},[x1] + ret +.size sm4_v8_set_decrypt_key,.-sm4_v8_set_decrypt_key +.globl sm4_v8_encrypt +.type sm4_v8_encrypt,%function +.align 5 +sm4_v8_encrypt: + AARCH64_VALID_CALL_TARGET + ld1 {v16.4s},[x0] + ld1 {v0.4s,v1.4s,v2.4s,v3.4s},[x2],64 + ld1 {v4.4s,v5.4s,v6.4s,v7.4s},[x2] +#ifndef __AARCH64EB__ + rev32 v16.16b,v16.16b +#endif +.inst 0xcec08410 //sm4e v16.4s,v0.4s +.inst 0xcec08430 //sm4e v16.4s,v1.4s +.inst 0xcec08450 //sm4e v16.4s,v2.4s +.inst 0xcec08470 //sm4e v16.4s,v3.4s +.inst 0xcec08490 //sm4e v16.4s,v4.4s +.inst 0xcec084b0 //sm4e v16.4s,v5.4s +.inst 0xcec084d0 //sm4e v16.4s,v6.4s +.inst 0xcec084f0 //sm4e v16.4s,v7.4s + rev64 v16.4S,v16.4S + ext v16.16b,v16.16b,v16.16b,#8 +#ifndef __AARCH64EB__ + rev32 v16.16b,v16.16b +#endif + st1 {v16.4s},[x1] + ret +.size sm4_v8_encrypt,.-sm4_v8_encrypt +.globl sm4_v8_decrypt +.type sm4_v8_decrypt,%function +.align 5 +sm4_v8_decrypt: + AARCH64_VALID_CALL_TARGET + ld1 {v16.4s},[x0] + ld1 {v0.4s,v1.4s,v2.4s,v3.4s},[x2],64 + ld1 {v4.4s,v5.4s,v6.4s,v7.4s},[x2] +#ifndef __AARCH64EB__ + rev32 v16.16b,v16.16b +#endif +.inst 0xcec08410 //sm4e v16.4s,v0.4s +.inst 0xcec08430 //sm4e v16.4s,v1.4s +.inst 0xcec08450 //sm4e v16.4s,v2.4s +.inst 0xcec08470 //sm4e v16.4s,v3.4s +.inst 0xcec08490 //sm4e v16.4s,v4.4s +.inst 0xcec084b0 //sm4e v16.4s,v5.4s +.inst 0xcec084d0 //sm4e v16.4s,v6.4s +.inst 0xcec084f0 //sm4e v16.4s,v7.4s + rev64 v16.4S,v16.4S + ext v16.16b,v16.16b,v16.16b,#8 +#ifndef __AARCH64EB__ + rev32 v16.16b,v16.16b +#endif + st1 {v16.4s},[x1] + ret +.size sm4_v8_decrypt,.-sm4_v8_decrypt +.globl sm4_v8_ecb_encrypt +.type sm4_v8_ecb_encrypt,%function +.align 5 +sm4_v8_ecb_encrypt: + AARCH64_VALID_CALL_TARGET + ld1 {v0.4s,v1.4s,v2.4s,v3.4s},[x3],#64 + ld1 {v4.4s,v5.4s,v6.4s,v7.4s},[x3] +1: + cmp x2,#64 + b.lt 1f + ld1 {v16.4s,v17.4s,v18.4s,v19.4s},[x0],#64 + cmp x2,#128 + b.lt 2f + ld1 {v20.4s,v21.4s,v22.4s,v23.4s},[x0],#64 + // 8 blocks +#ifndef __AARCH64EB__ + rev32 v16.16b,v16.16b +#endif +#ifndef __AARCH64EB__ + rev32 v17.16b,v17.16b +#endif +#ifndef __AARCH64EB__ + rev32 v18.16b,v18.16b +#endif +#ifndef __AARCH64EB__ + rev32 v19.16b,v19.16b +#endif +#ifndef __AARCH64EB__ + rev32 v20.16b,v20.16b +#endif +#ifndef __AARCH64EB__ + rev32 v21.16b,v21.16b +#endif +#ifndef __AARCH64EB__ + rev32 v22.16b,v22.16b +#endif +#ifndef __AARCH64EB__ + rev32 v23.16b,v23.16b +#endif +.inst 0xcec08410 //sm4e v16.4s,v0.4s +.inst 0xcec08411 //sm4e v17.4s,v0.4s +.inst 0xcec08412 //sm4e v18.4s,v0.4s +.inst 0xcec08413 //sm4e v19.4s,v0.4s + +.inst 0xcec08430 //sm4e v16.4s,v1.4s +.inst 0xcec08431 //sm4e v17.4s,v1.4s +.inst 0xcec08432 //sm4e v18.4s,v1.4s +.inst 0xcec08433 //sm4e v19.4s,v1.4s + +.inst 0xcec08450 //sm4e v16.4s,v2.4s +.inst 0xcec08451 //sm4e v17.4s,v2.4s +.inst 0xcec08452 //sm4e v18.4s,v2.4s +.inst 0xcec08453 //sm4e v19.4s,v2.4s + +.inst 0xcec08470 //sm4e v16.4s,v3.4s +.inst 0xcec08471 //sm4e v17.4s,v3.4s +.inst 0xcec08472 //sm4e v18.4s,v3.4s +.inst 0xcec08473 //sm4e v19.4s,v3.4s + +.inst 0xcec08490 //sm4e v16.4s,v4.4s +.inst 0xcec08491 //sm4e v17.4s,v4.4s +.inst 0xcec08492 //sm4e v18.4s,v4.4s +.inst 0xcec08493 //sm4e v19.4s,v4.4s + +.inst 0xcec084b0 //sm4e v16.4s,v5.4s +.inst 0xcec084b1 //sm4e v17.4s,v5.4s +.inst 0xcec084b2 //sm4e v18.4s,v5.4s +.inst 0xcec084b3 //sm4e v19.4s,v5.4s + +.inst 0xcec084d0 //sm4e v16.4s,v6.4s +.inst 0xcec084d1 //sm4e v17.4s,v6.4s +.inst 0xcec084d2 //sm4e v18.4s,v6.4s +.inst 0xcec084d3 //sm4e v19.4s,v6.4s + +.inst 0xcec084f0 //sm4e v16.4s,v7.4s + rev64 v16.4S,v16.4S +.inst 0xcec084f1 //sm4e v17.4s,v7.4s + ext v16.16b,v16.16b,v16.16b,#8 + rev64 v17.4S,v17.4S +.inst 0xcec084f2 //sm4e v18.4s,v7.4s + ext v17.16b,v17.16b,v17.16b,#8 + rev64 v18.4S,v18.4S +.inst 0xcec084f3 //sm4e v19.4s,v7.4s + ext v18.16b,v18.16b,v18.16b,#8 + rev64 v19.4S,v19.4S + ext v19.16b,v19.16b,v19.16b,#8 +.inst 0xcec08414 //sm4e v20.4s,v0.4s +.inst 0xcec08415 //sm4e v21.4s,v0.4s +.inst 0xcec08416 //sm4e v22.4s,v0.4s +.inst 0xcec08417 //sm4e v23.4s,v0.4s + +.inst 0xcec08434 //sm4e v20.4s,v1.4s +.inst 0xcec08435 //sm4e v21.4s,v1.4s +.inst 0xcec08436 //sm4e v22.4s,v1.4s +.inst 0xcec08437 //sm4e v23.4s,v1.4s + +.inst 0xcec08454 //sm4e v20.4s,v2.4s +.inst 0xcec08455 //sm4e v21.4s,v2.4s +.inst 0xcec08456 //sm4e v22.4s,v2.4s +.inst 0xcec08457 //sm4e v23.4s,v2.4s + +.inst 0xcec08474 //sm4e v20.4s,v3.4s +.inst 0xcec08475 //sm4e v21.4s,v3.4s +.inst 0xcec08476 //sm4e v22.4s,v3.4s +.inst 0xcec08477 //sm4e v23.4s,v3.4s + +.inst 0xcec08494 //sm4e v20.4s,v4.4s +.inst 0xcec08495 //sm4e v21.4s,v4.4s +.inst 0xcec08496 //sm4e v22.4s,v4.4s +.inst 0xcec08497 //sm4e v23.4s,v4.4s + +.inst 0xcec084b4 //sm4e v20.4s,v5.4s +.inst 0xcec084b5 //sm4e v21.4s,v5.4s +.inst 0xcec084b6 //sm4e v22.4s,v5.4s +.inst 0xcec084b7 //sm4e v23.4s,v5.4s + +.inst 0xcec084d4 //sm4e v20.4s,v6.4s +.inst 0xcec084d5 //sm4e v21.4s,v6.4s +.inst 0xcec084d6 //sm4e v22.4s,v6.4s +.inst 0xcec084d7 //sm4e v23.4s,v6.4s + +.inst 0xcec084f4 //sm4e v20.4s,v7.4s + rev64 v20.4S,v20.4S +.inst 0xcec084f5 //sm4e v21.4s,v7.4s + ext v20.16b,v20.16b,v20.16b,#8 + rev64 v21.4S,v21.4S +.inst 0xcec084f6 //sm4e v22.4s,v7.4s + ext v21.16b,v21.16b,v21.16b,#8 + rev64 v22.4S,v22.4S +.inst 0xcec084f7 //sm4e v23.4s,v7.4s + ext v22.16b,v22.16b,v22.16b,#8 + rev64 v23.4S,v23.4S + ext v23.16b,v23.16b,v23.16b,#8 +#ifndef __AARCH64EB__ + rev32 v16.16b,v16.16b +#endif +#ifndef __AARCH64EB__ + rev32 v17.16b,v17.16b +#endif +#ifndef __AARCH64EB__ + rev32 v18.16b,v18.16b +#endif +#ifndef __AARCH64EB__ + rev32 v19.16b,v19.16b +#endif +#ifndef __AARCH64EB__ + rev32 v20.16b,v20.16b +#endif +#ifndef __AARCH64EB__ + rev32 v21.16b,v21.16b +#endif + st1 {v16.4s,v17.4s,v18.4s,v19.4s},[x1],#64 +#ifndef __AARCH64EB__ + rev32 v22.16b,v22.16b +#endif +#ifndef __AARCH64EB__ + rev32 v23.16b,v23.16b +#endif + st1 {v20.4s,v21.4s,v22.4s,v23.4s},[x1],#64 + subs x2,x2,#128 + b.gt 1b + ret + // 4 blocks +2: +#ifndef __AARCH64EB__ + rev32 v16.16b,v16.16b +#endif +#ifndef __AARCH64EB__ + rev32 v17.16b,v17.16b +#endif +#ifndef __AARCH64EB__ + rev32 v18.16b,v18.16b +#endif +#ifndef __AARCH64EB__ + rev32 v19.16b,v19.16b +#endif +.inst 0xcec08410 //sm4e v16.4s,v0.4s +.inst 0xcec08411 //sm4e v17.4s,v0.4s +.inst 0xcec08412 //sm4e v18.4s,v0.4s +.inst 0xcec08413 //sm4e v19.4s,v0.4s + +.inst 0xcec08430 //sm4e v16.4s,v1.4s +.inst 0xcec08431 //sm4e v17.4s,v1.4s +.inst 0xcec08432 //sm4e v18.4s,v1.4s +.inst 0xcec08433 //sm4e v19.4s,v1.4s + +.inst 0xcec08450 //sm4e v16.4s,v2.4s +.inst 0xcec08451 //sm4e v17.4s,v2.4s +.inst 0xcec08452 //sm4e v18.4s,v2.4s +.inst 0xcec08453 //sm4e v19.4s,v2.4s + +.inst 0xcec08470 //sm4e v16.4s,v3.4s +.inst 0xcec08471 //sm4e v17.4s,v3.4s +.inst 0xcec08472 //sm4e v18.4s,v3.4s +.inst 0xcec08473 //sm4e v19.4s,v3.4s + +.inst 0xcec08490 //sm4e v16.4s,v4.4s +.inst 0xcec08491 //sm4e v17.4s,v4.4s +.inst 0xcec08492 //sm4e v18.4s,v4.4s +.inst 0xcec08493 //sm4e v19.4s,v4.4s + +.inst 0xcec084b0 //sm4e v16.4s,v5.4s +.inst 0xcec084b1 //sm4e v17.4s,v5.4s +.inst 0xcec084b2 //sm4e v18.4s,v5.4s +.inst 0xcec084b3 //sm4e v19.4s,v5.4s + +.inst 0xcec084d0 //sm4e v16.4s,v6.4s +.inst 0xcec084d1 //sm4e v17.4s,v6.4s +.inst 0xcec084d2 //sm4e v18.4s,v6.4s +.inst 0xcec084d3 //sm4e v19.4s,v6.4s + +.inst 0xcec084f0 //sm4e v16.4s,v7.4s + rev64 v16.4S,v16.4S +.inst 0xcec084f1 //sm4e v17.4s,v7.4s + ext v16.16b,v16.16b,v16.16b,#8 + rev64 v17.4S,v17.4S +.inst 0xcec084f2 //sm4e v18.4s,v7.4s + ext v17.16b,v17.16b,v17.16b,#8 + rev64 v18.4S,v18.4S +.inst 0xcec084f3 //sm4e v19.4s,v7.4s + ext v18.16b,v18.16b,v18.16b,#8 + rev64 v19.4S,v19.4S + ext v19.16b,v19.16b,v19.16b,#8 +#ifndef __AARCH64EB__ + rev32 v16.16b,v16.16b +#endif +#ifndef __AARCH64EB__ + rev32 v17.16b,v17.16b +#endif +#ifndef __AARCH64EB__ + rev32 v18.16b,v18.16b +#endif +#ifndef __AARCH64EB__ + rev32 v19.16b,v19.16b +#endif + st1 {v16.4s,v17.4s,v18.4s,v19.4s},[x1],#64 + subs x2,x2,#64 + b.gt 1b +1: + subs x2,x2,#16 + b.lt 1f + ld1 {v16.4s},[x0],#16 +#ifndef __AARCH64EB__ + rev32 v16.16b,v16.16b +#endif +.inst 0xcec08410 //sm4e v16.4s,v0.4s +.inst 0xcec08430 //sm4e v16.4s,v1.4s +.inst 0xcec08450 //sm4e v16.4s,v2.4s +.inst 0xcec08470 //sm4e v16.4s,v3.4s +.inst 0xcec08490 //sm4e v16.4s,v4.4s +.inst 0xcec084b0 //sm4e v16.4s,v5.4s +.inst 0xcec084d0 //sm4e v16.4s,v6.4s +.inst 0xcec084f0 //sm4e v16.4s,v7.4s + rev64 v16.4S,v16.4S + ext v16.16b,v16.16b,v16.16b,#8 +#ifndef __AARCH64EB__ + rev32 v16.16b,v16.16b +#endif + st1 {v16.4s},[x1],#16 + b.ne 1b +1: + ret +.size sm4_v8_ecb_encrypt,.-sm4_v8_ecb_encrypt +.globl sm4_v8_cbc_encrypt +.type sm4_v8_cbc_encrypt,%function +.align 5 +sm4_v8_cbc_encrypt: + AARCH64_VALID_CALL_TARGET + stp d8,d9,[sp, #-16]! + + ld1 {v0.4s,v1.4s,v2.4s,v3.4s},[x3],#64 + ld1 {v4.4s,v5.4s,v6.4s,v7.4s},[x3] + ld1 {v8.4s},[x4] + cmp w5,#0 + b.eq .Ldec +1: + cmp x2, #64 + b.lt 1f + ld1 {v16.4s,v17.4s,v18.4s,v19.4s},[x0],#64 + eor v16.16b,v16.16b,v8.16b +#ifndef __AARCH64EB__ + rev32 v17.16b,v17.16b +#endif +#ifndef __AARCH64EB__ + rev32 v16.16b,v16.16b +#endif +#ifndef __AARCH64EB__ + rev32 v18.16b,v18.16b +#endif +#ifndef __AARCH64EB__ + rev32 v19.16b,v19.16b +#endif +.inst 0xcec08410 //sm4e v16.4s,v0.4s +.inst 0xcec08430 //sm4e v16.4s,v1.4s +.inst 0xcec08450 //sm4e v16.4s,v2.4s +.inst 0xcec08470 //sm4e v16.4s,v3.4s +.inst 0xcec08490 //sm4e v16.4s,v4.4s +.inst 0xcec084b0 //sm4e v16.4s,v5.4s +.inst 0xcec084d0 //sm4e v16.4s,v6.4s +.inst 0xcec084f0 //sm4e v16.4s,v7.4s + rev64 v16.4S,v16.4S + ext v16.16b,v16.16b,v16.16b,#8 + eor v17.16b,v17.16b,v16.16b +.inst 0xcec08411 //sm4e v17.4s,v0.4s +.inst 0xcec08431 //sm4e v17.4s,v1.4s +.inst 0xcec08451 //sm4e v17.4s,v2.4s +.inst 0xcec08471 //sm4e v17.4s,v3.4s +.inst 0xcec08491 //sm4e v17.4s,v4.4s +.inst 0xcec084b1 //sm4e v17.4s,v5.4s +.inst 0xcec084d1 //sm4e v17.4s,v6.4s +.inst 0xcec084f1 //sm4e v17.4s,v7.4s + rev64 v17.4S,v17.4S + ext v17.16b,v17.16b,v17.16b,#8 +#ifndef __AARCH64EB__ + rev32 v16.16b,v16.16b +#endif + eor v18.16b,v18.16b,v17.16b +.inst 0xcec08412 //sm4e v18.4s,v0.4s +.inst 0xcec08432 //sm4e v18.4s,v1.4s +.inst 0xcec08452 //sm4e v18.4s,v2.4s +.inst 0xcec08472 //sm4e v18.4s,v3.4s +.inst 0xcec08492 //sm4e v18.4s,v4.4s +.inst 0xcec084b2 //sm4e v18.4s,v5.4s +.inst 0xcec084d2 //sm4e v18.4s,v6.4s +.inst 0xcec084f2 //sm4e v18.4s,v7.4s + rev64 v18.4S,v18.4S + ext v18.16b,v18.16b,v18.16b,#8 +#ifndef __AARCH64EB__ + rev32 v17.16b,v17.16b +#endif + eor v19.16b,v19.16b,v18.16b +.inst 0xcec08413 //sm4e v19.4s,v0.4s +.inst 0xcec08433 //sm4e v19.4s,v1.4s +.inst 0xcec08453 //sm4e v19.4s,v2.4s +.inst 0xcec08473 //sm4e v19.4s,v3.4s +.inst 0xcec08493 //sm4e v19.4s,v4.4s +.inst 0xcec084b3 //sm4e v19.4s,v5.4s +.inst 0xcec084d3 //sm4e v19.4s,v6.4s +.inst 0xcec084f3 //sm4e v19.4s,v7.4s + rev64 v19.4S,v19.4S + ext v19.16b,v19.16b,v19.16b,#8 +#ifndef __AARCH64EB__ + rev32 v18.16b,v18.16b +#endif +#ifndef __AARCH64EB__ + rev32 v19.16b,v19.16b +#endif + mov v8.16b,v19.16b + st1 {v16.4s,v17.4s,v18.4s,v19.4s},[x1],#64 + subs x2,x2,#64 + b.ne 1b +1: + subs x2,x2,#16 + b.lt 3f + ld1 {v16.4s},[x0],#16 + eor v8.16b,v8.16b,v16.16b +#ifndef __AARCH64EB__ + rev32 v8.16b,v8.16b +#endif +.inst 0xcec08408 //sm4e v8.4s,v0.4s +.inst 0xcec08428 //sm4e v8.4s,v1.4s +.inst 0xcec08448 //sm4e v8.4s,v2.4s +.inst 0xcec08468 //sm4e v8.4s,v3.4s +.inst 0xcec08488 //sm4e v8.4s,v4.4s +.inst 0xcec084a8 //sm4e v8.4s,v5.4s +.inst 0xcec084c8 //sm4e v8.4s,v6.4s +.inst 0xcec084e8 //sm4e v8.4s,v7.4s + rev64 v8.4S,v8.4S + ext v8.16b,v8.16b,v8.16b,#8 +#ifndef __AARCH64EB__ + rev32 v8.16b,v8.16b +#endif + st1 {v8.4s},[x1],#16 + b.ne 1b + b 3f +.Ldec: +1: + cmp x2, #64 + b.lt 1f + ld1 {v16.4s,v17.4s,v18.4s,v19.4s},[x0] + ld1 {v24.4s,v25.4s,v26.4s,v27.4s},[x0],#64 + cmp x2,#128 + b.lt 2f + // 8 blocks mode + ld1 {v20.4s,v21.4s,v22.4s,v23.4s},[x0] + ld1 {v28.4s,v29.4s,v30.4s,v31.4s},[x0],#64 +#ifndef __AARCH64EB__ + rev32 v16.16b,v16.16b +#endif +#ifndef __AARCH64EB__ + rev32 v17.16b,v17.16b +#endif +#ifndef __AARCH64EB__ + rev32 v18.16b,v18.16b +#endif +#ifndef __AARCH64EB__ + rev32 v19.16b,v19.16b +#endif +#ifndef __AARCH64EB__ + rev32 v20.16b,v20.16b +#endif +#ifndef __AARCH64EB__ + rev32 v21.16b,v21.16b +#endif +#ifndef __AARCH64EB__ + rev32 v22.16b,v22.16b +#endif +#ifndef __AARCH64EB__ + rev32 v23.16b,v23.16b +#endif +.inst 0xcec08410 //sm4e v16.4s,v0.4s +.inst 0xcec08411 //sm4e v17.4s,v0.4s +.inst 0xcec08412 //sm4e v18.4s,v0.4s +.inst 0xcec08413 //sm4e v19.4s,v0.4s + +.inst 0xcec08430 //sm4e v16.4s,v1.4s +.inst 0xcec08431 //sm4e v17.4s,v1.4s +.inst 0xcec08432 //sm4e v18.4s,v1.4s +.inst 0xcec08433 //sm4e v19.4s,v1.4s + +.inst 0xcec08450 //sm4e v16.4s,v2.4s +.inst 0xcec08451 //sm4e v17.4s,v2.4s +.inst 0xcec08452 //sm4e v18.4s,v2.4s +.inst 0xcec08453 //sm4e v19.4s,v2.4s + +.inst 0xcec08470 //sm4e v16.4s,v3.4s +.inst 0xcec08471 //sm4e v17.4s,v3.4s +.inst 0xcec08472 //sm4e v18.4s,v3.4s +.inst 0xcec08473 //sm4e v19.4s,v3.4s + +.inst 0xcec08490 //sm4e v16.4s,v4.4s +.inst 0xcec08491 //sm4e v17.4s,v4.4s +.inst 0xcec08492 //sm4e v18.4s,v4.4s +.inst 0xcec08493 //sm4e v19.4s,v4.4s + +.inst 0xcec084b0 //sm4e v16.4s,v5.4s +.inst 0xcec084b1 //sm4e v17.4s,v5.4s +.inst 0xcec084b2 //sm4e v18.4s,v5.4s +.inst 0xcec084b3 //sm4e v19.4s,v5.4s + +.inst 0xcec084d0 //sm4e v16.4s,v6.4s +.inst 0xcec084d1 //sm4e v17.4s,v6.4s +.inst 0xcec084d2 //sm4e v18.4s,v6.4s +.inst 0xcec084d3 //sm4e v19.4s,v6.4s + +.inst 0xcec084f0 //sm4e v16.4s,v7.4s + rev64 v16.4S,v16.4S +.inst 0xcec084f1 //sm4e v17.4s,v7.4s + ext v16.16b,v16.16b,v16.16b,#8 + rev64 v17.4S,v17.4S +.inst 0xcec084f2 //sm4e v18.4s,v7.4s + ext v17.16b,v17.16b,v17.16b,#8 + rev64 v18.4S,v18.4S +.inst 0xcec084f3 //sm4e v19.4s,v7.4s + ext v18.16b,v18.16b,v18.16b,#8 + rev64 v19.4S,v19.4S + ext v19.16b,v19.16b,v19.16b,#8 +.inst 0xcec08414 //sm4e v20.4s,v0.4s +.inst 0xcec08415 //sm4e v21.4s,v0.4s +.inst 0xcec08416 //sm4e v22.4s,v0.4s +.inst 0xcec08417 //sm4e v23.4s,v0.4s + +.inst 0xcec08434 //sm4e v20.4s,v1.4s +.inst 0xcec08435 //sm4e v21.4s,v1.4s +.inst 0xcec08436 //sm4e v22.4s,v1.4s +.inst 0xcec08437 //sm4e v23.4s,v1.4s + +.inst 0xcec08454 //sm4e v20.4s,v2.4s +.inst 0xcec08455 //sm4e v21.4s,v2.4s +.inst 0xcec08456 //sm4e v22.4s,v2.4s +.inst 0xcec08457 //sm4e v23.4s,v2.4s + +.inst 0xcec08474 //sm4e v20.4s,v3.4s +.inst 0xcec08475 //sm4e v21.4s,v3.4s +.inst 0xcec08476 //sm4e v22.4s,v3.4s +.inst 0xcec08477 //sm4e v23.4s,v3.4s + +.inst 0xcec08494 //sm4e v20.4s,v4.4s +.inst 0xcec08495 //sm4e v21.4s,v4.4s +.inst 0xcec08496 //sm4e v22.4s,v4.4s +.inst 0xcec08497 //sm4e v23.4s,v4.4s + +.inst 0xcec084b4 //sm4e v20.4s,v5.4s +.inst 0xcec084b5 //sm4e v21.4s,v5.4s +.inst 0xcec084b6 //sm4e v22.4s,v5.4s +.inst 0xcec084b7 //sm4e v23.4s,v5.4s + +.inst 0xcec084d4 //sm4e v20.4s,v6.4s +.inst 0xcec084d5 //sm4e v21.4s,v6.4s +.inst 0xcec084d6 //sm4e v22.4s,v6.4s +.inst 0xcec084d7 //sm4e v23.4s,v6.4s + +.inst 0xcec084f4 //sm4e v20.4s,v7.4s + rev64 v20.4S,v20.4S +.inst 0xcec084f5 //sm4e v21.4s,v7.4s + ext v20.16b,v20.16b,v20.16b,#8 + rev64 v21.4S,v21.4S +.inst 0xcec084f6 //sm4e v22.4s,v7.4s + ext v21.16b,v21.16b,v21.16b,#8 + rev64 v22.4S,v22.4S +.inst 0xcec084f7 //sm4e v23.4s,v7.4s + ext v22.16b,v22.16b,v22.16b,#8 + rev64 v23.4S,v23.4S + ext v23.16b,v23.16b,v23.16b,#8 +#ifndef __AARCH64EB__ + rev32 v16.16b,v16.16b +#endif +#ifndef __AARCH64EB__ + rev32 v17.16b,v17.16b +#endif +#ifndef __AARCH64EB__ + rev32 v18.16b,v18.16b +#endif +#ifndef __AARCH64EB__ + rev32 v19.16b,v19.16b +#endif +#ifndef __AARCH64EB__ + rev32 v20.16b,v20.16b +#endif +#ifndef __AARCH64EB__ + rev32 v21.16b,v21.16b +#endif +#ifndef __AARCH64EB__ + rev32 v22.16b,v22.16b +#endif +#ifndef __AARCH64EB__ + rev32 v23.16b,v23.16b +#endif + eor v16.16b,v16.16b,v8.16b + eor v17.16b,v17.16b,v24.16b + eor v18.16b,v18.16b,v25.16b + mov v8.16b,v31.16b + eor v19.16b,v19.16b,v26.16b + eor v20.16b,v20.16b,v27.16b + eor v21.16b,v21.16b,v28.16b + eor v22.16b,v22.16b,v29.16b + eor v23.16b,v23.16b,v30.16b + st1 {v16.4s,v17.4s,v18.4s,v19.4s},[x1],#64 + st1 {v20.4s,v21.4s,v22.4s,v23.4s},[x1],#64 + subs x2,x2,128 + b.gt 1b + b 3f + // 4 blocks mode +2: +#ifndef __AARCH64EB__ + rev32 v16.16b,v16.16b +#endif +#ifndef __AARCH64EB__ + rev32 v17.16b,v17.16b +#endif +#ifndef __AARCH64EB__ + rev32 v18.16b,v18.16b +#endif +#ifndef __AARCH64EB__ + rev32 v19.16b,v19.16b +#endif +.inst 0xcec08410 //sm4e v16.4s,v0.4s +.inst 0xcec08411 //sm4e v17.4s,v0.4s +.inst 0xcec08412 //sm4e v18.4s,v0.4s +.inst 0xcec08413 //sm4e v19.4s,v0.4s + +.inst 0xcec08430 //sm4e v16.4s,v1.4s +.inst 0xcec08431 //sm4e v17.4s,v1.4s +.inst 0xcec08432 //sm4e v18.4s,v1.4s +.inst 0xcec08433 //sm4e v19.4s,v1.4s + +.inst 0xcec08450 //sm4e v16.4s,v2.4s +.inst 0xcec08451 //sm4e v17.4s,v2.4s +.inst 0xcec08452 //sm4e v18.4s,v2.4s +.inst 0xcec08453 //sm4e v19.4s,v2.4s + +.inst 0xcec08470 //sm4e v16.4s,v3.4s +.inst 0xcec08471 //sm4e v17.4s,v3.4s +.inst 0xcec08472 //sm4e v18.4s,v3.4s +.inst 0xcec08473 //sm4e v19.4s,v3.4s + +.inst 0xcec08490 //sm4e v16.4s,v4.4s +.inst 0xcec08491 //sm4e v17.4s,v4.4s +.inst 0xcec08492 //sm4e v18.4s,v4.4s +.inst 0xcec08493 //sm4e v19.4s,v4.4s + +.inst 0xcec084b0 //sm4e v16.4s,v5.4s +.inst 0xcec084b1 //sm4e v17.4s,v5.4s +.inst 0xcec084b2 //sm4e v18.4s,v5.4s +.inst 0xcec084b3 //sm4e v19.4s,v5.4s + +.inst 0xcec084d0 //sm4e v16.4s,v6.4s +.inst 0xcec084d1 //sm4e v17.4s,v6.4s +.inst 0xcec084d2 //sm4e v18.4s,v6.4s +.inst 0xcec084d3 //sm4e v19.4s,v6.4s + +.inst 0xcec084f0 //sm4e v16.4s,v7.4s + rev64 v16.4S,v16.4S +.inst 0xcec084f1 //sm4e v17.4s,v7.4s + ext v16.16b,v16.16b,v16.16b,#8 + rev64 v17.4S,v17.4S +.inst 0xcec084f2 //sm4e v18.4s,v7.4s + ext v17.16b,v17.16b,v17.16b,#8 + rev64 v18.4S,v18.4S +.inst 0xcec084f3 //sm4e v19.4s,v7.4s + ext v18.16b,v18.16b,v18.16b,#8 + rev64 v19.4S,v19.4S + ext v19.16b,v19.16b,v19.16b,#8 +#ifndef __AARCH64EB__ + rev32 v16.16b,v16.16b +#endif +#ifndef __AARCH64EB__ + rev32 v17.16b,v17.16b +#endif +#ifndef __AARCH64EB__ + rev32 v18.16b,v18.16b +#endif +#ifndef __AARCH64EB__ + rev32 v19.16b,v19.16b +#endif + eor v16.16b,v16.16b,v8.16b + eor v17.16b,v17.16b,v24.16b + mov v8.16b,v27.16b + eor v18.16b,v18.16b,v25.16b + eor v19.16b,v19.16b,v26.16b + st1 {v16.4s,v17.4s,v18.4s,v19.4s},[x1],#64 + subs x2,x2,#64 + b.gt 1b +1: + subs x2,x2,#16 + b.lt 3f + ld1 {v16.4s},[x0],#16 + mov v24.16b,v16.16b +#ifndef __AARCH64EB__ + rev32 v16.16b,v16.16b +#endif +.inst 0xcec08410 //sm4e v16.4s,v0.4s +.inst 0xcec08430 //sm4e v16.4s,v1.4s +.inst 0xcec08450 //sm4e v16.4s,v2.4s +.inst 0xcec08470 //sm4e v16.4s,v3.4s +.inst 0xcec08490 //sm4e v16.4s,v4.4s +.inst 0xcec084b0 //sm4e v16.4s,v5.4s +.inst 0xcec084d0 //sm4e v16.4s,v6.4s +.inst 0xcec084f0 //sm4e v16.4s,v7.4s + rev64 v16.4S,v16.4S + ext v16.16b,v16.16b,v16.16b,#8 +#ifndef __AARCH64EB__ + rev32 v16.16b,v16.16b +#endif + eor v16.16b,v16.16b,v8.16b + mov v8.16b,v24.16b + st1 {v16.4s},[x1],#16 + b.ne 1b +3: + // save back IV + st1 {v8.4s},[x4] + ldp d8,d9,[sp],#16 + ret +.size sm4_v8_cbc_encrypt,.-sm4_v8_cbc_encrypt +.globl sm4_v8_ctr32_encrypt_blocks +.type sm4_v8_ctr32_encrypt_blocks,%function +.align 5 +sm4_v8_ctr32_encrypt_blocks: + AARCH64_VALID_CALL_TARGET + stp d8,d9,[sp, #-16]! + + ld1 {v8.4s},[x4] + ld1 {v0.4s,v1.4s,v2.4s,v3.4s},[x3],64 + ld1 {v4.4s,v5.4s,v6.4s,v7.4s},[x3] +#ifndef __AARCH64EB__ + rev32 v8.16b,v8.16b +#endif + mov w5,v8.s[3] +1: + cmp x2,#4 + b.lt 1f + ld1 {v24.4s,v25.4s,v26.4s,v27.4s},[x0],#64 + mov v16.16b,v8.16b + mov v17.16b,v8.16b + mov v18.16b,v8.16b + mov v19.16b,v8.16b + add w5,w5,#1 + mov v17.s[3],w5 + add w5,w5,#1 + mov v18.s[3],w5 + add w5,w5,#1 + mov v19.s[3],w5 + cmp x2,#8 + b.lt 2f + ld1 {v28.4s,v29.4s,v30.4s,v31.4s},[x0],#64 + mov v20.16b,v8.16b + mov v21.16b,v8.16b + mov v22.16b,v8.16b + mov v23.16b,v8.16b + add w5,w5,#1 + mov v20.s[3],w5 + add w5,w5,#1 + mov v21.s[3],w5 + add w5,w5,#1 + mov v22.s[3],w5 + add w5,w5,#1 + mov v23.s[3],w5 +.inst 0xcec08410 //sm4e v16.4s,v0.4s +.inst 0xcec08411 //sm4e v17.4s,v0.4s +.inst 0xcec08412 //sm4e v18.4s,v0.4s +.inst 0xcec08413 //sm4e v19.4s,v0.4s + +.inst 0xcec08430 //sm4e v16.4s,v1.4s +.inst 0xcec08431 //sm4e v17.4s,v1.4s +.inst 0xcec08432 //sm4e v18.4s,v1.4s +.inst 0xcec08433 //sm4e v19.4s,v1.4s + +.inst 0xcec08450 //sm4e v16.4s,v2.4s +.inst 0xcec08451 //sm4e v17.4s,v2.4s +.inst 0xcec08452 //sm4e v18.4s,v2.4s +.inst 0xcec08453 //sm4e v19.4s,v2.4s + +.inst 0xcec08470 //sm4e v16.4s,v3.4s +.inst 0xcec08471 //sm4e v17.4s,v3.4s +.inst 0xcec08472 //sm4e v18.4s,v3.4s +.inst 0xcec08473 //sm4e v19.4s,v3.4s + +.inst 0xcec08490 //sm4e v16.4s,v4.4s +.inst 0xcec08491 //sm4e v17.4s,v4.4s +.inst 0xcec08492 //sm4e v18.4s,v4.4s +.inst 0xcec08493 //sm4e v19.4s,v4.4s + +.inst 0xcec084b0 //sm4e v16.4s,v5.4s +.inst 0xcec084b1 //sm4e v17.4s,v5.4s +.inst 0xcec084b2 //sm4e v18.4s,v5.4s +.inst 0xcec084b3 //sm4e v19.4s,v5.4s + +.inst 0xcec084d0 //sm4e v16.4s,v6.4s +.inst 0xcec084d1 //sm4e v17.4s,v6.4s +.inst 0xcec084d2 //sm4e v18.4s,v6.4s +.inst 0xcec084d3 //sm4e v19.4s,v6.4s + +.inst 0xcec084f0 //sm4e v16.4s,v7.4s + rev64 v16.4S,v16.4S +.inst 0xcec084f1 //sm4e v17.4s,v7.4s + ext v16.16b,v16.16b,v16.16b,#8 + rev64 v17.4S,v17.4S +.inst 0xcec084f2 //sm4e v18.4s,v7.4s + ext v17.16b,v17.16b,v17.16b,#8 + rev64 v18.4S,v18.4S +.inst 0xcec084f3 //sm4e v19.4s,v7.4s + ext v18.16b,v18.16b,v18.16b,#8 + rev64 v19.4S,v19.4S + ext v19.16b,v19.16b,v19.16b,#8 +.inst 0xcec08414 //sm4e v20.4s,v0.4s +.inst 0xcec08415 //sm4e v21.4s,v0.4s +.inst 0xcec08416 //sm4e v22.4s,v0.4s +.inst 0xcec08417 //sm4e v23.4s,v0.4s + +.inst 0xcec08434 //sm4e v20.4s,v1.4s +.inst 0xcec08435 //sm4e v21.4s,v1.4s +.inst 0xcec08436 //sm4e v22.4s,v1.4s +.inst 0xcec08437 //sm4e v23.4s,v1.4s + +.inst 0xcec08454 //sm4e v20.4s,v2.4s +.inst 0xcec08455 //sm4e v21.4s,v2.4s +.inst 0xcec08456 //sm4e v22.4s,v2.4s +.inst 0xcec08457 //sm4e v23.4s,v2.4s + +.inst 0xcec08474 //sm4e v20.4s,v3.4s +.inst 0xcec08475 //sm4e v21.4s,v3.4s +.inst 0xcec08476 //sm4e v22.4s,v3.4s +.inst 0xcec08477 //sm4e v23.4s,v3.4s + +.inst 0xcec08494 //sm4e v20.4s,v4.4s +.inst 0xcec08495 //sm4e v21.4s,v4.4s +.inst 0xcec08496 //sm4e v22.4s,v4.4s +.inst 0xcec08497 //sm4e v23.4s,v4.4s + +.inst 0xcec084b4 //sm4e v20.4s,v5.4s +.inst 0xcec084b5 //sm4e v21.4s,v5.4s +.inst 0xcec084b6 //sm4e v22.4s,v5.4s +.inst 0xcec084b7 //sm4e v23.4s,v5.4s + +.inst 0xcec084d4 //sm4e v20.4s,v6.4s +.inst 0xcec084d5 //sm4e v21.4s,v6.4s +.inst 0xcec084d6 //sm4e v22.4s,v6.4s +.inst 0xcec084d7 //sm4e v23.4s,v6.4s + +.inst 0xcec084f4 //sm4e v20.4s,v7.4s + rev64 v20.4S,v20.4S +.inst 0xcec084f5 //sm4e v21.4s,v7.4s + ext v20.16b,v20.16b,v20.16b,#8 + rev64 v21.4S,v21.4S +.inst 0xcec084f6 //sm4e v22.4s,v7.4s + ext v21.16b,v21.16b,v21.16b,#8 + rev64 v22.4S,v22.4S +.inst 0xcec084f7 //sm4e v23.4s,v7.4s + ext v22.16b,v22.16b,v22.16b,#8 + rev64 v23.4S,v23.4S + ext v23.16b,v23.16b,v23.16b,#8 +#ifndef __AARCH64EB__ + rev32 v16.16b,v16.16b +#endif +#ifndef __AARCH64EB__ + rev32 v17.16b,v17.16b +#endif +#ifndef __AARCH64EB__ + rev32 v18.16b,v18.16b +#endif +#ifndef __AARCH64EB__ + rev32 v19.16b,v19.16b +#endif +#ifndef __AARCH64EB__ + rev32 v20.16b,v20.16b +#endif +#ifndef __AARCH64EB__ + rev32 v21.16b,v21.16b +#endif +#ifndef __AARCH64EB__ + rev32 v22.16b,v22.16b +#endif +#ifndef __AARCH64EB__ + rev32 v23.16b,v23.16b +#endif + eor v16.16b,v16.16b,v24.16b + eor v17.16b,v17.16b,v25.16b + eor v18.16b,v18.16b,v26.16b + eor v19.16b,v19.16b,v27.16b + eor v20.16b,v20.16b,v28.16b + eor v21.16b,v21.16b,v29.16b + eor v22.16b,v22.16b,v30.16b + eor v23.16b,v23.16b,v31.16b + st1 {v16.4s,v17.4s,v18.4s,v19.4s},[x1],#64 + st1 {v20.4s,v21.4s,v22.4s,v23.4s},[x1],#64 + subs x2,x2,#8 + b.eq 3f + add w5,w5,#1 + mov v8.s[3],w5 + b 1b +2: +.inst 0xcec08410 //sm4e v16.4s,v0.4s +.inst 0xcec08411 //sm4e v17.4s,v0.4s +.inst 0xcec08412 //sm4e v18.4s,v0.4s +.inst 0xcec08413 //sm4e v19.4s,v0.4s + +.inst 0xcec08430 //sm4e v16.4s,v1.4s +.inst 0xcec08431 //sm4e v17.4s,v1.4s +.inst 0xcec08432 //sm4e v18.4s,v1.4s +.inst 0xcec08433 //sm4e v19.4s,v1.4s + +.inst 0xcec08450 //sm4e v16.4s,v2.4s +.inst 0xcec08451 //sm4e v17.4s,v2.4s +.inst 0xcec08452 //sm4e v18.4s,v2.4s +.inst 0xcec08453 //sm4e v19.4s,v2.4s + +.inst 0xcec08470 //sm4e v16.4s,v3.4s +.inst 0xcec08471 //sm4e v17.4s,v3.4s +.inst 0xcec08472 //sm4e v18.4s,v3.4s +.inst 0xcec08473 //sm4e v19.4s,v3.4s + +.inst 0xcec08490 //sm4e v16.4s,v4.4s +.inst 0xcec08491 //sm4e v17.4s,v4.4s +.inst 0xcec08492 //sm4e v18.4s,v4.4s +.inst 0xcec08493 //sm4e v19.4s,v4.4s + +.inst 0xcec084b0 //sm4e v16.4s,v5.4s +.inst 0xcec084b1 //sm4e v17.4s,v5.4s +.inst 0xcec084b2 //sm4e v18.4s,v5.4s +.inst 0xcec084b3 //sm4e v19.4s,v5.4s + +.inst 0xcec084d0 //sm4e v16.4s,v6.4s +.inst 0xcec084d1 //sm4e v17.4s,v6.4s +.inst 0xcec084d2 //sm4e v18.4s,v6.4s +.inst 0xcec084d3 //sm4e v19.4s,v6.4s + +.inst 0xcec084f0 //sm4e v16.4s,v7.4s + rev64 v16.4S,v16.4S +.inst 0xcec084f1 //sm4e v17.4s,v7.4s + ext v16.16b,v16.16b,v16.16b,#8 + rev64 v17.4S,v17.4S +.inst 0xcec084f2 //sm4e v18.4s,v7.4s + ext v17.16b,v17.16b,v17.16b,#8 + rev64 v18.4S,v18.4S +.inst 0xcec084f3 //sm4e v19.4s,v7.4s + ext v18.16b,v18.16b,v18.16b,#8 + rev64 v19.4S,v19.4S + ext v19.16b,v19.16b,v19.16b,#8 +#ifndef __AARCH64EB__ + rev32 v16.16b,v16.16b +#endif +#ifndef __AARCH64EB__ + rev32 v17.16b,v17.16b +#endif +#ifndef __AARCH64EB__ + rev32 v18.16b,v18.16b +#endif +#ifndef __AARCH64EB__ + rev32 v19.16b,v19.16b +#endif + eor v16.16b,v16.16b,v24.16b + eor v17.16b,v17.16b,v25.16b + eor v18.16b,v18.16b,v26.16b + eor v19.16b,v19.16b,v27.16b + st1 {v16.4s,v17.4s,v18.4s,v19.4s},[x1],#64 + subs x2,x2,#4 + b.eq 3f + add w5,w5,#1 + mov v8.s[3],w5 + b 1b +1: + subs x2,x2,#1 + b.lt 3f + mov v16.16b,v8.16b + ld1 {v24.4s},[x0],#16 +.inst 0xcec08410 //sm4e v16.4s,v0.4s +.inst 0xcec08430 //sm4e v16.4s,v1.4s +.inst 0xcec08450 //sm4e v16.4s,v2.4s +.inst 0xcec08470 //sm4e v16.4s,v3.4s +.inst 0xcec08490 //sm4e v16.4s,v4.4s +.inst 0xcec084b0 //sm4e v16.4s,v5.4s +.inst 0xcec084d0 //sm4e v16.4s,v6.4s +.inst 0xcec084f0 //sm4e v16.4s,v7.4s + rev64 v16.4S,v16.4S + ext v16.16b,v16.16b,v16.16b,#8 +#ifndef __AARCH64EB__ + rev32 v16.16b,v16.16b +#endif + eor v16.16b,v16.16b,v24.16b + st1 {v16.4s},[x1],#16 + b.eq 3f + add w5,w5,#1 + mov v8.s[3],w5 + b 1b +3: + ldp d8,d9,[sp],#16 + ret +.size sm4_v8_ctr32_encrypt_blocks,.-sm4_v8_ctr32_encrypt_blocks diff --git a/deps/openssl/config/archs/linux-aarch64/asm/crypto/sm4/vpsm4-armv8.S b/deps/openssl/config/archs/linux-aarch64/asm/crypto/sm4/vpsm4-armv8.S new file mode 100644 index 00000000000000..b2aad3252e116f --- /dev/null +++ b/deps/openssl/config/archs/linux-aarch64/asm/crypto/sm4/vpsm4-armv8.S @@ -0,0 +1,5020 @@ +// Copyright 2020-2025 The OpenSSL Project Authors. All Rights Reserved. +// +// Licensed under the Apache License 2.0 (the "License"). You may not use +// this file except in compliance with the License. You can obtain a copy +// in the file LICENSE in the source distribution or at +// https://www.openssl.org/source/license.html + +// +// This module implements SM4 with ASIMD on aarch64 +// +// Feb 2022 +// + +// $output is the last argument if it looks like a file (it has an extension) +// $flavour is the first argument if it doesn't look like a file +#include "arm_arch.h" +.arch armv8-a +.text + +.section .rodata +.type _vpsm4_consts,%object +.align 7 +_vpsm4_consts: +.Lsbox: +.byte 0xD6,0x90,0xE9,0xFE,0xCC,0xE1,0x3D,0xB7,0x16,0xB6,0x14,0xC2,0x28,0xFB,0x2C,0x05 +.byte 0x2B,0x67,0x9A,0x76,0x2A,0xBE,0x04,0xC3,0xAA,0x44,0x13,0x26,0x49,0x86,0x06,0x99 +.byte 0x9C,0x42,0x50,0xF4,0x91,0xEF,0x98,0x7A,0x33,0x54,0x0B,0x43,0xED,0xCF,0xAC,0x62 +.byte 0xE4,0xB3,0x1C,0xA9,0xC9,0x08,0xE8,0x95,0x80,0xDF,0x94,0xFA,0x75,0x8F,0x3F,0xA6 +.byte 0x47,0x07,0xA7,0xFC,0xF3,0x73,0x17,0xBA,0x83,0x59,0x3C,0x19,0xE6,0x85,0x4F,0xA8 +.byte 0x68,0x6B,0x81,0xB2,0x71,0x64,0xDA,0x8B,0xF8,0xEB,0x0F,0x4B,0x70,0x56,0x9D,0x35 +.byte 0x1E,0x24,0x0E,0x5E,0x63,0x58,0xD1,0xA2,0x25,0x22,0x7C,0x3B,0x01,0x21,0x78,0x87 +.byte 0xD4,0x00,0x46,0x57,0x9F,0xD3,0x27,0x52,0x4C,0x36,0x02,0xE7,0xA0,0xC4,0xC8,0x9E +.byte 0xEA,0xBF,0x8A,0xD2,0x40,0xC7,0x38,0xB5,0xA3,0xF7,0xF2,0xCE,0xF9,0x61,0x15,0xA1 +.byte 0xE0,0xAE,0x5D,0xA4,0x9B,0x34,0x1A,0x55,0xAD,0x93,0x32,0x30,0xF5,0x8C,0xB1,0xE3 +.byte 0x1D,0xF6,0xE2,0x2E,0x82,0x66,0xCA,0x60,0xC0,0x29,0x23,0xAB,0x0D,0x53,0x4E,0x6F +.byte 0xD5,0xDB,0x37,0x45,0xDE,0xFD,0x8E,0x2F,0x03,0xFF,0x6A,0x72,0x6D,0x6C,0x5B,0x51 +.byte 0x8D,0x1B,0xAF,0x92,0xBB,0xDD,0xBC,0x7F,0x11,0xD9,0x5C,0x41,0x1F,0x10,0x5A,0xD8 +.byte 0x0A,0xC1,0x31,0x88,0xA5,0xCD,0x7B,0xBD,0x2D,0x74,0xD0,0x12,0xB8,0xE5,0xB4,0xB0 +.byte 0x89,0x69,0x97,0x4A,0x0C,0x96,0x77,0x7E,0x65,0xB9,0xF1,0x09,0xC5,0x6E,0xC6,0x84 +.byte 0x18,0xF0,0x7D,0xEC,0x3A,0xDC,0x4D,0x20,0x79,0xEE,0x5F,0x3E,0xD7,0xCB,0x39,0x48 +.Lck: +.long 0x00070E15, 0x1C232A31, 0x383F464D, 0x545B6269 +.long 0x70777E85, 0x8C939AA1, 0xA8AFB6BD, 0xC4CBD2D9 +.long 0xE0E7EEF5, 0xFC030A11, 0x181F262D, 0x343B4249 +.long 0x50575E65, 0x6C737A81, 0x888F969D, 0xA4ABB2B9 +.long 0xC0C7CED5, 0xDCE3EAF1, 0xF8FF060D, 0x141B2229 +.long 0x30373E45, 0x4C535A61, 0x686F767D, 0x848B9299 +.long 0xA0A7AEB5, 0xBCC3CAD1, 0xD8DFE6ED, 0xF4FB0209 +.long 0x10171E25, 0x2C333A41, 0x484F565D, 0x646B7279 +.Lfk: +.quad 0x56aa3350a3b1bac6,0xb27022dc677d9197 +.Lshuffles: +.quad 0x0B0A090807060504,0x030201000F0E0D0C +.Lxts_magic: +.quad 0x0101010101010187,0x0101010101010101 + +.size _vpsm4_consts,.-_vpsm4_consts + +.previous + +.type _vpsm4_set_key,%function +.align 4 +_vpsm4_set_key: + AARCH64_VALID_CALL_TARGET + ld1 {v5.4s},[x0] + adrp x10,.Lsbox + add x10,x10,#:lo12:.Lsbox + ld1 {v16.16b,v17.16b,v18.16b,v19.16b},[x10],#64 + ld1 {v20.16b,v21.16b,v22.16b,v23.16b},[x10],#64 + ld1 {v24.16b,v25.16b,v26.16b,v27.16b},[x10],#64 + ld1 {v28.16b,v29.16b,v30.16b,v31.16b},[x10] +#ifndef __AARCH64EB__ + rev32 v5.16b,v5.16b +#endif + adrp x5,.Lshuffles + add x5,x5,#:lo12:.Lshuffles + ld1 {v7.2d},[x5] + adrp x5,.Lfk + add x5,x5,#:lo12:.Lfk + ld1 {v6.2d},[x5] + eor v5.16b,v5.16b,v6.16b + mov x6,#32 + adrp x5,.Lck + add x5,x5,#:lo12:.Lck + movi v0.16b,#64 + cbnz w2,1f + add x1,x1,124 +1: + mov w7,v5.s[1] + ldr w8,[x5],#4 + eor w8,w8,w7 + mov w7,v5.s[2] + eor w8,w8,w7 + mov w7,v5.s[3] + eor w8,w8,w7 + // sbox lookup + mov v4.s[0],w8 + tbl v1.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v4.16b + sub v4.16b,v4.16b,v0.16b + tbx v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v4.16b + sub v4.16b,v4.16b,v0.16b + tbx v1.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v4.16b + sub v4.16b,v4.16b,v0.16b + tbx v1.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v4.16b + mov w7,v1.s[0] + eor w8,w7,w7,ror #19 + eor w8,w8,w7,ror #9 + mov w7,v5.s[0] + eor w8,w8,w7 + mov v5.s[0],w8 + cbz w2,2f + str w8,[x1],#4 + b 3f +2: + str w8,[x1],#-4 +3: + tbl v5.16b,{v5.16b},v7.16b + subs x6,x6,#1 + b.ne 1b + ret +.size _vpsm4_set_key,.-_vpsm4_set_key +.type _vpsm4_enc_4blks,%function +.align 4 +_vpsm4_enc_4blks: + AARCH64_VALID_CALL_TARGET + mov x10,x3 + mov w11,#8 +10: + ldp w7,w8,[x10],8 + dup v12.4s,w7 + dup v13.4s,w8 + + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + eor v14.16b,v6.16b,v7.16b + eor v12.16b,v5.16b,v12.16b + eor v12.16b,v14.16b,v12.16b + movi v0.16b,#64 + movi v1.16b,#128 + movi v2.16b,#192 + sub v0.16b,v12.16b,v0.16b + sub v1.16b,v12.16b,v1.16b + sub v2.16b,v12.16b,v2.16b + tbl v12.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v12.16b + tbl v0.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v0.16b + tbl v1.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v1.16b + tbl v2.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v2.16b + add v0.2d,v0.2d,v1.2d + add v2.2d,v2.2d,v12.2d + add v12.2d,v0.2d,v2.2d + + ushr v0.4s,v12.4s,32-2 + sli v0.4s,v12.4s,2 + ushr v2.4s,v12.4s,32-10 + eor v1.16b,v0.16b,v12.16b + sli v2.4s,v12.4s,10 + eor v1.16b,v2.16b,v1.16b + ushr v0.4s,v12.4s,32-18 + sli v0.4s,v12.4s,18 + ushr v2.4s,v12.4s,32-24 + eor v1.16b,v0.16b,v1.16b + sli v2.4s,v12.4s,24 + eor v12.16b,v2.16b,v1.16b + eor v4.16b,v4.16b,v12.16b + + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + eor v14.16b,v14.16b,v4.16b + eor v13.16b,v14.16b,v13.16b + movi v0.16b,#64 + movi v1.16b,#128 + movi v2.16b,#192 + sub v0.16b,v13.16b,v0.16b + sub v1.16b,v13.16b,v1.16b + sub v2.16b,v13.16b,v2.16b + tbl v13.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v13.16b + tbl v0.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v0.16b + tbl v1.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v1.16b + tbl v2.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v2.16b + add v0.2d,v0.2d,v1.2d + add v2.2d,v2.2d,v13.2d + add v13.2d,v0.2d,v2.2d + + ushr v0.4s,v13.4s,32-2 + sli v0.4s,v13.4s,2 + ushr v2.4s,v13.4s,32-10 + eor v1.16b,v0.16b,v13.16b + sli v2.4s,v13.4s,10 + eor v1.16b,v2.16b,v1.16b + ushr v0.4s,v13.4s,32-18 + sli v0.4s,v13.4s,18 + ushr v2.4s,v13.4s,32-24 + eor v1.16b,v0.16b,v1.16b + sli v2.4s,v13.4s,24 + eor v13.16b,v2.16b,v1.16b + ldp w7,w8,[x10],8 + eor v5.16b,v5.16b,v13.16b + + dup v12.4s,w7 + dup v13.4s,w8 + + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + eor v14.16b,v4.16b,v5.16b + eor v12.16b,v7.16b,v12.16b + eor v12.16b,v14.16b,v12.16b + movi v0.16b,#64 + movi v1.16b,#128 + movi v2.16b,#192 + sub v0.16b,v12.16b,v0.16b + sub v1.16b,v12.16b,v1.16b + sub v2.16b,v12.16b,v2.16b + tbl v12.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v12.16b + tbl v0.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v0.16b + tbl v1.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v1.16b + tbl v2.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v2.16b + add v0.2d,v0.2d,v1.2d + add v2.2d,v2.2d,v12.2d + add v12.2d,v0.2d,v2.2d + + ushr v0.4s,v12.4s,32-2 + sli v0.4s,v12.4s,2 + ushr v2.4s,v12.4s,32-10 + eor v1.16b,v0.16b,v12.16b + sli v2.4s,v12.4s,10 + eor v1.16b,v2.16b,v1.16b + ushr v0.4s,v12.4s,32-18 + sli v0.4s,v12.4s,18 + ushr v2.4s,v12.4s,32-24 + eor v1.16b,v0.16b,v1.16b + sli v2.4s,v12.4s,24 + eor v12.16b,v2.16b,v1.16b + eor v6.16b,v6.16b,v12.16b + + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + eor v14.16b,v14.16b,v6.16b + eor v13.16b,v14.16b,v13.16b + movi v0.16b,#64 + movi v1.16b,#128 + movi v2.16b,#192 + sub v0.16b,v13.16b,v0.16b + sub v1.16b,v13.16b,v1.16b + sub v2.16b,v13.16b,v2.16b + tbl v13.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v13.16b + tbl v0.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v0.16b + tbl v1.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v1.16b + tbl v2.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v2.16b + add v0.2d,v0.2d,v1.2d + add v2.2d,v2.2d,v13.2d + add v13.2d,v0.2d,v2.2d + + ushr v0.4s,v13.4s,32-2 + sli v0.4s,v13.4s,2 + ushr v2.4s,v13.4s,32-10 + eor v1.16b,v0.16b,v13.16b + sli v2.4s,v13.4s,10 + eor v1.16b,v2.16b,v1.16b + ushr v0.4s,v13.4s,32-18 + sli v0.4s,v13.4s,18 + ushr v2.4s,v13.4s,32-24 + eor v1.16b,v0.16b,v1.16b + sli v2.4s,v13.4s,24 + eor v13.16b,v2.16b,v1.16b + eor v7.16b,v7.16b,v13.16b + subs w11,w11,#1 + b.ne 10b +#ifndef __AARCH64EB__ + rev32 v3.16b,v4.16b +#else + mov v3.16b,v4.16b +#endif +#ifndef __AARCH64EB__ + rev32 v2.16b,v5.16b +#else + mov v2.16b,v5.16b +#endif +#ifndef __AARCH64EB__ + rev32 v1.16b,v6.16b +#else + mov v1.16b,v6.16b +#endif +#ifndef __AARCH64EB__ + rev32 v0.16b,v7.16b +#else + mov v0.16b,v7.16b +#endif + ret +.size _vpsm4_enc_4blks,.-_vpsm4_enc_4blks +.type _vpsm4_enc_8blks,%function +.align 4 +_vpsm4_enc_8blks: + AARCH64_VALID_CALL_TARGET + mov x10,x3 + mov w11,#8 +10: + ldp w7,w8,[x10],8 + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + dup v12.4s,w7 + eor v14.16b,v6.16b,v7.16b + eor v15.16b,v10.16b,v11.16b + eor v0.16b,v5.16b,v12.16b + eor v1.16b,v9.16b,v12.16b + eor v12.16b,v14.16b,v0.16b + eor v13.16b,v15.16b,v1.16b + movi v3.16b,#64 + sub v0.16b,v12.16b,v3.16b + sub v1.16b,v0.16b,v3.16b + sub v2.16b,v1.16b,v3.16b + tbl v12.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v12.16b + tbl v0.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v0.16b + tbl v1.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v1.16b + tbl v2.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v2.16b + add v1.2d,v0.2d,v1.2d + add v12.2d,v2.2d,v12.2d + add v12.2d,v1.2d,v12.2d + + sub v0.16b,v13.16b,v3.16b + sub v1.16b,v0.16b,v3.16b + sub v2.16b,v1.16b,v3.16b + tbl v13.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v13.16b + tbl v0.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v0.16b + tbl v1.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v1.16b + tbl v2.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v2.16b + add v1.2d,v0.2d,v1.2d + add v13.2d,v2.2d,v13.2d + add v13.2d,v1.2d,v13.2d + + ushr v0.4s,v12.4s,32-2 + sli v0.4s,v12.4s,2 + ushr v2.4s,v13.4s,32-2 + eor v1.16b,v0.16b,v12.16b + sli v2.4s,v13.4s,2 + + ushr v0.4s,v12.4s,32-10 + eor v3.16b,v2.16b,v13.16b + sli v0.4s,v12.4s,10 + ushr v2.4s,v13.4s,32-10 + eor v1.16b,v0.16b,v1.16b + sli v2.4s,v13.4s,10 + + ushr v0.4s,v12.4s,32-18 + eor v3.16b,v2.16b,v3.16b + sli v0.4s,v12.4s,18 + ushr v2.4s,v13.4s,32-18 + eor v1.16b,v0.16b,v1.16b + sli v2.4s,v13.4s,18 + + ushr v0.4s,v12.4s,32-24 + eor v3.16b,v2.16b,v3.16b + sli v0.4s,v12.4s,24 + ushr v2.4s,v13.4s,32-24 + eor v12.16b,v0.16b,v1.16b + sli v2.4s,v13.4s,24 + eor v13.16b,v2.16b,v3.16b + eor v4.16b,v4.16b,v12.16b + eor v8.16b,v8.16b,v13.16b + + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + dup v13.4s,w8 + eor v14.16b,v14.16b,v4.16b + eor v15.16b,v15.16b,v8.16b + eor v12.16b,v14.16b,v13.16b + eor v13.16b,v15.16b,v13.16b + movi v3.16b,#64 + sub v0.16b,v12.16b,v3.16b + sub v1.16b,v0.16b,v3.16b + sub v2.16b,v1.16b,v3.16b + tbl v12.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v12.16b + tbl v0.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v0.16b + tbl v1.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v1.16b + tbl v2.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v2.16b + add v1.2d,v0.2d,v1.2d + add v12.2d,v2.2d,v12.2d + add v12.2d,v1.2d,v12.2d + + sub v0.16b,v13.16b,v3.16b + sub v1.16b,v0.16b,v3.16b + sub v2.16b,v1.16b,v3.16b + tbl v13.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v13.16b + tbl v0.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v0.16b + tbl v1.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v1.16b + tbl v2.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v2.16b + add v1.2d,v0.2d,v1.2d + add v13.2d,v2.2d,v13.2d + add v13.2d,v1.2d,v13.2d + + ushr v0.4s,v12.4s,32-2 + sli v0.4s,v12.4s,2 + ushr v2.4s,v13.4s,32-2 + eor v1.16b,v0.16b,v12.16b + sli v2.4s,v13.4s,2 + + ushr v0.4s,v12.4s,32-10 + eor v3.16b,v2.16b,v13.16b + sli v0.4s,v12.4s,10 + ushr v2.4s,v13.4s,32-10 + eor v1.16b,v0.16b,v1.16b + sli v2.4s,v13.4s,10 + + ushr v0.4s,v12.4s,32-18 + eor v3.16b,v2.16b,v3.16b + sli v0.4s,v12.4s,18 + ushr v2.4s,v13.4s,32-18 + eor v1.16b,v0.16b,v1.16b + sli v2.4s,v13.4s,18 + + ushr v0.4s,v12.4s,32-24 + eor v3.16b,v2.16b,v3.16b + sli v0.4s,v12.4s,24 + ushr v2.4s,v13.4s,32-24 + eor v12.16b,v0.16b,v1.16b + sli v2.4s,v13.4s,24 + eor v13.16b,v2.16b,v3.16b + ldp w7,w8,[x10],8 + eor v5.16b,v5.16b,v12.16b + eor v9.16b,v9.16b,v13.16b + + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + dup v12.4s,w7 + eor v14.16b,v4.16b,v5.16b + eor v15.16b,v8.16b,v9.16b + eor v0.16b,v7.16b,v12.16b + eor v1.16b,v11.16b,v12.16b + eor v12.16b,v14.16b,v0.16b + eor v13.16b,v15.16b,v1.16b + movi v3.16b,#64 + sub v0.16b,v12.16b,v3.16b + sub v1.16b,v0.16b,v3.16b + sub v2.16b,v1.16b,v3.16b + tbl v12.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v12.16b + tbl v0.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v0.16b + tbl v1.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v1.16b + tbl v2.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v2.16b + add v1.2d,v0.2d,v1.2d + add v12.2d,v2.2d,v12.2d + add v12.2d,v1.2d,v12.2d + + sub v0.16b,v13.16b,v3.16b + sub v1.16b,v0.16b,v3.16b + sub v2.16b,v1.16b,v3.16b + tbl v13.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v13.16b + tbl v0.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v0.16b + tbl v1.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v1.16b + tbl v2.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v2.16b + add v1.2d,v0.2d,v1.2d + add v13.2d,v2.2d,v13.2d + add v13.2d,v1.2d,v13.2d + + ushr v0.4s,v12.4s,32-2 + sli v0.4s,v12.4s,2 + ushr v2.4s,v13.4s,32-2 + eor v1.16b,v0.16b,v12.16b + sli v2.4s,v13.4s,2 + + ushr v0.4s,v12.4s,32-10 + eor v3.16b,v2.16b,v13.16b + sli v0.4s,v12.4s,10 + ushr v2.4s,v13.4s,32-10 + eor v1.16b,v0.16b,v1.16b + sli v2.4s,v13.4s,10 + + ushr v0.4s,v12.4s,32-18 + eor v3.16b,v2.16b,v3.16b + sli v0.4s,v12.4s,18 + ushr v2.4s,v13.4s,32-18 + eor v1.16b,v0.16b,v1.16b + sli v2.4s,v13.4s,18 + + ushr v0.4s,v12.4s,32-24 + eor v3.16b,v2.16b,v3.16b + sli v0.4s,v12.4s,24 + ushr v2.4s,v13.4s,32-24 + eor v12.16b,v0.16b,v1.16b + sli v2.4s,v13.4s,24 + eor v13.16b,v2.16b,v3.16b + eor v6.16b,v6.16b,v12.16b + eor v10.16b,v10.16b,v13.16b + + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + dup v13.4s,w8 + eor v14.16b,v14.16b,v6.16b + eor v15.16b,v15.16b,v10.16b + eor v12.16b,v14.16b,v13.16b + eor v13.16b,v15.16b,v13.16b + movi v3.16b,#64 + sub v0.16b,v12.16b,v3.16b + sub v1.16b,v0.16b,v3.16b + sub v2.16b,v1.16b,v3.16b + tbl v12.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v12.16b + tbl v0.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v0.16b + tbl v1.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v1.16b + tbl v2.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v2.16b + add v1.2d,v0.2d,v1.2d + add v12.2d,v2.2d,v12.2d + add v12.2d,v1.2d,v12.2d + + sub v0.16b,v13.16b,v3.16b + sub v1.16b,v0.16b,v3.16b + sub v2.16b,v1.16b,v3.16b + tbl v13.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v13.16b + tbl v0.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v0.16b + tbl v1.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v1.16b + tbl v2.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v2.16b + add v1.2d,v0.2d,v1.2d + add v13.2d,v2.2d,v13.2d + add v13.2d,v1.2d,v13.2d + + ushr v0.4s,v12.4s,32-2 + sli v0.4s,v12.4s,2 + ushr v2.4s,v13.4s,32-2 + eor v1.16b,v0.16b,v12.16b + sli v2.4s,v13.4s,2 + + ushr v0.4s,v12.4s,32-10 + eor v3.16b,v2.16b,v13.16b + sli v0.4s,v12.4s,10 + ushr v2.4s,v13.4s,32-10 + eor v1.16b,v0.16b,v1.16b + sli v2.4s,v13.4s,10 + + ushr v0.4s,v12.4s,32-18 + eor v3.16b,v2.16b,v3.16b + sli v0.4s,v12.4s,18 + ushr v2.4s,v13.4s,32-18 + eor v1.16b,v0.16b,v1.16b + sli v2.4s,v13.4s,18 + + ushr v0.4s,v12.4s,32-24 + eor v3.16b,v2.16b,v3.16b + sli v0.4s,v12.4s,24 + ushr v2.4s,v13.4s,32-24 + eor v12.16b,v0.16b,v1.16b + sli v2.4s,v13.4s,24 + eor v13.16b,v2.16b,v3.16b + eor v7.16b,v7.16b,v12.16b + eor v11.16b,v11.16b,v13.16b + subs w11,w11,#1 + b.ne 10b +#ifndef __AARCH64EB__ + rev32 v3.16b,v4.16b +#else + mov v3.16b,v4.16b +#endif +#ifndef __AARCH64EB__ + rev32 v2.16b,v5.16b +#else + mov v2.16b,v5.16b +#endif +#ifndef __AARCH64EB__ + rev32 v1.16b,v6.16b +#else + mov v1.16b,v6.16b +#endif +#ifndef __AARCH64EB__ + rev32 v0.16b,v7.16b +#else + mov v0.16b,v7.16b +#endif +#ifndef __AARCH64EB__ + rev32 v7.16b,v8.16b +#else + mov v7.16b,v8.16b +#endif +#ifndef __AARCH64EB__ + rev32 v6.16b,v9.16b +#else + mov v6.16b,v9.16b +#endif +#ifndef __AARCH64EB__ + rev32 v5.16b,v10.16b +#else + mov v5.16b,v10.16b +#endif +#ifndef __AARCH64EB__ + rev32 v4.16b,v11.16b +#else + mov v4.16b,v11.16b +#endif + ret +.size _vpsm4_enc_8blks,.-_vpsm4_enc_8blks +.globl vpsm4_set_encrypt_key +.type vpsm4_set_encrypt_key,%function +.align 5 +vpsm4_set_encrypt_key: + AARCH64_SIGN_LINK_REGISTER + stp x29,x30,[sp,#-16]! + mov w2,1 + bl _vpsm4_set_key + ldp x29,x30,[sp],#16 + AARCH64_VALIDATE_LINK_REGISTER + ret +.size vpsm4_set_encrypt_key,.-vpsm4_set_encrypt_key +.globl vpsm4_set_decrypt_key +.type vpsm4_set_decrypt_key,%function +.align 5 +vpsm4_set_decrypt_key: + AARCH64_SIGN_LINK_REGISTER + stp x29,x30,[sp,#-16]! + mov w2,0 + bl _vpsm4_set_key + ldp x29,x30,[sp],#16 + AARCH64_VALIDATE_LINK_REGISTER + ret +.size vpsm4_set_decrypt_key,.-vpsm4_set_decrypt_key +.globl vpsm4_encrypt +.type vpsm4_encrypt,%function +.align 5 +vpsm4_encrypt: + AARCH64_VALID_CALL_TARGET + ld1 {v4.4s},[x0] + adrp x10,.Lsbox + add x10,x10,#:lo12:.Lsbox + ld1 {v16.16b,v17.16b,v18.16b,v19.16b},[x10],#64 + ld1 {v20.16b,v21.16b,v22.16b,v23.16b},[x10],#64 + ld1 {v24.16b,v25.16b,v26.16b,v27.16b},[x10],#64 + ld1 {v28.16b,v29.16b,v30.16b,v31.16b},[x10] +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif + mov x3,x2 + mov x10,x3 + mov w11,#8 + mov w12,v4.s[0] + mov w13,v4.s[1] + mov w14,v4.s[2] + mov w15,v4.s[3] +10: + ldp w7,w8,[x10],8 + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + eor w6,w14,w15 + eor w9,w7,w13 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w12,w12,w6 + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + eor w6,w14,w15 + eor w9,w12,w8 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + ldp w7,w8,[x10],8 + eor w13,w13,w6 + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + eor w6,w12,w13 + eor w9,w7,w15 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w14,w14,w6 + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + eor w6,w12,w13 + eor w9,w14,w8 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w15,w15,w6 + subs w11,w11,#1 + b.ne 10b + mov v4.s[0],w15 + mov v4.s[1],w14 + mov v4.s[2],w13 + mov v4.s[3],w12 +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif + st1 {v4.4s},[x1] + ret +.size vpsm4_encrypt,.-vpsm4_encrypt +.globl vpsm4_decrypt +.type vpsm4_decrypt,%function +.align 5 +vpsm4_decrypt: + AARCH64_VALID_CALL_TARGET + ld1 {v4.4s},[x0] + adrp x10,.Lsbox + add x10,x10,#:lo12:.Lsbox + ld1 {v16.16b,v17.16b,v18.16b,v19.16b},[x10],#64 + ld1 {v20.16b,v21.16b,v22.16b,v23.16b},[x10],#64 + ld1 {v24.16b,v25.16b,v26.16b,v27.16b},[x10],#64 + ld1 {v28.16b,v29.16b,v30.16b,v31.16b},[x10] +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif + mov x3,x2 + mov x10,x3 + mov w11,#8 + mov w12,v4.s[0] + mov w13,v4.s[1] + mov w14,v4.s[2] + mov w15,v4.s[3] +10: + ldp w7,w8,[x10],8 + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + eor w6,w14,w15 + eor w9,w7,w13 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w12,w12,w6 + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + eor w6,w14,w15 + eor w9,w12,w8 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + ldp w7,w8,[x10],8 + eor w13,w13,w6 + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + eor w6,w12,w13 + eor w9,w7,w15 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w14,w14,w6 + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + eor w6,w12,w13 + eor w9,w14,w8 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w15,w15,w6 + subs w11,w11,#1 + b.ne 10b + mov v4.s[0],w15 + mov v4.s[1],w14 + mov v4.s[2],w13 + mov v4.s[3],w12 +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif + st1 {v4.4s},[x1] + ret +.size vpsm4_decrypt,.-vpsm4_decrypt +.globl vpsm4_ecb_encrypt +.type vpsm4_ecb_encrypt,%function +.align 5 +vpsm4_ecb_encrypt: + AARCH64_SIGN_LINK_REGISTER + // convert length into blocks + lsr x2,x2,4 + stp d8,d9,[sp,#-80]! + stp d10,d11,[sp,#16] + stp d12,d13,[sp,#32] + stp d14,d15,[sp,#48] + stp x29,x30,[sp,#64] + adrp x10,.Lsbox + add x10,x10,#:lo12:.Lsbox + ld1 {v16.16b,v17.16b,v18.16b,v19.16b},[x10],#64 + ld1 {v20.16b,v21.16b,v22.16b,v23.16b},[x10],#64 + ld1 {v24.16b,v25.16b,v26.16b,v27.16b},[x10],#64 + ld1 {v28.16b,v29.16b,v30.16b,v31.16b},[x10] +.Lecb_8_blocks_process: + cmp w2,#8 + b.lt .Lecb_4_blocks_process + ld4 {v4.4s,v5.4s,v6.4s,v7.4s},[x0],#64 + ld4 {v8.4s,v9.4s,v10.4s,v11.4s},[x0],#64 +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif +#ifndef __AARCH64EB__ + rev32 v5.16b,v5.16b +#endif +#ifndef __AARCH64EB__ + rev32 v6.16b,v6.16b +#endif +#ifndef __AARCH64EB__ + rev32 v7.16b,v7.16b +#endif +#ifndef __AARCH64EB__ + rev32 v8.16b,v8.16b +#endif +#ifndef __AARCH64EB__ + rev32 v9.16b,v9.16b +#endif +#ifndef __AARCH64EB__ + rev32 v10.16b,v10.16b +#endif +#ifndef __AARCH64EB__ + rev32 v11.16b,v11.16b +#endif + bl _vpsm4_enc_8blks + st4 {v0.4s,v1.4s,v2.4s,v3.4s},[x1],#64 + st4 {v4.4s,v5.4s,v6.4s,v7.4s},[x1],#64 + subs w2,w2,#8 + b.gt .Lecb_8_blocks_process + b 100f +.Lecb_4_blocks_process: + cmp w2,#4 + b.lt 1f + ld4 {v4.4s,v5.4s,v6.4s,v7.4s},[x0],#64 +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif +#ifndef __AARCH64EB__ + rev32 v5.16b,v5.16b +#endif +#ifndef __AARCH64EB__ + rev32 v6.16b,v6.16b +#endif +#ifndef __AARCH64EB__ + rev32 v7.16b,v7.16b +#endif + bl _vpsm4_enc_4blks + st4 {v0.4s,v1.4s,v2.4s,v3.4s},[x1],#64 + sub w2,w2,#4 +1: + // process last block + cmp w2,#1 + b.lt 100f + b.gt 1f + ld1 {v4.4s},[x0] +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif + mov x10,x3 + mov w11,#8 + mov w12,v4.s[0] + mov w13,v4.s[1] + mov w14,v4.s[2] + mov w15,v4.s[3] +10: + ldp w7,w8,[x10],8 + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + eor w6,w14,w15 + eor w9,w7,w13 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w12,w12,w6 + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + eor w6,w14,w15 + eor w9,w12,w8 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + ldp w7,w8,[x10],8 + eor w13,w13,w6 + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + eor w6,w12,w13 + eor w9,w7,w15 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w14,w14,w6 + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + eor w6,w12,w13 + eor w9,w14,w8 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w15,w15,w6 + subs w11,w11,#1 + b.ne 10b + mov v4.s[0],w15 + mov v4.s[1],w14 + mov v4.s[2],w13 + mov v4.s[3],w12 +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif + st1 {v4.4s},[x1] + b 100f +1: // process last 2 blocks + ld4 {v4.s,v5.s,v6.s,v7.s}[0],[x0],#16 + ld4 {v4.s,v5.s,v6.s,v7.s}[1],[x0],#16 + cmp w2,#2 + b.gt 1f +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif +#ifndef __AARCH64EB__ + rev32 v5.16b,v5.16b +#endif +#ifndef __AARCH64EB__ + rev32 v6.16b,v6.16b +#endif +#ifndef __AARCH64EB__ + rev32 v7.16b,v7.16b +#endif + bl _vpsm4_enc_4blks + st4 {v0.s,v1.s,v2.s,v3.s}[0],[x1],#16 + st4 {v0.s,v1.s,v2.s,v3.s}[1],[x1] + b 100f +1: // process last 3 blocks + ld4 {v4.s,v5.s,v6.s,v7.s}[2],[x0],#16 +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif +#ifndef __AARCH64EB__ + rev32 v5.16b,v5.16b +#endif +#ifndef __AARCH64EB__ + rev32 v6.16b,v6.16b +#endif +#ifndef __AARCH64EB__ + rev32 v7.16b,v7.16b +#endif + bl _vpsm4_enc_4blks + st4 {v0.s,v1.s,v2.s,v3.s}[0],[x1],#16 + st4 {v0.s,v1.s,v2.s,v3.s}[1],[x1],#16 + st4 {v0.s,v1.s,v2.s,v3.s}[2],[x1] +100: + ldp d10,d11,[sp,#16] + ldp d12,d13,[sp,#32] + ldp d14,d15,[sp,#48] + ldp x29,x30,[sp,#64] + ldp d8,d9,[sp],#80 + AARCH64_VALIDATE_LINK_REGISTER + ret +.size vpsm4_ecb_encrypt,.-vpsm4_ecb_encrypt +.globl vpsm4_cbc_encrypt +.type vpsm4_cbc_encrypt,%function +.align 5 +vpsm4_cbc_encrypt: + AARCH64_VALID_CALL_TARGET + lsr x2,x2,4 + adrp x10,.Lsbox + add x10,x10,#:lo12:.Lsbox + ld1 {v16.16b,v17.16b,v18.16b,v19.16b},[x10],#64 + ld1 {v20.16b,v21.16b,v22.16b,v23.16b},[x10],#64 + ld1 {v24.16b,v25.16b,v26.16b,v27.16b},[x10],#64 + ld1 {v28.16b,v29.16b,v30.16b,v31.16b},[x10] + cbz w5,.Ldec + ld1 {v3.4s},[x4] +.Lcbc_4_blocks_enc: + cmp w2,#4 + b.lt 1f + ld1 {v4.4s,v5.4s,v6.4s,v7.4s},[x0],#64 + eor v4.16b,v4.16b,v3.16b +#ifndef __AARCH64EB__ + rev32 v5.16b,v5.16b +#endif +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif +#ifndef __AARCH64EB__ + rev32 v6.16b,v6.16b +#endif +#ifndef __AARCH64EB__ + rev32 v7.16b,v7.16b +#endif + mov x10,x3 + mov w11,#8 + mov w12,v4.s[0] + mov w13,v4.s[1] + mov w14,v4.s[2] + mov w15,v4.s[3] +10: + ldp w7,w8,[x10],8 + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + eor w6,w14,w15 + eor w9,w7,w13 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w12,w12,w6 + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + eor w6,w14,w15 + eor w9,w12,w8 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + ldp w7,w8,[x10],8 + eor w13,w13,w6 + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + eor w6,w12,w13 + eor w9,w7,w15 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w14,w14,w6 + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + eor w6,w12,w13 + eor w9,w14,w8 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w15,w15,w6 + subs w11,w11,#1 + b.ne 10b + mov v4.s[0],w15 + mov v4.s[1],w14 + mov v4.s[2],w13 + mov v4.s[3],w12 + eor v5.16b,v5.16b,v4.16b + mov x10,x3 + mov w11,#8 + mov w12,v5.s[0] + mov w13,v5.s[1] + mov w14,v5.s[2] + mov w15,v5.s[3] +10: + ldp w7,w8,[x10],8 + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + eor w6,w14,w15 + eor w9,w7,w13 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w12,w12,w6 + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + eor w6,w14,w15 + eor w9,w12,w8 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + ldp w7,w8,[x10],8 + eor w13,w13,w6 + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + eor w6,w12,w13 + eor w9,w7,w15 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w14,w14,w6 + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + eor w6,w12,w13 + eor w9,w14,w8 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w15,w15,w6 + subs w11,w11,#1 + b.ne 10b + mov v5.s[0],w15 + mov v5.s[1],w14 + mov v5.s[2],w13 + mov v5.s[3],w12 +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif + eor v6.16b,v6.16b,v5.16b + mov x10,x3 + mov w11,#8 + mov w12,v6.s[0] + mov w13,v6.s[1] + mov w14,v6.s[2] + mov w15,v6.s[3] +10: + ldp w7,w8,[x10],8 + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + eor w6,w14,w15 + eor w9,w7,w13 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w12,w12,w6 + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + eor w6,w14,w15 + eor w9,w12,w8 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + ldp w7,w8,[x10],8 + eor w13,w13,w6 + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + eor w6,w12,w13 + eor w9,w7,w15 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w14,w14,w6 + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + eor w6,w12,w13 + eor w9,w14,w8 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w15,w15,w6 + subs w11,w11,#1 + b.ne 10b + mov v6.s[0],w15 + mov v6.s[1],w14 + mov v6.s[2],w13 + mov v6.s[3],w12 +#ifndef __AARCH64EB__ + rev32 v5.16b,v5.16b +#endif + eor v7.16b,v7.16b,v6.16b + mov x10,x3 + mov w11,#8 + mov w12,v7.s[0] + mov w13,v7.s[1] + mov w14,v7.s[2] + mov w15,v7.s[3] +10: + ldp w7,w8,[x10],8 + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + eor w6,w14,w15 + eor w9,w7,w13 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w12,w12,w6 + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + eor w6,w14,w15 + eor w9,w12,w8 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + ldp w7,w8,[x10],8 + eor w13,w13,w6 + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + eor w6,w12,w13 + eor w9,w7,w15 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w14,w14,w6 + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + eor w6,w12,w13 + eor w9,w14,w8 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w15,w15,w6 + subs w11,w11,#1 + b.ne 10b + mov v7.s[0],w15 + mov v7.s[1],w14 + mov v7.s[2],w13 + mov v7.s[3],w12 +#ifndef __AARCH64EB__ + rev32 v6.16b,v6.16b +#endif +#ifndef __AARCH64EB__ + rev32 v7.16b,v7.16b +#endif + orr v3.16b,v7.16b,v7.16b + st1 {v4.4s,v5.4s,v6.4s,v7.4s},[x1],#64 + subs w2,w2,#4 + b.ne .Lcbc_4_blocks_enc + b 2f +1: + subs w2,w2,#1 + b.lt 2f + ld1 {v4.4s},[x0],#16 + eor v3.16b,v3.16b,v4.16b +#ifndef __AARCH64EB__ + rev32 v3.16b,v3.16b +#endif + mov x10,x3 + mov w11,#8 + mov w12,v3.s[0] + mov w13,v3.s[1] + mov w14,v3.s[2] + mov w15,v3.s[3] +10: + ldp w7,w8,[x10],8 + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + eor w6,w14,w15 + eor w9,w7,w13 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w12,w12,w6 + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + eor w6,w14,w15 + eor w9,w12,w8 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + ldp w7,w8,[x10],8 + eor w13,w13,w6 + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + eor w6,w12,w13 + eor w9,w7,w15 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w14,w14,w6 + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + eor w6,w12,w13 + eor w9,w14,w8 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w15,w15,w6 + subs w11,w11,#1 + b.ne 10b + mov v3.s[0],w15 + mov v3.s[1],w14 + mov v3.s[2],w13 + mov v3.s[3],w12 +#ifndef __AARCH64EB__ + rev32 v3.16b,v3.16b +#endif + st1 {v3.4s},[x1],#16 + b 1b +2: + // save back IV + st1 {v3.4s},[x4] + ret + +.Ldec: + // decryption mode starts + AARCH64_SIGN_LINK_REGISTER + stp d8,d9,[sp,#-80]! + stp d10,d11,[sp,#16] + stp d12,d13,[sp,#32] + stp d14,d15,[sp,#48] + stp x29,x30,[sp,#64] +.Lcbc_8_blocks_dec: + cmp w2,#8 + b.lt 1f + ld4 {v4.4s,v5.4s,v6.4s,v7.4s},[x0] + add x10,x0,#64 + ld4 {v8.4s,v9.4s,v10.4s,v11.4s},[x10] +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif +#ifndef __AARCH64EB__ + rev32 v5.16b,v5.16b +#endif +#ifndef __AARCH64EB__ + rev32 v6.16b,v6.16b +#endif +#ifndef __AARCH64EB__ + rev32 v7.16b,v7.16b +#endif +#ifndef __AARCH64EB__ + rev32 v8.16b,v8.16b +#endif +#ifndef __AARCH64EB__ + rev32 v9.16b,v9.16b +#endif +#ifndef __AARCH64EB__ + rev32 v10.16b,v10.16b +#endif +#ifndef __AARCH64EB__ + rev32 v11.16b,v11.16b +#endif + bl _vpsm4_enc_8blks + zip1 v8.4s,v0.4s,v1.4s + zip2 v9.4s,v0.4s,v1.4s + zip1 v10.4s,v2.4s,v3.4s + zip2 v11.4s,v2.4s,v3.4s + zip1 v0.2d,v8.2d,v10.2d + zip2 v1.2d,v8.2d,v10.2d + zip1 v2.2d,v9.2d,v11.2d + zip2 v3.2d,v9.2d,v11.2d + zip1 v8.4s,v4.4s,v5.4s + zip2 v9.4s,v4.4s,v5.4s + zip1 v10.4s,v6.4s,v7.4s + zip2 v11.4s,v6.4s,v7.4s + zip1 v4.2d,v8.2d,v10.2d + zip2 v5.2d,v8.2d,v10.2d + zip1 v6.2d,v9.2d,v11.2d + zip2 v7.2d,v9.2d,v11.2d + ld1 {v15.4s},[x4] + ld1 {v8.4s,v9.4s,v10.4s,v11.4s},[x0],#64 + // note ivec1 and vtmpx[3] are reusing the same register + // care needs to be taken to avoid conflict + eor v0.16b,v0.16b,v15.16b + ld1 {v12.4s,v13.4s,v14.4s,v15.4s},[x0],#64 + eor v1.16b,v1.16b,v8.16b + eor v2.16b,v2.16b,v9.16b + eor v3.16b,v3.16b,v10.16b + // save back IV + st1 {v15.4s}, [x4] + eor v4.16b,v4.16b,v11.16b + eor v5.16b,v5.16b,v12.16b + eor v6.16b,v6.16b,v13.16b + eor v7.16b,v7.16b,v14.16b + st1 {v0.4s,v1.4s,v2.4s,v3.4s},[x1],#64 + st1 {v4.4s,v5.4s,v6.4s,v7.4s},[x1],#64 + subs w2,w2,#8 + b.gt .Lcbc_8_blocks_dec + b.eq 100f +1: + ld1 {v15.4s},[x4] +.Lcbc_4_blocks_dec: + cmp w2,#4 + b.lt 1f + ld4 {v4.4s,v5.4s,v6.4s,v7.4s},[x0] +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif +#ifndef __AARCH64EB__ + rev32 v5.16b,v5.16b +#endif +#ifndef __AARCH64EB__ + rev32 v6.16b,v6.16b +#endif +#ifndef __AARCH64EB__ + rev32 v7.16b,v7.16b +#endif + bl _vpsm4_enc_4blks + ld1 {v4.4s,v5.4s,v6.4s,v7.4s},[x0],#64 + zip1 v8.4s,v0.4s,v1.4s + zip2 v9.4s,v0.4s,v1.4s + zip1 v10.4s,v2.4s,v3.4s + zip2 v11.4s,v2.4s,v3.4s + zip1 v0.2d,v8.2d,v10.2d + zip2 v1.2d,v8.2d,v10.2d + zip1 v2.2d,v9.2d,v11.2d + zip2 v3.2d,v9.2d,v11.2d + eor v0.16b,v0.16b,v15.16b + eor v1.16b,v1.16b,v4.16b + orr v15.16b,v7.16b,v7.16b + eor v2.16b,v2.16b,v5.16b + eor v3.16b,v3.16b,v6.16b + st1 {v0.4s,v1.4s,v2.4s,v3.4s},[x1],#64 + subs w2,w2,#4 + b.gt .Lcbc_4_blocks_dec + // save back IV + st1 {v7.4s}, [x4] + b 100f +1: // last block + subs w2,w2,#1 + b.lt 100f + b.gt 1f + ld1 {v4.4s},[x0],#16 + // save back IV + st1 {v4.4s}, [x4] +#ifndef __AARCH64EB__ + rev32 v8.16b,v4.16b +#else + mov v8.16b,v4.16b +#endif + mov x10,x3 + mov w11,#8 + mov w12,v8.s[0] + mov w13,v8.s[1] + mov w14,v8.s[2] + mov w15,v8.s[3] +10: + ldp w7,w8,[x10],8 + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + eor w6,w14,w15 + eor w9,w7,w13 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w12,w12,w6 + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + eor w6,w14,w15 + eor w9,w12,w8 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + ldp w7,w8,[x10],8 + eor w13,w13,w6 + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + eor w6,w12,w13 + eor w9,w7,w15 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w14,w14,w6 + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + eor w6,w12,w13 + eor w9,w14,w8 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w15,w15,w6 + subs w11,w11,#1 + b.ne 10b + mov v8.s[0],w15 + mov v8.s[1],w14 + mov v8.s[2],w13 + mov v8.s[3],w12 +#ifndef __AARCH64EB__ + rev32 v8.16b,v8.16b +#endif + eor v8.16b,v8.16b,v15.16b + st1 {v8.4s},[x1],#16 + b 100f +1: // last two blocks + ld4 {v4.s,v5.s,v6.s,v7.s}[0],[x0] + add x10,x0,#16 + ld4 {v4.s,v5.s,v6.s,v7.s}[1],[x10],#16 + subs w2,w2,1 + b.gt 1f +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif +#ifndef __AARCH64EB__ + rev32 v5.16b,v5.16b +#endif +#ifndef __AARCH64EB__ + rev32 v6.16b,v6.16b +#endif +#ifndef __AARCH64EB__ + rev32 v7.16b,v7.16b +#endif + bl _vpsm4_enc_4blks + ld1 {v4.4s,v5.4s},[x0],#32 + zip1 v8.4s,v0.4s,v1.4s + zip2 v9.4s,v0.4s,v1.4s + zip1 v10.4s,v2.4s,v3.4s + zip2 v11.4s,v2.4s,v3.4s + zip1 v0.2d,v8.2d,v10.2d + zip2 v1.2d,v8.2d,v10.2d + zip1 v2.2d,v9.2d,v11.2d + zip2 v3.2d,v9.2d,v11.2d + eor v0.16b,v0.16b,v15.16b + eor v1.16b,v1.16b,v4.16b + st1 {v0.4s,v1.4s},[x1],#32 + // save back IV + st1 {v5.4s}, [x4] + b 100f +1: // last 3 blocks + ld4 {v4.s,v5.s,v6.s,v7.s}[2],[x10] +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif +#ifndef __AARCH64EB__ + rev32 v5.16b,v5.16b +#endif +#ifndef __AARCH64EB__ + rev32 v6.16b,v6.16b +#endif +#ifndef __AARCH64EB__ + rev32 v7.16b,v7.16b +#endif + bl _vpsm4_enc_4blks + ld1 {v4.4s,v5.4s,v6.4s},[x0],#48 + zip1 v8.4s,v0.4s,v1.4s + zip2 v9.4s,v0.4s,v1.4s + zip1 v10.4s,v2.4s,v3.4s + zip2 v11.4s,v2.4s,v3.4s + zip1 v0.2d,v8.2d,v10.2d + zip2 v1.2d,v8.2d,v10.2d + zip1 v2.2d,v9.2d,v11.2d + zip2 v3.2d,v9.2d,v11.2d + eor v0.16b,v0.16b,v15.16b + eor v1.16b,v1.16b,v4.16b + eor v2.16b,v2.16b,v5.16b + st1 {v0.4s,v1.4s,v2.4s},[x1],#48 + // save back IV + st1 {v6.4s}, [x4] +100: + ldp d10,d11,[sp,#16] + ldp d12,d13,[sp,#32] + ldp d14,d15,[sp,#48] + ldp x29,x30,[sp,#64] + ldp d8,d9,[sp],#80 + AARCH64_VALIDATE_LINK_REGISTER + ret +.size vpsm4_cbc_encrypt,.-vpsm4_cbc_encrypt +.globl vpsm4_ctr32_encrypt_blocks +.type vpsm4_ctr32_encrypt_blocks,%function +.align 5 +vpsm4_ctr32_encrypt_blocks: + AARCH64_VALID_CALL_TARGET + ld1 {v3.4s},[x4] +#ifndef __AARCH64EB__ + rev32 v3.16b,v3.16b +#endif + adrp x10,.Lsbox + add x10,x10,#:lo12:.Lsbox + ld1 {v16.16b,v17.16b,v18.16b,v19.16b},[x10],#64 + ld1 {v20.16b,v21.16b,v22.16b,v23.16b},[x10],#64 + ld1 {v24.16b,v25.16b,v26.16b,v27.16b},[x10],#64 + ld1 {v28.16b,v29.16b,v30.16b,v31.16b},[x10] + cmp w2,#1 + b.ne 1f + // fast processing for one single block without + // context saving overhead + mov x10,x3 + mov w11,#8 + mov w12,v3.s[0] + mov w13,v3.s[1] + mov w14,v3.s[2] + mov w15,v3.s[3] +10: + ldp w7,w8,[x10],8 + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + eor w6,w14,w15 + eor w9,w7,w13 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w12,w12,w6 + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + eor w6,w14,w15 + eor w9,w12,w8 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + ldp w7,w8,[x10],8 + eor w13,w13,w6 + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + eor w6,w12,w13 + eor w9,w7,w15 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w14,w14,w6 + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + eor w6,w12,w13 + eor w9,w14,w8 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w15,w15,w6 + subs w11,w11,#1 + b.ne 10b + mov v3.s[0],w15 + mov v3.s[1],w14 + mov v3.s[2],w13 + mov v3.s[3],w12 +#ifndef __AARCH64EB__ + rev32 v3.16b,v3.16b +#endif + ld1 {v4.4s},[x0] + eor v4.16b,v4.16b,v3.16b + st1 {v4.4s},[x1] + ret +1: + AARCH64_SIGN_LINK_REGISTER + stp d8,d9,[sp,#-80]! + stp d10,d11,[sp,#16] + stp d12,d13,[sp,#32] + stp d14,d15,[sp,#48] + stp x29,x30,[sp,#64] + mov w12,v3.s[0] + mov w13,v3.s[1] + mov w14,v3.s[2] + mov w5,v3.s[3] +.Lctr32_4_blocks_process: + cmp w2,#4 + b.lt 1f + dup v4.4s,w12 + dup v5.4s,w13 + dup v6.4s,w14 + mov v7.s[0],w5 + add w5,w5,#1 + mov v7.s[1],w5 + add w5,w5,#1 + mov v7.s[2],w5 + add w5,w5,#1 + mov v7.s[3],w5 + add w5,w5,#1 + cmp w2,#8 + b.ge .Lctr32_8_blocks_process + bl _vpsm4_enc_4blks + ld4 {v12.4s,v13.4s,v14.4s,v15.4s},[x0],#64 + eor v0.16b,v0.16b,v12.16b + eor v1.16b,v1.16b,v13.16b + eor v2.16b,v2.16b,v14.16b + eor v3.16b,v3.16b,v15.16b + st4 {v0.4s,v1.4s,v2.4s,v3.4s},[x1],#64 + subs w2,w2,#4 + b.ne .Lctr32_4_blocks_process + b 100f +.Lctr32_8_blocks_process: + dup v8.4s,w12 + dup v9.4s,w13 + dup v10.4s,w14 + mov v11.s[0],w5 + add w5,w5,#1 + mov v11.s[1],w5 + add w5,w5,#1 + mov v11.s[2],w5 + add w5,w5,#1 + mov v11.s[3],w5 + add w5,w5,#1 + bl _vpsm4_enc_8blks + ld4 {v12.4s,v13.4s,v14.4s,v15.4s},[x0],#64 + ld4 {v8.4s,v9.4s,v10.4s,v11.4s},[x0],#64 + eor v0.16b,v0.16b,v12.16b + eor v1.16b,v1.16b,v13.16b + eor v2.16b,v2.16b,v14.16b + eor v3.16b,v3.16b,v15.16b + eor v4.16b,v4.16b,v8.16b + eor v5.16b,v5.16b,v9.16b + eor v6.16b,v6.16b,v10.16b + eor v7.16b,v7.16b,v11.16b + st4 {v0.4s,v1.4s,v2.4s,v3.4s},[x1],#64 + st4 {v4.4s,v5.4s,v6.4s,v7.4s},[x1],#64 + subs w2,w2,#8 + b.ne .Lctr32_4_blocks_process + b 100f +1: // last block processing + subs w2,w2,#1 + b.lt 100f + b.gt 1f + mov v3.s[0],w12 + mov v3.s[1],w13 + mov v3.s[2],w14 + mov v3.s[3],w5 + mov x10,x3 + mov w11,#8 + mov w12,v3.s[0] + mov w13,v3.s[1] + mov w14,v3.s[2] + mov w15,v3.s[3] +10: + ldp w7,w8,[x10],8 + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + eor w6,w14,w15 + eor w9,w7,w13 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w12,w12,w6 + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + eor w6,w14,w15 + eor w9,w12,w8 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + ldp w7,w8,[x10],8 + eor w13,w13,w6 + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + eor w6,w12,w13 + eor w9,w7,w15 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w14,w14,w6 + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + eor w6,w12,w13 + eor w9,w14,w8 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w15,w15,w6 + subs w11,w11,#1 + b.ne 10b + mov v3.s[0],w15 + mov v3.s[1],w14 + mov v3.s[2],w13 + mov v3.s[3],w12 +#ifndef __AARCH64EB__ + rev32 v3.16b,v3.16b +#endif + ld1 {v4.4s},[x0] + eor v4.16b,v4.16b,v3.16b + st1 {v4.4s},[x1] + b 100f +1: // last 2 blocks processing + dup v4.4s,w12 + dup v5.4s,w13 + dup v6.4s,w14 + mov v7.s[0],w5 + add w5,w5,#1 + mov v7.s[1],w5 + subs w2,w2,#1 + b.ne 1f + bl _vpsm4_enc_4blks + ld4 {v12.s,v13.s,v14.s,v15.s}[0],[x0],#16 + ld4 {v12.s,v13.s,v14.s,v15.s}[1],[x0],#16 + eor v0.16b,v0.16b,v12.16b + eor v1.16b,v1.16b,v13.16b + eor v2.16b,v2.16b,v14.16b + eor v3.16b,v3.16b,v15.16b + st4 {v0.s,v1.s,v2.s,v3.s}[0],[x1],#16 + st4 {v0.s,v1.s,v2.s,v3.s}[1],[x1],#16 + b 100f +1: // last 3 blocks processing + add w5,w5,#1 + mov v7.s[2],w5 + bl _vpsm4_enc_4blks + ld4 {v12.s,v13.s,v14.s,v15.s}[0],[x0],#16 + ld4 {v12.s,v13.s,v14.s,v15.s}[1],[x0],#16 + ld4 {v12.s,v13.s,v14.s,v15.s}[2],[x0],#16 + eor v0.16b,v0.16b,v12.16b + eor v1.16b,v1.16b,v13.16b + eor v2.16b,v2.16b,v14.16b + eor v3.16b,v3.16b,v15.16b + st4 {v0.s,v1.s,v2.s,v3.s}[0],[x1],#16 + st4 {v0.s,v1.s,v2.s,v3.s}[1],[x1],#16 + st4 {v0.s,v1.s,v2.s,v3.s}[2],[x1],#16 +100: + ldp d10,d11,[sp,#16] + ldp d12,d13,[sp,#32] + ldp d14,d15,[sp,#48] + ldp x29,x30,[sp,#64] + ldp d8,d9,[sp],#80 + AARCH64_VALIDATE_LINK_REGISTER + ret +.size vpsm4_ctr32_encrypt_blocks,.-vpsm4_ctr32_encrypt_blocks +.globl vpsm4_xts_encrypt_gb +.type vpsm4_xts_encrypt_gb,%function +.align 5 +vpsm4_xts_encrypt_gb: + AARCH64_SIGN_LINK_REGISTER + stp x15, x16, [sp, #-0x10]! + stp x17, x18, [sp, #-0x10]! + stp x19, x20, [sp, #-0x10]! + stp x21, x22, [sp, #-0x10]! + stp x23, x24, [sp, #-0x10]! + stp x25, x26, [sp, #-0x10]! + stp x27, x28, [sp, #-0x10]! + stp x29, x30, [sp, #-0x10]! + stp d8, d9, [sp, #-0x10]! + stp d10, d11, [sp, #-0x10]! + stp d12, d13, [sp, #-0x10]! + stp d14, d15, [sp, #-0x10]! + mov x26,x3 + mov x27,x4 + mov w28,w6 + ld1 {v8.4s}, [x5] + mov x3,x27 + adrp x10,.Lsbox + add x10,x10,#:lo12:.Lsbox + ld1 {v16.16b,v17.16b,v18.16b,v19.16b},[x10],#64 + ld1 {v20.16b,v21.16b,v22.16b,v23.16b},[x10],#64 + ld1 {v24.16b,v25.16b,v26.16b,v27.16b},[x10],#64 + ld1 {v28.16b,v29.16b,v30.16b,v31.16b},[x10] +#ifndef __AARCH64EB__ + rev32 v8.16b,v8.16b +#endif + mov x10,x3 + mov w11,#8 + mov w12,v8.s[0] + mov w13,v8.s[1] + mov w14,v8.s[2] + mov w15,v8.s[3] +10: + ldp w7,w8,[x10],8 + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + eor w6,w14,w15 + eor w9,w7,w13 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w12,w12,w6 + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + eor w6,w14,w15 + eor w9,w12,w8 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + ldp w7,w8,[x10],8 + eor w13,w13,w6 + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + eor w6,w12,w13 + eor w9,w7,w15 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w14,w14,w6 + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + eor w6,w12,w13 + eor w9,w14,w8 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w15,w15,w6 + subs w11,w11,#1 + b.ne 10b + mov v8.s[0],w15 + mov v8.s[1],w14 + mov v8.s[2],w13 + mov v8.s[3],w12 +#ifndef __AARCH64EB__ + rev32 v8.16b,v8.16b +#endif + mov x3,x26 + and x29,x2,#0x0F + // convert length into blocks + lsr x2,x2,4 + cmp x2,#1 + b.lt .return_gb + + cmp x29,0 + // If the encryption/decryption Length is N times of 16, + // the all blocks are encrypted/decrypted in .xts_encrypt_blocks_gb + b.eq .xts_encrypt_blocks_gb + + // If the encryption/decryption length is not N times of 16, + // the last two blocks are encrypted/decrypted in .last_2blks_tweak_gb or .only_2blks_tweak_gb + // the other blocks are encrypted/decrypted in .xts_encrypt_blocks_gb + subs x2,x2,#1 + b.eq .only_2blks_tweak_gb +.xts_encrypt_blocks_gb: + rbit v8.16b,v8.16b +#ifdef __AARCH64EB__ + rev32 v8.16b,v8.16b +#endif + mov x12,v8.d[0] + mov x13,v8.d[1] + mov w7,0x87 + extr x9,x13,x13,#32 + extr x15,x13,x12,#63 + and w8,w7,w9,asr#31 + eor x14,x8,x12,lsl#1 + mov w7,0x87 + extr x9,x15,x15,#32 + extr x17,x15,x14,#63 + and w8,w7,w9,asr#31 + eor x16,x8,x14,lsl#1 + mov w7,0x87 + extr x9,x17,x17,#32 + extr x19,x17,x16,#63 + and w8,w7,w9,asr#31 + eor x18,x8,x16,lsl#1 + mov w7,0x87 + extr x9,x19,x19,#32 + extr x21,x19,x18,#63 + and w8,w7,w9,asr#31 + eor x20,x8,x18,lsl#1 + mov w7,0x87 + extr x9,x21,x21,#32 + extr x23,x21,x20,#63 + and w8,w7,w9,asr#31 + eor x22,x8,x20,lsl#1 + mov w7,0x87 + extr x9,x23,x23,#32 + extr x25,x23,x22,#63 + and w8,w7,w9,asr#31 + eor x24,x8,x22,lsl#1 + mov w7,0x87 + extr x9,x25,x25,#32 + extr x27,x25,x24,#63 + and w8,w7,w9,asr#31 + eor x26,x8,x24,lsl#1 +.Lxts_8_blocks_process_gb: + cmp x2,#8 + b.lt .Lxts_4_blocks_process_gb + mov v0.d[0],x12 + mov v0.d[1],x13 +#ifdef __AARCH64EB__ + rev32 v0.16b,v0.16b +#endif + mov v1.d[0],x14 + mov v1.d[1],x15 +#ifdef __AARCH64EB__ + rev32 v1.16b,v1.16b +#endif + mov v2.d[0],x16 + mov v2.d[1],x17 +#ifdef __AARCH64EB__ + rev32 v2.16b,v2.16b +#endif + mov v3.d[0],x18 + mov v3.d[1],x19 +#ifdef __AARCH64EB__ + rev32 v3.16b,v3.16b +#endif + mov v12.d[0],x20 + mov v12.d[1],x21 +#ifdef __AARCH64EB__ + rev32 v12.16b,v12.16b +#endif + mov v13.d[0],x22 + mov v13.d[1],x23 +#ifdef __AARCH64EB__ + rev32 v13.16b,v13.16b +#endif + mov v14.d[0],x24 + mov v14.d[1],x25 +#ifdef __AARCH64EB__ + rev32 v14.16b,v14.16b +#endif + mov v15.d[0],x26 + mov v15.d[1],x27 +#ifdef __AARCH64EB__ + rev32 v15.16b,v15.16b +#endif + ld1 {v4.4s,v5.4s,v6.4s,v7.4s},[x0],#64 + rbit v0.16b,v0.16b + rbit v1.16b,v1.16b + rbit v2.16b,v2.16b + rbit v3.16b,v3.16b + eor v4.16b, v4.16b, v0.16b + eor v5.16b, v5.16b, v1.16b + eor v6.16b, v6.16b, v2.16b + eor v7.16b, v7.16b, v3.16b + ld1 {v8.4s,v9.4s,v10.4s,v11.4s},[x0],#64 + rbit v12.16b,v12.16b + rbit v13.16b,v13.16b + rbit v14.16b,v14.16b + rbit v15.16b,v15.16b + eor v8.16b, v8.16b, v12.16b + eor v9.16b, v9.16b, v13.16b + eor v10.16b, v10.16b, v14.16b + eor v11.16b, v11.16b, v15.16b +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif +#ifndef __AARCH64EB__ + rev32 v5.16b,v5.16b +#endif +#ifndef __AARCH64EB__ + rev32 v6.16b,v6.16b +#endif +#ifndef __AARCH64EB__ + rev32 v7.16b,v7.16b +#endif +#ifndef __AARCH64EB__ + rev32 v8.16b,v8.16b +#endif +#ifndef __AARCH64EB__ + rev32 v9.16b,v9.16b +#endif +#ifndef __AARCH64EB__ + rev32 v10.16b,v10.16b +#endif +#ifndef __AARCH64EB__ + rev32 v11.16b,v11.16b +#endif + zip1 v0.4s,v4.4s,v5.4s + zip2 v1.4s,v4.4s,v5.4s + zip1 v2.4s,v6.4s,v7.4s + zip2 v3.4s,v6.4s,v7.4s + zip1 v4.2d,v0.2d,v2.2d + zip2 v5.2d,v0.2d,v2.2d + zip1 v6.2d,v1.2d,v3.2d + zip2 v7.2d,v1.2d,v3.2d + zip1 v0.4s,v8.4s,v9.4s + zip2 v1.4s,v8.4s,v9.4s + zip1 v2.4s,v10.4s,v11.4s + zip2 v3.4s,v10.4s,v11.4s + zip1 v8.2d,v0.2d,v2.2d + zip2 v9.2d,v0.2d,v2.2d + zip1 v10.2d,v1.2d,v3.2d + zip2 v11.2d,v1.2d,v3.2d + bl _vpsm4_enc_8blks + zip1 v8.4s,v0.4s,v1.4s + zip2 v9.4s,v0.4s,v1.4s + zip1 v10.4s,v2.4s,v3.4s + zip2 v11.4s,v2.4s,v3.4s + zip1 v0.2d,v8.2d,v10.2d + zip2 v1.2d,v8.2d,v10.2d + zip1 v2.2d,v9.2d,v11.2d + zip2 v3.2d,v9.2d,v11.2d + zip1 v8.4s,v4.4s,v5.4s + zip2 v9.4s,v4.4s,v5.4s + zip1 v10.4s,v6.4s,v7.4s + zip2 v11.4s,v6.4s,v7.4s + zip1 v4.2d,v8.2d,v10.2d + zip2 v5.2d,v8.2d,v10.2d + zip1 v6.2d,v9.2d,v11.2d + zip2 v7.2d,v9.2d,v11.2d + mov v12.d[0],x12 + mov v12.d[1],x13 +#ifdef __AARCH64EB__ + rev32 v12.16b,v12.16b +#endif + mov w7,0x87 + extr x9,x27,x27,#32 + extr x13,x27,x26,#63 + and w8,w7,w9,asr#31 + eor x12,x8,x26,lsl#1 + mov v13.d[0],x14 + mov v13.d[1],x15 +#ifdef __AARCH64EB__ + rev32 v13.16b,v13.16b +#endif + mov w7,0x87 + extr x9,x13,x13,#32 + extr x15,x13,x12,#63 + and w8,w7,w9,asr#31 + eor x14,x8,x12,lsl#1 + mov v14.d[0],x16 + mov v14.d[1],x17 +#ifdef __AARCH64EB__ + rev32 v14.16b,v14.16b +#endif + mov w7,0x87 + extr x9,x15,x15,#32 + extr x17,x15,x14,#63 + and w8,w7,w9,asr#31 + eor x16,x8,x14,lsl#1 + mov v15.d[0],x18 + mov v15.d[1],x19 +#ifdef __AARCH64EB__ + rev32 v15.16b,v15.16b +#endif + mov w7,0x87 + extr x9,x17,x17,#32 + extr x19,x17,x16,#63 + and w8,w7,w9,asr#31 + eor x18,x8,x16,lsl#1 + mov v8.d[0],x20 + mov v8.d[1],x21 +#ifdef __AARCH64EB__ + rev32 v8.16b,v8.16b +#endif + mov w7,0x87 + extr x9,x19,x19,#32 + extr x21,x19,x18,#63 + and w8,w7,w9,asr#31 + eor x20,x8,x18,lsl#1 + mov v9.d[0],x22 + mov v9.d[1],x23 +#ifdef __AARCH64EB__ + rev32 v9.16b,v9.16b +#endif + mov w7,0x87 + extr x9,x21,x21,#32 + extr x23,x21,x20,#63 + and w8,w7,w9,asr#31 + eor x22,x8,x20,lsl#1 + mov v10.d[0],x24 + mov v10.d[1],x25 +#ifdef __AARCH64EB__ + rev32 v10.16b,v10.16b +#endif + mov w7,0x87 + extr x9,x23,x23,#32 + extr x25,x23,x22,#63 + and w8,w7,w9,asr#31 + eor x24,x8,x22,lsl#1 + mov v11.d[0],x26 + mov v11.d[1],x27 +#ifdef __AARCH64EB__ + rev32 v11.16b,v11.16b +#endif + mov w7,0x87 + extr x9,x25,x25,#32 + extr x27,x25,x24,#63 + and w8,w7,w9,asr#31 + eor x26,x8,x24,lsl#1 + eor v0.16b, v0.16b, v12.16b + eor v1.16b, v1.16b, v13.16b + eor v2.16b, v2.16b, v14.16b + eor v3.16b, v3.16b, v15.16b + eor v4.16b, v4.16b, v8.16b + eor v5.16b, v5.16b, v9.16b + eor v6.16b, v6.16b, v10.16b + eor v7.16b, v7.16b, v11.16b + + // save the last tweak + st1 {v11.4s},[x5] + st1 {v0.4s,v1.4s,v2.4s,v3.4s},[x1],#64 + st1 {v4.4s,v5.4s,v6.4s,v7.4s},[x1],#64 + subs x2,x2,#8 + b.gt .Lxts_8_blocks_process_gb + b 100f +.Lxts_4_blocks_process_gb: + mov v8.d[0],x12 + mov v8.d[1],x13 +#ifdef __AARCH64EB__ + rev32 v8.16b,v8.16b +#endif + mov v9.d[0],x14 + mov v9.d[1],x15 +#ifdef __AARCH64EB__ + rev32 v9.16b,v9.16b +#endif + mov v10.d[0],x16 + mov v10.d[1],x17 +#ifdef __AARCH64EB__ + rev32 v10.16b,v10.16b +#endif + mov v11.d[0],x18 + mov v11.d[1],x19 +#ifdef __AARCH64EB__ + rev32 v11.16b,v11.16b +#endif + cmp x2,#4 + b.lt 1f + ld1 {v4.4s,v5.4s,v6.4s,v7.4s},[x0],#64 + rbit v8.16b,v8.16b + rbit v9.16b,v9.16b + rbit v10.16b,v10.16b + rbit v11.16b,v11.16b + eor v4.16b, v4.16b, v8.16b + eor v5.16b, v5.16b, v9.16b + eor v6.16b, v6.16b, v10.16b + eor v7.16b, v7.16b, v11.16b +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif +#ifndef __AARCH64EB__ + rev32 v5.16b,v5.16b +#endif +#ifndef __AARCH64EB__ + rev32 v6.16b,v6.16b +#endif +#ifndef __AARCH64EB__ + rev32 v7.16b,v7.16b +#endif + zip1 v0.4s,v4.4s,v5.4s + zip2 v1.4s,v4.4s,v5.4s + zip1 v2.4s,v6.4s,v7.4s + zip2 v3.4s,v6.4s,v7.4s + zip1 v4.2d,v0.2d,v2.2d + zip2 v5.2d,v0.2d,v2.2d + zip1 v6.2d,v1.2d,v3.2d + zip2 v7.2d,v1.2d,v3.2d + bl _vpsm4_enc_4blks + zip1 v4.4s,v0.4s,v1.4s + zip2 v5.4s,v0.4s,v1.4s + zip1 v6.4s,v2.4s,v3.4s + zip2 v7.4s,v2.4s,v3.4s + zip1 v0.2d,v4.2d,v6.2d + zip2 v1.2d,v4.2d,v6.2d + zip1 v2.2d,v5.2d,v7.2d + zip2 v3.2d,v5.2d,v7.2d + eor v0.16b, v0.16b, v8.16b + eor v1.16b, v1.16b, v9.16b + eor v2.16b, v2.16b, v10.16b + eor v3.16b, v3.16b, v11.16b + st1 {v0.4s,v1.4s,v2.4s,v3.4s},[x1],#64 + sub x2,x2,#4 + mov v8.d[0],x20 + mov v8.d[1],x21 +#ifdef __AARCH64EB__ + rev32 v8.16b,v8.16b +#endif + mov v9.d[0],x22 + mov v9.d[1],x23 +#ifdef __AARCH64EB__ + rev32 v9.16b,v9.16b +#endif + mov v10.d[0],x24 + mov v10.d[1],x25 +#ifdef __AARCH64EB__ + rev32 v10.16b,v10.16b +#endif + // save the last tweak + st1 {v11.4s},[x5] +1: + // process last block + cmp x2,#1 + b.lt 100f + b.gt 1f + ld1 {v4.4s},[x0],#16 + rbit v8.16b,v8.16b + eor v4.16b, v4.16b, v8.16b +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif + mov x10,x3 + mov w11,#8 + mov w12,v4.s[0] + mov w13,v4.s[1] + mov w14,v4.s[2] + mov w15,v4.s[3] +10: + ldp w7,w8,[x10],8 + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + eor w6,w14,w15 + eor w9,w7,w13 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w12,w12,w6 + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + eor w6,w14,w15 + eor w9,w12,w8 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + ldp w7,w8,[x10],8 + eor w13,w13,w6 + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + eor w6,w12,w13 + eor w9,w7,w15 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w14,w14,w6 + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + eor w6,w12,w13 + eor w9,w14,w8 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w15,w15,w6 + subs w11,w11,#1 + b.ne 10b + mov v4.s[0],w15 + mov v4.s[1],w14 + mov v4.s[2],w13 + mov v4.s[3],w12 +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif + eor v4.16b, v4.16b, v8.16b + st1 {v4.4s},[x1],#16 + // save the last tweak + st1 {v8.4s},[x5] + b 100f +1: // process last 2 blocks + cmp x2,#2 + b.gt 1f + ld1 {v4.4s,v5.4s},[x0],#32 + rbit v8.16b,v8.16b + rbit v9.16b,v9.16b + eor v4.16b, v4.16b, v8.16b + eor v5.16b, v5.16b, v9.16b +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif +#ifndef __AARCH64EB__ + rev32 v5.16b,v5.16b +#endif + zip1 v0.4s,v4.4s,v5.4s + zip2 v1.4s,v4.4s,v5.4s + zip1 v2.4s,v6.4s,v7.4s + zip2 v3.4s,v6.4s,v7.4s + zip1 v4.2d,v0.2d,v2.2d + zip2 v5.2d,v0.2d,v2.2d + zip1 v6.2d,v1.2d,v3.2d + zip2 v7.2d,v1.2d,v3.2d + bl _vpsm4_enc_4blks + zip1 v4.4s,v0.4s,v1.4s + zip2 v5.4s,v0.4s,v1.4s + zip1 v6.4s,v2.4s,v3.4s + zip2 v7.4s,v2.4s,v3.4s + zip1 v0.2d,v4.2d,v6.2d + zip2 v1.2d,v4.2d,v6.2d + zip1 v2.2d,v5.2d,v7.2d + zip2 v3.2d,v5.2d,v7.2d + eor v0.16b, v0.16b, v8.16b + eor v1.16b, v1.16b, v9.16b + st1 {v0.4s,v1.4s},[x1],#32 + // save the last tweak + st1 {v9.4s},[x5] + b 100f +1: // process last 3 blocks + ld1 {v4.4s,v5.4s,v6.4s},[x0],#48 + rbit v8.16b,v8.16b + rbit v9.16b,v9.16b + rbit v10.16b,v10.16b + eor v4.16b, v4.16b, v8.16b + eor v5.16b, v5.16b, v9.16b + eor v6.16b, v6.16b, v10.16b +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif +#ifndef __AARCH64EB__ + rev32 v5.16b,v5.16b +#endif +#ifndef __AARCH64EB__ + rev32 v6.16b,v6.16b +#endif + zip1 v0.4s,v4.4s,v5.4s + zip2 v1.4s,v4.4s,v5.4s + zip1 v2.4s,v6.4s,v7.4s + zip2 v3.4s,v6.4s,v7.4s + zip1 v4.2d,v0.2d,v2.2d + zip2 v5.2d,v0.2d,v2.2d + zip1 v6.2d,v1.2d,v3.2d + zip2 v7.2d,v1.2d,v3.2d + bl _vpsm4_enc_4blks + zip1 v4.4s,v0.4s,v1.4s + zip2 v5.4s,v0.4s,v1.4s + zip1 v6.4s,v2.4s,v3.4s + zip2 v7.4s,v2.4s,v3.4s + zip1 v0.2d,v4.2d,v6.2d + zip2 v1.2d,v4.2d,v6.2d + zip1 v2.2d,v5.2d,v7.2d + zip2 v3.2d,v5.2d,v7.2d + eor v0.16b, v0.16b, v8.16b + eor v1.16b, v1.16b, v9.16b + eor v2.16b, v2.16b, v10.16b + st1 {v0.4s,v1.4s,v2.4s},[x1],#48 + // save the last tweak + st1 {v10.4s},[x5] +100: + cmp x29,0 + b.eq .return_gb + +// This branch calculates the last two tweaks, +// while the encryption/decryption length is larger than 32 +.last_2blks_tweak_gb: + ld1 {v8.4s},[x5] +#ifdef __AARCH64EB__ + rev32 v8.16b,v8.16b +#endif + rbit v2.16b,v8.16b + adrp x10,.Lxts_magic + ldr q0, [x10, #:lo12:.Lxts_magic] + shl v9.16b, v2.16b, #1 + ext v1.16b, v2.16b, v2.16b,#15 + ushr v1.16b, v1.16b, #7 + mul v1.16b, v1.16b, v0.16b + eor v9.16b, v9.16b, v1.16b + rbit v9.16b,v9.16b + rbit v2.16b,v9.16b + adrp x10,.Lxts_magic + ldr q0, [x10, #:lo12:.Lxts_magic] + shl v10.16b, v2.16b, #1 + ext v1.16b, v2.16b, v2.16b,#15 + ushr v1.16b, v1.16b, #7 + mul v1.16b, v1.16b, v0.16b + eor v10.16b, v10.16b, v1.16b + rbit v10.16b,v10.16b + b .check_dec_gb + + +// This branch calculates the last two tweaks, +// while the encryption/decryption length is equal to 32, who only need two tweaks +.only_2blks_tweak_gb: + mov v9.16b,v8.16b +#ifdef __AARCH64EB__ + rev32 v9.16b,v9.16b +#endif + rbit v2.16b,v9.16b + adrp x10,.Lxts_magic + ldr q0, [x10, #:lo12:.Lxts_magic] + shl v10.16b, v2.16b, #1 + ext v1.16b, v2.16b, v2.16b,#15 + ushr v1.16b, v1.16b, #7 + mul v1.16b, v1.16b, v0.16b + eor v10.16b, v10.16b, v1.16b + rbit v10.16b,v10.16b + b .check_dec_gb + + +// Determine whether encryption or decryption is required. +// The last two tweaks need to be swapped for decryption. +.check_dec_gb: + // encryption:1 decryption:0 + cmp w28,1 + b.eq .process_last_2blks_gb + mov v0.16B,v9.16b + mov v9.16B,v10.16b + mov v10.16B,v0.16b + +.process_last_2blks_gb: +#ifdef __AARCH64EB__ + rev32 v9.16b,v9.16b +#endif +#ifdef __AARCH64EB__ + rev32 v10.16b,v10.16b +#endif + ld1 {v4.4s},[x0],#16 + eor v4.16b, v4.16b, v9.16b +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif + mov x10,x3 + mov w11,#8 + mov w12,v4.s[0] + mov w13,v4.s[1] + mov w14,v4.s[2] + mov w15,v4.s[3] +10: + ldp w7,w8,[x10],8 + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + eor w6,w14,w15 + eor w9,w7,w13 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w12,w12,w6 + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + eor w6,w14,w15 + eor w9,w12,w8 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + ldp w7,w8,[x10],8 + eor w13,w13,w6 + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + eor w6,w12,w13 + eor w9,w7,w15 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w14,w14,w6 + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + eor w6,w12,w13 + eor w9,w14,w8 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w15,w15,w6 + subs w11,w11,#1 + b.ne 10b + mov v4.s[0],w15 + mov v4.s[1],w14 + mov v4.s[2],w13 + mov v4.s[3],w12 +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif + eor v4.16b, v4.16b, v9.16b + st1 {v4.4s},[x1],#16 + + sub x26,x1,16 +.loop_gb: + subs x29,x29,1 + ldrb w7,[x26,x29] + ldrb w8,[x0,x29] + strb w8,[x26,x29] + strb w7,[x1,x29] + b.gt .loop_gb + ld1 {v4.4s}, [x26] + eor v4.16b, v4.16b, v10.16b +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif + mov x10,x3 + mov w11,#8 + mov w12,v4.s[0] + mov w13,v4.s[1] + mov w14,v4.s[2] + mov w15,v4.s[3] +10: + ldp w7,w8,[x10],8 + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + eor w6,w14,w15 + eor w9,w7,w13 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w12,w12,w6 + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + eor w6,w14,w15 + eor w9,w12,w8 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + ldp w7,w8,[x10],8 + eor w13,w13,w6 + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + eor w6,w12,w13 + eor w9,w7,w15 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w14,w14,w6 + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + eor w6,w12,w13 + eor w9,w14,w8 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w15,w15,w6 + subs w11,w11,#1 + b.ne 10b + mov v4.s[0],w15 + mov v4.s[1],w14 + mov v4.s[2],w13 + mov v4.s[3],w12 +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif + eor v4.16b, v4.16b, v10.16b + st1 {v4.4s}, [x26] +.return_gb: + ldp d14, d15, [sp], #0x10 + ldp d12, d13, [sp], #0x10 + ldp d10, d11, [sp], #0x10 + ldp d8, d9, [sp], #0x10 + ldp x29, x30, [sp], #0x10 + ldp x27, x28, [sp], #0x10 + ldp x25, x26, [sp], #0x10 + ldp x23, x24, [sp], #0x10 + ldp x21, x22, [sp], #0x10 + ldp x19, x20, [sp], #0x10 + ldp x17, x18, [sp], #0x10 + ldp x15, x16, [sp], #0x10 + AARCH64_VALIDATE_LINK_REGISTER + ret +.size vpsm4_xts_encrypt_gb,.-vpsm4_xts_encrypt_gb +.globl vpsm4_xts_encrypt +.type vpsm4_xts_encrypt,%function +.align 5 +vpsm4_xts_encrypt: + AARCH64_SIGN_LINK_REGISTER + stp x15, x16, [sp, #-0x10]! + stp x17, x18, [sp, #-0x10]! + stp x19, x20, [sp, #-0x10]! + stp x21, x22, [sp, #-0x10]! + stp x23, x24, [sp, #-0x10]! + stp x25, x26, [sp, #-0x10]! + stp x27, x28, [sp, #-0x10]! + stp x29, x30, [sp, #-0x10]! + stp d8, d9, [sp, #-0x10]! + stp d10, d11, [sp, #-0x10]! + stp d12, d13, [sp, #-0x10]! + stp d14, d15, [sp, #-0x10]! + mov x26,x3 + mov x27,x4 + mov w28,w6 + ld1 {v8.4s}, [x5] + mov x3,x27 + adrp x10,.Lsbox + add x10,x10,#:lo12:.Lsbox + ld1 {v16.16b,v17.16b,v18.16b,v19.16b},[x10],#64 + ld1 {v20.16b,v21.16b,v22.16b,v23.16b},[x10],#64 + ld1 {v24.16b,v25.16b,v26.16b,v27.16b},[x10],#64 + ld1 {v28.16b,v29.16b,v30.16b,v31.16b},[x10] +#ifndef __AARCH64EB__ + rev32 v8.16b,v8.16b +#endif + mov x10,x3 + mov w11,#8 + mov w12,v8.s[0] + mov w13,v8.s[1] + mov w14,v8.s[2] + mov w15,v8.s[3] +10: + ldp w7,w8,[x10],8 + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + eor w6,w14,w15 + eor w9,w7,w13 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w12,w12,w6 + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + eor w6,w14,w15 + eor w9,w12,w8 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + ldp w7,w8,[x10],8 + eor w13,w13,w6 + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + eor w6,w12,w13 + eor w9,w7,w15 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w14,w14,w6 + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + eor w6,w12,w13 + eor w9,w14,w8 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w15,w15,w6 + subs w11,w11,#1 + b.ne 10b + mov v8.s[0],w15 + mov v8.s[1],w14 + mov v8.s[2],w13 + mov v8.s[3],w12 +#ifndef __AARCH64EB__ + rev32 v8.16b,v8.16b +#endif + mov x3,x26 + and x29,x2,#0x0F + // convert length into blocks + lsr x2,x2,4 + cmp x2,#1 + b.lt .return + + cmp x29,0 + // If the encryption/decryption Length is N times of 16, + // the all blocks are encrypted/decrypted in .xts_encrypt_blocks + b.eq .xts_encrypt_blocks + + // If the encryption/decryption length is not N times of 16, + // the last two blocks are encrypted/decrypted in .last_2blks_tweak or .only_2blks_tweak + // the other blocks are encrypted/decrypted in .xts_encrypt_blocks + subs x2,x2,#1 + b.eq .only_2blks_tweak +.xts_encrypt_blocks: +#ifdef __AARCH64EB__ + rev32 v8.16b,v8.16b +#endif + mov x12,v8.d[0] + mov x13,v8.d[1] + mov w7,0x87 + extr x9,x13,x13,#32 + extr x15,x13,x12,#63 + and w8,w7,w9,asr#31 + eor x14,x8,x12,lsl#1 + mov w7,0x87 + extr x9,x15,x15,#32 + extr x17,x15,x14,#63 + and w8,w7,w9,asr#31 + eor x16,x8,x14,lsl#1 + mov w7,0x87 + extr x9,x17,x17,#32 + extr x19,x17,x16,#63 + and w8,w7,w9,asr#31 + eor x18,x8,x16,lsl#1 + mov w7,0x87 + extr x9,x19,x19,#32 + extr x21,x19,x18,#63 + and w8,w7,w9,asr#31 + eor x20,x8,x18,lsl#1 + mov w7,0x87 + extr x9,x21,x21,#32 + extr x23,x21,x20,#63 + and w8,w7,w9,asr#31 + eor x22,x8,x20,lsl#1 + mov w7,0x87 + extr x9,x23,x23,#32 + extr x25,x23,x22,#63 + and w8,w7,w9,asr#31 + eor x24,x8,x22,lsl#1 + mov w7,0x87 + extr x9,x25,x25,#32 + extr x27,x25,x24,#63 + and w8,w7,w9,asr#31 + eor x26,x8,x24,lsl#1 +.Lxts_8_blocks_process: + cmp x2,#8 + b.lt .Lxts_4_blocks_process + mov v0.d[0],x12 + mov v0.d[1],x13 +#ifdef __AARCH64EB__ + rev32 v0.16b,v0.16b +#endif + mov v1.d[0],x14 + mov v1.d[1],x15 +#ifdef __AARCH64EB__ + rev32 v1.16b,v1.16b +#endif + mov v2.d[0],x16 + mov v2.d[1],x17 +#ifdef __AARCH64EB__ + rev32 v2.16b,v2.16b +#endif + mov v3.d[0],x18 + mov v3.d[1],x19 +#ifdef __AARCH64EB__ + rev32 v3.16b,v3.16b +#endif + mov v12.d[0],x20 + mov v12.d[1],x21 +#ifdef __AARCH64EB__ + rev32 v12.16b,v12.16b +#endif + mov v13.d[0],x22 + mov v13.d[1],x23 +#ifdef __AARCH64EB__ + rev32 v13.16b,v13.16b +#endif + mov v14.d[0],x24 + mov v14.d[1],x25 +#ifdef __AARCH64EB__ + rev32 v14.16b,v14.16b +#endif + mov v15.d[0],x26 + mov v15.d[1],x27 +#ifdef __AARCH64EB__ + rev32 v15.16b,v15.16b +#endif + ld1 {v4.4s,v5.4s,v6.4s,v7.4s},[x0],#64 + eor v4.16b, v4.16b, v0.16b + eor v5.16b, v5.16b, v1.16b + eor v6.16b, v6.16b, v2.16b + eor v7.16b, v7.16b, v3.16b + ld1 {v8.4s,v9.4s,v10.4s,v11.4s},[x0],#64 + eor v8.16b, v8.16b, v12.16b + eor v9.16b, v9.16b, v13.16b + eor v10.16b, v10.16b, v14.16b + eor v11.16b, v11.16b, v15.16b +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif +#ifndef __AARCH64EB__ + rev32 v5.16b,v5.16b +#endif +#ifndef __AARCH64EB__ + rev32 v6.16b,v6.16b +#endif +#ifndef __AARCH64EB__ + rev32 v7.16b,v7.16b +#endif +#ifndef __AARCH64EB__ + rev32 v8.16b,v8.16b +#endif +#ifndef __AARCH64EB__ + rev32 v9.16b,v9.16b +#endif +#ifndef __AARCH64EB__ + rev32 v10.16b,v10.16b +#endif +#ifndef __AARCH64EB__ + rev32 v11.16b,v11.16b +#endif + zip1 v0.4s,v4.4s,v5.4s + zip2 v1.4s,v4.4s,v5.4s + zip1 v2.4s,v6.4s,v7.4s + zip2 v3.4s,v6.4s,v7.4s + zip1 v4.2d,v0.2d,v2.2d + zip2 v5.2d,v0.2d,v2.2d + zip1 v6.2d,v1.2d,v3.2d + zip2 v7.2d,v1.2d,v3.2d + zip1 v0.4s,v8.4s,v9.4s + zip2 v1.4s,v8.4s,v9.4s + zip1 v2.4s,v10.4s,v11.4s + zip2 v3.4s,v10.4s,v11.4s + zip1 v8.2d,v0.2d,v2.2d + zip2 v9.2d,v0.2d,v2.2d + zip1 v10.2d,v1.2d,v3.2d + zip2 v11.2d,v1.2d,v3.2d + bl _vpsm4_enc_8blks + zip1 v8.4s,v0.4s,v1.4s + zip2 v9.4s,v0.4s,v1.4s + zip1 v10.4s,v2.4s,v3.4s + zip2 v11.4s,v2.4s,v3.4s + zip1 v0.2d,v8.2d,v10.2d + zip2 v1.2d,v8.2d,v10.2d + zip1 v2.2d,v9.2d,v11.2d + zip2 v3.2d,v9.2d,v11.2d + zip1 v8.4s,v4.4s,v5.4s + zip2 v9.4s,v4.4s,v5.4s + zip1 v10.4s,v6.4s,v7.4s + zip2 v11.4s,v6.4s,v7.4s + zip1 v4.2d,v8.2d,v10.2d + zip2 v5.2d,v8.2d,v10.2d + zip1 v6.2d,v9.2d,v11.2d + zip2 v7.2d,v9.2d,v11.2d + mov v12.d[0],x12 + mov v12.d[1],x13 +#ifdef __AARCH64EB__ + rev32 v12.16b,v12.16b +#endif + mov w7,0x87 + extr x9,x27,x27,#32 + extr x13,x27,x26,#63 + and w8,w7,w9,asr#31 + eor x12,x8,x26,lsl#1 + mov v13.d[0],x14 + mov v13.d[1],x15 +#ifdef __AARCH64EB__ + rev32 v13.16b,v13.16b +#endif + mov w7,0x87 + extr x9,x13,x13,#32 + extr x15,x13,x12,#63 + and w8,w7,w9,asr#31 + eor x14,x8,x12,lsl#1 + mov v14.d[0],x16 + mov v14.d[1],x17 +#ifdef __AARCH64EB__ + rev32 v14.16b,v14.16b +#endif + mov w7,0x87 + extr x9,x15,x15,#32 + extr x17,x15,x14,#63 + and w8,w7,w9,asr#31 + eor x16,x8,x14,lsl#1 + mov v15.d[0],x18 + mov v15.d[1],x19 +#ifdef __AARCH64EB__ + rev32 v15.16b,v15.16b +#endif + mov w7,0x87 + extr x9,x17,x17,#32 + extr x19,x17,x16,#63 + and w8,w7,w9,asr#31 + eor x18,x8,x16,lsl#1 + mov v8.d[0],x20 + mov v8.d[1],x21 +#ifdef __AARCH64EB__ + rev32 v8.16b,v8.16b +#endif + mov w7,0x87 + extr x9,x19,x19,#32 + extr x21,x19,x18,#63 + and w8,w7,w9,asr#31 + eor x20,x8,x18,lsl#1 + mov v9.d[0],x22 + mov v9.d[1],x23 +#ifdef __AARCH64EB__ + rev32 v9.16b,v9.16b +#endif + mov w7,0x87 + extr x9,x21,x21,#32 + extr x23,x21,x20,#63 + and w8,w7,w9,asr#31 + eor x22,x8,x20,lsl#1 + mov v10.d[0],x24 + mov v10.d[1],x25 +#ifdef __AARCH64EB__ + rev32 v10.16b,v10.16b +#endif + mov w7,0x87 + extr x9,x23,x23,#32 + extr x25,x23,x22,#63 + and w8,w7,w9,asr#31 + eor x24,x8,x22,lsl#1 + mov v11.d[0],x26 + mov v11.d[1],x27 +#ifdef __AARCH64EB__ + rev32 v11.16b,v11.16b +#endif + mov w7,0x87 + extr x9,x25,x25,#32 + extr x27,x25,x24,#63 + and w8,w7,w9,asr#31 + eor x26,x8,x24,lsl#1 + eor v0.16b, v0.16b, v12.16b + eor v1.16b, v1.16b, v13.16b + eor v2.16b, v2.16b, v14.16b + eor v3.16b, v3.16b, v15.16b + eor v4.16b, v4.16b, v8.16b + eor v5.16b, v5.16b, v9.16b + eor v6.16b, v6.16b, v10.16b + eor v7.16b, v7.16b, v11.16b + + // save the last tweak + st1 {v11.4s},[x5] + st1 {v0.4s,v1.4s,v2.4s,v3.4s},[x1],#64 + st1 {v4.4s,v5.4s,v6.4s,v7.4s},[x1],#64 + subs x2,x2,#8 + b.gt .Lxts_8_blocks_process + b 100f +.Lxts_4_blocks_process: + mov v8.d[0],x12 + mov v8.d[1],x13 +#ifdef __AARCH64EB__ + rev32 v8.16b,v8.16b +#endif + mov v9.d[0],x14 + mov v9.d[1],x15 +#ifdef __AARCH64EB__ + rev32 v9.16b,v9.16b +#endif + mov v10.d[0],x16 + mov v10.d[1],x17 +#ifdef __AARCH64EB__ + rev32 v10.16b,v10.16b +#endif + mov v11.d[0],x18 + mov v11.d[1],x19 +#ifdef __AARCH64EB__ + rev32 v11.16b,v11.16b +#endif + cmp x2,#4 + b.lt 1f + ld1 {v4.4s,v5.4s,v6.4s,v7.4s},[x0],#64 + eor v4.16b, v4.16b, v8.16b + eor v5.16b, v5.16b, v9.16b + eor v6.16b, v6.16b, v10.16b + eor v7.16b, v7.16b, v11.16b +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif +#ifndef __AARCH64EB__ + rev32 v5.16b,v5.16b +#endif +#ifndef __AARCH64EB__ + rev32 v6.16b,v6.16b +#endif +#ifndef __AARCH64EB__ + rev32 v7.16b,v7.16b +#endif + zip1 v0.4s,v4.4s,v5.4s + zip2 v1.4s,v4.4s,v5.4s + zip1 v2.4s,v6.4s,v7.4s + zip2 v3.4s,v6.4s,v7.4s + zip1 v4.2d,v0.2d,v2.2d + zip2 v5.2d,v0.2d,v2.2d + zip1 v6.2d,v1.2d,v3.2d + zip2 v7.2d,v1.2d,v3.2d + bl _vpsm4_enc_4blks + zip1 v4.4s,v0.4s,v1.4s + zip2 v5.4s,v0.4s,v1.4s + zip1 v6.4s,v2.4s,v3.4s + zip2 v7.4s,v2.4s,v3.4s + zip1 v0.2d,v4.2d,v6.2d + zip2 v1.2d,v4.2d,v6.2d + zip1 v2.2d,v5.2d,v7.2d + zip2 v3.2d,v5.2d,v7.2d + eor v0.16b, v0.16b, v8.16b + eor v1.16b, v1.16b, v9.16b + eor v2.16b, v2.16b, v10.16b + eor v3.16b, v3.16b, v11.16b + st1 {v0.4s,v1.4s,v2.4s,v3.4s},[x1],#64 + sub x2,x2,#4 + mov v8.d[0],x20 + mov v8.d[1],x21 +#ifdef __AARCH64EB__ + rev32 v8.16b,v8.16b +#endif + mov v9.d[0],x22 + mov v9.d[1],x23 +#ifdef __AARCH64EB__ + rev32 v9.16b,v9.16b +#endif + mov v10.d[0],x24 + mov v10.d[1],x25 +#ifdef __AARCH64EB__ + rev32 v10.16b,v10.16b +#endif + // save the last tweak + st1 {v11.4s},[x5] +1: + // process last block + cmp x2,#1 + b.lt 100f + b.gt 1f + ld1 {v4.4s},[x0],#16 + eor v4.16b, v4.16b, v8.16b +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif + mov x10,x3 + mov w11,#8 + mov w12,v4.s[0] + mov w13,v4.s[1] + mov w14,v4.s[2] + mov w15,v4.s[3] +10: + ldp w7,w8,[x10],8 + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + eor w6,w14,w15 + eor w9,w7,w13 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w12,w12,w6 + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + eor w6,w14,w15 + eor w9,w12,w8 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + ldp w7,w8,[x10],8 + eor w13,w13,w6 + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + eor w6,w12,w13 + eor w9,w7,w15 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w14,w14,w6 + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + eor w6,w12,w13 + eor w9,w14,w8 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w15,w15,w6 + subs w11,w11,#1 + b.ne 10b + mov v4.s[0],w15 + mov v4.s[1],w14 + mov v4.s[2],w13 + mov v4.s[3],w12 +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif + eor v4.16b, v4.16b, v8.16b + st1 {v4.4s},[x1],#16 + // save the last tweak + st1 {v8.4s},[x5] + b 100f +1: // process last 2 blocks + cmp x2,#2 + b.gt 1f + ld1 {v4.4s,v5.4s},[x0],#32 + eor v4.16b, v4.16b, v8.16b + eor v5.16b, v5.16b, v9.16b +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif +#ifndef __AARCH64EB__ + rev32 v5.16b,v5.16b +#endif + zip1 v0.4s,v4.4s,v5.4s + zip2 v1.4s,v4.4s,v5.4s + zip1 v2.4s,v6.4s,v7.4s + zip2 v3.4s,v6.4s,v7.4s + zip1 v4.2d,v0.2d,v2.2d + zip2 v5.2d,v0.2d,v2.2d + zip1 v6.2d,v1.2d,v3.2d + zip2 v7.2d,v1.2d,v3.2d + bl _vpsm4_enc_4blks + zip1 v4.4s,v0.4s,v1.4s + zip2 v5.4s,v0.4s,v1.4s + zip1 v6.4s,v2.4s,v3.4s + zip2 v7.4s,v2.4s,v3.4s + zip1 v0.2d,v4.2d,v6.2d + zip2 v1.2d,v4.2d,v6.2d + zip1 v2.2d,v5.2d,v7.2d + zip2 v3.2d,v5.2d,v7.2d + eor v0.16b, v0.16b, v8.16b + eor v1.16b, v1.16b, v9.16b + st1 {v0.4s,v1.4s},[x1],#32 + // save the last tweak + st1 {v9.4s},[x5] + b 100f +1: // process last 3 blocks + ld1 {v4.4s,v5.4s,v6.4s},[x0],#48 + eor v4.16b, v4.16b, v8.16b + eor v5.16b, v5.16b, v9.16b + eor v6.16b, v6.16b, v10.16b +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif +#ifndef __AARCH64EB__ + rev32 v5.16b,v5.16b +#endif +#ifndef __AARCH64EB__ + rev32 v6.16b,v6.16b +#endif + zip1 v0.4s,v4.4s,v5.4s + zip2 v1.4s,v4.4s,v5.4s + zip1 v2.4s,v6.4s,v7.4s + zip2 v3.4s,v6.4s,v7.4s + zip1 v4.2d,v0.2d,v2.2d + zip2 v5.2d,v0.2d,v2.2d + zip1 v6.2d,v1.2d,v3.2d + zip2 v7.2d,v1.2d,v3.2d + bl _vpsm4_enc_4blks + zip1 v4.4s,v0.4s,v1.4s + zip2 v5.4s,v0.4s,v1.4s + zip1 v6.4s,v2.4s,v3.4s + zip2 v7.4s,v2.4s,v3.4s + zip1 v0.2d,v4.2d,v6.2d + zip2 v1.2d,v4.2d,v6.2d + zip1 v2.2d,v5.2d,v7.2d + zip2 v3.2d,v5.2d,v7.2d + eor v0.16b, v0.16b, v8.16b + eor v1.16b, v1.16b, v9.16b + eor v2.16b, v2.16b, v10.16b + st1 {v0.4s,v1.4s,v2.4s},[x1],#48 + // save the last tweak + st1 {v10.4s},[x5] +100: + cmp x29,0 + b.eq .return + +// This branch calculates the last two tweaks, +// while the encryption/decryption length is larger than 32 +.last_2blks_tweak: + ld1 {v8.4s},[x5] +#ifdef __AARCH64EB__ + rev32 v8.16b,v8.16b +#endif + mov v2.16b,v8.16b + adrp x10,.Lxts_magic + ldr q0, [x10, #:lo12:.Lxts_magic] + shl v9.16b, v2.16b, #1 + ext v1.16b, v2.16b, v2.16b,#15 + ushr v1.16b, v1.16b, #7 + mul v1.16b, v1.16b, v0.16b + eor v9.16b, v9.16b, v1.16b + mov v2.16b,v9.16b + adrp x10,.Lxts_magic + ldr q0, [x10, #:lo12:.Lxts_magic] + shl v10.16b, v2.16b, #1 + ext v1.16b, v2.16b, v2.16b,#15 + ushr v1.16b, v1.16b, #7 + mul v1.16b, v1.16b, v0.16b + eor v10.16b, v10.16b, v1.16b + b .check_dec + + +// This branch calculates the last two tweaks, +// while the encryption/decryption length is equal to 32, who only need two tweaks +.only_2blks_tweak: + mov v9.16b,v8.16b +#ifdef __AARCH64EB__ + rev32 v9.16b,v9.16b +#endif + mov v2.16b,v9.16b + adrp x10,.Lxts_magic + ldr q0, [x10, #:lo12:.Lxts_magic] + shl v10.16b, v2.16b, #1 + ext v1.16b, v2.16b, v2.16b,#15 + ushr v1.16b, v1.16b, #7 + mul v1.16b, v1.16b, v0.16b + eor v10.16b, v10.16b, v1.16b + b .check_dec + + +// Determine whether encryption or decryption is required. +// The last two tweaks need to be swapped for decryption. +.check_dec: + // encryption:1 decryption:0 + cmp w28,1 + b.eq .process_last_2blks + mov v0.16B,v9.16b + mov v9.16B,v10.16b + mov v10.16B,v0.16b + +.process_last_2blks: +#ifdef __AARCH64EB__ + rev32 v9.16b,v9.16b +#endif +#ifdef __AARCH64EB__ + rev32 v10.16b,v10.16b +#endif + ld1 {v4.4s},[x0],#16 + eor v4.16b, v4.16b, v9.16b +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif + mov x10,x3 + mov w11,#8 + mov w12,v4.s[0] + mov w13,v4.s[1] + mov w14,v4.s[2] + mov w15,v4.s[3] +10: + ldp w7,w8,[x10],8 + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + eor w6,w14,w15 + eor w9,w7,w13 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w12,w12,w6 + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + eor w6,w14,w15 + eor w9,w12,w8 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + ldp w7,w8,[x10],8 + eor w13,w13,w6 + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + eor w6,w12,w13 + eor w9,w7,w15 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w14,w14,w6 + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + eor w6,w12,w13 + eor w9,w14,w8 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w15,w15,w6 + subs w11,w11,#1 + b.ne 10b + mov v4.s[0],w15 + mov v4.s[1],w14 + mov v4.s[2],w13 + mov v4.s[3],w12 +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif + eor v4.16b, v4.16b, v9.16b + st1 {v4.4s},[x1],#16 + + sub x26,x1,16 +.loop: + subs x29,x29,1 + ldrb w7,[x26,x29] + ldrb w8,[x0,x29] + strb w8,[x26,x29] + strb w7,[x1,x29] + b.gt .loop + ld1 {v4.4s}, [x26] + eor v4.16b, v4.16b, v10.16b +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif + mov x10,x3 + mov w11,#8 + mov w12,v4.s[0] + mov w13,v4.s[1] + mov w14,v4.s[2] + mov w15,v4.s[3] +10: + ldp w7,w8,[x10],8 + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + eor w6,w14,w15 + eor w9,w7,w13 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w12,w12,w6 + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + eor w6,w14,w15 + eor w9,w12,w8 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + ldp w7,w8,[x10],8 + eor w13,w13,w6 + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + eor w6,w12,w13 + eor w9,w7,w15 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w14,w14,w6 + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + eor w6,w12,w13 + eor w9,w14,w8 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w15,w15,w6 + subs w11,w11,#1 + b.ne 10b + mov v4.s[0],w15 + mov v4.s[1],w14 + mov v4.s[2],w13 + mov v4.s[3],w12 +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif + eor v4.16b, v4.16b, v10.16b + st1 {v4.4s}, [x26] +.return: + ldp d14, d15, [sp], #0x10 + ldp d12, d13, [sp], #0x10 + ldp d10, d11, [sp], #0x10 + ldp d8, d9, [sp], #0x10 + ldp x29, x30, [sp], #0x10 + ldp x27, x28, [sp], #0x10 + ldp x25, x26, [sp], #0x10 + ldp x23, x24, [sp], #0x10 + ldp x21, x22, [sp], #0x10 + ldp x19, x20, [sp], #0x10 + ldp x17, x18, [sp], #0x10 + ldp x15, x16, [sp], #0x10 + AARCH64_VALIDATE_LINK_REGISTER + ret +.size vpsm4_xts_encrypt,.-vpsm4_xts_encrypt diff --git a/deps/openssl/config/archs/linux-aarch64/asm/crypto/sm4/vpsm4_ex-armv8.S b/deps/openssl/config/archs/linux-aarch64/asm/crypto/sm4/vpsm4_ex-armv8.S new file mode 100644 index 00000000000000..2ff0246cc60467 --- /dev/null +++ b/deps/openssl/config/archs/linux-aarch64/asm/crypto/sm4/vpsm4_ex-armv8.S @@ -0,0 +1,4522 @@ +// Copyright 2022-2025 The OpenSSL Project Authors. All Rights Reserved. +// +// Licensed under the Apache License 2.0 (the "License"). You may not use +// this file except in compliance with the License. You can obtain a copy +// in the file LICENSE in the source distribution or at +// https://www.openssl.org/source/license.html + +// +// This module implements SM4 with ASIMD and AESE on AARCH64 +// +// Dec 2022 +// + +// $output is the last argument if it looks like a file (it has an extension) +// $flavour is the first argument if it doesn't look like a file +#include "arm_arch.h" +.arch armv8-a+crypto +.text + +.type _vpsm4_ex_consts,%object +.align 7 +_vpsm4_ex_consts: +.Lck: +.long 0x00070E15, 0x1C232A31, 0x383F464D, 0x545B6269 +.long 0x70777E85, 0x8C939AA1, 0xA8AFB6BD, 0xC4CBD2D9 +.long 0xE0E7EEF5, 0xFC030A11, 0x181F262D, 0x343B4249 +.long 0x50575E65, 0x6C737A81, 0x888F969D, 0xA4ABB2B9 +.long 0xC0C7CED5, 0xDCE3EAF1, 0xF8FF060D, 0x141B2229 +.long 0x30373E45, 0x4C535A61, 0x686F767D, 0x848B9299 +.long 0xA0A7AEB5, 0xBCC3CAD1, 0xD8DFE6ED, 0xF4FB0209 +.long 0x10171E25, 0x2C333A41, 0x484F565D, 0x646B7279 +.Lfk: +.quad 0x56aa3350a3b1bac6,0xb27022dc677d9197 +.Lshuffles: +.quad 0x0B0A090807060504,0x030201000F0E0D0C +.Lxts_magic: +.quad 0x0101010101010187,0x0101010101010101 +.Lsbox_magic: +.quad 0x0b0e0104070a0d00,0x0306090c0f020508 +.quad 0x62185a2042387a00,0x22581a6002783a40 +.quad 0x15df62a89e54e923,0xc10bb67c4a803df7 +.quad 0xb9aa6b78c1d21300,0x1407c6d56c7fbead +.quad 0x6404462679195b3b,0xe383c1a1fe9edcbc +.quad 0x0f0f0f0f0f0f0f0f,0x0f0f0f0f0f0f0f0f + +.size _vpsm4_ex_consts,.-_vpsm4_ex_consts +.type _vpsm4_ex_set_key,%function +.align 4 +_vpsm4_ex_set_key: + AARCH64_VALID_CALL_TARGET + ld1 {v5.4s},[x0] + adrp x9, .Lsbox_magic + ldr q26, [x9, #:lo12:.Lsbox_magic] + ldr q27, [x9, #:lo12:.Lsbox_magic+16] + ldr q28, [x9, #:lo12:.Lsbox_magic+32] + ldr q29, [x9, #:lo12:.Lsbox_magic+48] + ldr q30, [x9, #:lo12:.Lsbox_magic+64] + ldr q31, [x9, #:lo12:.Lsbox_magic+80] +#ifndef __AARCH64EB__ + rev32 v5.16b,v5.16b +#endif + adrp x5,.Lshuffles + add x5,x5,#:lo12:.Lshuffles + ld1 {v7.2d},[x5] + adrp x5,.Lfk + add x5,x5,#:lo12:.Lfk + ld1 {v6.2d},[x5] + eor v5.16b,v5.16b,v6.16b + mov x6,#32 + adrp x5,.Lck + add x5,x5,#:lo12:.Lck + movi v0.16b,#64 + cbnz w2,1f + add x1,x1,124 +1: + mov w7,v5.s[1] + ldr w8,[x5],#4 + eor w8,w8,w7 + mov w7,v5.s[2] + eor w8,w8,w7 + mov w7,v5.s[3] + eor w8,w8,w7 + // optimize sbox using AESE instruction + mov v4.s[0],w8 + tbl v0.16b, {v4.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + mov w7,v0.s[0] + eor w8,w7,w7,ror #19 + eor w8,w8,w7,ror #9 + mov w7,v5.s[0] + eor w8,w8,w7 + mov v5.s[0],w8 + cbz w2,2f + str w8,[x1],#4 + b 3f +2: + str w8,[x1],#-4 +3: + tbl v5.16b,{v5.16b},v7.16b + subs x6,x6,#1 + b.ne 1b + ret +.size _vpsm4_ex_set_key,.-_vpsm4_ex_set_key +.type _vpsm4_ex_enc_4blks,%function +.align 4 +_vpsm4_ex_enc_4blks: + AARCH64_VALID_CALL_TARGET + mov x10,x3 + mov w11,#8 +10: + ldp w7,w8,[x10],8 + dup v12.4s,w7 + dup v13.4s,w8 + + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + eor v14.16b,v6.16b,v7.16b + eor v12.16b,v5.16b,v12.16b + eor v12.16b,v14.16b,v12.16b + // optimize sbox using AESE instruction + tbl v0.16b, {v12.16b}, v26.16b + ushr v24.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v24.16b, {v27.16b}, v24.16b + eor v0.16b, v0.16b, v24.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v24.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v24.16b, {v29.16b}, v24.16b + eor v0.16b, v0.16b, v24.16b + mov v12.16b,v0.16b + + // linear transformation + ushr v0.4s,v12.4s,32-2 + ushr v1.4s,v12.4s,32-10 + ushr v2.4s,v12.4s,32-18 + ushr v3.4s,v12.4s,32-24 + sli v0.4s,v12.4s,2 + sli v1.4s,v12.4s,10 + sli v2.4s,v12.4s,18 + sli v3.4s,v12.4s,24 + eor v24.16b,v0.16b,v12.16b + eor v24.16b,v24.16b,v1.16b + eor v12.16b,v2.16b,v3.16b + eor v12.16b,v12.16b,v24.16b + eor v4.16b,v4.16b,v12.16b + + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + eor v14.16b,v14.16b,v4.16b + eor v13.16b,v14.16b,v13.16b + // optimize sbox using AESE instruction + tbl v0.16b, {v13.16b}, v26.16b + ushr v24.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v24.16b, {v27.16b}, v24.16b + eor v0.16b, v0.16b, v24.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v24.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v24.16b, {v29.16b}, v24.16b + eor v0.16b, v0.16b, v24.16b + mov v13.16b,v0.16b + + // linear transformation + ushr v0.4s,v13.4s,32-2 + ushr v1.4s,v13.4s,32-10 + ushr v2.4s,v13.4s,32-18 + ushr v3.4s,v13.4s,32-24 + sli v0.4s,v13.4s,2 + sli v1.4s,v13.4s,10 + sli v2.4s,v13.4s,18 + sli v3.4s,v13.4s,24 + eor v24.16b,v0.16b,v13.16b + eor v24.16b,v24.16b,v1.16b + eor v13.16b,v2.16b,v3.16b + eor v13.16b,v13.16b,v24.16b + ldp w7,w8,[x10],8 + eor v5.16b,v5.16b,v13.16b + + dup v12.4s,w7 + dup v13.4s,w8 + + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + eor v14.16b,v4.16b,v5.16b + eor v12.16b,v7.16b,v12.16b + eor v12.16b,v14.16b,v12.16b + // optimize sbox using AESE instruction + tbl v0.16b, {v12.16b}, v26.16b + ushr v24.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v24.16b, {v27.16b}, v24.16b + eor v0.16b, v0.16b, v24.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v24.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v24.16b, {v29.16b}, v24.16b + eor v0.16b, v0.16b, v24.16b + mov v12.16b,v0.16b + + // linear transformation + ushr v0.4s,v12.4s,32-2 + ushr v1.4s,v12.4s,32-10 + ushr v2.4s,v12.4s,32-18 + ushr v3.4s,v12.4s,32-24 + sli v0.4s,v12.4s,2 + sli v1.4s,v12.4s,10 + sli v2.4s,v12.4s,18 + sli v3.4s,v12.4s,24 + eor v24.16b,v0.16b,v12.16b + eor v24.16b,v24.16b,v1.16b + eor v12.16b,v2.16b,v3.16b + eor v12.16b,v12.16b,v24.16b + eor v6.16b,v6.16b,v12.16b + + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + eor v14.16b,v14.16b,v6.16b + eor v13.16b,v14.16b,v13.16b + // optimize sbox using AESE instruction + tbl v0.16b, {v13.16b}, v26.16b + ushr v24.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v24.16b, {v27.16b}, v24.16b + eor v0.16b, v0.16b, v24.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v24.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v24.16b, {v29.16b}, v24.16b + eor v0.16b, v0.16b, v24.16b + mov v13.16b,v0.16b + + // linear transformation + ushr v0.4s,v13.4s,32-2 + ushr v1.4s,v13.4s,32-10 + ushr v2.4s,v13.4s,32-18 + ushr v3.4s,v13.4s,32-24 + sli v0.4s,v13.4s,2 + sli v1.4s,v13.4s,10 + sli v2.4s,v13.4s,18 + sli v3.4s,v13.4s,24 + eor v24.16b,v0.16b,v13.16b + eor v24.16b,v24.16b,v1.16b + eor v13.16b,v2.16b,v3.16b + eor v13.16b,v13.16b,v24.16b + eor v7.16b,v7.16b,v13.16b + subs w11,w11,#1 + b.ne 10b +#ifndef __AARCH64EB__ + rev32 v3.16b,v4.16b +#else + mov v3.16b,v4.16b +#endif +#ifndef __AARCH64EB__ + rev32 v2.16b,v5.16b +#else + mov v2.16b,v5.16b +#endif +#ifndef __AARCH64EB__ + rev32 v1.16b,v6.16b +#else + mov v1.16b,v6.16b +#endif +#ifndef __AARCH64EB__ + rev32 v0.16b,v7.16b +#else + mov v0.16b,v7.16b +#endif + ret +.size _vpsm4_ex_enc_4blks,.-_vpsm4_ex_enc_4blks +.type _vpsm4_ex_enc_8blks,%function +.align 4 +_vpsm4_ex_enc_8blks: + AARCH64_VALID_CALL_TARGET + mov x10,x3 + mov w11,#8 +10: + ldp w7,w8,[x10],8 + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + dup v12.4s,w7 + eor v14.16b,v6.16b,v7.16b + eor v15.16b,v10.16b,v11.16b + eor v0.16b,v5.16b,v12.16b + eor v1.16b,v9.16b,v12.16b + eor v12.16b,v14.16b,v0.16b + eor v13.16b,v15.16b,v1.16b + // optimize sbox using AESE instruction + tbl v0.16b, {v12.16b}, v26.16b + tbl v1.16b, {v13.16b}, v26.16b + ushr v24.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v24.16b, {v27.16b}, v24.16b + eor v0.16b, v0.16b, v24.16b + ushr v24.16b, v1.16b, 4 + and v1.16b, v1.16b, v31.16b + tbl v1.16b, {v28.16b}, v1.16b + tbl v24.16b, {v27.16b}, v24.16b + eor v1.16b, v1.16b, v24.16b + eor v25.16b, v25.16b, v25.16b + aese v0.16b,v25.16b + aese v1.16b,v25.16b + ushr v24.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v24.16b, {v29.16b}, v24.16b + eor v0.16b, v0.16b, v24.16b + ushr v24.16b, v1.16b, 4 + and v1.16b, v1.16b, v31.16b + tbl v1.16b, {v30.16b}, v1.16b + tbl v24.16b, {v29.16b}, v24.16b + eor v1.16b, v1.16b, v24.16b + mov v12.16b,v0.16b + mov v13.16b,v1.16b + + // linear transformation + ushr v0.4s,v12.4s,32-2 + ushr v25.4s,v13.4s,32-2 + ushr v1.4s,v12.4s,32-10 + ushr v2.4s,v12.4s,32-18 + ushr v3.4s,v12.4s,32-24 + sli v0.4s,v12.4s,2 + sli v25.4s,v13.4s,2 + sli v1.4s,v12.4s,10 + sli v2.4s,v12.4s,18 + sli v3.4s,v12.4s,24 + eor v24.16b,v0.16b,v12.16b + eor v24.16b,v24.16b,v1.16b + eor v12.16b,v2.16b,v3.16b + eor v12.16b,v12.16b,v24.16b + ushr v1.4s,v13.4s,32-10 + ushr v2.4s,v13.4s,32-18 + ushr v3.4s,v13.4s,32-24 + sli v1.4s,v13.4s,10 + sli v2.4s,v13.4s,18 + sli v3.4s,v13.4s,24 + eor v24.16b,v25.16b,v13.16b + eor v24.16b,v24.16b,v1.16b + eor v13.16b,v2.16b,v3.16b + eor v13.16b,v13.16b,v24.16b + eor v4.16b,v4.16b,v12.16b + eor v8.16b,v8.16b,v13.16b + + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + dup v13.4s,w8 + eor v14.16b,v14.16b,v4.16b + eor v15.16b,v15.16b,v8.16b + eor v12.16b,v14.16b,v13.16b + eor v13.16b,v15.16b,v13.16b + // optimize sbox using AESE instruction + tbl v0.16b, {v12.16b}, v26.16b + tbl v1.16b, {v13.16b}, v26.16b + ushr v24.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v24.16b, {v27.16b}, v24.16b + eor v0.16b, v0.16b, v24.16b + ushr v24.16b, v1.16b, 4 + and v1.16b, v1.16b, v31.16b + tbl v1.16b, {v28.16b}, v1.16b + tbl v24.16b, {v27.16b}, v24.16b + eor v1.16b, v1.16b, v24.16b + eor v25.16b, v25.16b, v25.16b + aese v0.16b,v25.16b + aese v1.16b,v25.16b + ushr v24.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v24.16b, {v29.16b}, v24.16b + eor v0.16b, v0.16b, v24.16b + ushr v24.16b, v1.16b, 4 + and v1.16b, v1.16b, v31.16b + tbl v1.16b, {v30.16b}, v1.16b + tbl v24.16b, {v29.16b}, v24.16b + eor v1.16b, v1.16b, v24.16b + mov v12.16b,v0.16b + mov v13.16b,v1.16b + + // linear transformation + ushr v0.4s,v12.4s,32-2 + ushr v25.4s,v13.4s,32-2 + ushr v1.4s,v12.4s,32-10 + ushr v2.4s,v12.4s,32-18 + ushr v3.4s,v12.4s,32-24 + sli v0.4s,v12.4s,2 + sli v25.4s,v13.4s,2 + sli v1.4s,v12.4s,10 + sli v2.4s,v12.4s,18 + sli v3.4s,v12.4s,24 + eor v24.16b,v0.16b,v12.16b + eor v24.16b,v24.16b,v1.16b + eor v12.16b,v2.16b,v3.16b + eor v12.16b,v12.16b,v24.16b + ushr v1.4s,v13.4s,32-10 + ushr v2.4s,v13.4s,32-18 + ushr v3.4s,v13.4s,32-24 + sli v1.4s,v13.4s,10 + sli v2.4s,v13.4s,18 + sli v3.4s,v13.4s,24 + eor v24.16b,v25.16b,v13.16b + eor v24.16b,v24.16b,v1.16b + eor v13.16b,v2.16b,v3.16b + eor v13.16b,v13.16b,v24.16b + ldp w7,w8,[x10],8 + eor v5.16b,v5.16b,v12.16b + eor v9.16b,v9.16b,v13.16b + + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + dup v12.4s,w7 + eor v14.16b,v4.16b,v5.16b + eor v15.16b,v8.16b,v9.16b + eor v0.16b,v7.16b,v12.16b + eor v1.16b,v11.16b,v12.16b + eor v12.16b,v14.16b,v0.16b + eor v13.16b,v15.16b,v1.16b + // optimize sbox using AESE instruction + tbl v0.16b, {v12.16b}, v26.16b + tbl v1.16b, {v13.16b}, v26.16b + ushr v24.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v24.16b, {v27.16b}, v24.16b + eor v0.16b, v0.16b, v24.16b + ushr v24.16b, v1.16b, 4 + and v1.16b, v1.16b, v31.16b + tbl v1.16b, {v28.16b}, v1.16b + tbl v24.16b, {v27.16b}, v24.16b + eor v1.16b, v1.16b, v24.16b + eor v25.16b, v25.16b, v25.16b + aese v0.16b,v25.16b + aese v1.16b,v25.16b + ushr v24.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v24.16b, {v29.16b}, v24.16b + eor v0.16b, v0.16b, v24.16b + ushr v24.16b, v1.16b, 4 + and v1.16b, v1.16b, v31.16b + tbl v1.16b, {v30.16b}, v1.16b + tbl v24.16b, {v29.16b}, v24.16b + eor v1.16b, v1.16b, v24.16b + mov v12.16b,v0.16b + mov v13.16b,v1.16b + + // linear transformation + ushr v0.4s,v12.4s,32-2 + ushr v25.4s,v13.4s,32-2 + ushr v1.4s,v12.4s,32-10 + ushr v2.4s,v12.4s,32-18 + ushr v3.4s,v12.4s,32-24 + sli v0.4s,v12.4s,2 + sli v25.4s,v13.4s,2 + sli v1.4s,v12.4s,10 + sli v2.4s,v12.4s,18 + sli v3.4s,v12.4s,24 + eor v24.16b,v0.16b,v12.16b + eor v24.16b,v24.16b,v1.16b + eor v12.16b,v2.16b,v3.16b + eor v12.16b,v12.16b,v24.16b + ushr v1.4s,v13.4s,32-10 + ushr v2.4s,v13.4s,32-18 + ushr v3.4s,v13.4s,32-24 + sli v1.4s,v13.4s,10 + sli v2.4s,v13.4s,18 + sli v3.4s,v13.4s,24 + eor v24.16b,v25.16b,v13.16b + eor v24.16b,v24.16b,v1.16b + eor v13.16b,v2.16b,v3.16b + eor v13.16b,v13.16b,v24.16b + eor v6.16b,v6.16b,v12.16b + eor v10.16b,v10.16b,v13.16b + + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + dup v13.4s,w8 + eor v14.16b,v14.16b,v6.16b + eor v15.16b,v15.16b,v10.16b + eor v12.16b,v14.16b,v13.16b + eor v13.16b,v15.16b,v13.16b + // optimize sbox using AESE instruction + tbl v0.16b, {v12.16b}, v26.16b + tbl v1.16b, {v13.16b}, v26.16b + ushr v24.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v24.16b, {v27.16b}, v24.16b + eor v0.16b, v0.16b, v24.16b + ushr v24.16b, v1.16b, 4 + and v1.16b, v1.16b, v31.16b + tbl v1.16b, {v28.16b}, v1.16b + tbl v24.16b, {v27.16b}, v24.16b + eor v1.16b, v1.16b, v24.16b + eor v25.16b, v25.16b, v25.16b + aese v0.16b,v25.16b + aese v1.16b,v25.16b + ushr v24.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v24.16b, {v29.16b}, v24.16b + eor v0.16b, v0.16b, v24.16b + ushr v24.16b, v1.16b, 4 + and v1.16b, v1.16b, v31.16b + tbl v1.16b, {v30.16b}, v1.16b + tbl v24.16b, {v29.16b}, v24.16b + eor v1.16b, v1.16b, v24.16b + mov v12.16b,v0.16b + mov v13.16b,v1.16b + + // linear transformation + ushr v0.4s,v12.4s,32-2 + ushr v25.4s,v13.4s,32-2 + ushr v1.4s,v12.4s,32-10 + ushr v2.4s,v12.4s,32-18 + ushr v3.4s,v12.4s,32-24 + sli v0.4s,v12.4s,2 + sli v25.4s,v13.4s,2 + sli v1.4s,v12.4s,10 + sli v2.4s,v12.4s,18 + sli v3.4s,v12.4s,24 + eor v24.16b,v0.16b,v12.16b + eor v24.16b,v24.16b,v1.16b + eor v12.16b,v2.16b,v3.16b + eor v12.16b,v12.16b,v24.16b + ushr v1.4s,v13.4s,32-10 + ushr v2.4s,v13.4s,32-18 + ushr v3.4s,v13.4s,32-24 + sli v1.4s,v13.4s,10 + sli v2.4s,v13.4s,18 + sli v3.4s,v13.4s,24 + eor v24.16b,v25.16b,v13.16b + eor v24.16b,v24.16b,v1.16b + eor v13.16b,v2.16b,v3.16b + eor v13.16b,v13.16b,v24.16b + eor v7.16b,v7.16b,v12.16b + eor v11.16b,v11.16b,v13.16b + subs w11,w11,#1 + b.ne 10b +#ifndef __AARCH64EB__ + rev32 v3.16b,v4.16b +#else + mov v3.16b,v4.16b +#endif +#ifndef __AARCH64EB__ + rev32 v2.16b,v5.16b +#else + mov v2.16b,v5.16b +#endif +#ifndef __AARCH64EB__ + rev32 v1.16b,v6.16b +#else + mov v1.16b,v6.16b +#endif +#ifndef __AARCH64EB__ + rev32 v0.16b,v7.16b +#else + mov v0.16b,v7.16b +#endif +#ifndef __AARCH64EB__ + rev32 v7.16b,v8.16b +#else + mov v7.16b,v8.16b +#endif +#ifndef __AARCH64EB__ + rev32 v6.16b,v9.16b +#else + mov v6.16b,v9.16b +#endif +#ifndef __AARCH64EB__ + rev32 v5.16b,v10.16b +#else + mov v5.16b,v10.16b +#endif +#ifndef __AARCH64EB__ + rev32 v4.16b,v11.16b +#else + mov v4.16b,v11.16b +#endif + ret +.size _vpsm4_ex_enc_8blks,.-_vpsm4_ex_enc_8blks +.globl vpsm4_ex_set_encrypt_key +.type vpsm4_ex_set_encrypt_key,%function +.align 5 +vpsm4_ex_set_encrypt_key: + AARCH64_SIGN_LINK_REGISTER + stp x29,x30,[sp,#-16]! + mov w2,1 + bl _vpsm4_ex_set_key + ldp x29,x30,[sp],#16 + AARCH64_VALIDATE_LINK_REGISTER + ret +.size vpsm4_ex_set_encrypt_key,.-vpsm4_ex_set_encrypt_key +.globl vpsm4_ex_set_decrypt_key +.type vpsm4_ex_set_decrypt_key,%function +.align 5 +vpsm4_ex_set_decrypt_key: + AARCH64_SIGN_LINK_REGISTER + stp x29,x30,[sp,#-16]! + mov w2,0 + bl _vpsm4_ex_set_key + ldp x29,x30,[sp],#16 + AARCH64_VALIDATE_LINK_REGISTER + ret +.size vpsm4_ex_set_decrypt_key,.-vpsm4_ex_set_decrypt_key +.globl vpsm4_ex_encrypt +.type vpsm4_ex_encrypt,%function +.align 5 +vpsm4_ex_encrypt: + AARCH64_VALID_CALL_TARGET + ld1 {v4.4s},[x0] + adrp x9, .Lsbox_magic + ldr q26, [x9, #:lo12:.Lsbox_magic] + ldr q27, [x9, #:lo12:.Lsbox_magic+16] + ldr q28, [x9, #:lo12:.Lsbox_magic+32] + ldr q29, [x9, #:lo12:.Lsbox_magic+48] + ldr q30, [x9, #:lo12:.Lsbox_magic+64] + ldr q31, [x9, #:lo12:.Lsbox_magic+80] +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif + mov x3,x2 + mov x10,x3 + mov w11,#8 + mov w12,v4.s[0] + mov w13,v4.s[1] + mov w14,v4.s[2] + mov w15,v4.s[3] +10: + ldp w7,w8,[x10],8 + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + eor w6,w14,w15 + eor w9,w7,w13 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w12,w12,w6 + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + eor w6,w14,w15 + eor w9,w12,w8 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + ldp w7,w8,[x10],8 + eor w13,w13,w6 + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + eor w6,w12,w13 + eor w9,w7,w15 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w14,w14,w6 + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + eor w6,w12,w13 + eor w9,w14,w8 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w15,w15,w6 + subs w11,w11,#1 + b.ne 10b + mov v4.s[0],w15 + mov v4.s[1],w14 + mov v4.s[2],w13 + mov v4.s[3],w12 +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif + st1 {v4.4s},[x1] + ret +.size vpsm4_ex_encrypt,.-vpsm4_ex_encrypt +.globl vpsm4_ex_decrypt +.type vpsm4_ex_decrypt,%function +.align 5 +vpsm4_ex_decrypt: + AARCH64_VALID_CALL_TARGET + ld1 {v4.4s},[x0] + adrp x9, .Lsbox_magic + ldr q26, [x9, #:lo12:.Lsbox_magic] + ldr q27, [x9, #:lo12:.Lsbox_magic+16] + ldr q28, [x9, #:lo12:.Lsbox_magic+32] + ldr q29, [x9, #:lo12:.Lsbox_magic+48] + ldr q30, [x9, #:lo12:.Lsbox_magic+64] + ldr q31, [x9, #:lo12:.Lsbox_magic+80] +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif + mov x3,x2 + mov x10,x3 + mov w11,#8 + mov w12,v4.s[0] + mov w13,v4.s[1] + mov w14,v4.s[2] + mov w15,v4.s[3] +10: + ldp w7,w8,[x10],8 + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + eor w6,w14,w15 + eor w9,w7,w13 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w12,w12,w6 + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + eor w6,w14,w15 + eor w9,w12,w8 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + ldp w7,w8,[x10],8 + eor w13,w13,w6 + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + eor w6,w12,w13 + eor w9,w7,w15 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w14,w14,w6 + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + eor w6,w12,w13 + eor w9,w14,w8 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w15,w15,w6 + subs w11,w11,#1 + b.ne 10b + mov v4.s[0],w15 + mov v4.s[1],w14 + mov v4.s[2],w13 + mov v4.s[3],w12 +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif + st1 {v4.4s},[x1] + ret +.size vpsm4_ex_decrypt,.-vpsm4_ex_decrypt +.globl vpsm4_ex_ecb_encrypt +.type vpsm4_ex_ecb_encrypt,%function +.align 5 +vpsm4_ex_ecb_encrypt: + AARCH64_SIGN_LINK_REGISTER + // convert length into blocks + lsr x2,x2,4 + stp d8,d9,[sp,#-80]! + stp d10,d11,[sp,#16] + stp d12,d13,[sp,#32] + stp d14,d15,[sp,#48] + stp x29,x30,[sp,#64] + adrp x9, .Lsbox_magic + ldr q26, [x9, #:lo12:.Lsbox_magic] + ldr q27, [x9, #:lo12:.Lsbox_magic+16] + ldr q28, [x9, #:lo12:.Lsbox_magic+32] + ldr q29, [x9, #:lo12:.Lsbox_magic+48] + ldr q30, [x9, #:lo12:.Lsbox_magic+64] + ldr q31, [x9, #:lo12:.Lsbox_magic+80] +.Lecb_8_blocks_process: + cmp w2,#8 + b.lt .Lecb_4_blocks_process + ld4 {v4.4s,v5.4s,v6.4s,v7.4s},[x0],#64 + ld4 {v8.4s,v9.4s,v10.4s,v11.4s},[x0],#64 +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif +#ifndef __AARCH64EB__ + rev32 v5.16b,v5.16b +#endif +#ifndef __AARCH64EB__ + rev32 v6.16b,v6.16b +#endif +#ifndef __AARCH64EB__ + rev32 v7.16b,v7.16b +#endif +#ifndef __AARCH64EB__ + rev32 v8.16b,v8.16b +#endif +#ifndef __AARCH64EB__ + rev32 v9.16b,v9.16b +#endif +#ifndef __AARCH64EB__ + rev32 v10.16b,v10.16b +#endif +#ifndef __AARCH64EB__ + rev32 v11.16b,v11.16b +#endif + bl _vpsm4_ex_enc_8blks + st4 {v0.4s,v1.4s,v2.4s,v3.4s},[x1],#64 + st4 {v4.4s,v5.4s,v6.4s,v7.4s},[x1],#64 + subs w2,w2,#8 + b.gt .Lecb_8_blocks_process + b 100f +.Lecb_4_blocks_process: + cmp w2,#4 + b.lt 1f + ld4 {v4.4s,v5.4s,v6.4s,v7.4s},[x0],#64 +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif +#ifndef __AARCH64EB__ + rev32 v5.16b,v5.16b +#endif +#ifndef __AARCH64EB__ + rev32 v6.16b,v6.16b +#endif +#ifndef __AARCH64EB__ + rev32 v7.16b,v7.16b +#endif + bl _vpsm4_ex_enc_4blks + st4 {v0.4s,v1.4s,v2.4s,v3.4s},[x1],#64 + sub w2,w2,#4 +1: + // process last block + cmp w2,#1 + b.lt 100f + b.gt 1f + ld1 {v4.4s},[x0] +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif + mov x10,x3 + mov w11,#8 + mov w12,v4.s[0] + mov w13,v4.s[1] + mov w14,v4.s[2] + mov w15,v4.s[3] +10: + ldp w7,w8,[x10],8 + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + eor w6,w14,w15 + eor w9,w7,w13 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w12,w12,w6 + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + eor w6,w14,w15 + eor w9,w12,w8 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + ldp w7,w8,[x10],8 + eor w13,w13,w6 + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + eor w6,w12,w13 + eor w9,w7,w15 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w14,w14,w6 + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + eor w6,w12,w13 + eor w9,w14,w8 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w15,w15,w6 + subs w11,w11,#1 + b.ne 10b + mov v4.s[0],w15 + mov v4.s[1],w14 + mov v4.s[2],w13 + mov v4.s[3],w12 +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif + st1 {v4.4s},[x1] + b 100f +1: // process last 2 blocks + ld4 {v4.s,v5.s,v6.s,v7.s}[0],[x0],#16 + ld4 {v4.s,v5.s,v6.s,v7.s}[1],[x0],#16 + cmp w2,#2 + b.gt 1f +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif +#ifndef __AARCH64EB__ + rev32 v5.16b,v5.16b +#endif +#ifndef __AARCH64EB__ + rev32 v6.16b,v6.16b +#endif +#ifndef __AARCH64EB__ + rev32 v7.16b,v7.16b +#endif + bl _vpsm4_ex_enc_4blks + st4 {v0.s,v1.s,v2.s,v3.s}[0],[x1],#16 + st4 {v0.s,v1.s,v2.s,v3.s}[1],[x1] + b 100f +1: // process last 3 blocks + ld4 {v4.s,v5.s,v6.s,v7.s}[2],[x0],#16 +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif +#ifndef __AARCH64EB__ + rev32 v5.16b,v5.16b +#endif +#ifndef __AARCH64EB__ + rev32 v6.16b,v6.16b +#endif +#ifndef __AARCH64EB__ + rev32 v7.16b,v7.16b +#endif + bl _vpsm4_ex_enc_4blks + st4 {v0.s,v1.s,v2.s,v3.s}[0],[x1],#16 + st4 {v0.s,v1.s,v2.s,v3.s}[1],[x1],#16 + st4 {v0.s,v1.s,v2.s,v3.s}[2],[x1] +100: + ldp d10,d11,[sp,#16] + ldp d12,d13,[sp,#32] + ldp d14,d15,[sp,#48] + ldp x29,x30,[sp,#64] + ldp d8,d9,[sp],#80 + AARCH64_VALIDATE_LINK_REGISTER + ret +.size vpsm4_ex_ecb_encrypt,.-vpsm4_ex_ecb_encrypt +.globl vpsm4_ex_cbc_encrypt +.type vpsm4_ex_cbc_encrypt,%function +.align 5 +vpsm4_ex_cbc_encrypt: + AARCH64_VALID_CALL_TARGET + lsr x2,x2,4 + adrp x9, .Lsbox_magic + ldr q26, [x9, #:lo12:.Lsbox_magic] + ldr q27, [x9, #:lo12:.Lsbox_magic+16] + ldr q28, [x9, #:lo12:.Lsbox_magic+32] + ldr q29, [x9, #:lo12:.Lsbox_magic+48] + ldr q30, [x9, #:lo12:.Lsbox_magic+64] + ldr q31, [x9, #:lo12:.Lsbox_magic+80] + cbz w5,.Ldec + ld1 {v3.4s},[x4] +.Lcbc_4_blocks_enc: + cmp w2,#4 + b.lt 1f + ld1 {v4.4s,v5.4s,v6.4s,v7.4s},[x0],#64 + eor v4.16b,v4.16b,v3.16b +#ifndef __AARCH64EB__ + rev32 v5.16b,v5.16b +#endif +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif +#ifndef __AARCH64EB__ + rev32 v6.16b,v6.16b +#endif +#ifndef __AARCH64EB__ + rev32 v7.16b,v7.16b +#endif + mov x10,x3 + mov w11,#8 + mov w12,v4.s[0] + mov w13,v4.s[1] + mov w14,v4.s[2] + mov w15,v4.s[3] +10: + ldp w7,w8,[x10],8 + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + eor w6,w14,w15 + eor w9,w7,w13 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w12,w12,w6 + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + eor w6,w14,w15 + eor w9,w12,w8 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + ldp w7,w8,[x10],8 + eor w13,w13,w6 + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + eor w6,w12,w13 + eor w9,w7,w15 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w14,w14,w6 + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + eor w6,w12,w13 + eor w9,w14,w8 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w15,w15,w6 + subs w11,w11,#1 + b.ne 10b + mov v4.s[0],w15 + mov v4.s[1],w14 + mov v4.s[2],w13 + mov v4.s[3],w12 + eor v5.16b,v5.16b,v4.16b + mov x10,x3 + mov w11,#8 + mov w12,v5.s[0] + mov w13,v5.s[1] + mov w14,v5.s[2] + mov w15,v5.s[3] +10: + ldp w7,w8,[x10],8 + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + eor w6,w14,w15 + eor w9,w7,w13 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w12,w12,w6 + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + eor w6,w14,w15 + eor w9,w12,w8 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + ldp w7,w8,[x10],8 + eor w13,w13,w6 + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + eor w6,w12,w13 + eor w9,w7,w15 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w14,w14,w6 + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + eor w6,w12,w13 + eor w9,w14,w8 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w15,w15,w6 + subs w11,w11,#1 + b.ne 10b + mov v5.s[0],w15 + mov v5.s[1],w14 + mov v5.s[2],w13 + mov v5.s[3],w12 +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif + eor v6.16b,v6.16b,v5.16b + mov x10,x3 + mov w11,#8 + mov w12,v6.s[0] + mov w13,v6.s[1] + mov w14,v6.s[2] + mov w15,v6.s[3] +10: + ldp w7,w8,[x10],8 + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + eor w6,w14,w15 + eor w9,w7,w13 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w12,w12,w6 + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + eor w6,w14,w15 + eor w9,w12,w8 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + ldp w7,w8,[x10],8 + eor w13,w13,w6 + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + eor w6,w12,w13 + eor w9,w7,w15 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w14,w14,w6 + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + eor w6,w12,w13 + eor w9,w14,w8 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w15,w15,w6 + subs w11,w11,#1 + b.ne 10b + mov v6.s[0],w15 + mov v6.s[1],w14 + mov v6.s[2],w13 + mov v6.s[3],w12 +#ifndef __AARCH64EB__ + rev32 v5.16b,v5.16b +#endif + eor v7.16b,v7.16b,v6.16b + mov x10,x3 + mov w11,#8 + mov w12,v7.s[0] + mov w13,v7.s[1] + mov w14,v7.s[2] + mov w15,v7.s[3] +10: + ldp w7,w8,[x10],8 + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + eor w6,w14,w15 + eor w9,w7,w13 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w12,w12,w6 + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + eor w6,w14,w15 + eor w9,w12,w8 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + ldp w7,w8,[x10],8 + eor w13,w13,w6 + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + eor w6,w12,w13 + eor w9,w7,w15 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w14,w14,w6 + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + eor w6,w12,w13 + eor w9,w14,w8 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w15,w15,w6 + subs w11,w11,#1 + b.ne 10b + mov v7.s[0],w15 + mov v7.s[1],w14 + mov v7.s[2],w13 + mov v7.s[3],w12 +#ifndef __AARCH64EB__ + rev32 v6.16b,v6.16b +#endif +#ifndef __AARCH64EB__ + rev32 v7.16b,v7.16b +#endif + orr v3.16b,v7.16b,v7.16b + st1 {v4.4s,v5.4s,v6.4s,v7.4s},[x1],#64 + subs w2,w2,#4 + b.ne .Lcbc_4_blocks_enc + b 2f +1: + subs w2,w2,#1 + b.lt 2f + ld1 {v4.4s},[x0],#16 + eor v3.16b,v3.16b,v4.16b +#ifndef __AARCH64EB__ + rev32 v3.16b,v3.16b +#endif + mov x10,x3 + mov w11,#8 + mov w12,v3.s[0] + mov w13,v3.s[1] + mov w14,v3.s[2] + mov w15,v3.s[3] +10: + ldp w7,w8,[x10],8 + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + eor w6,w14,w15 + eor w9,w7,w13 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w12,w12,w6 + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + eor w6,w14,w15 + eor w9,w12,w8 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + ldp w7,w8,[x10],8 + eor w13,w13,w6 + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + eor w6,w12,w13 + eor w9,w7,w15 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w14,w14,w6 + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + eor w6,w12,w13 + eor w9,w14,w8 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w15,w15,w6 + subs w11,w11,#1 + b.ne 10b + mov v3.s[0],w15 + mov v3.s[1],w14 + mov v3.s[2],w13 + mov v3.s[3],w12 +#ifndef __AARCH64EB__ + rev32 v3.16b,v3.16b +#endif + st1 {v3.4s},[x1],#16 + b 1b +2: + // save back IV + st1 {v3.4s},[x4] + ret + +.Ldec: + // decryption mode starts + AARCH64_SIGN_LINK_REGISTER + stp d8,d9,[sp,#-80]! + stp d10,d11,[sp,#16] + stp d12,d13,[sp,#32] + stp d14,d15,[sp,#48] + stp x29,x30,[sp,#64] +.Lcbc_8_blocks_dec: + cmp w2,#8 + b.lt 1f + ld4 {v4.4s,v5.4s,v6.4s,v7.4s},[x0] + add x10,x0,#64 + ld4 {v8.4s,v9.4s,v10.4s,v11.4s},[x10] +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif +#ifndef __AARCH64EB__ + rev32 v5.16b,v5.16b +#endif +#ifndef __AARCH64EB__ + rev32 v6.16b,v6.16b +#endif +#ifndef __AARCH64EB__ + rev32 v7.16b,v7.16b +#endif +#ifndef __AARCH64EB__ + rev32 v8.16b,v8.16b +#endif +#ifndef __AARCH64EB__ + rev32 v9.16b,v9.16b +#endif +#ifndef __AARCH64EB__ + rev32 v10.16b,v10.16b +#endif +#ifndef __AARCH64EB__ + rev32 v11.16b,v11.16b +#endif + bl _vpsm4_ex_enc_8blks + zip1 v8.4s,v0.4s,v1.4s + zip2 v9.4s,v0.4s,v1.4s + zip1 v10.4s,v2.4s,v3.4s + zip2 v11.4s,v2.4s,v3.4s + zip1 v0.2d,v8.2d,v10.2d + zip2 v1.2d,v8.2d,v10.2d + zip1 v2.2d,v9.2d,v11.2d + zip2 v3.2d,v9.2d,v11.2d + zip1 v8.4s,v4.4s,v5.4s + zip2 v9.4s,v4.4s,v5.4s + zip1 v10.4s,v6.4s,v7.4s + zip2 v11.4s,v6.4s,v7.4s + zip1 v4.2d,v8.2d,v10.2d + zip2 v5.2d,v8.2d,v10.2d + zip1 v6.2d,v9.2d,v11.2d + zip2 v7.2d,v9.2d,v11.2d + ld1 {v15.4s},[x4] + ld1 {v8.4s,v9.4s,v10.4s,v11.4s},[x0],#64 + // note ivec1 and vtmpx[3] are reusing the same register + // care needs to be taken to avoid conflict + eor v0.16b,v0.16b,v15.16b + ld1 {v12.4s,v13.4s,v14.4s,v15.4s},[x0],#64 + eor v1.16b,v1.16b,v8.16b + eor v2.16b,v2.16b,v9.16b + eor v3.16b,v3.16b,v10.16b + // save back IV + st1 {v15.4s}, [x4] + eor v4.16b,v4.16b,v11.16b + eor v5.16b,v5.16b,v12.16b + eor v6.16b,v6.16b,v13.16b + eor v7.16b,v7.16b,v14.16b + st1 {v0.4s,v1.4s,v2.4s,v3.4s},[x1],#64 + st1 {v4.4s,v5.4s,v6.4s,v7.4s},[x1],#64 + subs w2,w2,#8 + b.gt .Lcbc_8_blocks_dec + b.eq 100f +1: + ld1 {v15.4s},[x4] +.Lcbc_4_blocks_dec: + cmp w2,#4 + b.lt 1f + ld4 {v4.4s,v5.4s,v6.4s,v7.4s},[x0] +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif +#ifndef __AARCH64EB__ + rev32 v5.16b,v5.16b +#endif +#ifndef __AARCH64EB__ + rev32 v6.16b,v6.16b +#endif +#ifndef __AARCH64EB__ + rev32 v7.16b,v7.16b +#endif + bl _vpsm4_ex_enc_4blks + ld1 {v4.4s,v5.4s,v6.4s,v7.4s},[x0],#64 + zip1 v8.4s,v0.4s,v1.4s + zip2 v9.4s,v0.4s,v1.4s + zip1 v10.4s,v2.4s,v3.4s + zip2 v11.4s,v2.4s,v3.4s + zip1 v0.2d,v8.2d,v10.2d + zip2 v1.2d,v8.2d,v10.2d + zip1 v2.2d,v9.2d,v11.2d + zip2 v3.2d,v9.2d,v11.2d + eor v0.16b,v0.16b,v15.16b + eor v1.16b,v1.16b,v4.16b + orr v15.16b,v7.16b,v7.16b + eor v2.16b,v2.16b,v5.16b + eor v3.16b,v3.16b,v6.16b + st1 {v0.4s,v1.4s,v2.4s,v3.4s},[x1],#64 + subs w2,w2,#4 + b.gt .Lcbc_4_blocks_dec + // save back IV + st1 {v7.4s}, [x4] + b 100f +1: // last block + subs w2,w2,#1 + b.lt 100f + b.gt 1f + ld1 {v4.4s},[x0],#16 + // save back IV + st1 {v4.4s}, [x4] +#ifndef __AARCH64EB__ + rev32 v8.16b,v4.16b +#else + mov v8.16b,v4.16b +#endif + mov x10,x3 + mov w11,#8 + mov w12,v8.s[0] + mov w13,v8.s[1] + mov w14,v8.s[2] + mov w15,v8.s[3] +10: + ldp w7,w8,[x10],8 + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + eor w6,w14,w15 + eor w9,w7,w13 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w12,w12,w6 + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + eor w6,w14,w15 + eor w9,w12,w8 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + ldp w7,w8,[x10],8 + eor w13,w13,w6 + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + eor w6,w12,w13 + eor w9,w7,w15 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w14,w14,w6 + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + eor w6,w12,w13 + eor w9,w14,w8 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w15,w15,w6 + subs w11,w11,#1 + b.ne 10b + mov v8.s[0],w15 + mov v8.s[1],w14 + mov v8.s[2],w13 + mov v8.s[3],w12 +#ifndef __AARCH64EB__ + rev32 v8.16b,v8.16b +#endif + eor v8.16b,v8.16b,v15.16b + st1 {v8.4s},[x1],#16 + b 100f +1: // last two blocks + ld4 {v4.s,v5.s,v6.s,v7.s}[0],[x0] + add x10,x0,#16 + ld4 {v4.s,v5.s,v6.s,v7.s}[1],[x10],#16 + subs w2,w2,1 + b.gt 1f +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif +#ifndef __AARCH64EB__ + rev32 v5.16b,v5.16b +#endif +#ifndef __AARCH64EB__ + rev32 v6.16b,v6.16b +#endif +#ifndef __AARCH64EB__ + rev32 v7.16b,v7.16b +#endif + bl _vpsm4_ex_enc_4blks + ld1 {v4.4s,v5.4s},[x0],#32 + zip1 v8.4s,v0.4s,v1.4s + zip2 v9.4s,v0.4s,v1.4s + zip1 v10.4s,v2.4s,v3.4s + zip2 v11.4s,v2.4s,v3.4s + zip1 v0.2d,v8.2d,v10.2d + zip2 v1.2d,v8.2d,v10.2d + zip1 v2.2d,v9.2d,v11.2d + zip2 v3.2d,v9.2d,v11.2d + eor v0.16b,v0.16b,v15.16b + eor v1.16b,v1.16b,v4.16b + st1 {v0.4s,v1.4s},[x1],#32 + // save back IV + st1 {v5.4s}, [x4] + b 100f +1: // last 3 blocks + ld4 {v4.s,v5.s,v6.s,v7.s}[2],[x10] +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif +#ifndef __AARCH64EB__ + rev32 v5.16b,v5.16b +#endif +#ifndef __AARCH64EB__ + rev32 v6.16b,v6.16b +#endif +#ifndef __AARCH64EB__ + rev32 v7.16b,v7.16b +#endif + bl _vpsm4_ex_enc_4blks + ld1 {v4.4s,v5.4s,v6.4s},[x0],#48 + zip1 v8.4s,v0.4s,v1.4s + zip2 v9.4s,v0.4s,v1.4s + zip1 v10.4s,v2.4s,v3.4s + zip2 v11.4s,v2.4s,v3.4s + zip1 v0.2d,v8.2d,v10.2d + zip2 v1.2d,v8.2d,v10.2d + zip1 v2.2d,v9.2d,v11.2d + zip2 v3.2d,v9.2d,v11.2d + eor v0.16b,v0.16b,v15.16b + eor v1.16b,v1.16b,v4.16b + eor v2.16b,v2.16b,v5.16b + st1 {v0.4s,v1.4s,v2.4s},[x1],#48 + // save back IV + st1 {v6.4s}, [x4] +100: + ldp d10,d11,[sp,#16] + ldp d12,d13,[sp,#32] + ldp d14,d15,[sp,#48] + ldp x29,x30,[sp,#64] + ldp d8,d9,[sp],#80 + AARCH64_VALIDATE_LINK_REGISTER + ret +.size vpsm4_ex_cbc_encrypt,.-vpsm4_ex_cbc_encrypt +.globl vpsm4_ex_ctr32_encrypt_blocks +.type vpsm4_ex_ctr32_encrypt_blocks,%function +.align 5 +vpsm4_ex_ctr32_encrypt_blocks: + AARCH64_VALID_CALL_TARGET + ld1 {v3.4s},[x4] +#ifndef __AARCH64EB__ + rev32 v3.16b,v3.16b +#endif + adrp x9, .Lsbox_magic + ldr q26, [x9, #:lo12:.Lsbox_magic] + ldr q27, [x9, #:lo12:.Lsbox_magic+16] + ldr q28, [x9, #:lo12:.Lsbox_magic+32] + ldr q29, [x9, #:lo12:.Lsbox_magic+48] + ldr q30, [x9, #:lo12:.Lsbox_magic+64] + ldr q31, [x9, #:lo12:.Lsbox_magic+80] + cmp w2,#1 + b.ne 1f + // fast processing for one single block without + // context saving overhead + mov x10,x3 + mov w11,#8 + mov w12,v3.s[0] + mov w13,v3.s[1] + mov w14,v3.s[2] + mov w15,v3.s[3] +10: + ldp w7,w8,[x10],8 + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + eor w6,w14,w15 + eor w9,w7,w13 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w12,w12,w6 + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + eor w6,w14,w15 + eor w9,w12,w8 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + ldp w7,w8,[x10],8 + eor w13,w13,w6 + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + eor w6,w12,w13 + eor w9,w7,w15 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w14,w14,w6 + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + eor w6,w12,w13 + eor w9,w14,w8 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w15,w15,w6 + subs w11,w11,#1 + b.ne 10b + mov v3.s[0],w15 + mov v3.s[1],w14 + mov v3.s[2],w13 + mov v3.s[3],w12 +#ifndef __AARCH64EB__ + rev32 v3.16b,v3.16b +#endif + ld1 {v4.4s},[x0] + eor v4.16b,v4.16b,v3.16b + st1 {v4.4s},[x1] + ret +1: + AARCH64_SIGN_LINK_REGISTER + stp d8,d9,[sp,#-80]! + stp d10,d11,[sp,#16] + stp d12,d13,[sp,#32] + stp d14,d15,[sp,#48] + stp x29,x30,[sp,#64] + mov w12,v3.s[0] + mov w13,v3.s[1] + mov w14,v3.s[2] + mov w5,v3.s[3] +.Lctr32_4_blocks_process: + cmp w2,#4 + b.lt 1f + dup v4.4s,w12 + dup v5.4s,w13 + dup v6.4s,w14 + mov v7.s[0],w5 + add w5,w5,#1 + mov v7.s[1],w5 + add w5,w5,#1 + mov v7.s[2],w5 + add w5,w5,#1 + mov v7.s[3],w5 + add w5,w5,#1 + cmp w2,#8 + b.ge .Lctr32_8_blocks_process + bl _vpsm4_ex_enc_4blks + ld4 {v12.4s,v13.4s,v14.4s,v15.4s},[x0],#64 + eor v0.16b,v0.16b,v12.16b + eor v1.16b,v1.16b,v13.16b + eor v2.16b,v2.16b,v14.16b + eor v3.16b,v3.16b,v15.16b + st4 {v0.4s,v1.4s,v2.4s,v3.4s},[x1],#64 + subs w2,w2,#4 + b.ne .Lctr32_4_blocks_process + b 100f +.Lctr32_8_blocks_process: + dup v8.4s,w12 + dup v9.4s,w13 + dup v10.4s,w14 + mov v11.s[0],w5 + add w5,w5,#1 + mov v11.s[1],w5 + add w5,w5,#1 + mov v11.s[2],w5 + add w5,w5,#1 + mov v11.s[3],w5 + add w5,w5,#1 + bl _vpsm4_ex_enc_8blks + ld4 {v12.4s,v13.4s,v14.4s,v15.4s},[x0],#64 + ld4 {v8.4s,v9.4s,v10.4s,v11.4s},[x0],#64 + eor v0.16b,v0.16b,v12.16b + eor v1.16b,v1.16b,v13.16b + eor v2.16b,v2.16b,v14.16b + eor v3.16b,v3.16b,v15.16b + eor v4.16b,v4.16b,v8.16b + eor v5.16b,v5.16b,v9.16b + eor v6.16b,v6.16b,v10.16b + eor v7.16b,v7.16b,v11.16b + st4 {v0.4s,v1.4s,v2.4s,v3.4s},[x1],#64 + st4 {v4.4s,v5.4s,v6.4s,v7.4s},[x1],#64 + subs w2,w2,#8 + b.ne .Lctr32_4_blocks_process + b 100f +1: // last block processing + subs w2,w2,#1 + b.lt 100f + b.gt 1f + mov v3.s[0],w12 + mov v3.s[1],w13 + mov v3.s[2],w14 + mov v3.s[3],w5 + mov x10,x3 + mov w11,#8 + mov w12,v3.s[0] + mov w13,v3.s[1] + mov w14,v3.s[2] + mov w15,v3.s[3] +10: + ldp w7,w8,[x10],8 + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + eor w6,w14,w15 + eor w9,w7,w13 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w12,w12,w6 + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + eor w6,w14,w15 + eor w9,w12,w8 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + ldp w7,w8,[x10],8 + eor w13,w13,w6 + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + eor w6,w12,w13 + eor w9,w7,w15 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w14,w14,w6 + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + eor w6,w12,w13 + eor w9,w14,w8 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w15,w15,w6 + subs w11,w11,#1 + b.ne 10b + mov v3.s[0],w15 + mov v3.s[1],w14 + mov v3.s[2],w13 + mov v3.s[3],w12 +#ifndef __AARCH64EB__ + rev32 v3.16b,v3.16b +#endif + ld1 {v4.4s},[x0] + eor v4.16b,v4.16b,v3.16b + st1 {v4.4s},[x1] + b 100f +1: // last 2 blocks processing + dup v4.4s,w12 + dup v5.4s,w13 + dup v6.4s,w14 + mov v7.s[0],w5 + add w5,w5,#1 + mov v7.s[1],w5 + subs w2,w2,#1 + b.ne 1f + bl _vpsm4_ex_enc_4blks + ld4 {v12.s,v13.s,v14.s,v15.s}[0],[x0],#16 + ld4 {v12.s,v13.s,v14.s,v15.s}[1],[x0],#16 + eor v0.16b,v0.16b,v12.16b + eor v1.16b,v1.16b,v13.16b + eor v2.16b,v2.16b,v14.16b + eor v3.16b,v3.16b,v15.16b + st4 {v0.s,v1.s,v2.s,v3.s}[0],[x1],#16 + st4 {v0.s,v1.s,v2.s,v3.s}[1],[x1],#16 + b 100f +1: // last 3 blocks processing + add w5,w5,#1 + mov v7.s[2],w5 + bl _vpsm4_ex_enc_4blks + ld4 {v12.s,v13.s,v14.s,v15.s}[0],[x0],#16 + ld4 {v12.s,v13.s,v14.s,v15.s}[1],[x0],#16 + ld4 {v12.s,v13.s,v14.s,v15.s}[2],[x0],#16 + eor v0.16b,v0.16b,v12.16b + eor v1.16b,v1.16b,v13.16b + eor v2.16b,v2.16b,v14.16b + eor v3.16b,v3.16b,v15.16b + st4 {v0.s,v1.s,v2.s,v3.s}[0],[x1],#16 + st4 {v0.s,v1.s,v2.s,v3.s}[1],[x1],#16 + st4 {v0.s,v1.s,v2.s,v3.s}[2],[x1],#16 +100: + ldp d10,d11,[sp,#16] + ldp d12,d13,[sp,#32] + ldp d14,d15,[sp,#48] + ldp x29,x30,[sp,#64] + ldp d8,d9,[sp],#80 + AARCH64_VALIDATE_LINK_REGISTER + ret +.size vpsm4_ex_ctr32_encrypt_blocks,.-vpsm4_ex_ctr32_encrypt_blocks +.globl vpsm4_ex_xts_encrypt_gb +.type vpsm4_ex_xts_encrypt_gb,%function +.align 5 +vpsm4_ex_xts_encrypt_gb: + AARCH64_SIGN_LINK_REGISTER + stp x15, x16, [sp, #-0x10]! + stp x17, x18, [sp, #-0x10]! + stp x19, x20, [sp, #-0x10]! + stp x21, x22, [sp, #-0x10]! + stp x23, x24, [sp, #-0x10]! + stp x25, x26, [sp, #-0x10]! + stp x27, x28, [sp, #-0x10]! + stp x29, x30, [sp, #-0x10]! + stp d8, d9, [sp, #-0x10]! + stp d10, d11, [sp, #-0x10]! + stp d12, d13, [sp, #-0x10]! + stp d14, d15, [sp, #-0x10]! + mov x26,x3 + mov x27,x4 + mov w28,w6 + ld1 {v16.4s}, [x5] + mov x3,x27 + adrp x9, .Lsbox_magic + ldr q26, [x9, #:lo12:.Lsbox_magic] + ldr q27, [x9, #:lo12:.Lsbox_magic+16] + ldr q28, [x9, #:lo12:.Lsbox_magic+32] + ldr q29, [x9, #:lo12:.Lsbox_magic+48] + ldr q30, [x9, #:lo12:.Lsbox_magic+64] + ldr q31, [x9, #:lo12:.Lsbox_magic+80] +#ifndef __AARCH64EB__ + rev32 v16.16b,v16.16b +#endif + mov x10,x3 + mov w11,#8 + mov w12,v16.s[0] + mov w13,v16.s[1] + mov w14,v16.s[2] + mov w15,v16.s[3] +10: + ldp w7,w8,[x10],8 + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + eor w6,w14,w15 + eor w9,w7,w13 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w12,w12,w6 + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + eor w6,w14,w15 + eor w9,w12,w8 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + ldp w7,w8,[x10],8 + eor w13,w13,w6 + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + eor w6,w12,w13 + eor w9,w7,w15 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w14,w14,w6 + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + eor w6,w12,w13 + eor w9,w14,w8 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w15,w15,w6 + subs w11,w11,#1 + b.ne 10b + mov v16.s[0],w15 + mov v16.s[1],w14 + mov v16.s[2],w13 + mov v16.s[3],w12 +#ifndef __AARCH64EB__ + rev32 v16.16b,v16.16b +#endif + mov x3,x26 + and x29,x2,#0x0F + // convert length into blocks + lsr x2,x2,4 + cmp x2,#1 + b.lt .return_gb + + cmp x29,0 + // If the encryption/decryption Length is N times of 16, + // the all blocks are encrypted/decrypted in .xts_encrypt_blocks_gb + b.eq .xts_encrypt_blocks_gb + + // If the encryption/decryption length is not N times of 16, + // the last two blocks are encrypted/decrypted in .last_2blks_tweak_gb or .only_2blks_tweak_gb + // the other blocks are encrypted/decrypted in .xts_encrypt_blocks_gb + subs x2,x2,#1 + b.eq .only_2blks_tweak_gb +.xts_encrypt_blocks_gb: + rbit v16.16b,v16.16b +#ifdef __AARCH64EB__ + rev32 v16.16b,v16.16b +#endif + mov x12,v16.d[0] + mov x13,v16.d[1] + mov w7,0x87 + extr x9,x13,x13,#32 + extr x15,x13,x12,#63 + and w8,w7,w9,asr#31 + eor x14,x8,x12,lsl#1 + mov w7,0x87 + extr x9,x15,x15,#32 + extr x17,x15,x14,#63 + and w8,w7,w9,asr#31 + eor x16,x8,x14,lsl#1 + mov w7,0x87 + extr x9,x17,x17,#32 + extr x19,x17,x16,#63 + and w8,w7,w9,asr#31 + eor x18,x8,x16,lsl#1 + mov w7,0x87 + extr x9,x19,x19,#32 + extr x21,x19,x18,#63 + and w8,w7,w9,asr#31 + eor x20,x8,x18,lsl#1 + mov w7,0x87 + extr x9,x21,x21,#32 + extr x23,x21,x20,#63 + and w8,w7,w9,asr#31 + eor x22,x8,x20,lsl#1 + mov w7,0x87 + extr x9,x23,x23,#32 + extr x25,x23,x22,#63 + and w8,w7,w9,asr#31 + eor x24,x8,x22,lsl#1 + mov w7,0x87 + extr x9,x25,x25,#32 + extr x27,x25,x24,#63 + and w8,w7,w9,asr#31 + eor x26,x8,x24,lsl#1 +.Lxts_8_blocks_process_gb: + cmp x2,#8 + mov v16.d[0],x12 + mov v16.d[1],x13 +#ifdef __AARCH64EB__ + rev32 v16.16b,v16.16b +#endif + mov w7,0x87 + extr x9,x27,x27,#32 + extr x13,x27,x26,#63 + and w8,w7,w9,asr#31 + eor x12,x8,x26,lsl#1 + mov v17.d[0],x14 + mov v17.d[1],x15 +#ifdef __AARCH64EB__ + rev32 v17.16b,v17.16b +#endif + mov w7,0x87 + extr x9,x13,x13,#32 + extr x15,x13,x12,#63 + and w8,w7,w9,asr#31 + eor x14,x8,x12,lsl#1 + mov v18.d[0],x16 + mov v18.d[1],x17 +#ifdef __AARCH64EB__ + rev32 v18.16b,v18.16b +#endif + mov w7,0x87 + extr x9,x15,x15,#32 + extr x17,x15,x14,#63 + and w8,w7,w9,asr#31 + eor x16,x8,x14,lsl#1 + mov v19.d[0],x18 + mov v19.d[1],x19 +#ifdef __AARCH64EB__ + rev32 v19.16b,v19.16b +#endif + mov w7,0x87 + extr x9,x17,x17,#32 + extr x19,x17,x16,#63 + and w8,w7,w9,asr#31 + eor x18,x8,x16,lsl#1 + mov v20.d[0],x20 + mov v20.d[1],x21 +#ifdef __AARCH64EB__ + rev32 v20.16b,v20.16b +#endif + mov w7,0x87 + extr x9,x19,x19,#32 + extr x21,x19,x18,#63 + and w8,w7,w9,asr#31 + eor x20,x8,x18,lsl#1 + mov v21.d[0],x22 + mov v21.d[1],x23 +#ifdef __AARCH64EB__ + rev32 v21.16b,v21.16b +#endif + mov w7,0x87 + extr x9,x21,x21,#32 + extr x23,x21,x20,#63 + and w8,w7,w9,asr#31 + eor x22,x8,x20,lsl#1 + mov v22.d[0],x24 + mov v22.d[1],x25 +#ifdef __AARCH64EB__ + rev32 v22.16b,v22.16b +#endif + mov w7,0x87 + extr x9,x23,x23,#32 + extr x25,x23,x22,#63 + and w8,w7,w9,asr#31 + eor x24,x8,x22,lsl#1 + mov v23.d[0],x26 + mov v23.d[1],x27 +#ifdef __AARCH64EB__ + rev32 v23.16b,v23.16b +#endif + mov w7,0x87 + extr x9,x25,x25,#32 + extr x27,x25,x24,#63 + and w8,w7,w9,asr#31 + eor x26,x8,x24,lsl#1 + b.lt .Lxts_4_blocks_process_gb + ld1 {v4.4s,v5.4s,v6.4s,v7.4s},[x0],#64 + rbit v16.16b,v16.16b + rbit v17.16b,v17.16b + rbit v18.16b,v18.16b + rbit v19.16b,v19.16b + eor v4.16b, v4.16b, v16.16b + eor v5.16b, v5.16b, v17.16b + eor v6.16b, v6.16b, v18.16b + eor v7.16b, v7.16b, v19.16b + ld1 {v8.4s,v9.4s,v10.4s,v11.4s},[x0],#64 + rbit v20.16b,v20.16b + rbit v21.16b,v21.16b + rbit v22.16b,v22.16b + rbit v23.16b,v23.16b + eor v8.16b, v8.16b, v20.16b + eor v9.16b, v9.16b, v21.16b + eor v10.16b, v10.16b, v22.16b + eor v11.16b, v11.16b, v23.16b +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif +#ifndef __AARCH64EB__ + rev32 v5.16b,v5.16b +#endif +#ifndef __AARCH64EB__ + rev32 v6.16b,v6.16b +#endif +#ifndef __AARCH64EB__ + rev32 v7.16b,v7.16b +#endif +#ifndef __AARCH64EB__ + rev32 v8.16b,v8.16b +#endif +#ifndef __AARCH64EB__ + rev32 v9.16b,v9.16b +#endif +#ifndef __AARCH64EB__ + rev32 v10.16b,v10.16b +#endif +#ifndef __AARCH64EB__ + rev32 v11.16b,v11.16b +#endif + zip1 v0.4s,v4.4s,v5.4s + zip2 v1.4s,v4.4s,v5.4s + zip1 v2.4s,v6.4s,v7.4s + zip2 v3.4s,v6.4s,v7.4s + zip1 v4.2d,v0.2d,v2.2d + zip2 v5.2d,v0.2d,v2.2d + zip1 v6.2d,v1.2d,v3.2d + zip2 v7.2d,v1.2d,v3.2d + zip1 v0.4s,v8.4s,v9.4s + zip2 v1.4s,v8.4s,v9.4s + zip1 v2.4s,v10.4s,v11.4s + zip2 v3.4s,v10.4s,v11.4s + zip1 v8.2d,v0.2d,v2.2d + zip2 v9.2d,v0.2d,v2.2d + zip1 v10.2d,v1.2d,v3.2d + zip2 v11.2d,v1.2d,v3.2d + bl _vpsm4_ex_enc_8blks + zip1 v8.4s,v0.4s,v1.4s + zip2 v9.4s,v0.4s,v1.4s + zip1 v10.4s,v2.4s,v3.4s + zip2 v11.4s,v2.4s,v3.4s + zip1 v0.2d,v8.2d,v10.2d + zip2 v1.2d,v8.2d,v10.2d + zip1 v2.2d,v9.2d,v11.2d + zip2 v3.2d,v9.2d,v11.2d + zip1 v8.4s,v4.4s,v5.4s + zip2 v9.4s,v4.4s,v5.4s + zip1 v10.4s,v6.4s,v7.4s + zip2 v11.4s,v6.4s,v7.4s + zip1 v4.2d,v8.2d,v10.2d + zip2 v5.2d,v8.2d,v10.2d + zip1 v6.2d,v9.2d,v11.2d + zip2 v7.2d,v9.2d,v11.2d + eor v0.16b, v0.16b, v16.16b + eor v1.16b, v1.16b, v17.16b + eor v2.16b, v2.16b, v18.16b + eor v3.16b, v3.16b, v19.16b + eor v4.16b, v4.16b, v20.16b + eor v5.16b, v5.16b, v21.16b + eor v6.16b, v6.16b, v22.16b + eor v7.16b, v7.16b, v23.16b + + // save the last tweak + mov v25.16b,v23.16b + st1 {v0.4s,v1.4s,v2.4s,v3.4s},[x1],#64 + st1 {v4.4s,v5.4s,v6.4s,v7.4s},[x1],#64 + subs x2,x2,#8 + b.gt .Lxts_8_blocks_process_gb + b 100f +.Lxts_4_blocks_process_gb: + cmp x2,#4 + b.lt 1f + ld1 {v4.4s,v5.4s,v6.4s,v7.4s},[x0],#64 + rbit v16.16b,v16.16b + rbit v17.16b,v17.16b + rbit v18.16b,v18.16b + rbit v19.16b,v19.16b + eor v4.16b, v4.16b, v16.16b + eor v5.16b, v5.16b, v17.16b + eor v6.16b, v6.16b, v18.16b + eor v7.16b, v7.16b, v19.16b +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif +#ifndef __AARCH64EB__ + rev32 v5.16b,v5.16b +#endif +#ifndef __AARCH64EB__ + rev32 v6.16b,v6.16b +#endif +#ifndef __AARCH64EB__ + rev32 v7.16b,v7.16b +#endif + zip1 v0.4s,v4.4s,v5.4s + zip2 v1.4s,v4.4s,v5.4s + zip1 v2.4s,v6.4s,v7.4s + zip2 v3.4s,v6.4s,v7.4s + zip1 v4.2d,v0.2d,v2.2d + zip2 v5.2d,v0.2d,v2.2d + zip1 v6.2d,v1.2d,v3.2d + zip2 v7.2d,v1.2d,v3.2d + bl _vpsm4_ex_enc_4blks + zip1 v4.4s,v0.4s,v1.4s + zip2 v5.4s,v0.4s,v1.4s + zip1 v6.4s,v2.4s,v3.4s + zip2 v7.4s,v2.4s,v3.4s + zip1 v0.2d,v4.2d,v6.2d + zip2 v1.2d,v4.2d,v6.2d + zip1 v2.2d,v5.2d,v7.2d + zip2 v3.2d,v5.2d,v7.2d + eor v0.16b, v0.16b, v16.16b + eor v1.16b, v1.16b, v17.16b + eor v2.16b, v2.16b, v18.16b + eor v3.16b, v3.16b, v19.16b + st1 {v0.4s,v1.4s,v2.4s,v3.4s},[x1],#64 + sub x2,x2,#4 + mov v16.16b,v20.16b + mov v17.16b,v21.16b + mov v18.16b,v22.16b + // save the last tweak + mov v25.16b,v19.16b +1: + // process last block + cmp x2,#1 + b.lt 100f + b.gt 1f + ld1 {v4.4s},[x0],#16 + rbit v16.16b,v16.16b + eor v4.16b, v4.16b, v16.16b +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif + mov x10,x3 + mov w11,#8 + mov w12,v4.s[0] + mov w13,v4.s[1] + mov w14,v4.s[2] + mov w15,v4.s[3] +10: + ldp w7,w8,[x10],8 + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + eor w6,w14,w15 + eor w9,w7,w13 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w12,w12,w6 + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + eor w6,w14,w15 + eor w9,w12,w8 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + ldp w7,w8,[x10],8 + eor w13,w13,w6 + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + eor w6,w12,w13 + eor w9,w7,w15 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w14,w14,w6 + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + eor w6,w12,w13 + eor w9,w14,w8 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w15,w15,w6 + subs w11,w11,#1 + b.ne 10b + mov v4.s[0],w15 + mov v4.s[1],w14 + mov v4.s[2],w13 + mov v4.s[3],w12 +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif + eor v4.16b, v4.16b, v16.16b + st1 {v4.4s},[x1],#16 + // save the last tweak + mov v25.16b,v16.16b + b 100f +1: // process last 2 blocks + cmp x2,#2 + b.gt 1f + ld1 {v4.4s,v5.4s},[x0],#32 + rbit v16.16b,v16.16b + rbit v17.16b,v17.16b + eor v4.16b, v4.16b, v16.16b + eor v5.16b, v5.16b, v17.16b +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif +#ifndef __AARCH64EB__ + rev32 v5.16b,v5.16b +#endif + zip1 v0.4s,v4.4s,v5.4s + zip2 v1.4s,v4.4s,v5.4s + zip1 v2.4s,v6.4s,v7.4s + zip2 v3.4s,v6.4s,v7.4s + zip1 v4.2d,v0.2d,v2.2d + zip2 v5.2d,v0.2d,v2.2d + zip1 v6.2d,v1.2d,v3.2d + zip2 v7.2d,v1.2d,v3.2d + bl _vpsm4_ex_enc_4blks + zip1 v4.4s,v0.4s,v1.4s + zip2 v5.4s,v0.4s,v1.4s + zip1 v6.4s,v2.4s,v3.4s + zip2 v7.4s,v2.4s,v3.4s + zip1 v0.2d,v4.2d,v6.2d + zip2 v1.2d,v4.2d,v6.2d + zip1 v2.2d,v5.2d,v7.2d + zip2 v3.2d,v5.2d,v7.2d + eor v0.16b, v0.16b, v16.16b + eor v1.16b, v1.16b, v17.16b + st1 {v0.4s,v1.4s},[x1],#32 + // save the last tweak + mov v25.16b,v17.16b + b 100f +1: // process last 3 blocks + ld1 {v4.4s,v5.4s,v6.4s},[x0],#48 + rbit v16.16b,v16.16b + rbit v17.16b,v17.16b + rbit v18.16b,v18.16b + eor v4.16b, v4.16b, v16.16b + eor v5.16b, v5.16b, v17.16b + eor v6.16b, v6.16b, v18.16b +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif +#ifndef __AARCH64EB__ + rev32 v5.16b,v5.16b +#endif +#ifndef __AARCH64EB__ + rev32 v6.16b,v6.16b +#endif + zip1 v0.4s,v4.4s,v5.4s + zip2 v1.4s,v4.4s,v5.4s + zip1 v2.4s,v6.4s,v7.4s + zip2 v3.4s,v6.4s,v7.4s + zip1 v4.2d,v0.2d,v2.2d + zip2 v5.2d,v0.2d,v2.2d + zip1 v6.2d,v1.2d,v3.2d + zip2 v7.2d,v1.2d,v3.2d + bl _vpsm4_ex_enc_4blks + zip1 v4.4s,v0.4s,v1.4s + zip2 v5.4s,v0.4s,v1.4s + zip1 v6.4s,v2.4s,v3.4s + zip2 v7.4s,v2.4s,v3.4s + zip1 v0.2d,v4.2d,v6.2d + zip2 v1.2d,v4.2d,v6.2d + zip1 v2.2d,v5.2d,v7.2d + zip2 v3.2d,v5.2d,v7.2d + eor v0.16b, v0.16b, v16.16b + eor v1.16b, v1.16b, v17.16b + eor v2.16b, v2.16b, v18.16b + st1 {v0.4s,v1.4s,v2.4s},[x1],#48 + // save the last tweak + mov v25.16b,v18.16b +100: + cmp x29,0 + b.eq .return_gb + +// This branch calculates the last two tweaks, +// while the encryption/decryption length is larger than 32 +.last_2blks_tweak_gb: +#ifdef __AARCH64EB__ + rev32 v25.16b,v25.16b +#endif + rbit v2.16b,v25.16b + adrp x9, .Lxts_magic + ldr q0, [x9, #:lo12:.Lxts_magic] + shl v17.16b, v2.16b, #1 + ext v1.16b, v2.16b, v2.16b,#15 + ushr v1.16b, v1.16b, #7 + mul v1.16b, v1.16b, v0.16b + eor v17.16b, v17.16b, v1.16b + rbit v17.16b,v17.16b + rbit v2.16b,v17.16b + adrp x9, .Lxts_magic + ldr q0, [x9, #:lo12:.Lxts_magic] + shl v18.16b, v2.16b, #1 + ext v1.16b, v2.16b, v2.16b,#15 + ushr v1.16b, v1.16b, #7 + mul v1.16b, v1.16b, v0.16b + eor v18.16b, v18.16b, v1.16b + rbit v18.16b,v18.16b + b .check_dec_gb + + +// This branch calculates the last two tweaks, +// while the encryption/decryption length is equal to 32, who only need two tweaks +.only_2blks_tweak_gb: + mov v17.16b,v16.16b +#ifdef __AARCH64EB__ + rev32 v17.16b,v17.16b +#endif + rbit v2.16b,v17.16b + adrp x9, .Lxts_magic + ldr q0, [x9, #:lo12:.Lxts_magic] + shl v18.16b, v2.16b, #1 + ext v1.16b, v2.16b, v2.16b,#15 + ushr v1.16b, v1.16b, #7 + mul v1.16b, v1.16b, v0.16b + eor v18.16b, v18.16b, v1.16b + rbit v18.16b,v18.16b + b .check_dec_gb + + +// Determine whether encryption or decryption is required. +// The last two tweaks need to be swapped for decryption. +.check_dec_gb: + // encryption:1 decryption:0 + cmp w28,1 + b.eq .process_last_2blks_gb + mov v0.16B,v17.16b + mov v17.16B,v18.16b + mov v18.16B,v0.16b + +.process_last_2blks_gb: +#ifdef __AARCH64EB__ + rev32 v17.16b,v17.16b +#endif +#ifdef __AARCH64EB__ + rev32 v18.16b,v18.16b +#endif + ld1 {v4.4s},[x0],#16 + eor v4.16b, v4.16b, v17.16b +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif + mov x10,x3 + mov w11,#8 + mov w12,v4.s[0] + mov w13,v4.s[1] + mov w14,v4.s[2] + mov w15,v4.s[3] +10: + ldp w7,w8,[x10],8 + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + eor w6,w14,w15 + eor w9,w7,w13 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w12,w12,w6 + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + eor w6,w14,w15 + eor w9,w12,w8 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + ldp w7,w8,[x10],8 + eor w13,w13,w6 + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + eor w6,w12,w13 + eor w9,w7,w15 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w14,w14,w6 + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + eor w6,w12,w13 + eor w9,w14,w8 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w15,w15,w6 + subs w11,w11,#1 + b.ne 10b + mov v4.s[0],w15 + mov v4.s[1],w14 + mov v4.s[2],w13 + mov v4.s[3],w12 +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif + eor v4.16b, v4.16b, v17.16b + st1 {v4.4s},[x1],#16 + + sub x26,x1,16 +.loop_gb: + subs x29,x29,1 + ldrb w7,[x26,x29] + ldrb w8,[x0,x29] + strb w8,[x26,x29] + strb w7,[x1,x29] + b.gt .loop_gb + ld1 {v4.4s}, [x26] + eor v4.16b, v4.16b, v18.16b +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif + mov x10,x3 + mov w11,#8 + mov w12,v4.s[0] + mov w13,v4.s[1] + mov w14,v4.s[2] + mov w15,v4.s[3] +10: + ldp w7,w8,[x10],8 + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + eor w6,w14,w15 + eor w9,w7,w13 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w12,w12,w6 + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + eor w6,w14,w15 + eor w9,w12,w8 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + ldp w7,w8,[x10],8 + eor w13,w13,w6 + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + eor w6,w12,w13 + eor w9,w7,w15 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w14,w14,w6 + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + eor w6,w12,w13 + eor w9,w14,w8 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w15,w15,w6 + subs w11,w11,#1 + b.ne 10b + mov v4.s[0],w15 + mov v4.s[1],w14 + mov v4.s[2],w13 + mov v4.s[3],w12 +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif + eor v4.16b, v4.16b, v18.16b + st1 {v4.4s}, [x26] +.return_gb: + ldp d14, d15, [sp], #0x10 + ldp d12, d13, [sp], #0x10 + ldp d10, d11, [sp], #0x10 + ldp d8, d9, [sp], #0x10 + ldp x29, x30, [sp], #0x10 + ldp x27, x28, [sp], #0x10 + ldp x25, x26, [sp], #0x10 + ldp x23, x24, [sp], #0x10 + ldp x21, x22, [sp], #0x10 + ldp x19, x20, [sp], #0x10 + ldp x17, x18, [sp], #0x10 + ldp x15, x16, [sp], #0x10 + AARCH64_VALIDATE_LINK_REGISTER + ret +.size vpsm4_ex_xts_encrypt_gb,.-vpsm4_ex_xts_encrypt_gb +.globl vpsm4_ex_xts_encrypt +.type vpsm4_ex_xts_encrypt,%function +.align 5 +vpsm4_ex_xts_encrypt: + AARCH64_SIGN_LINK_REGISTER + stp x15, x16, [sp, #-0x10]! + stp x17, x18, [sp, #-0x10]! + stp x19, x20, [sp, #-0x10]! + stp x21, x22, [sp, #-0x10]! + stp x23, x24, [sp, #-0x10]! + stp x25, x26, [sp, #-0x10]! + stp x27, x28, [sp, #-0x10]! + stp x29, x30, [sp, #-0x10]! + stp d8, d9, [sp, #-0x10]! + stp d10, d11, [sp, #-0x10]! + stp d12, d13, [sp, #-0x10]! + stp d14, d15, [sp, #-0x10]! + mov x26,x3 + mov x27,x4 + mov w28,w6 + ld1 {v16.4s}, [x5] + mov x3,x27 + adrp x9, .Lsbox_magic + ldr q26, [x9, #:lo12:.Lsbox_magic] + ldr q27, [x9, #:lo12:.Lsbox_magic+16] + ldr q28, [x9, #:lo12:.Lsbox_magic+32] + ldr q29, [x9, #:lo12:.Lsbox_magic+48] + ldr q30, [x9, #:lo12:.Lsbox_magic+64] + ldr q31, [x9, #:lo12:.Lsbox_magic+80] +#ifndef __AARCH64EB__ + rev32 v16.16b,v16.16b +#endif + mov x10,x3 + mov w11,#8 + mov w12,v16.s[0] + mov w13,v16.s[1] + mov w14,v16.s[2] + mov w15,v16.s[3] +10: + ldp w7,w8,[x10],8 + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + eor w6,w14,w15 + eor w9,w7,w13 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w12,w12,w6 + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + eor w6,w14,w15 + eor w9,w12,w8 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + ldp w7,w8,[x10],8 + eor w13,w13,w6 + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + eor w6,w12,w13 + eor w9,w7,w15 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w14,w14,w6 + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + eor w6,w12,w13 + eor w9,w14,w8 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w15,w15,w6 + subs w11,w11,#1 + b.ne 10b + mov v16.s[0],w15 + mov v16.s[1],w14 + mov v16.s[2],w13 + mov v16.s[3],w12 +#ifndef __AARCH64EB__ + rev32 v16.16b,v16.16b +#endif + mov x3,x26 + and x29,x2,#0x0F + // convert length into blocks + lsr x2,x2,4 + cmp x2,#1 + b.lt .return + + cmp x29,0 + // If the encryption/decryption Length is N times of 16, + // the all blocks are encrypted/decrypted in .xts_encrypt_blocks + b.eq .xts_encrypt_blocks + + // If the encryption/decryption length is not N times of 16, + // the last two blocks are encrypted/decrypted in .last_2blks_tweak or .only_2blks_tweak + // the other blocks are encrypted/decrypted in .xts_encrypt_blocks + subs x2,x2,#1 + b.eq .only_2blks_tweak +.xts_encrypt_blocks: +#ifdef __AARCH64EB__ + rev32 v16.16b,v16.16b +#endif + mov x12,v16.d[0] + mov x13,v16.d[1] + mov w7,0x87 + extr x9,x13,x13,#32 + extr x15,x13,x12,#63 + and w8,w7,w9,asr#31 + eor x14,x8,x12,lsl#1 + mov w7,0x87 + extr x9,x15,x15,#32 + extr x17,x15,x14,#63 + and w8,w7,w9,asr#31 + eor x16,x8,x14,lsl#1 + mov w7,0x87 + extr x9,x17,x17,#32 + extr x19,x17,x16,#63 + and w8,w7,w9,asr#31 + eor x18,x8,x16,lsl#1 + mov w7,0x87 + extr x9,x19,x19,#32 + extr x21,x19,x18,#63 + and w8,w7,w9,asr#31 + eor x20,x8,x18,lsl#1 + mov w7,0x87 + extr x9,x21,x21,#32 + extr x23,x21,x20,#63 + and w8,w7,w9,asr#31 + eor x22,x8,x20,lsl#1 + mov w7,0x87 + extr x9,x23,x23,#32 + extr x25,x23,x22,#63 + and w8,w7,w9,asr#31 + eor x24,x8,x22,lsl#1 + mov w7,0x87 + extr x9,x25,x25,#32 + extr x27,x25,x24,#63 + and w8,w7,w9,asr#31 + eor x26,x8,x24,lsl#1 +.Lxts_8_blocks_process: + cmp x2,#8 + mov v16.d[0],x12 + mov v16.d[1],x13 +#ifdef __AARCH64EB__ + rev32 v16.16b,v16.16b +#endif + mov w7,0x87 + extr x9,x27,x27,#32 + extr x13,x27,x26,#63 + and w8,w7,w9,asr#31 + eor x12,x8,x26,lsl#1 + mov v17.d[0],x14 + mov v17.d[1],x15 +#ifdef __AARCH64EB__ + rev32 v17.16b,v17.16b +#endif + mov w7,0x87 + extr x9,x13,x13,#32 + extr x15,x13,x12,#63 + and w8,w7,w9,asr#31 + eor x14,x8,x12,lsl#1 + mov v18.d[0],x16 + mov v18.d[1],x17 +#ifdef __AARCH64EB__ + rev32 v18.16b,v18.16b +#endif + mov w7,0x87 + extr x9,x15,x15,#32 + extr x17,x15,x14,#63 + and w8,w7,w9,asr#31 + eor x16,x8,x14,lsl#1 + mov v19.d[0],x18 + mov v19.d[1],x19 +#ifdef __AARCH64EB__ + rev32 v19.16b,v19.16b +#endif + mov w7,0x87 + extr x9,x17,x17,#32 + extr x19,x17,x16,#63 + and w8,w7,w9,asr#31 + eor x18,x8,x16,lsl#1 + mov v20.d[0],x20 + mov v20.d[1],x21 +#ifdef __AARCH64EB__ + rev32 v20.16b,v20.16b +#endif + mov w7,0x87 + extr x9,x19,x19,#32 + extr x21,x19,x18,#63 + and w8,w7,w9,asr#31 + eor x20,x8,x18,lsl#1 + mov v21.d[0],x22 + mov v21.d[1],x23 +#ifdef __AARCH64EB__ + rev32 v21.16b,v21.16b +#endif + mov w7,0x87 + extr x9,x21,x21,#32 + extr x23,x21,x20,#63 + and w8,w7,w9,asr#31 + eor x22,x8,x20,lsl#1 + mov v22.d[0],x24 + mov v22.d[1],x25 +#ifdef __AARCH64EB__ + rev32 v22.16b,v22.16b +#endif + mov w7,0x87 + extr x9,x23,x23,#32 + extr x25,x23,x22,#63 + and w8,w7,w9,asr#31 + eor x24,x8,x22,lsl#1 + mov v23.d[0],x26 + mov v23.d[1],x27 +#ifdef __AARCH64EB__ + rev32 v23.16b,v23.16b +#endif + mov w7,0x87 + extr x9,x25,x25,#32 + extr x27,x25,x24,#63 + and w8,w7,w9,asr#31 + eor x26,x8,x24,lsl#1 + b.lt .Lxts_4_blocks_process + ld1 {v4.4s,v5.4s,v6.4s,v7.4s},[x0],#64 + eor v4.16b, v4.16b, v16.16b + eor v5.16b, v5.16b, v17.16b + eor v6.16b, v6.16b, v18.16b + eor v7.16b, v7.16b, v19.16b + ld1 {v8.4s,v9.4s,v10.4s,v11.4s},[x0],#64 + eor v8.16b, v8.16b, v20.16b + eor v9.16b, v9.16b, v21.16b + eor v10.16b, v10.16b, v22.16b + eor v11.16b, v11.16b, v23.16b +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif +#ifndef __AARCH64EB__ + rev32 v5.16b,v5.16b +#endif +#ifndef __AARCH64EB__ + rev32 v6.16b,v6.16b +#endif +#ifndef __AARCH64EB__ + rev32 v7.16b,v7.16b +#endif +#ifndef __AARCH64EB__ + rev32 v8.16b,v8.16b +#endif +#ifndef __AARCH64EB__ + rev32 v9.16b,v9.16b +#endif +#ifndef __AARCH64EB__ + rev32 v10.16b,v10.16b +#endif +#ifndef __AARCH64EB__ + rev32 v11.16b,v11.16b +#endif + zip1 v0.4s,v4.4s,v5.4s + zip2 v1.4s,v4.4s,v5.4s + zip1 v2.4s,v6.4s,v7.4s + zip2 v3.4s,v6.4s,v7.4s + zip1 v4.2d,v0.2d,v2.2d + zip2 v5.2d,v0.2d,v2.2d + zip1 v6.2d,v1.2d,v3.2d + zip2 v7.2d,v1.2d,v3.2d + zip1 v0.4s,v8.4s,v9.4s + zip2 v1.4s,v8.4s,v9.4s + zip1 v2.4s,v10.4s,v11.4s + zip2 v3.4s,v10.4s,v11.4s + zip1 v8.2d,v0.2d,v2.2d + zip2 v9.2d,v0.2d,v2.2d + zip1 v10.2d,v1.2d,v3.2d + zip2 v11.2d,v1.2d,v3.2d + bl _vpsm4_ex_enc_8blks + zip1 v8.4s,v0.4s,v1.4s + zip2 v9.4s,v0.4s,v1.4s + zip1 v10.4s,v2.4s,v3.4s + zip2 v11.4s,v2.4s,v3.4s + zip1 v0.2d,v8.2d,v10.2d + zip2 v1.2d,v8.2d,v10.2d + zip1 v2.2d,v9.2d,v11.2d + zip2 v3.2d,v9.2d,v11.2d + zip1 v8.4s,v4.4s,v5.4s + zip2 v9.4s,v4.4s,v5.4s + zip1 v10.4s,v6.4s,v7.4s + zip2 v11.4s,v6.4s,v7.4s + zip1 v4.2d,v8.2d,v10.2d + zip2 v5.2d,v8.2d,v10.2d + zip1 v6.2d,v9.2d,v11.2d + zip2 v7.2d,v9.2d,v11.2d + eor v0.16b, v0.16b, v16.16b + eor v1.16b, v1.16b, v17.16b + eor v2.16b, v2.16b, v18.16b + eor v3.16b, v3.16b, v19.16b + eor v4.16b, v4.16b, v20.16b + eor v5.16b, v5.16b, v21.16b + eor v6.16b, v6.16b, v22.16b + eor v7.16b, v7.16b, v23.16b + + // save the last tweak + mov v25.16b,v23.16b + st1 {v0.4s,v1.4s,v2.4s,v3.4s},[x1],#64 + st1 {v4.4s,v5.4s,v6.4s,v7.4s},[x1],#64 + subs x2,x2,#8 + b.gt .Lxts_8_blocks_process + b 100f +.Lxts_4_blocks_process: + cmp x2,#4 + b.lt 1f + ld1 {v4.4s,v5.4s,v6.4s,v7.4s},[x0],#64 + eor v4.16b, v4.16b, v16.16b + eor v5.16b, v5.16b, v17.16b + eor v6.16b, v6.16b, v18.16b + eor v7.16b, v7.16b, v19.16b +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif +#ifndef __AARCH64EB__ + rev32 v5.16b,v5.16b +#endif +#ifndef __AARCH64EB__ + rev32 v6.16b,v6.16b +#endif +#ifndef __AARCH64EB__ + rev32 v7.16b,v7.16b +#endif + zip1 v0.4s,v4.4s,v5.4s + zip2 v1.4s,v4.4s,v5.4s + zip1 v2.4s,v6.4s,v7.4s + zip2 v3.4s,v6.4s,v7.4s + zip1 v4.2d,v0.2d,v2.2d + zip2 v5.2d,v0.2d,v2.2d + zip1 v6.2d,v1.2d,v3.2d + zip2 v7.2d,v1.2d,v3.2d + bl _vpsm4_ex_enc_4blks + zip1 v4.4s,v0.4s,v1.4s + zip2 v5.4s,v0.4s,v1.4s + zip1 v6.4s,v2.4s,v3.4s + zip2 v7.4s,v2.4s,v3.4s + zip1 v0.2d,v4.2d,v6.2d + zip2 v1.2d,v4.2d,v6.2d + zip1 v2.2d,v5.2d,v7.2d + zip2 v3.2d,v5.2d,v7.2d + eor v0.16b, v0.16b, v16.16b + eor v1.16b, v1.16b, v17.16b + eor v2.16b, v2.16b, v18.16b + eor v3.16b, v3.16b, v19.16b + st1 {v0.4s,v1.4s,v2.4s,v3.4s},[x1],#64 + sub x2,x2,#4 + mov v16.16b,v20.16b + mov v17.16b,v21.16b + mov v18.16b,v22.16b + // save the last tweak + mov v25.16b,v19.16b +1: + // process last block + cmp x2,#1 + b.lt 100f + b.gt 1f + ld1 {v4.4s},[x0],#16 + eor v4.16b, v4.16b, v16.16b +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif + mov x10,x3 + mov w11,#8 + mov w12,v4.s[0] + mov w13,v4.s[1] + mov w14,v4.s[2] + mov w15,v4.s[3] +10: + ldp w7,w8,[x10],8 + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + eor w6,w14,w15 + eor w9,w7,w13 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w12,w12,w6 + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + eor w6,w14,w15 + eor w9,w12,w8 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + ldp w7,w8,[x10],8 + eor w13,w13,w6 + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + eor w6,w12,w13 + eor w9,w7,w15 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w14,w14,w6 + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + eor w6,w12,w13 + eor w9,w14,w8 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w15,w15,w6 + subs w11,w11,#1 + b.ne 10b + mov v4.s[0],w15 + mov v4.s[1],w14 + mov v4.s[2],w13 + mov v4.s[3],w12 +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif + eor v4.16b, v4.16b, v16.16b + st1 {v4.4s},[x1],#16 + // save the last tweak + mov v25.16b,v16.16b + b 100f +1: // process last 2 blocks + cmp x2,#2 + b.gt 1f + ld1 {v4.4s,v5.4s},[x0],#32 + eor v4.16b, v4.16b, v16.16b + eor v5.16b, v5.16b, v17.16b +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif +#ifndef __AARCH64EB__ + rev32 v5.16b,v5.16b +#endif + zip1 v0.4s,v4.4s,v5.4s + zip2 v1.4s,v4.4s,v5.4s + zip1 v2.4s,v6.4s,v7.4s + zip2 v3.4s,v6.4s,v7.4s + zip1 v4.2d,v0.2d,v2.2d + zip2 v5.2d,v0.2d,v2.2d + zip1 v6.2d,v1.2d,v3.2d + zip2 v7.2d,v1.2d,v3.2d + bl _vpsm4_ex_enc_4blks + zip1 v4.4s,v0.4s,v1.4s + zip2 v5.4s,v0.4s,v1.4s + zip1 v6.4s,v2.4s,v3.4s + zip2 v7.4s,v2.4s,v3.4s + zip1 v0.2d,v4.2d,v6.2d + zip2 v1.2d,v4.2d,v6.2d + zip1 v2.2d,v5.2d,v7.2d + zip2 v3.2d,v5.2d,v7.2d + eor v0.16b, v0.16b, v16.16b + eor v1.16b, v1.16b, v17.16b + st1 {v0.4s,v1.4s},[x1],#32 + // save the last tweak + mov v25.16b,v17.16b + b 100f +1: // process last 3 blocks + ld1 {v4.4s,v5.4s,v6.4s},[x0],#48 + eor v4.16b, v4.16b, v16.16b + eor v5.16b, v5.16b, v17.16b + eor v6.16b, v6.16b, v18.16b +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif +#ifndef __AARCH64EB__ + rev32 v5.16b,v5.16b +#endif +#ifndef __AARCH64EB__ + rev32 v6.16b,v6.16b +#endif + zip1 v0.4s,v4.4s,v5.4s + zip2 v1.4s,v4.4s,v5.4s + zip1 v2.4s,v6.4s,v7.4s + zip2 v3.4s,v6.4s,v7.4s + zip1 v4.2d,v0.2d,v2.2d + zip2 v5.2d,v0.2d,v2.2d + zip1 v6.2d,v1.2d,v3.2d + zip2 v7.2d,v1.2d,v3.2d + bl _vpsm4_ex_enc_4blks + zip1 v4.4s,v0.4s,v1.4s + zip2 v5.4s,v0.4s,v1.4s + zip1 v6.4s,v2.4s,v3.4s + zip2 v7.4s,v2.4s,v3.4s + zip1 v0.2d,v4.2d,v6.2d + zip2 v1.2d,v4.2d,v6.2d + zip1 v2.2d,v5.2d,v7.2d + zip2 v3.2d,v5.2d,v7.2d + eor v0.16b, v0.16b, v16.16b + eor v1.16b, v1.16b, v17.16b + eor v2.16b, v2.16b, v18.16b + st1 {v0.4s,v1.4s,v2.4s},[x1],#48 + // save the last tweak + mov v25.16b,v18.16b +100: + cmp x29,0 + b.eq .return + +// This branch calculates the last two tweaks, +// while the encryption/decryption length is larger than 32 +.last_2blks_tweak: +#ifdef __AARCH64EB__ + rev32 v25.16b,v25.16b +#endif + mov v2.16b,v25.16b + adrp x9, .Lxts_magic + ldr q0, [x9, #:lo12:.Lxts_magic] + shl v17.16b, v2.16b, #1 + ext v1.16b, v2.16b, v2.16b,#15 + ushr v1.16b, v1.16b, #7 + mul v1.16b, v1.16b, v0.16b + eor v17.16b, v17.16b, v1.16b + mov v2.16b,v17.16b + adrp x9, .Lxts_magic + ldr q0, [x9, #:lo12:.Lxts_magic] + shl v18.16b, v2.16b, #1 + ext v1.16b, v2.16b, v2.16b,#15 + ushr v1.16b, v1.16b, #7 + mul v1.16b, v1.16b, v0.16b + eor v18.16b, v18.16b, v1.16b + b .check_dec + + +// This branch calculates the last two tweaks, +// while the encryption/decryption length is equal to 32, who only need two tweaks +.only_2blks_tweak: + mov v17.16b,v16.16b +#ifdef __AARCH64EB__ + rev32 v17.16b,v17.16b +#endif + mov v2.16b,v17.16b + adrp x9, .Lxts_magic + ldr q0, [x9, #:lo12:.Lxts_magic] + shl v18.16b, v2.16b, #1 + ext v1.16b, v2.16b, v2.16b,#15 + ushr v1.16b, v1.16b, #7 + mul v1.16b, v1.16b, v0.16b + eor v18.16b, v18.16b, v1.16b + b .check_dec + + +// Determine whether encryption or decryption is required. +// The last two tweaks need to be swapped for decryption. +.check_dec: + // encryption:1 decryption:0 + cmp w28,1 + b.eq .process_last_2blks + mov v0.16B,v17.16b + mov v17.16B,v18.16b + mov v18.16B,v0.16b + +.process_last_2blks: +#ifdef __AARCH64EB__ + rev32 v17.16b,v17.16b +#endif +#ifdef __AARCH64EB__ + rev32 v18.16b,v18.16b +#endif + ld1 {v4.4s},[x0],#16 + eor v4.16b, v4.16b, v17.16b +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif + mov x10,x3 + mov w11,#8 + mov w12,v4.s[0] + mov w13,v4.s[1] + mov w14,v4.s[2] + mov w15,v4.s[3] +10: + ldp w7,w8,[x10],8 + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + eor w6,w14,w15 + eor w9,w7,w13 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w12,w12,w6 + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + eor w6,w14,w15 + eor w9,w12,w8 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + ldp w7,w8,[x10],8 + eor w13,w13,w6 + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + eor w6,w12,w13 + eor w9,w7,w15 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w14,w14,w6 + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + eor w6,w12,w13 + eor w9,w14,w8 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w15,w15,w6 + subs w11,w11,#1 + b.ne 10b + mov v4.s[0],w15 + mov v4.s[1],w14 + mov v4.s[2],w13 + mov v4.s[3],w12 +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif + eor v4.16b, v4.16b, v17.16b + st1 {v4.4s},[x1],#16 + + sub x26,x1,16 +.loop: + subs x29,x29,1 + ldrb w7,[x26,x29] + ldrb w8,[x0,x29] + strb w8,[x26,x29] + strb w7,[x1,x29] + b.gt .loop + ld1 {v4.4s}, [x26] + eor v4.16b, v4.16b, v18.16b +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif + mov x10,x3 + mov w11,#8 + mov w12,v4.s[0] + mov w13,v4.s[1] + mov w14,v4.s[2] + mov w15,v4.s[3] +10: + ldp w7,w8,[x10],8 + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + eor w6,w14,w15 + eor w9,w7,w13 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w12,w12,w6 + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + eor w6,w14,w15 + eor w9,w12,w8 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + ldp w7,w8,[x10],8 + eor w13,w13,w6 + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + eor w6,w12,w13 + eor w9,w7,w15 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w14,w14,w6 + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + eor w6,w12,w13 + eor w9,w14,w8 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w15,w15,w6 + subs w11,w11,#1 + b.ne 10b + mov v4.s[0],w15 + mov v4.s[1],w14 + mov v4.s[2],w13 + mov v4.s[3],w12 +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif + eor v4.16b, v4.16b, v18.16b + st1 {v4.4s}, [x26] +.return: + ldp d14, d15, [sp], #0x10 + ldp d12, d13, [sp], #0x10 + ldp d10, d11, [sp], #0x10 + ldp d8, d9, [sp], #0x10 + ldp x29, x30, [sp], #0x10 + ldp x27, x28, [sp], #0x10 + ldp x25, x26, [sp], #0x10 + ldp x23, x24, [sp], #0x10 + ldp x21, x22, [sp], #0x10 + ldp x19, x20, [sp], #0x10 + ldp x17, x18, [sp], #0x10 + ldp x15, x16, [sp], #0x10 + AARCH64_VALIDATE_LINK_REGISTER + ret +.size vpsm4_ex_xts_encrypt,.-vpsm4_ex_xts_encrypt diff --git a/deps/openssl/config/archs/linux-aarch64/asm/include/internal/param_names.h b/deps/openssl/config/archs/linux-aarch64/asm/include/internal/param_names.h new file mode 100644 index 00000000000000..0a0404a57e82b9 --- /dev/null +++ b/deps/openssl/config/archs/linux-aarch64/asm/include/internal/param_names.h @@ -0,0 +1,469 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from include/internal/param_names.h.in + * + * Copyright 2023 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + +int ossl_param_find_pidx(const char *s); + +/* Parameter name definitions - generated by util/perl/OpenSSL/paramnames.pm */ +#define NUM_PIDX 346 + +#define PIDX_ALG_PARAM_ALGORITHM_ID 0 +#define PIDX_ALG_PARAM_ALGORITHM_ID_PARAMS 1 +#define PIDX_ALG_PARAM_CIPHER 2 +#define PIDX_ALG_PARAM_DIGEST 3 +#define PIDX_ALG_PARAM_ENGINE 4 +#define PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR 5 +#define PIDX_ALG_PARAM_MAC 6 +#define PIDX_ALG_PARAM_PROPERTIES 7 +#define PIDX_ASYM_CIPHER_PARAM_DIGEST PIDX_PKEY_PARAM_DIGEST +#define PIDX_ASYM_CIPHER_PARAM_ENGINE PIDX_PKEY_PARAM_ENGINE +#define PIDX_ASYM_CIPHER_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_ASYM_CIPHER_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_ASYM_CIPHER_PARAM_FIPS_RSA_PKCS15_PAD_DISABLED PIDX_PROV_PARAM_RSA_PKCS15_PAD_DISABLED +#define PIDX_ASYM_CIPHER_PARAM_IMPLICIT_REJECTION 8 +#define PIDX_ASYM_CIPHER_PARAM_MGF1_DIGEST PIDX_PKEY_PARAM_MGF1_DIGEST +#define PIDX_ASYM_CIPHER_PARAM_MGF1_DIGEST_PROPS PIDX_PKEY_PARAM_MGF1_PROPERTIES +#define PIDX_ASYM_CIPHER_PARAM_OAEP_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_ASYM_CIPHER_PARAM_OAEP_DIGEST_PROPS 9 +#define PIDX_ASYM_CIPHER_PARAM_OAEP_LABEL 10 +#define PIDX_ASYM_CIPHER_PARAM_PAD_MODE PIDX_PKEY_PARAM_PAD_MODE +#define PIDX_ASYM_CIPHER_PARAM_PROPERTIES PIDX_PKEY_PARAM_PROPERTIES +#define PIDX_ASYM_CIPHER_PARAM_TLS_CLIENT_VERSION 11 +#define PIDX_ASYM_CIPHER_PARAM_TLS_NEGOTIATED_VERSION 12 +#define PIDX_CAPABILITY_TLS_GROUP_ALG 13 +#define PIDX_CAPABILITY_TLS_GROUP_ID 14 +#define PIDX_CAPABILITY_TLS_GROUP_IS_KEM 15 +#define PIDX_CAPABILITY_TLS_GROUP_MAX_DTLS 16 +#define PIDX_CAPABILITY_TLS_GROUP_MAX_TLS 17 +#define PIDX_CAPABILITY_TLS_GROUP_MIN_DTLS 18 +#define PIDX_CAPABILITY_TLS_GROUP_MIN_TLS 19 +#define PIDX_CAPABILITY_TLS_GROUP_NAME 20 +#define PIDX_CAPABILITY_TLS_GROUP_NAME_INTERNAL 21 +#define PIDX_CAPABILITY_TLS_GROUP_SECURITY_BITS 22 +#define PIDX_CAPABILITY_TLS_SIGALG_CODE_POINT 23 +#define PIDX_CAPABILITY_TLS_SIGALG_HASH_NAME 24 +#define PIDX_CAPABILITY_TLS_SIGALG_HASH_OID 25 +#define PIDX_CAPABILITY_TLS_SIGALG_IANA_NAME 26 +#define PIDX_CAPABILITY_TLS_SIGALG_KEYTYPE 27 +#define PIDX_CAPABILITY_TLS_SIGALG_KEYTYPE_OID 28 +#define PIDX_CAPABILITY_TLS_SIGALG_MAX_DTLS 16 +#define PIDX_CAPABILITY_TLS_SIGALG_MAX_TLS 17 +#define PIDX_CAPABILITY_TLS_SIGALG_MIN_DTLS 18 +#define PIDX_CAPABILITY_TLS_SIGALG_MIN_TLS 19 +#define PIDX_CAPABILITY_TLS_SIGALG_NAME 29 +#define PIDX_CAPABILITY_TLS_SIGALG_OID 30 +#define PIDX_CAPABILITY_TLS_SIGALG_SECURITY_BITS 31 +#define PIDX_CAPABILITY_TLS_SIGALG_SIG_NAME 32 +#define PIDX_CAPABILITY_TLS_SIGALG_SIG_OID 33 +#define PIDX_CIPHER_PARAM_AEAD 34 +#define PIDX_CIPHER_PARAM_AEAD_IVLEN PIDX_CIPHER_PARAM_IVLEN +#define PIDX_CIPHER_PARAM_AEAD_IV_GENERATED 35 +#define PIDX_CIPHER_PARAM_AEAD_MAC_KEY 36 +#define PIDX_CIPHER_PARAM_AEAD_TAG 37 +#define PIDX_CIPHER_PARAM_AEAD_TAGLEN 38 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_AAD 39 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_AAD_PAD 40 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_GET_IV_GEN 41 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_IV_FIXED 42 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_SET_IV_INV 43 +#define PIDX_CIPHER_PARAM_ALGORITHM_ID PIDX_ALG_PARAM_ALGORITHM_ID +#define PIDX_CIPHER_PARAM_ALGORITHM_ID_PARAMS PIDX_ALG_PARAM_ALGORITHM_ID_PARAMS +#define PIDX_CIPHER_PARAM_ALGORITHM_ID_PARAMS_OLD 44 +#define PIDX_CIPHER_PARAM_BLOCK_SIZE 45 +#define PIDX_CIPHER_PARAM_CTS 46 +#define PIDX_CIPHER_PARAM_CTS_MODE 47 +#define PIDX_CIPHER_PARAM_CUSTOM_IV 48 +#define PIDX_CIPHER_PARAM_DECRYPT_ONLY 49 +#define PIDX_CIPHER_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_CIPHER_PARAM_FIPS_ENCRYPT_CHECK 50 +#define PIDX_CIPHER_PARAM_HAS_RAND_KEY 51 +#define PIDX_CIPHER_PARAM_IV 52 +#define PIDX_CIPHER_PARAM_IVLEN 53 +#define PIDX_CIPHER_PARAM_KEYLEN 54 +#define PIDX_CIPHER_PARAM_MODE 55 +#define PIDX_CIPHER_PARAM_NUM 56 +#define PIDX_CIPHER_PARAM_PADDING 57 +#define PIDX_CIPHER_PARAM_PIPELINE_AEAD_TAG 58 +#define PIDX_CIPHER_PARAM_RANDOM_KEY 59 +#define PIDX_CIPHER_PARAM_RC2_KEYBITS 60 +#define PIDX_CIPHER_PARAM_ROUNDS 61 +#define PIDX_CIPHER_PARAM_SPEED 62 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK 63 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD 64 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD_PACKLEN 65 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC 66 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_IN 67 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_LEN 68 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_INTERLEAVE 69 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_BUFSIZE 70 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_SEND_FRAGMENT 71 +#define PIDX_CIPHER_PARAM_TLS_MAC 72 +#define PIDX_CIPHER_PARAM_TLS_MAC_SIZE 73 +#define PIDX_CIPHER_PARAM_TLS_VERSION 74 +#define PIDX_CIPHER_PARAM_UPDATED_IV 75 +#define PIDX_CIPHER_PARAM_USE_BITS 76 +#define PIDX_CIPHER_PARAM_XTS_STANDARD 77 +#define PIDX_DECODER_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_DIGEST_PARAM_ALGID_ABSENT 78 +#define PIDX_DIGEST_PARAM_BLOCK_SIZE 45 +#define PIDX_DIGEST_PARAM_MICALG 79 +#define PIDX_DIGEST_PARAM_PAD_TYPE 80 +#define PIDX_DIGEST_PARAM_SIZE 81 +#define PIDX_DIGEST_PARAM_SSL3_MS 82 +#define PIDX_DIGEST_PARAM_XOF 83 +#define PIDX_DIGEST_PARAM_XOFLEN 84 +#define PIDX_DRBG_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_DRBG_PARAM_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_DRBG_PARAM_ENTROPY_REQUIRED 85 +#define PIDX_DRBG_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_DRBG_PARAM_FIPS_DIGEST_CHECK PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK +#define PIDX_DRBG_PARAM_MAC PIDX_ALG_PARAM_MAC +#define PIDX_DRBG_PARAM_MAX_ADINLEN 86 +#define PIDX_DRBG_PARAM_MAX_ENTROPYLEN 87 +#define PIDX_DRBG_PARAM_MAX_LENGTH 88 +#define PIDX_DRBG_PARAM_MAX_NONCELEN 89 +#define PIDX_DRBG_PARAM_MAX_PERSLEN 90 +#define PIDX_DRBG_PARAM_MIN_ENTROPYLEN 91 +#define PIDX_DRBG_PARAM_MIN_LENGTH 92 +#define PIDX_DRBG_PARAM_MIN_NONCELEN 93 +#define PIDX_DRBG_PARAM_PREDICTION_RESISTANCE 94 +#define PIDX_DRBG_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_DRBG_PARAM_RANDOM_DATA 95 +#define PIDX_DRBG_PARAM_RESEED_COUNTER 96 +#define PIDX_DRBG_PARAM_RESEED_REQUESTS 97 +#define PIDX_DRBG_PARAM_RESEED_TIME 98 +#define PIDX_DRBG_PARAM_RESEED_TIME_INTERVAL 99 +#define PIDX_DRBG_PARAM_SIZE 81 +#define PIDX_DRBG_PARAM_USE_DF 100 +#define PIDX_ENCODER_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_ENCODER_PARAM_ENCRYPT_LEVEL 101 +#define PIDX_ENCODER_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_ENCODER_PARAM_SAVE_PARAMETERS 102 +#define PIDX_EXCHANGE_PARAM_EC_ECDH_COFACTOR_MODE 103 +#define PIDX_EXCHANGE_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_EXCHANGE_PARAM_FIPS_DIGEST_CHECK PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK +#define PIDX_EXCHANGE_PARAM_FIPS_ECDH_COFACTOR_CHECK PIDX_PROV_PARAM_ECDH_COFACTOR_CHECK +#define PIDX_EXCHANGE_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_EXCHANGE_PARAM_KDF_DIGEST 104 +#define PIDX_EXCHANGE_PARAM_KDF_DIGEST_PROPS 105 +#define PIDX_EXCHANGE_PARAM_KDF_OUTLEN 106 +#define PIDX_EXCHANGE_PARAM_KDF_TYPE 107 +#define PIDX_EXCHANGE_PARAM_KDF_UKM 108 +#define PIDX_EXCHANGE_PARAM_PAD 109 +#define PIDX_GEN_PARAM_ITERATION 110 +#define PIDX_GEN_PARAM_POTENTIAL 111 +#define PIDX_KDF_PARAM_ARGON2_AD 112 +#define PIDX_KDF_PARAM_ARGON2_LANES 113 +#define PIDX_KDF_PARAM_ARGON2_MEMCOST 114 +#define PIDX_KDF_PARAM_ARGON2_VERSION 115 +#define PIDX_KDF_PARAM_CEK_ALG 116 +#define PIDX_KDF_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_KDF_PARAM_CONSTANT 117 +#define PIDX_KDF_PARAM_DATA 118 +#define PIDX_KDF_PARAM_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_KDF_PARAM_EARLY_CLEAN 119 +#define PIDX_KDF_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_KDF_PARAM_FIPS_DIGEST_CHECK PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK +#define PIDX_KDF_PARAM_FIPS_EMS_CHECK 120 +#define PIDX_KDF_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_KDF_PARAM_HMACDRBG_ENTROPY 121 +#define PIDX_KDF_PARAM_HMACDRBG_NONCE 122 +#define PIDX_KDF_PARAM_INFO 123 +#define PIDX_KDF_PARAM_ITER 124 +#define PIDX_KDF_PARAM_KBKDF_R 125 +#define PIDX_KDF_PARAM_KBKDF_USE_L 126 +#define PIDX_KDF_PARAM_KBKDF_USE_SEPARATOR 127 +#define PIDX_KDF_PARAM_KEY 128 +#define PIDX_KDF_PARAM_LABEL 129 +#define PIDX_KDF_PARAM_MAC PIDX_ALG_PARAM_MAC +#define PIDX_KDF_PARAM_MAC_SIZE 130 +#define PIDX_KDF_PARAM_MODE 55 +#define PIDX_KDF_PARAM_PASSWORD 131 +#define PIDX_KDF_PARAM_PKCS12_ID 132 +#define PIDX_KDF_PARAM_PKCS5 133 +#define PIDX_KDF_PARAM_PREFIX 134 +#define PIDX_KDF_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_KDF_PARAM_SALT 135 +#define PIDX_KDF_PARAM_SCRYPT_MAXMEM 136 +#define PIDX_KDF_PARAM_SCRYPT_N 137 +#define PIDX_KDF_PARAM_SCRYPT_P 138 +#define PIDX_KDF_PARAM_SCRYPT_R 125 +#define PIDX_KDF_PARAM_SECRET 139 +#define PIDX_KDF_PARAM_SEED 140 +#define PIDX_KDF_PARAM_SIZE 81 +#define PIDX_KDF_PARAM_SSHKDF_SESSION_ID 141 +#define PIDX_KDF_PARAM_SSHKDF_TYPE 142 +#define PIDX_KDF_PARAM_SSHKDF_XCGHASH 143 +#define PIDX_KDF_PARAM_THREADS 144 +#define PIDX_KDF_PARAM_UKM 145 +#define PIDX_KDF_PARAM_X942_ACVPINFO 146 +#define PIDX_KDF_PARAM_X942_PARTYUINFO 147 +#define PIDX_KDF_PARAM_X942_PARTYVINFO 148 +#define PIDX_KDF_PARAM_X942_SUPP_PRIVINFO 149 +#define PIDX_KDF_PARAM_X942_SUPP_PUBINFO 150 +#define PIDX_KDF_PARAM_X942_USE_KEYBITS 151 +#define PIDX_KEM_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_KEM_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_KEM_PARAM_IKME 152 +#define PIDX_KEM_PARAM_OPERATION 153 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_BLOCK_PADDING 154 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_HS_PADDING 155 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_MAX_EARLY_DATA 156 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_MAX_FRAG_LEN 157 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_MODE 55 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_OPTIONS 158 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_READ_AHEAD 159 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_STREAM_MAC 160 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_TLSTREE 161 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_USE_ETM 162 +#define PIDX_LIBSSL_RECORD_LAYER_READ_BUFFER_LEN 163 +#define PIDX_MAC_PARAM_BLOCK_SIZE 164 +#define PIDX_MAC_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_MAC_PARAM_CUSTOM 165 +#define PIDX_MAC_PARAM_C_ROUNDS 166 +#define PIDX_MAC_PARAM_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_MAC_PARAM_DIGEST_NOINIT 167 +#define PIDX_MAC_PARAM_DIGEST_ONESHOT 168 +#define PIDX_MAC_PARAM_D_ROUNDS 169 +#define PIDX_MAC_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_MAC_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_MAC_PARAM_FIPS_NO_SHORT_MAC PIDX_PROV_PARAM_NO_SHORT_MAC +#define PIDX_MAC_PARAM_IV 52 +#define PIDX_MAC_PARAM_KEY 128 +#define PIDX_MAC_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_MAC_PARAM_SALT 135 +#define PIDX_MAC_PARAM_SIZE 81 +#define PIDX_MAC_PARAM_TLS_DATA_SIZE 170 +#define PIDX_MAC_PARAM_XOF 83 +#define PIDX_OBJECT_PARAM_DATA 118 +#define PIDX_OBJECT_PARAM_DATA_STRUCTURE 171 +#define PIDX_OBJECT_PARAM_DATA_TYPE 172 +#define PIDX_OBJECT_PARAM_DESC 173 +#define PIDX_OBJECT_PARAM_INPUT_TYPE 174 +#define PIDX_OBJECT_PARAM_REFERENCE 175 +#define PIDX_OBJECT_PARAM_TYPE 142 +#define PIDX_PASSPHRASE_PARAM_INFO 123 +#define PIDX_PKEY_PARAM_ALGORITHM_ID PIDX_ALG_PARAM_ALGORITHM_ID +#define PIDX_PKEY_PARAM_ALGORITHM_ID_PARAMS PIDX_ALG_PARAM_ALGORITHM_ID_PARAMS +#define PIDX_PKEY_PARAM_BITS 176 +#define PIDX_PKEY_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_PKEY_PARAM_DEFAULT_DIGEST 177 +#define PIDX_PKEY_PARAM_DHKEM_IKM 178 +#define PIDX_PKEY_PARAM_DH_GENERATOR 179 +#define PIDX_PKEY_PARAM_DH_PRIV_LEN 180 +#define PIDX_PKEY_PARAM_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_PKEY_PARAM_DIGEST_SIZE 181 +#define PIDX_PKEY_PARAM_DIST_ID 182 +#define PIDX_PKEY_PARAM_EC_A 183 +#define PIDX_PKEY_PARAM_EC_B 184 +#define PIDX_PKEY_PARAM_EC_CHAR2_M 185 +#define PIDX_PKEY_PARAM_EC_CHAR2_PP_K1 186 +#define PIDX_PKEY_PARAM_EC_CHAR2_PP_K2 187 +#define PIDX_PKEY_PARAM_EC_CHAR2_PP_K3 188 +#define PIDX_PKEY_PARAM_EC_CHAR2_TP_BASIS 189 +#define PIDX_PKEY_PARAM_EC_CHAR2_TYPE 190 +#define PIDX_PKEY_PARAM_EC_COFACTOR 191 +#define PIDX_PKEY_PARAM_EC_DECODED_FROM_EXPLICIT_PARAMS 192 +#define PIDX_PKEY_PARAM_EC_ENCODING 193 +#define PIDX_PKEY_PARAM_EC_FIELD_TYPE 194 +#define PIDX_PKEY_PARAM_EC_GENERATOR 195 +#define PIDX_PKEY_PARAM_EC_GROUP_CHECK_TYPE 196 +#define PIDX_PKEY_PARAM_EC_INCLUDE_PUBLIC 197 +#define PIDX_PKEY_PARAM_EC_ORDER 198 +#define PIDX_PKEY_PARAM_EC_P 138 +#define PIDX_PKEY_PARAM_EC_POINT_CONVERSION_FORMAT 199 +#define PIDX_PKEY_PARAM_EC_PUB_X 200 +#define PIDX_PKEY_PARAM_EC_PUB_Y 201 +#define PIDX_PKEY_PARAM_EC_SEED 140 +#define PIDX_PKEY_PARAM_ENCODED_PUBLIC_KEY 202 +#define PIDX_PKEY_PARAM_ENGINE PIDX_ALG_PARAM_ENGINE +#define PIDX_PKEY_PARAM_FFC_COFACTOR 203 +#define PIDX_PKEY_PARAM_FFC_DIGEST PIDX_PKEY_PARAM_DIGEST +#define PIDX_PKEY_PARAM_FFC_DIGEST_PROPS PIDX_PKEY_PARAM_PROPERTIES +#define PIDX_PKEY_PARAM_FFC_G 204 +#define PIDX_PKEY_PARAM_FFC_GINDEX 205 +#define PIDX_PKEY_PARAM_FFC_H 206 +#define PIDX_PKEY_PARAM_FFC_P 138 +#define PIDX_PKEY_PARAM_FFC_PBITS 207 +#define PIDX_PKEY_PARAM_FFC_PCOUNTER 208 +#define PIDX_PKEY_PARAM_FFC_Q 209 +#define PIDX_PKEY_PARAM_FFC_QBITS 210 +#define PIDX_PKEY_PARAM_FFC_SEED 140 +#define PIDX_PKEY_PARAM_FFC_TYPE 142 +#define PIDX_PKEY_PARAM_FFC_VALIDATE_G 211 +#define PIDX_PKEY_PARAM_FFC_VALIDATE_LEGACY 212 +#define PIDX_PKEY_PARAM_FFC_VALIDATE_PQ 213 +#define PIDX_PKEY_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK 214 +#define PIDX_PKEY_PARAM_FIPS_KEY_CHECK 215 +#define PIDX_PKEY_PARAM_FIPS_SIGN_CHECK 216 +#define PIDX_PKEY_PARAM_GROUP_NAME 217 +#define PIDX_PKEY_PARAM_IMPLICIT_REJECTION 8 +#define PIDX_PKEY_PARAM_MANDATORY_DIGEST 218 +#define PIDX_PKEY_PARAM_MASKGENFUNC 219 +#define PIDX_PKEY_PARAM_MAX_SIZE 220 +#define PIDX_PKEY_PARAM_MGF1_DIGEST 221 +#define PIDX_PKEY_PARAM_MGF1_PROPERTIES 222 +#define PIDX_PKEY_PARAM_ML_DSA_INPUT_FORMATS 223 +#define PIDX_PKEY_PARAM_ML_DSA_OUTPUT_FORMATS 224 +#define PIDX_PKEY_PARAM_ML_DSA_PREFER_SEED 225 +#define PIDX_PKEY_PARAM_ML_DSA_RETAIN_SEED 226 +#define PIDX_PKEY_PARAM_ML_DSA_SEED 140 +#define PIDX_PKEY_PARAM_ML_KEM_IMPORT_PCT_TYPE 227 +#define PIDX_PKEY_PARAM_ML_KEM_INPUT_FORMATS 228 +#define PIDX_PKEY_PARAM_ML_KEM_OUTPUT_FORMATS 229 +#define PIDX_PKEY_PARAM_ML_KEM_PREFER_SEED 230 +#define PIDX_PKEY_PARAM_ML_KEM_RETAIN_SEED 231 +#define PIDX_PKEY_PARAM_ML_KEM_SEED 140 +#define PIDX_PKEY_PARAM_PAD_MODE 232 +#define PIDX_PKEY_PARAM_PRIV_KEY 233 +#define PIDX_PKEY_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_PKEY_PARAM_PUB_KEY 234 +#define PIDX_PKEY_PARAM_RSA_BITS PIDX_PKEY_PARAM_BITS +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT 235 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT1 236 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT2 237 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT3 238 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT4 239 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT5 240 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT6 241 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT7 242 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT8 243 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT9 244 +#define PIDX_PKEY_PARAM_RSA_D 245 +#define PIDX_PKEY_PARAM_RSA_DERIVE_FROM_PQ 246 +#define PIDX_PKEY_PARAM_RSA_DIGEST PIDX_PKEY_PARAM_DIGEST +#define PIDX_PKEY_PARAM_RSA_DIGEST_PROPS PIDX_PKEY_PARAM_PROPERTIES +#define PIDX_PKEY_PARAM_RSA_E 247 +#define PIDX_PKEY_PARAM_RSA_EXPONENT 248 +#define PIDX_PKEY_PARAM_RSA_EXPONENT1 249 +#define PIDX_PKEY_PARAM_RSA_EXPONENT10 250 +#define PIDX_PKEY_PARAM_RSA_EXPONENT2 251 +#define PIDX_PKEY_PARAM_RSA_EXPONENT3 252 +#define PIDX_PKEY_PARAM_RSA_EXPONENT4 253 +#define PIDX_PKEY_PARAM_RSA_EXPONENT5 254 +#define PIDX_PKEY_PARAM_RSA_EXPONENT6 255 +#define PIDX_PKEY_PARAM_RSA_EXPONENT7 256 +#define PIDX_PKEY_PARAM_RSA_EXPONENT8 257 +#define PIDX_PKEY_PARAM_RSA_EXPONENT9 258 +#define PIDX_PKEY_PARAM_RSA_FACTOR 259 +#define PIDX_PKEY_PARAM_RSA_FACTOR1 260 +#define PIDX_PKEY_PARAM_RSA_FACTOR10 261 +#define PIDX_PKEY_PARAM_RSA_FACTOR2 262 +#define PIDX_PKEY_PARAM_RSA_FACTOR3 263 +#define PIDX_PKEY_PARAM_RSA_FACTOR4 264 +#define PIDX_PKEY_PARAM_RSA_FACTOR5 265 +#define PIDX_PKEY_PARAM_RSA_FACTOR6 266 +#define PIDX_PKEY_PARAM_RSA_FACTOR7 267 +#define PIDX_PKEY_PARAM_RSA_FACTOR8 268 +#define PIDX_PKEY_PARAM_RSA_FACTOR9 269 +#define PIDX_PKEY_PARAM_RSA_MASKGENFUNC PIDX_PKEY_PARAM_MASKGENFUNC +#define PIDX_PKEY_PARAM_RSA_MGF1_DIGEST PIDX_PKEY_PARAM_MGF1_DIGEST +#define PIDX_PKEY_PARAM_RSA_N 137 +#define PIDX_PKEY_PARAM_RSA_PRIMES 270 +#define PIDX_PKEY_PARAM_RSA_PSS_SALTLEN 271 +#define PIDX_PKEY_PARAM_RSA_TEST_P1 272 +#define PIDX_PKEY_PARAM_RSA_TEST_P2 273 +#define PIDX_PKEY_PARAM_RSA_TEST_Q1 274 +#define PIDX_PKEY_PARAM_RSA_TEST_Q2 275 +#define PIDX_PKEY_PARAM_RSA_TEST_XP 276 +#define PIDX_PKEY_PARAM_RSA_TEST_XP1 277 +#define PIDX_PKEY_PARAM_RSA_TEST_XP2 278 +#define PIDX_PKEY_PARAM_RSA_TEST_XQ 279 +#define PIDX_PKEY_PARAM_RSA_TEST_XQ1 280 +#define PIDX_PKEY_PARAM_RSA_TEST_XQ2 281 +#define PIDX_PKEY_PARAM_SECURITY_BITS 282 +#define PIDX_PKEY_PARAM_SLH_DSA_SEED 140 +#define PIDX_PKEY_PARAM_USE_COFACTOR_ECDH PIDX_PKEY_PARAM_USE_COFACTOR_FLAG +#define PIDX_PKEY_PARAM_USE_COFACTOR_FLAG 283 +#define PIDX_PROV_PARAM_BUILDINFO 284 +#define PIDX_PROV_PARAM_CORE_MODULE_FILENAME 285 +#define PIDX_PROV_PARAM_CORE_PROV_NAME 286 +#define PIDX_PROV_PARAM_CORE_VERSION 287 +#define PIDX_PROV_PARAM_DRBG_TRUNC_DIGEST 288 +#define PIDX_PROV_PARAM_DSA_SIGN_DISABLED 289 +#define PIDX_PROV_PARAM_ECDH_COFACTOR_CHECK 290 +#define PIDX_PROV_PARAM_HKDF_DIGEST_CHECK 291 +#define PIDX_PROV_PARAM_HKDF_KEY_CHECK 292 +#define PIDX_PROV_PARAM_HMAC_KEY_CHECK 293 +#define PIDX_PROV_PARAM_KBKDF_KEY_CHECK 294 +#define PIDX_PROV_PARAM_KMAC_KEY_CHECK 295 +#define PIDX_PROV_PARAM_NAME 296 +#define PIDX_PROV_PARAM_NO_SHORT_MAC 297 +#define PIDX_PROV_PARAM_PBKDF2_LOWER_BOUND_CHECK 298 +#define PIDX_PROV_PARAM_RSA_PKCS15_PAD_DISABLED 299 +#define PIDX_PROV_PARAM_RSA_PSS_SALTLEN_CHECK 300 +#define PIDX_PROV_PARAM_RSA_SIGN_X931_PAD_DISABLED 301 +#define PIDX_PROV_PARAM_SECURITY_CHECKS 302 +#define PIDX_PROV_PARAM_SELF_TEST_DESC 303 +#define PIDX_PROV_PARAM_SELF_TEST_PHASE 304 +#define PIDX_PROV_PARAM_SELF_TEST_TYPE 305 +#define PIDX_PROV_PARAM_SIGNATURE_DIGEST_CHECK 306 +#define PIDX_PROV_PARAM_SSHKDF_DIGEST_CHECK 307 +#define PIDX_PROV_PARAM_SSHKDF_KEY_CHECK 308 +#define PIDX_PROV_PARAM_SSKDF_DIGEST_CHECK 309 +#define PIDX_PROV_PARAM_SSKDF_KEY_CHECK 310 +#define PIDX_PROV_PARAM_STATUS 311 +#define PIDX_PROV_PARAM_TDES_ENCRYPT_DISABLED 312 +#define PIDX_PROV_PARAM_TLS13_KDF_DIGEST_CHECK 313 +#define PIDX_PROV_PARAM_TLS13_KDF_KEY_CHECK 314 +#define PIDX_PROV_PARAM_TLS1_PRF_DIGEST_CHECK 315 +#define PIDX_PROV_PARAM_TLS1_PRF_EMS_CHECK 316 +#define PIDX_PROV_PARAM_TLS1_PRF_KEY_CHECK 317 +#define PIDX_PROV_PARAM_VERSION 115 +#define PIDX_PROV_PARAM_X942KDF_KEY_CHECK 318 +#define PIDX_PROV_PARAM_X963KDF_DIGEST_CHECK 319 +#define PIDX_PROV_PARAM_X963KDF_KEY_CHECK 320 +#define PIDX_RAND_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_RAND_PARAM_GENERATE 321 +#define PIDX_RAND_PARAM_MAX_REQUEST 322 +#define PIDX_RAND_PARAM_STATE 323 +#define PIDX_RAND_PARAM_STRENGTH 324 +#define PIDX_RAND_PARAM_TEST_ENTROPY 325 +#define PIDX_RAND_PARAM_TEST_NONCE 326 +#define PIDX_SIGNATURE_PARAM_ADD_RANDOM 327 +#define PIDX_SIGNATURE_PARAM_ALGORITHM_ID PIDX_PKEY_PARAM_ALGORITHM_ID +#define PIDX_SIGNATURE_PARAM_ALGORITHM_ID_PARAMS PIDX_PKEY_PARAM_ALGORITHM_ID_PARAMS +#define PIDX_SIGNATURE_PARAM_CONTEXT_STRING 328 +#define PIDX_SIGNATURE_PARAM_DETERMINISTIC 329 +#define PIDX_SIGNATURE_PARAM_DIGEST PIDX_PKEY_PARAM_DIGEST +#define PIDX_SIGNATURE_PARAM_DIGEST_SIZE PIDX_PKEY_PARAM_DIGEST_SIZE +#define PIDX_SIGNATURE_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_SIGNATURE_PARAM_FIPS_DIGEST_CHECK PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK +#define PIDX_SIGNATURE_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_SIGNATURE_PARAM_FIPS_RSA_PSS_SALTLEN_CHECK 300 +#define PIDX_SIGNATURE_PARAM_FIPS_SIGN_CHECK PIDX_PKEY_PARAM_FIPS_SIGN_CHECK +#define PIDX_SIGNATURE_PARAM_FIPS_SIGN_X931_PAD_CHECK 330 +#define PIDX_SIGNATURE_PARAM_FIPS_VERIFY_MESSAGE 331 +#define PIDX_SIGNATURE_PARAM_INSTANCE 332 +#define PIDX_SIGNATURE_PARAM_KAT 333 +#define PIDX_SIGNATURE_PARAM_MESSAGE_ENCODING 334 +#define PIDX_SIGNATURE_PARAM_MGF1_DIGEST PIDX_PKEY_PARAM_MGF1_DIGEST +#define PIDX_SIGNATURE_PARAM_MGF1_PROPERTIES PIDX_PKEY_PARAM_MGF1_PROPERTIES +#define PIDX_SIGNATURE_PARAM_MU 335 +#define PIDX_SIGNATURE_PARAM_NONCE_TYPE 336 +#define PIDX_SIGNATURE_PARAM_PAD_MODE PIDX_PKEY_PARAM_PAD_MODE +#define PIDX_SIGNATURE_PARAM_PROPERTIES PIDX_PKEY_PARAM_PROPERTIES +#define PIDX_SIGNATURE_PARAM_PSS_SALTLEN 271 +#define PIDX_SIGNATURE_PARAM_SIGNATURE 337 +#define PIDX_SIGNATURE_PARAM_TEST_ENTROPY 338 +#define PIDX_SKEY_PARAM_KEY_LENGTH 339 +#define PIDX_SKEY_PARAM_RAW_BYTES 340 +#define PIDX_STORE_PARAM_ALIAS 341 +#define PIDX_STORE_PARAM_DIGEST 3 +#define PIDX_STORE_PARAM_EXPECT 342 +#define PIDX_STORE_PARAM_FINGERPRINT 343 +#define PIDX_STORE_PARAM_INPUT_TYPE 174 +#define PIDX_STORE_PARAM_ISSUER 296 +#define PIDX_STORE_PARAM_PROPERTIES 7 +#define PIDX_STORE_PARAM_SERIAL 344 +#define PIDX_STORE_PARAM_SUBJECT 345 diff --git a/deps/openssl/config/archs/linux-aarch64/asm/include/openssl/asn1.h b/deps/openssl/config/archs/linux-aarch64/asm/include/openssl/asn1.h index 21ff58e3d803d4..15e9e44674b0f3 100644 --- a/deps/openssl/config/archs/linux-aarch64/asm/include/openssl/asn1.h +++ b/deps/openssl/config/archs/linux-aarch64/asm/include/openssl/asn1.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/asn1.h.in * - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -21,6 +21,9 @@ # define HEADER_ASN1_H # endif +# ifndef OPENSSL_NO_STDIO +# include +# endif # include # include # include @@ -50,14 +53,14 @@ extern "C" { # define V_ASN1_PRIMITIVE_TAG 0x1f # define V_ASN1_PRIMATIVE_TAG /*compat*/ V_ASN1_PRIMITIVE_TAG -# define V_ASN1_APP_CHOOSE -2/* let the recipient choose */ -# define V_ASN1_OTHER -3/* used in ASN1_TYPE */ -# define V_ASN1_ANY -4/* used in ASN1 template code */ +# define V_ASN1_APP_CHOOSE -2 /* let the recipient choose */ +# define V_ASN1_OTHER -3 /* used in ASN1_TYPE */ +# define V_ASN1_ANY -4 /* used in ASN1 template code */ # define V_ASN1_UNDEF -1 /* ASN.1 tag values */ # define V_ASN1_EOC 0 -# define V_ASN1_BOOLEAN 1 /**/ +# define V_ASN1_BOOLEAN 1 # define V_ASN1_INTEGER 2 # define V_ASN1_BIT_STRING 3 # define V_ASN1_OCTET_STRING 4 @@ -70,19 +73,19 @@ extern "C" { # define V_ASN1_UTF8STRING 12 # define V_ASN1_SEQUENCE 16 # define V_ASN1_SET 17 -# define V_ASN1_NUMERICSTRING 18 /**/ +# define V_ASN1_NUMERICSTRING 18 # define V_ASN1_PRINTABLESTRING 19 # define V_ASN1_T61STRING 20 -# define V_ASN1_TELETEXSTRING 20/* alias */ -# define V_ASN1_VIDEOTEXSTRING 21 /**/ +# define V_ASN1_TELETEXSTRING 20 /* alias */ +# define V_ASN1_VIDEOTEXSTRING 21 # define V_ASN1_IA5STRING 22 # define V_ASN1_UTCTIME 23 -# define V_ASN1_GENERALIZEDTIME 24 /**/ -# define V_ASN1_GRAPHICSTRING 25 /**/ -# define V_ASN1_ISO64STRING 26 /**/ -# define V_ASN1_VISIBLESTRING 26/* alias */ -# define V_ASN1_GENERALSTRING 27 /**/ -# define V_ASN1_UNIVERSALSTRING 28 /**/ +# define V_ASN1_GENERALIZEDTIME 24 +# define V_ASN1_GRAPHICSTRING 25 +# define V_ASN1_ISO64STRING 26 +# define V_ASN1_VISIBLESTRING 26 /* alias */ +# define V_ASN1_GENERALSTRING 27 +# define V_ASN1_UNIVERSALSTRING 28 # define V_ASN1_BMPSTRING 30 /* @@ -155,7 +158,7 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_ALGOR, X509_ALGOR, X509_ALGOR) -# define ASN1_STRING_FLAG_BITS_LEFT 0x08/* Set if 0x07 has bits left value */ +# define ASN1_STRING_FLAG_BITS_LEFT 0x08 /* Set if 0x07 has bits left value */ /* * This indicates that the ASN1_STRING is not a real value but just a place * holder for the location where indefinite length constructed data should be @@ -275,7 +278,7 @@ typedef struct ASN1_TLC_st ASN1_TLC; /* This is just an opaque pointer */ typedef struct ASN1_VALUE_st ASN1_VALUE; -/* Declare ASN1 functions: the implement macro in in asn1t.h */ +/* Declare ASN1 functions: the implement macro is in asn1t.h */ /* * The mysterious 'extern' that's passed to some macros is innocuous, @@ -368,6 +371,7 @@ typedef struct ASN1_VALUE_st ASN1_VALUE; typedef void *d2i_of_void(void **, const unsigned char **, long); typedef int i2d_of_void(const void *, unsigned char **); +typedef int OSSL_i2d_of_void_ctx(const void *, unsigned char **, void *vctx); /*- * The following macros and typedefs allow an ASN1_ITEM @@ -996,6 +1000,8 @@ int ASN1_TYPE_get_int_octetstring(const ASN1_TYPE *a, long *num, unsigned char *data, int max_len); void *ASN1_item_unpack(const ASN1_STRING *oct, const ASN1_ITEM *it); +void *ASN1_item_unpack_ex(const ASN1_STRING *oct, const ASN1_ITEM *it, + OSSL_LIB_CTX *libctx, const char *propq); ASN1_STRING *ASN1_item_pack(void *obj, const ASN1_ITEM *it, ASN1_OCTET_STRING **oct); diff --git a/deps/openssl/config/archs/linux-aarch64/asm/include/openssl/bio.h b/deps/openssl/config/archs/linux-aarch64/asm/include/openssl/bio.h index f9aa74731c833c..e02f867beb0ec0 100644 --- a/deps/openssl/config/archs/linux-aarch64/asm/include/openssl/bio.h +++ b/deps/openssl/config/archs/linux-aarch64/asm/include/openssl/bio.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/bio.h.in * - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -67,8 +67,13 @@ extern "C" { # define BIO_TYPE_DGRAM_SCTP (24|BIO_TYPE_SOURCE_SINK|BIO_TYPE_DESCRIPTOR) # endif # define BIO_TYPE_CORE_TO_PROV (25|BIO_TYPE_SOURCE_SINK) +# define BIO_TYPE_DGRAM_PAIR (26|BIO_TYPE_SOURCE_SINK) +# define BIO_TYPE_DGRAM_MEM (27|BIO_TYPE_SOURCE_SINK) +/* Custom type starting index returned by BIO_get_new_index() */ #define BIO_TYPE_START 128 +/* Custom type maximum index that can be returned by BIO_get_new_index() */ +#define BIO_TYPE_MASK 0xFF /* * BIO_FILENAME_READ|BIO_CLOSE to open or close on free. @@ -171,6 +176,31 @@ extern "C" { # define BIO_CTRL_SET_INDENT 80 # define BIO_CTRL_GET_INDENT 81 +# define BIO_CTRL_DGRAM_GET_LOCAL_ADDR_CAP 82 +# define BIO_CTRL_DGRAM_GET_LOCAL_ADDR_ENABLE 83 +# define BIO_CTRL_DGRAM_SET_LOCAL_ADDR_ENABLE 84 +# define BIO_CTRL_DGRAM_GET_EFFECTIVE_CAPS 85 +# define BIO_CTRL_DGRAM_GET_CAPS 86 +# define BIO_CTRL_DGRAM_SET_CAPS 87 +# define BIO_CTRL_DGRAM_GET_NO_TRUNC 88 +# define BIO_CTRL_DGRAM_SET_NO_TRUNC 89 + +/* + * internal BIO: + * # define BIO_CTRL_SET_KTLS_TX_ZEROCOPY_SENDFILE 90 + */ + +# define BIO_CTRL_GET_RPOLL_DESCRIPTOR 91 +# define BIO_CTRL_GET_WPOLL_DESCRIPTOR 92 +# define BIO_CTRL_DGRAM_DETECT_PEER_ADDR 93 +# define BIO_CTRL_DGRAM_SET0_LOCAL_ADDR 94 + +# define BIO_DGRAM_CAP_NONE 0U +# define BIO_DGRAM_CAP_HANDLES_SRC_ADDR (1U << 0) +# define BIO_DGRAM_CAP_HANDLES_DST_ADDR (1U << 1) +# define BIO_DGRAM_CAP_PROVIDES_SRC_ADDR (1U << 2) +# define BIO_DGRAM_CAP_PROVIDES_DST_ADDR (1U << 3) + # ifndef OPENSSL_NO_KTLS # define BIO_get_ktls_send(b) \ (BIO_ctrl(b, BIO_CTRL_GET_KTLS_SEND, 0, NULL) > 0) @@ -208,7 +238,7 @@ extern "C" { # define BIO_FLAGS_NONCLEAR_RST 0x400 # define BIO_FLAGS_IN_EOF 0x800 -/* the BIO FLAGS values 0x1000 to 0x4000 are reserved for internal KTLS flags */ +/* the BIO FLAGS values 0x1000 to 0x8000 are reserved for internal KTLS flags */ typedef union bio_addr_st BIO_ADDR; typedef struct bio_addrinfo_st BIO_ADDRINFO; @@ -256,12 +286,14 @@ void BIO_clear_flags(BIO *b, int flags); # define BIO_RR_ACCEPT 0x03 /* These are passed by the BIO callback */ -# define BIO_CB_FREE 0x01 -# define BIO_CB_READ 0x02 -# define BIO_CB_WRITE 0x03 -# define BIO_CB_PUTS 0x04 -# define BIO_CB_GETS 0x05 -# define BIO_CB_CTRL 0x06 +# define BIO_CB_FREE 0x01 +# define BIO_CB_READ 0x02 +# define BIO_CB_WRITE 0x03 +# define BIO_CB_PUTS 0x04 +# define BIO_CB_GETS 0x05 +# define BIO_CB_CTRL 0x06 +# define BIO_CB_RECVMMSG 0x07 +# define BIO_CB_SENDMMSG 0x08 /* * The callback is called before and after the underling operation, The @@ -362,6 +394,36 @@ struct bio_dgram_sctp_prinfo { }; # endif +/* BIO_sendmmsg/BIO_recvmmsg-related definitions */ +typedef struct bio_msg_st { + void *data; + size_t data_len; + BIO_ADDR *peer, *local; + uint64_t flags; +} BIO_MSG; + +typedef struct bio_mmsg_cb_args_st { + BIO_MSG *msg; + size_t stride, num_msg; + uint64_t flags; + size_t *msgs_processed; +} BIO_MMSG_CB_ARGS; + +#define BIO_POLL_DESCRIPTOR_TYPE_NONE 0 +#define BIO_POLL_DESCRIPTOR_TYPE_SOCK_FD 1 +#define BIO_POLL_DESCRIPTOR_TYPE_SSL 2 +#define BIO_POLL_DESCRIPTOR_CUSTOM_START 8192 + +typedef struct bio_poll_descriptor_st { + uint32_t type; + union { + int fd; + void *custom; + uintptr_t custom_ui; + SSL *ssl; + } value; +} BIO_POLL_DESCRIPTOR; + /* * #define BIO_CONN_get_param_hostname BIO_ctrl */ @@ -428,10 +490,17 @@ struct bio_dgram_sctp_prinfo { # define BIO_C_SET_CONNECT_MODE 155 +# define BIO_C_SET_TFO 156 /* like BIO_C_SET_NBIO */ + +# define BIO_C_SET_SOCK_TYPE 157 +# define BIO_C_GET_SOCK_TYPE 158 +# define BIO_C_GET_DGRAM_BIO 159 + # define BIO_set_app_data(s,arg) BIO_set_ex_data(s,0,arg) # define BIO_get_app_data(s) BIO_get_ex_data(s,0) -# define BIO_set_nbio(b,n) BIO_ctrl(b,BIO_C_SET_NBIO,(n),NULL) +# define BIO_set_nbio(b,n) BIO_ctrl(b,BIO_C_SET_NBIO,(n),NULL) +# define BIO_set_tfo(b,n) BIO_ctrl(b,BIO_C_SET_TFO,(n),NULL) # ifndef OPENSSL_NO_SOCK /* IP families we support, for BIO_s_connect() and BIO_s_accept() */ @@ -452,7 +521,11 @@ struct bio_dgram_sctp_prinfo { # define BIO_get_conn_port(b) ((const char *)BIO_ptr_ctrl(b,BIO_C_GET_CONNECT,1)) # define BIO_get_conn_address(b) ((const BIO_ADDR *)BIO_ptr_ctrl(b,BIO_C_GET_CONNECT,2)) # define BIO_get_conn_ip_family(b) BIO_ctrl(b,BIO_C_GET_CONNECT,3,NULL) +# define BIO_get_conn_mode(b) BIO_ctrl(b,BIO_C_GET_CONNECT,4,NULL) # define BIO_set_conn_mode(b,n) BIO_ctrl(b,BIO_C_SET_CONNECT_MODE,(n),NULL) +# define BIO_set_sock_type(b,t) BIO_ctrl(b,BIO_C_SET_SOCK_TYPE,(t),NULL) +# define BIO_get_sock_type(b) BIO_ctrl(b,BIO_C_GET_SOCK_TYPE,0,NULL) +# define BIO_get0_dgram_bio(b, p) BIO_ctrl(b,BIO_C_GET_DGRAM_BIO,0,(void *)(BIO **)(p)) /* BIO_s_accept() */ # define BIO_set_accept_name(b,name) BIO_ctrl(b,BIO_C_SET_ACCEPT,0, \ @@ -469,6 +542,7 @@ struct bio_dgram_sctp_prinfo { (char *)(bio)) # define BIO_set_accept_ip_family(b,f) BIO_int_ctrl(b,BIO_C_SET_ACCEPT,4,f) # define BIO_get_accept_ip_family(b) BIO_ctrl(b,BIO_C_GET_ACCEPT,4,NULL) +# define BIO_set_tfo_accept(b,n) BIO_ctrl(b,BIO_C_SET_ACCEPT,5,(n)?(void *)"a":NULL) /* Aliases kept for backward compatibility */ # define BIO_BIND_NORMAL 0 @@ -596,8 +670,32 @@ int BIO_ctrl_reset_read_request(BIO *b); (int)BIO_ctrl(b, BIO_CTRL_DGRAM_GET_PEER, 0, (char *)(peer)) # define BIO_dgram_set_peer(b,peer) \ (int)BIO_ctrl(b, BIO_CTRL_DGRAM_SET_PEER, 0, (char *)(peer)) +# define BIO_dgram_detect_peer_addr(b,peer) \ + (int)BIO_ctrl(b, BIO_CTRL_DGRAM_DETECT_PEER_ADDR, 0, (char *)(peer)) # define BIO_dgram_get_mtu_overhead(b) \ (unsigned int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_MTU_OVERHEAD, 0, NULL) +# define BIO_dgram_get_local_addr_cap(b) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_LOCAL_ADDR_CAP, 0, NULL) +# define BIO_dgram_get_local_addr_enable(b, penable) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_LOCAL_ADDR_ENABLE, 0, (char *)(penable)) +# define BIO_dgram_set_local_addr_enable(b, enable) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET_LOCAL_ADDR_ENABLE, (enable), NULL) +# define BIO_dgram_get_effective_caps(b) \ + (uint32_t)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_EFFECTIVE_CAPS, 0, NULL) +# define BIO_dgram_get_caps(b) \ + (uint32_t)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_CAPS, 0, NULL) +# define BIO_dgram_set_caps(b, caps) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET_CAPS, (long)(caps), NULL) +# define BIO_dgram_get_no_trunc(b) \ + (unsigned int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_NO_TRUNC, 0, NULL) +# define BIO_dgram_set_no_trunc(b, enable) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET_NO_TRUNC, (enable), NULL) +# define BIO_dgram_get_mtu(b) \ + (unsigned int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_MTU, 0, NULL) +# define BIO_dgram_set_mtu(b, mtu) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET_MTU, (mtu), NULL) +# define BIO_dgram_set0_local_addr(b, addr) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET0_LOCAL_ADDR, 0, (addr)) /* ctrl macros for BIO_f_prefix */ # define BIO_set_prefix(b,p) BIO_ctrl((b), BIO_CTRL_SET_PREFIX, 0, (void *)(p)) @@ -640,10 +738,18 @@ void BIO_vfree(BIO *a); int BIO_up_ref(BIO *a); int BIO_read(BIO *b, void *data, int dlen); int BIO_read_ex(BIO *b, void *data, size_t dlen, size_t *readbytes); +__owur int BIO_recvmmsg(BIO *b, BIO_MSG *msg, + size_t stride, size_t num_msg, uint64_t flags, + size_t *msgs_processed); int BIO_gets(BIO *bp, char *buf, int size); int BIO_get_line(BIO *bio, char *buf, int size); int BIO_write(BIO *b, const void *data, int dlen); int BIO_write_ex(BIO *b, const void *data, size_t dlen, size_t *written); +__owur int BIO_sendmmsg(BIO *b, BIO_MSG *msg, + size_t stride, size_t num_msg, uint64_t flags, + size_t *msgs_processed); +__owur int BIO_get_rpoll_descriptor(BIO *b, BIO_POLL_DESCRIPTOR *desc); +__owur int BIO_get_wpoll_descriptor(BIO *b, BIO_POLL_DESCRIPTOR *desc); int BIO_puts(BIO *bp, const char *buf); int BIO_indent(BIO *b, int indent, int max); long BIO_ctrl(BIO *bp, int cmd, long larg, void *parg); @@ -667,6 +773,9 @@ int BIO_nwrite0(BIO *bio, char **buf); int BIO_nwrite(BIO *bio, char **buf, int num); const BIO_METHOD *BIO_s_mem(void); +# ifndef OPENSSL_NO_DGRAM +const BIO_METHOD *BIO_s_dgram_mem(void); +# endif const BIO_METHOD *BIO_s_secmem(void); BIO *BIO_new_mem_buf(const void *buf, int len); # ifndef OPENSSL_NO_SOCK @@ -686,6 +795,7 @@ const BIO_METHOD *BIO_f_nbio_test(void); const BIO_METHOD *BIO_f_prefix(void); const BIO_METHOD *BIO_s_core(void); # ifndef OPENSSL_NO_DGRAM +const BIO_METHOD *BIO_s_dgram_pair(void); const BIO_METHOD *BIO_s_datagram(void); int BIO_dgram_non_fatal_error(int error); BIO *BIO_new_dgram(int fd, int close_flag); @@ -704,6 +814,7 @@ int BIO_dgram_sctp_msg_waiting(BIO *b); # ifndef OPENSSL_NO_SOCK int BIO_sock_should_retry(int i); int BIO_sock_non_fatal_error(int error); +int BIO_err_is_non_fatal(unsigned int errcode); int BIO_socket_wait(int fd, int for_read, time_t max_time); # endif int BIO_wait(BIO *bio, time_t max_time, unsigned int nap_milliseconds); @@ -726,6 +837,8 @@ int BIO_hex_string(BIO *out, int indent, int width, const void *data, # ifndef OPENSSL_NO_SOCK BIO_ADDR *BIO_ADDR_new(void); +int BIO_ADDR_copy(BIO_ADDR *dst, const BIO_ADDR *src); +BIO_ADDR *BIO_ADDR_dup(const BIO_ADDR *ap); int BIO_ADDR_rawmake(BIO_ADDR *ap, int family, const void *where, size_t wherelen, unsigned short port); void BIO_ADDR_free(BIO_ADDR *); @@ -788,6 +901,7 @@ int BIO_sock_info(int sock, # define BIO_SOCK_KEEPALIVE 0x04 # define BIO_SOCK_NONBLOCK 0x08 # define BIO_SOCK_NODELAY 0x10 +# define BIO_SOCK_TFO 0x20 int BIO_socket(int domain, int socktype, int protocol, int options); int BIO_connect(int sock, const BIO_ADDR *addr, int options); @@ -805,6 +919,11 @@ BIO *BIO_new_fd(int fd, int close_flag); int BIO_new_bio_pair(BIO **bio1, size_t writebuf1, BIO **bio2, size_t writebuf2); +# ifndef OPENSSL_NO_DGRAM +int BIO_new_bio_dgram_pair(BIO **bio1, size_t writebuf1, + BIO **bio2, size_t writebuf2); +# endif + /* * If successful, returns 1 and in *bio1, *bio2 two BIO pair endpoints. * Otherwise returns 0 and sets *bio1 and *bio2 to NULL. Size 0 uses default @@ -849,38 +968,54 @@ ossl_bio__attr__((__format__(ossl_bio__printf__, 3, 0))); BIO_METHOD *BIO_meth_new(int type, const char *name); void BIO_meth_free(BIO_METHOD *biom); -int (*BIO_meth_get_write(const BIO_METHOD *biom)) (BIO *, const char *, int); -int (*BIO_meth_get_write_ex(const BIO_METHOD *biom)) (BIO *, const char *, size_t, - size_t *); int BIO_meth_set_write(BIO_METHOD *biom, int (*write) (BIO *, const char *, int)); int BIO_meth_set_write_ex(BIO_METHOD *biom, int (*bwrite) (BIO *, const char *, size_t, size_t *)); -int (*BIO_meth_get_read(const BIO_METHOD *biom)) (BIO *, char *, int); -int (*BIO_meth_get_read_ex(const BIO_METHOD *biom)) (BIO *, char *, size_t, size_t *); +int BIO_meth_set_sendmmsg(BIO_METHOD *biom, + int (*f) (BIO *, BIO_MSG *, size_t, size_t, + uint64_t, size_t *)); int BIO_meth_set_read(BIO_METHOD *biom, int (*read) (BIO *, char *, int)); int BIO_meth_set_read_ex(BIO_METHOD *biom, int (*bread) (BIO *, char *, size_t, size_t *)); -int (*BIO_meth_get_puts(const BIO_METHOD *biom)) (BIO *, const char *); +int BIO_meth_set_recvmmsg(BIO_METHOD *biom, + int (*f) (BIO *, BIO_MSG *, size_t, size_t, + uint64_t, size_t *)); int BIO_meth_set_puts(BIO_METHOD *biom, int (*puts) (BIO *, const char *)); -int (*BIO_meth_get_gets(const BIO_METHOD *biom)) (BIO *, char *, int); int BIO_meth_set_gets(BIO_METHOD *biom, int (*ossl_gets) (BIO *, char *, int)); -long (*BIO_meth_get_ctrl(const BIO_METHOD *biom)) (BIO *, int, long, void *); int BIO_meth_set_ctrl(BIO_METHOD *biom, long (*ctrl) (BIO *, int, long, void *)); -int (*BIO_meth_get_create(const BIO_METHOD *bion)) (BIO *); int BIO_meth_set_create(BIO_METHOD *biom, int (*create) (BIO *)); -int (*BIO_meth_get_destroy(const BIO_METHOD *biom)) (BIO *); int BIO_meth_set_destroy(BIO_METHOD *biom, int (*destroy) (BIO *)); -long (*BIO_meth_get_callback_ctrl(const BIO_METHOD *biom)) - (BIO *, int, BIO_info_cb *); int BIO_meth_set_callback_ctrl(BIO_METHOD *biom, long (*callback_ctrl) (BIO *, int, BIO_info_cb *)); - +# ifndef OPENSSL_NO_DEPRECATED_3_5 +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_write(const BIO_METHOD *biom)) (BIO *, const char *, + int); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_write_ex(const BIO_METHOD *biom)) (BIO *, const char *, + size_t, size_t *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_sendmmsg(const BIO_METHOD *biom))(BIO *, BIO_MSG *, + size_t, size_t, + uint64_t, size_t *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_read(const BIO_METHOD *biom)) (BIO *, char *, int); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_read_ex(const BIO_METHOD *biom)) (BIO *, char *, + size_t, size_t *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_recvmmsg(const BIO_METHOD *biom))(BIO *, BIO_MSG *, + size_t, size_t, + uint64_t, size_t *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_puts(const BIO_METHOD *biom)) (BIO *, const char *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_gets(const BIO_METHOD *biom)) (BIO *, char *, int); +OSSL_DEPRECATEDIN_3_5 long (*BIO_meth_get_ctrl(const BIO_METHOD *biom)) (BIO *, int, + long, void *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_create(const BIO_METHOD *bion)) (BIO *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_destroy(const BIO_METHOD *biom)) (BIO *); +OSSL_DEPRECATEDIN_3_5 long (*BIO_meth_get_callback_ctrl(const BIO_METHOD *biom)) (BIO *, int, + BIO_info_cb *); +# endif # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/linux-aarch64/asm/include/openssl/cmp.h b/deps/openssl/config/archs/linux-aarch64/asm/include/openssl/cmp.h index 49825570d8c303..05aed3029d594c 100644 --- a/deps/openssl/config/archs/linux-aarch64/asm/include/openssl/cmp.h +++ b/deps/openssl/config/archs/linux-aarch64/asm/include/openssl/cmp.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/cmp.h.in * - * Copyright 2007-2023 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2007-2024 The OpenSSL Project Authors. All Rights Reserved. * Copyright Nokia 2007-2019 * Copyright Siemens AG 2015-2019 * @@ -35,7 +35,9 @@ extern "C" { # endif -# define OSSL_CMP_PVNO 2 +# define OSSL_CMP_PVNO_2 2 +# define OSSL_CMP_PVNO_3 3 +# define OSSL_CMP_PVNO OSSL_CMP_PVNO_2 /* v2 is the default */ /*- * PKIFailureInfo ::= BIT STRING { @@ -137,7 +139,6 @@ extern "C" { # if OSSL_CMP_PKIFAILUREINFO_MAX_BIT_PATTERN > INT_MAX # error CMP_PKIFAILUREINFO_MAX bit pattern does not fit in type int # endif - typedef ASN1_BIT_STRING OSSL_CMP_PKIFAILUREINFO; # define OSSL_CMP_CTX_FAILINFO_badAlg (1 << 0) @@ -203,8 +204,8 @@ typedef ASN1_BIT_STRING OSSL_CMP_PKIFAILUREINFO; # define OSSL_CMP_PKISTATUS_revocationWarning 4 # define OSSL_CMP_PKISTATUS_revocationNotification 5 # define OSSL_CMP_PKISTATUS_keyUpdateWarning 6 - typedef ASN1_INTEGER OSSL_CMP_PKISTATUS; + DECLARE_ASN1_ITEM(OSSL_CMP_PKISTATUS) # define OSSL_CMP_CERTORENCCERT_CERTIFICATE 0 @@ -274,6 +275,46 @@ SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CMP_ITAV, OSSL_CMP_ITAV, OSSL_CMP_ITAV) #define sk_OSSL_CMP_ITAV_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_CMP_ITAV) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_CMP_ITAV_sk_type(sk), ossl_check_OSSL_CMP_ITAV_copyfunc_type(copyfunc), ossl_check_OSSL_CMP_ITAV_freefunc_type(freefunc))) #define sk_OSSL_CMP_ITAV_set_cmp_func(sk, cmp) ((sk_OSSL_CMP_ITAV_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CMP_ITAV_sk_type(sk), ossl_check_OSSL_CMP_ITAV_compfunc_type(cmp))) + +typedef struct ossl_cmp_crlstatus_st OSSL_CMP_CRLSTATUS; +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CMP_CRLSTATUS, OSSL_CMP_CRLSTATUS, OSSL_CMP_CRLSTATUS) +#define sk_OSSL_CMP_CRLSTATUS_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_value(sk, idx) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_value(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk), (idx))) +#define sk_OSSL_CMP_CRLSTATUS_new(cmp) ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_new(ossl_check_OSSL_CMP_CRLSTATUS_compfunc_type(cmp))) +#define sk_OSSL_CMP_CRLSTATUS_new_null() ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_new_null()) +#define sk_OSSL_CMP_CRLSTATUS_new_reserve(cmp, n) ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_CMP_CRLSTATUS_compfunc_type(cmp), (n))) +#define sk_OSSL_CMP_CRLSTATUS_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), (n)) +#define sk_OSSL_CMP_CRLSTATUS_free(sk) OPENSSL_sk_free(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_delete(sk, i) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_delete(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), (i))) +#define sk_OSSL_CMP_CRLSTATUS_delete_ptr(sk, ptr) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr))) +#define sk_OSSL_CMP_CRLSTATUS_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr)) +#define sk_OSSL_CMP_CRLSTATUS_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr)) +#define sk_OSSL_CMP_CRLSTATUS_pop(sk) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_pop(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk))) +#define sk_OSSL_CMP_CRLSTATUS_shift(sk) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_shift(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk))) +#define sk_OSSL_CMP_CRLSTATUS_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk),ossl_check_OSSL_CMP_CRLSTATUS_freefunc_type(freefunc)) +#define sk_OSSL_CMP_CRLSTATUS_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr), (idx)) +#define sk_OSSL_CMP_CRLSTATUS_set(sk, idx, ptr) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_set(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), (idx), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr))) +#define sk_OSSL_CMP_CRLSTATUS_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr)) +#define sk_OSSL_CMP_CRLSTATUS_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr)) +#define sk_OSSL_CMP_CRLSTATUS_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr), pnum) +#define sk_OSSL_CMP_CRLSTATUS_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_dup(sk) ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_dup(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk))) +#define sk_OSSL_CMP_CRLSTATUS_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_copyfunc_type(copyfunc), ossl_check_OSSL_CMP_CRLSTATUS_freefunc_type(freefunc))) +#define sk_OSSL_CMP_CRLSTATUS_set_cmp_func(sk, cmp) ((sk_OSSL_CMP_CRLSTATUS_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_compfunc_type(cmp))) + + +typedef OSSL_CRMF_ATTRIBUTETYPEANDVALUE OSSL_CMP_ATAV; +# define OSSL_CMP_ATAV_free OSSL_CRMF_ATTRIBUTETYPEANDVALUE_free +typedef STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) OSSL_CMP_ATAVS; +DECLARE_ASN1_FUNCTIONS(OSSL_CMP_ATAVS) +# define stack_st_OSSL_CMP_ATAV stack_st_OSSL_CRMF_ATTRIBUTETYPEANDVALUE +# define sk_OSSL_CMP_ATAV_num sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_num +# define sk_OSSL_CMP_ATAV_value sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_value +# define sk_OSSL_CMP_ATAV_push sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_push +# define sk_OSSL_CMP_ATAV_pop_free sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_pop_free + typedef struct ossl_cmp_revrepcontent_st OSSL_CMP_REVREPCONTENT; typedef struct ossl_cmp_pkisi_st OSSL_CMP_PKISI; DECLARE_ASN1_FUNCTIONS(OSSL_CMP_PKISI) @@ -375,21 +416,75 @@ void OSSL_CMP_ITAV_set0(OSSL_CMP_ITAV *itav, ASN1_OBJECT *type, ASN1_TYPE *value); ASN1_OBJECT *OSSL_CMP_ITAV_get0_type(const OSSL_CMP_ITAV *itav); ASN1_TYPE *OSSL_CMP_ITAV_get0_value(const OSSL_CMP_ITAV *itav); -int OSSL_CMP_ITAV_push0_stack_item(STACK_OF(OSSL_CMP_ITAV) **itav_sk_p, +int OSSL_CMP_ITAV_push0_stack_item(STACK_OF(OSSL_CMP_ITAV) **sk_p, OSSL_CMP_ITAV *itav); void OSSL_CMP_ITAV_free(OSSL_CMP_ITAV *itav); + +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new0_certProfile(STACK_OF(ASN1_UTF8STRING) + *certProfile); +int OSSL_CMP_ITAV_get0_certProfile(const OSSL_CMP_ITAV *itav, + STACK_OF(ASN1_UTF8STRING) **out); +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new_caCerts(const STACK_OF(X509) *caCerts); +int OSSL_CMP_ITAV_get0_caCerts(const OSSL_CMP_ITAV *itav, STACK_OF(X509) **out); + +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new_rootCaCert(const X509 *rootCaCert); +int OSSL_CMP_ITAV_get0_rootCaCert(const OSSL_CMP_ITAV *itav, X509 **out); +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new_rootCaKeyUpdate(const X509 *newWithNew, + const X509 *newWithOld, + const X509 *oldWithNew); +int OSSL_CMP_ITAV_get0_rootCaKeyUpdate(const OSSL_CMP_ITAV *itav, + X509 **newWithNew, + X509 **newWithOld, + X509 **oldWithNew); + +OSSL_CMP_CRLSTATUS *OSSL_CMP_CRLSTATUS_create(const X509_CRL *crl, + const X509 *cert, int only_DN); +OSSL_CMP_CRLSTATUS *OSSL_CMP_CRLSTATUS_new1(const DIST_POINT_NAME *dpn, + const GENERAL_NAMES *issuer, + const ASN1_TIME *thisUpdate); +int OSSL_CMP_CRLSTATUS_get0(const OSSL_CMP_CRLSTATUS *crlstatus, + DIST_POINT_NAME **dpn, GENERAL_NAMES **issuer, + ASN1_TIME **thisUpdate); +void OSSL_CMP_CRLSTATUS_free(OSSL_CMP_CRLSTATUS *crlstatus); +OSSL_CMP_ITAV +*OSSL_CMP_ITAV_new0_crlStatusList(STACK_OF(OSSL_CMP_CRLSTATUS) *crlStatusList); +int OSSL_CMP_ITAV_get0_crlStatusList(const OSSL_CMP_ITAV *itav, + STACK_OF(OSSL_CMP_CRLSTATUS) **out); +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new_crls(const X509_CRL *crls); +int OSSL_CMP_ITAV_get0_crls(const OSSL_CMP_ITAV *it, STACK_OF(X509_CRL) **out); +OSSL_CMP_ITAV +*OSSL_CMP_ITAV_new0_certReqTemplate(OSSL_CRMF_CERTTEMPLATE *certTemplate, + OSSL_CMP_ATAVS *keySpec); +int OSSL_CMP_ITAV_get1_certReqTemplate(const OSSL_CMP_ITAV *itav, + OSSL_CRMF_CERTTEMPLATE **certTemplate, + OSSL_CMP_ATAVS **keySpec); + +OSSL_CMP_ATAV *OSSL_CMP_ATAV_create(ASN1_OBJECT *type, ASN1_TYPE *value); +void OSSL_CMP_ATAV_set0(OSSL_CMP_ATAV *itav, ASN1_OBJECT *type, + ASN1_TYPE *value); +ASN1_OBJECT *OSSL_CMP_ATAV_get0_type(const OSSL_CMP_ATAV *itav); +ASN1_TYPE *OSSL_CMP_ATAV_get0_value(const OSSL_CMP_ATAV *itav); +OSSL_CMP_ATAV *OSSL_CMP_ATAV_new_algId(const X509_ALGOR *alg); +X509_ALGOR *OSSL_CMP_ATAV_get0_algId(const OSSL_CMP_ATAV *atav); +OSSL_CMP_ATAV *OSSL_CMP_ATAV_new_rsaKeyLen(int len); +int OSSL_CMP_ATAV_get_rsaKeyLen(const OSSL_CMP_ATAV *atav); +int OSSL_CMP_ATAV_push1(OSSL_CMP_ATAVS **sk_p, const OSSL_CMP_ATAV *atav); + void OSSL_CMP_MSG_free(OSSL_CMP_MSG *msg); /* from cmp_ctx.c */ OSSL_CMP_CTX *OSSL_CMP_CTX_new(OSSL_LIB_CTX *libctx, const char *propq); void OSSL_CMP_CTX_free(OSSL_CMP_CTX *ctx); int OSSL_CMP_CTX_reinit(OSSL_CMP_CTX *ctx); +OSSL_LIB_CTX *OSSL_CMP_CTX_get0_libctx(const OSSL_CMP_CTX *ctx); +const char *OSSL_CMP_CTX_get0_propq(const OSSL_CMP_CTX *ctx); /* CMP general options: */ # define OSSL_CMP_OPT_LOG_VERBOSITY 0 /* CMP transfer options: */ -# define OSSL_CMP_OPT_KEEP_ALIVE 10 -# define OSSL_CMP_OPT_MSG_TIMEOUT 11 +# define OSSL_CMP_OPT_KEEP_ALIVE 10 +# define OSSL_CMP_OPT_MSG_TIMEOUT 11 # define OSSL_CMP_OPT_TOTAL_TIMEOUT 12 +# define OSSL_CMP_OPT_USE_TLS 13 /* CMP request options: */ # define OSSL_CMP_OPT_VALIDITY_DAYS 20 # define OSSL_CMP_OPT_SUBJECTALTNAME_NODEFAULT 21 @@ -407,6 +502,7 @@ int OSSL_CMP_CTX_reinit(OSSL_CMP_CTX *ctx); # define OSSL_CMP_OPT_DIGEST_ALGNID 34 # define OSSL_CMP_OPT_IGNORE_KEYUSAGE 35 # define OSSL_CMP_OPT_PERMIT_TA_IN_EXTRACERTS_FOR_IR 36 +# define OSSL_CMP_OPT_NO_CACHE_EXTRACERTS 37 int OSSL_CMP_CTX_set_option(OSSL_CMP_CTX *ctx, int opt, int val); int OSSL_CMP_CTX_get_option(const OSSL_CMP_CTX *ctx, int opt); /* CMP-specific callback for logging and outputting the error queue: */ @@ -420,9 +516,11 @@ int OSSL_CMP_CTX_set1_server(OSSL_CMP_CTX *ctx, const char *address); int OSSL_CMP_CTX_set_serverPort(OSSL_CMP_CTX *ctx, int port); int OSSL_CMP_CTX_set1_proxy(OSSL_CMP_CTX *ctx, const char *name); int OSSL_CMP_CTX_set1_no_proxy(OSSL_CMP_CTX *ctx, const char *names); +# ifndef OPENSSL_NO_HTTP int OSSL_CMP_CTX_set_http_cb(OSSL_CMP_CTX *ctx, OSSL_HTTP_bio_cb_t cb); int OSSL_CMP_CTX_set_http_cb_arg(OSSL_CMP_CTX *ctx, void *arg); void *OSSL_CMP_CTX_get_http_cb_arg(const OSSL_CMP_CTX *ctx); +# endif typedef OSSL_CMP_MSG *(*OSSL_CMP_transfer_cb_t) (OSSL_CMP_CTX *ctx, const OSSL_CMP_MSG *req); int OSSL_CMP_CTX_set_transfer_cb(OSSL_CMP_CTX *ctx, OSSL_CMP_transfer_cb_t cb); @@ -432,7 +530,9 @@ void *OSSL_CMP_CTX_get_transfer_cb_arg(const OSSL_CMP_CTX *ctx); int OSSL_CMP_CTX_set1_srvCert(OSSL_CMP_CTX *ctx, X509 *cert); int OSSL_CMP_CTX_set1_expected_sender(OSSL_CMP_CTX *ctx, const X509_NAME *name); int OSSL_CMP_CTX_set0_trustedStore(OSSL_CMP_CTX *ctx, X509_STORE *store); +# define OSSL_CMP_CTX_set0_trusted OSSL_CMP_CTX_set0_trustedStore X509_STORE *OSSL_CMP_CTX_get0_trustedStore(const OSSL_CMP_CTX *ctx); +# define OSSL_CMP_CTX_get0_trusted OSSL_CMP_CTX_get0_trustedStore int OSSL_CMP_CTX_set1_untrusted(OSSL_CMP_CTX *ctx, STACK_OF(X509) *certs); STACK_OF(X509) *OSSL_CMP_CTX_get0_untrusted(const OSSL_CMP_CTX *ctx); /* client authentication: */ @@ -448,12 +548,15 @@ int OSSL_CMP_CTX_set1_secretValue(OSSL_CMP_CTX *ctx, int OSSL_CMP_CTX_set1_recipient(OSSL_CMP_CTX *ctx, const X509_NAME *name); int OSSL_CMP_CTX_push0_geninfo_ITAV(OSSL_CMP_CTX *ctx, OSSL_CMP_ITAV *itav); int OSSL_CMP_CTX_reset_geninfo_ITAVs(OSSL_CMP_CTX *ctx); +STACK_OF(OSSL_CMP_ITAV) + *OSSL_CMP_CTX_get0_geninfo_ITAVs(const OSSL_CMP_CTX *ctx); int OSSL_CMP_CTX_set1_extraCertsOut(OSSL_CMP_CTX *ctx, STACK_OF(X509) *extraCertsOut); /* certificate template: */ int OSSL_CMP_CTX_set0_newPkey(OSSL_CMP_CTX *ctx, int priv, EVP_PKEY *pkey); EVP_PKEY *OSSL_CMP_CTX_get0_newPkey(const OSSL_CMP_CTX *ctx, int priv); int OSSL_CMP_CTX_set1_issuer(OSSL_CMP_CTX *ctx, const X509_NAME *name); +int OSSL_CMP_CTX_set1_serialNumber(OSSL_CMP_CTX *ctx, const ASN1_INTEGER *sn); int OSSL_CMP_CTX_set1_subjectName(OSSL_CMP_CTX *ctx, const X509_NAME *name); int OSSL_CMP_CTX_push1_subjectAltName(OSSL_CMP_CTX *ctx, const GENERAL_NAME *name); @@ -477,6 +580,7 @@ int OSSL_CMP_CTX_get_status(const OSSL_CMP_CTX *ctx); OSSL_CMP_PKIFREETEXT *OSSL_CMP_CTX_get0_statusString(const OSSL_CMP_CTX *ctx); int OSSL_CMP_CTX_get_failInfoCode(const OSSL_CMP_CTX *ctx); # define OSSL_CMP_PKISI_BUFLEN 1024 +X509 *OSSL_CMP_CTX_get0_validatedSrvCert(const OSSL_CMP_CTX *ctx); X509 *OSSL_CMP_CTX_get0_newCert(const OSSL_CMP_CTX *ctx); STACK_OF(X509) *OSSL_CMP_CTX_get1_newChain(const OSSL_CMP_CTX *ctx); STACK_OF(X509) *OSSL_CMP_CTX_get1_caPubs(const OSSL_CMP_CTX *ctx); @@ -498,10 +602,13 @@ OSSL_CMP_STATUSINFO_new(int status, int fail_info, const char *text); ASN1_OCTET_STRING *OSSL_CMP_HDR_get0_transactionID(const OSSL_CMP_PKIHEADER *hdr); ASN1_OCTET_STRING *OSSL_CMP_HDR_get0_recipNonce(const OSSL_CMP_PKIHEADER *hdr); +STACK_OF(OSSL_CMP_ITAV) + *OSSL_CMP_HDR_get0_geninfo_ITAVs(const OSSL_CMP_PKIHEADER *hdr); /* from cmp_msg.c */ OSSL_CMP_PKIHEADER *OSSL_CMP_MSG_get0_header(const OSSL_CMP_MSG *msg); int OSSL_CMP_MSG_get_bodytype(const OSSL_CMP_MSG *msg); +X509_PUBKEY *OSSL_CMP_MSG_get0_certreq_publickey(const OSSL_CMP_MSG *msg); int OSSL_CMP_MSG_update_transactionID(OSSL_CMP_CTX *ctx, OSSL_CMP_MSG *msg); int OSSL_CMP_MSG_update_recipNonce(OSSL_CMP_CTX *ctx, OSSL_CMP_MSG *msg); OSSL_CRMF_MSG *OSSL_CMP_CTX_setup_CRM(OSSL_CMP_CTX *ctx, int for_KUR, int rid); @@ -517,8 +624,10 @@ int OSSL_CMP_validate_cert_path(const OSSL_CMP_CTX *ctx, X509_STORE *trusted_store, X509 *cert); /* from cmp_http.c */ +# ifndef OPENSSL_NO_HTTP OSSL_CMP_MSG *OSSL_CMP_MSG_http_perform(OSSL_CMP_CTX *ctx, const OSSL_CMP_MSG *req); +# endif /* from cmp_server.c */ typedef struct ossl_cmp_srv_ctx_st OSSL_CMP_SRV_CTX; @@ -561,6 +670,13 @@ int OSSL_CMP_SRV_CTX_init(OSSL_CMP_SRV_CTX *srv_ctx, void *custom_ctx, OSSL_CMP_SRV_error_cb_t process_error, OSSL_CMP_SRV_certConf_cb_t process_certConf, OSSL_CMP_SRV_pollReq_cb_t process_pollReq); +typedef int (*OSSL_CMP_SRV_delayed_delivery_cb_t)(OSSL_CMP_SRV_CTX *srv_ctx, + const OSSL_CMP_MSG *req); +typedef int (*OSSL_CMP_SRV_clean_transaction_cb_t)(OSSL_CMP_SRV_CTX *srv_ctx, + const ASN1_OCTET_STRING *id); +int OSSL_CMP_SRV_CTX_init_trans(OSSL_CMP_SRV_CTX *srv_ctx, + OSSL_CMP_SRV_delayed_delivery_cb_t delay, + OSSL_CMP_SRV_clean_transaction_cb_t clean); OSSL_CMP_CTX *OSSL_CMP_SRV_CTX_get0_cmp_ctx(const OSSL_CMP_SRV_CTX *srv_ctx); void *OSSL_CMP_SRV_CTX_get0_custom_ctx(const OSSL_CMP_SRV_CTX *srv_ctx); int OSSL_CMP_SRV_CTX_set_send_unprotected_errors(OSSL_CMP_SRV_CTX *srv_ctx, @@ -577,6 +693,8 @@ X509 *OSSL_CMP_exec_certreq(OSSL_CMP_CTX *ctx, int req_type, # define OSSL_CMP_CR 2 # define OSSL_CMP_P10CR 4 # define OSSL_CMP_KUR 7 +# define OSSL_CMP_GENM 21 +# define OSSL_CMP_ERROR 23 # define OSSL_CMP_exec_IR_ses(ctx) \ OSSL_CMP_exec_certreq(ctx, OSSL_CMP_IR, NULL) # define OSSL_CMP_exec_CR_ses(ctx) \ @@ -590,6 +708,18 @@ int OSSL_CMP_try_certreq(OSSL_CMP_CTX *ctx, int req_type, int OSSL_CMP_exec_RR_ses(OSSL_CMP_CTX *ctx); STACK_OF(OSSL_CMP_ITAV) *OSSL_CMP_exec_GENM_ses(OSSL_CMP_CTX *ctx); +/* from cmp_genm.c */ +int OSSL_CMP_get1_caCerts(OSSL_CMP_CTX *ctx, STACK_OF(X509) **out); +int OSSL_CMP_get1_rootCaKeyUpdate(OSSL_CMP_CTX *ctx, + const X509 *oldWithOld, X509 **newWithNew, + X509 **newWithOld, X509 **oldWithNew); +int OSSL_CMP_get1_crlUpdate(OSSL_CMP_CTX *ctx, const X509 *crlcert, + const X509_CRL *last_crl, + X509_CRL **crl); +int OSSL_CMP_get1_certReqTemplate(OSSL_CMP_CTX *ctx, + OSSL_CRMF_CERTTEMPLATE **certTemplate, + OSSL_CMP_ATAVS **keySpec); + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/linux-aarch64/asm/include/openssl/cms.h b/deps/openssl/config/archs/linux-aarch64/asm/include/openssl/cms.h index 3b453e6a2187a2..63afab563557b0 100644 --- a/deps/openssl/config/archs/linux-aarch64/asm/include/openssl/cms.h +++ b/deps/openssl/config/archs/linux-aarch64/asm/include/openssl/cms.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/cms.h.in * - * Copyright 2008-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2008-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -31,8 +31,10 @@ extern "C" { # endif +typedef struct CMS_EnvelopedData_st CMS_EnvelopedData; typedef struct CMS_ContentInfo_st CMS_ContentInfo; typedef struct CMS_SignerInfo_st CMS_SignerInfo; +typedef struct CMS_SignedData_st CMS_SignedData; typedef struct CMS_CertificateChoices CMS_CertificateChoices; typedef struct CMS_RevocationInfoChoice_st CMS_RevocationInfoChoice; typedef struct CMS_RecipientInfo_st CMS_RecipientInfo; @@ -147,10 +149,14 @@ SKM_DEFINE_STACK_OF_INTERNAL(CMS_RevocationInfoChoice, CMS_RevocationInfoChoice, #define sk_CMS_RevocationInfoChoice_set_cmp_func(sk, cmp) ((sk_CMS_RevocationInfoChoice_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_CMS_RevocationInfoChoice_sk_type(sk), ossl_check_CMS_RevocationInfoChoice_compfunc_type(cmp))) +DECLARE_ASN1_ITEM(CMS_EnvelopedData) +DECLARE_ASN1_ALLOC_FUNCTIONS(CMS_SignedData) DECLARE_ASN1_FUNCTIONS(CMS_ContentInfo) DECLARE_ASN1_FUNCTIONS(CMS_ReceiptRequest) DECLARE_ASN1_PRINT_FUNCTION(CMS_ContentInfo) +DECLARE_ASN1_DUP_FUNCTION(CMS_EnvelopedData) + CMS_ContentInfo *CMS_ContentInfo_new_ex(OSSL_LIB_CTX *libctx, const char *propq); # define CMS_SIGNERINFO_ISSUER_SERIAL 0 @@ -190,6 +196,7 @@ CMS_ContentInfo *CMS_ContentInfo_new_ex(OSSL_LIB_CTX *libctx, const char *propq) # define CMS_ASCIICRLF 0x80000 # define CMS_CADES 0x100000 # define CMS_USE_ORIGINATOR_KEYID 0x200000 +# define CMS_NO_SIGNING_TIME 0x400000 const ASN1_OBJECT *CMS_get0_type(const CMS_ContentInfo *cms); @@ -217,13 +224,16 @@ int SMIME_write_CMS(BIO *bio, CMS_ContentInfo *cms, BIO *data, int flags); int CMS_final(CMS_ContentInfo *cms, BIO *data, BIO *dcont, unsigned int flags); +int CMS_final_digest(CMS_ContentInfo *cms, + const unsigned char *md, unsigned int mdlen, BIO *dcont, + unsigned int flags); CMS_ContentInfo *CMS_sign(X509 *signcert, EVP_PKEY *pkey, STACK_OF(X509) *certs, BIO *data, unsigned int flags); CMS_ContentInfo *CMS_sign_ex(X509 *signcert, EVP_PKEY *pkey, STACK_OF(X509) *certs, BIO *data, - unsigned int flags, OSSL_LIB_CTX *ctx, + unsigned int flags, OSSL_LIB_CTX *libctx, const char *propq); CMS_ContentInfo *CMS_sign_receipt(CMS_SignerInfo *si, @@ -233,27 +243,26 @@ CMS_ContentInfo *CMS_sign_receipt(CMS_SignerInfo *si, int CMS_data(CMS_ContentInfo *cms, BIO *out, unsigned int flags); CMS_ContentInfo *CMS_data_create(BIO *in, unsigned int flags); CMS_ContentInfo *CMS_data_create_ex(BIO *in, unsigned int flags, - OSSL_LIB_CTX *ctx, const char *propq); + OSSL_LIB_CTX *libctx, const char *propq); int CMS_digest_verify(CMS_ContentInfo *cms, BIO *dcont, BIO *out, unsigned int flags); CMS_ContentInfo *CMS_digest_create(BIO *in, const EVP_MD *md, unsigned int flags); CMS_ContentInfo *CMS_digest_create_ex(BIO *in, const EVP_MD *md, - unsigned int flags, OSSL_LIB_CTX *ctx, + unsigned int flags, OSSL_LIB_CTX *libctx, const char *propq); int CMS_EncryptedData_decrypt(CMS_ContentInfo *cms, const unsigned char *key, size_t keylen, BIO *dcont, BIO *out, unsigned int flags); - CMS_ContentInfo *CMS_EncryptedData_encrypt(BIO *in, const EVP_CIPHER *cipher, const unsigned char *key, size_t keylen, unsigned int flags); CMS_ContentInfo *CMS_EncryptedData_encrypt_ex(BIO *in, const EVP_CIPHER *cipher, const unsigned char *key, size_t keylen, unsigned int flags, - OSSL_LIB_CTX *ctx, + OSSL_LIB_CTX *libctx, const char *propq); int CMS_EncryptedData_set1_key(CMS_ContentInfo *cms, const EVP_CIPHER *ciph, @@ -272,7 +281,7 @@ CMS_ContentInfo *CMS_encrypt(STACK_OF(X509) *certs, BIO *in, const EVP_CIPHER *cipher, unsigned int flags); CMS_ContentInfo *CMS_encrypt_ex(STACK_OF(X509) *certs, BIO *in, const EVP_CIPHER *cipher, unsigned int flags, - OSSL_LIB_CTX *ctx, const char *propq); + OSSL_LIB_CTX *libctx, const char *propq); int CMS_decrypt(CMS_ContentInfo *cms, EVP_PKEY *pkey, X509 *cert, BIO *dcont, BIO *out, unsigned int flags); @@ -291,12 +300,16 @@ int CMS_RecipientInfo_type(CMS_RecipientInfo *ri); EVP_PKEY_CTX *CMS_RecipientInfo_get0_pkey_ctx(CMS_RecipientInfo *ri); CMS_ContentInfo *CMS_AuthEnvelopedData_create(const EVP_CIPHER *cipher); CMS_ContentInfo * -CMS_AuthEnvelopedData_create_ex(const EVP_CIPHER *cipher, OSSL_LIB_CTX *ctx, +CMS_AuthEnvelopedData_create_ex(const EVP_CIPHER *cipher, OSSL_LIB_CTX *libctx, const char *propq); CMS_ContentInfo *CMS_EnvelopedData_create(const EVP_CIPHER *cipher); CMS_ContentInfo *CMS_EnvelopedData_create_ex(const EVP_CIPHER *cipher, - OSSL_LIB_CTX *ctx, + OSSL_LIB_CTX *libctx, const char *propq); +BIO *CMS_EnvelopedData_decrypt(CMS_EnvelopedData *env, BIO *detached_data, + EVP_PKEY *pkey, X509 *cert, + ASN1_OCTET_STRING *secret, unsigned int flags, + OSSL_LIB_CTX *libctx, const char *propq); CMS_RecipientInfo *CMS_add1_recipient_cert(CMS_ContentInfo *cms, X509 *recip, unsigned int flags); @@ -385,6 +398,11 @@ ASN1_OCTET_STRING *CMS_SignerInfo_get0_signature(CMS_SignerInfo *si); int CMS_SignerInfo_sign(CMS_SignerInfo *si); int CMS_SignerInfo_verify(CMS_SignerInfo *si); int CMS_SignerInfo_verify_content(CMS_SignerInfo *si, BIO *chain); +BIO *CMS_SignedData_verify(CMS_SignedData *sd, BIO *detached_data, + STACK_OF(X509) *scerts, X509_STORE *store, + STACK_OF(X509) *extra, STACK_OF(X509_CRL) *crls, + unsigned int flags, + OSSL_LIB_CTX *libctx, const char *propq); int CMS_add_smimecap(CMS_SignerInfo *si, STACK_OF(X509_ALGOR) *algs); int CMS_add_simple_smimecap(STACK_OF(X509_ALGOR) **algs, @@ -441,7 +459,7 @@ CMS_ReceiptRequest *CMS_ReceiptRequest_create0_ex( unsigned char *id, int idlen, int allorfirst, STACK_OF(GENERAL_NAMES) *receiptList, STACK_OF(GENERAL_NAMES) *receiptsTo, - OSSL_LIB_CTX *ctx); + OSSL_LIB_CTX *libctx); int CMS_add1_ReceiptRequest(CMS_SignerInfo *si, CMS_ReceiptRequest *rr); void CMS_ReceiptRequest_get0_values(CMS_ReceiptRequest *rr, diff --git a/deps/openssl/config/archs/linux-aarch64/asm/include/openssl/comp.h b/deps/openssl/config/archs/linux-aarch64/asm/include/openssl/comp.h new file mode 100644 index 00000000000000..90e39511fe8d28 --- /dev/null +++ b/deps/openssl/config/archs/linux-aarch64/asm/include/openssl/comp.h @@ -0,0 +1,98 @@ +/* + * Copyright 2015-2024 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + + +#ifndef OPENSSL_COMP_H +# define OPENSSL_COMP_H +# pragma once + +# include +# ifndef OPENSSL_NO_DEPRECATED_3_0 +# define HEADER_COMP_H +# endif + +# include + +# include +# include +# ifdef __cplusplus +extern "C" { +# endif + + + +# ifndef OPENSSL_NO_COMP + +COMP_CTX *COMP_CTX_new(COMP_METHOD *meth); +const COMP_METHOD *COMP_CTX_get_method(const COMP_CTX *ctx); +int COMP_CTX_get_type(const COMP_CTX* comp); +int COMP_get_type(const COMP_METHOD *meth); +const char *COMP_get_name(const COMP_METHOD *meth); +void COMP_CTX_free(COMP_CTX *ctx); + +int COMP_compress_block(COMP_CTX *ctx, unsigned char *out, int olen, + unsigned char *in, int ilen); +int COMP_expand_block(COMP_CTX *ctx, unsigned char *out, int olen, + unsigned char *in, int ilen); + +COMP_METHOD *COMP_zlib(void); +COMP_METHOD *COMP_zlib_oneshot(void); +COMP_METHOD *COMP_brotli(void); +COMP_METHOD *COMP_brotli_oneshot(void); +COMP_METHOD *COMP_zstd(void); +COMP_METHOD *COMP_zstd_oneshot(void); + +# ifndef OPENSSL_NO_DEPRECATED_1_1_0 +# define COMP_zlib_cleanup() while(0) continue +# endif + +# ifdef OPENSSL_BIO_H +const BIO_METHOD *BIO_f_zlib(void); +const BIO_METHOD *BIO_f_brotli(void); +const BIO_METHOD *BIO_f_zstd(void); +# endif + +# endif + +typedef struct ssl_comp_st SSL_COMP; + +SKM_DEFINE_STACK_OF_INTERNAL(SSL_COMP, SSL_COMP, SSL_COMP) +#define sk_SSL_COMP_num(sk) OPENSSL_sk_num(ossl_check_const_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_value(sk, idx) ((SSL_COMP *)OPENSSL_sk_value(ossl_check_const_SSL_COMP_sk_type(sk), (idx))) +#define sk_SSL_COMP_new(cmp) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new(ossl_check_SSL_COMP_compfunc_type(cmp))) +#define sk_SSL_COMP_new_null() ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new_null()) +#define sk_SSL_COMP_new_reserve(cmp, n) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new_reserve(ossl_check_SSL_COMP_compfunc_type(cmp), (n))) +#define sk_SSL_COMP_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_SSL_COMP_sk_type(sk), (n)) +#define sk_SSL_COMP_free(sk) OPENSSL_sk_free(ossl_check_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_zero(sk) OPENSSL_sk_zero(ossl_check_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_delete(sk, i) ((SSL_COMP *)OPENSSL_sk_delete(ossl_check_SSL_COMP_sk_type(sk), (i))) +#define sk_SSL_COMP_delete_ptr(sk, ptr) ((SSL_COMP *)OPENSSL_sk_delete_ptr(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr))) +#define sk_SSL_COMP_push(sk, ptr) OPENSSL_sk_push(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) +#define sk_SSL_COMP_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) +#define sk_SSL_COMP_pop(sk) ((SSL_COMP *)OPENSSL_sk_pop(ossl_check_SSL_COMP_sk_type(sk))) +#define sk_SSL_COMP_shift(sk) ((SSL_COMP *)OPENSSL_sk_shift(ossl_check_SSL_COMP_sk_type(sk))) +#define sk_SSL_COMP_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_SSL_COMP_sk_type(sk),ossl_check_SSL_COMP_freefunc_type(freefunc)) +#define sk_SSL_COMP_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr), (idx)) +#define sk_SSL_COMP_set(sk, idx, ptr) ((SSL_COMP *)OPENSSL_sk_set(ossl_check_SSL_COMP_sk_type(sk), (idx), ossl_check_SSL_COMP_type(ptr))) +#define sk_SSL_COMP_find(sk, ptr) OPENSSL_sk_find(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) +#define sk_SSL_COMP_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) +#define sk_SSL_COMP_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr), pnum) +#define sk_SSL_COMP_sort(sk) OPENSSL_sk_sort(ossl_check_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_dup(sk) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_dup(ossl_check_const_SSL_COMP_sk_type(sk))) +#define sk_SSL_COMP_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_deep_copy(ossl_check_const_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_copyfunc_type(copyfunc), ossl_check_SSL_COMP_freefunc_type(freefunc))) +#define sk_SSL_COMP_set_cmp_func(sk, cmp) ((sk_SSL_COMP_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_compfunc_type(cmp))) + + + +# ifdef __cplusplus +} +# endif +#endif diff --git a/deps/openssl/config/archs/linux-aarch64/asm/include/openssl/conf.h b/deps/openssl/config/archs/linux-aarch64/asm/include/openssl/conf.h index 44989929f6c84a..38576290bf641b 100644 --- a/deps/openssl/config/archs/linux-aarch64/asm/include/openssl/conf.h +++ b/deps/openssl/config/archs/linux-aarch64/asm/include/openssl/conf.h @@ -27,6 +27,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -65,7 +68,7 @@ SKM_DEFINE_STACK_OF_INTERNAL(CONF_VALUE, CONF_VALUE, CONF_VALUE) #define sk_CONF_VALUE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(CONF_VALUE) *)OPENSSL_sk_deep_copy(ossl_check_const_CONF_VALUE_sk_type(sk), ossl_check_CONF_VALUE_copyfunc_type(copyfunc), ossl_check_CONF_VALUE_freefunc_type(freefunc))) #define sk_CONF_VALUE_set_cmp_func(sk, cmp) ((sk_CONF_VALUE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_CONF_VALUE_sk_type(sk), ossl_check_CONF_VALUE_compfunc_type(cmp))) DEFINE_LHASH_OF_INTERNAL(CONF_VALUE); -#define lh_CONF_VALUE_new(hfn, cmp) ((LHASH_OF(CONF_VALUE) *)OPENSSL_LH_new(ossl_check_CONF_VALUE_lh_hashfunc_type(hfn), ossl_check_CONF_VALUE_lh_compfunc_type(cmp))) +#define lh_CONF_VALUE_new(hfn, cmp) ((LHASH_OF(CONF_VALUE) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new(ossl_check_CONF_VALUE_lh_hashfunc_type(hfn), ossl_check_CONF_VALUE_lh_compfunc_type(cmp)), lh_CONF_VALUE_hash_thunk, lh_CONF_VALUE_comp_thunk, lh_CONF_VALUE_doall_thunk, lh_CONF_VALUE_doall_arg_thunk)) #define lh_CONF_VALUE_free(lh) OPENSSL_LH_free(ossl_check_CONF_VALUE_lh_type(lh)) #define lh_CONF_VALUE_flush(lh) OPENSSL_LH_flush(ossl_check_CONF_VALUE_lh_type(lh)) #define lh_CONF_VALUE_insert(lh, ptr) ((CONF_VALUE *)OPENSSL_LH_insert(ossl_check_CONF_VALUE_lh_type(lh), ossl_check_CONF_VALUE_lh_plain_type(ptr))) diff --git a/deps/openssl/config/archs/linux-aarch64/asm/include/openssl/configuration.h b/deps/openssl/config/archs/linux-aarch64/asm/include/openssl/configuration.h index 7e98fd6393d664..b34c3caf44265e 100644 --- a/deps/openssl/config/archs/linux-aarch64/asm/include/openssl/configuration.h +++ b/deps/openssl/config/archs/linux-aarch64/asm/include/openssl/configuration.h @@ -27,7 +27,7 @@ extern "C" { * OpenSSL was configured with the following options: */ -# define OPENSSL_CONFIGURED_API 30000 +# define OPENSSL_CONFIGURED_API 30500 # ifndef OPENSSL_RAND_SEED_OS # define OPENSSL_RAND_SEED_OS # endif @@ -40,6 +40,12 @@ extern "C" { # ifndef OPENSSL_NO_ASAN # define OPENSSL_NO_ASAN # endif +# ifndef OPENSSL_NO_BROTLI +# define OPENSSL_NO_BROTLI +# endif +# ifndef OPENSSL_NO_BROTLI_DYNAMIC +# define OPENSSL_NO_BROTLI_DYNAMIC +# endif # ifndef OPENSSL_NO_COMP # define OPENSSL_NO_COMP # endif @@ -49,6 +55,9 @@ extern "C" { # ifndef OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE # define OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE # endif +# ifndef OPENSSL_NO_DEMOS +# define OPENSSL_NO_DEMOS +# endif # ifndef OPENSSL_NO_DEVCRYPTOENG # define OPENSSL_NO_DEVCRYPTOENG # endif @@ -61,12 +70,24 @@ extern "C" { # ifndef OPENSSL_NO_EXTERNAL_TESTS # define OPENSSL_NO_EXTERNAL_TESTS # endif +# ifndef OPENSSL_NO_FIPS_JITTER +# define OPENSSL_NO_FIPS_JITTER +# endif # ifndef OPENSSL_NO_FUZZ_AFL # define OPENSSL_NO_FUZZ_AFL # endif # ifndef OPENSSL_NO_FUZZ_LIBFUZZER # define OPENSSL_NO_FUZZ_LIBFUZZER # endif +# ifndef OPENSSL_NO_H3DEMO +# define OPENSSL_NO_H3DEMO +# endif +# ifndef OPENSSL_NO_HQINTEROP +# define OPENSSL_NO_HQINTEROP +# endif +# ifndef OPENSSL_NO_JITTER +# define OPENSSL_NO_JITTER +# endif # ifndef OPENSSL_NO_KTLS # define OPENSSL_NO_KTLS # endif @@ -79,6 +100,9 @@ extern "C" { # ifndef OPENSSL_NO_MSAN # define OPENSSL_NO_MSAN # endif +# ifndef OPENSSL_NO_PIE +# define OPENSSL_NO_PIE +# endif # ifndef OPENSSL_NO_RC5 # define OPENSSL_NO_RC5 # endif @@ -91,6 +115,12 @@ extern "C" { # ifndef OPENSSL_NO_SSL3_METHOD # define OPENSSL_NO_SSL3_METHOD # endif +# ifndef OPENSSL_NO_SSLKEYLOG +# define OPENSSL_NO_SSLKEYLOG +# endif +# ifndef OPENSSL_NO_TFO +# define OPENSSL_NO_TFO +# endif # ifndef OPENSSL_NO_TRACE # define OPENSSL_NO_TRACE # endif @@ -106,6 +136,21 @@ extern "C" { # ifndef OPENSSL_NO_WEAK_SSL_CIPHERS # define OPENSSL_NO_WEAK_SSL_CIPHERS # endif +# ifndef OPENSSL_NO_WINSTORE +# define OPENSSL_NO_WINSTORE +# endif +# ifndef OPENSSL_NO_ZLIB +# define OPENSSL_NO_ZLIB +# endif +# ifndef OPENSSL_NO_ZLIB_DYNAMIC +# define OPENSSL_NO_ZLIB_DYNAMIC +# endif +# ifndef OPENSSL_NO_ZSTD +# define OPENSSL_NO_ZSTD +# endif +# ifndef OPENSSL_NO_ZSTD_DYNAMIC +# define OPENSSL_NO_ZSTD_DYNAMIC +# endif # ifndef OPENSSL_NO_DYNAMIC_ENGINE # define OPENSSL_NO_DYNAMIC_ENGINE # endif @@ -127,6 +172,12 @@ extern "C" { # define RC4_INT unsigned char +# if defined(OPENSSL_NO_COMP) || (defined(OPENSSL_NO_BROTLI) && defined(OPENSSL_NO_ZSTD) && defined(OPENSSL_NO_ZLIB)) +# define OPENSSL_NO_COMP_ALG +# else +# undef OPENSSL_NO_COMP_ALG +# endif + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/linux-aarch64/asm/include/openssl/core_names.h b/deps/openssl/config/archs/linux-aarch64/asm/include/openssl/core_names.h new file mode 100644 index 00000000000000..e93e79a52bc910 --- /dev/null +++ b/deps/openssl/config/archs/linux-aarch64/asm/include/openssl/core_names.h @@ -0,0 +1,575 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from include/openssl/core_names.h.in + * + * Copyright 2019-2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + +#ifndef OPENSSL_CORE_NAMES_H +# define OPENSSL_CORE_NAMES_H +# pragma once + +# ifdef __cplusplus +extern "C" { +# endif + +/* OSSL_CIPHER_PARAM_CTS_MODE Values */ +# define OSSL_CIPHER_CTS_MODE_CS1 "CS1" +# define OSSL_CIPHER_CTS_MODE_CS2 "CS2" +# define OSSL_CIPHER_CTS_MODE_CS3 "CS3" + +/* Known CIPHER names (not a complete list) */ +# define OSSL_CIPHER_NAME_AES_128_GCM_SIV "AES-128-GCM-SIV" +# define OSSL_CIPHER_NAME_AES_192_GCM_SIV "AES-192-GCM-SIV" +# define OSSL_CIPHER_NAME_AES_256_GCM_SIV "AES-256-GCM-SIV" + +/* Known DIGEST names (not a complete list) */ +# define OSSL_DIGEST_NAME_MD5 "MD5" +# define OSSL_DIGEST_NAME_MD5_SHA1 "MD5-SHA1" +# define OSSL_DIGEST_NAME_SHA1 "SHA1" +# define OSSL_DIGEST_NAME_SHA2_224 "SHA2-224" +# define OSSL_DIGEST_NAME_SHA2_256 "SHA2-256" +# define OSSL_DIGEST_NAME_SHA2_256_192 "SHA2-256/192" +# define OSSL_DIGEST_NAME_SHA2_384 "SHA2-384" +# define OSSL_DIGEST_NAME_SHA2_512 "SHA2-512" +# define OSSL_DIGEST_NAME_SHA2_512_224 "SHA2-512/224" +# define OSSL_DIGEST_NAME_SHA2_512_256 "SHA2-512/256" +# define OSSL_DIGEST_NAME_MD2 "MD2" +# define OSSL_DIGEST_NAME_MD4 "MD4" +# define OSSL_DIGEST_NAME_MDC2 "MDC2" +# define OSSL_DIGEST_NAME_RIPEMD160 "RIPEMD160" +# define OSSL_DIGEST_NAME_SHA3_224 "SHA3-224" +# define OSSL_DIGEST_NAME_SHA3_256 "SHA3-256" +# define OSSL_DIGEST_NAME_SHA3_384 "SHA3-384" +# define OSSL_DIGEST_NAME_SHA3_512 "SHA3-512" +# define OSSL_DIGEST_NAME_KECCAK_KMAC128 "KECCAK-KMAC-128" +# define OSSL_DIGEST_NAME_KECCAK_KMAC256 "KECCAK-KMAC-256" +# define OSSL_DIGEST_NAME_SM3 "SM3" + +/* Known MAC names */ +# define OSSL_MAC_NAME_BLAKE2BMAC "BLAKE2BMAC" +# define OSSL_MAC_NAME_BLAKE2SMAC "BLAKE2SMAC" +# define OSSL_MAC_NAME_CMAC "CMAC" +# define OSSL_MAC_NAME_GMAC "GMAC" +# define OSSL_MAC_NAME_HMAC "HMAC" +# define OSSL_MAC_NAME_KMAC128 "KMAC128" +# define OSSL_MAC_NAME_KMAC256 "KMAC256" +# define OSSL_MAC_NAME_POLY1305 "POLY1305" +# define OSSL_MAC_NAME_SIPHASH "SIPHASH" + +/* Known KDF names */ +# define OSSL_KDF_NAME_HKDF "HKDF" +# define OSSL_KDF_NAME_TLS1_3_KDF "TLS13-KDF" +# define OSSL_KDF_NAME_PBKDF1 "PBKDF1" +# define OSSL_KDF_NAME_PBKDF2 "PBKDF2" +# define OSSL_KDF_NAME_SCRYPT "SCRYPT" +# define OSSL_KDF_NAME_SSHKDF "SSHKDF" +# define OSSL_KDF_NAME_SSKDF "SSKDF" +# define OSSL_KDF_NAME_TLS1_PRF "TLS1-PRF" +# define OSSL_KDF_NAME_X942KDF_ASN1 "X942KDF-ASN1" +# define OSSL_KDF_NAME_X942KDF_CONCAT "X942KDF-CONCAT" +# define OSSL_KDF_NAME_X963KDF "X963KDF" +# define OSSL_KDF_NAME_KBKDF "KBKDF" +# define OSSL_KDF_NAME_KRB5KDF "KRB5KDF" +# define OSSL_KDF_NAME_HMACDRBGKDF "HMAC-DRBG-KDF" + +/* RSA padding modes */ +# define OSSL_PKEY_RSA_PAD_MODE_NONE "none" +# define OSSL_PKEY_RSA_PAD_MODE_PKCSV15 "pkcs1" +# define OSSL_PKEY_RSA_PAD_MODE_OAEP "oaep" +# define OSSL_PKEY_RSA_PAD_MODE_X931 "x931" +# define OSSL_PKEY_RSA_PAD_MODE_PSS "pss" + +/* RSA pss padding salt length */ +# define OSSL_PKEY_RSA_PSS_SALT_LEN_DIGEST "digest" +# define OSSL_PKEY_RSA_PSS_SALT_LEN_MAX "max" +# define OSSL_PKEY_RSA_PSS_SALT_LEN_AUTO "auto" +# define OSSL_PKEY_RSA_PSS_SALT_LEN_AUTO_DIGEST_MAX "auto-digestmax" + +/* OSSL_PKEY_PARAM_EC_ENCODING values */ +# define OSSL_PKEY_EC_ENCODING_EXPLICIT "explicit" +# define OSSL_PKEY_EC_ENCODING_GROUP "named_curve" + +# define OSSL_PKEY_EC_POINT_CONVERSION_FORMAT_UNCOMPRESSED "uncompressed" +# define OSSL_PKEY_EC_POINT_CONVERSION_FORMAT_COMPRESSED "compressed" +# define OSSL_PKEY_EC_POINT_CONVERSION_FORMAT_HYBRID "hybrid" + +# define OSSL_PKEY_EC_GROUP_CHECK_DEFAULT "default" +# define OSSL_PKEY_EC_GROUP_CHECK_NAMED "named" +# define OSSL_PKEY_EC_GROUP_CHECK_NAMED_NIST "named-nist" + +/* PROV_SKEY well known key types */ +# define OSSL_SKEY_TYPE_GENERIC "GENERIC-SECRET" +# define OSSL_SKEY_TYPE_AES "AES" + +/* OSSL_KEM_PARAM_OPERATION values */ +#define OSSL_KEM_PARAM_OPERATION_RSASVE "RSASVE" +#define OSSL_KEM_PARAM_OPERATION_DHKEM "DHKEM" + +/* Provider configuration variables */ +#define OSSL_PKEY_RETAIN_SEED "pkey_retain_seed" + +/* Parameter name definitions - generated by util/perl/OpenSSL/paramnames.pm */ +# define OSSL_ALG_PARAM_ALGORITHM_ID "algorithm-id" +# define OSSL_ALG_PARAM_ALGORITHM_ID_PARAMS "algorithm-id-params" +# define OSSL_ALG_PARAM_CIPHER "cipher" +# define OSSL_ALG_PARAM_DIGEST "digest" +# define OSSL_ALG_PARAM_ENGINE "engine" +# define OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR "fips-indicator" +# define OSSL_ALG_PARAM_MAC "mac" +# define OSSL_ALG_PARAM_PROPERTIES "properties" +# define OSSL_ASYM_CIPHER_PARAM_DIGEST OSSL_PKEY_PARAM_DIGEST +# define OSSL_ASYM_CIPHER_PARAM_ENGINE OSSL_PKEY_PARAM_ENGINE +# define OSSL_ASYM_CIPHER_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_ASYM_CIPHER_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_ASYM_CIPHER_PARAM_FIPS_RSA_PKCS15_PAD_DISABLED OSSL_PROV_PARAM_RSA_PKCS15_PAD_DISABLED +# define OSSL_ASYM_CIPHER_PARAM_IMPLICIT_REJECTION "implicit-rejection" +# define OSSL_ASYM_CIPHER_PARAM_MGF1_DIGEST OSSL_PKEY_PARAM_MGF1_DIGEST +# define OSSL_ASYM_CIPHER_PARAM_MGF1_DIGEST_PROPS OSSL_PKEY_PARAM_MGF1_PROPERTIES +# define OSSL_ASYM_CIPHER_PARAM_OAEP_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_ASYM_CIPHER_PARAM_OAEP_DIGEST_PROPS "digest-props" +# define OSSL_ASYM_CIPHER_PARAM_OAEP_LABEL "oaep-label" +# define OSSL_ASYM_CIPHER_PARAM_PAD_MODE OSSL_PKEY_PARAM_PAD_MODE +# define OSSL_ASYM_CIPHER_PARAM_PROPERTIES OSSL_PKEY_PARAM_PROPERTIES +# define OSSL_ASYM_CIPHER_PARAM_TLS_CLIENT_VERSION "tls-client-version" +# define OSSL_ASYM_CIPHER_PARAM_TLS_NEGOTIATED_VERSION "tls-negotiated-version" +# define OSSL_CAPABILITY_TLS_GROUP_ALG "tls-group-alg" +# define OSSL_CAPABILITY_TLS_GROUP_ID "tls-group-id" +# define OSSL_CAPABILITY_TLS_GROUP_IS_KEM "tls-group-is-kem" +# define OSSL_CAPABILITY_TLS_GROUP_MAX_DTLS "tls-max-dtls" +# define OSSL_CAPABILITY_TLS_GROUP_MAX_TLS "tls-max-tls" +# define OSSL_CAPABILITY_TLS_GROUP_MIN_DTLS "tls-min-dtls" +# define OSSL_CAPABILITY_TLS_GROUP_MIN_TLS "tls-min-tls" +# define OSSL_CAPABILITY_TLS_GROUP_NAME "tls-group-name" +# define OSSL_CAPABILITY_TLS_GROUP_NAME_INTERNAL "tls-group-name-internal" +# define OSSL_CAPABILITY_TLS_GROUP_SECURITY_BITS "tls-group-sec-bits" +# define OSSL_CAPABILITY_TLS_SIGALG_CODE_POINT "tls-sigalg-code-point" +# define OSSL_CAPABILITY_TLS_SIGALG_HASH_NAME "tls-sigalg-hash-name" +# define OSSL_CAPABILITY_TLS_SIGALG_HASH_OID "tls-sigalg-hash-oid" +# define OSSL_CAPABILITY_TLS_SIGALG_IANA_NAME "tls-sigalg-iana-name" +# define OSSL_CAPABILITY_TLS_SIGALG_KEYTYPE "tls-sigalg-keytype" +# define OSSL_CAPABILITY_TLS_SIGALG_KEYTYPE_OID "tls-sigalg-keytype-oid" +# define OSSL_CAPABILITY_TLS_SIGALG_MAX_DTLS "tls-max-dtls" +# define OSSL_CAPABILITY_TLS_SIGALG_MAX_TLS "tls-max-tls" +# define OSSL_CAPABILITY_TLS_SIGALG_MIN_DTLS "tls-min-dtls" +# define OSSL_CAPABILITY_TLS_SIGALG_MIN_TLS "tls-min-tls" +# define OSSL_CAPABILITY_TLS_SIGALG_NAME "tls-sigalg-name" +# define OSSL_CAPABILITY_TLS_SIGALG_OID "tls-sigalg-oid" +# define OSSL_CAPABILITY_TLS_SIGALG_SECURITY_BITS "tls-sigalg-sec-bits" +# define OSSL_CAPABILITY_TLS_SIGALG_SIG_NAME "tls-sigalg-sig-name" +# define OSSL_CAPABILITY_TLS_SIGALG_SIG_OID "tls-sigalg-sig-oid" +# define OSSL_CIPHER_PARAM_AEAD "aead" +# define OSSL_CIPHER_PARAM_AEAD_IVLEN OSSL_CIPHER_PARAM_IVLEN +# define OSSL_CIPHER_PARAM_AEAD_IV_GENERATED "iv-generated" +# define OSSL_CIPHER_PARAM_AEAD_MAC_KEY "mackey" +# define OSSL_CIPHER_PARAM_AEAD_TAG "tag" +# define OSSL_CIPHER_PARAM_AEAD_TAGLEN "taglen" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_AAD "tlsaad" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_AAD_PAD "tlsaadpad" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_GET_IV_GEN "tlsivgen" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_IV_FIXED "tlsivfixed" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_SET_IV_INV "tlsivinv" +# define OSSL_CIPHER_PARAM_ALGORITHM_ID OSSL_ALG_PARAM_ALGORITHM_ID +# define OSSL_CIPHER_PARAM_ALGORITHM_ID_PARAMS OSSL_ALG_PARAM_ALGORITHM_ID_PARAMS +# define OSSL_CIPHER_PARAM_ALGORITHM_ID_PARAMS_OLD "alg_id_param" +# define OSSL_CIPHER_PARAM_BLOCK_SIZE "blocksize" +# define OSSL_CIPHER_PARAM_CTS "cts" +# define OSSL_CIPHER_PARAM_CTS_MODE "cts_mode" +# define OSSL_CIPHER_PARAM_CUSTOM_IV "custom-iv" +# define OSSL_CIPHER_PARAM_DECRYPT_ONLY "decrypt-only" +# define OSSL_CIPHER_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_CIPHER_PARAM_FIPS_ENCRYPT_CHECK "encrypt-check" +# define OSSL_CIPHER_PARAM_HAS_RAND_KEY "has-randkey" +# define OSSL_CIPHER_PARAM_IV "iv" +# define OSSL_CIPHER_PARAM_IVLEN "ivlen" +# define OSSL_CIPHER_PARAM_KEYLEN "keylen" +# define OSSL_CIPHER_PARAM_MODE "mode" +# define OSSL_CIPHER_PARAM_NUM "num" +# define OSSL_CIPHER_PARAM_PADDING "padding" +# define OSSL_CIPHER_PARAM_PIPELINE_AEAD_TAG "pipeline-tag" +# define OSSL_CIPHER_PARAM_RANDOM_KEY "randkey" +# define OSSL_CIPHER_PARAM_RC2_KEYBITS "keybits" +# define OSSL_CIPHER_PARAM_ROUNDS "rounds" +# define OSSL_CIPHER_PARAM_SPEED "speed" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK "tls-multi" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD "tls1multi_aad" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD_PACKLEN "tls1multi_aadpacklen" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC "tls1multi_enc" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_IN "tls1multi_encin" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_LEN "tls1multi_enclen" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_INTERLEAVE "tls1multi_interleave" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_BUFSIZE "tls1multi_maxbufsz" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_SEND_FRAGMENT "tls1multi_maxsndfrag" +# define OSSL_CIPHER_PARAM_TLS_MAC "tls-mac" +# define OSSL_CIPHER_PARAM_TLS_MAC_SIZE "tls-mac-size" +# define OSSL_CIPHER_PARAM_TLS_VERSION "tls-version" +# define OSSL_CIPHER_PARAM_UPDATED_IV "updated-iv" +# define OSSL_CIPHER_PARAM_USE_BITS "use-bits" +# define OSSL_CIPHER_PARAM_XTS_STANDARD "xts_standard" +# define OSSL_DECODER_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_DIGEST_PARAM_ALGID_ABSENT "algid-absent" +# define OSSL_DIGEST_PARAM_BLOCK_SIZE "blocksize" +# define OSSL_DIGEST_PARAM_MICALG "micalg" +# define OSSL_DIGEST_PARAM_PAD_TYPE "pad-type" +# define OSSL_DIGEST_PARAM_SIZE "size" +# define OSSL_DIGEST_PARAM_SSL3_MS "ssl3-ms" +# define OSSL_DIGEST_PARAM_XOF "xof" +# define OSSL_DIGEST_PARAM_XOFLEN "xoflen" +# define OSSL_DRBG_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_DRBG_PARAM_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_DRBG_PARAM_ENTROPY_REQUIRED "entropy_required" +# define OSSL_DRBG_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_DRBG_PARAM_FIPS_DIGEST_CHECK OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK +# define OSSL_DRBG_PARAM_MAC OSSL_ALG_PARAM_MAC +# define OSSL_DRBG_PARAM_MAX_ADINLEN "max_adinlen" +# define OSSL_DRBG_PARAM_MAX_ENTROPYLEN "max_entropylen" +# define OSSL_DRBG_PARAM_MAX_LENGTH "maxium_length" +# define OSSL_DRBG_PARAM_MAX_NONCELEN "max_noncelen" +# define OSSL_DRBG_PARAM_MAX_PERSLEN "max_perslen" +# define OSSL_DRBG_PARAM_MIN_ENTROPYLEN "min_entropylen" +# define OSSL_DRBG_PARAM_MIN_LENGTH "minium_length" +# define OSSL_DRBG_PARAM_MIN_NONCELEN "min_noncelen" +# define OSSL_DRBG_PARAM_PREDICTION_RESISTANCE "prediction_resistance" +# define OSSL_DRBG_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_DRBG_PARAM_RANDOM_DATA "random_data" +# define OSSL_DRBG_PARAM_RESEED_COUNTER "reseed_counter" +# define OSSL_DRBG_PARAM_RESEED_REQUESTS "reseed_requests" +# define OSSL_DRBG_PARAM_RESEED_TIME "reseed_time" +# define OSSL_DRBG_PARAM_RESEED_TIME_INTERVAL "reseed_time_interval" +# define OSSL_DRBG_PARAM_SIZE "size" +# define OSSL_DRBG_PARAM_USE_DF "use_derivation_function" +# define OSSL_ENCODER_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_ENCODER_PARAM_ENCRYPT_LEVEL "encrypt-level" +# define OSSL_ENCODER_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_ENCODER_PARAM_SAVE_PARAMETERS "save-parameters" +# define OSSL_EXCHANGE_PARAM_EC_ECDH_COFACTOR_MODE "ecdh-cofactor-mode" +# define OSSL_EXCHANGE_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_EXCHANGE_PARAM_FIPS_DIGEST_CHECK OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK +# define OSSL_EXCHANGE_PARAM_FIPS_ECDH_COFACTOR_CHECK OSSL_PROV_PARAM_ECDH_COFACTOR_CHECK +# define OSSL_EXCHANGE_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_EXCHANGE_PARAM_KDF_DIGEST "kdf-digest" +# define OSSL_EXCHANGE_PARAM_KDF_DIGEST_PROPS "kdf-digest-props" +# define OSSL_EXCHANGE_PARAM_KDF_OUTLEN "kdf-outlen" +# define OSSL_EXCHANGE_PARAM_KDF_TYPE "kdf-type" +# define OSSL_EXCHANGE_PARAM_KDF_UKM "kdf-ukm" +# define OSSL_EXCHANGE_PARAM_PAD "pad" +# define OSSL_GEN_PARAM_ITERATION "iteration" +# define OSSL_GEN_PARAM_POTENTIAL "potential" +# define OSSL_KDF_PARAM_ARGON2_AD "ad" +# define OSSL_KDF_PARAM_ARGON2_LANES "lanes" +# define OSSL_KDF_PARAM_ARGON2_MEMCOST "memcost" +# define OSSL_KDF_PARAM_ARGON2_VERSION "version" +# define OSSL_KDF_PARAM_CEK_ALG "cekalg" +# define OSSL_KDF_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_KDF_PARAM_CONSTANT "constant" +# define OSSL_KDF_PARAM_DATA "data" +# define OSSL_KDF_PARAM_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_KDF_PARAM_EARLY_CLEAN "early_clean" +# define OSSL_KDF_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_KDF_PARAM_FIPS_DIGEST_CHECK OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK +# define OSSL_KDF_PARAM_FIPS_EMS_CHECK "ems_check" +# define OSSL_KDF_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_KDF_PARAM_HMACDRBG_ENTROPY "entropy" +# define OSSL_KDF_PARAM_HMACDRBG_NONCE "nonce" +# define OSSL_KDF_PARAM_INFO "info" +# define OSSL_KDF_PARAM_ITER "iter" +# define OSSL_KDF_PARAM_KBKDF_R "r" +# define OSSL_KDF_PARAM_KBKDF_USE_L "use-l" +# define OSSL_KDF_PARAM_KBKDF_USE_SEPARATOR "use-separator" +# define OSSL_KDF_PARAM_KEY "key" +# define OSSL_KDF_PARAM_LABEL "label" +# define OSSL_KDF_PARAM_MAC OSSL_ALG_PARAM_MAC +# define OSSL_KDF_PARAM_MAC_SIZE "maclen" +# define OSSL_KDF_PARAM_MODE "mode" +# define OSSL_KDF_PARAM_PASSWORD "pass" +# define OSSL_KDF_PARAM_PKCS12_ID "id" +# define OSSL_KDF_PARAM_PKCS5 "pkcs5" +# define OSSL_KDF_PARAM_PREFIX "prefix" +# define OSSL_KDF_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_KDF_PARAM_SALT "salt" +# define OSSL_KDF_PARAM_SCRYPT_MAXMEM "maxmem_bytes" +# define OSSL_KDF_PARAM_SCRYPT_N "n" +# define OSSL_KDF_PARAM_SCRYPT_P "p" +# define OSSL_KDF_PARAM_SCRYPT_R "r" +# define OSSL_KDF_PARAM_SECRET "secret" +# define OSSL_KDF_PARAM_SEED "seed" +# define OSSL_KDF_PARAM_SIZE "size" +# define OSSL_KDF_PARAM_SSHKDF_SESSION_ID "session_id" +# define OSSL_KDF_PARAM_SSHKDF_TYPE "type" +# define OSSL_KDF_PARAM_SSHKDF_XCGHASH "xcghash" +# define OSSL_KDF_PARAM_THREADS "threads" +# define OSSL_KDF_PARAM_UKM "ukm" +# define OSSL_KDF_PARAM_X942_ACVPINFO "acvp-info" +# define OSSL_KDF_PARAM_X942_PARTYUINFO "partyu-info" +# define OSSL_KDF_PARAM_X942_PARTYVINFO "partyv-info" +# define OSSL_KDF_PARAM_X942_SUPP_PRIVINFO "supp-privinfo" +# define OSSL_KDF_PARAM_X942_SUPP_PUBINFO "supp-pubinfo" +# define OSSL_KDF_PARAM_X942_USE_KEYBITS "use-keybits" +# define OSSL_KEM_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_KEM_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_KEM_PARAM_IKME "ikme" +# define OSSL_KEM_PARAM_OPERATION "operation" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_BLOCK_PADDING "block_padding" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_HS_PADDING "hs_padding" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_MAX_EARLY_DATA "max_early_data" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_MAX_FRAG_LEN "max_frag_len" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_MODE "mode" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_OPTIONS "options" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_READ_AHEAD "read_ahead" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_STREAM_MAC "stream_mac" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_TLSTREE "tlstree" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_USE_ETM "use_etm" +# define OSSL_LIBSSL_RECORD_LAYER_READ_BUFFER_LEN "read_buffer_len" +# define OSSL_MAC_PARAM_BLOCK_SIZE "block-size" +# define OSSL_MAC_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_MAC_PARAM_CUSTOM "custom" +# define OSSL_MAC_PARAM_C_ROUNDS "c-rounds" +# define OSSL_MAC_PARAM_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_MAC_PARAM_DIGEST_NOINIT "digest-noinit" +# define OSSL_MAC_PARAM_DIGEST_ONESHOT "digest-oneshot" +# define OSSL_MAC_PARAM_D_ROUNDS "d-rounds" +# define OSSL_MAC_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_MAC_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_MAC_PARAM_FIPS_NO_SHORT_MAC OSSL_PROV_PARAM_NO_SHORT_MAC +# define OSSL_MAC_PARAM_IV "iv" +# define OSSL_MAC_PARAM_KEY "key" +# define OSSL_MAC_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_MAC_PARAM_SALT "salt" +# define OSSL_MAC_PARAM_SIZE "size" +# define OSSL_MAC_PARAM_TLS_DATA_SIZE "tls-data-size" +# define OSSL_MAC_PARAM_XOF "xof" +# define OSSL_OBJECT_PARAM_DATA "data" +# define OSSL_OBJECT_PARAM_DATA_STRUCTURE "data-structure" +# define OSSL_OBJECT_PARAM_DATA_TYPE "data-type" +# define OSSL_OBJECT_PARAM_DESC "desc" +# define OSSL_OBJECT_PARAM_INPUT_TYPE "input-type" +# define OSSL_OBJECT_PARAM_REFERENCE "reference" +# define OSSL_OBJECT_PARAM_TYPE "type" +# define OSSL_PASSPHRASE_PARAM_INFO "info" +# define OSSL_PKEY_PARAM_ALGORITHM_ID OSSL_ALG_PARAM_ALGORITHM_ID +# define OSSL_PKEY_PARAM_ALGORITHM_ID_PARAMS OSSL_ALG_PARAM_ALGORITHM_ID_PARAMS +# define OSSL_PKEY_PARAM_BITS "bits" +# define OSSL_PKEY_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_PKEY_PARAM_DEFAULT_DIGEST "default-digest" +# define OSSL_PKEY_PARAM_DHKEM_IKM "dhkem-ikm" +# define OSSL_PKEY_PARAM_DH_GENERATOR "safeprime-generator" +# define OSSL_PKEY_PARAM_DH_PRIV_LEN "priv_len" +# define OSSL_PKEY_PARAM_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_PKEY_PARAM_DIGEST_SIZE "digest-size" +# define OSSL_PKEY_PARAM_DIST_ID "distid" +# define OSSL_PKEY_PARAM_EC_A "a" +# define OSSL_PKEY_PARAM_EC_B "b" +# define OSSL_PKEY_PARAM_EC_CHAR2_M "m" +# define OSSL_PKEY_PARAM_EC_CHAR2_PP_K1 "k1" +# define OSSL_PKEY_PARAM_EC_CHAR2_PP_K2 "k2" +# define OSSL_PKEY_PARAM_EC_CHAR2_PP_K3 "k3" +# define OSSL_PKEY_PARAM_EC_CHAR2_TP_BASIS "tp" +# define OSSL_PKEY_PARAM_EC_CHAR2_TYPE "basis-type" +# define OSSL_PKEY_PARAM_EC_COFACTOR "cofactor" +# define OSSL_PKEY_PARAM_EC_DECODED_FROM_EXPLICIT_PARAMS "decoded-from-explicit" +# define OSSL_PKEY_PARAM_EC_ENCODING "encoding" +# define OSSL_PKEY_PARAM_EC_FIELD_TYPE "field-type" +# define OSSL_PKEY_PARAM_EC_GENERATOR "generator" +# define OSSL_PKEY_PARAM_EC_GROUP_CHECK_TYPE "group-check" +# define OSSL_PKEY_PARAM_EC_INCLUDE_PUBLIC "include-public" +# define OSSL_PKEY_PARAM_EC_ORDER "order" +# define OSSL_PKEY_PARAM_EC_P "p" +# define OSSL_PKEY_PARAM_EC_POINT_CONVERSION_FORMAT "point-format" +# define OSSL_PKEY_PARAM_EC_PUB_X "qx" +# define OSSL_PKEY_PARAM_EC_PUB_Y "qy" +# define OSSL_PKEY_PARAM_EC_SEED "seed" +# define OSSL_PKEY_PARAM_ENCODED_PUBLIC_KEY "encoded-pub-key" +# define OSSL_PKEY_PARAM_ENGINE OSSL_ALG_PARAM_ENGINE +# define OSSL_PKEY_PARAM_FFC_COFACTOR "j" +# define OSSL_PKEY_PARAM_FFC_DIGEST OSSL_PKEY_PARAM_DIGEST +# define OSSL_PKEY_PARAM_FFC_DIGEST_PROPS OSSL_PKEY_PARAM_PROPERTIES +# define OSSL_PKEY_PARAM_FFC_G "g" +# define OSSL_PKEY_PARAM_FFC_GINDEX "gindex" +# define OSSL_PKEY_PARAM_FFC_H "hindex" +# define OSSL_PKEY_PARAM_FFC_P "p" +# define OSSL_PKEY_PARAM_FFC_PBITS "pbits" +# define OSSL_PKEY_PARAM_FFC_PCOUNTER "pcounter" +# define OSSL_PKEY_PARAM_FFC_Q "q" +# define OSSL_PKEY_PARAM_FFC_QBITS "qbits" +# define OSSL_PKEY_PARAM_FFC_SEED "seed" +# define OSSL_PKEY_PARAM_FFC_TYPE "type" +# define OSSL_PKEY_PARAM_FFC_VALIDATE_G "validate-g" +# define OSSL_PKEY_PARAM_FFC_VALIDATE_LEGACY "validate-legacy" +# define OSSL_PKEY_PARAM_FFC_VALIDATE_PQ "validate-pq" +# define OSSL_PKEY_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK "digest-check" +# define OSSL_PKEY_PARAM_FIPS_KEY_CHECK "key-check" +# define OSSL_PKEY_PARAM_FIPS_SIGN_CHECK "sign-check" +# define OSSL_PKEY_PARAM_GROUP_NAME "group" +# define OSSL_PKEY_PARAM_IMPLICIT_REJECTION "implicit-rejection" +# define OSSL_PKEY_PARAM_MANDATORY_DIGEST "mandatory-digest" +# define OSSL_PKEY_PARAM_MASKGENFUNC "mgf" +# define OSSL_PKEY_PARAM_MAX_SIZE "max-size" +# define OSSL_PKEY_PARAM_MGF1_DIGEST "mgf1-digest" +# define OSSL_PKEY_PARAM_MGF1_PROPERTIES "mgf1-properties" +# define OSSL_PKEY_PARAM_ML_DSA_INPUT_FORMATS "ml-dsa.input_formats" +# define OSSL_PKEY_PARAM_ML_DSA_OUTPUT_FORMATS "ml-dsa.output_formats" +# define OSSL_PKEY_PARAM_ML_DSA_PREFER_SEED "ml-dsa.prefer_seed" +# define OSSL_PKEY_PARAM_ML_DSA_RETAIN_SEED "ml-dsa.retain_seed" +# define OSSL_PKEY_PARAM_ML_DSA_SEED "seed" +# define OSSL_PKEY_PARAM_ML_KEM_IMPORT_PCT_TYPE "ml-kem.import_pct_type" +# define OSSL_PKEY_PARAM_ML_KEM_INPUT_FORMATS "ml-kem.input_formats" +# define OSSL_PKEY_PARAM_ML_KEM_OUTPUT_FORMATS "ml-kem.output_formats" +# define OSSL_PKEY_PARAM_ML_KEM_PREFER_SEED "ml-kem.prefer_seed" +# define OSSL_PKEY_PARAM_ML_KEM_RETAIN_SEED "ml-kem.retain_seed" +# define OSSL_PKEY_PARAM_ML_KEM_SEED "seed" +# define OSSL_PKEY_PARAM_PAD_MODE "pad-mode" +# define OSSL_PKEY_PARAM_PRIV_KEY "priv" +# define OSSL_PKEY_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_PKEY_PARAM_PUB_KEY "pub" +# define OSSL_PKEY_PARAM_RSA_BITS OSSL_PKEY_PARAM_BITS +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT "rsa-coefficient" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT1 "rsa-coefficient1" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT2 "rsa-coefficient2" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT3 "rsa-coefficient3" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT4 "rsa-coefficient4" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT5 "rsa-coefficient5" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT6 "rsa-coefficient6" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT7 "rsa-coefficient7" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT8 "rsa-coefficient8" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT9 "rsa-coefficient9" +# define OSSL_PKEY_PARAM_RSA_D "d" +# define OSSL_PKEY_PARAM_RSA_DERIVE_FROM_PQ "rsa-derive-from-pq" +# define OSSL_PKEY_PARAM_RSA_DIGEST OSSL_PKEY_PARAM_DIGEST +# define OSSL_PKEY_PARAM_RSA_DIGEST_PROPS OSSL_PKEY_PARAM_PROPERTIES +# define OSSL_PKEY_PARAM_RSA_E "e" +# define OSSL_PKEY_PARAM_RSA_EXPONENT "rsa-exponent" +# define OSSL_PKEY_PARAM_RSA_EXPONENT1 "rsa-exponent1" +# define OSSL_PKEY_PARAM_RSA_EXPONENT10 "rsa-exponent10" +# define OSSL_PKEY_PARAM_RSA_EXPONENT2 "rsa-exponent2" +# define OSSL_PKEY_PARAM_RSA_EXPONENT3 "rsa-exponent3" +# define OSSL_PKEY_PARAM_RSA_EXPONENT4 "rsa-exponent4" +# define OSSL_PKEY_PARAM_RSA_EXPONENT5 "rsa-exponent5" +# define OSSL_PKEY_PARAM_RSA_EXPONENT6 "rsa-exponent6" +# define OSSL_PKEY_PARAM_RSA_EXPONENT7 "rsa-exponent7" +# define OSSL_PKEY_PARAM_RSA_EXPONENT8 "rsa-exponent8" +# define OSSL_PKEY_PARAM_RSA_EXPONENT9 "rsa-exponent9" +# define OSSL_PKEY_PARAM_RSA_FACTOR "rsa-factor" +# define OSSL_PKEY_PARAM_RSA_FACTOR1 "rsa-factor1" +# define OSSL_PKEY_PARAM_RSA_FACTOR10 "rsa-factor10" +# define OSSL_PKEY_PARAM_RSA_FACTOR2 "rsa-factor2" +# define OSSL_PKEY_PARAM_RSA_FACTOR3 "rsa-factor3" +# define OSSL_PKEY_PARAM_RSA_FACTOR4 "rsa-factor4" +# define OSSL_PKEY_PARAM_RSA_FACTOR5 "rsa-factor5" +# define OSSL_PKEY_PARAM_RSA_FACTOR6 "rsa-factor6" +# define OSSL_PKEY_PARAM_RSA_FACTOR7 "rsa-factor7" +# define OSSL_PKEY_PARAM_RSA_FACTOR8 "rsa-factor8" +# define OSSL_PKEY_PARAM_RSA_FACTOR9 "rsa-factor9" +# define OSSL_PKEY_PARAM_RSA_MASKGENFUNC OSSL_PKEY_PARAM_MASKGENFUNC +# define OSSL_PKEY_PARAM_RSA_MGF1_DIGEST OSSL_PKEY_PARAM_MGF1_DIGEST +# define OSSL_PKEY_PARAM_RSA_N "n" +# define OSSL_PKEY_PARAM_RSA_PRIMES "primes" +# define OSSL_PKEY_PARAM_RSA_PSS_SALTLEN "saltlen" +# define OSSL_PKEY_PARAM_RSA_TEST_P1 "p1" +# define OSSL_PKEY_PARAM_RSA_TEST_P2 "p2" +# define OSSL_PKEY_PARAM_RSA_TEST_Q1 "q1" +# define OSSL_PKEY_PARAM_RSA_TEST_Q2 "q2" +# define OSSL_PKEY_PARAM_RSA_TEST_XP "xp" +# define OSSL_PKEY_PARAM_RSA_TEST_XP1 "xp1" +# define OSSL_PKEY_PARAM_RSA_TEST_XP2 "xp2" +# define OSSL_PKEY_PARAM_RSA_TEST_XQ "xq" +# define OSSL_PKEY_PARAM_RSA_TEST_XQ1 "xq1" +# define OSSL_PKEY_PARAM_RSA_TEST_XQ2 "xq2" +# define OSSL_PKEY_PARAM_SECURITY_BITS "security-bits" +# define OSSL_PKEY_PARAM_SLH_DSA_SEED "seed" +# define OSSL_PKEY_PARAM_USE_COFACTOR_ECDH OSSL_PKEY_PARAM_USE_COFACTOR_FLAG +# define OSSL_PKEY_PARAM_USE_COFACTOR_FLAG "use-cofactor-flag" +# define OSSL_PROV_PARAM_BUILDINFO "buildinfo" +# define OSSL_PROV_PARAM_CORE_MODULE_FILENAME "module-filename" +# define OSSL_PROV_PARAM_CORE_PROV_NAME "provider-name" +# define OSSL_PROV_PARAM_CORE_VERSION "openssl-version" +# define OSSL_PROV_PARAM_DRBG_TRUNC_DIGEST "drbg-no-trunc-md" +# define OSSL_PROV_PARAM_DSA_SIGN_DISABLED "dsa-sign-disabled" +# define OSSL_PROV_PARAM_ECDH_COFACTOR_CHECK "ecdh-cofactor-check" +# define OSSL_PROV_PARAM_HKDF_DIGEST_CHECK "hkdf-digest-check" +# define OSSL_PROV_PARAM_HKDF_KEY_CHECK "hkdf-key-check" +# define OSSL_PROV_PARAM_HMAC_KEY_CHECK "hmac-key-check" +# define OSSL_PROV_PARAM_KBKDF_KEY_CHECK "kbkdf-key-check" +# define OSSL_PROV_PARAM_KMAC_KEY_CHECK "kmac-key-check" +# define OSSL_PROV_PARAM_NAME "name" +# define OSSL_PROV_PARAM_NO_SHORT_MAC "no-short-mac" +# define OSSL_PROV_PARAM_PBKDF2_LOWER_BOUND_CHECK "pbkdf2-lower-bound-check" +# define OSSL_PROV_PARAM_RSA_PKCS15_PAD_DISABLED "rsa-pkcs15-pad-disabled" +# define OSSL_PROV_PARAM_RSA_PSS_SALTLEN_CHECK "rsa-pss-saltlen-check" +# define OSSL_PROV_PARAM_RSA_SIGN_X931_PAD_DISABLED "rsa-sign-x931-pad-disabled" +# define OSSL_PROV_PARAM_SECURITY_CHECKS "security-checks" +# define OSSL_PROV_PARAM_SELF_TEST_DESC "st-desc" +# define OSSL_PROV_PARAM_SELF_TEST_PHASE "st-phase" +# define OSSL_PROV_PARAM_SELF_TEST_TYPE "st-type" +# define OSSL_PROV_PARAM_SIGNATURE_DIGEST_CHECK "signature-digest-check" +# define OSSL_PROV_PARAM_SSHKDF_DIGEST_CHECK "sshkdf-digest-check" +# define OSSL_PROV_PARAM_SSHKDF_KEY_CHECK "sshkdf-key-check" +# define OSSL_PROV_PARAM_SSKDF_DIGEST_CHECK "sskdf-digest-check" +# define OSSL_PROV_PARAM_SSKDF_KEY_CHECK "sskdf-key-check" +# define OSSL_PROV_PARAM_STATUS "status" +# define OSSL_PROV_PARAM_TDES_ENCRYPT_DISABLED "tdes-encrypt-disabled" +# define OSSL_PROV_PARAM_TLS13_KDF_DIGEST_CHECK "tls13-kdf-digest-check" +# define OSSL_PROV_PARAM_TLS13_KDF_KEY_CHECK "tls13-kdf-key-check" +# define OSSL_PROV_PARAM_TLS1_PRF_DIGEST_CHECK "tls1-prf-digest-check" +# define OSSL_PROV_PARAM_TLS1_PRF_EMS_CHECK "tls1-prf-ems-check" +# define OSSL_PROV_PARAM_TLS1_PRF_KEY_CHECK "tls1-prf-key-check" +# define OSSL_PROV_PARAM_VERSION "version" +# define OSSL_PROV_PARAM_X942KDF_KEY_CHECK "x942kdf-key-check" +# define OSSL_PROV_PARAM_X963KDF_DIGEST_CHECK "x963kdf-digest-check" +# define OSSL_PROV_PARAM_X963KDF_KEY_CHECK "x963kdf-key-check" +# define OSSL_RAND_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_RAND_PARAM_GENERATE "generate" +# define OSSL_RAND_PARAM_MAX_REQUEST "max_request" +# define OSSL_RAND_PARAM_STATE "state" +# define OSSL_RAND_PARAM_STRENGTH "strength" +# define OSSL_RAND_PARAM_TEST_ENTROPY "test_entropy" +# define OSSL_RAND_PARAM_TEST_NONCE "test_nonce" +# define OSSL_SIGNATURE_PARAM_ADD_RANDOM "additional-random" +# define OSSL_SIGNATURE_PARAM_ALGORITHM_ID OSSL_PKEY_PARAM_ALGORITHM_ID +# define OSSL_SIGNATURE_PARAM_ALGORITHM_ID_PARAMS OSSL_PKEY_PARAM_ALGORITHM_ID_PARAMS +# define OSSL_SIGNATURE_PARAM_CONTEXT_STRING "context-string" +# define OSSL_SIGNATURE_PARAM_DETERMINISTIC "deterministic" +# define OSSL_SIGNATURE_PARAM_DIGEST OSSL_PKEY_PARAM_DIGEST +# define OSSL_SIGNATURE_PARAM_DIGEST_SIZE OSSL_PKEY_PARAM_DIGEST_SIZE +# define OSSL_SIGNATURE_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_SIGNATURE_PARAM_FIPS_DIGEST_CHECK OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK +# define OSSL_SIGNATURE_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_SIGNATURE_PARAM_FIPS_RSA_PSS_SALTLEN_CHECK "rsa-pss-saltlen-check" +# define OSSL_SIGNATURE_PARAM_FIPS_SIGN_CHECK OSSL_PKEY_PARAM_FIPS_SIGN_CHECK +# define OSSL_SIGNATURE_PARAM_FIPS_SIGN_X931_PAD_CHECK "sign-x931-pad-check" +# define OSSL_SIGNATURE_PARAM_FIPS_VERIFY_MESSAGE "verify-message" +# define OSSL_SIGNATURE_PARAM_INSTANCE "instance" +# define OSSL_SIGNATURE_PARAM_KAT "kat" +# define OSSL_SIGNATURE_PARAM_MESSAGE_ENCODING "message-encoding" +# define OSSL_SIGNATURE_PARAM_MGF1_DIGEST OSSL_PKEY_PARAM_MGF1_DIGEST +# define OSSL_SIGNATURE_PARAM_MGF1_PROPERTIES OSSL_PKEY_PARAM_MGF1_PROPERTIES +# define OSSL_SIGNATURE_PARAM_MU "mu" +# define OSSL_SIGNATURE_PARAM_NONCE_TYPE "nonce-type" +# define OSSL_SIGNATURE_PARAM_PAD_MODE OSSL_PKEY_PARAM_PAD_MODE +# define OSSL_SIGNATURE_PARAM_PROPERTIES OSSL_PKEY_PARAM_PROPERTIES +# define OSSL_SIGNATURE_PARAM_PSS_SALTLEN "saltlen" +# define OSSL_SIGNATURE_PARAM_SIGNATURE "signature" +# define OSSL_SIGNATURE_PARAM_TEST_ENTROPY "test-entropy" +# define OSSL_SKEY_PARAM_KEY_LENGTH "key-length" +# define OSSL_SKEY_PARAM_RAW_BYTES "raw-bytes" +# define OSSL_STORE_PARAM_ALIAS "alias" +# define OSSL_STORE_PARAM_DIGEST "digest" +# define OSSL_STORE_PARAM_EXPECT "expect" +# define OSSL_STORE_PARAM_FINGERPRINT "fingerprint" +# define OSSL_STORE_PARAM_INPUT_TYPE "input-type" +# define OSSL_STORE_PARAM_ISSUER "name" +# define OSSL_STORE_PARAM_PROPERTIES "properties" +# define OSSL_STORE_PARAM_SERIAL "serial" +# define OSSL_STORE_PARAM_SUBJECT "subject" + +# ifdef __cplusplus +} +# endif + +#endif diff --git a/deps/openssl/config/archs/linux-aarch64/asm/include/openssl/crmf.h b/deps/openssl/config/archs/linux-aarch64/asm/include/openssl/crmf.h index 71b747ed33d239..4bf550fd47daa9 100644 --- a/deps/openssl/config/archs/linux-aarch64/asm/include/openssl/crmf.h +++ b/deps/openssl/config/archs/linux-aarch64/asm/include/openssl/crmf.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/crmf.h.in * - * Copyright 2007-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2007-2025 The OpenSSL Project Authors. All Rights Reserved. * Copyright Nokia 2007-2019 * Copyright Siemens AG 2015-2019 * @@ -26,6 +26,7 @@ # include # include # include /* for GENERAL_NAME etc. */ +# include /* explicit #includes not strictly needed since implied by the above: */ # include @@ -43,9 +44,12 @@ extern "C" { # define OSSL_CRMF_SUBSEQUENTMESSAGE_ENCRCERT 0 # define OSSL_CRMF_SUBSEQUENTMESSAGE_CHALLENGERESP 1 - typedef struct ossl_crmf_encryptedvalue_st OSSL_CRMF_ENCRYPTEDVALUE; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_ENCRYPTEDVALUE) + +typedef struct ossl_crmf_encryptedkey_st OSSL_CRMF_ENCRYPTEDKEY; +DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_ENCRYPTEDKEY) + typedef struct ossl_crmf_msg_st OSSL_CRMF_MSG; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_MSG) DECLARE_ASN1_DUP_FUNCTION(OSSL_CRMF_MSG) @@ -77,6 +81,36 @@ SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CRMF_MSG, OSSL_CRMF_MSG, OSSL_CRMF_MSG) #define sk_OSSL_CRMF_MSG_set_cmp_func(sk, cmp) ((sk_OSSL_CRMF_MSG_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CRMF_MSG_sk_type(sk), ossl_check_OSSL_CRMF_MSG_compfunc_type(cmp))) typedef struct ossl_crmf_attributetypeandvalue_st OSSL_CRMF_ATTRIBUTETYPEANDVALUE; +void OSSL_CRMF_ATTRIBUTETYPEANDVALUE_free(OSSL_CRMF_ATTRIBUTETYPEANDVALUE *v); +DECLARE_ASN1_DUP_FUNCTION(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CRMF_ATTRIBUTETYPEANDVALUE, OSSL_CRMF_ATTRIBUTETYPEANDVALUE, OSSL_CRMF_ATTRIBUTETYPEANDVALUE) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_value(sk, idx) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_value(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), (idx))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_new(cmp) ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_new(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_compfunc_type(cmp))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_new_null() ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_new_null()) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_new_reserve(cmp, n) ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_compfunc_type(cmp), (n))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), (n)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_free(sk) OPENSSL_sk_free(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_delete(sk, i) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_delete(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), (i))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_delete_ptr(sk, ptr) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_pop(sk) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_pop(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_shift(sk) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_shift(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk),ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_freefunc_type(freefunc)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr), (idx)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_set(sk, idx, ptr) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_set(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), (idx), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr), pnum) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_dup(sk) ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_dup(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_copyfunc_type(copyfunc), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_freefunc_type(freefunc))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_set_cmp_func(sk, cmp) ((sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_compfunc_type(cmp))) + + typedef struct ossl_crmf_pbmparameter_st OSSL_CRMF_PBMPARAMETER; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_PBMPARAMETER) typedef struct ossl_crmf_poposigningkey_st OSSL_CRMF_POPOSIGNINGKEY; @@ -118,6 +152,7 @@ typedef struct ossl_crmf_singlepubinfo_st OSSL_CRMF_SINGLEPUBINFO; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_SINGLEPUBINFO) typedef struct ossl_crmf_certtemplate_st OSSL_CRMF_CERTTEMPLATE; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_CERTTEMPLATE) +DECLARE_ASN1_DUP_FUNCTION(OSSL_CRMF_CERTTEMPLATE) typedef STACK_OF(OSSL_CRMF_MSG) OSSL_CRMF_MSGS; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_MSGS) @@ -198,12 +233,14 @@ int OSSL_CRMF_MSGS_verify_popo(const OSSL_CRMF_MSGS *reqs, int rid, int acceptRAVerified, OSSL_LIB_CTX *libctx, const char *propq); OSSL_CRMF_CERTTEMPLATE *OSSL_CRMF_MSG_get0_tmpl(const OSSL_CRMF_MSG *crm); -const ASN1_INTEGER -*OSSL_CRMF_CERTTEMPLATE_get0_serialNumber(const OSSL_CRMF_CERTTEMPLATE *tmpl); +X509_PUBKEY +*OSSL_CRMF_CERTTEMPLATE_get0_publicKey(const OSSL_CRMF_CERTTEMPLATE *tmpl); const X509_NAME *OSSL_CRMF_CERTTEMPLATE_get0_subject(const OSSL_CRMF_CERTTEMPLATE *tmpl); const X509_NAME *OSSL_CRMF_CERTTEMPLATE_get0_issuer(const OSSL_CRMF_CERTTEMPLATE *tmpl); +const ASN1_INTEGER +*OSSL_CRMF_CERTTEMPLATE_get0_serialNumber(const OSSL_CRMF_CERTTEMPLATE *tmpl); X509_EXTENSIONS *OSSL_CRMF_CERTTEMPLATE_get0_extensions(const OSSL_CRMF_CERTTEMPLATE *tmpl); const X509_NAME @@ -215,10 +252,24 @@ int OSSL_CRMF_CERTTEMPLATE_fill(OSSL_CRMF_CERTTEMPLATE *tmpl, const X509_NAME *subject, const X509_NAME *issuer, const ASN1_INTEGER *serial); -X509 -*OSSL_CRMF_ENCRYPTEDVALUE_get1_encCert(const OSSL_CRMF_ENCRYPTEDVALUE *ecert, - OSSL_LIB_CTX *libctx, const char *propq, - EVP_PKEY *pkey); +X509 *OSSL_CRMF_ENCRYPTEDVALUE_get1_encCert(const OSSL_CRMF_ENCRYPTEDVALUE *ecert, + OSSL_LIB_CTX *libctx, const char *propq, + EVP_PKEY *pkey); +X509 *OSSL_CRMF_ENCRYPTEDKEY_get1_encCert(const OSSL_CRMF_ENCRYPTEDKEY *ecert, + OSSL_LIB_CTX *libctx, const char *propq, + EVP_PKEY *pkey, unsigned int flags); +unsigned char +*OSSL_CRMF_ENCRYPTEDVALUE_decrypt(const OSSL_CRMF_ENCRYPTEDVALUE *enc, + OSSL_LIB_CTX *libctx, const char *propq, + EVP_PKEY *pkey, int *outlen); +EVP_PKEY *OSSL_CRMF_ENCRYPTEDKEY_get1_pkey(const OSSL_CRMF_ENCRYPTEDKEY *encryptedKey, + X509_STORE *ts, STACK_OF(X509) *extra, EVP_PKEY *pkey, + X509 *cert, ASN1_OCTET_STRING *secret, + OSSL_LIB_CTX *libctx, const char *propq); +int OSSL_CRMF_MSG_centralkeygen_requested(const OSSL_CRMF_MSG *crm, const X509_REQ *p10cr); +# ifndef OPENSSL_NO_CMS +OSSL_CRMF_ENCRYPTEDKEY *OSSL_CRMF_ENCRYPTEDKEY_init_envdata(CMS_EnvelopedData *envdata); +# endif # ifdef __cplusplus } diff --git a/deps/openssl/config/archs/linux-aarch64/asm/include/openssl/crypto.h b/deps/openssl/config/archs/linux-aarch64/asm/include/openssl/crypto.h index 3f40be6d8c61d5..fd2cfd3e5a9ac4 100644 --- a/deps/openssl/config/archs/linux-aarch64/asm/include/openssl/crypto.h +++ b/deps/openssl/config/archs/linux-aarch64/asm/include/openssl/crypto.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/crypto.h.in * - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2024 The OpenSSL Project Authors. All Rights Reserved. * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved * * Licensed under the Apache License 2.0 (the "License"). You may not use @@ -85,9 +85,15 @@ int CRYPTO_THREAD_unlock(CRYPTO_RWLOCK *lock); void CRYPTO_THREAD_lock_free(CRYPTO_RWLOCK *lock); int CRYPTO_atomic_add(int *val, int amount, int *ret, CRYPTO_RWLOCK *lock); +int CRYPTO_atomic_add64(uint64_t *val, uint64_t op, uint64_t *ret, + CRYPTO_RWLOCK *lock); +int CRYPTO_atomic_and(uint64_t *val, uint64_t op, uint64_t *ret, + CRYPTO_RWLOCK *lock); int CRYPTO_atomic_or(uint64_t *val, uint64_t op, uint64_t *ret, CRYPTO_RWLOCK *lock); int CRYPTO_atomic_load(uint64_t *val, uint64_t *ret, CRYPTO_RWLOCK *lock); +int CRYPTO_atomic_load_int(int *val, int *ret, CRYPTO_RWLOCK *lock); +int CRYPTO_atomic_store(uint64_t *dst, uint64_t val, CRYPTO_RWLOCK *lock); /* No longer needed, so this is a no-op */ #define OPENSSL_malloc_init() while(0) continue @@ -96,6 +102,9 @@ int CRYPTO_atomic_load(uint64_t *val, uint64_t *ret, CRYPTO_RWLOCK *lock); CRYPTO_malloc(num, OPENSSL_FILE, OPENSSL_LINE) # define OPENSSL_zalloc(num) \ CRYPTO_zalloc(num, OPENSSL_FILE, OPENSSL_LINE) +# define OPENSSL_aligned_alloc(num, alignment, freeptr) \ + CRYPTO_aligned_alloc(num, alignment, freeptr, \ + OPENSSL_FILE, OPENSSL_LINE) # define OPENSSL_realloc(addr, num) \ CRYPTO_realloc(addr, num, OPENSSL_FILE, OPENSSL_LINE) # define OPENSSL_clear_realloc(addr, old_num, num) \ @@ -124,6 +133,7 @@ int CRYPTO_atomic_load(uint64_t *val, uint64_t *ret, CRYPTO_RWLOCK *lock); size_t OPENSSL_strlcpy(char *dst, const char *src, size_t siz); size_t OPENSSL_strlcat(char *dst, const char *src, size_t siz); size_t OPENSSL_strnlen(const char *str, size_t maxlen); +int OPENSSL_strtoul(const char *str, char **endptr, int base, unsigned long *num); int OPENSSL_buf2hexstr_ex(char *str, size_t str_n, size_t *strlength, const unsigned char *buf, size_t buflen, const char sep); @@ -160,6 +170,7 @@ const char *OpenSSL_version(int type); # define OPENSSL_FULL_VERSION_STRING 7 # define OPENSSL_MODULES_DIR 8 # define OPENSSL_CPU_INFO 9 +# define OPENSSL_WINCTX 10 const char *OPENSSL_info(int type); /* @@ -174,6 +185,7 @@ const char *OPENSSL_info(int type); # define OPENSSL_INFO_LIST_SEPARATOR 1006 # define OPENSSL_INFO_SEED_SOURCE 1007 # define OPENSSL_INFO_CPU_SETTINGS 1008 +# define OPENSSL_INFO_WINDOWS_CONTEXT 1009 int OPENSSL_issetugid(void); @@ -341,11 +353,14 @@ void CRYPTO_get_mem_functions(CRYPTO_malloc_fn *malloc_fn, CRYPTO_realloc_fn *realloc_fn, CRYPTO_free_fn *free_fn); -void *CRYPTO_malloc(size_t num, const char *file, int line); -void *CRYPTO_zalloc(size_t num, const char *file, int line); -void *CRYPTO_memdup(const void *str, size_t siz, const char *file, int line); -char *CRYPTO_strdup(const char *str, const char *file, int line); -char *CRYPTO_strndup(const char *str, size_t s, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_malloc(size_t num, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_zalloc(size_t num, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_aligned_alloc(size_t num, size_t align, + void **freeptr, const char *file, + int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_memdup(const void *str, size_t siz, const char *file, int line); +OSSL_CRYPTO_ALLOC char *CRYPTO_strdup(const char *str, const char *file, int line); +OSSL_CRYPTO_ALLOC char *CRYPTO_strndup(const char *str, size_t s, const char *file, int line); void CRYPTO_free(void *ptr, const char *file, int line); void CRYPTO_clear_free(void *ptr, size_t num, const char *file, int line); void *CRYPTO_realloc(void *addr, size_t num, const char *file, int line); @@ -354,8 +369,8 @@ void *CRYPTO_clear_realloc(void *addr, size_t old_num, size_t num, int CRYPTO_secure_malloc_init(size_t sz, size_t minsize); int CRYPTO_secure_malloc_done(void); -void *CRYPTO_secure_malloc(size_t num, const char *file, int line); -void *CRYPTO_secure_zalloc(size_t num, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_secure_malloc(size_t num, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_secure_zalloc(size_t num, const char *file, int line); void CRYPTO_secure_free(void *ptr, const char *file, int line); void CRYPTO_secure_clear_free(void *ptr, size_t num, const char *file, int line); @@ -376,6 +391,9 @@ void OPENSSL_cleanse(void *ptr, size_t len); # define CRYPTO_MEM_CHECK_ENABLE 0x2 /* Control and mode bit */ # define CRYPTO_MEM_CHECK_DISABLE 0x3 /* Control only */ +/* max allowed length for value of OPENSSL_MALLOC_FAILURES env var. */ +# define CRYPTO_MEM_CHECK_MAX_FS 256 + void CRYPTO_get_alloc_counts(int *mcount, int *rcount, int *fcount); # ifndef OPENSSL_NO_DEPRECATED_3_0 # define OPENSSL_mem_debug_push(info) \ @@ -551,6 +569,13 @@ int OSSL_LIB_CTX_load_config(OSSL_LIB_CTX *ctx, const char *config_file); void OSSL_LIB_CTX_free(OSSL_LIB_CTX *); OSSL_LIB_CTX *OSSL_LIB_CTX_get0_global_default(void); OSSL_LIB_CTX *OSSL_LIB_CTX_set0_default(OSSL_LIB_CTX *libctx); +int OSSL_LIB_CTX_get_conf_diagnostics(OSSL_LIB_CTX *ctx); +void OSSL_LIB_CTX_set_conf_diagnostics(OSSL_LIB_CTX *ctx, int value); + +void OSSL_sleep(uint64_t millis); + + +void *OSSL_LIB_CTX_get_data(OSSL_LIB_CTX *ctx, int index); # ifdef __cplusplus } diff --git a/deps/openssl/config/archs/linux-aarch64/asm/include/openssl/ct.h b/deps/openssl/config/archs/linux-aarch64/asm/include/openssl/ct.h index b6dd8c3547710a..e6dd1192a4e0b3 100644 --- a/deps/openssl/config/archs/linux-aarch64/asm/include/openssl/ct.h +++ b/deps/openssl/config/archs/linux-aarch64/asm/include/openssl/ct.h @@ -133,7 +133,7 @@ typedef enum { */ CT_POLICY_EVAL_CTX *CT_POLICY_EVAL_CTX_new_ex(OSSL_LIB_CTX *libctx, const char *propq); - + /* * The same as CT_POLICY_EVAL_CTX_new_ex() but the default library * context and property query string is used. diff --git a/deps/openssl/config/archs/linux-aarch64/asm/include/openssl/err.h b/deps/openssl/config/archs/linux-aarch64/asm/include/openssl/err.h index 2abf2483488181..daca18e7b757b0 100644 --- a/deps/openssl/config/archs/linux-aarch64/asm/include/openssl/err.h +++ b/deps/openssl/config/archs/linux-aarch64/asm/include/openssl/err.h @@ -1,5 +1,5 @@ /* - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -372,7 +372,7 @@ typedef struct ERR_string_data_st { } ERR_STRING_DATA; DEFINE_LHASH_OF_INTERNAL(ERR_STRING_DATA); -#define lh_ERR_STRING_DATA_new(hfn, cmp) ((LHASH_OF(ERR_STRING_DATA) *)OPENSSL_LH_new(ossl_check_ERR_STRING_DATA_lh_hashfunc_type(hfn), ossl_check_ERR_STRING_DATA_lh_compfunc_type(cmp))) +#define lh_ERR_STRING_DATA_new(hfn, cmp) ((LHASH_OF(ERR_STRING_DATA) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new(ossl_check_ERR_STRING_DATA_lh_hashfunc_type(hfn), ossl_check_ERR_STRING_DATA_lh_compfunc_type(cmp)), lh_ERR_STRING_DATA_hash_thunk, lh_ERR_STRING_DATA_comp_thunk, lh_ERR_STRING_DATA_doall_thunk, lh_ERR_STRING_DATA_doall_arg_thunk)) #define lh_ERR_STRING_DATA_free(lh) OPENSSL_LH_free(ossl_check_ERR_STRING_DATA_lh_type(lh)) #define lh_ERR_STRING_DATA_flush(lh) OPENSSL_LH_flush(ossl_check_ERR_STRING_DATA_lh_type(lh)) #define lh_ERR_STRING_DATA_insert(lh, ptr) ((ERR_STRING_DATA *)OPENSSL_LH_insert(ossl_check_ERR_STRING_DATA_lh_type(lh), ossl_check_ERR_STRING_DATA_lh_plain_type(ptr))) @@ -496,6 +496,14 @@ int ERR_get_next_error_library(void); int ERR_set_mark(void); int ERR_pop_to_mark(void); int ERR_clear_last_mark(void); +int ERR_count_to_mark(void); +int ERR_pop(void); + +ERR_STATE *OSSL_ERR_STATE_new(void); +void OSSL_ERR_STATE_save(ERR_STATE *es); +void OSSL_ERR_STATE_save_to_mark(ERR_STATE *es); +void OSSL_ERR_STATE_restore(const ERR_STATE *es); +void OSSL_ERR_STATE_free(ERR_STATE *es); #ifdef __cplusplus } diff --git a/deps/openssl/config/archs/linux-aarch64/asm/include/openssl/fipskey.h b/deps/openssl/config/archs/linux-aarch64/asm/include/openssl/fipskey.h index 42ba014b313ba8..929db18c678364 100644 --- a/deps/openssl/config/archs/linux-aarch64/asm/include/openssl/fipskey.h +++ b/deps/openssl/config/archs/linux-aarch64/asm/include/openssl/fipskey.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/fipskey.h.in * - * Copyright 2020-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2020-2024 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -29,6 +29,11 @@ extern "C" { */ #define FIPS_KEY_STRING "f4556650ac31d35461610bac4ed81b1a181b2d8a43ea2854cbae22ca74560813" +/* + * The FIPS provider vendor name, as a string. + */ +#define FIPS_VENDOR "OpenSSL FIPS Provider" + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/linux-aarch64/asm/include/openssl/lhash.h b/deps/openssl/config/archs/linux-aarch64/asm/include/openssl/lhash.h index 39dd6254acdeb6..62c55b20fd9716 100644 --- a/deps/openssl/config/archs/linux-aarch64/asm/include/openssl/lhash.h +++ b/deps/openssl/config/archs/linux-aarch64/asm/include/openssl/lhash.h @@ -1,5 +1,5 @@ /* - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2024 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -24,6 +24,9 @@ # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -31,9 +34,13 @@ extern "C" { typedef struct lhash_node_st OPENSSL_LH_NODE; typedef int (*OPENSSL_LH_COMPFUNC) (const void *, const void *); +typedef int (*OPENSSL_LH_COMPFUNCTHUNK) (const void *, const void *, OPENSSL_LH_COMPFUNC cfn); typedef unsigned long (*OPENSSL_LH_HASHFUNC) (const void *); +typedef unsigned long (*OPENSSL_LH_HASHFUNCTHUNK) (const void *, OPENSSL_LH_HASHFUNC hfn); typedef void (*OPENSSL_LH_DOALL_FUNC) (void *); +typedef void (*OPENSSL_LH_DOALL_FUNC_THUNK) (void *, OPENSSL_LH_DOALL_FUNC doall); typedef void (*OPENSSL_LH_DOALL_FUNCARG) (void *, void *); +typedef void (*OPENSSL_LH_DOALL_FUNCARG_THUNK) (void *, void *, OPENSSL_LH_DOALL_FUNCARG doall); typedef struct lhash_st OPENSSL_LHASH; /* @@ -79,26 +86,40 @@ typedef struct lhash_st OPENSSL_LHASH; int OPENSSL_LH_error(OPENSSL_LHASH *lh); OPENSSL_LHASH *OPENSSL_LH_new(OPENSSL_LH_HASHFUNC h, OPENSSL_LH_COMPFUNC c); +OPENSSL_LHASH *OPENSSL_LH_set_thunks(OPENSSL_LHASH *lh, + OPENSSL_LH_HASHFUNCTHUNK hw, + OPENSSL_LH_COMPFUNCTHUNK cw, + OPENSSL_LH_DOALL_FUNC_THUNK daw, + OPENSSL_LH_DOALL_FUNCARG_THUNK daaw); void OPENSSL_LH_free(OPENSSL_LHASH *lh); void OPENSSL_LH_flush(OPENSSL_LHASH *lh); void *OPENSSL_LH_insert(OPENSSL_LHASH *lh, void *data); void *OPENSSL_LH_delete(OPENSSL_LHASH *lh, const void *data); void *OPENSSL_LH_retrieve(OPENSSL_LHASH *lh, const void *data); void OPENSSL_LH_doall(OPENSSL_LHASH *lh, OPENSSL_LH_DOALL_FUNC func); -void OPENSSL_LH_doall_arg(OPENSSL_LHASH *lh, OPENSSL_LH_DOALL_FUNCARG func, void *arg); +void OPENSSL_LH_doall_arg(OPENSSL_LHASH *lh, + OPENSSL_LH_DOALL_FUNCARG func, void *arg); +void OPENSSL_LH_doall_arg_thunk(OPENSSL_LHASH *lh, + OPENSSL_LH_DOALL_FUNCARG_THUNK daaw, + OPENSSL_LH_DOALL_FUNCARG fn, void *arg); + unsigned long OPENSSL_LH_strhash(const char *c); unsigned long OPENSSL_LH_num_items(const OPENSSL_LHASH *lh); unsigned long OPENSSL_LH_get_down_load(const OPENSSL_LHASH *lh); void OPENSSL_LH_set_down_load(OPENSSL_LHASH *lh, unsigned long down_load); # ifndef OPENSSL_NO_STDIO -void OPENSSL_LH_stats(const OPENSSL_LHASH *lh, FILE *fp); -void OPENSSL_LH_node_stats(const OPENSSL_LHASH *lh, FILE *fp); -void OPENSSL_LH_node_usage_stats(const OPENSSL_LHASH *lh, FILE *fp); +# ifndef OPENSSL_NO_DEPRECATED_3_1 +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_stats(const OPENSSL_LHASH *lh, FILE *fp); +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_node_stats(const OPENSSL_LHASH *lh, FILE *fp); +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_node_usage_stats(const OPENSSL_LHASH *lh, FILE *fp); +# endif +# endif +# ifndef OPENSSL_NO_DEPRECATED_3_1 +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_stats_bio(const OPENSSL_LHASH *lh, BIO *out); +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_node_stats_bio(const OPENSSL_LHASH *lh, BIO *out); +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_node_usage_stats_bio(const OPENSSL_LHASH *lh, BIO *out); # endif -void OPENSSL_LH_stats_bio(const OPENSSL_LHASH *lh, BIO *out); -void OPENSSL_LH_node_stats_bio(const OPENSSL_LHASH *lh, BIO *out); -void OPENSSL_LH_node_usage_stats_bio(const OPENSSL_LHASH *lh, BIO *out); # ifndef OPENSSL_NO_DEPRECATED_1_1_0 # define _LHASH OPENSSL_LHASH @@ -129,110 +150,190 @@ void OPENSSL_LH_node_usage_stats_bio(const OPENSSL_LHASH *lh, BIO *out); /* Helper macro for internal use */ # define DEFINE_LHASH_OF_INTERNAL(type) \ - LHASH_OF(type) { union lh_##type##_dummy { void* d1; unsigned long d2; int d3; } dummy; }; \ + LHASH_OF(type) { \ + union lh_##type##_dummy { void* d1; unsigned long d2; int d3; } dummy; \ + }; \ typedef int (*lh_##type##_compfunc)(const type *a, const type *b); \ typedef unsigned long (*lh_##type##_hashfunc)(const type *a); \ typedef void (*lh_##type##_doallfunc)(type *a); \ - static ossl_unused ossl_inline type *ossl_check_##type##_lh_plain_type(type *ptr) \ + static ossl_inline unsigned long lh_##type##_hash_thunk(const void *data, OPENSSL_LH_HASHFUNC hfn) \ + { \ + unsigned long (*hfn_conv)(const type *) = (unsigned long (*)(const type *))hfn; \ + return hfn_conv((const type *)data); \ + } \ + static ossl_inline int lh_##type##_comp_thunk(const void *da, const void *db, OPENSSL_LH_COMPFUNC cfn) \ + { \ + int (*cfn_conv)(const type *, const type *) = (int (*)(const type *, const type *))cfn; \ + return cfn_conv((const type *)da, (const type *)db); \ + } \ + static ossl_inline void lh_##type##_doall_thunk(void *node, OPENSSL_LH_DOALL_FUNC doall) \ + { \ + void (*doall_conv)(type *) = (void (*)(type *))doall; \ + doall_conv((type *)node); \ + } \ + static ossl_inline void lh_##type##_doall_arg_thunk(void *node, void *arg, OPENSSL_LH_DOALL_FUNCARG doall) \ + { \ + void (*doall_conv)(type *, void *) = (void (*)(type *, void *))doall; \ + doall_conv((type *)node, arg); \ + } \ + static ossl_unused ossl_inline type *\ + ossl_check_##type##_lh_plain_type(type *ptr) \ { \ return ptr; \ } \ - static ossl_unused ossl_inline const type *ossl_check_const_##type##_lh_plain_type(const type *ptr) \ + static ossl_unused ossl_inline const type * \ + ossl_check_const_##type##_lh_plain_type(const type *ptr) \ { \ return ptr; \ } \ - static ossl_unused ossl_inline const OPENSSL_LHASH *ossl_check_const_##type##_lh_type(const LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline const OPENSSL_LHASH * \ + ossl_check_const_##type##_lh_type(const LHASH_OF(type) *lh) \ { \ return (const OPENSSL_LHASH *)lh; \ } \ - static ossl_unused ossl_inline OPENSSL_LHASH *ossl_check_##type##_lh_type(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline OPENSSL_LHASH * \ + ossl_check_##type##_lh_type(LHASH_OF(type) *lh) \ { \ return (OPENSSL_LHASH *)lh; \ } \ - static ossl_unused ossl_inline OPENSSL_LH_COMPFUNC ossl_check_##type##_lh_compfunc_type(lh_##type##_compfunc cmp) \ + static ossl_unused ossl_inline OPENSSL_LH_COMPFUNC \ + ossl_check_##type##_lh_compfunc_type(lh_##type##_compfunc cmp) \ { \ return (OPENSSL_LH_COMPFUNC)cmp; \ } \ - static ossl_unused ossl_inline OPENSSL_LH_HASHFUNC ossl_check_##type##_lh_hashfunc_type(lh_##type##_hashfunc hfn) \ + static ossl_unused ossl_inline OPENSSL_LH_HASHFUNC \ + ossl_check_##type##_lh_hashfunc_type(lh_##type##_hashfunc hfn) \ { \ return (OPENSSL_LH_HASHFUNC)hfn; \ } \ - static ossl_unused ossl_inline OPENSSL_LH_DOALL_FUNC ossl_check_##type##_lh_doallfunc_type(lh_##type##_doallfunc dfn) \ + static ossl_unused ossl_inline OPENSSL_LH_DOALL_FUNC \ + ossl_check_##type##_lh_doallfunc_type(lh_##type##_doallfunc dfn) \ { \ return (OPENSSL_LH_DOALL_FUNC)dfn; \ } \ LHASH_OF(type) -# define DEFINE_LHASH_OF(type) \ - LHASH_OF(type) { union lh_##type##_dummy { void* d1; unsigned long d2; int d3; } dummy; }; \ - static ossl_unused ossl_inline LHASH_OF(type) *lh_##type##_new(unsigned long (*hfn)(const type *), \ - int (*cfn)(const type *, const type *)) \ +# ifndef OPENSSL_NO_DEPRECATED_3_1 +# define DEFINE_LHASH_OF_DEPRECATED(type) \ + static ossl_unused ossl_inline void \ + lh_##type##_node_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ { \ - return (LHASH_OF(type) *) \ - OPENSSL_LH_new((OPENSSL_LH_HASHFUNC)hfn, (OPENSSL_LH_COMPFUNC)cfn); \ + OPENSSL_LH_node_stats_bio((const OPENSSL_LHASH *)lh, out); \ } \ - static ossl_unused ossl_inline void lh_##type##_free(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline void \ + lh_##type##_node_usage_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + { \ + OPENSSL_LH_node_usage_stats_bio((const OPENSSL_LHASH *)lh, out); \ + } \ + static ossl_unused ossl_inline void \ + lh_##type##_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + { \ + OPENSSL_LH_stats_bio((const OPENSSL_LHASH *)lh, out); \ + } +# else +# define DEFINE_LHASH_OF_DEPRECATED(type) +# endif + +# define DEFINE_LHASH_OF_EX(type) \ + LHASH_OF(type) { \ + union lh_##type##_dummy { void* d1; unsigned long d2; int d3; } dummy; \ + }; \ + static unsigned long \ + lh_##type##_hfn_thunk(const void *data, OPENSSL_LH_HASHFUNC hfn) \ + { \ + unsigned long (*hfn_conv)(const type *) = (unsigned long (*)(const type *))hfn; \ + return hfn_conv((const type *)data); \ + } \ + static int lh_##type##_cfn_thunk(const void *da, const void *db, OPENSSL_LH_COMPFUNC cfn) \ + { \ + int (*cfn_conv)(const type *, const type *) = (int (*)(const type *, const type *))cfn; \ + return cfn_conv((const type *)da, (const type *)db); \ + } \ + static ossl_unused ossl_inline void \ + lh_##type##_free(LHASH_OF(type) *lh) \ { \ OPENSSL_LH_free((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline void lh_##type##_flush(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline void \ + lh_##type##_flush(LHASH_OF(type) *lh) \ { \ OPENSSL_LH_flush((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline type *lh_##type##_insert(LHASH_OF(type) *lh, type *d) \ + static ossl_unused ossl_inline type * \ + lh_##type##_insert(LHASH_OF(type) *lh, type *d) \ { \ return (type *)OPENSSL_LH_insert((OPENSSL_LHASH *)lh, d); \ } \ - static ossl_unused ossl_inline type *lh_##type##_delete(LHASH_OF(type) *lh, const type *d) \ + static ossl_unused ossl_inline type * \ + lh_##type##_delete(LHASH_OF(type) *lh, const type *d) \ { \ return (type *)OPENSSL_LH_delete((OPENSSL_LHASH *)lh, d); \ } \ - static ossl_unused ossl_inline type *lh_##type##_retrieve(LHASH_OF(type) *lh, const type *d) \ + static ossl_unused ossl_inline type * \ + lh_##type##_retrieve(LHASH_OF(type) *lh, const type *d) \ { \ return (type *)OPENSSL_LH_retrieve((OPENSSL_LHASH *)lh, d); \ } \ - static ossl_unused ossl_inline int lh_##type##_error(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline int \ + lh_##type##_error(LHASH_OF(type) *lh) \ { \ return OPENSSL_LH_error((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline unsigned long lh_##type##_num_items(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline unsigned long \ + lh_##type##_num_items(LHASH_OF(type) *lh) \ { \ return OPENSSL_LH_num_items((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline void lh_##type##_node_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + static ossl_unused ossl_inline unsigned long \ + lh_##type##_get_down_load(LHASH_OF(type) *lh) \ { \ - OPENSSL_LH_node_stats_bio((const OPENSSL_LHASH *)lh, out); \ + return OPENSSL_LH_get_down_load((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline void lh_##type##_node_usage_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + static ossl_unused ossl_inline void \ + lh_##type##_set_down_load(LHASH_OF(type) *lh, unsigned long dl) \ { \ - OPENSSL_LH_node_usage_stats_bio((const OPENSSL_LHASH *)lh, out); \ + OPENSSL_LH_set_down_load((OPENSSL_LHASH *)lh, dl); \ } \ - static ossl_unused ossl_inline void lh_##type##_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall_thunk(void *node, OPENSSL_LH_DOALL_FUNC doall) \ { \ - OPENSSL_LH_stats_bio((const OPENSSL_LHASH *)lh, out); \ + void (*doall_conv)(type *) = (void (*)(type *))doall; \ + doall_conv((type *)node); \ } \ - static ossl_unused ossl_inline unsigned long lh_##type##_get_down_load(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall_arg_thunk(void *node, void *arg, OPENSSL_LH_DOALL_FUNCARG doall) \ { \ - return OPENSSL_LH_get_down_load((OPENSSL_LHASH *)lh); \ + void (*doall_conv)(type *, void *) = (void (*)(type *, void *))doall; \ + doall_conv((type *)node, arg); \ } \ - static ossl_unused ossl_inline void lh_##type##_set_down_load(LHASH_OF(type) *lh, unsigned long dl) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall(LHASH_OF(type) *lh, void (*doall)(type *)) \ { \ - OPENSSL_LH_set_down_load((OPENSSL_LHASH *)lh, dl); \ + OPENSSL_LH_doall((OPENSSL_LHASH *)lh, (OPENSSL_LH_DOALL_FUNC)doall); \ } \ - static ossl_unused ossl_inline void lh_##type##_doall(LHASH_OF(type) *lh, \ - void (*doall)(type *)) \ + static ossl_unused ossl_inline LHASH_OF(type) * \ + lh_##type##_new(unsigned long (*hfn)(const type *), \ + int (*cfn)(const type *, const type *)) \ { \ - OPENSSL_LH_doall((OPENSSL_LHASH *)lh, (OPENSSL_LH_DOALL_FUNC)doall); \ + return (LHASH_OF(type) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new((OPENSSL_LH_HASHFUNC)hfn, (OPENSSL_LH_COMPFUNC)cfn), \ + lh_##type##_hfn_thunk, lh_##type##_cfn_thunk, \ + lh_##type##_doall_thunk, \ + lh_##type##_doall_arg_thunk); \ } \ - static ossl_unused ossl_inline void lh_##type##_doall_arg(LHASH_OF(type) *lh, \ - void (*doallarg)(type *, void *), \ - void *arg) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall_arg(LHASH_OF(type) *lh, \ + void (*doallarg)(type *, void *), void *arg) \ { \ OPENSSL_LH_doall_arg((OPENSSL_LHASH *)lh, \ (OPENSSL_LH_DOALL_FUNCARG)doallarg, arg); \ } \ LHASH_OF(type) +# define DEFINE_LHASH_OF(type) \ + DEFINE_LHASH_OF_EX(type); \ + DEFINE_LHASH_OF_DEPRECATED(type) \ + LHASH_OF(type) + #define IMPLEMENT_LHASH_DOALL_ARG_CONST(type, argtype) \ int_implement_lhash_doall(type, argtype, const type) @@ -240,17 +341,26 @@ void OPENSSL_LH_node_usage_stats_bio(const OPENSSL_LHASH *lh, BIO *out); int_implement_lhash_doall(type, argtype, type) #define int_implement_lhash_doall(type, argtype, cbargtype) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall_##argtype##_thunk(void *node, void *arg, OPENSSL_LH_DOALL_FUNCARG fn) \ + { \ + void (*fn_conv)(cbargtype *, argtype *) = (void (*)(cbargtype *, argtype *))fn; \ + fn_conv((cbargtype *)node, (argtype *)arg); \ + } \ static ossl_unused ossl_inline void \ lh_##type##_doall_##argtype(LHASH_OF(type) *lh, \ void (*fn)(cbargtype *, argtype *), \ argtype *arg) \ { \ - OPENSSL_LH_doall_arg((OPENSSL_LHASH *)lh, (OPENSSL_LH_DOALL_FUNCARG)fn, (void *)arg); \ + OPENSSL_LH_doall_arg_thunk((OPENSSL_LHASH *)lh, \ + lh_##type##_doall_##argtype##_thunk, \ + (OPENSSL_LH_DOALL_FUNCARG)fn, \ + (void *)arg); \ } \ LHASH_OF(type) DEFINE_LHASH_OF_INTERNAL(OPENSSL_STRING); -#define lh_OPENSSL_STRING_new(hfn, cmp) ((LHASH_OF(OPENSSL_STRING) *)OPENSSL_LH_new(ossl_check_OPENSSL_STRING_lh_hashfunc_type(hfn), ossl_check_OPENSSL_STRING_lh_compfunc_type(cmp))) +#define lh_OPENSSL_STRING_new(hfn, cmp) ((LHASH_OF(OPENSSL_STRING) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new(ossl_check_OPENSSL_STRING_lh_hashfunc_type(hfn), ossl_check_OPENSSL_STRING_lh_compfunc_type(cmp)), lh_OPENSSL_STRING_hash_thunk, lh_OPENSSL_STRING_comp_thunk, lh_OPENSSL_STRING_doall_thunk, lh_OPENSSL_STRING_doall_arg_thunk)) #define lh_OPENSSL_STRING_free(lh) OPENSSL_LH_free(ossl_check_OPENSSL_STRING_lh_type(lh)) #define lh_OPENSSL_STRING_flush(lh) OPENSSL_LH_flush(ossl_check_OPENSSL_STRING_lh_type(lh)) #define lh_OPENSSL_STRING_insert(lh, ptr) ((OPENSSL_STRING *)OPENSSL_LH_insert(ossl_check_OPENSSL_STRING_lh_type(lh), ossl_check_OPENSSL_STRING_lh_plain_type(ptr))) @@ -265,7 +375,7 @@ DEFINE_LHASH_OF_INTERNAL(OPENSSL_STRING); #define lh_OPENSSL_STRING_set_down_load(lh, dl) OPENSSL_LH_set_down_load(ossl_check_OPENSSL_STRING_lh_type(lh), dl) #define lh_OPENSSL_STRING_doall(lh, dfn) OPENSSL_LH_doall(ossl_check_OPENSSL_STRING_lh_type(lh), ossl_check_OPENSSL_STRING_lh_doallfunc_type(dfn)) DEFINE_LHASH_OF_INTERNAL(OPENSSL_CSTRING); -#define lh_OPENSSL_CSTRING_new(hfn, cmp) ((LHASH_OF(OPENSSL_CSTRING) *)OPENSSL_LH_new(ossl_check_OPENSSL_CSTRING_lh_hashfunc_type(hfn), ossl_check_OPENSSL_CSTRING_lh_compfunc_type(cmp))) +#define lh_OPENSSL_CSTRING_new(hfn, cmp) ((LHASH_OF(OPENSSL_CSTRING) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new(ossl_check_OPENSSL_CSTRING_lh_hashfunc_type(hfn), ossl_check_OPENSSL_CSTRING_lh_compfunc_type(cmp)), lh_OPENSSL_CSTRING_hash_thunk, lh_OPENSSL_CSTRING_comp_thunk, lh_OPENSSL_CSTRING_doall_thunk, lh_OPENSSL_CSTRING_doall_arg_thunk)) #define lh_OPENSSL_CSTRING_free(lh) OPENSSL_LH_free(ossl_check_OPENSSL_CSTRING_lh_type(lh)) #define lh_OPENSSL_CSTRING_flush(lh) OPENSSL_LH_flush(ossl_check_OPENSSL_CSTRING_lh_type(lh)) #define lh_OPENSSL_CSTRING_insert(lh, ptr) ((OPENSSL_CSTRING *)OPENSSL_LH_insert(ossl_check_OPENSSL_CSTRING_lh_type(lh), ossl_check_OPENSSL_CSTRING_lh_plain_type(ptr))) diff --git a/deps/openssl/config/archs/linux-aarch64/asm/include/openssl/opensslv.h b/deps/openssl/config/archs/linux-aarch64/asm/include/openssl/opensslv.h index 5fb5bc63056fe0..dd50d89cb9982d 100644 --- a/deps/openssl/config/archs/linux-aarch64/asm/include/openssl/opensslv.h +++ b/deps/openssl/config/archs/linux-aarch64/asm/include/openssl/opensslv.h @@ -28,8 +28,8 @@ extern "C" { * These macros express version number MAJOR.MINOR.PATCH exactly */ # define OPENSSL_VERSION_MAJOR 3 -# define OPENSSL_VERSION_MINOR 0 -# define OPENSSL_VERSION_PATCH 17 +# define OPENSSL_VERSION_MINOR 5 +# define OPENSSL_VERSION_PATCH 1 /* * Additional version information @@ -74,8 +74,8 @@ extern "C" { * longer variant with OPENSSL_VERSION_PRE_RELEASE_STR and * OPENSSL_VERSION_BUILD_METADATA_STR appended. */ -# define OPENSSL_VERSION_STR "3.0.17" -# define OPENSSL_FULL_VERSION_STR "3.0.17" +# define OPENSSL_VERSION_STR "3.5.1" +# define OPENSSL_FULL_VERSION_STR "3.5.1" /* * SECTION 3: ADDITIONAL METADATA @@ -88,7 +88,7 @@ extern "C" { * SECTION 4: BACKWARD COMPATIBILITY */ -# define OPENSSL_VERSION_TEXT "OpenSSL 3.0.17 1 Jul 2025" +# define OPENSSL_VERSION_TEXT "OpenSSL 3.5.1 1 Jul 2025" /* Synthesize OPENSSL_VERSION_NUMBER with the layout 0xMNN00PPSL */ # ifdef OPENSSL_VERSION_PRE_RELEASE diff --git a/deps/openssl/config/archs/linux-aarch64/asm/include/openssl/pkcs12.h b/deps/openssl/config/archs/linux-aarch64/asm/include/openssl/pkcs12.h index c5e0cab06491ec..0809645dad0bbf 100644 --- a/deps/openssl/config/archs/linux-aarch64/asm/include/openssl/pkcs12.h +++ b/deps/openssl/config/archs/linux-aarch64/asm/include/openssl/pkcs12.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/pkcs12.h.in * - * Copyright 1999-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1999-2024 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -25,6 +25,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -41,6 +44,7 @@ extern "C" { # define PKCS12_MAC_KEY_LENGTH 20 +/* The macro is expected to be used only internally. Kept for backwards compatibility. */ # define PKCS12_SALT_LEN 8 /* It's not clear if these are actually needed... */ @@ -130,7 +134,9 @@ int PKCS12_SAFEBAG_get_bag_nid(const PKCS12_SAFEBAG *bag); const ASN1_TYPE *PKCS12_SAFEBAG_get0_bag_obj(const PKCS12_SAFEBAG *bag); const ASN1_OBJECT *PKCS12_SAFEBAG_get0_bag_type(const PKCS12_SAFEBAG *bag); +X509 *PKCS12_SAFEBAG_get1_cert_ex(const PKCS12_SAFEBAG *bag, OSSL_LIB_CTX *libctx, const char *propq); X509 *PKCS12_SAFEBAG_get1_cert(const PKCS12_SAFEBAG *bag); +X509_CRL *PKCS12_SAFEBAG_get1_crl_ex(const PKCS12_SAFEBAG *bag, OSSL_LIB_CTX *libctx, const char *propq); X509_CRL *PKCS12_SAFEBAG_get1_crl(const PKCS12_SAFEBAG *bag); const STACK_OF(PKCS12_SAFEBAG) * PKCS12_SAFEBAG_get0_safes(const PKCS12_SAFEBAG *bag); @@ -218,6 +224,7 @@ ASN1_TYPE *PKCS12_get_attr_gen(const STACK_OF(X509_ATTRIBUTE) *attrs, char *PKCS12_get_friendlyname(PKCS12_SAFEBAG *bag); const STACK_OF(X509_ATTRIBUTE) * PKCS12_SAFEBAG_get0_attrs(const PKCS12_SAFEBAG *bag); +void PKCS12_SAFEBAG_set0_attrs(PKCS12_SAFEBAG *bag, STACK_OF(X509_ATTRIBUTE) *attrs); unsigned char *PKCS12_pbe_crypt(const X509_ALGOR *algor, const char *pass, int passlen, const unsigned char *in, int inlen, @@ -285,6 +292,9 @@ int PKCS12_verify_mac(PKCS12 *p12, const char *pass, int passlen); int PKCS12_set_mac(PKCS12 *p12, const char *pass, int passlen, unsigned char *salt, int saltlen, int iter, const EVP_MD *md_type); +int PKCS12_set_pbmac1_pbkdf2(PKCS12 *p12, const char *pass, int passlen, + unsigned char *salt, int saltlen, int iter, + const EVP_MD *md_type, const char *prf_md_name); int PKCS12_setup_mac(PKCS12 *p12, int iter, unsigned char *salt, int saltlen, const EVP_MD *md_type); unsigned char *OPENSSL_asc2uni(const char *asc, int asclen, @@ -305,6 +315,7 @@ DECLARE_ASN1_ITEM(PKCS12_AUTHSAFES) void PKCS12_PBE_add(void); int PKCS12_parse(PKCS12 *p12, const char *pass, EVP_PKEY **pkey, X509 **cert, STACK_OF(X509) **ca); +typedef int PKCS12_create_cb(PKCS12_SAFEBAG *bag, void *cbarg); PKCS12 *PKCS12_create(const char *pass, const char *name, EVP_PKEY *pkey, X509 *cert, STACK_OF(X509) *ca, int nid_key, int nid_cert, int iter, int mac_iter, int keytype); @@ -312,6 +323,11 @@ PKCS12 *PKCS12_create_ex(const char *pass, const char *name, EVP_PKEY *pkey, X509 *cert, STACK_OF(X509) *ca, int nid_key, int nid_cert, int iter, int mac_iter, int keytype, OSSL_LIB_CTX *ctx, const char *propq); +PKCS12 *PKCS12_create_ex2(const char *pass, const char *name, EVP_PKEY *pkey, + X509 *cert, STACK_OF(X509) *ca, int nid_key, int nid_cert, + int iter, int mac_iter, int keytype, + OSSL_LIB_CTX *ctx, const char *propq, + PKCS12_create_cb *cb, void *cbarg); PKCS12_SAFEBAG *PKCS12_add_cert(STACK_OF(PKCS12_SAFEBAG) **pbags, X509 *cert); PKCS12_SAFEBAG *PKCS12_add_key(STACK_OF(PKCS12_SAFEBAG) **pbags, diff --git a/deps/openssl/config/archs/linux-aarch64/asm/include/openssl/pkcs7.h b/deps/openssl/config/archs/linux-aarch64/asm/include/openssl/pkcs7.h index 0ce79bf4fa160e..fa68462aff973b 100644 --- a/deps/openssl/config/archs/linux-aarch64/asm/include/openssl/pkcs7.h +++ b/deps/openssl/config/archs/linux-aarch64/asm/include/openssl/pkcs7.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/pkcs7.h.in * - * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -28,6 +28,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -131,8 +134,8 @@ SKM_DEFINE_STACK_OF_INTERNAL(PKCS7_RECIP_INFO, PKCS7_RECIP_INFO, PKCS7_RECIP_INF typedef struct pkcs7_signed_st { ASN1_INTEGER *version; /* version 1 */ STACK_OF(X509_ALGOR) *md_algs; /* md used */ - STACK_OF(X509) *cert; /* [ 0 ] */ - STACK_OF(X509_CRL) *crl; /* [ 1 ] */ + STACK_OF(X509) *cert; /* [ 0 ] */ /* name should be 'certificates' */ + STACK_OF(X509_CRL) *crl; /* [ 1 ] */ /* name should be 'crls' */ STACK_OF(PKCS7_SIGNER_INFO) *signer_info; struct pkcs7_st *contents; } PKCS7_SIGNED; @@ -158,8 +161,8 @@ typedef struct pkcs7_enveloped_st { typedef struct pkcs7_signedandenveloped_st { ASN1_INTEGER *version; /* version 1 */ STACK_OF(X509_ALGOR) *md_algs; /* md used */ - STACK_OF(X509) *cert; /* [ 0 ] */ - STACK_OF(X509_CRL) *crl; /* [ 1 ] */ + STACK_OF(X509) *cert; /* [ 0 ] */ /* name should be 'certificates' */ + STACK_OF(X509_CRL) *crl; /* [ 1 ] */ /* name should be 'crls' */ STACK_OF(PKCS7_SIGNER_INFO) *signer_info; PKCS7_ENC_CONTENT *enc_data; STACK_OF(PKCS7_RECIP_INFO) *recipientinfo; @@ -200,7 +203,7 @@ typedef struct pkcs7_st { /* NID_pkcs7_data */ ASN1_OCTET_STRING *data; /* NID_pkcs7_signed */ - PKCS7_SIGNED *sign; + PKCS7_SIGNED *sign; /* field name 'signed' would clash with C keyword */ /* NID_pkcs7_enveloped */ PKCS7_ENVELOPE *enveloped; /* NID_pkcs7_signedAndEnveloped */ @@ -341,13 +344,13 @@ int PKCS7_SIGNER_INFO_set(PKCS7_SIGNER_INFO *p7i, X509 *x509, EVP_PKEY *pkey, const EVP_MD *dgst); int PKCS7_SIGNER_INFO_sign(PKCS7_SIGNER_INFO *si); int PKCS7_add_signer(PKCS7 *p7, PKCS7_SIGNER_INFO *p7i); -int PKCS7_add_certificate(PKCS7 *p7, X509 *x509); -int PKCS7_add_crl(PKCS7 *p7, X509_CRL *x509); +int PKCS7_add_certificate(PKCS7 *p7, X509 *cert); +int PKCS7_add_crl(PKCS7 *p7, X509_CRL *crl); int PKCS7_content_new(PKCS7 *p7, int nid); int PKCS7_dataVerify(X509_STORE *cert_store, X509_STORE_CTX *ctx, BIO *bio, PKCS7 *p7, PKCS7_SIGNER_INFO *si); int PKCS7_signatureVerify(BIO *bio, PKCS7 *p7, PKCS7_SIGNER_INFO *si, - X509 *x509); + X509 *signer); BIO *PKCS7_dataInit(PKCS7 *p7, BIO *bio); int PKCS7_dataFinal(PKCS7 *p7, BIO *bio); diff --git a/deps/openssl/config/archs/linux-aarch64/asm/include/openssl/ssl.h b/deps/openssl/config/archs/linux-aarch64/asm/include/openssl/ssl.h index 3df725c56d6c5e..7e3d89c7ef3dc9 100644 --- a/deps/openssl/config/archs/linux-aarch64/asm/include/openssl/ssl.h +++ b/deps/openssl/config/archs/linux-aarch64/asm/include/openssl/ssl.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/ssl.h.in * - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved * Copyright 2005 Nokia. All rights reserved. * @@ -24,6 +24,7 @@ # endif # include +# include # include # include # include @@ -42,6 +43,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -231,10 +235,8 @@ typedef struct ssl_cipher_st SSL_CIPHER; typedef struct ssl_session_st SSL_SESSION; typedef struct tls_sigalgs_st TLS_SIGALGS; typedef struct ssl_conf_ctx_st SSL_CONF_CTX; -typedef struct ssl_comp_st SSL_COMP; STACK_OF(SSL_CIPHER); -STACK_OF(SSL_COMP); /* SRTP protection profiles for use with the use_srtp extension (RFC 5764)*/ typedef struct srtp_protection_profile_st { @@ -278,28 +280,31 @@ typedef int (*tls_session_secret_cb_fn)(SSL *s, void *secret, int *secret_len, /* Extension context codes */ /* This extension is only allowed in TLS */ -#define SSL_EXT_TLS_ONLY 0x0001 +#define SSL_EXT_TLS_ONLY 0x00001 /* This extension is only allowed in DTLS */ -#define SSL_EXT_DTLS_ONLY 0x0002 +#define SSL_EXT_DTLS_ONLY 0x00002 /* Some extensions may be allowed in DTLS but we don't implement them for it */ -#define SSL_EXT_TLS_IMPLEMENTATION_ONLY 0x0004 +#define SSL_EXT_TLS_IMPLEMENTATION_ONLY 0x00004 /* Most extensions are not defined for SSLv3 but EXT_TYPE_renegotiate is */ -#define SSL_EXT_SSL3_ALLOWED 0x0008 +#define SSL_EXT_SSL3_ALLOWED 0x00008 /* Extension is only defined for TLS1.2 and below */ -#define SSL_EXT_TLS1_2_AND_BELOW_ONLY 0x0010 +#define SSL_EXT_TLS1_2_AND_BELOW_ONLY 0x00010 /* Extension is only defined for TLS1.3 and above */ -#define SSL_EXT_TLS1_3_ONLY 0x0020 +#define SSL_EXT_TLS1_3_ONLY 0x00020 /* Ignore this extension during parsing if we are resuming */ -#define SSL_EXT_IGNORE_ON_RESUMPTION 0x0040 -#define SSL_EXT_CLIENT_HELLO 0x0080 +#define SSL_EXT_IGNORE_ON_RESUMPTION 0x00040 +#define SSL_EXT_CLIENT_HELLO 0x00080 /* Really means TLS1.2 or below */ -#define SSL_EXT_TLS1_2_SERVER_HELLO 0x0100 -#define SSL_EXT_TLS1_3_SERVER_HELLO 0x0200 -#define SSL_EXT_TLS1_3_ENCRYPTED_EXTENSIONS 0x0400 -#define SSL_EXT_TLS1_3_HELLO_RETRY_REQUEST 0x0800 -#define SSL_EXT_TLS1_3_CERTIFICATE 0x1000 -#define SSL_EXT_TLS1_3_NEW_SESSION_TICKET 0x2000 -#define SSL_EXT_TLS1_3_CERTIFICATE_REQUEST 0x4000 +#define SSL_EXT_TLS1_2_SERVER_HELLO 0x00100 +#define SSL_EXT_TLS1_3_SERVER_HELLO 0x00200 +#define SSL_EXT_TLS1_3_ENCRYPTED_EXTENSIONS 0x00400 +#define SSL_EXT_TLS1_3_HELLO_RETRY_REQUEST 0x00800 +#define SSL_EXT_TLS1_3_CERTIFICATE 0x01000 +#define SSL_EXT_TLS1_3_NEW_SESSION_TICKET 0x02000 +#define SSL_EXT_TLS1_3_CERTIFICATE_REQUEST 0x04000 +#define SSL_EXT_TLS1_3_CERTIFICATE_COMPRESSION 0x08000 +/* When sending a raw public key in a certificate message */ +#define SSL_EXT_TLS1_3_RAW_PUBLIC_KEY 0x10000 /* Typedefs for handling custom extensions */ @@ -404,7 +409,7 @@ typedef int (*SSL_async_callback_fn)(SSL *s, void *arg); */ # define SSL_OP_CIPHER_SERVER_PREFERENCE SSL_OP_BIT(22) /* - * If set, a server will allow a client to issue a SSLv3.0 version + * If set, a server will allow a client to issue an SSLv3.0 version * number as latest version supported in the premaster secret, even when * TLSv1.0 (version 3.1) was announced in the client hello. Normally * this is forbidden to prevent version rollback attacks. @@ -430,6 +435,19 @@ typedef int (*SSL_async_callback_fn)(SSL *s, void *arg); * interoperability with CryptoPro CSP 3.x */ # define SSL_OP_CRYPTOPRO_TLSEXT_BUG SSL_OP_BIT(31) +/* + * Disable RFC8879 certificate compression + * SSL_OP_NO_TX_CERTIFICATE_COMPRESSION: don't send compressed certificates, + * and ignore the extension when received. + * SSL_OP_NO_RX_CERTIFICATE_COMPRESSION: don't send the extension, and + * subsequently indicating that receiving is not supported + */ +# define SSL_OP_NO_TX_CERTIFICATE_COMPRESSION SSL_OP_BIT(32) +# define SSL_OP_NO_RX_CERTIFICATE_COMPRESSION SSL_OP_BIT(33) + /* Enable KTLS TX zerocopy on Linux */ +# define SSL_OP_ENABLE_KTLS_TX_ZEROCOPY_SENDFILE SSL_OP_BIT(34) + +#define SSL_OP_PREFER_NO_DHE_KEX SSL_OP_BIT(35) /* * Option "collections." @@ -574,6 +592,8 @@ typedef int (*SSL_async_callback_fn)(SSL *s, void *arg); # define CERT_PKEY_CERT_TYPE 0x400 /* Cert chain suitable to Suite B */ # define CERT_PKEY_SUITEB 0x800 +/* Cert pkey valid for raw public key use */ +# define CERT_PKEY_RPK 0x1000 # define SSL_CONF_FLAG_CMDLINE 0x1 # define SSL_CONF_FLAG_FILE 0x2 @@ -965,6 +985,7 @@ uint32_t SSL_get_recv_max_early_data(const SSL *s); # include /* This is mostly sslv3 with a few tweaks */ # include /* Datagram TLS */ # include /* Support for the use_srtp extension */ +# include #ifdef __cplusplus extern "C" { @@ -1000,32 +1021,6 @@ SKM_DEFINE_STACK_OF_INTERNAL(SSL_CIPHER, const SSL_CIPHER, SSL_CIPHER) #define sk_SSL_CIPHER_dup(sk) ((STACK_OF(SSL_CIPHER) *)OPENSSL_sk_dup(ossl_check_const_SSL_CIPHER_sk_type(sk))) #define sk_SSL_CIPHER_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(SSL_CIPHER) *)OPENSSL_sk_deep_copy(ossl_check_const_SSL_CIPHER_sk_type(sk), ossl_check_SSL_CIPHER_copyfunc_type(copyfunc), ossl_check_SSL_CIPHER_freefunc_type(freefunc))) #define sk_SSL_CIPHER_set_cmp_func(sk, cmp) ((sk_SSL_CIPHER_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_SSL_CIPHER_sk_type(sk), ossl_check_SSL_CIPHER_compfunc_type(cmp))) -SKM_DEFINE_STACK_OF_INTERNAL(SSL_COMP, SSL_COMP, SSL_COMP) -#define sk_SSL_COMP_num(sk) OPENSSL_sk_num(ossl_check_const_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_value(sk, idx) ((SSL_COMP *)OPENSSL_sk_value(ossl_check_const_SSL_COMP_sk_type(sk), (idx))) -#define sk_SSL_COMP_new(cmp) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new(ossl_check_SSL_COMP_compfunc_type(cmp))) -#define sk_SSL_COMP_new_null() ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new_null()) -#define sk_SSL_COMP_new_reserve(cmp, n) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new_reserve(ossl_check_SSL_COMP_compfunc_type(cmp), (n))) -#define sk_SSL_COMP_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_SSL_COMP_sk_type(sk), (n)) -#define sk_SSL_COMP_free(sk) OPENSSL_sk_free(ossl_check_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_zero(sk) OPENSSL_sk_zero(ossl_check_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_delete(sk, i) ((SSL_COMP *)OPENSSL_sk_delete(ossl_check_SSL_COMP_sk_type(sk), (i))) -#define sk_SSL_COMP_delete_ptr(sk, ptr) ((SSL_COMP *)OPENSSL_sk_delete_ptr(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr))) -#define sk_SSL_COMP_push(sk, ptr) OPENSSL_sk_push(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) -#define sk_SSL_COMP_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) -#define sk_SSL_COMP_pop(sk) ((SSL_COMP *)OPENSSL_sk_pop(ossl_check_SSL_COMP_sk_type(sk))) -#define sk_SSL_COMP_shift(sk) ((SSL_COMP *)OPENSSL_sk_shift(ossl_check_SSL_COMP_sk_type(sk))) -#define sk_SSL_COMP_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_SSL_COMP_sk_type(sk),ossl_check_SSL_COMP_freefunc_type(freefunc)) -#define sk_SSL_COMP_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr), (idx)) -#define sk_SSL_COMP_set(sk, idx, ptr) ((SSL_COMP *)OPENSSL_sk_set(ossl_check_SSL_COMP_sk_type(sk), (idx), ossl_check_SSL_COMP_type(ptr))) -#define sk_SSL_COMP_find(sk, ptr) OPENSSL_sk_find(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) -#define sk_SSL_COMP_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) -#define sk_SSL_COMP_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr), pnum) -#define sk_SSL_COMP_sort(sk) OPENSSL_sk_sort(ossl_check_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_dup(sk) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_dup(ossl_check_const_SSL_COMP_sk_type(sk))) -#define sk_SSL_COMP_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_deep_copy(ossl_check_const_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_copyfunc_type(copyfunc), ossl_check_SSL_COMP_freefunc_type(freefunc))) -#define sk_SSL_COMP_set_cmp_func(sk, cmp) ((sk_SSL_COMP_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_compfunc_type(cmp))) /* compatibility */ @@ -1066,6 +1061,7 @@ typedef enum { DTLS_ST_CR_HELLO_VERIFY_REQUEST, TLS_ST_CR_SRVR_HELLO, TLS_ST_CR_CERT, + TLS_ST_CR_COMP_CERT, TLS_ST_CR_CERT_STATUS, TLS_ST_CR_KEY_EXCH, TLS_ST_CR_CERT_REQ, @@ -1075,6 +1071,7 @@ typedef enum { TLS_ST_CR_FINISHED, TLS_ST_CW_CLNT_HELLO, TLS_ST_CW_CERT, + TLS_ST_CW_COMP_CERT, TLS_ST_CW_KEY_EXCH, TLS_ST_CW_CERT_VRFY, TLS_ST_CW_CHANGE, @@ -1085,10 +1082,12 @@ typedef enum { DTLS_ST_SW_HELLO_VERIFY_REQUEST, TLS_ST_SW_SRVR_HELLO, TLS_ST_SW_CERT, + TLS_ST_SW_COMP_CERT, TLS_ST_SW_KEY_EXCH, TLS_ST_SW_CERT_REQ, TLS_ST_SW_SRVR_DONE, TLS_ST_SR_CERT, + TLS_ST_SR_COMP_CERT, TLS_ST_SR_KEY_EXCH, TLS_ST_SR_CERT_VRFY, TLS_ST_SR_NEXT_PROTO, @@ -1380,9 +1379,13 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) # define SSL_CTRL_GET_SIGNATURE_NID 132 # define SSL_CTRL_GET_TMP_KEY 133 # define SSL_CTRL_GET_NEGOTIATED_GROUP 134 +# define SSL_CTRL_GET_IANA_GROUPS 135 # define SSL_CTRL_SET_RETRY_VERIFY 136 # define SSL_CTRL_GET_VERIFY_CERT_STORE 137 # define SSL_CTRL_GET_CHAIN_CERT_STORE 138 +# define SSL_CTRL_GET0_IMPLEMENTED_GROUPS 139 +# define SSL_CTRL_GET_SIGNATURE_NAME 140 +# define SSL_CTRL_GET_PEER_SIGNATURE_NAME 141 # define SSL_CERT_SET_FIRST 1 # define SSL_CERT_SET_NEXT 2 # define SSL_CERT_SET_SERVER 3 @@ -1485,10 +1488,15 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) # define SSL_get1_groups(s, glist) \ SSL_ctrl(s,SSL_CTRL_GET_GROUPS,0,(int*)(glist)) +# define SSL_get0_iana_groups(s, plst) \ + SSL_ctrl(s,SSL_CTRL_GET_IANA_GROUPS,0,(uint16_t **)(plst)) # define SSL_CTX_set1_groups(ctx, glist, glistlen) \ SSL_CTX_ctrl(ctx,SSL_CTRL_SET_GROUPS,glistlen,(int *)(glist)) # define SSL_CTX_set1_groups_list(ctx, s) \ SSL_CTX_ctrl(ctx,SSL_CTRL_SET_GROUPS_LIST,0,(char *)(s)) +# define SSL_CTX_get0_implemented_groups(ctx, all, out) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_GET0_IMPLEMENTED_GROUPS, all, \ + (STACK_OF(OPENSSL_CSTRING) *)(out)) # define SSL_set1_groups(s, glist, glistlen) \ SSL_ctrl(s,SSL_CTRL_SET_GROUPS,glistlen,(char *)(glist)) # define SSL_set1_groups_list(s, str) \ @@ -1520,8 +1528,12 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) (char *)(clist)) # define SSL_set1_client_certificate_types(s, clist, clistlen) \ SSL_ctrl(s,SSL_CTRL_SET_CLIENT_CERT_TYPES,clistlen,(char *)(clist)) +# define SSL_get0_signature_name(s, str) \ + SSL_ctrl(s,SSL_CTRL_GET_SIGNATURE_NAME,0,(1?(str):(const char **)NULL)) # define SSL_get_signature_nid(s, pn) \ SSL_ctrl(s,SSL_CTRL_GET_SIGNATURE_NID,0,pn) +# define SSL_get0_peer_signature_name(s, str) \ + SSL_ctrl(s,SSL_CTRL_GET_PEER_SIGNATURE_NAME,0,(1?(str):(const char **)NULL)) # define SSL_get_peer_signature_nid(s, pn) \ SSL_ctrl(s,SSL_CTRL_GET_PEER_SIGNATURE_NID,0,pn) # define SSL_get_peer_tmp_key(s, pk) \ @@ -1549,6 +1561,7 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) # define SSL_get_max_proto_version(s) \ SSL_ctrl(s, SSL_CTRL_GET_MAX_PROTO_VERSION, 0, NULL) +const char *SSL_get0_group_name(SSL *s); const char *SSL_group_to_name(SSL *s, int id); /* Backwards compatibility, original 1.1.0 names */ @@ -1613,7 +1626,11 @@ void SSL_CTX_set1_cert_store(SSL_CTX *, X509_STORE *); __owur int SSL_want(const SSL *s); __owur int SSL_clear(SSL *s); +#ifndef OPENSSL_NO_DEPRECATED_3_4 +OSSL_DEPRECATEDIN_3_4_FOR("not Y2038-safe, replace with SSL_CTX_flush_sessions_ex()") void SSL_CTX_flush_sessions(SSL_CTX *ctx, long tm); +#endif +void SSL_CTX_flush_sessions_ex(SSL_CTX *ctx, time_t tm); __owur const SSL_CIPHER *SSL_get_current_cipher(const SSL *s); __owur const SSL_CIPHER *SSL_get_pending_cipher(const SSL *s); @@ -1725,13 +1742,21 @@ __owur const char *SSL_state_string(const SSL *s); __owur const char *SSL_rstate_string(const SSL *s); __owur const char *SSL_state_string_long(const SSL *s); __owur const char *SSL_rstate_string_long(const SSL *s); + +#ifndef OPENSSL_NO_DEPRECATED_3_4 +OSSL_DEPRECATEDIN_3_4_FOR("not Y2038-safe, replace with SSL_SESSION_get_time_ex()") __owur long SSL_SESSION_get_time(const SSL_SESSION *s); +OSSL_DEPRECATEDIN_3_4_FOR("not Y2038-safe, replace with SSL_SESSION_set_time_ex()") __owur long SSL_SESSION_set_time(SSL_SESSION *s, long t); +#endif __owur long SSL_SESSION_get_timeout(const SSL_SESSION *s); __owur long SSL_SESSION_set_timeout(SSL_SESSION *s, long t); __owur int SSL_SESSION_get_protocol_version(const SSL_SESSION *s); __owur int SSL_SESSION_set_protocol_version(SSL_SESSION *s, int version); +__owur time_t SSL_SESSION_get_time_ex(const SSL_SESSION *s); +__owur time_t SSL_SESSION_set_time_ex(SSL_SESSION *s, time_t t); + __owur const char *SSL_SESSION_get0_hostname(const SSL_SESSION *s); __owur int SSL_SESSION_set1_hostname(SSL_SESSION *s, const char *hostname); void SSL_SESSION_get0_alpn_selected(const SSL_SESSION *s, @@ -1783,6 +1808,9 @@ __owur int SSL_has_matching_session_id(const SSL *s, unsigned int id_len); SSL_SESSION *d2i_SSL_SESSION(SSL_SESSION **a, const unsigned char **pp, long length); +SSL_SESSION *d2i_SSL_SESSION_ex(SSL_SESSION **a, const unsigned char **pp, + long length, OSSL_LIB_CTX *libctx, + const char *propq); # ifdef OPENSSL_X509_H __owur X509 *SSL_get0_peer_certificate(const SSL *s); @@ -1840,6 +1868,8 @@ __owur int SSL_CTX_set_session_id_context(SSL_CTX *ctx, SSL *SSL_new(SSL_CTX *ctx); int SSL_up_ref(SSL *s); int SSL_is_dtls(const SSL *s); +int SSL_is_tls(const SSL *s); +int SSL_is_quic(const SSL *s); __owur int SSL_set_session_id_context(SSL *ssl, const unsigned char *sid_ctx, unsigned int sid_ctx_len); @@ -1848,8 +1878,8 @@ __owur int SSL_set_purpose(SSL *ssl, int purpose); __owur int SSL_CTX_set_trust(SSL_CTX *ctx, int trust); __owur int SSL_set_trust(SSL *ssl, int trust); -__owur int SSL_set1_host(SSL *s, const char *hostname); -__owur int SSL_add1_host(SSL *s, const char *hostname); +__owur int SSL_set1_host(SSL *s, const char *host); +__owur int SSL_add1_host(SSL *s, const char *host); __owur const char *SSL_get0_peername(SSL *s); void SSL_set_hostflags(SSL *s, unsigned int flags); @@ -1924,6 +1954,11 @@ OSSL_DEPRECATEDIN_3_0 __owur char *SSL_get_srp_userinfo(SSL *s); typedef int (*SSL_client_hello_cb_fn) (SSL *s, int *al, void *arg); void SSL_CTX_set_client_hello_cb(SSL_CTX *c, SSL_client_hello_cb_fn cb, void *arg); +typedef int (*SSL_new_pending_conn_cb_fn) (SSL_CTX *ctx, SSL *new_ssl, + void *arg); +void SSL_CTX_set_new_pending_conn_cb(SSL_CTX *c, SSL_new_pending_conn_cb_fn cb, + void *arg); + int SSL_client_hello_isv2(SSL *s); unsigned int SSL_client_hello_get0_legacy_version(SSL *s); size_t SSL_client_hello_get0_random(SSL *s, const unsigned char **out); @@ -1932,6 +1967,8 @@ size_t SSL_client_hello_get0_ciphers(SSL *s, const unsigned char **out); size_t SSL_client_hello_get0_compression_methods(SSL *s, const unsigned char **out); int SSL_client_hello_get1_extensions_present(SSL *s, int **out, size_t *outlen); +int SSL_client_hello_get_extension_order(SSL *s, uint16_t *exts, + size_t *num_exts); int SSL_client_hello_get0_ext(SSL *s, unsigned int type, const unsigned char **out, size_t *outlen); @@ -1978,6 +2015,12 @@ long SSL_callback_ctrl(SSL *, int, void (*)(void)); long SSL_CTX_ctrl(SSL_CTX *ctx, int cmd, long larg, void *parg); long SSL_CTX_callback_ctrl(SSL_CTX *, int, void (*)(void)); +# define SSL_WRITE_FLAG_CONCLUDE (1U << 0) + +__owur int SSL_write_ex2(SSL *s, const void *buf, size_t num, + uint64_t flags, + size_t *written); + # define SSL_EARLY_DATA_NOT_SENT 0 # define SSL_EARLY_DATA_REJECTED 1 # define SSL_EARLY_DATA_ACCEPTED 2 @@ -1986,6 +2029,7 @@ __owur int SSL_get_early_data_status(const SSL *s); __owur int SSL_get_error(const SSL *s, int ret_code); __owur const char *SSL_get_version(const SSL *s); +__owur int SSL_get_handshake_rtt(const SSL *s, uint64_t *rtt); /* This sets the 'default' SSL version that SSL_new() will create */ # ifndef OPENSSL_NO_DEPRECATED_3_0 @@ -2281,6 +2325,8 @@ void SSL_CTX_set_record_padding_callback(SSL_CTX *ctx, void SSL_CTX_set_record_padding_callback_arg(SSL_CTX *ctx, void *arg); void *SSL_CTX_get_record_padding_callback_arg(const SSL_CTX *ctx); int SSL_CTX_set_block_padding(SSL_CTX *ctx, size_t block_size); +int SSL_CTX_set_block_padding_ex(SSL_CTX *ctx, size_t app_block_size, + size_t hs_block_size); int SSL_set_record_padding_callback(SSL *ssl, size_t (*cb) (SSL *ssl, int type, @@ -2288,12 +2334,255 @@ int SSL_set_record_padding_callback(SSL *ssl, void SSL_set_record_padding_callback_arg(SSL *ssl, void *arg); void *SSL_get_record_padding_callback_arg(const SSL *ssl); int SSL_set_block_padding(SSL *ssl, size_t block_size); - +int SSL_set_block_padding_ex(SSL *ssl, size_t app_block_size, + size_t hs_block_size); int SSL_set_num_tickets(SSL *s, size_t num_tickets); size_t SSL_get_num_tickets(const SSL *s); int SSL_CTX_set_num_tickets(SSL_CTX *ctx, size_t num_tickets); size_t SSL_CTX_get_num_tickets(const SSL_CTX *ctx); +/* QUIC support */ +int SSL_handle_events(SSL *s); +__owur int SSL_get_event_timeout(SSL *s, struct timeval *tv, int *is_infinite); +__owur int SSL_get_rpoll_descriptor(SSL *s, BIO_POLL_DESCRIPTOR *desc); +__owur int SSL_get_wpoll_descriptor(SSL *s, BIO_POLL_DESCRIPTOR *desc); +__owur int SSL_net_read_desired(SSL *s); +__owur int SSL_net_write_desired(SSL *s); +__owur int SSL_set_blocking_mode(SSL *s, int blocking); +__owur int SSL_get_blocking_mode(SSL *s); +__owur int SSL_set1_initial_peer_addr(SSL *s, const BIO_ADDR *peer_addr); +__owur SSL *SSL_get0_connection(SSL *s); +__owur int SSL_is_connection(SSL *s); + +__owur int SSL_is_listener(SSL *ssl); +__owur SSL *SSL_get0_listener(SSL *s); +#define SSL_LISTENER_FLAG_NO_VALIDATE (1UL << 1) +__owur SSL *SSL_new_listener(SSL_CTX *ctx, uint64_t flags); +__owur SSL *SSL_new_listener_from(SSL *ssl, uint64_t flags); +__owur SSL *SSL_new_from_listener(SSL *ssl, uint64_t flags); +#define SSL_ACCEPT_CONNECTION_NO_BLOCK (1UL << 0) +__owur SSL *SSL_accept_connection(SSL *ssl, uint64_t flags); +__owur size_t SSL_get_accept_connection_queue_len(SSL *ssl); +__owur int SSL_listen(SSL *ssl); + +__owur int SSL_is_domain(SSL *s); +__owur SSL *SSL_get0_domain(SSL *s); +__owur SSL *SSL_new_domain(SSL_CTX *ctx, uint64_t flags); + +#define SSL_DOMAIN_FLAG_SINGLE_THREAD (1U << 0) +#define SSL_DOMAIN_FLAG_MULTI_THREAD (1U << 1) +#define SSL_DOMAIN_FLAG_THREAD_ASSISTED (1U << 2) +#define SSL_DOMAIN_FLAG_BLOCKING (1U << 3) +#define SSL_DOMAIN_FLAG_LEGACY_BLOCKING (1U << 4) + +__owur int SSL_CTX_set_domain_flags(SSL_CTX *ctx, uint64_t domain_flags); +__owur int SSL_CTX_get_domain_flags(const SSL_CTX *ctx, uint64_t *domain_flags); +__owur int SSL_get_domain_flags(const SSL *ssl, uint64_t *domain_flags); + +#define SSL_STREAM_TYPE_NONE 0 +#define SSL_STREAM_TYPE_READ (1U << 0) +#define SSL_STREAM_TYPE_WRITE (1U << 1) +#define SSL_STREAM_TYPE_BIDI (SSL_STREAM_TYPE_READ | SSL_STREAM_TYPE_WRITE) +__owur int SSL_get_stream_type(SSL *s); + +__owur uint64_t SSL_get_stream_id(SSL *s); +__owur int SSL_is_stream_local(SSL *s); + +#define SSL_DEFAULT_STREAM_MODE_NONE 0 +#define SSL_DEFAULT_STREAM_MODE_AUTO_BIDI 1 +#define SSL_DEFAULT_STREAM_MODE_AUTO_UNI 2 +__owur int SSL_set_default_stream_mode(SSL *s, uint32_t mode); + +#define SSL_STREAM_FLAG_UNI (1U << 0) +#define SSL_STREAM_FLAG_NO_BLOCK (1U << 1) +#define SSL_STREAM_FLAG_ADVANCE (1U << 2) +__owur SSL *SSL_new_stream(SSL *s, uint64_t flags); + +#define SSL_INCOMING_STREAM_POLICY_AUTO 0 +#define SSL_INCOMING_STREAM_POLICY_ACCEPT 1 +#define SSL_INCOMING_STREAM_POLICY_REJECT 2 +__owur int SSL_set_incoming_stream_policy(SSL *s, int policy, uint64_t aec); + +#define SSL_ACCEPT_STREAM_NO_BLOCK (1U << 0) +__owur SSL *SSL_accept_stream(SSL *s, uint64_t flags); +__owur size_t SSL_get_accept_stream_queue_len(SSL *s); + +# ifndef OPENSSL_NO_QUIC +__owur int SSL_inject_net_dgram(SSL *s, const unsigned char *buf, + size_t buf_len, + const BIO_ADDR *peer, + const BIO_ADDR *local); +# endif + +typedef struct ssl_shutdown_ex_args_st { + uint64_t quic_error_code; + const char *quic_reason; +} SSL_SHUTDOWN_EX_ARGS; + +#define SSL_SHUTDOWN_FLAG_RAPID (1U << 0) +#define SSL_SHUTDOWN_FLAG_NO_STREAM_FLUSH (1U << 1) +#define SSL_SHUTDOWN_FLAG_NO_BLOCK (1U << 2) +#define SSL_SHUTDOWN_FLAG_WAIT_PEER (1U << 3) + +__owur int SSL_shutdown_ex(SSL *ssl, uint64_t flags, + const SSL_SHUTDOWN_EX_ARGS *args, + size_t args_len); + +__owur int SSL_stream_conclude(SSL *ssl, uint64_t flags); + +typedef struct ssl_stream_reset_args_st { + uint64_t quic_error_code; +} SSL_STREAM_RESET_ARGS; + +__owur int SSL_stream_reset(SSL *ssl, + const SSL_STREAM_RESET_ARGS *args, + size_t args_len); + +#define SSL_STREAM_STATE_NONE 0 +#define SSL_STREAM_STATE_OK 1 +#define SSL_STREAM_STATE_WRONG_DIR 2 +#define SSL_STREAM_STATE_FINISHED 3 +#define SSL_STREAM_STATE_RESET_LOCAL 4 +#define SSL_STREAM_STATE_RESET_REMOTE 5 +#define SSL_STREAM_STATE_CONN_CLOSED 6 +__owur int SSL_get_stream_read_state(SSL *ssl); +__owur int SSL_get_stream_write_state(SSL *ssl); + +__owur int SSL_get_stream_read_error_code(SSL *ssl, uint64_t *app_error_code); +__owur int SSL_get_stream_write_error_code(SSL *ssl, uint64_t *app_error_code); + +#define SSL_CONN_CLOSE_FLAG_LOCAL (1U << 0) +#define SSL_CONN_CLOSE_FLAG_TRANSPORT (1U << 1) + +typedef struct ssl_conn_close_info_st { + uint64_t error_code, frame_type; + const char *reason; + size_t reason_len; + uint32_t flags; +} SSL_CONN_CLOSE_INFO; + +__owur int SSL_get_conn_close_info(SSL *ssl, + SSL_CONN_CLOSE_INFO *info, + size_t info_len); + +# define SSL_VALUE_CLASS_GENERIC 0 +# define SSL_VALUE_CLASS_FEATURE_REQUEST 1 +# define SSL_VALUE_CLASS_FEATURE_PEER_REQUEST 2 +# define SSL_VALUE_CLASS_FEATURE_NEGOTIATED 3 + +# define SSL_VALUE_NONE 0 +# define SSL_VALUE_QUIC_STREAM_BIDI_LOCAL_AVAIL 1 +# define SSL_VALUE_QUIC_STREAM_BIDI_REMOTE_AVAIL 2 +# define SSL_VALUE_QUIC_STREAM_UNI_LOCAL_AVAIL 3 +# define SSL_VALUE_QUIC_STREAM_UNI_REMOTE_AVAIL 4 +# define SSL_VALUE_QUIC_IDLE_TIMEOUT 5 +# define SSL_VALUE_EVENT_HANDLING_MODE 6 +# define SSL_VALUE_STREAM_WRITE_BUF_SIZE 7 +# define SSL_VALUE_STREAM_WRITE_BUF_USED 8 +# define SSL_VALUE_STREAM_WRITE_BUF_AVAIL 9 + +# define SSL_VALUE_EVENT_HANDLING_MODE_INHERIT 0 +# define SSL_VALUE_EVENT_HANDLING_MODE_IMPLICIT 1 +# define SSL_VALUE_EVENT_HANDLING_MODE_EXPLICIT 2 + +int SSL_get_value_uint(SSL *s, uint32_t class_, uint32_t id, uint64_t *v); +int SSL_set_value_uint(SSL *s, uint32_t class_, uint32_t id, uint64_t v); + +# define SSL_get_generic_value_uint(ssl, id, v) \ + SSL_get_value_uint((ssl), SSL_VALUE_CLASS_GENERIC, (id), (v)) +# define SSL_set_generic_value_uint(ssl, id, v) \ + SSL_set_value_uint((ssl), SSL_VALUE_CLASS_GENERIC, (id), (v)) +# define SSL_get_feature_request_uint(ssl, id, v) \ + SSL_get_value_uint((ssl), SSL_VALUE_CLASS_FEATURE_REQUEST, (id), (v)) +# define SSL_set_feature_request_uint(ssl, id, v) \ + SSL_set_value_uint((ssl), SSL_VALUE_CLASS_FEATURE_REQUEST, (id), (v)) +# define SSL_get_feature_peer_request_uint(ssl, id, v) \ + SSL_get_value_uint((ssl), SSL_VALUE_CLASS_FEATURE_PEER_REQUEST, (id), (v)) +# define SSL_get_feature_negotiated_uint(ssl, id, v) \ + SSL_get_value_uint((ssl), SSL_VALUE_CLASS_FEATURE_NEGOTIATED, (id), (v)) + +# define SSL_get_quic_stream_bidi_local_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_QUIC_STREAM_BIDI_LOCAL_AVAIL, \ + (value)) +# define SSL_get_quic_stream_bidi_remote_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_QUIC_STREAM_BIDI_REMOTE_AVAIL, \ + (value)) +# define SSL_get_quic_stream_uni_local_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_QUIC_STREAM_UNI_LOCAL_AVAIL, \ + (value)) +# define SSL_get_quic_stream_uni_remote_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_QUIC_STREAM_UNI_REMOTE_AVAIL, \ + (value)) + +# define SSL_get_event_handling_mode(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_EVENT_HANDLING_MODE, \ + (value)) +# define SSL_set_event_handling_mode(ssl, value) \ + SSL_set_generic_value_uint((ssl), SSL_VALUE_EVENT_HANDLING_MODE, \ + (value)) + +# define SSL_get_stream_write_buf_size(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_STREAM_WRITE_BUF_SIZE, \ + (value)) +# define SSL_get_stream_write_buf_used(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_STREAM_WRITE_BUF_USED, \ + (value)) +# define SSL_get_stream_write_buf_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_STREAM_WRITE_BUF_AVAIL, \ + (value)) + +# define SSL_POLL_EVENT_NONE 0 + +# define SSL_POLL_EVENT_F (1U << 0) /* F (Failure) */ +# define SSL_POLL_EVENT_EL (1U << 1) /* EL (Exception on Listener) */ +# define SSL_POLL_EVENT_EC (1U << 2) /* EC (Exception on Conn) */ +# define SSL_POLL_EVENT_ECD (1U << 3) /* ECD (Exception on Conn Drained) */ +# define SSL_POLL_EVENT_ER (1U << 4) /* ER (Exception on Read) */ +# define SSL_POLL_EVENT_EW (1U << 5) /* EW (Exception on Write) */ +# define SSL_POLL_EVENT_R (1U << 6) /* R (Readable) */ +# define SSL_POLL_EVENT_W (1U << 7) /* W (Writable) */ +# define SSL_POLL_EVENT_IC (1U << 8) /* IC (Incoming Connection) */ +# define SSL_POLL_EVENT_ISB (1U << 9) /* ISB (Incoming Stream: Bidi) */ +# define SSL_POLL_EVENT_ISU (1U << 10) /* ISU (Incoming Stream: Uni) */ +# define SSL_POLL_EVENT_OSB (1U << 11) /* OSB (Outgoing Stream: Bidi) */ +# define SSL_POLL_EVENT_OSU (1U << 12) /* OSU (Outgoing Stream: Uni) */ + +# define SSL_POLL_EVENT_RW (SSL_POLL_EVENT_R | SSL_POLL_EVENT_W) +# define SSL_POLL_EVENT_RE (SSL_POLL_EVENT_R | SSL_POLL_EVENT_ER) +# define SSL_POLL_EVENT_WE (SSL_POLL_EVENT_W | SSL_POLL_EVENT_EW) +# define SSL_POLL_EVENT_RWE (SSL_POLL_EVENT_RE | SSL_POLL_EVENT_WE) +# define SSL_POLL_EVENT_E (SSL_POLL_EVENT_EL | SSL_POLL_EVENT_EC \ + | SSL_POLL_EVENT_ER | SSL_POLL_EVENT_EW) +# define SSL_POLL_EVENT_IS (SSL_POLL_EVENT_ISB | SSL_POLL_EVENT_ISU) +# define SSL_POLL_EVENT_ISE (SSL_POLL_EVENT_IS | SSL_POLL_EVENT_EC) +# define SSL_POLL_EVENT_I (SSL_POLL_EVENT_IS | SSL_POLL_EVENT_IC) +# define SSL_POLL_EVENT_OS (SSL_POLL_EVENT_OSB | SSL_POLL_EVENT_OSU) +# define SSL_POLL_EVENT_OSE (SSL_POLL_EVENT_OS | SSL_POLL_EVENT_EC) + +typedef struct ssl_poll_item_st { + BIO_POLL_DESCRIPTOR desc; + uint64_t events, revents; +} SSL_POLL_ITEM; + +# define SSL_POLL_FLAG_NO_HANDLE_EVENTS (1U << 0) + +__owur int SSL_poll(SSL_POLL_ITEM *items, + size_t num_items, + size_t stride, + const struct timeval *timeout, + uint64_t flags, + size_t *result_count); + +static ossl_inline ossl_unused BIO_POLL_DESCRIPTOR +SSL_as_poll_descriptor(SSL *s) +{ + BIO_POLL_DESCRIPTOR d; + + d.type = BIO_POLL_DESCRIPTOR_TYPE_SSL; + d.value.ssl = s; + return d; +} + # ifndef OPENSSL_NO_DEPRECATED_1_1_0 # define SSL_cache_hit(s) SSL_session_reused(s) # endif @@ -2593,6 +2882,51 @@ void SSL_set_allow_early_data_cb(SSL *s, const char *OSSL_default_cipher_list(void); const char *OSSL_default_ciphersuites(void); +/* RFC8879 Certificate compression APIs */ + +int SSL_CTX_compress_certs(SSL_CTX *ctx, int alg); +int SSL_compress_certs(SSL *ssl, int alg); + +int SSL_CTX_set1_cert_comp_preference(SSL_CTX *ctx, int *algs, size_t len); +int SSL_set1_cert_comp_preference(SSL *ssl, int *algs, size_t len); + +int SSL_CTX_set1_compressed_cert(SSL_CTX *ctx, int algorithm, unsigned char *comp_data, + size_t comp_length, size_t orig_length); +int SSL_set1_compressed_cert(SSL *ssl, int algorithm, unsigned char *comp_data, + size_t comp_length, size_t orig_length); +size_t SSL_CTX_get1_compressed_cert(SSL_CTX *ctx, int alg, unsigned char **data, size_t *orig_len); +size_t SSL_get1_compressed_cert(SSL *ssl, int alg, unsigned char **data, size_t *orig_len); + +__owur int SSL_add_expected_rpk(SSL *s, EVP_PKEY *rpk); +__owur EVP_PKEY *SSL_get0_peer_rpk(const SSL *s); +__owur EVP_PKEY *SSL_SESSION_get0_peer_rpk(SSL_SESSION *s); +__owur int SSL_get_negotiated_client_cert_type(const SSL *s); +__owur int SSL_get_negotiated_server_cert_type(const SSL *s); + +__owur int SSL_set1_client_cert_type(SSL *s, const unsigned char *val, size_t len); +__owur int SSL_set1_server_cert_type(SSL *s, const unsigned char *val, size_t len); +__owur int SSL_CTX_set1_client_cert_type(SSL_CTX *ctx, const unsigned char *val, size_t len); +__owur int SSL_CTX_set1_server_cert_type(SSL_CTX *ctx, const unsigned char *val, size_t len); +__owur int SSL_get0_client_cert_type(const SSL *s, unsigned char **t, size_t *len); +__owur int SSL_get0_server_cert_type(const SSL *s, unsigned char **t, size_t *len); +__owur int SSL_CTX_get0_client_cert_type(const SSL_CTX *ctx, unsigned char **t, size_t *len); +__owur int SSL_CTX_get0_server_cert_type(const SSL_CTX *s, unsigned char **t, size_t *len); + +/* + * Protection level. For <= TLSv1.2 only "NONE" and "APPLICATION" are used. + */ +# define OSSL_RECORD_PROTECTION_LEVEL_NONE 0 +# define OSSL_RECORD_PROTECTION_LEVEL_EARLY 1 +# define OSSL_RECORD_PROTECTION_LEVEL_HANDSHAKE 2 +# define OSSL_RECORD_PROTECTION_LEVEL_APPLICATION 3 + +int SSL_set_quic_tls_cbs(SSL *s, const OSSL_DISPATCH *qtdis, void *arg); +int SSL_set_quic_tls_transport_params(SSL *s, + const unsigned char *params, + size_t params_len); + +int SSL_set_quic_tls_early_data_enabled(SSL *s, int enabled); + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/linux-aarch64/asm/include/openssl/x509.h b/deps/openssl/config/archs/linux-aarch64/asm/include/openssl/x509.h index 1f7755e5b69c75..d013458c226461 100644 --- a/deps/openssl/config/archs/linux-aarch64/asm/include/openssl/x509.h +++ b/deps/openssl/config/archs/linux-aarch64/asm/include/openssl/x509.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/x509.h.in * - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2024 The OpenSSL Project Authors. All Rights Reserved. * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved * * Licensed under the Apache License 2.0 (the "License"). You may not use @@ -40,6 +40,9 @@ # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -162,16 +165,24 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_CRL, X509_CRL, X509_CRL) # define X509_FILETYPE_ASN1 2 # define X509_FILETYPE_DEFAULT 3 -# define X509v3_KU_DIGITAL_SIGNATURE 0x0080 -# define X509v3_KU_NON_REPUDIATION 0x0040 -# define X509v3_KU_KEY_ENCIPHERMENT 0x0020 -# define X509v3_KU_DATA_ENCIPHERMENT 0x0010 -# define X509v3_KU_KEY_AGREEMENT 0x0008 -# define X509v3_KU_KEY_CERT_SIGN 0x0004 -# define X509v3_KU_CRL_SIGN 0x0002 -# define X509v3_KU_ENCIPHER_ONLY 0x0001 -# define X509v3_KU_DECIPHER_ONLY 0x8000 -# define X509v3_KU_UNDEF 0xffff +/*- + * : + * The KeyUsage BITSTRING is treated as a little-endian integer, hence bit `0` + * is 0x80, while bit `7` is 0x01 (the LSB of the integer value), bit `8` is + * then the MSB of the second octet, or 0x8000. + */ +# define X509v3_KU_DIGITAL_SIGNATURE 0x0080 /* (0) */ +# define X509v3_KU_NON_REPUDIATION 0x0040 /* (1) */ +# define X509v3_KU_KEY_ENCIPHERMENT 0x0020 /* (2) */ +# define X509v3_KU_DATA_ENCIPHERMENT 0x0010 /* (3) */ +# define X509v3_KU_KEY_AGREEMENT 0x0008 /* (4) */ +# define X509v3_KU_KEY_CERT_SIGN 0x0004 /* (5) */ +# define X509v3_KU_CRL_SIGN 0x0002 /* (6) */ +# define X509v3_KU_ENCIPHER_ONLY 0x0001 /* (7) */ +# define X509v3_KU_DECIPHER_ONLY 0x8000 /* (8) */ +# ifndef OPENSSL_NO_DEPRECATED_3_4 +# define X509v3_KU_UNDEF 0xffff /* vestigial, not used */ +# endif struct X509_algor_st { ASN1_OBJECT *algorithm; @@ -462,7 +473,12 @@ typedef struct PBKDF2PARAM_st { X509_ALGOR *prf; } PBKDF2PARAM; -#ifndef OPENSSL_NO_SCRYPT +typedef struct { + X509_ALGOR *keyDerivationFunc; + X509_ALGOR *messageAuthScheme; +} PBMAC1PARAM; + +# ifndef OPENSSL_NO_SCRYPT typedef struct SCRYPT_PARAMS_st { ASN1_OCTET_STRING *salt; ASN1_INTEGER *costParameter; @@ -470,7 +486,7 @@ typedef struct SCRYPT_PARAMS_st { ASN1_INTEGER *parallelizationParameter; ASN1_INTEGER *keyLength; } SCRYPT_PARAMS; -#endif +# endif #ifdef __cplusplus } @@ -603,6 +619,8 @@ EVP_PKEY *d2i_PrivateKey_ex_fp(FILE *fp, EVP_PKEY **a, OSSL_LIB_CTX *libctx, const char *propq); EVP_PKEY *d2i_PrivateKey_fp(FILE *fp, EVP_PKEY **a); int i2d_PUBKEY_fp(FILE *fp, const EVP_PKEY *pkey); +EVP_PKEY *d2i_PUBKEY_ex_fp(FILE *fp, EVP_PKEY **a, OSSL_LIB_CTX *libctx, + const char *propq); EVP_PKEY *d2i_PUBKEY_fp(FILE *fp, EVP_PKEY **a); # endif @@ -651,6 +669,8 @@ EVP_PKEY *d2i_PrivateKey_ex_bio(BIO *bp, EVP_PKEY **a, OSSL_LIB_CTX *libctx, const char *propq); EVP_PKEY *d2i_PrivateKey_bio(BIO *bp, EVP_PKEY **a); int i2d_PUBKEY_bio(BIO *bp, const EVP_PKEY *pkey); +EVP_PKEY *d2i_PUBKEY_ex_bio(BIO *bp, EVP_PKEY **a, OSSL_LIB_CTX *libctx, + const char *propq); EVP_PKEY *d2i_PUBKEY_bio(BIO *bp, EVP_PKEY **a); DECLARE_ASN1_DUP_FUNCTION(X509) @@ -884,12 +904,12 @@ int X509_REQ_get_signature_nid(const X509_REQ *req); int i2d_re_X509_REQ_tbs(X509_REQ *req, unsigned char **pp); int X509_REQ_set_pubkey(X509_REQ *x, EVP_PKEY *pkey); EVP_PKEY *X509_REQ_get_pubkey(X509_REQ *req); -EVP_PKEY *X509_REQ_get0_pubkey(X509_REQ *req); +EVP_PKEY *X509_REQ_get0_pubkey(const X509_REQ *req); X509_PUBKEY *X509_REQ_get_X509_PUBKEY(X509_REQ *req); int X509_REQ_extension_nid(int nid); int *X509_REQ_get_extension_nids(void); void X509_REQ_set_extension_nids(int *nids); -STACK_OF(X509_EXTENSION) *X509_REQ_get_extensions(X509_REQ *req); +STACK_OF(X509_EXTENSION) *X509_REQ_get_extensions(OSSL_FUTURE_CONST X509_REQ *req); int X509_REQ_add_extensions_nid(X509_REQ *req, const STACK_OF(X509_EXTENSION) *exts, int nid); int X509_REQ_add_extensions(X509_REQ *req, const STACK_OF(X509_EXTENSION) *ext); @@ -950,13 +970,14 @@ X509_REVOKED_get0_extensions(const X509_REVOKED *r); X509_CRL *X509_CRL_diff(X509_CRL *base, X509_CRL *newer, EVP_PKEY *skey, const EVP_MD *md, unsigned int flags); -int X509_REQ_check_private_key(X509_REQ *x509, EVP_PKEY *pkey); +int X509_REQ_check_private_key(const X509_REQ *req, EVP_PKEY *pkey); -int X509_check_private_key(const X509 *x509, const EVP_PKEY *pkey); +int X509_check_private_key(const X509 *cert, const EVP_PKEY *pkey); int X509_chain_check_suiteb(int *perror_depth, X509 *x, STACK_OF(X509) *chain, unsigned long flags); int X509_CRL_check_suiteb(X509_CRL *crl, EVP_PKEY *pk, unsigned long flags); +void OSSL_STACK_OF_X509_free(STACK_OF(X509) *certs); STACK_OF(X509) *X509_chain_up_ref(STACK_OF(X509) *chain); int X509_issuer_and_serial_cmp(const X509 *a, const X509 *b); @@ -1077,6 +1098,8 @@ X509_EXTENSION *X509v3_get_ext(const STACK_OF(X509_EXTENSION) *x, int loc); X509_EXTENSION *X509v3_delete_ext(STACK_OF(X509_EXTENSION) *x, int loc); STACK_OF(X509_EXTENSION) *X509v3_add_ext(STACK_OF(X509_EXTENSION) **x, X509_EXTENSION *ex, int loc); +STACK_OF(X509_EXTENSION) *X509v3_add_extensions(STACK_OF(X509_EXTENSION) **target, + const STACK_OF(X509_EXTENSION) *exts); int X509_get_ext_count(const X509 *x); int X509_get_ext_by_NID(const X509 *x, int nid, int lastpos); @@ -1198,9 +1221,10 @@ X509 *X509_find_by_subject(STACK_OF(X509) *sk, const X509_NAME *name); DECLARE_ASN1_FUNCTIONS(PBEPARAM) DECLARE_ASN1_FUNCTIONS(PBE2PARAM) DECLARE_ASN1_FUNCTIONS(PBKDF2PARAM) -#ifndef OPENSSL_NO_SCRYPT +DECLARE_ASN1_FUNCTIONS(PBMAC1PARAM) +# ifndef OPENSSL_NO_SCRYPT DECLARE_ASN1_FUNCTIONS(SCRYPT_PARAMS) -#endif +# endif int PKCS5_pbe_set0_algor(X509_ALGOR *algor, int alg, int iter, const unsigned char *salt, int saltlen); @@ -1237,6 +1261,7 @@ X509_ALGOR *PKCS5_pbkdf2_set_ex(int iter, unsigned char *salt, int saltlen, int prf_nid, int keylen, OSSL_LIB_CTX *libctx); +PBKDF2PARAM *PBMAC1_get1_pbkdf2_param(const X509_ALGOR *macalg); /* PKCS#8 utilities */ DECLARE_ASN1_FUNCTIONS(PKCS8_PRIV_KEY_INFO) @@ -1262,6 +1287,8 @@ int PKCS8_pkey_add1_attr_by_OBJ(PKCS8_PRIV_KEY_INFO *p8, const ASN1_OBJECT *obj, int type, const unsigned char *bytes, int len); +void X509_PUBKEY_set0_public_key(X509_PUBKEY *pub, + unsigned char *penc, int penclen); int X509_PUBKEY_set0_param(X509_PUBKEY *pub, ASN1_OBJECT *aobj, int ptype, void *pval, unsigned char *penc, int penclen); diff --git a/deps/openssl/config/archs/linux-aarch64/asm/include/openssl/x509_acert.h b/deps/openssl/config/archs/linux-aarch64/asm/include/openssl/x509_acert.h new file mode 100644 index 00000000000000..9dde625677f9a9 --- /dev/null +++ b/deps/openssl/config/archs/linux-aarch64/asm/include/openssl/x509_acert.h @@ -0,0 +1,294 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from include/openssl/x509_acert.h.in + * + * Copyright 2022-2024 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + + +#ifndef OPENSSL_X509_ACERT_H +# define OPENSSL_X509_ACERT_H +# pragma once + +# include +# include +# include + +typedef struct X509_acert_st X509_ACERT; +typedef struct X509_acert_info_st X509_ACERT_INFO; +typedef struct ossl_object_digest_info_st OSSL_OBJECT_DIGEST_INFO; +typedef struct ossl_issuer_serial_st OSSL_ISSUER_SERIAL; +typedef struct X509_acert_issuer_v2form_st X509_ACERT_ISSUER_V2FORM; + +DECLARE_ASN1_FUNCTIONS(X509_ACERT) +DECLARE_ASN1_DUP_FUNCTION(X509_ACERT) +DECLARE_ASN1_ITEM(X509_ACERT_INFO) +DECLARE_ASN1_ALLOC_FUNCTIONS(X509_ACERT_INFO) +DECLARE_ASN1_ALLOC_FUNCTIONS(OSSL_OBJECT_DIGEST_INFO) +DECLARE_ASN1_ALLOC_FUNCTIONS(OSSL_ISSUER_SERIAL) +DECLARE_ASN1_ALLOC_FUNCTIONS(X509_ACERT_ISSUER_V2FORM) + +# ifndef OPENSSL_NO_STDIO +X509_ACERT *d2i_X509_ACERT_fp(FILE *fp, X509_ACERT **acert); +int i2d_X509_ACERT_fp(FILE *fp, const X509_ACERT *acert); +# endif + +DECLARE_PEM_rw(X509_ACERT, X509_ACERT) + +X509_ACERT *d2i_X509_ACERT_bio(BIO *bp, X509_ACERT **acert); +int i2d_X509_ACERT_bio(BIO *bp, const X509_ACERT *acert); + +int X509_ACERT_sign(X509_ACERT *x, EVP_PKEY *pkey, const EVP_MD *md); +int X509_ACERT_sign_ctx(X509_ACERT *x, EVP_MD_CTX *ctx); +int X509_ACERT_verify(X509_ACERT *a, EVP_PKEY *r); + +# define X509_ACERT_VERSION_2 1 + +const GENERAL_NAMES *X509_ACERT_get0_holder_entityName(const X509_ACERT *x); +const OSSL_ISSUER_SERIAL *X509_ACERT_get0_holder_baseCertId(const X509_ACERT *x); +const OSSL_OBJECT_DIGEST_INFO * X509_ACERT_get0_holder_digest(const X509_ACERT *x); +const X509_NAME *X509_ACERT_get0_issuerName(const X509_ACERT *x); +long X509_ACERT_get_version(const X509_ACERT *x); +void X509_ACERT_get0_signature(const X509_ACERT *x, + const ASN1_BIT_STRING **psig, + const X509_ALGOR **palg); +int X509_ACERT_get_signature_nid(const X509_ACERT *x); +const X509_ALGOR *X509_ACERT_get0_info_sigalg(const X509_ACERT *x); +const ASN1_INTEGER *X509_ACERT_get0_serialNumber(const X509_ACERT *x); +const ASN1_TIME *X509_ACERT_get0_notBefore(const X509_ACERT *x); +const ASN1_TIME *X509_ACERT_get0_notAfter(const X509_ACERT *x); +const ASN1_BIT_STRING *X509_ACERT_get0_issuerUID(const X509_ACERT *x); + +int X509_ACERT_print(BIO *bp, X509_ACERT *x); +int X509_ACERT_print_ex(BIO *bp, X509_ACERT *x, unsigned long nmflags, + unsigned long cflag); + +int X509_ACERT_get_attr_count(const X509_ACERT *x); +int X509_ACERT_get_attr_by_NID(const X509_ACERT *x, int nid, int lastpos); +int X509_ACERT_get_attr_by_OBJ(const X509_ACERT *x, const ASN1_OBJECT *obj, + int lastpos); +X509_ATTRIBUTE *X509_ACERT_get_attr(const X509_ACERT *x, int loc); +X509_ATTRIBUTE *X509_ACERT_delete_attr(X509_ACERT *x, int loc); + +void *X509_ACERT_get_ext_d2i(const X509_ACERT *x, int nid, int *crit, int *idx); +int X509_ACERT_add1_ext_i2d(X509_ACERT *x, int nid, void *value, int crit, + unsigned long flags); +const STACK_OF(X509_EXTENSION) *X509_ACERT_get0_extensions(const X509_ACERT *x); + +# define OSSL_OBJECT_DIGEST_INFO_PUBLIC_KEY 0 +# define OSSL_OBJECT_DIGEST_INFO_PUBLIC_KEY_CERT 1 +# define OSSL_OBJECT_DIGEST_INFO_OTHER 2 /* must not be used in RFC 5755 profile */ +int X509_ACERT_set_version(X509_ACERT *x, long version); +void X509_ACERT_set0_holder_entityName(X509_ACERT *x, GENERAL_NAMES *name); +void X509_ACERT_set0_holder_baseCertId(X509_ACERT *x, OSSL_ISSUER_SERIAL *isss); +void X509_ACERT_set0_holder_digest(X509_ACERT *x, + OSSL_OBJECT_DIGEST_INFO *dinfo); + +int X509_ACERT_add1_attr(X509_ACERT *x, X509_ATTRIBUTE *attr); +int X509_ACERT_add1_attr_by_OBJ(X509_ACERT *x, const ASN1_OBJECT *obj, + int type, const void *bytes, int len); +int X509_ACERT_add1_attr_by_NID(X509_ACERT *x, int nid, int type, + const void *bytes, int len); +int X509_ACERT_add1_attr_by_txt(X509_ACERT *x, const char *attrname, int type, + const unsigned char *bytes, int len); +int X509_ACERT_add_attr_nconf(CONF *conf, const char *section, + X509_ACERT *acert); + +int X509_ACERT_set1_issuerName(X509_ACERT *x, const X509_NAME *name); +int X509_ACERT_set1_serialNumber(X509_ACERT *x, const ASN1_INTEGER *serial); +int X509_ACERT_set1_notBefore(X509_ACERT *x, const ASN1_GENERALIZEDTIME *time); +int X509_ACERT_set1_notAfter(X509_ACERT *x, const ASN1_GENERALIZEDTIME *time); + +void OSSL_OBJECT_DIGEST_INFO_get0_digest(const OSSL_OBJECT_DIGEST_INFO *o, + int *digestedObjectType, + const X509_ALGOR **digestAlgorithm, + const ASN1_BIT_STRING **digest); + +int OSSL_OBJECT_DIGEST_INFO_set1_digest(OSSL_OBJECT_DIGEST_INFO *o, + int digestedObjectType, + X509_ALGOR *digestAlgorithm, + ASN1_BIT_STRING *digest); + +const X509_NAME *OSSL_ISSUER_SERIAL_get0_issuer(const OSSL_ISSUER_SERIAL *isss); +const ASN1_INTEGER *OSSL_ISSUER_SERIAL_get0_serial(const OSSL_ISSUER_SERIAL *isss); +const ASN1_BIT_STRING *OSSL_ISSUER_SERIAL_get0_issuerUID(const OSSL_ISSUER_SERIAL *isss); + +int OSSL_ISSUER_SERIAL_set1_issuer(OSSL_ISSUER_SERIAL *isss, + const X509_NAME *issuer); +int OSSL_ISSUER_SERIAL_set1_serial(OSSL_ISSUER_SERIAL *isss, + const ASN1_INTEGER *serial); +int OSSL_ISSUER_SERIAL_set1_issuerUID(OSSL_ISSUER_SERIAL *isss, + const ASN1_BIT_STRING *uid); + +# define OSSL_IETFAS_OCTETS 0 +# define OSSL_IETFAS_OID 1 +# define OSSL_IETFAS_STRING 2 + +typedef struct OSSL_IETF_ATTR_SYNTAX_VALUE_st OSSL_IETF_ATTR_SYNTAX_VALUE; +typedef struct OSSL_IETF_ATTR_SYNTAX_st OSSL_IETF_ATTR_SYNTAX; +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_IETF_ATTR_SYNTAX_VALUE, OSSL_IETF_ATTR_SYNTAX_VALUE, OSSL_IETF_ATTR_SYNTAX_VALUE) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_value(sk, idx) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_value(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), (idx))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_new(cmp) ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_new(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_compfunc_type(cmp))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_new_null() ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_new_null()) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_new_reserve(cmp, n) ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_compfunc_type(cmp), (n))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), (n)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_free(sk) OPENSSL_sk_free(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_delete(sk, i) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_delete(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), (i))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_delete_ptr(sk, ptr) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_pop(sk) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_pop(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_shift(sk) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_shift(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk),ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_freefunc_type(freefunc)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr), (idx)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_set(sk, idx, ptr) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_set(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), (idx), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr), pnum) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_dup(sk) ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_dup(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_copyfunc_type(copyfunc), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_freefunc_type(freefunc))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_set_cmp_func(sk, cmp) ((sk_OSSL_IETF_ATTR_SYNTAX_VALUE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_compfunc_type(cmp))) + + +DECLARE_ASN1_ITEM(OSSL_IETF_ATTR_SYNTAX_VALUE) +DECLARE_ASN1_ALLOC_FUNCTIONS(OSSL_IETF_ATTR_SYNTAX_VALUE) +DECLARE_ASN1_FUNCTIONS(OSSL_IETF_ATTR_SYNTAX) + +const GENERAL_NAMES * +OSSL_IETF_ATTR_SYNTAX_get0_policyAuthority(const OSSL_IETF_ATTR_SYNTAX *a); +void OSSL_IETF_ATTR_SYNTAX_set0_policyAuthority(OSSL_IETF_ATTR_SYNTAX *a, + GENERAL_NAMES *names); + +int OSSL_IETF_ATTR_SYNTAX_get_value_num(const OSSL_IETF_ATTR_SYNTAX *a); +void *OSSL_IETF_ATTR_SYNTAX_get0_value(const OSSL_IETF_ATTR_SYNTAX *a, + int ind, int *type); +int OSSL_IETF_ATTR_SYNTAX_add1_value(OSSL_IETF_ATTR_SYNTAX *a, int type, + void *data); +int OSSL_IETF_ATTR_SYNTAX_print(BIO *bp, OSSL_IETF_ATTR_SYNTAX *a, int indent); + +struct TARGET_CERT_st { + OSSL_ISSUER_SERIAL *targetCertificate; + GENERAL_NAME *targetName; + OSSL_OBJECT_DIGEST_INFO *certDigestInfo; +}; + +typedef struct TARGET_CERT_st OSSL_TARGET_CERT; + +# define OSSL_TGT_TARGET_NAME 0 +# define OSSL_TGT_TARGET_GROUP 1 +# define OSSL_TGT_TARGET_CERT 2 + +typedef struct TARGET_st { + int type; + union { + GENERAL_NAME *targetName; + GENERAL_NAME *targetGroup; + OSSL_TARGET_CERT *targetCert; + } choice; +} OSSL_TARGET; + +typedef STACK_OF(OSSL_TARGET) OSSL_TARGETS; +typedef STACK_OF(OSSL_TARGETS) OSSL_TARGETING_INFORMATION; + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_TARGET, OSSL_TARGET, OSSL_TARGET) +#define sk_OSSL_TARGET_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_value(sk, idx) ((OSSL_TARGET *)OPENSSL_sk_value(ossl_check_const_OSSL_TARGET_sk_type(sk), (idx))) +#define sk_OSSL_TARGET_new(cmp) ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_new(ossl_check_OSSL_TARGET_compfunc_type(cmp))) +#define sk_OSSL_TARGET_new_null() ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_new_null()) +#define sk_OSSL_TARGET_new_reserve(cmp, n) ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_TARGET_compfunc_type(cmp), (n))) +#define sk_OSSL_TARGET_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_TARGET_sk_type(sk), (n)) +#define sk_OSSL_TARGET_free(sk) OPENSSL_sk_free(ossl_check_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_delete(sk, i) ((OSSL_TARGET *)OPENSSL_sk_delete(ossl_check_OSSL_TARGET_sk_type(sk), (i))) +#define sk_OSSL_TARGET_delete_ptr(sk, ptr) ((OSSL_TARGET *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr))) +#define sk_OSSL_TARGET_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr)) +#define sk_OSSL_TARGET_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr)) +#define sk_OSSL_TARGET_pop(sk) ((OSSL_TARGET *)OPENSSL_sk_pop(ossl_check_OSSL_TARGET_sk_type(sk))) +#define sk_OSSL_TARGET_shift(sk) ((OSSL_TARGET *)OPENSSL_sk_shift(ossl_check_OSSL_TARGET_sk_type(sk))) +#define sk_OSSL_TARGET_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_TARGET_sk_type(sk),ossl_check_OSSL_TARGET_freefunc_type(freefunc)) +#define sk_OSSL_TARGET_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr), (idx)) +#define sk_OSSL_TARGET_set(sk, idx, ptr) ((OSSL_TARGET *)OPENSSL_sk_set(ossl_check_OSSL_TARGET_sk_type(sk), (idx), ossl_check_OSSL_TARGET_type(ptr))) +#define sk_OSSL_TARGET_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr)) +#define sk_OSSL_TARGET_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr)) +#define sk_OSSL_TARGET_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr), pnum) +#define sk_OSSL_TARGET_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_dup(sk) ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_dup(ossl_check_const_OSSL_TARGET_sk_type(sk))) +#define sk_OSSL_TARGET_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_copyfunc_type(copyfunc), ossl_check_OSSL_TARGET_freefunc_type(freefunc))) +#define sk_OSSL_TARGET_set_cmp_func(sk, cmp) ((sk_OSSL_TARGET_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_compfunc_type(cmp))) + + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_TARGETS, OSSL_TARGETS, OSSL_TARGETS) +#define sk_OSSL_TARGETS_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_value(sk, idx) ((OSSL_TARGETS *)OPENSSL_sk_value(ossl_check_const_OSSL_TARGETS_sk_type(sk), (idx))) +#define sk_OSSL_TARGETS_new(cmp) ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_new(ossl_check_OSSL_TARGETS_compfunc_type(cmp))) +#define sk_OSSL_TARGETS_new_null() ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_new_null()) +#define sk_OSSL_TARGETS_new_reserve(cmp, n) ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_TARGETS_compfunc_type(cmp), (n))) +#define sk_OSSL_TARGETS_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_TARGETS_sk_type(sk), (n)) +#define sk_OSSL_TARGETS_free(sk) OPENSSL_sk_free(ossl_check_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_delete(sk, i) ((OSSL_TARGETS *)OPENSSL_sk_delete(ossl_check_OSSL_TARGETS_sk_type(sk), (i))) +#define sk_OSSL_TARGETS_delete_ptr(sk, ptr) ((OSSL_TARGETS *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr))) +#define sk_OSSL_TARGETS_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr)) +#define sk_OSSL_TARGETS_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr)) +#define sk_OSSL_TARGETS_pop(sk) ((OSSL_TARGETS *)OPENSSL_sk_pop(ossl_check_OSSL_TARGETS_sk_type(sk))) +#define sk_OSSL_TARGETS_shift(sk) ((OSSL_TARGETS *)OPENSSL_sk_shift(ossl_check_OSSL_TARGETS_sk_type(sk))) +#define sk_OSSL_TARGETS_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_TARGETS_sk_type(sk),ossl_check_OSSL_TARGETS_freefunc_type(freefunc)) +#define sk_OSSL_TARGETS_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr), (idx)) +#define sk_OSSL_TARGETS_set(sk, idx, ptr) ((OSSL_TARGETS *)OPENSSL_sk_set(ossl_check_OSSL_TARGETS_sk_type(sk), (idx), ossl_check_OSSL_TARGETS_type(ptr))) +#define sk_OSSL_TARGETS_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr)) +#define sk_OSSL_TARGETS_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr)) +#define sk_OSSL_TARGETS_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr), pnum) +#define sk_OSSL_TARGETS_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_dup(sk) ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_dup(ossl_check_const_OSSL_TARGETS_sk_type(sk))) +#define sk_OSSL_TARGETS_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_copyfunc_type(copyfunc), ossl_check_OSSL_TARGETS_freefunc_type(freefunc))) +#define sk_OSSL_TARGETS_set_cmp_func(sk, cmp) ((sk_OSSL_TARGETS_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_compfunc_type(cmp))) + + +DECLARE_ASN1_FUNCTIONS(OSSL_TARGET) +DECLARE_ASN1_FUNCTIONS(OSSL_TARGETS) +DECLARE_ASN1_FUNCTIONS(OSSL_TARGETING_INFORMATION) + +typedef STACK_OF(OSSL_ISSUER_SERIAL) OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX; +DECLARE_ASN1_FUNCTIONS(OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ISSUER_SERIAL, OSSL_ISSUER_SERIAL, OSSL_ISSUER_SERIAL) +#define sk_OSSL_ISSUER_SERIAL_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_value(sk, idx) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_value(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk), (idx))) +#define sk_OSSL_ISSUER_SERIAL_new(cmp) ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_new(ossl_check_OSSL_ISSUER_SERIAL_compfunc_type(cmp))) +#define sk_OSSL_ISSUER_SERIAL_new_null() ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ISSUER_SERIAL_new_reserve(cmp, n) ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ISSUER_SERIAL_compfunc_type(cmp), (n))) +#define sk_OSSL_ISSUER_SERIAL_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), (n)) +#define sk_OSSL_ISSUER_SERIAL_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_delete(sk, i) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_delete(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), (i))) +#define sk_OSSL_ISSUER_SERIAL_delete_ptr(sk, ptr) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr))) +#define sk_OSSL_ISSUER_SERIAL_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr)) +#define sk_OSSL_ISSUER_SERIAL_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr)) +#define sk_OSSL_ISSUER_SERIAL_pop(sk) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_pop(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk))) +#define sk_OSSL_ISSUER_SERIAL_shift(sk) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_shift(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk))) +#define sk_OSSL_ISSUER_SERIAL_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk),ossl_check_OSSL_ISSUER_SERIAL_freefunc_type(freefunc)) +#define sk_OSSL_ISSUER_SERIAL_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr), (idx)) +#define sk_OSSL_ISSUER_SERIAL_set(sk, idx, ptr) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_set(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), (idx), ossl_check_OSSL_ISSUER_SERIAL_type(ptr))) +#define sk_OSSL_ISSUER_SERIAL_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr)) +#define sk_OSSL_ISSUER_SERIAL_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr)) +#define sk_OSSL_ISSUER_SERIAL_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr), pnum) +#define sk_OSSL_ISSUER_SERIAL_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_dup(sk) ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk))) +#define sk_OSSL_ISSUER_SERIAL_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_copyfunc_type(copyfunc), ossl_check_OSSL_ISSUER_SERIAL_freefunc_type(freefunc))) +#define sk_OSSL_ISSUER_SERIAL_set_cmp_func(sk, cmp) ((sk_OSSL_ISSUER_SERIAL_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_compfunc_type(cmp))) + + +#endif diff --git a/deps/openssl/config/archs/linux-aarch64/asm/include/openssl/x509_vfy.h b/deps/openssl/config/archs/linux-aarch64/asm/include/openssl/x509_vfy.h index 29b0e147adcab1..c9bdc3b39d685d 100644 --- a/deps/openssl/config/archs/linux-aarch64/asm/include/openssl/x509_vfy.h +++ b/deps/openssl/config/archs/linux-aarch64/asm/include/openssl/x509_vfy.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/x509_vfy.h.in * - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -411,6 +411,7 @@ X509_LOOKUP_ctrl_ex((x), X509_L_ADD_STORE, (name), 0, NULL, \ # define X509_V_ERR_CA_CERT_MISSING_KEY_USAGE 92 # define X509_V_ERR_EXTENSIONS_REQUIRE_VERSION_3 93 # define X509_V_ERR_EC_KEY_EXPLICIT_PARAMS 94 +# define X509_V_ERR_RPK_UNTRUSTED 95 /* Certificate verify flags */ # ifndef OPENSSL_NO_DEPRECATED_1_1_0 @@ -491,71 +492,72 @@ int X509_OBJECT_set1_X509(X509_OBJECT *a, X509 *obj); X509_CRL *X509_OBJECT_get0_X509_CRL(const X509_OBJECT *a); int X509_OBJECT_set1_X509_CRL(X509_OBJECT *a, X509_CRL *obj); X509_STORE *X509_STORE_new(void); -void X509_STORE_free(X509_STORE *v); -int X509_STORE_lock(X509_STORE *ctx); -int X509_STORE_unlock(X509_STORE *ctx); -int X509_STORE_up_ref(X509_STORE *v); -STACK_OF(X509_OBJECT) *X509_STORE_get0_objects(const X509_STORE *v); -STACK_OF(X509) *X509_STORE_get1_all_certs(X509_STORE *st); -STACK_OF(X509) *X509_STORE_CTX_get1_certs(X509_STORE_CTX *st, +void X509_STORE_free(X509_STORE *xs); +int X509_STORE_lock(X509_STORE *xs); +int X509_STORE_unlock(X509_STORE *xs); +int X509_STORE_up_ref(X509_STORE *xs); +STACK_OF(X509_OBJECT) *X509_STORE_get0_objects(const X509_STORE *xs); +STACK_OF(X509_OBJECT) *X509_STORE_get1_objects(X509_STORE *xs); +STACK_OF(X509) *X509_STORE_get1_all_certs(X509_STORE *xs); +STACK_OF(X509) *X509_STORE_CTX_get1_certs(X509_STORE_CTX *xs, const X509_NAME *nm); STACK_OF(X509_CRL) *X509_STORE_CTX_get1_crls(const X509_STORE_CTX *st, const X509_NAME *nm); -int X509_STORE_set_flags(X509_STORE *ctx, unsigned long flags); -int X509_STORE_set_purpose(X509_STORE *ctx, int purpose); -int X509_STORE_set_trust(X509_STORE *ctx, int trust); -int X509_STORE_set1_param(X509_STORE *ctx, const X509_VERIFY_PARAM *pm); -X509_VERIFY_PARAM *X509_STORE_get0_param(const X509_STORE *ctx); +int X509_STORE_set_flags(X509_STORE *xs, unsigned long flags); +int X509_STORE_set_purpose(X509_STORE *xs, int purpose); +int X509_STORE_set_trust(X509_STORE *xs, int trust); +int X509_STORE_set1_param(X509_STORE *xs, const X509_VERIFY_PARAM *pm); +X509_VERIFY_PARAM *X509_STORE_get0_param(const X509_STORE *xs); -void X509_STORE_set_verify(X509_STORE *ctx, X509_STORE_CTX_verify_fn verify); +void X509_STORE_set_verify(X509_STORE *xs, X509_STORE_CTX_verify_fn verify); #define X509_STORE_set_verify_func(ctx, func) \ X509_STORE_set_verify((ctx),(func)) void X509_STORE_CTX_set_verify(X509_STORE_CTX *ctx, X509_STORE_CTX_verify_fn verify); -X509_STORE_CTX_verify_fn X509_STORE_get_verify(const X509_STORE *ctx); -void X509_STORE_set_verify_cb(X509_STORE *ctx, +X509_STORE_CTX_verify_fn X509_STORE_get_verify(const X509_STORE *xs); +void X509_STORE_set_verify_cb(X509_STORE *xs, X509_STORE_CTX_verify_cb verify_cb); # define X509_STORE_set_verify_cb_func(ctx,func) \ X509_STORE_set_verify_cb((ctx),(func)) -X509_STORE_CTX_verify_cb X509_STORE_get_verify_cb(const X509_STORE *ctx); -void X509_STORE_set_get_issuer(X509_STORE *ctx, +X509_STORE_CTX_verify_cb X509_STORE_get_verify_cb(const X509_STORE *xs); +void X509_STORE_set_get_issuer(X509_STORE *xs, X509_STORE_CTX_get_issuer_fn get_issuer); -X509_STORE_CTX_get_issuer_fn X509_STORE_get_get_issuer(const X509_STORE *ctx); -void X509_STORE_set_check_issued(X509_STORE *ctx, +X509_STORE_CTX_get_issuer_fn X509_STORE_get_get_issuer(const X509_STORE *xs); +void X509_STORE_set_check_issued(X509_STORE *xs, X509_STORE_CTX_check_issued_fn check_issued); -X509_STORE_CTX_check_issued_fn X509_STORE_get_check_issued(const X509_STORE *ctx); -void X509_STORE_set_check_revocation(X509_STORE *ctx, +X509_STORE_CTX_check_issued_fn X509_STORE_get_check_issued(const X509_STORE *s); +void X509_STORE_set_check_revocation(X509_STORE *xs, X509_STORE_CTX_check_revocation_fn check_revocation); X509_STORE_CTX_check_revocation_fn - X509_STORE_get_check_revocation(const X509_STORE *ctx); -void X509_STORE_set_get_crl(X509_STORE *ctx, + X509_STORE_get_check_revocation(const X509_STORE *xs); +void X509_STORE_set_get_crl(X509_STORE *xs, X509_STORE_CTX_get_crl_fn get_crl); -X509_STORE_CTX_get_crl_fn X509_STORE_get_get_crl(const X509_STORE *ctx); -void X509_STORE_set_check_crl(X509_STORE *ctx, +X509_STORE_CTX_get_crl_fn X509_STORE_get_get_crl(const X509_STORE *xs); +void X509_STORE_set_check_crl(X509_STORE *xs, X509_STORE_CTX_check_crl_fn check_crl); -X509_STORE_CTX_check_crl_fn X509_STORE_get_check_crl(const X509_STORE *ctx); -void X509_STORE_set_cert_crl(X509_STORE *ctx, +X509_STORE_CTX_check_crl_fn X509_STORE_get_check_crl(const X509_STORE *xs); +void X509_STORE_set_cert_crl(X509_STORE *xs, X509_STORE_CTX_cert_crl_fn cert_crl); -X509_STORE_CTX_cert_crl_fn X509_STORE_get_cert_crl(const X509_STORE *ctx); -void X509_STORE_set_check_policy(X509_STORE *ctx, +X509_STORE_CTX_cert_crl_fn X509_STORE_get_cert_crl(const X509_STORE *xs); +void X509_STORE_set_check_policy(X509_STORE *xs, X509_STORE_CTX_check_policy_fn check_policy); -X509_STORE_CTX_check_policy_fn X509_STORE_get_check_policy(const X509_STORE *ctx); -void X509_STORE_set_lookup_certs(X509_STORE *ctx, +X509_STORE_CTX_check_policy_fn X509_STORE_get_check_policy(const X509_STORE *s); +void X509_STORE_set_lookup_certs(X509_STORE *xs, X509_STORE_CTX_lookup_certs_fn lookup_certs); -X509_STORE_CTX_lookup_certs_fn X509_STORE_get_lookup_certs(const X509_STORE *ctx); -void X509_STORE_set_lookup_crls(X509_STORE *ctx, +X509_STORE_CTX_lookup_certs_fn X509_STORE_get_lookup_certs(const X509_STORE *s); +void X509_STORE_set_lookup_crls(X509_STORE *xs, X509_STORE_CTX_lookup_crls_fn lookup_crls); #define X509_STORE_set_lookup_crls_cb(ctx, func) \ X509_STORE_set_lookup_crls((ctx), (func)) -X509_STORE_CTX_lookup_crls_fn X509_STORE_get_lookup_crls(const X509_STORE *ctx); -void X509_STORE_set_cleanup(X509_STORE *ctx, +X509_STORE_CTX_lookup_crls_fn X509_STORE_get_lookup_crls(const X509_STORE *xs); +void X509_STORE_set_cleanup(X509_STORE *xs, X509_STORE_CTX_cleanup_fn cleanup); -X509_STORE_CTX_cleanup_fn X509_STORE_get_cleanup(const X509_STORE *ctx); +X509_STORE_CTX_cleanup_fn X509_STORE_get_cleanup(const X509_STORE *xs); #define X509_STORE_get_ex_new_index(l, p, newf, dupf, freef) \ CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_X509_STORE, l, p, newf, dupf, freef) -int X509_STORE_set_ex_data(X509_STORE *ctx, int idx, void *data); -void *X509_STORE_get_ex_data(const X509_STORE *ctx, int idx); +int X509_STORE_set_ex_data(X509_STORE *xs, int idx, void *data); +void *X509_STORE_get_ex_data(const X509_STORE *xs, int idx); X509_STORE_CTX *X509_STORE_CTX_new_ex(OSSL_LIB_CTX *libctx, const char *propq); X509_STORE_CTX *X509_STORE_CTX_new(void); @@ -565,11 +567,14 @@ int X509_STORE_CTX_get1_issuer(X509 **issuer, X509_STORE_CTX *ctx, X509 *x); void X509_STORE_CTX_free(X509_STORE_CTX *ctx); int X509_STORE_CTX_init(X509_STORE_CTX *ctx, X509_STORE *trust_store, X509 *target, STACK_OF(X509) *untrusted); +int X509_STORE_CTX_init_rpk(X509_STORE_CTX *ctx, X509_STORE *trust_store, + EVP_PKEY* rpk); void X509_STORE_CTX_set0_trusted_stack(X509_STORE_CTX *ctx, STACK_OF(X509) *sk); void X509_STORE_CTX_cleanup(X509_STORE_CTX *ctx); X509_STORE *X509_STORE_CTX_get0_store(const X509_STORE_CTX *ctx); X509 *X509_STORE_CTX_get0_cert(const X509_STORE_CTX *ctx); +EVP_PKEY *X509_STORE_CTX_get0_rpk(const X509_STORE_CTX *ctx); STACK_OF(X509)* X509_STORE_CTX_get0_untrusted(const X509_STORE_CTX *ctx); void X509_STORE_CTX_set0_untrusted(X509_STORE_CTX *ctx, STACK_OF(X509) *sk); void X509_STORE_CTX_set_verify_cb(X509_STORE_CTX *ctx, @@ -579,6 +584,8 @@ X509_STORE_CTX_verify_fn X509_STORE_CTX_get_verify(const X509_STORE_CTX *ctx); X509_STORE_CTX_get_issuer_fn X509_STORE_CTX_get_get_issuer(const X509_STORE_CTX *ctx); X509_STORE_CTX_check_issued_fn X509_STORE_CTX_get_check_issued(const X509_STORE_CTX *ctx); X509_STORE_CTX_check_revocation_fn X509_STORE_CTX_get_check_revocation(const X509_STORE_CTX *ctx); +void X509_STORE_CTX_set_get_crl(X509_STORE_CTX *ctx, + X509_STORE_CTX_get_crl_fn get_crl); X509_STORE_CTX_get_crl_fn X509_STORE_CTX_get_get_crl(const X509_STORE_CTX *ctx); X509_STORE_CTX_check_crl_fn X509_STORE_CTX_get_check_crl(const X509_STORE_CTX *ctx); X509_STORE_CTX_cert_crl_fn X509_STORE_CTX_get_cert_crl(const X509_STORE_CTX *ctx); @@ -600,7 +607,7 @@ X509_STORE_CTX_cleanup_fn X509_STORE_CTX_get_cleanup(const X509_STORE_CTX *ctx); # define X509_STORE_get1_crl X509_STORE_CTX_get1_crls #endif -X509_LOOKUP *X509_STORE_add_lookup(X509_STORE *v, X509_LOOKUP_METHOD *m); +X509_LOOKUP *X509_STORE_add_lookup(X509_STORE *xs, X509_LOOKUP_METHOD *m); X509_LOOKUP_METHOD *X509_LOOKUP_hash_dir(void); X509_LOOKUP_METHOD *X509_LOOKUP_file(void); X509_LOOKUP_METHOD *X509_LOOKUP_store(void); @@ -685,8 +692,8 @@ X509_LOOKUP_get_by_alias_fn X509_LOOKUP_meth_get_get_by_alias( const X509_LOOKUP_METHOD *method); -int X509_STORE_add_cert(X509_STORE *ctx, X509 *x); -int X509_STORE_add_crl(X509_STORE *ctx, X509_CRL *x); +int X509_STORE_add_cert(X509_STORE *xs, X509 *x); +int X509_STORE_add_crl(X509_STORE *xs, X509_CRL *x); int X509_STORE_CTX_get_by_subject(const X509_STORE_CTX *vs, X509_LOOKUP_TYPE type, @@ -730,23 +737,21 @@ void *X509_LOOKUP_get_method_data(const X509_LOOKUP *ctx); X509_STORE *X509_LOOKUP_get_store(const X509_LOOKUP *ctx); int X509_LOOKUP_shutdown(X509_LOOKUP *ctx); -int X509_STORE_load_file(X509_STORE *ctx, const char *file); -int X509_STORE_load_path(X509_STORE *ctx, const char *path); -int X509_STORE_load_store(X509_STORE *ctx, const char *store); -int X509_STORE_load_locations(X509_STORE *ctx, - const char *file, - const char *dir); -int X509_STORE_set_default_paths(X509_STORE *ctx); +int X509_STORE_load_file(X509_STORE *xs, const char *file); +int X509_STORE_load_path(X509_STORE *xs, const char *path); +int X509_STORE_load_store(X509_STORE *xs, const char *store); +int X509_STORE_load_locations(X509_STORE *s, const char *file, const char *dir); +int X509_STORE_set_default_paths(X509_STORE *xs); -int X509_STORE_load_file_ex(X509_STORE *ctx, const char *file, +int X509_STORE_load_file_ex(X509_STORE *xs, const char *file, OSSL_LIB_CTX *libctx, const char *propq); -int X509_STORE_load_store_ex(X509_STORE *ctx, const char *store, +int X509_STORE_load_store_ex(X509_STORE *xs, const char *store, OSSL_LIB_CTX *libctx, const char *propq); -int X509_STORE_load_locations_ex(X509_STORE *ctx, const char *file, - const char *dir, OSSL_LIB_CTX *libctx, - const char *propq); -int X509_STORE_set_default_paths_ex(X509_STORE *ctx, OSSL_LIB_CTX *libctx, - const char *propq); +int X509_STORE_load_locations_ex(X509_STORE *xs, + const char *file, const char *dir, + OSSL_LIB_CTX *libctx, const char *propq); +int X509_STORE_set_default_paths_ex(X509_STORE *xs, + OSSL_LIB_CTX *libctx, const char *propq); #define X509_STORE_CTX_get_ex_new_index(l, p, newf, dupf, freef) \ CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_X509_STORE_CTX, l, p, newf, dupf, freef) @@ -764,6 +769,7 @@ X509_STORE_CTX *X509_STORE_CTX_get0_parent_ctx(const X509_STORE_CTX *ctx); STACK_OF(X509) *X509_STORE_CTX_get0_chain(const X509_STORE_CTX *ctx); STACK_OF(X509) *X509_STORE_CTX_get1_chain(const X509_STORE_CTX *ctx); void X509_STORE_CTX_set_cert(X509_STORE_CTX *ctx, X509 *target); +void X509_STORE_CTX_set0_rpk(X509_STORE_CTX *ctx, EVP_PKEY *target); void X509_STORE_CTX_set0_verified_chain(X509_STORE_CTX *c, STACK_OF(X509) *sk); void X509_STORE_CTX_set0_crls(X509_STORE_CTX *ctx, STACK_OF(X509_CRL) *sk); int X509_STORE_CTX_set_purpose(X509_STORE_CTX *ctx, int purpose); @@ -773,6 +779,8 @@ int X509_STORE_CTX_purpose_inherit(X509_STORE_CTX *ctx, int def_purpose, void X509_STORE_CTX_set_flags(X509_STORE_CTX *ctx, unsigned long flags); void X509_STORE_CTX_set_time(X509_STORE_CTX *ctx, unsigned long flags, time_t t); +void X509_STORE_CTX_set_current_reasons(X509_STORE_CTX *ctx, + unsigned int current_reasons); X509_POLICY_TREE *X509_STORE_CTX_get0_policy_tree(const X509_STORE_CTX *ctx); int X509_STORE_CTX_get_explicit_policy(const X509_STORE_CTX *ctx); @@ -804,6 +812,7 @@ int X509_VERIFY_PARAM_clear_flags(X509_VERIFY_PARAM *param, unsigned long flags); unsigned long X509_VERIFY_PARAM_get_flags(const X509_VERIFY_PARAM *param); int X509_VERIFY_PARAM_set_purpose(X509_VERIFY_PARAM *param, int purpose); +int X509_VERIFY_PARAM_get_purpose(const X509_VERIFY_PARAM *param); int X509_VERIFY_PARAM_set_trust(X509_VERIFY_PARAM *param, int trust); void X509_VERIFY_PARAM_set_depth(X509_VERIFY_PARAM *param, int depth); void X509_VERIFY_PARAM_set_auth_level(X509_VERIFY_PARAM *param, int auth_level); diff --git a/deps/openssl/config/archs/linux-aarch64/asm/include/openssl/x509v3.h b/deps/openssl/config/archs/linux-aarch64/asm/include/openssl/x509v3.h index 20b67455f2061d..b8dabac35a4915 100644 --- a/deps/openssl/config/archs/linux-aarch64/asm/include/openssl/x509v3.h +++ b/deps/openssl/config/archs/linux-aarch64/asm/include/openssl/x509v3.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/x509v3.h.in * - * Copyright 1999-2023 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1999-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -25,6 +25,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -146,6 +149,11 @@ typedef struct BASIC_CONSTRAINTS_st { ASN1_INTEGER *pathlen; } BASIC_CONSTRAINTS; +typedef struct OSSL_BASIC_ATTR_CONSTRAINTS_st { + int authority; + ASN1_INTEGER *pathlen; +} OSSL_BASIC_ATTR_CONSTRAINTS; + typedef struct PKEY_USAGE_PERIOD_st { ASN1_GENERALIZEDTIME *notBefore; ASN1_GENERALIZEDTIME *notAfter; @@ -198,6 +206,8 @@ typedef struct ACCESS_DESCRIPTION_st { GENERAL_NAME *location; } ACCESS_DESCRIPTION; +int GENERAL_NAME_set1_X509_NAME(GENERAL_NAME **tgt, const X509_NAME *src); + SKM_DEFINE_STACK_OF_INTERNAL(ACCESS_DESCRIPTION, ACCESS_DESCRIPTION, ACCESS_DESCRIPTION) #define sk_ACCESS_DESCRIPTION_num(sk) OPENSSL_sk_num(ossl_check_const_ACCESS_DESCRIPTION_sk_type(sk)) #define sk_ACCESS_DESCRIPTION_value(sk, idx) ((ACCESS_DESCRIPTION *)OPENSSL_sk_value(ossl_check_const_ACCESS_DESCRIPTION_sk_type(sk), (idx))) @@ -294,6 +304,7 @@ typedef struct DIST_POINT_NAME_st { /* If relativename then this contains the full distribution point name */ X509_NAME *dpname; } DIST_POINT_NAME; +DECLARE_ASN1_DUP_FUNCTION(DIST_POINT_NAME) /* All existing reasons */ # define CRLDP_ALL_REASONS 0x807f @@ -659,15 +670,16 @@ struct ISSUING_DIST_POINT_st { # define EXFLAG_SAN_CRITICAL 0x80000 # define EXFLAG_NO_FINGERPRINT 0x100000 -# define KU_DIGITAL_SIGNATURE 0x0080 -# define KU_NON_REPUDIATION 0x0040 -# define KU_KEY_ENCIPHERMENT 0x0020 -# define KU_DATA_ENCIPHERMENT 0x0010 -# define KU_KEY_AGREEMENT 0x0008 -# define KU_KEY_CERT_SIGN 0x0004 -# define KU_CRL_SIGN 0x0002 -# define KU_ENCIPHER_ONLY 0x0001 -# define KU_DECIPHER_ONLY 0x8000 +/* https://datatracker.ietf.org/doc/html/rfc5280#section-4.2.1.3 */ +# define KU_DIGITAL_SIGNATURE X509v3_KU_DIGITAL_SIGNATURE +# define KU_NON_REPUDIATION X509v3_KU_NON_REPUDIATION +# define KU_KEY_ENCIPHERMENT X509v3_KU_KEY_ENCIPHERMENT +# define KU_DATA_ENCIPHERMENT X509v3_KU_DATA_ENCIPHERMENT +# define KU_KEY_AGREEMENT X509v3_KU_KEY_AGREEMENT +# define KU_KEY_CERT_SIGN X509v3_KU_KEY_CERT_SIGN +# define KU_CRL_SIGN X509v3_KU_CRL_SIGN +# define KU_ENCIPHER_ONLY X509v3_KU_ENCIPHER_ONLY +# define KU_DECIPHER_ONLY X509v3_KU_DECIPHER_ONLY # define NS_SSL_CLIENT 0x80 # define NS_SSL_SERVER 0x40 @@ -729,7 +741,7 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_PURPOSE, X509_PURPOSE, X509_PURPOSE) #define sk_X509_PURPOSE_set_cmp_func(sk, cmp) ((sk_X509_PURPOSE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_X509_PURPOSE_sk_type(sk), ossl_check_X509_PURPOSE_compfunc_type(cmp))) - +# define X509_PURPOSE_DEFAULT_ANY 0 # define X509_PURPOSE_SSL_CLIENT 1 # define X509_PURPOSE_SSL_SERVER 2 # define X509_PURPOSE_NS_SSL_SERVER 3 @@ -739,9 +751,10 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_PURPOSE, X509_PURPOSE, X509_PURPOSE) # define X509_PURPOSE_ANY 7 # define X509_PURPOSE_OCSP_HELPER 8 # define X509_PURPOSE_TIMESTAMP_SIGN 9 +# define X509_PURPOSE_CODE_SIGN 10 # define X509_PURPOSE_MIN 1 -# define X509_PURPOSE_MAX 9 +# define X509_PURPOSE_MAX 10 /* Flags for X509V3_EXT_print() */ @@ -767,6 +780,7 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_PURPOSE, X509_PURPOSE, X509_PURPOSE) # define X509V3_ADD_SILENT 0x10 DECLARE_ASN1_FUNCTIONS(BASIC_CONSTRAINTS) +DECLARE_ASN1_FUNCTIONS(OSSL_BASIC_ATTR_CONSTRAINTS) DECLARE_ASN1_FUNCTIONS(SXNET) DECLARE_ASN1_FUNCTIONS(SXNETID) @@ -976,7 +990,6 @@ int X509V3_extensions_print(BIO *out, const char *title, int X509_check_ca(X509 *x); int X509_check_purpose(X509 *x, int id, int ca); int X509_supported_extension(X509_EXTENSION *ex); -int X509_PURPOSE_set(int *p, int purpose); int X509_check_issued(X509 *issuer, X509 *subject); int X509_check_akid(const X509 *issuer, const AUTHORITY_KEYID *akid); void X509_set_proxy_flag(X509 *x); @@ -992,22 +1005,26 @@ const GENERAL_NAMES *X509_get0_authority_issuer(X509 *x); const ASN1_INTEGER *X509_get0_authority_serial(X509 *x); int X509_PURPOSE_get_count(void); -X509_PURPOSE *X509_PURPOSE_get0(int idx); +int X509_PURPOSE_get_unused_id(OSSL_LIB_CTX *libctx); int X509_PURPOSE_get_by_sname(const char *sname); int X509_PURPOSE_get_by_id(int id); int X509_PURPOSE_add(int id, int trust, int flags, int (*ck) (const X509_PURPOSE *, const X509 *, int), const char *name, const char *sname, void *arg); +void X509_PURPOSE_cleanup(void); + +X509_PURPOSE *X509_PURPOSE_get0(int idx); +int X509_PURPOSE_get_id(const X509_PURPOSE *); char *X509_PURPOSE_get0_name(const X509_PURPOSE *xp); char *X509_PURPOSE_get0_sname(const X509_PURPOSE *xp); int X509_PURPOSE_get_trust(const X509_PURPOSE *xp); -void X509_PURPOSE_cleanup(void); -int X509_PURPOSE_get_id(const X509_PURPOSE *); +int X509_PURPOSE_set(int *p, int purpose); STACK_OF(OPENSSL_STRING) *X509_get1_email(X509 *x); STACK_OF(OPENSSL_STRING) *X509_REQ_get1_email(X509_REQ *x); void X509_email_free(STACK_OF(OPENSSL_STRING) *sk); STACK_OF(OPENSSL_STRING) *X509_get1_ocsp(X509 *x); + /* Flags for X509_check_* functions */ /* @@ -1444,6 +1461,507 @@ const ASN1_PRINTABLESTRING *PROFESSION_INFO_get0_registrationNumber( void PROFESSION_INFO_set0_registrationNumber( PROFESSION_INFO *pi, ASN1_PRINTABLESTRING *rn); +int OSSL_GENERAL_NAMES_print(BIO *out, GENERAL_NAMES *gens, int indent); + +typedef STACK_OF(X509_ATTRIBUTE) OSSL_ATTRIBUTES_SYNTAX; +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTES_SYNTAX) + +typedef STACK_OF(USERNOTICE) OSSL_USER_NOTICE_SYNTAX; +DECLARE_ASN1_FUNCTIONS(OSSL_USER_NOTICE_SYNTAX) + +SKM_DEFINE_STACK_OF_INTERNAL(USERNOTICE, USERNOTICE, USERNOTICE) +#define sk_USERNOTICE_num(sk) OPENSSL_sk_num(ossl_check_const_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_value(sk, idx) ((USERNOTICE *)OPENSSL_sk_value(ossl_check_const_USERNOTICE_sk_type(sk), (idx))) +#define sk_USERNOTICE_new(cmp) ((STACK_OF(USERNOTICE) *)OPENSSL_sk_new(ossl_check_USERNOTICE_compfunc_type(cmp))) +#define sk_USERNOTICE_new_null() ((STACK_OF(USERNOTICE) *)OPENSSL_sk_new_null()) +#define sk_USERNOTICE_new_reserve(cmp, n) ((STACK_OF(USERNOTICE) *)OPENSSL_sk_new_reserve(ossl_check_USERNOTICE_compfunc_type(cmp), (n))) +#define sk_USERNOTICE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_USERNOTICE_sk_type(sk), (n)) +#define sk_USERNOTICE_free(sk) OPENSSL_sk_free(ossl_check_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_zero(sk) OPENSSL_sk_zero(ossl_check_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_delete(sk, i) ((USERNOTICE *)OPENSSL_sk_delete(ossl_check_USERNOTICE_sk_type(sk), (i))) +#define sk_USERNOTICE_delete_ptr(sk, ptr) ((USERNOTICE *)OPENSSL_sk_delete_ptr(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr))) +#define sk_USERNOTICE_push(sk, ptr) OPENSSL_sk_push(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr)) +#define sk_USERNOTICE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr)) +#define sk_USERNOTICE_pop(sk) ((USERNOTICE *)OPENSSL_sk_pop(ossl_check_USERNOTICE_sk_type(sk))) +#define sk_USERNOTICE_shift(sk) ((USERNOTICE *)OPENSSL_sk_shift(ossl_check_USERNOTICE_sk_type(sk))) +#define sk_USERNOTICE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_USERNOTICE_sk_type(sk),ossl_check_USERNOTICE_freefunc_type(freefunc)) +#define sk_USERNOTICE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr), (idx)) +#define sk_USERNOTICE_set(sk, idx, ptr) ((USERNOTICE *)OPENSSL_sk_set(ossl_check_USERNOTICE_sk_type(sk), (idx), ossl_check_USERNOTICE_type(ptr))) +#define sk_USERNOTICE_find(sk, ptr) OPENSSL_sk_find(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr)) +#define sk_USERNOTICE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr)) +#define sk_USERNOTICE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr), pnum) +#define sk_USERNOTICE_sort(sk) OPENSSL_sk_sort(ossl_check_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_dup(sk) ((STACK_OF(USERNOTICE) *)OPENSSL_sk_dup(ossl_check_const_USERNOTICE_sk_type(sk))) +#define sk_USERNOTICE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(USERNOTICE) *)OPENSSL_sk_deep_copy(ossl_check_const_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_copyfunc_type(copyfunc), ossl_check_USERNOTICE_freefunc_type(freefunc))) +#define sk_USERNOTICE_set_cmp_func(sk, cmp) ((sk_USERNOTICE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_compfunc_type(cmp))) + + +typedef struct OSSL_ROLE_SPEC_CERT_ID_st { + GENERAL_NAME *roleName; + GENERAL_NAME *roleCertIssuer; + ASN1_INTEGER *roleCertSerialNumber; + GENERAL_NAMES *roleCertLocator; +} OSSL_ROLE_SPEC_CERT_ID; + +DECLARE_ASN1_FUNCTIONS(OSSL_ROLE_SPEC_CERT_ID) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ROLE_SPEC_CERT_ID, OSSL_ROLE_SPEC_CERT_ID, OSSL_ROLE_SPEC_CERT_ID) +#define sk_OSSL_ROLE_SPEC_CERT_ID_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_value(sk, idx) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_value(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), (idx))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_new(cmp) ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_new(ossl_check_OSSL_ROLE_SPEC_CERT_ID_compfunc_type(cmp))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_new_null() ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ROLE_SPEC_CERT_ID_new_reserve(cmp, n) ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ROLE_SPEC_CERT_ID_compfunc_type(cmp), (n))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), (n)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_delete(sk, i) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_delete(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), (i))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_delete_ptr(sk, ptr) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_pop(sk) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_pop(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_shift(sk) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_shift(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk),ossl_check_OSSL_ROLE_SPEC_CERT_ID_freefunc_type(freefunc)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr), (idx)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_set(sk, idx, ptr) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_set(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), (idx), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr), pnum) +#define sk_OSSL_ROLE_SPEC_CERT_ID_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_dup(sk) ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_copyfunc_type(copyfunc), ossl_check_OSSL_ROLE_SPEC_CERT_ID_freefunc_type(freefunc))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_set_cmp_func(sk, cmp) ((sk_OSSL_ROLE_SPEC_CERT_ID_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_compfunc_type(cmp))) + + +typedef STACK_OF(OSSL_ROLE_SPEC_CERT_ID) OSSL_ROLE_SPEC_CERT_ID_SYNTAX; + +DECLARE_ASN1_FUNCTIONS(OSSL_ROLE_SPEC_CERT_ID_SYNTAX) +typedef struct OSSL_HASH_st { + X509_ALGOR *algorithmIdentifier; + ASN1_BIT_STRING *hashValue; +} OSSL_HASH; + +typedef struct OSSL_INFO_SYNTAX_POINTER_st { + GENERAL_NAMES *name; + OSSL_HASH *hash; +} OSSL_INFO_SYNTAX_POINTER; + +# define OSSL_INFO_SYNTAX_TYPE_CONTENT 0 +# define OSSL_INFO_SYNTAX_TYPE_POINTER 1 + +typedef struct OSSL_INFO_SYNTAX_st { + int type; + union { + ASN1_STRING *content; + OSSL_INFO_SYNTAX_POINTER *pointer; + } choice; +} OSSL_INFO_SYNTAX; + +typedef struct OSSL_PRIVILEGE_POLICY_ID_st { + ASN1_OBJECT *privilegePolicy; + OSSL_INFO_SYNTAX *privPolSyntax; +} OSSL_PRIVILEGE_POLICY_ID; + +typedef struct OSSL_ATTRIBUTE_DESCRIPTOR_st { + ASN1_OBJECT *identifier; + ASN1_STRING *attributeSyntax; + ASN1_UTF8STRING *name; + ASN1_UTF8STRING *description; + OSSL_PRIVILEGE_POLICY_ID *dominationRule; +} OSSL_ATTRIBUTE_DESCRIPTOR; + +DECLARE_ASN1_FUNCTIONS(OSSL_HASH) +DECLARE_ASN1_FUNCTIONS(OSSL_INFO_SYNTAX) +DECLARE_ASN1_FUNCTIONS(OSSL_INFO_SYNTAX_POINTER) +DECLARE_ASN1_FUNCTIONS(OSSL_PRIVILEGE_POLICY_ID) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_DESCRIPTOR) + +typedef struct OSSL_TIME_SPEC_ABSOLUTE_st { + ASN1_GENERALIZEDTIME *startTime; + ASN1_GENERALIZEDTIME *endTime; +} OSSL_TIME_SPEC_ABSOLUTE; + +typedef struct OSSL_DAY_TIME_st { + ASN1_INTEGER *hour; + ASN1_INTEGER *minute; + ASN1_INTEGER *second; +} OSSL_DAY_TIME; + +typedef struct OSSL_DAY_TIME_BAND_st { + OSSL_DAY_TIME *startDayTime; + OSSL_DAY_TIME *endDayTime; +} OSSL_DAY_TIME_BAND; + +# define OSSL_NAMED_DAY_TYPE_INT 0 +# define OSSL_NAMED_DAY_TYPE_BIT 1 +# define OSSL_NAMED_DAY_INT_SUN 1 +# define OSSL_NAMED_DAY_INT_MON 2 +# define OSSL_NAMED_DAY_INT_TUE 3 +# define OSSL_NAMED_DAY_INT_WED 4 +# define OSSL_NAMED_DAY_INT_THU 5 +# define OSSL_NAMED_DAY_INT_FRI 6 +# define OSSL_NAMED_DAY_INT_SAT 7 +# define OSSL_NAMED_DAY_BIT_SUN 0 +# define OSSL_NAMED_DAY_BIT_MON 1 +# define OSSL_NAMED_DAY_BIT_TUE 2 +# define OSSL_NAMED_DAY_BIT_WED 3 +# define OSSL_NAMED_DAY_BIT_THU 4 +# define OSSL_NAMED_DAY_BIT_FRI 5 +# define OSSL_NAMED_DAY_BIT_SAT 6 + +typedef struct OSSL_NAMED_DAY_st { + int type; + union { + ASN1_INTEGER *intNamedDays; + ASN1_BIT_STRING *bitNamedDays; + } choice; +} OSSL_NAMED_DAY; + +# define OSSL_TIME_SPEC_X_DAY_OF_FIRST 0 +# define OSSL_TIME_SPEC_X_DAY_OF_SECOND 1 +# define OSSL_TIME_SPEC_X_DAY_OF_THIRD 2 +# define OSSL_TIME_SPEC_X_DAY_OF_FOURTH 3 +# define OSSL_TIME_SPEC_X_DAY_OF_FIFTH 4 + +typedef struct OSSL_TIME_SPEC_X_DAY_OF_st { + int type; + union { + OSSL_NAMED_DAY *first; + OSSL_NAMED_DAY *second; + OSSL_NAMED_DAY *third; + OSSL_NAMED_DAY *fourth; + OSSL_NAMED_DAY *fifth; + } choice; +} OSSL_TIME_SPEC_X_DAY_OF; + +# define OSSL_TIME_SPEC_DAY_TYPE_INT 0 +# define OSSL_TIME_SPEC_DAY_TYPE_BIT 1 +# define OSSL_TIME_SPEC_DAY_TYPE_DAY_OF 2 +# define OSSL_TIME_SPEC_DAY_BIT_SUN 0 +# define OSSL_TIME_SPEC_DAY_BIT_MON 1 +# define OSSL_TIME_SPEC_DAY_BIT_TUE 2 +# define OSSL_TIME_SPEC_DAY_BIT_WED 3 +# define OSSL_TIME_SPEC_DAY_BIT_THU 4 +# define OSSL_TIME_SPEC_DAY_BIT_FRI 5 +# define OSSL_TIME_SPEC_DAY_BIT_SAT 6 +# define OSSL_TIME_SPEC_DAY_INT_SUN 1 +# define OSSL_TIME_SPEC_DAY_INT_MON 2 +# define OSSL_TIME_SPEC_DAY_INT_TUE 3 +# define OSSL_TIME_SPEC_DAY_INT_WED 4 +# define OSSL_TIME_SPEC_DAY_INT_THU 5 +# define OSSL_TIME_SPEC_DAY_INT_FRI 6 +# define OSSL_TIME_SPEC_DAY_INT_SAT 7 + +typedef struct OSSL_TIME_SPEC_DAY_st { + int type; + union { + STACK_OF(ASN1_INTEGER) *intDay; + ASN1_BIT_STRING *bitDay; + OSSL_TIME_SPEC_X_DAY_OF *dayOf; + } choice; +} OSSL_TIME_SPEC_DAY; + +# define OSSL_TIME_SPEC_WEEKS_TYPE_ALL 0 +# define OSSL_TIME_SPEC_WEEKS_TYPE_INT 1 +# define OSSL_TIME_SPEC_WEEKS_TYPE_BIT 2 +# define OSSL_TIME_SPEC_BIT_WEEKS_1 0 +# define OSSL_TIME_SPEC_BIT_WEEKS_2 1 +# define OSSL_TIME_SPEC_BIT_WEEKS_3 2 +# define OSSL_TIME_SPEC_BIT_WEEKS_4 3 +# define OSSL_TIME_SPEC_BIT_WEEKS_5 4 + +typedef struct OSSL_TIME_SPEC_WEEKS_st { + int type; + union { + ASN1_NULL *allWeeks; + STACK_OF(ASN1_INTEGER) *intWeek; + ASN1_BIT_STRING *bitWeek; + } choice; +} OSSL_TIME_SPEC_WEEKS; + +# define OSSL_TIME_SPEC_MONTH_TYPE_ALL 0 +# define OSSL_TIME_SPEC_MONTH_TYPE_INT 1 +# define OSSL_TIME_SPEC_MONTH_TYPE_BIT 2 +# define OSSL_TIME_SPEC_INT_MONTH_JAN 1 +# define OSSL_TIME_SPEC_INT_MONTH_FEB 2 +# define OSSL_TIME_SPEC_INT_MONTH_MAR 3 +# define OSSL_TIME_SPEC_INT_MONTH_APR 4 +# define OSSL_TIME_SPEC_INT_MONTH_MAY 5 +# define OSSL_TIME_SPEC_INT_MONTH_JUN 6 +# define OSSL_TIME_SPEC_INT_MONTH_JUL 7 +# define OSSL_TIME_SPEC_INT_MONTH_AUG 8 +# define OSSL_TIME_SPEC_INT_MONTH_SEP 9 +# define OSSL_TIME_SPEC_INT_MONTH_OCT 10 +# define OSSL_TIME_SPEC_INT_MONTH_NOV 11 +# define OSSL_TIME_SPEC_INT_MONTH_DEC 12 +# define OSSL_TIME_SPEC_BIT_MONTH_JAN 0 +# define OSSL_TIME_SPEC_BIT_MONTH_FEB 1 +# define OSSL_TIME_SPEC_BIT_MONTH_MAR 2 +# define OSSL_TIME_SPEC_BIT_MONTH_APR 3 +# define OSSL_TIME_SPEC_BIT_MONTH_MAY 4 +# define OSSL_TIME_SPEC_BIT_MONTH_JUN 5 +# define OSSL_TIME_SPEC_BIT_MONTH_JUL 6 +# define OSSL_TIME_SPEC_BIT_MONTH_AUG 7 +# define OSSL_TIME_SPEC_BIT_MONTH_SEP 8 +# define OSSL_TIME_SPEC_BIT_MONTH_OCT 9 +# define OSSL_TIME_SPEC_BIT_MONTH_NOV 10 +# define OSSL_TIME_SPEC_BIT_MONTH_DEC 11 + +typedef struct OSSL_TIME_SPEC_MONTH_st { + int type; + union { + ASN1_NULL *allMonths; + STACK_OF(ASN1_INTEGER) *intMonth; + ASN1_BIT_STRING *bitMonth; + } choice; +} OSSL_TIME_SPEC_MONTH; + +typedef struct OSSL_TIME_PERIOD_st { + STACK_OF(OSSL_DAY_TIME_BAND) *timesOfDay; + OSSL_TIME_SPEC_DAY *days; + OSSL_TIME_SPEC_WEEKS *weeks; + OSSL_TIME_SPEC_MONTH *months; + STACK_OF(ASN1_INTEGER) *years; +} OSSL_TIME_PERIOD; + +# define OSSL_TIME_SPEC_TIME_TYPE_ABSOLUTE 0 +# define OSSL_TIME_SPEC_TIME_TYPE_PERIODIC 1 + +typedef struct OSSL_TIME_SPEC_TIME_st { + int type; + union { + OSSL_TIME_SPEC_ABSOLUTE *absolute; + STACK_OF(OSSL_TIME_PERIOD) *periodic; + } choice; +} OSSL_TIME_SPEC_TIME; + +typedef struct OSSL_TIME_SPEC_st { + OSSL_TIME_SPEC_TIME *time; + ASN1_BOOLEAN notThisTime; + ASN1_INTEGER *timeZone; +} OSSL_TIME_SPEC; + +DECLARE_ASN1_FUNCTIONS(OSSL_DAY_TIME) +DECLARE_ASN1_FUNCTIONS(OSSL_DAY_TIME_BAND) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_DAY) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_WEEKS) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_MONTH) +DECLARE_ASN1_FUNCTIONS(OSSL_NAMED_DAY) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_X_DAY_OF) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_ABSOLUTE) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_TIME) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_PERIOD) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_TIME_PERIOD, OSSL_TIME_PERIOD, OSSL_TIME_PERIOD) +#define sk_OSSL_TIME_PERIOD_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_value(sk, idx) ((OSSL_TIME_PERIOD *)OPENSSL_sk_value(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk), (idx))) +#define sk_OSSL_TIME_PERIOD_new(cmp) ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_new(ossl_check_OSSL_TIME_PERIOD_compfunc_type(cmp))) +#define sk_OSSL_TIME_PERIOD_new_null() ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_new_null()) +#define sk_OSSL_TIME_PERIOD_new_reserve(cmp, n) ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_TIME_PERIOD_compfunc_type(cmp), (n))) +#define sk_OSSL_TIME_PERIOD_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), (n)) +#define sk_OSSL_TIME_PERIOD_free(sk) OPENSSL_sk_free(ossl_check_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_delete(sk, i) ((OSSL_TIME_PERIOD *)OPENSSL_sk_delete(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), (i))) +#define sk_OSSL_TIME_PERIOD_delete_ptr(sk, ptr) ((OSSL_TIME_PERIOD *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr))) +#define sk_OSSL_TIME_PERIOD_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr)) +#define sk_OSSL_TIME_PERIOD_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr)) +#define sk_OSSL_TIME_PERIOD_pop(sk) ((OSSL_TIME_PERIOD *)OPENSSL_sk_pop(ossl_check_OSSL_TIME_PERIOD_sk_type(sk))) +#define sk_OSSL_TIME_PERIOD_shift(sk) ((OSSL_TIME_PERIOD *)OPENSSL_sk_shift(ossl_check_OSSL_TIME_PERIOD_sk_type(sk))) +#define sk_OSSL_TIME_PERIOD_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_TIME_PERIOD_sk_type(sk),ossl_check_OSSL_TIME_PERIOD_freefunc_type(freefunc)) +#define sk_OSSL_TIME_PERIOD_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr), (idx)) +#define sk_OSSL_TIME_PERIOD_set(sk, idx, ptr) ((OSSL_TIME_PERIOD *)OPENSSL_sk_set(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), (idx), ossl_check_OSSL_TIME_PERIOD_type(ptr))) +#define sk_OSSL_TIME_PERIOD_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr)) +#define sk_OSSL_TIME_PERIOD_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr)) +#define sk_OSSL_TIME_PERIOD_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr), pnum) +#define sk_OSSL_TIME_PERIOD_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_dup(sk) ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_dup(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk))) +#define sk_OSSL_TIME_PERIOD_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_copyfunc_type(copyfunc), ossl_check_OSSL_TIME_PERIOD_freefunc_type(freefunc))) +#define sk_OSSL_TIME_PERIOD_set_cmp_func(sk, cmp) ((sk_OSSL_TIME_PERIOD_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_compfunc_type(cmp))) + + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_DAY_TIME_BAND, OSSL_DAY_TIME_BAND, OSSL_DAY_TIME_BAND) +#define sk_OSSL_DAY_TIME_BAND_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_value(sk, idx) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_value(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk), (idx))) +#define sk_OSSL_DAY_TIME_BAND_new(cmp) ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_new(ossl_check_OSSL_DAY_TIME_BAND_compfunc_type(cmp))) +#define sk_OSSL_DAY_TIME_BAND_new_null() ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_new_null()) +#define sk_OSSL_DAY_TIME_BAND_new_reserve(cmp, n) ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_DAY_TIME_BAND_compfunc_type(cmp), (n))) +#define sk_OSSL_DAY_TIME_BAND_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), (n)) +#define sk_OSSL_DAY_TIME_BAND_free(sk) OPENSSL_sk_free(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_delete(sk, i) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_delete(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), (i))) +#define sk_OSSL_DAY_TIME_BAND_delete_ptr(sk, ptr) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr))) +#define sk_OSSL_DAY_TIME_BAND_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr)) +#define sk_OSSL_DAY_TIME_BAND_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr)) +#define sk_OSSL_DAY_TIME_BAND_pop(sk) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_pop(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk))) +#define sk_OSSL_DAY_TIME_BAND_shift(sk) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_shift(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk))) +#define sk_OSSL_DAY_TIME_BAND_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk),ossl_check_OSSL_DAY_TIME_BAND_freefunc_type(freefunc)) +#define sk_OSSL_DAY_TIME_BAND_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr), (idx)) +#define sk_OSSL_DAY_TIME_BAND_set(sk, idx, ptr) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_set(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), (idx), ossl_check_OSSL_DAY_TIME_BAND_type(ptr))) +#define sk_OSSL_DAY_TIME_BAND_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr)) +#define sk_OSSL_DAY_TIME_BAND_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr)) +#define sk_OSSL_DAY_TIME_BAND_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr), pnum) +#define sk_OSSL_DAY_TIME_BAND_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_dup(sk) ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_dup(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk))) +#define sk_OSSL_DAY_TIME_BAND_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_copyfunc_type(copyfunc), ossl_check_OSSL_DAY_TIME_BAND_freefunc_type(freefunc))) +#define sk_OSSL_DAY_TIME_BAND_set_cmp_func(sk, cmp) ((sk_OSSL_DAY_TIME_BAND_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_compfunc_type(cmp))) + + +/* Attribute Type and Value */ +typedef struct atav_st { + ASN1_OBJECT *type; + ASN1_TYPE *value; +} OSSL_ATAV; + +typedef struct ATTRIBUTE_TYPE_MAPPING_st { + ASN1_OBJECT *local; + ASN1_OBJECT *remote; +} OSSL_ATTRIBUTE_TYPE_MAPPING; + +typedef struct ATTRIBUTE_VALUE_MAPPING_st { + OSSL_ATAV *local; + OSSL_ATAV *remote; +} OSSL_ATTRIBUTE_VALUE_MAPPING; + +# define OSSL_ATTR_MAP_TYPE 0 +# define OSSL_ATTR_MAP_VALUE 1 + +typedef struct ATTRIBUTE_MAPPING_st { + int type; + union { + OSSL_ATTRIBUTE_TYPE_MAPPING *typeMappings; + OSSL_ATTRIBUTE_VALUE_MAPPING *typeValueMappings; + } choice; +} OSSL_ATTRIBUTE_MAPPING; + +typedef STACK_OF(OSSL_ATTRIBUTE_MAPPING) OSSL_ATTRIBUTE_MAPPINGS; +DECLARE_ASN1_FUNCTIONS(OSSL_ATAV) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_TYPE_MAPPING) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_VALUE_MAPPING) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_MAPPING) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_MAPPINGS) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ATTRIBUTE_MAPPING, OSSL_ATTRIBUTE_MAPPING, OSSL_ATTRIBUTE_MAPPING) +#define sk_OSSL_ATTRIBUTE_MAPPING_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_value(sk, idx) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_value(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), (idx))) +#define sk_OSSL_ATTRIBUTE_MAPPING_new(cmp) ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_new(ossl_check_OSSL_ATTRIBUTE_MAPPING_compfunc_type(cmp))) +#define sk_OSSL_ATTRIBUTE_MAPPING_new_null() ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ATTRIBUTE_MAPPING_new_reserve(cmp, n) ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ATTRIBUTE_MAPPING_compfunc_type(cmp), (n))) +#define sk_OSSL_ATTRIBUTE_MAPPING_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), (n)) +#define sk_OSSL_ATTRIBUTE_MAPPING_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_delete(sk, i) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_delete(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), (i))) +#define sk_OSSL_ATTRIBUTE_MAPPING_delete_ptr(sk, ptr) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr))) +#define sk_OSSL_ATTRIBUTE_MAPPING_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr)) +#define sk_OSSL_ATTRIBUTE_MAPPING_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr)) +#define sk_OSSL_ATTRIBUTE_MAPPING_pop(sk) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_pop(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk))) +#define sk_OSSL_ATTRIBUTE_MAPPING_shift(sk) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_shift(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk))) +#define sk_OSSL_ATTRIBUTE_MAPPING_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk),ossl_check_OSSL_ATTRIBUTE_MAPPING_freefunc_type(freefunc)) +#define sk_OSSL_ATTRIBUTE_MAPPING_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr), (idx)) +#define sk_OSSL_ATTRIBUTE_MAPPING_set(sk, idx, ptr) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_set(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), (idx), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr))) +#define sk_OSSL_ATTRIBUTE_MAPPING_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr)) +#define sk_OSSL_ATTRIBUTE_MAPPING_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr)) +#define sk_OSSL_ATTRIBUTE_MAPPING_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr), pnum) +#define sk_OSSL_ATTRIBUTE_MAPPING_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_dup(sk) ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk))) +#define sk_OSSL_ATTRIBUTE_MAPPING_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_copyfunc_type(copyfunc), ossl_check_OSSL_ATTRIBUTE_MAPPING_freefunc_type(freefunc))) +#define sk_OSSL_ATTRIBUTE_MAPPING_set_cmp_func(sk, cmp) ((sk_OSSL_ATTRIBUTE_MAPPING_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_compfunc_type(cmp))) + + +# define OSSL_AAA_ATTRIBUTE_TYPE 0 +# define OSSL_AAA_ATTRIBUTE_VALUES 1 + +typedef struct ALLOWED_ATTRIBUTES_CHOICE_st { + int type; + union { + ASN1_OBJECT *attributeType; + X509_ATTRIBUTE *attributeTypeandValues; + } choice; +} OSSL_ALLOWED_ATTRIBUTES_CHOICE; + +typedef struct ALLOWED_ATTRIBUTES_ITEM_st { + STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *attributes; + GENERAL_NAME *holderDomain; +} OSSL_ALLOWED_ATTRIBUTES_ITEM; + +typedef STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) OSSL_ALLOWED_ATTRIBUTES_SYNTAX; + +DECLARE_ASN1_FUNCTIONS(OSSL_ALLOWED_ATTRIBUTES_CHOICE) +DECLARE_ASN1_FUNCTIONS(OSSL_ALLOWED_ATTRIBUTES_ITEM) +DECLARE_ASN1_FUNCTIONS(OSSL_ALLOWED_ATTRIBUTES_SYNTAX) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ALLOWED_ATTRIBUTES_CHOICE, OSSL_ALLOWED_ATTRIBUTES_CHOICE, OSSL_ALLOWED_ATTRIBUTES_CHOICE) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_value(sk, idx) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_value(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), (idx))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_new(cmp) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_new(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_compfunc_type(cmp))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_new_null() ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_new_reserve(cmp, n) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_compfunc_type(cmp), (n))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), (n)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_delete(sk, i) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_delete(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), (i))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_delete_ptr(sk, ptr) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_pop(sk) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_pop(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_shift(sk) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_shift(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk),ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_freefunc_type(freefunc)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr), (idx)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_set(sk, idx, ptr) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_set(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), (idx), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr), pnum) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_dup(sk) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_copyfunc_type(copyfunc), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_freefunc_type(freefunc))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_set_cmp_func(sk, cmp) ((sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_compfunc_type(cmp))) + + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ALLOWED_ATTRIBUTES_ITEM, OSSL_ALLOWED_ATTRIBUTES_ITEM, OSSL_ALLOWED_ATTRIBUTES_ITEM) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_value(sk, idx) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_value(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), (idx))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_new(cmp) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_new(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_compfunc_type(cmp))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_new_null() ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_new_reserve(cmp, n) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_compfunc_type(cmp), (n))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), (n)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_delete(sk, i) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_delete(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), (i))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_delete_ptr(sk, ptr) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_pop(sk) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_pop(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_shift(sk) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_shift(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk),ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_freefunc_type(freefunc)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr), (idx)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_set(sk, idx, ptr) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_set(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), (idx), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr), pnum) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_dup(sk) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_copyfunc_type(copyfunc), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_freefunc_type(freefunc))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_set_cmp_func(sk, cmp) ((sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_compfunc_type(cmp))) + + +typedef struct AA_DIST_POINT_st { + DIST_POINT_NAME *distpoint; + ASN1_BIT_STRING *reasons; + int dp_reasons; + ASN1_BOOLEAN indirectCRL; + ASN1_BOOLEAN containsUserAttributeCerts; + ASN1_BOOLEAN containsAACerts; + ASN1_BOOLEAN containsSOAPublicKeyCerts; +} OSSL_AA_DIST_POINT; + +DECLARE_ASN1_FUNCTIONS(OSSL_AA_DIST_POINT) + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/linux-aarch64/asm/include/progs.h b/deps/openssl/config/archs/linux-aarch64/asm/include/progs.h index be55f61503d405..1b62ec37dec130 100644 --- a/deps/openssl/config/archs/linux-aarch64/asm/include/progs.h +++ b/deps/openssl/config/archs/linux-aarch64/asm/include/progs.h @@ -56,6 +56,7 @@ extern int s_client_main(int argc, char *argv[]); extern int s_server_main(int argc, char *argv[]); extern int s_time_main(int argc, char *argv[]); extern int sess_id_main(int argc, char *argv[]); +extern int skeyutl_main(int argc, char *argv[]); extern int smime_main(int argc, char *argv[]); extern int speed_main(int argc, char *argv[]); extern int spkac_main(int argc, char *argv[]); @@ -110,6 +111,7 @@ extern const OPTIONS s_client_options[]; extern const OPTIONS s_server_options[]; extern const OPTIONS s_time_options[]; extern const OPTIONS sess_id_options[]; +extern const OPTIONS skeyutl_options[]; extern const OPTIONS smime_options[]; extern const OPTIONS speed_options[]; extern const OPTIONS spkac_options[]; diff --git a/deps/openssl/config/archs/linux-aarch64/asm/openssl-cl.gypi b/deps/openssl/config/archs/linux-aarch64/asm/openssl-cl.gypi index 5a6d4b8257fd80..05a63c13fc08f8 100644 --- a/deps/openssl/config/archs/linux-aarch64/asm/openssl-cl.gypi +++ b/deps/openssl/config/archs/linux-aarch64/asm/openssl-cl.gypi @@ -4,15 +4,21 @@ 'NDEBUG', 'OPENSSL_USE_NODELETE', 'OPENSSL_BUILDING_OPENSSL', + 'BSAES_ASM', 'ECP_NISTZ256_ASM', + 'ECP_SM2P256_ASM', 'KECCAK1600_ASM', + 'MD5_ASM', 'OPENSSL_BN_ASM_MONT', 'OPENSSL_CPUID_OBJ', + 'OPENSSL_SM3_ASM', 'POLY1305_ASM', 'SHA1_ASM', 'SHA256_ASM', 'SHA512_ASM', + 'SM4_ASM', 'VPAES_ASM', + 'VPSM4_ASM', 'OPENSSL_PIC', ], 'openssl_cflags_linux-aarch64': [ @@ -71,6 +77,7 @@ 'openssl/apps/s_server.c', 'openssl/apps/s_time.c', 'openssl/apps/sess_id.c', + 'openssl/apps/skeyutl.c', 'openssl/apps/smime.c', 'openssl/apps/speed.c', 'openssl/apps/spkac.c', @@ -86,12 +93,14 @@ 'openssl/apps/lib/app_rand.c', 'openssl/apps/lib/app_x509.c', 'openssl/apps/lib/apps.c', + 'openssl/apps/lib/apps_opt_printf.c', 'openssl/apps/lib/apps_ui.c', 'openssl/apps/lib/columns.c', 'openssl/apps/lib/engine.c', 'openssl/apps/lib/engine_loader.c', 'openssl/apps/lib/fmt.c', 'openssl/apps/lib/http_server.c', + 'openssl/apps/lib/log.c', 'openssl/apps/lib/names.c', 'openssl/apps/lib/opt.c', 'openssl/apps/lib/s_cb.c', diff --git a/deps/openssl/config/archs/linux-aarch64/asm/openssl-fips.gypi b/deps/openssl/config/archs/linux-aarch64/asm/openssl-fips.gypi index 6cbbcf0e5a90e6..32db2665a21a45 100644 --- a/deps/openssl/config/archs/linux-aarch64/asm/openssl-fips.gypi +++ b/deps/openssl/config/archs/linux-aarch64/asm/openssl-fips.gypi @@ -83,6 +83,8 @@ 'openssl/crypto/ec/ecp_nist.c', 'openssl/crypto/ec/ecp_nistz256.c', 'openssl/crypto/ec/ecp_oct.c', + 'openssl/crypto/ec/ecp_sm2p256.c', + 'openssl/crypto/ec/ecp_sm2p256_table.c', 'openssl/crypto/ec/ecp_smpl.c', 'openssl/crypto/ec/ecx_backend.c', 'openssl/crypto/ec/ecx_key.c', @@ -101,14 +103,15 @@ 'openssl/crypto/evp/kem.c', 'openssl/crypto/evp/keymgmt_lib.c', 'openssl/crypto/evp/keymgmt_meth.c', - 'openssl/crypto/evp/m_sigver.c', 'openssl/crypto/evp/mac_lib.c', 'openssl/crypto/evp/mac_meth.c', 'openssl/crypto/evp/p_lib.c', 'openssl/crypto/evp/pmeth_check.c', 'openssl/crypto/evp/pmeth_gn.c', 'openssl/crypto/evp/pmeth_lib.c', + 'openssl/crypto/evp/s_lib.c', 'openssl/crypto/evp/signature.c', + 'openssl/crypto/evp/skeymgmt_meth.c', 'openssl/crypto/ffc/ffc_backend.c', 'openssl/crypto/ffc/ffc_dh.c', 'openssl/crypto/ffc/ffc_key_generate.c', @@ -116,6 +119,8 @@ 'openssl/crypto/ffc/ffc_params.c', 'openssl/crypto/ffc/ffc_params_generate.c', 'openssl/crypto/ffc/ffc_params_validate.c', + 'openssl/crypto/hashtable/hashfunc.c', + 'openssl/crypto/hashtable/hashtable.c', 'openssl/crypto/hmac/hmac.c', 'openssl/crypto/lhash/lhash.c', 'openssl/crypto/armcap.c', @@ -146,6 +151,16 @@ 'openssl/crypto/threads_none.c', 'openssl/crypto/threads_pthread.c', 'openssl/crypto/threads_win.c', + 'openssl/crypto/time.c', + 'openssl/crypto/ml_dsa/ml_dsa_encoders.c', + 'openssl/crypto/ml_dsa/ml_dsa_key.c', + 'openssl/crypto/ml_dsa/ml_dsa_key_compress.c', + 'openssl/crypto/ml_dsa/ml_dsa_matrix.c', + 'openssl/crypto/ml_dsa/ml_dsa_ntt.c', + 'openssl/crypto/ml_dsa/ml_dsa_params.c', + 'openssl/crypto/ml_dsa/ml_dsa_sample.c', + 'openssl/crypto/ml_dsa/ml_dsa_sign.c', + 'openssl/crypto/ml_kem/ml_kem.c', 'openssl/crypto/modes/cbc128.c', 'openssl/crypto/modes/ccm128.c', 'openssl/crypto/modes/cfb128.c', @@ -154,6 +169,7 @@ 'openssl/crypto/modes/ofb128.c', 'openssl/crypto/modes/wrap128.c', 'openssl/crypto/modes/xts128.c', + 'openssl/crypto/modes/xts128gb.c', 'openssl/crypto/property/defn_cache.c', 'openssl/crypto/property/property.c', 'openssl/crypto/property/property_parse.c', @@ -181,7 +197,23 @@ 'openssl/crypto/sha/sha256.c', 'openssl/crypto/sha/sha3.c', 'openssl/crypto/sha/sha512.c', + 'openssl/crypto/slh_dsa/slh_adrs.c', + 'openssl/crypto/slh_dsa/slh_dsa.c', + 'openssl/crypto/slh_dsa/slh_dsa_hash_ctx.c', + 'openssl/crypto/slh_dsa/slh_dsa_key.c', + 'openssl/crypto/slh_dsa/slh_fors.c', + 'openssl/crypto/slh_dsa/slh_hash.c', + 'openssl/crypto/slh_dsa/slh_hypertree.c', + 'openssl/crypto/slh_dsa/slh_params.c', + 'openssl/crypto/slh_dsa/slh_wots.c', + 'openssl/crypto/slh_dsa/slh_xmss.c', 'openssl/crypto/stack/stack.c', + 'openssl/crypto/thread/arch/thread_none.c', + 'openssl/crypto/thread/arch/thread_posix.c', + 'openssl/crypto/thread/arch/thread_win.c', + 'openssl/crypto/thread/api.c', + 'openssl/crypto/thread/arch.c', + 'openssl/crypto/thread/internal.c', 'openssl/providers/common/der/der_rsa_sig.c', 'openssl/providers/common/bio_prov.c', 'openssl/providers/common/capabilities.c', @@ -190,6 +222,7 @@ 'openssl/providers/common/provider_util.c', 'openssl/providers/common/securitycheck.c', 'openssl/providers/common/securitycheck_fips.c', + 'openssl/providers/fips/fipsindicator.c', 'openssl/providers/fips/fipsprov.c', 'openssl/providers/fips/self_test.c', 'openssl/providers/fips/self_test_kats.c', @@ -227,6 +260,8 @@ 'openssl/providers/implementations/kdfs/sskdf.c', 'openssl/providers/implementations/kdfs/tls1_prf.c', 'openssl/providers/implementations/kdfs/x942kdf.c', + 'openssl/providers/implementations/kem/ml_kem_kem.c', + 'openssl/providers/implementations/kem/mlx_kem.c', 'openssl/providers/implementations/kem/rsa_kem.c', 'openssl/providers/implementations/keymgmt/dh_kmgmt.c', 'openssl/providers/implementations/keymgmt/dsa_kmgmt.c', @@ -234,29 +269,39 @@ 'openssl/providers/implementations/keymgmt/ecx_kmgmt.c', 'openssl/providers/implementations/keymgmt/kdf_legacy_kmgmt.c', 'openssl/providers/implementations/keymgmt/mac_legacy_kmgmt.c', + 'openssl/providers/implementations/keymgmt/ml_dsa_kmgmt.c', + 'openssl/providers/implementations/keymgmt/ml_kem_kmgmt.c', + 'openssl/providers/implementations/keymgmt/mlx_kmgmt.c', 'openssl/providers/implementations/keymgmt/rsa_kmgmt.c', + 'openssl/providers/implementations/keymgmt/slh_dsa_kmgmt.c', 'openssl/providers/implementations/macs/cmac_prov.c', 'openssl/providers/implementations/macs/gmac_prov.c', 'openssl/providers/implementations/macs/hmac_prov.c', 'openssl/providers/implementations/macs/kmac_prov.c', - 'openssl/providers/implementations/rands/crngt.c', 'openssl/providers/implementations/rands/drbg.c', 'openssl/providers/implementations/rands/drbg_ctr.c', 'openssl/providers/implementations/rands/drbg_hash.c', 'openssl/providers/implementations/rands/drbg_hmac.c', + 'openssl/providers/implementations/rands/fips_crng_test.c', 'openssl/providers/implementations/rands/test_rng.c', 'openssl/providers/implementations/signature/dsa_sig.c', 'openssl/providers/implementations/signature/ecdsa_sig.c', 'openssl/providers/implementations/signature/eddsa_sig.c', 'openssl/providers/implementations/signature/mac_legacy_sig.c', + 'openssl/providers/implementations/signature/ml_dsa_sig.c', 'openssl/providers/implementations/signature/rsa_sig.c', - 'openssl/ssl/s3_cbc.c', + 'openssl/providers/implementations/signature/slh_dsa_sig.c', + 'openssl/providers/implementations/skeymgmt/aes_skmgmt.c', + 'openssl/providers/implementations/skeymgmt/generic.c', + 'openssl/ssl/record/methods/ssl3_cbc.c', 'openssl/providers/common/der/der_dsa_key.c', 'openssl/providers/common/der/der_dsa_sig.c', 'openssl/providers/common/der/der_ec_key.c', 'openssl/providers/common/der/der_ec_sig.c', 'openssl/providers/common/der/der_ecx_key.c', + 'openssl/providers/common/der/der_ml_dsa_key.c', 'openssl/providers/common/der/der_rsa_key.c', + 'openssl/providers/common/der/der_slh_dsa_key.c', 'openssl/providers/common/provider_ctx.c', 'openssl/providers/common/provider_err.c', 'openssl/providers/implementations/ciphers/ciphercommon.c', @@ -267,17 +312,23 @@ 'openssl/providers/implementations/ciphers/ciphercommon_gcm_hw.c', 'openssl/providers/implementations/ciphers/ciphercommon_hw.c', 'openssl/providers/implementations/digests/digestcommon.c', - 'openssl/ssl/record/tls_pad.c', + 'openssl/ssl/record/methods/tls_pad.c', 'openssl/providers/fips/fips_entry.c', ], 'openssl_sources_linux-aarch64': [ './config/archs/linux-aarch64/asm/crypto/aes/aesv8-armx.S', + './config/archs/linux-aarch64/asm/crypto/aes/bsaes-armv8.S', './config/archs/linux-aarch64/asm/crypto/aes/vpaes-armv8.S', './config/archs/linux-aarch64/asm/crypto/bn/armv8-mont.S', + './config/archs/linux-aarch64/asm/crypto/chacha/chacha-armv8-sve.S', './config/archs/linux-aarch64/asm/crypto/chacha/chacha-armv8.S', './config/archs/linux-aarch64/asm/crypto/ec/ecp_nistz256-armv8.S', + './config/archs/linux-aarch64/asm/crypto/ec/ecp_sm2p256-armv8.S', './config/archs/linux-aarch64/asm/crypto/arm64cpuid.S', + './config/archs/linux-aarch64/asm/crypto/params_idx.c', + './config/archs/linux-aarch64/asm/crypto/md5/md5-aarch64.S', + './config/archs/linux-aarch64/asm/crypto/modes/aes-gcm-armv8-unroll8_64.S', './config/archs/linux-aarch64/asm/crypto/modes/aes-gcm-armv8_64.S', './config/archs/linux-aarch64/asm/crypto/modes/ghashv8-armx.S', './config/archs/linux-aarch64/asm/crypto/poly1305/poly1305-armv8.S', @@ -285,12 +336,18 @@ './config/archs/linux-aarch64/asm/crypto/sha/sha1-armv8.S', './config/archs/linux-aarch64/asm/crypto/sha/sha256-armv8.S', './config/archs/linux-aarch64/asm/crypto/sha/sha512-armv8.S', + './config/archs/linux-aarch64/asm/crypto/sm3/sm3-armv8.S', + './config/archs/linux-aarch64/asm/crypto/sm4/sm4-armv8.S', + './config/archs/linux-aarch64/asm/crypto/sm4/vpsm4-armv8.S', + './config/archs/linux-aarch64/asm/crypto/sm4/vpsm4_ex-armv8.S', './config/archs/linux-aarch64/asm/providers/common/der/der_sm2_gen.c', './config/archs/linux-aarch64/asm/providers/common/der/der_digests_gen.c', './config/archs/linux-aarch64/asm/providers/common/der/der_dsa_gen.c', './config/archs/linux-aarch64/asm/providers/common/der/der_ec_gen.c', './config/archs/linux-aarch64/asm/providers/common/der/der_ecx_gen.c', + './config/archs/linux-aarch64/asm/providers/common/der/der_ml_dsa_gen.c', './config/archs/linux-aarch64/asm/providers/common/der/der_rsa_gen.c', + './config/archs/linux-aarch64/asm/providers/common/der/der_slh_dsa_gen.c', './config/archs/linux-aarch64/asm/providers/common/der/der_wrap_gen.c', './config/archs/linux-aarch64/asm/providers/legacy.ld', './config/archs/linux-aarch64/asm/providers/fips.ld', @@ -300,7 +357,9 @@ 'NDEBUG', 'OPENSSL_USE_NODELETE', 'OPENSSL_BUILDING_OPENSSL', + 'BSAES_ASM', 'ECP_NISTZ256_ASM', + 'ECP_SM2P256_ASM', 'FIPS_MODULE', 'KECCAK1600_ASM', 'OPENSSL_BN_ASM_MONT', @@ -308,7 +367,9 @@ 'SHA1_ASM', 'SHA256_ASM', 'SHA512_ASM', + 'SM4_ASM', 'VPAES_ASM', + 'VPSM4_ASM', 'FIPS_MODULE', ], 'openssl_cflags_linux-aarch64': [ diff --git a/deps/openssl/config/archs/linux-aarch64/asm/openssl.gypi b/deps/openssl/config/archs/linux-aarch64/asm/openssl.gypi index 4e0923be89cafb..7813ecbf86fd50 100644 --- a/deps/openssl/config/archs/linux-aarch64/asm/openssl.gypi +++ b/deps/openssl/config/archs/linux-aarch64/asm/openssl.gypi @@ -7,14 +7,15 @@ 'openssl/ssl/d1_srtp.c', 'openssl/ssl/methods.c', 'openssl/ssl/pqueue.c', + 'openssl/ssl/priority_queue.c', 'openssl/ssl/s3_enc.c', 'openssl/ssl/s3_lib.c', 'openssl/ssl/s3_msg.c', 'openssl/ssl/ssl_asn1.c', 'openssl/ssl/ssl_cert.c', + 'openssl/ssl/ssl_cert_comp.c', 'openssl/ssl/ssl_ciph.c', 'openssl/ssl/ssl_conf.c', - 'openssl/ssl/ssl_err.c', 'openssl/ssl/ssl_err_legacy.c', 'openssl/ssl/ssl_init.c', 'openssl/ssl/ssl_lib.c', @@ -31,12 +32,60 @@ 'openssl/ssl/tls13_enc.c', 'openssl/ssl/tls_depr.c', 'openssl/ssl/tls_srp.c', - 'openssl/ssl/record/dtls1_bitmap.c', + 'openssl/ssl/quic/cc_newreno.c', + 'openssl/ssl/quic/json_enc.c', + 'openssl/ssl/quic/qlog.c', + 'openssl/ssl/quic/qlog_event_helpers.c', + 'openssl/ssl/quic/quic_ackm.c', + 'openssl/ssl/quic/quic_cfq.c', + 'openssl/ssl/quic/quic_channel.c', + 'openssl/ssl/quic/quic_demux.c', + 'openssl/ssl/quic/quic_engine.c', + 'openssl/ssl/quic/quic_fc.c', + 'openssl/ssl/quic/quic_fifd.c', + 'openssl/ssl/quic/quic_impl.c', + 'openssl/ssl/quic/quic_lcidm.c', + 'openssl/ssl/quic/quic_method.c', + 'openssl/ssl/quic/quic_obj.c', + 'openssl/ssl/quic/quic_port.c', + 'openssl/ssl/quic/quic_rcidm.c', + 'openssl/ssl/quic/quic_reactor.c', + 'openssl/ssl/quic/quic_reactor_wait_ctx.c', + 'openssl/ssl/quic/quic_record_rx.c', + 'openssl/ssl/quic/quic_record_shared.c', + 'openssl/ssl/quic/quic_record_tx.c', + 'openssl/ssl/quic/quic_record_util.c', + 'openssl/ssl/quic/quic_rstream.c', + 'openssl/ssl/quic/quic_rx_depack.c', + 'openssl/ssl/quic/quic_sf_list.c', + 'openssl/ssl/quic/quic_srt_gen.c', + 'openssl/ssl/quic/quic_srtm.c', + 'openssl/ssl/quic/quic_sstream.c', + 'openssl/ssl/quic/quic_statm.c', + 'openssl/ssl/quic/quic_stream_map.c', + 'openssl/ssl/quic/quic_thread_assist.c', + 'openssl/ssl/quic/quic_tls.c', + 'openssl/ssl/quic/quic_tls_api.c', + 'openssl/ssl/quic/quic_trace.c', + 'openssl/ssl/quic/quic_tserver.c', + 'openssl/ssl/quic/quic_txp.c', + 'openssl/ssl/quic/quic_txpim.c', + 'openssl/ssl/quic/quic_types.c', + 'openssl/ssl/quic/quic_wire.c', + 'openssl/ssl/quic/quic_wire_pkt.c', + 'openssl/ssl/quic/uint_set.c', 'openssl/ssl/record/rec_layer_d1.c', 'openssl/ssl/record/rec_layer_s3.c', - 'openssl/ssl/record/ssl3_buffer.c', - 'openssl/ssl/record/ssl3_record.c', - 'openssl/ssl/record/ssl3_record_tls13.c', + 'openssl/ssl/record/methods/dtls_meth.c', + 'openssl/ssl/record/methods/ssl3_meth.c', + 'openssl/ssl/record/methods/tls13_meth.c', + 'openssl/ssl/record/methods/tls1_meth.c', + 'openssl/ssl/record/methods/tls_common.c', + 'openssl/ssl/record/methods/tls_multib.c', + 'openssl/ssl/record/methods/tlsany_meth.c', + 'openssl/ssl/rio/poll_builder.c', + 'openssl/ssl/rio/poll_immediate.c', + 'openssl/ssl/rio/rio_notifier.c', 'openssl/ssl/statem/extensions.c', 'openssl/ssl/statem/extensions_clnt.c', 'openssl/ssl/statem/extensions_cust.c', @@ -150,6 +199,7 @@ 'openssl/crypto/bio/bss_conn.c', 'openssl/crypto/bio/bss_core.c', 'openssl/crypto/bio/bss_dgram.c', + 'openssl/crypto/bio/bss_dgram_pair.c', 'openssl/crypto/bio/bss_fd.c', 'openssl/crypto/bio/bss_file.c', 'openssl/crypto/bio/bss_log.c', @@ -209,6 +259,7 @@ 'openssl/crypto/cmp/cmp_client.c', 'openssl/crypto/cmp/cmp_ctx.c', 'openssl/crypto/cmp/cmp_err.c', + 'openssl/crypto/cmp/cmp_genm.c', 'openssl/crypto/cmp/cmp_hdr.c', 'openssl/crypto/cmp/cmp_http.c', 'openssl/crypto/cmp/cmp_msg.c', @@ -347,6 +398,8 @@ 'openssl/crypto/ec/ecp_nist.c', 'openssl/crypto/ec/ecp_nistz256.c', 'openssl/crypto/ec/ecp_oct.c', + 'openssl/crypto/ec/ecp_sm2p256.c', + 'openssl/crypto/ec/ecp_sm2p256_table.c', 'openssl/crypto/ec/ecp_smpl.c', 'openssl/crypto/ec/ecx_backend.c', 'openssl/crypto/ec/ecx_key.c', @@ -385,7 +438,9 @@ 'openssl/crypto/err/err_all.c', 'openssl/crypto/err/err_all_legacy.c', 'openssl/crypto/err/err_blocks.c', + 'openssl/crypto/err/err_mark.c', 'openssl/crypto/err/err_prn.c', + 'openssl/crypto/err/err_save.c', 'openssl/crypto/ess/ess_asn1.c', 'openssl/crypto/ess/ess_err.c', 'openssl/crypto/ess/ess_lib.c', @@ -468,7 +523,9 @@ 'openssl/crypto/evp/pmeth_check.c', 'openssl/crypto/evp/pmeth_gn.c', 'openssl/crypto/evp/pmeth_lib.c', + 'openssl/crypto/evp/s_lib.c', 'openssl/crypto/evp/signature.c', + 'openssl/crypto/evp/skeymgmt_meth.c', 'openssl/crypto/ffc/ffc_backend.c', 'openssl/crypto/ffc/ffc_dh.c', 'openssl/crypto/ffc/ffc_key_generate.c', @@ -476,7 +533,11 @@ 'openssl/crypto/ffc/ffc_params.c', 'openssl/crypto/ffc/ffc_params_generate.c', 'openssl/crypto/ffc/ffc_params_validate.c', + 'openssl/crypto/hashtable/hashfunc.c', + 'openssl/crypto/hashtable/hashtable.c', 'openssl/crypto/hmac/hmac.c', + 'openssl/crypto/hpke/hpke.c', + 'openssl/crypto/hpke/hpke_util.c', 'openssl/crypto/http/http_client.c', 'openssl/crypto/http/http_err.c', 'openssl/crypto/http/http_lib.c', @@ -491,6 +552,7 @@ 'openssl/crypto/armcap.c', 'openssl/crypto/asn1_dsa.c', 'openssl/crypto/bsearch.c', + 'openssl/crypto/comp_methods.c', 'openssl/crypto/context.c', 'openssl/crypto/core_algorithm.c', 'openssl/crypto/core_fetch.c', @@ -500,10 +562,13 @@ 'openssl/crypto/cryptlib.c', 'openssl/crypto/ctype.c', 'openssl/crypto/cversion.c', + 'openssl/crypto/defaults.c', 'openssl/crypto/der_writer.c', + 'openssl/crypto/deterministic_nonce.c', 'openssl/crypto/ebcdic.c', 'openssl/crypto/ex_data.c', 'openssl/crypto/getenv.c', + 'openssl/crypto/indicator_core.c', 'openssl/crypto/info.c', 'openssl/crypto/init.c', 'openssl/crypto/initthread.c', @@ -527,12 +592,16 @@ 'openssl/crypto/provider_core.c', 'openssl/crypto/provider_predefined.c', 'openssl/crypto/punycode.c', + 'openssl/crypto/quic_vlint.c', 'openssl/crypto/self_test_core.c', + 'openssl/crypto/sleep.c', 'openssl/crypto/sparse_array.c', + 'openssl/crypto/ssl_err.c', 'openssl/crypto/threads_lib.c', 'openssl/crypto/threads_none.c', 'openssl/crypto/threads_pthread.c', 'openssl/crypto/threads_win.c', + 'openssl/crypto/time.c', 'openssl/crypto/trace.c', 'openssl/crypto/uid.c', 'openssl/crypto/md4/md4_dgst.c', @@ -542,6 +611,15 @@ 'openssl/crypto/md5/md5_sha1.c', 'openssl/crypto/mdc2/mdc2_one.c', 'openssl/crypto/mdc2/mdc2dgst.c', + 'openssl/crypto/ml_dsa/ml_dsa_encoders.c', + 'openssl/crypto/ml_dsa/ml_dsa_key.c', + 'openssl/crypto/ml_dsa/ml_dsa_key_compress.c', + 'openssl/crypto/ml_dsa/ml_dsa_matrix.c', + 'openssl/crypto/ml_dsa/ml_dsa_ntt.c', + 'openssl/crypto/ml_dsa/ml_dsa_params.c', + 'openssl/crypto/ml_dsa/ml_dsa_sample.c', + 'openssl/crypto/ml_dsa/ml_dsa_sign.c', + 'openssl/crypto/ml_kem/ml_kem.c', 'openssl/crypto/modes/cbc128.c', 'openssl/crypto/modes/ccm128.c', 'openssl/crypto/modes/cfb128.c', @@ -553,6 +631,7 @@ 'openssl/crypto/modes/siv128.c', 'openssl/crypto/modes/wrap128.c', 'openssl/crypto/modes/xts128.c', + 'openssl/crypto/modes/xts128gb.c', 'openssl/crypto/objects/o_names.c', 'openssl/crypto/objects/obj_dat.c', 'openssl/crypto/objects/obj_err.c', @@ -616,6 +695,7 @@ 'openssl/crypto/rand/rand_lib.c', 'openssl/crypto/rand/rand_meth.c', 'openssl/crypto/rand/rand_pool.c', + 'openssl/crypto/rand/rand_uniform.c', 'openssl/crypto/rand/randfile.c', 'openssl/crypto/rc2/rc2_cbc.c', 'openssl/crypto/rc2/rc2_ecb.c', @@ -663,6 +743,16 @@ 'openssl/crypto/sha/sha3.c', 'openssl/crypto/sha/sha512.c', 'openssl/crypto/siphash/siphash.c', + 'openssl/crypto/slh_dsa/slh_adrs.c', + 'openssl/crypto/slh_dsa/slh_dsa.c', + 'openssl/crypto/slh_dsa/slh_dsa_hash_ctx.c', + 'openssl/crypto/slh_dsa/slh_dsa_key.c', + 'openssl/crypto/slh_dsa/slh_fors.c', + 'openssl/crypto/slh_dsa/slh_hash.c', + 'openssl/crypto/slh_dsa/slh_hypertree.c', + 'openssl/crypto/slh_dsa/slh_params.c', + 'openssl/crypto/slh_dsa/slh_wots.c', + 'openssl/crypto/slh_dsa/slh_xmss.c', 'openssl/crypto/sm2/sm2_crypt.c', 'openssl/crypto/sm2/sm2_err.c', 'openssl/crypto/sm2/sm2_key.c', @@ -680,6 +770,12 @@ 'openssl/crypto/store/store_register.c', 'openssl/crypto/store/store_result.c', 'openssl/crypto/store/store_strings.c', + 'openssl/crypto/thread/arch/thread_none.c', + 'openssl/crypto/thread/arch/thread_posix.c', + 'openssl/crypto/thread/arch/thread_win.c', + 'openssl/crypto/thread/api.c', + 'openssl/crypto/thread/arch.c', + 'openssl/crypto/thread/internal.c', 'openssl/crypto/ts/ts_asn1.c', 'openssl/crypto/ts/ts_conf.c', 'openssl/crypto/ts/ts_err.c', @@ -708,14 +804,22 @@ 'openssl/crypto/x509/pcy_map.c', 'openssl/crypto/x509/pcy_node.c', 'openssl/crypto/x509/pcy_tree.c', + 'openssl/crypto/x509/t_acert.c', 'openssl/crypto/x509/t_crl.c', 'openssl/crypto/x509/t_req.c', 'openssl/crypto/x509/t_x509.c', + 'openssl/crypto/x509/v3_aaa.c', + 'openssl/crypto/x509/v3_ac_tgt.c', 'openssl/crypto/x509/v3_addr.c', 'openssl/crypto/x509/v3_admis.c', 'openssl/crypto/x509/v3_akeya.c', 'openssl/crypto/x509/v3_akid.c', 'openssl/crypto/x509/v3_asid.c', + 'openssl/crypto/x509/v3_attrdesc.c', + 'openssl/crypto/x509/v3_attrmap.c', + 'openssl/crypto/x509/v3_audit_id.c', + 'openssl/crypto/x509/v3_authattid.c', + 'openssl/crypto/x509/v3_battcons.c', 'openssl/crypto/x509/v3_bcons.c', 'openssl/crypto/x509/v3_bitst.c', 'openssl/crypto/x509/v3_conf.c', @@ -724,12 +828,17 @@ 'openssl/crypto/x509/v3_enum.c', 'openssl/crypto/x509/v3_extku.c', 'openssl/crypto/x509/v3_genn.c', + 'openssl/crypto/x509/v3_group_ac.c', 'openssl/crypto/x509/v3_ia5.c', + 'openssl/crypto/x509/v3_ind_iss.c', 'openssl/crypto/x509/v3_info.c', 'openssl/crypto/x509/v3_int.c', + 'openssl/crypto/x509/v3_iobo.c', 'openssl/crypto/x509/v3_ist.c', 'openssl/crypto/x509/v3_lib.c', 'openssl/crypto/x509/v3_ncons.c', + 'openssl/crypto/x509/v3_no_ass.c', + 'openssl/crypto/x509/v3_no_rev_avail.c', 'openssl/crypto/x509/v3_pci.c', 'openssl/crypto/x509/v3_pcia.c', 'openssl/crypto/x509/v3_pcons.c', @@ -737,13 +846,20 @@ 'openssl/crypto/x509/v3_pmaps.c', 'openssl/crypto/x509/v3_prn.c', 'openssl/crypto/x509/v3_purp.c', + 'openssl/crypto/x509/v3_rolespec.c', 'openssl/crypto/x509/v3_san.c', + 'openssl/crypto/x509/v3_sda.c', + 'openssl/crypto/x509/v3_single_use.c', 'openssl/crypto/x509/v3_skid.c', + 'openssl/crypto/x509/v3_soa_id.c', 'openssl/crypto/x509/v3_sxnet.c', + 'openssl/crypto/x509/v3_timespec.c', 'openssl/crypto/x509/v3_tlsf.c', + 'openssl/crypto/x509/v3_usernotice.c', 'openssl/crypto/x509/v3_utf8.c', 'openssl/crypto/x509/v3_utl.c', 'openssl/crypto/x509/v3err.c', + 'openssl/crypto/x509/x509_acert.c', 'openssl/crypto/x509/x509_att.c', 'openssl/crypto/x509/x509_cmp.c', 'openssl/crypto/x509/x509_d2.c', @@ -761,6 +877,7 @@ 'openssl/crypto/x509/x509_v3.c', 'openssl/crypto/x509/x509_vfy.c', 'openssl/crypto/x509/x509_vpm.c', + 'openssl/crypto/x509/x509aset.c', 'openssl/crypto/x509/x509cset.c', 'openssl/crypto/x509/x509name.c', 'openssl/crypto/x509/x509rset.c', @@ -770,6 +887,7 @@ 'openssl/crypto/x509/x_attrib.c', 'openssl/crypto/x509/x_crl.c', 'openssl/crypto/x509/x_exten.c', + 'openssl/crypto/x509/x_ietfatt.c', 'openssl/crypto/x509/x_name.c', 'openssl/crypto/x509/x_pubkey.c', 'openssl/crypto/x509/x_req.c', @@ -801,6 +919,9 @@ 'openssl/providers/implementations/ciphers/cipher_aes_ccm_hw.c', 'openssl/providers/implementations/ciphers/cipher_aes_gcm.c', 'openssl/providers/implementations/ciphers/cipher_aes_gcm_hw.c', + 'openssl/providers/implementations/ciphers/cipher_aes_gcm_siv.c', + 'openssl/providers/implementations/ciphers/cipher_aes_gcm_siv_hw.c', + 'openssl/providers/implementations/ciphers/cipher_aes_gcm_siv_polyval.c', 'openssl/providers/implementations/ciphers/cipher_aes_hw.c', 'openssl/providers/implementations/ciphers/cipher_aes_ocb.c', 'openssl/providers/implementations/ciphers/cipher_aes_ocb_hw.c', @@ -825,7 +946,13 @@ 'openssl/providers/implementations/ciphers/cipher_cts.c', 'openssl/providers/implementations/ciphers/cipher_null.c', 'openssl/providers/implementations/ciphers/cipher_sm4.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_ccm.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_ccm_hw.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_gcm.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_gcm_hw.c', 'openssl/providers/implementations/ciphers/cipher_sm4_hw.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_xts.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_xts_hw.c', 'openssl/providers/implementations/ciphers/cipher_tdes.c', 'openssl/providers/implementations/ciphers/cipher_tdes_common.c', 'openssl/providers/implementations/ciphers/cipher_tdes_default.c', @@ -854,11 +981,16 @@ 'openssl/providers/implementations/encode_decode/encode_key2ms.c', 'openssl/providers/implementations/encode_decode/encode_key2text.c', 'openssl/providers/implementations/encode_decode/endecoder_common.c', + 'openssl/providers/implementations/encode_decode/ml_common_codecs.c', + 'openssl/providers/implementations/encode_decode/ml_dsa_codecs.c', + 'openssl/providers/implementations/encode_decode/ml_kem_codecs.c', 'openssl/providers/implementations/exchange/dh_exch.c', 'openssl/providers/implementations/exchange/ecdh_exch.c', 'openssl/providers/implementations/exchange/ecx_exch.c', 'openssl/providers/implementations/exchange/kdf_exch.c', + 'openssl/providers/implementations/kdfs/argon2.c', 'openssl/providers/implementations/kdfs/hkdf.c', + 'openssl/providers/implementations/kdfs/hmacdrbg_kdf.c', 'openssl/providers/implementations/kdfs/kbkdf.c', 'openssl/providers/implementations/kdfs/krb5kdf.c', 'openssl/providers/implementations/kdfs/pbkdf2.c', @@ -869,6 +1001,11 @@ 'openssl/providers/implementations/kdfs/sskdf.c', 'openssl/providers/implementations/kdfs/tls1_prf.c', 'openssl/providers/implementations/kdfs/x942kdf.c', + 'openssl/providers/implementations/kem/ec_kem.c', + 'openssl/providers/implementations/kem/ecx_kem.c', + 'openssl/providers/implementations/kem/kem_util.c', + 'openssl/providers/implementations/kem/ml_kem_kem.c', + 'openssl/providers/implementations/kem/mlx_kem.c', 'openssl/providers/implementations/kem/rsa_kem.c', 'openssl/providers/implementations/keymgmt/dh_kmgmt.c', 'openssl/providers/implementations/keymgmt/dsa_kmgmt.c', @@ -876,7 +1013,11 @@ 'openssl/providers/implementations/keymgmt/ecx_kmgmt.c', 'openssl/providers/implementations/keymgmt/kdf_legacy_kmgmt.c', 'openssl/providers/implementations/keymgmt/mac_legacy_kmgmt.c', + 'openssl/providers/implementations/keymgmt/ml_dsa_kmgmt.c', + 'openssl/providers/implementations/keymgmt/ml_kem_kmgmt.c', + 'openssl/providers/implementations/keymgmt/mlx_kmgmt.c', 'openssl/providers/implementations/keymgmt/rsa_kmgmt.c', + 'openssl/providers/implementations/keymgmt/slh_dsa_kmgmt.c', 'openssl/providers/implementations/macs/blake2b_mac.c', 'openssl/providers/implementations/macs/blake2s_mac.c', 'openssl/providers/implementations/macs/cmac_prov.c', @@ -885,14 +1026,14 @@ 'openssl/providers/implementations/macs/kmac_prov.c', 'openssl/providers/implementations/macs/poly1305_prov.c', 'openssl/providers/implementations/macs/siphash_prov.c', - 'openssl/providers/implementations/rands/crngt.c', 'openssl/providers/implementations/rands/drbg.c', 'openssl/providers/implementations/rands/drbg_ctr.c', 'openssl/providers/implementations/rands/drbg_hash.c', 'openssl/providers/implementations/rands/drbg_hmac.c', 'openssl/providers/implementations/rands/seed_src.c', + 'openssl/providers/implementations/rands/seed_src_jitter.c', 'openssl/providers/implementations/rands/test_rng.c', - 'openssl/providers/implementations/rands/seeding/rand_cpu_x86.c', + 'openssl/providers/implementations/rands/seeding/rand_cpu_arm64.c', 'openssl/providers/implementations/rands/seeding/rand_tsc.c', 'openssl/providers/implementations/rands/seeding/rand_unix.c', 'openssl/providers/implementations/rands/seeding/rand_win.c', @@ -900,17 +1041,23 @@ 'openssl/providers/implementations/signature/ecdsa_sig.c', 'openssl/providers/implementations/signature/eddsa_sig.c', 'openssl/providers/implementations/signature/mac_legacy_sig.c', + 'openssl/providers/implementations/signature/ml_dsa_sig.c', 'openssl/providers/implementations/signature/rsa_sig.c', + 'openssl/providers/implementations/signature/slh_dsa_sig.c', 'openssl/providers/implementations/signature/sm2_sig.c', + 'openssl/providers/implementations/skeymgmt/aes_skmgmt.c', + 'openssl/providers/implementations/skeymgmt/generic.c', 'openssl/providers/implementations/storemgmt/file_store.c', 'openssl/providers/implementations/storemgmt/file_store_any2obj.c', - 'openssl/ssl/s3_cbc.c', + 'openssl/ssl/record/methods/ssl3_cbc.c', 'openssl/providers/common/der/der_dsa_key.c', 'openssl/providers/common/der/der_dsa_sig.c', 'openssl/providers/common/der/der_ec_key.c', 'openssl/providers/common/der/der_ec_sig.c', 'openssl/providers/common/der/der_ecx_key.c', + 'openssl/providers/common/der/der_ml_dsa_key.c', 'openssl/providers/common/der/der_rsa_key.c', + 'openssl/providers/common/der/der_slh_dsa_key.c', 'openssl/providers/common/provider_ctx.c', 'openssl/providers/common/provider_err.c', 'openssl/providers/implementations/ciphers/ciphercommon.c', @@ -921,7 +1068,7 @@ 'openssl/providers/implementations/ciphers/ciphercommon_gcm_hw.c', 'openssl/providers/implementations/ciphers/ciphercommon_hw.c', 'openssl/providers/implementations/digests/digestcommon.c', - 'openssl/ssl/record/tls_pad.c', + 'openssl/ssl/record/methods/tls_pad.c', 'openssl/providers/implementations/ciphers/cipher_blowfish.c', 'openssl/providers/implementations/ciphers/cipher_blowfish_hw.c', 'openssl/providers/implementations/ciphers/cipher_cast5.c', @@ -946,16 +1093,23 @@ 'openssl/providers/implementations/digests/ripemd_prov.c', 'openssl/providers/implementations/digests/wp_prov.c', 'openssl/providers/implementations/kdfs/pbkdf1.c', + 'openssl/providers/implementations/kdfs/pvkkdf.c', 'openssl/providers/prov_running.c', 'openssl/providers/legacyprov.c', ], 'openssl_sources_linux-aarch64': [ './config/archs/linux-aarch64/asm/crypto/aes/aesv8-armx.S', + './config/archs/linux-aarch64/asm/crypto/aes/bsaes-armv8.S', './config/archs/linux-aarch64/asm/crypto/aes/vpaes-armv8.S', './config/archs/linux-aarch64/asm/crypto/bn/armv8-mont.S', + './config/archs/linux-aarch64/asm/crypto/chacha/chacha-armv8-sve.S', './config/archs/linux-aarch64/asm/crypto/chacha/chacha-armv8.S', './config/archs/linux-aarch64/asm/crypto/ec/ecp_nistz256-armv8.S', + './config/archs/linux-aarch64/asm/crypto/ec/ecp_sm2p256-armv8.S', './config/archs/linux-aarch64/asm/crypto/arm64cpuid.S', + './config/archs/linux-aarch64/asm/crypto/params_idx.c', + './config/archs/linux-aarch64/asm/crypto/md5/md5-aarch64.S', + './config/archs/linux-aarch64/asm/crypto/modes/aes-gcm-armv8-unroll8_64.S', './config/archs/linux-aarch64/asm/crypto/modes/aes-gcm-armv8_64.S', './config/archs/linux-aarch64/asm/crypto/modes/ghashv8-armx.S', './config/archs/linux-aarch64/asm/crypto/poly1305/poly1305-armv8.S', @@ -963,12 +1117,18 @@ './config/archs/linux-aarch64/asm/crypto/sha/sha1-armv8.S', './config/archs/linux-aarch64/asm/crypto/sha/sha256-armv8.S', './config/archs/linux-aarch64/asm/crypto/sha/sha512-armv8.S', + './config/archs/linux-aarch64/asm/crypto/sm3/sm3-armv8.S', + './config/archs/linux-aarch64/asm/crypto/sm4/sm4-armv8.S', + './config/archs/linux-aarch64/asm/crypto/sm4/vpsm4-armv8.S', + './config/archs/linux-aarch64/asm/crypto/sm4/vpsm4_ex-armv8.S', './config/archs/linux-aarch64/asm/providers/common/der/der_sm2_gen.c', './config/archs/linux-aarch64/asm/providers/common/der/der_digests_gen.c', './config/archs/linux-aarch64/asm/providers/common/der/der_dsa_gen.c', './config/archs/linux-aarch64/asm/providers/common/der/der_ec_gen.c', './config/archs/linux-aarch64/asm/providers/common/der/der_ecx_gen.c', + './config/archs/linux-aarch64/asm/providers/common/der/der_ml_dsa_gen.c', './config/archs/linux-aarch64/asm/providers/common/der/der_rsa_gen.c', + './config/archs/linux-aarch64/asm/providers/common/der/der_slh_dsa_gen.c', './config/archs/linux-aarch64/asm/providers/common/der/der_wrap_gen.c', './config/archs/linux-aarch64/asm/providers/legacy.ld', './config/archs/linux-aarch64/asm/providers/fips.ld', @@ -977,15 +1137,21 @@ 'NDEBUG', 'OPENSSL_USE_NODELETE', 'OPENSSL_BUILDING_OPENSSL', + 'BSAES_ASM', 'ECP_NISTZ256_ASM', + 'ECP_SM2P256_ASM', 'KECCAK1600_ASM', + 'MD5_ASM', 'OPENSSL_BN_ASM_MONT', 'OPENSSL_CPUID_OBJ', + 'OPENSSL_SM3_ASM', 'POLY1305_ASM', 'SHA1_ASM', 'SHA256_ASM', 'SHA512_ASM', + 'SM4_ASM', 'VPAES_ASM', + 'VPSM4_ASM', 'OPENSSL_PIC', ], 'openssl_cflags_linux-aarch64': [ diff --git a/deps/openssl/config/archs/linux-aarch64/asm/providers/common/der/der_ml_dsa_gen.c b/deps/openssl/config/archs/linux-aarch64/asm/providers/common/der/der_ml_dsa_gen.c new file mode 100644 index 00000000000000..4a8a113a268578 --- /dev/null +++ b/deps/openssl/config/archs/linux-aarch64/asm/providers/common/der/der_ml_dsa_gen.c @@ -0,0 +1,37 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from providers/common/der/der_ml_dsa_gen.c.in + * + * Copyright 2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include "prov/der_ml_dsa.h" + +/* Well known OIDs precompiled */ + +/* + * id-ml-dsa-44 OBJECT IDENTIFIER ::= { sigAlgs 17 } + */ +const unsigned char ossl_der_oid_id_ml_dsa_44[DER_OID_SZ_id_ml_dsa_44] = { + DER_OID_V_id_ml_dsa_44 +}; + +/* + * id-ml-dsa-65 OBJECT IDENTIFIER ::= { sigAlgs 18 } + */ +const unsigned char ossl_der_oid_id_ml_dsa_65[DER_OID_SZ_id_ml_dsa_65] = { + DER_OID_V_id_ml_dsa_65 +}; + +/* + * id-ml-dsa-87 OBJECT IDENTIFIER ::= { sigAlgs 19 } + */ +const unsigned char ossl_der_oid_id_ml_dsa_87[DER_OID_SZ_id_ml_dsa_87] = { + DER_OID_V_id_ml_dsa_87 +}; + diff --git a/deps/openssl/config/archs/linux-aarch64/asm/providers/common/der/der_slh_dsa_gen.c b/deps/openssl/config/archs/linux-aarch64/asm/providers/common/der/der_slh_dsa_gen.c new file mode 100644 index 00000000000000..1419a9515097dd --- /dev/null +++ b/deps/openssl/config/archs/linux-aarch64/asm/providers/common/der/der_slh_dsa_gen.c @@ -0,0 +1,100 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from providers/common/der/der_slh_dsa_gen.c.in + * + * Copyright 2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include "prov/der_slh_dsa.h" + +/* Well known OIDs precompiled */ + +/* + * id-slh-dsa-sha2-128s OBJECT IDENTIFIER ::= { sigAlgs 20 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_128s[DER_OID_SZ_id_slh_dsa_sha2_128s] = { + DER_OID_V_id_slh_dsa_sha2_128s +}; + +/* + * id-slh-dsa-sha2-128f OBJECT IDENTIFIER ::= { sigAlgs 21 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_128f[DER_OID_SZ_id_slh_dsa_sha2_128f] = { + DER_OID_V_id_slh_dsa_sha2_128f +}; + +/* + * id-slh-dsa-sha2-192s OBJECT IDENTIFIER ::= { sigAlgs 22 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_192s[DER_OID_SZ_id_slh_dsa_sha2_192s] = { + DER_OID_V_id_slh_dsa_sha2_192s +}; + +/* + * id-slh-dsa-sha2-192f OBJECT IDENTIFIER ::= { sigAlgs 23 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_192f[DER_OID_SZ_id_slh_dsa_sha2_192f] = { + DER_OID_V_id_slh_dsa_sha2_192f +}; + +/* + * id-slh-dsa-sha2-256s OBJECT IDENTIFIER ::= { sigAlgs 24 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_256s[DER_OID_SZ_id_slh_dsa_sha2_256s] = { + DER_OID_V_id_slh_dsa_sha2_256s +}; + +/* + * id-slh-dsa-sha2-256f OBJECT IDENTIFIER ::= { sigAlgs 25 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_256f[DER_OID_SZ_id_slh_dsa_sha2_256f] = { + DER_OID_V_id_slh_dsa_sha2_256f +}; + +/* + * id-slh-dsa-shake-128s OBJECT IDENTIFIER ::= { sigAlgs 26 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_128s[DER_OID_SZ_id_slh_dsa_shake_128s] = { + DER_OID_V_id_slh_dsa_shake_128s +}; + +/* + * id-slh-dsa-shake-128f OBJECT IDENTIFIER ::= { sigAlgs 27 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_128f[DER_OID_SZ_id_slh_dsa_shake_128f] = { + DER_OID_V_id_slh_dsa_shake_128f +}; + +/* + * id-slh-dsa-shake-192s OBJECT IDENTIFIER ::= { sigAlgs 28 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_192s[DER_OID_SZ_id_slh_dsa_shake_192s] = { + DER_OID_V_id_slh_dsa_shake_192s +}; + +/* + * id-slh-dsa-shake-192f OBJECT IDENTIFIER ::= { sigAlgs 29 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_192f[DER_OID_SZ_id_slh_dsa_shake_192f] = { + DER_OID_V_id_slh_dsa_shake_192f +}; + +/* + * id-slh-dsa-shake-256s OBJECT IDENTIFIER ::= { sigAlgs 30 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_256s[DER_OID_SZ_id_slh_dsa_shake_256s] = { + DER_OID_V_id_slh_dsa_shake_256s +}; + +/* + * id-slh-dsa-shake-256f OBJECT IDENTIFIER ::= { sigAlgs 31 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_256f[DER_OID_SZ_id_slh_dsa_shake_256f] = { + DER_OID_V_id_slh_dsa_shake_256f +}; + diff --git a/deps/openssl/config/archs/linux-aarch64/asm/providers/common/include/prov/der_ml_dsa.h b/deps/openssl/config/archs/linux-aarch64/asm/providers/common/include/prov/der_ml_dsa.h new file mode 100644 index 00000000000000..c55f780ab4527c --- /dev/null +++ b/deps/openssl/config/archs/linux-aarch64/asm/providers/common/include/prov/der_ml_dsa.h @@ -0,0 +1,40 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from providers/common/include/prov/der_ml_dsa.h.in + * + * Copyright 2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include "internal/der.h" +#include "crypto/ml_dsa.h" + +/* Well known OIDs precompiled */ + +/* + * id-ml-dsa-44 OBJECT IDENTIFIER ::= { sigAlgs 17 } + */ +#define DER_OID_V_id_ml_dsa_44 DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x11 +#define DER_OID_SZ_id_ml_dsa_44 11 +extern const unsigned char ossl_der_oid_id_ml_dsa_44[DER_OID_SZ_id_ml_dsa_44]; + +/* + * id-ml-dsa-65 OBJECT IDENTIFIER ::= { sigAlgs 18 } + */ +#define DER_OID_V_id_ml_dsa_65 DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x12 +#define DER_OID_SZ_id_ml_dsa_65 11 +extern const unsigned char ossl_der_oid_id_ml_dsa_65[DER_OID_SZ_id_ml_dsa_65]; + +/* + * id-ml-dsa-87 OBJECT IDENTIFIER ::= { sigAlgs 19 } + */ +#define DER_OID_V_id_ml_dsa_87 DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x13 +#define DER_OID_SZ_id_ml_dsa_87 11 +extern const unsigned char ossl_der_oid_id_ml_dsa_87[DER_OID_SZ_id_ml_dsa_87]; + + +int ossl_DER_w_algorithmIdentifier_ML_DSA(WPACKET *pkt, int tag, ML_DSA_KEY *key); diff --git a/deps/openssl/config/archs/linux-aarch64/asm/providers/common/include/prov/der_slh_dsa.h b/deps/openssl/config/archs/linux-aarch64/asm/providers/common/include/prov/der_slh_dsa.h new file mode 100644 index 00000000000000..760f8e7699be72 --- /dev/null +++ b/deps/openssl/config/archs/linux-aarch64/asm/providers/common/include/prov/der_slh_dsa.h @@ -0,0 +1,103 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from providers/common/include/prov/der_slh_dsa.h.in + * + * Copyright 2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include "internal/der.h" +#include "crypto/slh_dsa.h" + +/* Well known OIDs precompiled */ + +/* + * id-slh-dsa-sha2-128s OBJECT IDENTIFIER ::= { sigAlgs 20 } + */ +#define DER_OID_V_id_slh_dsa_sha2_128s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x14 +#define DER_OID_SZ_id_slh_dsa_sha2_128s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_128s[DER_OID_SZ_id_slh_dsa_sha2_128s]; + +/* + * id-slh-dsa-sha2-128f OBJECT IDENTIFIER ::= { sigAlgs 21 } + */ +#define DER_OID_V_id_slh_dsa_sha2_128f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x15 +#define DER_OID_SZ_id_slh_dsa_sha2_128f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_128f[DER_OID_SZ_id_slh_dsa_sha2_128f]; + +/* + * id-slh-dsa-sha2-192s OBJECT IDENTIFIER ::= { sigAlgs 22 } + */ +#define DER_OID_V_id_slh_dsa_sha2_192s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x16 +#define DER_OID_SZ_id_slh_dsa_sha2_192s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_192s[DER_OID_SZ_id_slh_dsa_sha2_192s]; + +/* + * id-slh-dsa-sha2-192f OBJECT IDENTIFIER ::= { sigAlgs 23 } + */ +#define DER_OID_V_id_slh_dsa_sha2_192f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x17 +#define DER_OID_SZ_id_slh_dsa_sha2_192f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_192f[DER_OID_SZ_id_slh_dsa_sha2_192f]; + +/* + * id-slh-dsa-sha2-256s OBJECT IDENTIFIER ::= { sigAlgs 24 } + */ +#define DER_OID_V_id_slh_dsa_sha2_256s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x18 +#define DER_OID_SZ_id_slh_dsa_sha2_256s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_256s[DER_OID_SZ_id_slh_dsa_sha2_256s]; + +/* + * id-slh-dsa-sha2-256f OBJECT IDENTIFIER ::= { sigAlgs 25 } + */ +#define DER_OID_V_id_slh_dsa_sha2_256f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x19 +#define DER_OID_SZ_id_slh_dsa_sha2_256f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_256f[DER_OID_SZ_id_slh_dsa_sha2_256f]; + +/* + * id-slh-dsa-shake-128s OBJECT IDENTIFIER ::= { sigAlgs 26 } + */ +#define DER_OID_V_id_slh_dsa_shake_128s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1A +#define DER_OID_SZ_id_slh_dsa_shake_128s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_128s[DER_OID_SZ_id_slh_dsa_shake_128s]; + +/* + * id-slh-dsa-shake-128f OBJECT IDENTIFIER ::= { sigAlgs 27 } + */ +#define DER_OID_V_id_slh_dsa_shake_128f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1B +#define DER_OID_SZ_id_slh_dsa_shake_128f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_128f[DER_OID_SZ_id_slh_dsa_shake_128f]; + +/* + * id-slh-dsa-shake-192s OBJECT IDENTIFIER ::= { sigAlgs 28 } + */ +#define DER_OID_V_id_slh_dsa_shake_192s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1C +#define DER_OID_SZ_id_slh_dsa_shake_192s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_192s[DER_OID_SZ_id_slh_dsa_shake_192s]; + +/* + * id-slh-dsa-shake-192f OBJECT IDENTIFIER ::= { sigAlgs 29 } + */ +#define DER_OID_V_id_slh_dsa_shake_192f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1D +#define DER_OID_SZ_id_slh_dsa_shake_192f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_192f[DER_OID_SZ_id_slh_dsa_shake_192f]; + +/* + * id-slh-dsa-shake-256s OBJECT IDENTIFIER ::= { sigAlgs 30 } + */ +#define DER_OID_V_id_slh_dsa_shake_256s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1E +#define DER_OID_SZ_id_slh_dsa_shake_256s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_256s[DER_OID_SZ_id_slh_dsa_shake_256s]; + +/* + * id-slh-dsa-shake-256f OBJECT IDENTIFIER ::= { sigAlgs 31 } + */ +#define DER_OID_V_id_slh_dsa_shake_256f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1F +#define DER_OID_SZ_id_slh_dsa_shake_256f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_256f[DER_OID_SZ_id_slh_dsa_shake_256f]; + + +int ossl_DER_w_algorithmIdentifier_SLH_DSA(WPACKET *pkt, int tag, SLH_DSA_KEY *key); diff --git a/deps/openssl/config/archs/linux-aarch64/asm_avx2/apps/progs.c b/deps/openssl/config/archs/linux-aarch64/asm_avx2/apps/progs.c index 43cef00799b86e..acc204a3e6e781 100644 --- a/deps/openssl/config/archs/linux-aarch64/asm_avx2/apps/progs.c +++ b/deps/openssl/config/archs/linux-aarch64/asm_avx2/apps/progs.c @@ -89,6 +89,7 @@ FUNCTION functions[] = { {FT_general, "s_time", s_time_main, s_time_options, NULL, NULL}, #endif {FT_general, "sess_id", sess_id_main, sess_id_options, NULL, NULL}, + {FT_general, "skeyutl", skeyutl_main, skeyutl_options, NULL, NULL}, {FT_general, "smime", smime_main, smime_options, NULL, NULL}, {FT_general, "speed", speed_main, speed_options, NULL, NULL}, {FT_general, "spkac", spkac_main, spkac_options, NULL, NULL}, @@ -225,9 +226,15 @@ FUNCTION functions[] = { {FT_cipher, "camellia-256-ecb", enc_main, enc_options, NULL}, #endif {FT_cipher, "base64", enc_main, enc_options, NULL}, -#ifdef ZLIB +#ifndef OPENSSL_NO_ZLIB {FT_cipher, "zlib", enc_main, enc_options, NULL}, #endif +#ifndef OPENSSL_NO_BROTLI + {FT_cipher, "brotli", enc_main, enc_options, NULL}, +#endif +#ifndef OPENSSL_NO_ZSTD + {FT_cipher, "zstd", enc_main, enc_options, NULL}, +#endif #ifndef OPENSSL_NO_DES {FT_cipher, "des", enc_main, enc_options, NULL}, #endif diff --git a/deps/openssl/config/archs/linux-aarch64/asm_avx2/configdata.pm b/deps/openssl/config/archs/linux-aarch64/asm_avx2/configdata.pm index a99cabfb9e138e..3da90c177bc7e3 100644 --- a/deps/openssl/config/archs/linux-aarch64/asm_avx2/configdata.pm +++ b/deps/openssl/config/archs/linux-aarch64/asm_avx2/configdata.pm @@ -18,6 +18,7 @@ our %config = ( "ARFLAGS" => [ "qc" ], + "ASFLAGS" => [], "CC" => "../config/fake_gcc.pl", "CFLAGS" => [ "-Wall -O3" @@ -30,14 +31,16 @@ our %config = ( "-Wall -O3" ], "FIPSKEY" => "f4556650ac31d35461610bac4ed81b1a181b2d8a43ea2854cbae22ca74560813", + "FIPS_VENDOR" => "OpenSSL FIPS Provider", "HASHBANGPERL" => "/usr/bin/env perl", "LDFLAGS" => [], "LDLIBS" => [], + "OBJCOPY" => "objcopy", "PERL" => "/usr/bin/perl", "RANLIB" => "ranlib", "RC" => "windres", "RCFLAGS" => [], - "api" => "30000", + "api" => "30500", "b32" => "0", "b64" => "0", "b64l" => "1", @@ -59,11 +62,13 @@ our %config = ( "doc/build.info", "test/build.info", "engines/build.info", + "exporters/build.info", "crypto/objects/build.info", "crypto/buffer/build.info", "crypto/bio/build.info", "crypto/stack/build.info", "crypto/lhash/build.info", + "crypto/hashtable/build.info", "crypto/rand/build.info", "crypto/evp/build.info", "crypto/asn1/build.info", @@ -81,6 +86,7 @@ our %config = ( "crypto/md5/build.info", "crypto/sha/build.info", "crypto/mdc2/build.info", + "crypto/ml_kem/build.info", "crypto/hmac/build.info", "crypto/ripemd/build.info", "crypto/whrlpool/build.info", @@ -122,11 +128,19 @@ our %config = ( "crypto/cmp/build.info", "crypto/encode_decode/build.info", "crypto/ffc/build.info", + "crypto/hpke/build.info", + "crypto/thread/build.info", + "crypto/ml_dsa/build.info", + "crypto/slh_dsa/build.info", + "ssl/record/build.info", + "ssl/rio/build.info", + "ssl/quic/build.info", "apps/lib/build.info", "providers/common/build.info", "providers/implementations/build.info", "providers/fips/build.info", "doc/man1/build.info", + "ssl/record/methods/build.info", "providers/common/der/build.info", "providers/implementations/digests/build.info", "providers/implementations/ciphers/build.info", @@ -140,6 +154,7 @@ our %config = ( "providers/implementations/encode_decode/build.info", "providers/implementations/storemgmt/build.info", "providers/implementations/kem/build.info", + "providers/implementations/skeymgmt/build.info", "providers/implementations/rands/seeding/build.info" ], "build_metadata" => "", @@ -159,7 +174,7 @@ our %config = ( ], "dynamic_engines" => "0", "ex_libs" => [], - "full_version" => "3.0.17", + "full_version" => "3.5.1", "includes" => [], "lflags" => [], "lib_defines" => [ @@ -168,37 +183,52 @@ our %config = ( "libdir" => "", "major" => "3", "makedep_scheme" => "gcc", - "minor" => "0", + "minor" => "5", "openssl_api_defines" => [ - "OPENSSL_CONFIGURED_API=30000" + "OPENSSL_CONFIGURED_API=30500" ], "openssl_feature_defines" => [ "OPENSSL_RAND_SEED_OS", "OPENSSL_THREADS", "OPENSSL_NO_AFALGENG", "OPENSSL_NO_ASAN", + "OPENSSL_NO_BROTLI", + "OPENSSL_NO_BROTLI_DYNAMIC", "OPENSSL_NO_COMP", "OPENSSL_NO_CRYPTO_MDEBUG", "OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE", + "OPENSSL_NO_DEMOS", "OPENSSL_NO_DEVCRYPTOENG", "OPENSSL_NO_EC_NISTP_64_GCC_128", "OPENSSL_NO_EGD", "OPENSSL_NO_EXTERNAL_TESTS", + "OPENSSL_NO_FIPS_JITTER", "OPENSSL_NO_FUZZ_AFL", "OPENSSL_NO_FUZZ_LIBFUZZER", + "OPENSSL_NO_H3DEMO", + "OPENSSL_NO_HQINTEROP", + "OPENSSL_NO_JITTER", "OPENSSL_NO_KTLS", "OPENSSL_NO_LOADERENG", "OPENSSL_NO_MD2", "OPENSSL_NO_MSAN", + "OPENSSL_NO_PIE", "OPENSSL_NO_RC5", "OPENSSL_NO_SCTP", "OPENSSL_NO_SSL3", "OPENSSL_NO_SSL3_METHOD", + "OPENSSL_NO_SSLKEYLOG", + "OPENSSL_NO_TFO", "OPENSSL_NO_TRACE", "OPENSSL_NO_UBSAN", "OPENSSL_NO_UNIT_TEST", "OPENSSL_NO_UPLINK", "OPENSSL_NO_WEAK_SSL_CIPHERS", + "OPENSSL_NO_WINSTORE", + "OPENSSL_NO_ZLIB", + "OPENSSL_NO_ZLIB_DYNAMIC", + "OPENSSL_NO_ZSTD", + "OPENSSL_NO_ZSTD_DYNAMIC", "OPENSSL_NO_DYNAMIC_ENGINE" ], "openssl_other_defines" => [ @@ -206,11 +236,11 @@ our %config = ( ], "openssl_sys_defines" => [], "openssldir" => "", - "options" => "enable-ssl-trace enable-fips no-afalgeng no-asan no-buildtest-c++ no-comp no-crypto-mdebug no-crypto-mdebug-backtrace no-devcryptoeng no-dynamic-engine no-ec_nistp_64_gcc_128 no-egd no-external-tests no-fuzz-afl no-fuzz-libfuzzer no-ktls no-loadereng no-md2 no-msan no-rc5 no-sctp no-shared no-ssl3 no-ssl3-method no-trace no-ubsan no-unit-test no-uplink no-weak-ssl-ciphers no-zlib no-zlib-dynamic", - "patch" => "17", + "options" => "enable-ssl-trace enable-fips no-afalgeng no-asan no-brotli no-brotli-dynamic no-buildtest-c++ no-comp no-crypto-mdebug no-crypto-mdebug-backtrace no-demos no-devcryptoeng no-dynamic-engine no-ec_nistp_64_gcc_128 no-egd no-external-tests no-fips-jitter no-fuzz-afl no-fuzz-libfuzzer no-h3demo no-hqinterop no-jitter no-ktls no-loadereng no-md2 no-msan no-pie no-rc5 no-sctp no-shared no-ssl3 no-ssl3-method no-sslkeylog no-tfo no-trace no-ubsan no-unit-test no-uplink no-weak-ssl-ciphers no-winstore no-zlib no-zlib-dynamic no-zstd no-zstd-dynamic", + "patch" => "1", "perl_archname" => "x86_64-linux-gnu-thread-multi", "perl_cmd" => "/usr/bin/perl", - "perl_version" => "5.38.2", + "perl_version" => "5.34.0", "perlargv" => [ "no-comp", "no-shared", @@ -240,6 +270,7 @@ our %config = ( "LDLIBS" => undef, "MT" => undef, "MTFLAGS" => undef, + "OBJCOPY" => undef, "OPENSSL_LOCAL_CONFIG_DIR" => undef, "PERL" => undef, "RANLIB" => undef, @@ -263,7 +294,7 @@ our %config = ( "shlib_version" => "3", "sourcedir" => ".", "target" => "linux-aarch64", - "version" => "3.0.17" + "version" => "3.5.1" ); our %target = ( "AR" => "ar", @@ -273,6 +304,7 @@ our %target = ( "CXX" => "g++", "CXXFLAGS" => "-Wall -O3", "HASHBANGPERL" => "/usr/bin/env perl", + "OBJCOPY" => "objcopy", "RANLIB" => "ranlib", "RC" => "windres", "_conf_fname_int" => [ @@ -284,6 +316,8 @@ our %target = ( "Configurations/shared-info.pl" ], "asm_arch" => "aarch64", + "bin_cflags" => "", + "bin_lflags" => "", "bn_ops" => "SIXTY_FOUR_BIT_LONG RC4_CHAR", "build_file" => "Makefile", "build_scheme" => [ @@ -328,6 +362,8 @@ our %target = ( our @disablables = ( "acvp-tests", "afalgeng", + "apps", + "argon2", "aria", "asan", "asm", @@ -338,11 +374,14 @@ our @disablables = ( "autoload-config", "bf", "blake2", + "brotli", + "brotli-dynamic", "buildtest-c++", "bulk", "cached-fetch", "camellia", "capieng", + "winstore", "cast", "chacha", "cmac", @@ -351,11 +390,16 @@ our @disablables = ( "comp", "crypto-mdebug", "ct", + "default-thread-pool", + "demos", + "h3demo", + "hqinterop", "deprecated", "des", "devcryptoeng", "dgram", "dh", + "docs", "dsa", "dso", "dtls", @@ -365,6 +409,7 @@ our @disablables = ( "ec_nistp_64_gcc_128", "ecdh", "ecdsa", + "ecx", "egd", "engine", "err", @@ -372,10 +417,15 @@ our @disablables = ( "filenames", "fips", "fips-securitychecks", + "fips-post", + "fips-jitter", "fuzz-afl", "fuzz-libfuzzer", "gost", + "http", "idea", + "integrity-only-ciphers", + "jitter", "ktls", "legacy", "loadereng", @@ -383,6 +433,8 @@ our @disablables = ( "md2", "md4", "mdc2", + "ml-dsa", + "ml-kem", "module", "msan", "multiblock", @@ -391,10 +443,13 @@ our @disablables = ( "ocsp", "padlockeng", "pic", + "pie", "pinshared", "poly1305", "posix-io", "psk", + "quic", + "unstable-qlog", "rc2", "rc4", "rc5", @@ -408,7 +463,9 @@ our @disablables = ( "shared", "siphash", "siv", + "slh-dsa", "sm2", + "sm2-precomp", "sm3", "sm4", "sock", @@ -419,9 +476,13 @@ our @disablables = ( "ssl-trace", "static-engine", "stdio", + "sslkeylog", "tests", + "tfo", + "thread-pool", "threads", "tls", + "tls-deprecated-ec", "trace", "ts", "ubsan", @@ -432,6 +493,8 @@ our @disablables = ( "whirlpool", "zlib", "zlib-dynamic", + "zstd", + "zstd-dynamic", "ssl3", "ssl3-method", "tls1", @@ -452,33 +515,46 @@ our @disablables_int = ( our %disabled = ( "afalgeng" => "option", "asan" => "default", + "brotli" => "default", + "brotli-dynamic" => "default", "buildtest-c++" => "default", "comp" => "option", "crypto-mdebug" => "default", "crypto-mdebug-backtrace" => "default", + "demos" => "default", "devcryptoeng" => "default", "dynamic-engine" => "cascade", "ec_nistp_64_gcc_128" => "default", "egd" => "default", "external-tests" => "default", + "fips-jitter" => "default", "fuzz-afl" => "default", "fuzz-libfuzzer" => "default", + "h3demo" => "default", + "hqinterop" => "default", + "jitter" => "default", "ktls" => "default", "loadereng" => "cascade", "md2" => "default", "msan" => "default", + "pie" => "default", "rc5" => "default", "sctp" => "default", "shared" => "option", "ssl3" => "default", "ssl3-method" => "default", + "sslkeylog" => "default", + "tfo" => "default", "trace" => "default", "ubsan" => "default", "unit-test" => "default", "uplink" => "no uplink_arch", "weak-ssl-ciphers" => "default", + "winstore" => "not-windows", "zlib" => "default", - "zlib-dynamic" => "default" + "zlib-dynamic" => "default", + "zstd" => "default", + "zstd-dynamic" => "default" ); our %withargs = (); our %unified_info = ( @@ -704,6 +780,11 @@ our %unified_info = ( "pod" => "1" } }, + "doc/man1/openssl-skeyutl.pod" => { + "doc/man1/openssl-skeyutl.pod.in" => { + "pod" => "1" + } + }, "doc/man1/openssl-smime.pod" => { "doc/man1/openssl-smime.pod.in" => { "pod" => "1" @@ -761,6 +842,21 @@ our %unified_info = ( } }, "generate" => { + "exporters/OpenSSLConfig.cmake" => { + "exporter" => "cmake" + }, + "exporters/OpenSSLConfigVersion.cmake" => { + "exporter" => "cmake" + }, + "exporters/libcrypto.pc" => { + "exporter" => "pkg-config" + }, + "exporters/libssl.pc" => { + "exporter" => "pkg-config" + }, + "exporters/openssl.pc" => { + "exporter" => "pkg-config" + }, "include/openssl/configuration.h" => { "skip" => "1" } @@ -781,6 +877,9 @@ our %unified_info = ( "providers/liblegacy.a" => { "noinst" => "1" }, + "providers/libtemplate.a" => { + "noinst" => "1" + }, "test/libtestutil.a" => { "has_main" => "1", "noinst" => "1" @@ -798,6 +897,9 @@ our %unified_info = ( } }, "programs" => { + "fuzz/acert-test" => { + "noinst" => "1" + }, "fuzz/asn1-test" => { "noinst" => "1" }, @@ -828,9 +930,60 @@ our %unified_info = ( "fuzz/ct-test" => { "noinst" => "1" }, + "fuzz/decoder-test" => { + "noinst" => "1" + }, + "fuzz/dtlsclient-test" => { + "noinst" => "1" + }, + "fuzz/dtlsserver-test" => { + "noinst" => "1" + }, + "fuzz/hashtable-test" => { + "noinst" => "1" + }, + "fuzz/ml-dsa-test" => { + "noinst" => "1" + }, + "fuzz/ml-kem-test" => { + "noinst" => "1" + }, + "fuzz/pem-test" => { + "noinst" => "1" + }, + "fuzz/provider-test" => { + "noinst" => "1" + }, + "fuzz/punycode-test" => { + "noinst" => "1" + }, + "fuzz/quic-client-test" => { + "noinst" => "1" + }, + "fuzz/quic-lcidm-test" => { + "noinst" => "1" + }, + "fuzz/quic-rcidm-test" => { + "noinst" => "1" + }, + "fuzz/quic-server-test" => { + "noinst" => "1" + }, + "fuzz/quic-srtm-test" => { + "noinst" => "1" + }, "fuzz/server-test" => { "noinst" => "1" }, + "fuzz/slh-dsa-test" => { + "noinst" => "1" + }, + "fuzz/smime-test" => { + "noinst" => "1" + }, + "fuzz/v3name-test" => { + "noinst" => "1" + }, "fuzz/x509-test" => { "noinst" => "1" }, @@ -882,18 +1035,30 @@ our %unified_info = ( "test/bftest" => { "noinst" => "1" }, + "test/bio_addr_test" => { + "noinst" => "1" + }, + "test/bio_base64_test" => { + "noinst" => "1" + }, "test/bio_callback_test" => { "noinst" => "1" }, "test/bio_core_test" => { "noinst" => "1" }, + "test/bio_dgram_test" => { + "noinst" => "1" + }, "test/bio_enc_test" => { "noinst" => "1" }, "test/bio_memleak_test" => { "noinst" => "1" }, + "test/bio_meth_test" => { + "noinst" => "1" + }, "test/bio_prefix_text" => { "noinst" => "1" }, @@ -903,6 +1068,9 @@ our %unified_info = ( "test/bio_readbuffer_test" => { "noinst" => "1" }, + "test/bio_tfo_test" => { + "noinst" => "1" + }, "test/bioprinttest" => { "noinst" => "1" }, @@ -912,6 +1080,9 @@ our %unified_info = ( "test/bntest" => { "noinst" => "1" }, + "test/build_wincrypt_test" => { + "noinst" => "1" + }, "test/buildtest_c_aes" => { "noinst" => "1" }, @@ -927,6 +1098,9 @@ our %unified_info = ( "test/buildtest_c_buffer" => { "noinst" => "1" }, + "test/buildtest_c_byteorder" => { + "noinst" => "1" + }, "test/buildtest_c_camellia" => { "noinst" => "1" }, @@ -951,9 +1125,6 @@ our %unified_info = ( "test/buildtest_c_core_dispatch" => { "noinst" => "1" }, - "test/buildtest_c_core_names" => { - "noinst" => "1" - }, "test/buildtest_c_core_object" => { "noinst" => "1" }, @@ -978,6 +1149,9 @@ our %unified_info = ( "test/buildtest_c_e_os2" => { "noinst" => "1" }, + "test/buildtest_c_e_ostime" => { + "noinst" => "1" + }, "test/buildtest_c_ebcdic" => { "noinst" => "1" }, @@ -1005,12 +1179,18 @@ our %unified_info = ( "test/buildtest_c_hmac" => { "noinst" => "1" }, + "test/buildtest_c_hpke" => { + "noinst" => "1" + }, "test/buildtest_c_http" => { "noinst" => "1" }, "test/buildtest_c_idea" => { "noinst" => "1" }, + "test/buildtest_c_indicator" => { + "noinst" => "1" + }, "test/buildtest_c_kdf" => { "noinst" => "1" }, @@ -1026,6 +1206,9 @@ our %unified_info = ( "test/buildtest_c_mdc2" => { "noinst" => "1" }, + "test/buildtest_c_ml_kem" => { + "noinst" => "1" + }, "test/buildtest_c_modes" => { "noinst" => "1" }, @@ -1056,6 +1239,9 @@ our %unified_info = ( "test/buildtest_c_provider" => { "noinst" => "1" }, + "test/buildtest_c_quic" => { + "noinst" => "1" + }, "test/buildtest_c_rand" => { "noinst" => "1" }, @@ -1098,6 +1284,9 @@ our %unified_info = ( "test/buildtest_c_symhacks" => { "noinst" => "1" }, + "test/buildtest_c_thread" => { + "noinst" => "1" + }, "test/buildtest_c_tls1" => { "noinst" => "1" }, @@ -1113,6 +1302,12 @@ our %unified_info = ( "test/buildtest_c_whrlpool" => { "noinst" => "1" }, + "test/byteorder_test" => { + "noinst" => "1" + }, + "test/ca_internals_test" => { + "noinst" => "1" + }, "test/casttest" => { "noinst" => "1" }, @@ -1197,6 +1392,9 @@ our %unified_info = ( "test/danetest" => { "noinst" => "1" }, + "test/decoder_propq_test" => { + "noinst" => "1" + }, "test/defltfips_test" => { "noinst" => "1" }, @@ -1269,15 +1467,24 @@ our %unified_info = ( "test/evp_pkey_ctx_new_from_name" => { "noinst" => "1" }, + "test/evp_pkey_dhkem_test" => { + "noinst" => "1" + }, "test/evp_pkey_dparams_test" => { "noinst" => "1" }, "test/evp_pkey_provided_test" => { "noinst" => "1" }, + "test/evp_skey_test" => { + "noinst" => "1" + }, "test/evp_test" => { "noinst" => "1" }, + "test/evp_xof_test" => { + "noinst" => "1" + }, "test/exdatatest" => { "noinst" => "1" }, @@ -1305,6 +1512,9 @@ our %unified_info = ( "test/hmactest" => { "noinst" => "1" }, + "test/hpke_test" => { + "noinst" => "1" + }, "test/http_test" => { "noinst" => "1" }, @@ -1314,12 +1524,18 @@ our %unified_info = ( "test/igetest" => { "noinst" => "1" }, + "test/json_test" => { + "noinst" => "1" + }, "test/keymgmt_internal_test" => { "noinst" => "1" }, "test/lhash_test" => { "noinst" => "1" }, + "test/list_test" => { + "noinst" => "1" + }, "test/localetest" => { "noinst" => "1" }, @@ -1329,9 +1545,21 @@ our %unified_info = ( "test/mdc2test" => { "noinst" => "1" }, + "test/membio_test" => { + "noinst" => "1" + }, "test/memleaktest" => { "noinst" => "1" }, + "test/ml_dsa_test" => { + "noinst" => "1" + }, + "test/ml_kem_evp_extra_test" => { + "noinst" => "1" + }, + "test/ml_kem_internal_test" => { + "noinst" => "1" + }, "test/modes_internal_test" => { "noinst" => "1" }, @@ -1350,6 +1578,9 @@ our %unified_info = ( "test/packettest" => { "noinst" => "1" }, + "test/pairwise_fail_test" => { + "noinst" => "1" + }, "test/param_build_test" => { "noinst" => "1" }, @@ -1374,6 +1605,9 @@ our %unified_info = ( "test/pemtest" => { "noinst" => "1" }, + "test/pkcs12_api_test" => { + "noinst" => "1" + }, "test/pkcs12_format_test" => { "noinst" => "1" }, @@ -1389,6 +1623,9 @@ our %unified_info = ( "test/poly1305_internal_test" => { "noinst" => "1" }, + "test/priority_queue_test" => { + "noinst" => "1" + }, "test/property_test" => { "noinst" => "1" }, @@ -1398,6 +1635,9 @@ our %unified_info = ( "test/provfetchtest" => { "noinst" => "1" }, + "test/provider_default_search_path_test" => { + "noinst" => "1" + }, "test/provider_fallback_test" => { "noinst" => "1" }, @@ -1416,6 +1656,72 @@ our %unified_info = ( "test/punycode_test" => { "noinst" => "1" }, + "test/quic_ackm_test" => { + "noinst" => "1" + }, + "test/quic_cc_test" => { + "noinst" => "1" + }, + "test/quic_cfq_test" => { + "noinst" => "1" + }, + "test/quic_client_test" => { + "noinst" => "1" + }, + "test/quic_fc_test" => { + "noinst" => "1" + }, + "test/quic_fifd_test" => { + "noinst" => "1" + }, + "test/quic_lcidm_test" => { + "noinst" => "1" + }, + "test/quic_multistream_test" => { + "noinst" => "1" + }, + "test/quic_newcid_test" => { + "noinst" => "1" + }, + "test/quic_qlog_test" => { + "noinst" => "1" + }, + "test/quic_radix_test" => { + "noinst" => "1" + }, + "test/quic_rcidm_test" => { + "noinst" => "1" + }, + "test/quic_record_test" => { + "noinst" => "1" + }, + "test/quic_srt_gen_test" => { + "noinst" => "1" + }, + "test/quic_srtm_test" => { + "noinst" => "1" + }, + "test/quic_stream_test" => { + "noinst" => "1" + }, + "test/quic_tserver_test" => { + "noinst" => "1" + }, + "test/quic_txp_test" => { + "noinst" => "1" + }, + "test/quic_txpim_test" => { + "noinst" => "1" + }, + "test/quic_wire_test" => { + "noinst" => "1" + }, + "test/quicapitest" => { + "noinst" => "1" + }, + "test/quicfaultstest" => { + "noinst" => "1" + }, "test/rand_status_test" => { "noinst" => "1" }, @@ -1431,12 +1737,15 @@ our %unified_info = ( "test/rc5test" => { "noinst" => "1" }, - "test/rdrand_sanitytest" => { + "test/rdcpu_sanitytest" => { "noinst" => "1" }, "test/recordlentest" => { "noinst" => "1" }, + "test/rpktest" => { + "noinst" => "1" + }, "test/rsa_complex" => { "noinst" => "1" }, @@ -1449,6 +1758,12 @@ our %unified_info = ( "test/rsa_test" => { "noinst" => "1" }, + "test/rsa_x931_test" => { + "noinst" => "1" + }, + "test/safe_math_test" => { + "noinst" => "1" + }, "test/sanitytest" => { "noinst" => "1" }, @@ -1464,6 +1779,9 @@ our %unified_info = ( "test/siphash_internal_test" => { "noinst" => "1" }, + "test/slh_dsa_test" => { + "noinst" => "1" + }, "test/sm2_internal_test" => { "noinst" => "1" }, @@ -1485,6 +1803,9 @@ our %unified_info = ( "test/ssl_ctx_test" => { "noinst" => "1" }, + "test/ssl_handshake_rtt_test" => { + "noinst" => "1" + }, "test/ssl_old_test" => { "noinst" => "1" }, @@ -1506,12 +1827,18 @@ our %unified_info = ( "test/stack_test" => { "noinst" => "1" }, + "test/strtoultest" => { + "noinst" => "1" + }, "test/sysdefaulttest" => { "noinst" => "1" }, "test/test_test" => { "noinst" => "1" }, + "test/threadpool_test" => { + "noinst" => "1" + }, "test/threadstest" => { "noinst" => "1" }, @@ -1521,12 +1848,18 @@ our %unified_info = ( "test/time_offset_test" => { "noinst" => "1" }, + "test/time_test" => { + "noinst" => "1" + }, "test/tls13ccstest" => { "noinst" => "1" }, "test/tls13encryptiontest" => { "noinst" => "1" }, + "test/tls13groupselection_test" => { + "noinst" => "1" + }, "test/trace_api_test" => { "noinst" => "1" }, @@ -1554,6 +1887,9 @@ our %unified_info = ( "test/wpackettest" => { "noinst" => "1" }, + "test/x509_acert_test" => { + "noinst" => "1" + }, "test/x509_check_cert_pkey_test" => { "noinst" => "1" }, @@ -1563,6 +1899,15 @@ our %unified_info = ( "test/x509_internal_test" => { "noinst" => "1" }, + "test/x509_load_cert_file_test" => { + "noinst" => "1" + }, + "test/x509_req_test" => { + "noinst" => "1" + }, + "test/x509_test" => { + "noinst" => "1" + }, "test/x509_time_test" => { "noinst" => "1" }, @@ -1601,15 +1946,21 @@ our %unified_info = ( }, "defines" => { "libcrypto" => [ + "BSAES_ASM", "ECP_NISTZ256_ASM", + "ECP_SM2P256_ASM", "KECCAK1600_ASM", + "MD5_ASM", "OPENSSL_BN_ASM_MONT", "OPENSSL_CPUID_OBJ", + "OPENSSL_SM3_ASM", "POLY1305_ASM", "SHA1_ASM", "SHA256_ASM", "SHA512_ASM", - "VPAES_ASM" + "SM4_ASM", + "VPAES_ASM", + "VPSM4_ASM" ], "providers/fips" => [ "FIPS_MODULE" @@ -1619,16 +1970,22 @@ our %unified_info = ( "OPENSSL_CPUID_OBJ" ], "providers/libdefault.a" => [ + "BSAES_ASM", "ECP_NISTZ256_ASM", + "ECP_SM2P256_ASM", "KECCAK1600_ASM", "OPENSSL_CPUID_OBJ", "SHA1_ASM", "SHA256_ASM", "SHA512_ASM", - "VPAES_ASM" + "SM4_ASM", + "VPAES_ASM", + "VPSM4_ASM" ], "providers/libfips.a" => [ + "BSAES_ASM", "ECP_NISTZ256_ASM", + "ECP_SM2P256_ASM", "FIPS_MODULE", "KECCAK1600_ASM", "OPENSSL_BN_ASM_MONT", @@ -1636,7 +1993,15 @@ our %unified_info = ( "SHA1_ASM", "SHA256_ASM", "SHA512_ASM", - "VPAES_ASM" + "SM4_ASM", + "VPAES_ASM", + "VPSM4_ASM" + ], + "providers/liblegacy.a" => [ + "MD5_ASM" + ], + "test/endecode_test" => [ + "STATIC_LEGACY" ], "test/evp_extra_test" => [ "STATIC_LEGACY" @@ -1650,14 +2015,21 @@ our %unified_info = ( }, "depends" => { "" => [ + "OpenSSLConfigVersion.cmake", + "crypto/params_idx.c", + "exporters/OpenSSLConfigVersion.cmake", + "exporters/openssl.pc", "include/crypto/bn_conf.h", "include/crypto/dso_conf.h", + "include/internal/param_names.h", "include/openssl/asn1.h", "include/openssl/asn1t.h", "include/openssl/bio.h", "include/openssl/cmp.h", "include/openssl/cms.h", + "include/openssl/comp.h", "include/openssl/conf.h", + "include/openssl/core_names.h", "include/openssl/crmf.h", "include/openssl/crypto.h", "include/openssl/ct.h", @@ -1674,10 +2046,22 @@ our %unified_info = ( "include/openssl/ssl.h", "include/openssl/ui.h", "include/openssl/x509.h", + "include/openssl/x509_acert.h", "include/openssl/x509_vfy.h", "include/openssl/x509v3.h", + "openssl.pc", "test/provider_internal_test.cnf" ], + "OpenSSLConfig.cmake" => [ + "builddata.pm" + ], + "OpenSSLConfigVersion.cmake" => [ + "OpenSSLConfig.cmake", + "builddata.pm" + ], + "apps/ca_internals_test-bin-ca.o" => [ + "apps/progs.h" + ], "apps/lib/cmp_client_test-bin-cmp_mock_srv.o" => [ "apps/progs.h" ], @@ -1823,6 +2207,9 @@ our %unified_info = ( "apps/openssl-bin-sess_id.o" => [ "apps/progs.h" ], + "apps/openssl-bin-skeyutl.o" => [ + "apps/progs.h" + ], "apps/openssl-bin-smime.o" => [ "apps/progs.h" ], @@ -1911,6 +2298,9 @@ our %unified_info = ( "crypto/libcrypto-lib-info.o" => [ "crypto/buildinf.h" ], + "crypto/params_idx.c" => [ + "util/perl|OpenSSL/paramnames.pm" + ], "crypto/rc4/rc4-586.S" => [ "crypto/perlasm/x86asm.pl" ], @@ -2076,6 +2466,9 @@ our %unified_info = ( "doc/html/man1/openssl-sess_id.html" => [ "doc/man1/openssl-sess_id.pod" ], + "doc/html/man1/openssl-skeyutl.html" => [ + "doc/man1/openssl-skeyutl.pod" + ], "doc/html/man1/openssl-smime.html" => [ "doc/man1/openssl-smime.pod" ], @@ -2217,6 +2610,9 @@ our %unified_info = ( "doc/html/man3/BIO_get_ex_new_index.html" => [ "doc/man3/BIO_get_ex_new_index.pod" ], + "doc/html/man3/BIO_get_rpoll_descriptor.html" => [ + "doc/man3/BIO_get_rpoll_descriptor.pod" + ], "doc/html/man3/BIO_meth_new.html" => [ "doc/man3/BIO_meth_new.pod" ], @@ -2253,6 +2649,9 @@ our %unified_info = ( "doc/html/man3/BIO_s_datagram.html" => [ "doc/man3/BIO_s_datagram.pod" ], + "doc/html/man3/BIO_s_dgram_pair.html" => [ + "doc/man3/BIO_s_dgram_pair.pod" + ], "doc/html/man3/BIO_s_fd.html" => [ "doc/man3/BIO_s_fd.pod" ], @@ -2268,6 +2667,9 @@ our %unified_info = ( "doc/html/man3/BIO_s_socket.html" => [ "doc/man3/BIO_s_socket.pod" ], + "doc/html/man3/BIO_sendmmsg.html" => [ + "doc/man3/BIO_sendmmsg.pod" + ], "doc/html/man3/BIO_set_callback.html" => [ "doc/man3/BIO_set_callback.pod" ], @@ -2340,6 +2742,9 @@ our %unified_info = ( "doc/html/man3/BUF_MEM_new.html" => [ "doc/man3/BUF_MEM_new.pod" ], + "doc/html/man3/CMAC_CTX.html" => [ + "doc/man3/CMAC_CTX.pod" + ], "doc/html/man3/CMS_EncryptedData_decrypt.html" => [ "doc/man3/CMS_EncryptedData_decrypt.pod" ], @@ -2406,6 +2811,9 @@ our %unified_info = ( "doc/html/man3/CMS_verify_receipt.html" => [ "doc/man3/CMS_verify_receipt.pod" ], + "doc/html/man3/COMP_CTX_new.html" => [ + "doc/man3/COMP_CTX_new.pod" + ], "doc/html/man3/CONF_modules_free.html" => [ "doc/man3/CONF_modules_free.pod" ], @@ -2505,6 +2913,12 @@ our %unified_info = ( "doc/html/man3/DTLS_set_timer_cb.html" => [ "doc/man3/DTLS_set_timer_cb.pod" ], + "doc/html/man3/DTLSv1_get_timeout.html" => [ + "doc/man3/DTLSv1_get_timeout.pod" + ], + "doc/html/man3/DTLSv1_handle_timeout.html" => [ + "doc/man3/DTLSv1_handle_timeout.pod" + ], "doc/html/man3/DTLSv1_listen.html" => [ "doc/man3/DTLSv1_listen.pod" ], @@ -2643,6 +3057,9 @@ our %unified_info = ( "doc/html/man3/EVP_PKEY_CTX_get0_pkey.html" => [ "doc/man3/EVP_PKEY_CTX_get0_pkey.pod" ], + "doc/html/man3/EVP_PKEY_CTX_get_algor.html" => [ + "doc/man3/EVP_PKEY_CTX_get_algor.pod" + ], "doc/html/man3/EVP_PKEY_CTX_new.html" => [ "doc/man3/EVP_PKEY_CTX_new.pod" ], @@ -2760,6 +3177,12 @@ our %unified_info = ( "doc/html/man3/EVP_SIGNATURE.html" => [ "doc/man3/EVP_SIGNATURE.pod" ], + "doc/html/man3/EVP_SKEY.html" => [ + "doc/man3/EVP_SKEY.pod" + ], + "doc/html/man3/EVP_SKEYMGMT.html" => [ + "doc/man3/EVP_SKEYMGMT.pod" + ], "doc/html/man3/EVP_SealInit.html" => [ "doc/man3/EVP_SealInit.pod" ], @@ -2847,6 +3270,9 @@ our %unified_info = ( "doc/html/man3/EVP_whirlpool.html" => [ "doc/man3/EVP_whirlpool.pod" ], + "doc/html/man3/GENERAL_NAME.html" => [ + "doc/man3/GENERAL_NAME.pod" + ], "doc/html/man3/HMAC.html" => [ "doc/man3/HMAC.pod" ], @@ -2919,9 +3345,15 @@ our %unified_info = ( "doc/html/man3/OPENSSL_load_builtin_modules.html" => [ "doc/man3/OPENSSL_load_builtin_modules.pod" ], + "doc/html/man3/OPENSSL_load_u16_le.html" => [ + "doc/man3/OPENSSL_load_u16_le.pod" + ], "doc/html/man3/OPENSSL_malloc.html" => [ "doc/man3/OPENSSL_malloc.pod" ], + "doc/html/man3/OPENSSL_riscvcap.html" => [ + "doc/man3/OPENSSL_riscvcap.pod" + ], "doc/html/man3/OPENSSL_s390xcap.html" => [ "doc/man3/OPENSSL_s390xcap.pod" ], @@ -2937,12 +3369,18 @@ our %unified_info = ( "doc/html/man3/OSSL_CALLBACK.html" => [ "doc/man3/OSSL_CALLBACK.pod" ], + "doc/html/man3/OSSL_CMP_ATAV_set0.html" => [ + "doc/man3/OSSL_CMP_ATAV_set0.pod" + ], "doc/html/man3/OSSL_CMP_CTX_new.html" => [ "doc/man3/OSSL_CMP_CTX_new.pod" ], "doc/html/man3/OSSL_CMP_HDR_get0_transactionID.html" => [ "doc/man3/OSSL_CMP_HDR_get0_transactionID.pod" ], + "doc/html/man3/OSSL_CMP_ITAV_new_caCerts.html" => [ + "doc/man3/OSSL_CMP_ITAV_new_caCerts.pod" + ], "doc/html/man3/OSSL_CMP_ITAV_set0.html" => [ "doc/man3/OSSL_CMP_ITAV_set0.pod" ], @@ -3012,9 +3450,18 @@ our %unified_info = ( "doc/html/man3/OSSL_ENCODER_to_bio.html" => [ "doc/man3/OSSL_ENCODER_to_bio.pod" ], + "doc/html/man3/OSSL_ERR_STATE_save.html" => [ + "doc/man3/OSSL_ERR_STATE_save.pod" + ], "doc/html/man3/OSSL_ESS_check_signing_certs.html" => [ "doc/man3/OSSL_ESS_check_signing_certs.pod" ], + "doc/html/man3/OSSL_GENERAL_NAMES_print.html" => [ + "doc/man3/OSSL_GENERAL_NAMES_print.pod" + ], + "doc/html/man3/OSSL_HPKE_CTX_new.html" => [ + "doc/man3/OSSL_HPKE_CTX_new.pod" + ], "doc/html/man3/OSSL_HTTP_REQ_CTX.html" => [ "doc/man3/OSSL_HTTP_REQ_CTX.pod" ], @@ -3024,12 +3471,24 @@ our %unified_info = ( "doc/html/man3/OSSL_HTTP_transfer.html" => [ "doc/man3/OSSL_HTTP_transfer.pod" ], + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX.html" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX.pod" + ], + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX_print.html" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX_print.pod" + ], + "doc/html/man3/OSSL_INDICATOR_set_callback.html" => [ + "doc/man3/OSSL_INDICATOR_set_callback.pod" + ], "doc/html/man3/OSSL_ITEM.html" => [ "doc/man3/OSSL_ITEM.pod" ], "doc/html/man3/OSSL_LIB_CTX.html" => [ "doc/man3/OSSL_LIB_CTX.pod" ], + "doc/html/man3/OSSL_LIB_CTX_set_conf_diagnostics.html" => [ + "doc/man3/OSSL_LIB_CTX_set_conf_diagnostics.pod" + ], "doc/html/man3/OSSL_PARAM.html" => [ "doc/man3/OSSL_PARAM.pod" ], @@ -3045,9 +3504,15 @@ our %unified_info = ( "doc/html/man3/OSSL_PARAM_int.html" => [ "doc/man3/OSSL_PARAM_int.pod" ], + "doc/html/man3/OSSL_PARAM_print_to_bio.html" => [ + "doc/man3/OSSL_PARAM_print_to_bio.pod" + ], "doc/html/man3/OSSL_PROVIDER.html" => [ "doc/man3/OSSL_PROVIDER.pod" ], + "doc/html/man3/OSSL_QUIC_client_method.html" => [ + "doc/man3/OSSL_QUIC_client_method.pod" + ], "doc/html/man3/OSSL_SELF_TEST_new.html" => [ "doc/man3/OSSL_SELF_TEST_new.pod" ], @@ -3072,6 +3537,9 @@ our %unified_info = ( "doc/html/man3/OSSL_STORE_open.html" => [ "doc/man3/OSSL_STORE_open.pod" ], + "doc/html/man3/OSSL_sleep.html" => [ + "doc/man3/OSSL_sleep.pod" + ], "doc/html/man3/OSSL_trace_enabled.html" => [ "doc/man3/OSSL_trace_enabled.pod" ], @@ -3087,6 +3555,9 @@ our %unified_info = ( "doc/html/man3/OpenSSL_version.html" => [ "doc/man3/OpenSSL_version.pod" ], + "doc/html/man3/PBMAC1_get1_pbkdf2_param.html" => [ + "doc/man3/PBMAC1_get1_pbkdf2_param.pod" + ], "doc/html/man3/PEM_X509_INFO_read_bio_ex.html" => [ "doc/man3/PEM_X509_INFO_read_bio_ex.pod" ], @@ -3123,6 +3594,9 @@ our %unified_info = ( "doc/html/man3/PKCS12_SAFEBAG_get1_cert.html" => [ "doc/man3/PKCS12_SAFEBAG_get1_cert.pod" ], + "doc/html/man3/PKCS12_SAFEBAG_set0_attrs.html" => [ + "doc/man3/PKCS12_SAFEBAG_set0_attrs.pod" + ], "doc/html/man3/PKCS12_add1_attr_by_NID.html" => [ "doc/man3/PKCS12_add1_attr_by_NID.pod" ], @@ -3396,6 +3870,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set0_CA_list.html" => [ "doc/man3/SSL_CTX_set0_CA_list.pod" ], + "doc/html/man3/SSL_CTX_set1_cert_comp_preference.html" => [ + "doc/man3/SSL_CTX_set1_cert_comp_preference.pod" + ], "doc/html/man3/SSL_CTX_set1_curves.html" => [ "doc/man3/SSL_CTX_set1_curves.pod" ], @@ -3435,6 +3912,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_default_passwd_cb.html" => [ "doc/man3/SSL_CTX_set_default_passwd_cb.pod" ], + "doc/html/man3/SSL_CTX_set_domain_flags.html" => [ + "doc/man3/SSL_CTX_set_domain_flags.pod" + ], "doc/html/man3/SSL_CTX_set_generate_session_id.html" => [ "doc/man3/SSL_CTX_set_generate_session_id.pod" ], @@ -3456,6 +3936,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_msg_callback.html" => [ "doc/man3/SSL_CTX_set_msg_callback.pod" ], + "doc/html/man3/SSL_CTX_set_new_pending_conn_cb.html" => [ + "doc/man3/SSL_CTX_set_new_pending_conn_cb.pod" + ], "doc/html/man3/SSL_CTX_set_num_tickets.html" => [ "doc/man3/SSL_CTX_set_num_tickets.pod" ], @@ -3570,6 +4053,9 @@ our %unified_info = ( "doc/html/man3/SSL_accept.html" => [ "doc/man3/SSL_accept.pod" ], + "doc/html/man3/SSL_accept_stream.html" => [ + "doc/man3/SSL_accept_stream.pod" + ], "doc/html/man3/SSL_alert_type_string.html" => [ "doc/man3/SSL_alert_type_string.pod" ], @@ -3597,9 +4083,21 @@ our %unified_info = ( "doc/html/man3/SSL_free.html" => [ "doc/man3/SSL_free.pod" ], + "doc/html/man3/SSL_get0_connection.html" => [ + "doc/man3/SSL_get0_connection.pod" + ], + "doc/html/man3/SSL_get0_group_name.html" => [ + "doc/man3/SSL_get0_group_name.pod" + ], + "doc/html/man3/SSL_get0_peer_rpk.html" => [ + "doc/man3/SSL_get0_peer_rpk.pod" + ], "doc/html/man3/SSL_get0_peer_scts.html" => [ "doc/man3/SSL_get0_peer_scts.pod" ], + "doc/html/man3/SSL_get1_builtin_sigalgs.html" => [ + "doc/man3/SSL_get1_builtin_sigalgs.pod" + ], "doc/html/man3/SSL_get_SSL_CTX.html" => [ "doc/man3/SSL_get_SSL_CTX.pod" ], @@ -3615,6 +4113,9 @@ our %unified_info = ( "doc/html/man3/SSL_get_client_random.html" => [ "doc/man3/SSL_get_client_random.pod" ], + "doc/html/man3/SSL_get_conn_close_info.html" => [ + "doc/man3/SSL_get_conn_close_info.pod" + ], "doc/html/man3/SSL_get_current_cipher.html" => [ "doc/man3/SSL_get_current_cipher.pod" ], @@ -3624,12 +4125,18 @@ our %unified_info = ( "doc/html/man3/SSL_get_error.html" => [ "doc/man3/SSL_get_error.pod" ], + "doc/html/man3/SSL_get_event_timeout.html" => [ + "doc/man3/SSL_get_event_timeout.pod" + ], "doc/html/man3/SSL_get_extms_support.html" => [ "doc/man3/SSL_get_extms_support.pod" ], "doc/html/man3/SSL_get_fd.html" => [ "doc/man3/SSL_get_fd.pod" ], + "doc/html/man3/SSL_get_handshake_rtt.html" => [ + "doc/man3/SSL_get_handshake_rtt.pod" + ], "doc/html/man3/SSL_get_peer_cert_chain.html" => [ "doc/man3/SSL_get_peer_cert_chain.pod" ], @@ -3648,12 +4155,24 @@ our %unified_info = ( "doc/html/man3/SSL_get_rbio.html" => [ "doc/man3/SSL_get_rbio.pod" ], + "doc/html/man3/SSL_get_rpoll_descriptor.html" => [ + "doc/man3/SSL_get_rpoll_descriptor.pod" + ], "doc/html/man3/SSL_get_session.html" => [ "doc/man3/SSL_get_session.pod" ], "doc/html/man3/SSL_get_shared_sigalgs.html" => [ "doc/man3/SSL_get_shared_sigalgs.pod" ], + "doc/html/man3/SSL_get_stream_id.html" => [ + "doc/man3/SSL_get_stream_id.pod" + ], + "doc/html/man3/SSL_get_stream_read_state.html" => [ + "doc/man3/SSL_get_stream_read_state.pod" + ], + "doc/html/man3/SSL_get_value_uint.html" => [ + "doc/man3/SSL_get_value_uint.pod" + ], "doc/html/man3/SSL_get_verify_result.html" => [ "doc/man3/SSL_get_verify_result.pod" ], @@ -3663,9 +4182,15 @@ our %unified_info = ( "doc/html/man3/SSL_group_to_name.html" => [ "doc/man3/SSL_group_to_name.pod" ], + "doc/html/man3/SSL_handle_events.html" => [ + "doc/man3/SSL_handle_events.pod" + ], "doc/html/man3/SSL_in_init.html" => [ "doc/man3/SSL_in_init.pod" ], + "doc/html/man3/SSL_inject_net_dgram.html" => [ + "doc/man3/SSL_inject_net_dgram.pod" + ], "doc/html/man3/SSL_key_update.html" => [ "doc/man3/SSL_key_update.pod" ], @@ -3678,9 +4203,21 @@ our %unified_info = ( "doc/html/man3/SSL_new.html" => [ "doc/man3/SSL_new.pod" ], + "doc/html/man3/SSL_new_domain.html" => [ + "doc/man3/SSL_new_domain.pod" + ], + "doc/html/man3/SSL_new_listener.html" => [ + "doc/man3/SSL_new_listener.pod" + ], + "doc/html/man3/SSL_new_stream.html" => [ + "doc/man3/SSL_new_stream.pod" + ], "doc/html/man3/SSL_pending.html" => [ "doc/man3/SSL_pending.pod" ], + "doc/html/man3/SSL_poll.html" => [ + "doc/man3/SSL_poll.pod" + ], "doc/html/man3/SSL_read.html" => [ "doc/man3/SSL_read.pod" ], @@ -3696,24 +4233,45 @@ our %unified_info = ( "doc/html/man3/SSL_set1_host.html" => [ "doc/man3/SSL_set1_host.pod" ], + "doc/html/man3/SSL_set1_initial_peer_addr.html" => [ + "doc/man3/SSL_set1_initial_peer_addr.pod" + ], + "doc/html/man3/SSL_set1_server_cert_type.html" => [ + "doc/man3/SSL_set1_server_cert_type.pod" + ], "doc/html/man3/SSL_set_async_callback.html" => [ "doc/man3/SSL_set_async_callback.pod" ], "doc/html/man3/SSL_set_bio.html" => [ "doc/man3/SSL_set_bio.pod" ], + "doc/html/man3/SSL_set_blocking_mode.html" => [ + "doc/man3/SSL_set_blocking_mode.pod" + ], "doc/html/man3/SSL_set_connect_state.html" => [ "doc/man3/SSL_set_connect_state.pod" ], + "doc/html/man3/SSL_set_default_stream_mode.html" => [ + "doc/man3/SSL_set_default_stream_mode.pod" + ], "doc/html/man3/SSL_set_fd.html" => [ "doc/man3/SSL_set_fd.pod" ], + "doc/html/man3/SSL_set_incoming_stream_policy.html" => [ + "doc/man3/SSL_set_incoming_stream_policy.pod" + ], + "doc/html/man3/SSL_set_quic_tls_cbs.html" => [ + "doc/man3/SSL_set_quic_tls_cbs.pod" + ], "doc/html/man3/SSL_set_retry_verify.html" => [ "doc/man3/SSL_set_retry_verify.pod" ], "doc/html/man3/SSL_set_session.html" => [ "doc/man3/SSL_set_session.pod" ], + "doc/html/man3/SSL_set_session_secret_cb.html" => [ + "doc/man3/SSL_set_session_secret_cb.pod" + ], "doc/html/man3/SSL_set_shutdown.html" => [ "doc/man3/SSL_set_shutdown.pod" ], @@ -3726,6 +4284,12 @@ our %unified_info = ( "doc/html/man3/SSL_state_string.html" => [ "doc/man3/SSL_state_string.pod" ], + "doc/html/man3/SSL_stream_conclude.html" => [ + "doc/man3/SSL_stream_conclude.pod" + ], + "doc/html/man3/SSL_stream_reset.html" => [ + "doc/man3/SSL_stream_reset.pod" + ], "doc/html/man3/SSL_want.html" => [ "doc/man3/SSL_want.pod" ], @@ -3735,8 +4299,8 @@ our %unified_info = ( "doc/html/man3/TS_RESP_CTX_new.html" => [ "doc/man3/TS_RESP_CTX_new.pod" ], - "doc/html/man3/TS_VERIFY_CTX_set_certs.html" => [ - "doc/man3/TS_VERIFY_CTX_set_certs.pod" + "doc/html/man3/TS_VERIFY_CTX.html" => [ + "doc/man3/TS_VERIFY_CTX.pod" ], "doc/html/man3/UI_STRING.html" => [ "doc/man3/UI_STRING.pod" @@ -3756,6 +4320,21 @@ our %unified_info = ( "doc/html/man3/X509V3_set_ctx.html" => [ "doc/man3/X509V3_set_ctx.pod" ], + "doc/html/man3/X509_ACERT_add1_attr.html" => [ + "doc/man3/X509_ACERT_add1_attr.pod" + ], + "doc/html/man3/X509_ACERT_add_attr_nconf.html" => [ + "doc/man3/X509_ACERT_add_attr_nconf.pod" + ], + "doc/html/man3/X509_ACERT_get0_holder_baseCertId.html" => [ + "doc/man3/X509_ACERT_get0_holder_baseCertId.pod" + ], + "doc/html/man3/X509_ACERT_get_attr.html" => [ + "doc/man3/X509_ACERT_get_attr.pod" + ], + "doc/html/man3/X509_ACERT_print_ex.html" => [ + "doc/man3/X509_ACERT_print_ex.pod" + ], "doc/html/man3/X509_ALGOR_dup.html" => [ "doc/man3/X509_ALGOR_dup.pod" ], @@ -3804,6 +4383,9 @@ our %unified_info = ( "doc/html/man3/X509_SIG_get0.html" => [ "doc/man3/X509_SIG_get0.pod" ], + "doc/html/man3/X509_STORE_CTX_get_by_subject.html" => [ + "doc/man3/X509_STORE_CTX_get_by_subject.pod" + ], "doc/html/man3/X509_STORE_CTX_get_error.html" => [ "doc/man3/X509_STORE_CTX_get_error.pod" ], @@ -3870,6 +4452,9 @@ our %unified_info = ( "doc/html/man3/X509_get0_uids.html" => [ "doc/man3/X509_get0_uids.pod" ], + "doc/html/man3/X509_get_default_cert_file.html" => [ + "doc/man3/X509_get_default_cert_file.pod" + ], "doc/html/man3/X509_get_extension_flags.html" => [ "doc/man3/X509_get_extension_flags.pod" ], @@ -3993,9 +4578,15 @@ our %unified_info = ( "doc/html/man7/EVP_CIPHER-SM4.html" => [ "doc/man7/EVP_CIPHER-SM4.pod" ], + "doc/html/man7/EVP_KDF-ARGON2.html" => [ + "doc/man7/EVP_KDF-ARGON2.pod" + ], "doc/html/man7/EVP_KDF-HKDF.html" => [ "doc/man7/EVP_KDF-HKDF.pod" ], + "doc/html/man7/EVP_KDF-HMAC-DRBG.html" => [ + "doc/man7/EVP_KDF-HMAC-DRBG.pod" + ], "doc/html/man7/EVP_KDF-KB.html" => [ "doc/man7/EVP_KDF-KB.pod" ], @@ -4011,6 +4602,9 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-PKCS12KDF.html" => [ "doc/man7/EVP_KDF-PKCS12KDF.pod" ], + "doc/html/man7/EVP_KDF-PVKKDF.html" => [ + "doc/man7/EVP_KDF-PVKKDF.pod" + ], "doc/html/man7/EVP_KDF-SCRYPT.html" => [ "doc/man7/EVP_KDF-SCRYPT.pod" ], @@ -4035,9 +4629,18 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-X963.html" => [ "doc/man7/EVP_KDF-X963.pod" ], + "doc/html/man7/EVP_KEM-EC.html" => [ + "doc/man7/EVP_KEM-EC.pod" + ], + "doc/html/man7/EVP_KEM-ML-KEM.html" => [ + "doc/man7/EVP_KEM-ML-KEM.pod" + ], "doc/html/man7/EVP_KEM-RSA.html" => [ "doc/man7/EVP_KEM-RSA.pod" ], + "doc/html/man7/EVP_KEM-X25519.html" => [ + "doc/man7/EVP_KEM-X25519.pod" + ], "doc/html/man7/EVP_KEYEXCH-DH.html" => [ "doc/man7/EVP_KEYEXCH-DH.pod" ], @@ -4071,6 +4674,9 @@ our %unified_info = ( "doc/html/man7/EVP_MD-BLAKE2.html" => [ "doc/man7/EVP_MD-BLAKE2.pod" ], + "doc/html/man7/EVP_MD-KECCAK.html" => [ + "doc/man7/EVP_MD-KECCAK.pod" + ], "doc/html/man7/EVP_MD-MD2.html" => [ "doc/man7/EVP_MD-MD2.pod" ], @@ -4128,15 +4734,27 @@ our %unified_info = ( "doc/html/man7/EVP_PKEY-HMAC.html" => [ "doc/man7/EVP_PKEY-HMAC.pod" ], + "doc/html/man7/EVP_PKEY-ML-DSA.html" => [ + "doc/man7/EVP_PKEY-ML-DSA.pod" + ], + "doc/html/man7/EVP_PKEY-ML-KEM.html" => [ + "doc/man7/EVP_PKEY-ML-KEM.pod" + ], "doc/html/man7/EVP_PKEY-RSA.html" => [ "doc/man7/EVP_PKEY-RSA.pod" ], + "doc/html/man7/EVP_PKEY-SLH-DSA.html" => [ + "doc/man7/EVP_PKEY-SLH-DSA.pod" + ], "doc/html/man7/EVP_PKEY-SM2.html" => [ "doc/man7/EVP_PKEY-SM2.pod" ], "doc/html/man7/EVP_PKEY-X25519.html" => [ "doc/man7/EVP_PKEY-X25519.pod" ], + "doc/html/man7/EVP_RAND-CRNG-TEST.html" => [ + "doc/man7/EVP_RAND-CRNG-TEST.pod" + ], "doc/html/man7/EVP_RAND-CTR-DRBG.html" => [ "doc/man7/EVP_RAND-CTR-DRBG.pod" ], @@ -4146,6 +4764,9 @@ our %unified_info = ( "doc/html/man7/EVP_RAND-HMAC-DRBG.html" => [ "doc/man7/EVP_RAND-HMAC-DRBG.pod" ], + "doc/html/man7/EVP_RAND-JITTER.html" => [ + "doc/man7/EVP_RAND-JITTER.pod" + ], "doc/html/man7/EVP_RAND-SEED-SRC.html" => [ "doc/man7/EVP_RAND-SEED-SRC.pod" ], @@ -4167,9 +4788,15 @@ our %unified_info = ( "doc/html/man7/EVP_SIGNATURE-HMAC.html" => [ "doc/man7/EVP_SIGNATURE-HMAC.pod" ], + "doc/html/man7/EVP_SIGNATURE-ML-DSA.html" => [ + "doc/man7/EVP_SIGNATURE-ML-DSA.pod" + ], "doc/html/man7/EVP_SIGNATURE-RSA.html" => [ "doc/man7/EVP_SIGNATURE-RSA.pod" ], + "doc/html/man7/EVP_SIGNATURE-SLH-DSA.html" => [ + "doc/man7/EVP_SIGNATURE-SLH-DSA.pod" + ], "doc/html/man7/OSSL_PROVIDER-FIPS.html" => [ "doc/man7/OSSL_PROVIDER-FIPS.pod" ], @@ -4185,6 +4812,9 @@ our %unified_info = ( "doc/html/man7/OSSL_PROVIDER-null.html" => [ "doc/man7/OSSL_PROVIDER-null.pod" ], + "doc/html/man7/OSSL_STORE-winstore.html" => [ + "doc/man7/OSSL_STORE-winstore.pod" + ], "doc/html/man7/RAND.html" => [ "doc/man7/RAND.pod" ], @@ -4197,9 +4827,6 @@ our %unified_info = ( "doc/html/man7/bio.html" => [ "doc/man7/bio.pod" ], - "doc/html/man7/crypto.html" => [ - "doc/man7/crypto.pod" - ], "doc/html/man7/ct.html" => [ "doc/man7/ct.pod" ], @@ -4230,9 +4857,6 @@ our %unified_info = ( "doc/html/man7/life_cycle-rand.html" => [ "doc/man7/life_cycle-rand.pod" ], - "doc/html/man7/migration_guide.html" => [ - "doc/man7/migration_guide.pod" - ], "doc/html/man7/openssl-core.h.html" => [ "doc/man7/openssl-core.h.pod" ], @@ -4248,12 +4872,66 @@ our %unified_info = ( "doc/html/man7/openssl-glossary.html" => [ "doc/man7/openssl-glossary.pod" ], + "doc/html/man7/openssl-qlog.html" => [ + "doc/man7/openssl-qlog.pod" + ], + "doc/html/man7/openssl-quic-concurrency.html" => [ + "doc/man7/openssl-quic-concurrency.pod" + ], + "doc/html/man7/openssl-quic.html" => [ + "doc/man7/openssl-quic.pod" + ], "doc/html/man7/openssl-threads.html" => [ "doc/man7/openssl-threads.pod" ], "doc/html/man7/openssl_user_macros.html" => [ "doc/man7/openssl_user_macros.pod" ], + "doc/html/man7/ossl-guide-introduction.html" => [ + "doc/man7/ossl-guide-introduction.pod" + ], + "doc/html/man7/ossl-guide-libcrypto-introduction.html" => [ + "doc/man7/ossl-guide-libcrypto-introduction.pod" + ], + "doc/html/man7/ossl-guide-libraries-introduction.html" => [ + "doc/man7/ossl-guide-libraries-introduction.pod" + ], + "doc/html/man7/ossl-guide-libssl-introduction.html" => [ + "doc/man7/ossl-guide-libssl-introduction.pod" + ], + "doc/html/man7/ossl-guide-migration.html" => [ + "doc/man7/ossl-guide-migration.pod" + ], + "doc/html/man7/ossl-guide-quic-client-block.html" => [ + "doc/man7/ossl-guide-quic-client-block.pod" + ], + "doc/html/man7/ossl-guide-quic-client-non-block.html" => [ + "doc/man7/ossl-guide-quic-client-non-block.pod" + ], + "doc/html/man7/ossl-guide-quic-introduction.html" => [ + "doc/man7/ossl-guide-quic-introduction.pod" + ], + "doc/html/man7/ossl-guide-quic-multi-stream.html" => [ + "doc/man7/ossl-guide-quic-multi-stream.pod" + ], + "doc/html/man7/ossl-guide-quic-server-block.html" => [ + "doc/man7/ossl-guide-quic-server-block.pod" + ], + "doc/html/man7/ossl-guide-quic-server-non-block.html" => [ + "doc/man7/ossl-guide-quic-server-non-block.pod" + ], + "doc/html/man7/ossl-guide-tls-client-block.html" => [ + "doc/man7/ossl-guide-tls-client-block.pod" + ], + "doc/html/man7/ossl-guide-tls-client-non-block.html" => [ + "doc/man7/ossl-guide-tls-client-non-block.pod" + ], + "doc/html/man7/ossl-guide-tls-introduction.html" => [ + "doc/man7/ossl-guide-tls-introduction.pod" + ], + "doc/html/man7/ossl-guide-tls-server-block.html" => [ + "doc/man7/ossl-guide-tls-server-block.pod" + ], "doc/html/man7/ossl_store-file.html" => [ "doc/man7/ossl_store-file.pod" ], @@ -4308,6 +4986,9 @@ our %unified_info = ( "doc/html/man7/provider-signature.html" => [ "doc/man7/provider-signature.pod" ], + "doc/html/man7/provider-skeymgmt.html" => [ + "doc/man7/provider-skeymgmt.pod" + ], "doc/html/man7/provider-storemgmt.html" => [ "doc/man7/provider-storemgmt.pod" ], @@ -4317,9 +4998,6 @@ our %unified_info = ( "doc/html/man7/proxy-certificates.html" => [ "doc/man7/proxy-certificates.pod" ], - "doc/html/man7/ssl.html" => [ - "doc/man7/ssl.pod" - ], "doc/html/man7/x509.html" => [ "doc/man7/x509.pod" ], @@ -4467,6 +5145,9 @@ our %unified_info = ( "doc/man/man1/openssl-sess_id.1" => [ "doc/man1/openssl-sess_id.pod" ], + "doc/man/man1/openssl-skeyutl.1" => [ + "doc/man1/openssl-skeyutl.pod" + ], "doc/man/man1/openssl-smime.1" => [ "doc/man1/openssl-smime.pod" ], @@ -4608,6 +5289,9 @@ our %unified_info = ( "doc/man/man3/BIO_get_ex_new_index.3" => [ "doc/man3/BIO_get_ex_new_index.pod" ], + "doc/man/man3/BIO_get_rpoll_descriptor.3" => [ + "doc/man3/BIO_get_rpoll_descriptor.pod" + ], "doc/man/man3/BIO_meth_new.3" => [ "doc/man3/BIO_meth_new.pod" ], @@ -4644,6 +5328,9 @@ our %unified_info = ( "doc/man/man3/BIO_s_datagram.3" => [ "doc/man3/BIO_s_datagram.pod" ], + "doc/man/man3/BIO_s_dgram_pair.3" => [ + "doc/man3/BIO_s_dgram_pair.pod" + ], "doc/man/man3/BIO_s_fd.3" => [ "doc/man3/BIO_s_fd.pod" ], @@ -4659,6 +5346,9 @@ our %unified_info = ( "doc/man/man3/BIO_s_socket.3" => [ "doc/man3/BIO_s_socket.pod" ], + "doc/man/man3/BIO_sendmmsg.3" => [ + "doc/man3/BIO_sendmmsg.pod" + ], "doc/man/man3/BIO_set_callback.3" => [ "doc/man3/BIO_set_callback.pod" ], @@ -4731,6 +5421,9 @@ our %unified_info = ( "doc/man/man3/BUF_MEM_new.3" => [ "doc/man3/BUF_MEM_new.pod" ], + "doc/man/man3/CMAC_CTX.3" => [ + "doc/man3/CMAC_CTX.pod" + ], "doc/man/man3/CMS_EncryptedData_decrypt.3" => [ "doc/man3/CMS_EncryptedData_decrypt.pod" ], @@ -4797,6 +5490,9 @@ our %unified_info = ( "doc/man/man3/CMS_verify_receipt.3" => [ "doc/man3/CMS_verify_receipt.pod" ], + "doc/man/man3/COMP_CTX_new.3" => [ + "doc/man3/COMP_CTX_new.pod" + ], "doc/man/man3/CONF_modules_free.3" => [ "doc/man3/CONF_modules_free.pod" ], @@ -4896,6 +5592,12 @@ our %unified_info = ( "doc/man/man3/DTLS_set_timer_cb.3" => [ "doc/man3/DTLS_set_timer_cb.pod" ], + "doc/man/man3/DTLSv1_get_timeout.3" => [ + "doc/man3/DTLSv1_get_timeout.pod" + ], + "doc/man/man3/DTLSv1_handle_timeout.3" => [ + "doc/man3/DTLSv1_handle_timeout.pod" + ], "doc/man/man3/DTLSv1_listen.3" => [ "doc/man3/DTLSv1_listen.pod" ], @@ -5034,6 +5736,9 @@ our %unified_info = ( "doc/man/man3/EVP_PKEY_CTX_get0_pkey.3" => [ "doc/man3/EVP_PKEY_CTX_get0_pkey.pod" ], + "doc/man/man3/EVP_PKEY_CTX_get_algor.3" => [ + "doc/man3/EVP_PKEY_CTX_get_algor.pod" + ], "doc/man/man3/EVP_PKEY_CTX_new.3" => [ "doc/man3/EVP_PKEY_CTX_new.pod" ], @@ -5151,6 +5856,12 @@ our %unified_info = ( "doc/man/man3/EVP_SIGNATURE.3" => [ "doc/man3/EVP_SIGNATURE.pod" ], + "doc/man/man3/EVP_SKEY.3" => [ + "doc/man3/EVP_SKEY.pod" + ], + "doc/man/man3/EVP_SKEYMGMT.3" => [ + "doc/man3/EVP_SKEYMGMT.pod" + ], "doc/man/man3/EVP_SealInit.3" => [ "doc/man3/EVP_SealInit.pod" ], @@ -5238,6 +5949,9 @@ our %unified_info = ( "doc/man/man3/EVP_whirlpool.3" => [ "doc/man3/EVP_whirlpool.pod" ], + "doc/man/man3/GENERAL_NAME.3" => [ + "doc/man3/GENERAL_NAME.pod" + ], "doc/man/man3/HMAC.3" => [ "doc/man3/HMAC.pod" ], @@ -5310,9 +6024,15 @@ our %unified_info = ( "doc/man/man3/OPENSSL_load_builtin_modules.3" => [ "doc/man3/OPENSSL_load_builtin_modules.pod" ], + "doc/man/man3/OPENSSL_load_u16_le.3" => [ + "doc/man3/OPENSSL_load_u16_le.pod" + ], "doc/man/man3/OPENSSL_malloc.3" => [ "doc/man3/OPENSSL_malloc.pod" ], + "doc/man/man3/OPENSSL_riscvcap.3" => [ + "doc/man3/OPENSSL_riscvcap.pod" + ], "doc/man/man3/OPENSSL_s390xcap.3" => [ "doc/man3/OPENSSL_s390xcap.pod" ], @@ -5328,12 +6048,18 @@ our %unified_info = ( "doc/man/man3/OSSL_CALLBACK.3" => [ "doc/man3/OSSL_CALLBACK.pod" ], + "doc/man/man3/OSSL_CMP_ATAV_set0.3" => [ + "doc/man3/OSSL_CMP_ATAV_set0.pod" + ], "doc/man/man3/OSSL_CMP_CTX_new.3" => [ "doc/man3/OSSL_CMP_CTX_new.pod" ], "doc/man/man3/OSSL_CMP_HDR_get0_transactionID.3" => [ "doc/man3/OSSL_CMP_HDR_get0_transactionID.pod" ], + "doc/man/man3/OSSL_CMP_ITAV_new_caCerts.3" => [ + "doc/man3/OSSL_CMP_ITAV_new_caCerts.pod" + ], "doc/man/man3/OSSL_CMP_ITAV_set0.3" => [ "doc/man3/OSSL_CMP_ITAV_set0.pod" ], @@ -5403,9 +6129,18 @@ our %unified_info = ( "doc/man/man3/OSSL_ENCODER_to_bio.3" => [ "doc/man3/OSSL_ENCODER_to_bio.pod" ], + "doc/man/man3/OSSL_ERR_STATE_save.3" => [ + "doc/man3/OSSL_ERR_STATE_save.pod" + ], "doc/man/man3/OSSL_ESS_check_signing_certs.3" => [ "doc/man3/OSSL_ESS_check_signing_certs.pod" ], + "doc/man/man3/OSSL_GENERAL_NAMES_print.3" => [ + "doc/man3/OSSL_GENERAL_NAMES_print.pod" + ], + "doc/man/man3/OSSL_HPKE_CTX_new.3" => [ + "doc/man3/OSSL_HPKE_CTX_new.pod" + ], "doc/man/man3/OSSL_HTTP_REQ_CTX.3" => [ "doc/man3/OSSL_HTTP_REQ_CTX.pod" ], @@ -5415,12 +6150,24 @@ our %unified_info = ( "doc/man/man3/OSSL_HTTP_transfer.3" => [ "doc/man3/OSSL_HTTP_transfer.pod" ], + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX.3" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX.pod" + ], + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX_print.3" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX_print.pod" + ], + "doc/man/man3/OSSL_INDICATOR_set_callback.3" => [ + "doc/man3/OSSL_INDICATOR_set_callback.pod" + ], "doc/man/man3/OSSL_ITEM.3" => [ "doc/man3/OSSL_ITEM.pod" ], "doc/man/man3/OSSL_LIB_CTX.3" => [ "doc/man3/OSSL_LIB_CTX.pod" ], + "doc/man/man3/OSSL_LIB_CTX_set_conf_diagnostics.3" => [ + "doc/man3/OSSL_LIB_CTX_set_conf_diagnostics.pod" + ], "doc/man/man3/OSSL_PARAM.3" => [ "doc/man3/OSSL_PARAM.pod" ], @@ -5436,9 +6183,15 @@ our %unified_info = ( "doc/man/man3/OSSL_PARAM_int.3" => [ "doc/man3/OSSL_PARAM_int.pod" ], + "doc/man/man3/OSSL_PARAM_print_to_bio.3" => [ + "doc/man3/OSSL_PARAM_print_to_bio.pod" + ], "doc/man/man3/OSSL_PROVIDER.3" => [ "doc/man3/OSSL_PROVIDER.pod" ], + "doc/man/man3/OSSL_QUIC_client_method.3" => [ + "doc/man3/OSSL_QUIC_client_method.pod" + ], "doc/man/man3/OSSL_SELF_TEST_new.3" => [ "doc/man3/OSSL_SELF_TEST_new.pod" ], @@ -5463,6 +6216,9 @@ our %unified_info = ( "doc/man/man3/OSSL_STORE_open.3" => [ "doc/man3/OSSL_STORE_open.pod" ], + "doc/man/man3/OSSL_sleep.3" => [ + "doc/man3/OSSL_sleep.pod" + ], "doc/man/man3/OSSL_trace_enabled.3" => [ "doc/man3/OSSL_trace_enabled.pod" ], @@ -5478,6 +6234,9 @@ our %unified_info = ( "doc/man/man3/OpenSSL_version.3" => [ "doc/man3/OpenSSL_version.pod" ], + "doc/man/man3/PBMAC1_get1_pbkdf2_param.3" => [ + "doc/man3/PBMAC1_get1_pbkdf2_param.pod" + ], "doc/man/man3/PEM_X509_INFO_read_bio_ex.3" => [ "doc/man3/PEM_X509_INFO_read_bio_ex.pod" ], @@ -5514,6 +6273,9 @@ our %unified_info = ( "doc/man/man3/PKCS12_SAFEBAG_get1_cert.3" => [ "doc/man3/PKCS12_SAFEBAG_get1_cert.pod" ], + "doc/man/man3/PKCS12_SAFEBAG_set0_attrs.3" => [ + "doc/man3/PKCS12_SAFEBAG_set0_attrs.pod" + ], "doc/man/man3/PKCS12_add1_attr_by_NID.3" => [ "doc/man3/PKCS12_add1_attr_by_NID.pod" ], @@ -5787,6 +6549,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set0_CA_list.3" => [ "doc/man3/SSL_CTX_set0_CA_list.pod" ], + "doc/man/man3/SSL_CTX_set1_cert_comp_preference.3" => [ + "doc/man3/SSL_CTX_set1_cert_comp_preference.pod" + ], "doc/man/man3/SSL_CTX_set1_curves.3" => [ "doc/man3/SSL_CTX_set1_curves.pod" ], @@ -5826,6 +6591,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_default_passwd_cb.3" => [ "doc/man3/SSL_CTX_set_default_passwd_cb.pod" ], + "doc/man/man3/SSL_CTX_set_domain_flags.3" => [ + "doc/man3/SSL_CTX_set_domain_flags.pod" + ], "doc/man/man3/SSL_CTX_set_generate_session_id.3" => [ "doc/man3/SSL_CTX_set_generate_session_id.pod" ], @@ -5847,6 +6615,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_msg_callback.3" => [ "doc/man3/SSL_CTX_set_msg_callback.pod" ], + "doc/man/man3/SSL_CTX_set_new_pending_conn_cb.3" => [ + "doc/man3/SSL_CTX_set_new_pending_conn_cb.pod" + ], "doc/man/man3/SSL_CTX_set_num_tickets.3" => [ "doc/man3/SSL_CTX_set_num_tickets.pod" ], @@ -5961,6 +6732,9 @@ our %unified_info = ( "doc/man/man3/SSL_accept.3" => [ "doc/man3/SSL_accept.pod" ], + "doc/man/man3/SSL_accept_stream.3" => [ + "doc/man3/SSL_accept_stream.pod" + ], "doc/man/man3/SSL_alert_type_string.3" => [ "doc/man3/SSL_alert_type_string.pod" ], @@ -5988,9 +6762,21 @@ our %unified_info = ( "doc/man/man3/SSL_free.3" => [ "doc/man3/SSL_free.pod" ], + "doc/man/man3/SSL_get0_connection.3" => [ + "doc/man3/SSL_get0_connection.pod" + ], + "doc/man/man3/SSL_get0_group_name.3" => [ + "doc/man3/SSL_get0_group_name.pod" + ], + "doc/man/man3/SSL_get0_peer_rpk.3" => [ + "doc/man3/SSL_get0_peer_rpk.pod" + ], "doc/man/man3/SSL_get0_peer_scts.3" => [ "doc/man3/SSL_get0_peer_scts.pod" ], + "doc/man/man3/SSL_get1_builtin_sigalgs.3" => [ + "doc/man3/SSL_get1_builtin_sigalgs.pod" + ], "doc/man/man3/SSL_get_SSL_CTX.3" => [ "doc/man3/SSL_get_SSL_CTX.pod" ], @@ -6006,6 +6792,9 @@ our %unified_info = ( "doc/man/man3/SSL_get_client_random.3" => [ "doc/man3/SSL_get_client_random.pod" ], + "doc/man/man3/SSL_get_conn_close_info.3" => [ + "doc/man3/SSL_get_conn_close_info.pod" + ], "doc/man/man3/SSL_get_current_cipher.3" => [ "doc/man3/SSL_get_current_cipher.pod" ], @@ -6015,12 +6804,18 @@ our %unified_info = ( "doc/man/man3/SSL_get_error.3" => [ "doc/man3/SSL_get_error.pod" ], + "doc/man/man3/SSL_get_event_timeout.3" => [ + "doc/man3/SSL_get_event_timeout.pod" + ], "doc/man/man3/SSL_get_extms_support.3" => [ "doc/man3/SSL_get_extms_support.pod" ], "doc/man/man3/SSL_get_fd.3" => [ "doc/man3/SSL_get_fd.pod" ], + "doc/man/man3/SSL_get_handshake_rtt.3" => [ + "doc/man3/SSL_get_handshake_rtt.pod" + ], "doc/man/man3/SSL_get_peer_cert_chain.3" => [ "doc/man3/SSL_get_peer_cert_chain.pod" ], @@ -6039,12 +6834,24 @@ our %unified_info = ( "doc/man/man3/SSL_get_rbio.3" => [ "doc/man3/SSL_get_rbio.pod" ], + "doc/man/man3/SSL_get_rpoll_descriptor.3" => [ + "doc/man3/SSL_get_rpoll_descriptor.pod" + ], "doc/man/man3/SSL_get_session.3" => [ "doc/man3/SSL_get_session.pod" ], "doc/man/man3/SSL_get_shared_sigalgs.3" => [ "doc/man3/SSL_get_shared_sigalgs.pod" ], + "doc/man/man3/SSL_get_stream_id.3" => [ + "doc/man3/SSL_get_stream_id.pod" + ], + "doc/man/man3/SSL_get_stream_read_state.3" => [ + "doc/man3/SSL_get_stream_read_state.pod" + ], + "doc/man/man3/SSL_get_value_uint.3" => [ + "doc/man3/SSL_get_value_uint.pod" + ], "doc/man/man3/SSL_get_verify_result.3" => [ "doc/man3/SSL_get_verify_result.pod" ], @@ -6054,9 +6861,15 @@ our %unified_info = ( "doc/man/man3/SSL_group_to_name.3" => [ "doc/man3/SSL_group_to_name.pod" ], + "doc/man/man3/SSL_handle_events.3" => [ + "doc/man3/SSL_handle_events.pod" + ], "doc/man/man3/SSL_in_init.3" => [ "doc/man3/SSL_in_init.pod" ], + "doc/man/man3/SSL_inject_net_dgram.3" => [ + "doc/man3/SSL_inject_net_dgram.pod" + ], "doc/man/man3/SSL_key_update.3" => [ "doc/man3/SSL_key_update.pod" ], @@ -6069,9 +6882,21 @@ our %unified_info = ( "doc/man/man3/SSL_new.3" => [ "doc/man3/SSL_new.pod" ], + "doc/man/man3/SSL_new_domain.3" => [ + "doc/man3/SSL_new_domain.pod" + ], + "doc/man/man3/SSL_new_listener.3" => [ + "doc/man3/SSL_new_listener.pod" + ], + "doc/man/man3/SSL_new_stream.3" => [ + "doc/man3/SSL_new_stream.pod" + ], "doc/man/man3/SSL_pending.3" => [ "doc/man3/SSL_pending.pod" ], + "doc/man/man3/SSL_poll.3" => [ + "doc/man3/SSL_poll.pod" + ], "doc/man/man3/SSL_read.3" => [ "doc/man3/SSL_read.pod" ], @@ -6087,24 +6912,45 @@ our %unified_info = ( "doc/man/man3/SSL_set1_host.3" => [ "doc/man3/SSL_set1_host.pod" ], + "doc/man/man3/SSL_set1_initial_peer_addr.3" => [ + "doc/man3/SSL_set1_initial_peer_addr.pod" + ], + "doc/man/man3/SSL_set1_server_cert_type.3" => [ + "doc/man3/SSL_set1_server_cert_type.pod" + ], "doc/man/man3/SSL_set_async_callback.3" => [ "doc/man3/SSL_set_async_callback.pod" ], "doc/man/man3/SSL_set_bio.3" => [ "doc/man3/SSL_set_bio.pod" ], + "doc/man/man3/SSL_set_blocking_mode.3" => [ + "doc/man3/SSL_set_blocking_mode.pod" + ], "doc/man/man3/SSL_set_connect_state.3" => [ "doc/man3/SSL_set_connect_state.pod" ], + "doc/man/man3/SSL_set_default_stream_mode.3" => [ + "doc/man3/SSL_set_default_stream_mode.pod" + ], "doc/man/man3/SSL_set_fd.3" => [ "doc/man3/SSL_set_fd.pod" ], + "doc/man/man3/SSL_set_incoming_stream_policy.3" => [ + "doc/man3/SSL_set_incoming_stream_policy.pod" + ], + "doc/man/man3/SSL_set_quic_tls_cbs.3" => [ + "doc/man3/SSL_set_quic_tls_cbs.pod" + ], "doc/man/man3/SSL_set_retry_verify.3" => [ "doc/man3/SSL_set_retry_verify.pod" ], "doc/man/man3/SSL_set_session.3" => [ "doc/man3/SSL_set_session.pod" ], + "doc/man/man3/SSL_set_session_secret_cb.3" => [ + "doc/man3/SSL_set_session_secret_cb.pod" + ], "doc/man/man3/SSL_set_shutdown.3" => [ "doc/man3/SSL_set_shutdown.pod" ], @@ -6117,6 +6963,12 @@ our %unified_info = ( "doc/man/man3/SSL_state_string.3" => [ "doc/man3/SSL_state_string.pod" ], + "doc/man/man3/SSL_stream_conclude.3" => [ + "doc/man3/SSL_stream_conclude.pod" + ], + "doc/man/man3/SSL_stream_reset.3" => [ + "doc/man3/SSL_stream_reset.pod" + ], "doc/man/man3/SSL_want.3" => [ "doc/man3/SSL_want.pod" ], @@ -6126,8 +6978,8 @@ our %unified_info = ( "doc/man/man3/TS_RESP_CTX_new.3" => [ "doc/man3/TS_RESP_CTX_new.pod" ], - "doc/man/man3/TS_VERIFY_CTX_set_certs.3" => [ - "doc/man3/TS_VERIFY_CTX_set_certs.pod" + "doc/man/man3/TS_VERIFY_CTX.3" => [ + "doc/man3/TS_VERIFY_CTX.pod" ], "doc/man/man3/UI_STRING.3" => [ "doc/man3/UI_STRING.pod" @@ -6147,6 +6999,21 @@ our %unified_info = ( "doc/man/man3/X509V3_set_ctx.3" => [ "doc/man3/X509V3_set_ctx.pod" ], + "doc/man/man3/X509_ACERT_add1_attr.3" => [ + "doc/man3/X509_ACERT_add1_attr.pod" + ], + "doc/man/man3/X509_ACERT_add_attr_nconf.3" => [ + "doc/man3/X509_ACERT_add_attr_nconf.pod" + ], + "doc/man/man3/X509_ACERT_get0_holder_baseCertId.3" => [ + "doc/man3/X509_ACERT_get0_holder_baseCertId.pod" + ], + "doc/man/man3/X509_ACERT_get_attr.3" => [ + "doc/man3/X509_ACERT_get_attr.pod" + ], + "doc/man/man3/X509_ACERT_print_ex.3" => [ + "doc/man3/X509_ACERT_print_ex.pod" + ], "doc/man/man3/X509_ALGOR_dup.3" => [ "doc/man3/X509_ALGOR_dup.pod" ], @@ -6195,6 +7062,9 @@ our %unified_info = ( "doc/man/man3/X509_SIG_get0.3" => [ "doc/man3/X509_SIG_get0.pod" ], + "doc/man/man3/X509_STORE_CTX_get_by_subject.3" => [ + "doc/man3/X509_STORE_CTX_get_by_subject.pod" + ], "doc/man/man3/X509_STORE_CTX_get_error.3" => [ "doc/man3/X509_STORE_CTX_get_error.pod" ], @@ -6261,6 +7131,9 @@ our %unified_info = ( "doc/man/man3/X509_get0_uids.3" => [ "doc/man3/X509_get0_uids.pod" ], + "doc/man/man3/X509_get_default_cert_file.3" => [ + "doc/man3/X509_get_default_cert_file.pod" + ], "doc/man/man3/X509_get_extension_flags.3" => [ "doc/man3/X509_get_extension_flags.pod" ], @@ -6384,9 +7257,15 @@ our %unified_info = ( "doc/man/man7/EVP_CIPHER-SM4.7" => [ "doc/man7/EVP_CIPHER-SM4.pod" ], + "doc/man/man7/EVP_KDF-ARGON2.7" => [ + "doc/man7/EVP_KDF-ARGON2.pod" + ], "doc/man/man7/EVP_KDF-HKDF.7" => [ "doc/man7/EVP_KDF-HKDF.pod" ], + "doc/man/man7/EVP_KDF-HMAC-DRBG.7" => [ + "doc/man7/EVP_KDF-HMAC-DRBG.pod" + ], "doc/man/man7/EVP_KDF-KB.7" => [ "doc/man7/EVP_KDF-KB.pod" ], @@ -6402,6 +7281,9 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-PKCS12KDF.7" => [ "doc/man7/EVP_KDF-PKCS12KDF.pod" ], + "doc/man/man7/EVP_KDF-PVKKDF.7" => [ + "doc/man7/EVP_KDF-PVKKDF.pod" + ], "doc/man/man7/EVP_KDF-SCRYPT.7" => [ "doc/man7/EVP_KDF-SCRYPT.pod" ], @@ -6426,9 +7308,18 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-X963.7" => [ "doc/man7/EVP_KDF-X963.pod" ], + "doc/man/man7/EVP_KEM-EC.7" => [ + "doc/man7/EVP_KEM-EC.pod" + ], + "doc/man/man7/EVP_KEM-ML-KEM.7" => [ + "doc/man7/EVP_KEM-ML-KEM.pod" + ], "doc/man/man7/EVP_KEM-RSA.7" => [ "doc/man7/EVP_KEM-RSA.pod" ], + "doc/man/man7/EVP_KEM-X25519.7" => [ + "doc/man7/EVP_KEM-X25519.pod" + ], "doc/man/man7/EVP_KEYEXCH-DH.7" => [ "doc/man7/EVP_KEYEXCH-DH.pod" ], @@ -6462,6 +7353,9 @@ our %unified_info = ( "doc/man/man7/EVP_MD-BLAKE2.7" => [ "doc/man7/EVP_MD-BLAKE2.pod" ], + "doc/man/man7/EVP_MD-KECCAK.7" => [ + "doc/man7/EVP_MD-KECCAK.pod" + ], "doc/man/man7/EVP_MD-MD2.7" => [ "doc/man7/EVP_MD-MD2.pod" ], @@ -6519,15 +7413,27 @@ our %unified_info = ( "doc/man/man7/EVP_PKEY-HMAC.7" => [ "doc/man7/EVP_PKEY-HMAC.pod" ], + "doc/man/man7/EVP_PKEY-ML-DSA.7" => [ + "doc/man7/EVP_PKEY-ML-DSA.pod" + ], + "doc/man/man7/EVP_PKEY-ML-KEM.7" => [ + "doc/man7/EVP_PKEY-ML-KEM.pod" + ], "doc/man/man7/EVP_PKEY-RSA.7" => [ "doc/man7/EVP_PKEY-RSA.pod" ], + "doc/man/man7/EVP_PKEY-SLH-DSA.7" => [ + "doc/man7/EVP_PKEY-SLH-DSA.pod" + ], "doc/man/man7/EVP_PKEY-SM2.7" => [ "doc/man7/EVP_PKEY-SM2.pod" ], "doc/man/man7/EVP_PKEY-X25519.7" => [ "doc/man7/EVP_PKEY-X25519.pod" ], + "doc/man/man7/EVP_RAND-CRNG-TEST.7" => [ + "doc/man7/EVP_RAND-CRNG-TEST.pod" + ], "doc/man/man7/EVP_RAND-CTR-DRBG.7" => [ "doc/man7/EVP_RAND-CTR-DRBG.pod" ], @@ -6537,6 +7443,9 @@ our %unified_info = ( "doc/man/man7/EVP_RAND-HMAC-DRBG.7" => [ "doc/man7/EVP_RAND-HMAC-DRBG.pod" ], + "doc/man/man7/EVP_RAND-JITTER.7" => [ + "doc/man7/EVP_RAND-JITTER.pod" + ], "doc/man/man7/EVP_RAND-SEED-SRC.7" => [ "doc/man7/EVP_RAND-SEED-SRC.pod" ], @@ -6558,9 +7467,15 @@ our %unified_info = ( "doc/man/man7/EVP_SIGNATURE-HMAC.7" => [ "doc/man7/EVP_SIGNATURE-HMAC.pod" ], + "doc/man/man7/EVP_SIGNATURE-ML-DSA.7" => [ + "doc/man7/EVP_SIGNATURE-ML-DSA.pod" + ], "doc/man/man7/EVP_SIGNATURE-RSA.7" => [ "doc/man7/EVP_SIGNATURE-RSA.pod" ], + "doc/man/man7/EVP_SIGNATURE-SLH-DSA.7" => [ + "doc/man7/EVP_SIGNATURE-SLH-DSA.pod" + ], "doc/man/man7/OSSL_PROVIDER-FIPS.7" => [ "doc/man7/OSSL_PROVIDER-FIPS.pod" ], @@ -6576,6 +7491,9 @@ our %unified_info = ( "doc/man/man7/OSSL_PROVIDER-null.7" => [ "doc/man7/OSSL_PROVIDER-null.pod" ], + "doc/man/man7/OSSL_STORE-winstore.7" => [ + "doc/man7/OSSL_STORE-winstore.pod" + ], "doc/man/man7/RAND.7" => [ "doc/man7/RAND.pod" ], @@ -6588,9 +7506,6 @@ our %unified_info = ( "doc/man/man7/bio.7" => [ "doc/man7/bio.pod" ], - "doc/man/man7/crypto.7" => [ - "doc/man7/crypto.pod" - ], "doc/man/man7/ct.7" => [ "doc/man7/ct.pod" ], @@ -6621,9 +7536,6 @@ our %unified_info = ( "doc/man/man7/life_cycle-rand.7" => [ "doc/man7/life_cycle-rand.pod" ], - "doc/man/man7/migration_guide.7" => [ - "doc/man7/migration_guide.pod" - ], "doc/man/man7/openssl-core.h.7" => [ "doc/man7/openssl-core.h.pod" ], @@ -6639,12 +7551,66 @@ our %unified_info = ( "doc/man/man7/openssl-glossary.7" => [ "doc/man7/openssl-glossary.pod" ], + "doc/man/man7/openssl-qlog.7" => [ + "doc/man7/openssl-qlog.pod" + ], + "doc/man/man7/openssl-quic-concurrency.7" => [ + "doc/man7/openssl-quic-concurrency.pod" + ], + "doc/man/man7/openssl-quic.7" => [ + "doc/man7/openssl-quic.pod" + ], "doc/man/man7/openssl-threads.7" => [ "doc/man7/openssl-threads.pod" ], "doc/man/man7/openssl_user_macros.7" => [ "doc/man7/openssl_user_macros.pod" ], + "doc/man/man7/ossl-guide-introduction.7" => [ + "doc/man7/ossl-guide-introduction.pod" + ], + "doc/man/man7/ossl-guide-libcrypto-introduction.7" => [ + "doc/man7/ossl-guide-libcrypto-introduction.pod" + ], + "doc/man/man7/ossl-guide-libraries-introduction.7" => [ + "doc/man7/ossl-guide-libraries-introduction.pod" + ], + "doc/man/man7/ossl-guide-libssl-introduction.7" => [ + "doc/man7/ossl-guide-libssl-introduction.pod" + ], + "doc/man/man7/ossl-guide-migration.7" => [ + "doc/man7/ossl-guide-migration.pod" + ], + "doc/man/man7/ossl-guide-quic-client-block.7" => [ + "doc/man7/ossl-guide-quic-client-block.pod" + ], + "doc/man/man7/ossl-guide-quic-client-non-block.7" => [ + "doc/man7/ossl-guide-quic-client-non-block.pod" + ], + "doc/man/man7/ossl-guide-quic-introduction.7" => [ + "doc/man7/ossl-guide-quic-introduction.pod" + ], + "doc/man/man7/ossl-guide-quic-multi-stream.7" => [ + "doc/man7/ossl-guide-quic-multi-stream.pod" + ], + "doc/man/man7/ossl-guide-quic-server-block.7" => [ + "doc/man7/ossl-guide-quic-server-block.pod" + ], + "doc/man/man7/ossl-guide-quic-server-non-block.7" => [ + "doc/man7/ossl-guide-quic-server-non-block.pod" + ], + "doc/man/man7/ossl-guide-tls-client-block.7" => [ + "doc/man7/ossl-guide-tls-client-block.pod" + ], + "doc/man/man7/ossl-guide-tls-client-non-block.7" => [ + "doc/man7/ossl-guide-tls-client-non-block.pod" + ], + "doc/man/man7/ossl-guide-tls-introduction.7" => [ + "doc/man7/ossl-guide-tls-introduction.pod" + ], + "doc/man/man7/ossl-guide-tls-server-block.7" => [ + "doc/man7/ossl-guide-tls-server-block.pod" + ], "doc/man/man7/ossl_store-file.7" => [ "doc/man7/ossl_store-file.pod" ], @@ -6699,6 +7665,9 @@ our %unified_info = ( "doc/man/man7/provider-signature.7" => [ "doc/man7/provider-signature.pod" ], + "doc/man/man7/provider-skeymgmt.7" => [ + "doc/man7/provider-skeymgmt.pod" + ], "doc/man/man7/provider-storemgmt.7" => [ "doc/man7/provider-storemgmt.pod" ], @@ -6708,9 +7677,6 @@ our %unified_info = ( "doc/man/man7/proxy-certificates.7" => [ "doc/man7/proxy-certificates.pod" ], - "doc/man/man7/ssl.7" => [ - "doc/man7/ssl.pod" - ], "doc/man/man7/x509.7" => [ "doc/man7/x509.pod" ], @@ -6890,6 +7856,10 @@ our %unified_info = ( "doc/man1/openssl-sess_id.pod.in", "doc/perlvars.pm" ], + "doc/man1/openssl-skeyutl.pod" => [ + "doc/man1/openssl-skeyutl.pod.in", + "doc/perlvars.pm" + ], "doc/man1/openssl-smime.pod" => [ "doc/man1/openssl-smime.pod.in", "doc/perlvars.pm" @@ -6929,6 +7899,27 @@ our %unified_info = ( "doc/man7/openssl_user_macros.pod" => [ "doc/man7/openssl_user_macros.pod.in" ], + "exporters/OpenSSLConfig.cmake" => [ + "installdata.pm" + ], + "exporters/OpenSSLConfigVersion.cmake" => [ + "exporters/OpenSSLConfig.cmake", + "installdata.pm" + ], + "exporters/libcrypto.pc" => [ + "installdata.pm" + ], + "exporters/libssl.pc" => [ + "installdata.pm" + ], + "exporters/openssl.pc" => [ + "exporters/libcrypto.pc", + "exporters/libssl.pc", + "installdata.pm" + ], + "fuzz/acert-test" => [ + "libcrypto" + ], "fuzz/asn1-test" => [ "libcrypto", "libssl" @@ -6961,17 +7952,85 @@ our %unified_info = ( "fuzz/ct-test" => [ "libcrypto" ], + "fuzz/decoder-test" => [ + "libcrypto" + ], + "fuzz/dtlsclient-test" => [ + "libcrypto", + "libssl" + ], + "fuzz/dtlsserver-test" => [ + "libcrypto", + "libssl" + ], + "fuzz/hashtable-test" => [ + "libcrypto.a" + ], + "fuzz/ml-dsa-test" => [ + "libcrypto.a" + ], + "fuzz/ml-kem-test" => [ + "libcrypto.a" + ], + "fuzz/pem-test" => [ + "libcrypto.a" + ], + "fuzz/provider-test" => [ + "libcrypto" + ], + "fuzz/punycode-test" => [ + "libcrypto.a" + ], + "fuzz/quic-client-test" => [ + "libcrypto.a", + "libssl.a" + ], + "fuzz/quic-lcidm-test" => [ + "libcrypto.a", + "libssl.a" + ], + "fuzz/quic-rcidm-test" => [ + "libcrypto.a", + "libssl.a" + ], + "fuzz/quic-server-test" => [ + "libcrypto.a", + "libssl.a" + ], + "fuzz/quic-srtm-test" => [ + "libcrypto.a", + "libssl.a" + ], "fuzz/server-test" => [ "libcrypto", "libssl" ], + "fuzz/slh-dsa-test" => [ + "libcrypto.a" + ], + "fuzz/smime-test" => [ + "libcrypto", + "libssl" + ], + "fuzz/v3name-test" => [ + "libcrypto.a" + ], "fuzz/x509-test" => [ "libcrypto" ], + "include/internal/param_names.h" => [ + "util/perl|OpenSSL/paramnames.pm" + ], + "include/openssl/core_names.h" => [ + "util/perl|OpenSSL/paramnames.pm" + ], "libcrypto.ld" => [ "configdata.pm", "util/perl/OpenSSL/Ordinals.pm" ], + "libcrypto.pc" => [ + "builddata.pm" + ], "libssl" => [ "libcrypto" ], @@ -6979,6 +8038,14 @@ our %unified_info = ( "configdata.pm", "util/perl/OpenSSL/Ordinals.pm" ], + "libssl.pc" => [ + "builddata.pm" + ], + "openssl.pc" => [ + "builddata.pm", + "libcrypto.pc", + "libssl.pc" + ], "providers/common/der/der_digests_gen.c" => [ "providers/common/der/DIGESTS.asn1", "providers/common/der/NIST.asn1", @@ -6996,11 +8063,19 @@ our %unified_info = ( "providers/common/der/ECX.asn1", "providers/common/der/oids_to_c.pm" ], + "providers/common/der/der_ml_dsa_gen.c" => [ + "providers/common/der/ML_DSA.asn1", + "providers/common/der/oids_to_c.pm" + ], "providers/common/der/der_rsa_gen.c" => [ "providers/common/der/NIST.asn1", "providers/common/der/RSA.asn1", "providers/common/der/oids_to_c.pm" ], + "providers/common/der/der_slh_dsa_gen.c" => [ + "providers/common/der/SLH_DSA.asn1", + "providers/common/der/oids_to_c.pm" + ], "providers/common/der/der_sm2_gen.c" => [ "providers/common/der/SM2.asn1", "providers/common/der/oids_to_c.pm" @@ -7040,6 +8115,12 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ecx_key.o" => [ "providers/common/include/prov/der_ecx.h" ], + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o" => [ + "providers/common/include/prov/der_ml_dsa.h" + ], + "providers/common/der/libcommon-lib-der_ml_dsa_key.o" => [ + "providers/common/include/prov/der_ml_dsa.h" + ], "providers/common/der/libcommon-lib-der_rsa_gen.o" => [ "providers/common/include/prov/der_rsa.h" ], @@ -7047,6 +8128,12 @@ our %unified_info = ( "providers/common/include/prov/der_digests.h", "providers/common/include/prov/der_rsa.h" ], + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o" => [ + "providers/common/include/prov/der_slh_dsa.h" + ], + "providers/common/der/libcommon-lib-der_slh_dsa_key.o" => [ + "providers/common/include/prov/der_slh_dsa.h" + ], "providers/common/der/libcommon-lib-der_wrap_gen.o" => [ "providers/common/include/prov/der_wrap.h" ], @@ -7086,11 +8173,19 @@ our %unified_info = ( "providers/common/der/ECX.asn1", "providers/common/der/oids_to_c.pm" ], + "providers/common/include/prov/der_ml_dsa.h" => [ + "providers/common/der/ML_DSA.asn1", + "providers/common/der/oids_to_c.pm" + ], "providers/common/include/prov/der_rsa.h" => [ "providers/common/der/NIST.asn1", "providers/common/der/RSA.asn1", "providers/common/der/oids_to_c.pm" ], + "providers/common/include/prov/der_slh_dsa.h" => [ + "providers/common/der/SLH_DSA.asn1", + "providers/common/der/oids_to_c.pm" + ], "providers/common/include/prov/der_sm2.h" => [ "providers/common/der/SM2.asn1", "providers/common/der/oids_to_c.pm" @@ -7123,9 +8218,15 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-eddsa_sig.o" => [ "providers/common/include/prov/der_ecx.h" ], + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o" => [ + "providers/common/include/prov/der_ml_dsa.h" + ], "providers/implementations/signature/libdefault-lib-rsa_sig.o" => [ "providers/common/include/prov/der_rsa.h" ], + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o" => [ + "providers/common/include/prov/der_slh_dsa.h" + ], "providers/implementations/signature/libdefault-lib-sm2_sig.o" => [ "providers/common/include/prov/der_sm2.h" ], @@ -7138,9 +8239,15 @@ our %unified_info = ( "providers/implementations/signature/libfips-lib-eddsa_sig.o" => [ "providers/common/include/prov/der_ecx.h" ], + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o" => [ + "providers/common/include/prov/der_ml_dsa.h" + ], "providers/implementations/signature/libfips-lib-rsa_sig.o" => [ "providers/common/include/prov/der_rsa.h" ], + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o" => [ + "providers/common/include/prov/der_slh_dsa.h" + ], "providers/legacy" => [ "libcrypto", "providers/liblegacy.a" @@ -7218,6 +8325,14 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/bio_addr_test" => [ + "libcrypto", + "test/libtestutil.a" + ], + "test/bio_base64_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/bio_callback_test" => [ "libcrypto", "test/libtestutil.a" @@ -7226,6 +8341,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/bio_dgram_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/bio_enc_test" => [ "libcrypto", "test/libtestutil.a" @@ -7234,6 +8353,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/bio_meth_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/bio_prefix_text" => [ "libcrypto", "test/libtestutil.a" @@ -7246,6 +8369,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/bio_tfo_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/bioprinttest" => [ "libcrypto", "test/libtestutil.a" @@ -7258,6 +8385,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/build_wincrypt_test" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_aes" => [ "libcrypto", "libssl" @@ -7278,6 +8409,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_byteorder" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_camellia" => [ "libcrypto", "libssl" @@ -7310,10 +8445,6 @@ our %unified_info = ( "libcrypto", "libssl" ], - "test/buildtest_c_core_names" => [ - "libcrypto", - "libssl" - ], "test/buildtest_c_core_object" => [ "libcrypto", "libssl" @@ -7346,6 +8477,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_e_ostime" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_ebcdic" => [ "libcrypto", "libssl" @@ -7382,6 +8517,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_hpke" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_http" => [ "libcrypto", "libssl" @@ -7390,6 +8529,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_indicator" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_kdf" => [ "libcrypto", "libssl" @@ -7410,6 +8553,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_ml_kem" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_modes" => [ "libcrypto", "libssl" @@ -7450,6 +8597,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_quic" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_rand" => [ "libcrypto", "libssl" @@ -7506,6 +8657,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_thread" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_tls1" => [ "libcrypto", "libssl" @@ -7526,15 +8681,28 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/byteorder_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], + "test/ca_internals_test" => [ + "libssl", + "test/libtestutil.a" + ], "test/casttest" => [ "libcrypto", "test/libtestutil.a" ], - "test/chacha_internal_test" => [ + "test/cert_comp_test" => [ "libcrypto.a", + "libssl.a", "test/libtestutil.a" ], - "test/cipher_overhead_test" => [ + "test/chacha_internal_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], + "test/cipher_overhead_test" => [ "libcrypto.a", "libssl.a", "test/libtestutil.a" @@ -7643,6 +8811,10 @@ our %unified_info = ( "libssl", "test/libtestutil.a" ], + "test/decoder_propq_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/defltfips_test" => [ "libcrypto", "test/libtestutil.a" @@ -7699,6 +8871,8 @@ our %unified_info = ( ], "test/endecode_test" => [ "libcrypto.a", + "providers/libcommon.a", + "providers/liblegacy.a", "test/libtestutil.a" ], "test/endecoder_legacy_test" => [ @@ -7742,6 +8916,10 @@ our %unified_info = ( "test/evp_pkey_ctx_new_from_name" => [ "libcrypto" ], + "test/evp_pkey_dhkem_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/evp_pkey_dparams_test" => [ "libcrypto", "test/libtestutil.a" @@ -7750,10 +8928,18 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/evp_skey_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/evp_test" => [ "libcrypto", "test/libtestutil.a" ], + "test/evp_xof_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/exdatatest" => [ "libcrypto", "test/libtestutil.a" @@ -7792,6 +8978,10 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/hpke_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/http_test" => [ "libcrypto", "test/libtestutil.a" @@ -7804,17 +8994,25 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/json_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], "test/keymgmt_internal_test" => [ "libcrypto.a", "test/libtestutil.a" ], "test/lhash_test" => [ - "libcrypto", + "libcrypto.a", "test/libtestutil.a" ], "test/libtestutil.a" => [ "libcrypto" ], + "test/list_test" => [ + "test/libtestutil.a" + ], "test/localetest" => [ "libcrypto", "test/libtestutil.a" @@ -7827,10 +9025,26 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/membio_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/memleaktest" => [ "libcrypto", "test/libtestutil.a" ], + "test/ml_dsa_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], + "test/ml_kem_evp_extra_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], + "test/ml_kem_internal_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/modes_internal_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -7855,6 +9069,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/pairwise_fail_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/param_build_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -7887,6 +9105,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/pkcs12_api_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/pkcs12_format_test" => [ "libcrypto", "test/libtestutil.a" @@ -7907,6 +9129,11 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/priority_queue_test" => [ + "libcrypto", + "libssl.a", + "test/libtestutil.a" + ], "test/property_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -7919,6 +9146,10 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/provider_default_search_path_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/provider_fallback_test" => [ "libcrypto", "test/libtestutil.a" @@ -7943,12 +9174,122 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/quic_ackm_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_cc_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_cfq_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_client_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_fc_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_fifd_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_lcidm_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_multistream_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_newcid_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_qlog_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_radix_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_rcidm_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_record_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_srt_gen_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_srtm_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_stream_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_tserver_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_txp_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_txpim_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_wire_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quicapitest" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quicfaultstest" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], "test/rand_status_test" => [ "libcrypto", "test/libtestutil.a" ], "test/rand_test" => [ - "libcrypto", + "libcrypto.a", "test/libtestutil.a" ], "test/rc2test" => [ @@ -7963,7 +9304,7 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], - "test/rdrand_sanitytest" => [ + "test/rdcpu_sanitytest" => [ "libcrypto.a", "test/libtestutil.a" ], @@ -7972,6 +9313,11 @@ our %unified_info = ( "libssl", "test/libtestutil.a" ], + "test/rpktest" => [ + "libcrypto", + "libssl", + "test/libtestutil.a" + ], "test/rsa_mp_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -7984,10 +9330,18 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], - "test/sanitytest" => [ + "test/rsa_x931_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], + "test/safe_math_test" => [ "libcrypto", "test/libtestutil.a" ], + "test/sanitytest" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/secmemtest" => [ "libcrypto", "test/libtestutil.a" @@ -8005,6 +9359,10 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/slh_dsa_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/sm2_internal_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -8034,6 +9392,11 @@ our %unified_info = ( "libssl", "test/libtestutil.a" ], + "test/ssl_handshake_rtt_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], "test/ssl_old_test" => [ "libcrypto.a", "libssl.a", @@ -8050,8 +9413,8 @@ our %unified_info = ( "test/libtestutil.a" ], "test/sslapitest" => [ - "libcrypto", - "libssl", + "libcrypto.a", + "libssl.a", "test/libtestutil.a" ], "test/sslbuffertest" => [ @@ -8068,6 +9431,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/strtoultest" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/sysdefaulttest" => [ "libcrypto", "libssl", @@ -8077,8 +9444,12 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/threadpool_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/threadstest" => [ - "libcrypto", + "libcrypto.a", "test/libtestutil.a" ], "test/threadstest_fips" => [ @@ -8089,6 +9460,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/time_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/tls13ccstest" => [ "libcrypto", "libssl", @@ -8099,6 +9474,11 @@ our %unified_info = ( "libssl.a", "test/libtestutil.a" ], + "test/tls13groupselection_test" => [ + "libcrypto", + "libssl", + "test/libtestutil.a" + ], "test/trace_api_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -8136,6 +9516,10 @@ our %unified_info = ( "libssl.a", "test/libtestutil.a" ], + "test/x509_acert_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/x509_check_cert_pkey_test" => [ "libcrypto", "test/libtestutil.a" @@ -8148,6 +9532,18 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/x509_load_cert_file_test" => [ + "libcrypto", + "test/libtestutil.a" + ], + "test/x509_req_test" => [ + "libcrypto", + "test/libtestutil.a" + ], + "test/x509_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/x509_time_test" => [ "libcrypto", "test/libtestutil.a" @@ -8162,9 +9558,13 @@ our %unified_info = ( }, "dirinfo" => { "apps" => { + "deps" => [ + "apps/ca_internals_test-bin-ca.o" + ], "products" => { "bin" => [ - "apps/openssl" + "apps/openssl", + "test/ca_internals_test" ], "script" => [ "apps/CA.pl", @@ -8175,6 +9575,14 @@ our %unified_info = ( "apps/lib" => { "deps" => [ "apps/lib/openssl-bin-cmp_mock_srv.o", + "apps/lib/ca_internals_test-bin-app_libctx.o", + "apps/lib/ca_internals_test-bin-app_provider.o", + "apps/lib/ca_internals_test-bin-app_rand.o", + "apps/lib/ca_internals_test-bin-app_x509.o", + "apps/lib/ca_internals_test-bin-apps.o", + "apps/lib/ca_internals_test-bin-apps_ui.o", + "apps/lib/ca_internals_test-bin-engine.o", + "apps/lib/ca_internals_test-bin-fmt.o", "apps/lib/cmp_client_test-bin-cmp_mock_srv.o", "apps/lib/uitest-bin-apps_ui.o", "apps/lib/libapps-lib-app_libctx.o", @@ -8183,12 +9591,14 @@ our %unified_info = ( "apps/lib/libapps-lib-app_rand.o", "apps/lib/libapps-lib-app_x509.o", "apps/lib/libapps-lib-apps.o", + "apps/lib/libapps-lib-apps_opt_printf.o", "apps/lib/libapps-lib-apps_ui.o", "apps/lib/libapps-lib-columns.o", "apps/lib/libapps-lib-engine.o", "apps/lib/libapps-lib-engine_loader.o", "apps/lib/libapps-lib-fmt.o", "apps/lib/libapps-lib-http_server.o", + "apps/lib/libapps-lib-log.o", "apps/lib/libapps-lib-names.o", "apps/lib/libapps-lib-opt.o", "apps/lib/libapps-lib-s_cb.o", @@ -8199,6 +9609,7 @@ our %unified_info = ( "products" => { "bin" => [ "apps/openssl", + "test/ca_internals_test", "test/cmp_client_test", "test/uitest" ], @@ -8210,10 +9621,14 @@ our %unified_info = ( }, "crypto" => { "deps" => [ + "crypto/asn1_time_test-bin-ctype.o", + "crypto/ca_internals_test-bin-ctype.o", + "crypto/packettest-bin-quic_vlint.o", "crypto/libcrypto-lib-arm64cpuid.o", "crypto/libcrypto-lib-armcap.o", "crypto/libcrypto-lib-asn1_dsa.o", "crypto/libcrypto-lib-bsearch.o", + "crypto/libcrypto-lib-comp_methods.o", "crypto/libcrypto-lib-context.o", "crypto/libcrypto-lib-core_algorithm.o", "crypto/libcrypto-lib-core_fetch.o", @@ -8223,10 +9638,13 @@ our %unified_info = ( "crypto/libcrypto-lib-cryptlib.o", "crypto/libcrypto-lib-ctype.o", "crypto/libcrypto-lib-cversion.o", + "crypto/libcrypto-lib-defaults.o", "crypto/libcrypto-lib-der_writer.o", + "crypto/libcrypto-lib-deterministic_nonce.o", "crypto/libcrypto-lib-ebcdic.o", "crypto/libcrypto-lib-ex_data.o", "crypto/libcrypto-lib-getenv.o", + "crypto/libcrypto-lib-indicator_core.o", "crypto/libcrypto-lib-info.o", "crypto/libcrypto-lib-init.o", "crypto/libcrypto-lib-initthread.o", @@ -8243,6 +9661,7 @@ our %unified_info = ( "crypto/libcrypto-lib-params.o", "crypto/libcrypto-lib-params_dup.o", "crypto/libcrypto-lib-params_from_text.o", + "crypto/libcrypto-lib-params_idx.o", "crypto/libcrypto-lib-passphrase.o", "crypto/libcrypto-lib-provider.o", "crypto/libcrypto-lib-provider_child.o", @@ -8250,12 +9669,16 @@ our %unified_info = ( "crypto/libcrypto-lib-provider_core.o", "crypto/libcrypto-lib-provider_predefined.o", "crypto/libcrypto-lib-punycode.o", + "crypto/libcrypto-lib-quic_vlint.o", "crypto/libcrypto-lib-self_test_core.o", + "crypto/libcrypto-lib-sleep.o", "crypto/libcrypto-lib-sparse_array.o", + "crypto/libcrypto-lib-ssl_err.o", "crypto/libcrypto-lib-threads_lib.o", "crypto/libcrypto-lib-threads_none.o", "crypto/libcrypto-lib-threads_pthread.o", "crypto/libcrypto-lib-threads_win.o", + "crypto/libcrypto-lib-time.o", "crypto/libcrypto-lib-trace.o", "crypto/libcrypto-lib-uid.o", "crypto/libfips-lib-arm64cpuid.o", @@ -8279,6 +9702,7 @@ our %unified_info = ( "crypto/libfips-lib-params.o", "crypto/libfips-lib-params_dup.o", "crypto/libfips-lib-params_from_text.o", + "crypto/libfips-lib-params_idx.o", "crypto/libfips-lib-provider_core.o", "crypto/libfips-lib-provider_predefined.o", "crypto/libfips-lib-self_test_core.o", @@ -8286,9 +9710,15 @@ our %unified_info = ( "crypto/libfips-lib-threads_lib.o", "crypto/libfips-lib-threads_none.o", "crypto/libfips-lib-threads_pthread.o", - "crypto/libfips-lib-threads_win.o" + "crypto/libfips-lib-threads_win.o", + "crypto/libfips-lib-time.o" ], "products" => { + "bin" => [ + "test/asn1_time_test", + "test/ca_internals_test", + "test/packettest" + ], "lib" => [ "libcrypto", "providers/libfips.a" @@ -8306,12 +9736,14 @@ our %unified_info = ( "crypto/aes/libcrypto-lib-aes_ofb.o", "crypto/aes/libcrypto-lib-aes_wrap.o", "crypto/aes/libcrypto-lib-aesv8-armx.o", + "crypto/aes/libcrypto-lib-bsaes-armv8.o", "crypto/aes/libcrypto-lib-vpaes-armv8.o", "crypto/aes/libfips-lib-aes_cbc.o", "crypto/aes/libfips-lib-aes_core.o", "crypto/aes/libfips-lib-aes_ecb.o", "crypto/aes/libfips-lib-aes_misc.o", "crypto/aes/libfips-lib-aesv8-armx.o", + "crypto/aes/libfips-lib-bsaes-armv8.o", "crypto/aes/libfips-lib-vpaes-armv8.o" ], "products" => { @@ -8333,6 +9765,8 @@ our %unified_info = ( }, "crypto/asn1" => { "deps" => [ + "crypto/asn1/asn1_time_test-bin-a_time.o", + "crypto/asn1/ca_internals_test-bin-a_time.o", "crypto/asn1/libcrypto-lib-a_bitstr.o", "crypto/asn1/libcrypto-lib-a_d2i_fp.o", "crypto/asn1/libcrypto-lib-a_digest.o", @@ -8399,6 +9833,10 @@ our %unified_info = ( "crypto/asn1/libcrypto-lib-x_val.o" ], "products" => { + "bin" => [ + "test/asn1_time_test", + "test/ca_internals_test" + ], "lib" => [ "libcrypto" ] @@ -8464,6 +9902,7 @@ our %unified_info = ( "crypto/bio/libcrypto-lib-bss_conn.o", "crypto/bio/libcrypto-lib-bss_core.o", "crypto/bio/libcrypto-lib-bss_dgram.o", + "crypto/bio/libcrypto-lib-bss_dgram_pair.o", "crypto/bio/libcrypto-lib-bss_fd.o", "crypto/bio/libcrypto-lib-bss_file.o", "crypto/bio/libcrypto-lib-bss_log.o", @@ -8596,6 +10035,7 @@ our %unified_info = ( }, "crypto/chacha" => { "deps" => [ + "crypto/chacha/libcrypto-lib-chacha-armv8-sve.o", "crypto/chacha/libcrypto-lib-chacha-armv8.o" ], "products" => { @@ -8622,6 +10062,7 @@ our %unified_info = ( "crypto/cmp/libcrypto-lib-cmp_client.o", "crypto/cmp/libcrypto-lib-cmp_ctx.o", "crypto/cmp/libcrypto-lib-cmp_err.o", + "crypto/cmp/libcrypto-lib-cmp_genm.o", "crypto/cmp/libcrypto-lib-cmp_hdr.o", "crypto/cmp/libcrypto-lib-cmp_http.o", "crypto/cmp/libcrypto-lib-cmp_msg.o", @@ -8857,6 +10298,9 @@ our %unified_info = ( "crypto/ec/libcrypto-lib-ecp_nistz256-armv8.o", "crypto/ec/libcrypto-lib-ecp_nistz256.o", "crypto/ec/libcrypto-lib-ecp_oct.o", + "crypto/ec/libcrypto-lib-ecp_sm2p256-armv8.o", + "crypto/ec/libcrypto-lib-ecp_sm2p256.o", + "crypto/ec/libcrypto-lib-ecp_sm2p256_table.o", "crypto/ec/libcrypto-lib-ecp_smpl.o", "crypto/ec/libcrypto-lib-ecx_backend.o", "crypto/ec/libcrypto-lib-ecx_key.o", @@ -8884,6 +10328,9 @@ our %unified_info = ( "crypto/ec/libfips-lib-ecp_nistz256-armv8.o", "crypto/ec/libfips-lib-ecp_nistz256.o", "crypto/ec/libfips-lib-ecp_oct.o", + "crypto/ec/libfips-lib-ecp_sm2p256-armv8.o", + "crypto/ec/libfips-lib-ecp_sm2p256.o", + "crypto/ec/libfips-lib-ecp_sm2p256_table.o", "crypto/ec/libfips-lib-ecp_smpl.o", "crypto/ec/libfips-lib-ecx_backend.o", "crypto/ec/libfips-lib-ecx_key.o" @@ -8993,7 +10440,9 @@ our %unified_info = ( "crypto/err/libcrypto-lib-err_all.o", "crypto/err/libcrypto-lib-err_all_legacy.o", "crypto/err/libcrypto-lib-err_blocks.o", - "crypto/err/libcrypto-lib-err_prn.o" + "crypto/err/libcrypto-lib-err_mark.o", + "crypto/err/libcrypto-lib-err_prn.o", + "crypto/err/libcrypto-lib-err_save.o" ], "products" => { "lib" => [ @@ -9094,7 +10543,9 @@ our %unified_info = ( "crypto/evp/libcrypto-lib-pmeth_check.o", "crypto/evp/libcrypto-lib-pmeth_gn.o", "crypto/evp/libcrypto-lib-pmeth_lib.o", + "crypto/evp/libcrypto-lib-s_lib.o", "crypto/evp/libcrypto-lib-signature.o", + "crypto/evp/libcrypto-lib-skeymgmt_meth.o", "crypto/evp/libfips-lib-asymcipher.o", "crypto/evp/libfips-lib-dh_support.o", "crypto/evp/libfips-lib-digest.o", @@ -9110,14 +10561,15 @@ our %unified_info = ( "crypto/evp/libfips-lib-kem.o", "crypto/evp/libfips-lib-keymgmt_lib.o", "crypto/evp/libfips-lib-keymgmt_meth.o", - "crypto/evp/libfips-lib-m_sigver.o", "crypto/evp/libfips-lib-mac_lib.o", "crypto/evp/libfips-lib-mac_meth.o", "crypto/evp/libfips-lib-p_lib.o", "crypto/evp/libfips-lib-pmeth_check.o", "crypto/evp/libfips-lib-pmeth_gn.o", "crypto/evp/libfips-lib-pmeth_lib.o", - "crypto/evp/libfips-lib-signature.o" + "crypto/evp/libfips-lib-s_lib.o", + "crypto/evp/libfips-lib-signature.o", + "crypto/evp/libfips-lib-skeymgmt_meth.o" ], "products" => { "lib" => [ @@ -9150,6 +10602,20 @@ our %unified_info = ( ] } }, + "crypto/hashtable" => { + "deps" => [ + "crypto/hashtable/libcrypto-lib-hashfunc.o", + "crypto/hashtable/libcrypto-lib-hashtable.o", + "crypto/hashtable/libfips-lib-hashfunc.o", + "crypto/hashtable/libfips-lib-hashtable.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, "crypto/hmac" => { "deps" => [ "crypto/hmac/libcrypto-lib-hmac.o", @@ -9162,6 +10628,17 @@ our %unified_info = ( ] } }, + "crypto/hpke" => { + "deps" => [ + "crypto/hpke/libcrypto-lib-hpke.o", + "crypto/hpke/libcrypto-lib-hpke_util.o" + ], + "products" => { + "lib" => [ + "libcrypto" + ] + } + }, "crypto/http" => { "deps" => [ "crypto/http/libcrypto-lib-http_client.o", @@ -9224,6 +10701,7 @@ our %unified_info = ( }, "crypto/md5" => { "deps" => [ + "crypto/md5/libcrypto-lib-md5-aarch64.o", "crypto/md5/libcrypto-lib-md5_dgst.o", "crypto/md5/libcrypto-lib-md5_one.o", "crypto/md5/libcrypto-lib-md5_sha1.o" @@ -9245,8 +10723,47 @@ our %unified_info = ( ] } }, + "crypto/ml_dsa" => { + "deps" => [ + "crypto/ml_dsa/libcrypto-lib-ml_dsa_encoders.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key_compress.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_matrix.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_ntt.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_params.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sample.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sign.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_encoders.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_key.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_key_compress.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_matrix.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_ntt.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_params.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_sample.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_sign.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, + "crypto/ml_kem" => { + "deps" => [ + "crypto/ml_kem/libcrypto-lib-ml_kem.o", + "crypto/ml_kem/libfips-lib-ml_kem.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, "crypto/modes" => { "deps" => [ + "crypto/modes/libcrypto-lib-aes-gcm-armv8-unroll8_64.o", "crypto/modes/libcrypto-lib-aes-gcm-armv8_64.o", "crypto/modes/libcrypto-lib-cbc128.o", "crypto/modes/libcrypto-lib-ccm128.o", @@ -9260,6 +10777,8 @@ our %unified_info = ( "crypto/modes/libcrypto-lib-siv128.o", "crypto/modes/libcrypto-lib-wrap128.o", "crypto/modes/libcrypto-lib-xts128.o", + "crypto/modes/libcrypto-lib-xts128gb.o", + "crypto/modes/libfips-lib-aes-gcm-armv8-unroll8_64.o", "crypto/modes/libfips-lib-aes-gcm-armv8_64.o", "crypto/modes/libfips-lib-cbc128.o", "crypto/modes/libfips-lib-ccm128.o", @@ -9269,7 +10788,8 @@ our %unified_info = ( "crypto/modes/libfips-lib-ghashv8-armx.o", "crypto/modes/libfips-lib-ofb128.o", "crypto/modes/libfips-lib-wrap128.o", - "crypto/modes/libfips-lib-xts128.o" + "crypto/modes/libfips-lib-xts128.o", + "crypto/modes/libfips-lib-xts128gb.o" ], "products" => { "lib" => [ @@ -9413,6 +10933,7 @@ our %unified_info = ( "crypto/rand/libcrypto-lib-rand_lib.o", "crypto/rand/libcrypto-lib-rand_meth.o", "crypto/rand/libcrypto-lib-rand_pool.o", + "crypto/rand/libcrypto-lib-rand_uniform.o", "crypto/rand/libcrypto-lib-randfile.o", "crypto/rand/libfips-lib-rand_lib.o" ], @@ -9563,6 +11084,36 @@ our %unified_info = ( ] } }, + "crypto/slh_dsa" => { + "deps" => [ + "crypto/slh_dsa/libcrypto-lib-slh_adrs.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa_hash_ctx.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa_key.o", + "crypto/slh_dsa/libcrypto-lib-slh_fors.o", + "crypto/slh_dsa/libcrypto-lib-slh_hash.o", + "crypto/slh_dsa/libcrypto-lib-slh_hypertree.o", + "crypto/slh_dsa/libcrypto-lib-slh_params.o", + "crypto/slh_dsa/libcrypto-lib-slh_wots.o", + "crypto/slh_dsa/libcrypto-lib-slh_xmss.o", + "crypto/slh_dsa/libfips-lib-slh_adrs.o", + "crypto/slh_dsa/libfips-lib-slh_dsa.o", + "crypto/slh_dsa/libfips-lib-slh_dsa_hash_ctx.o", + "crypto/slh_dsa/libfips-lib-slh_dsa_key.o", + "crypto/slh_dsa/libfips-lib-slh_fors.o", + "crypto/slh_dsa/libfips-lib-slh_hash.o", + "crypto/slh_dsa/libfips-lib-slh_hypertree.o", + "crypto/slh_dsa/libfips-lib-slh_params.o", + "crypto/slh_dsa/libfips-lib-slh_wots.o", + "crypto/slh_dsa/libfips-lib-slh_xmss.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, "crypto/sm2" => { "deps" => [ "crypto/sm2/libcrypto-lib-sm2_crypt.o", @@ -9579,6 +11130,7 @@ our %unified_info = ( "crypto/sm3" => { "deps" => [ "crypto/sm3/libcrypto-lib-legacy_sm3.o", + "crypto/sm3/libcrypto-lib-sm3-armv8.o", "crypto/sm3/libcrypto-lib-sm3.o" ], "products" => { @@ -9589,7 +11141,10 @@ our %unified_info = ( }, "crypto/sm4" => { "deps" => [ - "crypto/sm4/libcrypto-lib-sm4.o" + "crypto/sm4/libcrypto-lib-sm4-armv8.o", + "crypto/sm4/libcrypto-lib-sm4.o", + "crypto/sm4/libcrypto-lib-vpsm4-armv8.o", + "crypto/sm4/libcrypto-lib-vpsm4_ex-armv8.o" ], "products" => { "lib" => [ @@ -9636,6 +11191,38 @@ our %unified_info = ( ] } }, + "crypto/thread" => { + "deps" => [ + "crypto/thread/libcrypto-lib-api.o", + "crypto/thread/libcrypto-lib-arch.o", + "crypto/thread/libcrypto-lib-internal.o", + "crypto/thread/libfips-lib-api.o", + "crypto/thread/libfips-lib-arch.o", + "crypto/thread/libfips-lib-internal.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, + "crypto/thread/arch" => { + "deps" => [ + "crypto/thread/arch/libcrypto-lib-thread_none.o", + "crypto/thread/arch/libcrypto-lib-thread_posix.o", + "crypto/thread/arch/libcrypto-lib-thread_win.o", + "crypto/thread/arch/libfips-lib-thread_none.o", + "crypto/thread/arch/libfips-lib-thread_posix.o", + "crypto/thread/arch/libfips-lib-thread_win.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, "crypto/ts" => { "deps" => [ "crypto/ts/libcrypto-lib-ts_asn1.o", @@ -9702,14 +11289,22 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-pcy_map.o", "crypto/x509/libcrypto-lib-pcy_node.o", "crypto/x509/libcrypto-lib-pcy_tree.o", + "crypto/x509/libcrypto-lib-t_acert.o", "crypto/x509/libcrypto-lib-t_crl.o", "crypto/x509/libcrypto-lib-t_req.o", "crypto/x509/libcrypto-lib-t_x509.o", + "crypto/x509/libcrypto-lib-v3_aaa.o", + "crypto/x509/libcrypto-lib-v3_ac_tgt.o", "crypto/x509/libcrypto-lib-v3_addr.o", "crypto/x509/libcrypto-lib-v3_admis.o", "crypto/x509/libcrypto-lib-v3_akeya.o", "crypto/x509/libcrypto-lib-v3_akid.o", "crypto/x509/libcrypto-lib-v3_asid.o", + "crypto/x509/libcrypto-lib-v3_attrdesc.o", + "crypto/x509/libcrypto-lib-v3_attrmap.o", + "crypto/x509/libcrypto-lib-v3_audit_id.o", + "crypto/x509/libcrypto-lib-v3_authattid.o", + "crypto/x509/libcrypto-lib-v3_battcons.o", "crypto/x509/libcrypto-lib-v3_bcons.o", "crypto/x509/libcrypto-lib-v3_bitst.o", "crypto/x509/libcrypto-lib-v3_conf.o", @@ -9718,12 +11313,17 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_enum.o", "crypto/x509/libcrypto-lib-v3_extku.o", "crypto/x509/libcrypto-lib-v3_genn.o", + "crypto/x509/libcrypto-lib-v3_group_ac.o", "crypto/x509/libcrypto-lib-v3_ia5.o", + "crypto/x509/libcrypto-lib-v3_ind_iss.o", "crypto/x509/libcrypto-lib-v3_info.o", "crypto/x509/libcrypto-lib-v3_int.o", + "crypto/x509/libcrypto-lib-v3_iobo.o", "crypto/x509/libcrypto-lib-v3_ist.o", "crypto/x509/libcrypto-lib-v3_lib.o", "crypto/x509/libcrypto-lib-v3_ncons.o", + "crypto/x509/libcrypto-lib-v3_no_ass.o", + "crypto/x509/libcrypto-lib-v3_no_rev_avail.o", "crypto/x509/libcrypto-lib-v3_pci.o", "crypto/x509/libcrypto-lib-v3_pcia.o", "crypto/x509/libcrypto-lib-v3_pcons.o", @@ -9731,13 +11331,20 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_pmaps.o", "crypto/x509/libcrypto-lib-v3_prn.o", "crypto/x509/libcrypto-lib-v3_purp.o", + "crypto/x509/libcrypto-lib-v3_rolespec.o", "crypto/x509/libcrypto-lib-v3_san.o", + "crypto/x509/libcrypto-lib-v3_sda.o", + "crypto/x509/libcrypto-lib-v3_single_use.o", "crypto/x509/libcrypto-lib-v3_skid.o", + "crypto/x509/libcrypto-lib-v3_soa_id.o", "crypto/x509/libcrypto-lib-v3_sxnet.o", + "crypto/x509/libcrypto-lib-v3_timespec.o", "crypto/x509/libcrypto-lib-v3_tlsf.o", + "crypto/x509/libcrypto-lib-v3_usernotice.o", "crypto/x509/libcrypto-lib-v3_utf8.o", "crypto/x509/libcrypto-lib-v3_utl.o", "crypto/x509/libcrypto-lib-v3err.o", + "crypto/x509/libcrypto-lib-x509_acert.o", "crypto/x509/libcrypto-lib-x509_att.o", "crypto/x509/libcrypto-lib-x509_cmp.o", "crypto/x509/libcrypto-lib-x509_d2.o", @@ -9755,6 +11362,7 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x509_v3.o", "crypto/x509/libcrypto-lib-x509_vfy.o", "crypto/x509/libcrypto-lib-x509_vpm.o", + "crypto/x509/libcrypto-lib-x509aset.o", "crypto/x509/libcrypto-lib-x509cset.o", "crypto/x509/libcrypto-lib-x509name.o", "crypto/x509/libcrypto-lib-x509rset.o", @@ -9764,6 +11372,7 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x_attrib.o", "crypto/x509/libcrypto-lib-x_crl.o", "crypto/x509/libcrypto-lib-x_exten.o", + "crypto/x509/libcrypto-lib-x_ietfatt.o", "crypto/x509/libcrypto-lib-x_name.o", "crypto/x509/libcrypto-lib-x_pubkey.o", "crypto/x509/libcrypto-lib-x_req.o", @@ -9790,6 +11399,7 @@ our %unified_info = ( "fuzz" => { "products" => { "bin" => [ + "fuzz/acert-test", "fuzz/asn1-test", "fuzz/asn1parse-test", "fuzz/bignum-test", @@ -9800,13 +11410,31 @@ our %unified_info = ( "fuzz/conf-test", "fuzz/crl-test", "fuzz/ct-test", + "fuzz/decoder-test", + "fuzz/dtlsclient-test", + "fuzz/dtlsserver-test", + "fuzz/hashtable-test", + "fuzz/ml-dsa-test", + "fuzz/ml-kem-test", + "fuzz/pem-test", + "fuzz/provider-test", + "fuzz/punycode-test", + "fuzz/quic-client-test", + "fuzz/quic-lcidm-test", + "fuzz/quic-rcidm-test", + "fuzz/quic-server-test", + "fuzz/quic-srtm-test", "fuzz/server-test", + "fuzz/slh-dsa-test", + "fuzz/smime-test", + "fuzz/v3name-test", "fuzz/x509-test" ] } }, "providers" => { "deps" => [ + "providers/endecode_test-bin-legacyprov.o", "providers/evp_extra_test-bin-legacyprov.o", "providers/libcrypto-lib-baseprov.o", "providers/libcrypto-lib-defltprov.o", @@ -9816,6 +11444,7 @@ our %unified_info = ( ], "products" => { "bin" => [ + "test/endecode_test", "test/evp_extra_test" ], "dso" => [ @@ -9867,8 +11496,12 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ec_sig.o", "providers/common/der/libcommon-lib-der_ecx_gen.o", "providers/common/der/libcommon-lib-der_ecx_key.o", + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o", + "providers/common/der/libcommon-lib-der_ml_dsa_key.o", "providers/common/der/libcommon-lib-der_rsa_gen.o", "providers/common/der/libcommon-lib-der_rsa_key.o", + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o", + "providers/common/der/libcommon-lib-der_slh_dsa_key.o", "providers/common/der/libcommon-lib-der_wrap_gen.o", "providers/common/der/libdefault-lib-der_rsa_sig.o", "providers/common/der/libdefault-lib-der_sm2_gen.o", @@ -9887,6 +11520,7 @@ our %unified_info = ( "providers/fips" => { "deps" => [ "providers/fips/fips-dso-fips_entry.o", + "providers/fips/libfips-lib-fipsindicator.o", "providers/fips/libfips-lib-fipsprov.o", "providers/fips/libfips-lib-self_test.o", "providers/fips/libfips-lib-self_test_kats.o" @@ -9930,6 +11564,9 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_aes_ccm_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_polyval.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_ocb.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_ocb_hw.o", @@ -9954,7 +11591,13 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_cts.o", "providers/implementations/ciphers/libdefault-lib-cipher_null.o", "providers/implementations/ciphers/libdefault-lib-cipher_sm4.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_sm4_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes_common.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes_default.o", @@ -10051,7 +11694,10 @@ our %unified_info = ( "providers/implementations/encode_decode/libdefault-lib-encode_key2blob.o", "providers/implementations/encode_decode/libdefault-lib-encode_key2ms.o", "providers/implementations/encode_decode/libdefault-lib-encode_key2text.o", - "providers/implementations/encode_decode/libdefault-lib-endecoder_common.o" + "providers/implementations/encode_decode/libdefault-lib-endecoder_common.o", + "providers/implementations/encode_decode/libdefault-lib-ml_common_codecs.o", + "providers/implementations/encode_decode/libdefault-lib-ml_dsa_codecs.o", + "providers/implementations/encode_decode/libdefault-lib-ml_kem_codecs.o" ], "products" => { "lib" => [ @@ -10079,7 +11725,9 @@ our %unified_info = ( }, "providers/implementations/kdfs" => { "deps" => [ + "providers/implementations/kdfs/libdefault-lib-argon2.o", "providers/implementations/kdfs/libdefault-lib-hkdf.o", + "providers/implementations/kdfs/libdefault-lib-hmacdrbg_kdf.o", "providers/implementations/kdfs/libdefault-lib-kbkdf.o", "providers/implementations/kdfs/libdefault-lib-krb5kdf.o", "providers/implementations/kdfs/libdefault-lib-pbkdf2.o", @@ -10098,7 +11746,8 @@ our %unified_info = ( "providers/implementations/kdfs/libfips-lib-sskdf.o", "providers/implementations/kdfs/libfips-lib-tls1_prf.o", "providers/implementations/kdfs/libfips-lib-x942kdf.o", - "providers/implementations/kdfs/liblegacy-lib-pbkdf1.o" + "providers/implementations/kdfs/liblegacy-lib-pbkdf1.o", + "providers/implementations/kdfs/liblegacy-lib-pvkkdf.o" ], "products" => { "lib" => [ @@ -10110,13 +11759,22 @@ our %unified_info = ( }, "providers/implementations/kem" => { "deps" => [ + "providers/implementations/kem/libdefault-lib-ec_kem.o", + "providers/implementations/kem/libdefault-lib-ecx_kem.o", + "providers/implementations/kem/libdefault-lib-kem_util.o", + "providers/implementations/kem/libdefault-lib-ml_kem_kem.o", + "providers/implementations/kem/libdefault-lib-mlx_kem.o", "providers/implementations/kem/libdefault-lib-rsa_kem.o", - "providers/implementations/kem/libfips-lib-rsa_kem.o" + "providers/implementations/kem/libfips-lib-ml_kem_kem.o", + "providers/implementations/kem/libfips-lib-mlx_kem.o", + "providers/implementations/kem/libfips-lib-rsa_kem.o", + "providers/implementations/kem/libtemplate-lib-template_kem.o" ], "products" => { "lib" => [ "providers/libdefault.a", - "providers/libfips.a" + "providers/libfips.a", + "providers/libtemplate.a" ] } }, @@ -10128,19 +11786,29 @@ our %unified_info = ( "providers/implementations/keymgmt/libdefault-lib-ecx_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-kdf_legacy_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-mac_legacy_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-ml_dsa_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-ml_kem_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-mlx_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-rsa_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-slh_dsa_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-dh_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-dsa_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-ec_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-ecx_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-kdf_legacy_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-mac_legacy_kmgmt.o", - "providers/implementations/keymgmt/libfips-lib-rsa_kmgmt.o" + "providers/implementations/keymgmt/libfips-lib-ml_dsa_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-ml_kem_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-mlx_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-rsa_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-slh_dsa_kmgmt.o", + "providers/implementations/keymgmt/libtemplate-lib-template_kmgmt.o" ], "products" => { "lib" => [ "providers/libdefault.a", - "providers/libfips.a" + "providers/libfips.a", + "providers/libtemplate.a" ] } }, @@ -10168,18 +11836,18 @@ our %unified_info = ( }, "providers/implementations/rands" => { "deps" => [ - "providers/implementations/rands/libdefault-lib-crngt.o", "providers/implementations/rands/libdefault-lib-drbg.o", "providers/implementations/rands/libdefault-lib-drbg_ctr.o", "providers/implementations/rands/libdefault-lib-drbg_hash.o", "providers/implementations/rands/libdefault-lib-drbg_hmac.o", "providers/implementations/rands/libdefault-lib-seed_src.o", + "providers/implementations/rands/libdefault-lib-seed_src_jitter.o", "providers/implementations/rands/libdefault-lib-test_rng.o", - "providers/implementations/rands/libfips-lib-crngt.o", "providers/implementations/rands/libfips-lib-drbg.o", "providers/implementations/rands/libfips-lib-drbg_ctr.o", "providers/implementations/rands/libfips-lib-drbg_hash.o", "providers/implementations/rands/libfips-lib-drbg_hmac.o", + "providers/implementations/rands/libfips-lib-fips_crng_test.o", "providers/implementations/rands/libfips-lib-test_rng.o" ], "products" => { @@ -10191,7 +11859,7 @@ our %unified_info = ( }, "providers/implementations/rands/seeding" => { "deps" => [ - "providers/implementations/rands/seeding/libdefault-lib-rand_cpu_x86.o", + "providers/implementations/rands/seeding/libdefault-lib-rand_cpu_arm64.o", "providers/implementations/rands/seeding/libdefault-lib-rand_tsc.o", "providers/implementations/rands/seeding/libdefault-lib-rand_unix.o", "providers/implementations/rands/seeding/libdefault-lib-rand_win.o" @@ -10208,13 +11876,31 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-ecdsa_sig.o", "providers/implementations/signature/libdefault-lib-eddsa_sig.o", "providers/implementations/signature/libdefault-lib-mac_legacy_sig.o", + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o", "providers/implementations/signature/libdefault-lib-rsa_sig.o", + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o", "providers/implementations/signature/libdefault-lib-sm2_sig.o", "providers/implementations/signature/libfips-lib-dsa_sig.o", "providers/implementations/signature/libfips-lib-ecdsa_sig.o", "providers/implementations/signature/libfips-lib-eddsa_sig.o", "providers/implementations/signature/libfips-lib-mac_legacy_sig.o", - "providers/implementations/signature/libfips-lib-rsa_sig.o" + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o", + "providers/implementations/signature/libfips-lib-rsa_sig.o", + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o" + ], + "products" => { + "lib" => [ + "providers/libdefault.a", + "providers/libfips.a" + ] + } + }, + "providers/implementations/skeymgmt" => { + "deps" => [ + "providers/implementations/skeymgmt/libdefault-lib-aes_skmgmt.o", + "providers/implementations/skeymgmt/libdefault-lib-generic.o", + "providers/implementations/skeymgmt/libfips-lib-aes_skmgmt.o", + "providers/implementations/skeymgmt/libfips-lib-generic.o" ], "products" => { "lib" => [ @@ -10242,14 +11928,15 @@ our %unified_info = ( "ssl/libssl-lib-d1_srtp.o", "ssl/libssl-lib-methods.o", "ssl/libssl-lib-pqueue.o", + "ssl/libssl-lib-priority_queue.o", "ssl/libssl-lib-s3_enc.o", "ssl/libssl-lib-s3_lib.o", "ssl/libssl-lib-s3_msg.o", "ssl/libssl-lib-ssl_asn1.o", "ssl/libssl-lib-ssl_cert.o", + "ssl/libssl-lib-ssl_cert_comp.o", "ssl/libssl-lib-ssl_ciph.o", "ssl/libssl-lib-ssl_conf.o", - "ssl/libssl-lib-ssl_err.o", "ssl/libssl-lib-ssl_err_legacy.o", "ssl/libssl-lib-ssl_init.o", "ssl/libssl-lib-ssl_lib.o", @@ -10265,32 +11952,107 @@ our %unified_info = ( "ssl/libssl-lib-t1_trce.o", "ssl/libssl-lib-tls13_enc.o", "ssl/libssl-lib-tls_depr.o", - "ssl/libssl-lib-tls_srp.o", - "ssl/libdefault-lib-s3_cbc.o", - "ssl/libfips-lib-s3_cbc.o" + "ssl/libssl-lib-tls_srp.o" ], "products" => { "lib" => [ - "libssl", - "providers/libdefault.a", - "providers/libfips.a" + "libssl" + ] + } + }, + "ssl/quic" => { + "deps" => [ + "ssl/quic/libssl-lib-cc_newreno.o", + "ssl/quic/libssl-lib-json_enc.o", + "ssl/quic/libssl-lib-qlog.o", + "ssl/quic/libssl-lib-qlog_event_helpers.o", + "ssl/quic/libssl-lib-quic_ackm.o", + "ssl/quic/libssl-lib-quic_cfq.o", + "ssl/quic/libssl-lib-quic_channel.o", + "ssl/quic/libssl-lib-quic_demux.o", + "ssl/quic/libssl-lib-quic_engine.o", + "ssl/quic/libssl-lib-quic_fc.o", + "ssl/quic/libssl-lib-quic_fifd.o", + "ssl/quic/libssl-lib-quic_impl.o", + "ssl/quic/libssl-lib-quic_lcidm.o", + "ssl/quic/libssl-lib-quic_method.o", + "ssl/quic/libssl-lib-quic_obj.o", + "ssl/quic/libssl-lib-quic_port.o", + "ssl/quic/libssl-lib-quic_rcidm.o", + "ssl/quic/libssl-lib-quic_reactor.o", + "ssl/quic/libssl-lib-quic_reactor_wait_ctx.o", + "ssl/quic/libssl-lib-quic_record_rx.o", + "ssl/quic/libssl-lib-quic_record_shared.o", + "ssl/quic/libssl-lib-quic_record_tx.o", + "ssl/quic/libssl-lib-quic_record_util.o", + "ssl/quic/libssl-lib-quic_rstream.o", + "ssl/quic/libssl-lib-quic_rx_depack.o", + "ssl/quic/libssl-lib-quic_sf_list.o", + "ssl/quic/libssl-lib-quic_srt_gen.o", + "ssl/quic/libssl-lib-quic_srtm.o", + "ssl/quic/libssl-lib-quic_sstream.o", + "ssl/quic/libssl-lib-quic_statm.o", + "ssl/quic/libssl-lib-quic_stream_map.o", + "ssl/quic/libssl-lib-quic_thread_assist.o", + "ssl/quic/libssl-lib-quic_tls.o", + "ssl/quic/libssl-lib-quic_tls_api.o", + "ssl/quic/libssl-lib-quic_trace.o", + "ssl/quic/libssl-lib-quic_tserver.o", + "ssl/quic/libssl-lib-quic_txp.o", + "ssl/quic/libssl-lib-quic_txpim.o", + "ssl/quic/libssl-lib-quic_types.o", + "ssl/quic/libssl-lib-quic_wire.o", + "ssl/quic/libssl-lib-quic_wire_pkt.o", + "ssl/quic/libssl-lib-uint_set.o" + ], + "products" => { + "lib" => [ + "libssl" ] } }, "ssl/record" => { "deps" => [ - "ssl/record/libssl-lib-dtls1_bitmap.o", "ssl/record/libssl-lib-rec_layer_d1.o", - "ssl/record/libssl-lib-rec_layer_s3.o", - "ssl/record/libssl-lib-ssl3_buffer.o", - "ssl/record/libssl-lib-ssl3_record.o", - "ssl/record/libssl-lib-ssl3_record_tls13.o", - "ssl/record/libcommon-lib-tls_pad.o" + "ssl/record/libssl-lib-rec_layer_s3.o" + ], + "products" => { + "lib" => [ + "libssl" + ] + } + }, + "ssl/record/methods" => { + "deps" => [ + "ssl/record/methods/libssl-lib-dtls_meth.o", + "ssl/record/methods/libssl-lib-ssl3_meth.o", + "ssl/record/methods/libssl-lib-tls13_meth.o", + "ssl/record/methods/libssl-lib-tls1_meth.o", + "ssl/record/methods/libssl-lib-tls_common.o", + "ssl/record/methods/libssl-lib-tls_multib.o", + "ssl/record/methods/libssl-lib-tlsany_meth.o", + "ssl/record/methods/libcommon-lib-tls_pad.o", + "ssl/record/methods/libdefault-lib-ssl3_cbc.o", + "ssl/record/methods/libfips-lib-ssl3_cbc.o" ], "products" => { "lib" => [ "libssl", - "providers/libcommon.a" + "providers/libcommon.a", + "providers/libdefault.a", + "providers/libfips.a" + ] + } + }, + "ssl/rio" => { + "deps" => [ + "ssl/rio/libssl-lib-poll_builder.o", + "ssl/rio/libssl-lib-poll_immediate.o", + "ssl/rio/libssl-lib-rio_notifier.o" + ], + "products" => { + "lib" => [ + "libssl" ] } }, @@ -10328,9 +12090,40 @@ our %unified_info = ( "test/helpers/dtlstest-bin-ssltestlib.o", "test/helpers/endecode_test-bin-predefined_dhparams.o", "test/helpers/fatalerrtest-bin-ssltestlib.o", + "test/helpers/json_test-bin-noisydgrambio.o", + "test/helpers/json_test-bin-pktsplitbio.o", + "test/helpers/json_test-bin-quictestlib.o", + "test/helpers/json_test-bin-ssltestlib.o", + "test/helpers/pkcs12_api_test-bin-pkcs12.o", "test/helpers/pkcs12_format_test-bin-pkcs12.o", + "test/helpers/quic_multistream_test-bin-noisydgrambio.o", + "test/helpers/quic_multistream_test-bin-pktsplitbio.o", + "test/helpers/quic_multistream_test-bin-quictestlib.o", + "test/helpers/quic_multistream_test-bin-ssltestlib.o", + "test/helpers/quic_newcid_test-bin-noisydgrambio.o", + "test/helpers/quic_newcid_test-bin-pktsplitbio.o", + "test/helpers/quic_newcid_test-bin-quictestlib.o", + "test/helpers/quic_newcid_test-bin-ssltestlib.o", + "test/helpers/quic_radix_test-bin-noisydgrambio.o", + "test/helpers/quic_radix_test-bin-pktsplitbio.o", + "test/helpers/quic_radix_test-bin-quictestlib.o", + "test/helpers/quic_radix_test-bin-ssltestlib.o", + "test/helpers/quic_srt_gen_test-bin-noisydgrambio.o", + "test/helpers/quic_srt_gen_test-bin-pktsplitbio.o", + "test/helpers/quic_srt_gen_test-bin-quictestlib.o", + "test/helpers/quic_srt_gen_test-bin-ssltestlib.o", + "test/helpers/quicapitest-bin-noisydgrambio.o", + "test/helpers/quicapitest-bin-pktsplitbio.o", + "test/helpers/quicapitest-bin-quictestlib.o", + "test/helpers/quicapitest-bin-ssltestlib.o", + "test/helpers/quicfaultstest-bin-noisydgrambio.o", + "test/helpers/quicfaultstest-bin-pktsplitbio.o", + "test/helpers/quicfaultstest-bin-quictestlib.o", + "test/helpers/quicfaultstest-bin-ssltestlib.o", "test/helpers/recordlentest-bin-ssltestlib.o", + "test/helpers/rpktest-bin-ssltestlib.o", "test/helpers/servername_test-bin-ssltestlib.o", + "test/helpers/ssl_handshake_rtt_test-bin-ssltestlib.o", "test/helpers/ssl_old_test-bin-predefined_dhparams.o", "test/helpers/ssl_test-bin-handshake.o", "test/helpers/ssl_test-bin-handshake_srp.o", @@ -10339,7 +12132,8 @@ our %unified_info = ( "test/helpers/sslapitest-bin-ssltestlib.o", "test/helpers/sslbuffertest-bin-ssltestlib.o", "test/helpers/sslcorrupttest-bin-ssltestlib.o", - "test/helpers/tls13ccstest-bin-ssltestlib.o" + "test/helpers/tls13ccstest-bin-ssltestlib.o", + "test/helpers/tls13groupselection_test-bin-ssltestlib.o" ], "products" => { "bin" => [ @@ -10357,16 +12151,37 @@ our %unified_info = ( "test/dtlstest", "test/endecode_test", "test/fatalerrtest", + "test/json_test", + "test/pkcs12_api_test", "test/pkcs12_format_test", + "test/quic_multistream_test", + "test/quic_newcid_test", + "test/quic_radix_test", + "test/quic_srt_gen_test", + "test/quicapitest", + "test/quicfaultstest", "test/recordlentest", + "test/rpktest", "test/servername_test", + "test/ssl_handshake_rtt_test", "test/ssl_old_test", "test/ssl_test", "test/ssl_test_ctx_test", "test/sslapitest", "test/sslbuffertest", "test/sslcorrupttest", - "test/tls13ccstest" + "test/tls13ccstest", + "test/tls13groupselection_test" + ] + } + }, + "test/radix" => { + "deps" => [ + "test/radix/quic_radix_test-bin-quic_radix.o" + ], + "products" => { + "bin" => [ + "test/quic_radix_test" ] } }, @@ -10378,6 +12193,7 @@ our %unified_info = ( "test/testutil/libtestutil-lib-driver.o", "test/testutil/libtestutil-lib-fake_random.o", "test/testutil/libtestutil-lib-format_output.o", + "test/testutil/libtestutil-lib-helper.o", "test/testutil/libtestutil-lib-load.o", "test/testutil/libtestutil-lib-main.o", "test/testutil/libtestutil-lib-options.o", @@ -10413,6 +12229,12 @@ our %unified_info = ( } }, "generate" => { + "OpenSSLConfig.cmake" => [ + "exporters/cmake/OpenSSLConfig.cmake.in" + ], + "OpenSSLConfigVersion.cmake" => [ + "exporters/cmake/OpenSSLConfigVersion.cmake.in" + ], "apps/progs.c" => [ "apps/progs.pl", "\"-C\"", @@ -10423,6 +12245,19 @@ our %unified_info = ( "\"-H\"", "\$(APPS_OPENSSL)" ], + "builddata.pm" => [ + "util/mkinstallvars.pl", + "PREFIX=.", + "BINDIR=apps", + "APPLINKDIR=ms", + "LIBDIR=", + "INCLUDEDIR=include", + "\"INCLUDEDIR=\$(SRCDIR)/include\"", + "ENGINESDIR=engines", + "MODULESDIR=providers", + "\"VERSION=\$(VERSION)\"", + "\"LDLIBS=\$(LIB_EX_LIBS)\"" + ], "crypto/aes/aes-586.S" => [ "crypto/aes/asm/aes-586.pl" ], @@ -10444,6 +12279,24 @@ our %unified_info = ( "crypto/aes/aes-ppc.s" => [ "crypto/aes/asm/aes-ppc.pl" ], + "crypto/aes/aes-riscv32-zkn.s" => [ + "crypto/aes/asm/aes-riscv32-zkn.pl" + ], + "crypto/aes/aes-riscv64-zkn.s" => [ + "crypto/aes/asm/aes-riscv64-zkn.pl" + ], + "crypto/aes/aes-riscv64-zvbb-zvkg-zvkned.s" => [ + "crypto/aes/asm/aes-riscv64-zvbb-zvkg-zvkned.pl" + ], + "crypto/aes/aes-riscv64-zvkb-zvkned.s" => [ + "crypto/aes/asm/aes-riscv64-zvkb-zvkned.pl" + ], + "crypto/aes/aes-riscv64-zvkned.s" => [ + "crypto/aes/asm/aes-riscv64-zvkned.pl" + ], + "crypto/aes/aes-riscv64.s" => [ + "crypto/aes/asm/aes-riscv64.pl" + ], "crypto/aes/aes-s390x.S" => [ "crypto/aes/asm/aes-s390x.pl" ], @@ -10471,6 +12324,9 @@ our %unified_info = ( "crypto/aes/aesni-x86_64.s" => [ "crypto/aes/asm/aesni-x86_64.pl" ], + "crypto/aes/aesni-xts-avx512.s" => [ + "crypto/aes/asm/aesni-xts-avx512.pl" + ], "crypto/aes/aesp8-ppc.s" => [ "crypto/aes/asm/aesp8-ppc.pl" ], @@ -10483,12 +12339,18 @@ our %unified_info = ( "crypto/aes/bsaes-armv7.S" => [ "crypto/aes/asm/bsaes-armv7.pl" ], + "crypto/aes/bsaes-armv8.S" => [ + "crypto/aes/asm/bsaes-armv8.pl" + ], "crypto/aes/bsaes-x86_64.s" => [ "crypto/aes/asm/bsaes-x86_64.pl" ], "crypto/aes/vpaes-armv8.S" => [ "crypto/aes/asm/vpaes-armv8.pl" ], + "crypto/aes/vpaes-loongarch64.S" => [ + "crypto/aes/asm/vpaes-loongarch64.pl" + ], "crypto/aes/vpaes-ppc.s" => [ "crypto/aes/asm/vpaes-ppc.pl" ], @@ -10549,15 +12411,33 @@ our %unified_info = ( "crypto/bn/ppc-mont.s" => [ "crypto/bn/asm/ppc-mont.pl" ], + "crypto/bn/ppc64-mont-fixed.s" => [ + "crypto/bn/asm/ppc64-mont-fixed.pl" + ], "crypto/bn/ppc64-mont.s" => [ "crypto/bn/asm/ppc64-mont.pl" ], + "crypto/bn/rsaz-2k-avx512.s" => [ + "crypto/bn/asm/rsaz-2k-avx512.pl" + ], + "crypto/bn/rsaz-2k-avxifma.s" => [ + "crypto/bn/asm/rsaz-2k-avxifma.pl" + ], + "crypto/bn/rsaz-3k-avx512.s" => [ + "crypto/bn/asm/rsaz-3k-avx512.pl" + ], + "crypto/bn/rsaz-3k-avxifma.s" => [ + "crypto/bn/asm/rsaz-3k-avxifma.pl" + ], + "crypto/bn/rsaz-4k-avx512.s" => [ + "crypto/bn/asm/rsaz-4k-avx512.pl" + ], + "crypto/bn/rsaz-4k-avxifma.s" => [ + "crypto/bn/asm/rsaz-4k-avxifma.pl" + ], "crypto/bn/rsaz-avx2.s" => [ "crypto/bn/asm/rsaz-avx2.pl" ], - "crypto/bn/rsaz-avx512.s" => [ - "crypto/bn/asm/rsaz-avx512.pl" - ], "crypto/bn/rsaz-x86_64.s" => [ "crypto/bn/asm/rsaz-x86_64.pl" ], @@ -10619,6 +12499,9 @@ our %unified_info = ( "crypto/chacha/chacha-armv4.S" => [ "crypto/chacha/asm/chacha-armv4.pl" ], + "crypto/chacha/chacha-armv8-sve.S" => [ + "crypto/chacha/asm/chacha-armv8-sve.pl" + ], "crypto/chacha/chacha-armv8.S" => [ "crypto/chacha/asm/chacha-armv8.pl" ], @@ -10631,9 +12514,19 @@ our %unified_info = ( "crypto/chacha/chacha-ia64.s" => [ "crypto/chacha/chacha-ia64.S" ], + "crypto/chacha/chacha-loongarch64.S" => [ + "crypto/chacha/asm/chacha-loongarch64.pl" + ], "crypto/chacha/chacha-ppc.s" => [ "crypto/chacha/asm/chacha-ppc.pl" ], + "crypto/chacha/chacha-riscv64-v-zbb-zvkb.s" => [ + "crypto/chacha/asm/chacha-riscv64-v-zbb.pl", + "zvkb" + ], + "crypto/chacha/chacha-riscv64-v-zbb.s" => [ + "crypto/chacha/asm/chacha-riscv64-v-zbb.pl" + ], "crypto/chacha/chacha-s390x.S" => [ "crypto/chacha/asm/chacha-s390x.pl" ], @@ -10643,6 +12536,9 @@ our %unified_info = ( "crypto/chacha/chacha-x86_64.s" => [ "crypto/chacha/asm/chacha-x86_64.pl" ], + "crypto/chacha/chachap10-ppc.s" => [ + "crypto/chacha/asm/chachap10-ppc.pl" + ], "crypto/des/crypt586.S" => [ "crypto/des/asm/crypt586.pl" ], @@ -10655,6 +12551,9 @@ our %unified_info = ( "crypto/des/dest4-sparcv9.S" => [ "crypto/des/asm/dest4-sparcv9.pl" ], + "crypto/ec/ecp_nistp384-ppc64.s" => [ + "crypto/ec/asm/ecp_nistp384-ppc64.pl" + ], "crypto/ec/ecp_nistp521-ppc64.s" => [ "crypto/ec/asm/ecp_nistp521-ppc64.pl" ], @@ -10679,6 +12578,9 @@ our %unified_info = ( "crypto/ec/ecp_nistz256-x86_64.s" => [ "crypto/ec/asm/ecp_nistz256-x86_64.pl" ], + "crypto/ec/ecp_sm2p256-armv8.S" => [ + "crypto/ec/asm/ecp_sm2p256-armv8.pl" + ], "crypto/ec/x25519-ppc64.s" => [ "crypto/ec/asm/x25519-ppc64.pl" ], @@ -10688,18 +12590,39 @@ our %unified_info = ( "crypto/ia64cpuid.s" => [ "crypto/ia64cpuid.S" ], + "crypto/loongarch64cpuid.s" => [ + "crypto/loongarch64cpuid.pl" + ], "crypto/md5/md5-586.S" => [ "crypto/md5/asm/md5-586.pl" ], + "crypto/md5/md5-aarch64.S" => [ + "crypto/md5/asm/md5-aarch64.pl" + ], + "crypto/md5/md5-loongarch64.S" => [ + "crypto/md5/asm/md5-loongarch64.pl" + ], "crypto/md5/md5-sparcv9.S" => [ "crypto/md5/asm/md5-sparcv9.pl" ], "crypto/md5/md5-x86_64.s" => [ "crypto/md5/asm/md5-x86_64.pl" ], + "crypto/modes/aes-gcm-armv8-unroll8_64.S" => [ + "crypto/modes/asm/aes-gcm-armv8-unroll8_64.pl" + ], "crypto/modes/aes-gcm-armv8_64.S" => [ "crypto/modes/asm/aes-gcm-armv8_64.pl" ], + "crypto/modes/aes-gcm-avx512.s" => [ + "crypto/modes/asm/aes-gcm-avx512.pl" + ], + "crypto/modes/aes-gcm-ppc.s" => [ + "crypto/modes/asm/aes-gcm-ppc.pl" + ], + "crypto/modes/aes-gcm-riscv64-zvkb-zvkg-zvkned.s" => [ + "crypto/modes/asm/aes-gcm-riscv64-zvkb-zvkg-zvkned.pl" + ], "crypto/modes/aesni-gcm-x86_64.s" => [ "crypto/modes/asm/aesni-gcm-x86_64.pl" ], @@ -10718,6 +12641,15 @@ our %unified_info = ( "crypto/modes/ghash-parisc.s" => [ "crypto/modes/asm/ghash-parisc.pl" ], + "crypto/modes/ghash-riscv64-zvkb-zvbc.s" => [ + "crypto/modes/asm/ghash-riscv64-zvkb-zvbc.pl" + ], + "crypto/modes/ghash-riscv64-zvkg.s" => [ + "crypto/modes/asm/ghash-riscv64-zvkg.pl" + ], + "crypto/modes/ghash-riscv64.s" => [ + "crypto/modes/asm/ghash-riscv64.pl" + ], "crypto/modes/ghash-s390x.S" => [ "crypto/modes/asm/ghash-s390x.pl" ], @@ -10736,6 +12668,9 @@ our %unified_info = ( "crypto/modes/ghashv8-armx.S" => [ "crypto/modes/asm/ghashv8-armx.pl" ], + "crypto/params_idx.c" => [ + "crypto/params_idx.c.in" + ], "crypto/pariscid.s" => [ "crypto/pariscid.pl" ], @@ -10796,6 +12731,12 @@ our %unified_info = ( "crypto/ripemd/rmd-586.S" => [ "crypto/ripemd/asm/rmd-586.pl" ], + "crypto/riscv32cpuid.s" => [ + "crypto/riscv32cpuid.pl" + ], + "crypto/riscv64cpuid.s" => [ + "crypto/riscv64cpuid.pl" + ], "crypto/s390xcpuid.S" => [ "crypto/s390xcpuid.pl" ], @@ -10904,6 +12845,9 @@ our %unified_info = ( "crypto/sha/sha256-ppc.s" => [ "crypto/sha/asm/sha512-ppc.pl" ], + "crypto/sha/sha256-riscv64-zvkb-zvknha_or_zvknhb.S" => [ + "crypto/sha/asm/sha256-riscv64-zvkb-zvknha_or_zvknhb.pl" + ], "crypto/sha/sha256-s390x.S" => [ "crypto/sha/asm/sha512-s390x.pl" ], @@ -10940,6 +12884,9 @@ our %unified_info = ( "crypto/sha/sha512-ppc.s" => [ "crypto/sha/asm/sha512-ppc.pl" ], + "crypto/sha/sha512-riscv64-zvkb-zvknhb.S" => [ + "crypto/sha/asm/sha512-riscv64-zvkb-zvknhb.pl" + ], "crypto/sha/sha512-s390x.S" => [ "crypto/sha/asm/sha512-s390x.pl" ], @@ -10952,6 +12899,24 @@ our %unified_info = ( "crypto/sha/sha512p8-ppc.s" => [ "crypto/sha/asm/sha512p8-ppc.pl" ], + "crypto/sm3/sm3-armv8.S" => [ + "crypto/sm3/asm/sm3-armv8.pl" + ], + "crypto/sm3/sm3-riscv64-zvksh.S" => [ + "crypto/sm3/asm/sm3-riscv64-zvksh.pl" + ], + "crypto/sm4/sm4-armv8.S" => [ + "crypto/sm4/asm/sm4-armv8.pl" + ], + "crypto/sm4/sm4-riscv64-zvksed.s" => [ + "crypto/sm4/asm/sm4-riscv64-zvksed.pl" + ], + "crypto/sm4/vpsm4-armv8.S" => [ + "crypto/sm4/asm/vpsm4-armv8.pl" + ], + "crypto/sm4/vpsm4_ex-armv8.S" => [ + "crypto/sm4/asm/vpsm4_ex-armv8.pl" + ], "crypto/uplink-ia64.s" => [ "ms/uplink-ia64.pl" ], @@ -11117,6 +13082,9 @@ our %unified_info = ( "doc/html/man1/openssl-sess_id.html" => [ "doc/man1/openssl-sess_id.pod" ], + "doc/html/man1/openssl-skeyutl.html" => [ + "doc/man1/openssl-skeyutl.pod" + ], "doc/html/man1/openssl-smime.html" => [ "doc/man1/openssl-smime.pod" ], @@ -11258,6 +13226,9 @@ our %unified_info = ( "doc/html/man3/BIO_get_ex_new_index.html" => [ "doc/man3/BIO_get_ex_new_index.pod" ], + "doc/html/man3/BIO_get_rpoll_descriptor.html" => [ + "doc/man3/BIO_get_rpoll_descriptor.pod" + ], "doc/html/man3/BIO_meth_new.html" => [ "doc/man3/BIO_meth_new.pod" ], @@ -11294,6 +13265,9 @@ our %unified_info = ( "doc/html/man3/BIO_s_datagram.html" => [ "doc/man3/BIO_s_datagram.pod" ], + "doc/html/man3/BIO_s_dgram_pair.html" => [ + "doc/man3/BIO_s_dgram_pair.pod" + ], "doc/html/man3/BIO_s_fd.html" => [ "doc/man3/BIO_s_fd.pod" ], @@ -11309,6 +13283,9 @@ our %unified_info = ( "doc/html/man3/BIO_s_socket.html" => [ "doc/man3/BIO_s_socket.pod" ], + "doc/html/man3/BIO_sendmmsg.html" => [ + "doc/man3/BIO_sendmmsg.pod" + ], "doc/html/man3/BIO_set_callback.html" => [ "doc/man3/BIO_set_callback.pod" ], @@ -11381,6 +13358,9 @@ our %unified_info = ( "doc/html/man3/BUF_MEM_new.html" => [ "doc/man3/BUF_MEM_new.pod" ], + "doc/html/man3/CMAC_CTX.html" => [ + "doc/man3/CMAC_CTX.pod" + ], "doc/html/man3/CMS_EncryptedData_decrypt.html" => [ "doc/man3/CMS_EncryptedData_decrypt.pod" ], @@ -11447,6 +13427,9 @@ our %unified_info = ( "doc/html/man3/CMS_verify_receipt.html" => [ "doc/man3/CMS_verify_receipt.pod" ], + "doc/html/man3/COMP_CTX_new.html" => [ + "doc/man3/COMP_CTX_new.pod" + ], "doc/html/man3/CONF_modules_free.html" => [ "doc/man3/CONF_modules_free.pod" ], @@ -11546,6 +13529,12 @@ our %unified_info = ( "doc/html/man3/DTLS_set_timer_cb.html" => [ "doc/man3/DTLS_set_timer_cb.pod" ], + "doc/html/man3/DTLSv1_get_timeout.html" => [ + "doc/man3/DTLSv1_get_timeout.pod" + ], + "doc/html/man3/DTLSv1_handle_timeout.html" => [ + "doc/man3/DTLSv1_handle_timeout.pod" + ], "doc/html/man3/DTLSv1_listen.html" => [ "doc/man3/DTLSv1_listen.pod" ], @@ -11684,6 +13673,9 @@ our %unified_info = ( "doc/html/man3/EVP_PKEY_CTX_get0_pkey.html" => [ "doc/man3/EVP_PKEY_CTX_get0_pkey.pod" ], + "doc/html/man3/EVP_PKEY_CTX_get_algor.html" => [ + "doc/man3/EVP_PKEY_CTX_get_algor.pod" + ], "doc/html/man3/EVP_PKEY_CTX_new.html" => [ "doc/man3/EVP_PKEY_CTX_new.pod" ], @@ -11801,6 +13793,12 @@ our %unified_info = ( "doc/html/man3/EVP_SIGNATURE.html" => [ "doc/man3/EVP_SIGNATURE.pod" ], + "doc/html/man3/EVP_SKEY.html" => [ + "doc/man3/EVP_SKEY.pod" + ], + "doc/html/man3/EVP_SKEYMGMT.html" => [ + "doc/man3/EVP_SKEYMGMT.pod" + ], "doc/html/man3/EVP_SealInit.html" => [ "doc/man3/EVP_SealInit.pod" ], @@ -11888,6 +13886,9 @@ our %unified_info = ( "doc/html/man3/EVP_whirlpool.html" => [ "doc/man3/EVP_whirlpool.pod" ], + "doc/html/man3/GENERAL_NAME.html" => [ + "doc/man3/GENERAL_NAME.pod" + ], "doc/html/man3/HMAC.html" => [ "doc/man3/HMAC.pod" ], @@ -11960,9 +13961,15 @@ our %unified_info = ( "doc/html/man3/OPENSSL_load_builtin_modules.html" => [ "doc/man3/OPENSSL_load_builtin_modules.pod" ], + "doc/html/man3/OPENSSL_load_u16_le.html" => [ + "doc/man3/OPENSSL_load_u16_le.pod" + ], "doc/html/man3/OPENSSL_malloc.html" => [ "doc/man3/OPENSSL_malloc.pod" ], + "doc/html/man3/OPENSSL_riscvcap.html" => [ + "doc/man3/OPENSSL_riscvcap.pod" + ], "doc/html/man3/OPENSSL_s390xcap.html" => [ "doc/man3/OPENSSL_s390xcap.pod" ], @@ -11978,12 +13985,18 @@ our %unified_info = ( "doc/html/man3/OSSL_CALLBACK.html" => [ "doc/man3/OSSL_CALLBACK.pod" ], + "doc/html/man3/OSSL_CMP_ATAV_set0.html" => [ + "doc/man3/OSSL_CMP_ATAV_set0.pod" + ], "doc/html/man3/OSSL_CMP_CTX_new.html" => [ "doc/man3/OSSL_CMP_CTX_new.pod" ], "doc/html/man3/OSSL_CMP_HDR_get0_transactionID.html" => [ "doc/man3/OSSL_CMP_HDR_get0_transactionID.pod" ], + "doc/html/man3/OSSL_CMP_ITAV_new_caCerts.html" => [ + "doc/man3/OSSL_CMP_ITAV_new_caCerts.pod" + ], "doc/html/man3/OSSL_CMP_ITAV_set0.html" => [ "doc/man3/OSSL_CMP_ITAV_set0.pod" ], @@ -12053,9 +14066,18 @@ our %unified_info = ( "doc/html/man3/OSSL_ENCODER_to_bio.html" => [ "doc/man3/OSSL_ENCODER_to_bio.pod" ], + "doc/html/man3/OSSL_ERR_STATE_save.html" => [ + "doc/man3/OSSL_ERR_STATE_save.pod" + ], "doc/html/man3/OSSL_ESS_check_signing_certs.html" => [ "doc/man3/OSSL_ESS_check_signing_certs.pod" ], + "doc/html/man3/OSSL_GENERAL_NAMES_print.html" => [ + "doc/man3/OSSL_GENERAL_NAMES_print.pod" + ], + "doc/html/man3/OSSL_HPKE_CTX_new.html" => [ + "doc/man3/OSSL_HPKE_CTX_new.pod" + ], "doc/html/man3/OSSL_HTTP_REQ_CTX.html" => [ "doc/man3/OSSL_HTTP_REQ_CTX.pod" ], @@ -12065,12 +14087,24 @@ our %unified_info = ( "doc/html/man3/OSSL_HTTP_transfer.html" => [ "doc/man3/OSSL_HTTP_transfer.pod" ], + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX.html" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX.pod" + ], + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX_print.html" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX_print.pod" + ], + "doc/html/man3/OSSL_INDICATOR_set_callback.html" => [ + "doc/man3/OSSL_INDICATOR_set_callback.pod" + ], "doc/html/man3/OSSL_ITEM.html" => [ "doc/man3/OSSL_ITEM.pod" ], "doc/html/man3/OSSL_LIB_CTX.html" => [ "doc/man3/OSSL_LIB_CTX.pod" ], + "doc/html/man3/OSSL_LIB_CTX_set_conf_diagnostics.html" => [ + "doc/man3/OSSL_LIB_CTX_set_conf_diagnostics.pod" + ], "doc/html/man3/OSSL_PARAM.html" => [ "doc/man3/OSSL_PARAM.pod" ], @@ -12086,9 +14120,15 @@ our %unified_info = ( "doc/html/man3/OSSL_PARAM_int.html" => [ "doc/man3/OSSL_PARAM_int.pod" ], + "doc/html/man3/OSSL_PARAM_print_to_bio.html" => [ + "doc/man3/OSSL_PARAM_print_to_bio.pod" + ], "doc/html/man3/OSSL_PROVIDER.html" => [ "doc/man3/OSSL_PROVIDER.pod" ], + "doc/html/man3/OSSL_QUIC_client_method.html" => [ + "doc/man3/OSSL_QUIC_client_method.pod" + ], "doc/html/man3/OSSL_SELF_TEST_new.html" => [ "doc/man3/OSSL_SELF_TEST_new.pod" ], @@ -12113,6 +14153,9 @@ our %unified_info = ( "doc/html/man3/OSSL_STORE_open.html" => [ "doc/man3/OSSL_STORE_open.pod" ], + "doc/html/man3/OSSL_sleep.html" => [ + "doc/man3/OSSL_sleep.pod" + ], "doc/html/man3/OSSL_trace_enabled.html" => [ "doc/man3/OSSL_trace_enabled.pod" ], @@ -12128,6 +14171,9 @@ our %unified_info = ( "doc/html/man3/OpenSSL_version.html" => [ "doc/man3/OpenSSL_version.pod" ], + "doc/html/man3/PBMAC1_get1_pbkdf2_param.html" => [ + "doc/man3/PBMAC1_get1_pbkdf2_param.pod" + ], "doc/html/man3/PEM_X509_INFO_read_bio_ex.html" => [ "doc/man3/PEM_X509_INFO_read_bio_ex.pod" ], @@ -12164,6 +14210,9 @@ our %unified_info = ( "doc/html/man3/PKCS12_SAFEBAG_get1_cert.html" => [ "doc/man3/PKCS12_SAFEBAG_get1_cert.pod" ], + "doc/html/man3/PKCS12_SAFEBAG_set0_attrs.html" => [ + "doc/man3/PKCS12_SAFEBAG_set0_attrs.pod" + ], "doc/html/man3/PKCS12_add1_attr_by_NID.html" => [ "doc/man3/PKCS12_add1_attr_by_NID.pod" ], @@ -12437,6 +14486,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set0_CA_list.html" => [ "doc/man3/SSL_CTX_set0_CA_list.pod" ], + "doc/html/man3/SSL_CTX_set1_cert_comp_preference.html" => [ + "doc/man3/SSL_CTX_set1_cert_comp_preference.pod" + ], "doc/html/man3/SSL_CTX_set1_curves.html" => [ "doc/man3/SSL_CTX_set1_curves.pod" ], @@ -12476,6 +14528,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_default_passwd_cb.html" => [ "doc/man3/SSL_CTX_set_default_passwd_cb.pod" ], + "doc/html/man3/SSL_CTX_set_domain_flags.html" => [ + "doc/man3/SSL_CTX_set_domain_flags.pod" + ], "doc/html/man3/SSL_CTX_set_generate_session_id.html" => [ "doc/man3/SSL_CTX_set_generate_session_id.pod" ], @@ -12497,6 +14552,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_msg_callback.html" => [ "doc/man3/SSL_CTX_set_msg_callback.pod" ], + "doc/html/man3/SSL_CTX_set_new_pending_conn_cb.html" => [ + "doc/man3/SSL_CTX_set_new_pending_conn_cb.pod" + ], "doc/html/man3/SSL_CTX_set_num_tickets.html" => [ "doc/man3/SSL_CTX_set_num_tickets.pod" ], @@ -12611,6 +14669,9 @@ our %unified_info = ( "doc/html/man3/SSL_accept.html" => [ "doc/man3/SSL_accept.pod" ], + "doc/html/man3/SSL_accept_stream.html" => [ + "doc/man3/SSL_accept_stream.pod" + ], "doc/html/man3/SSL_alert_type_string.html" => [ "doc/man3/SSL_alert_type_string.pod" ], @@ -12638,9 +14699,21 @@ our %unified_info = ( "doc/html/man3/SSL_free.html" => [ "doc/man3/SSL_free.pod" ], + "doc/html/man3/SSL_get0_connection.html" => [ + "doc/man3/SSL_get0_connection.pod" + ], + "doc/html/man3/SSL_get0_group_name.html" => [ + "doc/man3/SSL_get0_group_name.pod" + ], + "doc/html/man3/SSL_get0_peer_rpk.html" => [ + "doc/man3/SSL_get0_peer_rpk.pod" + ], "doc/html/man3/SSL_get0_peer_scts.html" => [ "doc/man3/SSL_get0_peer_scts.pod" ], + "doc/html/man3/SSL_get1_builtin_sigalgs.html" => [ + "doc/man3/SSL_get1_builtin_sigalgs.pod" + ], "doc/html/man3/SSL_get_SSL_CTX.html" => [ "doc/man3/SSL_get_SSL_CTX.pod" ], @@ -12656,6 +14729,9 @@ our %unified_info = ( "doc/html/man3/SSL_get_client_random.html" => [ "doc/man3/SSL_get_client_random.pod" ], + "doc/html/man3/SSL_get_conn_close_info.html" => [ + "doc/man3/SSL_get_conn_close_info.pod" + ], "doc/html/man3/SSL_get_current_cipher.html" => [ "doc/man3/SSL_get_current_cipher.pod" ], @@ -12665,12 +14741,18 @@ our %unified_info = ( "doc/html/man3/SSL_get_error.html" => [ "doc/man3/SSL_get_error.pod" ], + "doc/html/man3/SSL_get_event_timeout.html" => [ + "doc/man3/SSL_get_event_timeout.pod" + ], "doc/html/man3/SSL_get_extms_support.html" => [ "doc/man3/SSL_get_extms_support.pod" ], "doc/html/man3/SSL_get_fd.html" => [ "doc/man3/SSL_get_fd.pod" ], + "doc/html/man3/SSL_get_handshake_rtt.html" => [ + "doc/man3/SSL_get_handshake_rtt.pod" + ], "doc/html/man3/SSL_get_peer_cert_chain.html" => [ "doc/man3/SSL_get_peer_cert_chain.pod" ], @@ -12689,12 +14771,24 @@ our %unified_info = ( "doc/html/man3/SSL_get_rbio.html" => [ "doc/man3/SSL_get_rbio.pod" ], + "doc/html/man3/SSL_get_rpoll_descriptor.html" => [ + "doc/man3/SSL_get_rpoll_descriptor.pod" + ], "doc/html/man3/SSL_get_session.html" => [ "doc/man3/SSL_get_session.pod" ], "doc/html/man3/SSL_get_shared_sigalgs.html" => [ "doc/man3/SSL_get_shared_sigalgs.pod" ], + "doc/html/man3/SSL_get_stream_id.html" => [ + "doc/man3/SSL_get_stream_id.pod" + ], + "doc/html/man3/SSL_get_stream_read_state.html" => [ + "doc/man3/SSL_get_stream_read_state.pod" + ], + "doc/html/man3/SSL_get_value_uint.html" => [ + "doc/man3/SSL_get_value_uint.pod" + ], "doc/html/man3/SSL_get_verify_result.html" => [ "doc/man3/SSL_get_verify_result.pod" ], @@ -12704,9 +14798,15 @@ our %unified_info = ( "doc/html/man3/SSL_group_to_name.html" => [ "doc/man3/SSL_group_to_name.pod" ], + "doc/html/man3/SSL_handle_events.html" => [ + "doc/man3/SSL_handle_events.pod" + ], "doc/html/man3/SSL_in_init.html" => [ "doc/man3/SSL_in_init.pod" ], + "doc/html/man3/SSL_inject_net_dgram.html" => [ + "doc/man3/SSL_inject_net_dgram.pod" + ], "doc/html/man3/SSL_key_update.html" => [ "doc/man3/SSL_key_update.pod" ], @@ -12719,9 +14819,21 @@ our %unified_info = ( "doc/html/man3/SSL_new.html" => [ "doc/man3/SSL_new.pod" ], + "doc/html/man3/SSL_new_domain.html" => [ + "doc/man3/SSL_new_domain.pod" + ], + "doc/html/man3/SSL_new_listener.html" => [ + "doc/man3/SSL_new_listener.pod" + ], + "doc/html/man3/SSL_new_stream.html" => [ + "doc/man3/SSL_new_stream.pod" + ], "doc/html/man3/SSL_pending.html" => [ "doc/man3/SSL_pending.pod" ], + "doc/html/man3/SSL_poll.html" => [ + "doc/man3/SSL_poll.pod" + ], "doc/html/man3/SSL_read.html" => [ "doc/man3/SSL_read.pod" ], @@ -12737,24 +14849,45 @@ our %unified_info = ( "doc/html/man3/SSL_set1_host.html" => [ "doc/man3/SSL_set1_host.pod" ], + "doc/html/man3/SSL_set1_initial_peer_addr.html" => [ + "doc/man3/SSL_set1_initial_peer_addr.pod" + ], + "doc/html/man3/SSL_set1_server_cert_type.html" => [ + "doc/man3/SSL_set1_server_cert_type.pod" + ], "doc/html/man3/SSL_set_async_callback.html" => [ "doc/man3/SSL_set_async_callback.pod" ], "doc/html/man3/SSL_set_bio.html" => [ "doc/man3/SSL_set_bio.pod" ], + "doc/html/man3/SSL_set_blocking_mode.html" => [ + "doc/man3/SSL_set_blocking_mode.pod" + ], "doc/html/man3/SSL_set_connect_state.html" => [ "doc/man3/SSL_set_connect_state.pod" ], + "doc/html/man3/SSL_set_default_stream_mode.html" => [ + "doc/man3/SSL_set_default_stream_mode.pod" + ], "doc/html/man3/SSL_set_fd.html" => [ "doc/man3/SSL_set_fd.pod" ], + "doc/html/man3/SSL_set_incoming_stream_policy.html" => [ + "doc/man3/SSL_set_incoming_stream_policy.pod" + ], + "doc/html/man3/SSL_set_quic_tls_cbs.html" => [ + "doc/man3/SSL_set_quic_tls_cbs.pod" + ], "doc/html/man3/SSL_set_retry_verify.html" => [ "doc/man3/SSL_set_retry_verify.pod" ], "doc/html/man3/SSL_set_session.html" => [ "doc/man3/SSL_set_session.pod" ], + "doc/html/man3/SSL_set_session_secret_cb.html" => [ + "doc/man3/SSL_set_session_secret_cb.pod" + ], "doc/html/man3/SSL_set_shutdown.html" => [ "doc/man3/SSL_set_shutdown.pod" ], @@ -12767,6 +14900,12 @@ our %unified_info = ( "doc/html/man3/SSL_state_string.html" => [ "doc/man3/SSL_state_string.pod" ], + "doc/html/man3/SSL_stream_conclude.html" => [ + "doc/man3/SSL_stream_conclude.pod" + ], + "doc/html/man3/SSL_stream_reset.html" => [ + "doc/man3/SSL_stream_reset.pod" + ], "doc/html/man3/SSL_want.html" => [ "doc/man3/SSL_want.pod" ], @@ -12776,8 +14915,8 @@ our %unified_info = ( "doc/html/man3/TS_RESP_CTX_new.html" => [ "doc/man3/TS_RESP_CTX_new.pod" ], - "doc/html/man3/TS_VERIFY_CTX_set_certs.html" => [ - "doc/man3/TS_VERIFY_CTX_set_certs.pod" + "doc/html/man3/TS_VERIFY_CTX.html" => [ + "doc/man3/TS_VERIFY_CTX.pod" ], "doc/html/man3/UI_STRING.html" => [ "doc/man3/UI_STRING.pod" @@ -12797,6 +14936,21 @@ our %unified_info = ( "doc/html/man3/X509V3_set_ctx.html" => [ "doc/man3/X509V3_set_ctx.pod" ], + "doc/html/man3/X509_ACERT_add1_attr.html" => [ + "doc/man3/X509_ACERT_add1_attr.pod" + ], + "doc/html/man3/X509_ACERT_add_attr_nconf.html" => [ + "doc/man3/X509_ACERT_add_attr_nconf.pod" + ], + "doc/html/man3/X509_ACERT_get0_holder_baseCertId.html" => [ + "doc/man3/X509_ACERT_get0_holder_baseCertId.pod" + ], + "doc/html/man3/X509_ACERT_get_attr.html" => [ + "doc/man3/X509_ACERT_get_attr.pod" + ], + "doc/html/man3/X509_ACERT_print_ex.html" => [ + "doc/man3/X509_ACERT_print_ex.pod" + ], "doc/html/man3/X509_ALGOR_dup.html" => [ "doc/man3/X509_ALGOR_dup.pod" ], @@ -12845,6 +14999,9 @@ our %unified_info = ( "doc/html/man3/X509_SIG_get0.html" => [ "doc/man3/X509_SIG_get0.pod" ], + "doc/html/man3/X509_STORE_CTX_get_by_subject.html" => [ + "doc/man3/X509_STORE_CTX_get_by_subject.pod" + ], "doc/html/man3/X509_STORE_CTX_get_error.html" => [ "doc/man3/X509_STORE_CTX_get_error.pod" ], @@ -12911,6 +15068,9 @@ our %unified_info = ( "doc/html/man3/X509_get0_uids.html" => [ "doc/man3/X509_get0_uids.pod" ], + "doc/html/man3/X509_get_default_cert_file.html" => [ + "doc/man3/X509_get_default_cert_file.pod" + ], "doc/html/man3/X509_get_extension_flags.html" => [ "doc/man3/X509_get_extension_flags.pod" ], @@ -13034,9 +15194,15 @@ our %unified_info = ( "doc/html/man7/EVP_CIPHER-SM4.html" => [ "doc/man7/EVP_CIPHER-SM4.pod" ], + "doc/html/man7/EVP_KDF-ARGON2.html" => [ + "doc/man7/EVP_KDF-ARGON2.pod" + ], "doc/html/man7/EVP_KDF-HKDF.html" => [ "doc/man7/EVP_KDF-HKDF.pod" ], + "doc/html/man7/EVP_KDF-HMAC-DRBG.html" => [ + "doc/man7/EVP_KDF-HMAC-DRBG.pod" + ], "doc/html/man7/EVP_KDF-KB.html" => [ "doc/man7/EVP_KDF-KB.pod" ], @@ -13052,6 +15218,9 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-PKCS12KDF.html" => [ "doc/man7/EVP_KDF-PKCS12KDF.pod" ], + "doc/html/man7/EVP_KDF-PVKKDF.html" => [ + "doc/man7/EVP_KDF-PVKKDF.pod" + ], "doc/html/man7/EVP_KDF-SCRYPT.html" => [ "doc/man7/EVP_KDF-SCRYPT.pod" ], @@ -13076,9 +15245,18 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-X963.html" => [ "doc/man7/EVP_KDF-X963.pod" ], + "doc/html/man7/EVP_KEM-EC.html" => [ + "doc/man7/EVP_KEM-EC.pod" + ], + "doc/html/man7/EVP_KEM-ML-KEM.html" => [ + "doc/man7/EVP_KEM-ML-KEM.pod" + ], "doc/html/man7/EVP_KEM-RSA.html" => [ "doc/man7/EVP_KEM-RSA.pod" ], + "doc/html/man7/EVP_KEM-X25519.html" => [ + "doc/man7/EVP_KEM-X25519.pod" + ], "doc/html/man7/EVP_KEYEXCH-DH.html" => [ "doc/man7/EVP_KEYEXCH-DH.pod" ], @@ -13112,6 +15290,9 @@ our %unified_info = ( "doc/html/man7/EVP_MD-BLAKE2.html" => [ "doc/man7/EVP_MD-BLAKE2.pod" ], + "doc/html/man7/EVP_MD-KECCAK.html" => [ + "doc/man7/EVP_MD-KECCAK.pod" + ], "doc/html/man7/EVP_MD-MD2.html" => [ "doc/man7/EVP_MD-MD2.pod" ], @@ -13169,15 +15350,27 @@ our %unified_info = ( "doc/html/man7/EVP_PKEY-HMAC.html" => [ "doc/man7/EVP_PKEY-HMAC.pod" ], + "doc/html/man7/EVP_PKEY-ML-DSA.html" => [ + "doc/man7/EVP_PKEY-ML-DSA.pod" + ], + "doc/html/man7/EVP_PKEY-ML-KEM.html" => [ + "doc/man7/EVP_PKEY-ML-KEM.pod" + ], "doc/html/man7/EVP_PKEY-RSA.html" => [ "doc/man7/EVP_PKEY-RSA.pod" ], + "doc/html/man7/EVP_PKEY-SLH-DSA.html" => [ + "doc/man7/EVP_PKEY-SLH-DSA.pod" + ], "doc/html/man7/EVP_PKEY-SM2.html" => [ "doc/man7/EVP_PKEY-SM2.pod" ], "doc/html/man7/EVP_PKEY-X25519.html" => [ "doc/man7/EVP_PKEY-X25519.pod" ], + "doc/html/man7/EVP_RAND-CRNG-TEST.html" => [ + "doc/man7/EVP_RAND-CRNG-TEST.pod" + ], "doc/html/man7/EVP_RAND-CTR-DRBG.html" => [ "doc/man7/EVP_RAND-CTR-DRBG.pod" ], @@ -13187,6 +15380,9 @@ our %unified_info = ( "doc/html/man7/EVP_RAND-HMAC-DRBG.html" => [ "doc/man7/EVP_RAND-HMAC-DRBG.pod" ], + "doc/html/man7/EVP_RAND-JITTER.html" => [ + "doc/man7/EVP_RAND-JITTER.pod" + ], "doc/html/man7/EVP_RAND-SEED-SRC.html" => [ "doc/man7/EVP_RAND-SEED-SRC.pod" ], @@ -13208,9 +15404,15 @@ our %unified_info = ( "doc/html/man7/EVP_SIGNATURE-HMAC.html" => [ "doc/man7/EVP_SIGNATURE-HMAC.pod" ], + "doc/html/man7/EVP_SIGNATURE-ML-DSA.html" => [ + "doc/man7/EVP_SIGNATURE-ML-DSA.pod" + ], "doc/html/man7/EVP_SIGNATURE-RSA.html" => [ "doc/man7/EVP_SIGNATURE-RSA.pod" ], + "doc/html/man7/EVP_SIGNATURE-SLH-DSA.html" => [ + "doc/man7/EVP_SIGNATURE-SLH-DSA.pod" + ], "doc/html/man7/OSSL_PROVIDER-FIPS.html" => [ "doc/man7/OSSL_PROVIDER-FIPS.pod" ], @@ -13226,6 +15428,9 @@ our %unified_info = ( "doc/html/man7/OSSL_PROVIDER-null.html" => [ "doc/man7/OSSL_PROVIDER-null.pod" ], + "doc/html/man7/OSSL_STORE-winstore.html" => [ + "doc/man7/OSSL_STORE-winstore.pod" + ], "doc/html/man7/RAND.html" => [ "doc/man7/RAND.pod" ], @@ -13238,9 +15443,6 @@ our %unified_info = ( "doc/html/man7/bio.html" => [ "doc/man7/bio.pod" ], - "doc/html/man7/crypto.html" => [ - "doc/man7/crypto.pod" - ], "doc/html/man7/ct.html" => [ "doc/man7/ct.pod" ], @@ -13271,9 +15473,6 @@ our %unified_info = ( "doc/html/man7/life_cycle-rand.html" => [ "doc/man7/life_cycle-rand.pod" ], - "doc/html/man7/migration_guide.html" => [ - "doc/man7/migration_guide.pod" - ], "doc/html/man7/openssl-core.h.html" => [ "doc/man7/openssl-core.h.pod" ], @@ -13289,12 +15488,66 @@ our %unified_info = ( "doc/html/man7/openssl-glossary.html" => [ "doc/man7/openssl-glossary.pod" ], + "doc/html/man7/openssl-qlog.html" => [ + "doc/man7/openssl-qlog.pod" + ], + "doc/html/man7/openssl-quic-concurrency.html" => [ + "doc/man7/openssl-quic-concurrency.pod" + ], + "doc/html/man7/openssl-quic.html" => [ + "doc/man7/openssl-quic.pod" + ], "doc/html/man7/openssl-threads.html" => [ "doc/man7/openssl-threads.pod" ], "doc/html/man7/openssl_user_macros.html" => [ "doc/man7/openssl_user_macros.pod" ], + "doc/html/man7/ossl-guide-introduction.html" => [ + "doc/man7/ossl-guide-introduction.pod" + ], + "doc/html/man7/ossl-guide-libcrypto-introduction.html" => [ + "doc/man7/ossl-guide-libcrypto-introduction.pod" + ], + "doc/html/man7/ossl-guide-libraries-introduction.html" => [ + "doc/man7/ossl-guide-libraries-introduction.pod" + ], + "doc/html/man7/ossl-guide-libssl-introduction.html" => [ + "doc/man7/ossl-guide-libssl-introduction.pod" + ], + "doc/html/man7/ossl-guide-migration.html" => [ + "doc/man7/ossl-guide-migration.pod" + ], + "doc/html/man7/ossl-guide-quic-client-block.html" => [ + "doc/man7/ossl-guide-quic-client-block.pod" + ], + "doc/html/man7/ossl-guide-quic-client-non-block.html" => [ + "doc/man7/ossl-guide-quic-client-non-block.pod" + ], + "doc/html/man7/ossl-guide-quic-introduction.html" => [ + "doc/man7/ossl-guide-quic-introduction.pod" + ], + "doc/html/man7/ossl-guide-quic-multi-stream.html" => [ + "doc/man7/ossl-guide-quic-multi-stream.pod" + ], + "doc/html/man7/ossl-guide-quic-server-block.html" => [ + "doc/man7/ossl-guide-quic-server-block.pod" + ], + "doc/html/man7/ossl-guide-quic-server-non-block.html" => [ + "doc/man7/ossl-guide-quic-server-non-block.pod" + ], + "doc/html/man7/ossl-guide-tls-client-block.html" => [ + "doc/man7/ossl-guide-tls-client-block.pod" + ], + "doc/html/man7/ossl-guide-tls-client-non-block.html" => [ + "doc/man7/ossl-guide-tls-client-non-block.pod" + ], + "doc/html/man7/ossl-guide-tls-introduction.html" => [ + "doc/man7/ossl-guide-tls-introduction.pod" + ], + "doc/html/man7/ossl-guide-tls-server-block.html" => [ + "doc/man7/ossl-guide-tls-server-block.pod" + ], "doc/html/man7/ossl_store-file.html" => [ "doc/man7/ossl_store-file.pod" ], @@ -13349,6 +15602,9 @@ our %unified_info = ( "doc/html/man7/provider-signature.html" => [ "doc/man7/provider-signature.pod" ], + "doc/html/man7/provider-skeymgmt.html" => [ + "doc/man7/provider-skeymgmt.pod" + ], "doc/html/man7/provider-storemgmt.html" => [ "doc/man7/provider-storemgmt.pod" ], @@ -13358,9 +15614,6 @@ our %unified_info = ( "doc/html/man7/proxy-certificates.html" => [ "doc/man7/proxy-certificates.pod" ], - "doc/html/man7/ssl.html" => [ - "doc/man7/ssl.pod" - ], "doc/html/man7/x509.html" => [ "doc/man7/x509.pod" ], @@ -13508,6 +15761,9 @@ our %unified_info = ( "doc/man/man1/openssl-sess_id.1" => [ "doc/man1/openssl-sess_id.pod" ], + "doc/man/man1/openssl-skeyutl.1" => [ + "doc/man1/openssl-skeyutl.pod" + ], "doc/man/man1/openssl-smime.1" => [ "doc/man1/openssl-smime.pod" ], @@ -13649,6 +15905,9 @@ our %unified_info = ( "doc/man/man3/BIO_get_ex_new_index.3" => [ "doc/man3/BIO_get_ex_new_index.pod" ], + "doc/man/man3/BIO_get_rpoll_descriptor.3" => [ + "doc/man3/BIO_get_rpoll_descriptor.pod" + ], "doc/man/man3/BIO_meth_new.3" => [ "doc/man3/BIO_meth_new.pod" ], @@ -13685,6 +15944,9 @@ our %unified_info = ( "doc/man/man3/BIO_s_datagram.3" => [ "doc/man3/BIO_s_datagram.pod" ], + "doc/man/man3/BIO_s_dgram_pair.3" => [ + "doc/man3/BIO_s_dgram_pair.pod" + ], "doc/man/man3/BIO_s_fd.3" => [ "doc/man3/BIO_s_fd.pod" ], @@ -13700,6 +15962,9 @@ our %unified_info = ( "doc/man/man3/BIO_s_socket.3" => [ "doc/man3/BIO_s_socket.pod" ], + "doc/man/man3/BIO_sendmmsg.3" => [ + "doc/man3/BIO_sendmmsg.pod" + ], "doc/man/man3/BIO_set_callback.3" => [ "doc/man3/BIO_set_callback.pod" ], @@ -13772,6 +16037,9 @@ our %unified_info = ( "doc/man/man3/BUF_MEM_new.3" => [ "doc/man3/BUF_MEM_new.pod" ], + "doc/man/man3/CMAC_CTX.3" => [ + "doc/man3/CMAC_CTX.pod" + ], "doc/man/man3/CMS_EncryptedData_decrypt.3" => [ "doc/man3/CMS_EncryptedData_decrypt.pod" ], @@ -13838,6 +16106,9 @@ our %unified_info = ( "doc/man/man3/CMS_verify_receipt.3" => [ "doc/man3/CMS_verify_receipt.pod" ], + "doc/man/man3/COMP_CTX_new.3" => [ + "doc/man3/COMP_CTX_new.pod" + ], "doc/man/man3/CONF_modules_free.3" => [ "doc/man3/CONF_modules_free.pod" ], @@ -13937,6 +16208,12 @@ our %unified_info = ( "doc/man/man3/DTLS_set_timer_cb.3" => [ "doc/man3/DTLS_set_timer_cb.pod" ], + "doc/man/man3/DTLSv1_get_timeout.3" => [ + "doc/man3/DTLSv1_get_timeout.pod" + ], + "doc/man/man3/DTLSv1_handle_timeout.3" => [ + "doc/man3/DTLSv1_handle_timeout.pod" + ], "doc/man/man3/DTLSv1_listen.3" => [ "doc/man3/DTLSv1_listen.pod" ], @@ -14075,6 +16352,9 @@ our %unified_info = ( "doc/man/man3/EVP_PKEY_CTX_get0_pkey.3" => [ "doc/man3/EVP_PKEY_CTX_get0_pkey.pod" ], + "doc/man/man3/EVP_PKEY_CTX_get_algor.3" => [ + "doc/man3/EVP_PKEY_CTX_get_algor.pod" + ], "doc/man/man3/EVP_PKEY_CTX_new.3" => [ "doc/man3/EVP_PKEY_CTX_new.pod" ], @@ -14192,6 +16472,12 @@ our %unified_info = ( "doc/man/man3/EVP_SIGNATURE.3" => [ "doc/man3/EVP_SIGNATURE.pod" ], + "doc/man/man3/EVP_SKEY.3" => [ + "doc/man3/EVP_SKEY.pod" + ], + "doc/man/man3/EVP_SKEYMGMT.3" => [ + "doc/man3/EVP_SKEYMGMT.pod" + ], "doc/man/man3/EVP_SealInit.3" => [ "doc/man3/EVP_SealInit.pod" ], @@ -14279,6 +16565,9 @@ our %unified_info = ( "doc/man/man3/EVP_whirlpool.3" => [ "doc/man3/EVP_whirlpool.pod" ], + "doc/man/man3/GENERAL_NAME.3" => [ + "doc/man3/GENERAL_NAME.pod" + ], "doc/man/man3/HMAC.3" => [ "doc/man3/HMAC.pod" ], @@ -14351,9 +16640,15 @@ our %unified_info = ( "doc/man/man3/OPENSSL_load_builtin_modules.3" => [ "doc/man3/OPENSSL_load_builtin_modules.pod" ], + "doc/man/man3/OPENSSL_load_u16_le.3" => [ + "doc/man3/OPENSSL_load_u16_le.pod" + ], "doc/man/man3/OPENSSL_malloc.3" => [ "doc/man3/OPENSSL_malloc.pod" ], + "doc/man/man3/OPENSSL_riscvcap.3" => [ + "doc/man3/OPENSSL_riscvcap.pod" + ], "doc/man/man3/OPENSSL_s390xcap.3" => [ "doc/man3/OPENSSL_s390xcap.pod" ], @@ -14369,12 +16664,18 @@ our %unified_info = ( "doc/man/man3/OSSL_CALLBACK.3" => [ "doc/man3/OSSL_CALLBACK.pod" ], + "doc/man/man3/OSSL_CMP_ATAV_set0.3" => [ + "doc/man3/OSSL_CMP_ATAV_set0.pod" + ], "doc/man/man3/OSSL_CMP_CTX_new.3" => [ "doc/man3/OSSL_CMP_CTX_new.pod" ], "doc/man/man3/OSSL_CMP_HDR_get0_transactionID.3" => [ "doc/man3/OSSL_CMP_HDR_get0_transactionID.pod" ], + "doc/man/man3/OSSL_CMP_ITAV_new_caCerts.3" => [ + "doc/man3/OSSL_CMP_ITAV_new_caCerts.pod" + ], "doc/man/man3/OSSL_CMP_ITAV_set0.3" => [ "doc/man3/OSSL_CMP_ITAV_set0.pod" ], @@ -14444,9 +16745,18 @@ our %unified_info = ( "doc/man/man3/OSSL_ENCODER_to_bio.3" => [ "doc/man3/OSSL_ENCODER_to_bio.pod" ], + "doc/man/man3/OSSL_ERR_STATE_save.3" => [ + "doc/man3/OSSL_ERR_STATE_save.pod" + ], "doc/man/man3/OSSL_ESS_check_signing_certs.3" => [ "doc/man3/OSSL_ESS_check_signing_certs.pod" ], + "doc/man/man3/OSSL_GENERAL_NAMES_print.3" => [ + "doc/man3/OSSL_GENERAL_NAMES_print.pod" + ], + "doc/man/man3/OSSL_HPKE_CTX_new.3" => [ + "doc/man3/OSSL_HPKE_CTX_new.pod" + ], "doc/man/man3/OSSL_HTTP_REQ_CTX.3" => [ "doc/man3/OSSL_HTTP_REQ_CTX.pod" ], @@ -14456,12 +16766,24 @@ our %unified_info = ( "doc/man/man3/OSSL_HTTP_transfer.3" => [ "doc/man3/OSSL_HTTP_transfer.pod" ], + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX.3" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX.pod" + ], + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX_print.3" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX_print.pod" + ], + "doc/man/man3/OSSL_INDICATOR_set_callback.3" => [ + "doc/man3/OSSL_INDICATOR_set_callback.pod" + ], "doc/man/man3/OSSL_ITEM.3" => [ "doc/man3/OSSL_ITEM.pod" ], "doc/man/man3/OSSL_LIB_CTX.3" => [ "doc/man3/OSSL_LIB_CTX.pod" ], + "doc/man/man3/OSSL_LIB_CTX_set_conf_diagnostics.3" => [ + "doc/man3/OSSL_LIB_CTX_set_conf_diagnostics.pod" + ], "doc/man/man3/OSSL_PARAM.3" => [ "doc/man3/OSSL_PARAM.pod" ], @@ -14477,9 +16799,15 @@ our %unified_info = ( "doc/man/man3/OSSL_PARAM_int.3" => [ "doc/man3/OSSL_PARAM_int.pod" ], + "doc/man/man3/OSSL_PARAM_print_to_bio.3" => [ + "doc/man3/OSSL_PARAM_print_to_bio.pod" + ], "doc/man/man3/OSSL_PROVIDER.3" => [ "doc/man3/OSSL_PROVIDER.pod" ], + "doc/man/man3/OSSL_QUIC_client_method.3" => [ + "doc/man3/OSSL_QUIC_client_method.pod" + ], "doc/man/man3/OSSL_SELF_TEST_new.3" => [ "doc/man3/OSSL_SELF_TEST_new.pod" ], @@ -14504,6 +16832,9 @@ our %unified_info = ( "doc/man/man3/OSSL_STORE_open.3" => [ "doc/man3/OSSL_STORE_open.pod" ], + "doc/man/man3/OSSL_sleep.3" => [ + "doc/man3/OSSL_sleep.pod" + ], "doc/man/man3/OSSL_trace_enabled.3" => [ "doc/man3/OSSL_trace_enabled.pod" ], @@ -14519,6 +16850,9 @@ our %unified_info = ( "doc/man/man3/OpenSSL_version.3" => [ "doc/man3/OpenSSL_version.pod" ], + "doc/man/man3/PBMAC1_get1_pbkdf2_param.3" => [ + "doc/man3/PBMAC1_get1_pbkdf2_param.pod" + ], "doc/man/man3/PEM_X509_INFO_read_bio_ex.3" => [ "doc/man3/PEM_X509_INFO_read_bio_ex.pod" ], @@ -14555,6 +16889,9 @@ our %unified_info = ( "doc/man/man3/PKCS12_SAFEBAG_get1_cert.3" => [ "doc/man3/PKCS12_SAFEBAG_get1_cert.pod" ], + "doc/man/man3/PKCS12_SAFEBAG_set0_attrs.3" => [ + "doc/man3/PKCS12_SAFEBAG_set0_attrs.pod" + ], "doc/man/man3/PKCS12_add1_attr_by_NID.3" => [ "doc/man3/PKCS12_add1_attr_by_NID.pod" ], @@ -14828,6 +17165,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set0_CA_list.3" => [ "doc/man3/SSL_CTX_set0_CA_list.pod" ], + "doc/man/man3/SSL_CTX_set1_cert_comp_preference.3" => [ + "doc/man3/SSL_CTX_set1_cert_comp_preference.pod" + ], "doc/man/man3/SSL_CTX_set1_curves.3" => [ "doc/man3/SSL_CTX_set1_curves.pod" ], @@ -14867,6 +17207,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_default_passwd_cb.3" => [ "doc/man3/SSL_CTX_set_default_passwd_cb.pod" ], + "doc/man/man3/SSL_CTX_set_domain_flags.3" => [ + "doc/man3/SSL_CTX_set_domain_flags.pod" + ], "doc/man/man3/SSL_CTX_set_generate_session_id.3" => [ "doc/man3/SSL_CTX_set_generate_session_id.pod" ], @@ -14888,6 +17231,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_msg_callback.3" => [ "doc/man3/SSL_CTX_set_msg_callback.pod" ], + "doc/man/man3/SSL_CTX_set_new_pending_conn_cb.3" => [ + "doc/man3/SSL_CTX_set_new_pending_conn_cb.pod" + ], "doc/man/man3/SSL_CTX_set_num_tickets.3" => [ "doc/man3/SSL_CTX_set_num_tickets.pod" ], @@ -15002,6 +17348,9 @@ our %unified_info = ( "doc/man/man3/SSL_accept.3" => [ "doc/man3/SSL_accept.pod" ], + "doc/man/man3/SSL_accept_stream.3" => [ + "doc/man3/SSL_accept_stream.pod" + ], "doc/man/man3/SSL_alert_type_string.3" => [ "doc/man3/SSL_alert_type_string.pod" ], @@ -15029,9 +17378,21 @@ our %unified_info = ( "doc/man/man3/SSL_free.3" => [ "doc/man3/SSL_free.pod" ], + "doc/man/man3/SSL_get0_connection.3" => [ + "doc/man3/SSL_get0_connection.pod" + ], + "doc/man/man3/SSL_get0_group_name.3" => [ + "doc/man3/SSL_get0_group_name.pod" + ], + "doc/man/man3/SSL_get0_peer_rpk.3" => [ + "doc/man3/SSL_get0_peer_rpk.pod" + ], "doc/man/man3/SSL_get0_peer_scts.3" => [ "doc/man3/SSL_get0_peer_scts.pod" ], + "doc/man/man3/SSL_get1_builtin_sigalgs.3" => [ + "doc/man3/SSL_get1_builtin_sigalgs.pod" + ], "doc/man/man3/SSL_get_SSL_CTX.3" => [ "doc/man3/SSL_get_SSL_CTX.pod" ], @@ -15047,6 +17408,9 @@ our %unified_info = ( "doc/man/man3/SSL_get_client_random.3" => [ "doc/man3/SSL_get_client_random.pod" ], + "doc/man/man3/SSL_get_conn_close_info.3" => [ + "doc/man3/SSL_get_conn_close_info.pod" + ], "doc/man/man3/SSL_get_current_cipher.3" => [ "doc/man3/SSL_get_current_cipher.pod" ], @@ -15056,12 +17420,18 @@ our %unified_info = ( "doc/man/man3/SSL_get_error.3" => [ "doc/man3/SSL_get_error.pod" ], + "doc/man/man3/SSL_get_event_timeout.3" => [ + "doc/man3/SSL_get_event_timeout.pod" + ], "doc/man/man3/SSL_get_extms_support.3" => [ "doc/man3/SSL_get_extms_support.pod" ], "doc/man/man3/SSL_get_fd.3" => [ "doc/man3/SSL_get_fd.pod" ], + "doc/man/man3/SSL_get_handshake_rtt.3" => [ + "doc/man3/SSL_get_handshake_rtt.pod" + ], "doc/man/man3/SSL_get_peer_cert_chain.3" => [ "doc/man3/SSL_get_peer_cert_chain.pod" ], @@ -15080,12 +17450,24 @@ our %unified_info = ( "doc/man/man3/SSL_get_rbio.3" => [ "doc/man3/SSL_get_rbio.pod" ], + "doc/man/man3/SSL_get_rpoll_descriptor.3" => [ + "doc/man3/SSL_get_rpoll_descriptor.pod" + ], "doc/man/man3/SSL_get_session.3" => [ "doc/man3/SSL_get_session.pod" ], "doc/man/man3/SSL_get_shared_sigalgs.3" => [ "doc/man3/SSL_get_shared_sigalgs.pod" ], + "doc/man/man3/SSL_get_stream_id.3" => [ + "doc/man3/SSL_get_stream_id.pod" + ], + "doc/man/man3/SSL_get_stream_read_state.3" => [ + "doc/man3/SSL_get_stream_read_state.pod" + ], + "doc/man/man3/SSL_get_value_uint.3" => [ + "doc/man3/SSL_get_value_uint.pod" + ], "doc/man/man3/SSL_get_verify_result.3" => [ "doc/man3/SSL_get_verify_result.pod" ], @@ -15095,9 +17477,15 @@ our %unified_info = ( "doc/man/man3/SSL_group_to_name.3" => [ "doc/man3/SSL_group_to_name.pod" ], + "doc/man/man3/SSL_handle_events.3" => [ + "doc/man3/SSL_handle_events.pod" + ], "doc/man/man3/SSL_in_init.3" => [ "doc/man3/SSL_in_init.pod" ], + "doc/man/man3/SSL_inject_net_dgram.3" => [ + "doc/man3/SSL_inject_net_dgram.pod" + ], "doc/man/man3/SSL_key_update.3" => [ "doc/man3/SSL_key_update.pod" ], @@ -15110,9 +17498,21 @@ our %unified_info = ( "doc/man/man3/SSL_new.3" => [ "doc/man3/SSL_new.pod" ], + "doc/man/man3/SSL_new_domain.3" => [ + "doc/man3/SSL_new_domain.pod" + ], + "doc/man/man3/SSL_new_listener.3" => [ + "doc/man3/SSL_new_listener.pod" + ], + "doc/man/man3/SSL_new_stream.3" => [ + "doc/man3/SSL_new_stream.pod" + ], "doc/man/man3/SSL_pending.3" => [ "doc/man3/SSL_pending.pod" ], + "doc/man/man3/SSL_poll.3" => [ + "doc/man3/SSL_poll.pod" + ], "doc/man/man3/SSL_read.3" => [ "doc/man3/SSL_read.pod" ], @@ -15128,24 +17528,45 @@ our %unified_info = ( "doc/man/man3/SSL_set1_host.3" => [ "doc/man3/SSL_set1_host.pod" ], + "doc/man/man3/SSL_set1_initial_peer_addr.3" => [ + "doc/man3/SSL_set1_initial_peer_addr.pod" + ], + "doc/man/man3/SSL_set1_server_cert_type.3" => [ + "doc/man3/SSL_set1_server_cert_type.pod" + ], "doc/man/man3/SSL_set_async_callback.3" => [ "doc/man3/SSL_set_async_callback.pod" ], "doc/man/man3/SSL_set_bio.3" => [ "doc/man3/SSL_set_bio.pod" ], + "doc/man/man3/SSL_set_blocking_mode.3" => [ + "doc/man3/SSL_set_blocking_mode.pod" + ], "doc/man/man3/SSL_set_connect_state.3" => [ "doc/man3/SSL_set_connect_state.pod" ], + "doc/man/man3/SSL_set_default_stream_mode.3" => [ + "doc/man3/SSL_set_default_stream_mode.pod" + ], "doc/man/man3/SSL_set_fd.3" => [ "doc/man3/SSL_set_fd.pod" ], + "doc/man/man3/SSL_set_incoming_stream_policy.3" => [ + "doc/man3/SSL_set_incoming_stream_policy.pod" + ], + "doc/man/man3/SSL_set_quic_tls_cbs.3" => [ + "doc/man3/SSL_set_quic_tls_cbs.pod" + ], "doc/man/man3/SSL_set_retry_verify.3" => [ "doc/man3/SSL_set_retry_verify.pod" ], "doc/man/man3/SSL_set_session.3" => [ "doc/man3/SSL_set_session.pod" ], + "doc/man/man3/SSL_set_session_secret_cb.3" => [ + "doc/man3/SSL_set_session_secret_cb.pod" + ], "doc/man/man3/SSL_set_shutdown.3" => [ "doc/man3/SSL_set_shutdown.pod" ], @@ -15158,6 +17579,12 @@ our %unified_info = ( "doc/man/man3/SSL_state_string.3" => [ "doc/man3/SSL_state_string.pod" ], + "doc/man/man3/SSL_stream_conclude.3" => [ + "doc/man3/SSL_stream_conclude.pod" + ], + "doc/man/man3/SSL_stream_reset.3" => [ + "doc/man3/SSL_stream_reset.pod" + ], "doc/man/man3/SSL_want.3" => [ "doc/man3/SSL_want.pod" ], @@ -15167,8 +17594,8 @@ our %unified_info = ( "doc/man/man3/TS_RESP_CTX_new.3" => [ "doc/man3/TS_RESP_CTX_new.pod" ], - "doc/man/man3/TS_VERIFY_CTX_set_certs.3" => [ - "doc/man3/TS_VERIFY_CTX_set_certs.pod" + "doc/man/man3/TS_VERIFY_CTX.3" => [ + "doc/man3/TS_VERIFY_CTX.pod" ], "doc/man/man3/UI_STRING.3" => [ "doc/man3/UI_STRING.pod" @@ -15188,6 +17615,21 @@ our %unified_info = ( "doc/man/man3/X509V3_set_ctx.3" => [ "doc/man3/X509V3_set_ctx.pod" ], + "doc/man/man3/X509_ACERT_add1_attr.3" => [ + "doc/man3/X509_ACERT_add1_attr.pod" + ], + "doc/man/man3/X509_ACERT_add_attr_nconf.3" => [ + "doc/man3/X509_ACERT_add_attr_nconf.pod" + ], + "doc/man/man3/X509_ACERT_get0_holder_baseCertId.3" => [ + "doc/man3/X509_ACERT_get0_holder_baseCertId.pod" + ], + "doc/man/man3/X509_ACERT_get_attr.3" => [ + "doc/man3/X509_ACERT_get_attr.pod" + ], + "doc/man/man3/X509_ACERT_print_ex.3" => [ + "doc/man3/X509_ACERT_print_ex.pod" + ], "doc/man/man3/X509_ALGOR_dup.3" => [ "doc/man3/X509_ALGOR_dup.pod" ], @@ -15236,6 +17678,9 @@ our %unified_info = ( "doc/man/man3/X509_SIG_get0.3" => [ "doc/man3/X509_SIG_get0.pod" ], + "doc/man/man3/X509_STORE_CTX_get_by_subject.3" => [ + "doc/man3/X509_STORE_CTX_get_by_subject.pod" + ], "doc/man/man3/X509_STORE_CTX_get_error.3" => [ "doc/man3/X509_STORE_CTX_get_error.pod" ], @@ -15302,6 +17747,9 @@ our %unified_info = ( "doc/man/man3/X509_get0_uids.3" => [ "doc/man3/X509_get0_uids.pod" ], + "doc/man/man3/X509_get_default_cert_file.3" => [ + "doc/man3/X509_get_default_cert_file.pod" + ], "doc/man/man3/X509_get_extension_flags.3" => [ "doc/man3/X509_get_extension_flags.pod" ], @@ -15425,9 +17873,15 @@ our %unified_info = ( "doc/man/man7/EVP_CIPHER-SM4.7" => [ "doc/man7/EVP_CIPHER-SM4.pod" ], + "doc/man/man7/EVP_KDF-ARGON2.7" => [ + "doc/man7/EVP_KDF-ARGON2.pod" + ], "doc/man/man7/EVP_KDF-HKDF.7" => [ "doc/man7/EVP_KDF-HKDF.pod" ], + "doc/man/man7/EVP_KDF-HMAC-DRBG.7" => [ + "doc/man7/EVP_KDF-HMAC-DRBG.pod" + ], "doc/man/man7/EVP_KDF-KB.7" => [ "doc/man7/EVP_KDF-KB.pod" ], @@ -15443,6 +17897,9 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-PKCS12KDF.7" => [ "doc/man7/EVP_KDF-PKCS12KDF.pod" ], + "doc/man/man7/EVP_KDF-PVKKDF.7" => [ + "doc/man7/EVP_KDF-PVKKDF.pod" + ], "doc/man/man7/EVP_KDF-SCRYPT.7" => [ "doc/man7/EVP_KDF-SCRYPT.pod" ], @@ -15467,9 +17924,18 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-X963.7" => [ "doc/man7/EVP_KDF-X963.pod" ], + "doc/man/man7/EVP_KEM-EC.7" => [ + "doc/man7/EVP_KEM-EC.pod" + ], + "doc/man/man7/EVP_KEM-ML-KEM.7" => [ + "doc/man7/EVP_KEM-ML-KEM.pod" + ], "doc/man/man7/EVP_KEM-RSA.7" => [ "doc/man7/EVP_KEM-RSA.pod" ], + "doc/man/man7/EVP_KEM-X25519.7" => [ + "doc/man7/EVP_KEM-X25519.pod" + ], "doc/man/man7/EVP_KEYEXCH-DH.7" => [ "doc/man7/EVP_KEYEXCH-DH.pod" ], @@ -15503,6 +17969,9 @@ our %unified_info = ( "doc/man/man7/EVP_MD-BLAKE2.7" => [ "doc/man7/EVP_MD-BLAKE2.pod" ], + "doc/man/man7/EVP_MD-KECCAK.7" => [ + "doc/man7/EVP_MD-KECCAK.pod" + ], "doc/man/man7/EVP_MD-MD2.7" => [ "doc/man7/EVP_MD-MD2.pod" ], @@ -15560,15 +18029,27 @@ our %unified_info = ( "doc/man/man7/EVP_PKEY-HMAC.7" => [ "doc/man7/EVP_PKEY-HMAC.pod" ], + "doc/man/man7/EVP_PKEY-ML-DSA.7" => [ + "doc/man7/EVP_PKEY-ML-DSA.pod" + ], + "doc/man/man7/EVP_PKEY-ML-KEM.7" => [ + "doc/man7/EVP_PKEY-ML-KEM.pod" + ], "doc/man/man7/EVP_PKEY-RSA.7" => [ "doc/man7/EVP_PKEY-RSA.pod" ], + "doc/man/man7/EVP_PKEY-SLH-DSA.7" => [ + "doc/man7/EVP_PKEY-SLH-DSA.pod" + ], "doc/man/man7/EVP_PKEY-SM2.7" => [ "doc/man7/EVP_PKEY-SM2.pod" ], "doc/man/man7/EVP_PKEY-X25519.7" => [ "doc/man7/EVP_PKEY-X25519.pod" ], + "doc/man/man7/EVP_RAND-CRNG-TEST.7" => [ + "doc/man7/EVP_RAND-CRNG-TEST.pod" + ], "doc/man/man7/EVP_RAND-CTR-DRBG.7" => [ "doc/man7/EVP_RAND-CTR-DRBG.pod" ], @@ -15578,6 +18059,9 @@ our %unified_info = ( "doc/man/man7/EVP_RAND-HMAC-DRBG.7" => [ "doc/man7/EVP_RAND-HMAC-DRBG.pod" ], + "doc/man/man7/EVP_RAND-JITTER.7" => [ + "doc/man7/EVP_RAND-JITTER.pod" + ], "doc/man/man7/EVP_RAND-SEED-SRC.7" => [ "doc/man7/EVP_RAND-SEED-SRC.pod" ], @@ -15599,9 +18083,15 @@ our %unified_info = ( "doc/man/man7/EVP_SIGNATURE-HMAC.7" => [ "doc/man7/EVP_SIGNATURE-HMAC.pod" ], + "doc/man/man7/EVP_SIGNATURE-ML-DSA.7" => [ + "doc/man7/EVP_SIGNATURE-ML-DSA.pod" + ], "doc/man/man7/EVP_SIGNATURE-RSA.7" => [ "doc/man7/EVP_SIGNATURE-RSA.pod" ], + "doc/man/man7/EVP_SIGNATURE-SLH-DSA.7" => [ + "doc/man7/EVP_SIGNATURE-SLH-DSA.pod" + ], "doc/man/man7/OSSL_PROVIDER-FIPS.7" => [ "doc/man7/OSSL_PROVIDER-FIPS.pod" ], @@ -15617,6 +18107,9 @@ our %unified_info = ( "doc/man/man7/OSSL_PROVIDER-null.7" => [ "doc/man7/OSSL_PROVIDER-null.pod" ], + "doc/man/man7/OSSL_STORE-winstore.7" => [ + "doc/man7/OSSL_STORE-winstore.pod" + ], "doc/man/man7/RAND.7" => [ "doc/man7/RAND.pod" ], @@ -15629,9 +18122,6 @@ our %unified_info = ( "doc/man/man7/bio.7" => [ "doc/man7/bio.pod" ], - "doc/man/man7/crypto.7" => [ - "doc/man7/crypto.pod" - ], "doc/man/man7/ct.7" => [ "doc/man7/ct.pod" ], @@ -15662,29 +18152,80 @@ our %unified_info = ( "doc/man/man7/life_cycle-rand.7" => [ "doc/man7/life_cycle-rand.pod" ], - "doc/man/man7/migration_guide.7" => [ - "doc/man7/migration_guide.pod" - ], "doc/man/man7/openssl-core.h.7" => [ "doc/man7/openssl-core.h.pod" ], "doc/man/man7/openssl-core_dispatch.h.7" => [ "doc/man7/openssl-core_dispatch.h.pod" ], - "doc/man/man7/openssl-core_names.h.7" => [ - "doc/man7/openssl-core_names.h.pod" + "doc/man/man7/openssl-core_names.h.7" => [ + "doc/man7/openssl-core_names.h.pod" + ], + "doc/man/man7/openssl-env.7" => [ + "doc/man7/openssl-env.pod" + ], + "doc/man/man7/openssl-glossary.7" => [ + "doc/man7/openssl-glossary.pod" + ], + "doc/man/man7/openssl-qlog.7" => [ + "doc/man7/openssl-qlog.pod" + ], + "doc/man/man7/openssl-quic-concurrency.7" => [ + "doc/man7/openssl-quic-concurrency.pod" + ], + "doc/man/man7/openssl-quic.7" => [ + "doc/man7/openssl-quic.pod" + ], + "doc/man/man7/openssl-threads.7" => [ + "doc/man7/openssl-threads.pod" + ], + "doc/man/man7/openssl_user_macros.7" => [ + "doc/man7/openssl_user_macros.pod" + ], + "doc/man/man7/ossl-guide-introduction.7" => [ + "doc/man7/ossl-guide-introduction.pod" + ], + "doc/man/man7/ossl-guide-libcrypto-introduction.7" => [ + "doc/man7/ossl-guide-libcrypto-introduction.pod" + ], + "doc/man/man7/ossl-guide-libraries-introduction.7" => [ + "doc/man7/ossl-guide-libraries-introduction.pod" + ], + "doc/man/man7/ossl-guide-libssl-introduction.7" => [ + "doc/man7/ossl-guide-libssl-introduction.pod" + ], + "doc/man/man7/ossl-guide-migration.7" => [ + "doc/man7/ossl-guide-migration.pod" + ], + "doc/man/man7/ossl-guide-quic-client-block.7" => [ + "doc/man7/ossl-guide-quic-client-block.pod" + ], + "doc/man/man7/ossl-guide-quic-client-non-block.7" => [ + "doc/man7/ossl-guide-quic-client-non-block.pod" + ], + "doc/man/man7/ossl-guide-quic-introduction.7" => [ + "doc/man7/ossl-guide-quic-introduction.pod" + ], + "doc/man/man7/ossl-guide-quic-multi-stream.7" => [ + "doc/man7/ossl-guide-quic-multi-stream.pod" + ], + "doc/man/man7/ossl-guide-quic-server-block.7" => [ + "doc/man7/ossl-guide-quic-server-block.pod" ], - "doc/man/man7/openssl-env.7" => [ - "doc/man7/openssl-env.pod" + "doc/man/man7/ossl-guide-quic-server-non-block.7" => [ + "doc/man7/ossl-guide-quic-server-non-block.pod" ], - "doc/man/man7/openssl-glossary.7" => [ - "doc/man7/openssl-glossary.pod" + "doc/man/man7/ossl-guide-tls-client-block.7" => [ + "doc/man7/ossl-guide-tls-client-block.pod" ], - "doc/man/man7/openssl-threads.7" => [ - "doc/man7/openssl-threads.pod" + "doc/man/man7/ossl-guide-tls-client-non-block.7" => [ + "doc/man7/ossl-guide-tls-client-non-block.pod" ], - "doc/man/man7/openssl_user_macros.7" => [ - "doc/man7/openssl_user_macros.pod" + "doc/man/man7/ossl-guide-tls-introduction.7" => [ + "doc/man7/ossl-guide-tls-introduction.pod" + ], + "doc/man/man7/ossl-guide-tls-server-block.7" => [ + "doc/man7/ossl-guide-tls-server-block.pod" ], "doc/man/man7/ossl_store-file.7" => [ "doc/man7/ossl_store-file.pod" @@ -15740,6 +18281,9 @@ our %unified_info = ( "doc/man/man7/provider-signature.7" => [ "doc/man7/provider-signature.pod" ], + "doc/man/man7/provider-skeymgmt.7" => [ + "doc/man7/provider-skeymgmt.pod" + ], "doc/man/man7/provider-storemgmt.7" => [ "doc/man7/provider-storemgmt.pod" ], @@ -15749,9 +18293,6 @@ our %unified_info = ( "doc/man/man7/proxy-certificates.7" => [ "doc/man7/proxy-certificates.pod" ], - "doc/man/man7/ssl.7" => [ - "doc/man7/ssl.pod" - ], "doc/man/man7/x509.7" => [ "doc/man7/x509.pod" ], @@ -15887,6 +18428,9 @@ our %unified_info = ( "doc/man1/openssl-sess_id.pod" => [ "doc/man1/openssl-sess_id.pod.in" ], + "doc/man1/openssl-skeyutl.pod" => [ + "doc/man1/openssl-skeyutl.pod.in" + ], "doc/man1/openssl-smime.pod" => [ "doc/man1/openssl-smime.pod.in" ], @@ -15923,12 +18467,30 @@ our %unified_info = ( "engines/e_padlock-x86_64.s" => [ "engines/asm/e_padlock-x86_64.pl" ], + "exporters/OpenSSLConfig.cmake" => [ + "exporters/cmake/OpenSSLConfig.cmake.in" + ], + "exporters/OpenSSLConfigVersion.cmake" => [ + "exporters/cmake/OpenSSLConfigVersion.cmake.in" + ], + "exporters/libcrypto.pc" => [ + "exporters/pkg-config/libcrypto.pc.in" + ], + "exporters/libssl.pc" => [ + "exporters/pkg-config/libssl.pc.in" + ], + "exporters/openssl.pc" => [ + "exporters/pkg-config/openssl.pc.in" + ], "include/crypto/bn_conf.h" => [ "include/crypto/bn_conf.h.in" ], "include/crypto/dso_conf.h" => [ "include/crypto/dso_conf.h.in" ], + "include/internal/param_names.h" => [ + "include/internal/param_names.h.in" + ], "include/openssl/asn1.h" => [ "include/openssl/asn1.h.in" ], @@ -15944,12 +18506,18 @@ our %unified_info = ( "include/openssl/cms.h" => [ "include/openssl/cms.h.in" ], + "include/openssl/comp.h" => [ + "include/openssl/comp.h.in" + ], "include/openssl/conf.h" => [ "include/openssl/conf.h.in" ], "include/openssl/configuration.h" => [ "include/openssl/configuration.h.in" ], + "include/openssl/core_names.h" => [ + "include/openssl/core_names.h.in" + ], "include/openssl/crmf.h" => [ "include/openssl/crmf.h.in" ], @@ -15998,20 +18566,47 @@ our %unified_info = ( "include/openssl/x509.h" => [ "include/openssl/x509.h.in" ], + "include/openssl/x509_acert.h" => [ + "include/openssl/x509_acert.h.in" + ], "include/openssl/x509_vfy.h" => [ "include/openssl/x509_vfy.h.in" ], "include/openssl/x509v3.h" => [ "include/openssl/x509v3.h.in" ], + "installdata.pm" => [ + "util/mkinstallvars.pl", + "\"PREFIX=\$(INSTALLTOP)\"", + "BINDIR=bin", + "\"LIBDIR=\$(LIBDIR)\"", + "\"libdir=\$(libdir)\"", + "INCLUDEDIR=include", + "APPLINKDIR=include/openssl", + "\"ENGINESDIR=\$(ENGINESDIR)\"", + "\"MODULESDIR=\$(MODULESDIR)\"", + "\"PKGCONFIGDIR=\$(PKGCONFIGDIR)\"", + "\"CMAKECONFIGDIR=\$(CMAKECONFIGDIR)\"", + "\"LDLIBS=\$(LIB_EX_LIBS)\"", + "\"VERSION=\$(VERSION)\"" + ], "libcrypto.ld" => [ "util/libcrypto.num", "libcrypto" ], + "libcrypto.pc" => [ + "exporters/pkg-config/libcrypto.pc.in" + ], "libssl.ld" => [ "util/libssl.num", "libssl" ], + "libssl.pc" => [ + "exporters/pkg-config/libssl.pc.in" + ], + "openssl.pc" => [ + "exporters/pkg-config/openssl.pc.in" + ], "providers/common/der/der_digests_gen.c" => [ "providers/common/der/der_digests_gen.c.in" ], @@ -16024,9 +18619,15 @@ our %unified_info = ( "providers/common/der/der_ecx_gen.c" => [ "providers/common/der/der_ecx_gen.c.in" ], + "providers/common/der/der_ml_dsa_gen.c" => [ + "providers/common/der/der_ml_dsa_gen.c.in" + ], "providers/common/der/der_rsa_gen.c" => [ "providers/common/der/der_rsa_gen.c.in" ], + "providers/common/der/der_slh_dsa_gen.c" => [ + "providers/common/der/der_slh_dsa_gen.c.in" + ], "providers/common/der/der_sm2_gen.c" => [ "providers/common/der/der_sm2_gen.c.in" ], @@ -16045,9 +18646,15 @@ our %unified_info = ( "providers/common/include/prov/der_ecx.h" => [ "providers/common/include/prov/der_ecx.h.in" ], + "providers/common/include/prov/der_ml_dsa.h" => [ + "providers/common/include/prov/der_ml_dsa.h.in" + ], "providers/common/include/prov/der_rsa.h" => [ "providers/common/include/prov/der_rsa.h.in" ], + "providers/common/include/prov/der_slh_dsa.h" => [ + "providers/common/include/prov/der_slh_dsa.h.in" + ], "providers/common/include/prov/der_sm2.h" => [ "providers/common/include/prov/der_sm2.h.in" ], @@ -16089,6 +18696,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "buffer" ], + "test/buildtest_byteorder.c" => [ + "test/generate_buildtest.pl", + "byteorder" + ], "test/buildtest_camellia.c" => [ "test/generate_buildtest.pl", "camellia" @@ -16121,10 +18732,6 @@ our %unified_info = ( "test/generate_buildtest.pl", "core_dispatch" ], - "test/buildtest_core_names.c" => [ - "test/generate_buildtest.pl", - "core_names" - ], "test/buildtest_core_object.c" => [ "test/generate_buildtest.pl", "core_object" @@ -16157,6 +18764,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "e_os2" ], + "test/buildtest_e_ostime.c" => [ + "test/generate_buildtest.pl", + "e_ostime" + ], "test/buildtest_ebcdic.c" => [ "test/generate_buildtest.pl", "ebcdic" @@ -16193,6 +18804,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "hmac" ], + "test/buildtest_hpke.c" => [ + "test/generate_buildtest.pl", + "hpke" + ], "test/buildtest_http.c" => [ "test/generate_buildtest.pl", "http" @@ -16201,6 +18816,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "idea" ], + "test/buildtest_indicator.c" => [ + "test/generate_buildtest.pl", + "indicator" + ], "test/buildtest_kdf.c" => [ "test/generate_buildtest.pl", "kdf" @@ -16221,6 +18840,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "mdc2" ], + "test/buildtest_ml_kem.c" => [ + "test/generate_buildtest.pl", + "ml_kem" + ], "test/buildtest_modes.c" => [ "test/generate_buildtest.pl", "modes" @@ -16261,6 +18884,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "provider" ], + "test/buildtest_quic.c" => [ + "test/generate_buildtest.pl", + "quic" + ], "test/buildtest_rand.c" => [ "test/generate_buildtest.pl", "rand" @@ -16317,6 +18944,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "symhacks" ], + "test/buildtest_thread.c" => [ + "test/generate_buildtest.pl", + "thread" + ], "test/buildtest_tls1.c" => [ "test/generate_buildtest.pl", "tls1" @@ -16397,6 +19028,7 @@ our %unified_info = ( "doc/html/man1/openssl-s_server.html", "doc/html/man1/openssl-s_time.html", "doc/html/man1/openssl-sess_id.html", + "doc/html/man1/openssl-skeyutl.html", "doc/html/man1/openssl-smime.html", "doc/html/man1/openssl-speed.html", "doc/html/man1/openssl-spkac.html", @@ -16446,6 +19078,7 @@ our %unified_info = ( "doc/html/man3/BIO_find_type.html", "doc/html/man3/BIO_get_data.html", "doc/html/man3/BIO_get_ex_new_index.html", + "doc/html/man3/BIO_get_rpoll_descriptor.html", "doc/html/man3/BIO_meth_new.html", "doc/html/man3/BIO_new.html", "doc/html/man3/BIO_new_CMS.html", @@ -16458,11 +19091,13 @@ our %unified_info = ( "doc/html/man3/BIO_s_connect.html", "doc/html/man3/BIO_s_core.html", "doc/html/man3/BIO_s_datagram.html", + "doc/html/man3/BIO_s_dgram_pair.html", "doc/html/man3/BIO_s_fd.html", "doc/html/man3/BIO_s_file.html", "doc/html/man3/BIO_s_mem.html", "doc/html/man3/BIO_s_null.html", "doc/html/man3/BIO_s_socket.html", + "doc/html/man3/BIO_sendmmsg.html", "doc/html/man3/BIO_set_callback.html", "doc/html/man3/BIO_should_retry.html", "doc/html/man3/BIO_socket_wait.html", @@ -16487,6 +19122,7 @@ our %unified_info = ( "doc/html/man3/BN_swap.html", "doc/html/man3/BN_zero.html", "doc/html/man3/BUF_MEM_new.html", + "doc/html/man3/CMAC_CTX.html", "doc/html/man3/CMS_EncryptedData_decrypt.html", "doc/html/man3/CMS_EncryptedData_encrypt.html", "doc/html/man3/CMS_EnvelopedData_create.html", @@ -16509,6 +19145,7 @@ our %unified_info = ( "doc/html/man3/CMS_uncompress.html", "doc/html/man3/CMS_verify.html", "doc/html/man3/CMS_verify_receipt.html", + "doc/html/man3/COMP_CTX_new.html", "doc/html/man3/CONF_modules_free.html", "doc/html/man3/CONF_modules_load_file.html", "doc/html/man3/CRYPTO_THREAD_run_once.html", @@ -16542,6 +19179,8 @@ our %unified_info = ( "doc/html/man3/DSA_size.html", "doc/html/man3/DTLS_get_data_mtu.html", "doc/html/man3/DTLS_set_timer_cb.html", + "doc/html/man3/DTLSv1_get_timeout.html", + "doc/html/man3/DTLSv1_handle_timeout.html", "doc/html/man3/DTLSv1_listen.html", "doc/html/man3/ECDSA_SIG_new.html", "doc/html/man3/ECDSA_sign.html", @@ -16588,6 +19227,7 @@ our %unified_info = ( "doc/html/man3/EVP_PKEY_CTX_ctrl.html", "doc/html/man3/EVP_PKEY_CTX_get0_libctx.html", "doc/html/man3/EVP_PKEY_CTX_get0_pkey.html", + "doc/html/man3/EVP_PKEY_CTX_get_algor.html", "doc/html/man3/EVP_PKEY_CTX_new.html", "doc/html/man3/EVP_PKEY_CTX_set1_pbe_pass.html", "doc/html/man3/EVP_PKEY_CTX_set_hkdf_md.html", @@ -16627,6 +19267,8 @@ our %unified_info = ( "doc/html/man3/EVP_PKEY_verify_recover.html", "doc/html/man3/EVP_RAND.html", "doc/html/man3/EVP_SIGNATURE.html", + "doc/html/man3/EVP_SKEY.html", + "doc/html/man3/EVP_SKEYMGMT.html", "doc/html/man3/EVP_SealInit.html", "doc/html/man3/EVP_SignInit.html", "doc/html/man3/EVP_VerifyInit.html", @@ -16656,6 +19298,7 @@ our %unified_info = ( "doc/html/man3/EVP_sm3.html", "doc/html/man3/EVP_sm4_cbc.html", "doc/html/man3/EVP_whirlpool.html", + "doc/html/man3/GENERAL_NAME.html", "doc/html/man3/HMAC.html", "doc/html/man3/MD5.html", "doc/html/man3/MDC2_Init.html", @@ -16680,14 +19323,18 @@ our %unified_info = ( "doc/html/man3/OPENSSL_init_ssl.html", "doc/html/man3/OPENSSL_instrument_bus.html", "doc/html/man3/OPENSSL_load_builtin_modules.html", + "doc/html/man3/OPENSSL_load_u16_le.html", "doc/html/man3/OPENSSL_malloc.html", + "doc/html/man3/OPENSSL_riscvcap.html", "doc/html/man3/OPENSSL_s390xcap.html", "doc/html/man3/OPENSSL_secure_malloc.html", "doc/html/man3/OPENSSL_strcasecmp.html", "doc/html/man3/OSSL_ALGORITHM.html", "doc/html/man3/OSSL_CALLBACK.html", + "doc/html/man3/OSSL_CMP_ATAV_set0.html", "doc/html/man3/OSSL_CMP_CTX_new.html", "doc/html/man3/OSSL_CMP_HDR_get0_transactionID.html", + "doc/html/man3/OSSL_CMP_ITAV_new_caCerts.html", "doc/html/man3/OSSL_CMP_ITAV_set0.html", "doc/html/man3/OSSL_CMP_MSG_get0_header.html", "doc/html/man3/OSSL_CMP_MSG_http_perform.html", @@ -16711,18 +19358,27 @@ our %unified_info = ( "doc/html/man3/OSSL_ENCODER_CTX.html", "doc/html/man3/OSSL_ENCODER_CTX_new_for_pkey.html", "doc/html/man3/OSSL_ENCODER_to_bio.html", + "doc/html/man3/OSSL_ERR_STATE_save.html", "doc/html/man3/OSSL_ESS_check_signing_certs.html", + "doc/html/man3/OSSL_GENERAL_NAMES_print.html", + "doc/html/man3/OSSL_HPKE_CTX_new.html", "doc/html/man3/OSSL_HTTP_REQ_CTX.html", "doc/html/man3/OSSL_HTTP_parse_url.html", "doc/html/man3/OSSL_HTTP_transfer.html", + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX.html", + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX_print.html", + "doc/html/man3/OSSL_INDICATOR_set_callback.html", "doc/html/man3/OSSL_ITEM.html", "doc/html/man3/OSSL_LIB_CTX.html", + "doc/html/man3/OSSL_LIB_CTX_set_conf_diagnostics.html", "doc/html/man3/OSSL_PARAM.html", "doc/html/man3/OSSL_PARAM_BLD.html", "doc/html/man3/OSSL_PARAM_allocate_from_text.html", "doc/html/man3/OSSL_PARAM_dup.html", "doc/html/man3/OSSL_PARAM_int.html", + "doc/html/man3/OSSL_PARAM_print_to_bio.html", "doc/html/man3/OSSL_PROVIDER.html", + "doc/html/man3/OSSL_QUIC_client_method.html", "doc/html/man3/OSSL_SELF_TEST_new.html", "doc/html/man3/OSSL_SELF_TEST_set_callback.html", "doc/html/man3/OSSL_STORE_INFO.html", @@ -16731,11 +19387,13 @@ our %unified_info = ( "doc/html/man3/OSSL_STORE_attach.html", "doc/html/man3/OSSL_STORE_expect.html", "doc/html/man3/OSSL_STORE_open.html", + "doc/html/man3/OSSL_sleep.html", "doc/html/man3/OSSL_trace_enabled.html", "doc/html/man3/OSSL_trace_get_category_num.html", "doc/html/man3/OSSL_trace_set_channel.html", "doc/html/man3/OpenSSL_add_all_algorithms.html", "doc/html/man3/OpenSSL_version.html", + "doc/html/man3/PBMAC1_get1_pbkdf2_param.html", "doc/html/man3/PEM_X509_INFO_read_bio_ex.html", "doc/html/man3/PEM_bytes_read_bio.html", "doc/html/man3/PEM_read.html", @@ -16748,6 +19406,7 @@ our %unified_info = ( "doc/html/man3/PKCS12_SAFEBAG_create_cert.html", "doc/html/man3/PKCS12_SAFEBAG_get0_attrs.html", "doc/html/man3/PKCS12_SAFEBAG_get1_cert.html", + "doc/html/man3/PKCS12_SAFEBAG_set0_attrs.html", "doc/html/man3/PKCS12_add1_attr_by_NID.html", "doc/html/man3/PKCS12_add_CSPName_asc.html", "doc/html/man3/PKCS12_add_cert.html", @@ -16839,6 +19498,7 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_sess_set_get_cb.html", "doc/html/man3/SSL_CTX_sessions.html", "doc/html/man3/SSL_CTX_set0_CA_list.html", + "doc/html/man3/SSL_CTX_set1_cert_comp_preference.html", "doc/html/man3/SSL_CTX_set1_curves.html", "doc/html/man3/SSL_CTX_set1_sigalgs.html", "doc/html/man3/SSL_CTX_set1_verify_cert_store.html", @@ -16852,6 +19512,7 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_ct_validation_callback.html", "doc/html/man3/SSL_CTX_set_ctlog_list_file.html", "doc/html/man3/SSL_CTX_set_default_passwd_cb.html", + "doc/html/man3/SSL_CTX_set_domain_flags.html", "doc/html/man3/SSL_CTX_set_generate_session_id.html", "doc/html/man3/SSL_CTX_set_info_callback.html", "doc/html/man3/SSL_CTX_set_keylog_callback.html", @@ -16859,6 +19520,7 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_min_proto_version.html", "doc/html/man3/SSL_CTX_set_mode.html", "doc/html/man3/SSL_CTX_set_msg_callback.html", + "doc/html/man3/SSL_CTX_set_new_pending_conn_cb.html", "doc/html/man3/SSL_CTX_set_num_tickets.html", "doc/html/man3/SSL_CTX_set_options.html", "doc/html/man3/SSL_CTX_set_psk_client_callback.html", @@ -16897,6 +19559,7 @@ our %unified_info = ( "doc/html/man3/SSL_SESSION_print.html", "doc/html/man3/SSL_SESSION_set1_id.html", "doc/html/man3/SSL_accept.html", + "doc/html/man3/SSL_accept_stream.html", "doc/html/man3/SSL_alert_type_string.html", "doc/html/man3/SSL_alloc_buffers.html", "doc/html/man3/SSL_check_chain.html", @@ -16906,59 +19569,90 @@ our %unified_info = ( "doc/html/man3/SSL_export_keying_material.html", "doc/html/man3/SSL_extension_supported.html", "doc/html/man3/SSL_free.html", + "doc/html/man3/SSL_get0_connection.html", + "doc/html/man3/SSL_get0_group_name.html", + "doc/html/man3/SSL_get0_peer_rpk.html", "doc/html/man3/SSL_get0_peer_scts.html", + "doc/html/man3/SSL_get1_builtin_sigalgs.html", "doc/html/man3/SSL_get_SSL_CTX.html", "doc/html/man3/SSL_get_all_async_fds.html", "doc/html/man3/SSL_get_certificate.html", "doc/html/man3/SSL_get_ciphers.html", "doc/html/man3/SSL_get_client_random.html", + "doc/html/man3/SSL_get_conn_close_info.html", "doc/html/man3/SSL_get_current_cipher.html", "doc/html/man3/SSL_get_default_timeout.html", "doc/html/man3/SSL_get_error.html", + "doc/html/man3/SSL_get_event_timeout.html", "doc/html/man3/SSL_get_extms_support.html", "doc/html/man3/SSL_get_fd.html", + "doc/html/man3/SSL_get_handshake_rtt.html", "doc/html/man3/SSL_get_peer_cert_chain.html", "doc/html/man3/SSL_get_peer_certificate.html", "doc/html/man3/SSL_get_peer_signature_nid.html", "doc/html/man3/SSL_get_peer_tmp_key.html", "doc/html/man3/SSL_get_psk_identity.html", "doc/html/man3/SSL_get_rbio.html", + "doc/html/man3/SSL_get_rpoll_descriptor.html", "doc/html/man3/SSL_get_session.html", "doc/html/man3/SSL_get_shared_sigalgs.html", + "doc/html/man3/SSL_get_stream_id.html", + "doc/html/man3/SSL_get_stream_read_state.html", + "doc/html/man3/SSL_get_value_uint.html", "doc/html/man3/SSL_get_verify_result.html", "doc/html/man3/SSL_get_version.html", "doc/html/man3/SSL_group_to_name.html", + "doc/html/man3/SSL_handle_events.html", "doc/html/man3/SSL_in_init.html", + "doc/html/man3/SSL_inject_net_dgram.html", "doc/html/man3/SSL_key_update.html", "doc/html/man3/SSL_library_init.html", "doc/html/man3/SSL_load_client_CA_file.html", "doc/html/man3/SSL_new.html", + "doc/html/man3/SSL_new_domain.html", + "doc/html/man3/SSL_new_listener.html", + "doc/html/man3/SSL_new_stream.html", "doc/html/man3/SSL_pending.html", + "doc/html/man3/SSL_poll.html", "doc/html/man3/SSL_read.html", "doc/html/man3/SSL_read_early_data.html", "doc/html/man3/SSL_rstate_string.html", "doc/html/man3/SSL_session_reused.html", "doc/html/man3/SSL_set1_host.html", + "doc/html/man3/SSL_set1_initial_peer_addr.html", + "doc/html/man3/SSL_set1_server_cert_type.html", "doc/html/man3/SSL_set_async_callback.html", "doc/html/man3/SSL_set_bio.html", + "doc/html/man3/SSL_set_blocking_mode.html", "doc/html/man3/SSL_set_connect_state.html", + "doc/html/man3/SSL_set_default_stream_mode.html", "doc/html/man3/SSL_set_fd.html", + "doc/html/man3/SSL_set_incoming_stream_policy.html", + "doc/html/man3/SSL_set_quic_tls_cbs.html", "doc/html/man3/SSL_set_retry_verify.html", "doc/html/man3/SSL_set_session.html", + "doc/html/man3/SSL_set_session_secret_cb.html", "doc/html/man3/SSL_set_shutdown.html", "doc/html/man3/SSL_set_verify_result.html", "doc/html/man3/SSL_shutdown.html", "doc/html/man3/SSL_state_string.html", + "doc/html/man3/SSL_stream_conclude.html", + "doc/html/man3/SSL_stream_reset.html", "doc/html/man3/SSL_want.html", "doc/html/man3/SSL_write.html", "doc/html/man3/TS_RESP_CTX_new.html", - "doc/html/man3/TS_VERIFY_CTX_set_certs.html", + "doc/html/man3/TS_VERIFY_CTX.html", "doc/html/man3/UI_STRING.html", "doc/html/man3/UI_UTIL_read_pw.html", "doc/html/man3/UI_create_method.html", "doc/html/man3/UI_new.html", "doc/html/man3/X509V3_get_d2i.html", "doc/html/man3/X509V3_set_ctx.html", + "doc/html/man3/X509_ACERT_add1_attr.html", + "doc/html/man3/X509_ACERT_add_attr_nconf.html", + "doc/html/man3/X509_ACERT_get0_holder_baseCertId.html", + "doc/html/man3/X509_ACERT_get_attr.html", + "doc/html/man3/X509_ACERT_print_ex.html", "doc/html/man3/X509_ALGOR_dup.html", "doc/html/man3/X509_ATTRIBUTE.html", "doc/html/man3/X509_CRL_get0_by_serial.html", @@ -16975,6 +19669,7 @@ our %unified_info = ( "doc/html/man3/X509_REQ_get_attr.html", "doc/html/man3/X509_REQ_get_extensions.html", "doc/html/man3/X509_SIG_get0.html", + "doc/html/man3/X509_STORE_CTX_get_by_subject.html", "doc/html/man3/X509_STORE_CTX_get_error.html", "doc/html/man3/X509_STORE_CTX_new.html", "doc/html/man3/X509_STORE_CTX_set_verify_cb.html", @@ -16997,6 +19692,7 @@ our %unified_info = ( "doc/html/man3/X509_get0_notBefore.html", "doc/html/man3/X509_get0_signature.html", "doc/html/man3/X509_get0_uids.html", + "doc/html/man3/X509_get_default_cert_file.html", "doc/html/man3/X509_get_extension_flags.html", "doc/html/man3/X509_get_pubkey.html", "doc/html/man3/X509_get_serialNumber.html", @@ -17042,12 +19738,15 @@ our %unified_info = ( "doc/html/man7/EVP_CIPHER-RC5.html", "doc/html/man7/EVP_CIPHER-SEED.html", "doc/html/man7/EVP_CIPHER-SM4.html", + "doc/html/man7/EVP_KDF-ARGON2.html", "doc/html/man7/EVP_KDF-HKDF.html", + "doc/html/man7/EVP_KDF-HMAC-DRBG.html", "doc/html/man7/EVP_KDF-KB.html", "doc/html/man7/EVP_KDF-KRB5KDF.html", "doc/html/man7/EVP_KDF-PBKDF1.html", "doc/html/man7/EVP_KDF-PBKDF2.html", "doc/html/man7/EVP_KDF-PKCS12KDF.html", + "doc/html/man7/EVP_KDF-PVKKDF.html", "doc/html/man7/EVP_KDF-SCRYPT.html", "doc/html/man7/EVP_KDF-SS.html", "doc/html/man7/EVP_KDF-SSHKDF.html", @@ -17056,7 +19755,10 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-X942-ASN1.html", "doc/html/man7/EVP_KDF-X942-CONCAT.html", "doc/html/man7/EVP_KDF-X963.html", + "doc/html/man7/EVP_KEM-EC.html", + "doc/html/man7/EVP_KEM-ML-KEM.html", "doc/html/man7/EVP_KEM-RSA.html", + "doc/html/man7/EVP_KEM-X25519.html", "doc/html/man7/EVP_KEYEXCH-DH.html", "doc/html/man7/EVP_KEYEXCH-ECDH.html", "doc/html/man7/EVP_KEYEXCH-X25519.html", @@ -17068,6 +19770,7 @@ our %unified_info = ( "doc/html/man7/EVP_MAC-Poly1305.html", "doc/html/man7/EVP_MAC-Siphash.html", "doc/html/man7/EVP_MD-BLAKE2.html", + "doc/html/man7/EVP_MD-KECCAK.html", "doc/html/man7/EVP_MD-MD2.html", "doc/html/man7/EVP_MD-MD4.html", "doc/html/man7/EVP_MD-MD5-SHA1.html", @@ -17087,12 +19790,17 @@ our %unified_info = ( "doc/html/man7/EVP_PKEY-EC.html", "doc/html/man7/EVP_PKEY-FFC.html", "doc/html/man7/EVP_PKEY-HMAC.html", + "doc/html/man7/EVP_PKEY-ML-DSA.html", + "doc/html/man7/EVP_PKEY-ML-KEM.html", "doc/html/man7/EVP_PKEY-RSA.html", + "doc/html/man7/EVP_PKEY-SLH-DSA.html", "doc/html/man7/EVP_PKEY-SM2.html", "doc/html/man7/EVP_PKEY-X25519.html", + "doc/html/man7/EVP_RAND-CRNG-TEST.html", "doc/html/man7/EVP_RAND-CTR-DRBG.html", "doc/html/man7/EVP_RAND-HASH-DRBG.html", "doc/html/man7/EVP_RAND-HMAC-DRBG.html", + "doc/html/man7/EVP_RAND-JITTER.html", "doc/html/man7/EVP_RAND-SEED-SRC.html", "doc/html/man7/EVP_RAND-TEST-RAND.html", "doc/html/man7/EVP_RAND.html", @@ -17100,17 +19808,19 @@ our %unified_info = ( "doc/html/man7/EVP_SIGNATURE-ECDSA.html", "doc/html/man7/EVP_SIGNATURE-ED25519.html", "doc/html/man7/EVP_SIGNATURE-HMAC.html", + "doc/html/man7/EVP_SIGNATURE-ML-DSA.html", "doc/html/man7/EVP_SIGNATURE-RSA.html", + "doc/html/man7/EVP_SIGNATURE-SLH-DSA.html", "doc/html/man7/OSSL_PROVIDER-FIPS.html", "doc/html/man7/OSSL_PROVIDER-base.html", "doc/html/man7/OSSL_PROVIDER-default.html", "doc/html/man7/OSSL_PROVIDER-legacy.html", "doc/html/man7/OSSL_PROVIDER-null.html", + "doc/html/man7/OSSL_STORE-winstore.html", "doc/html/man7/RAND.html", "doc/html/man7/RSA-PSS.html", "doc/html/man7/X25519.html", "doc/html/man7/bio.html", - "doc/html/man7/crypto.html", "doc/html/man7/ct.html", "doc/html/man7/des_modes.html", "doc/html/man7/evp.html", @@ -17121,14 +19831,31 @@ our %unified_info = ( "doc/html/man7/life_cycle-mac.html", "doc/html/man7/life_cycle-pkey.html", "doc/html/man7/life_cycle-rand.html", - "doc/html/man7/migration_guide.html", "doc/html/man7/openssl-core.h.html", "doc/html/man7/openssl-core_dispatch.h.html", "doc/html/man7/openssl-core_names.h.html", "doc/html/man7/openssl-env.html", "doc/html/man7/openssl-glossary.html", + "doc/html/man7/openssl-qlog.html", + "doc/html/man7/openssl-quic-concurrency.html", + "doc/html/man7/openssl-quic.html", "doc/html/man7/openssl-threads.html", "doc/html/man7/openssl_user_macros.html", + "doc/html/man7/ossl-guide-introduction.html", + "doc/html/man7/ossl-guide-libcrypto-introduction.html", + "doc/html/man7/ossl-guide-libraries-introduction.html", + "doc/html/man7/ossl-guide-libssl-introduction.html", + "doc/html/man7/ossl-guide-migration.html", + "doc/html/man7/ossl-guide-quic-client-block.html", + "doc/html/man7/ossl-guide-quic-client-non-block.html", + "doc/html/man7/ossl-guide-quic-introduction.html", + "doc/html/man7/ossl-guide-quic-multi-stream.html", + "doc/html/man7/ossl-guide-quic-server-block.html", + "doc/html/man7/ossl-guide-quic-server-non-block.html", + "doc/html/man7/ossl-guide-tls-client-block.html", + "doc/html/man7/ossl-guide-tls-client-non-block.html", + "doc/html/man7/ossl-guide-tls-introduction.html", + "doc/html/man7/ossl-guide-tls-server-block.html", "doc/html/man7/ossl_store-file.html", "doc/html/man7/ossl_store.html", "doc/html/man7/passphrase-encoding.html", @@ -17147,10 +19874,10 @@ our %unified_info = ( "doc/html/man7/provider-object.html", "doc/html/man7/provider-rand.html", "doc/html/man7/provider-signature.html", + "doc/html/man7/provider-skeymgmt.html", "doc/html/man7/provider-storemgmt.html", "doc/html/man7/provider.html", "doc/html/man7/proxy-certificates.html", - "doc/html/man7/ssl.html", "doc/html/man7/x509.html" ] }, @@ -17165,12 +19892,21 @@ our %unified_info = ( ] }, "includes" => { + "OpenSSLConfig.cmake" => [ + "." + ], + "OpenSSLConfigVersion.cmake" => [ + "." + ], "apps/asn1parse.o" => [ "apps" ], "apps/ca.o" => [ "apps" ], + "apps/ca_internals_test-bin-ca.o" => [ + "apps" + ], "apps/ciphers.o" => [ "apps" ], @@ -17397,6 +20133,9 @@ our %unified_info = ( "apps/openssl-bin-sess_id.o" => [ "apps" ], + "apps/openssl-bin-skeyutl.o" => [ + "apps" + ], "apps/openssl-bin-smime.o" => [ "apps" ], @@ -17484,6 +20223,9 @@ our %unified_info = ( "apps/sess_id.o" => [ "apps" ], + "apps/skeyutl.o" => [ + "apps" + ], "apps/smime.o" => [ "apps" ], @@ -17538,9 +20280,21 @@ our %unified_info = ( "crypto/aes/libcrypto-lib-aesv8-armx.o" => [ "crypto" ], + "crypto/aes/libcrypto-lib-vpaes-armv8.o" => [ + "crypto" + ], "crypto/aes/libfips-lib-aesv8-armx.o" => [ "crypto" ], + "crypto/aes/libfips-lib-vpaes-armv8.o" => [ + "crypto" + ], + "crypto/aes/vpaes-armv8.o" => [ + "crypto" + ], + "crypto/aes/vpaes-loongarch64.o" => [ + "crypto" + ], "crypto/arm64cpuid.o" => [ "crypto" ], @@ -17598,12 +20352,21 @@ our %unified_info = ( "crypto/chacha/chacha-armv4.o" => [ "crypto" ], + "crypto/chacha/chacha-armv8-sve.o" => [ + "crypto" + ], "crypto/chacha/chacha-armv8.o" => [ "crypto" ], + "crypto/chacha/chacha-loongarch64.o" => [ + "crypto" + ], "crypto/chacha/chacha-s390x.o" => [ "crypto" ], + "crypto/chacha/libcrypto-lib-chacha-armv8-sve.o" => [ + "crypto" + ], "crypto/chacha/libcrypto-lib-chacha-armv8.o" => [ "crypto" ], @@ -17628,6 +20391,12 @@ our %unified_info = ( "crypto/ec/ecp_s390x_nistp.o" => [ "crypto" ], + "crypto/ec/ecp_sm2p256-armv8.o" => [ + "crypto" + ], + "crypto/ec/ecx_key.o" => [ + "crypto" + ], "crypto/ec/ecx_meth.o" => [ "crypto" ], @@ -17637,12 +20406,24 @@ our %unified_info = ( "crypto/ec/libcrypto-lib-ecp_nistz256-armv8.o" => [ "crypto" ], + "crypto/ec/libcrypto-lib-ecp_sm2p256-armv8.o" => [ + "crypto" + ], + "crypto/ec/libcrypto-lib-ecx_key.o" => [ + "crypto" + ], "crypto/ec/libcrypto-lib-ecx_meth.o" => [ "crypto" ], "crypto/ec/libfips-lib-ecp_nistz256-armv8.o" => [ "crypto" ], + "crypto/ec/libfips-lib-ecp_sm2p256-armv8.o" => [ + "crypto" + ], + "crypto/ec/libfips-lib-ecx_key.o" => [ + "crypto" + ], "crypto/evp/e_aes.o" => [ "crypto", "crypto/modes" @@ -17720,9 +20501,21 @@ our %unified_info = ( "crypto/libfips-lib-cpuid.o" => [ "." ], + "crypto/md5/libcrypto-lib-md5-aarch64.o" => [ + "crypto" + ], + "crypto/md5/md5-aarch64.o" => [ + "crypto" + ], + "crypto/md5/md5-loongarch64.o" => [ + "crypto" + ], "crypto/md5/md5-sparcv9.o" => [ "crypto" ], + "crypto/modes/aes-gcm-armv8-unroll8_64.o" => [ + "crypto" + ], "crypto/modes/aes-gcm-armv8_64.o" => [ "crypto" ], @@ -17741,6 +20534,9 @@ our %unified_info = ( "crypto/modes/ghashv8-armx.o" => [ "crypto" ], + "crypto/modes/libcrypto-lib-aes-gcm-armv8-unroll8_64.o" => [ + "crypto" + ], "crypto/modes/libcrypto-lib-aes-gcm-armv8_64.o" => [ "crypto" ], @@ -17750,6 +20546,9 @@ our %unified_info = ( "crypto/modes/libcrypto-lib-ghashv8-armx.o" => [ "crypto" ], + "crypto/modes/libfips-lib-aes-gcm-armv8-unroll8_64.o" => [ + "crypto" + ], "crypto/modes/libfips-lib-aes-gcm-armv8_64.o" => [ "crypto" ], @@ -17759,6 +20558,9 @@ our %unified_info = ( "crypto/modes/libfips-lib-ghashv8-armx.o" => [ "crypto" ], + "crypto/params_idx.c" => [ + "util/perl" + ], "crypto/poly1305/libcrypto-lib-poly1305-armv8.o" => [ "crypto" ], @@ -17783,6 +20585,12 @@ our %unified_info = ( "crypto/sha/keccak1600-armv4.o" => [ "crypto" ], + "crypto/sha/keccak1600-armv8.o" => [ + "crypto" + ], + "crypto/sha/libcrypto-lib-keccak1600-armv8.o" => [ + "crypto" + ], "crypto/sha/libcrypto-lib-sha1-armv8.o" => [ "crypto" ], @@ -17792,6 +20600,9 @@ our %unified_info = ( "crypto/sha/libcrypto-lib-sha512-armv8.o" => [ "crypto" ], + "crypto/sha/libfips-lib-keccak1600-armv8.o" => [ + "crypto" + ], "crypto/sha/libfips-lib-sha1-armv8.o" => [ "crypto" ], @@ -17846,6 +20657,30 @@ our %unified_info = ( "crypto/sha/sha512-sparcv9.o" => [ "crypto" ], + "crypto/sm3/libcrypto-lib-sm3-armv8.o" => [ + "crypto" + ], + "crypto/sm3/sm3-armv8.o" => [ + "crypto" + ], + "crypto/sm4/libcrypto-lib-sm4-armv8.o" => [ + "crypto" + ], + "crypto/sm4/libcrypto-lib-vpsm4-armv8.o" => [ + "crypto" + ], + "crypto/sm4/libcrypto-lib-vpsm4_ex-armv8.o" => [ + "crypto" + ], + "crypto/sm4/sm4-armv8.o" => [ + "crypto" + ], + "crypto/sm4/vpsm4-armv8.o" => [ + "crypto" + ], + "crypto/sm4/vpsm4_ex-armv8.o" => [ + "crypto" + ], "doc/man1/openssl-asn1parse.pod" => [ "doc" ], @@ -17978,6 +20813,9 @@ our %unified_info = ( "doc/man1/openssl-sess_id.pod" => [ "doc" ], + "doc/man1/openssl-skeyutl.pod" => [ + "doc" + ], "doc/man1/openssl-smime.pod" => [ "doc" ], @@ -18005,6 +20843,24 @@ our %unified_info = ( "doc/man1/openssl-x509.pod" => [ "doc" ], + "exporters/OpenSSLConfig.cmake" => [ + "." + ], + "exporters/OpenSSLConfigVersion.cmake" => [ + "." + ], + "exporters/libcrypto.pc" => [ + "." + ], + "exporters/libssl.pc" => [ + "." + ], + "exporters/openssl.pc" => [ + "." + ], + "fuzz/acert-test" => [ + "include" + ], "fuzz/asn1-test" => [ "include" ], @@ -18035,12 +20891,69 @@ our %unified_info = ( "fuzz/ct-test" => [ "include" ], + "fuzz/decoder-test" => [ + "include" + ], + "fuzz/dtlsclient-test" => [ + "include" + ], + "fuzz/dtlsserver-test" => [ + "include" + ], + "fuzz/hashtable-test" => [ + "include" + ], + "fuzz/ml-dsa-test" => [ + "include" + ], + "fuzz/ml-kem-test" => [ + "include" + ], + "fuzz/pem-test" => [ + "include" + ], + "fuzz/provider-test" => [ + "include" + ], + "fuzz/punycode-test" => [ + "include" + ], + "fuzz/quic-client-test" => [ + "include" + ], + "fuzz/quic-lcidm-test" => [ + "include" + ], + "fuzz/quic-rcidm-test" => [ + "include" + ], + "fuzz/quic-server-test" => [ + "include" + ], + "fuzz/quic-srtm-test" => [ + "include" + ], "fuzz/server-test" => [ "include" ], + "fuzz/slh-dsa-test" => [ + "include" + ], + "fuzz/smime-test" => [ + "include" + ], + "fuzz/v3name-test" => [ + "include" + ], "fuzz/x509-test" => [ "include" ], + "include/internal/param_names.h" => [ + "util/perl" + ], + "include/openssl/core_names.h" => [ + "util/perl" + ], "libcrypto" => [ ".", "include", @@ -18051,6 +20964,9 @@ our %unified_info = ( ".", "util/perl/OpenSSL" ], + "libcrypto.pc" => [ + "." + ], "libssl" => [ ".", "include" @@ -18059,6 +20975,12 @@ our %unified_info = ( ".", "util/perl/OpenSSL" ], + "libssl.pc" => [ + "." + ], + "openssl.pc" => [ + "." + ], "providers/common/der/der_digests_gen.c" => [ "providers/common/der" ], @@ -18098,6 +21020,15 @@ our %unified_info = ( "providers/common/der/der_ecx_key.o" => [ "providers/common/include/prov" ], + "providers/common/der/der_ml_dsa_gen.c" => [ + "providers/common/der" + ], + "providers/common/der/der_ml_dsa_gen.o" => [ + "providers/common/include/prov" + ], + "providers/common/der/der_ml_dsa_key.o" => [ + "providers/common/include/prov" + ], "providers/common/der/der_rsa_gen.c" => [ "providers/common/der" ], @@ -18110,6 +21041,15 @@ our %unified_info = ( "providers/common/der/der_rsa_sig.o" => [ "providers/common/include/prov" ], + "providers/common/der/der_slh_dsa_gen.c" => [ + "providers/common/der" + ], + "providers/common/der/der_slh_dsa_gen.o" => [ + "providers/common/include/prov" + ], + "providers/common/der/der_slh_dsa_key.o" => [ + "providers/common/include/prov" + ], "providers/common/der/der_sm2_gen.c" => [ "providers/common/der" ], @@ -18155,12 +21095,24 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ecx_key.o" => [ "providers/common/include/prov" ], + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o" => [ + "providers/common/include/prov" + ], + "providers/common/der/libcommon-lib-der_ml_dsa_key.o" => [ + "providers/common/include/prov" + ], "providers/common/der/libcommon-lib-der_rsa_gen.o" => [ "providers/common/include/prov" ], "providers/common/der/libcommon-lib-der_rsa_key.o" => [ "providers/common/include/prov" ], + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o" => [ + "providers/common/include/prov" + ], + "providers/common/der/libcommon-lib-der_slh_dsa_key.o" => [ + "providers/common/include/prov" + ], "providers/common/der/libcommon-lib-der_wrap_gen.o" => [ "providers/common/include/prov" ], @@ -18191,9 +21143,15 @@ our %unified_info = ( "providers/common/include/prov/der_ecx.h" => [ "providers/common/der" ], + "providers/common/include/prov/der_ml_dsa.h" => [ + "providers/common/der" + ], "providers/common/include/prov/der_rsa.h" => [ "providers/common/der" ], + "providers/common/include/prov/der_slh_dsa.h" => [ + "providers/common/der" + ], "providers/common/include/prov/der_sm2.h" => [ "providers/common/der" ], @@ -18236,9 +21194,15 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-eddsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/libdefault-lib-rsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/libdefault-lib-sm2_sig.o" => [ "providers/common/include/prov" ], @@ -18251,12 +21215,24 @@ our %unified_info = ( "providers/implementations/signature/libfips-lib-eddsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/libfips-lib-rsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o" => [ + "providers/common/include/prov" + ], + "providers/implementations/signature/ml_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/rsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/slh_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/sm2_sig.o" => [ "providers/common/include/prov" ], @@ -18269,28 +21245,39 @@ our %unified_info = ( "crypto", "include", "providers/implementations/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" ], "providers/libdefault.a" => [ ".", "crypto", "include", "providers/implementations/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" ], "providers/libfips.a" => [ ".", "crypto", "include", "providers/implementations/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" ], "providers/liblegacy.a" => [ ".", "crypto", "include", "providers/implementations/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" + ], + "providers/libtemplate.a" => [ + "crypto", + "include", + "providers/implementations/include", + "providers/common/include", + "providers/fips/include" ], "test/aborttest" => [ "include", @@ -18359,6 +21346,14 @@ our %unified_info = ( "include", "apps/include" ], + "test/bio_addr_test" => [ + "include", + "apps/include" + ], + "test/bio_base64_test" => [ + "include", + "apps/include" + ], "test/bio_callback_test" => [ "include", "apps/include" @@ -18367,6 +21362,11 @@ our %unified_info = ( "include", "apps/include" ], + "test/bio_dgram_test" => [ + "include", + "apps/include", + "." + ], "test/bio_enc_test" => [ "include", "apps/include" @@ -18375,6 +21375,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/bio_meth_test" => [ + "include", + "apps/include" + ], "test/bio_prefix_text" => [ ".", "include", @@ -18388,6 +21392,11 @@ our %unified_info = ( "include", "apps/include" ], + "test/bio_tfo_test" => [ + "include", + "apps/include", + "." + ], "test/bioprinttest" => [ "include", "apps/include" @@ -18402,6 +21411,9 @@ our %unified_info = ( "include", "apps/include" ], + "test/build_wincrypt_test" => [ + "include" + ], "test/buildtest_c_aes" => [ "include" ], @@ -18417,6 +21429,9 @@ our %unified_info = ( "test/buildtest_c_buffer" => [ "include" ], + "test/buildtest_c_byteorder" => [ + "include" + ], "test/buildtest_c_camellia" => [ "include" ], @@ -18441,9 +21456,6 @@ our %unified_info = ( "test/buildtest_c_core_dispatch" => [ "include" ], - "test/buildtest_c_core_names" => [ - "include" - ], "test/buildtest_c_core_object" => [ "include" ], @@ -18468,6 +21480,9 @@ our %unified_info = ( "test/buildtest_c_e_os2" => [ "include" ], + "test/buildtest_c_e_ostime" => [ + "include" + ], "test/buildtest_c_ebcdic" => [ "include" ], @@ -18495,12 +21510,18 @@ our %unified_info = ( "test/buildtest_c_hmac" => [ "include" ], + "test/buildtest_c_hpke" => [ + "include" + ], "test/buildtest_c_http" => [ "include" ], "test/buildtest_c_idea" => [ "include" ], + "test/buildtest_c_indicator" => [ + "include" + ], "test/buildtest_c_kdf" => [ "include" ], @@ -18516,6 +21537,9 @@ our %unified_info = ( "test/buildtest_c_mdc2" => [ "include" ], + "test/buildtest_c_ml_kem" => [ + "include" + ], "test/buildtest_c_modes" => [ "include" ], @@ -18546,6 +21570,9 @@ our %unified_info = ( "test/buildtest_c_provider" => [ "include" ], + "test/buildtest_c_quic" => [ + "include" + ], "test/buildtest_c_rand" => [ "include" ], @@ -18588,6 +21615,9 @@ our %unified_info = ( "test/buildtest_c_symhacks" => [ "include" ], + "test/buildtest_c_thread" => [ + "include" + ], "test/buildtest_c_tls1" => [ "include" ], @@ -18603,10 +21633,24 @@ our %unified_info = ( "test/buildtest_c_whrlpool" => [ "include" ], + "test/byteorder_test" => [ + "include", + "apps/include" + ], + "test/ca_internals_test" => [ + ".", + "include", + "apps/include" + ], "test/casttest" => [ "include", "apps/include" ], + "test/cert_comp_test" => [ + "include", + "apps/include", + "." + ], "test/chacha_internal_test" => [ ".", "include", @@ -18730,6 +21774,11 @@ our %unified_info = ( "include", "apps/include" ], + "test/decoder_propq_test" => [ + ".", + "include", + "apps/include" + ], "test/defltfips_test" => [ "include", "apps/include" @@ -18745,7 +21794,8 @@ our %unified_info = ( "test/drbgtest" => [ "include", "apps/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" ], "test/dsa_no_digest_size_test" => [ "include", @@ -18788,7 +21838,9 @@ our %unified_info = ( "test/endecode_test" => [ ".", "include", - "apps/include" + "apps/include", + "providers/common/include", + "providers/implementations/include" ], "test/endecoder_legacy_test" => [ ".", @@ -18833,6 +21885,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/evp_pkey_dhkem_test" => [ + "include", + "apps/include" + ], "test/evp_pkey_dparams_test" => [ "include", "apps/include" @@ -18841,10 +21897,18 @@ our %unified_info = ( "include", "apps/include" ], + "test/evp_skey_test" => [ + "include", + "apps/include" + ], "test/evp_test" => [ "include", "apps/include" ], + "test/evp_xof_test" => [ + "include", + "apps/include" + ], "test/exdatatest" => [ "include", "apps/include" @@ -18945,22 +22009,62 @@ our %unified_info = ( ".", "include" ], + "test/helpers/json_test-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/helpers/pkcs12.o" => [ ".", "include" ], + "test/helpers/pkcs12_api_test-bin-pkcs12.o" => [ + ".", + "include" + ], "test/helpers/pkcs12_format_test-bin-pkcs12.o" => [ ".", "include" ], + "test/helpers/quic_multistream_test-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quic_newcid_test-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quic_radix_test-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quic_srt_gen_test-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quicapitest-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quicfaultstest-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/helpers/recordlentest-bin-ssltestlib.o" => [ ".", "include" ], + "test/helpers/rpktest-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/helpers/servername_test-bin-ssltestlib.o" => [ ".", "include" ], + "test/helpers/ssl_handshake_rtt_test-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/helpers/ssl_test-bin-handshake.o" => [ ".", "include" @@ -18994,6 +22098,10 @@ our %unified_info = ( ".", "include" ], + "test/helpers/tls13groupselection_test-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/hexstr_test" => [ ".", "include", @@ -19003,6 +22111,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/hpke_test" => [ + "include", + "apps/include" + ], "test/http_test" => [ "include", "apps/include" @@ -19015,6 +22127,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/json_test" => [ + "include", + "apps/include" + ], "test/keymgmt_internal_test" => [ ".", "include", @@ -19029,6 +22145,10 @@ our %unified_info = ( "apps/include", "." ], + "test/list_test" => [ + "include", + "apps/include" + ], "test/localetest" => [ "include", "apps/include" @@ -19042,10 +22162,27 @@ our %unified_info = ( "include", "apps/include" ], + "test/membio_test" => [ + "include", + "apps/include", + "." + ], "test/memleaktest" => [ "include", "apps/include" ], + "test/ml_dsa_test" => [ + "include", + "apps/include" + ], + "test/ml_kem_evp_extra_test" => [ + "include", + "apps/include" + ], + "test/ml_kem_internal_test" => [ + "include", + "apps/include" + ], "test/modes_internal_test" => [ ".", "include", @@ -19080,6 +22217,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/pairwise_fail_test" => [ + "include", + "apps/include" + ], "test/param_build_test" => [ "include", "apps/include" @@ -19113,6 +22254,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/pkcs12_api_test" => [ + "include", + "apps/include" + ], "test/pkcs12_format_test" => [ "include", "apps/include" @@ -19134,6 +22279,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/priority_queue_test" => [ + "include", + "apps/include" + ], "test/property_test" => [ ".", "include", @@ -19147,6 +22296,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/provider_default_search_path_test" => [ + "include", + "apps/include" + ], "test/provider_fallback_test" => [ "include", "apps/include" @@ -19173,6 +22326,97 @@ our %unified_info = ( "include", "apps/include" ], + "test/quic_ackm_test" => [ + "include", + "apps/include" + ], + "test/quic_cc_test" => [ + "include", + "apps/include" + ], + "test/quic_cfq_test" => [ + "include", + "apps/include" + ], + "test/quic_client_test" => [ + "include", + "apps/include" + ], + "test/quic_fc_test" => [ + "include", + "apps/include" + ], + "test/quic_fifd_test" => [ + "include", + "apps/include" + ], + "test/quic_lcidm_test" => [ + "include", + "apps/include" + ], + "test/quic_multistream_test" => [ + "include", + "apps/include" + ], + "test/quic_newcid_test" => [ + "include", + "apps/include", + "." + ], + "test/quic_qlog_test" => [ + "include", + "apps/include" + ], + "test/quic_radix_test" => [ + "include", + "apps/include" + ], + "test/quic_rcidm_test" => [ + "include", + "apps/include" + ], + "test/quic_record_test" => [ + "include", + "apps/include" + ], + "test/quic_srt_gen_test" => [ + "include", + "apps/include", + "." + ], + "test/quic_srtm_test" => [ + "include", + "apps/include" + ], + "test/quic_stream_test" => [ + "include", + "apps/include" + ], + "test/quic_tserver_test" => [ + "include", + "apps/include" + ], + "test/quic_txp_test" => [ + "include", + "apps/include" + ], + "test/quic_txpim_test" => [ + "include", + "apps/include" + ], + "test/quic_wire_test" => [ + "include", + "apps/include" + ], + "test/quicapitest" => [ + "include", + "apps/include" + ], + "test/quicfaultstest" => [ + "include", + "apps/include", + "." + ], "test/rand_status_test" => [ "include", "apps/include" @@ -19193,14 +22437,20 @@ our %unified_info = ( "include", "apps/include" ], - "test/rdrand_sanitytest" => [ + "test/rdcpu_sanitytest" => [ "include", - "apps/include" + "apps/include", + "crypto" ], "test/recordlentest" => [ "include", "apps/include" ], + "test/rpktest" => [ + "include", + "apps/include", + "." + ], "test/rsa_complex" => [ "include", "apps/include" @@ -19219,6 +22469,15 @@ our %unified_info = ( "include", "apps/include" ], + "test/rsa_x931_test" => [ + ".", + "include", + "apps/include" + ], + "test/safe_math_test" => [ + "include", + "apps/include" + ], "test/sanitytest" => [ "include", "apps/include" @@ -19240,6 +22499,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/slh_dsa_test" => [ + "include", + "apps/include" + ], "test/sm2_internal_test" => [ "include", "apps/include" @@ -19270,6 +22533,11 @@ our %unified_info = ( "include", "apps/include" ], + "test/ssl_handshake_rtt_test" => [ + "include", + "apps/include", + "." + ], "test/ssl_old_test" => [ ".", "include", @@ -19286,6 +22554,7 @@ our %unified_info = ( "test/sslapitest" => [ "include", "apps/include", + "providers/common/include", "." ], "test/sslbuffertest" => [ @@ -19300,6 +22569,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/strtoultest" => [ + "include", + "apps/include" + ], "test/sysdefaulttest" => [ "include", "apps/include" @@ -19308,7 +22581,13 @@ our %unified_info = ( "include", "apps/include" ], + "test/threadpool_test" => [ + ".", + "include", + "apps/include" + ], "test/threadstest" => [ + ".", "include", "apps/include" ], @@ -19320,6 +22599,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/time_test" => [ + "include", + "apps/include" + ], "test/tls13ccstest" => [ "include", "apps/include" @@ -19329,6 +22612,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/tls13groupselection_test" => [ + "include", + "apps/include" + ], "test/trace_api_test" => [ ".", "include", @@ -19367,6 +22654,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/x509_acert_test" => [ + "include", + "apps/include" + ], "test/x509_check_cert_pkey_test" => [ "include", "apps/include" @@ -19380,6 +22671,18 @@ our %unified_info = ( "include", "apps/include" ], + "test/x509_load_cert_file_test" => [ + "include", + "apps/include" + ], + "test/x509_req_test" => [ + "include", + "apps/include" + ], + "test/x509_test" => [ + "include", + "apps/include" + ], "test/x509_time_test" => [ "include", "apps/include" @@ -19401,6 +22704,7 @@ our %unified_info = ( "providers/libdefault.a", "providers/libfips.a", "providers/liblegacy.a", + "providers/libtemplate.a", "test/libtestutil.a" ], "mandocs" => { @@ -19453,6 +22757,7 @@ our %unified_info = ( "doc/man/man1/openssl-s_server.1", "doc/man/man1/openssl-s_time.1", "doc/man/man1/openssl-sess_id.1", + "doc/man/man1/openssl-skeyutl.1", "doc/man/man1/openssl-smime.1", "doc/man/man1/openssl-speed.1", "doc/man/man1/openssl-spkac.1", @@ -19502,6 +22807,7 @@ our %unified_info = ( "doc/man/man3/BIO_find_type.3", "doc/man/man3/BIO_get_data.3", "doc/man/man3/BIO_get_ex_new_index.3", + "doc/man/man3/BIO_get_rpoll_descriptor.3", "doc/man/man3/BIO_meth_new.3", "doc/man/man3/BIO_new.3", "doc/man/man3/BIO_new_CMS.3", @@ -19514,11 +22820,13 @@ our %unified_info = ( "doc/man/man3/BIO_s_connect.3", "doc/man/man3/BIO_s_core.3", "doc/man/man3/BIO_s_datagram.3", + "doc/man/man3/BIO_s_dgram_pair.3", "doc/man/man3/BIO_s_fd.3", "doc/man/man3/BIO_s_file.3", "doc/man/man3/BIO_s_mem.3", "doc/man/man3/BIO_s_null.3", "doc/man/man3/BIO_s_socket.3", + "doc/man/man3/BIO_sendmmsg.3", "doc/man/man3/BIO_set_callback.3", "doc/man/man3/BIO_should_retry.3", "doc/man/man3/BIO_socket_wait.3", @@ -19543,6 +22851,7 @@ our %unified_info = ( "doc/man/man3/BN_swap.3", "doc/man/man3/BN_zero.3", "doc/man/man3/BUF_MEM_new.3", + "doc/man/man3/CMAC_CTX.3", "doc/man/man3/CMS_EncryptedData_decrypt.3", "doc/man/man3/CMS_EncryptedData_encrypt.3", "doc/man/man3/CMS_EnvelopedData_create.3", @@ -19565,6 +22874,7 @@ our %unified_info = ( "doc/man/man3/CMS_uncompress.3", "doc/man/man3/CMS_verify.3", "doc/man/man3/CMS_verify_receipt.3", + "doc/man/man3/COMP_CTX_new.3", "doc/man/man3/CONF_modules_free.3", "doc/man/man3/CONF_modules_load_file.3", "doc/man/man3/CRYPTO_THREAD_run_once.3", @@ -19598,6 +22908,8 @@ our %unified_info = ( "doc/man/man3/DSA_size.3", "doc/man/man3/DTLS_get_data_mtu.3", "doc/man/man3/DTLS_set_timer_cb.3", + "doc/man/man3/DTLSv1_get_timeout.3", + "doc/man/man3/DTLSv1_handle_timeout.3", "doc/man/man3/DTLSv1_listen.3", "doc/man/man3/ECDSA_SIG_new.3", "doc/man/man3/ECDSA_sign.3", @@ -19644,6 +22956,7 @@ our %unified_info = ( "doc/man/man3/EVP_PKEY_CTX_ctrl.3", "doc/man/man3/EVP_PKEY_CTX_get0_libctx.3", "doc/man/man3/EVP_PKEY_CTX_get0_pkey.3", + "doc/man/man3/EVP_PKEY_CTX_get_algor.3", "doc/man/man3/EVP_PKEY_CTX_new.3", "doc/man/man3/EVP_PKEY_CTX_set1_pbe_pass.3", "doc/man/man3/EVP_PKEY_CTX_set_hkdf_md.3", @@ -19683,6 +22996,8 @@ our %unified_info = ( "doc/man/man3/EVP_PKEY_verify_recover.3", "doc/man/man3/EVP_RAND.3", "doc/man/man3/EVP_SIGNATURE.3", + "doc/man/man3/EVP_SKEY.3", + "doc/man/man3/EVP_SKEYMGMT.3", "doc/man/man3/EVP_SealInit.3", "doc/man/man3/EVP_SignInit.3", "doc/man/man3/EVP_VerifyInit.3", @@ -19712,6 +23027,7 @@ our %unified_info = ( "doc/man/man3/EVP_sm3.3", "doc/man/man3/EVP_sm4_cbc.3", "doc/man/man3/EVP_whirlpool.3", + "doc/man/man3/GENERAL_NAME.3", "doc/man/man3/HMAC.3", "doc/man/man3/MD5.3", "doc/man/man3/MDC2_Init.3", @@ -19736,14 +23052,18 @@ our %unified_info = ( "doc/man/man3/OPENSSL_init_ssl.3", "doc/man/man3/OPENSSL_instrument_bus.3", "doc/man/man3/OPENSSL_load_builtin_modules.3", + "doc/man/man3/OPENSSL_load_u16_le.3", "doc/man/man3/OPENSSL_malloc.3", + "doc/man/man3/OPENSSL_riscvcap.3", "doc/man/man3/OPENSSL_s390xcap.3", "doc/man/man3/OPENSSL_secure_malloc.3", "doc/man/man3/OPENSSL_strcasecmp.3", "doc/man/man3/OSSL_ALGORITHM.3", "doc/man/man3/OSSL_CALLBACK.3", + "doc/man/man3/OSSL_CMP_ATAV_set0.3", "doc/man/man3/OSSL_CMP_CTX_new.3", "doc/man/man3/OSSL_CMP_HDR_get0_transactionID.3", + "doc/man/man3/OSSL_CMP_ITAV_new_caCerts.3", "doc/man/man3/OSSL_CMP_ITAV_set0.3", "doc/man/man3/OSSL_CMP_MSG_get0_header.3", "doc/man/man3/OSSL_CMP_MSG_http_perform.3", @@ -19767,18 +23087,27 @@ our %unified_info = ( "doc/man/man3/OSSL_ENCODER_CTX.3", "doc/man/man3/OSSL_ENCODER_CTX_new_for_pkey.3", "doc/man/man3/OSSL_ENCODER_to_bio.3", + "doc/man/man3/OSSL_ERR_STATE_save.3", "doc/man/man3/OSSL_ESS_check_signing_certs.3", + "doc/man/man3/OSSL_GENERAL_NAMES_print.3", + "doc/man/man3/OSSL_HPKE_CTX_new.3", "doc/man/man3/OSSL_HTTP_REQ_CTX.3", "doc/man/man3/OSSL_HTTP_parse_url.3", "doc/man/man3/OSSL_HTTP_transfer.3", + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX.3", + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX_print.3", + "doc/man/man3/OSSL_INDICATOR_set_callback.3", "doc/man/man3/OSSL_ITEM.3", "doc/man/man3/OSSL_LIB_CTX.3", + "doc/man/man3/OSSL_LIB_CTX_set_conf_diagnostics.3", "doc/man/man3/OSSL_PARAM.3", "doc/man/man3/OSSL_PARAM_BLD.3", "doc/man/man3/OSSL_PARAM_allocate_from_text.3", "doc/man/man3/OSSL_PARAM_dup.3", "doc/man/man3/OSSL_PARAM_int.3", + "doc/man/man3/OSSL_PARAM_print_to_bio.3", "doc/man/man3/OSSL_PROVIDER.3", + "doc/man/man3/OSSL_QUIC_client_method.3", "doc/man/man3/OSSL_SELF_TEST_new.3", "doc/man/man3/OSSL_SELF_TEST_set_callback.3", "doc/man/man3/OSSL_STORE_INFO.3", @@ -19787,11 +23116,13 @@ our %unified_info = ( "doc/man/man3/OSSL_STORE_attach.3", "doc/man/man3/OSSL_STORE_expect.3", "doc/man/man3/OSSL_STORE_open.3", + "doc/man/man3/OSSL_sleep.3", "doc/man/man3/OSSL_trace_enabled.3", "doc/man/man3/OSSL_trace_get_category_num.3", "doc/man/man3/OSSL_trace_set_channel.3", "doc/man/man3/OpenSSL_add_all_algorithms.3", "doc/man/man3/OpenSSL_version.3", + "doc/man/man3/PBMAC1_get1_pbkdf2_param.3", "doc/man/man3/PEM_X509_INFO_read_bio_ex.3", "doc/man/man3/PEM_bytes_read_bio.3", "doc/man/man3/PEM_read.3", @@ -19804,6 +23135,7 @@ our %unified_info = ( "doc/man/man3/PKCS12_SAFEBAG_create_cert.3", "doc/man/man3/PKCS12_SAFEBAG_get0_attrs.3", "doc/man/man3/PKCS12_SAFEBAG_get1_cert.3", + "doc/man/man3/PKCS12_SAFEBAG_set0_attrs.3", "doc/man/man3/PKCS12_add1_attr_by_NID.3", "doc/man/man3/PKCS12_add_CSPName_asc.3", "doc/man/man3/PKCS12_add_cert.3", @@ -19895,6 +23227,7 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_sess_set_get_cb.3", "doc/man/man3/SSL_CTX_sessions.3", "doc/man/man3/SSL_CTX_set0_CA_list.3", + "doc/man/man3/SSL_CTX_set1_cert_comp_preference.3", "doc/man/man3/SSL_CTX_set1_curves.3", "doc/man/man3/SSL_CTX_set1_sigalgs.3", "doc/man/man3/SSL_CTX_set1_verify_cert_store.3", @@ -19908,6 +23241,7 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_ct_validation_callback.3", "doc/man/man3/SSL_CTX_set_ctlog_list_file.3", "doc/man/man3/SSL_CTX_set_default_passwd_cb.3", + "doc/man/man3/SSL_CTX_set_domain_flags.3", "doc/man/man3/SSL_CTX_set_generate_session_id.3", "doc/man/man3/SSL_CTX_set_info_callback.3", "doc/man/man3/SSL_CTX_set_keylog_callback.3", @@ -19915,6 +23249,7 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_min_proto_version.3", "doc/man/man3/SSL_CTX_set_mode.3", "doc/man/man3/SSL_CTX_set_msg_callback.3", + "doc/man/man3/SSL_CTX_set_new_pending_conn_cb.3", "doc/man/man3/SSL_CTX_set_num_tickets.3", "doc/man/man3/SSL_CTX_set_options.3", "doc/man/man3/SSL_CTX_set_psk_client_callback.3", @@ -19953,6 +23288,7 @@ our %unified_info = ( "doc/man/man3/SSL_SESSION_print.3", "doc/man/man3/SSL_SESSION_set1_id.3", "doc/man/man3/SSL_accept.3", + "doc/man/man3/SSL_accept_stream.3", "doc/man/man3/SSL_alert_type_string.3", "doc/man/man3/SSL_alloc_buffers.3", "doc/man/man3/SSL_check_chain.3", @@ -19962,59 +23298,90 @@ our %unified_info = ( "doc/man/man3/SSL_export_keying_material.3", "doc/man/man3/SSL_extension_supported.3", "doc/man/man3/SSL_free.3", + "doc/man/man3/SSL_get0_connection.3", + "doc/man/man3/SSL_get0_group_name.3", + "doc/man/man3/SSL_get0_peer_rpk.3", "doc/man/man3/SSL_get0_peer_scts.3", + "doc/man/man3/SSL_get1_builtin_sigalgs.3", "doc/man/man3/SSL_get_SSL_CTX.3", "doc/man/man3/SSL_get_all_async_fds.3", "doc/man/man3/SSL_get_certificate.3", "doc/man/man3/SSL_get_ciphers.3", "doc/man/man3/SSL_get_client_random.3", + "doc/man/man3/SSL_get_conn_close_info.3", "doc/man/man3/SSL_get_current_cipher.3", "doc/man/man3/SSL_get_default_timeout.3", "doc/man/man3/SSL_get_error.3", + "doc/man/man3/SSL_get_event_timeout.3", "doc/man/man3/SSL_get_extms_support.3", "doc/man/man3/SSL_get_fd.3", + "doc/man/man3/SSL_get_handshake_rtt.3", "doc/man/man3/SSL_get_peer_cert_chain.3", "doc/man/man3/SSL_get_peer_certificate.3", "doc/man/man3/SSL_get_peer_signature_nid.3", "doc/man/man3/SSL_get_peer_tmp_key.3", "doc/man/man3/SSL_get_psk_identity.3", "doc/man/man3/SSL_get_rbio.3", + "doc/man/man3/SSL_get_rpoll_descriptor.3", "doc/man/man3/SSL_get_session.3", "doc/man/man3/SSL_get_shared_sigalgs.3", + "doc/man/man3/SSL_get_stream_id.3", + "doc/man/man3/SSL_get_stream_read_state.3", + "doc/man/man3/SSL_get_value_uint.3", "doc/man/man3/SSL_get_verify_result.3", "doc/man/man3/SSL_get_version.3", "doc/man/man3/SSL_group_to_name.3", + "doc/man/man3/SSL_handle_events.3", "doc/man/man3/SSL_in_init.3", + "doc/man/man3/SSL_inject_net_dgram.3", "doc/man/man3/SSL_key_update.3", "doc/man/man3/SSL_library_init.3", "doc/man/man3/SSL_load_client_CA_file.3", "doc/man/man3/SSL_new.3", + "doc/man/man3/SSL_new_domain.3", + "doc/man/man3/SSL_new_listener.3", + "doc/man/man3/SSL_new_stream.3", "doc/man/man3/SSL_pending.3", + "doc/man/man3/SSL_poll.3", "doc/man/man3/SSL_read.3", "doc/man/man3/SSL_read_early_data.3", "doc/man/man3/SSL_rstate_string.3", "doc/man/man3/SSL_session_reused.3", "doc/man/man3/SSL_set1_host.3", + "doc/man/man3/SSL_set1_initial_peer_addr.3", + "doc/man/man3/SSL_set1_server_cert_type.3", "doc/man/man3/SSL_set_async_callback.3", "doc/man/man3/SSL_set_bio.3", + "doc/man/man3/SSL_set_blocking_mode.3", "doc/man/man3/SSL_set_connect_state.3", + "doc/man/man3/SSL_set_default_stream_mode.3", "doc/man/man3/SSL_set_fd.3", + "doc/man/man3/SSL_set_incoming_stream_policy.3", + "doc/man/man3/SSL_set_quic_tls_cbs.3", "doc/man/man3/SSL_set_retry_verify.3", "doc/man/man3/SSL_set_session.3", + "doc/man/man3/SSL_set_session_secret_cb.3", "doc/man/man3/SSL_set_shutdown.3", "doc/man/man3/SSL_set_verify_result.3", "doc/man/man3/SSL_shutdown.3", "doc/man/man3/SSL_state_string.3", + "doc/man/man3/SSL_stream_conclude.3", + "doc/man/man3/SSL_stream_reset.3", "doc/man/man3/SSL_want.3", "doc/man/man3/SSL_write.3", "doc/man/man3/TS_RESP_CTX_new.3", - "doc/man/man3/TS_VERIFY_CTX_set_certs.3", + "doc/man/man3/TS_VERIFY_CTX.3", "doc/man/man3/UI_STRING.3", "doc/man/man3/UI_UTIL_read_pw.3", "doc/man/man3/UI_create_method.3", "doc/man/man3/UI_new.3", "doc/man/man3/X509V3_get_d2i.3", "doc/man/man3/X509V3_set_ctx.3", + "doc/man/man3/X509_ACERT_add1_attr.3", + "doc/man/man3/X509_ACERT_add_attr_nconf.3", + "doc/man/man3/X509_ACERT_get0_holder_baseCertId.3", + "doc/man/man3/X509_ACERT_get_attr.3", + "doc/man/man3/X509_ACERT_print_ex.3", "doc/man/man3/X509_ALGOR_dup.3", "doc/man/man3/X509_ATTRIBUTE.3", "doc/man/man3/X509_CRL_get0_by_serial.3", @@ -20031,6 +23398,7 @@ our %unified_info = ( "doc/man/man3/X509_REQ_get_attr.3", "doc/man/man3/X509_REQ_get_extensions.3", "doc/man/man3/X509_SIG_get0.3", + "doc/man/man3/X509_STORE_CTX_get_by_subject.3", "doc/man/man3/X509_STORE_CTX_get_error.3", "doc/man/man3/X509_STORE_CTX_new.3", "doc/man/man3/X509_STORE_CTX_set_verify_cb.3", @@ -20053,6 +23421,7 @@ our %unified_info = ( "doc/man/man3/X509_get0_notBefore.3", "doc/man/man3/X509_get0_signature.3", "doc/man/man3/X509_get0_uids.3", + "doc/man/man3/X509_get_default_cert_file.3", "doc/man/man3/X509_get_extension_flags.3", "doc/man/man3/X509_get_pubkey.3", "doc/man/man3/X509_get_serialNumber.3", @@ -20098,12 +23467,15 @@ our %unified_info = ( "doc/man/man7/EVP_CIPHER-RC5.7", "doc/man/man7/EVP_CIPHER-SEED.7", "doc/man/man7/EVP_CIPHER-SM4.7", + "doc/man/man7/EVP_KDF-ARGON2.7", "doc/man/man7/EVP_KDF-HKDF.7", + "doc/man/man7/EVP_KDF-HMAC-DRBG.7", "doc/man/man7/EVP_KDF-KB.7", "doc/man/man7/EVP_KDF-KRB5KDF.7", "doc/man/man7/EVP_KDF-PBKDF1.7", "doc/man/man7/EVP_KDF-PBKDF2.7", "doc/man/man7/EVP_KDF-PKCS12KDF.7", + "doc/man/man7/EVP_KDF-PVKKDF.7", "doc/man/man7/EVP_KDF-SCRYPT.7", "doc/man/man7/EVP_KDF-SS.7", "doc/man/man7/EVP_KDF-SSHKDF.7", @@ -20112,7 +23484,10 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-X942-ASN1.7", "doc/man/man7/EVP_KDF-X942-CONCAT.7", "doc/man/man7/EVP_KDF-X963.7", + "doc/man/man7/EVP_KEM-EC.7", + "doc/man/man7/EVP_KEM-ML-KEM.7", "doc/man/man7/EVP_KEM-RSA.7", + "doc/man/man7/EVP_KEM-X25519.7", "doc/man/man7/EVP_KEYEXCH-DH.7", "doc/man/man7/EVP_KEYEXCH-ECDH.7", "doc/man/man7/EVP_KEYEXCH-X25519.7", @@ -20124,6 +23499,7 @@ our %unified_info = ( "doc/man/man7/EVP_MAC-Poly1305.7", "doc/man/man7/EVP_MAC-Siphash.7", "doc/man/man7/EVP_MD-BLAKE2.7", + "doc/man/man7/EVP_MD-KECCAK.7", "doc/man/man7/EVP_MD-MD2.7", "doc/man/man7/EVP_MD-MD4.7", "doc/man/man7/EVP_MD-MD5-SHA1.7", @@ -20143,12 +23519,17 @@ our %unified_info = ( "doc/man/man7/EVP_PKEY-EC.7", "doc/man/man7/EVP_PKEY-FFC.7", "doc/man/man7/EVP_PKEY-HMAC.7", + "doc/man/man7/EVP_PKEY-ML-DSA.7", + "doc/man/man7/EVP_PKEY-ML-KEM.7", "doc/man/man7/EVP_PKEY-RSA.7", + "doc/man/man7/EVP_PKEY-SLH-DSA.7", "doc/man/man7/EVP_PKEY-SM2.7", "doc/man/man7/EVP_PKEY-X25519.7", + "doc/man/man7/EVP_RAND-CRNG-TEST.7", "doc/man/man7/EVP_RAND-CTR-DRBG.7", "doc/man/man7/EVP_RAND-HASH-DRBG.7", "doc/man/man7/EVP_RAND-HMAC-DRBG.7", + "doc/man/man7/EVP_RAND-JITTER.7", "doc/man/man7/EVP_RAND-SEED-SRC.7", "doc/man/man7/EVP_RAND-TEST-RAND.7", "doc/man/man7/EVP_RAND.7", @@ -20156,17 +23537,19 @@ our %unified_info = ( "doc/man/man7/EVP_SIGNATURE-ECDSA.7", "doc/man/man7/EVP_SIGNATURE-ED25519.7", "doc/man/man7/EVP_SIGNATURE-HMAC.7", + "doc/man/man7/EVP_SIGNATURE-ML-DSA.7", "doc/man/man7/EVP_SIGNATURE-RSA.7", + "doc/man/man7/EVP_SIGNATURE-SLH-DSA.7", "doc/man/man7/OSSL_PROVIDER-FIPS.7", "doc/man/man7/OSSL_PROVIDER-base.7", "doc/man/man7/OSSL_PROVIDER-default.7", "doc/man/man7/OSSL_PROVIDER-legacy.7", "doc/man/man7/OSSL_PROVIDER-null.7", + "doc/man/man7/OSSL_STORE-winstore.7", "doc/man/man7/RAND.7", "doc/man/man7/RSA-PSS.7", "doc/man/man7/X25519.7", "doc/man/man7/bio.7", - "doc/man/man7/crypto.7", "doc/man/man7/ct.7", "doc/man/man7/des_modes.7", "doc/man/man7/evp.7", @@ -20177,14 +23560,31 @@ our %unified_info = ( "doc/man/man7/life_cycle-mac.7", "doc/man/man7/life_cycle-pkey.7", "doc/man/man7/life_cycle-rand.7", - "doc/man/man7/migration_guide.7", "doc/man/man7/openssl-core.h.7", "doc/man/man7/openssl-core_dispatch.h.7", "doc/man/man7/openssl-core_names.h.7", "doc/man/man7/openssl-env.7", "doc/man/man7/openssl-glossary.7", + "doc/man/man7/openssl-qlog.7", + "doc/man/man7/openssl-quic-concurrency.7", + "doc/man/man7/openssl-quic.7", "doc/man/man7/openssl-threads.7", "doc/man/man7/openssl_user_macros.7", + "doc/man/man7/ossl-guide-introduction.7", + "doc/man/man7/ossl-guide-libcrypto-introduction.7", + "doc/man/man7/ossl-guide-libraries-introduction.7", + "doc/man/man7/ossl-guide-libssl-introduction.7", + "doc/man/man7/ossl-guide-migration.7", + "doc/man/man7/ossl-guide-quic-client-block.7", + "doc/man/man7/ossl-guide-quic-client-non-block.7", + "doc/man/man7/ossl-guide-quic-introduction.7", + "doc/man/man7/ossl-guide-quic-multi-stream.7", + "doc/man/man7/ossl-guide-quic-server-block.7", + "doc/man/man7/ossl-guide-quic-server-non-block.7", + "doc/man/man7/ossl-guide-tls-client-block.7", + "doc/man/man7/ossl-guide-tls-client-non-block.7", + "doc/man/man7/ossl-guide-tls-introduction.7", + "doc/man/man7/ossl-guide-tls-server-block.7", "doc/man/man7/ossl_store-file.7", "doc/man/man7/ossl_store.7", "doc/man/man7/passphrase-encoding.7", @@ -20203,10 +23603,10 @@ our %unified_info = ( "doc/man/man7/provider-object.7", "doc/man/man7/provider-rand.7", "doc/man/man7/provider-signature.7", + "doc/man/man7/provider-skeymgmt.7", "doc/man/man7/provider-storemgmt.7", "doc/man/man7/provider.7", "doc/man/man7/proxy-certificates.7", - "doc/man/man7/ssl.7", "doc/man/man7/x509.7" ] }, @@ -20218,6 +23618,7 @@ our %unified_info = ( ], "programs" => [ "apps/openssl", + "fuzz/acert-test", "fuzz/asn1-test", "fuzz/asn1parse-test", "fuzz/bignum-test", @@ -20228,7 +23629,24 @@ our %unified_info = ( "fuzz/conf-test", "fuzz/crl-test", "fuzz/ct-test", + "fuzz/decoder-test", + "fuzz/dtlsclient-test", + "fuzz/dtlsserver-test", + "fuzz/hashtable-test", + "fuzz/ml-dsa-test", + "fuzz/ml-kem-test", + "fuzz/pem-test", + "fuzz/provider-test", + "fuzz/punycode-test", + "fuzz/quic-client-test", + "fuzz/quic-lcidm-test", + "fuzz/quic-rcidm-test", + "fuzz/quic-server-test", + "fuzz/quic-srtm-test", "fuzz/server-test", + "fuzz/slh-dsa-test", + "fuzz/smime-test", + "fuzz/v3name-test", "fuzz/x509-test", "test/aborttest", "test/acvp_test", @@ -20246,21 +23664,28 @@ our %unified_info = ( "test/asynctest", "test/bad_dtls_test", "test/bftest", + "test/bio_addr_test", + "test/bio_base64_test", "test/bio_callback_test", "test/bio_core_test", + "test/bio_dgram_test", "test/bio_enc_test", "test/bio_memleak_test", + "test/bio_meth_test", "test/bio_prefix_text", "test/bio_pw_callback_test", "test/bio_readbuffer_test", + "test/bio_tfo_test", "test/bioprinttest", "test/bn_internal_test", "test/bntest", + "test/build_wincrypt_test", "test/buildtest_c_aes", "test/buildtest_c_async", "test/buildtest_c_blowfish", "test/buildtest_c_bn", "test/buildtest_c_buffer", + "test/buildtest_c_byteorder", "test/buildtest_c_camellia", "test/buildtest_c_cast", "test/buildtest_c_cmac", @@ -20269,7 +23694,6 @@ our %unified_info = ( "test/buildtest_c_conftypes", "test/buildtest_c_core", "test/buildtest_c_core_dispatch", - "test/buildtest_c_core_names", "test/buildtest_c_core_object", "test/buildtest_c_cryptoerr_legacy", "test/buildtest_c_decoder", @@ -20278,6 +23702,7 @@ our %unified_info = ( "test/buildtest_c_dsa", "test/buildtest_c_dtls1", "test/buildtest_c_e_os2", + "test/buildtest_c_e_ostime", "test/buildtest_c_ebcdic", "test/buildtest_c_ec", "test/buildtest_c_ecdh", @@ -20287,13 +23712,16 @@ our %unified_info = ( "test/buildtest_c_evp", "test/buildtest_c_fips_names", "test/buildtest_c_hmac", + "test/buildtest_c_hpke", "test/buildtest_c_http", "test/buildtest_c_idea", + "test/buildtest_c_indicator", "test/buildtest_c_kdf", "test/buildtest_c_macros", "test/buildtest_c_md4", "test/buildtest_c_md5", "test/buildtest_c_mdc2", + "test/buildtest_c_ml_kem", "test/buildtest_c_modes", "test/buildtest_c_obj_mac", "test/buildtest_c_objects", @@ -20304,6 +23732,7 @@ our %unified_info = ( "test/buildtest_c_pem2", "test/buildtest_c_prov_ssl", "test/buildtest_c_provider", + "test/buildtest_c_quic", "test/buildtest_c_rand", "test/buildtest_c_rc2", "test/buildtest_c_rc4", @@ -20318,11 +23747,14 @@ our %unified_info = ( "test/buildtest_c_stack", "test/buildtest_c_store", "test/buildtest_c_symhacks", + "test/buildtest_c_thread", "test/buildtest_c_tls1", "test/buildtest_c_ts", "test/buildtest_c_txt_db", "test/buildtest_c_types", "test/buildtest_c_whrlpool", + "test/byteorder_test", + "test/ca_internals_test", "test/casttest", "test/chacha_internal_test", "test/cipher_overhead_test", @@ -20351,6 +23783,7 @@ our %unified_info = ( "test/curve448_internal_test", "test/d2i_test", "test/danetest", + "test/decoder_propq_test", "test/defltfips_test", "test/destest", "test/dhtest", @@ -20375,9 +23808,12 @@ our %unified_info = ( "test/evp_kdf_test", "test/evp_libctx_test", "test/evp_pkey_ctx_new_from_name", + "test/evp_pkey_dhkem_test", "test/evp_pkey_dparams_test", "test/evp_pkey_provided_test", + "test/evp_skey_test", "test/evp_test", + "test/evp_xof_test", "test/exdatatest", "test/exptest", "test/ext_internal_test", @@ -20387,21 +23823,29 @@ our %unified_info = ( "test/gmdifftest", "test/hexstr_test", "test/hmactest", + "test/hpke_test", "test/http_test", "test/ideatest", "test/igetest", + "test/json_test", "test/keymgmt_internal_test", "test/lhash_test", + "test/list_test", "test/localetest", "test/mdc2_internal_test", "test/mdc2test", + "test/membio_test", "test/memleaktest", + "test/ml_dsa_test", + "test/ml_kem_evp_extra_test", + "test/ml_kem_internal_test", "test/modes_internal_test", "test/namemap_internal_test", "test/nodefltctxtest", "test/ocspapitest", "test/ossl_store_test", "test/packettest", + "test/pairwise_fail_test", "test/param_build_test", "test/params_api_test", "test/params_conversion_test", @@ -20410,36 +23854,65 @@ our %unified_info = ( "test/pbetest", "test/pem_read_depr_test", "test/pemtest", + "test/pkcs12_api_test", "test/pkcs12_format_test", "test/pkcs7_test", "test/pkey_meth_kdf_test", "test/pkey_meth_test", "test/poly1305_internal_test", + "test/priority_queue_test", "test/property_test", "test/prov_config_test", "test/provfetchtest", + "test/provider_default_search_path_test", "test/provider_fallback_test", "test/provider_internal_test", "test/provider_pkey_test", "test/provider_status_test", "test/provider_test", "test/punycode_test", + "test/quic_ackm_test", + "test/quic_cc_test", + "test/quic_cfq_test", + "test/quic_client_test", + "test/quic_fc_test", + "test/quic_fifd_test", + "test/quic_lcidm_test", + "test/quic_multistream_test", + "test/quic_newcid_test", + "test/quic_qlog_test", + "test/quic_radix_test", + "test/quic_rcidm_test", + "test/quic_record_test", + "test/quic_srt_gen_test", + "test/quic_srtm_test", + "test/quic_stream_test", + "test/quic_tserver_test", + "test/quic_txp_test", + "test/quic_txpim_test", + "test/quic_wire_test", + "test/quicapitest", + "test/quicfaultstest", "test/rand_status_test", "test/rand_test", "test/rc2test", "test/rc4test", "test/rc5test", - "test/rdrand_sanitytest", + "test/rdcpu_sanitytest", "test/recordlentest", + "test/rpktest", "test/rsa_complex", "test/rsa_mp_test", "test/rsa_sp800_56b_test", "test/rsa_test", + "test/rsa_x931_test", + "test/safe_math_test", "test/sanitytest", "test/secmemtest", "test/servername_test", "test/sha_test", "test/siphash_internal_test", + "test/slh_dsa_test", "test/sm2_internal_test", "test/sm3_internal_test", "test/sm4_internal_test", @@ -20447,6 +23920,7 @@ our %unified_info = ( "test/srptest", "test/ssl_cert_table_internal_test", "test/ssl_ctx_test", + "test/ssl_handshake_rtt_test", "test/ssl_old_test", "test/ssl_test", "test/ssl_test_ctx_test", @@ -20454,13 +23928,17 @@ our %unified_info = ( "test/sslbuffertest", "test/sslcorrupttest", "test/stack_test", + "test/strtoultest", "test/sysdefaulttest", "test/test_test", + "test/threadpool_test", "test/threadstest", "test/threadstest_fips", "test/time_offset_test", + "test/time_test", "test/tls13ccstest", "test/tls13encryptiontest", + "test/tls13groupselection_test", "test/trace_api_test", "test/uitest", "test/upcallstest", @@ -20470,9 +23948,13 @@ our %unified_info = ( "test/verify_extra_test", "test/versions", "test/wpackettest", + "test/x509_acert_test", "test/x509_check_cert_pkey_test", "test/x509_dup_cert_test", "test/x509_internal_test", + "test/x509_load_cert_file_test", + "test/x509_req_test", + "test/x509_test", "test/x509_time_test", "test/x509aux" ], @@ -20488,6 +23970,33 @@ our %unified_info = ( "apps/CA.pl" => [ "apps/CA.pl.in" ], + "apps/ca_internals_test-bin-ca.o" => [ + "apps/ca.c" + ], + "apps/lib/ca_internals_test-bin-app_libctx.o" => [ + "apps/lib/app_libctx.c" + ], + "apps/lib/ca_internals_test-bin-app_provider.o" => [ + "apps/lib/app_provider.c" + ], + "apps/lib/ca_internals_test-bin-app_rand.o" => [ + "apps/lib/app_rand.c" + ], + "apps/lib/ca_internals_test-bin-app_x509.o" => [ + "apps/lib/app_x509.c" + ], + "apps/lib/ca_internals_test-bin-apps.o" => [ + "apps/lib/apps.c" + ], + "apps/lib/ca_internals_test-bin-apps_ui.o" => [ + "apps/lib/apps_ui.c" + ], + "apps/lib/ca_internals_test-bin-engine.o" => [ + "apps/lib/engine.c" + ], + "apps/lib/ca_internals_test-bin-fmt.o" => [ + "apps/lib/fmt.c" + ], "apps/lib/cmp_client_test-bin-cmp_mock_srv.o" => [ "apps/lib/cmp_mock_srv.c" ], @@ -20509,6 +24018,9 @@ our %unified_info = ( "apps/lib/libapps-lib-apps.o" => [ "apps/lib/apps.c" ], + "apps/lib/libapps-lib-apps_opt_printf.o" => [ + "apps/lib/apps_opt_printf.c" + ], "apps/lib/libapps-lib-apps_ui.o" => [ "apps/lib/apps_ui.c" ], @@ -20527,6 +24039,9 @@ our %unified_info = ( "apps/lib/libapps-lib-http_server.o" => [ "apps/lib/http_server.c" ], + "apps/lib/libapps-lib-log.o" => [ + "apps/lib/log.c" + ], "apps/lib/libapps-lib-names.o" => [ "apps/lib/names.c" ], @@ -20558,12 +24073,14 @@ our %unified_info = ( "apps/lib/libapps-lib-app_rand.o", "apps/lib/libapps-lib-app_x509.o", "apps/lib/libapps-lib-apps.o", + "apps/lib/libapps-lib-apps_opt_printf.o", "apps/lib/libapps-lib-apps_ui.o", "apps/lib/libapps-lib-columns.o", "apps/lib/libapps-lib-engine.o", "apps/lib/libapps-lib-engine_loader.o", "apps/lib/libapps-lib-fmt.o", "apps/lib/libapps-lib-http_server.o", + "apps/lib/libapps-lib-log.o", "apps/lib/libapps-lib-names.o", "apps/lib/libapps-lib-opt.o", "apps/lib/libapps-lib-s_cb.o", @@ -20617,6 +24134,7 @@ our %unified_info = ( "apps/openssl-bin-s_server.o", "apps/openssl-bin-s_time.o", "apps/openssl-bin-sess_id.o", + "apps/openssl-bin-skeyutl.o", "apps/openssl-bin-smime.o", "apps/openssl-bin-speed.o", "apps/openssl-bin-spkac.o", @@ -20762,6 +24280,9 @@ our %unified_info = ( "apps/openssl-bin-sess_id.o" => [ "apps/sess_id.c" ], + "apps/openssl-bin-skeyutl.o" => [ + "apps/skeyutl.c" + ], "apps/openssl-bin-smime.o" => [ "apps/smime.c" ], @@ -20819,6 +24340,9 @@ our %unified_info = ( "crypto/aes/libcrypto-lib-aesv8-armx.o" => [ "crypto/aes/aesv8-armx.S" ], + "crypto/aes/libcrypto-lib-bsaes-armv8.o" => [ + "crypto/aes/bsaes-armv8.S" + ], "crypto/aes/libcrypto-lib-vpaes-armv8.o" => [ "crypto/aes/vpaes-armv8.S" ], @@ -20837,12 +24361,21 @@ our %unified_info = ( "crypto/aes/libfips-lib-aesv8-armx.o" => [ "crypto/aes/aesv8-armx.S" ], + "crypto/aes/libfips-lib-bsaes-armv8.o" => [ + "crypto/aes/bsaes-armv8.S" + ], "crypto/aes/libfips-lib-vpaes-armv8.o" => [ "crypto/aes/vpaes-armv8.S" ], "crypto/aria/libcrypto-lib-aria.o" => [ "crypto/aria/aria.c" ], + "crypto/asn1/asn1_time_test-bin-a_time.o" => [ + "crypto/asn1/a_time.c" + ], + "crypto/asn1/ca_internals_test-bin-a_time.o" => [ + "crypto/asn1/a_time.c" + ], "crypto/asn1/libcrypto-lib-a_bitstr.o" => [ "crypto/asn1/a_bitstr.c" ], @@ -21035,6 +24568,9 @@ our %unified_info = ( "crypto/asn1/libcrypto-lib-x_val.o" => [ "crypto/asn1/x_val.c" ], + "crypto/asn1_time_test-bin-ctype.o" => [ + "crypto/ctype.c" + ], "crypto/async/arch/libcrypto-lib-async_null.o" => [ "crypto/async/arch/async_null.c" ], @@ -21128,6 +24664,9 @@ our %unified_info = ( "crypto/bio/libcrypto-lib-bss_dgram.o" => [ "crypto/bio/bss_dgram.c" ], + "crypto/bio/libcrypto-lib-bss_dgram_pair.o" => [ + "crypto/bio/bss_dgram_pair.c" + ], "crypto/bio/libcrypto-lib-bss_fd.o" => [ "crypto/bio/bss_fd.c" ], @@ -21347,6 +24886,9 @@ our %unified_info = ( "crypto/buffer/libfips-lib-buffer.o" => [ "crypto/buffer/buffer.c" ], + "crypto/ca_internals_test-bin-ctype.o" => [ + "crypto/ctype.c" + ], "crypto/camellia/libcrypto-lib-camellia.o" => [ "crypto/camellia/camellia.c" ], @@ -21383,6 +24925,9 @@ our %unified_info = ( "crypto/cast/libcrypto-lib-c_skey.o" => [ "crypto/cast/c_skey.c" ], + "crypto/chacha/libcrypto-lib-chacha-armv8-sve.o" => [ + "crypto/chacha/chacha-armv8-sve.S" + ], "crypto/chacha/libcrypto-lib-chacha-armv8.o" => [ "crypto/chacha/chacha-armv8.S" ], @@ -21404,6 +24949,9 @@ our %unified_info = ( "crypto/cmp/libcrypto-lib-cmp_err.o" => [ "crypto/cmp/cmp_err.c" ], + "crypto/cmp/libcrypto-lib-cmp_genm.o" => [ + "crypto/cmp/cmp_genm.c" + ], "crypto/cmp/libcrypto-lib-cmp_hdr.o" => [ "crypto/cmp/cmp_hdr.c" ], @@ -21899,6 +25447,15 @@ our %unified_info = ( "crypto/ec/libcrypto-lib-ecp_oct.o" => [ "crypto/ec/ecp_oct.c" ], + "crypto/ec/libcrypto-lib-ecp_sm2p256-armv8.o" => [ + "crypto/ec/ecp_sm2p256-armv8.S" + ], + "crypto/ec/libcrypto-lib-ecp_sm2p256.o" => [ + "crypto/ec/ecp_sm2p256.c" + ], + "crypto/ec/libcrypto-lib-ecp_sm2p256_table.o" => [ + "crypto/ec/ecp_sm2p256_table.c" + ], "crypto/ec/libcrypto-lib-ecp_smpl.o" => [ "crypto/ec/ecp_smpl.c" ], @@ -21980,6 +25537,15 @@ our %unified_info = ( "crypto/ec/libfips-lib-ecp_oct.o" => [ "crypto/ec/ecp_oct.c" ], + "crypto/ec/libfips-lib-ecp_sm2p256-armv8.o" => [ + "crypto/ec/ecp_sm2p256-armv8.S" + ], + "crypto/ec/libfips-lib-ecp_sm2p256.o" => [ + "crypto/ec/ecp_sm2p256.c" + ], + "crypto/ec/libfips-lib-ecp_sm2p256_table.o" => [ + "crypto/ec/ecp_sm2p256_table.c" + ], "crypto/ec/libfips-lib-ecp_smpl.o" => [ "crypto/ec/ecp_smpl.c" ], @@ -22091,9 +25657,15 @@ our %unified_info = ( "crypto/err/libcrypto-lib-err_blocks.o" => [ "crypto/err/err_blocks.c" ], + "crypto/err/libcrypto-lib-err_mark.o" => [ + "crypto/err/err_mark.c" + ], "crypto/err/libcrypto-lib-err_prn.o" => [ "crypto/err/err_prn.c" ], + "crypto/err/libcrypto-lib-err_save.o" => [ + "crypto/err/err_save.c" + ], "crypto/ess/libcrypto-lib-ess_asn1.o" => [ "crypto/ess/ess_asn1.c" ], @@ -22340,9 +25912,15 @@ our %unified_info = ( "crypto/evp/libcrypto-lib-pmeth_lib.o" => [ "crypto/evp/pmeth_lib.c" ], + "crypto/evp/libcrypto-lib-s_lib.o" => [ + "crypto/evp/s_lib.c" + ], "crypto/evp/libcrypto-lib-signature.o" => [ "crypto/evp/signature.c" ], + "crypto/evp/libcrypto-lib-skeymgmt_meth.o" => [ + "crypto/evp/skeymgmt_meth.c" + ], "crypto/evp/libfips-lib-asymcipher.o" => [ "crypto/evp/asymcipher.c" ], @@ -22388,9 +25966,6 @@ our %unified_info = ( "crypto/evp/libfips-lib-keymgmt_meth.o" => [ "crypto/evp/keymgmt_meth.c" ], - "crypto/evp/libfips-lib-m_sigver.o" => [ - "crypto/evp/m_sigver.c" - ], "crypto/evp/libfips-lib-mac_lib.o" => [ "crypto/evp/mac_lib.c" ], @@ -22409,9 +25984,15 @@ our %unified_info = ( "crypto/evp/libfips-lib-pmeth_lib.o" => [ "crypto/evp/pmeth_lib.c" ], + "crypto/evp/libfips-lib-s_lib.o" => [ + "crypto/evp/s_lib.c" + ], "crypto/evp/libfips-lib-signature.o" => [ "crypto/evp/signature.c" ], + "crypto/evp/libfips-lib-skeymgmt_meth.o" => [ + "crypto/evp/skeymgmt_meth.c" + ], "crypto/ffc/libcrypto-lib-ffc_backend.o" => [ "crypto/ffc/ffc_backend.c" ], @@ -22454,12 +26035,30 @@ our %unified_info = ( "crypto/ffc/libfips-lib-ffc_params_validate.o" => [ "crypto/ffc/ffc_params_validate.c" ], + "crypto/hashtable/libcrypto-lib-hashfunc.o" => [ + "crypto/hashtable/hashfunc.c" + ], + "crypto/hashtable/libcrypto-lib-hashtable.o" => [ + "crypto/hashtable/hashtable.c" + ], + "crypto/hashtable/libfips-lib-hashfunc.o" => [ + "crypto/hashtable/hashfunc.c" + ], + "crypto/hashtable/libfips-lib-hashtable.o" => [ + "crypto/hashtable/hashtable.c" + ], "crypto/hmac/libcrypto-lib-hmac.o" => [ "crypto/hmac/hmac.c" ], "crypto/hmac/libfips-lib-hmac.o" => [ "crypto/hmac/hmac.c" ], + "crypto/hpke/libcrypto-lib-hpke.o" => [ + "crypto/hpke/hpke.c" + ], + "crypto/hpke/libcrypto-lib-hpke_util.o" => [ + "crypto/hpke/hpke_util.c" + ], "crypto/http/libcrypto-lib-http_client.o" => [ "crypto/http/http_client.c" ], @@ -22508,6 +26107,9 @@ our %unified_info = ( "crypto/libcrypto-lib-bsearch.o" => [ "crypto/bsearch.c" ], + "crypto/libcrypto-lib-comp_methods.o" => [ + "crypto/comp_methods.c" + ], "crypto/libcrypto-lib-context.o" => [ "crypto/context.c" ], @@ -22535,9 +26137,15 @@ our %unified_info = ( "crypto/libcrypto-lib-cversion.o" => [ "crypto/cversion.c" ], + "crypto/libcrypto-lib-defaults.o" => [ + "crypto/defaults.c" + ], "crypto/libcrypto-lib-der_writer.o" => [ "crypto/der_writer.c" ], + "crypto/libcrypto-lib-deterministic_nonce.o" => [ + "crypto/deterministic_nonce.c" + ], "crypto/libcrypto-lib-ebcdic.o" => [ "crypto/ebcdic.c" ], @@ -22547,6 +26155,9 @@ our %unified_info = ( "crypto/libcrypto-lib-getenv.o" => [ "crypto/getenv.c" ], + "crypto/libcrypto-lib-indicator_core.o" => [ + "crypto/indicator_core.c" + ], "crypto/libcrypto-lib-info.o" => [ "crypto/info.c" ], @@ -22595,6 +26206,9 @@ our %unified_info = ( "crypto/libcrypto-lib-params_from_text.o" => [ "crypto/params_from_text.c" ], + "crypto/libcrypto-lib-params_idx.o" => [ + "crypto/params_idx.c" + ], "crypto/libcrypto-lib-passphrase.o" => [ "crypto/passphrase.c" ], @@ -22616,12 +26230,21 @@ our %unified_info = ( "crypto/libcrypto-lib-punycode.o" => [ "crypto/punycode.c" ], + "crypto/libcrypto-lib-quic_vlint.o" => [ + "crypto/quic_vlint.c" + ], "crypto/libcrypto-lib-self_test_core.o" => [ "crypto/self_test_core.c" ], + "crypto/libcrypto-lib-sleep.o" => [ + "crypto/sleep.c" + ], "crypto/libcrypto-lib-sparse_array.o" => [ "crypto/sparse_array.c" ], + "crypto/libcrypto-lib-ssl_err.o" => [ + "crypto/ssl_err.c" + ], "crypto/libcrypto-lib-threads_lib.o" => [ "crypto/threads_lib.c" ], @@ -22634,6 +26257,9 @@ our %unified_info = ( "crypto/libcrypto-lib-threads_win.o" => [ "crypto/threads_win.c" ], + "crypto/libcrypto-lib-time.o" => [ + "crypto/time.c" + ], "crypto/libcrypto-lib-trace.o" => [ "crypto/trace.c" ], @@ -22703,6 +26329,9 @@ our %unified_info = ( "crypto/libfips-lib-params_from_text.o" => [ "crypto/params_from_text.c" ], + "crypto/libfips-lib-params_idx.o" => [ + "crypto/params_idx.c" + ], "crypto/libfips-lib-provider_core.o" => [ "crypto/provider_core.c" ], @@ -22727,12 +26356,18 @@ our %unified_info = ( "crypto/libfips-lib-threads_win.o" => [ "crypto/threads_win.c" ], + "crypto/libfips-lib-time.o" => [ + "crypto/time.c" + ], "crypto/md4/libcrypto-lib-md4_dgst.o" => [ "crypto/md4/md4_dgst.c" ], "crypto/md4/libcrypto-lib-md4_one.o" => [ "crypto/md4/md4_one.c" ], + "crypto/md5/libcrypto-lib-md5-aarch64.o" => [ + "crypto/md5/md5-aarch64.S" + ], "crypto/md5/libcrypto-lib-md5_dgst.o" => [ "crypto/md5/md5_dgst.c" ], @@ -22748,6 +26383,63 @@ our %unified_info = ( "crypto/mdc2/libcrypto-lib-mdc2dgst.o" => [ "crypto/mdc2/mdc2dgst.c" ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_encoders.o" => [ + "crypto/ml_dsa/ml_dsa_encoders.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key.o" => [ + "crypto/ml_dsa/ml_dsa_key.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key_compress.o" => [ + "crypto/ml_dsa/ml_dsa_key_compress.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_matrix.o" => [ + "crypto/ml_dsa/ml_dsa_matrix.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_ntt.o" => [ + "crypto/ml_dsa/ml_dsa_ntt.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_params.o" => [ + "crypto/ml_dsa/ml_dsa_params.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sample.o" => [ + "crypto/ml_dsa/ml_dsa_sample.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sign.o" => [ + "crypto/ml_dsa/ml_dsa_sign.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_encoders.o" => [ + "crypto/ml_dsa/ml_dsa_encoders.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_key.o" => [ + "crypto/ml_dsa/ml_dsa_key.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_key_compress.o" => [ + "crypto/ml_dsa/ml_dsa_key_compress.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_matrix.o" => [ + "crypto/ml_dsa/ml_dsa_matrix.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_ntt.o" => [ + "crypto/ml_dsa/ml_dsa_ntt.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_params.o" => [ + "crypto/ml_dsa/ml_dsa_params.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_sample.o" => [ + "crypto/ml_dsa/ml_dsa_sample.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_sign.o" => [ + "crypto/ml_dsa/ml_dsa_sign.c" + ], + "crypto/ml_kem/libcrypto-lib-ml_kem.o" => [ + "crypto/ml_kem/ml_kem.c" + ], + "crypto/ml_kem/libfips-lib-ml_kem.o" => [ + "crypto/ml_kem/ml_kem.c" + ], + "crypto/modes/libcrypto-lib-aes-gcm-armv8-unroll8_64.o" => [ + "crypto/modes/aes-gcm-armv8-unroll8_64.S" + ], "crypto/modes/libcrypto-lib-aes-gcm-armv8_64.o" => [ "crypto/modes/aes-gcm-armv8_64.S" ], @@ -22787,6 +26479,12 @@ our %unified_info = ( "crypto/modes/libcrypto-lib-xts128.o" => [ "crypto/modes/xts128.c" ], + "crypto/modes/libcrypto-lib-xts128gb.o" => [ + "crypto/modes/xts128gb.c" + ], + "crypto/modes/libfips-lib-aes-gcm-armv8-unroll8_64.o" => [ + "crypto/modes/aes-gcm-armv8-unroll8_64.S" + ], "crypto/modes/libfips-lib-aes-gcm-armv8_64.o" => [ "crypto/modes/aes-gcm-armv8_64.S" ], @@ -22817,6 +26515,9 @@ our %unified_info = ( "crypto/modes/libfips-lib-xts128.o" => [ "crypto/modes/xts128.c" ], + "crypto/modes/libfips-lib-xts128gb.o" => [ + "crypto/modes/xts128gb.c" + ], "crypto/objects/libcrypto-lib-o_names.o" => [ "crypto/objects/o_names.c" ], @@ -22862,6 +26563,9 @@ our %unified_info = ( "crypto/ocsp/libcrypto-lib-v3_ocsp.o" => [ "crypto/ocsp/v3_ocsp.c" ], + "crypto/packettest-bin-quic_vlint.o" => [ + "crypto/quic_vlint.c" + ], "crypto/pem/libcrypto-lib-pem_all.o" => [ "crypto/pem/pem_all.c" ], @@ -23024,6 +26728,9 @@ our %unified_info = ( "crypto/rand/libcrypto-lib-rand_pool.o" => [ "crypto/rand/rand_pool.c" ], + "crypto/rand/libcrypto-lib-rand_uniform.o" => [ + "crypto/rand/rand_uniform.c" + ], "crypto/rand/libcrypto-lib-randfile.o" => [ "crypto/rand/randfile.c" ], @@ -23255,6 +26962,66 @@ our %unified_info = ( "crypto/siphash/libcrypto-lib-siphash.o" => [ "crypto/siphash/siphash.c" ], + "crypto/slh_dsa/libcrypto-lib-slh_adrs.o" => [ + "crypto/slh_dsa/slh_adrs.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_dsa.o" => [ + "crypto/slh_dsa/slh_dsa.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_dsa_hash_ctx.o" => [ + "crypto/slh_dsa/slh_dsa_hash_ctx.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_dsa_key.o" => [ + "crypto/slh_dsa/slh_dsa_key.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_fors.o" => [ + "crypto/slh_dsa/slh_fors.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_hash.o" => [ + "crypto/slh_dsa/slh_hash.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_hypertree.o" => [ + "crypto/slh_dsa/slh_hypertree.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_params.o" => [ + "crypto/slh_dsa/slh_params.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_wots.o" => [ + "crypto/slh_dsa/slh_wots.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_xmss.o" => [ + "crypto/slh_dsa/slh_xmss.c" + ], + "crypto/slh_dsa/libfips-lib-slh_adrs.o" => [ + "crypto/slh_dsa/slh_adrs.c" + ], + "crypto/slh_dsa/libfips-lib-slh_dsa.o" => [ + "crypto/slh_dsa/slh_dsa.c" + ], + "crypto/slh_dsa/libfips-lib-slh_dsa_hash_ctx.o" => [ + "crypto/slh_dsa/slh_dsa_hash_ctx.c" + ], + "crypto/slh_dsa/libfips-lib-slh_dsa_key.o" => [ + "crypto/slh_dsa/slh_dsa_key.c" + ], + "crypto/slh_dsa/libfips-lib-slh_fors.o" => [ + "crypto/slh_dsa/slh_fors.c" + ], + "crypto/slh_dsa/libfips-lib-slh_hash.o" => [ + "crypto/slh_dsa/slh_hash.c" + ], + "crypto/slh_dsa/libfips-lib-slh_hypertree.o" => [ + "crypto/slh_dsa/slh_hypertree.c" + ], + "crypto/slh_dsa/libfips-lib-slh_params.o" => [ + "crypto/slh_dsa/slh_params.c" + ], + "crypto/slh_dsa/libfips-lib-slh_wots.o" => [ + "crypto/slh_dsa/slh_wots.c" + ], + "crypto/slh_dsa/libfips-lib-slh_xmss.o" => [ + "crypto/slh_dsa/slh_xmss.c" + ], "crypto/sm2/libcrypto-lib-sm2_crypt.o" => [ "crypto/sm2/sm2_crypt.c" ], @@ -23270,12 +27037,24 @@ our %unified_info = ( "crypto/sm3/libcrypto-lib-legacy_sm3.o" => [ "crypto/sm3/legacy_sm3.c" ], + "crypto/sm3/libcrypto-lib-sm3-armv8.o" => [ + "crypto/sm3/sm3-armv8.S" + ], "crypto/sm3/libcrypto-lib-sm3.o" => [ "crypto/sm3/sm3.c" ], + "crypto/sm4/libcrypto-lib-sm4-armv8.o" => [ + "crypto/sm4/sm4-armv8.S" + ], "crypto/sm4/libcrypto-lib-sm4.o" => [ "crypto/sm4/sm4.c" ], + "crypto/sm4/libcrypto-lib-vpsm4-armv8.o" => [ + "crypto/sm4/vpsm4-armv8.S" + ], + "crypto/sm4/libcrypto-lib-vpsm4_ex-armv8.o" => [ + "crypto/sm4/vpsm4_ex-armv8.S" + ], "crypto/srp/libcrypto-lib-srp_lib.o" => [ "crypto/srp/srp_lib.c" ], @@ -23309,6 +27088,42 @@ our %unified_info = ( "crypto/store/libcrypto-lib-store_strings.o" => [ "crypto/store/store_strings.c" ], + "crypto/thread/arch/libcrypto-lib-thread_none.o" => [ + "crypto/thread/arch/thread_none.c" + ], + "crypto/thread/arch/libcrypto-lib-thread_posix.o" => [ + "crypto/thread/arch/thread_posix.c" + ], + "crypto/thread/arch/libcrypto-lib-thread_win.o" => [ + "crypto/thread/arch/thread_win.c" + ], + "crypto/thread/arch/libfips-lib-thread_none.o" => [ + "crypto/thread/arch/thread_none.c" + ], + "crypto/thread/arch/libfips-lib-thread_posix.o" => [ + "crypto/thread/arch/thread_posix.c" + ], + "crypto/thread/arch/libfips-lib-thread_win.o" => [ + "crypto/thread/arch/thread_win.c" + ], + "crypto/thread/libcrypto-lib-api.o" => [ + "crypto/thread/api.c" + ], + "crypto/thread/libcrypto-lib-arch.o" => [ + "crypto/thread/arch.c" + ], + "crypto/thread/libcrypto-lib-internal.o" => [ + "crypto/thread/internal.c" + ], + "crypto/thread/libfips-lib-api.o" => [ + "crypto/thread/api.c" + ], + "crypto/thread/libfips-lib-arch.o" => [ + "crypto/thread/arch.c" + ], + "crypto/thread/libfips-lib-internal.o" => [ + "crypto/thread/internal.c" + ], "crypto/ts/libcrypto-lib-ts_asn1.o" => [ "crypto/ts/ts_asn1.c" ], @@ -23393,6 +27208,9 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-pcy_tree.o" => [ "crypto/x509/pcy_tree.c" ], + "crypto/x509/libcrypto-lib-t_acert.o" => [ + "crypto/x509/t_acert.c" + ], "crypto/x509/libcrypto-lib-t_crl.o" => [ "crypto/x509/t_crl.c" ], @@ -23402,6 +27220,12 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-t_x509.o" => [ "crypto/x509/t_x509.c" ], + "crypto/x509/libcrypto-lib-v3_aaa.o" => [ + "crypto/x509/v3_aaa.c" + ], + "crypto/x509/libcrypto-lib-v3_ac_tgt.o" => [ + "crypto/x509/v3_ac_tgt.c" + ], "crypto/x509/libcrypto-lib-v3_addr.o" => [ "crypto/x509/v3_addr.c" ], @@ -23417,6 +27241,21 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_asid.o" => [ "crypto/x509/v3_asid.c" ], + "crypto/x509/libcrypto-lib-v3_attrdesc.o" => [ + "crypto/x509/v3_attrdesc.c" + ], + "crypto/x509/libcrypto-lib-v3_attrmap.o" => [ + "crypto/x509/v3_attrmap.c" + ], + "crypto/x509/libcrypto-lib-v3_audit_id.o" => [ + "crypto/x509/v3_audit_id.c" + ], + "crypto/x509/libcrypto-lib-v3_authattid.o" => [ + "crypto/x509/v3_authattid.c" + ], + "crypto/x509/libcrypto-lib-v3_battcons.o" => [ + "crypto/x509/v3_battcons.c" + ], "crypto/x509/libcrypto-lib-v3_bcons.o" => [ "crypto/x509/v3_bcons.c" ], @@ -23441,15 +27280,24 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_genn.o" => [ "crypto/x509/v3_genn.c" ], + "crypto/x509/libcrypto-lib-v3_group_ac.o" => [ + "crypto/x509/v3_group_ac.c" + ], "crypto/x509/libcrypto-lib-v3_ia5.o" => [ "crypto/x509/v3_ia5.c" ], + "crypto/x509/libcrypto-lib-v3_ind_iss.o" => [ + "crypto/x509/v3_ind_iss.c" + ], "crypto/x509/libcrypto-lib-v3_info.o" => [ "crypto/x509/v3_info.c" ], "crypto/x509/libcrypto-lib-v3_int.o" => [ "crypto/x509/v3_int.c" ], + "crypto/x509/libcrypto-lib-v3_iobo.o" => [ + "crypto/x509/v3_iobo.c" + ], "crypto/x509/libcrypto-lib-v3_ist.o" => [ "crypto/x509/v3_ist.c" ], @@ -23459,6 +27307,12 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_ncons.o" => [ "crypto/x509/v3_ncons.c" ], + "crypto/x509/libcrypto-lib-v3_no_ass.o" => [ + "crypto/x509/v3_no_ass.c" + ], + "crypto/x509/libcrypto-lib-v3_no_rev_avail.o" => [ + "crypto/x509/v3_no_rev_avail.c" + ], "crypto/x509/libcrypto-lib-v3_pci.o" => [ "crypto/x509/v3_pci.c" ], @@ -23480,18 +27334,36 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_purp.o" => [ "crypto/x509/v3_purp.c" ], + "crypto/x509/libcrypto-lib-v3_rolespec.o" => [ + "crypto/x509/v3_rolespec.c" + ], "crypto/x509/libcrypto-lib-v3_san.o" => [ "crypto/x509/v3_san.c" ], + "crypto/x509/libcrypto-lib-v3_sda.o" => [ + "crypto/x509/v3_sda.c" + ], + "crypto/x509/libcrypto-lib-v3_single_use.o" => [ + "crypto/x509/v3_single_use.c" + ], "crypto/x509/libcrypto-lib-v3_skid.o" => [ "crypto/x509/v3_skid.c" ], + "crypto/x509/libcrypto-lib-v3_soa_id.o" => [ + "crypto/x509/v3_soa_id.c" + ], "crypto/x509/libcrypto-lib-v3_sxnet.o" => [ "crypto/x509/v3_sxnet.c" ], + "crypto/x509/libcrypto-lib-v3_timespec.o" => [ + "crypto/x509/v3_timespec.c" + ], "crypto/x509/libcrypto-lib-v3_tlsf.o" => [ "crypto/x509/v3_tlsf.c" ], + "crypto/x509/libcrypto-lib-v3_usernotice.o" => [ + "crypto/x509/v3_usernotice.c" + ], "crypto/x509/libcrypto-lib-v3_utf8.o" => [ "crypto/x509/v3_utf8.c" ], @@ -23501,6 +27373,9 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3err.o" => [ "crypto/x509/v3err.c" ], + "crypto/x509/libcrypto-lib-x509_acert.o" => [ + "crypto/x509/x509_acert.c" + ], "crypto/x509/libcrypto-lib-x509_att.o" => [ "crypto/x509/x509_att.c" ], @@ -23552,6 +27427,9 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x509_vpm.o" => [ "crypto/x509/x509_vpm.c" ], + "crypto/x509/libcrypto-lib-x509aset.o" => [ + "crypto/x509/x509aset.c" + ], "crypto/x509/libcrypto-lib-x509cset.o" => [ "crypto/x509/x509cset.c" ], @@ -23579,6 +27457,9 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x_exten.o" => [ "crypto/x509/x_exten.c" ], + "crypto/x509/libcrypto-lib-x_ietfatt.o" => [ + "crypto/x509/x_ietfatt.c" + ], "crypto/x509/libcrypto-lib-x_name.o" => [ "crypto/x509/x_name.c" ], @@ -23600,6 +27481,16 @@ our %unified_info = ( "engines/libcrypto-lib-e_padlock.o" => [ "engines/e_padlock.c" ], + "fuzz/acert-test" => [ + "fuzz/acert-test-bin-acert.o", + "fuzz/acert-test-bin-test-corpus.o" + ], + "fuzz/acert-test-bin-acert.o" => [ + "fuzz/acert.c" + ], + "fuzz/acert-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], "fuzz/asn1-test" => [ "fuzz/asn1-test-bin-asn1.o", "fuzz/asn1-test-bin-fuzz_rand.o", @@ -23712,6 +27603,190 @@ our %unified_info = ( "fuzz/ct-test-bin-test-corpus.o" => [ "fuzz/test-corpus.c" ], + "fuzz/decoder-test" => [ + "fuzz/decoder-test-bin-decoder.o", + "fuzz/decoder-test-bin-fuzz_rand.o", + "fuzz/decoder-test-bin-test-corpus.o" + ], + "fuzz/decoder-test-bin-decoder.o" => [ + "fuzz/decoder.c" + ], + "fuzz/decoder-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/decoder-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/dtlsclient-test" => [ + "fuzz/dtlsclient-test-bin-dtlsclient.o", + "fuzz/dtlsclient-test-bin-fuzz_rand.o", + "fuzz/dtlsclient-test-bin-test-corpus.o" + ], + "fuzz/dtlsclient-test-bin-dtlsclient.o" => [ + "fuzz/dtlsclient.c" + ], + "fuzz/dtlsclient-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/dtlsclient-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/dtlsserver-test" => [ + "fuzz/dtlsserver-test-bin-dtlsserver.o", + "fuzz/dtlsserver-test-bin-fuzz_rand.o", + "fuzz/dtlsserver-test-bin-test-corpus.o" + ], + "fuzz/dtlsserver-test-bin-dtlsserver.o" => [ + "fuzz/dtlsserver.c" + ], + "fuzz/dtlsserver-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/dtlsserver-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/hashtable-test" => [ + "fuzz/hashtable-test-bin-fuzz_rand.o", + "fuzz/hashtable-test-bin-hashtable.o", + "fuzz/hashtable-test-bin-test-corpus.o" + ], + "fuzz/hashtable-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/hashtable-test-bin-hashtable.o" => [ + "fuzz/hashtable.c" + ], + "fuzz/hashtable-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/ml-dsa-test" => [ + "fuzz/ml-dsa-test-bin-fuzz_rand.o", + "fuzz/ml-dsa-test-bin-ml-dsa.o", + "fuzz/ml-dsa-test-bin-test-corpus.o" + ], + "fuzz/ml-dsa-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/ml-dsa-test-bin-ml-dsa.o" => [ + "fuzz/ml-dsa.c" + ], + "fuzz/ml-dsa-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/ml-kem-test" => [ + "fuzz/ml-kem-test-bin-fuzz_rand.o", + "fuzz/ml-kem-test-bin-ml-kem.o", + "fuzz/ml-kem-test-bin-test-corpus.o" + ], + "fuzz/ml-kem-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/ml-kem-test-bin-ml-kem.o" => [ + "fuzz/ml-kem.c" + ], + "fuzz/ml-kem-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/pem-test" => [ + "fuzz/pem-test-bin-pem.o", + "fuzz/pem-test-bin-test-corpus.o" + ], + "fuzz/pem-test-bin-pem.o" => [ + "fuzz/pem.c" + ], + "fuzz/pem-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/provider-test" => [ + "fuzz/provider-test-bin-provider.o", + "fuzz/provider-test-bin-test-corpus.o" + ], + "fuzz/provider-test-bin-provider.o" => [ + "fuzz/provider.c" + ], + "fuzz/provider-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/punycode-test" => [ + "fuzz/punycode-test-bin-punycode.o", + "fuzz/punycode-test-bin-test-corpus.o" + ], + "fuzz/punycode-test-bin-punycode.o" => [ + "fuzz/punycode.c" + ], + "fuzz/punycode-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-client-test" => [ + "fuzz/quic-client-test-bin-fuzz_rand.o", + "fuzz/quic-client-test-bin-quic-client.o", + "fuzz/quic-client-test-bin-test-corpus.o" + ], + "fuzz/quic-client-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-client-test-bin-quic-client.o" => [ + "fuzz/quic-client.c" + ], + "fuzz/quic-client-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-lcidm-test" => [ + "fuzz/quic-lcidm-test-bin-fuzz_rand.o", + "fuzz/quic-lcidm-test-bin-quic-lcidm.o", + "fuzz/quic-lcidm-test-bin-test-corpus.o" + ], + "fuzz/quic-lcidm-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-lcidm-test-bin-quic-lcidm.o" => [ + "fuzz/quic-lcidm.c" + ], + "fuzz/quic-lcidm-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-rcidm-test" => [ + "fuzz/quic-rcidm-test-bin-fuzz_rand.o", + "fuzz/quic-rcidm-test-bin-quic-rcidm.o", + "fuzz/quic-rcidm-test-bin-test-corpus.o" + ], + "fuzz/quic-rcidm-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-rcidm-test-bin-quic-rcidm.o" => [ + "fuzz/quic-rcidm.c" + ], + "fuzz/quic-rcidm-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-server-test" => [ + "fuzz/quic-server-test-bin-fuzz_rand.o", + "fuzz/quic-server-test-bin-quic-server.o", + "fuzz/quic-server-test-bin-test-corpus.o" + ], + "fuzz/quic-server-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-server-test-bin-quic-server.o" => [ + "fuzz/quic-server.c" + ], + "fuzz/quic-server-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-srtm-test" => [ + "fuzz/quic-srtm-test-bin-fuzz_rand.o", + "fuzz/quic-srtm-test-bin-quic-srtm.o", + "fuzz/quic-srtm-test-bin-test-corpus.o" + ], + "fuzz/quic-srtm-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-srtm-test-bin-quic-srtm.o" => [ + "fuzz/quic-srtm.c" + ], + "fuzz/quic-srtm-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], "fuzz/server-test" => [ "fuzz/server-test-bin-fuzz_rand.o", "fuzz/server-test-bin-server.o", @@ -23726,6 +27801,40 @@ our %unified_info = ( "fuzz/server-test-bin-test-corpus.o" => [ "fuzz/test-corpus.c" ], + "fuzz/slh-dsa-test" => [ + "fuzz/slh-dsa-test-bin-fuzz_rand.o", + "fuzz/slh-dsa-test-bin-slh-dsa.o", + "fuzz/slh-dsa-test-bin-test-corpus.o" + ], + "fuzz/slh-dsa-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/slh-dsa-test-bin-slh-dsa.o" => [ + "fuzz/slh-dsa.c" + ], + "fuzz/slh-dsa-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/smime-test" => [ + "fuzz/smime-test-bin-smime.o", + "fuzz/smime-test-bin-test-corpus.o" + ], + "fuzz/smime-test-bin-smime.o" => [ + "fuzz/smime.c" + ], + "fuzz/smime-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/v3name-test" => [ + "fuzz/v3name-test-bin-test-corpus.o", + "fuzz/v3name-test-bin-v3name.o" + ], + "fuzz/v3name-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/v3name-test-bin-v3name.o" => [ + "fuzz/v3name.c" + ], "fuzz/x509-test" => [ "fuzz/x509-test-bin-fuzz_rand.o", "fuzz/x509-test-bin-test-corpus.o", @@ -23750,6 +27859,7 @@ our %unified_info = ( "crypto/aes/libcrypto-lib-aes_ofb.o", "crypto/aes/libcrypto-lib-aes_wrap.o", "crypto/aes/libcrypto-lib-aesv8-armx.o", + "crypto/aes/libcrypto-lib-bsaes-armv8.o", "crypto/aes/libcrypto-lib-vpaes-armv8.o", "crypto/aria/libcrypto-lib-aria.o", "crypto/asn1/libcrypto-lib-a_bitstr.o", @@ -23847,6 +27957,7 @@ our %unified_info = ( "crypto/bio/libcrypto-lib-bss_conn.o", "crypto/bio/libcrypto-lib-bss_core.o", "crypto/bio/libcrypto-lib-bss_dgram.o", + "crypto/bio/libcrypto-lib-bss_dgram_pair.o", "crypto/bio/libcrypto-lib-bss_fd.o", "crypto/bio/libcrypto-lib-bss_file.o", "crypto/bio/libcrypto-lib-bss_log.o", @@ -23902,12 +28013,14 @@ our %unified_info = ( "crypto/cast/libcrypto-lib-c_enc.o", "crypto/cast/libcrypto-lib-c_ofb64.o", "crypto/cast/libcrypto-lib-c_skey.o", + "crypto/chacha/libcrypto-lib-chacha-armv8-sve.o", "crypto/chacha/libcrypto-lib-chacha-armv8.o", "crypto/cmac/libcrypto-lib-cmac.o", "crypto/cmp/libcrypto-lib-cmp_asn.o", "crypto/cmp/libcrypto-lib-cmp_client.o", "crypto/cmp/libcrypto-lib-cmp_ctx.o", "crypto/cmp/libcrypto-lib-cmp_err.o", + "crypto/cmp/libcrypto-lib-cmp_genm.o", "crypto/cmp/libcrypto-lib-cmp_hdr.o", "crypto/cmp/libcrypto-lib-cmp_http.o", "crypto/cmp/libcrypto-lib-cmp_msg.o", @@ -24047,6 +28160,9 @@ our %unified_info = ( "crypto/ec/libcrypto-lib-ecp_nistz256-armv8.o", "crypto/ec/libcrypto-lib-ecp_nistz256.o", "crypto/ec/libcrypto-lib-ecp_oct.o", + "crypto/ec/libcrypto-lib-ecp_sm2p256-armv8.o", + "crypto/ec/libcrypto-lib-ecp_sm2p256.o", + "crypto/ec/libcrypto-lib-ecp_sm2p256_table.o", "crypto/ec/libcrypto-lib-ecp_smpl.o", "crypto/ec/libcrypto-lib-ecx_backend.o", "crypto/ec/libcrypto-lib-ecx_key.o", @@ -24085,7 +28201,9 @@ our %unified_info = ( "crypto/err/libcrypto-lib-err_all.o", "crypto/err/libcrypto-lib-err_all_legacy.o", "crypto/err/libcrypto-lib-err_blocks.o", + "crypto/err/libcrypto-lib-err_mark.o", "crypto/err/libcrypto-lib-err_prn.o", + "crypto/err/libcrypto-lib-err_save.o", "crypto/ess/libcrypto-lib-ess_asn1.o", "crypto/ess/libcrypto-lib-ess_err.o", "crypto/ess/libcrypto-lib-ess_lib.o", @@ -24168,7 +28286,9 @@ our %unified_info = ( "crypto/evp/libcrypto-lib-pmeth_check.o", "crypto/evp/libcrypto-lib-pmeth_gn.o", "crypto/evp/libcrypto-lib-pmeth_lib.o", + "crypto/evp/libcrypto-lib-s_lib.o", "crypto/evp/libcrypto-lib-signature.o", + "crypto/evp/libcrypto-lib-skeymgmt_meth.o", "crypto/ffc/libcrypto-lib-ffc_backend.o", "crypto/ffc/libcrypto-lib-ffc_dh.o", "crypto/ffc/libcrypto-lib-ffc_key_generate.o", @@ -24176,7 +28296,11 @@ our %unified_info = ( "crypto/ffc/libcrypto-lib-ffc_params.o", "crypto/ffc/libcrypto-lib-ffc_params_generate.o", "crypto/ffc/libcrypto-lib-ffc_params_validate.o", + "crypto/hashtable/libcrypto-lib-hashfunc.o", + "crypto/hashtable/libcrypto-lib-hashtable.o", "crypto/hmac/libcrypto-lib-hmac.o", + "crypto/hpke/libcrypto-lib-hpke.o", + "crypto/hpke/libcrypto-lib-hpke_util.o", "crypto/http/libcrypto-lib-http_client.o", "crypto/http/libcrypto-lib-http_err.o", "crypto/http/libcrypto-lib-http_lib.o", @@ -24192,6 +28316,7 @@ our %unified_info = ( "crypto/libcrypto-lib-armcap.o", "crypto/libcrypto-lib-asn1_dsa.o", "crypto/libcrypto-lib-bsearch.o", + "crypto/libcrypto-lib-comp_methods.o", "crypto/libcrypto-lib-context.o", "crypto/libcrypto-lib-core_algorithm.o", "crypto/libcrypto-lib-core_fetch.o", @@ -24201,10 +28326,13 @@ our %unified_info = ( "crypto/libcrypto-lib-cryptlib.o", "crypto/libcrypto-lib-ctype.o", "crypto/libcrypto-lib-cversion.o", + "crypto/libcrypto-lib-defaults.o", "crypto/libcrypto-lib-der_writer.o", + "crypto/libcrypto-lib-deterministic_nonce.o", "crypto/libcrypto-lib-ebcdic.o", "crypto/libcrypto-lib-ex_data.o", "crypto/libcrypto-lib-getenv.o", + "crypto/libcrypto-lib-indicator_core.o", "crypto/libcrypto-lib-info.o", "crypto/libcrypto-lib-init.o", "crypto/libcrypto-lib-initthread.o", @@ -24221,6 +28349,7 @@ our %unified_info = ( "crypto/libcrypto-lib-params.o", "crypto/libcrypto-lib-params_dup.o", "crypto/libcrypto-lib-params_from_text.o", + "crypto/libcrypto-lib-params_idx.o", "crypto/libcrypto-lib-passphrase.o", "crypto/libcrypto-lib-provider.o", "crypto/libcrypto-lib-provider_child.o", @@ -24228,21 +28357,36 @@ our %unified_info = ( "crypto/libcrypto-lib-provider_core.o", "crypto/libcrypto-lib-provider_predefined.o", "crypto/libcrypto-lib-punycode.o", + "crypto/libcrypto-lib-quic_vlint.o", "crypto/libcrypto-lib-self_test_core.o", + "crypto/libcrypto-lib-sleep.o", "crypto/libcrypto-lib-sparse_array.o", + "crypto/libcrypto-lib-ssl_err.o", "crypto/libcrypto-lib-threads_lib.o", "crypto/libcrypto-lib-threads_none.o", "crypto/libcrypto-lib-threads_pthread.o", "crypto/libcrypto-lib-threads_win.o", + "crypto/libcrypto-lib-time.o", "crypto/libcrypto-lib-trace.o", "crypto/libcrypto-lib-uid.o", "crypto/md4/libcrypto-lib-md4_dgst.o", "crypto/md4/libcrypto-lib-md4_one.o", + "crypto/md5/libcrypto-lib-md5-aarch64.o", "crypto/md5/libcrypto-lib-md5_dgst.o", "crypto/md5/libcrypto-lib-md5_one.o", "crypto/md5/libcrypto-lib-md5_sha1.o", "crypto/mdc2/libcrypto-lib-mdc2_one.o", "crypto/mdc2/libcrypto-lib-mdc2dgst.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_encoders.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key_compress.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_matrix.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_ntt.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_params.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sample.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sign.o", + "crypto/ml_kem/libcrypto-lib-ml_kem.o", + "crypto/modes/libcrypto-lib-aes-gcm-armv8-unroll8_64.o", "crypto/modes/libcrypto-lib-aes-gcm-armv8_64.o", "crypto/modes/libcrypto-lib-cbc128.o", "crypto/modes/libcrypto-lib-ccm128.o", @@ -24256,6 +28400,7 @@ our %unified_info = ( "crypto/modes/libcrypto-lib-siv128.o", "crypto/modes/libcrypto-lib-wrap128.o", "crypto/modes/libcrypto-lib-xts128.o", + "crypto/modes/libcrypto-lib-xts128gb.o", "crypto/objects/libcrypto-lib-o_names.o", "crypto/objects/libcrypto-lib-obj_dat.o", "crypto/objects/libcrypto-lib-obj_err.o", @@ -24320,6 +28465,7 @@ our %unified_info = ( "crypto/rand/libcrypto-lib-rand_lib.o", "crypto/rand/libcrypto-lib-rand_meth.o", "crypto/rand/libcrypto-lib-rand_pool.o", + "crypto/rand/libcrypto-lib-rand_uniform.o", "crypto/rand/libcrypto-lib-randfile.o", "crypto/rc2/libcrypto-lib-rc2_cbc.o", "crypto/rc2/libcrypto-lib-rc2_ecb.o", @@ -24371,13 +28517,27 @@ our %unified_info = ( "crypto/sha/libcrypto-lib-sha512-armv8.o", "crypto/sha/libcrypto-lib-sha512.o", "crypto/siphash/libcrypto-lib-siphash.o", + "crypto/slh_dsa/libcrypto-lib-slh_adrs.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa_hash_ctx.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa_key.o", + "crypto/slh_dsa/libcrypto-lib-slh_fors.o", + "crypto/slh_dsa/libcrypto-lib-slh_hash.o", + "crypto/slh_dsa/libcrypto-lib-slh_hypertree.o", + "crypto/slh_dsa/libcrypto-lib-slh_params.o", + "crypto/slh_dsa/libcrypto-lib-slh_wots.o", + "crypto/slh_dsa/libcrypto-lib-slh_xmss.o", "crypto/sm2/libcrypto-lib-sm2_crypt.o", "crypto/sm2/libcrypto-lib-sm2_err.o", "crypto/sm2/libcrypto-lib-sm2_key.o", "crypto/sm2/libcrypto-lib-sm2_sign.o", "crypto/sm3/libcrypto-lib-legacy_sm3.o", + "crypto/sm3/libcrypto-lib-sm3-armv8.o", "crypto/sm3/libcrypto-lib-sm3.o", + "crypto/sm4/libcrypto-lib-sm4-armv8.o", "crypto/sm4/libcrypto-lib-sm4.o", + "crypto/sm4/libcrypto-lib-vpsm4-armv8.o", + "crypto/sm4/libcrypto-lib-vpsm4_ex-armv8.o", "crypto/srp/libcrypto-lib-srp_lib.o", "crypto/srp/libcrypto-lib-srp_vfy.o", "crypto/stack/libcrypto-lib-stack.o", @@ -24388,6 +28548,12 @@ our %unified_info = ( "crypto/store/libcrypto-lib-store_register.o", "crypto/store/libcrypto-lib-store_result.o", "crypto/store/libcrypto-lib-store_strings.o", + "crypto/thread/arch/libcrypto-lib-thread_none.o", + "crypto/thread/arch/libcrypto-lib-thread_posix.o", + "crypto/thread/arch/libcrypto-lib-thread_win.o", + "crypto/thread/libcrypto-lib-api.o", + "crypto/thread/libcrypto-lib-arch.o", + "crypto/thread/libcrypto-lib-internal.o", "crypto/ts/libcrypto-lib-ts_asn1.o", "crypto/ts/libcrypto-lib-ts_conf.o", "crypto/ts/libcrypto-lib-ts_err.o", @@ -24416,14 +28582,22 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-pcy_map.o", "crypto/x509/libcrypto-lib-pcy_node.o", "crypto/x509/libcrypto-lib-pcy_tree.o", + "crypto/x509/libcrypto-lib-t_acert.o", "crypto/x509/libcrypto-lib-t_crl.o", "crypto/x509/libcrypto-lib-t_req.o", "crypto/x509/libcrypto-lib-t_x509.o", + "crypto/x509/libcrypto-lib-v3_aaa.o", + "crypto/x509/libcrypto-lib-v3_ac_tgt.o", "crypto/x509/libcrypto-lib-v3_addr.o", "crypto/x509/libcrypto-lib-v3_admis.o", "crypto/x509/libcrypto-lib-v3_akeya.o", "crypto/x509/libcrypto-lib-v3_akid.o", "crypto/x509/libcrypto-lib-v3_asid.o", + "crypto/x509/libcrypto-lib-v3_attrdesc.o", + "crypto/x509/libcrypto-lib-v3_attrmap.o", + "crypto/x509/libcrypto-lib-v3_audit_id.o", + "crypto/x509/libcrypto-lib-v3_authattid.o", + "crypto/x509/libcrypto-lib-v3_battcons.o", "crypto/x509/libcrypto-lib-v3_bcons.o", "crypto/x509/libcrypto-lib-v3_bitst.o", "crypto/x509/libcrypto-lib-v3_conf.o", @@ -24432,12 +28606,17 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_enum.o", "crypto/x509/libcrypto-lib-v3_extku.o", "crypto/x509/libcrypto-lib-v3_genn.o", + "crypto/x509/libcrypto-lib-v3_group_ac.o", "crypto/x509/libcrypto-lib-v3_ia5.o", + "crypto/x509/libcrypto-lib-v3_ind_iss.o", "crypto/x509/libcrypto-lib-v3_info.o", "crypto/x509/libcrypto-lib-v3_int.o", + "crypto/x509/libcrypto-lib-v3_iobo.o", "crypto/x509/libcrypto-lib-v3_ist.o", "crypto/x509/libcrypto-lib-v3_lib.o", "crypto/x509/libcrypto-lib-v3_ncons.o", + "crypto/x509/libcrypto-lib-v3_no_ass.o", + "crypto/x509/libcrypto-lib-v3_no_rev_avail.o", "crypto/x509/libcrypto-lib-v3_pci.o", "crypto/x509/libcrypto-lib-v3_pcia.o", "crypto/x509/libcrypto-lib-v3_pcons.o", @@ -24445,13 +28624,20 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_pmaps.o", "crypto/x509/libcrypto-lib-v3_prn.o", "crypto/x509/libcrypto-lib-v3_purp.o", + "crypto/x509/libcrypto-lib-v3_rolespec.o", "crypto/x509/libcrypto-lib-v3_san.o", + "crypto/x509/libcrypto-lib-v3_sda.o", + "crypto/x509/libcrypto-lib-v3_single_use.o", "crypto/x509/libcrypto-lib-v3_skid.o", + "crypto/x509/libcrypto-lib-v3_soa_id.o", "crypto/x509/libcrypto-lib-v3_sxnet.o", + "crypto/x509/libcrypto-lib-v3_timespec.o", "crypto/x509/libcrypto-lib-v3_tlsf.o", + "crypto/x509/libcrypto-lib-v3_usernotice.o", "crypto/x509/libcrypto-lib-v3_utf8.o", "crypto/x509/libcrypto-lib-v3_utl.o", "crypto/x509/libcrypto-lib-v3err.o", + "crypto/x509/libcrypto-lib-x509_acert.o", "crypto/x509/libcrypto-lib-x509_att.o", "crypto/x509/libcrypto-lib-x509_cmp.o", "crypto/x509/libcrypto-lib-x509_d2.o", @@ -24469,6 +28655,7 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x509_v3.o", "crypto/x509/libcrypto-lib-x509_vfy.o", "crypto/x509/libcrypto-lib-x509_vpm.o", + "crypto/x509/libcrypto-lib-x509aset.o", "crypto/x509/libcrypto-lib-x509cset.o", "crypto/x509/libcrypto-lib-x509name.o", "crypto/x509/libcrypto-lib-x509rset.o", @@ -24478,6 +28665,7 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x_attrib.o", "crypto/x509/libcrypto-lib-x_crl.o", "crypto/x509/libcrypto-lib-x_exten.o", + "crypto/x509/libcrypto-lib-x_ietfatt.o", "crypto/x509/libcrypto-lib-x_name.o", "crypto/x509/libcrypto-lib-x_pubkey.o", "crypto/x509/libcrypto-lib-x_req.o", @@ -24498,14 +28686,15 @@ our %unified_info = ( "ssl/libssl-lib-d1_srtp.o", "ssl/libssl-lib-methods.o", "ssl/libssl-lib-pqueue.o", + "ssl/libssl-lib-priority_queue.o", "ssl/libssl-lib-s3_enc.o", "ssl/libssl-lib-s3_lib.o", "ssl/libssl-lib-s3_msg.o", "ssl/libssl-lib-ssl_asn1.o", "ssl/libssl-lib-ssl_cert.o", + "ssl/libssl-lib-ssl_cert_comp.o", "ssl/libssl-lib-ssl_ciph.o", "ssl/libssl-lib-ssl_conf.o", - "ssl/libssl-lib-ssl_err.o", "ssl/libssl-lib-ssl_err_legacy.o", "ssl/libssl-lib-ssl_init.o", "ssl/libssl-lib-ssl_lib.o", @@ -24522,12 +28711,60 @@ our %unified_info = ( "ssl/libssl-lib-tls13_enc.o", "ssl/libssl-lib-tls_depr.o", "ssl/libssl-lib-tls_srp.o", - "ssl/record/libssl-lib-dtls1_bitmap.o", + "ssl/quic/libssl-lib-cc_newreno.o", + "ssl/quic/libssl-lib-json_enc.o", + "ssl/quic/libssl-lib-qlog.o", + "ssl/quic/libssl-lib-qlog_event_helpers.o", + "ssl/quic/libssl-lib-quic_ackm.o", + "ssl/quic/libssl-lib-quic_cfq.o", + "ssl/quic/libssl-lib-quic_channel.o", + "ssl/quic/libssl-lib-quic_demux.o", + "ssl/quic/libssl-lib-quic_engine.o", + "ssl/quic/libssl-lib-quic_fc.o", + "ssl/quic/libssl-lib-quic_fifd.o", + "ssl/quic/libssl-lib-quic_impl.o", + "ssl/quic/libssl-lib-quic_lcidm.o", + "ssl/quic/libssl-lib-quic_method.o", + "ssl/quic/libssl-lib-quic_obj.o", + "ssl/quic/libssl-lib-quic_port.o", + "ssl/quic/libssl-lib-quic_rcidm.o", + "ssl/quic/libssl-lib-quic_reactor.o", + "ssl/quic/libssl-lib-quic_reactor_wait_ctx.o", + "ssl/quic/libssl-lib-quic_record_rx.o", + "ssl/quic/libssl-lib-quic_record_shared.o", + "ssl/quic/libssl-lib-quic_record_tx.o", + "ssl/quic/libssl-lib-quic_record_util.o", + "ssl/quic/libssl-lib-quic_rstream.o", + "ssl/quic/libssl-lib-quic_rx_depack.o", + "ssl/quic/libssl-lib-quic_sf_list.o", + "ssl/quic/libssl-lib-quic_srt_gen.o", + "ssl/quic/libssl-lib-quic_srtm.o", + "ssl/quic/libssl-lib-quic_sstream.o", + "ssl/quic/libssl-lib-quic_statm.o", + "ssl/quic/libssl-lib-quic_stream_map.o", + "ssl/quic/libssl-lib-quic_thread_assist.o", + "ssl/quic/libssl-lib-quic_tls.o", + "ssl/quic/libssl-lib-quic_tls_api.o", + "ssl/quic/libssl-lib-quic_trace.o", + "ssl/quic/libssl-lib-quic_tserver.o", + "ssl/quic/libssl-lib-quic_txp.o", + "ssl/quic/libssl-lib-quic_txpim.o", + "ssl/quic/libssl-lib-quic_types.o", + "ssl/quic/libssl-lib-quic_wire.o", + "ssl/quic/libssl-lib-quic_wire_pkt.o", + "ssl/quic/libssl-lib-uint_set.o", "ssl/record/libssl-lib-rec_layer_d1.o", "ssl/record/libssl-lib-rec_layer_s3.o", - "ssl/record/libssl-lib-ssl3_buffer.o", - "ssl/record/libssl-lib-ssl3_record.o", - "ssl/record/libssl-lib-ssl3_record_tls13.o", + "ssl/record/methods/libssl-lib-dtls_meth.o", + "ssl/record/methods/libssl-lib-ssl3_meth.o", + "ssl/record/methods/libssl-lib-tls13_meth.o", + "ssl/record/methods/libssl-lib-tls1_meth.o", + "ssl/record/methods/libssl-lib-tls_common.o", + "ssl/record/methods/libssl-lib-tls_multib.o", + "ssl/record/methods/libssl-lib-tlsany_meth.o", + "ssl/rio/libssl-lib-poll_builder.o", + "ssl/rio/libssl-lib-poll_immediate.o", + "ssl/rio/libssl-lib-rio_notifier.o", "ssl/statem/libssl-lib-extensions.o", "ssl/statem/libssl-lib-extensions_clnt.o", "ssl/statem/libssl-lib-extensions_cust.o", @@ -24565,12 +28802,24 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ecx_key.o" => [ "providers/common/der/der_ecx_key.c" ], + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o" => [ + "providers/common/der/der_ml_dsa_gen.c" + ], + "providers/common/der/libcommon-lib-der_ml_dsa_key.o" => [ + "providers/common/der/der_ml_dsa_key.c" + ], "providers/common/der/libcommon-lib-der_rsa_gen.o" => [ "providers/common/der/der_rsa_gen.c" ], "providers/common/der/libcommon-lib-der_rsa_key.o" => [ "providers/common/der/der_rsa_key.c" ], + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o" => [ + "providers/common/der/der_slh_dsa_gen.c" + ], + "providers/common/der/libcommon-lib-der_slh_dsa_key.o" => [ + "providers/common/der/der_slh_dsa_key.c" + ], "providers/common/der/libcommon-lib-der_wrap_gen.o" => [ "providers/common/der/der_wrap_gen.c" ], @@ -24637,6 +28886,9 @@ our %unified_info = ( "providers/common/libfips-lib-securitycheck_fips.o" => [ "providers/common/securitycheck_fips.c" ], + "providers/endecode_test-bin-legacyprov.o" => [ + "providers/legacyprov.c" + ], "providers/evp_extra_test-bin-legacyprov.o" => [ "providers/legacyprov.c" ], @@ -24647,6 +28899,9 @@ our %unified_info = ( "providers/fips/fips-dso-fips_entry.o" => [ "providers/fips/fips_entry.c" ], + "providers/fips/libfips-lib-fipsindicator.o" => [ + "providers/fips/fipsindicator.c" + ], "providers/fips/libfips-lib-fipsprov.o" => [ "providers/fips/fipsprov.c" ], @@ -24710,6 +28965,15 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_hw.o" => [ "providers/implementations/ciphers/cipher_aes_gcm_hw.c" ], + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv.o" => [ + "providers/implementations/ciphers/cipher_aes_gcm_siv.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_hw.o" => [ + "providers/implementations/ciphers/cipher_aes_gcm_siv_hw.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_polyval.o" => [ + "providers/implementations/ciphers/cipher_aes_gcm_siv_polyval.c" + ], "providers/implementations/ciphers/libdefault-lib-cipher_aes_hw.o" => [ "providers/implementations/ciphers/cipher_aes_hw.c" ], @@ -24782,9 +29046,27 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_sm4.o" => [ "providers/implementations/ciphers/cipher_sm4.c" ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm.o" => [ + "providers/implementations/ciphers/cipher_sm4_ccm.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm_hw.o" => [ + "providers/implementations/ciphers/cipher_sm4_ccm_hw.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm.o" => [ + "providers/implementations/ciphers/cipher_sm4_gcm.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm_hw.o" => [ + "providers/implementations/ciphers/cipher_sm4_gcm_hw.c" + ], "providers/implementations/ciphers/libdefault-lib-cipher_sm4_hw.o" => [ "providers/implementations/ciphers/cipher_sm4_hw.c" ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts.o" => [ + "providers/implementations/ciphers/cipher_sm4_xts.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts_hw.o" => [ + "providers/implementations/ciphers/cipher_sm4_xts_hw.c" + ], "providers/implementations/ciphers/libdefault-lib-cipher_tdes.o" => [ "providers/implementations/ciphers/cipher_tdes.c" ], @@ -25004,6 +29286,15 @@ our %unified_info = ( "providers/implementations/encode_decode/libdefault-lib-endecoder_common.o" => [ "providers/implementations/encode_decode/endecoder_common.c" ], + "providers/implementations/encode_decode/libdefault-lib-ml_common_codecs.o" => [ + "providers/implementations/encode_decode/ml_common_codecs.c" + ], + "providers/implementations/encode_decode/libdefault-lib-ml_dsa_codecs.o" => [ + "providers/implementations/encode_decode/ml_dsa_codecs.c" + ], + "providers/implementations/encode_decode/libdefault-lib-ml_kem_codecs.o" => [ + "providers/implementations/encode_decode/ml_kem_codecs.c" + ], "providers/implementations/exchange/libdefault-lib-dh_exch.o" => [ "providers/implementations/exchange/dh_exch.c" ], @@ -25028,9 +29319,15 @@ our %unified_info = ( "providers/implementations/exchange/libfips-lib-kdf_exch.o" => [ "providers/implementations/exchange/kdf_exch.c" ], + "providers/implementations/kdfs/libdefault-lib-argon2.o" => [ + "providers/implementations/kdfs/argon2.c" + ], "providers/implementations/kdfs/libdefault-lib-hkdf.o" => [ "providers/implementations/kdfs/hkdf.c" ], + "providers/implementations/kdfs/libdefault-lib-hmacdrbg_kdf.o" => [ + "providers/implementations/kdfs/hmacdrbg_kdf.c" + ], "providers/implementations/kdfs/libdefault-lib-kbkdf.o" => [ "providers/implementations/kdfs/kbkdf.c" ], @@ -25088,12 +29385,39 @@ our %unified_info = ( "providers/implementations/kdfs/liblegacy-lib-pbkdf1.o" => [ "providers/implementations/kdfs/pbkdf1.c" ], + "providers/implementations/kdfs/liblegacy-lib-pvkkdf.o" => [ + "providers/implementations/kdfs/pvkkdf.c" + ], + "providers/implementations/kem/libdefault-lib-ec_kem.o" => [ + "providers/implementations/kem/ec_kem.c" + ], + "providers/implementations/kem/libdefault-lib-ecx_kem.o" => [ + "providers/implementations/kem/ecx_kem.c" + ], + "providers/implementations/kem/libdefault-lib-kem_util.o" => [ + "providers/implementations/kem/kem_util.c" + ], + "providers/implementations/kem/libdefault-lib-ml_kem_kem.o" => [ + "providers/implementations/kem/ml_kem_kem.c" + ], + "providers/implementations/kem/libdefault-lib-mlx_kem.o" => [ + "providers/implementations/kem/mlx_kem.c" + ], "providers/implementations/kem/libdefault-lib-rsa_kem.o" => [ "providers/implementations/kem/rsa_kem.c" ], + "providers/implementations/kem/libfips-lib-ml_kem_kem.o" => [ + "providers/implementations/kem/ml_kem_kem.c" + ], + "providers/implementations/kem/libfips-lib-mlx_kem.o" => [ + "providers/implementations/kem/mlx_kem.c" + ], "providers/implementations/kem/libfips-lib-rsa_kem.o" => [ "providers/implementations/kem/rsa_kem.c" ], + "providers/implementations/kem/libtemplate-lib-template_kem.o" => [ + "providers/implementations/kem/template_kem.c" + ], "providers/implementations/keymgmt/libdefault-lib-dh_kmgmt.o" => [ "providers/implementations/keymgmt/dh_kmgmt.c" ], @@ -25112,9 +29436,21 @@ our %unified_info = ( "providers/implementations/keymgmt/libdefault-lib-mac_legacy_kmgmt.o" => [ "providers/implementations/keymgmt/mac_legacy_kmgmt.c" ], + "providers/implementations/keymgmt/libdefault-lib-ml_dsa_kmgmt.o" => [ + "providers/implementations/keymgmt/ml_dsa_kmgmt.c" + ], + "providers/implementations/keymgmt/libdefault-lib-ml_kem_kmgmt.o" => [ + "providers/implementations/keymgmt/ml_kem_kmgmt.c" + ], + "providers/implementations/keymgmt/libdefault-lib-mlx_kmgmt.o" => [ + "providers/implementations/keymgmt/mlx_kmgmt.c" + ], "providers/implementations/keymgmt/libdefault-lib-rsa_kmgmt.o" => [ "providers/implementations/keymgmt/rsa_kmgmt.c" ], + "providers/implementations/keymgmt/libdefault-lib-slh_dsa_kmgmt.o" => [ + "providers/implementations/keymgmt/slh_dsa_kmgmt.c" + ], "providers/implementations/keymgmt/libfips-lib-dh_kmgmt.o" => [ "providers/implementations/keymgmt/dh_kmgmt.c" ], @@ -25133,9 +29469,24 @@ our %unified_info = ( "providers/implementations/keymgmt/libfips-lib-mac_legacy_kmgmt.o" => [ "providers/implementations/keymgmt/mac_legacy_kmgmt.c" ], + "providers/implementations/keymgmt/libfips-lib-ml_dsa_kmgmt.o" => [ + "providers/implementations/keymgmt/ml_dsa_kmgmt.c" + ], + "providers/implementations/keymgmt/libfips-lib-ml_kem_kmgmt.o" => [ + "providers/implementations/keymgmt/ml_kem_kmgmt.c" + ], + "providers/implementations/keymgmt/libfips-lib-mlx_kmgmt.o" => [ + "providers/implementations/keymgmt/mlx_kmgmt.c" + ], "providers/implementations/keymgmt/libfips-lib-rsa_kmgmt.o" => [ "providers/implementations/keymgmt/rsa_kmgmt.c" ], + "providers/implementations/keymgmt/libfips-lib-slh_dsa_kmgmt.o" => [ + "providers/implementations/keymgmt/slh_dsa_kmgmt.c" + ], + "providers/implementations/keymgmt/libtemplate-lib-template_kmgmt.o" => [ + "providers/implementations/keymgmt/template_kmgmt.c" + ], "providers/implementations/macs/libdefault-lib-blake2b_mac.o" => [ "providers/implementations/macs/blake2b_mac.c" ], @@ -25172,9 +29523,6 @@ our %unified_info = ( "providers/implementations/macs/libfips-lib-kmac_prov.o" => [ "providers/implementations/macs/kmac_prov.c" ], - "providers/implementations/rands/libdefault-lib-crngt.o" => [ - "providers/implementations/rands/crngt.c" - ], "providers/implementations/rands/libdefault-lib-drbg.o" => [ "providers/implementations/rands/drbg.c" ], @@ -25190,12 +29538,12 @@ our %unified_info = ( "providers/implementations/rands/libdefault-lib-seed_src.o" => [ "providers/implementations/rands/seed_src.c" ], + "providers/implementations/rands/libdefault-lib-seed_src_jitter.o" => [ + "providers/implementations/rands/seed_src_jitter.c" + ], "providers/implementations/rands/libdefault-lib-test_rng.o" => [ "providers/implementations/rands/test_rng.c" ], - "providers/implementations/rands/libfips-lib-crngt.o" => [ - "providers/implementations/rands/crngt.c" - ], "providers/implementations/rands/libfips-lib-drbg.o" => [ "providers/implementations/rands/drbg.c" ], @@ -25208,11 +29556,14 @@ our %unified_info = ( "providers/implementations/rands/libfips-lib-drbg_hmac.o" => [ "providers/implementations/rands/drbg_hmac.c" ], + "providers/implementations/rands/libfips-lib-fips_crng_test.o" => [ + "providers/implementations/rands/fips_crng_test.c" + ], "providers/implementations/rands/libfips-lib-test_rng.o" => [ "providers/implementations/rands/test_rng.c" ], - "providers/implementations/rands/seeding/libdefault-lib-rand_cpu_x86.o" => [ - "providers/implementations/rands/seeding/rand_cpu_x86.c" + "providers/implementations/rands/seeding/libdefault-lib-rand_cpu_arm64.o" => [ + "providers/implementations/rands/seeding/rand_cpu_arm64.c" ], "providers/implementations/rands/seeding/libdefault-lib-rand_tsc.o" => [ "providers/implementations/rands/seeding/rand_tsc.c" @@ -25235,9 +29586,15 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-mac_legacy_sig.o" => [ "providers/implementations/signature/mac_legacy_sig.c" ], + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o" => [ + "providers/implementations/signature/ml_dsa_sig.c" + ], "providers/implementations/signature/libdefault-lib-rsa_sig.o" => [ "providers/implementations/signature/rsa_sig.c" ], + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o" => [ + "providers/implementations/signature/slh_dsa_sig.c" + ], "providers/implementations/signature/libdefault-lib-sm2_sig.o" => [ "providers/implementations/signature/sm2_sig.c" ], @@ -25253,9 +29610,27 @@ our %unified_info = ( "providers/implementations/signature/libfips-lib-mac_legacy_sig.o" => [ "providers/implementations/signature/mac_legacy_sig.c" ], + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o" => [ + "providers/implementations/signature/ml_dsa_sig.c" + ], "providers/implementations/signature/libfips-lib-rsa_sig.o" => [ "providers/implementations/signature/rsa_sig.c" ], + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o" => [ + "providers/implementations/signature/slh_dsa_sig.c" + ], + "providers/implementations/skeymgmt/libdefault-lib-aes_skmgmt.o" => [ + "providers/implementations/skeymgmt/aes_skmgmt.c" + ], + "providers/implementations/skeymgmt/libdefault-lib-generic.o" => [ + "providers/implementations/skeymgmt/generic.c" + ], + "providers/implementations/skeymgmt/libfips-lib-aes_skmgmt.o" => [ + "providers/implementations/skeymgmt/aes_skmgmt.c" + ], + "providers/implementations/skeymgmt/libfips-lib-generic.o" => [ + "providers/implementations/skeymgmt/generic.c" + ], "providers/implementations/storemgmt/libdefault-lib-file_store.o" => [ "providers/implementations/storemgmt/file_store.c" ], @@ -25279,8 +29654,12 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ec_sig.o", "providers/common/der/libcommon-lib-der_ecx_gen.o", "providers/common/der/libcommon-lib-der_ecx_key.o", + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o", + "providers/common/der/libcommon-lib-der_ml_dsa_key.o", "providers/common/der/libcommon-lib-der_rsa_gen.o", "providers/common/der/libcommon-lib-der_rsa_key.o", + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o", + "providers/common/der/libcommon-lib-der_slh_dsa_key.o", "providers/common/der/libcommon-lib-der_wrap_gen.o", "providers/common/libcommon-lib-provider_ctx.o", "providers/common/libcommon-lib-provider_err.o", @@ -25292,7 +29671,7 @@ our %unified_info = ( "providers/implementations/ciphers/libcommon-lib-ciphercommon_gcm_hw.o", "providers/implementations/ciphers/libcommon-lib-ciphercommon_hw.o", "providers/implementations/digests/libcommon-lib-digestcommon.o", - "ssl/record/libcommon-lib-tls_pad.o" + "ssl/record/methods/libcommon-lib-tls_pad.o" ], "providers/libcrypto-lib-baseprov.o" => [ "providers/baseprov.c" @@ -25328,6 +29707,9 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_aes_ccm_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_polyval.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_ocb.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_ocb_hw.o", @@ -25352,7 +29734,13 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_cts.o", "providers/implementations/ciphers/libdefault-lib-cipher_null.o", "providers/implementations/ciphers/libdefault-lib-cipher_sm4.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_sm4_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes_common.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes_default.o", @@ -25381,11 +29769,16 @@ our %unified_info = ( "providers/implementations/encode_decode/libdefault-lib-encode_key2ms.o", "providers/implementations/encode_decode/libdefault-lib-encode_key2text.o", "providers/implementations/encode_decode/libdefault-lib-endecoder_common.o", + "providers/implementations/encode_decode/libdefault-lib-ml_common_codecs.o", + "providers/implementations/encode_decode/libdefault-lib-ml_dsa_codecs.o", + "providers/implementations/encode_decode/libdefault-lib-ml_kem_codecs.o", "providers/implementations/exchange/libdefault-lib-dh_exch.o", "providers/implementations/exchange/libdefault-lib-ecdh_exch.o", "providers/implementations/exchange/libdefault-lib-ecx_exch.o", "providers/implementations/exchange/libdefault-lib-kdf_exch.o", + "providers/implementations/kdfs/libdefault-lib-argon2.o", "providers/implementations/kdfs/libdefault-lib-hkdf.o", + "providers/implementations/kdfs/libdefault-lib-hmacdrbg_kdf.o", "providers/implementations/kdfs/libdefault-lib-kbkdf.o", "providers/implementations/kdfs/libdefault-lib-krb5kdf.o", "providers/implementations/kdfs/libdefault-lib-pbkdf2.o", @@ -25396,6 +29789,11 @@ our %unified_info = ( "providers/implementations/kdfs/libdefault-lib-sskdf.o", "providers/implementations/kdfs/libdefault-lib-tls1_prf.o", "providers/implementations/kdfs/libdefault-lib-x942kdf.o", + "providers/implementations/kem/libdefault-lib-ec_kem.o", + "providers/implementations/kem/libdefault-lib-ecx_kem.o", + "providers/implementations/kem/libdefault-lib-kem_util.o", + "providers/implementations/kem/libdefault-lib-ml_kem_kem.o", + "providers/implementations/kem/libdefault-lib-mlx_kem.o", "providers/implementations/kem/libdefault-lib-rsa_kem.o", "providers/implementations/keymgmt/libdefault-lib-dh_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-dsa_kmgmt.o", @@ -25403,7 +29801,11 @@ our %unified_info = ( "providers/implementations/keymgmt/libdefault-lib-ecx_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-kdf_legacy_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-mac_legacy_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-ml_dsa_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-ml_kem_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-mlx_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-rsa_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-slh_dsa_kmgmt.o", "providers/implementations/macs/libdefault-lib-blake2b_mac.o", "providers/implementations/macs/libdefault-lib-blake2s_mac.o", "providers/implementations/macs/libdefault-lib-cmac_prov.o", @@ -25412,14 +29814,14 @@ our %unified_info = ( "providers/implementations/macs/libdefault-lib-kmac_prov.o", "providers/implementations/macs/libdefault-lib-poly1305_prov.o", "providers/implementations/macs/libdefault-lib-siphash_prov.o", - "providers/implementations/rands/libdefault-lib-crngt.o", "providers/implementations/rands/libdefault-lib-drbg.o", "providers/implementations/rands/libdefault-lib-drbg_ctr.o", "providers/implementations/rands/libdefault-lib-drbg_hash.o", "providers/implementations/rands/libdefault-lib-drbg_hmac.o", "providers/implementations/rands/libdefault-lib-seed_src.o", + "providers/implementations/rands/libdefault-lib-seed_src_jitter.o", "providers/implementations/rands/libdefault-lib-test_rng.o", - "providers/implementations/rands/seeding/libdefault-lib-rand_cpu_x86.o", + "providers/implementations/rands/seeding/libdefault-lib-rand_cpu_arm64.o", "providers/implementations/rands/seeding/libdefault-lib-rand_tsc.o", "providers/implementations/rands/seeding/libdefault-lib-rand_unix.o", "providers/implementations/rands/seeding/libdefault-lib-rand_win.o", @@ -25427,11 +29829,15 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-ecdsa_sig.o", "providers/implementations/signature/libdefault-lib-eddsa_sig.o", "providers/implementations/signature/libdefault-lib-mac_legacy_sig.o", + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o", "providers/implementations/signature/libdefault-lib-rsa_sig.o", + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o", "providers/implementations/signature/libdefault-lib-sm2_sig.o", + "providers/implementations/skeymgmt/libdefault-lib-aes_skmgmt.o", + "providers/implementations/skeymgmt/libdefault-lib-generic.o", "providers/implementations/storemgmt/libdefault-lib-file_store.o", "providers/implementations/storemgmt/libdefault-lib-file_store_any2obj.o", - "ssl/libdefault-lib-s3_cbc.o" + "ssl/record/methods/libdefault-lib-ssl3_cbc.o" ], "providers/libfips.a" => [ "crypto/aes/libfips-lib-aes_cbc.o", @@ -25439,6 +29845,7 @@ our %unified_info = ( "crypto/aes/libfips-lib-aes_ecb.o", "crypto/aes/libfips-lib-aes_misc.o", "crypto/aes/libfips-lib-aesv8-armx.o", + "crypto/aes/libfips-lib-bsaes-armv8.o", "crypto/aes/libfips-lib-vpaes-armv8.o", "crypto/bn/libfips-lib-armv8-mont.o", "crypto/bn/libfips-lib-bn_add.o", @@ -25520,6 +29927,9 @@ our %unified_info = ( "crypto/ec/libfips-lib-ecp_nistz256-armv8.o", "crypto/ec/libfips-lib-ecp_nistz256.o", "crypto/ec/libfips-lib-ecp_oct.o", + "crypto/ec/libfips-lib-ecp_sm2p256-armv8.o", + "crypto/ec/libfips-lib-ecp_sm2p256.o", + "crypto/ec/libfips-lib-ecp_sm2p256_table.o", "crypto/ec/libfips-lib-ecp_smpl.o", "crypto/ec/libfips-lib-ecx_backend.o", "crypto/ec/libfips-lib-ecx_key.o", @@ -25538,14 +29948,15 @@ our %unified_info = ( "crypto/evp/libfips-lib-kem.o", "crypto/evp/libfips-lib-keymgmt_lib.o", "crypto/evp/libfips-lib-keymgmt_meth.o", - "crypto/evp/libfips-lib-m_sigver.o", "crypto/evp/libfips-lib-mac_lib.o", "crypto/evp/libfips-lib-mac_meth.o", "crypto/evp/libfips-lib-p_lib.o", "crypto/evp/libfips-lib-pmeth_check.o", "crypto/evp/libfips-lib-pmeth_gn.o", "crypto/evp/libfips-lib-pmeth_lib.o", + "crypto/evp/libfips-lib-s_lib.o", "crypto/evp/libfips-lib-signature.o", + "crypto/evp/libfips-lib-skeymgmt_meth.o", "crypto/ffc/libfips-lib-ffc_backend.o", "crypto/ffc/libfips-lib-ffc_dh.o", "crypto/ffc/libfips-lib-ffc_key_generate.o", @@ -25553,6 +29964,8 @@ our %unified_info = ( "crypto/ffc/libfips-lib-ffc_params.o", "crypto/ffc/libfips-lib-ffc_params_generate.o", "crypto/ffc/libfips-lib-ffc_params_validate.o", + "crypto/hashtable/libfips-lib-hashfunc.o", + "crypto/hashtable/libfips-lib-hashtable.o", "crypto/hmac/libfips-lib-hmac.o", "crypto/lhash/libfips-lib-lhash.o", "crypto/libfips-lib-arm64cpuid.o", @@ -25576,6 +29989,7 @@ our %unified_info = ( "crypto/libfips-lib-params.o", "crypto/libfips-lib-params_dup.o", "crypto/libfips-lib-params_from_text.o", + "crypto/libfips-lib-params_idx.o", "crypto/libfips-lib-provider_core.o", "crypto/libfips-lib-provider_predefined.o", "crypto/libfips-lib-self_test_core.o", @@ -25584,6 +29998,17 @@ our %unified_info = ( "crypto/libfips-lib-threads_none.o", "crypto/libfips-lib-threads_pthread.o", "crypto/libfips-lib-threads_win.o", + "crypto/libfips-lib-time.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_encoders.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_key.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_key_compress.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_matrix.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_ntt.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_params.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_sample.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_sign.o", + "crypto/ml_kem/libfips-lib-ml_kem.o", + "crypto/modes/libfips-lib-aes-gcm-armv8-unroll8_64.o", "crypto/modes/libfips-lib-aes-gcm-armv8_64.o", "crypto/modes/libfips-lib-cbc128.o", "crypto/modes/libfips-lib-ccm128.o", @@ -25594,6 +30019,7 @@ our %unified_info = ( "crypto/modes/libfips-lib-ofb128.o", "crypto/modes/libfips-lib-wrap128.o", "crypto/modes/libfips-lib-xts128.o", + "crypto/modes/libfips-lib-xts128gb.o", "crypto/property/libfips-lib-defn_cache.o", "crypto/property/libfips-lib-property.o", "crypto/property/libfips-lib-property_parse.o", @@ -25625,7 +30051,23 @@ our %unified_info = ( "crypto/sha/libfips-lib-sha3.o", "crypto/sha/libfips-lib-sha512-armv8.o", "crypto/sha/libfips-lib-sha512.o", + "crypto/slh_dsa/libfips-lib-slh_adrs.o", + "crypto/slh_dsa/libfips-lib-slh_dsa.o", + "crypto/slh_dsa/libfips-lib-slh_dsa_hash_ctx.o", + "crypto/slh_dsa/libfips-lib-slh_dsa_key.o", + "crypto/slh_dsa/libfips-lib-slh_fors.o", + "crypto/slh_dsa/libfips-lib-slh_hash.o", + "crypto/slh_dsa/libfips-lib-slh_hypertree.o", + "crypto/slh_dsa/libfips-lib-slh_params.o", + "crypto/slh_dsa/libfips-lib-slh_wots.o", + "crypto/slh_dsa/libfips-lib-slh_xmss.o", "crypto/stack/libfips-lib-stack.o", + "crypto/thread/arch/libfips-lib-thread_none.o", + "crypto/thread/arch/libfips-lib-thread_posix.o", + "crypto/thread/arch/libfips-lib-thread_win.o", + "crypto/thread/libfips-lib-api.o", + "crypto/thread/libfips-lib-arch.o", + "crypto/thread/libfips-lib-internal.o", "providers/common/der/libfips-lib-der_rsa_sig.o", "providers/common/libfips-lib-bio_prov.o", "providers/common/libfips-lib-capabilities.o", @@ -25634,6 +30076,7 @@ our %unified_info = ( "providers/common/libfips-lib-provider_util.o", "providers/common/libfips-lib-securitycheck.o", "providers/common/libfips-lib-securitycheck_fips.o", + "providers/fips/libfips-lib-fipsindicator.o", "providers/fips/libfips-lib-fipsprov.o", "providers/fips/libfips-lib-self_test.o", "providers/fips/libfips-lib-self_test_kats.o", @@ -25671,6 +30114,8 @@ our %unified_info = ( "providers/implementations/kdfs/libfips-lib-sskdf.o", "providers/implementations/kdfs/libfips-lib-tls1_prf.o", "providers/implementations/kdfs/libfips-lib-x942kdf.o", + "providers/implementations/kem/libfips-lib-ml_kem_kem.o", + "providers/implementations/kem/libfips-lib-mlx_kem.o", "providers/implementations/kem/libfips-lib-rsa_kem.o", "providers/implementations/keymgmt/libfips-lib-dh_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-dsa_kmgmt.o", @@ -25678,24 +30123,32 @@ our %unified_info = ( "providers/implementations/keymgmt/libfips-lib-ecx_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-kdf_legacy_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-mac_legacy_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-ml_dsa_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-ml_kem_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-mlx_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-rsa_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-slh_dsa_kmgmt.o", "providers/implementations/macs/libfips-lib-cmac_prov.o", "providers/implementations/macs/libfips-lib-gmac_prov.o", "providers/implementations/macs/libfips-lib-hmac_prov.o", "providers/implementations/macs/libfips-lib-kmac_prov.o", - "providers/implementations/rands/libfips-lib-crngt.o", "providers/implementations/rands/libfips-lib-drbg.o", "providers/implementations/rands/libfips-lib-drbg_ctr.o", "providers/implementations/rands/libfips-lib-drbg_hash.o", "providers/implementations/rands/libfips-lib-drbg_hmac.o", + "providers/implementations/rands/libfips-lib-fips_crng_test.o", "providers/implementations/rands/libfips-lib-test_rng.o", "providers/implementations/signature/libfips-lib-dsa_sig.o", "providers/implementations/signature/libfips-lib-ecdsa_sig.o", "providers/implementations/signature/libfips-lib-eddsa_sig.o", "providers/implementations/signature/libfips-lib-mac_legacy_sig.o", + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o", "providers/implementations/signature/libfips-lib-rsa_sig.o", + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o", + "providers/implementations/skeymgmt/libfips-lib-aes_skmgmt.o", + "providers/implementations/skeymgmt/libfips-lib-generic.o", "providers/libcommon.a", - "ssl/libfips-lib-s3_cbc.o" + "ssl/record/methods/libfips-lib-ssl3_cbc.o" ], "providers/liblegacy-lib-prov_running.o" => [ "providers/prov_running.c" @@ -25725,13 +30178,12 @@ our %unified_info = ( "providers/implementations/digests/liblegacy-lib-ripemd_prov.o", "providers/implementations/digests/liblegacy-lib-wp_prov.o", "providers/implementations/kdfs/liblegacy-lib-pbkdf1.o", + "providers/implementations/kdfs/liblegacy-lib-pvkkdf.o", "providers/liblegacy-lib-prov_running.o" ], - "ssl/libdefault-lib-s3_cbc.o" => [ - "ssl/s3_cbc.c" - ], - "ssl/libfips-lib-s3_cbc.o" => [ - "ssl/s3_cbc.c" + "providers/libtemplate.a" => [ + "providers/implementations/kem/libtemplate-lib-template_kem.o", + "providers/implementations/keymgmt/libtemplate-lib-template_kmgmt.o" ], "ssl/libssl-lib-bio_ssl.o" => [ "ssl/bio_ssl.c" @@ -25751,6 +30203,9 @@ our %unified_info = ( "ssl/libssl-lib-pqueue.o" => [ "ssl/pqueue.c" ], + "ssl/libssl-lib-priority_queue.o" => [ + "ssl/priority_queue.c" + ], "ssl/libssl-lib-s3_enc.o" => [ "ssl/s3_enc.c" ], @@ -25766,15 +30221,15 @@ our %unified_info = ( "ssl/libssl-lib-ssl_cert.o" => [ "ssl/ssl_cert.c" ], + "ssl/libssl-lib-ssl_cert_comp.o" => [ + "ssl/ssl_cert_comp.c" + ], "ssl/libssl-lib-ssl_ciph.o" => [ "ssl/ssl_ciph.c" ], "ssl/libssl-lib-ssl_conf.o" => [ "ssl/ssl_conf.c" ], - "ssl/libssl-lib-ssl_err.o" => [ - "ssl/ssl_err.c" - ], "ssl/libssl-lib-ssl_err_legacy.o" => [ "ssl/ssl_err_legacy.c" ], @@ -25823,11 +30278,131 @@ our %unified_info = ( "ssl/libssl-lib-tls_srp.o" => [ "ssl/tls_srp.c" ], - "ssl/record/libcommon-lib-tls_pad.o" => [ - "ssl/record/tls_pad.c" + "ssl/quic/libssl-lib-cc_newreno.o" => [ + "ssl/quic/cc_newreno.c" + ], + "ssl/quic/libssl-lib-json_enc.o" => [ + "ssl/quic/json_enc.c" + ], + "ssl/quic/libssl-lib-qlog.o" => [ + "ssl/quic/qlog.c" + ], + "ssl/quic/libssl-lib-qlog_event_helpers.o" => [ + "ssl/quic/qlog_event_helpers.c" + ], + "ssl/quic/libssl-lib-quic_ackm.o" => [ + "ssl/quic/quic_ackm.c" + ], + "ssl/quic/libssl-lib-quic_cfq.o" => [ + "ssl/quic/quic_cfq.c" + ], + "ssl/quic/libssl-lib-quic_channel.o" => [ + "ssl/quic/quic_channel.c" + ], + "ssl/quic/libssl-lib-quic_demux.o" => [ + "ssl/quic/quic_demux.c" + ], + "ssl/quic/libssl-lib-quic_engine.o" => [ + "ssl/quic/quic_engine.c" + ], + "ssl/quic/libssl-lib-quic_fc.o" => [ + "ssl/quic/quic_fc.c" + ], + "ssl/quic/libssl-lib-quic_fifd.o" => [ + "ssl/quic/quic_fifd.c" + ], + "ssl/quic/libssl-lib-quic_impl.o" => [ + "ssl/quic/quic_impl.c" + ], + "ssl/quic/libssl-lib-quic_lcidm.o" => [ + "ssl/quic/quic_lcidm.c" + ], + "ssl/quic/libssl-lib-quic_method.o" => [ + "ssl/quic/quic_method.c" + ], + "ssl/quic/libssl-lib-quic_obj.o" => [ + "ssl/quic/quic_obj.c" + ], + "ssl/quic/libssl-lib-quic_port.o" => [ + "ssl/quic/quic_port.c" + ], + "ssl/quic/libssl-lib-quic_rcidm.o" => [ + "ssl/quic/quic_rcidm.c" + ], + "ssl/quic/libssl-lib-quic_reactor.o" => [ + "ssl/quic/quic_reactor.c" + ], + "ssl/quic/libssl-lib-quic_reactor_wait_ctx.o" => [ + "ssl/quic/quic_reactor_wait_ctx.c" + ], + "ssl/quic/libssl-lib-quic_record_rx.o" => [ + "ssl/quic/quic_record_rx.c" + ], + "ssl/quic/libssl-lib-quic_record_shared.o" => [ + "ssl/quic/quic_record_shared.c" + ], + "ssl/quic/libssl-lib-quic_record_tx.o" => [ + "ssl/quic/quic_record_tx.c" + ], + "ssl/quic/libssl-lib-quic_record_util.o" => [ + "ssl/quic/quic_record_util.c" + ], + "ssl/quic/libssl-lib-quic_rstream.o" => [ + "ssl/quic/quic_rstream.c" ], - "ssl/record/libssl-lib-dtls1_bitmap.o" => [ - "ssl/record/dtls1_bitmap.c" + "ssl/quic/libssl-lib-quic_rx_depack.o" => [ + "ssl/quic/quic_rx_depack.c" + ], + "ssl/quic/libssl-lib-quic_sf_list.o" => [ + "ssl/quic/quic_sf_list.c" + ], + "ssl/quic/libssl-lib-quic_srt_gen.o" => [ + "ssl/quic/quic_srt_gen.c" + ], + "ssl/quic/libssl-lib-quic_srtm.o" => [ + "ssl/quic/quic_srtm.c" + ], + "ssl/quic/libssl-lib-quic_sstream.o" => [ + "ssl/quic/quic_sstream.c" + ], + "ssl/quic/libssl-lib-quic_statm.o" => [ + "ssl/quic/quic_statm.c" + ], + "ssl/quic/libssl-lib-quic_stream_map.o" => [ + "ssl/quic/quic_stream_map.c" + ], + "ssl/quic/libssl-lib-quic_thread_assist.o" => [ + "ssl/quic/quic_thread_assist.c" + ], + "ssl/quic/libssl-lib-quic_tls.o" => [ + "ssl/quic/quic_tls.c" + ], + "ssl/quic/libssl-lib-quic_tls_api.o" => [ + "ssl/quic/quic_tls_api.c" + ], + "ssl/quic/libssl-lib-quic_trace.o" => [ + "ssl/quic/quic_trace.c" + ], + "ssl/quic/libssl-lib-quic_tserver.o" => [ + "ssl/quic/quic_tserver.c" + ], + "ssl/quic/libssl-lib-quic_txp.o" => [ + "ssl/quic/quic_txp.c" + ], + "ssl/quic/libssl-lib-quic_txpim.o" => [ + "ssl/quic/quic_txpim.c" + ], + "ssl/quic/libssl-lib-quic_types.o" => [ + "ssl/quic/quic_types.c" + ], + "ssl/quic/libssl-lib-quic_wire.o" => [ + "ssl/quic/quic_wire.c" + ], + "ssl/quic/libssl-lib-quic_wire_pkt.o" => [ + "ssl/quic/quic_wire_pkt.c" + ], + "ssl/quic/libssl-lib-uint_set.o" => [ + "ssl/quic/uint_set.c" ], "ssl/record/libssl-lib-rec_layer_d1.o" => [ "ssl/record/rec_layer_d1.c" @@ -25835,14 +30410,44 @@ our %unified_info = ( "ssl/record/libssl-lib-rec_layer_s3.o" => [ "ssl/record/rec_layer_s3.c" ], - "ssl/record/libssl-lib-ssl3_buffer.o" => [ - "ssl/record/ssl3_buffer.c" + "ssl/record/methods/libcommon-lib-tls_pad.o" => [ + "ssl/record/methods/tls_pad.c" + ], + "ssl/record/methods/libdefault-lib-ssl3_cbc.o" => [ + "ssl/record/methods/ssl3_cbc.c" + ], + "ssl/record/methods/libfips-lib-ssl3_cbc.o" => [ + "ssl/record/methods/ssl3_cbc.c" + ], + "ssl/record/methods/libssl-lib-dtls_meth.o" => [ + "ssl/record/methods/dtls_meth.c" + ], + "ssl/record/methods/libssl-lib-ssl3_meth.o" => [ + "ssl/record/methods/ssl3_meth.c" + ], + "ssl/record/methods/libssl-lib-tls13_meth.o" => [ + "ssl/record/methods/tls13_meth.c" + ], + "ssl/record/methods/libssl-lib-tls1_meth.o" => [ + "ssl/record/methods/tls1_meth.c" + ], + "ssl/record/methods/libssl-lib-tls_common.o" => [ + "ssl/record/methods/tls_common.c" ], - "ssl/record/libssl-lib-ssl3_record.o" => [ - "ssl/record/ssl3_record.c" + "ssl/record/methods/libssl-lib-tls_multib.o" => [ + "ssl/record/methods/tls_multib.c" ], - "ssl/record/libssl-lib-ssl3_record_tls13.o" => [ - "ssl/record/ssl3_record_tls13.c" + "ssl/record/methods/libssl-lib-tlsany_meth.o" => [ + "ssl/record/methods/tlsany_meth.c" + ], + "ssl/rio/libssl-lib-poll_builder.o" => [ + "ssl/rio/poll_builder.c" + ], + "ssl/rio/libssl-lib-poll_immediate.o" => [ + "ssl/rio/poll_immediate.c" + ], + "ssl/rio/libssl-lib-rio_notifier.o" => [ + "ssl/rio/rio_notifier.c" ], "ssl/statem/libssl-lib-extensions.o" => [ "ssl/statem/extensions.c" @@ -25938,6 +30543,8 @@ our %unified_info = ( "test/asn1_string_table_test.c" ], "test/asn1_time_test" => [ + "crypto/asn1/asn1_time_test-bin-a_time.o", + "crypto/asn1_time_test-bin-ctype.o", "test/asn1_time_test-bin-asn1_time_test.o" ], "test/asn1_time_test-bin-asn1_time_test.o" => [ @@ -25968,6 +30575,18 @@ our %unified_info = ( "test/bftest-bin-bftest.o" => [ "test/bftest.c" ], + "test/bio_addr_test" => [ + "test/bio_addr_test-bin-bio_addr_test.o" + ], + "test/bio_addr_test-bin-bio_addr_test.o" => [ + "test/bio_addr_test.c" + ], + "test/bio_base64_test" => [ + "test/bio_base64_test-bin-bio_base64_test.o" + ], + "test/bio_base64_test-bin-bio_base64_test.o" => [ + "test/bio_base64_test.c" + ], "test/bio_callback_test" => [ "test/bio_callback_test-bin-bio_callback_test.o" ], @@ -25980,6 +30599,12 @@ our %unified_info = ( "test/bio_core_test-bin-bio_core_test.o" => [ "test/bio_core_test.c" ], + "test/bio_dgram_test" => [ + "test/bio_dgram_test-bin-bio_dgram_test.o" + ], + "test/bio_dgram_test-bin-bio_dgram_test.o" => [ + "test/bio_dgram_test.c" + ], "test/bio_enc_test" => [ "test/bio_enc_test-bin-bio_enc_test.o" ], @@ -25992,6 +30617,12 @@ our %unified_info = ( "test/bio_memleak_test-bin-bio_memleak_test.o" => [ "test/bio_memleak_test.c" ], + "test/bio_meth_test" => [ + "test/bio_meth_test-bin-bio_meth_test.o" + ], + "test/bio_meth_test-bin-bio_meth_test.o" => [ + "test/bio_meth_test.c" + ], "test/bio_prefix_text" => [ "test/bio_prefix_text-bin-bio_prefix_text.o" ], @@ -26010,6 +30641,12 @@ our %unified_info = ( "test/bio_readbuffer_test-bin-bio_readbuffer_test.o" => [ "test/bio_readbuffer_test.c" ], + "test/bio_tfo_test" => [ + "test/bio_tfo_test-bin-bio_tfo_test.o" + ], + "test/bio_tfo_test-bin-bio_tfo_test.o" => [ + "test/bio_tfo_test.c" + ], "test/bioprinttest" => [ "test/bioprinttest-bin-bioprinttest.o" ], @@ -26028,6 +30665,12 @@ our %unified_info = ( "test/bntest-bin-bntest.o" => [ "test/bntest.c" ], + "test/build_wincrypt_test" => [ + "test/build_wincrypt_test-bin-build_wincrypt_test.o" + ], + "test/build_wincrypt_test-bin-build_wincrypt_test.o" => [ + "test/build_wincrypt_test.c" + ], "test/buildtest_c_aes" => [ "test/buildtest_c_aes-bin-buildtest_aes.o" ], @@ -26058,6 +30701,12 @@ our %unified_info = ( "test/buildtest_c_buffer-bin-buildtest_buffer.o" => [ "test/buildtest_buffer.c" ], + "test/buildtest_c_byteorder" => [ + "test/buildtest_c_byteorder-bin-buildtest_byteorder.o" + ], + "test/buildtest_c_byteorder-bin-buildtest_byteorder.o" => [ + "test/buildtest_byteorder.c" + ], "test/buildtest_c_camellia" => [ "test/buildtest_c_camellia-bin-buildtest_camellia.o" ], @@ -26106,12 +30755,6 @@ our %unified_info = ( "test/buildtest_c_core_dispatch-bin-buildtest_core_dispatch.o" => [ "test/buildtest_core_dispatch.c" ], - "test/buildtest_c_core_names" => [ - "test/buildtest_c_core_names-bin-buildtest_core_names.o" - ], - "test/buildtest_c_core_names-bin-buildtest_core_names.o" => [ - "test/buildtest_core_names.c" - ], "test/buildtest_c_core_object" => [ "test/buildtest_c_core_object-bin-buildtest_core_object.o" ], @@ -26160,6 +30803,12 @@ our %unified_info = ( "test/buildtest_c_e_os2-bin-buildtest_e_os2.o" => [ "test/buildtest_e_os2.c" ], + "test/buildtest_c_e_ostime" => [ + "test/buildtest_c_e_ostime-bin-buildtest_e_ostime.o" + ], + "test/buildtest_c_e_ostime-bin-buildtest_e_ostime.o" => [ + "test/buildtest_e_ostime.c" + ], "test/buildtest_c_ebcdic" => [ "test/buildtest_c_ebcdic-bin-buildtest_ebcdic.o" ], @@ -26214,6 +30863,12 @@ our %unified_info = ( "test/buildtest_c_hmac-bin-buildtest_hmac.o" => [ "test/buildtest_hmac.c" ], + "test/buildtest_c_hpke" => [ + "test/buildtest_c_hpke-bin-buildtest_hpke.o" + ], + "test/buildtest_c_hpke-bin-buildtest_hpke.o" => [ + "test/buildtest_hpke.c" + ], "test/buildtest_c_http" => [ "test/buildtest_c_http-bin-buildtest_http.o" ], @@ -26226,6 +30881,12 @@ our %unified_info = ( "test/buildtest_c_idea-bin-buildtest_idea.o" => [ "test/buildtest_idea.c" ], + "test/buildtest_c_indicator" => [ + "test/buildtest_c_indicator-bin-buildtest_indicator.o" + ], + "test/buildtest_c_indicator-bin-buildtest_indicator.o" => [ + "test/buildtest_indicator.c" + ], "test/buildtest_c_kdf" => [ "test/buildtest_c_kdf-bin-buildtest_kdf.o" ], @@ -26256,6 +30917,12 @@ our %unified_info = ( "test/buildtest_c_mdc2-bin-buildtest_mdc2.o" => [ "test/buildtest_mdc2.c" ], + "test/buildtest_c_ml_kem" => [ + "test/buildtest_c_ml_kem-bin-buildtest_ml_kem.o" + ], + "test/buildtest_c_ml_kem-bin-buildtest_ml_kem.o" => [ + "test/buildtest_ml_kem.c" + ], "test/buildtest_c_modes" => [ "test/buildtest_c_modes-bin-buildtest_modes.o" ], @@ -26316,6 +30983,12 @@ our %unified_info = ( "test/buildtest_c_provider-bin-buildtest_provider.o" => [ "test/buildtest_provider.c" ], + "test/buildtest_c_quic" => [ + "test/buildtest_c_quic-bin-buildtest_quic.o" + ], + "test/buildtest_c_quic-bin-buildtest_quic.o" => [ + "test/buildtest_quic.c" + ], "test/buildtest_c_rand" => [ "test/buildtest_c_rand-bin-buildtest_rand.o" ], @@ -26400,6 +31073,12 @@ our %unified_info = ( "test/buildtest_c_symhacks-bin-buildtest_symhacks.o" => [ "test/buildtest_symhacks.c" ], + "test/buildtest_c_thread" => [ + "test/buildtest_c_thread-bin-buildtest_thread.o" + ], + "test/buildtest_c_thread-bin-buildtest_thread.o" => [ + "test/buildtest_thread.c" + ], "test/buildtest_c_tls1" => [ "test/buildtest_c_tls1-bin-buildtest_tls1.o" ], @@ -26430,6 +31109,29 @@ our %unified_info = ( "test/buildtest_c_whrlpool-bin-buildtest_whrlpool.o" => [ "test/buildtest_whrlpool.c" ], + "test/byteorder_test" => [ + "test/byteorder_test-bin-byteorder_test.o" + ], + "test/byteorder_test-bin-byteorder_test.o" => [ + "test/byteorder_test.c" + ], + "test/ca_internals_test" => [ + "apps/ca_internals_test-bin-ca.o", + "apps/lib/ca_internals_test-bin-app_libctx.o", + "apps/lib/ca_internals_test-bin-app_provider.o", + "apps/lib/ca_internals_test-bin-app_rand.o", + "apps/lib/ca_internals_test-bin-app_x509.o", + "apps/lib/ca_internals_test-bin-apps.o", + "apps/lib/ca_internals_test-bin-apps_ui.o", + "apps/lib/ca_internals_test-bin-engine.o", + "apps/lib/ca_internals_test-bin-fmt.o", + "crypto/asn1/ca_internals_test-bin-a_time.o", + "crypto/ca_internals_test-bin-ctype.o", + "test/ca_internals_test-bin-ca_internals_test.o" + ], + "test/ca_internals_test-bin-ca_internals_test.o" => [ + "test/ca_internals_test.c" + ], "test/casttest" => [ "test/casttest-bin-casttest.o" ], @@ -26608,6 +31310,12 @@ our %unified_info = ( "test/danetest-bin-danetest.o" => [ "test/danetest.c" ], + "test/decoder_propq_test" => [ + "test/decoder_propq_test-bin-decoder_propq_test.o" + ], + "test/decoder_propq_test-bin-decoder_propq_test.o" => [ + "test/decoder_propq_test.c" + ], "test/defltfips_test" => [ "test/defltfips_test-bin-defltfips_test.o" ], @@ -26689,6 +31397,7 @@ our %unified_info = ( "test/ectest.c" ], "test/endecode_test" => [ + "providers/endecode_test-bin-legacyprov.o", "test/endecode_test-bin-endecode_test.o", "test/helpers/endecode_test-bin-predefined_dhparams.o" ], @@ -26721,17 +31430,29 @@ our %unified_info = ( ], "test/evp_extra_test" => [ "providers/evp_extra_test-bin-legacyprov.o", - "test/evp_extra_test-bin-evp_extra_test.o" + "test/evp_extra_test-bin-evp_extra_test.o", + "test/evp_extra_test-bin-fake_pipelineprov.o", + "test/evp_extra_test-bin-fake_rsaprov.o" ], "test/evp_extra_test-bin-evp_extra_test.o" => [ "test/evp_extra_test.c" ], + "test/evp_extra_test-bin-fake_pipelineprov.o" => [ + "test/fake_pipelineprov.c" + ], + "test/evp_extra_test-bin-fake_rsaprov.o" => [ + "test/fake_rsaprov.c" + ], "test/evp_extra_test2" => [ - "test/evp_extra_test2-bin-evp_extra_test2.o" + "test/evp_extra_test2-bin-evp_extra_test2.o", + "test/evp_extra_test2-bin-tls-provider.o" ], "test/evp_extra_test2-bin-evp_extra_test2.o" => [ "test/evp_extra_test2.c" ], + "test/evp_extra_test2-bin-tls-provider.o" => [ + "test/tls-provider.c" + ], "test/evp_fetch_prov_test" => [ "test/evp_fetch_prov_test-bin-evp_fetch_prov_test.o" ], @@ -26756,6 +31477,12 @@ our %unified_info = ( "test/evp_pkey_ctx_new_from_name-bin-evp_pkey_ctx_new_from_name.o" => [ "test/evp_pkey_ctx_new_from_name.c" ], + "test/evp_pkey_dhkem_test" => [ + "test/evp_pkey_dhkem_test-bin-evp_pkey_dhkem_test.o" + ], + "test/evp_pkey_dhkem_test-bin-evp_pkey_dhkem_test.o" => [ + "test/evp_pkey_dhkem_test.c" + ], "test/evp_pkey_dparams_test" => [ "test/evp_pkey_dparams_test-bin-evp_pkey_dparams_test.o" ], @@ -26768,12 +31495,28 @@ our %unified_info = ( "test/evp_pkey_provided_test-bin-evp_pkey_provided_test.o" => [ "test/evp_pkey_provided_test.c" ], + "test/evp_skey_test" => [ + "test/evp_skey_test-bin-evp_skey_test.o", + "test/evp_skey_test-bin-fake_cipherprov.o" + ], + "test/evp_skey_test-bin-evp_skey_test.o" => [ + "test/evp_skey_test.c" + ], + "test/evp_skey_test-bin-fake_cipherprov.o" => [ + "test/fake_cipherprov.c" + ], "test/evp_test" => [ "test/evp_test-bin-evp_test.o" ], "test/evp_test-bin-evp_test.o" => [ "test/evp_test.c" ], + "test/evp_xof_test" => [ + "test/evp_xof_test-bin-evp_xof_test.o" + ], + "test/evp_xof_test-bin-evp_xof_test.o" => [ + "test/evp_xof_test.c" + ], "test/exdatatest" => [ "test/exdatatest-bin-exdatatest.o" ], @@ -26859,15 +31602,108 @@ our %unified_info = ( "test/helpers/fatalerrtest-bin-ssltestlib.o" => [ "test/helpers/ssltestlib.c" ], + "test/helpers/json_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/json_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/json_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/json_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/pkcs12_api_test-bin-pkcs12.o" => [ + "test/helpers/pkcs12.c" + ], "test/helpers/pkcs12_format_test-bin-pkcs12.o" => [ "test/helpers/pkcs12.c" ], + "test/helpers/quic_multistream_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quic_multistream_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quic_multistream_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quic_multistream_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quic_newcid_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quic_newcid_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quic_newcid_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quic_newcid_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quic_radix_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quic_radix_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quic_radix_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quic_radix_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quic_srt_gen_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quic_srt_gen_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quic_srt_gen_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quic_srt_gen_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quicapitest-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quicapitest-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quicapitest-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quicapitest-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quicfaultstest-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quicfaultstest-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quicfaultstest-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quicfaultstest-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], "test/helpers/recordlentest-bin-ssltestlib.o" => [ "test/helpers/ssltestlib.c" ], + "test/helpers/rpktest-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], "test/helpers/servername_test-bin-ssltestlib.o" => [ "test/helpers/ssltestlib.c" ], + "test/helpers/ssl_handshake_rtt_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], "test/helpers/ssl_old_test-bin-predefined_dhparams.o" => [ "test/helpers/predefined_dhparams.c" ], @@ -26895,6 +31731,9 @@ our %unified_info = ( "test/helpers/tls13ccstest-bin-ssltestlib.o" => [ "test/helpers/ssltestlib.c" ], + "test/helpers/tls13groupselection_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], "test/hexstr_test" => [ "test/hexstr_test-bin-hexstr_test.o" ], @@ -26907,6 +31746,12 @@ our %unified_info = ( "test/hmactest-bin-hmactest.o" => [ "test/hmactest.c" ], + "test/hpke_test" => [ + "test/hpke_test-bin-hpke_test.o" + ], + "test/hpke_test-bin-hpke_test.o" => [ + "test/hpke_test.c" + ], "test/http_test" => [ "test/http_test-bin-http_test.o" ], @@ -26925,6 +31770,16 @@ our %unified_info = ( "test/igetest-bin-igetest.o" => [ "test/igetest.c" ], + "test/json_test" => [ + "test/helpers/json_test-bin-noisydgrambio.o", + "test/helpers/json_test-bin-pktsplitbio.o", + "test/helpers/json_test-bin-quictestlib.o", + "test/helpers/json_test-bin-ssltestlib.o", + "test/json_test-bin-json_test.o" + ], + "test/json_test-bin-json_test.o" => [ + "test/json_test.c" + ], "test/keymgmt_internal_test" => [ "test/keymgmt_internal_test-bin-keymgmt_internal_test.o" ], @@ -26945,6 +31800,7 @@ our %unified_info = ( "test/testutil/libtestutil-lib-driver.o", "test/testutil/libtestutil-lib-fake_random.o", "test/testutil/libtestutil-lib-format_output.o", + "test/testutil/libtestutil-lib-helper.o", "test/testutil/libtestutil-lib-load.o", "test/testutil/libtestutil-lib-main.o", "test/testutil/libtestutil-lib-options.o", @@ -26957,6 +31813,12 @@ our %unified_info = ( "test/testutil/libtestutil-lib-tests.o", "test/testutil/libtestutil-lib-testutil_init.o" ], + "test/list_test" => [ + "test/list_test-bin-list_test.o" + ], + "test/list_test-bin-list_test.o" => [ + "test/list_test.c" + ], "test/localetest" => [ "test/localetest-bin-localetest.o" ], @@ -26975,12 +31837,36 @@ our %unified_info = ( "test/mdc2test-bin-mdc2test.o" => [ "test/mdc2test.c" ], + "test/membio_test" => [ + "test/membio_test-bin-membio_test.o" + ], + "test/membio_test-bin-membio_test.o" => [ + "test/membio_test.c" + ], "test/memleaktest" => [ "test/memleaktest-bin-memleaktest.o" ], "test/memleaktest-bin-memleaktest.o" => [ "test/memleaktest.c" ], + "test/ml_dsa_test" => [ + "test/ml_dsa_test-bin-ml_dsa_test.o" + ], + "test/ml_dsa_test-bin-ml_dsa_test.o" => [ + "test/ml_dsa_test.c" + ], + "test/ml_kem_evp_extra_test" => [ + "test/ml_kem_evp_extra_test-bin-ml_kem_evp_extra_test.o" + ], + "test/ml_kem_evp_extra_test-bin-ml_kem_evp_extra_test.o" => [ + "test/ml_kem_evp_extra_test.c" + ], + "test/ml_kem_internal_test" => [ + "test/ml_kem_internal_test-bin-ml_kem_internal_test.o" + ], + "test/ml_kem_internal_test-bin-ml_kem_internal_test.o" => [ + "test/ml_kem_internal_test.c" + ], "test/modes_internal_test" => [ "test/modes_internal_test-bin-modes_internal_test.o" ], @@ -27026,11 +31912,18 @@ our %unified_info = ( "test/p_test.c" ], "test/packettest" => [ + "crypto/packettest-bin-quic_vlint.o", "test/packettest-bin-packettest.o" ], "test/packettest-bin-packettest.o" => [ "test/packettest.c" ], + "test/pairwise_fail_test" => [ + "test/pairwise_fail_test-bin-pairwise_fail_test.o" + ], + "test/pairwise_fail_test-bin-pairwise_fail_test.o" => [ + "test/pairwise_fail_test.c" + ], "test/param_build_test" => [ "test/param_build_test-bin-param_build_test.o" ], @@ -27079,6 +31972,13 @@ our %unified_info = ( "test/pemtest-bin-pemtest.o" => [ "test/pemtest.c" ], + "test/pkcs12_api_test" => [ + "test/helpers/pkcs12_api_test-bin-pkcs12.o", + "test/pkcs12_api_test-bin-pkcs12_api_test.o" + ], + "test/pkcs12_api_test-bin-pkcs12_api_test.o" => [ + "test/pkcs12_api_test.c" + ], "test/pkcs12_format_test" => [ "test/helpers/pkcs12_format_test-bin-pkcs12.o", "test/pkcs12_format_test-bin-pkcs12_format_test.o" @@ -27110,6 +32010,12 @@ our %unified_info = ( "test/poly1305_internal_test-bin-poly1305_internal_test.o" => [ "test/poly1305_internal_test.c" ], + "test/priority_queue_test" => [ + "test/priority_queue_test-bin-priority_queue_test.o" + ], + "test/priority_queue_test-bin-priority_queue_test.o" => [ + "test/priority_queue_test.c" + ], "test/property_test" => [ "test/property_test-bin-property_test.o" ], @@ -27128,6 +32034,12 @@ our %unified_info = ( "test/provfetchtest-bin-provfetchtest.o" => [ "test/provfetchtest.c" ], + "test/provider_default_search_path_test" => [ + "test/provider_default_search_path_test-bin-provider_default_search_path_test.o" + ], + "test/provider_default_search_path_test-bin-provider_default_search_path_test.o" => [ + "test/provider_default_search_path_test.c" + ], "test/provider_fallback_test" => [ "test/provider_fallback_test-bin-provider_fallback_test.o" ], @@ -27176,6 +32088,174 @@ our %unified_info = ( "test/punycode_test-bin-punycode_test.o" => [ "test/punycode_test.c" ], + "test/quic_ackm_test" => [ + "test/quic_ackm_test-bin-cc_dummy.o", + "test/quic_ackm_test-bin-quic_ackm_test.o" + ], + "test/quic_ackm_test-bin-cc_dummy.o" => [ + "test/cc_dummy.c" + ], + "test/quic_ackm_test-bin-quic_ackm_test.o" => [ + "test/quic_ackm_test.c" + ], + "test/quic_cc_test" => [ + "test/quic_cc_test-bin-quic_cc_test.o" + ], + "test/quic_cc_test-bin-quic_cc_test.o" => [ + "test/quic_cc_test.c" + ], + "test/quic_cfq_test" => [ + "test/quic_cfq_test-bin-quic_cfq_test.o" + ], + "test/quic_cfq_test-bin-quic_cfq_test.o" => [ + "test/quic_cfq_test.c" + ], + "test/quic_client_test" => [ + "test/quic_client_test-bin-quic_client_test.o" + ], + "test/quic_client_test-bin-quic_client_test.o" => [ + "test/quic_client_test.c" + ], + "test/quic_fc_test" => [ + "test/quic_fc_test-bin-quic_fc_test.o" + ], + "test/quic_fc_test-bin-quic_fc_test.o" => [ + "test/quic_fc_test.c" + ], + "test/quic_fifd_test" => [ + "test/quic_fifd_test-bin-cc_dummy.o", + "test/quic_fifd_test-bin-quic_fifd_test.o" + ], + "test/quic_fifd_test-bin-cc_dummy.o" => [ + "test/cc_dummy.c" + ], + "test/quic_fifd_test-bin-quic_fifd_test.o" => [ + "test/quic_fifd_test.c" + ], + "test/quic_lcidm_test" => [ + "test/quic_lcidm_test-bin-quic_lcidm_test.o" + ], + "test/quic_lcidm_test-bin-quic_lcidm_test.o" => [ + "test/quic_lcidm_test.c" + ], + "test/quic_multistream_test" => [ + "test/helpers/quic_multistream_test-bin-noisydgrambio.o", + "test/helpers/quic_multistream_test-bin-pktsplitbio.o", + "test/helpers/quic_multistream_test-bin-quictestlib.o", + "test/helpers/quic_multistream_test-bin-ssltestlib.o", + "test/quic_multistream_test-bin-quic_multistream_test.o" + ], + "test/quic_multistream_test-bin-quic_multistream_test.o" => [ + "test/quic_multistream_test.c" + ], + "test/quic_newcid_test" => [ + "test/helpers/quic_newcid_test-bin-noisydgrambio.o", + "test/helpers/quic_newcid_test-bin-pktsplitbio.o", + "test/helpers/quic_newcid_test-bin-quictestlib.o", + "test/helpers/quic_newcid_test-bin-ssltestlib.o", + "test/quic_newcid_test-bin-quic_newcid_test.o" + ], + "test/quic_newcid_test-bin-quic_newcid_test.o" => [ + "test/quic_newcid_test.c" + ], + "test/quic_qlog_test" => [ + "test/quic_qlog_test-bin-quic_qlog_test.o" + ], + "test/quic_qlog_test-bin-quic_qlog_test.o" => [ + "test/quic_qlog_test.c" + ], + "test/quic_radix_test" => [ + "test/helpers/quic_radix_test-bin-noisydgrambio.o", + "test/helpers/quic_radix_test-bin-pktsplitbio.o", + "test/helpers/quic_radix_test-bin-quictestlib.o", + "test/helpers/quic_radix_test-bin-ssltestlib.o", + "test/radix/quic_radix_test-bin-quic_radix.o" + ], + "test/quic_rcidm_test" => [ + "test/quic_rcidm_test-bin-quic_rcidm_test.o" + ], + "test/quic_rcidm_test-bin-quic_rcidm_test.o" => [ + "test/quic_rcidm_test.c" + ], + "test/quic_record_test" => [ + "test/quic_record_test-bin-quic_record_test.o" + ], + "test/quic_record_test-bin-quic_record_test.o" => [ + "test/quic_record_test.c" + ], + "test/quic_srt_gen_test" => [ + "test/helpers/quic_srt_gen_test-bin-noisydgrambio.o", + "test/helpers/quic_srt_gen_test-bin-pktsplitbio.o", + "test/helpers/quic_srt_gen_test-bin-quictestlib.o", + "test/helpers/quic_srt_gen_test-bin-ssltestlib.o", + "test/quic_srt_gen_test-bin-quic_srt_gen_test.o" + ], + "test/quic_srt_gen_test-bin-quic_srt_gen_test.o" => [ + "test/quic_srt_gen_test.c" + ], + "test/quic_srtm_test" => [ + "test/quic_srtm_test-bin-quic_srtm_test.o" + ], + "test/quic_srtm_test-bin-quic_srtm_test.o" => [ + "test/quic_srtm_test.c" + ], + "test/quic_stream_test" => [ + "test/quic_stream_test-bin-quic_stream_test.o" + ], + "test/quic_stream_test-bin-quic_stream_test.o" => [ + "test/quic_stream_test.c" + ], + "test/quic_tserver_test" => [ + "test/quic_tserver_test-bin-quic_tserver_test.o" + ], + "test/quic_tserver_test-bin-quic_tserver_test.o" => [ + "test/quic_tserver_test.c" + ], + "test/quic_txp_test" => [ + "test/quic_txp_test-bin-cc_dummy.o", + "test/quic_txp_test-bin-quic_txp_test.o" + ], + "test/quic_txp_test-bin-cc_dummy.o" => [ + "test/cc_dummy.c" + ], + "test/quic_txp_test-bin-quic_txp_test.o" => [ + "test/quic_txp_test.c" + ], + "test/quic_txpim_test" => [ + "test/quic_txpim_test-bin-quic_txpim_test.o" + ], + "test/quic_txpim_test-bin-quic_txpim_test.o" => [ + "test/quic_txpim_test.c" + ], + "test/quic_wire_test" => [ + "test/quic_wire_test-bin-quic_wire_test.o" + ], + "test/quic_wire_test-bin-quic_wire_test.o" => [ + "test/quic_wire_test.c" + ], + "test/quicapitest" => [ + "test/helpers/quicapitest-bin-noisydgrambio.o", + "test/helpers/quicapitest-bin-pktsplitbio.o", + "test/helpers/quicapitest-bin-quictestlib.o", + "test/helpers/quicapitest-bin-ssltestlib.o", + "test/quicapitest-bin-quicapitest.o" + ], + "test/quicapitest-bin-quicapitest.o" => [ + "test/quicapitest.c" + ], + "test/quicfaultstest" => [ + "test/helpers/quicfaultstest-bin-noisydgrambio.o", + "test/helpers/quicfaultstest-bin-pktsplitbio.o", + "test/helpers/quicfaultstest-bin-quictestlib.o", + "test/helpers/quicfaultstest-bin-ssltestlib.o", + "test/quicfaultstest-bin-quicfaultstest.o" + ], + "test/quicfaultstest-bin-quicfaultstest.o" => [ + "test/quicfaultstest.c" + ], + "test/radix/quic_radix_test-bin-quic_radix.o" => [ + "test/radix/quic_radix.c" + ], "test/rand_status_test" => [ "test/rand_status_test-bin-rand_status_test.o" ], @@ -27206,11 +32286,11 @@ our %unified_info = ( "test/rc5test-bin-rc5test.o" => [ "test/rc5test.c" ], - "test/rdrand_sanitytest" => [ - "test/rdrand_sanitytest-bin-rdrand_sanitytest.o" + "test/rdcpu_sanitytest" => [ + "test/rdcpu_sanitytest-bin-rdcpu_sanitytest.o" ], - "test/rdrand_sanitytest-bin-rdrand_sanitytest.o" => [ - "test/rdrand_sanitytest.c" + "test/rdcpu_sanitytest-bin-rdcpu_sanitytest.o" => [ + "test/rdcpu_sanitytest.c" ], "test/recordlentest" => [ "test/helpers/recordlentest-bin-ssltestlib.o", @@ -27219,6 +32299,13 @@ our %unified_info = ( "test/recordlentest-bin-recordlentest.o" => [ "test/recordlentest.c" ], + "test/rpktest" => [ + "test/helpers/rpktest-bin-ssltestlib.o", + "test/rpktest-bin-rpktest.o" + ], + "test/rpktest-bin-rpktest.o" => [ + "test/rpktest.c" + ], "test/rsa_complex" => [ "test/rsa_complex-bin-rsa_complex.o" ], @@ -27243,6 +32330,18 @@ our %unified_info = ( "test/rsa_test-bin-rsa_test.o" => [ "test/rsa_test.c" ], + "test/rsa_x931_test" => [ + "test/rsa_x931_test-bin-rsa_x931_test.o" + ], + "test/rsa_x931_test-bin-rsa_x931_test.o" => [ + "test/rsa_x931_test.c" + ], + "test/safe_math_test" => [ + "test/safe_math_test-bin-safe_math_test.o" + ], + "test/safe_math_test-bin-safe_math_test.o" => [ + "test/safe_math_test.c" + ], "test/sanitytest" => [ "test/sanitytest-bin-sanitytest.o" ], @@ -27274,6 +32373,12 @@ our %unified_info = ( "test/siphash_internal_test-bin-siphash_internal_test.o" => [ "test/siphash_internal_test.c" ], + "test/slh_dsa_test" => [ + "test/slh_dsa_test-bin-slh_dsa_test.o" + ], + "test/slh_dsa_test-bin-slh_dsa_test.o" => [ + "test/slh_dsa_test.c" + ], "test/sm2_internal_test" => [ "test/sm2_internal_test-bin-sm2_internal_test.o" ], @@ -27316,6 +32421,13 @@ our %unified_info = ( "test/ssl_ctx_test-bin-ssl_ctx_test.o" => [ "test/ssl_ctx_test.c" ], + "test/ssl_handshake_rtt_test" => [ + "test/helpers/ssl_handshake_rtt_test-bin-ssltestlib.o", + "test/ssl_handshake_rtt_test-bin-ssl_handshake_rtt_test.o" + ], + "test/ssl_handshake_rtt_test-bin-ssl_handshake_rtt_test.o" => [ + "test/ssl_handshake_rtt_test.c" + ], "test/ssl_old_test" => [ "test/helpers/ssl_old_test-bin-predefined_dhparams.o", "test/ssl_old_test-bin-ssl_old_test.o" @@ -27374,6 +32486,12 @@ our %unified_info = ( "test/stack_test-bin-stack_test.o" => [ "test/stack_test.c" ], + "test/strtoultest" => [ + "test/strtoultest-bin-strtoultest.o" + ], + "test/strtoultest-bin-strtoultest.o" => [ + "test/strtoultest.c" + ], "test/sysdefaulttest" => [ "test/sysdefaulttest-bin-sysdefaulttest.o" ], @@ -27404,6 +32522,9 @@ our %unified_info = ( "test/testutil/libtestutil-lib-format_output.o" => [ "test/testutil/format_output.c" ], + "test/testutil/libtestutil-lib-helper.o" => [ + "test/testutil/helper.c" + ], "test/testutil/libtestutil-lib-load.o" => [ "test/testutil/load.c" ], @@ -27437,6 +32558,12 @@ our %unified_info = ( "test/testutil/libtestutil-lib-testutil_init.o" => [ "test/testutil/testutil_init.c" ], + "test/threadpool_test" => [ + "test/threadpool_test-bin-threadpool_test.o" + ], + "test/threadpool_test-bin-threadpool_test.o" => [ + "test/threadpool_test.c" + ], "test/threadstest" => [ "test/threadstest-bin-threadstest.o" ], @@ -27455,6 +32582,12 @@ our %unified_info = ( "test/time_offset_test-bin-time_offset_test.o" => [ "test/time_offset_test.c" ], + "test/time_test" => [ + "test/time_test-bin-time_test.o" + ], + "test/time_test-bin-time_test.o" => [ + "test/time_test.c" + ], "test/tls13ccstest" => [ "test/helpers/tls13ccstest-bin-ssltestlib.o", "test/tls13ccstest-bin-tls13ccstest.o" @@ -27468,6 +32601,13 @@ our %unified_info = ( "test/tls13encryptiontest-bin-tls13encryptiontest.o" => [ "test/tls13encryptiontest.c" ], + "test/tls13groupselection_test" => [ + "test/helpers/tls13groupselection_test-bin-ssltestlib.o", + "test/tls13groupselection_test-bin-tls13groupselection_test.o" + ], + "test/tls13groupselection_test-bin-tls13groupselection_test.o" => [ + "test/tls13groupselection_test.c" + ], "test/trace_api_test" => [ "test/trace_api_test-bin-trace_api_test.o" ], @@ -27523,6 +32663,12 @@ our %unified_info = ( "test/wpackettest-bin-wpackettest.o" => [ "test/wpackettest.c" ], + "test/x509_acert_test" => [ + "test/x509_acert_test-bin-x509_acert_test.o" + ], + "test/x509_acert_test-bin-x509_acert_test.o" => [ + "test/x509_acert_test.c" + ], "test/x509_check_cert_pkey_test" => [ "test/x509_check_cert_pkey_test-bin-x509_check_cert_pkey_test.o" ], @@ -27541,6 +32687,24 @@ our %unified_info = ( "test/x509_internal_test-bin-x509_internal_test.o" => [ "test/x509_internal_test.c" ], + "test/x509_load_cert_file_test" => [ + "test/x509_load_cert_file_test-bin-x509_load_cert_file_test.o" + ], + "test/x509_load_cert_file_test-bin-x509_load_cert_file_test.o" => [ + "test/x509_load_cert_file_test.c" + ], + "test/x509_req_test" => [ + "test/x509_req_test-bin-x509_req_test.o" + ], + "test/x509_req_test-bin-x509_req_test.o" => [ + "test/x509_req_test.c" + ], + "test/x509_test" => [ + "test/x509_test-bin-x509_test.o" + ], + "test/x509_test-bin-x509_test.o" => [ + "test/x509_test.c" + ], "test/x509_time_test" => [ "test/x509_time_test-bin-x509_time_test.o" ], @@ -27604,6 +32768,7 @@ my @makevars = ( "LDLIBS", "MT", "MTFLAGS", + "OBJCOPY", "PERL", "RANLIB", "RC", @@ -27617,6 +32782,12 @@ my %disabled_info = ( "asan" => { "macro" => "OPENSSL_NO_ASAN" }, + "brotli" => { + "macro" => "OPENSSL_NO_BROTLI" + }, + "brotli-dynamic" => { + "macro" => "OPENSSL_NO_BROTLI_DYNAMIC" + }, "comp" => { "macro" => "OPENSSL_NO_COMP", "skipped" => [ @@ -27629,6 +32800,9 @@ my %disabled_info = ( "crypto-mdebug-backtrace" => { "macro" => "OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE" }, + "demos" => { + "macro" => "OPENSSL_NO_DEMOS" + }, "devcryptoeng" => { "macro" => "OPENSSL_NO_DEVCRYPTOENG" }, @@ -27641,12 +32815,24 @@ my %disabled_info = ( "external-tests" => { "macro" => "OPENSSL_NO_EXTERNAL_TESTS" }, + "fips-jitter" => { + "macro" => "OPENSSL_NO_FIPS_JITTER" + }, "fuzz-afl" => { "macro" => "OPENSSL_NO_FUZZ_AFL" }, "fuzz-libfuzzer" => { "macro" => "OPENSSL_NO_FUZZ_LIBFUZZER" }, + "h3demo" => { + "macro" => "OPENSSL_NO_H3DEMO" + }, + "hqinterop" => { + "macro" => "OPENSSL_NO_HQINTEROP" + }, + "jitter" => { + "macro" => "OPENSSL_NO_JITTER" + }, "ktls" => { "macro" => "OPENSSL_NO_KTLS" }, @@ -27662,6 +32848,9 @@ my %disabled_info = ( "msan" => { "macro" => "OPENSSL_NO_MSAN" }, + "pie" => { + "macro" => "OPENSSL_NO_PIE" + }, "rc5" => { "macro" => "OPENSSL_NO_RC5", "skipped" => [ @@ -27677,6 +32866,12 @@ my %disabled_info = ( "ssl3-method" => { "macro" => "OPENSSL_NO_SSL3_METHOD" }, + "sslkeylog" => { + "macro" => "OPENSSL_NO_SSLKEYLOG" + }, + "tfo" => { + "macro" => "OPENSSL_NO_TFO" + }, "trace" => { "macro" => "OPENSSL_NO_TRACE" }, @@ -27691,6 +32886,21 @@ my %disabled_info = ( }, "weak-ssl-ciphers" => { "macro" => "OPENSSL_NO_WEAK_SSL_CIPHERS" + }, + "winstore" => { + "macro" => "OPENSSL_NO_WINSTORE" + }, + "zlib" => { + "macro" => "OPENSSL_NO_ZLIB" + }, + "zlib-dynamic" => { + "macro" => "OPENSSL_NO_ZLIB_DYNAMIC" + }, + "zstd" => { + "macro" => "OPENSSL_NO_ZSTD" + }, + "zstd-dynamic" => { + "macro" => "OPENSSL_NO_ZSTD_DYNAMIC" } ); my @user_crossable = qw( AR AS CC CXX CPP LD MT RANLIB RC ); @@ -27704,15 +32914,15 @@ unless (caller) { use File::Copy; use Pod::Usage; - use lib '/home/runner/work/node/node/deps/openssl/openssl/util/perl'; - use OpenSSL::fallback '/home/runner/work/node/node/deps/openssl/openssl/external/perl/MODULES.txt'; + use lib '/node/deps/openssl/openssl/util/perl'; + use OpenSSL::fallback '/node/deps/openssl/openssl/external/perl/MODULES.txt'; my $here = dirname($0); if (scalar @ARGV == 0) { # With no arguments, re-create the build file # We do that in two steps, where the first step emits perl - # snipets. + # snippets. my $buildfile = $config{build_file}; my $buildfile_template = "$buildfile.in"; @@ -27732,7 +32942,7 @@ unless (caller) { ); use lib '.'; - use lib '/home/runner/work/node/node/deps/openssl/openssl/Configurations'; + use lib '/node/deps/openssl/openssl/Configurations'; use gentemplate; open my $buildfile_template_fh, ">$buildfile_template" @@ -27749,8 +32959,8 @@ unless (caller) { my $prepend = <<'_____'; use File::Spec::Functions; -use lib '/home/runner/work/node/node/deps/openssl/openssl/util/perl'; -use lib '/home/runner/work/node/node/deps/openssl/openssl/Configurations'; +use lib '/node/deps/openssl/openssl/util/perl'; +use lib '/node/deps/openssl/openssl/Configurations'; use lib '.'; use platform; _____ diff --git a/deps/openssl/config/archs/linux-aarch64/asm_avx2/crypto/aes/aesv8-armx.S b/deps/openssl/config/archs/linux-aarch64/asm_avx2/crypto/aes/aesv8-armx.S index 0d2a81daf9d2bf..a5f1ed7ac942c9 100644 --- a/deps/openssl/config/archs/linux-aarch64/asm_avx2/crypto/aes/aesv8-armx.S +++ b/deps/openssl/config/archs/linux-aarch64/asm_avx2/crypto/aes/aesv8-armx.S @@ -3,17 +3,20 @@ #if __ARM_MAX_ARCH__>=7 .arch armv8-a+crypto .text +.section .rodata .align 5 .Lrcon: .long 0x01,0x01,0x01,0x01 .long 0x0c0f0e0d,0x0c0f0e0d,0x0c0f0e0d,0x0c0f0e0d // rotate-n-splat .long 0x1b,0x1b,0x1b,0x1b - +.previous .globl aes_v8_set_encrypt_key .type aes_v8_set_encrypt_key,%function .align 5 aes_v8_set_encrypt_key: .Lenc_key: + AARCH64_VALID_CALL_TARGET + // Armv8.3-A PAuth: even though x30 is pushed to stack it is not popped later. stp x29,x30,[sp,#-16]! add x29,sp,#0 mov x3,#-1 @@ -29,7 +32,8 @@ aes_v8_set_encrypt_key: tst w1,#0x3f b.ne .Lenc_key_abort - adr x3,.Lrcon + adrp x3,.Lrcon + add x3,x3,#:lo12:.Lrcon cmp w1,#192 eor v0.16b,v0.16b,v0.16b @@ -185,7 +189,7 @@ aes_v8_set_encrypt_key: .type aes_v8_set_decrypt_key,%function .align 5 aes_v8_set_decrypt_key: -.inst 0xd503233f // paciasp + AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-16]! add x29,sp,#0 bl .Lenc_key @@ -219,13 +223,14 @@ aes_v8_set_decrypt_key: eor x0,x0,x0 // return value .Ldec_key_abort: ldp x29,x30,[sp],#16 -.inst 0xd50323bf // autiasp + AARCH64_VALIDATE_LINK_REGISTER ret .size aes_v8_set_decrypt_key,.-aes_v8_set_decrypt_key .globl aes_v8_encrypt .type aes_v8_encrypt,%function .align 5 aes_v8_encrypt: + AARCH64_VALID_CALL_TARGET ldr w3,[x2,#240] ld1 {v0.4s},[x2],#16 ld1 {v2.16b},[x0] @@ -255,6 +260,7 @@ aes_v8_encrypt: .type aes_v8_decrypt,%function .align 5 aes_v8_decrypt: + AARCH64_VALID_CALL_TARGET ldr w3,[x2,#240] ld1 {v0.4s},[x2],#16 ld1 {v2.16b},[x0] @@ -284,6 +290,7 @@ aes_v8_decrypt: .type aes_v8_ecb_encrypt,%function .align 5 aes_v8_ecb_encrypt: + AARCH64_VALID_CALL_TARGET subs x2,x2,#16 // Original input data size bigger than 16, jump to big size processing. b.ne .Lecb_big_size @@ -1030,6 +1037,8 @@ aes_v8_ecb_encrypt: .type aes_v8_cbc_encrypt,%function .align 5 aes_v8_cbc_encrypt: + AARCH64_VALID_CALL_TARGET + // Armv8.3-A PAuth: even though x30 is pushed to stack it is not popped later. stp x29,x30,[sp,#-16]! add x29,sp,#0 subs x2,x2,#16 @@ -1501,10 +1510,735 @@ aes_v8_cbc_encrypt: ldr x29,[sp],#16 ret .size aes_v8_cbc_encrypt,.-aes_v8_cbc_encrypt +.globl aes_v8_ctr32_encrypt_blocks_unroll12_eor3 +.type aes_v8_ctr32_encrypt_blocks_unroll12_eor3,%function +.align 5 +aes_v8_ctr32_encrypt_blocks_unroll12_eor3: + AARCH64_VALID_CALL_TARGET + // Armv8.3-A PAuth: even though x30 is pushed to stack it is not popped later. + stp x29,x30,[sp,#-80]! + stp d8,d9,[sp, #16] + stp d10,d11,[sp, #32] + stp d12,d13,[sp, #48] + stp d14,d15,[sp, #64] + add x29,sp,#0 + + ldr w5,[x3,#240] + + ldr w8, [x4, #12] +#ifdef __AARCH64EB__ + ld1 {v24.16b},[x4] +#else + ld1 {v24.4s},[x4] +#endif + ld1 {v2.4s,v3.4s},[x3] // load key schedule... + sub w5,w5,#4 + cmp x2,#2 + add x7,x3,x5,lsl#4 // pointer to last round key + sub w5,w5,#2 + add x7, x7, #64 + ld1 {v1.4s},[x7] + add x7,x3,#32 + mov w6,w5 +#ifndef __AARCH64EB__ + rev w8, w8 +#endif + + orr v25.16b,v24.16b,v24.16b + add w10, w8, #1 + orr v26.16b,v24.16b,v24.16b + add w8, w8, #2 + orr v0.16b,v24.16b,v24.16b + rev w10, w10 + mov v25.s[3],w10 + b.ls .Lctr32_tail_unroll + cmp x2,#6 + rev w12, w8 + sub x2,x2,#3 // bias + mov v26.s[3],w12 + b.lo .Loop3x_ctr32_unroll + cmp x2,#9 + orr v27.16b,v24.16b,v24.16b + add w11, w8, #1 + orr v28.16b,v24.16b,v24.16b + add w13, w8, #2 + rev w11, w11 + orr v29.16b,v24.16b,v24.16b + add w8, w8, #3 + rev w13, w13 + mov v27.s[3],w11 + rev w14, w8 + mov v28.s[3],w13 + mov v29.s[3],w14 + sub x2,x2,#3 + b.lo .Loop6x_ctr32_unroll + + // push regs to stack when 12 data chunks are interleaved + stp x19,x20,[sp,#-16]! + stp x21,x22,[sp,#-16]! + stp x23,x24,[sp,#-16]! + stp d8,d9,[sp,#-32]! + stp d10,d11,[sp,#-32]! + + add w15,w8,#1 + add w19,w8,#2 + add w20,w8,#3 + add w21,w8,#4 + add w22,w8,#5 + add w8,w8,#6 + orr v30.16b,v24.16b,v24.16b + rev w15,w15 + orr v31.16b,v24.16b,v24.16b + rev w19,w19 + orr v8.16b,v24.16b,v24.16b + rev w20,w20 + orr v9.16b,v24.16b,v24.16b + rev w21,w21 + orr v10.16b,v24.16b,v24.16b + rev w22,w22 + orr v11.16b,v24.16b,v24.16b + rev w23,w8 + + sub x2,x2,#6 // bias + mov v30.s[3],w15 + mov v31.s[3],w19 + mov v8.s[3],w20 + mov v9.s[3],w21 + mov v10.s[3],w22 + mov v11.s[3],w23 + b .Loop12x_ctr32_unroll + +.align 4 +.Loop12x_ctr32_unroll: + aese v24.16b,v2.16b + aesmc v24.16b,v24.16b + aese v25.16b,v2.16b + aesmc v25.16b,v25.16b + aese v26.16b,v2.16b + aesmc v26.16b,v26.16b + aese v27.16b,v2.16b + aesmc v27.16b,v27.16b + aese v28.16b,v2.16b + aesmc v28.16b,v28.16b + aese v29.16b,v2.16b + aesmc v29.16b,v29.16b + aese v30.16b,v2.16b + aesmc v30.16b,v30.16b + aese v31.16b,v2.16b + aesmc v31.16b,v31.16b + aese v8.16b,v2.16b + aesmc v8.16b,v8.16b + aese v9.16b,v2.16b + aesmc v9.16b,v9.16b + aese v10.16b,v2.16b + aesmc v10.16b,v10.16b + aese v11.16b,v2.16b + aesmc v11.16b,v11.16b + ld1 {v2.4s},[x7],#16 + subs w6,w6,#2 + aese v24.16b,v3.16b + aesmc v24.16b,v24.16b + aese v25.16b,v3.16b + aesmc v25.16b,v25.16b + aese v26.16b,v3.16b + aesmc v26.16b,v26.16b + aese v27.16b,v3.16b + aesmc v27.16b,v27.16b + aese v28.16b,v3.16b + aesmc v28.16b,v28.16b + aese v29.16b,v3.16b + aesmc v29.16b,v29.16b + aese v30.16b,v3.16b + aesmc v30.16b,v30.16b + aese v31.16b,v3.16b + aesmc v31.16b,v31.16b + aese v8.16b,v3.16b + aesmc v8.16b,v8.16b + aese v9.16b,v3.16b + aesmc v9.16b,v9.16b + aese v10.16b,v3.16b + aesmc v10.16b,v10.16b + aese v11.16b,v3.16b + aesmc v11.16b,v11.16b + ld1 {v3.4s},[x7],#16 + b.gt .Loop12x_ctr32_unroll + + aese v24.16b,v2.16b + aesmc v24.16b,v24.16b + aese v25.16b,v2.16b + aesmc v25.16b,v25.16b + aese v26.16b,v2.16b + aesmc v26.16b,v26.16b + aese v27.16b,v2.16b + aesmc v27.16b,v27.16b + aese v28.16b,v2.16b + aesmc v28.16b,v28.16b + aese v29.16b,v2.16b + aesmc v29.16b,v29.16b + aese v30.16b,v2.16b + aesmc v30.16b,v30.16b + aese v31.16b,v2.16b + aesmc v31.16b,v31.16b + aese v8.16b,v2.16b + aesmc v8.16b,v8.16b + aese v9.16b,v2.16b + aesmc v9.16b,v9.16b + aese v10.16b,v2.16b + aesmc v10.16b,v10.16b + aese v11.16b,v2.16b + aesmc v11.16b,v11.16b + ld1 {v2.4s},[x7],#16 + + aese v24.16b,v3.16b + aesmc v24.16b,v24.16b + aese v25.16b,v3.16b + aesmc v25.16b,v25.16b + aese v26.16b,v3.16b + aesmc v26.16b,v26.16b + aese v27.16b,v3.16b + aesmc v27.16b,v27.16b + aese v28.16b,v3.16b + aesmc v28.16b,v28.16b + aese v29.16b,v3.16b + aesmc v29.16b,v29.16b + aese v30.16b,v3.16b + aesmc v30.16b,v30.16b + aese v31.16b,v3.16b + aesmc v31.16b,v31.16b + aese v8.16b,v3.16b + aesmc v8.16b,v8.16b + aese v9.16b,v3.16b + aesmc v9.16b,v9.16b + aese v10.16b,v3.16b + aesmc v10.16b,v10.16b + aese v11.16b,v3.16b + aesmc v11.16b,v11.16b + ld1 {v3.4s},[x7],#16 + + aese v24.16b,v2.16b + aesmc v24.16b,v24.16b + add w9,w8,#1 + add w10,w8,#2 + aese v25.16b,v2.16b + aesmc v25.16b,v25.16b + add w12,w8,#3 + add w11,w8,#4 + aese v26.16b,v2.16b + aesmc v26.16b,v26.16b + add w13,w8,#5 + add w14,w8,#6 + rev w9,w9 + aese v27.16b,v2.16b + aesmc v27.16b,v27.16b + add w15,w8,#7 + add w19,w8,#8 + rev w10,w10 + rev w12,w12 + aese v28.16b,v2.16b + aesmc v28.16b,v28.16b + add w20,w8,#9 + add w21,w8,#10 + rev w11,w11 + rev w13,w13 + aese v29.16b,v2.16b + aesmc v29.16b,v29.16b + add w22,w8,#11 + add w23,w8,#12 + rev w14,w14 + rev w15,w15 + aese v30.16b,v2.16b + aesmc v30.16b,v30.16b + rev w19,w19 + rev w20,w20 + aese v31.16b,v2.16b + aesmc v31.16b,v31.16b + rev w21,w21 + rev w22,w22 + aese v8.16b,v2.16b + aesmc v8.16b,v8.16b + rev w23,w23 + aese v9.16b,v2.16b + aesmc v9.16b,v9.16b + aese v10.16b,v2.16b + aesmc v10.16b,v10.16b + aese v11.16b,v2.16b + aesmc v11.16b,v11.16b + ld1 {v2.4s},[x7],#16 + + aese v24.16b,v3.16b + aesmc v24.16b,v24.16b + aese v25.16b,v3.16b + aesmc v25.16b,v25.16b + aese v26.16b,v3.16b + aesmc v26.16b,v26.16b + aese v27.16b,v3.16b + aesmc v27.16b,v27.16b + ld1 {v4.16b,v5.16b,v6.16b,v7.16b},[x0],#64 + aese v28.16b,v3.16b + aesmc v28.16b,v28.16b + aese v29.16b,v3.16b + aesmc v29.16b,v29.16b + aese v30.16b,v3.16b + aesmc v30.16b,v30.16b + aese v31.16b,v3.16b + aesmc v31.16b,v31.16b + ld1 {v16.16b,v17.16b,v18.16b,v19.16b},[x0],#64 + aese v8.16b,v3.16b + aesmc v8.16b,v8.16b + aese v9.16b,v3.16b + aesmc v9.16b,v9.16b + aese v10.16b,v3.16b + aesmc v10.16b,v10.16b + aese v11.16b,v3.16b + aesmc v11.16b,v11.16b + ld1 {v20.16b,v21.16b,v22.16b,v23.16b},[x0],#64 + ld1 {v3.4s},[x7],#16 + + mov x7, x3 + aese v24.16b,v2.16b + aesmc v24.16b,v24.16b + aese v25.16b,v2.16b + aesmc v25.16b,v25.16b + aese v26.16b,v2.16b + aesmc v26.16b,v26.16b + aese v27.16b,v2.16b + aesmc v27.16b,v27.16b + aese v28.16b,v2.16b + aesmc v28.16b,v28.16b + aese v29.16b,v2.16b + aesmc v29.16b,v29.16b + aese v30.16b,v2.16b + aesmc v30.16b,v30.16b + aese v31.16b,v2.16b + aesmc v31.16b,v31.16b + aese v8.16b,v2.16b + aesmc v8.16b,v8.16b + aese v9.16b,v2.16b + aesmc v9.16b,v9.16b + aese v10.16b,v2.16b + aesmc v10.16b,v10.16b + aese v11.16b,v2.16b + aesmc v11.16b,v11.16b + ld1 {v2.4s},[x7],#16 // re-pre-load rndkey[0] + + aese v24.16b,v3.16b +.inst 0xce016084 //eor3 v4.16b,v4.16b,v1.16b,v24.16b + orr v24.16b,v0.16b,v0.16b + aese v25.16b,v3.16b +.inst 0xce0164a5 //eor3 v5.16b,v5.16b,v1.16b,v25.16b + orr v25.16b,v0.16b,v0.16b + aese v26.16b,v3.16b +.inst 0xce0168c6 //eor3 v6.16b,v6.16b,v1.16b,v26.16b + orr v26.16b,v0.16b,v0.16b + aese v27.16b,v3.16b +.inst 0xce016ce7 //eor3 v7.16b,v7.16b,v1.16b,v27.16b + orr v27.16b,v0.16b,v0.16b + aese v28.16b,v3.16b +.inst 0xce017210 //eor3 v16.16b,v16.16b,v1.16b,v28.16b + orr v28.16b,v0.16b,v0.16b + aese v29.16b,v3.16b +.inst 0xce017631 //eor3 v17.16b,v17.16b,v1.16b,v29.16b + orr v29.16b,v0.16b,v0.16b + aese v30.16b,v3.16b +.inst 0xce017a52 //eor3 v18.16b,v18.16b,v1.16b,v30.16b + orr v30.16b,v0.16b,v0.16b + aese v31.16b,v3.16b +.inst 0xce017e73 //eor3 v19.16b,v19.16b,v1.16b,v31.16b + orr v31.16b,v0.16b,v0.16b + aese v8.16b,v3.16b +.inst 0xce012294 //eor3 v20.16b,v20.16b,v1.16b,v8.16b + orr v8.16b,v0.16b,v0.16b + aese v9.16b,v3.16b +.inst 0xce0126b5 //eor3 v21.16b,v21.16b,v1.16b,v9.16b + orr v9.16b,v0.16b,v0.16b + aese v10.16b,v3.16b +.inst 0xce012ad6 //eor3 v22.16b,v22.16b,v1.16b,v10.16b + orr v10.16b,v0.16b,v0.16b + aese v11.16b,v3.16b +.inst 0xce012ef7 //eor3 v23.16b,v23.16b,v1.16b,v11.16b + orr v11.16b,v0.16b,v0.16b + ld1 {v3.4s},[x7],#16 // re-pre-load rndkey[1] + + mov v24.s[3],w9 + mov v25.s[3],w10 + mov v26.s[3],w12 + mov v27.s[3],w11 + st1 {v4.16b,v5.16b,v6.16b,v7.16b},[x1],#64 + mov v28.s[3],w13 + mov v29.s[3],w14 + mov v30.s[3],w15 + mov v31.s[3],w19 + st1 {v16.16b,v17.16b,v18.16b,v19.16b},[x1],#64 + mov v8.s[3],w20 + mov v9.s[3],w21 + mov v10.s[3],w22 + mov v11.s[3],w23 + st1 {v20.16b,v21.16b,v22.16b,v23.16b},[x1],#64 + + mov w6,w5 + + add w8,w8,#12 + subs x2,x2,#12 + b.hs .Loop12x_ctr32_unroll + + // pop regs from stack when 12 data chunks are interleaved + ldp d10,d11,[sp],#32 + ldp d8,d9,[sp],#32 + ldp x23,x24,[sp],#16 + ldp x21,x22,[sp],#16 + ldp x19,x20,[sp],#16 + + add x2,x2,#12 + cbz x2,.Lctr32_done_unroll + sub w8,w8,#12 + + cmp x2,#2 + b.ls .Lctr32_tail_unroll + + cmp x2,#6 + sub x2,x2,#3 // bias + add w8,w8,#3 + b.lo .Loop3x_ctr32_unroll + + sub x2,x2,#3 + add w8,w8,#3 + b.lo .Loop6x_ctr32_unroll + +.align 4 +.Loop6x_ctr32_unroll: + aese v24.16b,v2.16b + aesmc v24.16b,v24.16b + aese v25.16b,v2.16b + aesmc v25.16b,v25.16b + aese v26.16b,v2.16b + aesmc v26.16b,v26.16b + aese v27.16b,v2.16b + aesmc v27.16b,v27.16b + aese v28.16b,v2.16b + aesmc v28.16b,v28.16b + aese v29.16b,v2.16b + aesmc v29.16b,v29.16b + ld1 {v2.4s},[x7],#16 + subs w6,w6,#2 + aese v24.16b,v3.16b + aesmc v24.16b,v24.16b + aese v25.16b,v3.16b + aesmc v25.16b,v25.16b + aese v26.16b,v3.16b + aesmc v26.16b,v26.16b + aese v27.16b,v3.16b + aesmc v27.16b,v27.16b + aese v28.16b,v3.16b + aesmc v28.16b,v28.16b + aese v29.16b,v3.16b + aesmc v29.16b,v29.16b + ld1 {v3.4s},[x7],#16 + b.gt .Loop6x_ctr32_unroll + + aese v24.16b,v2.16b + aesmc v24.16b,v24.16b + aese v25.16b,v2.16b + aesmc v25.16b,v25.16b + aese v26.16b,v2.16b + aesmc v26.16b,v26.16b + aese v27.16b,v2.16b + aesmc v27.16b,v27.16b + aese v28.16b,v2.16b + aesmc v28.16b,v28.16b + aese v29.16b,v2.16b + aesmc v29.16b,v29.16b + ld1 {v2.4s},[x7],#16 + + aese v24.16b,v3.16b + aesmc v24.16b,v24.16b + aese v25.16b,v3.16b + aesmc v25.16b,v25.16b + aese v26.16b,v3.16b + aesmc v26.16b,v26.16b + aese v27.16b,v3.16b + aesmc v27.16b,v27.16b + aese v28.16b,v3.16b + aesmc v28.16b,v28.16b + aese v29.16b,v3.16b + aesmc v29.16b,v29.16b + ld1 {v3.4s},[x7],#16 + + aese v24.16b,v2.16b + aesmc v24.16b,v24.16b + add w9,w8,#1 + add w10,w8,#2 + aese v25.16b,v2.16b + aesmc v25.16b,v25.16b + add w12,w8,#3 + add w11,w8,#4 + aese v26.16b,v2.16b + aesmc v26.16b,v26.16b + add w13,w8,#5 + add w14,w8,#6 + rev w9,w9 + aese v27.16b,v2.16b + aesmc v27.16b,v27.16b + rev w10,w10 + rev w12,w12 + aese v28.16b,v2.16b + aesmc v28.16b,v28.16b + rev w11,w11 + rev w13,w13 + aese v29.16b,v2.16b + aesmc v29.16b,v29.16b + rev w14,w14 + ld1 {v2.4s},[x7],#16 + + aese v24.16b,v3.16b + aesmc v24.16b,v24.16b + aese v25.16b,v3.16b + aesmc v25.16b,v25.16b + ld1 {v4.16b,v5.16b,v6.16b,v7.16b},[x0],#64 + aese v26.16b,v3.16b + aesmc v26.16b,v26.16b + aese v27.16b,v3.16b + aesmc v27.16b,v27.16b + ld1 {v16.16b,v17.16b},[x0],#32 + aese v28.16b,v3.16b + aesmc v28.16b,v28.16b + aese v29.16b,v3.16b + aesmc v29.16b,v29.16b + ld1 {v3.4s},[x7],#16 + + mov x7, x3 + aese v24.16b,v2.16b + aesmc v24.16b,v24.16b + aese v25.16b,v2.16b + aesmc v25.16b,v25.16b + aese v26.16b,v2.16b + aesmc v26.16b,v26.16b + aese v27.16b,v2.16b + aesmc v27.16b,v27.16b + aese v28.16b,v2.16b + aesmc v28.16b,v28.16b + aese v29.16b,v2.16b + aesmc v29.16b,v29.16b + ld1 {v2.4s},[x7],#16 // re-pre-load rndkey[0] + + aese v24.16b,v3.16b +.inst 0xce016084 //eor3 v4.16b,v4.16b,v1.16b,v24.16b + aese v25.16b,v3.16b +.inst 0xce0164a5 //eor3 v5.16b,v5.16b,v1.16b,v25.16b + aese v26.16b,v3.16b +.inst 0xce0168c6 //eor3 v6.16b,v6.16b,v1.16b,v26.16b + aese v27.16b,v3.16b +.inst 0xce016ce7 //eor3 v7.16b,v7.16b,v1.16b,v27.16b + aese v28.16b,v3.16b +.inst 0xce017210 //eor3 v16.16b,v16.16b,v1.16b,v28.16b + aese v29.16b,v3.16b +.inst 0xce017631 //eor3 v17.16b,v17.16b,v1.16b,v29.16b + ld1 {v3.4s},[x7],#16 // re-pre-load rndkey[1] + + orr v24.16b,v0.16b,v0.16b + orr v25.16b,v0.16b,v0.16b + orr v26.16b,v0.16b,v0.16b + orr v27.16b,v0.16b,v0.16b + orr v28.16b,v0.16b,v0.16b + orr v29.16b,v0.16b,v0.16b + + mov v24.s[3],w9 + mov v25.s[3],w10 + st1 {v4.16b,v5.16b,v6.16b,v7.16b},[x1],#64 + mov v26.s[3],w12 + mov v27.s[3],w11 + st1 {v16.16b,v17.16b},[x1],#32 + mov v28.s[3],w13 + mov v29.s[3],w14 + + cbz x2,.Lctr32_done_unroll + mov w6,w5 + + cmp x2,#2 + b.ls .Lctr32_tail_unroll + + sub x2,x2,#3 // bias + add w8,w8,#3 + b .Loop3x_ctr32_unroll + +.align 4 +.Loop3x_ctr32_unroll: + aese v24.16b,v2.16b + aesmc v24.16b,v24.16b + aese v25.16b,v2.16b + aesmc v25.16b,v25.16b + aese v26.16b,v2.16b + aesmc v26.16b,v26.16b + ld1 {v2.4s},[x7],#16 + subs w6,w6,#2 + aese v24.16b,v3.16b + aesmc v24.16b,v24.16b + aese v25.16b,v3.16b + aesmc v25.16b,v25.16b + aese v26.16b,v3.16b + aesmc v26.16b,v26.16b + ld1 {v3.4s},[x7],#16 + b.gt .Loop3x_ctr32_unroll + + aese v24.16b,v2.16b + aesmc v9.16b,v24.16b + aese v25.16b,v2.16b + aesmc v10.16b,v25.16b + ld1 {v4.16b,v5.16b,v6.16b},[x0],#48 + orr v24.16b,v0.16b,v0.16b + aese v26.16b,v2.16b + aesmc v26.16b,v26.16b + ld1 {v2.4s},[x7],#16 + orr v25.16b,v0.16b,v0.16b + aese v9.16b,v3.16b + aesmc v9.16b,v9.16b + aese v10.16b,v3.16b + aesmc v10.16b,v10.16b + aese v26.16b,v3.16b + aesmc v11.16b,v26.16b + ld1 {v3.4s},[x7],#16 + orr v26.16b,v0.16b,v0.16b + add w9,w8,#1 + aese v9.16b,v2.16b + aesmc v9.16b,v9.16b + aese v10.16b,v2.16b + aesmc v10.16b,v10.16b + add w10,w8,#2 + aese v11.16b,v2.16b + aesmc v11.16b,v11.16b + ld1 {v2.4s},[x7],#16 + add w8,w8,#3 + aese v9.16b,v3.16b + aesmc v9.16b,v9.16b + aese v10.16b,v3.16b + aesmc v10.16b,v10.16b + + rev w9,w9 + aese v11.16b,v3.16b + aesmc v11.16b,v11.16b + ld1 {v3.4s},[x7],#16 + mov v24.s[3], w9 + mov x7,x3 + rev w10,w10 + aese v9.16b,v2.16b + aesmc v9.16b,v9.16b + + aese v10.16b,v2.16b + aesmc v10.16b,v10.16b + mov v25.s[3], w10 + rev w12,w8 + aese v11.16b,v2.16b + aesmc v11.16b,v11.16b + mov v26.s[3], w12 + + aese v9.16b,v3.16b + aese v10.16b,v3.16b + aese v11.16b,v3.16b + +.inst 0xce012484 //eor3 v4.16b,v4.16b,v1.16b,v9.16b + ld1 {v2.4s},[x7],#16 // re-pre-load rndkey[0] +.inst 0xce0128a5 //eor3 v5.16b,v5.16b,v1.16b,v10.16b + mov w6,w5 +.inst 0xce012cc6 //eor3 v6.16b,v6.16b,v1.16b,v11.16b + ld1 {v3.4s},[x7],#16 // re-pre-load rndkey[1] + st1 {v4.16b,v5.16b,v6.16b},[x1],#48 + + cbz x2,.Lctr32_done_unroll + +.Lctr32_tail_unroll: + cmp x2,#1 + b.eq .Lctr32_tail_1_unroll + +.Lctr32_tail_2_unroll: + aese v24.16b,v2.16b + aesmc v24.16b,v24.16b + aese v25.16b,v2.16b + aesmc v25.16b,v25.16b + ld1 {v2.4s},[x7],#16 + subs w6,w6,#2 + aese v24.16b,v3.16b + aesmc v24.16b,v24.16b + aese v25.16b,v3.16b + aesmc v25.16b,v25.16b + ld1 {v3.4s},[x7],#16 + b.gt .Lctr32_tail_2_unroll + + aese v24.16b,v2.16b + aesmc v24.16b,v24.16b + aese v25.16b,v2.16b + aesmc v25.16b,v25.16b + ld1 {v2.4s},[x7],#16 + aese v24.16b,v3.16b + aesmc v24.16b,v24.16b + aese v25.16b,v3.16b + aesmc v25.16b,v25.16b + ld1 {v3.4s},[x7],#16 + ld1 {v4.16b,v5.16b},[x0],#32 + aese v24.16b,v2.16b + aesmc v24.16b,v24.16b + aese v25.16b,v2.16b + aesmc v25.16b,v25.16b + ld1 {v2.4s},[x7],#16 + aese v24.16b,v3.16b + aesmc v24.16b,v24.16b + aese v25.16b,v3.16b + aesmc v25.16b,v25.16b + ld1 {v3.4s},[x7],#16 + aese v24.16b,v2.16b + aesmc v24.16b,v24.16b + aese v25.16b,v2.16b + aesmc v25.16b,v25.16b + aese v24.16b,v3.16b + aese v25.16b,v3.16b + +.inst 0xce016084 //eor3 v4.16b,v4.16b,v1.16b,v24.16b +.inst 0xce0164a5 //eor3 v5.16b,v5.16b,v1.16b,v25.16b + st1 {v4.16b,v5.16b},[x1],#32 + b .Lctr32_done_unroll + +.Lctr32_tail_1_unroll: + aese v24.16b,v2.16b + aesmc v24.16b,v24.16b + ld1 {v2.4s},[x7],#16 + subs w6,w6,#2 + aese v24.16b,v3.16b + aesmc v24.16b,v24.16b + ld1 {v3.4s},[x7],#16 + b.gt .Lctr32_tail_1_unroll + + aese v24.16b,v2.16b + aesmc v24.16b,v24.16b + ld1 {v2.4s},[x7],#16 + aese v24.16b,v3.16b + aesmc v24.16b,v24.16b + ld1 {v3.4s},[x7],#16 + ld1 {v4.16b},[x0] + aese v24.16b,v2.16b + aesmc v24.16b,v24.16b + ld1 {v2.4s},[x7],#16 + aese v24.16b,v3.16b + aesmc v24.16b,v24.16b + ld1 {v3.4s},[x7],#16 + aese v24.16b,v2.16b + aesmc v24.16b,v24.16b + aese v24.16b,v3.16b + +.inst 0xce016084 //eor3 v4.16b,v4.16b,v1.16b,v24.16b + st1 {v4.16b},[x1],#16 + +.Lctr32_done_unroll: + ldp d8,d9,[sp, #16] + ldp d10,d11,[sp, #32] + ldp d12,d13,[sp, #48] + ldp d14,d15,[sp, #64] + ldr x29,[sp],#80 + ret +.size aes_v8_ctr32_encrypt_blocks_unroll12_eor3,.-aes_v8_ctr32_encrypt_blocks_unroll12_eor3 .globl aes_v8_ctr32_encrypt_blocks .type aes_v8_ctr32_encrypt_blocks,%function .align 5 aes_v8_ctr32_encrypt_blocks: + AARCH64_VALID_CALL_TARGET + // Armv8.3-A PAuth: even though x30 is pushed to stack it is not popped later. stp x29,x30,[sp,#-16]! add x29,sp,#0 ldr w5,[x3,#240] @@ -1854,6 +2588,7 @@ aes_v8_ctr32_encrypt_blocks: .type aes_v8_xts_encrypt,%function .align 5 aes_v8_xts_encrypt: + AARCH64_VALID_CALL_TARGET cmp x2,#16 // Original input data size bigger than 16, jump to big size processing. b.ne .Lxts_enc_big_size @@ -2495,6 +3230,7 @@ aes_v8_xts_encrypt: .type aes_v8_xts_decrypt,%function .align 5 aes_v8_xts_decrypt: + AARCH64_VALID_CALL_TARGET cmp x2,#16 // Original input data size bigger than 16, jump to big size processing. b.ne .Lxts_dec_big_size @@ -3104,7 +3840,7 @@ aes_v8_xts_decrypt: cbnz x2,.Lxts_dec_1st_done ld1 {v0.16b},[x0],#16 - // Decrypt the last secod block to get the last plain text block + // Decrypt the last second block to get the last plain text block .Lxts_dec_1st_done: eor v26.16b,v0.16b,v8.16b ldr w6,[x3,#240] diff --git a/deps/openssl/config/archs/linux-aarch64/asm_avx2/crypto/aes/bsaes-armv8.S b/deps/openssl/config/archs/linux-aarch64/asm_avx2/crypto/aes/bsaes-armv8.S new file mode 100644 index 00000000000000..536cbdce04635a --- /dev/null +++ b/deps/openssl/config/archs/linux-aarch64/asm_avx2/crypto/aes/bsaes-armv8.S @@ -0,0 +1,2355 @@ +// Copyright 2021-2025 The OpenSSL Project Authors. All Rights Reserved. +// +// Licensed under the OpenSSL license (the "License"). You may not use +// this file except in compliance with the License. You can obtain a copy +// in the file LICENSE in the source distribution or at +// https://www.openssl.org/source/license.html +// +// ==================================================================== +// Written by Ben Avison for the OpenSSL +// project. Rights for redistribution and usage in source and binary +// forms are granted according to the OpenSSL license. +// ==================================================================== +// +// This implementation is a translation of bsaes-armv7 for AArch64. +// No attempt has been made to carry across the build switches for +// kernel targets, since the Linux kernel crypto support has moved on +// from when it was based on OpenSSL. + +// A lot of hand-scheduling has been performed. Consequently, this code +// doesn't factor out neatly into macros in the same way that the +// AArch32 version did, and there is little to be gained by wrapping it +// up in Perl, and it is presented as pure assembly. + + +#include "crypto/arm_arch.h" + +.text + + + + + +.type _bsaes_decrypt8,%function +.align 4 +// On entry: +// x9 -> key (previously expanded using _bsaes_key_convert) +// x10 = number of rounds +// v0-v7 input data +// On exit: +// x9-x11 corrupted +// other general-purpose registers preserved +// v0-v7 output data +// v11-v15 preserved +// other SIMD registers corrupted +_bsaes_decrypt8: + ldr q8, [x9], #16 + adrp x11, .LM0ISR + add x11, x11, #:lo12:.LM0ISR + movi v9.16b, #0x55 + ldr q10, [x11], #16 + movi v16.16b, #0x33 + movi v17.16b, #0x0f + sub x10, x10, #1 + eor v0.16b, v0.16b, v8.16b + eor v1.16b, v1.16b, v8.16b + eor v2.16b, v2.16b, v8.16b + eor v4.16b, v4.16b, v8.16b + eor v3.16b, v3.16b, v8.16b + eor v5.16b, v5.16b, v8.16b + tbl v0.16b, {v0.16b}, v10.16b + tbl v1.16b, {v1.16b}, v10.16b + tbl v2.16b, {v2.16b}, v10.16b + tbl v4.16b, {v4.16b}, v10.16b + eor v6.16b, v6.16b, v8.16b + eor v7.16b, v7.16b, v8.16b + tbl v3.16b, {v3.16b}, v10.16b + tbl v5.16b, {v5.16b}, v10.16b + tbl v6.16b, {v6.16b}, v10.16b + ushr v8.2d, v0.2d, #1 + tbl v7.16b, {v7.16b}, v10.16b + ushr v10.2d, v4.2d, #1 + ushr v18.2d, v2.2d, #1 + eor v8.16b, v8.16b, v1.16b + ushr v19.2d, v6.2d, #1 + eor v10.16b, v10.16b, v5.16b + eor v18.16b, v18.16b, v3.16b + and v8.16b, v8.16b, v9.16b + eor v19.16b, v19.16b, v7.16b + and v10.16b, v10.16b, v9.16b + and v18.16b, v18.16b, v9.16b + eor v1.16b, v1.16b, v8.16b + shl v8.2d, v8.2d, #1 + and v9.16b, v19.16b, v9.16b + eor v5.16b, v5.16b, v10.16b + shl v10.2d, v10.2d, #1 + eor v3.16b, v3.16b, v18.16b + shl v18.2d, v18.2d, #1 + eor v0.16b, v0.16b, v8.16b + shl v8.2d, v9.2d, #1 + eor v7.16b, v7.16b, v9.16b + eor v4.16b, v4.16b, v10.16b + eor v2.16b, v2.16b, v18.16b + ushr v9.2d, v1.2d, #2 + eor v6.16b, v6.16b, v8.16b + ushr v8.2d, v0.2d, #2 + ushr v10.2d, v5.2d, #2 + ushr v18.2d, v4.2d, #2 + eor v9.16b, v9.16b, v3.16b + eor v8.16b, v8.16b, v2.16b + eor v10.16b, v10.16b, v7.16b + eor v18.16b, v18.16b, v6.16b + and v9.16b, v9.16b, v16.16b + and v8.16b, v8.16b, v16.16b + and v10.16b, v10.16b, v16.16b + and v16.16b, v18.16b, v16.16b + eor v3.16b, v3.16b, v9.16b + shl v9.2d, v9.2d, #2 + eor v2.16b, v2.16b, v8.16b + shl v8.2d, v8.2d, #2 + eor v7.16b, v7.16b, v10.16b + shl v10.2d, v10.2d, #2 + eor v6.16b, v6.16b, v16.16b + shl v16.2d, v16.2d, #2 + eor v1.16b, v1.16b, v9.16b + eor v0.16b, v0.16b, v8.16b + eor v5.16b, v5.16b, v10.16b + eor v4.16b, v4.16b, v16.16b + ushr v8.2d, v3.2d, #4 + ushr v9.2d, v2.2d, #4 + ushr v10.2d, v1.2d, #4 + ushr v16.2d, v0.2d, #4 + eor v8.16b, v8.16b, v7.16b + eor v9.16b, v9.16b, v6.16b + eor v10.16b, v10.16b, v5.16b + eor v16.16b, v16.16b, v4.16b + and v8.16b, v8.16b, v17.16b + and v9.16b, v9.16b, v17.16b + and v10.16b, v10.16b, v17.16b + and v16.16b, v16.16b, v17.16b + eor v7.16b, v7.16b, v8.16b + shl v8.2d, v8.2d, #4 + eor v6.16b, v6.16b, v9.16b + shl v9.2d, v9.2d, #4 + eor v5.16b, v5.16b, v10.16b + shl v10.2d, v10.2d, #4 + eor v4.16b, v4.16b, v16.16b + shl v16.2d, v16.2d, #4 + eor v3.16b, v3.16b, v8.16b + eor v2.16b, v2.16b, v9.16b + eor v1.16b, v1.16b, v10.16b + eor v0.16b, v0.16b, v16.16b + b .Ldec_sbox +.align 4 +.Ldec_loop: + ld1 {v16.16b, v17.16b, v18.16b, v19.16b}, [x9], #64 + ldp q8, q9, [x9], #32 + eor v0.16b, v16.16b, v0.16b + ldr q10, [x9], #16 + eor v1.16b, v17.16b, v1.16b + ldr q16, [x9], #16 + eor v2.16b, v18.16b, v2.16b + eor v3.16b, v19.16b, v3.16b + eor v4.16b, v8.16b, v4.16b + eor v5.16b, v9.16b, v5.16b + eor v6.16b, v10.16b, v6.16b + eor v7.16b, v16.16b, v7.16b + tbl v0.16b, {v0.16b}, v28.16b + tbl v1.16b, {v1.16b}, v28.16b + tbl v2.16b, {v2.16b}, v28.16b + tbl v3.16b, {v3.16b}, v28.16b + tbl v4.16b, {v4.16b}, v28.16b + tbl v5.16b, {v5.16b}, v28.16b + tbl v6.16b, {v6.16b}, v28.16b + tbl v7.16b, {v7.16b}, v28.16b +.Ldec_sbox: + eor v1.16b, v1.16b, v4.16b + eor v3.16b, v3.16b, v4.16b + subs x10, x10, #1 + eor v4.16b, v4.16b, v7.16b + eor v2.16b, v2.16b, v7.16b + eor v1.16b, v1.16b, v6.16b + eor v6.16b, v6.16b, v4.16b + eor v2.16b, v2.16b, v5.16b + eor v0.16b, v0.16b, v1.16b + eor v7.16b, v7.16b, v6.16b + eor v8.16b, v6.16b, v2.16b + and v9.16b, v4.16b, v6.16b + eor v10.16b, v2.16b, v6.16b + eor v3.16b, v3.16b, v0.16b + eor v5.16b, v5.16b, v0.16b + eor v16.16b, v7.16b, v4.16b + eor v17.16b, v4.16b, v0.16b + and v18.16b, v0.16b, v2.16b + eor v19.16b, v7.16b, v4.16b + eor v1.16b, v1.16b, v3.16b + eor v20.16b, v3.16b, v0.16b + eor v21.16b, v5.16b, v2.16b + eor v22.16b, v3.16b, v7.16b + and v8.16b, v17.16b, v8.16b + orr v17.16b, v3.16b, v5.16b + eor v23.16b, v1.16b, v6.16b + eor v24.16b, v20.16b, v16.16b + eor v25.16b, v1.16b, v5.16b + orr v26.16b, v20.16b, v21.16b + and v20.16b, v20.16b, v21.16b + and v27.16b, v7.16b, v1.16b + eor v21.16b, v21.16b, v23.16b + orr v28.16b, v16.16b, v23.16b + orr v29.16b, v22.16b, v25.16b + eor v26.16b, v26.16b, v8.16b + and v16.16b, v16.16b, v23.16b + and v22.16b, v22.16b, v25.16b + and v21.16b, v24.16b, v21.16b + eor v8.16b, v28.16b, v8.16b + eor v23.16b, v5.16b, v2.16b + eor v24.16b, v1.16b, v6.16b + eor v16.16b, v16.16b, v22.16b + eor v22.16b, v3.16b, v0.16b + eor v25.16b, v29.16b, v21.16b + eor v21.16b, v26.16b, v21.16b + eor v8.16b, v8.16b, v20.16b + eor v26.16b, v23.16b, v24.16b + eor v16.16b, v16.16b, v20.16b + eor v28.16b, v22.16b, v19.16b + eor v20.16b, v25.16b, v20.16b + eor v9.16b, v21.16b, v9.16b + eor v8.16b, v8.16b, v18.16b + eor v18.16b, v5.16b, v1.16b + eor v21.16b, v16.16b, v17.16b + eor v16.16b, v16.16b, v17.16b + eor v17.16b, v20.16b, v27.16b + eor v20.16b, v3.16b, v7.16b + eor v25.16b, v9.16b, v8.16b + eor v27.16b, v0.16b, v4.16b + and v29.16b, v9.16b, v17.16b + eor v30.16b, v8.16b, v29.16b + eor v31.16b, v21.16b, v29.16b + eor v29.16b, v21.16b, v29.16b + bsl v30.16b, v17.16b, v21.16b + bsl v31.16b, v9.16b, v8.16b + bsl v16.16b, v30.16b, v29.16b + bsl v21.16b, v29.16b, v30.16b + eor v8.16b, v31.16b, v30.16b + and v1.16b, v1.16b, v31.16b + and v9.16b, v16.16b, v31.16b + and v6.16b, v6.16b, v30.16b + eor v16.16b, v17.16b, v21.16b + and v4.16b, v4.16b, v30.16b + eor v17.16b, v8.16b, v30.16b + and v21.16b, v24.16b, v8.16b + eor v9.16b, v9.16b, v25.16b + and v19.16b, v19.16b, v8.16b + eor v24.16b, v30.16b, v16.16b + eor v25.16b, v30.16b, v16.16b + and v7.16b, v7.16b, v17.16b + and v10.16b, v10.16b, v16.16b + eor v29.16b, v9.16b, v16.16b + eor v30.16b, v31.16b, v9.16b + and v0.16b, v24.16b, v0.16b + and v9.16b, v18.16b, v9.16b + and v2.16b, v25.16b, v2.16b + eor v10.16b, v10.16b, v6.16b + eor v18.16b, v29.16b, v16.16b + and v5.16b, v30.16b, v5.16b + eor v24.16b, v8.16b, v29.16b + and v25.16b, v26.16b, v29.16b + and v26.16b, v28.16b, v29.16b + eor v8.16b, v8.16b, v29.16b + eor v17.16b, v17.16b, v18.16b + eor v5.16b, v1.16b, v5.16b + and v23.16b, v24.16b, v23.16b + eor v21.16b, v21.16b, v25.16b + eor v19.16b, v19.16b, v26.16b + eor v0.16b, v4.16b, v0.16b + and v3.16b, v17.16b, v3.16b + eor v1.16b, v9.16b, v1.16b + eor v9.16b, v25.16b, v23.16b + eor v5.16b, v5.16b, v21.16b + eor v2.16b, v6.16b, v2.16b + and v6.16b, v8.16b, v22.16b + eor v3.16b, v7.16b, v3.16b + and v8.16b, v20.16b, v18.16b + eor v10.16b, v10.16b, v9.16b + eor v0.16b, v0.16b, v19.16b + eor v9.16b, v1.16b, v9.16b + eor v1.16b, v2.16b, v21.16b + eor v3.16b, v3.16b, v19.16b + and v16.16b, v27.16b, v16.16b + eor v17.16b, v26.16b, v6.16b + eor v6.16b, v8.16b, v7.16b + eor v7.16b, v1.16b, v9.16b + eor v1.16b, v5.16b, v3.16b + eor v2.16b, v10.16b, v3.16b + eor v4.16b, v16.16b, v4.16b + eor v8.16b, v6.16b, v17.16b + eor v5.16b, v9.16b, v3.16b + eor v9.16b, v0.16b, v1.16b + eor v6.16b, v7.16b, v1.16b + eor v0.16b, v4.16b, v17.16b + eor v4.16b, v8.16b, v7.16b + eor v7.16b, v9.16b, v2.16b + eor v8.16b, v3.16b, v0.16b + eor v7.16b, v7.16b, v5.16b + eor v3.16b, v4.16b, v7.16b + eor v4.16b, v7.16b, v0.16b + eor v7.16b, v8.16b, v3.16b + bcc .Ldec_done + ext v8.16b, v0.16b, v0.16b, #8 + ext v9.16b, v1.16b, v1.16b, #8 + ldr q28, [x11] // load from .LISR in common case (x10 > 0) + ext v10.16b, v6.16b, v6.16b, #8 + ext v16.16b, v3.16b, v3.16b, #8 + ext v17.16b, v5.16b, v5.16b, #8 + ext v18.16b, v4.16b, v4.16b, #8 + eor v8.16b, v8.16b, v0.16b + eor v9.16b, v9.16b, v1.16b + eor v10.16b, v10.16b, v6.16b + eor v16.16b, v16.16b, v3.16b + eor v17.16b, v17.16b, v5.16b + ext v19.16b, v2.16b, v2.16b, #8 + ext v20.16b, v7.16b, v7.16b, #8 + eor v18.16b, v18.16b, v4.16b + eor v6.16b, v6.16b, v8.16b + eor v8.16b, v2.16b, v10.16b + eor v4.16b, v4.16b, v9.16b + eor v2.16b, v19.16b, v2.16b + eor v9.16b, v20.16b, v7.16b + eor v0.16b, v0.16b, v16.16b + eor v1.16b, v1.16b, v16.16b + eor v6.16b, v6.16b, v17.16b + eor v8.16b, v8.16b, v16.16b + eor v7.16b, v7.16b, v18.16b + eor v4.16b, v4.16b, v16.16b + eor v2.16b, v3.16b, v2.16b + eor v1.16b, v1.16b, v17.16b + eor v3.16b, v5.16b, v9.16b + eor v5.16b, v8.16b, v17.16b + eor v7.16b, v7.16b, v17.16b + ext v8.16b, v0.16b, v0.16b, #12 + ext v9.16b, v6.16b, v6.16b, #12 + ext v10.16b, v4.16b, v4.16b, #12 + ext v16.16b, v1.16b, v1.16b, #12 + ext v17.16b, v5.16b, v5.16b, #12 + ext v18.16b, v7.16b, v7.16b, #12 + eor v0.16b, v0.16b, v8.16b + eor v6.16b, v6.16b, v9.16b + eor v4.16b, v4.16b, v10.16b + ext v19.16b, v2.16b, v2.16b, #12 + ext v20.16b, v3.16b, v3.16b, #12 + eor v1.16b, v1.16b, v16.16b + eor v5.16b, v5.16b, v17.16b + eor v7.16b, v7.16b, v18.16b + eor v2.16b, v2.16b, v19.16b + eor v16.16b, v16.16b, v0.16b + eor v3.16b, v3.16b, v20.16b + eor v17.16b, v17.16b, v4.16b + eor v10.16b, v10.16b, v6.16b + ext v0.16b, v0.16b, v0.16b, #8 + eor v9.16b, v9.16b, v1.16b + ext v1.16b, v1.16b, v1.16b, #8 + eor v8.16b, v8.16b, v3.16b + eor v16.16b, v16.16b, v3.16b + eor v18.16b, v18.16b, v5.16b + eor v19.16b, v19.16b, v7.16b + ext v21.16b, v5.16b, v5.16b, #8 + ext v5.16b, v7.16b, v7.16b, #8 + eor v7.16b, v20.16b, v2.16b + ext v4.16b, v4.16b, v4.16b, #8 + ext v20.16b, v3.16b, v3.16b, #8 + eor v17.16b, v17.16b, v3.16b + ext v2.16b, v2.16b, v2.16b, #8 + eor v3.16b, v10.16b, v3.16b + ext v10.16b, v6.16b, v6.16b, #8 + eor v0.16b, v0.16b, v8.16b + eor v1.16b, v1.16b, v16.16b + eor v5.16b, v5.16b, v18.16b + eor v3.16b, v3.16b, v4.16b + eor v7.16b, v20.16b, v7.16b + eor v6.16b, v2.16b, v19.16b + eor v4.16b, v21.16b, v17.16b + eor v2.16b, v10.16b, v9.16b + bne .Ldec_loop + ldr q28, [x11, #16]! // load from .LISRM0 on last round (x10 == 0) + b .Ldec_loop +.align 4 +.Ldec_done: + ushr v8.2d, v0.2d, #1 + movi v9.16b, #0x55 + ldr q10, [x9] + ushr v16.2d, v2.2d, #1 + movi v17.16b, #0x33 + ushr v18.2d, v6.2d, #1 + movi v19.16b, #0x0f + eor v8.16b, v8.16b, v1.16b + ushr v20.2d, v3.2d, #1 + eor v16.16b, v16.16b, v7.16b + eor v18.16b, v18.16b, v4.16b + and v8.16b, v8.16b, v9.16b + eor v20.16b, v20.16b, v5.16b + and v16.16b, v16.16b, v9.16b + and v18.16b, v18.16b, v9.16b + shl v21.2d, v8.2d, #1 + eor v1.16b, v1.16b, v8.16b + and v8.16b, v20.16b, v9.16b + eor v7.16b, v7.16b, v16.16b + shl v9.2d, v16.2d, #1 + eor v4.16b, v4.16b, v18.16b + shl v16.2d, v18.2d, #1 + eor v0.16b, v0.16b, v21.16b + shl v18.2d, v8.2d, #1 + eor v5.16b, v5.16b, v8.16b + eor v2.16b, v2.16b, v9.16b + eor v6.16b, v6.16b, v16.16b + ushr v8.2d, v1.2d, #2 + eor v3.16b, v3.16b, v18.16b + ushr v9.2d, v0.2d, #2 + ushr v16.2d, v7.2d, #2 + ushr v18.2d, v2.2d, #2 + eor v8.16b, v8.16b, v4.16b + eor v9.16b, v9.16b, v6.16b + eor v16.16b, v16.16b, v5.16b + eor v18.16b, v18.16b, v3.16b + and v8.16b, v8.16b, v17.16b + and v9.16b, v9.16b, v17.16b + and v16.16b, v16.16b, v17.16b + and v17.16b, v18.16b, v17.16b + eor v4.16b, v4.16b, v8.16b + shl v8.2d, v8.2d, #2 + eor v6.16b, v6.16b, v9.16b + shl v9.2d, v9.2d, #2 + eor v5.16b, v5.16b, v16.16b + shl v16.2d, v16.2d, #2 + eor v3.16b, v3.16b, v17.16b + shl v17.2d, v17.2d, #2 + eor v1.16b, v1.16b, v8.16b + eor v0.16b, v0.16b, v9.16b + eor v7.16b, v7.16b, v16.16b + eor v2.16b, v2.16b, v17.16b + ushr v8.2d, v4.2d, #4 + ushr v9.2d, v6.2d, #4 + ushr v16.2d, v1.2d, #4 + ushr v17.2d, v0.2d, #4 + eor v8.16b, v8.16b, v5.16b + eor v9.16b, v9.16b, v3.16b + eor v16.16b, v16.16b, v7.16b + eor v17.16b, v17.16b, v2.16b + and v8.16b, v8.16b, v19.16b + and v9.16b, v9.16b, v19.16b + and v16.16b, v16.16b, v19.16b + and v17.16b, v17.16b, v19.16b + eor v5.16b, v5.16b, v8.16b + shl v8.2d, v8.2d, #4 + eor v3.16b, v3.16b, v9.16b + shl v9.2d, v9.2d, #4 + eor v7.16b, v7.16b, v16.16b + shl v16.2d, v16.2d, #4 + eor v2.16b, v2.16b, v17.16b + shl v17.2d, v17.2d, #4 + eor v4.16b, v4.16b, v8.16b + eor v6.16b, v6.16b, v9.16b + eor v7.16b, v7.16b, v10.16b + eor v1.16b, v1.16b, v16.16b + eor v2.16b, v2.16b, v10.16b + eor v0.16b, v0.16b, v17.16b + eor v4.16b, v4.16b, v10.16b + eor v6.16b, v6.16b, v10.16b + eor v3.16b, v3.16b, v10.16b + eor v5.16b, v5.16b, v10.16b + eor v1.16b, v1.16b, v10.16b + eor v0.16b, v0.16b, v10.16b + ret +.size _bsaes_decrypt8,.-_bsaes_decrypt8 + +.section .rodata +.type _bsaes_consts,%object +.align 6 +_bsaes_consts: +// InvShiftRows constants +// Used in _bsaes_decrypt8, which assumes contiguity +// .LM0ISR used with round 0 key +// .LISR used with middle round keys +// .LISRM0 used with final round key +.LM0ISR: +.quad 0x0a0e0206070b0f03, 0x0004080c0d010509 +.LISR: +.quad 0x0504070602010003, 0x0f0e0d0c080b0a09 +.LISRM0: +.quad 0x01040b0e0205080f, 0x0306090c00070a0d + +// ShiftRows constants +// Used in _bsaes_encrypt8, which assumes contiguity +// .LM0SR used with round 0 key +// .LSR used with middle round keys +// .LSRM0 used with final round key +.LM0SR: +.quad 0x0a0e02060f03070b, 0x0004080c05090d01 +.LSR: +.quad 0x0504070600030201, 0x0f0e0d0c0a09080b +.LSRM0: +.quad 0x0304090e00050a0f, 0x01060b0c0207080d + +.LM0_bigendian: +.quad 0x02060a0e03070b0f, 0x0004080c0105090d +.LM0_littleendian: +.quad 0x0105090d0004080c, 0x03070b0f02060a0e + +// Used in ossl_bsaes_ctr32_encrypt_blocks, prior to dropping into +// _bsaes_encrypt8_alt, for round 0 key in place of .LM0SR +.LREVM0SR: +.quad 0x090d01050c000408, 0x03070b0f060a0e02 + +.align 6 +.size _bsaes_consts,.-_bsaes_consts + +.previous + +.type _bsaes_encrypt8,%function +.align 4 +// On entry: +// x9 -> key (previously expanded using _bsaes_key_convert) +// x10 = number of rounds +// v0-v7 input data +// On exit: +// x9-x11 corrupted +// other general-purpose registers preserved +// v0-v7 output data +// v11-v15 preserved +// other SIMD registers corrupted +_bsaes_encrypt8: + ldr q8, [x9], #16 + adrp x11, .LM0SR + add x11, x11, #:lo12:.LM0SR + ldr q9, [x11], #16 +_bsaes_encrypt8_alt: + eor v0.16b, v0.16b, v8.16b + eor v1.16b, v1.16b, v8.16b + sub x10, x10, #1 + eor v2.16b, v2.16b, v8.16b + eor v4.16b, v4.16b, v8.16b + eor v3.16b, v3.16b, v8.16b + eor v5.16b, v5.16b, v8.16b + tbl v0.16b, {v0.16b}, v9.16b + tbl v1.16b, {v1.16b}, v9.16b + tbl v2.16b, {v2.16b}, v9.16b + tbl v4.16b, {v4.16b}, v9.16b + eor v6.16b, v6.16b, v8.16b + eor v7.16b, v7.16b, v8.16b + tbl v3.16b, {v3.16b}, v9.16b + tbl v5.16b, {v5.16b}, v9.16b + tbl v6.16b, {v6.16b}, v9.16b + ushr v8.2d, v0.2d, #1 + movi v10.16b, #0x55 + tbl v7.16b, {v7.16b}, v9.16b + ushr v9.2d, v4.2d, #1 + movi v16.16b, #0x33 + ushr v17.2d, v2.2d, #1 + eor v8.16b, v8.16b, v1.16b + movi v18.16b, #0x0f + ushr v19.2d, v6.2d, #1 + eor v9.16b, v9.16b, v5.16b + eor v17.16b, v17.16b, v3.16b + and v8.16b, v8.16b, v10.16b + eor v19.16b, v19.16b, v7.16b + and v9.16b, v9.16b, v10.16b + and v17.16b, v17.16b, v10.16b + eor v1.16b, v1.16b, v8.16b + shl v8.2d, v8.2d, #1 + and v10.16b, v19.16b, v10.16b + eor v5.16b, v5.16b, v9.16b + shl v9.2d, v9.2d, #1 + eor v3.16b, v3.16b, v17.16b + shl v17.2d, v17.2d, #1 + eor v0.16b, v0.16b, v8.16b + shl v8.2d, v10.2d, #1 + eor v7.16b, v7.16b, v10.16b + eor v4.16b, v4.16b, v9.16b + eor v2.16b, v2.16b, v17.16b + ushr v9.2d, v1.2d, #2 + eor v6.16b, v6.16b, v8.16b + ushr v8.2d, v0.2d, #2 + ushr v10.2d, v5.2d, #2 + ushr v17.2d, v4.2d, #2 + eor v9.16b, v9.16b, v3.16b + eor v8.16b, v8.16b, v2.16b + eor v10.16b, v10.16b, v7.16b + eor v17.16b, v17.16b, v6.16b + and v9.16b, v9.16b, v16.16b + and v8.16b, v8.16b, v16.16b + and v10.16b, v10.16b, v16.16b + and v16.16b, v17.16b, v16.16b + eor v3.16b, v3.16b, v9.16b + shl v9.2d, v9.2d, #2 + eor v2.16b, v2.16b, v8.16b + shl v8.2d, v8.2d, #2 + eor v7.16b, v7.16b, v10.16b + shl v10.2d, v10.2d, #2 + eor v6.16b, v6.16b, v16.16b + shl v16.2d, v16.2d, #2 + eor v1.16b, v1.16b, v9.16b + eor v0.16b, v0.16b, v8.16b + eor v5.16b, v5.16b, v10.16b + eor v4.16b, v4.16b, v16.16b + ushr v8.2d, v3.2d, #4 + ushr v9.2d, v2.2d, #4 + ushr v10.2d, v1.2d, #4 + ushr v16.2d, v0.2d, #4 + eor v8.16b, v8.16b, v7.16b + eor v9.16b, v9.16b, v6.16b + eor v10.16b, v10.16b, v5.16b + eor v16.16b, v16.16b, v4.16b + and v8.16b, v8.16b, v18.16b + and v9.16b, v9.16b, v18.16b + and v10.16b, v10.16b, v18.16b + and v16.16b, v16.16b, v18.16b + eor v7.16b, v7.16b, v8.16b + shl v8.2d, v8.2d, #4 + eor v6.16b, v6.16b, v9.16b + shl v9.2d, v9.2d, #4 + eor v5.16b, v5.16b, v10.16b + shl v10.2d, v10.2d, #4 + eor v4.16b, v4.16b, v16.16b + shl v16.2d, v16.2d, #4 + eor v3.16b, v3.16b, v8.16b + eor v2.16b, v2.16b, v9.16b + eor v1.16b, v1.16b, v10.16b + eor v0.16b, v0.16b, v16.16b + b .Lenc_sbox +.align 4 +.Lenc_loop: + ld1 {v16.16b, v17.16b, v18.16b, v19.16b}, [x9], #64 + ldp q8, q9, [x9], #32 + eor v0.16b, v16.16b, v0.16b + ldr q10, [x9], #16 + eor v1.16b, v17.16b, v1.16b + ldr q16, [x9], #16 + eor v2.16b, v18.16b, v2.16b + eor v3.16b, v19.16b, v3.16b + eor v4.16b, v8.16b, v4.16b + eor v5.16b, v9.16b, v5.16b + eor v6.16b, v10.16b, v6.16b + eor v7.16b, v16.16b, v7.16b + tbl v0.16b, {v0.16b}, v28.16b + tbl v1.16b, {v1.16b}, v28.16b + tbl v2.16b, {v2.16b}, v28.16b + tbl v3.16b, {v3.16b}, v28.16b + tbl v4.16b, {v4.16b}, v28.16b + tbl v5.16b, {v5.16b}, v28.16b + tbl v6.16b, {v6.16b}, v28.16b + tbl v7.16b, {v7.16b}, v28.16b +.Lenc_sbox: + eor v5.16b, v5.16b, v6.16b + eor v3.16b, v3.16b, v0.16b + subs x10, x10, #1 + eor v2.16b, v2.16b, v1.16b + eor v5.16b, v5.16b, v0.16b + eor v8.16b, v3.16b, v7.16b + eor v6.16b, v6.16b, v2.16b + eor v7.16b, v7.16b, v5.16b + eor v8.16b, v8.16b, v4.16b + eor v3.16b, v6.16b, v3.16b + eor v4.16b, v4.16b, v5.16b + eor v6.16b, v1.16b, v5.16b + eor v2.16b, v2.16b, v7.16b + eor v1.16b, v8.16b, v1.16b + eor v8.16b, v7.16b, v4.16b + eor v9.16b, v3.16b, v0.16b + eor v10.16b, v7.16b, v6.16b + eor v16.16b, v5.16b, v3.16b + eor v17.16b, v6.16b, v2.16b + eor v18.16b, v5.16b, v1.16b + eor v19.16b, v2.16b, v4.16b + eor v20.16b, v1.16b, v0.16b + orr v21.16b, v8.16b, v9.16b + orr v22.16b, v10.16b, v16.16b + eor v23.16b, v8.16b, v17.16b + eor v24.16b, v9.16b, v18.16b + and v19.16b, v19.16b, v20.16b + orr v20.16b, v17.16b, v18.16b + and v8.16b, v8.16b, v9.16b + and v9.16b, v17.16b, v18.16b + and v17.16b, v23.16b, v24.16b + and v10.16b, v10.16b, v16.16b + eor v16.16b, v21.16b, v19.16b + eor v18.16b, v20.16b, v19.16b + and v19.16b, v2.16b, v1.16b + and v20.16b, v6.16b, v5.16b + eor v21.16b, v22.16b, v17.16b + eor v9.16b, v9.16b, v10.16b + eor v10.16b, v16.16b, v17.16b + eor v16.16b, v18.16b, v8.16b + and v17.16b, v4.16b, v0.16b + orr v18.16b, v7.16b, v3.16b + eor v21.16b, v21.16b, v8.16b + eor v8.16b, v9.16b, v8.16b + eor v9.16b, v10.16b, v19.16b + eor v10.16b, v3.16b, v0.16b + eor v16.16b, v16.16b, v17.16b + eor v17.16b, v5.16b, v1.16b + eor v19.16b, v21.16b, v20.16b + eor v20.16b, v8.16b, v18.16b + eor v8.16b, v8.16b, v18.16b + eor v18.16b, v7.16b, v4.16b + eor v21.16b, v9.16b, v16.16b + eor v22.16b, v6.16b, v2.16b + and v23.16b, v9.16b, v19.16b + eor v24.16b, v10.16b, v17.16b + eor v25.16b, v0.16b, v1.16b + eor v26.16b, v7.16b, v6.16b + eor v27.16b, v18.16b, v22.16b + eor v28.16b, v3.16b, v5.16b + eor v29.16b, v16.16b, v23.16b + eor v30.16b, v20.16b, v23.16b + eor v23.16b, v20.16b, v23.16b + eor v31.16b, v4.16b, v2.16b + bsl v29.16b, v19.16b, v20.16b + bsl v30.16b, v9.16b, v16.16b + bsl v8.16b, v29.16b, v23.16b + bsl v20.16b, v23.16b, v29.16b + eor v9.16b, v30.16b, v29.16b + and v5.16b, v5.16b, v30.16b + and v8.16b, v8.16b, v30.16b + and v1.16b, v1.16b, v29.16b + eor v16.16b, v19.16b, v20.16b + and v2.16b, v2.16b, v29.16b + eor v19.16b, v9.16b, v29.16b + and v17.16b, v17.16b, v9.16b + eor v8.16b, v8.16b, v21.16b + and v20.16b, v22.16b, v9.16b + eor v21.16b, v29.16b, v16.16b + eor v22.16b, v29.16b, v16.16b + and v23.16b, v25.16b, v16.16b + and v6.16b, v6.16b, v19.16b + eor v25.16b, v8.16b, v16.16b + eor v29.16b, v30.16b, v8.16b + and v4.16b, v21.16b, v4.16b + and v8.16b, v28.16b, v8.16b + and v0.16b, v22.16b, v0.16b + eor v21.16b, v23.16b, v1.16b + eor v22.16b, v9.16b, v25.16b + eor v9.16b, v9.16b, v25.16b + eor v23.16b, v25.16b, v16.16b + and v3.16b, v29.16b, v3.16b + and v24.16b, v24.16b, v25.16b + and v25.16b, v27.16b, v25.16b + and v10.16b, v22.16b, v10.16b + and v9.16b, v9.16b, v18.16b + eor v18.16b, v19.16b, v23.16b + and v19.16b, v26.16b, v23.16b + eor v3.16b, v5.16b, v3.16b + eor v17.16b, v17.16b, v24.16b + eor v10.16b, v24.16b, v10.16b + and v16.16b, v31.16b, v16.16b + eor v20.16b, v20.16b, v25.16b + eor v9.16b, v25.16b, v9.16b + eor v4.16b, v2.16b, v4.16b + and v7.16b, v18.16b, v7.16b + eor v18.16b, v19.16b, v6.16b + eor v5.16b, v8.16b, v5.16b + eor v0.16b, v1.16b, v0.16b + eor v1.16b, v21.16b, v10.16b + eor v8.16b, v3.16b, v17.16b + eor v2.16b, v16.16b, v2.16b + eor v3.16b, v6.16b, v7.16b + eor v6.16b, v18.16b, v9.16b + eor v4.16b, v4.16b, v20.16b + eor v10.16b, v5.16b, v10.16b + eor v0.16b, v0.16b, v17.16b + eor v9.16b, v2.16b, v9.16b + eor v3.16b, v3.16b, v20.16b + eor v7.16b, v6.16b, v1.16b + eor v5.16b, v8.16b, v4.16b + eor v6.16b, v10.16b, v1.16b + eor v2.16b, v4.16b, v0.16b + eor v4.16b, v3.16b, v10.16b + eor v9.16b, v9.16b, v7.16b + eor v3.16b, v0.16b, v5.16b + eor v0.16b, v1.16b, v4.16b + eor v1.16b, v4.16b, v8.16b + eor v4.16b, v9.16b, v5.16b + eor v6.16b, v6.16b, v3.16b + bcc .Lenc_done + ext v8.16b, v0.16b, v0.16b, #12 + ext v9.16b, v4.16b, v4.16b, #12 + ldr q28, [x11] + ext v10.16b, v6.16b, v6.16b, #12 + ext v16.16b, v1.16b, v1.16b, #12 + ext v17.16b, v3.16b, v3.16b, #12 + ext v18.16b, v7.16b, v7.16b, #12 + eor v0.16b, v0.16b, v8.16b + eor v4.16b, v4.16b, v9.16b + eor v6.16b, v6.16b, v10.16b + ext v19.16b, v2.16b, v2.16b, #12 + ext v20.16b, v5.16b, v5.16b, #12 + eor v1.16b, v1.16b, v16.16b + eor v3.16b, v3.16b, v17.16b + eor v7.16b, v7.16b, v18.16b + eor v2.16b, v2.16b, v19.16b + eor v16.16b, v16.16b, v0.16b + eor v5.16b, v5.16b, v20.16b + eor v17.16b, v17.16b, v6.16b + eor v10.16b, v10.16b, v4.16b + ext v0.16b, v0.16b, v0.16b, #8 + eor v9.16b, v9.16b, v1.16b + ext v1.16b, v1.16b, v1.16b, #8 + eor v8.16b, v8.16b, v5.16b + eor v16.16b, v16.16b, v5.16b + eor v18.16b, v18.16b, v3.16b + eor v19.16b, v19.16b, v7.16b + ext v3.16b, v3.16b, v3.16b, #8 + ext v7.16b, v7.16b, v7.16b, #8 + eor v20.16b, v20.16b, v2.16b + ext v6.16b, v6.16b, v6.16b, #8 + ext v21.16b, v5.16b, v5.16b, #8 + eor v17.16b, v17.16b, v5.16b + ext v2.16b, v2.16b, v2.16b, #8 + eor v10.16b, v10.16b, v5.16b + ext v22.16b, v4.16b, v4.16b, #8 + eor v0.16b, v0.16b, v8.16b + eor v1.16b, v1.16b, v16.16b + eor v5.16b, v7.16b, v18.16b + eor v4.16b, v3.16b, v17.16b + eor v3.16b, v6.16b, v10.16b + eor v7.16b, v21.16b, v20.16b + eor v6.16b, v2.16b, v19.16b + eor v2.16b, v22.16b, v9.16b + bne .Lenc_loop + ldr q28, [x11, #16]! // load from .LSRM0 on last round (x10 == 0) + b .Lenc_loop +.align 4 +.Lenc_done: + ushr v8.2d, v0.2d, #1 + movi v9.16b, #0x55 + ldr q10, [x9] + ushr v16.2d, v3.2d, #1 + movi v17.16b, #0x33 + ushr v18.2d, v4.2d, #1 + movi v19.16b, #0x0f + eor v8.16b, v8.16b, v1.16b + ushr v20.2d, v2.2d, #1 + eor v16.16b, v16.16b, v7.16b + eor v18.16b, v18.16b, v6.16b + and v8.16b, v8.16b, v9.16b + eor v20.16b, v20.16b, v5.16b + and v16.16b, v16.16b, v9.16b + and v18.16b, v18.16b, v9.16b + shl v21.2d, v8.2d, #1 + eor v1.16b, v1.16b, v8.16b + and v8.16b, v20.16b, v9.16b + eor v7.16b, v7.16b, v16.16b + shl v9.2d, v16.2d, #1 + eor v6.16b, v6.16b, v18.16b + shl v16.2d, v18.2d, #1 + eor v0.16b, v0.16b, v21.16b + shl v18.2d, v8.2d, #1 + eor v5.16b, v5.16b, v8.16b + eor v3.16b, v3.16b, v9.16b + eor v4.16b, v4.16b, v16.16b + ushr v8.2d, v1.2d, #2 + eor v2.16b, v2.16b, v18.16b + ushr v9.2d, v0.2d, #2 + ushr v16.2d, v7.2d, #2 + ushr v18.2d, v3.2d, #2 + eor v8.16b, v8.16b, v6.16b + eor v9.16b, v9.16b, v4.16b + eor v16.16b, v16.16b, v5.16b + eor v18.16b, v18.16b, v2.16b + and v8.16b, v8.16b, v17.16b + and v9.16b, v9.16b, v17.16b + and v16.16b, v16.16b, v17.16b + and v17.16b, v18.16b, v17.16b + eor v6.16b, v6.16b, v8.16b + shl v8.2d, v8.2d, #2 + eor v4.16b, v4.16b, v9.16b + shl v9.2d, v9.2d, #2 + eor v5.16b, v5.16b, v16.16b + shl v16.2d, v16.2d, #2 + eor v2.16b, v2.16b, v17.16b + shl v17.2d, v17.2d, #2 + eor v1.16b, v1.16b, v8.16b + eor v0.16b, v0.16b, v9.16b + eor v7.16b, v7.16b, v16.16b + eor v3.16b, v3.16b, v17.16b + ushr v8.2d, v6.2d, #4 + ushr v9.2d, v4.2d, #4 + ushr v16.2d, v1.2d, #4 + ushr v17.2d, v0.2d, #4 + eor v8.16b, v8.16b, v5.16b + eor v9.16b, v9.16b, v2.16b + eor v16.16b, v16.16b, v7.16b + eor v17.16b, v17.16b, v3.16b + and v8.16b, v8.16b, v19.16b + and v9.16b, v9.16b, v19.16b + and v16.16b, v16.16b, v19.16b + and v17.16b, v17.16b, v19.16b + eor v5.16b, v5.16b, v8.16b + shl v8.2d, v8.2d, #4 + eor v2.16b, v2.16b, v9.16b + shl v9.2d, v9.2d, #4 + eor v7.16b, v7.16b, v16.16b + shl v16.2d, v16.2d, #4 + eor v3.16b, v3.16b, v17.16b + shl v17.2d, v17.2d, #4 + eor v6.16b, v6.16b, v8.16b + eor v4.16b, v4.16b, v9.16b + eor v7.16b, v7.16b, v10.16b + eor v1.16b, v1.16b, v16.16b + eor v3.16b, v3.16b, v10.16b + eor v0.16b, v0.16b, v17.16b + eor v6.16b, v6.16b, v10.16b + eor v4.16b, v4.16b, v10.16b + eor v2.16b, v2.16b, v10.16b + eor v5.16b, v5.16b, v10.16b + eor v1.16b, v1.16b, v10.16b + eor v0.16b, v0.16b, v10.16b + ret +.size _bsaes_encrypt8,.-_bsaes_encrypt8 + +.type _bsaes_key_convert,%function +.align 4 +// On entry: +// x9 -> input key (big-endian) +// x10 = number of rounds +// x17 -> output key (native endianness) +// On exit: +// x9, x10 corrupted +// x11 -> .LM0_bigendian +// x17 -> last quadword of output key +// other general-purpose registers preserved +// v2-v6 preserved +// v7.16b[] = 0x63 +// v8-v14 preserved +// v15 = last round key (converted to native endianness) +// other SIMD registers corrupted +_bsaes_key_convert: +#ifdef __AARCH64EL__ + adrp x11, .LM0_littleendian + add x11, x11, #:lo12:.LM0_littleendian +#else + adrp x11, .LM0_bigendian + add x11, x11, #:lo12:.LM0_bigendian +#endif + ldr q0, [x9], #16 // load round 0 key + ldr q1, [x11] // .LM0 + ldr q15, [x9], #16 // load round 1 key + + movi v7.16b, #0x63 // compose .L63 + movi v16.16b, #0x01 // bit masks + movi v17.16b, #0x02 + movi v18.16b, #0x04 + movi v19.16b, #0x08 + movi v20.16b, #0x10 + movi v21.16b, #0x20 + movi v22.16b, #0x40 + movi v23.16b, #0x80 + +#ifdef __AARCH64EL__ + rev32 v0.16b, v0.16b +#endif + sub x10, x10, #1 + str q0, [x17], #16 // save round 0 key + +.align 4 +.Lkey_loop: + tbl v0.16b, {v15.16b}, v1.16b + ldr q15, [x9], #16 // load next round key + + eor v0.16b, v0.16b, v7.16b + cmtst v24.16b, v0.16b, v16.16b + cmtst v25.16b, v0.16b, v17.16b + cmtst v26.16b, v0.16b, v18.16b + cmtst v27.16b, v0.16b, v19.16b + cmtst v28.16b, v0.16b, v20.16b + cmtst v29.16b, v0.16b, v21.16b + cmtst v30.16b, v0.16b, v22.16b + cmtst v31.16b, v0.16b, v23.16b + sub x10, x10, #1 + st1 {v24.16b,v25.16b,v26.16b,v27.16b}, [x17], #64 // write bit-sliced round key + st1 {v28.16b,v29.16b,v30.16b,v31.16b}, [x17], #64 + cbnz x10, .Lkey_loop + + // don't save last round key +#ifdef __AARCH64EL__ + rev32 v15.16b, v15.16b + adrp x11, .LM0_bigendian + add x11, x11, #:lo12:.LM0_bigendian +#endif + ret +.size _bsaes_key_convert,.-_bsaes_key_convert + +.globl ossl_bsaes_cbc_encrypt +.type ossl_bsaes_cbc_encrypt,%function +.align 4 +// On entry: +// x0 -> input ciphertext +// x1 -> output plaintext +// x2 = size of ciphertext and plaintext in bytes (assumed a multiple of 16) +// x3 -> key +// x4 -> 128-bit initialisation vector (or preceding 128-bit block of ciphertext if continuing after an earlier call) +// w5 must be == 0 +// On exit: +// Output plaintext filled in +// Initialisation vector overwritten with last quadword of ciphertext +// No output registers, usual AAPCS64 register preservation +ossl_bsaes_cbc_encrypt: + AARCH64_VALID_CALL_TARGET + cmp x2, #128 + bhs .Lcbc_do_bsaes + b AES_cbc_encrypt +.Lcbc_do_bsaes: + + // it is up to the caller to make sure we are called with enc == 0 + + stp x29, x30, [sp, #-48]! + stp d8, d9, [sp, #16] + stp d10, d15, [sp, #32] + lsr x2, x2, #4 // len in 16 byte blocks + + ldr w15, [x3, #240] // get # of rounds + mov x14, sp + + // allocate the key schedule on the stack + add x17, sp, #96 + sub x17, x17, x15, lsl #7 // 128 bytes per inner round key, less 96 bytes + + // populate the key schedule + mov x9, x3 // pass key + mov x10, x15 // pass # of rounds + mov sp, x17 // sp is sp + bl _bsaes_key_convert + ldr q6, [sp] + str q15, [x17] // save last round key + eor v6.16b, v6.16b, v7.16b // fix up round 0 key (by XORing with 0x63) + str q6, [sp] + + ldr q15, [x4] // load IV + b .Lcbc_dec_loop + +.align 4 +.Lcbc_dec_loop: + subs x2, x2, #0x8 + bmi .Lcbc_dec_loop_finish + + ldr q0, [x0], #16 // load input + mov x9, sp // pass the key + ldr q1, [x0], #16 + mov x10, x15 + ldr q2, [x0], #16 + ldr q3, [x0], #16 + ldr q4, [x0], #16 + ldr q5, [x0], #16 + ldr q6, [x0], #16 + ldr q7, [x0], #-7*16 + + bl _bsaes_decrypt8 + + ldr q16, [x0], #16 // reload input + eor v0.16b, v0.16b, v15.16b // ^= IV + eor v1.16b, v1.16b, v16.16b + str q0, [x1], #16 // write output + ldr q0, [x0], #16 + str q1, [x1], #16 + ldr q1, [x0], #16 + eor v1.16b, v4.16b, v1.16b + ldr q4, [x0], #16 + eor v2.16b, v2.16b, v4.16b + eor v0.16b, v6.16b, v0.16b + ldr q4, [x0], #16 + str q0, [x1], #16 + str q1, [x1], #16 + eor v0.16b, v7.16b, v4.16b + ldr q1, [x0], #16 + str q2, [x1], #16 + ldr q2, [x0], #16 + ldr q15, [x0], #16 + str q0, [x1], #16 + eor v0.16b, v5.16b, v2.16b + eor v1.16b, v3.16b, v1.16b + str q1, [x1], #16 + str q0, [x1], #16 + + b .Lcbc_dec_loop + +.Lcbc_dec_loop_finish: + adds x2, x2, #8 + beq .Lcbc_dec_done + + ldr q0, [x0], #16 // load input + cmp x2, #2 + blo .Lcbc_dec_one + ldr q1, [x0], #16 + mov x9, sp // pass the key + mov x10, x15 + beq .Lcbc_dec_two + ldr q2, [x0], #16 + cmp x2, #4 + blo .Lcbc_dec_three + ldr q3, [x0], #16 + beq .Lcbc_dec_four + ldr q4, [x0], #16 + cmp x2, #6 + blo .Lcbc_dec_five + ldr q5, [x0], #16 + beq .Lcbc_dec_six + ldr q6, [x0], #-6*16 + + bl _bsaes_decrypt8 + + ldr q5, [x0], #16 // reload input + eor v0.16b, v0.16b, v15.16b // ^= IV + ldr q8, [x0], #16 + ldr q9, [x0], #16 + ldr q10, [x0], #16 + str q0, [x1], #16 // write output + ldr q0, [x0], #16 + eor v1.16b, v1.16b, v5.16b + ldr q5, [x0], #16 + eor v6.16b, v6.16b, v8.16b + ldr q15, [x0] + eor v4.16b, v4.16b, v9.16b + eor v2.16b, v2.16b, v10.16b + str q1, [x1], #16 + eor v0.16b, v7.16b, v0.16b + str q6, [x1], #16 + eor v1.16b, v3.16b, v5.16b + str q4, [x1], #16 + str q2, [x1], #16 + str q0, [x1], #16 + str q1, [x1] + b .Lcbc_dec_done +.align 4 +.Lcbc_dec_six: + sub x0, x0, #0x60 + bl _bsaes_decrypt8 + ldr q3, [x0], #16 // reload input + eor v0.16b, v0.16b, v15.16b // ^= IV + ldr q5, [x0], #16 + ldr q8, [x0], #16 + ldr q9, [x0], #16 + str q0, [x1], #16 // write output + ldr q0, [x0], #16 + eor v1.16b, v1.16b, v3.16b + ldr q15, [x0] + eor v3.16b, v6.16b, v5.16b + eor v4.16b, v4.16b, v8.16b + eor v2.16b, v2.16b, v9.16b + str q1, [x1], #16 + eor v0.16b, v7.16b, v0.16b + str q3, [x1], #16 + str q4, [x1], #16 + str q2, [x1], #16 + str q0, [x1] + b .Lcbc_dec_done +.align 4 +.Lcbc_dec_five: + sub x0, x0, #0x50 + bl _bsaes_decrypt8 + ldr q3, [x0], #16 // reload input + eor v0.16b, v0.16b, v15.16b // ^= IV + ldr q5, [x0], #16 + ldr q7, [x0], #16 + ldr q8, [x0], #16 + str q0, [x1], #16 // write output + ldr q15, [x0] + eor v0.16b, v1.16b, v3.16b + eor v1.16b, v6.16b, v5.16b + eor v3.16b, v4.16b, v7.16b + str q0, [x1], #16 + eor v0.16b, v2.16b, v8.16b + str q1, [x1], #16 + str q3, [x1], #16 + str q0, [x1] + b .Lcbc_dec_done +.align 4 +.Lcbc_dec_four: + sub x0, x0, #0x40 + bl _bsaes_decrypt8 + ldr q2, [x0], #16 // reload input + eor v0.16b, v0.16b, v15.16b // ^= IV + ldr q3, [x0], #16 + ldr q5, [x0], #16 + str q0, [x1], #16 // write output + ldr q15, [x0] + eor v0.16b, v1.16b, v2.16b + eor v1.16b, v6.16b, v3.16b + eor v2.16b, v4.16b, v5.16b + str q0, [x1], #16 + str q1, [x1], #16 + str q2, [x1] + b .Lcbc_dec_done +.align 4 +.Lcbc_dec_three: + sub x0, x0, #0x30 + bl _bsaes_decrypt8 + ldr q2, [x0], #16 // reload input + eor v0.16b, v0.16b, v15.16b // ^= IV + ldr q3, [x0], #16 + ldr q15, [x0] + str q0, [x1], #16 // write output + eor v0.16b, v1.16b, v2.16b + eor v1.16b, v6.16b, v3.16b + str q0, [x1], #16 + str q1, [x1] + b .Lcbc_dec_done +.align 4 +.Lcbc_dec_two: + sub x0, x0, #0x20 + bl _bsaes_decrypt8 + ldr q2, [x0], #16 // reload input + eor v0.16b, v0.16b, v15.16b // ^= IV + ldr q15, [x0] + str q0, [x1], #16 // write output + eor v0.16b, v1.16b, v2.16b + str q0, [x1] + b .Lcbc_dec_done +.align 4 +.Lcbc_dec_one: + sub x0, x0, #0x10 + stp x1, x4, [sp, #-32]! + str x14, [sp, #16] + mov v8.16b, v15.16b + mov v15.16b, v0.16b + mov x2, x3 + bl AES_decrypt + ldr x14, [sp, #16] + ldp x1, x4, [sp], #32 + ldr q0, [x1] // load result + eor v0.16b, v0.16b, v8.16b // ^= IV + str q0, [x1] // write output + +.align 4 +.Lcbc_dec_done: + movi v0.16b, #0 + movi v1.16b, #0 +.Lcbc_dec_bzero: // wipe key schedule [if any] + stp q0, q1, [sp], #32 + cmp sp, x14 + bne .Lcbc_dec_bzero + str q15, [x4] // return IV + ldp d8, d9, [sp, #16] + ldp d10, d15, [sp, #32] + ldp x29, x30, [sp], #48 + ret +.size ossl_bsaes_cbc_encrypt,.-ossl_bsaes_cbc_encrypt + +.globl ossl_bsaes_ctr32_encrypt_blocks +.type ossl_bsaes_ctr32_encrypt_blocks,%function +.align 4 +// On entry: +// x0 -> input text (whole 16-byte blocks) +// x1 -> output text (whole 16-byte blocks) +// x2 = number of 16-byte blocks to encrypt/decrypt (> 0) +// x3 -> key +// x4 -> initial value of 128-bit counter (stored big-endian) which increments, modulo 2^32, for each block +// On exit: +// Output text filled in +// No output registers, usual AAPCS64 register preservation +ossl_bsaes_ctr32_encrypt_blocks: + AARCH64_VALID_CALL_TARGET + cmp x2, #8 // use plain AES for + blo .Lctr_enc_short // small sizes + + stp x29, x30, [sp, #-80]! + stp d8, d9, [sp, #16] + stp d10, d11, [sp, #32] + stp d12, d13, [sp, #48] + stp d14, d15, [sp, #64] + + ldr w15, [x3, #240] // get # of rounds + mov x14, sp + + // allocate the key schedule on the stack + add x17, sp, #96 + sub x17, x17, x15, lsl #7 // 128 bytes per inner round key, less 96 bytes + + // populate the key schedule + mov x9, x3 // pass key + mov x10, x15 // pass # of rounds + mov sp, x17 // sp is sp + bl _bsaes_key_convert + eor v7.16b, v7.16b, v15.16b // fix up last round key + str q7, [x17] // save last round key + + ldr q0, [x4] // load counter + add x13, x11, #.LREVM0SR-.LM0_bigendian + ldr q4, [sp] // load round0 key + + movi v8.4s, #1 // compose 1<<96 + movi v9.16b, #0 + rev32 v15.16b, v0.16b + rev32 v0.16b, v0.16b + ext v11.16b, v9.16b, v8.16b, #4 + rev32 v4.16b, v4.16b + add v12.4s, v11.4s, v11.4s // compose 2<<96 + str q4, [sp] // save adjusted round0 key + add v13.4s, v11.4s, v12.4s // compose 3<<96 + add v14.4s, v12.4s, v12.4s // compose 4<<96 + b .Lctr_enc_loop + +.align 4 +.Lctr_enc_loop: + // Intermix prologue from _bsaes_encrypt8 to use the opportunity + // to flip byte order in 32-bit counter + + add v1.4s, v15.4s, v11.4s // +1 + add x9, sp, #0x10 // pass next round key + add v2.4s, v15.4s, v12.4s // +2 + ldr q9, [x13] // .LREVM0SR + ldr q8, [sp] // load round0 key + add v3.4s, v15.4s, v13.4s // +3 + mov x10, x15 // pass rounds + sub x11, x13, #.LREVM0SR-.LSR // pass constants + add v6.4s, v2.4s, v14.4s + add v4.4s, v15.4s, v14.4s // +4 + add v7.4s, v3.4s, v14.4s + add v15.4s, v4.4s, v14.4s // next counter + add v5.4s, v1.4s, v14.4s + + bl _bsaes_encrypt8_alt + + subs x2, x2, #8 + blo .Lctr_enc_loop_done + + ldr q16, [x0], #16 + ldr q17, [x0], #16 + eor v1.16b, v1.16b, v17.16b + ldr q17, [x0], #16 + eor v0.16b, v0.16b, v16.16b + eor v4.16b, v4.16b, v17.16b + str q0, [x1], #16 + ldr q16, [x0], #16 + str q1, [x1], #16 + mov v0.16b, v15.16b + str q4, [x1], #16 + ldr q1, [x0], #16 + eor v4.16b, v6.16b, v16.16b + eor v1.16b, v3.16b, v1.16b + ldr q3, [x0], #16 + eor v3.16b, v7.16b, v3.16b + ldr q6, [x0], #16 + eor v2.16b, v2.16b, v6.16b + ldr q6, [x0], #16 + eor v5.16b, v5.16b, v6.16b + str q4, [x1], #16 + str q1, [x1], #16 + str q3, [x1], #16 + str q2, [x1], #16 + str q5, [x1], #16 + + bne .Lctr_enc_loop + b .Lctr_enc_done + +.align 4 +.Lctr_enc_loop_done: + add x2, x2, #8 + ldr q16, [x0], #16 // load input + eor v0.16b, v0.16b, v16.16b + str q0, [x1], #16 // write output + cmp x2, #2 + blo .Lctr_enc_done + ldr q17, [x0], #16 + eor v1.16b, v1.16b, v17.16b + str q1, [x1], #16 + beq .Lctr_enc_done + ldr q18, [x0], #16 + eor v4.16b, v4.16b, v18.16b + str q4, [x1], #16 + cmp x2, #4 + blo .Lctr_enc_done + ldr q19, [x0], #16 + eor v6.16b, v6.16b, v19.16b + str q6, [x1], #16 + beq .Lctr_enc_done + ldr q20, [x0], #16 + eor v3.16b, v3.16b, v20.16b + str q3, [x1], #16 + cmp x2, #6 + blo .Lctr_enc_done + ldr q21, [x0], #16 + eor v7.16b, v7.16b, v21.16b + str q7, [x1], #16 + beq .Lctr_enc_done + ldr q22, [x0] + eor v2.16b, v2.16b, v22.16b + str q2, [x1], #16 + +.Lctr_enc_done: + movi v0.16b, #0 + movi v1.16b, #0 +.Lctr_enc_bzero: // wipe key schedule [if any] + stp q0, q1, [sp], #32 + cmp sp, x14 + bne .Lctr_enc_bzero + + ldp d8, d9, [sp, #16] + ldp d10, d11, [sp, #32] + ldp d12, d13, [sp, #48] + ldp d14, d15, [sp, #64] + ldp x29, x30, [sp], #80 + ret + +.Lctr_enc_short: + stp x29, x30, [sp, #-96]! + stp x19, x20, [sp, #16] + stp x21, x22, [sp, #32] + str x23, [sp, #48] + + mov x19, x0 // copy arguments + mov x20, x1 + mov x21, x2 + mov x22, x3 + ldr w23, [x4, #12] // load counter .LSW + ldr q1, [x4] // load whole counter value +#ifdef __AARCH64EL__ + rev w23, w23 +#endif + str q1, [sp, #80] // copy counter value + +.Lctr_enc_short_loop: + add x0, sp, #80 // input counter value + add x1, sp, #64 // output on the stack + mov x2, x22 // key + + bl AES_encrypt + + ldr q0, [x19], #16 // load input + ldr q1, [sp, #64] // load encrypted counter + add x23, x23, #1 +#ifdef __AARCH64EL__ + rev w0, w23 + str w0, [sp, #80+12] // next counter value +#else + str w23, [sp, #80+12] // next counter value +#endif + eor v0.16b, v0.16b, v1.16b + str q0, [x20], #16 // store output + subs x21, x21, #1 + bne .Lctr_enc_short_loop + + movi v0.16b, #0 + movi v1.16b, #0 + stp q0, q1, [sp, #64] + + ldr x23, [sp, #48] + ldp x21, x22, [sp, #32] + ldp x19, x20, [sp, #16] + ldp x29, x30, [sp], #96 + ret +.size ossl_bsaes_ctr32_encrypt_blocks,.-ossl_bsaes_ctr32_encrypt_blocks + +.globl ossl_bsaes_xts_encrypt +.type ossl_bsaes_xts_encrypt,%function +.align 4 +// On entry: +// x0 -> input plaintext +// x1 -> output ciphertext +// x2 -> length of text in bytes (must be at least 16) +// x3 -> key1 (used to encrypt the XORed plaintext blocks) +// x4 -> key2 (used to encrypt the initial vector to yield the initial tweak) +// x5 -> 16-byte initial vector (typically, sector number) +// On exit: +// Output ciphertext filled in +// No output registers, usual AAPCS64 register preservation +ossl_bsaes_xts_encrypt: + AARCH64_VALID_CALL_TARGET + // Stack layout: + // sp -> + // nrounds*128-96 bytes: key schedule + // x19 -> + // 16 bytes: frame record + // 4*16 bytes: tweak storage across _bsaes_encrypt8 + // 6*8 bytes: storage for 5 callee-saved general-purpose registers + // 8*8 bytes: storage for 8 callee-saved SIMD registers + stp x29, x30, [sp, #-192]! + stp x19, x20, [sp, #80] + stp x21, x22, [sp, #96] + str x23, [sp, #112] + stp d8, d9, [sp, #128] + stp d10, d11, [sp, #144] + stp d12, d13, [sp, #160] + stp d14, d15, [sp, #176] + + mov x19, sp + mov x20, x0 + mov x21, x1 + mov x22, x2 + mov x23, x3 + + // generate initial tweak + sub sp, sp, #16 + mov x0, x5 // iv[] + mov x1, sp + mov x2, x4 // key2 + bl AES_encrypt + ldr q11, [sp], #16 + + ldr w1, [x23, #240] // get # of rounds + // allocate the key schedule on the stack + add x17, sp, #96 + sub x17, x17, x1, lsl #7 // 128 bytes per inner round key, less 96 bytes + + // populate the key schedule + mov x9, x23 // pass key + mov x10, x1 // pass # of rounds + mov sp, x17 + bl _bsaes_key_convert + eor v15.16b, v15.16b, v7.16b // fix up last round key + str q15, [x17] // save last round key + + subs x22, x22, #0x80 + blo .Lxts_enc_short + b .Lxts_enc_loop + +.align 4 +.Lxts_enc_loop: + ldr q8, .Lxts_magic + mov x10, x1 // pass rounds + add x2, x19, #16 + ldr q0, [x20], #16 + sshr v1.2d, v11.2d, #63 + mov x9, sp // pass key schedule + ldr q6, .Lxts_magic+16 + add v2.2d, v11.2d, v11.2d + cmtst v3.2d, v11.2d, v6.2d + and v1.16b, v1.16b, v8.16b + ext v1.16b, v1.16b, v1.16b, #8 + and v3.16b, v3.16b, v8.16b + ldr q4, [x20], #16 + eor v12.16b, v2.16b, v1.16b + eor v1.16b, v4.16b, v12.16b + eor v0.16b, v0.16b, v11.16b + cmtst v2.2d, v12.2d, v6.2d + add v4.2d, v12.2d, v12.2d + add x0, x19, #16 + ext v3.16b, v3.16b, v3.16b, #8 + and v2.16b, v2.16b, v8.16b + eor v13.16b, v4.16b, v3.16b + ldr q3, [x20], #16 + ext v4.16b, v2.16b, v2.16b, #8 + eor v2.16b, v3.16b, v13.16b + ldr q3, [x20], #16 + add v5.2d, v13.2d, v13.2d + cmtst v7.2d, v13.2d, v6.2d + and v7.16b, v7.16b, v8.16b + ldr q9, [x20], #16 + ext v7.16b, v7.16b, v7.16b, #8 + ldr q10, [x20], #16 + eor v14.16b, v5.16b, v4.16b + ldr q16, [x20], #16 + add v4.2d, v14.2d, v14.2d + eor v3.16b, v3.16b, v14.16b + eor v15.16b, v4.16b, v7.16b + add v5.2d, v15.2d, v15.2d + ldr q7, [x20], #16 + cmtst v4.2d, v14.2d, v6.2d + and v17.16b, v4.16b, v8.16b + cmtst v18.2d, v15.2d, v6.2d + eor v4.16b, v9.16b, v15.16b + ext v9.16b, v17.16b, v17.16b, #8 + eor v9.16b, v5.16b, v9.16b + add v17.2d, v9.2d, v9.2d + and v18.16b, v18.16b, v8.16b + eor v5.16b, v10.16b, v9.16b + str q9, [x2], #16 + ext v10.16b, v18.16b, v18.16b, #8 + cmtst v9.2d, v9.2d, v6.2d + and v9.16b, v9.16b, v8.16b + eor v10.16b, v17.16b, v10.16b + cmtst v17.2d, v10.2d, v6.2d + eor v6.16b, v16.16b, v10.16b + str q10, [x2], #16 + ext v9.16b, v9.16b, v9.16b, #8 + add v10.2d, v10.2d, v10.2d + eor v9.16b, v10.16b, v9.16b + str q9, [x2], #16 + eor v7.16b, v7.16b, v9.16b + add v9.2d, v9.2d, v9.2d + and v8.16b, v17.16b, v8.16b + ext v8.16b, v8.16b, v8.16b, #8 + eor v8.16b, v9.16b, v8.16b + str q8, [x2] // next round tweak + + bl _bsaes_encrypt8 + + ldr q8, [x0], #16 + eor v0.16b, v0.16b, v11.16b + eor v1.16b, v1.16b, v12.16b + ldr q9, [x0], #16 + eor v4.16b, v4.16b, v13.16b + eor v6.16b, v6.16b, v14.16b + ldr q10, [x0], #16 + eor v3.16b, v3.16b, v15.16b + subs x22, x22, #0x80 + str q0, [x21], #16 + ldr q11, [x0] // next round tweak + str q1, [x21], #16 + eor v0.16b, v7.16b, v8.16b + eor v1.16b, v2.16b, v9.16b + str q4, [x21], #16 + eor v2.16b, v5.16b, v10.16b + str q6, [x21], #16 + str q3, [x21], #16 + str q0, [x21], #16 + str q1, [x21], #16 + str q2, [x21], #16 + bpl .Lxts_enc_loop + +.Lxts_enc_short: + adds x22, x22, #0x70 + bmi .Lxts_enc_done + + ldr q8, .Lxts_magic + sshr v1.2d, v11.2d, #63 + add v2.2d, v11.2d, v11.2d + ldr q9, .Lxts_magic+16 + subs x22, x22, #0x10 + ldr q0, [x20], #16 + and v1.16b, v1.16b, v8.16b + cmtst v3.2d, v11.2d, v9.2d + ext v1.16b, v1.16b, v1.16b, #8 + and v3.16b, v3.16b, v8.16b + eor v12.16b, v2.16b, v1.16b + ext v1.16b, v3.16b, v3.16b, #8 + add v2.2d, v12.2d, v12.2d + cmtst v3.2d, v12.2d, v9.2d + eor v13.16b, v2.16b, v1.16b + and v22.16b, v3.16b, v8.16b + bmi .Lxts_enc_1 + + ext v2.16b, v22.16b, v22.16b, #8 + add v3.2d, v13.2d, v13.2d + ldr q1, [x20], #16 + cmtst v4.2d, v13.2d, v9.2d + subs x22, x22, #0x10 + eor v14.16b, v3.16b, v2.16b + and v23.16b, v4.16b, v8.16b + bmi .Lxts_enc_2 + + ext v3.16b, v23.16b, v23.16b, #8 + add v4.2d, v14.2d, v14.2d + ldr q2, [x20], #16 + cmtst v5.2d, v14.2d, v9.2d + eor v0.16b, v0.16b, v11.16b + subs x22, x22, #0x10 + eor v15.16b, v4.16b, v3.16b + and v24.16b, v5.16b, v8.16b + bmi .Lxts_enc_3 + + ext v4.16b, v24.16b, v24.16b, #8 + add v5.2d, v15.2d, v15.2d + ldr q3, [x20], #16 + cmtst v6.2d, v15.2d, v9.2d + eor v1.16b, v1.16b, v12.16b + subs x22, x22, #0x10 + eor v16.16b, v5.16b, v4.16b + and v25.16b, v6.16b, v8.16b + bmi .Lxts_enc_4 + + ext v5.16b, v25.16b, v25.16b, #8 + add v6.2d, v16.2d, v16.2d + add x0, x19, #16 + cmtst v7.2d, v16.2d, v9.2d + ldr q4, [x20], #16 + eor v2.16b, v2.16b, v13.16b + str q16, [x0], #16 + subs x22, x22, #0x10 + eor v17.16b, v6.16b, v5.16b + and v26.16b, v7.16b, v8.16b + bmi .Lxts_enc_5 + + ext v7.16b, v26.16b, v26.16b, #8 + add v18.2d, v17.2d, v17.2d + ldr q5, [x20], #16 + eor v3.16b, v3.16b, v14.16b + str q17, [x0], #16 + subs x22, x22, #0x10 + eor v18.16b, v18.16b, v7.16b + bmi .Lxts_enc_6 + + ldr q6, [x20], #16 + eor v4.16b, v4.16b, v15.16b + eor v5.16b, v5.16b, v16.16b + str q18, [x0] // next round tweak + mov x9, sp // pass key schedule + mov x10, x1 + add x0, x19, #16 + sub x22, x22, #0x10 + eor v6.16b, v6.16b, v17.16b + + bl _bsaes_encrypt8 + + ldr q16, [x0], #16 + eor v0.16b, v0.16b, v11.16b + eor v1.16b, v1.16b, v12.16b + ldr q17, [x0], #16 + eor v4.16b, v4.16b, v13.16b + eor v6.16b, v6.16b, v14.16b + eor v3.16b, v3.16b, v15.16b + ldr q11, [x0] // next round tweak + str q0, [x21], #16 + str q1, [x21], #16 + eor v0.16b, v7.16b, v16.16b + eor v1.16b, v2.16b, v17.16b + str q4, [x21], #16 + str q6, [x21], #16 + str q3, [x21], #16 + str q0, [x21], #16 + str q1, [x21], #16 + b .Lxts_enc_done + +.align 4 +.Lxts_enc_6: + eor v4.16b, v4.16b, v15.16b + eor v5.16b, v5.16b, v16.16b + mov x9, sp // pass key schedule + mov x10, x1 // pass rounds + add x0, x19, #16 + + bl _bsaes_encrypt8 + + ldr q16, [x0], #16 + eor v0.16b, v0.16b, v11.16b + eor v1.16b, v1.16b, v12.16b + eor v4.16b, v4.16b, v13.16b + eor v6.16b, v6.16b, v14.16b + ldr q11, [x0] // next round tweak + eor v3.16b, v3.16b, v15.16b + str q0, [x21], #16 + str q1, [x21], #16 + eor v0.16b, v7.16b, v16.16b + str q4, [x21], #16 + str q6, [x21], #16 + str q3, [x21], #16 + str q0, [x21], #16 + b .Lxts_enc_done + +.align 4 +.Lxts_enc_5: + eor v3.16b, v3.16b, v14.16b + eor v4.16b, v4.16b, v15.16b + mov x9, sp // pass key schedule + mov x10, x1 // pass rounds + add x0, x19, #16 + + bl _bsaes_encrypt8 + + eor v0.16b, v0.16b, v11.16b + eor v1.16b, v1.16b, v12.16b + ldr q11, [x0] // next round tweak + eor v4.16b, v4.16b, v13.16b + eor v6.16b, v6.16b, v14.16b + eor v3.16b, v3.16b, v15.16b + str q0, [x21], #16 + str q1, [x21], #16 + str q4, [x21], #16 + str q6, [x21], #16 + str q3, [x21], #16 + b .Lxts_enc_done + +.align 4 +.Lxts_enc_4: + eor v2.16b, v2.16b, v13.16b + eor v3.16b, v3.16b, v14.16b + mov x9, sp // pass key schedule + mov x10, x1 // pass rounds + add x0, x19, #16 + + bl _bsaes_encrypt8 + + eor v0.16b, v0.16b, v11.16b + eor v1.16b, v1.16b, v12.16b + eor v4.16b, v4.16b, v13.16b + eor v6.16b, v6.16b, v14.16b + mov v11.16b, v15.16b // next round tweak + str q0, [x21], #16 + str q1, [x21], #16 + str q4, [x21], #16 + str q6, [x21], #16 + b .Lxts_enc_done + +.align 4 +.Lxts_enc_3: + eor v1.16b, v1.16b, v12.16b + eor v2.16b, v2.16b, v13.16b + mov x9, sp // pass key schedule + mov x10, x1 // pass rounds + add x0, x19, #16 + + bl _bsaes_encrypt8 + + eor v0.16b, v0.16b, v11.16b + eor v1.16b, v1.16b, v12.16b + eor v4.16b, v4.16b, v13.16b + mov v11.16b, v14.16b // next round tweak + str q0, [x21], #16 + str q1, [x21], #16 + str q4, [x21], #16 + b .Lxts_enc_done + +.align 4 +.Lxts_enc_2: + eor v0.16b, v0.16b, v11.16b + eor v1.16b, v1.16b, v12.16b + mov x9, sp // pass key schedule + mov x10, x1 // pass rounds + add x0, x19, #16 + + bl _bsaes_encrypt8 + + eor v0.16b, v0.16b, v11.16b + eor v1.16b, v1.16b, v12.16b + mov v11.16b, v13.16b // next round tweak + str q0, [x21], #16 + str q1, [x21], #16 + b .Lxts_enc_done + +.align 4 +.Lxts_enc_1: + eor v0.16b, v0.16b, v11.16b + sub x0, sp, #16 + sub x1, sp, #16 + mov x2, x23 + mov v13.d[0], v11.d[1] // just in case AES_encrypt corrupts top half of callee-saved SIMD registers + mov v14.d[0], v12.d[1] + str q0, [sp, #-16]! + + bl AES_encrypt + + ldr q0, [sp], #16 + trn1 v13.2d, v11.2d, v13.2d + trn1 v11.2d, v12.2d, v14.2d // next round tweak + eor v0.16b, v0.16b, v13.16b + str q0, [x21], #16 + +.Lxts_enc_done: + adds x22, x22, #0x10 + beq .Lxts_enc_ret + + sub x6, x21, #0x10 + // Penultimate plaintext block produces final ciphertext part-block + // plus remaining part of final plaintext block. Move ciphertext part + // to final position and reuse penultimate ciphertext block buffer to + // construct final plaintext block +.Lxts_enc_steal: + ldrb w0, [x20], #1 + ldrb w1, [x21, #-0x10] + strb w0, [x21, #-0x10] + strb w1, [x21], #1 + + subs x22, x22, #1 + bhi .Lxts_enc_steal + + // Finally encrypt the penultimate ciphertext block using the + // last tweak + ldr q0, [x6] + eor v0.16b, v0.16b, v11.16b + str q0, [sp, #-16]! + mov x0, sp + mov x1, sp + mov x2, x23 + mov x21, x6 + mov v13.d[0], v11.d[1] // just in case AES_encrypt corrupts top half of callee-saved SIMD registers + + bl AES_encrypt + + trn1 v11.2d, v11.2d, v13.2d + ldr q0, [sp], #16 + eor v0.16b, v0.16b, v11.16b + str q0, [x21] + +.Lxts_enc_ret: + + movi v0.16b, #0 + movi v1.16b, #0 +.Lxts_enc_bzero: // wipe key schedule + stp q0, q1, [sp], #32 + cmp sp, x19 + bne .Lxts_enc_bzero + + ldp x19, x20, [sp, #80] + ldp x21, x22, [sp, #96] + ldr x23, [sp, #112] + ldp d8, d9, [sp, #128] + ldp d10, d11, [sp, #144] + ldp d12, d13, [sp, #160] + ldp d14, d15, [sp, #176] + ldp x29, x30, [sp], #192 + ret +.size ossl_bsaes_xts_encrypt,.-ossl_bsaes_xts_encrypt + +// The assembler doesn't seem capable of de-duplicating these when expressed +// using `ldr qd,=` syntax, so assign a symbolic address +.align 5 +.Lxts_magic: +.quad 1, 0x87, 0x4000000000000000, 0x4000000000000000 + +.globl ossl_bsaes_xts_decrypt +.type ossl_bsaes_xts_decrypt,%function +.align 4 +// On entry: +// x0 -> input ciphertext +// x1 -> output plaintext +// x2 -> length of text in bytes (must be at least 16) +// x3 -> key1 (used to decrypt the XORed ciphertext blocks) +// x4 -> key2 (used to encrypt the initial vector to yield the initial tweak) +// x5 -> 16-byte initial vector (typically, sector number) +// On exit: +// Output plaintext filled in +// No output registers, usual AAPCS64 register preservation +ossl_bsaes_xts_decrypt: + AARCH64_VALID_CALL_TARGET + // Stack layout: + // sp -> + // nrounds*128-96 bytes: key schedule + // x19 -> + // 16 bytes: frame record + // 4*16 bytes: tweak storage across _bsaes_decrypt8 + // 6*8 bytes: storage for 5 callee-saved general-purpose registers + // 8*8 bytes: storage for 8 callee-saved SIMD registers + stp x29, x30, [sp, #-192]! + stp x19, x20, [sp, #80] + stp x21, x22, [sp, #96] + str x23, [sp, #112] + stp d8, d9, [sp, #128] + stp d10, d11, [sp, #144] + stp d12, d13, [sp, #160] + stp d14, d15, [sp, #176] + + mov x19, sp + mov x20, x0 + mov x21, x1 + mov x22, x2 + mov x23, x3 + + // generate initial tweak + sub sp, sp, #16 + mov x0, x5 // iv[] + mov x1, sp + mov x2, x4 // key2 + bl AES_encrypt + ldr q11, [sp], #16 + + ldr w1, [x23, #240] // get # of rounds + // allocate the key schedule on the stack + add x17, sp, #96 + sub x17, x17, x1, lsl #7 // 128 bytes per inner round key, less 96 bytes + + // populate the key schedule + mov x9, x23 // pass key + mov x10, x1 // pass # of rounds + mov sp, x17 + bl _bsaes_key_convert + ldr q6, [sp] + str q15, [x17] // save last round key + eor v6.16b, v6.16b, v7.16b // fix up round 0 key (by XORing with 0x63) + str q6, [sp] + + sub x30, x22, #0x10 + tst x22, #0xf // if not multiple of 16 + csel x22, x30, x22, ne // subtract another 16 bytes + subs x22, x22, #0x80 + + blo .Lxts_dec_short + b .Lxts_dec_loop + +.align 4 +.Lxts_dec_loop: + ldr q8, .Lxts_magic + mov x10, x1 // pass rounds + add x2, x19, #16 + ldr q0, [x20], #16 + sshr v1.2d, v11.2d, #63 + mov x9, sp // pass key schedule + ldr q6, .Lxts_magic+16 + add v2.2d, v11.2d, v11.2d + cmtst v3.2d, v11.2d, v6.2d + and v1.16b, v1.16b, v8.16b + ext v1.16b, v1.16b, v1.16b, #8 + and v3.16b, v3.16b, v8.16b + ldr q4, [x20], #16 + eor v12.16b, v2.16b, v1.16b + eor v1.16b, v4.16b, v12.16b + eor v0.16b, v0.16b, v11.16b + cmtst v2.2d, v12.2d, v6.2d + add v4.2d, v12.2d, v12.2d + add x0, x19, #16 + ext v3.16b, v3.16b, v3.16b, #8 + and v2.16b, v2.16b, v8.16b + eor v13.16b, v4.16b, v3.16b + ldr q3, [x20], #16 + ext v4.16b, v2.16b, v2.16b, #8 + eor v2.16b, v3.16b, v13.16b + ldr q3, [x20], #16 + add v5.2d, v13.2d, v13.2d + cmtst v7.2d, v13.2d, v6.2d + and v7.16b, v7.16b, v8.16b + ldr q9, [x20], #16 + ext v7.16b, v7.16b, v7.16b, #8 + ldr q10, [x20], #16 + eor v14.16b, v5.16b, v4.16b + ldr q16, [x20], #16 + add v4.2d, v14.2d, v14.2d + eor v3.16b, v3.16b, v14.16b + eor v15.16b, v4.16b, v7.16b + add v5.2d, v15.2d, v15.2d + ldr q7, [x20], #16 + cmtst v4.2d, v14.2d, v6.2d + and v17.16b, v4.16b, v8.16b + cmtst v18.2d, v15.2d, v6.2d + eor v4.16b, v9.16b, v15.16b + ext v9.16b, v17.16b, v17.16b, #8 + eor v9.16b, v5.16b, v9.16b + add v17.2d, v9.2d, v9.2d + and v18.16b, v18.16b, v8.16b + eor v5.16b, v10.16b, v9.16b + str q9, [x2], #16 + ext v10.16b, v18.16b, v18.16b, #8 + cmtst v9.2d, v9.2d, v6.2d + and v9.16b, v9.16b, v8.16b + eor v10.16b, v17.16b, v10.16b + cmtst v17.2d, v10.2d, v6.2d + eor v6.16b, v16.16b, v10.16b + str q10, [x2], #16 + ext v9.16b, v9.16b, v9.16b, #8 + add v10.2d, v10.2d, v10.2d + eor v9.16b, v10.16b, v9.16b + str q9, [x2], #16 + eor v7.16b, v7.16b, v9.16b + add v9.2d, v9.2d, v9.2d + and v8.16b, v17.16b, v8.16b + ext v8.16b, v8.16b, v8.16b, #8 + eor v8.16b, v9.16b, v8.16b + str q8, [x2] // next round tweak + + bl _bsaes_decrypt8 + + eor v6.16b, v6.16b, v13.16b + eor v0.16b, v0.16b, v11.16b + ldr q8, [x0], #16 + eor v7.16b, v7.16b, v8.16b + str q0, [x21], #16 + eor v0.16b, v1.16b, v12.16b + ldr q1, [x0], #16 + eor v1.16b, v3.16b, v1.16b + subs x22, x22, #0x80 + eor v2.16b, v2.16b, v15.16b + eor v3.16b, v4.16b, v14.16b + ldr q4, [x0], #16 + str q0, [x21], #16 + ldr q11, [x0] // next round tweak + eor v0.16b, v5.16b, v4.16b + str q6, [x21], #16 + str q3, [x21], #16 + str q2, [x21], #16 + str q7, [x21], #16 + str q1, [x21], #16 + str q0, [x21], #16 + bpl .Lxts_dec_loop + +.Lxts_dec_short: + adds x22, x22, #0x70 + bmi .Lxts_dec_done + + ldr q8, .Lxts_magic + sshr v1.2d, v11.2d, #63 + add v2.2d, v11.2d, v11.2d + ldr q9, .Lxts_magic+16 + subs x22, x22, #0x10 + ldr q0, [x20], #16 + and v1.16b, v1.16b, v8.16b + cmtst v3.2d, v11.2d, v9.2d + ext v1.16b, v1.16b, v1.16b, #8 + and v3.16b, v3.16b, v8.16b + eor v12.16b, v2.16b, v1.16b + ext v1.16b, v3.16b, v3.16b, #8 + add v2.2d, v12.2d, v12.2d + cmtst v3.2d, v12.2d, v9.2d + eor v13.16b, v2.16b, v1.16b + and v22.16b, v3.16b, v8.16b + bmi .Lxts_dec_1 + + ext v2.16b, v22.16b, v22.16b, #8 + add v3.2d, v13.2d, v13.2d + ldr q1, [x20], #16 + cmtst v4.2d, v13.2d, v9.2d + subs x22, x22, #0x10 + eor v14.16b, v3.16b, v2.16b + and v23.16b, v4.16b, v8.16b + bmi .Lxts_dec_2 + + ext v3.16b, v23.16b, v23.16b, #8 + add v4.2d, v14.2d, v14.2d + ldr q2, [x20], #16 + cmtst v5.2d, v14.2d, v9.2d + eor v0.16b, v0.16b, v11.16b + subs x22, x22, #0x10 + eor v15.16b, v4.16b, v3.16b + and v24.16b, v5.16b, v8.16b + bmi .Lxts_dec_3 + + ext v4.16b, v24.16b, v24.16b, #8 + add v5.2d, v15.2d, v15.2d + ldr q3, [x20], #16 + cmtst v6.2d, v15.2d, v9.2d + eor v1.16b, v1.16b, v12.16b + subs x22, x22, #0x10 + eor v16.16b, v5.16b, v4.16b + and v25.16b, v6.16b, v8.16b + bmi .Lxts_dec_4 + + ext v5.16b, v25.16b, v25.16b, #8 + add v6.2d, v16.2d, v16.2d + add x0, x19, #16 + cmtst v7.2d, v16.2d, v9.2d + ldr q4, [x20], #16 + eor v2.16b, v2.16b, v13.16b + str q16, [x0], #16 + subs x22, x22, #0x10 + eor v17.16b, v6.16b, v5.16b + and v26.16b, v7.16b, v8.16b + bmi .Lxts_dec_5 + + ext v7.16b, v26.16b, v26.16b, #8 + add v18.2d, v17.2d, v17.2d + ldr q5, [x20], #16 + eor v3.16b, v3.16b, v14.16b + str q17, [x0], #16 + subs x22, x22, #0x10 + eor v18.16b, v18.16b, v7.16b + bmi .Lxts_dec_6 + + ldr q6, [x20], #16 + eor v4.16b, v4.16b, v15.16b + eor v5.16b, v5.16b, v16.16b + str q18, [x0] // next round tweak + mov x9, sp // pass key schedule + mov x10, x1 + add x0, x19, #16 + sub x22, x22, #0x10 + eor v6.16b, v6.16b, v17.16b + + bl _bsaes_decrypt8 + + ldr q16, [x0], #16 + eor v0.16b, v0.16b, v11.16b + eor v1.16b, v1.16b, v12.16b + ldr q17, [x0], #16 + eor v6.16b, v6.16b, v13.16b + eor v4.16b, v4.16b, v14.16b + eor v2.16b, v2.16b, v15.16b + ldr q11, [x0] // next round tweak + str q0, [x21], #16 + str q1, [x21], #16 + eor v0.16b, v7.16b, v16.16b + eor v1.16b, v3.16b, v17.16b + str q6, [x21], #16 + str q4, [x21], #16 + str q2, [x21], #16 + str q0, [x21], #16 + str q1, [x21], #16 + b .Lxts_dec_done + +.align 4 +.Lxts_dec_6: + eor v4.16b, v4.16b, v15.16b + eor v5.16b, v5.16b, v16.16b + mov x9, sp // pass key schedule + mov x10, x1 // pass rounds + add x0, x19, #16 + + bl _bsaes_decrypt8 + + ldr q16, [x0], #16 + eor v0.16b, v0.16b, v11.16b + eor v1.16b, v1.16b, v12.16b + eor v6.16b, v6.16b, v13.16b + eor v4.16b, v4.16b, v14.16b + ldr q11, [x0] // next round tweak + eor v2.16b, v2.16b, v15.16b + str q0, [x21], #16 + str q1, [x21], #16 + eor v0.16b, v7.16b, v16.16b + str q6, [x21], #16 + str q4, [x21], #16 + str q2, [x21], #16 + str q0, [x21], #16 + b .Lxts_dec_done + +.align 4 +.Lxts_dec_5: + eor v3.16b, v3.16b, v14.16b + eor v4.16b, v4.16b, v15.16b + mov x9, sp // pass key schedule + mov x10, x1 // pass rounds + add x0, x19, #16 + + bl _bsaes_decrypt8 + + eor v0.16b, v0.16b, v11.16b + eor v1.16b, v1.16b, v12.16b + ldr q11, [x0] // next round tweak + eor v6.16b, v6.16b, v13.16b + eor v4.16b, v4.16b, v14.16b + eor v2.16b, v2.16b, v15.16b + str q0, [x21], #16 + str q1, [x21], #16 + str q6, [x21], #16 + str q4, [x21], #16 + str q2, [x21], #16 + b .Lxts_dec_done + +.align 4 +.Lxts_dec_4: + eor v2.16b, v2.16b, v13.16b + eor v3.16b, v3.16b, v14.16b + mov x9, sp // pass key schedule + mov x10, x1 // pass rounds + add x0, x19, #16 + + bl _bsaes_decrypt8 + + eor v0.16b, v0.16b, v11.16b + eor v1.16b, v1.16b, v12.16b + eor v6.16b, v6.16b, v13.16b + eor v4.16b, v4.16b, v14.16b + mov v11.16b, v15.16b // next round tweak + str q0, [x21], #16 + str q1, [x21], #16 + str q6, [x21], #16 + str q4, [x21], #16 + b .Lxts_dec_done + +.align 4 +.Lxts_dec_3: + eor v1.16b, v1.16b, v12.16b + eor v2.16b, v2.16b, v13.16b + mov x9, sp // pass key schedule + mov x10, x1 // pass rounds + add x0, x19, #16 + + bl _bsaes_decrypt8 + + eor v0.16b, v0.16b, v11.16b + eor v1.16b, v1.16b, v12.16b + eor v6.16b, v6.16b, v13.16b + mov v11.16b, v14.16b // next round tweak + str q0, [x21], #16 + str q1, [x21], #16 + str q6, [x21], #16 + b .Lxts_dec_done + +.align 4 +.Lxts_dec_2: + eor v0.16b, v0.16b, v11.16b + eor v1.16b, v1.16b, v12.16b + mov x9, sp // pass key schedule + mov x10, x1 // pass rounds + add x0, x19, #16 + + bl _bsaes_decrypt8 + + eor v0.16b, v0.16b, v11.16b + eor v1.16b, v1.16b, v12.16b + mov v11.16b, v13.16b // next round tweak + str q0, [x21], #16 + str q1, [x21], #16 + b .Lxts_dec_done + +.align 4 +.Lxts_dec_1: + eor v0.16b, v0.16b, v11.16b + sub x0, sp, #16 + sub x1, sp, #16 + mov x2, x23 + mov v13.d[0], v11.d[1] // just in case AES_decrypt corrupts top half of callee-saved SIMD registers + mov v14.d[0], v12.d[1] + str q0, [sp, #-16]! + + bl AES_decrypt + + ldr q0, [sp], #16 + trn1 v13.2d, v11.2d, v13.2d + trn1 v11.2d, v12.2d, v14.2d // next round tweak + eor v0.16b, v0.16b, v13.16b + str q0, [x21], #16 + +.Lxts_dec_done: + adds x22, x22, #0x10 + beq .Lxts_dec_ret + + // calculate one round of extra tweak for the stolen ciphertext + ldr q8, .Lxts_magic + sshr v6.2d, v11.2d, #63 + and v6.16b, v6.16b, v8.16b + add v12.2d, v11.2d, v11.2d + ext v6.16b, v6.16b, v6.16b, #8 + eor v12.16b, v12.16b, v6.16b + + // perform the final decryption with the last tweak value + ldr q0, [x20], #16 + eor v0.16b, v0.16b, v12.16b + str q0, [sp, #-16]! + mov x0, sp + mov x1, sp + mov x2, x23 + mov v13.d[0], v11.d[1] // just in case AES_decrypt corrupts top half of callee-saved SIMD registers + mov v14.d[0], v12.d[1] + + bl AES_decrypt + + trn1 v12.2d, v12.2d, v14.2d + trn1 v11.2d, v11.2d, v13.2d + ldr q0, [sp], #16 + eor v0.16b, v0.16b, v12.16b + str q0, [x21] + + mov x6, x21 + // Penultimate ciphertext block produces final plaintext part-block + // plus remaining part of final ciphertext block. Move plaintext part + // to final position and reuse penultimate plaintext block buffer to + // construct final ciphertext block +.Lxts_dec_steal: + ldrb w1, [x21] + ldrb w0, [x20], #1 + strb w1, [x21, #0x10] + strb w0, [x21], #1 + + subs x22, x22, #1 + bhi .Lxts_dec_steal + + // Finally decrypt the penultimate plaintext block using the + // penultimate tweak + ldr q0, [x6] + eor v0.16b, v0.16b, v11.16b + str q0, [sp, #-16]! + mov x0, sp + mov x1, sp + mov x2, x23 + mov x21, x6 + + bl AES_decrypt + + trn1 v11.2d, v11.2d, v13.2d + ldr q0, [sp], #16 + eor v0.16b, v0.16b, v11.16b + str q0, [x21] + +.Lxts_dec_ret: + + movi v0.16b, #0 + movi v1.16b, #0 +.Lxts_dec_bzero: // wipe key schedule + stp q0, q1, [sp], #32 + cmp sp, x19 + bne .Lxts_dec_bzero + + ldp x19, x20, [sp, #80] + ldp x21, x22, [sp, #96] + ldr x23, [sp, #112] + ldp d8, d9, [sp, #128] + ldp d10, d11, [sp, #144] + ldp d12, d13, [sp, #160] + ldp d14, d15, [sp, #176] + ldp x29, x30, [sp], #192 + ret +.size ossl_bsaes_xts_decrypt,.-ossl_bsaes_xts_decrypt diff --git a/deps/openssl/config/archs/linux-aarch64/asm_avx2/crypto/aes/vpaes-armv8.S b/deps/openssl/config/archs/linux-aarch64/asm_avx2/crypto/aes/vpaes-armv8.S index 4724cdfd27fc89..9d9be004162d3e 100644 --- a/deps/openssl/config/archs/linux-aarch64/asm_avx2/crypto/aes/vpaes-armv8.S +++ b/deps/openssl/config/archs/linux-aarch64/asm_avx2/crypto/aes/vpaes-armv8.S @@ -1,4 +1,6 @@ -.text +#include "arm_arch.h" + +.section .rodata .type _vpaes_consts,%object .align 7 // totally strategic alignment @@ -90,6 +92,9 @@ _vpaes_consts: .align 2 .size _vpaes_consts,.-_vpaes_consts .align 6 + +.text + // // _aes_preheat // @@ -99,7 +104,8 @@ _vpaes_consts: .type _vpaes_encrypt_preheat,%function .align 4 _vpaes_encrypt_preheat: - adr x10, .Lk_inv + adrp x10, .Lk_inv + add x10, x10, #:lo12:.Lk_inv movi v17.16b, #0x0f ld1 {v18.2d,v19.2d}, [x10],#32 // .Lk_inv ld1 {v20.2d,v21.2d,v22.2d,v23.2d}, [x10],#64 // .Lk_ipt, .Lk_sbo @@ -127,7 +133,8 @@ _vpaes_encrypt_preheat: _vpaes_encrypt_core: mov x9, x2 ldr w8, [x2,#240] // pull rounds - adr x11, .Lk_mc_forward+16 + adrp x11, .Lk_mc_forward+16 + add x11, x11, #:lo12:.Lk_mc_forward+16 // vmovdqa .Lk_ipt(%rip), %xmm2 # iptlo ld1 {v16.2d}, [x9], #16 // vmovdqu (%r9), %xmm5 # round0 key and v1.16b, v7.16b, v17.16b // vpand %xmm9, %xmm0, %xmm1 @@ -195,7 +202,7 @@ _vpaes_encrypt_core: .type vpaes_encrypt,%function .align 4 vpaes_encrypt: -.inst 0xd503233f // paciasp + AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-16]! add x29,sp,#0 @@ -205,7 +212,7 @@ vpaes_encrypt: st1 {v0.16b}, [x1] ldp x29,x30,[sp],#16 -.inst 0xd50323bf // autiasp + AARCH64_VALIDATE_LINK_REGISTER ret .size vpaes_encrypt,.-vpaes_encrypt @@ -214,7 +221,8 @@ vpaes_encrypt: _vpaes_encrypt_2x: mov x9, x2 ldr w8, [x2,#240] // pull rounds - adr x11, .Lk_mc_forward+16 + adrp x11, .Lk_mc_forward+16 + add x11, x11, #:lo12:.Lk_mc_forward+16 // vmovdqa .Lk_ipt(%rip), %xmm2 # iptlo ld1 {v16.2d}, [x9], #16 // vmovdqu (%r9), %xmm5 # round0 key and v1.16b, v14.16b, v17.16b // vpand %xmm9, %xmm0, %xmm1 @@ -317,9 +325,11 @@ _vpaes_encrypt_2x: .type _vpaes_decrypt_preheat,%function .align 4 _vpaes_decrypt_preheat: - adr x10, .Lk_inv + adrp x10, .Lk_inv + add x10, x10, #:lo12:.Lk_inv movi v17.16b, #0x0f - adr x11, .Lk_dipt + adrp x11, .Lk_dipt + add x11, x11, #:lo12:.Lk_dipt ld1 {v18.2d,v19.2d}, [x10],#32 // .Lk_inv ld1 {v20.2d,v21.2d,v22.2d,v23.2d}, [x11],#64 // .Lk_dipt, .Lk_dsbo ld1 {v24.2d,v25.2d,v26.2d,v27.2d}, [x11],#64 // .Lk_dsb9, .Lk_dsbd @@ -341,10 +351,12 @@ _vpaes_decrypt_core: // vmovdqa .Lk_dipt(%rip), %xmm2 # iptlo lsl x11, x8, #4 // mov %rax, %r11; shl $4, %r11 eor x11, x11, #0x30 // xor $0x30, %r11 - adr x10, .Lk_sr + adrp x10, .Lk_sr + add x10, x10, #:lo12:.Lk_sr and x11, x11, #0x30 // and $0x30, %r11 add x11, x11, x10 - adr x10, .Lk_mc_forward+48 + adrp x10, .Lk_mc_forward+48 + add x10, x10, #:lo12:.Lk_mc_forward+48 ld1 {v16.2d}, [x9],#16 // vmovdqu (%r9), %xmm4 # round0 key and v1.16b, v7.16b, v17.16b // vpand %xmm9, %xmm0, %xmm1 @@ -428,7 +440,7 @@ _vpaes_decrypt_core: .type vpaes_decrypt,%function .align 4 vpaes_decrypt: -.inst 0xd503233f // paciasp + AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-16]! add x29,sp,#0 @@ -438,7 +450,7 @@ vpaes_decrypt: st1 {v0.16b}, [x1] ldp x29,x30,[sp],#16 -.inst 0xd50323bf // autiasp + AARCH64_VALIDATE_LINK_REGISTER ret .size vpaes_decrypt,.-vpaes_decrypt @@ -452,10 +464,12 @@ _vpaes_decrypt_2x: // vmovdqa .Lk_dipt(%rip), %xmm2 # iptlo lsl x11, x8, #4 // mov %rax, %r11; shl $4, %r11 eor x11, x11, #0x30 // xor $0x30, %r11 - adr x10, .Lk_sr + adrp x10, .Lk_sr + add x10, x10, #:lo12:.Lk_sr and x11, x11, #0x30 // and $0x30, %r11 add x11, x11, x10 - adr x10, .Lk_mc_forward+48 + adrp x10, .Lk_mc_forward+48 + add x10, x10, #:lo12:.Lk_mc_forward+48 ld1 {v16.2d}, [x9],#16 // vmovdqu (%r9), %xmm4 # round0 key and v1.16b, v14.16b, v17.16b // vpand %xmm9, %xmm0, %xmm1 @@ -584,14 +598,18 @@ _vpaes_decrypt_2x: .type _vpaes_key_preheat,%function .align 4 _vpaes_key_preheat: - adr x10, .Lk_inv + adrp x10, .Lk_inv + add x10, x10, #:lo12:.Lk_inv movi v16.16b, #0x5b // .Lk_s63 - adr x11, .Lk_sb1 + adrp x11, .Lk_sb1 + add x11, x11, #:lo12:.Lk_sb1 movi v17.16b, #0x0f // .Lk_s0F ld1 {v18.2d,v19.2d,v20.2d,v21.2d}, [x10] // .Lk_inv, .Lk_ipt - adr x10, .Lk_dksd + adrp x10, .Lk_dksd + add x10, x10, #:lo12:.Lk_dksd ld1 {v22.2d,v23.2d}, [x11] // .Lk_sb1 - adr x11, .Lk_mc_forward + adrp x11, .Lk_mc_forward + add x11, x11, #:lo12:.Lk_mc_forward ld1 {v24.2d,v25.2d,v26.2d,v27.2d}, [x10],#64 // .Lk_dksd, .Lk_dksb ld1 {v28.2d,v29.2d,v30.2d,v31.2d}, [x10],#64 // .Lk_dkse, .Lk_dks9 ld1 {v8.2d}, [x10] // .Lk_rcon @@ -602,7 +620,7 @@ _vpaes_key_preheat: .type _vpaes_schedule_core,%function .align 4 _vpaes_schedule_core: -.inst 0xd503233f // paciasp + AARCH64_SIGN_LINK_REGISTER stp x29, x30, [sp,#-16]! add x29,sp,#0 @@ -615,7 +633,8 @@ _vpaes_schedule_core: bl _vpaes_schedule_transform mov v7.16b, v0.16b // vmovdqa %xmm0, %xmm7 - adr x10, .Lk_sr // lea .Lk_sr(%rip),%r10 + adrp x10, .Lk_sr + add x10, x10, #:lo12:.Lk_sr add x8, x8, x10 cbnz w3, .Lschedule_am_decrypting @@ -741,12 +760,14 @@ _vpaes_schedule_core: .align 4 .Lschedule_mangle_last: // schedule last round key from xmm0 - adr x11, .Lk_deskew // lea .Lk_deskew(%rip),%r11 # prepare to deskew + adrp x11, .Lk_deskew + add x11, x11, #:lo12:.Lk_deskew cbnz w3, .Lschedule_mangle_last_dec // encrypting ld1 {v1.2d}, [x8] // vmovdqa (%r8,%r10),%xmm1 - adr x11, .Lk_opt // lea .Lk_opt(%rip), %r11 # prepare to output transform + adrp x11, .Lk_opt + add x11, x11, #:lo12:.Lk_opt add x2, x2, #32 // add $32, %rdx tbl v0.16b, {v0.16b}, v1.16b // vpshufb %xmm1, %xmm0, %xmm0 # output permute @@ -767,7 +788,7 @@ _vpaes_schedule_core: eor v6.16b, v6.16b, v6.16b // vpxor %xmm6, %xmm6, %xmm6 eor v7.16b, v7.16b, v7.16b // vpxor %xmm7, %xmm7, %xmm7 ldp x29, x30, [sp],#16 -.inst 0xd50323bf // autiasp + AARCH64_VALIDATE_LINK_REGISTER ret .size _vpaes_schedule_core,.-_vpaes_schedule_core @@ -980,7 +1001,7 @@ _vpaes_schedule_mangle: .type vpaes_set_encrypt_key,%function .align 4 vpaes_set_encrypt_key: -.inst 0xd503233f // paciasp + AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-16]! add x29,sp,#0 stp d8,d9,[sp,#-16]! // ABI spec says so @@ -996,7 +1017,7 @@ vpaes_set_encrypt_key: ldp d8,d9,[sp],#16 ldp x29,x30,[sp],#16 -.inst 0xd50323bf // autiasp + AARCH64_VALIDATE_LINK_REGISTER ret .size vpaes_set_encrypt_key,.-vpaes_set_encrypt_key @@ -1004,7 +1025,7 @@ vpaes_set_encrypt_key: .type vpaes_set_decrypt_key,%function .align 4 vpaes_set_decrypt_key: -.inst 0xd503233f // paciasp + AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-16]! add x29,sp,#0 stp d8,d9,[sp,#-16]! // ABI spec says so @@ -1024,18 +1045,18 @@ vpaes_set_decrypt_key: ldp d8,d9,[sp],#16 ldp x29,x30,[sp],#16 -.inst 0xd50323bf // autiasp + AARCH64_VALIDATE_LINK_REGISTER ret .size vpaes_set_decrypt_key,.-vpaes_set_decrypt_key .globl vpaes_cbc_encrypt .type vpaes_cbc_encrypt,%function .align 4 vpaes_cbc_encrypt: + AARCH64_SIGN_LINK_REGISTER cbz x2, .Lcbc_abort cmp w5, #0 // check direction b.eq vpaes_cbc_decrypt -.inst 0xd503233f // paciasp stp x29,x30,[sp,#-16]! add x29,sp,#0 @@ -1058,15 +1079,16 @@ vpaes_cbc_encrypt: st1 {v0.16b}, [x4] // write ivec ldp x29,x30,[sp],#16 -.inst 0xd50323bf // autiasp .Lcbc_abort: + AARCH64_VALIDATE_LINK_REGISTER ret .size vpaes_cbc_encrypt,.-vpaes_cbc_encrypt .type vpaes_cbc_decrypt,%function .align 4 vpaes_cbc_decrypt: -.inst 0xd503233f // paciasp + // Not adding AARCH64_SIGN_LINK_REGISTER here because vpaes_cbc_decrypt is jumped to + // only from vpaes_cbc_encrypt which has already signed the return address. stp x29,x30,[sp,#-16]! add x29,sp,#0 stp d8,d9,[sp,#-16]! // ABI spec says so @@ -1108,14 +1130,14 @@ vpaes_cbc_decrypt: ldp d10,d11,[sp],#16 ldp d8,d9,[sp],#16 ldp x29,x30,[sp],#16 -.inst 0xd50323bf // autiasp + AARCH64_VALIDATE_LINK_REGISTER ret .size vpaes_cbc_decrypt,.-vpaes_cbc_decrypt .globl vpaes_ecb_encrypt .type vpaes_ecb_encrypt,%function .align 4 vpaes_ecb_encrypt: -.inst 0xd503233f // paciasp + AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-16]! add x29,sp,#0 stp d8,d9,[sp,#-16]! // ABI spec says so @@ -1149,7 +1171,7 @@ vpaes_ecb_encrypt: ldp d10,d11,[sp],#16 ldp d8,d9,[sp],#16 ldp x29,x30,[sp],#16 -.inst 0xd50323bf // autiasp + AARCH64_VALIDATE_LINK_REGISTER ret .size vpaes_ecb_encrypt,.-vpaes_ecb_encrypt @@ -1157,7 +1179,7 @@ vpaes_ecb_encrypt: .type vpaes_ecb_decrypt,%function .align 4 vpaes_ecb_decrypt: -.inst 0xd503233f // paciasp + AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-16]! add x29,sp,#0 stp d8,d9,[sp,#-16]! // ABI spec says so @@ -1191,6 +1213,6 @@ vpaes_ecb_decrypt: ldp d10,d11,[sp],#16 ldp d8,d9,[sp],#16 ldp x29,x30,[sp],#16 -.inst 0xd50323bf // autiasp + AARCH64_VALIDATE_LINK_REGISTER ret .size vpaes_ecb_decrypt,.-vpaes_ecb_decrypt diff --git a/deps/openssl/config/archs/linux-aarch64/asm_avx2/crypto/arm64cpuid.S b/deps/openssl/config/archs/linux-aarch64/asm_avx2/crypto/arm64cpuid.S index 7fb4c7507a0d2f..5cc56673f3d004 100644 --- a/deps/openssl/config/archs/linux-aarch64/asm_avx2/crypto/arm64cpuid.S +++ b/deps/openssl/config/archs/linux-aarch64/asm_avx2/crypto/arm64cpuid.S @@ -7,6 +7,7 @@ .globl _armv7_neon_probe .type _armv7_neon_probe,%function _armv7_neon_probe: + AARCH64_VALID_CALL_TARGET orr v15.16b, v15.16b, v15.16b ret .size _armv7_neon_probe,.-_armv7_neon_probe @@ -14,6 +15,7 @@ _armv7_neon_probe: .globl _armv7_tick .type _armv7_tick,%function _armv7_tick: + AARCH64_VALID_CALL_TARGET #ifdef __APPLE__ mrs x0, CNTPCT_EL0 #else @@ -25,6 +27,7 @@ _armv7_tick: .globl _armv8_aes_probe .type _armv8_aes_probe,%function _armv8_aes_probe: + AARCH64_VALID_CALL_TARGET aese v0.16b, v0.16b ret .size _armv8_aes_probe,.-_armv8_aes_probe @@ -32,6 +35,7 @@ _armv8_aes_probe: .globl _armv8_sha1_probe .type _armv8_sha1_probe,%function _armv8_sha1_probe: + AARCH64_VALID_CALL_TARGET sha1h s0, s0 ret .size _armv8_sha1_probe,.-_armv8_sha1_probe @@ -39,6 +43,7 @@ _armv8_sha1_probe: .globl _armv8_sha256_probe .type _armv8_sha256_probe,%function _armv8_sha256_probe: + AARCH64_VALID_CALL_TARGET sha256su0 v0.4s, v0.4s ret .size _armv8_sha256_probe,.-_armv8_sha256_probe @@ -46,28 +51,72 @@ _armv8_sha256_probe: .globl _armv8_pmull_probe .type _armv8_pmull_probe,%function _armv8_pmull_probe: + AARCH64_VALID_CALL_TARGET pmull v0.1q, v0.1d, v0.1d ret .size _armv8_pmull_probe,.-_armv8_pmull_probe +.globl _armv8_sm4_probe +.type _armv8_sm4_probe,%function +_armv8_sm4_probe: + AARCH64_VALID_CALL_TARGET +.inst 0xcec08400 // sm4e v0.4s, v0.4s + ret +.size _armv8_sm4_probe,.-_armv8_sm4_probe + .globl _armv8_sha512_probe .type _armv8_sha512_probe,%function _armv8_sha512_probe: -.long 0xcec08000 // sha512su0 v0.2d,v0.2d + AARCH64_VALID_CALL_TARGET +.inst 0xcec08000 // sha512su0 v0.2d,v0.2d ret .size _armv8_sha512_probe,.-_armv8_sha512_probe +.globl _armv8_eor3_probe +.type _armv8_eor3_probe,%function +_armv8_eor3_probe: + AARCH64_VALID_CALL_TARGET +.inst 0xce010800 // eor3 v0.16b, v0.16b, v1.16b, v2.16b + ret +.size _armv8_eor3_probe,.-_armv8_eor3_probe + +.globl _armv8_sve_probe +.type _armv8_sve_probe,%function +_armv8_sve_probe: + AARCH64_VALID_CALL_TARGET +.inst 0x04a03000 // eor z0.d,z0.d,z0.d + ret +.size _armv8_sve_probe,.-_armv8_sve_probe + +.globl _armv8_sve2_probe +.type _armv8_sve2_probe,%function +_armv8_sve2_probe: + AARCH64_VALID_CALL_TARGET +.inst 0x04e03400 // xar z0.d,z0.d,z0.d + ret +.size _armv8_sve2_probe,.-_armv8_sve2_probe + .globl _armv8_cpuid_probe .type _armv8_cpuid_probe,%function _armv8_cpuid_probe: + AARCH64_VALID_CALL_TARGET mrs x0, midr_el1 ret .size _armv8_cpuid_probe,.-_armv8_cpuid_probe +.globl _armv8_sm3_probe +.type _armv8_sm3_probe,%function +_armv8_sm3_probe: + AARCH64_VALID_CALL_TARGET +.inst 0xce63c004 // sm3partw1 v4.4s, v0.4s, v3.4s + ret +.size _armv8_sm3_probe,.-_armv8_sm3_probe + .globl OPENSSL_cleanse .type OPENSSL_cleanse,%function .align 5 OPENSSL_cleanse: + AARCH64_VALID_CALL_TARGET cbz x1,.Lret // len==0? cmp x1,#15 b.hi .Lot // len>15 @@ -99,6 +148,7 @@ OPENSSL_cleanse: .type CRYPTO_memcmp,%function .align 4 CRYPTO_memcmp: + AARCH64_VALID_CALL_TARGET eor w3,w3,w3 cbz x2,.Lno_data // len==0? cmp x2,#16 @@ -127,3 +177,98 @@ CRYPTO_memcmp: lsr w0,w0,#31 ret .size CRYPTO_memcmp,.-CRYPTO_memcmp + +.globl _armv8_rng_probe +.type _armv8_rng_probe,%function +_armv8_rng_probe: + AARCH64_VALID_CALL_TARGET + mrs x0, s3_3_c2_c4_0 // rndr + mrs x0, s3_3_c2_c4_1 // rndrrs + ret +.size _armv8_rng_probe,.-_armv8_rng_probe +// Fill buffer with Randomly Generated Bytes +// inputs: char * in x0 - Pointer to buffer +// size_t in x1 - Number of bytes to write to buffer +// outputs: size_t in x0 - Number of bytes successfully written to buffer +.globl OPENSSL_rndr_asm +.type OPENSSL_rndr_asm,%function +.align 4 +OPENSSL_rndr_asm: + AARCH64_VALID_CALL_TARGET + mov x2,xzr + mov x3,xzr + +.align 4 +.Loop_rndr: + cmp x1,#0 + b.eq .rndr_done + mov x3,xzr + mrs x3,s3_3_c2_c4_0 + b.eq .rndr_done + + cmp x1,#8 + b.lt .Loop_single_byte_rndr + + str x3,[x0] + add x0,x0,#8 + add x2,x2,#8 + subs x1,x1,#8 + b.ge .Loop_rndr + +.align 4 +.Loop_single_byte_rndr: + strb w3,[x0] + lsr x3,x3,#8 + add x2,x2,#1 + add x0,x0,#1 + subs x1,x1,#1 + b.gt .Loop_single_byte_rndr + +.align 4 +.rndr_done: + mov x0,x2 + ret +.size OPENSSL_rndr_asm,.-OPENSSL_rndr_asm +// Fill buffer with Randomly Generated Bytes +// inputs: char * in x0 - Pointer to buffer +// size_t in x1 - Number of bytes to write to buffer +// outputs: size_t in x0 - Number of bytes successfully written to buffer +.globl OPENSSL_rndrrs_asm +.type OPENSSL_rndrrs_asm,%function +.align 4 +OPENSSL_rndrrs_asm: + AARCH64_VALID_CALL_TARGET + mov x2,xzr + mov x3,xzr + +.align 4 +.Loop_rndrrs: + cmp x1,#0 + b.eq .rndrrs_done + mov x3,xzr + mrs x3,s3_3_c2_c4_1 + b.eq .rndrrs_done + + cmp x1,#8 + b.lt .Loop_single_byte_rndrrs + + str x3,[x0] + add x0,x0,#8 + add x2,x2,#8 + subs x1,x1,#8 + b.ge .Loop_rndrrs + +.align 4 +.Loop_single_byte_rndrrs: + strb w3,[x0] + lsr x3,x3,#8 + add x2,x2,#1 + add x0,x0,#1 + subs x1,x1,#1 + b.gt .Loop_single_byte_rndrrs + +.align 4 +.rndrrs_done: + mov x0,x2 + ret +.size OPENSSL_rndrrs_asm,.-OPENSSL_rndrrs_asm diff --git a/deps/openssl/config/archs/linux-aarch64/asm_avx2/crypto/bn/armv8-mont.S b/deps/openssl/config/archs/linux-aarch64/asm_avx2/crypto/bn/armv8-mont.S index 397c83e863839f..c9fe7621f4220f 100644 --- a/deps/openssl/config/archs/linux-aarch64/asm_avx2/crypto/bn/armv8-mont.S +++ b/deps/openssl/config/archs/linux-aarch64/asm_avx2/crypto/bn/armv8-mont.S @@ -1,5 +1,5 @@ +#include "arm_arch.h" #ifndef __KERNEL__ -# include "arm_arch.h" .hidden OPENSSL_armv8_rsa_neonized #endif @@ -9,6 +9,7 @@ .type bn_mul_mont,%function .align 5 bn_mul_mont: + AARCH64_SIGN_LINK_REGISTER .Lbn_mul_mont: tst x5,#3 b.ne .Lmul_mont @@ -221,11 +222,14 @@ bn_mul_mont: mov x0,#1 ldp x23,x24,[x29,#48] ldr x29,[sp],#64 + AARCH64_VALIDATE_LINK_REGISTER ret .size bn_mul_mont,.-bn_mul_mont .type bn_mul8x_mont_neon,%function .align 5 bn_mul8x_mont_neon: + // Not adding AARCH64_SIGN_LINK_REGISTER here because bn_mul8x_mont_neon is jumped to + // only from bn_mul_mont which has already signed the return address. stp x29,x30,[sp,#-80]! mov x16,sp stp d8,d9,[sp,#16] @@ -918,6 +922,7 @@ bn_mul8x_mont_neon: ldp d10,d11,[sp,#32] ldp d8,d9,[sp,#16] ldr x29,[sp],#80 + AARCH64_VALIDATE_LINK_REGISTER ret // bx lr .size bn_mul8x_mont_neon,.-bn_mul8x_mont_neon @@ -927,7 +932,8 @@ __bn_sqr8x_mont: cmp x1,x2 b.ne __bn_mul4x_mont .Lsqr8x_mont: -.inst 0xd503233f // paciasp + // Not adding AARCH64_SIGN_LINK_REGISTER here because __bn_sqr8x_mont is jumped to + // only from bn_mul_mont which has already signed the return address. stp x29,x30,[sp,#-128]! add x29,sp,#0 stp x19,x20,[sp,#16] @@ -1678,13 +1684,15 @@ __bn_sqr8x_mont: ldp x25,x26,[x29,#64] ldp x27,x28,[x29,#80] ldr x29,[sp],#128 -.inst 0xd50323bf // autiasp + // x30 is loaded earlier + AARCH64_VALIDATE_LINK_REGISTER ret .size __bn_sqr8x_mont,.-__bn_sqr8x_mont .type __bn_mul4x_mont,%function .align 5 __bn_mul4x_mont: -.inst 0xd503233f // paciasp + // Not adding AARCH64_SIGN_LINK_REGISTER here because __bn_mul4x_mont is jumped to + // only from bn_mul_mont (or __bn_sqr8x_mont from bn_mul_mont) which has already signed the return address. stp x29,x30,[sp,#-128]! add x29,sp,#0 stp x19,x20,[sp,#16] @@ -2118,9 +2126,11 @@ __bn_mul4x_mont: ldp x25,x26,[x29,#64] ldp x27,x28,[x29,#80] ldr x29,[sp],#128 -.inst 0xd50323bf // autiasp + // x30 loaded earlier + AARCH64_VALIDATE_LINK_REGISTER ret .size __bn_mul4x_mont,.-__bn_mul4x_mont +.section .rodata .byte 77,111,110,116,103,111,109,101,114,121,32,77,117,108,116,105,112,108,105,99,97,116,105,111,110,32,102,111,114,32,65,82,77,118,56,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 .align 2 .align 4 diff --git a/deps/openssl/config/archs/linux-aarch64/asm_avx2/crypto/buildinf.h b/deps/openssl/config/archs/linux-aarch64/asm_avx2/crypto/buildinf.h index f19b35ece0bf82..03c2d01cff195e 100644 --- a/deps/openssl/config/archs/linux-aarch64/asm_avx2/crypto/buildinf.h +++ b/deps/openssl/config/archs/linux-aarch64/asm_avx2/crypto/buildinf.h @@ -11,7 +11,7 @@ */ #define PLATFORM "platform: linux-aarch64" -#define DATE "built on: Sun Jul 20 00:49:06 2025 UTC" +#define DATE "built on: Sun Jul 27 00:50:26 2025 UTC" /* * Generate compiler_flags as an array of individual characters. This is a diff --git a/deps/openssl/config/archs/linux-aarch64/asm_avx2/crypto/chacha/chacha-armv8-sve.S b/deps/openssl/config/archs/linux-aarch64/asm_avx2/crypto/chacha/chacha-armv8-sve.S new file mode 100644 index 00000000000000..e64c2544d1b4cc --- /dev/null +++ b/deps/openssl/config/archs/linux-aarch64/asm_avx2/crypto/chacha/chacha-armv8-sve.S @@ -0,0 +1,3558 @@ +// Copyright 2022-2025 The OpenSSL Project Authors. All Rights Reserved. +// +// Licensed under the Apache License 2.0 (the "License"). You may not use +// this file except in compliance with the License. You can obtain a copy +// in the file LICENSE in the source distribution or at +// https://www.openssl.org/source/license.html +// +// +// ChaCha20 for ARMv8 via SVE +// +// $output is the last argument if it looks like a file (it has an extension) +// $flavour is the first argument if it doesn't look like a file +#include "arm_arch.h" + +.arch armv8-a + + +.hidden OPENSSL_armcap_P + +.text + +.section .rodata +.align 5 +.type _chacha_sve_consts,%object +_chacha_sve_consts: +.Lchacha20_consts: +.quad 0x3320646e61707865,0x6b20657479622d32 // endian-neutral +.Lrot8: +.word 0x02010003,0x04040404,0x02010003,0x04040404 +.size _chacha_sve_consts,.-_chacha_sve_consts + +.previous + +.globl ChaCha20_ctr32_sve +.type ChaCha20_ctr32_sve,%function +.align 5 +ChaCha20_ctr32_sve: + AARCH64_VALID_CALL_TARGET +.inst 0x04a0e3e5 //cntw x5, ALL, MUL #1 + cmp x2,x5,lsl #6 + b.lt .Lreturn + mov x7,0 + adrp x6,OPENSSL_armcap_P + ldr w6,[x6,#:lo12:OPENSSL_armcap_P] + tst w6,#ARMV8_SVE2 + b.eq 1f + mov x7,1 + b 2f +1: + cmp x5,4 + b.le .Lreturn + adrp x6,.Lrot8 + add x6,x6,#:lo12:.Lrot8 + ldp w9,w10,[x6] +.inst 0x04aa4d3f //index z31.s,w9,w10 +2: + AARCH64_SIGN_LINK_REGISTER + stp d8,d9,[sp,-192]! + stp d10,d11,[sp,16] + stp d12,d13,[sp,32] + stp d14,d15,[sp,48] + stp x16,x17,[sp,64] + stp x18,x19,[sp,80] + stp x20,x21,[sp,96] + stp x22,x23,[sp,112] + stp x24,x25,[sp,128] + stp x26,x27,[sp,144] + stp x28,x29,[sp,160] + str x30,[sp,176] + + adrp x6,.Lchacha20_consts + add x6,x6,#:lo12:.Lchacha20_consts + ldp x23,x24,[x6] + ldp x25,x26,[x3] + ldp x27,x28,[x3, 16] + ldp x29,x30,[x4] +.inst 0x2599e3e0 //ptrues p0.s,ALL +#ifdef __AARCH64EB__ + ror x25,x25,#32 + ror x26,x26,#32 + ror x27,x27,#32 + ror x28,x28,#32 + ror x29,x29,#32 + ror x30,x30,#32 +#endif + cbz x7, 1f +.align 5 +100: + subs x7,x2,x5,lsl #6 + b.lt 110f + mov x2,x7 + b.eq 101f + cmp x2,64 + b.lt 101f + mixin=1 + lsr x8,x23,#32 +.inst 0x05a03ae0 //dup z0.s,w23 +.inst 0x05a03af9 //dup z25.s,w23 +.if mixin == 1 + mov w7,w23 +.endif +.inst 0x05a03904 //dup z4.s,w8 +.inst 0x05a0391a //dup z26.s,w8 + lsr x10,x24,#32 +.inst 0x05a03b08 //dup z8.s,w24 +.inst 0x05a03b1b //dup z27.s,w24 +.if mixin == 1 + mov w9,w24 +.endif +.inst 0x05a0394c //dup z12.s,w10 +.inst 0x05a0395c //dup z28.s,w10 + lsr x12,x25,#32 +.inst 0x05a03b21 //dup z1.s,w25 +.inst 0x05a03b3d //dup z29.s,w25 +.if mixin == 1 + mov w11,w25 +.endif +.inst 0x05a03985 //dup z5.s,w12 +.inst 0x05a0399e //dup z30.s,w12 + lsr x14,x26,#32 +.inst 0x05a03b49 //dup z9.s,w26 +.inst 0x05a03b55 //dup z21.s,w26 +.if mixin == 1 + mov w13,w26 +.endif +.inst 0x05a039cd //dup z13.s,w14 +.inst 0x05a039d6 //dup z22.s,w14 + lsr x16,x27,#32 +.inst 0x05a03b62 //dup z2.s,w27 +.inst 0x05a03b77 //dup z23.s,w27 +.if mixin == 1 + mov w15,w27 +.endif +.inst 0x05a03a06 //dup z6.s,w16 +.inst 0x05a03a18 //dup z24.s,w16 + lsr x18,x28,#32 +.inst 0x05a03b8a //dup z10.s,w28 +.inst 0x05a03b91 //dup z17.s,w28 +.if mixin == 1 + mov w17,w28 +.endif +.inst 0x05a03a4e //dup z14.s,w18 +.inst 0x05a03a52 //dup z18.s,w18 + lsr x22,x30,#32 +.inst 0x05a03bcb //dup z11.s,w30 +.inst 0x05a03bd4 //dup z20.s,w30 +.if mixin == 1 + mov w21,w30 +.endif +.inst 0x05a03acf //dup z15.s,w22 +.inst 0x05a03adf //dup z31.s,w22 +.if mixin == 1 + add w20,w29,#1 + mov w19,w29 +.inst 0x04a14690 //index z16.s,w20,1 +.inst 0x04a14683 //index z3.s,w20,1 +.else +.inst 0x04a147b0 //index z16.s,w29,1 +.inst 0x04a147a3 //index z3.s,w29,1 +.endif + lsr x20,x29,#32 +.inst 0x05a03a87 //dup z7.s,w20 +.inst 0x05a03a93 //dup z19.s,w20 + mov x6,#10 +10: +.align 5 +.inst 0x04a10000 //add z0.s,z0.s,z1.s +.if mixin == 1 + add w7,w7,w11 +.endif +.inst 0x04a50084 //add z4.s,z4.s,z5.s +.if mixin == 1 + add w8,w8,w12 +.endif +.inst 0x04a90108 //add z8.s,z8.s,z9.s +.if mixin == 1 + add w9,w9,w13 +.endif +.inst 0x04ad018c //add z12.s,z12.s,z13.s +.if mixin == 1 + add w10,w10,w14 +.endif +.if mixin == 1 + eor w19,w19,w7 +.endif +.inst 0x04703403 //xar z3.s,z3.s,z0.s,16 +.if mixin == 1 + ror w19,w19,16 +.endif +.if mixin == 1 + eor w20,w20,w8 +.endif +.inst 0x04703487 //xar z7.s,z7.s,z4.s,16 +.if mixin == 1 + ror w20,w20,16 +.endif +.if mixin == 1 + eor w21,w21,w9 +.endif +.inst 0x0470350b //xar z11.s,z11.s,z8.s,16 +.if mixin == 1 + ror w21,w21,16 +.endif +.if mixin == 1 + eor w22,w22,w10 +.endif +.inst 0x0470358f //xar z15.s,z15.s,z12.s,16 +.if mixin == 1 + ror w22,w22,16 +.endif +.inst 0x04a30042 //add z2.s,z2.s,z3.s +.if mixin == 1 + add w15,w15,w19 +.endif +.inst 0x04a700c6 //add z6.s,z6.s,z7.s +.if mixin == 1 + add w16,w16,w20 +.endif +.inst 0x04ab014a //add z10.s,z10.s,z11.s +.if mixin == 1 + add w17,w17,w21 +.endif +.inst 0x04af01ce //add z14.s,z14.s,z15.s +.if mixin == 1 + add w18,w18,w22 +.endif +.if mixin == 1 + eor w11,w11,w15 +.endif +.inst 0x046c3441 //xar z1.s,z1.s,z2.s,20 +.if mixin == 1 + ror w11,w11,20 +.endif +.if mixin == 1 + eor w12,w12,w16 +.endif +.inst 0x046c34c5 //xar z5.s,z5.s,z6.s,20 +.if mixin == 1 + ror w12,w12,20 +.endif +.if mixin == 1 + eor w13,w13,w17 +.endif +.inst 0x046c3549 //xar z9.s,z9.s,z10.s,20 +.if mixin == 1 + ror w13,w13,20 +.endif +.if mixin == 1 + eor w14,w14,w18 +.endif +.inst 0x046c35cd //xar z13.s,z13.s,z14.s,20 +.if mixin == 1 + ror w14,w14,20 +.endif +.inst 0x04a10000 //add z0.s,z0.s,z1.s +.if mixin == 1 + add w7,w7,w11 +.endif +.inst 0x04a50084 //add z4.s,z4.s,z5.s +.if mixin == 1 + add w8,w8,w12 +.endif +.inst 0x04a90108 //add z8.s,z8.s,z9.s +.if mixin == 1 + add w9,w9,w13 +.endif +.inst 0x04ad018c //add z12.s,z12.s,z13.s +.if mixin == 1 + add w10,w10,w14 +.endif +.if mixin == 1 + eor w19,w19,w7 +.endif +.inst 0x04683403 //xar z3.s,z3.s,z0.s,24 +.if mixin == 1 + ror w19,w19,24 +.endif +.if mixin == 1 + eor w20,w20,w8 +.endif +.inst 0x04683487 //xar z7.s,z7.s,z4.s,24 +.if mixin == 1 + ror w20,w20,24 +.endif +.if mixin == 1 + eor w21,w21,w9 +.endif +.inst 0x0468350b //xar z11.s,z11.s,z8.s,24 +.if mixin == 1 + ror w21,w21,24 +.endif +.if mixin == 1 + eor w22,w22,w10 +.endif +.inst 0x0468358f //xar z15.s,z15.s,z12.s,24 +.if mixin == 1 + ror w22,w22,24 +.endif +.inst 0x04a30042 //add z2.s,z2.s,z3.s +.if mixin == 1 + add w15,w15,w19 +.endif +.inst 0x04a700c6 //add z6.s,z6.s,z7.s +.if mixin == 1 + add w16,w16,w20 +.endif +.inst 0x04ab014a //add z10.s,z10.s,z11.s +.if mixin == 1 + add w17,w17,w21 +.endif +.inst 0x04af01ce //add z14.s,z14.s,z15.s +.if mixin == 1 + add w18,w18,w22 +.endif +.if mixin == 1 + eor w11,w11,w15 +.endif +.inst 0x04673441 //xar z1.s,z1.s,z2.s,25 +.if mixin == 1 + ror w11,w11,25 +.endif +.if mixin == 1 + eor w12,w12,w16 +.endif +.inst 0x046734c5 //xar z5.s,z5.s,z6.s,25 +.if mixin == 1 + ror w12,w12,25 +.endif +.if mixin == 1 + eor w13,w13,w17 +.endif +.inst 0x04673549 //xar z9.s,z9.s,z10.s,25 +.if mixin == 1 + ror w13,w13,25 +.endif +.if mixin == 1 + eor w14,w14,w18 +.endif +.inst 0x046735cd //xar z13.s,z13.s,z14.s,25 +.if mixin == 1 + ror w14,w14,25 +.endif +.inst 0x04a50000 //add z0.s,z0.s,z5.s +.if mixin == 1 + add w7,w7,w12 +.endif +.inst 0x04a90084 //add z4.s,z4.s,z9.s +.if mixin == 1 + add w8,w8,w13 +.endif +.inst 0x04ad0108 //add z8.s,z8.s,z13.s +.if mixin == 1 + add w9,w9,w14 +.endif +.inst 0x04a1018c //add z12.s,z12.s,z1.s +.if mixin == 1 + add w10,w10,w11 +.endif +.if mixin == 1 + eor w22,w22,w7 +.endif +.inst 0x0470340f //xar z15.s,z15.s,z0.s,16 +.if mixin == 1 + ror w22,w22,16 +.endif +.if mixin == 1 + eor w19,w19,w8 +.endif +.inst 0x04703483 //xar z3.s,z3.s,z4.s,16 +.if mixin == 1 + ror w19,w19,16 +.endif +.if mixin == 1 + eor w20,w20,w9 +.endif +.inst 0x04703507 //xar z7.s,z7.s,z8.s,16 +.if mixin == 1 + ror w20,w20,16 +.endif +.if mixin == 1 + eor w21,w21,w10 +.endif +.inst 0x0470358b //xar z11.s,z11.s,z12.s,16 +.if mixin == 1 + ror w21,w21,16 +.endif +.inst 0x04af014a //add z10.s,z10.s,z15.s +.if mixin == 1 + add w17,w17,w22 +.endif +.inst 0x04a301ce //add z14.s,z14.s,z3.s +.if mixin == 1 + add w18,w18,w19 +.endif +.inst 0x04a70042 //add z2.s,z2.s,z7.s +.if mixin == 1 + add w15,w15,w20 +.endif +.inst 0x04ab00c6 //add z6.s,z6.s,z11.s +.if mixin == 1 + add w16,w16,w21 +.endif +.if mixin == 1 + eor w12,w12,w17 +.endif +.inst 0x046c3545 //xar z5.s,z5.s,z10.s,20 +.if mixin == 1 + ror w12,w12,20 +.endif +.if mixin == 1 + eor w13,w13,w18 +.endif +.inst 0x046c35c9 //xar z9.s,z9.s,z14.s,20 +.if mixin == 1 + ror w13,w13,20 +.endif +.if mixin == 1 + eor w14,w14,w15 +.endif +.inst 0x046c344d //xar z13.s,z13.s,z2.s,20 +.if mixin == 1 + ror w14,w14,20 +.endif +.if mixin == 1 + eor w11,w11,w16 +.endif +.inst 0x046c34c1 //xar z1.s,z1.s,z6.s,20 +.if mixin == 1 + ror w11,w11,20 +.endif +.inst 0x04a50000 //add z0.s,z0.s,z5.s +.if mixin == 1 + add w7,w7,w12 +.endif +.inst 0x04a90084 //add z4.s,z4.s,z9.s +.if mixin == 1 + add w8,w8,w13 +.endif +.inst 0x04ad0108 //add z8.s,z8.s,z13.s +.if mixin == 1 + add w9,w9,w14 +.endif +.inst 0x04a1018c //add z12.s,z12.s,z1.s +.if mixin == 1 + add w10,w10,w11 +.endif +.if mixin == 1 + eor w22,w22,w7 +.endif +.inst 0x0468340f //xar z15.s,z15.s,z0.s,24 +.if mixin == 1 + ror w22,w22,24 +.endif +.if mixin == 1 + eor w19,w19,w8 +.endif +.inst 0x04683483 //xar z3.s,z3.s,z4.s,24 +.if mixin == 1 + ror w19,w19,24 +.endif +.if mixin == 1 + eor w20,w20,w9 +.endif +.inst 0x04683507 //xar z7.s,z7.s,z8.s,24 +.if mixin == 1 + ror w20,w20,24 +.endif +.if mixin == 1 + eor w21,w21,w10 +.endif +.inst 0x0468358b //xar z11.s,z11.s,z12.s,24 +.if mixin == 1 + ror w21,w21,24 +.endif +.inst 0x04af014a //add z10.s,z10.s,z15.s +.if mixin == 1 + add w17,w17,w22 +.endif +.inst 0x04a301ce //add z14.s,z14.s,z3.s +.if mixin == 1 + add w18,w18,w19 +.endif +.inst 0x04a70042 //add z2.s,z2.s,z7.s +.if mixin == 1 + add w15,w15,w20 +.endif +.inst 0x04ab00c6 //add z6.s,z6.s,z11.s +.if mixin == 1 + add w16,w16,w21 +.endif +.if mixin == 1 + eor w12,w12,w17 +.endif +.inst 0x04673545 //xar z5.s,z5.s,z10.s,25 +.if mixin == 1 + ror w12,w12,25 +.endif +.if mixin == 1 + eor w13,w13,w18 +.endif +.inst 0x046735c9 //xar z9.s,z9.s,z14.s,25 +.if mixin == 1 + ror w13,w13,25 +.endif +.if mixin == 1 + eor w14,w14,w15 +.endif +.inst 0x0467344d //xar z13.s,z13.s,z2.s,25 +.if mixin == 1 + ror w14,w14,25 +.endif +.if mixin == 1 + eor w11,w11,w16 +.endif +.inst 0x046734c1 //xar z1.s,z1.s,z6.s,25 +.if mixin == 1 + ror w11,w11,25 +.endif + sub x6,x6,1 + cbnz x6,10b +.if mixin == 1 + add w7,w7,w23 +.endif +.inst 0x04b90000 //add z0.s,z0.s,z25.s +.if mixin == 1 + add x8,x8,x23,lsr #32 +.endif +.inst 0x04ba0084 //add z4.s,z4.s,z26.s +.if mixin == 1 + add x7,x7,x8,lsl #32 // pack +.endif +.if mixin == 1 + add w9,w9,w24 +.endif +.inst 0x04bb0108 //add z8.s,z8.s,z27.s +.if mixin == 1 + add x10,x10,x24,lsr #32 +.endif +.inst 0x04bc018c //add z12.s,z12.s,z28.s +.if mixin == 1 + add x9,x9,x10,lsl #32 // pack +.endif +.if mixin == 1 + ldp x8,x10,[x1],#16 +.endif +.if mixin == 1 + add w11,w11,w25 +.endif +.inst 0x04bd0021 //add z1.s,z1.s,z29.s +.if mixin == 1 + add x12,x12,x25,lsr #32 +.endif +.inst 0x04be00a5 //add z5.s,z5.s,z30.s +.if mixin == 1 + add x11,x11,x12,lsl #32 // pack +.endif +.if mixin == 1 + add w13,w13,w26 +.endif +.inst 0x04b50129 //add z9.s,z9.s,z21.s +.if mixin == 1 + add x14,x14,x26,lsr #32 +.endif +.inst 0x04b601ad //add z13.s,z13.s,z22.s +.if mixin == 1 + add x13,x13,x14,lsl #32 // pack +.endif +.if mixin == 1 + ldp x12,x14,[x1],#16 +.endif +.if mixin == 1 + add w15,w15,w27 +.endif +.inst 0x04b70042 //add z2.s,z2.s,z23.s +.if mixin == 1 + add x16,x16,x27,lsr #32 +.endif +.inst 0x04b800c6 //add z6.s,z6.s,z24.s +.if mixin == 1 + add x15,x15,x16,lsl #32 // pack +.endif +.if mixin == 1 + add w17,w17,w28 +.endif +.inst 0x04b1014a //add z10.s,z10.s,z17.s +.if mixin == 1 + add x18,x18,x28,lsr #32 +.endif +.inst 0x04b201ce //add z14.s,z14.s,z18.s +.if mixin == 1 + add x17,x17,x18,lsl #32 // pack +.endif +.if mixin == 1 + ldp x16,x18,[x1],#16 +.endif +.if mixin == 1 + add w19,w19,w29 +.endif +.inst 0x04b00063 //add z3.s,z3.s,z16.s +.if mixin == 1 + add x20,x20,x29,lsr #32 +.endif +.inst 0x04b300e7 //add z7.s,z7.s,z19.s +.if mixin == 1 + add x19,x19,x20,lsl #32 // pack +.endif +.if mixin == 1 + add w21,w21,w30 +.endif +.inst 0x04b4016b //add z11.s,z11.s,z20.s +.if mixin == 1 + add x22,x22,x30,lsr #32 +.endif +.inst 0x04bf01ef //add z15.s,z15.s,z31.s +.if mixin == 1 + add x21,x21,x22,lsl #32 // pack +.endif +.if mixin == 1 + ldp x20,x22,[x1],#16 +.endif +#ifdef __AARCH64EB__ + rev x7,x7 +.inst 0x05a48000 //revb z0.s,p0/m,z0.s +.inst 0x05a48084 //revb z4.s,p0/m,z4.s + rev x9,x9 +.inst 0x05a48108 //revb z8.s,p0/m,z8.s +.inst 0x05a4818c //revb z12.s,p0/m,z12.s + rev x11,x11 +.inst 0x05a48021 //revb z1.s,p0/m,z1.s +.inst 0x05a480a5 //revb z5.s,p0/m,z5.s + rev x13,x13 +.inst 0x05a48129 //revb z9.s,p0/m,z9.s +.inst 0x05a481ad //revb z13.s,p0/m,z13.s + rev x15,x15 +.inst 0x05a48042 //revb z2.s,p0/m,z2.s +.inst 0x05a480c6 //revb z6.s,p0/m,z6.s + rev x17,x17 +.inst 0x05a4814a //revb z10.s,p0/m,z10.s +.inst 0x05a481ce //revb z14.s,p0/m,z14.s + rev x19,x19 +.inst 0x05a48063 //revb z3.s,p0/m,z3.s +.inst 0x05a480e7 //revb z7.s,p0/m,z7.s + rev x21,x21 +.inst 0x05a4816b //revb z11.s,p0/m,z11.s +.inst 0x05a481ef //revb z15.s,p0/m,z15.s +#endif +.if mixin == 1 + add x29,x29,#1 +.endif + cmp x5,4 + b.ne 200f +.if mixin == 1 + eor x7,x7,x8 +.endif +.if mixin == 1 + eor x9,x9,x10 +.endif +.if mixin == 1 + eor x11,x11,x12 +.endif +.inst 0x05a46011 //zip1 z17.s,z0.s,z4.s +.inst 0x05a46412 //zip2 z18.s,z0.s,z4.s +.inst 0x05ac6113 //zip1 z19.s,z8.s,z12.s +.inst 0x05ac6514 //zip2 z20.s,z8.s,z12.s + +.inst 0x05a56035 //zip1 z21.s,z1.s,z5.s +.inst 0x05a56436 //zip2 z22.s,z1.s,z5.s +.inst 0x05ad6137 //zip1 z23.s,z9.s,z13.s +.inst 0x05ad6538 //zip2 z24.s,z9.s,z13.s + +.inst 0x05f36220 //zip1 z0.d,z17.d,z19.d +.inst 0x05f36624 //zip2 z4.d,z17.d,z19.d +.inst 0x05f46248 //zip1 z8.d,z18.d,z20.d +.inst 0x05f4664c //zip2 z12.d,z18.d,z20.d + +.inst 0x05f762a1 //zip1 z1.d,z21.d,z23.d +.inst 0x05f766a5 //zip2 z5.d,z21.d,z23.d +.inst 0x05f862c9 //zip1 z9.d,z22.d,z24.d +.inst 0x05f866cd //zip2 z13.d,z22.d,z24.d +.if mixin == 1 + eor x13,x13,x14 +.endif +.if mixin == 1 + eor x15,x15,x16 +.endif +.if mixin == 1 + eor x17,x17,x18 +.endif +.inst 0x05a66051 //zip1 z17.s,z2.s,z6.s +.inst 0x05a66452 //zip2 z18.s,z2.s,z6.s +.inst 0x05ae6153 //zip1 z19.s,z10.s,z14.s +.inst 0x05ae6554 //zip2 z20.s,z10.s,z14.s + +.inst 0x05a76075 //zip1 z21.s,z3.s,z7.s +.inst 0x05a76476 //zip2 z22.s,z3.s,z7.s +.inst 0x05af6177 //zip1 z23.s,z11.s,z15.s +.inst 0x05af6578 //zip2 z24.s,z11.s,z15.s + +.inst 0x05f36222 //zip1 z2.d,z17.d,z19.d +.inst 0x05f36626 //zip2 z6.d,z17.d,z19.d +.inst 0x05f4624a //zip1 z10.d,z18.d,z20.d +.inst 0x05f4664e //zip2 z14.d,z18.d,z20.d + +.inst 0x05f762a3 //zip1 z3.d,z21.d,z23.d +.inst 0x05f766a7 //zip2 z7.d,z21.d,z23.d +.inst 0x05f862cb //zip1 z11.d,z22.d,z24.d +.inst 0x05f866cf //zip2 z15.d,z22.d,z24.d +.if mixin == 1 + eor x19,x19,x20 +.endif +.if mixin == 1 + eor x21,x21,x22 +.endif + ld1 {v17.4s,v18.4s,v19.4s,v20.4s},[x1],#64 + ld1 {v21.4s,v22.4s,v23.4s,v24.4s},[x1],#64 +.inst 0x04b13000 //eor z0.d,z0.d,z17.d +.inst 0x04b23021 //eor z1.d,z1.d,z18.d +.inst 0x04b33042 //eor z2.d,z2.d,z19.d +.inst 0x04b43063 //eor z3.d,z3.d,z20.d +.inst 0x04b53084 //eor z4.d,z4.d,z21.d +.inst 0x04b630a5 //eor z5.d,z5.d,z22.d +.inst 0x04b730c6 //eor z6.d,z6.d,z23.d +.inst 0x04b830e7 //eor z7.d,z7.d,z24.d + ld1 {v17.4s,v18.4s,v19.4s,v20.4s},[x1],#64 + ld1 {v21.4s,v22.4s,v23.4s,v24.4s},[x1],#64 +.if mixin == 1 + stp x7,x9,[x0],#16 +.endif +.inst 0x04b13108 //eor z8.d,z8.d,z17.d +.inst 0x04b23129 //eor z9.d,z9.d,z18.d +.if mixin == 1 + stp x11,x13,[x0],#16 +.endif +.inst 0x04b3314a //eor z10.d,z10.d,z19.d +.inst 0x04b4316b //eor z11.d,z11.d,z20.d +.if mixin == 1 + stp x15,x17,[x0],#16 +.endif +.inst 0x04b5318c //eor z12.d,z12.d,z21.d +.inst 0x04b631ad //eor z13.d,z13.d,z22.d +.if mixin == 1 + stp x19,x21,[x0],#16 +.endif +.inst 0x04b731ce //eor z14.d,z14.d,z23.d +.inst 0x04b831ef //eor z15.d,z15.d,z24.d + st1 {v0.4s,v1.4s,v2.4s,v3.4s},[x0],#64 + st1 {v4.4s,v5.4s,v6.4s,v7.4s},[x0],#64 + st1 {v8.4s,v9.4s,v10.4s,v11.4s},[x0],#64 + st1 {v12.4s,v13.4s,v14.4s,v15.4s},[x0],#64 + b 210f +200: +.inst 0x05a16011 //zip1 z17.s,z0.s,z1.s +.inst 0x05a16412 //zip2 z18.s,z0.s,z1.s +.inst 0x05a36053 //zip1 z19.s,z2.s,z3.s +.inst 0x05a36454 //zip2 z20.s,z2.s,z3.s + +.inst 0x05a56095 //zip1 z21.s,z4.s,z5.s +.inst 0x05a56496 //zip2 z22.s,z4.s,z5.s +.inst 0x05a760d7 //zip1 z23.s,z6.s,z7.s +.inst 0x05a764d8 //zip2 z24.s,z6.s,z7.s + +.inst 0x05f36220 //zip1 z0.d,z17.d,z19.d +.inst 0x05f36621 //zip2 z1.d,z17.d,z19.d +.inst 0x05f46242 //zip1 z2.d,z18.d,z20.d +.inst 0x05f46643 //zip2 z3.d,z18.d,z20.d + +.inst 0x05f762a4 //zip1 z4.d,z21.d,z23.d +.inst 0x05f766a5 //zip2 z5.d,z21.d,z23.d +.inst 0x05f862c6 //zip1 z6.d,z22.d,z24.d +.inst 0x05f866c7 //zip2 z7.d,z22.d,z24.d +.if mixin == 1 + eor x7,x7,x8 +.endif +.if mixin == 1 + eor x9,x9,x10 +.endif +.inst 0x05a96111 //zip1 z17.s,z8.s,z9.s +.inst 0x05a96512 //zip2 z18.s,z8.s,z9.s +.inst 0x05ab6153 //zip1 z19.s,z10.s,z11.s +.inst 0x05ab6554 //zip2 z20.s,z10.s,z11.s + +.inst 0x05ad6195 //zip1 z21.s,z12.s,z13.s +.inst 0x05ad6596 //zip2 z22.s,z12.s,z13.s +.inst 0x05af61d7 //zip1 z23.s,z14.s,z15.s +.inst 0x05af65d8 //zip2 z24.s,z14.s,z15.s + +.inst 0x05f36228 //zip1 z8.d,z17.d,z19.d +.inst 0x05f36629 //zip2 z9.d,z17.d,z19.d +.inst 0x05f4624a //zip1 z10.d,z18.d,z20.d +.inst 0x05f4664b //zip2 z11.d,z18.d,z20.d + +.inst 0x05f762ac //zip1 z12.d,z21.d,z23.d +.inst 0x05f766ad //zip2 z13.d,z21.d,z23.d +.inst 0x05f862ce //zip1 z14.d,z22.d,z24.d +.inst 0x05f866cf //zip2 z15.d,z22.d,z24.d +.if mixin == 1 + eor x11,x11,x12 +.endif +.if mixin == 1 + eor x13,x13,x14 +.endif +.inst 0x05a46011 //zip1 z17.s,z0.s,z4.s +.inst 0x05a46412 //zip2 z18.s,z0.s,z4.s +.inst 0x05ac6113 //zip1 z19.s,z8.s,z12.s +.inst 0x05ac6514 //zip2 z20.s,z8.s,z12.s + +.inst 0x05a56035 //zip1 z21.s,z1.s,z5.s +.inst 0x05a56436 //zip2 z22.s,z1.s,z5.s +.inst 0x05ad6137 //zip1 z23.s,z9.s,z13.s +.inst 0x05ad6538 //zip2 z24.s,z9.s,z13.s + +.inst 0x05f36220 //zip1 z0.d,z17.d,z19.d +.inst 0x05f36624 //zip2 z4.d,z17.d,z19.d +.inst 0x05f46248 //zip1 z8.d,z18.d,z20.d +.inst 0x05f4664c //zip2 z12.d,z18.d,z20.d + +.inst 0x05f762a1 //zip1 z1.d,z21.d,z23.d +.inst 0x05f766a5 //zip2 z5.d,z21.d,z23.d +.inst 0x05f862c9 //zip1 z9.d,z22.d,z24.d +.inst 0x05f866cd //zip2 z13.d,z22.d,z24.d +.if mixin == 1 + eor x15,x15,x16 +.endif +.if mixin == 1 + eor x17,x17,x18 +.endif +.inst 0x05a66051 //zip1 z17.s,z2.s,z6.s +.inst 0x05a66452 //zip2 z18.s,z2.s,z6.s +.inst 0x05ae6153 //zip1 z19.s,z10.s,z14.s +.inst 0x05ae6554 //zip2 z20.s,z10.s,z14.s + +.inst 0x05a76075 //zip1 z21.s,z3.s,z7.s +.inst 0x05a76476 //zip2 z22.s,z3.s,z7.s +.inst 0x05af6177 //zip1 z23.s,z11.s,z15.s +.inst 0x05af6578 //zip2 z24.s,z11.s,z15.s + +.inst 0x05f36222 //zip1 z2.d,z17.d,z19.d +.inst 0x05f36626 //zip2 z6.d,z17.d,z19.d +.inst 0x05f4624a //zip1 z10.d,z18.d,z20.d +.inst 0x05f4664e //zip2 z14.d,z18.d,z20.d + +.inst 0x05f762a3 //zip1 z3.d,z21.d,z23.d +.inst 0x05f766a7 //zip2 z7.d,z21.d,z23.d +.inst 0x05f862cb //zip1 z11.d,z22.d,z24.d +.inst 0x05f866cf //zip2 z15.d,z22.d,z24.d +.if mixin == 1 + eor x19,x19,x20 +.endif +.if mixin == 1 + eor x21,x21,x22 +.endif +.inst 0xa540a031 //ld1w {z17.s},p0/z,[x1,#0,MUL VL] +.inst 0xa541a032 //ld1w {z18.s},p0/z,[x1,#1,MUL VL] +.inst 0xa542a033 //ld1w {z19.s},p0/z,[x1,#2,MUL VL] +.inst 0xa543a034 //ld1w {z20.s},p0/z,[x1,#3,MUL VL] +.inst 0xa544a035 //ld1w {z21.s},p0/z,[x1,#4,MUL VL] +.inst 0xa545a036 //ld1w {z22.s},p0/z,[x1,#5,MUL VL] +.inst 0xa546a037 //ld1w {z23.s},p0/z,[x1,#6,MUL VL] +.inst 0xa547a038 //ld1w {z24.s},p0/z,[x1,#7,MUL VL] +.inst 0x04215101 //addvl x1,x1,8 +.inst 0x04b13000 //eor z0.d,z0.d,z17.d +.inst 0x04b23084 //eor z4.d,z4.d,z18.d +.inst 0x04b33108 //eor z8.d,z8.d,z19.d +.inst 0x04b4318c //eor z12.d,z12.d,z20.d +.inst 0x04b53021 //eor z1.d,z1.d,z21.d +.inst 0x04b630a5 //eor z5.d,z5.d,z22.d +.inst 0x04b73129 //eor z9.d,z9.d,z23.d +.inst 0x04b831ad //eor z13.d,z13.d,z24.d +.inst 0xa540a031 //ld1w {z17.s},p0/z,[x1,#0,MUL VL] +.inst 0xa541a032 //ld1w {z18.s},p0/z,[x1,#1,MUL VL] +.inst 0xa542a033 //ld1w {z19.s},p0/z,[x1,#2,MUL VL] +.inst 0xa543a034 //ld1w {z20.s},p0/z,[x1,#3,MUL VL] +.inst 0xa544a035 //ld1w {z21.s},p0/z,[x1,#4,MUL VL] +.inst 0xa545a036 //ld1w {z22.s},p0/z,[x1,#5,MUL VL] +.inst 0xa546a037 //ld1w {z23.s},p0/z,[x1,#6,MUL VL] +.inst 0xa547a038 //ld1w {z24.s},p0/z,[x1,#7,MUL VL] +.inst 0x04215101 //addvl x1,x1,8 +.if mixin == 1 + stp x7,x9,[x0],#16 +.endif +.inst 0x04b13042 //eor z2.d,z2.d,z17.d +.inst 0x04b230c6 //eor z6.d,z6.d,z18.d +.if mixin == 1 + stp x11,x13,[x0],#16 +.endif +.inst 0x04b3314a //eor z10.d,z10.d,z19.d +.inst 0x04b431ce //eor z14.d,z14.d,z20.d +.if mixin == 1 + stp x15,x17,[x0],#16 +.endif +.inst 0x04b53063 //eor z3.d,z3.d,z21.d +.inst 0x04b630e7 //eor z7.d,z7.d,z22.d +.if mixin == 1 + stp x19,x21,[x0],#16 +.endif +.inst 0x04b7316b //eor z11.d,z11.d,z23.d +.inst 0x04b831ef //eor z15.d,z15.d,z24.d +.inst 0xe540e000 //st1w {z0.s},p0,[x0,#0,MUL VL] +.inst 0xe541e004 //st1w {z4.s},p0,[x0,#1,MUL VL] +.inst 0xe542e008 //st1w {z8.s},p0,[x0,#2,MUL VL] +.inst 0xe543e00c //st1w {z12.s},p0,[x0,#3,MUL VL] +.inst 0xe544e001 //st1w {z1.s},p0,[x0,#4,MUL VL] +.inst 0xe545e005 //st1w {z5.s},p0,[x0,#5,MUL VL] +.inst 0xe546e009 //st1w {z9.s},p0,[x0,#6,MUL VL] +.inst 0xe547e00d //st1w {z13.s},p0,[x0,#7,MUL VL] +.inst 0x04205100 //addvl x0,x0,8 +.inst 0xe540e002 //st1w {z2.s},p0,[x0,#0,MUL VL] +.inst 0xe541e006 //st1w {z6.s},p0,[x0,#1,MUL VL] +.inst 0xe542e00a //st1w {z10.s},p0,[x0,#2,MUL VL] +.inst 0xe543e00e //st1w {z14.s},p0,[x0,#3,MUL VL] +.inst 0xe544e003 //st1w {z3.s},p0,[x0,#4,MUL VL] +.inst 0xe545e007 //st1w {z7.s},p0,[x0,#5,MUL VL] +.inst 0xe546e00b //st1w {z11.s},p0,[x0,#6,MUL VL] +.inst 0xe547e00f //st1w {z15.s},p0,[x0,#7,MUL VL] +.inst 0x04205100 //addvl x0,x0,8 +210: +.inst 0x04b0e3fd //incw x29, ALL, MUL #1 + subs x2,x2,64 + b.gt 100b + b 110f +101: + mixin=0 + lsr x8,x23,#32 +.inst 0x05a03ae0 //dup z0.s,w23 +.inst 0x05a03af9 //dup z25.s,w23 +.if mixin == 1 + mov w7,w23 +.endif +.inst 0x05a03904 //dup z4.s,w8 +.inst 0x05a0391a //dup z26.s,w8 + lsr x10,x24,#32 +.inst 0x05a03b08 //dup z8.s,w24 +.inst 0x05a03b1b //dup z27.s,w24 +.if mixin == 1 + mov w9,w24 +.endif +.inst 0x05a0394c //dup z12.s,w10 +.inst 0x05a0395c //dup z28.s,w10 + lsr x12,x25,#32 +.inst 0x05a03b21 //dup z1.s,w25 +.inst 0x05a03b3d //dup z29.s,w25 +.if mixin == 1 + mov w11,w25 +.endif +.inst 0x05a03985 //dup z5.s,w12 +.inst 0x05a0399e //dup z30.s,w12 + lsr x14,x26,#32 +.inst 0x05a03b49 //dup z9.s,w26 +.inst 0x05a03b55 //dup z21.s,w26 +.if mixin == 1 + mov w13,w26 +.endif +.inst 0x05a039cd //dup z13.s,w14 +.inst 0x05a039d6 //dup z22.s,w14 + lsr x16,x27,#32 +.inst 0x05a03b62 //dup z2.s,w27 +.inst 0x05a03b77 //dup z23.s,w27 +.if mixin == 1 + mov w15,w27 +.endif +.inst 0x05a03a06 //dup z6.s,w16 +.inst 0x05a03a18 //dup z24.s,w16 + lsr x18,x28,#32 +.inst 0x05a03b8a //dup z10.s,w28 +.inst 0x05a03b91 //dup z17.s,w28 +.if mixin == 1 + mov w17,w28 +.endif +.inst 0x05a03a4e //dup z14.s,w18 +.inst 0x05a03a52 //dup z18.s,w18 + lsr x22,x30,#32 +.inst 0x05a03bcb //dup z11.s,w30 +.inst 0x05a03bd4 //dup z20.s,w30 +.if mixin == 1 + mov w21,w30 +.endif +.inst 0x05a03acf //dup z15.s,w22 +.inst 0x05a03adf //dup z31.s,w22 +.if mixin == 1 + add w20,w29,#1 + mov w19,w29 +.inst 0x04a14690 //index z16.s,w20,1 +.inst 0x04a14683 //index z3.s,w20,1 +.else +.inst 0x04a147b0 //index z16.s,w29,1 +.inst 0x04a147a3 //index z3.s,w29,1 +.endif + lsr x20,x29,#32 +.inst 0x05a03a87 //dup z7.s,w20 +.inst 0x05a03a93 //dup z19.s,w20 + mov x6,#10 +10: +.align 5 +.inst 0x04a10000 //add z0.s,z0.s,z1.s +.if mixin == 1 + add w7,w7,w11 +.endif +.inst 0x04a50084 //add z4.s,z4.s,z5.s +.if mixin == 1 + add w8,w8,w12 +.endif +.inst 0x04a90108 //add z8.s,z8.s,z9.s +.if mixin == 1 + add w9,w9,w13 +.endif +.inst 0x04ad018c //add z12.s,z12.s,z13.s +.if mixin == 1 + add w10,w10,w14 +.endif +.if mixin == 1 + eor w19,w19,w7 +.endif +.inst 0x04703403 //xar z3.s,z3.s,z0.s,16 +.if mixin == 1 + ror w19,w19,16 +.endif +.if mixin == 1 + eor w20,w20,w8 +.endif +.inst 0x04703487 //xar z7.s,z7.s,z4.s,16 +.if mixin == 1 + ror w20,w20,16 +.endif +.if mixin == 1 + eor w21,w21,w9 +.endif +.inst 0x0470350b //xar z11.s,z11.s,z8.s,16 +.if mixin == 1 + ror w21,w21,16 +.endif +.if mixin == 1 + eor w22,w22,w10 +.endif +.inst 0x0470358f //xar z15.s,z15.s,z12.s,16 +.if mixin == 1 + ror w22,w22,16 +.endif +.inst 0x04a30042 //add z2.s,z2.s,z3.s +.if mixin == 1 + add w15,w15,w19 +.endif +.inst 0x04a700c6 //add z6.s,z6.s,z7.s +.if mixin == 1 + add w16,w16,w20 +.endif +.inst 0x04ab014a //add z10.s,z10.s,z11.s +.if mixin == 1 + add w17,w17,w21 +.endif +.inst 0x04af01ce //add z14.s,z14.s,z15.s +.if mixin == 1 + add w18,w18,w22 +.endif +.if mixin == 1 + eor w11,w11,w15 +.endif +.inst 0x046c3441 //xar z1.s,z1.s,z2.s,20 +.if mixin == 1 + ror w11,w11,20 +.endif +.if mixin == 1 + eor w12,w12,w16 +.endif +.inst 0x046c34c5 //xar z5.s,z5.s,z6.s,20 +.if mixin == 1 + ror w12,w12,20 +.endif +.if mixin == 1 + eor w13,w13,w17 +.endif +.inst 0x046c3549 //xar z9.s,z9.s,z10.s,20 +.if mixin == 1 + ror w13,w13,20 +.endif +.if mixin == 1 + eor w14,w14,w18 +.endif +.inst 0x046c35cd //xar z13.s,z13.s,z14.s,20 +.if mixin == 1 + ror w14,w14,20 +.endif +.inst 0x04a10000 //add z0.s,z0.s,z1.s +.if mixin == 1 + add w7,w7,w11 +.endif +.inst 0x04a50084 //add z4.s,z4.s,z5.s +.if mixin == 1 + add w8,w8,w12 +.endif +.inst 0x04a90108 //add z8.s,z8.s,z9.s +.if mixin == 1 + add w9,w9,w13 +.endif +.inst 0x04ad018c //add z12.s,z12.s,z13.s +.if mixin == 1 + add w10,w10,w14 +.endif +.if mixin == 1 + eor w19,w19,w7 +.endif +.inst 0x04683403 //xar z3.s,z3.s,z0.s,24 +.if mixin == 1 + ror w19,w19,24 +.endif +.if mixin == 1 + eor w20,w20,w8 +.endif +.inst 0x04683487 //xar z7.s,z7.s,z4.s,24 +.if mixin == 1 + ror w20,w20,24 +.endif +.if mixin == 1 + eor w21,w21,w9 +.endif +.inst 0x0468350b //xar z11.s,z11.s,z8.s,24 +.if mixin == 1 + ror w21,w21,24 +.endif +.if mixin == 1 + eor w22,w22,w10 +.endif +.inst 0x0468358f //xar z15.s,z15.s,z12.s,24 +.if mixin == 1 + ror w22,w22,24 +.endif +.inst 0x04a30042 //add z2.s,z2.s,z3.s +.if mixin == 1 + add w15,w15,w19 +.endif +.inst 0x04a700c6 //add z6.s,z6.s,z7.s +.if mixin == 1 + add w16,w16,w20 +.endif +.inst 0x04ab014a //add z10.s,z10.s,z11.s +.if mixin == 1 + add w17,w17,w21 +.endif +.inst 0x04af01ce //add z14.s,z14.s,z15.s +.if mixin == 1 + add w18,w18,w22 +.endif +.if mixin == 1 + eor w11,w11,w15 +.endif +.inst 0x04673441 //xar z1.s,z1.s,z2.s,25 +.if mixin == 1 + ror w11,w11,25 +.endif +.if mixin == 1 + eor w12,w12,w16 +.endif +.inst 0x046734c5 //xar z5.s,z5.s,z6.s,25 +.if mixin == 1 + ror w12,w12,25 +.endif +.if mixin == 1 + eor w13,w13,w17 +.endif +.inst 0x04673549 //xar z9.s,z9.s,z10.s,25 +.if mixin == 1 + ror w13,w13,25 +.endif +.if mixin == 1 + eor w14,w14,w18 +.endif +.inst 0x046735cd //xar z13.s,z13.s,z14.s,25 +.if mixin == 1 + ror w14,w14,25 +.endif +.inst 0x04a50000 //add z0.s,z0.s,z5.s +.if mixin == 1 + add w7,w7,w12 +.endif +.inst 0x04a90084 //add z4.s,z4.s,z9.s +.if mixin == 1 + add w8,w8,w13 +.endif +.inst 0x04ad0108 //add z8.s,z8.s,z13.s +.if mixin == 1 + add w9,w9,w14 +.endif +.inst 0x04a1018c //add z12.s,z12.s,z1.s +.if mixin == 1 + add w10,w10,w11 +.endif +.if mixin == 1 + eor w22,w22,w7 +.endif +.inst 0x0470340f //xar z15.s,z15.s,z0.s,16 +.if mixin == 1 + ror w22,w22,16 +.endif +.if mixin == 1 + eor w19,w19,w8 +.endif +.inst 0x04703483 //xar z3.s,z3.s,z4.s,16 +.if mixin == 1 + ror w19,w19,16 +.endif +.if mixin == 1 + eor w20,w20,w9 +.endif +.inst 0x04703507 //xar z7.s,z7.s,z8.s,16 +.if mixin == 1 + ror w20,w20,16 +.endif +.if mixin == 1 + eor w21,w21,w10 +.endif +.inst 0x0470358b //xar z11.s,z11.s,z12.s,16 +.if mixin == 1 + ror w21,w21,16 +.endif +.inst 0x04af014a //add z10.s,z10.s,z15.s +.if mixin == 1 + add w17,w17,w22 +.endif +.inst 0x04a301ce //add z14.s,z14.s,z3.s +.if mixin == 1 + add w18,w18,w19 +.endif +.inst 0x04a70042 //add z2.s,z2.s,z7.s +.if mixin == 1 + add w15,w15,w20 +.endif +.inst 0x04ab00c6 //add z6.s,z6.s,z11.s +.if mixin == 1 + add w16,w16,w21 +.endif +.if mixin == 1 + eor w12,w12,w17 +.endif +.inst 0x046c3545 //xar z5.s,z5.s,z10.s,20 +.if mixin == 1 + ror w12,w12,20 +.endif +.if mixin == 1 + eor w13,w13,w18 +.endif +.inst 0x046c35c9 //xar z9.s,z9.s,z14.s,20 +.if mixin == 1 + ror w13,w13,20 +.endif +.if mixin == 1 + eor w14,w14,w15 +.endif +.inst 0x046c344d //xar z13.s,z13.s,z2.s,20 +.if mixin == 1 + ror w14,w14,20 +.endif +.if mixin == 1 + eor w11,w11,w16 +.endif +.inst 0x046c34c1 //xar z1.s,z1.s,z6.s,20 +.if mixin == 1 + ror w11,w11,20 +.endif +.inst 0x04a50000 //add z0.s,z0.s,z5.s +.if mixin == 1 + add w7,w7,w12 +.endif +.inst 0x04a90084 //add z4.s,z4.s,z9.s +.if mixin == 1 + add w8,w8,w13 +.endif +.inst 0x04ad0108 //add z8.s,z8.s,z13.s +.if mixin == 1 + add w9,w9,w14 +.endif +.inst 0x04a1018c //add z12.s,z12.s,z1.s +.if mixin == 1 + add w10,w10,w11 +.endif +.if mixin == 1 + eor w22,w22,w7 +.endif +.inst 0x0468340f //xar z15.s,z15.s,z0.s,24 +.if mixin == 1 + ror w22,w22,24 +.endif +.if mixin == 1 + eor w19,w19,w8 +.endif +.inst 0x04683483 //xar z3.s,z3.s,z4.s,24 +.if mixin == 1 + ror w19,w19,24 +.endif +.if mixin == 1 + eor w20,w20,w9 +.endif +.inst 0x04683507 //xar z7.s,z7.s,z8.s,24 +.if mixin == 1 + ror w20,w20,24 +.endif +.if mixin == 1 + eor w21,w21,w10 +.endif +.inst 0x0468358b //xar z11.s,z11.s,z12.s,24 +.if mixin == 1 + ror w21,w21,24 +.endif +.inst 0x04af014a //add z10.s,z10.s,z15.s +.if mixin == 1 + add w17,w17,w22 +.endif +.inst 0x04a301ce //add z14.s,z14.s,z3.s +.if mixin == 1 + add w18,w18,w19 +.endif +.inst 0x04a70042 //add z2.s,z2.s,z7.s +.if mixin == 1 + add w15,w15,w20 +.endif +.inst 0x04ab00c6 //add z6.s,z6.s,z11.s +.if mixin == 1 + add w16,w16,w21 +.endif +.if mixin == 1 + eor w12,w12,w17 +.endif +.inst 0x04673545 //xar z5.s,z5.s,z10.s,25 +.if mixin == 1 + ror w12,w12,25 +.endif +.if mixin == 1 + eor w13,w13,w18 +.endif +.inst 0x046735c9 //xar z9.s,z9.s,z14.s,25 +.if mixin == 1 + ror w13,w13,25 +.endif +.if mixin == 1 + eor w14,w14,w15 +.endif +.inst 0x0467344d //xar z13.s,z13.s,z2.s,25 +.if mixin == 1 + ror w14,w14,25 +.endif +.if mixin == 1 + eor w11,w11,w16 +.endif +.inst 0x046734c1 //xar z1.s,z1.s,z6.s,25 +.if mixin == 1 + ror w11,w11,25 +.endif + sub x6,x6,1 + cbnz x6,10b +.if mixin == 1 + add w7,w7,w23 +.endif +.inst 0x04b90000 //add z0.s,z0.s,z25.s +.if mixin == 1 + add x8,x8,x23,lsr #32 +.endif +.inst 0x04ba0084 //add z4.s,z4.s,z26.s +.if mixin == 1 + add x7,x7,x8,lsl #32 // pack +.endif +.if mixin == 1 + add w9,w9,w24 +.endif +.inst 0x04bb0108 //add z8.s,z8.s,z27.s +.if mixin == 1 + add x10,x10,x24,lsr #32 +.endif +.inst 0x04bc018c //add z12.s,z12.s,z28.s +.if mixin == 1 + add x9,x9,x10,lsl #32 // pack +.endif +.if mixin == 1 + ldp x8,x10,[x1],#16 +.endif +.if mixin == 1 + add w11,w11,w25 +.endif +.inst 0x04bd0021 //add z1.s,z1.s,z29.s +.if mixin == 1 + add x12,x12,x25,lsr #32 +.endif +.inst 0x04be00a5 //add z5.s,z5.s,z30.s +.if mixin == 1 + add x11,x11,x12,lsl #32 // pack +.endif +.if mixin == 1 + add w13,w13,w26 +.endif +.inst 0x04b50129 //add z9.s,z9.s,z21.s +.if mixin == 1 + add x14,x14,x26,lsr #32 +.endif +.inst 0x04b601ad //add z13.s,z13.s,z22.s +.if mixin == 1 + add x13,x13,x14,lsl #32 // pack +.endif +.if mixin == 1 + ldp x12,x14,[x1],#16 +.endif +.if mixin == 1 + add w15,w15,w27 +.endif +.inst 0x04b70042 //add z2.s,z2.s,z23.s +.if mixin == 1 + add x16,x16,x27,lsr #32 +.endif +.inst 0x04b800c6 //add z6.s,z6.s,z24.s +.if mixin == 1 + add x15,x15,x16,lsl #32 // pack +.endif +.if mixin == 1 + add w17,w17,w28 +.endif +.inst 0x04b1014a //add z10.s,z10.s,z17.s +.if mixin == 1 + add x18,x18,x28,lsr #32 +.endif +.inst 0x04b201ce //add z14.s,z14.s,z18.s +.if mixin == 1 + add x17,x17,x18,lsl #32 // pack +.endif +.if mixin == 1 + ldp x16,x18,[x1],#16 +.endif +.if mixin == 1 + add w19,w19,w29 +.endif +.inst 0x04b00063 //add z3.s,z3.s,z16.s +.if mixin == 1 + add x20,x20,x29,lsr #32 +.endif +.inst 0x04b300e7 //add z7.s,z7.s,z19.s +.if mixin == 1 + add x19,x19,x20,lsl #32 // pack +.endif +.if mixin == 1 + add w21,w21,w30 +.endif +.inst 0x04b4016b //add z11.s,z11.s,z20.s +.if mixin == 1 + add x22,x22,x30,lsr #32 +.endif +.inst 0x04bf01ef //add z15.s,z15.s,z31.s +.if mixin == 1 + add x21,x21,x22,lsl #32 // pack +.endif +.if mixin == 1 + ldp x20,x22,[x1],#16 +.endif +#ifdef __AARCH64EB__ + rev x7,x7 +.inst 0x05a48000 //revb z0.s,p0/m,z0.s +.inst 0x05a48084 //revb z4.s,p0/m,z4.s + rev x9,x9 +.inst 0x05a48108 //revb z8.s,p0/m,z8.s +.inst 0x05a4818c //revb z12.s,p0/m,z12.s + rev x11,x11 +.inst 0x05a48021 //revb z1.s,p0/m,z1.s +.inst 0x05a480a5 //revb z5.s,p0/m,z5.s + rev x13,x13 +.inst 0x05a48129 //revb z9.s,p0/m,z9.s +.inst 0x05a481ad //revb z13.s,p0/m,z13.s + rev x15,x15 +.inst 0x05a48042 //revb z2.s,p0/m,z2.s +.inst 0x05a480c6 //revb z6.s,p0/m,z6.s + rev x17,x17 +.inst 0x05a4814a //revb z10.s,p0/m,z10.s +.inst 0x05a481ce //revb z14.s,p0/m,z14.s + rev x19,x19 +.inst 0x05a48063 //revb z3.s,p0/m,z3.s +.inst 0x05a480e7 //revb z7.s,p0/m,z7.s + rev x21,x21 +.inst 0x05a4816b //revb z11.s,p0/m,z11.s +.inst 0x05a481ef //revb z15.s,p0/m,z15.s +#endif +.if mixin == 1 + add x29,x29,#1 +.endif + cmp x5,4 + b.ne 200f +.if mixin == 1 + eor x7,x7,x8 +.endif +.if mixin == 1 + eor x9,x9,x10 +.endif +.if mixin == 1 + eor x11,x11,x12 +.endif +.inst 0x05a46011 //zip1 z17.s,z0.s,z4.s +.inst 0x05a46412 //zip2 z18.s,z0.s,z4.s +.inst 0x05ac6113 //zip1 z19.s,z8.s,z12.s +.inst 0x05ac6514 //zip2 z20.s,z8.s,z12.s + +.inst 0x05a56035 //zip1 z21.s,z1.s,z5.s +.inst 0x05a56436 //zip2 z22.s,z1.s,z5.s +.inst 0x05ad6137 //zip1 z23.s,z9.s,z13.s +.inst 0x05ad6538 //zip2 z24.s,z9.s,z13.s + +.inst 0x05f36220 //zip1 z0.d,z17.d,z19.d +.inst 0x05f36624 //zip2 z4.d,z17.d,z19.d +.inst 0x05f46248 //zip1 z8.d,z18.d,z20.d +.inst 0x05f4664c //zip2 z12.d,z18.d,z20.d + +.inst 0x05f762a1 //zip1 z1.d,z21.d,z23.d +.inst 0x05f766a5 //zip2 z5.d,z21.d,z23.d +.inst 0x05f862c9 //zip1 z9.d,z22.d,z24.d +.inst 0x05f866cd //zip2 z13.d,z22.d,z24.d +.if mixin == 1 + eor x13,x13,x14 +.endif +.if mixin == 1 + eor x15,x15,x16 +.endif +.if mixin == 1 + eor x17,x17,x18 +.endif +.inst 0x05a66051 //zip1 z17.s,z2.s,z6.s +.inst 0x05a66452 //zip2 z18.s,z2.s,z6.s +.inst 0x05ae6153 //zip1 z19.s,z10.s,z14.s +.inst 0x05ae6554 //zip2 z20.s,z10.s,z14.s + +.inst 0x05a76075 //zip1 z21.s,z3.s,z7.s +.inst 0x05a76476 //zip2 z22.s,z3.s,z7.s +.inst 0x05af6177 //zip1 z23.s,z11.s,z15.s +.inst 0x05af6578 //zip2 z24.s,z11.s,z15.s + +.inst 0x05f36222 //zip1 z2.d,z17.d,z19.d +.inst 0x05f36626 //zip2 z6.d,z17.d,z19.d +.inst 0x05f4624a //zip1 z10.d,z18.d,z20.d +.inst 0x05f4664e //zip2 z14.d,z18.d,z20.d + +.inst 0x05f762a3 //zip1 z3.d,z21.d,z23.d +.inst 0x05f766a7 //zip2 z7.d,z21.d,z23.d +.inst 0x05f862cb //zip1 z11.d,z22.d,z24.d +.inst 0x05f866cf //zip2 z15.d,z22.d,z24.d +.if mixin == 1 + eor x19,x19,x20 +.endif +.if mixin == 1 + eor x21,x21,x22 +.endif + ld1 {v17.4s,v18.4s,v19.4s,v20.4s},[x1],#64 + ld1 {v21.4s,v22.4s,v23.4s,v24.4s},[x1],#64 +.inst 0x04b13000 //eor z0.d,z0.d,z17.d +.inst 0x04b23021 //eor z1.d,z1.d,z18.d +.inst 0x04b33042 //eor z2.d,z2.d,z19.d +.inst 0x04b43063 //eor z3.d,z3.d,z20.d +.inst 0x04b53084 //eor z4.d,z4.d,z21.d +.inst 0x04b630a5 //eor z5.d,z5.d,z22.d +.inst 0x04b730c6 //eor z6.d,z6.d,z23.d +.inst 0x04b830e7 //eor z7.d,z7.d,z24.d + ld1 {v17.4s,v18.4s,v19.4s,v20.4s},[x1],#64 + ld1 {v21.4s,v22.4s,v23.4s,v24.4s},[x1],#64 +.if mixin == 1 + stp x7,x9,[x0],#16 +.endif +.inst 0x04b13108 //eor z8.d,z8.d,z17.d +.inst 0x04b23129 //eor z9.d,z9.d,z18.d +.if mixin == 1 + stp x11,x13,[x0],#16 +.endif +.inst 0x04b3314a //eor z10.d,z10.d,z19.d +.inst 0x04b4316b //eor z11.d,z11.d,z20.d +.if mixin == 1 + stp x15,x17,[x0],#16 +.endif +.inst 0x04b5318c //eor z12.d,z12.d,z21.d +.inst 0x04b631ad //eor z13.d,z13.d,z22.d +.if mixin == 1 + stp x19,x21,[x0],#16 +.endif +.inst 0x04b731ce //eor z14.d,z14.d,z23.d +.inst 0x04b831ef //eor z15.d,z15.d,z24.d + st1 {v0.4s,v1.4s,v2.4s,v3.4s},[x0],#64 + st1 {v4.4s,v5.4s,v6.4s,v7.4s},[x0],#64 + st1 {v8.4s,v9.4s,v10.4s,v11.4s},[x0],#64 + st1 {v12.4s,v13.4s,v14.4s,v15.4s},[x0],#64 + b 210f +200: +.inst 0x05a16011 //zip1 z17.s,z0.s,z1.s +.inst 0x05a16412 //zip2 z18.s,z0.s,z1.s +.inst 0x05a36053 //zip1 z19.s,z2.s,z3.s +.inst 0x05a36454 //zip2 z20.s,z2.s,z3.s + +.inst 0x05a56095 //zip1 z21.s,z4.s,z5.s +.inst 0x05a56496 //zip2 z22.s,z4.s,z5.s +.inst 0x05a760d7 //zip1 z23.s,z6.s,z7.s +.inst 0x05a764d8 //zip2 z24.s,z6.s,z7.s + +.inst 0x05f36220 //zip1 z0.d,z17.d,z19.d +.inst 0x05f36621 //zip2 z1.d,z17.d,z19.d +.inst 0x05f46242 //zip1 z2.d,z18.d,z20.d +.inst 0x05f46643 //zip2 z3.d,z18.d,z20.d + +.inst 0x05f762a4 //zip1 z4.d,z21.d,z23.d +.inst 0x05f766a5 //zip2 z5.d,z21.d,z23.d +.inst 0x05f862c6 //zip1 z6.d,z22.d,z24.d +.inst 0x05f866c7 //zip2 z7.d,z22.d,z24.d +.if mixin == 1 + eor x7,x7,x8 +.endif +.if mixin == 1 + eor x9,x9,x10 +.endif +.inst 0x05a96111 //zip1 z17.s,z8.s,z9.s +.inst 0x05a96512 //zip2 z18.s,z8.s,z9.s +.inst 0x05ab6153 //zip1 z19.s,z10.s,z11.s +.inst 0x05ab6554 //zip2 z20.s,z10.s,z11.s + +.inst 0x05ad6195 //zip1 z21.s,z12.s,z13.s +.inst 0x05ad6596 //zip2 z22.s,z12.s,z13.s +.inst 0x05af61d7 //zip1 z23.s,z14.s,z15.s +.inst 0x05af65d8 //zip2 z24.s,z14.s,z15.s + +.inst 0x05f36228 //zip1 z8.d,z17.d,z19.d +.inst 0x05f36629 //zip2 z9.d,z17.d,z19.d +.inst 0x05f4624a //zip1 z10.d,z18.d,z20.d +.inst 0x05f4664b //zip2 z11.d,z18.d,z20.d + +.inst 0x05f762ac //zip1 z12.d,z21.d,z23.d +.inst 0x05f766ad //zip2 z13.d,z21.d,z23.d +.inst 0x05f862ce //zip1 z14.d,z22.d,z24.d +.inst 0x05f866cf //zip2 z15.d,z22.d,z24.d +.if mixin == 1 + eor x11,x11,x12 +.endif +.if mixin == 1 + eor x13,x13,x14 +.endif +.inst 0x05a46011 //zip1 z17.s,z0.s,z4.s +.inst 0x05a46412 //zip2 z18.s,z0.s,z4.s +.inst 0x05ac6113 //zip1 z19.s,z8.s,z12.s +.inst 0x05ac6514 //zip2 z20.s,z8.s,z12.s + +.inst 0x05a56035 //zip1 z21.s,z1.s,z5.s +.inst 0x05a56436 //zip2 z22.s,z1.s,z5.s +.inst 0x05ad6137 //zip1 z23.s,z9.s,z13.s +.inst 0x05ad6538 //zip2 z24.s,z9.s,z13.s + +.inst 0x05f36220 //zip1 z0.d,z17.d,z19.d +.inst 0x05f36624 //zip2 z4.d,z17.d,z19.d +.inst 0x05f46248 //zip1 z8.d,z18.d,z20.d +.inst 0x05f4664c //zip2 z12.d,z18.d,z20.d + +.inst 0x05f762a1 //zip1 z1.d,z21.d,z23.d +.inst 0x05f766a5 //zip2 z5.d,z21.d,z23.d +.inst 0x05f862c9 //zip1 z9.d,z22.d,z24.d +.inst 0x05f866cd //zip2 z13.d,z22.d,z24.d +.if mixin == 1 + eor x15,x15,x16 +.endif +.if mixin == 1 + eor x17,x17,x18 +.endif +.inst 0x05a66051 //zip1 z17.s,z2.s,z6.s +.inst 0x05a66452 //zip2 z18.s,z2.s,z6.s +.inst 0x05ae6153 //zip1 z19.s,z10.s,z14.s +.inst 0x05ae6554 //zip2 z20.s,z10.s,z14.s + +.inst 0x05a76075 //zip1 z21.s,z3.s,z7.s +.inst 0x05a76476 //zip2 z22.s,z3.s,z7.s +.inst 0x05af6177 //zip1 z23.s,z11.s,z15.s +.inst 0x05af6578 //zip2 z24.s,z11.s,z15.s + +.inst 0x05f36222 //zip1 z2.d,z17.d,z19.d +.inst 0x05f36626 //zip2 z6.d,z17.d,z19.d +.inst 0x05f4624a //zip1 z10.d,z18.d,z20.d +.inst 0x05f4664e //zip2 z14.d,z18.d,z20.d + +.inst 0x05f762a3 //zip1 z3.d,z21.d,z23.d +.inst 0x05f766a7 //zip2 z7.d,z21.d,z23.d +.inst 0x05f862cb //zip1 z11.d,z22.d,z24.d +.inst 0x05f866cf //zip2 z15.d,z22.d,z24.d +.if mixin == 1 + eor x19,x19,x20 +.endif +.if mixin == 1 + eor x21,x21,x22 +.endif +.inst 0xa540a031 //ld1w {z17.s},p0/z,[x1,#0,MUL VL] +.inst 0xa541a032 //ld1w {z18.s},p0/z,[x1,#1,MUL VL] +.inst 0xa542a033 //ld1w {z19.s},p0/z,[x1,#2,MUL VL] +.inst 0xa543a034 //ld1w {z20.s},p0/z,[x1,#3,MUL VL] +.inst 0xa544a035 //ld1w {z21.s},p0/z,[x1,#4,MUL VL] +.inst 0xa545a036 //ld1w {z22.s},p0/z,[x1,#5,MUL VL] +.inst 0xa546a037 //ld1w {z23.s},p0/z,[x1,#6,MUL VL] +.inst 0xa547a038 //ld1w {z24.s},p0/z,[x1,#7,MUL VL] +.inst 0x04215101 //addvl x1,x1,8 +.inst 0x04b13000 //eor z0.d,z0.d,z17.d +.inst 0x04b23084 //eor z4.d,z4.d,z18.d +.inst 0x04b33108 //eor z8.d,z8.d,z19.d +.inst 0x04b4318c //eor z12.d,z12.d,z20.d +.inst 0x04b53021 //eor z1.d,z1.d,z21.d +.inst 0x04b630a5 //eor z5.d,z5.d,z22.d +.inst 0x04b73129 //eor z9.d,z9.d,z23.d +.inst 0x04b831ad //eor z13.d,z13.d,z24.d +.inst 0xa540a031 //ld1w {z17.s},p0/z,[x1,#0,MUL VL] +.inst 0xa541a032 //ld1w {z18.s},p0/z,[x1,#1,MUL VL] +.inst 0xa542a033 //ld1w {z19.s},p0/z,[x1,#2,MUL VL] +.inst 0xa543a034 //ld1w {z20.s},p0/z,[x1,#3,MUL VL] +.inst 0xa544a035 //ld1w {z21.s},p0/z,[x1,#4,MUL VL] +.inst 0xa545a036 //ld1w {z22.s},p0/z,[x1,#5,MUL VL] +.inst 0xa546a037 //ld1w {z23.s},p0/z,[x1,#6,MUL VL] +.inst 0xa547a038 //ld1w {z24.s},p0/z,[x1,#7,MUL VL] +.inst 0x04215101 //addvl x1,x1,8 +.if mixin == 1 + stp x7,x9,[x0],#16 +.endif +.inst 0x04b13042 //eor z2.d,z2.d,z17.d +.inst 0x04b230c6 //eor z6.d,z6.d,z18.d +.if mixin == 1 + stp x11,x13,[x0],#16 +.endif +.inst 0x04b3314a //eor z10.d,z10.d,z19.d +.inst 0x04b431ce //eor z14.d,z14.d,z20.d +.if mixin == 1 + stp x15,x17,[x0],#16 +.endif +.inst 0x04b53063 //eor z3.d,z3.d,z21.d +.inst 0x04b630e7 //eor z7.d,z7.d,z22.d +.if mixin == 1 + stp x19,x21,[x0],#16 +.endif +.inst 0x04b7316b //eor z11.d,z11.d,z23.d +.inst 0x04b831ef //eor z15.d,z15.d,z24.d +.inst 0xe540e000 //st1w {z0.s},p0,[x0,#0,MUL VL] +.inst 0xe541e004 //st1w {z4.s},p0,[x0,#1,MUL VL] +.inst 0xe542e008 //st1w {z8.s},p0,[x0,#2,MUL VL] +.inst 0xe543e00c //st1w {z12.s},p0,[x0,#3,MUL VL] +.inst 0xe544e001 //st1w {z1.s},p0,[x0,#4,MUL VL] +.inst 0xe545e005 //st1w {z5.s},p0,[x0,#5,MUL VL] +.inst 0xe546e009 //st1w {z9.s},p0,[x0,#6,MUL VL] +.inst 0xe547e00d //st1w {z13.s},p0,[x0,#7,MUL VL] +.inst 0x04205100 //addvl x0,x0,8 +.inst 0xe540e002 //st1w {z2.s},p0,[x0,#0,MUL VL] +.inst 0xe541e006 //st1w {z6.s},p0,[x0,#1,MUL VL] +.inst 0xe542e00a //st1w {z10.s},p0,[x0,#2,MUL VL] +.inst 0xe543e00e //st1w {z14.s},p0,[x0,#3,MUL VL] +.inst 0xe544e003 //st1w {z3.s},p0,[x0,#4,MUL VL] +.inst 0xe545e007 //st1w {z7.s},p0,[x0,#5,MUL VL] +.inst 0xe546e00b //st1w {z11.s},p0,[x0,#6,MUL VL] +.inst 0xe547e00f //st1w {z15.s},p0,[x0,#7,MUL VL] +.inst 0x04205100 //addvl x0,x0,8 +210: +.inst 0x04b0e3fd //incw x29, ALL, MUL #1 +110: + b 2f +1: +.align 5 +100: + subs x7,x2,x5,lsl #6 + b.lt 110f + mov x2,x7 + b.eq 101f + cmp x2,64 + b.lt 101f + mixin=1 + lsr x8,x23,#32 +.inst 0x05a03ae0 //dup z0.s,w23 +.inst 0x05a03af9 //dup z25.s,w23 +.if mixin == 1 + mov w7,w23 +.endif +.inst 0x05a03904 //dup z4.s,w8 +.inst 0x05a0391a //dup z26.s,w8 + lsr x10,x24,#32 +.inst 0x05a03b08 //dup z8.s,w24 +.inst 0x05a03b1b //dup z27.s,w24 +.if mixin == 1 + mov w9,w24 +.endif +.inst 0x05a0394c //dup z12.s,w10 +.inst 0x05a0395c //dup z28.s,w10 + lsr x12,x25,#32 +.inst 0x05a03b21 //dup z1.s,w25 +.inst 0x05a03b3d //dup z29.s,w25 +.if mixin == 1 + mov w11,w25 +.endif +.inst 0x05a03985 //dup z5.s,w12 +.inst 0x05a0399e //dup z30.s,w12 + lsr x14,x26,#32 +.inst 0x05a03b49 //dup z9.s,w26 +.inst 0x05a03b55 //dup z21.s,w26 +.if mixin == 1 + mov w13,w26 +.endif +.inst 0x05a039cd //dup z13.s,w14 +.inst 0x05a039d6 //dup z22.s,w14 + lsr x16,x27,#32 +.inst 0x05a03b62 //dup z2.s,w27 +.inst 0x05a03b77 //dup z23.s,w27 +.if mixin == 1 + mov w15,w27 +.endif +.inst 0x05a03a06 //dup z6.s,w16 +.inst 0x05a03a18 //dup z24.s,w16 + lsr x18,x28,#32 +.inst 0x05a03b8a //dup z10.s,w28 +.if mixin == 1 + mov w17,w28 +.endif +.inst 0x05a03a4e //dup z14.s,w18 + lsr x22,x30,#32 +.inst 0x05a03bcb //dup z11.s,w30 +.if mixin == 1 + mov w21,w30 +.endif +.inst 0x05a03acf //dup z15.s,w22 +.if mixin == 1 + add w20,w29,#1 + mov w19,w29 +.inst 0x04a14690 //index z16.s,w20,1 +.inst 0x04a14683 //index z3.s,w20,1 +.else +.inst 0x04a147b0 //index z16.s,w29,1 +.inst 0x04a147a3 //index z3.s,w29,1 +.endif + lsr x20,x29,#32 +.inst 0x05a03a87 //dup z7.s,w20 + mov x6,#10 +10: +.align 5 +.inst 0x04a10000 //add z0.s,z0.s,z1.s +.if mixin == 1 + add w7,w7,w11 +.endif +.inst 0x04a50084 //add z4.s,z4.s,z5.s +.if mixin == 1 + add w8,w8,w12 +.endif +.inst 0x04a90108 //add z8.s,z8.s,z9.s +.if mixin == 1 + add w9,w9,w13 +.endif +.inst 0x04ad018c //add z12.s,z12.s,z13.s +.if mixin == 1 + add w10,w10,w14 +.endif +.inst 0x04a03063 //eor z3.d,z3.d,z0.d +.if mixin == 1 + eor w19,w19,w7 +.endif +.inst 0x04a430e7 //eor z7.d,z7.d,z4.d +.if mixin == 1 + eor w20,w20,w8 +.endif +.inst 0x04a8316b //eor z11.d,z11.d,z8.d +.if mixin == 1 + eor w21,w21,w9 +.endif +.inst 0x04ac31ef //eor z15.d,z15.d,z12.d +.if mixin == 1 + eor w22,w22,w10 +.endif +.inst 0x05a58063 //revh z3.s,p0/m,z3.s +.if mixin == 1 + ror w19,w19,#16 +.endif +.inst 0x05a580e7 //revh z7.s,p0/m,z7.s +.if mixin == 1 + ror w20,w20,#16 +.endif +.inst 0x05a5816b //revh z11.s,p0/m,z11.s +.if mixin == 1 + ror w21,w21,#16 +.endif +.inst 0x05a581ef //revh z15.s,p0/m,z15.s +.if mixin == 1 + ror w22,w22,#16 +.endif +.inst 0x04a30042 //add z2.s,z2.s,z3.s +.if mixin == 1 + add w15,w15,w19 +.endif +.inst 0x04a700c6 //add z6.s,z6.s,z7.s +.if mixin == 1 + add w16,w16,w20 +.endif +.inst 0x04ab014a //add z10.s,z10.s,z11.s +.if mixin == 1 + add w17,w17,w21 +.endif +.inst 0x04af01ce //add z14.s,z14.s,z15.s +.if mixin == 1 + add w18,w18,w22 +.endif +.inst 0x04a23021 //eor z1.d,z1.d,z2.d +.if mixin == 1 + eor w11,w11,w15 +.endif +.inst 0x04a630a5 //eor z5.d,z5.d,z6.d +.if mixin == 1 + eor w12,w12,w16 +.endif +.inst 0x04aa3129 //eor z9.d,z9.d,z10.d +.if mixin == 1 + eor w13,w13,w17 +.endif +.inst 0x04ae31ad //eor z13.d,z13.d,z14.d +.if mixin == 1 + eor w14,w14,w18 +.endif +.inst 0x046c9c31 //lsl z17.s,z1.s,12 +.inst 0x046c9cb2 //lsl z18.s,z5.s,12 +.inst 0x046c9d33 //lsl z19.s,z9.s,12 +.inst 0x046c9db4 //lsl z20.s,z13.s,12 +.inst 0x046c9421 //lsr z1.s,z1.s,20 +.if mixin == 1 + ror w11,w11,20 +.endif +.inst 0x046c94a5 //lsr z5.s,z5.s,20 +.if mixin == 1 + ror w12,w12,20 +.endif +.inst 0x046c9529 //lsr z9.s,z9.s,20 +.if mixin == 1 + ror w13,w13,20 +.endif +.inst 0x046c95ad //lsr z13.s,z13.s,20 +.if mixin == 1 + ror w14,w14,20 +.endif +.inst 0x04713021 //orr z1.d,z1.d,z17.d +.inst 0x047230a5 //orr z5.d,z5.d,z18.d +.inst 0x04733129 //orr z9.d,z9.d,z19.d +.inst 0x047431ad //orr z13.d,z13.d,z20.d +.inst 0x04a10000 //add z0.s,z0.s,z1.s +.if mixin == 1 + add w7,w7,w11 +.endif +.inst 0x04a50084 //add z4.s,z4.s,z5.s +.if mixin == 1 + add w8,w8,w12 +.endif +.inst 0x04a90108 //add z8.s,z8.s,z9.s +.if mixin == 1 + add w9,w9,w13 +.endif +.inst 0x04ad018c //add z12.s,z12.s,z13.s +.if mixin == 1 + add w10,w10,w14 +.endif +.inst 0x04a03063 //eor z3.d,z3.d,z0.d +.if mixin == 1 + eor w19,w19,w7 +.endif +.inst 0x04a430e7 //eor z7.d,z7.d,z4.d +.if mixin == 1 + eor w20,w20,w8 +.endif +.inst 0x04a8316b //eor z11.d,z11.d,z8.d +.if mixin == 1 + eor w21,w21,w9 +.endif +.inst 0x04ac31ef //eor z15.d,z15.d,z12.d +.if mixin == 1 + eor w22,w22,w10 +.endif +.inst 0x053f3063 //tbl z3.b,{z3.b},z31.b +.if mixin == 1 + ror w19,w19,#24 +.endif +.inst 0x053f30e7 //tbl z7.b,{z7.b},z31.b +.if mixin == 1 + ror w20,w20,#24 +.endif +.inst 0x053f316b //tbl z11.b,{z11.b},z31.b +.if mixin == 1 + ror w21,w21,#24 +.endif +.inst 0x053f31ef //tbl z15.b,{z15.b},z31.b +.if mixin == 1 + ror w22,w22,#24 +.endif +.inst 0x04a30042 //add z2.s,z2.s,z3.s +.if mixin == 1 + add w15,w15,w19 +.endif +.inst 0x04a700c6 //add z6.s,z6.s,z7.s +.if mixin == 1 + add w16,w16,w20 +.endif +.inst 0x04ab014a //add z10.s,z10.s,z11.s +.if mixin == 1 + add w17,w17,w21 +.endif +.inst 0x04af01ce //add z14.s,z14.s,z15.s +.if mixin == 1 + add w18,w18,w22 +.endif +.inst 0x04a23021 //eor z1.d,z1.d,z2.d +.if mixin == 1 + eor w11,w11,w15 +.endif +.inst 0x04a630a5 //eor z5.d,z5.d,z6.d +.if mixin == 1 + eor w12,w12,w16 +.endif +.inst 0x04aa3129 //eor z9.d,z9.d,z10.d +.if mixin == 1 + eor w13,w13,w17 +.endif +.inst 0x04ae31ad //eor z13.d,z13.d,z14.d +.if mixin == 1 + eor w14,w14,w18 +.endif +.inst 0x04679c31 //lsl z17.s,z1.s,7 +.inst 0x04679cb2 //lsl z18.s,z5.s,7 +.inst 0x04679d33 //lsl z19.s,z9.s,7 +.inst 0x04679db4 //lsl z20.s,z13.s,7 +.inst 0x04679421 //lsr z1.s,z1.s,25 +.if mixin == 1 + ror w11,w11,25 +.endif +.inst 0x046794a5 //lsr z5.s,z5.s,25 +.if mixin == 1 + ror w12,w12,25 +.endif +.inst 0x04679529 //lsr z9.s,z9.s,25 +.if mixin == 1 + ror w13,w13,25 +.endif +.inst 0x046795ad //lsr z13.s,z13.s,25 +.if mixin == 1 + ror w14,w14,25 +.endif +.inst 0x04713021 //orr z1.d,z1.d,z17.d +.inst 0x047230a5 //orr z5.d,z5.d,z18.d +.inst 0x04733129 //orr z9.d,z9.d,z19.d +.inst 0x047431ad //orr z13.d,z13.d,z20.d +.inst 0x04a50000 //add z0.s,z0.s,z5.s +.if mixin == 1 + add w7,w7,w12 +.endif +.inst 0x04a90084 //add z4.s,z4.s,z9.s +.if mixin == 1 + add w8,w8,w13 +.endif +.inst 0x04ad0108 //add z8.s,z8.s,z13.s +.if mixin == 1 + add w9,w9,w14 +.endif +.inst 0x04a1018c //add z12.s,z12.s,z1.s +.if mixin == 1 + add w10,w10,w11 +.endif +.inst 0x04a031ef //eor z15.d,z15.d,z0.d +.if mixin == 1 + eor w22,w22,w7 +.endif +.inst 0x04a43063 //eor z3.d,z3.d,z4.d +.if mixin == 1 + eor w19,w19,w8 +.endif +.inst 0x04a830e7 //eor z7.d,z7.d,z8.d +.if mixin == 1 + eor w20,w20,w9 +.endif +.inst 0x04ac316b //eor z11.d,z11.d,z12.d +.if mixin == 1 + eor w21,w21,w10 +.endif +.inst 0x05a581ef //revh z15.s,p0/m,z15.s +.if mixin == 1 + ror w22,w22,#16 +.endif +.inst 0x05a58063 //revh z3.s,p0/m,z3.s +.if mixin == 1 + ror w19,w19,#16 +.endif +.inst 0x05a580e7 //revh z7.s,p0/m,z7.s +.if mixin == 1 + ror w20,w20,#16 +.endif +.inst 0x05a5816b //revh z11.s,p0/m,z11.s +.if mixin == 1 + ror w21,w21,#16 +.endif +.inst 0x04af014a //add z10.s,z10.s,z15.s +.if mixin == 1 + add w17,w17,w22 +.endif +.inst 0x04a301ce //add z14.s,z14.s,z3.s +.if mixin == 1 + add w18,w18,w19 +.endif +.inst 0x04a70042 //add z2.s,z2.s,z7.s +.if mixin == 1 + add w15,w15,w20 +.endif +.inst 0x04ab00c6 //add z6.s,z6.s,z11.s +.if mixin == 1 + add w16,w16,w21 +.endif +.inst 0x04aa30a5 //eor z5.d,z5.d,z10.d +.if mixin == 1 + eor w12,w12,w17 +.endif +.inst 0x04ae3129 //eor z9.d,z9.d,z14.d +.if mixin == 1 + eor w13,w13,w18 +.endif +.inst 0x04a231ad //eor z13.d,z13.d,z2.d +.if mixin == 1 + eor w14,w14,w15 +.endif +.inst 0x04a63021 //eor z1.d,z1.d,z6.d +.if mixin == 1 + eor w11,w11,w16 +.endif +.inst 0x046c9cb1 //lsl z17.s,z5.s,12 +.inst 0x046c9d32 //lsl z18.s,z9.s,12 +.inst 0x046c9db3 //lsl z19.s,z13.s,12 +.inst 0x046c9c34 //lsl z20.s,z1.s,12 +.inst 0x046c94a5 //lsr z5.s,z5.s,20 +.if mixin == 1 + ror w12,w12,20 +.endif +.inst 0x046c9529 //lsr z9.s,z9.s,20 +.if mixin == 1 + ror w13,w13,20 +.endif +.inst 0x046c95ad //lsr z13.s,z13.s,20 +.if mixin == 1 + ror w14,w14,20 +.endif +.inst 0x046c9421 //lsr z1.s,z1.s,20 +.if mixin == 1 + ror w11,w11,20 +.endif +.inst 0x047130a5 //orr z5.d,z5.d,z17.d +.inst 0x04723129 //orr z9.d,z9.d,z18.d +.inst 0x047331ad //orr z13.d,z13.d,z19.d +.inst 0x04743021 //orr z1.d,z1.d,z20.d +.inst 0x04a50000 //add z0.s,z0.s,z5.s +.if mixin == 1 + add w7,w7,w12 +.endif +.inst 0x04a90084 //add z4.s,z4.s,z9.s +.if mixin == 1 + add w8,w8,w13 +.endif +.inst 0x04ad0108 //add z8.s,z8.s,z13.s +.if mixin == 1 + add w9,w9,w14 +.endif +.inst 0x04a1018c //add z12.s,z12.s,z1.s +.if mixin == 1 + add w10,w10,w11 +.endif +.inst 0x04a031ef //eor z15.d,z15.d,z0.d +.if mixin == 1 + eor w22,w22,w7 +.endif +.inst 0x04a43063 //eor z3.d,z3.d,z4.d +.if mixin == 1 + eor w19,w19,w8 +.endif +.inst 0x04a830e7 //eor z7.d,z7.d,z8.d +.if mixin == 1 + eor w20,w20,w9 +.endif +.inst 0x04ac316b //eor z11.d,z11.d,z12.d +.if mixin == 1 + eor w21,w21,w10 +.endif +.inst 0x053f31ef //tbl z15.b,{z15.b},z31.b +.if mixin == 1 + ror w22,w22,#24 +.endif +.inst 0x053f3063 //tbl z3.b,{z3.b},z31.b +.if mixin == 1 + ror w19,w19,#24 +.endif +.inst 0x053f30e7 //tbl z7.b,{z7.b},z31.b +.if mixin == 1 + ror w20,w20,#24 +.endif +.inst 0x053f316b //tbl z11.b,{z11.b},z31.b +.if mixin == 1 + ror w21,w21,#24 +.endif +.inst 0x04af014a //add z10.s,z10.s,z15.s +.if mixin == 1 + add w17,w17,w22 +.endif +.inst 0x04a301ce //add z14.s,z14.s,z3.s +.if mixin == 1 + add w18,w18,w19 +.endif +.inst 0x04a70042 //add z2.s,z2.s,z7.s +.if mixin == 1 + add w15,w15,w20 +.endif +.inst 0x04ab00c6 //add z6.s,z6.s,z11.s +.if mixin == 1 + add w16,w16,w21 +.endif +.inst 0x04aa30a5 //eor z5.d,z5.d,z10.d +.if mixin == 1 + eor w12,w12,w17 +.endif +.inst 0x04ae3129 //eor z9.d,z9.d,z14.d +.if mixin == 1 + eor w13,w13,w18 +.endif +.inst 0x04a231ad //eor z13.d,z13.d,z2.d +.if mixin == 1 + eor w14,w14,w15 +.endif +.inst 0x04a63021 //eor z1.d,z1.d,z6.d +.if mixin == 1 + eor w11,w11,w16 +.endif +.inst 0x04679cb1 //lsl z17.s,z5.s,7 +.inst 0x04679d32 //lsl z18.s,z9.s,7 +.inst 0x04679db3 //lsl z19.s,z13.s,7 +.inst 0x04679c34 //lsl z20.s,z1.s,7 +.inst 0x046794a5 //lsr z5.s,z5.s,25 +.if mixin == 1 + ror w12,w12,25 +.endif +.inst 0x04679529 //lsr z9.s,z9.s,25 +.if mixin == 1 + ror w13,w13,25 +.endif +.inst 0x046795ad //lsr z13.s,z13.s,25 +.if mixin == 1 + ror w14,w14,25 +.endif +.inst 0x04679421 //lsr z1.s,z1.s,25 +.if mixin == 1 + ror w11,w11,25 +.endif +.inst 0x047130a5 //orr z5.d,z5.d,z17.d +.inst 0x04723129 //orr z9.d,z9.d,z18.d +.inst 0x047331ad //orr z13.d,z13.d,z19.d +.inst 0x04743021 //orr z1.d,z1.d,z20.d + sub x6,x6,1 + cbnz x6,10b + lsr x6,x28,#32 +.inst 0x05a03b91 //dup z17.s,w28 +.inst 0x05a038d2 //dup z18.s,w6 + lsr x6,x29,#32 +.inst 0x05a038d3 //dup z19.s,w6 + lsr x6,x30,#32 +.if mixin == 1 + add w7,w7,w23 +.endif +.inst 0x04b90000 //add z0.s,z0.s,z25.s +.if mixin == 1 + add x8,x8,x23,lsr #32 +.endif +.inst 0x04ba0084 //add z4.s,z4.s,z26.s +.if mixin == 1 + add x7,x7,x8,lsl #32 // pack +.endif +.if mixin == 1 + add w9,w9,w24 +.endif +.inst 0x04bb0108 //add z8.s,z8.s,z27.s +.if mixin == 1 + add x10,x10,x24,lsr #32 +.endif +.inst 0x04bc018c //add z12.s,z12.s,z28.s +.if mixin == 1 + add x9,x9,x10,lsl #32 // pack +.endif +.if mixin == 1 + ldp x8,x10,[x1],#16 +.endif +.if mixin == 1 + add w11,w11,w25 +.endif +.inst 0x04bd0021 //add z1.s,z1.s,z29.s +.if mixin == 1 + add x12,x12,x25,lsr #32 +.endif +.inst 0x04be00a5 //add z5.s,z5.s,z30.s +.if mixin == 1 + add x11,x11,x12,lsl #32 // pack +.endif +.if mixin == 1 + add w13,w13,w26 +.endif +.inst 0x04b50129 //add z9.s,z9.s,z21.s +.if mixin == 1 + add x14,x14,x26,lsr #32 +.endif +.inst 0x04b601ad //add z13.s,z13.s,z22.s +.if mixin == 1 + add x13,x13,x14,lsl #32 // pack +.endif +.if mixin == 1 + ldp x12,x14,[x1],#16 +.endif +.if mixin == 1 + add w15,w15,w27 +.endif +.inst 0x04b70042 //add z2.s,z2.s,z23.s +.if mixin == 1 + add x16,x16,x27,lsr #32 +.endif +.inst 0x04b800c6 //add z6.s,z6.s,z24.s +.if mixin == 1 + add x15,x15,x16,lsl #32 // pack +.endif +.if mixin == 1 + add w17,w17,w28 +.endif +.inst 0x04b1014a //add z10.s,z10.s,z17.s +.if mixin == 1 + add x18,x18,x28,lsr #32 +.endif +.inst 0x04b201ce //add z14.s,z14.s,z18.s +.if mixin == 1 + add x17,x17,x18,lsl #32 // pack +.endif +.if mixin == 1 + ldp x16,x18,[x1],#16 +.endif +.inst 0x05a03bd4 //dup z20.s,w30 +.inst 0x05a038d9 //dup z25.s,w6 // bak[15] not available for SVE +.if mixin == 1 + add w19,w19,w29 +.endif +.inst 0x04b00063 //add z3.s,z3.s,z16.s +.if mixin == 1 + add x20,x20,x29,lsr #32 +.endif +.inst 0x04b300e7 //add z7.s,z7.s,z19.s +.if mixin == 1 + add x19,x19,x20,lsl #32 // pack +.endif +.if mixin == 1 + add w21,w21,w30 +.endif +.inst 0x04b4016b //add z11.s,z11.s,z20.s +.if mixin == 1 + add x22,x22,x30,lsr #32 +.endif +.inst 0x04b901ef //add z15.s,z15.s,z25.s +.if mixin == 1 + add x21,x21,x22,lsl #32 // pack +.endif +.if mixin == 1 + ldp x20,x22,[x1],#16 +.endif +#ifdef __AARCH64EB__ + rev x7,x7 +.inst 0x05a48000 //revb z0.s,p0/m,z0.s +.inst 0x05a48084 //revb z4.s,p0/m,z4.s + rev x9,x9 +.inst 0x05a48108 //revb z8.s,p0/m,z8.s +.inst 0x05a4818c //revb z12.s,p0/m,z12.s + rev x11,x11 +.inst 0x05a48021 //revb z1.s,p0/m,z1.s +.inst 0x05a480a5 //revb z5.s,p0/m,z5.s + rev x13,x13 +.inst 0x05a48129 //revb z9.s,p0/m,z9.s +.inst 0x05a481ad //revb z13.s,p0/m,z13.s + rev x15,x15 +.inst 0x05a48042 //revb z2.s,p0/m,z2.s +.inst 0x05a480c6 //revb z6.s,p0/m,z6.s + rev x17,x17 +.inst 0x05a4814a //revb z10.s,p0/m,z10.s +.inst 0x05a481ce //revb z14.s,p0/m,z14.s + rev x19,x19 +.inst 0x05a48063 //revb z3.s,p0/m,z3.s +.inst 0x05a480e7 //revb z7.s,p0/m,z7.s + rev x21,x21 +.inst 0x05a4816b //revb z11.s,p0/m,z11.s +.inst 0x05a481ef //revb z15.s,p0/m,z15.s +#endif +.if mixin == 1 + add x29,x29,#1 +.endif + cmp x5,4 + b.ne 200f +.if mixin == 1 + eor x7,x7,x8 +.endif +.if mixin == 1 + eor x9,x9,x10 +.endif +.if mixin == 1 + eor x11,x11,x12 +.endif +.inst 0x05a46011 //zip1 z17.s,z0.s,z4.s +.inst 0x05a46412 //zip2 z18.s,z0.s,z4.s +.inst 0x05ac6113 //zip1 z19.s,z8.s,z12.s +.inst 0x05ac6514 //zip2 z20.s,z8.s,z12.s + +.inst 0x05a56035 //zip1 z21.s,z1.s,z5.s +.inst 0x05a56436 //zip2 z22.s,z1.s,z5.s +.inst 0x05ad6137 //zip1 z23.s,z9.s,z13.s +.inst 0x05ad6538 //zip2 z24.s,z9.s,z13.s + +.inst 0x05f36220 //zip1 z0.d,z17.d,z19.d +.inst 0x05f36624 //zip2 z4.d,z17.d,z19.d +.inst 0x05f46248 //zip1 z8.d,z18.d,z20.d +.inst 0x05f4664c //zip2 z12.d,z18.d,z20.d + +.inst 0x05f762a1 //zip1 z1.d,z21.d,z23.d +.inst 0x05f766a5 //zip2 z5.d,z21.d,z23.d +.inst 0x05f862c9 //zip1 z9.d,z22.d,z24.d +.inst 0x05f866cd //zip2 z13.d,z22.d,z24.d +.if mixin == 1 + eor x13,x13,x14 +.endif +.if mixin == 1 + eor x15,x15,x16 +.endif +.if mixin == 1 + eor x17,x17,x18 +.endif +.inst 0x05a66051 //zip1 z17.s,z2.s,z6.s +.inst 0x05a66452 //zip2 z18.s,z2.s,z6.s +.inst 0x05ae6153 //zip1 z19.s,z10.s,z14.s +.inst 0x05ae6554 //zip2 z20.s,z10.s,z14.s + +.inst 0x05a76075 //zip1 z21.s,z3.s,z7.s +.inst 0x05a76476 //zip2 z22.s,z3.s,z7.s +.inst 0x05af6177 //zip1 z23.s,z11.s,z15.s +.inst 0x05af6578 //zip2 z24.s,z11.s,z15.s + +.inst 0x05f36222 //zip1 z2.d,z17.d,z19.d +.inst 0x05f36626 //zip2 z6.d,z17.d,z19.d +.inst 0x05f4624a //zip1 z10.d,z18.d,z20.d +.inst 0x05f4664e //zip2 z14.d,z18.d,z20.d + +.inst 0x05f762a3 //zip1 z3.d,z21.d,z23.d +.inst 0x05f766a7 //zip2 z7.d,z21.d,z23.d +.inst 0x05f862cb //zip1 z11.d,z22.d,z24.d +.inst 0x05f866cf //zip2 z15.d,z22.d,z24.d +.if mixin == 1 + eor x19,x19,x20 +.endif +.if mixin == 1 + eor x21,x21,x22 +.endif + ld1 {v17.4s,v18.4s,v19.4s,v20.4s},[x1],#64 + ld1 {v21.4s,v22.4s,v23.4s,v24.4s},[x1],#64 +.inst 0x04b13000 //eor z0.d,z0.d,z17.d +.inst 0x04b23021 //eor z1.d,z1.d,z18.d +.inst 0x04b33042 //eor z2.d,z2.d,z19.d +.inst 0x04b43063 //eor z3.d,z3.d,z20.d +.inst 0x04b53084 //eor z4.d,z4.d,z21.d +.inst 0x04b630a5 //eor z5.d,z5.d,z22.d +.inst 0x04b730c6 //eor z6.d,z6.d,z23.d +.inst 0x04b830e7 //eor z7.d,z7.d,z24.d + ld1 {v17.4s,v18.4s,v19.4s,v20.4s},[x1],#64 + ld1 {v21.4s,v22.4s,v23.4s,v24.4s},[x1],#64 +.if mixin == 1 + stp x7,x9,[x0],#16 +.endif +.inst 0x04b13108 //eor z8.d,z8.d,z17.d +.inst 0x04b23129 //eor z9.d,z9.d,z18.d +.if mixin == 1 + stp x11,x13,[x0],#16 +.endif +.inst 0x04b3314a //eor z10.d,z10.d,z19.d +.inst 0x04b4316b //eor z11.d,z11.d,z20.d +.if mixin == 1 + stp x15,x17,[x0],#16 +.endif +.inst 0x04b5318c //eor z12.d,z12.d,z21.d +.inst 0x04b631ad //eor z13.d,z13.d,z22.d +.if mixin == 1 + stp x19,x21,[x0],#16 +.endif +.inst 0x04b731ce //eor z14.d,z14.d,z23.d +.inst 0x04b831ef //eor z15.d,z15.d,z24.d + st1 {v0.4s,v1.4s,v2.4s,v3.4s},[x0],#64 + st1 {v4.4s,v5.4s,v6.4s,v7.4s},[x0],#64 + st1 {v8.4s,v9.4s,v10.4s,v11.4s},[x0],#64 + st1 {v12.4s,v13.4s,v14.4s,v15.4s},[x0],#64 + b 210f +200: +.inst 0x05a16011 //zip1 z17.s,z0.s,z1.s +.inst 0x05a16412 //zip2 z18.s,z0.s,z1.s +.inst 0x05a36053 //zip1 z19.s,z2.s,z3.s +.inst 0x05a36454 //zip2 z20.s,z2.s,z3.s + +.inst 0x05a56095 //zip1 z21.s,z4.s,z5.s +.inst 0x05a56496 //zip2 z22.s,z4.s,z5.s +.inst 0x05a760d7 //zip1 z23.s,z6.s,z7.s +.inst 0x05a764d8 //zip2 z24.s,z6.s,z7.s + +.inst 0x05f36220 //zip1 z0.d,z17.d,z19.d +.inst 0x05f36621 //zip2 z1.d,z17.d,z19.d +.inst 0x05f46242 //zip1 z2.d,z18.d,z20.d +.inst 0x05f46643 //zip2 z3.d,z18.d,z20.d + +.inst 0x05f762a4 //zip1 z4.d,z21.d,z23.d +.inst 0x05f766a5 //zip2 z5.d,z21.d,z23.d +.inst 0x05f862c6 //zip1 z6.d,z22.d,z24.d +.inst 0x05f866c7 //zip2 z7.d,z22.d,z24.d +.if mixin == 1 + eor x7,x7,x8 +.endif +.if mixin == 1 + eor x9,x9,x10 +.endif +.inst 0x05a96111 //zip1 z17.s,z8.s,z9.s +.inst 0x05a96512 //zip2 z18.s,z8.s,z9.s +.inst 0x05ab6153 //zip1 z19.s,z10.s,z11.s +.inst 0x05ab6554 //zip2 z20.s,z10.s,z11.s + +.inst 0x05ad6195 //zip1 z21.s,z12.s,z13.s +.inst 0x05ad6596 //zip2 z22.s,z12.s,z13.s +.inst 0x05af61d7 //zip1 z23.s,z14.s,z15.s +.inst 0x05af65d8 //zip2 z24.s,z14.s,z15.s + +.inst 0x05f36228 //zip1 z8.d,z17.d,z19.d +.inst 0x05f36629 //zip2 z9.d,z17.d,z19.d +.inst 0x05f4624a //zip1 z10.d,z18.d,z20.d +.inst 0x05f4664b //zip2 z11.d,z18.d,z20.d + +.inst 0x05f762ac //zip1 z12.d,z21.d,z23.d +.inst 0x05f766ad //zip2 z13.d,z21.d,z23.d +.inst 0x05f862ce //zip1 z14.d,z22.d,z24.d +.inst 0x05f866cf //zip2 z15.d,z22.d,z24.d +.if mixin == 1 + eor x11,x11,x12 +.endif +.if mixin == 1 + eor x13,x13,x14 +.endif +.inst 0x05a46011 //zip1 z17.s,z0.s,z4.s +.inst 0x05a46412 //zip2 z18.s,z0.s,z4.s +.inst 0x05ac6113 //zip1 z19.s,z8.s,z12.s +.inst 0x05ac6514 //zip2 z20.s,z8.s,z12.s + +.inst 0x05a56035 //zip1 z21.s,z1.s,z5.s +.inst 0x05a56436 //zip2 z22.s,z1.s,z5.s +.inst 0x05ad6137 //zip1 z23.s,z9.s,z13.s +.inst 0x05ad6538 //zip2 z24.s,z9.s,z13.s + +.inst 0x05f36220 //zip1 z0.d,z17.d,z19.d +.inst 0x05f36624 //zip2 z4.d,z17.d,z19.d +.inst 0x05f46248 //zip1 z8.d,z18.d,z20.d +.inst 0x05f4664c //zip2 z12.d,z18.d,z20.d + +.inst 0x05f762a1 //zip1 z1.d,z21.d,z23.d +.inst 0x05f766a5 //zip2 z5.d,z21.d,z23.d +.inst 0x05f862c9 //zip1 z9.d,z22.d,z24.d +.inst 0x05f866cd //zip2 z13.d,z22.d,z24.d +.if mixin == 1 + eor x15,x15,x16 +.endif +.if mixin == 1 + eor x17,x17,x18 +.endif +.inst 0x05a66051 //zip1 z17.s,z2.s,z6.s +.inst 0x05a66452 //zip2 z18.s,z2.s,z6.s +.inst 0x05ae6153 //zip1 z19.s,z10.s,z14.s +.inst 0x05ae6554 //zip2 z20.s,z10.s,z14.s + +.inst 0x05a76075 //zip1 z21.s,z3.s,z7.s +.inst 0x05a76476 //zip2 z22.s,z3.s,z7.s +.inst 0x05af6177 //zip1 z23.s,z11.s,z15.s +.inst 0x05af6578 //zip2 z24.s,z11.s,z15.s + +.inst 0x05f36222 //zip1 z2.d,z17.d,z19.d +.inst 0x05f36626 //zip2 z6.d,z17.d,z19.d +.inst 0x05f4624a //zip1 z10.d,z18.d,z20.d +.inst 0x05f4664e //zip2 z14.d,z18.d,z20.d + +.inst 0x05f762a3 //zip1 z3.d,z21.d,z23.d +.inst 0x05f766a7 //zip2 z7.d,z21.d,z23.d +.inst 0x05f862cb //zip1 z11.d,z22.d,z24.d +.inst 0x05f866cf //zip2 z15.d,z22.d,z24.d +.if mixin == 1 + eor x19,x19,x20 +.endif +.if mixin == 1 + eor x21,x21,x22 +.endif +.inst 0xa540a031 //ld1w {z17.s},p0/z,[x1,#0,MUL VL] +.inst 0xa541a032 //ld1w {z18.s},p0/z,[x1,#1,MUL VL] +.inst 0xa542a033 //ld1w {z19.s},p0/z,[x1,#2,MUL VL] +.inst 0xa543a034 //ld1w {z20.s},p0/z,[x1,#3,MUL VL] +.inst 0xa544a035 //ld1w {z21.s},p0/z,[x1,#4,MUL VL] +.inst 0xa545a036 //ld1w {z22.s},p0/z,[x1,#5,MUL VL] +.inst 0xa546a037 //ld1w {z23.s},p0/z,[x1,#6,MUL VL] +.inst 0xa547a038 //ld1w {z24.s},p0/z,[x1,#7,MUL VL] +.inst 0x04215101 //addvl x1,x1,8 +.inst 0x04b13000 //eor z0.d,z0.d,z17.d +.inst 0x04b23084 //eor z4.d,z4.d,z18.d +.inst 0x04b33108 //eor z8.d,z8.d,z19.d +.inst 0x04b4318c //eor z12.d,z12.d,z20.d +.inst 0x04b53021 //eor z1.d,z1.d,z21.d +.inst 0x04b630a5 //eor z5.d,z5.d,z22.d +.inst 0x04b73129 //eor z9.d,z9.d,z23.d +.inst 0x04b831ad //eor z13.d,z13.d,z24.d +.inst 0xa540a031 //ld1w {z17.s},p0/z,[x1,#0,MUL VL] +.inst 0xa541a032 //ld1w {z18.s},p0/z,[x1,#1,MUL VL] +.inst 0xa542a033 //ld1w {z19.s},p0/z,[x1,#2,MUL VL] +.inst 0xa543a034 //ld1w {z20.s},p0/z,[x1,#3,MUL VL] +.inst 0xa544a035 //ld1w {z21.s},p0/z,[x1,#4,MUL VL] +.inst 0xa545a036 //ld1w {z22.s},p0/z,[x1,#5,MUL VL] +.inst 0xa546a037 //ld1w {z23.s},p0/z,[x1,#6,MUL VL] +.inst 0xa547a038 //ld1w {z24.s},p0/z,[x1,#7,MUL VL] +.inst 0x04215101 //addvl x1,x1,8 +.if mixin == 1 + stp x7,x9,[x0],#16 +.endif +.inst 0x04b13042 //eor z2.d,z2.d,z17.d +.inst 0x04b230c6 //eor z6.d,z6.d,z18.d +.if mixin == 1 + stp x11,x13,[x0],#16 +.endif +.inst 0x04b3314a //eor z10.d,z10.d,z19.d +.inst 0x04b431ce //eor z14.d,z14.d,z20.d +.if mixin == 1 + stp x15,x17,[x0],#16 +.endif +.inst 0x04b53063 //eor z3.d,z3.d,z21.d +.inst 0x04b630e7 //eor z7.d,z7.d,z22.d +.if mixin == 1 + stp x19,x21,[x0],#16 +.endif +.inst 0x04b7316b //eor z11.d,z11.d,z23.d +.inst 0x04b831ef //eor z15.d,z15.d,z24.d +.inst 0xe540e000 //st1w {z0.s},p0,[x0,#0,MUL VL] +.inst 0xe541e004 //st1w {z4.s},p0,[x0,#1,MUL VL] +.inst 0xe542e008 //st1w {z8.s},p0,[x0,#2,MUL VL] +.inst 0xe543e00c //st1w {z12.s},p0,[x0,#3,MUL VL] +.inst 0xe544e001 //st1w {z1.s},p0,[x0,#4,MUL VL] +.inst 0xe545e005 //st1w {z5.s},p0,[x0,#5,MUL VL] +.inst 0xe546e009 //st1w {z9.s},p0,[x0,#6,MUL VL] +.inst 0xe547e00d //st1w {z13.s},p0,[x0,#7,MUL VL] +.inst 0x04205100 //addvl x0,x0,8 +.inst 0xe540e002 //st1w {z2.s},p0,[x0,#0,MUL VL] +.inst 0xe541e006 //st1w {z6.s},p0,[x0,#1,MUL VL] +.inst 0xe542e00a //st1w {z10.s},p0,[x0,#2,MUL VL] +.inst 0xe543e00e //st1w {z14.s},p0,[x0,#3,MUL VL] +.inst 0xe544e003 //st1w {z3.s},p0,[x0,#4,MUL VL] +.inst 0xe545e007 //st1w {z7.s},p0,[x0,#5,MUL VL] +.inst 0xe546e00b //st1w {z11.s},p0,[x0,#6,MUL VL] +.inst 0xe547e00f //st1w {z15.s},p0,[x0,#7,MUL VL] +.inst 0x04205100 //addvl x0,x0,8 +210: +.inst 0x04b0e3fd //incw x29, ALL, MUL #1 + subs x2,x2,64 + b.gt 100b + b 110f +101: + mixin=0 + lsr x8,x23,#32 +.inst 0x05a03ae0 //dup z0.s,w23 +.inst 0x05a03af9 //dup z25.s,w23 +.if mixin == 1 + mov w7,w23 +.endif +.inst 0x05a03904 //dup z4.s,w8 +.inst 0x05a0391a //dup z26.s,w8 + lsr x10,x24,#32 +.inst 0x05a03b08 //dup z8.s,w24 +.inst 0x05a03b1b //dup z27.s,w24 +.if mixin == 1 + mov w9,w24 +.endif +.inst 0x05a0394c //dup z12.s,w10 +.inst 0x05a0395c //dup z28.s,w10 + lsr x12,x25,#32 +.inst 0x05a03b21 //dup z1.s,w25 +.inst 0x05a03b3d //dup z29.s,w25 +.if mixin == 1 + mov w11,w25 +.endif +.inst 0x05a03985 //dup z5.s,w12 +.inst 0x05a0399e //dup z30.s,w12 + lsr x14,x26,#32 +.inst 0x05a03b49 //dup z9.s,w26 +.inst 0x05a03b55 //dup z21.s,w26 +.if mixin == 1 + mov w13,w26 +.endif +.inst 0x05a039cd //dup z13.s,w14 +.inst 0x05a039d6 //dup z22.s,w14 + lsr x16,x27,#32 +.inst 0x05a03b62 //dup z2.s,w27 +.inst 0x05a03b77 //dup z23.s,w27 +.if mixin == 1 + mov w15,w27 +.endif +.inst 0x05a03a06 //dup z6.s,w16 +.inst 0x05a03a18 //dup z24.s,w16 + lsr x18,x28,#32 +.inst 0x05a03b8a //dup z10.s,w28 +.if mixin == 1 + mov w17,w28 +.endif +.inst 0x05a03a4e //dup z14.s,w18 + lsr x22,x30,#32 +.inst 0x05a03bcb //dup z11.s,w30 +.if mixin == 1 + mov w21,w30 +.endif +.inst 0x05a03acf //dup z15.s,w22 +.if mixin == 1 + add w20,w29,#1 + mov w19,w29 +.inst 0x04a14690 //index z16.s,w20,1 +.inst 0x04a14683 //index z3.s,w20,1 +.else +.inst 0x04a147b0 //index z16.s,w29,1 +.inst 0x04a147a3 //index z3.s,w29,1 +.endif + lsr x20,x29,#32 +.inst 0x05a03a87 //dup z7.s,w20 + mov x6,#10 +10: +.align 5 +.inst 0x04a10000 //add z0.s,z0.s,z1.s +.if mixin == 1 + add w7,w7,w11 +.endif +.inst 0x04a50084 //add z4.s,z4.s,z5.s +.if mixin == 1 + add w8,w8,w12 +.endif +.inst 0x04a90108 //add z8.s,z8.s,z9.s +.if mixin == 1 + add w9,w9,w13 +.endif +.inst 0x04ad018c //add z12.s,z12.s,z13.s +.if mixin == 1 + add w10,w10,w14 +.endif +.inst 0x04a03063 //eor z3.d,z3.d,z0.d +.if mixin == 1 + eor w19,w19,w7 +.endif +.inst 0x04a430e7 //eor z7.d,z7.d,z4.d +.if mixin == 1 + eor w20,w20,w8 +.endif +.inst 0x04a8316b //eor z11.d,z11.d,z8.d +.if mixin == 1 + eor w21,w21,w9 +.endif +.inst 0x04ac31ef //eor z15.d,z15.d,z12.d +.if mixin == 1 + eor w22,w22,w10 +.endif +.inst 0x05a58063 //revh z3.s,p0/m,z3.s +.if mixin == 1 + ror w19,w19,#16 +.endif +.inst 0x05a580e7 //revh z7.s,p0/m,z7.s +.if mixin == 1 + ror w20,w20,#16 +.endif +.inst 0x05a5816b //revh z11.s,p0/m,z11.s +.if mixin == 1 + ror w21,w21,#16 +.endif +.inst 0x05a581ef //revh z15.s,p0/m,z15.s +.if mixin == 1 + ror w22,w22,#16 +.endif +.inst 0x04a30042 //add z2.s,z2.s,z3.s +.if mixin == 1 + add w15,w15,w19 +.endif +.inst 0x04a700c6 //add z6.s,z6.s,z7.s +.if mixin == 1 + add w16,w16,w20 +.endif +.inst 0x04ab014a //add z10.s,z10.s,z11.s +.if mixin == 1 + add w17,w17,w21 +.endif +.inst 0x04af01ce //add z14.s,z14.s,z15.s +.if mixin == 1 + add w18,w18,w22 +.endif +.inst 0x04a23021 //eor z1.d,z1.d,z2.d +.if mixin == 1 + eor w11,w11,w15 +.endif +.inst 0x04a630a5 //eor z5.d,z5.d,z6.d +.if mixin == 1 + eor w12,w12,w16 +.endif +.inst 0x04aa3129 //eor z9.d,z9.d,z10.d +.if mixin == 1 + eor w13,w13,w17 +.endif +.inst 0x04ae31ad //eor z13.d,z13.d,z14.d +.if mixin == 1 + eor w14,w14,w18 +.endif +.inst 0x046c9c31 //lsl z17.s,z1.s,12 +.inst 0x046c9cb2 //lsl z18.s,z5.s,12 +.inst 0x046c9d33 //lsl z19.s,z9.s,12 +.inst 0x046c9db4 //lsl z20.s,z13.s,12 +.inst 0x046c9421 //lsr z1.s,z1.s,20 +.if mixin == 1 + ror w11,w11,20 +.endif +.inst 0x046c94a5 //lsr z5.s,z5.s,20 +.if mixin == 1 + ror w12,w12,20 +.endif +.inst 0x046c9529 //lsr z9.s,z9.s,20 +.if mixin == 1 + ror w13,w13,20 +.endif +.inst 0x046c95ad //lsr z13.s,z13.s,20 +.if mixin == 1 + ror w14,w14,20 +.endif +.inst 0x04713021 //orr z1.d,z1.d,z17.d +.inst 0x047230a5 //orr z5.d,z5.d,z18.d +.inst 0x04733129 //orr z9.d,z9.d,z19.d +.inst 0x047431ad //orr z13.d,z13.d,z20.d +.inst 0x04a10000 //add z0.s,z0.s,z1.s +.if mixin == 1 + add w7,w7,w11 +.endif +.inst 0x04a50084 //add z4.s,z4.s,z5.s +.if mixin == 1 + add w8,w8,w12 +.endif +.inst 0x04a90108 //add z8.s,z8.s,z9.s +.if mixin == 1 + add w9,w9,w13 +.endif +.inst 0x04ad018c //add z12.s,z12.s,z13.s +.if mixin == 1 + add w10,w10,w14 +.endif +.inst 0x04a03063 //eor z3.d,z3.d,z0.d +.if mixin == 1 + eor w19,w19,w7 +.endif +.inst 0x04a430e7 //eor z7.d,z7.d,z4.d +.if mixin == 1 + eor w20,w20,w8 +.endif +.inst 0x04a8316b //eor z11.d,z11.d,z8.d +.if mixin == 1 + eor w21,w21,w9 +.endif +.inst 0x04ac31ef //eor z15.d,z15.d,z12.d +.if mixin == 1 + eor w22,w22,w10 +.endif +.inst 0x053f3063 //tbl z3.b,{z3.b},z31.b +.if mixin == 1 + ror w19,w19,#24 +.endif +.inst 0x053f30e7 //tbl z7.b,{z7.b},z31.b +.if mixin == 1 + ror w20,w20,#24 +.endif +.inst 0x053f316b //tbl z11.b,{z11.b},z31.b +.if mixin == 1 + ror w21,w21,#24 +.endif +.inst 0x053f31ef //tbl z15.b,{z15.b},z31.b +.if mixin == 1 + ror w22,w22,#24 +.endif +.inst 0x04a30042 //add z2.s,z2.s,z3.s +.if mixin == 1 + add w15,w15,w19 +.endif +.inst 0x04a700c6 //add z6.s,z6.s,z7.s +.if mixin == 1 + add w16,w16,w20 +.endif +.inst 0x04ab014a //add z10.s,z10.s,z11.s +.if mixin == 1 + add w17,w17,w21 +.endif +.inst 0x04af01ce //add z14.s,z14.s,z15.s +.if mixin == 1 + add w18,w18,w22 +.endif +.inst 0x04a23021 //eor z1.d,z1.d,z2.d +.if mixin == 1 + eor w11,w11,w15 +.endif +.inst 0x04a630a5 //eor z5.d,z5.d,z6.d +.if mixin == 1 + eor w12,w12,w16 +.endif +.inst 0x04aa3129 //eor z9.d,z9.d,z10.d +.if mixin == 1 + eor w13,w13,w17 +.endif +.inst 0x04ae31ad //eor z13.d,z13.d,z14.d +.if mixin == 1 + eor w14,w14,w18 +.endif +.inst 0x04679c31 //lsl z17.s,z1.s,7 +.inst 0x04679cb2 //lsl z18.s,z5.s,7 +.inst 0x04679d33 //lsl z19.s,z9.s,7 +.inst 0x04679db4 //lsl z20.s,z13.s,7 +.inst 0x04679421 //lsr z1.s,z1.s,25 +.if mixin == 1 + ror w11,w11,25 +.endif +.inst 0x046794a5 //lsr z5.s,z5.s,25 +.if mixin == 1 + ror w12,w12,25 +.endif +.inst 0x04679529 //lsr z9.s,z9.s,25 +.if mixin == 1 + ror w13,w13,25 +.endif +.inst 0x046795ad //lsr z13.s,z13.s,25 +.if mixin == 1 + ror w14,w14,25 +.endif +.inst 0x04713021 //orr z1.d,z1.d,z17.d +.inst 0x047230a5 //orr z5.d,z5.d,z18.d +.inst 0x04733129 //orr z9.d,z9.d,z19.d +.inst 0x047431ad //orr z13.d,z13.d,z20.d +.inst 0x04a50000 //add z0.s,z0.s,z5.s +.if mixin == 1 + add w7,w7,w12 +.endif +.inst 0x04a90084 //add z4.s,z4.s,z9.s +.if mixin == 1 + add w8,w8,w13 +.endif +.inst 0x04ad0108 //add z8.s,z8.s,z13.s +.if mixin == 1 + add w9,w9,w14 +.endif +.inst 0x04a1018c //add z12.s,z12.s,z1.s +.if mixin == 1 + add w10,w10,w11 +.endif +.inst 0x04a031ef //eor z15.d,z15.d,z0.d +.if mixin == 1 + eor w22,w22,w7 +.endif +.inst 0x04a43063 //eor z3.d,z3.d,z4.d +.if mixin == 1 + eor w19,w19,w8 +.endif +.inst 0x04a830e7 //eor z7.d,z7.d,z8.d +.if mixin == 1 + eor w20,w20,w9 +.endif +.inst 0x04ac316b //eor z11.d,z11.d,z12.d +.if mixin == 1 + eor w21,w21,w10 +.endif +.inst 0x05a581ef //revh z15.s,p0/m,z15.s +.if mixin == 1 + ror w22,w22,#16 +.endif +.inst 0x05a58063 //revh z3.s,p0/m,z3.s +.if mixin == 1 + ror w19,w19,#16 +.endif +.inst 0x05a580e7 //revh z7.s,p0/m,z7.s +.if mixin == 1 + ror w20,w20,#16 +.endif +.inst 0x05a5816b //revh z11.s,p0/m,z11.s +.if mixin == 1 + ror w21,w21,#16 +.endif +.inst 0x04af014a //add z10.s,z10.s,z15.s +.if mixin == 1 + add w17,w17,w22 +.endif +.inst 0x04a301ce //add z14.s,z14.s,z3.s +.if mixin == 1 + add w18,w18,w19 +.endif +.inst 0x04a70042 //add z2.s,z2.s,z7.s +.if mixin == 1 + add w15,w15,w20 +.endif +.inst 0x04ab00c6 //add z6.s,z6.s,z11.s +.if mixin == 1 + add w16,w16,w21 +.endif +.inst 0x04aa30a5 //eor z5.d,z5.d,z10.d +.if mixin == 1 + eor w12,w12,w17 +.endif +.inst 0x04ae3129 //eor z9.d,z9.d,z14.d +.if mixin == 1 + eor w13,w13,w18 +.endif +.inst 0x04a231ad //eor z13.d,z13.d,z2.d +.if mixin == 1 + eor w14,w14,w15 +.endif +.inst 0x04a63021 //eor z1.d,z1.d,z6.d +.if mixin == 1 + eor w11,w11,w16 +.endif +.inst 0x046c9cb1 //lsl z17.s,z5.s,12 +.inst 0x046c9d32 //lsl z18.s,z9.s,12 +.inst 0x046c9db3 //lsl z19.s,z13.s,12 +.inst 0x046c9c34 //lsl z20.s,z1.s,12 +.inst 0x046c94a5 //lsr z5.s,z5.s,20 +.if mixin == 1 + ror w12,w12,20 +.endif +.inst 0x046c9529 //lsr z9.s,z9.s,20 +.if mixin == 1 + ror w13,w13,20 +.endif +.inst 0x046c95ad //lsr z13.s,z13.s,20 +.if mixin == 1 + ror w14,w14,20 +.endif +.inst 0x046c9421 //lsr z1.s,z1.s,20 +.if mixin == 1 + ror w11,w11,20 +.endif +.inst 0x047130a5 //orr z5.d,z5.d,z17.d +.inst 0x04723129 //orr z9.d,z9.d,z18.d +.inst 0x047331ad //orr z13.d,z13.d,z19.d +.inst 0x04743021 //orr z1.d,z1.d,z20.d +.inst 0x04a50000 //add z0.s,z0.s,z5.s +.if mixin == 1 + add w7,w7,w12 +.endif +.inst 0x04a90084 //add z4.s,z4.s,z9.s +.if mixin == 1 + add w8,w8,w13 +.endif +.inst 0x04ad0108 //add z8.s,z8.s,z13.s +.if mixin == 1 + add w9,w9,w14 +.endif +.inst 0x04a1018c //add z12.s,z12.s,z1.s +.if mixin == 1 + add w10,w10,w11 +.endif +.inst 0x04a031ef //eor z15.d,z15.d,z0.d +.if mixin == 1 + eor w22,w22,w7 +.endif +.inst 0x04a43063 //eor z3.d,z3.d,z4.d +.if mixin == 1 + eor w19,w19,w8 +.endif +.inst 0x04a830e7 //eor z7.d,z7.d,z8.d +.if mixin == 1 + eor w20,w20,w9 +.endif +.inst 0x04ac316b //eor z11.d,z11.d,z12.d +.if mixin == 1 + eor w21,w21,w10 +.endif +.inst 0x053f31ef //tbl z15.b,{z15.b},z31.b +.if mixin == 1 + ror w22,w22,#24 +.endif +.inst 0x053f3063 //tbl z3.b,{z3.b},z31.b +.if mixin == 1 + ror w19,w19,#24 +.endif +.inst 0x053f30e7 //tbl z7.b,{z7.b},z31.b +.if mixin == 1 + ror w20,w20,#24 +.endif +.inst 0x053f316b //tbl z11.b,{z11.b},z31.b +.if mixin == 1 + ror w21,w21,#24 +.endif +.inst 0x04af014a //add z10.s,z10.s,z15.s +.if mixin == 1 + add w17,w17,w22 +.endif +.inst 0x04a301ce //add z14.s,z14.s,z3.s +.if mixin == 1 + add w18,w18,w19 +.endif +.inst 0x04a70042 //add z2.s,z2.s,z7.s +.if mixin == 1 + add w15,w15,w20 +.endif +.inst 0x04ab00c6 //add z6.s,z6.s,z11.s +.if mixin == 1 + add w16,w16,w21 +.endif +.inst 0x04aa30a5 //eor z5.d,z5.d,z10.d +.if mixin == 1 + eor w12,w12,w17 +.endif +.inst 0x04ae3129 //eor z9.d,z9.d,z14.d +.if mixin == 1 + eor w13,w13,w18 +.endif +.inst 0x04a231ad //eor z13.d,z13.d,z2.d +.if mixin == 1 + eor w14,w14,w15 +.endif +.inst 0x04a63021 //eor z1.d,z1.d,z6.d +.if mixin == 1 + eor w11,w11,w16 +.endif +.inst 0x04679cb1 //lsl z17.s,z5.s,7 +.inst 0x04679d32 //lsl z18.s,z9.s,7 +.inst 0x04679db3 //lsl z19.s,z13.s,7 +.inst 0x04679c34 //lsl z20.s,z1.s,7 +.inst 0x046794a5 //lsr z5.s,z5.s,25 +.if mixin == 1 + ror w12,w12,25 +.endif +.inst 0x04679529 //lsr z9.s,z9.s,25 +.if mixin == 1 + ror w13,w13,25 +.endif +.inst 0x046795ad //lsr z13.s,z13.s,25 +.if mixin == 1 + ror w14,w14,25 +.endif +.inst 0x04679421 //lsr z1.s,z1.s,25 +.if mixin == 1 + ror w11,w11,25 +.endif +.inst 0x047130a5 //orr z5.d,z5.d,z17.d +.inst 0x04723129 //orr z9.d,z9.d,z18.d +.inst 0x047331ad //orr z13.d,z13.d,z19.d +.inst 0x04743021 //orr z1.d,z1.d,z20.d + sub x6,x6,1 + cbnz x6,10b + lsr x6,x28,#32 +.inst 0x05a03b91 //dup z17.s,w28 +.inst 0x05a038d2 //dup z18.s,w6 + lsr x6,x29,#32 +.inst 0x05a038d3 //dup z19.s,w6 + lsr x6,x30,#32 +.if mixin == 1 + add w7,w7,w23 +.endif +.inst 0x04b90000 //add z0.s,z0.s,z25.s +.if mixin == 1 + add x8,x8,x23,lsr #32 +.endif +.inst 0x04ba0084 //add z4.s,z4.s,z26.s +.if mixin == 1 + add x7,x7,x8,lsl #32 // pack +.endif +.if mixin == 1 + add w9,w9,w24 +.endif +.inst 0x04bb0108 //add z8.s,z8.s,z27.s +.if mixin == 1 + add x10,x10,x24,lsr #32 +.endif +.inst 0x04bc018c //add z12.s,z12.s,z28.s +.if mixin == 1 + add x9,x9,x10,lsl #32 // pack +.endif +.if mixin == 1 + ldp x8,x10,[x1],#16 +.endif +.if mixin == 1 + add w11,w11,w25 +.endif +.inst 0x04bd0021 //add z1.s,z1.s,z29.s +.if mixin == 1 + add x12,x12,x25,lsr #32 +.endif +.inst 0x04be00a5 //add z5.s,z5.s,z30.s +.if mixin == 1 + add x11,x11,x12,lsl #32 // pack +.endif +.if mixin == 1 + add w13,w13,w26 +.endif +.inst 0x04b50129 //add z9.s,z9.s,z21.s +.if mixin == 1 + add x14,x14,x26,lsr #32 +.endif +.inst 0x04b601ad //add z13.s,z13.s,z22.s +.if mixin == 1 + add x13,x13,x14,lsl #32 // pack +.endif +.if mixin == 1 + ldp x12,x14,[x1],#16 +.endif +.if mixin == 1 + add w15,w15,w27 +.endif +.inst 0x04b70042 //add z2.s,z2.s,z23.s +.if mixin == 1 + add x16,x16,x27,lsr #32 +.endif +.inst 0x04b800c6 //add z6.s,z6.s,z24.s +.if mixin == 1 + add x15,x15,x16,lsl #32 // pack +.endif +.if mixin == 1 + add w17,w17,w28 +.endif +.inst 0x04b1014a //add z10.s,z10.s,z17.s +.if mixin == 1 + add x18,x18,x28,lsr #32 +.endif +.inst 0x04b201ce //add z14.s,z14.s,z18.s +.if mixin == 1 + add x17,x17,x18,lsl #32 // pack +.endif +.if mixin == 1 + ldp x16,x18,[x1],#16 +.endif +.inst 0x05a03bd4 //dup z20.s,w30 +.inst 0x05a038d9 //dup z25.s,w6 // bak[15] not available for SVE +.if mixin == 1 + add w19,w19,w29 +.endif +.inst 0x04b00063 //add z3.s,z3.s,z16.s +.if mixin == 1 + add x20,x20,x29,lsr #32 +.endif +.inst 0x04b300e7 //add z7.s,z7.s,z19.s +.if mixin == 1 + add x19,x19,x20,lsl #32 // pack +.endif +.if mixin == 1 + add w21,w21,w30 +.endif +.inst 0x04b4016b //add z11.s,z11.s,z20.s +.if mixin == 1 + add x22,x22,x30,lsr #32 +.endif +.inst 0x04b901ef //add z15.s,z15.s,z25.s +.if mixin == 1 + add x21,x21,x22,lsl #32 // pack +.endif +.if mixin == 1 + ldp x20,x22,[x1],#16 +.endif +#ifdef __AARCH64EB__ + rev x7,x7 +.inst 0x05a48000 //revb z0.s,p0/m,z0.s +.inst 0x05a48084 //revb z4.s,p0/m,z4.s + rev x9,x9 +.inst 0x05a48108 //revb z8.s,p0/m,z8.s +.inst 0x05a4818c //revb z12.s,p0/m,z12.s + rev x11,x11 +.inst 0x05a48021 //revb z1.s,p0/m,z1.s +.inst 0x05a480a5 //revb z5.s,p0/m,z5.s + rev x13,x13 +.inst 0x05a48129 //revb z9.s,p0/m,z9.s +.inst 0x05a481ad //revb z13.s,p0/m,z13.s + rev x15,x15 +.inst 0x05a48042 //revb z2.s,p0/m,z2.s +.inst 0x05a480c6 //revb z6.s,p0/m,z6.s + rev x17,x17 +.inst 0x05a4814a //revb z10.s,p0/m,z10.s +.inst 0x05a481ce //revb z14.s,p0/m,z14.s + rev x19,x19 +.inst 0x05a48063 //revb z3.s,p0/m,z3.s +.inst 0x05a480e7 //revb z7.s,p0/m,z7.s + rev x21,x21 +.inst 0x05a4816b //revb z11.s,p0/m,z11.s +.inst 0x05a481ef //revb z15.s,p0/m,z15.s +#endif +.if mixin == 1 + add x29,x29,#1 +.endif + cmp x5,4 + b.ne 200f +.if mixin == 1 + eor x7,x7,x8 +.endif +.if mixin == 1 + eor x9,x9,x10 +.endif +.if mixin == 1 + eor x11,x11,x12 +.endif +.inst 0x05a46011 //zip1 z17.s,z0.s,z4.s +.inst 0x05a46412 //zip2 z18.s,z0.s,z4.s +.inst 0x05ac6113 //zip1 z19.s,z8.s,z12.s +.inst 0x05ac6514 //zip2 z20.s,z8.s,z12.s + +.inst 0x05a56035 //zip1 z21.s,z1.s,z5.s +.inst 0x05a56436 //zip2 z22.s,z1.s,z5.s +.inst 0x05ad6137 //zip1 z23.s,z9.s,z13.s +.inst 0x05ad6538 //zip2 z24.s,z9.s,z13.s + +.inst 0x05f36220 //zip1 z0.d,z17.d,z19.d +.inst 0x05f36624 //zip2 z4.d,z17.d,z19.d +.inst 0x05f46248 //zip1 z8.d,z18.d,z20.d +.inst 0x05f4664c //zip2 z12.d,z18.d,z20.d + +.inst 0x05f762a1 //zip1 z1.d,z21.d,z23.d +.inst 0x05f766a5 //zip2 z5.d,z21.d,z23.d +.inst 0x05f862c9 //zip1 z9.d,z22.d,z24.d +.inst 0x05f866cd //zip2 z13.d,z22.d,z24.d +.if mixin == 1 + eor x13,x13,x14 +.endif +.if mixin == 1 + eor x15,x15,x16 +.endif +.if mixin == 1 + eor x17,x17,x18 +.endif +.inst 0x05a66051 //zip1 z17.s,z2.s,z6.s +.inst 0x05a66452 //zip2 z18.s,z2.s,z6.s +.inst 0x05ae6153 //zip1 z19.s,z10.s,z14.s +.inst 0x05ae6554 //zip2 z20.s,z10.s,z14.s + +.inst 0x05a76075 //zip1 z21.s,z3.s,z7.s +.inst 0x05a76476 //zip2 z22.s,z3.s,z7.s +.inst 0x05af6177 //zip1 z23.s,z11.s,z15.s +.inst 0x05af6578 //zip2 z24.s,z11.s,z15.s + +.inst 0x05f36222 //zip1 z2.d,z17.d,z19.d +.inst 0x05f36626 //zip2 z6.d,z17.d,z19.d +.inst 0x05f4624a //zip1 z10.d,z18.d,z20.d +.inst 0x05f4664e //zip2 z14.d,z18.d,z20.d + +.inst 0x05f762a3 //zip1 z3.d,z21.d,z23.d +.inst 0x05f766a7 //zip2 z7.d,z21.d,z23.d +.inst 0x05f862cb //zip1 z11.d,z22.d,z24.d +.inst 0x05f866cf //zip2 z15.d,z22.d,z24.d +.if mixin == 1 + eor x19,x19,x20 +.endif +.if mixin == 1 + eor x21,x21,x22 +.endif + ld1 {v17.4s,v18.4s,v19.4s,v20.4s},[x1],#64 + ld1 {v21.4s,v22.4s,v23.4s,v24.4s},[x1],#64 +.inst 0x04b13000 //eor z0.d,z0.d,z17.d +.inst 0x04b23021 //eor z1.d,z1.d,z18.d +.inst 0x04b33042 //eor z2.d,z2.d,z19.d +.inst 0x04b43063 //eor z3.d,z3.d,z20.d +.inst 0x04b53084 //eor z4.d,z4.d,z21.d +.inst 0x04b630a5 //eor z5.d,z5.d,z22.d +.inst 0x04b730c6 //eor z6.d,z6.d,z23.d +.inst 0x04b830e7 //eor z7.d,z7.d,z24.d + ld1 {v17.4s,v18.4s,v19.4s,v20.4s},[x1],#64 + ld1 {v21.4s,v22.4s,v23.4s,v24.4s},[x1],#64 +.if mixin == 1 + stp x7,x9,[x0],#16 +.endif +.inst 0x04b13108 //eor z8.d,z8.d,z17.d +.inst 0x04b23129 //eor z9.d,z9.d,z18.d +.if mixin == 1 + stp x11,x13,[x0],#16 +.endif +.inst 0x04b3314a //eor z10.d,z10.d,z19.d +.inst 0x04b4316b //eor z11.d,z11.d,z20.d +.if mixin == 1 + stp x15,x17,[x0],#16 +.endif +.inst 0x04b5318c //eor z12.d,z12.d,z21.d +.inst 0x04b631ad //eor z13.d,z13.d,z22.d +.if mixin == 1 + stp x19,x21,[x0],#16 +.endif +.inst 0x04b731ce //eor z14.d,z14.d,z23.d +.inst 0x04b831ef //eor z15.d,z15.d,z24.d + st1 {v0.4s,v1.4s,v2.4s,v3.4s},[x0],#64 + st1 {v4.4s,v5.4s,v6.4s,v7.4s},[x0],#64 + st1 {v8.4s,v9.4s,v10.4s,v11.4s},[x0],#64 + st1 {v12.4s,v13.4s,v14.4s,v15.4s},[x0],#64 + b 210f +200: +.inst 0x05a16011 //zip1 z17.s,z0.s,z1.s +.inst 0x05a16412 //zip2 z18.s,z0.s,z1.s +.inst 0x05a36053 //zip1 z19.s,z2.s,z3.s +.inst 0x05a36454 //zip2 z20.s,z2.s,z3.s + +.inst 0x05a56095 //zip1 z21.s,z4.s,z5.s +.inst 0x05a56496 //zip2 z22.s,z4.s,z5.s +.inst 0x05a760d7 //zip1 z23.s,z6.s,z7.s +.inst 0x05a764d8 //zip2 z24.s,z6.s,z7.s + +.inst 0x05f36220 //zip1 z0.d,z17.d,z19.d +.inst 0x05f36621 //zip2 z1.d,z17.d,z19.d +.inst 0x05f46242 //zip1 z2.d,z18.d,z20.d +.inst 0x05f46643 //zip2 z3.d,z18.d,z20.d + +.inst 0x05f762a4 //zip1 z4.d,z21.d,z23.d +.inst 0x05f766a5 //zip2 z5.d,z21.d,z23.d +.inst 0x05f862c6 //zip1 z6.d,z22.d,z24.d +.inst 0x05f866c7 //zip2 z7.d,z22.d,z24.d +.if mixin == 1 + eor x7,x7,x8 +.endif +.if mixin == 1 + eor x9,x9,x10 +.endif +.inst 0x05a96111 //zip1 z17.s,z8.s,z9.s +.inst 0x05a96512 //zip2 z18.s,z8.s,z9.s +.inst 0x05ab6153 //zip1 z19.s,z10.s,z11.s +.inst 0x05ab6554 //zip2 z20.s,z10.s,z11.s + +.inst 0x05ad6195 //zip1 z21.s,z12.s,z13.s +.inst 0x05ad6596 //zip2 z22.s,z12.s,z13.s +.inst 0x05af61d7 //zip1 z23.s,z14.s,z15.s +.inst 0x05af65d8 //zip2 z24.s,z14.s,z15.s + +.inst 0x05f36228 //zip1 z8.d,z17.d,z19.d +.inst 0x05f36629 //zip2 z9.d,z17.d,z19.d +.inst 0x05f4624a //zip1 z10.d,z18.d,z20.d +.inst 0x05f4664b //zip2 z11.d,z18.d,z20.d + +.inst 0x05f762ac //zip1 z12.d,z21.d,z23.d +.inst 0x05f766ad //zip2 z13.d,z21.d,z23.d +.inst 0x05f862ce //zip1 z14.d,z22.d,z24.d +.inst 0x05f866cf //zip2 z15.d,z22.d,z24.d +.if mixin == 1 + eor x11,x11,x12 +.endif +.if mixin == 1 + eor x13,x13,x14 +.endif +.inst 0x05a46011 //zip1 z17.s,z0.s,z4.s +.inst 0x05a46412 //zip2 z18.s,z0.s,z4.s +.inst 0x05ac6113 //zip1 z19.s,z8.s,z12.s +.inst 0x05ac6514 //zip2 z20.s,z8.s,z12.s + +.inst 0x05a56035 //zip1 z21.s,z1.s,z5.s +.inst 0x05a56436 //zip2 z22.s,z1.s,z5.s +.inst 0x05ad6137 //zip1 z23.s,z9.s,z13.s +.inst 0x05ad6538 //zip2 z24.s,z9.s,z13.s + +.inst 0x05f36220 //zip1 z0.d,z17.d,z19.d +.inst 0x05f36624 //zip2 z4.d,z17.d,z19.d +.inst 0x05f46248 //zip1 z8.d,z18.d,z20.d +.inst 0x05f4664c //zip2 z12.d,z18.d,z20.d + +.inst 0x05f762a1 //zip1 z1.d,z21.d,z23.d +.inst 0x05f766a5 //zip2 z5.d,z21.d,z23.d +.inst 0x05f862c9 //zip1 z9.d,z22.d,z24.d +.inst 0x05f866cd //zip2 z13.d,z22.d,z24.d +.if mixin == 1 + eor x15,x15,x16 +.endif +.if mixin == 1 + eor x17,x17,x18 +.endif +.inst 0x05a66051 //zip1 z17.s,z2.s,z6.s +.inst 0x05a66452 //zip2 z18.s,z2.s,z6.s +.inst 0x05ae6153 //zip1 z19.s,z10.s,z14.s +.inst 0x05ae6554 //zip2 z20.s,z10.s,z14.s + +.inst 0x05a76075 //zip1 z21.s,z3.s,z7.s +.inst 0x05a76476 //zip2 z22.s,z3.s,z7.s +.inst 0x05af6177 //zip1 z23.s,z11.s,z15.s +.inst 0x05af6578 //zip2 z24.s,z11.s,z15.s + +.inst 0x05f36222 //zip1 z2.d,z17.d,z19.d +.inst 0x05f36626 //zip2 z6.d,z17.d,z19.d +.inst 0x05f4624a //zip1 z10.d,z18.d,z20.d +.inst 0x05f4664e //zip2 z14.d,z18.d,z20.d + +.inst 0x05f762a3 //zip1 z3.d,z21.d,z23.d +.inst 0x05f766a7 //zip2 z7.d,z21.d,z23.d +.inst 0x05f862cb //zip1 z11.d,z22.d,z24.d +.inst 0x05f866cf //zip2 z15.d,z22.d,z24.d +.if mixin == 1 + eor x19,x19,x20 +.endif +.if mixin == 1 + eor x21,x21,x22 +.endif +.inst 0xa540a031 //ld1w {z17.s},p0/z,[x1,#0,MUL VL] +.inst 0xa541a032 //ld1w {z18.s},p0/z,[x1,#1,MUL VL] +.inst 0xa542a033 //ld1w {z19.s},p0/z,[x1,#2,MUL VL] +.inst 0xa543a034 //ld1w {z20.s},p0/z,[x1,#3,MUL VL] +.inst 0xa544a035 //ld1w {z21.s},p0/z,[x1,#4,MUL VL] +.inst 0xa545a036 //ld1w {z22.s},p0/z,[x1,#5,MUL VL] +.inst 0xa546a037 //ld1w {z23.s},p0/z,[x1,#6,MUL VL] +.inst 0xa547a038 //ld1w {z24.s},p0/z,[x1,#7,MUL VL] +.inst 0x04215101 //addvl x1,x1,8 +.inst 0x04b13000 //eor z0.d,z0.d,z17.d +.inst 0x04b23084 //eor z4.d,z4.d,z18.d +.inst 0x04b33108 //eor z8.d,z8.d,z19.d +.inst 0x04b4318c //eor z12.d,z12.d,z20.d +.inst 0x04b53021 //eor z1.d,z1.d,z21.d +.inst 0x04b630a5 //eor z5.d,z5.d,z22.d +.inst 0x04b73129 //eor z9.d,z9.d,z23.d +.inst 0x04b831ad //eor z13.d,z13.d,z24.d +.inst 0xa540a031 //ld1w {z17.s},p0/z,[x1,#0,MUL VL] +.inst 0xa541a032 //ld1w {z18.s},p0/z,[x1,#1,MUL VL] +.inst 0xa542a033 //ld1w {z19.s},p0/z,[x1,#2,MUL VL] +.inst 0xa543a034 //ld1w {z20.s},p0/z,[x1,#3,MUL VL] +.inst 0xa544a035 //ld1w {z21.s},p0/z,[x1,#4,MUL VL] +.inst 0xa545a036 //ld1w {z22.s},p0/z,[x1,#5,MUL VL] +.inst 0xa546a037 //ld1w {z23.s},p0/z,[x1,#6,MUL VL] +.inst 0xa547a038 //ld1w {z24.s},p0/z,[x1,#7,MUL VL] +.inst 0x04215101 //addvl x1,x1,8 +.if mixin == 1 + stp x7,x9,[x0],#16 +.endif +.inst 0x04b13042 //eor z2.d,z2.d,z17.d +.inst 0x04b230c6 //eor z6.d,z6.d,z18.d +.if mixin == 1 + stp x11,x13,[x0],#16 +.endif +.inst 0x04b3314a //eor z10.d,z10.d,z19.d +.inst 0x04b431ce //eor z14.d,z14.d,z20.d +.if mixin == 1 + stp x15,x17,[x0],#16 +.endif +.inst 0x04b53063 //eor z3.d,z3.d,z21.d +.inst 0x04b630e7 //eor z7.d,z7.d,z22.d +.if mixin == 1 + stp x19,x21,[x0],#16 +.endif +.inst 0x04b7316b //eor z11.d,z11.d,z23.d +.inst 0x04b831ef //eor z15.d,z15.d,z24.d +.inst 0xe540e000 //st1w {z0.s},p0,[x0,#0,MUL VL] +.inst 0xe541e004 //st1w {z4.s},p0,[x0,#1,MUL VL] +.inst 0xe542e008 //st1w {z8.s},p0,[x0,#2,MUL VL] +.inst 0xe543e00c //st1w {z12.s},p0,[x0,#3,MUL VL] +.inst 0xe544e001 //st1w {z1.s},p0,[x0,#4,MUL VL] +.inst 0xe545e005 //st1w {z5.s},p0,[x0,#5,MUL VL] +.inst 0xe546e009 //st1w {z9.s},p0,[x0,#6,MUL VL] +.inst 0xe547e00d //st1w {z13.s},p0,[x0,#7,MUL VL] +.inst 0x04205100 //addvl x0,x0,8 +.inst 0xe540e002 //st1w {z2.s},p0,[x0,#0,MUL VL] +.inst 0xe541e006 //st1w {z6.s},p0,[x0,#1,MUL VL] +.inst 0xe542e00a //st1w {z10.s},p0,[x0,#2,MUL VL] +.inst 0xe543e00e //st1w {z14.s},p0,[x0,#3,MUL VL] +.inst 0xe544e003 //st1w {z3.s},p0,[x0,#4,MUL VL] +.inst 0xe545e007 //st1w {z7.s},p0,[x0,#5,MUL VL] +.inst 0xe546e00b //st1w {z11.s},p0,[x0,#6,MUL VL] +.inst 0xe547e00f //st1w {z15.s},p0,[x0,#7,MUL VL] +.inst 0x04205100 //addvl x0,x0,8 +210: +.inst 0x04b0e3fd //incw x29, ALL, MUL #1 +110: +2: + str w29,[x4] + ldp d10,d11,[sp,16] + ldp d12,d13,[sp,32] + ldp d14,d15,[sp,48] + ldp x16,x17,[sp,64] + ldp x18,x19,[sp,80] + ldp x20,x21,[sp,96] + ldp x22,x23,[sp,112] + ldp x24,x25,[sp,128] + ldp x26,x27,[sp,144] + ldp x28,x29,[sp,160] + ldr x30,[sp,176] + ldp d8,d9,[sp],192 + AARCH64_VALIDATE_LINK_REGISTER +.Lreturn: + ret +.size ChaCha20_ctr32_sve,.-ChaCha20_ctr32_sve diff --git a/deps/openssl/config/archs/linux-aarch64/asm_avx2/crypto/chacha/chacha-armv8.S b/deps/openssl/config/archs/linux-aarch64/asm_avx2/crypto/chacha/chacha-armv8.S index 66eb96ec57bbb3..ca9d709ed67055 100644 --- a/deps/openssl/config/archs/linux-aarch64/asm_avx2/crypto/chacha/chacha-armv8.S +++ b/deps/openssl/config/archs/linux-aarch64/asm_avx2/crypto/chacha/chacha-armv8.S @@ -1,10 +1,12 @@ +#include "arm_arch.h" #ifndef __KERNEL__ -# include "arm_arch.h" .hidden OPENSSL_armcap_P + + #endif -.text +.section .rodata .align 5 .Lsigma: @@ -16,27 +18,29 @@ .byte 67,104,97,67,104,97,50,48,32,102,111,114,32,65,82,77,118,56,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,64,100,111,116,45,97,115,109,0 .align 2 -.globl ChaCha20_ctr32 -.type ChaCha20_ctr32,%function +.text + +.globl ChaCha20_ctr32_dflt +.type ChaCha20_ctr32_dflt,%function .align 5 -ChaCha20_ctr32: - cbz x2,.Labort +ChaCha20_ctr32_dflt: + AARCH64_SIGN_LINK_REGISTER cmp x2,#192 b.lo .Lshort - #ifndef __KERNEL__ adrp x17,OPENSSL_armcap_P ldr w17,[x17,#:lo12:OPENSSL_armcap_P] +.Lcheck_neon: tst w17,#ARMV7_NEON b.ne .LChaCha20_neon #endif .Lshort: -.inst 0xd503233f // paciasp stp x29,x30,[sp,#-96]! add x29,sp,#0 - adr x5,.Lsigma + adrp x5,.Lsigma + add x5,x5,#:lo12:.Lsigma stp x19,x20,[sp,#16] stp x21,x22,[sp,#32] stp x23,x24,[sp,#48] @@ -244,8 +248,8 @@ ChaCha20_ctr32: ldp x25,x26,[x29,#64] ldp x27,x28,[x29,#80] ldp x29,x30,[sp],#96 -.inst 0xd50323bf // autiasp .Labort: + AARCH64_VALIDATE_LINK_REGISTER ret .align 4 @@ -301,8 +305,43 @@ ChaCha20_ctr32: ldp x25,x26,[x29,#64] ldp x27,x28,[x29,#80] ldp x29,x30,[sp],#96 -.inst 0xd50323bf // autiasp + AARCH64_VALIDATE_LINK_REGISTER ret +.size ChaCha20_ctr32_dflt,.-ChaCha20_ctr32_dflt + +.globl ChaCha20_ctr32 +.type ChaCha20_ctr32,%function +.align 5 +ChaCha20_ctr32: + AARCH64_SIGN_LINK_REGISTER + cbz x2,.Labort + cmp x2,#192 + b.lo .Lshort +#ifndef __KERNEL__ + adrp x17,OPENSSL_armcap_P + ldr w17,[x17,#:lo12:OPENSSL_armcap_P] + tst w17,#ARMV8_SVE + b.eq .Lcheck_neon + stp x29,x30,[sp,#-16]! + sub sp,sp,#16 + // SVE handling will inevitably increment the counter + // Neon/Scalar code that follows to process tail data needs to + // use new counter, unfortunately the input counter buffer + // pointed to by ctr is meant to be read-only per API contract + // we have to copy the buffer to stack to be writable by SVE + ldp x5,x6,[x4] + stp x5,x6,[sp] + mov x4,sp + bl ChaCha20_ctr32_sve + cbz x2,1f + bl ChaCha20_ctr32_dflt +1: + add sp,sp,#16 + ldp x29,x30,[sp],#16 + AARCH64_VALIDATE_LINK_REGISTER + ret +#endif + b .Lshort .size ChaCha20_ctr32,.-ChaCha20_ctr32 #ifdef __KERNEL__ @@ -311,12 +350,13 @@ ChaCha20_ctr32: .type ChaCha20_neon,%function .align 5 ChaCha20_neon: + AARCH64_SIGN_LINK_REGISTER .LChaCha20_neon: -.inst 0xd503233f // paciasp stp x29,x30,[sp,#-96]! add x29,sp,#0 - adr x5,.Lsigma + adrp x5,.Lsigma + add x5,x5,#:lo12:.Lsigma stp x19,x20,[sp,#16] stp x21,x22,[sp,#32] stp x23,x24,[sp,#48] @@ -747,7 +787,7 @@ ChaCha20_neon: ldp x25,x26,[x29,#64] ldp x27,x28,[x29,#80] ldp x29,x30,[sp],#96 -.inst 0xd50323bf // autiasp + AARCH64_VALIDATE_LINK_REGISTER ret .align 4 @@ -879,17 +919,18 @@ ChaCha20_neon: ldp x25,x26,[x29,#64] ldp x27,x28,[x29,#80] ldp x29,x30,[sp],#96 -.inst 0xd50323bf // autiasp + AARCH64_VALIDATE_LINK_REGISTER ret .size ChaCha20_neon,.-ChaCha20_neon .type ChaCha20_512_neon,%function .align 5 ChaCha20_512_neon: -.inst 0xd503233f // paciasp + AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-96]! add x29,sp,#0 - adr x5,.Lsigma + adrp x5,.Lsigma + add x5,x5,#:lo12:.Lsigma stp x19,x20,[sp,#16] stp x21,x22,[sp,#32] stp x23,x24,[sp,#48] @@ -2029,6 +2070,6 @@ ChaCha20_512_neon: ldp x25,x26,[x29,#64] ldp x27,x28,[x29,#80] ldp x29,x30,[sp],#96 -.inst 0xd50323bf // autiasp + AARCH64_VALIDATE_LINK_REGISTER ret .size ChaCha20_512_neon,.-ChaCha20_512_neon diff --git a/deps/openssl/config/archs/linux-aarch64/asm_avx2/crypto/ec/ecp_nistz256-armv8.S b/deps/openssl/config/archs/linux-aarch64/asm_avx2/crypto/ec/ecp_nistz256-armv8.S index e7230f81f69ca0..5e97928ee12245 100644 --- a/deps/openssl/config/archs/linux-aarch64/asm_avx2/crypto/ec/ecp_nistz256-armv8.S +++ b/deps/openssl/config/archs/linux-aarch64/asm_avx2/crypto/ec/ecp_nistz256-armv8.S @@ -1,6 +1,6 @@ #include "arm_arch.h" -.text +.section .rodata .globl ecp_nistz256_precomputed .type ecp_nistz256_precomputed,%object .align 12 @@ -2390,28 +2390,34 @@ ecp_nistz256_precomputed: .byte 69,67,80,95,78,73,83,84,90,50,53,54,32,102,111,114,32,65,82,77,118,56,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 .align 2 +.text + // void ecp_nistz256_to_mont(BN_ULONG x0[4],const BN_ULONG x1[4]); .globl ecp_nistz256_to_mont .type ecp_nistz256_to_mont,%function .align 6 ecp_nistz256_to_mont: -.inst 0xd503233f // paciasp + AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-32]! add x29,sp,#0 stp x19,x20,[sp,#16] - ldr x3,.LRR // bp[0] + adrp x3,.LRR + ldr x3,[x3,#:lo12:.LRR] // bp[0] ldp x4,x5,[x1] ldp x6,x7,[x1,#16] - ldr x12,.Lpoly+8 - ldr x13,.Lpoly+24 - adr x2,.LRR // &bp[0] + adrp x13,.Lpoly + add x13,x13,#:lo12:.Lpoly + ldr x12,[x13,#8] + ldr x13,[x13,#24] + adrp x2,.LRR + add x2,x2,#:lo12:.LRR bl __ecp_nistz256_mul_mont ldp x19,x20,[sp,#16] ldp x29,x30,[sp],#32 -.inst 0xd50323bf // autiasp + AARCH64_VALIDATE_LINK_REGISTER ret .size ecp_nistz256_to_mont,.-ecp_nistz256_to_mont @@ -2420,7 +2426,7 @@ ecp_nistz256_to_mont: .type ecp_nistz256_from_mont,%function .align 4 ecp_nistz256_from_mont: -.inst 0xd503233f // paciasp + AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-32]! add x29,sp,#0 stp x19,x20,[sp,#16] @@ -2428,15 +2434,18 @@ ecp_nistz256_from_mont: mov x3,#1 // bp[0] ldp x4,x5,[x1] ldp x6,x7,[x1,#16] - ldr x12,.Lpoly+8 - ldr x13,.Lpoly+24 - adr x2,.Lone // &bp[0] + adrp x13,.Lpoly + add x13,x13,#:lo12:.Lpoly + ldr x12,[x13,#8] + ldr x13,[x13,#24] + adrp x2,.Lone + add x2,x2,#:lo12:.Lone bl __ecp_nistz256_mul_mont ldp x19,x20,[sp,#16] ldp x29,x30,[sp],#32 -.inst 0xd50323bf // autiasp + AARCH64_VALIDATE_LINK_REGISTER ret .size ecp_nistz256_from_mont,.-ecp_nistz256_from_mont @@ -2446,7 +2455,7 @@ ecp_nistz256_from_mont: .type ecp_nistz256_mul_mont,%function .align 4 ecp_nistz256_mul_mont: -.inst 0xd503233f // paciasp + AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-32]! add x29,sp,#0 stp x19,x20,[sp,#16] @@ -2454,14 +2463,16 @@ ecp_nistz256_mul_mont: ldr x3,[x2] // bp[0] ldp x4,x5,[x1] ldp x6,x7,[x1,#16] - ldr x12,.Lpoly+8 - ldr x13,.Lpoly+24 + adrp x13,.Lpoly + add x13,x13,#:lo12:.Lpoly + ldr x12,[x13,#8] + ldr x13,[x13,#24] bl __ecp_nistz256_mul_mont ldp x19,x20,[sp,#16] ldp x29,x30,[sp],#32 -.inst 0xd50323bf // autiasp + AARCH64_VALIDATE_LINK_REGISTER ret .size ecp_nistz256_mul_mont,.-ecp_nistz256_mul_mont @@ -2470,21 +2481,23 @@ ecp_nistz256_mul_mont: .type ecp_nistz256_sqr_mont,%function .align 4 ecp_nistz256_sqr_mont: -.inst 0xd503233f // paciasp + AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-32]! add x29,sp,#0 stp x19,x20,[sp,#16] ldp x4,x5,[x1] ldp x6,x7,[x1,#16] - ldr x12,.Lpoly+8 - ldr x13,.Lpoly+24 + adrp x13,.Lpoly + add x13,x13,#:lo12:.Lpoly + ldr x12,[x13,#8] + ldr x13,[x13,#24] bl __ecp_nistz256_sqr_mont ldp x19,x20,[sp,#16] ldp x29,x30,[sp],#32 -.inst 0xd50323bf // autiasp + AARCH64_VALIDATE_LINK_REGISTER ret .size ecp_nistz256_sqr_mont,.-ecp_nistz256_sqr_mont @@ -2494,7 +2507,7 @@ ecp_nistz256_sqr_mont: .type ecp_nistz256_add,%function .align 4 ecp_nistz256_add: -.inst 0xd503233f // paciasp + AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-16]! add x29,sp,#0 @@ -2502,13 +2515,15 @@ ecp_nistz256_add: ldp x8,x9,[x2] ldp x16,x17,[x1,#16] ldp x10,x11,[x2,#16] - ldr x12,.Lpoly+8 - ldr x13,.Lpoly+24 + adrp x13,.Lpoly + add x13,x13,#:lo12:.Lpoly + ldr x12,[x13,#8] + ldr x13,[x13,#24] bl __ecp_nistz256_add ldp x29,x30,[sp],#16 -.inst 0xd50323bf // autiasp + AARCH64_VALIDATE_LINK_REGISTER ret .size ecp_nistz256_add,.-ecp_nistz256_add @@ -2517,19 +2532,21 @@ ecp_nistz256_add: .type ecp_nistz256_div_by_2,%function .align 4 ecp_nistz256_div_by_2: -.inst 0xd503233f // paciasp + AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-16]! add x29,sp,#0 ldp x14,x15,[x1] ldp x16,x17,[x1,#16] - ldr x12,.Lpoly+8 - ldr x13,.Lpoly+24 + adrp x13,.Lpoly + add x13,x13,#:lo12:.Lpoly + ldr x12,[x13,#8] + ldr x13,[x13,#24] bl __ecp_nistz256_div_by_2 ldp x29,x30,[sp],#16 -.inst 0xd50323bf // autiasp + AARCH64_VALIDATE_LINK_REGISTER ret .size ecp_nistz256_div_by_2,.-ecp_nistz256_div_by_2 @@ -2538,14 +2555,16 @@ ecp_nistz256_div_by_2: .type ecp_nistz256_mul_by_2,%function .align 4 ecp_nistz256_mul_by_2: -.inst 0xd503233f // paciasp + AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-16]! add x29,sp,#0 ldp x14,x15,[x1] ldp x16,x17,[x1,#16] - ldr x12,.Lpoly+8 - ldr x13,.Lpoly+24 + adrp x13,.Lpoly + add x13,x13,#:lo12:.Lpoly + ldr x12,[x13,#8] + ldr x13,[x13,#24] mov x8,x14 mov x9,x15 mov x10,x16 @@ -2554,7 +2573,7 @@ ecp_nistz256_mul_by_2: bl __ecp_nistz256_add // ret = a+a // 2*a ldp x29,x30,[sp],#16 -.inst 0xd50323bf // autiasp + AARCH64_VALIDATE_LINK_REGISTER ret .size ecp_nistz256_mul_by_2,.-ecp_nistz256_mul_by_2 @@ -2563,14 +2582,16 @@ ecp_nistz256_mul_by_2: .type ecp_nistz256_mul_by_3,%function .align 4 ecp_nistz256_mul_by_3: -.inst 0xd503233f // paciasp + AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-16]! add x29,sp,#0 ldp x14,x15,[x1] ldp x16,x17,[x1,#16] - ldr x12,.Lpoly+8 - ldr x13,.Lpoly+24 + adrp x13,.Lpoly + add x13,x13,#:lo12:.Lpoly + ldr x12,[x13,#8] + ldr x13,[x13,#24] mov x8,x14 mov x9,x15 mov x10,x16 @@ -2590,7 +2611,7 @@ ecp_nistz256_mul_by_3: bl __ecp_nistz256_add // ret += a // 2*a+a=3*a ldp x29,x30,[sp],#16 -.inst 0xd50323bf // autiasp + AARCH64_VALIDATE_LINK_REGISTER ret .size ecp_nistz256_mul_by_3,.-ecp_nistz256_mul_by_3 @@ -2600,19 +2621,21 @@ ecp_nistz256_mul_by_3: .type ecp_nistz256_sub,%function .align 4 ecp_nistz256_sub: -.inst 0xd503233f // paciasp + AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-16]! add x29,sp,#0 ldp x14,x15,[x1] ldp x16,x17,[x1,#16] - ldr x12,.Lpoly+8 - ldr x13,.Lpoly+24 + adrp x13,.Lpoly + add x13,x13,#:lo12:.Lpoly + ldr x12,[x13,#8] + ldr x13,[x13,#24] bl __ecp_nistz256_sub_from ldp x29,x30,[sp],#16 -.inst 0xd50323bf // autiasp + AARCH64_VALIDATE_LINK_REGISTER ret .size ecp_nistz256_sub,.-ecp_nistz256_sub @@ -2621,7 +2644,7 @@ ecp_nistz256_sub: .type ecp_nistz256_neg,%function .align 4 ecp_nistz256_neg: -.inst 0xd503233f // paciasp + AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-16]! add x29,sp,#0 @@ -2630,13 +2653,15 @@ ecp_nistz256_neg: mov x15,xzr mov x16,xzr mov x17,xzr - ldr x12,.Lpoly+8 - ldr x13,.Lpoly+24 + adrp x13,.Lpoly + add x13,x13,#:lo12:.Lpoly + ldr x12,[x13,#8] + ldr x13,[x13,#24] bl __ecp_nistz256_sub_from ldp x29,x30,[sp],#16 -.inst 0xd50323bf // autiasp + AARCH64_VALIDATE_LINK_REGISTER ret .size ecp_nistz256_neg,.-ecp_nistz256_neg @@ -3014,7 +3039,7 @@ __ecp_nistz256_div_by_2: .type ecp_nistz256_point_double,%function .align 5 ecp_nistz256_point_double: -.inst 0xd503233f // paciasp + AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-96]! add x29,sp,#0 stp x19,x20,[sp,#16] @@ -3026,9 +3051,11 @@ ecp_nistz256_point_double: mov x21,x0 ldp x16,x17,[x1,#48] mov x22,x1 - ldr x12,.Lpoly+8 + adrp x13,.Lpoly + add x13,x13,#:lo12:.Lpoly + ldr x12,[x13,#8] mov x8,x14 - ldr x13,.Lpoly+24 + ldr x13,[x13,#24] mov x9,x15 ldp x4,x5,[x22,#64] // forward load for p256_sqr_mont mov x10,x16 @@ -3149,14 +3176,14 @@ ecp_nistz256_point_double: ldp x19,x20,[x29,#16] ldp x21,x22,[x29,#32] ldp x29,x30,[sp],#96 -.inst 0xd50323bf // autiasp + AARCH64_VALIDATE_LINK_REGISTER ret .size ecp_nistz256_point_double,.-ecp_nistz256_point_double .globl ecp_nistz256_point_add .type ecp_nistz256_point_add,%function .align 5 ecp_nistz256_point_add: -.inst 0xd503233f // paciasp + AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-96]! add x29,sp,#0 stp x19,x20,[sp,#16] @@ -3171,8 +3198,10 @@ ecp_nistz256_point_add: mov x21,x0 mov x22,x1 mov x23,x2 - ldr x12,.Lpoly+8 - ldr x13,.Lpoly+24 + adrp x13,.Lpoly + add x13,x13,#:lo12:.Lpoly + ldr x12,[x13,#8] + ldr x13,[x13,#24] orr x8,x4,x5 orr x10,x6,x7 orr x25,x8,x10 @@ -3403,14 +3432,14 @@ ecp_nistz256_point_add: ldp x25,x26,[x29,#64] ldp x27,x28,[x29,#80] ldp x29,x30,[sp],#96 -.inst 0xd50323bf // autiasp + AARCH64_VALIDATE_LINK_REGISTER ret .size ecp_nistz256_point_add,.-ecp_nistz256_point_add .globl ecp_nistz256_point_add_affine .type ecp_nistz256_point_add_affine,%function .align 5 ecp_nistz256_point_add_affine: -.inst 0xd503233f // paciasp + AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-80]! add x29,sp,#0 stp x19,x20,[sp,#16] @@ -3422,8 +3451,10 @@ ecp_nistz256_point_add_affine: mov x21,x0 mov x22,x1 mov x23,x2 - ldr x12,.Lpoly+8 - ldr x13,.Lpoly+24 + adrp x13,.Lpoly + add x13,x13,#:lo12:.Lpoly + ldr x12,[x13,#8] + ldr x13,[x13,#24] ldp x4,x5,[x1,#64] // in1_z ldp x6,x7,[x1,#64+16] @@ -3569,7 +3600,8 @@ ecp_nistz256_point_add_affine: ldp x10,x11,[x23,#0+48] stp x14,x15,[x21,#0] stp x16,x17,[x21,#0+16] - adr x23,.Lone_mont-64 + adrp x23,.Lone_mont-64 + add x23,x23,#:lo12:.Lone_mont-64 ldp x14,x15,[x22,#32] // in1 cmp x24,#0 // ~, remember? ldp x16,x17,[x22,#32+16] @@ -3609,7 +3641,7 @@ ecp_nistz256_point_add_affine: ldp x23,x24,[x29,#48] ldp x25,x26,[x29,#64] ldp x29,x30,[sp],#80 -.inst 0xd50323bf // autiasp + AARCH64_VALIDATE_LINK_REGISTER ret .size ecp_nistz256_point_add_affine,.-ecp_nistz256_point_add_affine //////////////////////////////////////////////////////////////////////// @@ -3619,13 +3651,16 @@ ecp_nistz256_point_add_affine: .type ecp_nistz256_ord_mul_mont,%function .align 4 ecp_nistz256_ord_mul_mont: + AARCH64_VALID_CALL_TARGET + // Armv8.3-A PAuth: even though x30 is pushed to stack it is not popped later. stp x29,x30,[sp,#-64]! add x29,sp,#0 stp x19,x20,[sp,#16] stp x21,x22,[sp,#32] stp x23,x24,[sp,#48] - adr x23,.Lord + adrp x23,.Lord + add x23,x23,#:lo12:.Lord ldr x3,[x2] // bp[0] ldp x4,x5,[x1] ldp x6,x7,[x1,#16] @@ -3827,13 +3862,16 @@ ecp_nistz256_ord_mul_mont: .type ecp_nistz256_ord_sqr_mont,%function .align 4 ecp_nistz256_ord_sqr_mont: + AARCH64_VALID_CALL_TARGET + // Armv8.3-A PAuth: even though x30 is pushed to stack it is not popped later. stp x29,x30,[sp,#-64]! add x29,sp,#0 stp x19,x20,[sp,#16] stp x21,x22,[sp,#32] stp x23,x24,[sp,#48] - adr x23,.Lord + adrp x23,.Lord + add x23,x23,#:lo12:.Lord ldp x4,x5,[x1] ldp x6,x7,[x1,#16] @@ -4015,6 +4053,8 @@ ecp_nistz256_ord_sqr_mont: .type ecp_nistz256_scatter_w5,%function .align 4 ecp_nistz256_scatter_w5: + AARCH64_VALID_CALL_TARGET + // Armv8.3-A PAuth: even though x30 is pushed to stack it is not popped later. stp x29,x30,[sp,#-16]! add x29,sp,#0 @@ -4077,6 +4117,8 @@ ecp_nistz256_scatter_w5: .type ecp_nistz256_gather_w5,%function .align 4 ecp_nistz256_gather_w5: + AARCH64_VALID_CALL_TARGET + // Armv8.3-A PAuth: even though x30 is pushed to stack it is not popped later. stp x29,x30,[sp,#-16]! add x29,sp,#0 @@ -4154,6 +4196,8 @@ ecp_nistz256_gather_w5: .type ecp_nistz256_scatter_w7,%function .align 4 ecp_nistz256_scatter_w7: + AARCH64_VALID_CALL_TARGET + // Armv8.3-A PAuth: even though x30 is pushed to stack it is not popped later. stp x29,x30,[sp,#-16]! add x29,sp,#0 @@ -4198,6 +4242,8 @@ ecp_nistz256_scatter_w7: .type ecp_nistz256_gather_w7,%function .align 4 ecp_nistz256_gather_w7: + AARCH64_VALID_CALL_TARGET + // Armv8.3-A PAuth: even though x30 is pushed to stack it is not popped later. stp x29,x30,[sp,#-16]! add x29,sp,#0 diff --git a/deps/openssl/config/archs/linux-aarch64/asm_avx2/crypto/ec/ecp_sm2p256-armv8.S b/deps/openssl/config/archs/linux-aarch64/asm_avx2/crypto/ec/ecp_sm2p256-armv8.S new file mode 100644 index 00000000000000..50497f60a699e6 --- /dev/null +++ b/deps/openssl/config/archs/linux-aarch64/asm_avx2/crypto/ec/ecp_sm2p256-armv8.S @@ -0,0 +1,836 @@ +#include "arm_arch.h" +.arch armv8-a +.section .rodata + +.align 5 +// The polynomial p +.Lpoly: +.quad 0xffffffffffffffff,0xffffffff00000000,0xffffffffffffffff,0xfffffffeffffffff +// The order of polynomial n +.Lord: +.quad 0x53bbf40939d54123,0x7203df6b21c6052b,0xffffffffffffffff,0xfffffffeffffffff +// (p + 1) / 2 +.Lpoly_div_2: +.quad 0x8000000000000000,0xffffffff80000000,0xffffffffffffffff,0x7fffffff7fffffff +// (n + 1) / 2 +.Lord_div_2: +.quad 0xa9ddfa049ceaa092,0xb901efb590e30295,0xffffffffffffffff,0x7fffffff7fffffff + +.text + +// void bn_rshift1(BN_ULONG *a); +.globl bn_rshift1 +.type bn_rshift1,%function +.align 5 +bn_rshift1: + AARCH64_VALID_CALL_TARGET + // Load inputs + ldp x7,x8,[x0] + ldp x9,x10,[x0,#16] + + // Right shift + extr x7,x8,x7,#1 + extr x8,x9,x8,#1 + extr x9,x10,x9,#1 + lsr x10,x10,#1 + + // Store results + stp x7,x8,[x0] + stp x9,x10,[x0,#16] + + ret +.size bn_rshift1,.-bn_rshift1 + +// void bn_sub(BN_ULONG *r, const BN_ULONG *a, const BN_ULONG *b); +.globl bn_sub +.type bn_sub,%function +.align 5 +bn_sub: + AARCH64_VALID_CALL_TARGET + // Load inputs + ldp x7,x8,[x1] + ldp x9,x10,[x1,#16] + ldp x11,x12,[x2] + ldp x13,x14,[x2,#16] + + // Subtraction + subs x7,x7,x11 + sbcs x8,x8,x12 + sbcs x9,x9,x13 + sbc x10,x10,x14 + + // Store results + stp x7,x8,[x0] + stp x9,x10,[x0,#16] + + ret +.size bn_sub,.-bn_sub + +// void ecp_sm2p256_div_by_2(BN_ULONG *r,const BN_ULONG *a); +.globl ecp_sm2p256_div_by_2 +.type ecp_sm2p256_div_by_2,%function +.align 5 +ecp_sm2p256_div_by_2: + AARCH64_VALID_CALL_TARGET + // Load inputs + ldp x7,x8,[x1] + ldp x9,x10,[x1,#16] + + // Save the least significant bit + mov x3,x7 + + // Right shift 1 + extr x7,x8,x7,#1 + extr x8,x9,x8,#1 + extr x9,x10,x9,#1 + lsr x10,x10,#1 + + // Load mod + adrp x2,.Lpoly_div_2 + add x2,x2,#:lo12:.Lpoly_div_2 + ldp x11,x12,[x2] + ldp x13,x14,[x2,#16] + + // Parity check + tst x3,#1 + csel x11,xzr,x11,eq + csel x12,xzr,x12,eq + csel x13,xzr,x13,eq + csel x14,xzr,x14,eq + + // Add + adds x7,x7,x11 + adcs x8,x8,x12 + adcs x9,x9,x13 + adc x10,x10,x14 + + // Store results + stp x7,x8,[x0] + stp x9,x10,[x0,#16] + ret +.size ecp_sm2p256_div_by_2,.-ecp_sm2p256_div_by_2 + +// void ecp_sm2p256_div_by_2_mod_ord(BN_ULONG *r,const BN_ULONG *a); +.globl ecp_sm2p256_div_by_2_mod_ord +.type ecp_sm2p256_div_by_2_mod_ord,%function +.align 5 +ecp_sm2p256_div_by_2_mod_ord: + AARCH64_VALID_CALL_TARGET + // Load inputs + ldp x7,x8,[x1] + ldp x9,x10,[x1,#16] + + // Save the least significant bit + mov x3,x7 + + // Right shift 1 + extr x7,x8,x7,#1 + extr x8,x9,x8,#1 + extr x9,x10,x9,#1 + lsr x10,x10,#1 + + // Load mod + adrp x2,.Lord_div_2 + add x2,x2,#:lo12:.Lord_div_2 + ldp x11,x12,[x2] + ldp x13,x14,[x2,#16] + + // Parity check + tst x3,#1 + csel x11,xzr,x11,eq + csel x12,xzr,x12,eq + csel x13,xzr,x13,eq + csel x14,xzr,x14,eq + + // Add + adds x7,x7,x11 + adcs x8,x8,x12 + adcs x9,x9,x13 + adc x10,x10,x14 + + // Store results + stp x7,x8,[x0] + stp x9,x10,[x0,#16] + ret +.size ecp_sm2p256_div_by_2_mod_ord,.-ecp_sm2p256_div_by_2_mod_ord + +// void ecp_sm2p256_mul_by_3(BN_ULONG *r,const BN_ULONG *a); +.globl ecp_sm2p256_mul_by_3 +.type ecp_sm2p256_mul_by_3,%function +.align 5 +ecp_sm2p256_mul_by_3: + AARCH64_VALID_CALL_TARGET + // Load inputs + ldp x7,x8,[x1] + ldp x9,x10,[x1,#16] + + // 2*a + adds x7,x7,x7 + adcs x8,x8,x8 + adcs x9,x9,x9 + adcs x10,x10,x10 + adcs x15,xzr,xzr + + mov x3,x7 + mov x4,x8 + mov x5,x9 + mov x6,x10 + + // Sub polynomial + adrp x2,.Lpoly + add x2,x2,#:lo12:.Lpoly + ldp x11,x12,[x2] + ldp x13,x14,[x2,#16] + subs x7,x7,x11 + sbcs x8,x8,x12 + sbcs x9,x9,x13 + sbcs x10,x10,x14 + sbcs x15,x15,xzr + + csel x7,x7,x3,cs + csel x8,x8,x4,cs + csel x9,x9,x5,cs + csel x10,x10,x6,cs + eor x15,x15,x15 + + // 3*a + ldp x11,x12,[x1] + ldp x13,x14,[x1,#16] + adds x7,x7,x11 + adcs x8,x8,x12 + adcs x9,x9,x13 + adcs x10,x10,x14 + adcs x15,xzr,xzr + + mov x3,x7 + mov x4,x8 + mov x5,x9 + mov x6,x10 + + // Sub polynomial + adrp x2,.Lpoly + add x2,x2,#:lo12:.Lpoly + ldp x11,x12,[x2] + ldp x13,x14,[x2,#16] + subs x7,x7,x11 + sbcs x8,x8,x12 + sbcs x9,x9,x13 + sbcs x10,x10,x14 + sbcs x15,x15,xzr + + csel x7,x7,x3,cs + csel x8,x8,x4,cs + csel x9,x9,x5,cs + csel x10,x10,x6,cs + + // Store results + stp x7,x8,[x0] + stp x9,x10,[x0,#16] + + ret +.size ecp_sm2p256_mul_by_3,.-ecp_sm2p256_mul_by_3 + +// void ecp_sm2p256_add(BN_ULONG *r,const BN_ULONG *a,const BN_ULONG *b); +.globl ecp_sm2p256_add +.type ecp_sm2p256_add,%function +.align 5 +ecp_sm2p256_add: + AARCH64_VALID_CALL_TARGET + // Load inputs + ldp x7,x8,[x1] + ldp x9,x10,[x1,#16] + ldp x11,x12,[x2] + ldp x13,x14,[x2,#16] + + // Addition + adds x7,x7,x11 + adcs x8,x8,x12 + adcs x9,x9,x13 + adcs x10,x10,x14 + adc x15,xzr,xzr + + // Load polynomial + adrp x2,.Lpoly + add x2,x2,#:lo12:.Lpoly + ldp x11,x12,[x2] + ldp x13,x14,[x2,#16] + + // Backup Addition + mov x3,x7 + mov x4,x8 + mov x5,x9 + mov x6,x10 + + // Sub polynomial + subs x3,x3,x11 + sbcs x4,x4,x12 + sbcs x5,x5,x13 + sbcs x6,x6,x14 + sbcs x15,x15,xzr + + // Select based on carry + csel x7,x7,x3,cc + csel x8,x8,x4,cc + csel x9,x9,x5,cc + csel x10,x10,x6,cc + + // Store results + stp x7,x8,[x0] + stp x9,x10,[x0,#16] + ret +.size ecp_sm2p256_add,.-ecp_sm2p256_add + +// void ecp_sm2p256_sub(BN_ULONG *r,const BN_ULONG *a,const BN_ULONG *b); +.globl ecp_sm2p256_sub +.type ecp_sm2p256_sub,%function +.align 5 +ecp_sm2p256_sub: + AARCH64_VALID_CALL_TARGET + // Load inputs + ldp x7,x8,[x1] + ldp x9,x10,[x1,#16] + ldp x11,x12,[x2] + ldp x13,x14,[x2,#16] + + // Subtraction + subs x7,x7,x11 + sbcs x8,x8,x12 + sbcs x9,x9,x13 + sbcs x10,x10,x14 + sbc x15,xzr,xzr + + // Load polynomial + adrp x2,.Lpoly + add x2,x2,#:lo12:.Lpoly + ldp x11,x12,[x2] + ldp x13,x14,[x2,#16] + + // Backup subtraction + mov x3,x7 + mov x4,x8 + mov x5,x9 + mov x6,x10 + + // Add polynomial + adds x3,x3,x11 + adcs x4,x4,x12 + adcs x5,x5,x13 + adcs x6,x6,x14 + tst x15,x15 + + // Select based on carry + csel x7,x7,x3,eq + csel x8,x8,x4,eq + csel x9,x9,x5,eq + csel x10,x10,x6,eq + + // Store results + stp x7,x8,[x0] + stp x9,x10,[x0,#16] + ret +.size ecp_sm2p256_sub,.-ecp_sm2p256_sub + +// void ecp_sm2p256_sub_mod_ord(BN_ULONG *r,const BN_ULONG *a,const BN_ULONG *b); +.globl ecp_sm2p256_sub_mod_ord +.type ecp_sm2p256_sub_mod_ord,%function +.align 5 +ecp_sm2p256_sub_mod_ord: + AARCH64_VALID_CALL_TARGET + // Load inputs + ldp x7,x8,[x1] + ldp x9,x10,[x1,#16] + ldp x11,x12,[x2] + ldp x13,x14,[x2,#16] + + // Subtraction + subs x7,x7,x11 + sbcs x8,x8,x12 + sbcs x9,x9,x13 + sbcs x10,x10,x14 + sbc x15,xzr,xzr + + // Load polynomial + adrp x2,.Lord + add x2,x2,#:lo12:.Lord + ldp x11,x12,[x2] + ldp x13,x14,[x2,#16] + + // Backup subtraction + mov x3,x7 + mov x4,x8 + mov x5,x9 + mov x6,x10 + + // Add polynomial + adds x3,x3,x11 + adcs x4,x4,x12 + adcs x5,x5,x13 + adcs x6,x6,x14 + tst x15,x15 + + // Select based on carry + csel x7,x7,x3,eq + csel x8,x8,x4,eq + csel x9,x9,x5,eq + csel x10,x10,x6,eq + + // Store results + stp x7,x8,[x0] + stp x9,x10,[x0,#16] + ret +.size ecp_sm2p256_sub_mod_ord,.-ecp_sm2p256_sub_mod_ord + +.macro RDC + // a = | s7 | ... | s0 |, where si are 64-bit quantities + // = |a15|a14| ... |a1|a0|, where ai are 32-bit quantities + // | s7 | s6 | s5 | s4 | + // | a15 | a14 | a13 | a12 | a11 | a10 | a9 | a8 | + // | s3 | s2 | s1 | s0 | + // | a7 | a6 | a5 | a4 | a3 | a2 | a1 | a0 | + // ================================================= + // | a8 | a11 | a10 | a9 | a8 | 0 | s4 | (+) + // | a9 | a15 | s6 | a11 | 0 | a10 | a9 | (+) + // | a10 | 0 | a14 | a13 | a12 | 0 | s5 | (+) + // | a11 | 0 | s7 | a13 | 0 | a12 | a11 | (+) + // | a12 | 0 | s7 | a13 | 0 | s6 | (+) + // | a12 | 0 | 0 | a15 | a14 | 0 | a14 | a13 | (+) + // | a13 | 0 | 0 | 0 | a15 | 0 | a14 | a13 | (+) + // | a13 | 0 | 0 | 0 | 0 | 0 | s7 | (+) + // | a14 | 0 | 0 | 0 | 0 | 0 | s7 | (+) + // | a14 | 0 | 0 | 0 | 0 | 0 | 0 | a15 | (+) + // | a15 | 0 | 0 | 0 | 0 | 0 | 0 | a15 | (+) + // | a15 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | (+) + // | s7 | 0 | 0 | 0 | 0 | 0 | 0 | (+) + // | 0 | 0 | 0 | 0 | 0 | a8 | 0 | 0 | (-) + // | 0 | 0 | 0 | 0 | 0 | a9 | 0 | 0 | (-) + // | 0 | 0 | 0 | 0 | 0 | a13 | 0 | 0 | (-) + // | 0 | 0 | 0 | 0 | 0 | a14 | 0 | 0 | (-) + // | U[7]| U[6]| U[5]| U[4]| U[3]| U[2]| U[1]| U[0]| + // | V[3] | V[2] | V[1] | V[0] | + + // 1. 64-bit addition + // t2=s6+s7+s7 + adds x5,x13,x14 + adcs x4,xzr,xzr + adds x5,x5,x14 + adcs x4,x4,xzr + // t3=s4+s5+t2 + adds x6,x11,x5 + adcs x15,x4,xzr + adds x6,x6,x12 + adcs x15,x15,xzr + // sum + adds x7,x7,x6 + adcs x8,x8,x15 + adcs x9,x9,x5 + adcs x10,x10,x14 + adcs x3,xzr,xzr + adds x10,x10,x4 + adcs x3,x3,xzr + + stp x7,x8,[sp,#32] + stp x9,x10,[sp,#48] + + // 2. 64-bit to 32-bit spread + mov x4,#0xffffffff + mov x7,x11 + mov x8,x12 + mov x9,x13 + mov x10,x14 + and x7,x7,x4 // a8 + and x8,x8,x4 // a10 + and x9,x9,x4 // a12 + and x10,x10,x4 // a14 + lsr x11,x11,#32 // a9 + lsr x12,x12,#32 // a11 + lsr x13,x13,#32 // a13 + lsr x14,x14,#32 // a15 + + // 3. 32-bit addition + add x4,x10,x9 // t1 <- a12 + a14 + add x5,x14,x13 // t2 <- a13 + a15 + add x6,x7,x11 // t3 <- a8 + a9 + add x15,x10,x8 // t4 <- a10 + a14 + add x14,x14,x12 // a15 <- a11 + a15 + add x9,x5,x4 // a12 <- a12 + a13 + a14 + a15 + add x8,x8,x9 // a10 <- a10 + a12 + a13 + a14 + a15 + add x8,x8,x9 // a10 <- a10 + 2*(a12 + a13 + a14 + a15) + add x8,x8,x6 // a10 <- a8 + a9 + a10 + 2*(a12 + a13 + a14 + a15) + add x8,x8,x12 // a10 <- a8 + a9 + a10 + a11 + 2*(a12 + a13 + a14 + a15) + add x9,x9,x13 // a12 <- a12 + 2*a13 + a14 + a15 + add x9,x9,x12 // a12 <- a11 + a12 + 2*a13 + a14 + a15 + add x9,x9,x7 // a12 <- a8 + a11 + a12 + 2*a13 + a14 + a15 + add x6,x6,x10 // t3 <- a8 + a9 + a14 + add x6,x6,x13 // t3 <- a8 + a9 + a13 + a14 + add x11,x11,x5 // a9 <- a9 + a13 + a15 + add x12,x12,x11 // a11 <- a9 + a11 + a13 + a15 + add x12,x12,x5 // a11 <- a9 + a11 + 2*(a13 + a15) + add x4,x4,x15 // t1 <- a10 + a12 + 2*a14 + + // U[0] s5 a9 + a11 + 2*(a13 + a15) + // U[1] t1 a10 + a12 + 2*a14 + // U[2] -t3 a8 + a9 + a13 + a14 + // U[3] s2 a8 + a11 + a12 + 2*a13 + a14 + a15 + // U[4] s4 a9 + a13 + a15 + // U[5] t4 a10 + a14 + // U[6] s7 a11 + a15 + // U[7] s1 a8 + a9 + a10 + a11 + 2*(a12 + a13 + a14 + a15) + + // 4. 32-bit to 64-bit + lsl x7,x4,#32 + extr x4,x9,x4,#32 + extr x9,x15,x9,#32 + extr x15,x8,x15,#32 + lsr x8,x8,#32 + + // 5. 64-bit addition + adds x12,x12,x7 + adcs x4,x4,xzr + adcs x11,x11,x9 + adcs x14,x14,x15 + adcs x3,x3,x8 + + // V[0] s5 + // V[1] t1 + // V[2] s4 + // V[3] s7 + // carry t0 + // sub t3 + + // 5. Process s0-s3 + ldp x7,x8,[sp,#32] + ldp x9,x10,[sp,#48] + // add with V0-V3 + adds x7,x7,x12 + adcs x8,x8,x4 + adcs x9,x9,x11 + adcs x10,x10,x14 + adcs x3,x3,xzr + // sub with t3 + subs x8,x8,x6 + sbcs x9,x9,xzr + sbcs x10,x10,xzr + sbcs x3,x3,xzr + + // 6. MOD + // First Mod + lsl x4,x3,#32 + subs x5,x4,x3 + + adds x7,x7,x3 + adcs x8,x8,x5 + adcs x9,x9,xzr + adcs x10,x10,x4 + + // Last Mod + // return y - p if y > p else y + mov x11,x7 + mov x12,x8 + mov x13,x9 + mov x14,x10 + + adrp x3,.Lpoly + add x3,x3,#:lo12:.Lpoly + ldp x4,x5,[x3] + ldp x6,x15,[x3,#16] + + adcs x16,xzr,xzr + + subs x7,x7,x4 + sbcs x8,x8,x5 + sbcs x9,x9,x6 + sbcs x10,x10,x15 + sbcs x16,x16,xzr + + csel x7,x7,x11,cs + csel x8,x8,x12,cs + csel x9,x9,x13,cs + csel x10,x10,x14,cs + +.endm + +// void ecp_sm2p256_mul(BN_ULONG *r, const BN_ULONG *a, const BN_ULONG *b); +.globl ecp_sm2p256_mul +.type ecp_sm2p256_mul,%function +.align 5 +ecp_sm2p256_mul: + AARCH64_SIGN_LINK_REGISTER + // Store scalar registers + stp x29,x30,[sp,#-80]! + add x29,sp,#0 + stp x16,x17,[sp,#16] + stp x19,x20,[sp,#64] + + // Load inputs + ldp x7,x8,[x1] + ldp x9,x10,[x1,#16] + ldp x11,x12,[x2] + ldp x13,x14,[x2,#16] + +// ### multiplication ### + // ======================== + // s3 s2 s1 s0 + // * s7 s6 s5 s4 + // ------------------------ + // + s0 s0 s0 s0 + // * * * * + // s7 s6 s5 s4 + // s1 s1 s1 s1 + // * * * * + // s7 s6 s5 s4 + // s2 s2 s2 s2 + // * * * * + // s7 s6 s5 s4 + // s3 s3 s3 s3 + // * * * * + // s7 s6 s5 s4 + // ------------------------ + // s7 s6 s5 s4 s3 s2 s1 s0 + // ======================== + +// ### s0*s4 ### + mul x16,x7,x11 + umulh x5,x7,x11 + +// ### s1*s4 + s0*s5 ### + mul x3,x8,x11 + umulh x4,x8,x11 + adds x5,x5,x3 + adcs x6,x4,xzr + + mul x3,x7,x12 + umulh x4,x7,x12 + adds x5,x5,x3 + adcs x6,x6,x4 + adcs x15,xzr,xzr + +// ### s2*s4 + s1*s5 + s0*s6 ### + mul x3,x9,x11 + umulh x4,x9,x11 + adds x6,x6,x3 + adcs x15,x15,x4 + + mul x3,x8,x12 + umulh x4,x8,x12 + adds x6,x6,x3 + adcs x15,x15,x4 + adcs x17,xzr,xzr + + mul x3,x7,x13 + umulh x4,x7,x13 + adds x6,x6,x3 + adcs x15,x15,x4 + adcs x17,x17,xzr + +// ### s3*s4 + s2*s5 + s1*s6 + s0*s7 ### + mul x3,x10,x11 + umulh x4,x10,x11 + adds x15,x15,x3 + adcs x17,x17,x4 + adcs x19,xzr,xzr + + mul x3,x9,x12 + umulh x4,x9,x12 + adds x15,x15,x3 + adcs x17,x17,x4 + adcs x19,x19,xzr + + mul x3,x8,x13 + umulh x4,x8,x13 + adds x15,x15,x3 + adcs x17,x17,x4 + adcs x19,x19,xzr + + mul x3,x7,x14 + umulh x4,x7,x14 + adds x15,x15,x3 + adcs x17,x17,x4 + adcs x19,x19,xzr + +// ### s3*s5 + s2*s6 + s1*s7 ### + mul x3,x10,x12 + umulh x4,x10,x12 + adds x17,x17,x3 + adcs x19,x19,x4 + adcs x20,xzr,xzr + + mul x3,x9,x13 + umulh x4,x9,x13 + adds x17,x17,x3 + adcs x19,x19,x4 + adcs x20,x20,xzr + + mul x3,x8,x14 + umulh x4,x8,x14 + adds x11,x17,x3 + adcs x19,x19,x4 + adcs x20,x20,xzr + +// ### s3*s6 + s2*s7 ### + mul x3,x10,x13 + umulh x4,x10,x13 + adds x19,x19,x3 + adcs x20,x20,x4 + adcs x17,xzr,xzr + + mul x3,x9,x14 + umulh x4,x9,x14 + adds x12,x19,x3 + adcs x20,x20,x4 + adcs x17,x17,xzr + +// ### s3*s7 ### + mul x3,x10,x14 + umulh x4,x10,x14 + adds x13,x20,x3 + adcs x14,x17,x4 + + mov x7,x16 + mov x8,x5 + mov x9,x6 + mov x10,x15 + + // result of mul: s7 s6 s5 s4 s3 s2 s1 s0 + +// ### Reduction ### + RDC + + stp x7,x8,[x0] + stp x9,x10,[x0,#16] + + // Restore scalar registers + ldp x16,x17,[sp,#16] + ldp x19,x20,[sp,#64] + ldp x29,x30,[sp],#80 + + AARCH64_VALIDATE_LINK_REGISTER + ret +.size ecp_sm2p256_mul,.-ecp_sm2p256_mul + +// void ecp_sm2p256_sqr(BN_ULONG *r, const BN_ULONG *a); +.globl ecp_sm2p256_sqr +.type ecp_sm2p256_sqr,%function +.align 5 + +ecp_sm2p256_sqr: + AARCH64_SIGN_LINK_REGISTER + // Store scalar registers + stp x29,x30,[sp,#-80]! + add x29,sp,#0 + stp x16,x17,[sp,#16] + stp x19,x20,[sp,#64] + + // Load inputs + ldp x11,x12,[x1] + ldp x13,x14,[x1,#16] + +// ### square ### + // ======================== + // s7 s6 s5 s4 + // * s7 s6 s5 s4 + // ------------------------ + // + s4 s4 s4 s4 + // * * * * + // s7 s6 s5 s4 + // s5 s5 s5 s5 + // * * * * + // s7 s6 s5 s4 + // s6 s6 s6 s6 + // * * * * + // s7 s6 s5 s4 + // s7 s7 s7 s7 + // * * * * + // s7 s6 s5 s4 + // ------------------------ + // s7 s6 s5 s4 s3 s2 s1 s0 + // ======================== + +// ### s4*s5 ### + mul x8,x11,x12 + umulh x9,x11,x12 + +// ### s4*s6 ### + mul x3,x13,x11 + umulh x10,x13,x11 + adds x9,x9,x3 + adcs x10,x10,xzr + +// ### s4*s7 + s5*s6 ### + mul x3,x14,x11 + umulh x4,x14,x11 + adds x10,x10,x3 + adcs x7,x4,xzr + + mul x3,x13,x12 + umulh x4,x13,x12 + adds x10,x10,x3 + adcs x7,x7,x4 + adcs x5,xzr,xzr + +// ### s5*s7 ### + mul x3,x14,x12 + umulh x4,x14,x12 + adds x7,x7,x3 + adcs x5,x5,x4 + +// ### s6*s7 ### + mul x3,x14,x13 + umulh x4,x14,x13 + adds x5,x5,x3 + adcs x6,x4,xzr + +// ### 2*(t3,t2,s0,s3,s2,s1) ### + adds x8,x8,x8 + adcs x9,x9,x9 + adcs x10,x10,x10 + adcs x7,x7,x7 + adcs x5,x5,x5 + adcs x6,x6,x6 + adcs x15,xzr,xzr + +// ### s4*s4 ### + mul x16,x11,x11 + umulh x17,x11,x11 + +// ### s5*s5 ### + mul x11,x12,x12 + umulh x12,x12,x12 + +// ### s6*s6 ### + mul x3,x13,x13 + umulh x4,x13,x13 + +// ### s7*s7 ### + mul x19,x14,x14 + umulh x20,x14,x14 + + adds x8,x8,x17 + adcs x9,x9,x11 + adcs x10,x10,x12 + adcs x7,x7,x3 + adcs x5,x5,x4 + adcs x6,x6,x19 + adcs x15,x15,x20 + + mov x11,x7 + mov x7,x16 + mov x12,x5 + mov x13,x6 + mov x14,x15 + + // result of mul: s7 s6 s5 s4 s3 s2 s1 s0 + +// ### Reduction ### + RDC + + stp x7,x8,[x0] + stp x9,x10,[x0,#16] + + // Restore scalar registers + ldp x16,x17,[sp,#16] + ldp x19,x20,[sp,#64] + ldp x29,x30,[sp],#80 + + AARCH64_VALIDATE_LINK_REGISTER + ret +.size ecp_sm2p256_sqr,.-ecp_sm2p256_sqr diff --git a/deps/openssl/config/archs/linux-aarch64/asm_avx2/crypto/md5/md5-aarch64.S b/deps/openssl/config/archs/linux-aarch64/asm_avx2/crypto/md5/md5-aarch64.S new file mode 100644 index 00000000000000..b6f8777c9fd01c --- /dev/null +++ b/deps/openssl/config/archs/linux-aarch64/asm_avx2/crypto/md5/md5-aarch64.S @@ -0,0 +1,677 @@ +#include "arm_arch.h" + +.text +.globl ossl_md5_block_asm_data_order +.type ossl_md5_block_asm_data_order,@function +ossl_md5_block_asm_data_order: + AARCH64_VALID_CALL_TARGET + // Save all callee-saved registers + stp x19,x20,[sp,#-80]! + stp x21,x22,[sp,#16] + stp x23,x24,[sp,#32] + stp x25,x26,[sp,#48] + stp x27,x28,[sp,#64] + + ldp w10, w11, [x0, #0] // .Load MD5 state->A and state->B + ldp w12, w13, [x0, #8] // .Load MD5 state->C and state->D +.align 5 +ossl_md5_blocks_loop: + eor x17, x12, x13 // Begin aux function round 1 F(x,y,z)=(((y^z)&x)^z) + and x16, x17, x11 // Continue aux function round 1 F(x,y,z)=(((y^z)&x)^z) + ldp w15, w20, [x1] // .Load 2 words of input data0 M[0],M[1] + ldp w3, w21, [x1, #8] // .Load 2 words of input data0 M[2],M[3] +#ifdef __AARCH64EB__ + rev w15, w15 + rev w20, w20 + rev w3, w3 + rev w21, w21 +#endif + eor x14, x16, x13 // End aux function round 1 F(x,y,z)=(((y^z)&x)^z) + movz x9, #0xa478 // .Load lower half of constant 0xd76aa478 + movk x9, #0xd76a, lsl #16 // .Load upper half of constant 0xd76aa478 + add w8, w10, w15 // Add dest value + add w7, w8, w9 // Add constant 0xd76aa478 + add w6, w7, w14 // Add aux function result + ror w6, w6, #25 // Rotate left s=7 bits + eor x5, x11, x12 // Begin aux function round 1 F(x,y,z)=(((y^z)&x)^z) + add w4, w11, w6 // Add X parameter round 1 A=FF(A, B, C, D, 0xd76aa478, s=7, M[0]) + and x8, x5, x4 // Continue aux function round 1 F(x,y,z)=(((y^z)&x)^z) + eor x17, x8, x12 // End aux function round 1 F(x,y,z)=(((y^z)&x)^z) + movz x16, #0xb756 // .Load lower half of constant 0xe8c7b756 + movk x16, #0xe8c7, lsl #16 // .Load upper half of constant 0xe8c7b756 + add w9, w13, w20 // Add dest value + add w7, w9, w16 // Add constant 0xe8c7b756 + add w14, w7, w17 // Add aux function result + ror w14, w14, #20 // Rotate left s=12 bits + eor x6, x4, x11 // Begin aux function round 1 F(x,y,z)=(((y^z)&x)^z) + add w5, w4, w14 // Add X parameter round 1 D=FF(D, A, B, C, 0xe8c7b756, s=12, M[1]) + and x8, x6, x5 // Continue aux function round 1 F(x,y,z)=(((y^z)&x)^z) + eor x9, x8, x11 // End aux function round 1 F(x,y,z)=(((y^z)&x)^z) + movz x16, #0x70db // .Load lower half of constant 0x242070db + movk x16, #0x2420, lsl #16 // .Load upper half of constant 0x242070db + add w7, w12, w3 // Add dest value + add w17, w7, w16 // Add constant 0x242070db + add w14, w17, w9 // Add aux function result + ror w14, w14, #15 // Rotate left s=17 bits + eor x6, x5, x4 // Begin aux function round 1 F(x,y,z)=(((y^z)&x)^z) + add w8, w5, w14 // Add X parameter round 1 C=FF(C, D, A, B, 0x242070db, s=17, M[2]) + and x7, x6, x8 // Continue aux function round 1 F(x,y,z)=(((y^z)&x)^z) + eor x16, x7, x4 // End aux function round 1 F(x,y,z)=(((y^z)&x)^z) + movz x9, #0xceee // .Load lower half of constant 0xc1bdceee + movk x9, #0xc1bd, lsl #16 // .Load upper half of constant 0xc1bdceee + add w14, w11, w21 // Add dest value + add w6, w14, w9 // Add constant 0xc1bdceee + add w7, w6, w16 // Add aux function result + ror w7, w7, #10 // Rotate left s=22 bits + eor x17, x8, x5 // Begin aux function round 1 F(x,y,z)=(((y^z)&x)^z) + add w9, w8, w7 // Add X parameter round 1 B=FF(B, C, D, A, 0xc1bdceee, s=22, M[3]) + ldp w14, w22, [x1, #16] // .Load 2 words of input data0 M[4],M[5] + ldp w7, w23, [x1, #24] // .Load 2 words of input data0 M[6],M[7] +#ifdef __AARCH64EB__ + rev w14, w14 + rev w22, w22 + rev w7, w7 + rev w23, w23 +#endif + and x16, x17, x9 // Continue aux function round 1 F(x,y,z)=(((y^z)&x)^z) + eor x6, x16, x5 // End aux function round 1 F(x,y,z)=(((y^z)&x)^z) + movz x16, #0xfaf // .Load lower half of constant 0xf57c0faf + movk x16, #0xf57c, lsl #16 // .Load upper half of constant 0xf57c0faf + add w17, w4, w14 // Add dest value + add w16, w17, w16 // Add constant 0xf57c0faf + add w4, w16, w6 // Add aux function result + ror w4, w4, #25 // Rotate left s=7 bits + eor x16, x9, x8 // Begin aux function round 1 F(x,y,z)=(((y^z)&x)^z) + add w17, w9, w4 // Add X parameter round 1 A=FF(A, B, C, D, 0xf57c0faf, s=7, M[4]) + and x16, x16, x17 // Continue aux function round 1 F(x,y,z)=(((y^z)&x)^z) + eor x6, x16, x8 // End aux function round 1 F(x,y,z)=(((y^z)&x)^z) + movz x4, #0xc62a // .Load lower half of constant 0x4787c62a + movk x4, #0x4787, lsl #16 // .Load upper half of constant 0x4787c62a + add w16, w5, w22 // Add dest value + add w16, w16, w4 // Add constant 0x4787c62a + add w5, w16, w6 // Add aux function result + ror w5, w5, #20 // Rotate left s=12 bits + eor x4, x17, x9 // Begin aux function round 1 F(x,y,z)=(((y^z)&x)^z) + add w19, w17, w5 // Add X parameter round 1 D=FF(D, A, B, C, 0x4787c62a, s=12, M[5]) + and x6, x4, x19 // Continue aux function round 1 F(x,y,z)=(((y^z)&x)^z) + eor x5, x6, x9 // End aux function round 1 F(x,y,z)=(((y^z)&x)^z) + movz x4, #0x4613 // .Load lower half of constant 0xa8304613 + movk x4, #0xa830, lsl #16 // .Load upper half of constant 0xa8304613 + add w6, w8, w7 // Add dest value + add w8, w6, w4 // Add constant 0xa8304613 + add w4, w8, w5 // Add aux function result + ror w4, w4, #15 // Rotate left s=17 bits + eor x6, x19, x17 // Begin aux function round 1 F(x,y,z)=(((y^z)&x)^z) + add w8, w19, w4 // Add X parameter round 1 C=FF(C, D, A, B, 0xa8304613, s=17, M[6]) + and x5, x6, x8 // Continue aux function round 1 F(x,y,z)=(((y^z)&x)^z) + eor x4, x5, x17 // End aux function round 1 F(x,y,z)=(((y^z)&x)^z) + movz x6, #0x9501 // .Load lower half of constant 0xfd469501 + movk x6, #0xfd46, lsl #16 // .Load upper half of constant 0xfd469501 + add w9, w9, w23 // Add dest value + add w5, w9, w6 // Add constant 0xfd469501 + add w9, w5, w4 // Add aux function result + ror w9, w9, #10 // Rotate left s=22 bits + eor x6, x8, x19 // Begin aux function round 1 F(x,y,z)=(((y^z)&x)^z) + add w4, w8, w9 // Add X parameter round 1 B=FF(B, C, D, A, 0xfd469501, s=22, M[7]) + ldp w5, w24, [x1, #32] // .Load 2 words of input data0 M[8],M[9] + ldp w16, w25, [x1, #40] // .Load 2 words of input data0 M[10],M[11] +#ifdef __AARCH64EB__ + rev w5, w5 + rev w24, w24 + rev w16, w16 + rev w25, w25 +#endif + and x9, x6, x4 // Continue aux function round 1 F(x,y,z)=(((y^z)&x)^z) + eor x6, x9, x19 // End aux function round 1 F(x,y,z)=(((y^z)&x)^z) + movz x9, #0x98d8 // .Load lower half of constant 0x698098d8 + movk x9, #0x6980, lsl #16 // .Load upper half of constant 0x698098d8 + add w17, w17, w5 // Add dest value + add w9, w17, w9 // Add constant 0x698098d8 + add w17, w9, w6 // Add aux function result + ror w17, w17, #25 // Rotate left s=7 bits + eor x9, x4, x8 // Begin aux function round 1 F(x,y,z)=(((y^z)&x)^z) + add w6, w4, w17 // Add X parameter round 1 A=FF(A, B, C, D, 0x698098d8, s=7, M[8]) + and x17, x9, x6 // Continue aux function round 1 F(x,y,z)=(((y^z)&x)^z) + eor x9, x17, x8 // End aux function round 1 F(x,y,z)=(((y^z)&x)^z) + movz x17, #0xf7af // .Load lower half of constant 0x8b44f7af + movk x17, #0x8b44, lsl #16 // .Load upper half of constant 0x8b44f7af + add w19, w19, w24 // Add dest value + add w17, w19, w17 // Add constant 0x8b44f7af + add w19, w17, w9 // Add aux function result + ror w19, w19, #20 // Rotate left s=12 bits + eor x9, x6, x4 // Begin aux function round 1 F(x,y,z)=(((y^z)&x)^z) + add w17, w6, w19 // Add X parameter round 1 D=FF(D, A, B, C, 0x8b44f7af, s=12, M[9]) + and x9, x9, x17 // Continue aux function round 1 F(x,y,z)=(((y^z)&x)^z) + eor x9, x9, x4 // End aux function round 1 F(x,y,z)=(((y^z)&x)^z) + movz x11, #0x5bb1 // .Load lower half of constant 0xffff5bb1 + movk x11, #0xffff, lsl #16 // .Load upper half of constant 0xffff5bb1 + add w8, w8, w16 // Add dest value + add w8, w8, w11 // Add constant 0xffff5bb1 + add w8, w8, w9 // Add aux function result + ror w8, w8, #15 // Rotate left s=17 bits + eor x9, x17, x6 // Begin aux function round 1 F(x,y,z)=(((y^z)&x)^z) + add w8, w17, w8 // Add X parameter round 1 C=FF(C, D, A, B, 0xffff5bb1, s=17, M[10]) + and x9, x9, x8 // Continue aux function round 1 F(x,y,z)=(((y^z)&x)^z) + eor x9, x9, x6 // End aux function round 1 F(x,y,z)=(((y^z)&x)^z) + movz x11, #0xd7be // .Load lower half of constant 0x895cd7be + movk x11, #0x895c, lsl #16 // .Load upper half of constant 0x895cd7be + add w4, w4, w25 // Add dest value + add w4, w4, w11 // Add constant 0x895cd7be + add w9, w4, w9 // Add aux function result + ror w9, w9, #10 // Rotate left s=22 bits + eor x4, x8, x17 // Begin aux function round 1 F(x,y,z)=(((y^z)&x)^z) + add w9, w8, w9 // Add X parameter round 1 B=FF(B, C, D, A, 0x895cd7be, s=22, M[11]) + ldp w11, w26, [x1, #48] // .Load 2 words of input data0 M[12],M[13] + ldp w12, w27, [x1, #56] // .Load 2 words of input data0 M[14],M[15] +#ifdef __AARCH64EB__ + rev w11, w11 + rev w26, w26 + rev w12, w12 + rev w27, w27 +#endif + and x4, x4, x9 // Continue aux function round 1 F(x,y,z)=(((y^z)&x)^z) + eor x4, x4, x17 // End aux function round 1 F(x,y,z)=(((y^z)&x)^z) + movz x19, #0x1122 // .Load lower half of constant 0x6b901122 + movk x19, #0x6b90, lsl #16 // .Load upper half of constant 0x6b901122 + add w6, w6, w11 // Add dest value + add w6, w6, w19 // Add constant 0x6b901122 + add w4, w6, w4 // Add aux function result + ror w4, w4, #25 // Rotate left s=7 bits + eor x6, x9, x8 // Begin aux function round 1 F(x,y,z)=(((y^z)&x)^z) + add w4, w9, w4 // Add X parameter round 1 A=FF(A, B, C, D, 0x6b901122, s=7, M[12]) + and x6, x6, x4 // Continue aux function round 1 F(x,y,z)=(((y^z)&x)^z) + eor x6, x6, x8 // End aux function round 1 F(x,y,z)=(((y^z)&x)^z) + movz x19, #0x7193 // .Load lower half of constant 0xfd987193 + movk x19, #0xfd98, lsl #16 // .Load upper half of constant 0xfd987193 + add w17, w17, w26 // Add dest value + add w17, w17, w19 // Add constant 0xfd987193 + add w17, w17, w6 // Add aux function result + ror w17, w17, #20 // Rotate left s=12 bits + eor x6, x4, x9 // Begin aux function round 1 F(x,y,z)=(((y^z)&x)^z) + add w17, w4, w17 // Add X parameter round 1 D=FF(D, A, B, C, 0xfd987193, s=12, M[13]) + and x6, x6, x17 // Continue aux function round 1 F(x,y,z)=(((y^z)&x)^z) + eor x6, x6, x9 // End aux function round 1 F(x,y,z)=(((y^z)&x)^z) + movz x13, #0x438e // .Load lower half of constant 0xa679438e + movk x13, #0xa679, lsl #16 // .Load upper half of constant 0xa679438e + add w8, w8, w12 // Add dest value + add w8, w8, w13 // Add constant 0xa679438e + add w8, w8, w6 // Add aux function result + ror w8, w8, #15 // Rotate left s=17 bits + eor x6, x17, x4 // Begin aux function round 1 F(x,y,z)=(((y^z)&x)^z) + add w8, w17, w8 // Add X parameter round 1 C=FF(C, D, A, B, 0xa679438e, s=17, M[14]) + and x6, x6, x8 // Continue aux function round 1 F(x,y,z)=(((y^z)&x)^z) + eor x6, x6, x4 // End aux function round 1 F(x,y,z)=(((y^z)&x)^z) + movz x13, #0x821 // .Load lower half of constant 0x49b40821 + movk x13, #0x49b4, lsl #16 // .Load upper half of constant 0x49b40821 + add w9, w9, w27 // Add dest value + add w9, w9, w13 // Add constant 0x49b40821 + add w9, w9, w6 // Add aux function result + ror w9, w9, #10 // Rotate left s=22 bits + bic x6, x8, x17 // Aux function round 2 (~z & y) + add w9, w8, w9 // Add X parameter round 1 B=FF(B, C, D, A, 0x49b40821, s=22, M[15]) + movz x13, #0x2562 // .Load lower half of constant 0xf61e2562 + movk x13, #0xf61e, lsl #16 // .Load upper half of constant 0xf61e2562 + add w4, w4, w20 // Add dest value + add w4, w4, w13 // Add constant 0xf61e2562 + and x13, x9, x17 // Aux function round 2 (x & z) + add w4, w4, w6 // Add (~z & y) + add w4, w4, w13 // Add (x & z) + ror w4, w4, #27 // Rotate left s=5 bits + bic x6, x9, x8 // Aux function round 2 (~z & y) + add w4, w9, w4 // Add X parameter round 2 A=GG(A, B, C, D, 0xf61e2562, s=5, M[1]) + movz x13, #0xb340 // .Load lower half of constant 0xc040b340 + movk x13, #0xc040, lsl #16 // .Load upper half of constant 0xc040b340 + add w17, w17, w7 // Add dest value + add w17, w17, w13 // Add constant 0xc040b340 + and x13, x4, x8 // Aux function round 2 (x & z) + add w17, w17, w6 // Add (~z & y) + add w17, w17, w13 // Add (x & z) + ror w17, w17, #23 // Rotate left s=9 bits + bic x6, x4, x9 // Aux function round 2 (~z & y) + add w17, w4, w17 // Add X parameter round 2 D=GG(D, A, B, C, 0xc040b340, s=9, M[6]) + movz x13, #0x5a51 // .Load lower half of constant 0x265e5a51 + movk x13, #0x265e, lsl #16 // .Load upper half of constant 0x265e5a51 + add w8, w8, w25 // Add dest value + add w8, w8, w13 // Add constant 0x265e5a51 + and x13, x17, x9 // Aux function round 2 (x & z) + add w8, w8, w6 // Add (~z & y) + add w8, w8, w13 // Add (x & z) + ror w8, w8, #18 // Rotate left s=14 bits + bic x6, x17, x4 // Aux function round 2 (~z & y) + add w8, w17, w8 // Add X parameter round 2 C=GG(C, D, A, B, 0x265e5a51, s=14, M[11]) + movz x13, #0xc7aa // .Load lower half of constant 0xe9b6c7aa + movk x13, #0xe9b6, lsl #16 // .Load upper half of constant 0xe9b6c7aa + add w9, w9, w15 // Add dest value + add w9, w9, w13 // Add constant 0xe9b6c7aa + and x13, x8, x4 // Aux function round 2 (x & z) + add w9, w9, w6 // Add (~z & y) + add w9, w9, w13 // Add (x & z) + ror w9, w9, #12 // Rotate left s=20 bits + bic x6, x8, x17 // Aux function round 2 (~z & y) + add w9, w8, w9 // Add X parameter round 2 B=GG(B, C, D, A, 0xe9b6c7aa, s=20, M[0]) + movz x13, #0x105d // .Load lower half of constant 0xd62f105d + movk x13, #0xd62f, lsl #16 // .Load upper half of constant 0xd62f105d + add w4, w4, w22 // Add dest value + add w4, w4, w13 // Add constant 0xd62f105d + and x13, x9, x17 // Aux function round 2 (x & z) + add w4, w4, w6 // Add (~z & y) + add w4, w4, w13 // Add (x & z) + ror w4, w4, #27 // Rotate left s=5 bits + bic x6, x9, x8 // Aux function round 2 (~z & y) + add w4, w9, w4 // Add X parameter round 2 A=GG(A, B, C, D, 0xd62f105d, s=5, M[5]) + movz x13, #0x1453 // .Load lower half of constant 0x2441453 + movk x13, #0x244, lsl #16 // .Load upper half of constant 0x2441453 + add w17, w17, w16 // Add dest value + add w17, w17, w13 // Add constant 0x2441453 + and x13, x4, x8 // Aux function round 2 (x & z) + add w17, w17, w6 // Add (~z & y) + add w17, w17, w13 // Add (x & z) + ror w17, w17, #23 // Rotate left s=9 bits + bic x6, x4, x9 // Aux function round 2 (~z & y) + add w17, w4, w17 // Add X parameter round 2 D=GG(D, A, B, C, 0x2441453, s=9, M[10]) + movz x13, #0xe681 // .Load lower half of constant 0xd8a1e681 + movk x13, #0xd8a1, lsl #16 // .Load upper half of constant 0xd8a1e681 + add w8, w8, w27 // Add dest value + add w8, w8, w13 // Add constant 0xd8a1e681 + and x13, x17, x9 // Aux function round 2 (x & z) + add w8, w8, w6 // Add (~z & y) + add w8, w8, w13 // Add (x & z) + ror w8, w8, #18 // Rotate left s=14 bits + bic x6, x17, x4 // Aux function round 2 (~z & y) + add w8, w17, w8 // Add X parameter round 2 C=GG(C, D, A, B, 0xd8a1e681, s=14, M[15]) + movz x13, #0xfbc8 // .Load lower half of constant 0xe7d3fbc8 + movk x13, #0xe7d3, lsl #16 // .Load upper half of constant 0xe7d3fbc8 + add w9, w9, w14 // Add dest value + add w9, w9, w13 // Add constant 0xe7d3fbc8 + and x13, x8, x4 // Aux function round 2 (x & z) + add w9, w9, w6 // Add (~z & y) + add w9, w9, w13 // Add (x & z) + ror w9, w9, #12 // Rotate left s=20 bits + bic x6, x8, x17 // Aux function round 2 (~z & y) + add w9, w8, w9 // Add X parameter round 2 B=GG(B, C, D, A, 0xe7d3fbc8, s=20, M[4]) + movz x13, #0xcde6 // .Load lower half of constant 0x21e1cde6 + movk x13, #0x21e1, lsl #16 // .Load upper half of constant 0x21e1cde6 + add w4, w4, w24 // Add dest value + add w4, w4, w13 // Add constant 0x21e1cde6 + and x13, x9, x17 // Aux function round 2 (x & z) + add w4, w4, w6 // Add (~z & y) + add w4, w4, w13 // Add (x & z) + ror w4, w4, #27 // Rotate left s=5 bits + bic x6, x9, x8 // Aux function round 2 (~z & y) + add w4, w9, w4 // Add X parameter round 2 A=GG(A, B, C, D, 0x21e1cde6, s=5, M[9]) + movz x13, #0x7d6 // .Load lower half of constant 0xc33707d6 + movk x13, #0xc337, lsl #16 // .Load upper half of constant 0xc33707d6 + add w17, w17, w12 // Add dest value + add w17, w17, w13 // Add constant 0xc33707d6 + and x13, x4, x8 // Aux function round 2 (x & z) + add w17, w17, w6 // Add (~z & y) + add w17, w17, w13 // Add (x & z) + ror w17, w17, #23 // Rotate left s=9 bits + bic x6, x4, x9 // Aux function round 2 (~z & y) + add w17, w4, w17 // Add X parameter round 2 D=GG(D, A, B, C, 0xc33707d6, s=9, M[14]) + movz x13, #0xd87 // .Load lower half of constant 0xf4d50d87 + movk x13, #0xf4d5, lsl #16 // .Load upper half of constant 0xf4d50d87 + add w8, w8, w21 // Add dest value + add w8, w8, w13 // Add constant 0xf4d50d87 + and x13, x17, x9 // Aux function round 2 (x & z) + add w8, w8, w6 // Add (~z & y) + add w8, w8, w13 // Add (x & z) + ror w8, w8, #18 // Rotate left s=14 bits + bic x6, x17, x4 // Aux function round 2 (~z & y) + add w8, w17, w8 // Add X parameter round 2 C=GG(C, D, A, B, 0xf4d50d87, s=14, M[3]) + movz x13, #0x14ed // .Load lower half of constant 0x455a14ed + movk x13, #0x455a, lsl #16 // .Load upper half of constant 0x455a14ed + add w9, w9, w5 // Add dest value + add w9, w9, w13 // Add constant 0x455a14ed + and x13, x8, x4 // Aux function round 2 (x & z) + add w9, w9, w6 // Add (~z & y) + add w9, w9, w13 // Add (x & z) + ror w9, w9, #12 // Rotate left s=20 bits + bic x6, x8, x17 // Aux function round 2 (~z & y) + add w9, w8, w9 // Add X parameter round 2 B=GG(B, C, D, A, 0x455a14ed, s=20, M[8]) + movz x13, #0xe905 // .Load lower half of constant 0xa9e3e905 + movk x13, #0xa9e3, lsl #16 // .Load upper half of constant 0xa9e3e905 + add w4, w4, w26 // Add dest value + add w4, w4, w13 // Add constant 0xa9e3e905 + and x13, x9, x17 // Aux function round 2 (x & z) + add w4, w4, w6 // Add (~z & y) + add w4, w4, w13 // Add (x & z) + ror w4, w4, #27 // Rotate left s=5 bits + bic x6, x9, x8 // Aux function round 2 (~z & y) + add w4, w9, w4 // Add X parameter round 2 A=GG(A, B, C, D, 0xa9e3e905, s=5, M[13]) + movz x13, #0xa3f8 // .Load lower half of constant 0xfcefa3f8 + movk x13, #0xfcef, lsl #16 // .Load upper half of constant 0xfcefa3f8 + add w17, w17, w3 // Add dest value + add w17, w17, w13 // Add constant 0xfcefa3f8 + and x13, x4, x8 // Aux function round 2 (x & z) + add w17, w17, w6 // Add (~z & y) + add w17, w17, w13 // Add (x & z) + ror w17, w17, #23 // Rotate left s=9 bits + bic x6, x4, x9 // Aux function round 2 (~z & y) + add w17, w4, w17 // Add X parameter round 2 D=GG(D, A, B, C, 0xfcefa3f8, s=9, M[2]) + movz x13, #0x2d9 // .Load lower half of constant 0x676f02d9 + movk x13, #0x676f, lsl #16 // .Load upper half of constant 0x676f02d9 + add w8, w8, w23 // Add dest value + add w8, w8, w13 // Add constant 0x676f02d9 + and x13, x17, x9 // Aux function round 2 (x & z) + add w8, w8, w6 // Add (~z & y) + add w8, w8, w13 // Add (x & z) + ror w8, w8, #18 // Rotate left s=14 bits + bic x6, x17, x4 // Aux function round 2 (~z & y) + add w8, w17, w8 // Add X parameter round 2 C=GG(C, D, A, B, 0x676f02d9, s=14, M[7]) + movz x13, #0x4c8a // .Load lower half of constant 0x8d2a4c8a + movk x13, #0x8d2a, lsl #16 // .Load upper half of constant 0x8d2a4c8a + add w9, w9, w11 // Add dest value + add w9, w9, w13 // Add constant 0x8d2a4c8a + and x13, x8, x4 // Aux function round 2 (x & z) + add w9, w9, w6 // Add (~z & y) + add w9, w9, w13 // Add (x & z) + eor x6, x8, x17 // Begin aux function round 3 H(x,y,z)=(x^y^z) + ror w9, w9, #12 // Rotate left s=20 bits + movz x10, #0x3942 // .Load lower half of constant 0xfffa3942 + add w9, w8, w9 // Add X parameter round 2 B=GG(B, C, D, A, 0x8d2a4c8a, s=20, M[12]) + movk x10, #0xfffa, lsl #16 // .Load upper half of constant 0xfffa3942 + add w4, w4, w22 // Add dest value + eor x6, x6, x9 // End aux function round 3 H(x,y,z)=(x^y^z) + add w4, w4, w10 // Add constant 0xfffa3942 + add w4, w4, w6 // Add aux function result + ror w4, w4, #28 // Rotate left s=4 bits + eor x6, x9, x8 // Begin aux function round 3 H(x,y,z)=(x^y^z) + movz x10, #0xf681 // .Load lower half of constant 0x8771f681 + add w4, w9, w4 // Add X parameter round 3 A=HH(A, B, C, D, 0xfffa3942, s=4, M[5]) + movk x10, #0x8771, lsl #16 // .Load upper half of constant 0x8771f681 + add w17, w17, w5 // Add dest value + eor x6, x6, x4 // End aux function round 3 H(x,y,z)=(x^y^z) + add w17, w17, w10 // Add constant 0x8771f681 + add w17, w17, w6 // Add aux function result + eor x6, x4, x9 // Begin aux function round 3 H(x,y,z)=(x^y^z) + ror w17, w17, #21 // Rotate left s=11 bits + movz x13, #0x6122 // .Load lower half of constant 0x6d9d6122 + add w17, w4, w17 // Add X parameter round 3 D=HH(D, A, B, C, 0x8771f681, s=11, M[8]) + movk x13, #0x6d9d, lsl #16 // .Load upper half of constant 0x6d9d6122 + add w8, w8, w25 // Add dest value + eor x6, x6, x17 // End aux function round 3 H(x,y,z)=(x^y^z) + add w8, w8, w13 // Add constant 0x6d9d6122 + add w8, w8, w6 // Add aux function result + ror w8, w8, #16 // Rotate left s=16 bits + eor x6, x17, x4 // Begin aux function round 3 H(x,y,z)=(x^y^z) + movz x13, #0x380c // .Load lower half of constant 0xfde5380c + add w8, w17, w8 // Add X parameter round 3 C=HH(C, D, A, B, 0x6d9d6122, s=16, M[11]) + movk x13, #0xfde5, lsl #16 // .Load upper half of constant 0xfde5380c + add w9, w9, w12 // Add dest value + eor x6, x6, x8 // End aux function round 3 H(x,y,z)=(x^y^z) + add w9, w9, w13 // Add constant 0xfde5380c + add w9, w9, w6 // Add aux function result + eor x6, x8, x17 // Begin aux function round 3 H(x,y,z)=(x^y^z) + ror w9, w9, #9 // Rotate left s=23 bits + movz x10, #0xea44 // .Load lower half of constant 0xa4beea44 + add w9, w8, w9 // Add X parameter round 3 B=HH(B, C, D, A, 0xfde5380c, s=23, M[14]) + movk x10, #0xa4be, lsl #16 // .Load upper half of constant 0xa4beea44 + add w4, w4, w20 // Add dest value + eor x6, x6, x9 // End aux function round 3 H(x,y,z)=(x^y^z) + add w4, w4, w10 // Add constant 0xa4beea44 + add w4, w4, w6 // Add aux function result + ror w4, w4, #28 // Rotate left s=4 bits + eor x6, x9, x8 // Begin aux function round 3 H(x,y,z)=(x^y^z) + movz x10, #0xcfa9 // .Load lower half of constant 0x4bdecfa9 + add w4, w9, w4 // Add X parameter round 3 A=HH(A, B, C, D, 0xa4beea44, s=4, M[1]) + movk x10, #0x4bde, lsl #16 // .Load upper half of constant 0x4bdecfa9 + add w17, w17, w14 // Add dest value + eor x6, x6, x4 // End aux function round 3 H(x,y,z)=(x^y^z) + add w17, w17, w10 // Add constant 0x4bdecfa9 + add w17, w17, w6 // Add aux function result + eor x6, x4, x9 // Begin aux function round 3 H(x,y,z)=(x^y^z) + ror w17, w17, #21 // Rotate left s=11 bits + movz x13, #0x4b60 // .Load lower half of constant 0xf6bb4b60 + add w17, w4, w17 // Add X parameter round 3 D=HH(D, A, B, C, 0x4bdecfa9, s=11, M[4]) + movk x13, #0xf6bb, lsl #16 // .Load upper half of constant 0xf6bb4b60 + add w8, w8, w23 // Add dest value + eor x6, x6, x17 // End aux function round 3 H(x,y,z)=(x^y^z) + add w8, w8, w13 // Add constant 0xf6bb4b60 + add w8, w8, w6 // Add aux function result + ror w8, w8, #16 // Rotate left s=16 bits + eor x6, x17, x4 // Begin aux function round 3 H(x,y,z)=(x^y^z) + movz x13, #0xbc70 // .Load lower half of constant 0xbebfbc70 + add w8, w17, w8 // Add X parameter round 3 C=HH(C, D, A, B, 0xf6bb4b60, s=16, M[7]) + movk x13, #0xbebf, lsl #16 // .Load upper half of constant 0xbebfbc70 + add w9, w9, w16 // Add dest value + eor x6, x6, x8 // End aux function round 3 H(x,y,z)=(x^y^z) + add w9, w9, w13 // Add constant 0xbebfbc70 + add w9, w9, w6 // Add aux function result + eor x6, x8, x17 // Begin aux function round 3 H(x,y,z)=(x^y^z) + ror w9, w9, #9 // Rotate left s=23 bits + movz x10, #0x7ec6 // .Load lower half of constant 0x289b7ec6 + add w9, w8, w9 // Add X parameter round 3 B=HH(B, C, D, A, 0xbebfbc70, s=23, M[10]) + movk x10, #0x289b, lsl #16 // .Load upper half of constant 0x289b7ec6 + add w4, w4, w26 // Add dest value + eor x6, x6, x9 // End aux function round 3 H(x,y,z)=(x^y^z) + add w4, w4, w10 // Add constant 0x289b7ec6 + add w4, w4, w6 // Add aux function result + ror w4, w4, #28 // Rotate left s=4 bits + eor x6, x9, x8 // Begin aux function round 3 H(x,y,z)=(x^y^z) + movz x10, #0x27fa // .Load lower half of constant 0xeaa127fa + add w4, w9, w4 // Add X parameter round 3 A=HH(A, B, C, D, 0x289b7ec6, s=4, M[13]) + movk x10, #0xeaa1, lsl #16 // .Load upper half of constant 0xeaa127fa + add w17, w17, w15 // Add dest value + eor x6, x6, x4 // End aux function round 3 H(x,y,z)=(x^y^z) + add w17, w17, w10 // Add constant 0xeaa127fa + add w17, w17, w6 // Add aux function result + eor x6, x4, x9 // Begin aux function round 3 H(x,y,z)=(x^y^z) + ror w17, w17, #21 // Rotate left s=11 bits + movz x13, #0x3085 // .Load lower half of constant 0xd4ef3085 + add w17, w4, w17 // Add X parameter round 3 D=HH(D, A, B, C, 0xeaa127fa, s=11, M[0]) + movk x13, #0xd4ef, lsl #16 // .Load upper half of constant 0xd4ef3085 + add w8, w8, w21 // Add dest value + eor x6, x6, x17 // End aux function round 3 H(x,y,z)=(x^y^z) + add w8, w8, w13 // Add constant 0xd4ef3085 + add w8, w8, w6 // Add aux function result + ror w8, w8, #16 // Rotate left s=16 bits + eor x6, x17, x4 // Begin aux function round 3 H(x,y,z)=(x^y^z) + movz x13, #0x1d05 // .Load lower half of constant 0x4881d05 + add w8, w17, w8 // Add X parameter round 3 C=HH(C, D, A, B, 0xd4ef3085, s=16, M[3]) + movk x13, #0x488, lsl #16 // .Load upper half of constant 0x4881d05 + add w9, w9, w7 // Add dest value + eor x6, x6, x8 // End aux function round 3 H(x,y,z)=(x^y^z) + add w9, w9, w13 // Add constant 0x4881d05 + add w9, w9, w6 // Add aux function result + eor x6, x8, x17 // Begin aux function round 3 H(x,y,z)=(x^y^z) + ror w9, w9, #9 // Rotate left s=23 bits + movz x10, #0xd039 // .Load lower half of constant 0xd9d4d039 + add w9, w8, w9 // Add X parameter round 3 B=HH(B, C, D, A, 0x4881d05, s=23, M[6]) + movk x10, #0xd9d4, lsl #16 // .Load upper half of constant 0xd9d4d039 + add w4, w4, w24 // Add dest value + eor x6, x6, x9 // End aux function round 3 H(x,y,z)=(x^y^z) + add w4, w4, w10 // Add constant 0xd9d4d039 + add w4, w4, w6 // Add aux function result + ror w4, w4, #28 // Rotate left s=4 bits + eor x6, x9, x8 // Begin aux function round 3 H(x,y,z)=(x^y^z) + movz x10, #0x99e5 // .Load lower half of constant 0xe6db99e5 + add w4, w9, w4 // Add X parameter round 3 A=HH(A, B, C, D, 0xd9d4d039, s=4, M[9]) + movk x10, #0xe6db, lsl #16 // .Load upper half of constant 0xe6db99e5 + add w17, w17, w11 // Add dest value + eor x6, x6, x4 // End aux function round 3 H(x,y,z)=(x^y^z) + add w17, w17, w10 // Add constant 0xe6db99e5 + add w17, w17, w6 // Add aux function result + eor x6, x4, x9 // Begin aux function round 3 H(x,y,z)=(x^y^z) + ror w17, w17, #21 // Rotate left s=11 bits + movz x13, #0x7cf8 // .Load lower half of constant 0x1fa27cf8 + add w17, w4, w17 // Add X parameter round 3 D=HH(D, A, B, C, 0xe6db99e5, s=11, M[12]) + movk x13, #0x1fa2, lsl #16 // .Load upper half of constant 0x1fa27cf8 + add w8, w8, w27 // Add dest value + eor x6, x6, x17 // End aux function round 3 H(x,y,z)=(x^y^z) + add w8, w8, w13 // Add constant 0x1fa27cf8 + add w8, w8, w6 // Add aux function result + ror w8, w8, #16 // Rotate left s=16 bits + eor x6, x17, x4 // Begin aux function round 3 H(x,y,z)=(x^y^z) + movz x13, #0x5665 // .Load lower half of constant 0xc4ac5665 + add w8, w17, w8 // Add X parameter round 3 C=HH(C, D, A, B, 0x1fa27cf8, s=16, M[15]) + movk x13, #0xc4ac, lsl #16 // .Load upper half of constant 0xc4ac5665 + add w9, w9, w3 // Add dest value + eor x6, x6, x8 // End aux function round 3 H(x,y,z)=(x^y^z) + add w9, w9, w13 // Add constant 0xc4ac5665 + add w9, w9, w6 // Add aux function result + ror w9, w9, #9 // Rotate left s=23 bits + movz x6, #0x2244 // .Load lower half of constant 0xf4292244 + movk x6, #0xf429, lsl #16 // .Load upper half of constant 0xf4292244 + add w9, w8, w9 // Add X parameter round 3 B=HH(B, C, D, A, 0xc4ac5665, s=23, M[2]) + add w4, w4, w15 // Add dest value + orn x13, x9, x17 // Begin aux function round 4 I(x,y,z)=((~z|x)^y) + add w4, w4, w6 // Add constant 0xf4292244 + eor x6, x8, x13 // End aux function round 4 I(x,y,z)=((~z|x)^y) + add w4, w4, w6 // Add aux function result + ror w4, w4, #26 // Rotate left s=6 bits + movz x6, #0xff97 // .Load lower half of constant 0x432aff97 + movk x6, #0x432a, lsl #16 // .Load upper half of constant 0x432aff97 + add w4, w9, w4 // Add X parameter round 4 A=II(A, B, C, D, 0xf4292244, s=6, M[0]) + orn x10, x4, x8 // Begin aux function round 4 I(x,y,z)=((~z|x)^y) + add w17, w17, w23 // Add dest value + eor x10, x9, x10 // End aux function round 4 I(x,y,z)=((~z|x)^y) + add w17, w17, w6 // Add constant 0x432aff97 + add w6, w17, w10 // Add aux function result + ror w6, w6, #22 // Rotate left s=10 bits + movz x17, #0x23a7 // .Load lower half of constant 0xab9423a7 + movk x17, #0xab94, lsl #16 // .Load upper half of constant 0xab9423a7 + add w6, w4, w6 // Add X parameter round 4 D=II(D, A, B, C, 0x432aff97, s=10, M[7]) + add w8, w8, w12 // Add dest value + orn x10, x6, x9 // Begin aux function round 4 I(x,y,z)=((~z|x)^y) + add w8, w8, w17 // Add constant 0xab9423a7 + eor x17, x4, x10 // End aux function round 4 I(x,y,z)=((~z|x)^y) + add w8, w8, w17 // Add aux function result + ror w8, w8, #17 // Rotate left s=15 bits + movz x17, #0xa039 // .Load lower half of constant 0xfc93a039 + movk x17, #0xfc93, lsl #16 // .Load upper half of constant 0xfc93a039 + add w8, w6, w8 // Add X parameter round 4 C=II(C, D, A, B, 0xab9423a7, s=15, M[14]) + orn x13, x8, x4 // Begin aux function round 4 I(x,y,z)=((~z|x)^y) + add w9, w9, w22 // Add dest value + eor x13, x6, x13 // End aux function round 4 I(x,y,z)=((~z|x)^y) + add w9, w9, w17 // Add constant 0xfc93a039 + add w17, w9, w13 // Add aux function result + ror w17, w17, #11 // Rotate left s=21 bits + movz x9, #0x59c3 // .Load lower half of constant 0x655b59c3 + movk x9, #0x655b, lsl #16 // .Load upper half of constant 0x655b59c3 + add w17, w8, w17 // Add X parameter round 4 B=II(B, C, D, A, 0xfc93a039, s=21, M[5]) + add w4, w4, w11 // Add dest value + orn x13, x17, x6 // Begin aux function round 4 I(x,y,z)=((~z|x)^y) + add w9, w4, w9 // Add constant 0x655b59c3 + eor x4, x8, x13 // End aux function round 4 I(x,y,z)=((~z|x)^y) + add w9, w9, w4 // Add aux function result + ror w9, w9, #26 // Rotate left s=6 bits + movz x4, #0xcc92 // .Load lower half of constant 0x8f0ccc92 + movk x4, #0x8f0c, lsl #16 // .Load upper half of constant 0x8f0ccc92 + add w9, w17, w9 // Add X parameter round 4 A=II(A, B, C, D, 0x655b59c3, s=6, M[12]) + orn x10, x9, x8 // Begin aux function round 4 I(x,y,z)=((~z|x)^y) + add w6, w6, w21 // Add dest value + eor x10, x17, x10 // End aux function round 4 I(x,y,z)=((~z|x)^y) + add w4, w6, w4 // Add constant 0x8f0ccc92 + add w6, w4, w10 // Add aux function result + ror w6, w6, #22 // Rotate left s=10 bits + movz x4, #0xf47d // .Load lower half of constant 0xffeff47d + movk x4, #0xffef, lsl #16 // .Load upper half of constant 0xffeff47d + add w6, w9, w6 // Add X parameter round 4 D=II(D, A, B, C, 0x8f0ccc92, s=10, M[3]) + add w8, w8, w16 // Add dest value + orn x10, x6, x17 // Begin aux function round 4 I(x,y,z)=((~z|x)^y) + add w8, w8, w4 // Add constant 0xffeff47d + eor x4, x9, x10 // End aux function round 4 I(x,y,z)=((~z|x)^y) + add w8, w8, w4 // Add aux function result + ror w8, w8, #17 // Rotate left s=15 bits + movz x4, #0x5dd1 // .Load lower half of constant 0x85845dd1 + movk x4, #0x8584, lsl #16 // .Load upper half of constant 0x85845dd1 + add w8, w6, w8 // Add X parameter round 4 C=II(C, D, A, B, 0xffeff47d, s=15, M[10]) + orn x10, x8, x9 // Begin aux function round 4 I(x,y,z)=((~z|x)^y) + add w15, w17, w20 // Add dest value + eor x17, x6, x10 // End aux function round 4 I(x,y,z)=((~z|x)^y) + add w15, w15, w4 // Add constant 0x85845dd1 + add w4, w15, w17 // Add aux function result + ror w4, w4, #11 // Rotate left s=21 bits + movz x15, #0x7e4f // .Load lower half of constant 0x6fa87e4f + movk x15, #0x6fa8, lsl #16 // .Load upper half of constant 0x6fa87e4f + add w17, w8, w4 // Add X parameter round 4 B=II(B, C, D, A, 0x85845dd1, s=21, M[1]) + add w4, w9, w5 // Add dest value + orn x9, x17, x6 // Begin aux function round 4 I(x,y,z)=((~z|x)^y) + add w15, w4, w15 // Add constant 0x6fa87e4f + eor x4, x8, x9 // End aux function round 4 I(x,y,z)=((~z|x)^y) + add w9, w15, w4 // Add aux function result + ror w9, w9, #26 // Rotate left s=6 bits + movz x15, #0xe6e0 // .Load lower half of constant 0xfe2ce6e0 + movk x15, #0xfe2c, lsl #16 // .Load upper half of constant 0xfe2ce6e0 + add w4, w17, w9 // Add X parameter round 4 A=II(A, B, C, D, 0x6fa87e4f, s=6, M[8]) + orn x9, x4, x8 // Begin aux function round 4 I(x,y,z)=((~z|x)^y) + add w6, w6, w27 // Add dest value + eor x9, x17, x9 // End aux function round 4 I(x,y,z)=((~z|x)^y) + add w15, w6, w15 // Add constant 0xfe2ce6e0 + add w6, w15, w9 // Add aux function result + ror w6, w6, #22 // Rotate left s=10 bits + movz x9, #0x4314 // .Load lower half of constant 0xa3014314 + movk x9, #0xa301, lsl #16 // .Load upper half of constant 0xa3014314 + add w15, w4, w6 // Add X parameter round 4 D=II(D, A, B, C, 0xfe2ce6e0, s=10, M[15]) + add w6, w8, w7 // Add dest value + orn x7, x15, x17 // Begin aux function round 4 I(x,y,z)=((~z|x)^y) + add w8, w6, w9 // Add constant 0xa3014314 + eor x9, x4, x7 // End aux function round 4 I(x,y,z)=((~z|x)^y) + add w6, w8, w9 // Add aux function result + ror w6, w6, #17 // Rotate left s=15 bits + movz x7, #0x11a1 // .Load lower half of constant 0x4e0811a1 + movk x7, #0x4e08, lsl #16 // .Load upper half of constant 0x4e0811a1 + add w8, w15, w6 // Add X parameter round 4 C=II(C, D, A, B, 0xa3014314, s=15, M[6]) + orn x9, x8, x4 // Begin aux function round 4 I(x,y,z)=((~z|x)^y) + add w6, w17, w26 // Add dest value + eor x17, x15, x9 // End aux function round 4 I(x,y,z)=((~z|x)^y) + add w9, w6, w7 // Add constant 0x4e0811a1 + add w7, w9, w17 // Add aux function result + ror w7, w7, #11 // Rotate left s=21 bits + movz x6, #0x7e82 // .Load lower half of constant 0xf7537e82 + movk x6, #0xf753, lsl #16 // .Load upper half of constant 0xf7537e82 + add w9, w8, w7 // Add X parameter round 4 B=II(B, C, D, A, 0x4e0811a1, s=21, M[13]) + add w17, w4, w14 // Add dest value + orn x7, x9, x15 // Begin aux function round 4 I(x,y,z)=((~z|x)^y) + add w14, w17, w6 // Add constant 0xf7537e82 + eor x4, x8, x7 // End aux function round 4 I(x,y,z)=((~z|x)^y) + add w17, w14, w4 // Add aux function result + ror w17, w17, #26 // Rotate left s=6 bits + movz x6, #0xf235 // .Load lower half of constant 0xbd3af235 + movk x6, #0xbd3a, lsl #16 // .Load upper half of constant 0xbd3af235 + add w7, w9, w17 // Add X parameter round 4 A=II(A, B, C, D, 0xf7537e82, s=6, M[4]) + orn x14, x7, x8 // Begin aux function round 4 I(x,y,z)=((~z|x)^y) + add w4, w15, w25 // Add dest value + eor x17, x9, x14 // End aux function round 4 I(x,y,z)=((~z|x)^y) + add w15, w4, w6 // Add constant 0xbd3af235 + add w16, w15, w17 // Add aux function result + ror w16, w16, #22 // Rotate left s=10 bits + movz x14, #0xd2bb // .Load lower half of constant 0x2ad7d2bb + movk x14, #0x2ad7, lsl #16 // .Load upper half of constant 0x2ad7d2bb + add w4, w7, w16 // Add X parameter round 4 D=II(D, A, B, C, 0xbd3af235, s=10, M[11]) + add w6, w8, w3 // Add dest value + orn x15, x4, x9 // Begin aux function round 4 I(x,y,z)=((~z|x)^y) + add w17, w6, w14 // Add constant 0x2ad7d2bb + eor x16, x7, x15 // End aux function round 4 I(x,y,z)=((~z|x)^y) + add w8, w17, w16 // Add aux function result + ror w8, w8, #17 // Rotate left s=15 bits + movz x3, #0xd391 // .Load lower half of constant 0xeb86d391 + movk x3, #0xeb86, lsl #16 // .Load upper half of constant 0xeb86d391 + add w14, w4, w8 // Add X parameter round 4 C=II(C, D, A, B, 0x2ad7d2bb, s=15, M[2]) + orn x6, x14, x7 // Begin aux function round 4 I(x,y,z)=((~z|x)^y) + add w15, w9, w24 // Add dest value + eor x17, x4, x6 // End aux function round 4 I(x,y,z)=((~z|x)^y) + add w16, w15, w3 // Add constant 0xeb86d391 + add w8, w16, w17 // Add aux function result + ror w8, w8, #11 // Rotate left s=21 bits + ldp w6, w15, [x0] // Reload MD5 state->A and state->B + ldp w5, w9, [x0, #8] // Reload MD5 state->C and state->D + add w3, w14, w8 // Add X parameter round 4 B=II(B, C, D, A, 0xeb86d391, s=21, M[9]) + add w13, w4, w9 // Add result of MD5 rounds to state->D + add w12, w14, w5 // Add result of MD5 rounds to state->C + add w10, w7, w6 // Add result of MD5 rounds to state->A + add w11, w3, w15 // Add result of MD5 rounds to state->B + stp w12, w13, [x0, #8] // Store MD5 states C,D + stp w10, w11, [x0] // Store MD5 states A,B + add x1, x1, #64 // Increment data pointer + subs w2, w2, #1 // Decrement block counter + b.ne ossl_md5_blocks_loop + + ldp x21,x22,[sp,#16] + ldp x23,x24,[sp,#32] + ldp x25,x26,[sp,#48] + ldp x27,x28,[sp,#64] + ldp x19,x20,[sp],#80 + ret + diff --git a/deps/openssl/config/archs/linux-aarch64/asm_avx2/crypto/modes/aes-gcm-armv8-unroll8_64.S b/deps/openssl/config/archs/linux-aarch64/asm_avx2/crypto/modes/aes-gcm-armv8-unroll8_64.S new file mode 100644 index 00000000000000..a53d209f2cda18 --- /dev/null +++ b/deps/openssl/config/archs/linux-aarch64/asm_avx2/crypto/modes/aes-gcm-armv8-unroll8_64.S @@ -0,0 +1,8487 @@ +#include "arm_arch.h" + +#if __ARM_MAX_ARCH__>=8 +.arch armv8-a+crypto +.text +.globl unroll8_eor3_aes_gcm_enc_128_kernel +.type unroll8_eor3_aes_gcm_enc_128_kernel,%function +.align 4 +unroll8_eor3_aes_gcm_enc_128_kernel: + AARCH64_VALID_CALL_TARGET + cbz x1, .L128_enc_ret + stp d8, d9, [sp, #-80]! + lsr x9, x1, #3 + mov x16, x4 + mov x8, x5 + stp d10, d11, [sp, #16] + stp d12, d13, [sp, #32] + stp d14, d15, [sp, #48] + mov x5, #0xc200000000000000 + stp x5, xzr, [sp, #64] + add x10, sp, #64 + + mov x15, #0x100000000 //set up counter increment + movi v31.16b, #0x0 + mov v31.d[1], x15 + mov x5, x9 + ld1 { v0.16b}, [x16] //CTR block 0 + + sub x5, x5, #1 //byte_len - 1 + + and x5, x5, #0xffffffffffffff80 //number of bytes to be processed in main loop (at least 1 byte must be handled by tail) + + rev32 v30.16b, v0.16b //set up reversed counter + + add v30.4s, v30.4s, v31.4s //CTR block 0 + + rev32 v1.16b, v30.16b //CTR block 1 + add v30.4s, v30.4s, v31.4s //CTR block 1 + + rev32 v2.16b, v30.16b //CTR block 2 + add v30.4s, v30.4s, v31.4s //CTR block 2 + + rev32 v3.16b, v30.16b //CTR block 3 + add v30.4s, v30.4s, v31.4s //CTR block 3 + + rev32 v4.16b, v30.16b //CTR block 4 + add v30.4s, v30.4s, v31.4s //CTR block 4 + + rev32 v5.16b, v30.16b //CTR block 5 + add v30.4s, v30.4s, v31.4s //CTR block 5 + ldp q26, q27, [x8, #0] //load rk0, rk1 + + rev32 v6.16b, v30.16b //CTR block 6 + add v30.4s, v30.4s, v31.4s //CTR block 6 + + rev32 v7.16b, v30.16b //CTR block 7 + add v30.4s, v30.4s, v31.4s //CTR block 7 + + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 4 - round 0 + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 6 - round 0 + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 3 - round 0 + + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 0 - round 0 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 1 - round 0 + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 2 - round 0 + + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 7 - round 0 + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 5 - round 0 + ldp q28, q26, [x8, #32] //load rk2, rk3 + + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 3 - round 1 + + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 7 - round 1 + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 5 - round 1 + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 4 - round 1 + + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 2 - round 1 + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 6 - round 1 + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 0 - round 1 + + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 5 - round 2 + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 1 - round 1 + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 0 - round 2 + + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 2 - round 2 + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 3 - round 2 + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 7 - round 2 + + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 1 - round 2 + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 6 - round 2 + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 4 - round 2 + + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 2 - round 3 + + ldp q27, q28, [x8, #64] //load rk4, rk5 + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 5 - round 3 + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 0 - round 3 + + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 4 - round 3 + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 3 - round 3 + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 6 - round 3 + + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 7 - round 3 + + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 6 - round 4 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 1 - round 3 + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 5 - round 4 + + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 7 - round 4 + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 4 - round 4 + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 0 - round 4 + + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 1 - round 4 + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 2 - round 4 + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 3 - round 4 + + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 7 - round 5 + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 0 - round 5 + ldp q26, q27, [x8, #96] //load rk6, rk7 + + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 1 - round 5 + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 3 - round 5 + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 2 - round 5 + + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 4 - round 5 + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 5 - round 5 + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 6 - round 5 + + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 4 - round 6 + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 3 - round 6 + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 2 - round 6 + + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 7 - round 6 + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 6 - round 6 + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 5 - round 6 + + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 0 - round 6 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 1 - round 6 + ldp q28, q26, [x8, #128] //load rk8, rk9 + + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 5 - round 7 + + ld1 { v19.16b}, [x3] + ext v19.16b, v19.16b, v19.16b, #8 + rev64 v19.16b, v19.16b + + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 7 - round 7 + + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 4 - round 7 + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 3 - round 7 + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 6 - round 7 + + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 1 - round 7 + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 2 - round 7 + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 0 - round 7 + + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 8 + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 8 + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 8 + + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 8 + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 8 + ldr q27, [x8, #160] //load rk10 + + aese v3.16b, v26.16b //AES block 8k+11 - round 9 + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 8 + aese v2.16b, v26.16b //AES block 8k+10 - round 9 + + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 8 + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 8 + aese v6.16b, v26.16b //AES block 8k+14 - round 9 + + aese v4.16b, v26.16b //AES block 8k+12 - round 9 + add x5, x5, x0 + aese v0.16b, v26.16b //AES block 8k+8 - round 9 + + aese v7.16b, v26.16b //AES block 8k+15 - round 9 + aese v5.16b, v26.16b //AES block 8k+13 - round 9 + aese v1.16b, v26.16b //AES block 8k+9 - round 9 + + add x4, x0, x1, lsr #3 //end_input_ptr + cmp x0, x5 //check if we have <= 8 blocks + b.ge .L128_enc_tail //handle tail + + ldp q8, q9, [x0], #32 //AES block 0, 1 - load plaintext + + ldp q10, q11, [x0], #32 //AES block 2, 3 - load plaintext + + ldp q12, q13, [x0], #32 //AES block 4, 5 - load plaintext + + ldp q14, q15, [x0], #32 //AES block 6, 7 - load plaintext + cmp x0, x5 //check if we have <= 8 blocks + +.inst 0xce006d08 //eor3 v8.16b, v8.16b, v0.16b, v27.16b //AES block 0 - result + rev32 v0.16b, v30.16b //CTR block 8 + add v30.4s, v30.4s, v31.4s //CTR block 8 + +.inst 0xce016d29 //eor3 v9.16b, v9.16b, v1.16b, v27.16b //AES block 1 - result + stp q8, q9, [x2], #32 //AES block 0, 1 - store result + + rev32 v1.16b, v30.16b //CTR block 9 +.inst 0xce056dad //eor3 v13.16b, v13.16b, v5.16b, v27.16b //AES block 5 - result + add v30.4s, v30.4s, v31.4s //CTR block 9 + +.inst 0xce026d4a //eor3 v10.16b, v10.16b, v2.16b, v27.16b //AES block 2 - result +.inst 0xce066dce //eor3 v14.16b, v14.16b, v6.16b, v27.16b //AES block 6 - result +.inst 0xce046d8c //eor3 v12.16b, v12.16b, v4.16b, v27.16b //AES block 4 - result + + rev32 v2.16b, v30.16b //CTR block 10 + add v30.4s, v30.4s, v31.4s //CTR block 10 + +.inst 0xce036d6b //eor3 v11.16b, v11.16b, v3.16b, v27.16b //AES block 3 - result +.inst 0xce076def //eor3 v15.16b, v15.16b, v7.16b,v27.16b //AES block 7 - result + stp q10, q11, [x2], #32 //AES block 2, 3 - store result + + rev32 v3.16b, v30.16b //CTR block 11 + add v30.4s, v30.4s, v31.4s //CTR block 11 + stp q12, q13, [x2], #32 //AES block 4, 5 - store result + + stp q14, q15, [x2], #32 //AES block 6, 7 - store result + + rev32 v4.16b, v30.16b //CTR block 12 + add v30.4s, v30.4s, v31.4s //CTR block 12 + b.ge .L128_enc_prepretail //do prepretail + +.L128_enc_main_loop: //main loop start + rev32 v5.16b, v30.16b //CTR block 8k+13 + ldr q20, [x3, #128] //load h5l | h5h + ext v20.16b, v20.16b, v20.16b, #8 + ldr q22, [x3, #160] //load h6l | h6h + ext v22.16b, v22.16b, v22.16b, #8 + add v30.4s, v30.4s, v31.4s //CTR block 8k+13 + + rev64 v9.16b, v9.16b //GHASH block 8k+1 + rev64 v8.16b, v8.16b //GHASH block 8k + ldr q23, [x3, #176] //load h7l | h7h + ext v23.16b, v23.16b, v23.16b, #8 + ldr q25, [x3, #208] //load h8l | h8h + ext v25.16b, v25.16b, v25.16b, #8 + + rev32 v6.16b, v30.16b //CTR block 8k+14 + add v30.4s, v30.4s, v31.4s //CTR block 8k+14 + ext v19.16b, v19.16b, v19.16b, #8 //PRE 0 + + ldr q21, [x3, #144] //load h6k | h5k + ldr q24, [x3, #192] //load h8k | h7k + rev64 v13.16b, v13.16b //GHASH block 8k+5 (t0, t1, t2 and t3 free) + rev64 v11.16b, v11.16b //GHASH block 8k+3 + + ldp q26, q27, [x8, #0] //load rk0, rk1 + eor v8.16b, v8.16b, v19.16b //PRE 1 + rev32 v7.16b, v30.16b //CTR block 8k+15 + + rev64 v15.16b, v15.16b //GHASH block 8k+7 (t0, t1, t2 and t3 free) + + pmull2 v16.1q, v9.2d, v23.2d //GHASH block 8k+1 - high + rev64 v10.16b, v10.16b //GHASH block 8k+2 + pmull2 v17.1q, v8.2d, v25.2d //GHASH block 8k - high + + pmull v23.1q, v9.1d, v23.1d //GHASH block 8k+1 - low + trn1 v18.2d, v9.2d, v8.2d //GHASH block 8k, 8k+1 - mid + pmull v19.1q, v8.1d, v25.1d //GHASH block 8k - low + + trn2 v8.2d, v9.2d, v8.2d //GHASH block 8k, 8k+1 - mid + pmull2 v29.1q, v10.2d, v22.2d //GHASH block 8k+2 - high + pmull2 v9.1q, v11.2d, v20.2d //GHASH block 8k+3 - high + + eor v19.16b, v19.16b, v23.16b //GHASH block 8k+1 - low + ldr q23, [x3, #80] //load h3l | h3h + ext v23.16b, v23.16b, v23.16b, #8 + ldr q25, [x3, #112] //load h3l | h3h + ext v25.16b, v25.16b, v25.16b, #8 + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 0 + + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 0 + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 0 + eor v17.16b, v17.16b, v16.16b //GHASH block 8k+1 - high + + add v30.4s, v30.4s, v31.4s //CTR block 8k+15 + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 0 + eor v8.16b, v8.16b, v18.16b //GHASH block 8k, 8k+1 - mid + + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 0 + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 1 + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 0 + + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 1 + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 0 + pmull v22.1q, v10.1d, v22.1d //GHASH block 8k+2 - low + + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 1 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 0 + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 1 + +.inst 0xce1d2631 //eor3 v17.16b, v17.16b, v29.16b,v9.16b //GHASH block 8k+2, 8k+3 - high + trn1 v29.2d, v11.2d, v10.2d //GHASH block 8k+2, 8k+3 - mid + trn2 v10.2d, v11.2d, v10.2d //GHASH block 8k+2, 8k+3 - mid + + ldp q28, q26, [x8, #32] //load rk2, rk3 + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 1 + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 1 + + pmull v20.1q, v11.1d, v20.1d //GHASH block 8k+3 - low + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 1 + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 1 + + pmull2 v18.1q, v8.2d, v24.2d //GHASH block 8k - mid + eor v10.16b, v10.16b, v29.16b //GHASH block 8k+2, 8k+3 - mid + pmull v24.1q, v8.1d, v24.1d //GHASH block 8k+1 - mid + + rev64 v14.16b, v14.16b //GHASH block 8k+6 (t0, t1, and t2 free) +.inst 0xce165273 //eor3 v19.16b, v19.16b, v22.16b, v20.16b //GHASH block 8k+2, 8k+3 - low + + pmull2 v29.1q, v10.2d, v21.2d //GHASH block 8k+2 - mid + eor v18.16b, v18.16b, v24.16b //GHASH block 8k+1 - mid + pmull v21.1q, v10.1d, v21.1d //GHASH block 8k+3 - mid + + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 2 + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 2 + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 2 + + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 2 +.inst 0xce157652 //eor3 v18.16b, v18.16b, v21.16b, v29.16b //GHASH block 8k+2, 8k+3 - mid + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 2 + + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 2 + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 2 + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 2 + + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 3 + ldr q21, [x3, #48] //load h2k | h1k + ldr q24, [x3, #96] //load h4k | h3k + rev64 v12.16b, v12.16b //GHASH block 8k+4 (t0, t1, and t2 free) + + ldp q27, q28, [x8, #64] //load rk4, rk5 + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 3 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 3 + + ldr q20, [x3, #32] //load h1l | h1h + ext v20.16b, v20.16b, v20.16b, #8 + ldr q22, [x3, #64] //load h1l | h1h + ext v22.16b, v22.16b, v22.16b, #8 + pmull2 v8.1q, v12.2d, v25.2d //GHASH block 8k+4 - high + pmull v25.1q, v12.1d, v25.1d //GHASH block 8k+4 - low + + trn1 v16.2d, v13.2d, v12.2d //GHASH block 8k+4, 8k+5 - mid + trn2 v12.2d, v13.2d, v12.2d //GHASH block 8k+4, 8k+5 - mid + + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 3 + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 3 + + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 3 + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 3 + + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 3 + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 4 + + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 4 + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 4 + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 4 + + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 4 + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 4 + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 4 + + pmull2 v10.1q, v13.2d, v23.2d //GHASH block 8k+5 - high + eor v12.16b, v12.16b, v16.16b //GHASH block 8k+4, 8k+5 - mid + pmull v23.1q, v13.1d, v23.1d //GHASH block 8k+5 - low + + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 4 + ldp q26, q27, [x8, #96] //load rk6, rk7 + trn1 v13.2d, v15.2d, v14.2d //GHASH block 8k+6, 8k+7 - mid + + pmull2 v16.1q, v12.2d, v24.2d //GHASH block 8k+4 - mid + pmull v24.1q, v12.1d, v24.1d //GHASH block 8k+5 - mid + pmull2 v11.1q, v14.2d, v22.2d //GHASH block 8k+6 - high + + pmull2 v12.1q, v15.2d, v20.2d //GHASH block 8k+7 - high + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 5 + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 5 + + pmull v22.1q, v14.1d, v22.1d //GHASH block 8k+6 - low +.inst 0xce082a31 //eor3 v17.16b, v17.16b, v8.16b, v10.16b //GHASH block 8k+4, 8k+5 - high + trn2 v14.2d, v15.2d, v14.2d //GHASH block 8k+6, 8k+7 - mid + +.inst 0xce195e73 //eor3 v19.16b, v19.16b, v25.16b, v23.16b //GHASH block 8k+4, 8k+5 - low + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 5 + + eor v14.16b, v14.16b, v13.16b //GHASH block 8k+6, 8k+7 - mid + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 5 + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 5 + + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 5 + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 5 + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 5 + +.inst 0xce184252 //eor3 v18.16b, v18.16b, v24.16b, v16.16b //GHASH block 8k+4, 8k+5 - mid + ldr d16, [x10] //MODULO - load modulo constant + pmull v20.1q, v15.1d, v20.1d //GHASH block 8k+7 - low + + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 6 + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 6 + + pmull2 v13.1q, v14.2d, v21.2d //GHASH block 8k+6 - mid + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 6 + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 6 + + pmull v21.1q, v14.1d, v21.1d //GHASH block 8k+7 - mid +.inst 0xce165273 //eor3 v19.16b, v19.16b, v22.16b, v20.16b //GHASH block 8k+6, 8k+7 - low + ldp q8, q9, [x0], #32 //AES block 8k+8, 8k+9 - load plaintext + + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 6 + rev32 v20.16b, v30.16b //CTR block 8k+16 + add v30.4s, v30.4s, v31.4s //CTR block 8k+16 + + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 6 + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 6 + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 6 + +.inst 0xce153652 //eor3 v18.16b, v18.16b, v21.16b, v13.16b //GHASH block 8k+6, 8k+7 - mid + ldp q28, q26, [x8, #128] //load rk8, rk9 +.inst 0xce0b3231 //eor3 v17.16b, v17.16b, v11.16b, v12.16b //GHASH block 8k+6, 8k+7 - high + + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 7 + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 7 + ldp q10, q11, [x0], #32 //AES block 8k+10, 8k+11 - load plaintext + + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 7 + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 7 + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 7 + + pmull v21.1q, v17.1d, v16.1d //MODULO - top 64b align with mid + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 7 + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 7 + + rev32 v22.16b, v30.16b //CTR block 8k+17 + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 7 + + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 8 + ldp q12, q13, [x0], #32 //AES block 8k+12, 8k+13 - load plaintext + add v30.4s, v30.4s, v31.4s //CTR block 8k+17 + + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 8 + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 8 + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 8 + + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 8 +.inst 0xce114e52 //eor3 v18.16b, v18.16b, v17.16b, v19.16b //MODULO - karatsuba tidy up + ldr q27, [x8, #160] //load rk10 + + ext v29.16b, v17.16b, v17.16b, #8 //MODULO - other top alignment + rev32 v23.16b, v30.16b //CTR block 8k+18 + add v30.4s, v30.4s, v31.4s //CTR block 8k+18 + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 8 + + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 8 +.inst 0xce1d5652 //eor3 v18.16b, v18.16b, v29.16b, v21.16b //MODULO - fold into mid + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 8 + + aese v2.16b, v26.16b //AES block 8k+10 - round 9 + aese v4.16b, v26.16b //AES block 8k+12 - round 9 + aese v1.16b, v26.16b //AES block 8k+9 - round 9 + + ldp q14, q15, [x0], #32 //AES block 8k+14, 8k+15 - load plaintext + rev32 v25.16b, v30.16b //CTR block 8k+19 + add v30.4s, v30.4s, v31.4s //CTR block 8k+19 + + cmp x0, x5 //.LOOP CONTROL +.inst 0xce046d8c //eor3 v12.16b, v12.16b, v4.16b, v27.16b //AES block 4 - result + aese v7.16b, v26.16b //AES block 8k+15 - round 9 + + aese v6.16b, v26.16b //AES block 8k+14 - round 9 + aese v3.16b, v26.16b //AES block 8k+11 - round 9 + +.inst 0xce026d4a //eor3 v10.16b, v10.16b, v2.16b, v27.16b //AES block 8k+10 - result + + mov v2.16b, v23.16b //CTR block 8k+18 + aese v0.16b, v26.16b //AES block 8k+8 - round 9 + + rev32 v4.16b, v30.16b //CTR block 8k+20 + add v30.4s, v30.4s, v31.4s //CTR block 8k+20 + +.inst 0xce076def //eor3 v15.16b, v15.16b, v7.16b, v27.16b //AES block 7 - result + aese v5.16b, v26.16b //AES block 8k+13 - round 9 + pmull v17.1q, v18.1d, v16.1d //MODULO - mid 64b align with low + +.inst 0xce016d29 //eor3 v9.16b, v9.16b, v1.16b, v27.16b //AES block 8k+9 - result +.inst 0xce036d6b //eor3 v11.16b, v11.16b, v3.16b, v27.16b //AES block 8k+11 - result + mov v3.16b, v25.16b //CTR block 8k+19 + + ext v21.16b, v18.16b, v18.16b, #8 //MODULO - other mid alignment +.inst 0xce056dad //eor3 v13.16b, v13.16b, v5.16b, v27.16b //AES block 5 - result + mov v1.16b, v22.16b //CTR block 8k+17 + +.inst 0xce006d08 //eor3 v8.16b, v8.16b, v0.16b, v27.16b //AES block 8k+8 - result + mov v0.16b, v20.16b //CTR block 8k+16 + stp q8, q9, [x2], #32 //AES block 8k+8, 8k+9 - store result + + stp q10, q11, [x2], #32 //AES block 8k+10, 8k+11 - store result +.inst 0xce066dce //eor3 v14.16b, v14.16b, v6.16b, v27.16b //AES block 6 - result + + stp q12, q13, [x2], #32 //AES block 8k+12, 8k+13 - store result +.inst 0xce115673 //eor3 v19.16b, v19.16b, v17.16b, v21.16b //MODULO - fold into low + + stp q14, q15, [x2], #32 //AES block 8k+14, 8k+15 - store result + b.lt .L128_enc_main_loop + +.L128_enc_prepretail: //PREPRETAIL + rev32 v5.16b, v30.16b //CTR block 8k+13 + ldr q23, [x3, #176] //load h7l | h7h + ext v23.16b, v23.16b, v23.16b, #8 + ldr q25, [x3, #208] //load h8l | h8h + ext v25.16b, v25.16b, v25.16b, #8 + ext v19.16b, v19.16b, v19.16b, #8 //PRE 0 + + ldr q20, [x3, #128] //load h5l | h5h + ext v20.16b, v20.16b, v20.16b, #8 + ldr q22, [x3, #160] //load h6l | h6h + ext v22.16b, v22.16b, v22.16b, #8 + rev64 v8.16b, v8.16b //GHASH block 8k + rev64 v9.16b, v9.16b //GHASH block 8k+1 + + ldr q21, [x3, #144] //load h6k | h5k + ldr q24, [x3, #192] //load h6k | h5k + add v30.4s, v30.4s, v31.4s //CTR block 8k+13 + rev64 v11.16b, v11.16b //GHASH block 8k+3 + + rev64 v10.16b, v10.16b //GHASH block 8k+2 + eor v8.16b, v8.16b, v19.16b //PRE 1 + + rev32 v6.16b, v30.16b //CTR block 8k+14 + + pmull2 v16.1q, v9.2d, v23.2d //GHASH block 8k+1 - high + pmull v19.1q, v8.1d, v25.1d //GHASH block 8k - low + pmull2 v17.1q, v8.2d, v25.2d //GHASH block 8k - high + + rev64 v13.16b, v13.16b //GHASH block 8k+5 (t0, t1, t2 and t3 free) + trn1 v18.2d, v9.2d, v8.2d //GHASH block 8k, 8k+1 - mid + + pmull v23.1q, v9.1d, v23.1d //GHASH block 8k+1 - low + eor v17.16b, v17.16b, v16.16b //GHASH block 8k+1 - high + trn2 v8.2d, v9.2d, v8.2d //GHASH block 8k, 8k+1 - mid + + eor v19.16b, v19.16b, v23.16b //GHASH block 8k+1 - low + eor v8.16b, v8.16b, v18.16b //GHASH block 8k, 8k+1 - mid + + ldp q26, q27, [x8, #0] //load rk0, rk1 + add v30.4s, v30.4s, v31.4s //CTR block 8k+14 + + pmull2 v18.1q, v8.2d, v24.2d //GHASH block 8k - mid + pmull v24.1q, v8.1d, v24.1d //GHASH block 8k+1 - mid + + rev64 v12.16b, v12.16b //GHASH block 8k+4 (t0, t1, and t2 free) + rev64 v15.16b, v15.16b //GHASH block 8k+7 (t0, t1, t2 and t3 free) + + eor v18.16b, v18.16b, v24.16b //GHASH block 8k+1 - mid + + rev32 v7.16b, v30.16b //CTR block 8k+15 + + rev64 v14.16b, v14.16b //GHASH block 8k+6 (t0, t1, and t2 free) + + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 0 + + pmull2 v9.1q, v11.2d, v20.2d //GHASH block 8k+3 - high + pmull2 v29.1q, v10.2d, v22.2d //GHASH block 8k+2 - high + + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 0 + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 0 + + pmull v22.1q, v10.1d, v22.1d //GHASH block 8k+2 - low + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 0 + +.inst 0xce1d2631 //eor3 v17.16b, v17.16b, v29.16b, v9.16b //GHASH block 8k+2, 8k+3 - high + trn1 v29.2d, v11.2d, v10.2d //GHASH block 8k+2, 8k+3 - mid + trn2 v10.2d, v11.2d, v10.2d //GHASH block 8k+2, 8k+3 - mid + + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 0 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 0 + + eor v10.16b, v10.16b, v29.16b //GHASH block 8k+2, 8k+3 - mid + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 0 + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 0 + + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 1 + pmull v20.1q, v11.1d, v20.1d //GHASH block 8k+3 - low + + ldr q23, [x3, #80] //load h3l | h3h + ext v23.16b, v23.16b, v23.16b, #8 + ldr q25, [x3, #112] //load h4l | h4h + ext v25.16b, v25.16b, v25.16b, #8 + + ldp q28, q26, [x8, #32] //load rk2, rk3 + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 1 + pmull2 v29.1q, v10.2d, v21.2d //GHASH block 8k+2 - mid + +.inst 0xce165273 //eor3 v19.16b, v19.16b, v22.16b, v20.16b //GHASH block 8k+2, 8k+3 - low + pmull v21.1q, v10.1d, v21.1d //GHASH block 8k+3 - mid + + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 1 + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 1 + +.inst 0xce157652 //eor3 v18.16b, v18.16b, v21.16b, v29.16b //GHASH block 8k+2, 8k+3 - mid + ldr q21, [x3, #48] //load h2k | h1k + ldr q24, [x3, #96] //load h4k | h3k + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 1 + + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 1 + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 1 + + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 2 + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 2 + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 2 + + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 2 + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 1 + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 2 + + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 3 + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 2 + + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 2 + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 2 + ldp q27, q28, [x8, #64] //load rk4, rk5 + + ldr q20, [x3, #32] //load h1l | h1h + ext v20.16b, v20.16b, v20.16b, #8 + ldr q22, [x3, #64] //load h1l | h1h + ext v22.16b, v22.16b, v22.16b, #8 + trn1 v16.2d, v13.2d, v12.2d //GHASH block 8k+4, 8k+5 - mid + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 3 + + pmull2 v8.1q, v12.2d, v25.2d //GHASH block 8k+4 - high + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 3 + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 3 + + pmull v25.1q, v12.1d, v25.1d //GHASH block 8k+4 - low + trn2 v12.2d, v13.2d, v12.2d //GHASH block 8k+4, 8k+5 - mid + pmull2 v10.1q, v13.2d, v23.2d //GHASH block 8k+5 - high + + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 3 + add v30.4s, v30.4s, v31.4s //CTR block 8k+15 + + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 3 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 3 + eor v12.16b, v12.16b, v16.16b //GHASH block 8k+4, 8k+5 - mid + + pmull v23.1q, v13.1d, v23.1d //GHASH block 8k+5 - low + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 3 + pmull2 v11.1q, v14.2d, v22.2d //GHASH block 8k+6 - high + + trn1 v13.2d, v15.2d, v14.2d //GHASH block 8k+6, 8k+7 - mid + pmull v22.1q, v14.1d, v22.1d //GHASH block 8k+6 - low + trn2 v14.2d, v15.2d, v14.2d //GHASH block 8k+6, 8k+7 - mid + + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 4 + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 4 +.inst 0xce082a31 //eor3 v17.16b, v17.16b, v8.16b, v10.16b //GHASH block 8k+4, 8k+5 - high + +.inst 0xce195e73 //eor3 v19.16b, v19.16b, v25.16b, v23.16b //GHASH block 8k+4, 8k+5 - low + eor v14.16b, v14.16b, v13.16b //GHASH block 8k+6, 8k+7 - mid + pmull2 v16.1q, v12.2d, v24.2d //GHASH block 8k+4 - mid + + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 5 + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 4 + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 4 + + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 4 + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 4 + + pmull v24.1q, v12.1d, v24.1d //GHASH block 8k+5 - mid + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 4 + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 4 + + pmull2 v12.1q, v15.2d, v20.2d //GHASH block 8k+7 - high + ldp q26, q27, [x8, #96] //load rk6, rk7 + pmull v20.1q, v15.1d, v20.1d //GHASH block 8k+7 - low + +.inst 0xce184252 //eor3 v18.16b, v18.16b, v24.16b, v16.16b //GHASH block 8k+4, 8k+5 - mid + pmull2 v13.1q, v14.2d, v21.2d //GHASH block 8k+6 - mid + pmull v21.1q, v14.1d, v21.1d //GHASH block 8k+7 - mid + + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 5 + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 5 + ldr d16, [x10] //MODULO - load modulo constant + + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 5 + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 5 + +.inst 0xce0b3231 //eor3 v17.16b, v17.16b, v11.16b, v12.16b //GHASH block 8k+6, 8k+7 - high + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 5 + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 5 + + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 5 + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 6 + + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 6 + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 6 + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 6 + + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 6 +.inst 0xce165273 //eor3 v19.16b, v19.16b, v22.16b, v20.16b //GHASH block 8k+6, 8k+7 - low +.inst 0xce153652 //eor3 v18.16b, v18.16b, v21.16b, v13.16b //GHASH block 8k+6, 8k+7 - mid + + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 6 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 6 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 6 + + pmull v21.1q, v17.1d, v16.1d //MODULO - top 64b align with mid +.inst 0xce114e52 //eor3 v18.16b, v18.16b, v17.16b, v19.16b //MODULO - karatsuba tidy up + ldp q28, q26, [x8, #128] //load rk8, rk9 + + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 7 + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 7 + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 7 + ext v29.16b, v17.16b, v17.16b, #8 //MODULO - other top alignment + + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 7 + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 7 +.inst 0xce1d5652 //eor3 v18.16b, v18.16b, v29.16b, v21.16b //MODULO - fold into mid + + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 7 + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 7 + + pmull v17.1q, v18.1d, v16.1d //MODULO - mid 64b align with low + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 7 + + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 8 + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 8 + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 8 + ext v18.16b, v18.16b, v18.16b, #8 //MODULO - other mid alignment + + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 8 +.inst 0xce114a73 //eor3 v19.16b, v19.16b, v17.16b, v18.16b //MODULO - fold into low + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 8 + + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 8 + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 8 + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 8 + + ldr q27, [x8, #160] //load rk10 + aese v6.16b, v26.16b //AES block 8k+14 - round 9 + aese v2.16b, v26.16b //AES block 8k+10 - round 9 + + aese v0.16b, v26.16b //AES block 8k+8 - round 9 + aese v1.16b, v26.16b //AES block 8k+9 - round 9 + + aese v3.16b, v26.16b //AES block 8k+11 - round 9 + aese v5.16b, v26.16b //AES block 8k+13 - round 9 + + aese v4.16b, v26.16b //AES block 8k+12 - round 9 + aese v7.16b, v26.16b //AES block 8k+15 - round 9 +.L128_enc_tail: //TAIL + + sub x5, x4, x0 //main_end_input_ptr is number of bytes left to process + ldr q8, [x0], #16 //AES block 8k+8 - load plaintext + + mov v29.16b, v27.16b + ldp q20, q21, [x3, #128] //load h5l | h5h + ext v20.16b, v20.16b, v20.16b, #8 + +.inst 0xce007509 //eor3 v9.16b, v8.16b, v0.16b, v29.16b //AES block 8k+8 - result + ext v16.16b, v19.16b, v19.16b, #8 //prepare final partial tag + ldp q22, q23, [x3, #160] //load h6l | h6h + ext v22.16b, v22.16b, v22.16b, #8 + ext v23.16b, v23.16b, v23.16b, #8 + + ldp q24, q25, [x3, #192] //load h8k | h7k + ext v25.16b, v25.16b, v25.16b, #8 + cmp x5, #112 + b.gt .L128_enc_blocks_more_than_7 + + mov v7.16b, v6.16b + mov v6.16b, v5.16b + movi v17.8b, #0 + + cmp x5, #96 + sub v30.4s, v30.4s, v31.4s + mov v5.16b, v4.16b + + mov v4.16b, v3.16b + mov v3.16b, v2.16b + mov v2.16b, v1.16b + + movi v19.8b, #0 + movi v18.8b, #0 + b.gt .L128_enc_blocks_more_than_6 + + mov v7.16b, v6.16b + cmp x5, #80 + + sub v30.4s, v30.4s, v31.4s + mov v6.16b, v5.16b + mov v5.16b, v4.16b + + mov v4.16b, v3.16b + mov v3.16b, v1.16b + b.gt .L128_enc_blocks_more_than_5 + + cmp x5, #64 + sub v30.4s, v30.4s, v31.4s + + mov v7.16b, v6.16b + mov v6.16b, v5.16b + + mov v5.16b, v4.16b + mov v4.16b, v1.16b + b.gt .L128_enc_blocks_more_than_4 + + mov v7.16b, v6.16b + sub v30.4s, v30.4s, v31.4s + mov v6.16b, v5.16b + + mov v5.16b, v1.16b + cmp x5, #48 + b.gt .L128_enc_blocks_more_than_3 + + sub v30.4s, v30.4s, v31.4s + mov v7.16b, v6.16b + mov v6.16b, v1.16b + + cmp x5, #32 + ldr q24, [x3, #96] //load h4k | h3k + b.gt .L128_enc_blocks_more_than_2 + + cmp x5, #16 + + sub v30.4s, v30.4s, v31.4s + mov v7.16b, v1.16b + b.gt .L128_enc_blocks_more_than_1 + + ldr q21, [x3, #48] //load h2k | h1k + sub v30.4s, v30.4s, v31.4s + b .L128_enc_blocks_less_than_1 +.L128_enc_blocks_more_than_7: //blocks left > 7 + st1 { v9.16b}, [x2], #16 //AES final-7 block - store result + + rev64 v8.16b, v9.16b //GHASH final-7 block + ldr q9, [x0], #16 //AES final-6 block - load plaintext + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + + ins v27.d[0], v8.d[1] //GHASH final-7 block - mid + + pmull2 v17.1q, v8.2d, v25.2d //GHASH final-7 block - high + + ins v18.d[0], v24.d[1] //GHASH final-7 block - mid + + eor v27.8b, v27.8b, v8.8b //GHASH final-7 block - mid + movi v16.8b, #0 //suppress further partial tag feed in + +.inst 0xce017529 //eor3 v9.16b, v9.16b, v1.16b, v29.16b //AES final-6 block - result + + pmull v18.1q, v27.1d, v18.1d //GHASH final-7 block - mid + pmull v19.1q, v8.1d, v25.1d //GHASH final-7 block - low +.L128_enc_blocks_more_than_6: //blocks left > 6 + + st1 { v9.16b}, [x2], #16 //AES final-6 block - store result + + rev64 v8.16b, v9.16b //GHASH final-6 block + ldr q9, [x0], #16 //AES final-5 block - load plaintext + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + + ins v27.d[0], v8.d[1] //GHASH final-6 block - mid + +.inst 0xce027529 //eor3 v9.16b, v9.16b, v2.16b, v29.16b //AES final-5 block - result + pmull v26.1q, v8.1d, v23.1d //GHASH final-6 block - low + + eor v27.8b, v27.8b, v8.8b //GHASH final-6 block - mid + movi v16.8b, #0 //suppress further partial tag feed in + + pmull v27.1q, v27.1d, v24.1d //GHASH final-6 block - mid + pmull2 v28.1q, v8.2d, v23.2d //GHASH final-6 block - high + + eor v19.16b, v19.16b, v26.16b //GHASH final-6 block - low + + eor v18.16b, v18.16b, v27.16b //GHASH final-6 block - mid + eor v17.16b, v17.16b, v28.16b //GHASH final-6 block - high +.L128_enc_blocks_more_than_5: //blocks left > 5 + + st1 { v9.16b}, [x2], #16 //AES final-5 block - store result + + rev64 v8.16b, v9.16b //GHASH final-5 block + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + + ins v27.d[0], v8.d[1] //GHASH final-5 block - mid + ldr q9, [x0], #16 //AES final-4 block - load plaintext + pmull2 v28.1q, v8.2d, v22.2d //GHASH final-5 block - high + + eor v17.16b, v17.16b, v28.16b //GHASH final-5 block - high + + eor v27.8b, v27.8b, v8.8b //GHASH final-5 block - mid + + ins v27.d[1], v27.d[0] //GHASH final-5 block - mid + +.inst 0xce037529 //eor3 v9.16b, v9.16b, v3.16b, v29.16b //AES final-4 block - result + pmull v26.1q, v8.1d, v22.1d //GHASH final-5 block - low + movi v16.8b, #0 //suppress further partial tag feed in + + pmull2 v27.1q, v27.2d, v21.2d //GHASH final-5 block - mid + eor v19.16b, v19.16b, v26.16b //GHASH final-5 block - low + + eor v18.16b, v18.16b, v27.16b //GHASH final-5 block - mid +.L128_enc_blocks_more_than_4: //blocks left > 4 + + st1 { v9.16b}, [x2], #16 //AES final-4 block - store result + + rev64 v8.16b, v9.16b //GHASH final-4 block + + ldr q9, [x0], #16 //AES final-3 block - load plaintext + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + + ins v27.d[0], v8.d[1] //GHASH final-4 block - mid + movi v16.8b, #0 //suppress further partial tag feed in + pmull2 v28.1q, v8.2d, v20.2d //GHASH final-4 block - high + + eor v27.8b, v27.8b, v8.8b //GHASH final-4 block - mid + + pmull v26.1q, v8.1d, v20.1d //GHASH final-4 block - low + + eor v17.16b, v17.16b, v28.16b //GHASH final-4 block - high + pmull v27.1q, v27.1d, v21.1d //GHASH final-4 block - mid + + eor v19.16b, v19.16b, v26.16b //GHASH final-4 block - low + +.inst 0xce047529 //eor3 v9.16b, v9.16b, v4.16b, v29.16b //AES final-3 block - result + eor v18.16b, v18.16b, v27.16b //GHASH final-4 block - mid +.L128_enc_blocks_more_than_3: //blocks left > 3 + + st1 { v9.16b}, [x2], #16 //AES final-3 block - store result + + ldr q25, [x3, #112] //load h4l | h4h + ext v25.16b, v25.16b, v25.16b, #8 + + rev64 v8.16b, v9.16b //GHASH final-3 block + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + movi v16.8b, #0 //suppress further partial tag feed in + + ins v27.d[0], v8.d[1] //GHASH final-3 block - mid + ldr q24, [x3, #96] //load h4k | h3k + pmull v26.1q, v8.1d, v25.1d //GHASH final-3 block - low + + ldr q9, [x0], #16 //AES final-2 block - load plaintext + + eor v27.8b, v27.8b, v8.8b //GHASH final-3 block - mid + + ins v27.d[1], v27.d[0] //GHASH final-3 block - mid + eor v19.16b, v19.16b, v26.16b //GHASH final-3 block - low + +.inst 0xce057529 //eor3 v9.16b, v9.16b, v5.16b, v29.16b //AES final-2 block - result + + pmull2 v27.1q, v27.2d, v24.2d //GHASH final-3 block - mid + pmull2 v28.1q, v8.2d, v25.2d //GHASH final-3 block - high + + eor v18.16b, v18.16b, v27.16b //GHASH final-3 block - mid + eor v17.16b, v17.16b, v28.16b //GHASH final-3 block - high +.L128_enc_blocks_more_than_2: //blocks left > 2 + + st1 { v9.16b}, [x2], #16 //AES final-2 block - store result + + rev64 v8.16b, v9.16b //GHASH final-2 block + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + + ldr q9, [x0], #16 //AES final-1 block - load plaintext + + ins v27.d[0], v8.d[1] //GHASH final-2 block - mid + ldr q23, [x3, #80] //load h3l | h3h + ext v23.16b, v23.16b, v23.16b, #8 + movi v16.8b, #0 //suppress further partial tag feed in + + eor v27.8b, v27.8b, v8.8b //GHASH final-2 block - mid +.inst 0xce067529 //eor3 v9.16b, v9.16b, v6.16b, v29.16b //AES final-1 block - result + + pmull2 v28.1q, v8.2d, v23.2d //GHASH final-2 block - high + + pmull v26.1q, v8.1d, v23.1d //GHASH final-2 block - low + pmull v27.1q, v27.1d, v24.1d //GHASH final-2 block - mid + + eor v17.16b, v17.16b, v28.16b //GHASH final-2 block - high + + eor v18.16b, v18.16b, v27.16b //GHASH final-2 block - mid + eor v19.16b, v19.16b, v26.16b //GHASH final-2 block - low +.L128_enc_blocks_more_than_1: //blocks left > 1 + + st1 { v9.16b}, [x2], #16 //AES final-1 block - store result + + ldr q22, [x3, #64] //load h2l | h2h + ext v22.16b, v22.16b, v22.16b, #8 + rev64 v8.16b, v9.16b //GHASH final-1 block + ldr q9, [x0], #16 //AES final block - load plaintext + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + + movi v16.8b, #0 //suppress further partial tag feed in + ins v27.d[0], v8.d[1] //GHASH final-1 block - mid +.inst 0xce077529 //eor3 v9.16b, v9.16b, v7.16b, v29.16b //AES final block - result + + pmull2 v28.1q, v8.2d, v22.2d //GHASH final-1 block - high + + eor v27.8b, v27.8b, v8.8b //GHASH final-1 block - mid + + ldr q21, [x3, #48] //load h2k | h1k + + ins v27.d[1], v27.d[0] //GHASH final-1 block - mid + + pmull v26.1q, v8.1d, v22.1d //GHASH final-1 block - low + pmull2 v27.1q, v27.2d, v21.2d //GHASH final-1 block - mid + + eor v17.16b, v17.16b, v28.16b //GHASH final-1 block - high + + eor v18.16b, v18.16b, v27.16b //GHASH final-1 block - mid + eor v19.16b, v19.16b, v26.16b //GHASH final-1 block - low +.L128_enc_blocks_less_than_1: //blocks left <= 1 + + rev32 v30.16b, v30.16b + str q30, [x16] //store the updated counter + and x1, x1, #127 //bit_length %= 128 + + sub x1, x1, #128 //bit_length -= 128 + + neg x1, x1 //bit_length = 128 - #bits in input (in range [1,128]) + + mvn x6, xzr //temp0_x = 0xffffffffffffffff + ld1 { v26.16b}, [x2] //load existing bytes where the possibly partial last block is to be stored + and x1, x1, #127 //bit_length %= 128 + + lsr x6, x6, x1 //temp0_x is mask for top 64b of last block + mvn x7, xzr //temp1_x = 0xffffffffffffffff + cmp x1, #64 + + csel x13, x7, x6, lt + csel x14, x6, xzr, lt + + mov v0.d[1], x14 + mov v0.d[0], x13 //ctr0b is mask for last block + + and v9.16b, v9.16b, v0.16b //possibly partial last block has zeroes in highest bits + + rev64 v8.16b, v9.16b //GHASH final block + + bif v9.16b, v26.16b, v0.16b //insert existing bytes in top end of result before storing + st1 { v9.16b}, [x2] //store all 16B + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + + ins v16.d[0], v8.d[1] //GHASH final block - mid + + eor v16.8b, v16.8b, v8.8b //GHASH final block - mid + ldr q20, [x3, #32] //load h1l | h1h + ext v20.16b, v20.16b, v20.16b, #8 + + pmull v16.1q, v16.1d, v21.1d //GHASH final block - mid + + pmull2 v28.1q, v8.2d, v20.2d //GHASH final block - high + eor v18.16b, v18.16b, v16.16b //GHASH final block - mid + ldr d16, [x10] //MODULO - load modulo constant + + pmull v26.1q, v8.1d, v20.1d //GHASH final block - low + + eor v17.16b, v17.16b, v28.16b //GHASH final block - high + + eor v19.16b, v19.16b, v26.16b //GHASH final block - low + + ext v21.16b, v17.16b, v17.16b, #8 //MODULO - other top alignment + pmull v29.1q, v17.1d, v16.1d //MODULO - top 64b align with mid + +.inst 0xce114e52 //eor3 v18.16b, v18.16b, v17.16b, v19.16b //MODULO - karatsuba tidy up + +.inst 0xce1d5652 //eor3 v18.16b, v18.16b, v29.16b, v21.16b //MODULO - fold into mid + + pmull v17.1q, v18.1d, v16.1d //MODULO - mid 64b align with low + ext v21.16b, v18.16b, v18.16b, #8 //MODULO - other mid alignment + +.inst 0xce115673 //eor3 v19.16b, v19.16b, v17.16b, v21.16b //MODULO - fold into low + ext v19.16b, v19.16b, v19.16b, #8 + rev64 v19.16b, v19.16b + st1 { v19.16b }, [x3] + mov x0, x9 + + ldp d10, d11, [sp, #16] + ldp d12, d13, [sp, #32] + ldp d14, d15, [sp, #48] + ldp d8, d9, [sp], #80 + ret + +.L128_enc_ret: + mov w0, #0x0 + ret +.size unroll8_eor3_aes_gcm_enc_128_kernel,.-unroll8_eor3_aes_gcm_enc_128_kernel +.globl unroll8_eor3_aes_gcm_dec_128_kernel +.type unroll8_eor3_aes_gcm_dec_128_kernel,%function +.align 4 +unroll8_eor3_aes_gcm_dec_128_kernel: + AARCH64_VALID_CALL_TARGET + cbz x1, .L128_dec_ret + stp d8, d9, [sp, #-80]! + lsr x9, x1, #3 + mov x16, x4 + mov x8, x5 + stp d10, d11, [sp, #16] + stp d12, d13, [sp, #32] + stp d14, d15, [sp, #48] + mov x5, #0xc200000000000000 + stp x5, xzr, [sp, #64] + add x10, sp, #64 + + mov x5, x9 + ld1 { v0.16b}, [x16] //CTR block 0 + + ldp q26, q27, [x8, #0] //load rk0, rk1 + sub x5, x5, #1 //byte_len - 1 + + mov x15, #0x100000000 //set up counter increment + movi v31.16b, #0x0 + mov v31.d[1], x15 + ld1 { v19.16b}, [x3] + ext v19.16b, v19.16b, v19.16b, #8 + rev64 v19.16b, v19.16b + + rev32 v30.16b, v0.16b //set up reversed counter + + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 0 - round 0 + + add v30.4s, v30.4s, v31.4s //CTR block 0 + + rev32 v1.16b, v30.16b //CTR block 1 + add v30.4s, v30.4s, v31.4s //CTR block 1 + + and x5, x5, #0xffffffffffffff80 //number of bytes to be processed in main loop (at least 1 byte must be handled by tail) + + rev32 v2.16b, v30.16b //CTR block 2 + add v30.4s, v30.4s, v31.4s //CTR block 2 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 1 - round 0 + + rev32 v3.16b, v30.16b //CTR block 3 + add v30.4s, v30.4s, v31.4s //CTR block 3 + + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 0 - round 1 + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 1 - round 1 + + rev32 v4.16b, v30.16b //CTR block 4 + add v30.4s, v30.4s, v31.4s //CTR block 4 + + rev32 v5.16b, v30.16b //CTR block 5 + add v30.4s, v30.4s, v31.4s //CTR block 5 + + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 2 - round 0 + + rev32 v6.16b, v30.16b //CTR block 6 + add v30.4s, v30.4s, v31.4s //CTR block 6 + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 5 - round 0 + + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 3 - round 0 + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 4 - round 0 + + rev32 v7.16b, v30.16b //CTR block 7 + + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 6 - round 0 + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 2 - round 1 + + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 7 - round 0 + + ldp q28, q26, [x8, #32] //load rk2, rk3 + + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 6 - round 1 + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 5 - round 1 + + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 4 - round 1 + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 7 - round 1 + + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 7 - round 2 + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 0 - round 2 + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 3 - round 1 + + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 6 - round 2 + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 2 - round 2 + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 5 - round 2 + + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 4 - round 2 + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 3 - round 2 + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 1 - round 2 + + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 6 - round 3 + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 2 - round 3 + + ldp q27, q28, [x8, #64] //load rk4, rk5 + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 5 - round 3 + + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 0 - round 3 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 7 - round 3 + + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 3 - round 3 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 1 - round 3 + + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 0 - round 4 + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 7 - round 4 + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 4 - round 3 + + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 6 - round 4 + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 1 - round 4 + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 3 - round 4 + + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 5 - round 4 + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 4 - round 4 + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 2 - round 4 + + ldp q26, q27, [x8, #96] //load rk6, rk7 + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 2 - round 5 + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 3 - round 5 + + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 6 - round 5 + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 1 - round 5 + + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 7 - round 5 + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 5 - round 5 + + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 4 - round 5 + + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 3 - round 6 + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 2 - round 6 + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 0 - round 5 + + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 5 - round 6 + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 4 - round 6 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 1 - round 6 + + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 0 - round 6 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 7 - round 6 + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 6 - round 6 + + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 3 - round 7 + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 4 - round 7 + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 1 - round 7 + + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 7 - round 7 + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 5 - round 7 + ldp q28, q26, [x8, #128] //load rk8, rk9 + + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 6 - round 7 + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 2 - round 7 + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 0 - round 7 + + add x5, x5, x0 + add v30.4s, v30.4s, v31.4s //CTR block 7 + + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 6 - round 8 + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 0 - round 8 + + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 1 - round 8 + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 7 - round 8 + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 3 - round 8 + + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 5 - round 8 + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 2 - round 8 + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 4 - round 8 + + aese v0.16b, v26.16b //AES block 0 - round 9 + aese v1.16b, v26.16b //AES block 1 - round 9 + aese v6.16b, v26.16b //AES block 6 - round 9 + + ldr q27, [x8, #160] //load rk10 + aese v4.16b, v26.16b //AES block 4 - round 9 + aese v3.16b, v26.16b //AES block 3 - round 9 + + aese v2.16b, v26.16b //AES block 2 - round 9 + aese v5.16b, v26.16b //AES block 5 - round 9 + aese v7.16b, v26.16b //AES block 7 - round 9 + + add x4, x0, x1, lsr #3 //end_input_ptr + cmp x0, x5 //check if we have <= 8 blocks + b.ge .L128_dec_tail //handle tail + + ldp q8, q9, [x0], #32 //AES block 0, 1 - load ciphertext + +.inst 0xce006d00 //eor3 v0.16b, v8.16b, v0.16b, v27.16b //AES block 0 - result +.inst 0xce016d21 //eor3 v1.16b, v9.16b, v1.16b, v27.16b //AES block 1 - result + stp q0, q1, [x2], #32 //AES block 0, 1 - store result + + rev32 v0.16b, v30.16b //CTR block 8 + add v30.4s, v30.4s, v31.4s //CTR block 8 + ldp q10, q11, [x0], #32 //AES block 2, 3 - load ciphertext + + ldp q12, q13, [x0], #32 //AES block 4, 5 - load ciphertext + + rev32 v1.16b, v30.16b //CTR block 9 + add v30.4s, v30.4s, v31.4s //CTR block 9 + ldp q14, q15, [x0], #32 //AES block 6, 7 - load ciphertext + +.inst 0xce036d63 //eor3 v3.16b, v11.16b, v3.16b, v27.16b //AES block 3 - result +.inst 0xce026d42 //eor3 v2.16b, v10.16b, v2.16b, v27.16b //AES block 2 - result + stp q2, q3, [x2], #32 //AES block 2, 3 - store result + + rev32 v2.16b, v30.16b //CTR block 10 + add v30.4s, v30.4s, v31.4s //CTR block 10 + +.inst 0xce066dc6 //eor3 v6.16b, v14.16b, v6.16b, v27.16b //AES block 6 - result + + rev32 v3.16b, v30.16b //CTR block 11 + add v30.4s, v30.4s, v31.4s //CTR block 11 + +.inst 0xce046d84 //eor3 v4.16b, v12.16b, v4.16b, v27.16b //AES block 4 - result +.inst 0xce056da5 //eor3 v5.16b, v13.16b, v5.16b, v27.16b //AES block 5 - result + stp q4, q5, [x2], #32 //AES block 4, 5 - store result + +.inst 0xce076de7 //eor3 v7.16b, v15.16b, v7.16b, v27.16b //AES block 7 - result + stp q6, q7, [x2], #32 //AES block 6, 7 - store result + rev32 v4.16b, v30.16b //CTR block 12 + + cmp x0, x5 //check if we have <= 8 blocks + add v30.4s, v30.4s, v31.4s //CTR block 12 + b.ge .L128_dec_prepretail //do prepretail + +.L128_dec_main_loop: //main loop start + ldr q23, [x3, #176] //load h7l | h7h + ext v23.16b, v23.16b, v23.16b, #8 + ldr q25, [x3, #208] //load h8l | h8h + ext v25.16b, v25.16b, v25.16b, #8 + + rev64 v9.16b, v9.16b //GHASH block 8k+1 + rev64 v8.16b, v8.16b //GHASH block 8k + ext v19.16b, v19.16b, v19.16b, #8 //PRE 0 + + rev64 v14.16b, v14.16b //GHASH block 8k+6 + ldr q20, [x3, #128] //load h5l | h5h + ext v20.16b, v20.16b, v20.16b, #8 + ldr q22, [x3, #160] //load h6l | h6h + ext v22.16b, v22.16b, v22.16b, #8 + + eor v8.16b, v8.16b, v19.16b //PRE 1 + rev32 v5.16b, v30.16b //CTR block 8k+13 + add v30.4s, v30.4s, v31.4s //CTR block 8k+13 + + rev64 v10.16b, v10.16b //GHASH block 8k+2 + rev64 v12.16b, v12.16b //GHASH block 8k+4 + ldp q26, q27, [x8, #0] //load rk0, rk1 + + rev32 v6.16b, v30.16b //CTR block 8k+14 + add v30.4s, v30.4s, v31.4s //CTR block 8k+14 + ldr q21, [x3, #144] //load h6k | h5k + ldr q24, [x3, #192] //load h8k | h7k + + pmull2 v16.1q, v9.2d, v23.2d //GHASH block 8k+1 - high + pmull2 v17.1q, v8.2d, v25.2d //GHASH block 8k - high + rev64 v11.16b, v11.16b //GHASH block 8k+3 + + rev32 v7.16b, v30.16b //CTR block 8k+15 + trn1 v18.2d, v9.2d, v8.2d //GHASH block 8k, 8k+1 - mid + rev64 v13.16b, v13.16b //GHASH block 8k+5 + + pmull v23.1q, v9.1d, v23.1d //GHASH block 8k+1 - low + pmull v19.1q, v8.1d, v25.1d //GHASH block 8k - low + trn2 v8.2d, v9.2d, v8.2d //GHASH block 8k, 8k+1 - mid + + pmull2 v29.1q, v10.2d, v22.2d //GHASH block 8k+2 - high + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 0 + pmull2 v9.1q, v11.2d, v20.2d //GHASH block 8k+3 - high + + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 0 + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 0 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 0 + + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 0 + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 0 + eor v17.16b, v17.16b, v16.16b //GHASH block 8k+1 - high + + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 0 + eor v8.16b, v8.16b, v18.16b //GHASH block 8k, 8k+1 - mid + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 0 + + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 1 + eor v19.16b, v19.16b, v23.16b //GHASH block 8k+1 - low +.inst 0xce1d2631 //eor3 v17.16b, v17.16b, v29.16b, v9.16b //GHASH block 8k+2, 8k+3 - high + + ldp q28, q26, [x8, #32] //load rk2, rk3 + trn1 v29.2d, v11.2d, v10.2d //GHASH block 8k+2, 8k+3 - mid + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 1 + + pmull v22.1q, v10.1d, v22.1d //GHASH block 8k+2 - low + trn2 v10.2d, v11.2d, v10.2d //GHASH block 8k+2, 8k+3 - mid + pmull2 v18.1q, v8.2d, v24.2d //GHASH block 8k - mid + + ldr q23, [x3, #80] //load h3l | h3h + ext v23.16b, v23.16b, v23.16b, #8 + ldr q25, [x3, #112] //load h4l | h4h + ext v25.16b, v25.16b, v25.16b, #8 + pmull v24.1q, v8.1d, v24.1d //GHASH block 8k+1 - mid + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 1 + + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 1 + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 1 + pmull v20.1q, v11.1d, v20.1d //GHASH block 8k+3 - low + + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 1 + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 1 + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 1 + + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 2 + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 2 +.inst 0xce165273 //eor3 v19.16b, v19.16b, v22.16b, v20.16b //GHASH block 8k+2, 8k+3 - low + + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 2 + eor v10.16b, v10.16b, v29.16b //GHASH block 8k+2, 8k+3 - mid + ldr q20, [x3, #32] //load h1l | h1h + ext v20.16b, v20.16b, v20.16b, #8 + ldr q22, [x3, #64] //load h2l | h2h + ext v22.16b, v22.16b, v22.16b, #8 + + eor v18.16b, v18.16b, v24.16b //GHASH block 8k+1 - mid + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 2 + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 2 + + trn1 v16.2d, v13.2d, v12.2d //GHASH block 8k+4, 8k+5 - mid + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 2 + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 2 + + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 2 + pmull2 v29.1q, v10.2d, v21.2d //GHASH block 8k+2 - mid + pmull v21.1q, v10.1d, v21.1d //GHASH block 8k+3 - mid + + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 3 + rev64 v15.16b, v15.16b //GHASH block 8k+7 + pmull2 v8.1q, v12.2d, v25.2d //GHASH block 8k+4 - high + + ldp q27, q28, [x8, #64] //load rk4, rk5 + pmull v25.1q, v12.1d, v25.1d //GHASH block 8k+4 - low +.inst 0xce157652 //eor3 v18.16b, v18.16b, v21.16b, v29.16b //GHASH block 8k+2, 8k+3 - mid + + ldr q21, [x3, #48] //load h2k | h1k + ldr q24, [x3, #96] //load h4k | h3k + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 3 + trn2 v12.2d, v13.2d, v12.2d //GHASH block 8k+4, 8k+5 - mid + + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 3 + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 3 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 3 + + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 3 + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 3 + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 3 + + pmull2 v10.1q, v13.2d, v23.2d //GHASH block 8k+5 - high + pmull v23.1q, v13.1d, v23.1d //GHASH block 8k+5 - low + pmull2 v11.1q, v14.2d, v22.2d //GHASH block 8k+6 - high + + pmull v22.1q, v14.1d, v22.1d //GHASH block 8k+6 - low + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 4 + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 4 + + eor v12.16b, v12.16b, v16.16b //GHASH block 8k+4, 8k+5 - mid + trn1 v13.2d, v15.2d, v14.2d //GHASH block 8k+6, 8k+7 - mid + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 4 + + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 4 + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 4 + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 4 + + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 4 + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 4 + trn2 v14.2d, v15.2d, v14.2d //GHASH block 8k+6, 8k+7 - mid + + ldp q26, q27, [x8, #96] //load rk6, rk7 + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 5 + pmull2 v16.1q, v12.2d, v24.2d //GHASH block 8k+4 - mid + + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 5 + eor v14.16b, v14.16b, v13.16b //GHASH block 8k+6, 8k+7 - mid + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 5 + + pmull v24.1q, v12.1d, v24.1d //GHASH block 8k+5 - mid + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 5 + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 5 + + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 5 + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 5 + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 5 + + pmull2 v12.1q, v15.2d, v20.2d //GHASH block 8k+7 - high +.inst 0xce184252 //eor3 v18.16b, v18.16b, v24.16b, v16.16b //GHASH block 8k+4, 8k+5 - mid +.inst 0xce195e73 //eor3 v19.16b, v19.16b, v25.16b, v23.16b //GHASH block 8k+4, 8k+5 - low + + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 6 +.inst 0xce082a31 //eor3 v17.16b, v17.16b, v8.16b, v10.16b //GHASH block 8k+4, 8k+5 - high + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 6 + + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 6 + pmull2 v13.1q, v14.2d, v21.2d //GHASH block 8k+6 - mid + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 6 + + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 6 + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 6 + pmull v20.1q, v15.1d, v20.1d //GHASH block 8k+7 - low + + pmull v21.1q, v14.1d, v21.1d //GHASH block 8k+7 - mid + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 6 + add v30.4s, v30.4s, v31.4s //CTR block 8k+15 + +.inst 0xce0b3231 //eor3 v17.16b, v17.16b, v11.16b, v12.16b //GHASH block 8k+6, 8k+7 - high + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 6 + ldp q28, q26, [x8, #128] //load rk8, rk9 + + ldr d16, [x10] //MODULO - load modulo constant +.inst 0xce165273 //eor3 v19.16b, v19.16b, v22.16b, v20.16b //GHASH block 8k+6, 8k+7 - low + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 7 + + rev32 v20.16b, v30.16b //CTR block 8k+16 +.inst 0xce153652 //eor3 v18.16b, v18.16b, v21.16b, v13.16b //GHASH block 8k+6, 8k+7 - mid + add v30.4s, v30.4s, v31.4s //CTR block 8k+16 + + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 7 + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 7 + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 7 + + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 7 + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 7 + rev32 v22.16b, v30.16b //CTR block 8k+17 + + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 7 + ext v21.16b, v17.16b, v17.16b, #8 //MODULO - other top alignment + pmull v29.1q, v17.1d, v16.1d //MODULO - top 64b align with mid + +.inst 0xce114e52 //eor3 v18.16b, v18.16b, v17.16b, v19.16b //MODULO - karatsuba tidy up + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 7 + add v30.4s, v30.4s, v31.4s //CTR block 8k+17 + + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 8 + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 8 + ldp q8, q9, [x0], #32 //AES block 8k+8, 8k+9 - load ciphertext + + ldp q10, q11, [x0], #32 //AES block 8k+10, 8k+11 - load ciphertext + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 8 + rev32 v23.16b, v30.16b //CTR block 8k+18 + + ldp q12, q13, [x0], #32 //AES block 8k+12, 8k+13 - load ciphertext + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 8 +.inst 0xce1d5652 //eor3 v18.16b, v18.16b, v29.16b, v21.16b //MODULO - fold into mid + + ldp q14, q15, [x0], #32 //AES block 8k+14, 8k+15 - load ciphertext + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 8 + add v30.4s, v30.4s, v31.4s //CTR block 8k+18 + + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 8 + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 8 + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 8 + + aese v0.16b, v26.16b //AES block 8k+8 - round 9 + aese v1.16b, v26.16b //AES block 8k+9 - round 9 + ldr q27, [x8, #160] //load rk10 + + aese v6.16b, v26.16b //AES block 8k+14 - round 9 + pmull v17.1q, v18.1d, v16.1d //MODULO - mid 64b align with low + aese v2.16b, v26.16b //AES block 8k+10 - round 9 + + aese v7.16b, v26.16b //AES block 8k+15 - round 9 + aese v4.16b, v26.16b //AES block 8k+12 - round 9 + ext v21.16b, v18.16b, v18.16b, #8 //MODULO - other mid alignment + + rev32 v25.16b, v30.16b //CTR block 8k+19 + add v30.4s, v30.4s, v31.4s //CTR block 8k+19 + + aese v3.16b, v26.16b //AES block 8k+11 - round 9 + aese v5.16b, v26.16b //AES block 8k+13 - round 9 +.inst 0xce016d21 //eor3 v1.16b, v9.16b, v1.16b, v27.16b //AES block 8k+9 - result + +.inst 0xce006d00 //eor3 v0.16b, v8.16b, v0.16b, v27.16b //AES block 8k+8 - result +.inst 0xce076de7 //eor3 v7.16b, v15.16b, v7.16b, v27.16b //AES block 8k+15 - result +.inst 0xce066dc6 //eor3 v6.16b, v14.16b, v6.16b, v27.16b //AES block 8k+14 - result + +.inst 0xce026d42 //eor3 v2.16b, v10.16b, v2.16b, v27.16b //AES block 8k+10 - result + stp q0, q1, [x2], #32 //AES block 8k+8, 8k+9 - store result + mov v1.16b, v22.16b //CTR block 8k+17 + +.inst 0xce046d84 //eor3 v4.16b, v12.16b, v4.16b, v27.16b //AES block 8k+12 - result +.inst 0xce115673 //eor3 v19.16b, v19.16b, v17.16b, v21.16b //MODULO - fold into low + mov v0.16b, v20.16b //CTR block 8k+16 + +.inst 0xce036d63 //eor3 v3.16b, v11.16b, v3.16b, v27.16b //AES block 8k+11 - result + cmp x0, x5 //.LOOP CONTROL + stp q2, q3, [x2], #32 //AES block 8k+10, 8k+11 - store result + +.inst 0xce056da5 //eor3 v5.16b, v13.16b, v5.16b, v27.16b //AES block 8k+13 - result + mov v2.16b, v23.16b //CTR block 8k+18 + + stp q4, q5, [x2], #32 //AES block 8k+12, 8k+13 - store result + rev32 v4.16b, v30.16b //CTR block 8k+20 + add v30.4s, v30.4s, v31.4s //CTR block 8k+20 + + stp q6, q7, [x2], #32 //AES block 8k+14, 8k+15 - store result + mov v3.16b, v25.16b //CTR block 8k+19 + b.lt .L128_dec_main_loop + +.L128_dec_prepretail: //PREPRETAIL + rev64 v11.16b, v11.16b //GHASH block 8k+3 + ext v19.16b, v19.16b, v19.16b, #8 //PRE 0 + rev64 v8.16b, v8.16b //GHASH block 8k + + rev64 v10.16b, v10.16b //GHASH block 8k+2 + rev32 v5.16b, v30.16b //CTR block 8k+13 + ldp q26, q27, [x8, #0] //load rk0, rk1 + + ldr q23, [x3, #176] //load h7l | h7h + ext v23.16b, v23.16b, v23.16b, #8 + ldr q25, [x3, #208] //load h8l | h8h + ext v25.16b, v25.16b, v25.16b, #8 + eor v8.16b, v8.16b, v19.16b //PRE 1 + rev64 v9.16b, v9.16b //GHASH block 8k+1 + + add v30.4s, v30.4s, v31.4s //CTR block 8k+13 + ldr q20, [x3, #128] //load h5l | h5h + ext v20.16b, v20.16b, v20.16b, #8 + ldr q22, [x3, #160] //load h6l | h6h + ext v22.16b, v22.16b, v22.16b, #8 + rev64 v13.16b, v13.16b //GHASH block 8k+5 + + rev64 v12.16b, v12.16b //GHASH block 8k+4 + + rev64 v14.16b, v14.16b //GHASH block 8k+6 + + ldr q21, [x3, #144] //load h6k | h5k + ldr q24, [x3, #192] //load h8k | h7k + rev32 v6.16b, v30.16b //CTR block 8k+14 + add v30.4s, v30.4s, v31.4s //CTR block 8k+14 + + pmull2 v16.1q, v9.2d, v23.2d //GHASH block 8k+1 - high + pmull v19.1q, v8.1d, v25.1d //GHASH block 8k - low + pmull2 v17.1q, v8.2d, v25.2d //GHASH block 8k - high + + trn1 v18.2d, v9.2d, v8.2d //GHASH block 8k, 8k+1 - mid + trn2 v8.2d, v9.2d, v8.2d //GHASH block 8k, 8k+1 - mid + pmull2 v29.1q, v10.2d, v22.2d //GHASH block 8k+2 - high + + pmull v23.1q, v9.1d, v23.1d //GHASH block 8k+1 - low + pmull2 v9.1q, v11.2d, v20.2d //GHASH block 8k+3 - high + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 0 + + eor v17.16b, v17.16b, v16.16b //GHASH block 8k+1 - high + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 0 + eor v8.16b, v8.16b, v18.16b //GHASH block 8k, 8k+1 - mid + + pmull v22.1q, v10.1d, v22.1d //GHASH block 8k+2 - low + rev32 v7.16b, v30.16b //CTR block 8k+15 + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 0 + +.inst 0xce1d2631 //eor3 v17.16b, v17.16b, v29.16b, v9.16b //GHASH block 8k+2, 8k+3 - high + trn1 v29.2d, v11.2d, v10.2d //GHASH block 8k+2, 8k+3 - mid + trn2 v10.2d, v11.2d, v10.2d //GHASH block 8k+2, 8k+3 - mid + + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 0 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 0 + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 0 + + pmull2 v18.1q, v8.2d, v24.2d //GHASH block 8k - mid + pmull v24.1q, v8.1d, v24.1d //GHASH block 8k+1 - mid + pmull v20.1q, v11.1d, v20.1d //GHASH block 8k+3 - low + + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 1 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 0 + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 0 + + eor v19.16b, v19.16b, v23.16b //GHASH block 8k+1 - low + eor v10.16b, v10.16b, v29.16b //GHASH block 8k+2, 8k+3 - mid + eor v18.16b, v18.16b, v24.16b //GHASH block 8k+1 - mid + + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 1 + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 1 + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 1 + + ldp q28, q26, [x8, #32] //load rk2, rk3 +.inst 0xce165273 //eor3 v19.16b, v19.16b, v22.16b, v20.16b //GHASH block 8k+2, 8k+3 - low + pmull2 v29.1q, v10.2d, v21.2d //GHASH block 8k+2 - mid + + ldr q23, [x3, #80] //load h3l | h3h + ext v23.16b, v23.16b, v23.16b, #8 + ldr q25, [x3, #112] //load h4l | h4h + ext v25.16b, v25.16b, v25.16b, #8 + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 1 + pmull v21.1q, v10.1d, v21.1d //GHASH block 8k+3 - mid + + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 1 + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 1 + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 1 + + ldr q20, [x3, #32] //load h1l | h1h + ext v20.16b, v20.16b, v20.16b, #8 + ldr q22, [x3, #64] //load h2l | h2h + ext v22.16b, v22.16b, v22.16b, #8 +.inst 0xce157652 //eor3 v18.16b, v18.16b, v21.16b, v29.16b //GHASH block 8k+2, 8k+3 - mid + + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 2 + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 2 + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 2 + + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 2 + trn1 v16.2d, v13.2d, v12.2d //GHASH block 8k+4, 8k+5 - mid + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 2 + + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 2 + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 2 + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 2 + + pmull2 v8.1q, v12.2d, v25.2d //GHASH block 8k+4 - high + pmull v25.1q, v12.1d, v25.1d //GHASH block 8k+4 - low + trn2 v12.2d, v13.2d, v12.2d //GHASH block 8k+4, 8k+5 - mid + + ldp q27, q28, [x8, #64] //load rk4, rk5 + rev64 v15.16b, v15.16b //GHASH block 8k+7 + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 3 + + ldr q21, [x3, #48] //load h2k | h1k + ldr q24, [x3, #96] //load h4k | h3k + pmull2 v10.1q, v13.2d, v23.2d //GHASH block 8k+5 - high + pmull v23.1q, v13.1d, v23.1d //GHASH block 8k+5 - low + + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 3 + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 3 + trn1 v13.2d, v15.2d, v14.2d //GHASH block 8k+6, 8k+7 - mid + + pmull2 v11.1q, v14.2d, v22.2d //GHASH block 8k+6 - high + pmull v22.1q, v14.1d, v22.1d //GHASH block 8k+6 - low + trn2 v14.2d, v15.2d, v14.2d //GHASH block 8k+6, 8k+7 - mid + + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 3 + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 3 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 3 + + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 3 + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 3 + eor v12.16b, v12.16b, v16.16b //GHASH block 8k+4, 8k+5 - mid + +.inst 0xce082a31 //eor3 v17.16b, v17.16b, v8.16b, v10.16b //GHASH block 8k+4, 8k+5 - high + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 4 + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 4 + + eor v14.16b, v14.16b, v13.16b //GHASH block 8k+6, 8k+7 - mid + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 4 + pmull2 v16.1q, v12.2d, v24.2d //GHASH block 8k+4 - mid + + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 4 + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 4 + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 4 + + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 4 + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 4 + pmull v24.1q, v12.1d, v24.1d //GHASH block 8k+5 - mid + + pmull2 v12.1q, v15.2d, v20.2d //GHASH block 8k+7 - high + pmull2 v13.1q, v14.2d, v21.2d //GHASH block 8k+6 - mid + pmull v21.1q, v14.1d, v21.1d //GHASH block 8k+7 - mid + + ldp q26, q27, [x8, #96] //load rk6, rk7 +.inst 0xce184252 //eor3 v18.16b, v18.16b, v24.16b, v16.16b //GHASH block 8k+4, 8k+5 - mid + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 5 + + ldr d16, [x10] //MODULO - load modulo constant + pmull v20.1q, v15.1d, v20.1d //GHASH block 8k+7 - low +.inst 0xce195e73 //eor3 v19.16b, v19.16b, v25.16b, v23.16b //GHASH block 8k+4, 8k+5 - low + + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 5 + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 5 + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 5 + + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 5 + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 5 + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 5 + + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 5 +.inst 0xce153652 //eor3 v18.16b, v18.16b, v21.16b, v13.16b //GHASH block 8k+6, 8k+7 - mid +.inst 0xce165273 //eor3 v19.16b, v19.16b, v22.16b, v20.16b //GHASH block 8k+6, 8k+7 - low + + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 6 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 6 + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 6 + +.inst 0xce0b3231 //eor3 v17.16b, v17.16b, v11.16b, v12.16b //GHASH block 8k+6, 8k+7 - high + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 6 + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 6 + + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 6 + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 6 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 6 + + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 7 +.inst 0xce114e52 //eor3 v18.16b, v18.16b, v17.16b, v19.16b //MODULO - karatsuba tidy up + ldp q28, q26, [x8, #128] //load rk8, rk9 + + pmull v29.1q, v17.1d, v16.1d //MODULO - top 64b align with mid + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 7 + ext v21.16b, v17.16b, v17.16b, #8 //MODULO - other top alignment + + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 7 + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 7 + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 7 + + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 7 + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 7 + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 7 + +.inst 0xce1d5652 //eor3 v18.16b, v18.16b, v29.16b, v21.16b //MODULO - fold into mid + ldr q27, [x8, #160] //load rk10 + + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 8 + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 8 + + pmull v17.1q, v18.1d, v16.1d //MODULO - mid 64b align with low + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 8 + ext v21.16b, v18.16b, v18.16b, #8 //MODULO - other mid alignment + + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 8 + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 8 + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 8 + + aese v6.16b, v26.16b //AES block 8k+14 - round 9 + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 8 + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 8 + +.inst 0xce115673 //eor3 v19.16b, v19.16b, v17.16b, v21.16b //MODULO - fold into low + add v30.4s, v30.4s, v31.4s //CTR block 8k+15 + aese v2.16b, v26.16b //AES block 8k+10 - round 9 + + aese v3.16b, v26.16b //AES block 8k+11 - round 9 + aese v5.16b, v26.16b //AES block 8k+13 - round 9 + aese v0.16b, v26.16b //AES block 8k+8 - round 9 + + aese v4.16b, v26.16b //AES block 8k+12 - round 9 + aese v1.16b, v26.16b //AES block 8k+9 - round 9 + aese v7.16b, v26.16b //AES block 8k+15 - round 9 + +.L128_dec_tail: //TAIL + + mov v29.16b, v27.16b + sub x5, x4, x0 //main_end_input_ptr is number of bytes left to process + + cmp x5, #112 + + ldp q24, q25, [x3, #192] //load h8k | h7k + ext v25.16b, v25.16b, v25.16b, #8 + ldr q9, [x0], #16 //AES block 8k+8 - load ciphertext + + ldp q20, q21, [x3, #128] //load h5l | h5h + ext v20.16b, v20.16b, v20.16b, #8 + ext v16.16b, v19.16b, v19.16b, #8 //prepare final partial tag + + ldp q22, q23, [x3, #160] //load h6l | h6h + ext v22.16b, v22.16b, v22.16b, #8 + ext v23.16b, v23.16b, v23.16b, #8 + +.inst 0xce00752c //eor3 v12.16b, v9.16b, v0.16b, v29.16b //AES block 8k+8 - result + b.gt .L128_dec_blocks_more_than_7 + + cmp x5, #96 + mov v7.16b, v6.16b + movi v19.8b, #0 + + movi v17.8b, #0 + mov v6.16b, v5.16b + mov v5.16b, v4.16b + + mov v4.16b, v3.16b + mov v3.16b, v2.16b + mov v2.16b, v1.16b + + movi v18.8b, #0 + sub v30.4s, v30.4s, v31.4s + b.gt .L128_dec_blocks_more_than_6 + + cmp x5, #80 + sub v30.4s, v30.4s, v31.4s + + mov v7.16b, v6.16b + mov v6.16b, v5.16b + mov v5.16b, v4.16b + + mov v4.16b, v3.16b + mov v3.16b, v1.16b + b.gt .L128_dec_blocks_more_than_5 + + cmp x5, #64 + + mov v7.16b, v6.16b + mov v6.16b, v5.16b + mov v5.16b, v4.16b + + mov v4.16b, v1.16b + sub v30.4s, v30.4s, v31.4s + b.gt .L128_dec_blocks_more_than_4 + + sub v30.4s, v30.4s, v31.4s + mov v7.16b, v6.16b + mov v6.16b, v5.16b + + mov v5.16b, v1.16b + cmp x5, #48 + b.gt .L128_dec_blocks_more_than_3 + + sub v30.4s, v30.4s, v31.4s + mov v7.16b, v6.16b + cmp x5, #32 + + ldr q24, [x3, #96] //load h4k | h3k + mov v6.16b, v1.16b + b.gt .L128_dec_blocks_more_than_2 + + cmp x5, #16 + + mov v7.16b, v1.16b + sub v30.4s, v30.4s, v31.4s + b.gt .L128_dec_blocks_more_than_1 + + sub v30.4s, v30.4s, v31.4s + ldr q21, [x3, #48] //load h2k | h1k + b .L128_dec_blocks_less_than_1 +.L128_dec_blocks_more_than_7: //blocks left > 7 + rev64 v8.16b, v9.16b //GHASH final-7 block + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + + ins v18.d[0], v24.d[1] //GHASH final-7 block - mid + + pmull v19.1q, v8.1d, v25.1d //GHASH final-7 block - low + ins v27.d[0], v8.d[1] //GHASH final-7 block - mid + + movi v16.8b, #0 //suppress further partial tag feed in + ldr q9, [x0], #16 //AES final-6 block - load ciphertext + + eor v27.8b, v27.8b, v8.8b //GHASH final-7 block - mid + + pmull2 v17.1q, v8.2d, v25.2d //GHASH final-7 block - high + st1 { v12.16b}, [x2], #16 //AES final-7 block - store result +.inst 0xce01752c //eor3 v12.16b, v9.16b, v1.16b, v29.16b //AES final-6 block - result + + pmull v18.1q, v27.1d, v18.1d //GHASH final-7 block - mid +.L128_dec_blocks_more_than_6: //blocks left > 6 + + rev64 v8.16b, v9.16b //GHASH final-6 block + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + + ins v27.d[0], v8.d[1] //GHASH final-6 block - mid + + eor v27.8b, v27.8b, v8.8b //GHASH final-6 block - mid + + pmull v26.1q, v8.1d, v23.1d //GHASH final-6 block - low + ldr q9, [x0], #16 //AES final-5 block - load ciphertext + movi v16.8b, #0 //suppress further partial tag feed in + + pmull v27.1q, v27.1d, v24.1d //GHASH final-6 block - mid + st1 { v12.16b}, [x2], #16 //AES final-6 block - store result + pmull2 v28.1q, v8.2d, v23.2d //GHASH final-6 block - high + + eor v19.16b, v19.16b, v26.16b //GHASH final-6 block - low + eor v17.16b, v17.16b, v28.16b //GHASH final-6 block - high + + eor v18.16b, v18.16b, v27.16b //GHASH final-6 block - mid +.inst 0xce02752c //eor3 v12.16b, v9.16b, v2.16b, v29.16b //AES final-5 block - result +.L128_dec_blocks_more_than_5: //blocks left > 5 + + rev64 v8.16b, v9.16b //GHASH final-5 block + + ldr q9, [x0], #16 //AES final-4 block - load ciphertext + st1 { v12.16b}, [x2], #16 //AES final-5 block - store result + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + + ins v27.d[0], v8.d[1] //GHASH final-5 block - mid + +.inst 0xce03752c //eor3 v12.16b, v9.16b, v3.16b, v29.16b //AES final-4 block - result + + eor v27.8b, v27.8b, v8.8b //GHASH final-5 block - mid + + ins v27.d[1], v27.d[0] //GHASH final-5 block - mid + pmull v26.1q, v8.1d, v22.1d //GHASH final-5 block - low + movi v16.8b, #0 //suppress further partial tag feed in + + pmull2 v27.1q, v27.2d, v21.2d //GHASH final-5 block - mid + pmull2 v28.1q, v8.2d, v22.2d //GHASH final-5 block - high + eor v19.16b, v19.16b, v26.16b //GHASH final-5 block - low + + eor v18.16b, v18.16b, v27.16b //GHASH final-5 block - mid + eor v17.16b, v17.16b, v28.16b //GHASH final-5 block - high +.L128_dec_blocks_more_than_4: //blocks left > 4 + + rev64 v8.16b, v9.16b //GHASH final-4 block + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + ldr q9, [x0], #16 //AES final-3 block - load ciphertext + + ins v27.d[0], v8.d[1] //GHASH final-4 block - mid + movi v16.8b, #0 //suppress further partial tag feed in + pmull2 v28.1q, v8.2d, v20.2d //GHASH final-4 block - high + + pmull v26.1q, v8.1d, v20.1d //GHASH final-4 block - low + + eor v17.16b, v17.16b, v28.16b //GHASH final-4 block - high + + st1 { v12.16b}, [x2], #16 //AES final-4 block - store result + eor v27.8b, v27.8b, v8.8b //GHASH final-4 block - mid + +.inst 0xce04752c //eor3 v12.16b, v9.16b, v4.16b, v29.16b //AES final-3 block - result + eor v19.16b, v19.16b, v26.16b //GHASH final-4 block - low + + pmull v27.1q, v27.1d, v21.1d //GHASH final-4 block - mid + + eor v18.16b, v18.16b, v27.16b //GHASH final-4 block - mid +.L128_dec_blocks_more_than_3: //blocks left > 3 + + st1 { v12.16b}, [x2], #16 //AES final-3 block - store result + rev64 v8.16b, v9.16b //GHASH final-3 block + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + + ins v27.d[0], v8.d[1] //GHASH final-3 block - mid + + ldr q25, [x3, #112] //load h4l | h4h + ext v25.16b, v25.16b, v25.16b, #8 + ldr q24, [x3, #96] //load h4k | h3k + + eor v27.8b, v27.8b, v8.8b //GHASH final-3 block - mid + + ldr q9, [x0], #16 //AES final-2 block - load ciphertext + + ins v27.d[1], v27.d[0] //GHASH final-3 block - mid + pmull v26.1q, v8.1d, v25.1d //GHASH final-3 block - low + pmull2 v28.1q, v8.2d, v25.2d //GHASH final-3 block - high + + movi v16.8b, #0 //suppress further partial tag feed in +.inst 0xce05752c //eor3 v12.16b, v9.16b, v5.16b, v29.16b //AES final-2 block - result + eor v19.16b, v19.16b, v26.16b //GHASH final-3 block - low + + pmull2 v27.1q, v27.2d, v24.2d //GHASH final-3 block - mid + + eor v17.16b, v17.16b, v28.16b //GHASH final-3 block - high + eor v18.16b, v18.16b, v27.16b //GHASH final-3 block - mid +.L128_dec_blocks_more_than_2: //blocks left > 2 + + rev64 v8.16b, v9.16b //GHASH final-2 block + + st1 { v12.16b}, [x2], #16 //AES final-2 block - store result + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + ldr q23, [x3, #80] //load h3l | h3h + ext v23.16b, v23.16b, v23.16b, #8 + movi v16.8b, #0 //suppress further partial tag feed in + + ins v27.d[0], v8.d[1] //GHASH final-2 block - mid + + eor v27.8b, v27.8b, v8.8b //GHASH final-2 block - mid + + pmull v26.1q, v8.1d, v23.1d //GHASH final-2 block - low + + pmull2 v28.1q, v8.2d, v23.2d //GHASH final-2 block - high + pmull v27.1q, v27.1d, v24.1d //GHASH final-2 block - mid + ldr q9, [x0], #16 //AES final-1 block - load ciphertext + + eor v18.16b, v18.16b, v27.16b //GHASH final-2 block - mid + + eor v19.16b, v19.16b, v26.16b //GHASH final-2 block - low + +.inst 0xce06752c //eor3 v12.16b, v9.16b, v6.16b, v29.16b //AES final-1 block - result + eor v17.16b, v17.16b, v28.16b //GHASH final-2 block - high +.L128_dec_blocks_more_than_1: //blocks left > 1 + + st1 { v12.16b}, [x2], #16 //AES final-1 block - store result + rev64 v8.16b, v9.16b //GHASH final-1 block + + ldr q22, [x3, #64] //load h2l | h2h + ext v22.16b, v22.16b, v22.16b, #8 + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + + movi v16.8b, #0 //suppress further partial tag feed in + + ins v27.d[0], v8.d[1] //GHASH final-1 block - mid + + ldr q9, [x0], #16 //AES final block - load ciphertext + pmull2 v28.1q, v8.2d, v22.2d //GHASH final-1 block - high + + eor v27.8b, v27.8b, v8.8b //GHASH final-1 block - mid + eor v17.16b, v17.16b, v28.16b //GHASH final-1 block - high + ldr q21, [x3, #48] //load h2k | h1k + + ins v27.d[1], v27.d[0] //GHASH final-1 block - mid +.inst 0xce07752c //eor3 v12.16b, v9.16b, v7.16b, v29.16b //AES final block - result + + pmull v26.1q, v8.1d, v22.1d //GHASH final-1 block - low + + pmull2 v27.1q, v27.2d, v21.2d //GHASH final-1 block - mid + + eor v19.16b, v19.16b, v26.16b //GHASH final-1 block - low + + eor v18.16b, v18.16b, v27.16b //GHASH final-1 block - mid +.L128_dec_blocks_less_than_1: //blocks left <= 1 + + and x1, x1, #127 //bit_length %= 128 + + sub x1, x1, #128 //bit_length -= 128 + + neg x1, x1 //bit_length = 128 - #bits in input (in range [1,128]) + + mvn x6, xzr //temp0_x = 0xffffffffffffffff + and x1, x1, #127 //bit_length %= 128 + + lsr x6, x6, x1 //temp0_x is mask for top 64b of last block + cmp x1, #64 + mvn x7, xzr //temp1_x = 0xffffffffffffffff + + csel x13, x7, x6, lt + csel x14, x6, xzr, lt + + mov v0.d[1], x14 + mov v0.d[0], x13 //ctr0b is mask for last block + + ldr q20, [x3, #32] //load h1l | h1h + ext v20.16b, v20.16b, v20.16b, #8 + ld1 { v26.16b}, [x2] //load existing bytes where the possibly partial last block is to be stored + + and v9.16b, v9.16b, v0.16b //possibly partial last block has zeroes in highest bits + + rev64 v8.16b, v9.16b //GHASH final block + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + + pmull2 v28.1q, v8.2d, v20.2d //GHASH final block - high + ins v16.d[0], v8.d[1] //GHASH final block - mid + + eor v17.16b, v17.16b, v28.16b //GHASH final block - high + eor v16.8b, v16.8b, v8.8b //GHASH final block - mid + + bif v12.16b, v26.16b, v0.16b //insert existing bytes in top end of result before storing + + pmull v16.1q, v16.1d, v21.1d //GHASH final block - mid + st1 { v12.16b}, [x2] //store all 16B + + pmull v26.1q, v8.1d, v20.1d //GHASH final block - low + + eor v18.16b, v18.16b, v16.16b //GHASH final block - mid + ldr d16, [x10] //MODULO - load modulo constant + + eor v19.16b, v19.16b, v26.16b //GHASH final block - low + + eor v14.16b, v17.16b, v19.16b //MODULO - karatsuba tidy up + + pmull v21.1q, v17.1d, v16.1d //MODULO - top 64b align with mid + ext v17.16b, v17.16b, v17.16b, #8 //MODULO - other top alignment + + eor v18.16b, v18.16b, v14.16b //MODULO - karatsuba tidy up + +.inst 0xce115652 //eor3 v18.16b, v18.16b, v17.16b, v21.16b //MODULO - fold into mid + + pmull v17.1q, v18.1d, v16.1d //MODULO - mid 64b align with low + ext v18.16b, v18.16b, v18.16b, #8 //MODULO - other mid alignment + +.inst 0xce124673 //eor3 v19.16b, v19.16b, v18.16b, v17.16b //MODULO - fold into low + ext v19.16b, v19.16b, v19.16b, #8 + rev64 v19.16b, v19.16b + st1 { v19.16b }, [x3] + rev32 v30.16b, v30.16b + + str q30, [x16] //store the updated counter + + mov x0, x9 + + ldp d10, d11, [sp, #16] + ldp d12, d13, [sp, #32] + ldp d14, d15, [sp, #48] + ldp d8, d9, [sp], #80 + ret +.L128_dec_ret: + mov w0, #0x0 + ret +.size unroll8_eor3_aes_gcm_dec_128_kernel,.-unroll8_eor3_aes_gcm_dec_128_kernel +.globl unroll8_eor3_aes_gcm_enc_192_kernel +.type unroll8_eor3_aes_gcm_enc_192_kernel,%function +.align 4 +unroll8_eor3_aes_gcm_enc_192_kernel: + AARCH64_VALID_CALL_TARGET + cbz x1, .L192_enc_ret + stp d8, d9, [sp, #-80]! + lsr x9, x1, #3 + mov x16, x4 + mov x8, x5 + stp d10, d11, [sp, #16] + stp d12, d13, [sp, #32] + stp d14, d15, [sp, #48] + mov x5, #0xc200000000000000 + stp x5, xzr, [sp, #64] + add x10, sp, #64 + + mov x5, x9 + ld1 { v0.16b}, [x16] //CTR block 0 + + mov x15, #0x100000000 //set up counter increment + movi v31.16b, #0x0 + mov v31.d[1], x15 + + rev32 v30.16b, v0.16b //set up reversed counter + + add v30.4s, v30.4s, v31.4s //CTR block 0 + + rev32 v1.16b, v30.16b //CTR block 1 + add v30.4s, v30.4s, v31.4s //CTR block 1 + + rev32 v2.16b, v30.16b //CTR block 2 + add v30.4s, v30.4s, v31.4s //CTR block 2 + + rev32 v3.16b, v30.16b //CTR block 3 + add v30.4s, v30.4s, v31.4s //CTR block 3 + + rev32 v4.16b, v30.16b //CTR block 4 + add v30.4s, v30.4s, v31.4s //CTR block 4 + sub x5, x5, #1 //byte_len - 1 + + and x5, x5, #0xffffffffffffff80 //number of bytes to be processed in main loop (at least 1 byte must be handled by tail) + + rev32 v5.16b, v30.16b //CTR block 5 + add v30.4s, v30.4s, v31.4s //CTR block 5 + ldp q26, q27, [x8, #0] //load rk0, rk1 + + add x5, x5, x0 + + rev32 v6.16b, v30.16b //CTR block 6 + add v30.4s, v30.4s, v31.4s //CTR block 6 + + rev32 v7.16b, v30.16b //CTR block 7 + + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 5 - round 0 + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 4 - round 0 + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 3 - round 0 + + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 0 - round 0 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 1 - round 0 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 7 - round 0 + + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 6 - round 0 + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 2 - round 0 + ldp q28, q26, [x8, #32] //load rk2, rk3 + + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 5 - round 1 + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 7 - round 1 + + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 2 - round 1 + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 3 - round 1 + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 6 - round 1 + + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 5 - round 2 + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 4 - round 1 + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 0 - round 1 + + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 1 - round 1 + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 7 - round 2 + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 3 - round 2 + + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 2 - round 2 + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 0 - round 2 + + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 1 - round 2 + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 4 - round 2 + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 6 - round 2 + + ldp q27, q28, [x8, #64] //load rk4, rk5 + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 4 - round 3 + + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 7 - round 3 + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 3 - round 3 + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 2 - round 3 + + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 1 - round 3 + + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 0 - round 3 + + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 6 - round 3 + + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 0 - round 4 + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 1 - round 4 + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 5 - round 3 + + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 3 - round 4 + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 2 - round 4 + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 4 - round 4 + + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 6 - round 4 + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 7 - round 4 + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 5 - round 4 + + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 1 - round 5 + ldp q26, q27, [x8, #96] //load rk6, rk7 + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 2 - round 5 + + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 4 - round 5 + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 7 - round 5 + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 0 - round 5 + + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 5 - round 5 + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 6 - round 5 + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 3 - round 5 + + add v30.4s, v30.4s, v31.4s //CTR block 7 + + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 5 - round 6 + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 4 - round 6 + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 3 - round 6 + + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 2 - round 6 + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 6 - round 6 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 1 - round 6 + + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 0 - round 6 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 7 - round 6 + ldp q28, q26, [x8, #128] //load rk8, rk9 + + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 6 - round 7 + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 3 - round 7 + + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 4 - round 7 + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 0 - round 7 + + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 7 - round 7 + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 1 - round 7 + + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 2 - round 7 + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 5 - round 7 + + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 7 - round 8 + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 0 - round 8 + + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 4 - round 8 + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 3 - round 8 + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 5 - round 8 + + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 2 - round 8 + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 1 - round 8 + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 6 - round 8 + + add x4, x0, x1, lsr #3 //end_input_ptr + cmp x0, x5 //check if we have <= 8 blocks + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 3 - round 9 + + ld1 { v19.16b}, [x3] + ext v19.16b, v19.16b, v19.16b, #8 + rev64 v19.16b, v19.16b + ldp q27, q28, [x8, #160] //load rk10, rk11 + + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 6 - round 9 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 1 - round 9 + + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 5 - round 9 + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 2 - round 9 + + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 0 - round 9 + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 4 - round 9 + + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 14 - round 10 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 7 - round 9 + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 11 - round 10 + + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 9 - round 10 + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 13 - round 10 + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 12 - round 10 + + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8 - round 10 + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 10 - round 10 + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 15 - round 10 + + aese v6.16b, v28.16b //AES block 14 - round 11 + aese v3.16b, v28.16b //AES block 11 - round 11 + + aese v4.16b, v28.16b //AES block 12 - round 11 + aese v7.16b, v28.16b //AES block 15 - round 11 + ldr q26, [x8, #192] //load rk12 + + aese v1.16b, v28.16b //AES block 9 - round 11 + aese v5.16b, v28.16b //AES block 13 - round 11 + + aese v2.16b, v28.16b //AES block 10 - round 11 + aese v0.16b, v28.16b //AES block 8 - round 11 + b.ge .L192_enc_tail //handle tail + + ldp q8, q9, [x0], #32 //AES block 0, 1 - load plaintext + + ldp q10, q11, [x0], #32 //AES block 2, 3 - load plaintext + + ldp q12, q13, [x0], #32 //AES block 4, 5 - load plaintext + + ldp q14, q15, [x0], #32 //AES block 6, 7 - load plaintext + +.inst 0xce006908 //eor3 v8.16b, v8.16b, v0.16b, v26.16b //AES block 0 - result + rev32 v0.16b, v30.16b //CTR block 8 + add v30.4s, v30.4s, v31.4s //CTR block 8 + +.inst 0xce03696b //eor3 v11.16b, v11.16b, v3.16b, v26.16b //AES block 3 - result +.inst 0xce016929 //eor3 v9.16b, v9.16b, v1.16b, v26.16b //AES block 1 - result + + rev32 v1.16b, v30.16b //CTR block 9 + add v30.4s, v30.4s, v31.4s //CTR block 9 +.inst 0xce04698c //eor3 v12.16b, v12.16b, v4.16b, v26.16b //AES block 4 - result + +.inst 0xce0569ad //eor3 v13.16b, v13.16b, v5.16b, v26.16b //AES block 5 - result +.inst 0xce0769ef //eor3 v15.16b, v15.16b, v7.16b, v26.16b //AES block 7 - result + stp q8, q9, [x2], #32 //AES block 0, 1 - store result + +.inst 0xce02694a //eor3 v10.16b, v10.16b, v2.16b, v26.16b //AES block 2 - result + rev32 v2.16b, v30.16b //CTR block 10 + add v30.4s, v30.4s, v31.4s //CTR block 10 + + stp q10, q11, [x2], #32 //AES block 2, 3 - store result + cmp x0, x5 //check if we have <= 8 blocks + + rev32 v3.16b, v30.16b //CTR block 11 + add v30.4s, v30.4s, v31.4s //CTR block 11 +.inst 0xce0669ce //eor3 v14.16b, v14.16b, v6.16b, v26.16b //AES block 6 - result + + stp q12, q13, [x2], #32 //AES block 4, 5 - store result + + rev32 v4.16b, v30.16b //CTR block 12 + stp q14, q15, [x2], #32 //AES block 6, 7 - store result + add v30.4s, v30.4s, v31.4s //CTR block 12 + + b.ge .L192_enc_prepretail //do prepretail + +.L192_enc_main_loop: //main loop start + rev64 v12.16b, v12.16b //GHASH block 8k+4 (t0, t1, and t2 free) + ldp q26, q27, [x8, #0] //load rk0, rk1 + rev64 v10.16b, v10.16b //GHASH block 8k+2 + + rev32 v5.16b, v30.16b //CTR block 8k+13 + add v30.4s, v30.4s, v31.4s //CTR block 8k+13 + ldr q23, [x3, #176] //load h7l | h7h + ext v23.16b, v23.16b, v23.16b, #8 + ldr q25, [x3, #208] //load h8l | h8h + ext v25.16b, v25.16b, v25.16b, #8 + + ext v19.16b, v19.16b, v19.16b, #8 //PRE 0 + rev64 v8.16b, v8.16b //GHASH block 8k + ldr q20, [x3, #128] //load h5l | h5h + ext v20.16b, v20.16b, v20.16b, #8 + ldr q22, [x3, #160] //load h6l | h6h + ext v22.16b, v22.16b, v22.16b, #8 + + rev64 v9.16b, v9.16b //GHASH block 8k+1 + rev32 v6.16b, v30.16b //CTR block 8k+14 + add v30.4s, v30.4s, v31.4s //CTR block 8k+14 + + eor v8.16b, v8.16b, v19.16b //PRE 1 + rev64 v11.16b, v11.16b //GHASH block 8k+3 + rev64 v13.16b, v13.16b //GHASH block 8k+5 (t0, t1, t2 and t3 free) + + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 0 + rev32 v7.16b, v30.16b //CTR block 8k+15 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 0 + + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 0 + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 0 + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 0 + + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 0 + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 0 + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 0 + + ldp q28, q26, [x8, #32] //load rk2, rk3 + pmull2 v17.1q, v8.2d, v25.2d //GHASH block 8k - high + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 1 + + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 1 + pmull2 v16.1q, v9.2d, v23.2d //GHASH block 8k+1 - high + pmull v23.1q, v9.1d, v23.1d //GHASH block 8k+1 - low + + trn1 v18.2d, v9.2d, v8.2d //GHASH block 8k, 8k+1 - mid + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 1 + ldr q21, [x3, #144] //load h6k | h5k + ldr q24, [x3, #192] //load h8k | h7k + + pmull2 v29.1q, v10.2d, v22.2d //GHASH block 8k+2 - high + pmull v19.1q, v8.1d, v25.1d //GHASH block 8k - low + trn2 v8.2d, v9.2d, v8.2d //GHASH block 8k, 8k+1 - mid + + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 1 + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 1 + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 1 + + eor v17.16b, v17.16b, v16.16b //GHASH block 8k+1 - high + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 1 + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 1 + + pmull2 v9.1q, v11.2d, v20.2d //GHASH block 8k+3 - high + eor v8.16b, v8.16b, v18.16b //GHASH block 8k, 8k+1 - mid + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 2 + + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 2 + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 2 + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 2 + + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 2 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 3 +.inst 0xce1d2631 //eor3 v17.16b, v17.16b, v29.16b, v9.16b //GHASH block 8k+2, 8k+3 - high + + pmull v22.1q, v10.1d, v22.1d //GHASH block 8k+2 - low + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 2 + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 3 + + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 2 + trn1 v29.2d, v11.2d, v10.2d //GHASH block 8k+2, 8k+3 - mid + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 2 + + trn2 v10.2d, v11.2d, v10.2d //GHASH block 8k+2, 8k+3 - mid + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 3 + ldp q27, q28, [x8, #64] //load rk4, rk5 + + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 3 + eor v19.16b, v19.16b, v23.16b //GHASH block 8k+1 - low + ldr q23, [x3, #80] //load h3l | h3h + ext v23.16b, v23.16b, v23.16b, #8 + ldr q25, [x3, #112] //load h4l | h4h + ext v25.16b, v25.16b, v25.16b, #8 + + pmull2 v18.1q, v8.2d, v24.2d //GHASH block 8k - mid + pmull v24.1q, v8.1d, v24.1d //GHASH block 8k+1 - mid + pmull v20.1q, v11.1d, v20.1d //GHASH block 8k+3 - low + + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 3 + eor v10.16b, v10.16b, v29.16b //GHASH block 8k+2, 8k+3 - mid + trn1 v16.2d, v13.2d, v12.2d //GHASH block 8k+4, 8k+5 - mid + + eor v18.16b, v18.16b, v24.16b //GHASH block 8k+1 - mid + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 3 +.inst 0xce165273 //eor3 v19.16b, v19.16b, v22.16b, v20.16b //GHASH block 8k+2, 8k+3 - low + + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 4 + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 4 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 3 + + pmull2 v29.1q, v10.2d, v21.2d //GHASH block 8k+2 - mid + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 4 + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 3 + + pmull v21.1q, v10.1d, v21.1d //GHASH block 8k+3 - mid + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 4 + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 4 + + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 4 + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 4 + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 4 + +.inst 0xce157652 //eor3 v18.16b, v18.16b, v21.16b, v29.16b //GHASH block 8k+2, 8k+3 - mid + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 5 + ldr q20, [x3, #32] //load h1l | h1h + ext v20.16b, v20.16b, v20.16b, #8 + ldr q22, [x3, #64] //load h2l | h2h + ext v22.16b, v22.16b, v22.16b, #8 + + ldp q26, q27, [x8, #96] //load rk6, rk7 + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 5 + rev64 v15.16b, v15.16b //GHASH block 8k+7 (t0, t1, t2 and t3 free) + + rev64 v14.16b, v14.16b //GHASH block 8k+6 (t0, t1, and t2 free) + pmull2 v8.1q, v12.2d, v25.2d //GHASH block 8k+4 - high + pmull v25.1q, v12.1d, v25.1d //GHASH block 8k+4 - low + + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 5 + trn2 v12.2d, v13.2d, v12.2d //GHASH block 8k+4, 8k+5 - mid + + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 5 + ldr q21, [x3, #48] //load h2k | h1k + ldr q24, [x3, #96] //load h4k | h3k + + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 5 + pmull2 v10.1q, v13.2d, v23.2d //GHASH block 8k+5 - high + eor v12.16b, v12.16b, v16.16b //GHASH block 8k+4, 8k+5 - mid + + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 5 + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 5 + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 5 + + pmull v23.1q, v13.1d, v23.1d //GHASH block 8k+5 - low + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 6 + trn1 v13.2d, v15.2d, v14.2d //GHASH block 8k+6, 8k+7 - mid + + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 6 + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 6 + pmull2 v11.1q, v14.2d, v22.2d //GHASH block 8k+6 - high + + pmull v22.1q, v14.1d, v22.1d //GHASH block 8k+6 - low + trn2 v14.2d, v15.2d, v14.2d //GHASH block 8k+6, 8k+7 - mid + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 6 + + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 6 + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 6 + + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 6 + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 7 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 6 + + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 7 + eor v14.16b, v14.16b, v13.16b //GHASH block 8k+6, 8k+7 - mid + + pmull2 v16.1q, v12.2d, v24.2d //GHASH block 8k+4 - mid + ldp q28, q26, [x8, #128] //load rk8, rk9 + pmull v24.1q, v12.1d, v24.1d //GHASH block 8k+5 - mid + + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 7 + pmull2 v12.1q, v15.2d, v20.2d //GHASH block 8k+7 - high + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 7 + +.inst 0xce184252 //eor3 v18.16b, v18.16b, v24.16b, v16.16b //GHASH block 8k+4, 8k+5 - mid + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 7 + add v30.4s, v30.4s, v31.4s //CTR block 8k+15 + + ldr d16, [x10] //MODULO - load modulo constant +.inst 0xce082a31 //eor3 v17.16b, v17.16b, v8.16b, v10.16b //GHASH block 8k+4, 8k+5 - high + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 7 + + pmull2 v13.1q, v14.2d, v21.2d //GHASH block 8k+6 - mid + pmull v20.1q, v15.1d, v20.1d //GHASH block 8k+7 - low + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 7 + + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 8 + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 8 + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 8 + + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 8 +.inst 0xce195e73 //eor3 v19.16b, v19.16b, v25.16b, v23.16b //GHASH block 8k+4, 8k+5 - low + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 7 + + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 8 + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 8 + pmull v21.1q, v14.1d, v21.1d //GHASH block 8k+7 - mid + + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 8 + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 8 + ldp q27, q28, [x8, #160] //load rk10, rk11 + +.inst 0xce165273 //eor3 v19.16b, v19.16b, v22.16b, v20.16b //GHASH block 8k+6, 8k+7 - low + rev32 v20.16b, v30.16b //CTR block 8k+16 + add v30.4s, v30.4s, v31.4s //CTR block 8k+16 + + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 9 +.inst 0xce153652 //eor3 v18.16b, v18.16b, v21.16b, v13.16b //GHASH block 8k+6, 8k+7 - mid +.inst 0xce0b3231 //eor3 v17.16b, v17.16b, v11.16b, v12.16b //GHASH block 8k+6, 8k+7 - high + + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 9 + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 9 + ldp q8, q9, [x0], #32 //AES block 8k+8, 8k+9 - load plaintext + + pmull v21.1q, v17.1d, v16.1d //MODULO - top 64b align with mid + rev32 v22.16b, v30.16b //CTR block 8k+17 + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 9 + + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 9 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 9 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 9 + +.inst 0xce114e52 //eor3 v18.16b, v18.16b, v17.16b, v19.16b //MODULO - karatsuba tidy up + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 9 + add v30.4s, v30.4s, v31.4s //CTR block 8k+17 + + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 10 + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 10 + ldr q26, [x8, #192] //load rk12 + ext v29.16b, v17.16b, v17.16b, #8 //MODULO - other top alignment + + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 10 + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 10 + ldp q10, q11, [x0], #32 //AES block 8k+10, 8k+11 - load plaintext + + aese v4.16b, v28.16b //AES block 8k+12 - round 11 +.inst 0xce1d5652 //eor3 v18.16b, v18.16b, v29.16b, v21.16b //MODULO - fold into mid + ldp q12, q13, [x0], #32 //AES block 8k+12, 8k+13 - load plaintext + + ldp q14, q15, [x0], #32 //AES block 8k+14, 8k+15 - load plaintext + aese v2.16b, v28.16b //AES block 8k+10 - round 11 + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 10 + + rev32 v23.16b, v30.16b //CTR block 8k+18 + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 10 + + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 10 + pmull v17.1q, v18.1d, v16.1d //MODULO - mid 64b align with low + + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 10 + aese v5.16b, v28.16b //AES block 8k+13 - round 11 + add v30.4s, v30.4s, v31.4s //CTR block 8k+18 + + aese v7.16b, v28.16b //AES block 8k+15 - round 11 + aese v0.16b, v28.16b //AES block 8k+8 - round 11 +.inst 0xce04698c //eor3 v12.16b, v12.16b, v4.16b, v26.16b //AES block 4 - result + + aese v6.16b, v28.16b //AES block 8k+14 - round 11 + aese v3.16b, v28.16b //AES block 8k+11 - round 11 + aese v1.16b, v28.16b //AES block 8k+9 - round 11 + + rev32 v25.16b, v30.16b //CTR block 8k+19 + add v30.4s, v30.4s, v31.4s //CTR block 8k+19 +.inst 0xce0769ef //eor3 v15.16b, v15.16b, v7.16b, v26.16b //AES block 7 - result + +.inst 0xce02694a //eor3 v10.16b, v10.16b, v2.16b, v26.16b //AES block 8k+10 - result +.inst 0xce006908 //eor3 v8.16b, v8.16b, v0.16b, v26.16b //AES block 8k+8 - result + mov v2.16b, v23.16b //CTR block 8k+18 + +.inst 0xce016929 //eor3 v9.16b, v9.16b, v1.16b, v26.16b //AES block 8k+9 - result + mov v1.16b, v22.16b //CTR block 8k+17 + stp q8, q9, [x2], #32 //AES block 8k+8, 8k+9 - store result + ext v21.16b, v18.16b, v18.16b, #8 //MODULO - other mid alignment + +.inst 0xce0669ce //eor3 v14.16b, v14.16b, v6.16b, v26.16b //AES block 6 - result + mov v0.16b, v20.16b //CTR block 8k+16 + rev32 v4.16b, v30.16b //CTR block 8k+20 + + add v30.4s, v30.4s, v31.4s //CTR block 8k+20 +.inst 0xce0569ad //eor3 v13.16b, v13.16b, v5.16b, v26.16b //AES block 5 - result +.inst 0xce115673 //eor3 v19.16b, v19.16b, v17.16b, v21.16b //MODULO - fold into low + +.inst 0xce03696b //eor3 v11.16b, v11.16b, v3.16b, v26.16b //AES block 8k+11 - result + mov v3.16b, v25.16b //CTR block 8k+19 + + stp q10, q11, [x2], #32 //AES block 8k+10, 8k+11 - store result + + stp q12, q13, [x2], #32 //AES block 8k+12, 8k+13 - store result + + cmp x0, x5 //.LOOP CONTROL + stp q14, q15, [x2], #32 //AES block 8k+14, 8k+15 - store result + b.lt .L192_enc_main_loop + +.L192_enc_prepretail: //PREPRETAIL + rev32 v5.16b, v30.16b //CTR block 8k+13 + ldp q26, q27, [x8, #0] //load rk0, rk1 + add v30.4s, v30.4s, v31.4s //CTR block 8k+13 + + ldr q23, [x3, #176] //load h7l | h7h + ext v23.16b, v23.16b, v23.16b, #8 + ldr q25, [x3, #208] //load h8l | h8h + ext v25.16b, v25.16b, v25.16b, #8 + rev64 v8.16b, v8.16b //GHASH block 8k + ext v19.16b, v19.16b, v19.16b, #8 //PRE 0 + + rev32 v6.16b, v30.16b //CTR block 8k+14 + add v30.4s, v30.4s, v31.4s //CTR block 8k+14 + ldr q21, [x3, #144] //load h6k | h5k + ldr q24, [x3, #192] //load h8k | h7k + + rev64 v11.16b, v11.16b //GHASH block 8k+3 + rev64 v10.16b, v10.16b //GHASH block 8k+2 + ldr q20, [x3, #128] //load h5l | h5h + ext v20.16b, v20.16b, v20.16b, #8 + ldr q22, [x3, #160] //load h6l | h6h + ext v22.16b, v22.16b, v22.16b, #8 + + eor v8.16b, v8.16b, v19.16b //PRE 1 + rev32 v7.16b, v30.16b //CTR block 8k+15 + rev64 v9.16b, v9.16b //GHASH block 8k+1 + + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 0 + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 0 + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 0 + + pmull2 v16.1q, v9.2d, v23.2d //GHASH block 8k+1 - high + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 0 + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 0 + + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 0 + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 0 + pmull2 v17.1q, v8.2d, v25.2d //GHASH block 8k - high + + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 1 + pmull v19.1q, v8.1d, v25.1d //GHASH block 8k - low + trn1 v18.2d, v9.2d, v8.2d //GHASH block 8k, 8k+1 - mid + + trn2 v8.2d, v9.2d, v8.2d //GHASH block 8k, 8k+1 - mid + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 0 + ldp q28, q26, [x8, #32] //load rk2, rk3 + + pmull v23.1q, v9.1d, v23.1d //GHASH block 8k+1 - low + eor v17.16b, v17.16b, v16.16b //GHASH block 8k+1 - high + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 1 + + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 1 + eor v8.16b, v8.16b, v18.16b //GHASH block 8k, 8k+1 - mid + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 1 + + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 1 + pmull2 v9.1q, v11.2d, v20.2d //GHASH block 8k+3 - high + pmull2 v29.1q, v10.2d, v22.2d //GHASH block 8k+2 - high + + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 1 + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 1 + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 1 + + pmull v22.1q, v10.1d, v22.1d //GHASH block 8k+2 - low + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 2 + eor v19.16b, v19.16b, v23.16b //GHASH block 8k+1 - low + + pmull v20.1q, v11.1d, v20.1d //GHASH block 8k+3 - low + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 2 +.inst 0xce1d2631 //eor3 v17.16b, v17.16b, v29.16b, v9.16b //GHASH block 8k+2, 8k+3 - high + + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 3 + trn1 v29.2d, v11.2d, v10.2d //GHASH block 8k+2, 8k+3 - mid + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 2 + + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 2 + pmull2 v18.1q, v8.2d, v24.2d //GHASH block 8k - mid + trn2 v10.2d, v11.2d, v10.2d //GHASH block 8k+2, 8k+3 - mid + + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 2 + rev64 v13.16b, v13.16b //GHASH block 8k+5 (t0, t1, t2 and t3 free) + rev64 v14.16b, v14.16b //GHASH block 8k+6 (t0, t1, and t2 free) + + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 2 + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 2 + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 2 + + eor v10.16b, v10.16b, v29.16b //GHASH block 8k+2, 8k+3 - mid + pmull v24.1q, v8.1d, v24.1d //GHASH block 8k+1 - mid + ldp q27, q28, [x8, #64] //load rk4, rk5 + + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 3 + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 3 + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 3 + + eor v18.16b, v18.16b, v24.16b //GHASH block 8k+1 - mid +.inst 0xce165273 //eor3 v19.16b, v19.16b, v22.16b, v20.16b //GHASH block 8k+2, 8k+3 - low + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 3 + + ldr q23, [x3, #80] //load h3l | h3h + ext v23.16b, v23.16b, v23.16b, #8 + ldr q25, [x3, #112] //load h4l | h4h + ext v25.16b, v25.16b, v25.16b, #8 + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 3 + pmull2 v29.1q, v10.2d, v21.2d //GHASH block 8k+2 - mid + + ldr q20, [x3, #32] //load h1l | h1h + ext v20.16b, v20.16b, v20.16b, #8 + ldr q22, [x3, #64] //load h2l | h2h + ext v22.16b, v22.16b, v22.16b, #8 + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 3 + rev64 v12.16b, v12.16b //GHASH block 8k+4 (t0, t1, and t2 free) + + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 3 + pmull v21.1q, v10.1d, v21.1d //GHASH block 8k+3 - mid + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 4 + + trn1 v16.2d, v13.2d, v12.2d //GHASH block 8k+4, 8k+5 - mid + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 4 + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 4 + +.inst 0xce157652 //eor3 v18.16b, v18.16b, v21.16b, v29.16b //GHASH block 8k+2, 8k+3 - mid + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 4 + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 4 + + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 4 + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 4 + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 4 + + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 5 + rev64 v15.16b, v15.16b //GHASH block 8k+7 (t0, t1, t2 and t3 free) + ldr q21, [x3, #48] //load h2k | h1k + ldr q24, [x3, #96] //load h4k | h3k + + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 5 + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 5 + ldp q26, q27, [x8, #96] //load rk6, rk7 + + pmull2 v11.1q, v14.2d, v22.2d //GHASH block 8k+6 - high + pmull2 v8.1q, v12.2d, v25.2d //GHASH block 8k+4 - high + pmull v25.1q, v12.1d, v25.1d //GHASH block 8k+4 - low + + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 5 + trn2 v12.2d, v13.2d, v12.2d //GHASH block 8k+4, 8k+5 - mid + + pmull2 v10.1q, v13.2d, v23.2d //GHASH block 8k+5 - high + pmull v23.1q, v13.1d, v23.1d //GHASH block 8k+5 - low + pmull v22.1q, v14.1d, v22.1d //GHASH block 8k+6 - low + + trn1 v13.2d, v15.2d, v14.2d //GHASH block 8k+6, 8k+7 - mid + eor v12.16b, v12.16b, v16.16b //GHASH block 8k+4, 8k+5 - mid + trn2 v14.2d, v15.2d, v14.2d //GHASH block 8k+6, 8k+7 - mid + + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 5 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 6 + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 5 + + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 5 + eor v14.16b, v14.16b, v13.16b //GHASH block 8k+6, 8k+7 - mid + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 5 + + pmull2 v16.1q, v12.2d, v24.2d //GHASH block 8k+4 - mid + pmull v24.1q, v12.1d, v24.1d //GHASH block 8k+5 - mid + + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 6 + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 6 + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 7 + + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 6 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 6 +.inst 0xce184252 //eor3 v18.16b, v18.16b, v24.16b, v16.16b //GHASH block 8k+4, 8k+5 - mid + + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 6 +.inst 0xce082a31 //eor3 v17.16b, v17.16b, v8.16b, v10.16b //GHASH block 8k+4, 8k+5 - high + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 7 + + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 6 + ldr d16, [x10] //MODULO - load modulo constant + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 6 + + pmull2 v13.1q, v14.2d, v21.2d //GHASH block 8k+6 - mid + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 7 +.inst 0xce195e73 //eor3 v19.16b, v19.16b, v25.16b, v23.16b //GHASH block 8k+4, 8k+5 - low + + pmull2 v12.1q, v15.2d, v20.2d //GHASH block 8k+7 - high + pmull v21.1q, v14.1d, v21.1d //GHASH block 8k+7 - mid + pmull v20.1q, v15.1d, v20.1d //GHASH block 8k+7 - low + + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 7 + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 7 + ldp q28, q26, [x8, #128] //load rk8, rk9 + + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 7 +.inst 0xce153652 //eor3 v18.16b, v18.16b, v21.16b, v13.16b //GHASH block 8k+6, 8k+7 - mid + +.inst 0xce165273 //eor3 v19.16b, v19.16b, v22.16b, v20.16b //GHASH block 8k+6, 8k+7 - low +.inst 0xce0b3231 //eor3 v17.16b, v17.16b, v11.16b, v12.16b //GHASH block 8k+6, 8k+7 - high + +.inst 0xce114e52 //eor3 v18.16b, v18.16b, v17.16b, v19.16b //MODULO - karatsuba tidy up + ext v29.16b, v17.16b, v17.16b, #8 //MODULO - other top alignment + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 7 + pmull v21.1q, v17.1d, v16.1d //MODULO - top 64b align with mid + + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 8 + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 8 + + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 7 + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 8 +.inst 0xce1d5652 //eor3 v18.16b, v18.16b, v29.16b, v21.16b //MODULO - fold into mid + + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 8 + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 9 + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 8 + + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 8 + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 8 + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 8 + + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 9 + ldp q27, q28, [x8, #160] //load rk10, rk11 + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 9 + + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 9 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 9 + + ext v21.16b, v18.16b, v18.16b, #8 //MODULO - other mid alignment + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 9 + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 9 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 9 + + pmull v17.1q, v18.1d, v16.1d //MODULO - mid 64b align with low + ldr q26, [x8, #192] //load rk12 + + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 10 + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 10 + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 10 + +.inst 0xce115673 //eor3 v19.16b, v19.16b, v17.16b, v21.16b //MODULO - fold into low + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 10 + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 10 + + aese v1.16b, v28.16b //AES block 8k+9 - round 11 + aese v7.16b, v28.16b //AES block 8k+15 - round 11 + + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 10 + aese v3.16b, v28.16b //AES block 8k+11 - round 11 + + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 10 + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 10 + + add v30.4s, v30.4s, v31.4s //CTR block 8k+15 + aese v2.16b, v28.16b //AES block 8k+10 - round 11 + aese v0.16b, v28.16b //AES block 8k+8 - round 11 + + aese v6.16b, v28.16b //AES block 8k+14 - round 11 + aese v4.16b, v28.16b //AES block 8k+12 - round 11 + aese v5.16b, v28.16b //AES block 8k+13 - round 11 + +.L192_enc_tail: //TAIL + + ldp q20, q21, [x3, #128] //load h5l | h5h + ext v20.16b, v20.16b, v20.16b, #8 + sub x5, x4, x0 //main_end_input_ptr is number of bytes left to process + + ldr q8, [x0], #16 //AES block 8k+8 - l3ad plaintext + + ldp q24, q25, [x3, #192] //load h8k | h7k + ext v25.16b, v25.16b, v25.16b, #8 + + mov v29.16b, v26.16b + + ldp q22, q23, [x3, #160] //load h6l | h6h + ext v22.16b, v22.16b, v22.16b, #8 + ext v23.16b, v23.16b, v23.16b, #8 + cmp x5, #112 + +.inst 0xce007509 //eor3 v9.16b, v8.16b, v0.16b, v29.16b //AES block 8k+8 - result + ext v16.16b, v19.16b, v19.16b, #8 //prepare final partial tag + b.gt .L192_enc_blocks_more_than_7 + + cmp x5, #96 + mov v7.16b, v6.16b + movi v17.8b, #0 + + mov v6.16b, v5.16b + movi v19.8b, #0 + sub v30.4s, v30.4s, v31.4s + + mov v5.16b, v4.16b + mov v4.16b, v3.16b + mov v3.16b, v2.16b + + mov v2.16b, v1.16b + movi v18.8b, #0 + b.gt .L192_enc_blocks_more_than_6 + + mov v7.16b, v6.16b + cmp x5, #80 + + mov v6.16b, v5.16b + mov v5.16b, v4.16b + mov v4.16b, v3.16b + + mov v3.16b, v1.16b + sub v30.4s, v30.4s, v31.4s + b.gt .L192_enc_blocks_more_than_5 + + cmp x5, #64 + sub v30.4s, v30.4s, v31.4s + + mov v7.16b, v6.16b + mov v6.16b, v5.16b + mov v5.16b, v4.16b + + mov v4.16b, v1.16b + b.gt .L192_enc_blocks_more_than_4 + + mov v7.16b, v6.16b + mov v6.16b, v5.16b + mov v5.16b, v1.16b + + sub v30.4s, v30.4s, v31.4s + cmp x5, #48 + b.gt .L192_enc_blocks_more_than_3 + + mov v7.16b, v6.16b + mov v6.16b, v1.16b + sub v30.4s, v30.4s, v31.4s + + ldr q24, [x3, #96] //load h4k | h3k + cmp x5, #32 + b.gt .L192_enc_blocks_more_than_2 + + sub v30.4s, v30.4s, v31.4s + + cmp x5, #16 + mov v7.16b, v1.16b + b.gt .L192_enc_blocks_more_than_1 + + sub v30.4s, v30.4s, v31.4s + ldr q21, [x3, #48] //load h2k | h1k + b .L192_enc_blocks_less_than_1 +.L192_enc_blocks_more_than_7: //blocks left > 7 + st1 { v9.16b}, [x2], #16 //AES final-7 block - store result + + rev64 v8.16b, v9.16b //GHASH final-7 block + ins v18.d[0], v24.d[1] //GHASH final-7 block - mid + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + + ins v27.d[0], v8.d[1] //GHASH final-7 block - mid + + ldr q9, [x0], #16 //AES final-6 block - load plaintext + + eor v27.8b, v27.8b, v8.8b //GHASH final-7 block - mid + movi v16.8b, #0 //suppress further partial tag feed in + pmull v19.1q, v8.1d, v25.1d //GHASH final-7 block - low + + pmull2 v17.1q, v8.2d, v25.2d //GHASH final-7 block - high + + pmull v18.1q, v27.1d, v18.1d //GHASH final-7 block - mid +.inst 0xce017529 //eor3 v9.16b, v9.16b, v1.16b, v29.16b //AES final-6 block - result +.L192_enc_blocks_more_than_6: //blocks left > 6 + + st1 { v9.16b}, [x2], #16 //AES final-6 block - store result + + rev64 v8.16b, v9.16b //GHASH final-6 block + + ldr q9, [x0], #16 //AES final-5 block - load plaintext + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + + ins v27.d[0], v8.d[1] //GHASH final-6 block - mid + + pmull v26.1q, v8.1d, v23.1d //GHASH final-6 block - low +.inst 0xce027529 //eor3 v9.16b, v9.16b, v2.16b, v29.16b //AES final-5 block - result + + movi v16.8b, #0 //suppress further partial tag feed in + pmull2 v28.1q, v8.2d, v23.2d //GHASH final-6 block - high + eor v27.8b, v27.8b, v8.8b //GHASH final-6 block - mid + + pmull v27.1q, v27.1d, v24.1d //GHASH final-6 block - mid + + eor v17.16b, v17.16b, v28.16b //GHASH final-6 block - high + eor v19.16b, v19.16b, v26.16b //GHASH final-6 block - low + + eor v18.16b, v18.16b, v27.16b //GHASH final-6 block - mid +.L192_enc_blocks_more_than_5: //blocks left > 5 + + st1 { v9.16b}, [x2], #16 //AES final-5 block - store result + + rev64 v8.16b, v9.16b //GHASH final-5 block + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + + ins v27.d[0], v8.d[1] //GHASH final-5 block - mid + + ldr q9, [x0], #16 //AES final-4 block - load plaintext + pmull2 v28.1q, v8.2d, v22.2d //GHASH final-5 block - high + + eor v27.8b, v27.8b, v8.8b //GHASH final-5 block - mid + eor v17.16b, v17.16b, v28.16b //GHASH final-5 block - high + + ins v27.d[1], v27.d[0] //GHASH final-5 block - mid + pmull v26.1q, v8.1d, v22.1d //GHASH final-5 block - low + + eor v19.16b, v19.16b, v26.16b //GHASH final-5 block - low + pmull2 v27.1q, v27.2d, v21.2d //GHASH final-5 block - mid + +.inst 0xce037529 //eor3 v9.16b, v9.16b, v3.16b, v29.16b //AES final-4 block - result + movi v16.8b, #0 //suppress further partial tag feed in + + eor v18.16b, v18.16b, v27.16b //GHASH final-5 block - mid +.L192_enc_blocks_more_than_4: //blocks left > 4 + + st1 { v9.16b}, [x2], #16 //AES final-4 block - store result + + rev64 v8.16b, v9.16b //GHASH final-4 block + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + + ldr q9, [x0], #16 //AES final-3 block - load plaintext + pmull2 v28.1q, v8.2d, v20.2d //GHASH final-4 block - high + ins v27.d[0], v8.d[1] //GHASH final-4 block - mid + + pmull v26.1q, v8.1d, v20.1d //GHASH final-4 block - low + eor v17.16b, v17.16b, v28.16b //GHASH final-4 block - high + + eor v27.8b, v27.8b, v8.8b //GHASH final-4 block - mid + + movi v16.8b, #0 //suppress further partial tag feed in + eor v19.16b, v19.16b, v26.16b //GHASH final-4 block - low + + pmull v27.1q, v27.1d, v21.1d //GHASH final-4 block - mid + + eor v18.16b, v18.16b, v27.16b //GHASH final-4 block - mid +.inst 0xce047529 //eor3 v9.16b, v9.16b, v4.16b, v29.16b //AES final-3 block - result +.L192_enc_blocks_more_than_3: //blocks left > 3 + + ldr q24, [x3, #96] //load h4k | h3k + st1 { v9.16b}, [x2], #16 //AES final-3 block - store result + + rev64 v8.16b, v9.16b //GHASH final-3 block + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + movi v16.8b, #0 //suppress further partial tag feed in + + ldr q9, [x0], #16 //AES final-2 block - load plaintext + ldr q25, [x3, #112] //load h4l | h4h + ext v25.16b, v25.16b, v25.16b, #8 + + ins v27.d[0], v8.d[1] //GHASH final-3 block - mid + +.inst 0xce057529 //eor3 v9.16b, v9.16b, v5.16b, v29.16b //AES final-2 block - result + eor v27.8b, v27.8b, v8.8b //GHASH final-3 block - mid + + ins v27.d[1], v27.d[0] //GHASH final-3 block - mid + pmull v26.1q, v8.1d, v25.1d //GHASH final-3 block - low + + pmull2 v28.1q, v8.2d, v25.2d //GHASH final-3 block - high + pmull2 v27.1q, v27.2d, v24.2d //GHASH final-3 block - mid + + eor v19.16b, v19.16b, v26.16b //GHASH final-3 block - low + + eor v18.16b, v18.16b, v27.16b //GHASH final-3 block - mid + eor v17.16b, v17.16b, v28.16b //GHASH final-3 block - high +.L192_enc_blocks_more_than_2: //blocks left > 2 + + st1 { v9.16b}, [x2], #16 //AES final-2 block - store result + + rev64 v8.16b, v9.16b //GHASH final-2 block + ldr q23, [x3, #80] //load h3l | h3h + ext v23.16b, v23.16b, v23.16b, #8 + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + + ldr q9, [x0], #16 //AES final-1 block - load plaintext + ins v27.d[0], v8.d[1] //GHASH final-2 block - mid + + eor v27.8b, v27.8b, v8.8b //GHASH final-2 block - mid + + pmull v26.1q, v8.1d, v23.1d //GHASH final-2 block - low + pmull2 v28.1q, v8.2d, v23.2d //GHASH final-2 block - high + movi v16.8b, #0 //suppress further partial tag feed in + + pmull v27.1q, v27.1d, v24.1d //GHASH final-2 block - mid + + eor v19.16b, v19.16b, v26.16b //GHASH final-2 block - low + eor v17.16b, v17.16b, v28.16b //GHASH final-2 block - high + + eor v18.16b, v18.16b, v27.16b //GHASH final-2 block - mid +.inst 0xce067529 //eor3 v9.16b, v9.16b, v6.16b, v29.16b //AES final-1 block - result +.L192_enc_blocks_more_than_1: //blocks left > 1 + + ldr q22, [x3, #64] //load h1l | h1h + ext v22.16b, v22.16b, v22.16b, #8 + st1 { v9.16b}, [x2], #16 //AES final-1 block - store result + + rev64 v8.16b, v9.16b //GHASH final-1 block + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + + ins v27.d[0], v8.d[1] //GHASH final-1 block - mid + pmull v26.1q, v8.1d, v22.1d //GHASH final-1 block - low + + eor v19.16b, v19.16b, v26.16b //GHASH final-1 block - low + pmull2 v28.1q, v8.2d, v22.2d //GHASH final-1 block - high + eor v27.8b, v27.8b, v8.8b //GHASH final-1 block - mid + + ldr q9, [x0], #16 //AES final block - load plaintext + ldr q21, [x3, #48] //load h2k | h1k + + ins v27.d[1], v27.d[0] //GHASH final-1 block - mid + +.inst 0xce077529 //eor3 v9.16b, v9.16b, v7.16b, v29.16b //AES final block - result + pmull2 v27.1q, v27.2d, v21.2d //GHASH final-1 block - mid + + movi v16.8b, #0 //suppress further partial tag feed in + + eor v18.16b, v18.16b, v27.16b //GHASH final-1 block - mid + eor v17.16b, v17.16b, v28.16b //GHASH final-1 block - high +.L192_enc_blocks_less_than_1: //blocks left <= 1 + + mvn x6, xzr //temp0_x = 0xffffffffffffffff + and x1, x1, #127 //bit_length %= 128 + + sub x1, x1, #128 //bit_length -= 128 + + neg x1, x1 //bit_length = 128 - #bits in input (in range [1,128]) + + and x1, x1, #127 //bit_length %= 128 + + lsr x6, x6, x1 //temp0_x is mask for top 64b of last block + cmp x1, #64 + mvn x7, xzr //temp1_x = 0xffffffffffffffff + + csel x13, x7, x6, lt + csel x14, x6, xzr, lt + + mov v0.d[1], x14 + ldr q20, [x3, #32] //load h1l | h1h + ext v20.16b, v20.16b, v20.16b, #8 + + ld1 { v26.16b}, [x2] //load existing bytes where the possibly partial last block is to be stored + mov v0.d[0], x13 //ctr0b is mask for last block + + and v9.16b, v9.16b, v0.16b //possibly partial last block has zeroes in highest bits + + rev64 v8.16b, v9.16b //GHASH final block + bif v9.16b, v26.16b, v0.16b //insert existing bytes in top end of result before storing + + st1 { v9.16b}, [x2] //store all 16B + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + + ins v16.d[0], v8.d[1] //GHASH final block - mid + pmull2 v28.1q, v8.2d, v20.2d //GHASH final block - high + + eor v17.16b, v17.16b, v28.16b //GHASH final block - high + pmull v26.1q, v8.1d, v20.1d //GHASH final block - low + + eor v16.8b, v16.8b, v8.8b //GHASH final block - mid + + pmull v16.1q, v16.1d, v21.1d //GHASH final block - mid + + eor v18.16b, v18.16b, v16.16b //GHASH final block - mid + ldr d16, [x10] //MODULO - load modulo constant + + eor v19.16b, v19.16b, v26.16b //GHASH final block - low + ext v21.16b, v17.16b, v17.16b, #8 //MODULO - other top alignment + + rev32 v30.16b, v30.16b + + str q30, [x16] //store the updated counter +.inst 0xce114e52 //eor3 v18.16b, v18.16b, v17.16b, v19.16b //MODULO - karatsuba tidy up + + pmull v29.1q, v17.1d, v16.1d //MODULO - top 64b align with mid + +.inst 0xce1d5652 //eor3 v18.16b, v18.16b, v29.16b, v21.16b //MODULO - fold into mid + + pmull v17.1q, v18.1d, v16.1d //MODULO - mid 64b align with low + ext v21.16b, v18.16b, v18.16b, #8 //MODULO - other mid alignment + +.inst 0xce115673 //eor3 v19.16b, v19.16b, v17.16b, v21.16b //MODULO - fold into low + ext v19.16b, v19.16b, v19.16b, #8 + rev64 v19.16b, v19.16b + st1 { v19.16b }, [x3] + + mov x0, x9 //return sizes + + ldp d10, d11, [sp, #16] + ldp d12, d13, [sp, #32] + ldp d14, d15, [sp, #48] + ldp d8, d9, [sp], #80 + ret + +.L192_enc_ret: + mov w0, #0x0 + ret +.size unroll8_eor3_aes_gcm_enc_192_kernel,.-unroll8_eor3_aes_gcm_enc_192_kernel +.globl unroll8_eor3_aes_gcm_dec_192_kernel +.type unroll8_eor3_aes_gcm_dec_192_kernel,%function +.align 4 +unroll8_eor3_aes_gcm_dec_192_kernel: + AARCH64_VALID_CALL_TARGET + cbz x1, .L192_dec_ret + stp d8, d9, [sp, #-80]! + lsr x9, x1, #3 + mov x16, x4 + mov x8, x5 + stp d10, d11, [sp, #16] + stp d12, d13, [sp, #32] + stp d14, d15, [sp, #48] + mov x5, #0xc200000000000000 + stp x5, xzr, [sp, #64] + add x10, sp, #64 + + mov x5, x9 + ld1 { v0.16b}, [x16] //CTR block 0 + ld1 { v19.16b}, [x3] + + mov x15, #0x100000000 //set up counter increment + movi v31.16b, #0x0 + mov v31.d[1], x15 + + rev32 v30.16b, v0.16b //set up reversed counter + + add v30.4s, v30.4s, v31.4s //CTR block 0 + + rev32 v1.16b, v30.16b //CTR block 1 + add v30.4s, v30.4s, v31.4s //CTR block 1 + + rev32 v2.16b, v30.16b //CTR block 2 + add v30.4s, v30.4s, v31.4s //CTR block 2 + + rev32 v3.16b, v30.16b //CTR block 3 + add v30.4s, v30.4s, v31.4s //CTR block 3 + + rev32 v4.16b, v30.16b //CTR block 4 + add v30.4s, v30.4s, v31.4s //CTR block 4 + + rev32 v5.16b, v30.16b //CTR block 5 + add v30.4s, v30.4s, v31.4s //CTR block 5 + ldp q26, q27, [x8, #0] //load rk0, rk1 + + rev32 v6.16b, v30.16b //CTR block 6 + add v30.4s, v30.4s, v31.4s //CTR block 6 + + rev32 v7.16b, v30.16b //CTR block 7 + + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 3 - round 0 + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 6 - round 0 + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 5 - round 0 + + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 0 - round 0 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 1 - round 0 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 7 - round 0 + + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 2 - round 0 + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 4 - round 0 + ldp q28, q26, [x8, #32] //load rk2, rk3 + + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 1 - round 1 + + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 2 - round 1 + + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 0 - round 1 + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 3 - round 1 + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 7 - round 1 + + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 5 - round 1 + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 6 - round 1 + + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 7 - round 2 + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 0 - round 2 + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 4 - round 1 + + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 5 - round 2 + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 1 - round 2 + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 2 - round 2 + + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 3 - round 2 + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 4 - round 2 + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 6 - round 2 + + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 7 - round 3 + + ldp q27, q28, [x8, #64] //load rk4, rk5 + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 2 - round 3 + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 5 - round 3 + + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 0 - round 3 + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 3 - round 3 + + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 4 - round 3 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 1 - round 3 + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 6 - round 3 + + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 3 - round 4 + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 2 - round 4 + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 5 - round 4 + + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 1 - round 4 + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 7 - round 4 + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 6 - round 4 + + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 0 - round 4 + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 5 - round 5 + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 4 - round 4 + + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 6 - round 5 + ldp q26, q27, [x8, #96] //load rk6, rk7 + + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 0 - round 5 + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 4 - round 5 + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 1 - round 5 + + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 3 - round 5 + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 2 - round 5 + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 7 - round 5 + + sub x5, x5, #1 //byte_len - 1 + + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 4 - round 6 + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 5 - round 6 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 1 - round 6 + + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 0 - round 6 + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 3 - round 6 + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 6 - round 6 + + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 7 - round 6 + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 2 - round 6 + ldp q28, q26, [x8, #128] //load rk8, rk9 + + add v30.4s, v30.4s, v31.4s //CTR block 7 + + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 3 - round 7 + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 7 - round 7 + + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 2 - round 7 + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 1 - round 7 + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 4 - round 7 + + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 6 - round 7 + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 0 - round 7 + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 5 - round 7 + + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 1 - round 8 + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 2 - round 8 + and x5, x5, #0xffffffffffffff80 //number of bytes to be processed in main loop (at least 1 byte must be handled by tail) + + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 7 - round 8 + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 6 - round 8 + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 5 - round 8 + + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 4 - round 8 + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 3 - round 8 + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 0 - round 8 + + add x4, x0, x1, lsr #3 //end_input_ptr + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 6 - round 9 + + ld1 { v19.16b}, [x3] + ext v19.16b, v19.16b, v19.16b, #8 + rev64 v19.16b, v19.16b + + ldp q27, q28, [x8, #160] //load rk10, rk11 + + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 0 - round 9 + add x5, x5, x0 + + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 1 - round 9 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 7 - round 9 + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 4 - round 9 + + cmp x0, x5 //check if we have <= 8 blocks + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 3 - round 9 + + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 5 - round 9 + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 2 - round 9 + + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 3 - round 10 + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 1 - round 10 + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 7 - round 10 + + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 4 - round 10 + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 0 - round 10 + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 2 - round 10 + + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 6 - round 10 + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 5 - round 10 + ldr q26, [x8, #192] //load rk12 + + aese v0.16b, v28.16b //AES block 0 - round 11 + aese v1.16b, v28.16b //AES block 1 - round 11 + aese v4.16b, v28.16b //AES block 4 - round 11 + + aese v6.16b, v28.16b //AES block 6 - round 11 + aese v5.16b, v28.16b //AES block 5 - round 11 + aese v7.16b, v28.16b //AES block 7 - round 11 + + aese v2.16b, v28.16b //AES block 2 - round 11 + aese v3.16b, v28.16b //AES block 3 - round 11 + b.ge .L192_dec_tail //handle tail + + ldp q8, q9, [x0], #32 //AES block 0, 1 - load ciphertext + + ldp q10, q11, [x0], #32 //AES block 2, 3 - load ciphertext + + ldp q12, q13, [x0], #32 //AES block 4, 5 - load ciphertext + +.inst 0xce016921 //eor3 v1.16b, v9.16b, v1.16b, v26.16b //AES block 1 - result +.inst 0xce006900 //eor3 v0.16b, v8.16b, v0.16b, v26.16b //AES block 0 - result + stp q0, q1, [x2], #32 //AES block 0, 1 - store result + + rev32 v0.16b, v30.16b //CTR block 8 + add v30.4s, v30.4s, v31.4s //CTR block 8 + + rev32 v1.16b, v30.16b //CTR block 9 + add v30.4s, v30.4s, v31.4s //CTR block 9 +.inst 0xce036963 //eor3 v3.16b, v11.16b, v3.16b, v26.16b //AES block 3 - result + +.inst 0xce026942 //eor3 v2.16b, v10.16b, v2.16b, v26.16b //AES block 2 - result + stp q2, q3, [x2], #32 //AES block 2, 3 - store result + ldp q14, q15, [x0], #32 //AES block 6, 7 - load ciphertext + + rev32 v2.16b, v30.16b //CTR block 10 + add v30.4s, v30.4s, v31.4s //CTR block 10 + +.inst 0xce046984 //eor3 v4.16b, v12.16b, v4.16b, v26.16b //AES block 4 - result + + rev32 v3.16b, v30.16b //CTR block 11 + add v30.4s, v30.4s, v31.4s //CTR block 11 + +.inst 0xce0569a5 //eor3 v5.16b, v13.16b, v5.16b, v26.16b //AES block 5 - result + stp q4, q5, [x2], #32 //AES block 4, 5 - store result + cmp x0, x5 //check if we have <= 8 blocks + +.inst 0xce0669c6 //eor3 v6.16b, v14.16b, v6.16b, v26.16b //AES block 6 - result +.inst 0xce0769e7 //eor3 v7.16b, v15.16b, v7.16b, v26.16b //AES block 7 - result + rev32 v4.16b, v30.16b //CTR block 12 + + add v30.4s, v30.4s, v31.4s //CTR block 12 + stp q6, q7, [x2], #32 //AES block 6, 7 - store result + b.ge .L192_dec_prepretail //do prepretail + +.L192_dec_main_loop: //main loop start + rev64 v9.16b, v9.16b //GHASH block 8k+1 + ldp q26, q27, [x8, #0] //load rk0, rk1 + ext v19.16b, v19.16b, v19.16b, #8 //PRE 0 + + rev64 v8.16b, v8.16b //GHASH block 8k + rev32 v5.16b, v30.16b //CTR block 8k+13 + add v30.4s, v30.4s, v31.4s //CTR block 8k+13 + + ldr q23, [x3, #176] //load h7l | h7h + ext v23.16b, v23.16b, v23.16b, #8 + ldr q25, [x3, #208] //load h8l | h8h + ext v25.16b, v25.16b, v25.16b, #8 + rev64 v12.16b, v12.16b //GHASH block 8k+4 + rev64 v11.16b, v11.16b //GHASH block 8k+3 + + eor v8.16b, v8.16b, v19.16b //PRE 1 + rev32 v6.16b, v30.16b //CTR block 8k+14 + add v30.4s, v30.4s, v31.4s //CTR block 8k+14 + + rev64 v13.16b, v13.16b //GHASH block 8k+5 + + rev32 v7.16b, v30.16b //CTR block 8k+15 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 0 + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 0 + + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 0 + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 0 + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 0 + + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 0 + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 0 + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 0 + + pmull v19.1q, v8.1d, v25.1d //GHASH block 8k - low + pmull2 v16.1q, v9.2d, v23.2d //GHASH block 8k+1 - high + ldp q28, q26, [x8, #32] //load rk2, rk3 + + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 1 + pmull v23.1q, v9.1d, v23.1d //GHASH block 8k+1 - low + ldr q20, [x3, #128] //load h5l | h5h + ext v20.16b, v20.16b, v20.16b, #8 + ldr q22, [x3, #160] //load h6l | h6h + ext v22.16b, v22.16b, v22.16b, #8 + + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 1 + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 1 + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 1 + + pmull2 v17.1q, v8.2d, v25.2d //GHASH block 8k - high + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 1 + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 1 + + trn1 v18.2d, v9.2d, v8.2d //GHASH block 8k, 8k+1 - mid + rev64 v10.16b, v10.16b //GHASH block 8k+2 + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 1 + + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 1 + ldr q21, [x3, #144] //load h6k | h5k + ldr q24, [x3, #192] //load h8k | h7k + trn2 v8.2d, v9.2d, v8.2d //GHASH block 8k, 8k+1 - mid + + eor v17.16b, v17.16b, v16.16b //GHASH block 8k+1 - high + pmull2 v9.1q, v11.2d, v20.2d //GHASH block 8k+3 - high + pmull2 v29.1q, v10.2d, v22.2d //GHASH block 8k+2 - high + + eor v8.16b, v8.16b, v18.16b //GHASH block 8k, 8k+1 - mid + eor v19.16b, v19.16b, v23.16b //GHASH block 8k+1 - low + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 2 + + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 2 + pmull v20.1q, v11.1d, v20.1d //GHASH block 8k+3 - low +.inst 0xce1d2631 //eor3 v17.16b, v17.16b, v29.16b, v9.16b //GHASH block 8k+2, 8k+3 - high + + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 2 + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 3 + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 2 + + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 2 + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 2 + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 2 + + ldr q23, [x3, #80] //load h3l | h3h + ext v23.16b, v23.16b, v23.16b, #8 + ldr q25, [x3, #112] //load h4l | h4h + ext v25.16b, v25.16b, v25.16b, #8 + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 2 + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 3 + + pmull v22.1q, v10.1d, v22.1d //GHASH block 8k+2 - low + trn1 v29.2d, v11.2d, v10.2d //GHASH block 8k+2, 8k+3 - mid + trn2 v10.2d, v11.2d, v10.2d //GHASH block 8k+2, 8k+3 - mid + + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 3 + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 3 + + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 3 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 3 + ldp q27, q28, [x8, #64] //load rk4, rk5 + + eor v10.16b, v10.16b, v29.16b //GHASH block 8k+2, 8k+3 - mid +.inst 0xce165273 //eor3 v19.16b, v19.16b, v22.16b, v20.16b //GHASH block 8k+2, 8k+3 - low + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 3 + + trn1 v16.2d, v13.2d, v12.2d //GHASH block 8k+4, 8k+5 - mid + add v30.4s, v30.4s, v31.4s //CTR block 8k+15 + + pmull2 v29.1q, v10.2d, v21.2d //GHASH block 8k+2 - mid + pmull2 v18.1q, v8.2d, v24.2d //GHASH block 8k - mid + pmull v24.1q, v8.1d, v24.1d //GHASH block 8k+1 - mid + + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 3 + pmull v21.1q, v10.1d, v21.1d //GHASH block 8k+3 - mid + pmull2 v8.1q, v12.2d, v25.2d //GHASH block 8k+4 - high + + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 4 + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 4 + eor v18.16b, v18.16b, v24.16b //GHASH block 8k+1 - mid + + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 4 + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 4 + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 4 + + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 4 + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 4 + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 4 + + ldr q20, [x3, #32] //load h1l | h1h + ext v20.16b, v20.16b, v20.16b, #8 + ldr q22, [x3, #64] //load h2l | h2h + ext v22.16b, v22.16b, v22.16b, #8 + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 5 + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 5 + + ldp q26, q27, [x8, #96] //load rk6, rk7 + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 5 + rev64 v15.16b, v15.16b //GHASH block 8k+7 + + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 5 +.inst 0xce157652 //eor3 v18.16b, v18.16b, v21.16b, v29.16b //GHASH block 8k+2, 8k+3 - mid + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 5 + + pmull v25.1q, v12.1d, v25.1d //GHASH block 8k+4 - low + trn2 v12.2d, v13.2d, v12.2d //GHASH block 8k+4, 8k+5 - mid + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 5 + + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 5 + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 5 + rev64 v14.16b, v14.16b //GHASH block 8k+6 + + ldr q21, [x3, #48] //load h2k | h1k + ldr q24, [x3, #96] //load h4k | h3k + pmull2 v10.1q, v13.2d, v23.2d //GHASH block 8k+5 - high + pmull v23.1q, v13.1d, v23.1d //GHASH block 8k+5 - low + + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 6 + eor v12.16b, v12.16b, v16.16b //GHASH block 8k+4, 8k+5 - mid + trn1 v13.2d, v15.2d, v14.2d //GHASH block 8k+6, 8k+7 - mid + + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 6 + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 6 + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 6 + + pmull2 v11.1q, v14.2d, v22.2d //GHASH block 8k+6 - high + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 6 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 6 + + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 7 + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 7 + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 6 + + pmull2 v16.1q, v12.2d, v24.2d //GHASH block 8k+4 - mid +.inst 0xce082a31 //eor3 v17.16b, v17.16b, v8.16b, v10.16b //GHASH block 8k+4, 8k+5 - high +.inst 0xce195e73 //eor3 v19.16b, v19.16b, v25.16b, v23.16b //GHASH block 8k+4, 8k+5 - low + + pmull v22.1q, v14.1d, v22.1d //GHASH block 8k+6 - low + trn2 v14.2d, v15.2d, v14.2d //GHASH block 8k+6, 8k+7 - mid + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 6 + + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 7 + ldp q28, q26, [x8, #128] //load rk8, rk9 + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 7 + + eor v14.16b, v14.16b, v13.16b //GHASH block 8k+6, 8k+7 - mid + pmull v24.1q, v12.1d, v24.1d //GHASH block 8k+5 - mid + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 7 + + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 7 + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 7 + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 7 + +.inst 0xce184252 //eor3 v18.16b, v18.16b, v24.16b, v16.16b //GHASH block 8k+4, 8k+5 - mid + pmull2 v13.1q, v14.2d, v21.2d //GHASH block 8k+6 - mid + pmull2 v12.1q, v15.2d, v20.2d //GHASH block 8k+7 - high + + pmull v21.1q, v14.1d, v21.1d //GHASH block 8k+7 - mid + ldr d16, [x10] //MODULO - load modulo constant + pmull v20.1q, v15.1d, v20.1d //GHASH block 8k+7 - low + + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 8 + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 8 + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 8 + + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 8 + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 8 +.inst 0xce165273 //eor3 v19.16b, v19.16b, v22.16b, v20.16b //GHASH block 8k+6, 8k+7 - low + + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 8 + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 8 + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 8 + +.inst 0xce0b3231 //eor3 v17.16b, v17.16b, v11.16b, v12.16b //GHASH block 8k+6, 8k+7 - high + rev32 v20.16b, v30.16b //CTR block 8k+16 + add v30.4s, v30.4s, v31.4s //CTR block 8k+16 + + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 9 +.inst 0xce153652 //eor3 v18.16b, v18.16b, v21.16b, v13.16b //GHASH block 8k+6, 8k+7 - mid + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 9 + + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 9 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 9 + ldp q27, q28, [x8, #160] //load rk10, rk11 + +.inst 0xce114e52 //eor3 v18.16b, v18.16b, v17.16b, v19.16b //MODULO - karatsuba tidy up + ldp q8, q9, [x0], #32 //AES block 8k+8, 8k+9 - load ciphertext + + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 9 + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 9 + ldp q10, q11, [x0], #32 //AES block 8k+10, 8k+11 - load ciphertext + + rev32 v22.16b, v30.16b //CTR block 8k+17 + pmull v29.1q, v17.1d, v16.1d //MODULO - top 64b align with mid + add v30.4s, v30.4s, v31.4s //CTR block 8k+17 + + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 9 + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 9 + ext v21.16b, v17.16b, v17.16b, #8 //MODULO - other top alignment + + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 10 + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 10 + ldp q12, q13, [x0], #32 //AES block 8k+12, 8k+13 - load ciphertext + + rev32 v23.16b, v30.16b //CTR block 8k+18 + add v30.4s, v30.4s, v31.4s //CTR block 8k+18 +.inst 0xce1d5652 //eor3 v18.16b, v18.16b, v29.16b, v21.16b //MODULO - fold into mid + + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 10 + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 10 + ldr q26, [x8, #192] //load rk12 + + ldp q14, q15, [x0], #32 //AES block 8k+14, 8k+15 - load ciphertext + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 10 + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 10 + + aese v0.16b, v28.16b //AES block 8k+8 - round 11 + ext v21.16b, v18.16b, v18.16b, #8 //MODULO - other mid alignment + aese v1.16b, v28.16b //AES block 8k+9 - round 11 + + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 10 + aese v6.16b, v28.16b //AES block 8k+14 - round 11 + aese v3.16b, v28.16b //AES block 8k+11 - round 11 + +.inst 0xce006900 //eor3 v0.16b, v8.16b, v0.16b, v26.16b //AES block 8k+8 - result + rev32 v25.16b, v30.16b //CTR block 8k+19 + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 10 + + aese v4.16b, v28.16b //AES block 8k+12 - round 11 + aese v2.16b, v28.16b //AES block 8k+10 - round 11 + add v30.4s, v30.4s, v31.4s //CTR block 8k+19 + + aese v7.16b, v28.16b //AES block 8k+15 - round 11 + aese v5.16b, v28.16b //AES block 8k+13 - round 11 + pmull v17.1q, v18.1d, v16.1d //MODULO - mid 64b align with low + +.inst 0xce016921 //eor3 v1.16b, v9.16b, v1.16b, v26.16b //AES block 8k+9 - result + stp q0, q1, [x2], #32 //AES block 8k+8, 8k+9 - store result +.inst 0xce036963 //eor3 v3.16b, v11.16b, v3.16b, v26.16b //AES block 8k+11 - result + +.inst 0xce026942 //eor3 v2.16b, v10.16b, v2.16b, v26.16b //AES block 8k+10 - result +.inst 0xce0769e7 //eor3 v7.16b, v15.16b, v7.16b, v26.16b //AES block 8k+15 - result + stp q2, q3, [x2], #32 //AES block 8k+10, 8k+11 - store result + +.inst 0xce0569a5 //eor3 v5.16b, v13.16b, v5.16b, v26.16b //AES block 8k+13 - result +.inst 0xce115673 //eor3 v19.16b, v19.16b, v17.16b, v21.16b //MODULO - fold into low + mov v3.16b, v25.16b //CTR block 8k+19 + +.inst 0xce046984 //eor3 v4.16b, v12.16b, v4.16b, v26.16b //AES block 8k+12 - result + stp q4, q5, [x2], #32 //AES block 8k+12, 8k+13 - store result + cmp x0, x5 //.LOOP CONTROL + +.inst 0xce0669c6 //eor3 v6.16b, v14.16b, v6.16b, v26.16b //AES block 8k+14 - result + stp q6, q7, [x2], #32 //AES block 8k+14, 8k+15 - store result + mov v0.16b, v20.16b //CTR block 8k+16 + + mov v1.16b, v22.16b //CTR block 8k+17 + mov v2.16b, v23.16b //CTR block 8k+18 + + rev32 v4.16b, v30.16b //CTR block 8k+20 + add v30.4s, v30.4s, v31.4s //CTR block 8k+20 + b.lt .L192_dec_main_loop + +.L192_dec_prepretail: //PREPRETAIL + ldp q26, q27, [x8, #0] //load rk0, rk1 + rev32 v5.16b, v30.16b //CTR block 8k+13 + add v30.4s, v30.4s, v31.4s //CTR block 8k+13 + + ldr q23, [x3, #176] //load h7l | h7h + ext v23.16b, v23.16b, v23.16b, #8 + ldr q25, [x3, #208] //load h8l | h8h + ext v25.16b, v25.16b, v25.16b, #8 + rev64 v8.16b, v8.16b //GHASH block 8k + ext v19.16b, v19.16b, v19.16b, #8 //PRE 0 + + rev64 v11.16b, v11.16b //GHASH block 8k+3 + rev32 v6.16b, v30.16b //CTR block 8k+14 + add v30.4s, v30.4s, v31.4s //CTR block 8k+14 + + eor v8.16b, v8.16b, v19.16b //PRE 1 + rev64 v10.16b, v10.16b //GHASH block 8k+2 + rev64 v9.16b, v9.16b //GHASH block 8k+1 + + ldr q20, [x3, #128] //load h5l | h5h + ext v20.16b, v20.16b, v20.16b, #8 + ldr q22, [x3, #160] //load h6l | h6h + ext v22.16b, v22.16b, v22.16b, #8 + rev32 v7.16b, v30.16b //CTR block 8k+15 + + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 0 + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 0 + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 0 + + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 0 + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 0 + pmull2 v16.1q, v9.2d, v23.2d //GHASH block 8k+1 - high + + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 0 + pmull2 v17.1q, v8.2d, v25.2d //GHASH block 8k - high + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 0 + + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 1 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 0 + ldp q28, q26, [x8, #32] //load rk2, rk3 + + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 1 + pmull2 v29.1q, v10.2d, v22.2d //GHASH block 8k+2 - high + pmull v22.1q, v10.1d, v22.1d //GHASH block 8k+2 - low + + pmull v23.1q, v9.1d, v23.1d //GHASH block 8k+1 - low + eor v17.16b, v17.16b, v16.16b //GHASH block 8k+1 - high + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 1 + + pmull v19.1q, v8.1d, v25.1d //GHASH block 8k - low + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 1 + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 1 + + trn1 v18.2d, v9.2d, v8.2d //GHASH block 8k, 8k+1 - mid + trn2 v8.2d, v9.2d, v8.2d //GHASH block 8k, 8k+1 - mid + pmull2 v9.1q, v11.2d, v20.2d //GHASH block 8k+3 - high + + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 1 + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 1 + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 1 + + ldr q21, [x3, #144] //load h6k | h5k + ldr q24, [x3, #192] //load h8k | h7k + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 2 + eor v8.16b, v8.16b, v18.16b //GHASH block 8k, 8k+1 - mid + + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 2 + rev64 v13.16b, v13.16b //GHASH block 8k+5 + pmull v20.1q, v11.1d, v20.1d //GHASH block 8k+3 - low + +.inst 0xce1d2631 //eor3 v17.16b, v17.16b, v29.16b, v9.16b //GHASH block 8k+2, 8k+3 - high + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 2 + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 2 + + trn1 v29.2d, v11.2d, v10.2d //GHASH block 8k+2, 8k+3 - mid + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 3 + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 2 + + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 2 + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 2 + trn2 v10.2d, v11.2d, v10.2d //GHASH block 8k+2, 8k+3 - mid + + pmull2 v18.1q, v8.2d, v24.2d //GHASH block 8k - mid + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 2 + pmull v24.1q, v8.1d, v24.1d //GHASH block 8k+1 - mid + + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 3 + eor v10.16b, v10.16b, v29.16b //GHASH block 8k+2, 8k+3 - mid + eor v19.16b, v19.16b, v23.16b //GHASH block 8k+1 - low + + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 3 + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 3 + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 3 + +.inst 0xce165273 //eor3 v19.16b, v19.16b, v22.16b, v20.16b //GHASH block 8k+2, 8k+3 - low + ldp q27, q28, [x8, #64] //load rk4, rk5 + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 3 + + ldr q23, [x3, #80] //load h3l | h3h + ext v23.16b, v23.16b, v23.16b, #8 + ldr q25, [x3, #112] //load h4l | h4h + ext v25.16b, v25.16b, v25.16b, #8 + pmull2 v29.1q, v10.2d, v21.2d //GHASH block 8k+2 - mid + pmull v21.1q, v10.1d, v21.1d //GHASH block 8k+3 - mid + + ldr q20, [x3, #32] //load h1l | h1h + ext v20.16b, v20.16b, v20.16b, #8 + ldr q22, [x3, #64] //load h2l | h2h + ext v22.16b, v22.16b, v22.16b, #8 + eor v18.16b, v18.16b, v24.16b //GHASH block 8k+1 - mid + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 3 + + rev64 v15.16b, v15.16b //GHASH block 8k+7 + +.inst 0xce157652 //eor3 v18.16b, v18.16b, v21.16b, v29.16b //GHASH block 8k+2, 8k+3 - mid + rev64 v12.16b, v12.16b //GHASH block 8k+4 + + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 4 + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 4 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 3 + + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 4 + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 4 + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 4 + + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 4 + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 4 + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 4 + + rev64 v14.16b, v14.16b //GHASH block 8k+6 + ldr q21, [x3, #48] //load h2k | h1k + ldr q24, [x3, #96] //load h4k | h3k + trn1 v16.2d, v13.2d, v12.2d //GHASH block 8k+4, 8k+5 - mid + + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 5 + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 5 + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 5 + + ldp q26, q27, [x8, #96] //load rk6, rk7 + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 5 + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 5 + + pmull2 v11.1q, v14.2d, v22.2d //GHASH block 8k+6 - high + pmull2 v8.1q, v12.2d, v25.2d //GHASH block 8k+4 - high + pmull v22.1q, v14.1d, v22.1d //GHASH block 8k+6 - low + + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 5 + + pmull v25.1q, v12.1d, v25.1d //GHASH block 8k+4 - low + trn2 v12.2d, v13.2d, v12.2d //GHASH block 8k+4, 8k+5 - mid + pmull2 v10.1q, v13.2d, v23.2d //GHASH block 8k+5 - high + + pmull v23.1q, v13.1d, v23.1d //GHASH block 8k+5 - low + trn1 v13.2d, v15.2d, v14.2d //GHASH block 8k+6, 8k+7 - mid + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 5 + + trn2 v14.2d, v15.2d, v14.2d //GHASH block 8k+6, 8k+7 - mid + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 5 + eor v12.16b, v12.16b, v16.16b //GHASH block 8k+4, 8k+5 - mid + + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 6 + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 6 + + eor v14.16b, v14.16b, v13.16b //GHASH block 8k+6, 8k+7 - mid + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 6 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 6 + + pmull2 v16.1q, v12.2d, v24.2d //GHASH block 8k+4 - mid + pmull v24.1q, v12.1d, v24.1d //GHASH block 8k+5 - mid + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 6 + + pmull2 v13.1q, v14.2d, v21.2d //GHASH block 8k+6 - mid + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 6 + pmull2 v12.1q, v15.2d, v20.2d //GHASH block 8k+7 - high + +.inst 0xce184252 //eor3 v18.16b, v18.16b, v24.16b, v16.16b //GHASH block 8k+4, 8k+5 - mid + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 7 +.inst 0xce195e73 //eor3 v19.16b, v19.16b, v25.16b, v23.16b //GHASH block 8k+4, 8k+5 - low + + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 6 + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 6 + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 7 + + ldp q28, q26, [x8, #128] //load rk8, rk9 + pmull v21.1q, v14.1d, v21.1d //GHASH block 8k+7 - mid + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 7 + + ldr d16, [x10] //MODULO - load modulo constant +.inst 0xce082a31 //eor3 v17.16b, v17.16b, v8.16b, v10.16b //GHASH block 8k+4, 8k+5 - high + pmull v20.1q, v15.1d, v20.1d //GHASH block 8k+7 - low + + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 7 + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 7 + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 7 + +.inst 0xce0b3231 //eor3 v17.16b, v17.16b, v11.16b, v12.16b //GHASH block 8k+6, 8k+7 - high +.inst 0xce165273 //eor3 v19.16b, v19.16b, v22.16b, v20.16b //GHASH block 8k+6, 8k+7 - low +.inst 0xce153652 //eor3 v18.16b, v18.16b, v21.16b, v13.16b //GHASH block 8k+6, 8k+7 - mid + + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 7 + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 7 + +.inst 0xce114e52 //eor3 v18.16b, v18.16b, v17.16b, v19.16b //MODULO - karatsuba tidy up + ext v21.16b, v17.16b, v17.16b, #8 //MODULO - other top alignment + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 8 + + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 8 + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 8 + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 8 + + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 8 + pmull v29.1q, v17.1d, v16.1d //MODULO - top 64b align with mid + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 8 + + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 8 + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 8 + ldp q27, q28, [x8, #160] //load rk10, rk11 + +.inst 0xce1d5652 //eor3 v18.16b, v18.16b, v29.16b, v21.16b //MODULO - fold into mid + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 9 + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 9 + + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 9 + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 9 + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 9 + + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 9 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 9 + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 9 + + pmull v17.1q, v18.1d, v16.1d //MODULO - mid 64b align with low + ldr q26, [x8, #192] //load rk12 + ext v21.16b, v18.16b, v18.16b, #8 //MODULO - other mid alignment + + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 10 + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 10 + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 10 + + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 10 + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 10 + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 10 + + aese v0.16b, v28.16b //AES block 8k+8 - round 11 +.inst 0xce115673 //eor3 v19.16b, v19.16b, v17.16b, v21.16b //MODULO - fold into low + aese v5.16b, v28.16b //AES block 8k+13 - round 11 + + aese v2.16b, v28.16b //AES block 8k+10 - round 11 + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 10 + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 10 + + aese v6.16b, v28.16b //AES block 8k+14 - round 11 + aese v4.16b, v28.16b //AES block 8k+12 - round 11 + add v30.4s, v30.4s, v31.4s //CTR block 8k+15 + + aese v3.16b, v28.16b //AES block 8k+11 - round 11 + aese v1.16b, v28.16b //AES block 8k+9 - round 11 + aese v7.16b, v28.16b //AES block 8k+15 - round 11 + +.L192_dec_tail: //TAIL + + sub x5, x4, x0 //main_end_input_ptr is number of bytes left to process + + ldp q20, q21, [x3, #128] //load h5l | h5h + ext v20.16b, v20.16b, v20.16b, #8 + ldr q9, [x0], #16 //AES block 8k+8 - load ciphertext + + ldp q24, q25, [x3, #192] //load h8k | h7k + ext v25.16b, v25.16b, v25.16b, #8 + + mov v29.16b, v26.16b + + ldp q22, q23, [x3, #160] //load h6l | h6h + ext v22.16b, v22.16b, v22.16b, #8 + ext v23.16b, v23.16b, v23.16b, #8 + ext v16.16b, v19.16b, v19.16b, #8 //prepare final partial tag + +.inst 0xce00752c //eor3 v12.16b, v9.16b, v0.16b, v29.16b //AES block 8k+8 - result + cmp x5, #112 + b.gt .L192_dec_blocks_more_than_7 + + mov v7.16b, v6.16b + movi v17.8b, #0 + sub v30.4s, v30.4s, v31.4s + + mov v6.16b, v5.16b + mov v5.16b, v4.16b + mov v4.16b, v3.16b + + cmp x5, #96 + movi v19.8b, #0 + mov v3.16b, v2.16b + + mov v2.16b, v1.16b + movi v18.8b, #0 + b.gt .L192_dec_blocks_more_than_6 + + mov v7.16b, v6.16b + mov v6.16b, v5.16b + mov v5.16b, v4.16b + + mov v4.16b, v3.16b + mov v3.16b, v1.16b + + sub v30.4s, v30.4s, v31.4s + cmp x5, #80 + b.gt .L192_dec_blocks_more_than_5 + + mov v7.16b, v6.16b + mov v6.16b, v5.16b + + mov v5.16b, v4.16b + mov v4.16b, v1.16b + cmp x5, #64 + + sub v30.4s, v30.4s, v31.4s + b.gt .L192_dec_blocks_more_than_4 + + sub v30.4s, v30.4s, v31.4s + mov v7.16b, v6.16b + mov v6.16b, v5.16b + + mov v5.16b, v1.16b + cmp x5, #48 + b.gt .L192_dec_blocks_more_than_3 + + sub v30.4s, v30.4s, v31.4s + mov v7.16b, v6.16b + cmp x5, #32 + + mov v6.16b, v1.16b + ldr q24, [x3, #96] //load h4k | h3k + b.gt .L192_dec_blocks_more_than_2 + + sub v30.4s, v30.4s, v31.4s + + mov v7.16b, v1.16b + cmp x5, #16 + b.gt .L192_dec_blocks_more_than_1 + + sub v30.4s, v30.4s, v31.4s + ldr q21, [x3, #48] //load h2k | h1k + b .L192_dec_blocks_less_than_1 +.L192_dec_blocks_more_than_7: //blocks left > 7 + rev64 v8.16b, v9.16b //GHASH final-7 block + + ins v18.d[0], v24.d[1] //GHASH final-7 block - mid + eor v8.16b, v8.16b, v16.16b //feed in partial tag + + pmull2 v17.1q, v8.2d, v25.2d //GHASH final-7 block - high + ins v27.d[0], v8.d[1] //GHASH final-7 block - mid + ldr q9, [x0], #16 //AES final-6 block - load ciphertext + + pmull v19.1q, v8.1d, v25.1d //GHASH final-7 block - low + + eor v27.8b, v27.8b, v8.8b //GHASH final-7 block - mid + st1 { v12.16b}, [x2], #16 //AES final-7 block - store result + +.inst 0xce01752c //eor3 v12.16b, v9.16b, v1.16b, v29.16b //AES final-6 block - result + + pmull v18.1q, v27.1d, v18.1d //GHASH final-7 block - mid + movi v16.8b, #0 //suppress further partial tag feed in +.L192_dec_blocks_more_than_6: //blocks left > 6 + + rev64 v8.16b, v9.16b //GHASH final-6 block + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + + ldr q9, [x0], #16 //AES final-5 block - load ciphertext + ins v27.d[0], v8.d[1] //GHASH final-6 block - mid + + eor v27.8b, v27.8b, v8.8b //GHASH final-6 block - mid + movi v16.8b, #0 //suppress further partial tag feed in + pmull2 v28.1q, v8.2d, v23.2d //GHASH final-6 block - high + + st1 { v12.16b}, [x2], #16 //AES final-6 block - store result +.inst 0xce02752c //eor3 v12.16b, v9.16b, v2.16b, v29.16b //AES final-5 block - result + + eor v17.16b, v17.16b, v28.16b //GHASH final-6 block - high + pmull v27.1q, v27.1d, v24.1d //GHASH final-6 block - mid + pmull v26.1q, v8.1d, v23.1d //GHASH final-6 block - low + + eor v18.16b, v18.16b, v27.16b //GHASH final-6 block - mid + eor v19.16b, v19.16b, v26.16b //GHASH final-6 block - low +.L192_dec_blocks_more_than_5: //blocks left > 5 + + rev64 v8.16b, v9.16b //GHASH final-5 block + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + + ins v27.d[0], v8.d[1] //GHASH final-5 block - mid + + eor v27.8b, v27.8b, v8.8b //GHASH final-5 block - mid + + ins v27.d[1], v27.d[0] //GHASH final-5 block - mid + pmull2 v28.1q, v8.2d, v22.2d //GHASH final-5 block - high + + ldr q9, [x0], #16 //AES final-4 block - load ciphertext + + eor v17.16b, v17.16b, v28.16b //GHASH final-5 block - high + pmull v26.1q, v8.1d, v22.1d //GHASH final-5 block - low + + pmull2 v27.1q, v27.2d, v21.2d //GHASH final-5 block - mid + + eor v19.16b, v19.16b, v26.16b //GHASH final-5 block - low + movi v16.8b, #0 //suppress further partial tag feed in + st1 { v12.16b}, [x2], #16 //AES final-5 block - store result + + eor v18.16b, v18.16b, v27.16b //GHASH final-5 block - mid +.inst 0xce03752c //eor3 v12.16b, v9.16b, v3.16b, v29.16b //AES final-4 block - result +.L192_dec_blocks_more_than_4: //blocks left > 4 + + rev64 v8.16b, v9.16b //GHASH final-4 block + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + movi v16.8b, #0 //suppress further partial tag feed in + + ldr q9, [x0], #16 //AES final-3 block - load ciphertext + ins v27.d[0], v8.d[1] //GHASH final-4 block - mid + pmull v26.1q, v8.1d, v20.1d //GHASH final-4 block - low + + eor v27.8b, v27.8b, v8.8b //GHASH final-4 block - mid + + eor v19.16b, v19.16b, v26.16b //GHASH final-4 block - low + + pmull v27.1q, v27.1d, v21.1d //GHASH final-4 block - mid + st1 { v12.16b}, [x2], #16 //AES final-4 block - store result + pmull2 v28.1q, v8.2d, v20.2d //GHASH final-4 block - high + +.inst 0xce04752c //eor3 v12.16b, v9.16b, v4.16b, v29.16b //AES final-3 block - result + + eor v18.16b, v18.16b, v27.16b //GHASH final-4 block - mid + eor v17.16b, v17.16b, v28.16b //GHASH final-4 block - high +.L192_dec_blocks_more_than_3: //blocks left > 3 + + ldr q25, [x3, #112] //load h4l | h4h + ext v25.16b, v25.16b, v25.16b, #8 + rev64 v8.16b, v9.16b //GHASH final-3 block + ldr q9, [x0], #16 //AES final-2 block - load ciphertext + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + + ins v27.d[0], v8.d[1] //GHASH final-3 block - mid + pmull2 v28.1q, v8.2d, v25.2d //GHASH final-3 block - high + + eor v17.16b, v17.16b, v28.16b //GHASH final-3 block - high + movi v16.8b, #0 //suppress further partial tag feed in + pmull v26.1q, v8.1d, v25.1d //GHASH final-3 block - low + + st1 { v12.16b}, [x2], #16 //AES final-3 block - store result + eor v27.8b, v27.8b, v8.8b //GHASH final-3 block - mid +.inst 0xce05752c //eor3 v12.16b, v9.16b, v5.16b, v29.16b //AES final-2 block - result + + eor v19.16b, v19.16b, v26.16b //GHASH final-3 block - low + ldr q24, [x3, #96] //load h4k | h3k + + ins v27.d[1], v27.d[0] //GHASH final-3 block - mid + + pmull2 v27.1q, v27.2d, v24.2d //GHASH final-3 block - mid + + eor v18.16b, v18.16b, v27.16b //GHASH final-3 block - mid +.L192_dec_blocks_more_than_2: //blocks left > 2 + + rev64 v8.16b, v9.16b //GHASH final-2 block + ldr q23, [x3, #80] //load h3l | h3h + ext v23.16b, v23.16b, v23.16b, #8 + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + + ins v27.d[0], v8.d[1] //GHASH final-2 block - mid + ldr q9, [x0], #16 //AES final-1 block - load ciphertext + + pmull2 v28.1q, v8.2d, v23.2d //GHASH final-2 block - high + + eor v27.8b, v27.8b, v8.8b //GHASH final-2 block - mid + + eor v17.16b, v17.16b, v28.16b //GHASH final-2 block - high + pmull v26.1q, v8.1d, v23.1d //GHASH final-2 block - low + + pmull v27.1q, v27.1d, v24.1d //GHASH final-2 block - mid + movi v16.8b, #0 //suppress further partial tag feed in + + eor v19.16b, v19.16b, v26.16b //GHASH final-2 block - low + st1 { v12.16b}, [x2], #16 //AES final-2 block - store result + + eor v18.16b, v18.16b, v27.16b //GHASH final-2 block - mid +.inst 0xce06752c //eor3 v12.16b, v9.16b, v6.16b, v29.16b //AES final-1 block - result +.L192_dec_blocks_more_than_1: //blocks left > 1 + + rev64 v8.16b, v9.16b //GHASH final-1 block + ldr q9, [x0], #16 //AES final block - load ciphertext + ldr q22, [x3, #64] //load h1l | h1h + ext v22.16b, v22.16b, v22.16b, #8 + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + movi v16.8b, #0 //suppress further partial tag feed in + ldr q21, [x3, #48] //load h2k | h1k + + pmull v26.1q, v8.1d, v22.1d //GHASH final-1 block - low + ins v27.d[0], v8.d[1] //GHASH final-1 block - mid + st1 { v12.16b}, [x2], #16 //AES final-1 block - store result + + pmull2 v28.1q, v8.2d, v22.2d //GHASH final-1 block - high + +.inst 0xce07752c //eor3 v12.16b, v9.16b, v7.16b, v29.16b //AES final block - result + + eor v27.8b, v27.8b, v8.8b //GHASH final-1 block - mid + + ins v27.d[1], v27.d[0] //GHASH final-1 block - mid + + pmull2 v27.1q, v27.2d, v21.2d //GHASH final-1 block - mid + + eor v19.16b, v19.16b, v26.16b //GHASH final-1 block - low + + eor v18.16b, v18.16b, v27.16b //GHASH final-1 block - mid + eor v17.16b, v17.16b, v28.16b //GHASH final-1 block - high +.L192_dec_blocks_less_than_1: //blocks left <= 1 + + rev32 v30.16b, v30.16b + and x1, x1, #127 //bit_length %= 128 + + sub x1, x1, #128 //bit_length -= 128 + str q30, [x16] //store the updated counter + + neg x1, x1 //bit_length = 128 - #bits in input (in range [1,128]) + mvn x6, xzr //temp0_x = 0xffffffffffffffff + + and x1, x1, #127 //bit_length %= 128 + + mvn x7, xzr //temp1_x = 0xffffffffffffffff + lsr x6, x6, x1 //temp0_x is mask for top 64b of last block + cmp x1, #64 + + csel x13, x7, x6, lt + csel x14, x6, xzr, lt + ldr q20, [x3, #32] //load h1l | h1h + ext v20.16b, v20.16b, v20.16b, #8 + + mov v0.d[1], x14 + ld1 { v26.16b}, [x2] //load existing bytes where the possibly partial last block is to be stored + + mov v0.d[0], x13 //ctr0b is mask for last block + + and v9.16b, v9.16b, v0.16b //possibly partial last block has zeroes in highest bits + bif v12.16b, v26.16b, v0.16b //insert existing bytes in top end of result before storing + + rev64 v8.16b, v9.16b //GHASH final block + + st1 { v12.16b}, [x2] //store all 16B + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + + ins v16.d[0], v8.d[1] //GHASH final block - mid + pmull v26.1q, v8.1d, v20.1d //GHASH final block - low + + eor v16.8b, v16.8b, v8.8b //GHASH final block - mid + pmull2 v28.1q, v8.2d, v20.2d //GHASH final block - high + eor v19.16b, v19.16b, v26.16b //GHASH final block - low + + pmull v16.1q, v16.1d, v21.1d //GHASH final block - mid + eor v17.16b, v17.16b, v28.16b //GHASH final block - high + + eor v14.16b, v17.16b, v19.16b //MODULO - karatsuba tidy up + eor v18.16b, v18.16b, v16.16b //GHASH final block - mid + ldr d16, [x10] //MODULO - load modulo constant + + pmull v21.1q, v17.1d, v16.1d //MODULO - top 64b align with mid + ext v17.16b, v17.16b, v17.16b, #8 //MODULO - other top alignment + + eor v18.16b, v18.16b, v14.16b //MODULO - karatsuba tidy up + +.inst 0xce115652 //eor3 v18.16b, v18.16b, v17.16b, v21.16b //MODULO - fold into mid + + pmull v17.1q, v18.1d, v16.1d //MODULO - mid 64b align with low + ext v18.16b, v18.16b, v18.16b, #8 //MODULO - other mid alignment + +.inst 0xce124673 //eor3 v19.16b, v19.16b, v18.16b, v17.16b //MODULO - fold into low + ext v19.16b, v19.16b, v19.16b, #8 + rev64 v19.16b, v19.16b + st1 { v19.16b }, [x3] + + mov x0, x9 + + ldp d10, d11, [sp, #16] + ldp d12, d13, [sp, #32] + ldp d14, d15, [sp, #48] + ldp d8, d9, [sp], #80 + ret + +.L192_dec_ret: + mov w0, #0x0 + ret +.size unroll8_eor3_aes_gcm_dec_192_kernel,.-unroll8_eor3_aes_gcm_dec_192_kernel +.globl unroll8_eor3_aes_gcm_enc_256_kernel +.type unroll8_eor3_aes_gcm_enc_256_kernel,%function +.align 4 +unroll8_eor3_aes_gcm_enc_256_kernel: + AARCH64_VALID_CALL_TARGET + cbz x1, .L256_enc_ret + stp d8, d9, [sp, #-80]! + lsr x9, x1, #3 + mov x16, x4 + mov x8, x5 + stp d10, d11, [sp, #16] + stp d12, d13, [sp, #32] + stp d14, d15, [sp, #48] + mov x5, #0xc200000000000000 + stp x5, xzr, [sp, #64] + add x10, sp, #64 + + ld1 { v0.16b}, [x16] //CTR block 0 + + mov x5, x9 + + mov x15, #0x100000000 //set up counter increment + movi v31.16b, #0x0 + mov v31.d[1], x15 + sub x5, x5, #1 //byte_len - 1 + + and x5, x5, #0xffffffffffffff80 //number of bytes to be processed in main loop (at least 1 byte must be handled by tail) + + add x5, x5, x0 + + rev32 v30.16b, v0.16b //set up reversed counter + + add v30.4s, v30.4s, v31.4s //CTR block 0 + + rev32 v1.16b, v30.16b //CTR block 1 + add v30.4s, v30.4s, v31.4s //CTR block 1 + + rev32 v2.16b, v30.16b //CTR block 2 + add v30.4s, v30.4s, v31.4s //CTR block 2 + + rev32 v3.16b, v30.16b //CTR block 3 + add v30.4s, v30.4s, v31.4s //CTR block 3 + + rev32 v4.16b, v30.16b //CTR block 4 + add v30.4s, v30.4s, v31.4s //CTR block 4 + + rev32 v5.16b, v30.16b //CTR block 5 + add v30.4s, v30.4s, v31.4s //CTR block 5 + ldp q26, q27, [x8, #0] //load rk0, rk1 + + rev32 v6.16b, v30.16b //CTR block 6 + add v30.4s, v30.4s, v31.4s //CTR block 6 + + rev32 v7.16b, v30.16b //CTR block 7 + + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 3 - round 0 + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 4 - round 0 + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 2 - round 0 + + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 0 - round 0 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 1 - round 0 + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 6 - round 0 + + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 5 - round 0 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 7 - round 0 + ldp q28, q26, [x8, #32] //load rk2, rk3 + + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 4 - round 1 + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 1 - round 1 + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 3 - round 1 + + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 6 - round 1 + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 5 - round 1 + + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 2 - round 1 + + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 7 - round 1 + + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 2 - round 2 + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 3 - round 2 + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 0 - round 1 + + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 7 - round 2 + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 6 - round 2 + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 5 - round 2 + + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 4 - round 2 + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 0 - round 2 + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 1 - round 2 + + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 5 - round 3 + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 3 - round 3 + ldp q27, q28, [x8, #64] //load rk4, rk5 + + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 4 - round 3 + + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 1 - round 3 + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 6 - round 3 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 7 - round 3 + + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 2 - round 3 + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 0 - round 3 + + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 4 - round 4 + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 6 - round 4 + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 1 - round 4 + + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 2 - round 4 + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 0 - round 4 + + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 3 - round 4 + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 7 - round 4 + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 5 - round 4 + + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 0 - round 5 + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 2 - round 5 + ldp q26, q27, [x8, #96] //load rk6, rk7 + + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 1 - round 5 + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 4 - round 5 + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 5 - round 5 + + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 3 - round 5 + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 6 - round 5 + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 7 - round 5 + + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 1 - round 6 + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 5 - round 6 + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 4 - round 6 + + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 2 - round 6 + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 6 - round 6 + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 0 - round 6 + + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 7 - round 6 + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 3 - round 6 + ldp q28, q26, [x8, #128] //load rk8, rk9 + + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 2 - round 7 + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 0 - round 7 + + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 7 - round 7 + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 6 - round 7 + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 1 - round 7 + + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 5 - round 7 + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 3 - round 7 + + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 4 - round 7 + + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 6 - round 8 + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 1 - round 8 + + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 3 - round 8 + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 0 - round 8 + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 7 - round 8 + + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 5 - round 8 + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 4 - round 8 + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 2 - round 8 + + ld1 { v19.16b}, [x3] + ext v19.16b, v19.16b, v19.16b, #8 + rev64 v19.16b, v19.16b + ldp q27, q28, [x8, #160] //load rk10, rk11 + + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 6 - round 9 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 7 - round 9 + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 3 - round 9 + + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 4 - round 9 + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 5 - round 9 + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 2 - round 9 + + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 1 - round 9 + + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 7 - round 10 + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 4 - round 10 + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 0 - round 9 + + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 1 - round 10 + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 5 - round 10 + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 3 - round 10 + + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 2 - round 10 + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 0 - round 10 + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 6 - round 10 + + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 4 - round 11 + ldp q26, q27, [x8, #192] //load rk12, rk13 + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 5 - round 11 + + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 2 - round 11 + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 6 - round 11 + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 1 - round 11 + + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 0 - round 11 + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 3 - round 11 + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 7 - round 11 + + add v30.4s, v30.4s, v31.4s //CTR block 7 + ldr q28, [x8, #224] //load rk14 + + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 4 - round 12 + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 2 - round 12 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 1 - round 12 + + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 0 - round 12 + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 5 - round 12 + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 3 - round 12 + + aese v2.16b, v27.16b //AES block 2 - round 13 + aese v1.16b, v27.16b //AES block 1 - round 13 + aese v4.16b, v27.16b //AES block 4 - round 13 + + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 6 - round 12 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 7 - round 12 + + aese v0.16b, v27.16b //AES block 0 - round 13 + aese v5.16b, v27.16b //AES block 5 - round 13 + + aese v6.16b, v27.16b //AES block 6 - round 13 + aese v7.16b, v27.16b //AES block 7 - round 13 + aese v3.16b, v27.16b //AES block 3 - round 13 + + add x4, x0, x1, lsr #3 //end_input_ptr + cmp x0, x5 //check if we have <= 8 blocks + b.ge .L256_enc_tail //handle tail + + ldp q8, q9, [x0], #32 //AES block 0, 1 - load plaintext + + ldp q10, q11, [x0], #32 //AES block 2, 3 - load plaintext + +.inst 0xce007108 //eor3 v8.16b, v8.16b, v0.16b, v28.16b //AES block 0 - result + rev32 v0.16b, v30.16b //CTR block 8 + add v30.4s, v30.4s, v31.4s //CTR block 8 + +.inst 0xce017129 //eor3 v9.16b, v9.16b, v1.16b, v28.16b //AES block 1 - result +.inst 0xce03716b //eor3 v11.16b, v11.16b, v3.16b, v28.16b //AES block 3 - result + + rev32 v1.16b, v30.16b //CTR block 9 + add v30.4s, v30.4s, v31.4s //CTR block 9 + ldp q12, q13, [x0], #32 //AES block 4, 5 - load plaintext + + ldp q14, q15, [x0], #32 //AES block 6, 7 - load plaintext +.inst 0xce02714a //eor3 v10.16b, v10.16b, v2.16b, v28.16b //AES block 2 - result + cmp x0, x5 //check if we have <= 8 blocks + + rev32 v2.16b, v30.16b //CTR block 10 + add v30.4s, v30.4s, v31.4s //CTR block 10 + stp q8, q9, [x2], #32 //AES block 0, 1 - store result + + stp q10, q11, [x2], #32 //AES block 2, 3 - store result + + rev32 v3.16b, v30.16b //CTR block 11 + add v30.4s, v30.4s, v31.4s //CTR block 11 + +.inst 0xce04718c //eor3 v12.16b, v12.16b, v4.16b, v28.16b //AES block 4 - result + +.inst 0xce0771ef //eor3 v15.16b, v15.16b, v7.16b, v28.16b //AES block 7 - result +.inst 0xce0671ce //eor3 v14.16b, v14.16b, v6.16b, v28.16b //AES block 6 - result +.inst 0xce0571ad //eor3 v13.16b, v13.16b, v5.16b, v28.16b //AES block 5 - result + + stp q12, q13, [x2], #32 //AES block 4, 5 - store result + rev32 v4.16b, v30.16b //CTR block 12 + + stp q14, q15, [x2], #32 //AES block 6, 7 - store result + add v30.4s, v30.4s, v31.4s //CTR block 12 + b.ge .L256_enc_prepretail //do prepretail + +.L256_enc_main_loop: //main loop start + ldp q26, q27, [x8, #0] //load rk0, rk1 + + rev32 v5.16b, v30.16b //CTR block 8k+13 + add v30.4s, v30.4s, v31.4s //CTR block 8k+13 + ldr q21, [x3, #144] //load h6k | h5k + ldr q24, [x3, #192] //load h8k | h7k + + rev64 v11.16b, v11.16b //GHASH block 8k+3 + ldr q20, [x3, #128] //load h5l | h5h + ext v20.16b, v20.16b, v20.16b, #8 + ldr q22, [x3, #160] //load h6l | h6h + ext v22.16b, v22.16b, v22.16b, #8 + rev64 v9.16b, v9.16b //GHASH block 8k+1 + + rev32 v6.16b, v30.16b //CTR block 8k+14 + add v30.4s, v30.4s, v31.4s //CTR block 8k+14 + rev64 v8.16b, v8.16b //GHASH block 8k + + rev64 v12.16b, v12.16b //GHASH block 8k+4 + ext v19.16b, v19.16b, v19.16b, #8 //PRE 0 + ldr q23, [x3, #176] //load h7l | h7h + ext v23.16b, v23.16b, v23.16b, #8 + ldr q25, [x3, #208] //load h8l | h8h + ext v25.16b, v25.16b, v25.16b, #8 + + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 0 + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 0 + rev32 v7.16b, v30.16b //CTR block 8k+15 + + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 0 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 0 + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 0 + + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 0 + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 0 + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 0 + + ldp q28, q26, [x8, #32] //load rk2, rk3 + eor v8.16b, v8.16b, v19.16b //PRE 1 + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 1 + + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 1 + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 1 + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 1 + + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 1 + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 1 + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 1 + + pmull2 v17.1q, v8.2d, v25.2d //GHASH block 8k - high + pmull v19.1q, v8.1d, v25.1d //GHASH block 8k - low + pmull2 v16.1q, v9.2d, v23.2d //GHASH block 8k+1 - high + + trn1 v18.2d, v9.2d, v8.2d //GHASH block 8k, 8k+1 - mid + trn2 v8.2d, v9.2d, v8.2d //GHASH block 8k, 8k+1 - mid + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 1 + + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 2 + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 2 + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 2 + + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 2 + pmull v23.1q, v9.1d, v23.1d //GHASH block 8k+1 - low + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 2 + + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 3 + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 3 + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 2 + + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 3 + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 2 + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 2 + + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 3 + rev64 v14.16b, v14.16b //GHASH block 8k+6 + pmull2 v9.1q, v11.2d, v20.2d //GHASH block 8k+3 - high + + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 3 + ldp q27, q28, [x8, #64] //load rk4, rk5 + rev64 v10.16b, v10.16b //GHASH block 8k+2 + + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 3 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 3 + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 3 + + eor v17.16b, v17.16b, v16.16b //GHASH block 8k+1 - high + pmull2 v29.1q, v10.2d, v22.2d //GHASH block 8k+2 - high + rev64 v13.16b, v13.16b //GHASH block 8k+5 + + pmull v20.1q, v11.1d, v20.1d //GHASH block 8k+3 - low + eor v19.16b, v19.16b, v23.16b //GHASH block 8k+1 - low + ldr q23, [x3, #80] //load h3l | h3h + ext v23.16b, v23.16b, v23.16b, #8 + ldr q25, [x3, #112] //load h4l | h4h + ext v25.16b, v25.16b, v25.16b, #8 + + trn1 v16.2d, v13.2d, v12.2d //GHASH block 8k+4, 8k+5 - mid +.inst 0xce1d2631 //eor3 v17.16b, v17.16b, v29.16b, v9.16b //GHASH block 8k+2, 8k+3 - high + pmull v22.1q, v10.1d, v22.1d //GHASH block 8k+2 - low + + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 4 + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 4 + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 4 + + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 4 + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 4 + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 4 + + trn1 v29.2d, v11.2d, v10.2d //GHASH block 8k+2, 8k+3 - mid + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 4 + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 4 + + trn2 v10.2d, v11.2d, v10.2d //GHASH block 8k+2, 8k+3 - mid + eor v8.16b, v8.16b, v18.16b //GHASH block 8k, 8k+1 - mid + ldp q26, q27, [x8, #96] //load rk6, rk7 + + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 5 + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 5 + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 5 + + eor v10.16b, v10.16b, v29.16b //GHASH block 8k+2, 8k+3 - mid + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 5 + rev64 v15.16b, v15.16b //GHASH block 8k+7 + + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 5 + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 5 + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 5 + + pmull2 v29.1q, v10.2d, v21.2d //GHASH block 8k+2 - mid + pmull2 v18.1q, v8.2d, v24.2d //GHASH block 8k - mid + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 5 + + pmull v24.1q, v8.1d, v24.1d //GHASH block 8k+1 - mid + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 6 + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 6 + + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 6 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 6 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 6 + + eor v18.16b, v18.16b, v24.16b //GHASH block 8k+1 - mid + pmull v21.1q, v10.1d, v21.1d //GHASH block 8k+3 - mid + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 6 + +.inst 0xce165273 //eor3 v19.16b, v19.16b, v22.16b, v20.16b //GHASH block 8k+2, 8k+3 - low + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 6 + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 6 + + ldp q28, q26, [x8, #128] //load rk8, rk9 + pmull2 v8.1q, v12.2d, v25.2d //GHASH block 8k+4 - high + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 7 + + ldr q20, [x3, #32] //load h1l | h1h + ext v20.16b, v20.16b, v20.16b, #8 + ldr q22, [x3, #64] //load h2l | h2h + ext v22.16b, v22.16b, v22.16b, #8 + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 7 +.inst 0xce157652 //eor3 v18.16b, v18.16b, v21.16b, v29.16b //GHASH block 8k+2, 8k+3 - mid + + ldr q21, [x3, #48] //load h2k | h1k + ldr q24, [x3, #96] //load h4k | h3k + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 7 + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 7 + + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 7 + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 7 + pmull v25.1q, v12.1d, v25.1d //GHASH block 8k+4 - low + + trn2 v12.2d, v13.2d, v12.2d //GHASH block 8k+4, 8k+5 - mid + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 7 + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 7 + + pmull2 v10.1q, v13.2d, v23.2d //GHASH block 8k+5 - high + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 8 + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 8 + + pmull v23.1q, v13.1d, v23.1d //GHASH block 8k+5 - low + trn1 v13.2d, v15.2d, v14.2d //GHASH block 8k+6, 8k+7 - mid + eor v12.16b, v12.16b, v16.16b //GHASH block 8k+4, 8k+5 - mid + + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 8 + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 9 + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 8 + + pmull2 v16.1q, v12.2d, v24.2d //GHASH block 8k+4 - mid + pmull v24.1q, v12.1d, v24.1d //GHASH block 8k+5 - mid + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 8 + + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 8 + pmull2 v11.1q, v14.2d, v22.2d //GHASH block 8k+6 - high + pmull v22.1q, v14.1d, v22.1d //GHASH block 8k+6 - low + + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 8 + trn2 v14.2d, v15.2d, v14.2d //GHASH block 8k+6, 8k+7 - mid + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 8 + +.inst 0xce184252 //eor3 v18.16b, v18.16b, v24.16b, v16.16b //GHASH block 8k+4, 8k+5 - mid + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 9 + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 9 + + eor v14.16b, v14.16b, v13.16b //GHASH block 8k+6, 8k+7 - mid + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 9 + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 9 + + ldp q27, q28, [x8, #160] //load rk10, rk11 + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 9 + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 9 + + pmull2 v12.1q, v15.2d, v20.2d //GHASH block 8k+7 - high +.inst 0xce195e73 //eor3 v19.16b, v19.16b, v25.16b, v23.16b //GHASH block 8k+4, 8k+5 - low + pmull v20.1q, v15.1d, v20.1d //GHASH block 8k+7 - low + + ldr d16, [x10] //MODULO - load modulo constant + pmull2 v13.1q, v14.2d, v21.2d //GHASH block 8k+6 - mid + pmull v21.1q, v14.1d, v21.1d //GHASH block 8k+7 - mid + + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 9 + +.inst 0xce153652 //eor3 v18.16b, v18.16b, v21.16b, v13.16b //GHASH block 8k+6, 8k+7 - mid +.inst 0xce165273 //eor3 v19.16b, v19.16b, v22.16b, v20.16b //GHASH block 8k+6, 8k+7 - low +.inst 0xce082a31 //eor3 v17.16b, v17.16b, v8.16b, v10.16b //GHASH block 8k+4, 8k+5 - high + + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 10 + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 10 + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 10 + + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 10 + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 10 + add v30.4s, v30.4s, v31.4s //CTR block 8k+15 + + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 10 + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 10 + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 10 + +.inst 0xce0b3231 //eor3 v17.16b, v17.16b, v11.16b, v12.16b //GHASH block 8k+6, 8k+7 - high + + ldp q26, q27, [x8, #192] //load rk12, rk13 + rev32 v20.16b, v30.16b //CTR block 8k+16 + + ext v21.16b, v17.16b, v17.16b, #8 //MODULO - other top alignment + ldp q8, q9, [x0], #32 //AES block 8k+8, 8k+9 - load plaintext + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 11 + + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 11 + add v30.4s, v30.4s, v31.4s //CTR block 8k+16 + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 11 + + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 11 + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 11 + + pmull v29.1q, v17.1d, v16.1d //MODULO - top 64b align with mid + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 11 + + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 12 + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 11 + + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 12 + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 12 + rev32 v22.16b, v30.16b //CTR block 8k+17 + + add v30.4s, v30.4s, v31.4s //CTR block 8k+17 + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 11 +.inst 0xce114e52 //eor3 v18.16b, v18.16b, v17.16b, v19.16b //MODULO - karatsuba tidy up + + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 12 + ldr q28, [x8, #224] //load rk14 + aese v7.16b, v27.16b //AES block 8k+15 - round 13 + + ldp q10, q11, [x0], #32 //AES block 8k+10, 8k+11 - load plaintext + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 12 + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 12 + +.inst 0xce1d5652 //eor3 v18.16b, v18.16b, v29.16b, v21.16b //MODULO - fold into mid + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 12 + ldp q12, q13, [x0], #32 //AES block 4, 5 - load plaintext + + ldp q14, q15, [x0], #32 //AES block 6, 7 - load plaintext + aese v2.16b, v27.16b //AES block 8k+10 - round 13 + aese v4.16b, v27.16b //AES block 8k+12 - round 13 + + rev32 v23.16b, v30.16b //CTR block 8k+18 + add v30.4s, v30.4s, v31.4s //CTR block 8k+18 + aese v5.16b, v27.16b //AES block 8k+13 - round 13 + + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 12 + aese v3.16b, v27.16b //AES block 8k+11 - round 13 + cmp x0, x5 //.LOOP CONTROL + +.inst 0xce02714a //eor3 v10.16b, v10.16b, v2.16b, v28.16b //AES block 8k+10 - result + rev32 v25.16b, v30.16b //CTR block 8k+19 + add v30.4s, v30.4s, v31.4s //CTR block 8k+19 + + aese v0.16b, v27.16b //AES block 8k+8 - round 13 + aese v6.16b, v27.16b //AES block 8k+14 - round 13 +.inst 0xce0571ad //eor3 v13.16b, v13.16b, v5.16b, v28.16b //AES block 5 - result + + ext v21.16b, v18.16b, v18.16b, #8 //MODULO - other mid alignment + pmull v17.1q, v18.1d, v16.1d //MODULO - mid 64b align with low + aese v1.16b, v27.16b //AES block 8k+9 - round 13 + +.inst 0xce04718c //eor3 v12.16b, v12.16b, v4.16b, v28.16b //AES block 4 - result + rev32 v4.16b, v30.16b //CTR block 8k+20 +.inst 0xce03716b //eor3 v11.16b, v11.16b, v3.16b, v28.16b //AES block 8k+11 - result + + mov v3.16b, v25.16b //CTR block 8k+19 +.inst 0xce017129 //eor3 v9.16b, v9.16b, v1.16b, v28.16b //AES block 8k+9 - result +.inst 0xce007108 //eor3 v8.16b, v8.16b, v0.16b, v28.16b //AES block 8k+8 - result + + add v30.4s, v30.4s, v31.4s //CTR block 8k+20 + stp q8, q9, [x2], #32 //AES block 8k+8, 8k+9 - store result + mov v2.16b, v23.16b //CTR block 8k+18 + +.inst 0xce0771ef //eor3 v15.16b, v15.16b, v7.16b, v28.16b //AES block 7 - result +.inst 0xce154673 //eor3 v19.16b, v19.16b, v21.16b, v17.16b //MODULO - fold into low + stp q10, q11, [x2], #32 //AES block 8k+10, 8k+11 - store result + +.inst 0xce0671ce //eor3 v14.16b, v14.16b, v6.16b, v28.16b //AES block 6 - result + mov v1.16b, v22.16b //CTR block 8k+17 + stp q12, q13, [x2], #32 //AES block 4, 5 - store result + + stp q14, q15, [x2], #32 //AES block 6, 7 - store result + mov v0.16b, v20.16b //CTR block 8k+16 + b.lt .L256_enc_main_loop + +.L256_enc_prepretail: //PREPRETAIL + rev32 v5.16b, v30.16b //CTR block 8k+13 + ldp q26, q27, [x8, #0] //load rk0, rk1 + add v30.4s, v30.4s, v31.4s //CTR block 8k+13 + + rev64 v10.16b, v10.16b //GHASH block 8k+2 + + rev32 v6.16b, v30.16b //CTR block 8k+14 + add v30.4s, v30.4s, v31.4s //CTR block 8k+14 + + rev64 v13.16b, v13.16b //GHASH block 8k+5 + ldr q21, [x3, #144] //load h6k | h5k + ldr q24, [x3, #192] //load h8k | h7k + + rev32 v7.16b, v30.16b //CTR block 8k+15 + + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 0 + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 0 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 0 + + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 0 + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 0 + + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 0 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 0 + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 0 + + ext v19.16b, v19.16b, v19.16b, #8 //PRE 0 + rev64 v8.16b, v8.16b //GHASH block 8k + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 1 + + rev64 v9.16b, v9.16b //GHASH block 8k+1 + ldp q28, q26, [x8, #32] //load rk2, rk3 + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 1 + + ldr q23, [x3, #176] //load h7l | h7h + ext v23.16b, v23.16b, v23.16b, #8 + ldr q25, [x3, #208] //load h8l | h8h + ext v25.16b, v25.16b, v25.16b, #8 + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 1 + + ldr q20, [x3, #128] //load h5l | h5h + ext v20.16b, v20.16b, v20.16b, #8 + ldr q22, [x3, #160] //load h6l | h6h + ext v22.16b, v22.16b, v22.16b, #8 + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 1 + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 1 + + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 1 + eor v8.16b, v8.16b, v19.16b //PRE 1 + + rev64 v11.16b, v11.16b //GHASH block 8k+3 + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 1 + + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 2 + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 2 + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 1 + + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 2 + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 2 + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 2 + + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 2 + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 2 + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 2 + + ldp q27, q28, [x8, #64] //load rk4, rk5 + trn1 v18.2d, v9.2d, v8.2d //GHASH block 8k, 8k+1 - mid + pmull2 v17.1q, v8.2d, v25.2d //GHASH block 8k - high + + rev64 v14.16b, v14.16b //GHASH block 8k+6 + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 3 + pmull2 v16.1q, v9.2d, v23.2d //GHASH block 8k+1 - high + + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 3 + pmull v19.1q, v8.1d, v25.1d //GHASH block 8k - low + trn2 v8.2d, v9.2d, v8.2d //GHASH block 8k, 8k+1 - mid + + pmull2 v29.1q, v10.2d, v22.2d //GHASH block 8k+2 - high + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 3 + + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 3 + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 3 + eor v17.16b, v17.16b, v16.16b //GHASH block 8k+1 - high + + pmull v23.1q, v9.1d, v23.1d //GHASH block 8k+1 - low + pmull2 v9.1q, v11.2d, v20.2d //GHASH block 8k+3 - high + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 3 + + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 3 + eor v8.16b, v8.16b, v18.16b //GHASH block 8k, 8k+1 - mid + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 3 + + pmull v22.1q, v10.1d, v22.1d //GHASH block 8k+2 - low + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 4 + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 4 + + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 4 + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 4 + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 4 + + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 5 + pmull2 v18.1q, v8.2d, v24.2d //GHASH block 8k - mid +.inst 0xce1d2631 //eor3 v17.16b, v17.16b, v29.16b, v9.16b //GHASH block 8k+2, 8k+3 - high + + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 4 + trn1 v29.2d, v11.2d, v10.2d //GHASH block 8k+2, 8k+3 - mid + trn2 v10.2d, v11.2d, v10.2d //GHASH block 8k+2, 8k+3 - mid + + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 4 + eor v19.16b, v19.16b, v23.16b //GHASH block 8k+1 - low + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 4 + + pmull v20.1q, v11.1d, v20.1d //GHASH block 8k+3 - low + pmull v24.1q, v8.1d, v24.1d //GHASH block 8k+1 - mid + eor v10.16b, v10.16b, v29.16b //GHASH block 8k+2, 8k+3 - mid + + rev64 v12.16b, v12.16b //GHASH block 8k+4 + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 5 + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 5 + + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 5 + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 5 + ldp q26, q27, [x8, #96] //load rk6, rk7 + + ldr q23, [x3, #80] //load h3l | h3h + ext v23.16b, v23.16b, v23.16b, #8 + ldr q25, [x3, #112] //load h4l | h4h + ext v25.16b, v25.16b, v25.16b, #8 + pmull2 v29.1q, v10.2d, v21.2d //GHASH block 8k+2 - mid + pmull v21.1q, v10.1d, v21.1d //GHASH block 8k+3 - mid + +.inst 0xce165273 //eor3 v19.16b, v19.16b, v22.16b, v20.16b //GHASH block 8k+2, 8k+3 - low + eor v18.16b, v18.16b, v24.16b //GHASH block 8k+1 - mid + + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 5 + rev64 v15.16b, v15.16b //GHASH block 8k+7 + trn1 v16.2d, v13.2d, v12.2d //GHASH block 8k+4, 8k+5 - mid + + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 5 + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 5 +.inst 0xce157652 //eor3 v18.16b, v18.16b, v21.16b, v29.16b //GHASH block 8k+2, 8k+3 - mid + + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 6 + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 6 + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 6 + + ldr q21, [x3, #48] //load h2k | h1k + ldr q24, [x3, #96] //load h4k | h3k + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 6 + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 6 + + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 6 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 6 + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 6 + + pmull2 v8.1q, v12.2d, v25.2d //GHASH block 8k+4 - high + pmull v25.1q, v12.1d, v25.1d //GHASH block 8k+4 - low + ldr q20, [x3, #32] //load h1l | h1h + ext v20.16b, v20.16b, v20.16b, #8 + ldr q22, [x3, #64] //load h2l | h2h + ext v22.16b, v22.16b, v22.16b, #8 + + ldp q28, q26, [x8, #128] //load rk8, rk9 + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 7 + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 7 + + pmull2 v10.1q, v13.2d, v23.2d //GHASH block 8k+5 - high + trn2 v12.2d, v13.2d, v12.2d //GHASH block 8k+4, 8k+5 - mid + + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 7 + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 7 + pmull v23.1q, v13.1d, v23.1d //GHASH block 8k+5 - low + + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 7 + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 7 + eor v12.16b, v12.16b, v16.16b //GHASH block 8k+4, 8k+5 - mid + + pmull2 v11.1q, v14.2d, v22.2d //GHASH block 8k+6 - high + pmull v22.1q, v14.1d, v22.1d //GHASH block 8k+6 - low + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 7 + + trn1 v13.2d, v15.2d, v14.2d //GHASH block 8k+6, 8k+7 - mid + trn2 v14.2d, v15.2d, v14.2d //GHASH block 8k+6, 8k+7 - mid + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 7 + + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 8 +.inst 0xce195e73 //eor3 v19.16b, v19.16b, v25.16b, v23.16b //GHASH block 8k+4, 8k+5 - low + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 8 + + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 8 + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 8 + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 8 + + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 8 + eor v14.16b, v14.16b, v13.16b //GHASH block 8k+6, 8k+7 - mid + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 8 + + pmull2 v16.1q, v12.2d, v24.2d //GHASH block 8k+4 - mid + pmull v24.1q, v12.1d, v24.1d //GHASH block 8k+5 - mid + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 8 + + pmull2 v12.1q, v15.2d, v20.2d //GHASH block 8k+7 - high + pmull2 v13.1q, v14.2d, v21.2d //GHASH block 8k+6 - mid + pmull v21.1q, v14.1d, v21.1d //GHASH block 8k+7 - mid + + pmull v20.1q, v15.1d, v20.1d //GHASH block 8k+7 - low +.inst 0xce184252 //eor3 v18.16b, v18.16b, v24.16b, v16.16b //GHASH block 8k+4, 8k+5 - mid +.inst 0xce082a31 //eor3 v17.16b, v17.16b, v8.16b, v10.16b //GHASH block 8k+4, 8k+5 - high + + ldp q27, q28, [x8, #160] //load rk10, rk11 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 9 + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 9 + +.inst 0xce0b3231 //eor3 v17.16b, v17.16b, v11.16b, v12.16b //GHASH block 8k+6, 8k+7 - high +.inst 0xce153652 //eor3 v18.16b, v18.16b, v21.16b, v13.16b //GHASH block 8k+6, 8k+7 - mid + ldr d16, [x10] //MODULO - load modulo constant + +.inst 0xce165273 //eor3 v19.16b, v19.16b, v22.16b, v20.16b //GHASH block 8k+6, 8k+7 - low + + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 9 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 9 + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 9 + + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 9 + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 9 + + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 10 + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 10 + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 9 + + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 10 + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 10 + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 10 + + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 10 + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 10 + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 10 + + pmull v29.1q, v17.1d, v16.1d //MODULO - top 64b align with mid +.inst 0xce114e52 //eor3 v18.16b, v18.16b, v17.16b, v19.16b //MODULO - karatsuba tidy up + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 11 + + ldp q26, q27, [x8, #192] //load rk12, rk13 + ext v21.16b, v17.16b, v17.16b, #8 //MODULO - other top alignment + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 11 + +.inst 0xce1d5652 //eor3 v18.16b, v18.16b, v29.16b, v21.16b //MODULO - fold into mid + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 11 + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 11 + + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 11 + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 11 + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 11 + + pmull v17.1q, v18.1d, v16.1d //MODULO - mid 64b align with low + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 11 + ldr q28, [x8, #224] //load rk14 + + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 12 + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 12 + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 12 + + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 12 + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 12 + ext v21.16b, v18.16b, v18.16b, #8 //MODULO - other mid alignment + + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 12 + add v30.4s, v30.4s, v31.4s //CTR block 8k+15 + + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 12 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 12 + aese v0.16b, v27.16b //AES block 8k+8 - round 13 + +.inst 0xce154673 //eor3 v19.16b, v19.16b, v21.16b, v17.16b //MODULO - fold into low + aese v5.16b, v27.16b //AES block 8k+13 - round 13 + aese v1.16b, v27.16b //AES block 8k+9 - round 13 + + aese v3.16b, v27.16b //AES block 8k+11 - round 13 + aese v4.16b, v27.16b //AES block 8k+12 - round 13 + aese v7.16b, v27.16b //AES block 8k+15 - round 13 + + aese v2.16b, v27.16b //AES block 8k+10 - round 13 + aese v6.16b, v27.16b //AES block 8k+14 - round 13 +.L256_enc_tail: //TAIL + + ldp q24, q25, [x3, #192] //load h8l | h8h + ext v25.16b, v25.16b, v25.16b, #8 + sub x5, x4, x0 //main_end_input_ptr is number of bytes left to process + + ldr q8, [x0], #16 //AES block 8k+8 - load plaintext + + ldp q20, q21, [x3, #128] //load h5l | h5h + ext v20.16b, v20.16b, v20.16b, #8 + + ext v16.16b, v19.16b, v19.16b, #8 //prepare final partial tag + ldp q22, q23, [x3, #160] //load h6l | h6h + ext v22.16b, v22.16b, v22.16b, #8 + ext v23.16b, v23.16b, v23.16b, #8 + mov v29.16b, v28.16b + + cmp x5, #112 +.inst 0xce007509 //eor3 v9.16b, v8.16b, v0.16b, v29.16b //AES block 8k+8 - result + b.gt .L256_enc_blocks_more_than_7 + + movi v19.8b, #0 + mov v7.16b, v6.16b + movi v17.8b, #0 + + mov v6.16b, v5.16b + mov v5.16b, v4.16b + mov v4.16b, v3.16b + + mov v3.16b, v2.16b + sub v30.4s, v30.4s, v31.4s + mov v2.16b, v1.16b + + movi v18.8b, #0 + cmp x5, #96 + b.gt .L256_enc_blocks_more_than_6 + + mov v7.16b, v6.16b + mov v6.16b, v5.16b + cmp x5, #80 + + mov v5.16b, v4.16b + mov v4.16b, v3.16b + mov v3.16b, v1.16b + + sub v30.4s, v30.4s, v31.4s + b.gt .L256_enc_blocks_more_than_5 + + mov v7.16b, v6.16b + sub v30.4s, v30.4s, v31.4s + + mov v6.16b, v5.16b + mov v5.16b, v4.16b + + cmp x5, #64 + mov v4.16b, v1.16b + b.gt .L256_enc_blocks_more_than_4 + + cmp x5, #48 + mov v7.16b, v6.16b + mov v6.16b, v5.16b + + mov v5.16b, v1.16b + sub v30.4s, v30.4s, v31.4s + b.gt .L256_enc_blocks_more_than_3 + + cmp x5, #32 + mov v7.16b, v6.16b + ldr q24, [x3, #96] //load h4k | h3k + + mov v6.16b, v1.16b + sub v30.4s, v30.4s, v31.4s + b.gt .L256_enc_blocks_more_than_2 + + mov v7.16b, v1.16b + + sub v30.4s, v30.4s, v31.4s + cmp x5, #16 + b.gt .L256_enc_blocks_more_than_1 + + sub v30.4s, v30.4s, v31.4s + ldr q21, [x3, #48] //load h2k | h1k + b .L256_enc_blocks_less_than_1 +.L256_enc_blocks_more_than_7: //blocks left > 7 + st1 { v9.16b}, [x2], #16 //AES final-7 block - store result + + rev64 v8.16b, v9.16b //GHASH final-7 block + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + + ldr q9, [x0], #16 //AES final-6 block - load plaintext + + pmull2 v17.1q, v8.2d, v25.2d //GHASH final-7 block - high + ins v27.d[0], v8.d[1] //GHASH final-7 block - mid + ins v18.d[0], v24.d[1] //GHASH final-7 block - mid + + movi v16.8b, #0 //suppress further partial tag feed in + + eor v27.8b, v27.8b, v8.8b //GHASH final-7 block - mid +.inst 0xce017529 //eor3 v9.16b, v9.16b, v1.16b, v29.16b //AES final-6 block - result + + pmull v18.1q, v27.1d, v18.1d //GHASH final-7 block - mid + pmull v19.1q, v8.1d, v25.1d //GHASH final-7 block - low +.L256_enc_blocks_more_than_6: //blocks left > 6 + + st1 { v9.16b}, [x2], #16 //AES final-6 block - store result + + rev64 v8.16b, v9.16b //GHASH final-6 block + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + + pmull v26.1q, v8.1d, v23.1d //GHASH final-6 block - low + ins v27.d[0], v8.d[1] //GHASH final-6 block - mid + pmull2 v28.1q, v8.2d, v23.2d //GHASH final-6 block - high + + ldr q9, [x0], #16 //AES final-5 block - load plaintext + + eor v19.16b, v19.16b, v26.16b //GHASH final-6 block - low + + eor v27.8b, v27.8b, v8.8b //GHASH final-6 block - mid + + pmull v27.1q, v27.1d, v24.1d //GHASH final-6 block - mid +.inst 0xce027529 //eor3 v9.16b, v9.16b, v2.16b, v29.16b //AES final-5 block - result + + movi v16.8b, #0 //suppress further partial tag feed in + + eor v18.16b, v18.16b, v27.16b //GHASH final-6 block - mid + eor v17.16b, v17.16b, v28.16b //GHASH final-6 block - high +.L256_enc_blocks_more_than_5: //blocks left > 5 + + st1 { v9.16b}, [x2], #16 //AES final-5 block - store result + + rev64 v8.16b, v9.16b //GHASH final-5 block + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + + ins v27.d[0], v8.d[1] //GHASH final-5 block - mid + + pmull2 v28.1q, v8.2d, v22.2d //GHASH final-5 block - high + + eor v17.16b, v17.16b, v28.16b //GHASH final-5 block - high + eor v27.8b, v27.8b, v8.8b //GHASH final-5 block - mid + + ins v27.d[1], v27.d[0] //GHASH final-5 block - mid + + ldr q9, [x0], #16 //AES final-4 block - load plaintext + pmull v26.1q, v8.1d, v22.1d //GHASH final-5 block - low + + pmull2 v27.1q, v27.2d, v21.2d //GHASH final-5 block - mid + movi v16.8b, #0 //suppress further partial tag feed in + eor v19.16b, v19.16b, v26.16b //GHASH final-5 block - low + + eor v18.16b, v18.16b, v27.16b //GHASH final-5 block - mid +.inst 0xce037529 //eor3 v9.16b, v9.16b, v3.16b, v29.16b //AES final-4 block - result +.L256_enc_blocks_more_than_4: //blocks left > 4 + + st1 { v9.16b}, [x2], #16 //AES final-4 block - store result + + rev64 v8.16b, v9.16b //GHASH final-4 block + + ldr q9, [x0], #16 //AES final-3 block - load plaintext + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + + ins v27.d[0], v8.d[1] //GHASH final-4 block - mid + pmull2 v28.1q, v8.2d, v20.2d //GHASH final-4 block - high + +.inst 0xce047529 //eor3 v9.16b, v9.16b, v4.16b, v29.16b //AES final-3 block - result + pmull v26.1q, v8.1d, v20.1d //GHASH final-4 block - low + + eor v27.8b, v27.8b, v8.8b //GHASH final-4 block - mid + eor v19.16b, v19.16b, v26.16b //GHASH final-4 block - low + + pmull v27.1q, v27.1d, v21.1d //GHASH final-4 block - mid + + movi v16.8b, #0 //suppress further partial tag feed in + + eor v18.16b, v18.16b, v27.16b //GHASH final-4 block - mid + eor v17.16b, v17.16b, v28.16b //GHASH final-4 block - high +.L256_enc_blocks_more_than_3: //blocks left > 3 + + st1 { v9.16b}, [x2], #16 //AES final-3 block - store result + + ldr q25, [x3, #112] //load h4l | h4h + ext v25.16b, v25.16b, v25.16b, #8 + rev64 v8.16b, v9.16b //GHASH final-3 block + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + + ins v27.d[0], v8.d[1] //GHASH final-3 block - mid + pmull2 v28.1q, v8.2d, v25.2d //GHASH final-3 block - high + + eor v17.16b, v17.16b, v28.16b //GHASH final-3 block - high + eor v27.8b, v27.8b, v8.8b //GHASH final-3 block - mid + ldr q24, [x3, #96] //load h4k | h3k + + ins v27.d[1], v27.d[0] //GHASH final-3 block - mid + ldr q9, [x0], #16 //AES final-2 block - load plaintext + + pmull2 v27.1q, v27.2d, v24.2d //GHASH final-3 block - mid + pmull v26.1q, v8.1d, v25.1d //GHASH final-3 block - low + +.inst 0xce057529 //eor3 v9.16b, v9.16b, v5.16b, v29.16b //AES final-2 block - result + movi v16.8b, #0 //suppress further partial tag feed in + + eor v18.16b, v18.16b, v27.16b //GHASH final-3 block - mid + eor v19.16b, v19.16b, v26.16b //GHASH final-3 block - low +.L256_enc_blocks_more_than_2: //blocks left > 2 + + ldr q23, [x3, #80] //load h3l | h3h + ext v23.16b, v23.16b, v23.16b, #8 + + st1 { v9.16b}, [x2], #16 //AES final-2 block - store result + + rev64 v8.16b, v9.16b //GHASH final-2 block + ldr q9, [x0], #16 //AES final-1 block - load plaintext + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + + ins v27.d[0], v8.d[1] //GHASH final-2 block - mid + + movi v16.8b, #0 //suppress further partial tag feed in + + pmull2 v28.1q, v8.2d, v23.2d //GHASH final-2 block - high +.inst 0xce067529 //eor3 v9.16b, v9.16b, v6.16b, v29.16b //AES final-1 block - result + + eor v27.8b, v27.8b, v8.8b //GHASH final-2 block - mid + + eor v17.16b, v17.16b, v28.16b //GHASH final-2 block - high + + pmull v27.1q, v27.1d, v24.1d //GHASH final-2 block - mid + pmull v26.1q, v8.1d, v23.1d //GHASH final-2 block - low + + eor v18.16b, v18.16b, v27.16b //GHASH final-2 block - mid + eor v19.16b, v19.16b, v26.16b //GHASH final-2 block - low +.L256_enc_blocks_more_than_1: //blocks left > 1 + + st1 { v9.16b}, [x2], #16 //AES final-1 block - store result + + ldr q22, [x3, #64] //load h2l | h2h + ext v22.16b, v22.16b, v22.16b, #8 + rev64 v8.16b, v9.16b //GHASH final-1 block + ldr q9, [x0], #16 //AES final block - load plaintext + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + movi v16.8b, #0 //suppress further partial tag feed in + + ins v27.d[0], v8.d[1] //GHASH final-1 block - mid + pmull2 v28.1q, v8.2d, v22.2d //GHASH final-1 block - high + +.inst 0xce077529 //eor3 v9.16b, v9.16b, v7.16b, v29.16b //AES final block - result + eor v17.16b, v17.16b, v28.16b //GHASH final-1 block - high + + pmull v26.1q, v8.1d, v22.1d //GHASH final-1 block - low + eor v27.8b, v27.8b, v8.8b //GHASH final-1 block - mid + + ldr q21, [x3, #48] //load h2k | h1k + + eor v19.16b, v19.16b, v26.16b //GHASH final-1 block - low + ins v27.d[1], v27.d[0] //GHASH final-1 block - mid + + pmull2 v27.1q, v27.2d, v21.2d //GHASH final-1 block - mid + + eor v18.16b, v18.16b, v27.16b //GHASH final-1 block - mid +.L256_enc_blocks_less_than_1: //blocks left <= 1 + + and x1, x1, #127 //bit_length %= 128 + + sub x1, x1, #128 //bit_length -= 128 + + neg x1, x1 //bit_length = 128 - #bits in input (in range [1,128]) + + mvn x6, xzr //temp0_x = 0xffffffffffffffff + and x1, x1, #127 //bit_length %= 128 + + lsr x6, x6, x1 //temp0_x is mask for top 64b of last block + cmp x1, #64 + mvn x7, xzr //temp1_x = 0xffffffffffffffff + + csel x14, x6, xzr, lt + csel x13, x7, x6, lt + + mov v0.d[0], x13 //ctr0b is mask for last block + ldr q20, [x3, #32] //load h1l | h1h + ext v20.16b, v20.16b, v20.16b, #8 + + ld1 { v26.16b}, [x2] //load existing bytes where the possibly partial last block is to be stored + mov v0.d[1], x14 + + and v9.16b, v9.16b, v0.16b //possibly partial last block has zeroes in highest bits + + rev64 v8.16b, v9.16b //GHASH final block + + rev32 v30.16b, v30.16b + bif v9.16b, v26.16b, v0.16b //insert existing bytes in top end of result before storing + str q30, [x16] //store the updated counter + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + st1 { v9.16b}, [x2] //store all 16B + + ins v16.d[0], v8.d[1] //GHASH final block - mid + pmull2 v28.1q, v8.2d, v20.2d //GHASH final block - high + pmull v26.1q, v8.1d, v20.1d //GHASH final block - low + + eor v17.16b, v17.16b, v28.16b //GHASH final block - high + eor v19.16b, v19.16b, v26.16b //GHASH final block - low + + eor v16.8b, v16.8b, v8.8b //GHASH final block - mid + + pmull v16.1q, v16.1d, v21.1d //GHASH final block - mid + + eor v18.16b, v18.16b, v16.16b //GHASH final block - mid + ldr d16, [x10] //MODULO - load modulo constant + + ext v21.16b, v17.16b, v17.16b, #8 //MODULO - other top alignment + +.inst 0xce114e52 //eor3 v18.16b, v18.16b, v17.16b, v19.16b //MODULO - karatsuba tidy up + pmull v29.1q, v17.1d, v16.1d //MODULO - top 64b align with mid + +.inst 0xce1d5652 //eor3 v18.16b, v18.16b, v29.16b, v21.16b //MODULO - fold into mid + + pmull v17.1q, v18.1d, v16.1d //MODULO - mid 64b align with low + ext v21.16b, v18.16b, v18.16b, #8 //MODULO - other mid alignment + +.inst 0xce115673 //eor3 v19.16b, v19.16b, v17.16b, v21.16b //MODULO - fold into low + ext v19.16b, v19.16b, v19.16b, #8 + rev64 v19.16b, v19.16b + st1 { v19.16b }, [x3] + mov x0, x9 //return sizes + + ldp d10, d11, [sp, #16] + ldp d12, d13, [sp, #32] + ldp d14, d15, [sp, #48] + ldp d8, d9, [sp], #80 + ret + +.L256_enc_ret: + mov w0, #0x0 + ret +.size unroll8_eor3_aes_gcm_enc_256_kernel,.-unroll8_eor3_aes_gcm_enc_256_kernel +.globl unroll8_eor3_aes_gcm_dec_256_kernel +.type unroll8_eor3_aes_gcm_dec_256_kernel,%function +.align 4 +unroll8_eor3_aes_gcm_dec_256_kernel: + AARCH64_VALID_CALL_TARGET + cbz x1, .L256_dec_ret + stp d8, d9, [sp, #-80]! + lsr x9, x1, #3 + mov x16, x4 + mov x8, x5 + stp d10, d11, [sp, #16] + stp d12, d13, [sp, #32] + stp d14, d15, [sp, #48] + mov x5, #0xc200000000000000 + stp x5, xzr, [sp, #64] + add x10, sp, #64 + + ld1 { v0.16b}, [x16] //CTR block 0 + + mov x15, #0x100000000 //set up counter increment + movi v31.16b, #0x0 + mov v31.d[1], x15 + mov x5, x9 + + sub x5, x5, #1 //byte_len - 1 + + rev32 v30.16b, v0.16b //set up reversed counter + + add v30.4s, v30.4s, v31.4s //CTR block 0 + + rev32 v1.16b, v30.16b //CTR block 1 + add v30.4s, v30.4s, v31.4s //CTR block 1 + + rev32 v2.16b, v30.16b //CTR block 2 + add v30.4s, v30.4s, v31.4s //CTR block 2 + ldp q26, q27, [x8, #0] //load rk0, rk1 + + rev32 v3.16b, v30.16b //CTR block 3 + add v30.4s, v30.4s, v31.4s //CTR block 3 + + rev32 v4.16b, v30.16b //CTR block 4 + add v30.4s, v30.4s, v31.4s //CTR block 4 + + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 0 - round 0 + + rev32 v5.16b, v30.16b //CTR block 5 + add v30.4s, v30.4s, v31.4s //CTR block 5 + + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 1 - round 0 + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 2 - round 0 + + rev32 v6.16b, v30.16b //CTR block 6 + add v30.4s, v30.4s, v31.4s //CTR block 6 + + rev32 v7.16b, v30.16b //CTR block 7 + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 4 - round 0 + + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 6 - round 0 + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 5 - round 0 + + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 3 - round 0 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 7 - round 0 + ldp q28, q26, [x8, #32] //load rk2, rk3 + + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 6 - round 1 + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 4 - round 1 + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 0 - round 1 + + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 5 - round 1 + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 7 - round 1 + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 1 - round 1 + + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 2 - round 1 + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 3 - round 1 + + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 3 - round 2 + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 2 - round 2 + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 6 - round 2 + + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 1 - round 2 + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 7 - round 2 + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 5 - round 2 + + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 0 - round 2 + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 4 - round 2 + ldp q27, q28, [x8, #64] //load rk4, rk5 + + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 1 - round 3 + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 2 - round 3 + + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 3 - round 3 + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 4 - round 3 + + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 5 - round 3 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 7 - round 3 + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 0 - round 3 + + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 6 - round 3 + + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 7 - round 4 + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 3 - round 4 + + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 6 - round 4 + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 2 - round 4 + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 0 - round 4 + + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 4 - round 4 + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 1 - round 4 + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 5 - round 4 + + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 0 - round 5 + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 6 - round 5 + + ldp q26, q27, [x8, #96] //load rk6, rk7 + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 4 - round 5 + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 7 - round 5 + + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 5 - round 5 + + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 2 - round 5 + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 3 - round 5 + + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 1 - round 5 + + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 4 - round 6 + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 3 - round 6 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 7 - round 6 + + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 6 - round 6 + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 0 - round 6 + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 5 - round 6 + + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 2 - round 6 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 1 - round 6 + ldp q28, q26, [x8, #128] //load rk8, rk9 + + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 5 - round 7 + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 0 - round 7 + + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 3 - round 7 + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 2 - round 7 + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 7 - round 7 + + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 4 - round 7 + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 1 - round 7 + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 6 - round 7 + + and x5, x5, #0xffffffffffffff80 //number of bytes to be processed in main loop (at least 1 byte must be handled by tail) + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 7 - round 8 + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 5 - round 8 + + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 0 - round 8 + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 1 - round 8 + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 2 - round 8 + + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 4 - round 8 + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 3 - round 8 + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 6 - round 8 + + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 2 - round 9 + + ld1 { v19.16b}, [x3] + ext v19.16b, v19.16b, v19.16b, #8 + rev64 v19.16b, v19.16b + ldp q27, q28, [x8, #160] //load rk10, rk11 + add x4, x0, x1, lsr #3 //end_input_ptr + add x5, x5, x0 + + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 3 - round 9 + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 6 - round 9 + + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 4 - round 9 + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 5 - round 9 + + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 7 - round 9 + + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 0 - round 9 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 1 - round 9 + + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 4 - round 10 + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 7 - round 10 + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 5 - round 10 + + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 1 - round 10 + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 2 - round 10 + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 0 - round 10 + + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 6 - round 10 + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 3 - round 10 + ldp q26, q27, [x8, #192] //load rk12, rk13 + + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 0 - round 11 + add v30.4s, v30.4s, v31.4s //CTR block 7 + + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 7 - round 11 + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 3 - round 11 + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 1 - round 11 + + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 5 - round 11 + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 4 - round 11 + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 2 - round 11 + + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 6 - round 11 + ldr q28, [x8, #224] //load rk14 + + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 1 - round 12 + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 4 - round 12 + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 5 - round 12 + + cmp x0, x5 //check if we have <= 8 blocks + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 3 - round 12 + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 2 - round 12 + + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 6 - round 12 + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 0 - round 12 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 7 - round 12 + + aese v5.16b, v27.16b //AES block 5 - round 13 + aese v1.16b, v27.16b //AES block 1 - round 13 + aese v2.16b, v27.16b //AES block 2 - round 13 + + aese v0.16b, v27.16b //AES block 0 - round 13 + aese v4.16b, v27.16b //AES block 4 - round 13 + aese v6.16b, v27.16b //AES block 6 - round 13 + + aese v3.16b, v27.16b //AES block 3 - round 13 + aese v7.16b, v27.16b //AES block 7 - round 13 + b.ge .L256_dec_tail //handle tail + + ldp q8, q9, [x0], #32 //AES block 0, 1 - load ciphertext + + ldp q10, q11, [x0], #32 //AES block 2, 3 - load ciphertext + + ldp q12, q13, [x0], #32 //AES block 4, 5 - load ciphertext + + ldp q14, q15, [x0], #32 //AES block 6, 7 - load ciphertext + cmp x0, x5 //check if we have <= 8 blocks + +.inst 0xce017121 //eor3 v1.16b, v9.16b, v1.16b, v28.16b //AES block 1 - result +.inst 0xce007100 //eor3 v0.16b, v8.16b, v0.16b, v28.16b //AES block 0 - result + stp q0, q1, [x2], #32 //AES block 0, 1 - store result + + rev32 v0.16b, v30.16b //CTR block 8 + add v30.4s, v30.4s, v31.4s //CTR block 8 +.inst 0xce037163 //eor3 v3.16b, v11.16b, v3.16b, v28.16b //AES block 3 - result + +.inst 0xce0571a5 //eor3 v5.16b, v13.16b, v5.16b, v28.16b //AES block 5 - result + +.inst 0xce047184 //eor3 v4.16b, v12.16b, v4.16b, v28.16b //AES block 4 - result + rev32 v1.16b, v30.16b //CTR block 9 + add v30.4s, v30.4s, v31.4s //CTR block 9 + +.inst 0xce027142 //eor3 v2.16b, v10.16b, v2.16b, v28.16b //AES block 2 - result + stp q2, q3, [x2], #32 //AES block 2, 3 - store result + + rev32 v2.16b, v30.16b //CTR block 10 + add v30.4s, v30.4s, v31.4s //CTR block 10 + +.inst 0xce0671c6 //eor3 v6.16b, v14.16b, v6.16b, v28.16b //AES block 6 - result + + rev32 v3.16b, v30.16b //CTR block 11 + add v30.4s, v30.4s, v31.4s //CTR block 11 + stp q4, q5, [x2], #32 //AES block 4, 5 - store result + +.inst 0xce0771e7 //eor3 v7.16b, v15.16b, v7.16b, v28.16b //AES block 7 - result + stp q6, q7, [x2], #32 //AES block 6, 7 - store result + + rev32 v4.16b, v30.16b //CTR block 12 + add v30.4s, v30.4s, v31.4s //CTR block 12 + b.ge .L256_dec_prepretail //do prepretail + +.L256_dec_main_loop: //main loop start + rev32 v5.16b, v30.16b //CTR block 8k+13 + ldp q26, q27, [x8, #0] //load rk0, rk1 + add v30.4s, v30.4s, v31.4s //CTR block 8k+13 + + rev64 v9.16b, v9.16b //GHASH block 8k+1 + ldr q23, [x3, #176] //load h7l | h7h + ext v23.16b, v23.16b, v23.16b, #8 + ldr q25, [x3, #208] //load h8l | h8h + ext v25.16b, v25.16b, v25.16b, #8 + + rev32 v6.16b, v30.16b //CTR block 8k+14 + add v30.4s, v30.4s, v31.4s //CTR block 8k+14 + rev64 v8.16b, v8.16b //GHASH block 8k + + ext v19.16b, v19.16b, v19.16b, #8 //PRE 0 + rev64 v12.16b, v12.16b //GHASH block 8k+4 + rev64 v11.16b, v11.16b //GHASH block 8k+3 + + rev32 v7.16b, v30.16b //CTR block 8k+15 + rev64 v15.16b, v15.16b //GHASH block 8k+7 + + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 0 + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 0 + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 0 + + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 0 + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 0 + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 0 + + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 0 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 0 + ldp q28, q26, [x8, #32] //load rk2, rk3 + + eor v8.16b, v8.16b, v19.16b //PRE 1 + ldr q20, [x3, #128] //load h5l | h5h + ext v20.16b, v20.16b, v20.16b, #8 + ldr q22, [x3, #160] //load h6l | h6h + ext v22.16b, v22.16b, v22.16b, #8 + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 1 + + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 1 + rev64 v10.16b, v10.16b //GHASH block 8k+2 + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 1 + + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 1 + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 1 + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 1 + + trn1 v18.2d, v9.2d, v8.2d //GHASH block 8k, 8k+1 - mid + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 1 + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 1 + + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 2 + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 2 + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 2 + + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 2 + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 2 + pmull v19.1q, v8.1d, v25.1d //GHASH block 8k - low + + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 2 + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 2 + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 2 + + ldp q27, q28, [x8, #64] //load rk4, rk5 + pmull2 v29.1q, v10.2d, v22.2d //GHASH block 8k+2 - high + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 3 + + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 3 + pmull2 v16.1q, v9.2d, v23.2d //GHASH block 8k+1 - high + pmull v23.1q, v9.1d, v23.1d //GHASH block 8k+1 - low + + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 3 + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 3 + pmull2 v17.1q, v8.2d, v25.2d //GHASH block 8k - high + + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 3 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 3 + trn2 v8.2d, v9.2d, v8.2d //GHASH block 8k, 8k+1 - mid + + pmull2 v9.1q, v11.2d, v20.2d //GHASH block 8k+3 - high + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 3 + eor v17.16b, v17.16b, v16.16b //GHASH block 8k+1 - high + + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 4 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 3 + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 4 + + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 4 + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 4 + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 4 + + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 4 + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 4 + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 4 + + ldr q21, [x3, #144] //load h6k | h5k + ldr q24, [x3, #192] //load h8k | h7k + eor v8.16b, v8.16b, v18.16b //GHASH block 8k, 8k+1 - mid + pmull v22.1q, v10.1d, v22.1d //GHASH block 8k+2 - low + + ldp q26, q27, [x8, #96] //load rk6, rk7 + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 5 + eor v19.16b, v19.16b, v23.16b //GHASH block 8k+1 - low + + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 5 + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 5 + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 5 + + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 5 + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 5 + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 5 + +.inst 0xce1d2631 //eor3 v17.16b, v17.16b, v29.16b, v9.16b //GHASH block 8k+2, 8k+3 - high + trn1 v29.2d, v11.2d, v10.2d //GHASH block 8k+2, 8k+3 - mid + rev64 v13.16b, v13.16b //GHASH block 8k+5 + + pmull2 v18.1q, v8.2d, v24.2d //GHASH block 8k - mid + pmull v24.1q, v8.1d, v24.1d //GHASH block 8k+1 - mid + trn2 v10.2d, v11.2d, v10.2d //GHASH block 8k+2, 8k+3 - mid + + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 6 + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 6 + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 5 + + trn1 v16.2d, v13.2d, v12.2d //GHASH block 8k+4, 8k+5 - mid + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 6 + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 6 + + eor v10.16b, v10.16b, v29.16b //GHASH block 8k+2, 8k+3 - mid + pmull v20.1q, v11.1d, v20.1d //GHASH block 8k+3 - low + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 6 + + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 6 + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 6 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 6 + + pmull2 v29.1q, v10.2d, v21.2d //GHASH block 8k+2 - mid + pmull v21.1q, v10.1d, v21.1d //GHASH block 8k+3 - mid +.inst 0xce165273 //eor3 v19.16b, v19.16b, v22.16b, v20.16b //GHASH block 8k+2, 8k+3 - low + + ldr q23, [x3, #80] //load h3l | h3h + ext v23.16b, v23.16b, v23.16b, #8 + ldr q25, [x3, #112] //load h4l | h4h + ext v25.16b, v25.16b, v25.16b, #8 + rev64 v14.16b, v14.16b //GHASH block 8k+6 + eor v18.16b, v18.16b, v24.16b //GHASH block 8k+1 - mid + + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 7 + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 7 + ldp q28, q26, [x8, #128] //load rk8, rk9 + + ldr q20, [x3, #32] //load h1l | h1h + ext v20.16b, v20.16b, v20.16b, #8 + ldr q22, [x3, #64] //load h2l | h2h + ext v22.16b, v22.16b, v22.16b, #8 +.inst 0xce157652 //eor3 v18.16b, v18.16b, v21.16b, v29.16b //GHASH block 8k+2, 8k+3 - mid + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 7 + + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 7 + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 7 + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 7 + + ldr q21, [x3, #48] //load h2k | h1k + ldr q24, [x3, #96] //load h4k | h3k + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 7 + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 7 + + pmull2 v8.1q, v12.2d, v25.2d //GHASH block 8k+4 - high + pmull v25.1q, v12.1d, v25.1d //GHASH block 8k+4 - low + trn2 v12.2d, v13.2d, v12.2d //GHASH block 8k+4, 8k+5 - mid + + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 8 + pmull2 v10.1q, v13.2d, v23.2d //GHASH block 8k+5 - high + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 8 + + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 8 + pmull v23.1q, v13.1d, v23.1d //GHASH block 8k+5 - low + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 8 + + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 8 + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 8 + pmull2 v11.1q, v14.2d, v22.2d //GHASH block 8k+6 - high + + trn1 v13.2d, v15.2d, v14.2d //GHASH block 8k+6, 8k+7 - mid + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 8 + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 8 + + ldp q27, q28, [x8, #160] //load rk10, rk11 + pmull v22.1q, v14.1d, v22.1d //GHASH block 8k+6 - low + trn2 v14.2d, v15.2d, v14.2d //GHASH block 8k+6, 8k+7 - mid + + add v30.4s, v30.4s, v31.4s //CTR block 8k+15 +.inst 0xce082a31 //eor3 v17.16b, v17.16b, v8.16b, v10.16b //GHASH block 8k+4, 8k+5 - high + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 9 + + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 9 + eor v14.16b, v14.16b, v13.16b //GHASH block 8k+6, 8k+7 - mid + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 9 + + ldp q8, q9, [x0], #32 //AES block 8k+8, 8k+9 - load ciphertext + eor v12.16b, v12.16b, v16.16b //GHASH block 8k+4, 8k+5 - mid + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 9 + + pmull2 v13.1q, v14.2d, v21.2d //GHASH block 8k+6 - mid + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 9 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 9 + + pmull2 v16.1q, v12.2d, v24.2d //GHASH block 8k+4 - mid + pmull v24.1q, v12.1d, v24.1d //GHASH block 8k+5 - mid + pmull2 v12.1q, v15.2d, v20.2d //GHASH block 8k+7 - high + + pmull v20.1q, v15.1d, v20.1d //GHASH block 8k+7 - low + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 10 + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 10 + + pmull v21.1q, v14.1d, v21.1d //GHASH block 8k+7 - mid + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 9 +.inst 0xce195e73 //eor3 v19.16b, v19.16b, v25.16b, v23.16b //GHASH block 8k+4, 8k+5 - low + + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 9 +.inst 0xce184252 //eor3 v18.16b, v18.16b, v24.16b, v16.16b //GHASH block 8k+4, 8k+5 - mid +.inst 0xce0b3231 //eor3 v17.16b, v17.16b, v11.16b, v12.16b //GHASH block 8k+6, 8k+7 - high + + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 10 + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 10 + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 10 + + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 10 + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 10 + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 10 + +.inst 0xce165273 //eor3 v19.16b, v19.16b, v22.16b, v20.16b //GHASH block 8k+6, 8k+7 - low + rev32 v20.16b, v30.16b //CTR block 8k+16 + ldr d16, [x10] //MODULO - load modulo constant + + add v30.4s, v30.4s, v31.4s //CTR block 8k+16 + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 11 + ldp q26, q27, [x8, #192] //load rk12, rk13 + + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 11 + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 11 + +.inst 0xce153652 //eor3 v18.16b, v18.16b, v21.16b, v13.16b //GHASH block 8k+6, 8k+7 - mid + rev32 v22.16b, v30.16b //CTR block 8k+17 + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 11 + + ldp q10, q11, [x0], #32 //AES block 8k+10, 8k+11 - load ciphertext + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 11 + ext v21.16b, v17.16b, v17.16b, #8 //MODULO - other top alignment + + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 11 + add v30.4s, v30.4s, v31.4s //CTR block 8k+17 + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 11 + + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 12 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 12 + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 12 + + rev32 v23.16b, v30.16b //CTR block 8k+18 + add v30.4s, v30.4s, v31.4s //CTR block 8k+18 + pmull v29.1q, v17.1d, v16.1d //MODULO - top 64b align with mid + +.inst 0xce114e52 //eor3 v18.16b, v18.16b, v17.16b, v19.16b //MODULO - karatsuba tidy up + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 12 + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 11 + + ldr q28, [x8, #224] //load rk14 + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 12 + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 12 + +.inst 0xce1d5652 //eor3 v18.16b, v18.16b, v29.16b, v21.16b //MODULO - fold into mid + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 12 + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 12 + + ldp q12, q13, [x0], #32 //AES block 8k+12, 8k+13 - load ciphertext + aese v1.16b, v27.16b //AES block 8k+9 - round 13 + aese v2.16b, v27.16b //AES block 8k+10 - round 13 + + ldp q14, q15, [x0], #32 //AES block 8k+14, 8k+15 - load ciphertext + aese v0.16b, v27.16b //AES block 8k+8 - round 13 + aese v5.16b, v27.16b //AES block 8k+13 - round 13 + + rev32 v25.16b, v30.16b //CTR block 8k+19 +.inst 0xce027142 //eor3 v2.16b, v10.16b, v2.16b, v28.16b //AES block 8k+10 - result +.inst 0xce017121 //eor3 v1.16b, v9.16b, v1.16b, v28.16b //AES block 8k+9 - result + + ext v21.16b, v18.16b, v18.16b, #8 //MODULO - other mid alignment + aese v7.16b, v27.16b //AES block 8k+15 - round 13 + + add v30.4s, v30.4s, v31.4s //CTR block 8k+19 + pmull v17.1q, v18.1d, v16.1d //MODULO - mid 64b align with low + aese v4.16b, v27.16b //AES block 8k+12 - round 13 + +.inst 0xce0571a5 //eor3 v5.16b, v13.16b, v5.16b, v28.16b //AES block 8k+13 - result +.inst 0xce007100 //eor3 v0.16b, v8.16b, v0.16b, v28.16b //AES block 8k+8 - result + aese v3.16b, v27.16b //AES block 8k+11 - round 13 + + stp q0, q1, [x2], #32 //AES block 8k+8, 8k+9 - store result + mov v0.16b, v20.16b //CTR block 8k+16 +.inst 0xce047184 //eor3 v4.16b, v12.16b, v4.16b, v28.16b //AES block 8k+12 - result + +.inst 0xce154673 //eor3 v19.16b, v19.16b, v21.16b, v17.16b //MODULO - fold into low +.inst 0xce037163 //eor3 v3.16b, v11.16b, v3.16b, v28.16b //AES block 8k+11 - result + stp q2, q3, [x2], #32 //AES block 8k+10, 8k+11 - store result + + mov v3.16b, v25.16b //CTR block 8k+19 + mov v2.16b, v23.16b //CTR block 8k+18 + aese v6.16b, v27.16b //AES block 8k+14 - round 13 + + mov v1.16b, v22.16b //CTR block 8k+17 + stp q4, q5, [x2], #32 //AES block 8k+12, 8k+13 - store result +.inst 0xce0771e7 //eor3 v7.16b, v15.16b, v7.16b, v28.16b //AES block 8k+15 - result + +.inst 0xce0671c6 //eor3 v6.16b, v14.16b, v6.16b, v28.16b //AES block 8k+14 - result + rev32 v4.16b, v30.16b //CTR block 8k+20 + add v30.4s, v30.4s, v31.4s //CTR block 8k+20 + + cmp x0, x5 //.LOOP CONTROL + stp q6, q7, [x2], #32 //AES block 8k+14, 8k+15 - store result + b.lt .L256_dec_main_loop + +.L256_dec_prepretail: //PREPRETAIL + ldp q26, q27, [x8, #0] //load rk0, rk1 + rev32 v5.16b, v30.16b //CTR block 8k+13 + add v30.4s, v30.4s, v31.4s //CTR block 8k+13 + + rev64 v12.16b, v12.16b //GHASH block 8k+4 + ldr q21, [x3, #144] //load h6k | h5k + ldr q24, [x3, #192] //load h8k | h7k + + rev32 v6.16b, v30.16b //CTR block 8k+14 + rev64 v8.16b, v8.16b //GHASH block 8k + add v30.4s, v30.4s, v31.4s //CTR block 8k+14 + + ext v19.16b, v19.16b, v19.16b, #8 //PRE 0 + ldr q23, [x3, #176] //load h7l | h7h + ext v23.16b, v23.16b, v23.16b, #8 + ldr q25, [x3, #208] //load h8l | h8h + ext v25.16b, v25.16b, v25.16b, #8 + rev64 v9.16b, v9.16b //GHASH block 8k+1 + + rev32 v7.16b, v30.16b //CTR block 8k+15 + rev64 v10.16b, v10.16b //GHASH block 8k+2 + ldr q20, [x3, #128] //load h5l | h5h + ext v20.16b, v20.16b, v20.16b, #8 + ldr q22, [x3, #160] //load h6l | h6h + ext v22.16b, v22.16b, v22.16b, #8 + + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 0 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 0 + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 0 + + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 0 + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 0 + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 0 + + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 1 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 0 + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 0 + + ldp q28, q26, [x8, #32] //load rk2, rk3 + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 1 + eor v8.16b, v8.16b, v19.16b //PRE 1 + + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 1 + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 1 + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 1 + + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 1 + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 1 + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 1 + + pmull2 v16.1q, v9.2d, v23.2d //GHASH block 8k+1 - high + trn1 v18.2d, v9.2d, v8.2d //GHASH block 8k, 8k+1 - mid + pmull v19.1q, v8.1d, v25.1d //GHASH block 8k - low + + rev64 v11.16b, v11.16b //GHASH block 8k+3 + pmull v23.1q, v9.1d, v23.1d //GHASH block 8k+1 - low + + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 2 + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 2 + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 2 + + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 2 + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 2 + pmull2 v17.1q, v8.2d, v25.2d //GHASH block 8k - high + + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 2 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 3 + + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 3 + rev64 v14.16b, v14.16b //GHASH block 8k+6 + + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 3 + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 2 + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 3 + + pmull2 v29.1q, v10.2d, v22.2d //GHASH block 8k+2 - high + trn2 v8.2d, v9.2d, v8.2d //GHASH block 8k, 8k+1 - mid + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 2 + + ldp q27, q28, [x8, #64] //load rk4, rk5 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 3 + pmull2 v9.1q, v11.2d, v20.2d //GHASH block 8k+3 - high + + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 3 + eor v17.16b, v17.16b, v16.16b //GHASH block 8k+1 - high + eor v8.16b, v8.16b, v18.16b //GHASH block 8k, 8k+1 - mid + + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 3 + pmull v22.1q, v10.1d, v22.1d //GHASH block 8k+2 - low + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 3 + +.inst 0xce1d2631 //eor3 v17.16b, v17.16b, v29.16b, v9.16b //GHASH block 8k+2, 8k+3 - high + trn1 v29.2d, v11.2d, v10.2d //GHASH block 8k+2, 8k+3 - mid + trn2 v10.2d, v11.2d, v10.2d //GHASH block 8k+2, 8k+3 - mid + + pmull2 v18.1q, v8.2d, v24.2d //GHASH block 8k - mid + pmull v20.1q, v11.1d, v20.1d //GHASH block 8k+3 - low + eor v19.16b, v19.16b, v23.16b //GHASH block 8k+1 - low + + pmull v24.1q, v8.1d, v24.1d //GHASH block 8k+1 - mid + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 4 + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 4 + +.inst 0xce165273 //eor3 v19.16b, v19.16b, v22.16b, v20.16b //GHASH block 8k+2, 8k+3 - low + ldr q20, [x3, #32] //load h1l | h1h + ext v20.16b, v20.16b, v20.16b, #8 + ldr q22, [x3, #64] //load h2l | h2h + ext v22.16b, v22.16b, v22.16b, #8 + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 4 + + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 4 + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 4 + eor v18.16b, v18.16b, v24.16b //GHASH block 8k+1 - mid + + eor v10.16b, v10.16b, v29.16b //GHASH block 8k+2, 8k+3 - mid + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 5 + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 4 + + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 5 + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 4 + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 4 + + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 5 + pmull2 v29.1q, v10.2d, v21.2d //GHASH block 8k+2 - mid + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 5 + + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 5 + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 5 + pmull v21.1q, v10.1d, v21.1d //GHASH block 8k+3 - mid + + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 5 + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 5 + ldp q26, q27, [x8, #96] //load rk6, rk7 + + ldr q23, [x3, #80] //load h3l | h3h + ext v23.16b, v23.16b, v23.16b, #8 + ldr q25, [x3, #112] //load h4l | h4h + ext v25.16b, v25.16b, v25.16b, #8 + rev64 v15.16b, v15.16b //GHASH block 8k+7 + rev64 v13.16b, v13.16b //GHASH block 8k+5 + +.inst 0xce157652 //eor3 v18.16b, v18.16b, v21.16b, v29.16b //GHASH block 8k+2, 8k+3 - mid + + trn1 v16.2d, v13.2d, v12.2d //GHASH block 8k+4, 8k+5 - mid + + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 6 + ldr q21, [x3, #48] //load h2k | h1k + ldr q24, [x3, #96] //load h4k | h3k + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 6 + + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 6 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 6 + + pmull2 v8.1q, v12.2d, v25.2d //GHASH block 8k+4 - high + pmull2 v10.1q, v13.2d, v23.2d //GHASH block 8k+5 - high + pmull v25.1q, v12.1d, v25.1d //GHASH block 8k+4 - low + + trn2 v12.2d, v13.2d, v12.2d //GHASH block 8k+4, 8k+5 - mid + pmull v23.1q, v13.1d, v23.1d //GHASH block 8k+5 - low + trn1 v13.2d, v15.2d, v14.2d //GHASH block 8k+6, 8k+7 - mid + + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 7 + pmull2 v11.1q, v14.2d, v22.2d //GHASH block 8k+6 - high + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 6 + + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 6 + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 6 + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 6 + + ldp q28, q26, [x8, #128] //load rk8, rk9 + pmull v22.1q, v14.1d, v22.1d //GHASH block 8k+6 - low + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 7 + + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 7 + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 7 + + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 7 + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 7 +.inst 0xce082a31 //eor3 v17.16b, v17.16b, v8.16b, v10.16b //GHASH block 8k+4, 8k+5 - high + + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 7 + trn2 v14.2d, v15.2d, v14.2d //GHASH block 8k+6, 8k+7 - mid + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 7 + + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 8 + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 8 + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 8 + + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 8 + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 8 + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 8 + + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 8 + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 9 + eor v12.16b, v12.16b, v16.16b //GHASH block 8k+4, 8k+5 - mid + + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 9 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 9 + eor v14.16b, v14.16b, v13.16b //GHASH block 8k+6, 8k+7 - mid + + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 9 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 9 + pmull2 v16.1q, v12.2d, v24.2d //GHASH block 8k+4 - mid + + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 8 + pmull v24.1q, v12.1d, v24.1d //GHASH block 8k+5 - mid + pmull2 v12.1q, v15.2d, v20.2d //GHASH block 8k+7 - high + + pmull2 v13.1q, v14.2d, v21.2d //GHASH block 8k+6 - mid + pmull v21.1q, v14.1d, v21.1d //GHASH block 8k+7 - mid + pmull v20.1q, v15.1d, v20.1d //GHASH block 8k+7 - low + + ldp q27, q28, [x8, #160] //load rk10, rk11 +.inst 0xce195e73 //eor3 v19.16b, v19.16b, v25.16b, v23.16b //GHASH block 8k+4, 8k+5 - low +.inst 0xce184252 //eor3 v18.16b, v18.16b, v24.16b, v16.16b //GHASH block 8k+4, 8k+5 - mid + + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 9 + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 9 + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 9 + +.inst 0xce0b3231 //eor3 v17.16b, v17.16b, v11.16b, v12.16b //GHASH block 8k+6, 8k+7 - high +.inst 0xce165273 //eor3 v19.16b, v19.16b, v22.16b, v20.16b //GHASH block 8k+6, 8k+7 - low + ldr d16, [x10] //MODULO - load modulo constant + +.inst 0xce153652 //eor3 v18.16b, v18.16b, v21.16b, v13.16b //GHASH block 8k+6, 8k+7 - mid + + aese v4.16b, v27.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 10 + aese v6.16b, v27.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 10 + aese v5.16b, v27.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 10 + + aese v0.16b, v27.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 10 + aese v2.16b, v27.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 10 + aese v3.16b, v27.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 10 + +.inst 0xce114e52 //eor3 v18.16b, v18.16b, v17.16b, v19.16b //MODULO - karatsuba tidy up + + aese v7.16b, v27.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 10 + aese v1.16b, v27.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 10 + ldp q26, q27, [x8, #192] //load rk12, rk13 + + ext v21.16b, v17.16b, v17.16b, #8 //MODULO - other top alignment + + aese v2.16b, v28.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 11 + aese v1.16b, v28.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 11 + aese v0.16b, v28.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 11 + + pmull v29.1q, v17.1d, v16.1d //MODULO - top 64b align with mid + aese v3.16b, v28.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 11 + + aese v7.16b, v28.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 11 + aese v6.16b, v28.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 11 + aese v4.16b, v28.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 11 + + aese v5.16b, v28.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 11 + aese v3.16b, v26.16b + aesmc v3.16b, v3.16b //AES block 8k+11 - round 12 + +.inst 0xce1d5652 //eor3 v18.16b, v18.16b, v29.16b, v21.16b //MODULO - fold into mid + + aese v3.16b, v27.16b //AES block 8k+11 - round 13 + aese v2.16b, v26.16b + aesmc v2.16b, v2.16b //AES block 8k+10 - round 12 + aese v6.16b, v26.16b + aesmc v6.16b, v6.16b //AES block 8k+14 - round 12 + + pmull v17.1q, v18.1d, v16.1d //MODULO - mid 64b align with low + aese v4.16b, v26.16b + aesmc v4.16b, v4.16b //AES block 8k+12 - round 12 + aese v7.16b, v26.16b + aesmc v7.16b, v7.16b //AES block 8k+15 - round 12 + + aese v0.16b, v26.16b + aesmc v0.16b, v0.16b //AES block 8k+8 - round 12 + ldr q28, [x8, #224] //load rk14 + aese v1.16b, v26.16b + aesmc v1.16b, v1.16b //AES block 8k+9 - round 12 + + aese v4.16b, v27.16b //AES block 8k+12 - round 13 + ext v21.16b, v18.16b, v18.16b, #8 //MODULO - other mid alignment + aese v5.16b, v26.16b + aesmc v5.16b, v5.16b //AES block 8k+13 - round 12 + + aese v6.16b, v27.16b //AES block 8k+14 - round 13 + aese v2.16b, v27.16b //AES block 8k+10 - round 13 + aese v1.16b, v27.16b //AES block 8k+9 - round 13 + + aese v5.16b, v27.16b //AES block 8k+13 - round 13 +.inst 0xce154673 //eor3 v19.16b, v19.16b, v21.16b, v17.16b //MODULO - fold into low + add v30.4s, v30.4s, v31.4s //CTR block 8k+15 + + aese v7.16b, v27.16b //AES block 8k+15 - round 13 + aese v0.16b, v27.16b //AES block 8k+8 - round 13 +.L256_dec_tail: //TAIL + + ext v16.16b, v19.16b, v19.16b, #8 //prepare final partial tag + sub x5, x4, x0 //main_end_input_ptr is number of bytes left to process + cmp x5, #112 + + ldr q9, [x0], #16 //AES block 8k+8 - load ciphertext + + ldp q24, q25, [x3, #192] //load h8k | h7k + ext v25.16b, v25.16b, v25.16b, #8 + mov v29.16b, v28.16b + + ldp q20, q21, [x3, #128] //load h5l | h5h + ext v20.16b, v20.16b, v20.16b, #8 + +.inst 0xce00752c //eor3 v12.16b, v9.16b, v0.16b, v29.16b //AES block 8k+8 - result + ldp q22, q23, [x3, #160] //load h6l | h6h + ext v22.16b, v22.16b, v22.16b, #8 + ext v23.16b, v23.16b, v23.16b, #8 + b.gt .L256_dec_blocks_more_than_7 + + mov v7.16b, v6.16b + sub v30.4s, v30.4s, v31.4s + mov v6.16b, v5.16b + + mov v5.16b, v4.16b + mov v4.16b, v3.16b + movi v19.8b, #0 + + movi v17.8b, #0 + movi v18.8b, #0 + mov v3.16b, v2.16b + + cmp x5, #96 + mov v2.16b, v1.16b + b.gt .L256_dec_blocks_more_than_6 + + mov v7.16b, v6.16b + mov v6.16b, v5.16b + + mov v5.16b, v4.16b + cmp x5, #80 + sub v30.4s, v30.4s, v31.4s + + mov v4.16b, v3.16b + mov v3.16b, v1.16b + b.gt .L256_dec_blocks_more_than_5 + + cmp x5, #64 + mov v7.16b, v6.16b + sub v30.4s, v30.4s, v31.4s + + mov v6.16b, v5.16b + + mov v5.16b, v4.16b + mov v4.16b, v1.16b + b.gt .L256_dec_blocks_more_than_4 + + sub v30.4s, v30.4s, v31.4s + mov v7.16b, v6.16b + cmp x5, #48 + + mov v6.16b, v5.16b + mov v5.16b, v1.16b + b.gt .L256_dec_blocks_more_than_3 + + ldr q24, [x3, #96] //load h4k | h3k + sub v30.4s, v30.4s, v31.4s + mov v7.16b, v6.16b + + cmp x5, #32 + mov v6.16b, v1.16b + b.gt .L256_dec_blocks_more_than_2 + + sub v30.4s, v30.4s, v31.4s + + mov v7.16b, v1.16b + cmp x5, #16 + b.gt .L256_dec_blocks_more_than_1 + + sub v30.4s, v30.4s, v31.4s + ldr q21, [x3, #48] //load h2k | h1k + b .L256_dec_blocks_less_than_1 +.L256_dec_blocks_more_than_7: //blocks left > 7 + rev64 v8.16b, v9.16b //GHASH final-7 block + ldr q9, [x0], #16 //AES final-6 block - load ciphertext + st1 { v12.16b}, [x2], #16 //AES final-7 block - store result + + ins v18.d[0], v24.d[1] //GHASH final-7 block - mid + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + + ins v27.d[0], v8.d[1] //GHASH final-7 block - mid +.inst 0xce01752c //eor3 v12.16b, v9.16b, v1.16b, v29.16b //AES final-6 block - result + + pmull2 v17.1q, v8.2d, v25.2d //GHASH final-7 block - high + + eor v27.8b, v27.8b, v8.8b //GHASH final-7 block - mid + movi v16.8b, #0 //suppress further partial tag feed in + + pmull v19.1q, v8.1d, v25.1d //GHASH final-7 block - low + pmull v18.1q, v27.1d, v18.1d //GHASH final-7 block - mid +.L256_dec_blocks_more_than_6: //blocks left > 6 + + rev64 v8.16b, v9.16b //GHASH final-6 block + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + ldr q9, [x0], #16 //AES final-5 block - load ciphertext + movi v16.8b, #0 //suppress further partial tag feed in + + ins v27.d[0], v8.d[1] //GHASH final-6 block - mid + st1 { v12.16b}, [x2], #16 //AES final-6 block - store result + pmull2 v28.1q, v8.2d, v23.2d //GHASH final-6 block - high + + pmull v26.1q, v8.1d, v23.1d //GHASH final-6 block - low + +.inst 0xce02752c //eor3 v12.16b, v9.16b, v2.16b, v29.16b //AES final-5 block - result + eor v19.16b, v19.16b, v26.16b //GHASH final-6 block - low + eor v27.8b, v27.8b, v8.8b //GHASH final-6 block - mid + + pmull v27.1q, v27.1d, v24.1d //GHASH final-6 block - mid + + eor v18.16b, v18.16b, v27.16b //GHASH final-6 block - mid + eor v17.16b, v17.16b, v28.16b //GHASH final-6 block - high +.L256_dec_blocks_more_than_5: //blocks left > 5 + + rev64 v8.16b, v9.16b //GHASH final-5 block + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + + pmull2 v28.1q, v8.2d, v22.2d //GHASH final-5 block - high + ins v27.d[0], v8.d[1] //GHASH final-5 block - mid + + ldr q9, [x0], #16 //AES final-4 block - load ciphertext + + eor v27.8b, v27.8b, v8.8b //GHASH final-5 block - mid + st1 { v12.16b}, [x2], #16 //AES final-5 block - store result + + pmull v26.1q, v8.1d, v22.1d //GHASH final-5 block - low + ins v27.d[1], v27.d[0] //GHASH final-5 block - mid + + pmull2 v27.1q, v27.2d, v21.2d //GHASH final-5 block - mid + + eor v17.16b, v17.16b, v28.16b //GHASH final-5 block - high +.inst 0xce03752c //eor3 v12.16b, v9.16b, v3.16b, v29.16b //AES final-4 block - result + eor v19.16b, v19.16b, v26.16b //GHASH final-5 block - low + + eor v18.16b, v18.16b, v27.16b //GHASH final-5 block - mid + movi v16.8b, #0 //suppress further partial tag feed in +.L256_dec_blocks_more_than_4: //blocks left > 4 + + rev64 v8.16b, v9.16b //GHASH final-4 block + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + + ins v27.d[0], v8.d[1] //GHASH final-4 block - mid + ldr q9, [x0], #16 //AES final-3 block - load ciphertext + + movi v16.8b, #0 //suppress further partial tag feed in + + pmull v26.1q, v8.1d, v20.1d //GHASH final-4 block - low + pmull2 v28.1q, v8.2d, v20.2d //GHASH final-4 block - high + + eor v27.8b, v27.8b, v8.8b //GHASH final-4 block - mid + + eor v17.16b, v17.16b, v28.16b //GHASH final-4 block - high + + pmull v27.1q, v27.1d, v21.1d //GHASH final-4 block - mid + + eor v19.16b, v19.16b, v26.16b //GHASH final-4 block - low + st1 { v12.16b}, [x2], #16 //AES final-4 block - store result + + eor v18.16b, v18.16b, v27.16b //GHASH final-4 block - mid +.inst 0xce04752c //eor3 v12.16b, v9.16b, v4.16b, v29.16b //AES final-3 block - result +.L256_dec_blocks_more_than_3: //blocks left > 3 + + ldr q25, [x3, #112] //load h4l | h4h + ext v25.16b, v25.16b, v25.16b, #8 + rev64 v8.16b, v9.16b //GHASH final-3 block + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + ldr q9, [x0], #16 //AES final-2 block - load ciphertext + ldr q24, [x3, #96] //load h4k | h3k + + ins v27.d[0], v8.d[1] //GHASH final-3 block - mid + st1 { v12.16b}, [x2], #16 //AES final-3 block - store result + +.inst 0xce05752c //eor3 v12.16b, v9.16b, v5.16b, v29.16b //AES final-2 block - result + + eor v27.8b, v27.8b, v8.8b //GHASH final-3 block - mid + + ins v27.d[1], v27.d[0] //GHASH final-3 block - mid + pmull v26.1q, v8.1d, v25.1d //GHASH final-3 block - low + pmull2 v28.1q, v8.2d, v25.2d //GHASH final-3 block - high + + movi v16.8b, #0 //suppress further partial tag feed in + pmull2 v27.1q, v27.2d, v24.2d //GHASH final-3 block - mid + eor v19.16b, v19.16b, v26.16b //GHASH final-3 block - low + + eor v17.16b, v17.16b, v28.16b //GHASH final-3 block - high + + eor v18.16b, v18.16b, v27.16b //GHASH final-3 block - mid +.L256_dec_blocks_more_than_2: //blocks left > 2 + + rev64 v8.16b, v9.16b //GHASH final-2 block + + ldr q23, [x3, #80] //load h3l | h3h + ext v23.16b, v23.16b, v23.16b, #8 + ldr q9, [x0], #16 //AES final-1 block - load ciphertext + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + + ins v27.d[0], v8.d[1] //GHASH final-2 block - mid + + pmull v26.1q, v8.1d, v23.1d //GHASH final-2 block - low + st1 { v12.16b}, [x2], #16 //AES final-2 block - store result +.inst 0xce06752c //eor3 v12.16b, v9.16b, v6.16b, v29.16b //AES final-1 block - result + + eor v27.8b, v27.8b, v8.8b //GHASH final-2 block - mid + eor v19.16b, v19.16b, v26.16b //GHASH final-2 block - low + movi v16.8b, #0 //suppress further partial tag feed in + + pmull v27.1q, v27.1d, v24.1d //GHASH final-2 block - mid + pmull2 v28.1q, v8.2d, v23.2d //GHASH final-2 block - high + + eor v18.16b, v18.16b, v27.16b //GHASH final-2 block - mid + eor v17.16b, v17.16b, v28.16b //GHASH final-2 block - high +.L256_dec_blocks_more_than_1: //blocks left > 1 + + rev64 v8.16b, v9.16b //GHASH final-1 block + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + + ins v27.d[0], v8.d[1] //GHASH final-1 block - mid + ldr q22, [x3, #64] //load h2l | h2h + ext v22.16b, v22.16b, v22.16b, #8 + + eor v27.8b, v27.8b, v8.8b //GHASH final-1 block - mid + ldr q9, [x0], #16 //AES final block - load ciphertext + st1 { v12.16b}, [x2], #16 //AES final-1 block - store result + + ldr q21, [x3, #48] //load h2k | h1k + pmull v26.1q, v8.1d, v22.1d //GHASH final-1 block - low + + ins v27.d[1], v27.d[0] //GHASH final-1 block - mid + + eor v19.16b, v19.16b, v26.16b //GHASH final-1 block - low + +.inst 0xce07752c //eor3 v12.16b, v9.16b, v7.16b, v29.16b //AES final block - result + pmull2 v28.1q, v8.2d, v22.2d //GHASH final-1 block - high + + pmull2 v27.1q, v27.2d, v21.2d //GHASH final-1 block - mid + + movi v16.8b, #0 //suppress further partial tag feed in + eor v17.16b, v17.16b, v28.16b //GHASH final-1 block - high + + eor v18.16b, v18.16b, v27.16b //GHASH final-1 block - mid +.L256_dec_blocks_less_than_1: //blocks left <= 1 + + ld1 { v26.16b}, [x2] //load existing bytes where the possibly partial last block is to be stored + mvn x6, xzr //temp0_x = 0xffffffffffffffff + and x1, x1, #127 //bit_length %= 128 + + sub x1, x1, #128 //bit_length -= 128 + rev32 v30.16b, v30.16b + str q30, [x16] //store the updated counter + + neg x1, x1 //bit_length = 128 - #bits in input (in range [1,128]) + + and x1, x1, #127 //bit_length %= 128 + + lsr x6, x6, x1 //temp0_x is mask for top 64b of last block + cmp x1, #64 + mvn x7, xzr //temp1_x = 0xffffffffffffffff + + csel x14, x6, xzr, lt + csel x13, x7, x6, lt + + mov v0.d[0], x13 //ctr0b is mask for last block + mov v0.d[1], x14 + + and v9.16b, v9.16b, v0.16b //possibly partial last block has zeroes in highest bits + ldr q20, [x3, #32] //load h1l | h1h + ext v20.16b, v20.16b, v20.16b, #8 + bif v12.16b, v26.16b, v0.16b //insert existing bytes in top end of result before storing + + rev64 v8.16b, v9.16b //GHASH final block + + eor v8.16b, v8.16b, v16.16b //feed in partial tag + + ins v16.d[0], v8.d[1] //GHASH final block - mid + pmull2 v28.1q, v8.2d, v20.2d //GHASH final block - high + + eor v16.8b, v16.8b, v8.8b //GHASH final block - mid + + pmull v26.1q, v8.1d, v20.1d //GHASH final block - low + eor v17.16b, v17.16b, v28.16b //GHASH final block - high + + pmull v16.1q, v16.1d, v21.1d //GHASH final block - mid + + eor v18.16b, v18.16b, v16.16b //GHASH final block - mid + ldr d16, [x10] //MODULO - load modulo constant + eor v19.16b, v19.16b, v26.16b //GHASH final block - low + + pmull v21.1q, v17.1d, v16.1d //MODULO - top 64b align with mid + eor v14.16b, v17.16b, v19.16b //MODULO - karatsuba tidy up + + ext v17.16b, v17.16b, v17.16b, #8 //MODULO - other top alignment + st1 { v12.16b}, [x2] //store all 16B + + eor v18.16b, v18.16b, v14.16b //MODULO - karatsuba tidy up + + eor v21.16b, v17.16b, v21.16b //MODULO - fold into mid + eor v18.16b, v18.16b, v21.16b //MODULO - fold into mid + + pmull v17.1q, v18.1d, v16.1d //MODULO - mid 64b align with low + + ext v18.16b, v18.16b, v18.16b, #8 //MODULO - other mid alignment + eor v19.16b, v19.16b, v17.16b //MODULO - fold into low + + eor v19.16b, v19.16b, v18.16b //MODULO - fold into low + ext v19.16b, v19.16b, v19.16b, #8 + rev64 v19.16b, v19.16b + st1 { v19.16b }, [x3] + mov x0, x9 + + ldp d10, d11, [sp, #16] + ldp d12, d13, [sp, #32] + ldp d14, d15, [sp, #48] + ldp d8, d9, [sp], #80 + ret + +.L256_dec_ret: + mov w0, #0x0 + ret +.size unroll8_eor3_aes_gcm_dec_256_kernel,.-unroll8_eor3_aes_gcm_dec_256_kernel +.byte 65,69,83,32,71,67,77,32,109,111,100,117,108,101,32,102,111,114,32,65,82,77,118,56,44,32,83,80,68,88,32,66,83,68,45,51,45,67,108,97,117,115,101,32,98,121,32,60,120,105,97,111,107,97,110,103,46,113,105,97,110,64,97,114,109,46,99,111,109,62,0 +.align 2 +.align 2 +#endif diff --git a/deps/openssl/config/archs/linux-aarch64/asm_avx2/crypto/modes/aes-gcm-armv8_64.S b/deps/openssl/config/archs/linux-aarch64/asm_avx2/crypto/modes/aes-gcm-armv8_64.S index d052cbb85cdbbf..def2071cf37834 100644 --- a/deps/openssl/config/archs/linux-aarch64/asm_avx2/crypto/modes/aes-gcm-armv8_64.S +++ b/deps/openssl/config/archs/linux-aarch64/asm_avx2/crypto/modes/aes-gcm-armv8_64.S @@ -7,6 +7,7 @@ .type aes_gcm_enc_128_kernel,%function .align 4 aes_gcm_enc_128_kernel: + AARCH64_VALID_CALL_TARGET cbz x1, .L128_enc_ret stp x19, x20, [sp, #-112]! mov x16, x4 @@ -989,6 +990,7 @@ aes_gcm_enc_128_kernel: .type aes_gcm_dec_128_kernel,%function .align 4 aes_gcm_dec_128_kernel: + AARCH64_VALID_CALL_TARGET cbz x1, .L128_dec_ret stp x19, x20, [sp, #-112]! mov x16, x4 @@ -1981,6 +1983,7 @@ aes_gcm_dec_128_kernel: .type aes_gcm_enc_192_kernel,%function .align 4 aes_gcm_enc_192_kernel: + AARCH64_VALID_CALL_TARGET cbz x1, .L192_enc_ret stp x19, x20, [sp, #-112]! mov x16, x4 @@ -3038,6 +3041,7 @@ aes_gcm_enc_192_kernel: .type aes_gcm_dec_192_kernel,%function .align 4 aes_gcm_dec_192_kernel: + AARCH64_VALID_CALL_TARGET cbz x1, .L192_dec_ret stp x19, x20, [sp, #-112]! mov x16, x4 @@ -4105,6 +4109,7 @@ aes_gcm_dec_192_kernel: .type aes_gcm_enc_256_kernel,%function .align 4 aes_gcm_enc_256_kernel: + AARCH64_VALID_CALL_TARGET cbz x1, .L256_enc_ret stp x19, x20, [sp, #-112]! mov x16, x4 @@ -5229,6 +5234,7 @@ aes_gcm_enc_256_kernel: .type aes_gcm_dec_256_kernel,%function .align 4 aes_gcm_dec_256_kernel: + AARCH64_VALID_CALL_TARGET cbz x1, .L256_dec_ret stp x19, x20, [sp, #-112]! mov x16, x4 @@ -6383,6 +6389,7 @@ aes_gcm_dec_256_kernel: mov w0, #0x0 ret .size aes_gcm_dec_256_kernel,.-aes_gcm_dec_256_kernel +.section .rodata .byte 71,72,65,83,72,32,102,111,114,32,65,82,77,118,56,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 .align 2 .align 2 diff --git a/deps/openssl/config/archs/linux-aarch64/asm_avx2/crypto/modes/ghashv8-armx.S b/deps/openssl/config/archs/linux-aarch64/asm_avx2/crypto/modes/ghashv8-armx.S index ea6a66a229e10f..2224d2e7f7d8bb 100644 --- a/deps/openssl/config/archs/linux-aarch64/asm_avx2/crypto/modes/ghashv8-armx.S +++ b/deps/openssl/config/archs/linux-aarch64/asm_avx2/crypto/modes/ghashv8-armx.S @@ -7,6 +7,7 @@ .type gcm_init_v8,%function .align 4 gcm_init_v8: + AARCH64_VALID_CALL_TARGET ld1 {v17.2d},[x1] //load input H movi v19.16b,#0xe1 shl v19.2d,v19.2d,#57 //0xc2.0 @@ -82,21 +83,110 @@ gcm_init_v8: pmull v5.1q,v5.1d,v19.1d eor v18.16b,v18.16b,v2.16b eor v4.16b,v4.16b,v7.16b - eor v20.16b, v0.16b,v18.16b //H^3 - eor v22.16b,v5.16b,v4.16b //H^4 + eor v23.16b, v0.16b,v18.16b //H^3 + eor v25.16b,v5.16b,v4.16b //H^4 + + ext v16.16b,v23.16b, v23.16b,#8 //Karatsuba pre-processing + ext v17.16b,v25.16b,v25.16b,#8 + ext v18.16b,v22.16b,v22.16b,#8 + eor v16.16b,v16.16b,v23.16b + eor v17.16b,v17.16b,v25.16b + eor v18.16b,v18.16b,v22.16b + ext v24.16b,v16.16b,v17.16b,#8 //pack Karatsuba pre-processed + st1 {v23.2d,v24.2d,v25.2d},[x0],#48 //store Htable[3..5] + + //calculate H^5 and H^6 + pmull v0.1q,v22.1d, v23.1d + pmull v5.1q,v23.1d,v23.1d + pmull2 v2.1q,v22.2d, v23.2d + pmull2 v7.1q,v23.2d,v23.2d + pmull v1.1q,v16.1d,v18.1d + pmull v6.1q,v16.1d,v16.1d - ext v16.16b,v20.16b, v20.16b,#8 //Karatsuba pre-processing - ext v17.16b,v22.16b,v22.16b,#8 - eor v16.16b,v16.16b,v20.16b - eor v17.16b,v17.16b,v22.16b - ext v21.16b,v16.16b,v17.16b,#8 //pack Karatsuba pre-processed - st1 {v20.2d,v21.2d,v22.2d},[x0] //store Htable[3..5] + ext v16.16b,v0.16b,v2.16b,#8 //Karatsuba post-processing + ext v17.16b,v5.16b,v7.16b,#8 + eor v18.16b,v0.16b,v2.16b + eor v1.16b,v1.16b,v16.16b + eor v4.16b,v5.16b,v7.16b + eor v6.16b,v6.16b,v17.16b + eor v1.16b,v1.16b,v18.16b + pmull v18.1q,v0.1d,v19.1d //1st phase + eor v6.16b,v6.16b,v4.16b + pmull v4.1q,v5.1d,v19.1d + + ins v2.d[0],v1.d[1] + ins v7.d[0],v6.d[1] + ins v1.d[1],v0.d[0] + ins v6.d[1],v5.d[0] + eor v0.16b,v1.16b,v18.16b + eor v5.16b,v6.16b,v4.16b + + ext v18.16b,v0.16b,v0.16b,#8 //2nd phase + ext v4.16b,v5.16b,v5.16b,#8 + pmull v0.1q,v0.1d,v19.1d + pmull v5.1q,v5.1d,v19.1d + eor v18.16b,v18.16b,v2.16b + eor v4.16b,v4.16b,v7.16b + eor v26.16b,v0.16b,v18.16b //H^5 + eor v28.16b,v5.16b,v4.16b //H^6 + + ext v16.16b,v26.16b, v26.16b,#8 //Karatsuba pre-processing + ext v17.16b,v28.16b,v28.16b,#8 + ext v18.16b,v22.16b,v22.16b,#8 + eor v16.16b,v16.16b,v26.16b + eor v17.16b,v17.16b,v28.16b + eor v18.16b,v18.16b,v22.16b + ext v27.16b,v16.16b,v17.16b,#8 //pack Karatsuba pre-processed + st1 {v26.2d,v27.2d,v28.2d},[x0],#48 //store Htable[6..8] + + //calculate H^7 and H^8 + pmull v0.1q,v22.1d,v26.1d + pmull v5.1q,v22.1d,v28.1d + pmull2 v2.1q,v22.2d,v26.2d + pmull2 v7.1q,v22.2d,v28.2d + pmull v1.1q,v16.1d,v18.1d + pmull v6.1q,v17.1d,v18.1d + + ext v16.16b,v0.16b,v2.16b,#8 //Karatsuba post-processing + ext v17.16b,v5.16b,v7.16b,#8 + eor v18.16b,v0.16b,v2.16b + eor v1.16b,v1.16b,v16.16b + eor v4.16b,v5.16b,v7.16b + eor v6.16b,v6.16b,v17.16b + eor v1.16b,v1.16b,v18.16b + pmull v18.1q,v0.1d,v19.1d //1st phase + eor v6.16b,v6.16b,v4.16b + pmull v4.1q,v5.1d,v19.1d + + ins v2.d[0],v1.d[1] + ins v7.d[0],v6.d[1] + ins v1.d[1],v0.d[0] + ins v6.d[1],v5.d[0] + eor v0.16b,v1.16b,v18.16b + eor v5.16b,v6.16b,v4.16b + + ext v18.16b,v0.16b,v0.16b,#8 //2nd phase + ext v4.16b,v5.16b,v5.16b,#8 + pmull v0.1q,v0.1d,v19.1d + pmull v5.1q,v5.1d,v19.1d + eor v18.16b,v18.16b,v2.16b + eor v4.16b,v4.16b,v7.16b + eor v29.16b,v0.16b,v18.16b //H^7 + eor v31.16b,v5.16b,v4.16b //H^8 + + ext v16.16b,v29.16b,v29.16b,#8 //Karatsuba pre-processing + ext v17.16b,v31.16b,v31.16b,#8 + eor v16.16b,v16.16b,v29.16b + eor v17.16b,v17.16b,v31.16b + ext v30.16b,v16.16b,v17.16b,#8 //pack Karatsuba pre-processed + st1 {v29.2d,v30.2d,v31.2d},[x0] //store Htable[9..11] ret .size gcm_init_v8,.-gcm_init_v8 .globl gcm_gmult_v8 .type gcm_gmult_v8,%function .align 4 gcm_gmult_v8: + AARCH64_VALID_CALL_TARGET ld1 {v17.2d},[x0] //load Xi movi v19.16b,#0xe1 ld1 {v20.2d,v21.2d},[x1] //load twisted H, ... @@ -138,6 +228,7 @@ gcm_gmult_v8: .type gcm_ghash_v8,%function .align 4 gcm_ghash_v8: + AARCH64_VALID_CALL_TARGET cmp x3,#64 b.hs .Lgcm_ghash_v8_4x ld1 {v0.2d},[x0] //load [rotated] Xi @@ -546,6 +637,7 @@ gcm_ghash_v8_4x: ret .size gcm_ghash_v8_4x,.-gcm_ghash_v8_4x +.section .rodata .byte 71,72,65,83,72,32,102,111,114,32,65,82,77,118,56,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 .align 2 .align 2 diff --git a/deps/openssl/config/archs/linux-aarch64/asm_avx2/crypto/params_idx.c b/deps/openssl/config/archs/linux-aarch64/asm_avx2/crypto/params_idx.c new file mode 100644 index 00000000000000..9d76ffededc24c --- /dev/null +++ b/deps/openssl/config/archs/linux-aarch64/asm_avx2/crypto/params_idx.c @@ -0,0 +1,3366 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from crypto/params_idx.c.in + * + * Copyright 2023 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + +#include "internal/e_os.h" +#include "internal/param_names.h" +#include + +/* Machine generated TRIE -- generated by util/perl/OpenSSL/paramnames.pm */ +int ossl_param_find_pidx(const char *s) +{ + switch(s[0]) { + default: + break; + case 'a': + switch(s[1]) { + default: + break; + case 'c': + if (strcmp("vp-info", s + 2) == 0) + return PIDX_KDF_PARAM_X942_ACVPINFO; + break; + case 'd': + switch(s[2]) { + default: + break; + case 'd': + if (strcmp("itional-random", s + 3) == 0) + return PIDX_SIGNATURE_PARAM_ADD_RANDOM; + break; + case '\0': + return PIDX_KDF_PARAM_ARGON2_AD; + } + break; + case 'e': + if (strcmp("ad", s + 2) == 0) + return PIDX_CIPHER_PARAM_AEAD; + break; + case 'l': + switch(s[2]) { + default: + break; + case 'g': + switch(s[3]) { + default: + break; + case '_': + if (strcmp("id_param", s + 4) == 0) + return PIDX_CIPHER_PARAM_ALGORITHM_ID_PARAMS_OLD; + break; + case 'i': + if (strcmp("d-absent", s + 4) == 0) + return PIDX_DIGEST_PARAM_ALGID_ABSENT; + break; + case 'o': + switch(s[4]) { + default: + break; + case 'r': + switch(s[5]) { + default: + break; + case 'i': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case 'h': + switch(s[8]) { + default: + break; + case 'm': + switch(s[9]) { + default: + break; + case '-': + switch(s[10]) { + default: + break; + case 'i': + switch(s[11]) { + default: + break; + case 'd': + switch(s[12]) { + default: + break; + case '-': + if (strcmp("params", s + 13) == 0) + return PIDX_ALG_PARAM_ALGORITHM_ID_PARAMS; + break; + case '\0': + return PIDX_ALG_PARAM_ALGORITHM_ID; + } + } + } + } + } + } + } + } + } + } + break; + case 'i': + if (strcmp("as", s + 3) == 0) + return PIDX_STORE_PARAM_ALIAS; + } + break; + case '\0': + return PIDX_PKEY_PARAM_EC_A; + } + break; + case 'b': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("sis-type", s + 2) == 0) + return PIDX_PKEY_PARAM_EC_CHAR2_TYPE; + break; + case 'i': + if (strcmp("ts", s + 2) == 0) + return PIDX_PKEY_PARAM_BITS; + break; + case 'l': + switch(s[2]) { + default: + break; + case 'o': + switch(s[3]) { + default: + break; + case 'c': + switch(s[4]) { + default: + break; + case 'k': + switch(s[5]) { + default: + break; + case '-': + if (strcmp("size", s + 6) == 0) + return PIDX_MAC_PARAM_BLOCK_SIZE; + break; + case '_': + if (strcmp("padding", s + 6) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_BLOCK_PADDING; + break; + case 's': + if (strcmp("ize", s + 6) == 0) + return PIDX_DIGEST_PARAM_BLOCK_SIZE; + } + } + } + } + break; + case 'u': + if (strcmp("ildinfo", s + 2) == 0) + return PIDX_PROV_PARAM_BUILDINFO; + break; + case '\0': + return PIDX_PKEY_PARAM_EC_B; + } + break; + case 'c': + switch(s[1]) { + default: + break; + case '-': + if (strcmp("rounds", s + 2) == 0) + return PIDX_MAC_PARAM_C_ROUNDS; + break; + case 'e': + if (strcmp("kalg", s + 2) == 0) + return PIDX_KDF_PARAM_CEK_ALG; + break; + case 'i': + if (strcmp("pher", s + 2) == 0) + return PIDX_ALG_PARAM_CIPHER; + break; + case 'o': + switch(s[2]) { + default: + break; + case 'f': + if (strcmp("actor", s + 3) == 0) + return PIDX_PKEY_PARAM_EC_COFACTOR; + break; + case 'n': + switch(s[3]) { + default: + break; + case 's': + if (strcmp("tant", s + 4) == 0) + return PIDX_KDF_PARAM_CONSTANT; + break; + case 't': + if (strcmp("ext-string", s + 4) == 0) + return PIDX_SIGNATURE_PARAM_CONTEXT_STRING; + } + } + break; + case 't': + switch(s[2]) { + default: + break; + case 's': + switch(s[3]) { + default: + break; + case '_': + if (strcmp("mode", s + 4) == 0) + return PIDX_CIPHER_PARAM_CTS_MODE; + break; + case '\0': + return PIDX_CIPHER_PARAM_CTS; + } + } + break; + case 'u': + switch(s[2]) { + default: + break; + case 's': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case 'o': + switch(s[5]) { + default: + break; + case 'm': + switch(s[6]) { + default: + break; + case '-': + if (strcmp("iv", s + 7) == 0) + return PIDX_CIPHER_PARAM_CUSTOM_IV; + break; + case '\0': + return PIDX_MAC_PARAM_CUSTOM; + } + } + } + } + } + } + break; + case 'd': + switch(s[1]) { + default: + break; + case '-': + if (strcmp("rounds", s + 2) == 0) + return PIDX_MAC_PARAM_D_ROUNDS; + break; + case 'a': + switch(s[2]) { + default: + break; + case 't': + switch(s[3]) { + default: + break; + case 'a': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 's': + if (strcmp("tructure", s + 6) == 0) + return PIDX_OBJECT_PARAM_DATA_STRUCTURE; + break; + case 't': + if (strcmp("ype", s + 6) == 0) + return PIDX_OBJECT_PARAM_DATA_TYPE; + } + break; + case '\0': + return PIDX_OBJECT_PARAM_DATA; + } + } + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'c': + switch(s[3]) { + default: + break; + case 'o': + if (strcmp("ded-from-explicit", s + 4) == 0) + return PIDX_PKEY_PARAM_EC_DECODED_FROM_EXPLICIT_PARAMS; + break; + case 'r': + if (strcmp("ypt-only", s + 4) == 0) + return PIDX_CIPHER_PARAM_DECRYPT_ONLY; + } + break; + case 'f': + if (strcmp("ault-digest", s + 3) == 0) + return PIDX_PKEY_PARAM_DEFAULT_DIGEST; + break; + case 's': + if (strcmp("c", s + 3) == 0) + return PIDX_OBJECT_PARAM_DESC; + break; + case 't': + if (strcmp("erministic", s + 3) == 0) + return PIDX_SIGNATURE_PARAM_DETERMINISTIC; + } + break; + case 'h': + if (strcmp("kem-ikm", s + 2) == 0) + return PIDX_PKEY_PARAM_DHKEM_IKM; + break; + case 'i': + switch(s[2]) { + default: + break; + case 'g': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case 's': + switch(s[5]) { + default: + break; + case 't': + switch(s[6]) { + default: + break; + case '-': + switch(s[7]) { + default: + break; + case 'c': + if (strcmp("heck", s + 8) == 0) + return PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK; + break; + case 'n': + if (strcmp("oinit", s + 8) == 0) + return PIDX_MAC_PARAM_DIGEST_NOINIT; + break; + case 'o': + if (strcmp("neshot", s + 8) == 0) + return PIDX_MAC_PARAM_DIGEST_ONESHOT; + break; + case 'p': + if (strcmp("rops", s + 8) == 0) + return PIDX_ASYM_CIPHER_PARAM_OAEP_DIGEST_PROPS; + break; + case 's': + if (strcmp("ize", s + 8) == 0) + return PIDX_PKEY_PARAM_DIGEST_SIZE; + } + break; + case '\0': + return PIDX_STORE_PARAM_DIGEST; + } + } + } + } + break; + case 's': + if (strcmp("tid", s + 3) == 0) + return PIDX_PKEY_PARAM_DIST_ID; + } + break; + case 'r': + if (strcmp("bg-no-trunc-md", s + 2) == 0) + return PIDX_PROV_PARAM_DRBG_TRUNC_DIGEST; + break; + case 's': + if (strcmp("a-sign-disabled", s + 2) == 0) + return PIDX_PROV_PARAM_DSA_SIGN_DISABLED; + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_D; + } + break; + case 'e': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("rly_clean", s + 2) == 0) + return PIDX_KDF_PARAM_EARLY_CLEAN; + break; + case 'c': + switch(s[2]) { + default: + break; + case 'd': + switch(s[3]) { + default: + break; + case 'h': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'c': + switch(s[6]) { + default: + break; + case 'o': + switch(s[7]) { + default: + break; + case 'f': + switch(s[8]) { + default: + break; + case 'a': + switch(s[9]) { + default: + break; + case 'c': + switch(s[10]) { + default: + break; + case 't': + switch(s[11]) { + default: + break; + case 'o': + switch(s[12]) { + default: + break; + case 'r': + switch(s[13]) { + default: + break; + case '-': + switch(s[14]) { + default: + break; + case 'c': + if (strcmp("heck", s + 15) == 0) + return PIDX_PROV_PARAM_ECDH_COFACTOR_CHECK; + break; + case 'm': + if (strcmp("ode", s + 15) == 0) + return PIDX_EXCHANGE_PARAM_EC_ECDH_COFACTOR_MODE; + } + } + } + } + } + } + } + } + } + } + } + } + } + break; + case 'm': + if (strcmp("s_check", s + 2) == 0) + return PIDX_KDF_PARAM_FIPS_EMS_CHECK; + break; + case 'n': + switch(s[2]) { + default: + break; + case 'c': + switch(s[3]) { + default: + break; + case 'o': + switch(s[4]) { + default: + break; + case 'd': + switch(s[5]) { + default: + break; + case 'e': + if (strcmp("d-pub-key", s + 6) == 0) + return PIDX_PKEY_PARAM_ENCODED_PUBLIC_KEY; + break; + case 'i': + if (strcmp("ng", s + 6) == 0) + return PIDX_PKEY_PARAM_EC_ENCODING; + } + } + break; + case 'r': + switch(s[4]) { + default: + break; + case 'y': + switch(s[5]) { + default: + break; + case 'p': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case '-': + switch(s[8]) { + default: + break; + case 'c': + if (strcmp("heck", s + 9) == 0) + return PIDX_CIPHER_PARAM_FIPS_ENCRYPT_CHECK; + break; + case 'l': + if (strcmp("evel", s + 9) == 0) + return PIDX_ENCODER_PARAM_ENCRYPT_LEVEL; + } + } + } + } + } + } + break; + case 'g': + if (strcmp("ine", s + 3) == 0) + return PIDX_ALG_PARAM_ENGINE; + break; + case 't': + switch(s[3]) { + default: + break; + case 'r': + switch(s[4]) { + default: + break; + case 'o': + switch(s[5]) { + default: + break; + case 'p': + switch(s[6]) { + default: + break; + case 'y': + switch(s[7]) { + default: + break; + case '_': + if (strcmp("required", s + 8) == 0) + return PIDX_DRBG_PARAM_ENTROPY_REQUIRED; + break; + case '\0': + return PIDX_KDF_PARAM_HMACDRBG_ENTROPY; + } + } + } + } + } + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_E; + break; + case 'x': + if (strcmp("pect", s + 2) == 0) + return PIDX_STORE_PARAM_EXPECT; + } + break; + case 'f': + switch(s[1]) { + default: + break; + case 'i': + switch(s[2]) { + default: + break; + case 'e': + if (strcmp("ld-type", s + 3) == 0) + return PIDX_PKEY_PARAM_EC_FIELD_TYPE; + break; + case 'n': + if (strcmp("gerprint", s + 3) == 0) + return PIDX_STORE_PARAM_FINGERPRINT; + break; + case 'p': + if (strcmp("s-indicator", s + 3) == 0) + return PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR; + } + } + break; + case 'g': + switch(s[1]) { + default: + break; + case 'e': + switch(s[2]) { + default: + break; + case 'n': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case 'r': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case 'e': + switch(s[8]) { + default: + break; + case '\0': + return PIDX_RAND_PARAM_GENERATE; + } + break; + case 'o': + if (strcmp("r", s + 8) == 0) + return PIDX_PKEY_PARAM_EC_GENERATOR; + } + } + } + } + } + } + break; + case 'i': + if (strcmp("ndex", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_GINDEX; + break; + case 'r': + switch(s[2]) { + default: + break; + case 'o': + switch(s[3]) { + default: + break; + case 'u': + switch(s[4]) { + default: + break; + case 'p': + switch(s[5]) { + default: + break; + case '-': + if (strcmp("check", s + 6) == 0) + return PIDX_PKEY_PARAM_EC_GROUP_CHECK_TYPE; + break; + case '\0': + return PIDX_PKEY_PARAM_GROUP_NAME; + } + } + } + } + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_G; + } + break; + case 'h': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("s-randkey", s + 2) == 0) + return PIDX_CIPHER_PARAM_HAS_RAND_KEY; + break; + case 'i': + if (strcmp("ndex", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_H; + break; + case 'k': + switch(s[2]) { + default: + break; + case 'd': + switch(s[3]) { + default: + break; + case 'f': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 6) == 0) + return PIDX_PROV_PARAM_HKDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 6) == 0) + return PIDX_PROV_PARAM_HKDF_KEY_CHECK; + } + } + } + } + break; + case 'm': + if (strcmp("ac-key-check", s + 2) == 0) + return PIDX_PROV_PARAM_HMAC_KEY_CHECK; + break; + case 's': + if (strcmp("_padding", s + 2) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_HS_PADDING; + } + break; + case 'i': + switch(s[1]) { + default: + break; + case 'd': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_KDF_PARAM_PKCS12_ID; + } + break; + case 'k': + if (strcmp("me", s + 2) == 0) + return PIDX_KEM_PARAM_IKME; + break; + case 'm': + if (strcmp("plicit-rejection", s + 2) == 0) + return PIDX_PKEY_PARAM_IMPLICIT_REJECTION; + break; + case 'n': + switch(s[2]) { + default: + break; + case 'c': + if (strcmp("lude-public", s + 3) == 0) + return PIDX_PKEY_PARAM_EC_INCLUDE_PUBLIC; + break; + case 'f': + if (strcmp("o", s + 3) == 0) + return PIDX_PASSPHRASE_PARAM_INFO; + break; + case 'p': + if (strcmp("ut-type", s + 3) == 0) + return PIDX_STORE_PARAM_INPUT_TYPE; + break; + case 's': + if (strcmp("tance", s + 3) == 0) + return PIDX_SIGNATURE_PARAM_INSTANCE; + } + break; + case 't': + switch(s[2]) { + default: + break; + case 'e': + switch(s[3]) { + default: + break; + case 'r': + switch(s[4]) { + default: + break; + case 'a': + if (strcmp("tion", s + 5) == 0) + return PIDX_GEN_PARAM_ITERATION; + break; + case '\0': + return PIDX_KDF_PARAM_ITER; + } + } + } + break; + case 'v': + switch(s[2]) { + default: + break; + case '-': + if (strcmp("generated", s + 3) == 0) + return PIDX_CIPHER_PARAM_AEAD_IV_GENERATED; + break; + case 'l': + if (strcmp("en", s + 3) == 0) + return PIDX_CIPHER_PARAM_IVLEN; + break; + case '\0': + return PIDX_MAC_PARAM_IV; + } + } + break; + case 'j': + switch(s[1]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_COFACTOR; + } + break; + case 'k': + switch(s[1]) { + default: + break; + case '1': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_PP_K1; + } + break; + case '2': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_PP_K2; + } + break; + case '3': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_PP_K3; + } + break; + case 'a': + if (strcmp("t", s + 2) == 0) + return PIDX_SIGNATURE_PARAM_KAT; + break; + case 'b': + if (strcmp("kdf-key-check", s + 2) == 0) + return PIDX_PROV_PARAM_KBKDF_KEY_CHECK; + break; + case 'd': + switch(s[2]) { + default: + break; + case 'f': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'd': + switch(s[5]) { + default: + break; + case 'i': + switch(s[6]) { + default: + break; + case 'g': + switch(s[7]) { + default: + break; + case 'e': + switch(s[8]) { + default: + break; + case 's': + switch(s[9]) { + default: + break; + case 't': + switch(s[10]) { + default: + break; + case '-': + if (strcmp("props", s + 11) == 0) + return PIDX_EXCHANGE_PARAM_KDF_DIGEST_PROPS; + break; + case '\0': + return PIDX_EXCHANGE_PARAM_KDF_DIGEST; + } + } + } + } + } + } + break; + case 'o': + if (strcmp("utlen", s + 5) == 0) + return PIDX_EXCHANGE_PARAM_KDF_OUTLEN; + break; + case 't': + if (strcmp("ype", s + 5) == 0) + return PIDX_EXCHANGE_PARAM_KDF_TYPE; + break; + case 'u': + if (strcmp("km", s + 5) == 0) + return PIDX_EXCHANGE_PARAM_KDF_UKM; + } + } + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'y': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'c': + if (strcmp("heck", s + 5) == 0) + return PIDX_PKEY_PARAM_FIPS_KEY_CHECK; + break; + case 'l': + if (strcmp("ength", s + 5) == 0) + return PIDX_SKEY_PARAM_KEY_LENGTH; + } + break; + case 'b': + if (strcmp("its", s + 4) == 0) + return PIDX_CIPHER_PARAM_RC2_KEYBITS; + break; + case 'l': + if (strcmp("en", s + 4) == 0) + return PIDX_CIPHER_PARAM_KEYLEN; + break; + case '\0': + return PIDX_MAC_PARAM_KEY; + } + } + break; + case 'm': + if (strcmp("ac-key-check", s + 2) == 0) + return PIDX_PROV_PARAM_KMAC_KEY_CHECK; + } + break; + case 'l': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'b': + if (strcmp("el", s + 3) == 0) + return PIDX_KDF_PARAM_LABEL; + break; + case 'n': + if (strcmp("es", s + 3) == 0) + return PIDX_KDF_PARAM_ARGON2_LANES; + } + } + break; + case 'm': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'c': + switch(s[3]) { + default: + break; + case 'k': + if (strcmp("ey", s + 4) == 0) + return PIDX_CIPHER_PARAM_AEAD_MAC_KEY; + break; + case 'l': + if (strcmp("en", s + 4) == 0) + return PIDX_KDF_PARAM_MAC_SIZE; + break; + case '\0': + return PIDX_ALG_PARAM_MAC; + } + break; + case 'n': + if (strcmp("datory-digest", s + 3) == 0) + return PIDX_PKEY_PARAM_MANDATORY_DIGEST; + break; + case 'x': + switch(s[3]) { + default: + break; + case '-': + if (strcmp("size", s + 4) == 0) + return PIDX_PKEY_PARAM_MAX_SIZE; + break; + case '_': + switch(s[4]) { + default: + break; + case 'a': + if (strcmp("dinlen", s + 5) == 0) + return PIDX_DRBG_PARAM_MAX_ADINLEN; + break; + case 'e': + switch(s[5]) { + default: + break; + case 'a': + if (strcmp("rly_data", s + 6) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_MAX_EARLY_DATA; + break; + case 'n': + if (strcmp("tropylen", s + 6) == 0) + return PIDX_DRBG_PARAM_MAX_ENTROPYLEN; + } + break; + case 'f': + if (strcmp("rag_len", s + 5) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_MAX_FRAG_LEN; + break; + case 'n': + if (strcmp("oncelen", s + 5) == 0) + return PIDX_DRBG_PARAM_MAX_NONCELEN; + break; + case 'p': + if (strcmp("erslen", s + 5) == 0) + return PIDX_DRBG_PARAM_MAX_PERSLEN; + break; + case 'r': + if (strcmp("equest", s + 5) == 0) + return PIDX_RAND_PARAM_MAX_REQUEST; + } + break; + case 'i': + if (strcmp("um_length", s + 4) == 0) + return PIDX_DRBG_PARAM_MAX_LENGTH; + break; + case 'm': + if (strcmp("em_bytes", s + 4) == 0) + return PIDX_KDF_PARAM_SCRYPT_MAXMEM; + } + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'm': + if (strcmp("cost", s + 3) == 0) + return PIDX_KDF_PARAM_ARGON2_MEMCOST; + break; + case 's': + if (strcmp("sage-encoding", s + 3) == 0) + return PIDX_SIGNATURE_PARAM_MESSAGE_ENCODING; + } + break; + case 'g': + switch(s[2]) { + default: + break; + case 'f': + switch(s[3]) { + default: + break; + case '1': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'd': + if (strcmp("igest", s + 6) == 0) + return PIDX_PKEY_PARAM_MGF1_DIGEST; + break; + case 'p': + if (strcmp("roperties", s + 6) == 0) + return PIDX_PKEY_PARAM_MGF1_PROPERTIES; + } + } + break; + case '\0': + return PIDX_PKEY_PARAM_MASKGENFUNC; + } + } + break; + case 'i': + switch(s[2]) { + default: + break; + case 'c': + if (strcmp("alg", s + 3) == 0) + return PIDX_DIGEST_PARAM_MICALG; + break; + case 'n': + switch(s[3]) { + default: + break; + case '_': + switch(s[4]) { + default: + break; + case 'e': + if (strcmp("ntropylen", s + 5) == 0) + return PIDX_DRBG_PARAM_MIN_ENTROPYLEN; + break; + case 'n': + if (strcmp("oncelen", s + 5) == 0) + return PIDX_DRBG_PARAM_MIN_NONCELEN; + } + break; + case 'i': + if (strcmp("um_length", s + 4) == 0) + return PIDX_DRBG_PARAM_MIN_LENGTH; + } + } + break; + case 'l': + switch(s[2]) { + default: + break; + case '-': + switch(s[3]) { + default: + break; + case 'd': + switch(s[4]) { + default: + break; + case 's': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case '.': + switch(s[7]) { + default: + break; + case 'i': + if (strcmp("nput_formats", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_DSA_INPUT_FORMATS; + break; + case 'o': + if (strcmp("utput_formats", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_DSA_OUTPUT_FORMATS; + break; + case 'p': + if (strcmp("refer_seed", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_DSA_PREFER_SEED; + break; + case 'r': + if (strcmp("etain_seed", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_DSA_RETAIN_SEED; + } + } + } + } + break; + case 'k': + switch(s[4]) { + default: + break; + case 'e': + switch(s[5]) { + default: + break; + case 'm': + switch(s[6]) { + default: + break; + case '.': + switch(s[7]) { + default: + break; + case 'i': + switch(s[8]) { + default: + break; + case 'm': + if (strcmp("port_pct_type", s + 9) == 0) + return PIDX_PKEY_PARAM_ML_KEM_IMPORT_PCT_TYPE; + break; + case 'n': + if (strcmp("put_formats", s + 9) == 0) + return PIDX_PKEY_PARAM_ML_KEM_INPUT_FORMATS; + } + break; + case 'o': + if (strcmp("utput_formats", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_KEM_OUTPUT_FORMATS; + break; + case 'p': + if (strcmp("refer_seed", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_KEM_PREFER_SEED; + break; + case 'r': + if (strcmp("etain_seed", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_KEM_RETAIN_SEED; + } + } + } + } + } + } + break; + case 'o': + switch(s[2]) { + default: + break; + case 'd': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case '\0': + return PIDX_LIBSSL_RECORD_LAYER_PARAM_MODE; + } + break; + case 'u': + if (strcmp("le-filename", s + 4) == 0) + return PIDX_PROV_PARAM_CORE_MODULE_FILENAME; + } + } + break; + case 'u': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_SIGNATURE_PARAM_MU; + } + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_M; + } + break; + case 'n': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("me", s + 2) == 0) + return PIDX_STORE_PARAM_ISSUER; + break; + case 'o': + switch(s[2]) { + default: + break; + case '-': + if (strcmp("short-mac", s + 3) == 0) + return PIDX_PROV_PARAM_NO_SHORT_MAC; + break; + case 'n': + switch(s[3]) { + default: + break; + case 'c': + switch(s[4]) { + default: + break; + case 'e': + switch(s[5]) { + default: + break; + case '-': + if (strcmp("type", s + 6) == 0) + return PIDX_SIGNATURE_PARAM_NONCE_TYPE; + break; + case '\0': + return PIDX_KDF_PARAM_HMACDRBG_NONCE; + } + } + } + } + break; + case 'u': + if (strcmp("m", s + 2) == 0) + return PIDX_CIPHER_PARAM_NUM; + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_N; + } + break; + case 'o': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("ep-label", s + 2) == 0) + return PIDX_ASYM_CIPHER_PARAM_OAEP_LABEL; + break; + case 'p': + switch(s[2]) { + default: + break; + case 'e': + switch(s[3]) { + default: + break; + case 'n': + if (strcmp("ssl-version", s + 4) == 0) + return PIDX_PROV_PARAM_CORE_VERSION; + break; + case 'r': + if (strcmp("ation", s + 4) == 0) + return PIDX_KEM_PARAM_OPERATION; + } + break; + case 't': + if (strcmp("ions", s + 3) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_OPTIONS; + } + break; + case 'r': + if (strcmp("der", s + 2) == 0) + return PIDX_PKEY_PARAM_EC_ORDER; + } + break; + case 'p': + switch(s[1]) { + default: + break; + case '1': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_P1; + } + break; + case '2': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_P2; + } + break; + case 'a': + switch(s[2]) { + default: + break; + case 'd': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'm': + if (strcmp("ode", s + 5) == 0) + return PIDX_PKEY_PARAM_PAD_MODE; + break; + case 't': + if (strcmp("ype", s + 5) == 0) + return PIDX_DIGEST_PARAM_PAD_TYPE; + } + break; + case 'd': + if (strcmp("ing", s + 4) == 0) + return PIDX_CIPHER_PARAM_PADDING; + break; + case '\0': + return PIDX_EXCHANGE_PARAM_PAD; + } + break; + case 'r': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case 'y': + switch(s[5]) { + default: + break; + case 'u': + if (strcmp("-info", s + 6) == 0) + return PIDX_KDF_PARAM_X942_PARTYUINFO; + break; + case 'v': + if (strcmp("-info", s + 6) == 0) + return PIDX_KDF_PARAM_X942_PARTYVINFO; + } + } + } + break; + case 's': + if (strcmp("s", s + 3) == 0) + return PIDX_KDF_PARAM_PASSWORD; + } + break; + case 'b': + switch(s[2]) { + default: + break; + case 'i': + if (strcmp("ts", s + 3) == 0) + return PIDX_PKEY_PARAM_FFC_PBITS; + break; + case 'k': + if (strcmp("df2-lower-bound-check", s + 3) == 0) + return PIDX_PROV_PARAM_PBKDF2_LOWER_BOUND_CHECK; + } + break; + case 'c': + if (strcmp("ounter", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_PCOUNTER; + break; + case 'i': + if (strcmp("peline-tag", s + 2) == 0) + return PIDX_CIPHER_PARAM_PIPELINE_AEAD_TAG; + break; + case 'k': + if (strcmp("cs5", s + 2) == 0) + return PIDX_KDF_PARAM_PKCS5; + break; + case 'o': + switch(s[2]) { + default: + break; + case 'i': + if (strcmp("nt-format", s + 3) == 0) + return PIDX_PKEY_PARAM_EC_POINT_CONVERSION_FORMAT; + break; + case 't': + if (strcmp("ential", s + 3) == 0) + return PIDX_GEN_PARAM_POTENTIAL; + } + break; + case 'r': + switch(s[2]) { + default: + break; + case 'e': + switch(s[3]) { + default: + break; + case 'd': + if (strcmp("iction_resistance", s + 4) == 0) + return PIDX_DRBG_PARAM_PREDICTION_RESISTANCE; + break; + case 'f': + if (strcmp("ix", s + 4) == 0) + return PIDX_KDF_PARAM_PREFIX; + } + break; + case 'i': + switch(s[3]) { + default: + break; + case 'm': + if (strcmp("es", s + 4) == 0) + return PIDX_PKEY_PARAM_RSA_PRIMES; + break; + case 'v': + switch(s[4]) { + default: + break; + case '_': + if (strcmp("len", s + 5) == 0) + return PIDX_PKEY_PARAM_DH_PRIV_LEN; + break; + case '\0': + return PIDX_PKEY_PARAM_PRIV_KEY; + } + } + break; + case 'o': + switch(s[3]) { + default: + break; + case 'p': + if (strcmp("erties", s + 4) == 0) + return PIDX_STORE_PARAM_PROPERTIES; + break; + case 'v': + if (strcmp("ider-name", s + 4) == 0) + return PIDX_PROV_PARAM_CORE_PROV_NAME; + } + } + break; + case 'u': + if (strcmp("b", s + 2) == 0) + return PIDX_PKEY_PARAM_PUB_KEY; + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_P; + } + break; + case 'q': + switch(s[1]) { + default: + break; + case '1': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_Q1; + } + break; + case '2': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_Q2; + } + break; + case 'b': + if (strcmp("its", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_QBITS; + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_Q; + break; + case 'x': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_PUB_X; + } + break; + case 'y': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_PUB_Y; + } + } + break; + case 'r': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'n': + switch(s[3]) { + default: + break; + case 'd': + switch(s[4]) { + default: + break; + case 'k': + if (strcmp("ey", s + 5) == 0) + return PIDX_CIPHER_PARAM_RANDOM_KEY; + break; + case 'o': + if (strcmp("m_data", s + 5) == 0) + return PIDX_DRBG_PARAM_RANDOM_DATA; + } + } + break; + case 'w': + if (strcmp("-bytes", s + 3) == 0) + return PIDX_SKEY_PARAM_RAW_BYTES; + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'a': + switch(s[3]) { + default: + break; + case 'd': + switch(s[4]) { + default: + break; + case '_': + switch(s[5]) { + default: + break; + case 'a': + if (strcmp("head", s + 6) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_READ_AHEAD; + break; + case 'b': + if (strcmp("uffer_len", s + 6) == 0) + return PIDX_LIBSSL_RECORD_LAYER_READ_BUFFER_LEN; + } + } + } + break; + case 'f': + if (strcmp("erence", s + 3) == 0) + return PIDX_OBJECT_PARAM_REFERENCE; + break; + case 's': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case 'e': + switch(s[5]) { + default: + break; + case 'd': + switch(s[6]) { + default: + break; + case '_': + switch(s[7]) { + default: + break; + case 'c': + if (strcmp("ounter", s + 8) == 0) + return PIDX_DRBG_PARAM_RESEED_COUNTER; + break; + case 'r': + if (strcmp("equests", s + 8) == 0) + return PIDX_DRBG_PARAM_RESEED_REQUESTS; + break; + case 't': + switch(s[8]) { + default: + break; + case 'i': + switch(s[9]) { + default: + break; + case 'm': + switch(s[10]) { + default: + break; + case 'e': + switch(s[11]) { + default: + break; + case '_': + if (strcmp("interval", s + 12) == 0) + return PIDX_DRBG_PARAM_RESEED_TIME_INTERVAL; + break; + case '\0': + return PIDX_DRBG_PARAM_RESEED_TIME; + } + } + } + } + } + } + } + } + } + } + break; + case 'o': + if (strcmp("unds", s + 2) == 0) + return PIDX_CIPHER_PARAM_ROUNDS; + break; + case 's': + switch(s[2]) { + default: + break; + case 'a': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'c': + switch(s[5]) { + default: + break; + case 'o': + switch(s[6]) { + default: + break; + case 'e': + switch(s[7]) { + default: + break; + case 'f': + switch(s[8]) { + default: + break; + case 'f': + switch(s[9]) { + default: + break; + case 'i': + switch(s[10]) { + default: + break; + case 'c': + switch(s[11]) { + default: + break; + case 'i': + switch(s[12]) { + default: + break; + case 'e': + switch(s[13]) { + default: + break; + case 'n': + switch(s[14]) { + default: + break; + case 't': + switch(s[15]) { + default: + break; + case '1': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT1; + } + break; + case '2': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT2; + } + break; + case '3': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT3; + } + break; + case '4': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT4; + } + break; + case '5': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT5; + } + break; + case '6': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT6; + } + break; + case '7': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT7; + } + break; + case '8': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT8; + } + break; + case '9': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT9; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT; + } + } + } + } + } + } + } + } + } + } + } + break; + case 'd': + if (strcmp("erive-from-pq", s + 5) == 0) + return PIDX_PKEY_PARAM_RSA_DERIVE_FROM_PQ; + break; + case 'e': + switch(s[5]) { + default: + break; + case 'x': + switch(s[6]) { + default: + break; + case 'p': + switch(s[7]) { + default: + break; + case 'o': + switch(s[8]) { + default: + break; + case 'n': + switch(s[9]) { + default: + break; + case 'e': + switch(s[10]) { + default: + break; + case 'n': + switch(s[11]) { + default: + break; + case 't': + switch(s[12]) { + default: + break; + case '1': + switch(s[13]) { + default: + break; + case '0': + switch(s[14]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT10; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT1; + } + break; + case '2': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT2; + } + break; + case '3': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT3; + } + break; + case '4': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT4; + } + break; + case '5': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT5; + } + break; + case '6': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT6; + } + break; + case '7': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT7; + } + break; + case '8': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT8; + } + break; + case '9': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT9; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT; + } + } + } + } + } + } + } + } + break; + case 'f': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case 'c': + switch(s[7]) { + default: + break; + case 't': + switch(s[8]) { + default: + break; + case 'o': + switch(s[9]) { + default: + break; + case 'r': + switch(s[10]) { + default: + break; + case '1': + switch(s[11]) { + default: + break; + case '0': + switch(s[12]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR10; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR1; + } + break; + case '2': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR2; + } + break; + case '3': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR3; + } + break; + case '4': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR4; + } + break; + case '5': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR5; + } + break; + case '6': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR6; + } + break; + case '7': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR7; + } + break; + case '8': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR8; + } + break; + case '9': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR9; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR; + } + } + } + } + } + } + break; + case 'p': + switch(s[5]) { + default: + break; + case 'k': + if (strcmp("cs15-pad-disabled", s + 6) == 0) + return PIDX_PROV_PARAM_RSA_PKCS15_PAD_DISABLED; + break; + case 's': + if (strcmp("s-saltlen-check", s + 6) == 0) + return PIDX_SIGNATURE_PARAM_FIPS_RSA_PSS_SALTLEN_CHECK; + } + break; + case 's': + if (strcmp("ign-x931-pad-disabled", s + 5) == 0) + return PIDX_PROV_PARAM_RSA_SIGN_X931_PAD_DISABLED; + } + } + } + break; + case '\0': + return PIDX_KDF_PARAM_SCRYPT_R; + } + break; + case 's': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'f': + if (strcmp("eprime-generator", s + 3) == 0) + return PIDX_PKEY_PARAM_DH_GENERATOR; + break; + case 'l': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case 'l': + if (strcmp("en", s + 5) == 0) + return PIDX_SIGNATURE_PARAM_PSS_SALTLEN; + break; + case '\0': + return PIDX_MAC_PARAM_SALT; + } + } + break; + case 'v': + if (strcmp("e-parameters", s + 3) == 0) + return PIDX_ENCODER_PARAM_SAVE_PARAMETERS; + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'c': + switch(s[3]) { + default: + break; + case 'r': + if (strcmp("et", s + 4) == 0) + return PIDX_KDF_PARAM_SECRET; + break; + case 'u': + switch(s[4]) { + default: + break; + case 'r': + switch(s[5]) { + default: + break; + case 'i': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case 'y': + switch(s[8]) { + default: + break; + case '-': + switch(s[9]) { + default: + break; + case 'b': + if (strcmp("its", s + 10) == 0) + return PIDX_PKEY_PARAM_SECURITY_BITS; + break; + case 'c': + if (strcmp("hecks", s + 10) == 0) + return PIDX_PROV_PARAM_SECURITY_CHECKS; + } + } + } + } + } + } + } + break; + case 'e': + if (strcmp("d", s + 3) == 0) + return PIDX_PKEY_PARAM_SLH_DSA_SEED; + break; + case 'r': + if (strcmp("ial", s + 3) == 0) + return PIDX_STORE_PARAM_SERIAL; + break; + case 's': + if (strcmp("sion_id", s + 3) == 0) + return PIDX_KDF_PARAM_SSHKDF_SESSION_ID; + } + break; + case 'i': + switch(s[2]) { + default: + break; + case 'g': + switch(s[3]) { + default: + break; + case 'n': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'c': + if (strcmp("heck", s + 6) == 0) + return PIDX_PKEY_PARAM_FIPS_SIGN_CHECK; + break; + case 'x': + if (strcmp("931-pad-check", s + 6) == 0) + return PIDX_SIGNATURE_PARAM_FIPS_SIGN_X931_PAD_CHECK; + } + break; + case 'a': + switch(s[5]) { + default: + break; + case 't': + switch(s[6]) { + default: + break; + case 'u': + switch(s[7]) { + default: + break; + case 'r': + switch(s[8]) { + default: + break; + case 'e': + switch(s[9]) { + default: + break; + case '-': + if (strcmp("digest-check", s + 10) == 0) + return PIDX_PROV_PARAM_SIGNATURE_DIGEST_CHECK; + break; + case '\0': + return PIDX_SIGNATURE_PARAM_SIGNATURE; + } + } + } + } + } + } + } + break; + case 'z': + if (strcmp("e", s + 3) == 0) + return PIDX_MAC_PARAM_SIZE; + } + break; + case 'p': + if (strcmp("eed", s + 2) == 0) + return PIDX_CIPHER_PARAM_SPEED; + break; + case 's': + switch(s[2]) { + default: + break; + case 'h': + switch(s[3]) { + default: + break; + case 'k': + switch(s[4]) { + default: + break; + case 'd': + switch(s[5]) { + default: + break; + case 'f': + switch(s[6]) { + default: + break; + case '-': + switch(s[7]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 8) == 0) + return PIDX_PROV_PARAM_SSHKDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 8) == 0) + return PIDX_PROV_PARAM_SSHKDF_KEY_CHECK; + } + } + } + } + } + break; + case 'k': + switch(s[3]) { + default: + break; + case 'd': + switch(s[4]) { + default: + break; + case 'f': + switch(s[5]) { + default: + break; + case '-': + switch(s[6]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 7) == 0) + return PIDX_PROV_PARAM_SSKDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 7) == 0) + return PIDX_PROV_PARAM_SSKDF_KEY_CHECK; + } + } + } + } + break; + case 'l': + if (strcmp("3-ms", s + 3) == 0) + return PIDX_DIGEST_PARAM_SSL3_MS; + } + break; + case 't': + switch(s[2]) { + default: + break; + case '-': + switch(s[3]) { + default: + break; + case 'd': + if (strcmp("esc", s + 4) == 0) + return PIDX_PROV_PARAM_SELF_TEST_DESC; + break; + case 'p': + if (strcmp("hase", s + 4) == 0) + return PIDX_PROV_PARAM_SELF_TEST_PHASE; + break; + case 't': + if (strcmp("ype", s + 4) == 0) + return PIDX_PROV_PARAM_SELF_TEST_TYPE; + } + break; + case 'a': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case 'e': + switch(s[5]) { + default: + break; + case '\0': + return PIDX_RAND_PARAM_STATE; + } + break; + case 'u': + if (strcmp("s", s + 5) == 0) + return PIDX_PROV_PARAM_STATUS; + } + } + break; + case 'r': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case 'a': + if (strcmp("m_mac", s + 5) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_STREAM_MAC; + break; + case 'n': + if (strcmp("gth", s + 5) == 0) + return PIDX_RAND_PARAM_STRENGTH; + } + } + } + break; + case 'u': + switch(s[2]) { + default: + break; + case 'b': + if (strcmp("ject", s + 3) == 0) + return PIDX_STORE_PARAM_SUBJECT; + break; + case 'p': + switch(s[3]) { + default: + break; + case 'p': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'p': + switch(s[6]) { + default: + break; + case 'r': + if (strcmp("ivinfo", s + 7) == 0) + return PIDX_KDF_PARAM_X942_SUPP_PRIVINFO; + break; + case 'u': + if (strcmp("binfo", s + 7) == 0) + return PIDX_KDF_PARAM_X942_SUPP_PUBINFO; + } + } + } + } + } + } + break; + case 't': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'g': + switch(s[3]) { + default: + break; + case 'l': + if (strcmp("en", s + 4) == 0) + return PIDX_CIPHER_PARAM_AEAD_TAGLEN; + break; + case '\0': + return PIDX_CIPHER_PARAM_AEAD_TAG; + } + } + break; + case 'd': + if (strcmp("es-encrypt-disabled", s + 2) == 0) + return PIDX_PROV_PARAM_TDES_ENCRYPT_DISABLED; + break; + case 'e': + switch(s[2]) { + default: + break; + case 's': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case '-': + if (strcmp("entropy", s + 5) == 0) + return PIDX_SIGNATURE_PARAM_TEST_ENTROPY; + break; + case '_': + switch(s[5]) { + default: + break; + case 'e': + if (strcmp("ntropy", s + 6) == 0) + return PIDX_RAND_PARAM_TEST_ENTROPY; + break; + case 'n': + if (strcmp("once", s + 6) == 0) + return PIDX_RAND_PARAM_TEST_NONCE; + } + } + } + } + break; + case 'h': + if (strcmp("reads", s + 2) == 0) + return PIDX_KDF_PARAM_THREADS; + break; + case 'l': + switch(s[2]) { + default: + break; + case 's': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'c': + if (strcmp("lient-version", s + 5) == 0) + return PIDX_ASYM_CIPHER_PARAM_TLS_CLIENT_VERSION; + break; + case 'd': + if (strcmp("ata-size", s + 5) == 0) + return PIDX_MAC_PARAM_TLS_DATA_SIZE; + break; + case 'g': + switch(s[5]) { + default: + break; + case 'r': + switch(s[6]) { + default: + break; + case 'o': + switch(s[7]) { + default: + break; + case 'u': + switch(s[8]) { + default: + break; + case 'p': + switch(s[9]) { + default: + break; + case '-': + switch(s[10]) { + default: + break; + case 'a': + if (strcmp("lg", s + 11) == 0) + return PIDX_CAPABILITY_TLS_GROUP_ALG; + break; + case 'i': + switch(s[11]) { + default: + break; + case 'd': + switch(s[12]) { + default: + break; + case '\0': + return PIDX_CAPABILITY_TLS_GROUP_ID; + } + break; + case 's': + if (strcmp("-kem", s + 12) == 0) + return PIDX_CAPABILITY_TLS_GROUP_IS_KEM; + } + break; + case 'n': + switch(s[11]) { + default: + break; + case 'a': + switch(s[12]) { + default: + break; + case 'm': + switch(s[13]) { + default: + break; + case 'e': + switch(s[14]) { + default: + break; + case '-': + if (strcmp("internal", s + 15) == 0) + return PIDX_CAPABILITY_TLS_GROUP_NAME_INTERNAL; + break; + case '\0': + return PIDX_CAPABILITY_TLS_GROUP_NAME; + } + } + } + } + break; + case 's': + if (strcmp("ec-bits", s + 11) == 0) + return PIDX_CAPABILITY_TLS_GROUP_SECURITY_BITS; + } + } + } + } + } + } + break; + case 'm': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case 'c': + switch(s[7]) { + default: + break; + case '-': + if (strcmp("size", s + 8) == 0) + return PIDX_CIPHER_PARAM_TLS_MAC_SIZE; + break; + case '\0': + return PIDX_CIPHER_PARAM_TLS_MAC; + } + break; + case 'x': + switch(s[7]) { + default: + break; + case '-': + switch(s[8]) { + default: + break; + case 'd': + if (strcmp("tls", s + 9) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_MAX_DTLS; + break; + case 't': + if (strcmp("ls", s + 9) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_MAX_TLS; + } + } + } + break; + case 'i': + switch(s[6]) { + default: + break; + case 'n': + switch(s[7]) { + default: + break; + case '-': + switch(s[8]) { + default: + break; + case 'd': + if (strcmp("tls", s + 9) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_MIN_DTLS; + break; + case 't': + if (strcmp("ls", s + 9) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_MIN_TLS; + } + } + } + break; + case 'u': + if (strcmp("lti", s + 6) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK; + } + break; + case 'n': + if (strcmp("egotiated-version", s + 5) == 0) + return PIDX_ASYM_CIPHER_PARAM_TLS_NEGOTIATED_VERSION; + break; + case 's': + switch(s[5]) { + default: + break; + case 'i': + switch(s[6]) { + default: + break; + case 'g': + switch(s[7]) { + default: + break; + case 'a': + switch(s[8]) { + default: + break; + case 'l': + switch(s[9]) { + default: + break; + case 'g': + switch(s[10]) { + default: + break; + case '-': + switch(s[11]) { + default: + break; + case 'c': + if (strcmp("ode-point", s + 12) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_CODE_POINT; + break; + case 'h': + switch(s[12]) { + default: + break; + case 'a': + switch(s[13]) { + default: + break; + case 's': + switch(s[14]) { + default: + break; + case 'h': + switch(s[15]) { + default: + break; + case '-': + switch(s[16]) { + default: + break; + case 'n': + if (strcmp("ame", s + 17) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_HASH_NAME; + break; + case 'o': + if (strcmp("id", s + 17) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_HASH_OID; + } + } + } + } + } + break; + case 'i': + if (strcmp("ana-name", s + 12) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_IANA_NAME; + break; + case 'k': + switch(s[12]) { + default: + break; + case 'e': + switch(s[13]) { + default: + break; + case 'y': + switch(s[14]) { + default: + break; + case 't': + switch(s[15]) { + default: + break; + case 'y': + switch(s[16]) { + default: + break; + case 'p': + switch(s[17]) { + default: + break; + case 'e': + switch(s[18]) { + default: + break; + case '-': + if (strcmp("oid", s + 19) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_KEYTYPE_OID; + break; + case '\0': + return PIDX_CAPABILITY_TLS_SIGALG_KEYTYPE; + } + } + } + } + } + } + } + break; + case 'n': + if (strcmp("ame", s + 12) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_NAME; + break; + case 'o': + if (strcmp("id", s + 12) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_OID; + break; + case 's': + switch(s[12]) { + default: + break; + case 'e': + if (strcmp("c-bits", s + 13) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_SECURITY_BITS; + break; + case 'i': + switch(s[13]) { + default: + break; + case 'g': + switch(s[14]) { + default: + break; + case '-': + switch(s[15]) { + default: + break; + case 'n': + if (strcmp("ame", s + 16) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_SIG_NAME; + break; + case 'o': + if (strcmp("id", s + 16) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_SIG_OID; + } + } + } + } + } + } + } + } + } + } + } + break; + case 'v': + if (strcmp("ersion", s + 5) == 0) + return PIDX_CIPHER_PARAM_TLS_VERSION; + } + break; + case '1': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'p': + switch(s[6]) { + default: + break; + case 'r': + switch(s[7]) { + default: + break; + case 'f': + switch(s[8]) { + default: + break; + case '-': + switch(s[9]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 10) == 0) + return PIDX_PROV_PARAM_TLS1_PRF_DIGEST_CHECK; + break; + case 'e': + if (strcmp("ms-check", s + 10) == 0) + return PIDX_PROV_PARAM_TLS1_PRF_EMS_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 10) == 0) + return PIDX_PROV_PARAM_TLS1_PRF_KEY_CHECK; + } + } + } + } + } + break; + case '3': + switch(s[5]) { + default: + break; + case '-': + switch(s[6]) { + default: + break; + case 'k': + switch(s[7]) { + default: + break; + case 'd': + switch(s[8]) { + default: + break; + case 'f': + switch(s[9]) { + default: + break; + case '-': + switch(s[10]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 11) == 0) + return PIDX_PROV_PARAM_TLS13_KDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 11) == 0) + return PIDX_PROV_PARAM_TLS13_KDF_KEY_CHECK; + } + } + } + } + } + } + break; + case 'm': + switch(s[5]) { + default: + break; + case 'u': + switch(s[6]) { + default: + break; + case 'l': + switch(s[7]) { + default: + break; + case 't': + switch(s[8]) { + default: + break; + case 'i': + switch(s[9]) { + default: + break; + case '_': + switch(s[10]) { + default: + break; + case 'a': + switch(s[11]) { + default: + break; + case 'a': + switch(s[12]) { + default: + break; + case 'd': + switch(s[13]) { + default: + break; + case 'p': + if (strcmp("acklen", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD_PACKLEN; + break; + case '\0': + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD; + } + } + } + break; + case 'e': + switch(s[11]) { + default: + break; + case 'n': + switch(s[12]) { + default: + break; + case 'c': + switch(s[13]) { + default: + break; + case 'i': + if (strcmp("n", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_IN; + break; + case 'l': + if (strcmp("en", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_LEN; + break; + case '\0': + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC; + } + } + } + break; + case 'i': + if (strcmp("nterleave", s + 11) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_INTERLEAVE; + break; + case 'm': + switch(s[11]) { + default: + break; + case 'a': + switch(s[12]) { + default: + break; + case 'x': + switch(s[13]) { + default: + break; + case 'b': + if (strcmp("ufsz", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_BUFSIZE; + break; + case 's': + if (strcmp("ndfrag", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_SEND_FRAGMENT; + } + } + } + } + } + } + } + } + } + } + break; + case 'a': + switch(s[4]) { + default: + break; + case 'a': + switch(s[5]) { + default: + break; + case 'd': + switch(s[6]) { + default: + break; + case 'p': + if (strcmp("ad", s + 7) == 0) + return PIDX_CIPHER_PARAM_AEAD_TLS1_AAD_PAD; + break; + case '\0': + return PIDX_CIPHER_PARAM_AEAD_TLS1_AAD; + } + } + } + break; + case 'i': + switch(s[4]) { + default: + break; + case 'v': + switch(s[5]) { + default: + break; + case 'f': + if (strcmp("ixed", s + 6) == 0) + return PIDX_CIPHER_PARAM_AEAD_TLS1_IV_FIXED; + break; + case 'g': + if (strcmp("en", s + 6) == 0) + return PIDX_CIPHER_PARAM_AEAD_TLS1_GET_IV_GEN; + break; + case 'i': + if (strcmp("nv", s + 6) == 0) + return PIDX_CIPHER_PARAM_AEAD_TLS1_SET_IV_INV; + } + } + break; + case 't': + if (strcmp("ree", s + 4) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_TLSTREE; + } + } + break; + case 'p': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_TP_BASIS; + } + break; + case 'y': + if (strcmp("pe", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_TYPE; + } + break; + case 'u': + switch(s[1]) { + default: + break; + case 'k': + if (strcmp("m", s + 2) == 0) + return PIDX_KDF_PARAM_UKM; + break; + case 'p': + if (strcmp("dated-iv", s + 2) == 0) + return PIDX_CIPHER_PARAM_UPDATED_IV; + break; + case 's': + switch(s[2]) { + default: + break; + case 'e': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'b': + if (strcmp("its", s + 5) == 0) + return PIDX_CIPHER_PARAM_USE_BITS; + break; + case 'c': + if (strcmp("ofactor-flag", s + 5) == 0) + return PIDX_PKEY_PARAM_USE_COFACTOR_FLAG; + break; + case 'k': + if (strcmp("eybits", s + 5) == 0) + return PIDX_KDF_PARAM_X942_USE_KEYBITS; + break; + case 'l': + switch(s[5]) { + default: + break; + case '\0': + return PIDX_KDF_PARAM_KBKDF_USE_L; + } + break; + case 's': + if (strcmp("eparator", s + 5) == 0) + return PIDX_KDF_PARAM_KBKDF_USE_SEPARATOR; + } + break; + case '_': + switch(s[4]) { + default: + break; + case 'd': + if (strcmp("erivation_function", s + 5) == 0) + return PIDX_DRBG_PARAM_USE_DF; + break; + case 'e': + if (strcmp("tm", s + 5) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_USE_ETM; + } + } + } + } + break; + case 'v': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'l': + switch(s[3]) { + default: + break; + case 'i': + switch(s[4]) { + default: + break; + case 'd': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case 'e': + switch(s[8]) { + default: + break; + case '-': + switch(s[9]) { + default: + break; + case 'g': + switch(s[10]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_VALIDATE_G; + } + break; + case 'l': + if (strcmp("egacy", s + 10) == 0) + return PIDX_PKEY_PARAM_FFC_VALIDATE_LEGACY; + break; + case 'p': + if (strcmp("q", s + 10) == 0) + return PIDX_PKEY_PARAM_FFC_VALIDATE_PQ; + } + } + } + } + } + } + } + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'r': + switch(s[3]) { + default: + break; + case 'i': + if (strcmp("fy-message", s + 4) == 0) + return PIDX_SIGNATURE_PARAM_FIPS_VERIFY_MESSAGE; + break; + case 's': + if (strcmp("ion", s + 4) == 0) + return PIDX_PROV_PARAM_VERSION; + } + } + } + break; + case 'x': + switch(s[1]) { + default: + break; + case '9': + switch(s[2]) { + default: + break; + case '4': + if (strcmp("2kdf-key-check", s + 3) == 0) + return PIDX_PROV_PARAM_X942KDF_KEY_CHECK; + break; + case '6': + switch(s[3]) { + default: + break; + case '3': + switch(s[4]) { + default: + break; + case 'k': + switch(s[5]) { + default: + break; + case 'd': + switch(s[6]) { + default: + break; + case 'f': + switch(s[7]) { + default: + break; + case '-': + switch(s[8]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 9) == 0) + return PIDX_PROV_PARAM_X963KDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 9) == 0) + return PIDX_PROV_PARAM_X963KDF_KEY_CHECK; + } + } + } + } + } + } + } + break; + case 'c': + if (strcmp("ghash", s + 2) == 0) + return PIDX_KDF_PARAM_SSHKDF_XCGHASH; + break; + case 'o': + switch(s[2]) { + default: + break; + case 'f': + switch(s[3]) { + default: + break; + case 'l': + if (strcmp("en", s + 4) == 0) + return PIDX_DIGEST_PARAM_XOFLEN; + break; + case '\0': + return PIDX_MAC_PARAM_XOF; + } + } + break; + case 'p': + switch(s[2]) { + default: + break; + case '1': + switch(s[3]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XP1; + } + break; + case '2': + switch(s[3]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XP2; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XP; + } + break; + case 'q': + switch(s[2]) { + default: + break; + case '1': + switch(s[3]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XQ1; + } + break; + case '2': + switch(s[3]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XQ2; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XQ; + } + break; + case 't': + if (strcmp("s_standard", s + 2) == 0) + return PIDX_CIPHER_PARAM_XTS_STANDARD; + } + } + return -1; +} + +/* End of TRIE */ diff --git a/deps/openssl/config/archs/linux-aarch64/asm_avx2/crypto/poly1305/poly1305-armv8.S b/deps/openssl/config/archs/linux-aarch64/asm_avx2/crypto/poly1305/poly1305-armv8.S index 98ebf48535e5e9..edf9679a11d45b 100644 --- a/deps/openssl/config/archs/linux-aarch64/asm_avx2/crypto/poly1305/poly1305-armv8.S +++ b/deps/openssl/config/archs/linux-aarch64/asm_avx2/crypto/poly1305/poly1305-armv8.S @@ -15,6 +15,7 @@ .type poly1305_init,%function .align 5 poly1305_init: + AARCH64_VALID_CALL_TARGET cmp x1,xzr stp xzr,xzr,[x0] // zero hash value stp xzr,xzr,[x0,#16] // [along with is_base2_26] @@ -39,10 +40,14 @@ poly1305_init: tst w17,#ARMV7_NEON - adr x12,.Lpoly1305_blocks - adr x7,.Lpoly1305_blocks_neon - adr x13,.Lpoly1305_emit - adr x8,.Lpoly1305_emit_neon + adrp x12,poly1305_blocks + add x12,x12,#:lo12:.Lpoly1305_blocks + adrp x7,poly1305_blocks_neon + add x7,x7,#:lo12:.Lpoly1305_blocks_neon + adrp x13,poly1305_emit + add x13,x13,#:lo12:.Lpoly1305_emit + adrp x8,poly1305_emit_neon + add x8,x8,#:lo12:.Lpoly1305_emit_neon csel x12,x12,x7,eq csel x13,x13,x8,eq @@ -62,6 +67,9 @@ poly1305_init: .align 5 poly1305_blocks: .Lpoly1305_blocks: + // The symbol .Lpoly1305_blocks is not a .globl symbol + // but a pointer to it is returned by poly1305_init + AARCH64_VALID_CALL_TARGET ands x2,x2,#-16 b.eq .Lno_data @@ -127,6 +135,9 @@ poly1305_blocks: .align 5 poly1305_emit: .Lpoly1305_emit: + // The symbol .poly1305_emit is not a .globl symbol + // but a pointer to it is returned by poly1305_init + AARCH64_VALID_CALL_TARGET ldp x4,x5,[x0] // load hash base 2^64 ldr x6,[x0,#16] ldp x10,x11,[x2] // load nonce @@ -222,13 +233,16 @@ poly1305_splat: .align 5 poly1305_blocks_neon: .Lpoly1305_blocks_neon: + // The symbol .Lpoly1305_blocks_neon is not a .globl symbol + // but a pointer to it is returned by poly1305_init + AARCH64_VALID_CALL_TARGET ldr x17,[x0,#24] cmp x2,#128 b.hs .Lblocks_neon cbz x17,.Lpoly1305_blocks .Lblocks_neon: -.inst 0xd503233f // paciasp + AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-80]! add x29,sp,#0 @@ -363,7 +377,8 @@ poly1305_blocks_neon: ldr x30,[sp,#8] add x16,x1,#32 - adr x17,.Lzeros + adrp x17,.Lzeros + add x17,x17,#:lo12:.Lzeros subs x2,x2,#64 csel x16,x17,x16,lo @@ -375,7 +390,8 @@ poly1305_blocks_neon: .align 4 .Leven_neon: add x16,x1,#32 - adr x17,.Lzeros + adrp x17,.Lzeros + add x17,x17,#:lo12:.Lzeros subs x2,x2,#64 csel x16,x17,x16,lo @@ -798,7 +814,7 @@ poly1305_blocks_neon: .Lno_data_neon: ldr x29,[sp],#80 -.inst 0xd50323bf // autiasp + AARCH64_VALIDATE_LINK_REGISTER ret .size poly1305_blocks_neon,.-poly1305_blocks_neon @@ -806,6 +822,9 @@ poly1305_blocks_neon: .align 5 poly1305_emit_neon: .Lpoly1305_emit_neon: + // The symbol .Lpoly1305_emit_neon is not a .globl symbol + // but a pointer to it is returned by poly1305_init + AARCH64_VALID_CALL_TARGET ldr x17,[x0,#24] cbz x17,poly1305_emit @@ -855,6 +874,8 @@ poly1305_emit_neon: ret .size poly1305_emit_neon,.-poly1305_emit_neon +.section .rodata + .align 5 .Lzeros: .long 0,0,0,0,0,0,0,0 diff --git a/deps/openssl/config/archs/linux-aarch64/asm_avx2/crypto/sha/keccak1600-armv8.S b/deps/openssl/config/archs/linux-aarch64/asm_avx2/crypto/sha/keccak1600-armv8.S index 3a3385e285802c..8b6b5d0b799f5d 100644 --- a/deps/openssl/config/archs/linux-aarch64/asm_avx2/crypto/sha/keccak1600-armv8.S +++ b/deps/openssl/config/archs/linux-aarch64/asm_avx2/crypto/sha/keccak1600-armv8.S @@ -1,4 +1,6 @@ -.text +#include "arm_arch.h" + +.section .rodata .align 8 // strategic alignment and padding that allows to use // address value as loop termination condition... @@ -30,11 +32,14 @@ iotas: .quad 0x0000000080000001 .quad 0x8000000080008008 .size iotas,.-iotas +.text + .type KeccakF1600_int,%function .align 5 KeccakF1600_int: - adr x28,iotas -.inst 0xd503233f // paciasp + AARCH64_SIGN_LINK_REGISTER + adrp x28,iotas + add x28,x28,#:lo12:iotas stp x28,x30,[sp,#16] // 32 bytes on top are mine b .Loop .align 4 @@ -198,14 +203,14 @@ KeccakF1600_int: bne .Loop ldr x30,[sp,#24] -.inst 0xd50323bf // autiasp + AARCH64_VALIDATE_LINK_REGISTER ret .size KeccakF1600_int,.-KeccakF1600_int .type KeccakF1600,%function .align 5 KeccakF1600: -.inst 0xd503233f // paciasp + AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-128]! add x29,sp,#0 stp x19,x20,[sp,#16] @@ -255,7 +260,7 @@ KeccakF1600: ldp x25,x26,[x29,#64] ldp x27,x28,[x29,#80] ldp x29,x30,[sp],#128 -.inst 0xd50323bf // autiasp + AARCH64_VALIDATE_LINK_REGISTER ret .size KeccakF1600,.-KeccakF1600 @@ -263,7 +268,7 @@ KeccakF1600: .type SHA3_absorb,%function .align 5 SHA3_absorb: -.inst 0xd503233f // paciasp + AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-128]! add x29,sp,#0 stp x19,x20,[sp,#16] @@ -497,14 +502,14 @@ SHA3_absorb: ldp x25,x26,[x29,#64] ldp x27,x28,[x29,#80] ldp x29,x30,[sp],#128 -.inst 0xd50323bf // autiasp + AARCH64_VALIDATE_LINK_REGISTER ret .size SHA3_absorb,.-SHA3_absorb .globl SHA3_squeeze .type SHA3_squeeze,%function .align 5 SHA3_squeeze: -.inst 0xd503233f // paciasp + AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-48]! add x29,sp,#0 stp x19,x20,[sp,#16] @@ -514,6 +519,8 @@ SHA3_squeeze: mov x20,x1 mov x21,x2 mov x22,x3 + cmp w4, #0 // w4 = 'next' argument + bne .Lnext_block .Loop_squeeze: ldr x4,[x0],#8 @@ -528,7 +535,7 @@ SHA3_squeeze: subs x3,x3,#8 bhi .Loop_squeeze - +.Lnext_block: mov x0,x19 bl KeccakF1600 mov x0,x19 @@ -567,14 +574,15 @@ SHA3_squeeze: ldp x19,x20,[sp,#16] ldp x21,x22,[sp,#32] ldp x29,x30,[sp],#48 -.inst 0xd50323bf // autiasp + AARCH64_VALIDATE_LINK_REGISTER ret .size SHA3_squeeze,.-SHA3_squeeze .type KeccakF1600_ce,%function .align 5 KeccakF1600_ce: mov x9,#24 - adr x10,iotas + adrp x10,iotas + add x10,x10,#:lo12:iotas b .Loop_ce .align 4 .Loop_ce: @@ -675,7 +683,7 @@ KeccakF1600_ce: .type KeccakF1600_cext,%function .align 5 KeccakF1600_cext: -.inst 0xd503233f // paciasp + AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-80]! add x29,sp,#0 stp d8,d9,[sp,#16] // per ABI requirement @@ -716,14 +724,14 @@ KeccakF1600_cext: ldp d12,d13,[sp,#48] ldp d14,d15,[sp,#64] ldr x29,[sp],#80 -.inst 0xd50323bf // autiasp + AARCH64_VALIDATE_LINK_REGISTER ret .size KeccakF1600_cext,.-KeccakF1600_cext .globl SHA3_absorb_cext .type SHA3_absorb_cext,%function .align 5 SHA3_absorb_cext: -.inst 0xd503233f // paciasp + AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-80]! add x29,sp,#0 stp d8,d9,[sp,#16] // per ABI requirement @@ -939,14 +947,14 @@ SHA3_absorb_cext: ldp d12,d13,[sp,#48] ldp d14,d15,[sp,#64] ldp x29,x30,[sp],#80 -.inst 0xd50323bf // autiasp + AARCH64_VALIDATE_LINK_REGISTER ret .size SHA3_absorb_cext,.-SHA3_absorb_cext .globl SHA3_squeeze_cext .type SHA3_squeeze_cext,%function .align 5 SHA3_squeeze_cext: -.inst 0xd503233f // paciasp + AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-16]! add x29,sp,#0 mov x9,x0 @@ -1002,7 +1010,7 @@ SHA3_squeeze_cext: .Lsqueeze_done_ce: ldr x29,[sp],#16 -.inst 0xd50323bf // autiasp + AARCH64_VALIDATE_LINK_REGISTER ret .size SHA3_squeeze_cext,.-SHA3_squeeze_cext .byte 75,101,99,99,97,107,45,49,54,48,48,32,97,98,115,111,114,98,32,97,110,100,32,115,113,117,101,101,122,101,32,102,111,114,32,65,82,77,118,56,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 diff --git a/deps/openssl/config/archs/linux-aarch64/asm_avx2/crypto/sha/sha1-armv8.S b/deps/openssl/config/archs/linux-aarch64/asm_avx2/crypto/sha/sha1-armv8.S index a3cb53020a00c7..365bfd164a1c85 100644 --- a/deps/openssl/config/archs/linux-aarch64/asm_avx2/crypto/sha/sha1-armv8.S +++ b/deps/openssl/config/archs/linux-aarch64/asm_avx2/crypto/sha/sha1-armv8.S @@ -1,5 +1,5 @@ +#include "arm_arch.h" #ifndef __KERNEL__ -# include "arm_arch.h" .hidden OPENSSL_armcap_P #endif @@ -10,11 +10,13 @@ .type sha1_block_data_order,%function .align 6 sha1_block_data_order: + AARCH64_VALID_CALL_TARGET adrp x16,OPENSSL_armcap_P ldr w16,[x16,#:lo12:OPENSSL_armcap_P] tst w16,#ARMV8_SHA1 b.ne .Lv8_entry + // Armv8.3-A PAuth: even though x30 is pushed to stack it is not popped later. stp x29,x30,[sp,#-96]! add x29,sp,#0 stp x19,x20,[sp,#16] @@ -1074,10 +1076,12 @@ sha1_block_data_order: .align 6 sha1_block_armv8: .Lv8_entry: + // Armv8.3-A PAuth: even though x30 is pushed to stack it is not popped later. stp x29,x30,[sp,#-16]! add x29,sp,#0 - adr x4,.Lconst + adrp x4,.Lconst + add x4,x4,#:lo12:.Lconst eor v1.16b,v1.16b,v1.16b ld1 {v0.4s},[x0],#16 ld1 {v1.s}[0],[x0] @@ -1200,6 +1204,9 @@ sha1_block_armv8: ldr x29,[sp],#16 ret .size sha1_block_armv8,.-sha1_block_armv8 + +.section .rodata + .align 6 .Lconst: .long 0x5a827999,0x5a827999,0x5a827999,0x5a827999 //K_00_19 diff --git a/deps/openssl/config/archs/linux-aarch64/asm_avx2/crypto/sha/sha256-armv8.S b/deps/openssl/config/archs/linux-aarch64/asm_avx2/crypto/sha/sha256-armv8.S index e0965b668ddc2b..385242dab979c8 100644 --- a/deps/openssl/config/archs/linux-aarch64/asm_avx2/crypto/sha/sha256-armv8.S +++ b/deps/openssl/config/archs/linux-aarch64/asm_avx2/crypto/sha/sha256-armv8.S @@ -1,4 +1,4 @@ -// Copyright 2014-2020 The OpenSSL Project Authors. All Rights Reserved. +// Copyright 2014-2025 The OpenSSL Project Authors. All Rights Reserved. // // Licensed under the Apache License 2.0 (the "License"). You may not use // this file except in compliance with the License. You can obtain a copy @@ -55,8 +55,8 @@ // $output is the last argument if it looks like a file (it has an extension) // $flavour is the first argument if it doesn't look like a file +#include "arm_arch.h" #ifndef __KERNEL__ -# include "arm_arch.h" .hidden OPENSSL_armcap_P #endif @@ -67,6 +67,7 @@ .type sha256_block_data_order,%function .align 6 sha256_block_data_order: + AARCH64_VALID_CALL_TARGET #ifndef __KERNEL__ adrp x16,OPENSSL_armcap_P ldr w16,[x16,#:lo12:OPENSSL_armcap_P] @@ -75,7 +76,7 @@ sha256_block_data_order: tst w16,#ARMV7_NEON b.ne .Lneon_entry #endif -.inst 0xd503233f // paciasp + AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-128]! add x29,sp,#0 @@ -91,7 +92,8 @@ sha256_block_data_order: ldp w24,w25,[x0,#4*4] add x2,x1,x2,lsl#6 // end of input ldp w26,w27,[x0,#6*4] - adr x30,.LK256 + adrp x30,.LK256 + add x30,x30,#:lo12:.LK256 stp x0,x2,[x29,#96] .Loop: @@ -1035,10 +1037,12 @@ sha256_block_data_order: ldp x25,x26,[x29,#64] ldp x27,x28,[x29,#80] ldp x29,x30,[sp],#128 -.inst 0xd50323bf // autiasp + AARCH64_VALIDATE_LINK_REGISTER ret .size sha256_block_data_order,.-sha256_block_data_order +.section .rodata + .align 6 .type .LK256,%object .LK256: @@ -1063,16 +1067,20 @@ sha256_block_data_order: .byte 83,72,65,50,53,54,32,98,108,111,99,107,32,116,114,97,110,115,102,111,114,109,32,102,111,114,32,65,82,77,118,56,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 .align 2 .align 2 + +.text #ifndef __KERNEL__ .type sha256_block_armv8,%function .align 6 sha256_block_armv8: .Lv8_entry: + // Armv8.3-A PAuth: even though x30 is pushed to stack it is not popped later. stp x29,x30,[sp,#-16]! add x29,sp,#0 ld1 {v0.4s,v1.4s},[x0] - adr x3,.LK256 + adrp x3,.LK256 + add x3,x3,#:lo12:.LK256 .Loop_hw: ld1 {v4.16b,v5.16b,v6.16b,v7.16b},[x1],#64 @@ -1209,12 +1217,15 @@ sha256_block_armv8: .type sha256_block_neon,%function .align 4 sha256_block_neon: + AARCH64_VALID_CALL_TARGET .Lneon_entry: + // Armv8.3-A PAuth: even though x30 is pushed to stack it is not popped later stp x29, x30, [sp, #-16]! mov x29, sp sub sp,sp,#16*4 - adr x16,.LK256 + adrp x16,.LK256 + add x16,x16,#:lo12:.LK256 add x2,x1,x2,lsl#6 // len to point at the end of inp ld1 {v0.16b},[x1], #16 diff --git a/deps/openssl/config/archs/linux-aarch64/asm_avx2/crypto/sha/sha512-armv8.S b/deps/openssl/config/archs/linux-aarch64/asm_avx2/crypto/sha/sha512-armv8.S index 79914442633bc5..29c38b0bb07540 100644 --- a/deps/openssl/config/archs/linux-aarch64/asm_avx2/crypto/sha/sha512-armv8.S +++ b/deps/openssl/config/archs/linux-aarch64/asm_avx2/crypto/sha/sha512-armv8.S @@ -1,4 +1,4 @@ -// Copyright 2014-2020 The OpenSSL Project Authors. All Rights Reserved. +// Copyright 2014-2025 The OpenSSL Project Authors. All Rights Reserved. // // Licensed under the Apache License 2.0 (the "License"). You may not use // this file except in compliance with the License. You can obtain a copy @@ -55,8 +55,8 @@ // $output is the last argument if it looks like a file (it has an extension) // $flavour is the first argument if it doesn't look like a file +#include "arm_arch.h" #ifndef __KERNEL__ -# include "arm_arch.h" .hidden OPENSSL_armcap_P #endif @@ -67,13 +67,14 @@ .type sha512_block_data_order,%function .align 6 sha512_block_data_order: + AARCH64_VALID_CALL_TARGET #ifndef __KERNEL__ adrp x16,OPENSSL_armcap_P ldr w16,[x16,#:lo12:OPENSSL_armcap_P] tst w16,#ARMV8_SHA512 b.ne .Lv8_entry #endif -.inst 0xd503233f // paciasp + AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-128]! add x29,sp,#0 @@ -89,7 +90,8 @@ sha512_block_data_order: ldp x24,x25,[x0,#4*8] add x2,x1,x2,lsl#7 // end of input ldp x26,x27,[x0,#6*8] - adr x30,.LK512 + adrp x30,.LK512 + add x30,x30,#:lo12:.LK512 stp x0,x2,[x29,#96] .Loop: @@ -1033,10 +1035,12 @@ sha512_block_data_order: ldp x25,x26,[x29,#64] ldp x27,x28,[x29,#80] ldp x29,x30,[sp],#128 -.inst 0xd50323bf // autiasp + AARCH64_VALIDATE_LINK_REGISTER ret .size sha512_block_data_order,.-sha512_block_data_order +.section .rodata + .align 6 .type .LK512,%object .LK512: @@ -1085,11 +1089,14 @@ sha512_block_data_order: .byte 83,72,65,53,49,50,32,98,108,111,99,107,32,116,114,97,110,115,102,111,114,109,32,102,111,114,32,65,82,77,118,56,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 .align 2 .align 2 + +.text #ifndef __KERNEL__ .type sha512_block_armv8,%function .align 6 sha512_block_armv8: .Lv8_entry: + // Armv8.3-A PAuth: even though x30 is pushed to stack it is not popped later stp x29,x30,[sp,#-16]! add x29,sp,#0 @@ -1097,7 +1104,8 @@ sha512_block_armv8: ld1 {v20.16b,v21.16b,v22.16b,v23.16b},[x1],#64 ld1 {v0.2d,v1.2d,v2.2d,v3.2d},[x0] // load context - adr x3,.LK512 + adrp x3,.LK512 + add x3,x3,#:lo12:.LK512 rev64 v16.16b,v16.16b rev64 v17.16b,v17.16b diff --git a/deps/openssl/config/archs/linux-aarch64/asm_avx2/crypto/sm3/sm3-armv8.S b/deps/openssl/config/archs/linux-aarch64/asm_avx2/crypto/sm3/sm3-armv8.S new file mode 100644 index 00000000000000..5c6167e6f2508e --- /dev/null +++ b/deps/openssl/config/archs/linux-aarch64/asm_avx2/crypto/sm3/sm3-armv8.S @@ -0,0 +1,508 @@ +// Copyright 2021-2025 The OpenSSL Project Authors. All Rights Reserved. +// +// Licensed under the Apache License 2.0 (the "License"). You may not use +// this file except in compliance with the License. You can obtain a copy +// in the file LICENSE in the source distribution or at +// https://www.openssl.org/source/license.html +// +// This module implements support for Armv8 SM3 instructions + +// $output is the last argument if it looks like a file (it has an extension) +// $flavour is the first argument if it doesn't look like a file +#include "arm_arch.h" +.text +.globl ossl_hwsm3_block_data_order +.type ossl_hwsm3_block_data_order,%function +.align 5 +ossl_hwsm3_block_data_order: + AARCH64_VALID_CALL_TARGET + // load state + ld1 {v5.4s,v6.4s}, [x0] + rev64 v5.4s, v5.4s + rev64 v6.4s, v6.4s + ext v5.16b, v5.16b, v5.16b, #8 + ext v6.16b, v6.16b, v6.16b, #8 + adrp x8, .Tj + add x8, x8, #:lo12:.Tj + ldp s16, s17, [x8] + +.Loop: + // load input + ld1 {v0.4s,v1.4s,v2.4s,v3.4s}, [x1], #64 + sub w2, w2, #1 + + mov v18.16b, v5.16b + mov v19.16b, v6.16b + +#ifndef __AARCH64EB__ + rev32 v0.16b, v0.16b + rev32 v1.16b, v1.16b + rev32 v2.16b, v2.16b + rev32 v3.16b, v3.16b +#endif + + ext v20.16b, v16.16b, v16.16b, #4 + // s4 = w7 | w8 | w9 | w10 + ext v4.16b, v1.16b, v2.16b, #12 + // vtmp1 = w3 | w4 | w5 | w6 + ext v22.16b, v0.16b, v1.16b, #12 + // vtmp2 = w10 | w11 | w12 | w13 + ext v23.16b, v2.16b, v3.16b, #8 +.inst 0xce63c004 //sm3partw1 v4.4s, v0.4s, v3.4s +.inst 0xce76c6e4 //sm3partw2 v4.4s, v23.4s, v22.4s + eor v22.16b, v0.16b, v1.16b +.inst 0xce5418b7 //sm3ss1 v23.4s, v5.4s, v20.4s, v6.4s + shl v21.4s, v20.4s, #1 + sri v21.4s, v20.4s, #31 +.inst 0xce5682e5 //sm3tt1a v5.4s, v23.4s, v22.4s[0] +.inst 0xce408ae6 //sm3tt2a v6.4s, v23.4s, v0.4s[0] +.inst 0xce5518b7 //sm3ss1 v23.4s, v5.4s, v21.4s, v6.4s + shl v20.4s, v21.4s, #1 + sri v20.4s, v21.4s, #31 +.inst 0xce5692e5 //sm3tt1a v5.4s, v23.4s, v22.4s[1] +.inst 0xce409ae6 //sm3tt2a v6.4s, v23.4s, v0.4s[1] +.inst 0xce5418b7 //sm3ss1 v23.4s, v5.4s, v20.4s, v6.4s + shl v21.4s, v20.4s, #1 + sri v21.4s, v20.4s, #31 +.inst 0xce56a2e5 //sm3tt1a v5.4s, v23.4s, v22.4s[2] +.inst 0xce40aae6 //sm3tt2a v6.4s, v23.4s, v0.4s[2] +.inst 0xce5518b7 //sm3ss1 v23.4s, v5.4s, v21.4s, v6.4s + shl v20.4s, v21.4s, #1 + sri v20.4s, v21.4s, #31 +.inst 0xce56b2e5 //sm3tt1a v5.4s, v23.4s, v22.4s[3] +.inst 0xce40bae6 //sm3tt2a v6.4s, v23.4s, v0.4s[3] + // s4 = w7 | w8 | w9 | w10 + ext v0.16b, v2.16b, v3.16b, #12 + // vtmp1 = w3 | w4 | w5 | w6 + ext v22.16b, v1.16b, v2.16b, #12 + // vtmp2 = w10 | w11 | w12 | w13 + ext v23.16b, v3.16b, v4.16b, #8 +.inst 0xce64c020 //sm3partw1 v0.4s, v1.4s, v4.4s +.inst 0xce76c6e0 //sm3partw2 v0.4s, v23.4s, v22.4s + eor v22.16b, v1.16b, v2.16b +.inst 0xce5418b7 //sm3ss1 v23.4s, v5.4s, v20.4s, v6.4s + shl v21.4s, v20.4s, #1 + sri v21.4s, v20.4s, #31 +.inst 0xce5682e5 //sm3tt1a v5.4s, v23.4s, v22.4s[0] +.inst 0xce418ae6 //sm3tt2a v6.4s, v23.4s, v1.4s[0] +.inst 0xce5518b7 //sm3ss1 v23.4s, v5.4s, v21.4s, v6.4s + shl v20.4s, v21.4s, #1 + sri v20.4s, v21.4s, #31 +.inst 0xce5692e5 //sm3tt1a v5.4s, v23.4s, v22.4s[1] +.inst 0xce419ae6 //sm3tt2a v6.4s, v23.4s, v1.4s[1] +.inst 0xce5418b7 //sm3ss1 v23.4s, v5.4s, v20.4s, v6.4s + shl v21.4s, v20.4s, #1 + sri v21.4s, v20.4s, #31 +.inst 0xce56a2e5 //sm3tt1a v5.4s, v23.4s, v22.4s[2] +.inst 0xce41aae6 //sm3tt2a v6.4s, v23.4s, v1.4s[2] +.inst 0xce5518b7 //sm3ss1 v23.4s, v5.4s, v21.4s, v6.4s + shl v20.4s, v21.4s, #1 + sri v20.4s, v21.4s, #31 +.inst 0xce56b2e5 //sm3tt1a v5.4s, v23.4s, v22.4s[3] +.inst 0xce41bae6 //sm3tt2a v6.4s, v23.4s, v1.4s[3] + // s4 = w7 | w8 | w9 | w10 + ext v1.16b, v3.16b, v4.16b, #12 + // vtmp1 = w3 | w4 | w5 | w6 + ext v22.16b, v2.16b, v3.16b, #12 + // vtmp2 = w10 | w11 | w12 | w13 + ext v23.16b, v4.16b, v0.16b, #8 +.inst 0xce60c041 //sm3partw1 v1.4s, v2.4s, v0.4s +.inst 0xce76c6e1 //sm3partw2 v1.4s, v23.4s, v22.4s + eor v22.16b, v2.16b, v3.16b +.inst 0xce5418b7 //sm3ss1 v23.4s, v5.4s, v20.4s, v6.4s + shl v21.4s, v20.4s, #1 + sri v21.4s, v20.4s, #31 +.inst 0xce5682e5 //sm3tt1a v5.4s, v23.4s, v22.4s[0] +.inst 0xce428ae6 //sm3tt2a v6.4s, v23.4s, v2.4s[0] +.inst 0xce5518b7 //sm3ss1 v23.4s, v5.4s, v21.4s, v6.4s + shl v20.4s, v21.4s, #1 + sri v20.4s, v21.4s, #31 +.inst 0xce5692e5 //sm3tt1a v5.4s, v23.4s, v22.4s[1] +.inst 0xce429ae6 //sm3tt2a v6.4s, v23.4s, v2.4s[1] +.inst 0xce5418b7 //sm3ss1 v23.4s, v5.4s, v20.4s, v6.4s + shl v21.4s, v20.4s, #1 + sri v21.4s, v20.4s, #31 +.inst 0xce56a2e5 //sm3tt1a v5.4s, v23.4s, v22.4s[2] +.inst 0xce42aae6 //sm3tt2a v6.4s, v23.4s, v2.4s[2] +.inst 0xce5518b7 //sm3ss1 v23.4s, v5.4s, v21.4s, v6.4s + shl v20.4s, v21.4s, #1 + sri v20.4s, v21.4s, #31 +.inst 0xce56b2e5 //sm3tt1a v5.4s, v23.4s, v22.4s[3] +.inst 0xce42bae6 //sm3tt2a v6.4s, v23.4s, v2.4s[3] + // s4 = w7 | w8 | w9 | w10 + ext v2.16b, v4.16b, v0.16b, #12 + // vtmp1 = w3 | w4 | w5 | w6 + ext v22.16b, v3.16b, v4.16b, #12 + // vtmp2 = w10 | w11 | w12 | w13 + ext v23.16b, v0.16b, v1.16b, #8 +.inst 0xce61c062 //sm3partw1 v2.4s, v3.4s, v1.4s +.inst 0xce76c6e2 //sm3partw2 v2.4s, v23.4s, v22.4s + eor v22.16b, v3.16b, v4.16b +.inst 0xce5418b7 //sm3ss1 v23.4s, v5.4s, v20.4s, v6.4s + shl v21.4s, v20.4s, #1 + sri v21.4s, v20.4s, #31 +.inst 0xce5682e5 //sm3tt1a v5.4s, v23.4s, v22.4s[0] +.inst 0xce438ae6 //sm3tt2a v6.4s, v23.4s, v3.4s[0] +.inst 0xce5518b7 //sm3ss1 v23.4s, v5.4s, v21.4s, v6.4s + shl v20.4s, v21.4s, #1 + sri v20.4s, v21.4s, #31 +.inst 0xce5692e5 //sm3tt1a v5.4s, v23.4s, v22.4s[1] +.inst 0xce439ae6 //sm3tt2a v6.4s, v23.4s, v3.4s[1] +.inst 0xce5418b7 //sm3ss1 v23.4s, v5.4s, v20.4s, v6.4s + shl v21.4s, v20.4s, #1 + sri v21.4s, v20.4s, #31 +.inst 0xce56a2e5 //sm3tt1a v5.4s, v23.4s, v22.4s[2] +.inst 0xce43aae6 //sm3tt2a v6.4s, v23.4s, v3.4s[2] +.inst 0xce5518b7 //sm3ss1 v23.4s, v5.4s, v21.4s, v6.4s + shl v20.4s, v21.4s, #1 + sri v20.4s, v21.4s, #31 +.inst 0xce56b2e5 //sm3tt1a v5.4s, v23.4s, v22.4s[3] +.inst 0xce43bae6 //sm3tt2a v6.4s, v23.4s, v3.4s[3] + ext v20.16b, v17.16b, v17.16b, #4 + // s4 = w7 | w8 | w9 | w10 + ext v3.16b, v0.16b, v1.16b, #12 + // vtmp1 = w3 | w4 | w5 | w6 + ext v22.16b, v4.16b, v0.16b, #12 + // vtmp2 = w10 | w11 | w12 | w13 + ext v23.16b, v1.16b, v2.16b, #8 +.inst 0xce62c083 //sm3partw1 v3.4s, v4.4s, v2.4s +.inst 0xce76c6e3 //sm3partw2 v3.4s, v23.4s, v22.4s + eor v22.16b, v4.16b, v0.16b +.inst 0xce5418b7 //sm3ss1 v23.4s, v5.4s, v20.4s, v6.4s + shl v21.4s, v20.4s, #1 + sri v21.4s, v20.4s, #31 +.inst 0xce5686e5 //sm3tt1b v5.4s, v23.4s, v22.4s[0] +.inst 0xce448ee6 //sm3tt2b v6.4s, v23.4s, v4.4s[0] +.inst 0xce5518b7 //sm3ss1 v23.4s, v5.4s, v21.4s, v6.4s + shl v20.4s, v21.4s, #1 + sri v20.4s, v21.4s, #31 +.inst 0xce5696e5 //sm3tt1b v5.4s, v23.4s, v22.4s[1] +.inst 0xce449ee6 //sm3tt2b v6.4s, v23.4s, v4.4s[1] +.inst 0xce5418b7 //sm3ss1 v23.4s, v5.4s, v20.4s, v6.4s + shl v21.4s, v20.4s, #1 + sri v21.4s, v20.4s, #31 +.inst 0xce56a6e5 //sm3tt1b v5.4s, v23.4s, v22.4s[2] +.inst 0xce44aee6 //sm3tt2b v6.4s, v23.4s, v4.4s[2] +.inst 0xce5518b7 //sm3ss1 v23.4s, v5.4s, v21.4s, v6.4s + shl v20.4s, v21.4s, #1 + sri v20.4s, v21.4s, #31 +.inst 0xce56b6e5 //sm3tt1b v5.4s, v23.4s, v22.4s[3] +.inst 0xce44bee6 //sm3tt2b v6.4s, v23.4s, v4.4s[3] + // s4 = w7 | w8 | w9 | w10 + ext v4.16b, v1.16b, v2.16b, #12 + // vtmp1 = w3 | w4 | w5 | w6 + ext v22.16b, v0.16b, v1.16b, #12 + // vtmp2 = w10 | w11 | w12 | w13 + ext v23.16b, v2.16b, v3.16b, #8 +.inst 0xce63c004 //sm3partw1 v4.4s, v0.4s, v3.4s +.inst 0xce76c6e4 //sm3partw2 v4.4s, v23.4s, v22.4s + eor v22.16b, v0.16b, v1.16b +.inst 0xce5418b7 //sm3ss1 v23.4s, v5.4s, v20.4s, v6.4s + shl v21.4s, v20.4s, #1 + sri v21.4s, v20.4s, #31 +.inst 0xce5686e5 //sm3tt1b v5.4s, v23.4s, v22.4s[0] +.inst 0xce408ee6 //sm3tt2b v6.4s, v23.4s, v0.4s[0] +.inst 0xce5518b7 //sm3ss1 v23.4s, v5.4s, v21.4s, v6.4s + shl v20.4s, v21.4s, #1 + sri v20.4s, v21.4s, #31 +.inst 0xce5696e5 //sm3tt1b v5.4s, v23.4s, v22.4s[1] +.inst 0xce409ee6 //sm3tt2b v6.4s, v23.4s, v0.4s[1] +.inst 0xce5418b7 //sm3ss1 v23.4s, v5.4s, v20.4s, v6.4s + shl v21.4s, v20.4s, #1 + sri v21.4s, v20.4s, #31 +.inst 0xce56a6e5 //sm3tt1b v5.4s, v23.4s, v22.4s[2] +.inst 0xce40aee6 //sm3tt2b v6.4s, v23.4s, v0.4s[2] +.inst 0xce5518b7 //sm3ss1 v23.4s, v5.4s, v21.4s, v6.4s + shl v20.4s, v21.4s, #1 + sri v20.4s, v21.4s, #31 +.inst 0xce56b6e5 //sm3tt1b v5.4s, v23.4s, v22.4s[3] +.inst 0xce40bee6 //sm3tt2b v6.4s, v23.4s, v0.4s[3] + // s4 = w7 | w8 | w9 | w10 + ext v0.16b, v2.16b, v3.16b, #12 + // vtmp1 = w3 | w4 | w5 | w6 + ext v22.16b, v1.16b, v2.16b, #12 + // vtmp2 = w10 | w11 | w12 | w13 + ext v23.16b, v3.16b, v4.16b, #8 +.inst 0xce64c020 //sm3partw1 v0.4s, v1.4s, v4.4s +.inst 0xce76c6e0 //sm3partw2 v0.4s, v23.4s, v22.4s + eor v22.16b, v1.16b, v2.16b +.inst 0xce5418b7 //sm3ss1 v23.4s, v5.4s, v20.4s, v6.4s + shl v21.4s, v20.4s, #1 + sri v21.4s, v20.4s, #31 +.inst 0xce5686e5 //sm3tt1b v5.4s, v23.4s, v22.4s[0] +.inst 0xce418ee6 //sm3tt2b v6.4s, v23.4s, v1.4s[0] +.inst 0xce5518b7 //sm3ss1 v23.4s, v5.4s, v21.4s, v6.4s + shl v20.4s, v21.4s, #1 + sri v20.4s, v21.4s, #31 +.inst 0xce5696e5 //sm3tt1b v5.4s, v23.4s, v22.4s[1] +.inst 0xce419ee6 //sm3tt2b v6.4s, v23.4s, v1.4s[1] +.inst 0xce5418b7 //sm3ss1 v23.4s, v5.4s, v20.4s, v6.4s + shl v21.4s, v20.4s, #1 + sri v21.4s, v20.4s, #31 +.inst 0xce56a6e5 //sm3tt1b v5.4s, v23.4s, v22.4s[2] +.inst 0xce41aee6 //sm3tt2b v6.4s, v23.4s, v1.4s[2] +.inst 0xce5518b7 //sm3ss1 v23.4s, v5.4s, v21.4s, v6.4s + shl v20.4s, v21.4s, #1 + sri v20.4s, v21.4s, #31 +.inst 0xce56b6e5 //sm3tt1b v5.4s, v23.4s, v22.4s[3] +.inst 0xce41bee6 //sm3tt2b v6.4s, v23.4s, v1.4s[3] + // s4 = w7 | w8 | w9 | w10 + ext v1.16b, v3.16b, v4.16b, #12 + // vtmp1 = w3 | w4 | w5 | w6 + ext v22.16b, v2.16b, v3.16b, #12 + // vtmp2 = w10 | w11 | w12 | w13 + ext v23.16b, v4.16b, v0.16b, #8 +.inst 0xce60c041 //sm3partw1 v1.4s, v2.4s, v0.4s +.inst 0xce76c6e1 //sm3partw2 v1.4s, v23.4s, v22.4s + eor v22.16b, v2.16b, v3.16b +.inst 0xce5418b7 //sm3ss1 v23.4s, v5.4s, v20.4s, v6.4s + shl v21.4s, v20.4s, #1 + sri v21.4s, v20.4s, #31 +.inst 0xce5686e5 //sm3tt1b v5.4s, v23.4s, v22.4s[0] +.inst 0xce428ee6 //sm3tt2b v6.4s, v23.4s, v2.4s[0] +.inst 0xce5518b7 //sm3ss1 v23.4s, v5.4s, v21.4s, v6.4s + shl v20.4s, v21.4s, #1 + sri v20.4s, v21.4s, #31 +.inst 0xce5696e5 //sm3tt1b v5.4s, v23.4s, v22.4s[1] +.inst 0xce429ee6 //sm3tt2b v6.4s, v23.4s, v2.4s[1] +.inst 0xce5418b7 //sm3ss1 v23.4s, v5.4s, v20.4s, v6.4s + shl v21.4s, v20.4s, #1 + sri v21.4s, v20.4s, #31 +.inst 0xce56a6e5 //sm3tt1b v5.4s, v23.4s, v22.4s[2] +.inst 0xce42aee6 //sm3tt2b v6.4s, v23.4s, v2.4s[2] +.inst 0xce5518b7 //sm3ss1 v23.4s, v5.4s, v21.4s, v6.4s + shl v20.4s, v21.4s, #1 + sri v20.4s, v21.4s, #31 +.inst 0xce56b6e5 //sm3tt1b v5.4s, v23.4s, v22.4s[3] +.inst 0xce42bee6 //sm3tt2b v6.4s, v23.4s, v2.4s[3] + // s4 = w7 | w8 | w9 | w10 + ext v2.16b, v4.16b, v0.16b, #12 + // vtmp1 = w3 | w4 | w5 | w6 + ext v22.16b, v3.16b, v4.16b, #12 + // vtmp2 = w10 | w11 | w12 | w13 + ext v23.16b, v0.16b, v1.16b, #8 +.inst 0xce61c062 //sm3partw1 v2.4s, v3.4s, v1.4s +.inst 0xce76c6e2 //sm3partw2 v2.4s, v23.4s, v22.4s + eor v22.16b, v3.16b, v4.16b +.inst 0xce5418b7 //sm3ss1 v23.4s, v5.4s, v20.4s, v6.4s + shl v21.4s, v20.4s, #1 + sri v21.4s, v20.4s, #31 +.inst 0xce5686e5 //sm3tt1b v5.4s, v23.4s, v22.4s[0] +.inst 0xce438ee6 //sm3tt2b v6.4s, v23.4s, v3.4s[0] +.inst 0xce5518b7 //sm3ss1 v23.4s, v5.4s, v21.4s, v6.4s + shl v20.4s, v21.4s, #1 + sri v20.4s, v21.4s, #31 +.inst 0xce5696e5 //sm3tt1b v5.4s, v23.4s, v22.4s[1] +.inst 0xce439ee6 //sm3tt2b v6.4s, v23.4s, v3.4s[1] +.inst 0xce5418b7 //sm3ss1 v23.4s, v5.4s, v20.4s, v6.4s + shl v21.4s, v20.4s, #1 + sri v21.4s, v20.4s, #31 +.inst 0xce56a6e5 //sm3tt1b v5.4s, v23.4s, v22.4s[2] +.inst 0xce43aee6 //sm3tt2b v6.4s, v23.4s, v3.4s[2] +.inst 0xce5518b7 //sm3ss1 v23.4s, v5.4s, v21.4s, v6.4s + shl v20.4s, v21.4s, #1 + sri v20.4s, v21.4s, #31 +.inst 0xce56b6e5 //sm3tt1b v5.4s, v23.4s, v22.4s[3] +.inst 0xce43bee6 //sm3tt2b v6.4s, v23.4s, v3.4s[3] + // s4 = w7 | w8 | w9 | w10 + ext v3.16b, v0.16b, v1.16b, #12 + // vtmp1 = w3 | w4 | w5 | w6 + ext v22.16b, v4.16b, v0.16b, #12 + // vtmp2 = w10 | w11 | w12 | w13 + ext v23.16b, v1.16b, v2.16b, #8 +.inst 0xce62c083 //sm3partw1 v3.4s, v4.4s, v2.4s +.inst 0xce76c6e3 //sm3partw2 v3.4s, v23.4s, v22.4s + eor v22.16b, v4.16b, v0.16b +.inst 0xce5418b7 //sm3ss1 v23.4s, v5.4s, v20.4s, v6.4s + shl v21.4s, v20.4s, #1 + sri v21.4s, v20.4s, #31 +.inst 0xce5686e5 //sm3tt1b v5.4s, v23.4s, v22.4s[0] +.inst 0xce448ee6 //sm3tt2b v6.4s, v23.4s, v4.4s[0] +.inst 0xce5518b7 //sm3ss1 v23.4s, v5.4s, v21.4s, v6.4s + shl v20.4s, v21.4s, #1 + sri v20.4s, v21.4s, #31 +.inst 0xce5696e5 //sm3tt1b v5.4s, v23.4s, v22.4s[1] +.inst 0xce449ee6 //sm3tt2b v6.4s, v23.4s, v4.4s[1] +.inst 0xce5418b7 //sm3ss1 v23.4s, v5.4s, v20.4s, v6.4s + shl v21.4s, v20.4s, #1 + sri v21.4s, v20.4s, #31 +.inst 0xce56a6e5 //sm3tt1b v5.4s, v23.4s, v22.4s[2] +.inst 0xce44aee6 //sm3tt2b v6.4s, v23.4s, v4.4s[2] +.inst 0xce5518b7 //sm3ss1 v23.4s, v5.4s, v21.4s, v6.4s + shl v20.4s, v21.4s, #1 + sri v20.4s, v21.4s, #31 +.inst 0xce56b6e5 //sm3tt1b v5.4s, v23.4s, v22.4s[3] +.inst 0xce44bee6 //sm3tt2b v6.4s, v23.4s, v4.4s[3] + // s4 = w7 | w8 | w9 | w10 + ext v4.16b, v1.16b, v2.16b, #12 + // vtmp1 = w3 | w4 | w5 | w6 + ext v22.16b, v0.16b, v1.16b, #12 + // vtmp2 = w10 | w11 | w12 | w13 + ext v23.16b, v2.16b, v3.16b, #8 +.inst 0xce63c004 //sm3partw1 v4.4s, v0.4s, v3.4s +.inst 0xce76c6e4 //sm3partw2 v4.4s, v23.4s, v22.4s + eor v22.16b, v0.16b, v1.16b +.inst 0xce5418b7 //sm3ss1 v23.4s, v5.4s, v20.4s, v6.4s + shl v21.4s, v20.4s, #1 + sri v21.4s, v20.4s, #31 +.inst 0xce5686e5 //sm3tt1b v5.4s, v23.4s, v22.4s[0] +.inst 0xce408ee6 //sm3tt2b v6.4s, v23.4s, v0.4s[0] +.inst 0xce5518b7 //sm3ss1 v23.4s, v5.4s, v21.4s, v6.4s + shl v20.4s, v21.4s, #1 + sri v20.4s, v21.4s, #31 +.inst 0xce5696e5 //sm3tt1b v5.4s, v23.4s, v22.4s[1] +.inst 0xce409ee6 //sm3tt2b v6.4s, v23.4s, v0.4s[1] +.inst 0xce5418b7 //sm3ss1 v23.4s, v5.4s, v20.4s, v6.4s + shl v21.4s, v20.4s, #1 + sri v21.4s, v20.4s, #31 +.inst 0xce56a6e5 //sm3tt1b v5.4s, v23.4s, v22.4s[2] +.inst 0xce40aee6 //sm3tt2b v6.4s, v23.4s, v0.4s[2] +.inst 0xce5518b7 //sm3ss1 v23.4s, v5.4s, v21.4s, v6.4s + shl v20.4s, v21.4s, #1 + sri v20.4s, v21.4s, #31 +.inst 0xce56b6e5 //sm3tt1b v5.4s, v23.4s, v22.4s[3] +.inst 0xce40bee6 //sm3tt2b v6.4s, v23.4s, v0.4s[3] + // s4 = w7 | w8 | w9 | w10 + ext v0.16b, v2.16b, v3.16b, #12 + // vtmp1 = w3 | w4 | w5 | w6 + ext v22.16b, v1.16b, v2.16b, #12 + // vtmp2 = w10 | w11 | w12 | w13 + ext v23.16b, v3.16b, v4.16b, #8 +.inst 0xce64c020 //sm3partw1 v0.4s, v1.4s, v4.4s +.inst 0xce76c6e0 //sm3partw2 v0.4s, v23.4s, v22.4s + eor v22.16b, v1.16b, v2.16b +.inst 0xce5418b7 //sm3ss1 v23.4s, v5.4s, v20.4s, v6.4s + shl v21.4s, v20.4s, #1 + sri v21.4s, v20.4s, #31 +.inst 0xce5686e5 //sm3tt1b v5.4s, v23.4s, v22.4s[0] +.inst 0xce418ee6 //sm3tt2b v6.4s, v23.4s, v1.4s[0] +.inst 0xce5518b7 //sm3ss1 v23.4s, v5.4s, v21.4s, v6.4s + shl v20.4s, v21.4s, #1 + sri v20.4s, v21.4s, #31 +.inst 0xce5696e5 //sm3tt1b v5.4s, v23.4s, v22.4s[1] +.inst 0xce419ee6 //sm3tt2b v6.4s, v23.4s, v1.4s[1] +.inst 0xce5418b7 //sm3ss1 v23.4s, v5.4s, v20.4s, v6.4s + shl v21.4s, v20.4s, #1 + sri v21.4s, v20.4s, #31 +.inst 0xce56a6e5 //sm3tt1b v5.4s, v23.4s, v22.4s[2] +.inst 0xce41aee6 //sm3tt2b v6.4s, v23.4s, v1.4s[2] +.inst 0xce5518b7 //sm3ss1 v23.4s, v5.4s, v21.4s, v6.4s + shl v20.4s, v21.4s, #1 + sri v20.4s, v21.4s, #31 +.inst 0xce56b6e5 //sm3tt1b v5.4s, v23.4s, v22.4s[3] +.inst 0xce41bee6 //sm3tt2b v6.4s, v23.4s, v1.4s[3] + // s4 = w7 | w8 | w9 | w10 + ext v1.16b, v3.16b, v4.16b, #12 + // vtmp1 = w3 | w4 | w5 | w6 + ext v22.16b, v2.16b, v3.16b, #12 + // vtmp2 = w10 | w11 | w12 | w13 + ext v23.16b, v4.16b, v0.16b, #8 +.inst 0xce60c041 //sm3partw1 v1.4s, v2.4s, v0.4s +.inst 0xce76c6e1 //sm3partw2 v1.4s, v23.4s, v22.4s + eor v22.16b, v2.16b, v3.16b +.inst 0xce5418b7 //sm3ss1 v23.4s, v5.4s, v20.4s, v6.4s + shl v21.4s, v20.4s, #1 + sri v21.4s, v20.4s, #31 +.inst 0xce5686e5 //sm3tt1b v5.4s, v23.4s, v22.4s[0] +.inst 0xce428ee6 //sm3tt2b v6.4s, v23.4s, v2.4s[0] +.inst 0xce5518b7 //sm3ss1 v23.4s, v5.4s, v21.4s, v6.4s + shl v20.4s, v21.4s, #1 + sri v20.4s, v21.4s, #31 +.inst 0xce5696e5 //sm3tt1b v5.4s, v23.4s, v22.4s[1] +.inst 0xce429ee6 //sm3tt2b v6.4s, v23.4s, v2.4s[1] +.inst 0xce5418b7 //sm3ss1 v23.4s, v5.4s, v20.4s, v6.4s + shl v21.4s, v20.4s, #1 + sri v21.4s, v20.4s, #31 +.inst 0xce56a6e5 //sm3tt1b v5.4s, v23.4s, v22.4s[2] +.inst 0xce42aee6 //sm3tt2b v6.4s, v23.4s, v2.4s[2] +.inst 0xce5518b7 //sm3ss1 v23.4s, v5.4s, v21.4s, v6.4s + shl v20.4s, v21.4s, #1 + sri v20.4s, v21.4s, #31 +.inst 0xce56b6e5 //sm3tt1b v5.4s, v23.4s, v22.4s[3] +.inst 0xce42bee6 //sm3tt2b v6.4s, v23.4s, v2.4s[3] + eor v22.16b, v3.16b, v4.16b +.inst 0xce5418b7 //sm3ss1 v23.4s, v5.4s, v20.4s, v6.4s + shl v21.4s, v20.4s, #1 + sri v21.4s, v20.4s, #31 +.inst 0xce5686e5 //sm3tt1b v5.4s, v23.4s, v22.4s[0] +.inst 0xce438ee6 //sm3tt2b v6.4s, v23.4s, v3.4s[0] +.inst 0xce5518b7 //sm3ss1 v23.4s, v5.4s, v21.4s, v6.4s + shl v20.4s, v21.4s, #1 + sri v20.4s, v21.4s, #31 +.inst 0xce5696e5 //sm3tt1b v5.4s, v23.4s, v22.4s[1] +.inst 0xce439ee6 //sm3tt2b v6.4s, v23.4s, v3.4s[1] +.inst 0xce5418b7 //sm3ss1 v23.4s, v5.4s, v20.4s, v6.4s + shl v21.4s, v20.4s, #1 + sri v21.4s, v20.4s, #31 +.inst 0xce56a6e5 //sm3tt1b v5.4s, v23.4s, v22.4s[2] +.inst 0xce43aee6 //sm3tt2b v6.4s, v23.4s, v3.4s[2] +.inst 0xce5518b7 //sm3ss1 v23.4s, v5.4s, v21.4s, v6.4s + shl v20.4s, v21.4s, #1 + sri v20.4s, v21.4s, #31 +.inst 0xce56b6e5 //sm3tt1b v5.4s, v23.4s, v22.4s[3] +.inst 0xce43bee6 //sm3tt2b v6.4s, v23.4s, v3.4s[3] + eor v22.16b, v4.16b, v0.16b +.inst 0xce5418b7 //sm3ss1 v23.4s, v5.4s, v20.4s, v6.4s + shl v21.4s, v20.4s, #1 + sri v21.4s, v20.4s, #31 +.inst 0xce5686e5 //sm3tt1b v5.4s, v23.4s, v22.4s[0] +.inst 0xce448ee6 //sm3tt2b v6.4s, v23.4s, v4.4s[0] +.inst 0xce5518b7 //sm3ss1 v23.4s, v5.4s, v21.4s, v6.4s + shl v20.4s, v21.4s, #1 + sri v20.4s, v21.4s, #31 +.inst 0xce5696e5 //sm3tt1b v5.4s, v23.4s, v22.4s[1] +.inst 0xce449ee6 //sm3tt2b v6.4s, v23.4s, v4.4s[1] +.inst 0xce5418b7 //sm3ss1 v23.4s, v5.4s, v20.4s, v6.4s + shl v21.4s, v20.4s, #1 + sri v21.4s, v20.4s, #31 +.inst 0xce56a6e5 //sm3tt1b v5.4s, v23.4s, v22.4s[2] +.inst 0xce44aee6 //sm3tt2b v6.4s, v23.4s, v4.4s[2] +.inst 0xce5518b7 //sm3ss1 v23.4s, v5.4s, v21.4s, v6.4s + shl v20.4s, v21.4s, #1 + sri v20.4s, v21.4s, #31 +.inst 0xce56b6e5 //sm3tt1b v5.4s, v23.4s, v22.4s[3] +.inst 0xce44bee6 //sm3tt2b v6.4s, v23.4s, v4.4s[3] + eor v22.16b, v0.16b, v1.16b +.inst 0xce5418b7 //sm3ss1 v23.4s, v5.4s, v20.4s, v6.4s + shl v21.4s, v20.4s, #1 + sri v21.4s, v20.4s, #31 +.inst 0xce5686e5 //sm3tt1b v5.4s, v23.4s, v22.4s[0] +.inst 0xce408ee6 //sm3tt2b v6.4s, v23.4s, v0.4s[0] +.inst 0xce5518b7 //sm3ss1 v23.4s, v5.4s, v21.4s, v6.4s + shl v20.4s, v21.4s, #1 + sri v20.4s, v21.4s, #31 +.inst 0xce5696e5 //sm3tt1b v5.4s, v23.4s, v22.4s[1] +.inst 0xce409ee6 //sm3tt2b v6.4s, v23.4s, v0.4s[1] +.inst 0xce5418b7 //sm3ss1 v23.4s, v5.4s, v20.4s, v6.4s + shl v21.4s, v20.4s, #1 + sri v21.4s, v20.4s, #31 +.inst 0xce56a6e5 //sm3tt1b v5.4s, v23.4s, v22.4s[2] +.inst 0xce40aee6 //sm3tt2b v6.4s, v23.4s, v0.4s[2] +.inst 0xce5518b7 //sm3ss1 v23.4s, v5.4s, v21.4s, v6.4s + shl v20.4s, v21.4s, #1 + sri v20.4s, v21.4s, #31 +.inst 0xce56b6e5 //sm3tt1b v5.4s, v23.4s, v22.4s[3] +.inst 0xce40bee6 //sm3tt2b v6.4s, v23.4s, v0.4s[3] + eor v5.16b, v5.16b, v18.16b + eor v6.16b, v6.16b, v19.16b + + // any remained blocks? + cbnz w2, .Loop + + // save state + rev64 v5.4s, v5.4s + rev64 v6.4s, v6.4s + ext v5.16b, v5.16b, v5.16b, #8 + ext v6.16b, v6.16b, v6.16b, #8 + st1 {v5.4s,v6.4s}, [x0] + ret +.size ossl_hwsm3_block_data_order,.-ossl_hwsm3_block_data_order +.section .rodata + +.type _sm3_consts,%object +.align 3 +_sm3_consts: +.Tj: +.word 0x79cc4519, 0x9d8a7a87 +.size _sm3_consts,.-_sm3_consts +.previous diff --git a/deps/openssl/config/archs/linux-aarch64/asm_avx2/crypto/sm4/sm4-armv8.S b/deps/openssl/config/archs/linux-aarch64/asm_avx2/crypto/sm4/sm4-armv8.S new file mode 100644 index 00000000000000..0135313075e4f8 --- /dev/null +++ b/deps/openssl/config/archs/linux-aarch64/asm_avx2/crypto/sm4/sm4-armv8.S @@ -0,0 +1,1092 @@ +// Copyright 2022-2025 The OpenSSL Project Authors. All Rights Reserved. +// +// Licensed under the Apache License 2.0 (the "License"). You may not use +// this file except in compliance with the License. You can obtain a copy +// in the file LICENSE in the source distribution or at +// https://www.openssl.org/source/license.html + +// +// This module implements support for SM4 hw support on aarch64 +// Oct 2021 +// + +// $output is the last argument if it looks like a file (it has an extension) +// $flavour is the first argument if it doesn't look like a file +#include "arm_arch.h" +.arch armv8-a+crypto +.text + +.section .rodata +.type _sm4_v8_consts,%object +.align 6 +_sm4_v8_consts: +.Lck: +.long 0x00070E15, 0x1C232A31, 0x383F464D, 0x545B6269 +.long 0x70777E85, 0x8C939AA1, 0xA8AFB6BD, 0xC4CBD2D9 +.long 0xE0E7EEF5, 0xFC030A11, 0x181F262D, 0x343B4249 +.long 0x50575E65, 0x6C737A81, 0x888F969D, 0xA4ABB2B9 +.long 0xC0C7CED5, 0xDCE3EAF1, 0xF8FF060D, 0x141B2229 +.long 0x30373E45, 0x4C535A61, 0x686F767D, 0x848B9299 +.long 0xA0A7AEB5, 0xBCC3CAD1, 0xD8DFE6ED, 0xF4FB0209 +.long 0x10171E25, 0x2C333A41, 0x484F565D, 0x646B7279 +.Lfk: +.long 0xa3b1bac6, 0x56aa3350, 0x677d9197, 0xb27022dc +.size _sm4_v8_consts,.-_sm4_v8_consts +.previous + +.globl sm4_v8_set_encrypt_key +.type sm4_v8_set_encrypt_key,%function +.align 5 +sm4_v8_set_encrypt_key: + AARCH64_VALID_CALL_TARGET + ld1 {v0.4s},[x0] + adrp x2,.Lfk + add x2,x2,#:lo12:.Lfk + ld1 {v24.4s},[x2] + adrp x2,.Lck + add x2,x2,#:lo12:.Lck + ld1 {v16.4s,v17.4s,v18.4s,v19.4s},[x2],64 +#ifndef __AARCH64EB__ + rev32 v0.16b,v0.16b +#endif + ld1 {v20.4s,v21.4s,v22.4s,v23.4s},[x2] + eor v0.16b,v0.16b,v24.16b; +.inst 0xce70c800 //sm4ekey v0.4S,v0.4S,v16.4S +.inst 0xce71c801 //sm4ekey v1.4S,v0.4S,v17.4S +.inst 0xce72c822 //sm4ekey v2.4S,v1.4S,v18.4S +.inst 0xce73c843 //sm4ekey v3.4S,v2.4S,v19.4S +.inst 0xce74c864 //sm4ekey v4.4S,v3.4S,v20.4S + st1 {v0.4s,v1.4s,v2.4s,v3.4s},[x1],64 +.inst 0xce75c885 //sm4ekey v5.4S,v4.4S,v21.4S +.inst 0xce76c8a6 //sm4ekey v6.4S,v5.4S,v22.4S +.inst 0xce77c8c7 //sm4ekey v7.4S,v6.4S,v23.4S + st1 {v4.4s,v5.4s,v6.4s,v7.4s},[x1] + ret +.size sm4_v8_set_encrypt_key,.-sm4_v8_set_encrypt_key +.globl sm4_v8_set_decrypt_key +.type sm4_v8_set_decrypt_key,%function +.align 5 +sm4_v8_set_decrypt_key: + AARCH64_VALID_CALL_TARGET + ld1 {v7.4s},[x0] + adrp x2,.Lfk + add x2,x2,#:lo12:.Lfk + ld1 {v24.4s},[x2] + adrp x2,.Lck + add x2,x2,#:lo12:.Lck + ld1 {v16.4s,v17.4s,v18.4s,v19.4s},[x2],64 +#ifndef __AARCH64EB__ + rev32 v7.16b,v7.16b +#endif + ld1 {v20.4s,v21.4s,v22.4s,v23.4s},[x2] + eor v7.16b, v7.16b,v24.16b; +.inst 0xce70c8e7 //sm4ekey v7.4S,v7.4S,v16.4S +.inst 0xce71c8e6 //sm4ekey v6.4S,v7.4S,v17.4S +.inst 0xce72c8c5 //sm4ekey v5.4S,v6.4S,v18.4S + rev64 v7.4s,v7.4s + rev64 v6.4s,v6.4s + ext v7.16b,v7.16b,v7.16b,#8 + ext v6.16b,v6.16b,v6.16b,#8 +.inst 0xce73c8a4 //sm4ekey v4.4S,v5.4S,v19.4S +.inst 0xce74c883 //sm4ekey v3.4S,v4.4S,v20.4S + rev64 v5.4s,v5.4s + rev64 v4.4s,v4.4s + ext v5.16b,v5.16b,v5.16b,#8 + ext v4.16b,v4.16b,v4.16b,#8 +.inst 0xce75c862 //sm4ekey v2.4S,v3.4S,v21.4S +.inst 0xce76c841 //sm4ekey v1.4S,v2.4S,v22.4S + rev64 v3.4s,v3.4s + rev64 v2.4s,v2.4s + ext v3.16b,v3.16b,v3.16b,#8 + ext v2.16b,v2.16b,v2.16b,#8 +.inst 0xce77c820 //sm4ekey v0.4S,v1.4S,v23.4S + rev64 v1.4s, v1.4s + rev64 v0.4s, v0.4s + ext v1.16b,v1.16b,v1.16b,#8 + ext v0.16b,v0.16b,v0.16b,#8 + st1 {v0.4s,v1.4s,v2.4s,v3.4s},[x1],64 + st1 {v4.4s,v5.4s,v6.4s,v7.4s},[x1] + ret +.size sm4_v8_set_decrypt_key,.-sm4_v8_set_decrypt_key +.globl sm4_v8_encrypt +.type sm4_v8_encrypt,%function +.align 5 +sm4_v8_encrypt: + AARCH64_VALID_CALL_TARGET + ld1 {v16.4s},[x0] + ld1 {v0.4s,v1.4s,v2.4s,v3.4s},[x2],64 + ld1 {v4.4s,v5.4s,v6.4s,v7.4s},[x2] +#ifndef __AARCH64EB__ + rev32 v16.16b,v16.16b +#endif +.inst 0xcec08410 //sm4e v16.4s,v0.4s +.inst 0xcec08430 //sm4e v16.4s,v1.4s +.inst 0xcec08450 //sm4e v16.4s,v2.4s +.inst 0xcec08470 //sm4e v16.4s,v3.4s +.inst 0xcec08490 //sm4e v16.4s,v4.4s +.inst 0xcec084b0 //sm4e v16.4s,v5.4s +.inst 0xcec084d0 //sm4e v16.4s,v6.4s +.inst 0xcec084f0 //sm4e v16.4s,v7.4s + rev64 v16.4S,v16.4S + ext v16.16b,v16.16b,v16.16b,#8 +#ifndef __AARCH64EB__ + rev32 v16.16b,v16.16b +#endif + st1 {v16.4s},[x1] + ret +.size sm4_v8_encrypt,.-sm4_v8_encrypt +.globl sm4_v8_decrypt +.type sm4_v8_decrypt,%function +.align 5 +sm4_v8_decrypt: + AARCH64_VALID_CALL_TARGET + ld1 {v16.4s},[x0] + ld1 {v0.4s,v1.4s,v2.4s,v3.4s},[x2],64 + ld1 {v4.4s,v5.4s,v6.4s,v7.4s},[x2] +#ifndef __AARCH64EB__ + rev32 v16.16b,v16.16b +#endif +.inst 0xcec08410 //sm4e v16.4s,v0.4s +.inst 0xcec08430 //sm4e v16.4s,v1.4s +.inst 0xcec08450 //sm4e v16.4s,v2.4s +.inst 0xcec08470 //sm4e v16.4s,v3.4s +.inst 0xcec08490 //sm4e v16.4s,v4.4s +.inst 0xcec084b0 //sm4e v16.4s,v5.4s +.inst 0xcec084d0 //sm4e v16.4s,v6.4s +.inst 0xcec084f0 //sm4e v16.4s,v7.4s + rev64 v16.4S,v16.4S + ext v16.16b,v16.16b,v16.16b,#8 +#ifndef __AARCH64EB__ + rev32 v16.16b,v16.16b +#endif + st1 {v16.4s},[x1] + ret +.size sm4_v8_decrypt,.-sm4_v8_decrypt +.globl sm4_v8_ecb_encrypt +.type sm4_v8_ecb_encrypt,%function +.align 5 +sm4_v8_ecb_encrypt: + AARCH64_VALID_CALL_TARGET + ld1 {v0.4s,v1.4s,v2.4s,v3.4s},[x3],#64 + ld1 {v4.4s,v5.4s,v6.4s,v7.4s},[x3] +1: + cmp x2,#64 + b.lt 1f + ld1 {v16.4s,v17.4s,v18.4s,v19.4s},[x0],#64 + cmp x2,#128 + b.lt 2f + ld1 {v20.4s,v21.4s,v22.4s,v23.4s},[x0],#64 + // 8 blocks +#ifndef __AARCH64EB__ + rev32 v16.16b,v16.16b +#endif +#ifndef __AARCH64EB__ + rev32 v17.16b,v17.16b +#endif +#ifndef __AARCH64EB__ + rev32 v18.16b,v18.16b +#endif +#ifndef __AARCH64EB__ + rev32 v19.16b,v19.16b +#endif +#ifndef __AARCH64EB__ + rev32 v20.16b,v20.16b +#endif +#ifndef __AARCH64EB__ + rev32 v21.16b,v21.16b +#endif +#ifndef __AARCH64EB__ + rev32 v22.16b,v22.16b +#endif +#ifndef __AARCH64EB__ + rev32 v23.16b,v23.16b +#endif +.inst 0xcec08410 //sm4e v16.4s,v0.4s +.inst 0xcec08411 //sm4e v17.4s,v0.4s +.inst 0xcec08412 //sm4e v18.4s,v0.4s +.inst 0xcec08413 //sm4e v19.4s,v0.4s + +.inst 0xcec08430 //sm4e v16.4s,v1.4s +.inst 0xcec08431 //sm4e v17.4s,v1.4s +.inst 0xcec08432 //sm4e v18.4s,v1.4s +.inst 0xcec08433 //sm4e v19.4s,v1.4s + +.inst 0xcec08450 //sm4e v16.4s,v2.4s +.inst 0xcec08451 //sm4e v17.4s,v2.4s +.inst 0xcec08452 //sm4e v18.4s,v2.4s +.inst 0xcec08453 //sm4e v19.4s,v2.4s + +.inst 0xcec08470 //sm4e v16.4s,v3.4s +.inst 0xcec08471 //sm4e v17.4s,v3.4s +.inst 0xcec08472 //sm4e v18.4s,v3.4s +.inst 0xcec08473 //sm4e v19.4s,v3.4s + +.inst 0xcec08490 //sm4e v16.4s,v4.4s +.inst 0xcec08491 //sm4e v17.4s,v4.4s +.inst 0xcec08492 //sm4e v18.4s,v4.4s +.inst 0xcec08493 //sm4e v19.4s,v4.4s + +.inst 0xcec084b0 //sm4e v16.4s,v5.4s +.inst 0xcec084b1 //sm4e v17.4s,v5.4s +.inst 0xcec084b2 //sm4e v18.4s,v5.4s +.inst 0xcec084b3 //sm4e v19.4s,v5.4s + +.inst 0xcec084d0 //sm4e v16.4s,v6.4s +.inst 0xcec084d1 //sm4e v17.4s,v6.4s +.inst 0xcec084d2 //sm4e v18.4s,v6.4s +.inst 0xcec084d3 //sm4e v19.4s,v6.4s + +.inst 0xcec084f0 //sm4e v16.4s,v7.4s + rev64 v16.4S,v16.4S +.inst 0xcec084f1 //sm4e v17.4s,v7.4s + ext v16.16b,v16.16b,v16.16b,#8 + rev64 v17.4S,v17.4S +.inst 0xcec084f2 //sm4e v18.4s,v7.4s + ext v17.16b,v17.16b,v17.16b,#8 + rev64 v18.4S,v18.4S +.inst 0xcec084f3 //sm4e v19.4s,v7.4s + ext v18.16b,v18.16b,v18.16b,#8 + rev64 v19.4S,v19.4S + ext v19.16b,v19.16b,v19.16b,#8 +.inst 0xcec08414 //sm4e v20.4s,v0.4s +.inst 0xcec08415 //sm4e v21.4s,v0.4s +.inst 0xcec08416 //sm4e v22.4s,v0.4s +.inst 0xcec08417 //sm4e v23.4s,v0.4s + +.inst 0xcec08434 //sm4e v20.4s,v1.4s +.inst 0xcec08435 //sm4e v21.4s,v1.4s +.inst 0xcec08436 //sm4e v22.4s,v1.4s +.inst 0xcec08437 //sm4e v23.4s,v1.4s + +.inst 0xcec08454 //sm4e v20.4s,v2.4s +.inst 0xcec08455 //sm4e v21.4s,v2.4s +.inst 0xcec08456 //sm4e v22.4s,v2.4s +.inst 0xcec08457 //sm4e v23.4s,v2.4s + +.inst 0xcec08474 //sm4e v20.4s,v3.4s +.inst 0xcec08475 //sm4e v21.4s,v3.4s +.inst 0xcec08476 //sm4e v22.4s,v3.4s +.inst 0xcec08477 //sm4e v23.4s,v3.4s + +.inst 0xcec08494 //sm4e v20.4s,v4.4s +.inst 0xcec08495 //sm4e v21.4s,v4.4s +.inst 0xcec08496 //sm4e v22.4s,v4.4s +.inst 0xcec08497 //sm4e v23.4s,v4.4s + +.inst 0xcec084b4 //sm4e v20.4s,v5.4s +.inst 0xcec084b5 //sm4e v21.4s,v5.4s +.inst 0xcec084b6 //sm4e v22.4s,v5.4s +.inst 0xcec084b7 //sm4e v23.4s,v5.4s + +.inst 0xcec084d4 //sm4e v20.4s,v6.4s +.inst 0xcec084d5 //sm4e v21.4s,v6.4s +.inst 0xcec084d6 //sm4e v22.4s,v6.4s +.inst 0xcec084d7 //sm4e v23.4s,v6.4s + +.inst 0xcec084f4 //sm4e v20.4s,v7.4s + rev64 v20.4S,v20.4S +.inst 0xcec084f5 //sm4e v21.4s,v7.4s + ext v20.16b,v20.16b,v20.16b,#8 + rev64 v21.4S,v21.4S +.inst 0xcec084f6 //sm4e v22.4s,v7.4s + ext v21.16b,v21.16b,v21.16b,#8 + rev64 v22.4S,v22.4S +.inst 0xcec084f7 //sm4e v23.4s,v7.4s + ext v22.16b,v22.16b,v22.16b,#8 + rev64 v23.4S,v23.4S + ext v23.16b,v23.16b,v23.16b,#8 +#ifndef __AARCH64EB__ + rev32 v16.16b,v16.16b +#endif +#ifndef __AARCH64EB__ + rev32 v17.16b,v17.16b +#endif +#ifndef __AARCH64EB__ + rev32 v18.16b,v18.16b +#endif +#ifndef __AARCH64EB__ + rev32 v19.16b,v19.16b +#endif +#ifndef __AARCH64EB__ + rev32 v20.16b,v20.16b +#endif +#ifndef __AARCH64EB__ + rev32 v21.16b,v21.16b +#endif + st1 {v16.4s,v17.4s,v18.4s,v19.4s},[x1],#64 +#ifndef __AARCH64EB__ + rev32 v22.16b,v22.16b +#endif +#ifndef __AARCH64EB__ + rev32 v23.16b,v23.16b +#endif + st1 {v20.4s,v21.4s,v22.4s,v23.4s},[x1],#64 + subs x2,x2,#128 + b.gt 1b + ret + // 4 blocks +2: +#ifndef __AARCH64EB__ + rev32 v16.16b,v16.16b +#endif +#ifndef __AARCH64EB__ + rev32 v17.16b,v17.16b +#endif +#ifndef __AARCH64EB__ + rev32 v18.16b,v18.16b +#endif +#ifndef __AARCH64EB__ + rev32 v19.16b,v19.16b +#endif +.inst 0xcec08410 //sm4e v16.4s,v0.4s +.inst 0xcec08411 //sm4e v17.4s,v0.4s +.inst 0xcec08412 //sm4e v18.4s,v0.4s +.inst 0xcec08413 //sm4e v19.4s,v0.4s + +.inst 0xcec08430 //sm4e v16.4s,v1.4s +.inst 0xcec08431 //sm4e v17.4s,v1.4s +.inst 0xcec08432 //sm4e v18.4s,v1.4s +.inst 0xcec08433 //sm4e v19.4s,v1.4s + +.inst 0xcec08450 //sm4e v16.4s,v2.4s +.inst 0xcec08451 //sm4e v17.4s,v2.4s +.inst 0xcec08452 //sm4e v18.4s,v2.4s +.inst 0xcec08453 //sm4e v19.4s,v2.4s + +.inst 0xcec08470 //sm4e v16.4s,v3.4s +.inst 0xcec08471 //sm4e v17.4s,v3.4s +.inst 0xcec08472 //sm4e v18.4s,v3.4s +.inst 0xcec08473 //sm4e v19.4s,v3.4s + +.inst 0xcec08490 //sm4e v16.4s,v4.4s +.inst 0xcec08491 //sm4e v17.4s,v4.4s +.inst 0xcec08492 //sm4e v18.4s,v4.4s +.inst 0xcec08493 //sm4e v19.4s,v4.4s + +.inst 0xcec084b0 //sm4e v16.4s,v5.4s +.inst 0xcec084b1 //sm4e v17.4s,v5.4s +.inst 0xcec084b2 //sm4e v18.4s,v5.4s +.inst 0xcec084b3 //sm4e v19.4s,v5.4s + +.inst 0xcec084d0 //sm4e v16.4s,v6.4s +.inst 0xcec084d1 //sm4e v17.4s,v6.4s +.inst 0xcec084d2 //sm4e v18.4s,v6.4s +.inst 0xcec084d3 //sm4e v19.4s,v6.4s + +.inst 0xcec084f0 //sm4e v16.4s,v7.4s + rev64 v16.4S,v16.4S +.inst 0xcec084f1 //sm4e v17.4s,v7.4s + ext v16.16b,v16.16b,v16.16b,#8 + rev64 v17.4S,v17.4S +.inst 0xcec084f2 //sm4e v18.4s,v7.4s + ext v17.16b,v17.16b,v17.16b,#8 + rev64 v18.4S,v18.4S +.inst 0xcec084f3 //sm4e v19.4s,v7.4s + ext v18.16b,v18.16b,v18.16b,#8 + rev64 v19.4S,v19.4S + ext v19.16b,v19.16b,v19.16b,#8 +#ifndef __AARCH64EB__ + rev32 v16.16b,v16.16b +#endif +#ifndef __AARCH64EB__ + rev32 v17.16b,v17.16b +#endif +#ifndef __AARCH64EB__ + rev32 v18.16b,v18.16b +#endif +#ifndef __AARCH64EB__ + rev32 v19.16b,v19.16b +#endif + st1 {v16.4s,v17.4s,v18.4s,v19.4s},[x1],#64 + subs x2,x2,#64 + b.gt 1b +1: + subs x2,x2,#16 + b.lt 1f + ld1 {v16.4s},[x0],#16 +#ifndef __AARCH64EB__ + rev32 v16.16b,v16.16b +#endif +.inst 0xcec08410 //sm4e v16.4s,v0.4s +.inst 0xcec08430 //sm4e v16.4s,v1.4s +.inst 0xcec08450 //sm4e v16.4s,v2.4s +.inst 0xcec08470 //sm4e v16.4s,v3.4s +.inst 0xcec08490 //sm4e v16.4s,v4.4s +.inst 0xcec084b0 //sm4e v16.4s,v5.4s +.inst 0xcec084d0 //sm4e v16.4s,v6.4s +.inst 0xcec084f0 //sm4e v16.4s,v7.4s + rev64 v16.4S,v16.4S + ext v16.16b,v16.16b,v16.16b,#8 +#ifndef __AARCH64EB__ + rev32 v16.16b,v16.16b +#endif + st1 {v16.4s},[x1],#16 + b.ne 1b +1: + ret +.size sm4_v8_ecb_encrypt,.-sm4_v8_ecb_encrypt +.globl sm4_v8_cbc_encrypt +.type sm4_v8_cbc_encrypt,%function +.align 5 +sm4_v8_cbc_encrypt: + AARCH64_VALID_CALL_TARGET + stp d8,d9,[sp, #-16]! + + ld1 {v0.4s,v1.4s,v2.4s,v3.4s},[x3],#64 + ld1 {v4.4s,v5.4s,v6.4s,v7.4s},[x3] + ld1 {v8.4s},[x4] + cmp w5,#0 + b.eq .Ldec +1: + cmp x2, #64 + b.lt 1f + ld1 {v16.4s,v17.4s,v18.4s,v19.4s},[x0],#64 + eor v16.16b,v16.16b,v8.16b +#ifndef __AARCH64EB__ + rev32 v17.16b,v17.16b +#endif +#ifndef __AARCH64EB__ + rev32 v16.16b,v16.16b +#endif +#ifndef __AARCH64EB__ + rev32 v18.16b,v18.16b +#endif +#ifndef __AARCH64EB__ + rev32 v19.16b,v19.16b +#endif +.inst 0xcec08410 //sm4e v16.4s,v0.4s +.inst 0xcec08430 //sm4e v16.4s,v1.4s +.inst 0xcec08450 //sm4e v16.4s,v2.4s +.inst 0xcec08470 //sm4e v16.4s,v3.4s +.inst 0xcec08490 //sm4e v16.4s,v4.4s +.inst 0xcec084b0 //sm4e v16.4s,v5.4s +.inst 0xcec084d0 //sm4e v16.4s,v6.4s +.inst 0xcec084f0 //sm4e v16.4s,v7.4s + rev64 v16.4S,v16.4S + ext v16.16b,v16.16b,v16.16b,#8 + eor v17.16b,v17.16b,v16.16b +.inst 0xcec08411 //sm4e v17.4s,v0.4s +.inst 0xcec08431 //sm4e v17.4s,v1.4s +.inst 0xcec08451 //sm4e v17.4s,v2.4s +.inst 0xcec08471 //sm4e v17.4s,v3.4s +.inst 0xcec08491 //sm4e v17.4s,v4.4s +.inst 0xcec084b1 //sm4e v17.4s,v5.4s +.inst 0xcec084d1 //sm4e v17.4s,v6.4s +.inst 0xcec084f1 //sm4e v17.4s,v7.4s + rev64 v17.4S,v17.4S + ext v17.16b,v17.16b,v17.16b,#8 +#ifndef __AARCH64EB__ + rev32 v16.16b,v16.16b +#endif + eor v18.16b,v18.16b,v17.16b +.inst 0xcec08412 //sm4e v18.4s,v0.4s +.inst 0xcec08432 //sm4e v18.4s,v1.4s +.inst 0xcec08452 //sm4e v18.4s,v2.4s +.inst 0xcec08472 //sm4e v18.4s,v3.4s +.inst 0xcec08492 //sm4e v18.4s,v4.4s +.inst 0xcec084b2 //sm4e v18.4s,v5.4s +.inst 0xcec084d2 //sm4e v18.4s,v6.4s +.inst 0xcec084f2 //sm4e v18.4s,v7.4s + rev64 v18.4S,v18.4S + ext v18.16b,v18.16b,v18.16b,#8 +#ifndef __AARCH64EB__ + rev32 v17.16b,v17.16b +#endif + eor v19.16b,v19.16b,v18.16b +.inst 0xcec08413 //sm4e v19.4s,v0.4s +.inst 0xcec08433 //sm4e v19.4s,v1.4s +.inst 0xcec08453 //sm4e v19.4s,v2.4s +.inst 0xcec08473 //sm4e v19.4s,v3.4s +.inst 0xcec08493 //sm4e v19.4s,v4.4s +.inst 0xcec084b3 //sm4e v19.4s,v5.4s +.inst 0xcec084d3 //sm4e v19.4s,v6.4s +.inst 0xcec084f3 //sm4e v19.4s,v7.4s + rev64 v19.4S,v19.4S + ext v19.16b,v19.16b,v19.16b,#8 +#ifndef __AARCH64EB__ + rev32 v18.16b,v18.16b +#endif +#ifndef __AARCH64EB__ + rev32 v19.16b,v19.16b +#endif + mov v8.16b,v19.16b + st1 {v16.4s,v17.4s,v18.4s,v19.4s},[x1],#64 + subs x2,x2,#64 + b.ne 1b +1: + subs x2,x2,#16 + b.lt 3f + ld1 {v16.4s},[x0],#16 + eor v8.16b,v8.16b,v16.16b +#ifndef __AARCH64EB__ + rev32 v8.16b,v8.16b +#endif +.inst 0xcec08408 //sm4e v8.4s,v0.4s +.inst 0xcec08428 //sm4e v8.4s,v1.4s +.inst 0xcec08448 //sm4e v8.4s,v2.4s +.inst 0xcec08468 //sm4e v8.4s,v3.4s +.inst 0xcec08488 //sm4e v8.4s,v4.4s +.inst 0xcec084a8 //sm4e v8.4s,v5.4s +.inst 0xcec084c8 //sm4e v8.4s,v6.4s +.inst 0xcec084e8 //sm4e v8.4s,v7.4s + rev64 v8.4S,v8.4S + ext v8.16b,v8.16b,v8.16b,#8 +#ifndef __AARCH64EB__ + rev32 v8.16b,v8.16b +#endif + st1 {v8.4s},[x1],#16 + b.ne 1b + b 3f +.Ldec: +1: + cmp x2, #64 + b.lt 1f + ld1 {v16.4s,v17.4s,v18.4s,v19.4s},[x0] + ld1 {v24.4s,v25.4s,v26.4s,v27.4s},[x0],#64 + cmp x2,#128 + b.lt 2f + // 8 blocks mode + ld1 {v20.4s,v21.4s,v22.4s,v23.4s},[x0] + ld1 {v28.4s,v29.4s,v30.4s,v31.4s},[x0],#64 +#ifndef __AARCH64EB__ + rev32 v16.16b,v16.16b +#endif +#ifndef __AARCH64EB__ + rev32 v17.16b,v17.16b +#endif +#ifndef __AARCH64EB__ + rev32 v18.16b,v18.16b +#endif +#ifndef __AARCH64EB__ + rev32 v19.16b,v19.16b +#endif +#ifndef __AARCH64EB__ + rev32 v20.16b,v20.16b +#endif +#ifndef __AARCH64EB__ + rev32 v21.16b,v21.16b +#endif +#ifndef __AARCH64EB__ + rev32 v22.16b,v22.16b +#endif +#ifndef __AARCH64EB__ + rev32 v23.16b,v23.16b +#endif +.inst 0xcec08410 //sm4e v16.4s,v0.4s +.inst 0xcec08411 //sm4e v17.4s,v0.4s +.inst 0xcec08412 //sm4e v18.4s,v0.4s +.inst 0xcec08413 //sm4e v19.4s,v0.4s + +.inst 0xcec08430 //sm4e v16.4s,v1.4s +.inst 0xcec08431 //sm4e v17.4s,v1.4s +.inst 0xcec08432 //sm4e v18.4s,v1.4s +.inst 0xcec08433 //sm4e v19.4s,v1.4s + +.inst 0xcec08450 //sm4e v16.4s,v2.4s +.inst 0xcec08451 //sm4e v17.4s,v2.4s +.inst 0xcec08452 //sm4e v18.4s,v2.4s +.inst 0xcec08453 //sm4e v19.4s,v2.4s + +.inst 0xcec08470 //sm4e v16.4s,v3.4s +.inst 0xcec08471 //sm4e v17.4s,v3.4s +.inst 0xcec08472 //sm4e v18.4s,v3.4s +.inst 0xcec08473 //sm4e v19.4s,v3.4s + +.inst 0xcec08490 //sm4e v16.4s,v4.4s +.inst 0xcec08491 //sm4e v17.4s,v4.4s +.inst 0xcec08492 //sm4e v18.4s,v4.4s +.inst 0xcec08493 //sm4e v19.4s,v4.4s + +.inst 0xcec084b0 //sm4e v16.4s,v5.4s +.inst 0xcec084b1 //sm4e v17.4s,v5.4s +.inst 0xcec084b2 //sm4e v18.4s,v5.4s +.inst 0xcec084b3 //sm4e v19.4s,v5.4s + +.inst 0xcec084d0 //sm4e v16.4s,v6.4s +.inst 0xcec084d1 //sm4e v17.4s,v6.4s +.inst 0xcec084d2 //sm4e v18.4s,v6.4s +.inst 0xcec084d3 //sm4e v19.4s,v6.4s + +.inst 0xcec084f0 //sm4e v16.4s,v7.4s + rev64 v16.4S,v16.4S +.inst 0xcec084f1 //sm4e v17.4s,v7.4s + ext v16.16b,v16.16b,v16.16b,#8 + rev64 v17.4S,v17.4S +.inst 0xcec084f2 //sm4e v18.4s,v7.4s + ext v17.16b,v17.16b,v17.16b,#8 + rev64 v18.4S,v18.4S +.inst 0xcec084f3 //sm4e v19.4s,v7.4s + ext v18.16b,v18.16b,v18.16b,#8 + rev64 v19.4S,v19.4S + ext v19.16b,v19.16b,v19.16b,#8 +.inst 0xcec08414 //sm4e v20.4s,v0.4s +.inst 0xcec08415 //sm4e v21.4s,v0.4s +.inst 0xcec08416 //sm4e v22.4s,v0.4s +.inst 0xcec08417 //sm4e v23.4s,v0.4s + +.inst 0xcec08434 //sm4e v20.4s,v1.4s +.inst 0xcec08435 //sm4e v21.4s,v1.4s +.inst 0xcec08436 //sm4e v22.4s,v1.4s +.inst 0xcec08437 //sm4e v23.4s,v1.4s + +.inst 0xcec08454 //sm4e v20.4s,v2.4s +.inst 0xcec08455 //sm4e v21.4s,v2.4s +.inst 0xcec08456 //sm4e v22.4s,v2.4s +.inst 0xcec08457 //sm4e v23.4s,v2.4s + +.inst 0xcec08474 //sm4e v20.4s,v3.4s +.inst 0xcec08475 //sm4e v21.4s,v3.4s +.inst 0xcec08476 //sm4e v22.4s,v3.4s +.inst 0xcec08477 //sm4e v23.4s,v3.4s + +.inst 0xcec08494 //sm4e v20.4s,v4.4s +.inst 0xcec08495 //sm4e v21.4s,v4.4s +.inst 0xcec08496 //sm4e v22.4s,v4.4s +.inst 0xcec08497 //sm4e v23.4s,v4.4s + +.inst 0xcec084b4 //sm4e v20.4s,v5.4s +.inst 0xcec084b5 //sm4e v21.4s,v5.4s +.inst 0xcec084b6 //sm4e v22.4s,v5.4s +.inst 0xcec084b7 //sm4e v23.4s,v5.4s + +.inst 0xcec084d4 //sm4e v20.4s,v6.4s +.inst 0xcec084d5 //sm4e v21.4s,v6.4s +.inst 0xcec084d6 //sm4e v22.4s,v6.4s +.inst 0xcec084d7 //sm4e v23.4s,v6.4s + +.inst 0xcec084f4 //sm4e v20.4s,v7.4s + rev64 v20.4S,v20.4S +.inst 0xcec084f5 //sm4e v21.4s,v7.4s + ext v20.16b,v20.16b,v20.16b,#8 + rev64 v21.4S,v21.4S +.inst 0xcec084f6 //sm4e v22.4s,v7.4s + ext v21.16b,v21.16b,v21.16b,#8 + rev64 v22.4S,v22.4S +.inst 0xcec084f7 //sm4e v23.4s,v7.4s + ext v22.16b,v22.16b,v22.16b,#8 + rev64 v23.4S,v23.4S + ext v23.16b,v23.16b,v23.16b,#8 +#ifndef __AARCH64EB__ + rev32 v16.16b,v16.16b +#endif +#ifndef __AARCH64EB__ + rev32 v17.16b,v17.16b +#endif +#ifndef __AARCH64EB__ + rev32 v18.16b,v18.16b +#endif +#ifndef __AARCH64EB__ + rev32 v19.16b,v19.16b +#endif +#ifndef __AARCH64EB__ + rev32 v20.16b,v20.16b +#endif +#ifndef __AARCH64EB__ + rev32 v21.16b,v21.16b +#endif +#ifndef __AARCH64EB__ + rev32 v22.16b,v22.16b +#endif +#ifndef __AARCH64EB__ + rev32 v23.16b,v23.16b +#endif + eor v16.16b,v16.16b,v8.16b + eor v17.16b,v17.16b,v24.16b + eor v18.16b,v18.16b,v25.16b + mov v8.16b,v31.16b + eor v19.16b,v19.16b,v26.16b + eor v20.16b,v20.16b,v27.16b + eor v21.16b,v21.16b,v28.16b + eor v22.16b,v22.16b,v29.16b + eor v23.16b,v23.16b,v30.16b + st1 {v16.4s,v17.4s,v18.4s,v19.4s},[x1],#64 + st1 {v20.4s,v21.4s,v22.4s,v23.4s},[x1],#64 + subs x2,x2,128 + b.gt 1b + b 3f + // 4 blocks mode +2: +#ifndef __AARCH64EB__ + rev32 v16.16b,v16.16b +#endif +#ifndef __AARCH64EB__ + rev32 v17.16b,v17.16b +#endif +#ifndef __AARCH64EB__ + rev32 v18.16b,v18.16b +#endif +#ifndef __AARCH64EB__ + rev32 v19.16b,v19.16b +#endif +.inst 0xcec08410 //sm4e v16.4s,v0.4s +.inst 0xcec08411 //sm4e v17.4s,v0.4s +.inst 0xcec08412 //sm4e v18.4s,v0.4s +.inst 0xcec08413 //sm4e v19.4s,v0.4s + +.inst 0xcec08430 //sm4e v16.4s,v1.4s +.inst 0xcec08431 //sm4e v17.4s,v1.4s +.inst 0xcec08432 //sm4e v18.4s,v1.4s +.inst 0xcec08433 //sm4e v19.4s,v1.4s + +.inst 0xcec08450 //sm4e v16.4s,v2.4s +.inst 0xcec08451 //sm4e v17.4s,v2.4s +.inst 0xcec08452 //sm4e v18.4s,v2.4s +.inst 0xcec08453 //sm4e v19.4s,v2.4s + +.inst 0xcec08470 //sm4e v16.4s,v3.4s +.inst 0xcec08471 //sm4e v17.4s,v3.4s +.inst 0xcec08472 //sm4e v18.4s,v3.4s +.inst 0xcec08473 //sm4e v19.4s,v3.4s + +.inst 0xcec08490 //sm4e v16.4s,v4.4s +.inst 0xcec08491 //sm4e v17.4s,v4.4s +.inst 0xcec08492 //sm4e v18.4s,v4.4s +.inst 0xcec08493 //sm4e v19.4s,v4.4s + +.inst 0xcec084b0 //sm4e v16.4s,v5.4s +.inst 0xcec084b1 //sm4e v17.4s,v5.4s +.inst 0xcec084b2 //sm4e v18.4s,v5.4s +.inst 0xcec084b3 //sm4e v19.4s,v5.4s + +.inst 0xcec084d0 //sm4e v16.4s,v6.4s +.inst 0xcec084d1 //sm4e v17.4s,v6.4s +.inst 0xcec084d2 //sm4e v18.4s,v6.4s +.inst 0xcec084d3 //sm4e v19.4s,v6.4s + +.inst 0xcec084f0 //sm4e v16.4s,v7.4s + rev64 v16.4S,v16.4S +.inst 0xcec084f1 //sm4e v17.4s,v7.4s + ext v16.16b,v16.16b,v16.16b,#8 + rev64 v17.4S,v17.4S +.inst 0xcec084f2 //sm4e v18.4s,v7.4s + ext v17.16b,v17.16b,v17.16b,#8 + rev64 v18.4S,v18.4S +.inst 0xcec084f3 //sm4e v19.4s,v7.4s + ext v18.16b,v18.16b,v18.16b,#8 + rev64 v19.4S,v19.4S + ext v19.16b,v19.16b,v19.16b,#8 +#ifndef __AARCH64EB__ + rev32 v16.16b,v16.16b +#endif +#ifndef __AARCH64EB__ + rev32 v17.16b,v17.16b +#endif +#ifndef __AARCH64EB__ + rev32 v18.16b,v18.16b +#endif +#ifndef __AARCH64EB__ + rev32 v19.16b,v19.16b +#endif + eor v16.16b,v16.16b,v8.16b + eor v17.16b,v17.16b,v24.16b + mov v8.16b,v27.16b + eor v18.16b,v18.16b,v25.16b + eor v19.16b,v19.16b,v26.16b + st1 {v16.4s,v17.4s,v18.4s,v19.4s},[x1],#64 + subs x2,x2,#64 + b.gt 1b +1: + subs x2,x2,#16 + b.lt 3f + ld1 {v16.4s},[x0],#16 + mov v24.16b,v16.16b +#ifndef __AARCH64EB__ + rev32 v16.16b,v16.16b +#endif +.inst 0xcec08410 //sm4e v16.4s,v0.4s +.inst 0xcec08430 //sm4e v16.4s,v1.4s +.inst 0xcec08450 //sm4e v16.4s,v2.4s +.inst 0xcec08470 //sm4e v16.4s,v3.4s +.inst 0xcec08490 //sm4e v16.4s,v4.4s +.inst 0xcec084b0 //sm4e v16.4s,v5.4s +.inst 0xcec084d0 //sm4e v16.4s,v6.4s +.inst 0xcec084f0 //sm4e v16.4s,v7.4s + rev64 v16.4S,v16.4S + ext v16.16b,v16.16b,v16.16b,#8 +#ifndef __AARCH64EB__ + rev32 v16.16b,v16.16b +#endif + eor v16.16b,v16.16b,v8.16b + mov v8.16b,v24.16b + st1 {v16.4s},[x1],#16 + b.ne 1b +3: + // save back IV + st1 {v8.4s},[x4] + ldp d8,d9,[sp],#16 + ret +.size sm4_v8_cbc_encrypt,.-sm4_v8_cbc_encrypt +.globl sm4_v8_ctr32_encrypt_blocks +.type sm4_v8_ctr32_encrypt_blocks,%function +.align 5 +sm4_v8_ctr32_encrypt_blocks: + AARCH64_VALID_CALL_TARGET + stp d8,d9,[sp, #-16]! + + ld1 {v8.4s},[x4] + ld1 {v0.4s,v1.4s,v2.4s,v3.4s},[x3],64 + ld1 {v4.4s,v5.4s,v6.4s,v7.4s},[x3] +#ifndef __AARCH64EB__ + rev32 v8.16b,v8.16b +#endif + mov w5,v8.s[3] +1: + cmp x2,#4 + b.lt 1f + ld1 {v24.4s,v25.4s,v26.4s,v27.4s},[x0],#64 + mov v16.16b,v8.16b + mov v17.16b,v8.16b + mov v18.16b,v8.16b + mov v19.16b,v8.16b + add w5,w5,#1 + mov v17.s[3],w5 + add w5,w5,#1 + mov v18.s[3],w5 + add w5,w5,#1 + mov v19.s[3],w5 + cmp x2,#8 + b.lt 2f + ld1 {v28.4s,v29.4s,v30.4s,v31.4s},[x0],#64 + mov v20.16b,v8.16b + mov v21.16b,v8.16b + mov v22.16b,v8.16b + mov v23.16b,v8.16b + add w5,w5,#1 + mov v20.s[3],w5 + add w5,w5,#1 + mov v21.s[3],w5 + add w5,w5,#1 + mov v22.s[3],w5 + add w5,w5,#1 + mov v23.s[3],w5 +.inst 0xcec08410 //sm4e v16.4s,v0.4s +.inst 0xcec08411 //sm4e v17.4s,v0.4s +.inst 0xcec08412 //sm4e v18.4s,v0.4s +.inst 0xcec08413 //sm4e v19.4s,v0.4s + +.inst 0xcec08430 //sm4e v16.4s,v1.4s +.inst 0xcec08431 //sm4e v17.4s,v1.4s +.inst 0xcec08432 //sm4e v18.4s,v1.4s +.inst 0xcec08433 //sm4e v19.4s,v1.4s + +.inst 0xcec08450 //sm4e v16.4s,v2.4s +.inst 0xcec08451 //sm4e v17.4s,v2.4s +.inst 0xcec08452 //sm4e v18.4s,v2.4s +.inst 0xcec08453 //sm4e v19.4s,v2.4s + +.inst 0xcec08470 //sm4e v16.4s,v3.4s +.inst 0xcec08471 //sm4e v17.4s,v3.4s +.inst 0xcec08472 //sm4e v18.4s,v3.4s +.inst 0xcec08473 //sm4e v19.4s,v3.4s + +.inst 0xcec08490 //sm4e v16.4s,v4.4s +.inst 0xcec08491 //sm4e v17.4s,v4.4s +.inst 0xcec08492 //sm4e v18.4s,v4.4s +.inst 0xcec08493 //sm4e v19.4s,v4.4s + +.inst 0xcec084b0 //sm4e v16.4s,v5.4s +.inst 0xcec084b1 //sm4e v17.4s,v5.4s +.inst 0xcec084b2 //sm4e v18.4s,v5.4s +.inst 0xcec084b3 //sm4e v19.4s,v5.4s + +.inst 0xcec084d0 //sm4e v16.4s,v6.4s +.inst 0xcec084d1 //sm4e v17.4s,v6.4s +.inst 0xcec084d2 //sm4e v18.4s,v6.4s +.inst 0xcec084d3 //sm4e v19.4s,v6.4s + +.inst 0xcec084f0 //sm4e v16.4s,v7.4s + rev64 v16.4S,v16.4S +.inst 0xcec084f1 //sm4e v17.4s,v7.4s + ext v16.16b,v16.16b,v16.16b,#8 + rev64 v17.4S,v17.4S +.inst 0xcec084f2 //sm4e v18.4s,v7.4s + ext v17.16b,v17.16b,v17.16b,#8 + rev64 v18.4S,v18.4S +.inst 0xcec084f3 //sm4e v19.4s,v7.4s + ext v18.16b,v18.16b,v18.16b,#8 + rev64 v19.4S,v19.4S + ext v19.16b,v19.16b,v19.16b,#8 +.inst 0xcec08414 //sm4e v20.4s,v0.4s +.inst 0xcec08415 //sm4e v21.4s,v0.4s +.inst 0xcec08416 //sm4e v22.4s,v0.4s +.inst 0xcec08417 //sm4e v23.4s,v0.4s + +.inst 0xcec08434 //sm4e v20.4s,v1.4s +.inst 0xcec08435 //sm4e v21.4s,v1.4s +.inst 0xcec08436 //sm4e v22.4s,v1.4s +.inst 0xcec08437 //sm4e v23.4s,v1.4s + +.inst 0xcec08454 //sm4e v20.4s,v2.4s +.inst 0xcec08455 //sm4e v21.4s,v2.4s +.inst 0xcec08456 //sm4e v22.4s,v2.4s +.inst 0xcec08457 //sm4e v23.4s,v2.4s + +.inst 0xcec08474 //sm4e v20.4s,v3.4s +.inst 0xcec08475 //sm4e v21.4s,v3.4s +.inst 0xcec08476 //sm4e v22.4s,v3.4s +.inst 0xcec08477 //sm4e v23.4s,v3.4s + +.inst 0xcec08494 //sm4e v20.4s,v4.4s +.inst 0xcec08495 //sm4e v21.4s,v4.4s +.inst 0xcec08496 //sm4e v22.4s,v4.4s +.inst 0xcec08497 //sm4e v23.4s,v4.4s + +.inst 0xcec084b4 //sm4e v20.4s,v5.4s +.inst 0xcec084b5 //sm4e v21.4s,v5.4s +.inst 0xcec084b6 //sm4e v22.4s,v5.4s +.inst 0xcec084b7 //sm4e v23.4s,v5.4s + +.inst 0xcec084d4 //sm4e v20.4s,v6.4s +.inst 0xcec084d5 //sm4e v21.4s,v6.4s +.inst 0xcec084d6 //sm4e v22.4s,v6.4s +.inst 0xcec084d7 //sm4e v23.4s,v6.4s + +.inst 0xcec084f4 //sm4e v20.4s,v7.4s + rev64 v20.4S,v20.4S +.inst 0xcec084f5 //sm4e v21.4s,v7.4s + ext v20.16b,v20.16b,v20.16b,#8 + rev64 v21.4S,v21.4S +.inst 0xcec084f6 //sm4e v22.4s,v7.4s + ext v21.16b,v21.16b,v21.16b,#8 + rev64 v22.4S,v22.4S +.inst 0xcec084f7 //sm4e v23.4s,v7.4s + ext v22.16b,v22.16b,v22.16b,#8 + rev64 v23.4S,v23.4S + ext v23.16b,v23.16b,v23.16b,#8 +#ifndef __AARCH64EB__ + rev32 v16.16b,v16.16b +#endif +#ifndef __AARCH64EB__ + rev32 v17.16b,v17.16b +#endif +#ifndef __AARCH64EB__ + rev32 v18.16b,v18.16b +#endif +#ifndef __AARCH64EB__ + rev32 v19.16b,v19.16b +#endif +#ifndef __AARCH64EB__ + rev32 v20.16b,v20.16b +#endif +#ifndef __AARCH64EB__ + rev32 v21.16b,v21.16b +#endif +#ifndef __AARCH64EB__ + rev32 v22.16b,v22.16b +#endif +#ifndef __AARCH64EB__ + rev32 v23.16b,v23.16b +#endif + eor v16.16b,v16.16b,v24.16b + eor v17.16b,v17.16b,v25.16b + eor v18.16b,v18.16b,v26.16b + eor v19.16b,v19.16b,v27.16b + eor v20.16b,v20.16b,v28.16b + eor v21.16b,v21.16b,v29.16b + eor v22.16b,v22.16b,v30.16b + eor v23.16b,v23.16b,v31.16b + st1 {v16.4s,v17.4s,v18.4s,v19.4s},[x1],#64 + st1 {v20.4s,v21.4s,v22.4s,v23.4s},[x1],#64 + subs x2,x2,#8 + b.eq 3f + add w5,w5,#1 + mov v8.s[3],w5 + b 1b +2: +.inst 0xcec08410 //sm4e v16.4s,v0.4s +.inst 0xcec08411 //sm4e v17.4s,v0.4s +.inst 0xcec08412 //sm4e v18.4s,v0.4s +.inst 0xcec08413 //sm4e v19.4s,v0.4s + +.inst 0xcec08430 //sm4e v16.4s,v1.4s +.inst 0xcec08431 //sm4e v17.4s,v1.4s +.inst 0xcec08432 //sm4e v18.4s,v1.4s +.inst 0xcec08433 //sm4e v19.4s,v1.4s + +.inst 0xcec08450 //sm4e v16.4s,v2.4s +.inst 0xcec08451 //sm4e v17.4s,v2.4s +.inst 0xcec08452 //sm4e v18.4s,v2.4s +.inst 0xcec08453 //sm4e v19.4s,v2.4s + +.inst 0xcec08470 //sm4e v16.4s,v3.4s +.inst 0xcec08471 //sm4e v17.4s,v3.4s +.inst 0xcec08472 //sm4e v18.4s,v3.4s +.inst 0xcec08473 //sm4e v19.4s,v3.4s + +.inst 0xcec08490 //sm4e v16.4s,v4.4s +.inst 0xcec08491 //sm4e v17.4s,v4.4s +.inst 0xcec08492 //sm4e v18.4s,v4.4s +.inst 0xcec08493 //sm4e v19.4s,v4.4s + +.inst 0xcec084b0 //sm4e v16.4s,v5.4s +.inst 0xcec084b1 //sm4e v17.4s,v5.4s +.inst 0xcec084b2 //sm4e v18.4s,v5.4s +.inst 0xcec084b3 //sm4e v19.4s,v5.4s + +.inst 0xcec084d0 //sm4e v16.4s,v6.4s +.inst 0xcec084d1 //sm4e v17.4s,v6.4s +.inst 0xcec084d2 //sm4e v18.4s,v6.4s +.inst 0xcec084d3 //sm4e v19.4s,v6.4s + +.inst 0xcec084f0 //sm4e v16.4s,v7.4s + rev64 v16.4S,v16.4S +.inst 0xcec084f1 //sm4e v17.4s,v7.4s + ext v16.16b,v16.16b,v16.16b,#8 + rev64 v17.4S,v17.4S +.inst 0xcec084f2 //sm4e v18.4s,v7.4s + ext v17.16b,v17.16b,v17.16b,#8 + rev64 v18.4S,v18.4S +.inst 0xcec084f3 //sm4e v19.4s,v7.4s + ext v18.16b,v18.16b,v18.16b,#8 + rev64 v19.4S,v19.4S + ext v19.16b,v19.16b,v19.16b,#8 +#ifndef __AARCH64EB__ + rev32 v16.16b,v16.16b +#endif +#ifndef __AARCH64EB__ + rev32 v17.16b,v17.16b +#endif +#ifndef __AARCH64EB__ + rev32 v18.16b,v18.16b +#endif +#ifndef __AARCH64EB__ + rev32 v19.16b,v19.16b +#endif + eor v16.16b,v16.16b,v24.16b + eor v17.16b,v17.16b,v25.16b + eor v18.16b,v18.16b,v26.16b + eor v19.16b,v19.16b,v27.16b + st1 {v16.4s,v17.4s,v18.4s,v19.4s},[x1],#64 + subs x2,x2,#4 + b.eq 3f + add w5,w5,#1 + mov v8.s[3],w5 + b 1b +1: + subs x2,x2,#1 + b.lt 3f + mov v16.16b,v8.16b + ld1 {v24.4s},[x0],#16 +.inst 0xcec08410 //sm4e v16.4s,v0.4s +.inst 0xcec08430 //sm4e v16.4s,v1.4s +.inst 0xcec08450 //sm4e v16.4s,v2.4s +.inst 0xcec08470 //sm4e v16.4s,v3.4s +.inst 0xcec08490 //sm4e v16.4s,v4.4s +.inst 0xcec084b0 //sm4e v16.4s,v5.4s +.inst 0xcec084d0 //sm4e v16.4s,v6.4s +.inst 0xcec084f0 //sm4e v16.4s,v7.4s + rev64 v16.4S,v16.4S + ext v16.16b,v16.16b,v16.16b,#8 +#ifndef __AARCH64EB__ + rev32 v16.16b,v16.16b +#endif + eor v16.16b,v16.16b,v24.16b + st1 {v16.4s},[x1],#16 + b.eq 3f + add w5,w5,#1 + mov v8.s[3],w5 + b 1b +3: + ldp d8,d9,[sp],#16 + ret +.size sm4_v8_ctr32_encrypt_blocks,.-sm4_v8_ctr32_encrypt_blocks diff --git a/deps/openssl/config/archs/linux-aarch64/asm_avx2/crypto/sm4/vpsm4-armv8.S b/deps/openssl/config/archs/linux-aarch64/asm_avx2/crypto/sm4/vpsm4-armv8.S new file mode 100644 index 00000000000000..b2aad3252e116f --- /dev/null +++ b/deps/openssl/config/archs/linux-aarch64/asm_avx2/crypto/sm4/vpsm4-armv8.S @@ -0,0 +1,5020 @@ +// Copyright 2020-2025 The OpenSSL Project Authors. All Rights Reserved. +// +// Licensed under the Apache License 2.0 (the "License"). You may not use +// this file except in compliance with the License. You can obtain a copy +// in the file LICENSE in the source distribution or at +// https://www.openssl.org/source/license.html + +// +// This module implements SM4 with ASIMD on aarch64 +// +// Feb 2022 +// + +// $output is the last argument if it looks like a file (it has an extension) +// $flavour is the first argument if it doesn't look like a file +#include "arm_arch.h" +.arch armv8-a +.text + +.section .rodata +.type _vpsm4_consts,%object +.align 7 +_vpsm4_consts: +.Lsbox: +.byte 0xD6,0x90,0xE9,0xFE,0xCC,0xE1,0x3D,0xB7,0x16,0xB6,0x14,0xC2,0x28,0xFB,0x2C,0x05 +.byte 0x2B,0x67,0x9A,0x76,0x2A,0xBE,0x04,0xC3,0xAA,0x44,0x13,0x26,0x49,0x86,0x06,0x99 +.byte 0x9C,0x42,0x50,0xF4,0x91,0xEF,0x98,0x7A,0x33,0x54,0x0B,0x43,0xED,0xCF,0xAC,0x62 +.byte 0xE4,0xB3,0x1C,0xA9,0xC9,0x08,0xE8,0x95,0x80,0xDF,0x94,0xFA,0x75,0x8F,0x3F,0xA6 +.byte 0x47,0x07,0xA7,0xFC,0xF3,0x73,0x17,0xBA,0x83,0x59,0x3C,0x19,0xE6,0x85,0x4F,0xA8 +.byte 0x68,0x6B,0x81,0xB2,0x71,0x64,0xDA,0x8B,0xF8,0xEB,0x0F,0x4B,0x70,0x56,0x9D,0x35 +.byte 0x1E,0x24,0x0E,0x5E,0x63,0x58,0xD1,0xA2,0x25,0x22,0x7C,0x3B,0x01,0x21,0x78,0x87 +.byte 0xD4,0x00,0x46,0x57,0x9F,0xD3,0x27,0x52,0x4C,0x36,0x02,0xE7,0xA0,0xC4,0xC8,0x9E +.byte 0xEA,0xBF,0x8A,0xD2,0x40,0xC7,0x38,0xB5,0xA3,0xF7,0xF2,0xCE,0xF9,0x61,0x15,0xA1 +.byte 0xE0,0xAE,0x5D,0xA4,0x9B,0x34,0x1A,0x55,0xAD,0x93,0x32,0x30,0xF5,0x8C,0xB1,0xE3 +.byte 0x1D,0xF6,0xE2,0x2E,0x82,0x66,0xCA,0x60,0xC0,0x29,0x23,0xAB,0x0D,0x53,0x4E,0x6F +.byte 0xD5,0xDB,0x37,0x45,0xDE,0xFD,0x8E,0x2F,0x03,0xFF,0x6A,0x72,0x6D,0x6C,0x5B,0x51 +.byte 0x8D,0x1B,0xAF,0x92,0xBB,0xDD,0xBC,0x7F,0x11,0xD9,0x5C,0x41,0x1F,0x10,0x5A,0xD8 +.byte 0x0A,0xC1,0x31,0x88,0xA5,0xCD,0x7B,0xBD,0x2D,0x74,0xD0,0x12,0xB8,0xE5,0xB4,0xB0 +.byte 0x89,0x69,0x97,0x4A,0x0C,0x96,0x77,0x7E,0x65,0xB9,0xF1,0x09,0xC5,0x6E,0xC6,0x84 +.byte 0x18,0xF0,0x7D,0xEC,0x3A,0xDC,0x4D,0x20,0x79,0xEE,0x5F,0x3E,0xD7,0xCB,0x39,0x48 +.Lck: +.long 0x00070E15, 0x1C232A31, 0x383F464D, 0x545B6269 +.long 0x70777E85, 0x8C939AA1, 0xA8AFB6BD, 0xC4CBD2D9 +.long 0xE0E7EEF5, 0xFC030A11, 0x181F262D, 0x343B4249 +.long 0x50575E65, 0x6C737A81, 0x888F969D, 0xA4ABB2B9 +.long 0xC0C7CED5, 0xDCE3EAF1, 0xF8FF060D, 0x141B2229 +.long 0x30373E45, 0x4C535A61, 0x686F767D, 0x848B9299 +.long 0xA0A7AEB5, 0xBCC3CAD1, 0xD8DFE6ED, 0xF4FB0209 +.long 0x10171E25, 0x2C333A41, 0x484F565D, 0x646B7279 +.Lfk: +.quad 0x56aa3350a3b1bac6,0xb27022dc677d9197 +.Lshuffles: +.quad 0x0B0A090807060504,0x030201000F0E0D0C +.Lxts_magic: +.quad 0x0101010101010187,0x0101010101010101 + +.size _vpsm4_consts,.-_vpsm4_consts + +.previous + +.type _vpsm4_set_key,%function +.align 4 +_vpsm4_set_key: + AARCH64_VALID_CALL_TARGET + ld1 {v5.4s},[x0] + adrp x10,.Lsbox + add x10,x10,#:lo12:.Lsbox + ld1 {v16.16b,v17.16b,v18.16b,v19.16b},[x10],#64 + ld1 {v20.16b,v21.16b,v22.16b,v23.16b},[x10],#64 + ld1 {v24.16b,v25.16b,v26.16b,v27.16b},[x10],#64 + ld1 {v28.16b,v29.16b,v30.16b,v31.16b},[x10] +#ifndef __AARCH64EB__ + rev32 v5.16b,v5.16b +#endif + adrp x5,.Lshuffles + add x5,x5,#:lo12:.Lshuffles + ld1 {v7.2d},[x5] + adrp x5,.Lfk + add x5,x5,#:lo12:.Lfk + ld1 {v6.2d},[x5] + eor v5.16b,v5.16b,v6.16b + mov x6,#32 + adrp x5,.Lck + add x5,x5,#:lo12:.Lck + movi v0.16b,#64 + cbnz w2,1f + add x1,x1,124 +1: + mov w7,v5.s[1] + ldr w8,[x5],#4 + eor w8,w8,w7 + mov w7,v5.s[2] + eor w8,w8,w7 + mov w7,v5.s[3] + eor w8,w8,w7 + // sbox lookup + mov v4.s[0],w8 + tbl v1.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v4.16b + sub v4.16b,v4.16b,v0.16b + tbx v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v4.16b + sub v4.16b,v4.16b,v0.16b + tbx v1.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v4.16b + sub v4.16b,v4.16b,v0.16b + tbx v1.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v4.16b + mov w7,v1.s[0] + eor w8,w7,w7,ror #19 + eor w8,w8,w7,ror #9 + mov w7,v5.s[0] + eor w8,w8,w7 + mov v5.s[0],w8 + cbz w2,2f + str w8,[x1],#4 + b 3f +2: + str w8,[x1],#-4 +3: + tbl v5.16b,{v5.16b},v7.16b + subs x6,x6,#1 + b.ne 1b + ret +.size _vpsm4_set_key,.-_vpsm4_set_key +.type _vpsm4_enc_4blks,%function +.align 4 +_vpsm4_enc_4blks: + AARCH64_VALID_CALL_TARGET + mov x10,x3 + mov w11,#8 +10: + ldp w7,w8,[x10],8 + dup v12.4s,w7 + dup v13.4s,w8 + + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + eor v14.16b,v6.16b,v7.16b + eor v12.16b,v5.16b,v12.16b + eor v12.16b,v14.16b,v12.16b + movi v0.16b,#64 + movi v1.16b,#128 + movi v2.16b,#192 + sub v0.16b,v12.16b,v0.16b + sub v1.16b,v12.16b,v1.16b + sub v2.16b,v12.16b,v2.16b + tbl v12.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v12.16b + tbl v0.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v0.16b + tbl v1.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v1.16b + tbl v2.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v2.16b + add v0.2d,v0.2d,v1.2d + add v2.2d,v2.2d,v12.2d + add v12.2d,v0.2d,v2.2d + + ushr v0.4s,v12.4s,32-2 + sli v0.4s,v12.4s,2 + ushr v2.4s,v12.4s,32-10 + eor v1.16b,v0.16b,v12.16b + sli v2.4s,v12.4s,10 + eor v1.16b,v2.16b,v1.16b + ushr v0.4s,v12.4s,32-18 + sli v0.4s,v12.4s,18 + ushr v2.4s,v12.4s,32-24 + eor v1.16b,v0.16b,v1.16b + sli v2.4s,v12.4s,24 + eor v12.16b,v2.16b,v1.16b + eor v4.16b,v4.16b,v12.16b + + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + eor v14.16b,v14.16b,v4.16b + eor v13.16b,v14.16b,v13.16b + movi v0.16b,#64 + movi v1.16b,#128 + movi v2.16b,#192 + sub v0.16b,v13.16b,v0.16b + sub v1.16b,v13.16b,v1.16b + sub v2.16b,v13.16b,v2.16b + tbl v13.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v13.16b + tbl v0.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v0.16b + tbl v1.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v1.16b + tbl v2.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v2.16b + add v0.2d,v0.2d,v1.2d + add v2.2d,v2.2d,v13.2d + add v13.2d,v0.2d,v2.2d + + ushr v0.4s,v13.4s,32-2 + sli v0.4s,v13.4s,2 + ushr v2.4s,v13.4s,32-10 + eor v1.16b,v0.16b,v13.16b + sli v2.4s,v13.4s,10 + eor v1.16b,v2.16b,v1.16b + ushr v0.4s,v13.4s,32-18 + sli v0.4s,v13.4s,18 + ushr v2.4s,v13.4s,32-24 + eor v1.16b,v0.16b,v1.16b + sli v2.4s,v13.4s,24 + eor v13.16b,v2.16b,v1.16b + ldp w7,w8,[x10],8 + eor v5.16b,v5.16b,v13.16b + + dup v12.4s,w7 + dup v13.4s,w8 + + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + eor v14.16b,v4.16b,v5.16b + eor v12.16b,v7.16b,v12.16b + eor v12.16b,v14.16b,v12.16b + movi v0.16b,#64 + movi v1.16b,#128 + movi v2.16b,#192 + sub v0.16b,v12.16b,v0.16b + sub v1.16b,v12.16b,v1.16b + sub v2.16b,v12.16b,v2.16b + tbl v12.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v12.16b + tbl v0.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v0.16b + tbl v1.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v1.16b + tbl v2.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v2.16b + add v0.2d,v0.2d,v1.2d + add v2.2d,v2.2d,v12.2d + add v12.2d,v0.2d,v2.2d + + ushr v0.4s,v12.4s,32-2 + sli v0.4s,v12.4s,2 + ushr v2.4s,v12.4s,32-10 + eor v1.16b,v0.16b,v12.16b + sli v2.4s,v12.4s,10 + eor v1.16b,v2.16b,v1.16b + ushr v0.4s,v12.4s,32-18 + sli v0.4s,v12.4s,18 + ushr v2.4s,v12.4s,32-24 + eor v1.16b,v0.16b,v1.16b + sli v2.4s,v12.4s,24 + eor v12.16b,v2.16b,v1.16b + eor v6.16b,v6.16b,v12.16b + + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + eor v14.16b,v14.16b,v6.16b + eor v13.16b,v14.16b,v13.16b + movi v0.16b,#64 + movi v1.16b,#128 + movi v2.16b,#192 + sub v0.16b,v13.16b,v0.16b + sub v1.16b,v13.16b,v1.16b + sub v2.16b,v13.16b,v2.16b + tbl v13.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v13.16b + tbl v0.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v0.16b + tbl v1.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v1.16b + tbl v2.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v2.16b + add v0.2d,v0.2d,v1.2d + add v2.2d,v2.2d,v13.2d + add v13.2d,v0.2d,v2.2d + + ushr v0.4s,v13.4s,32-2 + sli v0.4s,v13.4s,2 + ushr v2.4s,v13.4s,32-10 + eor v1.16b,v0.16b,v13.16b + sli v2.4s,v13.4s,10 + eor v1.16b,v2.16b,v1.16b + ushr v0.4s,v13.4s,32-18 + sli v0.4s,v13.4s,18 + ushr v2.4s,v13.4s,32-24 + eor v1.16b,v0.16b,v1.16b + sli v2.4s,v13.4s,24 + eor v13.16b,v2.16b,v1.16b + eor v7.16b,v7.16b,v13.16b + subs w11,w11,#1 + b.ne 10b +#ifndef __AARCH64EB__ + rev32 v3.16b,v4.16b +#else + mov v3.16b,v4.16b +#endif +#ifndef __AARCH64EB__ + rev32 v2.16b,v5.16b +#else + mov v2.16b,v5.16b +#endif +#ifndef __AARCH64EB__ + rev32 v1.16b,v6.16b +#else + mov v1.16b,v6.16b +#endif +#ifndef __AARCH64EB__ + rev32 v0.16b,v7.16b +#else + mov v0.16b,v7.16b +#endif + ret +.size _vpsm4_enc_4blks,.-_vpsm4_enc_4blks +.type _vpsm4_enc_8blks,%function +.align 4 +_vpsm4_enc_8blks: + AARCH64_VALID_CALL_TARGET + mov x10,x3 + mov w11,#8 +10: + ldp w7,w8,[x10],8 + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + dup v12.4s,w7 + eor v14.16b,v6.16b,v7.16b + eor v15.16b,v10.16b,v11.16b + eor v0.16b,v5.16b,v12.16b + eor v1.16b,v9.16b,v12.16b + eor v12.16b,v14.16b,v0.16b + eor v13.16b,v15.16b,v1.16b + movi v3.16b,#64 + sub v0.16b,v12.16b,v3.16b + sub v1.16b,v0.16b,v3.16b + sub v2.16b,v1.16b,v3.16b + tbl v12.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v12.16b + tbl v0.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v0.16b + tbl v1.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v1.16b + tbl v2.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v2.16b + add v1.2d,v0.2d,v1.2d + add v12.2d,v2.2d,v12.2d + add v12.2d,v1.2d,v12.2d + + sub v0.16b,v13.16b,v3.16b + sub v1.16b,v0.16b,v3.16b + sub v2.16b,v1.16b,v3.16b + tbl v13.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v13.16b + tbl v0.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v0.16b + tbl v1.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v1.16b + tbl v2.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v2.16b + add v1.2d,v0.2d,v1.2d + add v13.2d,v2.2d,v13.2d + add v13.2d,v1.2d,v13.2d + + ushr v0.4s,v12.4s,32-2 + sli v0.4s,v12.4s,2 + ushr v2.4s,v13.4s,32-2 + eor v1.16b,v0.16b,v12.16b + sli v2.4s,v13.4s,2 + + ushr v0.4s,v12.4s,32-10 + eor v3.16b,v2.16b,v13.16b + sli v0.4s,v12.4s,10 + ushr v2.4s,v13.4s,32-10 + eor v1.16b,v0.16b,v1.16b + sli v2.4s,v13.4s,10 + + ushr v0.4s,v12.4s,32-18 + eor v3.16b,v2.16b,v3.16b + sli v0.4s,v12.4s,18 + ushr v2.4s,v13.4s,32-18 + eor v1.16b,v0.16b,v1.16b + sli v2.4s,v13.4s,18 + + ushr v0.4s,v12.4s,32-24 + eor v3.16b,v2.16b,v3.16b + sli v0.4s,v12.4s,24 + ushr v2.4s,v13.4s,32-24 + eor v12.16b,v0.16b,v1.16b + sli v2.4s,v13.4s,24 + eor v13.16b,v2.16b,v3.16b + eor v4.16b,v4.16b,v12.16b + eor v8.16b,v8.16b,v13.16b + + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + dup v13.4s,w8 + eor v14.16b,v14.16b,v4.16b + eor v15.16b,v15.16b,v8.16b + eor v12.16b,v14.16b,v13.16b + eor v13.16b,v15.16b,v13.16b + movi v3.16b,#64 + sub v0.16b,v12.16b,v3.16b + sub v1.16b,v0.16b,v3.16b + sub v2.16b,v1.16b,v3.16b + tbl v12.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v12.16b + tbl v0.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v0.16b + tbl v1.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v1.16b + tbl v2.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v2.16b + add v1.2d,v0.2d,v1.2d + add v12.2d,v2.2d,v12.2d + add v12.2d,v1.2d,v12.2d + + sub v0.16b,v13.16b,v3.16b + sub v1.16b,v0.16b,v3.16b + sub v2.16b,v1.16b,v3.16b + tbl v13.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v13.16b + tbl v0.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v0.16b + tbl v1.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v1.16b + tbl v2.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v2.16b + add v1.2d,v0.2d,v1.2d + add v13.2d,v2.2d,v13.2d + add v13.2d,v1.2d,v13.2d + + ushr v0.4s,v12.4s,32-2 + sli v0.4s,v12.4s,2 + ushr v2.4s,v13.4s,32-2 + eor v1.16b,v0.16b,v12.16b + sli v2.4s,v13.4s,2 + + ushr v0.4s,v12.4s,32-10 + eor v3.16b,v2.16b,v13.16b + sli v0.4s,v12.4s,10 + ushr v2.4s,v13.4s,32-10 + eor v1.16b,v0.16b,v1.16b + sli v2.4s,v13.4s,10 + + ushr v0.4s,v12.4s,32-18 + eor v3.16b,v2.16b,v3.16b + sli v0.4s,v12.4s,18 + ushr v2.4s,v13.4s,32-18 + eor v1.16b,v0.16b,v1.16b + sli v2.4s,v13.4s,18 + + ushr v0.4s,v12.4s,32-24 + eor v3.16b,v2.16b,v3.16b + sli v0.4s,v12.4s,24 + ushr v2.4s,v13.4s,32-24 + eor v12.16b,v0.16b,v1.16b + sli v2.4s,v13.4s,24 + eor v13.16b,v2.16b,v3.16b + ldp w7,w8,[x10],8 + eor v5.16b,v5.16b,v12.16b + eor v9.16b,v9.16b,v13.16b + + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + dup v12.4s,w7 + eor v14.16b,v4.16b,v5.16b + eor v15.16b,v8.16b,v9.16b + eor v0.16b,v7.16b,v12.16b + eor v1.16b,v11.16b,v12.16b + eor v12.16b,v14.16b,v0.16b + eor v13.16b,v15.16b,v1.16b + movi v3.16b,#64 + sub v0.16b,v12.16b,v3.16b + sub v1.16b,v0.16b,v3.16b + sub v2.16b,v1.16b,v3.16b + tbl v12.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v12.16b + tbl v0.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v0.16b + tbl v1.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v1.16b + tbl v2.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v2.16b + add v1.2d,v0.2d,v1.2d + add v12.2d,v2.2d,v12.2d + add v12.2d,v1.2d,v12.2d + + sub v0.16b,v13.16b,v3.16b + sub v1.16b,v0.16b,v3.16b + sub v2.16b,v1.16b,v3.16b + tbl v13.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v13.16b + tbl v0.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v0.16b + tbl v1.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v1.16b + tbl v2.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v2.16b + add v1.2d,v0.2d,v1.2d + add v13.2d,v2.2d,v13.2d + add v13.2d,v1.2d,v13.2d + + ushr v0.4s,v12.4s,32-2 + sli v0.4s,v12.4s,2 + ushr v2.4s,v13.4s,32-2 + eor v1.16b,v0.16b,v12.16b + sli v2.4s,v13.4s,2 + + ushr v0.4s,v12.4s,32-10 + eor v3.16b,v2.16b,v13.16b + sli v0.4s,v12.4s,10 + ushr v2.4s,v13.4s,32-10 + eor v1.16b,v0.16b,v1.16b + sli v2.4s,v13.4s,10 + + ushr v0.4s,v12.4s,32-18 + eor v3.16b,v2.16b,v3.16b + sli v0.4s,v12.4s,18 + ushr v2.4s,v13.4s,32-18 + eor v1.16b,v0.16b,v1.16b + sli v2.4s,v13.4s,18 + + ushr v0.4s,v12.4s,32-24 + eor v3.16b,v2.16b,v3.16b + sli v0.4s,v12.4s,24 + ushr v2.4s,v13.4s,32-24 + eor v12.16b,v0.16b,v1.16b + sli v2.4s,v13.4s,24 + eor v13.16b,v2.16b,v3.16b + eor v6.16b,v6.16b,v12.16b + eor v10.16b,v10.16b,v13.16b + + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + dup v13.4s,w8 + eor v14.16b,v14.16b,v6.16b + eor v15.16b,v15.16b,v10.16b + eor v12.16b,v14.16b,v13.16b + eor v13.16b,v15.16b,v13.16b + movi v3.16b,#64 + sub v0.16b,v12.16b,v3.16b + sub v1.16b,v0.16b,v3.16b + sub v2.16b,v1.16b,v3.16b + tbl v12.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v12.16b + tbl v0.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v0.16b + tbl v1.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v1.16b + tbl v2.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v2.16b + add v1.2d,v0.2d,v1.2d + add v12.2d,v2.2d,v12.2d + add v12.2d,v1.2d,v12.2d + + sub v0.16b,v13.16b,v3.16b + sub v1.16b,v0.16b,v3.16b + sub v2.16b,v1.16b,v3.16b + tbl v13.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v13.16b + tbl v0.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v0.16b + tbl v1.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v1.16b + tbl v2.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v2.16b + add v1.2d,v0.2d,v1.2d + add v13.2d,v2.2d,v13.2d + add v13.2d,v1.2d,v13.2d + + ushr v0.4s,v12.4s,32-2 + sli v0.4s,v12.4s,2 + ushr v2.4s,v13.4s,32-2 + eor v1.16b,v0.16b,v12.16b + sli v2.4s,v13.4s,2 + + ushr v0.4s,v12.4s,32-10 + eor v3.16b,v2.16b,v13.16b + sli v0.4s,v12.4s,10 + ushr v2.4s,v13.4s,32-10 + eor v1.16b,v0.16b,v1.16b + sli v2.4s,v13.4s,10 + + ushr v0.4s,v12.4s,32-18 + eor v3.16b,v2.16b,v3.16b + sli v0.4s,v12.4s,18 + ushr v2.4s,v13.4s,32-18 + eor v1.16b,v0.16b,v1.16b + sli v2.4s,v13.4s,18 + + ushr v0.4s,v12.4s,32-24 + eor v3.16b,v2.16b,v3.16b + sli v0.4s,v12.4s,24 + ushr v2.4s,v13.4s,32-24 + eor v12.16b,v0.16b,v1.16b + sli v2.4s,v13.4s,24 + eor v13.16b,v2.16b,v3.16b + eor v7.16b,v7.16b,v12.16b + eor v11.16b,v11.16b,v13.16b + subs w11,w11,#1 + b.ne 10b +#ifndef __AARCH64EB__ + rev32 v3.16b,v4.16b +#else + mov v3.16b,v4.16b +#endif +#ifndef __AARCH64EB__ + rev32 v2.16b,v5.16b +#else + mov v2.16b,v5.16b +#endif +#ifndef __AARCH64EB__ + rev32 v1.16b,v6.16b +#else + mov v1.16b,v6.16b +#endif +#ifndef __AARCH64EB__ + rev32 v0.16b,v7.16b +#else + mov v0.16b,v7.16b +#endif +#ifndef __AARCH64EB__ + rev32 v7.16b,v8.16b +#else + mov v7.16b,v8.16b +#endif +#ifndef __AARCH64EB__ + rev32 v6.16b,v9.16b +#else + mov v6.16b,v9.16b +#endif +#ifndef __AARCH64EB__ + rev32 v5.16b,v10.16b +#else + mov v5.16b,v10.16b +#endif +#ifndef __AARCH64EB__ + rev32 v4.16b,v11.16b +#else + mov v4.16b,v11.16b +#endif + ret +.size _vpsm4_enc_8blks,.-_vpsm4_enc_8blks +.globl vpsm4_set_encrypt_key +.type vpsm4_set_encrypt_key,%function +.align 5 +vpsm4_set_encrypt_key: + AARCH64_SIGN_LINK_REGISTER + stp x29,x30,[sp,#-16]! + mov w2,1 + bl _vpsm4_set_key + ldp x29,x30,[sp],#16 + AARCH64_VALIDATE_LINK_REGISTER + ret +.size vpsm4_set_encrypt_key,.-vpsm4_set_encrypt_key +.globl vpsm4_set_decrypt_key +.type vpsm4_set_decrypt_key,%function +.align 5 +vpsm4_set_decrypt_key: + AARCH64_SIGN_LINK_REGISTER + stp x29,x30,[sp,#-16]! + mov w2,0 + bl _vpsm4_set_key + ldp x29,x30,[sp],#16 + AARCH64_VALIDATE_LINK_REGISTER + ret +.size vpsm4_set_decrypt_key,.-vpsm4_set_decrypt_key +.globl vpsm4_encrypt +.type vpsm4_encrypt,%function +.align 5 +vpsm4_encrypt: + AARCH64_VALID_CALL_TARGET + ld1 {v4.4s},[x0] + adrp x10,.Lsbox + add x10,x10,#:lo12:.Lsbox + ld1 {v16.16b,v17.16b,v18.16b,v19.16b},[x10],#64 + ld1 {v20.16b,v21.16b,v22.16b,v23.16b},[x10],#64 + ld1 {v24.16b,v25.16b,v26.16b,v27.16b},[x10],#64 + ld1 {v28.16b,v29.16b,v30.16b,v31.16b},[x10] +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif + mov x3,x2 + mov x10,x3 + mov w11,#8 + mov w12,v4.s[0] + mov w13,v4.s[1] + mov w14,v4.s[2] + mov w15,v4.s[3] +10: + ldp w7,w8,[x10],8 + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + eor w6,w14,w15 + eor w9,w7,w13 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w12,w12,w6 + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + eor w6,w14,w15 + eor w9,w12,w8 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + ldp w7,w8,[x10],8 + eor w13,w13,w6 + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + eor w6,w12,w13 + eor w9,w7,w15 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w14,w14,w6 + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + eor w6,w12,w13 + eor w9,w14,w8 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w15,w15,w6 + subs w11,w11,#1 + b.ne 10b + mov v4.s[0],w15 + mov v4.s[1],w14 + mov v4.s[2],w13 + mov v4.s[3],w12 +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif + st1 {v4.4s},[x1] + ret +.size vpsm4_encrypt,.-vpsm4_encrypt +.globl vpsm4_decrypt +.type vpsm4_decrypt,%function +.align 5 +vpsm4_decrypt: + AARCH64_VALID_CALL_TARGET + ld1 {v4.4s},[x0] + adrp x10,.Lsbox + add x10,x10,#:lo12:.Lsbox + ld1 {v16.16b,v17.16b,v18.16b,v19.16b},[x10],#64 + ld1 {v20.16b,v21.16b,v22.16b,v23.16b},[x10],#64 + ld1 {v24.16b,v25.16b,v26.16b,v27.16b},[x10],#64 + ld1 {v28.16b,v29.16b,v30.16b,v31.16b},[x10] +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif + mov x3,x2 + mov x10,x3 + mov w11,#8 + mov w12,v4.s[0] + mov w13,v4.s[1] + mov w14,v4.s[2] + mov w15,v4.s[3] +10: + ldp w7,w8,[x10],8 + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + eor w6,w14,w15 + eor w9,w7,w13 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w12,w12,w6 + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + eor w6,w14,w15 + eor w9,w12,w8 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + ldp w7,w8,[x10],8 + eor w13,w13,w6 + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + eor w6,w12,w13 + eor w9,w7,w15 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w14,w14,w6 + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + eor w6,w12,w13 + eor w9,w14,w8 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w15,w15,w6 + subs w11,w11,#1 + b.ne 10b + mov v4.s[0],w15 + mov v4.s[1],w14 + mov v4.s[2],w13 + mov v4.s[3],w12 +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif + st1 {v4.4s},[x1] + ret +.size vpsm4_decrypt,.-vpsm4_decrypt +.globl vpsm4_ecb_encrypt +.type vpsm4_ecb_encrypt,%function +.align 5 +vpsm4_ecb_encrypt: + AARCH64_SIGN_LINK_REGISTER + // convert length into blocks + lsr x2,x2,4 + stp d8,d9,[sp,#-80]! + stp d10,d11,[sp,#16] + stp d12,d13,[sp,#32] + stp d14,d15,[sp,#48] + stp x29,x30,[sp,#64] + adrp x10,.Lsbox + add x10,x10,#:lo12:.Lsbox + ld1 {v16.16b,v17.16b,v18.16b,v19.16b},[x10],#64 + ld1 {v20.16b,v21.16b,v22.16b,v23.16b},[x10],#64 + ld1 {v24.16b,v25.16b,v26.16b,v27.16b},[x10],#64 + ld1 {v28.16b,v29.16b,v30.16b,v31.16b},[x10] +.Lecb_8_blocks_process: + cmp w2,#8 + b.lt .Lecb_4_blocks_process + ld4 {v4.4s,v5.4s,v6.4s,v7.4s},[x0],#64 + ld4 {v8.4s,v9.4s,v10.4s,v11.4s},[x0],#64 +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif +#ifndef __AARCH64EB__ + rev32 v5.16b,v5.16b +#endif +#ifndef __AARCH64EB__ + rev32 v6.16b,v6.16b +#endif +#ifndef __AARCH64EB__ + rev32 v7.16b,v7.16b +#endif +#ifndef __AARCH64EB__ + rev32 v8.16b,v8.16b +#endif +#ifndef __AARCH64EB__ + rev32 v9.16b,v9.16b +#endif +#ifndef __AARCH64EB__ + rev32 v10.16b,v10.16b +#endif +#ifndef __AARCH64EB__ + rev32 v11.16b,v11.16b +#endif + bl _vpsm4_enc_8blks + st4 {v0.4s,v1.4s,v2.4s,v3.4s},[x1],#64 + st4 {v4.4s,v5.4s,v6.4s,v7.4s},[x1],#64 + subs w2,w2,#8 + b.gt .Lecb_8_blocks_process + b 100f +.Lecb_4_blocks_process: + cmp w2,#4 + b.lt 1f + ld4 {v4.4s,v5.4s,v6.4s,v7.4s},[x0],#64 +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif +#ifndef __AARCH64EB__ + rev32 v5.16b,v5.16b +#endif +#ifndef __AARCH64EB__ + rev32 v6.16b,v6.16b +#endif +#ifndef __AARCH64EB__ + rev32 v7.16b,v7.16b +#endif + bl _vpsm4_enc_4blks + st4 {v0.4s,v1.4s,v2.4s,v3.4s},[x1],#64 + sub w2,w2,#4 +1: + // process last block + cmp w2,#1 + b.lt 100f + b.gt 1f + ld1 {v4.4s},[x0] +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif + mov x10,x3 + mov w11,#8 + mov w12,v4.s[0] + mov w13,v4.s[1] + mov w14,v4.s[2] + mov w15,v4.s[3] +10: + ldp w7,w8,[x10],8 + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + eor w6,w14,w15 + eor w9,w7,w13 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w12,w12,w6 + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + eor w6,w14,w15 + eor w9,w12,w8 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + ldp w7,w8,[x10],8 + eor w13,w13,w6 + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + eor w6,w12,w13 + eor w9,w7,w15 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w14,w14,w6 + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + eor w6,w12,w13 + eor w9,w14,w8 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w15,w15,w6 + subs w11,w11,#1 + b.ne 10b + mov v4.s[0],w15 + mov v4.s[1],w14 + mov v4.s[2],w13 + mov v4.s[3],w12 +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif + st1 {v4.4s},[x1] + b 100f +1: // process last 2 blocks + ld4 {v4.s,v5.s,v6.s,v7.s}[0],[x0],#16 + ld4 {v4.s,v5.s,v6.s,v7.s}[1],[x0],#16 + cmp w2,#2 + b.gt 1f +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif +#ifndef __AARCH64EB__ + rev32 v5.16b,v5.16b +#endif +#ifndef __AARCH64EB__ + rev32 v6.16b,v6.16b +#endif +#ifndef __AARCH64EB__ + rev32 v7.16b,v7.16b +#endif + bl _vpsm4_enc_4blks + st4 {v0.s,v1.s,v2.s,v3.s}[0],[x1],#16 + st4 {v0.s,v1.s,v2.s,v3.s}[1],[x1] + b 100f +1: // process last 3 blocks + ld4 {v4.s,v5.s,v6.s,v7.s}[2],[x0],#16 +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif +#ifndef __AARCH64EB__ + rev32 v5.16b,v5.16b +#endif +#ifndef __AARCH64EB__ + rev32 v6.16b,v6.16b +#endif +#ifndef __AARCH64EB__ + rev32 v7.16b,v7.16b +#endif + bl _vpsm4_enc_4blks + st4 {v0.s,v1.s,v2.s,v3.s}[0],[x1],#16 + st4 {v0.s,v1.s,v2.s,v3.s}[1],[x1],#16 + st4 {v0.s,v1.s,v2.s,v3.s}[2],[x1] +100: + ldp d10,d11,[sp,#16] + ldp d12,d13,[sp,#32] + ldp d14,d15,[sp,#48] + ldp x29,x30,[sp,#64] + ldp d8,d9,[sp],#80 + AARCH64_VALIDATE_LINK_REGISTER + ret +.size vpsm4_ecb_encrypt,.-vpsm4_ecb_encrypt +.globl vpsm4_cbc_encrypt +.type vpsm4_cbc_encrypt,%function +.align 5 +vpsm4_cbc_encrypt: + AARCH64_VALID_CALL_TARGET + lsr x2,x2,4 + adrp x10,.Lsbox + add x10,x10,#:lo12:.Lsbox + ld1 {v16.16b,v17.16b,v18.16b,v19.16b},[x10],#64 + ld1 {v20.16b,v21.16b,v22.16b,v23.16b},[x10],#64 + ld1 {v24.16b,v25.16b,v26.16b,v27.16b},[x10],#64 + ld1 {v28.16b,v29.16b,v30.16b,v31.16b},[x10] + cbz w5,.Ldec + ld1 {v3.4s},[x4] +.Lcbc_4_blocks_enc: + cmp w2,#4 + b.lt 1f + ld1 {v4.4s,v5.4s,v6.4s,v7.4s},[x0],#64 + eor v4.16b,v4.16b,v3.16b +#ifndef __AARCH64EB__ + rev32 v5.16b,v5.16b +#endif +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif +#ifndef __AARCH64EB__ + rev32 v6.16b,v6.16b +#endif +#ifndef __AARCH64EB__ + rev32 v7.16b,v7.16b +#endif + mov x10,x3 + mov w11,#8 + mov w12,v4.s[0] + mov w13,v4.s[1] + mov w14,v4.s[2] + mov w15,v4.s[3] +10: + ldp w7,w8,[x10],8 + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + eor w6,w14,w15 + eor w9,w7,w13 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w12,w12,w6 + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + eor w6,w14,w15 + eor w9,w12,w8 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + ldp w7,w8,[x10],8 + eor w13,w13,w6 + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + eor w6,w12,w13 + eor w9,w7,w15 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w14,w14,w6 + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + eor w6,w12,w13 + eor w9,w14,w8 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w15,w15,w6 + subs w11,w11,#1 + b.ne 10b + mov v4.s[0],w15 + mov v4.s[1],w14 + mov v4.s[2],w13 + mov v4.s[3],w12 + eor v5.16b,v5.16b,v4.16b + mov x10,x3 + mov w11,#8 + mov w12,v5.s[0] + mov w13,v5.s[1] + mov w14,v5.s[2] + mov w15,v5.s[3] +10: + ldp w7,w8,[x10],8 + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + eor w6,w14,w15 + eor w9,w7,w13 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w12,w12,w6 + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + eor w6,w14,w15 + eor w9,w12,w8 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + ldp w7,w8,[x10],8 + eor w13,w13,w6 + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + eor w6,w12,w13 + eor w9,w7,w15 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w14,w14,w6 + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + eor w6,w12,w13 + eor w9,w14,w8 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w15,w15,w6 + subs w11,w11,#1 + b.ne 10b + mov v5.s[0],w15 + mov v5.s[1],w14 + mov v5.s[2],w13 + mov v5.s[3],w12 +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif + eor v6.16b,v6.16b,v5.16b + mov x10,x3 + mov w11,#8 + mov w12,v6.s[0] + mov w13,v6.s[1] + mov w14,v6.s[2] + mov w15,v6.s[3] +10: + ldp w7,w8,[x10],8 + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + eor w6,w14,w15 + eor w9,w7,w13 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w12,w12,w6 + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + eor w6,w14,w15 + eor w9,w12,w8 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + ldp w7,w8,[x10],8 + eor w13,w13,w6 + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + eor w6,w12,w13 + eor w9,w7,w15 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w14,w14,w6 + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + eor w6,w12,w13 + eor w9,w14,w8 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w15,w15,w6 + subs w11,w11,#1 + b.ne 10b + mov v6.s[0],w15 + mov v6.s[1],w14 + mov v6.s[2],w13 + mov v6.s[3],w12 +#ifndef __AARCH64EB__ + rev32 v5.16b,v5.16b +#endif + eor v7.16b,v7.16b,v6.16b + mov x10,x3 + mov w11,#8 + mov w12,v7.s[0] + mov w13,v7.s[1] + mov w14,v7.s[2] + mov w15,v7.s[3] +10: + ldp w7,w8,[x10],8 + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + eor w6,w14,w15 + eor w9,w7,w13 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w12,w12,w6 + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + eor w6,w14,w15 + eor w9,w12,w8 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + ldp w7,w8,[x10],8 + eor w13,w13,w6 + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + eor w6,w12,w13 + eor w9,w7,w15 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w14,w14,w6 + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + eor w6,w12,w13 + eor w9,w14,w8 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w15,w15,w6 + subs w11,w11,#1 + b.ne 10b + mov v7.s[0],w15 + mov v7.s[1],w14 + mov v7.s[2],w13 + mov v7.s[3],w12 +#ifndef __AARCH64EB__ + rev32 v6.16b,v6.16b +#endif +#ifndef __AARCH64EB__ + rev32 v7.16b,v7.16b +#endif + orr v3.16b,v7.16b,v7.16b + st1 {v4.4s,v5.4s,v6.4s,v7.4s},[x1],#64 + subs w2,w2,#4 + b.ne .Lcbc_4_blocks_enc + b 2f +1: + subs w2,w2,#1 + b.lt 2f + ld1 {v4.4s},[x0],#16 + eor v3.16b,v3.16b,v4.16b +#ifndef __AARCH64EB__ + rev32 v3.16b,v3.16b +#endif + mov x10,x3 + mov w11,#8 + mov w12,v3.s[0] + mov w13,v3.s[1] + mov w14,v3.s[2] + mov w15,v3.s[3] +10: + ldp w7,w8,[x10],8 + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + eor w6,w14,w15 + eor w9,w7,w13 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w12,w12,w6 + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + eor w6,w14,w15 + eor w9,w12,w8 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + ldp w7,w8,[x10],8 + eor w13,w13,w6 + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + eor w6,w12,w13 + eor w9,w7,w15 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w14,w14,w6 + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + eor w6,w12,w13 + eor w9,w14,w8 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w15,w15,w6 + subs w11,w11,#1 + b.ne 10b + mov v3.s[0],w15 + mov v3.s[1],w14 + mov v3.s[2],w13 + mov v3.s[3],w12 +#ifndef __AARCH64EB__ + rev32 v3.16b,v3.16b +#endif + st1 {v3.4s},[x1],#16 + b 1b +2: + // save back IV + st1 {v3.4s},[x4] + ret + +.Ldec: + // decryption mode starts + AARCH64_SIGN_LINK_REGISTER + stp d8,d9,[sp,#-80]! + stp d10,d11,[sp,#16] + stp d12,d13,[sp,#32] + stp d14,d15,[sp,#48] + stp x29,x30,[sp,#64] +.Lcbc_8_blocks_dec: + cmp w2,#8 + b.lt 1f + ld4 {v4.4s,v5.4s,v6.4s,v7.4s},[x0] + add x10,x0,#64 + ld4 {v8.4s,v9.4s,v10.4s,v11.4s},[x10] +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif +#ifndef __AARCH64EB__ + rev32 v5.16b,v5.16b +#endif +#ifndef __AARCH64EB__ + rev32 v6.16b,v6.16b +#endif +#ifndef __AARCH64EB__ + rev32 v7.16b,v7.16b +#endif +#ifndef __AARCH64EB__ + rev32 v8.16b,v8.16b +#endif +#ifndef __AARCH64EB__ + rev32 v9.16b,v9.16b +#endif +#ifndef __AARCH64EB__ + rev32 v10.16b,v10.16b +#endif +#ifndef __AARCH64EB__ + rev32 v11.16b,v11.16b +#endif + bl _vpsm4_enc_8blks + zip1 v8.4s,v0.4s,v1.4s + zip2 v9.4s,v0.4s,v1.4s + zip1 v10.4s,v2.4s,v3.4s + zip2 v11.4s,v2.4s,v3.4s + zip1 v0.2d,v8.2d,v10.2d + zip2 v1.2d,v8.2d,v10.2d + zip1 v2.2d,v9.2d,v11.2d + zip2 v3.2d,v9.2d,v11.2d + zip1 v8.4s,v4.4s,v5.4s + zip2 v9.4s,v4.4s,v5.4s + zip1 v10.4s,v6.4s,v7.4s + zip2 v11.4s,v6.4s,v7.4s + zip1 v4.2d,v8.2d,v10.2d + zip2 v5.2d,v8.2d,v10.2d + zip1 v6.2d,v9.2d,v11.2d + zip2 v7.2d,v9.2d,v11.2d + ld1 {v15.4s},[x4] + ld1 {v8.4s,v9.4s,v10.4s,v11.4s},[x0],#64 + // note ivec1 and vtmpx[3] are reusing the same register + // care needs to be taken to avoid conflict + eor v0.16b,v0.16b,v15.16b + ld1 {v12.4s,v13.4s,v14.4s,v15.4s},[x0],#64 + eor v1.16b,v1.16b,v8.16b + eor v2.16b,v2.16b,v9.16b + eor v3.16b,v3.16b,v10.16b + // save back IV + st1 {v15.4s}, [x4] + eor v4.16b,v4.16b,v11.16b + eor v5.16b,v5.16b,v12.16b + eor v6.16b,v6.16b,v13.16b + eor v7.16b,v7.16b,v14.16b + st1 {v0.4s,v1.4s,v2.4s,v3.4s},[x1],#64 + st1 {v4.4s,v5.4s,v6.4s,v7.4s},[x1],#64 + subs w2,w2,#8 + b.gt .Lcbc_8_blocks_dec + b.eq 100f +1: + ld1 {v15.4s},[x4] +.Lcbc_4_blocks_dec: + cmp w2,#4 + b.lt 1f + ld4 {v4.4s,v5.4s,v6.4s,v7.4s},[x0] +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif +#ifndef __AARCH64EB__ + rev32 v5.16b,v5.16b +#endif +#ifndef __AARCH64EB__ + rev32 v6.16b,v6.16b +#endif +#ifndef __AARCH64EB__ + rev32 v7.16b,v7.16b +#endif + bl _vpsm4_enc_4blks + ld1 {v4.4s,v5.4s,v6.4s,v7.4s},[x0],#64 + zip1 v8.4s,v0.4s,v1.4s + zip2 v9.4s,v0.4s,v1.4s + zip1 v10.4s,v2.4s,v3.4s + zip2 v11.4s,v2.4s,v3.4s + zip1 v0.2d,v8.2d,v10.2d + zip2 v1.2d,v8.2d,v10.2d + zip1 v2.2d,v9.2d,v11.2d + zip2 v3.2d,v9.2d,v11.2d + eor v0.16b,v0.16b,v15.16b + eor v1.16b,v1.16b,v4.16b + orr v15.16b,v7.16b,v7.16b + eor v2.16b,v2.16b,v5.16b + eor v3.16b,v3.16b,v6.16b + st1 {v0.4s,v1.4s,v2.4s,v3.4s},[x1],#64 + subs w2,w2,#4 + b.gt .Lcbc_4_blocks_dec + // save back IV + st1 {v7.4s}, [x4] + b 100f +1: // last block + subs w2,w2,#1 + b.lt 100f + b.gt 1f + ld1 {v4.4s},[x0],#16 + // save back IV + st1 {v4.4s}, [x4] +#ifndef __AARCH64EB__ + rev32 v8.16b,v4.16b +#else + mov v8.16b,v4.16b +#endif + mov x10,x3 + mov w11,#8 + mov w12,v8.s[0] + mov w13,v8.s[1] + mov w14,v8.s[2] + mov w15,v8.s[3] +10: + ldp w7,w8,[x10],8 + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + eor w6,w14,w15 + eor w9,w7,w13 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w12,w12,w6 + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + eor w6,w14,w15 + eor w9,w12,w8 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + ldp w7,w8,[x10],8 + eor w13,w13,w6 + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + eor w6,w12,w13 + eor w9,w7,w15 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w14,w14,w6 + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + eor w6,w12,w13 + eor w9,w14,w8 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w15,w15,w6 + subs w11,w11,#1 + b.ne 10b + mov v8.s[0],w15 + mov v8.s[1],w14 + mov v8.s[2],w13 + mov v8.s[3],w12 +#ifndef __AARCH64EB__ + rev32 v8.16b,v8.16b +#endif + eor v8.16b,v8.16b,v15.16b + st1 {v8.4s},[x1],#16 + b 100f +1: // last two blocks + ld4 {v4.s,v5.s,v6.s,v7.s}[0],[x0] + add x10,x0,#16 + ld4 {v4.s,v5.s,v6.s,v7.s}[1],[x10],#16 + subs w2,w2,1 + b.gt 1f +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif +#ifndef __AARCH64EB__ + rev32 v5.16b,v5.16b +#endif +#ifndef __AARCH64EB__ + rev32 v6.16b,v6.16b +#endif +#ifndef __AARCH64EB__ + rev32 v7.16b,v7.16b +#endif + bl _vpsm4_enc_4blks + ld1 {v4.4s,v5.4s},[x0],#32 + zip1 v8.4s,v0.4s,v1.4s + zip2 v9.4s,v0.4s,v1.4s + zip1 v10.4s,v2.4s,v3.4s + zip2 v11.4s,v2.4s,v3.4s + zip1 v0.2d,v8.2d,v10.2d + zip2 v1.2d,v8.2d,v10.2d + zip1 v2.2d,v9.2d,v11.2d + zip2 v3.2d,v9.2d,v11.2d + eor v0.16b,v0.16b,v15.16b + eor v1.16b,v1.16b,v4.16b + st1 {v0.4s,v1.4s},[x1],#32 + // save back IV + st1 {v5.4s}, [x4] + b 100f +1: // last 3 blocks + ld4 {v4.s,v5.s,v6.s,v7.s}[2],[x10] +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif +#ifndef __AARCH64EB__ + rev32 v5.16b,v5.16b +#endif +#ifndef __AARCH64EB__ + rev32 v6.16b,v6.16b +#endif +#ifndef __AARCH64EB__ + rev32 v7.16b,v7.16b +#endif + bl _vpsm4_enc_4blks + ld1 {v4.4s,v5.4s,v6.4s},[x0],#48 + zip1 v8.4s,v0.4s,v1.4s + zip2 v9.4s,v0.4s,v1.4s + zip1 v10.4s,v2.4s,v3.4s + zip2 v11.4s,v2.4s,v3.4s + zip1 v0.2d,v8.2d,v10.2d + zip2 v1.2d,v8.2d,v10.2d + zip1 v2.2d,v9.2d,v11.2d + zip2 v3.2d,v9.2d,v11.2d + eor v0.16b,v0.16b,v15.16b + eor v1.16b,v1.16b,v4.16b + eor v2.16b,v2.16b,v5.16b + st1 {v0.4s,v1.4s,v2.4s},[x1],#48 + // save back IV + st1 {v6.4s}, [x4] +100: + ldp d10,d11,[sp,#16] + ldp d12,d13,[sp,#32] + ldp d14,d15,[sp,#48] + ldp x29,x30,[sp,#64] + ldp d8,d9,[sp],#80 + AARCH64_VALIDATE_LINK_REGISTER + ret +.size vpsm4_cbc_encrypt,.-vpsm4_cbc_encrypt +.globl vpsm4_ctr32_encrypt_blocks +.type vpsm4_ctr32_encrypt_blocks,%function +.align 5 +vpsm4_ctr32_encrypt_blocks: + AARCH64_VALID_CALL_TARGET + ld1 {v3.4s},[x4] +#ifndef __AARCH64EB__ + rev32 v3.16b,v3.16b +#endif + adrp x10,.Lsbox + add x10,x10,#:lo12:.Lsbox + ld1 {v16.16b,v17.16b,v18.16b,v19.16b},[x10],#64 + ld1 {v20.16b,v21.16b,v22.16b,v23.16b},[x10],#64 + ld1 {v24.16b,v25.16b,v26.16b,v27.16b},[x10],#64 + ld1 {v28.16b,v29.16b,v30.16b,v31.16b},[x10] + cmp w2,#1 + b.ne 1f + // fast processing for one single block without + // context saving overhead + mov x10,x3 + mov w11,#8 + mov w12,v3.s[0] + mov w13,v3.s[1] + mov w14,v3.s[2] + mov w15,v3.s[3] +10: + ldp w7,w8,[x10],8 + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + eor w6,w14,w15 + eor w9,w7,w13 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w12,w12,w6 + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + eor w6,w14,w15 + eor w9,w12,w8 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + ldp w7,w8,[x10],8 + eor w13,w13,w6 + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + eor w6,w12,w13 + eor w9,w7,w15 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w14,w14,w6 + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + eor w6,w12,w13 + eor w9,w14,w8 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w15,w15,w6 + subs w11,w11,#1 + b.ne 10b + mov v3.s[0],w15 + mov v3.s[1],w14 + mov v3.s[2],w13 + mov v3.s[3],w12 +#ifndef __AARCH64EB__ + rev32 v3.16b,v3.16b +#endif + ld1 {v4.4s},[x0] + eor v4.16b,v4.16b,v3.16b + st1 {v4.4s},[x1] + ret +1: + AARCH64_SIGN_LINK_REGISTER + stp d8,d9,[sp,#-80]! + stp d10,d11,[sp,#16] + stp d12,d13,[sp,#32] + stp d14,d15,[sp,#48] + stp x29,x30,[sp,#64] + mov w12,v3.s[0] + mov w13,v3.s[1] + mov w14,v3.s[2] + mov w5,v3.s[3] +.Lctr32_4_blocks_process: + cmp w2,#4 + b.lt 1f + dup v4.4s,w12 + dup v5.4s,w13 + dup v6.4s,w14 + mov v7.s[0],w5 + add w5,w5,#1 + mov v7.s[1],w5 + add w5,w5,#1 + mov v7.s[2],w5 + add w5,w5,#1 + mov v7.s[3],w5 + add w5,w5,#1 + cmp w2,#8 + b.ge .Lctr32_8_blocks_process + bl _vpsm4_enc_4blks + ld4 {v12.4s,v13.4s,v14.4s,v15.4s},[x0],#64 + eor v0.16b,v0.16b,v12.16b + eor v1.16b,v1.16b,v13.16b + eor v2.16b,v2.16b,v14.16b + eor v3.16b,v3.16b,v15.16b + st4 {v0.4s,v1.4s,v2.4s,v3.4s},[x1],#64 + subs w2,w2,#4 + b.ne .Lctr32_4_blocks_process + b 100f +.Lctr32_8_blocks_process: + dup v8.4s,w12 + dup v9.4s,w13 + dup v10.4s,w14 + mov v11.s[0],w5 + add w5,w5,#1 + mov v11.s[1],w5 + add w5,w5,#1 + mov v11.s[2],w5 + add w5,w5,#1 + mov v11.s[3],w5 + add w5,w5,#1 + bl _vpsm4_enc_8blks + ld4 {v12.4s,v13.4s,v14.4s,v15.4s},[x0],#64 + ld4 {v8.4s,v9.4s,v10.4s,v11.4s},[x0],#64 + eor v0.16b,v0.16b,v12.16b + eor v1.16b,v1.16b,v13.16b + eor v2.16b,v2.16b,v14.16b + eor v3.16b,v3.16b,v15.16b + eor v4.16b,v4.16b,v8.16b + eor v5.16b,v5.16b,v9.16b + eor v6.16b,v6.16b,v10.16b + eor v7.16b,v7.16b,v11.16b + st4 {v0.4s,v1.4s,v2.4s,v3.4s},[x1],#64 + st4 {v4.4s,v5.4s,v6.4s,v7.4s},[x1],#64 + subs w2,w2,#8 + b.ne .Lctr32_4_blocks_process + b 100f +1: // last block processing + subs w2,w2,#1 + b.lt 100f + b.gt 1f + mov v3.s[0],w12 + mov v3.s[1],w13 + mov v3.s[2],w14 + mov v3.s[3],w5 + mov x10,x3 + mov w11,#8 + mov w12,v3.s[0] + mov w13,v3.s[1] + mov w14,v3.s[2] + mov w15,v3.s[3] +10: + ldp w7,w8,[x10],8 + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + eor w6,w14,w15 + eor w9,w7,w13 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w12,w12,w6 + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + eor w6,w14,w15 + eor w9,w12,w8 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + ldp w7,w8,[x10],8 + eor w13,w13,w6 + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + eor w6,w12,w13 + eor w9,w7,w15 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w14,w14,w6 + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + eor w6,w12,w13 + eor w9,w14,w8 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w15,w15,w6 + subs w11,w11,#1 + b.ne 10b + mov v3.s[0],w15 + mov v3.s[1],w14 + mov v3.s[2],w13 + mov v3.s[3],w12 +#ifndef __AARCH64EB__ + rev32 v3.16b,v3.16b +#endif + ld1 {v4.4s},[x0] + eor v4.16b,v4.16b,v3.16b + st1 {v4.4s},[x1] + b 100f +1: // last 2 blocks processing + dup v4.4s,w12 + dup v5.4s,w13 + dup v6.4s,w14 + mov v7.s[0],w5 + add w5,w5,#1 + mov v7.s[1],w5 + subs w2,w2,#1 + b.ne 1f + bl _vpsm4_enc_4blks + ld4 {v12.s,v13.s,v14.s,v15.s}[0],[x0],#16 + ld4 {v12.s,v13.s,v14.s,v15.s}[1],[x0],#16 + eor v0.16b,v0.16b,v12.16b + eor v1.16b,v1.16b,v13.16b + eor v2.16b,v2.16b,v14.16b + eor v3.16b,v3.16b,v15.16b + st4 {v0.s,v1.s,v2.s,v3.s}[0],[x1],#16 + st4 {v0.s,v1.s,v2.s,v3.s}[1],[x1],#16 + b 100f +1: // last 3 blocks processing + add w5,w5,#1 + mov v7.s[2],w5 + bl _vpsm4_enc_4blks + ld4 {v12.s,v13.s,v14.s,v15.s}[0],[x0],#16 + ld4 {v12.s,v13.s,v14.s,v15.s}[1],[x0],#16 + ld4 {v12.s,v13.s,v14.s,v15.s}[2],[x0],#16 + eor v0.16b,v0.16b,v12.16b + eor v1.16b,v1.16b,v13.16b + eor v2.16b,v2.16b,v14.16b + eor v3.16b,v3.16b,v15.16b + st4 {v0.s,v1.s,v2.s,v3.s}[0],[x1],#16 + st4 {v0.s,v1.s,v2.s,v3.s}[1],[x1],#16 + st4 {v0.s,v1.s,v2.s,v3.s}[2],[x1],#16 +100: + ldp d10,d11,[sp,#16] + ldp d12,d13,[sp,#32] + ldp d14,d15,[sp,#48] + ldp x29,x30,[sp,#64] + ldp d8,d9,[sp],#80 + AARCH64_VALIDATE_LINK_REGISTER + ret +.size vpsm4_ctr32_encrypt_blocks,.-vpsm4_ctr32_encrypt_blocks +.globl vpsm4_xts_encrypt_gb +.type vpsm4_xts_encrypt_gb,%function +.align 5 +vpsm4_xts_encrypt_gb: + AARCH64_SIGN_LINK_REGISTER + stp x15, x16, [sp, #-0x10]! + stp x17, x18, [sp, #-0x10]! + stp x19, x20, [sp, #-0x10]! + stp x21, x22, [sp, #-0x10]! + stp x23, x24, [sp, #-0x10]! + stp x25, x26, [sp, #-0x10]! + stp x27, x28, [sp, #-0x10]! + stp x29, x30, [sp, #-0x10]! + stp d8, d9, [sp, #-0x10]! + stp d10, d11, [sp, #-0x10]! + stp d12, d13, [sp, #-0x10]! + stp d14, d15, [sp, #-0x10]! + mov x26,x3 + mov x27,x4 + mov w28,w6 + ld1 {v8.4s}, [x5] + mov x3,x27 + adrp x10,.Lsbox + add x10,x10,#:lo12:.Lsbox + ld1 {v16.16b,v17.16b,v18.16b,v19.16b},[x10],#64 + ld1 {v20.16b,v21.16b,v22.16b,v23.16b},[x10],#64 + ld1 {v24.16b,v25.16b,v26.16b,v27.16b},[x10],#64 + ld1 {v28.16b,v29.16b,v30.16b,v31.16b},[x10] +#ifndef __AARCH64EB__ + rev32 v8.16b,v8.16b +#endif + mov x10,x3 + mov w11,#8 + mov w12,v8.s[0] + mov w13,v8.s[1] + mov w14,v8.s[2] + mov w15,v8.s[3] +10: + ldp w7,w8,[x10],8 + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + eor w6,w14,w15 + eor w9,w7,w13 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w12,w12,w6 + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + eor w6,w14,w15 + eor w9,w12,w8 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + ldp w7,w8,[x10],8 + eor w13,w13,w6 + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + eor w6,w12,w13 + eor w9,w7,w15 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w14,w14,w6 + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + eor w6,w12,w13 + eor w9,w14,w8 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w15,w15,w6 + subs w11,w11,#1 + b.ne 10b + mov v8.s[0],w15 + mov v8.s[1],w14 + mov v8.s[2],w13 + mov v8.s[3],w12 +#ifndef __AARCH64EB__ + rev32 v8.16b,v8.16b +#endif + mov x3,x26 + and x29,x2,#0x0F + // convert length into blocks + lsr x2,x2,4 + cmp x2,#1 + b.lt .return_gb + + cmp x29,0 + // If the encryption/decryption Length is N times of 16, + // the all blocks are encrypted/decrypted in .xts_encrypt_blocks_gb + b.eq .xts_encrypt_blocks_gb + + // If the encryption/decryption length is not N times of 16, + // the last two blocks are encrypted/decrypted in .last_2blks_tweak_gb or .only_2blks_tweak_gb + // the other blocks are encrypted/decrypted in .xts_encrypt_blocks_gb + subs x2,x2,#1 + b.eq .only_2blks_tweak_gb +.xts_encrypt_blocks_gb: + rbit v8.16b,v8.16b +#ifdef __AARCH64EB__ + rev32 v8.16b,v8.16b +#endif + mov x12,v8.d[0] + mov x13,v8.d[1] + mov w7,0x87 + extr x9,x13,x13,#32 + extr x15,x13,x12,#63 + and w8,w7,w9,asr#31 + eor x14,x8,x12,lsl#1 + mov w7,0x87 + extr x9,x15,x15,#32 + extr x17,x15,x14,#63 + and w8,w7,w9,asr#31 + eor x16,x8,x14,lsl#1 + mov w7,0x87 + extr x9,x17,x17,#32 + extr x19,x17,x16,#63 + and w8,w7,w9,asr#31 + eor x18,x8,x16,lsl#1 + mov w7,0x87 + extr x9,x19,x19,#32 + extr x21,x19,x18,#63 + and w8,w7,w9,asr#31 + eor x20,x8,x18,lsl#1 + mov w7,0x87 + extr x9,x21,x21,#32 + extr x23,x21,x20,#63 + and w8,w7,w9,asr#31 + eor x22,x8,x20,lsl#1 + mov w7,0x87 + extr x9,x23,x23,#32 + extr x25,x23,x22,#63 + and w8,w7,w9,asr#31 + eor x24,x8,x22,lsl#1 + mov w7,0x87 + extr x9,x25,x25,#32 + extr x27,x25,x24,#63 + and w8,w7,w9,asr#31 + eor x26,x8,x24,lsl#1 +.Lxts_8_blocks_process_gb: + cmp x2,#8 + b.lt .Lxts_4_blocks_process_gb + mov v0.d[0],x12 + mov v0.d[1],x13 +#ifdef __AARCH64EB__ + rev32 v0.16b,v0.16b +#endif + mov v1.d[0],x14 + mov v1.d[1],x15 +#ifdef __AARCH64EB__ + rev32 v1.16b,v1.16b +#endif + mov v2.d[0],x16 + mov v2.d[1],x17 +#ifdef __AARCH64EB__ + rev32 v2.16b,v2.16b +#endif + mov v3.d[0],x18 + mov v3.d[1],x19 +#ifdef __AARCH64EB__ + rev32 v3.16b,v3.16b +#endif + mov v12.d[0],x20 + mov v12.d[1],x21 +#ifdef __AARCH64EB__ + rev32 v12.16b,v12.16b +#endif + mov v13.d[0],x22 + mov v13.d[1],x23 +#ifdef __AARCH64EB__ + rev32 v13.16b,v13.16b +#endif + mov v14.d[0],x24 + mov v14.d[1],x25 +#ifdef __AARCH64EB__ + rev32 v14.16b,v14.16b +#endif + mov v15.d[0],x26 + mov v15.d[1],x27 +#ifdef __AARCH64EB__ + rev32 v15.16b,v15.16b +#endif + ld1 {v4.4s,v5.4s,v6.4s,v7.4s},[x0],#64 + rbit v0.16b,v0.16b + rbit v1.16b,v1.16b + rbit v2.16b,v2.16b + rbit v3.16b,v3.16b + eor v4.16b, v4.16b, v0.16b + eor v5.16b, v5.16b, v1.16b + eor v6.16b, v6.16b, v2.16b + eor v7.16b, v7.16b, v3.16b + ld1 {v8.4s,v9.4s,v10.4s,v11.4s},[x0],#64 + rbit v12.16b,v12.16b + rbit v13.16b,v13.16b + rbit v14.16b,v14.16b + rbit v15.16b,v15.16b + eor v8.16b, v8.16b, v12.16b + eor v9.16b, v9.16b, v13.16b + eor v10.16b, v10.16b, v14.16b + eor v11.16b, v11.16b, v15.16b +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif +#ifndef __AARCH64EB__ + rev32 v5.16b,v5.16b +#endif +#ifndef __AARCH64EB__ + rev32 v6.16b,v6.16b +#endif +#ifndef __AARCH64EB__ + rev32 v7.16b,v7.16b +#endif +#ifndef __AARCH64EB__ + rev32 v8.16b,v8.16b +#endif +#ifndef __AARCH64EB__ + rev32 v9.16b,v9.16b +#endif +#ifndef __AARCH64EB__ + rev32 v10.16b,v10.16b +#endif +#ifndef __AARCH64EB__ + rev32 v11.16b,v11.16b +#endif + zip1 v0.4s,v4.4s,v5.4s + zip2 v1.4s,v4.4s,v5.4s + zip1 v2.4s,v6.4s,v7.4s + zip2 v3.4s,v6.4s,v7.4s + zip1 v4.2d,v0.2d,v2.2d + zip2 v5.2d,v0.2d,v2.2d + zip1 v6.2d,v1.2d,v3.2d + zip2 v7.2d,v1.2d,v3.2d + zip1 v0.4s,v8.4s,v9.4s + zip2 v1.4s,v8.4s,v9.4s + zip1 v2.4s,v10.4s,v11.4s + zip2 v3.4s,v10.4s,v11.4s + zip1 v8.2d,v0.2d,v2.2d + zip2 v9.2d,v0.2d,v2.2d + zip1 v10.2d,v1.2d,v3.2d + zip2 v11.2d,v1.2d,v3.2d + bl _vpsm4_enc_8blks + zip1 v8.4s,v0.4s,v1.4s + zip2 v9.4s,v0.4s,v1.4s + zip1 v10.4s,v2.4s,v3.4s + zip2 v11.4s,v2.4s,v3.4s + zip1 v0.2d,v8.2d,v10.2d + zip2 v1.2d,v8.2d,v10.2d + zip1 v2.2d,v9.2d,v11.2d + zip2 v3.2d,v9.2d,v11.2d + zip1 v8.4s,v4.4s,v5.4s + zip2 v9.4s,v4.4s,v5.4s + zip1 v10.4s,v6.4s,v7.4s + zip2 v11.4s,v6.4s,v7.4s + zip1 v4.2d,v8.2d,v10.2d + zip2 v5.2d,v8.2d,v10.2d + zip1 v6.2d,v9.2d,v11.2d + zip2 v7.2d,v9.2d,v11.2d + mov v12.d[0],x12 + mov v12.d[1],x13 +#ifdef __AARCH64EB__ + rev32 v12.16b,v12.16b +#endif + mov w7,0x87 + extr x9,x27,x27,#32 + extr x13,x27,x26,#63 + and w8,w7,w9,asr#31 + eor x12,x8,x26,lsl#1 + mov v13.d[0],x14 + mov v13.d[1],x15 +#ifdef __AARCH64EB__ + rev32 v13.16b,v13.16b +#endif + mov w7,0x87 + extr x9,x13,x13,#32 + extr x15,x13,x12,#63 + and w8,w7,w9,asr#31 + eor x14,x8,x12,lsl#1 + mov v14.d[0],x16 + mov v14.d[1],x17 +#ifdef __AARCH64EB__ + rev32 v14.16b,v14.16b +#endif + mov w7,0x87 + extr x9,x15,x15,#32 + extr x17,x15,x14,#63 + and w8,w7,w9,asr#31 + eor x16,x8,x14,lsl#1 + mov v15.d[0],x18 + mov v15.d[1],x19 +#ifdef __AARCH64EB__ + rev32 v15.16b,v15.16b +#endif + mov w7,0x87 + extr x9,x17,x17,#32 + extr x19,x17,x16,#63 + and w8,w7,w9,asr#31 + eor x18,x8,x16,lsl#1 + mov v8.d[0],x20 + mov v8.d[1],x21 +#ifdef __AARCH64EB__ + rev32 v8.16b,v8.16b +#endif + mov w7,0x87 + extr x9,x19,x19,#32 + extr x21,x19,x18,#63 + and w8,w7,w9,asr#31 + eor x20,x8,x18,lsl#1 + mov v9.d[0],x22 + mov v9.d[1],x23 +#ifdef __AARCH64EB__ + rev32 v9.16b,v9.16b +#endif + mov w7,0x87 + extr x9,x21,x21,#32 + extr x23,x21,x20,#63 + and w8,w7,w9,asr#31 + eor x22,x8,x20,lsl#1 + mov v10.d[0],x24 + mov v10.d[1],x25 +#ifdef __AARCH64EB__ + rev32 v10.16b,v10.16b +#endif + mov w7,0x87 + extr x9,x23,x23,#32 + extr x25,x23,x22,#63 + and w8,w7,w9,asr#31 + eor x24,x8,x22,lsl#1 + mov v11.d[0],x26 + mov v11.d[1],x27 +#ifdef __AARCH64EB__ + rev32 v11.16b,v11.16b +#endif + mov w7,0x87 + extr x9,x25,x25,#32 + extr x27,x25,x24,#63 + and w8,w7,w9,asr#31 + eor x26,x8,x24,lsl#1 + eor v0.16b, v0.16b, v12.16b + eor v1.16b, v1.16b, v13.16b + eor v2.16b, v2.16b, v14.16b + eor v3.16b, v3.16b, v15.16b + eor v4.16b, v4.16b, v8.16b + eor v5.16b, v5.16b, v9.16b + eor v6.16b, v6.16b, v10.16b + eor v7.16b, v7.16b, v11.16b + + // save the last tweak + st1 {v11.4s},[x5] + st1 {v0.4s,v1.4s,v2.4s,v3.4s},[x1],#64 + st1 {v4.4s,v5.4s,v6.4s,v7.4s},[x1],#64 + subs x2,x2,#8 + b.gt .Lxts_8_blocks_process_gb + b 100f +.Lxts_4_blocks_process_gb: + mov v8.d[0],x12 + mov v8.d[1],x13 +#ifdef __AARCH64EB__ + rev32 v8.16b,v8.16b +#endif + mov v9.d[0],x14 + mov v9.d[1],x15 +#ifdef __AARCH64EB__ + rev32 v9.16b,v9.16b +#endif + mov v10.d[0],x16 + mov v10.d[1],x17 +#ifdef __AARCH64EB__ + rev32 v10.16b,v10.16b +#endif + mov v11.d[0],x18 + mov v11.d[1],x19 +#ifdef __AARCH64EB__ + rev32 v11.16b,v11.16b +#endif + cmp x2,#4 + b.lt 1f + ld1 {v4.4s,v5.4s,v6.4s,v7.4s},[x0],#64 + rbit v8.16b,v8.16b + rbit v9.16b,v9.16b + rbit v10.16b,v10.16b + rbit v11.16b,v11.16b + eor v4.16b, v4.16b, v8.16b + eor v5.16b, v5.16b, v9.16b + eor v6.16b, v6.16b, v10.16b + eor v7.16b, v7.16b, v11.16b +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif +#ifndef __AARCH64EB__ + rev32 v5.16b,v5.16b +#endif +#ifndef __AARCH64EB__ + rev32 v6.16b,v6.16b +#endif +#ifndef __AARCH64EB__ + rev32 v7.16b,v7.16b +#endif + zip1 v0.4s,v4.4s,v5.4s + zip2 v1.4s,v4.4s,v5.4s + zip1 v2.4s,v6.4s,v7.4s + zip2 v3.4s,v6.4s,v7.4s + zip1 v4.2d,v0.2d,v2.2d + zip2 v5.2d,v0.2d,v2.2d + zip1 v6.2d,v1.2d,v3.2d + zip2 v7.2d,v1.2d,v3.2d + bl _vpsm4_enc_4blks + zip1 v4.4s,v0.4s,v1.4s + zip2 v5.4s,v0.4s,v1.4s + zip1 v6.4s,v2.4s,v3.4s + zip2 v7.4s,v2.4s,v3.4s + zip1 v0.2d,v4.2d,v6.2d + zip2 v1.2d,v4.2d,v6.2d + zip1 v2.2d,v5.2d,v7.2d + zip2 v3.2d,v5.2d,v7.2d + eor v0.16b, v0.16b, v8.16b + eor v1.16b, v1.16b, v9.16b + eor v2.16b, v2.16b, v10.16b + eor v3.16b, v3.16b, v11.16b + st1 {v0.4s,v1.4s,v2.4s,v3.4s},[x1],#64 + sub x2,x2,#4 + mov v8.d[0],x20 + mov v8.d[1],x21 +#ifdef __AARCH64EB__ + rev32 v8.16b,v8.16b +#endif + mov v9.d[0],x22 + mov v9.d[1],x23 +#ifdef __AARCH64EB__ + rev32 v9.16b,v9.16b +#endif + mov v10.d[0],x24 + mov v10.d[1],x25 +#ifdef __AARCH64EB__ + rev32 v10.16b,v10.16b +#endif + // save the last tweak + st1 {v11.4s},[x5] +1: + // process last block + cmp x2,#1 + b.lt 100f + b.gt 1f + ld1 {v4.4s},[x0],#16 + rbit v8.16b,v8.16b + eor v4.16b, v4.16b, v8.16b +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif + mov x10,x3 + mov w11,#8 + mov w12,v4.s[0] + mov w13,v4.s[1] + mov w14,v4.s[2] + mov w15,v4.s[3] +10: + ldp w7,w8,[x10],8 + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + eor w6,w14,w15 + eor w9,w7,w13 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w12,w12,w6 + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + eor w6,w14,w15 + eor w9,w12,w8 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + ldp w7,w8,[x10],8 + eor w13,w13,w6 + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + eor w6,w12,w13 + eor w9,w7,w15 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w14,w14,w6 + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + eor w6,w12,w13 + eor w9,w14,w8 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w15,w15,w6 + subs w11,w11,#1 + b.ne 10b + mov v4.s[0],w15 + mov v4.s[1],w14 + mov v4.s[2],w13 + mov v4.s[3],w12 +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif + eor v4.16b, v4.16b, v8.16b + st1 {v4.4s},[x1],#16 + // save the last tweak + st1 {v8.4s},[x5] + b 100f +1: // process last 2 blocks + cmp x2,#2 + b.gt 1f + ld1 {v4.4s,v5.4s},[x0],#32 + rbit v8.16b,v8.16b + rbit v9.16b,v9.16b + eor v4.16b, v4.16b, v8.16b + eor v5.16b, v5.16b, v9.16b +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif +#ifndef __AARCH64EB__ + rev32 v5.16b,v5.16b +#endif + zip1 v0.4s,v4.4s,v5.4s + zip2 v1.4s,v4.4s,v5.4s + zip1 v2.4s,v6.4s,v7.4s + zip2 v3.4s,v6.4s,v7.4s + zip1 v4.2d,v0.2d,v2.2d + zip2 v5.2d,v0.2d,v2.2d + zip1 v6.2d,v1.2d,v3.2d + zip2 v7.2d,v1.2d,v3.2d + bl _vpsm4_enc_4blks + zip1 v4.4s,v0.4s,v1.4s + zip2 v5.4s,v0.4s,v1.4s + zip1 v6.4s,v2.4s,v3.4s + zip2 v7.4s,v2.4s,v3.4s + zip1 v0.2d,v4.2d,v6.2d + zip2 v1.2d,v4.2d,v6.2d + zip1 v2.2d,v5.2d,v7.2d + zip2 v3.2d,v5.2d,v7.2d + eor v0.16b, v0.16b, v8.16b + eor v1.16b, v1.16b, v9.16b + st1 {v0.4s,v1.4s},[x1],#32 + // save the last tweak + st1 {v9.4s},[x5] + b 100f +1: // process last 3 blocks + ld1 {v4.4s,v5.4s,v6.4s},[x0],#48 + rbit v8.16b,v8.16b + rbit v9.16b,v9.16b + rbit v10.16b,v10.16b + eor v4.16b, v4.16b, v8.16b + eor v5.16b, v5.16b, v9.16b + eor v6.16b, v6.16b, v10.16b +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif +#ifndef __AARCH64EB__ + rev32 v5.16b,v5.16b +#endif +#ifndef __AARCH64EB__ + rev32 v6.16b,v6.16b +#endif + zip1 v0.4s,v4.4s,v5.4s + zip2 v1.4s,v4.4s,v5.4s + zip1 v2.4s,v6.4s,v7.4s + zip2 v3.4s,v6.4s,v7.4s + zip1 v4.2d,v0.2d,v2.2d + zip2 v5.2d,v0.2d,v2.2d + zip1 v6.2d,v1.2d,v3.2d + zip2 v7.2d,v1.2d,v3.2d + bl _vpsm4_enc_4blks + zip1 v4.4s,v0.4s,v1.4s + zip2 v5.4s,v0.4s,v1.4s + zip1 v6.4s,v2.4s,v3.4s + zip2 v7.4s,v2.4s,v3.4s + zip1 v0.2d,v4.2d,v6.2d + zip2 v1.2d,v4.2d,v6.2d + zip1 v2.2d,v5.2d,v7.2d + zip2 v3.2d,v5.2d,v7.2d + eor v0.16b, v0.16b, v8.16b + eor v1.16b, v1.16b, v9.16b + eor v2.16b, v2.16b, v10.16b + st1 {v0.4s,v1.4s,v2.4s},[x1],#48 + // save the last tweak + st1 {v10.4s},[x5] +100: + cmp x29,0 + b.eq .return_gb + +// This branch calculates the last two tweaks, +// while the encryption/decryption length is larger than 32 +.last_2blks_tweak_gb: + ld1 {v8.4s},[x5] +#ifdef __AARCH64EB__ + rev32 v8.16b,v8.16b +#endif + rbit v2.16b,v8.16b + adrp x10,.Lxts_magic + ldr q0, [x10, #:lo12:.Lxts_magic] + shl v9.16b, v2.16b, #1 + ext v1.16b, v2.16b, v2.16b,#15 + ushr v1.16b, v1.16b, #7 + mul v1.16b, v1.16b, v0.16b + eor v9.16b, v9.16b, v1.16b + rbit v9.16b,v9.16b + rbit v2.16b,v9.16b + adrp x10,.Lxts_magic + ldr q0, [x10, #:lo12:.Lxts_magic] + shl v10.16b, v2.16b, #1 + ext v1.16b, v2.16b, v2.16b,#15 + ushr v1.16b, v1.16b, #7 + mul v1.16b, v1.16b, v0.16b + eor v10.16b, v10.16b, v1.16b + rbit v10.16b,v10.16b + b .check_dec_gb + + +// This branch calculates the last two tweaks, +// while the encryption/decryption length is equal to 32, who only need two tweaks +.only_2blks_tweak_gb: + mov v9.16b,v8.16b +#ifdef __AARCH64EB__ + rev32 v9.16b,v9.16b +#endif + rbit v2.16b,v9.16b + adrp x10,.Lxts_magic + ldr q0, [x10, #:lo12:.Lxts_magic] + shl v10.16b, v2.16b, #1 + ext v1.16b, v2.16b, v2.16b,#15 + ushr v1.16b, v1.16b, #7 + mul v1.16b, v1.16b, v0.16b + eor v10.16b, v10.16b, v1.16b + rbit v10.16b,v10.16b + b .check_dec_gb + + +// Determine whether encryption or decryption is required. +// The last two tweaks need to be swapped for decryption. +.check_dec_gb: + // encryption:1 decryption:0 + cmp w28,1 + b.eq .process_last_2blks_gb + mov v0.16B,v9.16b + mov v9.16B,v10.16b + mov v10.16B,v0.16b + +.process_last_2blks_gb: +#ifdef __AARCH64EB__ + rev32 v9.16b,v9.16b +#endif +#ifdef __AARCH64EB__ + rev32 v10.16b,v10.16b +#endif + ld1 {v4.4s},[x0],#16 + eor v4.16b, v4.16b, v9.16b +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif + mov x10,x3 + mov w11,#8 + mov w12,v4.s[0] + mov w13,v4.s[1] + mov w14,v4.s[2] + mov w15,v4.s[3] +10: + ldp w7,w8,[x10],8 + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + eor w6,w14,w15 + eor w9,w7,w13 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w12,w12,w6 + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + eor w6,w14,w15 + eor w9,w12,w8 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + ldp w7,w8,[x10],8 + eor w13,w13,w6 + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + eor w6,w12,w13 + eor w9,w7,w15 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w14,w14,w6 + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + eor w6,w12,w13 + eor w9,w14,w8 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w15,w15,w6 + subs w11,w11,#1 + b.ne 10b + mov v4.s[0],w15 + mov v4.s[1],w14 + mov v4.s[2],w13 + mov v4.s[3],w12 +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif + eor v4.16b, v4.16b, v9.16b + st1 {v4.4s},[x1],#16 + + sub x26,x1,16 +.loop_gb: + subs x29,x29,1 + ldrb w7,[x26,x29] + ldrb w8,[x0,x29] + strb w8,[x26,x29] + strb w7,[x1,x29] + b.gt .loop_gb + ld1 {v4.4s}, [x26] + eor v4.16b, v4.16b, v10.16b +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif + mov x10,x3 + mov w11,#8 + mov w12,v4.s[0] + mov w13,v4.s[1] + mov w14,v4.s[2] + mov w15,v4.s[3] +10: + ldp w7,w8,[x10],8 + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + eor w6,w14,w15 + eor w9,w7,w13 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w12,w12,w6 + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + eor w6,w14,w15 + eor w9,w12,w8 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + ldp w7,w8,[x10],8 + eor w13,w13,w6 + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + eor w6,w12,w13 + eor w9,w7,w15 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w14,w14,w6 + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + eor w6,w12,w13 + eor w9,w14,w8 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w15,w15,w6 + subs w11,w11,#1 + b.ne 10b + mov v4.s[0],w15 + mov v4.s[1],w14 + mov v4.s[2],w13 + mov v4.s[3],w12 +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif + eor v4.16b, v4.16b, v10.16b + st1 {v4.4s}, [x26] +.return_gb: + ldp d14, d15, [sp], #0x10 + ldp d12, d13, [sp], #0x10 + ldp d10, d11, [sp], #0x10 + ldp d8, d9, [sp], #0x10 + ldp x29, x30, [sp], #0x10 + ldp x27, x28, [sp], #0x10 + ldp x25, x26, [sp], #0x10 + ldp x23, x24, [sp], #0x10 + ldp x21, x22, [sp], #0x10 + ldp x19, x20, [sp], #0x10 + ldp x17, x18, [sp], #0x10 + ldp x15, x16, [sp], #0x10 + AARCH64_VALIDATE_LINK_REGISTER + ret +.size vpsm4_xts_encrypt_gb,.-vpsm4_xts_encrypt_gb +.globl vpsm4_xts_encrypt +.type vpsm4_xts_encrypt,%function +.align 5 +vpsm4_xts_encrypt: + AARCH64_SIGN_LINK_REGISTER + stp x15, x16, [sp, #-0x10]! + stp x17, x18, [sp, #-0x10]! + stp x19, x20, [sp, #-0x10]! + stp x21, x22, [sp, #-0x10]! + stp x23, x24, [sp, #-0x10]! + stp x25, x26, [sp, #-0x10]! + stp x27, x28, [sp, #-0x10]! + stp x29, x30, [sp, #-0x10]! + stp d8, d9, [sp, #-0x10]! + stp d10, d11, [sp, #-0x10]! + stp d12, d13, [sp, #-0x10]! + stp d14, d15, [sp, #-0x10]! + mov x26,x3 + mov x27,x4 + mov w28,w6 + ld1 {v8.4s}, [x5] + mov x3,x27 + adrp x10,.Lsbox + add x10,x10,#:lo12:.Lsbox + ld1 {v16.16b,v17.16b,v18.16b,v19.16b},[x10],#64 + ld1 {v20.16b,v21.16b,v22.16b,v23.16b},[x10],#64 + ld1 {v24.16b,v25.16b,v26.16b,v27.16b},[x10],#64 + ld1 {v28.16b,v29.16b,v30.16b,v31.16b},[x10] +#ifndef __AARCH64EB__ + rev32 v8.16b,v8.16b +#endif + mov x10,x3 + mov w11,#8 + mov w12,v8.s[0] + mov w13,v8.s[1] + mov w14,v8.s[2] + mov w15,v8.s[3] +10: + ldp w7,w8,[x10],8 + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + eor w6,w14,w15 + eor w9,w7,w13 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w12,w12,w6 + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + eor w6,w14,w15 + eor w9,w12,w8 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + ldp w7,w8,[x10],8 + eor w13,w13,w6 + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + eor w6,w12,w13 + eor w9,w7,w15 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w14,w14,w6 + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + eor w6,w12,w13 + eor w9,w14,w8 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w15,w15,w6 + subs w11,w11,#1 + b.ne 10b + mov v8.s[0],w15 + mov v8.s[1],w14 + mov v8.s[2],w13 + mov v8.s[3],w12 +#ifndef __AARCH64EB__ + rev32 v8.16b,v8.16b +#endif + mov x3,x26 + and x29,x2,#0x0F + // convert length into blocks + lsr x2,x2,4 + cmp x2,#1 + b.lt .return + + cmp x29,0 + // If the encryption/decryption Length is N times of 16, + // the all blocks are encrypted/decrypted in .xts_encrypt_blocks + b.eq .xts_encrypt_blocks + + // If the encryption/decryption length is not N times of 16, + // the last two blocks are encrypted/decrypted in .last_2blks_tweak or .only_2blks_tweak + // the other blocks are encrypted/decrypted in .xts_encrypt_blocks + subs x2,x2,#1 + b.eq .only_2blks_tweak +.xts_encrypt_blocks: +#ifdef __AARCH64EB__ + rev32 v8.16b,v8.16b +#endif + mov x12,v8.d[0] + mov x13,v8.d[1] + mov w7,0x87 + extr x9,x13,x13,#32 + extr x15,x13,x12,#63 + and w8,w7,w9,asr#31 + eor x14,x8,x12,lsl#1 + mov w7,0x87 + extr x9,x15,x15,#32 + extr x17,x15,x14,#63 + and w8,w7,w9,asr#31 + eor x16,x8,x14,lsl#1 + mov w7,0x87 + extr x9,x17,x17,#32 + extr x19,x17,x16,#63 + and w8,w7,w9,asr#31 + eor x18,x8,x16,lsl#1 + mov w7,0x87 + extr x9,x19,x19,#32 + extr x21,x19,x18,#63 + and w8,w7,w9,asr#31 + eor x20,x8,x18,lsl#1 + mov w7,0x87 + extr x9,x21,x21,#32 + extr x23,x21,x20,#63 + and w8,w7,w9,asr#31 + eor x22,x8,x20,lsl#1 + mov w7,0x87 + extr x9,x23,x23,#32 + extr x25,x23,x22,#63 + and w8,w7,w9,asr#31 + eor x24,x8,x22,lsl#1 + mov w7,0x87 + extr x9,x25,x25,#32 + extr x27,x25,x24,#63 + and w8,w7,w9,asr#31 + eor x26,x8,x24,lsl#1 +.Lxts_8_blocks_process: + cmp x2,#8 + b.lt .Lxts_4_blocks_process + mov v0.d[0],x12 + mov v0.d[1],x13 +#ifdef __AARCH64EB__ + rev32 v0.16b,v0.16b +#endif + mov v1.d[0],x14 + mov v1.d[1],x15 +#ifdef __AARCH64EB__ + rev32 v1.16b,v1.16b +#endif + mov v2.d[0],x16 + mov v2.d[1],x17 +#ifdef __AARCH64EB__ + rev32 v2.16b,v2.16b +#endif + mov v3.d[0],x18 + mov v3.d[1],x19 +#ifdef __AARCH64EB__ + rev32 v3.16b,v3.16b +#endif + mov v12.d[0],x20 + mov v12.d[1],x21 +#ifdef __AARCH64EB__ + rev32 v12.16b,v12.16b +#endif + mov v13.d[0],x22 + mov v13.d[1],x23 +#ifdef __AARCH64EB__ + rev32 v13.16b,v13.16b +#endif + mov v14.d[0],x24 + mov v14.d[1],x25 +#ifdef __AARCH64EB__ + rev32 v14.16b,v14.16b +#endif + mov v15.d[0],x26 + mov v15.d[1],x27 +#ifdef __AARCH64EB__ + rev32 v15.16b,v15.16b +#endif + ld1 {v4.4s,v5.4s,v6.4s,v7.4s},[x0],#64 + eor v4.16b, v4.16b, v0.16b + eor v5.16b, v5.16b, v1.16b + eor v6.16b, v6.16b, v2.16b + eor v7.16b, v7.16b, v3.16b + ld1 {v8.4s,v9.4s,v10.4s,v11.4s},[x0],#64 + eor v8.16b, v8.16b, v12.16b + eor v9.16b, v9.16b, v13.16b + eor v10.16b, v10.16b, v14.16b + eor v11.16b, v11.16b, v15.16b +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif +#ifndef __AARCH64EB__ + rev32 v5.16b,v5.16b +#endif +#ifndef __AARCH64EB__ + rev32 v6.16b,v6.16b +#endif +#ifndef __AARCH64EB__ + rev32 v7.16b,v7.16b +#endif +#ifndef __AARCH64EB__ + rev32 v8.16b,v8.16b +#endif +#ifndef __AARCH64EB__ + rev32 v9.16b,v9.16b +#endif +#ifndef __AARCH64EB__ + rev32 v10.16b,v10.16b +#endif +#ifndef __AARCH64EB__ + rev32 v11.16b,v11.16b +#endif + zip1 v0.4s,v4.4s,v5.4s + zip2 v1.4s,v4.4s,v5.4s + zip1 v2.4s,v6.4s,v7.4s + zip2 v3.4s,v6.4s,v7.4s + zip1 v4.2d,v0.2d,v2.2d + zip2 v5.2d,v0.2d,v2.2d + zip1 v6.2d,v1.2d,v3.2d + zip2 v7.2d,v1.2d,v3.2d + zip1 v0.4s,v8.4s,v9.4s + zip2 v1.4s,v8.4s,v9.4s + zip1 v2.4s,v10.4s,v11.4s + zip2 v3.4s,v10.4s,v11.4s + zip1 v8.2d,v0.2d,v2.2d + zip2 v9.2d,v0.2d,v2.2d + zip1 v10.2d,v1.2d,v3.2d + zip2 v11.2d,v1.2d,v3.2d + bl _vpsm4_enc_8blks + zip1 v8.4s,v0.4s,v1.4s + zip2 v9.4s,v0.4s,v1.4s + zip1 v10.4s,v2.4s,v3.4s + zip2 v11.4s,v2.4s,v3.4s + zip1 v0.2d,v8.2d,v10.2d + zip2 v1.2d,v8.2d,v10.2d + zip1 v2.2d,v9.2d,v11.2d + zip2 v3.2d,v9.2d,v11.2d + zip1 v8.4s,v4.4s,v5.4s + zip2 v9.4s,v4.4s,v5.4s + zip1 v10.4s,v6.4s,v7.4s + zip2 v11.4s,v6.4s,v7.4s + zip1 v4.2d,v8.2d,v10.2d + zip2 v5.2d,v8.2d,v10.2d + zip1 v6.2d,v9.2d,v11.2d + zip2 v7.2d,v9.2d,v11.2d + mov v12.d[0],x12 + mov v12.d[1],x13 +#ifdef __AARCH64EB__ + rev32 v12.16b,v12.16b +#endif + mov w7,0x87 + extr x9,x27,x27,#32 + extr x13,x27,x26,#63 + and w8,w7,w9,asr#31 + eor x12,x8,x26,lsl#1 + mov v13.d[0],x14 + mov v13.d[1],x15 +#ifdef __AARCH64EB__ + rev32 v13.16b,v13.16b +#endif + mov w7,0x87 + extr x9,x13,x13,#32 + extr x15,x13,x12,#63 + and w8,w7,w9,asr#31 + eor x14,x8,x12,lsl#1 + mov v14.d[0],x16 + mov v14.d[1],x17 +#ifdef __AARCH64EB__ + rev32 v14.16b,v14.16b +#endif + mov w7,0x87 + extr x9,x15,x15,#32 + extr x17,x15,x14,#63 + and w8,w7,w9,asr#31 + eor x16,x8,x14,lsl#1 + mov v15.d[0],x18 + mov v15.d[1],x19 +#ifdef __AARCH64EB__ + rev32 v15.16b,v15.16b +#endif + mov w7,0x87 + extr x9,x17,x17,#32 + extr x19,x17,x16,#63 + and w8,w7,w9,asr#31 + eor x18,x8,x16,lsl#1 + mov v8.d[0],x20 + mov v8.d[1],x21 +#ifdef __AARCH64EB__ + rev32 v8.16b,v8.16b +#endif + mov w7,0x87 + extr x9,x19,x19,#32 + extr x21,x19,x18,#63 + and w8,w7,w9,asr#31 + eor x20,x8,x18,lsl#1 + mov v9.d[0],x22 + mov v9.d[1],x23 +#ifdef __AARCH64EB__ + rev32 v9.16b,v9.16b +#endif + mov w7,0x87 + extr x9,x21,x21,#32 + extr x23,x21,x20,#63 + and w8,w7,w9,asr#31 + eor x22,x8,x20,lsl#1 + mov v10.d[0],x24 + mov v10.d[1],x25 +#ifdef __AARCH64EB__ + rev32 v10.16b,v10.16b +#endif + mov w7,0x87 + extr x9,x23,x23,#32 + extr x25,x23,x22,#63 + and w8,w7,w9,asr#31 + eor x24,x8,x22,lsl#1 + mov v11.d[0],x26 + mov v11.d[1],x27 +#ifdef __AARCH64EB__ + rev32 v11.16b,v11.16b +#endif + mov w7,0x87 + extr x9,x25,x25,#32 + extr x27,x25,x24,#63 + and w8,w7,w9,asr#31 + eor x26,x8,x24,lsl#1 + eor v0.16b, v0.16b, v12.16b + eor v1.16b, v1.16b, v13.16b + eor v2.16b, v2.16b, v14.16b + eor v3.16b, v3.16b, v15.16b + eor v4.16b, v4.16b, v8.16b + eor v5.16b, v5.16b, v9.16b + eor v6.16b, v6.16b, v10.16b + eor v7.16b, v7.16b, v11.16b + + // save the last tweak + st1 {v11.4s},[x5] + st1 {v0.4s,v1.4s,v2.4s,v3.4s},[x1],#64 + st1 {v4.4s,v5.4s,v6.4s,v7.4s},[x1],#64 + subs x2,x2,#8 + b.gt .Lxts_8_blocks_process + b 100f +.Lxts_4_blocks_process: + mov v8.d[0],x12 + mov v8.d[1],x13 +#ifdef __AARCH64EB__ + rev32 v8.16b,v8.16b +#endif + mov v9.d[0],x14 + mov v9.d[1],x15 +#ifdef __AARCH64EB__ + rev32 v9.16b,v9.16b +#endif + mov v10.d[0],x16 + mov v10.d[1],x17 +#ifdef __AARCH64EB__ + rev32 v10.16b,v10.16b +#endif + mov v11.d[0],x18 + mov v11.d[1],x19 +#ifdef __AARCH64EB__ + rev32 v11.16b,v11.16b +#endif + cmp x2,#4 + b.lt 1f + ld1 {v4.4s,v5.4s,v6.4s,v7.4s},[x0],#64 + eor v4.16b, v4.16b, v8.16b + eor v5.16b, v5.16b, v9.16b + eor v6.16b, v6.16b, v10.16b + eor v7.16b, v7.16b, v11.16b +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif +#ifndef __AARCH64EB__ + rev32 v5.16b,v5.16b +#endif +#ifndef __AARCH64EB__ + rev32 v6.16b,v6.16b +#endif +#ifndef __AARCH64EB__ + rev32 v7.16b,v7.16b +#endif + zip1 v0.4s,v4.4s,v5.4s + zip2 v1.4s,v4.4s,v5.4s + zip1 v2.4s,v6.4s,v7.4s + zip2 v3.4s,v6.4s,v7.4s + zip1 v4.2d,v0.2d,v2.2d + zip2 v5.2d,v0.2d,v2.2d + zip1 v6.2d,v1.2d,v3.2d + zip2 v7.2d,v1.2d,v3.2d + bl _vpsm4_enc_4blks + zip1 v4.4s,v0.4s,v1.4s + zip2 v5.4s,v0.4s,v1.4s + zip1 v6.4s,v2.4s,v3.4s + zip2 v7.4s,v2.4s,v3.4s + zip1 v0.2d,v4.2d,v6.2d + zip2 v1.2d,v4.2d,v6.2d + zip1 v2.2d,v5.2d,v7.2d + zip2 v3.2d,v5.2d,v7.2d + eor v0.16b, v0.16b, v8.16b + eor v1.16b, v1.16b, v9.16b + eor v2.16b, v2.16b, v10.16b + eor v3.16b, v3.16b, v11.16b + st1 {v0.4s,v1.4s,v2.4s,v3.4s},[x1],#64 + sub x2,x2,#4 + mov v8.d[0],x20 + mov v8.d[1],x21 +#ifdef __AARCH64EB__ + rev32 v8.16b,v8.16b +#endif + mov v9.d[0],x22 + mov v9.d[1],x23 +#ifdef __AARCH64EB__ + rev32 v9.16b,v9.16b +#endif + mov v10.d[0],x24 + mov v10.d[1],x25 +#ifdef __AARCH64EB__ + rev32 v10.16b,v10.16b +#endif + // save the last tweak + st1 {v11.4s},[x5] +1: + // process last block + cmp x2,#1 + b.lt 100f + b.gt 1f + ld1 {v4.4s},[x0],#16 + eor v4.16b, v4.16b, v8.16b +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif + mov x10,x3 + mov w11,#8 + mov w12,v4.s[0] + mov w13,v4.s[1] + mov w14,v4.s[2] + mov w15,v4.s[3] +10: + ldp w7,w8,[x10],8 + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + eor w6,w14,w15 + eor w9,w7,w13 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w12,w12,w6 + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + eor w6,w14,w15 + eor w9,w12,w8 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + ldp w7,w8,[x10],8 + eor w13,w13,w6 + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + eor w6,w12,w13 + eor w9,w7,w15 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w14,w14,w6 + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + eor w6,w12,w13 + eor w9,w14,w8 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w15,w15,w6 + subs w11,w11,#1 + b.ne 10b + mov v4.s[0],w15 + mov v4.s[1],w14 + mov v4.s[2],w13 + mov v4.s[3],w12 +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif + eor v4.16b, v4.16b, v8.16b + st1 {v4.4s},[x1],#16 + // save the last tweak + st1 {v8.4s},[x5] + b 100f +1: // process last 2 blocks + cmp x2,#2 + b.gt 1f + ld1 {v4.4s,v5.4s},[x0],#32 + eor v4.16b, v4.16b, v8.16b + eor v5.16b, v5.16b, v9.16b +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif +#ifndef __AARCH64EB__ + rev32 v5.16b,v5.16b +#endif + zip1 v0.4s,v4.4s,v5.4s + zip2 v1.4s,v4.4s,v5.4s + zip1 v2.4s,v6.4s,v7.4s + zip2 v3.4s,v6.4s,v7.4s + zip1 v4.2d,v0.2d,v2.2d + zip2 v5.2d,v0.2d,v2.2d + zip1 v6.2d,v1.2d,v3.2d + zip2 v7.2d,v1.2d,v3.2d + bl _vpsm4_enc_4blks + zip1 v4.4s,v0.4s,v1.4s + zip2 v5.4s,v0.4s,v1.4s + zip1 v6.4s,v2.4s,v3.4s + zip2 v7.4s,v2.4s,v3.4s + zip1 v0.2d,v4.2d,v6.2d + zip2 v1.2d,v4.2d,v6.2d + zip1 v2.2d,v5.2d,v7.2d + zip2 v3.2d,v5.2d,v7.2d + eor v0.16b, v0.16b, v8.16b + eor v1.16b, v1.16b, v9.16b + st1 {v0.4s,v1.4s},[x1],#32 + // save the last tweak + st1 {v9.4s},[x5] + b 100f +1: // process last 3 blocks + ld1 {v4.4s,v5.4s,v6.4s},[x0],#48 + eor v4.16b, v4.16b, v8.16b + eor v5.16b, v5.16b, v9.16b + eor v6.16b, v6.16b, v10.16b +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif +#ifndef __AARCH64EB__ + rev32 v5.16b,v5.16b +#endif +#ifndef __AARCH64EB__ + rev32 v6.16b,v6.16b +#endif + zip1 v0.4s,v4.4s,v5.4s + zip2 v1.4s,v4.4s,v5.4s + zip1 v2.4s,v6.4s,v7.4s + zip2 v3.4s,v6.4s,v7.4s + zip1 v4.2d,v0.2d,v2.2d + zip2 v5.2d,v0.2d,v2.2d + zip1 v6.2d,v1.2d,v3.2d + zip2 v7.2d,v1.2d,v3.2d + bl _vpsm4_enc_4blks + zip1 v4.4s,v0.4s,v1.4s + zip2 v5.4s,v0.4s,v1.4s + zip1 v6.4s,v2.4s,v3.4s + zip2 v7.4s,v2.4s,v3.4s + zip1 v0.2d,v4.2d,v6.2d + zip2 v1.2d,v4.2d,v6.2d + zip1 v2.2d,v5.2d,v7.2d + zip2 v3.2d,v5.2d,v7.2d + eor v0.16b, v0.16b, v8.16b + eor v1.16b, v1.16b, v9.16b + eor v2.16b, v2.16b, v10.16b + st1 {v0.4s,v1.4s,v2.4s},[x1],#48 + // save the last tweak + st1 {v10.4s},[x5] +100: + cmp x29,0 + b.eq .return + +// This branch calculates the last two tweaks, +// while the encryption/decryption length is larger than 32 +.last_2blks_tweak: + ld1 {v8.4s},[x5] +#ifdef __AARCH64EB__ + rev32 v8.16b,v8.16b +#endif + mov v2.16b,v8.16b + adrp x10,.Lxts_magic + ldr q0, [x10, #:lo12:.Lxts_magic] + shl v9.16b, v2.16b, #1 + ext v1.16b, v2.16b, v2.16b,#15 + ushr v1.16b, v1.16b, #7 + mul v1.16b, v1.16b, v0.16b + eor v9.16b, v9.16b, v1.16b + mov v2.16b,v9.16b + adrp x10,.Lxts_magic + ldr q0, [x10, #:lo12:.Lxts_magic] + shl v10.16b, v2.16b, #1 + ext v1.16b, v2.16b, v2.16b,#15 + ushr v1.16b, v1.16b, #7 + mul v1.16b, v1.16b, v0.16b + eor v10.16b, v10.16b, v1.16b + b .check_dec + + +// This branch calculates the last two tweaks, +// while the encryption/decryption length is equal to 32, who only need two tweaks +.only_2blks_tweak: + mov v9.16b,v8.16b +#ifdef __AARCH64EB__ + rev32 v9.16b,v9.16b +#endif + mov v2.16b,v9.16b + adrp x10,.Lxts_magic + ldr q0, [x10, #:lo12:.Lxts_magic] + shl v10.16b, v2.16b, #1 + ext v1.16b, v2.16b, v2.16b,#15 + ushr v1.16b, v1.16b, #7 + mul v1.16b, v1.16b, v0.16b + eor v10.16b, v10.16b, v1.16b + b .check_dec + + +// Determine whether encryption or decryption is required. +// The last two tweaks need to be swapped for decryption. +.check_dec: + // encryption:1 decryption:0 + cmp w28,1 + b.eq .process_last_2blks + mov v0.16B,v9.16b + mov v9.16B,v10.16b + mov v10.16B,v0.16b + +.process_last_2blks: +#ifdef __AARCH64EB__ + rev32 v9.16b,v9.16b +#endif +#ifdef __AARCH64EB__ + rev32 v10.16b,v10.16b +#endif + ld1 {v4.4s},[x0],#16 + eor v4.16b, v4.16b, v9.16b +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif + mov x10,x3 + mov w11,#8 + mov w12,v4.s[0] + mov w13,v4.s[1] + mov w14,v4.s[2] + mov w15,v4.s[3] +10: + ldp w7,w8,[x10],8 + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + eor w6,w14,w15 + eor w9,w7,w13 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w12,w12,w6 + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + eor w6,w14,w15 + eor w9,w12,w8 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + ldp w7,w8,[x10],8 + eor w13,w13,w6 + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + eor w6,w12,w13 + eor w9,w7,w15 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w14,w14,w6 + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + eor w6,w12,w13 + eor w9,w14,w8 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w15,w15,w6 + subs w11,w11,#1 + b.ne 10b + mov v4.s[0],w15 + mov v4.s[1],w14 + mov v4.s[2],w13 + mov v4.s[3],w12 +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif + eor v4.16b, v4.16b, v9.16b + st1 {v4.4s},[x1],#16 + + sub x26,x1,16 +.loop: + subs x29,x29,1 + ldrb w7,[x26,x29] + ldrb w8,[x0,x29] + strb w8,[x26,x29] + strb w7,[x1,x29] + b.gt .loop + ld1 {v4.4s}, [x26] + eor v4.16b, v4.16b, v10.16b +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif + mov x10,x3 + mov w11,#8 + mov w12,v4.s[0] + mov w13,v4.s[1] + mov w14,v4.s[2] + mov w15,v4.s[3] +10: + ldp w7,w8,[x10],8 + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + eor w6,w14,w15 + eor w9,w7,w13 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w12,w12,w6 + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + eor w6,w14,w15 + eor w9,w12,w8 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + ldp w7,w8,[x10],8 + eor w13,w13,w6 + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + eor w6,w12,w13 + eor w9,w7,w15 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w14,w14,w6 + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + eor w6,w12,w13 + eor w9,w14,w8 + eor w6,w6,w9 + movi v1.16b,#64 + movi v2.16b,#128 + movi v3.16b,#192 + mov v0.s[0],w6 + + sub v1.16b,v0.16b,v1.16b + sub v2.16b,v0.16b,v2.16b + sub v3.16b,v0.16b,v3.16b + + tbl v0.16b,{v16.16b,v17.16b,v18.16b,v19.16b},v0.16b + tbl v1.16b,{v20.16b,v21.16b,v22.16b,v23.16b},v1.16b + tbl v2.16b,{v24.16b,v25.16b,v26.16b,v27.16b},v2.16b + tbl v3.16b,{v28.16b,v29.16b,v30.16b,v31.16b},v3.16b + + mov w6,v0.s[0] + mov w7,v1.s[0] + mov w9,v2.s[0] + add w7,w6,w7 + mov w6,v3.s[0] + add w7,w7,w9 + add w7,w7,w6 + + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w15,w15,w6 + subs w11,w11,#1 + b.ne 10b + mov v4.s[0],w15 + mov v4.s[1],w14 + mov v4.s[2],w13 + mov v4.s[3],w12 +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif + eor v4.16b, v4.16b, v10.16b + st1 {v4.4s}, [x26] +.return: + ldp d14, d15, [sp], #0x10 + ldp d12, d13, [sp], #0x10 + ldp d10, d11, [sp], #0x10 + ldp d8, d9, [sp], #0x10 + ldp x29, x30, [sp], #0x10 + ldp x27, x28, [sp], #0x10 + ldp x25, x26, [sp], #0x10 + ldp x23, x24, [sp], #0x10 + ldp x21, x22, [sp], #0x10 + ldp x19, x20, [sp], #0x10 + ldp x17, x18, [sp], #0x10 + ldp x15, x16, [sp], #0x10 + AARCH64_VALIDATE_LINK_REGISTER + ret +.size vpsm4_xts_encrypt,.-vpsm4_xts_encrypt diff --git a/deps/openssl/config/archs/linux-aarch64/asm_avx2/crypto/sm4/vpsm4_ex-armv8.S b/deps/openssl/config/archs/linux-aarch64/asm_avx2/crypto/sm4/vpsm4_ex-armv8.S new file mode 100644 index 00000000000000..2ff0246cc60467 --- /dev/null +++ b/deps/openssl/config/archs/linux-aarch64/asm_avx2/crypto/sm4/vpsm4_ex-armv8.S @@ -0,0 +1,4522 @@ +// Copyright 2022-2025 The OpenSSL Project Authors. All Rights Reserved. +// +// Licensed under the Apache License 2.0 (the "License"). You may not use +// this file except in compliance with the License. You can obtain a copy +// in the file LICENSE in the source distribution or at +// https://www.openssl.org/source/license.html + +// +// This module implements SM4 with ASIMD and AESE on AARCH64 +// +// Dec 2022 +// + +// $output is the last argument if it looks like a file (it has an extension) +// $flavour is the first argument if it doesn't look like a file +#include "arm_arch.h" +.arch armv8-a+crypto +.text + +.type _vpsm4_ex_consts,%object +.align 7 +_vpsm4_ex_consts: +.Lck: +.long 0x00070E15, 0x1C232A31, 0x383F464D, 0x545B6269 +.long 0x70777E85, 0x8C939AA1, 0xA8AFB6BD, 0xC4CBD2D9 +.long 0xE0E7EEF5, 0xFC030A11, 0x181F262D, 0x343B4249 +.long 0x50575E65, 0x6C737A81, 0x888F969D, 0xA4ABB2B9 +.long 0xC0C7CED5, 0xDCE3EAF1, 0xF8FF060D, 0x141B2229 +.long 0x30373E45, 0x4C535A61, 0x686F767D, 0x848B9299 +.long 0xA0A7AEB5, 0xBCC3CAD1, 0xD8DFE6ED, 0xF4FB0209 +.long 0x10171E25, 0x2C333A41, 0x484F565D, 0x646B7279 +.Lfk: +.quad 0x56aa3350a3b1bac6,0xb27022dc677d9197 +.Lshuffles: +.quad 0x0B0A090807060504,0x030201000F0E0D0C +.Lxts_magic: +.quad 0x0101010101010187,0x0101010101010101 +.Lsbox_magic: +.quad 0x0b0e0104070a0d00,0x0306090c0f020508 +.quad 0x62185a2042387a00,0x22581a6002783a40 +.quad 0x15df62a89e54e923,0xc10bb67c4a803df7 +.quad 0xb9aa6b78c1d21300,0x1407c6d56c7fbead +.quad 0x6404462679195b3b,0xe383c1a1fe9edcbc +.quad 0x0f0f0f0f0f0f0f0f,0x0f0f0f0f0f0f0f0f + +.size _vpsm4_ex_consts,.-_vpsm4_ex_consts +.type _vpsm4_ex_set_key,%function +.align 4 +_vpsm4_ex_set_key: + AARCH64_VALID_CALL_TARGET + ld1 {v5.4s},[x0] + adrp x9, .Lsbox_magic + ldr q26, [x9, #:lo12:.Lsbox_magic] + ldr q27, [x9, #:lo12:.Lsbox_magic+16] + ldr q28, [x9, #:lo12:.Lsbox_magic+32] + ldr q29, [x9, #:lo12:.Lsbox_magic+48] + ldr q30, [x9, #:lo12:.Lsbox_magic+64] + ldr q31, [x9, #:lo12:.Lsbox_magic+80] +#ifndef __AARCH64EB__ + rev32 v5.16b,v5.16b +#endif + adrp x5,.Lshuffles + add x5,x5,#:lo12:.Lshuffles + ld1 {v7.2d},[x5] + adrp x5,.Lfk + add x5,x5,#:lo12:.Lfk + ld1 {v6.2d},[x5] + eor v5.16b,v5.16b,v6.16b + mov x6,#32 + adrp x5,.Lck + add x5,x5,#:lo12:.Lck + movi v0.16b,#64 + cbnz w2,1f + add x1,x1,124 +1: + mov w7,v5.s[1] + ldr w8,[x5],#4 + eor w8,w8,w7 + mov w7,v5.s[2] + eor w8,w8,w7 + mov w7,v5.s[3] + eor w8,w8,w7 + // optimize sbox using AESE instruction + mov v4.s[0],w8 + tbl v0.16b, {v4.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + mov w7,v0.s[0] + eor w8,w7,w7,ror #19 + eor w8,w8,w7,ror #9 + mov w7,v5.s[0] + eor w8,w8,w7 + mov v5.s[0],w8 + cbz w2,2f + str w8,[x1],#4 + b 3f +2: + str w8,[x1],#-4 +3: + tbl v5.16b,{v5.16b},v7.16b + subs x6,x6,#1 + b.ne 1b + ret +.size _vpsm4_ex_set_key,.-_vpsm4_ex_set_key +.type _vpsm4_ex_enc_4blks,%function +.align 4 +_vpsm4_ex_enc_4blks: + AARCH64_VALID_CALL_TARGET + mov x10,x3 + mov w11,#8 +10: + ldp w7,w8,[x10],8 + dup v12.4s,w7 + dup v13.4s,w8 + + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + eor v14.16b,v6.16b,v7.16b + eor v12.16b,v5.16b,v12.16b + eor v12.16b,v14.16b,v12.16b + // optimize sbox using AESE instruction + tbl v0.16b, {v12.16b}, v26.16b + ushr v24.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v24.16b, {v27.16b}, v24.16b + eor v0.16b, v0.16b, v24.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v24.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v24.16b, {v29.16b}, v24.16b + eor v0.16b, v0.16b, v24.16b + mov v12.16b,v0.16b + + // linear transformation + ushr v0.4s,v12.4s,32-2 + ushr v1.4s,v12.4s,32-10 + ushr v2.4s,v12.4s,32-18 + ushr v3.4s,v12.4s,32-24 + sli v0.4s,v12.4s,2 + sli v1.4s,v12.4s,10 + sli v2.4s,v12.4s,18 + sli v3.4s,v12.4s,24 + eor v24.16b,v0.16b,v12.16b + eor v24.16b,v24.16b,v1.16b + eor v12.16b,v2.16b,v3.16b + eor v12.16b,v12.16b,v24.16b + eor v4.16b,v4.16b,v12.16b + + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + eor v14.16b,v14.16b,v4.16b + eor v13.16b,v14.16b,v13.16b + // optimize sbox using AESE instruction + tbl v0.16b, {v13.16b}, v26.16b + ushr v24.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v24.16b, {v27.16b}, v24.16b + eor v0.16b, v0.16b, v24.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v24.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v24.16b, {v29.16b}, v24.16b + eor v0.16b, v0.16b, v24.16b + mov v13.16b,v0.16b + + // linear transformation + ushr v0.4s,v13.4s,32-2 + ushr v1.4s,v13.4s,32-10 + ushr v2.4s,v13.4s,32-18 + ushr v3.4s,v13.4s,32-24 + sli v0.4s,v13.4s,2 + sli v1.4s,v13.4s,10 + sli v2.4s,v13.4s,18 + sli v3.4s,v13.4s,24 + eor v24.16b,v0.16b,v13.16b + eor v24.16b,v24.16b,v1.16b + eor v13.16b,v2.16b,v3.16b + eor v13.16b,v13.16b,v24.16b + ldp w7,w8,[x10],8 + eor v5.16b,v5.16b,v13.16b + + dup v12.4s,w7 + dup v13.4s,w8 + + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + eor v14.16b,v4.16b,v5.16b + eor v12.16b,v7.16b,v12.16b + eor v12.16b,v14.16b,v12.16b + // optimize sbox using AESE instruction + tbl v0.16b, {v12.16b}, v26.16b + ushr v24.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v24.16b, {v27.16b}, v24.16b + eor v0.16b, v0.16b, v24.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v24.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v24.16b, {v29.16b}, v24.16b + eor v0.16b, v0.16b, v24.16b + mov v12.16b,v0.16b + + // linear transformation + ushr v0.4s,v12.4s,32-2 + ushr v1.4s,v12.4s,32-10 + ushr v2.4s,v12.4s,32-18 + ushr v3.4s,v12.4s,32-24 + sli v0.4s,v12.4s,2 + sli v1.4s,v12.4s,10 + sli v2.4s,v12.4s,18 + sli v3.4s,v12.4s,24 + eor v24.16b,v0.16b,v12.16b + eor v24.16b,v24.16b,v1.16b + eor v12.16b,v2.16b,v3.16b + eor v12.16b,v12.16b,v24.16b + eor v6.16b,v6.16b,v12.16b + + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + eor v14.16b,v14.16b,v6.16b + eor v13.16b,v14.16b,v13.16b + // optimize sbox using AESE instruction + tbl v0.16b, {v13.16b}, v26.16b + ushr v24.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v24.16b, {v27.16b}, v24.16b + eor v0.16b, v0.16b, v24.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v24.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v24.16b, {v29.16b}, v24.16b + eor v0.16b, v0.16b, v24.16b + mov v13.16b,v0.16b + + // linear transformation + ushr v0.4s,v13.4s,32-2 + ushr v1.4s,v13.4s,32-10 + ushr v2.4s,v13.4s,32-18 + ushr v3.4s,v13.4s,32-24 + sli v0.4s,v13.4s,2 + sli v1.4s,v13.4s,10 + sli v2.4s,v13.4s,18 + sli v3.4s,v13.4s,24 + eor v24.16b,v0.16b,v13.16b + eor v24.16b,v24.16b,v1.16b + eor v13.16b,v2.16b,v3.16b + eor v13.16b,v13.16b,v24.16b + eor v7.16b,v7.16b,v13.16b + subs w11,w11,#1 + b.ne 10b +#ifndef __AARCH64EB__ + rev32 v3.16b,v4.16b +#else + mov v3.16b,v4.16b +#endif +#ifndef __AARCH64EB__ + rev32 v2.16b,v5.16b +#else + mov v2.16b,v5.16b +#endif +#ifndef __AARCH64EB__ + rev32 v1.16b,v6.16b +#else + mov v1.16b,v6.16b +#endif +#ifndef __AARCH64EB__ + rev32 v0.16b,v7.16b +#else + mov v0.16b,v7.16b +#endif + ret +.size _vpsm4_ex_enc_4blks,.-_vpsm4_ex_enc_4blks +.type _vpsm4_ex_enc_8blks,%function +.align 4 +_vpsm4_ex_enc_8blks: + AARCH64_VALID_CALL_TARGET + mov x10,x3 + mov w11,#8 +10: + ldp w7,w8,[x10],8 + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + dup v12.4s,w7 + eor v14.16b,v6.16b,v7.16b + eor v15.16b,v10.16b,v11.16b + eor v0.16b,v5.16b,v12.16b + eor v1.16b,v9.16b,v12.16b + eor v12.16b,v14.16b,v0.16b + eor v13.16b,v15.16b,v1.16b + // optimize sbox using AESE instruction + tbl v0.16b, {v12.16b}, v26.16b + tbl v1.16b, {v13.16b}, v26.16b + ushr v24.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v24.16b, {v27.16b}, v24.16b + eor v0.16b, v0.16b, v24.16b + ushr v24.16b, v1.16b, 4 + and v1.16b, v1.16b, v31.16b + tbl v1.16b, {v28.16b}, v1.16b + tbl v24.16b, {v27.16b}, v24.16b + eor v1.16b, v1.16b, v24.16b + eor v25.16b, v25.16b, v25.16b + aese v0.16b,v25.16b + aese v1.16b,v25.16b + ushr v24.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v24.16b, {v29.16b}, v24.16b + eor v0.16b, v0.16b, v24.16b + ushr v24.16b, v1.16b, 4 + and v1.16b, v1.16b, v31.16b + tbl v1.16b, {v30.16b}, v1.16b + tbl v24.16b, {v29.16b}, v24.16b + eor v1.16b, v1.16b, v24.16b + mov v12.16b,v0.16b + mov v13.16b,v1.16b + + // linear transformation + ushr v0.4s,v12.4s,32-2 + ushr v25.4s,v13.4s,32-2 + ushr v1.4s,v12.4s,32-10 + ushr v2.4s,v12.4s,32-18 + ushr v3.4s,v12.4s,32-24 + sli v0.4s,v12.4s,2 + sli v25.4s,v13.4s,2 + sli v1.4s,v12.4s,10 + sli v2.4s,v12.4s,18 + sli v3.4s,v12.4s,24 + eor v24.16b,v0.16b,v12.16b + eor v24.16b,v24.16b,v1.16b + eor v12.16b,v2.16b,v3.16b + eor v12.16b,v12.16b,v24.16b + ushr v1.4s,v13.4s,32-10 + ushr v2.4s,v13.4s,32-18 + ushr v3.4s,v13.4s,32-24 + sli v1.4s,v13.4s,10 + sli v2.4s,v13.4s,18 + sli v3.4s,v13.4s,24 + eor v24.16b,v25.16b,v13.16b + eor v24.16b,v24.16b,v1.16b + eor v13.16b,v2.16b,v3.16b + eor v13.16b,v13.16b,v24.16b + eor v4.16b,v4.16b,v12.16b + eor v8.16b,v8.16b,v13.16b + + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + dup v13.4s,w8 + eor v14.16b,v14.16b,v4.16b + eor v15.16b,v15.16b,v8.16b + eor v12.16b,v14.16b,v13.16b + eor v13.16b,v15.16b,v13.16b + // optimize sbox using AESE instruction + tbl v0.16b, {v12.16b}, v26.16b + tbl v1.16b, {v13.16b}, v26.16b + ushr v24.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v24.16b, {v27.16b}, v24.16b + eor v0.16b, v0.16b, v24.16b + ushr v24.16b, v1.16b, 4 + and v1.16b, v1.16b, v31.16b + tbl v1.16b, {v28.16b}, v1.16b + tbl v24.16b, {v27.16b}, v24.16b + eor v1.16b, v1.16b, v24.16b + eor v25.16b, v25.16b, v25.16b + aese v0.16b,v25.16b + aese v1.16b,v25.16b + ushr v24.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v24.16b, {v29.16b}, v24.16b + eor v0.16b, v0.16b, v24.16b + ushr v24.16b, v1.16b, 4 + and v1.16b, v1.16b, v31.16b + tbl v1.16b, {v30.16b}, v1.16b + tbl v24.16b, {v29.16b}, v24.16b + eor v1.16b, v1.16b, v24.16b + mov v12.16b,v0.16b + mov v13.16b,v1.16b + + // linear transformation + ushr v0.4s,v12.4s,32-2 + ushr v25.4s,v13.4s,32-2 + ushr v1.4s,v12.4s,32-10 + ushr v2.4s,v12.4s,32-18 + ushr v3.4s,v12.4s,32-24 + sli v0.4s,v12.4s,2 + sli v25.4s,v13.4s,2 + sli v1.4s,v12.4s,10 + sli v2.4s,v12.4s,18 + sli v3.4s,v12.4s,24 + eor v24.16b,v0.16b,v12.16b + eor v24.16b,v24.16b,v1.16b + eor v12.16b,v2.16b,v3.16b + eor v12.16b,v12.16b,v24.16b + ushr v1.4s,v13.4s,32-10 + ushr v2.4s,v13.4s,32-18 + ushr v3.4s,v13.4s,32-24 + sli v1.4s,v13.4s,10 + sli v2.4s,v13.4s,18 + sli v3.4s,v13.4s,24 + eor v24.16b,v25.16b,v13.16b + eor v24.16b,v24.16b,v1.16b + eor v13.16b,v2.16b,v3.16b + eor v13.16b,v13.16b,v24.16b + ldp w7,w8,[x10],8 + eor v5.16b,v5.16b,v12.16b + eor v9.16b,v9.16b,v13.16b + + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + dup v12.4s,w7 + eor v14.16b,v4.16b,v5.16b + eor v15.16b,v8.16b,v9.16b + eor v0.16b,v7.16b,v12.16b + eor v1.16b,v11.16b,v12.16b + eor v12.16b,v14.16b,v0.16b + eor v13.16b,v15.16b,v1.16b + // optimize sbox using AESE instruction + tbl v0.16b, {v12.16b}, v26.16b + tbl v1.16b, {v13.16b}, v26.16b + ushr v24.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v24.16b, {v27.16b}, v24.16b + eor v0.16b, v0.16b, v24.16b + ushr v24.16b, v1.16b, 4 + and v1.16b, v1.16b, v31.16b + tbl v1.16b, {v28.16b}, v1.16b + tbl v24.16b, {v27.16b}, v24.16b + eor v1.16b, v1.16b, v24.16b + eor v25.16b, v25.16b, v25.16b + aese v0.16b,v25.16b + aese v1.16b,v25.16b + ushr v24.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v24.16b, {v29.16b}, v24.16b + eor v0.16b, v0.16b, v24.16b + ushr v24.16b, v1.16b, 4 + and v1.16b, v1.16b, v31.16b + tbl v1.16b, {v30.16b}, v1.16b + tbl v24.16b, {v29.16b}, v24.16b + eor v1.16b, v1.16b, v24.16b + mov v12.16b,v0.16b + mov v13.16b,v1.16b + + // linear transformation + ushr v0.4s,v12.4s,32-2 + ushr v25.4s,v13.4s,32-2 + ushr v1.4s,v12.4s,32-10 + ushr v2.4s,v12.4s,32-18 + ushr v3.4s,v12.4s,32-24 + sli v0.4s,v12.4s,2 + sli v25.4s,v13.4s,2 + sli v1.4s,v12.4s,10 + sli v2.4s,v12.4s,18 + sli v3.4s,v12.4s,24 + eor v24.16b,v0.16b,v12.16b + eor v24.16b,v24.16b,v1.16b + eor v12.16b,v2.16b,v3.16b + eor v12.16b,v12.16b,v24.16b + ushr v1.4s,v13.4s,32-10 + ushr v2.4s,v13.4s,32-18 + ushr v3.4s,v13.4s,32-24 + sli v1.4s,v13.4s,10 + sli v2.4s,v13.4s,18 + sli v3.4s,v13.4s,24 + eor v24.16b,v25.16b,v13.16b + eor v24.16b,v24.16b,v1.16b + eor v13.16b,v2.16b,v3.16b + eor v13.16b,v13.16b,v24.16b + eor v6.16b,v6.16b,v12.16b + eor v10.16b,v10.16b,v13.16b + + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + dup v13.4s,w8 + eor v14.16b,v14.16b,v6.16b + eor v15.16b,v15.16b,v10.16b + eor v12.16b,v14.16b,v13.16b + eor v13.16b,v15.16b,v13.16b + // optimize sbox using AESE instruction + tbl v0.16b, {v12.16b}, v26.16b + tbl v1.16b, {v13.16b}, v26.16b + ushr v24.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v24.16b, {v27.16b}, v24.16b + eor v0.16b, v0.16b, v24.16b + ushr v24.16b, v1.16b, 4 + and v1.16b, v1.16b, v31.16b + tbl v1.16b, {v28.16b}, v1.16b + tbl v24.16b, {v27.16b}, v24.16b + eor v1.16b, v1.16b, v24.16b + eor v25.16b, v25.16b, v25.16b + aese v0.16b,v25.16b + aese v1.16b,v25.16b + ushr v24.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v24.16b, {v29.16b}, v24.16b + eor v0.16b, v0.16b, v24.16b + ushr v24.16b, v1.16b, 4 + and v1.16b, v1.16b, v31.16b + tbl v1.16b, {v30.16b}, v1.16b + tbl v24.16b, {v29.16b}, v24.16b + eor v1.16b, v1.16b, v24.16b + mov v12.16b,v0.16b + mov v13.16b,v1.16b + + // linear transformation + ushr v0.4s,v12.4s,32-2 + ushr v25.4s,v13.4s,32-2 + ushr v1.4s,v12.4s,32-10 + ushr v2.4s,v12.4s,32-18 + ushr v3.4s,v12.4s,32-24 + sli v0.4s,v12.4s,2 + sli v25.4s,v13.4s,2 + sli v1.4s,v12.4s,10 + sli v2.4s,v12.4s,18 + sli v3.4s,v12.4s,24 + eor v24.16b,v0.16b,v12.16b + eor v24.16b,v24.16b,v1.16b + eor v12.16b,v2.16b,v3.16b + eor v12.16b,v12.16b,v24.16b + ushr v1.4s,v13.4s,32-10 + ushr v2.4s,v13.4s,32-18 + ushr v3.4s,v13.4s,32-24 + sli v1.4s,v13.4s,10 + sli v2.4s,v13.4s,18 + sli v3.4s,v13.4s,24 + eor v24.16b,v25.16b,v13.16b + eor v24.16b,v24.16b,v1.16b + eor v13.16b,v2.16b,v3.16b + eor v13.16b,v13.16b,v24.16b + eor v7.16b,v7.16b,v12.16b + eor v11.16b,v11.16b,v13.16b + subs w11,w11,#1 + b.ne 10b +#ifndef __AARCH64EB__ + rev32 v3.16b,v4.16b +#else + mov v3.16b,v4.16b +#endif +#ifndef __AARCH64EB__ + rev32 v2.16b,v5.16b +#else + mov v2.16b,v5.16b +#endif +#ifndef __AARCH64EB__ + rev32 v1.16b,v6.16b +#else + mov v1.16b,v6.16b +#endif +#ifndef __AARCH64EB__ + rev32 v0.16b,v7.16b +#else + mov v0.16b,v7.16b +#endif +#ifndef __AARCH64EB__ + rev32 v7.16b,v8.16b +#else + mov v7.16b,v8.16b +#endif +#ifndef __AARCH64EB__ + rev32 v6.16b,v9.16b +#else + mov v6.16b,v9.16b +#endif +#ifndef __AARCH64EB__ + rev32 v5.16b,v10.16b +#else + mov v5.16b,v10.16b +#endif +#ifndef __AARCH64EB__ + rev32 v4.16b,v11.16b +#else + mov v4.16b,v11.16b +#endif + ret +.size _vpsm4_ex_enc_8blks,.-_vpsm4_ex_enc_8blks +.globl vpsm4_ex_set_encrypt_key +.type vpsm4_ex_set_encrypt_key,%function +.align 5 +vpsm4_ex_set_encrypt_key: + AARCH64_SIGN_LINK_REGISTER + stp x29,x30,[sp,#-16]! + mov w2,1 + bl _vpsm4_ex_set_key + ldp x29,x30,[sp],#16 + AARCH64_VALIDATE_LINK_REGISTER + ret +.size vpsm4_ex_set_encrypt_key,.-vpsm4_ex_set_encrypt_key +.globl vpsm4_ex_set_decrypt_key +.type vpsm4_ex_set_decrypt_key,%function +.align 5 +vpsm4_ex_set_decrypt_key: + AARCH64_SIGN_LINK_REGISTER + stp x29,x30,[sp,#-16]! + mov w2,0 + bl _vpsm4_ex_set_key + ldp x29,x30,[sp],#16 + AARCH64_VALIDATE_LINK_REGISTER + ret +.size vpsm4_ex_set_decrypt_key,.-vpsm4_ex_set_decrypt_key +.globl vpsm4_ex_encrypt +.type vpsm4_ex_encrypt,%function +.align 5 +vpsm4_ex_encrypt: + AARCH64_VALID_CALL_TARGET + ld1 {v4.4s},[x0] + adrp x9, .Lsbox_magic + ldr q26, [x9, #:lo12:.Lsbox_magic] + ldr q27, [x9, #:lo12:.Lsbox_magic+16] + ldr q28, [x9, #:lo12:.Lsbox_magic+32] + ldr q29, [x9, #:lo12:.Lsbox_magic+48] + ldr q30, [x9, #:lo12:.Lsbox_magic+64] + ldr q31, [x9, #:lo12:.Lsbox_magic+80] +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif + mov x3,x2 + mov x10,x3 + mov w11,#8 + mov w12,v4.s[0] + mov w13,v4.s[1] + mov w14,v4.s[2] + mov w15,v4.s[3] +10: + ldp w7,w8,[x10],8 + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + eor w6,w14,w15 + eor w9,w7,w13 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w12,w12,w6 + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + eor w6,w14,w15 + eor w9,w12,w8 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + ldp w7,w8,[x10],8 + eor w13,w13,w6 + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + eor w6,w12,w13 + eor w9,w7,w15 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w14,w14,w6 + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + eor w6,w12,w13 + eor w9,w14,w8 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w15,w15,w6 + subs w11,w11,#1 + b.ne 10b + mov v4.s[0],w15 + mov v4.s[1],w14 + mov v4.s[2],w13 + mov v4.s[3],w12 +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif + st1 {v4.4s},[x1] + ret +.size vpsm4_ex_encrypt,.-vpsm4_ex_encrypt +.globl vpsm4_ex_decrypt +.type vpsm4_ex_decrypt,%function +.align 5 +vpsm4_ex_decrypt: + AARCH64_VALID_CALL_TARGET + ld1 {v4.4s},[x0] + adrp x9, .Lsbox_magic + ldr q26, [x9, #:lo12:.Lsbox_magic] + ldr q27, [x9, #:lo12:.Lsbox_magic+16] + ldr q28, [x9, #:lo12:.Lsbox_magic+32] + ldr q29, [x9, #:lo12:.Lsbox_magic+48] + ldr q30, [x9, #:lo12:.Lsbox_magic+64] + ldr q31, [x9, #:lo12:.Lsbox_magic+80] +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif + mov x3,x2 + mov x10,x3 + mov w11,#8 + mov w12,v4.s[0] + mov w13,v4.s[1] + mov w14,v4.s[2] + mov w15,v4.s[3] +10: + ldp w7,w8,[x10],8 + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + eor w6,w14,w15 + eor w9,w7,w13 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w12,w12,w6 + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + eor w6,w14,w15 + eor w9,w12,w8 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + ldp w7,w8,[x10],8 + eor w13,w13,w6 + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + eor w6,w12,w13 + eor w9,w7,w15 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w14,w14,w6 + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + eor w6,w12,w13 + eor w9,w14,w8 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w15,w15,w6 + subs w11,w11,#1 + b.ne 10b + mov v4.s[0],w15 + mov v4.s[1],w14 + mov v4.s[2],w13 + mov v4.s[3],w12 +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif + st1 {v4.4s},[x1] + ret +.size vpsm4_ex_decrypt,.-vpsm4_ex_decrypt +.globl vpsm4_ex_ecb_encrypt +.type vpsm4_ex_ecb_encrypt,%function +.align 5 +vpsm4_ex_ecb_encrypt: + AARCH64_SIGN_LINK_REGISTER + // convert length into blocks + lsr x2,x2,4 + stp d8,d9,[sp,#-80]! + stp d10,d11,[sp,#16] + stp d12,d13,[sp,#32] + stp d14,d15,[sp,#48] + stp x29,x30,[sp,#64] + adrp x9, .Lsbox_magic + ldr q26, [x9, #:lo12:.Lsbox_magic] + ldr q27, [x9, #:lo12:.Lsbox_magic+16] + ldr q28, [x9, #:lo12:.Lsbox_magic+32] + ldr q29, [x9, #:lo12:.Lsbox_magic+48] + ldr q30, [x9, #:lo12:.Lsbox_magic+64] + ldr q31, [x9, #:lo12:.Lsbox_magic+80] +.Lecb_8_blocks_process: + cmp w2,#8 + b.lt .Lecb_4_blocks_process + ld4 {v4.4s,v5.4s,v6.4s,v7.4s},[x0],#64 + ld4 {v8.4s,v9.4s,v10.4s,v11.4s},[x0],#64 +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif +#ifndef __AARCH64EB__ + rev32 v5.16b,v5.16b +#endif +#ifndef __AARCH64EB__ + rev32 v6.16b,v6.16b +#endif +#ifndef __AARCH64EB__ + rev32 v7.16b,v7.16b +#endif +#ifndef __AARCH64EB__ + rev32 v8.16b,v8.16b +#endif +#ifndef __AARCH64EB__ + rev32 v9.16b,v9.16b +#endif +#ifndef __AARCH64EB__ + rev32 v10.16b,v10.16b +#endif +#ifndef __AARCH64EB__ + rev32 v11.16b,v11.16b +#endif + bl _vpsm4_ex_enc_8blks + st4 {v0.4s,v1.4s,v2.4s,v3.4s},[x1],#64 + st4 {v4.4s,v5.4s,v6.4s,v7.4s},[x1],#64 + subs w2,w2,#8 + b.gt .Lecb_8_blocks_process + b 100f +.Lecb_4_blocks_process: + cmp w2,#4 + b.lt 1f + ld4 {v4.4s,v5.4s,v6.4s,v7.4s},[x0],#64 +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif +#ifndef __AARCH64EB__ + rev32 v5.16b,v5.16b +#endif +#ifndef __AARCH64EB__ + rev32 v6.16b,v6.16b +#endif +#ifndef __AARCH64EB__ + rev32 v7.16b,v7.16b +#endif + bl _vpsm4_ex_enc_4blks + st4 {v0.4s,v1.4s,v2.4s,v3.4s},[x1],#64 + sub w2,w2,#4 +1: + // process last block + cmp w2,#1 + b.lt 100f + b.gt 1f + ld1 {v4.4s},[x0] +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif + mov x10,x3 + mov w11,#8 + mov w12,v4.s[0] + mov w13,v4.s[1] + mov w14,v4.s[2] + mov w15,v4.s[3] +10: + ldp w7,w8,[x10],8 + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + eor w6,w14,w15 + eor w9,w7,w13 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w12,w12,w6 + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + eor w6,w14,w15 + eor w9,w12,w8 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + ldp w7,w8,[x10],8 + eor w13,w13,w6 + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + eor w6,w12,w13 + eor w9,w7,w15 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w14,w14,w6 + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + eor w6,w12,w13 + eor w9,w14,w8 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w15,w15,w6 + subs w11,w11,#1 + b.ne 10b + mov v4.s[0],w15 + mov v4.s[1],w14 + mov v4.s[2],w13 + mov v4.s[3],w12 +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif + st1 {v4.4s},[x1] + b 100f +1: // process last 2 blocks + ld4 {v4.s,v5.s,v6.s,v7.s}[0],[x0],#16 + ld4 {v4.s,v5.s,v6.s,v7.s}[1],[x0],#16 + cmp w2,#2 + b.gt 1f +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif +#ifndef __AARCH64EB__ + rev32 v5.16b,v5.16b +#endif +#ifndef __AARCH64EB__ + rev32 v6.16b,v6.16b +#endif +#ifndef __AARCH64EB__ + rev32 v7.16b,v7.16b +#endif + bl _vpsm4_ex_enc_4blks + st4 {v0.s,v1.s,v2.s,v3.s}[0],[x1],#16 + st4 {v0.s,v1.s,v2.s,v3.s}[1],[x1] + b 100f +1: // process last 3 blocks + ld4 {v4.s,v5.s,v6.s,v7.s}[2],[x0],#16 +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif +#ifndef __AARCH64EB__ + rev32 v5.16b,v5.16b +#endif +#ifndef __AARCH64EB__ + rev32 v6.16b,v6.16b +#endif +#ifndef __AARCH64EB__ + rev32 v7.16b,v7.16b +#endif + bl _vpsm4_ex_enc_4blks + st4 {v0.s,v1.s,v2.s,v3.s}[0],[x1],#16 + st4 {v0.s,v1.s,v2.s,v3.s}[1],[x1],#16 + st4 {v0.s,v1.s,v2.s,v3.s}[2],[x1] +100: + ldp d10,d11,[sp,#16] + ldp d12,d13,[sp,#32] + ldp d14,d15,[sp,#48] + ldp x29,x30,[sp,#64] + ldp d8,d9,[sp],#80 + AARCH64_VALIDATE_LINK_REGISTER + ret +.size vpsm4_ex_ecb_encrypt,.-vpsm4_ex_ecb_encrypt +.globl vpsm4_ex_cbc_encrypt +.type vpsm4_ex_cbc_encrypt,%function +.align 5 +vpsm4_ex_cbc_encrypt: + AARCH64_VALID_CALL_TARGET + lsr x2,x2,4 + adrp x9, .Lsbox_magic + ldr q26, [x9, #:lo12:.Lsbox_magic] + ldr q27, [x9, #:lo12:.Lsbox_magic+16] + ldr q28, [x9, #:lo12:.Lsbox_magic+32] + ldr q29, [x9, #:lo12:.Lsbox_magic+48] + ldr q30, [x9, #:lo12:.Lsbox_magic+64] + ldr q31, [x9, #:lo12:.Lsbox_magic+80] + cbz w5,.Ldec + ld1 {v3.4s},[x4] +.Lcbc_4_blocks_enc: + cmp w2,#4 + b.lt 1f + ld1 {v4.4s,v5.4s,v6.4s,v7.4s},[x0],#64 + eor v4.16b,v4.16b,v3.16b +#ifndef __AARCH64EB__ + rev32 v5.16b,v5.16b +#endif +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif +#ifndef __AARCH64EB__ + rev32 v6.16b,v6.16b +#endif +#ifndef __AARCH64EB__ + rev32 v7.16b,v7.16b +#endif + mov x10,x3 + mov w11,#8 + mov w12,v4.s[0] + mov w13,v4.s[1] + mov w14,v4.s[2] + mov w15,v4.s[3] +10: + ldp w7,w8,[x10],8 + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + eor w6,w14,w15 + eor w9,w7,w13 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w12,w12,w6 + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + eor w6,w14,w15 + eor w9,w12,w8 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + ldp w7,w8,[x10],8 + eor w13,w13,w6 + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + eor w6,w12,w13 + eor w9,w7,w15 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w14,w14,w6 + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + eor w6,w12,w13 + eor w9,w14,w8 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w15,w15,w6 + subs w11,w11,#1 + b.ne 10b + mov v4.s[0],w15 + mov v4.s[1],w14 + mov v4.s[2],w13 + mov v4.s[3],w12 + eor v5.16b,v5.16b,v4.16b + mov x10,x3 + mov w11,#8 + mov w12,v5.s[0] + mov w13,v5.s[1] + mov w14,v5.s[2] + mov w15,v5.s[3] +10: + ldp w7,w8,[x10],8 + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + eor w6,w14,w15 + eor w9,w7,w13 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w12,w12,w6 + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + eor w6,w14,w15 + eor w9,w12,w8 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + ldp w7,w8,[x10],8 + eor w13,w13,w6 + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + eor w6,w12,w13 + eor w9,w7,w15 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w14,w14,w6 + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + eor w6,w12,w13 + eor w9,w14,w8 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w15,w15,w6 + subs w11,w11,#1 + b.ne 10b + mov v5.s[0],w15 + mov v5.s[1],w14 + mov v5.s[2],w13 + mov v5.s[3],w12 +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif + eor v6.16b,v6.16b,v5.16b + mov x10,x3 + mov w11,#8 + mov w12,v6.s[0] + mov w13,v6.s[1] + mov w14,v6.s[2] + mov w15,v6.s[3] +10: + ldp w7,w8,[x10],8 + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + eor w6,w14,w15 + eor w9,w7,w13 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w12,w12,w6 + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + eor w6,w14,w15 + eor w9,w12,w8 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + ldp w7,w8,[x10],8 + eor w13,w13,w6 + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + eor w6,w12,w13 + eor w9,w7,w15 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w14,w14,w6 + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + eor w6,w12,w13 + eor w9,w14,w8 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w15,w15,w6 + subs w11,w11,#1 + b.ne 10b + mov v6.s[0],w15 + mov v6.s[1],w14 + mov v6.s[2],w13 + mov v6.s[3],w12 +#ifndef __AARCH64EB__ + rev32 v5.16b,v5.16b +#endif + eor v7.16b,v7.16b,v6.16b + mov x10,x3 + mov w11,#8 + mov w12,v7.s[0] + mov w13,v7.s[1] + mov w14,v7.s[2] + mov w15,v7.s[3] +10: + ldp w7,w8,[x10],8 + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + eor w6,w14,w15 + eor w9,w7,w13 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w12,w12,w6 + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + eor w6,w14,w15 + eor w9,w12,w8 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + ldp w7,w8,[x10],8 + eor w13,w13,w6 + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + eor w6,w12,w13 + eor w9,w7,w15 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w14,w14,w6 + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + eor w6,w12,w13 + eor w9,w14,w8 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w15,w15,w6 + subs w11,w11,#1 + b.ne 10b + mov v7.s[0],w15 + mov v7.s[1],w14 + mov v7.s[2],w13 + mov v7.s[3],w12 +#ifndef __AARCH64EB__ + rev32 v6.16b,v6.16b +#endif +#ifndef __AARCH64EB__ + rev32 v7.16b,v7.16b +#endif + orr v3.16b,v7.16b,v7.16b + st1 {v4.4s,v5.4s,v6.4s,v7.4s},[x1],#64 + subs w2,w2,#4 + b.ne .Lcbc_4_blocks_enc + b 2f +1: + subs w2,w2,#1 + b.lt 2f + ld1 {v4.4s},[x0],#16 + eor v3.16b,v3.16b,v4.16b +#ifndef __AARCH64EB__ + rev32 v3.16b,v3.16b +#endif + mov x10,x3 + mov w11,#8 + mov w12,v3.s[0] + mov w13,v3.s[1] + mov w14,v3.s[2] + mov w15,v3.s[3] +10: + ldp w7,w8,[x10],8 + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + eor w6,w14,w15 + eor w9,w7,w13 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w12,w12,w6 + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + eor w6,w14,w15 + eor w9,w12,w8 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + ldp w7,w8,[x10],8 + eor w13,w13,w6 + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + eor w6,w12,w13 + eor w9,w7,w15 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w14,w14,w6 + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + eor w6,w12,w13 + eor w9,w14,w8 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w15,w15,w6 + subs w11,w11,#1 + b.ne 10b + mov v3.s[0],w15 + mov v3.s[1],w14 + mov v3.s[2],w13 + mov v3.s[3],w12 +#ifndef __AARCH64EB__ + rev32 v3.16b,v3.16b +#endif + st1 {v3.4s},[x1],#16 + b 1b +2: + // save back IV + st1 {v3.4s},[x4] + ret + +.Ldec: + // decryption mode starts + AARCH64_SIGN_LINK_REGISTER + stp d8,d9,[sp,#-80]! + stp d10,d11,[sp,#16] + stp d12,d13,[sp,#32] + stp d14,d15,[sp,#48] + stp x29,x30,[sp,#64] +.Lcbc_8_blocks_dec: + cmp w2,#8 + b.lt 1f + ld4 {v4.4s,v5.4s,v6.4s,v7.4s},[x0] + add x10,x0,#64 + ld4 {v8.4s,v9.4s,v10.4s,v11.4s},[x10] +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif +#ifndef __AARCH64EB__ + rev32 v5.16b,v5.16b +#endif +#ifndef __AARCH64EB__ + rev32 v6.16b,v6.16b +#endif +#ifndef __AARCH64EB__ + rev32 v7.16b,v7.16b +#endif +#ifndef __AARCH64EB__ + rev32 v8.16b,v8.16b +#endif +#ifndef __AARCH64EB__ + rev32 v9.16b,v9.16b +#endif +#ifndef __AARCH64EB__ + rev32 v10.16b,v10.16b +#endif +#ifndef __AARCH64EB__ + rev32 v11.16b,v11.16b +#endif + bl _vpsm4_ex_enc_8blks + zip1 v8.4s,v0.4s,v1.4s + zip2 v9.4s,v0.4s,v1.4s + zip1 v10.4s,v2.4s,v3.4s + zip2 v11.4s,v2.4s,v3.4s + zip1 v0.2d,v8.2d,v10.2d + zip2 v1.2d,v8.2d,v10.2d + zip1 v2.2d,v9.2d,v11.2d + zip2 v3.2d,v9.2d,v11.2d + zip1 v8.4s,v4.4s,v5.4s + zip2 v9.4s,v4.4s,v5.4s + zip1 v10.4s,v6.4s,v7.4s + zip2 v11.4s,v6.4s,v7.4s + zip1 v4.2d,v8.2d,v10.2d + zip2 v5.2d,v8.2d,v10.2d + zip1 v6.2d,v9.2d,v11.2d + zip2 v7.2d,v9.2d,v11.2d + ld1 {v15.4s},[x4] + ld1 {v8.4s,v9.4s,v10.4s,v11.4s},[x0],#64 + // note ivec1 and vtmpx[3] are reusing the same register + // care needs to be taken to avoid conflict + eor v0.16b,v0.16b,v15.16b + ld1 {v12.4s,v13.4s,v14.4s,v15.4s},[x0],#64 + eor v1.16b,v1.16b,v8.16b + eor v2.16b,v2.16b,v9.16b + eor v3.16b,v3.16b,v10.16b + // save back IV + st1 {v15.4s}, [x4] + eor v4.16b,v4.16b,v11.16b + eor v5.16b,v5.16b,v12.16b + eor v6.16b,v6.16b,v13.16b + eor v7.16b,v7.16b,v14.16b + st1 {v0.4s,v1.4s,v2.4s,v3.4s},[x1],#64 + st1 {v4.4s,v5.4s,v6.4s,v7.4s},[x1],#64 + subs w2,w2,#8 + b.gt .Lcbc_8_blocks_dec + b.eq 100f +1: + ld1 {v15.4s},[x4] +.Lcbc_4_blocks_dec: + cmp w2,#4 + b.lt 1f + ld4 {v4.4s,v5.4s,v6.4s,v7.4s},[x0] +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif +#ifndef __AARCH64EB__ + rev32 v5.16b,v5.16b +#endif +#ifndef __AARCH64EB__ + rev32 v6.16b,v6.16b +#endif +#ifndef __AARCH64EB__ + rev32 v7.16b,v7.16b +#endif + bl _vpsm4_ex_enc_4blks + ld1 {v4.4s,v5.4s,v6.4s,v7.4s},[x0],#64 + zip1 v8.4s,v0.4s,v1.4s + zip2 v9.4s,v0.4s,v1.4s + zip1 v10.4s,v2.4s,v3.4s + zip2 v11.4s,v2.4s,v3.4s + zip1 v0.2d,v8.2d,v10.2d + zip2 v1.2d,v8.2d,v10.2d + zip1 v2.2d,v9.2d,v11.2d + zip2 v3.2d,v9.2d,v11.2d + eor v0.16b,v0.16b,v15.16b + eor v1.16b,v1.16b,v4.16b + orr v15.16b,v7.16b,v7.16b + eor v2.16b,v2.16b,v5.16b + eor v3.16b,v3.16b,v6.16b + st1 {v0.4s,v1.4s,v2.4s,v3.4s},[x1],#64 + subs w2,w2,#4 + b.gt .Lcbc_4_blocks_dec + // save back IV + st1 {v7.4s}, [x4] + b 100f +1: // last block + subs w2,w2,#1 + b.lt 100f + b.gt 1f + ld1 {v4.4s},[x0],#16 + // save back IV + st1 {v4.4s}, [x4] +#ifndef __AARCH64EB__ + rev32 v8.16b,v4.16b +#else + mov v8.16b,v4.16b +#endif + mov x10,x3 + mov w11,#8 + mov w12,v8.s[0] + mov w13,v8.s[1] + mov w14,v8.s[2] + mov w15,v8.s[3] +10: + ldp w7,w8,[x10],8 + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + eor w6,w14,w15 + eor w9,w7,w13 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w12,w12,w6 + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + eor w6,w14,w15 + eor w9,w12,w8 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + ldp w7,w8,[x10],8 + eor w13,w13,w6 + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + eor w6,w12,w13 + eor w9,w7,w15 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w14,w14,w6 + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + eor w6,w12,w13 + eor w9,w14,w8 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w15,w15,w6 + subs w11,w11,#1 + b.ne 10b + mov v8.s[0],w15 + mov v8.s[1],w14 + mov v8.s[2],w13 + mov v8.s[3],w12 +#ifndef __AARCH64EB__ + rev32 v8.16b,v8.16b +#endif + eor v8.16b,v8.16b,v15.16b + st1 {v8.4s},[x1],#16 + b 100f +1: // last two blocks + ld4 {v4.s,v5.s,v6.s,v7.s}[0],[x0] + add x10,x0,#16 + ld4 {v4.s,v5.s,v6.s,v7.s}[1],[x10],#16 + subs w2,w2,1 + b.gt 1f +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif +#ifndef __AARCH64EB__ + rev32 v5.16b,v5.16b +#endif +#ifndef __AARCH64EB__ + rev32 v6.16b,v6.16b +#endif +#ifndef __AARCH64EB__ + rev32 v7.16b,v7.16b +#endif + bl _vpsm4_ex_enc_4blks + ld1 {v4.4s,v5.4s},[x0],#32 + zip1 v8.4s,v0.4s,v1.4s + zip2 v9.4s,v0.4s,v1.4s + zip1 v10.4s,v2.4s,v3.4s + zip2 v11.4s,v2.4s,v3.4s + zip1 v0.2d,v8.2d,v10.2d + zip2 v1.2d,v8.2d,v10.2d + zip1 v2.2d,v9.2d,v11.2d + zip2 v3.2d,v9.2d,v11.2d + eor v0.16b,v0.16b,v15.16b + eor v1.16b,v1.16b,v4.16b + st1 {v0.4s,v1.4s},[x1],#32 + // save back IV + st1 {v5.4s}, [x4] + b 100f +1: // last 3 blocks + ld4 {v4.s,v5.s,v6.s,v7.s}[2],[x10] +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif +#ifndef __AARCH64EB__ + rev32 v5.16b,v5.16b +#endif +#ifndef __AARCH64EB__ + rev32 v6.16b,v6.16b +#endif +#ifndef __AARCH64EB__ + rev32 v7.16b,v7.16b +#endif + bl _vpsm4_ex_enc_4blks + ld1 {v4.4s,v5.4s,v6.4s},[x0],#48 + zip1 v8.4s,v0.4s,v1.4s + zip2 v9.4s,v0.4s,v1.4s + zip1 v10.4s,v2.4s,v3.4s + zip2 v11.4s,v2.4s,v3.4s + zip1 v0.2d,v8.2d,v10.2d + zip2 v1.2d,v8.2d,v10.2d + zip1 v2.2d,v9.2d,v11.2d + zip2 v3.2d,v9.2d,v11.2d + eor v0.16b,v0.16b,v15.16b + eor v1.16b,v1.16b,v4.16b + eor v2.16b,v2.16b,v5.16b + st1 {v0.4s,v1.4s,v2.4s},[x1],#48 + // save back IV + st1 {v6.4s}, [x4] +100: + ldp d10,d11,[sp,#16] + ldp d12,d13,[sp,#32] + ldp d14,d15,[sp,#48] + ldp x29,x30,[sp,#64] + ldp d8,d9,[sp],#80 + AARCH64_VALIDATE_LINK_REGISTER + ret +.size vpsm4_ex_cbc_encrypt,.-vpsm4_ex_cbc_encrypt +.globl vpsm4_ex_ctr32_encrypt_blocks +.type vpsm4_ex_ctr32_encrypt_blocks,%function +.align 5 +vpsm4_ex_ctr32_encrypt_blocks: + AARCH64_VALID_CALL_TARGET + ld1 {v3.4s},[x4] +#ifndef __AARCH64EB__ + rev32 v3.16b,v3.16b +#endif + adrp x9, .Lsbox_magic + ldr q26, [x9, #:lo12:.Lsbox_magic] + ldr q27, [x9, #:lo12:.Lsbox_magic+16] + ldr q28, [x9, #:lo12:.Lsbox_magic+32] + ldr q29, [x9, #:lo12:.Lsbox_magic+48] + ldr q30, [x9, #:lo12:.Lsbox_magic+64] + ldr q31, [x9, #:lo12:.Lsbox_magic+80] + cmp w2,#1 + b.ne 1f + // fast processing for one single block without + // context saving overhead + mov x10,x3 + mov w11,#8 + mov w12,v3.s[0] + mov w13,v3.s[1] + mov w14,v3.s[2] + mov w15,v3.s[3] +10: + ldp w7,w8,[x10],8 + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + eor w6,w14,w15 + eor w9,w7,w13 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w12,w12,w6 + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + eor w6,w14,w15 + eor w9,w12,w8 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + ldp w7,w8,[x10],8 + eor w13,w13,w6 + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + eor w6,w12,w13 + eor w9,w7,w15 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w14,w14,w6 + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + eor w6,w12,w13 + eor w9,w14,w8 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w15,w15,w6 + subs w11,w11,#1 + b.ne 10b + mov v3.s[0],w15 + mov v3.s[1],w14 + mov v3.s[2],w13 + mov v3.s[3],w12 +#ifndef __AARCH64EB__ + rev32 v3.16b,v3.16b +#endif + ld1 {v4.4s},[x0] + eor v4.16b,v4.16b,v3.16b + st1 {v4.4s},[x1] + ret +1: + AARCH64_SIGN_LINK_REGISTER + stp d8,d9,[sp,#-80]! + stp d10,d11,[sp,#16] + stp d12,d13,[sp,#32] + stp d14,d15,[sp,#48] + stp x29,x30,[sp,#64] + mov w12,v3.s[0] + mov w13,v3.s[1] + mov w14,v3.s[2] + mov w5,v3.s[3] +.Lctr32_4_blocks_process: + cmp w2,#4 + b.lt 1f + dup v4.4s,w12 + dup v5.4s,w13 + dup v6.4s,w14 + mov v7.s[0],w5 + add w5,w5,#1 + mov v7.s[1],w5 + add w5,w5,#1 + mov v7.s[2],w5 + add w5,w5,#1 + mov v7.s[3],w5 + add w5,w5,#1 + cmp w2,#8 + b.ge .Lctr32_8_blocks_process + bl _vpsm4_ex_enc_4blks + ld4 {v12.4s,v13.4s,v14.4s,v15.4s},[x0],#64 + eor v0.16b,v0.16b,v12.16b + eor v1.16b,v1.16b,v13.16b + eor v2.16b,v2.16b,v14.16b + eor v3.16b,v3.16b,v15.16b + st4 {v0.4s,v1.4s,v2.4s,v3.4s},[x1],#64 + subs w2,w2,#4 + b.ne .Lctr32_4_blocks_process + b 100f +.Lctr32_8_blocks_process: + dup v8.4s,w12 + dup v9.4s,w13 + dup v10.4s,w14 + mov v11.s[0],w5 + add w5,w5,#1 + mov v11.s[1],w5 + add w5,w5,#1 + mov v11.s[2],w5 + add w5,w5,#1 + mov v11.s[3],w5 + add w5,w5,#1 + bl _vpsm4_ex_enc_8blks + ld4 {v12.4s,v13.4s,v14.4s,v15.4s},[x0],#64 + ld4 {v8.4s,v9.4s,v10.4s,v11.4s},[x0],#64 + eor v0.16b,v0.16b,v12.16b + eor v1.16b,v1.16b,v13.16b + eor v2.16b,v2.16b,v14.16b + eor v3.16b,v3.16b,v15.16b + eor v4.16b,v4.16b,v8.16b + eor v5.16b,v5.16b,v9.16b + eor v6.16b,v6.16b,v10.16b + eor v7.16b,v7.16b,v11.16b + st4 {v0.4s,v1.4s,v2.4s,v3.4s},[x1],#64 + st4 {v4.4s,v5.4s,v6.4s,v7.4s},[x1],#64 + subs w2,w2,#8 + b.ne .Lctr32_4_blocks_process + b 100f +1: // last block processing + subs w2,w2,#1 + b.lt 100f + b.gt 1f + mov v3.s[0],w12 + mov v3.s[1],w13 + mov v3.s[2],w14 + mov v3.s[3],w5 + mov x10,x3 + mov w11,#8 + mov w12,v3.s[0] + mov w13,v3.s[1] + mov w14,v3.s[2] + mov w15,v3.s[3] +10: + ldp w7,w8,[x10],8 + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + eor w6,w14,w15 + eor w9,w7,w13 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w12,w12,w6 + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + eor w6,w14,w15 + eor w9,w12,w8 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + ldp w7,w8,[x10],8 + eor w13,w13,w6 + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + eor w6,w12,w13 + eor w9,w7,w15 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w14,w14,w6 + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + eor w6,w12,w13 + eor w9,w14,w8 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w15,w15,w6 + subs w11,w11,#1 + b.ne 10b + mov v3.s[0],w15 + mov v3.s[1],w14 + mov v3.s[2],w13 + mov v3.s[3],w12 +#ifndef __AARCH64EB__ + rev32 v3.16b,v3.16b +#endif + ld1 {v4.4s},[x0] + eor v4.16b,v4.16b,v3.16b + st1 {v4.4s},[x1] + b 100f +1: // last 2 blocks processing + dup v4.4s,w12 + dup v5.4s,w13 + dup v6.4s,w14 + mov v7.s[0],w5 + add w5,w5,#1 + mov v7.s[1],w5 + subs w2,w2,#1 + b.ne 1f + bl _vpsm4_ex_enc_4blks + ld4 {v12.s,v13.s,v14.s,v15.s}[0],[x0],#16 + ld4 {v12.s,v13.s,v14.s,v15.s}[1],[x0],#16 + eor v0.16b,v0.16b,v12.16b + eor v1.16b,v1.16b,v13.16b + eor v2.16b,v2.16b,v14.16b + eor v3.16b,v3.16b,v15.16b + st4 {v0.s,v1.s,v2.s,v3.s}[0],[x1],#16 + st4 {v0.s,v1.s,v2.s,v3.s}[1],[x1],#16 + b 100f +1: // last 3 blocks processing + add w5,w5,#1 + mov v7.s[2],w5 + bl _vpsm4_ex_enc_4blks + ld4 {v12.s,v13.s,v14.s,v15.s}[0],[x0],#16 + ld4 {v12.s,v13.s,v14.s,v15.s}[1],[x0],#16 + ld4 {v12.s,v13.s,v14.s,v15.s}[2],[x0],#16 + eor v0.16b,v0.16b,v12.16b + eor v1.16b,v1.16b,v13.16b + eor v2.16b,v2.16b,v14.16b + eor v3.16b,v3.16b,v15.16b + st4 {v0.s,v1.s,v2.s,v3.s}[0],[x1],#16 + st4 {v0.s,v1.s,v2.s,v3.s}[1],[x1],#16 + st4 {v0.s,v1.s,v2.s,v3.s}[2],[x1],#16 +100: + ldp d10,d11,[sp,#16] + ldp d12,d13,[sp,#32] + ldp d14,d15,[sp,#48] + ldp x29,x30,[sp,#64] + ldp d8,d9,[sp],#80 + AARCH64_VALIDATE_LINK_REGISTER + ret +.size vpsm4_ex_ctr32_encrypt_blocks,.-vpsm4_ex_ctr32_encrypt_blocks +.globl vpsm4_ex_xts_encrypt_gb +.type vpsm4_ex_xts_encrypt_gb,%function +.align 5 +vpsm4_ex_xts_encrypt_gb: + AARCH64_SIGN_LINK_REGISTER + stp x15, x16, [sp, #-0x10]! + stp x17, x18, [sp, #-0x10]! + stp x19, x20, [sp, #-0x10]! + stp x21, x22, [sp, #-0x10]! + stp x23, x24, [sp, #-0x10]! + stp x25, x26, [sp, #-0x10]! + stp x27, x28, [sp, #-0x10]! + stp x29, x30, [sp, #-0x10]! + stp d8, d9, [sp, #-0x10]! + stp d10, d11, [sp, #-0x10]! + stp d12, d13, [sp, #-0x10]! + stp d14, d15, [sp, #-0x10]! + mov x26,x3 + mov x27,x4 + mov w28,w6 + ld1 {v16.4s}, [x5] + mov x3,x27 + adrp x9, .Lsbox_magic + ldr q26, [x9, #:lo12:.Lsbox_magic] + ldr q27, [x9, #:lo12:.Lsbox_magic+16] + ldr q28, [x9, #:lo12:.Lsbox_magic+32] + ldr q29, [x9, #:lo12:.Lsbox_magic+48] + ldr q30, [x9, #:lo12:.Lsbox_magic+64] + ldr q31, [x9, #:lo12:.Lsbox_magic+80] +#ifndef __AARCH64EB__ + rev32 v16.16b,v16.16b +#endif + mov x10,x3 + mov w11,#8 + mov w12,v16.s[0] + mov w13,v16.s[1] + mov w14,v16.s[2] + mov w15,v16.s[3] +10: + ldp w7,w8,[x10],8 + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + eor w6,w14,w15 + eor w9,w7,w13 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w12,w12,w6 + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + eor w6,w14,w15 + eor w9,w12,w8 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + ldp w7,w8,[x10],8 + eor w13,w13,w6 + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + eor w6,w12,w13 + eor w9,w7,w15 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w14,w14,w6 + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + eor w6,w12,w13 + eor w9,w14,w8 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w15,w15,w6 + subs w11,w11,#1 + b.ne 10b + mov v16.s[0],w15 + mov v16.s[1],w14 + mov v16.s[2],w13 + mov v16.s[3],w12 +#ifndef __AARCH64EB__ + rev32 v16.16b,v16.16b +#endif + mov x3,x26 + and x29,x2,#0x0F + // convert length into blocks + lsr x2,x2,4 + cmp x2,#1 + b.lt .return_gb + + cmp x29,0 + // If the encryption/decryption Length is N times of 16, + // the all blocks are encrypted/decrypted in .xts_encrypt_blocks_gb + b.eq .xts_encrypt_blocks_gb + + // If the encryption/decryption length is not N times of 16, + // the last two blocks are encrypted/decrypted in .last_2blks_tweak_gb or .only_2blks_tweak_gb + // the other blocks are encrypted/decrypted in .xts_encrypt_blocks_gb + subs x2,x2,#1 + b.eq .only_2blks_tweak_gb +.xts_encrypt_blocks_gb: + rbit v16.16b,v16.16b +#ifdef __AARCH64EB__ + rev32 v16.16b,v16.16b +#endif + mov x12,v16.d[0] + mov x13,v16.d[1] + mov w7,0x87 + extr x9,x13,x13,#32 + extr x15,x13,x12,#63 + and w8,w7,w9,asr#31 + eor x14,x8,x12,lsl#1 + mov w7,0x87 + extr x9,x15,x15,#32 + extr x17,x15,x14,#63 + and w8,w7,w9,asr#31 + eor x16,x8,x14,lsl#1 + mov w7,0x87 + extr x9,x17,x17,#32 + extr x19,x17,x16,#63 + and w8,w7,w9,asr#31 + eor x18,x8,x16,lsl#1 + mov w7,0x87 + extr x9,x19,x19,#32 + extr x21,x19,x18,#63 + and w8,w7,w9,asr#31 + eor x20,x8,x18,lsl#1 + mov w7,0x87 + extr x9,x21,x21,#32 + extr x23,x21,x20,#63 + and w8,w7,w9,asr#31 + eor x22,x8,x20,lsl#1 + mov w7,0x87 + extr x9,x23,x23,#32 + extr x25,x23,x22,#63 + and w8,w7,w9,asr#31 + eor x24,x8,x22,lsl#1 + mov w7,0x87 + extr x9,x25,x25,#32 + extr x27,x25,x24,#63 + and w8,w7,w9,asr#31 + eor x26,x8,x24,lsl#1 +.Lxts_8_blocks_process_gb: + cmp x2,#8 + mov v16.d[0],x12 + mov v16.d[1],x13 +#ifdef __AARCH64EB__ + rev32 v16.16b,v16.16b +#endif + mov w7,0x87 + extr x9,x27,x27,#32 + extr x13,x27,x26,#63 + and w8,w7,w9,asr#31 + eor x12,x8,x26,lsl#1 + mov v17.d[0],x14 + mov v17.d[1],x15 +#ifdef __AARCH64EB__ + rev32 v17.16b,v17.16b +#endif + mov w7,0x87 + extr x9,x13,x13,#32 + extr x15,x13,x12,#63 + and w8,w7,w9,asr#31 + eor x14,x8,x12,lsl#1 + mov v18.d[0],x16 + mov v18.d[1],x17 +#ifdef __AARCH64EB__ + rev32 v18.16b,v18.16b +#endif + mov w7,0x87 + extr x9,x15,x15,#32 + extr x17,x15,x14,#63 + and w8,w7,w9,asr#31 + eor x16,x8,x14,lsl#1 + mov v19.d[0],x18 + mov v19.d[1],x19 +#ifdef __AARCH64EB__ + rev32 v19.16b,v19.16b +#endif + mov w7,0x87 + extr x9,x17,x17,#32 + extr x19,x17,x16,#63 + and w8,w7,w9,asr#31 + eor x18,x8,x16,lsl#1 + mov v20.d[0],x20 + mov v20.d[1],x21 +#ifdef __AARCH64EB__ + rev32 v20.16b,v20.16b +#endif + mov w7,0x87 + extr x9,x19,x19,#32 + extr x21,x19,x18,#63 + and w8,w7,w9,asr#31 + eor x20,x8,x18,lsl#1 + mov v21.d[0],x22 + mov v21.d[1],x23 +#ifdef __AARCH64EB__ + rev32 v21.16b,v21.16b +#endif + mov w7,0x87 + extr x9,x21,x21,#32 + extr x23,x21,x20,#63 + and w8,w7,w9,asr#31 + eor x22,x8,x20,lsl#1 + mov v22.d[0],x24 + mov v22.d[1],x25 +#ifdef __AARCH64EB__ + rev32 v22.16b,v22.16b +#endif + mov w7,0x87 + extr x9,x23,x23,#32 + extr x25,x23,x22,#63 + and w8,w7,w9,asr#31 + eor x24,x8,x22,lsl#1 + mov v23.d[0],x26 + mov v23.d[1],x27 +#ifdef __AARCH64EB__ + rev32 v23.16b,v23.16b +#endif + mov w7,0x87 + extr x9,x25,x25,#32 + extr x27,x25,x24,#63 + and w8,w7,w9,asr#31 + eor x26,x8,x24,lsl#1 + b.lt .Lxts_4_blocks_process_gb + ld1 {v4.4s,v5.4s,v6.4s,v7.4s},[x0],#64 + rbit v16.16b,v16.16b + rbit v17.16b,v17.16b + rbit v18.16b,v18.16b + rbit v19.16b,v19.16b + eor v4.16b, v4.16b, v16.16b + eor v5.16b, v5.16b, v17.16b + eor v6.16b, v6.16b, v18.16b + eor v7.16b, v7.16b, v19.16b + ld1 {v8.4s,v9.4s,v10.4s,v11.4s},[x0],#64 + rbit v20.16b,v20.16b + rbit v21.16b,v21.16b + rbit v22.16b,v22.16b + rbit v23.16b,v23.16b + eor v8.16b, v8.16b, v20.16b + eor v9.16b, v9.16b, v21.16b + eor v10.16b, v10.16b, v22.16b + eor v11.16b, v11.16b, v23.16b +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif +#ifndef __AARCH64EB__ + rev32 v5.16b,v5.16b +#endif +#ifndef __AARCH64EB__ + rev32 v6.16b,v6.16b +#endif +#ifndef __AARCH64EB__ + rev32 v7.16b,v7.16b +#endif +#ifndef __AARCH64EB__ + rev32 v8.16b,v8.16b +#endif +#ifndef __AARCH64EB__ + rev32 v9.16b,v9.16b +#endif +#ifndef __AARCH64EB__ + rev32 v10.16b,v10.16b +#endif +#ifndef __AARCH64EB__ + rev32 v11.16b,v11.16b +#endif + zip1 v0.4s,v4.4s,v5.4s + zip2 v1.4s,v4.4s,v5.4s + zip1 v2.4s,v6.4s,v7.4s + zip2 v3.4s,v6.4s,v7.4s + zip1 v4.2d,v0.2d,v2.2d + zip2 v5.2d,v0.2d,v2.2d + zip1 v6.2d,v1.2d,v3.2d + zip2 v7.2d,v1.2d,v3.2d + zip1 v0.4s,v8.4s,v9.4s + zip2 v1.4s,v8.4s,v9.4s + zip1 v2.4s,v10.4s,v11.4s + zip2 v3.4s,v10.4s,v11.4s + zip1 v8.2d,v0.2d,v2.2d + zip2 v9.2d,v0.2d,v2.2d + zip1 v10.2d,v1.2d,v3.2d + zip2 v11.2d,v1.2d,v3.2d + bl _vpsm4_ex_enc_8blks + zip1 v8.4s,v0.4s,v1.4s + zip2 v9.4s,v0.4s,v1.4s + zip1 v10.4s,v2.4s,v3.4s + zip2 v11.4s,v2.4s,v3.4s + zip1 v0.2d,v8.2d,v10.2d + zip2 v1.2d,v8.2d,v10.2d + zip1 v2.2d,v9.2d,v11.2d + zip2 v3.2d,v9.2d,v11.2d + zip1 v8.4s,v4.4s,v5.4s + zip2 v9.4s,v4.4s,v5.4s + zip1 v10.4s,v6.4s,v7.4s + zip2 v11.4s,v6.4s,v7.4s + zip1 v4.2d,v8.2d,v10.2d + zip2 v5.2d,v8.2d,v10.2d + zip1 v6.2d,v9.2d,v11.2d + zip2 v7.2d,v9.2d,v11.2d + eor v0.16b, v0.16b, v16.16b + eor v1.16b, v1.16b, v17.16b + eor v2.16b, v2.16b, v18.16b + eor v3.16b, v3.16b, v19.16b + eor v4.16b, v4.16b, v20.16b + eor v5.16b, v5.16b, v21.16b + eor v6.16b, v6.16b, v22.16b + eor v7.16b, v7.16b, v23.16b + + // save the last tweak + mov v25.16b,v23.16b + st1 {v0.4s,v1.4s,v2.4s,v3.4s},[x1],#64 + st1 {v4.4s,v5.4s,v6.4s,v7.4s},[x1],#64 + subs x2,x2,#8 + b.gt .Lxts_8_blocks_process_gb + b 100f +.Lxts_4_blocks_process_gb: + cmp x2,#4 + b.lt 1f + ld1 {v4.4s,v5.4s,v6.4s,v7.4s},[x0],#64 + rbit v16.16b,v16.16b + rbit v17.16b,v17.16b + rbit v18.16b,v18.16b + rbit v19.16b,v19.16b + eor v4.16b, v4.16b, v16.16b + eor v5.16b, v5.16b, v17.16b + eor v6.16b, v6.16b, v18.16b + eor v7.16b, v7.16b, v19.16b +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif +#ifndef __AARCH64EB__ + rev32 v5.16b,v5.16b +#endif +#ifndef __AARCH64EB__ + rev32 v6.16b,v6.16b +#endif +#ifndef __AARCH64EB__ + rev32 v7.16b,v7.16b +#endif + zip1 v0.4s,v4.4s,v5.4s + zip2 v1.4s,v4.4s,v5.4s + zip1 v2.4s,v6.4s,v7.4s + zip2 v3.4s,v6.4s,v7.4s + zip1 v4.2d,v0.2d,v2.2d + zip2 v5.2d,v0.2d,v2.2d + zip1 v6.2d,v1.2d,v3.2d + zip2 v7.2d,v1.2d,v3.2d + bl _vpsm4_ex_enc_4blks + zip1 v4.4s,v0.4s,v1.4s + zip2 v5.4s,v0.4s,v1.4s + zip1 v6.4s,v2.4s,v3.4s + zip2 v7.4s,v2.4s,v3.4s + zip1 v0.2d,v4.2d,v6.2d + zip2 v1.2d,v4.2d,v6.2d + zip1 v2.2d,v5.2d,v7.2d + zip2 v3.2d,v5.2d,v7.2d + eor v0.16b, v0.16b, v16.16b + eor v1.16b, v1.16b, v17.16b + eor v2.16b, v2.16b, v18.16b + eor v3.16b, v3.16b, v19.16b + st1 {v0.4s,v1.4s,v2.4s,v3.4s},[x1],#64 + sub x2,x2,#4 + mov v16.16b,v20.16b + mov v17.16b,v21.16b + mov v18.16b,v22.16b + // save the last tweak + mov v25.16b,v19.16b +1: + // process last block + cmp x2,#1 + b.lt 100f + b.gt 1f + ld1 {v4.4s},[x0],#16 + rbit v16.16b,v16.16b + eor v4.16b, v4.16b, v16.16b +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif + mov x10,x3 + mov w11,#8 + mov w12,v4.s[0] + mov w13,v4.s[1] + mov w14,v4.s[2] + mov w15,v4.s[3] +10: + ldp w7,w8,[x10],8 + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + eor w6,w14,w15 + eor w9,w7,w13 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w12,w12,w6 + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + eor w6,w14,w15 + eor w9,w12,w8 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + ldp w7,w8,[x10],8 + eor w13,w13,w6 + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + eor w6,w12,w13 + eor w9,w7,w15 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w14,w14,w6 + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + eor w6,w12,w13 + eor w9,w14,w8 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w15,w15,w6 + subs w11,w11,#1 + b.ne 10b + mov v4.s[0],w15 + mov v4.s[1],w14 + mov v4.s[2],w13 + mov v4.s[3],w12 +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif + eor v4.16b, v4.16b, v16.16b + st1 {v4.4s},[x1],#16 + // save the last tweak + mov v25.16b,v16.16b + b 100f +1: // process last 2 blocks + cmp x2,#2 + b.gt 1f + ld1 {v4.4s,v5.4s},[x0],#32 + rbit v16.16b,v16.16b + rbit v17.16b,v17.16b + eor v4.16b, v4.16b, v16.16b + eor v5.16b, v5.16b, v17.16b +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif +#ifndef __AARCH64EB__ + rev32 v5.16b,v5.16b +#endif + zip1 v0.4s,v4.4s,v5.4s + zip2 v1.4s,v4.4s,v5.4s + zip1 v2.4s,v6.4s,v7.4s + zip2 v3.4s,v6.4s,v7.4s + zip1 v4.2d,v0.2d,v2.2d + zip2 v5.2d,v0.2d,v2.2d + zip1 v6.2d,v1.2d,v3.2d + zip2 v7.2d,v1.2d,v3.2d + bl _vpsm4_ex_enc_4blks + zip1 v4.4s,v0.4s,v1.4s + zip2 v5.4s,v0.4s,v1.4s + zip1 v6.4s,v2.4s,v3.4s + zip2 v7.4s,v2.4s,v3.4s + zip1 v0.2d,v4.2d,v6.2d + zip2 v1.2d,v4.2d,v6.2d + zip1 v2.2d,v5.2d,v7.2d + zip2 v3.2d,v5.2d,v7.2d + eor v0.16b, v0.16b, v16.16b + eor v1.16b, v1.16b, v17.16b + st1 {v0.4s,v1.4s},[x1],#32 + // save the last tweak + mov v25.16b,v17.16b + b 100f +1: // process last 3 blocks + ld1 {v4.4s,v5.4s,v6.4s},[x0],#48 + rbit v16.16b,v16.16b + rbit v17.16b,v17.16b + rbit v18.16b,v18.16b + eor v4.16b, v4.16b, v16.16b + eor v5.16b, v5.16b, v17.16b + eor v6.16b, v6.16b, v18.16b +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif +#ifndef __AARCH64EB__ + rev32 v5.16b,v5.16b +#endif +#ifndef __AARCH64EB__ + rev32 v6.16b,v6.16b +#endif + zip1 v0.4s,v4.4s,v5.4s + zip2 v1.4s,v4.4s,v5.4s + zip1 v2.4s,v6.4s,v7.4s + zip2 v3.4s,v6.4s,v7.4s + zip1 v4.2d,v0.2d,v2.2d + zip2 v5.2d,v0.2d,v2.2d + zip1 v6.2d,v1.2d,v3.2d + zip2 v7.2d,v1.2d,v3.2d + bl _vpsm4_ex_enc_4blks + zip1 v4.4s,v0.4s,v1.4s + zip2 v5.4s,v0.4s,v1.4s + zip1 v6.4s,v2.4s,v3.4s + zip2 v7.4s,v2.4s,v3.4s + zip1 v0.2d,v4.2d,v6.2d + zip2 v1.2d,v4.2d,v6.2d + zip1 v2.2d,v5.2d,v7.2d + zip2 v3.2d,v5.2d,v7.2d + eor v0.16b, v0.16b, v16.16b + eor v1.16b, v1.16b, v17.16b + eor v2.16b, v2.16b, v18.16b + st1 {v0.4s,v1.4s,v2.4s},[x1],#48 + // save the last tweak + mov v25.16b,v18.16b +100: + cmp x29,0 + b.eq .return_gb + +// This branch calculates the last two tweaks, +// while the encryption/decryption length is larger than 32 +.last_2blks_tweak_gb: +#ifdef __AARCH64EB__ + rev32 v25.16b,v25.16b +#endif + rbit v2.16b,v25.16b + adrp x9, .Lxts_magic + ldr q0, [x9, #:lo12:.Lxts_magic] + shl v17.16b, v2.16b, #1 + ext v1.16b, v2.16b, v2.16b,#15 + ushr v1.16b, v1.16b, #7 + mul v1.16b, v1.16b, v0.16b + eor v17.16b, v17.16b, v1.16b + rbit v17.16b,v17.16b + rbit v2.16b,v17.16b + adrp x9, .Lxts_magic + ldr q0, [x9, #:lo12:.Lxts_magic] + shl v18.16b, v2.16b, #1 + ext v1.16b, v2.16b, v2.16b,#15 + ushr v1.16b, v1.16b, #7 + mul v1.16b, v1.16b, v0.16b + eor v18.16b, v18.16b, v1.16b + rbit v18.16b,v18.16b + b .check_dec_gb + + +// This branch calculates the last two tweaks, +// while the encryption/decryption length is equal to 32, who only need two tweaks +.only_2blks_tweak_gb: + mov v17.16b,v16.16b +#ifdef __AARCH64EB__ + rev32 v17.16b,v17.16b +#endif + rbit v2.16b,v17.16b + adrp x9, .Lxts_magic + ldr q0, [x9, #:lo12:.Lxts_magic] + shl v18.16b, v2.16b, #1 + ext v1.16b, v2.16b, v2.16b,#15 + ushr v1.16b, v1.16b, #7 + mul v1.16b, v1.16b, v0.16b + eor v18.16b, v18.16b, v1.16b + rbit v18.16b,v18.16b + b .check_dec_gb + + +// Determine whether encryption or decryption is required. +// The last two tweaks need to be swapped for decryption. +.check_dec_gb: + // encryption:1 decryption:0 + cmp w28,1 + b.eq .process_last_2blks_gb + mov v0.16B,v17.16b + mov v17.16B,v18.16b + mov v18.16B,v0.16b + +.process_last_2blks_gb: +#ifdef __AARCH64EB__ + rev32 v17.16b,v17.16b +#endif +#ifdef __AARCH64EB__ + rev32 v18.16b,v18.16b +#endif + ld1 {v4.4s},[x0],#16 + eor v4.16b, v4.16b, v17.16b +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif + mov x10,x3 + mov w11,#8 + mov w12,v4.s[0] + mov w13,v4.s[1] + mov w14,v4.s[2] + mov w15,v4.s[3] +10: + ldp w7,w8,[x10],8 + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + eor w6,w14,w15 + eor w9,w7,w13 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w12,w12,w6 + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + eor w6,w14,w15 + eor w9,w12,w8 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + ldp w7,w8,[x10],8 + eor w13,w13,w6 + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + eor w6,w12,w13 + eor w9,w7,w15 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w14,w14,w6 + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + eor w6,w12,w13 + eor w9,w14,w8 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w15,w15,w6 + subs w11,w11,#1 + b.ne 10b + mov v4.s[0],w15 + mov v4.s[1],w14 + mov v4.s[2],w13 + mov v4.s[3],w12 +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif + eor v4.16b, v4.16b, v17.16b + st1 {v4.4s},[x1],#16 + + sub x26,x1,16 +.loop_gb: + subs x29,x29,1 + ldrb w7,[x26,x29] + ldrb w8,[x0,x29] + strb w8,[x26,x29] + strb w7,[x1,x29] + b.gt .loop_gb + ld1 {v4.4s}, [x26] + eor v4.16b, v4.16b, v18.16b +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif + mov x10,x3 + mov w11,#8 + mov w12,v4.s[0] + mov w13,v4.s[1] + mov w14,v4.s[2] + mov w15,v4.s[3] +10: + ldp w7,w8,[x10],8 + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + eor w6,w14,w15 + eor w9,w7,w13 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w12,w12,w6 + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + eor w6,w14,w15 + eor w9,w12,w8 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + ldp w7,w8,[x10],8 + eor w13,w13,w6 + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + eor w6,w12,w13 + eor w9,w7,w15 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w14,w14,w6 + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + eor w6,w12,w13 + eor w9,w14,w8 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w15,w15,w6 + subs w11,w11,#1 + b.ne 10b + mov v4.s[0],w15 + mov v4.s[1],w14 + mov v4.s[2],w13 + mov v4.s[3],w12 +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif + eor v4.16b, v4.16b, v18.16b + st1 {v4.4s}, [x26] +.return_gb: + ldp d14, d15, [sp], #0x10 + ldp d12, d13, [sp], #0x10 + ldp d10, d11, [sp], #0x10 + ldp d8, d9, [sp], #0x10 + ldp x29, x30, [sp], #0x10 + ldp x27, x28, [sp], #0x10 + ldp x25, x26, [sp], #0x10 + ldp x23, x24, [sp], #0x10 + ldp x21, x22, [sp], #0x10 + ldp x19, x20, [sp], #0x10 + ldp x17, x18, [sp], #0x10 + ldp x15, x16, [sp], #0x10 + AARCH64_VALIDATE_LINK_REGISTER + ret +.size vpsm4_ex_xts_encrypt_gb,.-vpsm4_ex_xts_encrypt_gb +.globl vpsm4_ex_xts_encrypt +.type vpsm4_ex_xts_encrypt,%function +.align 5 +vpsm4_ex_xts_encrypt: + AARCH64_SIGN_LINK_REGISTER + stp x15, x16, [sp, #-0x10]! + stp x17, x18, [sp, #-0x10]! + stp x19, x20, [sp, #-0x10]! + stp x21, x22, [sp, #-0x10]! + stp x23, x24, [sp, #-0x10]! + stp x25, x26, [sp, #-0x10]! + stp x27, x28, [sp, #-0x10]! + stp x29, x30, [sp, #-0x10]! + stp d8, d9, [sp, #-0x10]! + stp d10, d11, [sp, #-0x10]! + stp d12, d13, [sp, #-0x10]! + stp d14, d15, [sp, #-0x10]! + mov x26,x3 + mov x27,x4 + mov w28,w6 + ld1 {v16.4s}, [x5] + mov x3,x27 + adrp x9, .Lsbox_magic + ldr q26, [x9, #:lo12:.Lsbox_magic] + ldr q27, [x9, #:lo12:.Lsbox_magic+16] + ldr q28, [x9, #:lo12:.Lsbox_magic+32] + ldr q29, [x9, #:lo12:.Lsbox_magic+48] + ldr q30, [x9, #:lo12:.Lsbox_magic+64] + ldr q31, [x9, #:lo12:.Lsbox_magic+80] +#ifndef __AARCH64EB__ + rev32 v16.16b,v16.16b +#endif + mov x10,x3 + mov w11,#8 + mov w12,v16.s[0] + mov w13,v16.s[1] + mov w14,v16.s[2] + mov w15,v16.s[3] +10: + ldp w7,w8,[x10],8 + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + eor w6,w14,w15 + eor w9,w7,w13 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w12,w12,w6 + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + eor w6,w14,w15 + eor w9,w12,w8 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + ldp w7,w8,[x10],8 + eor w13,w13,w6 + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + eor w6,w12,w13 + eor w9,w7,w15 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w14,w14,w6 + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + eor w6,w12,w13 + eor w9,w14,w8 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w15,w15,w6 + subs w11,w11,#1 + b.ne 10b + mov v16.s[0],w15 + mov v16.s[1],w14 + mov v16.s[2],w13 + mov v16.s[3],w12 +#ifndef __AARCH64EB__ + rev32 v16.16b,v16.16b +#endif + mov x3,x26 + and x29,x2,#0x0F + // convert length into blocks + lsr x2,x2,4 + cmp x2,#1 + b.lt .return + + cmp x29,0 + // If the encryption/decryption Length is N times of 16, + // the all blocks are encrypted/decrypted in .xts_encrypt_blocks + b.eq .xts_encrypt_blocks + + // If the encryption/decryption length is not N times of 16, + // the last two blocks are encrypted/decrypted in .last_2blks_tweak or .only_2blks_tweak + // the other blocks are encrypted/decrypted in .xts_encrypt_blocks + subs x2,x2,#1 + b.eq .only_2blks_tweak +.xts_encrypt_blocks: +#ifdef __AARCH64EB__ + rev32 v16.16b,v16.16b +#endif + mov x12,v16.d[0] + mov x13,v16.d[1] + mov w7,0x87 + extr x9,x13,x13,#32 + extr x15,x13,x12,#63 + and w8,w7,w9,asr#31 + eor x14,x8,x12,lsl#1 + mov w7,0x87 + extr x9,x15,x15,#32 + extr x17,x15,x14,#63 + and w8,w7,w9,asr#31 + eor x16,x8,x14,lsl#1 + mov w7,0x87 + extr x9,x17,x17,#32 + extr x19,x17,x16,#63 + and w8,w7,w9,asr#31 + eor x18,x8,x16,lsl#1 + mov w7,0x87 + extr x9,x19,x19,#32 + extr x21,x19,x18,#63 + and w8,w7,w9,asr#31 + eor x20,x8,x18,lsl#1 + mov w7,0x87 + extr x9,x21,x21,#32 + extr x23,x21,x20,#63 + and w8,w7,w9,asr#31 + eor x22,x8,x20,lsl#1 + mov w7,0x87 + extr x9,x23,x23,#32 + extr x25,x23,x22,#63 + and w8,w7,w9,asr#31 + eor x24,x8,x22,lsl#1 + mov w7,0x87 + extr x9,x25,x25,#32 + extr x27,x25,x24,#63 + and w8,w7,w9,asr#31 + eor x26,x8,x24,lsl#1 +.Lxts_8_blocks_process: + cmp x2,#8 + mov v16.d[0],x12 + mov v16.d[1],x13 +#ifdef __AARCH64EB__ + rev32 v16.16b,v16.16b +#endif + mov w7,0x87 + extr x9,x27,x27,#32 + extr x13,x27,x26,#63 + and w8,w7,w9,asr#31 + eor x12,x8,x26,lsl#1 + mov v17.d[0],x14 + mov v17.d[1],x15 +#ifdef __AARCH64EB__ + rev32 v17.16b,v17.16b +#endif + mov w7,0x87 + extr x9,x13,x13,#32 + extr x15,x13,x12,#63 + and w8,w7,w9,asr#31 + eor x14,x8,x12,lsl#1 + mov v18.d[0],x16 + mov v18.d[1],x17 +#ifdef __AARCH64EB__ + rev32 v18.16b,v18.16b +#endif + mov w7,0x87 + extr x9,x15,x15,#32 + extr x17,x15,x14,#63 + and w8,w7,w9,asr#31 + eor x16,x8,x14,lsl#1 + mov v19.d[0],x18 + mov v19.d[1],x19 +#ifdef __AARCH64EB__ + rev32 v19.16b,v19.16b +#endif + mov w7,0x87 + extr x9,x17,x17,#32 + extr x19,x17,x16,#63 + and w8,w7,w9,asr#31 + eor x18,x8,x16,lsl#1 + mov v20.d[0],x20 + mov v20.d[1],x21 +#ifdef __AARCH64EB__ + rev32 v20.16b,v20.16b +#endif + mov w7,0x87 + extr x9,x19,x19,#32 + extr x21,x19,x18,#63 + and w8,w7,w9,asr#31 + eor x20,x8,x18,lsl#1 + mov v21.d[0],x22 + mov v21.d[1],x23 +#ifdef __AARCH64EB__ + rev32 v21.16b,v21.16b +#endif + mov w7,0x87 + extr x9,x21,x21,#32 + extr x23,x21,x20,#63 + and w8,w7,w9,asr#31 + eor x22,x8,x20,lsl#1 + mov v22.d[0],x24 + mov v22.d[1],x25 +#ifdef __AARCH64EB__ + rev32 v22.16b,v22.16b +#endif + mov w7,0x87 + extr x9,x23,x23,#32 + extr x25,x23,x22,#63 + and w8,w7,w9,asr#31 + eor x24,x8,x22,lsl#1 + mov v23.d[0],x26 + mov v23.d[1],x27 +#ifdef __AARCH64EB__ + rev32 v23.16b,v23.16b +#endif + mov w7,0x87 + extr x9,x25,x25,#32 + extr x27,x25,x24,#63 + and w8,w7,w9,asr#31 + eor x26,x8,x24,lsl#1 + b.lt .Lxts_4_blocks_process + ld1 {v4.4s,v5.4s,v6.4s,v7.4s},[x0],#64 + eor v4.16b, v4.16b, v16.16b + eor v5.16b, v5.16b, v17.16b + eor v6.16b, v6.16b, v18.16b + eor v7.16b, v7.16b, v19.16b + ld1 {v8.4s,v9.4s,v10.4s,v11.4s},[x0],#64 + eor v8.16b, v8.16b, v20.16b + eor v9.16b, v9.16b, v21.16b + eor v10.16b, v10.16b, v22.16b + eor v11.16b, v11.16b, v23.16b +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif +#ifndef __AARCH64EB__ + rev32 v5.16b,v5.16b +#endif +#ifndef __AARCH64EB__ + rev32 v6.16b,v6.16b +#endif +#ifndef __AARCH64EB__ + rev32 v7.16b,v7.16b +#endif +#ifndef __AARCH64EB__ + rev32 v8.16b,v8.16b +#endif +#ifndef __AARCH64EB__ + rev32 v9.16b,v9.16b +#endif +#ifndef __AARCH64EB__ + rev32 v10.16b,v10.16b +#endif +#ifndef __AARCH64EB__ + rev32 v11.16b,v11.16b +#endif + zip1 v0.4s,v4.4s,v5.4s + zip2 v1.4s,v4.4s,v5.4s + zip1 v2.4s,v6.4s,v7.4s + zip2 v3.4s,v6.4s,v7.4s + zip1 v4.2d,v0.2d,v2.2d + zip2 v5.2d,v0.2d,v2.2d + zip1 v6.2d,v1.2d,v3.2d + zip2 v7.2d,v1.2d,v3.2d + zip1 v0.4s,v8.4s,v9.4s + zip2 v1.4s,v8.4s,v9.4s + zip1 v2.4s,v10.4s,v11.4s + zip2 v3.4s,v10.4s,v11.4s + zip1 v8.2d,v0.2d,v2.2d + zip2 v9.2d,v0.2d,v2.2d + zip1 v10.2d,v1.2d,v3.2d + zip2 v11.2d,v1.2d,v3.2d + bl _vpsm4_ex_enc_8blks + zip1 v8.4s,v0.4s,v1.4s + zip2 v9.4s,v0.4s,v1.4s + zip1 v10.4s,v2.4s,v3.4s + zip2 v11.4s,v2.4s,v3.4s + zip1 v0.2d,v8.2d,v10.2d + zip2 v1.2d,v8.2d,v10.2d + zip1 v2.2d,v9.2d,v11.2d + zip2 v3.2d,v9.2d,v11.2d + zip1 v8.4s,v4.4s,v5.4s + zip2 v9.4s,v4.4s,v5.4s + zip1 v10.4s,v6.4s,v7.4s + zip2 v11.4s,v6.4s,v7.4s + zip1 v4.2d,v8.2d,v10.2d + zip2 v5.2d,v8.2d,v10.2d + zip1 v6.2d,v9.2d,v11.2d + zip2 v7.2d,v9.2d,v11.2d + eor v0.16b, v0.16b, v16.16b + eor v1.16b, v1.16b, v17.16b + eor v2.16b, v2.16b, v18.16b + eor v3.16b, v3.16b, v19.16b + eor v4.16b, v4.16b, v20.16b + eor v5.16b, v5.16b, v21.16b + eor v6.16b, v6.16b, v22.16b + eor v7.16b, v7.16b, v23.16b + + // save the last tweak + mov v25.16b,v23.16b + st1 {v0.4s,v1.4s,v2.4s,v3.4s},[x1],#64 + st1 {v4.4s,v5.4s,v6.4s,v7.4s},[x1],#64 + subs x2,x2,#8 + b.gt .Lxts_8_blocks_process + b 100f +.Lxts_4_blocks_process: + cmp x2,#4 + b.lt 1f + ld1 {v4.4s,v5.4s,v6.4s,v7.4s},[x0],#64 + eor v4.16b, v4.16b, v16.16b + eor v5.16b, v5.16b, v17.16b + eor v6.16b, v6.16b, v18.16b + eor v7.16b, v7.16b, v19.16b +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif +#ifndef __AARCH64EB__ + rev32 v5.16b,v5.16b +#endif +#ifndef __AARCH64EB__ + rev32 v6.16b,v6.16b +#endif +#ifndef __AARCH64EB__ + rev32 v7.16b,v7.16b +#endif + zip1 v0.4s,v4.4s,v5.4s + zip2 v1.4s,v4.4s,v5.4s + zip1 v2.4s,v6.4s,v7.4s + zip2 v3.4s,v6.4s,v7.4s + zip1 v4.2d,v0.2d,v2.2d + zip2 v5.2d,v0.2d,v2.2d + zip1 v6.2d,v1.2d,v3.2d + zip2 v7.2d,v1.2d,v3.2d + bl _vpsm4_ex_enc_4blks + zip1 v4.4s,v0.4s,v1.4s + zip2 v5.4s,v0.4s,v1.4s + zip1 v6.4s,v2.4s,v3.4s + zip2 v7.4s,v2.4s,v3.4s + zip1 v0.2d,v4.2d,v6.2d + zip2 v1.2d,v4.2d,v6.2d + zip1 v2.2d,v5.2d,v7.2d + zip2 v3.2d,v5.2d,v7.2d + eor v0.16b, v0.16b, v16.16b + eor v1.16b, v1.16b, v17.16b + eor v2.16b, v2.16b, v18.16b + eor v3.16b, v3.16b, v19.16b + st1 {v0.4s,v1.4s,v2.4s,v3.4s},[x1],#64 + sub x2,x2,#4 + mov v16.16b,v20.16b + mov v17.16b,v21.16b + mov v18.16b,v22.16b + // save the last tweak + mov v25.16b,v19.16b +1: + // process last block + cmp x2,#1 + b.lt 100f + b.gt 1f + ld1 {v4.4s},[x0],#16 + eor v4.16b, v4.16b, v16.16b +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif + mov x10,x3 + mov w11,#8 + mov w12,v4.s[0] + mov w13,v4.s[1] + mov w14,v4.s[2] + mov w15,v4.s[3] +10: + ldp w7,w8,[x10],8 + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + eor w6,w14,w15 + eor w9,w7,w13 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w12,w12,w6 + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + eor w6,w14,w15 + eor w9,w12,w8 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + ldp w7,w8,[x10],8 + eor w13,w13,w6 + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + eor w6,w12,w13 + eor w9,w7,w15 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w14,w14,w6 + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + eor w6,w12,w13 + eor w9,w14,w8 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w15,w15,w6 + subs w11,w11,#1 + b.ne 10b + mov v4.s[0],w15 + mov v4.s[1],w14 + mov v4.s[2],w13 + mov v4.s[3],w12 +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif + eor v4.16b, v4.16b, v16.16b + st1 {v4.4s},[x1],#16 + // save the last tweak + mov v25.16b,v16.16b + b 100f +1: // process last 2 blocks + cmp x2,#2 + b.gt 1f + ld1 {v4.4s,v5.4s},[x0],#32 + eor v4.16b, v4.16b, v16.16b + eor v5.16b, v5.16b, v17.16b +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif +#ifndef __AARCH64EB__ + rev32 v5.16b,v5.16b +#endif + zip1 v0.4s,v4.4s,v5.4s + zip2 v1.4s,v4.4s,v5.4s + zip1 v2.4s,v6.4s,v7.4s + zip2 v3.4s,v6.4s,v7.4s + zip1 v4.2d,v0.2d,v2.2d + zip2 v5.2d,v0.2d,v2.2d + zip1 v6.2d,v1.2d,v3.2d + zip2 v7.2d,v1.2d,v3.2d + bl _vpsm4_ex_enc_4blks + zip1 v4.4s,v0.4s,v1.4s + zip2 v5.4s,v0.4s,v1.4s + zip1 v6.4s,v2.4s,v3.4s + zip2 v7.4s,v2.4s,v3.4s + zip1 v0.2d,v4.2d,v6.2d + zip2 v1.2d,v4.2d,v6.2d + zip1 v2.2d,v5.2d,v7.2d + zip2 v3.2d,v5.2d,v7.2d + eor v0.16b, v0.16b, v16.16b + eor v1.16b, v1.16b, v17.16b + st1 {v0.4s,v1.4s},[x1],#32 + // save the last tweak + mov v25.16b,v17.16b + b 100f +1: // process last 3 blocks + ld1 {v4.4s,v5.4s,v6.4s},[x0],#48 + eor v4.16b, v4.16b, v16.16b + eor v5.16b, v5.16b, v17.16b + eor v6.16b, v6.16b, v18.16b +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif +#ifndef __AARCH64EB__ + rev32 v5.16b,v5.16b +#endif +#ifndef __AARCH64EB__ + rev32 v6.16b,v6.16b +#endif + zip1 v0.4s,v4.4s,v5.4s + zip2 v1.4s,v4.4s,v5.4s + zip1 v2.4s,v6.4s,v7.4s + zip2 v3.4s,v6.4s,v7.4s + zip1 v4.2d,v0.2d,v2.2d + zip2 v5.2d,v0.2d,v2.2d + zip1 v6.2d,v1.2d,v3.2d + zip2 v7.2d,v1.2d,v3.2d + bl _vpsm4_ex_enc_4blks + zip1 v4.4s,v0.4s,v1.4s + zip2 v5.4s,v0.4s,v1.4s + zip1 v6.4s,v2.4s,v3.4s + zip2 v7.4s,v2.4s,v3.4s + zip1 v0.2d,v4.2d,v6.2d + zip2 v1.2d,v4.2d,v6.2d + zip1 v2.2d,v5.2d,v7.2d + zip2 v3.2d,v5.2d,v7.2d + eor v0.16b, v0.16b, v16.16b + eor v1.16b, v1.16b, v17.16b + eor v2.16b, v2.16b, v18.16b + st1 {v0.4s,v1.4s,v2.4s},[x1],#48 + // save the last tweak + mov v25.16b,v18.16b +100: + cmp x29,0 + b.eq .return + +// This branch calculates the last two tweaks, +// while the encryption/decryption length is larger than 32 +.last_2blks_tweak: +#ifdef __AARCH64EB__ + rev32 v25.16b,v25.16b +#endif + mov v2.16b,v25.16b + adrp x9, .Lxts_magic + ldr q0, [x9, #:lo12:.Lxts_magic] + shl v17.16b, v2.16b, #1 + ext v1.16b, v2.16b, v2.16b,#15 + ushr v1.16b, v1.16b, #7 + mul v1.16b, v1.16b, v0.16b + eor v17.16b, v17.16b, v1.16b + mov v2.16b,v17.16b + adrp x9, .Lxts_magic + ldr q0, [x9, #:lo12:.Lxts_magic] + shl v18.16b, v2.16b, #1 + ext v1.16b, v2.16b, v2.16b,#15 + ushr v1.16b, v1.16b, #7 + mul v1.16b, v1.16b, v0.16b + eor v18.16b, v18.16b, v1.16b + b .check_dec + + +// This branch calculates the last two tweaks, +// while the encryption/decryption length is equal to 32, who only need two tweaks +.only_2blks_tweak: + mov v17.16b,v16.16b +#ifdef __AARCH64EB__ + rev32 v17.16b,v17.16b +#endif + mov v2.16b,v17.16b + adrp x9, .Lxts_magic + ldr q0, [x9, #:lo12:.Lxts_magic] + shl v18.16b, v2.16b, #1 + ext v1.16b, v2.16b, v2.16b,#15 + ushr v1.16b, v1.16b, #7 + mul v1.16b, v1.16b, v0.16b + eor v18.16b, v18.16b, v1.16b + b .check_dec + + +// Determine whether encryption or decryption is required. +// The last two tweaks need to be swapped for decryption. +.check_dec: + // encryption:1 decryption:0 + cmp w28,1 + b.eq .process_last_2blks + mov v0.16B,v17.16b + mov v17.16B,v18.16b + mov v18.16B,v0.16b + +.process_last_2blks: +#ifdef __AARCH64EB__ + rev32 v17.16b,v17.16b +#endif +#ifdef __AARCH64EB__ + rev32 v18.16b,v18.16b +#endif + ld1 {v4.4s},[x0],#16 + eor v4.16b, v4.16b, v17.16b +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif + mov x10,x3 + mov w11,#8 + mov w12,v4.s[0] + mov w13,v4.s[1] + mov w14,v4.s[2] + mov w15,v4.s[3] +10: + ldp w7,w8,[x10],8 + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + eor w6,w14,w15 + eor w9,w7,w13 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w12,w12,w6 + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + eor w6,w14,w15 + eor w9,w12,w8 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + ldp w7,w8,[x10],8 + eor w13,w13,w6 + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + eor w6,w12,w13 + eor w9,w7,w15 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w14,w14,w6 + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + eor w6,w12,w13 + eor w9,w14,w8 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w15,w15,w6 + subs w11,w11,#1 + b.ne 10b + mov v4.s[0],w15 + mov v4.s[1],w14 + mov v4.s[2],w13 + mov v4.s[3],w12 +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif + eor v4.16b, v4.16b, v17.16b + st1 {v4.4s},[x1],#16 + + sub x26,x1,16 +.loop: + subs x29,x29,1 + ldrb w7,[x26,x29] + ldrb w8,[x0,x29] + strb w8,[x26,x29] + strb w7,[x1,x29] + b.gt .loop + ld1 {v4.4s}, [x26] + eor v4.16b, v4.16b, v18.16b +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif + mov x10,x3 + mov w11,#8 + mov w12,v4.s[0] + mov w13,v4.s[1] + mov w14,v4.s[2] + mov w15,v4.s[3] +10: + ldp w7,w8,[x10],8 + // B0 ^= SBOX(B1 ^ B2 ^ B3 ^ RK0) + eor w6,w14,w15 + eor w9,w7,w13 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w12,w12,w6 + // B1 ^= SBOX(B0 ^ B2 ^ B3 ^ RK1) + eor w6,w14,w15 + eor w9,w12,w8 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + ldp w7,w8,[x10],8 + eor w13,w13,w6 + // B2 ^= SBOX(B0 ^ B1 ^ B3 ^ RK2) + eor w6,w12,w13 + eor w9,w7,w15 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w14,w14,w6 + // B3 ^= SBOX(B0 ^ B1 ^ B2 ^ RK3) + eor w6,w12,w13 + eor w9,w14,w8 + eor w6,w6,w9 + mov v3.s[0],w6 + // optimize sbox using AESE instruction + tbl v0.16b, {v3.16b}, v26.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v28.16b}, v0.16b + tbl v2.16b, {v27.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + eor v1.16b, v1.16b, v1.16b + aese v0.16b,v1.16b + ushr v2.16b, v0.16b, 4 + and v0.16b, v0.16b, v31.16b + tbl v0.16b, {v30.16b}, v0.16b + tbl v2.16b, {v29.16b}, v2.16b + eor v0.16b, v0.16b, v2.16b + + mov w7,v0.s[0] + eor w6,w7,w7,ror #32-2 + eor w6,w6,w7,ror #32-10 + eor w6,w6,w7,ror #32-18 + eor w6,w6,w7,ror #32-24 + eor w15,w15,w6 + subs w11,w11,#1 + b.ne 10b + mov v4.s[0],w15 + mov v4.s[1],w14 + mov v4.s[2],w13 + mov v4.s[3],w12 +#ifndef __AARCH64EB__ + rev32 v4.16b,v4.16b +#endif + eor v4.16b, v4.16b, v18.16b + st1 {v4.4s}, [x26] +.return: + ldp d14, d15, [sp], #0x10 + ldp d12, d13, [sp], #0x10 + ldp d10, d11, [sp], #0x10 + ldp d8, d9, [sp], #0x10 + ldp x29, x30, [sp], #0x10 + ldp x27, x28, [sp], #0x10 + ldp x25, x26, [sp], #0x10 + ldp x23, x24, [sp], #0x10 + ldp x21, x22, [sp], #0x10 + ldp x19, x20, [sp], #0x10 + ldp x17, x18, [sp], #0x10 + ldp x15, x16, [sp], #0x10 + AARCH64_VALIDATE_LINK_REGISTER + ret +.size vpsm4_ex_xts_encrypt,.-vpsm4_ex_xts_encrypt diff --git a/deps/openssl/config/archs/linux-aarch64/asm_avx2/include/internal/param_names.h b/deps/openssl/config/archs/linux-aarch64/asm_avx2/include/internal/param_names.h new file mode 100644 index 00000000000000..0a0404a57e82b9 --- /dev/null +++ b/deps/openssl/config/archs/linux-aarch64/asm_avx2/include/internal/param_names.h @@ -0,0 +1,469 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from include/internal/param_names.h.in + * + * Copyright 2023 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + +int ossl_param_find_pidx(const char *s); + +/* Parameter name definitions - generated by util/perl/OpenSSL/paramnames.pm */ +#define NUM_PIDX 346 + +#define PIDX_ALG_PARAM_ALGORITHM_ID 0 +#define PIDX_ALG_PARAM_ALGORITHM_ID_PARAMS 1 +#define PIDX_ALG_PARAM_CIPHER 2 +#define PIDX_ALG_PARAM_DIGEST 3 +#define PIDX_ALG_PARAM_ENGINE 4 +#define PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR 5 +#define PIDX_ALG_PARAM_MAC 6 +#define PIDX_ALG_PARAM_PROPERTIES 7 +#define PIDX_ASYM_CIPHER_PARAM_DIGEST PIDX_PKEY_PARAM_DIGEST +#define PIDX_ASYM_CIPHER_PARAM_ENGINE PIDX_PKEY_PARAM_ENGINE +#define PIDX_ASYM_CIPHER_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_ASYM_CIPHER_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_ASYM_CIPHER_PARAM_FIPS_RSA_PKCS15_PAD_DISABLED PIDX_PROV_PARAM_RSA_PKCS15_PAD_DISABLED +#define PIDX_ASYM_CIPHER_PARAM_IMPLICIT_REJECTION 8 +#define PIDX_ASYM_CIPHER_PARAM_MGF1_DIGEST PIDX_PKEY_PARAM_MGF1_DIGEST +#define PIDX_ASYM_CIPHER_PARAM_MGF1_DIGEST_PROPS PIDX_PKEY_PARAM_MGF1_PROPERTIES +#define PIDX_ASYM_CIPHER_PARAM_OAEP_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_ASYM_CIPHER_PARAM_OAEP_DIGEST_PROPS 9 +#define PIDX_ASYM_CIPHER_PARAM_OAEP_LABEL 10 +#define PIDX_ASYM_CIPHER_PARAM_PAD_MODE PIDX_PKEY_PARAM_PAD_MODE +#define PIDX_ASYM_CIPHER_PARAM_PROPERTIES PIDX_PKEY_PARAM_PROPERTIES +#define PIDX_ASYM_CIPHER_PARAM_TLS_CLIENT_VERSION 11 +#define PIDX_ASYM_CIPHER_PARAM_TLS_NEGOTIATED_VERSION 12 +#define PIDX_CAPABILITY_TLS_GROUP_ALG 13 +#define PIDX_CAPABILITY_TLS_GROUP_ID 14 +#define PIDX_CAPABILITY_TLS_GROUP_IS_KEM 15 +#define PIDX_CAPABILITY_TLS_GROUP_MAX_DTLS 16 +#define PIDX_CAPABILITY_TLS_GROUP_MAX_TLS 17 +#define PIDX_CAPABILITY_TLS_GROUP_MIN_DTLS 18 +#define PIDX_CAPABILITY_TLS_GROUP_MIN_TLS 19 +#define PIDX_CAPABILITY_TLS_GROUP_NAME 20 +#define PIDX_CAPABILITY_TLS_GROUP_NAME_INTERNAL 21 +#define PIDX_CAPABILITY_TLS_GROUP_SECURITY_BITS 22 +#define PIDX_CAPABILITY_TLS_SIGALG_CODE_POINT 23 +#define PIDX_CAPABILITY_TLS_SIGALG_HASH_NAME 24 +#define PIDX_CAPABILITY_TLS_SIGALG_HASH_OID 25 +#define PIDX_CAPABILITY_TLS_SIGALG_IANA_NAME 26 +#define PIDX_CAPABILITY_TLS_SIGALG_KEYTYPE 27 +#define PIDX_CAPABILITY_TLS_SIGALG_KEYTYPE_OID 28 +#define PIDX_CAPABILITY_TLS_SIGALG_MAX_DTLS 16 +#define PIDX_CAPABILITY_TLS_SIGALG_MAX_TLS 17 +#define PIDX_CAPABILITY_TLS_SIGALG_MIN_DTLS 18 +#define PIDX_CAPABILITY_TLS_SIGALG_MIN_TLS 19 +#define PIDX_CAPABILITY_TLS_SIGALG_NAME 29 +#define PIDX_CAPABILITY_TLS_SIGALG_OID 30 +#define PIDX_CAPABILITY_TLS_SIGALG_SECURITY_BITS 31 +#define PIDX_CAPABILITY_TLS_SIGALG_SIG_NAME 32 +#define PIDX_CAPABILITY_TLS_SIGALG_SIG_OID 33 +#define PIDX_CIPHER_PARAM_AEAD 34 +#define PIDX_CIPHER_PARAM_AEAD_IVLEN PIDX_CIPHER_PARAM_IVLEN +#define PIDX_CIPHER_PARAM_AEAD_IV_GENERATED 35 +#define PIDX_CIPHER_PARAM_AEAD_MAC_KEY 36 +#define PIDX_CIPHER_PARAM_AEAD_TAG 37 +#define PIDX_CIPHER_PARAM_AEAD_TAGLEN 38 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_AAD 39 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_AAD_PAD 40 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_GET_IV_GEN 41 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_IV_FIXED 42 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_SET_IV_INV 43 +#define PIDX_CIPHER_PARAM_ALGORITHM_ID PIDX_ALG_PARAM_ALGORITHM_ID +#define PIDX_CIPHER_PARAM_ALGORITHM_ID_PARAMS PIDX_ALG_PARAM_ALGORITHM_ID_PARAMS +#define PIDX_CIPHER_PARAM_ALGORITHM_ID_PARAMS_OLD 44 +#define PIDX_CIPHER_PARAM_BLOCK_SIZE 45 +#define PIDX_CIPHER_PARAM_CTS 46 +#define PIDX_CIPHER_PARAM_CTS_MODE 47 +#define PIDX_CIPHER_PARAM_CUSTOM_IV 48 +#define PIDX_CIPHER_PARAM_DECRYPT_ONLY 49 +#define PIDX_CIPHER_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_CIPHER_PARAM_FIPS_ENCRYPT_CHECK 50 +#define PIDX_CIPHER_PARAM_HAS_RAND_KEY 51 +#define PIDX_CIPHER_PARAM_IV 52 +#define PIDX_CIPHER_PARAM_IVLEN 53 +#define PIDX_CIPHER_PARAM_KEYLEN 54 +#define PIDX_CIPHER_PARAM_MODE 55 +#define PIDX_CIPHER_PARAM_NUM 56 +#define PIDX_CIPHER_PARAM_PADDING 57 +#define PIDX_CIPHER_PARAM_PIPELINE_AEAD_TAG 58 +#define PIDX_CIPHER_PARAM_RANDOM_KEY 59 +#define PIDX_CIPHER_PARAM_RC2_KEYBITS 60 +#define PIDX_CIPHER_PARAM_ROUNDS 61 +#define PIDX_CIPHER_PARAM_SPEED 62 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK 63 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD 64 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD_PACKLEN 65 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC 66 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_IN 67 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_LEN 68 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_INTERLEAVE 69 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_BUFSIZE 70 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_SEND_FRAGMENT 71 +#define PIDX_CIPHER_PARAM_TLS_MAC 72 +#define PIDX_CIPHER_PARAM_TLS_MAC_SIZE 73 +#define PIDX_CIPHER_PARAM_TLS_VERSION 74 +#define PIDX_CIPHER_PARAM_UPDATED_IV 75 +#define PIDX_CIPHER_PARAM_USE_BITS 76 +#define PIDX_CIPHER_PARAM_XTS_STANDARD 77 +#define PIDX_DECODER_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_DIGEST_PARAM_ALGID_ABSENT 78 +#define PIDX_DIGEST_PARAM_BLOCK_SIZE 45 +#define PIDX_DIGEST_PARAM_MICALG 79 +#define PIDX_DIGEST_PARAM_PAD_TYPE 80 +#define PIDX_DIGEST_PARAM_SIZE 81 +#define PIDX_DIGEST_PARAM_SSL3_MS 82 +#define PIDX_DIGEST_PARAM_XOF 83 +#define PIDX_DIGEST_PARAM_XOFLEN 84 +#define PIDX_DRBG_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_DRBG_PARAM_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_DRBG_PARAM_ENTROPY_REQUIRED 85 +#define PIDX_DRBG_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_DRBG_PARAM_FIPS_DIGEST_CHECK PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK +#define PIDX_DRBG_PARAM_MAC PIDX_ALG_PARAM_MAC +#define PIDX_DRBG_PARAM_MAX_ADINLEN 86 +#define PIDX_DRBG_PARAM_MAX_ENTROPYLEN 87 +#define PIDX_DRBG_PARAM_MAX_LENGTH 88 +#define PIDX_DRBG_PARAM_MAX_NONCELEN 89 +#define PIDX_DRBG_PARAM_MAX_PERSLEN 90 +#define PIDX_DRBG_PARAM_MIN_ENTROPYLEN 91 +#define PIDX_DRBG_PARAM_MIN_LENGTH 92 +#define PIDX_DRBG_PARAM_MIN_NONCELEN 93 +#define PIDX_DRBG_PARAM_PREDICTION_RESISTANCE 94 +#define PIDX_DRBG_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_DRBG_PARAM_RANDOM_DATA 95 +#define PIDX_DRBG_PARAM_RESEED_COUNTER 96 +#define PIDX_DRBG_PARAM_RESEED_REQUESTS 97 +#define PIDX_DRBG_PARAM_RESEED_TIME 98 +#define PIDX_DRBG_PARAM_RESEED_TIME_INTERVAL 99 +#define PIDX_DRBG_PARAM_SIZE 81 +#define PIDX_DRBG_PARAM_USE_DF 100 +#define PIDX_ENCODER_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_ENCODER_PARAM_ENCRYPT_LEVEL 101 +#define PIDX_ENCODER_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_ENCODER_PARAM_SAVE_PARAMETERS 102 +#define PIDX_EXCHANGE_PARAM_EC_ECDH_COFACTOR_MODE 103 +#define PIDX_EXCHANGE_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_EXCHANGE_PARAM_FIPS_DIGEST_CHECK PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK +#define PIDX_EXCHANGE_PARAM_FIPS_ECDH_COFACTOR_CHECK PIDX_PROV_PARAM_ECDH_COFACTOR_CHECK +#define PIDX_EXCHANGE_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_EXCHANGE_PARAM_KDF_DIGEST 104 +#define PIDX_EXCHANGE_PARAM_KDF_DIGEST_PROPS 105 +#define PIDX_EXCHANGE_PARAM_KDF_OUTLEN 106 +#define PIDX_EXCHANGE_PARAM_KDF_TYPE 107 +#define PIDX_EXCHANGE_PARAM_KDF_UKM 108 +#define PIDX_EXCHANGE_PARAM_PAD 109 +#define PIDX_GEN_PARAM_ITERATION 110 +#define PIDX_GEN_PARAM_POTENTIAL 111 +#define PIDX_KDF_PARAM_ARGON2_AD 112 +#define PIDX_KDF_PARAM_ARGON2_LANES 113 +#define PIDX_KDF_PARAM_ARGON2_MEMCOST 114 +#define PIDX_KDF_PARAM_ARGON2_VERSION 115 +#define PIDX_KDF_PARAM_CEK_ALG 116 +#define PIDX_KDF_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_KDF_PARAM_CONSTANT 117 +#define PIDX_KDF_PARAM_DATA 118 +#define PIDX_KDF_PARAM_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_KDF_PARAM_EARLY_CLEAN 119 +#define PIDX_KDF_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_KDF_PARAM_FIPS_DIGEST_CHECK PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK +#define PIDX_KDF_PARAM_FIPS_EMS_CHECK 120 +#define PIDX_KDF_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_KDF_PARAM_HMACDRBG_ENTROPY 121 +#define PIDX_KDF_PARAM_HMACDRBG_NONCE 122 +#define PIDX_KDF_PARAM_INFO 123 +#define PIDX_KDF_PARAM_ITER 124 +#define PIDX_KDF_PARAM_KBKDF_R 125 +#define PIDX_KDF_PARAM_KBKDF_USE_L 126 +#define PIDX_KDF_PARAM_KBKDF_USE_SEPARATOR 127 +#define PIDX_KDF_PARAM_KEY 128 +#define PIDX_KDF_PARAM_LABEL 129 +#define PIDX_KDF_PARAM_MAC PIDX_ALG_PARAM_MAC +#define PIDX_KDF_PARAM_MAC_SIZE 130 +#define PIDX_KDF_PARAM_MODE 55 +#define PIDX_KDF_PARAM_PASSWORD 131 +#define PIDX_KDF_PARAM_PKCS12_ID 132 +#define PIDX_KDF_PARAM_PKCS5 133 +#define PIDX_KDF_PARAM_PREFIX 134 +#define PIDX_KDF_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_KDF_PARAM_SALT 135 +#define PIDX_KDF_PARAM_SCRYPT_MAXMEM 136 +#define PIDX_KDF_PARAM_SCRYPT_N 137 +#define PIDX_KDF_PARAM_SCRYPT_P 138 +#define PIDX_KDF_PARAM_SCRYPT_R 125 +#define PIDX_KDF_PARAM_SECRET 139 +#define PIDX_KDF_PARAM_SEED 140 +#define PIDX_KDF_PARAM_SIZE 81 +#define PIDX_KDF_PARAM_SSHKDF_SESSION_ID 141 +#define PIDX_KDF_PARAM_SSHKDF_TYPE 142 +#define PIDX_KDF_PARAM_SSHKDF_XCGHASH 143 +#define PIDX_KDF_PARAM_THREADS 144 +#define PIDX_KDF_PARAM_UKM 145 +#define PIDX_KDF_PARAM_X942_ACVPINFO 146 +#define PIDX_KDF_PARAM_X942_PARTYUINFO 147 +#define PIDX_KDF_PARAM_X942_PARTYVINFO 148 +#define PIDX_KDF_PARAM_X942_SUPP_PRIVINFO 149 +#define PIDX_KDF_PARAM_X942_SUPP_PUBINFO 150 +#define PIDX_KDF_PARAM_X942_USE_KEYBITS 151 +#define PIDX_KEM_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_KEM_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_KEM_PARAM_IKME 152 +#define PIDX_KEM_PARAM_OPERATION 153 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_BLOCK_PADDING 154 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_HS_PADDING 155 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_MAX_EARLY_DATA 156 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_MAX_FRAG_LEN 157 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_MODE 55 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_OPTIONS 158 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_READ_AHEAD 159 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_STREAM_MAC 160 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_TLSTREE 161 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_USE_ETM 162 +#define PIDX_LIBSSL_RECORD_LAYER_READ_BUFFER_LEN 163 +#define PIDX_MAC_PARAM_BLOCK_SIZE 164 +#define PIDX_MAC_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_MAC_PARAM_CUSTOM 165 +#define PIDX_MAC_PARAM_C_ROUNDS 166 +#define PIDX_MAC_PARAM_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_MAC_PARAM_DIGEST_NOINIT 167 +#define PIDX_MAC_PARAM_DIGEST_ONESHOT 168 +#define PIDX_MAC_PARAM_D_ROUNDS 169 +#define PIDX_MAC_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_MAC_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_MAC_PARAM_FIPS_NO_SHORT_MAC PIDX_PROV_PARAM_NO_SHORT_MAC +#define PIDX_MAC_PARAM_IV 52 +#define PIDX_MAC_PARAM_KEY 128 +#define PIDX_MAC_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_MAC_PARAM_SALT 135 +#define PIDX_MAC_PARAM_SIZE 81 +#define PIDX_MAC_PARAM_TLS_DATA_SIZE 170 +#define PIDX_MAC_PARAM_XOF 83 +#define PIDX_OBJECT_PARAM_DATA 118 +#define PIDX_OBJECT_PARAM_DATA_STRUCTURE 171 +#define PIDX_OBJECT_PARAM_DATA_TYPE 172 +#define PIDX_OBJECT_PARAM_DESC 173 +#define PIDX_OBJECT_PARAM_INPUT_TYPE 174 +#define PIDX_OBJECT_PARAM_REFERENCE 175 +#define PIDX_OBJECT_PARAM_TYPE 142 +#define PIDX_PASSPHRASE_PARAM_INFO 123 +#define PIDX_PKEY_PARAM_ALGORITHM_ID PIDX_ALG_PARAM_ALGORITHM_ID +#define PIDX_PKEY_PARAM_ALGORITHM_ID_PARAMS PIDX_ALG_PARAM_ALGORITHM_ID_PARAMS +#define PIDX_PKEY_PARAM_BITS 176 +#define PIDX_PKEY_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_PKEY_PARAM_DEFAULT_DIGEST 177 +#define PIDX_PKEY_PARAM_DHKEM_IKM 178 +#define PIDX_PKEY_PARAM_DH_GENERATOR 179 +#define PIDX_PKEY_PARAM_DH_PRIV_LEN 180 +#define PIDX_PKEY_PARAM_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_PKEY_PARAM_DIGEST_SIZE 181 +#define PIDX_PKEY_PARAM_DIST_ID 182 +#define PIDX_PKEY_PARAM_EC_A 183 +#define PIDX_PKEY_PARAM_EC_B 184 +#define PIDX_PKEY_PARAM_EC_CHAR2_M 185 +#define PIDX_PKEY_PARAM_EC_CHAR2_PP_K1 186 +#define PIDX_PKEY_PARAM_EC_CHAR2_PP_K2 187 +#define PIDX_PKEY_PARAM_EC_CHAR2_PP_K3 188 +#define PIDX_PKEY_PARAM_EC_CHAR2_TP_BASIS 189 +#define PIDX_PKEY_PARAM_EC_CHAR2_TYPE 190 +#define PIDX_PKEY_PARAM_EC_COFACTOR 191 +#define PIDX_PKEY_PARAM_EC_DECODED_FROM_EXPLICIT_PARAMS 192 +#define PIDX_PKEY_PARAM_EC_ENCODING 193 +#define PIDX_PKEY_PARAM_EC_FIELD_TYPE 194 +#define PIDX_PKEY_PARAM_EC_GENERATOR 195 +#define PIDX_PKEY_PARAM_EC_GROUP_CHECK_TYPE 196 +#define PIDX_PKEY_PARAM_EC_INCLUDE_PUBLIC 197 +#define PIDX_PKEY_PARAM_EC_ORDER 198 +#define PIDX_PKEY_PARAM_EC_P 138 +#define PIDX_PKEY_PARAM_EC_POINT_CONVERSION_FORMAT 199 +#define PIDX_PKEY_PARAM_EC_PUB_X 200 +#define PIDX_PKEY_PARAM_EC_PUB_Y 201 +#define PIDX_PKEY_PARAM_EC_SEED 140 +#define PIDX_PKEY_PARAM_ENCODED_PUBLIC_KEY 202 +#define PIDX_PKEY_PARAM_ENGINE PIDX_ALG_PARAM_ENGINE +#define PIDX_PKEY_PARAM_FFC_COFACTOR 203 +#define PIDX_PKEY_PARAM_FFC_DIGEST PIDX_PKEY_PARAM_DIGEST +#define PIDX_PKEY_PARAM_FFC_DIGEST_PROPS PIDX_PKEY_PARAM_PROPERTIES +#define PIDX_PKEY_PARAM_FFC_G 204 +#define PIDX_PKEY_PARAM_FFC_GINDEX 205 +#define PIDX_PKEY_PARAM_FFC_H 206 +#define PIDX_PKEY_PARAM_FFC_P 138 +#define PIDX_PKEY_PARAM_FFC_PBITS 207 +#define PIDX_PKEY_PARAM_FFC_PCOUNTER 208 +#define PIDX_PKEY_PARAM_FFC_Q 209 +#define PIDX_PKEY_PARAM_FFC_QBITS 210 +#define PIDX_PKEY_PARAM_FFC_SEED 140 +#define PIDX_PKEY_PARAM_FFC_TYPE 142 +#define PIDX_PKEY_PARAM_FFC_VALIDATE_G 211 +#define PIDX_PKEY_PARAM_FFC_VALIDATE_LEGACY 212 +#define PIDX_PKEY_PARAM_FFC_VALIDATE_PQ 213 +#define PIDX_PKEY_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK 214 +#define PIDX_PKEY_PARAM_FIPS_KEY_CHECK 215 +#define PIDX_PKEY_PARAM_FIPS_SIGN_CHECK 216 +#define PIDX_PKEY_PARAM_GROUP_NAME 217 +#define PIDX_PKEY_PARAM_IMPLICIT_REJECTION 8 +#define PIDX_PKEY_PARAM_MANDATORY_DIGEST 218 +#define PIDX_PKEY_PARAM_MASKGENFUNC 219 +#define PIDX_PKEY_PARAM_MAX_SIZE 220 +#define PIDX_PKEY_PARAM_MGF1_DIGEST 221 +#define PIDX_PKEY_PARAM_MGF1_PROPERTIES 222 +#define PIDX_PKEY_PARAM_ML_DSA_INPUT_FORMATS 223 +#define PIDX_PKEY_PARAM_ML_DSA_OUTPUT_FORMATS 224 +#define PIDX_PKEY_PARAM_ML_DSA_PREFER_SEED 225 +#define PIDX_PKEY_PARAM_ML_DSA_RETAIN_SEED 226 +#define PIDX_PKEY_PARAM_ML_DSA_SEED 140 +#define PIDX_PKEY_PARAM_ML_KEM_IMPORT_PCT_TYPE 227 +#define PIDX_PKEY_PARAM_ML_KEM_INPUT_FORMATS 228 +#define PIDX_PKEY_PARAM_ML_KEM_OUTPUT_FORMATS 229 +#define PIDX_PKEY_PARAM_ML_KEM_PREFER_SEED 230 +#define PIDX_PKEY_PARAM_ML_KEM_RETAIN_SEED 231 +#define PIDX_PKEY_PARAM_ML_KEM_SEED 140 +#define PIDX_PKEY_PARAM_PAD_MODE 232 +#define PIDX_PKEY_PARAM_PRIV_KEY 233 +#define PIDX_PKEY_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_PKEY_PARAM_PUB_KEY 234 +#define PIDX_PKEY_PARAM_RSA_BITS PIDX_PKEY_PARAM_BITS +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT 235 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT1 236 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT2 237 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT3 238 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT4 239 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT5 240 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT6 241 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT7 242 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT8 243 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT9 244 +#define PIDX_PKEY_PARAM_RSA_D 245 +#define PIDX_PKEY_PARAM_RSA_DERIVE_FROM_PQ 246 +#define PIDX_PKEY_PARAM_RSA_DIGEST PIDX_PKEY_PARAM_DIGEST +#define PIDX_PKEY_PARAM_RSA_DIGEST_PROPS PIDX_PKEY_PARAM_PROPERTIES +#define PIDX_PKEY_PARAM_RSA_E 247 +#define PIDX_PKEY_PARAM_RSA_EXPONENT 248 +#define PIDX_PKEY_PARAM_RSA_EXPONENT1 249 +#define PIDX_PKEY_PARAM_RSA_EXPONENT10 250 +#define PIDX_PKEY_PARAM_RSA_EXPONENT2 251 +#define PIDX_PKEY_PARAM_RSA_EXPONENT3 252 +#define PIDX_PKEY_PARAM_RSA_EXPONENT4 253 +#define PIDX_PKEY_PARAM_RSA_EXPONENT5 254 +#define PIDX_PKEY_PARAM_RSA_EXPONENT6 255 +#define PIDX_PKEY_PARAM_RSA_EXPONENT7 256 +#define PIDX_PKEY_PARAM_RSA_EXPONENT8 257 +#define PIDX_PKEY_PARAM_RSA_EXPONENT9 258 +#define PIDX_PKEY_PARAM_RSA_FACTOR 259 +#define PIDX_PKEY_PARAM_RSA_FACTOR1 260 +#define PIDX_PKEY_PARAM_RSA_FACTOR10 261 +#define PIDX_PKEY_PARAM_RSA_FACTOR2 262 +#define PIDX_PKEY_PARAM_RSA_FACTOR3 263 +#define PIDX_PKEY_PARAM_RSA_FACTOR4 264 +#define PIDX_PKEY_PARAM_RSA_FACTOR5 265 +#define PIDX_PKEY_PARAM_RSA_FACTOR6 266 +#define PIDX_PKEY_PARAM_RSA_FACTOR7 267 +#define PIDX_PKEY_PARAM_RSA_FACTOR8 268 +#define PIDX_PKEY_PARAM_RSA_FACTOR9 269 +#define PIDX_PKEY_PARAM_RSA_MASKGENFUNC PIDX_PKEY_PARAM_MASKGENFUNC +#define PIDX_PKEY_PARAM_RSA_MGF1_DIGEST PIDX_PKEY_PARAM_MGF1_DIGEST +#define PIDX_PKEY_PARAM_RSA_N 137 +#define PIDX_PKEY_PARAM_RSA_PRIMES 270 +#define PIDX_PKEY_PARAM_RSA_PSS_SALTLEN 271 +#define PIDX_PKEY_PARAM_RSA_TEST_P1 272 +#define PIDX_PKEY_PARAM_RSA_TEST_P2 273 +#define PIDX_PKEY_PARAM_RSA_TEST_Q1 274 +#define PIDX_PKEY_PARAM_RSA_TEST_Q2 275 +#define PIDX_PKEY_PARAM_RSA_TEST_XP 276 +#define PIDX_PKEY_PARAM_RSA_TEST_XP1 277 +#define PIDX_PKEY_PARAM_RSA_TEST_XP2 278 +#define PIDX_PKEY_PARAM_RSA_TEST_XQ 279 +#define PIDX_PKEY_PARAM_RSA_TEST_XQ1 280 +#define PIDX_PKEY_PARAM_RSA_TEST_XQ2 281 +#define PIDX_PKEY_PARAM_SECURITY_BITS 282 +#define PIDX_PKEY_PARAM_SLH_DSA_SEED 140 +#define PIDX_PKEY_PARAM_USE_COFACTOR_ECDH PIDX_PKEY_PARAM_USE_COFACTOR_FLAG +#define PIDX_PKEY_PARAM_USE_COFACTOR_FLAG 283 +#define PIDX_PROV_PARAM_BUILDINFO 284 +#define PIDX_PROV_PARAM_CORE_MODULE_FILENAME 285 +#define PIDX_PROV_PARAM_CORE_PROV_NAME 286 +#define PIDX_PROV_PARAM_CORE_VERSION 287 +#define PIDX_PROV_PARAM_DRBG_TRUNC_DIGEST 288 +#define PIDX_PROV_PARAM_DSA_SIGN_DISABLED 289 +#define PIDX_PROV_PARAM_ECDH_COFACTOR_CHECK 290 +#define PIDX_PROV_PARAM_HKDF_DIGEST_CHECK 291 +#define PIDX_PROV_PARAM_HKDF_KEY_CHECK 292 +#define PIDX_PROV_PARAM_HMAC_KEY_CHECK 293 +#define PIDX_PROV_PARAM_KBKDF_KEY_CHECK 294 +#define PIDX_PROV_PARAM_KMAC_KEY_CHECK 295 +#define PIDX_PROV_PARAM_NAME 296 +#define PIDX_PROV_PARAM_NO_SHORT_MAC 297 +#define PIDX_PROV_PARAM_PBKDF2_LOWER_BOUND_CHECK 298 +#define PIDX_PROV_PARAM_RSA_PKCS15_PAD_DISABLED 299 +#define PIDX_PROV_PARAM_RSA_PSS_SALTLEN_CHECK 300 +#define PIDX_PROV_PARAM_RSA_SIGN_X931_PAD_DISABLED 301 +#define PIDX_PROV_PARAM_SECURITY_CHECKS 302 +#define PIDX_PROV_PARAM_SELF_TEST_DESC 303 +#define PIDX_PROV_PARAM_SELF_TEST_PHASE 304 +#define PIDX_PROV_PARAM_SELF_TEST_TYPE 305 +#define PIDX_PROV_PARAM_SIGNATURE_DIGEST_CHECK 306 +#define PIDX_PROV_PARAM_SSHKDF_DIGEST_CHECK 307 +#define PIDX_PROV_PARAM_SSHKDF_KEY_CHECK 308 +#define PIDX_PROV_PARAM_SSKDF_DIGEST_CHECK 309 +#define PIDX_PROV_PARAM_SSKDF_KEY_CHECK 310 +#define PIDX_PROV_PARAM_STATUS 311 +#define PIDX_PROV_PARAM_TDES_ENCRYPT_DISABLED 312 +#define PIDX_PROV_PARAM_TLS13_KDF_DIGEST_CHECK 313 +#define PIDX_PROV_PARAM_TLS13_KDF_KEY_CHECK 314 +#define PIDX_PROV_PARAM_TLS1_PRF_DIGEST_CHECK 315 +#define PIDX_PROV_PARAM_TLS1_PRF_EMS_CHECK 316 +#define PIDX_PROV_PARAM_TLS1_PRF_KEY_CHECK 317 +#define PIDX_PROV_PARAM_VERSION 115 +#define PIDX_PROV_PARAM_X942KDF_KEY_CHECK 318 +#define PIDX_PROV_PARAM_X963KDF_DIGEST_CHECK 319 +#define PIDX_PROV_PARAM_X963KDF_KEY_CHECK 320 +#define PIDX_RAND_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_RAND_PARAM_GENERATE 321 +#define PIDX_RAND_PARAM_MAX_REQUEST 322 +#define PIDX_RAND_PARAM_STATE 323 +#define PIDX_RAND_PARAM_STRENGTH 324 +#define PIDX_RAND_PARAM_TEST_ENTROPY 325 +#define PIDX_RAND_PARAM_TEST_NONCE 326 +#define PIDX_SIGNATURE_PARAM_ADD_RANDOM 327 +#define PIDX_SIGNATURE_PARAM_ALGORITHM_ID PIDX_PKEY_PARAM_ALGORITHM_ID +#define PIDX_SIGNATURE_PARAM_ALGORITHM_ID_PARAMS PIDX_PKEY_PARAM_ALGORITHM_ID_PARAMS +#define PIDX_SIGNATURE_PARAM_CONTEXT_STRING 328 +#define PIDX_SIGNATURE_PARAM_DETERMINISTIC 329 +#define PIDX_SIGNATURE_PARAM_DIGEST PIDX_PKEY_PARAM_DIGEST +#define PIDX_SIGNATURE_PARAM_DIGEST_SIZE PIDX_PKEY_PARAM_DIGEST_SIZE +#define PIDX_SIGNATURE_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_SIGNATURE_PARAM_FIPS_DIGEST_CHECK PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK +#define PIDX_SIGNATURE_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_SIGNATURE_PARAM_FIPS_RSA_PSS_SALTLEN_CHECK 300 +#define PIDX_SIGNATURE_PARAM_FIPS_SIGN_CHECK PIDX_PKEY_PARAM_FIPS_SIGN_CHECK +#define PIDX_SIGNATURE_PARAM_FIPS_SIGN_X931_PAD_CHECK 330 +#define PIDX_SIGNATURE_PARAM_FIPS_VERIFY_MESSAGE 331 +#define PIDX_SIGNATURE_PARAM_INSTANCE 332 +#define PIDX_SIGNATURE_PARAM_KAT 333 +#define PIDX_SIGNATURE_PARAM_MESSAGE_ENCODING 334 +#define PIDX_SIGNATURE_PARAM_MGF1_DIGEST PIDX_PKEY_PARAM_MGF1_DIGEST +#define PIDX_SIGNATURE_PARAM_MGF1_PROPERTIES PIDX_PKEY_PARAM_MGF1_PROPERTIES +#define PIDX_SIGNATURE_PARAM_MU 335 +#define PIDX_SIGNATURE_PARAM_NONCE_TYPE 336 +#define PIDX_SIGNATURE_PARAM_PAD_MODE PIDX_PKEY_PARAM_PAD_MODE +#define PIDX_SIGNATURE_PARAM_PROPERTIES PIDX_PKEY_PARAM_PROPERTIES +#define PIDX_SIGNATURE_PARAM_PSS_SALTLEN 271 +#define PIDX_SIGNATURE_PARAM_SIGNATURE 337 +#define PIDX_SIGNATURE_PARAM_TEST_ENTROPY 338 +#define PIDX_SKEY_PARAM_KEY_LENGTH 339 +#define PIDX_SKEY_PARAM_RAW_BYTES 340 +#define PIDX_STORE_PARAM_ALIAS 341 +#define PIDX_STORE_PARAM_DIGEST 3 +#define PIDX_STORE_PARAM_EXPECT 342 +#define PIDX_STORE_PARAM_FINGERPRINT 343 +#define PIDX_STORE_PARAM_INPUT_TYPE 174 +#define PIDX_STORE_PARAM_ISSUER 296 +#define PIDX_STORE_PARAM_PROPERTIES 7 +#define PIDX_STORE_PARAM_SERIAL 344 +#define PIDX_STORE_PARAM_SUBJECT 345 diff --git a/deps/openssl/config/archs/linux-aarch64/asm_avx2/include/openssl/asn1.h b/deps/openssl/config/archs/linux-aarch64/asm_avx2/include/openssl/asn1.h index 21ff58e3d803d4..15e9e44674b0f3 100644 --- a/deps/openssl/config/archs/linux-aarch64/asm_avx2/include/openssl/asn1.h +++ b/deps/openssl/config/archs/linux-aarch64/asm_avx2/include/openssl/asn1.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/asn1.h.in * - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -21,6 +21,9 @@ # define HEADER_ASN1_H # endif +# ifndef OPENSSL_NO_STDIO +# include +# endif # include # include # include @@ -50,14 +53,14 @@ extern "C" { # define V_ASN1_PRIMITIVE_TAG 0x1f # define V_ASN1_PRIMATIVE_TAG /*compat*/ V_ASN1_PRIMITIVE_TAG -# define V_ASN1_APP_CHOOSE -2/* let the recipient choose */ -# define V_ASN1_OTHER -3/* used in ASN1_TYPE */ -# define V_ASN1_ANY -4/* used in ASN1 template code */ +# define V_ASN1_APP_CHOOSE -2 /* let the recipient choose */ +# define V_ASN1_OTHER -3 /* used in ASN1_TYPE */ +# define V_ASN1_ANY -4 /* used in ASN1 template code */ # define V_ASN1_UNDEF -1 /* ASN.1 tag values */ # define V_ASN1_EOC 0 -# define V_ASN1_BOOLEAN 1 /**/ +# define V_ASN1_BOOLEAN 1 # define V_ASN1_INTEGER 2 # define V_ASN1_BIT_STRING 3 # define V_ASN1_OCTET_STRING 4 @@ -70,19 +73,19 @@ extern "C" { # define V_ASN1_UTF8STRING 12 # define V_ASN1_SEQUENCE 16 # define V_ASN1_SET 17 -# define V_ASN1_NUMERICSTRING 18 /**/ +# define V_ASN1_NUMERICSTRING 18 # define V_ASN1_PRINTABLESTRING 19 # define V_ASN1_T61STRING 20 -# define V_ASN1_TELETEXSTRING 20/* alias */ -# define V_ASN1_VIDEOTEXSTRING 21 /**/ +# define V_ASN1_TELETEXSTRING 20 /* alias */ +# define V_ASN1_VIDEOTEXSTRING 21 # define V_ASN1_IA5STRING 22 # define V_ASN1_UTCTIME 23 -# define V_ASN1_GENERALIZEDTIME 24 /**/ -# define V_ASN1_GRAPHICSTRING 25 /**/ -# define V_ASN1_ISO64STRING 26 /**/ -# define V_ASN1_VISIBLESTRING 26/* alias */ -# define V_ASN1_GENERALSTRING 27 /**/ -# define V_ASN1_UNIVERSALSTRING 28 /**/ +# define V_ASN1_GENERALIZEDTIME 24 +# define V_ASN1_GRAPHICSTRING 25 +# define V_ASN1_ISO64STRING 26 +# define V_ASN1_VISIBLESTRING 26 /* alias */ +# define V_ASN1_GENERALSTRING 27 +# define V_ASN1_UNIVERSALSTRING 28 # define V_ASN1_BMPSTRING 30 /* @@ -155,7 +158,7 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_ALGOR, X509_ALGOR, X509_ALGOR) -# define ASN1_STRING_FLAG_BITS_LEFT 0x08/* Set if 0x07 has bits left value */ +# define ASN1_STRING_FLAG_BITS_LEFT 0x08 /* Set if 0x07 has bits left value */ /* * This indicates that the ASN1_STRING is not a real value but just a place * holder for the location where indefinite length constructed data should be @@ -275,7 +278,7 @@ typedef struct ASN1_TLC_st ASN1_TLC; /* This is just an opaque pointer */ typedef struct ASN1_VALUE_st ASN1_VALUE; -/* Declare ASN1 functions: the implement macro in in asn1t.h */ +/* Declare ASN1 functions: the implement macro is in asn1t.h */ /* * The mysterious 'extern' that's passed to some macros is innocuous, @@ -368,6 +371,7 @@ typedef struct ASN1_VALUE_st ASN1_VALUE; typedef void *d2i_of_void(void **, const unsigned char **, long); typedef int i2d_of_void(const void *, unsigned char **); +typedef int OSSL_i2d_of_void_ctx(const void *, unsigned char **, void *vctx); /*- * The following macros and typedefs allow an ASN1_ITEM @@ -996,6 +1000,8 @@ int ASN1_TYPE_get_int_octetstring(const ASN1_TYPE *a, long *num, unsigned char *data, int max_len); void *ASN1_item_unpack(const ASN1_STRING *oct, const ASN1_ITEM *it); +void *ASN1_item_unpack_ex(const ASN1_STRING *oct, const ASN1_ITEM *it, + OSSL_LIB_CTX *libctx, const char *propq); ASN1_STRING *ASN1_item_pack(void *obj, const ASN1_ITEM *it, ASN1_OCTET_STRING **oct); diff --git a/deps/openssl/config/archs/linux-aarch64/asm_avx2/include/openssl/bio.h b/deps/openssl/config/archs/linux-aarch64/asm_avx2/include/openssl/bio.h index f9aa74731c833c..e02f867beb0ec0 100644 --- a/deps/openssl/config/archs/linux-aarch64/asm_avx2/include/openssl/bio.h +++ b/deps/openssl/config/archs/linux-aarch64/asm_avx2/include/openssl/bio.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/bio.h.in * - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -67,8 +67,13 @@ extern "C" { # define BIO_TYPE_DGRAM_SCTP (24|BIO_TYPE_SOURCE_SINK|BIO_TYPE_DESCRIPTOR) # endif # define BIO_TYPE_CORE_TO_PROV (25|BIO_TYPE_SOURCE_SINK) +# define BIO_TYPE_DGRAM_PAIR (26|BIO_TYPE_SOURCE_SINK) +# define BIO_TYPE_DGRAM_MEM (27|BIO_TYPE_SOURCE_SINK) +/* Custom type starting index returned by BIO_get_new_index() */ #define BIO_TYPE_START 128 +/* Custom type maximum index that can be returned by BIO_get_new_index() */ +#define BIO_TYPE_MASK 0xFF /* * BIO_FILENAME_READ|BIO_CLOSE to open or close on free. @@ -171,6 +176,31 @@ extern "C" { # define BIO_CTRL_SET_INDENT 80 # define BIO_CTRL_GET_INDENT 81 +# define BIO_CTRL_DGRAM_GET_LOCAL_ADDR_CAP 82 +# define BIO_CTRL_DGRAM_GET_LOCAL_ADDR_ENABLE 83 +# define BIO_CTRL_DGRAM_SET_LOCAL_ADDR_ENABLE 84 +# define BIO_CTRL_DGRAM_GET_EFFECTIVE_CAPS 85 +# define BIO_CTRL_DGRAM_GET_CAPS 86 +# define BIO_CTRL_DGRAM_SET_CAPS 87 +# define BIO_CTRL_DGRAM_GET_NO_TRUNC 88 +# define BIO_CTRL_DGRAM_SET_NO_TRUNC 89 + +/* + * internal BIO: + * # define BIO_CTRL_SET_KTLS_TX_ZEROCOPY_SENDFILE 90 + */ + +# define BIO_CTRL_GET_RPOLL_DESCRIPTOR 91 +# define BIO_CTRL_GET_WPOLL_DESCRIPTOR 92 +# define BIO_CTRL_DGRAM_DETECT_PEER_ADDR 93 +# define BIO_CTRL_DGRAM_SET0_LOCAL_ADDR 94 + +# define BIO_DGRAM_CAP_NONE 0U +# define BIO_DGRAM_CAP_HANDLES_SRC_ADDR (1U << 0) +# define BIO_DGRAM_CAP_HANDLES_DST_ADDR (1U << 1) +# define BIO_DGRAM_CAP_PROVIDES_SRC_ADDR (1U << 2) +# define BIO_DGRAM_CAP_PROVIDES_DST_ADDR (1U << 3) + # ifndef OPENSSL_NO_KTLS # define BIO_get_ktls_send(b) \ (BIO_ctrl(b, BIO_CTRL_GET_KTLS_SEND, 0, NULL) > 0) @@ -208,7 +238,7 @@ extern "C" { # define BIO_FLAGS_NONCLEAR_RST 0x400 # define BIO_FLAGS_IN_EOF 0x800 -/* the BIO FLAGS values 0x1000 to 0x4000 are reserved for internal KTLS flags */ +/* the BIO FLAGS values 0x1000 to 0x8000 are reserved for internal KTLS flags */ typedef union bio_addr_st BIO_ADDR; typedef struct bio_addrinfo_st BIO_ADDRINFO; @@ -256,12 +286,14 @@ void BIO_clear_flags(BIO *b, int flags); # define BIO_RR_ACCEPT 0x03 /* These are passed by the BIO callback */ -# define BIO_CB_FREE 0x01 -# define BIO_CB_READ 0x02 -# define BIO_CB_WRITE 0x03 -# define BIO_CB_PUTS 0x04 -# define BIO_CB_GETS 0x05 -# define BIO_CB_CTRL 0x06 +# define BIO_CB_FREE 0x01 +# define BIO_CB_READ 0x02 +# define BIO_CB_WRITE 0x03 +# define BIO_CB_PUTS 0x04 +# define BIO_CB_GETS 0x05 +# define BIO_CB_CTRL 0x06 +# define BIO_CB_RECVMMSG 0x07 +# define BIO_CB_SENDMMSG 0x08 /* * The callback is called before and after the underling operation, The @@ -362,6 +394,36 @@ struct bio_dgram_sctp_prinfo { }; # endif +/* BIO_sendmmsg/BIO_recvmmsg-related definitions */ +typedef struct bio_msg_st { + void *data; + size_t data_len; + BIO_ADDR *peer, *local; + uint64_t flags; +} BIO_MSG; + +typedef struct bio_mmsg_cb_args_st { + BIO_MSG *msg; + size_t stride, num_msg; + uint64_t flags; + size_t *msgs_processed; +} BIO_MMSG_CB_ARGS; + +#define BIO_POLL_DESCRIPTOR_TYPE_NONE 0 +#define BIO_POLL_DESCRIPTOR_TYPE_SOCK_FD 1 +#define BIO_POLL_DESCRIPTOR_TYPE_SSL 2 +#define BIO_POLL_DESCRIPTOR_CUSTOM_START 8192 + +typedef struct bio_poll_descriptor_st { + uint32_t type; + union { + int fd; + void *custom; + uintptr_t custom_ui; + SSL *ssl; + } value; +} BIO_POLL_DESCRIPTOR; + /* * #define BIO_CONN_get_param_hostname BIO_ctrl */ @@ -428,10 +490,17 @@ struct bio_dgram_sctp_prinfo { # define BIO_C_SET_CONNECT_MODE 155 +# define BIO_C_SET_TFO 156 /* like BIO_C_SET_NBIO */ + +# define BIO_C_SET_SOCK_TYPE 157 +# define BIO_C_GET_SOCK_TYPE 158 +# define BIO_C_GET_DGRAM_BIO 159 + # define BIO_set_app_data(s,arg) BIO_set_ex_data(s,0,arg) # define BIO_get_app_data(s) BIO_get_ex_data(s,0) -# define BIO_set_nbio(b,n) BIO_ctrl(b,BIO_C_SET_NBIO,(n),NULL) +# define BIO_set_nbio(b,n) BIO_ctrl(b,BIO_C_SET_NBIO,(n),NULL) +# define BIO_set_tfo(b,n) BIO_ctrl(b,BIO_C_SET_TFO,(n),NULL) # ifndef OPENSSL_NO_SOCK /* IP families we support, for BIO_s_connect() and BIO_s_accept() */ @@ -452,7 +521,11 @@ struct bio_dgram_sctp_prinfo { # define BIO_get_conn_port(b) ((const char *)BIO_ptr_ctrl(b,BIO_C_GET_CONNECT,1)) # define BIO_get_conn_address(b) ((const BIO_ADDR *)BIO_ptr_ctrl(b,BIO_C_GET_CONNECT,2)) # define BIO_get_conn_ip_family(b) BIO_ctrl(b,BIO_C_GET_CONNECT,3,NULL) +# define BIO_get_conn_mode(b) BIO_ctrl(b,BIO_C_GET_CONNECT,4,NULL) # define BIO_set_conn_mode(b,n) BIO_ctrl(b,BIO_C_SET_CONNECT_MODE,(n),NULL) +# define BIO_set_sock_type(b,t) BIO_ctrl(b,BIO_C_SET_SOCK_TYPE,(t),NULL) +# define BIO_get_sock_type(b) BIO_ctrl(b,BIO_C_GET_SOCK_TYPE,0,NULL) +# define BIO_get0_dgram_bio(b, p) BIO_ctrl(b,BIO_C_GET_DGRAM_BIO,0,(void *)(BIO **)(p)) /* BIO_s_accept() */ # define BIO_set_accept_name(b,name) BIO_ctrl(b,BIO_C_SET_ACCEPT,0, \ @@ -469,6 +542,7 @@ struct bio_dgram_sctp_prinfo { (char *)(bio)) # define BIO_set_accept_ip_family(b,f) BIO_int_ctrl(b,BIO_C_SET_ACCEPT,4,f) # define BIO_get_accept_ip_family(b) BIO_ctrl(b,BIO_C_GET_ACCEPT,4,NULL) +# define BIO_set_tfo_accept(b,n) BIO_ctrl(b,BIO_C_SET_ACCEPT,5,(n)?(void *)"a":NULL) /* Aliases kept for backward compatibility */ # define BIO_BIND_NORMAL 0 @@ -596,8 +670,32 @@ int BIO_ctrl_reset_read_request(BIO *b); (int)BIO_ctrl(b, BIO_CTRL_DGRAM_GET_PEER, 0, (char *)(peer)) # define BIO_dgram_set_peer(b,peer) \ (int)BIO_ctrl(b, BIO_CTRL_DGRAM_SET_PEER, 0, (char *)(peer)) +# define BIO_dgram_detect_peer_addr(b,peer) \ + (int)BIO_ctrl(b, BIO_CTRL_DGRAM_DETECT_PEER_ADDR, 0, (char *)(peer)) # define BIO_dgram_get_mtu_overhead(b) \ (unsigned int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_MTU_OVERHEAD, 0, NULL) +# define BIO_dgram_get_local_addr_cap(b) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_LOCAL_ADDR_CAP, 0, NULL) +# define BIO_dgram_get_local_addr_enable(b, penable) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_LOCAL_ADDR_ENABLE, 0, (char *)(penable)) +# define BIO_dgram_set_local_addr_enable(b, enable) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET_LOCAL_ADDR_ENABLE, (enable), NULL) +# define BIO_dgram_get_effective_caps(b) \ + (uint32_t)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_EFFECTIVE_CAPS, 0, NULL) +# define BIO_dgram_get_caps(b) \ + (uint32_t)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_CAPS, 0, NULL) +# define BIO_dgram_set_caps(b, caps) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET_CAPS, (long)(caps), NULL) +# define BIO_dgram_get_no_trunc(b) \ + (unsigned int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_NO_TRUNC, 0, NULL) +# define BIO_dgram_set_no_trunc(b, enable) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET_NO_TRUNC, (enable), NULL) +# define BIO_dgram_get_mtu(b) \ + (unsigned int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_MTU, 0, NULL) +# define BIO_dgram_set_mtu(b, mtu) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET_MTU, (mtu), NULL) +# define BIO_dgram_set0_local_addr(b, addr) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET0_LOCAL_ADDR, 0, (addr)) /* ctrl macros for BIO_f_prefix */ # define BIO_set_prefix(b,p) BIO_ctrl((b), BIO_CTRL_SET_PREFIX, 0, (void *)(p)) @@ -640,10 +738,18 @@ void BIO_vfree(BIO *a); int BIO_up_ref(BIO *a); int BIO_read(BIO *b, void *data, int dlen); int BIO_read_ex(BIO *b, void *data, size_t dlen, size_t *readbytes); +__owur int BIO_recvmmsg(BIO *b, BIO_MSG *msg, + size_t stride, size_t num_msg, uint64_t flags, + size_t *msgs_processed); int BIO_gets(BIO *bp, char *buf, int size); int BIO_get_line(BIO *bio, char *buf, int size); int BIO_write(BIO *b, const void *data, int dlen); int BIO_write_ex(BIO *b, const void *data, size_t dlen, size_t *written); +__owur int BIO_sendmmsg(BIO *b, BIO_MSG *msg, + size_t stride, size_t num_msg, uint64_t flags, + size_t *msgs_processed); +__owur int BIO_get_rpoll_descriptor(BIO *b, BIO_POLL_DESCRIPTOR *desc); +__owur int BIO_get_wpoll_descriptor(BIO *b, BIO_POLL_DESCRIPTOR *desc); int BIO_puts(BIO *bp, const char *buf); int BIO_indent(BIO *b, int indent, int max); long BIO_ctrl(BIO *bp, int cmd, long larg, void *parg); @@ -667,6 +773,9 @@ int BIO_nwrite0(BIO *bio, char **buf); int BIO_nwrite(BIO *bio, char **buf, int num); const BIO_METHOD *BIO_s_mem(void); +# ifndef OPENSSL_NO_DGRAM +const BIO_METHOD *BIO_s_dgram_mem(void); +# endif const BIO_METHOD *BIO_s_secmem(void); BIO *BIO_new_mem_buf(const void *buf, int len); # ifndef OPENSSL_NO_SOCK @@ -686,6 +795,7 @@ const BIO_METHOD *BIO_f_nbio_test(void); const BIO_METHOD *BIO_f_prefix(void); const BIO_METHOD *BIO_s_core(void); # ifndef OPENSSL_NO_DGRAM +const BIO_METHOD *BIO_s_dgram_pair(void); const BIO_METHOD *BIO_s_datagram(void); int BIO_dgram_non_fatal_error(int error); BIO *BIO_new_dgram(int fd, int close_flag); @@ -704,6 +814,7 @@ int BIO_dgram_sctp_msg_waiting(BIO *b); # ifndef OPENSSL_NO_SOCK int BIO_sock_should_retry(int i); int BIO_sock_non_fatal_error(int error); +int BIO_err_is_non_fatal(unsigned int errcode); int BIO_socket_wait(int fd, int for_read, time_t max_time); # endif int BIO_wait(BIO *bio, time_t max_time, unsigned int nap_milliseconds); @@ -726,6 +837,8 @@ int BIO_hex_string(BIO *out, int indent, int width, const void *data, # ifndef OPENSSL_NO_SOCK BIO_ADDR *BIO_ADDR_new(void); +int BIO_ADDR_copy(BIO_ADDR *dst, const BIO_ADDR *src); +BIO_ADDR *BIO_ADDR_dup(const BIO_ADDR *ap); int BIO_ADDR_rawmake(BIO_ADDR *ap, int family, const void *where, size_t wherelen, unsigned short port); void BIO_ADDR_free(BIO_ADDR *); @@ -788,6 +901,7 @@ int BIO_sock_info(int sock, # define BIO_SOCK_KEEPALIVE 0x04 # define BIO_SOCK_NONBLOCK 0x08 # define BIO_SOCK_NODELAY 0x10 +# define BIO_SOCK_TFO 0x20 int BIO_socket(int domain, int socktype, int protocol, int options); int BIO_connect(int sock, const BIO_ADDR *addr, int options); @@ -805,6 +919,11 @@ BIO *BIO_new_fd(int fd, int close_flag); int BIO_new_bio_pair(BIO **bio1, size_t writebuf1, BIO **bio2, size_t writebuf2); +# ifndef OPENSSL_NO_DGRAM +int BIO_new_bio_dgram_pair(BIO **bio1, size_t writebuf1, + BIO **bio2, size_t writebuf2); +# endif + /* * If successful, returns 1 and in *bio1, *bio2 two BIO pair endpoints. * Otherwise returns 0 and sets *bio1 and *bio2 to NULL. Size 0 uses default @@ -849,38 +968,54 @@ ossl_bio__attr__((__format__(ossl_bio__printf__, 3, 0))); BIO_METHOD *BIO_meth_new(int type, const char *name); void BIO_meth_free(BIO_METHOD *biom); -int (*BIO_meth_get_write(const BIO_METHOD *biom)) (BIO *, const char *, int); -int (*BIO_meth_get_write_ex(const BIO_METHOD *biom)) (BIO *, const char *, size_t, - size_t *); int BIO_meth_set_write(BIO_METHOD *biom, int (*write) (BIO *, const char *, int)); int BIO_meth_set_write_ex(BIO_METHOD *biom, int (*bwrite) (BIO *, const char *, size_t, size_t *)); -int (*BIO_meth_get_read(const BIO_METHOD *biom)) (BIO *, char *, int); -int (*BIO_meth_get_read_ex(const BIO_METHOD *biom)) (BIO *, char *, size_t, size_t *); +int BIO_meth_set_sendmmsg(BIO_METHOD *biom, + int (*f) (BIO *, BIO_MSG *, size_t, size_t, + uint64_t, size_t *)); int BIO_meth_set_read(BIO_METHOD *biom, int (*read) (BIO *, char *, int)); int BIO_meth_set_read_ex(BIO_METHOD *biom, int (*bread) (BIO *, char *, size_t, size_t *)); -int (*BIO_meth_get_puts(const BIO_METHOD *biom)) (BIO *, const char *); +int BIO_meth_set_recvmmsg(BIO_METHOD *biom, + int (*f) (BIO *, BIO_MSG *, size_t, size_t, + uint64_t, size_t *)); int BIO_meth_set_puts(BIO_METHOD *biom, int (*puts) (BIO *, const char *)); -int (*BIO_meth_get_gets(const BIO_METHOD *biom)) (BIO *, char *, int); int BIO_meth_set_gets(BIO_METHOD *biom, int (*ossl_gets) (BIO *, char *, int)); -long (*BIO_meth_get_ctrl(const BIO_METHOD *biom)) (BIO *, int, long, void *); int BIO_meth_set_ctrl(BIO_METHOD *biom, long (*ctrl) (BIO *, int, long, void *)); -int (*BIO_meth_get_create(const BIO_METHOD *bion)) (BIO *); int BIO_meth_set_create(BIO_METHOD *biom, int (*create) (BIO *)); -int (*BIO_meth_get_destroy(const BIO_METHOD *biom)) (BIO *); int BIO_meth_set_destroy(BIO_METHOD *biom, int (*destroy) (BIO *)); -long (*BIO_meth_get_callback_ctrl(const BIO_METHOD *biom)) - (BIO *, int, BIO_info_cb *); int BIO_meth_set_callback_ctrl(BIO_METHOD *biom, long (*callback_ctrl) (BIO *, int, BIO_info_cb *)); - +# ifndef OPENSSL_NO_DEPRECATED_3_5 +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_write(const BIO_METHOD *biom)) (BIO *, const char *, + int); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_write_ex(const BIO_METHOD *biom)) (BIO *, const char *, + size_t, size_t *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_sendmmsg(const BIO_METHOD *biom))(BIO *, BIO_MSG *, + size_t, size_t, + uint64_t, size_t *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_read(const BIO_METHOD *biom)) (BIO *, char *, int); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_read_ex(const BIO_METHOD *biom)) (BIO *, char *, + size_t, size_t *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_recvmmsg(const BIO_METHOD *biom))(BIO *, BIO_MSG *, + size_t, size_t, + uint64_t, size_t *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_puts(const BIO_METHOD *biom)) (BIO *, const char *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_gets(const BIO_METHOD *biom)) (BIO *, char *, int); +OSSL_DEPRECATEDIN_3_5 long (*BIO_meth_get_ctrl(const BIO_METHOD *biom)) (BIO *, int, + long, void *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_create(const BIO_METHOD *bion)) (BIO *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_destroy(const BIO_METHOD *biom)) (BIO *); +OSSL_DEPRECATEDIN_3_5 long (*BIO_meth_get_callback_ctrl(const BIO_METHOD *biom)) (BIO *, int, + BIO_info_cb *); +# endif # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/linux-aarch64/asm_avx2/include/openssl/cmp.h b/deps/openssl/config/archs/linux-aarch64/asm_avx2/include/openssl/cmp.h index 49825570d8c303..05aed3029d594c 100644 --- a/deps/openssl/config/archs/linux-aarch64/asm_avx2/include/openssl/cmp.h +++ b/deps/openssl/config/archs/linux-aarch64/asm_avx2/include/openssl/cmp.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/cmp.h.in * - * Copyright 2007-2023 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2007-2024 The OpenSSL Project Authors. All Rights Reserved. * Copyright Nokia 2007-2019 * Copyright Siemens AG 2015-2019 * @@ -35,7 +35,9 @@ extern "C" { # endif -# define OSSL_CMP_PVNO 2 +# define OSSL_CMP_PVNO_2 2 +# define OSSL_CMP_PVNO_3 3 +# define OSSL_CMP_PVNO OSSL_CMP_PVNO_2 /* v2 is the default */ /*- * PKIFailureInfo ::= BIT STRING { @@ -137,7 +139,6 @@ extern "C" { # if OSSL_CMP_PKIFAILUREINFO_MAX_BIT_PATTERN > INT_MAX # error CMP_PKIFAILUREINFO_MAX bit pattern does not fit in type int # endif - typedef ASN1_BIT_STRING OSSL_CMP_PKIFAILUREINFO; # define OSSL_CMP_CTX_FAILINFO_badAlg (1 << 0) @@ -203,8 +204,8 @@ typedef ASN1_BIT_STRING OSSL_CMP_PKIFAILUREINFO; # define OSSL_CMP_PKISTATUS_revocationWarning 4 # define OSSL_CMP_PKISTATUS_revocationNotification 5 # define OSSL_CMP_PKISTATUS_keyUpdateWarning 6 - typedef ASN1_INTEGER OSSL_CMP_PKISTATUS; + DECLARE_ASN1_ITEM(OSSL_CMP_PKISTATUS) # define OSSL_CMP_CERTORENCCERT_CERTIFICATE 0 @@ -274,6 +275,46 @@ SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CMP_ITAV, OSSL_CMP_ITAV, OSSL_CMP_ITAV) #define sk_OSSL_CMP_ITAV_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_CMP_ITAV) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_CMP_ITAV_sk_type(sk), ossl_check_OSSL_CMP_ITAV_copyfunc_type(copyfunc), ossl_check_OSSL_CMP_ITAV_freefunc_type(freefunc))) #define sk_OSSL_CMP_ITAV_set_cmp_func(sk, cmp) ((sk_OSSL_CMP_ITAV_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CMP_ITAV_sk_type(sk), ossl_check_OSSL_CMP_ITAV_compfunc_type(cmp))) + +typedef struct ossl_cmp_crlstatus_st OSSL_CMP_CRLSTATUS; +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CMP_CRLSTATUS, OSSL_CMP_CRLSTATUS, OSSL_CMP_CRLSTATUS) +#define sk_OSSL_CMP_CRLSTATUS_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_value(sk, idx) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_value(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk), (idx))) +#define sk_OSSL_CMP_CRLSTATUS_new(cmp) ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_new(ossl_check_OSSL_CMP_CRLSTATUS_compfunc_type(cmp))) +#define sk_OSSL_CMP_CRLSTATUS_new_null() ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_new_null()) +#define sk_OSSL_CMP_CRLSTATUS_new_reserve(cmp, n) ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_CMP_CRLSTATUS_compfunc_type(cmp), (n))) +#define sk_OSSL_CMP_CRLSTATUS_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), (n)) +#define sk_OSSL_CMP_CRLSTATUS_free(sk) OPENSSL_sk_free(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_delete(sk, i) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_delete(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), (i))) +#define sk_OSSL_CMP_CRLSTATUS_delete_ptr(sk, ptr) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr))) +#define sk_OSSL_CMP_CRLSTATUS_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr)) +#define sk_OSSL_CMP_CRLSTATUS_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr)) +#define sk_OSSL_CMP_CRLSTATUS_pop(sk) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_pop(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk))) +#define sk_OSSL_CMP_CRLSTATUS_shift(sk) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_shift(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk))) +#define sk_OSSL_CMP_CRLSTATUS_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk),ossl_check_OSSL_CMP_CRLSTATUS_freefunc_type(freefunc)) +#define sk_OSSL_CMP_CRLSTATUS_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr), (idx)) +#define sk_OSSL_CMP_CRLSTATUS_set(sk, idx, ptr) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_set(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), (idx), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr))) +#define sk_OSSL_CMP_CRLSTATUS_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr)) +#define sk_OSSL_CMP_CRLSTATUS_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr)) +#define sk_OSSL_CMP_CRLSTATUS_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr), pnum) +#define sk_OSSL_CMP_CRLSTATUS_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_dup(sk) ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_dup(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk))) +#define sk_OSSL_CMP_CRLSTATUS_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_copyfunc_type(copyfunc), ossl_check_OSSL_CMP_CRLSTATUS_freefunc_type(freefunc))) +#define sk_OSSL_CMP_CRLSTATUS_set_cmp_func(sk, cmp) ((sk_OSSL_CMP_CRLSTATUS_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_compfunc_type(cmp))) + + +typedef OSSL_CRMF_ATTRIBUTETYPEANDVALUE OSSL_CMP_ATAV; +# define OSSL_CMP_ATAV_free OSSL_CRMF_ATTRIBUTETYPEANDVALUE_free +typedef STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) OSSL_CMP_ATAVS; +DECLARE_ASN1_FUNCTIONS(OSSL_CMP_ATAVS) +# define stack_st_OSSL_CMP_ATAV stack_st_OSSL_CRMF_ATTRIBUTETYPEANDVALUE +# define sk_OSSL_CMP_ATAV_num sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_num +# define sk_OSSL_CMP_ATAV_value sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_value +# define sk_OSSL_CMP_ATAV_push sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_push +# define sk_OSSL_CMP_ATAV_pop_free sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_pop_free + typedef struct ossl_cmp_revrepcontent_st OSSL_CMP_REVREPCONTENT; typedef struct ossl_cmp_pkisi_st OSSL_CMP_PKISI; DECLARE_ASN1_FUNCTIONS(OSSL_CMP_PKISI) @@ -375,21 +416,75 @@ void OSSL_CMP_ITAV_set0(OSSL_CMP_ITAV *itav, ASN1_OBJECT *type, ASN1_TYPE *value); ASN1_OBJECT *OSSL_CMP_ITAV_get0_type(const OSSL_CMP_ITAV *itav); ASN1_TYPE *OSSL_CMP_ITAV_get0_value(const OSSL_CMP_ITAV *itav); -int OSSL_CMP_ITAV_push0_stack_item(STACK_OF(OSSL_CMP_ITAV) **itav_sk_p, +int OSSL_CMP_ITAV_push0_stack_item(STACK_OF(OSSL_CMP_ITAV) **sk_p, OSSL_CMP_ITAV *itav); void OSSL_CMP_ITAV_free(OSSL_CMP_ITAV *itav); + +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new0_certProfile(STACK_OF(ASN1_UTF8STRING) + *certProfile); +int OSSL_CMP_ITAV_get0_certProfile(const OSSL_CMP_ITAV *itav, + STACK_OF(ASN1_UTF8STRING) **out); +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new_caCerts(const STACK_OF(X509) *caCerts); +int OSSL_CMP_ITAV_get0_caCerts(const OSSL_CMP_ITAV *itav, STACK_OF(X509) **out); + +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new_rootCaCert(const X509 *rootCaCert); +int OSSL_CMP_ITAV_get0_rootCaCert(const OSSL_CMP_ITAV *itav, X509 **out); +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new_rootCaKeyUpdate(const X509 *newWithNew, + const X509 *newWithOld, + const X509 *oldWithNew); +int OSSL_CMP_ITAV_get0_rootCaKeyUpdate(const OSSL_CMP_ITAV *itav, + X509 **newWithNew, + X509 **newWithOld, + X509 **oldWithNew); + +OSSL_CMP_CRLSTATUS *OSSL_CMP_CRLSTATUS_create(const X509_CRL *crl, + const X509 *cert, int only_DN); +OSSL_CMP_CRLSTATUS *OSSL_CMP_CRLSTATUS_new1(const DIST_POINT_NAME *dpn, + const GENERAL_NAMES *issuer, + const ASN1_TIME *thisUpdate); +int OSSL_CMP_CRLSTATUS_get0(const OSSL_CMP_CRLSTATUS *crlstatus, + DIST_POINT_NAME **dpn, GENERAL_NAMES **issuer, + ASN1_TIME **thisUpdate); +void OSSL_CMP_CRLSTATUS_free(OSSL_CMP_CRLSTATUS *crlstatus); +OSSL_CMP_ITAV +*OSSL_CMP_ITAV_new0_crlStatusList(STACK_OF(OSSL_CMP_CRLSTATUS) *crlStatusList); +int OSSL_CMP_ITAV_get0_crlStatusList(const OSSL_CMP_ITAV *itav, + STACK_OF(OSSL_CMP_CRLSTATUS) **out); +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new_crls(const X509_CRL *crls); +int OSSL_CMP_ITAV_get0_crls(const OSSL_CMP_ITAV *it, STACK_OF(X509_CRL) **out); +OSSL_CMP_ITAV +*OSSL_CMP_ITAV_new0_certReqTemplate(OSSL_CRMF_CERTTEMPLATE *certTemplate, + OSSL_CMP_ATAVS *keySpec); +int OSSL_CMP_ITAV_get1_certReqTemplate(const OSSL_CMP_ITAV *itav, + OSSL_CRMF_CERTTEMPLATE **certTemplate, + OSSL_CMP_ATAVS **keySpec); + +OSSL_CMP_ATAV *OSSL_CMP_ATAV_create(ASN1_OBJECT *type, ASN1_TYPE *value); +void OSSL_CMP_ATAV_set0(OSSL_CMP_ATAV *itav, ASN1_OBJECT *type, + ASN1_TYPE *value); +ASN1_OBJECT *OSSL_CMP_ATAV_get0_type(const OSSL_CMP_ATAV *itav); +ASN1_TYPE *OSSL_CMP_ATAV_get0_value(const OSSL_CMP_ATAV *itav); +OSSL_CMP_ATAV *OSSL_CMP_ATAV_new_algId(const X509_ALGOR *alg); +X509_ALGOR *OSSL_CMP_ATAV_get0_algId(const OSSL_CMP_ATAV *atav); +OSSL_CMP_ATAV *OSSL_CMP_ATAV_new_rsaKeyLen(int len); +int OSSL_CMP_ATAV_get_rsaKeyLen(const OSSL_CMP_ATAV *atav); +int OSSL_CMP_ATAV_push1(OSSL_CMP_ATAVS **sk_p, const OSSL_CMP_ATAV *atav); + void OSSL_CMP_MSG_free(OSSL_CMP_MSG *msg); /* from cmp_ctx.c */ OSSL_CMP_CTX *OSSL_CMP_CTX_new(OSSL_LIB_CTX *libctx, const char *propq); void OSSL_CMP_CTX_free(OSSL_CMP_CTX *ctx); int OSSL_CMP_CTX_reinit(OSSL_CMP_CTX *ctx); +OSSL_LIB_CTX *OSSL_CMP_CTX_get0_libctx(const OSSL_CMP_CTX *ctx); +const char *OSSL_CMP_CTX_get0_propq(const OSSL_CMP_CTX *ctx); /* CMP general options: */ # define OSSL_CMP_OPT_LOG_VERBOSITY 0 /* CMP transfer options: */ -# define OSSL_CMP_OPT_KEEP_ALIVE 10 -# define OSSL_CMP_OPT_MSG_TIMEOUT 11 +# define OSSL_CMP_OPT_KEEP_ALIVE 10 +# define OSSL_CMP_OPT_MSG_TIMEOUT 11 # define OSSL_CMP_OPT_TOTAL_TIMEOUT 12 +# define OSSL_CMP_OPT_USE_TLS 13 /* CMP request options: */ # define OSSL_CMP_OPT_VALIDITY_DAYS 20 # define OSSL_CMP_OPT_SUBJECTALTNAME_NODEFAULT 21 @@ -407,6 +502,7 @@ int OSSL_CMP_CTX_reinit(OSSL_CMP_CTX *ctx); # define OSSL_CMP_OPT_DIGEST_ALGNID 34 # define OSSL_CMP_OPT_IGNORE_KEYUSAGE 35 # define OSSL_CMP_OPT_PERMIT_TA_IN_EXTRACERTS_FOR_IR 36 +# define OSSL_CMP_OPT_NO_CACHE_EXTRACERTS 37 int OSSL_CMP_CTX_set_option(OSSL_CMP_CTX *ctx, int opt, int val); int OSSL_CMP_CTX_get_option(const OSSL_CMP_CTX *ctx, int opt); /* CMP-specific callback for logging and outputting the error queue: */ @@ -420,9 +516,11 @@ int OSSL_CMP_CTX_set1_server(OSSL_CMP_CTX *ctx, const char *address); int OSSL_CMP_CTX_set_serverPort(OSSL_CMP_CTX *ctx, int port); int OSSL_CMP_CTX_set1_proxy(OSSL_CMP_CTX *ctx, const char *name); int OSSL_CMP_CTX_set1_no_proxy(OSSL_CMP_CTX *ctx, const char *names); +# ifndef OPENSSL_NO_HTTP int OSSL_CMP_CTX_set_http_cb(OSSL_CMP_CTX *ctx, OSSL_HTTP_bio_cb_t cb); int OSSL_CMP_CTX_set_http_cb_arg(OSSL_CMP_CTX *ctx, void *arg); void *OSSL_CMP_CTX_get_http_cb_arg(const OSSL_CMP_CTX *ctx); +# endif typedef OSSL_CMP_MSG *(*OSSL_CMP_transfer_cb_t) (OSSL_CMP_CTX *ctx, const OSSL_CMP_MSG *req); int OSSL_CMP_CTX_set_transfer_cb(OSSL_CMP_CTX *ctx, OSSL_CMP_transfer_cb_t cb); @@ -432,7 +530,9 @@ void *OSSL_CMP_CTX_get_transfer_cb_arg(const OSSL_CMP_CTX *ctx); int OSSL_CMP_CTX_set1_srvCert(OSSL_CMP_CTX *ctx, X509 *cert); int OSSL_CMP_CTX_set1_expected_sender(OSSL_CMP_CTX *ctx, const X509_NAME *name); int OSSL_CMP_CTX_set0_trustedStore(OSSL_CMP_CTX *ctx, X509_STORE *store); +# define OSSL_CMP_CTX_set0_trusted OSSL_CMP_CTX_set0_trustedStore X509_STORE *OSSL_CMP_CTX_get0_trustedStore(const OSSL_CMP_CTX *ctx); +# define OSSL_CMP_CTX_get0_trusted OSSL_CMP_CTX_get0_trustedStore int OSSL_CMP_CTX_set1_untrusted(OSSL_CMP_CTX *ctx, STACK_OF(X509) *certs); STACK_OF(X509) *OSSL_CMP_CTX_get0_untrusted(const OSSL_CMP_CTX *ctx); /* client authentication: */ @@ -448,12 +548,15 @@ int OSSL_CMP_CTX_set1_secretValue(OSSL_CMP_CTX *ctx, int OSSL_CMP_CTX_set1_recipient(OSSL_CMP_CTX *ctx, const X509_NAME *name); int OSSL_CMP_CTX_push0_geninfo_ITAV(OSSL_CMP_CTX *ctx, OSSL_CMP_ITAV *itav); int OSSL_CMP_CTX_reset_geninfo_ITAVs(OSSL_CMP_CTX *ctx); +STACK_OF(OSSL_CMP_ITAV) + *OSSL_CMP_CTX_get0_geninfo_ITAVs(const OSSL_CMP_CTX *ctx); int OSSL_CMP_CTX_set1_extraCertsOut(OSSL_CMP_CTX *ctx, STACK_OF(X509) *extraCertsOut); /* certificate template: */ int OSSL_CMP_CTX_set0_newPkey(OSSL_CMP_CTX *ctx, int priv, EVP_PKEY *pkey); EVP_PKEY *OSSL_CMP_CTX_get0_newPkey(const OSSL_CMP_CTX *ctx, int priv); int OSSL_CMP_CTX_set1_issuer(OSSL_CMP_CTX *ctx, const X509_NAME *name); +int OSSL_CMP_CTX_set1_serialNumber(OSSL_CMP_CTX *ctx, const ASN1_INTEGER *sn); int OSSL_CMP_CTX_set1_subjectName(OSSL_CMP_CTX *ctx, const X509_NAME *name); int OSSL_CMP_CTX_push1_subjectAltName(OSSL_CMP_CTX *ctx, const GENERAL_NAME *name); @@ -477,6 +580,7 @@ int OSSL_CMP_CTX_get_status(const OSSL_CMP_CTX *ctx); OSSL_CMP_PKIFREETEXT *OSSL_CMP_CTX_get0_statusString(const OSSL_CMP_CTX *ctx); int OSSL_CMP_CTX_get_failInfoCode(const OSSL_CMP_CTX *ctx); # define OSSL_CMP_PKISI_BUFLEN 1024 +X509 *OSSL_CMP_CTX_get0_validatedSrvCert(const OSSL_CMP_CTX *ctx); X509 *OSSL_CMP_CTX_get0_newCert(const OSSL_CMP_CTX *ctx); STACK_OF(X509) *OSSL_CMP_CTX_get1_newChain(const OSSL_CMP_CTX *ctx); STACK_OF(X509) *OSSL_CMP_CTX_get1_caPubs(const OSSL_CMP_CTX *ctx); @@ -498,10 +602,13 @@ OSSL_CMP_STATUSINFO_new(int status, int fail_info, const char *text); ASN1_OCTET_STRING *OSSL_CMP_HDR_get0_transactionID(const OSSL_CMP_PKIHEADER *hdr); ASN1_OCTET_STRING *OSSL_CMP_HDR_get0_recipNonce(const OSSL_CMP_PKIHEADER *hdr); +STACK_OF(OSSL_CMP_ITAV) + *OSSL_CMP_HDR_get0_geninfo_ITAVs(const OSSL_CMP_PKIHEADER *hdr); /* from cmp_msg.c */ OSSL_CMP_PKIHEADER *OSSL_CMP_MSG_get0_header(const OSSL_CMP_MSG *msg); int OSSL_CMP_MSG_get_bodytype(const OSSL_CMP_MSG *msg); +X509_PUBKEY *OSSL_CMP_MSG_get0_certreq_publickey(const OSSL_CMP_MSG *msg); int OSSL_CMP_MSG_update_transactionID(OSSL_CMP_CTX *ctx, OSSL_CMP_MSG *msg); int OSSL_CMP_MSG_update_recipNonce(OSSL_CMP_CTX *ctx, OSSL_CMP_MSG *msg); OSSL_CRMF_MSG *OSSL_CMP_CTX_setup_CRM(OSSL_CMP_CTX *ctx, int for_KUR, int rid); @@ -517,8 +624,10 @@ int OSSL_CMP_validate_cert_path(const OSSL_CMP_CTX *ctx, X509_STORE *trusted_store, X509 *cert); /* from cmp_http.c */ +# ifndef OPENSSL_NO_HTTP OSSL_CMP_MSG *OSSL_CMP_MSG_http_perform(OSSL_CMP_CTX *ctx, const OSSL_CMP_MSG *req); +# endif /* from cmp_server.c */ typedef struct ossl_cmp_srv_ctx_st OSSL_CMP_SRV_CTX; @@ -561,6 +670,13 @@ int OSSL_CMP_SRV_CTX_init(OSSL_CMP_SRV_CTX *srv_ctx, void *custom_ctx, OSSL_CMP_SRV_error_cb_t process_error, OSSL_CMP_SRV_certConf_cb_t process_certConf, OSSL_CMP_SRV_pollReq_cb_t process_pollReq); +typedef int (*OSSL_CMP_SRV_delayed_delivery_cb_t)(OSSL_CMP_SRV_CTX *srv_ctx, + const OSSL_CMP_MSG *req); +typedef int (*OSSL_CMP_SRV_clean_transaction_cb_t)(OSSL_CMP_SRV_CTX *srv_ctx, + const ASN1_OCTET_STRING *id); +int OSSL_CMP_SRV_CTX_init_trans(OSSL_CMP_SRV_CTX *srv_ctx, + OSSL_CMP_SRV_delayed_delivery_cb_t delay, + OSSL_CMP_SRV_clean_transaction_cb_t clean); OSSL_CMP_CTX *OSSL_CMP_SRV_CTX_get0_cmp_ctx(const OSSL_CMP_SRV_CTX *srv_ctx); void *OSSL_CMP_SRV_CTX_get0_custom_ctx(const OSSL_CMP_SRV_CTX *srv_ctx); int OSSL_CMP_SRV_CTX_set_send_unprotected_errors(OSSL_CMP_SRV_CTX *srv_ctx, @@ -577,6 +693,8 @@ X509 *OSSL_CMP_exec_certreq(OSSL_CMP_CTX *ctx, int req_type, # define OSSL_CMP_CR 2 # define OSSL_CMP_P10CR 4 # define OSSL_CMP_KUR 7 +# define OSSL_CMP_GENM 21 +# define OSSL_CMP_ERROR 23 # define OSSL_CMP_exec_IR_ses(ctx) \ OSSL_CMP_exec_certreq(ctx, OSSL_CMP_IR, NULL) # define OSSL_CMP_exec_CR_ses(ctx) \ @@ -590,6 +708,18 @@ int OSSL_CMP_try_certreq(OSSL_CMP_CTX *ctx, int req_type, int OSSL_CMP_exec_RR_ses(OSSL_CMP_CTX *ctx); STACK_OF(OSSL_CMP_ITAV) *OSSL_CMP_exec_GENM_ses(OSSL_CMP_CTX *ctx); +/* from cmp_genm.c */ +int OSSL_CMP_get1_caCerts(OSSL_CMP_CTX *ctx, STACK_OF(X509) **out); +int OSSL_CMP_get1_rootCaKeyUpdate(OSSL_CMP_CTX *ctx, + const X509 *oldWithOld, X509 **newWithNew, + X509 **newWithOld, X509 **oldWithNew); +int OSSL_CMP_get1_crlUpdate(OSSL_CMP_CTX *ctx, const X509 *crlcert, + const X509_CRL *last_crl, + X509_CRL **crl); +int OSSL_CMP_get1_certReqTemplate(OSSL_CMP_CTX *ctx, + OSSL_CRMF_CERTTEMPLATE **certTemplate, + OSSL_CMP_ATAVS **keySpec); + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/linux-aarch64/asm_avx2/include/openssl/cms.h b/deps/openssl/config/archs/linux-aarch64/asm_avx2/include/openssl/cms.h index 3b453e6a2187a2..63afab563557b0 100644 --- a/deps/openssl/config/archs/linux-aarch64/asm_avx2/include/openssl/cms.h +++ b/deps/openssl/config/archs/linux-aarch64/asm_avx2/include/openssl/cms.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/cms.h.in * - * Copyright 2008-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2008-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -31,8 +31,10 @@ extern "C" { # endif +typedef struct CMS_EnvelopedData_st CMS_EnvelopedData; typedef struct CMS_ContentInfo_st CMS_ContentInfo; typedef struct CMS_SignerInfo_st CMS_SignerInfo; +typedef struct CMS_SignedData_st CMS_SignedData; typedef struct CMS_CertificateChoices CMS_CertificateChoices; typedef struct CMS_RevocationInfoChoice_st CMS_RevocationInfoChoice; typedef struct CMS_RecipientInfo_st CMS_RecipientInfo; @@ -147,10 +149,14 @@ SKM_DEFINE_STACK_OF_INTERNAL(CMS_RevocationInfoChoice, CMS_RevocationInfoChoice, #define sk_CMS_RevocationInfoChoice_set_cmp_func(sk, cmp) ((sk_CMS_RevocationInfoChoice_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_CMS_RevocationInfoChoice_sk_type(sk), ossl_check_CMS_RevocationInfoChoice_compfunc_type(cmp))) +DECLARE_ASN1_ITEM(CMS_EnvelopedData) +DECLARE_ASN1_ALLOC_FUNCTIONS(CMS_SignedData) DECLARE_ASN1_FUNCTIONS(CMS_ContentInfo) DECLARE_ASN1_FUNCTIONS(CMS_ReceiptRequest) DECLARE_ASN1_PRINT_FUNCTION(CMS_ContentInfo) +DECLARE_ASN1_DUP_FUNCTION(CMS_EnvelopedData) + CMS_ContentInfo *CMS_ContentInfo_new_ex(OSSL_LIB_CTX *libctx, const char *propq); # define CMS_SIGNERINFO_ISSUER_SERIAL 0 @@ -190,6 +196,7 @@ CMS_ContentInfo *CMS_ContentInfo_new_ex(OSSL_LIB_CTX *libctx, const char *propq) # define CMS_ASCIICRLF 0x80000 # define CMS_CADES 0x100000 # define CMS_USE_ORIGINATOR_KEYID 0x200000 +# define CMS_NO_SIGNING_TIME 0x400000 const ASN1_OBJECT *CMS_get0_type(const CMS_ContentInfo *cms); @@ -217,13 +224,16 @@ int SMIME_write_CMS(BIO *bio, CMS_ContentInfo *cms, BIO *data, int flags); int CMS_final(CMS_ContentInfo *cms, BIO *data, BIO *dcont, unsigned int flags); +int CMS_final_digest(CMS_ContentInfo *cms, + const unsigned char *md, unsigned int mdlen, BIO *dcont, + unsigned int flags); CMS_ContentInfo *CMS_sign(X509 *signcert, EVP_PKEY *pkey, STACK_OF(X509) *certs, BIO *data, unsigned int flags); CMS_ContentInfo *CMS_sign_ex(X509 *signcert, EVP_PKEY *pkey, STACK_OF(X509) *certs, BIO *data, - unsigned int flags, OSSL_LIB_CTX *ctx, + unsigned int flags, OSSL_LIB_CTX *libctx, const char *propq); CMS_ContentInfo *CMS_sign_receipt(CMS_SignerInfo *si, @@ -233,27 +243,26 @@ CMS_ContentInfo *CMS_sign_receipt(CMS_SignerInfo *si, int CMS_data(CMS_ContentInfo *cms, BIO *out, unsigned int flags); CMS_ContentInfo *CMS_data_create(BIO *in, unsigned int flags); CMS_ContentInfo *CMS_data_create_ex(BIO *in, unsigned int flags, - OSSL_LIB_CTX *ctx, const char *propq); + OSSL_LIB_CTX *libctx, const char *propq); int CMS_digest_verify(CMS_ContentInfo *cms, BIO *dcont, BIO *out, unsigned int flags); CMS_ContentInfo *CMS_digest_create(BIO *in, const EVP_MD *md, unsigned int flags); CMS_ContentInfo *CMS_digest_create_ex(BIO *in, const EVP_MD *md, - unsigned int flags, OSSL_LIB_CTX *ctx, + unsigned int flags, OSSL_LIB_CTX *libctx, const char *propq); int CMS_EncryptedData_decrypt(CMS_ContentInfo *cms, const unsigned char *key, size_t keylen, BIO *dcont, BIO *out, unsigned int flags); - CMS_ContentInfo *CMS_EncryptedData_encrypt(BIO *in, const EVP_CIPHER *cipher, const unsigned char *key, size_t keylen, unsigned int flags); CMS_ContentInfo *CMS_EncryptedData_encrypt_ex(BIO *in, const EVP_CIPHER *cipher, const unsigned char *key, size_t keylen, unsigned int flags, - OSSL_LIB_CTX *ctx, + OSSL_LIB_CTX *libctx, const char *propq); int CMS_EncryptedData_set1_key(CMS_ContentInfo *cms, const EVP_CIPHER *ciph, @@ -272,7 +281,7 @@ CMS_ContentInfo *CMS_encrypt(STACK_OF(X509) *certs, BIO *in, const EVP_CIPHER *cipher, unsigned int flags); CMS_ContentInfo *CMS_encrypt_ex(STACK_OF(X509) *certs, BIO *in, const EVP_CIPHER *cipher, unsigned int flags, - OSSL_LIB_CTX *ctx, const char *propq); + OSSL_LIB_CTX *libctx, const char *propq); int CMS_decrypt(CMS_ContentInfo *cms, EVP_PKEY *pkey, X509 *cert, BIO *dcont, BIO *out, unsigned int flags); @@ -291,12 +300,16 @@ int CMS_RecipientInfo_type(CMS_RecipientInfo *ri); EVP_PKEY_CTX *CMS_RecipientInfo_get0_pkey_ctx(CMS_RecipientInfo *ri); CMS_ContentInfo *CMS_AuthEnvelopedData_create(const EVP_CIPHER *cipher); CMS_ContentInfo * -CMS_AuthEnvelopedData_create_ex(const EVP_CIPHER *cipher, OSSL_LIB_CTX *ctx, +CMS_AuthEnvelopedData_create_ex(const EVP_CIPHER *cipher, OSSL_LIB_CTX *libctx, const char *propq); CMS_ContentInfo *CMS_EnvelopedData_create(const EVP_CIPHER *cipher); CMS_ContentInfo *CMS_EnvelopedData_create_ex(const EVP_CIPHER *cipher, - OSSL_LIB_CTX *ctx, + OSSL_LIB_CTX *libctx, const char *propq); +BIO *CMS_EnvelopedData_decrypt(CMS_EnvelopedData *env, BIO *detached_data, + EVP_PKEY *pkey, X509 *cert, + ASN1_OCTET_STRING *secret, unsigned int flags, + OSSL_LIB_CTX *libctx, const char *propq); CMS_RecipientInfo *CMS_add1_recipient_cert(CMS_ContentInfo *cms, X509 *recip, unsigned int flags); @@ -385,6 +398,11 @@ ASN1_OCTET_STRING *CMS_SignerInfo_get0_signature(CMS_SignerInfo *si); int CMS_SignerInfo_sign(CMS_SignerInfo *si); int CMS_SignerInfo_verify(CMS_SignerInfo *si); int CMS_SignerInfo_verify_content(CMS_SignerInfo *si, BIO *chain); +BIO *CMS_SignedData_verify(CMS_SignedData *sd, BIO *detached_data, + STACK_OF(X509) *scerts, X509_STORE *store, + STACK_OF(X509) *extra, STACK_OF(X509_CRL) *crls, + unsigned int flags, + OSSL_LIB_CTX *libctx, const char *propq); int CMS_add_smimecap(CMS_SignerInfo *si, STACK_OF(X509_ALGOR) *algs); int CMS_add_simple_smimecap(STACK_OF(X509_ALGOR) **algs, @@ -441,7 +459,7 @@ CMS_ReceiptRequest *CMS_ReceiptRequest_create0_ex( unsigned char *id, int idlen, int allorfirst, STACK_OF(GENERAL_NAMES) *receiptList, STACK_OF(GENERAL_NAMES) *receiptsTo, - OSSL_LIB_CTX *ctx); + OSSL_LIB_CTX *libctx); int CMS_add1_ReceiptRequest(CMS_SignerInfo *si, CMS_ReceiptRequest *rr); void CMS_ReceiptRequest_get0_values(CMS_ReceiptRequest *rr, diff --git a/deps/openssl/config/archs/linux-aarch64/asm_avx2/include/openssl/comp.h b/deps/openssl/config/archs/linux-aarch64/asm_avx2/include/openssl/comp.h new file mode 100644 index 00000000000000..90e39511fe8d28 --- /dev/null +++ b/deps/openssl/config/archs/linux-aarch64/asm_avx2/include/openssl/comp.h @@ -0,0 +1,98 @@ +/* + * Copyright 2015-2024 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + + +#ifndef OPENSSL_COMP_H +# define OPENSSL_COMP_H +# pragma once + +# include +# ifndef OPENSSL_NO_DEPRECATED_3_0 +# define HEADER_COMP_H +# endif + +# include + +# include +# include +# ifdef __cplusplus +extern "C" { +# endif + + + +# ifndef OPENSSL_NO_COMP + +COMP_CTX *COMP_CTX_new(COMP_METHOD *meth); +const COMP_METHOD *COMP_CTX_get_method(const COMP_CTX *ctx); +int COMP_CTX_get_type(const COMP_CTX* comp); +int COMP_get_type(const COMP_METHOD *meth); +const char *COMP_get_name(const COMP_METHOD *meth); +void COMP_CTX_free(COMP_CTX *ctx); + +int COMP_compress_block(COMP_CTX *ctx, unsigned char *out, int olen, + unsigned char *in, int ilen); +int COMP_expand_block(COMP_CTX *ctx, unsigned char *out, int olen, + unsigned char *in, int ilen); + +COMP_METHOD *COMP_zlib(void); +COMP_METHOD *COMP_zlib_oneshot(void); +COMP_METHOD *COMP_brotli(void); +COMP_METHOD *COMP_brotli_oneshot(void); +COMP_METHOD *COMP_zstd(void); +COMP_METHOD *COMP_zstd_oneshot(void); + +# ifndef OPENSSL_NO_DEPRECATED_1_1_0 +# define COMP_zlib_cleanup() while(0) continue +# endif + +# ifdef OPENSSL_BIO_H +const BIO_METHOD *BIO_f_zlib(void); +const BIO_METHOD *BIO_f_brotli(void); +const BIO_METHOD *BIO_f_zstd(void); +# endif + +# endif + +typedef struct ssl_comp_st SSL_COMP; + +SKM_DEFINE_STACK_OF_INTERNAL(SSL_COMP, SSL_COMP, SSL_COMP) +#define sk_SSL_COMP_num(sk) OPENSSL_sk_num(ossl_check_const_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_value(sk, idx) ((SSL_COMP *)OPENSSL_sk_value(ossl_check_const_SSL_COMP_sk_type(sk), (idx))) +#define sk_SSL_COMP_new(cmp) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new(ossl_check_SSL_COMP_compfunc_type(cmp))) +#define sk_SSL_COMP_new_null() ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new_null()) +#define sk_SSL_COMP_new_reserve(cmp, n) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new_reserve(ossl_check_SSL_COMP_compfunc_type(cmp), (n))) +#define sk_SSL_COMP_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_SSL_COMP_sk_type(sk), (n)) +#define sk_SSL_COMP_free(sk) OPENSSL_sk_free(ossl_check_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_zero(sk) OPENSSL_sk_zero(ossl_check_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_delete(sk, i) ((SSL_COMP *)OPENSSL_sk_delete(ossl_check_SSL_COMP_sk_type(sk), (i))) +#define sk_SSL_COMP_delete_ptr(sk, ptr) ((SSL_COMP *)OPENSSL_sk_delete_ptr(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr))) +#define sk_SSL_COMP_push(sk, ptr) OPENSSL_sk_push(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) +#define sk_SSL_COMP_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) +#define sk_SSL_COMP_pop(sk) ((SSL_COMP *)OPENSSL_sk_pop(ossl_check_SSL_COMP_sk_type(sk))) +#define sk_SSL_COMP_shift(sk) ((SSL_COMP *)OPENSSL_sk_shift(ossl_check_SSL_COMP_sk_type(sk))) +#define sk_SSL_COMP_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_SSL_COMP_sk_type(sk),ossl_check_SSL_COMP_freefunc_type(freefunc)) +#define sk_SSL_COMP_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr), (idx)) +#define sk_SSL_COMP_set(sk, idx, ptr) ((SSL_COMP *)OPENSSL_sk_set(ossl_check_SSL_COMP_sk_type(sk), (idx), ossl_check_SSL_COMP_type(ptr))) +#define sk_SSL_COMP_find(sk, ptr) OPENSSL_sk_find(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) +#define sk_SSL_COMP_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) +#define sk_SSL_COMP_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr), pnum) +#define sk_SSL_COMP_sort(sk) OPENSSL_sk_sort(ossl_check_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_dup(sk) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_dup(ossl_check_const_SSL_COMP_sk_type(sk))) +#define sk_SSL_COMP_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_deep_copy(ossl_check_const_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_copyfunc_type(copyfunc), ossl_check_SSL_COMP_freefunc_type(freefunc))) +#define sk_SSL_COMP_set_cmp_func(sk, cmp) ((sk_SSL_COMP_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_compfunc_type(cmp))) + + + +# ifdef __cplusplus +} +# endif +#endif diff --git a/deps/openssl/config/archs/linux-aarch64/asm_avx2/include/openssl/conf.h b/deps/openssl/config/archs/linux-aarch64/asm_avx2/include/openssl/conf.h index 44989929f6c84a..38576290bf641b 100644 --- a/deps/openssl/config/archs/linux-aarch64/asm_avx2/include/openssl/conf.h +++ b/deps/openssl/config/archs/linux-aarch64/asm_avx2/include/openssl/conf.h @@ -27,6 +27,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -65,7 +68,7 @@ SKM_DEFINE_STACK_OF_INTERNAL(CONF_VALUE, CONF_VALUE, CONF_VALUE) #define sk_CONF_VALUE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(CONF_VALUE) *)OPENSSL_sk_deep_copy(ossl_check_const_CONF_VALUE_sk_type(sk), ossl_check_CONF_VALUE_copyfunc_type(copyfunc), ossl_check_CONF_VALUE_freefunc_type(freefunc))) #define sk_CONF_VALUE_set_cmp_func(sk, cmp) ((sk_CONF_VALUE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_CONF_VALUE_sk_type(sk), ossl_check_CONF_VALUE_compfunc_type(cmp))) DEFINE_LHASH_OF_INTERNAL(CONF_VALUE); -#define lh_CONF_VALUE_new(hfn, cmp) ((LHASH_OF(CONF_VALUE) *)OPENSSL_LH_new(ossl_check_CONF_VALUE_lh_hashfunc_type(hfn), ossl_check_CONF_VALUE_lh_compfunc_type(cmp))) +#define lh_CONF_VALUE_new(hfn, cmp) ((LHASH_OF(CONF_VALUE) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new(ossl_check_CONF_VALUE_lh_hashfunc_type(hfn), ossl_check_CONF_VALUE_lh_compfunc_type(cmp)), lh_CONF_VALUE_hash_thunk, lh_CONF_VALUE_comp_thunk, lh_CONF_VALUE_doall_thunk, lh_CONF_VALUE_doall_arg_thunk)) #define lh_CONF_VALUE_free(lh) OPENSSL_LH_free(ossl_check_CONF_VALUE_lh_type(lh)) #define lh_CONF_VALUE_flush(lh) OPENSSL_LH_flush(ossl_check_CONF_VALUE_lh_type(lh)) #define lh_CONF_VALUE_insert(lh, ptr) ((CONF_VALUE *)OPENSSL_LH_insert(ossl_check_CONF_VALUE_lh_type(lh), ossl_check_CONF_VALUE_lh_plain_type(ptr))) diff --git a/deps/openssl/config/archs/linux-aarch64/asm_avx2/include/openssl/configuration.h b/deps/openssl/config/archs/linux-aarch64/asm_avx2/include/openssl/configuration.h index 7e98fd6393d664..b34c3caf44265e 100644 --- a/deps/openssl/config/archs/linux-aarch64/asm_avx2/include/openssl/configuration.h +++ b/deps/openssl/config/archs/linux-aarch64/asm_avx2/include/openssl/configuration.h @@ -27,7 +27,7 @@ extern "C" { * OpenSSL was configured with the following options: */ -# define OPENSSL_CONFIGURED_API 30000 +# define OPENSSL_CONFIGURED_API 30500 # ifndef OPENSSL_RAND_SEED_OS # define OPENSSL_RAND_SEED_OS # endif @@ -40,6 +40,12 @@ extern "C" { # ifndef OPENSSL_NO_ASAN # define OPENSSL_NO_ASAN # endif +# ifndef OPENSSL_NO_BROTLI +# define OPENSSL_NO_BROTLI +# endif +# ifndef OPENSSL_NO_BROTLI_DYNAMIC +# define OPENSSL_NO_BROTLI_DYNAMIC +# endif # ifndef OPENSSL_NO_COMP # define OPENSSL_NO_COMP # endif @@ -49,6 +55,9 @@ extern "C" { # ifndef OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE # define OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE # endif +# ifndef OPENSSL_NO_DEMOS +# define OPENSSL_NO_DEMOS +# endif # ifndef OPENSSL_NO_DEVCRYPTOENG # define OPENSSL_NO_DEVCRYPTOENG # endif @@ -61,12 +70,24 @@ extern "C" { # ifndef OPENSSL_NO_EXTERNAL_TESTS # define OPENSSL_NO_EXTERNAL_TESTS # endif +# ifndef OPENSSL_NO_FIPS_JITTER +# define OPENSSL_NO_FIPS_JITTER +# endif # ifndef OPENSSL_NO_FUZZ_AFL # define OPENSSL_NO_FUZZ_AFL # endif # ifndef OPENSSL_NO_FUZZ_LIBFUZZER # define OPENSSL_NO_FUZZ_LIBFUZZER # endif +# ifndef OPENSSL_NO_H3DEMO +# define OPENSSL_NO_H3DEMO +# endif +# ifndef OPENSSL_NO_HQINTEROP +# define OPENSSL_NO_HQINTEROP +# endif +# ifndef OPENSSL_NO_JITTER +# define OPENSSL_NO_JITTER +# endif # ifndef OPENSSL_NO_KTLS # define OPENSSL_NO_KTLS # endif @@ -79,6 +100,9 @@ extern "C" { # ifndef OPENSSL_NO_MSAN # define OPENSSL_NO_MSAN # endif +# ifndef OPENSSL_NO_PIE +# define OPENSSL_NO_PIE +# endif # ifndef OPENSSL_NO_RC5 # define OPENSSL_NO_RC5 # endif @@ -91,6 +115,12 @@ extern "C" { # ifndef OPENSSL_NO_SSL3_METHOD # define OPENSSL_NO_SSL3_METHOD # endif +# ifndef OPENSSL_NO_SSLKEYLOG +# define OPENSSL_NO_SSLKEYLOG +# endif +# ifndef OPENSSL_NO_TFO +# define OPENSSL_NO_TFO +# endif # ifndef OPENSSL_NO_TRACE # define OPENSSL_NO_TRACE # endif @@ -106,6 +136,21 @@ extern "C" { # ifndef OPENSSL_NO_WEAK_SSL_CIPHERS # define OPENSSL_NO_WEAK_SSL_CIPHERS # endif +# ifndef OPENSSL_NO_WINSTORE +# define OPENSSL_NO_WINSTORE +# endif +# ifndef OPENSSL_NO_ZLIB +# define OPENSSL_NO_ZLIB +# endif +# ifndef OPENSSL_NO_ZLIB_DYNAMIC +# define OPENSSL_NO_ZLIB_DYNAMIC +# endif +# ifndef OPENSSL_NO_ZSTD +# define OPENSSL_NO_ZSTD +# endif +# ifndef OPENSSL_NO_ZSTD_DYNAMIC +# define OPENSSL_NO_ZSTD_DYNAMIC +# endif # ifndef OPENSSL_NO_DYNAMIC_ENGINE # define OPENSSL_NO_DYNAMIC_ENGINE # endif @@ -127,6 +172,12 @@ extern "C" { # define RC4_INT unsigned char +# if defined(OPENSSL_NO_COMP) || (defined(OPENSSL_NO_BROTLI) && defined(OPENSSL_NO_ZSTD) && defined(OPENSSL_NO_ZLIB)) +# define OPENSSL_NO_COMP_ALG +# else +# undef OPENSSL_NO_COMP_ALG +# endif + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/linux-aarch64/asm_avx2/include/openssl/core_names.h b/deps/openssl/config/archs/linux-aarch64/asm_avx2/include/openssl/core_names.h new file mode 100644 index 00000000000000..e93e79a52bc910 --- /dev/null +++ b/deps/openssl/config/archs/linux-aarch64/asm_avx2/include/openssl/core_names.h @@ -0,0 +1,575 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from include/openssl/core_names.h.in + * + * Copyright 2019-2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + +#ifndef OPENSSL_CORE_NAMES_H +# define OPENSSL_CORE_NAMES_H +# pragma once + +# ifdef __cplusplus +extern "C" { +# endif + +/* OSSL_CIPHER_PARAM_CTS_MODE Values */ +# define OSSL_CIPHER_CTS_MODE_CS1 "CS1" +# define OSSL_CIPHER_CTS_MODE_CS2 "CS2" +# define OSSL_CIPHER_CTS_MODE_CS3 "CS3" + +/* Known CIPHER names (not a complete list) */ +# define OSSL_CIPHER_NAME_AES_128_GCM_SIV "AES-128-GCM-SIV" +# define OSSL_CIPHER_NAME_AES_192_GCM_SIV "AES-192-GCM-SIV" +# define OSSL_CIPHER_NAME_AES_256_GCM_SIV "AES-256-GCM-SIV" + +/* Known DIGEST names (not a complete list) */ +# define OSSL_DIGEST_NAME_MD5 "MD5" +# define OSSL_DIGEST_NAME_MD5_SHA1 "MD5-SHA1" +# define OSSL_DIGEST_NAME_SHA1 "SHA1" +# define OSSL_DIGEST_NAME_SHA2_224 "SHA2-224" +# define OSSL_DIGEST_NAME_SHA2_256 "SHA2-256" +# define OSSL_DIGEST_NAME_SHA2_256_192 "SHA2-256/192" +# define OSSL_DIGEST_NAME_SHA2_384 "SHA2-384" +# define OSSL_DIGEST_NAME_SHA2_512 "SHA2-512" +# define OSSL_DIGEST_NAME_SHA2_512_224 "SHA2-512/224" +# define OSSL_DIGEST_NAME_SHA2_512_256 "SHA2-512/256" +# define OSSL_DIGEST_NAME_MD2 "MD2" +# define OSSL_DIGEST_NAME_MD4 "MD4" +# define OSSL_DIGEST_NAME_MDC2 "MDC2" +# define OSSL_DIGEST_NAME_RIPEMD160 "RIPEMD160" +# define OSSL_DIGEST_NAME_SHA3_224 "SHA3-224" +# define OSSL_DIGEST_NAME_SHA3_256 "SHA3-256" +# define OSSL_DIGEST_NAME_SHA3_384 "SHA3-384" +# define OSSL_DIGEST_NAME_SHA3_512 "SHA3-512" +# define OSSL_DIGEST_NAME_KECCAK_KMAC128 "KECCAK-KMAC-128" +# define OSSL_DIGEST_NAME_KECCAK_KMAC256 "KECCAK-KMAC-256" +# define OSSL_DIGEST_NAME_SM3 "SM3" + +/* Known MAC names */ +# define OSSL_MAC_NAME_BLAKE2BMAC "BLAKE2BMAC" +# define OSSL_MAC_NAME_BLAKE2SMAC "BLAKE2SMAC" +# define OSSL_MAC_NAME_CMAC "CMAC" +# define OSSL_MAC_NAME_GMAC "GMAC" +# define OSSL_MAC_NAME_HMAC "HMAC" +# define OSSL_MAC_NAME_KMAC128 "KMAC128" +# define OSSL_MAC_NAME_KMAC256 "KMAC256" +# define OSSL_MAC_NAME_POLY1305 "POLY1305" +# define OSSL_MAC_NAME_SIPHASH "SIPHASH" + +/* Known KDF names */ +# define OSSL_KDF_NAME_HKDF "HKDF" +# define OSSL_KDF_NAME_TLS1_3_KDF "TLS13-KDF" +# define OSSL_KDF_NAME_PBKDF1 "PBKDF1" +# define OSSL_KDF_NAME_PBKDF2 "PBKDF2" +# define OSSL_KDF_NAME_SCRYPT "SCRYPT" +# define OSSL_KDF_NAME_SSHKDF "SSHKDF" +# define OSSL_KDF_NAME_SSKDF "SSKDF" +# define OSSL_KDF_NAME_TLS1_PRF "TLS1-PRF" +# define OSSL_KDF_NAME_X942KDF_ASN1 "X942KDF-ASN1" +# define OSSL_KDF_NAME_X942KDF_CONCAT "X942KDF-CONCAT" +# define OSSL_KDF_NAME_X963KDF "X963KDF" +# define OSSL_KDF_NAME_KBKDF "KBKDF" +# define OSSL_KDF_NAME_KRB5KDF "KRB5KDF" +# define OSSL_KDF_NAME_HMACDRBGKDF "HMAC-DRBG-KDF" + +/* RSA padding modes */ +# define OSSL_PKEY_RSA_PAD_MODE_NONE "none" +# define OSSL_PKEY_RSA_PAD_MODE_PKCSV15 "pkcs1" +# define OSSL_PKEY_RSA_PAD_MODE_OAEP "oaep" +# define OSSL_PKEY_RSA_PAD_MODE_X931 "x931" +# define OSSL_PKEY_RSA_PAD_MODE_PSS "pss" + +/* RSA pss padding salt length */ +# define OSSL_PKEY_RSA_PSS_SALT_LEN_DIGEST "digest" +# define OSSL_PKEY_RSA_PSS_SALT_LEN_MAX "max" +# define OSSL_PKEY_RSA_PSS_SALT_LEN_AUTO "auto" +# define OSSL_PKEY_RSA_PSS_SALT_LEN_AUTO_DIGEST_MAX "auto-digestmax" + +/* OSSL_PKEY_PARAM_EC_ENCODING values */ +# define OSSL_PKEY_EC_ENCODING_EXPLICIT "explicit" +# define OSSL_PKEY_EC_ENCODING_GROUP "named_curve" + +# define OSSL_PKEY_EC_POINT_CONVERSION_FORMAT_UNCOMPRESSED "uncompressed" +# define OSSL_PKEY_EC_POINT_CONVERSION_FORMAT_COMPRESSED "compressed" +# define OSSL_PKEY_EC_POINT_CONVERSION_FORMAT_HYBRID "hybrid" + +# define OSSL_PKEY_EC_GROUP_CHECK_DEFAULT "default" +# define OSSL_PKEY_EC_GROUP_CHECK_NAMED "named" +# define OSSL_PKEY_EC_GROUP_CHECK_NAMED_NIST "named-nist" + +/* PROV_SKEY well known key types */ +# define OSSL_SKEY_TYPE_GENERIC "GENERIC-SECRET" +# define OSSL_SKEY_TYPE_AES "AES" + +/* OSSL_KEM_PARAM_OPERATION values */ +#define OSSL_KEM_PARAM_OPERATION_RSASVE "RSASVE" +#define OSSL_KEM_PARAM_OPERATION_DHKEM "DHKEM" + +/* Provider configuration variables */ +#define OSSL_PKEY_RETAIN_SEED "pkey_retain_seed" + +/* Parameter name definitions - generated by util/perl/OpenSSL/paramnames.pm */ +# define OSSL_ALG_PARAM_ALGORITHM_ID "algorithm-id" +# define OSSL_ALG_PARAM_ALGORITHM_ID_PARAMS "algorithm-id-params" +# define OSSL_ALG_PARAM_CIPHER "cipher" +# define OSSL_ALG_PARAM_DIGEST "digest" +# define OSSL_ALG_PARAM_ENGINE "engine" +# define OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR "fips-indicator" +# define OSSL_ALG_PARAM_MAC "mac" +# define OSSL_ALG_PARAM_PROPERTIES "properties" +# define OSSL_ASYM_CIPHER_PARAM_DIGEST OSSL_PKEY_PARAM_DIGEST +# define OSSL_ASYM_CIPHER_PARAM_ENGINE OSSL_PKEY_PARAM_ENGINE +# define OSSL_ASYM_CIPHER_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_ASYM_CIPHER_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_ASYM_CIPHER_PARAM_FIPS_RSA_PKCS15_PAD_DISABLED OSSL_PROV_PARAM_RSA_PKCS15_PAD_DISABLED +# define OSSL_ASYM_CIPHER_PARAM_IMPLICIT_REJECTION "implicit-rejection" +# define OSSL_ASYM_CIPHER_PARAM_MGF1_DIGEST OSSL_PKEY_PARAM_MGF1_DIGEST +# define OSSL_ASYM_CIPHER_PARAM_MGF1_DIGEST_PROPS OSSL_PKEY_PARAM_MGF1_PROPERTIES +# define OSSL_ASYM_CIPHER_PARAM_OAEP_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_ASYM_CIPHER_PARAM_OAEP_DIGEST_PROPS "digest-props" +# define OSSL_ASYM_CIPHER_PARAM_OAEP_LABEL "oaep-label" +# define OSSL_ASYM_CIPHER_PARAM_PAD_MODE OSSL_PKEY_PARAM_PAD_MODE +# define OSSL_ASYM_CIPHER_PARAM_PROPERTIES OSSL_PKEY_PARAM_PROPERTIES +# define OSSL_ASYM_CIPHER_PARAM_TLS_CLIENT_VERSION "tls-client-version" +# define OSSL_ASYM_CIPHER_PARAM_TLS_NEGOTIATED_VERSION "tls-negotiated-version" +# define OSSL_CAPABILITY_TLS_GROUP_ALG "tls-group-alg" +# define OSSL_CAPABILITY_TLS_GROUP_ID "tls-group-id" +# define OSSL_CAPABILITY_TLS_GROUP_IS_KEM "tls-group-is-kem" +# define OSSL_CAPABILITY_TLS_GROUP_MAX_DTLS "tls-max-dtls" +# define OSSL_CAPABILITY_TLS_GROUP_MAX_TLS "tls-max-tls" +# define OSSL_CAPABILITY_TLS_GROUP_MIN_DTLS "tls-min-dtls" +# define OSSL_CAPABILITY_TLS_GROUP_MIN_TLS "tls-min-tls" +# define OSSL_CAPABILITY_TLS_GROUP_NAME "tls-group-name" +# define OSSL_CAPABILITY_TLS_GROUP_NAME_INTERNAL "tls-group-name-internal" +# define OSSL_CAPABILITY_TLS_GROUP_SECURITY_BITS "tls-group-sec-bits" +# define OSSL_CAPABILITY_TLS_SIGALG_CODE_POINT "tls-sigalg-code-point" +# define OSSL_CAPABILITY_TLS_SIGALG_HASH_NAME "tls-sigalg-hash-name" +# define OSSL_CAPABILITY_TLS_SIGALG_HASH_OID "tls-sigalg-hash-oid" +# define OSSL_CAPABILITY_TLS_SIGALG_IANA_NAME "tls-sigalg-iana-name" +# define OSSL_CAPABILITY_TLS_SIGALG_KEYTYPE "tls-sigalg-keytype" +# define OSSL_CAPABILITY_TLS_SIGALG_KEYTYPE_OID "tls-sigalg-keytype-oid" +# define OSSL_CAPABILITY_TLS_SIGALG_MAX_DTLS "tls-max-dtls" +# define OSSL_CAPABILITY_TLS_SIGALG_MAX_TLS "tls-max-tls" +# define OSSL_CAPABILITY_TLS_SIGALG_MIN_DTLS "tls-min-dtls" +# define OSSL_CAPABILITY_TLS_SIGALG_MIN_TLS "tls-min-tls" +# define OSSL_CAPABILITY_TLS_SIGALG_NAME "tls-sigalg-name" +# define OSSL_CAPABILITY_TLS_SIGALG_OID "tls-sigalg-oid" +# define OSSL_CAPABILITY_TLS_SIGALG_SECURITY_BITS "tls-sigalg-sec-bits" +# define OSSL_CAPABILITY_TLS_SIGALG_SIG_NAME "tls-sigalg-sig-name" +# define OSSL_CAPABILITY_TLS_SIGALG_SIG_OID "tls-sigalg-sig-oid" +# define OSSL_CIPHER_PARAM_AEAD "aead" +# define OSSL_CIPHER_PARAM_AEAD_IVLEN OSSL_CIPHER_PARAM_IVLEN +# define OSSL_CIPHER_PARAM_AEAD_IV_GENERATED "iv-generated" +# define OSSL_CIPHER_PARAM_AEAD_MAC_KEY "mackey" +# define OSSL_CIPHER_PARAM_AEAD_TAG "tag" +# define OSSL_CIPHER_PARAM_AEAD_TAGLEN "taglen" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_AAD "tlsaad" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_AAD_PAD "tlsaadpad" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_GET_IV_GEN "tlsivgen" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_IV_FIXED "tlsivfixed" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_SET_IV_INV "tlsivinv" +# define OSSL_CIPHER_PARAM_ALGORITHM_ID OSSL_ALG_PARAM_ALGORITHM_ID +# define OSSL_CIPHER_PARAM_ALGORITHM_ID_PARAMS OSSL_ALG_PARAM_ALGORITHM_ID_PARAMS +# define OSSL_CIPHER_PARAM_ALGORITHM_ID_PARAMS_OLD "alg_id_param" +# define OSSL_CIPHER_PARAM_BLOCK_SIZE "blocksize" +# define OSSL_CIPHER_PARAM_CTS "cts" +# define OSSL_CIPHER_PARAM_CTS_MODE "cts_mode" +# define OSSL_CIPHER_PARAM_CUSTOM_IV "custom-iv" +# define OSSL_CIPHER_PARAM_DECRYPT_ONLY "decrypt-only" +# define OSSL_CIPHER_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_CIPHER_PARAM_FIPS_ENCRYPT_CHECK "encrypt-check" +# define OSSL_CIPHER_PARAM_HAS_RAND_KEY "has-randkey" +# define OSSL_CIPHER_PARAM_IV "iv" +# define OSSL_CIPHER_PARAM_IVLEN "ivlen" +# define OSSL_CIPHER_PARAM_KEYLEN "keylen" +# define OSSL_CIPHER_PARAM_MODE "mode" +# define OSSL_CIPHER_PARAM_NUM "num" +# define OSSL_CIPHER_PARAM_PADDING "padding" +# define OSSL_CIPHER_PARAM_PIPELINE_AEAD_TAG "pipeline-tag" +# define OSSL_CIPHER_PARAM_RANDOM_KEY "randkey" +# define OSSL_CIPHER_PARAM_RC2_KEYBITS "keybits" +# define OSSL_CIPHER_PARAM_ROUNDS "rounds" +# define OSSL_CIPHER_PARAM_SPEED "speed" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK "tls-multi" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD "tls1multi_aad" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD_PACKLEN "tls1multi_aadpacklen" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC "tls1multi_enc" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_IN "tls1multi_encin" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_LEN "tls1multi_enclen" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_INTERLEAVE "tls1multi_interleave" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_BUFSIZE "tls1multi_maxbufsz" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_SEND_FRAGMENT "tls1multi_maxsndfrag" +# define OSSL_CIPHER_PARAM_TLS_MAC "tls-mac" +# define OSSL_CIPHER_PARAM_TLS_MAC_SIZE "tls-mac-size" +# define OSSL_CIPHER_PARAM_TLS_VERSION "tls-version" +# define OSSL_CIPHER_PARAM_UPDATED_IV "updated-iv" +# define OSSL_CIPHER_PARAM_USE_BITS "use-bits" +# define OSSL_CIPHER_PARAM_XTS_STANDARD "xts_standard" +# define OSSL_DECODER_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_DIGEST_PARAM_ALGID_ABSENT "algid-absent" +# define OSSL_DIGEST_PARAM_BLOCK_SIZE "blocksize" +# define OSSL_DIGEST_PARAM_MICALG "micalg" +# define OSSL_DIGEST_PARAM_PAD_TYPE "pad-type" +# define OSSL_DIGEST_PARAM_SIZE "size" +# define OSSL_DIGEST_PARAM_SSL3_MS "ssl3-ms" +# define OSSL_DIGEST_PARAM_XOF "xof" +# define OSSL_DIGEST_PARAM_XOFLEN "xoflen" +# define OSSL_DRBG_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_DRBG_PARAM_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_DRBG_PARAM_ENTROPY_REQUIRED "entropy_required" +# define OSSL_DRBG_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_DRBG_PARAM_FIPS_DIGEST_CHECK OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK +# define OSSL_DRBG_PARAM_MAC OSSL_ALG_PARAM_MAC +# define OSSL_DRBG_PARAM_MAX_ADINLEN "max_adinlen" +# define OSSL_DRBG_PARAM_MAX_ENTROPYLEN "max_entropylen" +# define OSSL_DRBG_PARAM_MAX_LENGTH "maxium_length" +# define OSSL_DRBG_PARAM_MAX_NONCELEN "max_noncelen" +# define OSSL_DRBG_PARAM_MAX_PERSLEN "max_perslen" +# define OSSL_DRBG_PARAM_MIN_ENTROPYLEN "min_entropylen" +# define OSSL_DRBG_PARAM_MIN_LENGTH "minium_length" +# define OSSL_DRBG_PARAM_MIN_NONCELEN "min_noncelen" +# define OSSL_DRBG_PARAM_PREDICTION_RESISTANCE "prediction_resistance" +# define OSSL_DRBG_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_DRBG_PARAM_RANDOM_DATA "random_data" +# define OSSL_DRBG_PARAM_RESEED_COUNTER "reseed_counter" +# define OSSL_DRBG_PARAM_RESEED_REQUESTS "reseed_requests" +# define OSSL_DRBG_PARAM_RESEED_TIME "reseed_time" +# define OSSL_DRBG_PARAM_RESEED_TIME_INTERVAL "reseed_time_interval" +# define OSSL_DRBG_PARAM_SIZE "size" +# define OSSL_DRBG_PARAM_USE_DF "use_derivation_function" +# define OSSL_ENCODER_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_ENCODER_PARAM_ENCRYPT_LEVEL "encrypt-level" +# define OSSL_ENCODER_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_ENCODER_PARAM_SAVE_PARAMETERS "save-parameters" +# define OSSL_EXCHANGE_PARAM_EC_ECDH_COFACTOR_MODE "ecdh-cofactor-mode" +# define OSSL_EXCHANGE_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_EXCHANGE_PARAM_FIPS_DIGEST_CHECK OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK +# define OSSL_EXCHANGE_PARAM_FIPS_ECDH_COFACTOR_CHECK OSSL_PROV_PARAM_ECDH_COFACTOR_CHECK +# define OSSL_EXCHANGE_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_EXCHANGE_PARAM_KDF_DIGEST "kdf-digest" +# define OSSL_EXCHANGE_PARAM_KDF_DIGEST_PROPS "kdf-digest-props" +# define OSSL_EXCHANGE_PARAM_KDF_OUTLEN "kdf-outlen" +# define OSSL_EXCHANGE_PARAM_KDF_TYPE "kdf-type" +# define OSSL_EXCHANGE_PARAM_KDF_UKM "kdf-ukm" +# define OSSL_EXCHANGE_PARAM_PAD "pad" +# define OSSL_GEN_PARAM_ITERATION "iteration" +# define OSSL_GEN_PARAM_POTENTIAL "potential" +# define OSSL_KDF_PARAM_ARGON2_AD "ad" +# define OSSL_KDF_PARAM_ARGON2_LANES "lanes" +# define OSSL_KDF_PARAM_ARGON2_MEMCOST "memcost" +# define OSSL_KDF_PARAM_ARGON2_VERSION "version" +# define OSSL_KDF_PARAM_CEK_ALG "cekalg" +# define OSSL_KDF_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_KDF_PARAM_CONSTANT "constant" +# define OSSL_KDF_PARAM_DATA "data" +# define OSSL_KDF_PARAM_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_KDF_PARAM_EARLY_CLEAN "early_clean" +# define OSSL_KDF_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_KDF_PARAM_FIPS_DIGEST_CHECK OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK +# define OSSL_KDF_PARAM_FIPS_EMS_CHECK "ems_check" +# define OSSL_KDF_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_KDF_PARAM_HMACDRBG_ENTROPY "entropy" +# define OSSL_KDF_PARAM_HMACDRBG_NONCE "nonce" +# define OSSL_KDF_PARAM_INFO "info" +# define OSSL_KDF_PARAM_ITER "iter" +# define OSSL_KDF_PARAM_KBKDF_R "r" +# define OSSL_KDF_PARAM_KBKDF_USE_L "use-l" +# define OSSL_KDF_PARAM_KBKDF_USE_SEPARATOR "use-separator" +# define OSSL_KDF_PARAM_KEY "key" +# define OSSL_KDF_PARAM_LABEL "label" +# define OSSL_KDF_PARAM_MAC OSSL_ALG_PARAM_MAC +# define OSSL_KDF_PARAM_MAC_SIZE "maclen" +# define OSSL_KDF_PARAM_MODE "mode" +# define OSSL_KDF_PARAM_PASSWORD "pass" +# define OSSL_KDF_PARAM_PKCS12_ID "id" +# define OSSL_KDF_PARAM_PKCS5 "pkcs5" +# define OSSL_KDF_PARAM_PREFIX "prefix" +# define OSSL_KDF_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_KDF_PARAM_SALT "salt" +# define OSSL_KDF_PARAM_SCRYPT_MAXMEM "maxmem_bytes" +# define OSSL_KDF_PARAM_SCRYPT_N "n" +# define OSSL_KDF_PARAM_SCRYPT_P "p" +# define OSSL_KDF_PARAM_SCRYPT_R "r" +# define OSSL_KDF_PARAM_SECRET "secret" +# define OSSL_KDF_PARAM_SEED "seed" +# define OSSL_KDF_PARAM_SIZE "size" +# define OSSL_KDF_PARAM_SSHKDF_SESSION_ID "session_id" +# define OSSL_KDF_PARAM_SSHKDF_TYPE "type" +# define OSSL_KDF_PARAM_SSHKDF_XCGHASH "xcghash" +# define OSSL_KDF_PARAM_THREADS "threads" +# define OSSL_KDF_PARAM_UKM "ukm" +# define OSSL_KDF_PARAM_X942_ACVPINFO "acvp-info" +# define OSSL_KDF_PARAM_X942_PARTYUINFO "partyu-info" +# define OSSL_KDF_PARAM_X942_PARTYVINFO "partyv-info" +# define OSSL_KDF_PARAM_X942_SUPP_PRIVINFO "supp-privinfo" +# define OSSL_KDF_PARAM_X942_SUPP_PUBINFO "supp-pubinfo" +# define OSSL_KDF_PARAM_X942_USE_KEYBITS "use-keybits" +# define OSSL_KEM_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_KEM_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_KEM_PARAM_IKME "ikme" +# define OSSL_KEM_PARAM_OPERATION "operation" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_BLOCK_PADDING "block_padding" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_HS_PADDING "hs_padding" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_MAX_EARLY_DATA "max_early_data" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_MAX_FRAG_LEN "max_frag_len" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_MODE "mode" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_OPTIONS "options" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_READ_AHEAD "read_ahead" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_STREAM_MAC "stream_mac" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_TLSTREE "tlstree" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_USE_ETM "use_etm" +# define OSSL_LIBSSL_RECORD_LAYER_READ_BUFFER_LEN "read_buffer_len" +# define OSSL_MAC_PARAM_BLOCK_SIZE "block-size" +# define OSSL_MAC_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_MAC_PARAM_CUSTOM "custom" +# define OSSL_MAC_PARAM_C_ROUNDS "c-rounds" +# define OSSL_MAC_PARAM_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_MAC_PARAM_DIGEST_NOINIT "digest-noinit" +# define OSSL_MAC_PARAM_DIGEST_ONESHOT "digest-oneshot" +# define OSSL_MAC_PARAM_D_ROUNDS "d-rounds" +# define OSSL_MAC_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_MAC_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_MAC_PARAM_FIPS_NO_SHORT_MAC OSSL_PROV_PARAM_NO_SHORT_MAC +# define OSSL_MAC_PARAM_IV "iv" +# define OSSL_MAC_PARAM_KEY "key" +# define OSSL_MAC_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_MAC_PARAM_SALT "salt" +# define OSSL_MAC_PARAM_SIZE "size" +# define OSSL_MAC_PARAM_TLS_DATA_SIZE "tls-data-size" +# define OSSL_MAC_PARAM_XOF "xof" +# define OSSL_OBJECT_PARAM_DATA "data" +# define OSSL_OBJECT_PARAM_DATA_STRUCTURE "data-structure" +# define OSSL_OBJECT_PARAM_DATA_TYPE "data-type" +# define OSSL_OBJECT_PARAM_DESC "desc" +# define OSSL_OBJECT_PARAM_INPUT_TYPE "input-type" +# define OSSL_OBJECT_PARAM_REFERENCE "reference" +# define OSSL_OBJECT_PARAM_TYPE "type" +# define OSSL_PASSPHRASE_PARAM_INFO "info" +# define OSSL_PKEY_PARAM_ALGORITHM_ID OSSL_ALG_PARAM_ALGORITHM_ID +# define OSSL_PKEY_PARAM_ALGORITHM_ID_PARAMS OSSL_ALG_PARAM_ALGORITHM_ID_PARAMS +# define OSSL_PKEY_PARAM_BITS "bits" +# define OSSL_PKEY_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_PKEY_PARAM_DEFAULT_DIGEST "default-digest" +# define OSSL_PKEY_PARAM_DHKEM_IKM "dhkem-ikm" +# define OSSL_PKEY_PARAM_DH_GENERATOR "safeprime-generator" +# define OSSL_PKEY_PARAM_DH_PRIV_LEN "priv_len" +# define OSSL_PKEY_PARAM_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_PKEY_PARAM_DIGEST_SIZE "digest-size" +# define OSSL_PKEY_PARAM_DIST_ID "distid" +# define OSSL_PKEY_PARAM_EC_A "a" +# define OSSL_PKEY_PARAM_EC_B "b" +# define OSSL_PKEY_PARAM_EC_CHAR2_M "m" +# define OSSL_PKEY_PARAM_EC_CHAR2_PP_K1 "k1" +# define OSSL_PKEY_PARAM_EC_CHAR2_PP_K2 "k2" +# define OSSL_PKEY_PARAM_EC_CHAR2_PP_K3 "k3" +# define OSSL_PKEY_PARAM_EC_CHAR2_TP_BASIS "tp" +# define OSSL_PKEY_PARAM_EC_CHAR2_TYPE "basis-type" +# define OSSL_PKEY_PARAM_EC_COFACTOR "cofactor" +# define OSSL_PKEY_PARAM_EC_DECODED_FROM_EXPLICIT_PARAMS "decoded-from-explicit" +# define OSSL_PKEY_PARAM_EC_ENCODING "encoding" +# define OSSL_PKEY_PARAM_EC_FIELD_TYPE "field-type" +# define OSSL_PKEY_PARAM_EC_GENERATOR "generator" +# define OSSL_PKEY_PARAM_EC_GROUP_CHECK_TYPE "group-check" +# define OSSL_PKEY_PARAM_EC_INCLUDE_PUBLIC "include-public" +# define OSSL_PKEY_PARAM_EC_ORDER "order" +# define OSSL_PKEY_PARAM_EC_P "p" +# define OSSL_PKEY_PARAM_EC_POINT_CONVERSION_FORMAT "point-format" +# define OSSL_PKEY_PARAM_EC_PUB_X "qx" +# define OSSL_PKEY_PARAM_EC_PUB_Y "qy" +# define OSSL_PKEY_PARAM_EC_SEED "seed" +# define OSSL_PKEY_PARAM_ENCODED_PUBLIC_KEY "encoded-pub-key" +# define OSSL_PKEY_PARAM_ENGINE OSSL_ALG_PARAM_ENGINE +# define OSSL_PKEY_PARAM_FFC_COFACTOR "j" +# define OSSL_PKEY_PARAM_FFC_DIGEST OSSL_PKEY_PARAM_DIGEST +# define OSSL_PKEY_PARAM_FFC_DIGEST_PROPS OSSL_PKEY_PARAM_PROPERTIES +# define OSSL_PKEY_PARAM_FFC_G "g" +# define OSSL_PKEY_PARAM_FFC_GINDEX "gindex" +# define OSSL_PKEY_PARAM_FFC_H "hindex" +# define OSSL_PKEY_PARAM_FFC_P "p" +# define OSSL_PKEY_PARAM_FFC_PBITS "pbits" +# define OSSL_PKEY_PARAM_FFC_PCOUNTER "pcounter" +# define OSSL_PKEY_PARAM_FFC_Q "q" +# define OSSL_PKEY_PARAM_FFC_QBITS "qbits" +# define OSSL_PKEY_PARAM_FFC_SEED "seed" +# define OSSL_PKEY_PARAM_FFC_TYPE "type" +# define OSSL_PKEY_PARAM_FFC_VALIDATE_G "validate-g" +# define OSSL_PKEY_PARAM_FFC_VALIDATE_LEGACY "validate-legacy" +# define OSSL_PKEY_PARAM_FFC_VALIDATE_PQ "validate-pq" +# define OSSL_PKEY_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK "digest-check" +# define OSSL_PKEY_PARAM_FIPS_KEY_CHECK "key-check" +# define OSSL_PKEY_PARAM_FIPS_SIGN_CHECK "sign-check" +# define OSSL_PKEY_PARAM_GROUP_NAME "group" +# define OSSL_PKEY_PARAM_IMPLICIT_REJECTION "implicit-rejection" +# define OSSL_PKEY_PARAM_MANDATORY_DIGEST "mandatory-digest" +# define OSSL_PKEY_PARAM_MASKGENFUNC "mgf" +# define OSSL_PKEY_PARAM_MAX_SIZE "max-size" +# define OSSL_PKEY_PARAM_MGF1_DIGEST "mgf1-digest" +# define OSSL_PKEY_PARAM_MGF1_PROPERTIES "mgf1-properties" +# define OSSL_PKEY_PARAM_ML_DSA_INPUT_FORMATS "ml-dsa.input_formats" +# define OSSL_PKEY_PARAM_ML_DSA_OUTPUT_FORMATS "ml-dsa.output_formats" +# define OSSL_PKEY_PARAM_ML_DSA_PREFER_SEED "ml-dsa.prefer_seed" +# define OSSL_PKEY_PARAM_ML_DSA_RETAIN_SEED "ml-dsa.retain_seed" +# define OSSL_PKEY_PARAM_ML_DSA_SEED "seed" +# define OSSL_PKEY_PARAM_ML_KEM_IMPORT_PCT_TYPE "ml-kem.import_pct_type" +# define OSSL_PKEY_PARAM_ML_KEM_INPUT_FORMATS "ml-kem.input_formats" +# define OSSL_PKEY_PARAM_ML_KEM_OUTPUT_FORMATS "ml-kem.output_formats" +# define OSSL_PKEY_PARAM_ML_KEM_PREFER_SEED "ml-kem.prefer_seed" +# define OSSL_PKEY_PARAM_ML_KEM_RETAIN_SEED "ml-kem.retain_seed" +# define OSSL_PKEY_PARAM_ML_KEM_SEED "seed" +# define OSSL_PKEY_PARAM_PAD_MODE "pad-mode" +# define OSSL_PKEY_PARAM_PRIV_KEY "priv" +# define OSSL_PKEY_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_PKEY_PARAM_PUB_KEY "pub" +# define OSSL_PKEY_PARAM_RSA_BITS OSSL_PKEY_PARAM_BITS +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT "rsa-coefficient" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT1 "rsa-coefficient1" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT2 "rsa-coefficient2" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT3 "rsa-coefficient3" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT4 "rsa-coefficient4" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT5 "rsa-coefficient5" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT6 "rsa-coefficient6" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT7 "rsa-coefficient7" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT8 "rsa-coefficient8" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT9 "rsa-coefficient9" +# define OSSL_PKEY_PARAM_RSA_D "d" +# define OSSL_PKEY_PARAM_RSA_DERIVE_FROM_PQ "rsa-derive-from-pq" +# define OSSL_PKEY_PARAM_RSA_DIGEST OSSL_PKEY_PARAM_DIGEST +# define OSSL_PKEY_PARAM_RSA_DIGEST_PROPS OSSL_PKEY_PARAM_PROPERTIES +# define OSSL_PKEY_PARAM_RSA_E "e" +# define OSSL_PKEY_PARAM_RSA_EXPONENT "rsa-exponent" +# define OSSL_PKEY_PARAM_RSA_EXPONENT1 "rsa-exponent1" +# define OSSL_PKEY_PARAM_RSA_EXPONENT10 "rsa-exponent10" +# define OSSL_PKEY_PARAM_RSA_EXPONENT2 "rsa-exponent2" +# define OSSL_PKEY_PARAM_RSA_EXPONENT3 "rsa-exponent3" +# define OSSL_PKEY_PARAM_RSA_EXPONENT4 "rsa-exponent4" +# define OSSL_PKEY_PARAM_RSA_EXPONENT5 "rsa-exponent5" +# define OSSL_PKEY_PARAM_RSA_EXPONENT6 "rsa-exponent6" +# define OSSL_PKEY_PARAM_RSA_EXPONENT7 "rsa-exponent7" +# define OSSL_PKEY_PARAM_RSA_EXPONENT8 "rsa-exponent8" +# define OSSL_PKEY_PARAM_RSA_EXPONENT9 "rsa-exponent9" +# define OSSL_PKEY_PARAM_RSA_FACTOR "rsa-factor" +# define OSSL_PKEY_PARAM_RSA_FACTOR1 "rsa-factor1" +# define OSSL_PKEY_PARAM_RSA_FACTOR10 "rsa-factor10" +# define OSSL_PKEY_PARAM_RSA_FACTOR2 "rsa-factor2" +# define OSSL_PKEY_PARAM_RSA_FACTOR3 "rsa-factor3" +# define OSSL_PKEY_PARAM_RSA_FACTOR4 "rsa-factor4" +# define OSSL_PKEY_PARAM_RSA_FACTOR5 "rsa-factor5" +# define OSSL_PKEY_PARAM_RSA_FACTOR6 "rsa-factor6" +# define OSSL_PKEY_PARAM_RSA_FACTOR7 "rsa-factor7" +# define OSSL_PKEY_PARAM_RSA_FACTOR8 "rsa-factor8" +# define OSSL_PKEY_PARAM_RSA_FACTOR9 "rsa-factor9" +# define OSSL_PKEY_PARAM_RSA_MASKGENFUNC OSSL_PKEY_PARAM_MASKGENFUNC +# define OSSL_PKEY_PARAM_RSA_MGF1_DIGEST OSSL_PKEY_PARAM_MGF1_DIGEST +# define OSSL_PKEY_PARAM_RSA_N "n" +# define OSSL_PKEY_PARAM_RSA_PRIMES "primes" +# define OSSL_PKEY_PARAM_RSA_PSS_SALTLEN "saltlen" +# define OSSL_PKEY_PARAM_RSA_TEST_P1 "p1" +# define OSSL_PKEY_PARAM_RSA_TEST_P2 "p2" +# define OSSL_PKEY_PARAM_RSA_TEST_Q1 "q1" +# define OSSL_PKEY_PARAM_RSA_TEST_Q2 "q2" +# define OSSL_PKEY_PARAM_RSA_TEST_XP "xp" +# define OSSL_PKEY_PARAM_RSA_TEST_XP1 "xp1" +# define OSSL_PKEY_PARAM_RSA_TEST_XP2 "xp2" +# define OSSL_PKEY_PARAM_RSA_TEST_XQ "xq" +# define OSSL_PKEY_PARAM_RSA_TEST_XQ1 "xq1" +# define OSSL_PKEY_PARAM_RSA_TEST_XQ2 "xq2" +# define OSSL_PKEY_PARAM_SECURITY_BITS "security-bits" +# define OSSL_PKEY_PARAM_SLH_DSA_SEED "seed" +# define OSSL_PKEY_PARAM_USE_COFACTOR_ECDH OSSL_PKEY_PARAM_USE_COFACTOR_FLAG +# define OSSL_PKEY_PARAM_USE_COFACTOR_FLAG "use-cofactor-flag" +# define OSSL_PROV_PARAM_BUILDINFO "buildinfo" +# define OSSL_PROV_PARAM_CORE_MODULE_FILENAME "module-filename" +# define OSSL_PROV_PARAM_CORE_PROV_NAME "provider-name" +# define OSSL_PROV_PARAM_CORE_VERSION "openssl-version" +# define OSSL_PROV_PARAM_DRBG_TRUNC_DIGEST "drbg-no-trunc-md" +# define OSSL_PROV_PARAM_DSA_SIGN_DISABLED "dsa-sign-disabled" +# define OSSL_PROV_PARAM_ECDH_COFACTOR_CHECK "ecdh-cofactor-check" +# define OSSL_PROV_PARAM_HKDF_DIGEST_CHECK "hkdf-digest-check" +# define OSSL_PROV_PARAM_HKDF_KEY_CHECK "hkdf-key-check" +# define OSSL_PROV_PARAM_HMAC_KEY_CHECK "hmac-key-check" +# define OSSL_PROV_PARAM_KBKDF_KEY_CHECK "kbkdf-key-check" +# define OSSL_PROV_PARAM_KMAC_KEY_CHECK "kmac-key-check" +# define OSSL_PROV_PARAM_NAME "name" +# define OSSL_PROV_PARAM_NO_SHORT_MAC "no-short-mac" +# define OSSL_PROV_PARAM_PBKDF2_LOWER_BOUND_CHECK "pbkdf2-lower-bound-check" +# define OSSL_PROV_PARAM_RSA_PKCS15_PAD_DISABLED "rsa-pkcs15-pad-disabled" +# define OSSL_PROV_PARAM_RSA_PSS_SALTLEN_CHECK "rsa-pss-saltlen-check" +# define OSSL_PROV_PARAM_RSA_SIGN_X931_PAD_DISABLED "rsa-sign-x931-pad-disabled" +# define OSSL_PROV_PARAM_SECURITY_CHECKS "security-checks" +# define OSSL_PROV_PARAM_SELF_TEST_DESC "st-desc" +# define OSSL_PROV_PARAM_SELF_TEST_PHASE "st-phase" +# define OSSL_PROV_PARAM_SELF_TEST_TYPE "st-type" +# define OSSL_PROV_PARAM_SIGNATURE_DIGEST_CHECK "signature-digest-check" +# define OSSL_PROV_PARAM_SSHKDF_DIGEST_CHECK "sshkdf-digest-check" +# define OSSL_PROV_PARAM_SSHKDF_KEY_CHECK "sshkdf-key-check" +# define OSSL_PROV_PARAM_SSKDF_DIGEST_CHECK "sskdf-digest-check" +# define OSSL_PROV_PARAM_SSKDF_KEY_CHECK "sskdf-key-check" +# define OSSL_PROV_PARAM_STATUS "status" +# define OSSL_PROV_PARAM_TDES_ENCRYPT_DISABLED "tdes-encrypt-disabled" +# define OSSL_PROV_PARAM_TLS13_KDF_DIGEST_CHECK "tls13-kdf-digest-check" +# define OSSL_PROV_PARAM_TLS13_KDF_KEY_CHECK "tls13-kdf-key-check" +# define OSSL_PROV_PARAM_TLS1_PRF_DIGEST_CHECK "tls1-prf-digest-check" +# define OSSL_PROV_PARAM_TLS1_PRF_EMS_CHECK "tls1-prf-ems-check" +# define OSSL_PROV_PARAM_TLS1_PRF_KEY_CHECK "tls1-prf-key-check" +# define OSSL_PROV_PARAM_VERSION "version" +# define OSSL_PROV_PARAM_X942KDF_KEY_CHECK "x942kdf-key-check" +# define OSSL_PROV_PARAM_X963KDF_DIGEST_CHECK "x963kdf-digest-check" +# define OSSL_PROV_PARAM_X963KDF_KEY_CHECK "x963kdf-key-check" +# define OSSL_RAND_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_RAND_PARAM_GENERATE "generate" +# define OSSL_RAND_PARAM_MAX_REQUEST "max_request" +# define OSSL_RAND_PARAM_STATE "state" +# define OSSL_RAND_PARAM_STRENGTH "strength" +# define OSSL_RAND_PARAM_TEST_ENTROPY "test_entropy" +# define OSSL_RAND_PARAM_TEST_NONCE "test_nonce" +# define OSSL_SIGNATURE_PARAM_ADD_RANDOM "additional-random" +# define OSSL_SIGNATURE_PARAM_ALGORITHM_ID OSSL_PKEY_PARAM_ALGORITHM_ID +# define OSSL_SIGNATURE_PARAM_ALGORITHM_ID_PARAMS OSSL_PKEY_PARAM_ALGORITHM_ID_PARAMS +# define OSSL_SIGNATURE_PARAM_CONTEXT_STRING "context-string" +# define OSSL_SIGNATURE_PARAM_DETERMINISTIC "deterministic" +# define OSSL_SIGNATURE_PARAM_DIGEST OSSL_PKEY_PARAM_DIGEST +# define OSSL_SIGNATURE_PARAM_DIGEST_SIZE OSSL_PKEY_PARAM_DIGEST_SIZE +# define OSSL_SIGNATURE_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_SIGNATURE_PARAM_FIPS_DIGEST_CHECK OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK +# define OSSL_SIGNATURE_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_SIGNATURE_PARAM_FIPS_RSA_PSS_SALTLEN_CHECK "rsa-pss-saltlen-check" +# define OSSL_SIGNATURE_PARAM_FIPS_SIGN_CHECK OSSL_PKEY_PARAM_FIPS_SIGN_CHECK +# define OSSL_SIGNATURE_PARAM_FIPS_SIGN_X931_PAD_CHECK "sign-x931-pad-check" +# define OSSL_SIGNATURE_PARAM_FIPS_VERIFY_MESSAGE "verify-message" +# define OSSL_SIGNATURE_PARAM_INSTANCE "instance" +# define OSSL_SIGNATURE_PARAM_KAT "kat" +# define OSSL_SIGNATURE_PARAM_MESSAGE_ENCODING "message-encoding" +# define OSSL_SIGNATURE_PARAM_MGF1_DIGEST OSSL_PKEY_PARAM_MGF1_DIGEST +# define OSSL_SIGNATURE_PARAM_MGF1_PROPERTIES OSSL_PKEY_PARAM_MGF1_PROPERTIES +# define OSSL_SIGNATURE_PARAM_MU "mu" +# define OSSL_SIGNATURE_PARAM_NONCE_TYPE "nonce-type" +# define OSSL_SIGNATURE_PARAM_PAD_MODE OSSL_PKEY_PARAM_PAD_MODE +# define OSSL_SIGNATURE_PARAM_PROPERTIES OSSL_PKEY_PARAM_PROPERTIES +# define OSSL_SIGNATURE_PARAM_PSS_SALTLEN "saltlen" +# define OSSL_SIGNATURE_PARAM_SIGNATURE "signature" +# define OSSL_SIGNATURE_PARAM_TEST_ENTROPY "test-entropy" +# define OSSL_SKEY_PARAM_KEY_LENGTH "key-length" +# define OSSL_SKEY_PARAM_RAW_BYTES "raw-bytes" +# define OSSL_STORE_PARAM_ALIAS "alias" +# define OSSL_STORE_PARAM_DIGEST "digest" +# define OSSL_STORE_PARAM_EXPECT "expect" +# define OSSL_STORE_PARAM_FINGERPRINT "fingerprint" +# define OSSL_STORE_PARAM_INPUT_TYPE "input-type" +# define OSSL_STORE_PARAM_ISSUER "name" +# define OSSL_STORE_PARAM_PROPERTIES "properties" +# define OSSL_STORE_PARAM_SERIAL "serial" +# define OSSL_STORE_PARAM_SUBJECT "subject" + +# ifdef __cplusplus +} +# endif + +#endif diff --git a/deps/openssl/config/archs/linux-aarch64/asm_avx2/include/openssl/crmf.h b/deps/openssl/config/archs/linux-aarch64/asm_avx2/include/openssl/crmf.h index 71b747ed33d239..4bf550fd47daa9 100644 --- a/deps/openssl/config/archs/linux-aarch64/asm_avx2/include/openssl/crmf.h +++ b/deps/openssl/config/archs/linux-aarch64/asm_avx2/include/openssl/crmf.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/crmf.h.in * - * Copyright 2007-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2007-2025 The OpenSSL Project Authors. All Rights Reserved. * Copyright Nokia 2007-2019 * Copyright Siemens AG 2015-2019 * @@ -26,6 +26,7 @@ # include # include # include /* for GENERAL_NAME etc. */ +# include /* explicit #includes not strictly needed since implied by the above: */ # include @@ -43,9 +44,12 @@ extern "C" { # define OSSL_CRMF_SUBSEQUENTMESSAGE_ENCRCERT 0 # define OSSL_CRMF_SUBSEQUENTMESSAGE_CHALLENGERESP 1 - typedef struct ossl_crmf_encryptedvalue_st OSSL_CRMF_ENCRYPTEDVALUE; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_ENCRYPTEDVALUE) + +typedef struct ossl_crmf_encryptedkey_st OSSL_CRMF_ENCRYPTEDKEY; +DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_ENCRYPTEDKEY) + typedef struct ossl_crmf_msg_st OSSL_CRMF_MSG; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_MSG) DECLARE_ASN1_DUP_FUNCTION(OSSL_CRMF_MSG) @@ -77,6 +81,36 @@ SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CRMF_MSG, OSSL_CRMF_MSG, OSSL_CRMF_MSG) #define sk_OSSL_CRMF_MSG_set_cmp_func(sk, cmp) ((sk_OSSL_CRMF_MSG_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CRMF_MSG_sk_type(sk), ossl_check_OSSL_CRMF_MSG_compfunc_type(cmp))) typedef struct ossl_crmf_attributetypeandvalue_st OSSL_CRMF_ATTRIBUTETYPEANDVALUE; +void OSSL_CRMF_ATTRIBUTETYPEANDVALUE_free(OSSL_CRMF_ATTRIBUTETYPEANDVALUE *v); +DECLARE_ASN1_DUP_FUNCTION(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CRMF_ATTRIBUTETYPEANDVALUE, OSSL_CRMF_ATTRIBUTETYPEANDVALUE, OSSL_CRMF_ATTRIBUTETYPEANDVALUE) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_value(sk, idx) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_value(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), (idx))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_new(cmp) ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_new(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_compfunc_type(cmp))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_new_null() ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_new_null()) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_new_reserve(cmp, n) ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_compfunc_type(cmp), (n))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), (n)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_free(sk) OPENSSL_sk_free(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_delete(sk, i) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_delete(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), (i))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_delete_ptr(sk, ptr) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_pop(sk) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_pop(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_shift(sk) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_shift(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk),ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_freefunc_type(freefunc)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr), (idx)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_set(sk, idx, ptr) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_set(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), (idx), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr), pnum) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_dup(sk) ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_dup(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_copyfunc_type(copyfunc), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_freefunc_type(freefunc))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_set_cmp_func(sk, cmp) ((sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_compfunc_type(cmp))) + + typedef struct ossl_crmf_pbmparameter_st OSSL_CRMF_PBMPARAMETER; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_PBMPARAMETER) typedef struct ossl_crmf_poposigningkey_st OSSL_CRMF_POPOSIGNINGKEY; @@ -118,6 +152,7 @@ typedef struct ossl_crmf_singlepubinfo_st OSSL_CRMF_SINGLEPUBINFO; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_SINGLEPUBINFO) typedef struct ossl_crmf_certtemplate_st OSSL_CRMF_CERTTEMPLATE; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_CERTTEMPLATE) +DECLARE_ASN1_DUP_FUNCTION(OSSL_CRMF_CERTTEMPLATE) typedef STACK_OF(OSSL_CRMF_MSG) OSSL_CRMF_MSGS; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_MSGS) @@ -198,12 +233,14 @@ int OSSL_CRMF_MSGS_verify_popo(const OSSL_CRMF_MSGS *reqs, int rid, int acceptRAVerified, OSSL_LIB_CTX *libctx, const char *propq); OSSL_CRMF_CERTTEMPLATE *OSSL_CRMF_MSG_get0_tmpl(const OSSL_CRMF_MSG *crm); -const ASN1_INTEGER -*OSSL_CRMF_CERTTEMPLATE_get0_serialNumber(const OSSL_CRMF_CERTTEMPLATE *tmpl); +X509_PUBKEY +*OSSL_CRMF_CERTTEMPLATE_get0_publicKey(const OSSL_CRMF_CERTTEMPLATE *tmpl); const X509_NAME *OSSL_CRMF_CERTTEMPLATE_get0_subject(const OSSL_CRMF_CERTTEMPLATE *tmpl); const X509_NAME *OSSL_CRMF_CERTTEMPLATE_get0_issuer(const OSSL_CRMF_CERTTEMPLATE *tmpl); +const ASN1_INTEGER +*OSSL_CRMF_CERTTEMPLATE_get0_serialNumber(const OSSL_CRMF_CERTTEMPLATE *tmpl); X509_EXTENSIONS *OSSL_CRMF_CERTTEMPLATE_get0_extensions(const OSSL_CRMF_CERTTEMPLATE *tmpl); const X509_NAME @@ -215,10 +252,24 @@ int OSSL_CRMF_CERTTEMPLATE_fill(OSSL_CRMF_CERTTEMPLATE *tmpl, const X509_NAME *subject, const X509_NAME *issuer, const ASN1_INTEGER *serial); -X509 -*OSSL_CRMF_ENCRYPTEDVALUE_get1_encCert(const OSSL_CRMF_ENCRYPTEDVALUE *ecert, - OSSL_LIB_CTX *libctx, const char *propq, - EVP_PKEY *pkey); +X509 *OSSL_CRMF_ENCRYPTEDVALUE_get1_encCert(const OSSL_CRMF_ENCRYPTEDVALUE *ecert, + OSSL_LIB_CTX *libctx, const char *propq, + EVP_PKEY *pkey); +X509 *OSSL_CRMF_ENCRYPTEDKEY_get1_encCert(const OSSL_CRMF_ENCRYPTEDKEY *ecert, + OSSL_LIB_CTX *libctx, const char *propq, + EVP_PKEY *pkey, unsigned int flags); +unsigned char +*OSSL_CRMF_ENCRYPTEDVALUE_decrypt(const OSSL_CRMF_ENCRYPTEDVALUE *enc, + OSSL_LIB_CTX *libctx, const char *propq, + EVP_PKEY *pkey, int *outlen); +EVP_PKEY *OSSL_CRMF_ENCRYPTEDKEY_get1_pkey(const OSSL_CRMF_ENCRYPTEDKEY *encryptedKey, + X509_STORE *ts, STACK_OF(X509) *extra, EVP_PKEY *pkey, + X509 *cert, ASN1_OCTET_STRING *secret, + OSSL_LIB_CTX *libctx, const char *propq); +int OSSL_CRMF_MSG_centralkeygen_requested(const OSSL_CRMF_MSG *crm, const X509_REQ *p10cr); +# ifndef OPENSSL_NO_CMS +OSSL_CRMF_ENCRYPTEDKEY *OSSL_CRMF_ENCRYPTEDKEY_init_envdata(CMS_EnvelopedData *envdata); +# endif # ifdef __cplusplus } diff --git a/deps/openssl/config/archs/linux-aarch64/asm_avx2/include/openssl/crypto.h b/deps/openssl/config/archs/linux-aarch64/asm_avx2/include/openssl/crypto.h index 3f40be6d8c61d5..fd2cfd3e5a9ac4 100644 --- a/deps/openssl/config/archs/linux-aarch64/asm_avx2/include/openssl/crypto.h +++ b/deps/openssl/config/archs/linux-aarch64/asm_avx2/include/openssl/crypto.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/crypto.h.in * - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2024 The OpenSSL Project Authors. All Rights Reserved. * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved * * Licensed under the Apache License 2.0 (the "License"). You may not use @@ -85,9 +85,15 @@ int CRYPTO_THREAD_unlock(CRYPTO_RWLOCK *lock); void CRYPTO_THREAD_lock_free(CRYPTO_RWLOCK *lock); int CRYPTO_atomic_add(int *val, int amount, int *ret, CRYPTO_RWLOCK *lock); +int CRYPTO_atomic_add64(uint64_t *val, uint64_t op, uint64_t *ret, + CRYPTO_RWLOCK *lock); +int CRYPTO_atomic_and(uint64_t *val, uint64_t op, uint64_t *ret, + CRYPTO_RWLOCK *lock); int CRYPTO_atomic_or(uint64_t *val, uint64_t op, uint64_t *ret, CRYPTO_RWLOCK *lock); int CRYPTO_atomic_load(uint64_t *val, uint64_t *ret, CRYPTO_RWLOCK *lock); +int CRYPTO_atomic_load_int(int *val, int *ret, CRYPTO_RWLOCK *lock); +int CRYPTO_atomic_store(uint64_t *dst, uint64_t val, CRYPTO_RWLOCK *lock); /* No longer needed, so this is a no-op */ #define OPENSSL_malloc_init() while(0) continue @@ -96,6 +102,9 @@ int CRYPTO_atomic_load(uint64_t *val, uint64_t *ret, CRYPTO_RWLOCK *lock); CRYPTO_malloc(num, OPENSSL_FILE, OPENSSL_LINE) # define OPENSSL_zalloc(num) \ CRYPTO_zalloc(num, OPENSSL_FILE, OPENSSL_LINE) +# define OPENSSL_aligned_alloc(num, alignment, freeptr) \ + CRYPTO_aligned_alloc(num, alignment, freeptr, \ + OPENSSL_FILE, OPENSSL_LINE) # define OPENSSL_realloc(addr, num) \ CRYPTO_realloc(addr, num, OPENSSL_FILE, OPENSSL_LINE) # define OPENSSL_clear_realloc(addr, old_num, num) \ @@ -124,6 +133,7 @@ int CRYPTO_atomic_load(uint64_t *val, uint64_t *ret, CRYPTO_RWLOCK *lock); size_t OPENSSL_strlcpy(char *dst, const char *src, size_t siz); size_t OPENSSL_strlcat(char *dst, const char *src, size_t siz); size_t OPENSSL_strnlen(const char *str, size_t maxlen); +int OPENSSL_strtoul(const char *str, char **endptr, int base, unsigned long *num); int OPENSSL_buf2hexstr_ex(char *str, size_t str_n, size_t *strlength, const unsigned char *buf, size_t buflen, const char sep); @@ -160,6 +170,7 @@ const char *OpenSSL_version(int type); # define OPENSSL_FULL_VERSION_STRING 7 # define OPENSSL_MODULES_DIR 8 # define OPENSSL_CPU_INFO 9 +# define OPENSSL_WINCTX 10 const char *OPENSSL_info(int type); /* @@ -174,6 +185,7 @@ const char *OPENSSL_info(int type); # define OPENSSL_INFO_LIST_SEPARATOR 1006 # define OPENSSL_INFO_SEED_SOURCE 1007 # define OPENSSL_INFO_CPU_SETTINGS 1008 +# define OPENSSL_INFO_WINDOWS_CONTEXT 1009 int OPENSSL_issetugid(void); @@ -341,11 +353,14 @@ void CRYPTO_get_mem_functions(CRYPTO_malloc_fn *malloc_fn, CRYPTO_realloc_fn *realloc_fn, CRYPTO_free_fn *free_fn); -void *CRYPTO_malloc(size_t num, const char *file, int line); -void *CRYPTO_zalloc(size_t num, const char *file, int line); -void *CRYPTO_memdup(const void *str, size_t siz, const char *file, int line); -char *CRYPTO_strdup(const char *str, const char *file, int line); -char *CRYPTO_strndup(const char *str, size_t s, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_malloc(size_t num, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_zalloc(size_t num, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_aligned_alloc(size_t num, size_t align, + void **freeptr, const char *file, + int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_memdup(const void *str, size_t siz, const char *file, int line); +OSSL_CRYPTO_ALLOC char *CRYPTO_strdup(const char *str, const char *file, int line); +OSSL_CRYPTO_ALLOC char *CRYPTO_strndup(const char *str, size_t s, const char *file, int line); void CRYPTO_free(void *ptr, const char *file, int line); void CRYPTO_clear_free(void *ptr, size_t num, const char *file, int line); void *CRYPTO_realloc(void *addr, size_t num, const char *file, int line); @@ -354,8 +369,8 @@ void *CRYPTO_clear_realloc(void *addr, size_t old_num, size_t num, int CRYPTO_secure_malloc_init(size_t sz, size_t minsize); int CRYPTO_secure_malloc_done(void); -void *CRYPTO_secure_malloc(size_t num, const char *file, int line); -void *CRYPTO_secure_zalloc(size_t num, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_secure_malloc(size_t num, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_secure_zalloc(size_t num, const char *file, int line); void CRYPTO_secure_free(void *ptr, const char *file, int line); void CRYPTO_secure_clear_free(void *ptr, size_t num, const char *file, int line); @@ -376,6 +391,9 @@ void OPENSSL_cleanse(void *ptr, size_t len); # define CRYPTO_MEM_CHECK_ENABLE 0x2 /* Control and mode bit */ # define CRYPTO_MEM_CHECK_DISABLE 0x3 /* Control only */ +/* max allowed length for value of OPENSSL_MALLOC_FAILURES env var. */ +# define CRYPTO_MEM_CHECK_MAX_FS 256 + void CRYPTO_get_alloc_counts(int *mcount, int *rcount, int *fcount); # ifndef OPENSSL_NO_DEPRECATED_3_0 # define OPENSSL_mem_debug_push(info) \ @@ -551,6 +569,13 @@ int OSSL_LIB_CTX_load_config(OSSL_LIB_CTX *ctx, const char *config_file); void OSSL_LIB_CTX_free(OSSL_LIB_CTX *); OSSL_LIB_CTX *OSSL_LIB_CTX_get0_global_default(void); OSSL_LIB_CTX *OSSL_LIB_CTX_set0_default(OSSL_LIB_CTX *libctx); +int OSSL_LIB_CTX_get_conf_diagnostics(OSSL_LIB_CTX *ctx); +void OSSL_LIB_CTX_set_conf_diagnostics(OSSL_LIB_CTX *ctx, int value); + +void OSSL_sleep(uint64_t millis); + + +void *OSSL_LIB_CTX_get_data(OSSL_LIB_CTX *ctx, int index); # ifdef __cplusplus } diff --git a/deps/openssl/config/archs/linux-aarch64/asm_avx2/include/openssl/ct.h b/deps/openssl/config/archs/linux-aarch64/asm_avx2/include/openssl/ct.h index b6dd8c3547710a..e6dd1192a4e0b3 100644 --- a/deps/openssl/config/archs/linux-aarch64/asm_avx2/include/openssl/ct.h +++ b/deps/openssl/config/archs/linux-aarch64/asm_avx2/include/openssl/ct.h @@ -133,7 +133,7 @@ typedef enum { */ CT_POLICY_EVAL_CTX *CT_POLICY_EVAL_CTX_new_ex(OSSL_LIB_CTX *libctx, const char *propq); - + /* * The same as CT_POLICY_EVAL_CTX_new_ex() but the default library * context and property query string is used. diff --git a/deps/openssl/config/archs/linux-aarch64/asm_avx2/include/openssl/err.h b/deps/openssl/config/archs/linux-aarch64/asm_avx2/include/openssl/err.h index 2abf2483488181..daca18e7b757b0 100644 --- a/deps/openssl/config/archs/linux-aarch64/asm_avx2/include/openssl/err.h +++ b/deps/openssl/config/archs/linux-aarch64/asm_avx2/include/openssl/err.h @@ -1,5 +1,5 @@ /* - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -372,7 +372,7 @@ typedef struct ERR_string_data_st { } ERR_STRING_DATA; DEFINE_LHASH_OF_INTERNAL(ERR_STRING_DATA); -#define lh_ERR_STRING_DATA_new(hfn, cmp) ((LHASH_OF(ERR_STRING_DATA) *)OPENSSL_LH_new(ossl_check_ERR_STRING_DATA_lh_hashfunc_type(hfn), ossl_check_ERR_STRING_DATA_lh_compfunc_type(cmp))) +#define lh_ERR_STRING_DATA_new(hfn, cmp) ((LHASH_OF(ERR_STRING_DATA) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new(ossl_check_ERR_STRING_DATA_lh_hashfunc_type(hfn), ossl_check_ERR_STRING_DATA_lh_compfunc_type(cmp)), lh_ERR_STRING_DATA_hash_thunk, lh_ERR_STRING_DATA_comp_thunk, lh_ERR_STRING_DATA_doall_thunk, lh_ERR_STRING_DATA_doall_arg_thunk)) #define lh_ERR_STRING_DATA_free(lh) OPENSSL_LH_free(ossl_check_ERR_STRING_DATA_lh_type(lh)) #define lh_ERR_STRING_DATA_flush(lh) OPENSSL_LH_flush(ossl_check_ERR_STRING_DATA_lh_type(lh)) #define lh_ERR_STRING_DATA_insert(lh, ptr) ((ERR_STRING_DATA *)OPENSSL_LH_insert(ossl_check_ERR_STRING_DATA_lh_type(lh), ossl_check_ERR_STRING_DATA_lh_plain_type(ptr))) @@ -496,6 +496,14 @@ int ERR_get_next_error_library(void); int ERR_set_mark(void); int ERR_pop_to_mark(void); int ERR_clear_last_mark(void); +int ERR_count_to_mark(void); +int ERR_pop(void); + +ERR_STATE *OSSL_ERR_STATE_new(void); +void OSSL_ERR_STATE_save(ERR_STATE *es); +void OSSL_ERR_STATE_save_to_mark(ERR_STATE *es); +void OSSL_ERR_STATE_restore(const ERR_STATE *es); +void OSSL_ERR_STATE_free(ERR_STATE *es); #ifdef __cplusplus } diff --git a/deps/openssl/config/archs/linux-aarch64/asm_avx2/include/openssl/fipskey.h b/deps/openssl/config/archs/linux-aarch64/asm_avx2/include/openssl/fipskey.h index 42ba014b313ba8..929db18c678364 100644 --- a/deps/openssl/config/archs/linux-aarch64/asm_avx2/include/openssl/fipskey.h +++ b/deps/openssl/config/archs/linux-aarch64/asm_avx2/include/openssl/fipskey.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/fipskey.h.in * - * Copyright 2020-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2020-2024 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -29,6 +29,11 @@ extern "C" { */ #define FIPS_KEY_STRING "f4556650ac31d35461610bac4ed81b1a181b2d8a43ea2854cbae22ca74560813" +/* + * The FIPS provider vendor name, as a string. + */ +#define FIPS_VENDOR "OpenSSL FIPS Provider" + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/linux-aarch64/asm_avx2/include/openssl/lhash.h b/deps/openssl/config/archs/linux-aarch64/asm_avx2/include/openssl/lhash.h index 39dd6254acdeb6..62c55b20fd9716 100644 --- a/deps/openssl/config/archs/linux-aarch64/asm_avx2/include/openssl/lhash.h +++ b/deps/openssl/config/archs/linux-aarch64/asm_avx2/include/openssl/lhash.h @@ -1,5 +1,5 @@ /* - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2024 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -24,6 +24,9 @@ # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -31,9 +34,13 @@ extern "C" { typedef struct lhash_node_st OPENSSL_LH_NODE; typedef int (*OPENSSL_LH_COMPFUNC) (const void *, const void *); +typedef int (*OPENSSL_LH_COMPFUNCTHUNK) (const void *, const void *, OPENSSL_LH_COMPFUNC cfn); typedef unsigned long (*OPENSSL_LH_HASHFUNC) (const void *); +typedef unsigned long (*OPENSSL_LH_HASHFUNCTHUNK) (const void *, OPENSSL_LH_HASHFUNC hfn); typedef void (*OPENSSL_LH_DOALL_FUNC) (void *); +typedef void (*OPENSSL_LH_DOALL_FUNC_THUNK) (void *, OPENSSL_LH_DOALL_FUNC doall); typedef void (*OPENSSL_LH_DOALL_FUNCARG) (void *, void *); +typedef void (*OPENSSL_LH_DOALL_FUNCARG_THUNK) (void *, void *, OPENSSL_LH_DOALL_FUNCARG doall); typedef struct lhash_st OPENSSL_LHASH; /* @@ -79,26 +86,40 @@ typedef struct lhash_st OPENSSL_LHASH; int OPENSSL_LH_error(OPENSSL_LHASH *lh); OPENSSL_LHASH *OPENSSL_LH_new(OPENSSL_LH_HASHFUNC h, OPENSSL_LH_COMPFUNC c); +OPENSSL_LHASH *OPENSSL_LH_set_thunks(OPENSSL_LHASH *lh, + OPENSSL_LH_HASHFUNCTHUNK hw, + OPENSSL_LH_COMPFUNCTHUNK cw, + OPENSSL_LH_DOALL_FUNC_THUNK daw, + OPENSSL_LH_DOALL_FUNCARG_THUNK daaw); void OPENSSL_LH_free(OPENSSL_LHASH *lh); void OPENSSL_LH_flush(OPENSSL_LHASH *lh); void *OPENSSL_LH_insert(OPENSSL_LHASH *lh, void *data); void *OPENSSL_LH_delete(OPENSSL_LHASH *lh, const void *data); void *OPENSSL_LH_retrieve(OPENSSL_LHASH *lh, const void *data); void OPENSSL_LH_doall(OPENSSL_LHASH *lh, OPENSSL_LH_DOALL_FUNC func); -void OPENSSL_LH_doall_arg(OPENSSL_LHASH *lh, OPENSSL_LH_DOALL_FUNCARG func, void *arg); +void OPENSSL_LH_doall_arg(OPENSSL_LHASH *lh, + OPENSSL_LH_DOALL_FUNCARG func, void *arg); +void OPENSSL_LH_doall_arg_thunk(OPENSSL_LHASH *lh, + OPENSSL_LH_DOALL_FUNCARG_THUNK daaw, + OPENSSL_LH_DOALL_FUNCARG fn, void *arg); + unsigned long OPENSSL_LH_strhash(const char *c); unsigned long OPENSSL_LH_num_items(const OPENSSL_LHASH *lh); unsigned long OPENSSL_LH_get_down_load(const OPENSSL_LHASH *lh); void OPENSSL_LH_set_down_load(OPENSSL_LHASH *lh, unsigned long down_load); # ifndef OPENSSL_NO_STDIO -void OPENSSL_LH_stats(const OPENSSL_LHASH *lh, FILE *fp); -void OPENSSL_LH_node_stats(const OPENSSL_LHASH *lh, FILE *fp); -void OPENSSL_LH_node_usage_stats(const OPENSSL_LHASH *lh, FILE *fp); +# ifndef OPENSSL_NO_DEPRECATED_3_1 +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_stats(const OPENSSL_LHASH *lh, FILE *fp); +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_node_stats(const OPENSSL_LHASH *lh, FILE *fp); +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_node_usage_stats(const OPENSSL_LHASH *lh, FILE *fp); +# endif +# endif +# ifndef OPENSSL_NO_DEPRECATED_3_1 +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_stats_bio(const OPENSSL_LHASH *lh, BIO *out); +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_node_stats_bio(const OPENSSL_LHASH *lh, BIO *out); +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_node_usage_stats_bio(const OPENSSL_LHASH *lh, BIO *out); # endif -void OPENSSL_LH_stats_bio(const OPENSSL_LHASH *lh, BIO *out); -void OPENSSL_LH_node_stats_bio(const OPENSSL_LHASH *lh, BIO *out); -void OPENSSL_LH_node_usage_stats_bio(const OPENSSL_LHASH *lh, BIO *out); # ifndef OPENSSL_NO_DEPRECATED_1_1_0 # define _LHASH OPENSSL_LHASH @@ -129,110 +150,190 @@ void OPENSSL_LH_node_usage_stats_bio(const OPENSSL_LHASH *lh, BIO *out); /* Helper macro for internal use */ # define DEFINE_LHASH_OF_INTERNAL(type) \ - LHASH_OF(type) { union lh_##type##_dummy { void* d1; unsigned long d2; int d3; } dummy; }; \ + LHASH_OF(type) { \ + union lh_##type##_dummy { void* d1; unsigned long d2; int d3; } dummy; \ + }; \ typedef int (*lh_##type##_compfunc)(const type *a, const type *b); \ typedef unsigned long (*lh_##type##_hashfunc)(const type *a); \ typedef void (*lh_##type##_doallfunc)(type *a); \ - static ossl_unused ossl_inline type *ossl_check_##type##_lh_plain_type(type *ptr) \ + static ossl_inline unsigned long lh_##type##_hash_thunk(const void *data, OPENSSL_LH_HASHFUNC hfn) \ + { \ + unsigned long (*hfn_conv)(const type *) = (unsigned long (*)(const type *))hfn; \ + return hfn_conv((const type *)data); \ + } \ + static ossl_inline int lh_##type##_comp_thunk(const void *da, const void *db, OPENSSL_LH_COMPFUNC cfn) \ + { \ + int (*cfn_conv)(const type *, const type *) = (int (*)(const type *, const type *))cfn; \ + return cfn_conv((const type *)da, (const type *)db); \ + } \ + static ossl_inline void lh_##type##_doall_thunk(void *node, OPENSSL_LH_DOALL_FUNC doall) \ + { \ + void (*doall_conv)(type *) = (void (*)(type *))doall; \ + doall_conv((type *)node); \ + } \ + static ossl_inline void lh_##type##_doall_arg_thunk(void *node, void *arg, OPENSSL_LH_DOALL_FUNCARG doall) \ + { \ + void (*doall_conv)(type *, void *) = (void (*)(type *, void *))doall; \ + doall_conv((type *)node, arg); \ + } \ + static ossl_unused ossl_inline type *\ + ossl_check_##type##_lh_plain_type(type *ptr) \ { \ return ptr; \ } \ - static ossl_unused ossl_inline const type *ossl_check_const_##type##_lh_plain_type(const type *ptr) \ + static ossl_unused ossl_inline const type * \ + ossl_check_const_##type##_lh_plain_type(const type *ptr) \ { \ return ptr; \ } \ - static ossl_unused ossl_inline const OPENSSL_LHASH *ossl_check_const_##type##_lh_type(const LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline const OPENSSL_LHASH * \ + ossl_check_const_##type##_lh_type(const LHASH_OF(type) *lh) \ { \ return (const OPENSSL_LHASH *)lh; \ } \ - static ossl_unused ossl_inline OPENSSL_LHASH *ossl_check_##type##_lh_type(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline OPENSSL_LHASH * \ + ossl_check_##type##_lh_type(LHASH_OF(type) *lh) \ { \ return (OPENSSL_LHASH *)lh; \ } \ - static ossl_unused ossl_inline OPENSSL_LH_COMPFUNC ossl_check_##type##_lh_compfunc_type(lh_##type##_compfunc cmp) \ + static ossl_unused ossl_inline OPENSSL_LH_COMPFUNC \ + ossl_check_##type##_lh_compfunc_type(lh_##type##_compfunc cmp) \ { \ return (OPENSSL_LH_COMPFUNC)cmp; \ } \ - static ossl_unused ossl_inline OPENSSL_LH_HASHFUNC ossl_check_##type##_lh_hashfunc_type(lh_##type##_hashfunc hfn) \ + static ossl_unused ossl_inline OPENSSL_LH_HASHFUNC \ + ossl_check_##type##_lh_hashfunc_type(lh_##type##_hashfunc hfn) \ { \ return (OPENSSL_LH_HASHFUNC)hfn; \ } \ - static ossl_unused ossl_inline OPENSSL_LH_DOALL_FUNC ossl_check_##type##_lh_doallfunc_type(lh_##type##_doallfunc dfn) \ + static ossl_unused ossl_inline OPENSSL_LH_DOALL_FUNC \ + ossl_check_##type##_lh_doallfunc_type(lh_##type##_doallfunc dfn) \ { \ return (OPENSSL_LH_DOALL_FUNC)dfn; \ } \ LHASH_OF(type) -# define DEFINE_LHASH_OF(type) \ - LHASH_OF(type) { union lh_##type##_dummy { void* d1; unsigned long d2; int d3; } dummy; }; \ - static ossl_unused ossl_inline LHASH_OF(type) *lh_##type##_new(unsigned long (*hfn)(const type *), \ - int (*cfn)(const type *, const type *)) \ +# ifndef OPENSSL_NO_DEPRECATED_3_1 +# define DEFINE_LHASH_OF_DEPRECATED(type) \ + static ossl_unused ossl_inline void \ + lh_##type##_node_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ { \ - return (LHASH_OF(type) *) \ - OPENSSL_LH_new((OPENSSL_LH_HASHFUNC)hfn, (OPENSSL_LH_COMPFUNC)cfn); \ + OPENSSL_LH_node_stats_bio((const OPENSSL_LHASH *)lh, out); \ } \ - static ossl_unused ossl_inline void lh_##type##_free(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline void \ + lh_##type##_node_usage_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + { \ + OPENSSL_LH_node_usage_stats_bio((const OPENSSL_LHASH *)lh, out); \ + } \ + static ossl_unused ossl_inline void \ + lh_##type##_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + { \ + OPENSSL_LH_stats_bio((const OPENSSL_LHASH *)lh, out); \ + } +# else +# define DEFINE_LHASH_OF_DEPRECATED(type) +# endif + +# define DEFINE_LHASH_OF_EX(type) \ + LHASH_OF(type) { \ + union lh_##type##_dummy { void* d1; unsigned long d2; int d3; } dummy; \ + }; \ + static unsigned long \ + lh_##type##_hfn_thunk(const void *data, OPENSSL_LH_HASHFUNC hfn) \ + { \ + unsigned long (*hfn_conv)(const type *) = (unsigned long (*)(const type *))hfn; \ + return hfn_conv((const type *)data); \ + } \ + static int lh_##type##_cfn_thunk(const void *da, const void *db, OPENSSL_LH_COMPFUNC cfn) \ + { \ + int (*cfn_conv)(const type *, const type *) = (int (*)(const type *, const type *))cfn; \ + return cfn_conv((const type *)da, (const type *)db); \ + } \ + static ossl_unused ossl_inline void \ + lh_##type##_free(LHASH_OF(type) *lh) \ { \ OPENSSL_LH_free((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline void lh_##type##_flush(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline void \ + lh_##type##_flush(LHASH_OF(type) *lh) \ { \ OPENSSL_LH_flush((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline type *lh_##type##_insert(LHASH_OF(type) *lh, type *d) \ + static ossl_unused ossl_inline type * \ + lh_##type##_insert(LHASH_OF(type) *lh, type *d) \ { \ return (type *)OPENSSL_LH_insert((OPENSSL_LHASH *)lh, d); \ } \ - static ossl_unused ossl_inline type *lh_##type##_delete(LHASH_OF(type) *lh, const type *d) \ + static ossl_unused ossl_inline type * \ + lh_##type##_delete(LHASH_OF(type) *lh, const type *d) \ { \ return (type *)OPENSSL_LH_delete((OPENSSL_LHASH *)lh, d); \ } \ - static ossl_unused ossl_inline type *lh_##type##_retrieve(LHASH_OF(type) *lh, const type *d) \ + static ossl_unused ossl_inline type * \ + lh_##type##_retrieve(LHASH_OF(type) *lh, const type *d) \ { \ return (type *)OPENSSL_LH_retrieve((OPENSSL_LHASH *)lh, d); \ } \ - static ossl_unused ossl_inline int lh_##type##_error(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline int \ + lh_##type##_error(LHASH_OF(type) *lh) \ { \ return OPENSSL_LH_error((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline unsigned long lh_##type##_num_items(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline unsigned long \ + lh_##type##_num_items(LHASH_OF(type) *lh) \ { \ return OPENSSL_LH_num_items((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline void lh_##type##_node_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + static ossl_unused ossl_inline unsigned long \ + lh_##type##_get_down_load(LHASH_OF(type) *lh) \ { \ - OPENSSL_LH_node_stats_bio((const OPENSSL_LHASH *)lh, out); \ + return OPENSSL_LH_get_down_load((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline void lh_##type##_node_usage_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + static ossl_unused ossl_inline void \ + lh_##type##_set_down_load(LHASH_OF(type) *lh, unsigned long dl) \ { \ - OPENSSL_LH_node_usage_stats_bio((const OPENSSL_LHASH *)lh, out); \ + OPENSSL_LH_set_down_load((OPENSSL_LHASH *)lh, dl); \ } \ - static ossl_unused ossl_inline void lh_##type##_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall_thunk(void *node, OPENSSL_LH_DOALL_FUNC doall) \ { \ - OPENSSL_LH_stats_bio((const OPENSSL_LHASH *)lh, out); \ + void (*doall_conv)(type *) = (void (*)(type *))doall; \ + doall_conv((type *)node); \ } \ - static ossl_unused ossl_inline unsigned long lh_##type##_get_down_load(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall_arg_thunk(void *node, void *arg, OPENSSL_LH_DOALL_FUNCARG doall) \ { \ - return OPENSSL_LH_get_down_load((OPENSSL_LHASH *)lh); \ + void (*doall_conv)(type *, void *) = (void (*)(type *, void *))doall; \ + doall_conv((type *)node, arg); \ } \ - static ossl_unused ossl_inline void lh_##type##_set_down_load(LHASH_OF(type) *lh, unsigned long dl) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall(LHASH_OF(type) *lh, void (*doall)(type *)) \ { \ - OPENSSL_LH_set_down_load((OPENSSL_LHASH *)lh, dl); \ + OPENSSL_LH_doall((OPENSSL_LHASH *)lh, (OPENSSL_LH_DOALL_FUNC)doall); \ } \ - static ossl_unused ossl_inline void lh_##type##_doall(LHASH_OF(type) *lh, \ - void (*doall)(type *)) \ + static ossl_unused ossl_inline LHASH_OF(type) * \ + lh_##type##_new(unsigned long (*hfn)(const type *), \ + int (*cfn)(const type *, const type *)) \ { \ - OPENSSL_LH_doall((OPENSSL_LHASH *)lh, (OPENSSL_LH_DOALL_FUNC)doall); \ + return (LHASH_OF(type) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new((OPENSSL_LH_HASHFUNC)hfn, (OPENSSL_LH_COMPFUNC)cfn), \ + lh_##type##_hfn_thunk, lh_##type##_cfn_thunk, \ + lh_##type##_doall_thunk, \ + lh_##type##_doall_arg_thunk); \ } \ - static ossl_unused ossl_inline void lh_##type##_doall_arg(LHASH_OF(type) *lh, \ - void (*doallarg)(type *, void *), \ - void *arg) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall_arg(LHASH_OF(type) *lh, \ + void (*doallarg)(type *, void *), void *arg) \ { \ OPENSSL_LH_doall_arg((OPENSSL_LHASH *)lh, \ (OPENSSL_LH_DOALL_FUNCARG)doallarg, arg); \ } \ LHASH_OF(type) +# define DEFINE_LHASH_OF(type) \ + DEFINE_LHASH_OF_EX(type); \ + DEFINE_LHASH_OF_DEPRECATED(type) \ + LHASH_OF(type) + #define IMPLEMENT_LHASH_DOALL_ARG_CONST(type, argtype) \ int_implement_lhash_doall(type, argtype, const type) @@ -240,17 +341,26 @@ void OPENSSL_LH_node_usage_stats_bio(const OPENSSL_LHASH *lh, BIO *out); int_implement_lhash_doall(type, argtype, type) #define int_implement_lhash_doall(type, argtype, cbargtype) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall_##argtype##_thunk(void *node, void *arg, OPENSSL_LH_DOALL_FUNCARG fn) \ + { \ + void (*fn_conv)(cbargtype *, argtype *) = (void (*)(cbargtype *, argtype *))fn; \ + fn_conv((cbargtype *)node, (argtype *)arg); \ + } \ static ossl_unused ossl_inline void \ lh_##type##_doall_##argtype(LHASH_OF(type) *lh, \ void (*fn)(cbargtype *, argtype *), \ argtype *arg) \ { \ - OPENSSL_LH_doall_arg((OPENSSL_LHASH *)lh, (OPENSSL_LH_DOALL_FUNCARG)fn, (void *)arg); \ + OPENSSL_LH_doall_arg_thunk((OPENSSL_LHASH *)lh, \ + lh_##type##_doall_##argtype##_thunk, \ + (OPENSSL_LH_DOALL_FUNCARG)fn, \ + (void *)arg); \ } \ LHASH_OF(type) DEFINE_LHASH_OF_INTERNAL(OPENSSL_STRING); -#define lh_OPENSSL_STRING_new(hfn, cmp) ((LHASH_OF(OPENSSL_STRING) *)OPENSSL_LH_new(ossl_check_OPENSSL_STRING_lh_hashfunc_type(hfn), ossl_check_OPENSSL_STRING_lh_compfunc_type(cmp))) +#define lh_OPENSSL_STRING_new(hfn, cmp) ((LHASH_OF(OPENSSL_STRING) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new(ossl_check_OPENSSL_STRING_lh_hashfunc_type(hfn), ossl_check_OPENSSL_STRING_lh_compfunc_type(cmp)), lh_OPENSSL_STRING_hash_thunk, lh_OPENSSL_STRING_comp_thunk, lh_OPENSSL_STRING_doall_thunk, lh_OPENSSL_STRING_doall_arg_thunk)) #define lh_OPENSSL_STRING_free(lh) OPENSSL_LH_free(ossl_check_OPENSSL_STRING_lh_type(lh)) #define lh_OPENSSL_STRING_flush(lh) OPENSSL_LH_flush(ossl_check_OPENSSL_STRING_lh_type(lh)) #define lh_OPENSSL_STRING_insert(lh, ptr) ((OPENSSL_STRING *)OPENSSL_LH_insert(ossl_check_OPENSSL_STRING_lh_type(lh), ossl_check_OPENSSL_STRING_lh_plain_type(ptr))) @@ -265,7 +375,7 @@ DEFINE_LHASH_OF_INTERNAL(OPENSSL_STRING); #define lh_OPENSSL_STRING_set_down_load(lh, dl) OPENSSL_LH_set_down_load(ossl_check_OPENSSL_STRING_lh_type(lh), dl) #define lh_OPENSSL_STRING_doall(lh, dfn) OPENSSL_LH_doall(ossl_check_OPENSSL_STRING_lh_type(lh), ossl_check_OPENSSL_STRING_lh_doallfunc_type(dfn)) DEFINE_LHASH_OF_INTERNAL(OPENSSL_CSTRING); -#define lh_OPENSSL_CSTRING_new(hfn, cmp) ((LHASH_OF(OPENSSL_CSTRING) *)OPENSSL_LH_new(ossl_check_OPENSSL_CSTRING_lh_hashfunc_type(hfn), ossl_check_OPENSSL_CSTRING_lh_compfunc_type(cmp))) +#define lh_OPENSSL_CSTRING_new(hfn, cmp) ((LHASH_OF(OPENSSL_CSTRING) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new(ossl_check_OPENSSL_CSTRING_lh_hashfunc_type(hfn), ossl_check_OPENSSL_CSTRING_lh_compfunc_type(cmp)), lh_OPENSSL_CSTRING_hash_thunk, lh_OPENSSL_CSTRING_comp_thunk, lh_OPENSSL_CSTRING_doall_thunk, lh_OPENSSL_CSTRING_doall_arg_thunk)) #define lh_OPENSSL_CSTRING_free(lh) OPENSSL_LH_free(ossl_check_OPENSSL_CSTRING_lh_type(lh)) #define lh_OPENSSL_CSTRING_flush(lh) OPENSSL_LH_flush(ossl_check_OPENSSL_CSTRING_lh_type(lh)) #define lh_OPENSSL_CSTRING_insert(lh, ptr) ((OPENSSL_CSTRING *)OPENSSL_LH_insert(ossl_check_OPENSSL_CSTRING_lh_type(lh), ossl_check_OPENSSL_CSTRING_lh_plain_type(ptr))) diff --git a/deps/openssl/config/archs/linux-aarch64/asm_avx2/include/openssl/opensslv.h b/deps/openssl/config/archs/linux-aarch64/asm_avx2/include/openssl/opensslv.h index 5fb5bc63056fe0..dd50d89cb9982d 100644 --- a/deps/openssl/config/archs/linux-aarch64/asm_avx2/include/openssl/opensslv.h +++ b/deps/openssl/config/archs/linux-aarch64/asm_avx2/include/openssl/opensslv.h @@ -28,8 +28,8 @@ extern "C" { * These macros express version number MAJOR.MINOR.PATCH exactly */ # define OPENSSL_VERSION_MAJOR 3 -# define OPENSSL_VERSION_MINOR 0 -# define OPENSSL_VERSION_PATCH 17 +# define OPENSSL_VERSION_MINOR 5 +# define OPENSSL_VERSION_PATCH 1 /* * Additional version information @@ -74,8 +74,8 @@ extern "C" { * longer variant with OPENSSL_VERSION_PRE_RELEASE_STR and * OPENSSL_VERSION_BUILD_METADATA_STR appended. */ -# define OPENSSL_VERSION_STR "3.0.17" -# define OPENSSL_FULL_VERSION_STR "3.0.17" +# define OPENSSL_VERSION_STR "3.5.1" +# define OPENSSL_FULL_VERSION_STR "3.5.1" /* * SECTION 3: ADDITIONAL METADATA @@ -88,7 +88,7 @@ extern "C" { * SECTION 4: BACKWARD COMPATIBILITY */ -# define OPENSSL_VERSION_TEXT "OpenSSL 3.0.17 1 Jul 2025" +# define OPENSSL_VERSION_TEXT "OpenSSL 3.5.1 1 Jul 2025" /* Synthesize OPENSSL_VERSION_NUMBER with the layout 0xMNN00PPSL */ # ifdef OPENSSL_VERSION_PRE_RELEASE diff --git a/deps/openssl/config/archs/linux-aarch64/asm_avx2/include/openssl/pkcs12.h b/deps/openssl/config/archs/linux-aarch64/asm_avx2/include/openssl/pkcs12.h index c5e0cab06491ec..0809645dad0bbf 100644 --- a/deps/openssl/config/archs/linux-aarch64/asm_avx2/include/openssl/pkcs12.h +++ b/deps/openssl/config/archs/linux-aarch64/asm_avx2/include/openssl/pkcs12.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/pkcs12.h.in * - * Copyright 1999-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1999-2024 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -25,6 +25,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -41,6 +44,7 @@ extern "C" { # define PKCS12_MAC_KEY_LENGTH 20 +/* The macro is expected to be used only internally. Kept for backwards compatibility. */ # define PKCS12_SALT_LEN 8 /* It's not clear if these are actually needed... */ @@ -130,7 +134,9 @@ int PKCS12_SAFEBAG_get_bag_nid(const PKCS12_SAFEBAG *bag); const ASN1_TYPE *PKCS12_SAFEBAG_get0_bag_obj(const PKCS12_SAFEBAG *bag); const ASN1_OBJECT *PKCS12_SAFEBAG_get0_bag_type(const PKCS12_SAFEBAG *bag); +X509 *PKCS12_SAFEBAG_get1_cert_ex(const PKCS12_SAFEBAG *bag, OSSL_LIB_CTX *libctx, const char *propq); X509 *PKCS12_SAFEBAG_get1_cert(const PKCS12_SAFEBAG *bag); +X509_CRL *PKCS12_SAFEBAG_get1_crl_ex(const PKCS12_SAFEBAG *bag, OSSL_LIB_CTX *libctx, const char *propq); X509_CRL *PKCS12_SAFEBAG_get1_crl(const PKCS12_SAFEBAG *bag); const STACK_OF(PKCS12_SAFEBAG) * PKCS12_SAFEBAG_get0_safes(const PKCS12_SAFEBAG *bag); @@ -218,6 +224,7 @@ ASN1_TYPE *PKCS12_get_attr_gen(const STACK_OF(X509_ATTRIBUTE) *attrs, char *PKCS12_get_friendlyname(PKCS12_SAFEBAG *bag); const STACK_OF(X509_ATTRIBUTE) * PKCS12_SAFEBAG_get0_attrs(const PKCS12_SAFEBAG *bag); +void PKCS12_SAFEBAG_set0_attrs(PKCS12_SAFEBAG *bag, STACK_OF(X509_ATTRIBUTE) *attrs); unsigned char *PKCS12_pbe_crypt(const X509_ALGOR *algor, const char *pass, int passlen, const unsigned char *in, int inlen, @@ -285,6 +292,9 @@ int PKCS12_verify_mac(PKCS12 *p12, const char *pass, int passlen); int PKCS12_set_mac(PKCS12 *p12, const char *pass, int passlen, unsigned char *salt, int saltlen, int iter, const EVP_MD *md_type); +int PKCS12_set_pbmac1_pbkdf2(PKCS12 *p12, const char *pass, int passlen, + unsigned char *salt, int saltlen, int iter, + const EVP_MD *md_type, const char *prf_md_name); int PKCS12_setup_mac(PKCS12 *p12, int iter, unsigned char *salt, int saltlen, const EVP_MD *md_type); unsigned char *OPENSSL_asc2uni(const char *asc, int asclen, @@ -305,6 +315,7 @@ DECLARE_ASN1_ITEM(PKCS12_AUTHSAFES) void PKCS12_PBE_add(void); int PKCS12_parse(PKCS12 *p12, const char *pass, EVP_PKEY **pkey, X509 **cert, STACK_OF(X509) **ca); +typedef int PKCS12_create_cb(PKCS12_SAFEBAG *bag, void *cbarg); PKCS12 *PKCS12_create(const char *pass, const char *name, EVP_PKEY *pkey, X509 *cert, STACK_OF(X509) *ca, int nid_key, int nid_cert, int iter, int mac_iter, int keytype); @@ -312,6 +323,11 @@ PKCS12 *PKCS12_create_ex(const char *pass, const char *name, EVP_PKEY *pkey, X509 *cert, STACK_OF(X509) *ca, int nid_key, int nid_cert, int iter, int mac_iter, int keytype, OSSL_LIB_CTX *ctx, const char *propq); +PKCS12 *PKCS12_create_ex2(const char *pass, const char *name, EVP_PKEY *pkey, + X509 *cert, STACK_OF(X509) *ca, int nid_key, int nid_cert, + int iter, int mac_iter, int keytype, + OSSL_LIB_CTX *ctx, const char *propq, + PKCS12_create_cb *cb, void *cbarg); PKCS12_SAFEBAG *PKCS12_add_cert(STACK_OF(PKCS12_SAFEBAG) **pbags, X509 *cert); PKCS12_SAFEBAG *PKCS12_add_key(STACK_OF(PKCS12_SAFEBAG) **pbags, diff --git a/deps/openssl/config/archs/linux-aarch64/asm_avx2/include/openssl/pkcs7.h b/deps/openssl/config/archs/linux-aarch64/asm_avx2/include/openssl/pkcs7.h index 0ce79bf4fa160e..fa68462aff973b 100644 --- a/deps/openssl/config/archs/linux-aarch64/asm_avx2/include/openssl/pkcs7.h +++ b/deps/openssl/config/archs/linux-aarch64/asm_avx2/include/openssl/pkcs7.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/pkcs7.h.in * - * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -28,6 +28,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -131,8 +134,8 @@ SKM_DEFINE_STACK_OF_INTERNAL(PKCS7_RECIP_INFO, PKCS7_RECIP_INFO, PKCS7_RECIP_INF typedef struct pkcs7_signed_st { ASN1_INTEGER *version; /* version 1 */ STACK_OF(X509_ALGOR) *md_algs; /* md used */ - STACK_OF(X509) *cert; /* [ 0 ] */ - STACK_OF(X509_CRL) *crl; /* [ 1 ] */ + STACK_OF(X509) *cert; /* [ 0 ] */ /* name should be 'certificates' */ + STACK_OF(X509_CRL) *crl; /* [ 1 ] */ /* name should be 'crls' */ STACK_OF(PKCS7_SIGNER_INFO) *signer_info; struct pkcs7_st *contents; } PKCS7_SIGNED; @@ -158,8 +161,8 @@ typedef struct pkcs7_enveloped_st { typedef struct pkcs7_signedandenveloped_st { ASN1_INTEGER *version; /* version 1 */ STACK_OF(X509_ALGOR) *md_algs; /* md used */ - STACK_OF(X509) *cert; /* [ 0 ] */ - STACK_OF(X509_CRL) *crl; /* [ 1 ] */ + STACK_OF(X509) *cert; /* [ 0 ] */ /* name should be 'certificates' */ + STACK_OF(X509_CRL) *crl; /* [ 1 ] */ /* name should be 'crls' */ STACK_OF(PKCS7_SIGNER_INFO) *signer_info; PKCS7_ENC_CONTENT *enc_data; STACK_OF(PKCS7_RECIP_INFO) *recipientinfo; @@ -200,7 +203,7 @@ typedef struct pkcs7_st { /* NID_pkcs7_data */ ASN1_OCTET_STRING *data; /* NID_pkcs7_signed */ - PKCS7_SIGNED *sign; + PKCS7_SIGNED *sign; /* field name 'signed' would clash with C keyword */ /* NID_pkcs7_enveloped */ PKCS7_ENVELOPE *enveloped; /* NID_pkcs7_signedAndEnveloped */ @@ -341,13 +344,13 @@ int PKCS7_SIGNER_INFO_set(PKCS7_SIGNER_INFO *p7i, X509 *x509, EVP_PKEY *pkey, const EVP_MD *dgst); int PKCS7_SIGNER_INFO_sign(PKCS7_SIGNER_INFO *si); int PKCS7_add_signer(PKCS7 *p7, PKCS7_SIGNER_INFO *p7i); -int PKCS7_add_certificate(PKCS7 *p7, X509 *x509); -int PKCS7_add_crl(PKCS7 *p7, X509_CRL *x509); +int PKCS7_add_certificate(PKCS7 *p7, X509 *cert); +int PKCS7_add_crl(PKCS7 *p7, X509_CRL *crl); int PKCS7_content_new(PKCS7 *p7, int nid); int PKCS7_dataVerify(X509_STORE *cert_store, X509_STORE_CTX *ctx, BIO *bio, PKCS7 *p7, PKCS7_SIGNER_INFO *si); int PKCS7_signatureVerify(BIO *bio, PKCS7 *p7, PKCS7_SIGNER_INFO *si, - X509 *x509); + X509 *signer); BIO *PKCS7_dataInit(PKCS7 *p7, BIO *bio); int PKCS7_dataFinal(PKCS7 *p7, BIO *bio); diff --git a/deps/openssl/config/archs/linux-aarch64/asm_avx2/include/openssl/ssl.h b/deps/openssl/config/archs/linux-aarch64/asm_avx2/include/openssl/ssl.h index 3df725c56d6c5e..7e3d89c7ef3dc9 100644 --- a/deps/openssl/config/archs/linux-aarch64/asm_avx2/include/openssl/ssl.h +++ b/deps/openssl/config/archs/linux-aarch64/asm_avx2/include/openssl/ssl.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/ssl.h.in * - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved * Copyright 2005 Nokia. All rights reserved. * @@ -24,6 +24,7 @@ # endif # include +# include # include # include # include @@ -42,6 +43,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -231,10 +235,8 @@ typedef struct ssl_cipher_st SSL_CIPHER; typedef struct ssl_session_st SSL_SESSION; typedef struct tls_sigalgs_st TLS_SIGALGS; typedef struct ssl_conf_ctx_st SSL_CONF_CTX; -typedef struct ssl_comp_st SSL_COMP; STACK_OF(SSL_CIPHER); -STACK_OF(SSL_COMP); /* SRTP protection profiles for use with the use_srtp extension (RFC 5764)*/ typedef struct srtp_protection_profile_st { @@ -278,28 +280,31 @@ typedef int (*tls_session_secret_cb_fn)(SSL *s, void *secret, int *secret_len, /* Extension context codes */ /* This extension is only allowed in TLS */ -#define SSL_EXT_TLS_ONLY 0x0001 +#define SSL_EXT_TLS_ONLY 0x00001 /* This extension is only allowed in DTLS */ -#define SSL_EXT_DTLS_ONLY 0x0002 +#define SSL_EXT_DTLS_ONLY 0x00002 /* Some extensions may be allowed in DTLS but we don't implement them for it */ -#define SSL_EXT_TLS_IMPLEMENTATION_ONLY 0x0004 +#define SSL_EXT_TLS_IMPLEMENTATION_ONLY 0x00004 /* Most extensions are not defined for SSLv3 but EXT_TYPE_renegotiate is */ -#define SSL_EXT_SSL3_ALLOWED 0x0008 +#define SSL_EXT_SSL3_ALLOWED 0x00008 /* Extension is only defined for TLS1.2 and below */ -#define SSL_EXT_TLS1_2_AND_BELOW_ONLY 0x0010 +#define SSL_EXT_TLS1_2_AND_BELOW_ONLY 0x00010 /* Extension is only defined for TLS1.3 and above */ -#define SSL_EXT_TLS1_3_ONLY 0x0020 +#define SSL_EXT_TLS1_3_ONLY 0x00020 /* Ignore this extension during parsing if we are resuming */ -#define SSL_EXT_IGNORE_ON_RESUMPTION 0x0040 -#define SSL_EXT_CLIENT_HELLO 0x0080 +#define SSL_EXT_IGNORE_ON_RESUMPTION 0x00040 +#define SSL_EXT_CLIENT_HELLO 0x00080 /* Really means TLS1.2 or below */ -#define SSL_EXT_TLS1_2_SERVER_HELLO 0x0100 -#define SSL_EXT_TLS1_3_SERVER_HELLO 0x0200 -#define SSL_EXT_TLS1_3_ENCRYPTED_EXTENSIONS 0x0400 -#define SSL_EXT_TLS1_3_HELLO_RETRY_REQUEST 0x0800 -#define SSL_EXT_TLS1_3_CERTIFICATE 0x1000 -#define SSL_EXT_TLS1_3_NEW_SESSION_TICKET 0x2000 -#define SSL_EXT_TLS1_3_CERTIFICATE_REQUEST 0x4000 +#define SSL_EXT_TLS1_2_SERVER_HELLO 0x00100 +#define SSL_EXT_TLS1_3_SERVER_HELLO 0x00200 +#define SSL_EXT_TLS1_3_ENCRYPTED_EXTENSIONS 0x00400 +#define SSL_EXT_TLS1_3_HELLO_RETRY_REQUEST 0x00800 +#define SSL_EXT_TLS1_3_CERTIFICATE 0x01000 +#define SSL_EXT_TLS1_3_NEW_SESSION_TICKET 0x02000 +#define SSL_EXT_TLS1_3_CERTIFICATE_REQUEST 0x04000 +#define SSL_EXT_TLS1_3_CERTIFICATE_COMPRESSION 0x08000 +/* When sending a raw public key in a certificate message */ +#define SSL_EXT_TLS1_3_RAW_PUBLIC_KEY 0x10000 /* Typedefs for handling custom extensions */ @@ -404,7 +409,7 @@ typedef int (*SSL_async_callback_fn)(SSL *s, void *arg); */ # define SSL_OP_CIPHER_SERVER_PREFERENCE SSL_OP_BIT(22) /* - * If set, a server will allow a client to issue a SSLv3.0 version + * If set, a server will allow a client to issue an SSLv3.0 version * number as latest version supported in the premaster secret, even when * TLSv1.0 (version 3.1) was announced in the client hello. Normally * this is forbidden to prevent version rollback attacks. @@ -430,6 +435,19 @@ typedef int (*SSL_async_callback_fn)(SSL *s, void *arg); * interoperability with CryptoPro CSP 3.x */ # define SSL_OP_CRYPTOPRO_TLSEXT_BUG SSL_OP_BIT(31) +/* + * Disable RFC8879 certificate compression + * SSL_OP_NO_TX_CERTIFICATE_COMPRESSION: don't send compressed certificates, + * and ignore the extension when received. + * SSL_OP_NO_RX_CERTIFICATE_COMPRESSION: don't send the extension, and + * subsequently indicating that receiving is not supported + */ +# define SSL_OP_NO_TX_CERTIFICATE_COMPRESSION SSL_OP_BIT(32) +# define SSL_OP_NO_RX_CERTIFICATE_COMPRESSION SSL_OP_BIT(33) + /* Enable KTLS TX zerocopy on Linux */ +# define SSL_OP_ENABLE_KTLS_TX_ZEROCOPY_SENDFILE SSL_OP_BIT(34) + +#define SSL_OP_PREFER_NO_DHE_KEX SSL_OP_BIT(35) /* * Option "collections." @@ -574,6 +592,8 @@ typedef int (*SSL_async_callback_fn)(SSL *s, void *arg); # define CERT_PKEY_CERT_TYPE 0x400 /* Cert chain suitable to Suite B */ # define CERT_PKEY_SUITEB 0x800 +/* Cert pkey valid for raw public key use */ +# define CERT_PKEY_RPK 0x1000 # define SSL_CONF_FLAG_CMDLINE 0x1 # define SSL_CONF_FLAG_FILE 0x2 @@ -965,6 +985,7 @@ uint32_t SSL_get_recv_max_early_data(const SSL *s); # include /* This is mostly sslv3 with a few tweaks */ # include /* Datagram TLS */ # include /* Support for the use_srtp extension */ +# include #ifdef __cplusplus extern "C" { @@ -1000,32 +1021,6 @@ SKM_DEFINE_STACK_OF_INTERNAL(SSL_CIPHER, const SSL_CIPHER, SSL_CIPHER) #define sk_SSL_CIPHER_dup(sk) ((STACK_OF(SSL_CIPHER) *)OPENSSL_sk_dup(ossl_check_const_SSL_CIPHER_sk_type(sk))) #define sk_SSL_CIPHER_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(SSL_CIPHER) *)OPENSSL_sk_deep_copy(ossl_check_const_SSL_CIPHER_sk_type(sk), ossl_check_SSL_CIPHER_copyfunc_type(copyfunc), ossl_check_SSL_CIPHER_freefunc_type(freefunc))) #define sk_SSL_CIPHER_set_cmp_func(sk, cmp) ((sk_SSL_CIPHER_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_SSL_CIPHER_sk_type(sk), ossl_check_SSL_CIPHER_compfunc_type(cmp))) -SKM_DEFINE_STACK_OF_INTERNAL(SSL_COMP, SSL_COMP, SSL_COMP) -#define sk_SSL_COMP_num(sk) OPENSSL_sk_num(ossl_check_const_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_value(sk, idx) ((SSL_COMP *)OPENSSL_sk_value(ossl_check_const_SSL_COMP_sk_type(sk), (idx))) -#define sk_SSL_COMP_new(cmp) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new(ossl_check_SSL_COMP_compfunc_type(cmp))) -#define sk_SSL_COMP_new_null() ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new_null()) -#define sk_SSL_COMP_new_reserve(cmp, n) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new_reserve(ossl_check_SSL_COMP_compfunc_type(cmp), (n))) -#define sk_SSL_COMP_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_SSL_COMP_sk_type(sk), (n)) -#define sk_SSL_COMP_free(sk) OPENSSL_sk_free(ossl_check_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_zero(sk) OPENSSL_sk_zero(ossl_check_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_delete(sk, i) ((SSL_COMP *)OPENSSL_sk_delete(ossl_check_SSL_COMP_sk_type(sk), (i))) -#define sk_SSL_COMP_delete_ptr(sk, ptr) ((SSL_COMP *)OPENSSL_sk_delete_ptr(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr))) -#define sk_SSL_COMP_push(sk, ptr) OPENSSL_sk_push(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) -#define sk_SSL_COMP_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) -#define sk_SSL_COMP_pop(sk) ((SSL_COMP *)OPENSSL_sk_pop(ossl_check_SSL_COMP_sk_type(sk))) -#define sk_SSL_COMP_shift(sk) ((SSL_COMP *)OPENSSL_sk_shift(ossl_check_SSL_COMP_sk_type(sk))) -#define sk_SSL_COMP_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_SSL_COMP_sk_type(sk),ossl_check_SSL_COMP_freefunc_type(freefunc)) -#define sk_SSL_COMP_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr), (idx)) -#define sk_SSL_COMP_set(sk, idx, ptr) ((SSL_COMP *)OPENSSL_sk_set(ossl_check_SSL_COMP_sk_type(sk), (idx), ossl_check_SSL_COMP_type(ptr))) -#define sk_SSL_COMP_find(sk, ptr) OPENSSL_sk_find(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) -#define sk_SSL_COMP_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) -#define sk_SSL_COMP_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr), pnum) -#define sk_SSL_COMP_sort(sk) OPENSSL_sk_sort(ossl_check_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_dup(sk) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_dup(ossl_check_const_SSL_COMP_sk_type(sk))) -#define sk_SSL_COMP_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_deep_copy(ossl_check_const_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_copyfunc_type(copyfunc), ossl_check_SSL_COMP_freefunc_type(freefunc))) -#define sk_SSL_COMP_set_cmp_func(sk, cmp) ((sk_SSL_COMP_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_compfunc_type(cmp))) /* compatibility */ @@ -1066,6 +1061,7 @@ typedef enum { DTLS_ST_CR_HELLO_VERIFY_REQUEST, TLS_ST_CR_SRVR_HELLO, TLS_ST_CR_CERT, + TLS_ST_CR_COMP_CERT, TLS_ST_CR_CERT_STATUS, TLS_ST_CR_KEY_EXCH, TLS_ST_CR_CERT_REQ, @@ -1075,6 +1071,7 @@ typedef enum { TLS_ST_CR_FINISHED, TLS_ST_CW_CLNT_HELLO, TLS_ST_CW_CERT, + TLS_ST_CW_COMP_CERT, TLS_ST_CW_KEY_EXCH, TLS_ST_CW_CERT_VRFY, TLS_ST_CW_CHANGE, @@ -1085,10 +1082,12 @@ typedef enum { DTLS_ST_SW_HELLO_VERIFY_REQUEST, TLS_ST_SW_SRVR_HELLO, TLS_ST_SW_CERT, + TLS_ST_SW_COMP_CERT, TLS_ST_SW_KEY_EXCH, TLS_ST_SW_CERT_REQ, TLS_ST_SW_SRVR_DONE, TLS_ST_SR_CERT, + TLS_ST_SR_COMP_CERT, TLS_ST_SR_KEY_EXCH, TLS_ST_SR_CERT_VRFY, TLS_ST_SR_NEXT_PROTO, @@ -1380,9 +1379,13 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) # define SSL_CTRL_GET_SIGNATURE_NID 132 # define SSL_CTRL_GET_TMP_KEY 133 # define SSL_CTRL_GET_NEGOTIATED_GROUP 134 +# define SSL_CTRL_GET_IANA_GROUPS 135 # define SSL_CTRL_SET_RETRY_VERIFY 136 # define SSL_CTRL_GET_VERIFY_CERT_STORE 137 # define SSL_CTRL_GET_CHAIN_CERT_STORE 138 +# define SSL_CTRL_GET0_IMPLEMENTED_GROUPS 139 +# define SSL_CTRL_GET_SIGNATURE_NAME 140 +# define SSL_CTRL_GET_PEER_SIGNATURE_NAME 141 # define SSL_CERT_SET_FIRST 1 # define SSL_CERT_SET_NEXT 2 # define SSL_CERT_SET_SERVER 3 @@ -1485,10 +1488,15 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) # define SSL_get1_groups(s, glist) \ SSL_ctrl(s,SSL_CTRL_GET_GROUPS,0,(int*)(glist)) +# define SSL_get0_iana_groups(s, plst) \ + SSL_ctrl(s,SSL_CTRL_GET_IANA_GROUPS,0,(uint16_t **)(plst)) # define SSL_CTX_set1_groups(ctx, glist, glistlen) \ SSL_CTX_ctrl(ctx,SSL_CTRL_SET_GROUPS,glistlen,(int *)(glist)) # define SSL_CTX_set1_groups_list(ctx, s) \ SSL_CTX_ctrl(ctx,SSL_CTRL_SET_GROUPS_LIST,0,(char *)(s)) +# define SSL_CTX_get0_implemented_groups(ctx, all, out) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_GET0_IMPLEMENTED_GROUPS, all, \ + (STACK_OF(OPENSSL_CSTRING) *)(out)) # define SSL_set1_groups(s, glist, glistlen) \ SSL_ctrl(s,SSL_CTRL_SET_GROUPS,glistlen,(char *)(glist)) # define SSL_set1_groups_list(s, str) \ @@ -1520,8 +1528,12 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) (char *)(clist)) # define SSL_set1_client_certificate_types(s, clist, clistlen) \ SSL_ctrl(s,SSL_CTRL_SET_CLIENT_CERT_TYPES,clistlen,(char *)(clist)) +# define SSL_get0_signature_name(s, str) \ + SSL_ctrl(s,SSL_CTRL_GET_SIGNATURE_NAME,0,(1?(str):(const char **)NULL)) # define SSL_get_signature_nid(s, pn) \ SSL_ctrl(s,SSL_CTRL_GET_SIGNATURE_NID,0,pn) +# define SSL_get0_peer_signature_name(s, str) \ + SSL_ctrl(s,SSL_CTRL_GET_PEER_SIGNATURE_NAME,0,(1?(str):(const char **)NULL)) # define SSL_get_peer_signature_nid(s, pn) \ SSL_ctrl(s,SSL_CTRL_GET_PEER_SIGNATURE_NID,0,pn) # define SSL_get_peer_tmp_key(s, pk) \ @@ -1549,6 +1561,7 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) # define SSL_get_max_proto_version(s) \ SSL_ctrl(s, SSL_CTRL_GET_MAX_PROTO_VERSION, 0, NULL) +const char *SSL_get0_group_name(SSL *s); const char *SSL_group_to_name(SSL *s, int id); /* Backwards compatibility, original 1.1.0 names */ @@ -1613,7 +1626,11 @@ void SSL_CTX_set1_cert_store(SSL_CTX *, X509_STORE *); __owur int SSL_want(const SSL *s); __owur int SSL_clear(SSL *s); +#ifndef OPENSSL_NO_DEPRECATED_3_4 +OSSL_DEPRECATEDIN_3_4_FOR("not Y2038-safe, replace with SSL_CTX_flush_sessions_ex()") void SSL_CTX_flush_sessions(SSL_CTX *ctx, long tm); +#endif +void SSL_CTX_flush_sessions_ex(SSL_CTX *ctx, time_t tm); __owur const SSL_CIPHER *SSL_get_current_cipher(const SSL *s); __owur const SSL_CIPHER *SSL_get_pending_cipher(const SSL *s); @@ -1725,13 +1742,21 @@ __owur const char *SSL_state_string(const SSL *s); __owur const char *SSL_rstate_string(const SSL *s); __owur const char *SSL_state_string_long(const SSL *s); __owur const char *SSL_rstate_string_long(const SSL *s); + +#ifndef OPENSSL_NO_DEPRECATED_3_4 +OSSL_DEPRECATEDIN_3_4_FOR("not Y2038-safe, replace with SSL_SESSION_get_time_ex()") __owur long SSL_SESSION_get_time(const SSL_SESSION *s); +OSSL_DEPRECATEDIN_3_4_FOR("not Y2038-safe, replace with SSL_SESSION_set_time_ex()") __owur long SSL_SESSION_set_time(SSL_SESSION *s, long t); +#endif __owur long SSL_SESSION_get_timeout(const SSL_SESSION *s); __owur long SSL_SESSION_set_timeout(SSL_SESSION *s, long t); __owur int SSL_SESSION_get_protocol_version(const SSL_SESSION *s); __owur int SSL_SESSION_set_protocol_version(SSL_SESSION *s, int version); +__owur time_t SSL_SESSION_get_time_ex(const SSL_SESSION *s); +__owur time_t SSL_SESSION_set_time_ex(SSL_SESSION *s, time_t t); + __owur const char *SSL_SESSION_get0_hostname(const SSL_SESSION *s); __owur int SSL_SESSION_set1_hostname(SSL_SESSION *s, const char *hostname); void SSL_SESSION_get0_alpn_selected(const SSL_SESSION *s, @@ -1783,6 +1808,9 @@ __owur int SSL_has_matching_session_id(const SSL *s, unsigned int id_len); SSL_SESSION *d2i_SSL_SESSION(SSL_SESSION **a, const unsigned char **pp, long length); +SSL_SESSION *d2i_SSL_SESSION_ex(SSL_SESSION **a, const unsigned char **pp, + long length, OSSL_LIB_CTX *libctx, + const char *propq); # ifdef OPENSSL_X509_H __owur X509 *SSL_get0_peer_certificate(const SSL *s); @@ -1840,6 +1868,8 @@ __owur int SSL_CTX_set_session_id_context(SSL_CTX *ctx, SSL *SSL_new(SSL_CTX *ctx); int SSL_up_ref(SSL *s); int SSL_is_dtls(const SSL *s); +int SSL_is_tls(const SSL *s); +int SSL_is_quic(const SSL *s); __owur int SSL_set_session_id_context(SSL *ssl, const unsigned char *sid_ctx, unsigned int sid_ctx_len); @@ -1848,8 +1878,8 @@ __owur int SSL_set_purpose(SSL *ssl, int purpose); __owur int SSL_CTX_set_trust(SSL_CTX *ctx, int trust); __owur int SSL_set_trust(SSL *ssl, int trust); -__owur int SSL_set1_host(SSL *s, const char *hostname); -__owur int SSL_add1_host(SSL *s, const char *hostname); +__owur int SSL_set1_host(SSL *s, const char *host); +__owur int SSL_add1_host(SSL *s, const char *host); __owur const char *SSL_get0_peername(SSL *s); void SSL_set_hostflags(SSL *s, unsigned int flags); @@ -1924,6 +1954,11 @@ OSSL_DEPRECATEDIN_3_0 __owur char *SSL_get_srp_userinfo(SSL *s); typedef int (*SSL_client_hello_cb_fn) (SSL *s, int *al, void *arg); void SSL_CTX_set_client_hello_cb(SSL_CTX *c, SSL_client_hello_cb_fn cb, void *arg); +typedef int (*SSL_new_pending_conn_cb_fn) (SSL_CTX *ctx, SSL *new_ssl, + void *arg); +void SSL_CTX_set_new_pending_conn_cb(SSL_CTX *c, SSL_new_pending_conn_cb_fn cb, + void *arg); + int SSL_client_hello_isv2(SSL *s); unsigned int SSL_client_hello_get0_legacy_version(SSL *s); size_t SSL_client_hello_get0_random(SSL *s, const unsigned char **out); @@ -1932,6 +1967,8 @@ size_t SSL_client_hello_get0_ciphers(SSL *s, const unsigned char **out); size_t SSL_client_hello_get0_compression_methods(SSL *s, const unsigned char **out); int SSL_client_hello_get1_extensions_present(SSL *s, int **out, size_t *outlen); +int SSL_client_hello_get_extension_order(SSL *s, uint16_t *exts, + size_t *num_exts); int SSL_client_hello_get0_ext(SSL *s, unsigned int type, const unsigned char **out, size_t *outlen); @@ -1978,6 +2015,12 @@ long SSL_callback_ctrl(SSL *, int, void (*)(void)); long SSL_CTX_ctrl(SSL_CTX *ctx, int cmd, long larg, void *parg); long SSL_CTX_callback_ctrl(SSL_CTX *, int, void (*)(void)); +# define SSL_WRITE_FLAG_CONCLUDE (1U << 0) + +__owur int SSL_write_ex2(SSL *s, const void *buf, size_t num, + uint64_t flags, + size_t *written); + # define SSL_EARLY_DATA_NOT_SENT 0 # define SSL_EARLY_DATA_REJECTED 1 # define SSL_EARLY_DATA_ACCEPTED 2 @@ -1986,6 +2029,7 @@ __owur int SSL_get_early_data_status(const SSL *s); __owur int SSL_get_error(const SSL *s, int ret_code); __owur const char *SSL_get_version(const SSL *s); +__owur int SSL_get_handshake_rtt(const SSL *s, uint64_t *rtt); /* This sets the 'default' SSL version that SSL_new() will create */ # ifndef OPENSSL_NO_DEPRECATED_3_0 @@ -2281,6 +2325,8 @@ void SSL_CTX_set_record_padding_callback(SSL_CTX *ctx, void SSL_CTX_set_record_padding_callback_arg(SSL_CTX *ctx, void *arg); void *SSL_CTX_get_record_padding_callback_arg(const SSL_CTX *ctx); int SSL_CTX_set_block_padding(SSL_CTX *ctx, size_t block_size); +int SSL_CTX_set_block_padding_ex(SSL_CTX *ctx, size_t app_block_size, + size_t hs_block_size); int SSL_set_record_padding_callback(SSL *ssl, size_t (*cb) (SSL *ssl, int type, @@ -2288,12 +2334,255 @@ int SSL_set_record_padding_callback(SSL *ssl, void SSL_set_record_padding_callback_arg(SSL *ssl, void *arg); void *SSL_get_record_padding_callback_arg(const SSL *ssl); int SSL_set_block_padding(SSL *ssl, size_t block_size); - +int SSL_set_block_padding_ex(SSL *ssl, size_t app_block_size, + size_t hs_block_size); int SSL_set_num_tickets(SSL *s, size_t num_tickets); size_t SSL_get_num_tickets(const SSL *s); int SSL_CTX_set_num_tickets(SSL_CTX *ctx, size_t num_tickets); size_t SSL_CTX_get_num_tickets(const SSL_CTX *ctx); +/* QUIC support */ +int SSL_handle_events(SSL *s); +__owur int SSL_get_event_timeout(SSL *s, struct timeval *tv, int *is_infinite); +__owur int SSL_get_rpoll_descriptor(SSL *s, BIO_POLL_DESCRIPTOR *desc); +__owur int SSL_get_wpoll_descriptor(SSL *s, BIO_POLL_DESCRIPTOR *desc); +__owur int SSL_net_read_desired(SSL *s); +__owur int SSL_net_write_desired(SSL *s); +__owur int SSL_set_blocking_mode(SSL *s, int blocking); +__owur int SSL_get_blocking_mode(SSL *s); +__owur int SSL_set1_initial_peer_addr(SSL *s, const BIO_ADDR *peer_addr); +__owur SSL *SSL_get0_connection(SSL *s); +__owur int SSL_is_connection(SSL *s); + +__owur int SSL_is_listener(SSL *ssl); +__owur SSL *SSL_get0_listener(SSL *s); +#define SSL_LISTENER_FLAG_NO_VALIDATE (1UL << 1) +__owur SSL *SSL_new_listener(SSL_CTX *ctx, uint64_t flags); +__owur SSL *SSL_new_listener_from(SSL *ssl, uint64_t flags); +__owur SSL *SSL_new_from_listener(SSL *ssl, uint64_t flags); +#define SSL_ACCEPT_CONNECTION_NO_BLOCK (1UL << 0) +__owur SSL *SSL_accept_connection(SSL *ssl, uint64_t flags); +__owur size_t SSL_get_accept_connection_queue_len(SSL *ssl); +__owur int SSL_listen(SSL *ssl); + +__owur int SSL_is_domain(SSL *s); +__owur SSL *SSL_get0_domain(SSL *s); +__owur SSL *SSL_new_domain(SSL_CTX *ctx, uint64_t flags); + +#define SSL_DOMAIN_FLAG_SINGLE_THREAD (1U << 0) +#define SSL_DOMAIN_FLAG_MULTI_THREAD (1U << 1) +#define SSL_DOMAIN_FLAG_THREAD_ASSISTED (1U << 2) +#define SSL_DOMAIN_FLAG_BLOCKING (1U << 3) +#define SSL_DOMAIN_FLAG_LEGACY_BLOCKING (1U << 4) + +__owur int SSL_CTX_set_domain_flags(SSL_CTX *ctx, uint64_t domain_flags); +__owur int SSL_CTX_get_domain_flags(const SSL_CTX *ctx, uint64_t *domain_flags); +__owur int SSL_get_domain_flags(const SSL *ssl, uint64_t *domain_flags); + +#define SSL_STREAM_TYPE_NONE 0 +#define SSL_STREAM_TYPE_READ (1U << 0) +#define SSL_STREAM_TYPE_WRITE (1U << 1) +#define SSL_STREAM_TYPE_BIDI (SSL_STREAM_TYPE_READ | SSL_STREAM_TYPE_WRITE) +__owur int SSL_get_stream_type(SSL *s); + +__owur uint64_t SSL_get_stream_id(SSL *s); +__owur int SSL_is_stream_local(SSL *s); + +#define SSL_DEFAULT_STREAM_MODE_NONE 0 +#define SSL_DEFAULT_STREAM_MODE_AUTO_BIDI 1 +#define SSL_DEFAULT_STREAM_MODE_AUTO_UNI 2 +__owur int SSL_set_default_stream_mode(SSL *s, uint32_t mode); + +#define SSL_STREAM_FLAG_UNI (1U << 0) +#define SSL_STREAM_FLAG_NO_BLOCK (1U << 1) +#define SSL_STREAM_FLAG_ADVANCE (1U << 2) +__owur SSL *SSL_new_stream(SSL *s, uint64_t flags); + +#define SSL_INCOMING_STREAM_POLICY_AUTO 0 +#define SSL_INCOMING_STREAM_POLICY_ACCEPT 1 +#define SSL_INCOMING_STREAM_POLICY_REJECT 2 +__owur int SSL_set_incoming_stream_policy(SSL *s, int policy, uint64_t aec); + +#define SSL_ACCEPT_STREAM_NO_BLOCK (1U << 0) +__owur SSL *SSL_accept_stream(SSL *s, uint64_t flags); +__owur size_t SSL_get_accept_stream_queue_len(SSL *s); + +# ifndef OPENSSL_NO_QUIC +__owur int SSL_inject_net_dgram(SSL *s, const unsigned char *buf, + size_t buf_len, + const BIO_ADDR *peer, + const BIO_ADDR *local); +# endif + +typedef struct ssl_shutdown_ex_args_st { + uint64_t quic_error_code; + const char *quic_reason; +} SSL_SHUTDOWN_EX_ARGS; + +#define SSL_SHUTDOWN_FLAG_RAPID (1U << 0) +#define SSL_SHUTDOWN_FLAG_NO_STREAM_FLUSH (1U << 1) +#define SSL_SHUTDOWN_FLAG_NO_BLOCK (1U << 2) +#define SSL_SHUTDOWN_FLAG_WAIT_PEER (1U << 3) + +__owur int SSL_shutdown_ex(SSL *ssl, uint64_t flags, + const SSL_SHUTDOWN_EX_ARGS *args, + size_t args_len); + +__owur int SSL_stream_conclude(SSL *ssl, uint64_t flags); + +typedef struct ssl_stream_reset_args_st { + uint64_t quic_error_code; +} SSL_STREAM_RESET_ARGS; + +__owur int SSL_stream_reset(SSL *ssl, + const SSL_STREAM_RESET_ARGS *args, + size_t args_len); + +#define SSL_STREAM_STATE_NONE 0 +#define SSL_STREAM_STATE_OK 1 +#define SSL_STREAM_STATE_WRONG_DIR 2 +#define SSL_STREAM_STATE_FINISHED 3 +#define SSL_STREAM_STATE_RESET_LOCAL 4 +#define SSL_STREAM_STATE_RESET_REMOTE 5 +#define SSL_STREAM_STATE_CONN_CLOSED 6 +__owur int SSL_get_stream_read_state(SSL *ssl); +__owur int SSL_get_stream_write_state(SSL *ssl); + +__owur int SSL_get_stream_read_error_code(SSL *ssl, uint64_t *app_error_code); +__owur int SSL_get_stream_write_error_code(SSL *ssl, uint64_t *app_error_code); + +#define SSL_CONN_CLOSE_FLAG_LOCAL (1U << 0) +#define SSL_CONN_CLOSE_FLAG_TRANSPORT (1U << 1) + +typedef struct ssl_conn_close_info_st { + uint64_t error_code, frame_type; + const char *reason; + size_t reason_len; + uint32_t flags; +} SSL_CONN_CLOSE_INFO; + +__owur int SSL_get_conn_close_info(SSL *ssl, + SSL_CONN_CLOSE_INFO *info, + size_t info_len); + +# define SSL_VALUE_CLASS_GENERIC 0 +# define SSL_VALUE_CLASS_FEATURE_REQUEST 1 +# define SSL_VALUE_CLASS_FEATURE_PEER_REQUEST 2 +# define SSL_VALUE_CLASS_FEATURE_NEGOTIATED 3 + +# define SSL_VALUE_NONE 0 +# define SSL_VALUE_QUIC_STREAM_BIDI_LOCAL_AVAIL 1 +# define SSL_VALUE_QUIC_STREAM_BIDI_REMOTE_AVAIL 2 +# define SSL_VALUE_QUIC_STREAM_UNI_LOCAL_AVAIL 3 +# define SSL_VALUE_QUIC_STREAM_UNI_REMOTE_AVAIL 4 +# define SSL_VALUE_QUIC_IDLE_TIMEOUT 5 +# define SSL_VALUE_EVENT_HANDLING_MODE 6 +# define SSL_VALUE_STREAM_WRITE_BUF_SIZE 7 +# define SSL_VALUE_STREAM_WRITE_BUF_USED 8 +# define SSL_VALUE_STREAM_WRITE_BUF_AVAIL 9 + +# define SSL_VALUE_EVENT_HANDLING_MODE_INHERIT 0 +# define SSL_VALUE_EVENT_HANDLING_MODE_IMPLICIT 1 +# define SSL_VALUE_EVENT_HANDLING_MODE_EXPLICIT 2 + +int SSL_get_value_uint(SSL *s, uint32_t class_, uint32_t id, uint64_t *v); +int SSL_set_value_uint(SSL *s, uint32_t class_, uint32_t id, uint64_t v); + +# define SSL_get_generic_value_uint(ssl, id, v) \ + SSL_get_value_uint((ssl), SSL_VALUE_CLASS_GENERIC, (id), (v)) +# define SSL_set_generic_value_uint(ssl, id, v) \ + SSL_set_value_uint((ssl), SSL_VALUE_CLASS_GENERIC, (id), (v)) +# define SSL_get_feature_request_uint(ssl, id, v) \ + SSL_get_value_uint((ssl), SSL_VALUE_CLASS_FEATURE_REQUEST, (id), (v)) +# define SSL_set_feature_request_uint(ssl, id, v) \ + SSL_set_value_uint((ssl), SSL_VALUE_CLASS_FEATURE_REQUEST, (id), (v)) +# define SSL_get_feature_peer_request_uint(ssl, id, v) \ + SSL_get_value_uint((ssl), SSL_VALUE_CLASS_FEATURE_PEER_REQUEST, (id), (v)) +# define SSL_get_feature_negotiated_uint(ssl, id, v) \ + SSL_get_value_uint((ssl), SSL_VALUE_CLASS_FEATURE_NEGOTIATED, (id), (v)) + +# define SSL_get_quic_stream_bidi_local_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_QUIC_STREAM_BIDI_LOCAL_AVAIL, \ + (value)) +# define SSL_get_quic_stream_bidi_remote_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_QUIC_STREAM_BIDI_REMOTE_AVAIL, \ + (value)) +# define SSL_get_quic_stream_uni_local_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_QUIC_STREAM_UNI_LOCAL_AVAIL, \ + (value)) +# define SSL_get_quic_stream_uni_remote_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_QUIC_STREAM_UNI_REMOTE_AVAIL, \ + (value)) + +# define SSL_get_event_handling_mode(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_EVENT_HANDLING_MODE, \ + (value)) +# define SSL_set_event_handling_mode(ssl, value) \ + SSL_set_generic_value_uint((ssl), SSL_VALUE_EVENT_HANDLING_MODE, \ + (value)) + +# define SSL_get_stream_write_buf_size(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_STREAM_WRITE_BUF_SIZE, \ + (value)) +# define SSL_get_stream_write_buf_used(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_STREAM_WRITE_BUF_USED, \ + (value)) +# define SSL_get_stream_write_buf_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_STREAM_WRITE_BUF_AVAIL, \ + (value)) + +# define SSL_POLL_EVENT_NONE 0 + +# define SSL_POLL_EVENT_F (1U << 0) /* F (Failure) */ +# define SSL_POLL_EVENT_EL (1U << 1) /* EL (Exception on Listener) */ +# define SSL_POLL_EVENT_EC (1U << 2) /* EC (Exception on Conn) */ +# define SSL_POLL_EVENT_ECD (1U << 3) /* ECD (Exception on Conn Drained) */ +# define SSL_POLL_EVENT_ER (1U << 4) /* ER (Exception on Read) */ +# define SSL_POLL_EVENT_EW (1U << 5) /* EW (Exception on Write) */ +# define SSL_POLL_EVENT_R (1U << 6) /* R (Readable) */ +# define SSL_POLL_EVENT_W (1U << 7) /* W (Writable) */ +# define SSL_POLL_EVENT_IC (1U << 8) /* IC (Incoming Connection) */ +# define SSL_POLL_EVENT_ISB (1U << 9) /* ISB (Incoming Stream: Bidi) */ +# define SSL_POLL_EVENT_ISU (1U << 10) /* ISU (Incoming Stream: Uni) */ +# define SSL_POLL_EVENT_OSB (1U << 11) /* OSB (Outgoing Stream: Bidi) */ +# define SSL_POLL_EVENT_OSU (1U << 12) /* OSU (Outgoing Stream: Uni) */ + +# define SSL_POLL_EVENT_RW (SSL_POLL_EVENT_R | SSL_POLL_EVENT_W) +# define SSL_POLL_EVENT_RE (SSL_POLL_EVENT_R | SSL_POLL_EVENT_ER) +# define SSL_POLL_EVENT_WE (SSL_POLL_EVENT_W | SSL_POLL_EVENT_EW) +# define SSL_POLL_EVENT_RWE (SSL_POLL_EVENT_RE | SSL_POLL_EVENT_WE) +# define SSL_POLL_EVENT_E (SSL_POLL_EVENT_EL | SSL_POLL_EVENT_EC \ + | SSL_POLL_EVENT_ER | SSL_POLL_EVENT_EW) +# define SSL_POLL_EVENT_IS (SSL_POLL_EVENT_ISB | SSL_POLL_EVENT_ISU) +# define SSL_POLL_EVENT_ISE (SSL_POLL_EVENT_IS | SSL_POLL_EVENT_EC) +# define SSL_POLL_EVENT_I (SSL_POLL_EVENT_IS | SSL_POLL_EVENT_IC) +# define SSL_POLL_EVENT_OS (SSL_POLL_EVENT_OSB | SSL_POLL_EVENT_OSU) +# define SSL_POLL_EVENT_OSE (SSL_POLL_EVENT_OS | SSL_POLL_EVENT_EC) + +typedef struct ssl_poll_item_st { + BIO_POLL_DESCRIPTOR desc; + uint64_t events, revents; +} SSL_POLL_ITEM; + +# define SSL_POLL_FLAG_NO_HANDLE_EVENTS (1U << 0) + +__owur int SSL_poll(SSL_POLL_ITEM *items, + size_t num_items, + size_t stride, + const struct timeval *timeout, + uint64_t flags, + size_t *result_count); + +static ossl_inline ossl_unused BIO_POLL_DESCRIPTOR +SSL_as_poll_descriptor(SSL *s) +{ + BIO_POLL_DESCRIPTOR d; + + d.type = BIO_POLL_DESCRIPTOR_TYPE_SSL; + d.value.ssl = s; + return d; +} + # ifndef OPENSSL_NO_DEPRECATED_1_1_0 # define SSL_cache_hit(s) SSL_session_reused(s) # endif @@ -2593,6 +2882,51 @@ void SSL_set_allow_early_data_cb(SSL *s, const char *OSSL_default_cipher_list(void); const char *OSSL_default_ciphersuites(void); +/* RFC8879 Certificate compression APIs */ + +int SSL_CTX_compress_certs(SSL_CTX *ctx, int alg); +int SSL_compress_certs(SSL *ssl, int alg); + +int SSL_CTX_set1_cert_comp_preference(SSL_CTX *ctx, int *algs, size_t len); +int SSL_set1_cert_comp_preference(SSL *ssl, int *algs, size_t len); + +int SSL_CTX_set1_compressed_cert(SSL_CTX *ctx, int algorithm, unsigned char *comp_data, + size_t comp_length, size_t orig_length); +int SSL_set1_compressed_cert(SSL *ssl, int algorithm, unsigned char *comp_data, + size_t comp_length, size_t orig_length); +size_t SSL_CTX_get1_compressed_cert(SSL_CTX *ctx, int alg, unsigned char **data, size_t *orig_len); +size_t SSL_get1_compressed_cert(SSL *ssl, int alg, unsigned char **data, size_t *orig_len); + +__owur int SSL_add_expected_rpk(SSL *s, EVP_PKEY *rpk); +__owur EVP_PKEY *SSL_get0_peer_rpk(const SSL *s); +__owur EVP_PKEY *SSL_SESSION_get0_peer_rpk(SSL_SESSION *s); +__owur int SSL_get_negotiated_client_cert_type(const SSL *s); +__owur int SSL_get_negotiated_server_cert_type(const SSL *s); + +__owur int SSL_set1_client_cert_type(SSL *s, const unsigned char *val, size_t len); +__owur int SSL_set1_server_cert_type(SSL *s, const unsigned char *val, size_t len); +__owur int SSL_CTX_set1_client_cert_type(SSL_CTX *ctx, const unsigned char *val, size_t len); +__owur int SSL_CTX_set1_server_cert_type(SSL_CTX *ctx, const unsigned char *val, size_t len); +__owur int SSL_get0_client_cert_type(const SSL *s, unsigned char **t, size_t *len); +__owur int SSL_get0_server_cert_type(const SSL *s, unsigned char **t, size_t *len); +__owur int SSL_CTX_get0_client_cert_type(const SSL_CTX *ctx, unsigned char **t, size_t *len); +__owur int SSL_CTX_get0_server_cert_type(const SSL_CTX *s, unsigned char **t, size_t *len); + +/* + * Protection level. For <= TLSv1.2 only "NONE" and "APPLICATION" are used. + */ +# define OSSL_RECORD_PROTECTION_LEVEL_NONE 0 +# define OSSL_RECORD_PROTECTION_LEVEL_EARLY 1 +# define OSSL_RECORD_PROTECTION_LEVEL_HANDSHAKE 2 +# define OSSL_RECORD_PROTECTION_LEVEL_APPLICATION 3 + +int SSL_set_quic_tls_cbs(SSL *s, const OSSL_DISPATCH *qtdis, void *arg); +int SSL_set_quic_tls_transport_params(SSL *s, + const unsigned char *params, + size_t params_len); + +int SSL_set_quic_tls_early_data_enabled(SSL *s, int enabled); + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/linux-aarch64/asm_avx2/include/openssl/x509.h b/deps/openssl/config/archs/linux-aarch64/asm_avx2/include/openssl/x509.h index 1f7755e5b69c75..d013458c226461 100644 --- a/deps/openssl/config/archs/linux-aarch64/asm_avx2/include/openssl/x509.h +++ b/deps/openssl/config/archs/linux-aarch64/asm_avx2/include/openssl/x509.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/x509.h.in * - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2024 The OpenSSL Project Authors. All Rights Reserved. * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved * * Licensed under the Apache License 2.0 (the "License"). You may not use @@ -40,6 +40,9 @@ # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -162,16 +165,24 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_CRL, X509_CRL, X509_CRL) # define X509_FILETYPE_ASN1 2 # define X509_FILETYPE_DEFAULT 3 -# define X509v3_KU_DIGITAL_SIGNATURE 0x0080 -# define X509v3_KU_NON_REPUDIATION 0x0040 -# define X509v3_KU_KEY_ENCIPHERMENT 0x0020 -# define X509v3_KU_DATA_ENCIPHERMENT 0x0010 -# define X509v3_KU_KEY_AGREEMENT 0x0008 -# define X509v3_KU_KEY_CERT_SIGN 0x0004 -# define X509v3_KU_CRL_SIGN 0x0002 -# define X509v3_KU_ENCIPHER_ONLY 0x0001 -# define X509v3_KU_DECIPHER_ONLY 0x8000 -# define X509v3_KU_UNDEF 0xffff +/*- + * : + * The KeyUsage BITSTRING is treated as a little-endian integer, hence bit `0` + * is 0x80, while bit `7` is 0x01 (the LSB of the integer value), bit `8` is + * then the MSB of the second octet, or 0x8000. + */ +# define X509v3_KU_DIGITAL_SIGNATURE 0x0080 /* (0) */ +# define X509v3_KU_NON_REPUDIATION 0x0040 /* (1) */ +# define X509v3_KU_KEY_ENCIPHERMENT 0x0020 /* (2) */ +# define X509v3_KU_DATA_ENCIPHERMENT 0x0010 /* (3) */ +# define X509v3_KU_KEY_AGREEMENT 0x0008 /* (4) */ +# define X509v3_KU_KEY_CERT_SIGN 0x0004 /* (5) */ +# define X509v3_KU_CRL_SIGN 0x0002 /* (6) */ +# define X509v3_KU_ENCIPHER_ONLY 0x0001 /* (7) */ +# define X509v3_KU_DECIPHER_ONLY 0x8000 /* (8) */ +# ifndef OPENSSL_NO_DEPRECATED_3_4 +# define X509v3_KU_UNDEF 0xffff /* vestigial, not used */ +# endif struct X509_algor_st { ASN1_OBJECT *algorithm; @@ -462,7 +473,12 @@ typedef struct PBKDF2PARAM_st { X509_ALGOR *prf; } PBKDF2PARAM; -#ifndef OPENSSL_NO_SCRYPT +typedef struct { + X509_ALGOR *keyDerivationFunc; + X509_ALGOR *messageAuthScheme; +} PBMAC1PARAM; + +# ifndef OPENSSL_NO_SCRYPT typedef struct SCRYPT_PARAMS_st { ASN1_OCTET_STRING *salt; ASN1_INTEGER *costParameter; @@ -470,7 +486,7 @@ typedef struct SCRYPT_PARAMS_st { ASN1_INTEGER *parallelizationParameter; ASN1_INTEGER *keyLength; } SCRYPT_PARAMS; -#endif +# endif #ifdef __cplusplus } @@ -603,6 +619,8 @@ EVP_PKEY *d2i_PrivateKey_ex_fp(FILE *fp, EVP_PKEY **a, OSSL_LIB_CTX *libctx, const char *propq); EVP_PKEY *d2i_PrivateKey_fp(FILE *fp, EVP_PKEY **a); int i2d_PUBKEY_fp(FILE *fp, const EVP_PKEY *pkey); +EVP_PKEY *d2i_PUBKEY_ex_fp(FILE *fp, EVP_PKEY **a, OSSL_LIB_CTX *libctx, + const char *propq); EVP_PKEY *d2i_PUBKEY_fp(FILE *fp, EVP_PKEY **a); # endif @@ -651,6 +669,8 @@ EVP_PKEY *d2i_PrivateKey_ex_bio(BIO *bp, EVP_PKEY **a, OSSL_LIB_CTX *libctx, const char *propq); EVP_PKEY *d2i_PrivateKey_bio(BIO *bp, EVP_PKEY **a); int i2d_PUBKEY_bio(BIO *bp, const EVP_PKEY *pkey); +EVP_PKEY *d2i_PUBKEY_ex_bio(BIO *bp, EVP_PKEY **a, OSSL_LIB_CTX *libctx, + const char *propq); EVP_PKEY *d2i_PUBKEY_bio(BIO *bp, EVP_PKEY **a); DECLARE_ASN1_DUP_FUNCTION(X509) @@ -884,12 +904,12 @@ int X509_REQ_get_signature_nid(const X509_REQ *req); int i2d_re_X509_REQ_tbs(X509_REQ *req, unsigned char **pp); int X509_REQ_set_pubkey(X509_REQ *x, EVP_PKEY *pkey); EVP_PKEY *X509_REQ_get_pubkey(X509_REQ *req); -EVP_PKEY *X509_REQ_get0_pubkey(X509_REQ *req); +EVP_PKEY *X509_REQ_get0_pubkey(const X509_REQ *req); X509_PUBKEY *X509_REQ_get_X509_PUBKEY(X509_REQ *req); int X509_REQ_extension_nid(int nid); int *X509_REQ_get_extension_nids(void); void X509_REQ_set_extension_nids(int *nids); -STACK_OF(X509_EXTENSION) *X509_REQ_get_extensions(X509_REQ *req); +STACK_OF(X509_EXTENSION) *X509_REQ_get_extensions(OSSL_FUTURE_CONST X509_REQ *req); int X509_REQ_add_extensions_nid(X509_REQ *req, const STACK_OF(X509_EXTENSION) *exts, int nid); int X509_REQ_add_extensions(X509_REQ *req, const STACK_OF(X509_EXTENSION) *ext); @@ -950,13 +970,14 @@ X509_REVOKED_get0_extensions(const X509_REVOKED *r); X509_CRL *X509_CRL_diff(X509_CRL *base, X509_CRL *newer, EVP_PKEY *skey, const EVP_MD *md, unsigned int flags); -int X509_REQ_check_private_key(X509_REQ *x509, EVP_PKEY *pkey); +int X509_REQ_check_private_key(const X509_REQ *req, EVP_PKEY *pkey); -int X509_check_private_key(const X509 *x509, const EVP_PKEY *pkey); +int X509_check_private_key(const X509 *cert, const EVP_PKEY *pkey); int X509_chain_check_suiteb(int *perror_depth, X509 *x, STACK_OF(X509) *chain, unsigned long flags); int X509_CRL_check_suiteb(X509_CRL *crl, EVP_PKEY *pk, unsigned long flags); +void OSSL_STACK_OF_X509_free(STACK_OF(X509) *certs); STACK_OF(X509) *X509_chain_up_ref(STACK_OF(X509) *chain); int X509_issuer_and_serial_cmp(const X509 *a, const X509 *b); @@ -1077,6 +1098,8 @@ X509_EXTENSION *X509v3_get_ext(const STACK_OF(X509_EXTENSION) *x, int loc); X509_EXTENSION *X509v3_delete_ext(STACK_OF(X509_EXTENSION) *x, int loc); STACK_OF(X509_EXTENSION) *X509v3_add_ext(STACK_OF(X509_EXTENSION) **x, X509_EXTENSION *ex, int loc); +STACK_OF(X509_EXTENSION) *X509v3_add_extensions(STACK_OF(X509_EXTENSION) **target, + const STACK_OF(X509_EXTENSION) *exts); int X509_get_ext_count(const X509 *x); int X509_get_ext_by_NID(const X509 *x, int nid, int lastpos); @@ -1198,9 +1221,10 @@ X509 *X509_find_by_subject(STACK_OF(X509) *sk, const X509_NAME *name); DECLARE_ASN1_FUNCTIONS(PBEPARAM) DECLARE_ASN1_FUNCTIONS(PBE2PARAM) DECLARE_ASN1_FUNCTIONS(PBKDF2PARAM) -#ifndef OPENSSL_NO_SCRYPT +DECLARE_ASN1_FUNCTIONS(PBMAC1PARAM) +# ifndef OPENSSL_NO_SCRYPT DECLARE_ASN1_FUNCTIONS(SCRYPT_PARAMS) -#endif +# endif int PKCS5_pbe_set0_algor(X509_ALGOR *algor, int alg, int iter, const unsigned char *salt, int saltlen); @@ -1237,6 +1261,7 @@ X509_ALGOR *PKCS5_pbkdf2_set_ex(int iter, unsigned char *salt, int saltlen, int prf_nid, int keylen, OSSL_LIB_CTX *libctx); +PBKDF2PARAM *PBMAC1_get1_pbkdf2_param(const X509_ALGOR *macalg); /* PKCS#8 utilities */ DECLARE_ASN1_FUNCTIONS(PKCS8_PRIV_KEY_INFO) @@ -1262,6 +1287,8 @@ int PKCS8_pkey_add1_attr_by_OBJ(PKCS8_PRIV_KEY_INFO *p8, const ASN1_OBJECT *obj, int type, const unsigned char *bytes, int len); +void X509_PUBKEY_set0_public_key(X509_PUBKEY *pub, + unsigned char *penc, int penclen); int X509_PUBKEY_set0_param(X509_PUBKEY *pub, ASN1_OBJECT *aobj, int ptype, void *pval, unsigned char *penc, int penclen); diff --git a/deps/openssl/config/archs/linux-aarch64/asm_avx2/include/openssl/x509_acert.h b/deps/openssl/config/archs/linux-aarch64/asm_avx2/include/openssl/x509_acert.h new file mode 100644 index 00000000000000..9dde625677f9a9 --- /dev/null +++ b/deps/openssl/config/archs/linux-aarch64/asm_avx2/include/openssl/x509_acert.h @@ -0,0 +1,294 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from include/openssl/x509_acert.h.in + * + * Copyright 2022-2024 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + + +#ifndef OPENSSL_X509_ACERT_H +# define OPENSSL_X509_ACERT_H +# pragma once + +# include +# include +# include + +typedef struct X509_acert_st X509_ACERT; +typedef struct X509_acert_info_st X509_ACERT_INFO; +typedef struct ossl_object_digest_info_st OSSL_OBJECT_DIGEST_INFO; +typedef struct ossl_issuer_serial_st OSSL_ISSUER_SERIAL; +typedef struct X509_acert_issuer_v2form_st X509_ACERT_ISSUER_V2FORM; + +DECLARE_ASN1_FUNCTIONS(X509_ACERT) +DECLARE_ASN1_DUP_FUNCTION(X509_ACERT) +DECLARE_ASN1_ITEM(X509_ACERT_INFO) +DECLARE_ASN1_ALLOC_FUNCTIONS(X509_ACERT_INFO) +DECLARE_ASN1_ALLOC_FUNCTIONS(OSSL_OBJECT_DIGEST_INFO) +DECLARE_ASN1_ALLOC_FUNCTIONS(OSSL_ISSUER_SERIAL) +DECLARE_ASN1_ALLOC_FUNCTIONS(X509_ACERT_ISSUER_V2FORM) + +# ifndef OPENSSL_NO_STDIO +X509_ACERT *d2i_X509_ACERT_fp(FILE *fp, X509_ACERT **acert); +int i2d_X509_ACERT_fp(FILE *fp, const X509_ACERT *acert); +# endif + +DECLARE_PEM_rw(X509_ACERT, X509_ACERT) + +X509_ACERT *d2i_X509_ACERT_bio(BIO *bp, X509_ACERT **acert); +int i2d_X509_ACERT_bio(BIO *bp, const X509_ACERT *acert); + +int X509_ACERT_sign(X509_ACERT *x, EVP_PKEY *pkey, const EVP_MD *md); +int X509_ACERT_sign_ctx(X509_ACERT *x, EVP_MD_CTX *ctx); +int X509_ACERT_verify(X509_ACERT *a, EVP_PKEY *r); + +# define X509_ACERT_VERSION_2 1 + +const GENERAL_NAMES *X509_ACERT_get0_holder_entityName(const X509_ACERT *x); +const OSSL_ISSUER_SERIAL *X509_ACERT_get0_holder_baseCertId(const X509_ACERT *x); +const OSSL_OBJECT_DIGEST_INFO * X509_ACERT_get0_holder_digest(const X509_ACERT *x); +const X509_NAME *X509_ACERT_get0_issuerName(const X509_ACERT *x); +long X509_ACERT_get_version(const X509_ACERT *x); +void X509_ACERT_get0_signature(const X509_ACERT *x, + const ASN1_BIT_STRING **psig, + const X509_ALGOR **palg); +int X509_ACERT_get_signature_nid(const X509_ACERT *x); +const X509_ALGOR *X509_ACERT_get0_info_sigalg(const X509_ACERT *x); +const ASN1_INTEGER *X509_ACERT_get0_serialNumber(const X509_ACERT *x); +const ASN1_TIME *X509_ACERT_get0_notBefore(const X509_ACERT *x); +const ASN1_TIME *X509_ACERT_get0_notAfter(const X509_ACERT *x); +const ASN1_BIT_STRING *X509_ACERT_get0_issuerUID(const X509_ACERT *x); + +int X509_ACERT_print(BIO *bp, X509_ACERT *x); +int X509_ACERT_print_ex(BIO *bp, X509_ACERT *x, unsigned long nmflags, + unsigned long cflag); + +int X509_ACERT_get_attr_count(const X509_ACERT *x); +int X509_ACERT_get_attr_by_NID(const X509_ACERT *x, int nid, int lastpos); +int X509_ACERT_get_attr_by_OBJ(const X509_ACERT *x, const ASN1_OBJECT *obj, + int lastpos); +X509_ATTRIBUTE *X509_ACERT_get_attr(const X509_ACERT *x, int loc); +X509_ATTRIBUTE *X509_ACERT_delete_attr(X509_ACERT *x, int loc); + +void *X509_ACERT_get_ext_d2i(const X509_ACERT *x, int nid, int *crit, int *idx); +int X509_ACERT_add1_ext_i2d(X509_ACERT *x, int nid, void *value, int crit, + unsigned long flags); +const STACK_OF(X509_EXTENSION) *X509_ACERT_get0_extensions(const X509_ACERT *x); + +# define OSSL_OBJECT_DIGEST_INFO_PUBLIC_KEY 0 +# define OSSL_OBJECT_DIGEST_INFO_PUBLIC_KEY_CERT 1 +# define OSSL_OBJECT_DIGEST_INFO_OTHER 2 /* must not be used in RFC 5755 profile */ +int X509_ACERT_set_version(X509_ACERT *x, long version); +void X509_ACERT_set0_holder_entityName(X509_ACERT *x, GENERAL_NAMES *name); +void X509_ACERT_set0_holder_baseCertId(X509_ACERT *x, OSSL_ISSUER_SERIAL *isss); +void X509_ACERT_set0_holder_digest(X509_ACERT *x, + OSSL_OBJECT_DIGEST_INFO *dinfo); + +int X509_ACERT_add1_attr(X509_ACERT *x, X509_ATTRIBUTE *attr); +int X509_ACERT_add1_attr_by_OBJ(X509_ACERT *x, const ASN1_OBJECT *obj, + int type, const void *bytes, int len); +int X509_ACERT_add1_attr_by_NID(X509_ACERT *x, int nid, int type, + const void *bytes, int len); +int X509_ACERT_add1_attr_by_txt(X509_ACERT *x, const char *attrname, int type, + const unsigned char *bytes, int len); +int X509_ACERT_add_attr_nconf(CONF *conf, const char *section, + X509_ACERT *acert); + +int X509_ACERT_set1_issuerName(X509_ACERT *x, const X509_NAME *name); +int X509_ACERT_set1_serialNumber(X509_ACERT *x, const ASN1_INTEGER *serial); +int X509_ACERT_set1_notBefore(X509_ACERT *x, const ASN1_GENERALIZEDTIME *time); +int X509_ACERT_set1_notAfter(X509_ACERT *x, const ASN1_GENERALIZEDTIME *time); + +void OSSL_OBJECT_DIGEST_INFO_get0_digest(const OSSL_OBJECT_DIGEST_INFO *o, + int *digestedObjectType, + const X509_ALGOR **digestAlgorithm, + const ASN1_BIT_STRING **digest); + +int OSSL_OBJECT_DIGEST_INFO_set1_digest(OSSL_OBJECT_DIGEST_INFO *o, + int digestedObjectType, + X509_ALGOR *digestAlgorithm, + ASN1_BIT_STRING *digest); + +const X509_NAME *OSSL_ISSUER_SERIAL_get0_issuer(const OSSL_ISSUER_SERIAL *isss); +const ASN1_INTEGER *OSSL_ISSUER_SERIAL_get0_serial(const OSSL_ISSUER_SERIAL *isss); +const ASN1_BIT_STRING *OSSL_ISSUER_SERIAL_get0_issuerUID(const OSSL_ISSUER_SERIAL *isss); + +int OSSL_ISSUER_SERIAL_set1_issuer(OSSL_ISSUER_SERIAL *isss, + const X509_NAME *issuer); +int OSSL_ISSUER_SERIAL_set1_serial(OSSL_ISSUER_SERIAL *isss, + const ASN1_INTEGER *serial); +int OSSL_ISSUER_SERIAL_set1_issuerUID(OSSL_ISSUER_SERIAL *isss, + const ASN1_BIT_STRING *uid); + +# define OSSL_IETFAS_OCTETS 0 +# define OSSL_IETFAS_OID 1 +# define OSSL_IETFAS_STRING 2 + +typedef struct OSSL_IETF_ATTR_SYNTAX_VALUE_st OSSL_IETF_ATTR_SYNTAX_VALUE; +typedef struct OSSL_IETF_ATTR_SYNTAX_st OSSL_IETF_ATTR_SYNTAX; +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_IETF_ATTR_SYNTAX_VALUE, OSSL_IETF_ATTR_SYNTAX_VALUE, OSSL_IETF_ATTR_SYNTAX_VALUE) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_value(sk, idx) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_value(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), (idx))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_new(cmp) ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_new(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_compfunc_type(cmp))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_new_null() ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_new_null()) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_new_reserve(cmp, n) ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_compfunc_type(cmp), (n))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), (n)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_free(sk) OPENSSL_sk_free(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_delete(sk, i) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_delete(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), (i))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_delete_ptr(sk, ptr) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_pop(sk) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_pop(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_shift(sk) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_shift(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk),ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_freefunc_type(freefunc)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr), (idx)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_set(sk, idx, ptr) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_set(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), (idx), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr), pnum) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_dup(sk) ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_dup(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_copyfunc_type(copyfunc), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_freefunc_type(freefunc))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_set_cmp_func(sk, cmp) ((sk_OSSL_IETF_ATTR_SYNTAX_VALUE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_compfunc_type(cmp))) + + +DECLARE_ASN1_ITEM(OSSL_IETF_ATTR_SYNTAX_VALUE) +DECLARE_ASN1_ALLOC_FUNCTIONS(OSSL_IETF_ATTR_SYNTAX_VALUE) +DECLARE_ASN1_FUNCTIONS(OSSL_IETF_ATTR_SYNTAX) + +const GENERAL_NAMES * +OSSL_IETF_ATTR_SYNTAX_get0_policyAuthority(const OSSL_IETF_ATTR_SYNTAX *a); +void OSSL_IETF_ATTR_SYNTAX_set0_policyAuthority(OSSL_IETF_ATTR_SYNTAX *a, + GENERAL_NAMES *names); + +int OSSL_IETF_ATTR_SYNTAX_get_value_num(const OSSL_IETF_ATTR_SYNTAX *a); +void *OSSL_IETF_ATTR_SYNTAX_get0_value(const OSSL_IETF_ATTR_SYNTAX *a, + int ind, int *type); +int OSSL_IETF_ATTR_SYNTAX_add1_value(OSSL_IETF_ATTR_SYNTAX *a, int type, + void *data); +int OSSL_IETF_ATTR_SYNTAX_print(BIO *bp, OSSL_IETF_ATTR_SYNTAX *a, int indent); + +struct TARGET_CERT_st { + OSSL_ISSUER_SERIAL *targetCertificate; + GENERAL_NAME *targetName; + OSSL_OBJECT_DIGEST_INFO *certDigestInfo; +}; + +typedef struct TARGET_CERT_st OSSL_TARGET_CERT; + +# define OSSL_TGT_TARGET_NAME 0 +# define OSSL_TGT_TARGET_GROUP 1 +# define OSSL_TGT_TARGET_CERT 2 + +typedef struct TARGET_st { + int type; + union { + GENERAL_NAME *targetName; + GENERAL_NAME *targetGroup; + OSSL_TARGET_CERT *targetCert; + } choice; +} OSSL_TARGET; + +typedef STACK_OF(OSSL_TARGET) OSSL_TARGETS; +typedef STACK_OF(OSSL_TARGETS) OSSL_TARGETING_INFORMATION; + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_TARGET, OSSL_TARGET, OSSL_TARGET) +#define sk_OSSL_TARGET_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_value(sk, idx) ((OSSL_TARGET *)OPENSSL_sk_value(ossl_check_const_OSSL_TARGET_sk_type(sk), (idx))) +#define sk_OSSL_TARGET_new(cmp) ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_new(ossl_check_OSSL_TARGET_compfunc_type(cmp))) +#define sk_OSSL_TARGET_new_null() ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_new_null()) +#define sk_OSSL_TARGET_new_reserve(cmp, n) ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_TARGET_compfunc_type(cmp), (n))) +#define sk_OSSL_TARGET_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_TARGET_sk_type(sk), (n)) +#define sk_OSSL_TARGET_free(sk) OPENSSL_sk_free(ossl_check_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_delete(sk, i) ((OSSL_TARGET *)OPENSSL_sk_delete(ossl_check_OSSL_TARGET_sk_type(sk), (i))) +#define sk_OSSL_TARGET_delete_ptr(sk, ptr) ((OSSL_TARGET *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr))) +#define sk_OSSL_TARGET_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr)) +#define sk_OSSL_TARGET_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr)) +#define sk_OSSL_TARGET_pop(sk) ((OSSL_TARGET *)OPENSSL_sk_pop(ossl_check_OSSL_TARGET_sk_type(sk))) +#define sk_OSSL_TARGET_shift(sk) ((OSSL_TARGET *)OPENSSL_sk_shift(ossl_check_OSSL_TARGET_sk_type(sk))) +#define sk_OSSL_TARGET_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_TARGET_sk_type(sk),ossl_check_OSSL_TARGET_freefunc_type(freefunc)) +#define sk_OSSL_TARGET_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr), (idx)) +#define sk_OSSL_TARGET_set(sk, idx, ptr) ((OSSL_TARGET *)OPENSSL_sk_set(ossl_check_OSSL_TARGET_sk_type(sk), (idx), ossl_check_OSSL_TARGET_type(ptr))) +#define sk_OSSL_TARGET_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr)) +#define sk_OSSL_TARGET_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr)) +#define sk_OSSL_TARGET_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr), pnum) +#define sk_OSSL_TARGET_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_dup(sk) ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_dup(ossl_check_const_OSSL_TARGET_sk_type(sk))) +#define sk_OSSL_TARGET_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_copyfunc_type(copyfunc), ossl_check_OSSL_TARGET_freefunc_type(freefunc))) +#define sk_OSSL_TARGET_set_cmp_func(sk, cmp) ((sk_OSSL_TARGET_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_compfunc_type(cmp))) + + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_TARGETS, OSSL_TARGETS, OSSL_TARGETS) +#define sk_OSSL_TARGETS_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_value(sk, idx) ((OSSL_TARGETS *)OPENSSL_sk_value(ossl_check_const_OSSL_TARGETS_sk_type(sk), (idx))) +#define sk_OSSL_TARGETS_new(cmp) ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_new(ossl_check_OSSL_TARGETS_compfunc_type(cmp))) +#define sk_OSSL_TARGETS_new_null() ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_new_null()) +#define sk_OSSL_TARGETS_new_reserve(cmp, n) ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_TARGETS_compfunc_type(cmp), (n))) +#define sk_OSSL_TARGETS_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_TARGETS_sk_type(sk), (n)) +#define sk_OSSL_TARGETS_free(sk) OPENSSL_sk_free(ossl_check_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_delete(sk, i) ((OSSL_TARGETS *)OPENSSL_sk_delete(ossl_check_OSSL_TARGETS_sk_type(sk), (i))) +#define sk_OSSL_TARGETS_delete_ptr(sk, ptr) ((OSSL_TARGETS *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr))) +#define sk_OSSL_TARGETS_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr)) +#define sk_OSSL_TARGETS_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr)) +#define sk_OSSL_TARGETS_pop(sk) ((OSSL_TARGETS *)OPENSSL_sk_pop(ossl_check_OSSL_TARGETS_sk_type(sk))) +#define sk_OSSL_TARGETS_shift(sk) ((OSSL_TARGETS *)OPENSSL_sk_shift(ossl_check_OSSL_TARGETS_sk_type(sk))) +#define sk_OSSL_TARGETS_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_TARGETS_sk_type(sk),ossl_check_OSSL_TARGETS_freefunc_type(freefunc)) +#define sk_OSSL_TARGETS_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr), (idx)) +#define sk_OSSL_TARGETS_set(sk, idx, ptr) ((OSSL_TARGETS *)OPENSSL_sk_set(ossl_check_OSSL_TARGETS_sk_type(sk), (idx), ossl_check_OSSL_TARGETS_type(ptr))) +#define sk_OSSL_TARGETS_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr)) +#define sk_OSSL_TARGETS_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr)) +#define sk_OSSL_TARGETS_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr), pnum) +#define sk_OSSL_TARGETS_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_dup(sk) ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_dup(ossl_check_const_OSSL_TARGETS_sk_type(sk))) +#define sk_OSSL_TARGETS_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_copyfunc_type(copyfunc), ossl_check_OSSL_TARGETS_freefunc_type(freefunc))) +#define sk_OSSL_TARGETS_set_cmp_func(sk, cmp) ((sk_OSSL_TARGETS_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_compfunc_type(cmp))) + + +DECLARE_ASN1_FUNCTIONS(OSSL_TARGET) +DECLARE_ASN1_FUNCTIONS(OSSL_TARGETS) +DECLARE_ASN1_FUNCTIONS(OSSL_TARGETING_INFORMATION) + +typedef STACK_OF(OSSL_ISSUER_SERIAL) OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX; +DECLARE_ASN1_FUNCTIONS(OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ISSUER_SERIAL, OSSL_ISSUER_SERIAL, OSSL_ISSUER_SERIAL) +#define sk_OSSL_ISSUER_SERIAL_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_value(sk, idx) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_value(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk), (idx))) +#define sk_OSSL_ISSUER_SERIAL_new(cmp) ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_new(ossl_check_OSSL_ISSUER_SERIAL_compfunc_type(cmp))) +#define sk_OSSL_ISSUER_SERIAL_new_null() ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ISSUER_SERIAL_new_reserve(cmp, n) ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ISSUER_SERIAL_compfunc_type(cmp), (n))) +#define sk_OSSL_ISSUER_SERIAL_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), (n)) +#define sk_OSSL_ISSUER_SERIAL_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_delete(sk, i) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_delete(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), (i))) +#define sk_OSSL_ISSUER_SERIAL_delete_ptr(sk, ptr) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr))) +#define sk_OSSL_ISSUER_SERIAL_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr)) +#define sk_OSSL_ISSUER_SERIAL_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr)) +#define sk_OSSL_ISSUER_SERIAL_pop(sk) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_pop(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk))) +#define sk_OSSL_ISSUER_SERIAL_shift(sk) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_shift(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk))) +#define sk_OSSL_ISSUER_SERIAL_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk),ossl_check_OSSL_ISSUER_SERIAL_freefunc_type(freefunc)) +#define sk_OSSL_ISSUER_SERIAL_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr), (idx)) +#define sk_OSSL_ISSUER_SERIAL_set(sk, idx, ptr) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_set(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), (idx), ossl_check_OSSL_ISSUER_SERIAL_type(ptr))) +#define sk_OSSL_ISSUER_SERIAL_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr)) +#define sk_OSSL_ISSUER_SERIAL_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr)) +#define sk_OSSL_ISSUER_SERIAL_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr), pnum) +#define sk_OSSL_ISSUER_SERIAL_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_dup(sk) ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk))) +#define sk_OSSL_ISSUER_SERIAL_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_copyfunc_type(copyfunc), ossl_check_OSSL_ISSUER_SERIAL_freefunc_type(freefunc))) +#define sk_OSSL_ISSUER_SERIAL_set_cmp_func(sk, cmp) ((sk_OSSL_ISSUER_SERIAL_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_compfunc_type(cmp))) + + +#endif diff --git a/deps/openssl/config/archs/linux-aarch64/asm_avx2/include/openssl/x509_vfy.h b/deps/openssl/config/archs/linux-aarch64/asm_avx2/include/openssl/x509_vfy.h index 29b0e147adcab1..c9bdc3b39d685d 100644 --- a/deps/openssl/config/archs/linux-aarch64/asm_avx2/include/openssl/x509_vfy.h +++ b/deps/openssl/config/archs/linux-aarch64/asm_avx2/include/openssl/x509_vfy.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/x509_vfy.h.in * - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -411,6 +411,7 @@ X509_LOOKUP_ctrl_ex((x), X509_L_ADD_STORE, (name), 0, NULL, \ # define X509_V_ERR_CA_CERT_MISSING_KEY_USAGE 92 # define X509_V_ERR_EXTENSIONS_REQUIRE_VERSION_3 93 # define X509_V_ERR_EC_KEY_EXPLICIT_PARAMS 94 +# define X509_V_ERR_RPK_UNTRUSTED 95 /* Certificate verify flags */ # ifndef OPENSSL_NO_DEPRECATED_1_1_0 @@ -491,71 +492,72 @@ int X509_OBJECT_set1_X509(X509_OBJECT *a, X509 *obj); X509_CRL *X509_OBJECT_get0_X509_CRL(const X509_OBJECT *a); int X509_OBJECT_set1_X509_CRL(X509_OBJECT *a, X509_CRL *obj); X509_STORE *X509_STORE_new(void); -void X509_STORE_free(X509_STORE *v); -int X509_STORE_lock(X509_STORE *ctx); -int X509_STORE_unlock(X509_STORE *ctx); -int X509_STORE_up_ref(X509_STORE *v); -STACK_OF(X509_OBJECT) *X509_STORE_get0_objects(const X509_STORE *v); -STACK_OF(X509) *X509_STORE_get1_all_certs(X509_STORE *st); -STACK_OF(X509) *X509_STORE_CTX_get1_certs(X509_STORE_CTX *st, +void X509_STORE_free(X509_STORE *xs); +int X509_STORE_lock(X509_STORE *xs); +int X509_STORE_unlock(X509_STORE *xs); +int X509_STORE_up_ref(X509_STORE *xs); +STACK_OF(X509_OBJECT) *X509_STORE_get0_objects(const X509_STORE *xs); +STACK_OF(X509_OBJECT) *X509_STORE_get1_objects(X509_STORE *xs); +STACK_OF(X509) *X509_STORE_get1_all_certs(X509_STORE *xs); +STACK_OF(X509) *X509_STORE_CTX_get1_certs(X509_STORE_CTX *xs, const X509_NAME *nm); STACK_OF(X509_CRL) *X509_STORE_CTX_get1_crls(const X509_STORE_CTX *st, const X509_NAME *nm); -int X509_STORE_set_flags(X509_STORE *ctx, unsigned long flags); -int X509_STORE_set_purpose(X509_STORE *ctx, int purpose); -int X509_STORE_set_trust(X509_STORE *ctx, int trust); -int X509_STORE_set1_param(X509_STORE *ctx, const X509_VERIFY_PARAM *pm); -X509_VERIFY_PARAM *X509_STORE_get0_param(const X509_STORE *ctx); +int X509_STORE_set_flags(X509_STORE *xs, unsigned long flags); +int X509_STORE_set_purpose(X509_STORE *xs, int purpose); +int X509_STORE_set_trust(X509_STORE *xs, int trust); +int X509_STORE_set1_param(X509_STORE *xs, const X509_VERIFY_PARAM *pm); +X509_VERIFY_PARAM *X509_STORE_get0_param(const X509_STORE *xs); -void X509_STORE_set_verify(X509_STORE *ctx, X509_STORE_CTX_verify_fn verify); +void X509_STORE_set_verify(X509_STORE *xs, X509_STORE_CTX_verify_fn verify); #define X509_STORE_set_verify_func(ctx, func) \ X509_STORE_set_verify((ctx),(func)) void X509_STORE_CTX_set_verify(X509_STORE_CTX *ctx, X509_STORE_CTX_verify_fn verify); -X509_STORE_CTX_verify_fn X509_STORE_get_verify(const X509_STORE *ctx); -void X509_STORE_set_verify_cb(X509_STORE *ctx, +X509_STORE_CTX_verify_fn X509_STORE_get_verify(const X509_STORE *xs); +void X509_STORE_set_verify_cb(X509_STORE *xs, X509_STORE_CTX_verify_cb verify_cb); # define X509_STORE_set_verify_cb_func(ctx,func) \ X509_STORE_set_verify_cb((ctx),(func)) -X509_STORE_CTX_verify_cb X509_STORE_get_verify_cb(const X509_STORE *ctx); -void X509_STORE_set_get_issuer(X509_STORE *ctx, +X509_STORE_CTX_verify_cb X509_STORE_get_verify_cb(const X509_STORE *xs); +void X509_STORE_set_get_issuer(X509_STORE *xs, X509_STORE_CTX_get_issuer_fn get_issuer); -X509_STORE_CTX_get_issuer_fn X509_STORE_get_get_issuer(const X509_STORE *ctx); -void X509_STORE_set_check_issued(X509_STORE *ctx, +X509_STORE_CTX_get_issuer_fn X509_STORE_get_get_issuer(const X509_STORE *xs); +void X509_STORE_set_check_issued(X509_STORE *xs, X509_STORE_CTX_check_issued_fn check_issued); -X509_STORE_CTX_check_issued_fn X509_STORE_get_check_issued(const X509_STORE *ctx); -void X509_STORE_set_check_revocation(X509_STORE *ctx, +X509_STORE_CTX_check_issued_fn X509_STORE_get_check_issued(const X509_STORE *s); +void X509_STORE_set_check_revocation(X509_STORE *xs, X509_STORE_CTX_check_revocation_fn check_revocation); X509_STORE_CTX_check_revocation_fn - X509_STORE_get_check_revocation(const X509_STORE *ctx); -void X509_STORE_set_get_crl(X509_STORE *ctx, + X509_STORE_get_check_revocation(const X509_STORE *xs); +void X509_STORE_set_get_crl(X509_STORE *xs, X509_STORE_CTX_get_crl_fn get_crl); -X509_STORE_CTX_get_crl_fn X509_STORE_get_get_crl(const X509_STORE *ctx); -void X509_STORE_set_check_crl(X509_STORE *ctx, +X509_STORE_CTX_get_crl_fn X509_STORE_get_get_crl(const X509_STORE *xs); +void X509_STORE_set_check_crl(X509_STORE *xs, X509_STORE_CTX_check_crl_fn check_crl); -X509_STORE_CTX_check_crl_fn X509_STORE_get_check_crl(const X509_STORE *ctx); -void X509_STORE_set_cert_crl(X509_STORE *ctx, +X509_STORE_CTX_check_crl_fn X509_STORE_get_check_crl(const X509_STORE *xs); +void X509_STORE_set_cert_crl(X509_STORE *xs, X509_STORE_CTX_cert_crl_fn cert_crl); -X509_STORE_CTX_cert_crl_fn X509_STORE_get_cert_crl(const X509_STORE *ctx); -void X509_STORE_set_check_policy(X509_STORE *ctx, +X509_STORE_CTX_cert_crl_fn X509_STORE_get_cert_crl(const X509_STORE *xs); +void X509_STORE_set_check_policy(X509_STORE *xs, X509_STORE_CTX_check_policy_fn check_policy); -X509_STORE_CTX_check_policy_fn X509_STORE_get_check_policy(const X509_STORE *ctx); -void X509_STORE_set_lookup_certs(X509_STORE *ctx, +X509_STORE_CTX_check_policy_fn X509_STORE_get_check_policy(const X509_STORE *s); +void X509_STORE_set_lookup_certs(X509_STORE *xs, X509_STORE_CTX_lookup_certs_fn lookup_certs); -X509_STORE_CTX_lookup_certs_fn X509_STORE_get_lookup_certs(const X509_STORE *ctx); -void X509_STORE_set_lookup_crls(X509_STORE *ctx, +X509_STORE_CTX_lookup_certs_fn X509_STORE_get_lookup_certs(const X509_STORE *s); +void X509_STORE_set_lookup_crls(X509_STORE *xs, X509_STORE_CTX_lookup_crls_fn lookup_crls); #define X509_STORE_set_lookup_crls_cb(ctx, func) \ X509_STORE_set_lookup_crls((ctx), (func)) -X509_STORE_CTX_lookup_crls_fn X509_STORE_get_lookup_crls(const X509_STORE *ctx); -void X509_STORE_set_cleanup(X509_STORE *ctx, +X509_STORE_CTX_lookup_crls_fn X509_STORE_get_lookup_crls(const X509_STORE *xs); +void X509_STORE_set_cleanup(X509_STORE *xs, X509_STORE_CTX_cleanup_fn cleanup); -X509_STORE_CTX_cleanup_fn X509_STORE_get_cleanup(const X509_STORE *ctx); +X509_STORE_CTX_cleanup_fn X509_STORE_get_cleanup(const X509_STORE *xs); #define X509_STORE_get_ex_new_index(l, p, newf, dupf, freef) \ CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_X509_STORE, l, p, newf, dupf, freef) -int X509_STORE_set_ex_data(X509_STORE *ctx, int idx, void *data); -void *X509_STORE_get_ex_data(const X509_STORE *ctx, int idx); +int X509_STORE_set_ex_data(X509_STORE *xs, int idx, void *data); +void *X509_STORE_get_ex_data(const X509_STORE *xs, int idx); X509_STORE_CTX *X509_STORE_CTX_new_ex(OSSL_LIB_CTX *libctx, const char *propq); X509_STORE_CTX *X509_STORE_CTX_new(void); @@ -565,11 +567,14 @@ int X509_STORE_CTX_get1_issuer(X509 **issuer, X509_STORE_CTX *ctx, X509 *x); void X509_STORE_CTX_free(X509_STORE_CTX *ctx); int X509_STORE_CTX_init(X509_STORE_CTX *ctx, X509_STORE *trust_store, X509 *target, STACK_OF(X509) *untrusted); +int X509_STORE_CTX_init_rpk(X509_STORE_CTX *ctx, X509_STORE *trust_store, + EVP_PKEY* rpk); void X509_STORE_CTX_set0_trusted_stack(X509_STORE_CTX *ctx, STACK_OF(X509) *sk); void X509_STORE_CTX_cleanup(X509_STORE_CTX *ctx); X509_STORE *X509_STORE_CTX_get0_store(const X509_STORE_CTX *ctx); X509 *X509_STORE_CTX_get0_cert(const X509_STORE_CTX *ctx); +EVP_PKEY *X509_STORE_CTX_get0_rpk(const X509_STORE_CTX *ctx); STACK_OF(X509)* X509_STORE_CTX_get0_untrusted(const X509_STORE_CTX *ctx); void X509_STORE_CTX_set0_untrusted(X509_STORE_CTX *ctx, STACK_OF(X509) *sk); void X509_STORE_CTX_set_verify_cb(X509_STORE_CTX *ctx, @@ -579,6 +584,8 @@ X509_STORE_CTX_verify_fn X509_STORE_CTX_get_verify(const X509_STORE_CTX *ctx); X509_STORE_CTX_get_issuer_fn X509_STORE_CTX_get_get_issuer(const X509_STORE_CTX *ctx); X509_STORE_CTX_check_issued_fn X509_STORE_CTX_get_check_issued(const X509_STORE_CTX *ctx); X509_STORE_CTX_check_revocation_fn X509_STORE_CTX_get_check_revocation(const X509_STORE_CTX *ctx); +void X509_STORE_CTX_set_get_crl(X509_STORE_CTX *ctx, + X509_STORE_CTX_get_crl_fn get_crl); X509_STORE_CTX_get_crl_fn X509_STORE_CTX_get_get_crl(const X509_STORE_CTX *ctx); X509_STORE_CTX_check_crl_fn X509_STORE_CTX_get_check_crl(const X509_STORE_CTX *ctx); X509_STORE_CTX_cert_crl_fn X509_STORE_CTX_get_cert_crl(const X509_STORE_CTX *ctx); @@ -600,7 +607,7 @@ X509_STORE_CTX_cleanup_fn X509_STORE_CTX_get_cleanup(const X509_STORE_CTX *ctx); # define X509_STORE_get1_crl X509_STORE_CTX_get1_crls #endif -X509_LOOKUP *X509_STORE_add_lookup(X509_STORE *v, X509_LOOKUP_METHOD *m); +X509_LOOKUP *X509_STORE_add_lookup(X509_STORE *xs, X509_LOOKUP_METHOD *m); X509_LOOKUP_METHOD *X509_LOOKUP_hash_dir(void); X509_LOOKUP_METHOD *X509_LOOKUP_file(void); X509_LOOKUP_METHOD *X509_LOOKUP_store(void); @@ -685,8 +692,8 @@ X509_LOOKUP_get_by_alias_fn X509_LOOKUP_meth_get_get_by_alias( const X509_LOOKUP_METHOD *method); -int X509_STORE_add_cert(X509_STORE *ctx, X509 *x); -int X509_STORE_add_crl(X509_STORE *ctx, X509_CRL *x); +int X509_STORE_add_cert(X509_STORE *xs, X509 *x); +int X509_STORE_add_crl(X509_STORE *xs, X509_CRL *x); int X509_STORE_CTX_get_by_subject(const X509_STORE_CTX *vs, X509_LOOKUP_TYPE type, @@ -730,23 +737,21 @@ void *X509_LOOKUP_get_method_data(const X509_LOOKUP *ctx); X509_STORE *X509_LOOKUP_get_store(const X509_LOOKUP *ctx); int X509_LOOKUP_shutdown(X509_LOOKUP *ctx); -int X509_STORE_load_file(X509_STORE *ctx, const char *file); -int X509_STORE_load_path(X509_STORE *ctx, const char *path); -int X509_STORE_load_store(X509_STORE *ctx, const char *store); -int X509_STORE_load_locations(X509_STORE *ctx, - const char *file, - const char *dir); -int X509_STORE_set_default_paths(X509_STORE *ctx); +int X509_STORE_load_file(X509_STORE *xs, const char *file); +int X509_STORE_load_path(X509_STORE *xs, const char *path); +int X509_STORE_load_store(X509_STORE *xs, const char *store); +int X509_STORE_load_locations(X509_STORE *s, const char *file, const char *dir); +int X509_STORE_set_default_paths(X509_STORE *xs); -int X509_STORE_load_file_ex(X509_STORE *ctx, const char *file, +int X509_STORE_load_file_ex(X509_STORE *xs, const char *file, OSSL_LIB_CTX *libctx, const char *propq); -int X509_STORE_load_store_ex(X509_STORE *ctx, const char *store, +int X509_STORE_load_store_ex(X509_STORE *xs, const char *store, OSSL_LIB_CTX *libctx, const char *propq); -int X509_STORE_load_locations_ex(X509_STORE *ctx, const char *file, - const char *dir, OSSL_LIB_CTX *libctx, - const char *propq); -int X509_STORE_set_default_paths_ex(X509_STORE *ctx, OSSL_LIB_CTX *libctx, - const char *propq); +int X509_STORE_load_locations_ex(X509_STORE *xs, + const char *file, const char *dir, + OSSL_LIB_CTX *libctx, const char *propq); +int X509_STORE_set_default_paths_ex(X509_STORE *xs, + OSSL_LIB_CTX *libctx, const char *propq); #define X509_STORE_CTX_get_ex_new_index(l, p, newf, dupf, freef) \ CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_X509_STORE_CTX, l, p, newf, dupf, freef) @@ -764,6 +769,7 @@ X509_STORE_CTX *X509_STORE_CTX_get0_parent_ctx(const X509_STORE_CTX *ctx); STACK_OF(X509) *X509_STORE_CTX_get0_chain(const X509_STORE_CTX *ctx); STACK_OF(X509) *X509_STORE_CTX_get1_chain(const X509_STORE_CTX *ctx); void X509_STORE_CTX_set_cert(X509_STORE_CTX *ctx, X509 *target); +void X509_STORE_CTX_set0_rpk(X509_STORE_CTX *ctx, EVP_PKEY *target); void X509_STORE_CTX_set0_verified_chain(X509_STORE_CTX *c, STACK_OF(X509) *sk); void X509_STORE_CTX_set0_crls(X509_STORE_CTX *ctx, STACK_OF(X509_CRL) *sk); int X509_STORE_CTX_set_purpose(X509_STORE_CTX *ctx, int purpose); @@ -773,6 +779,8 @@ int X509_STORE_CTX_purpose_inherit(X509_STORE_CTX *ctx, int def_purpose, void X509_STORE_CTX_set_flags(X509_STORE_CTX *ctx, unsigned long flags); void X509_STORE_CTX_set_time(X509_STORE_CTX *ctx, unsigned long flags, time_t t); +void X509_STORE_CTX_set_current_reasons(X509_STORE_CTX *ctx, + unsigned int current_reasons); X509_POLICY_TREE *X509_STORE_CTX_get0_policy_tree(const X509_STORE_CTX *ctx); int X509_STORE_CTX_get_explicit_policy(const X509_STORE_CTX *ctx); @@ -804,6 +812,7 @@ int X509_VERIFY_PARAM_clear_flags(X509_VERIFY_PARAM *param, unsigned long flags); unsigned long X509_VERIFY_PARAM_get_flags(const X509_VERIFY_PARAM *param); int X509_VERIFY_PARAM_set_purpose(X509_VERIFY_PARAM *param, int purpose); +int X509_VERIFY_PARAM_get_purpose(const X509_VERIFY_PARAM *param); int X509_VERIFY_PARAM_set_trust(X509_VERIFY_PARAM *param, int trust); void X509_VERIFY_PARAM_set_depth(X509_VERIFY_PARAM *param, int depth); void X509_VERIFY_PARAM_set_auth_level(X509_VERIFY_PARAM *param, int auth_level); diff --git a/deps/openssl/config/archs/linux-aarch64/asm_avx2/include/openssl/x509v3.h b/deps/openssl/config/archs/linux-aarch64/asm_avx2/include/openssl/x509v3.h index 20b67455f2061d..b8dabac35a4915 100644 --- a/deps/openssl/config/archs/linux-aarch64/asm_avx2/include/openssl/x509v3.h +++ b/deps/openssl/config/archs/linux-aarch64/asm_avx2/include/openssl/x509v3.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/x509v3.h.in * - * Copyright 1999-2023 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1999-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -25,6 +25,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -146,6 +149,11 @@ typedef struct BASIC_CONSTRAINTS_st { ASN1_INTEGER *pathlen; } BASIC_CONSTRAINTS; +typedef struct OSSL_BASIC_ATTR_CONSTRAINTS_st { + int authority; + ASN1_INTEGER *pathlen; +} OSSL_BASIC_ATTR_CONSTRAINTS; + typedef struct PKEY_USAGE_PERIOD_st { ASN1_GENERALIZEDTIME *notBefore; ASN1_GENERALIZEDTIME *notAfter; @@ -198,6 +206,8 @@ typedef struct ACCESS_DESCRIPTION_st { GENERAL_NAME *location; } ACCESS_DESCRIPTION; +int GENERAL_NAME_set1_X509_NAME(GENERAL_NAME **tgt, const X509_NAME *src); + SKM_DEFINE_STACK_OF_INTERNAL(ACCESS_DESCRIPTION, ACCESS_DESCRIPTION, ACCESS_DESCRIPTION) #define sk_ACCESS_DESCRIPTION_num(sk) OPENSSL_sk_num(ossl_check_const_ACCESS_DESCRIPTION_sk_type(sk)) #define sk_ACCESS_DESCRIPTION_value(sk, idx) ((ACCESS_DESCRIPTION *)OPENSSL_sk_value(ossl_check_const_ACCESS_DESCRIPTION_sk_type(sk), (idx))) @@ -294,6 +304,7 @@ typedef struct DIST_POINT_NAME_st { /* If relativename then this contains the full distribution point name */ X509_NAME *dpname; } DIST_POINT_NAME; +DECLARE_ASN1_DUP_FUNCTION(DIST_POINT_NAME) /* All existing reasons */ # define CRLDP_ALL_REASONS 0x807f @@ -659,15 +670,16 @@ struct ISSUING_DIST_POINT_st { # define EXFLAG_SAN_CRITICAL 0x80000 # define EXFLAG_NO_FINGERPRINT 0x100000 -# define KU_DIGITAL_SIGNATURE 0x0080 -# define KU_NON_REPUDIATION 0x0040 -# define KU_KEY_ENCIPHERMENT 0x0020 -# define KU_DATA_ENCIPHERMENT 0x0010 -# define KU_KEY_AGREEMENT 0x0008 -# define KU_KEY_CERT_SIGN 0x0004 -# define KU_CRL_SIGN 0x0002 -# define KU_ENCIPHER_ONLY 0x0001 -# define KU_DECIPHER_ONLY 0x8000 +/* https://datatracker.ietf.org/doc/html/rfc5280#section-4.2.1.3 */ +# define KU_DIGITAL_SIGNATURE X509v3_KU_DIGITAL_SIGNATURE +# define KU_NON_REPUDIATION X509v3_KU_NON_REPUDIATION +# define KU_KEY_ENCIPHERMENT X509v3_KU_KEY_ENCIPHERMENT +# define KU_DATA_ENCIPHERMENT X509v3_KU_DATA_ENCIPHERMENT +# define KU_KEY_AGREEMENT X509v3_KU_KEY_AGREEMENT +# define KU_KEY_CERT_SIGN X509v3_KU_KEY_CERT_SIGN +# define KU_CRL_SIGN X509v3_KU_CRL_SIGN +# define KU_ENCIPHER_ONLY X509v3_KU_ENCIPHER_ONLY +# define KU_DECIPHER_ONLY X509v3_KU_DECIPHER_ONLY # define NS_SSL_CLIENT 0x80 # define NS_SSL_SERVER 0x40 @@ -729,7 +741,7 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_PURPOSE, X509_PURPOSE, X509_PURPOSE) #define sk_X509_PURPOSE_set_cmp_func(sk, cmp) ((sk_X509_PURPOSE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_X509_PURPOSE_sk_type(sk), ossl_check_X509_PURPOSE_compfunc_type(cmp))) - +# define X509_PURPOSE_DEFAULT_ANY 0 # define X509_PURPOSE_SSL_CLIENT 1 # define X509_PURPOSE_SSL_SERVER 2 # define X509_PURPOSE_NS_SSL_SERVER 3 @@ -739,9 +751,10 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_PURPOSE, X509_PURPOSE, X509_PURPOSE) # define X509_PURPOSE_ANY 7 # define X509_PURPOSE_OCSP_HELPER 8 # define X509_PURPOSE_TIMESTAMP_SIGN 9 +# define X509_PURPOSE_CODE_SIGN 10 # define X509_PURPOSE_MIN 1 -# define X509_PURPOSE_MAX 9 +# define X509_PURPOSE_MAX 10 /* Flags for X509V3_EXT_print() */ @@ -767,6 +780,7 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_PURPOSE, X509_PURPOSE, X509_PURPOSE) # define X509V3_ADD_SILENT 0x10 DECLARE_ASN1_FUNCTIONS(BASIC_CONSTRAINTS) +DECLARE_ASN1_FUNCTIONS(OSSL_BASIC_ATTR_CONSTRAINTS) DECLARE_ASN1_FUNCTIONS(SXNET) DECLARE_ASN1_FUNCTIONS(SXNETID) @@ -976,7 +990,6 @@ int X509V3_extensions_print(BIO *out, const char *title, int X509_check_ca(X509 *x); int X509_check_purpose(X509 *x, int id, int ca); int X509_supported_extension(X509_EXTENSION *ex); -int X509_PURPOSE_set(int *p, int purpose); int X509_check_issued(X509 *issuer, X509 *subject); int X509_check_akid(const X509 *issuer, const AUTHORITY_KEYID *akid); void X509_set_proxy_flag(X509 *x); @@ -992,22 +1005,26 @@ const GENERAL_NAMES *X509_get0_authority_issuer(X509 *x); const ASN1_INTEGER *X509_get0_authority_serial(X509 *x); int X509_PURPOSE_get_count(void); -X509_PURPOSE *X509_PURPOSE_get0(int idx); +int X509_PURPOSE_get_unused_id(OSSL_LIB_CTX *libctx); int X509_PURPOSE_get_by_sname(const char *sname); int X509_PURPOSE_get_by_id(int id); int X509_PURPOSE_add(int id, int trust, int flags, int (*ck) (const X509_PURPOSE *, const X509 *, int), const char *name, const char *sname, void *arg); +void X509_PURPOSE_cleanup(void); + +X509_PURPOSE *X509_PURPOSE_get0(int idx); +int X509_PURPOSE_get_id(const X509_PURPOSE *); char *X509_PURPOSE_get0_name(const X509_PURPOSE *xp); char *X509_PURPOSE_get0_sname(const X509_PURPOSE *xp); int X509_PURPOSE_get_trust(const X509_PURPOSE *xp); -void X509_PURPOSE_cleanup(void); -int X509_PURPOSE_get_id(const X509_PURPOSE *); +int X509_PURPOSE_set(int *p, int purpose); STACK_OF(OPENSSL_STRING) *X509_get1_email(X509 *x); STACK_OF(OPENSSL_STRING) *X509_REQ_get1_email(X509_REQ *x); void X509_email_free(STACK_OF(OPENSSL_STRING) *sk); STACK_OF(OPENSSL_STRING) *X509_get1_ocsp(X509 *x); + /* Flags for X509_check_* functions */ /* @@ -1444,6 +1461,507 @@ const ASN1_PRINTABLESTRING *PROFESSION_INFO_get0_registrationNumber( void PROFESSION_INFO_set0_registrationNumber( PROFESSION_INFO *pi, ASN1_PRINTABLESTRING *rn); +int OSSL_GENERAL_NAMES_print(BIO *out, GENERAL_NAMES *gens, int indent); + +typedef STACK_OF(X509_ATTRIBUTE) OSSL_ATTRIBUTES_SYNTAX; +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTES_SYNTAX) + +typedef STACK_OF(USERNOTICE) OSSL_USER_NOTICE_SYNTAX; +DECLARE_ASN1_FUNCTIONS(OSSL_USER_NOTICE_SYNTAX) + +SKM_DEFINE_STACK_OF_INTERNAL(USERNOTICE, USERNOTICE, USERNOTICE) +#define sk_USERNOTICE_num(sk) OPENSSL_sk_num(ossl_check_const_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_value(sk, idx) ((USERNOTICE *)OPENSSL_sk_value(ossl_check_const_USERNOTICE_sk_type(sk), (idx))) +#define sk_USERNOTICE_new(cmp) ((STACK_OF(USERNOTICE) *)OPENSSL_sk_new(ossl_check_USERNOTICE_compfunc_type(cmp))) +#define sk_USERNOTICE_new_null() ((STACK_OF(USERNOTICE) *)OPENSSL_sk_new_null()) +#define sk_USERNOTICE_new_reserve(cmp, n) ((STACK_OF(USERNOTICE) *)OPENSSL_sk_new_reserve(ossl_check_USERNOTICE_compfunc_type(cmp), (n))) +#define sk_USERNOTICE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_USERNOTICE_sk_type(sk), (n)) +#define sk_USERNOTICE_free(sk) OPENSSL_sk_free(ossl_check_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_zero(sk) OPENSSL_sk_zero(ossl_check_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_delete(sk, i) ((USERNOTICE *)OPENSSL_sk_delete(ossl_check_USERNOTICE_sk_type(sk), (i))) +#define sk_USERNOTICE_delete_ptr(sk, ptr) ((USERNOTICE *)OPENSSL_sk_delete_ptr(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr))) +#define sk_USERNOTICE_push(sk, ptr) OPENSSL_sk_push(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr)) +#define sk_USERNOTICE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr)) +#define sk_USERNOTICE_pop(sk) ((USERNOTICE *)OPENSSL_sk_pop(ossl_check_USERNOTICE_sk_type(sk))) +#define sk_USERNOTICE_shift(sk) ((USERNOTICE *)OPENSSL_sk_shift(ossl_check_USERNOTICE_sk_type(sk))) +#define sk_USERNOTICE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_USERNOTICE_sk_type(sk),ossl_check_USERNOTICE_freefunc_type(freefunc)) +#define sk_USERNOTICE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr), (idx)) +#define sk_USERNOTICE_set(sk, idx, ptr) ((USERNOTICE *)OPENSSL_sk_set(ossl_check_USERNOTICE_sk_type(sk), (idx), ossl_check_USERNOTICE_type(ptr))) +#define sk_USERNOTICE_find(sk, ptr) OPENSSL_sk_find(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr)) +#define sk_USERNOTICE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr)) +#define sk_USERNOTICE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr), pnum) +#define sk_USERNOTICE_sort(sk) OPENSSL_sk_sort(ossl_check_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_dup(sk) ((STACK_OF(USERNOTICE) *)OPENSSL_sk_dup(ossl_check_const_USERNOTICE_sk_type(sk))) +#define sk_USERNOTICE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(USERNOTICE) *)OPENSSL_sk_deep_copy(ossl_check_const_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_copyfunc_type(copyfunc), ossl_check_USERNOTICE_freefunc_type(freefunc))) +#define sk_USERNOTICE_set_cmp_func(sk, cmp) ((sk_USERNOTICE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_compfunc_type(cmp))) + + +typedef struct OSSL_ROLE_SPEC_CERT_ID_st { + GENERAL_NAME *roleName; + GENERAL_NAME *roleCertIssuer; + ASN1_INTEGER *roleCertSerialNumber; + GENERAL_NAMES *roleCertLocator; +} OSSL_ROLE_SPEC_CERT_ID; + +DECLARE_ASN1_FUNCTIONS(OSSL_ROLE_SPEC_CERT_ID) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ROLE_SPEC_CERT_ID, OSSL_ROLE_SPEC_CERT_ID, OSSL_ROLE_SPEC_CERT_ID) +#define sk_OSSL_ROLE_SPEC_CERT_ID_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_value(sk, idx) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_value(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), (idx))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_new(cmp) ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_new(ossl_check_OSSL_ROLE_SPEC_CERT_ID_compfunc_type(cmp))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_new_null() ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ROLE_SPEC_CERT_ID_new_reserve(cmp, n) ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ROLE_SPEC_CERT_ID_compfunc_type(cmp), (n))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), (n)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_delete(sk, i) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_delete(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), (i))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_delete_ptr(sk, ptr) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_pop(sk) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_pop(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_shift(sk) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_shift(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk),ossl_check_OSSL_ROLE_SPEC_CERT_ID_freefunc_type(freefunc)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr), (idx)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_set(sk, idx, ptr) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_set(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), (idx), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr), pnum) +#define sk_OSSL_ROLE_SPEC_CERT_ID_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_dup(sk) ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_copyfunc_type(copyfunc), ossl_check_OSSL_ROLE_SPEC_CERT_ID_freefunc_type(freefunc))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_set_cmp_func(sk, cmp) ((sk_OSSL_ROLE_SPEC_CERT_ID_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_compfunc_type(cmp))) + + +typedef STACK_OF(OSSL_ROLE_SPEC_CERT_ID) OSSL_ROLE_SPEC_CERT_ID_SYNTAX; + +DECLARE_ASN1_FUNCTIONS(OSSL_ROLE_SPEC_CERT_ID_SYNTAX) +typedef struct OSSL_HASH_st { + X509_ALGOR *algorithmIdentifier; + ASN1_BIT_STRING *hashValue; +} OSSL_HASH; + +typedef struct OSSL_INFO_SYNTAX_POINTER_st { + GENERAL_NAMES *name; + OSSL_HASH *hash; +} OSSL_INFO_SYNTAX_POINTER; + +# define OSSL_INFO_SYNTAX_TYPE_CONTENT 0 +# define OSSL_INFO_SYNTAX_TYPE_POINTER 1 + +typedef struct OSSL_INFO_SYNTAX_st { + int type; + union { + ASN1_STRING *content; + OSSL_INFO_SYNTAX_POINTER *pointer; + } choice; +} OSSL_INFO_SYNTAX; + +typedef struct OSSL_PRIVILEGE_POLICY_ID_st { + ASN1_OBJECT *privilegePolicy; + OSSL_INFO_SYNTAX *privPolSyntax; +} OSSL_PRIVILEGE_POLICY_ID; + +typedef struct OSSL_ATTRIBUTE_DESCRIPTOR_st { + ASN1_OBJECT *identifier; + ASN1_STRING *attributeSyntax; + ASN1_UTF8STRING *name; + ASN1_UTF8STRING *description; + OSSL_PRIVILEGE_POLICY_ID *dominationRule; +} OSSL_ATTRIBUTE_DESCRIPTOR; + +DECLARE_ASN1_FUNCTIONS(OSSL_HASH) +DECLARE_ASN1_FUNCTIONS(OSSL_INFO_SYNTAX) +DECLARE_ASN1_FUNCTIONS(OSSL_INFO_SYNTAX_POINTER) +DECLARE_ASN1_FUNCTIONS(OSSL_PRIVILEGE_POLICY_ID) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_DESCRIPTOR) + +typedef struct OSSL_TIME_SPEC_ABSOLUTE_st { + ASN1_GENERALIZEDTIME *startTime; + ASN1_GENERALIZEDTIME *endTime; +} OSSL_TIME_SPEC_ABSOLUTE; + +typedef struct OSSL_DAY_TIME_st { + ASN1_INTEGER *hour; + ASN1_INTEGER *minute; + ASN1_INTEGER *second; +} OSSL_DAY_TIME; + +typedef struct OSSL_DAY_TIME_BAND_st { + OSSL_DAY_TIME *startDayTime; + OSSL_DAY_TIME *endDayTime; +} OSSL_DAY_TIME_BAND; + +# define OSSL_NAMED_DAY_TYPE_INT 0 +# define OSSL_NAMED_DAY_TYPE_BIT 1 +# define OSSL_NAMED_DAY_INT_SUN 1 +# define OSSL_NAMED_DAY_INT_MON 2 +# define OSSL_NAMED_DAY_INT_TUE 3 +# define OSSL_NAMED_DAY_INT_WED 4 +# define OSSL_NAMED_DAY_INT_THU 5 +# define OSSL_NAMED_DAY_INT_FRI 6 +# define OSSL_NAMED_DAY_INT_SAT 7 +# define OSSL_NAMED_DAY_BIT_SUN 0 +# define OSSL_NAMED_DAY_BIT_MON 1 +# define OSSL_NAMED_DAY_BIT_TUE 2 +# define OSSL_NAMED_DAY_BIT_WED 3 +# define OSSL_NAMED_DAY_BIT_THU 4 +# define OSSL_NAMED_DAY_BIT_FRI 5 +# define OSSL_NAMED_DAY_BIT_SAT 6 + +typedef struct OSSL_NAMED_DAY_st { + int type; + union { + ASN1_INTEGER *intNamedDays; + ASN1_BIT_STRING *bitNamedDays; + } choice; +} OSSL_NAMED_DAY; + +# define OSSL_TIME_SPEC_X_DAY_OF_FIRST 0 +# define OSSL_TIME_SPEC_X_DAY_OF_SECOND 1 +# define OSSL_TIME_SPEC_X_DAY_OF_THIRD 2 +# define OSSL_TIME_SPEC_X_DAY_OF_FOURTH 3 +# define OSSL_TIME_SPEC_X_DAY_OF_FIFTH 4 + +typedef struct OSSL_TIME_SPEC_X_DAY_OF_st { + int type; + union { + OSSL_NAMED_DAY *first; + OSSL_NAMED_DAY *second; + OSSL_NAMED_DAY *third; + OSSL_NAMED_DAY *fourth; + OSSL_NAMED_DAY *fifth; + } choice; +} OSSL_TIME_SPEC_X_DAY_OF; + +# define OSSL_TIME_SPEC_DAY_TYPE_INT 0 +# define OSSL_TIME_SPEC_DAY_TYPE_BIT 1 +# define OSSL_TIME_SPEC_DAY_TYPE_DAY_OF 2 +# define OSSL_TIME_SPEC_DAY_BIT_SUN 0 +# define OSSL_TIME_SPEC_DAY_BIT_MON 1 +# define OSSL_TIME_SPEC_DAY_BIT_TUE 2 +# define OSSL_TIME_SPEC_DAY_BIT_WED 3 +# define OSSL_TIME_SPEC_DAY_BIT_THU 4 +# define OSSL_TIME_SPEC_DAY_BIT_FRI 5 +# define OSSL_TIME_SPEC_DAY_BIT_SAT 6 +# define OSSL_TIME_SPEC_DAY_INT_SUN 1 +# define OSSL_TIME_SPEC_DAY_INT_MON 2 +# define OSSL_TIME_SPEC_DAY_INT_TUE 3 +# define OSSL_TIME_SPEC_DAY_INT_WED 4 +# define OSSL_TIME_SPEC_DAY_INT_THU 5 +# define OSSL_TIME_SPEC_DAY_INT_FRI 6 +# define OSSL_TIME_SPEC_DAY_INT_SAT 7 + +typedef struct OSSL_TIME_SPEC_DAY_st { + int type; + union { + STACK_OF(ASN1_INTEGER) *intDay; + ASN1_BIT_STRING *bitDay; + OSSL_TIME_SPEC_X_DAY_OF *dayOf; + } choice; +} OSSL_TIME_SPEC_DAY; + +# define OSSL_TIME_SPEC_WEEKS_TYPE_ALL 0 +# define OSSL_TIME_SPEC_WEEKS_TYPE_INT 1 +# define OSSL_TIME_SPEC_WEEKS_TYPE_BIT 2 +# define OSSL_TIME_SPEC_BIT_WEEKS_1 0 +# define OSSL_TIME_SPEC_BIT_WEEKS_2 1 +# define OSSL_TIME_SPEC_BIT_WEEKS_3 2 +# define OSSL_TIME_SPEC_BIT_WEEKS_4 3 +# define OSSL_TIME_SPEC_BIT_WEEKS_5 4 + +typedef struct OSSL_TIME_SPEC_WEEKS_st { + int type; + union { + ASN1_NULL *allWeeks; + STACK_OF(ASN1_INTEGER) *intWeek; + ASN1_BIT_STRING *bitWeek; + } choice; +} OSSL_TIME_SPEC_WEEKS; + +# define OSSL_TIME_SPEC_MONTH_TYPE_ALL 0 +# define OSSL_TIME_SPEC_MONTH_TYPE_INT 1 +# define OSSL_TIME_SPEC_MONTH_TYPE_BIT 2 +# define OSSL_TIME_SPEC_INT_MONTH_JAN 1 +# define OSSL_TIME_SPEC_INT_MONTH_FEB 2 +# define OSSL_TIME_SPEC_INT_MONTH_MAR 3 +# define OSSL_TIME_SPEC_INT_MONTH_APR 4 +# define OSSL_TIME_SPEC_INT_MONTH_MAY 5 +# define OSSL_TIME_SPEC_INT_MONTH_JUN 6 +# define OSSL_TIME_SPEC_INT_MONTH_JUL 7 +# define OSSL_TIME_SPEC_INT_MONTH_AUG 8 +# define OSSL_TIME_SPEC_INT_MONTH_SEP 9 +# define OSSL_TIME_SPEC_INT_MONTH_OCT 10 +# define OSSL_TIME_SPEC_INT_MONTH_NOV 11 +# define OSSL_TIME_SPEC_INT_MONTH_DEC 12 +# define OSSL_TIME_SPEC_BIT_MONTH_JAN 0 +# define OSSL_TIME_SPEC_BIT_MONTH_FEB 1 +# define OSSL_TIME_SPEC_BIT_MONTH_MAR 2 +# define OSSL_TIME_SPEC_BIT_MONTH_APR 3 +# define OSSL_TIME_SPEC_BIT_MONTH_MAY 4 +# define OSSL_TIME_SPEC_BIT_MONTH_JUN 5 +# define OSSL_TIME_SPEC_BIT_MONTH_JUL 6 +# define OSSL_TIME_SPEC_BIT_MONTH_AUG 7 +# define OSSL_TIME_SPEC_BIT_MONTH_SEP 8 +# define OSSL_TIME_SPEC_BIT_MONTH_OCT 9 +# define OSSL_TIME_SPEC_BIT_MONTH_NOV 10 +# define OSSL_TIME_SPEC_BIT_MONTH_DEC 11 + +typedef struct OSSL_TIME_SPEC_MONTH_st { + int type; + union { + ASN1_NULL *allMonths; + STACK_OF(ASN1_INTEGER) *intMonth; + ASN1_BIT_STRING *bitMonth; + } choice; +} OSSL_TIME_SPEC_MONTH; + +typedef struct OSSL_TIME_PERIOD_st { + STACK_OF(OSSL_DAY_TIME_BAND) *timesOfDay; + OSSL_TIME_SPEC_DAY *days; + OSSL_TIME_SPEC_WEEKS *weeks; + OSSL_TIME_SPEC_MONTH *months; + STACK_OF(ASN1_INTEGER) *years; +} OSSL_TIME_PERIOD; + +# define OSSL_TIME_SPEC_TIME_TYPE_ABSOLUTE 0 +# define OSSL_TIME_SPEC_TIME_TYPE_PERIODIC 1 + +typedef struct OSSL_TIME_SPEC_TIME_st { + int type; + union { + OSSL_TIME_SPEC_ABSOLUTE *absolute; + STACK_OF(OSSL_TIME_PERIOD) *periodic; + } choice; +} OSSL_TIME_SPEC_TIME; + +typedef struct OSSL_TIME_SPEC_st { + OSSL_TIME_SPEC_TIME *time; + ASN1_BOOLEAN notThisTime; + ASN1_INTEGER *timeZone; +} OSSL_TIME_SPEC; + +DECLARE_ASN1_FUNCTIONS(OSSL_DAY_TIME) +DECLARE_ASN1_FUNCTIONS(OSSL_DAY_TIME_BAND) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_DAY) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_WEEKS) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_MONTH) +DECLARE_ASN1_FUNCTIONS(OSSL_NAMED_DAY) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_X_DAY_OF) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_ABSOLUTE) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_TIME) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_PERIOD) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_TIME_PERIOD, OSSL_TIME_PERIOD, OSSL_TIME_PERIOD) +#define sk_OSSL_TIME_PERIOD_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_value(sk, idx) ((OSSL_TIME_PERIOD *)OPENSSL_sk_value(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk), (idx))) +#define sk_OSSL_TIME_PERIOD_new(cmp) ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_new(ossl_check_OSSL_TIME_PERIOD_compfunc_type(cmp))) +#define sk_OSSL_TIME_PERIOD_new_null() ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_new_null()) +#define sk_OSSL_TIME_PERIOD_new_reserve(cmp, n) ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_TIME_PERIOD_compfunc_type(cmp), (n))) +#define sk_OSSL_TIME_PERIOD_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), (n)) +#define sk_OSSL_TIME_PERIOD_free(sk) OPENSSL_sk_free(ossl_check_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_delete(sk, i) ((OSSL_TIME_PERIOD *)OPENSSL_sk_delete(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), (i))) +#define sk_OSSL_TIME_PERIOD_delete_ptr(sk, ptr) ((OSSL_TIME_PERIOD *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr))) +#define sk_OSSL_TIME_PERIOD_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr)) +#define sk_OSSL_TIME_PERIOD_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr)) +#define sk_OSSL_TIME_PERIOD_pop(sk) ((OSSL_TIME_PERIOD *)OPENSSL_sk_pop(ossl_check_OSSL_TIME_PERIOD_sk_type(sk))) +#define sk_OSSL_TIME_PERIOD_shift(sk) ((OSSL_TIME_PERIOD *)OPENSSL_sk_shift(ossl_check_OSSL_TIME_PERIOD_sk_type(sk))) +#define sk_OSSL_TIME_PERIOD_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_TIME_PERIOD_sk_type(sk),ossl_check_OSSL_TIME_PERIOD_freefunc_type(freefunc)) +#define sk_OSSL_TIME_PERIOD_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr), (idx)) +#define sk_OSSL_TIME_PERIOD_set(sk, idx, ptr) ((OSSL_TIME_PERIOD *)OPENSSL_sk_set(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), (idx), ossl_check_OSSL_TIME_PERIOD_type(ptr))) +#define sk_OSSL_TIME_PERIOD_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr)) +#define sk_OSSL_TIME_PERIOD_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr)) +#define sk_OSSL_TIME_PERIOD_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr), pnum) +#define sk_OSSL_TIME_PERIOD_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_dup(sk) ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_dup(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk))) +#define sk_OSSL_TIME_PERIOD_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_copyfunc_type(copyfunc), ossl_check_OSSL_TIME_PERIOD_freefunc_type(freefunc))) +#define sk_OSSL_TIME_PERIOD_set_cmp_func(sk, cmp) ((sk_OSSL_TIME_PERIOD_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_compfunc_type(cmp))) + + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_DAY_TIME_BAND, OSSL_DAY_TIME_BAND, OSSL_DAY_TIME_BAND) +#define sk_OSSL_DAY_TIME_BAND_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_value(sk, idx) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_value(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk), (idx))) +#define sk_OSSL_DAY_TIME_BAND_new(cmp) ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_new(ossl_check_OSSL_DAY_TIME_BAND_compfunc_type(cmp))) +#define sk_OSSL_DAY_TIME_BAND_new_null() ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_new_null()) +#define sk_OSSL_DAY_TIME_BAND_new_reserve(cmp, n) ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_DAY_TIME_BAND_compfunc_type(cmp), (n))) +#define sk_OSSL_DAY_TIME_BAND_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), (n)) +#define sk_OSSL_DAY_TIME_BAND_free(sk) OPENSSL_sk_free(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_delete(sk, i) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_delete(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), (i))) +#define sk_OSSL_DAY_TIME_BAND_delete_ptr(sk, ptr) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr))) +#define sk_OSSL_DAY_TIME_BAND_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr)) +#define sk_OSSL_DAY_TIME_BAND_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr)) +#define sk_OSSL_DAY_TIME_BAND_pop(sk) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_pop(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk))) +#define sk_OSSL_DAY_TIME_BAND_shift(sk) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_shift(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk))) +#define sk_OSSL_DAY_TIME_BAND_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk),ossl_check_OSSL_DAY_TIME_BAND_freefunc_type(freefunc)) +#define sk_OSSL_DAY_TIME_BAND_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr), (idx)) +#define sk_OSSL_DAY_TIME_BAND_set(sk, idx, ptr) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_set(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), (idx), ossl_check_OSSL_DAY_TIME_BAND_type(ptr))) +#define sk_OSSL_DAY_TIME_BAND_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr)) +#define sk_OSSL_DAY_TIME_BAND_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr)) +#define sk_OSSL_DAY_TIME_BAND_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr), pnum) +#define sk_OSSL_DAY_TIME_BAND_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_dup(sk) ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_dup(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk))) +#define sk_OSSL_DAY_TIME_BAND_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_copyfunc_type(copyfunc), ossl_check_OSSL_DAY_TIME_BAND_freefunc_type(freefunc))) +#define sk_OSSL_DAY_TIME_BAND_set_cmp_func(sk, cmp) ((sk_OSSL_DAY_TIME_BAND_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_compfunc_type(cmp))) + + +/* Attribute Type and Value */ +typedef struct atav_st { + ASN1_OBJECT *type; + ASN1_TYPE *value; +} OSSL_ATAV; + +typedef struct ATTRIBUTE_TYPE_MAPPING_st { + ASN1_OBJECT *local; + ASN1_OBJECT *remote; +} OSSL_ATTRIBUTE_TYPE_MAPPING; + +typedef struct ATTRIBUTE_VALUE_MAPPING_st { + OSSL_ATAV *local; + OSSL_ATAV *remote; +} OSSL_ATTRIBUTE_VALUE_MAPPING; + +# define OSSL_ATTR_MAP_TYPE 0 +# define OSSL_ATTR_MAP_VALUE 1 + +typedef struct ATTRIBUTE_MAPPING_st { + int type; + union { + OSSL_ATTRIBUTE_TYPE_MAPPING *typeMappings; + OSSL_ATTRIBUTE_VALUE_MAPPING *typeValueMappings; + } choice; +} OSSL_ATTRIBUTE_MAPPING; + +typedef STACK_OF(OSSL_ATTRIBUTE_MAPPING) OSSL_ATTRIBUTE_MAPPINGS; +DECLARE_ASN1_FUNCTIONS(OSSL_ATAV) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_TYPE_MAPPING) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_VALUE_MAPPING) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_MAPPING) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_MAPPINGS) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ATTRIBUTE_MAPPING, OSSL_ATTRIBUTE_MAPPING, OSSL_ATTRIBUTE_MAPPING) +#define sk_OSSL_ATTRIBUTE_MAPPING_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_value(sk, idx) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_value(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), (idx))) +#define sk_OSSL_ATTRIBUTE_MAPPING_new(cmp) ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_new(ossl_check_OSSL_ATTRIBUTE_MAPPING_compfunc_type(cmp))) +#define sk_OSSL_ATTRIBUTE_MAPPING_new_null() ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ATTRIBUTE_MAPPING_new_reserve(cmp, n) ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ATTRIBUTE_MAPPING_compfunc_type(cmp), (n))) +#define sk_OSSL_ATTRIBUTE_MAPPING_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), (n)) +#define sk_OSSL_ATTRIBUTE_MAPPING_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_delete(sk, i) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_delete(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), (i))) +#define sk_OSSL_ATTRIBUTE_MAPPING_delete_ptr(sk, ptr) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr))) +#define sk_OSSL_ATTRIBUTE_MAPPING_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr)) +#define sk_OSSL_ATTRIBUTE_MAPPING_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr)) +#define sk_OSSL_ATTRIBUTE_MAPPING_pop(sk) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_pop(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk))) +#define sk_OSSL_ATTRIBUTE_MAPPING_shift(sk) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_shift(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk))) +#define sk_OSSL_ATTRIBUTE_MAPPING_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk),ossl_check_OSSL_ATTRIBUTE_MAPPING_freefunc_type(freefunc)) +#define sk_OSSL_ATTRIBUTE_MAPPING_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr), (idx)) +#define sk_OSSL_ATTRIBUTE_MAPPING_set(sk, idx, ptr) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_set(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), (idx), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr))) +#define sk_OSSL_ATTRIBUTE_MAPPING_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr)) +#define sk_OSSL_ATTRIBUTE_MAPPING_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr)) +#define sk_OSSL_ATTRIBUTE_MAPPING_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr), pnum) +#define sk_OSSL_ATTRIBUTE_MAPPING_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_dup(sk) ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk))) +#define sk_OSSL_ATTRIBUTE_MAPPING_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_copyfunc_type(copyfunc), ossl_check_OSSL_ATTRIBUTE_MAPPING_freefunc_type(freefunc))) +#define sk_OSSL_ATTRIBUTE_MAPPING_set_cmp_func(sk, cmp) ((sk_OSSL_ATTRIBUTE_MAPPING_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_compfunc_type(cmp))) + + +# define OSSL_AAA_ATTRIBUTE_TYPE 0 +# define OSSL_AAA_ATTRIBUTE_VALUES 1 + +typedef struct ALLOWED_ATTRIBUTES_CHOICE_st { + int type; + union { + ASN1_OBJECT *attributeType; + X509_ATTRIBUTE *attributeTypeandValues; + } choice; +} OSSL_ALLOWED_ATTRIBUTES_CHOICE; + +typedef struct ALLOWED_ATTRIBUTES_ITEM_st { + STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *attributes; + GENERAL_NAME *holderDomain; +} OSSL_ALLOWED_ATTRIBUTES_ITEM; + +typedef STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) OSSL_ALLOWED_ATTRIBUTES_SYNTAX; + +DECLARE_ASN1_FUNCTIONS(OSSL_ALLOWED_ATTRIBUTES_CHOICE) +DECLARE_ASN1_FUNCTIONS(OSSL_ALLOWED_ATTRIBUTES_ITEM) +DECLARE_ASN1_FUNCTIONS(OSSL_ALLOWED_ATTRIBUTES_SYNTAX) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ALLOWED_ATTRIBUTES_CHOICE, OSSL_ALLOWED_ATTRIBUTES_CHOICE, OSSL_ALLOWED_ATTRIBUTES_CHOICE) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_value(sk, idx) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_value(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), (idx))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_new(cmp) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_new(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_compfunc_type(cmp))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_new_null() ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_new_reserve(cmp, n) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_compfunc_type(cmp), (n))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), (n)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_delete(sk, i) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_delete(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), (i))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_delete_ptr(sk, ptr) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_pop(sk) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_pop(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_shift(sk) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_shift(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk),ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_freefunc_type(freefunc)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr), (idx)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_set(sk, idx, ptr) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_set(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), (idx), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr), pnum) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_dup(sk) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_copyfunc_type(copyfunc), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_freefunc_type(freefunc))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_set_cmp_func(sk, cmp) ((sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_compfunc_type(cmp))) + + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ALLOWED_ATTRIBUTES_ITEM, OSSL_ALLOWED_ATTRIBUTES_ITEM, OSSL_ALLOWED_ATTRIBUTES_ITEM) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_value(sk, idx) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_value(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), (idx))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_new(cmp) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_new(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_compfunc_type(cmp))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_new_null() ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_new_reserve(cmp, n) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_compfunc_type(cmp), (n))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), (n)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_delete(sk, i) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_delete(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), (i))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_delete_ptr(sk, ptr) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_pop(sk) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_pop(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_shift(sk) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_shift(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk),ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_freefunc_type(freefunc)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr), (idx)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_set(sk, idx, ptr) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_set(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), (idx), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr), pnum) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_dup(sk) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_copyfunc_type(copyfunc), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_freefunc_type(freefunc))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_set_cmp_func(sk, cmp) ((sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_compfunc_type(cmp))) + + +typedef struct AA_DIST_POINT_st { + DIST_POINT_NAME *distpoint; + ASN1_BIT_STRING *reasons; + int dp_reasons; + ASN1_BOOLEAN indirectCRL; + ASN1_BOOLEAN containsUserAttributeCerts; + ASN1_BOOLEAN containsAACerts; + ASN1_BOOLEAN containsSOAPublicKeyCerts; +} OSSL_AA_DIST_POINT; + +DECLARE_ASN1_FUNCTIONS(OSSL_AA_DIST_POINT) + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/linux-aarch64/asm_avx2/include/progs.h b/deps/openssl/config/archs/linux-aarch64/asm_avx2/include/progs.h index be55f61503d405..1b62ec37dec130 100644 --- a/deps/openssl/config/archs/linux-aarch64/asm_avx2/include/progs.h +++ b/deps/openssl/config/archs/linux-aarch64/asm_avx2/include/progs.h @@ -56,6 +56,7 @@ extern int s_client_main(int argc, char *argv[]); extern int s_server_main(int argc, char *argv[]); extern int s_time_main(int argc, char *argv[]); extern int sess_id_main(int argc, char *argv[]); +extern int skeyutl_main(int argc, char *argv[]); extern int smime_main(int argc, char *argv[]); extern int speed_main(int argc, char *argv[]); extern int spkac_main(int argc, char *argv[]); @@ -110,6 +111,7 @@ extern const OPTIONS s_client_options[]; extern const OPTIONS s_server_options[]; extern const OPTIONS s_time_options[]; extern const OPTIONS sess_id_options[]; +extern const OPTIONS skeyutl_options[]; extern const OPTIONS smime_options[]; extern const OPTIONS speed_options[]; extern const OPTIONS spkac_options[]; diff --git a/deps/openssl/config/archs/linux-aarch64/asm_avx2/openssl-cl.gypi b/deps/openssl/config/archs/linux-aarch64/asm_avx2/openssl-cl.gypi index 3baf4348167a75..aac6b3926e16d4 100644 --- a/deps/openssl/config/archs/linux-aarch64/asm_avx2/openssl-cl.gypi +++ b/deps/openssl/config/archs/linux-aarch64/asm_avx2/openssl-cl.gypi @@ -4,15 +4,21 @@ 'NDEBUG', 'OPENSSL_USE_NODELETE', 'OPENSSL_BUILDING_OPENSSL', + 'BSAES_ASM', 'ECP_NISTZ256_ASM', + 'ECP_SM2P256_ASM', 'KECCAK1600_ASM', + 'MD5_ASM', 'OPENSSL_BN_ASM_MONT', 'OPENSSL_CPUID_OBJ', + 'OPENSSL_SM3_ASM', 'POLY1305_ASM', 'SHA1_ASM', 'SHA256_ASM', 'SHA512_ASM', + 'SM4_ASM', 'VPAES_ASM', + 'VPSM4_ASM', 'OPENSSL_PIC', ], 'openssl_cflags_linux-aarch64': [ @@ -71,6 +77,7 @@ 'openssl/apps/s_server.c', 'openssl/apps/s_time.c', 'openssl/apps/sess_id.c', + 'openssl/apps/skeyutl.c', 'openssl/apps/smime.c', 'openssl/apps/speed.c', 'openssl/apps/spkac.c', @@ -86,12 +93,14 @@ 'openssl/apps/lib/app_rand.c', 'openssl/apps/lib/app_x509.c', 'openssl/apps/lib/apps.c', + 'openssl/apps/lib/apps_opt_printf.c', 'openssl/apps/lib/apps_ui.c', 'openssl/apps/lib/columns.c', 'openssl/apps/lib/engine.c', 'openssl/apps/lib/engine_loader.c', 'openssl/apps/lib/fmt.c', 'openssl/apps/lib/http_server.c', + 'openssl/apps/lib/log.c', 'openssl/apps/lib/names.c', 'openssl/apps/lib/opt.c', 'openssl/apps/lib/s_cb.c', diff --git a/deps/openssl/config/archs/linux-aarch64/asm_avx2/openssl-fips.gypi b/deps/openssl/config/archs/linux-aarch64/asm_avx2/openssl-fips.gypi index 35653fd9e7ab0e..19a9fdc22e5ac6 100644 --- a/deps/openssl/config/archs/linux-aarch64/asm_avx2/openssl-fips.gypi +++ b/deps/openssl/config/archs/linux-aarch64/asm_avx2/openssl-fips.gypi @@ -83,6 +83,8 @@ 'openssl/crypto/ec/ecp_nist.c', 'openssl/crypto/ec/ecp_nistz256.c', 'openssl/crypto/ec/ecp_oct.c', + 'openssl/crypto/ec/ecp_sm2p256.c', + 'openssl/crypto/ec/ecp_sm2p256_table.c', 'openssl/crypto/ec/ecp_smpl.c', 'openssl/crypto/ec/ecx_backend.c', 'openssl/crypto/ec/ecx_key.c', @@ -101,14 +103,15 @@ 'openssl/crypto/evp/kem.c', 'openssl/crypto/evp/keymgmt_lib.c', 'openssl/crypto/evp/keymgmt_meth.c', - 'openssl/crypto/evp/m_sigver.c', 'openssl/crypto/evp/mac_lib.c', 'openssl/crypto/evp/mac_meth.c', 'openssl/crypto/evp/p_lib.c', 'openssl/crypto/evp/pmeth_check.c', 'openssl/crypto/evp/pmeth_gn.c', 'openssl/crypto/evp/pmeth_lib.c', + 'openssl/crypto/evp/s_lib.c', 'openssl/crypto/evp/signature.c', + 'openssl/crypto/evp/skeymgmt_meth.c', 'openssl/crypto/ffc/ffc_backend.c', 'openssl/crypto/ffc/ffc_dh.c', 'openssl/crypto/ffc/ffc_key_generate.c', @@ -116,6 +119,8 @@ 'openssl/crypto/ffc/ffc_params.c', 'openssl/crypto/ffc/ffc_params_generate.c', 'openssl/crypto/ffc/ffc_params_validate.c', + 'openssl/crypto/hashtable/hashfunc.c', + 'openssl/crypto/hashtable/hashtable.c', 'openssl/crypto/hmac/hmac.c', 'openssl/crypto/lhash/lhash.c', 'openssl/crypto/armcap.c', @@ -146,6 +151,16 @@ 'openssl/crypto/threads_none.c', 'openssl/crypto/threads_pthread.c', 'openssl/crypto/threads_win.c', + 'openssl/crypto/time.c', + 'openssl/crypto/ml_dsa/ml_dsa_encoders.c', + 'openssl/crypto/ml_dsa/ml_dsa_key.c', + 'openssl/crypto/ml_dsa/ml_dsa_key_compress.c', + 'openssl/crypto/ml_dsa/ml_dsa_matrix.c', + 'openssl/crypto/ml_dsa/ml_dsa_ntt.c', + 'openssl/crypto/ml_dsa/ml_dsa_params.c', + 'openssl/crypto/ml_dsa/ml_dsa_sample.c', + 'openssl/crypto/ml_dsa/ml_dsa_sign.c', + 'openssl/crypto/ml_kem/ml_kem.c', 'openssl/crypto/modes/cbc128.c', 'openssl/crypto/modes/ccm128.c', 'openssl/crypto/modes/cfb128.c', @@ -154,6 +169,7 @@ 'openssl/crypto/modes/ofb128.c', 'openssl/crypto/modes/wrap128.c', 'openssl/crypto/modes/xts128.c', + 'openssl/crypto/modes/xts128gb.c', 'openssl/crypto/property/defn_cache.c', 'openssl/crypto/property/property.c', 'openssl/crypto/property/property_parse.c', @@ -181,7 +197,23 @@ 'openssl/crypto/sha/sha256.c', 'openssl/crypto/sha/sha3.c', 'openssl/crypto/sha/sha512.c', + 'openssl/crypto/slh_dsa/slh_adrs.c', + 'openssl/crypto/slh_dsa/slh_dsa.c', + 'openssl/crypto/slh_dsa/slh_dsa_hash_ctx.c', + 'openssl/crypto/slh_dsa/slh_dsa_key.c', + 'openssl/crypto/slh_dsa/slh_fors.c', + 'openssl/crypto/slh_dsa/slh_hash.c', + 'openssl/crypto/slh_dsa/slh_hypertree.c', + 'openssl/crypto/slh_dsa/slh_params.c', + 'openssl/crypto/slh_dsa/slh_wots.c', + 'openssl/crypto/slh_dsa/slh_xmss.c', 'openssl/crypto/stack/stack.c', + 'openssl/crypto/thread/arch/thread_none.c', + 'openssl/crypto/thread/arch/thread_posix.c', + 'openssl/crypto/thread/arch/thread_win.c', + 'openssl/crypto/thread/api.c', + 'openssl/crypto/thread/arch.c', + 'openssl/crypto/thread/internal.c', 'openssl/providers/common/der/der_rsa_sig.c', 'openssl/providers/common/bio_prov.c', 'openssl/providers/common/capabilities.c', @@ -190,6 +222,7 @@ 'openssl/providers/common/provider_util.c', 'openssl/providers/common/securitycheck.c', 'openssl/providers/common/securitycheck_fips.c', + 'openssl/providers/fips/fipsindicator.c', 'openssl/providers/fips/fipsprov.c', 'openssl/providers/fips/self_test.c', 'openssl/providers/fips/self_test_kats.c', @@ -227,6 +260,8 @@ 'openssl/providers/implementations/kdfs/sskdf.c', 'openssl/providers/implementations/kdfs/tls1_prf.c', 'openssl/providers/implementations/kdfs/x942kdf.c', + 'openssl/providers/implementations/kem/ml_kem_kem.c', + 'openssl/providers/implementations/kem/mlx_kem.c', 'openssl/providers/implementations/kem/rsa_kem.c', 'openssl/providers/implementations/keymgmt/dh_kmgmt.c', 'openssl/providers/implementations/keymgmt/dsa_kmgmt.c', @@ -234,29 +269,39 @@ 'openssl/providers/implementations/keymgmt/ecx_kmgmt.c', 'openssl/providers/implementations/keymgmt/kdf_legacy_kmgmt.c', 'openssl/providers/implementations/keymgmt/mac_legacy_kmgmt.c', + 'openssl/providers/implementations/keymgmt/ml_dsa_kmgmt.c', + 'openssl/providers/implementations/keymgmt/ml_kem_kmgmt.c', + 'openssl/providers/implementations/keymgmt/mlx_kmgmt.c', 'openssl/providers/implementations/keymgmt/rsa_kmgmt.c', + 'openssl/providers/implementations/keymgmt/slh_dsa_kmgmt.c', 'openssl/providers/implementations/macs/cmac_prov.c', 'openssl/providers/implementations/macs/gmac_prov.c', 'openssl/providers/implementations/macs/hmac_prov.c', 'openssl/providers/implementations/macs/kmac_prov.c', - 'openssl/providers/implementations/rands/crngt.c', 'openssl/providers/implementations/rands/drbg.c', 'openssl/providers/implementations/rands/drbg_ctr.c', 'openssl/providers/implementations/rands/drbg_hash.c', 'openssl/providers/implementations/rands/drbg_hmac.c', + 'openssl/providers/implementations/rands/fips_crng_test.c', 'openssl/providers/implementations/rands/test_rng.c', 'openssl/providers/implementations/signature/dsa_sig.c', 'openssl/providers/implementations/signature/ecdsa_sig.c', 'openssl/providers/implementations/signature/eddsa_sig.c', 'openssl/providers/implementations/signature/mac_legacy_sig.c', + 'openssl/providers/implementations/signature/ml_dsa_sig.c', 'openssl/providers/implementations/signature/rsa_sig.c', - 'openssl/ssl/s3_cbc.c', + 'openssl/providers/implementations/signature/slh_dsa_sig.c', + 'openssl/providers/implementations/skeymgmt/aes_skmgmt.c', + 'openssl/providers/implementations/skeymgmt/generic.c', + 'openssl/ssl/record/methods/ssl3_cbc.c', 'openssl/providers/common/der/der_dsa_key.c', 'openssl/providers/common/der/der_dsa_sig.c', 'openssl/providers/common/der/der_ec_key.c', 'openssl/providers/common/der/der_ec_sig.c', 'openssl/providers/common/der/der_ecx_key.c', + 'openssl/providers/common/der/der_ml_dsa_key.c', 'openssl/providers/common/der/der_rsa_key.c', + 'openssl/providers/common/der/der_slh_dsa_key.c', 'openssl/providers/common/provider_ctx.c', 'openssl/providers/common/provider_err.c', 'openssl/providers/implementations/ciphers/ciphercommon.c', @@ -267,17 +312,23 @@ 'openssl/providers/implementations/ciphers/ciphercommon_gcm_hw.c', 'openssl/providers/implementations/ciphers/ciphercommon_hw.c', 'openssl/providers/implementations/digests/digestcommon.c', - 'openssl/ssl/record/tls_pad.c', + 'openssl/ssl/record/methods/tls_pad.c', 'openssl/providers/fips/fips_entry.c', ], 'openssl_sources_linux-aarch64': [ './config/archs/linux-aarch64/asm_avx2/crypto/aes/aesv8-armx.S', + './config/archs/linux-aarch64/asm_avx2/crypto/aes/bsaes-armv8.S', './config/archs/linux-aarch64/asm_avx2/crypto/aes/vpaes-armv8.S', './config/archs/linux-aarch64/asm_avx2/crypto/bn/armv8-mont.S', + './config/archs/linux-aarch64/asm_avx2/crypto/chacha/chacha-armv8-sve.S', './config/archs/linux-aarch64/asm_avx2/crypto/chacha/chacha-armv8.S', './config/archs/linux-aarch64/asm_avx2/crypto/ec/ecp_nistz256-armv8.S', + './config/archs/linux-aarch64/asm_avx2/crypto/ec/ecp_sm2p256-armv8.S', './config/archs/linux-aarch64/asm_avx2/crypto/arm64cpuid.S', + './config/archs/linux-aarch64/asm_avx2/crypto/params_idx.c', + './config/archs/linux-aarch64/asm_avx2/crypto/md5/md5-aarch64.S', + './config/archs/linux-aarch64/asm_avx2/crypto/modes/aes-gcm-armv8-unroll8_64.S', './config/archs/linux-aarch64/asm_avx2/crypto/modes/aes-gcm-armv8_64.S', './config/archs/linux-aarch64/asm_avx2/crypto/modes/ghashv8-armx.S', './config/archs/linux-aarch64/asm_avx2/crypto/poly1305/poly1305-armv8.S', @@ -285,12 +336,18 @@ './config/archs/linux-aarch64/asm_avx2/crypto/sha/sha1-armv8.S', './config/archs/linux-aarch64/asm_avx2/crypto/sha/sha256-armv8.S', './config/archs/linux-aarch64/asm_avx2/crypto/sha/sha512-armv8.S', + './config/archs/linux-aarch64/asm_avx2/crypto/sm3/sm3-armv8.S', + './config/archs/linux-aarch64/asm_avx2/crypto/sm4/sm4-armv8.S', + './config/archs/linux-aarch64/asm_avx2/crypto/sm4/vpsm4-armv8.S', + './config/archs/linux-aarch64/asm_avx2/crypto/sm4/vpsm4_ex-armv8.S', './config/archs/linux-aarch64/asm_avx2/providers/common/der/der_sm2_gen.c', './config/archs/linux-aarch64/asm_avx2/providers/common/der/der_digests_gen.c', './config/archs/linux-aarch64/asm_avx2/providers/common/der/der_dsa_gen.c', './config/archs/linux-aarch64/asm_avx2/providers/common/der/der_ec_gen.c', './config/archs/linux-aarch64/asm_avx2/providers/common/der/der_ecx_gen.c', + './config/archs/linux-aarch64/asm_avx2/providers/common/der/der_ml_dsa_gen.c', './config/archs/linux-aarch64/asm_avx2/providers/common/der/der_rsa_gen.c', + './config/archs/linux-aarch64/asm_avx2/providers/common/der/der_slh_dsa_gen.c', './config/archs/linux-aarch64/asm_avx2/providers/common/der/der_wrap_gen.c', './config/archs/linux-aarch64/asm_avx2/providers/legacy.ld', './config/archs/linux-aarch64/asm_avx2/providers/fips.ld', @@ -300,7 +357,9 @@ 'NDEBUG', 'OPENSSL_USE_NODELETE', 'OPENSSL_BUILDING_OPENSSL', + 'BSAES_ASM', 'ECP_NISTZ256_ASM', + 'ECP_SM2P256_ASM', 'FIPS_MODULE', 'KECCAK1600_ASM', 'OPENSSL_BN_ASM_MONT', @@ -308,7 +367,9 @@ 'SHA1_ASM', 'SHA256_ASM', 'SHA512_ASM', + 'SM4_ASM', 'VPAES_ASM', + 'VPSM4_ASM', 'FIPS_MODULE', ], 'openssl_cflags_linux-aarch64': [ diff --git a/deps/openssl/config/archs/linux-aarch64/asm_avx2/openssl.gypi b/deps/openssl/config/archs/linux-aarch64/asm_avx2/openssl.gypi index b9d76aee0d0dd6..ccfd87f4c0eaa0 100644 --- a/deps/openssl/config/archs/linux-aarch64/asm_avx2/openssl.gypi +++ b/deps/openssl/config/archs/linux-aarch64/asm_avx2/openssl.gypi @@ -7,14 +7,15 @@ 'openssl/ssl/d1_srtp.c', 'openssl/ssl/methods.c', 'openssl/ssl/pqueue.c', + 'openssl/ssl/priority_queue.c', 'openssl/ssl/s3_enc.c', 'openssl/ssl/s3_lib.c', 'openssl/ssl/s3_msg.c', 'openssl/ssl/ssl_asn1.c', 'openssl/ssl/ssl_cert.c', + 'openssl/ssl/ssl_cert_comp.c', 'openssl/ssl/ssl_ciph.c', 'openssl/ssl/ssl_conf.c', - 'openssl/ssl/ssl_err.c', 'openssl/ssl/ssl_err_legacy.c', 'openssl/ssl/ssl_init.c', 'openssl/ssl/ssl_lib.c', @@ -31,12 +32,60 @@ 'openssl/ssl/tls13_enc.c', 'openssl/ssl/tls_depr.c', 'openssl/ssl/tls_srp.c', - 'openssl/ssl/record/dtls1_bitmap.c', + 'openssl/ssl/quic/cc_newreno.c', + 'openssl/ssl/quic/json_enc.c', + 'openssl/ssl/quic/qlog.c', + 'openssl/ssl/quic/qlog_event_helpers.c', + 'openssl/ssl/quic/quic_ackm.c', + 'openssl/ssl/quic/quic_cfq.c', + 'openssl/ssl/quic/quic_channel.c', + 'openssl/ssl/quic/quic_demux.c', + 'openssl/ssl/quic/quic_engine.c', + 'openssl/ssl/quic/quic_fc.c', + 'openssl/ssl/quic/quic_fifd.c', + 'openssl/ssl/quic/quic_impl.c', + 'openssl/ssl/quic/quic_lcidm.c', + 'openssl/ssl/quic/quic_method.c', + 'openssl/ssl/quic/quic_obj.c', + 'openssl/ssl/quic/quic_port.c', + 'openssl/ssl/quic/quic_rcidm.c', + 'openssl/ssl/quic/quic_reactor.c', + 'openssl/ssl/quic/quic_reactor_wait_ctx.c', + 'openssl/ssl/quic/quic_record_rx.c', + 'openssl/ssl/quic/quic_record_shared.c', + 'openssl/ssl/quic/quic_record_tx.c', + 'openssl/ssl/quic/quic_record_util.c', + 'openssl/ssl/quic/quic_rstream.c', + 'openssl/ssl/quic/quic_rx_depack.c', + 'openssl/ssl/quic/quic_sf_list.c', + 'openssl/ssl/quic/quic_srt_gen.c', + 'openssl/ssl/quic/quic_srtm.c', + 'openssl/ssl/quic/quic_sstream.c', + 'openssl/ssl/quic/quic_statm.c', + 'openssl/ssl/quic/quic_stream_map.c', + 'openssl/ssl/quic/quic_thread_assist.c', + 'openssl/ssl/quic/quic_tls.c', + 'openssl/ssl/quic/quic_tls_api.c', + 'openssl/ssl/quic/quic_trace.c', + 'openssl/ssl/quic/quic_tserver.c', + 'openssl/ssl/quic/quic_txp.c', + 'openssl/ssl/quic/quic_txpim.c', + 'openssl/ssl/quic/quic_types.c', + 'openssl/ssl/quic/quic_wire.c', + 'openssl/ssl/quic/quic_wire_pkt.c', + 'openssl/ssl/quic/uint_set.c', 'openssl/ssl/record/rec_layer_d1.c', 'openssl/ssl/record/rec_layer_s3.c', - 'openssl/ssl/record/ssl3_buffer.c', - 'openssl/ssl/record/ssl3_record.c', - 'openssl/ssl/record/ssl3_record_tls13.c', + 'openssl/ssl/record/methods/dtls_meth.c', + 'openssl/ssl/record/methods/ssl3_meth.c', + 'openssl/ssl/record/methods/tls13_meth.c', + 'openssl/ssl/record/methods/tls1_meth.c', + 'openssl/ssl/record/methods/tls_common.c', + 'openssl/ssl/record/methods/tls_multib.c', + 'openssl/ssl/record/methods/tlsany_meth.c', + 'openssl/ssl/rio/poll_builder.c', + 'openssl/ssl/rio/poll_immediate.c', + 'openssl/ssl/rio/rio_notifier.c', 'openssl/ssl/statem/extensions.c', 'openssl/ssl/statem/extensions_clnt.c', 'openssl/ssl/statem/extensions_cust.c', @@ -150,6 +199,7 @@ 'openssl/crypto/bio/bss_conn.c', 'openssl/crypto/bio/bss_core.c', 'openssl/crypto/bio/bss_dgram.c', + 'openssl/crypto/bio/bss_dgram_pair.c', 'openssl/crypto/bio/bss_fd.c', 'openssl/crypto/bio/bss_file.c', 'openssl/crypto/bio/bss_log.c', @@ -209,6 +259,7 @@ 'openssl/crypto/cmp/cmp_client.c', 'openssl/crypto/cmp/cmp_ctx.c', 'openssl/crypto/cmp/cmp_err.c', + 'openssl/crypto/cmp/cmp_genm.c', 'openssl/crypto/cmp/cmp_hdr.c', 'openssl/crypto/cmp/cmp_http.c', 'openssl/crypto/cmp/cmp_msg.c', @@ -347,6 +398,8 @@ 'openssl/crypto/ec/ecp_nist.c', 'openssl/crypto/ec/ecp_nistz256.c', 'openssl/crypto/ec/ecp_oct.c', + 'openssl/crypto/ec/ecp_sm2p256.c', + 'openssl/crypto/ec/ecp_sm2p256_table.c', 'openssl/crypto/ec/ecp_smpl.c', 'openssl/crypto/ec/ecx_backend.c', 'openssl/crypto/ec/ecx_key.c', @@ -385,7 +438,9 @@ 'openssl/crypto/err/err_all.c', 'openssl/crypto/err/err_all_legacy.c', 'openssl/crypto/err/err_blocks.c', + 'openssl/crypto/err/err_mark.c', 'openssl/crypto/err/err_prn.c', + 'openssl/crypto/err/err_save.c', 'openssl/crypto/ess/ess_asn1.c', 'openssl/crypto/ess/ess_err.c', 'openssl/crypto/ess/ess_lib.c', @@ -468,7 +523,9 @@ 'openssl/crypto/evp/pmeth_check.c', 'openssl/crypto/evp/pmeth_gn.c', 'openssl/crypto/evp/pmeth_lib.c', + 'openssl/crypto/evp/s_lib.c', 'openssl/crypto/evp/signature.c', + 'openssl/crypto/evp/skeymgmt_meth.c', 'openssl/crypto/ffc/ffc_backend.c', 'openssl/crypto/ffc/ffc_dh.c', 'openssl/crypto/ffc/ffc_key_generate.c', @@ -476,7 +533,11 @@ 'openssl/crypto/ffc/ffc_params.c', 'openssl/crypto/ffc/ffc_params_generate.c', 'openssl/crypto/ffc/ffc_params_validate.c', + 'openssl/crypto/hashtable/hashfunc.c', + 'openssl/crypto/hashtable/hashtable.c', 'openssl/crypto/hmac/hmac.c', + 'openssl/crypto/hpke/hpke.c', + 'openssl/crypto/hpke/hpke_util.c', 'openssl/crypto/http/http_client.c', 'openssl/crypto/http/http_err.c', 'openssl/crypto/http/http_lib.c', @@ -491,6 +552,7 @@ 'openssl/crypto/armcap.c', 'openssl/crypto/asn1_dsa.c', 'openssl/crypto/bsearch.c', + 'openssl/crypto/comp_methods.c', 'openssl/crypto/context.c', 'openssl/crypto/core_algorithm.c', 'openssl/crypto/core_fetch.c', @@ -500,10 +562,13 @@ 'openssl/crypto/cryptlib.c', 'openssl/crypto/ctype.c', 'openssl/crypto/cversion.c', + 'openssl/crypto/defaults.c', 'openssl/crypto/der_writer.c', + 'openssl/crypto/deterministic_nonce.c', 'openssl/crypto/ebcdic.c', 'openssl/crypto/ex_data.c', 'openssl/crypto/getenv.c', + 'openssl/crypto/indicator_core.c', 'openssl/crypto/info.c', 'openssl/crypto/init.c', 'openssl/crypto/initthread.c', @@ -527,12 +592,16 @@ 'openssl/crypto/provider_core.c', 'openssl/crypto/provider_predefined.c', 'openssl/crypto/punycode.c', + 'openssl/crypto/quic_vlint.c', 'openssl/crypto/self_test_core.c', + 'openssl/crypto/sleep.c', 'openssl/crypto/sparse_array.c', + 'openssl/crypto/ssl_err.c', 'openssl/crypto/threads_lib.c', 'openssl/crypto/threads_none.c', 'openssl/crypto/threads_pthread.c', 'openssl/crypto/threads_win.c', + 'openssl/crypto/time.c', 'openssl/crypto/trace.c', 'openssl/crypto/uid.c', 'openssl/crypto/md4/md4_dgst.c', @@ -542,6 +611,15 @@ 'openssl/crypto/md5/md5_sha1.c', 'openssl/crypto/mdc2/mdc2_one.c', 'openssl/crypto/mdc2/mdc2dgst.c', + 'openssl/crypto/ml_dsa/ml_dsa_encoders.c', + 'openssl/crypto/ml_dsa/ml_dsa_key.c', + 'openssl/crypto/ml_dsa/ml_dsa_key_compress.c', + 'openssl/crypto/ml_dsa/ml_dsa_matrix.c', + 'openssl/crypto/ml_dsa/ml_dsa_ntt.c', + 'openssl/crypto/ml_dsa/ml_dsa_params.c', + 'openssl/crypto/ml_dsa/ml_dsa_sample.c', + 'openssl/crypto/ml_dsa/ml_dsa_sign.c', + 'openssl/crypto/ml_kem/ml_kem.c', 'openssl/crypto/modes/cbc128.c', 'openssl/crypto/modes/ccm128.c', 'openssl/crypto/modes/cfb128.c', @@ -553,6 +631,7 @@ 'openssl/crypto/modes/siv128.c', 'openssl/crypto/modes/wrap128.c', 'openssl/crypto/modes/xts128.c', + 'openssl/crypto/modes/xts128gb.c', 'openssl/crypto/objects/o_names.c', 'openssl/crypto/objects/obj_dat.c', 'openssl/crypto/objects/obj_err.c', @@ -616,6 +695,7 @@ 'openssl/crypto/rand/rand_lib.c', 'openssl/crypto/rand/rand_meth.c', 'openssl/crypto/rand/rand_pool.c', + 'openssl/crypto/rand/rand_uniform.c', 'openssl/crypto/rand/randfile.c', 'openssl/crypto/rc2/rc2_cbc.c', 'openssl/crypto/rc2/rc2_ecb.c', @@ -663,6 +743,16 @@ 'openssl/crypto/sha/sha3.c', 'openssl/crypto/sha/sha512.c', 'openssl/crypto/siphash/siphash.c', + 'openssl/crypto/slh_dsa/slh_adrs.c', + 'openssl/crypto/slh_dsa/slh_dsa.c', + 'openssl/crypto/slh_dsa/slh_dsa_hash_ctx.c', + 'openssl/crypto/slh_dsa/slh_dsa_key.c', + 'openssl/crypto/slh_dsa/slh_fors.c', + 'openssl/crypto/slh_dsa/slh_hash.c', + 'openssl/crypto/slh_dsa/slh_hypertree.c', + 'openssl/crypto/slh_dsa/slh_params.c', + 'openssl/crypto/slh_dsa/slh_wots.c', + 'openssl/crypto/slh_dsa/slh_xmss.c', 'openssl/crypto/sm2/sm2_crypt.c', 'openssl/crypto/sm2/sm2_err.c', 'openssl/crypto/sm2/sm2_key.c', @@ -680,6 +770,12 @@ 'openssl/crypto/store/store_register.c', 'openssl/crypto/store/store_result.c', 'openssl/crypto/store/store_strings.c', + 'openssl/crypto/thread/arch/thread_none.c', + 'openssl/crypto/thread/arch/thread_posix.c', + 'openssl/crypto/thread/arch/thread_win.c', + 'openssl/crypto/thread/api.c', + 'openssl/crypto/thread/arch.c', + 'openssl/crypto/thread/internal.c', 'openssl/crypto/ts/ts_asn1.c', 'openssl/crypto/ts/ts_conf.c', 'openssl/crypto/ts/ts_err.c', @@ -708,14 +804,22 @@ 'openssl/crypto/x509/pcy_map.c', 'openssl/crypto/x509/pcy_node.c', 'openssl/crypto/x509/pcy_tree.c', + 'openssl/crypto/x509/t_acert.c', 'openssl/crypto/x509/t_crl.c', 'openssl/crypto/x509/t_req.c', 'openssl/crypto/x509/t_x509.c', + 'openssl/crypto/x509/v3_aaa.c', + 'openssl/crypto/x509/v3_ac_tgt.c', 'openssl/crypto/x509/v3_addr.c', 'openssl/crypto/x509/v3_admis.c', 'openssl/crypto/x509/v3_akeya.c', 'openssl/crypto/x509/v3_akid.c', 'openssl/crypto/x509/v3_asid.c', + 'openssl/crypto/x509/v3_attrdesc.c', + 'openssl/crypto/x509/v3_attrmap.c', + 'openssl/crypto/x509/v3_audit_id.c', + 'openssl/crypto/x509/v3_authattid.c', + 'openssl/crypto/x509/v3_battcons.c', 'openssl/crypto/x509/v3_bcons.c', 'openssl/crypto/x509/v3_bitst.c', 'openssl/crypto/x509/v3_conf.c', @@ -724,12 +828,17 @@ 'openssl/crypto/x509/v3_enum.c', 'openssl/crypto/x509/v3_extku.c', 'openssl/crypto/x509/v3_genn.c', + 'openssl/crypto/x509/v3_group_ac.c', 'openssl/crypto/x509/v3_ia5.c', + 'openssl/crypto/x509/v3_ind_iss.c', 'openssl/crypto/x509/v3_info.c', 'openssl/crypto/x509/v3_int.c', + 'openssl/crypto/x509/v3_iobo.c', 'openssl/crypto/x509/v3_ist.c', 'openssl/crypto/x509/v3_lib.c', 'openssl/crypto/x509/v3_ncons.c', + 'openssl/crypto/x509/v3_no_ass.c', + 'openssl/crypto/x509/v3_no_rev_avail.c', 'openssl/crypto/x509/v3_pci.c', 'openssl/crypto/x509/v3_pcia.c', 'openssl/crypto/x509/v3_pcons.c', @@ -737,13 +846,20 @@ 'openssl/crypto/x509/v3_pmaps.c', 'openssl/crypto/x509/v3_prn.c', 'openssl/crypto/x509/v3_purp.c', + 'openssl/crypto/x509/v3_rolespec.c', 'openssl/crypto/x509/v3_san.c', + 'openssl/crypto/x509/v3_sda.c', + 'openssl/crypto/x509/v3_single_use.c', 'openssl/crypto/x509/v3_skid.c', + 'openssl/crypto/x509/v3_soa_id.c', 'openssl/crypto/x509/v3_sxnet.c', + 'openssl/crypto/x509/v3_timespec.c', 'openssl/crypto/x509/v3_tlsf.c', + 'openssl/crypto/x509/v3_usernotice.c', 'openssl/crypto/x509/v3_utf8.c', 'openssl/crypto/x509/v3_utl.c', 'openssl/crypto/x509/v3err.c', + 'openssl/crypto/x509/x509_acert.c', 'openssl/crypto/x509/x509_att.c', 'openssl/crypto/x509/x509_cmp.c', 'openssl/crypto/x509/x509_d2.c', @@ -761,6 +877,7 @@ 'openssl/crypto/x509/x509_v3.c', 'openssl/crypto/x509/x509_vfy.c', 'openssl/crypto/x509/x509_vpm.c', + 'openssl/crypto/x509/x509aset.c', 'openssl/crypto/x509/x509cset.c', 'openssl/crypto/x509/x509name.c', 'openssl/crypto/x509/x509rset.c', @@ -770,6 +887,7 @@ 'openssl/crypto/x509/x_attrib.c', 'openssl/crypto/x509/x_crl.c', 'openssl/crypto/x509/x_exten.c', + 'openssl/crypto/x509/x_ietfatt.c', 'openssl/crypto/x509/x_name.c', 'openssl/crypto/x509/x_pubkey.c', 'openssl/crypto/x509/x_req.c', @@ -801,6 +919,9 @@ 'openssl/providers/implementations/ciphers/cipher_aes_ccm_hw.c', 'openssl/providers/implementations/ciphers/cipher_aes_gcm.c', 'openssl/providers/implementations/ciphers/cipher_aes_gcm_hw.c', + 'openssl/providers/implementations/ciphers/cipher_aes_gcm_siv.c', + 'openssl/providers/implementations/ciphers/cipher_aes_gcm_siv_hw.c', + 'openssl/providers/implementations/ciphers/cipher_aes_gcm_siv_polyval.c', 'openssl/providers/implementations/ciphers/cipher_aes_hw.c', 'openssl/providers/implementations/ciphers/cipher_aes_ocb.c', 'openssl/providers/implementations/ciphers/cipher_aes_ocb_hw.c', @@ -825,7 +946,13 @@ 'openssl/providers/implementations/ciphers/cipher_cts.c', 'openssl/providers/implementations/ciphers/cipher_null.c', 'openssl/providers/implementations/ciphers/cipher_sm4.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_ccm.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_ccm_hw.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_gcm.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_gcm_hw.c', 'openssl/providers/implementations/ciphers/cipher_sm4_hw.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_xts.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_xts_hw.c', 'openssl/providers/implementations/ciphers/cipher_tdes.c', 'openssl/providers/implementations/ciphers/cipher_tdes_common.c', 'openssl/providers/implementations/ciphers/cipher_tdes_default.c', @@ -854,11 +981,16 @@ 'openssl/providers/implementations/encode_decode/encode_key2ms.c', 'openssl/providers/implementations/encode_decode/encode_key2text.c', 'openssl/providers/implementations/encode_decode/endecoder_common.c', + 'openssl/providers/implementations/encode_decode/ml_common_codecs.c', + 'openssl/providers/implementations/encode_decode/ml_dsa_codecs.c', + 'openssl/providers/implementations/encode_decode/ml_kem_codecs.c', 'openssl/providers/implementations/exchange/dh_exch.c', 'openssl/providers/implementations/exchange/ecdh_exch.c', 'openssl/providers/implementations/exchange/ecx_exch.c', 'openssl/providers/implementations/exchange/kdf_exch.c', + 'openssl/providers/implementations/kdfs/argon2.c', 'openssl/providers/implementations/kdfs/hkdf.c', + 'openssl/providers/implementations/kdfs/hmacdrbg_kdf.c', 'openssl/providers/implementations/kdfs/kbkdf.c', 'openssl/providers/implementations/kdfs/krb5kdf.c', 'openssl/providers/implementations/kdfs/pbkdf2.c', @@ -869,6 +1001,11 @@ 'openssl/providers/implementations/kdfs/sskdf.c', 'openssl/providers/implementations/kdfs/tls1_prf.c', 'openssl/providers/implementations/kdfs/x942kdf.c', + 'openssl/providers/implementations/kem/ec_kem.c', + 'openssl/providers/implementations/kem/ecx_kem.c', + 'openssl/providers/implementations/kem/kem_util.c', + 'openssl/providers/implementations/kem/ml_kem_kem.c', + 'openssl/providers/implementations/kem/mlx_kem.c', 'openssl/providers/implementations/kem/rsa_kem.c', 'openssl/providers/implementations/keymgmt/dh_kmgmt.c', 'openssl/providers/implementations/keymgmt/dsa_kmgmt.c', @@ -876,7 +1013,11 @@ 'openssl/providers/implementations/keymgmt/ecx_kmgmt.c', 'openssl/providers/implementations/keymgmt/kdf_legacy_kmgmt.c', 'openssl/providers/implementations/keymgmt/mac_legacy_kmgmt.c', + 'openssl/providers/implementations/keymgmt/ml_dsa_kmgmt.c', + 'openssl/providers/implementations/keymgmt/ml_kem_kmgmt.c', + 'openssl/providers/implementations/keymgmt/mlx_kmgmt.c', 'openssl/providers/implementations/keymgmt/rsa_kmgmt.c', + 'openssl/providers/implementations/keymgmt/slh_dsa_kmgmt.c', 'openssl/providers/implementations/macs/blake2b_mac.c', 'openssl/providers/implementations/macs/blake2s_mac.c', 'openssl/providers/implementations/macs/cmac_prov.c', @@ -885,14 +1026,14 @@ 'openssl/providers/implementations/macs/kmac_prov.c', 'openssl/providers/implementations/macs/poly1305_prov.c', 'openssl/providers/implementations/macs/siphash_prov.c', - 'openssl/providers/implementations/rands/crngt.c', 'openssl/providers/implementations/rands/drbg.c', 'openssl/providers/implementations/rands/drbg_ctr.c', 'openssl/providers/implementations/rands/drbg_hash.c', 'openssl/providers/implementations/rands/drbg_hmac.c', 'openssl/providers/implementations/rands/seed_src.c', + 'openssl/providers/implementations/rands/seed_src_jitter.c', 'openssl/providers/implementations/rands/test_rng.c', - 'openssl/providers/implementations/rands/seeding/rand_cpu_x86.c', + 'openssl/providers/implementations/rands/seeding/rand_cpu_arm64.c', 'openssl/providers/implementations/rands/seeding/rand_tsc.c', 'openssl/providers/implementations/rands/seeding/rand_unix.c', 'openssl/providers/implementations/rands/seeding/rand_win.c', @@ -900,17 +1041,23 @@ 'openssl/providers/implementations/signature/ecdsa_sig.c', 'openssl/providers/implementations/signature/eddsa_sig.c', 'openssl/providers/implementations/signature/mac_legacy_sig.c', + 'openssl/providers/implementations/signature/ml_dsa_sig.c', 'openssl/providers/implementations/signature/rsa_sig.c', + 'openssl/providers/implementations/signature/slh_dsa_sig.c', 'openssl/providers/implementations/signature/sm2_sig.c', + 'openssl/providers/implementations/skeymgmt/aes_skmgmt.c', + 'openssl/providers/implementations/skeymgmt/generic.c', 'openssl/providers/implementations/storemgmt/file_store.c', 'openssl/providers/implementations/storemgmt/file_store_any2obj.c', - 'openssl/ssl/s3_cbc.c', + 'openssl/ssl/record/methods/ssl3_cbc.c', 'openssl/providers/common/der/der_dsa_key.c', 'openssl/providers/common/der/der_dsa_sig.c', 'openssl/providers/common/der/der_ec_key.c', 'openssl/providers/common/der/der_ec_sig.c', 'openssl/providers/common/der/der_ecx_key.c', + 'openssl/providers/common/der/der_ml_dsa_key.c', 'openssl/providers/common/der/der_rsa_key.c', + 'openssl/providers/common/der/der_slh_dsa_key.c', 'openssl/providers/common/provider_ctx.c', 'openssl/providers/common/provider_err.c', 'openssl/providers/implementations/ciphers/ciphercommon.c', @@ -921,7 +1068,7 @@ 'openssl/providers/implementations/ciphers/ciphercommon_gcm_hw.c', 'openssl/providers/implementations/ciphers/ciphercommon_hw.c', 'openssl/providers/implementations/digests/digestcommon.c', - 'openssl/ssl/record/tls_pad.c', + 'openssl/ssl/record/methods/tls_pad.c', 'openssl/providers/implementations/ciphers/cipher_blowfish.c', 'openssl/providers/implementations/ciphers/cipher_blowfish_hw.c', 'openssl/providers/implementations/ciphers/cipher_cast5.c', @@ -946,16 +1093,23 @@ 'openssl/providers/implementations/digests/ripemd_prov.c', 'openssl/providers/implementations/digests/wp_prov.c', 'openssl/providers/implementations/kdfs/pbkdf1.c', + 'openssl/providers/implementations/kdfs/pvkkdf.c', 'openssl/providers/prov_running.c', 'openssl/providers/legacyprov.c', ], 'openssl_sources_linux-aarch64': [ './config/archs/linux-aarch64/asm_avx2/crypto/aes/aesv8-armx.S', + './config/archs/linux-aarch64/asm_avx2/crypto/aes/bsaes-armv8.S', './config/archs/linux-aarch64/asm_avx2/crypto/aes/vpaes-armv8.S', './config/archs/linux-aarch64/asm_avx2/crypto/bn/armv8-mont.S', + './config/archs/linux-aarch64/asm_avx2/crypto/chacha/chacha-armv8-sve.S', './config/archs/linux-aarch64/asm_avx2/crypto/chacha/chacha-armv8.S', './config/archs/linux-aarch64/asm_avx2/crypto/ec/ecp_nistz256-armv8.S', + './config/archs/linux-aarch64/asm_avx2/crypto/ec/ecp_sm2p256-armv8.S', './config/archs/linux-aarch64/asm_avx2/crypto/arm64cpuid.S', + './config/archs/linux-aarch64/asm_avx2/crypto/params_idx.c', + './config/archs/linux-aarch64/asm_avx2/crypto/md5/md5-aarch64.S', + './config/archs/linux-aarch64/asm_avx2/crypto/modes/aes-gcm-armv8-unroll8_64.S', './config/archs/linux-aarch64/asm_avx2/crypto/modes/aes-gcm-armv8_64.S', './config/archs/linux-aarch64/asm_avx2/crypto/modes/ghashv8-armx.S', './config/archs/linux-aarch64/asm_avx2/crypto/poly1305/poly1305-armv8.S', @@ -963,12 +1117,18 @@ './config/archs/linux-aarch64/asm_avx2/crypto/sha/sha1-armv8.S', './config/archs/linux-aarch64/asm_avx2/crypto/sha/sha256-armv8.S', './config/archs/linux-aarch64/asm_avx2/crypto/sha/sha512-armv8.S', + './config/archs/linux-aarch64/asm_avx2/crypto/sm3/sm3-armv8.S', + './config/archs/linux-aarch64/asm_avx2/crypto/sm4/sm4-armv8.S', + './config/archs/linux-aarch64/asm_avx2/crypto/sm4/vpsm4-armv8.S', + './config/archs/linux-aarch64/asm_avx2/crypto/sm4/vpsm4_ex-armv8.S', './config/archs/linux-aarch64/asm_avx2/providers/common/der/der_sm2_gen.c', './config/archs/linux-aarch64/asm_avx2/providers/common/der/der_digests_gen.c', './config/archs/linux-aarch64/asm_avx2/providers/common/der/der_dsa_gen.c', './config/archs/linux-aarch64/asm_avx2/providers/common/der/der_ec_gen.c', './config/archs/linux-aarch64/asm_avx2/providers/common/der/der_ecx_gen.c', + './config/archs/linux-aarch64/asm_avx2/providers/common/der/der_ml_dsa_gen.c', './config/archs/linux-aarch64/asm_avx2/providers/common/der/der_rsa_gen.c', + './config/archs/linux-aarch64/asm_avx2/providers/common/der/der_slh_dsa_gen.c', './config/archs/linux-aarch64/asm_avx2/providers/common/der/der_wrap_gen.c', './config/archs/linux-aarch64/asm_avx2/providers/legacy.ld', './config/archs/linux-aarch64/asm_avx2/providers/fips.ld', @@ -977,15 +1137,21 @@ 'NDEBUG', 'OPENSSL_USE_NODELETE', 'OPENSSL_BUILDING_OPENSSL', + 'BSAES_ASM', 'ECP_NISTZ256_ASM', + 'ECP_SM2P256_ASM', 'KECCAK1600_ASM', + 'MD5_ASM', 'OPENSSL_BN_ASM_MONT', 'OPENSSL_CPUID_OBJ', + 'OPENSSL_SM3_ASM', 'POLY1305_ASM', 'SHA1_ASM', 'SHA256_ASM', 'SHA512_ASM', + 'SM4_ASM', 'VPAES_ASM', + 'VPSM4_ASM', 'OPENSSL_PIC', ], 'openssl_cflags_linux-aarch64': [ diff --git a/deps/openssl/config/archs/linux-aarch64/asm_avx2/providers/common/der/der_ml_dsa_gen.c b/deps/openssl/config/archs/linux-aarch64/asm_avx2/providers/common/der/der_ml_dsa_gen.c new file mode 100644 index 00000000000000..4a8a113a268578 --- /dev/null +++ b/deps/openssl/config/archs/linux-aarch64/asm_avx2/providers/common/der/der_ml_dsa_gen.c @@ -0,0 +1,37 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from providers/common/der/der_ml_dsa_gen.c.in + * + * Copyright 2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include "prov/der_ml_dsa.h" + +/* Well known OIDs precompiled */ + +/* + * id-ml-dsa-44 OBJECT IDENTIFIER ::= { sigAlgs 17 } + */ +const unsigned char ossl_der_oid_id_ml_dsa_44[DER_OID_SZ_id_ml_dsa_44] = { + DER_OID_V_id_ml_dsa_44 +}; + +/* + * id-ml-dsa-65 OBJECT IDENTIFIER ::= { sigAlgs 18 } + */ +const unsigned char ossl_der_oid_id_ml_dsa_65[DER_OID_SZ_id_ml_dsa_65] = { + DER_OID_V_id_ml_dsa_65 +}; + +/* + * id-ml-dsa-87 OBJECT IDENTIFIER ::= { sigAlgs 19 } + */ +const unsigned char ossl_der_oid_id_ml_dsa_87[DER_OID_SZ_id_ml_dsa_87] = { + DER_OID_V_id_ml_dsa_87 +}; + diff --git a/deps/openssl/config/archs/linux-aarch64/asm_avx2/providers/common/der/der_slh_dsa_gen.c b/deps/openssl/config/archs/linux-aarch64/asm_avx2/providers/common/der/der_slh_dsa_gen.c new file mode 100644 index 00000000000000..1419a9515097dd --- /dev/null +++ b/deps/openssl/config/archs/linux-aarch64/asm_avx2/providers/common/der/der_slh_dsa_gen.c @@ -0,0 +1,100 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from providers/common/der/der_slh_dsa_gen.c.in + * + * Copyright 2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include "prov/der_slh_dsa.h" + +/* Well known OIDs precompiled */ + +/* + * id-slh-dsa-sha2-128s OBJECT IDENTIFIER ::= { sigAlgs 20 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_128s[DER_OID_SZ_id_slh_dsa_sha2_128s] = { + DER_OID_V_id_slh_dsa_sha2_128s +}; + +/* + * id-slh-dsa-sha2-128f OBJECT IDENTIFIER ::= { sigAlgs 21 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_128f[DER_OID_SZ_id_slh_dsa_sha2_128f] = { + DER_OID_V_id_slh_dsa_sha2_128f +}; + +/* + * id-slh-dsa-sha2-192s OBJECT IDENTIFIER ::= { sigAlgs 22 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_192s[DER_OID_SZ_id_slh_dsa_sha2_192s] = { + DER_OID_V_id_slh_dsa_sha2_192s +}; + +/* + * id-slh-dsa-sha2-192f OBJECT IDENTIFIER ::= { sigAlgs 23 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_192f[DER_OID_SZ_id_slh_dsa_sha2_192f] = { + DER_OID_V_id_slh_dsa_sha2_192f +}; + +/* + * id-slh-dsa-sha2-256s OBJECT IDENTIFIER ::= { sigAlgs 24 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_256s[DER_OID_SZ_id_slh_dsa_sha2_256s] = { + DER_OID_V_id_slh_dsa_sha2_256s +}; + +/* + * id-slh-dsa-sha2-256f OBJECT IDENTIFIER ::= { sigAlgs 25 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_256f[DER_OID_SZ_id_slh_dsa_sha2_256f] = { + DER_OID_V_id_slh_dsa_sha2_256f +}; + +/* + * id-slh-dsa-shake-128s OBJECT IDENTIFIER ::= { sigAlgs 26 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_128s[DER_OID_SZ_id_slh_dsa_shake_128s] = { + DER_OID_V_id_slh_dsa_shake_128s +}; + +/* + * id-slh-dsa-shake-128f OBJECT IDENTIFIER ::= { sigAlgs 27 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_128f[DER_OID_SZ_id_slh_dsa_shake_128f] = { + DER_OID_V_id_slh_dsa_shake_128f +}; + +/* + * id-slh-dsa-shake-192s OBJECT IDENTIFIER ::= { sigAlgs 28 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_192s[DER_OID_SZ_id_slh_dsa_shake_192s] = { + DER_OID_V_id_slh_dsa_shake_192s +}; + +/* + * id-slh-dsa-shake-192f OBJECT IDENTIFIER ::= { sigAlgs 29 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_192f[DER_OID_SZ_id_slh_dsa_shake_192f] = { + DER_OID_V_id_slh_dsa_shake_192f +}; + +/* + * id-slh-dsa-shake-256s OBJECT IDENTIFIER ::= { sigAlgs 30 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_256s[DER_OID_SZ_id_slh_dsa_shake_256s] = { + DER_OID_V_id_slh_dsa_shake_256s +}; + +/* + * id-slh-dsa-shake-256f OBJECT IDENTIFIER ::= { sigAlgs 31 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_256f[DER_OID_SZ_id_slh_dsa_shake_256f] = { + DER_OID_V_id_slh_dsa_shake_256f +}; + diff --git a/deps/openssl/config/archs/linux-aarch64/asm_avx2/providers/common/include/prov/der_ml_dsa.h b/deps/openssl/config/archs/linux-aarch64/asm_avx2/providers/common/include/prov/der_ml_dsa.h new file mode 100644 index 00000000000000..c55f780ab4527c --- /dev/null +++ b/deps/openssl/config/archs/linux-aarch64/asm_avx2/providers/common/include/prov/der_ml_dsa.h @@ -0,0 +1,40 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from providers/common/include/prov/der_ml_dsa.h.in + * + * Copyright 2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include "internal/der.h" +#include "crypto/ml_dsa.h" + +/* Well known OIDs precompiled */ + +/* + * id-ml-dsa-44 OBJECT IDENTIFIER ::= { sigAlgs 17 } + */ +#define DER_OID_V_id_ml_dsa_44 DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x11 +#define DER_OID_SZ_id_ml_dsa_44 11 +extern const unsigned char ossl_der_oid_id_ml_dsa_44[DER_OID_SZ_id_ml_dsa_44]; + +/* + * id-ml-dsa-65 OBJECT IDENTIFIER ::= { sigAlgs 18 } + */ +#define DER_OID_V_id_ml_dsa_65 DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x12 +#define DER_OID_SZ_id_ml_dsa_65 11 +extern const unsigned char ossl_der_oid_id_ml_dsa_65[DER_OID_SZ_id_ml_dsa_65]; + +/* + * id-ml-dsa-87 OBJECT IDENTIFIER ::= { sigAlgs 19 } + */ +#define DER_OID_V_id_ml_dsa_87 DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x13 +#define DER_OID_SZ_id_ml_dsa_87 11 +extern const unsigned char ossl_der_oid_id_ml_dsa_87[DER_OID_SZ_id_ml_dsa_87]; + + +int ossl_DER_w_algorithmIdentifier_ML_DSA(WPACKET *pkt, int tag, ML_DSA_KEY *key); diff --git a/deps/openssl/config/archs/linux-aarch64/asm_avx2/providers/common/include/prov/der_slh_dsa.h b/deps/openssl/config/archs/linux-aarch64/asm_avx2/providers/common/include/prov/der_slh_dsa.h new file mode 100644 index 00000000000000..760f8e7699be72 --- /dev/null +++ b/deps/openssl/config/archs/linux-aarch64/asm_avx2/providers/common/include/prov/der_slh_dsa.h @@ -0,0 +1,103 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from providers/common/include/prov/der_slh_dsa.h.in + * + * Copyright 2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include "internal/der.h" +#include "crypto/slh_dsa.h" + +/* Well known OIDs precompiled */ + +/* + * id-slh-dsa-sha2-128s OBJECT IDENTIFIER ::= { sigAlgs 20 } + */ +#define DER_OID_V_id_slh_dsa_sha2_128s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x14 +#define DER_OID_SZ_id_slh_dsa_sha2_128s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_128s[DER_OID_SZ_id_slh_dsa_sha2_128s]; + +/* + * id-slh-dsa-sha2-128f OBJECT IDENTIFIER ::= { sigAlgs 21 } + */ +#define DER_OID_V_id_slh_dsa_sha2_128f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x15 +#define DER_OID_SZ_id_slh_dsa_sha2_128f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_128f[DER_OID_SZ_id_slh_dsa_sha2_128f]; + +/* + * id-slh-dsa-sha2-192s OBJECT IDENTIFIER ::= { sigAlgs 22 } + */ +#define DER_OID_V_id_slh_dsa_sha2_192s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x16 +#define DER_OID_SZ_id_slh_dsa_sha2_192s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_192s[DER_OID_SZ_id_slh_dsa_sha2_192s]; + +/* + * id-slh-dsa-sha2-192f OBJECT IDENTIFIER ::= { sigAlgs 23 } + */ +#define DER_OID_V_id_slh_dsa_sha2_192f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x17 +#define DER_OID_SZ_id_slh_dsa_sha2_192f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_192f[DER_OID_SZ_id_slh_dsa_sha2_192f]; + +/* + * id-slh-dsa-sha2-256s OBJECT IDENTIFIER ::= { sigAlgs 24 } + */ +#define DER_OID_V_id_slh_dsa_sha2_256s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x18 +#define DER_OID_SZ_id_slh_dsa_sha2_256s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_256s[DER_OID_SZ_id_slh_dsa_sha2_256s]; + +/* + * id-slh-dsa-sha2-256f OBJECT IDENTIFIER ::= { sigAlgs 25 } + */ +#define DER_OID_V_id_slh_dsa_sha2_256f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x19 +#define DER_OID_SZ_id_slh_dsa_sha2_256f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_256f[DER_OID_SZ_id_slh_dsa_sha2_256f]; + +/* + * id-slh-dsa-shake-128s OBJECT IDENTIFIER ::= { sigAlgs 26 } + */ +#define DER_OID_V_id_slh_dsa_shake_128s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1A +#define DER_OID_SZ_id_slh_dsa_shake_128s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_128s[DER_OID_SZ_id_slh_dsa_shake_128s]; + +/* + * id-slh-dsa-shake-128f OBJECT IDENTIFIER ::= { sigAlgs 27 } + */ +#define DER_OID_V_id_slh_dsa_shake_128f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1B +#define DER_OID_SZ_id_slh_dsa_shake_128f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_128f[DER_OID_SZ_id_slh_dsa_shake_128f]; + +/* + * id-slh-dsa-shake-192s OBJECT IDENTIFIER ::= { sigAlgs 28 } + */ +#define DER_OID_V_id_slh_dsa_shake_192s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1C +#define DER_OID_SZ_id_slh_dsa_shake_192s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_192s[DER_OID_SZ_id_slh_dsa_shake_192s]; + +/* + * id-slh-dsa-shake-192f OBJECT IDENTIFIER ::= { sigAlgs 29 } + */ +#define DER_OID_V_id_slh_dsa_shake_192f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1D +#define DER_OID_SZ_id_slh_dsa_shake_192f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_192f[DER_OID_SZ_id_slh_dsa_shake_192f]; + +/* + * id-slh-dsa-shake-256s OBJECT IDENTIFIER ::= { sigAlgs 30 } + */ +#define DER_OID_V_id_slh_dsa_shake_256s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1E +#define DER_OID_SZ_id_slh_dsa_shake_256s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_256s[DER_OID_SZ_id_slh_dsa_shake_256s]; + +/* + * id-slh-dsa-shake-256f OBJECT IDENTIFIER ::= { sigAlgs 31 } + */ +#define DER_OID_V_id_slh_dsa_shake_256f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1F +#define DER_OID_SZ_id_slh_dsa_shake_256f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_256f[DER_OID_SZ_id_slh_dsa_shake_256f]; + + +int ossl_DER_w_algorithmIdentifier_SLH_DSA(WPACKET *pkt, int tag, SLH_DSA_KEY *key); diff --git a/deps/openssl/config/archs/linux-aarch64/no-asm/apps/progs.c b/deps/openssl/config/archs/linux-aarch64/no-asm/apps/progs.c index 43cef00799b86e..acc204a3e6e781 100644 --- a/deps/openssl/config/archs/linux-aarch64/no-asm/apps/progs.c +++ b/deps/openssl/config/archs/linux-aarch64/no-asm/apps/progs.c @@ -89,6 +89,7 @@ FUNCTION functions[] = { {FT_general, "s_time", s_time_main, s_time_options, NULL, NULL}, #endif {FT_general, "sess_id", sess_id_main, sess_id_options, NULL, NULL}, + {FT_general, "skeyutl", skeyutl_main, skeyutl_options, NULL, NULL}, {FT_general, "smime", smime_main, smime_options, NULL, NULL}, {FT_general, "speed", speed_main, speed_options, NULL, NULL}, {FT_general, "spkac", spkac_main, spkac_options, NULL, NULL}, @@ -225,9 +226,15 @@ FUNCTION functions[] = { {FT_cipher, "camellia-256-ecb", enc_main, enc_options, NULL}, #endif {FT_cipher, "base64", enc_main, enc_options, NULL}, -#ifdef ZLIB +#ifndef OPENSSL_NO_ZLIB {FT_cipher, "zlib", enc_main, enc_options, NULL}, #endif +#ifndef OPENSSL_NO_BROTLI + {FT_cipher, "brotli", enc_main, enc_options, NULL}, +#endif +#ifndef OPENSSL_NO_ZSTD + {FT_cipher, "zstd", enc_main, enc_options, NULL}, +#endif #ifndef OPENSSL_NO_DES {FT_cipher, "des", enc_main, enc_options, NULL}, #endif diff --git a/deps/openssl/config/archs/linux-aarch64/no-asm/configdata.pm b/deps/openssl/config/archs/linux-aarch64/no-asm/configdata.pm index ed65e22d411ba0..c1979501ea2fb0 100644 --- a/deps/openssl/config/archs/linux-aarch64/no-asm/configdata.pm +++ b/deps/openssl/config/archs/linux-aarch64/no-asm/configdata.pm @@ -18,6 +18,7 @@ our %config = ( "ARFLAGS" => [ "qc" ], + "ASFLAGS" => [], "CC" => "gcc", "CFLAGS" => [ "-Wall -O3" @@ -30,14 +31,16 @@ our %config = ( "-Wall -O3" ], "FIPSKEY" => "f4556650ac31d35461610bac4ed81b1a181b2d8a43ea2854cbae22ca74560813", + "FIPS_VENDOR" => "OpenSSL FIPS Provider", "HASHBANGPERL" => "/usr/bin/env perl", "LDFLAGS" => [], "LDLIBS" => [], + "OBJCOPY" => "objcopy", "PERL" => "/usr/bin/perl", "RANLIB" => "ranlib", "RC" => "windres", "RCFLAGS" => [], - "api" => "30000", + "api" => "30500", "b32" => "0", "b64" => "0", "b64l" => "1", @@ -59,11 +62,13 @@ our %config = ( "doc/build.info", "test/build.info", "engines/build.info", + "exporters/build.info", "crypto/objects/build.info", "crypto/buffer/build.info", "crypto/bio/build.info", "crypto/stack/build.info", "crypto/lhash/build.info", + "crypto/hashtable/build.info", "crypto/rand/build.info", "crypto/evp/build.info", "crypto/asn1/build.info", @@ -81,6 +86,7 @@ our %config = ( "crypto/md5/build.info", "crypto/sha/build.info", "crypto/mdc2/build.info", + "crypto/ml_kem/build.info", "crypto/hmac/build.info", "crypto/ripemd/build.info", "crypto/whrlpool/build.info", @@ -122,11 +128,19 @@ our %config = ( "crypto/cmp/build.info", "crypto/encode_decode/build.info", "crypto/ffc/build.info", + "crypto/hpke/build.info", + "crypto/thread/build.info", + "crypto/ml_dsa/build.info", + "crypto/slh_dsa/build.info", + "ssl/record/build.info", + "ssl/rio/build.info", + "ssl/quic/build.info", "apps/lib/build.info", "providers/common/build.info", "providers/implementations/build.info", "providers/fips/build.info", "doc/man1/build.info", + "ssl/record/methods/build.info", "providers/common/der/build.info", "providers/implementations/digests/build.info", "providers/implementations/ciphers/build.info", @@ -140,6 +154,7 @@ our %config = ( "providers/implementations/encode_decode/build.info", "providers/implementations/storemgmt/build.info", "providers/implementations/kem/build.info", + "providers/implementations/skeymgmt/build.info", "providers/implementations/rands/seeding/build.info" ], "build_metadata" => "", @@ -157,7 +172,7 @@ our %config = ( ], "dynamic_engines" => "0", "ex_libs" => [], - "full_version" => "3.0.17", + "full_version" => "3.5.1", "includes" => [], "lflags" => [], "lib_defines" => [ @@ -166,9 +181,9 @@ our %config = ( "libdir" => "", "major" => "3", "makedep_scheme" => "gcc", - "minor" => "0", + "minor" => "5", "openssl_api_defines" => [ - "OPENSSL_CONFIGURED_API=30000" + "OPENSSL_CONFIGURED_API=30500" ], "openssl_feature_defines" => [ "OPENSSL_RAND_SEED_OS", @@ -176,28 +191,43 @@ our %config = ( "OPENSSL_NO_AFALGENG", "OPENSSL_NO_ASAN", "OPENSSL_NO_ASM", + "OPENSSL_NO_BROTLI", + "OPENSSL_NO_BROTLI_DYNAMIC", "OPENSSL_NO_COMP", "OPENSSL_NO_CRYPTO_MDEBUG", "OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE", + "OPENSSL_NO_DEMOS", "OPENSSL_NO_DEVCRYPTOENG", "OPENSSL_NO_EC_NISTP_64_GCC_128", "OPENSSL_NO_EGD", "OPENSSL_NO_EXTERNAL_TESTS", + "OPENSSL_NO_FIPS_JITTER", "OPENSSL_NO_FUZZ_AFL", "OPENSSL_NO_FUZZ_LIBFUZZER", + "OPENSSL_NO_H3DEMO", + "OPENSSL_NO_HQINTEROP", + "OPENSSL_NO_JITTER", "OPENSSL_NO_KTLS", "OPENSSL_NO_LOADERENG", "OPENSSL_NO_MD2", "OPENSSL_NO_MSAN", + "OPENSSL_NO_PIE", "OPENSSL_NO_RC5", "OPENSSL_NO_SCTP", "OPENSSL_NO_SSL3", "OPENSSL_NO_SSL3_METHOD", + "OPENSSL_NO_SSLKEYLOG", + "OPENSSL_NO_TFO", "OPENSSL_NO_TRACE", "OPENSSL_NO_UBSAN", "OPENSSL_NO_UNIT_TEST", "OPENSSL_NO_UPLINK", "OPENSSL_NO_WEAK_SSL_CIPHERS", + "OPENSSL_NO_WINSTORE", + "OPENSSL_NO_ZLIB", + "OPENSSL_NO_ZLIB_DYNAMIC", + "OPENSSL_NO_ZSTD", + "OPENSSL_NO_ZSTD_DYNAMIC", "OPENSSL_NO_DYNAMIC_ENGINE" ], "openssl_other_defines" => [ @@ -205,11 +235,11 @@ our %config = ( ], "openssl_sys_defines" => [], "openssldir" => "", - "options" => "enable-ssl-trace enable-fips no-afalgeng no-asan no-asm no-buildtest-c++ no-comp no-crypto-mdebug no-crypto-mdebug-backtrace no-devcryptoeng no-dynamic-engine no-ec_nistp_64_gcc_128 no-egd no-external-tests no-fuzz-afl no-fuzz-libfuzzer no-ktls no-loadereng no-md2 no-msan no-rc5 no-sctp no-shared no-ssl3 no-ssl3-method no-trace no-ubsan no-unit-test no-uplink no-weak-ssl-ciphers no-zlib no-zlib-dynamic", - "patch" => "17", + "options" => "enable-ssl-trace enable-fips no-afalgeng no-asan no-asm no-brotli no-brotli-dynamic no-buildtest-c++ no-comp no-crypto-mdebug no-crypto-mdebug-backtrace no-demos no-devcryptoeng no-dynamic-engine no-ec_nistp_64_gcc_128 no-egd no-external-tests no-fips-jitter no-fuzz-afl no-fuzz-libfuzzer no-h3demo no-hqinterop no-jitter no-ktls no-loadereng no-md2 no-msan no-pie no-rc5 no-sctp no-shared no-ssl3 no-ssl3-method no-sslkeylog no-tfo no-trace no-ubsan no-unit-test no-uplink no-weak-ssl-ciphers no-winstore no-zlib no-zlib-dynamic no-zstd no-zstd-dynamic", + "patch" => "1", "perl_archname" => "x86_64-linux-gnu-thread-multi", "perl_cmd" => "/usr/bin/perl", - "perl_version" => "5.38.2", + "perl_version" => "5.34.0", "perlargv" => [ "no-comp", "no-shared", @@ -240,6 +270,7 @@ our %config = ( "LDLIBS" => undef, "MT" => undef, "MTFLAGS" => undef, + "OBJCOPY" => undef, "OPENSSL_LOCAL_CONFIG_DIR" => undef, "PERL" => undef, "RANLIB" => undef, @@ -263,7 +294,7 @@ our %config = ( "shlib_version" => "3", "sourcedir" => ".", "target" => "linux-aarch64", - "version" => "3.0.17" + "version" => "3.5.1" ); our %target = ( "AR" => "ar", @@ -273,6 +304,7 @@ our %target = ( "CXX" => "g++", "CXXFLAGS" => "-Wall -O3", "HASHBANGPERL" => "/usr/bin/env perl", + "OBJCOPY" => "objcopy", "RANLIB" => "ranlib", "RC" => "windres", "_conf_fname_int" => [ @@ -284,6 +316,8 @@ our %target = ( "Configurations/shared-info.pl" ], "asm_arch" => "aarch64", + "bin_cflags" => "", + "bin_lflags" => "", "bn_ops" => "SIXTY_FOUR_BIT_LONG RC4_CHAR", "build_file" => "Makefile", "build_scheme" => [ @@ -328,6 +362,8 @@ our %target = ( our @disablables = ( "acvp-tests", "afalgeng", + "apps", + "argon2", "aria", "asan", "asm", @@ -338,11 +374,14 @@ our @disablables = ( "autoload-config", "bf", "blake2", + "brotli", + "brotli-dynamic", "buildtest-c++", "bulk", "cached-fetch", "camellia", "capieng", + "winstore", "cast", "chacha", "cmac", @@ -351,11 +390,16 @@ our @disablables = ( "comp", "crypto-mdebug", "ct", + "default-thread-pool", + "demos", + "h3demo", + "hqinterop", "deprecated", "des", "devcryptoeng", "dgram", "dh", + "docs", "dsa", "dso", "dtls", @@ -365,6 +409,7 @@ our @disablables = ( "ec_nistp_64_gcc_128", "ecdh", "ecdsa", + "ecx", "egd", "engine", "err", @@ -372,10 +417,15 @@ our @disablables = ( "filenames", "fips", "fips-securitychecks", + "fips-post", + "fips-jitter", "fuzz-afl", "fuzz-libfuzzer", "gost", + "http", "idea", + "integrity-only-ciphers", + "jitter", "ktls", "legacy", "loadereng", @@ -383,6 +433,8 @@ our @disablables = ( "md2", "md4", "mdc2", + "ml-dsa", + "ml-kem", "module", "msan", "multiblock", @@ -391,10 +443,13 @@ our @disablables = ( "ocsp", "padlockeng", "pic", + "pie", "pinshared", "poly1305", "posix-io", "psk", + "quic", + "unstable-qlog", "rc2", "rc4", "rc5", @@ -408,7 +463,9 @@ our @disablables = ( "shared", "siphash", "siv", + "slh-dsa", "sm2", + "sm2-precomp", "sm3", "sm4", "sock", @@ -419,9 +476,13 @@ our @disablables = ( "ssl-trace", "static-engine", "stdio", + "sslkeylog", "tests", + "tfo", + "thread-pool", "threads", "tls", + "tls-deprecated-ec", "trace", "ts", "ubsan", @@ -432,6 +493,8 @@ our @disablables = ( "whirlpool", "zlib", "zlib-dynamic", + "zstd", + "zstd-dynamic", "ssl3", "ssl3-method", "tls1", @@ -453,33 +516,46 @@ our %disabled = ( "afalgeng" => "option", "asan" => "default", "asm" => "option", + "brotli" => "default", + "brotli-dynamic" => "default", "buildtest-c++" => "default", "comp" => "option", "crypto-mdebug" => "default", "crypto-mdebug-backtrace" => "default", + "demos" => "default", "devcryptoeng" => "default", "dynamic-engine" => "cascade", "ec_nistp_64_gcc_128" => "default", "egd" => "default", "external-tests" => "default", + "fips-jitter" => "default", "fuzz-afl" => "default", "fuzz-libfuzzer" => "default", + "h3demo" => "default", + "hqinterop" => "default", + "jitter" => "default", "ktls" => "default", "loadereng" => "cascade", "md2" => "default", "msan" => "default", + "pie" => "default", "rc5" => "default", "sctp" => "default", "shared" => "option", "ssl3" => "default", "ssl3-method" => "default", + "sslkeylog" => "default", + "tfo" => "default", "trace" => "default", "ubsan" => "default", "unit-test" => "default", "uplink" => "no uplink_arch", "weak-ssl-ciphers" => "default", + "winstore" => "not-windows", "zlib" => "default", - "zlib-dynamic" => "default" + "zlib-dynamic" => "default", + "zstd" => "default", + "zstd-dynamic" => "default" ); our %withargs = (); our %unified_info = ( @@ -705,6 +781,11 @@ our %unified_info = ( "pod" => "1" } }, + "doc/man1/openssl-skeyutl.pod" => { + "doc/man1/openssl-skeyutl.pod.in" => { + "pod" => "1" + } + }, "doc/man1/openssl-smime.pod" => { "doc/man1/openssl-smime.pod.in" => { "pod" => "1" @@ -762,6 +843,21 @@ our %unified_info = ( } }, "generate" => { + "exporters/OpenSSLConfig.cmake" => { + "exporter" => "cmake" + }, + "exporters/OpenSSLConfigVersion.cmake" => { + "exporter" => "cmake" + }, + "exporters/libcrypto.pc" => { + "exporter" => "pkg-config" + }, + "exporters/libssl.pc" => { + "exporter" => "pkg-config" + }, + "exporters/openssl.pc" => { + "exporter" => "pkg-config" + }, "include/openssl/configuration.h" => { "skip" => "1" } @@ -782,6 +878,9 @@ our %unified_info = ( "providers/liblegacy.a" => { "noinst" => "1" }, + "providers/libtemplate.a" => { + "noinst" => "1" + }, "test/libtestutil.a" => { "has_main" => "1", "noinst" => "1" @@ -799,6 +898,9 @@ our %unified_info = ( } }, "programs" => { + "fuzz/acert-test" => { + "noinst" => "1" + }, "fuzz/asn1-test" => { "noinst" => "1" }, @@ -829,9 +931,60 @@ our %unified_info = ( "fuzz/ct-test" => { "noinst" => "1" }, + "fuzz/decoder-test" => { + "noinst" => "1" + }, + "fuzz/dtlsclient-test" => { + "noinst" => "1" + }, + "fuzz/dtlsserver-test" => { + "noinst" => "1" + }, + "fuzz/hashtable-test" => { + "noinst" => "1" + }, + "fuzz/ml-dsa-test" => { + "noinst" => "1" + }, + "fuzz/ml-kem-test" => { + "noinst" => "1" + }, + "fuzz/pem-test" => { + "noinst" => "1" + }, + "fuzz/provider-test" => { + "noinst" => "1" + }, + "fuzz/punycode-test" => { + "noinst" => "1" + }, + "fuzz/quic-client-test" => { + "noinst" => "1" + }, + "fuzz/quic-lcidm-test" => { + "noinst" => "1" + }, + "fuzz/quic-rcidm-test" => { + "noinst" => "1" + }, + "fuzz/quic-server-test" => { + "noinst" => "1" + }, + "fuzz/quic-srtm-test" => { + "noinst" => "1" + }, "fuzz/server-test" => { "noinst" => "1" }, + "fuzz/slh-dsa-test" => { + "noinst" => "1" + }, + "fuzz/smime-test" => { + "noinst" => "1" + }, + "fuzz/v3name-test" => { + "noinst" => "1" + }, "fuzz/x509-test" => { "noinst" => "1" }, @@ -883,18 +1036,30 @@ our %unified_info = ( "test/bftest" => { "noinst" => "1" }, + "test/bio_addr_test" => { + "noinst" => "1" + }, + "test/bio_base64_test" => { + "noinst" => "1" + }, "test/bio_callback_test" => { "noinst" => "1" }, "test/bio_core_test" => { "noinst" => "1" }, + "test/bio_dgram_test" => { + "noinst" => "1" + }, "test/bio_enc_test" => { "noinst" => "1" }, "test/bio_memleak_test" => { "noinst" => "1" }, + "test/bio_meth_test" => { + "noinst" => "1" + }, "test/bio_prefix_text" => { "noinst" => "1" }, @@ -904,6 +1069,9 @@ our %unified_info = ( "test/bio_readbuffer_test" => { "noinst" => "1" }, + "test/bio_tfo_test" => { + "noinst" => "1" + }, "test/bioprinttest" => { "noinst" => "1" }, @@ -913,6 +1081,9 @@ our %unified_info = ( "test/bntest" => { "noinst" => "1" }, + "test/build_wincrypt_test" => { + "noinst" => "1" + }, "test/buildtest_c_aes" => { "noinst" => "1" }, @@ -928,6 +1099,9 @@ our %unified_info = ( "test/buildtest_c_buffer" => { "noinst" => "1" }, + "test/buildtest_c_byteorder" => { + "noinst" => "1" + }, "test/buildtest_c_camellia" => { "noinst" => "1" }, @@ -952,9 +1126,6 @@ our %unified_info = ( "test/buildtest_c_core_dispatch" => { "noinst" => "1" }, - "test/buildtest_c_core_names" => { - "noinst" => "1" - }, "test/buildtest_c_core_object" => { "noinst" => "1" }, @@ -979,6 +1150,9 @@ our %unified_info = ( "test/buildtest_c_e_os2" => { "noinst" => "1" }, + "test/buildtest_c_e_ostime" => { + "noinst" => "1" + }, "test/buildtest_c_ebcdic" => { "noinst" => "1" }, @@ -1006,12 +1180,18 @@ our %unified_info = ( "test/buildtest_c_hmac" => { "noinst" => "1" }, + "test/buildtest_c_hpke" => { + "noinst" => "1" + }, "test/buildtest_c_http" => { "noinst" => "1" }, "test/buildtest_c_idea" => { "noinst" => "1" }, + "test/buildtest_c_indicator" => { + "noinst" => "1" + }, "test/buildtest_c_kdf" => { "noinst" => "1" }, @@ -1027,6 +1207,9 @@ our %unified_info = ( "test/buildtest_c_mdc2" => { "noinst" => "1" }, + "test/buildtest_c_ml_kem" => { + "noinst" => "1" + }, "test/buildtest_c_modes" => { "noinst" => "1" }, @@ -1057,6 +1240,9 @@ our %unified_info = ( "test/buildtest_c_provider" => { "noinst" => "1" }, + "test/buildtest_c_quic" => { + "noinst" => "1" + }, "test/buildtest_c_rand" => { "noinst" => "1" }, @@ -1099,6 +1285,9 @@ our %unified_info = ( "test/buildtest_c_symhacks" => { "noinst" => "1" }, + "test/buildtest_c_thread" => { + "noinst" => "1" + }, "test/buildtest_c_tls1" => { "noinst" => "1" }, @@ -1114,6 +1303,12 @@ our %unified_info = ( "test/buildtest_c_whrlpool" => { "noinst" => "1" }, + "test/byteorder_test" => { + "noinst" => "1" + }, + "test/ca_internals_test" => { + "noinst" => "1" + }, "test/casttest" => { "noinst" => "1" }, @@ -1198,6 +1393,9 @@ our %unified_info = ( "test/danetest" => { "noinst" => "1" }, + "test/decoder_propq_test" => { + "noinst" => "1" + }, "test/defltfips_test" => { "noinst" => "1" }, @@ -1270,15 +1468,24 @@ our %unified_info = ( "test/evp_pkey_ctx_new_from_name" => { "noinst" => "1" }, + "test/evp_pkey_dhkem_test" => { + "noinst" => "1" + }, "test/evp_pkey_dparams_test" => { "noinst" => "1" }, "test/evp_pkey_provided_test" => { "noinst" => "1" }, + "test/evp_skey_test" => { + "noinst" => "1" + }, "test/evp_test" => { "noinst" => "1" }, + "test/evp_xof_test" => { + "noinst" => "1" + }, "test/exdatatest" => { "noinst" => "1" }, @@ -1306,6 +1513,9 @@ our %unified_info = ( "test/hmactest" => { "noinst" => "1" }, + "test/hpke_test" => { + "noinst" => "1" + }, "test/http_test" => { "noinst" => "1" }, @@ -1315,12 +1525,18 @@ our %unified_info = ( "test/igetest" => { "noinst" => "1" }, + "test/json_test" => { + "noinst" => "1" + }, "test/keymgmt_internal_test" => { "noinst" => "1" }, "test/lhash_test" => { "noinst" => "1" }, + "test/list_test" => { + "noinst" => "1" + }, "test/localetest" => { "noinst" => "1" }, @@ -1330,9 +1546,21 @@ our %unified_info = ( "test/mdc2test" => { "noinst" => "1" }, + "test/membio_test" => { + "noinst" => "1" + }, "test/memleaktest" => { "noinst" => "1" }, + "test/ml_dsa_test" => { + "noinst" => "1" + }, + "test/ml_kem_evp_extra_test" => { + "noinst" => "1" + }, + "test/ml_kem_internal_test" => { + "noinst" => "1" + }, "test/modes_internal_test" => { "noinst" => "1" }, @@ -1351,6 +1579,9 @@ our %unified_info = ( "test/packettest" => { "noinst" => "1" }, + "test/pairwise_fail_test" => { + "noinst" => "1" + }, "test/param_build_test" => { "noinst" => "1" }, @@ -1375,6 +1606,9 @@ our %unified_info = ( "test/pemtest" => { "noinst" => "1" }, + "test/pkcs12_api_test" => { + "noinst" => "1" + }, "test/pkcs12_format_test" => { "noinst" => "1" }, @@ -1390,6 +1624,9 @@ our %unified_info = ( "test/poly1305_internal_test" => { "noinst" => "1" }, + "test/priority_queue_test" => { + "noinst" => "1" + }, "test/property_test" => { "noinst" => "1" }, @@ -1399,6 +1636,9 @@ our %unified_info = ( "test/provfetchtest" => { "noinst" => "1" }, + "test/provider_default_search_path_test" => { + "noinst" => "1" + }, "test/provider_fallback_test" => { "noinst" => "1" }, @@ -1417,6 +1657,72 @@ our %unified_info = ( "test/punycode_test" => { "noinst" => "1" }, + "test/quic_ackm_test" => { + "noinst" => "1" + }, + "test/quic_cc_test" => { + "noinst" => "1" + }, + "test/quic_cfq_test" => { + "noinst" => "1" + }, + "test/quic_client_test" => { + "noinst" => "1" + }, + "test/quic_fc_test" => { + "noinst" => "1" + }, + "test/quic_fifd_test" => { + "noinst" => "1" + }, + "test/quic_lcidm_test" => { + "noinst" => "1" + }, + "test/quic_multistream_test" => { + "noinst" => "1" + }, + "test/quic_newcid_test" => { + "noinst" => "1" + }, + "test/quic_qlog_test" => { + "noinst" => "1" + }, + "test/quic_radix_test" => { + "noinst" => "1" + }, + "test/quic_rcidm_test" => { + "noinst" => "1" + }, + "test/quic_record_test" => { + "noinst" => "1" + }, + "test/quic_srt_gen_test" => { + "noinst" => "1" + }, + "test/quic_srtm_test" => { + "noinst" => "1" + }, + "test/quic_stream_test" => { + "noinst" => "1" + }, + "test/quic_tserver_test" => { + "noinst" => "1" + }, + "test/quic_txp_test" => { + "noinst" => "1" + }, + "test/quic_txpim_test" => { + "noinst" => "1" + }, + "test/quic_wire_test" => { + "noinst" => "1" + }, + "test/quicapitest" => { + "noinst" => "1" + }, + "test/quicfaultstest" => { + "noinst" => "1" + }, "test/rand_status_test" => { "noinst" => "1" }, @@ -1432,12 +1738,15 @@ our %unified_info = ( "test/rc5test" => { "noinst" => "1" }, - "test/rdrand_sanitytest" => { + "test/rdcpu_sanitytest" => { "noinst" => "1" }, "test/recordlentest" => { "noinst" => "1" }, + "test/rpktest" => { + "noinst" => "1" + }, "test/rsa_complex" => { "noinst" => "1" }, @@ -1450,6 +1759,12 @@ our %unified_info = ( "test/rsa_test" => { "noinst" => "1" }, + "test/rsa_x931_test" => { + "noinst" => "1" + }, + "test/safe_math_test" => { + "noinst" => "1" + }, "test/sanitytest" => { "noinst" => "1" }, @@ -1465,6 +1780,9 @@ our %unified_info = ( "test/siphash_internal_test" => { "noinst" => "1" }, + "test/slh_dsa_test" => { + "noinst" => "1" + }, "test/sm2_internal_test" => { "noinst" => "1" }, @@ -1486,6 +1804,9 @@ our %unified_info = ( "test/ssl_ctx_test" => { "noinst" => "1" }, + "test/ssl_handshake_rtt_test" => { + "noinst" => "1" + }, "test/ssl_old_test" => { "noinst" => "1" }, @@ -1507,12 +1828,18 @@ our %unified_info = ( "test/stack_test" => { "noinst" => "1" }, + "test/strtoultest" => { + "noinst" => "1" + }, "test/sysdefaulttest" => { "noinst" => "1" }, "test/test_test" => { "noinst" => "1" }, + "test/threadpool_test" => { + "noinst" => "1" + }, "test/threadstest" => { "noinst" => "1" }, @@ -1522,12 +1849,18 @@ our %unified_info = ( "test/time_offset_test" => { "noinst" => "1" }, + "test/time_test" => { + "noinst" => "1" + }, "test/tls13ccstest" => { "noinst" => "1" }, "test/tls13encryptiontest" => { "noinst" => "1" }, + "test/tls13groupselection_test" => { + "noinst" => "1" + }, "test/trace_api_test" => { "noinst" => "1" }, @@ -1555,6 +1888,9 @@ our %unified_info = ( "test/wpackettest" => { "noinst" => "1" }, + "test/x509_acert_test" => { + "noinst" => "1" + }, "test/x509_check_cert_pkey_test" => { "noinst" => "1" }, @@ -1564,6 +1900,15 @@ our %unified_info = ( "test/x509_internal_test" => { "noinst" => "1" }, + "test/x509_load_cert_file_test" => { + "noinst" => "1" + }, + "test/x509_req_test" => { + "noinst" => "1" + }, + "test/x509_test" => { + "noinst" => "1" + }, "test/x509_time_test" => { "noinst" => "1" }, @@ -1607,6 +1952,9 @@ our %unified_info = ( "providers/libfips.a" => [ "FIPS_MODULE" ], + "test/endecode_test" => [ + "STATIC_LEGACY" + ], "test/evp_extra_test" => [ "STATIC_LEGACY" ], @@ -1619,14 +1967,21 @@ our %unified_info = ( }, "depends" => { "" => [ + "OpenSSLConfigVersion.cmake", + "crypto/params_idx.c", + "exporters/OpenSSLConfigVersion.cmake", + "exporters/openssl.pc", "include/crypto/bn_conf.h", "include/crypto/dso_conf.h", + "include/internal/param_names.h", "include/openssl/asn1.h", "include/openssl/asn1t.h", "include/openssl/bio.h", "include/openssl/cmp.h", "include/openssl/cms.h", + "include/openssl/comp.h", "include/openssl/conf.h", + "include/openssl/core_names.h", "include/openssl/crmf.h", "include/openssl/crypto.h", "include/openssl/ct.h", @@ -1643,10 +1998,22 @@ our %unified_info = ( "include/openssl/ssl.h", "include/openssl/ui.h", "include/openssl/x509.h", + "include/openssl/x509_acert.h", "include/openssl/x509_vfy.h", "include/openssl/x509v3.h", + "openssl.pc", "test/provider_internal_test.cnf" ], + "OpenSSLConfig.cmake" => [ + "builddata.pm" + ], + "OpenSSLConfigVersion.cmake" => [ + "OpenSSLConfig.cmake", + "builddata.pm" + ], + "apps/ca_internals_test-bin-ca.o" => [ + "apps/progs.h" + ], "apps/lib/cmp_client_test-bin-cmp_mock_srv.o" => [ "apps/progs.h" ], @@ -1792,6 +2159,9 @@ our %unified_info = ( "apps/openssl-bin-sess_id.o" => [ "apps/progs.h" ], + "apps/openssl-bin-skeyutl.o" => [ + "apps/progs.h" + ], "apps/openssl-bin-smime.o" => [ "apps/progs.h" ], @@ -1880,6 +2250,9 @@ our %unified_info = ( "crypto/libcrypto-lib-info.o" => [ "crypto/buildinf.h" ], + "crypto/params_idx.c" => [ + "util/perl|OpenSSL/paramnames.pm" + ], "crypto/rc4/rc4-586.S" => [ "crypto/perlasm/x86asm.pl" ], @@ -2045,6 +2418,9 @@ our %unified_info = ( "doc/html/man1/openssl-sess_id.html" => [ "doc/man1/openssl-sess_id.pod" ], + "doc/html/man1/openssl-skeyutl.html" => [ + "doc/man1/openssl-skeyutl.pod" + ], "doc/html/man1/openssl-smime.html" => [ "doc/man1/openssl-smime.pod" ], @@ -2186,6 +2562,9 @@ our %unified_info = ( "doc/html/man3/BIO_get_ex_new_index.html" => [ "doc/man3/BIO_get_ex_new_index.pod" ], + "doc/html/man3/BIO_get_rpoll_descriptor.html" => [ + "doc/man3/BIO_get_rpoll_descriptor.pod" + ], "doc/html/man3/BIO_meth_new.html" => [ "doc/man3/BIO_meth_new.pod" ], @@ -2222,6 +2601,9 @@ our %unified_info = ( "doc/html/man3/BIO_s_datagram.html" => [ "doc/man3/BIO_s_datagram.pod" ], + "doc/html/man3/BIO_s_dgram_pair.html" => [ + "doc/man3/BIO_s_dgram_pair.pod" + ], "doc/html/man3/BIO_s_fd.html" => [ "doc/man3/BIO_s_fd.pod" ], @@ -2237,6 +2619,9 @@ our %unified_info = ( "doc/html/man3/BIO_s_socket.html" => [ "doc/man3/BIO_s_socket.pod" ], + "doc/html/man3/BIO_sendmmsg.html" => [ + "doc/man3/BIO_sendmmsg.pod" + ], "doc/html/man3/BIO_set_callback.html" => [ "doc/man3/BIO_set_callback.pod" ], @@ -2309,6 +2694,9 @@ our %unified_info = ( "doc/html/man3/BUF_MEM_new.html" => [ "doc/man3/BUF_MEM_new.pod" ], + "doc/html/man3/CMAC_CTX.html" => [ + "doc/man3/CMAC_CTX.pod" + ], "doc/html/man3/CMS_EncryptedData_decrypt.html" => [ "doc/man3/CMS_EncryptedData_decrypt.pod" ], @@ -2375,6 +2763,9 @@ our %unified_info = ( "doc/html/man3/CMS_verify_receipt.html" => [ "doc/man3/CMS_verify_receipt.pod" ], + "doc/html/man3/COMP_CTX_new.html" => [ + "doc/man3/COMP_CTX_new.pod" + ], "doc/html/man3/CONF_modules_free.html" => [ "doc/man3/CONF_modules_free.pod" ], @@ -2474,6 +2865,12 @@ our %unified_info = ( "doc/html/man3/DTLS_set_timer_cb.html" => [ "doc/man3/DTLS_set_timer_cb.pod" ], + "doc/html/man3/DTLSv1_get_timeout.html" => [ + "doc/man3/DTLSv1_get_timeout.pod" + ], + "doc/html/man3/DTLSv1_handle_timeout.html" => [ + "doc/man3/DTLSv1_handle_timeout.pod" + ], "doc/html/man3/DTLSv1_listen.html" => [ "doc/man3/DTLSv1_listen.pod" ], @@ -2612,6 +3009,9 @@ our %unified_info = ( "doc/html/man3/EVP_PKEY_CTX_get0_pkey.html" => [ "doc/man3/EVP_PKEY_CTX_get0_pkey.pod" ], + "doc/html/man3/EVP_PKEY_CTX_get_algor.html" => [ + "doc/man3/EVP_PKEY_CTX_get_algor.pod" + ], "doc/html/man3/EVP_PKEY_CTX_new.html" => [ "doc/man3/EVP_PKEY_CTX_new.pod" ], @@ -2729,6 +3129,12 @@ our %unified_info = ( "doc/html/man3/EVP_SIGNATURE.html" => [ "doc/man3/EVP_SIGNATURE.pod" ], + "doc/html/man3/EVP_SKEY.html" => [ + "doc/man3/EVP_SKEY.pod" + ], + "doc/html/man3/EVP_SKEYMGMT.html" => [ + "doc/man3/EVP_SKEYMGMT.pod" + ], "doc/html/man3/EVP_SealInit.html" => [ "doc/man3/EVP_SealInit.pod" ], @@ -2816,6 +3222,9 @@ our %unified_info = ( "doc/html/man3/EVP_whirlpool.html" => [ "doc/man3/EVP_whirlpool.pod" ], + "doc/html/man3/GENERAL_NAME.html" => [ + "doc/man3/GENERAL_NAME.pod" + ], "doc/html/man3/HMAC.html" => [ "doc/man3/HMAC.pod" ], @@ -2888,9 +3297,15 @@ our %unified_info = ( "doc/html/man3/OPENSSL_load_builtin_modules.html" => [ "doc/man3/OPENSSL_load_builtin_modules.pod" ], + "doc/html/man3/OPENSSL_load_u16_le.html" => [ + "doc/man3/OPENSSL_load_u16_le.pod" + ], "doc/html/man3/OPENSSL_malloc.html" => [ "doc/man3/OPENSSL_malloc.pod" ], + "doc/html/man3/OPENSSL_riscvcap.html" => [ + "doc/man3/OPENSSL_riscvcap.pod" + ], "doc/html/man3/OPENSSL_s390xcap.html" => [ "doc/man3/OPENSSL_s390xcap.pod" ], @@ -2906,12 +3321,18 @@ our %unified_info = ( "doc/html/man3/OSSL_CALLBACK.html" => [ "doc/man3/OSSL_CALLBACK.pod" ], + "doc/html/man3/OSSL_CMP_ATAV_set0.html" => [ + "doc/man3/OSSL_CMP_ATAV_set0.pod" + ], "doc/html/man3/OSSL_CMP_CTX_new.html" => [ "doc/man3/OSSL_CMP_CTX_new.pod" ], "doc/html/man3/OSSL_CMP_HDR_get0_transactionID.html" => [ "doc/man3/OSSL_CMP_HDR_get0_transactionID.pod" ], + "doc/html/man3/OSSL_CMP_ITAV_new_caCerts.html" => [ + "doc/man3/OSSL_CMP_ITAV_new_caCerts.pod" + ], "doc/html/man3/OSSL_CMP_ITAV_set0.html" => [ "doc/man3/OSSL_CMP_ITAV_set0.pod" ], @@ -2981,9 +3402,18 @@ our %unified_info = ( "doc/html/man3/OSSL_ENCODER_to_bio.html" => [ "doc/man3/OSSL_ENCODER_to_bio.pod" ], + "doc/html/man3/OSSL_ERR_STATE_save.html" => [ + "doc/man3/OSSL_ERR_STATE_save.pod" + ], "doc/html/man3/OSSL_ESS_check_signing_certs.html" => [ "doc/man3/OSSL_ESS_check_signing_certs.pod" ], + "doc/html/man3/OSSL_GENERAL_NAMES_print.html" => [ + "doc/man3/OSSL_GENERAL_NAMES_print.pod" + ], + "doc/html/man3/OSSL_HPKE_CTX_new.html" => [ + "doc/man3/OSSL_HPKE_CTX_new.pod" + ], "doc/html/man3/OSSL_HTTP_REQ_CTX.html" => [ "doc/man3/OSSL_HTTP_REQ_CTX.pod" ], @@ -2993,12 +3423,24 @@ our %unified_info = ( "doc/html/man3/OSSL_HTTP_transfer.html" => [ "doc/man3/OSSL_HTTP_transfer.pod" ], + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX.html" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX.pod" + ], + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX_print.html" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX_print.pod" + ], + "doc/html/man3/OSSL_INDICATOR_set_callback.html" => [ + "doc/man3/OSSL_INDICATOR_set_callback.pod" + ], "doc/html/man3/OSSL_ITEM.html" => [ "doc/man3/OSSL_ITEM.pod" ], "doc/html/man3/OSSL_LIB_CTX.html" => [ "doc/man3/OSSL_LIB_CTX.pod" ], + "doc/html/man3/OSSL_LIB_CTX_set_conf_diagnostics.html" => [ + "doc/man3/OSSL_LIB_CTX_set_conf_diagnostics.pod" + ], "doc/html/man3/OSSL_PARAM.html" => [ "doc/man3/OSSL_PARAM.pod" ], @@ -3014,9 +3456,15 @@ our %unified_info = ( "doc/html/man3/OSSL_PARAM_int.html" => [ "doc/man3/OSSL_PARAM_int.pod" ], + "doc/html/man3/OSSL_PARAM_print_to_bio.html" => [ + "doc/man3/OSSL_PARAM_print_to_bio.pod" + ], "doc/html/man3/OSSL_PROVIDER.html" => [ "doc/man3/OSSL_PROVIDER.pod" ], + "doc/html/man3/OSSL_QUIC_client_method.html" => [ + "doc/man3/OSSL_QUIC_client_method.pod" + ], "doc/html/man3/OSSL_SELF_TEST_new.html" => [ "doc/man3/OSSL_SELF_TEST_new.pod" ], @@ -3041,6 +3489,9 @@ our %unified_info = ( "doc/html/man3/OSSL_STORE_open.html" => [ "doc/man3/OSSL_STORE_open.pod" ], + "doc/html/man3/OSSL_sleep.html" => [ + "doc/man3/OSSL_sleep.pod" + ], "doc/html/man3/OSSL_trace_enabled.html" => [ "doc/man3/OSSL_trace_enabled.pod" ], @@ -3056,6 +3507,9 @@ our %unified_info = ( "doc/html/man3/OpenSSL_version.html" => [ "doc/man3/OpenSSL_version.pod" ], + "doc/html/man3/PBMAC1_get1_pbkdf2_param.html" => [ + "doc/man3/PBMAC1_get1_pbkdf2_param.pod" + ], "doc/html/man3/PEM_X509_INFO_read_bio_ex.html" => [ "doc/man3/PEM_X509_INFO_read_bio_ex.pod" ], @@ -3092,6 +3546,9 @@ our %unified_info = ( "doc/html/man3/PKCS12_SAFEBAG_get1_cert.html" => [ "doc/man3/PKCS12_SAFEBAG_get1_cert.pod" ], + "doc/html/man3/PKCS12_SAFEBAG_set0_attrs.html" => [ + "doc/man3/PKCS12_SAFEBAG_set0_attrs.pod" + ], "doc/html/man3/PKCS12_add1_attr_by_NID.html" => [ "doc/man3/PKCS12_add1_attr_by_NID.pod" ], @@ -3365,6 +3822,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set0_CA_list.html" => [ "doc/man3/SSL_CTX_set0_CA_list.pod" ], + "doc/html/man3/SSL_CTX_set1_cert_comp_preference.html" => [ + "doc/man3/SSL_CTX_set1_cert_comp_preference.pod" + ], "doc/html/man3/SSL_CTX_set1_curves.html" => [ "doc/man3/SSL_CTX_set1_curves.pod" ], @@ -3404,6 +3864,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_default_passwd_cb.html" => [ "doc/man3/SSL_CTX_set_default_passwd_cb.pod" ], + "doc/html/man3/SSL_CTX_set_domain_flags.html" => [ + "doc/man3/SSL_CTX_set_domain_flags.pod" + ], "doc/html/man3/SSL_CTX_set_generate_session_id.html" => [ "doc/man3/SSL_CTX_set_generate_session_id.pod" ], @@ -3425,6 +3888,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_msg_callback.html" => [ "doc/man3/SSL_CTX_set_msg_callback.pod" ], + "doc/html/man3/SSL_CTX_set_new_pending_conn_cb.html" => [ + "doc/man3/SSL_CTX_set_new_pending_conn_cb.pod" + ], "doc/html/man3/SSL_CTX_set_num_tickets.html" => [ "doc/man3/SSL_CTX_set_num_tickets.pod" ], @@ -3539,6 +4005,9 @@ our %unified_info = ( "doc/html/man3/SSL_accept.html" => [ "doc/man3/SSL_accept.pod" ], + "doc/html/man3/SSL_accept_stream.html" => [ + "doc/man3/SSL_accept_stream.pod" + ], "doc/html/man3/SSL_alert_type_string.html" => [ "doc/man3/SSL_alert_type_string.pod" ], @@ -3566,9 +4035,21 @@ our %unified_info = ( "doc/html/man3/SSL_free.html" => [ "doc/man3/SSL_free.pod" ], + "doc/html/man3/SSL_get0_connection.html" => [ + "doc/man3/SSL_get0_connection.pod" + ], + "doc/html/man3/SSL_get0_group_name.html" => [ + "doc/man3/SSL_get0_group_name.pod" + ], + "doc/html/man3/SSL_get0_peer_rpk.html" => [ + "doc/man3/SSL_get0_peer_rpk.pod" + ], "doc/html/man3/SSL_get0_peer_scts.html" => [ "doc/man3/SSL_get0_peer_scts.pod" ], + "doc/html/man3/SSL_get1_builtin_sigalgs.html" => [ + "doc/man3/SSL_get1_builtin_sigalgs.pod" + ], "doc/html/man3/SSL_get_SSL_CTX.html" => [ "doc/man3/SSL_get_SSL_CTX.pod" ], @@ -3584,6 +4065,9 @@ our %unified_info = ( "doc/html/man3/SSL_get_client_random.html" => [ "doc/man3/SSL_get_client_random.pod" ], + "doc/html/man3/SSL_get_conn_close_info.html" => [ + "doc/man3/SSL_get_conn_close_info.pod" + ], "doc/html/man3/SSL_get_current_cipher.html" => [ "doc/man3/SSL_get_current_cipher.pod" ], @@ -3593,12 +4077,18 @@ our %unified_info = ( "doc/html/man3/SSL_get_error.html" => [ "doc/man3/SSL_get_error.pod" ], + "doc/html/man3/SSL_get_event_timeout.html" => [ + "doc/man3/SSL_get_event_timeout.pod" + ], "doc/html/man3/SSL_get_extms_support.html" => [ "doc/man3/SSL_get_extms_support.pod" ], "doc/html/man3/SSL_get_fd.html" => [ "doc/man3/SSL_get_fd.pod" ], + "doc/html/man3/SSL_get_handshake_rtt.html" => [ + "doc/man3/SSL_get_handshake_rtt.pod" + ], "doc/html/man3/SSL_get_peer_cert_chain.html" => [ "doc/man3/SSL_get_peer_cert_chain.pod" ], @@ -3617,12 +4107,24 @@ our %unified_info = ( "doc/html/man3/SSL_get_rbio.html" => [ "doc/man3/SSL_get_rbio.pod" ], + "doc/html/man3/SSL_get_rpoll_descriptor.html" => [ + "doc/man3/SSL_get_rpoll_descriptor.pod" + ], "doc/html/man3/SSL_get_session.html" => [ "doc/man3/SSL_get_session.pod" ], "doc/html/man3/SSL_get_shared_sigalgs.html" => [ "doc/man3/SSL_get_shared_sigalgs.pod" ], + "doc/html/man3/SSL_get_stream_id.html" => [ + "doc/man3/SSL_get_stream_id.pod" + ], + "doc/html/man3/SSL_get_stream_read_state.html" => [ + "doc/man3/SSL_get_stream_read_state.pod" + ], + "doc/html/man3/SSL_get_value_uint.html" => [ + "doc/man3/SSL_get_value_uint.pod" + ], "doc/html/man3/SSL_get_verify_result.html" => [ "doc/man3/SSL_get_verify_result.pod" ], @@ -3632,9 +4134,15 @@ our %unified_info = ( "doc/html/man3/SSL_group_to_name.html" => [ "doc/man3/SSL_group_to_name.pod" ], + "doc/html/man3/SSL_handle_events.html" => [ + "doc/man3/SSL_handle_events.pod" + ], "doc/html/man3/SSL_in_init.html" => [ "doc/man3/SSL_in_init.pod" ], + "doc/html/man3/SSL_inject_net_dgram.html" => [ + "doc/man3/SSL_inject_net_dgram.pod" + ], "doc/html/man3/SSL_key_update.html" => [ "doc/man3/SSL_key_update.pod" ], @@ -3647,9 +4155,21 @@ our %unified_info = ( "doc/html/man3/SSL_new.html" => [ "doc/man3/SSL_new.pod" ], + "doc/html/man3/SSL_new_domain.html" => [ + "doc/man3/SSL_new_domain.pod" + ], + "doc/html/man3/SSL_new_listener.html" => [ + "doc/man3/SSL_new_listener.pod" + ], + "doc/html/man3/SSL_new_stream.html" => [ + "doc/man3/SSL_new_stream.pod" + ], "doc/html/man3/SSL_pending.html" => [ "doc/man3/SSL_pending.pod" ], + "doc/html/man3/SSL_poll.html" => [ + "doc/man3/SSL_poll.pod" + ], "doc/html/man3/SSL_read.html" => [ "doc/man3/SSL_read.pod" ], @@ -3665,24 +4185,45 @@ our %unified_info = ( "doc/html/man3/SSL_set1_host.html" => [ "doc/man3/SSL_set1_host.pod" ], + "doc/html/man3/SSL_set1_initial_peer_addr.html" => [ + "doc/man3/SSL_set1_initial_peer_addr.pod" + ], + "doc/html/man3/SSL_set1_server_cert_type.html" => [ + "doc/man3/SSL_set1_server_cert_type.pod" + ], "doc/html/man3/SSL_set_async_callback.html" => [ "doc/man3/SSL_set_async_callback.pod" ], "doc/html/man3/SSL_set_bio.html" => [ "doc/man3/SSL_set_bio.pod" ], + "doc/html/man3/SSL_set_blocking_mode.html" => [ + "doc/man3/SSL_set_blocking_mode.pod" + ], "doc/html/man3/SSL_set_connect_state.html" => [ "doc/man3/SSL_set_connect_state.pod" ], + "doc/html/man3/SSL_set_default_stream_mode.html" => [ + "doc/man3/SSL_set_default_stream_mode.pod" + ], "doc/html/man3/SSL_set_fd.html" => [ "doc/man3/SSL_set_fd.pod" ], + "doc/html/man3/SSL_set_incoming_stream_policy.html" => [ + "doc/man3/SSL_set_incoming_stream_policy.pod" + ], + "doc/html/man3/SSL_set_quic_tls_cbs.html" => [ + "doc/man3/SSL_set_quic_tls_cbs.pod" + ], "doc/html/man3/SSL_set_retry_verify.html" => [ "doc/man3/SSL_set_retry_verify.pod" ], "doc/html/man3/SSL_set_session.html" => [ "doc/man3/SSL_set_session.pod" ], + "doc/html/man3/SSL_set_session_secret_cb.html" => [ + "doc/man3/SSL_set_session_secret_cb.pod" + ], "doc/html/man3/SSL_set_shutdown.html" => [ "doc/man3/SSL_set_shutdown.pod" ], @@ -3695,6 +4236,12 @@ our %unified_info = ( "doc/html/man3/SSL_state_string.html" => [ "doc/man3/SSL_state_string.pod" ], + "doc/html/man3/SSL_stream_conclude.html" => [ + "doc/man3/SSL_stream_conclude.pod" + ], + "doc/html/man3/SSL_stream_reset.html" => [ + "doc/man3/SSL_stream_reset.pod" + ], "doc/html/man3/SSL_want.html" => [ "doc/man3/SSL_want.pod" ], @@ -3704,8 +4251,8 @@ our %unified_info = ( "doc/html/man3/TS_RESP_CTX_new.html" => [ "doc/man3/TS_RESP_CTX_new.pod" ], - "doc/html/man3/TS_VERIFY_CTX_set_certs.html" => [ - "doc/man3/TS_VERIFY_CTX_set_certs.pod" + "doc/html/man3/TS_VERIFY_CTX.html" => [ + "doc/man3/TS_VERIFY_CTX.pod" ], "doc/html/man3/UI_STRING.html" => [ "doc/man3/UI_STRING.pod" @@ -3725,6 +4272,21 @@ our %unified_info = ( "doc/html/man3/X509V3_set_ctx.html" => [ "doc/man3/X509V3_set_ctx.pod" ], + "doc/html/man3/X509_ACERT_add1_attr.html" => [ + "doc/man3/X509_ACERT_add1_attr.pod" + ], + "doc/html/man3/X509_ACERT_add_attr_nconf.html" => [ + "doc/man3/X509_ACERT_add_attr_nconf.pod" + ], + "doc/html/man3/X509_ACERT_get0_holder_baseCertId.html" => [ + "doc/man3/X509_ACERT_get0_holder_baseCertId.pod" + ], + "doc/html/man3/X509_ACERT_get_attr.html" => [ + "doc/man3/X509_ACERT_get_attr.pod" + ], + "doc/html/man3/X509_ACERT_print_ex.html" => [ + "doc/man3/X509_ACERT_print_ex.pod" + ], "doc/html/man3/X509_ALGOR_dup.html" => [ "doc/man3/X509_ALGOR_dup.pod" ], @@ -3773,6 +4335,9 @@ our %unified_info = ( "doc/html/man3/X509_SIG_get0.html" => [ "doc/man3/X509_SIG_get0.pod" ], + "doc/html/man3/X509_STORE_CTX_get_by_subject.html" => [ + "doc/man3/X509_STORE_CTX_get_by_subject.pod" + ], "doc/html/man3/X509_STORE_CTX_get_error.html" => [ "doc/man3/X509_STORE_CTX_get_error.pod" ], @@ -3839,6 +4404,9 @@ our %unified_info = ( "doc/html/man3/X509_get0_uids.html" => [ "doc/man3/X509_get0_uids.pod" ], + "doc/html/man3/X509_get_default_cert_file.html" => [ + "doc/man3/X509_get_default_cert_file.pod" + ], "doc/html/man3/X509_get_extension_flags.html" => [ "doc/man3/X509_get_extension_flags.pod" ], @@ -3962,9 +4530,15 @@ our %unified_info = ( "doc/html/man7/EVP_CIPHER-SM4.html" => [ "doc/man7/EVP_CIPHER-SM4.pod" ], + "doc/html/man7/EVP_KDF-ARGON2.html" => [ + "doc/man7/EVP_KDF-ARGON2.pod" + ], "doc/html/man7/EVP_KDF-HKDF.html" => [ "doc/man7/EVP_KDF-HKDF.pod" ], + "doc/html/man7/EVP_KDF-HMAC-DRBG.html" => [ + "doc/man7/EVP_KDF-HMAC-DRBG.pod" + ], "doc/html/man7/EVP_KDF-KB.html" => [ "doc/man7/EVP_KDF-KB.pod" ], @@ -3980,6 +4554,9 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-PKCS12KDF.html" => [ "doc/man7/EVP_KDF-PKCS12KDF.pod" ], + "doc/html/man7/EVP_KDF-PVKKDF.html" => [ + "doc/man7/EVP_KDF-PVKKDF.pod" + ], "doc/html/man7/EVP_KDF-SCRYPT.html" => [ "doc/man7/EVP_KDF-SCRYPT.pod" ], @@ -4004,9 +4581,18 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-X963.html" => [ "doc/man7/EVP_KDF-X963.pod" ], + "doc/html/man7/EVP_KEM-EC.html" => [ + "doc/man7/EVP_KEM-EC.pod" + ], + "doc/html/man7/EVP_KEM-ML-KEM.html" => [ + "doc/man7/EVP_KEM-ML-KEM.pod" + ], "doc/html/man7/EVP_KEM-RSA.html" => [ "doc/man7/EVP_KEM-RSA.pod" ], + "doc/html/man7/EVP_KEM-X25519.html" => [ + "doc/man7/EVP_KEM-X25519.pod" + ], "doc/html/man7/EVP_KEYEXCH-DH.html" => [ "doc/man7/EVP_KEYEXCH-DH.pod" ], @@ -4040,6 +4626,9 @@ our %unified_info = ( "doc/html/man7/EVP_MD-BLAKE2.html" => [ "doc/man7/EVP_MD-BLAKE2.pod" ], + "doc/html/man7/EVP_MD-KECCAK.html" => [ + "doc/man7/EVP_MD-KECCAK.pod" + ], "doc/html/man7/EVP_MD-MD2.html" => [ "doc/man7/EVP_MD-MD2.pod" ], @@ -4097,15 +4686,27 @@ our %unified_info = ( "doc/html/man7/EVP_PKEY-HMAC.html" => [ "doc/man7/EVP_PKEY-HMAC.pod" ], + "doc/html/man7/EVP_PKEY-ML-DSA.html" => [ + "doc/man7/EVP_PKEY-ML-DSA.pod" + ], + "doc/html/man7/EVP_PKEY-ML-KEM.html" => [ + "doc/man7/EVP_PKEY-ML-KEM.pod" + ], "doc/html/man7/EVP_PKEY-RSA.html" => [ "doc/man7/EVP_PKEY-RSA.pod" ], + "doc/html/man7/EVP_PKEY-SLH-DSA.html" => [ + "doc/man7/EVP_PKEY-SLH-DSA.pod" + ], "doc/html/man7/EVP_PKEY-SM2.html" => [ "doc/man7/EVP_PKEY-SM2.pod" ], "doc/html/man7/EVP_PKEY-X25519.html" => [ "doc/man7/EVP_PKEY-X25519.pod" ], + "doc/html/man7/EVP_RAND-CRNG-TEST.html" => [ + "doc/man7/EVP_RAND-CRNG-TEST.pod" + ], "doc/html/man7/EVP_RAND-CTR-DRBG.html" => [ "doc/man7/EVP_RAND-CTR-DRBG.pod" ], @@ -4115,6 +4716,9 @@ our %unified_info = ( "doc/html/man7/EVP_RAND-HMAC-DRBG.html" => [ "doc/man7/EVP_RAND-HMAC-DRBG.pod" ], + "doc/html/man7/EVP_RAND-JITTER.html" => [ + "doc/man7/EVP_RAND-JITTER.pod" + ], "doc/html/man7/EVP_RAND-SEED-SRC.html" => [ "doc/man7/EVP_RAND-SEED-SRC.pod" ], @@ -4136,9 +4740,15 @@ our %unified_info = ( "doc/html/man7/EVP_SIGNATURE-HMAC.html" => [ "doc/man7/EVP_SIGNATURE-HMAC.pod" ], + "doc/html/man7/EVP_SIGNATURE-ML-DSA.html" => [ + "doc/man7/EVP_SIGNATURE-ML-DSA.pod" + ], "doc/html/man7/EVP_SIGNATURE-RSA.html" => [ "doc/man7/EVP_SIGNATURE-RSA.pod" ], + "doc/html/man7/EVP_SIGNATURE-SLH-DSA.html" => [ + "doc/man7/EVP_SIGNATURE-SLH-DSA.pod" + ], "doc/html/man7/OSSL_PROVIDER-FIPS.html" => [ "doc/man7/OSSL_PROVIDER-FIPS.pod" ], @@ -4154,6 +4764,9 @@ our %unified_info = ( "doc/html/man7/OSSL_PROVIDER-null.html" => [ "doc/man7/OSSL_PROVIDER-null.pod" ], + "doc/html/man7/OSSL_STORE-winstore.html" => [ + "doc/man7/OSSL_STORE-winstore.pod" + ], "doc/html/man7/RAND.html" => [ "doc/man7/RAND.pod" ], @@ -4166,9 +4779,6 @@ our %unified_info = ( "doc/html/man7/bio.html" => [ "doc/man7/bio.pod" ], - "doc/html/man7/crypto.html" => [ - "doc/man7/crypto.pod" - ], "doc/html/man7/ct.html" => [ "doc/man7/ct.pod" ], @@ -4199,9 +4809,6 @@ our %unified_info = ( "doc/html/man7/life_cycle-rand.html" => [ "doc/man7/life_cycle-rand.pod" ], - "doc/html/man7/migration_guide.html" => [ - "doc/man7/migration_guide.pod" - ], "doc/html/man7/openssl-core.h.html" => [ "doc/man7/openssl-core.h.pod" ], @@ -4217,12 +4824,66 @@ our %unified_info = ( "doc/html/man7/openssl-glossary.html" => [ "doc/man7/openssl-glossary.pod" ], + "doc/html/man7/openssl-qlog.html" => [ + "doc/man7/openssl-qlog.pod" + ], + "doc/html/man7/openssl-quic-concurrency.html" => [ + "doc/man7/openssl-quic-concurrency.pod" + ], + "doc/html/man7/openssl-quic.html" => [ + "doc/man7/openssl-quic.pod" + ], "doc/html/man7/openssl-threads.html" => [ "doc/man7/openssl-threads.pod" ], "doc/html/man7/openssl_user_macros.html" => [ "doc/man7/openssl_user_macros.pod" ], + "doc/html/man7/ossl-guide-introduction.html" => [ + "doc/man7/ossl-guide-introduction.pod" + ], + "doc/html/man7/ossl-guide-libcrypto-introduction.html" => [ + "doc/man7/ossl-guide-libcrypto-introduction.pod" + ], + "doc/html/man7/ossl-guide-libraries-introduction.html" => [ + "doc/man7/ossl-guide-libraries-introduction.pod" + ], + "doc/html/man7/ossl-guide-libssl-introduction.html" => [ + "doc/man7/ossl-guide-libssl-introduction.pod" + ], + "doc/html/man7/ossl-guide-migration.html" => [ + "doc/man7/ossl-guide-migration.pod" + ], + "doc/html/man7/ossl-guide-quic-client-block.html" => [ + "doc/man7/ossl-guide-quic-client-block.pod" + ], + "doc/html/man7/ossl-guide-quic-client-non-block.html" => [ + "doc/man7/ossl-guide-quic-client-non-block.pod" + ], + "doc/html/man7/ossl-guide-quic-introduction.html" => [ + "doc/man7/ossl-guide-quic-introduction.pod" + ], + "doc/html/man7/ossl-guide-quic-multi-stream.html" => [ + "doc/man7/ossl-guide-quic-multi-stream.pod" + ], + "doc/html/man7/ossl-guide-quic-server-block.html" => [ + "doc/man7/ossl-guide-quic-server-block.pod" + ], + "doc/html/man7/ossl-guide-quic-server-non-block.html" => [ + "doc/man7/ossl-guide-quic-server-non-block.pod" + ], + "doc/html/man7/ossl-guide-tls-client-block.html" => [ + "doc/man7/ossl-guide-tls-client-block.pod" + ], + "doc/html/man7/ossl-guide-tls-client-non-block.html" => [ + "doc/man7/ossl-guide-tls-client-non-block.pod" + ], + "doc/html/man7/ossl-guide-tls-introduction.html" => [ + "doc/man7/ossl-guide-tls-introduction.pod" + ], + "doc/html/man7/ossl-guide-tls-server-block.html" => [ + "doc/man7/ossl-guide-tls-server-block.pod" + ], "doc/html/man7/ossl_store-file.html" => [ "doc/man7/ossl_store-file.pod" ], @@ -4277,6 +4938,9 @@ our %unified_info = ( "doc/html/man7/provider-signature.html" => [ "doc/man7/provider-signature.pod" ], + "doc/html/man7/provider-skeymgmt.html" => [ + "doc/man7/provider-skeymgmt.pod" + ], "doc/html/man7/provider-storemgmt.html" => [ "doc/man7/provider-storemgmt.pod" ], @@ -4286,9 +4950,6 @@ our %unified_info = ( "doc/html/man7/proxy-certificates.html" => [ "doc/man7/proxy-certificates.pod" ], - "doc/html/man7/ssl.html" => [ - "doc/man7/ssl.pod" - ], "doc/html/man7/x509.html" => [ "doc/man7/x509.pod" ], @@ -4436,6 +5097,9 @@ our %unified_info = ( "doc/man/man1/openssl-sess_id.1" => [ "doc/man1/openssl-sess_id.pod" ], + "doc/man/man1/openssl-skeyutl.1" => [ + "doc/man1/openssl-skeyutl.pod" + ], "doc/man/man1/openssl-smime.1" => [ "doc/man1/openssl-smime.pod" ], @@ -4577,6 +5241,9 @@ our %unified_info = ( "doc/man/man3/BIO_get_ex_new_index.3" => [ "doc/man3/BIO_get_ex_new_index.pod" ], + "doc/man/man3/BIO_get_rpoll_descriptor.3" => [ + "doc/man3/BIO_get_rpoll_descriptor.pod" + ], "doc/man/man3/BIO_meth_new.3" => [ "doc/man3/BIO_meth_new.pod" ], @@ -4613,6 +5280,9 @@ our %unified_info = ( "doc/man/man3/BIO_s_datagram.3" => [ "doc/man3/BIO_s_datagram.pod" ], + "doc/man/man3/BIO_s_dgram_pair.3" => [ + "doc/man3/BIO_s_dgram_pair.pod" + ], "doc/man/man3/BIO_s_fd.3" => [ "doc/man3/BIO_s_fd.pod" ], @@ -4628,6 +5298,9 @@ our %unified_info = ( "doc/man/man3/BIO_s_socket.3" => [ "doc/man3/BIO_s_socket.pod" ], + "doc/man/man3/BIO_sendmmsg.3" => [ + "doc/man3/BIO_sendmmsg.pod" + ], "doc/man/man3/BIO_set_callback.3" => [ "doc/man3/BIO_set_callback.pod" ], @@ -4700,6 +5373,9 @@ our %unified_info = ( "doc/man/man3/BUF_MEM_new.3" => [ "doc/man3/BUF_MEM_new.pod" ], + "doc/man/man3/CMAC_CTX.3" => [ + "doc/man3/CMAC_CTX.pod" + ], "doc/man/man3/CMS_EncryptedData_decrypt.3" => [ "doc/man3/CMS_EncryptedData_decrypt.pod" ], @@ -4766,6 +5442,9 @@ our %unified_info = ( "doc/man/man3/CMS_verify_receipt.3" => [ "doc/man3/CMS_verify_receipt.pod" ], + "doc/man/man3/COMP_CTX_new.3" => [ + "doc/man3/COMP_CTX_new.pod" + ], "doc/man/man3/CONF_modules_free.3" => [ "doc/man3/CONF_modules_free.pod" ], @@ -4865,6 +5544,12 @@ our %unified_info = ( "doc/man/man3/DTLS_set_timer_cb.3" => [ "doc/man3/DTLS_set_timer_cb.pod" ], + "doc/man/man3/DTLSv1_get_timeout.3" => [ + "doc/man3/DTLSv1_get_timeout.pod" + ], + "doc/man/man3/DTLSv1_handle_timeout.3" => [ + "doc/man3/DTLSv1_handle_timeout.pod" + ], "doc/man/man3/DTLSv1_listen.3" => [ "doc/man3/DTLSv1_listen.pod" ], @@ -5003,6 +5688,9 @@ our %unified_info = ( "doc/man/man3/EVP_PKEY_CTX_get0_pkey.3" => [ "doc/man3/EVP_PKEY_CTX_get0_pkey.pod" ], + "doc/man/man3/EVP_PKEY_CTX_get_algor.3" => [ + "doc/man3/EVP_PKEY_CTX_get_algor.pod" + ], "doc/man/man3/EVP_PKEY_CTX_new.3" => [ "doc/man3/EVP_PKEY_CTX_new.pod" ], @@ -5120,6 +5808,12 @@ our %unified_info = ( "doc/man/man3/EVP_SIGNATURE.3" => [ "doc/man3/EVP_SIGNATURE.pod" ], + "doc/man/man3/EVP_SKEY.3" => [ + "doc/man3/EVP_SKEY.pod" + ], + "doc/man/man3/EVP_SKEYMGMT.3" => [ + "doc/man3/EVP_SKEYMGMT.pod" + ], "doc/man/man3/EVP_SealInit.3" => [ "doc/man3/EVP_SealInit.pod" ], @@ -5207,6 +5901,9 @@ our %unified_info = ( "doc/man/man3/EVP_whirlpool.3" => [ "doc/man3/EVP_whirlpool.pod" ], + "doc/man/man3/GENERAL_NAME.3" => [ + "doc/man3/GENERAL_NAME.pod" + ], "doc/man/man3/HMAC.3" => [ "doc/man3/HMAC.pod" ], @@ -5279,9 +5976,15 @@ our %unified_info = ( "doc/man/man3/OPENSSL_load_builtin_modules.3" => [ "doc/man3/OPENSSL_load_builtin_modules.pod" ], + "doc/man/man3/OPENSSL_load_u16_le.3" => [ + "doc/man3/OPENSSL_load_u16_le.pod" + ], "doc/man/man3/OPENSSL_malloc.3" => [ "doc/man3/OPENSSL_malloc.pod" ], + "doc/man/man3/OPENSSL_riscvcap.3" => [ + "doc/man3/OPENSSL_riscvcap.pod" + ], "doc/man/man3/OPENSSL_s390xcap.3" => [ "doc/man3/OPENSSL_s390xcap.pod" ], @@ -5297,12 +6000,18 @@ our %unified_info = ( "doc/man/man3/OSSL_CALLBACK.3" => [ "doc/man3/OSSL_CALLBACK.pod" ], + "doc/man/man3/OSSL_CMP_ATAV_set0.3" => [ + "doc/man3/OSSL_CMP_ATAV_set0.pod" + ], "doc/man/man3/OSSL_CMP_CTX_new.3" => [ "doc/man3/OSSL_CMP_CTX_new.pod" ], "doc/man/man3/OSSL_CMP_HDR_get0_transactionID.3" => [ "doc/man3/OSSL_CMP_HDR_get0_transactionID.pod" ], + "doc/man/man3/OSSL_CMP_ITAV_new_caCerts.3" => [ + "doc/man3/OSSL_CMP_ITAV_new_caCerts.pod" + ], "doc/man/man3/OSSL_CMP_ITAV_set0.3" => [ "doc/man3/OSSL_CMP_ITAV_set0.pod" ], @@ -5372,9 +6081,18 @@ our %unified_info = ( "doc/man/man3/OSSL_ENCODER_to_bio.3" => [ "doc/man3/OSSL_ENCODER_to_bio.pod" ], + "doc/man/man3/OSSL_ERR_STATE_save.3" => [ + "doc/man3/OSSL_ERR_STATE_save.pod" + ], "doc/man/man3/OSSL_ESS_check_signing_certs.3" => [ "doc/man3/OSSL_ESS_check_signing_certs.pod" ], + "doc/man/man3/OSSL_GENERAL_NAMES_print.3" => [ + "doc/man3/OSSL_GENERAL_NAMES_print.pod" + ], + "doc/man/man3/OSSL_HPKE_CTX_new.3" => [ + "doc/man3/OSSL_HPKE_CTX_new.pod" + ], "doc/man/man3/OSSL_HTTP_REQ_CTX.3" => [ "doc/man3/OSSL_HTTP_REQ_CTX.pod" ], @@ -5384,12 +6102,24 @@ our %unified_info = ( "doc/man/man3/OSSL_HTTP_transfer.3" => [ "doc/man3/OSSL_HTTP_transfer.pod" ], + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX.3" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX.pod" + ], + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX_print.3" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX_print.pod" + ], + "doc/man/man3/OSSL_INDICATOR_set_callback.3" => [ + "doc/man3/OSSL_INDICATOR_set_callback.pod" + ], "doc/man/man3/OSSL_ITEM.3" => [ "doc/man3/OSSL_ITEM.pod" ], "doc/man/man3/OSSL_LIB_CTX.3" => [ "doc/man3/OSSL_LIB_CTX.pod" ], + "doc/man/man3/OSSL_LIB_CTX_set_conf_diagnostics.3" => [ + "doc/man3/OSSL_LIB_CTX_set_conf_diagnostics.pod" + ], "doc/man/man3/OSSL_PARAM.3" => [ "doc/man3/OSSL_PARAM.pod" ], @@ -5405,9 +6135,15 @@ our %unified_info = ( "doc/man/man3/OSSL_PARAM_int.3" => [ "doc/man3/OSSL_PARAM_int.pod" ], + "doc/man/man3/OSSL_PARAM_print_to_bio.3" => [ + "doc/man3/OSSL_PARAM_print_to_bio.pod" + ], "doc/man/man3/OSSL_PROVIDER.3" => [ "doc/man3/OSSL_PROVIDER.pod" ], + "doc/man/man3/OSSL_QUIC_client_method.3" => [ + "doc/man3/OSSL_QUIC_client_method.pod" + ], "doc/man/man3/OSSL_SELF_TEST_new.3" => [ "doc/man3/OSSL_SELF_TEST_new.pod" ], @@ -5432,6 +6168,9 @@ our %unified_info = ( "doc/man/man3/OSSL_STORE_open.3" => [ "doc/man3/OSSL_STORE_open.pod" ], + "doc/man/man3/OSSL_sleep.3" => [ + "doc/man3/OSSL_sleep.pod" + ], "doc/man/man3/OSSL_trace_enabled.3" => [ "doc/man3/OSSL_trace_enabled.pod" ], @@ -5447,6 +6186,9 @@ our %unified_info = ( "doc/man/man3/OpenSSL_version.3" => [ "doc/man3/OpenSSL_version.pod" ], + "doc/man/man3/PBMAC1_get1_pbkdf2_param.3" => [ + "doc/man3/PBMAC1_get1_pbkdf2_param.pod" + ], "doc/man/man3/PEM_X509_INFO_read_bio_ex.3" => [ "doc/man3/PEM_X509_INFO_read_bio_ex.pod" ], @@ -5483,6 +6225,9 @@ our %unified_info = ( "doc/man/man3/PKCS12_SAFEBAG_get1_cert.3" => [ "doc/man3/PKCS12_SAFEBAG_get1_cert.pod" ], + "doc/man/man3/PKCS12_SAFEBAG_set0_attrs.3" => [ + "doc/man3/PKCS12_SAFEBAG_set0_attrs.pod" + ], "doc/man/man3/PKCS12_add1_attr_by_NID.3" => [ "doc/man3/PKCS12_add1_attr_by_NID.pod" ], @@ -5756,6 +6501,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set0_CA_list.3" => [ "doc/man3/SSL_CTX_set0_CA_list.pod" ], + "doc/man/man3/SSL_CTX_set1_cert_comp_preference.3" => [ + "doc/man3/SSL_CTX_set1_cert_comp_preference.pod" + ], "doc/man/man3/SSL_CTX_set1_curves.3" => [ "doc/man3/SSL_CTX_set1_curves.pod" ], @@ -5795,6 +6543,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_default_passwd_cb.3" => [ "doc/man3/SSL_CTX_set_default_passwd_cb.pod" ], + "doc/man/man3/SSL_CTX_set_domain_flags.3" => [ + "doc/man3/SSL_CTX_set_domain_flags.pod" + ], "doc/man/man3/SSL_CTX_set_generate_session_id.3" => [ "doc/man3/SSL_CTX_set_generate_session_id.pod" ], @@ -5816,6 +6567,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_msg_callback.3" => [ "doc/man3/SSL_CTX_set_msg_callback.pod" ], + "doc/man/man3/SSL_CTX_set_new_pending_conn_cb.3" => [ + "doc/man3/SSL_CTX_set_new_pending_conn_cb.pod" + ], "doc/man/man3/SSL_CTX_set_num_tickets.3" => [ "doc/man3/SSL_CTX_set_num_tickets.pod" ], @@ -5930,6 +6684,9 @@ our %unified_info = ( "doc/man/man3/SSL_accept.3" => [ "doc/man3/SSL_accept.pod" ], + "doc/man/man3/SSL_accept_stream.3" => [ + "doc/man3/SSL_accept_stream.pod" + ], "doc/man/man3/SSL_alert_type_string.3" => [ "doc/man3/SSL_alert_type_string.pod" ], @@ -5957,9 +6714,21 @@ our %unified_info = ( "doc/man/man3/SSL_free.3" => [ "doc/man3/SSL_free.pod" ], + "doc/man/man3/SSL_get0_connection.3" => [ + "doc/man3/SSL_get0_connection.pod" + ], + "doc/man/man3/SSL_get0_group_name.3" => [ + "doc/man3/SSL_get0_group_name.pod" + ], + "doc/man/man3/SSL_get0_peer_rpk.3" => [ + "doc/man3/SSL_get0_peer_rpk.pod" + ], "doc/man/man3/SSL_get0_peer_scts.3" => [ "doc/man3/SSL_get0_peer_scts.pod" ], + "doc/man/man3/SSL_get1_builtin_sigalgs.3" => [ + "doc/man3/SSL_get1_builtin_sigalgs.pod" + ], "doc/man/man3/SSL_get_SSL_CTX.3" => [ "doc/man3/SSL_get_SSL_CTX.pod" ], @@ -5975,6 +6744,9 @@ our %unified_info = ( "doc/man/man3/SSL_get_client_random.3" => [ "doc/man3/SSL_get_client_random.pod" ], + "doc/man/man3/SSL_get_conn_close_info.3" => [ + "doc/man3/SSL_get_conn_close_info.pod" + ], "doc/man/man3/SSL_get_current_cipher.3" => [ "doc/man3/SSL_get_current_cipher.pod" ], @@ -5984,12 +6756,18 @@ our %unified_info = ( "doc/man/man3/SSL_get_error.3" => [ "doc/man3/SSL_get_error.pod" ], + "doc/man/man3/SSL_get_event_timeout.3" => [ + "doc/man3/SSL_get_event_timeout.pod" + ], "doc/man/man3/SSL_get_extms_support.3" => [ "doc/man3/SSL_get_extms_support.pod" ], "doc/man/man3/SSL_get_fd.3" => [ "doc/man3/SSL_get_fd.pod" ], + "doc/man/man3/SSL_get_handshake_rtt.3" => [ + "doc/man3/SSL_get_handshake_rtt.pod" + ], "doc/man/man3/SSL_get_peer_cert_chain.3" => [ "doc/man3/SSL_get_peer_cert_chain.pod" ], @@ -6008,12 +6786,24 @@ our %unified_info = ( "doc/man/man3/SSL_get_rbio.3" => [ "doc/man3/SSL_get_rbio.pod" ], + "doc/man/man3/SSL_get_rpoll_descriptor.3" => [ + "doc/man3/SSL_get_rpoll_descriptor.pod" + ], "doc/man/man3/SSL_get_session.3" => [ "doc/man3/SSL_get_session.pod" ], "doc/man/man3/SSL_get_shared_sigalgs.3" => [ "doc/man3/SSL_get_shared_sigalgs.pod" ], + "doc/man/man3/SSL_get_stream_id.3" => [ + "doc/man3/SSL_get_stream_id.pod" + ], + "doc/man/man3/SSL_get_stream_read_state.3" => [ + "doc/man3/SSL_get_stream_read_state.pod" + ], + "doc/man/man3/SSL_get_value_uint.3" => [ + "doc/man3/SSL_get_value_uint.pod" + ], "doc/man/man3/SSL_get_verify_result.3" => [ "doc/man3/SSL_get_verify_result.pod" ], @@ -6023,9 +6813,15 @@ our %unified_info = ( "doc/man/man3/SSL_group_to_name.3" => [ "doc/man3/SSL_group_to_name.pod" ], + "doc/man/man3/SSL_handle_events.3" => [ + "doc/man3/SSL_handle_events.pod" + ], "doc/man/man3/SSL_in_init.3" => [ "doc/man3/SSL_in_init.pod" ], + "doc/man/man3/SSL_inject_net_dgram.3" => [ + "doc/man3/SSL_inject_net_dgram.pod" + ], "doc/man/man3/SSL_key_update.3" => [ "doc/man3/SSL_key_update.pod" ], @@ -6038,9 +6834,21 @@ our %unified_info = ( "doc/man/man3/SSL_new.3" => [ "doc/man3/SSL_new.pod" ], + "doc/man/man3/SSL_new_domain.3" => [ + "doc/man3/SSL_new_domain.pod" + ], + "doc/man/man3/SSL_new_listener.3" => [ + "doc/man3/SSL_new_listener.pod" + ], + "doc/man/man3/SSL_new_stream.3" => [ + "doc/man3/SSL_new_stream.pod" + ], "doc/man/man3/SSL_pending.3" => [ "doc/man3/SSL_pending.pod" ], + "doc/man/man3/SSL_poll.3" => [ + "doc/man3/SSL_poll.pod" + ], "doc/man/man3/SSL_read.3" => [ "doc/man3/SSL_read.pod" ], @@ -6056,24 +6864,45 @@ our %unified_info = ( "doc/man/man3/SSL_set1_host.3" => [ "doc/man3/SSL_set1_host.pod" ], + "doc/man/man3/SSL_set1_initial_peer_addr.3" => [ + "doc/man3/SSL_set1_initial_peer_addr.pod" + ], + "doc/man/man3/SSL_set1_server_cert_type.3" => [ + "doc/man3/SSL_set1_server_cert_type.pod" + ], "doc/man/man3/SSL_set_async_callback.3" => [ "doc/man3/SSL_set_async_callback.pod" ], "doc/man/man3/SSL_set_bio.3" => [ "doc/man3/SSL_set_bio.pod" ], + "doc/man/man3/SSL_set_blocking_mode.3" => [ + "doc/man3/SSL_set_blocking_mode.pod" + ], "doc/man/man3/SSL_set_connect_state.3" => [ "doc/man3/SSL_set_connect_state.pod" ], + "doc/man/man3/SSL_set_default_stream_mode.3" => [ + "doc/man3/SSL_set_default_stream_mode.pod" + ], "doc/man/man3/SSL_set_fd.3" => [ "doc/man3/SSL_set_fd.pod" ], + "doc/man/man3/SSL_set_incoming_stream_policy.3" => [ + "doc/man3/SSL_set_incoming_stream_policy.pod" + ], + "doc/man/man3/SSL_set_quic_tls_cbs.3" => [ + "doc/man3/SSL_set_quic_tls_cbs.pod" + ], "doc/man/man3/SSL_set_retry_verify.3" => [ "doc/man3/SSL_set_retry_verify.pod" ], "doc/man/man3/SSL_set_session.3" => [ "doc/man3/SSL_set_session.pod" ], + "doc/man/man3/SSL_set_session_secret_cb.3" => [ + "doc/man3/SSL_set_session_secret_cb.pod" + ], "doc/man/man3/SSL_set_shutdown.3" => [ "doc/man3/SSL_set_shutdown.pod" ], @@ -6086,6 +6915,12 @@ our %unified_info = ( "doc/man/man3/SSL_state_string.3" => [ "doc/man3/SSL_state_string.pod" ], + "doc/man/man3/SSL_stream_conclude.3" => [ + "doc/man3/SSL_stream_conclude.pod" + ], + "doc/man/man3/SSL_stream_reset.3" => [ + "doc/man3/SSL_stream_reset.pod" + ], "doc/man/man3/SSL_want.3" => [ "doc/man3/SSL_want.pod" ], @@ -6095,8 +6930,8 @@ our %unified_info = ( "doc/man/man3/TS_RESP_CTX_new.3" => [ "doc/man3/TS_RESP_CTX_new.pod" ], - "doc/man/man3/TS_VERIFY_CTX_set_certs.3" => [ - "doc/man3/TS_VERIFY_CTX_set_certs.pod" + "doc/man/man3/TS_VERIFY_CTX.3" => [ + "doc/man3/TS_VERIFY_CTX.pod" ], "doc/man/man3/UI_STRING.3" => [ "doc/man3/UI_STRING.pod" @@ -6116,6 +6951,21 @@ our %unified_info = ( "doc/man/man3/X509V3_set_ctx.3" => [ "doc/man3/X509V3_set_ctx.pod" ], + "doc/man/man3/X509_ACERT_add1_attr.3" => [ + "doc/man3/X509_ACERT_add1_attr.pod" + ], + "doc/man/man3/X509_ACERT_add_attr_nconf.3" => [ + "doc/man3/X509_ACERT_add_attr_nconf.pod" + ], + "doc/man/man3/X509_ACERT_get0_holder_baseCertId.3" => [ + "doc/man3/X509_ACERT_get0_holder_baseCertId.pod" + ], + "doc/man/man3/X509_ACERT_get_attr.3" => [ + "doc/man3/X509_ACERT_get_attr.pod" + ], + "doc/man/man3/X509_ACERT_print_ex.3" => [ + "doc/man3/X509_ACERT_print_ex.pod" + ], "doc/man/man3/X509_ALGOR_dup.3" => [ "doc/man3/X509_ALGOR_dup.pod" ], @@ -6164,6 +7014,9 @@ our %unified_info = ( "doc/man/man3/X509_SIG_get0.3" => [ "doc/man3/X509_SIG_get0.pod" ], + "doc/man/man3/X509_STORE_CTX_get_by_subject.3" => [ + "doc/man3/X509_STORE_CTX_get_by_subject.pod" + ], "doc/man/man3/X509_STORE_CTX_get_error.3" => [ "doc/man3/X509_STORE_CTX_get_error.pod" ], @@ -6230,6 +7083,9 @@ our %unified_info = ( "doc/man/man3/X509_get0_uids.3" => [ "doc/man3/X509_get0_uids.pod" ], + "doc/man/man3/X509_get_default_cert_file.3" => [ + "doc/man3/X509_get_default_cert_file.pod" + ], "doc/man/man3/X509_get_extension_flags.3" => [ "doc/man3/X509_get_extension_flags.pod" ], @@ -6353,9 +7209,15 @@ our %unified_info = ( "doc/man/man7/EVP_CIPHER-SM4.7" => [ "doc/man7/EVP_CIPHER-SM4.pod" ], + "doc/man/man7/EVP_KDF-ARGON2.7" => [ + "doc/man7/EVP_KDF-ARGON2.pod" + ], "doc/man/man7/EVP_KDF-HKDF.7" => [ "doc/man7/EVP_KDF-HKDF.pod" ], + "doc/man/man7/EVP_KDF-HMAC-DRBG.7" => [ + "doc/man7/EVP_KDF-HMAC-DRBG.pod" + ], "doc/man/man7/EVP_KDF-KB.7" => [ "doc/man7/EVP_KDF-KB.pod" ], @@ -6371,6 +7233,9 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-PKCS12KDF.7" => [ "doc/man7/EVP_KDF-PKCS12KDF.pod" ], + "doc/man/man7/EVP_KDF-PVKKDF.7" => [ + "doc/man7/EVP_KDF-PVKKDF.pod" + ], "doc/man/man7/EVP_KDF-SCRYPT.7" => [ "doc/man7/EVP_KDF-SCRYPT.pod" ], @@ -6395,9 +7260,18 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-X963.7" => [ "doc/man7/EVP_KDF-X963.pod" ], + "doc/man/man7/EVP_KEM-EC.7" => [ + "doc/man7/EVP_KEM-EC.pod" + ], + "doc/man/man7/EVP_KEM-ML-KEM.7" => [ + "doc/man7/EVP_KEM-ML-KEM.pod" + ], "doc/man/man7/EVP_KEM-RSA.7" => [ "doc/man7/EVP_KEM-RSA.pod" ], + "doc/man/man7/EVP_KEM-X25519.7" => [ + "doc/man7/EVP_KEM-X25519.pod" + ], "doc/man/man7/EVP_KEYEXCH-DH.7" => [ "doc/man7/EVP_KEYEXCH-DH.pod" ], @@ -6431,6 +7305,9 @@ our %unified_info = ( "doc/man/man7/EVP_MD-BLAKE2.7" => [ "doc/man7/EVP_MD-BLAKE2.pod" ], + "doc/man/man7/EVP_MD-KECCAK.7" => [ + "doc/man7/EVP_MD-KECCAK.pod" + ], "doc/man/man7/EVP_MD-MD2.7" => [ "doc/man7/EVP_MD-MD2.pod" ], @@ -6488,15 +7365,27 @@ our %unified_info = ( "doc/man/man7/EVP_PKEY-HMAC.7" => [ "doc/man7/EVP_PKEY-HMAC.pod" ], + "doc/man/man7/EVP_PKEY-ML-DSA.7" => [ + "doc/man7/EVP_PKEY-ML-DSA.pod" + ], + "doc/man/man7/EVP_PKEY-ML-KEM.7" => [ + "doc/man7/EVP_PKEY-ML-KEM.pod" + ], "doc/man/man7/EVP_PKEY-RSA.7" => [ "doc/man7/EVP_PKEY-RSA.pod" ], + "doc/man/man7/EVP_PKEY-SLH-DSA.7" => [ + "doc/man7/EVP_PKEY-SLH-DSA.pod" + ], "doc/man/man7/EVP_PKEY-SM2.7" => [ "doc/man7/EVP_PKEY-SM2.pod" ], "doc/man/man7/EVP_PKEY-X25519.7" => [ "doc/man7/EVP_PKEY-X25519.pod" ], + "doc/man/man7/EVP_RAND-CRNG-TEST.7" => [ + "doc/man7/EVP_RAND-CRNG-TEST.pod" + ], "doc/man/man7/EVP_RAND-CTR-DRBG.7" => [ "doc/man7/EVP_RAND-CTR-DRBG.pod" ], @@ -6506,6 +7395,9 @@ our %unified_info = ( "doc/man/man7/EVP_RAND-HMAC-DRBG.7" => [ "doc/man7/EVP_RAND-HMAC-DRBG.pod" ], + "doc/man/man7/EVP_RAND-JITTER.7" => [ + "doc/man7/EVP_RAND-JITTER.pod" + ], "doc/man/man7/EVP_RAND-SEED-SRC.7" => [ "doc/man7/EVP_RAND-SEED-SRC.pod" ], @@ -6527,9 +7419,15 @@ our %unified_info = ( "doc/man/man7/EVP_SIGNATURE-HMAC.7" => [ "doc/man7/EVP_SIGNATURE-HMAC.pod" ], + "doc/man/man7/EVP_SIGNATURE-ML-DSA.7" => [ + "doc/man7/EVP_SIGNATURE-ML-DSA.pod" + ], "doc/man/man7/EVP_SIGNATURE-RSA.7" => [ "doc/man7/EVP_SIGNATURE-RSA.pod" ], + "doc/man/man7/EVP_SIGNATURE-SLH-DSA.7" => [ + "doc/man7/EVP_SIGNATURE-SLH-DSA.pod" + ], "doc/man/man7/OSSL_PROVIDER-FIPS.7" => [ "doc/man7/OSSL_PROVIDER-FIPS.pod" ], @@ -6545,6 +7443,9 @@ our %unified_info = ( "doc/man/man7/OSSL_PROVIDER-null.7" => [ "doc/man7/OSSL_PROVIDER-null.pod" ], + "doc/man/man7/OSSL_STORE-winstore.7" => [ + "doc/man7/OSSL_STORE-winstore.pod" + ], "doc/man/man7/RAND.7" => [ "doc/man7/RAND.pod" ], @@ -6557,9 +7458,6 @@ our %unified_info = ( "doc/man/man7/bio.7" => [ "doc/man7/bio.pod" ], - "doc/man/man7/crypto.7" => [ - "doc/man7/crypto.pod" - ], "doc/man/man7/ct.7" => [ "doc/man7/ct.pod" ], @@ -6590,9 +7488,6 @@ our %unified_info = ( "doc/man/man7/life_cycle-rand.7" => [ "doc/man7/life_cycle-rand.pod" ], - "doc/man/man7/migration_guide.7" => [ - "doc/man7/migration_guide.pod" - ], "doc/man/man7/openssl-core.h.7" => [ "doc/man7/openssl-core.h.pod" ], @@ -6608,12 +7503,66 @@ our %unified_info = ( "doc/man/man7/openssl-glossary.7" => [ "doc/man7/openssl-glossary.pod" ], + "doc/man/man7/openssl-qlog.7" => [ + "doc/man7/openssl-qlog.pod" + ], + "doc/man/man7/openssl-quic-concurrency.7" => [ + "doc/man7/openssl-quic-concurrency.pod" + ], + "doc/man/man7/openssl-quic.7" => [ + "doc/man7/openssl-quic.pod" + ], "doc/man/man7/openssl-threads.7" => [ "doc/man7/openssl-threads.pod" ], "doc/man/man7/openssl_user_macros.7" => [ "doc/man7/openssl_user_macros.pod" ], + "doc/man/man7/ossl-guide-introduction.7" => [ + "doc/man7/ossl-guide-introduction.pod" + ], + "doc/man/man7/ossl-guide-libcrypto-introduction.7" => [ + "doc/man7/ossl-guide-libcrypto-introduction.pod" + ], + "doc/man/man7/ossl-guide-libraries-introduction.7" => [ + "doc/man7/ossl-guide-libraries-introduction.pod" + ], + "doc/man/man7/ossl-guide-libssl-introduction.7" => [ + "doc/man7/ossl-guide-libssl-introduction.pod" + ], + "doc/man/man7/ossl-guide-migration.7" => [ + "doc/man7/ossl-guide-migration.pod" + ], + "doc/man/man7/ossl-guide-quic-client-block.7" => [ + "doc/man7/ossl-guide-quic-client-block.pod" + ], + "doc/man/man7/ossl-guide-quic-client-non-block.7" => [ + "doc/man7/ossl-guide-quic-client-non-block.pod" + ], + "doc/man/man7/ossl-guide-quic-introduction.7" => [ + "doc/man7/ossl-guide-quic-introduction.pod" + ], + "doc/man/man7/ossl-guide-quic-multi-stream.7" => [ + "doc/man7/ossl-guide-quic-multi-stream.pod" + ], + "doc/man/man7/ossl-guide-quic-server-block.7" => [ + "doc/man7/ossl-guide-quic-server-block.pod" + ], + "doc/man/man7/ossl-guide-quic-server-non-block.7" => [ + "doc/man7/ossl-guide-quic-server-non-block.pod" + ], + "doc/man/man7/ossl-guide-tls-client-block.7" => [ + "doc/man7/ossl-guide-tls-client-block.pod" + ], + "doc/man/man7/ossl-guide-tls-client-non-block.7" => [ + "doc/man7/ossl-guide-tls-client-non-block.pod" + ], + "doc/man/man7/ossl-guide-tls-introduction.7" => [ + "doc/man7/ossl-guide-tls-introduction.pod" + ], + "doc/man/man7/ossl-guide-tls-server-block.7" => [ + "doc/man7/ossl-guide-tls-server-block.pod" + ], "doc/man/man7/ossl_store-file.7" => [ "doc/man7/ossl_store-file.pod" ], @@ -6668,6 +7617,9 @@ our %unified_info = ( "doc/man/man7/provider-signature.7" => [ "doc/man7/provider-signature.pod" ], + "doc/man/man7/provider-skeymgmt.7" => [ + "doc/man7/provider-skeymgmt.pod" + ], "doc/man/man7/provider-storemgmt.7" => [ "doc/man7/provider-storemgmt.pod" ], @@ -6677,9 +7629,6 @@ our %unified_info = ( "doc/man/man7/proxy-certificates.7" => [ "doc/man7/proxy-certificates.pod" ], - "doc/man/man7/ssl.7" => [ - "doc/man7/ssl.pod" - ], "doc/man/man7/x509.7" => [ "doc/man7/x509.pod" ], @@ -6859,6 +7808,10 @@ our %unified_info = ( "doc/man1/openssl-sess_id.pod.in", "doc/perlvars.pm" ], + "doc/man1/openssl-skeyutl.pod" => [ + "doc/man1/openssl-skeyutl.pod.in", + "doc/perlvars.pm" + ], "doc/man1/openssl-smime.pod" => [ "doc/man1/openssl-smime.pod.in", "doc/perlvars.pm" @@ -6898,6 +7851,27 @@ our %unified_info = ( "doc/man7/openssl_user_macros.pod" => [ "doc/man7/openssl_user_macros.pod.in" ], + "exporters/OpenSSLConfig.cmake" => [ + "installdata.pm" + ], + "exporters/OpenSSLConfigVersion.cmake" => [ + "exporters/OpenSSLConfig.cmake", + "installdata.pm" + ], + "exporters/libcrypto.pc" => [ + "installdata.pm" + ], + "exporters/libssl.pc" => [ + "installdata.pm" + ], + "exporters/openssl.pc" => [ + "exporters/libcrypto.pc", + "exporters/libssl.pc", + "installdata.pm" + ], + "fuzz/acert-test" => [ + "libcrypto" + ], "fuzz/asn1-test" => [ "libcrypto", "libssl" @@ -6930,17 +7904,85 @@ our %unified_info = ( "fuzz/ct-test" => [ "libcrypto" ], + "fuzz/decoder-test" => [ + "libcrypto" + ], + "fuzz/dtlsclient-test" => [ + "libcrypto", + "libssl" + ], + "fuzz/dtlsserver-test" => [ + "libcrypto", + "libssl" + ], + "fuzz/hashtable-test" => [ + "libcrypto.a" + ], + "fuzz/ml-dsa-test" => [ + "libcrypto.a" + ], + "fuzz/ml-kem-test" => [ + "libcrypto.a" + ], + "fuzz/pem-test" => [ + "libcrypto.a" + ], + "fuzz/provider-test" => [ + "libcrypto" + ], + "fuzz/punycode-test" => [ + "libcrypto.a" + ], + "fuzz/quic-client-test" => [ + "libcrypto.a", + "libssl.a" + ], + "fuzz/quic-lcidm-test" => [ + "libcrypto.a", + "libssl.a" + ], + "fuzz/quic-rcidm-test" => [ + "libcrypto.a", + "libssl.a" + ], + "fuzz/quic-server-test" => [ + "libcrypto.a", + "libssl.a" + ], + "fuzz/quic-srtm-test" => [ + "libcrypto.a", + "libssl.a" + ], "fuzz/server-test" => [ "libcrypto", "libssl" ], + "fuzz/slh-dsa-test" => [ + "libcrypto.a" + ], + "fuzz/smime-test" => [ + "libcrypto", + "libssl" + ], + "fuzz/v3name-test" => [ + "libcrypto.a" + ], "fuzz/x509-test" => [ "libcrypto" ], + "include/internal/param_names.h" => [ + "util/perl|OpenSSL/paramnames.pm" + ], + "include/openssl/core_names.h" => [ + "util/perl|OpenSSL/paramnames.pm" + ], "libcrypto.ld" => [ "configdata.pm", "util/perl/OpenSSL/Ordinals.pm" ], + "libcrypto.pc" => [ + "builddata.pm" + ], "libssl" => [ "libcrypto" ], @@ -6948,6 +7990,14 @@ our %unified_info = ( "configdata.pm", "util/perl/OpenSSL/Ordinals.pm" ], + "libssl.pc" => [ + "builddata.pm" + ], + "openssl.pc" => [ + "builddata.pm", + "libcrypto.pc", + "libssl.pc" + ], "providers/common/der/der_digests_gen.c" => [ "providers/common/der/DIGESTS.asn1", "providers/common/der/NIST.asn1", @@ -6965,11 +8015,19 @@ our %unified_info = ( "providers/common/der/ECX.asn1", "providers/common/der/oids_to_c.pm" ], + "providers/common/der/der_ml_dsa_gen.c" => [ + "providers/common/der/ML_DSA.asn1", + "providers/common/der/oids_to_c.pm" + ], "providers/common/der/der_rsa_gen.c" => [ "providers/common/der/NIST.asn1", "providers/common/der/RSA.asn1", "providers/common/der/oids_to_c.pm" ], + "providers/common/der/der_slh_dsa_gen.c" => [ + "providers/common/der/SLH_DSA.asn1", + "providers/common/der/oids_to_c.pm" + ], "providers/common/der/der_sm2_gen.c" => [ "providers/common/der/SM2.asn1", "providers/common/der/oids_to_c.pm" @@ -7009,6 +8067,12 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ecx_key.o" => [ "providers/common/include/prov/der_ecx.h" ], + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o" => [ + "providers/common/include/prov/der_ml_dsa.h" + ], + "providers/common/der/libcommon-lib-der_ml_dsa_key.o" => [ + "providers/common/include/prov/der_ml_dsa.h" + ], "providers/common/der/libcommon-lib-der_rsa_gen.o" => [ "providers/common/include/prov/der_rsa.h" ], @@ -7016,6 +8080,12 @@ our %unified_info = ( "providers/common/include/prov/der_digests.h", "providers/common/include/prov/der_rsa.h" ], + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o" => [ + "providers/common/include/prov/der_slh_dsa.h" + ], + "providers/common/der/libcommon-lib-der_slh_dsa_key.o" => [ + "providers/common/include/prov/der_slh_dsa.h" + ], "providers/common/der/libcommon-lib-der_wrap_gen.o" => [ "providers/common/include/prov/der_wrap.h" ], @@ -7055,11 +8125,19 @@ our %unified_info = ( "providers/common/der/ECX.asn1", "providers/common/der/oids_to_c.pm" ], + "providers/common/include/prov/der_ml_dsa.h" => [ + "providers/common/der/ML_DSA.asn1", + "providers/common/der/oids_to_c.pm" + ], "providers/common/include/prov/der_rsa.h" => [ "providers/common/der/NIST.asn1", "providers/common/der/RSA.asn1", "providers/common/der/oids_to_c.pm" ], + "providers/common/include/prov/der_slh_dsa.h" => [ + "providers/common/der/SLH_DSA.asn1", + "providers/common/der/oids_to_c.pm" + ], "providers/common/include/prov/der_sm2.h" => [ "providers/common/der/SM2.asn1", "providers/common/der/oids_to_c.pm" @@ -7092,9 +8170,15 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-eddsa_sig.o" => [ "providers/common/include/prov/der_ecx.h" ], + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o" => [ + "providers/common/include/prov/der_ml_dsa.h" + ], "providers/implementations/signature/libdefault-lib-rsa_sig.o" => [ "providers/common/include/prov/der_rsa.h" ], + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o" => [ + "providers/common/include/prov/der_slh_dsa.h" + ], "providers/implementations/signature/libdefault-lib-sm2_sig.o" => [ "providers/common/include/prov/der_sm2.h" ], @@ -7107,9 +8191,15 @@ our %unified_info = ( "providers/implementations/signature/libfips-lib-eddsa_sig.o" => [ "providers/common/include/prov/der_ecx.h" ], + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o" => [ + "providers/common/include/prov/der_ml_dsa.h" + ], "providers/implementations/signature/libfips-lib-rsa_sig.o" => [ "providers/common/include/prov/der_rsa.h" ], + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o" => [ + "providers/common/include/prov/der_slh_dsa.h" + ], "providers/legacy" => [ "libcrypto", "providers/liblegacy.a" @@ -7187,6 +8277,14 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/bio_addr_test" => [ + "libcrypto", + "test/libtestutil.a" + ], + "test/bio_base64_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/bio_callback_test" => [ "libcrypto", "test/libtestutil.a" @@ -7195,6 +8293,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/bio_dgram_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/bio_enc_test" => [ "libcrypto", "test/libtestutil.a" @@ -7203,6 +8305,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/bio_meth_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/bio_prefix_text" => [ "libcrypto", "test/libtestutil.a" @@ -7215,6 +8321,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/bio_tfo_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/bioprinttest" => [ "libcrypto", "test/libtestutil.a" @@ -7227,6 +8337,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/build_wincrypt_test" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_aes" => [ "libcrypto", "libssl" @@ -7247,6 +8361,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_byteorder" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_camellia" => [ "libcrypto", "libssl" @@ -7279,10 +8397,6 @@ our %unified_info = ( "libcrypto", "libssl" ], - "test/buildtest_c_core_names" => [ - "libcrypto", - "libssl" - ], "test/buildtest_c_core_object" => [ "libcrypto", "libssl" @@ -7315,6 +8429,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_e_ostime" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_ebcdic" => [ "libcrypto", "libssl" @@ -7351,6 +8469,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_hpke" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_http" => [ "libcrypto", "libssl" @@ -7359,6 +8481,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_indicator" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_kdf" => [ "libcrypto", "libssl" @@ -7379,6 +8505,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_ml_kem" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_modes" => [ "libcrypto", "libssl" @@ -7419,6 +8549,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_quic" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_rand" => [ "libcrypto", "libssl" @@ -7475,6 +8609,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_thread" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_tls1" => [ "libcrypto", "libssl" @@ -7495,10 +8633,23 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/byteorder_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], + "test/ca_internals_test" => [ + "libssl", + "test/libtestutil.a" + ], "test/casttest" => [ "libcrypto", "test/libtestutil.a" ], + "test/cert_comp_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], "test/chacha_internal_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -7612,7 +8763,11 @@ our %unified_info = ( "libssl", "test/libtestutil.a" ], - "test/defltfips_test" => [ + "test/decoder_propq_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], + "test/defltfips_test" => [ "libcrypto", "test/libtestutil.a" ], @@ -7668,6 +8823,8 @@ our %unified_info = ( ], "test/endecode_test" => [ "libcrypto.a", + "providers/libcommon.a", + "providers/liblegacy.a", "test/libtestutil.a" ], "test/endecoder_legacy_test" => [ @@ -7711,6 +8868,10 @@ our %unified_info = ( "test/evp_pkey_ctx_new_from_name" => [ "libcrypto" ], + "test/evp_pkey_dhkem_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/evp_pkey_dparams_test" => [ "libcrypto", "test/libtestutil.a" @@ -7719,10 +8880,18 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/evp_skey_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/evp_test" => [ "libcrypto", "test/libtestutil.a" ], + "test/evp_xof_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/exdatatest" => [ "libcrypto", "test/libtestutil.a" @@ -7761,6 +8930,10 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/hpke_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/http_test" => [ "libcrypto", "test/libtestutil.a" @@ -7773,17 +8946,25 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/json_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], "test/keymgmt_internal_test" => [ "libcrypto.a", "test/libtestutil.a" ], "test/lhash_test" => [ - "libcrypto", + "libcrypto.a", "test/libtestutil.a" ], "test/libtestutil.a" => [ "libcrypto" ], + "test/list_test" => [ + "test/libtestutil.a" + ], "test/localetest" => [ "libcrypto", "test/libtestutil.a" @@ -7796,10 +8977,26 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/membio_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/memleaktest" => [ "libcrypto", "test/libtestutil.a" ], + "test/ml_dsa_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], + "test/ml_kem_evp_extra_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], + "test/ml_kem_internal_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/modes_internal_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -7824,6 +9021,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/pairwise_fail_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/param_build_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -7856,6 +9057,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/pkcs12_api_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/pkcs12_format_test" => [ "libcrypto", "test/libtestutil.a" @@ -7876,6 +9081,11 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/priority_queue_test" => [ + "libcrypto", + "libssl.a", + "test/libtestutil.a" + ], "test/property_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -7888,6 +9098,10 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/provider_default_search_path_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/provider_fallback_test" => [ "libcrypto", "test/libtestutil.a" @@ -7912,12 +9126,122 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/quic_ackm_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_cc_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_cfq_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_client_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_fc_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_fifd_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_lcidm_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_multistream_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_newcid_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_qlog_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_radix_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_rcidm_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_record_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_srt_gen_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_srtm_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_stream_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_tserver_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_txp_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_txpim_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_wire_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quicapitest" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quicfaultstest" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], "test/rand_status_test" => [ "libcrypto", "test/libtestutil.a" ], "test/rand_test" => [ - "libcrypto", + "libcrypto.a", "test/libtestutil.a" ], "test/rc2test" => [ @@ -7932,7 +9256,7 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], - "test/rdrand_sanitytest" => [ + "test/rdcpu_sanitytest" => [ "libcrypto.a", "test/libtestutil.a" ], @@ -7941,6 +9265,11 @@ our %unified_info = ( "libssl", "test/libtestutil.a" ], + "test/rpktest" => [ + "libcrypto", + "libssl", + "test/libtestutil.a" + ], "test/rsa_mp_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -7953,10 +9282,18 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], - "test/sanitytest" => [ + "test/rsa_x931_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], + "test/safe_math_test" => [ "libcrypto", "test/libtestutil.a" ], + "test/sanitytest" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/secmemtest" => [ "libcrypto", "test/libtestutil.a" @@ -7974,6 +9311,10 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/slh_dsa_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/sm2_internal_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -8003,6 +9344,11 @@ our %unified_info = ( "libssl", "test/libtestutil.a" ], + "test/ssl_handshake_rtt_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], "test/ssl_old_test" => [ "libcrypto.a", "libssl.a", @@ -8019,8 +9365,8 @@ our %unified_info = ( "test/libtestutil.a" ], "test/sslapitest" => [ - "libcrypto", - "libssl", + "libcrypto.a", + "libssl.a", "test/libtestutil.a" ], "test/sslbuffertest" => [ @@ -8037,6 +9383,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/strtoultest" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/sysdefaulttest" => [ "libcrypto", "libssl", @@ -8046,8 +9396,12 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/threadpool_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/threadstest" => [ - "libcrypto", + "libcrypto.a", "test/libtestutil.a" ], "test/threadstest_fips" => [ @@ -8058,6 +9412,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/time_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/tls13ccstest" => [ "libcrypto", "libssl", @@ -8068,6 +9426,11 @@ our %unified_info = ( "libssl.a", "test/libtestutil.a" ], + "test/tls13groupselection_test" => [ + "libcrypto", + "libssl", + "test/libtestutil.a" + ], "test/trace_api_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -8105,6 +9468,10 @@ our %unified_info = ( "libssl.a", "test/libtestutil.a" ], + "test/x509_acert_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/x509_check_cert_pkey_test" => [ "libcrypto", "test/libtestutil.a" @@ -8117,6 +9484,18 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/x509_load_cert_file_test" => [ + "libcrypto", + "test/libtestutil.a" + ], + "test/x509_req_test" => [ + "libcrypto", + "test/libtestutil.a" + ], + "test/x509_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/x509_time_test" => [ "libcrypto", "test/libtestutil.a" @@ -8131,9 +9510,13 @@ our %unified_info = ( }, "dirinfo" => { "apps" => { + "deps" => [ + "apps/ca_internals_test-bin-ca.o" + ], "products" => { "bin" => [ - "apps/openssl" + "apps/openssl", + "test/ca_internals_test" ], "script" => [ "apps/CA.pl", @@ -8144,6 +9527,14 @@ our %unified_info = ( "apps/lib" => { "deps" => [ "apps/lib/openssl-bin-cmp_mock_srv.o", + "apps/lib/ca_internals_test-bin-app_libctx.o", + "apps/lib/ca_internals_test-bin-app_provider.o", + "apps/lib/ca_internals_test-bin-app_rand.o", + "apps/lib/ca_internals_test-bin-app_x509.o", + "apps/lib/ca_internals_test-bin-apps.o", + "apps/lib/ca_internals_test-bin-apps_ui.o", + "apps/lib/ca_internals_test-bin-engine.o", + "apps/lib/ca_internals_test-bin-fmt.o", "apps/lib/cmp_client_test-bin-cmp_mock_srv.o", "apps/lib/uitest-bin-apps_ui.o", "apps/lib/libapps-lib-app_libctx.o", @@ -8152,12 +9543,14 @@ our %unified_info = ( "apps/lib/libapps-lib-app_rand.o", "apps/lib/libapps-lib-app_x509.o", "apps/lib/libapps-lib-apps.o", + "apps/lib/libapps-lib-apps_opt_printf.o", "apps/lib/libapps-lib-apps_ui.o", "apps/lib/libapps-lib-columns.o", "apps/lib/libapps-lib-engine.o", "apps/lib/libapps-lib-engine_loader.o", "apps/lib/libapps-lib-fmt.o", "apps/lib/libapps-lib-http_server.o", + "apps/lib/libapps-lib-log.o", "apps/lib/libapps-lib-names.o", "apps/lib/libapps-lib-opt.o", "apps/lib/libapps-lib-s_cb.o", @@ -8168,6 +9561,7 @@ our %unified_info = ( "products" => { "bin" => [ "apps/openssl", + "test/ca_internals_test", "test/cmp_client_test", "test/uitest" ], @@ -8179,8 +9573,12 @@ our %unified_info = ( }, "crypto" => { "deps" => [ + "crypto/asn1_time_test-bin-ctype.o", + "crypto/ca_internals_test-bin-ctype.o", + "crypto/packettest-bin-quic_vlint.o", "crypto/libcrypto-lib-asn1_dsa.o", "crypto/libcrypto-lib-bsearch.o", + "crypto/libcrypto-lib-comp_methods.o", "crypto/libcrypto-lib-context.o", "crypto/libcrypto-lib-core_algorithm.o", "crypto/libcrypto-lib-core_fetch.o", @@ -8190,10 +9588,13 @@ our %unified_info = ( "crypto/libcrypto-lib-cryptlib.o", "crypto/libcrypto-lib-ctype.o", "crypto/libcrypto-lib-cversion.o", + "crypto/libcrypto-lib-defaults.o", "crypto/libcrypto-lib-der_writer.o", + "crypto/libcrypto-lib-deterministic_nonce.o", "crypto/libcrypto-lib-ebcdic.o", "crypto/libcrypto-lib-ex_data.o", "crypto/libcrypto-lib-getenv.o", + "crypto/libcrypto-lib-indicator_core.o", "crypto/libcrypto-lib-info.o", "crypto/libcrypto-lib-init.o", "crypto/libcrypto-lib-initthread.o", @@ -8211,6 +9612,7 @@ our %unified_info = ( "crypto/libcrypto-lib-params.o", "crypto/libcrypto-lib-params_dup.o", "crypto/libcrypto-lib-params_from_text.o", + "crypto/libcrypto-lib-params_idx.o", "crypto/libcrypto-lib-passphrase.o", "crypto/libcrypto-lib-provider.o", "crypto/libcrypto-lib-provider_child.o", @@ -8218,12 +9620,16 @@ our %unified_info = ( "crypto/libcrypto-lib-provider_core.o", "crypto/libcrypto-lib-provider_predefined.o", "crypto/libcrypto-lib-punycode.o", + "crypto/libcrypto-lib-quic_vlint.o", "crypto/libcrypto-lib-self_test_core.o", + "crypto/libcrypto-lib-sleep.o", "crypto/libcrypto-lib-sparse_array.o", + "crypto/libcrypto-lib-ssl_err.o", "crypto/libcrypto-lib-threads_lib.o", "crypto/libcrypto-lib-threads_none.o", "crypto/libcrypto-lib-threads_pthread.o", "crypto/libcrypto-lib-threads_win.o", + "crypto/libcrypto-lib-time.o", "crypto/libcrypto-lib-trace.o", "crypto/libcrypto-lib-uid.o", "crypto/libfips-lib-asn1_dsa.o", @@ -8246,6 +9652,7 @@ our %unified_info = ( "crypto/libfips-lib-params.o", "crypto/libfips-lib-params_dup.o", "crypto/libfips-lib-params_from_text.o", + "crypto/libfips-lib-params_idx.o", "crypto/libfips-lib-provider_core.o", "crypto/libfips-lib-provider_predefined.o", "crypto/libfips-lib-self_test_core.o", @@ -8253,9 +9660,15 @@ our %unified_info = ( "crypto/libfips-lib-threads_lib.o", "crypto/libfips-lib-threads_none.o", "crypto/libfips-lib-threads_pthread.o", - "crypto/libfips-lib-threads_win.o" + "crypto/libfips-lib-threads_win.o", + "crypto/libfips-lib-time.o" ], "products" => { + "bin" => [ + "test/asn1_time_test", + "test/ca_internals_test", + "test/packettest" + ], "lib" => [ "libcrypto", "providers/libfips.a" @@ -8296,6 +9709,8 @@ our %unified_info = ( }, "crypto/asn1" => { "deps" => [ + "crypto/asn1/asn1_time_test-bin-a_time.o", + "crypto/asn1/ca_internals_test-bin-a_time.o", "crypto/asn1/libcrypto-lib-a_bitstr.o", "crypto/asn1/libcrypto-lib-a_d2i_fp.o", "crypto/asn1/libcrypto-lib-a_digest.o", @@ -8362,6 +9777,10 @@ our %unified_info = ( "crypto/asn1/libcrypto-lib-x_val.o" ], "products" => { + "bin" => [ + "test/asn1_time_test", + "test/ca_internals_test" + ], "lib" => [ "libcrypto" ] @@ -8427,6 +9846,7 @@ our %unified_info = ( "crypto/bio/libcrypto-lib-bss_conn.o", "crypto/bio/libcrypto-lib-bss_core.o", "crypto/bio/libcrypto-lib-bss_dgram.o", + "crypto/bio/libcrypto-lib-bss_dgram_pair.o", "crypto/bio/libcrypto-lib-bss_fd.o", "crypto/bio/libcrypto-lib-bss_file.o", "crypto/bio/libcrypto-lib-bss_log.o", @@ -8583,6 +10003,7 @@ our %unified_info = ( "crypto/cmp/libcrypto-lib-cmp_client.o", "crypto/cmp/libcrypto-lib-cmp_ctx.o", "crypto/cmp/libcrypto-lib-cmp_err.o", + "crypto/cmp/libcrypto-lib-cmp_genm.o", "crypto/cmp/libcrypto-lib-cmp_hdr.o", "crypto/cmp/libcrypto-lib-cmp_http.o", "crypto/cmp/libcrypto-lib-cmp_msg.o", @@ -8950,7 +10371,9 @@ our %unified_info = ( "crypto/err/libcrypto-lib-err_all.o", "crypto/err/libcrypto-lib-err_all_legacy.o", "crypto/err/libcrypto-lib-err_blocks.o", - "crypto/err/libcrypto-lib-err_prn.o" + "crypto/err/libcrypto-lib-err_mark.o", + "crypto/err/libcrypto-lib-err_prn.o", + "crypto/err/libcrypto-lib-err_save.o" ], "products" => { "lib" => [ @@ -9051,7 +10474,9 @@ our %unified_info = ( "crypto/evp/libcrypto-lib-pmeth_check.o", "crypto/evp/libcrypto-lib-pmeth_gn.o", "crypto/evp/libcrypto-lib-pmeth_lib.o", + "crypto/evp/libcrypto-lib-s_lib.o", "crypto/evp/libcrypto-lib-signature.o", + "crypto/evp/libcrypto-lib-skeymgmt_meth.o", "crypto/evp/libfips-lib-asymcipher.o", "crypto/evp/libfips-lib-dh_support.o", "crypto/evp/libfips-lib-digest.o", @@ -9067,14 +10492,15 @@ our %unified_info = ( "crypto/evp/libfips-lib-kem.o", "crypto/evp/libfips-lib-keymgmt_lib.o", "crypto/evp/libfips-lib-keymgmt_meth.o", - "crypto/evp/libfips-lib-m_sigver.o", "crypto/evp/libfips-lib-mac_lib.o", "crypto/evp/libfips-lib-mac_meth.o", "crypto/evp/libfips-lib-p_lib.o", "crypto/evp/libfips-lib-pmeth_check.o", "crypto/evp/libfips-lib-pmeth_gn.o", "crypto/evp/libfips-lib-pmeth_lib.o", - "crypto/evp/libfips-lib-signature.o" + "crypto/evp/libfips-lib-s_lib.o", + "crypto/evp/libfips-lib-signature.o", + "crypto/evp/libfips-lib-skeymgmt_meth.o" ], "products" => { "lib" => [ @@ -9107,6 +10533,20 @@ our %unified_info = ( ] } }, + "crypto/hashtable" => { + "deps" => [ + "crypto/hashtable/libcrypto-lib-hashfunc.o", + "crypto/hashtable/libcrypto-lib-hashtable.o", + "crypto/hashtable/libfips-lib-hashfunc.o", + "crypto/hashtable/libfips-lib-hashtable.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, "crypto/hmac" => { "deps" => [ "crypto/hmac/libcrypto-lib-hmac.o", @@ -9119,6 +10559,17 @@ our %unified_info = ( ] } }, + "crypto/hpke" => { + "deps" => [ + "crypto/hpke/libcrypto-lib-hpke.o", + "crypto/hpke/libcrypto-lib-hpke_util.o" + ], + "products" => { + "lib" => [ + "libcrypto" + ] + } + }, "crypto/http" => { "deps" => [ "crypto/http/libcrypto-lib-http_client.o", @@ -9202,6 +10653,44 @@ our %unified_info = ( ] } }, + "crypto/ml_dsa" => { + "deps" => [ + "crypto/ml_dsa/libcrypto-lib-ml_dsa_encoders.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key_compress.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_matrix.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_ntt.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_params.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sample.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sign.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_encoders.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_key.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_key_compress.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_matrix.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_ntt.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_params.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_sample.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_sign.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, + "crypto/ml_kem" => { + "deps" => [ + "crypto/ml_kem/libcrypto-lib-ml_kem.o", + "crypto/ml_kem/libfips-lib-ml_kem.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, "crypto/modes" => { "deps" => [ "crypto/modes/libcrypto-lib-cbc128.o", @@ -9215,6 +10704,7 @@ our %unified_info = ( "crypto/modes/libcrypto-lib-siv128.o", "crypto/modes/libcrypto-lib-wrap128.o", "crypto/modes/libcrypto-lib-xts128.o", + "crypto/modes/libcrypto-lib-xts128gb.o", "crypto/modes/libfips-lib-cbc128.o", "crypto/modes/libfips-lib-ccm128.o", "crypto/modes/libfips-lib-cfb128.o", @@ -9222,7 +10712,8 @@ our %unified_info = ( "crypto/modes/libfips-lib-gcm128.o", "crypto/modes/libfips-lib-ofb128.o", "crypto/modes/libfips-lib-wrap128.o", - "crypto/modes/libfips-lib-xts128.o" + "crypto/modes/libfips-lib-xts128.o", + "crypto/modes/libfips-lib-xts128gb.o" ], "products" => { "lib" => [ @@ -9365,6 +10856,7 @@ our %unified_info = ( "crypto/rand/libcrypto-lib-rand_lib.o", "crypto/rand/libcrypto-lib-rand_meth.o", "crypto/rand/libcrypto-lib-rand_pool.o", + "crypto/rand/libcrypto-lib-rand_uniform.o", "crypto/rand/libcrypto-lib-randfile.o", "crypto/rand/libfips-lib-rand_lib.o" ], @@ -9509,6 +11001,36 @@ our %unified_info = ( ] } }, + "crypto/slh_dsa" => { + "deps" => [ + "crypto/slh_dsa/libcrypto-lib-slh_adrs.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa_hash_ctx.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa_key.o", + "crypto/slh_dsa/libcrypto-lib-slh_fors.o", + "crypto/slh_dsa/libcrypto-lib-slh_hash.o", + "crypto/slh_dsa/libcrypto-lib-slh_hypertree.o", + "crypto/slh_dsa/libcrypto-lib-slh_params.o", + "crypto/slh_dsa/libcrypto-lib-slh_wots.o", + "crypto/slh_dsa/libcrypto-lib-slh_xmss.o", + "crypto/slh_dsa/libfips-lib-slh_adrs.o", + "crypto/slh_dsa/libfips-lib-slh_dsa.o", + "crypto/slh_dsa/libfips-lib-slh_dsa_hash_ctx.o", + "crypto/slh_dsa/libfips-lib-slh_dsa_key.o", + "crypto/slh_dsa/libfips-lib-slh_fors.o", + "crypto/slh_dsa/libfips-lib-slh_hash.o", + "crypto/slh_dsa/libfips-lib-slh_hypertree.o", + "crypto/slh_dsa/libfips-lib-slh_params.o", + "crypto/slh_dsa/libfips-lib-slh_wots.o", + "crypto/slh_dsa/libfips-lib-slh_xmss.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, "crypto/sm2" => { "deps" => [ "crypto/sm2/libcrypto-lib-sm2_crypt.o", @@ -9582,6 +11104,38 @@ our %unified_info = ( ] } }, + "crypto/thread" => { + "deps" => [ + "crypto/thread/libcrypto-lib-api.o", + "crypto/thread/libcrypto-lib-arch.o", + "crypto/thread/libcrypto-lib-internal.o", + "crypto/thread/libfips-lib-api.o", + "crypto/thread/libfips-lib-arch.o", + "crypto/thread/libfips-lib-internal.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, + "crypto/thread/arch" => { + "deps" => [ + "crypto/thread/arch/libcrypto-lib-thread_none.o", + "crypto/thread/arch/libcrypto-lib-thread_posix.o", + "crypto/thread/arch/libcrypto-lib-thread_win.o", + "crypto/thread/arch/libfips-lib-thread_none.o", + "crypto/thread/arch/libfips-lib-thread_posix.o", + "crypto/thread/arch/libfips-lib-thread_win.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, "crypto/ts" => { "deps" => [ "crypto/ts/libcrypto-lib-ts_asn1.o", @@ -9648,14 +11202,22 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-pcy_map.o", "crypto/x509/libcrypto-lib-pcy_node.o", "crypto/x509/libcrypto-lib-pcy_tree.o", + "crypto/x509/libcrypto-lib-t_acert.o", "crypto/x509/libcrypto-lib-t_crl.o", "crypto/x509/libcrypto-lib-t_req.o", "crypto/x509/libcrypto-lib-t_x509.o", + "crypto/x509/libcrypto-lib-v3_aaa.o", + "crypto/x509/libcrypto-lib-v3_ac_tgt.o", "crypto/x509/libcrypto-lib-v3_addr.o", "crypto/x509/libcrypto-lib-v3_admis.o", "crypto/x509/libcrypto-lib-v3_akeya.o", "crypto/x509/libcrypto-lib-v3_akid.o", "crypto/x509/libcrypto-lib-v3_asid.o", + "crypto/x509/libcrypto-lib-v3_attrdesc.o", + "crypto/x509/libcrypto-lib-v3_attrmap.o", + "crypto/x509/libcrypto-lib-v3_audit_id.o", + "crypto/x509/libcrypto-lib-v3_authattid.o", + "crypto/x509/libcrypto-lib-v3_battcons.o", "crypto/x509/libcrypto-lib-v3_bcons.o", "crypto/x509/libcrypto-lib-v3_bitst.o", "crypto/x509/libcrypto-lib-v3_conf.o", @@ -9664,12 +11226,17 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_enum.o", "crypto/x509/libcrypto-lib-v3_extku.o", "crypto/x509/libcrypto-lib-v3_genn.o", + "crypto/x509/libcrypto-lib-v3_group_ac.o", "crypto/x509/libcrypto-lib-v3_ia5.o", + "crypto/x509/libcrypto-lib-v3_ind_iss.o", "crypto/x509/libcrypto-lib-v3_info.o", "crypto/x509/libcrypto-lib-v3_int.o", + "crypto/x509/libcrypto-lib-v3_iobo.o", "crypto/x509/libcrypto-lib-v3_ist.o", "crypto/x509/libcrypto-lib-v3_lib.o", "crypto/x509/libcrypto-lib-v3_ncons.o", + "crypto/x509/libcrypto-lib-v3_no_ass.o", + "crypto/x509/libcrypto-lib-v3_no_rev_avail.o", "crypto/x509/libcrypto-lib-v3_pci.o", "crypto/x509/libcrypto-lib-v3_pcia.o", "crypto/x509/libcrypto-lib-v3_pcons.o", @@ -9677,13 +11244,20 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_pmaps.o", "crypto/x509/libcrypto-lib-v3_prn.o", "crypto/x509/libcrypto-lib-v3_purp.o", + "crypto/x509/libcrypto-lib-v3_rolespec.o", "crypto/x509/libcrypto-lib-v3_san.o", + "crypto/x509/libcrypto-lib-v3_sda.o", + "crypto/x509/libcrypto-lib-v3_single_use.o", "crypto/x509/libcrypto-lib-v3_skid.o", + "crypto/x509/libcrypto-lib-v3_soa_id.o", "crypto/x509/libcrypto-lib-v3_sxnet.o", + "crypto/x509/libcrypto-lib-v3_timespec.o", "crypto/x509/libcrypto-lib-v3_tlsf.o", + "crypto/x509/libcrypto-lib-v3_usernotice.o", "crypto/x509/libcrypto-lib-v3_utf8.o", "crypto/x509/libcrypto-lib-v3_utl.o", "crypto/x509/libcrypto-lib-v3err.o", + "crypto/x509/libcrypto-lib-x509_acert.o", "crypto/x509/libcrypto-lib-x509_att.o", "crypto/x509/libcrypto-lib-x509_cmp.o", "crypto/x509/libcrypto-lib-x509_d2.o", @@ -9701,6 +11275,7 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x509_v3.o", "crypto/x509/libcrypto-lib-x509_vfy.o", "crypto/x509/libcrypto-lib-x509_vpm.o", + "crypto/x509/libcrypto-lib-x509aset.o", "crypto/x509/libcrypto-lib-x509cset.o", "crypto/x509/libcrypto-lib-x509name.o", "crypto/x509/libcrypto-lib-x509rset.o", @@ -9710,6 +11285,7 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x_attrib.o", "crypto/x509/libcrypto-lib-x_crl.o", "crypto/x509/libcrypto-lib-x_exten.o", + "crypto/x509/libcrypto-lib-x_ietfatt.o", "crypto/x509/libcrypto-lib-x_name.o", "crypto/x509/libcrypto-lib-x_pubkey.o", "crypto/x509/libcrypto-lib-x_req.o", @@ -9736,6 +11312,7 @@ our %unified_info = ( "fuzz" => { "products" => { "bin" => [ + "fuzz/acert-test", "fuzz/asn1-test", "fuzz/asn1parse-test", "fuzz/bignum-test", @@ -9746,13 +11323,31 @@ our %unified_info = ( "fuzz/conf-test", "fuzz/crl-test", "fuzz/ct-test", + "fuzz/decoder-test", + "fuzz/dtlsclient-test", + "fuzz/dtlsserver-test", + "fuzz/hashtable-test", + "fuzz/ml-dsa-test", + "fuzz/ml-kem-test", + "fuzz/pem-test", + "fuzz/provider-test", + "fuzz/punycode-test", + "fuzz/quic-client-test", + "fuzz/quic-lcidm-test", + "fuzz/quic-rcidm-test", + "fuzz/quic-server-test", + "fuzz/quic-srtm-test", "fuzz/server-test", + "fuzz/slh-dsa-test", + "fuzz/smime-test", + "fuzz/v3name-test", "fuzz/x509-test" ] } }, "providers" => { "deps" => [ + "providers/endecode_test-bin-legacyprov.o", "providers/evp_extra_test-bin-legacyprov.o", "providers/libcrypto-lib-baseprov.o", "providers/libcrypto-lib-defltprov.o", @@ -9762,6 +11357,7 @@ our %unified_info = ( ], "products" => { "bin" => [ + "test/endecode_test", "test/evp_extra_test" ], "dso" => [ @@ -9813,8 +11409,12 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ec_sig.o", "providers/common/der/libcommon-lib-der_ecx_gen.o", "providers/common/der/libcommon-lib-der_ecx_key.o", + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o", + "providers/common/der/libcommon-lib-der_ml_dsa_key.o", "providers/common/der/libcommon-lib-der_rsa_gen.o", "providers/common/der/libcommon-lib-der_rsa_key.o", + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o", + "providers/common/der/libcommon-lib-der_slh_dsa_key.o", "providers/common/der/libcommon-lib-der_wrap_gen.o", "providers/common/der/libdefault-lib-der_rsa_sig.o", "providers/common/der/libdefault-lib-der_sm2_gen.o", @@ -9833,6 +11433,7 @@ our %unified_info = ( "providers/fips" => { "deps" => [ "providers/fips/fips-dso-fips_entry.o", + "providers/fips/libfips-lib-fipsindicator.o", "providers/fips/libfips-lib-fipsprov.o", "providers/fips/libfips-lib-self_test.o", "providers/fips/libfips-lib-self_test_kats.o" @@ -9876,6 +11477,9 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_aes_ccm_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_polyval.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_ocb.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_ocb_hw.o", @@ -9900,7 +11504,13 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_cts.o", "providers/implementations/ciphers/libdefault-lib-cipher_null.o", "providers/implementations/ciphers/libdefault-lib-cipher_sm4.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_sm4_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes_common.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes_default.o", @@ -9997,7 +11607,10 @@ our %unified_info = ( "providers/implementations/encode_decode/libdefault-lib-encode_key2blob.o", "providers/implementations/encode_decode/libdefault-lib-encode_key2ms.o", "providers/implementations/encode_decode/libdefault-lib-encode_key2text.o", - "providers/implementations/encode_decode/libdefault-lib-endecoder_common.o" + "providers/implementations/encode_decode/libdefault-lib-endecoder_common.o", + "providers/implementations/encode_decode/libdefault-lib-ml_common_codecs.o", + "providers/implementations/encode_decode/libdefault-lib-ml_dsa_codecs.o", + "providers/implementations/encode_decode/libdefault-lib-ml_kem_codecs.o" ], "products" => { "lib" => [ @@ -10025,7 +11638,9 @@ our %unified_info = ( }, "providers/implementations/kdfs" => { "deps" => [ + "providers/implementations/kdfs/libdefault-lib-argon2.o", "providers/implementations/kdfs/libdefault-lib-hkdf.o", + "providers/implementations/kdfs/libdefault-lib-hmacdrbg_kdf.o", "providers/implementations/kdfs/libdefault-lib-kbkdf.o", "providers/implementations/kdfs/libdefault-lib-krb5kdf.o", "providers/implementations/kdfs/libdefault-lib-pbkdf2.o", @@ -10044,7 +11659,8 @@ our %unified_info = ( "providers/implementations/kdfs/libfips-lib-sskdf.o", "providers/implementations/kdfs/libfips-lib-tls1_prf.o", "providers/implementations/kdfs/libfips-lib-x942kdf.o", - "providers/implementations/kdfs/liblegacy-lib-pbkdf1.o" + "providers/implementations/kdfs/liblegacy-lib-pbkdf1.o", + "providers/implementations/kdfs/liblegacy-lib-pvkkdf.o" ], "products" => { "lib" => [ @@ -10056,13 +11672,22 @@ our %unified_info = ( }, "providers/implementations/kem" => { "deps" => [ + "providers/implementations/kem/libdefault-lib-ec_kem.o", + "providers/implementations/kem/libdefault-lib-ecx_kem.o", + "providers/implementations/kem/libdefault-lib-kem_util.o", + "providers/implementations/kem/libdefault-lib-ml_kem_kem.o", + "providers/implementations/kem/libdefault-lib-mlx_kem.o", "providers/implementations/kem/libdefault-lib-rsa_kem.o", - "providers/implementations/kem/libfips-lib-rsa_kem.o" + "providers/implementations/kem/libfips-lib-ml_kem_kem.o", + "providers/implementations/kem/libfips-lib-mlx_kem.o", + "providers/implementations/kem/libfips-lib-rsa_kem.o", + "providers/implementations/kem/libtemplate-lib-template_kem.o" ], "products" => { "lib" => [ "providers/libdefault.a", - "providers/libfips.a" + "providers/libfips.a", + "providers/libtemplate.a" ] } }, @@ -10074,19 +11699,29 @@ our %unified_info = ( "providers/implementations/keymgmt/libdefault-lib-ecx_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-kdf_legacy_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-mac_legacy_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-ml_dsa_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-ml_kem_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-mlx_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-rsa_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-slh_dsa_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-dh_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-dsa_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-ec_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-ecx_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-kdf_legacy_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-mac_legacy_kmgmt.o", - "providers/implementations/keymgmt/libfips-lib-rsa_kmgmt.o" + "providers/implementations/keymgmt/libfips-lib-ml_dsa_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-ml_kem_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-mlx_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-rsa_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-slh_dsa_kmgmt.o", + "providers/implementations/keymgmt/libtemplate-lib-template_kmgmt.o" ], "products" => { "lib" => [ "providers/libdefault.a", - "providers/libfips.a" + "providers/libfips.a", + "providers/libtemplate.a" ] } }, @@ -10114,18 +11749,18 @@ our %unified_info = ( }, "providers/implementations/rands" => { "deps" => [ - "providers/implementations/rands/libdefault-lib-crngt.o", "providers/implementations/rands/libdefault-lib-drbg.o", "providers/implementations/rands/libdefault-lib-drbg_ctr.o", "providers/implementations/rands/libdefault-lib-drbg_hash.o", "providers/implementations/rands/libdefault-lib-drbg_hmac.o", "providers/implementations/rands/libdefault-lib-seed_src.o", + "providers/implementations/rands/libdefault-lib-seed_src_jitter.o", "providers/implementations/rands/libdefault-lib-test_rng.o", - "providers/implementations/rands/libfips-lib-crngt.o", "providers/implementations/rands/libfips-lib-drbg.o", "providers/implementations/rands/libfips-lib-drbg_ctr.o", "providers/implementations/rands/libfips-lib-drbg_hash.o", "providers/implementations/rands/libfips-lib-drbg_hmac.o", + "providers/implementations/rands/libfips-lib-fips_crng_test.o", "providers/implementations/rands/libfips-lib-test_rng.o" ], "products" => { @@ -10154,13 +11789,31 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-ecdsa_sig.o", "providers/implementations/signature/libdefault-lib-eddsa_sig.o", "providers/implementations/signature/libdefault-lib-mac_legacy_sig.o", + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o", "providers/implementations/signature/libdefault-lib-rsa_sig.o", + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o", "providers/implementations/signature/libdefault-lib-sm2_sig.o", "providers/implementations/signature/libfips-lib-dsa_sig.o", "providers/implementations/signature/libfips-lib-ecdsa_sig.o", "providers/implementations/signature/libfips-lib-eddsa_sig.o", "providers/implementations/signature/libfips-lib-mac_legacy_sig.o", - "providers/implementations/signature/libfips-lib-rsa_sig.o" + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o", + "providers/implementations/signature/libfips-lib-rsa_sig.o", + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o" + ], + "products" => { + "lib" => [ + "providers/libdefault.a", + "providers/libfips.a" + ] + } + }, + "providers/implementations/skeymgmt" => { + "deps" => [ + "providers/implementations/skeymgmt/libdefault-lib-aes_skmgmt.o", + "providers/implementations/skeymgmt/libdefault-lib-generic.o", + "providers/implementations/skeymgmt/libfips-lib-aes_skmgmt.o", + "providers/implementations/skeymgmt/libfips-lib-generic.o" ], "products" => { "lib" => [ @@ -10188,14 +11841,15 @@ our %unified_info = ( "ssl/libssl-lib-d1_srtp.o", "ssl/libssl-lib-methods.o", "ssl/libssl-lib-pqueue.o", + "ssl/libssl-lib-priority_queue.o", "ssl/libssl-lib-s3_enc.o", "ssl/libssl-lib-s3_lib.o", "ssl/libssl-lib-s3_msg.o", "ssl/libssl-lib-ssl_asn1.o", "ssl/libssl-lib-ssl_cert.o", + "ssl/libssl-lib-ssl_cert_comp.o", "ssl/libssl-lib-ssl_ciph.o", "ssl/libssl-lib-ssl_conf.o", - "ssl/libssl-lib-ssl_err.o", "ssl/libssl-lib-ssl_err_legacy.o", "ssl/libssl-lib-ssl_init.o", "ssl/libssl-lib-ssl_lib.o", @@ -10211,32 +11865,107 @@ our %unified_info = ( "ssl/libssl-lib-t1_trce.o", "ssl/libssl-lib-tls13_enc.o", "ssl/libssl-lib-tls_depr.o", - "ssl/libssl-lib-tls_srp.o", - "ssl/libdefault-lib-s3_cbc.o", - "ssl/libfips-lib-s3_cbc.o" + "ssl/libssl-lib-tls_srp.o" ], "products" => { "lib" => [ - "libssl", - "providers/libdefault.a", - "providers/libfips.a" + "libssl" + ] + } + }, + "ssl/quic" => { + "deps" => [ + "ssl/quic/libssl-lib-cc_newreno.o", + "ssl/quic/libssl-lib-json_enc.o", + "ssl/quic/libssl-lib-qlog.o", + "ssl/quic/libssl-lib-qlog_event_helpers.o", + "ssl/quic/libssl-lib-quic_ackm.o", + "ssl/quic/libssl-lib-quic_cfq.o", + "ssl/quic/libssl-lib-quic_channel.o", + "ssl/quic/libssl-lib-quic_demux.o", + "ssl/quic/libssl-lib-quic_engine.o", + "ssl/quic/libssl-lib-quic_fc.o", + "ssl/quic/libssl-lib-quic_fifd.o", + "ssl/quic/libssl-lib-quic_impl.o", + "ssl/quic/libssl-lib-quic_lcidm.o", + "ssl/quic/libssl-lib-quic_method.o", + "ssl/quic/libssl-lib-quic_obj.o", + "ssl/quic/libssl-lib-quic_port.o", + "ssl/quic/libssl-lib-quic_rcidm.o", + "ssl/quic/libssl-lib-quic_reactor.o", + "ssl/quic/libssl-lib-quic_reactor_wait_ctx.o", + "ssl/quic/libssl-lib-quic_record_rx.o", + "ssl/quic/libssl-lib-quic_record_shared.o", + "ssl/quic/libssl-lib-quic_record_tx.o", + "ssl/quic/libssl-lib-quic_record_util.o", + "ssl/quic/libssl-lib-quic_rstream.o", + "ssl/quic/libssl-lib-quic_rx_depack.o", + "ssl/quic/libssl-lib-quic_sf_list.o", + "ssl/quic/libssl-lib-quic_srt_gen.o", + "ssl/quic/libssl-lib-quic_srtm.o", + "ssl/quic/libssl-lib-quic_sstream.o", + "ssl/quic/libssl-lib-quic_statm.o", + "ssl/quic/libssl-lib-quic_stream_map.o", + "ssl/quic/libssl-lib-quic_thread_assist.o", + "ssl/quic/libssl-lib-quic_tls.o", + "ssl/quic/libssl-lib-quic_tls_api.o", + "ssl/quic/libssl-lib-quic_trace.o", + "ssl/quic/libssl-lib-quic_tserver.o", + "ssl/quic/libssl-lib-quic_txp.o", + "ssl/quic/libssl-lib-quic_txpim.o", + "ssl/quic/libssl-lib-quic_types.o", + "ssl/quic/libssl-lib-quic_wire.o", + "ssl/quic/libssl-lib-quic_wire_pkt.o", + "ssl/quic/libssl-lib-uint_set.o" + ], + "products" => { + "lib" => [ + "libssl" ] } }, "ssl/record" => { "deps" => [ - "ssl/record/libssl-lib-dtls1_bitmap.o", "ssl/record/libssl-lib-rec_layer_d1.o", - "ssl/record/libssl-lib-rec_layer_s3.o", - "ssl/record/libssl-lib-ssl3_buffer.o", - "ssl/record/libssl-lib-ssl3_record.o", - "ssl/record/libssl-lib-ssl3_record_tls13.o", - "ssl/record/libcommon-lib-tls_pad.o" + "ssl/record/libssl-lib-rec_layer_s3.o" + ], + "products" => { + "lib" => [ + "libssl" + ] + } + }, + "ssl/record/methods" => { + "deps" => [ + "ssl/record/methods/libssl-lib-dtls_meth.o", + "ssl/record/methods/libssl-lib-ssl3_meth.o", + "ssl/record/methods/libssl-lib-tls13_meth.o", + "ssl/record/methods/libssl-lib-tls1_meth.o", + "ssl/record/methods/libssl-lib-tls_common.o", + "ssl/record/methods/libssl-lib-tls_multib.o", + "ssl/record/methods/libssl-lib-tlsany_meth.o", + "ssl/record/methods/libcommon-lib-tls_pad.o", + "ssl/record/methods/libdefault-lib-ssl3_cbc.o", + "ssl/record/methods/libfips-lib-ssl3_cbc.o" ], "products" => { "lib" => [ "libssl", - "providers/libcommon.a" + "providers/libcommon.a", + "providers/libdefault.a", + "providers/libfips.a" + ] + } + }, + "ssl/rio" => { + "deps" => [ + "ssl/rio/libssl-lib-poll_builder.o", + "ssl/rio/libssl-lib-poll_immediate.o", + "ssl/rio/libssl-lib-rio_notifier.o" + ], + "products" => { + "lib" => [ + "libssl" ] } }, @@ -10274,9 +12003,40 @@ our %unified_info = ( "test/helpers/dtlstest-bin-ssltestlib.o", "test/helpers/endecode_test-bin-predefined_dhparams.o", "test/helpers/fatalerrtest-bin-ssltestlib.o", + "test/helpers/json_test-bin-noisydgrambio.o", + "test/helpers/json_test-bin-pktsplitbio.o", + "test/helpers/json_test-bin-quictestlib.o", + "test/helpers/json_test-bin-ssltestlib.o", + "test/helpers/pkcs12_api_test-bin-pkcs12.o", "test/helpers/pkcs12_format_test-bin-pkcs12.o", + "test/helpers/quic_multistream_test-bin-noisydgrambio.o", + "test/helpers/quic_multistream_test-bin-pktsplitbio.o", + "test/helpers/quic_multistream_test-bin-quictestlib.o", + "test/helpers/quic_multistream_test-bin-ssltestlib.o", + "test/helpers/quic_newcid_test-bin-noisydgrambio.o", + "test/helpers/quic_newcid_test-bin-pktsplitbio.o", + "test/helpers/quic_newcid_test-bin-quictestlib.o", + "test/helpers/quic_newcid_test-bin-ssltestlib.o", + "test/helpers/quic_radix_test-bin-noisydgrambio.o", + "test/helpers/quic_radix_test-bin-pktsplitbio.o", + "test/helpers/quic_radix_test-bin-quictestlib.o", + "test/helpers/quic_radix_test-bin-ssltestlib.o", + "test/helpers/quic_srt_gen_test-bin-noisydgrambio.o", + "test/helpers/quic_srt_gen_test-bin-pktsplitbio.o", + "test/helpers/quic_srt_gen_test-bin-quictestlib.o", + "test/helpers/quic_srt_gen_test-bin-ssltestlib.o", + "test/helpers/quicapitest-bin-noisydgrambio.o", + "test/helpers/quicapitest-bin-pktsplitbio.o", + "test/helpers/quicapitest-bin-quictestlib.o", + "test/helpers/quicapitest-bin-ssltestlib.o", + "test/helpers/quicfaultstest-bin-noisydgrambio.o", + "test/helpers/quicfaultstest-bin-pktsplitbio.o", + "test/helpers/quicfaultstest-bin-quictestlib.o", + "test/helpers/quicfaultstest-bin-ssltestlib.o", "test/helpers/recordlentest-bin-ssltestlib.o", + "test/helpers/rpktest-bin-ssltestlib.o", "test/helpers/servername_test-bin-ssltestlib.o", + "test/helpers/ssl_handshake_rtt_test-bin-ssltestlib.o", "test/helpers/ssl_old_test-bin-predefined_dhparams.o", "test/helpers/ssl_test-bin-handshake.o", "test/helpers/ssl_test-bin-handshake_srp.o", @@ -10285,7 +12045,8 @@ our %unified_info = ( "test/helpers/sslapitest-bin-ssltestlib.o", "test/helpers/sslbuffertest-bin-ssltestlib.o", "test/helpers/sslcorrupttest-bin-ssltestlib.o", - "test/helpers/tls13ccstest-bin-ssltestlib.o" + "test/helpers/tls13ccstest-bin-ssltestlib.o", + "test/helpers/tls13groupselection_test-bin-ssltestlib.o" ], "products" => { "bin" => [ @@ -10303,16 +12064,37 @@ our %unified_info = ( "test/dtlstest", "test/endecode_test", "test/fatalerrtest", + "test/json_test", + "test/pkcs12_api_test", "test/pkcs12_format_test", + "test/quic_multistream_test", + "test/quic_newcid_test", + "test/quic_radix_test", + "test/quic_srt_gen_test", + "test/quicapitest", + "test/quicfaultstest", "test/recordlentest", + "test/rpktest", "test/servername_test", + "test/ssl_handshake_rtt_test", "test/ssl_old_test", "test/ssl_test", "test/ssl_test_ctx_test", "test/sslapitest", "test/sslbuffertest", "test/sslcorrupttest", - "test/tls13ccstest" + "test/tls13ccstest", + "test/tls13groupselection_test" + ] + } + }, + "test/radix" => { + "deps" => [ + "test/radix/quic_radix_test-bin-quic_radix.o" + ], + "products" => { + "bin" => [ + "test/quic_radix_test" ] } }, @@ -10324,6 +12106,7 @@ our %unified_info = ( "test/testutil/libtestutil-lib-driver.o", "test/testutil/libtestutil-lib-fake_random.o", "test/testutil/libtestutil-lib-format_output.o", + "test/testutil/libtestutil-lib-helper.o", "test/testutil/libtestutil-lib-load.o", "test/testutil/libtestutil-lib-main.o", "test/testutil/libtestutil-lib-options.o", @@ -10359,6 +12142,12 @@ our %unified_info = ( } }, "generate" => { + "OpenSSLConfig.cmake" => [ + "exporters/cmake/OpenSSLConfig.cmake.in" + ], + "OpenSSLConfigVersion.cmake" => [ + "exporters/cmake/OpenSSLConfigVersion.cmake.in" + ], "apps/progs.c" => [ "apps/progs.pl", "\"-C\"", @@ -10369,6 +12158,19 @@ our %unified_info = ( "\"-H\"", "\$(APPS_OPENSSL)" ], + "builddata.pm" => [ + "util/mkinstallvars.pl", + "PREFIX=.", + "BINDIR=apps", + "APPLINKDIR=ms", + "LIBDIR=", + "INCLUDEDIR=include", + "\"INCLUDEDIR=\$(SRCDIR)/include\"", + "ENGINESDIR=engines", + "MODULESDIR=providers", + "\"VERSION=\$(VERSION)\"", + "\"LDLIBS=\$(LIB_EX_LIBS)\"" + ], "crypto/aes/aes-586.S" => [ "crypto/aes/asm/aes-586.pl" ], @@ -10390,6 +12192,24 @@ our %unified_info = ( "crypto/aes/aes-ppc.s" => [ "crypto/aes/asm/aes-ppc.pl" ], + "crypto/aes/aes-riscv32-zkn.s" => [ + "crypto/aes/asm/aes-riscv32-zkn.pl" + ], + "crypto/aes/aes-riscv64-zkn.s" => [ + "crypto/aes/asm/aes-riscv64-zkn.pl" + ], + "crypto/aes/aes-riscv64-zvbb-zvkg-zvkned.s" => [ + "crypto/aes/asm/aes-riscv64-zvbb-zvkg-zvkned.pl" + ], + "crypto/aes/aes-riscv64-zvkb-zvkned.s" => [ + "crypto/aes/asm/aes-riscv64-zvkb-zvkned.pl" + ], + "crypto/aes/aes-riscv64-zvkned.s" => [ + "crypto/aes/asm/aes-riscv64-zvkned.pl" + ], + "crypto/aes/aes-riscv64.s" => [ + "crypto/aes/asm/aes-riscv64.pl" + ], "crypto/aes/aes-s390x.S" => [ "crypto/aes/asm/aes-s390x.pl" ], @@ -10417,6 +12237,9 @@ our %unified_info = ( "crypto/aes/aesni-x86_64.s" => [ "crypto/aes/asm/aesni-x86_64.pl" ], + "crypto/aes/aesni-xts-avx512.s" => [ + "crypto/aes/asm/aesni-xts-avx512.pl" + ], "crypto/aes/aesp8-ppc.s" => [ "crypto/aes/asm/aesp8-ppc.pl" ], @@ -10429,12 +12252,18 @@ our %unified_info = ( "crypto/aes/bsaes-armv7.S" => [ "crypto/aes/asm/bsaes-armv7.pl" ], + "crypto/aes/bsaes-armv8.S" => [ + "crypto/aes/asm/bsaes-armv8.pl" + ], "crypto/aes/bsaes-x86_64.s" => [ "crypto/aes/asm/bsaes-x86_64.pl" ], "crypto/aes/vpaes-armv8.S" => [ "crypto/aes/asm/vpaes-armv8.pl" ], + "crypto/aes/vpaes-loongarch64.S" => [ + "crypto/aes/asm/vpaes-loongarch64.pl" + ], "crypto/aes/vpaes-ppc.s" => [ "crypto/aes/asm/vpaes-ppc.pl" ], @@ -10495,15 +12324,33 @@ our %unified_info = ( "crypto/bn/ppc-mont.s" => [ "crypto/bn/asm/ppc-mont.pl" ], + "crypto/bn/ppc64-mont-fixed.s" => [ + "crypto/bn/asm/ppc64-mont-fixed.pl" + ], "crypto/bn/ppc64-mont.s" => [ "crypto/bn/asm/ppc64-mont.pl" ], + "crypto/bn/rsaz-2k-avx512.s" => [ + "crypto/bn/asm/rsaz-2k-avx512.pl" + ], + "crypto/bn/rsaz-2k-avxifma.s" => [ + "crypto/bn/asm/rsaz-2k-avxifma.pl" + ], + "crypto/bn/rsaz-3k-avx512.s" => [ + "crypto/bn/asm/rsaz-3k-avx512.pl" + ], + "crypto/bn/rsaz-3k-avxifma.s" => [ + "crypto/bn/asm/rsaz-3k-avxifma.pl" + ], + "crypto/bn/rsaz-4k-avx512.s" => [ + "crypto/bn/asm/rsaz-4k-avx512.pl" + ], + "crypto/bn/rsaz-4k-avxifma.s" => [ + "crypto/bn/asm/rsaz-4k-avxifma.pl" + ], "crypto/bn/rsaz-avx2.s" => [ "crypto/bn/asm/rsaz-avx2.pl" ], - "crypto/bn/rsaz-avx512.s" => [ - "crypto/bn/asm/rsaz-avx512.pl" - ], "crypto/bn/rsaz-x86_64.s" => [ "crypto/bn/asm/rsaz-x86_64.pl" ], @@ -10565,6 +12412,9 @@ our %unified_info = ( "crypto/chacha/chacha-armv4.S" => [ "crypto/chacha/asm/chacha-armv4.pl" ], + "crypto/chacha/chacha-armv8-sve.S" => [ + "crypto/chacha/asm/chacha-armv8-sve.pl" + ], "crypto/chacha/chacha-armv8.S" => [ "crypto/chacha/asm/chacha-armv8.pl" ], @@ -10577,9 +12427,19 @@ our %unified_info = ( "crypto/chacha/chacha-ia64.s" => [ "crypto/chacha/chacha-ia64.S" ], + "crypto/chacha/chacha-loongarch64.S" => [ + "crypto/chacha/asm/chacha-loongarch64.pl" + ], "crypto/chacha/chacha-ppc.s" => [ "crypto/chacha/asm/chacha-ppc.pl" ], + "crypto/chacha/chacha-riscv64-v-zbb-zvkb.s" => [ + "crypto/chacha/asm/chacha-riscv64-v-zbb.pl", + "zvkb" + ], + "crypto/chacha/chacha-riscv64-v-zbb.s" => [ + "crypto/chacha/asm/chacha-riscv64-v-zbb.pl" + ], "crypto/chacha/chacha-s390x.S" => [ "crypto/chacha/asm/chacha-s390x.pl" ], @@ -10589,6 +12449,9 @@ our %unified_info = ( "crypto/chacha/chacha-x86_64.s" => [ "crypto/chacha/asm/chacha-x86_64.pl" ], + "crypto/chacha/chachap10-ppc.s" => [ + "crypto/chacha/asm/chachap10-ppc.pl" + ], "crypto/des/crypt586.S" => [ "crypto/des/asm/crypt586.pl" ], @@ -10601,6 +12464,9 @@ our %unified_info = ( "crypto/des/dest4-sparcv9.S" => [ "crypto/des/asm/dest4-sparcv9.pl" ], + "crypto/ec/ecp_nistp384-ppc64.s" => [ + "crypto/ec/asm/ecp_nistp384-ppc64.pl" + ], "crypto/ec/ecp_nistp521-ppc64.s" => [ "crypto/ec/asm/ecp_nistp521-ppc64.pl" ], @@ -10625,6 +12491,9 @@ our %unified_info = ( "crypto/ec/ecp_nistz256-x86_64.s" => [ "crypto/ec/asm/ecp_nistz256-x86_64.pl" ], + "crypto/ec/ecp_sm2p256-armv8.S" => [ + "crypto/ec/asm/ecp_sm2p256-armv8.pl" + ], "crypto/ec/x25519-ppc64.s" => [ "crypto/ec/asm/x25519-ppc64.pl" ], @@ -10634,18 +12503,39 @@ our %unified_info = ( "crypto/ia64cpuid.s" => [ "crypto/ia64cpuid.S" ], + "crypto/loongarch64cpuid.s" => [ + "crypto/loongarch64cpuid.pl" + ], "crypto/md5/md5-586.S" => [ "crypto/md5/asm/md5-586.pl" ], + "crypto/md5/md5-aarch64.S" => [ + "crypto/md5/asm/md5-aarch64.pl" + ], + "crypto/md5/md5-loongarch64.S" => [ + "crypto/md5/asm/md5-loongarch64.pl" + ], "crypto/md5/md5-sparcv9.S" => [ "crypto/md5/asm/md5-sparcv9.pl" ], "crypto/md5/md5-x86_64.s" => [ "crypto/md5/asm/md5-x86_64.pl" ], + "crypto/modes/aes-gcm-armv8-unroll8_64.S" => [ + "crypto/modes/asm/aes-gcm-armv8-unroll8_64.pl" + ], "crypto/modes/aes-gcm-armv8_64.S" => [ "crypto/modes/asm/aes-gcm-armv8_64.pl" ], + "crypto/modes/aes-gcm-avx512.s" => [ + "crypto/modes/asm/aes-gcm-avx512.pl" + ], + "crypto/modes/aes-gcm-ppc.s" => [ + "crypto/modes/asm/aes-gcm-ppc.pl" + ], + "crypto/modes/aes-gcm-riscv64-zvkb-zvkg-zvkned.s" => [ + "crypto/modes/asm/aes-gcm-riscv64-zvkb-zvkg-zvkned.pl" + ], "crypto/modes/aesni-gcm-x86_64.s" => [ "crypto/modes/asm/aesni-gcm-x86_64.pl" ], @@ -10664,6 +12554,15 @@ our %unified_info = ( "crypto/modes/ghash-parisc.s" => [ "crypto/modes/asm/ghash-parisc.pl" ], + "crypto/modes/ghash-riscv64-zvkb-zvbc.s" => [ + "crypto/modes/asm/ghash-riscv64-zvkb-zvbc.pl" + ], + "crypto/modes/ghash-riscv64-zvkg.s" => [ + "crypto/modes/asm/ghash-riscv64-zvkg.pl" + ], + "crypto/modes/ghash-riscv64.s" => [ + "crypto/modes/asm/ghash-riscv64.pl" + ], "crypto/modes/ghash-s390x.S" => [ "crypto/modes/asm/ghash-s390x.pl" ], @@ -10682,6 +12581,9 @@ our %unified_info = ( "crypto/modes/ghashv8-armx.S" => [ "crypto/modes/asm/ghashv8-armx.pl" ], + "crypto/params_idx.c" => [ + "crypto/params_idx.c.in" + ], "crypto/pariscid.s" => [ "crypto/pariscid.pl" ], @@ -10742,6 +12644,12 @@ our %unified_info = ( "crypto/ripemd/rmd-586.S" => [ "crypto/ripemd/asm/rmd-586.pl" ], + "crypto/riscv32cpuid.s" => [ + "crypto/riscv32cpuid.pl" + ], + "crypto/riscv64cpuid.s" => [ + "crypto/riscv64cpuid.pl" + ], "crypto/s390xcpuid.S" => [ "crypto/s390xcpuid.pl" ], @@ -10850,6 +12758,9 @@ our %unified_info = ( "crypto/sha/sha256-ppc.s" => [ "crypto/sha/asm/sha512-ppc.pl" ], + "crypto/sha/sha256-riscv64-zvkb-zvknha_or_zvknhb.S" => [ + "crypto/sha/asm/sha256-riscv64-zvkb-zvknha_or_zvknhb.pl" + ], "crypto/sha/sha256-s390x.S" => [ "crypto/sha/asm/sha512-s390x.pl" ], @@ -10886,6 +12797,9 @@ our %unified_info = ( "crypto/sha/sha512-ppc.s" => [ "crypto/sha/asm/sha512-ppc.pl" ], + "crypto/sha/sha512-riscv64-zvkb-zvknhb.S" => [ + "crypto/sha/asm/sha512-riscv64-zvkb-zvknhb.pl" + ], "crypto/sha/sha512-s390x.S" => [ "crypto/sha/asm/sha512-s390x.pl" ], @@ -10898,6 +12812,24 @@ our %unified_info = ( "crypto/sha/sha512p8-ppc.s" => [ "crypto/sha/asm/sha512p8-ppc.pl" ], + "crypto/sm3/sm3-armv8.S" => [ + "crypto/sm3/asm/sm3-armv8.pl" + ], + "crypto/sm3/sm3-riscv64-zvksh.S" => [ + "crypto/sm3/asm/sm3-riscv64-zvksh.pl" + ], + "crypto/sm4/sm4-armv8.S" => [ + "crypto/sm4/asm/sm4-armv8.pl" + ], + "crypto/sm4/sm4-riscv64-zvksed.s" => [ + "crypto/sm4/asm/sm4-riscv64-zvksed.pl" + ], + "crypto/sm4/vpsm4-armv8.S" => [ + "crypto/sm4/asm/vpsm4-armv8.pl" + ], + "crypto/sm4/vpsm4_ex-armv8.S" => [ + "crypto/sm4/asm/vpsm4_ex-armv8.pl" + ], "crypto/uplink-ia64.s" => [ "ms/uplink-ia64.pl" ], @@ -11063,6 +12995,9 @@ our %unified_info = ( "doc/html/man1/openssl-sess_id.html" => [ "doc/man1/openssl-sess_id.pod" ], + "doc/html/man1/openssl-skeyutl.html" => [ + "doc/man1/openssl-skeyutl.pod" + ], "doc/html/man1/openssl-smime.html" => [ "doc/man1/openssl-smime.pod" ], @@ -11204,6 +13139,9 @@ our %unified_info = ( "doc/html/man3/BIO_get_ex_new_index.html" => [ "doc/man3/BIO_get_ex_new_index.pod" ], + "doc/html/man3/BIO_get_rpoll_descriptor.html" => [ + "doc/man3/BIO_get_rpoll_descriptor.pod" + ], "doc/html/man3/BIO_meth_new.html" => [ "doc/man3/BIO_meth_new.pod" ], @@ -11240,6 +13178,9 @@ our %unified_info = ( "doc/html/man3/BIO_s_datagram.html" => [ "doc/man3/BIO_s_datagram.pod" ], + "doc/html/man3/BIO_s_dgram_pair.html" => [ + "doc/man3/BIO_s_dgram_pair.pod" + ], "doc/html/man3/BIO_s_fd.html" => [ "doc/man3/BIO_s_fd.pod" ], @@ -11255,6 +13196,9 @@ our %unified_info = ( "doc/html/man3/BIO_s_socket.html" => [ "doc/man3/BIO_s_socket.pod" ], + "doc/html/man3/BIO_sendmmsg.html" => [ + "doc/man3/BIO_sendmmsg.pod" + ], "doc/html/man3/BIO_set_callback.html" => [ "doc/man3/BIO_set_callback.pod" ], @@ -11327,6 +13271,9 @@ our %unified_info = ( "doc/html/man3/BUF_MEM_new.html" => [ "doc/man3/BUF_MEM_new.pod" ], + "doc/html/man3/CMAC_CTX.html" => [ + "doc/man3/CMAC_CTX.pod" + ], "doc/html/man3/CMS_EncryptedData_decrypt.html" => [ "doc/man3/CMS_EncryptedData_decrypt.pod" ], @@ -11393,6 +13340,9 @@ our %unified_info = ( "doc/html/man3/CMS_verify_receipt.html" => [ "doc/man3/CMS_verify_receipt.pod" ], + "doc/html/man3/COMP_CTX_new.html" => [ + "doc/man3/COMP_CTX_new.pod" + ], "doc/html/man3/CONF_modules_free.html" => [ "doc/man3/CONF_modules_free.pod" ], @@ -11492,6 +13442,12 @@ our %unified_info = ( "doc/html/man3/DTLS_set_timer_cb.html" => [ "doc/man3/DTLS_set_timer_cb.pod" ], + "doc/html/man3/DTLSv1_get_timeout.html" => [ + "doc/man3/DTLSv1_get_timeout.pod" + ], + "doc/html/man3/DTLSv1_handle_timeout.html" => [ + "doc/man3/DTLSv1_handle_timeout.pod" + ], "doc/html/man3/DTLSv1_listen.html" => [ "doc/man3/DTLSv1_listen.pod" ], @@ -11630,6 +13586,9 @@ our %unified_info = ( "doc/html/man3/EVP_PKEY_CTX_get0_pkey.html" => [ "doc/man3/EVP_PKEY_CTX_get0_pkey.pod" ], + "doc/html/man3/EVP_PKEY_CTX_get_algor.html" => [ + "doc/man3/EVP_PKEY_CTX_get_algor.pod" + ], "doc/html/man3/EVP_PKEY_CTX_new.html" => [ "doc/man3/EVP_PKEY_CTX_new.pod" ], @@ -11747,6 +13706,12 @@ our %unified_info = ( "doc/html/man3/EVP_SIGNATURE.html" => [ "doc/man3/EVP_SIGNATURE.pod" ], + "doc/html/man3/EVP_SKEY.html" => [ + "doc/man3/EVP_SKEY.pod" + ], + "doc/html/man3/EVP_SKEYMGMT.html" => [ + "doc/man3/EVP_SKEYMGMT.pod" + ], "doc/html/man3/EVP_SealInit.html" => [ "doc/man3/EVP_SealInit.pod" ], @@ -11834,6 +13799,9 @@ our %unified_info = ( "doc/html/man3/EVP_whirlpool.html" => [ "doc/man3/EVP_whirlpool.pod" ], + "doc/html/man3/GENERAL_NAME.html" => [ + "doc/man3/GENERAL_NAME.pod" + ], "doc/html/man3/HMAC.html" => [ "doc/man3/HMAC.pod" ], @@ -11906,9 +13874,15 @@ our %unified_info = ( "doc/html/man3/OPENSSL_load_builtin_modules.html" => [ "doc/man3/OPENSSL_load_builtin_modules.pod" ], + "doc/html/man3/OPENSSL_load_u16_le.html" => [ + "doc/man3/OPENSSL_load_u16_le.pod" + ], "doc/html/man3/OPENSSL_malloc.html" => [ "doc/man3/OPENSSL_malloc.pod" ], + "doc/html/man3/OPENSSL_riscvcap.html" => [ + "doc/man3/OPENSSL_riscvcap.pod" + ], "doc/html/man3/OPENSSL_s390xcap.html" => [ "doc/man3/OPENSSL_s390xcap.pod" ], @@ -11924,12 +13898,18 @@ our %unified_info = ( "doc/html/man3/OSSL_CALLBACK.html" => [ "doc/man3/OSSL_CALLBACK.pod" ], + "doc/html/man3/OSSL_CMP_ATAV_set0.html" => [ + "doc/man3/OSSL_CMP_ATAV_set0.pod" + ], "doc/html/man3/OSSL_CMP_CTX_new.html" => [ "doc/man3/OSSL_CMP_CTX_new.pod" ], "doc/html/man3/OSSL_CMP_HDR_get0_transactionID.html" => [ "doc/man3/OSSL_CMP_HDR_get0_transactionID.pod" ], + "doc/html/man3/OSSL_CMP_ITAV_new_caCerts.html" => [ + "doc/man3/OSSL_CMP_ITAV_new_caCerts.pod" + ], "doc/html/man3/OSSL_CMP_ITAV_set0.html" => [ "doc/man3/OSSL_CMP_ITAV_set0.pod" ], @@ -11999,9 +13979,18 @@ our %unified_info = ( "doc/html/man3/OSSL_ENCODER_to_bio.html" => [ "doc/man3/OSSL_ENCODER_to_bio.pod" ], + "doc/html/man3/OSSL_ERR_STATE_save.html" => [ + "doc/man3/OSSL_ERR_STATE_save.pod" + ], "doc/html/man3/OSSL_ESS_check_signing_certs.html" => [ "doc/man3/OSSL_ESS_check_signing_certs.pod" ], + "doc/html/man3/OSSL_GENERAL_NAMES_print.html" => [ + "doc/man3/OSSL_GENERAL_NAMES_print.pod" + ], + "doc/html/man3/OSSL_HPKE_CTX_new.html" => [ + "doc/man3/OSSL_HPKE_CTX_new.pod" + ], "doc/html/man3/OSSL_HTTP_REQ_CTX.html" => [ "doc/man3/OSSL_HTTP_REQ_CTX.pod" ], @@ -12011,12 +14000,24 @@ our %unified_info = ( "doc/html/man3/OSSL_HTTP_transfer.html" => [ "doc/man3/OSSL_HTTP_transfer.pod" ], + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX.html" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX.pod" + ], + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX_print.html" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX_print.pod" + ], + "doc/html/man3/OSSL_INDICATOR_set_callback.html" => [ + "doc/man3/OSSL_INDICATOR_set_callback.pod" + ], "doc/html/man3/OSSL_ITEM.html" => [ "doc/man3/OSSL_ITEM.pod" ], "doc/html/man3/OSSL_LIB_CTX.html" => [ "doc/man3/OSSL_LIB_CTX.pod" ], + "doc/html/man3/OSSL_LIB_CTX_set_conf_diagnostics.html" => [ + "doc/man3/OSSL_LIB_CTX_set_conf_diagnostics.pod" + ], "doc/html/man3/OSSL_PARAM.html" => [ "doc/man3/OSSL_PARAM.pod" ], @@ -12032,9 +14033,15 @@ our %unified_info = ( "doc/html/man3/OSSL_PARAM_int.html" => [ "doc/man3/OSSL_PARAM_int.pod" ], + "doc/html/man3/OSSL_PARAM_print_to_bio.html" => [ + "doc/man3/OSSL_PARAM_print_to_bio.pod" + ], "doc/html/man3/OSSL_PROVIDER.html" => [ "doc/man3/OSSL_PROVIDER.pod" ], + "doc/html/man3/OSSL_QUIC_client_method.html" => [ + "doc/man3/OSSL_QUIC_client_method.pod" + ], "doc/html/man3/OSSL_SELF_TEST_new.html" => [ "doc/man3/OSSL_SELF_TEST_new.pod" ], @@ -12059,6 +14066,9 @@ our %unified_info = ( "doc/html/man3/OSSL_STORE_open.html" => [ "doc/man3/OSSL_STORE_open.pod" ], + "doc/html/man3/OSSL_sleep.html" => [ + "doc/man3/OSSL_sleep.pod" + ], "doc/html/man3/OSSL_trace_enabled.html" => [ "doc/man3/OSSL_trace_enabled.pod" ], @@ -12074,6 +14084,9 @@ our %unified_info = ( "doc/html/man3/OpenSSL_version.html" => [ "doc/man3/OpenSSL_version.pod" ], + "doc/html/man3/PBMAC1_get1_pbkdf2_param.html" => [ + "doc/man3/PBMAC1_get1_pbkdf2_param.pod" + ], "doc/html/man3/PEM_X509_INFO_read_bio_ex.html" => [ "doc/man3/PEM_X509_INFO_read_bio_ex.pod" ], @@ -12110,6 +14123,9 @@ our %unified_info = ( "doc/html/man3/PKCS12_SAFEBAG_get1_cert.html" => [ "doc/man3/PKCS12_SAFEBAG_get1_cert.pod" ], + "doc/html/man3/PKCS12_SAFEBAG_set0_attrs.html" => [ + "doc/man3/PKCS12_SAFEBAG_set0_attrs.pod" + ], "doc/html/man3/PKCS12_add1_attr_by_NID.html" => [ "doc/man3/PKCS12_add1_attr_by_NID.pod" ], @@ -12383,6 +14399,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set0_CA_list.html" => [ "doc/man3/SSL_CTX_set0_CA_list.pod" ], + "doc/html/man3/SSL_CTX_set1_cert_comp_preference.html" => [ + "doc/man3/SSL_CTX_set1_cert_comp_preference.pod" + ], "doc/html/man3/SSL_CTX_set1_curves.html" => [ "doc/man3/SSL_CTX_set1_curves.pod" ], @@ -12422,6 +14441,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_default_passwd_cb.html" => [ "doc/man3/SSL_CTX_set_default_passwd_cb.pod" ], + "doc/html/man3/SSL_CTX_set_domain_flags.html" => [ + "doc/man3/SSL_CTX_set_domain_flags.pod" + ], "doc/html/man3/SSL_CTX_set_generate_session_id.html" => [ "doc/man3/SSL_CTX_set_generate_session_id.pod" ], @@ -12443,6 +14465,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_msg_callback.html" => [ "doc/man3/SSL_CTX_set_msg_callback.pod" ], + "doc/html/man3/SSL_CTX_set_new_pending_conn_cb.html" => [ + "doc/man3/SSL_CTX_set_new_pending_conn_cb.pod" + ], "doc/html/man3/SSL_CTX_set_num_tickets.html" => [ "doc/man3/SSL_CTX_set_num_tickets.pod" ], @@ -12557,6 +14582,9 @@ our %unified_info = ( "doc/html/man3/SSL_accept.html" => [ "doc/man3/SSL_accept.pod" ], + "doc/html/man3/SSL_accept_stream.html" => [ + "doc/man3/SSL_accept_stream.pod" + ], "doc/html/man3/SSL_alert_type_string.html" => [ "doc/man3/SSL_alert_type_string.pod" ], @@ -12584,9 +14612,21 @@ our %unified_info = ( "doc/html/man3/SSL_free.html" => [ "doc/man3/SSL_free.pod" ], + "doc/html/man3/SSL_get0_connection.html" => [ + "doc/man3/SSL_get0_connection.pod" + ], + "doc/html/man3/SSL_get0_group_name.html" => [ + "doc/man3/SSL_get0_group_name.pod" + ], + "doc/html/man3/SSL_get0_peer_rpk.html" => [ + "doc/man3/SSL_get0_peer_rpk.pod" + ], "doc/html/man3/SSL_get0_peer_scts.html" => [ "doc/man3/SSL_get0_peer_scts.pod" ], + "doc/html/man3/SSL_get1_builtin_sigalgs.html" => [ + "doc/man3/SSL_get1_builtin_sigalgs.pod" + ], "doc/html/man3/SSL_get_SSL_CTX.html" => [ "doc/man3/SSL_get_SSL_CTX.pod" ], @@ -12602,6 +14642,9 @@ our %unified_info = ( "doc/html/man3/SSL_get_client_random.html" => [ "doc/man3/SSL_get_client_random.pod" ], + "doc/html/man3/SSL_get_conn_close_info.html" => [ + "doc/man3/SSL_get_conn_close_info.pod" + ], "doc/html/man3/SSL_get_current_cipher.html" => [ "doc/man3/SSL_get_current_cipher.pod" ], @@ -12611,12 +14654,18 @@ our %unified_info = ( "doc/html/man3/SSL_get_error.html" => [ "doc/man3/SSL_get_error.pod" ], + "doc/html/man3/SSL_get_event_timeout.html" => [ + "doc/man3/SSL_get_event_timeout.pod" + ], "doc/html/man3/SSL_get_extms_support.html" => [ "doc/man3/SSL_get_extms_support.pod" ], "doc/html/man3/SSL_get_fd.html" => [ "doc/man3/SSL_get_fd.pod" ], + "doc/html/man3/SSL_get_handshake_rtt.html" => [ + "doc/man3/SSL_get_handshake_rtt.pod" + ], "doc/html/man3/SSL_get_peer_cert_chain.html" => [ "doc/man3/SSL_get_peer_cert_chain.pod" ], @@ -12635,12 +14684,24 @@ our %unified_info = ( "doc/html/man3/SSL_get_rbio.html" => [ "doc/man3/SSL_get_rbio.pod" ], + "doc/html/man3/SSL_get_rpoll_descriptor.html" => [ + "doc/man3/SSL_get_rpoll_descriptor.pod" + ], "doc/html/man3/SSL_get_session.html" => [ "doc/man3/SSL_get_session.pod" ], "doc/html/man3/SSL_get_shared_sigalgs.html" => [ "doc/man3/SSL_get_shared_sigalgs.pod" ], + "doc/html/man3/SSL_get_stream_id.html" => [ + "doc/man3/SSL_get_stream_id.pod" + ], + "doc/html/man3/SSL_get_stream_read_state.html" => [ + "doc/man3/SSL_get_stream_read_state.pod" + ], + "doc/html/man3/SSL_get_value_uint.html" => [ + "doc/man3/SSL_get_value_uint.pod" + ], "doc/html/man3/SSL_get_verify_result.html" => [ "doc/man3/SSL_get_verify_result.pod" ], @@ -12650,9 +14711,15 @@ our %unified_info = ( "doc/html/man3/SSL_group_to_name.html" => [ "doc/man3/SSL_group_to_name.pod" ], + "doc/html/man3/SSL_handle_events.html" => [ + "doc/man3/SSL_handle_events.pod" + ], "doc/html/man3/SSL_in_init.html" => [ "doc/man3/SSL_in_init.pod" ], + "doc/html/man3/SSL_inject_net_dgram.html" => [ + "doc/man3/SSL_inject_net_dgram.pod" + ], "doc/html/man3/SSL_key_update.html" => [ "doc/man3/SSL_key_update.pod" ], @@ -12665,9 +14732,21 @@ our %unified_info = ( "doc/html/man3/SSL_new.html" => [ "doc/man3/SSL_new.pod" ], + "doc/html/man3/SSL_new_domain.html" => [ + "doc/man3/SSL_new_domain.pod" + ], + "doc/html/man3/SSL_new_listener.html" => [ + "doc/man3/SSL_new_listener.pod" + ], + "doc/html/man3/SSL_new_stream.html" => [ + "doc/man3/SSL_new_stream.pod" + ], "doc/html/man3/SSL_pending.html" => [ "doc/man3/SSL_pending.pod" ], + "doc/html/man3/SSL_poll.html" => [ + "doc/man3/SSL_poll.pod" + ], "doc/html/man3/SSL_read.html" => [ "doc/man3/SSL_read.pod" ], @@ -12683,24 +14762,45 @@ our %unified_info = ( "doc/html/man3/SSL_set1_host.html" => [ "doc/man3/SSL_set1_host.pod" ], + "doc/html/man3/SSL_set1_initial_peer_addr.html" => [ + "doc/man3/SSL_set1_initial_peer_addr.pod" + ], + "doc/html/man3/SSL_set1_server_cert_type.html" => [ + "doc/man3/SSL_set1_server_cert_type.pod" + ], "doc/html/man3/SSL_set_async_callback.html" => [ "doc/man3/SSL_set_async_callback.pod" ], "doc/html/man3/SSL_set_bio.html" => [ "doc/man3/SSL_set_bio.pod" ], + "doc/html/man3/SSL_set_blocking_mode.html" => [ + "doc/man3/SSL_set_blocking_mode.pod" + ], "doc/html/man3/SSL_set_connect_state.html" => [ "doc/man3/SSL_set_connect_state.pod" ], + "doc/html/man3/SSL_set_default_stream_mode.html" => [ + "doc/man3/SSL_set_default_stream_mode.pod" + ], "doc/html/man3/SSL_set_fd.html" => [ "doc/man3/SSL_set_fd.pod" ], + "doc/html/man3/SSL_set_incoming_stream_policy.html" => [ + "doc/man3/SSL_set_incoming_stream_policy.pod" + ], + "doc/html/man3/SSL_set_quic_tls_cbs.html" => [ + "doc/man3/SSL_set_quic_tls_cbs.pod" + ], "doc/html/man3/SSL_set_retry_verify.html" => [ "doc/man3/SSL_set_retry_verify.pod" ], "doc/html/man3/SSL_set_session.html" => [ "doc/man3/SSL_set_session.pod" ], + "doc/html/man3/SSL_set_session_secret_cb.html" => [ + "doc/man3/SSL_set_session_secret_cb.pod" + ], "doc/html/man3/SSL_set_shutdown.html" => [ "doc/man3/SSL_set_shutdown.pod" ], @@ -12713,6 +14813,12 @@ our %unified_info = ( "doc/html/man3/SSL_state_string.html" => [ "doc/man3/SSL_state_string.pod" ], + "doc/html/man3/SSL_stream_conclude.html" => [ + "doc/man3/SSL_stream_conclude.pod" + ], + "doc/html/man3/SSL_stream_reset.html" => [ + "doc/man3/SSL_stream_reset.pod" + ], "doc/html/man3/SSL_want.html" => [ "doc/man3/SSL_want.pod" ], @@ -12722,8 +14828,8 @@ our %unified_info = ( "doc/html/man3/TS_RESP_CTX_new.html" => [ "doc/man3/TS_RESP_CTX_new.pod" ], - "doc/html/man3/TS_VERIFY_CTX_set_certs.html" => [ - "doc/man3/TS_VERIFY_CTX_set_certs.pod" + "doc/html/man3/TS_VERIFY_CTX.html" => [ + "doc/man3/TS_VERIFY_CTX.pod" ], "doc/html/man3/UI_STRING.html" => [ "doc/man3/UI_STRING.pod" @@ -12743,6 +14849,21 @@ our %unified_info = ( "doc/html/man3/X509V3_set_ctx.html" => [ "doc/man3/X509V3_set_ctx.pod" ], + "doc/html/man3/X509_ACERT_add1_attr.html" => [ + "doc/man3/X509_ACERT_add1_attr.pod" + ], + "doc/html/man3/X509_ACERT_add_attr_nconf.html" => [ + "doc/man3/X509_ACERT_add_attr_nconf.pod" + ], + "doc/html/man3/X509_ACERT_get0_holder_baseCertId.html" => [ + "doc/man3/X509_ACERT_get0_holder_baseCertId.pod" + ], + "doc/html/man3/X509_ACERT_get_attr.html" => [ + "doc/man3/X509_ACERT_get_attr.pod" + ], + "doc/html/man3/X509_ACERT_print_ex.html" => [ + "doc/man3/X509_ACERT_print_ex.pod" + ], "doc/html/man3/X509_ALGOR_dup.html" => [ "doc/man3/X509_ALGOR_dup.pod" ], @@ -12791,6 +14912,9 @@ our %unified_info = ( "doc/html/man3/X509_SIG_get0.html" => [ "doc/man3/X509_SIG_get0.pod" ], + "doc/html/man3/X509_STORE_CTX_get_by_subject.html" => [ + "doc/man3/X509_STORE_CTX_get_by_subject.pod" + ], "doc/html/man3/X509_STORE_CTX_get_error.html" => [ "doc/man3/X509_STORE_CTX_get_error.pod" ], @@ -12857,6 +14981,9 @@ our %unified_info = ( "doc/html/man3/X509_get0_uids.html" => [ "doc/man3/X509_get0_uids.pod" ], + "doc/html/man3/X509_get_default_cert_file.html" => [ + "doc/man3/X509_get_default_cert_file.pod" + ], "doc/html/man3/X509_get_extension_flags.html" => [ "doc/man3/X509_get_extension_flags.pod" ], @@ -12980,9 +15107,15 @@ our %unified_info = ( "doc/html/man7/EVP_CIPHER-SM4.html" => [ "doc/man7/EVP_CIPHER-SM4.pod" ], + "doc/html/man7/EVP_KDF-ARGON2.html" => [ + "doc/man7/EVP_KDF-ARGON2.pod" + ], "doc/html/man7/EVP_KDF-HKDF.html" => [ "doc/man7/EVP_KDF-HKDF.pod" ], + "doc/html/man7/EVP_KDF-HMAC-DRBG.html" => [ + "doc/man7/EVP_KDF-HMAC-DRBG.pod" + ], "doc/html/man7/EVP_KDF-KB.html" => [ "doc/man7/EVP_KDF-KB.pod" ], @@ -12998,6 +15131,9 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-PKCS12KDF.html" => [ "doc/man7/EVP_KDF-PKCS12KDF.pod" ], + "doc/html/man7/EVP_KDF-PVKKDF.html" => [ + "doc/man7/EVP_KDF-PVKKDF.pod" + ], "doc/html/man7/EVP_KDF-SCRYPT.html" => [ "doc/man7/EVP_KDF-SCRYPT.pod" ], @@ -13022,9 +15158,18 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-X963.html" => [ "doc/man7/EVP_KDF-X963.pod" ], + "doc/html/man7/EVP_KEM-EC.html" => [ + "doc/man7/EVP_KEM-EC.pod" + ], + "doc/html/man7/EVP_KEM-ML-KEM.html" => [ + "doc/man7/EVP_KEM-ML-KEM.pod" + ], "doc/html/man7/EVP_KEM-RSA.html" => [ "doc/man7/EVP_KEM-RSA.pod" ], + "doc/html/man7/EVP_KEM-X25519.html" => [ + "doc/man7/EVP_KEM-X25519.pod" + ], "doc/html/man7/EVP_KEYEXCH-DH.html" => [ "doc/man7/EVP_KEYEXCH-DH.pod" ], @@ -13058,6 +15203,9 @@ our %unified_info = ( "doc/html/man7/EVP_MD-BLAKE2.html" => [ "doc/man7/EVP_MD-BLAKE2.pod" ], + "doc/html/man7/EVP_MD-KECCAK.html" => [ + "doc/man7/EVP_MD-KECCAK.pod" + ], "doc/html/man7/EVP_MD-MD2.html" => [ "doc/man7/EVP_MD-MD2.pod" ], @@ -13115,15 +15263,27 @@ our %unified_info = ( "doc/html/man7/EVP_PKEY-HMAC.html" => [ "doc/man7/EVP_PKEY-HMAC.pod" ], + "doc/html/man7/EVP_PKEY-ML-DSA.html" => [ + "doc/man7/EVP_PKEY-ML-DSA.pod" + ], + "doc/html/man7/EVP_PKEY-ML-KEM.html" => [ + "doc/man7/EVP_PKEY-ML-KEM.pod" + ], "doc/html/man7/EVP_PKEY-RSA.html" => [ "doc/man7/EVP_PKEY-RSA.pod" ], + "doc/html/man7/EVP_PKEY-SLH-DSA.html" => [ + "doc/man7/EVP_PKEY-SLH-DSA.pod" + ], "doc/html/man7/EVP_PKEY-SM2.html" => [ "doc/man7/EVP_PKEY-SM2.pod" ], "doc/html/man7/EVP_PKEY-X25519.html" => [ "doc/man7/EVP_PKEY-X25519.pod" ], + "doc/html/man7/EVP_RAND-CRNG-TEST.html" => [ + "doc/man7/EVP_RAND-CRNG-TEST.pod" + ], "doc/html/man7/EVP_RAND-CTR-DRBG.html" => [ "doc/man7/EVP_RAND-CTR-DRBG.pod" ], @@ -13133,6 +15293,9 @@ our %unified_info = ( "doc/html/man7/EVP_RAND-HMAC-DRBG.html" => [ "doc/man7/EVP_RAND-HMAC-DRBG.pod" ], + "doc/html/man7/EVP_RAND-JITTER.html" => [ + "doc/man7/EVP_RAND-JITTER.pod" + ], "doc/html/man7/EVP_RAND-SEED-SRC.html" => [ "doc/man7/EVP_RAND-SEED-SRC.pod" ], @@ -13154,9 +15317,15 @@ our %unified_info = ( "doc/html/man7/EVP_SIGNATURE-HMAC.html" => [ "doc/man7/EVP_SIGNATURE-HMAC.pod" ], + "doc/html/man7/EVP_SIGNATURE-ML-DSA.html" => [ + "doc/man7/EVP_SIGNATURE-ML-DSA.pod" + ], "doc/html/man7/EVP_SIGNATURE-RSA.html" => [ "doc/man7/EVP_SIGNATURE-RSA.pod" ], + "doc/html/man7/EVP_SIGNATURE-SLH-DSA.html" => [ + "doc/man7/EVP_SIGNATURE-SLH-DSA.pod" + ], "doc/html/man7/OSSL_PROVIDER-FIPS.html" => [ "doc/man7/OSSL_PROVIDER-FIPS.pod" ], @@ -13172,6 +15341,9 @@ our %unified_info = ( "doc/html/man7/OSSL_PROVIDER-null.html" => [ "doc/man7/OSSL_PROVIDER-null.pod" ], + "doc/html/man7/OSSL_STORE-winstore.html" => [ + "doc/man7/OSSL_STORE-winstore.pod" + ], "doc/html/man7/RAND.html" => [ "doc/man7/RAND.pod" ], @@ -13184,9 +15356,6 @@ our %unified_info = ( "doc/html/man7/bio.html" => [ "doc/man7/bio.pod" ], - "doc/html/man7/crypto.html" => [ - "doc/man7/crypto.pod" - ], "doc/html/man7/ct.html" => [ "doc/man7/ct.pod" ], @@ -13217,9 +15386,6 @@ our %unified_info = ( "doc/html/man7/life_cycle-rand.html" => [ "doc/man7/life_cycle-rand.pod" ], - "doc/html/man7/migration_guide.html" => [ - "doc/man7/migration_guide.pod" - ], "doc/html/man7/openssl-core.h.html" => [ "doc/man7/openssl-core.h.pod" ], @@ -13235,12 +15401,66 @@ our %unified_info = ( "doc/html/man7/openssl-glossary.html" => [ "doc/man7/openssl-glossary.pod" ], + "doc/html/man7/openssl-qlog.html" => [ + "doc/man7/openssl-qlog.pod" + ], + "doc/html/man7/openssl-quic-concurrency.html" => [ + "doc/man7/openssl-quic-concurrency.pod" + ], + "doc/html/man7/openssl-quic.html" => [ + "doc/man7/openssl-quic.pod" + ], "doc/html/man7/openssl-threads.html" => [ "doc/man7/openssl-threads.pod" ], "doc/html/man7/openssl_user_macros.html" => [ "doc/man7/openssl_user_macros.pod" ], + "doc/html/man7/ossl-guide-introduction.html" => [ + "doc/man7/ossl-guide-introduction.pod" + ], + "doc/html/man7/ossl-guide-libcrypto-introduction.html" => [ + "doc/man7/ossl-guide-libcrypto-introduction.pod" + ], + "doc/html/man7/ossl-guide-libraries-introduction.html" => [ + "doc/man7/ossl-guide-libraries-introduction.pod" + ], + "doc/html/man7/ossl-guide-libssl-introduction.html" => [ + "doc/man7/ossl-guide-libssl-introduction.pod" + ], + "doc/html/man7/ossl-guide-migration.html" => [ + "doc/man7/ossl-guide-migration.pod" + ], + "doc/html/man7/ossl-guide-quic-client-block.html" => [ + "doc/man7/ossl-guide-quic-client-block.pod" + ], + "doc/html/man7/ossl-guide-quic-client-non-block.html" => [ + "doc/man7/ossl-guide-quic-client-non-block.pod" + ], + "doc/html/man7/ossl-guide-quic-introduction.html" => [ + "doc/man7/ossl-guide-quic-introduction.pod" + ], + "doc/html/man7/ossl-guide-quic-multi-stream.html" => [ + "doc/man7/ossl-guide-quic-multi-stream.pod" + ], + "doc/html/man7/ossl-guide-quic-server-block.html" => [ + "doc/man7/ossl-guide-quic-server-block.pod" + ], + "doc/html/man7/ossl-guide-quic-server-non-block.html" => [ + "doc/man7/ossl-guide-quic-server-non-block.pod" + ], + "doc/html/man7/ossl-guide-tls-client-block.html" => [ + "doc/man7/ossl-guide-tls-client-block.pod" + ], + "doc/html/man7/ossl-guide-tls-client-non-block.html" => [ + "doc/man7/ossl-guide-tls-client-non-block.pod" + ], + "doc/html/man7/ossl-guide-tls-introduction.html" => [ + "doc/man7/ossl-guide-tls-introduction.pod" + ], + "doc/html/man7/ossl-guide-tls-server-block.html" => [ + "doc/man7/ossl-guide-tls-server-block.pod" + ], "doc/html/man7/ossl_store-file.html" => [ "doc/man7/ossl_store-file.pod" ], @@ -13295,6 +15515,9 @@ our %unified_info = ( "doc/html/man7/provider-signature.html" => [ "doc/man7/provider-signature.pod" ], + "doc/html/man7/provider-skeymgmt.html" => [ + "doc/man7/provider-skeymgmt.pod" + ], "doc/html/man7/provider-storemgmt.html" => [ "doc/man7/provider-storemgmt.pod" ], @@ -13304,9 +15527,6 @@ our %unified_info = ( "doc/html/man7/proxy-certificates.html" => [ "doc/man7/proxy-certificates.pod" ], - "doc/html/man7/ssl.html" => [ - "doc/man7/ssl.pod" - ], "doc/html/man7/x509.html" => [ "doc/man7/x509.pod" ], @@ -13454,6 +15674,9 @@ our %unified_info = ( "doc/man/man1/openssl-sess_id.1" => [ "doc/man1/openssl-sess_id.pod" ], + "doc/man/man1/openssl-skeyutl.1" => [ + "doc/man1/openssl-skeyutl.pod" + ], "doc/man/man1/openssl-smime.1" => [ "doc/man1/openssl-smime.pod" ], @@ -13595,6 +15818,9 @@ our %unified_info = ( "doc/man/man3/BIO_get_ex_new_index.3" => [ "doc/man3/BIO_get_ex_new_index.pod" ], + "doc/man/man3/BIO_get_rpoll_descriptor.3" => [ + "doc/man3/BIO_get_rpoll_descriptor.pod" + ], "doc/man/man3/BIO_meth_new.3" => [ "doc/man3/BIO_meth_new.pod" ], @@ -13631,6 +15857,9 @@ our %unified_info = ( "doc/man/man3/BIO_s_datagram.3" => [ "doc/man3/BIO_s_datagram.pod" ], + "doc/man/man3/BIO_s_dgram_pair.3" => [ + "doc/man3/BIO_s_dgram_pair.pod" + ], "doc/man/man3/BIO_s_fd.3" => [ "doc/man3/BIO_s_fd.pod" ], @@ -13646,6 +15875,9 @@ our %unified_info = ( "doc/man/man3/BIO_s_socket.3" => [ "doc/man3/BIO_s_socket.pod" ], + "doc/man/man3/BIO_sendmmsg.3" => [ + "doc/man3/BIO_sendmmsg.pod" + ], "doc/man/man3/BIO_set_callback.3" => [ "doc/man3/BIO_set_callback.pod" ], @@ -13718,6 +15950,9 @@ our %unified_info = ( "doc/man/man3/BUF_MEM_new.3" => [ "doc/man3/BUF_MEM_new.pod" ], + "doc/man/man3/CMAC_CTX.3" => [ + "doc/man3/CMAC_CTX.pod" + ], "doc/man/man3/CMS_EncryptedData_decrypt.3" => [ "doc/man3/CMS_EncryptedData_decrypt.pod" ], @@ -13784,6 +16019,9 @@ our %unified_info = ( "doc/man/man3/CMS_verify_receipt.3" => [ "doc/man3/CMS_verify_receipt.pod" ], + "doc/man/man3/COMP_CTX_new.3" => [ + "doc/man3/COMP_CTX_new.pod" + ], "doc/man/man3/CONF_modules_free.3" => [ "doc/man3/CONF_modules_free.pod" ], @@ -13883,6 +16121,12 @@ our %unified_info = ( "doc/man/man3/DTLS_set_timer_cb.3" => [ "doc/man3/DTLS_set_timer_cb.pod" ], + "doc/man/man3/DTLSv1_get_timeout.3" => [ + "doc/man3/DTLSv1_get_timeout.pod" + ], + "doc/man/man3/DTLSv1_handle_timeout.3" => [ + "doc/man3/DTLSv1_handle_timeout.pod" + ], "doc/man/man3/DTLSv1_listen.3" => [ "doc/man3/DTLSv1_listen.pod" ], @@ -14021,6 +16265,9 @@ our %unified_info = ( "doc/man/man3/EVP_PKEY_CTX_get0_pkey.3" => [ "doc/man3/EVP_PKEY_CTX_get0_pkey.pod" ], + "doc/man/man3/EVP_PKEY_CTX_get_algor.3" => [ + "doc/man3/EVP_PKEY_CTX_get_algor.pod" + ], "doc/man/man3/EVP_PKEY_CTX_new.3" => [ "doc/man3/EVP_PKEY_CTX_new.pod" ], @@ -14138,6 +16385,12 @@ our %unified_info = ( "doc/man/man3/EVP_SIGNATURE.3" => [ "doc/man3/EVP_SIGNATURE.pod" ], + "doc/man/man3/EVP_SKEY.3" => [ + "doc/man3/EVP_SKEY.pod" + ], + "doc/man/man3/EVP_SKEYMGMT.3" => [ + "doc/man3/EVP_SKEYMGMT.pod" + ], "doc/man/man3/EVP_SealInit.3" => [ "doc/man3/EVP_SealInit.pod" ], @@ -14225,6 +16478,9 @@ our %unified_info = ( "doc/man/man3/EVP_whirlpool.3" => [ "doc/man3/EVP_whirlpool.pod" ], + "doc/man/man3/GENERAL_NAME.3" => [ + "doc/man3/GENERAL_NAME.pod" + ], "doc/man/man3/HMAC.3" => [ "doc/man3/HMAC.pod" ], @@ -14297,9 +16553,15 @@ our %unified_info = ( "doc/man/man3/OPENSSL_load_builtin_modules.3" => [ "doc/man3/OPENSSL_load_builtin_modules.pod" ], + "doc/man/man3/OPENSSL_load_u16_le.3" => [ + "doc/man3/OPENSSL_load_u16_le.pod" + ], "doc/man/man3/OPENSSL_malloc.3" => [ "doc/man3/OPENSSL_malloc.pod" ], + "doc/man/man3/OPENSSL_riscvcap.3" => [ + "doc/man3/OPENSSL_riscvcap.pod" + ], "doc/man/man3/OPENSSL_s390xcap.3" => [ "doc/man3/OPENSSL_s390xcap.pod" ], @@ -14315,12 +16577,18 @@ our %unified_info = ( "doc/man/man3/OSSL_CALLBACK.3" => [ "doc/man3/OSSL_CALLBACK.pod" ], + "doc/man/man3/OSSL_CMP_ATAV_set0.3" => [ + "doc/man3/OSSL_CMP_ATAV_set0.pod" + ], "doc/man/man3/OSSL_CMP_CTX_new.3" => [ "doc/man3/OSSL_CMP_CTX_new.pod" ], "doc/man/man3/OSSL_CMP_HDR_get0_transactionID.3" => [ "doc/man3/OSSL_CMP_HDR_get0_transactionID.pod" ], + "doc/man/man3/OSSL_CMP_ITAV_new_caCerts.3" => [ + "doc/man3/OSSL_CMP_ITAV_new_caCerts.pod" + ], "doc/man/man3/OSSL_CMP_ITAV_set0.3" => [ "doc/man3/OSSL_CMP_ITAV_set0.pod" ], @@ -14390,9 +16658,18 @@ our %unified_info = ( "doc/man/man3/OSSL_ENCODER_to_bio.3" => [ "doc/man3/OSSL_ENCODER_to_bio.pod" ], + "doc/man/man3/OSSL_ERR_STATE_save.3" => [ + "doc/man3/OSSL_ERR_STATE_save.pod" + ], "doc/man/man3/OSSL_ESS_check_signing_certs.3" => [ "doc/man3/OSSL_ESS_check_signing_certs.pod" ], + "doc/man/man3/OSSL_GENERAL_NAMES_print.3" => [ + "doc/man3/OSSL_GENERAL_NAMES_print.pod" + ], + "doc/man/man3/OSSL_HPKE_CTX_new.3" => [ + "doc/man3/OSSL_HPKE_CTX_new.pod" + ], "doc/man/man3/OSSL_HTTP_REQ_CTX.3" => [ "doc/man3/OSSL_HTTP_REQ_CTX.pod" ], @@ -14402,12 +16679,24 @@ our %unified_info = ( "doc/man/man3/OSSL_HTTP_transfer.3" => [ "doc/man3/OSSL_HTTP_transfer.pod" ], + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX.3" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX.pod" + ], + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX_print.3" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX_print.pod" + ], + "doc/man/man3/OSSL_INDICATOR_set_callback.3" => [ + "doc/man3/OSSL_INDICATOR_set_callback.pod" + ], "doc/man/man3/OSSL_ITEM.3" => [ "doc/man3/OSSL_ITEM.pod" ], "doc/man/man3/OSSL_LIB_CTX.3" => [ "doc/man3/OSSL_LIB_CTX.pod" ], + "doc/man/man3/OSSL_LIB_CTX_set_conf_diagnostics.3" => [ + "doc/man3/OSSL_LIB_CTX_set_conf_diagnostics.pod" + ], "doc/man/man3/OSSL_PARAM.3" => [ "doc/man3/OSSL_PARAM.pod" ], @@ -14423,9 +16712,15 @@ our %unified_info = ( "doc/man/man3/OSSL_PARAM_int.3" => [ "doc/man3/OSSL_PARAM_int.pod" ], + "doc/man/man3/OSSL_PARAM_print_to_bio.3" => [ + "doc/man3/OSSL_PARAM_print_to_bio.pod" + ], "doc/man/man3/OSSL_PROVIDER.3" => [ "doc/man3/OSSL_PROVIDER.pod" ], + "doc/man/man3/OSSL_QUIC_client_method.3" => [ + "doc/man3/OSSL_QUIC_client_method.pod" + ], "doc/man/man3/OSSL_SELF_TEST_new.3" => [ "doc/man3/OSSL_SELF_TEST_new.pod" ], @@ -14450,6 +16745,9 @@ our %unified_info = ( "doc/man/man3/OSSL_STORE_open.3" => [ "doc/man3/OSSL_STORE_open.pod" ], + "doc/man/man3/OSSL_sleep.3" => [ + "doc/man3/OSSL_sleep.pod" + ], "doc/man/man3/OSSL_trace_enabled.3" => [ "doc/man3/OSSL_trace_enabled.pod" ], @@ -14465,6 +16763,9 @@ our %unified_info = ( "doc/man/man3/OpenSSL_version.3" => [ "doc/man3/OpenSSL_version.pod" ], + "doc/man/man3/PBMAC1_get1_pbkdf2_param.3" => [ + "doc/man3/PBMAC1_get1_pbkdf2_param.pod" + ], "doc/man/man3/PEM_X509_INFO_read_bio_ex.3" => [ "doc/man3/PEM_X509_INFO_read_bio_ex.pod" ], @@ -14501,6 +16802,9 @@ our %unified_info = ( "doc/man/man3/PKCS12_SAFEBAG_get1_cert.3" => [ "doc/man3/PKCS12_SAFEBAG_get1_cert.pod" ], + "doc/man/man3/PKCS12_SAFEBAG_set0_attrs.3" => [ + "doc/man3/PKCS12_SAFEBAG_set0_attrs.pod" + ], "doc/man/man3/PKCS12_add1_attr_by_NID.3" => [ "doc/man3/PKCS12_add1_attr_by_NID.pod" ], @@ -14774,6 +17078,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set0_CA_list.3" => [ "doc/man3/SSL_CTX_set0_CA_list.pod" ], + "doc/man/man3/SSL_CTX_set1_cert_comp_preference.3" => [ + "doc/man3/SSL_CTX_set1_cert_comp_preference.pod" + ], "doc/man/man3/SSL_CTX_set1_curves.3" => [ "doc/man3/SSL_CTX_set1_curves.pod" ], @@ -14813,6 +17120,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_default_passwd_cb.3" => [ "doc/man3/SSL_CTX_set_default_passwd_cb.pod" ], + "doc/man/man3/SSL_CTX_set_domain_flags.3" => [ + "doc/man3/SSL_CTX_set_domain_flags.pod" + ], "doc/man/man3/SSL_CTX_set_generate_session_id.3" => [ "doc/man3/SSL_CTX_set_generate_session_id.pod" ], @@ -14834,6 +17144,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_msg_callback.3" => [ "doc/man3/SSL_CTX_set_msg_callback.pod" ], + "doc/man/man3/SSL_CTX_set_new_pending_conn_cb.3" => [ + "doc/man3/SSL_CTX_set_new_pending_conn_cb.pod" + ], "doc/man/man3/SSL_CTX_set_num_tickets.3" => [ "doc/man3/SSL_CTX_set_num_tickets.pod" ], @@ -14948,6 +17261,9 @@ our %unified_info = ( "doc/man/man3/SSL_accept.3" => [ "doc/man3/SSL_accept.pod" ], + "doc/man/man3/SSL_accept_stream.3" => [ + "doc/man3/SSL_accept_stream.pod" + ], "doc/man/man3/SSL_alert_type_string.3" => [ "doc/man3/SSL_alert_type_string.pod" ], @@ -14975,9 +17291,21 @@ our %unified_info = ( "doc/man/man3/SSL_free.3" => [ "doc/man3/SSL_free.pod" ], + "doc/man/man3/SSL_get0_connection.3" => [ + "doc/man3/SSL_get0_connection.pod" + ], + "doc/man/man3/SSL_get0_group_name.3" => [ + "doc/man3/SSL_get0_group_name.pod" + ], + "doc/man/man3/SSL_get0_peer_rpk.3" => [ + "doc/man3/SSL_get0_peer_rpk.pod" + ], "doc/man/man3/SSL_get0_peer_scts.3" => [ "doc/man3/SSL_get0_peer_scts.pod" ], + "doc/man/man3/SSL_get1_builtin_sigalgs.3" => [ + "doc/man3/SSL_get1_builtin_sigalgs.pod" + ], "doc/man/man3/SSL_get_SSL_CTX.3" => [ "doc/man3/SSL_get_SSL_CTX.pod" ], @@ -14993,6 +17321,9 @@ our %unified_info = ( "doc/man/man3/SSL_get_client_random.3" => [ "doc/man3/SSL_get_client_random.pod" ], + "doc/man/man3/SSL_get_conn_close_info.3" => [ + "doc/man3/SSL_get_conn_close_info.pod" + ], "doc/man/man3/SSL_get_current_cipher.3" => [ "doc/man3/SSL_get_current_cipher.pod" ], @@ -15002,12 +17333,18 @@ our %unified_info = ( "doc/man/man3/SSL_get_error.3" => [ "doc/man3/SSL_get_error.pod" ], + "doc/man/man3/SSL_get_event_timeout.3" => [ + "doc/man3/SSL_get_event_timeout.pod" + ], "doc/man/man3/SSL_get_extms_support.3" => [ "doc/man3/SSL_get_extms_support.pod" ], "doc/man/man3/SSL_get_fd.3" => [ "doc/man3/SSL_get_fd.pod" ], + "doc/man/man3/SSL_get_handshake_rtt.3" => [ + "doc/man3/SSL_get_handshake_rtt.pod" + ], "doc/man/man3/SSL_get_peer_cert_chain.3" => [ "doc/man3/SSL_get_peer_cert_chain.pod" ], @@ -15026,11 +17363,23 @@ our %unified_info = ( "doc/man/man3/SSL_get_rbio.3" => [ "doc/man3/SSL_get_rbio.pod" ], + "doc/man/man3/SSL_get_rpoll_descriptor.3" => [ + "doc/man3/SSL_get_rpoll_descriptor.pod" + ], "doc/man/man3/SSL_get_session.3" => [ "doc/man3/SSL_get_session.pod" ], - "doc/man/man3/SSL_get_shared_sigalgs.3" => [ - "doc/man3/SSL_get_shared_sigalgs.pod" + "doc/man/man3/SSL_get_shared_sigalgs.3" => [ + "doc/man3/SSL_get_shared_sigalgs.pod" + ], + "doc/man/man3/SSL_get_stream_id.3" => [ + "doc/man3/SSL_get_stream_id.pod" + ], + "doc/man/man3/SSL_get_stream_read_state.3" => [ + "doc/man3/SSL_get_stream_read_state.pod" + ], + "doc/man/man3/SSL_get_value_uint.3" => [ + "doc/man3/SSL_get_value_uint.pod" ], "doc/man/man3/SSL_get_verify_result.3" => [ "doc/man3/SSL_get_verify_result.pod" @@ -15041,9 +17390,15 @@ our %unified_info = ( "doc/man/man3/SSL_group_to_name.3" => [ "doc/man3/SSL_group_to_name.pod" ], + "doc/man/man3/SSL_handle_events.3" => [ + "doc/man3/SSL_handle_events.pod" + ], "doc/man/man3/SSL_in_init.3" => [ "doc/man3/SSL_in_init.pod" ], + "doc/man/man3/SSL_inject_net_dgram.3" => [ + "doc/man3/SSL_inject_net_dgram.pod" + ], "doc/man/man3/SSL_key_update.3" => [ "doc/man3/SSL_key_update.pod" ], @@ -15056,9 +17411,21 @@ our %unified_info = ( "doc/man/man3/SSL_new.3" => [ "doc/man3/SSL_new.pod" ], + "doc/man/man3/SSL_new_domain.3" => [ + "doc/man3/SSL_new_domain.pod" + ], + "doc/man/man3/SSL_new_listener.3" => [ + "doc/man3/SSL_new_listener.pod" + ], + "doc/man/man3/SSL_new_stream.3" => [ + "doc/man3/SSL_new_stream.pod" + ], "doc/man/man3/SSL_pending.3" => [ "doc/man3/SSL_pending.pod" ], + "doc/man/man3/SSL_poll.3" => [ + "doc/man3/SSL_poll.pod" + ], "doc/man/man3/SSL_read.3" => [ "doc/man3/SSL_read.pod" ], @@ -15074,24 +17441,45 @@ our %unified_info = ( "doc/man/man3/SSL_set1_host.3" => [ "doc/man3/SSL_set1_host.pod" ], + "doc/man/man3/SSL_set1_initial_peer_addr.3" => [ + "doc/man3/SSL_set1_initial_peer_addr.pod" + ], + "doc/man/man3/SSL_set1_server_cert_type.3" => [ + "doc/man3/SSL_set1_server_cert_type.pod" + ], "doc/man/man3/SSL_set_async_callback.3" => [ "doc/man3/SSL_set_async_callback.pod" ], "doc/man/man3/SSL_set_bio.3" => [ "doc/man3/SSL_set_bio.pod" ], + "doc/man/man3/SSL_set_blocking_mode.3" => [ + "doc/man3/SSL_set_blocking_mode.pod" + ], "doc/man/man3/SSL_set_connect_state.3" => [ "doc/man3/SSL_set_connect_state.pod" ], + "doc/man/man3/SSL_set_default_stream_mode.3" => [ + "doc/man3/SSL_set_default_stream_mode.pod" + ], "doc/man/man3/SSL_set_fd.3" => [ "doc/man3/SSL_set_fd.pod" ], + "doc/man/man3/SSL_set_incoming_stream_policy.3" => [ + "doc/man3/SSL_set_incoming_stream_policy.pod" + ], + "doc/man/man3/SSL_set_quic_tls_cbs.3" => [ + "doc/man3/SSL_set_quic_tls_cbs.pod" + ], "doc/man/man3/SSL_set_retry_verify.3" => [ "doc/man3/SSL_set_retry_verify.pod" ], "doc/man/man3/SSL_set_session.3" => [ "doc/man3/SSL_set_session.pod" ], + "doc/man/man3/SSL_set_session_secret_cb.3" => [ + "doc/man3/SSL_set_session_secret_cb.pod" + ], "doc/man/man3/SSL_set_shutdown.3" => [ "doc/man3/SSL_set_shutdown.pod" ], @@ -15104,6 +17492,12 @@ our %unified_info = ( "doc/man/man3/SSL_state_string.3" => [ "doc/man3/SSL_state_string.pod" ], + "doc/man/man3/SSL_stream_conclude.3" => [ + "doc/man3/SSL_stream_conclude.pod" + ], + "doc/man/man3/SSL_stream_reset.3" => [ + "doc/man3/SSL_stream_reset.pod" + ], "doc/man/man3/SSL_want.3" => [ "doc/man3/SSL_want.pod" ], @@ -15113,8 +17507,8 @@ our %unified_info = ( "doc/man/man3/TS_RESP_CTX_new.3" => [ "doc/man3/TS_RESP_CTX_new.pod" ], - "doc/man/man3/TS_VERIFY_CTX_set_certs.3" => [ - "doc/man3/TS_VERIFY_CTX_set_certs.pod" + "doc/man/man3/TS_VERIFY_CTX.3" => [ + "doc/man3/TS_VERIFY_CTX.pod" ], "doc/man/man3/UI_STRING.3" => [ "doc/man3/UI_STRING.pod" @@ -15134,6 +17528,21 @@ our %unified_info = ( "doc/man/man3/X509V3_set_ctx.3" => [ "doc/man3/X509V3_set_ctx.pod" ], + "doc/man/man3/X509_ACERT_add1_attr.3" => [ + "doc/man3/X509_ACERT_add1_attr.pod" + ], + "doc/man/man3/X509_ACERT_add_attr_nconf.3" => [ + "doc/man3/X509_ACERT_add_attr_nconf.pod" + ], + "doc/man/man3/X509_ACERT_get0_holder_baseCertId.3" => [ + "doc/man3/X509_ACERT_get0_holder_baseCertId.pod" + ], + "doc/man/man3/X509_ACERT_get_attr.3" => [ + "doc/man3/X509_ACERT_get_attr.pod" + ], + "doc/man/man3/X509_ACERT_print_ex.3" => [ + "doc/man3/X509_ACERT_print_ex.pod" + ], "doc/man/man3/X509_ALGOR_dup.3" => [ "doc/man3/X509_ALGOR_dup.pod" ], @@ -15182,6 +17591,9 @@ our %unified_info = ( "doc/man/man3/X509_SIG_get0.3" => [ "doc/man3/X509_SIG_get0.pod" ], + "doc/man/man3/X509_STORE_CTX_get_by_subject.3" => [ + "doc/man3/X509_STORE_CTX_get_by_subject.pod" + ], "doc/man/man3/X509_STORE_CTX_get_error.3" => [ "doc/man3/X509_STORE_CTX_get_error.pod" ], @@ -15248,6 +17660,9 @@ our %unified_info = ( "doc/man/man3/X509_get0_uids.3" => [ "doc/man3/X509_get0_uids.pod" ], + "doc/man/man3/X509_get_default_cert_file.3" => [ + "doc/man3/X509_get_default_cert_file.pod" + ], "doc/man/man3/X509_get_extension_flags.3" => [ "doc/man3/X509_get_extension_flags.pod" ], @@ -15371,9 +17786,15 @@ our %unified_info = ( "doc/man/man7/EVP_CIPHER-SM4.7" => [ "doc/man7/EVP_CIPHER-SM4.pod" ], + "doc/man/man7/EVP_KDF-ARGON2.7" => [ + "doc/man7/EVP_KDF-ARGON2.pod" + ], "doc/man/man7/EVP_KDF-HKDF.7" => [ "doc/man7/EVP_KDF-HKDF.pod" ], + "doc/man/man7/EVP_KDF-HMAC-DRBG.7" => [ + "doc/man7/EVP_KDF-HMAC-DRBG.pod" + ], "doc/man/man7/EVP_KDF-KB.7" => [ "doc/man7/EVP_KDF-KB.pod" ], @@ -15389,6 +17810,9 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-PKCS12KDF.7" => [ "doc/man7/EVP_KDF-PKCS12KDF.pod" ], + "doc/man/man7/EVP_KDF-PVKKDF.7" => [ + "doc/man7/EVP_KDF-PVKKDF.pod" + ], "doc/man/man7/EVP_KDF-SCRYPT.7" => [ "doc/man7/EVP_KDF-SCRYPT.pod" ], @@ -15413,9 +17837,18 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-X963.7" => [ "doc/man7/EVP_KDF-X963.pod" ], + "doc/man/man7/EVP_KEM-EC.7" => [ + "doc/man7/EVP_KEM-EC.pod" + ], + "doc/man/man7/EVP_KEM-ML-KEM.7" => [ + "doc/man7/EVP_KEM-ML-KEM.pod" + ], "doc/man/man7/EVP_KEM-RSA.7" => [ "doc/man7/EVP_KEM-RSA.pod" ], + "doc/man/man7/EVP_KEM-X25519.7" => [ + "doc/man7/EVP_KEM-X25519.pod" + ], "doc/man/man7/EVP_KEYEXCH-DH.7" => [ "doc/man7/EVP_KEYEXCH-DH.pod" ], @@ -15449,6 +17882,9 @@ our %unified_info = ( "doc/man/man7/EVP_MD-BLAKE2.7" => [ "doc/man7/EVP_MD-BLAKE2.pod" ], + "doc/man/man7/EVP_MD-KECCAK.7" => [ + "doc/man7/EVP_MD-KECCAK.pod" + ], "doc/man/man7/EVP_MD-MD2.7" => [ "doc/man7/EVP_MD-MD2.pod" ], @@ -15506,15 +17942,27 @@ our %unified_info = ( "doc/man/man7/EVP_PKEY-HMAC.7" => [ "doc/man7/EVP_PKEY-HMAC.pod" ], + "doc/man/man7/EVP_PKEY-ML-DSA.7" => [ + "doc/man7/EVP_PKEY-ML-DSA.pod" + ], + "doc/man/man7/EVP_PKEY-ML-KEM.7" => [ + "doc/man7/EVP_PKEY-ML-KEM.pod" + ], "doc/man/man7/EVP_PKEY-RSA.7" => [ "doc/man7/EVP_PKEY-RSA.pod" ], + "doc/man/man7/EVP_PKEY-SLH-DSA.7" => [ + "doc/man7/EVP_PKEY-SLH-DSA.pod" + ], "doc/man/man7/EVP_PKEY-SM2.7" => [ "doc/man7/EVP_PKEY-SM2.pod" ], "doc/man/man7/EVP_PKEY-X25519.7" => [ "doc/man7/EVP_PKEY-X25519.pod" ], + "doc/man/man7/EVP_RAND-CRNG-TEST.7" => [ + "doc/man7/EVP_RAND-CRNG-TEST.pod" + ], "doc/man/man7/EVP_RAND-CTR-DRBG.7" => [ "doc/man7/EVP_RAND-CTR-DRBG.pod" ], @@ -15524,6 +17972,9 @@ our %unified_info = ( "doc/man/man7/EVP_RAND-HMAC-DRBG.7" => [ "doc/man7/EVP_RAND-HMAC-DRBG.pod" ], + "doc/man/man7/EVP_RAND-JITTER.7" => [ + "doc/man7/EVP_RAND-JITTER.pod" + ], "doc/man/man7/EVP_RAND-SEED-SRC.7" => [ "doc/man7/EVP_RAND-SEED-SRC.pod" ], @@ -15545,9 +17996,15 @@ our %unified_info = ( "doc/man/man7/EVP_SIGNATURE-HMAC.7" => [ "doc/man7/EVP_SIGNATURE-HMAC.pod" ], + "doc/man/man7/EVP_SIGNATURE-ML-DSA.7" => [ + "doc/man7/EVP_SIGNATURE-ML-DSA.pod" + ], "doc/man/man7/EVP_SIGNATURE-RSA.7" => [ "doc/man7/EVP_SIGNATURE-RSA.pod" ], + "doc/man/man7/EVP_SIGNATURE-SLH-DSA.7" => [ + "doc/man7/EVP_SIGNATURE-SLH-DSA.pod" + ], "doc/man/man7/OSSL_PROVIDER-FIPS.7" => [ "doc/man7/OSSL_PROVIDER-FIPS.pod" ], @@ -15563,6 +18020,9 @@ our %unified_info = ( "doc/man/man7/OSSL_PROVIDER-null.7" => [ "doc/man7/OSSL_PROVIDER-null.pod" ], + "doc/man/man7/OSSL_STORE-winstore.7" => [ + "doc/man7/OSSL_STORE-winstore.pod" + ], "doc/man/man7/RAND.7" => [ "doc/man7/RAND.pod" ], @@ -15575,9 +18035,6 @@ our %unified_info = ( "doc/man/man7/bio.7" => [ "doc/man7/bio.pod" ], - "doc/man/man7/crypto.7" => [ - "doc/man7/crypto.pod" - ], "doc/man/man7/ct.7" => [ "doc/man7/ct.pod" ], @@ -15608,9 +18065,6 @@ our %unified_info = ( "doc/man/man7/life_cycle-rand.7" => [ "doc/man7/life_cycle-rand.pod" ], - "doc/man/man7/migration_guide.7" => [ - "doc/man7/migration_guide.pod" - ], "doc/man/man7/openssl-core.h.7" => [ "doc/man7/openssl-core.h.pod" ], @@ -15626,12 +18080,66 @@ our %unified_info = ( "doc/man/man7/openssl-glossary.7" => [ "doc/man7/openssl-glossary.pod" ], + "doc/man/man7/openssl-qlog.7" => [ + "doc/man7/openssl-qlog.pod" + ], + "doc/man/man7/openssl-quic-concurrency.7" => [ + "doc/man7/openssl-quic-concurrency.pod" + ], + "doc/man/man7/openssl-quic.7" => [ + "doc/man7/openssl-quic.pod" + ], "doc/man/man7/openssl-threads.7" => [ "doc/man7/openssl-threads.pod" ], "doc/man/man7/openssl_user_macros.7" => [ "doc/man7/openssl_user_macros.pod" ], + "doc/man/man7/ossl-guide-introduction.7" => [ + "doc/man7/ossl-guide-introduction.pod" + ], + "doc/man/man7/ossl-guide-libcrypto-introduction.7" => [ + "doc/man7/ossl-guide-libcrypto-introduction.pod" + ], + "doc/man/man7/ossl-guide-libraries-introduction.7" => [ + "doc/man7/ossl-guide-libraries-introduction.pod" + ], + "doc/man/man7/ossl-guide-libssl-introduction.7" => [ + "doc/man7/ossl-guide-libssl-introduction.pod" + ], + "doc/man/man7/ossl-guide-migration.7" => [ + "doc/man7/ossl-guide-migration.pod" + ], + "doc/man/man7/ossl-guide-quic-client-block.7" => [ + "doc/man7/ossl-guide-quic-client-block.pod" + ], + "doc/man/man7/ossl-guide-quic-client-non-block.7" => [ + "doc/man7/ossl-guide-quic-client-non-block.pod" + ], + "doc/man/man7/ossl-guide-quic-introduction.7" => [ + "doc/man7/ossl-guide-quic-introduction.pod" + ], + "doc/man/man7/ossl-guide-quic-multi-stream.7" => [ + "doc/man7/ossl-guide-quic-multi-stream.pod" + ], + "doc/man/man7/ossl-guide-quic-server-block.7" => [ + "doc/man7/ossl-guide-quic-server-block.pod" + ], + "doc/man/man7/ossl-guide-quic-server-non-block.7" => [ + "doc/man7/ossl-guide-quic-server-non-block.pod" + ], + "doc/man/man7/ossl-guide-tls-client-block.7" => [ + "doc/man7/ossl-guide-tls-client-block.pod" + ], + "doc/man/man7/ossl-guide-tls-client-non-block.7" => [ + "doc/man7/ossl-guide-tls-client-non-block.pod" + ], + "doc/man/man7/ossl-guide-tls-introduction.7" => [ + "doc/man7/ossl-guide-tls-introduction.pod" + ], + "doc/man/man7/ossl-guide-tls-server-block.7" => [ + "doc/man7/ossl-guide-tls-server-block.pod" + ], "doc/man/man7/ossl_store-file.7" => [ "doc/man7/ossl_store-file.pod" ], @@ -15686,6 +18194,9 @@ our %unified_info = ( "doc/man/man7/provider-signature.7" => [ "doc/man7/provider-signature.pod" ], + "doc/man/man7/provider-skeymgmt.7" => [ + "doc/man7/provider-skeymgmt.pod" + ], "doc/man/man7/provider-storemgmt.7" => [ "doc/man7/provider-storemgmt.pod" ], @@ -15695,9 +18206,6 @@ our %unified_info = ( "doc/man/man7/proxy-certificates.7" => [ "doc/man7/proxy-certificates.pod" ], - "doc/man/man7/ssl.7" => [ - "doc/man7/ssl.pod" - ], "doc/man/man7/x509.7" => [ "doc/man7/x509.pod" ], @@ -15833,6 +18341,9 @@ our %unified_info = ( "doc/man1/openssl-sess_id.pod" => [ "doc/man1/openssl-sess_id.pod.in" ], + "doc/man1/openssl-skeyutl.pod" => [ + "doc/man1/openssl-skeyutl.pod.in" + ], "doc/man1/openssl-smime.pod" => [ "doc/man1/openssl-smime.pod.in" ], @@ -15869,12 +18380,30 @@ our %unified_info = ( "engines/e_padlock-x86_64.s" => [ "engines/asm/e_padlock-x86_64.pl" ], + "exporters/OpenSSLConfig.cmake" => [ + "exporters/cmake/OpenSSLConfig.cmake.in" + ], + "exporters/OpenSSLConfigVersion.cmake" => [ + "exporters/cmake/OpenSSLConfigVersion.cmake.in" + ], + "exporters/libcrypto.pc" => [ + "exporters/pkg-config/libcrypto.pc.in" + ], + "exporters/libssl.pc" => [ + "exporters/pkg-config/libssl.pc.in" + ], + "exporters/openssl.pc" => [ + "exporters/pkg-config/openssl.pc.in" + ], "include/crypto/bn_conf.h" => [ "include/crypto/bn_conf.h.in" ], "include/crypto/dso_conf.h" => [ "include/crypto/dso_conf.h.in" ], + "include/internal/param_names.h" => [ + "include/internal/param_names.h.in" + ], "include/openssl/asn1.h" => [ "include/openssl/asn1.h.in" ], @@ -15890,12 +18419,18 @@ our %unified_info = ( "include/openssl/cms.h" => [ "include/openssl/cms.h.in" ], + "include/openssl/comp.h" => [ + "include/openssl/comp.h.in" + ], "include/openssl/conf.h" => [ "include/openssl/conf.h.in" ], "include/openssl/configuration.h" => [ "include/openssl/configuration.h.in" ], + "include/openssl/core_names.h" => [ + "include/openssl/core_names.h.in" + ], "include/openssl/crmf.h" => [ "include/openssl/crmf.h.in" ], @@ -15944,20 +18479,47 @@ our %unified_info = ( "include/openssl/x509.h" => [ "include/openssl/x509.h.in" ], + "include/openssl/x509_acert.h" => [ + "include/openssl/x509_acert.h.in" + ], "include/openssl/x509_vfy.h" => [ "include/openssl/x509_vfy.h.in" ], "include/openssl/x509v3.h" => [ "include/openssl/x509v3.h.in" ], + "installdata.pm" => [ + "util/mkinstallvars.pl", + "\"PREFIX=\$(INSTALLTOP)\"", + "BINDIR=bin", + "\"LIBDIR=\$(LIBDIR)\"", + "\"libdir=\$(libdir)\"", + "INCLUDEDIR=include", + "APPLINKDIR=include/openssl", + "\"ENGINESDIR=\$(ENGINESDIR)\"", + "\"MODULESDIR=\$(MODULESDIR)\"", + "\"PKGCONFIGDIR=\$(PKGCONFIGDIR)\"", + "\"CMAKECONFIGDIR=\$(CMAKECONFIGDIR)\"", + "\"LDLIBS=\$(LIB_EX_LIBS)\"", + "\"VERSION=\$(VERSION)\"" + ], "libcrypto.ld" => [ "util/libcrypto.num", "libcrypto" ], + "libcrypto.pc" => [ + "exporters/pkg-config/libcrypto.pc.in" + ], "libssl.ld" => [ "util/libssl.num", "libssl" ], + "libssl.pc" => [ + "exporters/pkg-config/libssl.pc.in" + ], + "openssl.pc" => [ + "exporters/pkg-config/openssl.pc.in" + ], "providers/common/der/der_digests_gen.c" => [ "providers/common/der/der_digests_gen.c.in" ], @@ -15970,9 +18532,15 @@ our %unified_info = ( "providers/common/der/der_ecx_gen.c" => [ "providers/common/der/der_ecx_gen.c.in" ], + "providers/common/der/der_ml_dsa_gen.c" => [ + "providers/common/der/der_ml_dsa_gen.c.in" + ], "providers/common/der/der_rsa_gen.c" => [ "providers/common/der/der_rsa_gen.c.in" ], + "providers/common/der/der_slh_dsa_gen.c" => [ + "providers/common/der/der_slh_dsa_gen.c.in" + ], "providers/common/der/der_sm2_gen.c" => [ "providers/common/der/der_sm2_gen.c.in" ], @@ -15991,9 +18559,15 @@ our %unified_info = ( "providers/common/include/prov/der_ecx.h" => [ "providers/common/include/prov/der_ecx.h.in" ], + "providers/common/include/prov/der_ml_dsa.h" => [ + "providers/common/include/prov/der_ml_dsa.h.in" + ], "providers/common/include/prov/der_rsa.h" => [ "providers/common/include/prov/der_rsa.h.in" ], + "providers/common/include/prov/der_slh_dsa.h" => [ + "providers/common/include/prov/der_slh_dsa.h.in" + ], "providers/common/include/prov/der_sm2.h" => [ "providers/common/include/prov/der_sm2.h.in" ], @@ -16035,6 +18609,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "buffer" ], + "test/buildtest_byteorder.c" => [ + "test/generate_buildtest.pl", + "byteorder" + ], "test/buildtest_camellia.c" => [ "test/generate_buildtest.pl", "camellia" @@ -16067,10 +18645,6 @@ our %unified_info = ( "test/generate_buildtest.pl", "core_dispatch" ], - "test/buildtest_core_names.c" => [ - "test/generate_buildtest.pl", - "core_names" - ], "test/buildtest_core_object.c" => [ "test/generate_buildtest.pl", "core_object" @@ -16103,6 +18677,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "e_os2" ], + "test/buildtest_e_ostime.c" => [ + "test/generate_buildtest.pl", + "e_ostime" + ], "test/buildtest_ebcdic.c" => [ "test/generate_buildtest.pl", "ebcdic" @@ -16139,6 +18717,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "hmac" ], + "test/buildtest_hpke.c" => [ + "test/generate_buildtest.pl", + "hpke" + ], "test/buildtest_http.c" => [ "test/generate_buildtest.pl", "http" @@ -16147,6 +18729,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "idea" ], + "test/buildtest_indicator.c" => [ + "test/generate_buildtest.pl", + "indicator" + ], "test/buildtest_kdf.c" => [ "test/generate_buildtest.pl", "kdf" @@ -16167,6 +18753,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "mdc2" ], + "test/buildtest_ml_kem.c" => [ + "test/generate_buildtest.pl", + "ml_kem" + ], "test/buildtest_modes.c" => [ "test/generate_buildtest.pl", "modes" @@ -16207,6 +18797,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "provider" ], + "test/buildtest_quic.c" => [ + "test/generate_buildtest.pl", + "quic" + ], "test/buildtest_rand.c" => [ "test/generate_buildtest.pl", "rand" @@ -16263,6 +18857,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "symhacks" ], + "test/buildtest_thread.c" => [ + "test/generate_buildtest.pl", + "thread" + ], "test/buildtest_tls1.c" => [ "test/generate_buildtest.pl", "tls1" @@ -16343,6 +18941,7 @@ our %unified_info = ( "doc/html/man1/openssl-s_server.html", "doc/html/man1/openssl-s_time.html", "doc/html/man1/openssl-sess_id.html", + "doc/html/man1/openssl-skeyutl.html", "doc/html/man1/openssl-smime.html", "doc/html/man1/openssl-speed.html", "doc/html/man1/openssl-spkac.html", @@ -16392,6 +18991,7 @@ our %unified_info = ( "doc/html/man3/BIO_find_type.html", "doc/html/man3/BIO_get_data.html", "doc/html/man3/BIO_get_ex_new_index.html", + "doc/html/man3/BIO_get_rpoll_descriptor.html", "doc/html/man3/BIO_meth_new.html", "doc/html/man3/BIO_new.html", "doc/html/man3/BIO_new_CMS.html", @@ -16404,11 +19004,13 @@ our %unified_info = ( "doc/html/man3/BIO_s_connect.html", "doc/html/man3/BIO_s_core.html", "doc/html/man3/BIO_s_datagram.html", + "doc/html/man3/BIO_s_dgram_pair.html", "doc/html/man3/BIO_s_fd.html", "doc/html/man3/BIO_s_file.html", "doc/html/man3/BIO_s_mem.html", "doc/html/man3/BIO_s_null.html", "doc/html/man3/BIO_s_socket.html", + "doc/html/man3/BIO_sendmmsg.html", "doc/html/man3/BIO_set_callback.html", "doc/html/man3/BIO_should_retry.html", "doc/html/man3/BIO_socket_wait.html", @@ -16433,6 +19035,7 @@ our %unified_info = ( "doc/html/man3/BN_swap.html", "doc/html/man3/BN_zero.html", "doc/html/man3/BUF_MEM_new.html", + "doc/html/man3/CMAC_CTX.html", "doc/html/man3/CMS_EncryptedData_decrypt.html", "doc/html/man3/CMS_EncryptedData_encrypt.html", "doc/html/man3/CMS_EnvelopedData_create.html", @@ -16455,6 +19058,7 @@ our %unified_info = ( "doc/html/man3/CMS_uncompress.html", "doc/html/man3/CMS_verify.html", "doc/html/man3/CMS_verify_receipt.html", + "doc/html/man3/COMP_CTX_new.html", "doc/html/man3/CONF_modules_free.html", "doc/html/man3/CONF_modules_load_file.html", "doc/html/man3/CRYPTO_THREAD_run_once.html", @@ -16488,6 +19092,8 @@ our %unified_info = ( "doc/html/man3/DSA_size.html", "doc/html/man3/DTLS_get_data_mtu.html", "doc/html/man3/DTLS_set_timer_cb.html", + "doc/html/man3/DTLSv1_get_timeout.html", + "doc/html/man3/DTLSv1_handle_timeout.html", "doc/html/man3/DTLSv1_listen.html", "doc/html/man3/ECDSA_SIG_new.html", "doc/html/man3/ECDSA_sign.html", @@ -16534,6 +19140,7 @@ our %unified_info = ( "doc/html/man3/EVP_PKEY_CTX_ctrl.html", "doc/html/man3/EVP_PKEY_CTX_get0_libctx.html", "doc/html/man3/EVP_PKEY_CTX_get0_pkey.html", + "doc/html/man3/EVP_PKEY_CTX_get_algor.html", "doc/html/man3/EVP_PKEY_CTX_new.html", "doc/html/man3/EVP_PKEY_CTX_set1_pbe_pass.html", "doc/html/man3/EVP_PKEY_CTX_set_hkdf_md.html", @@ -16573,6 +19180,8 @@ our %unified_info = ( "doc/html/man3/EVP_PKEY_verify_recover.html", "doc/html/man3/EVP_RAND.html", "doc/html/man3/EVP_SIGNATURE.html", + "doc/html/man3/EVP_SKEY.html", + "doc/html/man3/EVP_SKEYMGMT.html", "doc/html/man3/EVP_SealInit.html", "doc/html/man3/EVP_SignInit.html", "doc/html/man3/EVP_VerifyInit.html", @@ -16602,6 +19211,7 @@ our %unified_info = ( "doc/html/man3/EVP_sm3.html", "doc/html/man3/EVP_sm4_cbc.html", "doc/html/man3/EVP_whirlpool.html", + "doc/html/man3/GENERAL_NAME.html", "doc/html/man3/HMAC.html", "doc/html/man3/MD5.html", "doc/html/man3/MDC2_Init.html", @@ -16626,14 +19236,18 @@ our %unified_info = ( "doc/html/man3/OPENSSL_init_ssl.html", "doc/html/man3/OPENSSL_instrument_bus.html", "doc/html/man3/OPENSSL_load_builtin_modules.html", + "doc/html/man3/OPENSSL_load_u16_le.html", "doc/html/man3/OPENSSL_malloc.html", + "doc/html/man3/OPENSSL_riscvcap.html", "doc/html/man3/OPENSSL_s390xcap.html", "doc/html/man3/OPENSSL_secure_malloc.html", "doc/html/man3/OPENSSL_strcasecmp.html", "doc/html/man3/OSSL_ALGORITHM.html", "doc/html/man3/OSSL_CALLBACK.html", + "doc/html/man3/OSSL_CMP_ATAV_set0.html", "doc/html/man3/OSSL_CMP_CTX_new.html", "doc/html/man3/OSSL_CMP_HDR_get0_transactionID.html", + "doc/html/man3/OSSL_CMP_ITAV_new_caCerts.html", "doc/html/man3/OSSL_CMP_ITAV_set0.html", "doc/html/man3/OSSL_CMP_MSG_get0_header.html", "doc/html/man3/OSSL_CMP_MSG_http_perform.html", @@ -16657,18 +19271,27 @@ our %unified_info = ( "doc/html/man3/OSSL_ENCODER_CTX.html", "doc/html/man3/OSSL_ENCODER_CTX_new_for_pkey.html", "doc/html/man3/OSSL_ENCODER_to_bio.html", + "doc/html/man3/OSSL_ERR_STATE_save.html", "doc/html/man3/OSSL_ESS_check_signing_certs.html", + "doc/html/man3/OSSL_GENERAL_NAMES_print.html", + "doc/html/man3/OSSL_HPKE_CTX_new.html", "doc/html/man3/OSSL_HTTP_REQ_CTX.html", "doc/html/man3/OSSL_HTTP_parse_url.html", "doc/html/man3/OSSL_HTTP_transfer.html", + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX.html", + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX_print.html", + "doc/html/man3/OSSL_INDICATOR_set_callback.html", "doc/html/man3/OSSL_ITEM.html", "doc/html/man3/OSSL_LIB_CTX.html", + "doc/html/man3/OSSL_LIB_CTX_set_conf_diagnostics.html", "doc/html/man3/OSSL_PARAM.html", "doc/html/man3/OSSL_PARAM_BLD.html", "doc/html/man3/OSSL_PARAM_allocate_from_text.html", "doc/html/man3/OSSL_PARAM_dup.html", "doc/html/man3/OSSL_PARAM_int.html", + "doc/html/man3/OSSL_PARAM_print_to_bio.html", "doc/html/man3/OSSL_PROVIDER.html", + "doc/html/man3/OSSL_QUIC_client_method.html", "doc/html/man3/OSSL_SELF_TEST_new.html", "doc/html/man3/OSSL_SELF_TEST_set_callback.html", "doc/html/man3/OSSL_STORE_INFO.html", @@ -16677,11 +19300,13 @@ our %unified_info = ( "doc/html/man3/OSSL_STORE_attach.html", "doc/html/man3/OSSL_STORE_expect.html", "doc/html/man3/OSSL_STORE_open.html", + "doc/html/man3/OSSL_sleep.html", "doc/html/man3/OSSL_trace_enabled.html", "doc/html/man3/OSSL_trace_get_category_num.html", "doc/html/man3/OSSL_trace_set_channel.html", "doc/html/man3/OpenSSL_add_all_algorithms.html", "doc/html/man3/OpenSSL_version.html", + "doc/html/man3/PBMAC1_get1_pbkdf2_param.html", "doc/html/man3/PEM_X509_INFO_read_bio_ex.html", "doc/html/man3/PEM_bytes_read_bio.html", "doc/html/man3/PEM_read.html", @@ -16694,6 +19319,7 @@ our %unified_info = ( "doc/html/man3/PKCS12_SAFEBAG_create_cert.html", "doc/html/man3/PKCS12_SAFEBAG_get0_attrs.html", "doc/html/man3/PKCS12_SAFEBAG_get1_cert.html", + "doc/html/man3/PKCS12_SAFEBAG_set0_attrs.html", "doc/html/man3/PKCS12_add1_attr_by_NID.html", "doc/html/man3/PKCS12_add_CSPName_asc.html", "doc/html/man3/PKCS12_add_cert.html", @@ -16785,6 +19411,7 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_sess_set_get_cb.html", "doc/html/man3/SSL_CTX_sessions.html", "doc/html/man3/SSL_CTX_set0_CA_list.html", + "doc/html/man3/SSL_CTX_set1_cert_comp_preference.html", "doc/html/man3/SSL_CTX_set1_curves.html", "doc/html/man3/SSL_CTX_set1_sigalgs.html", "doc/html/man3/SSL_CTX_set1_verify_cert_store.html", @@ -16798,6 +19425,7 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_ct_validation_callback.html", "doc/html/man3/SSL_CTX_set_ctlog_list_file.html", "doc/html/man3/SSL_CTX_set_default_passwd_cb.html", + "doc/html/man3/SSL_CTX_set_domain_flags.html", "doc/html/man3/SSL_CTX_set_generate_session_id.html", "doc/html/man3/SSL_CTX_set_info_callback.html", "doc/html/man3/SSL_CTX_set_keylog_callback.html", @@ -16805,6 +19433,7 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_min_proto_version.html", "doc/html/man3/SSL_CTX_set_mode.html", "doc/html/man3/SSL_CTX_set_msg_callback.html", + "doc/html/man3/SSL_CTX_set_new_pending_conn_cb.html", "doc/html/man3/SSL_CTX_set_num_tickets.html", "doc/html/man3/SSL_CTX_set_options.html", "doc/html/man3/SSL_CTX_set_psk_client_callback.html", @@ -16843,6 +19472,7 @@ our %unified_info = ( "doc/html/man3/SSL_SESSION_print.html", "doc/html/man3/SSL_SESSION_set1_id.html", "doc/html/man3/SSL_accept.html", + "doc/html/man3/SSL_accept_stream.html", "doc/html/man3/SSL_alert_type_string.html", "doc/html/man3/SSL_alloc_buffers.html", "doc/html/man3/SSL_check_chain.html", @@ -16852,59 +19482,90 @@ our %unified_info = ( "doc/html/man3/SSL_export_keying_material.html", "doc/html/man3/SSL_extension_supported.html", "doc/html/man3/SSL_free.html", + "doc/html/man3/SSL_get0_connection.html", + "doc/html/man3/SSL_get0_group_name.html", + "doc/html/man3/SSL_get0_peer_rpk.html", "doc/html/man3/SSL_get0_peer_scts.html", + "doc/html/man3/SSL_get1_builtin_sigalgs.html", "doc/html/man3/SSL_get_SSL_CTX.html", "doc/html/man3/SSL_get_all_async_fds.html", "doc/html/man3/SSL_get_certificate.html", "doc/html/man3/SSL_get_ciphers.html", "doc/html/man3/SSL_get_client_random.html", + "doc/html/man3/SSL_get_conn_close_info.html", "doc/html/man3/SSL_get_current_cipher.html", "doc/html/man3/SSL_get_default_timeout.html", "doc/html/man3/SSL_get_error.html", + "doc/html/man3/SSL_get_event_timeout.html", "doc/html/man3/SSL_get_extms_support.html", "doc/html/man3/SSL_get_fd.html", + "doc/html/man3/SSL_get_handshake_rtt.html", "doc/html/man3/SSL_get_peer_cert_chain.html", "doc/html/man3/SSL_get_peer_certificate.html", "doc/html/man3/SSL_get_peer_signature_nid.html", "doc/html/man3/SSL_get_peer_tmp_key.html", "doc/html/man3/SSL_get_psk_identity.html", "doc/html/man3/SSL_get_rbio.html", + "doc/html/man3/SSL_get_rpoll_descriptor.html", "doc/html/man3/SSL_get_session.html", "doc/html/man3/SSL_get_shared_sigalgs.html", + "doc/html/man3/SSL_get_stream_id.html", + "doc/html/man3/SSL_get_stream_read_state.html", + "doc/html/man3/SSL_get_value_uint.html", "doc/html/man3/SSL_get_verify_result.html", "doc/html/man3/SSL_get_version.html", "doc/html/man3/SSL_group_to_name.html", + "doc/html/man3/SSL_handle_events.html", "doc/html/man3/SSL_in_init.html", + "doc/html/man3/SSL_inject_net_dgram.html", "doc/html/man3/SSL_key_update.html", "doc/html/man3/SSL_library_init.html", "doc/html/man3/SSL_load_client_CA_file.html", "doc/html/man3/SSL_new.html", + "doc/html/man3/SSL_new_domain.html", + "doc/html/man3/SSL_new_listener.html", + "doc/html/man3/SSL_new_stream.html", "doc/html/man3/SSL_pending.html", + "doc/html/man3/SSL_poll.html", "doc/html/man3/SSL_read.html", "doc/html/man3/SSL_read_early_data.html", "doc/html/man3/SSL_rstate_string.html", "doc/html/man3/SSL_session_reused.html", "doc/html/man3/SSL_set1_host.html", + "doc/html/man3/SSL_set1_initial_peer_addr.html", + "doc/html/man3/SSL_set1_server_cert_type.html", "doc/html/man3/SSL_set_async_callback.html", "doc/html/man3/SSL_set_bio.html", + "doc/html/man3/SSL_set_blocking_mode.html", "doc/html/man3/SSL_set_connect_state.html", + "doc/html/man3/SSL_set_default_stream_mode.html", "doc/html/man3/SSL_set_fd.html", + "doc/html/man3/SSL_set_incoming_stream_policy.html", + "doc/html/man3/SSL_set_quic_tls_cbs.html", "doc/html/man3/SSL_set_retry_verify.html", "doc/html/man3/SSL_set_session.html", + "doc/html/man3/SSL_set_session_secret_cb.html", "doc/html/man3/SSL_set_shutdown.html", "doc/html/man3/SSL_set_verify_result.html", "doc/html/man3/SSL_shutdown.html", "doc/html/man3/SSL_state_string.html", + "doc/html/man3/SSL_stream_conclude.html", + "doc/html/man3/SSL_stream_reset.html", "doc/html/man3/SSL_want.html", "doc/html/man3/SSL_write.html", "doc/html/man3/TS_RESP_CTX_new.html", - "doc/html/man3/TS_VERIFY_CTX_set_certs.html", + "doc/html/man3/TS_VERIFY_CTX.html", "doc/html/man3/UI_STRING.html", "doc/html/man3/UI_UTIL_read_pw.html", "doc/html/man3/UI_create_method.html", "doc/html/man3/UI_new.html", "doc/html/man3/X509V3_get_d2i.html", "doc/html/man3/X509V3_set_ctx.html", + "doc/html/man3/X509_ACERT_add1_attr.html", + "doc/html/man3/X509_ACERT_add_attr_nconf.html", + "doc/html/man3/X509_ACERT_get0_holder_baseCertId.html", + "doc/html/man3/X509_ACERT_get_attr.html", + "doc/html/man3/X509_ACERT_print_ex.html", "doc/html/man3/X509_ALGOR_dup.html", "doc/html/man3/X509_ATTRIBUTE.html", "doc/html/man3/X509_CRL_get0_by_serial.html", @@ -16921,6 +19582,7 @@ our %unified_info = ( "doc/html/man3/X509_REQ_get_attr.html", "doc/html/man3/X509_REQ_get_extensions.html", "doc/html/man3/X509_SIG_get0.html", + "doc/html/man3/X509_STORE_CTX_get_by_subject.html", "doc/html/man3/X509_STORE_CTX_get_error.html", "doc/html/man3/X509_STORE_CTX_new.html", "doc/html/man3/X509_STORE_CTX_set_verify_cb.html", @@ -16943,6 +19605,7 @@ our %unified_info = ( "doc/html/man3/X509_get0_notBefore.html", "doc/html/man3/X509_get0_signature.html", "doc/html/man3/X509_get0_uids.html", + "doc/html/man3/X509_get_default_cert_file.html", "doc/html/man3/X509_get_extension_flags.html", "doc/html/man3/X509_get_pubkey.html", "doc/html/man3/X509_get_serialNumber.html", @@ -16988,12 +19651,15 @@ our %unified_info = ( "doc/html/man7/EVP_CIPHER-RC5.html", "doc/html/man7/EVP_CIPHER-SEED.html", "doc/html/man7/EVP_CIPHER-SM4.html", + "doc/html/man7/EVP_KDF-ARGON2.html", "doc/html/man7/EVP_KDF-HKDF.html", + "doc/html/man7/EVP_KDF-HMAC-DRBG.html", "doc/html/man7/EVP_KDF-KB.html", "doc/html/man7/EVP_KDF-KRB5KDF.html", "doc/html/man7/EVP_KDF-PBKDF1.html", "doc/html/man7/EVP_KDF-PBKDF2.html", "doc/html/man7/EVP_KDF-PKCS12KDF.html", + "doc/html/man7/EVP_KDF-PVKKDF.html", "doc/html/man7/EVP_KDF-SCRYPT.html", "doc/html/man7/EVP_KDF-SS.html", "doc/html/man7/EVP_KDF-SSHKDF.html", @@ -17002,7 +19668,10 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-X942-ASN1.html", "doc/html/man7/EVP_KDF-X942-CONCAT.html", "doc/html/man7/EVP_KDF-X963.html", + "doc/html/man7/EVP_KEM-EC.html", + "doc/html/man7/EVP_KEM-ML-KEM.html", "doc/html/man7/EVP_KEM-RSA.html", + "doc/html/man7/EVP_KEM-X25519.html", "doc/html/man7/EVP_KEYEXCH-DH.html", "doc/html/man7/EVP_KEYEXCH-ECDH.html", "doc/html/man7/EVP_KEYEXCH-X25519.html", @@ -17014,6 +19683,7 @@ our %unified_info = ( "doc/html/man7/EVP_MAC-Poly1305.html", "doc/html/man7/EVP_MAC-Siphash.html", "doc/html/man7/EVP_MD-BLAKE2.html", + "doc/html/man7/EVP_MD-KECCAK.html", "doc/html/man7/EVP_MD-MD2.html", "doc/html/man7/EVP_MD-MD4.html", "doc/html/man7/EVP_MD-MD5-SHA1.html", @@ -17033,12 +19703,17 @@ our %unified_info = ( "doc/html/man7/EVP_PKEY-EC.html", "doc/html/man7/EVP_PKEY-FFC.html", "doc/html/man7/EVP_PKEY-HMAC.html", + "doc/html/man7/EVP_PKEY-ML-DSA.html", + "doc/html/man7/EVP_PKEY-ML-KEM.html", "doc/html/man7/EVP_PKEY-RSA.html", + "doc/html/man7/EVP_PKEY-SLH-DSA.html", "doc/html/man7/EVP_PKEY-SM2.html", "doc/html/man7/EVP_PKEY-X25519.html", + "doc/html/man7/EVP_RAND-CRNG-TEST.html", "doc/html/man7/EVP_RAND-CTR-DRBG.html", "doc/html/man7/EVP_RAND-HASH-DRBG.html", "doc/html/man7/EVP_RAND-HMAC-DRBG.html", + "doc/html/man7/EVP_RAND-JITTER.html", "doc/html/man7/EVP_RAND-SEED-SRC.html", "doc/html/man7/EVP_RAND-TEST-RAND.html", "doc/html/man7/EVP_RAND.html", @@ -17046,17 +19721,19 @@ our %unified_info = ( "doc/html/man7/EVP_SIGNATURE-ECDSA.html", "doc/html/man7/EVP_SIGNATURE-ED25519.html", "doc/html/man7/EVP_SIGNATURE-HMAC.html", + "doc/html/man7/EVP_SIGNATURE-ML-DSA.html", "doc/html/man7/EVP_SIGNATURE-RSA.html", + "doc/html/man7/EVP_SIGNATURE-SLH-DSA.html", "doc/html/man7/OSSL_PROVIDER-FIPS.html", "doc/html/man7/OSSL_PROVIDER-base.html", "doc/html/man7/OSSL_PROVIDER-default.html", "doc/html/man7/OSSL_PROVIDER-legacy.html", "doc/html/man7/OSSL_PROVIDER-null.html", + "doc/html/man7/OSSL_STORE-winstore.html", "doc/html/man7/RAND.html", "doc/html/man7/RSA-PSS.html", "doc/html/man7/X25519.html", "doc/html/man7/bio.html", - "doc/html/man7/crypto.html", "doc/html/man7/ct.html", "doc/html/man7/des_modes.html", "doc/html/man7/evp.html", @@ -17067,14 +19744,31 @@ our %unified_info = ( "doc/html/man7/life_cycle-mac.html", "doc/html/man7/life_cycle-pkey.html", "doc/html/man7/life_cycle-rand.html", - "doc/html/man7/migration_guide.html", "doc/html/man7/openssl-core.h.html", "doc/html/man7/openssl-core_dispatch.h.html", "doc/html/man7/openssl-core_names.h.html", "doc/html/man7/openssl-env.html", "doc/html/man7/openssl-glossary.html", + "doc/html/man7/openssl-qlog.html", + "doc/html/man7/openssl-quic-concurrency.html", + "doc/html/man7/openssl-quic.html", "doc/html/man7/openssl-threads.html", "doc/html/man7/openssl_user_macros.html", + "doc/html/man7/ossl-guide-introduction.html", + "doc/html/man7/ossl-guide-libcrypto-introduction.html", + "doc/html/man7/ossl-guide-libraries-introduction.html", + "doc/html/man7/ossl-guide-libssl-introduction.html", + "doc/html/man7/ossl-guide-migration.html", + "doc/html/man7/ossl-guide-quic-client-block.html", + "doc/html/man7/ossl-guide-quic-client-non-block.html", + "doc/html/man7/ossl-guide-quic-introduction.html", + "doc/html/man7/ossl-guide-quic-multi-stream.html", + "doc/html/man7/ossl-guide-quic-server-block.html", + "doc/html/man7/ossl-guide-quic-server-non-block.html", + "doc/html/man7/ossl-guide-tls-client-block.html", + "doc/html/man7/ossl-guide-tls-client-non-block.html", + "doc/html/man7/ossl-guide-tls-introduction.html", + "doc/html/man7/ossl-guide-tls-server-block.html", "doc/html/man7/ossl_store-file.html", "doc/html/man7/ossl_store.html", "doc/html/man7/passphrase-encoding.html", @@ -17093,10 +19787,10 @@ our %unified_info = ( "doc/html/man7/provider-object.html", "doc/html/man7/provider-rand.html", "doc/html/man7/provider-signature.html", + "doc/html/man7/provider-skeymgmt.html", "doc/html/man7/provider-storemgmt.html", "doc/html/man7/provider.html", "doc/html/man7/proxy-certificates.html", - "doc/html/man7/ssl.html", "doc/html/man7/x509.html" ] }, @@ -17111,12 +19805,21 @@ our %unified_info = ( ] }, "includes" => { + "OpenSSLConfig.cmake" => [ + "." + ], + "OpenSSLConfigVersion.cmake" => [ + "." + ], "apps/asn1parse.o" => [ "apps" ], "apps/ca.o" => [ "apps" ], + "apps/ca_internals_test-bin-ca.o" => [ + "apps" + ], "apps/ciphers.o" => [ "apps" ], @@ -17343,6 +20046,9 @@ our %unified_info = ( "apps/openssl-bin-sess_id.o" => [ "apps" ], + "apps/openssl-bin-skeyutl.o" => [ + "apps" + ], "apps/openssl-bin-smime.o" => [ "apps" ], @@ -17430,6 +20136,9 @@ our %unified_info = ( "apps/sess_id.o" => [ "apps" ], + "apps/skeyutl.o" => [ + "apps" + ], "apps/smime.o" => [ "apps" ], @@ -17481,6 +20190,12 @@ our %unified_info = ( "crypto/aes/bsaes-armv7.o" => [ "crypto" ], + "crypto/aes/vpaes-armv8.o" => [ + "crypto" + ], + "crypto/aes/vpaes-loongarch64.o" => [ + "crypto" + ], "crypto/arm64cpuid.o" => [ "crypto" ], @@ -17532,9 +20247,15 @@ our %unified_info = ( "crypto/chacha/chacha-armv4.o" => [ "crypto" ], + "crypto/chacha/chacha-armv8-sve.o" => [ + "crypto" + ], "crypto/chacha/chacha-armv8.o" => [ "crypto" ], + "crypto/chacha/chacha-loongarch64.o" => [ + "crypto" + ], "crypto/chacha/chacha-s390x.o" => [ "crypto" ], @@ -17559,15 +20280,24 @@ our %unified_info = ( "crypto/ec/ecp_s390x_nistp.o" => [ "crypto" ], + "crypto/ec/ecp_sm2p256-armv8.o" => [ + "crypto" + ], + "crypto/ec/ecx_key.o" => [ + "crypto" + ], "crypto/ec/ecx_meth.o" => [ "crypto" ], - "crypto/ec/ecx_s390x.o" => [ + "crypto/ec/libcrypto-lib-ecx_key.o" => [ "crypto" ], "crypto/ec/libcrypto-lib-ecx_meth.o" => [ "crypto" ], + "crypto/ec/libfips-lib-ecx_key.o" => [ + "crypto" + ], "crypto/evp/e_aes.o" => [ "crypto", "crypto/modes" @@ -17639,9 +20369,18 @@ our %unified_info = ( "crypto/libfips-lib-cpuid.o" => [ "." ], + "crypto/md5/md5-aarch64.o" => [ + "crypto" + ], + "crypto/md5/md5-loongarch64.o" => [ + "crypto" + ], "crypto/md5/md5-sparcv9.o" => [ "crypto" ], + "crypto/modes/aes-gcm-armv8-unroll8_64.o" => [ + "crypto" + ], "crypto/modes/aes-gcm-armv8_64.o" => [ "crypto" ], @@ -17666,6 +20405,9 @@ our %unified_info = ( "crypto/modes/libfips-lib-gcm128.o" => [ "crypto" ], + "crypto/params_idx.c" => [ + "util/perl" + ], "crypto/poly1305/poly1305-armv4.o" => [ "crypto" ], @@ -17687,6 +20429,9 @@ our %unified_info = ( "crypto/sha/keccak1600-armv4.o" => [ "crypto" ], + "crypto/sha/keccak1600-armv8.o" => [ + "crypto" + ], "crypto/sha/sha1-armv4-large.o" => [ "crypto" ], @@ -17732,6 +20477,18 @@ our %unified_info = ( "crypto/sha/sha512-sparcv9.o" => [ "crypto" ], + "crypto/sm3/sm3-armv8.o" => [ + "crypto" + ], + "crypto/sm4/sm4-armv8.o" => [ + "crypto" + ], + "crypto/sm4/vpsm4-armv8.o" => [ + "crypto" + ], + "crypto/sm4/vpsm4_ex-armv8.o" => [ + "crypto" + ], "doc/man1/openssl-asn1parse.pod" => [ "doc" ], @@ -17864,6 +20621,9 @@ our %unified_info = ( "doc/man1/openssl-sess_id.pod" => [ "doc" ], + "doc/man1/openssl-skeyutl.pod" => [ + "doc" + ], "doc/man1/openssl-smime.pod" => [ "doc" ], @@ -17891,6 +20651,24 @@ our %unified_info = ( "doc/man1/openssl-x509.pod" => [ "doc" ], + "exporters/OpenSSLConfig.cmake" => [ + "." + ], + "exporters/OpenSSLConfigVersion.cmake" => [ + "." + ], + "exporters/libcrypto.pc" => [ + "." + ], + "exporters/libssl.pc" => [ + "." + ], + "exporters/openssl.pc" => [ + "." + ], + "fuzz/acert-test" => [ + "include" + ], "fuzz/asn1-test" => [ "include" ], @@ -17921,12 +20699,69 @@ our %unified_info = ( "fuzz/ct-test" => [ "include" ], + "fuzz/decoder-test" => [ + "include" + ], + "fuzz/dtlsclient-test" => [ + "include" + ], + "fuzz/dtlsserver-test" => [ + "include" + ], + "fuzz/hashtable-test" => [ + "include" + ], + "fuzz/ml-dsa-test" => [ + "include" + ], + "fuzz/ml-kem-test" => [ + "include" + ], + "fuzz/pem-test" => [ + "include" + ], + "fuzz/provider-test" => [ + "include" + ], + "fuzz/punycode-test" => [ + "include" + ], + "fuzz/quic-client-test" => [ + "include" + ], + "fuzz/quic-lcidm-test" => [ + "include" + ], + "fuzz/quic-rcidm-test" => [ + "include" + ], + "fuzz/quic-server-test" => [ + "include" + ], + "fuzz/quic-srtm-test" => [ + "include" + ], "fuzz/server-test" => [ "include" ], + "fuzz/slh-dsa-test" => [ + "include" + ], + "fuzz/smime-test" => [ + "include" + ], + "fuzz/v3name-test" => [ + "include" + ], "fuzz/x509-test" => [ "include" ], + "include/internal/param_names.h" => [ + "util/perl" + ], + "include/openssl/core_names.h" => [ + "util/perl" + ], "libcrypto" => [ ".", "include", @@ -17937,6 +20772,9 @@ our %unified_info = ( ".", "util/perl/OpenSSL" ], + "libcrypto.pc" => [ + "." + ], "libssl" => [ ".", "include" @@ -17945,6 +20783,12 @@ our %unified_info = ( ".", "util/perl/OpenSSL" ], + "libssl.pc" => [ + "." + ], + "openssl.pc" => [ + "." + ], "providers/common/der/der_digests_gen.c" => [ "providers/common/der" ], @@ -17984,6 +20828,15 @@ our %unified_info = ( "providers/common/der/der_ecx_key.o" => [ "providers/common/include/prov" ], + "providers/common/der/der_ml_dsa_gen.c" => [ + "providers/common/der" + ], + "providers/common/der/der_ml_dsa_gen.o" => [ + "providers/common/include/prov" + ], + "providers/common/der/der_ml_dsa_key.o" => [ + "providers/common/include/prov" + ], "providers/common/der/der_rsa_gen.c" => [ "providers/common/der" ], @@ -17996,6 +20849,15 @@ our %unified_info = ( "providers/common/der/der_rsa_sig.o" => [ "providers/common/include/prov" ], + "providers/common/der/der_slh_dsa_gen.c" => [ + "providers/common/der" + ], + "providers/common/der/der_slh_dsa_gen.o" => [ + "providers/common/include/prov" + ], + "providers/common/der/der_slh_dsa_key.o" => [ + "providers/common/include/prov" + ], "providers/common/der/der_sm2_gen.c" => [ "providers/common/der" ], @@ -18041,12 +20903,24 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ecx_key.o" => [ "providers/common/include/prov" ], + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o" => [ + "providers/common/include/prov" + ], + "providers/common/der/libcommon-lib-der_ml_dsa_key.o" => [ + "providers/common/include/prov" + ], "providers/common/der/libcommon-lib-der_rsa_gen.o" => [ "providers/common/include/prov" ], "providers/common/der/libcommon-lib-der_rsa_key.o" => [ "providers/common/include/prov" ], + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o" => [ + "providers/common/include/prov" + ], + "providers/common/der/libcommon-lib-der_slh_dsa_key.o" => [ + "providers/common/include/prov" + ], "providers/common/der/libcommon-lib-der_wrap_gen.o" => [ "providers/common/include/prov" ], @@ -18077,9 +20951,15 @@ our %unified_info = ( "providers/common/include/prov/der_ecx.h" => [ "providers/common/der" ], + "providers/common/include/prov/der_ml_dsa.h" => [ + "providers/common/der" + ], "providers/common/include/prov/der_rsa.h" => [ "providers/common/der" ], + "providers/common/include/prov/der_slh_dsa.h" => [ + "providers/common/der" + ], "providers/common/include/prov/der_sm2.h" => [ "providers/common/der" ], @@ -18122,9 +21002,15 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-eddsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/libdefault-lib-rsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/libdefault-lib-sm2_sig.o" => [ "providers/common/include/prov" ], @@ -18137,12 +21023,24 @@ our %unified_info = ( "providers/implementations/signature/libfips-lib-eddsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/libfips-lib-rsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o" => [ + "providers/common/include/prov" + ], + "providers/implementations/signature/ml_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/rsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/slh_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/sm2_sig.o" => [ "providers/common/include/prov" ], @@ -18155,28 +21053,39 @@ our %unified_info = ( "crypto", "include", "providers/implementations/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" ], "providers/libdefault.a" => [ ".", "crypto", "include", "providers/implementations/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" ], "providers/libfips.a" => [ ".", "crypto", "include", "providers/implementations/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" ], "providers/liblegacy.a" => [ ".", "crypto", "include", "providers/implementations/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" + ], + "providers/libtemplate.a" => [ + "crypto", + "include", + "providers/implementations/include", + "providers/common/include", + "providers/fips/include" ], "test/aborttest" => [ "include", @@ -18245,6 +21154,14 @@ our %unified_info = ( "include", "apps/include" ], + "test/bio_addr_test" => [ + "include", + "apps/include" + ], + "test/bio_base64_test" => [ + "include", + "apps/include" + ], "test/bio_callback_test" => [ "include", "apps/include" @@ -18253,11 +21170,20 @@ our %unified_info = ( "include", "apps/include" ], + "test/bio_dgram_test" => [ + "include", + "apps/include", + "." + ], "test/bio_enc_test" => [ "include", "apps/include" ], - "test/bio_memleak_test" => [ + "test/bio_memleak_test" => [ + "include", + "apps/include" + ], + "test/bio_meth_test" => [ "include", "apps/include" ], @@ -18274,6 +21200,11 @@ our %unified_info = ( "include", "apps/include" ], + "test/bio_tfo_test" => [ + "include", + "apps/include", + "." + ], "test/bioprinttest" => [ "include", "apps/include" @@ -18288,6 +21219,9 @@ our %unified_info = ( "include", "apps/include" ], + "test/build_wincrypt_test" => [ + "include" + ], "test/buildtest_c_aes" => [ "include" ], @@ -18303,6 +21237,9 @@ our %unified_info = ( "test/buildtest_c_buffer" => [ "include" ], + "test/buildtest_c_byteorder" => [ + "include" + ], "test/buildtest_c_camellia" => [ "include" ], @@ -18327,9 +21264,6 @@ our %unified_info = ( "test/buildtest_c_core_dispatch" => [ "include" ], - "test/buildtest_c_core_names" => [ - "include" - ], "test/buildtest_c_core_object" => [ "include" ], @@ -18354,6 +21288,9 @@ our %unified_info = ( "test/buildtest_c_e_os2" => [ "include" ], + "test/buildtest_c_e_ostime" => [ + "include" + ], "test/buildtest_c_ebcdic" => [ "include" ], @@ -18381,12 +21318,18 @@ our %unified_info = ( "test/buildtest_c_hmac" => [ "include" ], + "test/buildtest_c_hpke" => [ + "include" + ], "test/buildtest_c_http" => [ "include" ], "test/buildtest_c_idea" => [ "include" ], + "test/buildtest_c_indicator" => [ + "include" + ], "test/buildtest_c_kdf" => [ "include" ], @@ -18402,6 +21345,9 @@ our %unified_info = ( "test/buildtest_c_mdc2" => [ "include" ], + "test/buildtest_c_ml_kem" => [ + "include" + ], "test/buildtest_c_modes" => [ "include" ], @@ -18432,6 +21378,9 @@ our %unified_info = ( "test/buildtest_c_provider" => [ "include" ], + "test/buildtest_c_quic" => [ + "include" + ], "test/buildtest_c_rand" => [ "include" ], @@ -18474,6 +21423,9 @@ our %unified_info = ( "test/buildtest_c_symhacks" => [ "include" ], + "test/buildtest_c_thread" => [ + "include" + ], "test/buildtest_c_tls1" => [ "include" ], @@ -18489,10 +21441,24 @@ our %unified_info = ( "test/buildtest_c_whrlpool" => [ "include" ], + "test/byteorder_test" => [ + "include", + "apps/include" + ], + "test/ca_internals_test" => [ + ".", + "include", + "apps/include" + ], "test/casttest" => [ "include", "apps/include" ], + "test/cert_comp_test" => [ + "include", + "apps/include", + "." + ], "test/chacha_internal_test" => [ ".", "include", @@ -18616,6 +21582,11 @@ our %unified_info = ( "include", "apps/include" ], + "test/decoder_propq_test" => [ + ".", + "include", + "apps/include" + ], "test/defltfips_test" => [ "include", "apps/include" @@ -18631,7 +21602,8 @@ our %unified_info = ( "test/drbgtest" => [ "include", "apps/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" ], "test/dsa_no_digest_size_test" => [ "include", @@ -18674,7 +21646,9 @@ our %unified_info = ( "test/endecode_test" => [ ".", "include", - "apps/include" + "apps/include", + "providers/common/include", + "providers/implementations/include" ], "test/endecoder_legacy_test" => [ ".", @@ -18719,6 +21693,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/evp_pkey_dhkem_test" => [ + "include", + "apps/include" + ], "test/evp_pkey_dparams_test" => [ "include", "apps/include" @@ -18727,10 +21705,18 @@ our %unified_info = ( "include", "apps/include" ], + "test/evp_skey_test" => [ + "include", + "apps/include" + ], "test/evp_test" => [ "include", "apps/include" ], + "test/evp_xof_test" => [ + "include", + "apps/include" + ], "test/exdatatest" => [ "include", "apps/include" @@ -18831,22 +21817,62 @@ our %unified_info = ( ".", "include" ], + "test/helpers/json_test-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/helpers/pkcs12.o" => [ ".", "include" ], + "test/helpers/pkcs12_api_test-bin-pkcs12.o" => [ + ".", + "include" + ], "test/helpers/pkcs12_format_test-bin-pkcs12.o" => [ ".", "include" ], + "test/helpers/quic_multistream_test-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quic_newcid_test-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quic_radix_test-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quic_srt_gen_test-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quicapitest-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quicfaultstest-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/helpers/recordlentest-bin-ssltestlib.o" => [ ".", "include" ], + "test/helpers/rpktest-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/helpers/servername_test-bin-ssltestlib.o" => [ ".", "include" ], + "test/helpers/ssl_handshake_rtt_test-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/helpers/ssl_test-bin-handshake.o" => [ ".", "include" @@ -18880,6 +21906,10 @@ our %unified_info = ( ".", "include" ], + "test/helpers/tls13groupselection_test-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/hexstr_test" => [ ".", "include", @@ -18889,6 +21919,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/hpke_test" => [ + "include", + "apps/include" + ], "test/http_test" => [ "include", "apps/include" @@ -18901,6 +21935,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/json_test" => [ + "include", + "apps/include" + ], "test/keymgmt_internal_test" => [ ".", "include", @@ -18915,6 +21953,10 @@ our %unified_info = ( "apps/include", "." ], + "test/list_test" => [ + "include", + "apps/include" + ], "test/localetest" => [ "include", "apps/include" @@ -18928,10 +21970,27 @@ our %unified_info = ( "include", "apps/include" ], + "test/membio_test" => [ + "include", + "apps/include", + "." + ], "test/memleaktest" => [ "include", "apps/include" ], + "test/ml_dsa_test" => [ + "include", + "apps/include" + ], + "test/ml_kem_evp_extra_test" => [ + "include", + "apps/include" + ], + "test/ml_kem_internal_test" => [ + "include", + "apps/include" + ], "test/modes_internal_test" => [ ".", "include", @@ -18966,6 +22025,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/pairwise_fail_test" => [ + "include", + "apps/include" + ], "test/param_build_test" => [ "include", "apps/include" @@ -18999,6 +22062,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/pkcs12_api_test" => [ + "include", + "apps/include" + ], "test/pkcs12_format_test" => [ "include", "apps/include" @@ -19020,6 +22087,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/priority_queue_test" => [ + "include", + "apps/include" + ], "test/property_test" => [ ".", "include", @@ -19033,6 +22104,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/provider_default_search_path_test" => [ + "include", + "apps/include" + ], "test/provider_fallback_test" => [ "include", "apps/include" @@ -19059,6 +22134,97 @@ our %unified_info = ( "include", "apps/include" ], + "test/quic_ackm_test" => [ + "include", + "apps/include" + ], + "test/quic_cc_test" => [ + "include", + "apps/include" + ], + "test/quic_cfq_test" => [ + "include", + "apps/include" + ], + "test/quic_client_test" => [ + "include", + "apps/include" + ], + "test/quic_fc_test" => [ + "include", + "apps/include" + ], + "test/quic_fifd_test" => [ + "include", + "apps/include" + ], + "test/quic_lcidm_test" => [ + "include", + "apps/include" + ], + "test/quic_multistream_test" => [ + "include", + "apps/include" + ], + "test/quic_newcid_test" => [ + "include", + "apps/include", + "." + ], + "test/quic_qlog_test" => [ + "include", + "apps/include" + ], + "test/quic_radix_test" => [ + "include", + "apps/include" + ], + "test/quic_rcidm_test" => [ + "include", + "apps/include" + ], + "test/quic_record_test" => [ + "include", + "apps/include" + ], + "test/quic_srt_gen_test" => [ + "include", + "apps/include", + "." + ], + "test/quic_srtm_test" => [ + "include", + "apps/include" + ], + "test/quic_stream_test" => [ + "include", + "apps/include" + ], + "test/quic_tserver_test" => [ + "include", + "apps/include" + ], + "test/quic_txp_test" => [ + "include", + "apps/include" + ], + "test/quic_txpim_test" => [ + "include", + "apps/include" + ], + "test/quic_wire_test" => [ + "include", + "apps/include" + ], + "test/quicapitest" => [ + "include", + "apps/include" + ], + "test/quicfaultstest" => [ + "include", + "apps/include", + "." + ], "test/rand_status_test" => [ "include", "apps/include" @@ -19079,14 +22245,20 @@ our %unified_info = ( "include", "apps/include" ], - "test/rdrand_sanitytest" => [ + "test/rdcpu_sanitytest" => [ "include", - "apps/include" + "apps/include", + "crypto" ], "test/recordlentest" => [ "include", "apps/include" ], + "test/rpktest" => [ + "include", + "apps/include", + "." + ], "test/rsa_complex" => [ "include", "apps/include" @@ -19105,6 +22277,15 @@ our %unified_info = ( "include", "apps/include" ], + "test/rsa_x931_test" => [ + ".", + "include", + "apps/include" + ], + "test/safe_math_test" => [ + "include", + "apps/include" + ], "test/sanitytest" => [ "include", "apps/include" @@ -19126,6 +22307,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/slh_dsa_test" => [ + "include", + "apps/include" + ], "test/sm2_internal_test" => [ "include", "apps/include" @@ -19156,6 +22341,11 @@ our %unified_info = ( "include", "apps/include" ], + "test/ssl_handshake_rtt_test" => [ + "include", + "apps/include", + "." + ], "test/ssl_old_test" => [ ".", "include", @@ -19172,6 +22362,7 @@ our %unified_info = ( "test/sslapitest" => [ "include", "apps/include", + "providers/common/include", "." ], "test/sslbuffertest" => [ @@ -19186,6 +22377,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/strtoultest" => [ + "include", + "apps/include" + ], "test/sysdefaulttest" => [ "include", "apps/include" @@ -19194,7 +22389,13 @@ our %unified_info = ( "include", "apps/include" ], + "test/threadpool_test" => [ + ".", + "include", + "apps/include" + ], "test/threadstest" => [ + ".", "include", "apps/include" ], @@ -19206,6 +22407,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/time_test" => [ + "include", + "apps/include" + ], "test/tls13ccstest" => [ "include", "apps/include" @@ -19215,6 +22420,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/tls13groupselection_test" => [ + "include", + "apps/include" + ], "test/trace_api_test" => [ ".", "include", @@ -19253,6 +22462,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/x509_acert_test" => [ + "include", + "apps/include" + ], "test/x509_check_cert_pkey_test" => [ "include", "apps/include" @@ -19266,6 +22479,18 @@ our %unified_info = ( "include", "apps/include" ], + "test/x509_load_cert_file_test" => [ + "include", + "apps/include" + ], + "test/x509_req_test" => [ + "include", + "apps/include" + ], + "test/x509_test" => [ + "include", + "apps/include" + ], "test/x509_time_test" => [ "include", "apps/include" @@ -19287,6 +22512,7 @@ our %unified_info = ( "providers/libdefault.a", "providers/libfips.a", "providers/liblegacy.a", + "providers/libtemplate.a", "test/libtestutil.a" ], "mandocs" => { @@ -19339,6 +22565,7 @@ our %unified_info = ( "doc/man/man1/openssl-s_server.1", "doc/man/man1/openssl-s_time.1", "doc/man/man1/openssl-sess_id.1", + "doc/man/man1/openssl-skeyutl.1", "doc/man/man1/openssl-smime.1", "doc/man/man1/openssl-speed.1", "doc/man/man1/openssl-spkac.1", @@ -19388,6 +22615,7 @@ our %unified_info = ( "doc/man/man3/BIO_find_type.3", "doc/man/man3/BIO_get_data.3", "doc/man/man3/BIO_get_ex_new_index.3", + "doc/man/man3/BIO_get_rpoll_descriptor.3", "doc/man/man3/BIO_meth_new.3", "doc/man/man3/BIO_new.3", "doc/man/man3/BIO_new_CMS.3", @@ -19400,11 +22628,13 @@ our %unified_info = ( "doc/man/man3/BIO_s_connect.3", "doc/man/man3/BIO_s_core.3", "doc/man/man3/BIO_s_datagram.3", + "doc/man/man3/BIO_s_dgram_pair.3", "doc/man/man3/BIO_s_fd.3", "doc/man/man3/BIO_s_file.3", "doc/man/man3/BIO_s_mem.3", "doc/man/man3/BIO_s_null.3", "doc/man/man3/BIO_s_socket.3", + "doc/man/man3/BIO_sendmmsg.3", "doc/man/man3/BIO_set_callback.3", "doc/man/man3/BIO_should_retry.3", "doc/man/man3/BIO_socket_wait.3", @@ -19429,6 +22659,7 @@ our %unified_info = ( "doc/man/man3/BN_swap.3", "doc/man/man3/BN_zero.3", "doc/man/man3/BUF_MEM_new.3", + "doc/man/man3/CMAC_CTX.3", "doc/man/man3/CMS_EncryptedData_decrypt.3", "doc/man/man3/CMS_EncryptedData_encrypt.3", "doc/man/man3/CMS_EnvelopedData_create.3", @@ -19451,6 +22682,7 @@ our %unified_info = ( "doc/man/man3/CMS_uncompress.3", "doc/man/man3/CMS_verify.3", "doc/man/man3/CMS_verify_receipt.3", + "doc/man/man3/COMP_CTX_new.3", "doc/man/man3/CONF_modules_free.3", "doc/man/man3/CONF_modules_load_file.3", "doc/man/man3/CRYPTO_THREAD_run_once.3", @@ -19484,6 +22716,8 @@ our %unified_info = ( "doc/man/man3/DSA_size.3", "doc/man/man3/DTLS_get_data_mtu.3", "doc/man/man3/DTLS_set_timer_cb.3", + "doc/man/man3/DTLSv1_get_timeout.3", + "doc/man/man3/DTLSv1_handle_timeout.3", "doc/man/man3/DTLSv1_listen.3", "doc/man/man3/ECDSA_SIG_new.3", "doc/man/man3/ECDSA_sign.3", @@ -19530,6 +22764,7 @@ our %unified_info = ( "doc/man/man3/EVP_PKEY_CTX_ctrl.3", "doc/man/man3/EVP_PKEY_CTX_get0_libctx.3", "doc/man/man3/EVP_PKEY_CTX_get0_pkey.3", + "doc/man/man3/EVP_PKEY_CTX_get_algor.3", "doc/man/man3/EVP_PKEY_CTX_new.3", "doc/man/man3/EVP_PKEY_CTX_set1_pbe_pass.3", "doc/man/man3/EVP_PKEY_CTX_set_hkdf_md.3", @@ -19569,6 +22804,8 @@ our %unified_info = ( "doc/man/man3/EVP_PKEY_verify_recover.3", "doc/man/man3/EVP_RAND.3", "doc/man/man3/EVP_SIGNATURE.3", + "doc/man/man3/EVP_SKEY.3", + "doc/man/man3/EVP_SKEYMGMT.3", "doc/man/man3/EVP_SealInit.3", "doc/man/man3/EVP_SignInit.3", "doc/man/man3/EVP_VerifyInit.3", @@ -19598,6 +22835,7 @@ our %unified_info = ( "doc/man/man3/EVP_sm3.3", "doc/man/man3/EVP_sm4_cbc.3", "doc/man/man3/EVP_whirlpool.3", + "doc/man/man3/GENERAL_NAME.3", "doc/man/man3/HMAC.3", "doc/man/man3/MD5.3", "doc/man/man3/MDC2_Init.3", @@ -19622,14 +22860,18 @@ our %unified_info = ( "doc/man/man3/OPENSSL_init_ssl.3", "doc/man/man3/OPENSSL_instrument_bus.3", "doc/man/man3/OPENSSL_load_builtin_modules.3", + "doc/man/man3/OPENSSL_load_u16_le.3", "doc/man/man3/OPENSSL_malloc.3", + "doc/man/man3/OPENSSL_riscvcap.3", "doc/man/man3/OPENSSL_s390xcap.3", "doc/man/man3/OPENSSL_secure_malloc.3", "doc/man/man3/OPENSSL_strcasecmp.3", "doc/man/man3/OSSL_ALGORITHM.3", "doc/man/man3/OSSL_CALLBACK.3", + "doc/man/man3/OSSL_CMP_ATAV_set0.3", "doc/man/man3/OSSL_CMP_CTX_new.3", "doc/man/man3/OSSL_CMP_HDR_get0_transactionID.3", + "doc/man/man3/OSSL_CMP_ITAV_new_caCerts.3", "doc/man/man3/OSSL_CMP_ITAV_set0.3", "doc/man/man3/OSSL_CMP_MSG_get0_header.3", "doc/man/man3/OSSL_CMP_MSG_http_perform.3", @@ -19653,18 +22895,27 @@ our %unified_info = ( "doc/man/man3/OSSL_ENCODER_CTX.3", "doc/man/man3/OSSL_ENCODER_CTX_new_for_pkey.3", "doc/man/man3/OSSL_ENCODER_to_bio.3", + "doc/man/man3/OSSL_ERR_STATE_save.3", "doc/man/man3/OSSL_ESS_check_signing_certs.3", + "doc/man/man3/OSSL_GENERAL_NAMES_print.3", + "doc/man/man3/OSSL_HPKE_CTX_new.3", "doc/man/man3/OSSL_HTTP_REQ_CTX.3", "doc/man/man3/OSSL_HTTP_parse_url.3", "doc/man/man3/OSSL_HTTP_transfer.3", + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX.3", + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX_print.3", + "doc/man/man3/OSSL_INDICATOR_set_callback.3", "doc/man/man3/OSSL_ITEM.3", "doc/man/man3/OSSL_LIB_CTX.3", + "doc/man/man3/OSSL_LIB_CTX_set_conf_diagnostics.3", "doc/man/man3/OSSL_PARAM.3", "doc/man/man3/OSSL_PARAM_BLD.3", "doc/man/man3/OSSL_PARAM_allocate_from_text.3", "doc/man/man3/OSSL_PARAM_dup.3", "doc/man/man3/OSSL_PARAM_int.3", + "doc/man/man3/OSSL_PARAM_print_to_bio.3", "doc/man/man3/OSSL_PROVIDER.3", + "doc/man/man3/OSSL_QUIC_client_method.3", "doc/man/man3/OSSL_SELF_TEST_new.3", "doc/man/man3/OSSL_SELF_TEST_set_callback.3", "doc/man/man3/OSSL_STORE_INFO.3", @@ -19673,11 +22924,13 @@ our %unified_info = ( "doc/man/man3/OSSL_STORE_attach.3", "doc/man/man3/OSSL_STORE_expect.3", "doc/man/man3/OSSL_STORE_open.3", + "doc/man/man3/OSSL_sleep.3", "doc/man/man3/OSSL_trace_enabled.3", "doc/man/man3/OSSL_trace_get_category_num.3", "doc/man/man3/OSSL_trace_set_channel.3", "doc/man/man3/OpenSSL_add_all_algorithms.3", "doc/man/man3/OpenSSL_version.3", + "doc/man/man3/PBMAC1_get1_pbkdf2_param.3", "doc/man/man3/PEM_X509_INFO_read_bio_ex.3", "doc/man/man3/PEM_bytes_read_bio.3", "doc/man/man3/PEM_read.3", @@ -19690,6 +22943,7 @@ our %unified_info = ( "doc/man/man3/PKCS12_SAFEBAG_create_cert.3", "doc/man/man3/PKCS12_SAFEBAG_get0_attrs.3", "doc/man/man3/PKCS12_SAFEBAG_get1_cert.3", + "doc/man/man3/PKCS12_SAFEBAG_set0_attrs.3", "doc/man/man3/PKCS12_add1_attr_by_NID.3", "doc/man/man3/PKCS12_add_CSPName_asc.3", "doc/man/man3/PKCS12_add_cert.3", @@ -19781,6 +23035,7 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_sess_set_get_cb.3", "doc/man/man3/SSL_CTX_sessions.3", "doc/man/man3/SSL_CTX_set0_CA_list.3", + "doc/man/man3/SSL_CTX_set1_cert_comp_preference.3", "doc/man/man3/SSL_CTX_set1_curves.3", "doc/man/man3/SSL_CTX_set1_sigalgs.3", "doc/man/man3/SSL_CTX_set1_verify_cert_store.3", @@ -19794,6 +23049,7 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_ct_validation_callback.3", "doc/man/man3/SSL_CTX_set_ctlog_list_file.3", "doc/man/man3/SSL_CTX_set_default_passwd_cb.3", + "doc/man/man3/SSL_CTX_set_domain_flags.3", "doc/man/man3/SSL_CTX_set_generate_session_id.3", "doc/man/man3/SSL_CTX_set_info_callback.3", "doc/man/man3/SSL_CTX_set_keylog_callback.3", @@ -19801,6 +23057,7 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_min_proto_version.3", "doc/man/man3/SSL_CTX_set_mode.3", "doc/man/man3/SSL_CTX_set_msg_callback.3", + "doc/man/man3/SSL_CTX_set_new_pending_conn_cb.3", "doc/man/man3/SSL_CTX_set_num_tickets.3", "doc/man/man3/SSL_CTX_set_options.3", "doc/man/man3/SSL_CTX_set_psk_client_callback.3", @@ -19839,6 +23096,7 @@ our %unified_info = ( "doc/man/man3/SSL_SESSION_print.3", "doc/man/man3/SSL_SESSION_set1_id.3", "doc/man/man3/SSL_accept.3", + "doc/man/man3/SSL_accept_stream.3", "doc/man/man3/SSL_alert_type_string.3", "doc/man/man3/SSL_alloc_buffers.3", "doc/man/man3/SSL_check_chain.3", @@ -19848,59 +23106,90 @@ our %unified_info = ( "doc/man/man3/SSL_export_keying_material.3", "doc/man/man3/SSL_extension_supported.3", "doc/man/man3/SSL_free.3", + "doc/man/man3/SSL_get0_connection.3", + "doc/man/man3/SSL_get0_group_name.3", + "doc/man/man3/SSL_get0_peer_rpk.3", "doc/man/man3/SSL_get0_peer_scts.3", + "doc/man/man3/SSL_get1_builtin_sigalgs.3", "doc/man/man3/SSL_get_SSL_CTX.3", "doc/man/man3/SSL_get_all_async_fds.3", "doc/man/man3/SSL_get_certificate.3", "doc/man/man3/SSL_get_ciphers.3", "doc/man/man3/SSL_get_client_random.3", + "doc/man/man3/SSL_get_conn_close_info.3", "doc/man/man3/SSL_get_current_cipher.3", "doc/man/man3/SSL_get_default_timeout.3", "doc/man/man3/SSL_get_error.3", + "doc/man/man3/SSL_get_event_timeout.3", "doc/man/man3/SSL_get_extms_support.3", "doc/man/man3/SSL_get_fd.3", + "doc/man/man3/SSL_get_handshake_rtt.3", "doc/man/man3/SSL_get_peer_cert_chain.3", "doc/man/man3/SSL_get_peer_certificate.3", "doc/man/man3/SSL_get_peer_signature_nid.3", "doc/man/man3/SSL_get_peer_tmp_key.3", "doc/man/man3/SSL_get_psk_identity.3", "doc/man/man3/SSL_get_rbio.3", + "doc/man/man3/SSL_get_rpoll_descriptor.3", "doc/man/man3/SSL_get_session.3", "doc/man/man3/SSL_get_shared_sigalgs.3", + "doc/man/man3/SSL_get_stream_id.3", + "doc/man/man3/SSL_get_stream_read_state.3", + "doc/man/man3/SSL_get_value_uint.3", "doc/man/man3/SSL_get_verify_result.3", "doc/man/man3/SSL_get_version.3", "doc/man/man3/SSL_group_to_name.3", + "doc/man/man3/SSL_handle_events.3", "doc/man/man3/SSL_in_init.3", + "doc/man/man3/SSL_inject_net_dgram.3", "doc/man/man3/SSL_key_update.3", "doc/man/man3/SSL_library_init.3", "doc/man/man3/SSL_load_client_CA_file.3", "doc/man/man3/SSL_new.3", + "doc/man/man3/SSL_new_domain.3", + "doc/man/man3/SSL_new_listener.3", + "doc/man/man3/SSL_new_stream.3", "doc/man/man3/SSL_pending.3", + "doc/man/man3/SSL_poll.3", "doc/man/man3/SSL_read.3", "doc/man/man3/SSL_read_early_data.3", "doc/man/man3/SSL_rstate_string.3", "doc/man/man3/SSL_session_reused.3", "doc/man/man3/SSL_set1_host.3", + "doc/man/man3/SSL_set1_initial_peer_addr.3", + "doc/man/man3/SSL_set1_server_cert_type.3", "doc/man/man3/SSL_set_async_callback.3", "doc/man/man3/SSL_set_bio.3", + "doc/man/man3/SSL_set_blocking_mode.3", "doc/man/man3/SSL_set_connect_state.3", + "doc/man/man3/SSL_set_default_stream_mode.3", "doc/man/man3/SSL_set_fd.3", + "doc/man/man3/SSL_set_incoming_stream_policy.3", + "doc/man/man3/SSL_set_quic_tls_cbs.3", "doc/man/man3/SSL_set_retry_verify.3", "doc/man/man3/SSL_set_session.3", + "doc/man/man3/SSL_set_session_secret_cb.3", "doc/man/man3/SSL_set_shutdown.3", "doc/man/man3/SSL_set_verify_result.3", "doc/man/man3/SSL_shutdown.3", "doc/man/man3/SSL_state_string.3", + "doc/man/man3/SSL_stream_conclude.3", + "doc/man/man3/SSL_stream_reset.3", "doc/man/man3/SSL_want.3", "doc/man/man3/SSL_write.3", "doc/man/man3/TS_RESP_CTX_new.3", - "doc/man/man3/TS_VERIFY_CTX_set_certs.3", + "doc/man/man3/TS_VERIFY_CTX.3", "doc/man/man3/UI_STRING.3", "doc/man/man3/UI_UTIL_read_pw.3", "doc/man/man3/UI_create_method.3", "doc/man/man3/UI_new.3", "doc/man/man3/X509V3_get_d2i.3", "doc/man/man3/X509V3_set_ctx.3", + "doc/man/man3/X509_ACERT_add1_attr.3", + "doc/man/man3/X509_ACERT_add_attr_nconf.3", + "doc/man/man3/X509_ACERT_get0_holder_baseCertId.3", + "doc/man/man3/X509_ACERT_get_attr.3", + "doc/man/man3/X509_ACERT_print_ex.3", "doc/man/man3/X509_ALGOR_dup.3", "doc/man/man3/X509_ATTRIBUTE.3", "doc/man/man3/X509_CRL_get0_by_serial.3", @@ -19917,6 +23206,7 @@ our %unified_info = ( "doc/man/man3/X509_REQ_get_attr.3", "doc/man/man3/X509_REQ_get_extensions.3", "doc/man/man3/X509_SIG_get0.3", + "doc/man/man3/X509_STORE_CTX_get_by_subject.3", "doc/man/man3/X509_STORE_CTX_get_error.3", "doc/man/man3/X509_STORE_CTX_new.3", "doc/man/man3/X509_STORE_CTX_set_verify_cb.3", @@ -19939,6 +23229,7 @@ our %unified_info = ( "doc/man/man3/X509_get0_notBefore.3", "doc/man/man3/X509_get0_signature.3", "doc/man/man3/X509_get0_uids.3", + "doc/man/man3/X509_get_default_cert_file.3", "doc/man/man3/X509_get_extension_flags.3", "doc/man/man3/X509_get_pubkey.3", "doc/man/man3/X509_get_serialNumber.3", @@ -19984,12 +23275,15 @@ our %unified_info = ( "doc/man/man7/EVP_CIPHER-RC5.7", "doc/man/man7/EVP_CIPHER-SEED.7", "doc/man/man7/EVP_CIPHER-SM4.7", + "doc/man/man7/EVP_KDF-ARGON2.7", "doc/man/man7/EVP_KDF-HKDF.7", + "doc/man/man7/EVP_KDF-HMAC-DRBG.7", "doc/man/man7/EVP_KDF-KB.7", "doc/man/man7/EVP_KDF-KRB5KDF.7", "doc/man/man7/EVP_KDF-PBKDF1.7", "doc/man/man7/EVP_KDF-PBKDF2.7", "doc/man/man7/EVP_KDF-PKCS12KDF.7", + "doc/man/man7/EVP_KDF-PVKKDF.7", "doc/man/man7/EVP_KDF-SCRYPT.7", "doc/man/man7/EVP_KDF-SS.7", "doc/man/man7/EVP_KDF-SSHKDF.7", @@ -19998,7 +23292,10 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-X942-ASN1.7", "doc/man/man7/EVP_KDF-X942-CONCAT.7", "doc/man/man7/EVP_KDF-X963.7", + "doc/man/man7/EVP_KEM-EC.7", + "doc/man/man7/EVP_KEM-ML-KEM.7", "doc/man/man7/EVP_KEM-RSA.7", + "doc/man/man7/EVP_KEM-X25519.7", "doc/man/man7/EVP_KEYEXCH-DH.7", "doc/man/man7/EVP_KEYEXCH-ECDH.7", "doc/man/man7/EVP_KEYEXCH-X25519.7", @@ -20010,6 +23307,7 @@ our %unified_info = ( "doc/man/man7/EVP_MAC-Poly1305.7", "doc/man/man7/EVP_MAC-Siphash.7", "doc/man/man7/EVP_MD-BLAKE2.7", + "doc/man/man7/EVP_MD-KECCAK.7", "doc/man/man7/EVP_MD-MD2.7", "doc/man/man7/EVP_MD-MD4.7", "doc/man/man7/EVP_MD-MD5-SHA1.7", @@ -20029,12 +23327,17 @@ our %unified_info = ( "doc/man/man7/EVP_PKEY-EC.7", "doc/man/man7/EVP_PKEY-FFC.7", "doc/man/man7/EVP_PKEY-HMAC.7", + "doc/man/man7/EVP_PKEY-ML-DSA.7", + "doc/man/man7/EVP_PKEY-ML-KEM.7", "doc/man/man7/EVP_PKEY-RSA.7", + "doc/man/man7/EVP_PKEY-SLH-DSA.7", "doc/man/man7/EVP_PKEY-SM2.7", "doc/man/man7/EVP_PKEY-X25519.7", + "doc/man/man7/EVP_RAND-CRNG-TEST.7", "doc/man/man7/EVP_RAND-CTR-DRBG.7", "doc/man/man7/EVP_RAND-HASH-DRBG.7", "doc/man/man7/EVP_RAND-HMAC-DRBG.7", + "doc/man/man7/EVP_RAND-JITTER.7", "doc/man/man7/EVP_RAND-SEED-SRC.7", "doc/man/man7/EVP_RAND-TEST-RAND.7", "doc/man/man7/EVP_RAND.7", @@ -20042,17 +23345,19 @@ our %unified_info = ( "doc/man/man7/EVP_SIGNATURE-ECDSA.7", "doc/man/man7/EVP_SIGNATURE-ED25519.7", "doc/man/man7/EVP_SIGNATURE-HMAC.7", + "doc/man/man7/EVP_SIGNATURE-ML-DSA.7", "doc/man/man7/EVP_SIGNATURE-RSA.7", + "doc/man/man7/EVP_SIGNATURE-SLH-DSA.7", "doc/man/man7/OSSL_PROVIDER-FIPS.7", "doc/man/man7/OSSL_PROVIDER-base.7", "doc/man/man7/OSSL_PROVIDER-default.7", "doc/man/man7/OSSL_PROVIDER-legacy.7", "doc/man/man7/OSSL_PROVIDER-null.7", + "doc/man/man7/OSSL_STORE-winstore.7", "doc/man/man7/RAND.7", "doc/man/man7/RSA-PSS.7", "doc/man/man7/X25519.7", "doc/man/man7/bio.7", - "doc/man/man7/crypto.7", "doc/man/man7/ct.7", "doc/man/man7/des_modes.7", "doc/man/man7/evp.7", @@ -20063,14 +23368,31 @@ our %unified_info = ( "doc/man/man7/life_cycle-mac.7", "doc/man/man7/life_cycle-pkey.7", "doc/man/man7/life_cycle-rand.7", - "doc/man/man7/migration_guide.7", "doc/man/man7/openssl-core.h.7", "doc/man/man7/openssl-core_dispatch.h.7", "doc/man/man7/openssl-core_names.h.7", "doc/man/man7/openssl-env.7", "doc/man/man7/openssl-glossary.7", + "doc/man/man7/openssl-qlog.7", + "doc/man/man7/openssl-quic-concurrency.7", + "doc/man/man7/openssl-quic.7", "doc/man/man7/openssl-threads.7", "doc/man/man7/openssl_user_macros.7", + "doc/man/man7/ossl-guide-introduction.7", + "doc/man/man7/ossl-guide-libcrypto-introduction.7", + "doc/man/man7/ossl-guide-libraries-introduction.7", + "doc/man/man7/ossl-guide-libssl-introduction.7", + "doc/man/man7/ossl-guide-migration.7", + "doc/man/man7/ossl-guide-quic-client-block.7", + "doc/man/man7/ossl-guide-quic-client-non-block.7", + "doc/man/man7/ossl-guide-quic-introduction.7", + "doc/man/man7/ossl-guide-quic-multi-stream.7", + "doc/man/man7/ossl-guide-quic-server-block.7", + "doc/man/man7/ossl-guide-quic-server-non-block.7", + "doc/man/man7/ossl-guide-tls-client-block.7", + "doc/man/man7/ossl-guide-tls-client-non-block.7", + "doc/man/man7/ossl-guide-tls-introduction.7", + "doc/man/man7/ossl-guide-tls-server-block.7", "doc/man/man7/ossl_store-file.7", "doc/man/man7/ossl_store.7", "doc/man/man7/passphrase-encoding.7", @@ -20089,10 +23411,10 @@ our %unified_info = ( "doc/man/man7/provider-object.7", "doc/man/man7/provider-rand.7", "doc/man/man7/provider-signature.7", + "doc/man/man7/provider-skeymgmt.7", "doc/man/man7/provider-storemgmt.7", "doc/man/man7/provider.7", "doc/man/man7/proxy-certificates.7", - "doc/man/man7/ssl.7", "doc/man/man7/x509.7" ] }, @@ -20104,6 +23426,7 @@ our %unified_info = ( ], "programs" => [ "apps/openssl", + "fuzz/acert-test", "fuzz/asn1-test", "fuzz/asn1parse-test", "fuzz/bignum-test", @@ -20114,7 +23437,24 @@ our %unified_info = ( "fuzz/conf-test", "fuzz/crl-test", "fuzz/ct-test", + "fuzz/decoder-test", + "fuzz/dtlsclient-test", + "fuzz/dtlsserver-test", + "fuzz/hashtable-test", + "fuzz/ml-dsa-test", + "fuzz/ml-kem-test", + "fuzz/pem-test", + "fuzz/provider-test", + "fuzz/punycode-test", + "fuzz/quic-client-test", + "fuzz/quic-lcidm-test", + "fuzz/quic-rcidm-test", + "fuzz/quic-server-test", + "fuzz/quic-srtm-test", "fuzz/server-test", + "fuzz/slh-dsa-test", + "fuzz/smime-test", + "fuzz/v3name-test", "fuzz/x509-test", "test/aborttest", "test/acvp_test", @@ -20132,21 +23472,28 @@ our %unified_info = ( "test/asynctest", "test/bad_dtls_test", "test/bftest", + "test/bio_addr_test", + "test/bio_base64_test", "test/bio_callback_test", "test/bio_core_test", + "test/bio_dgram_test", "test/bio_enc_test", "test/bio_memleak_test", + "test/bio_meth_test", "test/bio_prefix_text", "test/bio_pw_callback_test", "test/bio_readbuffer_test", + "test/bio_tfo_test", "test/bioprinttest", "test/bn_internal_test", "test/bntest", + "test/build_wincrypt_test", "test/buildtest_c_aes", "test/buildtest_c_async", "test/buildtest_c_blowfish", "test/buildtest_c_bn", "test/buildtest_c_buffer", + "test/buildtest_c_byteorder", "test/buildtest_c_camellia", "test/buildtest_c_cast", "test/buildtest_c_cmac", @@ -20155,7 +23502,6 @@ our %unified_info = ( "test/buildtest_c_conftypes", "test/buildtest_c_core", "test/buildtest_c_core_dispatch", - "test/buildtest_c_core_names", "test/buildtest_c_core_object", "test/buildtest_c_cryptoerr_legacy", "test/buildtest_c_decoder", @@ -20164,6 +23510,7 @@ our %unified_info = ( "test/buildtest_c_dsa", "test/buildtest_c_dtls1", "test/buildtest_c_e_os2", + "test/buildtest_c_e_ostime", "test/buildtest_c_ebcdic", "test/buildtest_c_ec", "test/buildtest_c_ecdh", @@ -20173,13 +23520,16 @@ our %unified_info = ( "test/buildtest_c_evp", "test/buildtest_c_fips_names", "test/buildtest_c_hmac", + "test/buildtest_c_hpke", "test/buildtest_c_http", "test/buildtest_c_idea", + "test/buildtest_c_indicator", "test/buildtest_c_kdf", "test/buildtest_c_macros", "test/buildtest_c_md4", "test/buildtest_c_md5", "test/buildtest_c_mdc2", + "test/buildtest_c_ml_kem", "test/buildtest_c_modes", "test/buildtest_c_obj_mac", "test/buildtest_c_objects", @@ -20190,6 +23540,7 @@ our %unified_info = ( "test/buildtest_c_pem2", "test/buildtest_c_prov_ssl", "test/buildtest_c_provider", + "test/buildtest_c_quic", "test/buildtest_c_rand", "test/buildtest_c_rc2", "test/buildtest_c_rc4", @@ -20204,11 +23555,14 @@ our %unified_info = ( "test/buildtest_c_stack", "test/buildtest_c_store", "test/buildtest_c_symhacks", + "test/buildtest_c_thread", "test/buildtest_c_tls1", "test/buildtest_c_ts", "test/buildtest_c_txt_db", "test/buildtest_c_types", "test/buildtest_c_whrlpool", + "test/byteorder_test", + "test/ca_internals_test", "test/casttest", "test/chacha_internal_test", "test/cipher_overhead_test", @@ -20237,6 +23591,7 @@ our %unified_info = ( "test/curve448_internal_test", "test/d2i_test", "test/danetest", + "test/decoder_propq_test", "test/defltfips_test", "test/destest", "test/dhtest", @@ -20261,9 +23616,12 @@ our %unified_info = ( "test/evp_kdf_test", "test/evp_libctx_test", "test/evp_pkey_ctx_new_from_name", + "test/evp_pkey_dhkem_test", "test/evp_pkey_dparams_test", "test/evp_pkey_provided_test", + "test/evp_skey_test", "test/evp_test", + "test/evp_xof_test", "test/exdatatest", "test/exptest", "test/ext_internal_test", @@ -20273,21 +23631,29 @@ our %unified_info = ( "test/gmdifftest", "test/hexstr_test", "test/hmactest", + "test/hpke_test", "test/http_test", "test/ideatest", "test/igetest", + "test/json_test", "test/keymgmt_internal_test", "test/lhash_test", + "test/list_test", "test/localetest", "test/mdc2_internal_test", "test/mdc2test", + "test/membio_test", "test/memleaktest", + "test/ml_dsa_test", + "test/ml_kem_evp_extra_test", + "test/ml_kem_internal_test", "test/modes_internal_test", "test/namemap_internal_test", "test/nodefltctxtest", "test/ocspapitest", "test/ossl_store_test", "test/packettest", + "test/pairwise_fail_test", "test/param_build_test", "test/params_api_test", "test/params_conversion_test", @@ -20296,36 +23662,65 @@ our %unified_info = ( "test/pbetest", "test/pem_read_depr_test", "test/pemtest", + "test/pkcs12_api_test", "test/pkcs12_format_test", "test/pkcs7_test", "test/pkey_meth_kdf_test", "test/pkey_meth_test", "test/poly1305_internal_test", + "test/priority_queue_test", "test/property_test", "test/prov_config_test", "test/provfetchtest", + "test/provider_default_search_path_test", "test/provider_fallback_test", "test/provider_internal_test", "test/provider_pkey_test", "test/provider_status_test", "test/provider_test", "test/punycode_test", + "test/quic_ackm_test", + "test/quic_cc_test", + "test/quic_cfq_test", + "test/quic_client_test", + "test/quic_fc_test", + "test/quic_fifd_test", + "test/quic_lcidm_test", + "test/quic_multistream_test", + "test/quic_newcid_test", + "test/quic_qlog_test", + "test/quic_radix_test", + "test/quic_rcidm_test", + "test/quic_record_test", + "test/quic_srt_gen_test", + "test/quic_srtm_test", + "test/quic_stream_test", + "test/quic_tserver_test", + "test/quic_txp_test", + "test/quic_txpim_test", + "test/quic_wire_test", + "test/quicapitest", + "test/quicfaultstest", "test/rand_status_test", "test/rand_test", "test/rc2test", "test/rc4test", "test/rc5test", - "test/rdrand_sanitytest", + "test/rdcpu_sanitytest", "test/recordlentest", + "test/rpktest", "test/rsa_complex", "test/rsa_mp_test", "test/rsa_sp800_56b_test", "test/rsa_test", + "test/rsa_x931_test", + "test/safe_math_test", "test/sanitytest", "test/secmemtest", "test/servername_test", "test/sha_test", "test/siphash_internal_test", + "test/slh_dsa_test", "test/sm2_internal_test", "test/sm3_internal_test", "test/sm4_internal_test", @@ -20333,6 +23728,7 @@ our %unified_info = ( "test/srptest", "test/ssl_cert_table_internal_test", "test/ssl_ctx_test", + "test/ssl_handshake_rtt_test", "test/ssl_old_test", "test/ssl_test", "test/ssl_test_ctx_test", @@ -20340,13 +23736,17 @@ our %unified_info = ( "test/sslbuffertest", "test/sslcorrupttest", "test/stack_test", + "test/strtoultest", "test/sysdefaulttest", "test/test_test", + "test/threadpool_test", "test/threadstest", "test/threadstest_fips", "test/time_offset_test", + "test/time_test", "test/tls13ccstest", "test/tls13encryptiontest", + "test/tls13groupselection_test", "test/trace_api_test", "test/uitest", "test/upcallstest", @@ -20356,9 +23756,13 @@ our %unified_info = ( "test/verify_extra_test", "test/versions", "test/wpackettest", + "test/x509_acert_test", "test/x509_check_cert_pkey_test", "test/x509_dup_cert_test", "test/x509_internal_test", + "test/x509_load_cert_file_test", + "test/x509_req_test", + "test/x509_test", "test/x509_time_test", "test/x509aux" ], @@ -20374,6 +23778,33 @@ our %unified_info = ( "apps/CA.pl" => [ "apps/CA.pl.in" ], + "apps/ca_internals_test-bin-ca.o" => [ + "apps/ca.c" + ], + "apps/lib/ca_internals_test-bin-app_libctx.o" => [ + "apps/lib/app_libctx.c" + ], + "apps/lib/ca_internals_test-bin-app_provider.o" => [ + "apps/lib/app_provider.c" + ], + "apps/lib/ca_internals_test-bin-app_rand.o" => [ + "apps/lib/app_rand.c" + ], + "apps/lib/ca_internals_test-bin-app_x509.o" => [ + "apps/lib/app_x509.c" + ], + "apps/lib/ca_internals_test-bin-apps.o" => [ + "apps/lib/apps.c" + ], + "apps/lib/ca_internals_test-bin-apps_ui.o" => [ + "apps/lib/apps_ui.c" + ], + "apps/lib/ca_internals_test-bin-engine.o" => [ + "apps/lib/engine.c" + ], + "apps/lib/ca_internals_test-bin-fmt.o" => [ + "apps/lib/fmt.c" + ], "apps/lib/cmp_client_test-bin-cmp_mock_srv.o" => [ "apps/lib/cmp_mock_srv.c" ], @@ -20395,6 +23826,9 @@ our %unified_info = ( "apps/lib/libapps-lib-apps.o" => [ "apps/lib/apps.c" ], + "apps/lib/libapps-lib-apps_opt_printf.o" => [ + "apps/lib/apps_opt_printf.c" + ], "apps/lib/libapps-lib-apps_ui.o" => [ "apps/lib/apps_ui.c" ], @@ -20413,6 +23847,9 @@ our %unified_info = ( "apps/lib/libapps-lib-http_server.o" => [ "apps/lib/http_server.c" ], + "apps/lib/libapps-lib-log.o" => [ + "apps/lib/log.c" + ], "apps/lib/libapps-lib-names.o" => [ "apps/lib/names.c" ], @@ -20444,12 +23881,14 @@ our %unified_info = ( "apps/lib/libapps-lib-app_rand.o", "apps/lib/libapps-lib-app_x509.o", "apps/lib/libapps-lib-apps.o", + "apps/lib/libapps-lib-apps_opt_printf.o", "apps/lib/libapps-lib-apps_ui.o", "apps/lib/libapps-lib-columns.o", "apps/lib/libapps-lib-engine.o", "apps/lib/libapps-lib-engine_loader.o", "apps/lib/libapps-lib-fmt.o", "apps/lib/libapps-lib-http_server.o", + "apps/lib/libapps-lib-log.o", "apps/lib/libapps-lib-names.o", "apps/lib/libapps-lib-opt.o", "apps/lib/libapps-lib-s_cb.o", @@ -20503,6 +23942,7 @@ our %unified_info = ( "apps/openssl-bin-s_server.o", "apps/openssl-bin-s_time.o", "apps/openssl-bin-sess_id.o", + "apps/openssl-bin-skeyutl.o", "apps/openssl-bin-smime.o", "apps/openssl-bin-speed.o", "apps/openssl-bin-spkac.o", @@ -20648,6 +24088,9 @@ our %unified_info = ( "apps/openssl-bin-sess_id.o" => [ "apps/sess_id.c" ], + "apps/openssl-bin-skeyutl.o" => [ + "apps/skeyutl.c" + ], "apps/openssl-bin-smime.o" => [ "apps/smime.c" ], @@ -20717,6 +24160,12 @@ our %unified_info = ( "crypto/aria/libcrypto-lib-aria.o" => [ "crypto/aria/aria.c" ], + "crypto/asn1/asn1_time_test-bin-a_time.o" => [ + "crypto/asn1/a_time.c" + ], + "crypto/asn1/ca_internals_test-bin-a_time.o" => [ + "crypto/asn1/a_time.c" + ], "crypto/asn1/libcrypto-lib-a_bitstr.o" => [ "crypto/asn1/a_bitstr.c" ], @@ -20909,6 +24358,9 @@ our %unified_info = ( "crypto/asn1/libcrypto-lib-x_val.o" => [ "crypto/asn1/x_val.c" ], + "crypto/asn1_time_test-bin-ctype.o" => [ + "crypto/ctype.c" + ], "crypto/async/arch/libcrypto-lib-async_null.o" => [ "crypto/async/arch/async_null.c" ], @@ -21002,6 +24454,9 @@ our %unified_info = ( "crypto/bio/libcrypto-lib-bss_dgram.o" => [ "crypto/bio/bss_dgram.c" ], + "crypto/bio/libcrypto-lib-bss_dgram_pair.o" => [ + "crypto/bio/bss_dgram_pair.c" + ], "crypto/bio/libcrypto-lib-bss_fd.o" => [ "crypto/bio/bss_fd.c" ], @@ -21215,6 +24670,9 @@ our %unified_info = ( "crypto/buffer/libfips-lib-buffer.o" => [ "crypto/buffer/buffer.c" ], + "crypto/ca_internals_test-bin-ctype.o" => [ + "crypto/ctype.c" + ], "crypto/camellia/libcrypto-lib-camellia.o" => [ "crypto/camellia/camellia.c" ], @@ -21272,6 +24730,9 @@ our %unified_info = ( "crypto/cmp/libcrypto-lib-cmp_err.o" => [ "crypto/cmp/cmp_err.c" ], + "crypto/cmp/libcrypto-lib-cmp_genm.o" => [ + "crypto/cmp/cmp_genm.c" + ], "crypto/cmp/libcrypto-lib-cmp_hdr.o" => [ "crypto/cmp/cmp_hdr.c" ], @@ -21947,9 +25408,15 @@ our %unified_info = ( "crypto/err/libcrypto-lib-err_blocks.o" => [ "crypto/err/err_blocks.c" ], + "crypto/err/libcrypto-lib-err_mark.o" => [ + "crypto/err/err_mark.c" + ], "crypto/err/libcrypto-lib-err_prn.o" => [ "crypto/err/err_prn.c" ], + "crypto/err/libcrypto-lib-err_save.o" => [ + "crypto/err/err_save.c" + ], "crypto/ess/libcrypto-lib-ess_asn1.o" => [ "crypto/ess/ess_asn1.c" ], @@ -22196,9 +25663,15 @@ our %unified_info = ( "crypto/evp/libcrypto-lib-pmeth_lib.o" => [ "crypto/evp/pmeth_lib.c" ], + "crypto/evp/libcrypto-lib-s_lib.o" => [ + "crypto/evp/s_lib.c" + ], "crypto/evp/libcrypto-lib-signature.o" => [ "crypto/evp/signature.c" ], + "crypto/evp/libcrypto-lib-skeymgmt_meth.o" => [ + "crypto/evp/skeymgmt_meth.c" + ], "crypto/evp/libfips-lib-asymcipher.o" => [ "crypto/evp/asymcipher.c" ], @@ -22244,9 +25717,6 @@ our %unified_info = ( "crypto/evp/libfips-lib-keymgmt_meth.o" => [ "crypto/evp/keymgmt_meth.c" ], - "crypto/evp/libfips-lib-m_sigver.o" => [ - "crypto/evp/m_sigver.c" - ], "crypto/evp/libfips-lib-mac_lib.o" => [ "crypto/evp/mac_lib.c" ], @@ -22265,9 +25735,15 @@ our %unified_info = ( "crypto/evp/libfips-lib-pmeth_lib.o" => [ "crypto/evp/pmeth_lib.c" ], + "crypto/evp/libfips-lib-s_lib.o" => [ + "crypto/evp/s_lib.c" + ], "crypto/evp/libfips-lib-signature.o" => [ "crypto/evp/signature.c" ], + "crypto/evp/libfips-lib-skeymgmt_meth.o" => [ + "crypto/evp/skeymgmt_meth.c" + ], "crypto/ffc/libcrypto-lib-ffc_backend.o" => [ "crypto/ffc/ffc_backend.c" ], @@ -22310,12 +25786,30 @@ our %unified_info = ( "crypto/ffc/libfips-lib-ffc_params_validate.o" => [ "crypto/ffc/ffc_params_validate.c" ], + "crypto/hashtable/libcrypto-lib-hashfunc.o" => [ + "crypto/hashtable/hashfunc.c" + ], + "crypto/hashtable/libcrypto-lib-hashtable.o" => [ + "crypto/hashtable/hashtable.c" + ], + "crypto/hashtable/libfips-lib-hashfunc.o" => [ + "crypto/hashtable/hashfunc.c" + ], + "crypto/hashtable/libfips-lib-hashtable.o" => [ + "crypto/hashtable/hashtable.c" + ], "crypto/hmac/libcrypto-lib-hmac.o" => [ "crypto/hmac/hmac.c" ], "crypto/hmac/libfips-lib-hmac.o" => [ "crypto/hmac/hmac.c" ], + "crypto/hpke/libcrypto-lib-hpke.o" => [ + "crypto/hpke/hpke.c" + ], + "crypto/hpke/libcrypto-lib-hpke_util.o" => [ + "crypto/hpke/hpke_util.c" + ], "crypto/http/libcrypto-lib-http_client.o" => [ "crypto/http/http_client.c" ], @@ -22358,6 +25852,9 @@ our %unified_info = ( "crypto/libcrypto-lib-bsearch.o" => [ "crypto/bsearch.c" ], + "crypto/libcrypto-lib-comp_methods.o" => [ + "crypto/comp_methods.c" + ], "crypto/libcrypto-lib-context.o" => [ "crypto/context.c" ], @@ -22385,9 +25882,15 @@ our %unified_info = ( "crypto/libcrypto-lib-cversion.o" => [ "crypto/cversion.c" ], + "crypto/libcrypto-lib-defaults.o" => [ + "crypto/defaults.c" + ], "crypto/libcrypto-lib-der_writer.o" => [ "crypto/der_writer.c" ], + "crypto/libcrypto-lib-deterministic_nonce.o" => [ + "crypto/deterministic_nonce.c" + ], "crypto/libcrypto-lib-ebcdic.o" => [ "crypto/ebcdic.c" ], @@ -22397,6 +25900,9 @@ our %unified_info = ( "crypto/libcrypto-lib-getenv.o" => [ "crypto/getenv.c" ], + "crypto/libcrypto-lib-indicator_core.o" => [ + "crypto/indicator_core.c" + ], "crypto/libcrypto-lib-info.o" => [ "crypto/info.c" ], @@ -22448,6 +25954,9 @@ our %unified_info = ( "crypto/libcrypto-lib-params_from_text.o" => [ "crypto/params_from_text.c" ], + "crypto/libcrypto-lib-params_idx.o" => [ + "crypto/params_idx.c" + ], "crypto/libcrypto-lib-passphrase.o" => [ "crypto/passphrase.c" ], @@ -22469,12 +25978,21 @@ our %unified_info = ( "crypto/libcrypto-lib-punycode.o" => [ "crypto/punycode.c" ], + "crypto/libcrypto-lib-quic_vlint.o" => [ + "crypto/quic_vlint.c" + ], "crypto/libcrypto-lib-self_test_core.o" => [ "crypto/self_test_core.c" ], + "crypto/libcrypto-lib-sleep.o" => [ + "crypto/sleep.c" + ], "crypto/libcrypto-lib-sparse_array.o" => [ "crypto/sparse_array.c" ], + "crypto/libcrypto-lib-ssl_err.o" => [ + "crypto/ssl_err.c" + ], "crypto/libcrypto-lib-threads_lib.o" => [ "crypto/threads_lib.c" ], @@ -22487,6 +26005,9 @@ our %unified_info = ( "crypto/libcrypto-lib-threads_win.o" => [ "crypto/threads_win.c" ], + "crypto/libcrypto-lib-time.o" => [ + "crypto/time.c" + ], "crypto/libcrypto-lib-trace.o" => [ "crypto/trace.c" ], @@ -22553,6 +26074,9 @@ our %unified_info = ( "crypto/libfips-lib-params_from_text.o" => [ "crypto/params_from_text.c" ], + "crypto/libfips-lib-params_idx.o" => [ + "crypto/params_idx.c" + ], "crypto/libfips-lib-provider_core.o" => [ "crypto/provider_core.c" ], @@ -22577,6 +26101,9 @@ our %unified_info = ( "crypto/libfips-lib-threads_win.o" => [ "crypto/threads_win.c" ], + "crypto/libfips-lib-time.o" => [ + "crypto/time.c" + ], "crypto/md4/libcrypto-lib-md4_dgst.o" => [ "crypto/md4/md4_dgst.c" ], @@ -22598,6 +26125,60 @@ our %unified_info = ( "crypto/mdc2/libcrypto-lib-mdc2dgst.o" => [ "crypto/mdc2/mdc2dgst.c" ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_encoders.o" => [ + "crypto/ml_dsa/ml_dsa_encoders.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key.o" => [ + "crypto/ml_dsa/ml_dsa_key.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key_compress.o" => [ + "crypto/ml_dsa/ml_dsa_key_compress.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_matrix.o" => [ + "crypto/ml_dsa/ml_dsa_matrix.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_ntt.o" => [ + "crypto/ml_dsa/ml_dsa_ntt.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_params.o" => [ + "crypto/ml_dsa/ml_dsa_params.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sample.o" => [ + "crypto/ml_dsa/ml_dsa_sample.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sign.o" => [ + "crypto/ml_dsa/ml_dsa_sign.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_encoders.o" => [ + "crypto/ml_dsa/ml_dsa_encoders.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_key.o" => [ + "crypto/ml_dsa/ml_dsa_key.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_key_compress.o" => [ + "crypto/ml_dsa/ml_dsa_key_compress.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_matrix.o" => [ + "crypto/ml_dsa/ml_dsa_matrix.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_ntt.o" => [ + "crypto/ml_dsa/ml_dsa_ntt.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_params.o" => [ + "crypto/ml_dsa/ml_dsa_params.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_sample.o" => [ + "crypto/ml_dsa/ml_dsa_sample.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_sign.o" => [ + "crypto/ml_dsa/ml_dsa_sign.c" + ], + "crypto/ml_kem/libcrypto-lib-ml_kem.o" => [ + "crypto/ml_kem/ml_kem.c" + ], + "crypto/ml_kem/libfips-lib-ml_kem.o" => [ + "crypto/ml_kem/ml_kem.c" + ], "crypto/modes/libcrypto-lib-cbc128.o" => [ "crypto/modes/cbc128.c" ], @@ -22631,6 +26212,9 @@ our %unified_info = ( "crypto/modes/libcrypto-lib-xts128.o" => [ "crypto/modes/xts128.c" ], + "crypto/modes/libcrypto-lib-xts128gb.o" => [ + "crypto/modes/xts128gb.c" + ], "crypto/modes/libfips-lib-cbc128.o" => [ "crypto/modes/cbc128.c" ], @@ -22655,6 +26239,9 @@ our %unified_info = ( "crypto/modes/libfips-lib-xts128.o" => [ "crypto/modes/xts128.c" ], + "crypto/modes/libfips-lib-xts128gb.o" => [ + "crypto/modes/xts128gb.c" + ], "crypto/objects/libcrypto-lib-o_names.o" => [ "crypto/objects/o_names.c" ], @@ -22700,6 +26287,9 @@ our %unified_info = ( "crypto/ocsp/libcrypto-lib-v3_ocsp.o" => [ "crypto/ocsp/v3_ocsp.c" ], + "crypto/packettest-bin-quic_vlint.o" => [ + "crypto/quic_vlint.c" + ], "crypto/pem/libcrypto-lib-pem_all.o" => [ "crypto/pem/pem_all.c" ], @@ -22859,6 +26449,9 @@ our %unified_info = ( "crypto/rand/libcrypto-lib-rand_pool.o" => [ "crypto/rand/rand_pool.c" ], + "crypto/rand/libcrypto-lib-rand_uniform.o" => [ + "crypto/rand/rand_uniform.c" + ], "crypto/rand/libcrypto-lib-randfile.o" => [ "crypto/rand/randfile.c" ], @@ -23072,6 +26665,66 @@ our %unified_info = ( "crypto/siphash/libcrypto-lib-siphash.o" => [ "crypto/siphash/siphash.c" ], + "crypto/slh_dsa/libcrypto-lib-slh_adrs.o" => [ + "crypto/slh_dsa/slh_adrs.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_dsa.o" => [ + "crypto/slh_dsa/slh_dsa.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_dsa_hash_ctx.o" => [ + "crypto/slh_dsa/slh_dsa_hash_ctx.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_dsa_key.o" => [ + "crypto/slh_dsa/slh_dsa_key.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_fors.o" => [ + "crypto/slh_dsa/slh_fors.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_hash.o" => [ + "crypto/slh_dsa/slh_hash.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_hypertree.o" => [ + "crypto/slh_dsa/slh_hypertree.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_params.o" => [ + "crypto/slh_dsa/slh_params.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_wots.o" => [ + "crypto/slh_dsa/slh_wots.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_xmss.o" => [ + "crypto/slh_dsa/slh_xmss.c" + ], + "crypto/slh_dsa/libfips-lib-slh_adrs.o" => [ + "crypto/slh_dsa/slh_adrs.c" + ], + "crypto/slh_dsa/libfips-lib-slh_dsa.o" => [ + "crypto/slh_dsa/slh_dsa.c" + ], + "crypto/slh_dsa/libfips-lib-slh_dsa_hash_ctx.o" => [ + "crypto/slh_dsa/slh_dsa_hash_ctx.c" + ], + "crypto/slh_dsa/libfips-lib-slh_dsa_key.o" => [ + "crypto/slh_dsa/slh_dsa_key.c" + ], + "crypto/slh_dsa/libfips-lib-slh_fors.o" => [ + "crypto/slh_dsa/slh_fors.c" + ], + "crypto/slh_dsa/libfips-lib-slh_hash.o" => [ + "crypto/slh_dsa/slh_hash.c" + ], + "crypto/slh_dsa/libfips-lib-slh_hypertree.o" => [ + "crypto/slh_dsa/slh_hypertree.c" + ], + "crypto/slh_dsa/libfips-lib-slh_params.o" => [ + "crypto/slh_dsa/slh_params.c" + ], + "crypto/slh_dsa/libfips-lib-slh_wots.o" => [ + "crypto/slh_dsa/slh_wots.c" + ], + "crypto/slh_dsa/libfips-lib-slh_xmss.o" => [ + "crypto/slh_dsa/slh_xmss.c" + ], "crypto/sm2/libcrypto-lib-sm2_crypt.o" => [ "crypto/sm2/sm2_crypt.c" ], @@ -23126,6 +26779,42 @@ our %unified_info = ( "crypto/store/libcrypto-lib-store_strings.o" => [ "crypto/store/store_strings.c" ], + "crypto/thread/arch/libcrypto-lib-thread_none.o" => [ + "crypto/thread/arch/thread_none.c" + ], + "crypto/thread/arch/libcrypto-lib-thread_posix.o" => [ + "crypto/thread/arch/thread_posix.c" + ], + "crypto/thread/arch/libcrypto-lib-thread_win.o" => [ + "crypto/thread/arch/thread_win.c" + ], + "crypto/thread/arch/libfips-lib-thread_none.o" => [ + "crypto/thread/arch/thread_none.c" + ], + "crypto/thread/arch/libfips-lib-thread_posix.o" => [ + "crypto/thread/arch/thread_posix.c" + ], + "crypto/thread/arch/libfips-lib-thread_win.o" => [ + "crypto/thread/arch/thread_win.c" + ], + "crypto/thread/libcrypto-lib-api.o" => [ + "crypto/thread/api.c" + ], + "crypto/thread/libcrypto-lib-arch.o" => [ + "crypto/thread/arch.c" + ], + "crypto/thread/libcrypto-lib-internal.o" => [ + "crypto/thread/internal.c" + ], + "crypto/thread/libfips-lib-api.o" => [ + "crypto/thread/api.c" + ], + "crypto/thread/libfips-lib-arch.o" => [ + "crypto/thread/arch.c" + ], + "crypto/thread/libfips-lib-internal.o" => [ + "crypto/thread/internal.c" + ], "crypto/ts/libcrypto-lib-ts_asn1.o" => [ "crypto/ts/ts_asn1.c" ], @@ -23210,6 +26899,9 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-pcy_tree.o" => [ "crypto/x509/pcy_tree.c" ], + "crypto/x509/libcrypto-lib-t_acert.o" => [ + "crypto/x509/t_acert.c" + ], "crypto/x509/libcrypto-lib-t_crl.o" => [ "crypto/x509/t_crl.c" ], @@ -23219,6 +26911,12 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-t_x509.o" => [ "crypto/x509/t_x509.c" ], + "crypto/x509/libcrypto-lib-v3_aaa.o" => [ + "crypto/x509/v3_aaa.c" + ], + "crypto/x509/libcrypto-lib-v3_ac_tgt.o" => [ + "crypto/x509/v3_ac_tgt.c" + ], "crypto/x509/libcrypto-lib-v3_addr.o" => [ "crypto/x509/v3_addr.c" ], @@ -23234,6 +26932,21 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_asid.o" => [ "crypto/x509/v3_asid.c" ], + "crypto/x509/libcrypto-lib-v3_attrdesc.o" => [ + "crypto/x509/v3_attrdesc.c" + ], + "crypto/x509/libcrypto-lib-v3_attrmap.o" => [ + "crypto/x509/v3_attrmap.c" + ], + "crypto/x509/libcrypto-lib-v3_audit_id.o" => [ + "crypto/x509/v3_audit_id.c" + ], + "crypto/x509/libcrypto-lib-v3_authattid.o" => [ + "crypto/x509/v3_authattid.c" + ], + "crypto/x509/libcrypto-lib-v3_battcons.o" => [ + "crypto/x509/v3_battcons.c" + ], "crypto/x509/libcrypto-lib-v3_bcons.o" => [ "crypto/x509/v3_bcons.c" ], @@ -23258,15 +26971,24 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_genn.o" => [ "crypto/x509/v3_genn.c" ], + "crypto/x509/libcrypto-lib-v3_group_ac.o" => [ + "crypto/x509/v3_group_ac.c" + ], "crypto/x509/libcrypto-lib-v3_ia5.o" => [ "crypto/x509/v3_ia5.c" ], + "crypto/x509/libcrypto-lib-v3_ind_iss.o" => [ + "crypto/x509/v3_ind_iss.c" + ], "crypto/x509/libcrypto-lib-v3_info.o" => [ "crypto/x509/v3_info.c" ], "crypto/x509/libcrypto-lib-v3_int.o" => [ "crypto/x509/v3_int.c" ], + "crypto/x509/libcrypto-lib-v3_iobo.o" => [ + "crypto/x509/v3_iobo.c" + ], "crypto/x509/libcrypto-lib-v3_ist.o" => [ "crypto/x509/v3_ist.c" ], @@ -23276,6 +26998,12 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_ncons.o" => [ "crypto/x509/v3_ncons.c" ], + "crypto/x509/libcrypto-lib-v3_no_ass.o" => [ + "crypto/x509/v3_no_ass.c" + ], + "crypto/x509/libcrypto-lib-v3_no_rev_avail.o" => [ + "crypto/x509/v3_no_rev_avail.c" + ], "crypto/x509/libcrypto-lib-v3_pci.o" => [ "crypto/x509/v3_pci.c" ], @@ -23297,18 +27025,36 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_purp.o" => [ "crypto/x509/v3_purp.c" ], + "crypto/x509/libcrypto-lib-v3_rolespec.o" => [ + "crypto/x509/v3_rolespec.c" + ], "crypto/x509/libcrypto-lib-v3_san.o" => [ "crypto/x509/v3_san.c" ], + "crypto/x509/libcrypto-lib-v3_sda.o" => [ + "crypto/x509/v3_sda.c" + ], + "crypto/x509/libcrypto-lib-v3_single_use.o" => [ + "crypto/x509/v3_single_use.c" + ], "crypto/x509/libcrypto-lib-v3_skid.o" => [ "crypto/x509/v3_skid.c" ], + "crypto/x509/libcrypto-lib-v3_soa_id.o" => [ + "crypto/x509/v3_soa_id.c" + ], "crypto/x509/libcrypto-lib-v3_sxnet.o" => [ "crypto/x509/v3_sxnet.c" ], + "crypto/x509/libcrypto-lib-v3_timespec.o" => [ + "crypto/x509/v3_timespec.c" + ], "crypto/x509/libcrypto-lib-v3_tlsf.o" => [ "crypto/x509/v3_tlsf.c" ], + "crypto/x509/libcrypto-lib-v3_usernotice.o" => [ + "crypto/x509/v3_usernotice.c" + ], "crypto/x509/libcrypto-lib-v3_utf8.o" => [ "crypto/x509/v3_utf8.c" ], @@ -23318,6 +27064,9 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3err.o" => [ "crypto/x509/v3err.c" ], + "crypto/x509/libcrypto-lib-x509_acert.o" => [ + "crypto/x509/x509_acert.c" + ], "crypto/x509/libcrypto-lib-x509_att.o" => [ "crypto/x509/x509_att.c" ], @@ -23369,6 +27118,9 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x509_vpm.o" => [ "crypto/x509/x509_vpm.c" ], + "crypto/x509/libcrypto-lib-x509aset.o" => [ + "crypto/x509/x509aset.c" + ], "crypto/x509/libcrypto-lib-x509cset.o" => [ "crypto/x509/x509cset.c" ], @@ -23396,6 +27148,9 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x_exten.o" => [ "crypto/x509/x_exten.c" ], + "crypto/x509/libcrypto-lib-x_ietfatt.o" => [ + "crypto/x509/x_ietfatt.c" + ], "crypto/x509/libcrypto-lib-x_name.o" => [ "crypto/x509/x_name.c" ], @@ -23417,6 +27172,16 @@ our %unified_info = ( "engines/libcrypto-lib-e_padlock.o" => [ "engines/e_padlock.c" ], + "fuzz/acert-test" => [ + "fuzz/acert-test-bin-acert.o", + "fuzz/acert-test-bin-test-corpus.o" + ], + "fuzz/acert-test-bin-acert.o" => [ + "fuzz/acert.c" + ], + "fuzz/acert-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], "fuzz/asn1-test" => [ "fuzz/asn1-test-bin-asn1.o", "fuzz/asn1-test-bin-fuzz_rand.o", @@ -23529,6 +27294,190 @@ our %unified_info = ( "fuzz/ct-test-bin-test-corpus.o" => [ "fuzz/test-corpus.c" ], + "fuzz/decoder-test" => [ + "fuzz/decoder-test-bin-decoder.o", + "fuzz/decoder-test-bin-fuzz_rand.o", + "fuzz/decoder-test-bin-test-corpus.o" + ], + "fuzz/decoder-test-bin-decoder.o" => [ + "fuzz/decoder.c" + ], + "fuzz/decoder-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/decoder-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/dtlsclient-test" => [ + "fuzz/dtlsclient-test-bin-dtlsclient.o", + "fuzz/dtlsclient-test-bin-fuzz_rand.o", + "fuzz/dtlsclient-test-bin-test-corpus.o" + ], + "fuzz/dtlsclient-test-bin-dtlsclient.o" => [ + "fuzz/dtlsclient.c" + ], + "fuzz/dtlsclient-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/dtlsclient-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/dtlsserver-test" => [ + "fuzz/dtlsserver-test-bin-dtlsserver.o", + "fuzz/dtlsserver-test-bin-fuzz_rand.o", + "fuzz/dtlsserver-test-bin-test-corpus.o" + ], + "fuzz/dtlsserver-test-bin-dtlsserver.o" => [ + "fuzz/dtlsserver.c" + ], + "fuzz/dtlsserver-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/dtlsserver-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/hashtable-test" => [ + "fuzz/hashtable-test-bin-fuzz_rand.o", + "fuzz/hashtable-test-bin-hashtable.o", + "fuzz/hashtable-test-bin-test-corpus.o" + ], + "fuzz/hashtable-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/hashtable-test-bin-hashtable.o" => [ + "fuzz/hashtable.c" + ], + "fuzz/hashtable-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/ml-dsa-test" => [ + "fuzz/ml-dsa-test-bin-fuzz_rand.o", + "fuzz/ml-dsa-test-bin-ml-dsa.o", + "fuzz/ml-dsa-test-bin-test-corpus.o" + ], + "fuzz/ml-dsa-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/ml-dsa-test-bin-ml-dsa.o" => [ + "fuzz/ml-dsa.c" + ], + "fuzz/ml-dsa-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/ml-kem-test" => [ + "fuzz/ml-kem-test-bin-fuzz_rand.o", + "fuzz/ml-kem-test-bin-ml-kem.o", + "fuzz/ml-kem-test-bin-test-corpus.o" + ], + "fuzz/ml-kem-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/ml-kem-test-bin-ml-kem.o" => [ + "fuzz/ml-kem.c" + ], + "fuzz/ml-kem-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/pem-test" => [ + "fuzz/pem-test-bin-pem.o", + "fuzz/pem-test-bin-test-corpus.o" + ], + "fuzz/pem-test-bin-pem.o" => [ + "fuzz/pem.c" + ], + "fuzz/pem-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/provider-test" => [ + "fuzz/provider-test-bin-provider.o", + "fuzz/provider-test-bin-test-corpus.o" + ], + "fuzz/provider-test-bin-provider.o" => [ + "fuzz/provider.c" + ], + "fuzz/provider-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/punycode-test" => [ + "fuzz/punycode-test-bin-punycode.o", + "fuzz/punycode-test-bin-test-corpus.o" + ], + "fuzz/punycode-test-bin-punycode.o" => [ + "fuzz/punycode.c" + ], + "fuzz/punycode-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-client-test" => [ + "fuzz/quic-client-test-bin-fuzz_rand.o", + "fuzz/quic-client-test-bin-quic-client.o", + "fuzz/quic-client-test-bin-test-corpus.o" + ], + "fuzz/quic-client-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-client-test-bin-quic-client.o" => [ + "fuzz/quic-client.c" + ], + "fuzz/quic-client-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-lcidm-test" => [ + "fuzz/quic-lcidm-test-bin-fuzz_rand.o", + "fuzz/quic-lcidm-test-bin-quic-lcidm.o", + "fuzz/quic-lcidm-test-bin-test-corpus.o" + ], + "fuzz/quic-lcidm-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-lcidm-test-bin-quic-lcidm.o" => [ + "fuzz/quic-lcidm.c" + ], + "fuzz/quic-lcidm-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-rcidm-test" => [ + "fuzz/quic-rcidm-test-bin-fuzz_rand.o", + "fuzz/quic-rcidm-test-bin-quic-rcidm.o", + "fuzz/quic-rcidm-test-bin-test-corpus.o" + ], + "fuzz/quic-rcidm-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-rcidm-test-bin-quic-rcidm.o" => [ + "fuzz/quic-rcidm.c" + ], + "fuzz/quic-rcidm-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-server-test" => [ + "fuzz/quic-server-test-bin-fuzz_rand.o", + "fuzz/quic-server-test-bin-quic-server.o", + "fuzz/quic-server-test-bin-test-corpus.o" + ], + "fuzz/quic-server-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-server-test-bin-quic-server.o" => [ + "fuzz/quic-server.c" + ], + "fuzz/quic-server-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-srtm-test" => [ + "fuzz/quic-srtm-test-bin-fuzz_rand.o", + "fuzz/quic-srtm-test-bin-quic-srtm.o", + "fuzz/quic-srtm-test-bin-test-corpus.o" + ], + "fuzz/quic-srtm-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-srtm-test-bin-quic-srtm.o" => [ + "fuzz/quic-srtm.c" + ], + "fuzz/quic-srtm-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], "fuzz/server-test" => [ "fuzz/server-test-bin-fuzz_rand.o", "fuzz/server-test-bin-server.o", @@ -23543,6 +27492,40 @@ our %unified_info = ( "fuzz/server-test-bin-test-corpus.o" => [ "fuzz/test-corpus.c" ], + "fuzz/slh-dsa-test" => [ + "fuzz/slh-dsa-test-bin-fuzz_rand.o", + "fuzz/slh-dsa-test-bin-slh-dsa.o", + "fuzz/slh-dsa-test-bin-test-corpus.o" + ], + "fuzz/slh-dsa-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/slh-dsa-test-bin-slh-dsa.o" => [ + "fuzz/slh-dsa.c" + ], + "fuzz/slh-dsa-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/smime-test" => [ + "fuzz/smime-test-bin-smime.o", + "fuzz/smime-test-bin-test-corpus.o" + ], + "fuzz/smime-test-bin-smime.o" => [ + "fuzz/smime.c" + ], + "fuzz/smime-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/v3name-test" => [ + "fuzz/v3name-test-bin-test-corpus.o", + "fuzz/v3name-test-bin-v3name.o" + ], + "fuzz/v3name-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/v3name-test-bin-v3name.o" => [ + "fuzz/v3name.c" + ], "fuzz/x509-test" => [ "fuzz/x509-test-bin-fuzz_rand.o", "fuzz/x509-test-bin-test-corpus.o", @@ -23662,6 +27645,7 @@ our %unified_info = ( "crypto/bio/libcrypto-lib-bss_conn.o", "crypto/bio/libcrypto-lib-bss_core.o", "crypto/bio/libcrypto-lib-bss_dgram.o", + "crypto/bio/libcrypto-lib-bss_dgram_pair.o", "crypto/bio/libcrypto-lib-bss_fd.o", "crypto/bio/libcrypto-lib-bss_file.o", "crypto/bio/libcrypto-lib-bss_log.o", @@ -23722,6 +27706,7 @@ our %unified_info = ( "crypto/cmp/libcrypto-lib-cmp_client.o", "crypto/cmp/libcrypto-lib-cmp_ctx.o", "crypto/cmp/libcrypto-lib-cmp_err.o", + "crypto/cmp/libcrypto-lib-cmp_genm.o", "crypto/cmp/libcrypto-lib-cmp_hdr.o", "crypto/cmp/libcrypto-lib-cmp_http.o", "crypto/cmp/libcrypto-lib-cmp_msg.o", @@ -23897,7 +27882,9 @@ our %unified_info = ( "crypto/err/libcrypto-lib-err_all.o", "crypto/err/libcrypto-lib-err_all_legacy.o", "crypto/err/libcrypto-lib-err_blocks.o", + "crypto/err/libcrypto-lib-err_mark.o", "crypto/err/libcrypto-lib-err_prn.o", + "crypto/err/libcrypto-lib-err_save.o", "crypto/ess/libcrypto-lib-ess_asn1.o", "crypto/ess/libcrypto-lib-ess_err.o", "crypto/ess/libcrypto-lib-ess_lib.o", @@ -23980,7 +27967,9 @@ our %unified_info = ( "crypto/evp/libcrypto-lib-pmeth_check.o", "crypto/evp/libcrypto-lib-pmeth_gn.o", "crypto/evp/libcrypto-lib-pmeth_lib.o", + "crypto/evp/libcrypto-lib-s_lib.o", "crypto/evp/libcrypto-lib-signature.o", + "crypto/evp/libcrypto-lib-skeymgmt_meth.o", "crypto/ffc/libcrypto-lib-ffc_backend.o", "crypto/ffc/libcrypto-lib-ffc_dh.o", "crypto/ffc/libcrypto-lib-ffc_key_generate.o", @@ -23988,7 +27977,11 @@ our %unified_info = ( "crypto/ffc/libcrypto-lib-ffc_params.o", "crypto/ffc/libcrypto-lib-ffc_params_generate.o", "crypto/ffc/libcrypto-lib-ffc_params_validate.o", + "crypto/hashtable/libcrypto-lib-hashfunc.o", + "crypto/hashtable/libcrypto-lib-hashtable.o", "crypto/hmac/libcrypto-lib-hmac.o", + "crypto/hpke/libcrypto-lib-hpke.o", + "crypto/hpke/libcrypto-lib-hpke_util.o", "crypto/http/libcrypto-lib-http_client.o", "crypto/http/libcrypto-lib-http_err.o", "crypto/http/libcrypto-lib-http_lib.o", @@ -24002,6 +27995,7 @@ our %unified_info = ( "crypto/lhash/libcrypto-lib-lhash.o", "crypto/libcrypto-lib-asn1_dsa.o", "crypto/libcrypto-lib-bsearch.o", + "crypto/libcrypto-lib-comp_methods.o", "crypto/libcrypto-lib-context.o", "crypto/libcrypto-lib-core_algorithm.o", "crypto/libcrypto-lib-core_fetch.o", @@ -24011,10 +28005,13 @@ our %unified_info = ( "crypto/libcrypto-lib-cryptlib.o", "crypto/libcrypto-lib-ctype.o", "crypto/libcrypto-lib-cversion.o", + "crypto/libcrypto-lib-defaults.o", "crypto/libcrypto-lib-der_writer.o", + "crypto/libcrypto-lib-deterministic_nonce.o", "crypto/libcrypto-lib-ebcdic.o", "crypto/libcrypto-lib-ex_data.o", "crypto/libcrypto-lib-getenv.o", + "crypto/libcrypto-lib-indicator_core.o", "crypto/libcrypto-lib-info.o", "crypto/libcrypto-lib-init.o", "crypto/libcrypto-lib-initthread.o", @@ -24032,6 +28029,7 @@ our %unified_info = ( "crypto/libcrypto-lib-params.o", "crypto/libcrypto-lib-params_dup.o", "crypto/libcrypto-lib-params_from_text.o", + "crypto/libcrypto-lib-params_idx.o", "crypto/libcrypto-lib-passphrase.o", "crypto/libcrypto-lib-provider.o", "crypto/libcrypto-lib-provider_child.o", @@ -24039,12 +28037,16 @@ our %unified_info = ( "crypto/libcrypto-lib-provider_core.o", "crypto/libcrypto-lib-provider_predefined.o", "crypto/libcrypto-lib-punycode.o", + "crypto/libcrypto-lib-quic_vlint.o", "crypto/libcrypto-lib-self_test_core.o", + "crypto/libcrypto-lib-sleep.o", "crypto/libcrypto-lib-sparse_array.o", + "crypto/libcrypto-lib-ssl_err.o", "crypto/libcrypto-lib-threads_lib.o", "crypto/libcrypto-lib-threads_none.o", "crypto/libcrypto-lib-threads_pthread.o", "crypto/libcrypto-lib-threads_win.o", + "crypto/libcrypto-lib-time.o", "crypto/libcrypto-lib-trace.o", "crypto/libcrypto-lib-uid.o", "crypto/md4/libcrypto-lib-md4_dgst.o", @@ -24054,6 +28056,15 @@ our %unified_info = ( "crypto/md5/libcrypto-lib-md5_sha1.o", "crypto/mdc2/libcrypto-lib-mdc2_one.o", "crypto/mdc2/libcrypto-lib-mdc2dgst.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_encoders.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key_compress.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_matrix.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_ntt.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_params.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sample.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sign.o", + "crypto/ml_kem/libcrypto-lib-ml_kem.o", "crypto/modes/libcrypto-lib-cbc128.o", "crypto/modes/libcrypto-lib-ccm128.o", "crypto/modes/libcrypto-lib-cfb128.o", @@ -24065,6 +28076,7 @@ our %unified_info = ( "crypto/modes/libcrypto-lib-siv128.o", "crypto/modes/libcrypto-lib-wrap128.o", "crypto/modes/libcrypto-lib-xts128.o", + "crypto/modes/libcrypto-lib-xts128gb.o", "crypto/objects/libcrypto-lib-o_names.o", "crypto/objects/libcrypto-lib-obj_dat.o", "crypto/objects/libcrypto-lib-obj_err.o", @@ -24128,6 +28140,7 @@ our %unified_info = ( "crypto/rand/libcrypto-lib-rand_lib.o", "crypto/rand/libcrypto-lib-rand_meth.o", "crypto/rand/libcrypto-lib-rand_pool.o", + "crypto/rand/libcrypto-lib-rand_uniform.o", "crypto/rand/libcrypto-lib-randfile.o", "crypto/rc2/libcrypto-lib-rc2_cbc.o", "crypto/rc2/libcrypto-lib-rc2_ecb.o", @@ -24176,6 +28189,16 @@ our %unified_info = ( "crypto/sha/libcrypto-lib-sha3.o", "crypto/sha/libcrypto-lib-sha512.o", "crypto/siphash/libcrypto-lib-siphash.o", + "crypto/slh_dsa/libcrypto-lib-slh_adrs.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa_hash_ctx.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa_key.o", + "crypto/slh_dsa/libcrypto-lib-slh_fors.o", + "crypto/slh_dsa/libcrypto-lib-slh_hash.o", + "crypto/slh_dsa/libcrypto-lib-slh_hypertree.o", + "crypto/slh_dsa/libcrypto-lib-slh_params.o", + "crypto/slh_dsa/libcrypto-lib-slh_wots.o", + "crypto/slh_dsa/libcrypto-lib-slh_xmss.o", "crypto/sm2/libcrypto-lib-sm2_crypt.o", "crypto/sm2/libcrypto-lib-sm2_err.o", "crypto/sm2/libcrypto-lib-sm2_key.o", @@ -24193,6 +28216,12 @@ our %unified_info = ( "crypto/store/libcrypto-lib-store_register.o", "crypto/store/libcrypto-lib-store_result.o", "crypto/store/libcrypto-lib-store_strings.o", + "crypto/thread/arch/libcrypto-lib-thread_none.o", + "crypto/thread/arch/libcrypto-lib-thread_posix.o", + "crypto/thread/arch/libcrypto-lib-thread_win.o", + "crypto/thread/libcrypto-lib-api.o", + "crypto/thread/libcrypto-lib-arch.o", + "crypto/thread/libcrypto-lib-internal.o", "crypto/ts/libcrypto-lib-ts_asn1.o", "crypto/ts/libcrypto-lib-ts_conf.o", "crypto/ts/libcrypto-lib-ts_err.o", @@ -24221,14 +28250,22 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-pcy_map.o", "crypto/x509/libcrypto-lib-pcy_node.o", "crypto/x509/libcrypto-lib-pcy_tree.o", + "crypto/x509/libcrypto-lib-t_acert.o", "crypto/x509/libcrypto-lib-t_crl.o", "crypto/x509/libcrypto-lib-t_req.o", "crypto/x509/libcrypto-lib-t_x509.o", + "crypto/x509/libcrypto-lib-v3_aaa.o", + "crypto/x509/libcrypto-lib-v3_ac_tgt.o", "crypto/x509/libcrypto-lib-v3_addr.o", "crypto/x509/libcrypto-lib-v3_admis.o", "crypto/x509/libcrypto-lib-v3_akeya.o", "crypto/x509/libcrypto-lib-v3_akid.o", "crypto/x509/libcrypto-lib-v3_asid.o", + "crypto/x509/libcrypto-lib-v3_attrdesc.o", + "crypto/x509/libcrypto-lib-v3_attrmap.o", + "crypto/x509/libcrypto-lib-v3_audit_id.o", + "crypto/x509/libcrypto-lib-v3_authattid.o", + "crypto/x509/libcrypto-lib-v3_battcons.o", "crypto/x509/libcrypto-lib-v3_bcons.o", "crypto/x509/libcrypto-lib-v3_bitst.o", "crypto/x509/libcrypto-lib-v3_conf.o", @@ -24237,12 +28274,17 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_enum.o", "crypto/x509/libcrypto-lib-v3_extku.o", "crypto/x509/libcrypto-lib-v3_genn.o", + "crypto/x509/libcrypto-lib-v3_group_ac.o", "crypto/x509/libcrypto-lib-v3_ia5.o", + "crypto/x509/libcrypto-lib-v3_ind_iss.o", "crypto/x509/libcrypto-lib-v3_info.o", "crypto/x509/libcrypto-lib-v3_int.o", + "crypto/x509/libcrypto-lib-v3_iobo.o", "crypto/x509/libcrypto-lib-v3_ist.o", "crypto/x509/libcrypto-lib-v3_lib.o", "crypto/x509/libcrypto-lib-v3_ncons.o", + "crypto/x509/libcrypto-lib-v3_no_ass.o", + "crypto/x509/libcrypto-lib-v3_no_rev_avail.o", "crypto/x509/libcrypto-lib-v3_pci.o", "crypto/x509/libcrypto-lib-v3_pcia.o", "crypto/x509/libcrypto-lib-v3_pcons.o", @@ -24250,13 +28292,20 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_pmaps.o", "crypto/x509/libcrypto-lib-v3_prn.o", "crypto/x509/libcrypto-lib-v3_purp.o", + "crypto/x509/libcrypto-lib-v3_rolespec.o", "crypto/x509/libcrypto-lib-v3_san.o", + "crypto/x509/libcrypto-lib-v3_sda.o", + "crypto/x509/libcrypto-lib-v3_single_use.o", "crypto/x509/libcrypto-lib-v3_skid.o", + "crypto/x509/libcrypto-lib-v3_soa_id.o", "crypto/x509/libcrypto-lib-v3_sxnet.o", + "crypto/x509/libcrypto-lib-v3_timespec.o", "crypto/x509/libcrypto-lib-v3_tlsf.o", + "crypto/x509/libcrypto-lib-v3_usernotice.o", "crypto/x509/libcrypto-lib-v3_utf8.o", "crypto/x509/libcrypto-lib-v3_utl.o", "crypto/x509/libcrypto-lib-v3err.o", + "crypto/x509/libcrypto-lib-x509_acert.o", "crypto/x509/libcrypto-lib-x509_att.o", "crypto/x509/libcrypto-lib-x509_cmp.o", "crypto/x509/libcrypto-lib-x509_d2.o", @@ -24274,6 +28323,7 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x509_v3.o", "crypto/x509/libcrypto-lib-x509_vfy.o", "crypto/x509/libcrypto-lib-x509_vpm.o", + "crypto/x509/libcrypto-lib-x509aset.o", "crypto/x509/libcrypto-lib-x509cset.o", "crypto/x509/libcrypto-lib-x509name.o", "crypto/x509/libcrypto-lib-x509rset.o", @@ -24283,6 +28333,7 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x_attrib.o", "crypto/x509/libcrypto-lib-x_crl.o", "crypto/x509/libcrypto-lib-x_exten.o", + "crypto/x509/libcrypto-lib-x_ietfatt.o", "crypto/x509/libcrypto-lib-x_name.o", "crypto/x509/libcrypto-lib-x_pubkey.o", "crypto/x509/libcrypto-lib-x_req.o", @@ -24303,14 +28354,15 @@ our %unified_info = ( "ssl/libssl-lib-d1_srtp.o", "ssl/libssl-lib-methods.o", "ssl/libssl-lib-pqueue.o", + "ssl/libssl-lib-priority_queue.o", "ssl/libssl-lib-s3_enc.o", "ssl/libssl-lib-s3_lib.o", "ssl/libssl-lib-s3_msg.o", "ssl/libssl-lib-ssl_asn1.o", "ssl/libssl-lib-ssl_cert.o", + "ssl/libssl-lib-ssl_cert_comp.o", "ssl/libssl-lib-ssl_ciph.o", "ssl/libssl-lib-ssl_conf.o", - "ssl/libssl-lib-ssl_err.o", "ssl/libssl-lib-ssl_err_legacy.o", "ssl/libssl-lib-ssl_init.o", "ssl/libssl-lib-ssl_lib.o", @@ -24327,12 +28379,60 @@ our %unified_info = ( "ssl/libssl-lib-tls13_enc.o", "ssl/libssl-lib-tls_depr.o", "ssl/libssl-lib-tls_srp.o", - "ssl/record/libssl-lib-dtls1_bitmap.o", + "ssl/quic/libssl-lib-cc_newreno.o", + "ssl/quic/libssl-lib-json_enc.o", + "ssl/quic/libssl-lib-qlog.o", + "ssl/quic/libssl-lib-qlog_event_helpers.o", + "ssl/quic/libssl-lib-quic_ackm.o", + "ssl/quic/libssl-lib-quic_cfq.o", + "ssl/quic/libssl-lib-quic_channel.o", + "ssl/quic/libssl-lib-quic_demux.o", + "ssl/quic/libssl-lib-quic_engine.o", + "ssl/quic/libssl-lib-quic_fc.o", + "ssl/quic/libssl-lib-quic_fifd.o", + "ssl/quic/libssl-lib-quic_impl.o", + "ssl/quic/libssl-lib-quic_lcidm.o", + "ssl/quic/libssl-lib-quic_method.o", + "ssl/quic/libssl-lib-quic_obj.o", + "ssl/quic/libssl-lib-quic_port.o", + "ssl/quic/libssl-lib-quic_rcidm.o", + "ssl/quic/libssl-lib-quic_reactor.o", + "ssl/quic/libssl-lib-quic_reactor_wait_ctx.o", + "ssl/quic/libssl-lib-quic_record_rx.o", + "ssl/quic/libssl-lib-quic_record_shared.o", + "ssl/quic/libssl-lib-quic_record_tx.o", + "ssl/quic/libssl-lib-quic_record_util.o", + "ssl/quic/libssl-lib-quic_rstream.o", + "ssl/quic/libssl-lib-quic_rx_depack.o", + "ssl/quic/libssl-lib-quic_sf_list.o", + "ssl/quic/libssl-lib-quic_srt_gen.o", + "ssl/quic/libssl-lib-quic_srtm.o", + "ssl/quic/libssl-lib-quic_sstream.o", + "ssl/quic/libssl-lib-quic_statm.o", + "ssl/quic/libssl-lib-quic_stream_map.o", + "ssl/quic/libssl-lib-quic_thread_assist.o", + "ssl/quic/libssl-lib-quic_tls.o", + "ssl/quic/libssl-lib-quic_tls_api.o", + "ssl/quic/libssl-lib-quic_trace.o", + "ssl/quic/libssl-lib-quic_tserver.o", + "ssl/quic/libssl-lib-quic_txp.o", + "ssl/quic/libssl-lib-quic_txpim.o", + "ssl/quic/libssl-lib-quic_types.o", + "ssl/quic/libssl-lib-quic_wire.o", + "ssl/quic/libssl-lib-quic_wire_pkt.o", + "ssl/quic/libssl-lib-uint_set.o", "ssl/record/libssl-lib-rec_layer_d1.o", "ssl/record/libssl-lib-rec_layer_s3.o", - "ssl/record/libssl-lib-ssl3_buffer.o", - "ssl/record/libssl-lib-ssl3_record.o", - "ssl/record/libssl-lib-ssl3_record_tls13.o", + "ssl/record/methods/libssl-lib-dtls_meth.o", + "ssl/record/methods/libssl-lib-ssl3_meth.o", + "ssl/record/methods/libssl-lib-tls13_meth.o", + "ssl/record/methods/libssl-lib-tls1_meth.o", + "ssl/record/methods/libssl-lib-tls_common.o", + "ssl/record/methods/libssl-lib-tls_multib.o", + "ssl/record/methods/libssl-lib-tlsany_meth.o", + "ssl/rio/libssl-lib-poll_builder.o", + "ssl/rio/libssl-lib-poll_immediate.o", + "ssl/rio/libssl-lib-rio_notifier.o", "ssl/statem/libssl-lib-extensions.o", "ssl/statem/libssl-lib-extensions_clnt.o", "ssl/statem/libssl-lib-extensions_cust.o", @@ -24370,12 +28470,24 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ecx_key.o" => [ "providers/common/der/der_ecx_key.c" ], + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o" => [ + "providers/common/der/der_ml_dsa_gen.c" + ], + "providers/common/der/libcommon-lib-der_ml_dsa_key.o" => [ + "providers/common/der/der_ml_dsa_key.c" + ], "providers/common/der/libcommon-lib-der_rsa_gen.o" => [ "providers/common/der/der_rsa_gen.c" ], "providers/common/der/libcommon-lib-der_rsa_key.o" => [ "providers/common/der/der_rsa_key.c" ], + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o" => [ + "providers/common/der/der_slh_dsa_gen.c" + ], + "providers/common/der/libcommon-lib-der_slh_dsa_key.o" => [ + "providers/common/der/der_slh_dsa_key.c" + ], "providers/common/der/libcommon-lib-der_wrap_gen.o" => [ "providers/common/der/der_wrap_gen.c" ], @@ -24442,6 +28554,9 @@ our %unified_info = ( "providers/common/libfips-lib-securitycheck_fips.o" => [ "providers/common/securitycheck_fips.c" ], + "providers/endecode_test-bin-legacyprov.o" => [ + "providers/legacyprov.c" + ], "providers/evp_extra_test-bin-legacyprov.o" => [ "providers/legacyprov.c" ], @@ -24452,6 +28567,9 @@ our %unified_info = ( "providers/fips/fips-dso-fips_entry.o" => [ "providers/fips/fips_entry.c" ], + "providers/fips/libfips-lib-fipsindicator.o" => [ + "providers/fips/fipsindicator.c" + ], "providers/fips/libfips-lib-fipsprov.o" => [ "providers/fips/fipsprov.c" ], @@ -24515,6 +28633,15 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_hw.o" => [ "providers/implementations/ciphers/cipher_aes_gcm_hw.c" ], + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv.o" => [ + "providers/implementations/ciphers/cipher_aes_gcm_siv.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_hw.o" => [ + "providers/implementations/ciphers/cipher_aes_gcm_siv_hw.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_polyval.o" => [ + "providers/implementations/ciphers/cipher_aes_gcm_siv_polyval.c" + ], "providers/implementations/ciphers/libdefault-lib-cipher_aes_hw.o" => [ "providers/implementations/ciphers/cipher_aes_hw.c" ], @@ -24587,9 +28714,27 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_sm4.o" => [ "providers/implementations/ciphers/cipher_sm4.c" ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm.o" => [ + "providers/implementations/ciphers/cipher_sm4_ccm.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm_hw.o" => [ + "providers/implementations/ciphers/cipher_sm4_ccm_hw.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm.o" => [ + "providers/implementations/ciphers/cipher_sm4_gcm.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm_hw.o" => [ + "providers/implementations/ciphers/cipher_sm4_gcm_hw.c" + ], "providers/implementations/ciphers/libdefault-lib-cipher_sm4_hw.o" => [ "providers/implementations/ciphers/cipher_sm4_hw.c" ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts.o" => [ + "providers/implementations/ciphers/cipher_sm4_xts.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts_hw.o" => [ + "providers/implementations/ciphers/cipher_sm4_xts_hw.c" + ], "providers/implementations/ciphers/libdefault-lib-cipher_tdes.o" => [ "providers/implementations/ciphers/cipher_tdes.c" ], @@ -24809,6 +28954,15 @@ our %unified_info = ( "providers/implementations/encode_decode/libdefault-lib-endecoder_common.o" => [ "providers/implementations/encode_decode/endecoder_common.c" ], + "providers/implementations/encode_decode/libdefault-lib-ml_common_codecs.o" => [ + "providers/implementations/encode_decode/ml_common_codecs.c" + ], + "providers/implementations/encode_decode/libdefault-lib-ml_dsa_codecs.o" => [ + "providers/implementations/encode_decode/ml_dsa_codecs.c" + ], + "providers/implementations/encode_decode/libdefault-lib-ml_kem_codecs.o" => [ + "providers/implementations/encode_decode/ml_kem_codecs.c" + ], "providers/implementations/exchange/libdefault-lib-dh_exch.o" => [ "providers/implementations/exchange/dh_exch.c" ], @@ -24833,9 +28987,15 @@ our %unified_info = ( "providers/implementations/exchange/libfips-lib-kdf_exch.o" => [ "providers/implementations/exchange/kdf_exch.c" ], + "providers/implementations/kdfs/libdefault-lib-argon2.o" => [ + "providers/implementations/kdfs/argon2.c" + ], "providers/implementations/kdfs/libdefault-lib-hkdf.o" => [ "providers/implementations/kdfs/hkdf.c" ], + "providers/implementations/kdfs/libdefault-lib-hmacdrbg_kdf.o" => [ + "providers/implementations/kdfs/hmacdrbg_kdf.c" + ], "providers/implementations/kdfs/libdefault-lib-kbkdf.o" => [ "providers/implementations/kdfs/kbkdf.c" ], @@ -24893,12 +29053,39 @@ our %unified_info = ( "providers/implementations/kdfs/liblegacy-lib-pbkdf1.o" => [ "providers/implementations/kdfs/pbkdf1.c" ], + "providers/implementations/kdfs/liblegacy-lib-pvkkdf.o" => [ + "providers/implementations/kdfs/pvkkdf.c" + ], + "providers/implementations/kem/libdefault-lib-ec_kem.o" => [ + "providers/implementations/kem/ec_kem.c" + ], + "providers/implementations/kem/libdefault-lib-ecx_kem.o" => [ + "providers/implementations/kem/ecx_kem.c" + ], + "providers/implementations/kem/libdefault-lib-kem_util.o" => [ + "providers/implementations/kem/kem_util.c" + ], + "providers/implementations/kem/libdefault-lib-ml_kem_kem.o" => [ + "providers/implementations/kem/ml_kem_kem.c" + ], + "providers/implementations/kem/libdefault-lib-mlx_kem.o" => [ + "providers/implementations/kem/mlx_kem.c" + ], "providers/implementations/kem/libdefault-lib-rsa_kem.o" => [ "providers/implementations/kem/rsa_kem.c" ], + "providers/implementations/kem/libfips-lib-ml_kem_kem.o" => [ + "providers/implementations/kem/ml_kem_kem.c" + ], + "providers/implementations/kem/libfips-lib-mlx_kem.o" => [ + "providers/implementations/kem/mlx_kem.c" + ], "providers/implementations/kem/libfips-lib-rsa_kem.o" => [ "providers/implementations/kem/rsa_kem.c" ], + "providers/implementations/kem/libtemplate-lib-template_kem.o" => [ + "providers/implementations/kem/template_kem.c" + ], "providers/implementations/keymgmt/libdefault-lib-dh_kmgmt.o" => [ "providers/implementations/keymgmt/dh_kmgmt.c" ], @@ -24917,9 +29104,21 @@ our %unified_info = ( "providers/implementations/keymgmt/libdefault-lib-mac_legacy_kmgmt.o" => [ "providers/implementations/keymgmt/mac_legacy_kmgmt.c" ], + "providers/implementations/keymgmt/libdefault-lib-ml_dsa_kmgmt.o" => [ + "providers/implementations/keymgmt/ml_dsa_kmgmt.c" + ], + "providers/implementations/keymgmt/libdefault-lib-ml_kem_kmgmt.o" => [ + "providers/implementations/keymgmt/ml_kem_kmgmt.c" + ], + "providers/implementations/keymgmt/libdefault-lib-mlx_kmgmt.o" => [ + "providers/implementations/keymgmt/mlx_kmgmt.c" + ], "providers/implementations/keymgmt/libdefault-lib-rsa_kmgmt.o" => [ "providers/implementations/keymgmt/rsa_kmgmt.c" ], + "providers/implementations/keymgmt/libdefault-lib-slh_dsa_kmgmt.o" => [ + "providers/implementations/keymgmt/slh_dsa_kmgmt.c" + ], "providers/implementations/keymgmt/libfips-lib-dh_kmgmt.o" => [ "providers/implementations/keymgmt/dh_kmgmt.c" ], @@ -24938,9 +29137,24 @@ our %unified_info = ( "providers/implementations/keymgmt/libfips-lib-mac_legacy_kmgmt.o" => [ "providers/implementations/keymgmt/mac_legacy_kmgmt.c" ], + "providers/implementations/keymgmt/libfips-lib-ml_dsa_kmgmt.o" => [ + "providers/implementations/keymgmt/ml_dsa_kmgmt.c" + ], + "providers/implementations/keymgmt/libfips-lib-ml_kem_kmgmt.o" => [ + "providers/implementations/keymgmt/ml_kem_kmgmt.c" + ], + "providers/implementations/keymgmt/libfips-lib-mlx_kmgmt.o" => [ + "providers/implementations/keymgmt/mlx_kmgmt.c" + ], "providers/implementations/keymgmt/libfips-lib-rsa_kmgmt.o" => [ "providers/implementations/keymgmt/rsa_kmgmt.c" ], + "providers/implementations/keymgmt/libfips-lib-slh_dsa_kmgmt.o" => [ + "providers/implementations/keymgmt/slh_dsa_kmgmt.c" + ], + "providers/implementations/keymgmt/libtemplate-lib-template_kmgmt.o" => [ + "providers/implementations/keymgmt/template_kmgmt.c" + ], "providers/implementations/macs/libdefault-lib-blake2b_mac.o" => [ "providers/implementations/macs/blake2b_mac.c" ], @@ -24977,9 +29191,6 @@ our %unified_info = ( "providers/implementations/macs/libfips-lib-kmac_prov.o" => [ "providers/implementations/macs/kmac_prov.c" ], - "providers/implementations/rands/libdefault-lib-crngt.o" => [ - "providers/implementations/rands/crngt.c" - ], "providers/implementations/rands/libdefault-lib-drbg.o" => [ "providers/implementations/rands/drbg.c" ], @@ -24995,12 +29206,12 @@ our %unified_info = ( "providers/implementations/rands/libdefault-lib-seed_src.o" => [ "providers/implementations/rands/seed_src.c" ], + "providers/implementations/rands/libdefault-lib-seed_src_jitter.o" => [ + "providers/implementations/rands/seed_src_jitter.c" + ], "providers/implementations/rands/libdefault-lib-test_rng.o" => [ "providers/implementations/rands/test_rng.c" ], - "providers/implementations/rands/libfips-lib-crngt.o" => [ - "providers/implementations/rands/crngt.c" - ], "providers/implementations/rands/libfips-lib-drbg.o" => [ "providers/implementations/rands/drbg.c" ], @@ -25013,6 +29224,9 @@ our %unified_info = ( "providers/implementations/rands/libfips-lib-drbg_hmac.o" => [ "providers/implementations/rands/drbg_hmac.c" ], + "providers/implementations/rands/libfips-lib-fips_crng_test.o" => [ + "providers/implementations/rands/fips_crng_test.c" + ], "providers/implementations/rands/libfips-lib-test_rng.o" => [ "providers/implementations/rands/test_rng.c" ], @@ -25040,9 +29254,15 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-mac_legacy_sig.o" => [ "providers/implementations/signature/mac_legacy_sig.c" ], + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o" => [ + "providers/implementations/signature/ml_dsa_sig.c" + ], "providers/implementations/signature/libdefault-lib-rsa_sig.o" => [ "providers/implementations/signature/rsa_sig.c" ], + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o" => [ + "providers/implementations/signature/slh_dsa_sig.c" + ], "providers/implementations/signature/libdefault-lib-sm2_sig.o" => [ "providers/implementations/signature/sm2_sig.c" ], @@ -25058,9 +29278,27 @@ our %unified_info = ( "providers/implementations/signature/libfips-lib-mac_legacy_sig.o" => [ "providers/implementations/signature/mac_legacy_sig.c" ], + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o" => [ + "providers/implementations/signature/ml_dsa_sig.c" + ], "providers/implementations/signature/libfips-lib-rsa_sig.o" => [ "providers/implementations/signature/rsa_sig.c" ], + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o" => [ + "providers/implementations/signature/slh_dsa_sig.c" + ], + "providers/implementations/skeymgmt/libdefault-lib-aes_skmgmt.o" => [ + "providers/implementations/skeymgmt/aes_skmgmt.c" + ], + "providers/implementations/skeymgmt/libdefault-lib-generic.o" => [ + "providers/implementations/skeymgmt/generic.c" + ], + "providers/implementations/skeymgmt/libfips-lib-aes_skmgmt.o" => [ + "providers/implementations/skeymgmt/aes_skmgmt.c" + ], + "providers/implementations/skeymgmt/libfips-lib-generic.o" => [ + "providers/implementations/skeymgmt/generic.c" + ], "providers/implementations/storemgmt/libdefault-lib-file_store.o" => [ "providers/implementations/storemgmt/file_store.c" ], @@ -25084,8 +29322,12 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ec_sig.o", "providers/common/der/libcommon-lib-der_ecx_gen.o", "providers/common/der/libcommon-lib-der_ecx_key.o", + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o", + "providers/common/der/libcommon-lib-der_ml_dsa_key.o", "providers/common/der/libcommon-lib-der_rsa_gen.o", "providers/common/der/libcommon-lib-der_rsa_key.o", + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o", + "providers/common/der/libcommon-lib-der_slh_dsa_key.o", "providers/common/der/libcommon-lib-der_wrap_gen.o", "providers/common/libcommon-lib-provider_ctx.o", "providers/common/libcommon-lib-provider_err.o", @@ -25097,7 +29339,7 @@ our %unified_info = ( "providers/implementations/ciphers/libcommon-lib-ciphercommon_gcm_hw.o", "providers/implementations/ciphers/libcommon-lib-ciphercommon_hw.o", "providers/implementations/digests/libcommon-lib-digestcommon.o", - "ssl/record/libcommon-lib-tls_pad.o" + "ssl/record/methods/libcommon-lib-tls_pad.o" ], "providers/libcrypto-lib-baseprov.o" => [ "providers/baseprov.c" @@ -25133,6 +29375,9 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_aes_ccm_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_polyval.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_ocb.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_ocb_hw.o", @@ -25157,7 +29402,13 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_cts.o", "providers/implementations/ciphers/libdefault-lib-cipher_null.o", "providers/implementations/ciphers/libdefault-lib-cipher_sm4.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_sm4_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes_common.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes_default.o", @@ -25186,11 +29437,16 @@ our %unified_info = ( "providers/implementations/encode_decode/libdefault-lib-encode_key2ms.o", "providers/implementations/encode_decode/libdefault-lib-encode_key2text.o", "providers/implementations/encode_decode/libdefault-lib-endecoder_common.o", + "providers/implementations/encode_decode/libdefault-lib-ml_common_codecs.o", + "providers/implementations/encode_decode/libdefault-lib-ml_dsa_codecs.o", + "providers/implementations/encode_decode/libdefault-lib-ml_kem_codecs.o", "providers/implementations/exchange/libdefault-lib-dh_exch.o", "providers/implementations/exchange/libdefault-lib-ecdh_exch.o", "providers/implementations/exchange/libdefault-lib-ecx_exch.o", "providers/implementations/exchange/libdefault-lib-kdf_exch.o", + "providers/implementations/kdfs/libdefault-lib-argon2.o", "providers/implementations/kdfs/libdefault-lib-hkdf.o", + "providers/implementations/kdfs/libdefault-lib-hmacdrbg_kdf.o", "providers/implementations/kdfs/libdefault-lib-kbkdf.o", "providers/implementations/kdfs/libdefault-lib-krb5kdf.o", "providers/implementations/kdfs/libdefault-lib-pbkdf2.o", @@ -25201,6 +29457,11 @@ our %unified_info = ( "providers/implementations/kdfs/libdefault-lib-sskdf.o", "providers/implementations/kdfs/libdefault-lib-tls1_prf.o", "providers/implementations/kdfs/libdefault-lib-x942kdf.o", + "providers/implementations/kem/libdefault-lib-ec_kem.o", + "providers/implementations/kem/libdefault-lib-ecx_kem.o", + "providers/implementations/kem/libdefault-lib-kem_util.o", + "providers/implementations/kem/libdefault-lib-ml_kem_kem.o", + "providers/implementations/kem/libdefault-lib-mlx_kem.o", "providers/implementations/kem/libdefault-lib-rsa_kem.o", "providers/implementations/keymgmt/libdefault-lib-dh_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-dsa_kmgmt.o", @@ -25208,7 +29469,11 @@ our %unified_info = ( "providers/implementations/keymgmt/libdefault-lib-ecx_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-kdf_legacy_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-mac_legacy_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-ml_dsa_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-ml_kem_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-mlx_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-rsa_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-slh_dsa_kmgmt.o", "providers/implementations/macs/libdefault-lib-blake2b_mac.o", "providers/implementations/macs/libdefault-lib-blake2s_mac.o", "providers/implementations/macs/libdefault-lib-cmac_prov.o", @@ -25217,12 +29482,12 @@ our %unified_info = ( "providers/implementations/macs/libdefault-lib-kmac_prov.o", "providers/implementations/macs/libdefault-lib-poly1305_prov.o", "providers/implementations/macs/libdefault-lib-siphash_prov.o", - "providers/implementations/rands/libdefault-lib-crngt.o", "providers/implementations/rands/libdefault-lib-drbg.o", "providers/implementations/rands/libdefault-lib-drbg_ctr.o", "providers/implementations/rands/libdefault-lib-drbg_hash.o", "providers/implementations/rands/libdefault-lib-drbg_hmac.o", "providers/implementations/rands/libdefault-lib-seed_src.o", + "providers/implementations/rands/libdefault-lib-seed_src_jitter.o", "providers/implementations/rands/libdefault-lib-test_rng.o", "providers/implementations/rands/seeding/libdefault-lib-rand_cpu_x86.o", "providers/implementations/rands/seeding/libdefault-lib-rand_tsc.o", @@ -25232,11 +29497,15 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-ecdsa_sig.o", "providers/implementations/signature/libdefault-lib-eddsa_sig.o", "providers/implementations/signature/libdefault-lib-mac_legacy_sig.o", + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o", "providers/implementations/signature/libdefault-lib-rsa_sig.o", + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o", "providers/implementations/signature/libdefault-lib-sm2_sig.o", + "providers/implementations/skeymgmt/libdefault-lib-aes_skmgmt.o", + "providers/implementations/skeymgmt/libdefault-lib-generic.o", "providers/implementations/storemgmt/libdefault-lib-file_store.o", "providers/implementations/storemgmt/libdefault-lib-file_store_any2obj.o", - "ssl/libdefault-lib-s3_cbc.o" + "ssl/record/methods/libdefault-lib-ssl3_cbc.o" ], "providers/libfips.a" => [ "crypto/aes/libfips-lib-aes_cbc.o", @@ -25338,14 +29607,15 @@ our %unified_info = ( "crypto/evp/libfips-lib-kem.o", "crypto/evp/libfips-lib-keymgmt_lib.o", "crypto/evp/libfips-lib-keymgmt_meth.o", - "crypto/evp/libfips-lib-m_sigver.o", "crypto/evp/libfips-lib-mac_lib.o", "crypto/evp/libfips-lib-mac_meth.o", "crypto/evp/libfips-lib-p_lib.o", "crypto/evp/libfips-lib-pmeth_check.o", "crypto/evp/libfips-lib-pmeth_gn.o", "crypto/evp/libfips-lib-pmeth_lib.o", + "crypto/evp/libfips-lib-s_lib.o", "crypto/evp/libfips-lib-signature.o", + "crypto/evp/libfips-lib-skeymgmt_meth.o", "crypto/ffc/libfips-lib-ffc_backend.o", "crypto/ffc/libfips-lib-ffc_dh.o", "crypto/ffc/libfips-lib-ffc_key_generate.o", @@ -25353,6 +29623,8 @@ our %unified_info = ( "crypto/ffc/libfips-lib-ffc_params.o", "crypto/ffc/libfips-lib-ffc_params_generate.o", "crypto/ffc/libfips-lib-ffc_params_validate.o", + "crypto/hashtable/libfips-lib-hashfunc.o", + "crypto/hashtable/libfips-lib-hashtable.o", "crypto/hmac/libfips-lib-hmac.o", "crypto/lhash/libfips-lib-lhash.o", "crypto/libfips-lib-asn1_dsa.o", @@ -25375,6 +29647,7 @@ our %unified_info = ( "crypto/libfips-lib-params.o", "crypto/libfips-lib-params_dup.o", "crypto/libfips-lib-params_from_text.o", + "crypto/libfips-lib-params_idx.o", "crypto/libfips-lib-provider_core.o", "crypto/libfips-lib-provider_predefined.o", "crypto/libfips-lib-self_test_core.o", @@ -25383,6 +29656,16 @@ our %unified_info = ( "crypto/libfips-lib-threads_none.o", "crypto/libfips-lib-threads_pthread.o", "crypto/libfips-lib-threads_win.o", + "crypto/libfips-lib-time.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_encoders.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_key.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_key_compress.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_matrix.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_ntt.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_params.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_sample.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_sign.o", + "crypto/ml_kem/libfips-lib-ml_kem.o", "crypto/modes/libfips-lib-cbc128.o", "crypto/modes/libfips-lib-ccm128.o", "crypto/modes/libfips-lib-cfb128.o", @@ -25391,6 +29674,7 @@ our %unified_info = ( "crypto/modes/libfips-lib-ofb128.o", "crypto/modes/libfips-lib-wrap128.o", "crypto/modes/libfips-lib-xts128.o", + "crypto/modes/libfips-lib-xts128gb.o", "crypto/property/libfips-lib-defn_cache.o", "crypto/property/libfips-lib-property.o", "crypto/property/libfips-lib-property_parse.o", @@ -25419,7 +29703,23 @@ our %unified_info = ( "crypto/sha/libfips-lib-sha256.o", "crypto/sha/libfips-lib-sha3.o", "crypto/sha/libfips-lib-sha512.o", + "crypto/slh_dsa/libfips-lib-slh_adrs.o", + "crypto/slh_dsa/libfips-lib-slh_dsa.o", + "crypto/slh_dsa/libfips-lib-slh_dsa_hash_ctx.o", + "crypto/slh_dsa/libfips-lib-slh_dsa_key.o", + "crypto/slh_dsa/libfips-lib-slh_fors.o", + "crypto/slh_dsa/libfips-lib-slh_hash.o", + "crypto/slh_dsa/libfips-lib-slh_hypertree.o", + "crypto/slh_dsa/libfips-lib-slh_params.o", + "crypto/slh_dsa/libfips-lib-slh_wots.o", + "crypto/slh_dsa/libfips-lib-slh_xmss.o", "crypto/stack/libfips-lib-stack.o", + "crypto/thread/arch/libfips-lib-thread_none.o", + "crypto/thread/arch/libfips-lib-thread_posix.o", + "crypto/thread/arch/libfips-lib-thread_win.o", + "crypto/thread/libfips-lib-api.o", + "crypto/thread/libfips-lib-arch.o", + "crypto/thread/libfips-lib-internal.o", "providers/common/der/libfips-lib-der_rsa_sig.o", "providers/common/libfips-lib-bio_prov.o", "providers/common/libfips-lib-capabilities.o", @@ -25428,6 +29728,7 @@ our %unified_info = ( "providers/common/libfips-lib-provider_util.o", "providers/common/libfips-lib-securitycheck.o", "providers/common/libfips-lib-securitycheck_fips.o", + "providers/fips/libfips-lib-fipsindicator.o", "providers/fips/libfips-lib-fipsprov.o", "providers/fips/libfips-lib-self_test.o", "providers/fips/libfips-lib-self_test_kats.o", @@ -25465,6 +29766,8 @@ our %unified_info = ( "providers/implementations/kdfs/libfips-lib-sskdf.o", "providers/implementations/kdfs/libfips-lib-tls1_prf.o", "providers/implementations/kdfs/libfips-lib-x942kdf.o", + "providers/implementations/kem/libfips-lib-ml_kem_kem.o", + "providers/implementations/kem/libfips-lib-mlx_kem.o", "providers/implementations/kem/libfips-lib-rsa_kem.o", "providers/implementations/keymgmt/libfips-lib-dh_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-dsa_kmgmt.o", @@ -25472,24 +29775,32 @@ our %unified_info = ( "providers/implementations/keymgmt/libfips-lib-ecx_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-kdf_legacy_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-mac_legacy_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-ml_dsa_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-ml_kem_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-mlx_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-rsa_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-slh_dsa_kmgmt.o", "providers/implementations/macs/libfips-lib-cmac_prov.o", "providers/implementations/macs/libfips-lib-gmac_prov.o", "providers/implementations/macs/libfips-lib-hmac_prov.o", "providers/implementations/macs/libfips-lib-kmac_prov.o", - "providers/implementations/rands/libfips-lib-crngt.o", "providers/implementations/rands/libfips-lib-drbg.o", "providers/implementations/rands/libfips-lib-drbg_ctr.o", "providers/implementations/rands/libfips-lib-drbg_hash.o", "providers/implementations/rands/libfips-lib-drbg_hmac.o", + "providers/implementations/rands/libfips-lib-fips_crng_test.o", "providers/implementations/rands/libfips-lib-test_rng.o", "providers/implementations/signature/libfips-lib-dsa_sig.o", "providers/implementations/signature/libfips-lib-ecdsa_sig.o", "providers/implementations/signature/libfips-lib-eddsa_sig.o", "providers/implementations/signature/libfips-lib-mac_legacy_sig.o", + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o", "providers/implementations/signature/libfips-lib-rsa_sig.o", + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o", + "providers/implementations/skeymgmt/libfips-lib-aes_skmgmt.o", + "providers/implementations/skeymgmt/libfips-lib-generic.o", "providers/libcommon.a", - "ssl/libfips-lib-s3_cbc.o" + "ssl/record/methods/libfips-lib-ssl3_cbc.o" ], "providers/liblegacy-lib-prov_running.o" => [ "providers/prov_running.c" @@ -25519,13 +29830,12 @@ our %unified_info = ( "providers/implementations/digests/liblegacy-lib-ripemd_prov.o", "providers/implementations/digests/liblegacy-lib-wp_prov.o", "providers/implementations/kdfs/liblegacy-lib-pbkdf1.o", + "providers/implementations/kdfs/liblegacy-lib-pvkkdf.o", "providers/liblegacy-lib-prov_running.o" ], - "ssl/libdefault-lib-s3_cbc.o" => [ - "ssl/s3_cbc.c" - ], - "ssl/libfips-lib-s3_cbc.o" => [ - "ssl/s3_cbc.c" + "providers/libtemplate.a" => [ + "providers/implementations/kem/libtemplate-lib-template_kem.o", + "providers/implementations/keymgmt/libtemplate-lib-template_kmgmt.o" ], "ssl/libssl-lib-bio_ssl.o" => [ "ssl/bio_ssl.c" @@ -25545,6 +29855,9 @@ our %unified_info = ( "ssl/libssl-lib-pqueue.o" => [ "ssl/pqueue.c" ], + "ssl/libssl-lib-priority_queue.o" => [ + "ssl/priority_queue.c" + ], "ssl/libssl-lib-s3_enc.o" => [ "ssl/s3_enc.c" ], @@ -25560,15 +29873,15 @@ our %unified_info = ( "ssl/libssl-lib-ssl_cert.o" => [ "ssl/ssl_cert.c" ], + "ssl/libssl-lib-ssl_cert_comp.o" => [ + "ssl/ssl_cert_comp.c" + ], "ssl/libssl-lib-ssl_ciph.o" => [ "ssl/ssl_ciph.c" ], "ssl/libssl-lib-ssl_conf.o" => [ "ssl/ssl_conf.c" ], - "ssl/libssl-lib-ssl_err.o" => [ - "ssl/ssl_err.c" - ], "ssl/libssl-lib-ssl_err_legacy.o" => [ "ssl/ssl_err_legacy.c" ], @@ -25617,11 +29930,131 @@ our %unified_info = ( "ssl/libssl-lib-tls_srp.o" => [ "ssl/tls_srp.c" ], - "ssl/record/libcommon-lib-tls_pad.o" => [ - "ssl/record/tls_pad.c" + "ssl/quic/libssl-lib-cc_newreno.o" => [ + "ssl/quic/cc_newreno.c" + ], + "ssl/quic/libssl-lib-json_enc.o" => [ + "ssl/quic/json_enc.c" + ], + "ssl/quic/libssl-lib-qlog.o" => [ + "ssl/quic/qlog.c" + ], + "ssl/quic/libssl-lib-qlog_event_helpers.o" => [ + "ssl/quic/qlog_event_helpers.c" + ], + "ssl/quic/libssl-lib-quic_ackm.o" => [ + "ssl/quic/quic_ackm.c" + ], + "ssl/quic/libssl-lib-quic_cfq.o" => [ + "ssl/quic/quic_cfq.c" + ], + "ssl/quic/libssl-lib-quic_channel.o" => [ + "ssl/quic/quic_channel.c" + ], + "ssl/quic/libssl-lib-quic_demux.o" => [ + "ssl/quic/quic_demux.c" + ], + "ssl/quic/libssl-lib-quic_engine.o" => [ + "ssl/quic/quic_engine.c" + ], + "ssl/quic/libssl-lib-quic_fc.o" => [ + "ssl/quic/quic_fc.c" + ], + "ssl/quic/libssl-lib-quic_fifd.o" => [ + "ssl/quic/quic_fifd.c" + ], + "ssl/quic/libssl-lib-quic_impl.o" => [ + "ssl/quic/quic_impl.c" + ], + "ssl/quic/libssl-lib-quic_lcidm.o" => [ + "ssl/quic/quic_lcidm.c" + ], + "ssl/quic/libssl-lib-quic_method.o" => [ + "ssl/quic/quic_method.c" + ], + "ssl/quic/libssl-lib-quic_obj.o" => [ + "ssl/quic/quic_obj.c" + ], + "ssl/quic/libssl-lib-quic_port.o" => [ + "ssl/quic/quic_port.c" + ], + "ssl/quic/libssl-lib-quic_rcidm.o" => [ + "ssl/quic/quic_rcidm.c" + ], + "ssl/quic/libssl-lib-quic_reactor.o" => [ + "ssl/quic/quic_reactor.c" + ], + "ssl/quic/libssl-lib-quic_reactor_wait_ctx.o" => [ + "ssl/quic/quic_reactor_wait_ctx.c" + ], + "ssl/quic/libssl-lib-quic_record_rx.o" => [ + "ssl/quic/quic_record_rx.c" + ], + "ssl/quic/libssl-lib-quic_record_shared.o" => [ + "ssl/quic/quic_record_shared.c" + ], + "ssl/quic/libssl-lib-quic_record_tx.o" => [ + "ssl/quic/quic_record_tx.c" + ], + "ssl/quic/libssl-lib-quic_record_util.o" => [ + "ssl/quic/quic_record_util.c" + ], + "ssl/quic/libssl-lib-quic_rstream.o" => [ + "ssl/quic/quic_rstream.c" ], - "ssl/record/libssl-lib-dtls1_bitmap.o" => [ - "ssl/record/dtls1_bitmap.c" + "ssl/quic/libssl-lib-quic_rx_depack.o" => [ + "ssl/quic/quic_rx_depack.c" + ], + "ssl/quic/libssl-lib-quic_sf_list.o" => [ + "ssl/quic/quic_sf_list.c" + ], + "ssl/quic/libssl-lib-quic_srt_gen.o" => [ + "ssl/quic/quic_srt_gen.c" + ], + "ssl/quic/libssl-lib-quic_srtm.o" => [ + "ssl/quic/quic_srtm.c" + ], + "ssl/quic/libssl-lib-quic_sstream.o" => [ + "ssl/quic/quic_sstream.c" + ], + "ssl/quic/libssl-lib-quic_statm.o" => [ + "ssl/quic/quic_statm.c" + ], + "ssl/quic/libssl-lib-quic_stream_map.o" => [ + "ssl/quic/quic_stream_map.c" + ], + "ssl/quic/libssl-lib-quic_thread_assist.o" => [ + "ssl/quic/quic_thread_assist.c" + ], + "ssl/quic/libssl-lib-quic_tls.o" => [ + "ssl/quic/quic_tls.c" + ], + "ssl/quic/libssl-lib-quic_tls_api.o" => [ + "ssl/quic/quic_tls_api.c" + ], + "ssl/quic/libssl-lib-quic_trace.o" => [ + "ssl/quic/quic_trace.c" + ], + "ssl/quic/libssl-lib-quic_tserver.o" => [ + "ssl/quic/quic_tserver.c" + ], + "ssl/quic/libssl-lib-quic_txp.o" => [ + "ssl/quic/quic_txp.c" + ], + "ssl/quic/libssl-lib-quic_txpim.o" => [ + "ssl/quic/quic_txpim.c" + ], + "ssl/quic/libssl-lib-quic_types.o" => [ + "ssl/quic/quic_types.c" + ], + "ssl/quic/libssl-lib-quic_wire.o" => [ + "ssl/quic/quic_wire.c" + ], + "ssl/quic/libssl-lib-quic_wire_pkt.o" => [ + "ssl/quic/quic_wire_pkt.c" + ], + "ssl/quic/libssl-lib-uint_set.o" => [ + "ssl/quic/uint_set.c" ], "ssl/record/libssl-lib-rec_layer_d1.o" => [ "ssl/record/rec_layer_d1.c" @@ -25629,14 +30062,44 @@ our %unified_info = ( "ssl/record/libssl-lib-rec_layer_s3.o" => [ "ssl/record/rec_layer_s3.c" ], - "ssl/record/libssl-lib-ssl3_buffer.o" => [ - "ssl/record/ssl3_buffer.c" + "ssl/record/methods/libcommon-lib-tls_pad.o" => [ + "ssl/record/methods/tls_pad.c" + ], + "ssl/record/methods/libdefault-lib-ssl3_cbc.o" => [ + "ssl/record/methods/ssl3_cbc.c" + ], + "ssl/record/methods/libfips-lib-ssl3_cbc.o" => [ + "ssl/record/methods/ssl3_cbc.c" + ], + "ssl/record/methods/libssl-lib-dtls_meth.o" => [ + "ssl/record/methods/dtls_meth.c" + ], + "ssl/record/methods/libssl-lib-ssl3_meth.o" => [ + "ssl/record/methods/ssl3_meth.c" + ], + "ssl/record/methods/libssl-lib-tls13_meth.o" => [ + "ssl/record/methods/tls13_meth.c" + ], + "ssl/record/methods/libssl-lib-tls1_meth.o" => [ + "ssl/record/methods/tls1_meth.c" + ], + "ssl/record/methods/libssl-lib-tls_common.o" => [ + "ssl/record/methods/tls_common.c" ], - "ssl/record/libssl-lib-ssl3_record.o" => [ - "ssl/record/ssl3_record.c" + "ssl/record/methods/libssl-lib-tls_multib.o" => [ + "ssl/record/methods/tls_multib.c" ], - "ssl/record/libssl-lib-ssl3_record_tls13.o" => [ - "ssl/record/ssl3_record_tls13.c" + "ssl/record/methods/libssl-lib-tlsany_meth.o" => [ + "ssl/record/methods/tlsany_meth.c" + ], + "ssl/rio/libssl-lib-poll_builder.o" => [ + "ssl/rio/poll_builder.c" + ], + "ssl/rio/libssl-lib-poll_immediate.o" => [ + "ssl/rio/poll_immediate.c" + ], + "ssl/rio/libssl-lib-rio_notifier.o" => [ + "ssl/rio/rio_notifier.c" ], "ssl/statem/libssl-lib-extensions.o" => [ "ssl/statem/extensions.c" @@ -25732,6 +30195,8 @@ our %unified_info = ( "test/asn1_string_table_test.c" ], "test/asn1_time_test" => [ + "crypto/asn1/asn1_time_test-bin-a_time.o", + "crypto/asn1_time_test-bin-ctype.o", "test/asn1_time_test-bin-asn1_time_test.o" ], "test/asn1_time_test-bin-asn1_time_test.o" => [ @@ -25762,6 +30227,18 @@ our %unified_info = ( "test/bftest-bin-bftest.o" => [ "test/bftest.c" ], + "test/bio_addr_test" => [ + "test/bio_addr_test-bin-bio_addr_test.o" + ], + "test/bio_addr_test-bin-bio_addr_test.o" => [ + "test/bio_addr_test.c" + ], + "test/bio_base64_test" => [ + "test/bio_base64_test-bin-bio_base64_test.o" + ], + "test/bio_base64_test-bin-bio_base64_test.o" => [ + "test/bio_base64_test.c" + ], "test/bio_callback_test" => [ "test/bio_callback_test-bin-bio_callback_test.o" ], @@ -25774,6 +30251,12 @@ our %unified_info = ( "test/bio_core_test-bin-bio_core_test.o" => [ "test/bio_core_test.c" ], + "test/bio_dgram_test" => [ + "test/bio_dgram_test-bin-bio_dgram_test.o" + ], + "test/bio_dgram_test-bin-bio_dgram_test.o" => [ + "test/bio_dgram_test.c" + ], "test/bio_enc_test" => [ "test/bio_enc_test-bin-bio_enc_test.o" ], @@ -25786,6 +30269,12 @@ our %unified_info = ( "test/bio_memleak_test-bin-bio_memleak_test.o" => [ "test/bio_memleak_test.c" ], + "test/bio_meth_test" => [ + "test/bio_meth_test-bin-bio_meth_test.o" + ], + "test/bio_meth_test-bin-bio_meth_test.o" => [ + "test/bio_meth_test.c" + ], "test/bio_prefix_text" => [ "test/bio_prefix_text-bin-bio_prefix_text.o" ], @@ -25804,6 +30293,12 @@ our %unified_info = ( "test/bio_readbuffer_test-bin-bio_readbuffer_test.o" => [ "test/bio_readbuffer_test.c" ], + "test/bio_tfo_test" => [ + "test/bio_tfo_test-bin-bio_tfo_test.o" + ], + "test/bio_tfo_test-bin-bio_tfo_test.o" => [ + "test/bio_tfo_test.c" + ], "test/bioprinttest" => [ "test/bioprinttest-bin-bioprinttest.o" ], @@ -25822,6 +30317,12 @@ our %unified_info = ( "test/bntest-bin-bntest.o" => [ "test/bntest.c" ], + "test/build_wincrypt_test" => [ + "test/build_wincrypt_test-bin-build_wincrypt_test.o" + ], + "test/build_wincrypt_test-bin-build_wincrypt_test.o" => [ + "test/build_wincrypt_test.c" + ], "test/buildtest_c_aes" => [ "test/buildtest_c_aes-bin-buildtest_aes.o" ], @@ -25852,6 +30353,12 @@ our %unified_info = ( "test/buildtest_c_buffer-bin-buildtest_buffer.o" => [ "test/buildtest_buffer.c" ], + "test/buildtest_c_byteorder" => [ + "test/buildtest_c_byteorder-bin-buildtest_byteorder.o" + ], + "test/buildtest_c_byteorder-bin-buildtest_byteorder.o" => [ + "test/buildtest_byteorder.c" + ], "test/buildtest_c_camellia" => [ "test/buildtest_c_camellia-bin-buildtest_camellia.o" ], @@ -25900,12 +30407,6 @@ our %unified_info = ( "test/buildtest_c_core_dispatch-bin-buildtest_core_dispatch.o" => [ "test/buildtest_core_dispatch.c" ], - "test/buildtest_c_core_names" => [ - "test/buildtest_c_core_names-bin-buildtest_core_names.o" - ], - "test/buildtest_c_core_names-bin-buildtest_core_names.o" => [ - "test/buildtest_core_names.c" - ], "test/buildtest_c_core_object" => [ "test/buildtest_c_core_object-bin-buildtest_core_object.o" ], @@ -25954,6 +30455,12 @@ our %unified_info = ( "test/buildtest_c_e_os2-bin-buildtest_e_os2.o" => [ "test/buildtest_e_os2.c" ], + "test/buildtest_c_e_ostime" => [ + "test/buildtest_c_e_ostime-bin-buildtest_e_ostime.o" + ], + "test/buildtest_c_e_ostime-bin-buildtest_e_ostime.o" => [ + "test/buildtest_e_ostime.c" + ], "test/buildtest_c_ebcdic" => [ "test/buildtest_c_ebcdic-bin-buildtest_ebcdic.o" ], @@ -26008,6 +30515,12 @@ our %unified_info = ( "test/buildtest_c_hmac-bin-buildtest_hmac.o" => [ "test/buildtest_hmac.c" ], + "test/buildtest_c_hpke" => [ + "test/buildtest_c_hpke-bin-buildtest_hpke.o" + ], + "test/buildtest_c_hpke-bin-buildtest_hpke.o" => [ + "test/buildtest_hpke.c" + ], "test/buildtest_c_http" => [ "test/buildtest_c_http-bin-buildtest_http.o" ], @@ -26020,6 +30533,12 @@ our %unified_info = ( "test/buildtest_c_idea-bin-buildtest_idea.o" => [ "test/buildtest_idea.c" ], + "test/buildtest_c_indicator" => [ + "test/buildtest_c_indicator-bin-buildtest_indicator.o" + ], + "test/buildtest_c_indicator-bin-buildtest_indicator.o" => [ + "test/buildtest_indicator.c" + ], "test/buildtest_c_kdf" => [ "test/buildtest_c_kdf-bin-buildtest_kdf.o" ], @@ -26050,6 +30569,12 @@ our %unified_info = ( "test/buildtest_c_mdc2-bin-buildtest_mdc2.o" => [ "test/buildtest_mdc2.c" ], + "test/buildtest_c_ml_kem" => [ + "test/buildtest_c_ml_kem-bin-buildtest_ml_kem.o" + ], + "test/buildtest_c_ml_kem-bin-buildtest_ml_kem.o" => [ + "test/buildtest_ml_kem.c" + ], "test/buildtest_c_modes" => [ "test/buildtest_c_modes-bin-buildtest_modes.o" ], @@ -26110,6 +30635,12 @@ our %unified_info = ( "test/buildtest_c_provider-bin-buildtest_provider.o" => [ "test/buildtest_provider.c" ], + "test/buildtest_c_quic" => [ + "test/buildtest_c_quic-bin-buildtest_quic.o" + ], + "test/buildtest_c_quic-bin-buildtest_quic.o" => [ + "test/buildtest_quic.c" + ], "test/buildtest_c_rand" => [ "test/buildtest_c_rand-bin-buildtest_rand.o" ], @@ -26194,6 +30725,12 @@ our %unified_info = ( "test/buildtest_c_symhacks-bin-buildtest_symhacks.o" => [ "test/buildtest_symhacks.c" ], + "test/buildtest_c_thread" => [ + "test/buildtest_c_thread-bin-buildtest_thread.o" + ], + "test/buildtest_c_thread-bin-buildtest_thread.o" => [ + "test/buildtest_thread.c" + ], "test/buildtest_c_tls1" => [ "test/buildtest_c_tls1-bin-buildtest_tls1.o" ], @@ -26224,6 +30761,29 @@ our %unified_info = ( "test/buildtest_c_whrlpool-bin-buildtest_whrlpool.o" => [ "test/buildtest_whrlpool.c" ], + "test/byteorder_test" => [ + "test/byteorder_test-bin-byteorder_test.o" + ], + "test/byteorder_test-bin-byteorder_test.o" => [ + "test/byteorder_test.c" + ], + "test/ca_internals_test" => [ + "apps/ca_internals_test-bin-ca.o", + "apps/lib/ca_internals_test-bin-app_libctx.o", + "apps/lib/ca_internals_test-bin-app_provider.o", + "apps/lib/ca_internals_test-bin-app_rand.o", + "apps/lib/ca_internals_test-bin-app_x509.o", + "apps/lib/ca_internals_test-bin-apps.o", + "apps/lib/ca_internals_test-bin-apps_ui.o", + "apps/lib/ca_internals_test-bin-engine.o", + "apps/lib/ca_internals_test-bin-fmt.o", + "crypto/asn1/ca_internals_test-bin-a_time.o", + "crypto/ca_internals_test-bin-ctype.o", + "test/ca_internals_test-bin-ca_internals_test.o" + ], + "test/ca_internals_test-bin-ca_internals_test.o" => [ + "test/ca_internals_test.c" + ], "test/casttest" => [ "test/casttest-bin-casttest.o" ], @@ -26402,6 +30962,12 @@ our %unified_info = ( "test/danetest-bin-danetest.o" => [ "test/danetest.c" ], + "test/decoder_propq_test" => [ + "test/decoder_propq_test-bin-decoder_propq_test.o" + ], + "test/decoder_propq_test-bin-decoder_propq_test.o" => [ + "test/decoder_propq_test.c" + ], "test/defltfips_test" => [ "test/defltfips_test-bin-defltfips_test.o" ], @@ -26483,6 +31049,7 @@ our %unified_info = ( "test/ectest.c" ], "test/endecode_test" => [ + "providers/endecode_test-bin-legacyprov.o", "test/endecode_test-bin-endecode_test.o", "test/helpers/endecode_test-bin-predefined_dhparams.o" ], @@ -26515,17 +31082,29 @@ our %unified_info = ( ], "test/evp_extra_test" => [ "providers/evp_extra_test-bin-legacyprov.o", - "test/evp_extra_test-bin-evp_extra_test.o" + "test/evp_extra_test-bin-evp_extra_test.o", + "test/evp_extra_test-bin-fake_pipelineprov.o", + "test/evp_extra_test-bin-fake_rsaprov.o" ], "test/evp_extra_test-bin-evp_extra_test.o" => [ "test/evp_extra_test.c" ], + "test/evp_extra_test-bin-fake_pipelineprov.o" => [ + "test/fake_pipelineprov.c" + ], + "test/evp_extra_test-bin-fake_rsaprov.o" => [ + "test/fake_rsaprov.c" + ], "test/evp_extra_test2" => [ - "test/evp_extra_test2-bin-evp_extra_test2.o" + "test/evp_extra_test2-bin-evp_extra_test2.o", + "test/evp_extra_test2-bin-tls-provider.o" ], "test/evp_extra_test2-bin-evp_extra_test2.o" => [ "test/evp_extra_test2.c" ], + "test/evp_extra_test2-bin-tls-provider.o" => [ + "test/tls-provider.c" + ], "test/evp_fetch_prov_test" => [ "test/evp_fetch_prov_test-bin-evp_fetch_prov_test.o" ], @@ -26550,6 +31129,12 @@ our %unified_info = ( "test/evp_pkey_ctx_new_from_name-bin-evp_pkey_ctx_new_from_name.o" => [ "test/evp_pkey_ctx_new_from_name.c" ], + "test/evp_pkey_dhkem_test" => [ + "test/evp_pkey_dhkem_test-bin-evp_pkey_dhkem_test.o" + ], + "test/evp_pkey_dhkem_test-bin-evp_pkey_dhkem_test.o" => [ + "test/evp_pkey_dhkem_test.c" + ], "test/evp_pkey_dparams_test" => [ "test/evp_pkey_dparams_test-bin-evp_pkey_dparams_test.o" ], @@ -26562,12 +31147,28 @@ our %unified_info = ( "test/evp_pkey_provided_test-bin-evp_pkey_provided_test.o" => [ "test/evp_pkey_provided_test.c" ], + "test/evp_skey_test" => [ + "test/evp_skey_test-bin-evp_skey_test.o", + "test/evp_skey_test-bin-fake_cipherprov.o" + ], + "test/evp_skey_test-bin-evp_skey_test.o" => [ + "test/evp_skey_test.c" + ], + "test/evp_skey_test-bin-fake_cipherprov.o" => [ + "test/fake_cipherprov.c" + ], "test/evp_test" => [ "test/evp_test-bin-evp_test.o" ], "test/evp_test-bin-evp_test.o" => [ "test/evp_test.c" ], + "test/evp_xof_test" => [ + "test/evp_xof_test-bin-evp_xof_test.o" + ], + "test/evp_xof_test-bin-evp_xof_test.o" => [ + "test/evp_xof_test.c" + ], "test/exdatatest" => [ "test/exdatatest-bin-exdatatest.o" ], @@ -26653,15 +31254,108 @@ our %unified_info = ( "test/helpers/fatalerrtest-bin-ssltestlib.o" => [ "test/helpers/ssltestlib.c" ], + "test/helpers/json_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/json_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/json_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/json_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/pkcs12_api_test-bin-pkcs12.o" => [ + "test/helpers/pkcs12.c" + ], "test/helpers/pkcs12_format_test-bin-pkcs12.o" => [ "test/helpers/pkcs12.c" ], + "test/helpers/quic_multistream_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quic_multistream_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quic_multistream_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quic_multistream_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quic_newcid_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quic_newcid_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quic_newcid_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quic_newcid_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quic_radix_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quic_radix_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quic_radix_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quic_radix_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quic_srt_gen_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quic_srt_gen_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quic_srt_gen_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quic_srt_gen_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quicapitest-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quicapitest-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quicapitest-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quicapitest-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quicfaultstest-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quicfaultstest-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quicfaultstest-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quicfaultstest-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], "test/helpers/recordlentest-bin-ssltestlib.o" => [ "test/helpers/ssltestlib.c" ], + "test/helpers/rpktest-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], "test/helpers/servername_test-bin-ssltestlib.o" => [ "test/helpers/ssltestlib.c" ], + "test/helpers/ssl_handshake_rtt_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], "test/helpers/ssl_old_test-bin-predefined_dhparams.o" => [ "test/helpers/predefined_dhparams.c" ], @@ -26689,6 +31383,9 @@ our %unified_info = ( "test/helpers/tls13ccstest-bin-ssltestlib.o" => [ "test/helpers/ssltestlib.c" ], + "test/helpers/tls13groupselection_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], "test/hexstr_test" => [ "test/hexstr_test-bin-hexstr_test.o" ], @@ -26701,6 +31398,12 @@ our %unified_info = ( "test/hmactest-bin-hmactest.o" => [ "test/hmactest.c" ], + "test/hpke_test" => [ + "test/hpke_test-bin-hpke_test.o" + ], + "test/hpke_test-bin-hpke_test.o" => [ + "test/hpke_test.c" + ], "test/http_test" => [ "test/http_test-bin-http_test.o" ], @@ -26719,6 +31422,16 @@ our %unified_info = ( "test/igetest-bin-igetest.o" => [ "test/igetest.c" ], + "test/json_test" => [ + "test/helpers/json_test-bin-noisydgrambio.o", + "test/helpers/json_test-bin-pktsplitbio.o", + "test/helpers/json_test-bin-quictestlib.o", + "test/helpers/json_test-bin-ssltestlib.o", + "test/json_test-bin-json_test.o" + ], + "test/json_test-bin-json_test.o" => [ + "test/json_test.c" + ], "test/keymgmt_internal_test" => [ "test/keymgmt_internal_test-bin-keymgmt_internal_test.o" ], @@ -26739,6 +31452,7 @@ our %unified_info = ( "test/testutil/libtestutil-lib-driver.o", "test/testutil/libtestutil-lib-fake_random.o", "test/testutil/libtestutil-lib-format_output.o", + "test/testutil/libtestutil-lib-helper.o", "test/testutil/libtestutil-lib-load.o", "test/testutil/libtestutil-lib-main.o", "test/testutil/libtestutil-lib-options.o", @@ -26751,6 +31465,12 @@ our %unified_info = ( "test/testutil/libtestutil-lib-tests.o", "test/testutil/libtestutil-lib-testutil_init.o" ], + "test/list_test" => [ + "test/list_test-bin-list_test.o" + ], + "test/list_test-bin-list_test.o" => [ + "test/list_test.c" + ], "test/localetest" => [ "test/localetest-bin-localetest.o" ], @@ -26769,12 +31489,36 @@ our %unified_info = ( "test/mdc2test-bin-mdc2test.o" => [ "test/mdc2test.c" ], + "test/membio_test" => [ + "test/membio_test-bin-membio_test.o" + ], + "test/membio_test-bin-membio_test.o" => [ + "test/membio_test.c" + ], "test/memleaktest" => [ "test/memleaktest-bin-memleaktest.o" ], "test/memleaktest-bin-memleaktest.o" => [ "test/memleaktest.c" ], + "test/ml_dsa_test" => [ + "test/ml_dsa_test-bin-ml_dsa_test.o" + ], + "test/ml_dsa_test-bin-ml_dsa_test.o" => [ + "test/ml_dsa_test.c" + ], + "test/ml_kem_evp_extra_test" => [ + "test/ml_kem_evp_extra_test-bin-ml_kem_evp_extra_test.o" + ], + "test/ml_kem_evp_extra_test-bin-ml_kem_evp_extra_test.o" => [ + "test/ml_kem_evp_extra_test.c" + ], + "test/ml_kem_internal_test" => [ + "test/ml_kem_internal_test-bin-ml_kem_internal_test.o" + ], + "test/ml_kem_internal_test-bin-ml_kem_internal_test.o" => [ + "test/ml_kem_internal_test.c" + ], "test/modes_internal_test" => [ "test/modes_internal_test-bin-modes_internal_test.o" ], @@ -26820,11 +31564,18 @@ our %unified_info = ( "test/p_test.c" ], "test/packettest" => [ + "crypto/packettest-bin-quic_vlint.o", "test/packettest-bin-packettest.o" ], "test/packettest-bin-packettest.o" => [ "test/packettest.c" ], + "test/pairwise_fail_test" => [ + "test/pairwise_fail_test-bin-pairwise_fail_test.o" + ], + "test/pairwise_fail_test-bin-pairwise_fail_test.o" => [ + "test/pairwise_fail_test.c" + ], "test/param_build_test" => [ "test/param_build_test-bin-param_build_test.o" ], @@ -26873,6 +31624,13 @@ our %unified_info = ( "test/pemtest-bin-pemtest.o" => [ "test/pemtest.c" ], + "test/pkcs12_api_test" => [ + "test/helpers/pkcs12_api_test-bin-pkcs12.o", + "test/pkcs12_api_test-bin-pkcs12_api_test.o" + ], + "test/pkcs12_api_test-bin-pkcs12_api_test.o" => [ + "test/pkcs12_api_test.c" + ], "test/pkcs12_format_test" => [ "test/helpers/pkcs12_format_test-bin-pkcs12.o", "test/pkcs12_format_test-bin-pkcs12_format_test.o" @@ -26904,6 +31662,12 @@ our %unified_info = ( "test/poly1305_internal_test-bin-poly1305_internal_test.o" => [ "test/poly1305_internal_test.c" ], + "test/priority_queue_test" => [ + "test/priority_queue_test-bin-priority_queue_test.o" + ], + "test/priority_queue_test-bin-priority_queue_test.o" => [ + "test/priority_queue_test.c" + ], "test/property_test" => [ "test/property_test-bin-property_test.o" ], @@ -26922,6 +31686,12 @@ our %unified_info = ( "test/provfetchtest-bin-provfetchtest.o" => [ "test/provfetchtest.c" ], + "test/provider_default_search_path_test" => [ + "test/provider_default_search_path_test-bin-provider_default_search_path_test.o" + ], + "test/provider_default_search_path_test-bin-provider_default_search_path_test.o" => [ + "test/provider_default_search_path_test.c" + ], "test/provider_fallback_test" => [ "test/provider_fallback_test-bin-provider_fallback_test.o" ], @@ -26970,6 +31740,174 @@ our %unified_info = ( "test/punycode_test-bin-punycode_test.o" => [ "test/punycode_test.c" ], + "test/quic_ackm_test" => [ + "test/quic_ackm_test-bin-cc_dummy.o", + "test/quic_ackm_test-bin-quic_ackm_test.o" + ], + "test/quic_ackm_test-bin-cc_dummy.o" => [ + "test/cc_dummy.c" + ], + "test/quic_ackm_test-bin-quic_ackm_test.o" => [ + "test/quic_ackm_test.c" + ], + "test/quic_cc_test" => [ + "test/quic_cc_test-bin-quic_cc_test.o" + ], + "test/quic_cc_test-bin-quic_cc_test.o" => [ + "test/quic_cc_test.c" + ], + "test/quic_cfq_test" => [ + "test/quic_cfq_test-bin-quic_cfq_test.o" + ], + "test/quic_cfq_test-bin-quic_cfq_test.o" => [ + "test/quic_cfq_test.c" + ], + "test/quic_client_test" => [ + "test/quic_client_test-bin-quic_client_test.o" + ], + "test/quic_client_test-bin-quic_client_test.o" => [ + "test/quic_client_test.c" + ], + "test/quic_fc_test" => [ + "test/quic_fc_test-bin-quic_fc_test.o" + ], + "test/quic_fc_test-bin-quic_fc_test.o" => [ + "test/quic_fc_test.c" + ], + "test/quic_fifd_test" => [ + "test/quic_fifd_test-bin-cc_dummy.o", + "test/quic_fifd_test-bin-quic_fifd_test.o" + ], + "test/quic_fifd_test-bin-cc_dummy.o" => [ + "test/cc_dummy.c" + ], + "test/quic_fifd_test-bin-quic_fifd_test.o" => [ + "test/quic_fifd_test.c" + ], + "test/quic_lcidm_test" => [ + "test/quic_lcidm_test-bin-quic_lcidm_test.o" + ], + "test/quic_lcidm_test-bin-quic_lcidm_test.o" => [ + "test/quic_lcidm_test.c" + ], + "test/quic_multistream_test" => [ + "test/helpers/quic_multistream_test-bin-noisydgrambio.o", + "test/helpers/quic_multistream_test-bin-pktsplitbio.o", + "test/helpers/quic_multistream_test-bin-quictestlib.o", + "test/helpers/quic_multistream_test-bin-ssltestlib.o", + "test/quic_multistream_test-bin-quic_multistream_test.o" + ], + "test/quic_multistream_test-bin-quic_multistream_test.o" => [ + "test/quic_multistream_test.c" + ], + "test/quic_newcid_test" => [ + "test/helpers/quic_newcid_test-bin-noisydgrambio.o", + "test/helpers/quic_newcid_test-bin-pktsplitbio.o", + "test/helpers/quic_newcid_test-bin-quictestlib.o", + "test/helpers/quic_newcid_test-bin-ssltestlib.o", + "test/quic_newcid_test-bin-quic_newcid_test.o" + ], + "test/quic_newcid_test-bin-quic_newcid_test.o" => [ + "test/quic_newcid_test.c" + ], + "test/quic_qlog_test" => [ + "test/quic_qlog_test-bin-quic_qlog_test.o" + ], + "test/quic_qlog_test-bin-quic_qlog_test.o" => [ + "test/quic_qlog_test.c" + ], + "test/quic_radix_test" => [ + "test/helpers/quic_radix_test-bin-noisydgrambio.o", + "test/helpers/quic_radix_test-bin-pktsplitbio.o", + "test/helpers/quic_radix_test-bin-quictestlib.o", + "test/helpers/quic_radix_test-bin-ssltestlib.o", + "test/radix/quic_radix_test-bin-quic_radix.o" + ], + "test/quic_rcidm_test" => [ + "test/quic_rcidm_test-bin-quic_rcidm_test.o" + ], + "test/quic_rcidm_test-bin-quic_rcidm_test.o" => [ + "test/quic_rcidm_test.c" + ], + "test/quic_record_test" => [ + "test/quic_record_test-bin-quic_record_test.o" + ], + "test/quic_record_test-bin-quic_record_test.o" => [ + "test/quic_record_test.c" + ], + "test/quic_srt_gen_test" => [ + "test/helpers/quic_srt_gen_test-bin-noisydgrambio.o", + "test/helpers/quic_srt_gen_test-bin-pktsplitbio.o", + "test/helpers/quic_srt_gen_test-bin-quictestlib.o", + "test/helpers/quic_srt_gen_test-bin-ssltestlib.o", + "test/quic_srt_gen_test-bin-quic_srt_gen_test.o" + ], + "test/quic_srt_gen_test-bin-quic_srt_gen_test.o" => [ + "test/quic_srt_gen_test.c" + ], + "test/quic_srtm_test" => [ + "test/quic_srtm_test-bin-quic_srtm_test.o" + ], + "test/quic_srtm_test-bin-quic_srtm_test.o" => [ + "test/quic_srtm_test.c" + ], + "test/quic_stream_test" => [ + "test/quic_stream_test-bin-quic_stream_test.o" + ], + "test/quic_stream_test-bin-quic_stream_test.o" => [ + "test/quic_stream_test.c" + ], + "test/quic_tserver_test" => [ + "test/quic_tserver_test-bin-quic_tserver_test.o" + ], + "test/quic_tserver_test-bin-quic_tserver_test.o" => [ + "test/quic_tserver_test.c" + ], + "test/quic_txp_test" => [ + "test/quic_txp_test-bin-cc_dummy.o", + "test/quic_txp_test-bin-quic_txp_test.o" + ], + "test/quic_txp_test-bin-cc_dummy.o" => [ + "test/cc_dummy.c" + ], + "test/quic_txp_test-bin-quic_txp_test.o" => [ + "test/quic_txp_test.c" + ], + "test/quic_txpim_test" => [ + "test/quic_txpim_test-bin-quic_txpim_test.o" + ], + "test/quic_txpim_test-bin-quic_txpim_test.o" => [ + "test/quic_txpim_test.c" + ], + "test/quic_wire_test" => [ + "test/quic_wire_test-bin-quic_wire_test.o" + ], + "test/quic_wire_test-bin-quic_wire_test.o" => [ + "test/quic_wire_test.c" + ], + "test/quicapitest" => [ + "test/helpers/quicapitest-bin-noisydgrambio.o", + "test/helpers/quicapitest-bin-pktsplitbio.o", + "test/helpers/quicapitest-bin-quictestlib.o", + "test/helpers/quicapitest-bin-ssltestlib.o", + "test/quicapitest-bin-quicapitest.o" + ], + "test/quicapitest-bin-quicapitest.o" => [ + "test/quicapitest.c" + ], + "test/quicfaultstest" => [ + "test/helpers/quicfaultstest-bin-noisydgrambio.o", + "test/helpers/quicfaultstest-bin-pktsplitbio.o", + "test/helpers/quicfaultstest-bin-quictestlib.o", + "test/helpers/quicfaultstest-bin-ssltestlib.o", + "test/quicfaultstest-bin-quicfaultstest.o" + ], + "test/quicfaultstest-bin-quicfaultstest.o" => [ + "test/quicfaultstest.c" + ], + "test/radix/quic_radix_test-bin-quic_radix.o" => [ + "test/radix/quic_radix.c" + ], "test/rand_status_test" => [ "test/rand_status_test-bin-rand_status_test.o" ], @@ -27000,11 +31938,11 @@ our %unified_info = ( "test/rc5test-bin-rc5test.o" => [ "test/rc5test.c" ], - "test/rdrand_sanitytest" => [ - "test/rdrand_sanitytest-bin-rdrand_sanitytest.o" + "test/rdcpu_sanitytest" => [ + "test/rdcpu_sanitytest-bin-rdcpu_sanitytest.o" ], - "test/rdrand_sanitytest-bin-rdrand_sanitytest.o" => [ - "test/rdrand_sanitytest.c" + "test/rdcpu_sanitytest-bin-rdcpu_sanitytest.o" => [ + "test/rdcpu_sanitytest.c" ], "test/recordlentest" => [ "test/helpers/recordlentest-bin-ssltestlib.o", @@ -27013,6 +31951,13 @@ our %unified_info = ( "test/recordlentest-bin-recordlentest.o" => [ "test/recordlentest.c" ], + "test/rpktest" => [ + "test/helpers/rpktest-bin-ssltestlib.o", + "test/rpktest-bin-rpktest.o" + ], + "test/rpktest-bin-rpktest.o" => [ + "test/rpktest.c" + ], "test/rsa_complex" => [ "test/rsa_complex-bin-rsa_complex.o" ], @@ -27037,6 +31982,18 @@ our %unified_info = ( "test/rsa_test-bin-rsa_test.o" => [ "test/rsa_test.c" ], + "test/rsa_x931_test" => [ + "test/rsa_x931_test-bin-rsa_x931_test.o" + ], + "test/rsa_x931_test-bin-rsa_x931_test.o" => [ + "test/rsa_x931_test.c" + ], + "test/safe_math_test" => [ + "test/safe_math_test-bin-safe_math_test.o" + ], + "test/safe_math_test-bin-safe_math_test.o" => [ + "test/safe_math_test.c" + ], "test/sanitytest" => [ "test/sanitytest-bin-sanitytest.o" ], @@ -27068,6 +32025,12 @@ our %unified_info = ( "test/siphash_internal_test-bin-siphash_internal_test.o" => [ "test/siphash_internal_test.c" ], + "test/slh_dsa_test" => [ + "test/slh_dsa_test-bin-slh_dsa_test.o" + ], + "test/slh_dsa_test-bin-slh_dsa_test.o" => [ + "test/slh_dsa_test.c" + ], "test/sm2_internal_test" => [ "test/sm2_internal_test-bin-sm2_internal_test.o" ], @@ -27110,6 +32073,13 @@ our %unified_info = ( "test/ssl_ctx_test-bin-ssl_ctx_test.o" => [ "test/ssl_ctx_test.c" ], + "test/ssl_handshake_rtt_test" => [ + "test/helpers/ssl_handshake_rtt_test-bin-ssltestlib.o", + "test/ssl_handshake_rtt_test-bin-ssl_handshake_rtt_test.o" + ], + "test/ssl_handshake_rtt_test-bin-ssl_handshake_rtt_test.o" => [ + "test/ssl_handshake_rtt_test.c" + ], "test/ssl_old_test" => [ "test/helpers/ssl_old_test-bin-predefined_dhparams.o", "test/ssl_old_test-bin-ssl_old_test.o" @@ -27168,6 +32138,12 @@ our %unified_info = ( "test/stack_test-bin-stack_test.o" => [ "test/stack_test.c" ], + "test/strtoultest" => [ + "test/strtoultest-bin-strtoultest.o" + ], + "test/strtoultest-bin-strtoultest.o" => [ + "test/strtoultest.c" + ], "test/sysdefaulttest" => [ "test/sysdefaulttest-bin-sysdefaulttest.o" ], @@ -27198,6 +32174,9 @@ our %unified_info = ( "test/testutil/libtestutil-lib-format_output.o" => [ "test/testutil/format_output.c" ], + "test/testutil/libtestutil-lib-helper.o" => [ + "test/testutil/helper.c" + ], "test/testutil/libtestutil-lib-load.o" => [ "test/testutil/load.c" ], @@ -27231,6 +32210,12 @@ our %unified_info = ( "test/testutil/libtestutil-lib-testutil_init.o" => [ "test/testutil/testutil_init.c" ], + "test/threadpool_test" => [ + "test/threadpool_test-bin-threadpool_test.o" + ], + "test/threadpool_test-bin-threadpool_test.o" => [ + "test/threadpool_test.c" + ], "test/threadstest" => [ "test/threadstest-bin-threadstest.o" ], @@ -27249,6 +32234,12 @@ our %unified_info = ( "test/time_offset_test-bin-time_offset_test.o" => [ "test/time_offset_test.c" ], + "test/time_test" => [ + "test/time_test-bin-time_test.o" + ], + "test/time_test-bin-time_test.o" => [ + "test/time_test.c" + ], "test/tls13ccstest" => [ "test/helpers/tls13ccstest-bin-ssltestlib.o", "test/tls13ccstest-bin-tls13ccstest.o" @@ -27262,6 +32253,13 @@ our %unified_info = ( "test/tls13encryptiontest-bin-tls13encryptiontest.o" => [ "test/tls13encryptiontest.c" ], + "test/tls13groupselection_test" => [ + "test/helpers/tls13groupselection_test-bin-ssltestlib.o", + "test/tls13groupselection_test-bin-tls13groupselection_test.o" + ], + "test/tls13groupselection_test-bin-tls13groupselection_test.o" => [ + "test/tls13groupselection_test.c" + ], "test/trace_api_test" => [ "test/trace_api_test-bin-trace_api_test.o" ], @@ -27317,6 +32315,12 @@ our %unified_info = ( "test/wpackettest-bin-wpackettest.o" => [ "test/wpackettest.c" ], + "test/x509_acert_test" => [ + "test/x509_acert_test-bin-x509_acert_test.o" + ], + "test/x509_acert_test-bin-x509_acert_test.o" => [ + "test/x509_acert_test.c" + ], "test/x509_check_cert_pkey_test" => [ "test/x509_check_cert_pkey_test-bin-x509_check_cert_pkey_test.o" ], @@ -27335,6 +32339,24 @@ our %unified_info = ( "test/x509_internal_test-bin-x509_internal_test.o" => [ "test/x509_internal_test.c" ], + "test/x509_load_cert_file_test" => [ + "test/x509_load_cert_file_test-bin-x509_load_cert_file_test.o" + ], + "test/x509_load_cert_file_test-bin-x509_load_cert_file_test.o" => [ + "test/x509_load_cert_file_test.c" + ], + "test/x509_req_test" => [ + "test/x509_req_test-bin-x509_req_test.o" + ], + "test/x509_req_test-bin-x509_req_test.o" => [ + "test/x509_req_test.c" + ], + "test/x509_test" => [ + "test/x509_test-bin-x509_test.o" + ], + "test/x509_test-bin-x509_test.o" => [ + "test/x509_test.c" + ], "test/x509_time_test" => [ "test/x509_time_test-bin-x509_time_test.o" ], @@ -27398,6 +32420,7 @@ my @makevars = ( "LDLIBS", "MT", "MTFLAGS", + "OBJCOPY", "PERL", "RANLIB", "RC", @@ -27414,6 +32437,12 @@ my %disabled_info = ( "asm" => { "macro" => "OPENSSL_NO_ASM" }, + "brotli" => { + "macro" => "OPENSSL_NO_BROTLI" + }, + "brotli-dynamic" => { + "macro" => "OPENSSL_NO_BROTLI_DYNAMIC" + }, "comp" => { "macro" => "OPENSSL_NO_COMP", "skipped" => [ @@ -27426,6 +32455,9 @@ my %disabled_info = ( "crypto-mdebug-backtrace" => { "macro" => "OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE" }, + "demos" => { + "macro" => "OPENSSL_NO_DEMOS" + }, "devcryptoeng" => { "macro" => "OPENSSL_NO_DEVCRYPTOENG" }, @@ -27438,12 +32470,24 @@ my %disabled_info = ( "external-tests" => { "macro" => "OPENSSL_NO_EXTERNAL_TESTS" }, + "fips-jitter" => { + "macro" => "OPENSSL_NO_FIPS_JITTER" + }, "fuzz-afl" => { "macro" => "OPENSSL_NO_FUZZ_AFL" }, "fuzz-libfuzzer" => { "macro" => "OPENSSL_NO_FUZZ_LIBFUZZER" }, + "h3demo" => { + "macro" => "OPENSSL_NO_H3DEMO" + }, + "hqinterop" => { + "macro" => "OPENSSL_NO_HQINTEROP" + }, + "jitter" => { + "macro" => "OPENSSL_NO_JITTER" + }, "ktls" => { "macro" => "OPENSSL_NO_KTLS" }, @@ -27459,6 +32503,9 @@ my %disabled_info = ( "msan" => { "macro" => "OPENSSL_NO_MSAN" }, + "pie" => { + "macro" => "OPENSSL_NO_PIE" + }, "rc5" => { "macro" => "OPENSSL_NO_RC5", "skipped" => [ @@ -27474,6 +32521,12 @@ my %disabled_info = ( "ssl3-method" => { "macro" => "OPENSSL_NO_SSL3_METHOD" }, + "sslkeylog" => { + "macro" => "OPENSSL_NO_SSLKEYLOG" + }, + "tfo" => { + "macro" => "OPENSSL_NO_TFO" + }, "trace" => { "macro" => "OPENSSL_NO_TRACE" }, @@ -27488,6 +32541,21 @@ my %disabled_info = ( }, "weak-ssl-ciphers" => { "macro" => "OPENSSL_NO_WEAK_SSL_CIPHERS" + }, + "winstore" => { + "macro" => "OPENSSL_NO_WINSTORE" + }, + "zlib" => { + "macro" => "OPENSSL_NO_ZLIB" + }, + "zlib-dynamic" => { + "macro" => "OPENSSL_NO_ZLIB_DYNAMIC" + }, + "zstd" => { + "macro" => "OPENSSL_NO_ZSTD" + }, + "zstd-dynamic" => { + "macro" => "OPENSSL_NO_ZSTD_DYNAMIC" } ); my @user_crossable = qw( AR AS CC CXX CPP LD MT RANLIB RC ); @@ -27501,15 +32569,15 @@ unless (caller) { use File::Copy; use Pod::Usage; - use lib '/home/runner/work/node/node/deps/openssl/openssl/util/perl'; - use OpenSSL::fallback '/home/runner/work/node/node/deps/openssl/openssl/external/perl/MODULES.txt'; + use lib '/node/deps/openssl/openssl/util/perl'; + use OpenSSL::fallback '/node/deps/openssl/openssl/external/perl/MODULES.txt'; my $here = dirname($0); if (scalar @ARGV == 0) { # With no arguments, re-create the build file # We do that in two steps, where the first step emits perl - # snipets. + # snippets. my $buildfile = $config{build_file}; my $buildfile_template = "$buildfile.in"; @@ -27529,7 +32597,7 @@ unless (caller) { ); use lib '.'; - use lib '/home/runner/work/node/node/deps/openssl/openssl/Configurations'; + use lib '/node/deps/openssl/openssl/Configurations'; use gentemplate; open my $buildfile_template_fh, ">$buildfile_template" @@ -27546,8 +32614,8 @@ unless (caller) { my $prepend = <<'_____'; use File::Spec::Functions; -use lib '/home/runner/work/node/node/deps/openssl/openssl/util/perl'; -use lib '/home/runner/work/node/node/deps/openssl/openssl/Configurations'; +use lib '/node/deps/openssl/openssl/util/perl'; +use lib '/node/deps/openssl/openssl/Configurations'; use lib '.'; use platform; _____ diff --git a/deps/openssl/config/archs/linux-aarch64/no-asm/crypto/buildinf.h b/deps/openssl/config/archs/linux-aarch64/no-asm/crypto/buildinf.h index 367c678caab527..d27c2c64289f83 100644 --- a/deps/openssl/config/archs/linux-aarch64/no-asm/crypto/buildinf.h +++ b/deps/openssl/config/archs/linux-aarch64/no-asm/crypto/buildinf.h @@ -11,7 +11,7 @@ */ #define PLATFORM "platform: linux-aarch64" -#define DATE "built on: Sun Jul 20 00:49:18 2025 UTC" +#define DATE "built on: Sun Jul 27 00:50:43 2025 UTC" /* * Generate compiler_flags as an array of individual characters. This is a diff --git a/deps/openssl/config/archs/linux-aarch64/no-asm/crypto/params_idx.c b/deps/openssl/config/archs/linux-aarch64/no-asm/crypto/params_idx.c new file mode 100644 index 00000000000000..9d76ffededc24c --- /dev/null +++ b/deps/openssl/config/archs/linux-aarch64/no-asm/crypto/params_idx.c @@ -0,0 +1,3366 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from crypto/params_idx.c.in + * + * Copyright 2023 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + +#include "internal/e_os.h" +#include "internal/param_names.h" +#include + +/* Machine generated TRIE -- generated by util/perl/OpenSSL/paramnames.pm */ +int ossl_param_find_pidx(const char *s) +{ + switch(s[0]) { + default: + break; + case 'a': + switch(s[1]) { + default: + break; + case 'c': + if (strcmp("vp-info", s + 2) == 0) + return PIDX_KDF_PARAM_X942_ACVPINFO; + break; + case 'd': + switch(s[2]) { + default: + break; + case 'd': + if (strcmp("itional-random", s + 3) == 0) + return PIDX_SIGNATURE_PARAM_ADD_RANDOM; + break; + case '\0': + return PIDX_KDF_PARAM_ARGON2_AD; + } + break; + case 'e': + if (strcmp("ad", s + 2) == 0) + return PIDX_CIPHER_PARAM_AEAD; + break; + case 'l': + switch(s[2]) { + default: + break; + case 'g': + switch(s[3]) { + default: + break; + case '_': + if (strcmp("id_param", s + 4) == 0) + return PIDX_CIPHER_PARAM_ALGORITHM_ID_PARAMS_OLD; + break; + case 'i': + if (strcmp("d-absent", s + 4) == 0) + return PIDX_DIGEST_PARAM_ALGID_ABSENT; + break; + case 'o': + switch(s[4]) { + default: + break; + case 'r': + switch(s[5]) { + default: + break; + case 'i': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case 'h': + switch(s[8]) { + default: + break; + case 'm': + switch(s[9]) { + default: + break; + case '-': + switch(s[10]) { + default: + break; + case 'i': + switch(s[11]) { + default: + break; + case 'd': + switch(s[12]) { + default: + break; + case '-': + if (strcmp("params", s + 13) == 0) + return PIDX_ALG_PARAM_ALGORITHM_ID_PARAMS; + break; + case '\0': + return PIDX_ALG_PARAM_ALGORITHM_ID; + } + } + } + } + } + } + } + } + } + } + break; + case 'i': + if (strcmp("as", s + 3) == 0) + return PIDX_STORE_PARAM_ALIAS; + } + break; + case '\0': + return PIDX_PKEY_PARAM_EC_A; + } + break; + case 'b': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("sis-type", s + 2) == 0) + return PIDX_PKEY_PARAM_EC_CHAR2_TYPE; + break; + case 'i': + if (strcmp("ts", s + 2) == 0) + return PIDX_PKEY_PARAM_BITS; + break; + case 'l': + switch(s[2]) { + default: + break; + case 'o': + switch(s[3]) { + default: + break; + case 'c': + switch(s[4]) { + default: + break; + case 'k': + switch(s[5]) { + default: + break; + case '-': + if (strcmp("size", s + 6) == 0) + return PIDX_MAC_PARAM_BLOCK_SIZE; + break; + case '_': + if (strcmp("padding", s + 6) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_BLOCK_PADDING; + break; + case 's': + if (strcmp("ize", s + 6) == 0) + return PIDX_DIGEST_PARAM_BLOCK_SIZE; + } + } + } + } + break; + case 'u': + if (strcmp("ildinfo", s + 2) == 0) + return PIDX_PROV_PARAM_BUILDINFO; + break; + case '\0': + return PIDX_PKEY_PARAM_EC_B; + } + break; + case 'c': + switch(s[1]) { + default: + break; + case '-': + if (strcmp("rounds", s + 2) == 0) + return PIDX_MAC_PARAM_C_ROUNDS; + break; + case 'e': + if (strcmp("kalg", s + 2) == 0) + return PIDX_KDF_PARAM_CEK_ALG; + break; + case 'i': + if (strcmp("pher", s + 2) == 0) + return PIDX_ALG_PARAM_CIPHER; + break; + case 'o': + switch(s[2]) { + default: + break; + case 'f': + if (strcmp("actor", s + 3) == 0) + return PIDX_PKEY_PARAM_EC_COFACTOR; + break; + case 'n': + switch(s[3]) { + default: + break; + case 's': + if (strcmp("tant", s + 4) == 0) + return PIDX_KDF_PARAM_CONSTANT; + break; + case 't': + if (strcmp("ext-string", s + 4) == 0) + return PIDX_SIGNATURE_PARAM_CONTEXT_STRING; + } + } + break; + case 't': + switch(s[2]) { + default: + break; + case 's': + switch(s[3]) { + default: + break; + case '_': + if (strcmp("mode", s + 4) == 0) + return PIDX_CIPHER_PARAM_CTS_MODE; + break; + case '\0': + return PIDX_CIPHER_PARAM_CTS; + } + } + break; + case 'u': + switch(s[2]) { + default: + break; + case 's': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case 'o': + switch(s[5]) { + default: + break; + case 'm': + switch(s[6]) { + default: + break; + case '-': + if (strcmp("iv", s + 7) == 0) + return PIDX_CIPHER_PARAM_CUSTOM_IV; + break; + case '\0': + return PIDX_MAC_PARAM_CUSTOM; + } + } + } + } + } + } + break; + case 'd': + switch(s[1]) { + default: + break; + case '-': + if (strcmp("rounds", s + 2) == 0) + return PIDX_MAC_PARAM_D_ROUNDS; + break; + case 'a': + switch(s[2]) { + default: + break; + case 't': + switch(s[3]) { + default: + break; + case 'a': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 's': + if (strcmp("tructure", s + 6) == 0) + return PIDX_OBJECT_PARAM_DATA_STRUCTURE; + break; + case 't': + if (strcmp("ype", s + 6) == 0) + return PIDX_OBJECT_PARAM_DATA_TYPE; + } + break; + case '\0': + return PIDX_OBJECT_PARAM_DATA; + } + } + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'c': + switch(s[3]) { + default: + break; + case 'o': + if (strcmp("ded-from-explicit", s + 4) == 0) + return PIDX_PKEY_PARAM_EC_DECODED_FROM_EXPLICIT_PARAMS; + break; + case 'r': + if (strcmp("ypt-only", s + 4) == 0) + return PIDX_CIPHER_PARAM_DECRYPT_ONLY; + } + break; + case 'f': + if (strcmp("ault-digest", s + 3) == 0) + return PIDX_PKEY_PARAM_DEFAULT_DIGEST; + break; + case 's': + if (strcmp("c", s + 3) == 0) + return PIDX_OBJECT_PARAM_DESC; + break; + case 't': + if (strcmp("erministic", s + 3) == 0) + return PIDX_SIGNATURE_PARAM_DETERMINISTIC; + } + break; + case 'h': + if (strcmp("kem-ikm", s + 2) == 0) + return PIDX_PKEY_PARAM_DHKEM_IKM; + break; + case 'i': + switch(s[2]) { + default: + break; + case 'g': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case 's': + switch(s[5]) { + default: + break; + case 't': + switch(s[6]) { + default: + break; + case '-': + switch(s[7]) { + default: + break; + case 'c': + if (strcmp("heck", s + 8) == 0) + return PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK; + break; + case 'n': + if (strcmp("oinit", s + 8) == 0) + return PIDX_MAC_PARAM_DIGEST_NOINIT; + break; + case 'o': + if (strcmp("neshot", s + 8) == 0) + return PIDX_MAC_PARAM_DIGEST_ONESHOT; + break; + case 'p': + if (strcmp("rops", s + 8) == 0) + return PIDX_ASYM_CIPHER_PARAM_OAEP_DIGEST_PROPS; + break; + case 's': + if (strcmp("ize", s + 8) == 0) + return PIDX_PKEY_PARAM_DIGEST_SIZE; + } + break; + case '\0': + return PIDX_STORE_PARAM_DIGEST; + } + } + } + } + break; + case 's': + if (strcmp("tid", s + 3) == 0) + return PIDX_PKEY_PARAM_DIST_ID; + } + break; + case 'r': + if (strcmp("bg-no-trunc-md", s + 2) == 0) + return PIDX_PROV_PARAM_DRBG_TRUNC_DIGEST; + break; + case 's': + if (strcmp("a-sign-disabled", s + 2) == 0) + return PIDX_PROV_PARAM_DSA_SIGN_DISABLED; + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_D; + } + break; + case 'e': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("rly_clean", s + 2) == 0) + return PIDX_KDF_PARAM_EARLY_CLEAN; + break; + case 'c': + switch(s[2]) { + default: + break; + case 'd': + switch(s[3]) { + default: + break; + case 'h': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'c': + switch(s[6]) { + default: + break; + case 'o': + switch(s[7]) { + default: + break; + case 'f': + switch(s[8]) { + default: + break; + case 'a': + switch(s[9]) { + default: + break; + case 'c': + switch(s[10]) { + default: + break; + case 't': + switch(s[11]) { + default: + break; + case 'o': + switch(s[12]) { + default: + break; + case 'r': + switch(s[13]) { + default: + break; + case '-': + switch(s[14]) { + default: + break; + case 'c': + if (strcmp("heck", s + 15) == 0) + return PIDX_PROV_PARAM_ECDH_COFACTOR_CHECK; + break; + case 'm': + if (strcmp("ode", s + 15) == 0) + return PIDX_EXCHANGE_PARAM_EC_ECDH_COFACTOR_MODE; + } + } + } + } + } + } + } + } + } + } + } + } + } + break; + case 'm': + if (strcmp("s_check", s + 2) == 0) + return PIDX_KDF_PARAM_FIPS_EMS_CHECK; + break; + case 'n': + switch(s[2]) { + default: + break; + case 'c': + switch(s[3]) { + default: + break; + case 'o': + switch(s[4]) { + default: + break; + case 'd': + switch(s[5]) { + default: + break; + case 'e': + if (strcmp("d-pub-key", s + 6) == 0) + return PIDX_PKEY_PARAM_ENCODED_PUBLIC_KEY; + break; + case 'i': + if (strcmp("ng", s + 6) == 0) + return PIDX_PKEY_PARAM_EC_ENCODING; + } + } + break; + case 'r': + switch(s[4]) { + default: + break; + case 'y': + switch(s[5]) { + default: + break; + case 'p': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case '-': + switch(s[8]) { + default: + break; + case 'c': + if (strcmp("heck", s + 9) == 0) + return PIDX_CIPHER_PARAM_FIPS_ENCRYPT_CHECK; + break; + case 'l': + if (strcmp("evel", s + 9) == 0) + return PIDX_ENCODER_PARAM_ENCRYPT_LEVEL; + } + } + } + } + } + } + break; + case 'g': + if (strcmp("ine", s + 3) == 0) + return PIDX_ALG_PARAM_ENGINE; + break; + case 't': + switch(s[3]) { + default: + break; + case 'r': + switch(s[4]) { + default: + break; + case 'o': + switch(s[5]) { + default: + break; + case 'p': + switch(s[6]) { + default: + break; + case 'y': + switch(s[7]) { + default: + break; + case '_': + if (strcmp("required", s + 8) == 0) + return PIDX_DRBG_PARAM_ENTROPY_REQUIRED; + break; + case '\0': + return PIDX_KDF_PARAM_HMACDRBG_ENTROPY; + } + } + } + } + } + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_E; + break; + case 'x': + if (strcmp("pect", s + 2) == 0) + return PIDX_STORE_PARAM_EXPECT; + } + break; + case 'f': + switch(s[1]) { + default: + break; + case 'i': + switch(s[2]) { + default: + break; + case 'e': + if (strcmp("ld-type", s + 3) == 0) + return PIDX_PKEY_PARAM_EC_FIELD_TYPE; + break; + case 'n': + if (strcmp("gerprint", s + 3) == 0) + return PIDX_STORE_PARAM_FINGERPRINT; + break; + case 'p': + if (strcmp("s-indicator", s + 3) == 0) + return PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR; + } + } + break; + case 'g': + switch(s[1]) { + default: + break; + case 'e': + switch(s[2]) { + default: + break; + case 'n': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case 'r': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case 'e': + switch(s[8]) { + default: + break; + case '\0': + return PIDX_RAND_PARAM_GENERATE; + } + break; + case 'o': + if (strcmp("r", s + 8) == 0) + return PIDX_PKEY_PARAM_EC_GENERATOR; + } + } + } + } + } + } + break; + case 'i': + if (strcmp("ndex", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_GINDEX; + break; + case 'r': + switch(s[2]) { + default: + break; + case 'o': + switch(s[3]) { + default: + break; + case 'u': + switch(s[4]) { + default: + break; + case 'p': + switch(s[5]) { + default: + break; + case '-': + if (strcmp("check", s + 6) == 0) + return PIDX_PKEY_PARAM_EC_GROUP_CHECK_TYPE; + break; + case '\0': + return PIDX_PKEY_PARAM_GROUP_NAME; + } + } + } + } + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_G; + } + break; + case 'h': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("s-randkey", s + 2) == 0) + return PIDX_CIPHER_PARAM_HAS_RAND_KEY; + break; + case 'i': + if (strcmp("ndex", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_H; + break; + case 'k': + switch(s[2]) { + default: + break; + case 'd': + switch(s[3]) { + default: + break; + case 'f': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 6) == 0) + return PIDX_PROV_PARAM_HKDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 6) == 0) + return PIDX_PROV_PARAM_HKDF_KEY_CHECK; + } + } + } + } + break; + case 'm': + if (strcmp("ac-key-check", s + 2) == 0) + return PIDX_PROV_PARAM_HMAC_KEY_CHECK; + break; + case 's': + if (strcmp("_padding", s + 2) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_HS_PADDING; + } + break; + case 'i': + switch(s[1]) { + default: + break; + case 'd': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_KDF_PARAM_PKCS12_ID; + } + break; + case 'k': + if (strcmp("me", s + 2) == 0) + return PIDX_KEM_PARAM_IKME; + break; + case 'm': + if (strcmp("plicit-rejection", s + 2) == 0) + return PIDX_PKEY_PARAM_IMPLICIT_REJECTION; + break; + case 'n': + switch(s[2]) { + default: + break; + case 'c': + if (strcmp("lude-public", s + 3) == 0) + return PIDX_PKEY_PARAM_EC_INCLUDE_PUBLIC; + break; + case 'f': + if (strcmp("o", s + 3) == 0) + return PIDX_PASSPHRASE_PARAM_INFO; + break; + case 'p': + if (strcmp("ut-type", s + 3) == 0) + return PIDX_STORE_PARAM_INPUT_TYPE; + break; + case 's': + if (strcmp("tance", s + 3) == 0) + return PIDX_SIGNATURE_PARAM_INSTANCE; + } + break; + case 't': + switch(s[2]) { + default: + break; + case 'e': + switch(s[3]) { + default: + break; + case 'r': + switch(s[4]) { + default: + break; + case 'a': + if (strcmp("tion", s + 5) == 0) + return PIDX_GEN_PARAM_ITERATION; + break; + case '\0': + return PIDX_KDF_PARAM_ITER; + } + } + } + break; + case 'v': + switch(s[2]) { + default: + break; + case '-': + if (strcmp("generated", s + 3) == 0) + return PIDX_CIPHER_PARAM_AEAD_IV_GENERATED; + break; + case 'l': + if (strcmp("en", s + 3) == 0) + return PIDX_CIPHER_PARAM_IVLEN; + break; + case '\0': + return PIDX_MAC_PARAM_IV; + } + } + break; + case 'j': + switch(s[1]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_COFACTOR; + } + break; + case 'k': + switch(s[1]) { + default: + break; + case '1': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_PP_K1; + } + break; + case '2': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_PP_K2; + } + break; + case '3': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_PP_K3; + } + break; + case 'a': + if (strcmp("t", s + 2) == 0) + return PIDX_SIGNATURE_PARAM_KAT; + break; + case 'b': + if (strcmp("kdf-key-check", s + 2) == 0) + return PIDX_PROV_PARAM_KBKDF_KEY_CHECK; + break; + case 'd': + switch(s[2]) { + default: + break; + case 'f': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'd': + switch(s[5]) { + default: + break; + case 'i': + switch(s[6]) { + default: + break; + case 'g': + switch(s[7]) { + default: + break; + case 'e': + switch(s[8]) { + default: + break; + case 's': + switch(s[9]) { + default: + break; + case 't': + switch(s[10]) { + default: + break; + case '-': + if (strcmp("props", s + 11) == 0) + return PIDX_EXCHANGE_PARAM_KDF_DIGEST_PROPS; + break; + case '\0': + return PIDX_EXCHANGE_PARAM_KDF_DIGEST; + } + } + } + } + } + } + break; + case 'o': + if (strcmp("utlen", s + 5) == 0) + return PIDX_EXCHANGE_PARAM_KDF_OUTLEN; + break; + case 't': + if (strcmp("ype", s + 5) == 0) + return PIDX_EXCHANGE_PARAM_KDF_TYPE; + break; + case 'u': + if (strcmp("km", s + 5) == 0) + return PIDX_EXCHANGE_PARAM_KDF_UKM; + } + } + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'y': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'c': + if (strcmp("heck", s + 5) == 0) + return PIDX_PKEY_PARAM_FIPS_KEY_CHECK; + break; + case 'l': + if (strcmp("ength", s + 5) == 0) + return PIDX_SKEY_PARAM_KEY_LENGTH; + } + break; + case 'b': + if (strcmp("its", s + 4) == 0) + return PIDX_CIPHER_PARAM_RC2_KEYBITS; + break; + case 'l': + if (strcmp("en", s + 4) == 0) + return PIDX_CIPHER_PARAM_KEYLEN; + break; + case '\0': + return PIDX_MAC_PARAM_KEY; + } + } + break; + case 'm': + if (strcmp("ac-key-check", s + 2) == 0) + return PIDX_PROV_PARAM_KMAC_KEY_CHECK; + } + break; + case 'l': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'b': + if (strcmp("el", s + 3) == 0) + return PIDX_KDF_PARAM_LABEL; + break; + case 'n': + if (strcmp("es", s + 3) == 0) + return PIDX_KDF_PARAM_ARGON2_LANES; + } + } + break; + case 'm': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'c': + switch(s[3]) { + default: + break; + case 'k': + if (strcmp("ey", s + 4) == 0) + return PIDX_CIPHER_PARAM_AEAD_MAC_KEY; + break; + case 'l': + if (strcmp("en", s + 4) == 0) + return PIDX_KDF_PARAM_MAC_SIZE; + break; + case '\0': + return PIDX_ALG_PARAM_MAC; + } + break; + case 'n': + if (strcmp("datory-digest", s + 3) == 0) + return PIDX_PKEY_PARAM_MANDATORY_DIGEST; + break; + case 'x': + switch(s[3]) { + default: + break; + case '-': + if (strcmp("size", s + 4) == 0) + return PIDX_PKEY_PARAM_MAX_SIZE; + break; + case '_': + switch(s[4]) { + default: + break; + case 'a': + if (strcmp("dinlen", s + 5) == 0) + return PIDX_DRBG_PARAM_MAX_ADINLEN; + break; + case 'e': + switch(s[5]) { + default: + break; + case 'a': + if (strcmp("rly_data", s + 6) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_MAX_EARLY_DATA; + break; + case 'n': + if (strcmp("tropylen", s + 6) == 0) + return PIDX_DRBG_PARAM_MAX_ENTROPYLEN; + } + break; + case 'f': + if (strcmp("rag_len", s + 5) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_MAX_FRAG_LEN; + break; + case 'n': + if (strcmp("oncelen", s + 5) == 0) + return PIDX_DRBG_PARAM_MAX_NONCELEN; + break; + case 'p': + if (strcmp("erslen", s + 5) == 0) + return PIDX_DRBG_PARAM_MAX_PERSLEN; + break; + case 'r': + if (strcmp("equest", s + 5) == 0) + return PIDX_RAND_PARAM_MAX_REQUEST; + } + break; + case 'i': + if (strcmp("um_length", s + 4) == 0) + return PIDX_DRBG_PARAM_MAX_LENGTH; + break; + case 'm': + if (strcmp("em_bytes", s + 4) == 0) + return PIDX_KDF_PARAM_SCRYPT_MAXMEM; + } + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'm': + if (strcmp("cost", s + 3) == 0) + return PIDX_KDF_PARAM_ARGON2_MEMCOST; + break; + case 's': + if (strcmp("sage-encoding", s + 3) == 0) + return PIDX_SIGNATURE_PARAM_MESSAGE_ENCODING; + } + break; + case 'g': + switch(s[2]) { + default: + break; + case 'f': + switch(s[3]) { + default: + break; + case '1': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'd': + if (strcmp("igest", s + 6) == 0) + return PIDX_PKEY_PARAM_MGF1_DIGEST; + break; + case 'p': + if (strcmp("roperties", s + 6) == 0) + return PIDX_PKEY_PARAM_MGF1_PROPERTIES; + } + } + break; + case '\0': + return PIDX_PKEY_PARAM_MASKGENFUNC; + } + } + break; + case 'i': + switch(s[2]) { + default: + break; + case 'c': + if (strcmp("alg", s + 3) == 0) + return PIDX_DIGEST_PARAM_MICALG; + break; + case 'n': + switch(s[3]) { + default: + break; + case '_': + switch(s[4]) { + default: + break; + case 'e': + if (strcmp("ntropylen", s + 5) == 0) + return PIDX_DRBG_PARAM_MIN_ENTROPYLEN; + break; + case 'n': + if (strcmp("oncelen", s + 5) == 0) + return PIDX_DRBG_PARAM_MIN_NONCELEN; + } + break; + case 'i': + if (strcmp("um_length", s + 4) == 0) + return PIDX_DRBG_PARAM_MIN_LENGTH; + } + } + break; + case 'l': + switch(s[2]) { + default: + break; + case '-': + switch(s[3]) { + default: + break; + case 'd': + switch(s[4]) { + default: + break; + case 's': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case '.': + switch(s[7]) { + default: + break; + case 'i': + if (strcmp("nput_formats", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_DSA_INPUT_FORMATS; + break; + case 'o': + if (strcmp("utput_formats", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_DSA_OUTPUT_FORMATS; + break; + case 'p': + if (strcmp("refer_seed", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_DSA_PREFER_SEED; + break; + case 'r': + if (strcmp("etain_seed", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_DSA_RETAIN_SEED; + } + } + } + } + break; + case 'k': + switch(s[4]) { + default: + break; + case 'e': + switch(s[5]) { + default: + break; + case 'm': + switch(s[6]) { + default: + break; + case '.': + switch(s[7]) { + default: + break; + case 'i': + switch(s[8]) { + default: + break; + case 'm': + if (strcmp("port_pct_type", s + 9) == 0) + return PIDX_PKEY_PARAM_ML_KEM_IMPORT_PCT_TYPE; + break; + case 'n': + if (strcmp("put_formats", s + 9) == 0) + return PIDX_PKEY_PARAM_ML_KEM_INPUT_FORMATS; + } + break; + case 'o': + if (strcmp("utput_formats", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_KEM_OUTPUT_FORMATS; + break; + case 'p': + if (strcmp("refer_seed", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_KEM_PREFER_SEED; + break; + case 'r': + if (strcmp("etain_seed", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_KEM_RETAIN_SEED; + } + } + } + } + } + } + break; + case 'o': + switch(s[2]) { + default: + break; + case 'd': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case '\0': + return PIDX_LIBSSL_RECORD_LAYER_PARAM_MODE; + } + break; + case 'u': + if (strcmp("le-filename", s + 4) == 0) + return PIDX_PROV_PARAM_CORE_MODULE_FILENAME; + } + } + break; + case 'u': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_SIGNATURE_PARAM_MU; + } + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_M; + } + break; + case 'n': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("me", s + 2) == 0) + return PIDX_STORE_PARAM_ISSUER; + break; + case 'o': + switch(s[2]) { + default: + break; + case '-': + if (strcmp("short-mac", s + 3) == 0) + return PIDX_PROV_PARAM_NO_SHORT_MAC; + break; + case 'n': + switch(s[3]) { + default: + break; + case 'c': + switch(s[4]) { + default: + break; + case 'e': + switch(s[5]) { + default: + break; + case '-': + if (strcmp("type", s + 6) == 0) + return PIDX_SIGNATURE_PARAM_NONCE_TYPE; + break; + case '\0': + return PIDX_KDF_PARAM_HMACDRBG_NONCE; + } + } + } + } + break; + case 'u': + if (strcmp("m", s + 2) == 0) + return PIDX_CIPHER_PARAM_NUM; + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_N; + } + break; + case 'o': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("ep-label", s + 2) == 0) + return PIDX_ASYM_CIPHER_PARAM_OAEP_LABEL; + break; + case 'p': + switch(s[2]) { + default: + break; + case 'e': + switch(s[3]) { + default: + break; + case 'n': + if (strcmp("ssl-version", s + 4) == 0) + return PIDX_PROV_PARAM_CORE_VERSION; + break; + case 'r': + if (strcmp("ation", s + 4) == 0) + return PIDX_KEM_PARAM_OPERATION; + } + break; + case 't': + if (strcmp("ions", s + 3) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_OPTIONS; + } + break; + case 'r': + if (strcmp("der", s + 2) == 0) + return PIDX_PKEY_PARAM_EC_ORDER; + } + break; + case 'p': + switch(s[1]) { + default: + break; + case '1': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_P1; + } + break; + case '2': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_P2; + } + break; + case 'a': + switch(s[2]) { + default: + break; + case 'd': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'm': + if (strcmp("ode", s + 5) == 0) + return PIDX_PKEY_PARAM_PAD_MODE; + break; + case 't': + if (strcmp("ype", s + 5) == 0) + return PIDX_DIGEST_PARAM_PAD_TYPE; + } + break; + case 'd': + if (strcmp("ing", s + 4) == 0) + return PIDX_CIPHER_PARAM_PADDING; + break; + case '\0': + return PIDX_EXCHANGE_PARAM_PAD; + } + break; + case 'r': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case 'y': + switch(s[5]) { + default: + break; + case 'u': + if (strcmp("-info", s + 6) == 0) + return PIDX_KDF_PARAM_X942_PARTYUINFO; + break; + case 'v': + if (strcmp("-info", s + 6) == 0) + return PIDX_KDF_PARAM_X942_PARTYVINFO; + } + } + } + break; + case 's': + if (strcmp("s", s + 3) == 0) + return PIDX_KDF_PARAM_PASSWORD; + } + break; + case 'b': + switch(s[2]) { + default: + break; + case 'i': + if (strcmp("ts", s + 3) == 0) + return PIDX_PKEY_PARAM_FFC_PBITS; + break; + case 'k': + if (strcmp("df2-lower-bound-check", s + 3) == 0) + return PIDX_PROV_PARAM_PBKDF2_LOWER_BOUND_CHECK; + } + break; + case 'c': + if (strcmp("ounter", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_PCOUNTER; + break; + case 'i': + if (strcmp("peline-tag", s + 2) == 0) + return PIDX_CIPHER_PARAM_PIPELINE_AEAD_TAG; + break; + case 'k': + if (strcmp("cs5", s + 2) == 0) + return PIDX_KDF_PARAM_PKCS5; + break; + case 'o': + switch(s[2]) { + default: + break; + case 'i': + if (strcmp("nt-format", s + 3) == 0) + return PIDX_PKEY_PARAM_EC_POINT_CONVERSION_FORMAT; + break; + case 't': + if (strcmp("ential", s + 3) == 0) + return PIDX_GEN_PARAM_POTENTIAL; + } + break; + case 'r': + switch(s[2]) { + default: + break; + case 'e': + switch(s[3]) { + default: + break; + case 'd': + if (strcmp("iction_resistance", s + 4) == 0) + return PIDX_DRBG_PARAM_PREDICTION_RESISTANCE; + break; + case 'f': + if (strcmp("ix", s + 4) == 0) + return PIDX_KDF_PARAM_PREFIX; + } + break; + case 'i': + switch(s[3]) { + default: + break; + case 'm': + if (strcmp("es", s + 4) == 0) + return PIDX_PKEY_PARAM_RSA_PRIMES; + break; + case 'v': + switch(s[4]) { + default: + break; + case '_': + if (strcmp("len", s + 5) == 0) + return PIDX_PKEY_PARAM_DH_PRIV_LEN; + break; + case '\0': + return PIDX_PKEY_PARAM_PRIV_KEY; + } + } + break; + case 'o': + switch(s[3]) { + default: + break; + case 'p': + if (strcmp("erties", s + 4) == 0) + return PIDX_STORE_PARAM_PROPERTIES; + break; + case 'v': + if (strcmp("ider-name", s + 4) == 0) + return PIDX_PROV_PARAM_CORE_PROV_NAME; + } + } + break; + case 'u': + if (strcmp("b", s + 2) == 0) + return PIDX_PKEY_PARAM_PUB_KEY; + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_P; + } + break; + case 'q': + switch(s[1]) { + default: + break; + case '1': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_Q1; + } + break; + case '2': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_Q2; + } + break; + case 'b': + if (strcmp("its", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_QBITS; + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_Q; + break; + case 'x': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_PUB_X; + } + break; + case 'y': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_PUB_Y; + } + } + break; + case 'r': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'n': + switch(s[3]) { + default: + break; + case 'd': + switch(s[4]) { + default: + break; + case 'k': + if (strcmp("ey", s + 5) == 0) + return PIDX_CIPHER_PARAM_RANDOM_KEY; + break; + case 'o': + if (strcmp("m_data", s + 5) == 0) + return PIDX_DRBG_PARAM_RANDOM_DATA; + } + } + break; + case 'w': + if (strcmp("-bytes", s + 3) == 0) + return PIDX_SKEY_PARAM_RAW_BYTES; + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'a': + switch(s[3]) { + default: + break; + case 'd': + switch(s[4]) { + default: + break; + case '_': + switch(s[5]) { + default: + break; + case 'a': + if (strcmp("head", s + 6) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_READ_AHEAD; + break; + case 'b': + if (strcmp("uffer_len", s + 6) == 0) + return PIDX_LIBSSL_RECORD_LAYER_READ_BUFFER_LEN; + } + } + } + break; + case 'f': + if (strcmp("erence", s + 3) == 0) + return PIDX_OBJECT_PARAM_REFERENCE; + break; + case 's': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case 'e': + switch(s[5]) { + default: + break; + case 'd': + switch(s[6]) { + default: + break; + case '_': + switch(s[7]) { + default: + break; + case 'c': + if (strcmp("ounter", s + 8) == 0) + return PIDX_DRBG_PARAM_RESEED_COUNTER; + break; + case 'r': + if (strcmp("equests", s + 8) == 0) + return PIDX_DRBG_PARAM_RESEED_REQUESTS; + break; + case 't': + switch(s[8]) { + default: + break; + case 'i': + switch(s[9]) { + default: + break; + case 'm': + switch(s[10]) { + default: + break; + case 'e': + switch(s[11]) { + default: + break; + case '_': + if (strcmp("interval", s + 12) == 0) + return PIDX_DRBG_PARAM_RESEED_TIME_INTERVAL; + break; + case '\0': + return PIDX_DRBG_PARAM_RESEED_TIME; + } + } + } + } + } + } + } + } + } + } + break; + case 'o': + if (strcmp("unds", s + 2) == 0) + return PIDX_CIPHER_PARAM_ROUNDS; + break; + case 's': + switch(s[2]) { + default: + break; + case 'a': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'c': + switch(s[5]) { + default: + break; + case 'o': + switch(s[6]) { + default: + break; + case 'e': + switch(s[7]) { + default: + break; + case 'f': + switch(s[8]) { + default: + break; + case 'f': + switch(s[9]) { + default: + break; + case 'i': + switch(s[10]) { + default: + break; + case 'c': + switch(s[11]) { + default: + break; + case 'i': + switch(s[12]) { + default: + break; + case 'e': + switch(s[13]) { + default: + break; + case 'n': + switch(s[14]) { + default: + break; + case 't': + switch(s[15]) { + default: + break; + case '1': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT1; + } + break; + case '2': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT2; + } + break; + case '3': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT3; + } + break; + case '4': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT4; + } + break; + case '5': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT5; + } + break; + case '6': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT6; + } + break; + case '7': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT7; + } + break; + case '8': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT8; + } + break; + case '9': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT9; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT; + } + } + } + } + } + } + } + } + } + } + } + break; + case 'd': + if (strcmp("erive-from-pq", s + 5) == 0) + return PIDX_PKEY_PARAM_RSA_DERIVE_FROM_PQ; + break; + case 'e': + switch(s[5]) { + default: + break; + case 'x': + switch(s[6]) { + default: + break; + case 'p': + switch(s[7]) { + default: + break; + case 'o': + switch(s[8]) { + default: + break; + case 'n': + switch(s[9]) { + default: + break; + case 'e': + switch(s[10]) { + default: + break; + case 'n': + switch(s[11]) { + default: + break; + case 't': + switch(s[12]) { + default: + break; + case '1': + switch(s[13]) { + default: + break; + case '0': + switch(s[14]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT10; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT1; + } + break; + case '2': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT2; + } + break; + case '3': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT3; + } + break; + case '4': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT4; + } + break; + case '5': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT5; + } + break; + case '6': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT6; + } + break; + case '7': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT7; + } + break; + case '8': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT8; + } + break; + case '9': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT9; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT; + } + } + } + } + } + } + } + } + break; + case 'f': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case 'c': + switch(s[7]) { + default: + break; + case 't': + switch(s[8]) { + default: + break; + case 'o': + switch(s[9]) { + default: + break; + case 'r': + switch(s[10]) { + default: + break; + case '1': + switch(s[11]) { + default: + break; + case '0': + switch(s[12]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR10; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR1; + } + break; + case '2': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR2; + } + break; + case '3': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR3; + } + break; + case '4': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR4; + } + break; + case '5': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR5; + } + break; + case '6': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR6; + } + break; + case '7': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR7; + } + break; + case '8': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR8; + } + break; + case '9': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR9; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR; + } + } + } + } + } + } + break; + case 'p': + switch(s[5]) { + default: + break; + case 'k': + if (strcmp("cs15-pad-disabled", s + 6) == 0) + return PIDX_PROV_PARAM_RSA_PKCS15_PAD_DISABLED; + break; + case 's': + if (strcmp("s-saltlen-check", s + 6) == 0) + return PIDX_SIGNATURE_PARAM_FIPS_RSA_PSS_SALTLEN_CHECK; + } + break; + case 's': + if (strcmp("ign-x931-pad-disabled", s + 5) == 0) + return PIDX_PROV_PARAM_RSA_SIGN_X931_PAD_DISABLED; + } + } + } + break; + case '\0': + return PIDX_KDF_PARAM_SCRYPT_R; + } + break; + case 's': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'f': + if (strcmp("eprime-generator", s + 3) == 0) + return PIDX_PKEY_PARAM_DH_GENERATOR; + break; + case 'l': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case 'l': + if (strcmp("en", s + 5) == 0) + return PIDX_SIGNATURE_PARAM_PSS_SALTLEN; + break; + case '\0': + return PIDX_MAC_PARAM_SALT; + } + } + break; + case 'v': + if (strcmp("e-parameters", s + 3) == 0) + return PIDX_ENCODER_PARAM_SAVE_PARAMETERS; + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'c': + switch(s[3]) { + default: + break; + case 'r': + if (strcmp("et", s + 4) == 0) + return PIDX_KDF_PARAM_SECRET; + break; + case 'u': + switch(s[4]) { + default: + break; + case 'r': + switch(s[5]) { + default: + break; + case 'i': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case 'y': + switch(s[8]) { + default: + break; + case '-': + switch(s[9]) { + default: + break; + case 'b': + if (strcmp("its", s + 10) == 0) + return PIDX_PKEY_PARAM_SECURITY_BITS; + break; + case 'c': + if (strcmp("hecks", s + 10) == 0) + return PIDX_PROV_PARAM_SECURITY_CHECKS; + } + } + } + } + } + } + } + break; + case 'e': + if (strcmp("d", s + 3) == 0) + return PIDX_PKEY_PARAM_SLH_DSA_SEED; + break; + case 'r': + if (strcmp("ial", s + 3) == 0) + return PIDX_STORE_PARAM_SERIAL; + break; + case 's': + if (strcmp("sion_id", s + 3) == 0) + return PIDX_KDF_PARAM_SSHKDF_SESSION_ID; + } + break; + case 'i': + switch(s[2]) { + default: + break; + case 'g': + switch(s[3]) { + default: + break; + case 'n': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'c': + if (strcmp("heck", s + 6) == 0) + return PIDX_PKEY_PARAM_FIPS_SIGN_CHECK; + break; + case 'x': + if (strcmp("931-pad-check", s + 6) == 0) + return PIDX_SIGNATURE_PARAM_FIPS_SIGN_X931_PAD_CHECK; + } + break; + case 'a': + switch(s[5]) { + default: + break; + case 't': + switch(s[6]) { + default: + break; + case 'u': + switch(s[7]) { + default: + break; + case 'r': + switch(s[8]) { + default: + break; + case 'e': + switch(s[9]) { + default: + break; + case '-': + if (strcmp("digest-check", s + 10) == 0) + return PIDX_PROV_PARAM_SIGNATURE_DIGEST_CHECK; + break; + case '\0': + return PIDX_SIGNATURE_PARAM_SIGNATURE; + } + } + } + } + } + } + } + break; + case 'z': + if (strcmp("e", s + 3) == 0) + return PIDX_MAC_PARAM_SIZE; + } + break; + case 'p': + if (strcmp("eed", s + 2) == 0) + return PIDX_CIPHER_PARAM_SPEED; + break; + case 's': + switch(s[2]) { + default: + break; + case 'h': + switch(s[3]) { + default: + break; + case 'k': + switch(s[4]) { + default: + break; + case 'd': + switch(s[5]) { + default: + break; + case 'f': + switch(s[6]) { + default: + break; + case '-': + switch(s[7]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 8) == 0) + return PIDX_PROV_PARAM_SSHKDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 8) == 0) + return PIDX_PROV_PARAM_SSHKDF_KEY_CHECK; + } + } + } + } + } + break; + case 'k': + switch(s[3]) { + default: + break; + case 'd': + switch(s[4]) { + default: + break; + case 'f': + switch(s[5]) { + default: + break; + case '-': + switch(s[6]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 7) == 0) + return PIDX_PROV_PARAM_SSKDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 7) == 0) + return PIDX_PROV_PARAM_SSKDF_KEY_CHECK; + } + } + } + } + break; + case 'l': + if (strcmp("3-ms", s + 3) == 0) + return PIDX_DIGEST_PARAM_SSL3_MS; + } + break; + case 't': + switch(s[2]) { + default: + break; + case '-': + switch(s[3]) { + default: + break; + case 'd': + if (strcmp("esc", s + 4) == 0) + return PIDX_PROV_PARAM_SELF_TEST_DESC; + break; + case 'p': + if (strcmp("hase", s + 4) == 0) + return PIDX_PROV_PARAM_SELF_TEST_PHASE; + break; + case 't': + if (strcmp("ype", s + 4) == 0) + return PIDX_PROV_PARAM_SELF_TEST_TYPE; + } + break; + case 'a': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case 'e': + switch(s[5]) { + default: + break; + case '\0': + return PIDX_RAND_PARAM_STATE; + } + break; + case 'u': + if (strcmp("s", s + 5) == 0) + return PIDX_PROV_PARAM_STATUS; + } + } + break; + case 'r': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case 'a': + if (strcmp("m_mac", s + 5) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_STREAM_MAC; + break; + case 'n': + if (strcmp("gth", s + 5) == 0) + return PIDX_RAND_PARAM_STRENGTH; + } + } + } + break; + case 'u': + switch(s[2]) { + default: + break; + case 'b': + if (strcmp("ject", s + 3) == 0) + return PIDX_STORE_PARAM_SUBJECT; + break; + case 'p': + switch(s[3]) { + default: + break; + case 'p': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'p': + switch(s[6]) { + default: + break; + case 'r': + if (strcmp("ivinfo", s + 7) == 0) + return PIDX_KDF_PARAM_X942_SUPP_PRIVINFO; + break; + case 'u': + if (strcmp("binfo", s + 7) == 0) + return PIDX_KDF_PARAM_X942_SUPP_PUBINFO; + } + } + } + } + } + } + break; + case 't': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'g': + switch(s[3]) { + default: + break; + case 'l': + if (strcmp("en", s + 4) == 0) + return PIDX_CIPHER_PARAM_AEAD_TAGLEN; + break; + case '\0': + return PIDX_CIPHER_PARAM_AEAD_TAG; + } + } + break; + case 'd': + if (strcmp("es-encrypt-disabled", s + 2) == 0) + return PIDX_PROV_PARAM_TDES_ENCRYPT_DISABLED; + break; + case 'e': + switch(s[2]) { + default: + break; + case 's': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case '-': + if (strcmp("entropy", s + 5) == 0) + return PIDX_SIGNATURE_PARAM_TEST_ENTROPY; + break; + case '_': + switch(s[5]) { + default: + break; + case 'e': + if (strcmp("ntropy", s + 6) == 0) + return PIDX_RAND_PARAM_TEST_ENTROPY; + break; + case 'n': + if (strcmp("once", s + 6) == 0) + return PIDX_RAND_PARAM_TEST_NONCE; + } + } + } + } + break; + case 'h': + if (strcmp("reads", s + 2) == 0) + return PIDX_KDF_PARAM_THREADS; + break; + case 'l': + switch(s[2]) { + default: + break; + case 's': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'c': + if (strcmp("lient-version", s + 5) == 0) + return PIDX_ASYM_CIPHER_PARAM_TLS_CLIENT_VERSION; + break; + case 'd': + if (strcmp("ata-size", s + 5) == 0) + return PIDX_MAC_PARAM_TLS_DATA_SIZE; + break; + case 'g': + switch(s[5]) { + default: + break; + case 'r': + switch(s[6]) { + default: + break; + case 'o': + switch(s[7]) { + default: + break; + case 'u': + switch(s[8]) { + default: + break; + case 'p': + switch(s[9]) { + default: + break; + case '-': + switch(s[10]) { + default: + break; + case 'a': + if (strcmp("lg", s + 11) == 0) + return PIDX_CAPABILITY_TLS_GROUP_ALG; + break; + case 'i': + switch(s[11]) { + default: + break; + case 'd': + switch(s[12]) { + default: + break; + case '\0': + return PIDX_CAPABILITY_TLS_GROUP_ID; + } + break; + case 's': + if (strcmp("-kem", s + 12) == 0) + return PIDX_CAPABILITY_TLS_GROUP_IS_KEM; + } + break; + case 'n': + switch(s[11]) { + default: + break; + case 'a': + switch(s[12]) { + default: + break; + case 'm': + switch(s[13]) { + default: + break; + case 'e': + switch(s[14]) { + default: + break; + case '-': + if (strcmp("internal", s + 15) == 0) + return PIDX_CAPABILITY_TLS_GROUP_NAME_INTERNAL; + break; + case '\0': + return PIDX_CAPABILITY_TLS_GROUP_NAME; + } + } + } + } + break; + case 's': + if (strcmp("ec-bits", s + 11) == 0) + return PIDX_CAPABILITY_TLS_GROUP_SECURITY_BITS; + } + } + } + } + } + } + break; + case 'm': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case 'c': + switch(s[7]) { + default: + break; + case '-': + if (strcmp("size", s + 8) == 0) + return PIDX_CIPHER_PARAM_TLS_MAC_SIZE; + break; + case '\0': + return PIDX_CIPHER_PARAM_TLS_MAC; + } + break; + case 'x': + switch(s[7]) { + default: + break; + case '-': + switch(s[8]) { + default: + break; + case 'd': + if (strcmp("tls", s + 9) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_MAX_DTLS; + break; + case 't': + if (strcmp("ls", s + 9) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_MAX_TLS; + } + } + } + break; + case 'i': + switch(s[6]) { + default: + break; + case 'n': + switch(s[7]) { + default: + break; + case '-': + switch(s[8]) { + default: + break; + case 'd': + if (strcmp("tls", s + 9) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_MIN_DTLS; + break; + case 't': + if (strcmp("ls", s + 9) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_MIN_TLS; + } + } + } + break; + case 'u': + if (strcmp("lti", s + 6) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK; + } + break; + case 'n': + if (strcmp("egotiated-version", s + 5) == 0) + return PIDX_ASYM_CIPHER_PARAM_TLS_NEGOTIATED_VERSION; + break; + case 's': + switch(s[5]) { + default: + break; + case 'i': + switch(s[6]) { + default: + break; + case 'g': + switch(s[7]) { + default: + break; + case 'a': + switch(s[8]) { + default: + break; + case 'l': + switch(s[9]) { + default: + break; + case 'g': + switch(s[10]) { + default: + break; + case '-': + switch(s[11]) { + default: + break; + case 'c': + if (strcmp("ode-point", s + 12) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_CODE_POINT; + break; + case 'h': + switch(s[12]) { + default: + break; + case 'a': + switch(s[13]) { + default: + break; + case 's': + switch(s[14]) { + default: + break; + case 'h': + switch(s[15]) { + default: + break; + case '-': + switch(s[16]) { + default: + break; + case 'n': + if (strcmp("ame", s + 17) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_HASH_NAME; + break; + case 'o': + if (strcmp("id", s + 17) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_HASH_OID; + } + } + } + } + } + break; + case 'i': + if (strcmp("ana-name", s + 12) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_IANA_NAME; + break; + case 'k': + switch(s[12]) { + default: + break; + case 'e': + switch(s[13]) { + default: + break; + case 'y': + switch(s[14]) { + default: + break; + case 't': + switch(s[15]) { + default: + break; + case 'y': + switch(s[16]) { + default: + break; + case 'p': + switch(s[17]) { + default: + break; + case 'e': + switch(s[18]) { + default: + break; + case '-': + if (strcmp("oid", s + 19) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_KEYTYPE_OID; + break; + case '\0': + return PIDX_CAPABILITY_TLS_SIGALG_KEYTYPE; + } + } + } + } + } + } + } + break; + case 'n': + if (strcmp("ame", s + 12) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_NAME; + break; + case 'o': + if (strcmp("id", s + 12) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_OID; + break; + case 's': + switch(s[12]) { + default: + break; + case 'e': + if (strcmp("c-bits", s + 13) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_SECURITY_BITS; + break; + case 'i': + switch(s[13]) { + default: + break; + case 'g': + switch(s[14]) { + default: + break; + case '-': + switch(s[15]) { + default: + break; + case 'n': + if (strcmp("ame", s + 16) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_SIG_NAME; + break; + case 'o': + if (strcmp("id", s + 16) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_SIG_OID; + } + } + } + } + } + } + } + } + } + } + } + break; + case 'v': + if (strcmp("ersion", s + 5) == 0) + return PIDX_CIPHER_PARAM_TLS_VERSION; + } + break; + case '1': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'p': + switch(s[6]) { + default: + break; + case 'r': + switch(s[7]) { + default: + break; + case 'f': + switch(s[8]) { + default: + break; + case '-': + switch(s[9]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 10) == 0) + return PIDX_PROV_PARAM_TLS1_PRF_DIGEST_CHECK; + break; + case 'e': + if (strcmp("ms-check", s + 10) == 0) + return PIDX_PROV_PARAM_TLS1_PRF_EMS_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 10) == 0) + return PIDX_PROV_PARAM_TLS1_PRF_KEY_CHECK; + } + } + } + } + } + break; + case '3': + switch(s[5]) { + default: + break; + case '-': + switch(s[6]) { + default: + break; + case 'k': + switch(s[7]) { + default: + break; + case 'd': + switch(s[8]) { + default: + break; + case 'f': + switch(s[9]) { + default: + break; + case '-': + switch(s[10]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 11) == 0) + return PIDX_PROV_PARAM_TLS13_KDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 11) == 0) + return PIDX_PROV_PARAM_TLS13_KDF_KEY_CHECK; + } + } + } + } + } + } + break; + case 'm': + switch(s[5]) { + default: + break; + case 'u': + switch(s[6]) { + default: + break; + case 'l': + switch(s[7]) { + default: + break; + case 't': + switch(s[8]) { + default: + break; + case 'i': + switch(s[9]) { + default: + break; + case '_': + switch(s[10]) { + default: + break; + case 'a': + switch(s[11]) { + default: + break; + case 'a': + switch(s[12]) { + default: + break; + case 'd': + switch(s[13]) { + default: + break; + case 'p': + if (strcmp("acklen", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD_PACKLEN; + break; + case '\0': + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD; + } + } + } + break; + case 'e': + switch(s[11]) { + default: + break; + case 'n': + switch(s[12]) { + default: + break; + case 'c': + switch(s[13]) { + default: + break; + case 'i': + if (strcmp("n", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_IN; + break; + case 'l': + if (strcmp("en", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_LEN; + break; + case '\0': + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC; + } + } + } + break; + case 'i': + if (strcmp("nterleave", s + 11) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_INTERLEAVE; + break; + case 'm': + switch(s[11]) { + default: + break; + case 'a': + switch(s[12]) { + default: + break; + case 'x': + switch(s[13]) { + default: + break; + case 'b': + if (strcmp("ufsz", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_BUFSIZE; + break; + case 's': + if (strcmp("ndfrag", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_SEND_FRAGMENT; + } + } + } + } + } + } + } + } + } + } + break; + case 'a': + switch(s[4]) { + default: + break; + case 'a': + switch(s[5]) { + default: + break; + case 'd': + switch(s[6]) { + default: + break; + case 'p': + if (strcmp("ad", s + 7) == 0) + return PIDX_CIPHER_PARAM_AEAD_TLS1_AAD_PAD; + break; + case '\0': + return PIDX_CIPHER_PARAM_AEAD_TLS1_AAD; + } + } + } + break; + case 'i': + switch(s[4]) { + default: + break; + case 'v': + switch(s[5]) { + default: + break; + case 'f': + if (strcmp("ixed", s + 6) == 0) + return PIDX_CIPHER_PARAM_AEAD_TLS1_IV_FIXED; + break; + case 'g': + if (strcmp("en", s + 6) == 0) + return PIDX_CIPHER_PARAM_AEAD_TLS1_GET_IV_GEN; + break; + case 'i': + if (strcmp("nv", s + 6) == 0) + return PIDX_CIPHER_PARAM_AEAD_TLS1_SET_IV_INV; + } + } + break; + case 't': + if (strcmp("ree", s + 4) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_TLSTREE; + } + } + break; + case 'p': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_TP_BASIS; + } + break; + case 'y': + if (strcmp("pe", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_TYPE; + } + break; + case 'u': + switch(s[1]) { + default: + break; + case 'k': + if (strcmp("m", s + 2) == 0) + return PIDX_KDF_PARAM_UKM; + break; + case 'p': + if (strcmp("dated-iv", s + 2) == 0) + return PIDX_CIPHER_PARAM_UPDATED_IV; + break; + case 's': + switch(s[2]) { + default: + break; + case 'e': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'b': + if (strcmp("its", s + 5) == 0) + return PIDX_CIPHER_PARAM_USE_BITS; + break; + case 'c': + if (strcmp("ofactor-flag", s + 5) == 0) + return PIDX_PKEY_PARAM_USE_COFACTOR_FLAG; + break; + case 'k': + if (strcmp("eybits", s + 5) == 0) + return PIDX_KDF_PARAM_X942_USE_KEYBITS; + break; + case 'l': + switch(s[5]) { + default: + break; + case '\0': + return PIDX_KDF_PARAM_KBKDF_USE_L; + } + break; + case 's': + if (strcmp("eparator", s + 5) == 0) + return PIDX_KDF_PARAM_KBKDF_USE_SEPARATOR; + } + break; + case '_': + switch(s[4]) { + default: + break; + case 'd': + if (strcmp("erivation_function", s + 5) == 0) + return PIDX_DRBG_PARAM_USE_DF; + break; + case 'e': + if (strcmp("tm", s + 5) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_USE_ETM; + } + } + } + } + break; + case 'v': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'l': + switch(s[3]) { + default: + break; + case 'i': + switch(s[4]) { + default: + break; + case 'd': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case 'e': + switch(s[8]) { + default: + break; + case '-': + switch(s[9]) { + default: + break; + case 'g': + switch(s[10]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_VALIDATE_G; + } + break; + case 'l': + if (strcmp("egacy", s + 10) == 0) + return PIDX_PKEY_PARAM_FFC_VALIDATE_LEGACY; + break; + case 'p': + if (strcmp("q", s + 10) == 0) + return PIDX_PKEY_PARAM_FFC_VALIDATE_PQ; + } + } + } + } + } + } + } + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'r': + switch(s[3]) { + default: + break; + case 'i': + if (strcmp("fy-message", s + 4) == 0) + return PIDX_SIGNATURE_PARAM_FIPS_VERIFY_MESSAGE; + break; + case 's': + if (strcmp("ion", s + 4) == 0) + return PIDX_PROV_PARAM_VERSION; + } + } + } + break; + case 'x': + switch(s[1]) { + default: + break; + case '9': + switch(s[2]) { + default: + break; + case '4': + if (strcmp("2kdf-key-check", s + 3) == 0) + return PIDX_PROV_PARAM_X942KDF_KEY_CHECK; + break; + case '6': + switch(s[3]) { + default: + break; + case '3': + switch(s[4]) { + default: + break; + case 'k': + switch(s[5]) { + default: + break; + case 'd': + switch(s[6]) { + default: + break; + case 'f': + switch(s[7]) { + default: + break; + case '-': + switch(s[8]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 9) == 0) + return PIDX_PROV_PARAM_X963KDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 9) == 0) + return PIDX_PROV_PARAM_X963KDF_KEY_CHECK; + } + } + } + } + } + } + } + break; + case 'c': + if (strcmp("ghash", s + 2) == 0) + return PIDX_KDF_PARAM_SSHKDF_XCGHASH; + break; + case 'o': + switch(s[2]) { + default: + break; + case 'f': + switch(s[3]) { + default: + break; + case 'l': + if (strcmp("en", s + 4) == 0) + return PIDX_DIGEST_PARAM_XOFLEN; + break; + case '\0': + return PIDX_MAC_PARAM_XOF; + } + } + break; + case 'p': + switch(s[2]) { + default: + break; + case '1': + switch(s[3]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XP1; + } + break; + case '2': + switch(s[3]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XP2; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XP; + } + break; + case 'q': + switch(s[2]) { + default: + break; + case '1': + switch(s[3]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XQ1; + } + break; + case '2': + switch(s[3]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XQ2; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XQ; + } + break; + case 't': + if (strcmp("s_standard", s + 2) == 0) + return PIDX_CIPHER_PARAM_XTS_STANDARD; + } + } + return -1; +} + +/* End of TRIE */ diff --git a/deps/openssl/config/archs/linux-aarch64/no-asm/include/internal/param_names.h b/deps/openssl/config/archs/linux-aarch64/no-asm/include/internal/param_names.h new file mode 100644 index 00000000000000..0a0404a57e82b9 --- /dev/null +++ b/deps/openssl/config/archs/linux-aarch64/no-asm/include/internal/param_names.h @@ -0,0 +1,469 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from include/internal/param_names.h.in + * + * Copyright 2023 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + +int ossl_param_find_pidx(const char *s); + +/* Parameter name definitions - generated by util/perl/OpenSSL/paramnames.pm */ +#define NUM_PIDX 346 + +#define PIDX_ALG_PARAM_ALGORITHM_ID 0 +#define PIDX_ALG_PARAM_ALGORITHM_ID_PARAMS 1 +#define PIDX_ALG_PARAM_CIPHER 2 +#define PIDX_ALG_PARAM_DIGEST 3 +#define PIDX_ALG_PARAM_ENGINE 4 +#define PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR 5 +#define PIDX_ALG_PARAM_MAC 6 +#define PIDX_ALG_PARAM_PROPERTIES 7 +#define PIDX_ASYM_CIPHER_PARAM_DIGEST PIDX_PKEY_PARAM_DIGEST +#define PIDX_ASYM_CIPHER_PARAM_ENGINE PIDX_PKEY_PARAM_ENGINE +#define PIDX_ASYM_CIPHER_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_ASYM_CIPHER_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_ASYM_CIPHER_PARAM_FIPS_RSA_PKCS15_PAD_DISABLED PIDX_PROV_PARAM_RSA_PKCS15_PAD_DISABLED +#define PIDX_ASYM_CIPHER_PARAM_IMPLICIT_REJECTION 8 +#define PIDX_ASYM_CIPHER_PARAM_MGF1_DIGEST PIDX_PKEY_PARAM_MGF1_DIGEST +#define PIDX_ASYM_CIPHER_PARAM_MGF1_DIGEST_PROPS PIDX_PKEY_PARAM_MGF1_PROPERTIES +#define PIDX_ASYM_CIPHER_PARAM_OAEP_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_ASYM_CIPHER_PARAM_OAEP_DIGEST_PROPS 9 +#define PIDX_ASYM_CIPHER_PARAM_OAEP_LABEL 10 +#define PIDX_ASYM_CIPHER_PARAM_PAD_MODE PIDX_PKEY_PARAM_PAD_MODE +#define PIDX_ASYM_CIPHER_PARAM_PROPERTIES PIDX_PKEY_PARAM_PROPERTIES +#define PIDX_ASYM_CIPHER_PARAM_TLS_CLIENT_VERSION 11 +#define PIDX_ASYM_CIPHER_PARAM_TLS_NEGOTIATED_VERSION 12 +#define PIDX_CAPABILITY_TLS_GROUP_ALG 13 +#define PIDX_CAPABILITY_TLS_GROUP_ID 14 +#define PIDX_CAPABILITY_TLS_GROUP_IS_KEM 15 +#define PIDX_CAPABILITY_TLS_GROUP_MAX_DTLS 16 +#define PIDX_CAPABILITY_TLS_GROUP_MAX_TLS 17 +#define PIDX_CAPABILITY_TLS_GROUP_MIN_DTLS 18 +#define PIDX_CAPABILITY_TLS_GROUP_MIN_TLS 19 +#define PIDX_CAPABILITY_TLS_GROUP_NAME 20 +#define PIDX_CAPABILITY_TLS_GROUP_NAME_INTERNAL 21 +#define PIDX_CAPABILITY_TLS_GROUP_SECURITY_BITS 22 +#define PIDX_CAPABILITY_TLS_SIGALG_CODE_POINT 23 +#define PIDX_CAPABILITY_TLS_SIGALG_HASH_NAME 24 +#define PIDX_CAPABILITY_TLS_SIGALG_HASH_OID 25 +#define PIDX_CAPABILITY_TLS_SIGALG_IANA_NAME 26 +#define PIDX_CAPABILITY_TLS_SIGALG_KEYTYPE 27 +#define PIDX_CAPABILITY_TLS_SIGALG_KEYTYPE_OID 28 +#define PIDX_CAPABILITY_TLS_SIGALG_MAX_DTLS 16 +#define PIDX_CAPABILITY_TLS_SIGALG_MAX_TLS 17 +#define PIDX_CAPABILITY_TLS_SIGALG_MIN_DTLS 18 +#define PIDX_CAPABILITY_TLS_SIGALG_MIN_TLS 19 +#define PIDX_CAPABILITY_TLS_SIGALG_NAME 29 +#define PIDX_CAPABILITY_TLS_SIGALG_OID 30 +#define PIDX_CAPABILITY_TLS_SIGALG_SECURITY_BITS 31 +#define PIDX_CAPABILITY_TLS_SIGALG_SIG_NAME 32 +#define PIDX_CAPABILITY_TLS_SIGALG_SIG_OID 33 +#define PIDX_CIPHER_PARAM_AEAD 34 +#define PIDX_CIPHER_PARAM_AEAD_IVLEN PIDX_CIPHER_PARAM_IVLEN +#define PIDX_CIPHER_PARAM_AEAD_IV_GENERATED 35 +#define PIDX_CIPHER_PARAM_AEAD_MAC_KEY 36 +#define PIDX_CIPHER_PARAM_AEAD_TAG 37 +#define PIDX_CIPHER_PARAM_AEAD_TAGLEN 38 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_AAD 39 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_AAD_PAD 40 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_GET_IV_GEN 41 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_IV_FIXED 42 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_SET_IV_INV 43 +#define PIDX_CIPHER_PARAM_ALGORITHM_ID PIDX_ALG_PARAM_ALGORITHM_ID +#define PIDX_CIPHER_PARAM_ALGORITHM_ID_PARAMS PIDX_ALG_PARAM_ALGORITHM_ID_PARAMS +#define PIDX_CIPHER_PARAM_ALGORITHM_ID_PARAMS_OLD 44 +#define PIDX_CIPHER_PARAM_BLOCK_SIZE 45 +#define PIDX_CIPHER_PARAM_CTS 46 +#define PIDX_CIPHER_PARAM_CTS_MODE 47 +#define PIDX_CIPHER_PARAM_CUSTOM_IV 48 +#define PIDX_CIPHER_PARAM_DECRYPT_ONLY 49 +#define PIDX_CIPHER_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_CIPHER_PARAM_FIPS_ENCRYPT_CHECK 50 +#define PIDX_CIPHER_PARAM_HAS_RAND_KEY 51 +#define PIDX_CIPHER_PARAM_IV 52 +#define PIDX_CIPHER_PARAM_IVLEN 53 +#define PIDX_CIPHER_PARAM_KEYLEN 54 +#define PIDX_CIPHER_PARAM_MODE 55 +#define PIDX_CIPHER_PARAM_NUM 56 +#define PIDX_CIPHER_PARAM_PADDING 57 +#define PIDX_CIPHER_PARAM_PIPELINE_AEAD_TAG 58 +#define PIDX_CIPHER_PARAM_RANDOM_KEY 59 +#define PIDX_CIPHER_PARAM_RC2_KEYBITS 60 +#define PIDX_CIPHER_PARAM_ROUNDS 61 +#define PIDX_CIPHER_PARAM_SPEED 62 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK 63 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD 64 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD_PACKLEN 65 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC 66 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_IN 67 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_LEN 68 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_INTERLEAVE 69 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_BUFSIZE 70 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_SEND_FRAGMENT 71 +#define PIDX_CIPHER_PARAM_TLS_MAC 72 +#define PIDX_CIPHER_PARAM_TLS_MAC_SIZE 73 +#define PIDX_CIPHER_PARAM_TLS_VERSION 74 +#define PIDX_CIPHER_PARAM_UPDATED_IV 75 +#define PIDX_CIPHER_PARAM_USE_BITS 76 +#define PIDX_CIPHER_PARAM_XTS_STANDARD 77 +#define PIDX_DECODER_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_DIGEST_PARAM_ALGID_ABSENT 78 +#define PIDX_DIGEST_PARAM_BLOCK_SIZE 45 +#define PIDX_DIGEST_PARAM_MICALG 79 +#define PIDX_DIGEST_PARAM_PAD_TYPE 80 +#define PIDX_DIGEST_PARAM_SIZE 81 +#define PIDX_DIGEST_PARAM_SSL3_MS 82 +#define PIDX_DIGEST_PARAM_XOF 83 +#define PIDX_DIGEST_PARAM_XOFLEN 84 +#define PIDX_DRBG_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_DRBG_PARAM_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_DRBG_PARAM_ENTROPY_REQUIRED 85 +#define PIDX_DRBG_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_DRBG_PARAM_FIPS_DIGEST_CHECK PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK +#define PIDX_DRBG_PARAM_MAC PIDX_ALG_PARAM_MAC +#define PIDX_DRBG_PARAM_MAX_ADINLEN 86 +#define PIDX_DRBG_PARAM_MAX_ENTROPYLEN 87 +#define PIDX_DRBG_PARAM_MAX_LENGTH 88 +#define PIDX_DRBG_PARAM_MAX_NONCELEN 89 +#define PIDX_DRBG_PARAM_MAX_PERSLEN 90 +#define PIDX_DRBG_PARAM_MIN_ENTROPYLEN 91 +#define PIDX_DRBG_PARAM_MIN_LENGTH 92 +#define PIDX_DRBG_PARAM_MIN_NONCELEN 93 +#define PIDX_DRBG_PARAM_PREDICTION_RESISTANCE 94 +#define PIDX_DRBG_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_DRBG_PARAM_RANDOM_DATA 95 +#define PIDX_DRBG_PARAM_RESEED_COUNTER 96 +#define PIDX_DRBG_PARAM_RESEED_REQUESTS 97 +#define PIDX_DRBG_PARAM_RESEED_TIME 98 +#define PIDX_DRBG_PARAM_RESEED_TIME_INTERVAL 99 +#define PIDX_DRBG_PARAM_SIZE 81 +#define PIDX_DRBG_PARAM_USE_DF 100 +#define PIDX_ENCODER_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_ENCODER_PARAM_ENCRYPT_LEVEL 101 +#define PIDX_ENCODER_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_ENCODER_PARAM_SAVE_PARAMETERS 102 +#define PIDX_EXCHANGE_PARAM_EC_ECDH_COFACTOR_MODE 103 +#define PIDX_EXCHANGE_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_EXCHANGE_PARAM_FIPS_DIGEST_CHECK PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK +#define PIDX_EXCHANGE_PARAM_FIPS_ECDH_COFACTOR_CHECK PIDX_PROV_PARAM_ECDH_COFACTOR_CHECK +#define PIDX_EXCHANGE_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_EXCHANGE_PARAM_KDF_DIGEST 104 +#define PIDX_EXCHANGE_PARAM_KDF_DIGEST_PROPS 105 +#define PIDX_EXCHANGE_PARAM_KDF_OUTLEN 106 +#define PIDX_EXCHANGE_PARAM_KDF_TYPE 107 +#define PIDX_EXCHANGE_PARAM_KDF_UKM 108 +#define PIDX_EXCHANGE_PARAM_PAD 109 +#define PIDX_GEN_PARAM_ITERATION 110 +#define PIDX_GEN_PARAM_POTENTIAL 111 +#define PIDX_KDF_PARAM_ARGON2_AD 112 +#define PIDX_KDF_PARAM_ARGON2_LANES 113 +#define PIDX_KDF_PARAM_ARGON2_MEMCOST 114 +#define PIDX_KDF_PARAM_ARGON2_VERSION 115 +#define PIDX_KDF_PARAM_CEK_ALG 116 +#define PIDX_KDF_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_KDF_PARAM_CONSTANT 117 +#define PIDX_KDF_PARAM_DATA 118 +#define PIDX_KDF_PARAM_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_KDF_PARAM_EARLY_CLEAN 119 +#define PIDX_KDF_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_KDF_PARAM_FIPS_DIGEST_CHECK PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK +#define PIDX_KDF_PARAM_FIPS_EMS_CHECK 120 +#define PIDX_KDF_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_KDF_PARAM_HMACDRBG_ENTROPY 121 +#define PIDX_KDF_PARAM_HMACDRBG_NONCE 122 +#define PIDX_KDF_PARAM_INFO 123 +#define PIDX_KDF_PARAM_ITER 124 +#define PIDX_KDF_PARAM_KBKDF_R 125 +#define PIDX_KDF_PARAM_KBKDF_USE_L 126 +#define PIDX_KDF_PARAM_KBKDF_USE_SEPARATOR 127 +#define PIDX_KDF_PARAM_KEY 128 +#define PIDX_KDF_PARAM_LABEL 129 +#define PIDX_KDF_PARAM_MAC PIDX_ALG_PARAM_MAC +#define PIDX_KDF_PARAM_MAC_SIZE 130 +#define PIDX_KDF_PARAM_MODE 55 +#define PIDX_KDF_PARAM_PASSWORD 131 +#define PIDX_KDF_PARAM_PKCS12_ID 132 +#define PIDX_KDF_PARAM_PKCS5 133 +#define PIDX_KDF_PARAM_PREFIX 134 +#define PIDX_KDF_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_KDF_PARAM_SALT 135 +#define PIDX_KDF_PARAM_SCRYPT_MAXMEM 136 +#define PIDX_KDF_PARAM_SCRYPT_N 137 +#define PIDX_KDF_PARAM_SCRYPT_P 138 +#define PIDX_KDF_PARAM_SCRYPT_R 125 +#define PIDX_KDF_PARAM_SECRET 139 +#define PIDX_KDF_PARAM_SEED 140 +#define PIDX_KDF_PARAM_SIZE 81 +#define PIDX_KDF_PARAM_SSHKDF_SESSION_ID 141 +#define PIDX_KDF_PARAM_SSHKDF_TYPE 142 +#define PIDX_KDF_PARAM_SSHKDF_XCGHASH 143 +#define PIDX_KDF_PARAM_THREADS 144 +#define PIDX_KDF_PARAM_UKM 145 +#define PIDX_KDF_PARAM_X942_ACVPINFO 146 +#define PIDX_KDF_PARAM_X942_PARTYUINFO 147 +#define PIDX_KDF_PARAM_X942_PARTYVINFO 148 +#define PIDX_KDF_PARAM_X942_SUPP_PRIVINFO 149 +#define PIDX_KDF_PARAM_X942_SUPP_PUBINFO 150 +#define PIDX_KDF_PARAM_X942_USE_KEYBITS 151 +#define PIDX_KEM_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_KEM_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_KEM_PARAM_IKME 152 +#define PIDX_KEM_PARAM_OPERATION 153 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_BLOCK_PADDING 154 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_HS_PADDING 155 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_MAX_EARLY_DATA 156 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_MAX_FRAG_LEN 157 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_MODE 55 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_OPTIONS 158 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_READ_AHEAD 159 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_STREAM_MAC 160 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_TLSTREE 161 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_USE_ETM 162 +#define PIDX_LIBSSL_RECORD_LAYER_READ_BUFFER_LEN 163 +#define PIDX_MAC_PARAM_BLOCK_SIZE 164 +#define PIDX_MAC_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_MAC_PARAM_CUSTOM 165 +#define PIDX_MAC_PARAM_C_ROUNDS 166 +#define PIDX_MAC_PARAM_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_MAC_PARAM_DIGEST_NOINIT 167 +#define PIDX_MAC_PARAM_DIGEST_ONESHOT 168 +#define PIDX_MAC_PARAM_D_ROUNDS 169 +#define PIDX_MAC_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_MAC_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_MAC_PARAM_FIPS_NO_SHORT_MAC PIDX_PROV_PARAM_NO_SHORT_MAC +#define PIDX_MAC_PARAM_IV 52 +#define PIDX_MAC_PARAM_KEY 128 +#define PIDX_MAC_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_MAC_PARAM_SALT 135 +#define PIDX_MAC_PARAM_SIZE 81 +#define PIDX_MAC_PARAM_TLS_DATA_SIZE 170 +#define PIDX_MAC_PARAM_XOF 83 +#define PIDX_OBJECT_PARAM_DATA 118 +#define PIDX_OBJECT_PARAM_DATA_STRUCTURE 171 +#define PIDX_OBJECT_PARAM_DATA_TYPE 172 +#define PIDX_OBJECT_PARAM_DESC 173 +#define PIDX_OBJECT_PARAM_INPUT_TYPE 174 +#define PIDX_OBJECT_PARAM_REFERENCE 175 +#define PIDX_OBJECT_PARAM_TYPE 142 +#define PIDX_PASSPHRASE_PARAM_INFO 123 +#define PIDX_PKEY_PARAM_ALGORITHM_ID PIDX_ALG_PARAM_ALGORITHM_ID +#define PIDX_PKEY_PARAM_ALGORITHM_ID_PARAMS PIDX_ALG_PARAM_ALGORITHM_ID_PARAMS +#define PIDX_PKEY_PARAM_BITS 176 +#define PIDX_PKEY_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_PKEY_PARAM_DEFAULT_DIGEST 177 +#define PIDX_PKEY_PARAM_DHKEM_IKM 178 +#define PIDX_PKEY_PARAM_DH_GENERATOR 179 +#define PIDX_PKEY_PARAM_DH_PRIV_LEN 180 +#define PIDX_PKEY_PARAM_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_PKEY_PARAM_DIGEST_SIZE 181 +#define PIDX_PKEY_PARAM_DIST_ID 182 +#define PIDX_PKEY_PARAM_EC_A 183 +#define PIDX_PKEY_PARAM_EC_B 184 +#define PIDX_PKEY_PARAM_EC_CHAR2_M 185 +#define PIDX_PKEY_PARAM_EC_CHAR2_PP_K1 186 +#define PIDX_PKEY_PARAM_EC_CHAR2_PP_K2 187 +#define PIDX_PKEY_PARAM_EC_CHAR2_PP_K3 188 +#define PIDX_PKEY_PARAM_EC_CHAR2_TP_BASIS 189 +#define PIDX_PKEY_PARAM_EC_CHAR2_TYPE 190 +#define PIDX_PKEY_PARAM_EC_COFACTOR 191 +#define PIDX_PKEY_PARAM_EC_DECODED_FROM_EXPLICIT_PARAMS 192 +#define PIDX_PKEY_PARAM_EC_ENCODING 193 +#define PIDX_PKEY_PARAM_EC_FIELD_TYPE 194 +#define PIDX_PKEY_PARAM_EC_GENERATOR 195 +#define PIDX_PKEY_PARAM_EC_GROUP_CHECK_TYPE 196 +#define PIDX_PKEY_PARAM_EC_INCLUDE_PUBLIC 197 +#define PIDX_PKEY_PARAM_EC_ORDER 198 +#define PIDX_PKEY_PARAM_EC_P 138 +#define PIDX_PKEY_PARAM_EC_POINT_CONVERSION_FORMAT 199 +#define PIDX_PKEY_PARAM_EC_PUB_X 200 +#define PIDX_PKEY_PARAM_EC_PUB_Y 201 +#define PIDX_PKEY_PARAM_EC_SEED 140 +#define PIDX_PKEY_PARAM_ENCODED_PUBLIC_KEY 202 +#define PIDX_PKEY_PARAM_ENGINE PIDX_ALG_PARAM_ENGINE +#define PIDX_PKEY_PARAM_FFC_COFACTOR 203 +#define PIDX_PKEY_PARAM_FFC_DIGEST PIDX_PKEY_PARAM_DIGEST +#define PIDX_PKEY_PARAM_FFC_DIGEST_PROPS PIDX_PKEY_PARAM_PROPERTIES +#define PIDX_PKEY_PARAM_FFC_G 204 +#define PIDX_PKEY_PARAM_FFC_GINDEX 205 +#define PIDX_PKEY_PARAM_FFC_H 206 +#define PIDX_PKEY_PARAM_FFC_P 138 +#define PIDX_PKEY_PARAM_FFC_PBITS 207 +#define PIDX_PKEY_PARAM_FFC_PCOUNTER 208 +#define PIDX_PKEY_PARAM_FFC_Q 209 +#define PIDX_PKEY_PARAM_FFC_QBITS 210 +#define PIDX_PKEY_PARAM_FFC_SEED 140 +#define PIDX_PKEY_PARAM_FFC_TYPE 142 +#define PIDX_PKEY_PARAM_FFC_VALIDATE_G 211 +#define PIDX_PKEY_PARAM_FFC_VALIDATE_LEGACY 212 +#define PIDX_PKEY_PARAM_FFC_VALIDATE_PQ 213 +#define PIDX_PKEY_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK 214 +#define PIDX_PKEY_PARAM_FIPS_KEY_CHECK 215 +#define PIDX_PKEY_PARAM_FIPS_SIGN_CHECK 216 +#define PIDX_PKEY_PARAM_GROUP_NAME 217 +#define PIDX_PKEY_PARAM_IMPLICIT_REJECTION 8 +#define PIDX_PKEY_PARAM_MANDATORY_DIGEST 218 +#define PIDX_PKEY_PARAM_MASKGENFUNC 219 +#define PIDX_PKEY_PARAM_MAX_SIZE 220 +#define PIDX_PKEY_PARAM_MGF1_DIGEST 221 +#define PIDX_PKEY_PARAM_MGF1_PROPERTIES 222 +#define PIDX_PKEY_PARAM_ML_DSA_INPUT_FORMATS 223 +#define PIDX_PKEY_PARAM_ML_DSA_OUTPUT_FORMATS 224 +#define PIDX_PKEY_PARAM_ML_DSA_PREFER_SEED 225 +#define PIDX_PKEY_PARAM_ML_DSA_RETAIN_SEED 226 +#define PIDX_PKEY_PARAM_ML_DSA_SEED 140 +#define PIDX_PKEY_PARAM_ML_KEM_IMPORT_PCT_TYPE 227 +#define PIDX_PKEY_PARAM_ML_KEM_INPUT_FORMATS 228 +#define PIDX_PKEY_PARAM_ML_KEM_OUTPUT_FORMATS 229 +#define PIDX_PKEY_PARAM_ML_KEM_PREFER_SEED 230 +#define PIDX_PKEY_PARAM_ML_KEM_RETAIN_SEED 231 +#define PIDX_PKEY_PARAM_ML_KEM_SEED 140 +#define PIDX_PKEY_PARAM_PAD_MODE 232 +#define PIDX_PKEY_PARAM_PRIV_KEY 233 +#define PIDX_PKEY_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_PKEY_PARAM_PUB_KEY 234 +#define PIDX_PKEY_PARAM_RSA_BITS PIDX_PKEY_PARAM_BITS +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT 235 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT1 236 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT2 237 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT3 238 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT4 239 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT5 240 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT6 241 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT7 242 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT8 243 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT9 244 +#define PIDX_PKEY_PARAM_RSA_D 245 +#define PIDX_PKEY_PARAM_RSA_DERIVE_FROM_PQ 246 +#define PIDX_PKEY_PARAM_RSA_DIGEST PIDX_PKEY_PARAM_DIGEST +#define PIDX_PKEY_PARAM_RSA_DIGEST_PROPS PIDX_PKEY_PARAM_PROPERTIES +#define PIDX_PKEY_PARAM_RSA_E 247 +#define PIDX_PKEY_PARAM_RSA_EXPONENT 248 +#define PIDX_PKEY_PARAM_RSA_EXPONENT1 249 +#define PIDX_PKEY_PARAM_RSA_EXPONENT10 250 +#define PIDX_PKEY_PARAM_RSA_EXPONENT2 251 +#define PIDX_PKEY_PARAM_RSA_EXPONENT3 252 +#define PIDX_PKEY_PARAM_RSA_EXPONENT4 253 +#define PIDX_PKEY_PARAM_RSA_EXPONENT5 254 +#define PIDX_PKEY_PARAM_RSA_EXPONENT6 255 +#define PIDX_PKEY_PARAM_RSA_EXPONENT7 256 +#define PIDX_PKEY_PARAM_RSA_EXPONENT8 257 +#define PIDX_PKEY_PARAM_RSA_EXPONENT9 258 +#define PIDX_PKEY_PARAM_RSA_FACTOR 259 +#define PIDX_PKEY_PARAM_RSA_FACTOR1 260 +#define PIDX_PKEY_PARAM_RSA_FACTOR10 261 +#define PIDX_PKEY_PARAM_RSA_FACTOR2 262 +#define PIDX_PKEY_PARAM_RSA_FACTOR3 263 +#define PIDX_PKEY_PARAM_RSA_FACTOR4 264 +#define PIDX_PKEY_PARAM_RSA_FACTOR5 265 +#define PIDX_PKEY_PARAM_RSA_FACTOR6 266 +#define PIDX_PKEY_PARAM_RSA_FACTOR7 267 +#define PIDX_PKEY_PARAM_RSA_FACTOR8 268 +#define PIDX_PKEY_PARAM_RSA_FACTOR9 269 +#define PIDX_PKEY_PARAM_RSA_MASKGENFUNC PIDX_PKEY_PARAM_MASKGENFUNC +#define PIDX_PKEY_PARAM_RSA_MGF1_DIGEST PIDX_PKEY_PARAM_MGF1_DIGEST +#define PIDX_PKEY_PARAM_RSA_N 137 +#define PIDX_PKEY_PARAM_RSA_PRIMES 270 +#define PIDX_PKEY_PARAM_RSA_PSS_SALTLEN 271 +#define PIDX_PKEY_PARAM_RSA_TEST_P1 272 +#define PIDX_PKEY_PARAM_RSA_TEST_P2 273 +#define PIDX_PKEY_PARAM_RSA_TEST_Q1 274 +#define PIDX_PKEY_PARAM_RSA_TEST_Q2 275 +#define PIDX_PKEY_PARAM_RSA_TEST_XP 276 +#define PIDX_PKEY_PARAM_RSA_TEST_XP1 277 +#define PIDX_PKEY_PARAM_RSA_TEST_XP2 278 +#define PIDX_PKEY_PARAM_RSA_TEST_XQ 279 +#define PIDX_PKEY_PARAM_RSA_TEST_XQ1 280 +#define PIDX_PKEY_PARAM_RSA_TEST_XQ2 281 +#define PIDX_PKEY_PARAM_SECURITY_BITS 282 +#define PIDX_PKEY_PARAM_SLH_DSA_SEED 140 +#define PIDX_PKEY_PARAM_USE_COFACTOR_ECDH PIDX_PKEY_PARAM_USE_COFACTOR_FLAG +#define PIDX_PKEY_PARAM_USE_COFACTOR_FLAG 283 +#define PIDX_PROV_PARAM_BUILDINFO 284 +#define PIDX_PROV_PARAM_CORE_MODULE_FILENAME 285 +#define PIDX_PROV_PARAM_CORE_PROV_NAME 286 +#define PIDX_PROV_PARAM_CORE_VERSION 287 +#define PIDX_PROV_PARAM_DRBG_TRUNC_DIGEST 288 +#define PIDX_PROV_PARAM_DSA_SIGN_DISABLED 289 +#define PIDX_PROV_PARAM_ECDH_COFACTOR_CHECK 290 +#define PIDX_PROV_PARAM_HKDF_DIGEST_CHECK 291 +#define PIDX_PROV_PARAM_HKDF_KEY_CHECK 292 +#define PIDX_PROV_PARAM_HMAC_KEY_CHECK 293 +#define PIDX_PROV_PARAM_KBKDF_KEY_CHECK 294 +#define PIDX_PROV_PARAM_KMAC_KEY_CHECK 295 +#define PIDX_PROV_PARAM_NAME 296 +#define PIDX_PROV_PARAM_NO_SHORT_MAC 297 +#define PIDX_PROV_PARAM_PBKDF2_LOWER_BOUND_CHECK 298 +#define PIDX_PROV_PARAM_RSA_PKCS15_PAD_DISABLED 299 +#define PIDX_PROV_PARAM_RSA_PSS_SALTLEN_CHECK 300 +#define PIDX_PROV_PARAM_RSA_SIGN_X931_PAD_DISABLED 301 +#define PIDX_PROV_PARAM_SECURITY_CHECKS 302 +#define PIDX_PROV_PARAM_SELF_TEST_DESC 303 +#define PIDX_PROV_PARAM_SELF_TEST_PHASE 304 +#define PIDX_PROV_PARAM_SELF_TEST_TYPE 305 +#define PIDX_PROV_PARAM_SIGNATURE_DIGEST_CHECK 306 +#define PIDX_PROV_PARAM_SSHKDF_DIGEST_CHECK 307 +#define PIDX_PROV_PARAM_SSHKDF_KEY_CHECK 308 +#define PIDX_PROV_PARAM_SSKDF_DIGEST_CHECK 309 +#define PIDX_PROV_PARAM_SSKDF_KEY_CHECK 310 +#define PIDX_PROV_PARAM_STATUS 311 +#define PIDX_PROV_PARAM_TDES_ENCRYPT_DISABLED 312 +#define PIDX_PROV_PARAM_TLS13_KDF_DIGEST_CHECK 313 +#define PIDX_PROV_PARAM_TLS13_KDF_KEY_CHECK 314 +#define PIDX_PROV_PARAM_TLS1_PRF_DIGEST_CHECK 315 +#define PIDX_PROV_PARAM_TLS1_PRF_EMS_CHECK 316 +#define PIDX_PROV_PARAM_TLS1_PRF_KEY_CHECK 317 +#define PIDX_PROV_PARAM_VERSION 115 +#define PIDX_PROV_PARAM_X942KDF_KEY_CHECK 318 +#define PIDX_PROV_PARAM_X963KDF_DIGEST_CHECK 319 +#define PIDX_PROV_PARAM_X963KDF_KEY_CHECK 320 +#define PIDX_RAND_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_RAND_PARAM_GENERATE 321 +#define PIDX_RAND_PARAM_MAX_REQUEST 322 +#define PIDX_RAND_PARAM_STATE 323 +#define PIDX_RAND_PARAM_STRENGTH 324 +#define PIDX_RAND_PARAM_TEST_ENTROPY 325 +#define PIDX_RAND_PARAM_TEST_NONCE 326 +#define PIDX_SIGNATURE_PARAM_ADD_RANDOM 327 +#define PIDX_SIGNATURE_PARAM_ALGORITHM_ID PIDX_PKEY_PARAM_ALGORITHM_ID +#define PIDX_SIGNATURE_PARAM_ALGORITHM_ID_PARAMS PIDX_PKEY_PARAM_ALGORITHM_ID_PARAMS +#define PIDX_SIGNATURE_PARAM_CONTEXT_STRING 328 +#define PIDX_SIGNATURE_PARAM_DETERMINISTIC 329 +#define PIDX_SIGNATURE_PARAM_DIGEST PIDX_PKEY_PARAM_DIGEST +#define PIDX_SIGNATURE_PARAM_DIGEST_SIZE PIDX_PKEY_PARAM_DIGEST_SIZE +#define PIDX_SIGNATURE_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_SIGNATURE_PARAM_FIPS_DIGEST_CHECK PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK +#define PIDX_SIGNATURE_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_SIGNATURE_PARAM_FIPS_RSA_PSS_SALTLEN_CHECK 300 +#define PIDX_SIGNATURE_PARAM_FIPS_SIGN_CHECK PIDX_PKEY_PARAM_FIPS_SIGN_CHECK +#define PIDX_SIGNATURE_PARAM_FIPS_SIGN_X931_PAD_CHECK 330 +#define PIDX_SIGNATURE_PARAM_FIPS_VERIFY_MESSAGE 331 +#define PIDX_SIGNATURE_PARAM_INSTANCE 332 +#define PIDX_SIGNATURE_PARAM_KAT 333 +#define PIDX_SIGNATURE_PARAM_MESSAGE_ENCODING 334 +#define PIDX_SIGNATURE_PARAM_MGF1_DIGEST PIDX_PKEY_PARAM_MGF1_DIGEST +#define PIDX_SIGNATURE_PARAM_MGF1_PROPERTIES PIDX_PKEY_PARAM_MGF1_PROPERTIES +#define PIDX_SIGNATURE_PARAM_MU 335 +#define PIDX_SIGNATURE_PARAM_NONCE_TYPE 336 +#define PIDX_SIGNATURE_PARAM_PAD_MODE PIDX_PKEY_PARAM_PAD_MODE +#define PIDX_SIGNATURE_PARAM_PROPERTIES PIDX_PKEY_PARAM_PROPERTIES +#define PIDX_SIGNATURE_PARAM_PSS_SALTLEN 271 +#define PIDX_SIGNATURE_PARAM_SIGNATURE 337 +#define PIDX_SIGNATURE_PARAM_TEST_ENTROPY 338 +#define PIDX_SKEY_PARAM_KEY_LENGTH 339 +#define PIDX_SKEY_PARAM_RAW_BYTES 340 +#define PIDX_STORE_PARAM_ALIAS 341 +#define PIDX_STORE_PARAM_DIGEST 3 +#define PIDX_STORE_PARAM_EXPECT 342 +#define PIDX_STORE_PARAM_FINGERPRINT 343 +#define PIDX_STORE_PARAM_INPUT_TYPE 174 +#define PIDX_STORE_PARAM_ISSUER 296 +#define PIDX_STORE_PARAM_PROPERTIES 7 +#define PIDX_STORE_PARAM_SERIAL 344 +#define PIDX_STORE_PARAM_SUBJECT 345 diff --git a/deps/openssl/config/archs/linux-aarch64/no-asm/include/openssl/asn1.h b/deps/openssl/config/archs/linux-aarch64/no-asm/include/openssl/asn1.h index 21ff58e3d803d4..15e9e44674b0f3 100644 --- a/deps/openssl/config/archs/linux-aarch64/no-asm/include/openssl/asn1.h +++ b/deps/openssl/config/archs/linux-aarch64/no-asm/include/openssl/asn1.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/asn1.h.in * - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -21,6 +21,9 @@ # define HEADER_ASN1_H # endif +# ifndef OPENSSL_NO_STDIO +# include +# endif # include # include # include @@ -50,14 +53,14 @@ extern "C" { # define V_ASN1_PRIMITIVE_TAG 0x1f # define V_ASN1_PRIMATIVE_TAG /*compat*/ V_ASN1_PRIMITIVE_TAG -# define V_ASN1_APP_CHOOSE -2/* let the recipient choose */ -# define V_ASN1_OTHER -3/* used in ASN1_TYPE */ -# define V_ASN1_ANY -4/* used in ASN1 template code */ +# define V_ASN1_APP_CHOOSE -2 /* let the recipient choose */ +# define V_ASN1_OTHER -3 /* used in ASN1_TYPE */ +# define V_ASN1_ANY -4 /* used in ASN1 template code */ # define V_ASN1_UNDEF -1 /* ASN.1 tag values */ # define V_ASN1_EOC 0 -# define V_ASN1_BOOLEAN 1 /**/ +# define V_ASN1_BOOLEAN 1 # define V_ASN1_INTEGER 2 # define V_ASN1_BIT_STRING 3 # define V_ASN1_OCTET_STRING 4 @@ -70,19 +73,19 @@ extern "C" { # define V_ASN1_UTF8STRING 12 # define V_ASN1_SEQUENCE 16 # define V_ASN1_SET 17 -# define V_ASN1_NUMERICSTRING 18 /**/ +# define V_ASN1_NUMERICSTRING 18 # define V_ASN1_PRINTABLESTRING 19 # define V_ASN1_T61STRING 20 -# define V_ASN1_TELETEXSTRING 20/* alias */ -# define V_ASN1_VIDEOTEXSTRING 21 /**/ +# define V_ASN1_TELETEXSTRING 20 /* alias */ +# define V_ASN1_VIDEOTEXSTRING 21 # define V_ASN1_IA5STRING 22 # define V_ASN1_UTCTIME 23 -# define V_ASN1_GENERALIZEDTIME 24 /**/ -# define V_ASN1_GRAPHICSTRING 25 /**/ -# define V_ASN1_ISO64STRING 26 /**/ -# define V_ASN1_VISIBLESTRING 26/* alias */ -# define V_ASN1_GENERALSTRING 27 /**/ -# define V_ASN1_UNIVERSALSTRING 28 /**/ +# define V_ASN1_GENERALIZEDTIME 24 +# define V_ASN1_GRAPHICSTRING 25 +# define V_ASN1_ISO64STRING 26 +# define V_ASN1_VISIBLESTRING 26 /* alias */ +# define V_ASN1_GENERALSTRING 27 +# define V_ASN1_UNIVERSALSTRING 28 # define V_ASN1_BMPSTRING 30 /* @@ -155,7 +158,7 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_ALGOR, X509_ALGOR, X509_ALGOR) -# define ASN1_STRING_FLAG_BITS_LEFT 0x08/* Set if 0x07 has bits left value */ +# define ASN1_STRING_FLAG_BITS_LEFT 0x08 /* Set if 0x07 has bits left value */ /* * This indicates that the ASN1_STRING is not a real value but just a place * holder for the location where indefinite length constructed data should be @@ -275,7 +278,7 @@ typedef struct ASN1_TLC_st ASN1_TLC; /* This is just an opaque pointer */ typedef struct ASN1_VALUE_st ASN1_VALUE; -/* Declare ASN1 functions: the implement macro in in asn1t.h */ +/* Declare ASN1 functions: the implement macro is in asn1t.h */ /* * The mysterious 'extern' that's passed to some macros is innocuous, @@ -368,6 +371,7 @@ typedef struct ASN1_VALUE_st ASN1_VALUE; typedef void *d2i_of_void(void **, const unsigned char **, long); typedef int i2d_of_void(const void *, unsigned char **); +typedef int OSSL_i2d_of_void_ctx(const void *, unsigned char **, void *vctx); /*- * The following macros and typedefs allow an ASN1_ITEM @@ -996,6 +1000,8 @@ int ASN1_TYPE_get_int_octetstring(const ASN1_TYPE *a, long *num, unsigned char *data, int max_len); void *ASN1_item_unpack(const ASN1_STRING *oct, const ASN1_ITEM *it); +void *ASN1_item_unpack_ex(const ASN1_STRING *oct, const ASN1_ITEM *it, + OSSL_LIB_CTX *libctx, const char *propq); ASN1_STRING *ASN1_item_pack(void *obj, const ASN1_ITEM *it, ASN1_OCTET_STRING **oct); diff --git a/deps/openssl/config/archs/linux-aarch64/no-asm/include/openssl/bio.h b/deps/openssl/config/archs/linux-aarch64/no-asm/include/openssl/bio.h index f9aa74731c833c..e02f867beb0ec0 100644 --- a/deps/openssl/config/archs/linux-aarch64/no-asm/include/openssl/bio.h +++ b/deps/openssl/config/archs/linux-aarch64/no-asm/include/openssl/bio.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/bio.h.in * - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -67,8 +67,13 @@ extern "C" { # define BIO_TYPE_DGRAM_SCTP (24|BIO_TYPE_SOURCE_SINK|BIO_TYPE_DESCRIPTOR) # endif # define BIO_TYPE_CORE_TO_PROV (25|BIO_TYPE_SOURCE_SINK) +# define BIO_TYPE_DGRAM_PAIR (26|BIO_TYPE_SOURCE_SINK) +# define BIO_TYPE_DGRAM_MEM (27|BIO_TYPE_SOURCE_SINK) +/* Custom type starting index returned by BIO_get_new_index() */ #define BIO_TYPE_START 128 +/* Custom type maximum index that can be returned by BIO_get_new_index() */ +#define BIO_TYPE_MASK 0xFF /* * BIO_FILENAME_READ|BIO_CLOSE to open or close on free. @@ -171,6 +176,31 @@ extern "C" { # define BIO_CTRL_SET_INDENT 80 # define BIO_CTRL_GET_INDENT 81 +# define BIO_CTRL_DGRAM_GET_LOCAL_ADDR_CAP 82 +# define BIO_CTRL_DGRAM_GET_LOCAL_ADDR_ENABLE 83 +# define BIO_CTRL_DGRAM_SET_LOCAL_ADDR_ENABLE 84 +# define BIO_CTRL_DGRAM_GET_EFFECTIVE_CAPS 85 +# define BIO_CTRL_DGRAM_GET_CAPS 86 +# define BIO_CTRL_DGRAM_SET_CAPS 87 +# define BIO_CTRL_DGRAM_GET_NO_TRUNC 88 +# define BIO_CTRL_DGRAM_SET_NO_TRUNC 89 + +/* + * internal BIO: + * # define BIO_CTRL_SET_KTLS_TX_ZEROCOPY_SENDFILE 90 + */ + +# define BIO_CTRL_GET_RPOLL_DESCRIPTOR 91 +# define BIO_CTRL_GET_WPOLL_DESCRIPTOR 92 +# define BIO_CTRL_DGRAM_DETECT_PEER_ADDR 93 +# define BIO_CTRL_DGRAM_SET0_LOCAL_ADDR 94 + +# define BIO_DGRAM_CAP_NONE 0U +# define BIO_DGRAM_CAP_HANDLES_SRC_ADDR (1U << 0) +# define BIO_DGRAM_CAP_HANDLES_DST_ADDR (1U << 1) +# define BIO_DGRAM_CAP_PROVIDES_SRC_ADDR (1U << 2) +# define BIO_DGRAM_CAP_PROVIDES_DST_ADDR (1U << 3) + # ifndef OPENSSL_NO_KTLS # define BIO_get_ktls_send(b) \ (BIO_ctrl(b, BIO_CTRL_GET_KTLS_SEND, 0, NULL) > 0) @@ -208,7 +238,7 @@ extern "C" { # define BIO_FLAGS_NONCLEAR_RST 0x400 # define BIO_FLAGS_IN_EOF 0x800 -/* the BIO FLAGS values 0x1000 to 0x4000 are reserved for internal KTLS flags */ +/* the BIO FLAGS values 0x1000 to 0x8000 are reserved for internal KTLS flags */ typedef union bio_addr_st BIO_ADDR; typedef struct bio_addrinfo_st BIO_ADDRINFO; @@ -256,12 +286,14 @@ void BIO_clear_flags(BIO *b, int flags); # define BIO_RR_ACCEPT 0x03 /* These are passed by the BIO callback */ -# define BIO_CB_FREE 0x01 -# define BIO_CB_READ 0x02 -# define BIO_CB_WRITE 0x03 -# define BIO_CB_PUTS 0x04 -# define BIO_CB_GETS 0x05 -# define BIO_CB_CTRL 0x06 +# define BIO_CB_FREE 0x01 +# define BIO_CB_READ 0x02 +# define BIO_CB_WRITE 0x03 +# define BIO_CB_PUTS 0x04 +# define BIO_CB_GETS 0x05 +# define BIO_CB_CTRL 0x06 +# define BIO_CB_RECVMMSG 0x07 +# define BIO_CB_SENDMMSG 0x08 /* * The callback is called before and after the underling operation, The @@ -362,6 +394,36 @@ struct bio_dgram_sctp_prinfo { }; # endif +/* BIO_sendmmsg/BIO_recvmmsg-related definitions */ +typedef struct bio_msg_st { + void *data; + size_t data_len; + BIO_ADDR *peer, *local; + uint64_t flags; +} BIO_MSG; + +typedef struct bio_mmsg_cb_args_st { + BIO_MSG *msg; + size_t stride, num_msg; + uint64_t flags; + size_t *msgs_processed; +} BIO_MMSG_CB_ARGS; + +#define BIO_POLL_DESCRIPTOR_TYPE_NONE 0 +#define BIO_POLL_DESCRIPTOR_TYPE_SOCK_FD 1 +#define BIO_POLL_DESCRIPTOR_TYPE_SSL 2 +#define BIO_POLL_DESCRIPTOR_CUSTOM_START 8192 + +typedef struct bio_poll_descriptor_st { + uint32_t type; + union { + int fd; + void *custom; + uintptr_t custom_ui; + SSL *ssl; + } value; +} BIO_POLL_DESCRIPTOR; + /* * #define BIO_CONN_get_param_hostname BIO_ctrl */ @@ -428,10 +490,17 @@ struct bio_dgram_sctp_prinfo { # define BIO_C_SET_CONNECT_MODE 155 +# define BIO_C_SET_TFO 156 /* like BIO_C_SET_NBIO */ + +# define BIO_C_SET_SOCK_TYPE 157 +# define BIO_C_GET_SOCK_TYPE 158 +# define BIO_C_GET_DGRAM_BIO 159 + # define BIO_set_app_data(s,arg) BIO_set_ex_data(s,0,arg) # define BIO_get_app_data(s) BIO_get_ex_data(s,0) -# define BIO_set_nbio(b,n) BIO_ctrl(b,BIO_C_SET_NBIO,(n),NULL) +# define BIO_set_nbio(b,n) BIO_ctrl(b,BIO_C_SET_NBIO,(n),NULL) +# define BIO_set_tfo(b,n) BIO_ctrl(b,BIO_C_SET_TFO,(n),NULL) # ifndef OPENSSL_NO_SOCK /* IP families we support, for BIO_s_connect() and BIO_s_accept() */ @@ -452,7 +521,11 @@ struct bio_dgram_sctp_prinfo { # define BIO_get_conn_port(b) ((const char *)BIO_ptr_ctrl(b,BIO_C_GET_CONNECT,1)) # define BIO_get_conn_address(b) ((const BIO_ADDR *)BIO_ptr_ctrl(b,BIO_C_GET_CONNECT,2)) # define BIO_get_conn_ip_family(b) BIO_ctrl(b,BIO_C_GET_CONNECT,3,NULL) +# define BIO_get_conn_mode(b) BIO_ctrl(b,BIO_C_GET_CONNECT,4,NULL) # define BIO_set_conn_mode(b,n) BIO_ctrl(b,BIO_C_SET_CONNECT_MODE,(n),NULL) +# define BIO_set_sock_type(b,t) BIO_ctrl(b,BIO_C_SET_SOCK_TYPE,(t),NULL) +# define BIO_get_sock_type(b) BIO_ctrl(b,BIO_C_GET_SOCK_TYPE,0,NULL) +# define BIO_get0_dgram_bio(b, p) BIO_ctrl(b,BIO_C_GET_DGRAM_BIO,0,(void *)(BIO **)(p)) /* BIO_s_accept() */ # define BIO_set_accept_name(b,name) BIO_ctrl(b,BIO_C_SET_ACCEPT,0, \ @@ -469,6 +542,7 @@ struct bio_dgram_sctp_prinfo { (char *)(bio)) # define BIO_set_accept_ip_family(b,f) BIO_int_ctrl(b,BIO_C_SET_ACCEPT,4,f) # define BIO_get_accept_ip_family(b) BIO_ctrl(b,BIO_C_GET_ACCEPT,4,NULL) +# define BIO_set_tfo_accept(b,n) BIO_ctrl(b,BIO_C_SET_ACCEPT,5,(n)?(void *)"a":NULL) /* Aliases kept for backward compatibility */ # define BIO_BIND_NORMAL 0 @@ -596,8 +670,32 @@ int BIO_ctrl_reset_read_request(BIO *b); (int)BIO_ctrl(b, BIO_CTRL_DGRAM_GET_PEER, 0, (char *)(peer)) # define BIO_dgram_set_peer(b,peer) \ (int)BIO_ctrl(b, BIO_CTRL_DGRAM_SET_PEER, 0, (char *)(peer)) +# define BIO_dgram_detect_peer_addr(b,peer) \ + (int)BIO_ctrl(b, BIO_CTRL_DGRAM_DETECT_PEER_ADDR, 0, (char *)(peer)) # define BIO_dgram_get_mtu_overhead(b) \ (unsigned int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_MTU_OVERHEAD, 0, NULL) +# define BIO_dgram_get_local_addr_cap(b) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_LOCAL_ADDR_CAP, 0, NULL) +# define BIO_dgram_get_local_addr_enable(b, penable) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_LOCAL_ADDR_ENABLE, 0, (char *)(penable)) +# define BIO_dgram_set_local_addr_enable(b, enable) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET_LOCAL_ADDR_ENABLE, (enable), NULL) +# define BIO_dgram_get_effective_caps(b) \ + (uint32_t)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_EFFECTIVE_CAPS, 0, NULL) +# define BIO_dgram_get_caps(b) \ + (uint32_t)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_CAPS, 0, NULL) +# define BIO_dgram_set_caps(b, caps) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET_CAPS, (long)(caps), NULL) +# define BIO_dgram_get_no_trunc(b) \ + (unsigned int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_NO_TRUNC, 0, NULL) +# define BIO_dgram_set_no_trunc(b, enable) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET_NO_TRUNC, (enable), NULL) +# define BIO_dgram_get_mtu(b) \ + (unsigned int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_MTU, 0, NULL) +# define BIO_dgram_set_mtu(b, mtu) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET_MTU, (mtu), NULL) +# define BIO_dgram_set0_local_addr(b, addr) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET0_LOCAL_ADDR, 0, (addr)) /* ctrl macros for BIO_f_prefix */ # define BIO_set_prefix(b,p) BIO_ctrl((b), BIO_CTRL_SET_PREFIX, 0, (void *)(p)) @@ -640,10 +738,18 @@ void BIO_vfree(BIO *a); int BIO_up_ref(BIO *a); int BIO_read(BIO *b, void *data, int dlen); int BIO_read_ex(BIO *b, void *data, size_t dlen, size_t *readbytes); +__owur int BIO_recvmmsg(BIO *b, BIO_MSG *msg, + size_t stride, size_t num_msg, uint64_t flags, + size_t *msgs_processed); int BIO_gets(BIO *bp, char *buf, int size); int BIO_get_line(BIO *bio, char *buf, int size); int BIO_write(BIO *b, const void *data, int dlen); int BIO_write_ex(BIO *b, const void *data, size_t dlen, size_t *written); +__owur int BIO_sendmmsg(BIO *b, BIO_MSG *msg, + size_t stride, size_t num_msg, uint64_t flags, + size_t *msgs_processed); +__owur int BIO_get_rpoll_descriptor(BIO *b, BIO_POLL_DESCRIPTOR *desc); +__owur int BIO_get_wpoll_descriptor(BIO *b, BIO_POLL_DESCRIPTOR *desc); int BIO_puts(BIO *bp, const char *buf); int BIO_indent(BIO *b, int indent, int max); long BIO_ctrl(BIO *bp, int cmd, long larg, void *parg); @@ -667,6 +773,9 @@ int BIO_nwrite0(BIO *bio, char **buf); int BIO_nwrite(BIO *bio, char **buf, int num); const BIO_METHOD *BIO_s_mem(void); +# ifndef OPENSSL_NO_DGRAM +const BIO_METHOD *BIO_s_dgram_mem(void); +# endif const BIO_METHOD *BIO_s_secmem(void); BIO *BIO_new_mem_buf(const void *buf, int len); # ifndef OPENSSL_NO_SOCK @@ -686,6 +795,7 @@ const BIO_METHOD *BIO_f_nbio_test(void); const BIO_METHOD *BIO_f_prefix(void); const BIO_METHOD *BIO_s_core(void); # ifndef OPENSSL_NO_DGRAM +const BIO_METHOD *BIO_s_dgram_pair(void); const BIO_METHOD *BIO_s_datagram(void); int BIO_dgram_non_fatal_error(int error); BIO *BIO_new_dgram(int fd, int close_flag); @@ -704,6 +814,7 @@ int BIO_dgram_sctp_msg_waiting(BIO *b); # ifndef OPENSSL_NO_SOCK int BIO_sock_should_retry(int i); int BIO_sock_non_fatal_error(int error); +int BIO_err_is_non_fatal(unsigned int errcode); int BIO_socket_wait(int fd, int for_read, time_t max_time); # endif int BIO_wait(BIO *bio, time_t max_time, unsigned int nap_milliseconds); @@ -726,6 +837,8 @@ int BIO_hex_string(BIO *out, int indent, int width, const void *data, # ifndef OPENSSL_NO_SOCK BIO_ADDR *BIO_ADDR_new(void); +int BIO_ADDR_copy(BIO_ADDR *dst, const BIO_ADDR *src); +BIO_ADDR *BIO_ADDR_dup(const BIO_ADDR *ap); int BIO_ADDR_rawmake(BIO_ADDR *ap, int family, const void *where, size_t wherelen, unsigned short port); void BIO_ADDR_free(BIO_ADDR *); @@ -788,6 +901,7 @@ int BIO_sock_info(int sock, # define BIO_SOCK_KEEPALIVE 0x04 # define BIO_SOCK_NONBLOCK 0x08 # define BIO_SOCK_NODELAY 0x10 +# define BIO_SOCK_TFO 0x20 int BIO_socket(int domain, int socktype, int protocol, int options); int BIO_connect(int sock, const BIO_ADDR *addr, int options); @@ -805,6 +919,11 @@ BIO *BIO_new_fd(int fd, int close_flag); int BIO_new_bio_pair(BIO **bio1, size_t writebuf1, BIO **bio2, size_t writebuf2); +# ifndef OPENSSL_NO_DGRAM +int BIO_new_bio_dgram_pair(BIO **bio1, size_t writebuf1, + BIO **bio2, size_t writebuf2); +# endif + /* * If successful, returns 1 and in *bio1, *bio2 two BIO pair endpoints. * Otherwise returns 0 and sets *bio1 and *bio2 to NULL. Size 0 uses default @@ -849,38 +968,54 @@ ossl_bio__attr__((__format__(ossl_bio__printf__, 3, 0))); BIO_METHOD *BIO_meth_new(int type, const char *name); void BIO_meth_free(BIO_METHOD *biom); -int (*BIO_meth_get_write(const BIO_METHOD *biom)) (BIO *, const char *, int); -int (*BIO_meth_get_write_ex(const BIO_METHOD *biom)) (BIO *, const char *, size_t, - size_t *); int BIO_meth_set_write(BIO_METHOD *biom, int (*write) (BIO *, const char *, int)); int BIO_meth_set_write_ex(BIO_METHOD *biom, int (*bwrite) (BIO *, const char *, size_t, size_t *)); -int (*BIO_meth_get_read(const BIO_METHOD *biom)) (BIO *, char *, int); -int (*BIO_meth_get_read_ex(const BIO_METHOD *biom)) (BIO *, char *, size_t, size_t *); +int BIO_meth_set_sendmmsg(BIO_METHOD *biom, + int (*f) (BIO *, BIO_MSG *, size_t, size_t, + uint64_t, size_t *)); int BIO_meth_set_read(BIO_METHOD *biom, int (*read) (BIO *, char *, int)); int BIO_meth_set_read_ex(BIO_METHOD *biom, int (*bread) (BIO *, char *, size_t, size_t *)); -int (*BIO_meth_get_puts(const BIO_METHOD *biom)) (BIO *, const char *); +int BIO_meth_set_recvmmsg(BIO_METHOD *biom, + int (*f) (BIO *, BIO_MSG *, size_t, size_t, + uint64_t, size_t *)); int BIO_meth_set_puts(BIO_METHOD *biom, int (*puts) (BIO *, const char *)); -int (*BIO_meth_get_gets(const BIO_METHOD *biom)) (BIO *, char *, int); int BIO_meth_set_gets(BIO_METHOD *biom, int (*ossl_gets) (BIO *, char *, int)); -long (*BIO_meth_get_ctrl(const BIO_METHOD *biom)) (BIO *, int, long, void *); int BIO_meth_set_ctrl(BIO_METHOD *biom, long (*ctrl) (BIO *, int, long, void *)); -int (*BIO_meth_get_create(const BIO_METHOD *bion)) (BIO *); int BIO_meth_set_create(BIO_METHOD *biom, int (*create) (BIO *)); -int (*BIO_meth_get_destroy(const BIO_METHOD *biom)) (BIO *); int BIO_meth_set_destroy(BIO_METHOD *biom, int (*destroy) (BIO *)); -long (*BIO_meth_get_callback_ctrl(const BIO_METHOD *biom)) - (BIO *, int, BIO_info_cb *); int BIO_meth_set_callback_ctrl(BIO_METHOD *biom, long (*callback_ctrl) (BIO *, int, BIO_info_cb *)); - +# ifndef OPENSSL_NO_DEPRECATED_3_5 +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_write(const BIO_METHOD *biom)) (BIO *, const char *, + int); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_write_ex(const BIO_METHOD *biom)) (BIO *, const char *, + size_t, size_t *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_sendmmsg(const BIO_METHOD *biom))(BIO *, BIO_MSG *, + size_t, size_t, + uint64_t, size_t *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_read(const BIO_METHOD *biom)) (BIO *, char *, int); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_read_ex(const BIO_METHOD *biom)) (BIO *, char *, + size_t, size_t *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_recvmmsg(const BIO_METHOD *biom))(BIO *, BIO_MSG *, + size_t, size_t, + uint64_t, size_t *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_puts(const BIO_METHOD *biom)) (BIO *, const char *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_gets(const BIO_METHOD *biom)) (BIO *, char *, int); +OSSL_DEPRECATEDIN_3_5 long (*BIO_meth_get_ctrl(const BIO_METHOD *biom)) (BIO *, int, + long, void *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_create(const BIO_METHOD *bion)) (BIO *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_destroy(const BIO_METHOD *biom)) (BIO *); +OSSL_DEPRECATEDIN_3_5 long (*BIO_meth_get_callback_ctrl(const BIO_METHOD *biom)) (BIO *, int, + BIO_info_cb *); +# endif # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/linux-aarch64/no-asm/include/openssl/cmp.h b/deps/openssl/config/archs/linux-aarch64/no-asm/include/openssl/cmp.h index 49825570d8c303..05aed3029d594c 100644 --- a/deps/openssl/config/archs/linux-aarch64/no-asm/include/openssl/cmp.h +++ b/deps/openssl/config/archs/linux-aarch64/no-asm/include/openssl/cmp.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/cmp.h.in * - * Copyright 2007-2023 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2007-2024 The OpenSSL Project Authors. All Rights Reserved. * Copyright Nokia 2007-2019 * Copyright Siemens AG 2015-2019 * @@ -35,7 +35,9 @@ extern "C" { # endif -# define OSSL_CMP_PVNO 2 +# define OSSL_CMP_PVNO_2 2 +# define OSSL_CMP_PVNO_3 3 +# define OSSL_CMP_PVNO OSSL_CMP_PVNO_2 /* v2 is the default */ /*- * PKIFailureInfo ::= BIT STRING { @@ -137,7 +139,6 @@ extern "C" { # if OSSL_CMP_PKIFAILUREINFO_MAX_BIT_PATTERN > INT_MAX # error CMP_PKIFAILUREINFO_MAX bit pattern does not fit in type int # endif - typedef ASN1_BIT_STRING OSSL_CMP_PKIFAILUREINFO; # define OSSL_CMP_CTX_FAILINFO_badAlg (1 << 0) @@ -203,8 +204,8 @@ typedef ASN1_BIT_STRING OSSL_CMP_PKIFAILUREINFO; # define OSSL_CMP_PKISTATUS_revocationWarning 4 # define OSSL_CMP_PKISTATUS_revocationNotification 5 # define OSSL_CMP_PKISTATUS_keyUpdateWarning 6 - typedef ASN1_INTEGER OSSL_CMP_PKISTATUS; + DECLARE_ASN1_ITEM(OSSL_CMP_PKISTATUS) # define OSSL_CMP_CERTORENCCERT_CERTIFICATE 0 @@ -274,6 +275,46 @@ SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CMP_ITAV, OSSL_CMP_ITAV, OSSL_CMP_ITAV) #define sk_OSSL_CMP_ITAV_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_CMP_ITAV) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_CMP_ITAV_sk_type(sk), ossl_check_OSSL_CMP_ITAV_copyfunc_type(copyfunc), ossl_check_OSSL_CMP_ITAV_freefunc_type(freefunc))) #define sk_OSSL_CMP_ITAV_set_cmp_func(sk, cmp) ((sk_OSSL_CMP_ITAV_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CMP_ITAV_sk_type(sk), ossl_check_OSSL_CMP_ITAV_compfunc_type(cmp))) + +typedef struct ossl_cmp_crlstatus_st OSSL_CMP_CRLSTATUS; +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CMP_CRLSTATUS, OSSL_CMP_CRLSTATUS, OSSL_CMP_CRLSTATUS) +#define sk_OSSL_CMP_CRLSTATUS_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_value(sk, idx) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_value(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk), (idx))) +#define sk_OSSL_CMP_CRLSTATUS_new(cmp) ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_new(ossl_check_OSSL_CMP_CRLSTATUS_compfunc_type(cmp))) +#define sk_OSSL_CMP_CRLSTATUS_new_null() ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_new_null()) +#define sk_OSSL_CMP_CRLSTATUS_new_reserve(cmp, n) ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_CMP_CRLSTATUS_compfunc_type(cmp), (n))) +#define sk_OSSL_CMP_CRLSTATUS_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), (n)) +#define sk_OSSL_CMP_CRLSTATUS_free(sk) OPENSSL_sk_free(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_delete(sk, i) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_delete(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), (i))) +#define sk_OSSL_CMP_CRLSTATUS_delete_ptr(sk, ptr) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr))) +#define sk_OSSL_CMP_CRLSTATUS_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr)) +#define sk_OSSL_CMP_CRLSTATUS_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr)) +#define sk_OSSL_CMP_CRLSTATUS_pop(sk) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_pop(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk))) +#define sk_OSSL_CMP_CRLSTATUS_shift(sk) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_shift(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk))) +#define sk_OSSL_CMP_CRLSTATUS_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk),ossl_check_OSSL_CMP_CRLSTATUS_freefunc_type(freefunc)) +#define sk_OSSL_CMP_CRLSTATUS_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr), (idx)) +#define sk_OSSL_CMP_CRLSTATUS_set(sk, idx, ptr) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_set(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), (idx), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr))) +#define sk_OSSL_CMP_CRLSTATUS_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr)) +#define sk_OSSL_CMP_CRLSTATUS_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr)) +#define sk_OSSL_CMP_CRLSTATUS_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr), pnum) +#define sk_OSSL_CMP_CRLSTATUS_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_dup(sk) ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_dup(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk))) +#define sk_OSSL_CMP_CRLSTATUS_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_copyfunc_type(copyfunc), ossl_check_OSSL_CMP_CRLSTATUS_freefunc_type(freefunc))) +#define sk_OSSL_CMP_CRLSTATUS_set_cmp_func(sk, cmp) ((sk_OSSL_CMP_CRLSTATUS_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_compfunc_type(cmp))) + + +typedef OSSL_CRMF_ATTRIBUTETYPEANDVALUE OSSL_CMP_ATAV; +# define OSSL_CMP_ATAV_free OSSL_CRMF_ATTRIBUTETYPEANDVALUE_free +typedef STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) OSSL_CMP_ATAVS; +DECLARE_ASN1_FUNCTIONS(OSSL_CMP_ATAVS) +# define stack_st_OSSL_CMP_ATAV stack_st_OSSL_CRMF_ATTRIBUTETYPEANDVALUE +# define sk_OSSL_CMP_ATAV_num sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_num +# define sk_OSSL_CMP_ATAV_value sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_value +# define sk_OSSL_CMP_ATAV_push sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_push +# define sk_OSSL_CMP_ATAV_pop_free sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_pop_free + typedef struct ossl_cmp_revrepcontent_st OSSL_CMP_REVREPCONTENT; typedef struct ossl_cmp_pkisi_st OSSL_CMP_PKISI; DECLARE_ASN1_FUNCTIONS(OSSL_CMP_PKISI) @@ -375,21 +416,75 @@ void OSSL_CMP_ITAV_set0(OSSL_CMP_ITAV *itav, ASN1_OBJECT *type, ASN1_TYPE *value); ASN1_OBJECT *OSSL_CMP_ITAV_get0_type(const OSSL_CMP_ITAV *itav); ASN1_TYPE *OSSL_CMP_ITAV_get0_value(const OSSL_CMP_ITAV *itav); -int OSSL_CMP_ITAV_push0_stack_item(STACK_OF(OSSL_CMP_ITAV) **itav_sk_p, +int OSSL_CMP_ITAV_push0_stack_item(STACK_OF(OSSL_CMP_ITAV) **sk_p, OSSL_CMP_ITAV *itav); void OSSL_CMP_ITAV_free(OSSL_CMP_ITAV *itav); + +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new0_certProfile(STACK_OF(ASN1_UTF8STRING) + *certProfile); +int OSSL_CMP_ITAV_get0_certProfile(const OSSL_CMP_ITAV *itav, + STACK_OF(ASN1_UTF8STRING) **out); +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new_caCerts(const STACK_OF(X509) *caCerts); +int OSSL_CMP_ITAV_get0_caCerts(const OSSL_CMP_ITAV *itav, STACK_OF(X509) **out); + +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new_rootCaCert(const X509 *rootCaCert); +int OSSL_CMP_ITAV_get0_rootCaCert(const OSSL_CMP_ITAV *itav, X509 **out); +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new_rootCaKeyUpdate(const X509 *newWithNew, + const X509 *newWithOld, + const X509 *oldWithNew); +int OSSL_CMP_ITAV_get0_rootCaKeyUpdate(const OSSL_CMP_ITAV *itav, + X509 **newWithNew, + X509 **newWithOld, + X509 **oldWithNew); + +OSSL_CMP_CRLSTATUS *OSSL_CMP_CRLSTATUS_create(const X509_CRL *crl, + const X509 *cert, int only_DN); +OSSL_CMP_CRLSTATUS *OSSL_CMP_CRLSTATUS_new1(const DIST_POINT_NAME *dpn, + const GENERAL_NAMES *issuer, + const ASN1_TIME *thisUpdate); +int OSSL_CMP_CRLSTATUS_get0(const OSSL_CMP_CRLSTATUS *crlstatus, + DIST_POINT_NAME **dpn, GENERAL_NAMES **issuer, + ASN1_TIME **thisUpdate); +void OSSL_CMP_CRLSTATUS_free(OSSL_CMP_CRLSTATUS *crlstatus); +OSSL_CMP_ITAV +*OSSL_CMP_ITAV_new0_crlStatusList(STACK_OF(OSSL_CMP_CRLSTATUS) *crlStatusList); +int OSSL_CMP_ITAV_get0_crlStatusList(const OSSL_CMP_ITAV *itav, + STACK_OF(OSSL_CMP_CRLSTATUS) **out); +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new_crls(const X509_CRL *crls); +int OSSL_CMP_ITAV_get0_crls(const OSSL_CMP_ITAV *it, STACK_OF(X509_CRL) **out); +OSSL_CMP_ITAV +*OSSL_CMP_ITAV_new0_certReqTemplate(OSSL_CRMF_CERTTEMPLATE *certTemplate, + OSSL_CMP_ATAVS *keySpec); +int OSSL_CMP_ITAV_get1_certReqTemplate(const OSSL_CMP_ITAV *itav, + OSSL_CRMF_CERTTEMPLATE **certTemplate, + OSSL_CMP_ATAVS **keySpec); + +OSSL_CMP_ATAV *OSSL_CMP_ATAV_create(ASN1_OBJECT *type, ASN1_TYPE *value); +void OSSL_CMP_ATAV_set0(OSSL_CMP_ATAV *itav, ASN1_OBJECT *type, + ASN1_TYPE *value); +ASN1_OBJECT *OSSL_CMP_ATAV_get0_type(const OSSL_CMP_ATAV *itav); +ASN1_TYPE *OSSL_CMP_ATAV_get0_value(const OSSL_CMP_ATAV *itav); +OSSL_CMP_ATAV *OSSL_CMP_ATAV_new_algId(const X509_ALGOR *alg); +X509_ALGOR *OSSL_CMP_ATAV_get0_algId(const OSSL_CMP_ATAV *atav); +OSSL_CMP_ATAV *OSSL_CMP_ATAV_new_rsaKeyLen(int len); +int OSSL_CMP_ATAV_get_rsaKeyLen(const OSSL_CMP_ATAV *atav); +int OSSL_CMP_ATAV_push1(OSSL_CMP_ATAVS **sk_p, const OSSL_CMP_ATAV *atav); + void OSSL_CMP_MSG_free(OSSL_CMP_MSG *msg); /* from cmp_ctx.c */ OSSL_CMP_CTX *OSSL_CMP_CTX_new(OSSL_LIB_CTX *libctx, const char *propq); void OSSL_CMP_CTX_free(OSSL_CMP_CTX *ctx); int OSSL_CMP_CTX_reinit(OSSL_CMP_CTX *ctx); +OSSL_LIB_CTX *OSSL_CMP_CTX_get0_libctx(const OSSL_CMP_CTX *ctx); +const char *OSSL_CMP_CTX_get0_propq(const OSSL_CMP_CTX *ctx); /* CMP general options: */ # define OSSL_CMP_OPT_LOG_VERBOSITY 0 /* CMP transfer options: */ -# define OSSL_CMP_OPT_KEEP_ALIVE 10 -# define OSSL_CMP_OPT_MSG_TIMEOUT 11 +# define OSSL_CMP_OPT_KEEP_ALIVE 10 +# define OSSL_CMP_OPT_MSG_TIMEOUT 11 # define OSSL_CMP_OPT_TOTAL_TIMEOUT 12 +# define OSSL_CMP_OPT_USE_TLS 13 /* CMP request options: */ # define OSSL_CMP_OPT_VALIDITY_DAYS 20 # define OSSL_CMP_OPT_SUBJECTALTNAME_NODEFAULT 21 @@ -407,6 +502,7 @@ int OSSL_CMP_CTX_reinit(OSSL_CMP_CTX *ctx); # define OSSL_CMP_OPT_DIGEST_ALGNID 34 # define OSSL_CMP_OPT_IGNORE_KEYUSAGE 35 # define OSSL_CMP_OPT_PERMIT_TA_IN_EXTRACERTS_FOR_IR 36 +# define OSSL_CMP_OPT_NO_CACHE_EXTRACERTS 37 int OSSL_CMP_CTX_set_option(OSSL_CMP_CTX *ctx, int opt, int val); int OSSL_CMP_CTX_get_option(const OSSL_CMP_CTX *ctx, int opt); /* CMP-specific callback for logging and outputting the error queue: */ @@ -420,9 +516,11 @@ int OSSL_CMP_CTX_set1_server(OSSL_CMP_CTX *ctx, const char *address); int OSSL_CMP_CTX_set_serverPort(OSSL_CMP_CTX *ctx, int port); int OSSL_CMP_CTX_set1_proxy(OSSL_CMP_CTX *ctx, const char *name); int OSSL_CMP_CTX_set1_no_proxy(OSSL_CMP_CTX *ctx, const char *names); +# ifndef OPENSSL_NO_HTTP int OSSL_CMP_CTX_set_http_cb(OSSL_CMP_CTX *ctx, OSSL_HTTP_bio_cb_t cb); int OSSL_CMP_CTX_set_http_cb_arg(OSSL_CMP_CTX *ctx, void *arg); void *OSSL_CMP_CTX_get_http_cb_arg(const OSSL_CMP_CTX *ctx); +# endif typedef OSSL_CMP_MSG *(*OSSL_CMP_transfer_cb_t) (OSSL_CMP_CTX *ctx, const OSSL_CMP_MSG *req); int OSSL_CMP_CTX_set_transfer_cb(OSSL_CMP_CTX *ctx, OSSL_CMP_transfer_cb_t cb); @@ -432,7 +530,9 @@ void *OSSL_CMP_CTX_get_transfer_cb_arg(const OSSL_CMP_CTX *ctx); int OSSL_CMP_CTX_set1_srvCert(OSSL_CMP_CTX *ctx, X509 *cert); int OSSL_CMP_CTX_set1_expected_sender(OSSL_CMP_CTX *ctx, const X509_NAME *name); int OSSL_CMP_CTX_set0_trustedStore(OSSL_CMP_CTX *ctx, X509_STORE *store); +# define OSSL_CMP_CTX_set0_trusted OSSL_CMP_CTX_set0_trustedStore X509_STORE *OSSL_CMP_CTX_get0_trustedStore(const OSSL_CMP_CTX *ctx); +# define OSSL_CMP_CTX_get0_trusted OSSL_CMP_CTX_get0_trustedStore int OSSL_CMP_CTX_set1_untrusted(OSSL_CMP_CTX *ctx, STACK_OF(X509) *certs); STACK_OF(X509) *OSSL_CMP_CTX_get0_untrusted(const OSSL_CMP_CTX *ctx); /* client authentication: */ @@ -448,12 +548,15 @@ int OSSL_CMP_CTX_set1_secretValue(OSSL_CMP_CTX *ctx, int OSSL_CMP_CTX_set1_recipient(OSSL_CMP_CTX *ctx, const X509_NAME *name); int OSSL_CMP_CTX_push0_geninfo_ITAV(OSSL_CMP_CTX *ctx, OSSL_CMP_ITAV *itav); int OSSL_CMP_CTX_reset_geninfo_ITAVs(OSSL_CMP_CTX *ctx); +STACK_OF(OSSL_CMP_ITAV) + *OSSL_CMP_CTX_get0_geninfo_ITAVs(const OSSL_CMP_CTX *ctx); int OSSL_CMP_CTX_set1_extraCertsOut(OSSL_CMP_CTX *ctx, STACK_OF(X509) *extraCertsOut); /* certificate template: */ int OSSL_CMP_CTX_set0_newPkey(OSSL_CMP_CTX *ctx, int priv, EVP_PKEY *pkey); EVP_PKEY *OSSL_CMP_CTX_get0_newPkey(const OSSL_CMP_CTX *ctx, int priv); int OSSL_CMP_CTX_set1_issuer(OSSL_CMP_CTX *ctx, const X509_NAME *name); +int OSSL_CMP_CTX_set1_serialNumber(OSSL_CMP_CTX *ctx, const ASN1_INTEGER *sn); int OSSL_CMP_CTX_set1_subjectName(OSSL_CMP_CTX *ctx, const X509_NAME *name); int OSSL_CMP_CTX_push1_subjectAltName(OSSL_CMP_CTX *ctx, const GENERAL_NAME *name); @@ -477,6 +580,7 @@ int OSSL_CMP_CTX_get_status(const OSSL_CMP_CTX *ctx); OSSL_CMP_PKIFREETEXT *OSSL_CMP_CTX_get0_statusString(const OSSL_CMP_CTX *ctx); int OSSL_CMP_CTX_get_failInfoCode(const OSSL_CMP_CTX *ctx); # define OSSL_CMP_PKISI_BUFLEN 1024 +X509 *OSSL_CMP_CTX_get0_validatedSrvCert(const OSSL_CMP_CTX *ctx); X509 *OSSL_CMP_CTX_get0_newCert(const OSSL_CMP_CTX *ctx); STACK_OF(X509) *OSSL_CMP_CTX_get1_newChain(const OSSL_CMP_CTX *ctx); STACK_OF(X509) *OSSL_CMP_CTX_get1_caPubs(const OSSL_CMP_CTX *ctx); @@ -498,10 +602,13 @@ OSSL_CMP_STATUSINFO_new(int status, int fail_info, const char *text); ASN1_OCTET_STRING *OSSL_CMP_HDR_get0_transactionID(const OSSL_CMP_PKIHEADER *hdr); ASN1_OCTET_STRING *OSSL_CMP_HDR_get0_recipNonce(const OSSL_CMP_PKIHEADER *hdr); +STACK_OF(OSSL_CMP_ITAV) + *OSSL_CMP_HDR_get0_geninfo_ITAVs(const OSSL_CMP_PKIHEADER *hdr); /* from cmp_msg.c */ OSSL_CMP_PKIHEADER *OSSL_CMP_MSG_get0_header(const OSSL_CMP_MSG *msg); int OSSL_CMP_MSG_get_bodytype(const OSSL_CMP_MSG *msg); +X509_PUBKEY *OSSL_CMP_MSG_get0_certreq_publickey(const OSSL_CMP_MSG *msg); int OSSL_CMP_MSG_update_transactionID(OSSL_CMP_CTX *ctx, OSSL_CMP_MSG *msg); int OSSL_CMP_MSG_update_recipNonce(OSSL_CMP_CTX *ctx, OSSL_CMP_MSG *msg); OSSL_CRMF_MSG *OSSL_CMP_CTX_setup_CRM(OSSL_CMP_CTX *ctx, int for_KUR, int rid); @@ -517,8 +624,10 @@ int OSSL_CMP_validate_cert_path(const OSSL_CMP_CTX *ctx, X509_STORE *trusted_store, X509 *cert); /* from cmp_http.c */ +# ifndef OPENSSL_NO_HTTP OSSL_CMP_MSG *OSSL_CMP_MSG_http_perform(OSSL_CMP_CTX *ctx, const OSSL_CMP_MSG *req); +# endif /* from cmp_server.c */ typedef struct ossl_cmp_srv_ctx_st OSSL_CMP_SRV_CTX; @@ -561,6 +670,13 @@ int OSSL_CMP_SRV_CTX_init(OSSL_CMP_SRV_CTX *srv_ctx, void *custom_ctx, OSSL_CMP_SRV_error_cb_t process_error, OSSL_CMP_SRV_certConf_cb_t process_certConf, OSSL_CMP_SRV_pollReq_cb_t process_pollReq); +typedef int (*OSSL_CMP_SRV_delayed_delivery_cb_t)(OSSL_CMP_SRV_CTX *srv_ctx, + const OSSL_CMP_MSG *req); +typedef int (*OSSL_CMP_SRV_clean_transaction_cb_t)(OSSL_CMP_SRV_CTX *srv_ctx, + const ASN1_OCTET_STRING *id); +int OSSL_CMP_SRV_CTX_init_trans(OSSL_CMP_SRV_CTX *srv_ctx, + OSSL_CMP_SRV_delayed_delivery_cb_t delay, + OSSL_CMP_SRV_clean_transaction_cb_t clean); OSSL_CMP_CTX *OSSL_CMP_SRV_CTX_get0_cmp_ctx(const OSSL_CMP_SRV_CTX *srv_ctx); void *OSSL_CMP_SRV_CTX_get0_custom_ctx(const OSSL_CMP_SRV_CTX *srv_ctx); int OSSL_CMP_SRV_CTX_set_send_unprotected_errors(OSSL_CMP_SRV_CTX *srv_ctx, @@ -577,6 +693,8 @@ X509 *OSSL_CMP_exec_certreq(OSSL_CMP_CTX *ctx, int req_type, # define OSSL_CMP_CR 2 # define OSSL_CMP_P10CR 4 # define OSSL_CMP_KUR 7 +# define OSSL_CMP_GENM 21 +# define OSSL_CMP_ERROR 23 # define OSSL_CMP_exec_IR_ses(ctx) \ OSSL_CMP_exec_certreq(ctx, OSSL_CMP_IR, NULL) # define OSSL_CMP_exec_CR_ses(ctx) \ @@ -590,6 +708,18 @@ int OSSL_CMP_try_certreq(OSSL_CMP_CTX *ctx, int req_type, int OSSL_CMP_exec_RR_ses(OSSL_CMP_CTX *ctx); STACK_OF(OSSL_CMP_ITAV) *OSSL_CMP_exec_GENM_ses(OSSL_CMP_CTX *ctx); +/* from cmp_genm.c */ +int OSSL_CMP_get1_caCerts(OSSL_CMP_CTX *ctx, STACK_OF(X509) **out); +int OSSL_CMP_get1_rootCaKeyUpdate(OSSL_CMP_CTX *ctx, + const X509 *oldWithOld, X509 **newWithNew, + X509 **newWithOld, X509 **oldWithNew); +int OSSL_CMP_get1_crlUpdate(OSSL_CMP_CTX *ctx, const X509 *crlcert, + const X509_CRL *last_crl, + X509_CRL **crl); +int OSSL_CMP_get1_certReqTemplate(OSSL_CMP_CTX *ctx, + OSSL_CRMF_CERTTEMPLATE **certTemplate, + OSSL_CMP_ATAVS **keySpec); + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/linux-aarch64/no-asm/include/openssl/cms.h b/deps/openssl/config/archs/linux-aarch64/no-asm/include/openssl/cms.h index 3b453e6a2187a2..63afab563557b0 100644 --- a/deps/openssl/config/archs/linux-aarch64/no-asm/include/openssl/cms.h +++ b/deps/openssl/config/archs/linux-aarch64/no-asm/include/openssl/cms.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/cms.h.in * - * Copyright 2008-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2008-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -31,8 +31,10 @@ extern "C" { # endif +typedef struct CMS_EnvelopedData_st CMS_EnvelopedData; typedef struct CMS_ContentInfo_st CMS_ContentInfo; typedef struct CMS_SignerInfo_st CMS_SignerInfo; +typedef struct CMS_SignedData_st CMS_SignedData; typedef struct CMS_CertificateChoices CMS_CertificateChoices; typedef struct CMS_RevocationInfoChoice_st CMS_RevocationInfoChoice; typedef struct CMS_RecipientInfo_st CMS_RecipientInfo; @@ -147,10 +149,14 @@ SKM_DEFINE_STACK_OF_INTERNAL(CMS_RevocationInfoChoice, CMS_RevocationInfoChoice, #define sk_CMS_RevocationInfoChoice_set_cmp_func(sk, cmp) ((sk_CMS_RevocationInfoChoice_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_CMS_RevocationInfoChoice_sk_type(sk), ossl_check_CMS_RevocationInfoChoice_compfunc_type(cmp))) +DECLARE_ASN1_ITEM(CMS_EnvelopedData) +DECLARE_ASN1_ALLOC_FUNCTIONS(CMS_SignedData) DECLARE_ASN1_FUNCTIONS(CMS_ContentInfo) DECLARE_ASN1_FUNCTIONS(CMS_ReceiptRequest) DECLARE_ASN1_PRINT_FUNCTION(CMS_ContentInfo) +DECLARE_ASN1_DUP_FUNCTION(CMS_EnvelopedData) + CMS_ContentInfo *CMS_ContentInfo_new_ex(OSSL_LIB_CTX *libctx, const char *propq); # define CMS_SIGNERINFO_ISSUER_SERIAL 0 @@ -190,6 +196,7 @@ CMS_ContentInfo *CMS_ContentInfo_new_ex(OSSL_LIB_CTX *libctx, const char *propq) # define CMS_ASCIICRLF 0x80000 # define CMS_CADES 0x100000 # define CMS_USE_ORIGINATOR_KEYID 0x200000 +# define CMS_NO_SIGNING_TIME 0x400000 const ASN1_OBJECT *CMS_get0_type(const CMS_ContentInfo *cms); @@ -217,13 +224,16 @@ int SMIME_write_CMS(BIO *bio, CMS_ContentInfo *cms, BIO *data, int flags); int CMS_final(CMS_ContentInfo *cms, BIO *data, BIO *dcont, unsigned int flags); +int CMS_final_digest(CMS_ContentInfo *cms, + const unsigned char *md, unsigned int mdlen, BIO *dcont, + unsigned int flags); CMS_ContentInfo *CMS_sign(X509 *signcert, EVP_PKEY *pkey, STACK_OF(X509) *certs, BIO *data, unsigned int flags); CMS_ContentInfo *CMS_sign_ex(X509 *signcert, EVP_PKEY *pkey, STACK_OF(X509) *certs, BIO *data, - unsigned int flags, OSSL_LIB_CTX *ctx, + unsigned int flags, OSSL_LIB_CTX *libctx, const char *propq); CMS_ContentInfo *CMS_sign_receipt(CMS_SignerInfo *si, @@ -233,27 +243,26 @@ CMS_ContentInfo *CMS_sign_receipt(CMS_SignerInfo *si, int CMS_data(CMS_ContentInfo *cms, BIO *out, unsigned int flags); CMS_ContentInfo *CMS_data_create(BIO *in, unsigned int flags); CMS_ContentInfo *CMS_data_create_ex(BIO *in, unsigned int flags, - OSSL_LIB_CTX *ctx, const char *propq); + OSSL_LIB_CTX *libctx, const char *propq); int CMS_digest_verify(CMS_ContentInfo *cms, BIO *dcont, BIO *out, unsigned int flags); CMS_ContentInfo *CMS_digest_create(BIO *in, const EVP_MD *md, unsigned int flags); CMS_ContentInfo *CMS_digest_create_ex(BIO *in, const EVP_MD *md, - unsigned int flags, OSSL_LIB_CTX *ctx, + unsigned int flags, OSSL_LIB_CTX *libctx, const char *propq); int CMS_EncryptedData_decrypt(CMS_ContentInfo *cms, const unsigned char *key, size_t keylen, BIO *dcont, BIO *out, unsigned int flags); - CMS_ContentInfo *CMS_EncryptedData_encrypt(BIO *in, const EVP_CIPHER *cipher, const unsigned char *key, size_t keylen, unsigned int flags); CMS_ContentInfo *CMS_EncryptedData_encrypt_ex(BIO *in, const EVP_CIPHER *cipher, const unsigned char *key, size_t keylen, unsigned int flags, - OSSL_LIB_CTX *ctx, + OSSL_LIB_CTX *libctx, const char *propq); int CMS_EncryptedData_set1_key(CMS_ContentInfo *cms, const EVP_CIPHER *ciph, @@ -272,7 +281,7 @@ CMS_ContentInfo *CMS_encrypt(STACK_OF(X509) *certs, BIO *in, const EVP_CIPHER *cipher, unsigned int flags); CMS_ContentInfo *CMS_encrypt_ex(STACK_OF(X509) *certs, BIO *in, const EVP_CIPHER *cipher, unsigned int flags, - OSSL_LIB_CTX *ctx, const char *propq); + OSSL_LIB_CTX *libctx, const char *propq); int CMS_decrypt(CMS_ContentInfo *cms, EVP_PKEY *pkey, X509 *cert, BIO *dcont, BIO *out, unsigned int flags); @@ -291,12 +300,16 @@ int CMS_RecipientInfo_type(CMS_RecipientInfo *ri); EVP_PKEY_CTX *CMS_RecipientInfo_get0_pkey_ctx(CMS_RecipientInfo *ri); CMS_ContentInfo *CMS_AuthEnvelopedData_create(const EVP_CIPHER *cipher); CMS_ContentInfo * -CMS_AuthEnvelopedData_create_ex(const EVP_CIPHER *cipher, OSSL_LIB_CTX *ctx, +CMS_AuthEnvelopedData_create_ex(const EVP_CIPHER *cipher, OSSL_LIB_CTX *libctx, const char *propq); CMS_ContentInfo *CMS_EnvelopedData_create(const EVP_CIPHER *cipher); CMS_ContentInfo *CMS_EnvelopedData_create_ex(const EVP_CIPHER *cipher, - OSSL_LIB_CTX *ctx, + OSSL_LIB_CTX *libctx, const char *propq); +BIO *CMS_EnvelopedData_decrypt(CMS_EnvelopedData *env, BIO *detached_data, + EVP_PKEY *pkey, X509 *cert, + ASN1_OCTET_STRING *secret, unsigned int flags, + OSSL_LIB_CTX *libctx, const char *propq); CMS_RecipientInfo *CMS_add1_recipient_cert(CMS_ContentInfo *cms, X509 *recip, unsigned int flags); @@ -385,6 +398,11 @@ ASN1_OCTET_STRING *CMS_SignerInfo_get0_signature(CMS_SignerInfo *si); int CMS_SignerInfo_sign(CMS_SignerInfo *si); int CMS_SignerInfo_verify(CMS_SignerInfo *si); int CMS_SignerInfo_verify_content(CMS_SignerInfo *si, BIO *chain); +BIO *CMS_SignedData_verify(CMS_SignedData *sd, BIO *detached_data, + STACK_OF(X509) *scerts, X509_STORE *store, + STACK_OF(X509) *extra, STACK_OF(X509_CRL) *crls, + unsigned int flags, + OSSL_LIB_CTX *libctx, const char *propq); int CMS_add_smimecap(CMS_SignerInfo *si, STACK_OF(X509_ALGOR) *algs); int CMS_add_simple_smimecap(STACK_OF(X509_ALGOR) **algs, @@ -441,7 +459,7 @@ CMS_ReceiptRequest *CMS_ReceiptRequest_create0_ex( unsigned char *id, int idlen, int allorfirst, STACK_OF(GENERAL_NAMES) *receiptList, STACK_OF(GENERAL_NAMES) *receiptsTo, - OSSL_LIB_CTX *ctx); + OSSL_LIB_CTX *libctx); int CMS_add1_ReceiptRequest(CMS_SignerInfo *si, CMS_ReceiptRequest *rr); void CMS_ReceiptRequest_get0_values(CMS_ReceiptRequest *rr, diff --git a/deps/openssl/config/archs/linux-aarch64/no-asm/include/openssl/comp.h b/deps/openssl/config/archs/linux-aarch64/no-asm/include/openssl/comp.h new file mode 100644 index 00000000000000..90e39511fe8d28 --- /dev/null +++ b/deps/openssl/config/archs/linux-aarch64/no-asm/include/openssl/comp.h @@ -0,0 +1,98 @@ +/* + * Copyright 2015-2024 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + + +#ifndef OPENSSL_COMP_H +# define OPENSSL_COMP_H +# pragma once + +# include +# ifndef OPENSSL_NO_DEPRECATED_3_0 +# define HEADER_COMP_H +# endif + +# include + +# include +# include +# ifdef __cplusplus +extern "C" { +# endif + + + +# ifndef OPENSSL_NO_COMP + +COMP_CTX *COMP_CTX_new(COMP_METHOD *meth); +const COMP_METHOD *COMP_CTX_get_method(const COMP_CTX *ctx); +int COMP_CTX_get_type(const COMP_CTX* comp); +int COMP_get_type(const COMP_METHOD *meth); +const char *COMP_get_name(const COMP_METHOD *meth); +void COMP_CTX_free(COMP_CTX *ctx); + +int COMP_compress_block(COMP_CTX *ctx, unsigned char *out, int olen, + unsigned char *in, int ilen); +int COMP_expand_block(COMP_CTX *ctx, unsigned char *out, int olen, + unsigned char *in, int ilen); + +COMP_METHOD *COMP_zlib(void); +COMP_METHOD *COMP_zlib_oneshot(void); +COMP_METHOD *COMP_brotli(void); +COMP_METHOD *COMP_brotli_oneshot(void); +COMP_METHOD *COMP_zstd(void); +COMP_METHOD *COMP_zstd_oneshot(void); + +# ifndef OPENSSL_NO_DEPRECATED_1_1_0 +# define COMP_zlib_cleanup() while(0) continue +# endif + +# ifdef OPENSSL_BIO_H +const BIO_METHOD *BIO_f_zlib(void); +const BIO_METHOD *BIO_f_brotli(void); +const BIO_METHOD *BIO_f_zstd(void); +# endif + +# endif + +typedef struct ssl_comp_st SSL_COMP; + +SKM_DEFINE_STACK_OF_INTERNAL(SSL_COMP, SSL_COMP, SSL_COMP) +#define sk_SSL_COMP_num(sk) OPENSSL_sk_num(ossl_check_const_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_value(sk, idx) ((SSL_COMP *)OPENSSL_sk_value(ossl_check_const_SSL_COMP_sk_type(sk), (idx))) +#define sk_SSL_COMP_new(cmp) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new(ossl_check_SSL_COMP_compfunc_type(cmp))) +#define sk_SSL_COMP_new_null() ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new_null()) +#define sk_SSL_COMP_new_reserve(cmp, n) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new_reserve(ossl_check_SSL_COMP_compfunc_type(cmp), (n))) +#define sk_SSL_COMP_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_SSL_COMP_sk_type(sk), (n)) +#define sk_SSL_COMP_free(sk) OPENSSL_sk_free(ossl_check_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_zero(sk) OPENSSL_sk_zero(ossl_check_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_delete(sk, i) ((SSL_COMP *)OPENSSL_sk_delete(ossl_check_SSL_COMP_sk_type(sk), (i))) +#define sk_SSL_COMP_delete_ptr(sk, ptr) ((SSL_COMP *)OPENSSL_sk_delete_ptr(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr))) +#define sk_SSL_COMP_push(sk, ptr) OPENSSL_sk_push(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) +#define sk_SSL_COMP_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) +#define sk_SSL_COMP_pop(sk) ((SSL_COMP *)OPENSSL_sk_pop(ossl_check_SSL_COMP_sk_type(sk))) +#define sk_SSL_COMP_shift(sk) ((SSL_COMP *)OPENSSL_sk_shift(ossl_check_SSL_COMP_sk_type(sk))) +#define sk_SSL_COMP_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_SSL_COMP_sk_type(sk),ossl_check_SSL_COMP_freefunc_type(freefunc)) +#define sk_SSL_COMP_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr), (idx)) +#define sk_SSL_COMP_set(sk, idx, ptr) ((SSL_COMP *)OPENSSL_sk_set(ossl_check_SSL_COMP_sk_type(sk), (idx), ossl_check_SSL_COMP_type(ptr))) +#define sk_SSL_COMP_find(sk, ptr) OPENSSL_sk_find(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) +#define sk_SSL_COMP_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) +#define sk_SSL_COMP_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr), pnum) +#define sk_SSL_COMP_sort(sk) OPENSSL_sk_sort(ossl_check_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_dup(sk) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_dup(ossl_check_const_SSL_COMP_sk_type(sk))) +#define sk_SSL_COMP_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_deep_copy(ossl_check_const_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_copyfunc_type(copyfunc), ossl_check_SSL_COMP_freefunc_type(freefunc))) +#define sk_SSL_COMP_set_cmp_func(sk, cmp) ((sk_SSL_COMP_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_compfunc_type(cmp))) + + + +# ifdef __cplusplus +} +# endif +#endif diff --git a/deps/openssl/config/archs/linux-aarch64/no-asm/include/openssl/conf.h b/deps/openssl/config/archs/linux-aarch64/no-asm/include/openssl/conf.h index 44989929f6c84a..38576290bf641b 100644 --- a/deps/openssl/config/archs/linux-aarch64/no-asm/include/openssl/conf.h +++ b/deps/openssl/config/archs/linux-aarch64/no-asm/include/openssl/conf.h @@ -27,6 +27,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -65,7 +68,7 @@ SKM_DEFINE_STACK_OF_INTERNAL(CONF_VALUE, CONF_VALUE, CONF_VALUE) #define sk_CONF_VALUE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(CONF_VALUE) *)OPENSSL_sk_deep_copy(ossl_check_const_CONF_VALUE_sk_type(sk), ossl_check_CONF_VALUE_copyfunc_type(copyfunc), ossl_check_CONF_VALUE_freefunc_type(freefunc))) #define sk_CONF_VALUE_set_cmp_func(sk, cmp) ((sk_CONF_VALUE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_CONF_VALUE_sk_type(sk), ossl_check_CONF_VALUE_compfunc_type(cmp))) DEFINE_LHASH_OF_INTERNAL(CONF_VALUE); -#define lh_CONF_VALUE_new(hfn, cmp) ((LHASH_OF(CONF_VALUE) *)OPENSSL_LH_new(ossl_check_CONF_VALUE_lh_hashfunc_type(hfn), ossl_check_CONF_VALUE_lh_compfunc_type(cmp))) +#define lh_CONF_VALUE_new(hfn, cmp) ((LHASH_OF(CONF_VALUE) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new(ossl_check_CONF_VALUE_lh_hashfunc_type(hfn), ossl_check_CONF_VALUE_lh_compfunc_type(cmp)), lh_CONF_VALUE_hash_thunk, lh_CONF_VALUE_comp_thunk, lh_CONF_VALUE_doall_thunk, lh_CONF_VALUE_doall_arg_thunk)) #define lh_CONF_VALUE_free(lh) OPENSSL_LH_free(ossl_check_CONF_VALUE_lh_type(lh)) #define lh_CONF_VALUE_flush(lh) OPENSSL_LH_flush(ossl_check_CONF_VALUE_lh_type(lh)) #define lh_CONF_VALUE_insert(lh, ptr) ((CONF_VALUE *)OPENSSL_LH_insert(ossl_check_CONF_VALUE_lh_type(lh), ossl_check_CONF_VALUE_lh_plain_type(ptr))) diff --git a/deps/openssl/config/archs/linux-aarch64/no-asm/include/openssl/configuration.h b/deps/openssl/config/archs/linux-aarch64/no-asm/include/openssl/configuration.h index 51a2847855c8c9..8fb2b09777dc2a 100644 --- a/deps/openssl/config/archs/linux-aarch64/no-asm/include/openssl/configuration.h +++ b/deps/openssl/config/archs/linux-aarch64/no-asm/include/openssl/configuration.h @@ -27,7 +27,7 @@ extern "C" { * OpenSSL was configured with the following options: */ -# define OPENSSL_CONFIGURED_API 30000 +# define OPENSSL_CONFIGURED_API 30500 # ifndef OPENSSL_RAND_SEED_OS # define OPENSSL_RAND_SEED_OS # endif @@ -43,6 +43,12 @@ extern "C" { # ifndef OPENSSL_NO_ASM # define OPENSSL_NO_ASM # endif +# ifndef OPENSSL_NO_BROTLI +# define OPENSSL_NO_BROTLI +# endif +# ifndef OPENSSL_NO_BROTLI_DYNAMIC +# define OPENSSL_NO_BROTLI_DYNAMIC +# endif # ifndef OPENSSL_NO_COMP # define OPENSSL_NO_COMP # endif @@ -52,6 +58,9 @@ extern "C" { # ifndef OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE # define OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE # endif +# ifndef OPENSSL_NO_DEMOS +# define OPENSSL_NO_DEMOS +# endif # ifndef OPENSSL_NO_DEVCRYPTOENG # define OPENSSL_NO_DEVCRYPTOENG # endif @@ -64,12 +73,24 @@ extern "C" { # ifndef OPENSSL_NO_EXTERNAL_TESTS # define OPENSSL_NO_EXTERNAL_TESTS # endif +# ifndef OPENSSL_NO_FIPS_JITTER +# define OPENSSL_NO_FIPS_JITTER +# endif # ifndef OPENSSL_NO_FUZZ_AFL # define OPENSSL_NO_FUZZ_AFL # endif # ifndef OPENSSL_NO_FUZZ_LIBFUZZER # define OPENSSL_NO_FUZZ_LIBFUZZER # endif +# ifndef OPENSSL_NO_H3DEMO +# define OPENSSL_NO_H3DEMO +# endif +# ifndef OPENSSL_NO_HQINTEROP +# define OPENSSL_NO_HQINTEROP +# endif +# ifndef OPENSSL_NO_JITTER +# define OPENSSL_NO_JITTER +# endif # ifndef OPENSSL_NO_KTLS # define OPENSSL_NO_KTLS # endif @@ -82,6 +103,9 @@ extern "C" { # ifndef OPENSSL_NO_MSAN # define OPENSSL_NO_MSAN # endif +# ifndef OPENSSL_NO_PIE +# define OPENSSL_NO_PIE +# endif # ifndef OPENSSL_NO_RC5 # define OPENSSL_NO_RC5 # endif @@ -94,6 +118,12 @@ extern "C" { # ifndef OPENSSL_NO_SSL3_METHOD # define OPENSSL_NO_SSL3_METHOD # endif +# ifndef OPENSSL_NO_SSLKEYLOG +# define OPENSSL_NO_SSLKEYLOG +# endif +# ifndef OPENSSL_NO_TFO +# define OPENSSL_NO_TFO +# endif # ifndef OPENSSL_NO_TRACE # define OPENSSL_NO_TRACE # endif @@ -109,6 +139,21 @@ extern "C" { # ifndef OPENSSL_NO_WEAK_SSL_CIPHERS # define OPENSSL_NO_WEAK_SSL_CIPHERS # endif +# ifndef OPENSSL_NO_WINSTORE +# define OPENSSL_NO_WINSTORE +# endif +# ifndef OPENSSL_NO_ZLIB +# define OPENSSL_NO_ZLIB +# endif +# ifndef OPENSSL_NO_ZLIB_DYNAMIC +# define OPENSSL_NO_ZLIB_DYNAMIC +# endif +# ifndef OPENSSL_NO_ZSTD +# define OPENSSL_NO_ZSTD +# endif +# ifndef OPENSSL_NO_ZSTD_DYNAMIC +# define OPENSSL_NO_ZSTD_DYNAMIC +# endif # ifndef OPENSSL_NO_DYNAMIC_ENGINE # define OPENSSL_NO_DYNAMIC_ENGINE # endif @@ -130,6 +175,12 @@ extern "C" { # define RC4_INT unsigned char +# if defined(OPENSSL_NO_COMP) || (defined(OPENSSL_NO_BROTLI) && defined(OPENSSL_NO_ZSTD) && defined(OPENSSL_NO_ZLIB)) +# define OPENSSL_NO_COMP_ALG +# else +# undef OPENSSL_NO_COMP_ALG +# endif + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/linux-aarch64/no-asm/include/openssl/core_names.h b/deps/openssl/config/archs/linux-aarch64/no-asm/include/openssl/core_names.h new file mode 100644 index 00000000000000..e93e79a52bc910 --- /dev/null +++ b/deps/openssl/config/archs/linux-aarch64/no-asm/include/openssl/core_names.h @@ -0,0 +1,575 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from include/openssl/core_names.h.in + * + * Copyright 2019-2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + +#ifndef OPENSSL_CORE_NAMES_H +# define OPENSSL_CORE_NAMES_H +# pragma once + +# ifdef __cplusplus +extern "C" { +# endif + +/* OSSL_CIPHER_PARAM_CTS_MODE Values */ +# define OSSL_CIPHER_CTS_MODE_CS1 "CS1" +# define OSSL_CIPHER_CTS_MODE_CS2 "CS2" +# define OSSL_CIPHER_CTS_MODE_CS3 "CS3" + +/* Known CIPHER names (not a complete list) */ +# define OSSL_CIPHER_NAME_AES_128_GCM_SIV "AES-128-GCM-SIV" +# define OSSL_CIPHER_NAME_AES_192_GCM_SIV "AES-192-GCM-SIV" +# define OSSL_CIPHER_NAME_AES_256_GCM_SIV "AES-256-GCM-SIV" + +/* Known DIGEST names (not a complete list) */ +# define OSSL_DIGEST_NAME_MD5 "MD5" +# define OSSL_DIGEST_NAME_MD5_SHA1 "MD5-SHA1" +# define OSSL_DIGEST_NAME_SHA1 "SHA1" +# define OSSL_DIGEST_NAME_SHA2_224 "SHA2-224" +# define OSSL_DIGEST_NAME_SHA2_256 "SHA2-256" +# define OSSL_DIGEST_NAME_SHA2_256_192 "SHA2-256/192" +# define OSSL_DIGEST_NAME_SHA2_384 "SHA2-384" +# define OSSL_DIGEST_NAME_SHA2_512 "SHA2-512" +# define OSSL_DIGEST_NAME_SHA2_512_224 "SHA2-512/224" +# define OSSL_DIGEST_NAME_SHA2_512_256 "SHA2-512/256" +# define OSSL_DIGEST_NAME_MD2 "MD2" +# define OSSL_DIGEST_NAME_MD4 "MD4" +# define OSSL_DIGEST_NAME_MDC2 "MDC2" +# define OSSL_DIGEST_NAME_RIPEMD160 "RIPEMD160" +# define OSSL_DIGEST_NAME_SHA3_224 "SHA3-224" +# define OSSL_DIGEST_NAME_SHA3_256 "SHA3-256" +# define OSSL_DIGEST_NAME_SHA3_384 "SHA3-384" +# define OSSL_DIGEST_NAME_SHA3_512 "SHA3-512" +# define OSSL_DIGEST_NAME_KECCAK_KMAC128 "KECCAK-KMAC-128" +# define OSSL_DIGEST_NAME_KECCAK_KMAC256 "KECCAK-KMAC-256" +# define OSSL_DIGEST_NAME_SM3 "SM3" + +/* Known MAC names */ +# define OSSL_MAC_NAME_BLAKE2BMAC "BLAKE2BMAC" +# define OSSL_MAC_NAME_BLAKE2SMAC "BLAKE2SMAC" +# define OSSL_MAC_NAME_CMAC "CMAC" +# define OSSL_MAC_NAME_GMAC "GMAC" +# define OSSL_MAC_NAME_HMAC "HMAC" +# define OSSL_MAC_NAME_KMAC128 "KMAC128" +# define OSSL_MAC_NAME_KMAC256 "KMAC256" +# define OSSL_MAC_NAME_POLY1305 "POLY1305" +# define OSSL_MAC_NAME_SIPHASH "SIPHASH" + +/* Known KDF names */ +# define OSSL_KDF_NAME_HKDF "HKDF" +# define OSSL_KDF_NAME_TLS1_3_KDF "TLS13-KDF" +# define OSSL_KDF_NAME_PBKDF1 "PBKDF1" +# define OSSL_KDF_NAME_PBKDF2 "PBKDF2" +# define OSSL_KDF_NAME_SCRYPT "SCRYPT" +# define OSSL_KDF_NAME_SSHKDF "SSHKDF" +# define OSSL_KDF_NAME_SSKDF "SSKDF" +# define OSSL_KDF_NAME_TLS1_PRF "TLS1-PRF" +# define OSSL_KDF_NAME_X942KDF_ASN1 "X942KDF-ASN1" +# define OSSL_KDF_NAME_X942KDF_CONCAT "X942KDF-CONCAT" +# define OSSL_KDF_NAME_X963KDF "X963KDF" +# define OSSL_KDF_NAME_KBKDF "KBKDF" +# define OSSL_KDF_NAME_KRB5KDF "KRB5KDF" +# define OSSL_KDF_NAME_HMACDRBGKDF "HMAC-DRBG-KDF" + +/* RSA padding modes */ +# define OSSL_PKEY_RSA_PAD_MODE_NONE "none" +# define OSSL_PKEY_RSA_PAD_MODE_PKCSV15 "pkcs1" +# define OSSL_PKEY_RSA_PAD_MODE_OAEP "oaep" +# define OSSL_PKEY_RSA_PAD_MODE_X931 "x931" +# define OSSL_PKEY_RSA_PAD_MODE_PSS "pss" + +/* RSA pss padding salt length */ +# define OSSL_PKEY_RSA_PSS_SALT_LEN_DIGEST "digest" +# define OSSL_PKEY_RSA_PSS_SALT_LEN_MAX "max" +# define OSSL_PKEY_RSA_PSS_SALT_LEN_AUTO "auto" +# define OSSL_PKEY_RSA_PSS_SALT_LEN_AUTO_DIGEST_MAX "auto-digestmax" + +/* OSSL_PKEY_PARAM_EC_ENCODING values */ +# define OSSL_PKEY_EC_ENCODING_EXPLICIT "explicit" +# define OSSL_PKEY_EC_ENCODING_GROUP "named_curve" + +# define OSSL_PKEY_EC_POINT_CONVERSION_FORMAT_UNCOMPRESSED "uncompressed" +# define OSSL_PKEY_EC_POINT_CONVERSION_FORMAT_COMPRESSED "compressed" +# define OSSL_PKEY_EC_POINT_CONVERSION_FORMAT_HYBRID "hybrid" + +# define OSSL_PKEY_EC_GROUP_CHECK_DEFAULT "default" +# define OSSL_PKEY_EC_GROUP_CHECK_NAMED "named" +# define OSSL_PKEY_EC_GROUP_CHECK_NAMED_NIST "named-nist" + +/* PROV_SKEY well known key types */ +# define OSSL_SKEY_TYPE_GENERIC "GENERIC-SECRET" +# define OSSL_SKEY_TYPE_AES "AES" + +/* OSSL_KEM_PARAM_OPERATION values */ +#define OSSL_KEM_PARAM_OPERATION_RSASVE "RSASVE" +#define OSSL_KEM_PARAM_OPERATION_DHKEM "DHKEM" + +/* Provider configuration variables */ +#define OSSL_PKEY_RETAIN_SEED "pkey_retain_seed" + +/* Parameter name definitions - generated by util/perl/OpenSSL/paramnames.pm */ +# define OSSL_ALG_PARAM_ALGORITHM_ID "algorithm-id" +# define OSSL_ALG_PARAM_ALGORITHM_ID_PARAMS "algorithm-id-params" +# define OSSL_ALG_PARAM_CIPHER "cipher" +# define OSSL_ALG_PARAM_DIGEST "digest" +# define OSSL_ALG_PARAM_ENGINE "engine" +# define OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR "fips-indicator" +# define OSSL_ALG_PARAM_MAC "mac" +# define OSSL_ALG_PARAM_PROPERTIES "properties" +# define OSSL_ASYM_CIPHER_PARAM_DIGEST OSSL_PKEY_PARAM_DIGEST +# define OSSL_ASYM_CIPHER_PARAM_ENGINE OSSL_PKEY_PARAM_ENGINE +# define OSSL_ASYM_CIPHER_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_ASYM_CIPHER_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_ASYM_CIPHER_PARAM_FIPS_RSA_PKCS15_PAD_DISABLED OSSL_PROV_PARAM_RSA_PKCS15_PAD_DISABLED +# define OSSL_ASYM_CIPHER_PARAM_IMPLICIT_REJECTION "implicit-rejection" +# define OSSL_ASYM_CIPHER_PARAM_MGF1_DIGEST OSSL_PKEY_PARAM_MGF1_DIGEST +# define OSSL_ASYM_CIPHER_PARAM_MGF1_DIGEST_PROPS OSSL_PKEY_PARAM_MGF1_PROPERTIES +# define OSSL_ASYM_CIPHER_PARAM_OAEP_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_ASYM_CIPHER_PARAM_OAEP_DIGEST_PROPS "digest-props" +# define OSSL_ASYM_CIPHER_PARAM_OAEP_LABEL "oaep-label" +# define OSSL_ASYM_CIPHER_PARAM_PAD_MODE OSSL_PKEY_PARAM_PAD_MODE +# define OSSL_ASYM_CIPHER_PARAM_PROPERTIES OSSL_PKEY_PARAM_PROPERTIES +# define OSSL_ASYM_CIPHER_PARAM_TLS_CLIENT_VERSION "tls-client-version" +# define OSSL_ASYM_CIPHER_PARAM_TLS_NEGOTIATED_VERSION "tls-negotiated-version" +# define OSSL_CAPABILITY_TLS_GROUP_ALG "tls-group-alg" +# define OSSL_CAPABILITY_TLS_GROUP_ID "tls-group-id" +# define OSSL_CAPABILITY_TLS_GROUP_IS_KEM "tls-group-is-kem" +# define OSSL_CAPABILITY_TLS_GROUP_MAX_DTLS "tls-max-dtls" +# define OSSL_CAPABILITY_TLS_GROUP_MAX_TLS "tls-max-tls" +# define OSSL_CAPABILITY_TLS_GROUP_MIN_DTLS "tls-min-dtls" +# define OSSL_CAPABILITY_TLS_GROUP_MIN_TLS "tls-min-tls" +# define OSSL_CAPABILITY_TLS_GROUP_NAME "tls-group-name" +# define OSSL_CAPABILITY_TLS_GROUP_NAME_INTERNAL "tls-group-name-internal" +# define OSSL_CAPABILITY_TLS_GROUP_SECURITY_BITS "tls-group-sec-bits" +# define OSSL_CAPABILITY_TLS_SIGALG_CODE_POINT "tls-sigalg-code-point" +# define OSSL_CAPABILITY_TLS_SIGALG_HASH_NAME "tls-sigalg-hash-name" +# define OSSL_CAPABILITY_TLS_SIGALG_HASH_OID "tls-sigalg-hash-oid" +# define OSSL_CAPABILITY_TLS_SIGALG_IANA_NAME "tls-sigalg-iana-name" +# define OSSL_CAPABILITY_TLS_SIGALG_KEYTYPE "tls-sigalg-keytype" +# define OSSL_CAPABILITY_TLS_SIGALG_KEYTYPE_OID "tls-sigalg-keytype-oid" +# define OSSL_CAPABILITY_TLS_SIGALG_MAX_DTLS "tls-max-dtls" +# define OSSL_CAPABILITY_TLS_SIGALG_MAX_TLS "tls-max-tls" +# define OSSL_CAPABILITY_TLS_SIGALG_MIN_DTLS "tls-min-dtls" +# define OSSL_CAPABILITY_TLS_SIGALG_MIN_TLS "tls-min-tls" +# define OSSL_CAPABILITY_TLS_SIGALG_NAME "tls-sigalg-name" +# define OSSL_CAPABILITY_TLS_SIGALG_OID "tls-sigalg-oid" +# define OSSL_CAPABILITY_TLS_SIGALG_SECURITY_BITS "tls-sigalg-sec-bits" +# define OSSL_CAPABILITY_TLS_SIGALG_SIG_NAME "tls-sigalg-sig-name" +# define OSSL_CAPABILITY_TLS_SIGALG_SIG_OID "tls-sigalg-sig-oid" +# define OSSL_CIPHER_PARAM_AEAD "aead" +# define OSSL_CIPHER_PARAM_AEAD_IVLEN OSSL_CIPHER_PARAM_IVLEN +# define OSSL_CIPHER_PARAM_AEAD_IV_GENERATED "iv-generated" +# define OSSL_CIPHER_PARAM_AEAD_MAC_KEY "mackey" +# define OSSL_CIPHER_PARAM_AEAD_TAG "tag" +# define OSSL_CIPHER_PARAM_AEAD_TAGLEN "taglen" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_AAD "tlsaad" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_AAD_PAD "tlsaadpad" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_GET_IV_GEN "tlsivgen" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_IV_FIXED "tlsivfixed" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_SET_IV_INV "tlsivinv" +# define OSSL_CIPHER_PARAM_ALGORITHM_ID OSSL_ALG_PARAM_ALGORITHM_ID +# define OSSL_CIPHER_PARAM_ALGORITHM_ID_PARAMS OSSL_ALG_PARAM_ALGORITHM_ID_PARAMS +# define OSSL_CIPHER_PARAM_ALGORITHM_ID_PARAMS_OLD "alg_id_param" +# define OSSL_CIPHER_PARAM_BLOCK_SIZE "blocksize" +# define OSSL_CIPHER_PARAM_CTS "cts" +# define OSSL_CIPHER_PARAM_CTS_MODE "cts_mode" +# define OSSL_CIPHER_PARAM_CUSTOM_IV "custom-iv" +# define OSSL_CIPHER_PARAM_DECRYPT_ONLY "decrypt-only" +# define OSSL_CIPHER_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_CIPHER_PARAM_FIPS_ENCRYPT_CHECK "encrypt-check" +# define OSSL_CIPHER_PARAM_HAS_RAND_KEY "has-randkey" +# define OSSL_CIPHER_PARAM_IV "iv" +# define OSSL_CIPHER_PARAM_IVLEN "ivlen" +# define OSSL_CIPHER_PARAM_KEYLEN "keylen" +# define OSSL_CIPHER_PARAM_MODE "mode" +# define OSSL_CIPHER_PARAM_NUM "num" +# define OSSL_CIPHER_PARAM_PADDING "padding" +# define OSSL_CIPHER_PARAM_PIPELINE_AEAD_TAG "pipeline-tag" +# define OSSL_CIPHER_PARAM_RANDOM_KEY "randkey" +# define OSSL_CIPHER_PARAM_RC2_KEYBITS "keybits" +# define OSSL_CIPHER_PARAM_ROUNDS "rounds" +# define OSSL_CIPHER_PARAM_SPEED "speed" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK "tls-multi" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD "tls1multi_aad" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD_PACKLEN "tls1multi_aadpacklen" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC "tls1multi_enc" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_IN "tls1multi_encin" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_LEN "tls1multi_enclen" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_INTERLEAVE "tls1multi_interleave" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_BUFSIZE "tls1multi_maxbufsz" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_SEND_FRAGMENT "tls1multi_maxsndfrag" +# define OSSL_CIPHER_PARAM_TLS_MAC "tls-mac" +# define OSSL_CIPHER_PARAM_TLS_MAC_SIZE "tls-mac-size" +# define OSSL_CIPHER_PARAM_TLS_VERSION "tls-version" +# define OSSL_CIPHER_PARAM_UPDATED_IV "updated-iv" +# define OSSL_CIPHER_PARAM_USE_BITS "use-bits" +# define OSSL_CIPHER_PARAM_XTS_STANDARD "xts_standard" +# define OSSL_DECODER_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_DIGEST_PARAM_ALGID_ABSENT "algid-absent" +# define OSSL_DIGEST_PARAM_BLOCK_SIZE "blocksize" +# define OSSL_DIGEST_PARAM_MICALG "micalg" +# define OSSL_DIGEST_PARAM_PAD_TYPE "pad-type" +# define OSSL_DIGEST_PARAM_SIZE "size" +# define OSSL_DIGEST_PARAM_SSL3_MS "ssl3-ms" +# define OSSL_DIGEST_PARAM_XOF "xof" +# define OSSL_DIGEST_PARAM_XOFLEN "xoflen" +# define OSSL_DRBG_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_DRBG_PARAM_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_DRBG_PARAM_ENTROPY_REQUIRED "entropy_required" +# define OSSL_DRBG_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_DRBG_PARAM_FIPS_DIGEST_CHECK OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK +# define OSSL_DRBG_PARAM_MAC OSSL_ALG_PARAM_MAC +# define OSSL_DRBG_PARAM_MAX_ADINLEN "max_adinlen" +# define OSSL_DRBG_PARAM_MAX_ENTROPYLEN "max_entropylen" +# define OSSL_DRBG_PARAM_MAX_LENGTH "maxium_length" +# define OSSL_DRBG_PARAM_MAX_NONCELEN "max_noncelen" +# define OSSL_DRBG_PARAM_MAX_PERSLEN "max_perslen" +# define OSSL_DRBG_PARAM_MIN_ENTROPYLEN "min_entropylen" +# define OSSL_DRBG_PARAM_MIN_LENGTH "minium_length" +# define OSSL_DRBG_PARAM_MIN_NONCELEN "min_noncelen" +# define OSSL_DRBG_PARAM_PREDICTION_RESISTANCE "prediction_resistance" +# define OSSL_DRBG_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_DRBG_PARAM_RANDOM_DATA "random_data" +# define OSSL_DRBG_PARAM_RESEED_COUNTER "reseed_counter" +# define OSSL_DRBG_PARAM_RESEED_REQUESTS "reseed_requests" +# define OSSL_DRBG_PARAM_RESEED_TIME "reseed_time" +# define OSSL_DRBG_PARAM_RESEED_TIME_INTERVAL "reseed_time_interval" +# define OSSL_DRBG_PARAM_SIZE "size" +# define OSSL_DRBG_PARAM_USE_DF "use_derivation_function" +# define OSSL_ENCODER_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_ENCODER_PARAM_ENCRYPT_LEVEL "encrypt-level" +# define OSSL_ENCODER_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_ENCODER_PARAM_SAVE_PARAMETERS "save-parameters" +# define OSSL_EXCHANGE_PARAM_EC_ECDH_COFACTOR_MODE "ecdh-cofactor-mode" +# define OSSL_EXCHANGE_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_EXCHANGE_PARAM_FIPS_DIGEST_CHECK OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK +# define OSSL_EXCHANGE_PARAM_FIPS_ECDH_COFACTOR_CHECK OSSL_PROV_PARAM_ECDH_COFACTOR_CHECK +# define OSSL_EXCHANGE_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_EXCHANGE_PARAM_KDF_DIGEST "kdf-digest" +# define OSSL_EXCHANGE_PARAM_KDF_DIGEST_PROPS "kdf-digest-props" +# define OSSL_EXCHANGE_PARAM_KDF_OUTLEN "kdf-outlen" +# define OSSL_EXCHANGE_PARAM_KDF_TYPE "kdf-type" +# define OSSL_EXCHANGE_PARAM_KDF_UKM "kdf-ukm" +# define OSSL_EXCHANGE_PARAM_PAD "pad" +# define OSSL_GEN_PARAM_ITERATION "iteration" +# define OSSL_GEN_PARAM_POTENTIAL "potential" +# define OSSL_KDF_PARAM_ARGON2_AD "ad" +# define OSSL_KDF_PARAM_ARGON2_LANES "lanes" +# define OSSL_KDF_PARAM_ARGON2_MEMCOST "memcost" +# define OSSL_KDF_PARAM_ARGON2_VERSION "version" +# define OSSL_KDF_PARAM_CEK_ALG "cekalg" +# define OSSL_KDF_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_KDF_PARAM_CONSTANT "constant" +# define OSSL_KDF_PARAM_DATA "data" +# define OSSL_KDF_PARAM_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_KDF_PARAM_EARLY_CLEAN "early_clean" +# define OSSL_KDF_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_KDF_PARAM_FIPS_DIGEST_CHECK OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK +# define OSSL_KDF_PARAM_FIPS_EMS_CHECK "ems_check" +# define OSSL_KDF_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_KDF_PARAM_HMACDRBG_ENTROPY "entropy" +# define OSSL_KDF_PARAM_HMACDRBG_NONCE "nonce" +# define OSSL_KDF_PARAM_INFO "info" +# define OSSL_KDF_PARAM_ITER "iter" +# define OSSL_KDF_PARAM_KBKDF_R "r" +# define OSSL_KDF_PARAM_KBKDF_USE_L "use-l" +# define OSSL_KDF_PARAM_KBKDF_USE_SEPARATOR "use-separator" +# define OSSL_KDF_PARAM_KEY "key" +# define OSSL_KDF_PARAM_LABEL "label" +# define OSSL_KDF_PARAM_MAC OSSL_ALG_PARAM_MAC +# define OSSL_KDF_PARAM_MAC_SIZE "maclen" +# define OSSL_KDF_PARAM_MODE "mode" +# define OSSL_KDF_PARAM_PASSWORD "pass" +# define OSSL_KDF_PARAM_PKCS12_ID "id" +# define OSSL_KDF_PARAM_PKCS5 "pkcs5" +# define OSSL_KDF_PARAM_PREFIX "prefix" +# define OSSL_KDF_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_KDF_PARAM_SALT "salt" +# define OSSL_KDF_PARAM_SCRYPT_MAXMEM "maxmem_bytes" +# define OSSL_KDF_PARAM_SCRYPT_N "n" +# define OSSL_KDF_PARAM_SCRYPT_P "p" +# define OSSL_KDF_PARAM_SCRYPT_R "r" +# define OSSL_KDF_PARAM_SECRET "secret" +# define OSSL_KDF_PARAM_SEED "seed" +# define OSSL_KDF_PARAM_SIZE "size" +# define OSSL_KDF_PARAM_SSHKDF_SESSION_ID "session_id" +# define OSSL_KDF_PARAM_SSHKDF_TYPE "type" +# define OSSL_KDF_PARAM_SSHKDF_XCGHASH "xcghash" +# define OSSL_KDF_PARAM_THREADS "threads" +# define OSSL_KDF_PARAM_UKM "ukm" +# define OSSL_KDF_PARAM_X942_ACVPINFO "acvp-info" +# define OSSL_KDF_PARAM_X942_PARTYUINFO "partyu-info" +# define OSSL_KDF_PARAM_X942_PARTYVINFO "partyv-info" +# define OSSL_KDF_PARAM_X942_SUPP_PRIVINFO "supp-privinfo" +# define OSSL_KDF_PARAM_X942_SUPP_PUBINFO "supp-pubinfo" +# define OSSL_KDF_PARAM_X942_USE_KEYBITS "use-keybits" +# define OSSL_KEM_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_KEM_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_KEM_PARAM_IKME "ikme" +# define OSSL_KEM_PARAM_OPERATION "operation" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_BLOCK_PADDING "block_padding" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_HS_PADDING "hs_padding" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_MAX_EARLY_DATA "max_early_data" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_MAX_FRAG_LEN "max_frag_len" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_MODE "mode" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_OPTIONS "options" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_READ_AHEAD "read_ahead" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_STREAM_MAC "stream_mac" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_TLSTREE "tlstree" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_USE_ETM "use_etm" +# define OSSL_LIBSSL_RECORD_LAYER_READ_BUFFER_LEN "read_buffer_len" +# define OSSL_MAC_PARAM_BLOCK_SIZE "block-size" +# define OSSL_MAC_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_MAC_PARAM_CUSTOM "custom" +# define OSSL_MAC_PARAM_C_ROUNDS "c-rounds" +# define OSSL_MAC_PARAM_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_MAC_PARAM_DIGEST_NOINIT "digest-noinit" +# define OSSL_MAC_PARAM_DIGEST_ONESHOT "digest-oneshot" +# define OSSL_MAC_PARAM_D_ROUNDS "d-rounds" +# define OSSL_MAC_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_MAC_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_MAC_PARAM_FIPS_NO_SHORT_MAC OSSL_PROV_PARAM_NO_SHORT_MAC +# define OSSL_MAC_PARAM_IV "iv" +# define OSSL_MAC_PARAM_KEY "key" +# define OSSL_MAC_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_MAC_PARAM_SALT "salt" +# define OSSL_MAC_PARAM_SIZE "size" +# define OSSL_MAC_PARAM_TLS_DATA_SIZE "tls-data-size" +# define OSSL_MAC_PARAM_XOF "xof" +# define OSSL_OBJECT_PARAM_DATA "data" +# define OSSL_OBJECT_PARAM_DATA_STRUCTURE "data-structure" +# define OSSL_OBJECT_PARAM_DATA_TYPE "data-type" +# define OSSL_OBJECT_PARAM_DESC "desc" +# define OSSL_OBJECT_PARAM_INPUT_TYPE "input-type" +# define OSSL_OBJECT_PARAM_REFERENCE "reference" +# define OSSL_OBJECT_PARAM_TYPE "type" +# define OSSL_PASSPHRASE_PARAM_INFO "info" +# define OSSL_PKEY_PARAM_ALGORITHM_ID OSSL_ALG_PARAM_ALGORITHM_ID +# define OSSL_PKEY_PARAM_ALGORITHM_ID_PARAMS OSSL_ALG_PARAM_ALGORITHM_ID_PARAMS +# define OSSL_PKEY_PARAM_BITS "bits" +# define OSSL_PKEY_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_PKEY_PARAM_DEFAULT_DIGEST "default-digest" +# define OSSL_PKEY_PARAM_DHKEM_IKM "dhkem-ikm" +# define OSSL_PKEY_PARAM_DH_GENERATOR "safeprime-generator" +# define OSSL_PKEY_PARAM_DH_PRIV_LEN "priv_len" +# define OSSL_PKEY_PARAM_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_PKEY_PARAM_DIGEST_SIZE "digest-size" +# define OSSL_PKEY_PARAM_DIST_ID "distid" +# define OSSL_PKEY_PARAM_EC_A "a" +# define OSSL_PKEY_PARAM_EC_B "b" +# define OSSL_PKEY_PARAM_EC_CHAR2_M "m" +# define OSSL_PKEY_PARAM_EC_CHAR2_PP_K1 "k1" +# define OSSL_PKEY_PARAM_EC_CHAR2_PP_K2 "k2" +# define OSSL_PKEY_PARAM_EC_CHAR2_PP_K3 "k3" +# define OSSL_PKEY_PARAM_EC_CHAR2_TP_BASIS "tp" +# define OSSL_PKEY_PARAM_EC_CHAR2_TYPE "basis-type" +# define OSSL_PKEY_PARAM_EC_COFACTOR "cofactor" +# define OSSL_PKEY_PARAM_EC_DECODED_FROM_EXPLICIT_PARAMS "decoded-from-explicit" +# define OSSL_PKEY_PARAM_EC_ENCODING "encoding" +# define OSSL_PKEY_PARAM_EC_FIELD_TYPE "field-type" +# define OSSL_PKEY_PARAM_EC_GENERATOR "generator" +# define OSSL_PKEY_PARAM_EC_GROUP_CHECK_TYPE "group-check" +# define OSSL_PKEY_PARAM_EC_INCLUDE_PUBLIC "include-public" +# define OSSL_PKEY_PARAM_EC_ORDER "order" +# define OSSL_PKEY_PARAM_EC_P "p" +# define OSSL_PKEY_PARAM_EC_POINT_CONVERSION_FORMAT "point-format" +# define OSSL_PKEY_PARAM_EC_PUB_X "qx" +# define OSSL_PKEY_PARAM_EC_PUB_Y "qy" +# define OSSL_PKEY_PARAM_EC_SEED "seed" +# define OSSL_PKEY_PARAM_ENCODED_PUBLIC_KEY "encoded-pub-key" +# define OSSL_PKEY_PARAM_ENGINE OSSL_ALG_PARAM_ENGINE +# define OSSL_PKEY_PARAM_FFC_COFACTOR "j" +# define OSSL_PKEY_PARAM_FFC_DIGEST OSSL_PKEY_PARAM_DIGEST +# define OSSL_PKEY_PARAM_FFC_DIGEST_PROPS OSSL_PKEY_PARAM_PROPERTIES +# define OSSL_PKEY_PARAM_FFC_G "g" +# define OSSL_PKEY_PARAM_FFC_GINDEX "gindex" +# define OSSL_PKEY_PARAM_FFC_H "hindex" +# define OSSL_PKEY_PARAM_FFC_P "p" +# define OSSL_PKEY_PARAM_FFC_PBITS "pbits" +# define OSSL_PKEY_PARAM_FFC_PCOUNTER "pcounter" +# define OSSL_PKEY_PARAM_FFC_Q "q" +# define OSSL_PKEY_PARAM_FFC_QBITS "qbits" +# define OSSL_PKEY_PARAM_FFC_SEED "seed" +# define OSSL_PKEY_PARAM_FFC_TYPE "type" +# define OSSL_PKEY_PARAM_FFC_VALIDATE_G "validate-g" +# define OSSL_PKEY_PARAM_FFC_VALIDATE_LEGACY "validate-legacy" +# define OSSL_PKEY_PARAM_FFC_VALIDATE_PQ "validate-pq" +# define OSSL_PKEY_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK "digest-check" +# define OSSL_PKEY_PARAM_FIPS_KEY_CHECK "key-check" +# define OSSL_PKEY_PARAM_FIPS_SIGN_CHECK "sign-check" +# define OSSL_PKEY_PARAM_GROUP_NAME "group" +# define OSSL_PKEY_PARAM_IMPLICIT_REJECTION "implicit-rejection" +# define OSSL_PKEY_PARAM_MANDATORY_DIGEST "mandatory-digest" +# define OSSL_PKEY_PARAM_MASKGENFUNC "mgf" +# define OSSL_PKEY_PARAM_MAX_SIZE "max-size" +# define OSSL_PKEY_PARAM_MGF1_DIGEST "mgf1-digest" +# define OSSL_PKEY_PARAM_MGF1_PROPERTIES "mgf1-properties" +# define OSSL_PKEY_PARAM_ML_DSA_INPUT_FORMATS "ml-dsa.input_formats" +# define OSSL_PKEY_PARAM_ML_DSA_OUTPUT_FORMATS "ml-dsa.output_formats" +# define OSSL_PKEY_PARAM_ML_DSA_PREFER_SEED "ml-dsa.prefer_seed" +# define OSSL_PKEY_PARAM_ML_DSA_RETAIN_SEED "ml-dsa.retain_seed" +# define OSSL_PKEY_PARAM_ML_DSA_SEED "seed" +# define OSSL_PKEY_PARAM_ML_KEM_IMPORT_PCT_TYPE "ml-kem.import_pct_type" +# define OSSL_PKEY_PARAM_ML_KEM_INPUT_FORMATS "ml-kem.input_formats" +# define OSSL_PKEY_PARAM_ML_KEM_OUTPUT_FORMATS "ml-kem.output_formats" +# define OSSL_PKEY_PARAM_ML_KEM_PREFER_SEED "ml-kem.prefer_seed" +# define OSSL_PKEY_PARAM_ML_KEM_RETAIN_SEED "ml-kem.retain_seed" +# define OSSL_PKEY_PARAM_ML_KEM_SEED "seed" +# define OSSL_PKEY_PARAM_PAD_MODE "pad-mode" +# define OSSL_PKEY_PARAM_PRIV_KEY "priv" +# define OSSL_PKEY_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_PKEY_PARAM_PUB_KEY "pub" +# define OSSL_PKEY_PARAM_RSA_BITS OSSL_PKEY_PARAM_BITS +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT "rsa-coefficient" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT1 "rsa-coefficient1" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT2 "rsa-coefficient2" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT3 "rsa-coefficient3" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT4 "rsa-coefficient4" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT5 "rsa-coefficient5" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT6 "rsa-coefficient6" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT7 "rsa-coefficient7" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT8 "rsa-coefficient8" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT9 "rsa-coefficient9" +# define OSSL_PKEY_PARAM_RSA_D "d" +# define OSSL_PKEY_PARAM_RSA_DERIVE_FROM_PQ "rsa-derive-from-pq" +# define OSSL_PKEY_PARAM_RSA_DIGEST OSSL_PKEY_PARAM_DIGEST +# define OSSL_PKEY_PARAM_RSA_DIGEST_PROPS OSSL_PKEY_PARAM_PROPERTIES +# define OSSL_PKEY_PARAM_RSA_E "e" +# define OSSL_PKEY_PARAM_RSA_EXPONENT "rsa-exponent" +# define OSSL_PKEY_PARAM_RSA_EXPONENT1 "rsa-exponent1" +# define OSSL_PKEY_PARAM_RSA_EXPONENT10 "rsa-exponent10" +# define OSSL_PKEY_PARAM_RSA_EXPONENT2 "rsa-exponent2" +# define OSSL_PKEY_PARAM_RSA_EXPONENT3 "rsa-exponent3" +# define OSSL_PKEY_PARAM_RSA_EXPONENT4 "rsa-exponent4" +# define OSSL_PKEY_PARAM_RSA_EXPONENT5 "rsa-exponent5" +# define OSSL_PKEY_PARAM_RSA_EXPONENT6 "rsa-exponent6" +# define OSSL_PKEY_PARAM_RSA_EXPONENT7 "rsa-exponent7" +# define OSSL_PKEY_PARAM_RSA_EXPONENT8 "rsa-exponent8" +# define OSSL_PKEY_PARAM_RSA_EXPONENT9 "rsa-exponent9" +# define OSSL_PKEY_PARAM_RSA_FACTOR "rsa-factor" +# define OSSL_PKEY_PARAM_RSA_FACTOR1 "rsa-factor1" +# define OSSL_PKEY_PARAM_RSA_FACTOR10 "rsa-factor10" +# define OSSL_PKEY_PARAM_RSA_FACTOR2 "rsa-factor2" +# define OSSL_PKEY_PARAM_RSA_FACTOR3 "rsa-factor3" +# define OSSL_PKEY_PARAM_RSA_FACTOR4 "rsa-factor4" +# define OSSL_PKEY_PARAM_RSA_FACTOR5 "rsa-factor5" +# define OSSL_PKEY_PARAM_RSA_FACTOR6 "rsa-factor6" +# define OSSL_PKEY_PARAM_RSA_FACTOR7 "rsa-factor7" +# define OSSL_PKEY_PARAM_RSA_FACTOR8 "rsa-factor8" +# define OSSL_PKEY_PARAM_RSA_FACTOR9 "rsa-factor9" +# define OSSL_PKEY_PARAM_RSA_MASKGENFUNC OSSL_PKEY_PARAM_MASKGENFUNC +# define OSSL_PKEY_PARAM_RSA_MGF1_DIGEST OSSL_PKEY_PARAM_MGF1_DIGEST +# define OSSL_PKEY_PARAM_RSA_N "n" +# define OSSL_PKEY_PARAM_RSA_PRIMES "primes" +# define OSSL_PKEY_PARAM_RSA_PSS_SALTLEN "saltlen" +# define OSSL_PKEY_PARAM_RSA_TEST_P1 "p1" +# define OSSL_PKEY_PARAM_RSA_TEST_P2 "p2" +# define OSSL_PKEY_PARAM_RSA_TEST_Q1 "q1" +# define OSSL_PKEY_PARAM_RSA_TEST_Q2 "q2" +# define OSSL_PKEY_PARAM_RSA_TEST_XP "xp" +# define OSSL_PKEY_PARAM_RSA_TEST_XP1 "xp1" +# define OSSL_PKEY_PARAM_RSA_TEST_XP2 "xp2" +# define OSSL_PKEY_PARAM_RSA_TEST_XQ "xq" +# define OSSL_PKEY_PARAM_RSA_TEST_XQ1 "xq1" +# define OSSL_PKEY_PARAM_RSA_TEST_XQ2 "xq2" +# define OSSL_PKEY_PARAM_SECURITY_BITS "security-bits" +# define OSSL_PKEY_PARAM_SLH_DSA_SEED "seed" +# define OSSL_PKEY_PARAM_USE_COFACTOR_ECDH OSSL_PKEY_PARAM_USE_COFACTOR_FLAG +# define OSSL_PKEY_PARAM_USE_COFACTOR_FLAG "use-cofactor-flag" +# define OSSL_PROV_PARAM_BUILDINFO "buildinfo" +# define OSSL_PROV_PARAM_CORE_MODULE_FILENAME "module-filename" +# define OSSL_PROV_PARAM_CORE_PROV_NAME "provider-name" +# define OSSL_PROV_PARAM_CORE_VERSION "openssl-version" +# define OSSL_PROV_PARAM_DRBG_TRUNC_DIGEST "drbg-no-trunc-md" +# define OSSL_PROV_PARAM_DSA_SIGN_DISABLED "dsa-sign-disabled" +# define OSSL_PROV_PARAM_ECDH_COFACTOR_CHECK "ecdh-cofactor-check" +# define OSSL_PROV_PARAM_HKDF_DIGEST_CHECK "hkdf-digest-check" +# define OSSL_PROV_PARAM_HKDF_KEY_CHECK "hkdf-key-check" +# define OSSL_PROV_PARAM_HMAC_KEY_CHECK "hmac-key-check" +# define OSSL_PROV_PARAM_KBKDF_KEY_CHECK "kbkdf-key-check" +# define OSSL_PROV_PARAM_KMAC_KEY_CHECK "kmac-key-check" +# define OSSL_PROV_PARAM_NAME "name" +# define OSSL_PROV_PARAM_NO_SHORT_MAC "no-short-mac" +# define OSSL_PROV_PARAM_PBKDF2_LOWER_BOUND_CHECK "pbkdf2-lower-bound-check" +# define OSSL_PROV_PARAM_RSA_PKCS15_PAD_DISABLED "rsa-pkcs15-pad-disabled" +# define OSSL_PROV_PARAM_RSA_PSS_SALTLEN_CHECK "rsa-pss-saltlen-check" +# define OSSL_PROV_PARAM_RSA_SIGN_X931_PAD_DISABLED "rsa-sign-x931-pad-disabled" +# define OSSL_PROV_PARAM_SECURITY_CHECKS "security-checks" +# define OSSL_PROV_PARAM_SELF_TEST_DESC "st-desc" +# define OSSL_PROV_PARAM_SELF_TEST_PHASE "st-phase" +# define OSSL_PROV_PARAM_SELF_TEST_TYPE "st-type" +# define OSSL_PROV_PARAM_SIGNATURE_DIGEST_CHECK "signature-digest-check" +# define OSSL_PROV_PARAM_SSHKDF_DIGEST_CHECK "sshkdf-digest-check" +# define OSSL_PROV_PARAM_SSHKDF_KEY_CHECK "sshkdf-key-check" +# define OSSL_PROV_PARAM_SSKDF_DIGEST_CHECK "sskdf-digest-check" +# define OSSL_PROV_PARAM_SSKDF_KEY_CHECK "sskdf-key-check" +# define OSSL_PROV_PARAM_STATUS "status" +# define OSSL_PROV_PARAM_TDES_ENCRYPT_DISABLED "tdes-encrypt-disabled" +# define OSSL_PROV_PARAM_TLS13_KDF_DIGEST_CHECK "tls13-kdf-digest-check" +# define OSSL_PROV_PARAM_TLS13_KDF_KEY_CHECK "tls13-kdf-key-check" +# define OSSL_PROV_PARAM_TLS1_PRF_DIGEST_CHECK "tls1-prf-digest-check" +# define OSSL_PROV_PARAM_TLS1_PRF_EMS_CHECK "tls1-prf-ems-check" +# define OSSL_PROV_PARAM_TLS1_PRF_KEY_CHECK "tls1-prf-key-check" +# define OSSL_PROV_PARAM_VERSION "version" +# define OSSL_PROV_PARAM_X942KDF_KEY_CHECK "x942kdf-key-check" +# define OSSL_PROV_PARAM_X963KDF_DIGEST_CHECK "x963kdf-digest-check" +# define OSSL_PROV_PARAM_X963KDF_KEY_CHECK "x963kdf-key-check" +# define OSSL_RAND_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_RAND_PARAM_GENERATE "generate" +# define OSSL_RAND_PARAM_MAX_REQUEST "max_request" +# define OSSL_RAND_PARAM_STATE "state" +# define OSSL_RAND_PARAM_STRENGTH "strength" +# define OSSL_RAND_PARAM_TEST_ENTROPY "test_entropy" +# define OSSL_RAND_PARAM_TEST_NONCE "test_nonce" +# define OSSL_SIGNATURE_PARAM_ADD_RANDOM "additional-random" +# define OSSL_SIGNATURE_PARAM_ALGORITHM_ID OSSL_PKEY_PARAM_ALGORITHM_ID +# define OSSL_SIGNATURE_PARAM_ALGORITHM_ID_PARAMS OSSL_PKEY_PARAM_ALGORITHM_ID_PARAMS +# define OSSL_SIGNATURE_PARAM_CONTEXT_STRING "context-string" +# define OSSL_SIGNATURE_PARAM_DETERMINISTIC "deterministic" +# define OSSL_SIGNATURE_PARAM_DIGEST OSSL_PKEY_PARAM_DIGEST +# define OSSL_SIGNATURE_PARAM_DIGEST_SIZE OSSL_PKEY_PARAM_DIGEST_SIZE +# define OSSL_SIGNATURE_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_SIGNATURE_PARAM_FIPS_DIGEST_CHECK OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK +# define OSSL_SIGNATURE_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_SIGNATURE_PARAM_FIPS_RSA_PSS_SALTLEN_CHECK "rsa-pss-saltlen-check" +# define OSSL_SIGNATURE_PARAM_FIPS_SIGN_CHECK OSSL_PKEY_PARAM_FIPS_SIGN_CHECK +# define OSSL_SIGNATURE_PARAM_FIPS_SIGN_X931_PAD_CHECK "sign-x931-pad-check" +# define OSSL_SIGNATURE_PARAM_FIPS_VERIFY_MESSAGE "verify-message" +# define OSSL_SIGNATURE_PARAM_INSTANCE "instance" +# define OSSL_SIGNATURE_PARAM_KAT "kat" +# define OSSL_SIGNATURE_PARAM_MESSAGE_ENCODING "message-encoding" +# define OSSL_SIGNATURE_PARAM_MGF1_DIGEST OSSL_PKEY_PARAM_MGF1_DIGEST +# define OSSL_SIGNATURE_PARAM_MGF1_PROPERTIES OSSL_PKEY_PARAM_MGF1_PROPERTIES +# define OSSL_SIGNATURE_PARAM_MU "mu" +# define OSSL_SIGNATURE_PARAM_NONCE_TYPE "nonce-type" +# define OSSL_SIGNATURE_PARAM_PAD_MODE OSSL_PKEY_PARAM_PAD_MODE +# define OSSL_SIGNATURE_PARAM_PROPERTIES OSSL_PKEY_PARAM_PROPERTIES +# define OSSL_SIGNATURE_PARAM_PSS_SALTLEN "saltlen" +# define OSSL_SIGNATURE_PARAM_SIGNATURE "signature" +# define OSSL_SIGNATURE_PARAM_TEST_ENTROPY "test-entropy" +# define OSSL_SKEY_PARAM_KEY_LENGTH "key-length" +# define OSSL_SKEY_PARAM_RAW_BYTES "raw-bytes" +# define OSSL_STORE_PARAM_ALIAS "alias" +# define OSSL_STORE_PARAM_DIGEST "digest" +# define OSSL_STORE_PARAM_EXPECT "expect" +# define OSSL_STORE_PARAM_FINGERPRINT "fingerprint" +# define OSSL_STORE_PARAM_INPUT_TYPE "input-type" +# define OSSL_STORE_PARAM_ISSUER "name" +# define OSSL_STORE_PARAM_PROPERTIES "properties" +# define OSSL_STORE_PARAM_SERIAL "serial" +# define OSSL_STORE_PARAM_SUBJECT "subject" + +# ifdef __cplusplus +} +# endif + +#endif diff --git a/deps/openssl/config/archs/linux-aarch64/no-asm/include/openssl/crmf.h b/deps/openssl/config/archs/linux-aarch64/no-asm/include/openssl/crmf.h index 71b747ed33d239..4bf550fd47daa9 100644 --- a/deps/openssl/config/archs/linux-aarch64/no-asm/include/openssl/crmf.h +++ b/deps/openssl/config/archs/linux-aarch64/no-asm/include/openssl/crmf.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/crmf.h.in * - * Copyright 2007-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2007-2025 The OpenSSL Project Authors. All Rights Reserved. * Copyright Nokia 2007-2019 * Copyright Siemens AG 2015-2019 * @@ -26,6 +26,7 @@ # include # include # include /* for GENERAL_NAME etc. */ +# include /* explicit #includes not strictly needed since implied by the above: */ # include @@ -43,9 +44,12 @@ extern "C" { # define OSSL_CRMF_SUBSEQUENTMESSAGE_ENCRCERT 0 # define OSSL_CRMF_SUBSEQUENTMESSAGE_CHALLENGERESP 1 - typedef struct ossl_crmf_encryptedvalue_st OSSL_CRMF_ENCRYPTEDVALUE; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_ENCRYPTEDVALUE) + +typedef struct ossl_crmf_encryptedkey_st OSSL_CRMF_ENCRYPTEDKEY; +DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_ENCRYPTEDKEY) + typedef struct ossl_crmf_msg_st OSSL_CRMF_MSG; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_MSG) DECLARE_ASN1_DUP_FUNCTION(OSSL_CRMF_MSG) @@ -77,6 +81,36 @@ SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CRMF_MSG, OSSL_CRMF_MSG, OSSL_CRMF_MSG) #define sk_OSSL_CRMF_MSG_set_cmp_func(sk, cmp) ((sk_OSSL_CRMF_MSG_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CRMF_MSG_sk_type(sk), ossl_check_OSSL_CRMF_MSG_compfunc_type(cmp))) typedef struct ossl_crmf_attributetypeandvalue_st OSSL_CRMF_ATTRIBUTETYPEANDVALUE; +void OSSL_CRMF_ATTRIBUTETYPEANDVALUE_free(OSSL_CRMF_ATTRIBUTETYPEANDVALUE *v); +DECLARE_ASN1_DUP_FUNCTION(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CRMF_ATTRIBUTETYPEANDVALUE, OSSL_CRMF_ATTRIBUTETYPEANDVALUE, OSSL_CRMF_ATTRIBUTETYPEANDVALUE) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_value(sk, idx) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_value(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), (idx))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_new(cmp) ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_new(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_compfunc_type(cmp))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_new_null() ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_new_null()) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_new_reserve(cmp, n) ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_compfunc_type(cmp), (n))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), (n)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_free(sk) OPENSSL_sk_free(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_delete(sk, i) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_delete(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), (i))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_delete_ptr(sk, ptr) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_pop(sk) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_pop(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_shift(sk) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_shift(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk),ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_freefunc_type(freefunc)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr), (idx)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_set(sk, idx, ptr) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_set(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), (idx), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr), pnum) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_dup(sk) ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_dup(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_copyfunc_type(copyfunc), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_freefunc_type(freefunc))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_set_cmp_func(sk, cmp) ((sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_compfunc_type(cmp))) + + typedef struct ossl_crmf_pbmparameter_st OSSL_CRMF_PBMPARAMETER; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_PBMPARAMETER) typedef struct ossl_crmf_poposigningkey_st OSSL_CRMF_POPOSIGNINGKEY; @@ -118,6 +152,7 @@ typedef struct ossl_crmf_singlepubinfo_st OSSL_CRMF_SINGLEPUBINFO; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_SINGLEPUBINFO) typedef struct ossl_crmf_certtemplate_st OSSL_CRMF_CERTTEMPLATE; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_CERTTEMPLATE) +DECLARE_ASN1_DUP_FUNCTION(OSSL_CRMF_CERTTEMPLATE) typedef STACK_OF(OSSL_CRMF_MSG) OSSL_CRMF_MSGS; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_MSGS) @@ -198,12 +233,14 @@ int OSSL_CRMF_MSGS_verify_popo(const OSSL_CRMF_MSGS *reqs, int rid, int acceptRAVerified, OSSL_LIB_CTX *libctx, const char *propq); OSSL_CRMF_CERTTEMPLATE *OSSL_CRMF_MSG_get0_tmpl(const OSSL_CRMF_MSG *crm); -const ASN1_INTEGER -*OSSL_CRMF_CERTTEMPLATE_get0_serialNumber(const OSSL_CRMF_CERTTEMPLATE *tmpl); +X509_PUBKEY +*OSSL_CRMF_CERTTEMPLATE_get0_publicKey(const OSSL_CRMF_CERTTEMPLATE *tmpl); const X509_NAME *OSSL_CRMF_CERTTEMPLATE_get0_subject(const OSSL_CRMF_CERTTEMPLATE *tmpl); const X509_NAME *OSSL_CRMF_CERTTEMPLATE_get0_issuer(const OSSL_CRMF_CERTTEMPLATE *tmpl); +const ASN1_INTEGER +*OSSL_CRMF_CERTTEMPLATE_get0_serialNumber(const OSSL_CRMF_CERTTEMPLATE *tmpl); X509_EXTENSIONS *OSSL_CRMF_CERTTEMPLATE_get0_extensions(const OSSL_CRMF_CERTTEMPLATE *tmpl); const X509_NAME @@ -215,10 +252,24 @@ int OSSL_CRMF_CERTTEMPLATE_fill(OSSL_CRMF_CERTTEMPLATE *tmpl, const X509_NAME *subject, const X509_NAME *issuer, const ASN1_INTEGER *serial); -X509 -*OSSL_CRMF_ENCRYPTEDVALUE_get1_encCert(const OSSL_CRMF_ENCRYPTEDVALUE *ecert, - OSSL_LIB_CTX *libctx, const char *propq, - EVP_PKEY *pkey); +X509 *OSSL_CRMF_ENCRYPTEDVALUE_get1_encCert(const OSSL_CRMF_ENCRYPTEDVALUE *ecert, + OSSL_LIB_CTX *libctx, const char *propq, + EVP_PKEY *pkey); +X509 *OSSL_CRMF_ENCRYPTEDKEY_get1_encCert(const OSSL_CRMF_ENCRYPTEDKEY *ecert, + OSSL_LIB_CTX *libctx, const char *propq, + EVP_PKEY *pkey, unsigned int flags); +unsigned char +*OSSL_CRMF_ENCRYPTEDVALUE_decrypt(const OSSL_CRMF_ENCRYPTEDVALUE *enc, + OSSL_LIB_CTX *libctx, const char *propq, + EVP_PKEY *pkey, int *outlen); +EVP_PKEY *OSSL_CRMF_ENCRYPTEDKEY_get1_pkey(const OSSL_CRMF_ENCRYPTEDKEY *encryptedKey, + X509_STORE *ts, STACK_OF(X509) *extra, EVP_PKEY *pkey, + X509 *cert, ASN1_OCTET_STRING *secret, + OSSL_LIB_CTX *libctx, const char *propq); +int OSSL_CRMF_MSG_centralkeygen_requested(const OSSL_CRMF_MSG *crm, const X509_REQ *p10cr); +# ifndef OPENSSL_NO_CMS +OSSL_CRMF_ENCRYPTEDKEY *OSSL_CRMF_ENCRYPTEDKEY_init_envdata(CMS_EnvelopedData *envdata); +# endif # ifdef __cplusplus } diff --git a/deps/openssl/config/archs/linux-aarch64/no-asm/include/openssl/crypto.h b/deps/openssl/config/archs/linux-aarch64/no-asm/include/openssl/crypto.h index 3f40be6d8c61d5..fd2cfd3e5a9ac4 100644 --- a/deps/openssl/config/archs/linux-aarch64/no-asm/include/openssl/crypto.h +++ b/deps/openssl/config/archs/linux-aarch64/no-asm/include/openssl/crypto.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/crypto.h.in * - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2024 The OpenSSL Project Authors. All Rights Reserved. * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved * * Licensed under the Apache License 2.0 (the "License"). You may not use @@ -85,9 +85,15 @@ int CRYPTO_THREAD_unlock(CRYPTO_RWLOCK *lock); void CRYPTO_THREAD_lock_free(CRYPTO_RWLOCK *lock); int CRYPTO_atomic_add(int *val, int amount, int *ret, CRYPTO_RWLOCK *lock); +int CRYPTO_atomic_add64(uint64_t *val, uint64_t op, uint64_t *ret, + CRYPTO_RWLOCK *lock); +int CRYPTO_atomic_and(uint64_t *val, uint64_t op, uint64_t *ret, + CRYPTO_RWLOCK *lock); int CRYPTO_atomic_or(uint64_t *val, uint64_t op, uint64_t *ret, CRYPTO_RWLOCK *lock); int CRYPTO_atomic_load(uint64_t *val, uint64_t *ret, CRYPTO_RWLOCK *lock); +int CRYPTO_atomic_load_int(int *val, int *ret, CRYPTO_RWLOCK *lock); +int CRYPTO_atomic_store(uint64_t *dst, uint64_t val, CRYPTO_RWLOCK *lock); /* No longer needed, so this is a no-op */ #define OPENSSL_malloc_init() while(0) continue @@ -96,6 +102,9 @@ int CRYPTO_atomic_load(uint64_t *val, uint64_t *ret, CRYPTO_RWLOCK *lock); CRYPTO_malloc(num, OPENSSL_FILE, OPENSSL_LINE) # define OPENSSL_zalloc(num) \ CRYPTO_zalloc(num, OPENSSL_FILE, OPENSSL_LINE) +# define OPENSSL_aligned_alloc(num, alignment, freeptr) \ + CRYPTO_aligned_alloc(num, alignment, freeptr, \ + OPENSSL_FILE, OPENSSL_LINE) # define OPENSSL_realloc(addr, num) \ CRYPTO_realloc(addr, num, OPENSSL_FILE, OPENSSL_LINE) # define OPENSSL_clear_realloc(addr, old_num, num) \ @@ -124,6 +133,7 @@ int CRYPTO_atomic_load(uint64_t *val, uint64_t *ret, CRYPTO_RWLOCK *lock); size_t OPENSSL_strlcpy(char *dst, const char *src, size_t siz); size_t OPENSSL_strlcat(char *dst, const char *src, size_t siz); size_t OPENSSL_strnlen(const char *str, size_t maxlen); +int OPENSSL_strtoul(const char *str, char **endptr, int base, unsigned long *num); int OPENSSL_buf2hexstr_ex(char *str, size_t str_n, size_t *strlength, const unsigned char *buf, size_t buflen, const char sep); @@ -160,6 +170,7 @@ const char *OpenSSL_version(int type); # define OPENSSL_FULL_VERSION_STRING 7 # define OPENSSL_MODULES_DIR 8 # define OPENSSL_CPU_INFO 9 +# define OPENSSL_WINCTX 10 const char *OPENSSL_info(int type); /* @@ -174,6 +185,7 @@ const char *OPENSSL_info(int type); # define OPENSSL_INFO_LIST_SEPARATOR 1006 # define OPENSSL_INFO_SEED_SOURCE 1007 # define OPENSSL_INFO_CPU_SETTINGS 1008 +# define OPENSSL_INFO_WINDOWS_CONTEXT 1009 int OPENSSL_issetugid(void); @@ -341,11 +353,14 @@ void CRYPTO_get_mem_functions(CRYPTO_malloc_fn *malloc_fn, CRYPTO_realloc_fn *realloc_fn, CRYPTO_free_fn *free_fn); -void *CRYPTO_malloc(size_t num, const char *file, int line); -void *CRYPTO_zalloc(size_t num, const char *file, int line); -void *CRYPTO_memdup(const void *str, size_t siz, const char *file, int line); -char *CRYPTO_strdup(const char *str, const char *file, int line); -char *CRYPTO_strndup(const char *str, size_t s, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_malloc(size_t num, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_zalloc(size_t num, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_aligned_alloc(size_t num, size_t align, + void **freeptr, const char *file, + int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_memdup(const void *str, size_t siz, const char *file, int line); +OSSL_CRYPTO_ALLOC char *CRYPTO_strdup(const char *str, const char *file, int line); +OSSL_CRYPTO_ALLOC char *CRYPTO_strndup(const char *str, size_t s, const char *file, int line); void CRYPTO_free(void *ptr, const char *file, int line); void CRYPTO_clear_free(void *ptr, size_t num, const char *file, int line); void *CRYPTO_realloc(void *addr, size_t num, const char *file, int line); @@ -354,8 +369,8 @@ void *CRYPTO_clear_realloc(void *addr, size_t old_num, size_t num, int CRYPTO_secure_malloc_init(size_t sz, size_t minsize); int CRYPTO_secure_malloc_done(void); -void *CRYPTO_secure_malloc(size_t num, const char *file, int line); -void *CRYPTO_secure_zalloc(size_t num, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_secure_malloc(size_t num, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_secure_zalloc(size_t num, const char *file, int line); void CRYPTO_secure_free(void *ptr, const char *file, int line); void CRYPTO_secure_clear_free(void *ptr, size_t num, const char *file, int line); @@ -376,6 +391,9 @@ void OPENSSL_cleanse(void *ptr, size_t len); # define CRYPTO_MEM_CHECK_ENABLE 0x2 /* Control and mode bit */ # define CRYPTO_MEM_CHECK_DISABLE 0x3 /* Control only */ +/* max allowed length for value of OPENSSL_MALLOC_FAILURES env var. */ +# define CRYPTO_MEM_CHECK_MAX_FS 256 + void CRYPTO_get_alloc_counts(int *mcount, int *rcount, int *fcount); # ifndef OPENSSL_NO_DEPRECATED_3_0 # define OPENSSL_mem_debug_push(info) \ @@ -551,6 +569,13 @@ int OSSL_LIB_CTX_load_config(OSSL_LIB_CTX *ctx, const char *config_file); void OSSL_LIB_CTX_free(OSSL_LIB_CTX *); OSSL_LIB_CTX *OSSL_LIB_CTX_get0_global_default(void); OSSL_LIB_CTX *OSSL_LIB_CTX_set0_default(OSSL_LIB_CTX *libctx); +int OSSL_LIB_CTX_get_conf_diagnostics(OSSL_LIB_CTX *ctx); +void OSSL_LIB_CTX_set_conf_diagnostics(OSSL_LIB_CTX *ctx, int value); + +void OSSL_sleep(uint64_t millis); + + +void *OSSL_LIB_CTX_get_data(OSSL_LIB_CTX *ctx, int index); # ifdef __cplusplus } diff --git a/deps/openssl/config/archs/linux-aarch64/no-asm/include/openssl/ct.h b/deps/openssl/config/archs/linux-aarch64/no-asm/include/openssl/ct.h index b6dd8c3547710a..e6dd1192a4e0b3 100644 --- a/deps/openssl/config/archs/linux-aarch64/no-asm/include/openssl/ct.h +++ b/deps/openssl/config/archs/linux-aarch64/no-asm/include/openssl/ct.h @@ -133,7 +133,7 @@ typedef enum { */ CT_POLICY_EVAL_CTX *CT_POLICY_EVAL_CTX_new_ex(OSSL_LIB_CTX *libctx, const char *propq); - + /* * The same as CT_POLICY_EVAL_CTX_new_ex() but the default library * context and property query string is used. diff --git a/deps/openssl/config/archs/linux-aarch64/no-asm/include/openssl/err.h b/deps/openssl/config/archs/linux-aarch64/no-asm/include/openssl/err.h index 2abf2483488181..daca18e7b757b0 100644 --- a/deps/openssl/config/archs/linux-aarch64/no-asm/include/openssl/err.h +++ b/deps/openssl/config/archs/linux-aarch64/no-asm/include/openssl/err.h @@ -1,5 +1,5 @@ /* - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -372,7 +372,7 @@ typedef struct ERR_string_data_st { } ERR_STRING_DATA; DEFINE_LHASH_OF_INTERNAL(ERR_STRING_DATA); -#define lh_ERR_STRING_DATA_new(hfn, cmp) ((LHASH_OF(ERR_STRING_DATA) *)OPENSSL_LH_new(ossl_check_ERR_STRING_DATA_lh_hashfunc_type(hfn), ossl_check_ERR_STRING_DATA_lh_compfunc_type(cmp))) +#define lh_ERR_STRING_DATA_new(hfn, cmp) ((LHASH_OF(ERR_STRING_DATA) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new(ossl_check_ERR_STRING_DATA_lh_hashfunc_type(hfn), ossl_check_ERR_STRING_DATA_lh_compfunc_type(cmp)), lh_ERR_STRING_DATA_hash_thunk, lh_ERR_STRING_DATA_comp_thunk, lh_ERR_STRING_DATA_doall_thunk, lh_ERR_STRING_DATA_doall_arg_thunk)) #define lh_ERR_STRING_DATA_free(lh) OPENSSL_LH_free(ossl_check_ERR_STRING_DATA_lh_type(lh)) #define lh_ERR_STRING_DATA_flush(lh) OPENSSL_LH_flush(ossl_check_ERR_STRING_DATA_lh_type(lh)) #define lh_ERR_STRING_DATA_insert(lh, ptr) ((ERR_STRING_DATA *)OPENSSL_LH_insert(ossl_check_ERR_STRING_DATA_lh_type(lh), ossl_check_ERR_STRING_DATA_lh_plain_type(ptr))) @@ -496,6 +496,14 @@ int ERR_get_next_error_library(void); int ERR_set_mark(void); int ERR_pop_to_mark(void); int ERR_clear_last_mark(void); +int ERR_count_to_mark(void); +int ERR_pop(void); + +ERR_STATE *OSSL_ERR_STATE_new(void); +void OSSL_ERR_STATE_save(ERR_STATE *es); +void OSSL_ERR_STATE_save_to_mark(ERR_STATE *es); +void OSSL_ERR_STATE_restore(const ERR_STATE *es); +void OSSL_ERR_STATE_free(ERR_STATE *es); #ifdef __cplusplus } diff --git a/deps/openssl/config/archs/linux-aarch64/no-asm/include/openssl/fipskey.h b/deps/openssl/config/archs/linux-aarch64/no-asm/include/openssl/fipskey.h index 42ba014b313ba8..929db18c678364 100644 --- a/deps/openssl/config/archs/linux-aarch64/no-asm/include/openssl/fipskey.h +++ b/deps/openssl/config/archs/linux-aarch64/no-asm/include/openssl/fipskey.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/fipskey.h.in * - * Copyright 2020-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2020-2024 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -29,6 +29,11 @@ extern "C" { */ #define FIPS_KEY_STRING "f4556650ac31d35461610bac4ed81b1a181b2d8a43ea2854cbae22ca74560813" +/* + * The FIPS provider vendor name, as a string. + */ +#define FIPS_VENDOR "OpenSSL FIPS Provider" + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/linux-aarch64/no-asm/include/openssl/lhash.h b/deps/openssl/config/archs/linux-aarch64/no-asm/include/openssl/lhash.h index 39dd6254acdeb6..62c55b20fd9716 100644 --- a/deps/openssl/config/archs/linux-aarch64/no-asm/include/openssl/lhash.h +++ b/deps/openssl/config/archs/linux-aarch64/no-asm/include/openssl/lhash.h @@ -1,5 +1,5 @@ /* - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2024 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -24,6 +24,9 @@ # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -31,9 +34,13 @@ extern "C" { typedef struct lhash_node_st OPENSSL_LH_NODE; typedef int (*OPENSSL_LH_COMPFUNC) (const void *, const void *); +typedef int (*OPENSSL_LH_COMPFUNCTHUNK) (const void *, const void *, OPENSSL_LH_COMPFUNC cfn); typedef unsigned long (*OPENSSL_LH_HASHFUNC) (const void *); +typedef unsigned long (*OPENSSL_LH_HASHFUNCTHUNK) (const void *, OPENSSL_LH_HASHFUNC hfn); typedef void (*OPENSSL_LH_DOALL_FUNC) (void *); +typedef void (*OPENSSL_LH_DOALL_FUNC_THUNK) (void *, OPENSSL_LH_DOALL_FUNC doall); typedef void (*OPENSSL_LH_DOALL_FUNCARG) (void *, void *); +typedef void (*OPENSSL_LH_DOALL_FUNCARG_THUNK) (void *, void *, OPENSSL_LH_DOALL_FUNCARG doall); typedef struct lhash_st OPENSSL_LHASH; /* @@ -79,26 +86,40 @@ typedef struct lhash_st OPENSSL_LHASH; int OPENSSL_LH_error(OPENSSL_LHASH *lh); OPENSSL_LHASH *OPENSSL_LH_new(OPENSSL_LH_HASHFUNC h, OPENSSL_LH_COMPFUNC c); +OPENSSL_LHASH *OPENSSL_LH_set_thunks(OPENSSL_LHASH *lh, + OPENSSL_LH_HASHFUNCTHUNK hw, + OPENSSL_LH_COMPFUNCTHUNK cw, + OPENSSL_LH_DOALL_FUNC_THUNK daw, + OPENSSL_LH_DOALL_FUNCARG_THUNK daaw); void OPENSSL_LH_free(OPENSSL_LHASH *lh); void OPENSSL_LH_flush(OPENSSL_LHASH *lh); void *OPENSSL_LH_insert(OPENSSL_LHASH *lh, void *data); void *OPENSSL_LH_delete(OPENSSL_LHASH *lh, const void *data); void *OPENSSL_LH_retrieve(OPENSSL_LHASH *lh, const void *data); void OPENSSL_LH_doall(OPENSSL_LHASH *lh, OPENSSL_LH_DOALL_FUNC func); -void OPENSSL_LH_doall_arg(OPENSSL_LHASH *lh, OPENSSL_LH_DOALL_FUNCARG func, void *arg); +void OPENSSL_LH_doall_arg(OPENSSL_LHASH *lh, + OPENSSL_LH_DOALL_FUNCARG func, void *arg); +void OPENSSL_LH_doall_arg_thunk(OPENSSL_LHASH *lh, + OPENSSL_LH_DOALL_FUNCARG_THUNK daaw, + OPENSSL_LH_DOALL_FUNCARG fn, void *arg); + unsigned long OPENSSL_LH_strhash(const char *c); unsigned long OPENSSL_LH_num_items(const OPENSSL_LHASH *lh); unsigned long OPENSSL_LH_get_down_load(const OPENSSL_LHASH *lh); void OPENSSL_LH_set_down_load(OPENSSL_LHASH *lh, unsigned long down_load); # ifndef OPENSSL_NO_STDIO -void OPENSSL_LH_stats(const OPENSSL_LHASH *lh, FILE *fp); -void OPENSSL_LH_node_stats(const OPENSSL_LHASH *lh, FILE *fp); -void OPENSSL_LH_node_usage_stats(const OPENSSL_LHASH *lh, FILE *fp); +# ifndef OPENSSL_NO_DEPRECATED_3_1 +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_stats(const OPENSSL_LHASH *lh, FILE *fp); +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_node_stats(const OPENSSL_LHASH *lh, FILE *fp); +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_node_usage_stats(const OPENSSL_LHASH *lh, FILE *fp); +# endif +# endif +# ifndef OPENSSL_NO_DEPRECATED_3_1 +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_stats_bio(const OPENSSL_LHASH *lh, BIO *out); +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_node_stats_bio(const OPENSSL_LHASH *lh, BIO *out); +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_node_usage_stats_bio(const OPENSSL_LHASH *lh, BIO *out); # endif -void OPENSSL_LH_stats_bio(const OPENSSL_LHASH *lh, BIO *out); -void OPENSSL_LH_node_stats_bio(const OPENSSL_LHASH *lh, BIO *out); -void OPENSSL_LH_node_usage_stats_bio(const OPENSSL_LHASH *lh, BIO *out); # ifndef OPENSSL_NO_DEPRECATED_1_1_0 # define _LHASH OPENSSL_LHASH @@ -129,110 +150,190 @@ void OPENSSL_LH_node_usage_stats_bio(const OPENSSL_LHASH *lh, BIO *out); /* Helper macro for internal use */ # define DEFINE_LHASH_OF_INTERNAL(type) \ - LHASH_OF(type) { union lh_##type##_dummy { void* d1; unsigned long d2; int d3; } dummy; }; \ + LHASH_OF(type) { \ + union lh_##type##_dummy { void* d1; unsigned long d2; int d3; } dummy; \ + }; \ typedef int (*lh_##type##_compfunc)(const type *a, const type *b); \ typedef unsigned long (*lh_##type##_hashfunc)(const type *a); \ typedef void (*lh_##type##_doallfunc)(type *a); \ - static ossl_unused ossl_inline type *ossl_check_##type##_lh_plain_type(type *ptr) \ + static ossl_inline unsigned long lh_##type##_hash_thunk(const void *data, OPENSSL_LH_HASHFUNC hfn) \ + { \ + unsigned long (*hfn_conv)(const type *) = (unsigned long (*)(const type *))hfn; \ + return hfn_conv((const type *)data); \ + } \ + static ossl_inline int lh_##type##_comp_thunk(const void *da, const void *db, OPENSSL_LH_COMPFUNC cfn) \ + { \ + int (*cfn_conv)(const type *, const type *) = (int (*)(const type *, const type *))cfn; \ + return cfn_conv((const type *)da, (const type *)db); \ + } \ + static ossl_inline void lh_##type##_doall_thunk(void *node, OPENSSL_LH_DOALL_FUNC doall) \ + { \ + void (*doall_conv)(type *) = (void (*)(type *))doall; \ + doall_conv((type *)node); \ + } \ + static ossl_inline void lh_##type##_doall_arg_thunk(void *node, void *arg, OPENSSL_LH_DOALL_FUNCARG doall) \ + { \ + void (*doall_conv)(type *, void *) = (void (*)(type *, void *))doall; \ + doall_conv((type *)node, arg); \ + } \ + static ossl_unused ossl_inline type *\ + ossl_check_##type##_lh_plain_type(type *ptr) \ { \ return ptr; \ } \ - static ossl_unused ossl_inline const type *ossl_check_const_##type##_lh_plain_type(const type *ptr) \ + static ossl_unused ossl_inline const type * \ + ossl_check_const_##type##_lh_plain_type(const type *ptr) \ { \ return ptr; \ } \ - static ossl_unused ossl_inline const OPENSSL_LHASH *ossl_check_const_##type##_lh_type(const LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline const OPENSSL_LHASH * \ + ossl_check_const_##type##_lh_type(const LHASH_OF(type) *lh) \ { \ return (const OPENSSL_LHASH *)lh; \ } \ - static ossl_unused ossl_inline OPENSSL_LHASH *ossl_check_##type##_lh_type(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline OPENSSL_LHASH * \ + ossl_check_##type##_lh_type(LHASH_OF(type) *lh) \ { \ return (OPENSSL_LHASH *)lh; \ } \ - static ossl_unused ossl_inline OPENSSL_LH_COMPFUNC ossl_check_##type##_lh_compfunc_type(lh_##type##_compfunc cmp) \ + static ossl_unused ossl_inline OPENSSL_LH_COMPFUNC \ + ossl_check_##type##_lh_compfunc_type(lh_##type##_compfunc cmp) \ { \ return (OPENSSL_LH_COMPFUNC)cmp; \ } \ - static ossl_unused ossl_inline OPENSSL_LH_HASHFUNC ossl_check_##type##_lh_hashfunc_type(lh_##type##_hashfunc hfn) \ + static ossl_unused ossl_inline OPENSSL_LH_HASHFUNC \ + ossl_check_##type##_lh_hashfunc_type(lh_##type##_hashfunc hfn) \ { \ return (OPENSSL_LH_HASHFUNC)hfn; \ } \ - static ossl_unused ossl_inline OPENSSL_LH_DOALL_FUNC ossl_check_##type##_lh_doallfunc_type(lh_##type##_doallfunc dfn) \ + static ossl_unused ossl_inline OPENSSL_LH_DOALL_FUNC \ + ossl_check_##type##_lh_doallfunc_type(lh_##type##_doallfunc dfn) \ { \ return (OPENSSL_LH_DOALL_FUNC)dfn; \ } \ LHASH_OF(type) -# define DEFINE_LHASH_OF(type) \ - LHASH_OF(type) { union lh_##type##_dummy { void* d1; unsigned long d2; int d3; } dummy; }; \ - static ossl_unused ossl_inline LHASH_OF(type) *lh_##type##_new(unsigned long (*hfn)(const type *), \ - int (*cfn)(const type *, const type *)) \ +# ifndef OPENSSL_NO_DEPRECATED_3_1 +# define DEFINE_LHASH_OF_DEPRECATED(type) \ + static ossl_unused ossl_inline void \ + lh_##type##_node_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ { \ - return (LHASH_OF(type) *) \ - OPENSSL_LH_new((OPENSSL_LH_HASHFUNC)hfn, (OPENSSL_LH_COMPFUNC)cfn); \ + OPENSSL_LH_node_stats_bio((const OPENSSL_LHASH *)lh, out); \ } \ - static ossl_unused ossl_inline void lh_##type##_free(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline void \ + lh_##type##_node_usage_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + { \ + OPENSSL_LH_node_usage_stats_bio((const OPENSSL_LHASH *)lh, out); \ + } \ + static ossl_unused ossl_inline void \ + lh_##type##_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + { \ + OPENSSL_LH_stats_bio((const OPENSSL_LHASH *)lh, out); \ + } +# else +# define DEFINE_LHASH_OF_DEPRECATED(type) +# endif + +# define DEFINE_LHASH_OF_EX(type) \ + LHASH_OF(type) { \ + union lh_##type##_dummy { void* d1; unsigned long d2; int d3; } dummy; \ + }; \ + static unsigned long \ + lh_##type##_hfn_thunk(const void *data, OPENSSL_LH_HASHFUNC hfn) \ + { \ + unsigned long (*hfn_conv)(const type *) = (unsigned long (*)(const type *))hfn; \ + return hfn_conv((const type *)data); \ + } \ + static int lh_##type##_cfn_thunk(const void *da, const void *db, OPENSSL_LH_COMPFUNC cfn) \ + { \ + int (*cfn_conv)(const type *, const type *) = (int (*)(const type *, const type *))cfn; \ + return cfn_conv((const type *)da, (const type *)db); \ + } \ + static ossl_unused ossl_inline void \ + lh_##type##_free(LHASH_OF(type) *lh) \ { \ OPENSSL_LH_free((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline void lh_##type##_flush(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline void \ + lh_##type##_flush(LHASH_OF(type) *lh) \ { \ OPENSSL_LH_flush((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline type *lh_##type##_insert(LHASH_OF(type) *lh, type *d) \ + static ossl_unused ossl_inline type * \ + lh_##type##_insert(LHASH_OF(type) *lh, type *d) \ { \ return (type *)OPENSSL_LH_insert((OPENSSL_LHASH *)lh, d); \ } \ - static ossl_unused ossl_inline type *lh_##type##_delete(LHASH_OF(type) *lh, const type *d) \ + static ossl_unused ossl_inline type * \ + lh_##type##_delete(LHASH_OF(type) *lh, const type *d) \ { \ return (type *)OPENSSL_LH_delete((OPENSSL_LHASH *)lh, d); \ } \ - static ossl_unused ossl_inline type *lh_##type##_retrieve(LHASH_OF(type) *lh, const type *d) \ + static ossl_unused ossl_inline type * \ + lh_##type##_retrieve(LHASH_OF(type) *lh, const type *d) \ { \ return (type *)OPENSSL_LH_retrieve((OPENSSL_LHASH *)lh, d); \ } \ - static ossl_unused ossl_inline int lh_##type##_error(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline int \ + lh_##type##_error(LHASH_OF(type) *lh) \ { \ return OPENSSL_LH_error((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline unsigned long lh_##type##_num_items(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline unsigned long \ + lh_##type##_num_items(LHASH_OF(type) *lh) \ { \ return OPENSSL_LH_num_items((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline void lh_##type##_node_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + static ossl_unused ossl_inline unsigned long \ + lh_##type##_get_down_load(LHASH_OF(type) *lh) \ { \ - OPENSSL_LH_node_stats_bio((const OPENSSL_LHASH *)lh, out); \ + return OPENSSL_LH_get_down_load((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline void lh_##type##_node_usage_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + static ossl_unused ossl_inline void \ + lh_##type##_set_down_load(LHASH_OF(type) *lh, unsigned long dl) \ { \ - OPENSSL_LH_node_usage_stats_bio((const OPENSSL_LHASH *)lh, out); \ + OPENSSL_LH_set_down_load((OPENSSL_LHASH *)lh, dl); \ } \ - static ossl_unused ossl_inline void lh_##type##_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall_thunk(void *node, OPENSSL_LH_DOALL_FUNC doall) \ { \ - OPENSSL_LH_stats_bio((const OPENSSL_LHASH *)lh, out); \ + void (*doall_conv)(type *) = (void (*)(type *))doall; \ + doall_conv((type *)node); \ } \ - static ossl_unused ossl_inline unsigned long lh_##type##_get_down_load(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall_arg_thunk(void *node, void *arg, OPENSSL_LH_DOALL_FUNCARG doall) \ { \ - return OPENSSL_LH_get_down_load((OPENSSL_LHASH *)lh); \ + void (*doall_conv)(type *, void *) = (void (*)(type *, void *))doall; \ + doall_conv((type *)node, arg); \ } \ - static ossl_unused ossl_inline void lh_##type##_set_down_load(LHASH_OF(type) *lh, unsigned long dl) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall(LHASH_OF(type) *lh, void (*doall)(type *)) \ { \ - OPENSSL_LH_set_down_load((OPENSSL_LHASH *)lh, dl); \ + OPENSSL_LH_doall((OPENSSL_LHASH *)lh, (OPENSSL_LH_DOALL_FUNC)doall); \ } \ - static ossl_unused ossl_inline void lh_##type##_doall(LHASH_OF(type) *lh, \ - void (*doall)(type *)) \ + static ossl_unused ossl_inline LHASH_OF(type) * \ + lh_##type##_new(unsigned long (*hfn)(const type *), \ + int (*cfn)(const type *, const type *)) \ { \ - OPENSSL_LH_doall((OPENSSL_LHASH *)lh, (OPENSSL_LH_DOALL_FUNC)doall); \ + return (LHASH_OF(type) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new((OPENSSL_LH_HASHFUNC)hfn, (OPENSSL_LH_COMPFUNC)cfn), \ + lh_##type##_hfn_thunk, lh_##type##_cfn_thunk, \ + lh_##type##_doall_thunk, \ + lh_##type##_doall_arg_thunk); \ } \ - static ossl_unused ossl_inline void lh_##type##_doall_arg(LHASH_OF(type) *lh, \ - void (*doallarg)(type *, void *), \ - void *arg) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall_arg(LHASH_OF(type) *lh, \ + void (*doallarg)(type *, void *), void *arg) \ { \ OPENSSL_LH_doall_arg((OPENSSL_LHASH *)lh, \ (OPENSSL_LH_DOALL_FUNCARG)doallarg, arg); \ } \ LHASH_OF(type) +# define DEFINE_LHASH_OF(type) \ + DEFINE_LHASH_OF_EX(type); \ + DEFINE_LHASH_OF_DEPRECATED(type) \ + LHASH_OF(type) + #define IMPLEMENT_LHASH_DOALL_ARG_CONST(type, argtype) \ int_implement_lhash_doall(type, argtype, const type) @@ -240,17 +341,26 @@ void OPENSSL_LH_node_usage_stats_bio(const OPENSSL_LHASH *lh, BIO *out); int_implement_lhash_doall(type, argtype, type) #define int_implement_lhash_doall(type, argtype, cbargtype) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall_##argtype##_thunk(void *node, void *arg, OPENSSL_LH_DOALL_FUNCARG fn) \ + { \ + void (*fn_conv)(cbargtype *, argtype *) = (void (*)(cbargtype *, argtype *))fn; \ + fn_conv((cbargtype *)node, (argtype *)arg); \ + } \ static ossl_unused ossl_inline void \ lh_##type##_doall_##argtype(LHASH_OF(type) *lh, \ void (*fn)(cbargtype *, argtype *), \ argtype *arg) \ { \ - OPENSSL_LH_doall_arg((OPENSSL_LHASH *)lh, (OPENSSL_LH_DOALL_FUNCARG)fn, (void *)arg); \ + OPENSSL_LH_doall_arg_thunk((OPENSSL_LHASH *)lh, \ + lh_##type##_doall_##argtype##_thunk, \ + (OPENSSL_LH_DOALL_FUNCARG)fn, \ + (void *)arg); \ } \ LHASH_OF(type) DEFINE_LHASH_OF_INTERNAL(OPENSSL_STRING); -#define lh_OPENSSL_STRING_new(hfn, cmp) ((LHASH_OF(OPENSSL_STRING) *)OPENSSL_LH_new(ossl_check_OPENSSL_STRING_lh_hashfunc_type(hfn), ossl_check_OPENSSL_STRING_lh_compfunc_type(cmp))) +#define lh_OPENSSL_STRING_new(hfn, cmp) ((LHASH_OF(OPENSSL_STRING) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new(ossl_check_OPENSSL_STRING_lh_hashfunc_type(hfn), ossl_check_OPENSSL_STRING_lh_compfunc_type(cmp)), lh_OPENSSL_STRING_hash_thunk, lh_OPENSSL_STRING_comp_thunk, lh_OPENSSL_STRING_doall_thunk, lh_OPENSSL_STRING_doall_arg_thunk)) #define lh_OPENSSL_STRING_free(lh) OPENSSL_LH_free(ossl_check_OPENSSL_STRING_lh_type(lh)) #define lh_OPENSSL_STRING_flush(lh) OPENSSL_LH_flush(ossl_check_OPENSSL_STRING_lh_type(lh)) #define lh_OPENSSL_STRING_insert(lh, ptr) ((OPENSSL_STRING *)OPENSSL_LH_insert(ossl_check_OPENSSL_STRING_lh_type(lh), ossl_check_OPENSSL_STRING_lh_plain_type(ptr))) @@ -265,7 +375,7 @@ DEFINE_LHASH_OF_INTERNAL(OPENSSL_STRING); #define lh_OPENSSL_STRING_set_down_load(lh, dl) OPENSSL_LH_set_down_load(ossl_check_OPENSSL_STRING_lh_type(lh), dl) #define lh_OPENSSL_STRING_doall(lh, dfn) OPENSSL_LH_doall(ossl_check_OPENSSL_STRING_lh_type(lh), ossl_check_OPENSSL_STRING_lh_doallfunc_type(dfn)) DEFINE_LHASH_OF_INTERNAL(OPENSSL_CSTRING); -#define lh_OPENSSL_CSTRING_new(hfn, cmp) ((LHASH_OF(OPENSSL_CSTRING) *)OPENSSL_LH_new(ossl_check_OPENSSL_CSTRING_lh_hashfunc_type(hfn), ossl_check_OPENSSL_CSTRING_lh_compfunc_type(cmp))) +#define lh_OPENSSL_CSTRING_new(hfn, cmp) ((LHASH_OF(OPENSSL_CSTRING) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new(ossl_check_OPENSSL_CSTRING_lh_hashfunc_type(hfn), ossl_check_OPENSSL_CSTRING_lh_compfunc_type(cmp)), lh_OPENSSL_CSTRING_hash_thunk, lh_OPENSSL_CSTRING_comp_thunk, lh_OPENSSL_CSTRING_doall_thunk, lh_OPENSSL_CSTRING_doall_arg_thunk)) #define lh_OPENSSL_CSTRING_free(lh) OPENSSL_LH_free(ossl_check_OPENSSL_CSTRING_lh_type(lh)) #define lh_OPENSSL_CSTRING_flush(lh) OPENSSL_LH_flush(ossl_check_OPENSSL_CSTRING_lh_type(lh)) #define lh_OPENSSL_CSTRING_insert(lh, ptr) ((OPENSSL_CSTRING *)OPENSSL_LH_insert(ossl_check_OPENSSL_CSTRING_lh_type(lh), ossl_check_OPENSSL_CSTRING_lh_plain_type(ptr))) diff --git a/deps/openssl/config/archs/linux-aarch64/no-asm/include/openssl/opensslv.h b/deps/openssl/config/archs/linux-aarch64/no-asm/include/openssl/opensslv.h index 5fb5bc63056fe0..dd50d89cb9982d 100644 --- a/deps/openssl/config/archs/linux-aarch64/no-asm/include/openssl/opensslv.h +++ b/deps/openssl/config/archs/linux-aarch64/no-asm/include/openssl/opensslv.h @@ -28,8 +28,8 @@ extern "C" { * These macros express version number MAJOR.MINOR.PATCH exactly */ # define OPENSSL_VERSION_MAJOR 3 -# define OPENSSL_VERSION_MINOR 0 -# define OPENSSL_VERSION_PATCH 17 +# define OPENSSL_VERSION_MINOR 5 +# define OPENSSL_VERSION_PATCH 1 /* * Additional version information @@ -74,8 +74,8 @@ extern "C" { * longer variant with OPENSSL_VERSION_PRE_RELEASE_STR and * OPENSSL_VERSION_BUILD_METADATA_STR appended. */ -# define OPENSSL_VERSION_STR "3.0.17" -# define OPENSSL_FULL_VERSION_STR "3.0.17" +# define OPENSSL_VERSION_STR "3.5.1" +# define OPENSSL_FULL_VERSION_STR "3.5.1" /* * SECTION 3: ADDITIONAL METADATA @@ -88,7 +88,7 @@ extern "C" { * SECTION 4: BACKWARD COMPATIBILITY */ -# define OPENSSL_VERSION_TEXT "OpenSSL 3.0.17 1 Jul 2025" +# define OPENSSL_VERSION_TEXT "OpenSSL 3.5.1 1 Jul 2025" /* Synthesize OPENSSL_VERSION_NUMBER with the layout 0xMNN00PPSL */ # ifdef OPENSSL_VERSION_PRE_RELEASE diff --git a/deps/openssl/config/archs/linux-aarch64/no-asm/include/openssl/pkcs12.h b/deps/openssl/config/archs/linux-aarch64/no-asm/include/openssl/pkcs12.h index c5e0cab06491ec..0809645dad0bbf 100644 --- a/deps/openssl/config/archs/linux-aarch64/no-asm/include/openssl/pkcs12.h +++ b/deps/openssl/config/archs/linux-aarch64/no-asm/include/openssl/pkcs12.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/pkcs12.h.in * - * Copyright 1999-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1999-2024 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -25,6 +25,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -41,6 +44,7 @@ extern "C" { # define PKCS12_MAC_KEY_LENGTH 20 +/* The macro is expected to be used only internally. Kept for backwards compatibility. */ # define PKCS12_SALT_LEN 8 /* It's not clear if these are actually needed... */ @@ -130,7 +134,9 @@ int PKCS12_SAFEBAG_get_bag_nid(const PKCS12_SAFEBAG *bag); const ASN1_TYPE *PKCS12_SAFEBAG_get0_bag_obj(const PKCS12_SAFEBAG *bag); const ASN1_OBJECT *PKCS12_SAFEBAG_get0_bag_type(const PKCS12_SAFEBAG *bag); +X509 *PKCS12_SAFEBAG_get1_cert_ex(const PKCS12_SAFEBAG *bag, OSSL_LIB_CTX *libctx, const char *propq); X509 *PKCS12_SAFEBAG_get1_cert(const PKCS12_SAFEBAG *bag); +X509_CRL *PKCS12_SAFEBAG_get1_crl_ex(const PKCS12_SAFEBAG *bag, OSSL_LIB_CTX *libctx, const char *propq); X509_CRL *PKCS12_SAFEBAG_get1_crl(const PKCS12_SAFEBAG *bag); const STACK_OF(PKCS12_SAFEBAG) * PKCS12_SAFEBAG_get0_safes(const PKCS12_SAFEBAG *bag); @@ -218,6 +224,7 @@ ASN1_TYPE *PKCS12_get_attr_gen(const STACK_OF(X509_ATTRIBUTE) *attrs, char *PKCS12_get_friendlyname(PKCS12_SAFEBAG *bag); const STACK_OF(X509_ATTRIBUTE) * PKCS12_SAFEBAG_get0_attrs(const PKCS12_SAFEBAG *bag); +void PKCS12_SAFEBAG_set0_attrs(PKCS12_SAFEBAG *bag, STACK_OF(X509_ATTRIBUTE) *attrs); unsigned char *PKCS12_pbe_crypt(const X509_ALGOR *algor, const char *pass, int passlen, const unsigned char *in, int inlen, @@ -285,6 +292,9 @@ int PKCS12_verify_mac(PKCS12 *p12, const char *pass, int passlen); int PKCS12_set_mac(PKCS12 *p12, const char *pass, int passlen, unsigned char *salt, int saltlen, int iter, const EVP_MD *md_type); +int PKCS12_set_pbmac1_pbkdf2(PKCS12 *p12, const char *pass, int passlen, + unsigned char *salt, int saltlen, int iter, + const EVP_MD *md_type, const char *prf_md_name); int PKCS12_setup_mac(PKCS12 *p12, int iter, unsigned char *salt, int saltlen, const EVP_MD *md_type); unsigned char *OPENSSL_asc2uni(const char *asc, int asclen, @@ -305,6 +315,7 @@ DECLARE_ASN1_ITEM(PKCS12_AUTHSAFES) void PKCS12_PBE_add(void); int PKCS12_parse(PKCS12 *p12, const char *pass, EVP_PKEY **pkey, X509 **cert, STACK_OF(X509) **ca); +typedef int PKCS12_create_cb(PKCS12_SAFEBAG *bag, void *cbarg); PKCS12 *PKCS12_create(const char *pass, const char *name, EVP_PKEY *pkey, X509 *cert, STACK_OF(X509) *ca, int nid_key, int nid_cert, int iter, int mac_iter, int keytype); @@ -312,6 +323,11 @@ PKCS12 *PKCS12_create_ex(const char *pass, const char *name, EVP_PKEY *pkey, X509 *cert, STACK_OF(X509) *ca, int nid_key, int nid_cert, int iter, int mac_iter, int keytype, OSSL_LIB_CTX *ctx, const char *propq); +PKCS12 *PKCS12_create_ex2(const char *pass, const char *name, EVP_PKEY *pkey, + X509 *cert, STACK_OF(X509) *ca, int nid_key, int nid_cert, + int iter, int mac_iter, int keytype, + OSSL_LIB_CTX *ctx, const char *propq, + PKCS12_create_cb *cb, void *cbarg); PKCS12_SAFEBAG *PKCS12_add_cert(STACK_OF(PKCS12_SAFEBAG) **pbags, X509 *cert); PKCS12_SAFEBAG *PKCS12_add_key(STACK_OF(PKCS12_SAFEBAG) **pbags, diff --git a/deps/openssl/config/archs/linux-aarch64/no-asm/include/openssl/pkcs7.h b/deps/openssl/config/archs/linux-aarch64/no-asm/include/openssl/pkcs7.h index 0ce79bf4fa160e..fa68462aff973b 100644 --- a/deps/openssl/config/archs/linux-aarch64/no-asm/include/openssl/pkcs7.h +++ b/deps/openssl/config/archs/linux-aarch64/no-asm/include/openssl/pkcs7.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/pkcs7.h.in * - * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -28,6 +28,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -131,8 +134,8 @@ SKM_DEFINE_STACK_OF_INTERNAL(PKCS7_RECIP_INFO, PKCS7_RECIP_INFO, PKCS7_RECIP_INF typedef struct pkcs7_signed_st { ASN1_INTEGER *version; /* version 1 */ STACK_OF(X509_ALGOR) *md_algs; /* md used */ - STACK_OF(X509) *cert; /* [ 0 ] */ - STACK_OF(X509_CRL) *crl; /* [ 1 ] */ + STACK_OF(X509) *cert; /* [ 0 ] */ /* name should be 'certificates' */ + STACK_OF(X509_CRL) *crl; /* [ 1 ] */ /* name should be 'crls' */ STACK_OF(PKCS7_SIGNER_INFO) *signer_info; struct pkcs7_st *contents; } PKCS7_SIGNED; @@ -158,8 +161,8 @@ typedef struct pkcs7_enveloped_st { typedef struct pkcs7_signedandenveloped_st { ASN1_INTEGER *version; /* version 1 */ STACK_OF(X509_ALGOR) *md_algs; /* md used */ - STACK_OF(X509) *cert; /* [ 0 ] */ - STACK_OF(X509_CRL) *crl; /* [ 1 ] */ + STACK_OF(X509) *cert; /* [ 0 ] */ /* name should be 'certificates' */ + STACK_OF(X509_CRL) *crl; /* [ 1 ] */ /* name should be 'crls' */ STACK_OF(PKCS7_SIGNER_INFO) *signer_info; PKCS7_ENC_CONTENT *enc_data; STACK_OF(PKCS7_RECIP_INFO) *recipientinfo; @@ -200,7 +203,7 @@ typedef struct pkcs7_st { /* NID_pkcs7_data */ ASN1_OCTET_STRING *data; /* NID_pkcs7_signed */ - PKCS7_SIGNED *sign; + PKCS7_SIGNED *sign; /* field name 'signed' would clash with C keyword */ /* NID_pkcs7_enveloped */ PKCS7_ENVELOPE *enveloped; /* NID_pkcs7_signedAndEnveloped */ @@ -341,13 +344,13 @@ int PKCS7_SIGNER_INFO_set(PKCS7_SIGNER_INFO *p7i, X509 *x509, EVP_PKEY *pkey, const EVP_MD *dgst); int PKCS7_SIGNER_INFO_sign(PKCS7_SIGNER_INFO *si); int PKCS7_add_signer(PKCS7 *p7, PKCS7_SIGNER_INFO *p7i); -int PKCS7_add_certificate(PKCS7 *p7, X509 *x509); -int PKCS7_add_crl(PKCS7 *p7, X509_CRL *x509); +int PKCS7_add_certificate(PKCS7 *p7, X509 *cert); +int PKCS7_add_crl(PKCS7 *p7, X509_CRL *crl); int PKCS7_content_new(PKCS7 *p7, int nid); int PKCS7_dataVerify(X509_STORE *cert_store, X509_STORE_CTX *ctx, BIO *bio, PKCS7 *p7, PKCS7_SIGNER_INFO *si); int PKCS7_signatureVerify(BIO *bio, PKCS7 *p7, PKCS7_SIGNER_INFO *si, - X509 *x509); + X509 *signer); BIO *PKCS7_dataInit(PKCS7 *p7, BIO *bio); int PKCS7_dataFinal(PKCS7 *p7, BIO *bio); diff --git a/deps/openssl/config/archs/linux-aarch64/no-asm/include/openssl/ssl.h b/deps/openssl/config/archs/linux-aarch64/no-asm/include/openssl/ssl.h index 3df725c56d6c5e..7e3d89c7ef3dc9 100644 --- a/deps/openssl/config/archs/linux-aarch64/no-asm/include/openssl/ssl.h +++ b/deps/openssl/config/archs/linux-aarch64/no-asm/include/openssl/ssl.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/ssl.h.in * - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved * Copyright 2005 Nokia. All rights reserved. * @@ -24,6 +24,7 @@ # endif # include +# include # include # include # include @@ -42,6 +43,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -231,10 +235,8 @@ typedef struct ssl_cipher_st SSL_CIPHER; typedef struct ssl_session_st SSL_SESSION; typedef struct tls_sigalgs_st TLS_SIGALGS; typedef struct ssl_conf_ctx_st SSL_CONF_CTX; -typedef struct ssl_comp_st SSL_COMP; STACK_OF(SSL_CIPHER); -STACK_OF(SSL_COMP); /* SRTP protection profiles for use with the use_srtp extension (RFC 5764)*/ typedef struct srtp_protection_profile_st { @@ -278,28 +280,31 @@ typedef int (*tls_session_secret_cb_fn)(SSL *s, void *secret, int *secret_len, /* Extension context codes */ /* This extension is only allowed in TLS */ -#define SSL_EXT_TLS_ONLY 0x0001 +#define SSL_EXT_TLS_ONLY 0x00001 /* This extension is only allowed in DTLS */ -#define SSL_EXT_DTLS_ONLY 0x0002 +#define SSL_EXT_DTLS_ONLY 0x00002 /* Some extensions may be allowed in DTLS but we don't implement them for it */ -#define SSL_EXT_TLS_IMPLEMENTATION_ONLY 0x0004 +#define SSL_EXT_TLS_IMPLEMENTATION_ONLY 0x00004 /* Most extensions are not defined for SSLv3 but EXT_TYPE_renegotiate is */ -#define SSL_EXT_SSL3_ALLOWED 0x0008 +#define SSL_EXT_SSL3_ALLOWED 0x00008 /* Extension is only defined for TLS1.2 and below */ -#define SSL_EXT_TLS1_2_AND_BELOW_ONLY 0x0010 +#define SSL_EXT_TLS1_2_AND_BELOW_ONLY 0x00010 /* Extension is only defined for TLS1.3 and above */ -#define SSL_EXT_TLS1_3_ONLY 0x0020 +#define SSL_EXT_TLS1_3_ONLY 0x00020 /* Ignore this extension during parsing if we are resuming */ -#define SSL_EXT_IGNORE_ON_RESUMPTION 0x0040 -#define SSL_EXT_CLIENT_HELLO 0x0080 +#define SSL_EXT_IGNORE_ON_RESUMPTION 0x00040 +#define SSL_EXT_CLIENT_HELLO 0x00080 /* Really means TLS1.2 or below */ -#define SSL_EXT_TLS1_2_SERVER_HELLO 0x0100 -#define SSL_EXT_TLS1_3_SERVER_HELLO 0x0200 -#define SSL_EXT_TLS1_3_ENCRYPTED_EXTENSIONS 0x0400 -#define SSL_EXT_TLS1_3_HELLO_RETRY_REQUEST 0x0800 -#define SSL_EXT_TLS1_3_CERTIFICATE 0x1000 -#define SSL_EXT_TLS1_3_NEW_SESSION_TICKET 0x2000 -#define SSL_EXT_TLS1_3_CERTIFICATE_REQUEST 0x4000 +#define SSL_EXT_TLS1_2_SERVER_HELLO 0x00100 +#define SSL_EXT_TLS1_3_SERVER_HELLO 0x00200 +#define SSL_EXT_TLS1_3_ENCRYPTED_EXTENSIONS 0x00400 +#define SSL_EXT_TLS1_3_HELLO_RETRY_REQUEST 0x00800 +#define SSL_EXT_TLS1_3_CERTIFICATE 0x01000 +#define SSL_EXT_TLS1_3_NEW_SESSION_TICKET 0x02000 +#define SSL_EXT_TLS1_3_CERTIFICATE_REQUEST 0x04000 +#define SSL_EXT_TLS1_3_CERTIFICATE_COMPRESSION 0x08000 +/* When sending a raw public key in a certificate message */ +#define SSL_EXT_TLS1_3_RAW_PUBLIC_KEY 0x10000 /* Typedefs for handling custom extensions */ @@ -404,7 +409,7 @@ typedef int (*SSL_async_callback_fn)(SSL *s, void *arg); */ # define SSL_OP_CIPHER_SERVER_PREFERENCE SSL_OP_BIT(22) /* - * If set, a server will allow a client to issue a SSLv3.0 version + * If set, a server will allow a client to issue an SSLv3.0 version * number as latest version supported in the premaster secret, even when * TLSv1.0 (version 3.1) was announced in the client hello. Normally * this is forbidden to prevent version rollback attacks. @@ -430,6 +435,19 @@ typedef int (*SSL_async_callback_fn)(SSL *s, void *arg); * interoperability with CryptoPro CSP 3.x */ # define SSL_OP_CRYPTOPRO_TLSEXT_BUG SSL_OP_BIT(31) +/* + * Disable RFC8879 certificate compression + * SSL_OP_NO_TX_CERTIFICATE_COMPRESSION: don't send compressed certificates, + * and ignore the extension when received. + * SSL_OP_NO_RX_CERTIFICATE_COMPRESSION: don't send the extension, and + * subsequently indicating that receiving is not supported + */ +# define SSL_OP_NO_TX_CERTIFICATE_COMPRESSION SSL_OP_BIT(32) +# define SSL_OP_NO_RX_CERTIFICATE_COMPRESSION SSL_OP_BIT(33) + /* Enable KTLS TX zerocopy on Linux */ +# define SSL_OP_ENABLE_KTLS_TX_ZEROCOPY_SENDFILE SSL_OP_BIT(34) + +#define SSL_OP_PREFER_NO_DHE_KEX SSL_OP_BIT(35) /* * Option "collections." @@ -574,6 +592,8 @@ typedef int (*SSL_async_callback_fn)(SSL *s, void *arg); # define CERT_PKEY_CERT_TYPE 0x400 /* Cert chain suitable to Suite B */ # define CERT_PKEY_SUITEB 0x800 +/* Cert pkey valid for raw public key use */ +# define CERT_PKEY_RPK 0x1000 # define SSL_CONF_FLAG_CMDLINE 0x1 # define SSL_CONF_FLAG_FILE 0x2 @@ -965,6 +985,7 @@ uint32_t SSL_get_recv_max_early_data(const SSL *s); # include /* This is mostly sslv3 with a few tweaks */ # include /* Datagram TLS */ # include /* Support for the use_srtp extension */ +# include #ifdef __cplusplus extern "C" { @@ -1000,32 +1021,6 @@ SKM_DEFINE_STACK_OF_INTERNAL(SSL_CIPHER, const SSL_CIPHER, SSL_CIPHER) #define sk_SSL_CIPHER_dup(sk) ((STACK_OF(SSL_CIPHER) *)OPENSSL_sk_dup(ossl_check_const_SSL_CIPHER_sk_type(sk))) #define sk_SSL_CIPHER_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(SSL_CIPHER) *)OPENSSL_sk_deep_copy(ossl_check_const_SSL_CIPHER_sk_type(sk), ossl_check_SSL_CIPHER_copyfunc_type(copyfunc), ossl_check_SSL_CIPHER_freefunc_type(freefunc))) #define sk_SSL_CIPHER_set_cmp_func(sk, cmp) ((sk_SSL_CIPHER_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_SSL_CIPHER_sk_type(sk), ossl_check_SSL_CIPHER_compfunc_type(cmp))) -SKM_DEFINE_STACK_OF_INTERNAL(SSL_COMP, SSL_COMP, SSL_COMP) -#define sk_SSL_COMP_num(sk) OPENSSL_sk_num(ossl_check_const_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_value(sk, idx) ((SSL_COMP *)OPENSSL_sk_value(ossl_check_const_SSL_COMP_sk_type(sk), (idx))) -#define sk_SSL_COMP_new(cmp) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new(ossl_check_SSL_COMP_compfunc_type(cmp))) -#define sk_SSL_COMP_new_null() ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new_null()) -#define sk_SSL_COMP_new_reserve(cmp, n) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new_reserve(ossl_check_SSL_COMP_compfunc_type(cmp), (n))) -#define sk_SSL_COMP_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_SSL_COMP_sk_type(sk), (n)) -#define sk_SSL_COMP_free(sk) OPENSSL_sk_free(ossl_check_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_zero(sk) OPENSSL_sk_zero(ossl_check_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_delete(sk, i) ((SSL_COMP *)OPENSSL_sk_delete(ossl_check_SSL_COMP_sk_type(sk), (i))) -#define sk_SSL_COMP_delete_ptr(sk, ptr) ((SSL_COMP *)OPENSSL_sk_delete_ptr(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr))) -#define sk_SSL_COMP_push(sk, ptr) OPENSSL_sk_push(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) -#define sk_SSL_COMP_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) -#define sk_SSL_COMP_pop(sk) ((SSL_COMP *)OPENSSL_sk_pop(ossl_check_SSL_COMP_sk_type(sk))) -#define sk_SSL_COMP_shift(sk) ((SSL_COMP *)OPENSSL_sk_shift(ossl_check_SSL_COMP_sk_type(sk))) -#define sk_SSL_COMP_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_SSL_COMP_sk_type(sk),ossl_check_SSL_COMP_freefunc_type(freefunc)) -#define sk_SSL_COMP_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr), (idx)) -#define sk_SSL_COMP_set(sk, idx, ptr) ((SSL_COMP *)OPENSSL_sk_set(ossl_check_SSL_COMP_sk_type(sk), (idx), ossl_check_SSL_COMP_type(ptr))) -#define sk_SSL_COMP_find(sk, ptr) OPENSSL_sk_find(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) -#define sk_SSL_COMP_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) -#define sk_SSL_COMP_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr), pnum) -#define sk_SSL_COMP_sort(sk) OPENSSL_sk_sort(ossl_check_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_dup(sk) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_dup(ossl_check_const_SSL_COMP_sk_type(sk))) -#define sk_SSL_COMP_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_deep_copy(ossl_check_const_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_copyfunc_type(copyfunc), ossl_check_SSL_COMP_freefunc_type(freefunc))) -#define sk_SSL_COMP_set_cmp_func(sk, cmp) ((sk_SSL_COMP_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_compfunc_type(cmp))) /* compatibility */ @@ -1066,6 +1061,7 @@ typedef enum { DTLS_ST_CR_HELLO_VERIFY_REQUEST, TLS_ST_CR_SRVR_HELLO, TLS_ST_CR_CERT, + TLS_ST_CR_COMP_CERT, TLS_ST_CR_CERT_STATUS, TLS_ST_CR_KEY_EXCH, TLS_ST_CR_CERT_REQ, @@ -1075,6 +1071,7 @@ typedef enum { TLS_ST_CR_FINISHED, TLS_ST_CW_CLNT_HELLO, TLS_ST_CW_CERT, + TLS_ST_CW_COMP_CERT, TLS_ST_CW_KEY_EXCH, TLS_ST_CW_CERT_VRFY, TLS_ST_CW_CHANGE, @@ -1085,10 +1082,12 @@ typedef enum { DTLS_ST_SW_HELLO_VERIFY_REQUEST, TLS_ST_SW_SRVR_HELLO, TLS_ST_SW_CERT, + TLS_ST_SW_COMP_CERT, TLS_ST_SW_KEY_EXCH, TLS_ST_SW_CERT_REQ, TLS_ST_SW_SRVR_DONE, TLS_ST_SR_CERT, + TLS_ST_SR_COMP_CERT, TLS_ST_SR_KEY_EXCH, TLS_ST_SR_CERT_VRFY, TLS_ST_SR_NEXT_PROTO, @@ -1380,9 +1379,13 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) # define SSL_CTRL_GET_SIGNATURE_NID 132 # define SSL_CTRL_GET_TMP_KEY 133 # define SSL_CTRL_GET_NEGOTIATED_GROUP 134 +# define SSL_CTRL_GET_IANA_GROUPS 135 # define SSL_CTRL_SET_RETRY_VERIFY 136 # define SSL_CTRL_GET_VERIFY_CERT_STORE 137 # define SSL_CTRL_GET_CHAIN_CERT_STORE 138 +# define SSL_CTRL_GET0_IMPLEMENTED_GROUPS 139 +# define SSL_CTRL_GET_SIGNATURE_NAME 140 +# define SSL_CTRL_GET_PEER_SIGNATURE_NAME 141 # define SSL_CERT_SET_FIRST 1 # define SSL_CERT_SET_NEXT 2 # define SSL_CERT_SET_SERVER 3 @@ -1485,10 +1488,15 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) # define SSL_get1_groups(s, glist) \ SSL_ctrl(s,SSL_CTRL_GET_GROUPS,0,(int*)(glist)) +# define SSL_get0_iana_groups(s, plst) \ + SSL_ctrl(s,SSL_CTRL_GET_IANA_GROUPS,0,(uint16_t **)(plst)) # define SSL_CTX_set1_groups(ctx, glist, glistlen) \ SSL_CTX_ctrl(ctx,SSL_CTRL_SET_GROUPS,glistlen,(int *)(glist)) # define SSL_CTX_set1_groups_list(ctx, s) \ SSL_CTX_ctrl(ctx,SSL_CTRL_SET_GROUPS_LIST,0,(char *)(s)) +# define SSL_CTX_get0_implemented_groups(ctx, all, out) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_GET0_IMPLEMENTED_GROUPS, all, \ + (STACK_OF(OPENSSL_CSTRING) *)(out)) # define SSL_set1_groups(s, glist, glistlen) \ SSL_ctrl(s,SSL_CTRL_SET_GROUPS,glistlen,(char *)(glist)) # define SSL_set1_groups_list(s, str) \ @@ -1520,8 +1528,12 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) (char *)(clist)) # define SSL_set1_client_certificate_types(s, clist, clistlen) \ SSL_ctrl(s,SSL_CTRL_SET_CLIENT_CERT_TYPES,clistlen,(char *)(clist)) +# define SSL_get0_signature_name(s, str) \ + SSL_ctrl(s,SSL_CTRL_GET_SIGNATURE_NAME,0,(1?(str):(const char **)NULL)) # define SSL_get_signature_nid(s, pn) \ SSL_ctrl(s,SSL_CTRL_GET_SIGNATURE_NID,0,pn) +# define SSL_get0_peer_signature_name(s, str) \ + SSL_ctrl(s,SSL_CTRL_GET_PEER_SIGNATURE_NAME,0,(1?(str):(const char **)NULL)) # define SSL_get_peer_signature_nid(s, pn) \ SSL_ctrl(s,SSL_CTRL_GET_PEER_SIGNATURE_NID,0,pn) # define SSL_get_peer_tmp_key(s, pk) \ @@ -1549,6 +1561,7 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) # define SSL_get_max_proto_version(s) \ SSL_ctrl(s, SSL_CTRL_GET_MAX_PROTO_VERSION, 0, NULL) +const char *SSL_get0_group_name(SSL *s); const char *SSL_group_to_name(SSL *s, int id); /* Backwards compatibility, original 1.1.0 names */ @@ -1613,7 +1626,11 @@ void SSL_CTX_set1_cert_store(SSL_CTX *, X509_STORE *); __owur int SSL_want(const SSL *s); __owur int SSL_clear(SSL *s); +#ifndef OPENSSL_NO_DEPRECATED_3_4 +OSSL_DEPRECATEDIN_3_4_FOR("not Y2038-safe, replace with SSL_CTX_flush_sessions_ex()") void SSL_CTX_flush_sessions(SSL_CTX *ctx, long tm); +#endif +void SSL_CTX_flush_sessions_ex(SSL_CTX *ctx, time_t tm); __owur const SSL_CIPHER *SSL_get_current_cipher(const SSL *s); __owur const SSL_CIPHER *SSL_get_pending_cipher(const SSL *s); @@ -1725,13 +1742,21 @@ __owur const char *SSL_state_string(const SSL *s); __owur const char *SSL_rstate_string(const SSL *s); __owur const char *SSL_state_string_long(const SSL *s); __owur const char *SSL_rstate_string_long(const SSL *s); + +#ifndef OPENSSL_NO_DEPRECATED_3_4 +OSSL_DEPRECATEDIN_3_4_FOR("not Y2038-safe, replace with SSL_SESSION_get_time_ex()") __owur long SSL_SESSION_get_time(const SSL_SESSION *s); +OSSL_DEPRECATEDIN_3_4_FOR("not Y2038-safe, replace with SSL_SESSION_set_time_ex()") __owur long SSL_SESSION_set_time(SSL_SESSION *s, long t); +#endif __owur long SSL_SESSION_get_timeout(const SSL_SESSION *s); __owur long SSL_SESSION_set_timeout(SSL_SESSION *s, long t); __owur int SSL_SESSION_get_protocol_version(const SSL_SESSION *s); __owur int SSL_SESSION_set_protocol_version(SSL_SESSION *s, int version); +__owur time_t SSL_SESSION_get_time_ex(const SSL_SESSION *s); +__owur time_t SSL_SESSION_set_time_ex(SSL_SESSION *s, time_t t); + __owur const char *SSL_SESSION_get0_hostname(const SSL_SESSION *s); __owur int SSL_SESSION_set1_hostname(SSL_SESSION *s, const char *hostname); void SSL_SESSION_get0_alpn_selected(const SSL_SESSION *s, @@ -1783,6 +1808,9 @@ __owur int SSL_has_matching_session_id(const SSL *s, unsigned int id_len); SSL_SESSION *d2i_SSL_SESSION(SSL_SESSION **a, const unsigned char **pp, long length); +SSL_SESSION *d2i_SSL_SESSION_ex(SSL_SESSION **a, const unsigned char **pp, + long length, OSSL_LIB_CTX *libctx, + const char *propq); # ifdef OPENSSL_X509_H __owur X509 *SSL_get0_peer_certificate(const SSL *s); @@ -1840,6 +1868,8 @@ __owur int SSL_CTX_set_session_id_context(SSL_CTX *ctx, SSL *SSL_new(SSL_CTX *ctx); int SSL_up_ref(SSL *s); int SSL_is_dtls(const SSL *s); +int SSL_is_tls(const SSL *s); +int SSL_is_quic(const SSL *s); __owur int SSL_set_session_id_context(SSL *ssl, const unsigned char *sid_ctx, unsigned int sid_ctx_len); @@ -1848,8 +1878,8 @@ __owur int SSL_set_purpose(SSL *ssl, int purpose); __owur int SSL_CTX_set_trust(SSL_CTX *ctx, int trust); __owur int SSL_set_trust(SSL *ssl, int trust); -__owur int SSL_set1_host(SSL *s, const char *hostname); -__owur int SSL_add1_host(SSL *s, const char *hostname); +__owur int SSL_set1_host(SSL *s, const char *host); +__owur int SSL_add1_host(SSL *s, const char *host); __owur const char *SSL_get0_peername(SSL *s); void SSL_set_hostflags(SSL *s, unsigned int flags); @@ -1924,6 +1954,11 @@ OSSL_DEPRECATEDIN_3_0 __owur char *SSL_get_srp_userinfo(SSL *s); typedef int (*SSL_client_hello_cb_fn) (SSL *s, int *al, void *arg); void SSL_CTX_set_client_hello_cb(SSL_CTX *c, SSL_client_hello_cb_fn cb, void *arg); +typedef int (*SSL_new_pending_conn_cb_fn) (SSL_CTX *ctx, SSL *new_ssl, + void *arg); +void SSL_CTX_set_new_pending_conn_cb(SSL_CTX *c, SSL_new_pending_conn_cb_fn cb, + void *arg); + int SSL_client_hello_isv2(SSL *s); unsigned int SSL_client_hello_get0_legacy_version(SSL *s); size_t SSL_client_hello_get0_random(SSL *s, const unsigned char **out); @@ -1932,6 +1967,8 @@ size_t SSL_client_hello_get0_ciphers(SSL *s, const unsigned char **out); size_t SSL_client_hello_get0_compression_methods(SSL *s, const unsigned char **out); int SSL_client_hello_get1_extensions_present(SSL *s, int **out, size_t *outlen); +int SSL_client_hello_get_extension_order(SSL *s, uint16_t *exts, + size_t *num_exts); int SSL_client_hello_get0_ext(SSL *s, unsigned int type, const unsigned char **out, size_t *outlen); @@ -1978,6 +2015,12 @@ long SSL_callback_ctrl(SSL *, int, void (*)(void)); long SSL_CTX_ctrl(SSL_CTX *ctx, int cmd, long larg, void *parg); long SSL_CTX_callback_ctrl(SSL_CTX *, int, void (*)(void)); +# define SSL_WRITE_FLAG_CONCLUDE (1U << 0) + +__owur int SSL_write_ex2(SSL *s, const void *buf, size_t num, + uint64_t flags, + size_t *written); + # define SSL_EARLY_DATA_NOT_SENT 0 # define SSL_EARLY_DATA_REJECTED 1 # define SSL_EARLY_DATA_ACCEPTED 2 @@ -1986,6 +2029,7 @@ __owur int SSL_get_early_data_status(const SSL *s); __owur int SSL_get_error(const SSL *s, int ret_code); __owur const char *SSL_get_version(const SSL *s); +__owur int SSL_get_handshake_rtt(const SSL *s, uint64_t *rtt); /* This sets the 'default' SSL version that SSL_new() will create */ # ifndef OPENSSL_NO_DEPRECATED_3_0 @@ -2281,6 +2325,8 @@ void SSL_CTX_set_record_padding_callback(SSL_CTX *ctx, void SSL_CTX_set_record_padding_callback_arg(SSL_CTX *ctx, void *arg); void *SSL_CTX_get_record_padding_callback_arg(const SSL_CTX *ctx); int SSL_CTX_set_block_padding(SSL_CTX *ctx, size_t block_size); +int SSL_CTX_set_block_padding_ex(SSL_CTX *ctx, size_t app_block_size, + size_t hs_block_size); int SSL_set_record_padding_callback(SSL *ssl, size_t (*cb) (SSL *ssl, int type, @@ -2288,12 +2334,255 @@ int SSL_set_record_padding_callback(SSL *ssl, void SSL_set_record_padding_callback_arg(SSL *ssl, void *arg); void *SSL_get_record_padding_callback_arg(const SSL *ssl); int SSL_set_block_padding(SSL *ssl, size_t block_size); - +int SSL_set_block_padding_ex(SSL *ssl, size_t app_block_size, + size_t hs_block_size); int SSL_set_num_tickets(SSL *s, size_t num_tickets); size_t SSL_get_num_tickets(const SSL *s); int SSL_CTX_set_num_tickets(SSL_CTX *ctx, size_t num_tickets); size_t SSL_CTX_get_num_tickets(const SSL_CTX *ctx); +/* QUIC support */ +int SSL_handle_events(SSL *s); +__owur int SSL_get_event_timeout(SSL *s, struct timeval *tv, int *is_infinite); +__owur int SSL_get_rpoll_descriptor(SSL *s, BIO_POLL_DESCRIPTOR *desc); +__owur int SSL_get_wpoll_descriptor(SSL *s, BIO_POLL_DESCRIPTOR *desc); +__owur int SSL_net_read_desired(SSL *s); +__owur int SSL_net_write_desired(SSL *s); +__owur int SSL_set_blocking_mode(SSL *s, int blocking); +__owur int SSL_get_blocking_mode(SSL *s); +__owur int SSL_set1_initial_peer_addr(SSL *s, const BIO_ADDR *peer_addr); +__owur SSL *SSL_get0_connection(SSL *s); +__owur int SSL_is_connection(SSL *s); + +__owur int SSL_is_listener(SSL *ssl); +__owur SSL *SSL_get0_listener(SSL *s); +#define SSL_LISTENER_FLAG_NO_VALIDATE (1UL << 1) +__owur SSL *SSL_new_listener(SSL_CTX *ctx, uint64_t flags); +__owur SSL *SSL_new_listener_from(SSL *ssl, uint64_t flags); +__owur SSL *SSL_new_from_listener(SSL *ssl, uint64_t flags); +#define SSL_ACCEPT_CONNECTION_NO_BLOCK (1UL << 0) +__owur SSL *SSL_accept_connection(SSL *ssl, uint64_t flags); +__owur size_t SSL_get_accept_connection_queue_len(SSL *ssl); +__owur int SSL_listen(SSL *ssl); + +__owur int SSL_is_domain(SSL *s); +__owur SSL *SSL_get0_domain(SSL *s); +__owur SSL *SSL_new_domain(SSL_CTX *ctx, uint64_t flags); + +#define SSL_DOMAIN_FLAG_SINGLE_THREAD (1U << 0) +#define SSL_DOMAIN_FLAG_MULTI_THREAD (1U << 1) +#define SSL_DOMAIN_FLAG_THREAD_ASSISTED (1U << 2) +#define SSL_DOMAIN_FLAG_BLOCKING (1U << 3) +#define SSL_DOMAIN_FLAG_LEGACY_BLOCKING (1U << 4) + +__owur int SSL_CTX_set_domain_flags(SSL_CTX *ctx, uint64_t domain_flags); +__owur int SSL_CTX_get_domain_flags(const SSL_CTX *ctx, uint64_t *domain_flags); +__owur int SSL_get_domain_flags(const SSL *ssl, uint64_t *domain_flags); + +#define SSL_STREAM_TYPE_NONE 0 +#define SSL_STREAM_TYPE_READ (1U << 0) +#define SSL_STREAM_TYPE_WRITE (1U << 1) +#define SSL_STREAM_TYPE_BIDI (SSL_STREAM_TYPE_READ | SSL_STREAM_TYPE_WRITE) +__owur int SSL_get_stream_type(SSL *s); + +__owur uint64_t SSL_get_stream_id(SSL *s); +__owur int SSL_is_stream_local(SSL *s); + +#define SSL_DEFAULT_STREAM_MODE_NONE 0 +#define SSL_DEFAULT_STREAM_MODE_AUTO_BIDI 1 +#define SSL_DEFAULT_STREAM_MODE_AUTO_UNI 2 +__owur int SSL_set_default_stream_mode(SSL *s, uint32_t mode); + +#define SSL_STREAM_FLAG_UNI (1U << 0) +#define SSL_STREAM_FLAG_NO_BLOCK (1U << 1) +#define SSL_STREAM_FLAG_ADVANCE (1U << 2) +__owur SSL *SSL_new_stream(SSL *s, uint64_t flags); + +#define SSL_INCOMING_STREAM_POLICY_AUTO 0 +#define SSL_INCOMING_STREAM_POLICY_ACCEPT 1 +#define SSL_INCOMING_STREAM_POLICY_REJECT 2 +__owur int SSL_set_incoming_stream_policy(SSL *s, int policy, uint64_t aec); + +#define SSL_ACCEPT_STREAM_NO_BLOCK (1U << 0) +__owur SSL *SSL_accept_stream(SSL *s, uint64_t flags); +__owur size_t SSL_get_accept_stream_queue_len(SSL *s); + +# ifndef OPENSSL_NO_QUIC +__owur int SSL_inject_net_dgram(SSL *s, const unsigned char *buf, + size_t buf_len, + const BIO_ADDR *peer, + const BIO_ADDR *local); +# endif + +typedef struct ssl_shutdown_ex_args_st { + uint64_t quic_error_code; + const char *quic_reason; +} SSL_SHUTDOWN_EX_ARGS; + +#define SSL_SHUTDOWN_FLAG_RAPID (1U << 0) +#define SSL_SHUTDOWN_FLAG_NO_STREAM_FLUSH (1U << 1) +#define SSL_SHUTDOWN_FLAG_NO_BLOCK (1U << 2) +#define SSL_SHUTDOWN_FLAG_WAIT_PEER (1U << 3) + +__owur int SSL_shutdown_ex(SSL *ssl, uint64_t flags, + const SSL_SHUTDOWN_EX_ARGS *args, + size_t args_len); + +__owur int SSL_stream_conclude(SSL *ssl, uint64_t flags); + +typedef struct ssl_stream_reset_args_st { + uint64_t quic_error_code; +} SSL_STREAM_RESET_ARGS; + +__owur int SSL_stream_reset(SSL *ssl, + const SSL_STREAM_RESET_ARGS *args, + size_t args_len); + +#define SSL_STREAM_STATE_NONE 0 +#define SSL_STREAM_STATE_OK 1 +#define SSL_STREAM_STATE_WRONG_DIR 2 +#define SSL_STREAM_STATE_FINISHED 3 +#define SSL_STREAM_STATE_RESET_LOCAL 4 +#define SSL_STREAM_STATE_RESET_REMOTE 5 +#define SSL_STREAM_STATE_CONN_CLOSED 6 +__owur int SSL_get_stream_read_state(SSL *ssl); +__owur int SSL_get_stream_write_state(SSL *ssl); + +__owur int SSL_get_stream_read_error_code(SSL *ssl, uint64_t *app_error_code); +__owur int SSL_get_stream_write_error_code(SSL *ssl, uint64_t *app_error_code); + +#define SSL_CONN_CLOSE_FLAG_LOCAL (1U << 0) +#define SSL_CONN_CLOSE_FLAG_TRANSPORT (1U << 1) + +typedef struct ssl_conn_close_info_st { + uint64_t error_code, frame_type; + const char *reason; + size_t reason_len; + uint32_t flags; +} SSL_CONN_CLOSE_INFO; + +__owur int SSL_get_conn_close_info(SSL *ssl, + SSL_CONN_CLOSE_INFO *info, + size_t info_len); + +# define SSL_VALUE_CLASS_GENERIC 0 +# define SSL_VALUE_CLASS_FEATURE_REQUEST 1 +# define SSL_VALUE_CLASS_FEATURE_PEER_REQUEST 2 +# define SSL_VALUE_CLASS_FEATURE_NEGOTIATED 3 + +# define SSL_VALUE_NONE 0 +# define SSL_VALUE_QUIC_STREAM_BIDI_LOCAL_AVAIL 1 +# define SSL_VALUE_QUIC_STREAM_BIDI_REMOTE_AVAIL 2 +# define SSL_VALUE_QUIC_STREAM_UNI_LOCAL_AVAIL 3 +# define SSL_VALUE_QUIC_STREAM_UNI_REMOTE_AVAIL 4 +# define SSL_VALUE_QUIC_IDLE_TIMEOUT 5 +# define SSL_VALUE_EVENT_HANDLING_MODE 6 +# define SSL_VALUE_STREAM_WRITE_BUF_SIZE 7 +# define SSL_VALUE_STREAM_WRITE_BUF_USED 8 +# define SSL_VALUE_STREAM_WRITE_BUF_AVAIL 9 + +# define SSL_VALUE_EVENT_HANDLING_MODE_INHERIT 0 +# define SSL_VALUE_EVENT_HANDLING_MODE_IMPLICIT 1 +# define SSL_VALUE_EVENT_HANDLING_MODE_EXPLICIT 2 + +int SSL_get_value_uint(SSL *s, uint32_t class_, uint32_t id, uint64_t *v); +int SSL_set_value_uint(SSL *s, uint32_t class_, uint32_t id, uint64_t v); + +# define SSL_get_generic_value_uint(ssl, id, v) \ + SSL_get_value_uint((ssl), SSL_VALUE_CLASS_GENERIC, (id), (v)) +# define SSL_set_generic_value_uint(ssl, id, v) \ + SSL_set_value_uint((ssl), SSL_VALUE_CLASS_GENERIC, (id), (v)) +# define SSL_get_feature_request_uint(ssl, id, v) \ + SSL_get_value_uint((ssl), SSL_VALUE_CLASS_FEATURE_REQUEST, (id), (v)) +# define SSL_set_feature_request_uint(ssl, id, v) \ + SSL_set_value_uint((ssl), SSL_VALUE_CLASS_FEATURE_REQUEST, (id), (v)) +# define SSL_get_feature_peer_request_uint(ssl, id, v) \ + SSL_get_value_uint((ssl), SSL_VALUE_CLASS_FEATURE_PEER_REQUEST, (id), (v)) +# define SSL_get_feature_negotiated_uint(ssl, id, v) \ + SSL_get_value_uint((ssl), SSL_VALUE_CLASS_FEATURE_NEGOTIATED, (id), (v)) + +# define SSL_get_quic_stream_bidi_local_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_QUIC_STREAM_BIDI_LOCAL_AVAIL, \ + (value)) +# define SSL_get_quic_stream_bidi_remote_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_QUIC_STREAM_BIDI_REMOTE_AVAIL, \ + (value)) +# define SSL_get_quic_stream_uni_local_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_QUIC_STREAM_UNI_LOCAL_AVAIL, \ + (value)) +# define SSL_get_quic_stream_uni_remote_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_QUIC_STREAM_UNI_REMOTE_AVAIL, \ + (value)) + +# define SSL_get_event_handling_mode(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_EVENT_HANDLING_MODE, \ + (value)) +# define SSL_set_event_handling_mode(ssl, value) \ + SSL_set_generic_value_uint((ssl), SSL_VALUE_EVENT_HANDLING_MODE, \ + (value)) + +# define SSL_get_stream_write_buf_size(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_STREAM_WRITE_BUF_SIZE, \ + (value)) +# define SSL_get_stream_write_buf_used(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_STREAM_WRITE_BUF_USED, \ + (value)) +# define SSL_get_stream_write_buf_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_STREAM_WRITE_BUF_AVAIL, \ + (value)) + +# define SSL_POLL_EVENT_NONE 0 + +# define SSL_POLL_EVENT_F (1U << 0) /* F (Failure) */ +# define SSL_POLL_EVENT_EL (1U << 1) /* EL (Exception on Listener) */ +# define SSL_POLL_EVENT_EC (1U << 2) /* EC (Exception on Conn) */ +# define SSL_POLL_EVENT_ECD (1U << 3) /* ECD (Exception on Conn Drained) */ +# define SSL_POLL_EVENT_ER (1U << 4) /* ER (Exception on Read) */ +# define SSL_POLL_EVENT_EW (1U << 5) /* EW (Exception on Write) */ +# define SSL_POLL_EVENT_R (1U << 6) /* R (Readable) */ +# define SSL_POLL_EVENT_W (1U << 7) /* W (Writable) */ +# define SSL_POLL_EVENT_IC (1U << 8) /* IC (Incoming Connection) */ +# define SSL_POLL_EVENT_ISB (1U << 9) /* ISB (Incoming Stream: Bidi) */ +# define SSL_POLL_EVENT_ISU (1U << 10) /* ISU (Incoming Stream: Uni) */ +# define SSL_POLL_EVENT_OSB (1U << 11) /* OSB (Outgoing Stream: Bidi) */ +# define SSL_POLL_EVENT_OSU (1U << 12) /* OSU (Outgoing Stream: Uni) */ + +# define SSL_POLL_EVENT_RW (SSL_POLL_EVENT_R | SSL_POLL_EVENT_W) +# define SSL_POLL_EVENT_RE (SSL_POLL_EVENT_R | SSL_POLL_EVENT_ER) +# define SSL_POLL_EVENT_WE (SSL_POLL_EVENT_W | SSL_POLL_EVENT_EW) +# define SSL_POLL_EVENT_RWE (SSL_POLL_EVENT_RE | SSL_POLL_EVENT_WE) +# define SSL_POLL_EVENT_E (SSL_POLL_EVENT_EL | SSL_POLL_EVENT_EC \ + | SSL_POLL_EVENT_ER | SSL_POLL_EVENT_EW) +# define SSL_POLL_EVENT_IS (SSL_POLL_EVENT_ISB | SSL_POLL_EVENT_ISU) +# define SSL_POLL_EVENT_ISE (SSL_POLL_EVENT_IS | SSL_POLL_EVENT_EC) +# define SSL_POLL_EVENT_I (SSL_POLL_EVENT_IS | SSL_POLL_EVENT_IC) +# define SSL_POLL_EVENT_OS (SSL_POLL_EVENT_OSB | SSL_POLL_EVENT_OSU) +# define SSL_POLL_EVENT_OSE (SSL_POLL_EVENT_OS | SSL_POLL_EVENT_EC) + +typedef struct ssl_poll_item_st { + BIO_POLL_DESCRIPTOR desc; + uint64_t events, revents; +} SSL_POLL_ITEM; + +# define SSL_POLL_FLAG_NO_HANDLE_EVENTS (1U << 0) + +__owur int SSL_poll(SSL_POLL_ITEM *items, + size_t num_items, + size_t stride, + const struct timeval *timeout, + uint64_t flags, + size_t *result_count); + +static ossl_inline ossl_unused BIO_POLL_DESCRIPTOR +SSL_as_poll_descriptor(SSL *s) +{ + BIO_POLL_DESCRIPTOR d; + + d.type = BIO_POLL_DESCRIPTOR_TYPE_SSL; + d.value.ssl = s; + return d; +} + # ifndef OPENSSL_NO_DEPRECATED_1_1_0 # define SSL_cache_hit(s) SSL_session_reused(s) # endif @@ -2593,6 +2882,51 @@ void SSL_set_allow_early_data_cb(SSL *s, const char *OSSL_default_cipher_list(void); const char *OSSL_default_ciphersuites(void); +/* RFC8879 Certificate compression APIs */ + +int SSL_CTX_compress_certs(SSL_CTX *ctx, int alg); +int SSL_compress_certs(SSL *ssl, int alg); + +int SSL_CTX_set1_cert_comp_preference(SSL_CTX *ctx, int *algs, size_t len); +int SSL_set1_cert_comp_preference(SSL *ssl, int *algs, size_t len); + +int SSL_CTX_set1_compressed_cert(SSL_CTX *ctx, int algorithm, unsigned char *comp_data, + size_t comp_length, size_t orig_length); +int SSL_set1_compressed_cert(SSL *ssl, int algorithm, unsigned char *comp_data, + size_t comp_length, size_t orig_length); +size_t SSL_CTX_get1_compressed_cert(SSL_CTX *ctx, int alg, unsigned char **data, size_t *orig_len); +size_t SSL_get1_compressed_cert(SSL *ssl, int alg, unsigned char **data, size_t *orig_len); + +__owur int SSL_add_expected_rpk(SSL *s, EVP_PKEY *rpk); +__owur EVP_PKEY *SSL_get0_peer_rpk(const SSL *s); +__owur EVP_PKEY *SSL_SESSION_get0_peer_rpk(SSL_SESSION *s); +__owur int SSL_get_negotiated_client_cert_type(const SSL *s); +__owur int SSL_get_negotiated_server_cert_type(const SSL *s); + +__owur int SSL_set1_client_cert_type(SSL *s, const unsigned char *val, size_t len); +__owur int SSL_set1_server_cert_type(SSL *s, const unsigned char *val, size_t len); +__owur int SSL_CTX_set1_client_cert_type(SSL_CTX *ctx, const unsigned char *val, size_t len); +__owur int SSL_CTX_set1_server_cert_type(SSL_CTX *ctx, const unsigned char *val, size_t len); +__owur int SSL_get0_client_cert_type(const SSL *s, unsigned char **t, size_t *len); +__owur int SSL_get0_server_cert_type(const SSL *s, unsigned char **t, size_t *len); +__owur int SSL_CTX_get0_client_cert_type(const SSL_CTX *ctx, unsigned char **t, size_t *len); +__owur int SSL_CTX_get0_server_cert_type(const SSL_CTX *s, unsigned char **t, size_t *len); + +/* + * Protection level. For <= TLSv1.2 only "NONE" and "APPLICATION" are used. + */ +# define OSSL_RECORD_PROTECTION_LEVEL_NONE 0 +# define OSSL_RECORD_PROTECTION_LEVEL_EARLY 1 +# define OSSL_RECORD_PROTECTION_LEVEL_HANDSHAKE 2 +# define OSSL_RECORD_PROTECTION_LEVEL_APPLICATION 3 + +int SSL_set_quic_tls_cbs(SSL *s, const OSSL_DISPATCH *qtdis, void *arg); +int SSL_set_quic_tls_transport_params(SSL *s, + const unsigned char *params, + size_t params_len); + +int SSL_set_quic_tls_early_data_enabled(SSL *s, int enabled); + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/linux-aarch64/no-asm/include/openssl/x509.h b/deps/openssl/config/archs/linux-aarch64/no-asm/include/openssl/x509.h index 1f7755e5b69c75..d013458c226461 100644 --- a/deps/openssl/config/archs/linux-aarch64/no-asm/include/openssl/x509.h +++ b/deps/openssl/config/archs/linux-aarch64/no-asm/include/openssl/x509.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/x509.h.in * - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2024 The OpenSSL Project Authors. All Rights Reserved. * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved * * Licensed under the Apache License 2.0 (the "License"). You may not use @@ -40,6 +40,9 @@ # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -162,16 +165,24 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_CRL, X509_CRL, X509_CRL) # define X509_FILETYPE_ASN1 2 # define X509_FILETYPE_DEFAULT 3 -# define X509v3_KU_DIGITAL_SIGNATURE 0x0080 -# define X509v3_KU_NON_REPUDIATION 0x0040 -# define X509v3_KU_KEY_ENCIPHERMENT 0x0020 -# define X509v3_KU_DATA_ENCIPHERMENT 0x0010 -# define X509v3_KU_KEY_AGREEMENT 0x0008 -# define X509v3_KU_KEY_CERT_SIGN 0x0004 -# define X509v3_KU_CRL_SIGN 0x0002 -# define X509v3_KU_ENCIPHER_ONLY 0x0001 -# define X509v3_KU_DECIPHER_ONLY 0x8000 -# define X509v3_KU_UNDEF 0xffff +/*- + * : + * The KeyUsage BITSTRING is treated as a little-endian integer, hence bit `0` + * is 0x80, while bit `7` is 0x01 (the LSB of the integer value), bit `8` is + * then the MSB of the second octet, or 0x8000. + */ +# define X509v3_KU_DIGITAL_SIGNATURE 0x0080 /* (0) */ +# define X509v3_KU_NON_REPUDIATION 0x0040 /* (1) */ +# define X509v3_KU_KEY_ENCIPHERMENT 0x0020 /* (2) */ +# define X509v3_KU_DATA_ENCIPHERMENT 0x0010 /* (3) */ +# define X509v3_KU_KEY_AGREEMENT 0x0008 /* (4) */ +# define X509v3_KU_KEY_CERT_SIGN 0x0004 /* (5) */ +# define X509v3_KU_CRL_SIGN 0x0002 /* (6) */ +# define X509v3_KU_ENCIPHER_ONLY 0x0001 /* (7) */ +# define X509v3_KU_DECIPHER_ONLY 0x8000 /* (8) */ +# ifndef OPENSSL_NO_DEPRECATED_3_4 +# define X509v3_KU_UNDEF 0xffff /* vestigial, not used */ +# endif struct X509_algor_st { ASN1_OBJECT *algorithm; @@ -462,7 +473,12 @@ typedef struct PBKDF2PARAM_st { X509_ALGOR *prf; } PBKDF2PARAM; -#ifndef OPENSSL_NO_SCRYPT +typedef struct { + X509_ALGOR *keyDerivationFunc; + X509_ALGOR *messageAuthScheme; +} PBMAC1PARAM; + +# ifndef OPENSSL_NO_SCRYPT typedef struct SCRYPT_PARAMS_st { ASN1_OCTET_STRING *salt; ASN1_INTEGER *costParameter; @@ -470,7 +486,7 @@ typedef struct SCRYPT_PARAMS_st { ASN1_INTEGER *parallelizationParameter; ASN1_INTEGER *keyLength; } SCRYPT_PARAMS; -#endif +# endif #ifdef __cplusplus } @@ -603,6 +619,8 @@ EVP_PKEY *d2i_PrivateKey_ex_fp(FILE *fp, EVP_PKEY **a, OSSL_LIB_CTX *libctx, const char *propq); EVP_PKEY *d2i_PrivateKey_fp(FILE *fp, EVP_PKEY **a); int i2d_PUBKEY_fp(FILE *fp, const EVP_PKEY *pkey); +EVP_PKEY *d2i_PUBKEY_ex_fp(FILE *fp, EVP_PKEY **a, OSSL_LIB_CTX *libctx, + const char *propq); EVP_PKEY *d2i_PUBKEY_fp(FILE *fp, EVP_PKEY **a); # endif @@ -651,6 +669,8 @@ EVP_PKEY *d2i_PrivateKey_ex_bio(BIO *bp, EVP_PKEY **a, OSSL_LIB_CTX *libctx, const char *propq); EVP_PKEY *d2i_PrivateKey_bio(BIO *bp, EVP_PKEY **a); int i2d_PUBKEY_bio(BIO *bp, const EVP_PKEY *pkey); +EVP_PKEY *d2i_PUBKEY_ex_bio(BIO *bp, EVP_PKEY **a, OSSL_LIB_CTX *libctx, + const char *propq); EVP_PKEY *d2i_PUBKEY_bio(BIO *bp, EVP_PKEY **a); DECLARE_ASN1_DUP_FUNCTION(X509) @@ -884,12 +904,12 @@ int X509_REQ_get_signature_nid(const X509_REQ *req); int i2d_re_X509_REQ_tbs(X509_REQ *req, unsigned char **pp); int X509_REQ_set_pubkey(X509_REQ *x, EVP_PKEY *pkey); EVP_PKEY *X509_REQ_get_pubkey(X509_REQ *req); -EVP_PKEY *X509_REQ_get0_pubkey(X509_REQ *req); +EVP_PKEY *X509_REQ_get0_pubkey(const X509_REQ *req); X509_PUBKEY *X509_REQ_get_X509_PUBKEY(X509_REQ *req); int X509_REQ_extension_nid(int nid); int *X509_REQ_get_extension_nids(void); void X509_REQ_set_extension_nids(int *nids); -STACK_OF(X509_EXTENSION) *X509_REQ_get_extensions(X509_REQ *req); +STACK_OF(X509_EXTENSION) *X509_REQ_get_extensions(OSSL_FUTURE_CONST X509_REQ *req); int X509_REQ_add_extensions_nid(X509_REQ *req, const STACK_OF(X509_EXTENSION) *exts, int nid); int X509_REQ_add_extensions(X509_REQ *req, const STACK_OF(X509_EXTENSION) *ext); @@ -950,13 +970,14 @@ X509_REVOKED_get0_extensions(const X509_REVOKED *r); X509_CRL *X509_CRL_diff(X509_CRL *base, X509_CRL *newer, EVP_PKEY *skey, const EVP_MD *md, unsigned int flags); -int X509_REQ_check_private_key(X509_REQ *x509, EVP_PKEY *pkey); +int X509_REQ_check_private_key(const X509_REQ *req, EVP_PKEY *pkey); -int X509_check_private_key(const X509 *x509, const EVP_PKEY *pkey); +int X509_check_private_key(const X509 *cert, const EVP_PKEY *pkey); int X509_chain_check_suiteb(int *perror_depth, X509 *x, STACK_OF(X509) *chain, unsigned long flags); int X509_CRL_check_suiteb(X509_CRL *crl, EVP_PKEY *pk, unsigned long flags); +void OSSL_STACK_OF_X509_free(STACK_OF(X509) *certs); STACK_OF(X509) *X509_chain_up_ref(STACK_OF(X509) *chain); int X509_issuer_and_serial_cmp(const X509 *a, const X509 *b); @@ -1077,6 +1098,8 @@ X509_EXTENSION *X509v3_get_ext(const STACK_OF(X509_EXTENSION) *x, int loc); X509_EXTENSION *X509v3_delete_ext(STACK_OF(X509_EXTENSION) *x, int loc); STACK_OF(X509_EXTENSION) *X509v3_add_ext(STACK_OF(X509_EXTENSION) **x, X509_EXTENSION *ex, int loc); +STACK_OF(X509_EXTENSION) *X509v3_add_extensions(STACK_OF(X509_EXTENSION) **target, + const STACK_OF(X509_EXTENSION) *exts); int X509_get_ext_count(const X509 *x); int X509_get_ext_by_NID(const X509 *x, int nid, int lastpos); @@ -1198,9 +1221,10 @@ X509 *X509_find_by_subject(STACK_OF(X509) *sk, const X509_NAME *name); DECLARE_ASN1_FUNCTIONS(PBEPARAM) DECLARE_ASN1_FUNCTIONS(PBE2PARAM) DECLARE_ASN1_FUNCTIONS(PBKDF2PARAM) -#ifndef OPENSSL_NO_SCRYPT +DECLARE_ASN1_FUNCTIONS(PBMAC1PARAM) +# ifndef OPENSSL_NO_SCRYPT DECLARE_ASN1_FUNCTIONS(SCRYPT_PARAMS) -#endif +# endif int PKCS5_pbe_set0_algor(X509_ALGOR *algor, int alg, int iter, const unsigned char *salt, int saltlen); @@ -1237,6 +1261,7 @@ X509_ALGOR *PKCS5_pbkdf2_set_ex(int iter, unsigned char *salt, int saltlen, int prf_nid, int keylen, OSSL_LIB_CTX *libctx); +PBKDF2PARAM *PBMAC1_get1_pbkdf2_param(const X509_ALGOR *macalg); /* PKCS#8 utilities */ DECLARE_ASN1_FUNCTIONS(PKCS8_PRIV_KEY_INFO) @@ -1262,6 +1287,8 @@ int PKCS8_pkey_add1_attr_by_OBJ(PKCS8_PRIV_KEY_INFO *p8, const ASN1_OBJECT *obj, int type, const unsigned char *bytes, int len); +void X509_PUBKEY_set0_public_key(X509_PUBKEY *pub, + unsigned char *penc, int penclen); int X509_PUBKEY_set0_param(X509_PUBKEY *pub, ASN1_OBJECT *aobj, int ptype, void *pval, unsigned char *penc, int penclen); diff --git a/deps/openssl/config/archs/linux-aarch64/no-asm/include/openssl/x509_acert.h b/deps/openssl/config/archs/linux-aarch64/no-asm/include/openssl/x509_acert.h new file mode 100644 index 00000000000000..9dde625677f9a9 --- /dev/null +++ b/deps/openssl/config/archs/linux-aarch64/no-asm/include/openssl/x509_acert.h @@ -0,0 +1,294 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from include/openssl/x509_acert.h.in + * + * Copyright 2022-2024 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + + +#ifndef OPENSSL_X509_ACERT_H +# define OPENSSL_X509_ACERT_H +# pragma once + +# include +# include +# include + +typedef struct X509_acert_st X509_ACERT; +typedef struct X509_acert_info_st X509_ACERT_INFO; +typedef struct ossl_object_digest_info_st OSSL_OBJECT_DIGEST_INFO; +typedef struct ossl_issuer_serial_st OSSL_ISSUER_SERIAL; +typedef struct X509_acert_issuer_v2form_st X509_ACERT_ISSUER_V2FORM; + +DECLARE_ASN1_FUNCTIONS(X509_ACERT) +DECLARE_ASN1_DUP_FUNCTION(X509_ACERT) +DECLARE_ASN1_ITEM(X509_ACERT_INFO) +DECLARE_ASN1_ALLOC_FUNCTIONS(X509_ACERT_INFO) +DECLARE_ASN1_ALLOC_FUNCTIONS(OSSL_OBJECT_DIGEST_INFO) +DECLARE_ASN1_ALLOC_FUNCTIONS(OSSL_ISSUER_SERIAL) +DECLARE_ASN1_ALLOC_FUNCTIONS(X509_ACERT_ISSUER_V2FORM) + +# ifndef OPENSSL_NO_STDIO +X509_ACERT *d2i_X509_ACERT_fp(FILE *fp, X509_ACERT **acert); +int i2d_X509_ACERT_fp(FILE *fp, const X509_ACERT *acert); +# endif + +DECLARE_PEM_rw(X509_ACERT, X509_ACERT) + +X509_ACERT *d2i_X509_ACERT_bio(BIO *bp, X509_ACERT **acert); +int i2d_X509_ACERT_bio(BIO *bp, const X509_ACERT *acert); + +int X509_ACERT_sign(X509_ACERT *x, EVP_PKEY *pkey, const EVP_MD *md); +int X509_ACERT_sign_ctx(X509_ACERT *x, EVP_MD_CTX *ctx); +int X509_ACERT_verify(X509_ACERT *a, EVP_PKEY *r); + +# define X509_ACERT_VERSION_2 1 + +const GENERAL_NAMES *X509_ACERT_get0_holder_entityName(const X509_ACERT *x); +const OSSL_ISSUER_SERIAL *X509_ACERT_get0_holder_baseCertId(const X509_ACERT *x); +const OSSL_OBJECT_DIGEST_INFO * X509_ACERT_get0_holder_digest(const X509_ACERT *x); +const X509_NAME *X509_ACERT_get0_issuerName(const X509_ACERT *x); +long X509_ACERT_get_version(const X509_ACERT *x); +void X509_ACERT_get0_signature(const X509_ACERT *x, + const ASN1_BIT_STRING **psig, + const X509_ALGOR **palg); +int X509_ACERT_get_signature_nid(const X509_ACERT *x); +const X509_ALGOR *X509_ACERT_get0_info_sigalg(const X509_ACERT *x); +const ASN1_INTEGER *X509_ACERT_get0_serialNumber(const X509_ACERT *x); +const ASN1_TIME *X509_ACERT_get0_notBefore(const X509_ACERT *x); +const ASN1_TIME *X509_ACERT_get0_notAfter(const X509_ACERT *x); +const ASN1_BIT_STRING *X509_ACERT_get0_issuerUID(const X509_ACERT *x); + +int X509_ACERT_print(BIO *bp, X509_ACERT *x); +int X509_ACERT_print_ex(BIO *bp, X509_ACERT *x, unsigned long nmflags, + unsigned long cflag); + +int X509_ACERT_get_attr_count(const X509_ACERT *x); +int X509_ACERT_get_attr_by_NID(const X509_ACERT *x, int nid, int lastpos); +int X509_ACERT_get_attr_by_OBJ(const X509_ACERT *x, const ASN1_OBJECT *obj, + int lastpos); +X509_ATTRIBUTE *X509_ACERT_get_attr(const X509_ACERT *x, int loc); +X509_ATTRIBUTE *X509_ACERT_delete_attr(X509_ACERT *x, int loc); + +void *X509_ACERT_get_ext_d2i(const X509_ACERT *x, int nid, int *crit, int *idx); +int X509_ACERT_add1_ext_i2d(X509_ACERT *x, int nid, void *value, int crit, + unsigned long flags); +const STACK_OF(X509_EXTENSION) *X509_ACERT_get0_extensions(const X509_ACERT *x); + +# define OSSL_OBJECT_DIGEST_INFO_PUBLIC_KEY 0 +# define OSSL_OBJECT_DIGEST_INFO_PUBLIC_KEY_CERT 1 +# define OSSL_OBJECT_DIGEST_INFO_OTHER 2 /* must not be used in RFC 5755 profile */ +int X509_ACERT_set_version(X509_ACERT *x, long version); +void X509_ACERT_set0_holder_entityName(X509_ACERT *x, GENERAL_NAMES *name); +void X509_ACERT_set0_holder_baseCertId(X509_ACERT *x, OSSL_ISSUER_SERIAL *isss); +void X509_ACERT_set0_holder_digest(X509_ACERT *x, + OSSL_OBJECT_DIGEST_INFO *dinfo); + +int X509_ACERT_add1_attr(X509_ACERT *x, X509_ATTRIBUTE *attr); +int X509_ACERT_add1_attr_by_OBJ(X509_ACERT *x, const ASN1_OBJECT *obj, + int type, const void *bytes, int len); +int X509_ACERT_add1_attr_by_NID(X509_ACERT *x, int nid, int type, + const void *bytes, int len); +int X509_ACERT_add1_attr_by_txt(X509_ACERT *x, const char *attrname, int type, + const unsigned char *bytes, int len); +int X509_ACERT_add_attr_nconf(CONF *conf, const char *section, + X509_ACERT *acert); + +int X509_ACERT_set1_issuerName(X509_ACERT *x, const X509_NAME *name); +int X509_ACERT_set1_serialNumber(X509_ACERT *x, const ASN1_INTEGER *serial); +int X509_ACERT_set1_notBefore(X509_ACERT *x, const ASN1_GENERALIZEDTIME *time); +int X509_ACERT_set1_notAfter(X509_ACERT *x, const ASN1_GENERALIZEDTIME *time); + +void OSSL_OBJECT_DIGEST_INFO_get0_digest(const OSSL_OBJECT_DIGEST_INFO *o, + int *digestedObjectType, + const X509_ALGOR **digestAlgorithm, + const ASN1_BIT_STRING **digest); + +int OSSL_OBJECT_DIGEST_INFO_set1_digest(OSSL_OBJECT_DIGEST_INFO *o, + int digestedObjectType, + X509_ALGOR *digestAlgorithm, + ASN1_BIT_STRING *digest); + +const X509_NAME *OSSL_ISSUER_SERIAL_get0_issuer(const OSSL_ISSUER_SERIAL *isss); +const ASN1_INTEGER *OSSL_ISSUER_SERIAL_get0_serial(const OSSL_ISSUER_SERIAL *isss); +const ASN1_BIT_STRING *OSSL_ISSUER_SERIAL_get0_issuerUID(const OSSL_ISSUER_SERIAL *isss); + +int OSSL_ISSUER_SERIAL_set1_issuer(OSSL_ISSUER_SERIAL *isss, + const X509_NAME *issuer); +int OSSL_ISSUER_SERIAL_set1_serial(OSSL_ISSUER_SERIAL *isss, + const ASN1_INTEGER *serial); +int OSSL_ISSUER_SERIAL_set1_issuerUID(OSSL_ISSUER_SERIAL *isss, + const ASN1_BIT_STRING *uid); + +# define OSSL_IETFAS_OCTETS 0 +# define OSSL_IETFAS_OID 1 +# define OSSL_IETFAS_STRING 2 + +typedef struct OSSL_IETF_ATTR_SYNTAX_VALUE_st OSSL_IETF_ATTR_SYNTAX_VALUE; +typedef struct OSSL_IETF_ATTR_SYNTAX_st OSSL_IETF_ATTR_SYNTAX; +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_IETF_ATTR_SYNTAX_VALUE, OSSL_IETF_ATTR_SYNTAX_VALUE, OSSL_IETF_ATTR_SYNTAX_VALUE) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_value(sk, idx) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_value(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), (idx))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_new(cmp) ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_new(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_compfunc_type(cmp))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_new_null() ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_new_null()) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_new_reserve(cmp, n) ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_compfunc_type(cmp), (n))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), (n)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_free(sk) OPENSSL_sk_free(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_delete(sk, i) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_delete(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), (i))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_delete_ptr(sk, ptr) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_pop(sk) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_pop(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_shift(sk) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_shift(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk),ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_freefunc_type(freefunc)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr), (idx)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_set(sk, idx, ptr) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_set(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), (idx), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr), pnum) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_dup(sk) ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_dup(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_copyfunc_type(copyfunc), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_freefunc_type(freefunc))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_set_cmp_func(sk, cmp) ((sk_OSSL_IETF_ATTR_SYNTAX_VALUE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_compfunc_type(cmp))) + + +DECLARE_ASN1_ITEM(OSSL_IETF_ATTR_SYNTAX_VALUE) +DECLARE_ASN1_ALLOC_FUNCTIONS(OSSL_IETF_ATTR_SYNTAX_VALUE) +DECLARE_ASN1_FUNCTIONS(OSSL_IETF_ATTR_SYNTAX) + +const GENERAL_NAMES * +OSSL_IETF_ATTR_SYNTAX_get0_policyAuthority(const OSSL_IETF_ATTR_SYNTAX *a); +void OSSL_IETF_ATTR_SYNTAX_set0_policyAuthority(OSSL_IETF_ATTR_SYNTAX *a, + GENERAL_NAMES *names); + +int OSSL_IETF_ATTR_SYNTAX_get_value_num(const OSSL_IETF_ATTR_SYNTAX *a); +void *OSSL_IETF_ATTR_SYNTAX_get0_value(const OSSL_IETF_ATTR_SYNTAX *a, + int ind, int *type); +int OSSL_IETF_ATTR_SYNTAX_add1_value(OSSL_IETF_ATTR_SYNTAX *a, int type, + void *data); +int OSSL_IETF_ATTR_SYNTAX_print(BIO *bp, OSSL_IETF_ATTR_SYNTAX *a, int indent); + +struct TARGET_CERT_st { + OSSL_ISSUER_SERIAL *targetCertificate; + GENERAL_NAME *targetName; + OSSL_OBJECT_DIGEST_INFO *certDigestInfo; +}; + +typedef struct TARGET_CERT_st OSSL_TARGET_CERT; + +# define OSSL_TGT_TARGET_NAME 0 +# define OSSL_TGT_TARGET_GROUP 1 +# define OSSL_TGT_TARGET_CERT 2 + +typedef struct TARGET_st { + int type; + union { + GENERAL_NAME *targetName; + GENERAL_NAME *targetGroup; + OSSL_TARGET_CERT *targetCert; + } choice; +} OSSL_TARGET; + +typedef STACK_OF(OSSL_TARGET) OSSL_TARGETS; +typedef STACK_OF(OSSL_TARGETS) OSSL_TARGETING_INFORMATION; + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_TARGET, OSSL_TARGET, OSSL_TARGET) +#define sk_OSSL_TARGET_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_value(sk, idx) ((OSSL_TARGET *)OPENSSL_sk_value(ossl_check_const_OSSL_TARGET_sk_type(sk), (idx))) +#define sk_OSSL_TARGET_new(cmp) ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_new(ossl_check_OSSL_TARGET_compfunc_type(cmp))) +#define sk_OSSL_TARGET_new_null() ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_new_null()) +#define sk_OSSL_TARGET_new_reserve(cmp, n) ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_TARGET_compfunc_type(cmp), (n))) +#define sk_OSSL_TARGET_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_TARGET_sk_type(sk), (n)) +#define sk_OSSL_TARGET_free(sk) OPENSSL_sk_free(ossl_check_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_delete(sk, i) ((OSSL_TARGET *)OPENSSL_sk_delete(ossl_check_OSSL_TARGET_sk_type(sk), (i))) +#define sk_OSSL_TARGET_delete_ptr(sk, ptr) ((OSSL_TARGET *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr))) +#define sk_OSSL_TARGET_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr)) +#define sk_OSSL_TARGET_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr)) +#define sk_OSSL_TARGET_pop(sk) ((OSSL_TARGET *)OPENSSL_sk_pop(ossl_check_OSSL_TARGET_sk_type(sk))) +#define sk_OSSL_TARGET_shift(sk) ((OSSL_TARGET *)OPENSSL_sk_shift(ossl_check_OSSL_TARGET_sk_type(sk))) +#define sk_OSSL_TARGET_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_TARGET_sk_type(sk),ossl_check_OSSL_TARGET_freefunc_type(freefunc)) +#define sk_OSSL_TARGET_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr), (idx)) +#define sk_OSSL_TARGET_set(sk, idx, ptr) ((OSSL_TARGET *)OPENSSL_sk_set(ossl_check_OSSL_TARGET_sk_type(sk), (idx), ossl_check_OSSL_TARGET_type(ptr))) +#define sk_OSSL_TARGET_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr)) +#define sk_OSSL_TARGET_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr)) +#define sk_OSSL_TARGET_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr), pnum) +#define sk_OSSL_TARGET_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_dup(sk) ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_dup(ossl_check_const_OSSL_TARGET_sk_type(sk))) +#define sk_OSSL_TARGET_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_copyfunc_type(copyfunc), ossl_check_OSSL_TARGET_freefunc_type(freefunc))) +#define sk_OSSL_TARGET_set_cmp_func(sk, cmp) ((sk_OSSL_TARGET_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_compfunc_type(cmp))) + + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_TARGETS, OSSL_TARGETS, OSSL_TARGETS) +#define sk_OSSL_TARGETS_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_value(sk, idx) ((OSSL_TARGETS *)OPENSSL_sk_value(ossl_check_const_OSSL_TARGETS_sk_type(sk), (idx))) +#define sk_OSSL_TARGETS_new(cmp) ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_new(ossl_check_OSSL_TARGETS_compfunc_type(cmp))) +#define sk_OSSL_TARGETS_new_null() ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_new_null()) +#define sk_OSSL_TARGETS_new_reserve(cmp, n) ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_TARGETS_compfunc_type(cmp), (n))) +#define sk_OSSL_TARGETS_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_TARGETS_sk_type(sk), (n)) +#define sk_OSSL_TARGETS_free(sk) OPENSSL_sk_free(ossl_check_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_delete(sk, i) ((OSSL_TARGETS *)OPENSSL_sk_delete(ossl_check_OSSL_TARGETS_sk_type(sk), (i))) +#define sk_OSSL_TARGETS_delete_ptr(sk, ptr) ((OSSL_TARGETS *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr))) +#define sk_OSSL_TARGETS_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr)) +#define sk_OSSL_TARGETS_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr)) +#define sk_OSSL_TARGETS_pop(sk) ((OSSL_TARGETS *)OPENSSL_sk_pop(ossl_check_OSSL_TARGETS_sk_type(sk))) +#define sk_OSSL_TARGETS_shift(sk) ((OSSL_TARGETS *)OPENSSL_sk_shift(ossl_check_OSSL_TARGETS_sk_type(sk))) +#define sk_OSSL_TARGETS_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_TARGETS_sk_type(sk),ossl_check_OSSL_TARGETS_freefunc_type(freefunc)) +#define sk_OSSL_TARGETS_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr), (idx)) +#define sk_OSSL_TARGETS_set(sk, idx, ptr) ((OSSL_TARGETS *)OPENSSL_sk_set(ossl_check_OSSL_TARGETS_sk_type(sk), (idx), ossl_check_OSSL_TARGETS_type(ptr))) +#define sk_OSSL_TARGETS_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr)) +#define sk_OSSL_TARGETS_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr)) +#define sk_OSSL_TARGETS_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr), pnum) +#define sk_OSSL_TARGETS_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_dup(sk) ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_dup(ossl_check_const_OSSL_TARGETS_sk_type(sk))) +#define sk_OSSL_TARGETS_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_copyfunc_type(copyfunc), ossl_check_OSSL_TARGETS_freefunc_type(freefunc))) +#define sk_OSSL_TARGETS_set_cmp_func(sk, cmp) ((sk_OSSL_TARGETS_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_compfunc_type(cmp))) + + +DECLARE_ASN1_FUNCTIONS(OSSL_TARGET) +DECLARE_ASN1_FUNCTIONS(OSSL_TARGETS) +DECLARE_ASN1_FUNCTIONS(OSSL_TARGETING_INFORMATION) + +typedef STACK_OF(OSSL_ISSUER_SERIAL) OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX; +DECLARE_ASN1_FUNCTIONS(OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ISSUER_SERIAL, OSSL_ISSUER_SERIAL, OSSL_ISSUER_SERIAL) +#define sk_OSSL_ISSUER_SERIAL_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_value(sk, idx) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_value(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk), (idx))) +#define sk_OSSL_ISSUER_SERIAL_new(cmp) ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_new(ossl_check_OSSL_ISSUER_SERIAL_compfunc_type(cmp))) +#define sk_OSSL_ISSUER_SERIAL_new_null() ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ISSUER_SERIAL_new_reserve(cmp, n) ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ISSUER_SERIAL_compfunc_type(cmp), (n))) +#define sk_OSSL_ISSUER_SERIAL_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), (n)) +#define sk_OSSL_ISSUER_SERIAL_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_delete(sk, i) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_delete(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), (i))) +#define sk_OSSL_ISSUER_SERIAL_delete_ptr(sk, ptr) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr))) +#define sk_OSSL_ISSUER_SERIAL_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr)) +#define sk_OSSL_ISSUER_SERIAL_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr)) +#define sk_OSSL_ISSUER_SERIAL_pop(sk) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_pop(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk))) +#define sk_OSSL_ISSUER_SERIAL_shift(sk) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_shift(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk))) +#define sk_OSSL_ISSUER_SERIAL_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk),ossl_check_OSSL_ISSUER_SERIAL_freefunc_type(freefunc)) +#define sk_OSSL_ISSUER_SERIAL_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr), (idx)) +#define sk_OSSL_ISSUER_SERIAL_set(sk, idx, ptr) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_set(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), (idx), ossl_check_OSSL_ISSUER_SERIAL_type(ptr))) +#define sk_OSSL_ISSUER_SERIAL_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr)) +#define sk_OSSL_ISSUER_SERIAL_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr)) +#define sk_OSSL_ISSUER_SERIAL_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr), pnum) +#define sk_OSSL_ISSUER_SERIAL_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_dup(sk) ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk))) +#define sk_OSSL_ISSUER_SERIAL_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_copyfunc_type(copyfunc), ossl_check_OSSL_ISSUER_SERIAL_freefunc_type(freefunc))) +#define sk_OSSL_ISSUER_SERIAL_set_cmp_func(sk, cmp) ((sk_OSSL_ISSUER_SERIAL_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_compfunc_type(cmp))) + + +#endif diff --git a/deps/openssl/config/archs/linux-aarch64/no-asm/include/openssl/x509_vfy.h b/deps/openssl/config/archs/linux-aarch64/no-asm/include/openssl/x509_vfy.h index 29b0e147adcab1..c9bdc3b39d685d 100644 --- a/deps/openssl/config/archs/linux-aarch64/no-asm/include/openssl/x509_vfy.h +++ b/deps/openssl/config/archs/linux-aarch64/no-asm/include/openssl/x509_vfy.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/x509_vfy.h.in * - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -411,6 +411,7 @@ X509_LOOKUP_ctrl_ex((x), X509_L_ADD_STORE, (name), 0, NULL, \ # define X509_V_ERR_CA_CERT_MISSING_KEY_USAGE 92 # define X509_V_ERR_EXTENSIONS_REQUIRE_VERSION_3 93 # define X509_V_ERR_EC_KEY_EXPLICIT_PARAMS 94 +# define X509_V_ERR_RPK_UNTRUSTED 95 /* Certificate verify flags */ # ifndef OPENSSL_NO_DEPRECATED_1_1_0 @@ -491,71 +492,72 @@ int X509_OBJECT_set1_X509(X509_OBJECT *a, X509 *obj); X509_CRL *X509_OBJECT_get0_X509_CRL(const X509_OBJECT *a); int X509_OBJECT_set1_X509_CRL(X509_OBJECT *a, X509_CRL *obj); X509_STORE *X509_STORE_new(void); -void X509_STORE_free(X509_STORE *v); -int X509_STORE_lock(X509_STORE *ctx); -int X509_STORE_unlock(X509_STORE *ctx); -int X509_STORE_up_ref(X509_STORE *v); -STACK_OF(X509_OBJECT) *X509_STORE_get0_objects(const X509_STORE *v); -STACK_OF(X509) *X509_STORE_get1_all_certs(X509_STORE *st); -STACK_OF(X509) *X509_STORE_CTX_get1_certs(X509_STORE_CTX *st, +void X509_STORE_free(X509_STORE *xs); +int X509_STORE_lock(X509_STORE *xs); +int X509_STORE_unlock(X509_STORE *xs); +int X509_STORE_up_ref(X509_STORE *xs); +STACK_OF(X509_OBJECT) *X509_STORE_get0_objects(const X509_STORE *xs); +STACK_OF(X509_OBJECT) *X509_STORE_get1_objects(X509_STORE *xs); +STACK_OF(X509) *X509_STORE_get1_all_certs(X509_STORE *xs); +STACK_OF(X509) *X509_STORE_CTX_get1_certs(X509_STORE_CTX *xs, const X509_NAME *nm); STACK_OF(X509_CRL) *X509_STORE_CTX_get1_crls(const X509_STORE_CTX *st, const X509_NAME *nm); -int X509_STORE_set_flags(X509_STORE *ctx, unsigned long flags); -int X509_STORE_set_purpose(X509_STORE *ctx, int purpose); -int X509_STORE_set_trust(X509_STORE *ctx, int trust); -int X509_STORE_set1_param(X509_STORE *ctx, const X509_VERIFY_PARAM *pm); -X509_VERIFY_PARAM *X509_STORE_get0_param(const X509_STORE *ctx); +int X509_STORE_set_flags(X509_STORE *xs, unsigned long flags); +int X509_STORE_set_purpose(X509_STORE *xs, int purpose); +int X509_STORE_set_trust(X509_STORE *xs, int trust); +int X509_STORE_set1_param(X509_STORE *xs, const X509_VERIFY_PARAM *pm); +X509_VERIFY_PARAM *X509_STORE_get0_param(const X509_STORE *xs); -void X509_STORE_set_verify(X509_STORE *ctx, X509_STORE_CTX_verify_fn verify); +void X509_STORE_set_verify(X509_STORE *xs, X509_STORE_CTX_verify_fn verify); #define X509_STORE_set_verify_func(ctx, func) \ X509_STORE_set_verify((ctx),(func)) void X509_STORE_CTX_set_verify(X509_STORE_CTX *ctx, X509_STORE_CTX_verify_fn verify); -X509_STORE_CTX_verify_fn X509_STORE_get_verify(const X509_STORE *ctx); -void X509_STORE_set_verify_cb(X509_STORE *ctx, +X509_STORE_CTX_verify_fn X509_STORE_get_verify(const X509_STORE *xs); +void X509_STORE_set_verify_cb(X509_STORE *xs, X509_STORE_CTX_verify_cb verify_cb); # define X509_STORE_set_verify_cb_func(ctx,func) \ X509_STORE_set_verify_cb((ctx),(func)) -X509_STORE_CTX_verify_cb X509_STORE_get_verify_cb(const X509_STORE *ctx); -void X509_STORE_set_get_issuer(X509_STORE *ctx, +X509_STORE_CTX_verify_cb X509_STORE_get_verify_cb(const X509_STORE *xs); +void X509_STORE_set_get_issuer(X509_STORE *xs, X509_STORE_CTX_get_issuer_fn get_issuer); -X509_STORE_CTX_get_issuer_fn X509_STORE_get_get_issuer(const X509_STORE *ctx); -void X509_STORE_set_check_issued(X509_STORE *ctx, +X509_STORE_CTX_get_issuer_fn X509_STORE_get_get_issuer(const X509_STORE *xs); +void X509_STORE_set_check_issued(X509_STORE *xs, X509_STORE_CTX_check_issued_fn check_issued); -X509_STORE_CTX_check_issued_fn X509_STORE_get_check_issued(const X509_STORE *ctx); -void X509_STORE_set_check_revocation(X509_STORE *ctx, +X509_STORE_CTX_check_issued_fn X509_STORE_get_check_issued(const X509_STORE *s); +void X509_STORE_set_check_revocation(X509_STORE *xs, X509_STORE_CTX_check_revocation_fn check_revocation); X509_STORE_CTX_check_revocation_fn - X509_STORE_get_check_revocation(const X509_STORE *ctx); -void X509_STORE_set_get_crl(X509_STORE *ctx, + X509_STORE_get_check_revocation(const X509_STORE *xs); +void X509_STORE_set_get_crl(X509_STORE *xs, X509_STORE_CTX_get_crl_fn get_crl); -X509_STORE_CTX_get_crl_fn X509_STORE_get_get_crl(const X509_STORE *ctx); -void X509_STORE_set_check_crl(X509_STORE *ctx, +X509_STORE_CTX_get_crl_fn X509_STORE_get_get_crl(const X509_STORE *xs); +void X509_STORE_set_check_crl(X509_STORE *xs, X509_STORE_CTX_check_crl_fn check_crl); -X509_STORE_CTX_check_crl_fn X509_STORE_get_check_crl(const X509_STORE *ctx); -void X509_STORE_set_cert_crl(X509_STORE *ctx, +X509_STORE_CTX_check_crl_fn X509_STORE_get_check_crl(const X509_STORE *xs); +void X509_STORE_set_cert_crl(X509_STORE *xs, X509_STORE_CTX_cert_crl_fn cert_crl); -X509_STORE_CTX_cert_crl_fn X509_STORE_get_cert_crl(const X509_STORE *ctx); -void X509_STORE_set_check_policy(X509_STORE *ctx, +X509_STORE_CTX_cert_crl_fn X509_STORE_get_cert_crl(const X509_STORE *xs); +void X509_STORE_set_check_policy(X509_STORE *xs, X509_STORE_CTX_check_policy_fn check_policy); -X509_STORE_CTX_check_policy_fn X509_STORE_get_check_policy(const X509_STORE *ctx); -void X509_STORE_set_lookup_certs(X509_STORE *ctx, +X509_STORE_CTX_check_policy_fn X509_STORE_get_check_policy(const X509_STORE *s); +void X509_STORE_set_lookup_certs(X509_STORE *xs, X509_STORE_CTX_lookup_certs_fn lookup_certs); -X509_STORE_CTX_lookup_certs_fn X509_STORE_get_lookup_certs(const X509_STORE *ctx); -void X509_STORE_set_lookup_crls(X509_STORE *ctx, +X509_STORE_CTX_lookup_certs_fn X509_STORE_get_lookup_certs(const X509_STORE *s); +void X509_STORE_set_lookup_crls(X509_STORE *xs, X509_STORE_CTX_lookup_crls_fn lookup_crls); #define X509_STORE_set_lookup_crls_cb(ctx, func) \ X509_STORE_set_lookup_crls((ctx), (func)) -X509_STORE_CTX_lookup_crls_fn X509_STORE_get_lookup_crls(const X509_STORE *ctx); -void X509_STORE_set_cleanup(X509_STORE *ctx, +X509_STORE_CTX_lookup_crls_fn X509_STORE_get_lookup_crls(const X509_STORE *xs); +void X509_STORE_set_cleanup(X509_STORE *xs, X509_STORE_CTX_cleanup_fn cleanup); -X509_STORE_CTX_cleanup_fn X509_STORE_get_cleanup(const X509_STORE *ctx); +X509_STORE_CTX_cleanup_fn X509_STORE_get_cleanup(const X509_STORE *xs); #define X509_STORE_get_ex_new_index(l, p, newf, dupf, freef) \ CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_X509_STORE, l, p, newf, dupf, freef) -int X509_STORE_set_ex_data(X509_STORE *ctx, int idx, void *data); -void *X509_STORE_get_ex_data(const X509_STORE *ctx, int idx); +int X509_STORE_set_ex_data(X509_STORE *xs, int idx, void *data); +void *X509_STORE_get_ex_data(const X509_STORE *xs, int idx); X509_STORE_CTX *X509_STORE_CTX_new_ex(OSSL_LIB_CTX *libctx, const char *propq); X509_STORE_CTX *X509_STORE_CTX_new(void); @@ -565,11 +567,14 @@ int X509_STORE_CTX_get1_issuer(X509 **issuer, X509_STORE_CTX *ctx, X509 *x); void X509_STORE_CTX_free(X509_STORE_CTX *ctx); int X509_STORE_CTX_init(X509_STORE_CTX *ctx, X509_STORE *trust_store, X509 *target, STACK_OF(X509) *untrusted); +int X509_STORE_CTX_init_rpk(X509_STORE_CTX *ctx, X509_STORE *trust_store, + EVP_PKEY* rpk); void X509_STORE_CTX_set0_trusted_stack(X509_STORE_CTX *ctx, STACK_OF(X509) *sk); void X509_STORE_CTX_cleanup(X509_STORE_CTX *ctx); X509_STORE *X509_STORE_CTX_get0_store(const X509_STORE_CTX *ctx); X509 *X509_STORE_CTX_get0_cert(const X509_STORE_CTX *ctx); +EVP_PKEY *X509_STORE_CTX_get0_rpk(const X509_STORE_CTX *ctx); STACK_OF(X509)* X509_STORE_CTX_get0_untrusted(const X509_STORE_CTX *ctx); void X509_STORE_CTX_set0_untrusted(X509_STORE_CTX *ctx, STACK_OF(X509) *sk); void X509_STORE_CTX_set_verify_cb(X509_STORE_CTX *ctx, @@ -579,6 +584,8 @@ X509_STORE_CTX_verify_fn X509_STORE_CTX_get_verify(const X509_STORE_CTX *ctx); X509_STORE_CTX_get_issuer_fn X509_STORE_CTX_get_get_issuer(const X509_STORE_CTX *ctx); X509_STORE_CTX_check_issued_fn X509_STORE_CTX_get_check_issued(const X509_STORE_CTX *ctx); X509_STORE_CTX_check_revocation_fn X509_STORE_CTX_get_check_revocation(const X509_STORE_CTX *ctx); +void X509_STORE_CTX_set_get_crl(X509_STORE_CTX *ctx, + X509_STORE_CTX_get_crl_fn get_crl); X509_STORE_CTX_get_crl_fn X509_STORE_CTX_get_get_crl(const X509_STORE_CTX *ctx); X509_STORE_CTX_check_crl_fn X509_STORE_CTX_get_check_crl(const X509_STORE_CTX *ctx); X509_STORE_CTX_cert_crl_fn X509_STORE_CTX_get_cert_crl(const X509_STORE_CTX *ctx); @@ -600,7 +607,7 @@ X509_STORE_CTX_cleanup_fn X509_STORE_CTX_get_cleanup(const X509_STORE_CTX *ctx); # define X509_STORE_get1_crl X509_STORE_CTX_get1_crls #endif -X509_LOOKUP *X509_STORE_add_lookup(X509_STORE *v, X509_LOOKUP_METHOD *m); +X509_LOOKUP *X509_STORE_add_lookup(X509_STORE *xs, X509_LOOKUP_METHOD *m); X509_LOOKUP_METHOD *X509_LOOKUP_hash_dir(void); X509_LOOKUP_METHOD *X509_LOOKUP_file(void); X509_LOOKUP_METHOD *X509_LOOKUP_store(void); @@ -685,8 +692,8 @@ X509_LOOKUP_get_by_alias_fn X509_LOOKUP_meth_get_get_by_alias( const X509_LOOKUP_METHOD *method); -int X509_STORE_add_cert(X509_STORE *ctx, X509 *x); -int X509_STORE_add_crl(X509_STORE *ctx, X509_CRL *x); +int X509_STORE_add_cert(X509_STORE *xs, X509 *x); +int X509_STORE_add_crl(X509_STORE *xs, X509_CRL *x); int X509_STORE_CTX_get_by_subject(const X509_STORE_CTX *vs, X509_LOOKUP_TYPE type, @@ -730,23 +737,21 @@ void *X509_LOOKUP_get_method_data(const X509_LOOKUP *ctx); X509_STORE *X509_LOOKUP_get_store(const X509_LOOKUP *ctx); int X509_LOOKUP_shutdown(X509_LOOKUP *ctx); -int X509_STORE_load_file(X509_STORE *ctx, const char *file); -int X509_STORE_load_path(X509_STORE *ctx, const char *path); -int X509_STORE_load_store(X509_STORE *ctx, const char *store); -int X509_STORE_load_locations(X509_STORE *ctx, - const char *file, - const char *dir); -int X509_STORE_set_default_paths(X509_STORE *ctx); +int X509_STORE_load_file(X509_STORE *xs, const char *file); +int X509_STORE_load_path(X509_STORE *xs, const char *path); +int X509_STORE_load_store(X509_STORE *xs, const char *store); +int X509_STORE_load_locations(X509_STORE *s, const char *file, const char *dir); +int X509_STORE_set_default_paths(X509_STORE *xs); -int X509_STORE_load_file_ex(X509_STORE *ctx, const char *file, +int X509_STORE_load_file_ex(X509_STORE *xs, const char *file, OSSL_LIB_CTX *libctx, const char *propq); -int X509_STORE_load_store_ex(X509_STORE *ctx, const char *store, +int X509_STORE_load_store_ex(X509_STORE *xs, const char *store, OSSL_LIB_CTX *libctx, const char *propq); -int X509_STORE_load_locations_ex(X509_STORE *ctx, const char *file, - const char *dir, OSSL_LIB_CTX *libctx, - const char *propq); -int X509_STORE_set_default_paths_ex(X509_STORE *ctx, OSSL_LIB_CTX *libctx, - const char *propq); +int X509_STORE_load_locations_ex(X509_STORE *xs, + const char *file, const char *dir, + OSSL_LIB_CTX *libctx, const char *propq); +int X509_STORE_set_default_paths_ex(X509_STORE *xs, + OSSL_LIB_CTX *libctx, const char *propq); #define X509_STORE_CTX_get_ex_new_index(l, p, newf, dupf, freef) \ CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_X509_STORE_CTX, l, p, newf, dupf, freef) @@ -764,6 +769,7 @@ X509_STORE_CTX *X509_STORE_CTX_get0_parent_ctx(const X509_STORE_CTX *ctx); STACK_OF(X509) *X509_STORE_CTX_get0_chain(const X509_STORE_CTX *ctx); STACK_OF(X509) *X509_STORE_CTX_get1_chain(const X509_STORE_CTX *ctx); void X509_STORE_CTX_set_cert(X509_STORE_CTX *ctx, X509 *target); +void X509_STORE_CTX_set0_rpk(X509_STORE_CTX *ctx, EVP_PKEY *target); void X509_STORE_CTX_set0_verified_chain(X509_STORE_CTX *c, STACK_OF(X509) *sk); void X509_STORE_CTX_set0_crls(X509_STORE_CTX *ctx, STACK_OF(X509_CRL) *sk); int X509_STORE_CTX_set_purpose(X509_STORE_CTX *ctx, int purpose); @@ -773,6 +779,8 @@ int X509_STORE_CTX_purpose_inherit(X509_STORE_CTX *ctx, int def_purpose, void X509_STORE_CTX_set_flags(X509_STORE_CTX *ctx, unsigned long flags); void X509_STORE_CTX_set_time(X509_STORE_CTX *ctx, unsigned long flags, time_t t); +void X509_STORE_CTX_set_current_reasons(X509_STORE_CTX *ctx, + unsigned int current_reasons); X509_POLICY_TREE *X509_STORE_CTX_get0_policy_tree(const X509_STORE_CTX *ctx); int X509_STORE_CTX_get_explicit_policy(const X509_STORE_CTX *ctx); @@ -804,6 +812,7 @@ int X509_VERIFY_PARAM_clear_flags(X509_VERIFY_PARAM *param, unsigned long flags); unsigned long X509_VERIFY_PARAM_get_flags(const X509_VERIFY_PARAM *param); int X509_VERIFY_PARAM_set_purpose(X509_VERIFY_PARAM *param, int purpose); +int X509_VERIFY_PARAM_get_purpose(const X509_VERIFY_PARAM *param); int X509_VERIFY_PARAM_set_trust(X509_VERIFY_PARAM *param, int trust); void X509_VERIFY_PARAM_set_depth(X509_VERIFY_PARAM *param, int depth); void X509_VERIFY_PARAM_set_auth_level(X509_VERIFY_PARAM *param, int auth_level); diff --git a/deps/openssl/config/archs/linux-aarch64/no-asm/include/openssl/x509v3.h b/deps/openssl/config/archs/linux-aarch64/no-asm/include/openssl/x509v3.h index 20b67455f2061d..b8dabac35a4915 100644 --- a/deps/openssl/config/archs/linux-aarch64/no-asm/include/openssl/x509v3.h +++ b/deps/openssl/config/archs/linux-aarch64/no-asm/include/openssl/x509v3.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/x509v3.h.in * - * Copyright 1999-2023 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1999-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -25,6 +25,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -146,6 +149,11 @@ typedef struct BASIC_CONSTRAINTS_st { ASN1_INTEGER *pathlen; } BASIC_CONSTRAINTS; +typedef struct OSSL_BASIC_ATTR_CONSTRAINTS_st { + int authority; + ASN1_INTEGER *pathlen; +} OSSL_BASIC_ATTR_CONSTRAINTS; + typedef struct PKEY_USAGE_PERIOD_st { ASN1_GENERALIZEDTIME *notBefore; ASN1_GENERALIZEDTIME *notAfter; @@ -198,6 +206,8 @@ typedef struct ACCESS_DESCRIPTION_st { GENERAL_NAME *location; } ACCESS_DESCRIPTION; +int GENERAL_NAME_set1_X509_NAME(GENERAL_NAME **tgt, const X509_NAME *src); + SKM_DEFINE_STACK_OF_INTERNAL(ACCESS_DESCRIPTION, ACCESS_DESCRIPTION, ACCESS_DESCRIPTION) #define sk_ACCESS_DESCRIPTION_num(sk) OPENSSL_sk_num(ossl_check_const_ACCESS_DESCRIPTION_sk_type(sk)) #define sk_ACCESS_DESCRIPTION_value(sk, idx) ((ACCESS_DESCRIPTION *)OPENSSL_sk_value(ossl_check_const_ACCESS_DESCRIPTION_sk_type(sk), (idx))) @@ -294,6 +304,7 @@ typedef struct DIST_POINT_NAME_st { /* If relativename then this contains the full distribution point name */ X509_NAME *dpname; } DIST_POINT_NAME; +DECLARE_ASN1_DUP_FUNCTION(DIST_POINT_NAME) /* All existing reasons */ # define CRLDP_ALL_REASONS 0x807f @@ -659,15 +670,16 @@ struct ISSUING_DIST_POINT_st { # define EXFLAG_SAN_CRITICAL 0x80000 # define EXFLAG_NO_FINGERPRINT 0x100000 -# define KU_DIGITAL_SIGNATURE 0x0080 -# define KU_NON_REPUDIATION 0x0040 -# define KU_KEY_ENCIPHERMENT 0x0020 -# define KU_DATA_ENCIPHERMENT 0x0010 -# define KU_KEY_AGREEMENT 0x0008 -# define KU_KEY_CERT_SIGN 0x0004 -# define KU_CRL_SIGN 0x0002 -# define KU_ENCIPHER_ONLY 0x0001 -# define KU_DECIPHER_ONLY 0x8000 +/* https://datatracker.ietf.org/doc/html/rfc5280#section-4.2.1.3 */ +# define KU_DIGITAL_SIGNATURE X509v3_KU_DIGITAL_SIGNATURE +# define KU_NON_REPUDIATION X509v3_KU_NON_REPUDIATION +# define KU_KEY_ENCIPHERMENT X509v3_KU_KEY_ENCIPHERMENT +# define KU_DATA_ENCIPHERMENT X509v3_KU_DATA_ENCIPHERMENT +# define KU_KEY_AGREEMENT X509v3_KU_KEY_AGREEMENT +# define KU_KEY_CERT_SIGN X509v3_KU_KEY_CERT_SIGN +# define KU_CRL_SIGN X509v3_KU_CRL_SIGN +# define KU_ENCIPHER_ONLY X509v3_KU_ENCIPHER_ONLY +# define KU_DECIPHER_ONLY X509v3_KU_DECIPHER_ONLY # define NS_SSL_CLIENT 0x80 # define NS_SSL_SERVER 0x40 @@ -729,7 +741,7 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_PURPOSE, X509_PURPOSE, X509_PURPOSE) #define sk_X509_PURPOSE_set_cmp_func(sk, cmp) ((sk_X509_PURPOSE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_X509_PURPOSE_sk_type(sk), ossl_check_X509_PURPOSE_compfunc_type(cmp))) - +# define X509_PURPOSE_DEFAULT_ANY 0 # define X509_PURPOSE_SSL_CLIENT 1 # define X509_PURPOSE_SSL_SERVER 2 # define X509_PURPOSE_NS_SSL_SERVER 3 @@ -739,9 +751,10 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_PURPOSE, X509_PURPOSE, X509_PURPOSE) # define X509_PURPOSE_ANY 7 # define X509_PURPOSE_OCSP_HELPER 8 # define X509_PURPOSE_TIMESTAMP_SIGN 9 +# define X509_PURPOSE_CODE_SIGN 10 # define X509_PURPOSE_MIN 1 -# define X509_PURPOSE_MAX 9 +# define X509_PURPOSE_MAX 10 /* Flags for X509V3_EXT_print() */ @@ -767,6 +780,7 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_PURPOSE, X509_PURPOSE, X509_PURPOSE) # define X509V3_ADD_SILENT 0x10 DECLARE_ASN1_FUNCTIONS(BASIC_CONSTRAINTS) +DECLARE_ASN1_FUNCTIONS(OSSL_BASIC_ATTR_CONSTRAINTS) DECLARE_ASN1_FUNCTIONS(SXNET) DECLARE_ASN1_FUNCTIONS(SXNETID) @@ -976,7 +990,6 @@ int X509V3_extensions_print(BIO *out, const char *title, int X509_check_ca(X509 *x); int X509_check_purpose(X509 *x, int id, int ca); int X509_supported_extension(X509_EXTENSION *ex); -int X509_PURPOSE_set(int *p, int purpose); int X509_check_issued(X509 *issuer, X509 *subject); int X509_check_akid(const X509 *issuer, const AUTHORITY_KEYID *akid); void X509_set_proxy_flag(X509 *x); @@ -992,22 +1005,26 @@ const GENERAL_NAMES *X509_get0_authority_issuer(X509 *x); const ASN1_INTEGER *X509_get0_authority_serial(X509 *x); int X509_PURPOSE_get_count(void); -X509_PURPOSE *X509_PURPOSE_get0(int idx); +int X509_PURPOSE_get_unused_id(OSSL_LIB_CTX *libctx); int X509_PURPOSE_get_by_sname(const char *sname); int X509_PURPOSE_get_by_id(int id); int X509_PURPOSE_add(int id, int trust, int flags, int (*ck) (const X509_PURPOSE *, const X509 *, int), const char *name, const char *sname, void *arg); +void X509_PURPOSE_cleanup(void); + +X509_PURPOSE *X509_PURPOSE_get0(int idx); +int X509_PURPOSE_get_id(const X509_PURPOSE *); char *X509_PURPOSE_get0_name(const X509_PURPOSE *xp); char *X509_PURPOSE_get0_sname(const X509_PURPOSE *xp); int X509_PURPOSE_get_trust(const X509_PURPOSE *xp); -void X509_PURPOSE_cleanup(void); -int X509_PURPOSE_get_id(const X509_PURPOSE *); +int X509_PURPOSE_set(int *p, int purpose); STACK_OF(OPENSSL_STRING) *X509_get1_email(X509 *x); STACK_OF(OPENSSL_STRING) *X509_REQ_get1_email(X509_REQ *x); void X509_email_free(STACK_OF(OPENSSL_STRING) *sk); STACK_OF(OPENSSL_STRING) *X509_get1_ocsp(X509 *x); + /* Flags for X509_check_* functions */ /* @@ -1444,6 +1461,507 @@ const ASN1_PRINTABLESTRING *PROFESSION_INFO_get0_registrationNumber( void PROFESSION_INFO_set0_registrationNumber( PROFESSION_INFO *pi, ASN1_PRINTABLESTRING *rn); +int OSSL_GENERAL_NAMES_print(BIO *out, GENERAL_NAMES *gens, int indent); + +typedef STACK_OF(X509_ATTRIBUTE) OSSL_ATTRIBUTES_SYNTAX; +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTES_SYNTAX) + +typedef STACK_OF(USERNOTICE) OSSL_USER_NOTICE_SYNTAX; +DECLARE_ASN1_FUNCTIONS(OSSL_USER_NOTICE_SYNTAX) + +SKM_DEFINE_STACK_OF_INTERNAL(USERNOTICE, USERNOTICE, USERNOTICE) +#define sk_USERNOTICE_num(sk) OPENSSL_sk_num(ossl_check_const_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_value(sk, idx) ((USERNOTICE *)OPENSSL_sk_value(ossl_check_const_USERNOTICE_sk_type(sk), (idx))) +#define sk_USERNOTICE_new(cmp) ((STACK_OF(USERNOTICE) *)OPENSSL_sk_new(ossl_check_USERNOTICE_compfunc_type(cmp))) +#define sk_USERNOTICE_new_null() ((STACK_OF(USERNOTICE) *)OPENSSL_sk_new_null()) +#define sk_USERNOTICE_new_reserve(cmp, n) ((STACK_OF(USERNOTICE) *)OPENSSL_sk_new_reserve(ossl_check_USERNOTICE_compfunc_type(cmp), (n))) +#define sk_USERNOTICE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_USERNOTICE_sk_type(sk), (n)) +#define sk_USERNOTICE_free(sk) OPENSSL_sk_free(ossl_check_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_zero(sk) OPENSSL_sk_zero(ossl_check_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_delete(sk, i) ((USERNOTICE *)OPENSSL_sk_delete(ossl_check_USERNOTICE_sk_type(sk), (i))) +#define sk_USERNOTICE_delete_ptr(sk, ptr) ((USERNOTICE *)OPENSSL_sk_delete_ptr(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr))) +#define sk_USERNOTICE_push(sk, ptr) OPENSSL_sk_push(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr)) +#define sk_USERNOTICE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr)) +#define sk_USERNOTICE_pop(sk) ((USERNOTICE *)OPENSSL_sk_pop(ossl_check_USERNOTICE_sk_type(sk))) +#define sk_USERNOTICE_shift(sk) ((USERNOTICE *)OPENSSL_sk_shift(ossl_check_USERNOTICE_sk_type(sk))) +#define sk_USERNOTICE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_USERNOTICE_sk_type(sk),ossl_check_USERNOTICE_freefunc_type(freefunc)) +#define sk_USERNOTICE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr), (idx)) +#define sk_USERNOTICE_set(sk, idx, ptr) ((USERNOTICE *)OPENSSL_sk_set(ossl_check_USERNOTICE_sk_type(sk), (idx), ossl_check_USERNOTICE_type(ptr))) +#define sk_USERNOTICE_find(sk, ptr) OPENSSL_sk_find(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr)) +#define sk_USERNOTICE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr)) +#define sk_USERNOTICE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr), pnum) +#define sk_USERNOTICE_sort(sk) OPENSSL_sk_sort(ossl_check_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_dup(sk) ((STACK_OF(USERNOTICE) *)OPENSSL_sk_dup(ossl_check_const_USERNOTICE_sk_type(sk))) +#define sk_USERNOTICE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(USERNOTICE) *)OPENSSL_sk_deep_copy(ossl_check_const_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_copyfunc_type(copyfunc), ossl_check_USERNOTICE_freefunc_type(freefunc))) +#define sk_USERNOTICE_set_cmp_func(sk, cmp) ((sk_USERNOTICE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_compfunc_type(cmp))) + + +typedef struct OSSL_ROLE_SPEC_CERT_ID_st { + GENERAL_NAME *roleName; + GENERAL_NAME *roleCertIssuer; + ASN1_INTEGER *roleCertSerialNumber; + GENERAL_NAMES *roleCertLocator; +} OSSL_ROLE_SPEC_CERT_ID; + +DECLARE_ASN1_FUNCTIONS(OSSL_ROLE_SPEC_CERT_ID) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ROLE_SPEC_CERT_ID, OSSL_ROLE_SPEC_CERT_ID, OSSL_ROLE_SPEC_CERT_ID) +#define sk_OSSL_ROLE_SPEC_CERT_ID_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_value(sk, idx) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_value(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), (idx))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_new(cmp) ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_new(ossl_check_OSSL_ROLE_SPEC_CERT_ID_compfunc_type(cmp))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_new_null() ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ROLE_SPEC_CERT_ID_new_reserve(cmp, n) ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ROLE_SPEC_CERT_ID_compfunc_type(cmp), (n))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), (n)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_delete(sk, i) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_delete(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), (i))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_delete_ptr(sk, ptr) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_pop(sk) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_pop(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_shift(sk) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_shift(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk),ossl_check_OSSL_ROLE_SPEC_CERT_ID_freefunc_type(freefunc)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr), (idx)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_set(sk, idx, ptr) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_set(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), (idx), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr), pnum) +#define sk_OSSL_ROLE_SPEC_CERT_ID_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_dup(sk) ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_copyfunc_type(copyfunc), ossl_check_OSSL_ROLE_SPEC_CERT_ID_freefunc_type(freefunc))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_set_cmp_func(sk, cmp) ((sk_OSSL_ROLE_SPEC_CERT_ID_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_compfunc_type(cmp))) + + +typedef STACK_OF(OSSL_ROLE_SPEC_CERT_ID) OSSL_ROLE_SPEC_CERT_ID_SYNTAX; + +DECLARE_ASN1_FUNCTIONS(OSSL_ROLE_SPEC_CERT_ID_SYNTAX) +typedef struct OSSL_HASH_st { + X509_ALGOR *algorithmIdentifier; + ASN1_BIT_STRING *hashValue; +} OSSL_HASH; + +typedef struct OSSL_INFO_SYNTAX_POINTER_st { + GENERAL_NAMES *name; + OSSL_HASH *hash; +} OSSL_INFO_SYNTAX_POINTER; + +# define OSSL_INFO_SYNTAX_TYPE_CONTENT 0 +# define OSSL_INFO_SYNTAX_TYPE_POINTER 1 + +typedef struct OSSL_INFO_SYNTAX_st { + int type; + union { + ASN1_STRING *content; + OSSL_INFO_SYNTAX_POINTER *pointer; + } choice; +} OSSL_INFO_SYNTAX; + +typedef struct OSSL_PRIVILEGE_POLICY_ID_st { + ASN1_OBJECT *privilegePolicy; + OSSL_INFO_SYNTAX *privPolSyntax; +} OSSL_PRIVILEGE_POLICY_ID; + +typedef struct OSSL_ATTRIBUTE_DESCRIPTOR_st { + ASN1_OBJECT *identifier; + ASN1_STRING *attributeSyntax; + ASN1_UTF8STRING *name; + ASN1_UTF8STRING *description; + OSSL_PRIVILEGE_POLICY_ID *dominationRule; +} OSSL_ATTRIBUTE_DESCRIPTOR; + +DECLARE_ASN1_FUNCTIONS(OSSL_HASH) +DECLARE_ASN1_FUNCTIONS(OSSL_INFO_SYNTAX) +DECLARE_ASN1_FUNCTIONS(OSSL_INFO_SYNTAX_POINTER) +DECLARE_ASN1_FUNCTIONS(OSSL_PRIVILEGE_POLICY_ID) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_DESCRIPTOR) + +typedef struct OSSL_TIME_SPEC_ABSOLUTE_st { + ASN1_GENERALIZEDTIME *startTime; + ASN1_GENERALIZEDTIME *endTime; +} OSSL_TIME_SPEC_ABSOLUTE; + +typedef struct OSSL_DAY_TIME_st { + ASN1_INTEGER *hour; + ASN1_INTEGER *minute; + ASN1_INTEGER *second; +} OSSL_DAY_TIME; + +typedef struct OSSL_DAY_TIME_BAND_st { + OSSL_DAY_TIME *startDayTime; + OSSL_DAY_TIME *endDayTime; +} OSSL_DAY_TIME_BAND; + +# define OSSL_NAMED_DAY_TYPE_INT 0 +# define OSSL_NAMED_DAY_TYPE_BIT 1 +# define OSSL_NAMED_DAY_INT_SUN 1 +# define OSSL_NAMED_DAY_INT_MON 2 +# define OSSL_NAMED_DAY_INT_TUE 3 +# define OSSL_NAMED_DAY_INT_WED 4 +# define OSSL_NAMED_DAY_INT_THU 5 +# define OSSL_NAMED_DAY_INT_FRI 6 +# define OSSL_NAMED_DAY_INT_SAT 7 +# define OSSL_NAMED_DAY_BIT_SUN 0 +# define OSSL_NAMED_DAY_BIT_MON 1 +# define OSSL_NAMED_DAY_BIT_TUE 2 +# define OSSL_NAMED_DAY_BIT_WED 3 +# define OSSL_NAMED_DAY_BIT_THU 4 +# define OSSL_NAMED_DAY_BIT_FRI 5 +# define OSSL_NAMED_DAY_BIT_SAT 6 + +typedef struct OSSL_NAMED_DAY_st { + int type; + union { + ASN1_INTEGER *intNamedDays; + ASN1_BIT_STRING *bitNamedDays; + } choice; +} OSSL_NAMED_DAY; + +# define OSSL_TIME_SPEC_X_DAY_OF_FIRST 0 +# define OSSL_TIME_SPEC_X_DAY_OF_SECOND 1 +# define OSSL_TIME_SPEC_X_DAY_OF_THIRD 2 +# define OSSL_TIME_SPEC_X_DAY_OF_FOURTH 3 +# define OSSL_TIME_SPEC_X_DAY_OF_FIFTH 4 + +typedef struct OSSL_TIME_SPEC_X_DAY_OF_st { + int type; + union { + OSSL_NAMED_DAY *first; + OSSL_NAMED_DAY *second; + OSSL_NAMED_DAY *third; + OSSL_NAMED_DAY *fourth; + OSSL_NAMED_DAY *fifth; + } choice; +} OSSL_TIME_SPEC_X_DAY_OF; + +# define OSSL_TIME_SPEC_DAY_TYPE_INT 0 +# define OSSL_TIME_SPEC_DAY_TYPE_BIT 1 +# define OSSL_TIME_SPEC_DAY_TYPE_DAY_OF 2 +# define OSSL_TIME_SPEC_DAY_BIT_SUN 0 +# define OSSL_TIME_SPEC_DAY_BIT_MON 1 +# define OSSL_TIME_SPEC_DAY_BIT_TUE 2 +# define OSSL_TIME_SPEC_DAY_BIT_WED 3 +# define OSSL_TIME_SPEC_DAY_BIT_THU 4 +# define OSSL_TIME_SPEC_DAY_BIT_FRI 5 +# define OSSL_TIME_SPEC_DAY_BIT_SAT 6 +# define OSSL_TIME_SPEC_DAY_INT_SUN 1 +# define OSSL_TIME_SPEC_DAY_INT_MON 2 +# define OSSL_TIME_SPEC_DAY_INT_TUE 3 +# define OSSL_TIME_SPEC_DAY_INT_WED 4 +# define OSSL_TIME_SPEC_DAY_INT_THU 5 +# define OSSL_TIME_SPEC_DAY_INT_FRI 6 +# define OSSL_TIME_SPEC_DAY_INT_SAT 7 + +typedef struct OSSL_TIME_SPEC_DAY_st { + int type; + union { + STACK_OF(ASN1_INTEGER) *intDay; + ASN1_BIT_STRING *bitDay; + OSSL_TIME_SPEC_X_DAY_OF *dayOf; + } choice; +} OSSL_TIME_SPEC_DAY; + +# define OSSL_TIME_SPEC_WEEKS_TYPE_ALL 0 +# define OSSL_TIME_SPEC_WEEKS_TYPE_INT 1 +# define OSSL_TIME_SPEC_WEEKS_TYPE_BIT 2 +# define OSSL_TIME_SPEC_BIT_WEEKS_1 0 +# define OSSL_TIME_SPEC_BIT_WEEKS_2 1 +# define OSSL_TIME_SPEC_BIT_WEEKS_3 2 +# define OSSL_TIME_SPEC_BIT_WEEKS_4 3 +# define OSSL_TIME_SPEC_BIT_WEEKS_5 4 + +typedef struct OSSL_TIME_SPEC_WEEKS_st { + int type; + union { + ASN1_NULL *allWeeks; + STACK_OF(ASN1_INTEGER) *intWeek; + ASN1_BIT_STRING *bitWeek; + } choice; +} OSSL_TIME_SPEC_WEEKS; + +# define OSSL_TIME_SPEC_MONTH_TYPE_ALL 0 +# define OSSL_TIME_SPEC_MONTH_TYPE_INT 1 +# define OSSL_TIME_SPEC_MONTH_TYPE_BIT 2 +# define OSSL_TIME_SPEC_INT_MONTH_JAN 1 +# define OSSL_TIME_SPEC_INT_MONTH_FEB 2 +# define OSSL_TIME_SPEC_INT_MONTH_MAR 3 +# define OSSL_TIME_SPEC_INT_MONTH_APR 4 +# define OSSL_TIME_SPEC_INT_MONTH_MAY 5 +# define OSSL_TIME_SPEC_INT_MONTH_JUN 6 +# define OSSL_TIME_SPEC_INT_MONTH_JUL 7 +# define OSSL_TIME_SPEC_INT_MONTH_AUG 8 +# define OSSL_TIME_SPEC_INT_MONTH_SEP 9 +# define OSSL_TIME_SPEC_INT_MONTH_OCT 10 +# define OSSL_TIME_SPEC_INT_MONTH_NOV 11 +# define OSSL_TIME_SPEC_INT_MONTH_DEC 12 +# define OSSL_TIME_SPEC_BIT_MONTH_JAN 0 +# define OSSL_TIME_SPEC_BIT_MONTH_FEB 1 +# define OSSL_TIME_SPEC_BIT_MONTH_MAR 2 +# define OSSL_TIME_SPEC_BIT_MONTH_APR 3 +# define OSSL_TIME_SPEC_BIT_MONTH_MAY 4 +# define OSSL_TIME_SPEC_BIT_MONTH_JUN 5 +# define OSSL_TIME_SPEC_BIT_MONTH_JUL 6 +# define OSSL_TIME_SPEC_BIT_MONTH_AUG 7 +# define OSSL_TIME_SPEC_BIT_MONTH_SEP 8 +# define OSSL_TIME_SPEC_BIT_MONTH_OCT 9 +# define OSSL_TIME_SPEC_BIT_MONTH_NOV 10 +# define OSSL_TIME_SPEC_BIT_MONTH_DEC 11 + +typedef struct OSSL_TIME_SPEC_MONTH_st { + int type; + union { + ASN1_NULL *allMonths; + STACK_OF(ASN1_INTEGER) *intMonth; + ASN1_BIT_STRING *bitMonth; + } choice; +} OSSL_TIME_SPEC_MONTH; + +typedef struct OSSL_TIME_PERIOD_st { + STACK_OF(OSSL_DAY_TIME_BAND) *timesOfDay; + OSSL_TIME_SPEC_DAY *days; + OSSL_TIME_SPEC_WEEKS *weeks; + OSSL_TIME_SPEC_MONTH *months; + STACK_OF(ASN1_INTEGER) *years; +} OSSL_TIME_PERIOD; + +# define OSSL_TIME_SPEC_TIME_TYPE_ABSOLUTE 0 +# define OSSL_TIME_SPEC_TIME_TYPE_PERIODIC 1 + +typedef struct OSSL_TIME_SPEC_TIME_st { + int type; + union { + OSSL_TIME_SPEC_ABSOLUTE *absolute; + STACK_OF(OSSL_TIME_PERIOD) *periodic; + } choice; +} OSSL_TIME_SPEC_TIME; + +typedef struct OSSL_TIME_SPEC_st { + OSSL_TIME_SPEC_TIME *time; + ASN1_BOOLEAN notThisTime; + ASN1_INTEGER *timeZone; +} OSSL_TIME_SPEC; + +DECLARE_ASN1_FUNCTIONS(OSSL_DAY_TIME) +DECLARE_ASN1_FUNCTIONS(OSSL_DAY_TIME_BAND) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_DAY) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_WEEKS) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_MONTH) +DECLARE_ASN1_FUNCTIONS(OSSL_NAMED_DAY) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_X_DAY_OF) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_ABSOLUTE) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_TIME) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_PERIOD) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_TIME_PERIOD, OSSL_TIME_PERIOD, OSSL_TIME_PERIOD) +#define sk_OSSL_TIME_PERIOD_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_value(sk, idx) ((OSSL_TIME_PERIOD *)OPENSSL_sk_value(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk), (idx))) +#define sk_OSSL_TIME_PERIOD_new(cmp) ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_new(ossl_check_OSSL_TIME_PERIOD_compfunc_type(cmp))) +#define sk_OSSL_TIME_PERIOD_new_null() ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_new_null()) +#define sk_OSSL_TIME_PERIOD_new_reserve(cmp, n) ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_TIME_PERIOD_compfunc_type(cmp), (n))) +#define sk_OSSL_TIME_PERIOD_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), (n)) +#define sk_OSSL_TIME_PERIOD_free(sk) OPENSSL_sk_free(ossl_check_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_delete(sk, i) ((OSSL_TIME_PERIOD *)OPENSSL_sk_delete(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), (i))) +#define sk_OSSL_TIME_PERIOD_delete_ptr(sk, ptr) ((OSSL_TIME_PERIOD *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr))) +#define sk_OSSL_TIME_PERIOD_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr)) +#define sk_OSSL_TIME_PERIOD_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr)) +#define sk_OSSL_TIME_PERIOD_pop(sk) ((OSSL_TIME_PERIOD *)OPENSSL_sk_pop(ossl_check_OSSL_TIME_PERIOD_sk_type(sk))) +#define sk_OSSL_TIME_PERIOD_shift(sk) ((OSSL_TIME_PERIOD *)OPENSSL_sk_shift(ossl_check_OSSL_TIME_PERIOD_sk_type(sk))) +#define sk_OSSL_TIME_PERIOD_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_TIME_PERIOD_sk_type(sk),ossl_check_OSSL_TIME_PERIOD_freefunc_type(freefunc)) +#define sk_OSSL_TIME_PERIOD_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr), (idx)) +#define sk_OSSL_TIME_PERIOD_set(sk, idx, ptr) ((OSSL_TIME_PERIOD *)OPENSSL_sk_set(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), (idx), ossl_check_OSSL_TIME_PERIOD_type(ptr))) +#define sk_OSSL_TIME_PERIOD_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr)) +#define sk_OSSL_TIME_PERIOD_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr)) +#define sk_OSSL_TIME_PERIOD_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr), pnum) +#define sk_OSSL_TIME_PERIOD_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_dup(sk) ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_dup(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk))) +#define sk_OSSL_TIME_PERIOD_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_copyfunc_type(copyfunc), ossl_check_OSSL_TIME_PERIOD_freefunc_type(freefunc))) +#define sk_OSSL_TIME_PERIOD_set_cmp_func(sk, cmp) ((sk_OSSL_TIME_PERIOD_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_compfunc_type(cmp))) + + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_DAY_TIME_BAND, OSSL_DAY_TIME_BAND, OSSL_DAY_TIME_BAND) +#define sk_OSSL_DAY_TIME_BAND_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_value(sk, idx) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_value(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk), (idx))) +#define sk_OSSL_DAY_TIME_BAND_new(cmp) ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_new(ossl_check_OSSL_DAY_TIME_BAND_compfunc_type(cmp))) +#define sk_OSSL_DAY_TIME_BAND_new_null() ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_new_null()) +#define sk_OSSL_DAY_TIME_BAND_new_reserve(cmp, n) ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_DAY_TIME_BAND_compfunc_type(cmp), (n))) +#define sk_OSSL_DAY_TIME_BAND_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), (n)) +#define sk_OSSL_DAY_TIME_BAND_free(sk) OPENSSL_sk_free(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_delete(sk, i) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_delete(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), (i))) +#define sk_OSSL_DAY_TIME_BAND_delete_ptr(sk, ptr) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr))) +#define sk_OSSL_DAY_TIME_BAND_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr)) +#define sk_OSSL_DAY_TIME_BAND_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr)) +#define sk_OSSL_DAY_TIME_BAND_pop(sk) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_pop(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk))) +#define sk_OSSL_DAY_TIME_BAND_shift(sk) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_shift(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk))) +#define sk_OSSL_DAY_TIME_BAND_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk),ossl_check_OSSL_DAY_TIME_BAND_freefunc_type(freefunc)) +#define sk_OSSL_DAY_TIME_BAND_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr), (idx)) +#define sk_OSSL_DAY_TIME_BAND_set(sk, idx, ptr) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_set(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), (idx), ossl_check_OSSL_DAY_TIME_BAND_type(ptr))) +#define sk_OSSL_DAY_TIME_BAND_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr)) +#define sk_OSSL_DAY_TIME_BAND_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr)) +#define sk_OSSL_DAY_TIME_BAND_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr), pnum) +#define sk_OSSL_DAY_TIME_BAND_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_dup(sk) ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_dup(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk))) +#define sk_OSSL_DAY_TIME_BAND_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_copyfunc_type(copyfunc), ossl_check_OSSL_DAY_TIME_BAND_freefunc_type(freefunc))) +#define sk_OSSL_DAY_TIME_BAND_set_cmp_func(sk, cmp) ((sk_OSSL_DAY_TIME_BAND_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_compfunc_type(cmp))) + + +/* Attribute Type and Value */ +typedef struct atav_st { + ASN1_OBJECT *type; + ASN1_TYPE *value; +} OSSL_ATAV; + +typedef struct ATTRIBUTE_TYPE_MAPPING_st { + ASN1_OBJECT *local; + ASN1_OBJECT *remote; +} OSSL_ATTRIBUTE_TYPE_MAPPING; + +typedef struct ATTRIBUTE_VALUE_MAPPING_st { + OSSL_ATAV *local; + OSSL_ATAV *remote; +} OSSL_ATTRIBUTE_VALUE_MAPPING; + +# define OSSL_ATTR_MAP_TYPE 0 +# define OSSL_ATTR_MAP_VALUE 1 + +typedef struct ATTRIBUTE_MAPPING_st { + int type; + union { + OSSL_ATTRIBUTE_TYPE_MAPPING *typeMappings; + OSSL_ATTRIBUTE_VALUE_MAPPING *typeValueMappings; + } choice; +} OSSL_ATTRIBUTE_MAPPING; + +typedef STACK_OF(OSSL_ATTRIBUTE_MAPPING) OSSL_ATTRIBUTE_MAPPINGS; +DECLARE_ASN1_FUNCTIONS(OSSL_ATAV) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_TYPE_MAPPING) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_VALUE_MAPPING) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_MAPPING) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_MAPPINGS) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ATTRIBUTE_MAPPING, OSSL_ATTRIBUTE_MAPPING, OSSL_ATTRIBUTE_MAPPING) +#define sk_OSSL_ATTRIBUTE_MAPPING_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_value(sk, idx) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_value(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), (idx))) +#define sk_OSSL_ATTRIBUTE_MAPPING_new(cmp) ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_new(ossl_check_OSSL_ATTRIBUTE_MAPPING_compfunc_type(cmp))) +#define sk_OSSL_ATTRIBUTE_MAPPING_new_null() ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ATTRIBUTE_MAPPING_new_reserve(cmp, n) ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ATTRIBUTE_MAPPING_compfunc_type(cmp), (n))) +#define sk_OSSL_ATTRIBUTE_MAPPING_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), (n)) +#define sk_OSSL_ATTRIBUTE_MAPPING_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_delete(sk, i) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_delete(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), (i))) +#define sk_OSSL_ATTRIBUTE_MAPPING_delete_ptr(sk, ptr) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr))) +#define sk_OSSL_ATTRIBUTE_MAPPING_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr)) +#define sk_OSSL_ATTRIBUTE_MAPPING_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr)) +#define sk_OSSL_ATTRIBUTE_MAPPING_pop(sk) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_pop(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk))) +#define sk_OSSL_ATTRIBUTE_MAPPING_shift(sk) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_shift(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk))) +#define sk_OSSL_ATTRIBUTE_MAPPING_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk),ossl_check_OSSL_ATTRIBUTE_MAPPING_freefunc_type(freefunc)) +#define sk_OSSL_ATTRIBUTE_MAPPING_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr), (idx)) +#define sk_OSSL_ATTRIBUTE_MAPPING_set(sk, idx, ptr) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_set(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), (idx), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr))) +#define sk_OSSL_ATTRIBUTE_MAPPING_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr)) +#define sk_OSSL_ATTRIBUTE_MAPPING_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr)) +#define sk_OSSL_ATTRIBUTE_MAPPING_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr), pnum) +#define sk_OSSL_ATTRIBUTE_MAPPING_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_dup(sk) ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk))) +#define sk_OSSL_ATTRIBUTE_MAPPING_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_copyfunc_type(copyfunc), ossl_check_OSSL_ATTRIBUTE_MAPPING_freefunc_type(freefunc))) +#define sk_OSSL_ATTRIBUTE_MAPPING_set_cmp_func(sk, cmp) ((sk_OSSL_ATTRIBUTE_MAPPING_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_compfunc_type(cmp))) + + +# define OSSL_AAA_ATTRIBUTE_TYPE 0 +# define OSSL_AAA_ATTRIBUTE_VALUES 1 + +typedef struct ALLOWED_ATTRIBUTES_CHOICE_st { + int type; + union { + ASN1_OBJECT *attributeType; + X509_ATTRIBUTE *attributeTypeandValues; + } choice; +} OSSL_ALLOWED_ATTRIBUTES_CHOICE; + +typedef struct ALLOWED_ATTRIBUTES_ITEM_st { + STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *attributes; + GENERAL_NAME *holderDomain; +} OSSL_ALLOWED_ATTRIBUTES_ITEM; + +typedef STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) OSSL_ALLOWED_ATTRIBUTES_SYNTAX; + +DECLARE_ASN1_FUNCTIONS(OSSL_ALLOWED_ATTRIBUTES_CHOICE) +DECLARE_ASN1_FUNCTIONS(OSSL_ALLOWED_ATTRIBUTES_ITEM) +DECLARE_ASN1_FUNCTIONS(OSSL_ALLOWED_ATTRIBUTES_SYNTAX) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ALLOWED_ATTRIBUTES_CHOICE, OSSL_ALLOWED_ATTRIBUTES_CHOICE, OSSL_ALLOWED_ATTRIBUTES_CHOICE) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_value(sk, idx) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_value(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), (idx))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_new(cmp) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_new(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_compfunc_type(cmp))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_new_null() ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_new_reserve(cmp, n) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_compfunc_type(cmp), (n))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), (n)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_delete(sk, i) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_delete(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), (i))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_delete_ptr(sk, ptr) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_pop(sk) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_pop(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_shift(sk) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_shift(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk),ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_freefunc_type(freefunc)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr), (idx)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_set(sk, idx, ptr) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_set(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), (idx), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr), pnum) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_dup(sk) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_copyfunc_type(copyfunc), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_freefunc_type(freefunc))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_set_cmp_func(sk, cmp) ((sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_compfunc_type(cmp))) + + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ALLOWED_ATTRIBUTES_ITEM, OSSL_ALLOWED_ATTRIBUTES_ITEM, OSSL_ALLOWED_ATTRIBUTES_ITEM) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_value(sk, idx) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_value(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), (idx))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_new(cmp) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_new(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_compfunc_type(cmp))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_new_null() ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_new_reserve(cmp, n) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_compfunc_type(cmp), (n))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), (n)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_delete(sk, i) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_delete(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), (i))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_delete_ptr(sk, ptr) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_pop(sk) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_pop(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_shift(sk) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_shift(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk),ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_freefunc_type(freefunc)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr), (idx)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_set(sk, idx, ptr) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_set(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), (idx), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr), pnum) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_dup(sk) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_copyfunc_type(copyfunc), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_freefunc_type(freefunc))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_set_cmp_func(sk, cmp) ((sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_compfunc_type(cmp))) + + +typedef struct AA_DIST_POINT_st { + DIST_POINT_NAME *distpoint; + ASN1_BIT_STRING *reasons; + int dp_reasons; + ASN1_BOOLEAN indirectCRL; + ASN1_BOOLEAN containsUserAttributeCerts; + ASN1_BOOLEAN containsAACerts; + ASN1_BOOLEAN containsSOAPublicKeyCerts; +} OSSL_AA_DIST_POINT; + +DECLARE_ASN1_FUNCTIONS(OSSL_AA_DIST_POINT) + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/linux-aarch64/no-asm/include/progs.h b/deps/openssl/config/archs/linux-aarch64/no-asm/include/progs.h index be55f61503d405..1b62ec37dec130 100644 --- a/deps/openssl/config/archs/linux-aarch64/no-asm/include/progs.h +++ b/deps/openssl/config/archs/linux-aarch64/no-asm/include/progs.h @@ -56,6 +56,7 @@ extern int s_client_main(int argc, char *argv[]); extern int s_server_main(int argc, char *argv[]); extern int s_time_main(int argc, char *argv[]); extern int sess_id_main(int argc, char *argv[]); +extern int skeyutl_main(int argc, char *argv[]); extern int smime_main(int argc, char *argv[]); extern int speed_main(int argc, char *argv[]); extern int spkac_main(int argc, char *argv[]); @@ -110,6 +111,7 @@ extern const OPTIONS s_client_options[]; extern const OPTIONS s_server_options[]; extern const OPTIONS s_time_options[]; extern const OPTIONS sess_id_options[]; +extern const OPTIONS skeyutl_options[]; extern const OPTIONS smime_options[]; extern const OPTIONS speed_options[]; extern const OPTIONS spkac_options[]; diff --git a/deps/openssl/config/archs/linux-aarch64/no-asm/openssl-cl.gypi b/deps/openssl/config/archs/linux-aarch64/no-asm/openssl-cl.gypi index b1b8cb0ae86331..85332649d37671 100644 --- a/deps/openssl/config/archs/linux-aarch64/no-asm/openssl-cl.gypi +++ b/deps/openssl/config/archs/linux-aarch64/no-asm/openssl-cl.gypi @@ -61,6 +61,7 @@ 'openssl/apps/s_server.c', 'openssl/apps/s_time.c', 'openssl/apps/sess_id.c', + 'openssl/apps/skeyutl.c', 'openssl/apps/smime.c', 'openssl/apps/speed.c', 'openssl/apps/spkac.c', @@ -76,12 +77,14 @@ 'openssl/apps/lib/app_rand.c', 'openssl/apps/lib/app_x509.c', 'openssl/apps/lib/apps.c', + 'openssl/apps/lib/apps_opt_printf.c', 'openssl/apps/lib/apps_ui.c', 'openssl/apps/lib/columns.c', 'openssl/apps/lib/engine.c', 'openssl/apps/lib/engine_loader.c', 'openssl/apps/lib/fmt.c', 'openssl/apps/lib/http_server.c', + 'openssl/apps/lib/log.c', 'openssl/apps/lib/names.c', 'openssl/apps/lib/opt.c', 'openssl/apps/lib/s_cb.c', diff --git a/deps/openssl/config/archs/linux-aarch64/no-asm/openssl-fips.gypi b/deps/openssl/config/archs/linux-aarch64/no-asm/openssl-fips.gypi index 3f8a43dccf7f8e..61500a1667c8e5 100644 --- a/deps/openssl/config/archs/linux-aarch64/no-asm/openssl-fips.gypi +++ b/deps/openssl/config/archs/linux-aarch64/no-asm/openssl-fips.gypi @@ -100,14 +100,15 @@ 'openssl/crypto/evp/kem.c', 'openssl/crypto/evp/keymgmt_lib.c', 'openssl/crypto/evp/keymgmt_meth.c', - 'openssl/crypto/evp/m_sigver.c', 'openssl/crypto/evp/mac_lib.c', 'openssl/crypto/evp/mac_meth.c', 'openssl/crypto/evp/p_lib.c', 'openssl/crypto/evp/pmeth_check.c', 'openssl/crypto/evp/pmeth_gn.c', 'openssl/crypto/evp/pmeth_lib.c', + 'openssl/crypto/evp/s_lib.c', 'openssl/crypto/evp/signature.c', + 'openssl/crypto/evp/skeymgmt_meth.c', 'openssl/crypto/ffc/ffc_backend.c', 'openssl/crypto/ffc/ffc_dh.c', 'openssl/crypto/ffc/ffc_key_generate.c', @@ -115,6 +116,8 @@ 'openssl/crypto/ffc/ffc_params.c', 'openssl/crypto/ffc/ffc_params_generate.c', 'openssl/crypto/ffc/ffc_params_validate.c', + 'openssl/crypto/hashtable/hashfunc.c', + 'openssl/crypto/hashtable/hashtable.c', 'openssl/crypto/hmac/hmac.c', 'openssl/crypto/lhash/lhash.c', 'openssl/crypto/asn1_dsa.c', @@ -145,6 +148,16 @@ 'openssl/crypto/threads_none.c', 'openssl/crypto/threads_pthread.c', 'openssl/crypto/threads_win.c', + 'openssl/crypto/time.c', + 'openssl/crypto/ml_dsa/ml_dsa_encoders.c', + 'openssl/crypto/ml_dsa/ml_dsa_key.c', + 'openssl/crypto/ml_dsa/ml_dsa_key_compress.c', + 'openssl/crypto/ml_dsa/ml_dsa_matrix.c', + 'openssl/crypto/ml_dsa/ml_dsa_ntt.c', + 'openssl/crypto/ml_dsa/ml_dsa_params.c', + 'openssl/crypto/ml_dsa/ml_dsa_sample.c', + 'openssl/crypto/ml_dsa/ml_dsa_sign.c', + 'openssl/crypto/ml_kem/ml_kem.c', 'openssl/crypto/modes/cbc128.c', 'openssl/crypto/modes/ccm128.c', 'openssl/crypto/modes/cfb128.c', @@ -153,6 +166,7 @@ 'openssl/crypto/modes/ofb128.c', 'openssl/crypto/modes/wrap128.c', 'openssl/crypto/modes/xts128.c', + 'openssl/crypto/modes/xts128gb.c', 'openssl/crypto/property/defn_cache.c', 'openssl/crypto/property/property.c', 'openssl/crypto/property/property_parse.c', @@ -181,7 +195,23 @@ 'openssl/crypto/sha/sha256.c', 'openssl/crypto/sha/sha3.c', 'openssl/crypto/sha/sha512.c', + 'openssl/crypto/slh_dsa/slh_adrs.c', + 'openssl/crypto/slh_dsa/slh_dsa.c', + 'openssl/crypto/slh_dsa/slh_dsa_hash_ctx.c', + 'openssl/crypto/slh_dsa/slh_dsa_key.c', + 'openssl/crypto/slh_dsa/slh_fors.c', + 'openssl/crypto/slh_dsa/slh_hash.c', + 'openssl/crypto/slh_dsa/slh_hypertree.c', + 'openssl/crypto/slh_dsa/slh_params.c', + 'openssl/crypto/slh_dsa/slh_wots.c', + 'openssl/crypto/slh_dsa/slh_xmss.c', 'openssl/crypto/stack/stack.c', + 'openssl/crypto/thread/arch/thread_none.c', + 'openssl/crypto/thread/arch/thread_posix.c', + 'openssl/crypto/thread/arch/thread_win.c', + 'openssl/crypto/thread/api.c', + 'openssl/crypto/thread/arch.c', + 'openssl/crypto/thread/internal.c', 'openssl/providers/common/der/der_rsa_sig.c', 'openssl/providers/common/bio_prov.c', 'openssl/providers/common/capabilities.c', @@ -190,6 +220,7 @@ 'openssl/providers/common/provider_util.c', 'openssl/providers/common/securitycheck.c', 'openssl/providers/common/securitycheck_fips.c', + 'openssl/providers/fips/fipsindicator.c', 'openssl/providers/fips/fipsprov.c', 'openssl/providers/fips/self_test.c', 'openssl/providers/fips/self_test_kats.c', @@ -227,6 +258,8 @@ 'openssl/providers/implementations/kdfs/sskdf.c', 'openssl/providers/implementations/kdfs/tls1_prf.c', 'openssl/providers/implementations/kdfs/x942kdf.c', + 'openssl/providers/implementations/kem/ml_kem_kem.c', + 'openssl/providers/implementations/kem/mlx_kem.c', 'openssl/providers/implementations/kem/rsa_kem.c', 'openssl/providers/implementations/keymgmt/dh_kmgmt.c', 'openssl/providers/implementations/keymgmt/dsa_kmgmt.c', @@ -234,29 +267,39 @@ 'openssl/providers/implementations/keymgmt/ecx_kmgmt.c', 'openssl/providers/implementations/keymgmt/kdf_legacy_kmgmt.c', 'openssl/providers/implementations/keymgmt/mac_legacy_kmgmt.c', + 'openssl/providers/implementations/keymgmt/ml_dsa_kmgmt.c', + 'openssl/providers/implementations/keymgmt/ml_kem_kmgmt.c', + 'openssl/providers/implementations/keymgmt/mlx_kmgmt.c', 'openssl/providers/implementations/keymgmt/rsa_kmgmt.c', + 'openssl/providers/implementations/keymgmt/slh_dsa_kmgmt.c', 'openssl/providers/implementations/macs/cmac_prov.c', 'openssl/providers/implementations/macs/gmac_prov.c', 'openssl/providers/implementations/macs/hmac_prov.c', 'openssl/providers/implementations/macs/kmac_prov.c', - 'openssl/providers/implementations/rands/crngt.c', 'openssl/providers/implementations/rands/drbg.c', 'openssl/providers/implementations/rands/drbg_ctr.c', 'openssl/providers/implementations/rands/drbg_hash.c', 'openssl/providers/implementations/rands/drbg_hmac.c', + 'openssl/providers/implementations/rands/fips_crng_test.c', 'openssl/providers/implementations/rands/test_rng.c', 'openssl/providers/implementations/signature/dsa_sig.c', 'openssl/providers/implementations/signature/ecdsa_sig.c', 'openssl/providers/implementations/signature/eddsa_sig.c', 'openssl/providers/implementations/signature/mac_legacy_sig.c', + 'openssl/providers/implementations/signature/ml_dsa_sig.c', 'openssl/providers/implementations/signature/rsa_sig.c', - 'openssl/ssl/s3_cbc.c', + 'openssl/providers/implementations/signature/slh_dsa_sig.c', + 'openssl/providers/implementations/skeymgmt/aes_skmgmt.c', + 'openssl/providers/implementations/skeymgmt/generic.c', + 'openssl/ssl/record/methods/ssl3_cbc.c', 'openssl/providers/common/der/der_dsa_key.c', 'openssl/providers/common/der/der_dsa_sig.c', 'openssl/providers/common/der/der_ec_key.c', 'openssl/providers/common/der/der_ec_sig.c', 'openssl/providers/common/der/der_ecx_key.c', + 'openssl/providers/common/der/der_ml_dsa_key.c', 'openssl/providers/common/der/der_rsa_key.c', + 'openssl/providers/common/der/der_slh_dsa_key.c', 'openssl/providers/common/provider_ctx.c', 'openssl/providers/common/provider_err.c', 'openssl/providers/implementations/ciphers/ciphercommon.c', @@ -267,17 +310,20 @@ 'openssl/providers/implementations/ciphers/ciphercommon_gcm_hw.c', 'openssl/providers/implementations/ciphers/ciphercommon_hw.c', 'openssl/providers/implementations/digests/digestcommon.c', - 'openssl/ssl/record/tls_pad.c', + 'openssl/ssl/record/methods/tls_pad.c', 'openssl/providers/fips/fips_entry.c', ], 'openssl_sources_linux-aarch64': [ + './config/archs/linux-aarch64/no-asm/crypto/params_idx.c', './config/archs/linux-aarch64/no-asm/providers/common/der/der_sm2_gen.c', './config/archs/linux-aarch64/no-asm/providers/common/der/der_digests_gen.c', './config/archs/linux-aarch64/no-asm/providers/common/der/der_dsa_gen.c', './config/archs/linux-aarch64/no-asm/providers/common/der/der_ec_gen.c', './config/archs/linux-aarch64/no-asm/providers/common/der/der_ecx_gen.c', + './config/archs/linux-aarch64/no-asm/providers/common/der/der_ml_dsa_gen.c', './config/archs/linux-aarch64/no-asm/providers/common/der/der_rsa_gen.c', + './config/archs/linux-aarch64/no-asm/providers/common/der/der_slh_dsa_gen.c', './config/archs/linux-aarch64/no-asm/providers/common/der/der_wrap_gen.c', './config/archs/linux-aarch64/no-asm/providers/legacy.ld', './config/archs/linux-aarch64/no-asm/providers/fips.ld', diff --git a/deps/openssl/config/archs/linux-aarch64/no-asm/openssl.gypi b/deps/openssl/config/archs/linux-aarch64/no-asm/openssl.gypi index 387362a4757ebb..65ea6085c2abc3 100644 --- a/deps/openssl/config/archs/linux-aarch64/no-asm/openssl.gypi +++ b/deps/openssl/config/archs/linux-aarch64/no-asm/openssl.gypi @@ -7,14 +7,15 @@ 'openssl/ssl/d1_srtp.c', 'openssl/ssl/methods.c', 'openssl/ssl/pqueue.c', + 'openssl/ssl/priority_queue.c', 'openssl/ssl/s3_enc.c', 'openssl/ssl/s3_lib.c', 'openssl/ssl/s3_msg.c', 'openssl/ssl/ssl_asn1.c', 'openssl/ssl/ssl_cert.c', + 'openssl/ssl/ssl_cert_comp.c', 'openssl/ssl/ssl_ciph.c', 'openssl/ssl/ssl_conf.c', - 'openssl/ssl/ssl_err.c', 'openssl/ssl/ssl_err_legacy.c', 'openssl/ssl/ssl_init.c', 'openssl/ssl/ssl_lib.c', @@ -31,12 +32,60 @@ 'openssl/ssl/tls13_enc.c', 'openssl/ssl/tls_depr.c', 'openssl/ssl/tls_srp.c', - 'openssl/ssl/record/dtls1_bitmap.c', + 'openssl/ssl/quic/cc_newreno.c', + 'openssl/ssl/quic/json_enc.c', + 'openssl/ssl/quic/qlog.c', + 'openssl/ssl/quic/qlog_event_helpers.c', + 'openssl/ssl/quic/quic_ackm.c', + 'openssl/ssl/quic/quic_cfq.c', + 'openssl/ssl/quic/quic_channel.c', + 'openssl/ssl/quic/quic_demux.c', + 'openssl/ssl/quic/quic_engine.c', + 'openssl/ssl/quic/quic_fc.c', + 'openssl/ssl/quic/quic_fifd.c', + 'openssl/ssl/quic/quic_impl.c', + 'openssl/ssl/quic/quic_lcidm.c', + 'openssl/ssl/quic/quic_method.c', + 'openssl/ssl/quic/quic_obj.c', + 'openssl/ssl/quic/quic_port.c', + 'openssl/ssl/quic/quic_rcidm.c', + 'openssl/ssl/quic/quic_reactor.c', + 'openssl/ssl/quic/quic_reactor_wait_ctx.c', + 'openssl/ssl/quic/quic_record_rx.c', + 'openssl/ssl/quic/quic_record_shared.c', + 'openssl/ssl/quic/quic_record_tx.c', + 'openssl/ssl/quic/quic_record_util.c', + 'openssl/ssl/quic/quic_rstream.c', + 'openssl/ssl/quic/quic_rx_depack.c', + 'openssl/ssl/quic/quic_sf_list.c', + 'openssl/ssl/quic/quic_srt_gen.c', + 'openssl/ssl/quic/quic_srtm.c', + 'openssl/ssl/quic/quic_sstream.c', + 'openssl/ssl/quic/quic_statm.c', + 'openssl/ssl/quic/quic_stream_map.c', + 'openssl/ssl/quic/quic_thread_assist.c', + 'openssl/ssl/quic/quic_tls.c', + 'openssl/ssl/quic/quic_tls_api.c', + 'openssl/ssl/quic/quic_trace.c', + 'openssl/ssl/quic/quic_tserver.c', + 'openssl/ssl/quic/quic_txp.c', + 'openssl/ssl/quic/quic_txpim.c', + 'openssl/ssl/quic/quic_types.c', + 'openssl/ssl/quic/quic_wire.c', + 'openssl/ssl/quic/quic_wire_pkt.c', + 'openssl/ssl/quic/uint_set.c', 'openssl/ssl/record/rec_layer_d1.c', 'openssl/ssl/record/rec_layer_s3.c', - 'openssl/ssl/record/ssl3_buffer.c', - 'openssl/ssl/record/ssl3_record.c', - 'openssl/ssl/record/ssl3_record_tls13.c', + 'openssl/ssl/record/methods/dtls_meth.c', + 'openssl/ssl/record/methods/ssl3_meth.c', + 'openssl/ssl/record/methods/tls13_meth.c', + 'openssl/ssl/record/methods/tls1_meth.c', + 'openssl/ssl/record/methods/tls_common.c', + 'openssl/ssl/record/methods/tls_multib.c', + 'openssl/ssl/record/methods/tlsany_meth.c', + 'openssl/ssl/rio/poll_builder.c', + 'openssl/ssl/rio/poll_immediate.c', + 'openssl/ssl/rio/rio_notifier.c', 'openssl/ssl/statem/extensions.c', 'openssl/ssl/statem/extensions_clnt.c', 'openssl/ssl/statem/extensions_cust.c', @@ -150,6 +199,7 @@ 'openssl/crypto/bio/bss_conn.c', 'openssl/crypto/bio/bss_core.c', 'openssl/crypto/bio/bss_dgram.c', + 'openssl/crypto/bio/bss_dgram_pair.c', 'openssl/crypto/bio/bss_fd.c', 'openssl/crypto/bio/bss_file.c', 'openssl/crypto/bio/bss_log.c', @@ -210,6 +260,7 @@ 'openssl/crypto/cmp/cmp_client.c', 'openssl/crypto/cmp/cmp_ctx.c', 'openssl/crypto/cmp/cmp_err.c', + 'openssl/crypto/cmp/cmp_genm.c', 'openssl/crypto/cmp/cmp_hdr.c', 'openssl/crypto/cmp/cmp_http.c', 'openssl/crypto/cmp/cmp_msg.c', @@ -385,7 +436,9 @@ 'openssl/crypto/err/err_all.c', 'openssl/crypto/err/err_all_legacy.c', 'openssl/crypto/err/err_blocks.c', + 'openssl/crypto/err/err_mark.c', 'openssl/crypto/err/err_prn.c', + 'openssl/crypto/err/err_save.c', 'openssl/crypto/ess/ess_asn1.c', 'openssl/crypto/ess/ess_err.c', 'openssl/crypto/ess/ess_lib.c', @@ -468,7 +521,9 @@ 'openssl/crypto/evp/pmeth_check.c', 'openssl/crypto/evp/pmeth_gn.c', 'openssl/crypto/evp/pmeth_lib.c', + 'openssl/crypto/evp/s_lib.c', 'openssl/crypto/evp/signature.c', + 'openssl/crypto/evp/skeymgmt_meth.c', 'openssl/crypto/ffc/ffc_backend.c', 'openssl/crypto/ffc/ffc_dh.c', 'openssl/crypto/ffc/ffc_key_generate.c', @@ -476,7 +531,11 @@ 'openssl/crypto/ffc/ffc_params.c', 'openssl/crypto/ffc/ffc_params_generate.c', 'openssl/crypto/ffc/ffc_params_validate.c', + 'openssl/crypto/hashtable/hashfunc.c', + 'openssl/crypto/hashtable/hashtable.c', 'openssl/crypto/hmac/hmac.c', + 'openssl/crypto/hpke/hpke.c', + 'openssl/crypto/hpke/hpke_util.c', 'openssl/crypto/http/http_client.c', 'openssl/crypto/http/http_err.c', 'openssl/crypto/http/http_lib.c', @@ -490,6 +549,7 @@ 'openssl/crypto/lhash/lhash.c', 'openssl/crypto/asn1_dsa.c', 'openssl/crypto/bsearch.c', + 'openssl/crypto/comp_methods.c', 'openssl/crypto/context.c', 'openssl/crypto/core_algorithm.c', 'openssl/crypto/core_fetch.c', @@ -499,10 +559,13 @@ 'openssl/crypto/cryptlib.c', 'openssl/crypto/ctype.c', 'openssl/crypto/cversion.c', + 'openssl/crypto/defaults.c', 'openssl/crypto/der_writer.c', + 'openssl/crypto/deterministic_nonce.c', 'openssl/crypto/ebcdic.c', 'openssl/crypto/ex_data.c', 'openssl/crypto/getenv.c', + 'openssl/crypto/indicator_core.c', 'openssl/crypto/info.c', 'openssl/crypto/init.c', 'openssl/crypto/initthread.c', @@ -527,12 +590,16 @@ 'openssl/crypto/provider_core.c', 'openssl/crypto/provider_predefined.c', 'openssl/crypto/punycode.c', + 'openssl/crypto/quic_vlint.c', 'openssl/crypto/self_test_core.c', + 'openssl/crypto/sleep.c', 'openssl/crypto/sparse_array.c', + 'openssl/crypto/ssl_err.c', 'openssl/crypto/threads_lib.c', 'openssl/crypto/threads_none.c', 'openssl/crypto/threads_pthread.c', 'openssl/crypto/threads_win.c', + 'openssl/crypto/time.c', 'openssl/crypto/trace.c', 'openssl/crypto/uid.c', 'openssl/crypto/md4/md4_dgst.c', @@ -542,6 +609,15 @@ 'openssl/crypto/md5/md5_sha1.c', 'openssl/crypto/mdc2/mdc2_one.c', 'openssl/crypto/mdc2/mdc2dgst.c', + 'openssl/crypto/ml_dsa/ml_dsa_encoders.c', + 'openssl/crypto/ml_dsa/ml_dsa_key.c', + 'openssl/crypto/ml_dsa/ml_dsa_key_compress.c', + 'openssl/crypto/ml_dsa/ml_dsa_matrix.c', + 'openssl/crypto/ml_dsa/ml_dsa_ntt.c', + 'openssl/crypto/ml_dsa/ml_dsa_params.c', + 'openssl/crypto/ml_dsa/ml_dsa_sample.c', + 'openssl/crypto/ml_dsa/ml_dsa_sign.c', + 'openssl/crypto/ml_kem/ml_kem.c', 'openssl/crypto/modes/cbc128.c', 'openssl/crypto/modes/ccm128.c', 'openssl/crypto/modes/cfb128.c', @@ -553,6 +629,7 @@ 'openssl/crypto/modes/siv128.c', 'openssl/crypto/modes/wrap128.c', 'openssl/crypto/modes/xts128.c', + 'openssl/crypto/modes/xts128gb.c', 'openssl/crypto/objects/o_names.c', 'openssl/crypto/objects/obj_dat.c', 'openssl/crypto/objects/obj_err.c', @@ -616,6 +693,7 @@ 'openssl/crypto/rand/rand_lib.c', 'openssl/crypto/rand/rand_meth.c', 'openssl/crypto/rand/rand_pool.c', + 'openssl/crypto/rand/rand_uniform.c', 'openssl/crypto/rand/randfile.c', 'openssl/crypto/rc2/rc2_cbc.c', 'openssl/crypto/rc2/rc2_ecb.c', @@ -664,6 +742,16 @@ 'openssl/crypto/sha/sha3.c', 'openssl/crypto/sha/sha512.c', 'openssl/crypto/siphash/siphash.c', + 'openssl/crypto/slh_dsa/slh_adrs.c', + 'openssl/crypto/slh_dsa/slh_dsa.c', + 'openssl/crypto/slh_dsa/slh_dsa_hash_ctx.c', + 'openssl/crypto/slh_dsa/slh_dsa_key.c', + 'openssl/crypto/slh_dsa/slh_fors.c', + 'openssl/crypto/slh_dsa/slh_hash.c', + 'openssl/crypto/slh_dsa/slh_hypertree.c', + 'openssl/crypto/slh_dsa/slh_params.c', + 'openssl/crypto/slh_dsa/slh_wots.c', + 'openssl/crypto/slh_dsa/slh_xmss.c', 'openssl/crypto/sm2/sm2_crypt.c', 'openssl/crypto/sm2/sm2_err.c', 'openssl/crypto/sm2/sm2_key.c', @@ -681,6 +769,12 @@ 'openssl/crypto/store/store_register.c', 'openssl/crypto/store/store_result.c', 'openssl/crypto/store/store_strings.c', + 'openssl/crypto/thread/arch/thread_none.c', + 'openssl/crypto/thread/arch/thread_posix.c', + 'openssl/crypto/thread/arch/thread_win.c', + 'openssl/crypto/thread/api.c', + 'openssl/crypto/thread/arch.c', + 'openssl/crypto/thread/internal.c', 'openssl/crypto/ts/ts_asn1.c', 'openssl/crypto/ts/ts_conf.c', 'openssl/crypto/ts/ts_err.c', @@ -709,14 +803,22 @@ 'openssl/crypto/x509/pcy_map.c', 'openssl/crypto/x509/pcy_node.c', 'openssl/crypto/x509/pcy_tree.c', + 'openssl/crypto/x509/t_acert.c', 'openssl/crypto/x509/t_crl.c', 'openssl/crypto/x509/t_req.c', 'openssl/crypto/x509/t_x509.c', + 'openssl/crypto/x509/v3_aaa.c', + 'openssl/crypto/x509/v3_ac_tgt.c', 'openssl/crypto/x509/v3_addr.c', 'openssl/crypto/x509/v3_admis.c', 'openssl/crypto/x509/v3_akeya.c', 'openssl/crypto/x509/v3_akid.c', 'openssl/crypto/x509/v3_asid.c', + 'openssl/crypto/x509/v3_attrdesc.c', + 'openssl/crypto/x509/v3_attrmap.c', + 'openssl/crypto/x509/v3_audit_id.c', + 'openssl/crypto/x509/v3_authattid.c', + 'openssl/crypto/x509/v3_battcons.c', 'openssl/crypto/x509/v3_bcons.c', 'openssl/crypto/x509/v3_bitst.c', 'openssl/crypto/x509/v3_conf.c', @@ -725,12 +827,17 @@ 'openssl/crypto/x509/v3_enum.c', 'openssl/crypto/x509/v3_extku.c', 'openssl/crypto/x509/v3_genn.c', + 'openssl/crypto/x509/v3_group_ac.c', 'openssl/crypto/x509/v3_ia5.c', + 'openssl/crypto/x509/v3_ind_iss.c', 'openssl/crypto/x509/v3_info.c', 'openssl/crypto/x509/v3_int.c', + 'openssl/crypto/x509/v3_iobo.c', 'openssl/crypto/x509/v3_ist.c', 'openssl/crypto/x509/v3_lib.c', 'openssl/crypto/x509/v3_ncons.c', + 'openssl/crypto/x509/v3_no_ass.c', + 'openssl/crypto/x509/v3_no_rev_avail.c', 'openssl/crypto/x509/v3_pci.c', 'openssl/crypto/x509/v3_pcia.c', 'openssl/crypto/x509/v3_pcons.c', @@ -738,13 +845,20 @@ 'openssl/crypto/x509/v3_pmaps.c', 'openssl/crypto/x509/v3_prn.c', 'openssl/crypto/x509/v3_purp.c', + 'openssl/crypto/x509/v3_rolespec.c', 'openssl/crypto/x509/v3_san.c', + 'openssl/crypto/x509/v3_sda.c', + 'openssl/crypto/x509/v3_single_use.c', 'openssl/crypto/x509/v3_skid.c', + 'openssl/crypto/x509/v3_soa_id.c', 'openssl/crypto/x509/v3_sxnet.c', + 'openssl/crypto/x509/v3_timespec.c', 'openssl/crypto/x509/v3_tlsf.c', + 'openssl/crypto/x509/v3_usernotice.c', 'openssl/crypto/x509/v3_utf8.c', 'openssl/crypto/x509/v3_utl.c', 'openssl/crypto/x509/v3err.c', + 'openssl/crypto/x509/x509_acert.c', 'openssl/crypto/x509/x509_att.c', 'openssl/crypto/x509/x509_cmp.c', 'openssl/crypto/x509/x509_d2.c', @@ -762,6 +876,7 @@ 'openssl/crypto/x509/x509_v3.c', 'openssl/crypto/x509/x509_vfy.c', 'openssl/crypto/x509/x509_vpm.c', + 'openssl/crypto/x509/x509aset.c', 'openssl/crypto/x509/x509cset.c', 'openssl/crypto/x509/x509name.c', 'openssl/crypto/x509/x509rset.c', @@ -771,6 +886,7 @@ 'openssl/crypto/x509/x_attrib.c', 'openssl/crypto/x509/x_crl.c', 'openssl/crypto/x509/x_exten.c', + 'openssl/crypto/x509/x_ietfatt.c', 'openssl/crypto/x509/x_name.c', 'openssl/crypto/x509/x_pubkey.c', 'openssl/crypto/x509/x_req.c', @@ -802,6 +918,9 @@ 'openssl/providers/implementations/ciphers/cipher_aes_ccm_hw.c', 'openssl/providers/implementations/ciphers/cipher_aes_gcm.c', 'openssl/providers/implementations/ciphers/cipher_aes_gcm_hw.c', + 'openssl/providers/implementations/ciphers/cipher_aes_gcm_siv.c', + 'openssl/providers/implementations/ciphers/cipher_aes_gcm_siv_hw.c', + 'openssl/providers/implementations/ciphers/cipher_aes_gcm_siv_polyval.c', 'openssl/providers/implementations/ciphers/cipher_aes_hw.c', 'openssl/providers/implementations/ciphers/cipher_aes_ocb.c', 'openssl/providers/implementations/ciphers/cipher_aes_ocb_hw.c', @@ -826,7 +945,13 @@ 'openssl/providers/implementations/ciphers/cipher_cts.c', 'openssl/providers/implementations/ciphers/cipher_null.c', 'openssl/providers/implementations/ciphers/cipher_sm4.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_ccm.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_ccm_hw.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_gcm.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_gcm_hw.c', 'openssl/providers/implementations/ciphers/cipher_sm4_hw.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_xts.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_xts_hw.c', 'openssl/providers/implementations/ciphers/cipher_tdes.c', 'openssl/providers/implementations/ciphers/cipher_tdes_common.c', 'openssl/providers/implementations/ciphers/cipher_tdes_default.c', @@ -855,11 +980,16 @@ 'openssl/providers/implementations/encode_decode/encode_key2ms.c', 'openssl/providers/implementations/encode_decode/encode_key2text.c', 'openssl/providers/implementations/encode_decode/endecoder_common.c', + 'openssl/providers/implementations/encode_decode/ml_common_codecs.c', + 'openssl/providers/implementations/encode_decode/ml_dsa_codecs.c', + 'openssl/providers/implementations/encode_decode/ml_kem_codecs.c', 'openssl/providers/implementations/exchange/dh_exch.c', 'openssl/providers/implementations/exchange/ecdh_exch.c', 'openssl/providers/implementations/exchange/ecx_exch.c', 'openssl/providers/implementations/exchange/kdf_exch.c', + 'openssl/providers/implementations/kdfs/argon2.c', 'openssl/providers/implementations/kdfs/hkdf.c', + 'openssl/providers/implementations/kdfs/hmacdrbg_kdf.c', 'openssl/providers/implementations/kdfs/kbkdf.c', 'openssl/providers/implementations/kdfs/krb5kdf.c', 'openssl/providers/implementations/kdfs/pbkdf2.c', @@ -870,6 +1000,11 @@ 'openssl/providers/implementations/kdfs/sskdf.c', 'openssl/providers/implementations/kdfs/tls1_prf.c', 'openssl/providers/implementations/kdfs/x942kdf.c', + 'openssl/providers/implementations/kem/ec_kem.c', + 'openssl/providers/implementations/kem/ecx_kem.c', + 'openssl/providers/implementations/kem/kem_util.c', + 'openssl/providers/implementations/kem/ml_kem_kem.c', + 'openssl/providers/implementations/kem/mlx_kem.c', 'openssl/providers/implementations/kem/rsa_kem.c', 'openssl/providers/implementations/keymgmt/dh_kmgmt.c', 'openssl/providers/implementations/keymgmt/dsa_kmgmt.c', @@ -877,7 +1012,11 @@ 'openssl/providers/implementations/keymgmt/ecx_kmgmt.c', 'openssl/providers/implementations/keymgmt/kdf_legacy_kmgmt.c', 'openssl/providers/implementations/keymgmt/mac_legacy_kmgmt.c', + 'openssl/providers/implementations/keymgmt/ml_dsa_kmgmt.c', + 'openssl/providers/implementations/keymgmt/ml_kem_kmgmt.c', + 'openssl/providers/implementations/keymgmt/mlx_kmgmt.c', 'openssl/providers/implementations/keymgmt/rsa_kmgmt.c', + 'openssl/providers/implementations/keymgmt/slh_dsa_kmgmt.c', 'openssl/providers/implementations/macs/blake2b_mac.c', 'openssl/providers/implementations/macs/blake2s_mac.c', 'openssl/providers/implementations/macs/cmac_prov.c', @@ -886,12 +1025,12 @@ 'openssl/providers/implementations/macs/kmac_prov.c', 'openssl/providers/implementations/macs/poly1305_prov.c', 'openssl/providers/implementations/macs/siphash_prov.c', - 'openssl/providers/implementations/rands/crngt.c', 'openssl/providers/implementations/rands/drbg.c', 'openssl/providers/implementations/rands/drbg_ctr.c', 'openssl/providers/implementations/rands/drbg_hash.c', 'openssl/providers/implementations/rands/drbg_hmac.c', 'openssl/providers/implementations/rands/seed_src.c', + 'openssl/providers/implementations/rands/seed_src_jitter.c', 'openssl/providers/implementations/rands/test_rng.c', 'openssl/providers/implementations/rands/seeding/rand_cpu_x86.c', 'openssl/providers/implementations/rands/seeding/rand_tsc.c', @@ -901,17 +1040,23 @@ 'openssl/providers/implementations/signature/ecdsa_sig.c', 'openssl/providers/implementations/signature/eddsa_sig.c', 'openssl/providers/implementations/signature/mac_legacy_sig.c', + 'openssl/providers/implementations/signature/ml_dsa_sig.c', 'openssl/providers/implementations/signature/rsa_sig.c', + 'openssl/providers/implementations/signature/slh_dsa_sig.c', 'openssl/providers/implementations/signature/sm2_sig.c', + 'openssl/providers/implementations/skeymgmt/aes_skmgmt.c', + 'openssl/providers/implementations/skeymgmt/generic.c', 'openssl/providers/implementations/storemgmt/file_store.c', 'openssl/providers/implementations/storemgmt/file_store_any2obj.c', - 'openssl/ssl/s3_cbc.c', + 'openssl/ssl/record/methods/ssl3_cbc.c', 'openssl/providers/common/der/der_dsa_key.c', 'openssl/providers/common/der/der_dsa_sig.c', 'openssl/providers/common/der/der_ec_key.c', 'openssl/providers/common/der/der_ec_sig.c', 'openssl/providers/common/der/der_ecx_key.c', + 'openssl/providers/common/der/der_ml_dsa_key.c', 'openssl/providers/common/der/der_rsa_key.c', + 'openssl/providers/common/der/der_slh_dsa_key.c', 'openssl/providers/common/provider_ctx.c', 'openssl/providers/common/provider_err.c', 'openssl/providers/implementations/ciphers/ciphercommon.c', @@ -922,7 +1067,7 @@ 'openssl/providers/implementations/ciphers/ciphercommon_gcm_hw.c', 'openssl/providers/implementations/ciphers/ciphercommon_hw.c', 'openssl/providers/implementations/digests/digestcommon.c', - 'openssl/ssl/record/tls_pad.c', + 'openssl/ssl/record/methods/tls_pad.c', 'openssl/providers/implementations/ciphers/cipher_blowfish.c', 'openssl/providers/implementations/ciphers/cipher_blowfish_hw.c', 'openssl/providers/implementations/ciphers/cipher_cast5.c', @@ -947,16 +1092,20 @@ 'openssl/providers/implementations/digests/ripemd_prov.c', 'openssl/providers/implementations/digests/wp_prov.c', 'openssl/providers/implementations/kdfs/pbkdf1.c', + 'openssl/providers/implementations/kdfs/pvkkdf.c', 'openssl/providers/prov_running.c', 'openssl/providers/legacyprov.c', ], 'openssl_sources_linux-aarch64': [ + './config/archs/linux-aarch64/no-asm/crypto/params_idx.c', './config/archs/linux-aarch64/no-asm/providers/common/der/der_sm2_gen.c', './config/archs/linux-aarch64/no-asm/providers/common/der/der_digests_gen.c', './config/archs/linux-aarch64/no-asm/providers/common/der/der_dsa_gen.c', './config/archs/linux-aarch64/no-asm/providers/common/der/der_ec_gen.c', './config/archs/linux-aarch64/no-asm/providers/common/der/der_ecx_gen.c', + './config/archs/linux-aarch64/no-asm/providers/common/der/der_ml_dsa_gen.c', './config/archs/linux-aarch64/no-asm/providers/common/der/der_rsa_gen.c', + './config/archs/linux-aarch64/no-asm/providers/common/der/der_slh_dsa_gen.c', './config/archs/linux-aarch64/no-asm/providers/common/der/der_wrap_gen.c', './config/archs/linux-aarch64/no-asm/providers/legacy.ld', './config/archs/linux-aarch64/no-asm/providers/fips.ld', diff --git a/deps/openssl/config/archs/linux-aarch64/no-asm/providers/common/der/der_ml_dsa_gen.c b/deps/openssl/config/archs/linux-aarch64/no-asm/providers/common/der/der_ml_dsa_gen.c new file mode 100644 index 00000000000000..4a8a113a268578 --- /dev/null +++ b/deps/openssl/config/archs/linux-aarch64/no-asm/providers/common/der/der_ml_dsa_gen.c @@ -0,0 +1,37 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from providers/common/der/der_ml_dsa_gen.c.in + * + * Copyright 2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include "prov/der_ml_dsa.h" + +/* Well known OIDs precompiled */ + +/* + * id-ml-dsa-44 OBJECT IDENTIFIER ::= { sigAlgs 17 } + */ +const unsigned char ossl_der_oid_id_ml_dsa_44[DER_OID_SZ_id_ml_dsa_44] = { + DER_OID_V_id_ml_dsa_44 +}; + +/* + * id-ml-dsa-65 OBJECT IDENTIFIER ::= { sigAlgs 18 } + */ +const unsigned char ossl_der_oid_id_ml_dsa_65[DER_OID_SZ_id_ml_dsa_65] = { + DER_OID_V_id_ml_dsa_65 +}; + +/* + * id-ml-dsa-87 OBJECT IDENTIFIER ::= { sigAlgs 19 } + */ +const unsigned char ossl_der_oid_id_ml_dsa_87[DER_OID_SZ_id_ml_dsa_87] = { + DER_OID_V_id_ml_dsa_87 +}; + diff --git a/deps/openssl/config/archs/linux-aarch64/no-asm/providers/common/der/der_slh_dsa_gen.c b/deps/openssl/config/archs/linux-aarch64/no-asm/providers/common/der/der_slh_dsa_gen.c new file mode 100644 index 00000000000000..1419a9515097dd --- /dev/null +++ b/deps/openssl/config/archs/linux-aarch64/no-asm/providers/common/der/der_slh_dsa_gen.c @@ -0,0 +1,100 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from providers/common/der/der_slh_dsa_gen.c.in + * + * Copyright 2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include "prov/der_slh_dsa.h" + +/* Well known OIDs precompiled */ + +/* + * id-slh-dsa-sha2-128s OBJECT IDENTIFIER ::= { sigAlgs 20 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_128s[DER_OID_SZ_id_slh_dsa_sha2_128s] = { + DER_OID_V_id_slh_dsa_sha2_128s +}; + +/* + * id-slh-dsa-sha2-128f OBJECT IDENTIFIER ::= { sigAlgs 21 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_128f[DER_OID_SZ_id_slh_dsa_sha2_128f] = { + DER_OID_V_id_slh_dsa_sha2_128f +}; + +/* + * id-slh-dsa-sha2-192s OBJECT IDENTIFIER ::= { sigAlgs 22 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_192s[DER_OID_SZ_id_slh_dsa_sha2_192s] = { + DER_OID_V_id_slh_dsa_sha2_192s +}; + +/* + * id-slh-dsa-sha2-192f OBJECT IDENTIFIER ::= { sigAlgs 23 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_192f[DER_OID_SZ_id_slh_dsa_sha2_192f] = { + DER_OID_V_id_slh_dsa_sha2_192f +}; + +/* + * id-slh-dsa-sha2-256s OBJECT IDENTIFIER ::= { sigAlgs 24 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_256s[DER_OID_SZ_id_slh_dsa_sha2_256s] = { + DER_OID_V_id_slh_dsa_sha2_256s +}; + +/* + * id-slh-dsa-sha2-256f OBJECT IDENTIFIER ::= { sigAlgs 25 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_256f[DER_OID_SZ_id_slh_dsa_sha2_256f] = { + DER_OID_V_id_slh_dsa_sha2_256f +}; + +/* + * id-slh-dsa-shake-128s OBJECT IDENTIFIER ::= { sigAlgs 26 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_128s[DER_OID_SZ_id_slh_dsa_shake_128s] = { + DER_OID_V_id_slh_dsa_shake_128s +}; + +/* + * id-slh-dsa-shake-128f OBJECT IDENTIFIER ::= { sigAlgs 27 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_128f[DER_OID_SZ_id_slh_dsa_shake_128f] = { + DER_OID_V_id_slh_dsa_shake_128f +}; + +/* + * id-slh-dsa-shake-192s OBJECT IDENTIFIER ::= { sigAlgs 28 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_192s[DER_OID_SZ_id_slh_dsa_shake_192s] = { + DER_OID_V_id_slh_dsa_shake_192s +}; + +/* + * id-slh-dsa-shake-192f OBJECT IDENTIFIER ::= { sigAlgs 29 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_192f[DER_OID_SZ_id_slh_dsa_shake_192f] = { + DER_OID_V_id_slh_dsa_shake_192f +}; + +/* + * id-slh-dsa-shake-256s OBJECT IDENTIFIER ::= { sigAlgs 30 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_256s[DER_OID_SZ_id_slh_dsa_shake_256s] = { + DER_OID_V_id_slh_dsa_shake_256s +}; + +/* + * id-slh-dsa-shake-256f OBJECT IDENTIFIER ::= { sigAlgs 31 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_256f[DER_OID_SZ_id_slh_dsa_shake_256f] = { + DER_OID_V_id_slh_dsa_shake_256f +}; + diff --git a/deps/openssl/config/archs/linux-aarch64/no-asm/providers/common/include/prov/der_ml_dsa.h b/deps/openssl/config/archs/linux-aarch64/no-asm/providers/common/include/prov/der_ml_dsa.h new file mode 100644 index 00000000000000..c55f780ab4527c --- /dev/null +++ b/deps/openssl/config/archs/linux-aarch64/no-asm/providers/common/include/prov/der_ml_dsa.h @@ -0,0 +1,40 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from providers/common/include/prov/der_ml_dsa.h.in + * + * Copyright 2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include "internal/der.h" +#include "crypto/ml_dsa.h" + +/* Well known OIDs precompiled */ + +/* + * id-ml-dsa-44 OBJECT IDENTIFIER ::= { sigAlgs 17 } + */ +#define DER_OID_V_id_ml_dsa_44 DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x11 +#define DER_OID_SZ_id_ml_dsa_44 11 +extern const unsigned char ossl_der_oid_id_ml_dsa_44[DER_OID_SZ_id_ml_dsa_44]; + +/* + * id-ml-dsa-65 OBJECT IDENTIFIER ::= { sigAlgs 18 } + */ +#define DER_OID_V_id_ml_dsa_65 DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x12 +#define DER_OID_SZ_id_ml_dsa_65 11 +extern const unsigned char ossl_der_oid_id_ml_dsa_65[DER_OID_SZ_id_ml_dsa_65]; + +/* + * id-ml-dsa-87 OBJECT IDENTIFIER ::= { sigAlgs 19 } + */ +#define DER_OID_V_id_ml_dsa_87 DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x13 +#define DER_OID_SZ_id_ml_dsa_87 11 +extern const unsigned char ossl_der_oid_id_ml_dsa_87[DER_OID_SZ_id_ml_dsa_87]; + + +int ossl_DER_w_algorithmIdentifier_ML_DSA(WPACKET *pkt, int tag, ML_DSA_KEY *key); diff --git a/deps/openssl/config/archs/linux-aarch64/no-asm/providers/common/include/prov/der_slh_dsa.h b/deps/openssl/config/archs/linux-aarch64/no-asm/providers/common/include/prov/der_slh_dsa.h new file mode 100644 index 00000000000000..760f8e7699be72 --- /dev/null +++ b/deps/openssl/config/archs/linux-aarch64/no-asm/providers/common/include/prov/der_slh_dsa.h @@ -0,0 +1,103 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from providers/common/include/prov/der_slh_dsa.h.in + * + * Copyright 2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include "internal/der.h" +#include "crypto/slh_dsa.h" + +/* Well known OIDs precompiled */ + +/* + * id-slh-dsa-sha2-128s OBJECT IDENTIFIER ::= { sigAlgs 20 } + */ +#define DER_OID_V_id_slh_dsa_sha2_128s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x14 +#define DER_OID_SZ_id_slh_dsa_sha2_128s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_128s[DER_OID_SZ_id_slh_dsa_sha2_128s]; + +/* + * id-slh-dsa-sha2-128f OBJECT IDENTIFIER ::= { sigAlgs 21 } + */ +#define DER_OID_V_id_slh_dsa_sha2_128f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x15 +#define DER_OID_SZ_id_slh_dsa_sha2_128f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_128f[DER_OID_SZ_id_slh_dsa_sha2_128f]; + +/* + * id-slh-dsa-sha2-192s OBJECT IDENTIFIER ::= { sigAlgs 22 } + */ +#define DER_OID_V_id_slh_dsa_sha2_192s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x16 +#define DER_OID_SZ_id_slh_dsa_sha2_192s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_192s[DER_OID_SZ_id_slh_dsa_sha2_192s]; + +/* + * id-slh-dsa-sha2-192f OBJECT IDENTIFIER ::= { sigAlgs 23 } + */ +#define DER_OID_V_id_slh_dsa_sha2_192f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x17 +#define DER_OID_SZ_id_slh_dsa_sha2_192f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_192f[DER_OID_SZ_id_slh_dsa_sha2_192f]; + +/* + * id-slh-dsa-sha2-256s OBJECT IDENTIFIER ::= { sigAlgs 24 } + */ +#define DER_OID_V_id_slh_dsa_sha2_256s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x18 +#define DER_OID_SZ_id_slh_dsa_sha2_256s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_256s[DER_OID_SZ_id_slh_dsa_sha2_256s]; + +/* + * id-slh-dsa-sha2-256f OBJECT IDENTIFIER ::= { sigAlgs 25 } + */ +#define DER_OID_V_id_slh_dsa_sha2_256f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x19 +#define DER_OID_SZ_id_slh_dsa_sha2_256f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_256f[DER_OID_SZ_id_slh_dsa_sha2_256f]; + +/* + * id-slh-dsa-shake-128s OBJECT IDENTIFIER ::= { sigAlgs 26 } + */ +#define DER_OID_V_id_slh_dsa_shake_128s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1A +#define DER_OID_SZ_id_slh_dsa_shake_128s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_128s[DER_OID_SZ_id_slh_dsa_shake_128s]; + +/* + * id-slh-dsa-shake-128f OBJECT IDENTIFIER ::= { sigAlgs 27 } + */ +#define DER_OID_V_id_slh_dsa_shake_128f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1B +#define DER_OID_SZ_id_slh_dsa_shake_128f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_128f[DER_OID_SZ_id_slh_dsa_shake_128f]; + +/* + * id-slh-dsa-shake-192s OBJECT IDENTIFIER ::= { sigAlgs 28 } + */ +#define DER_OID_V_id_slh_dsa_shake_192s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1C +#define DER_OID_SZ_id_slh_dsa_shake_192s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_192s[DER_OID_SZ_id_slh_dsa_shake_192s]; + +/* + * id-slh-dsa-shake-192f OBJECT IDENTIFIER ::= { sigAlgs 29 } + */ +#define DER_OID_V_id_slh_dsa_shake_192f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1D +#define DER_OID_SZ_id_slh_dsa_shake_192f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_192f[DER_OID_SZ_id_slh_dsa_shake_192f]; + +/* + * id-slh-dsa-shake-256s OBJECT IDENTIFIER ::= { sigAlgs 30 } + */ +#define DER_OID_V_id_slh_dsa_shake_256s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1E +#define DER_OID_SZ_id_slh_dsa_shake_256s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_256s[DER_OID_SZ_id_slh_dsa_shake_256s]; + +/* + * id-slh-dsa-shake-256f OBJECT IDENTIFIER ::= { sigAlgs 31 } + */ +#define DER_OID_V_id_slh_dsa_shake_256f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1F +#define DER_OID_SZ_id_slh_dsa_shake_256f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_256f[DER_OID_SZ_id_slh_dsa_shake_256f]; + + +int ossl_DER_w_algorithmIdentifier_SLH_DSA(WPACKET *pkt, int tag, SLH_DSA_KEY *key); diff --git a/deps/openssl/config/archs/linux-armv4/asm/apps/progs.c b/deps/openssl/config/archs/linux-armv4/asm/apps/progs.c index 43cef00799b86e..acc204a3e6e781 100644 --- a/deps/openssl/config/archs/linux-armv4/asm/apps/progs.c +++ b/deps/openssl/config/archs/linux-armv4/asm/apps/progs.c @@ -89,6 +89,7 @@ FUNCTION functions[] = { {FT_general, "s_time", s_time_main, s_time_options, NULL, NULL}, #endif {FT_general, "sess_id", sess_id_main, sess_id_options, NULL, NULL}, + {FT_general, "skeyutl", skeyutl_main, skeyutl_options, NULL, NULL}, {FT_general, "smime", smime_main, smime_options, NULL, NULL}, {FT_general, "speed", speed_main, speed_options, NULL, NULL}, {FT_general, "spkac", spkac_main, spkac_options, NULL, NULL}, @@ -225,9 +226,15 @@ FUNCTION functions[] = { {FT_cipher, "camellia-256-ecb", enc_main, enc_options, NULL}, #endif {FT_cipher, "base64", enc_main, enc_options, NULL}, -#ifdef ZLIB +#ifndef OPENSSL_NO_ZLIB {FT_cipher, "zlib", enc_main, enc_options, NULL}, #endif +#ifndef OPENSSL_NO_BROTLI + {FT_cipher, "brotli", enc_main, enc_options, NULL}, +#endif +#ifndef OPENSSL_NO_ZSTD + {FT_cipher, "zstd", enc_main, enc_options, NULL}, +#endif #ifndef OPENSSL_NO_DES {FT_cipher, "des", enc_main, enc_options, NULL}, #endif diff --git a/deps/openssl/config/archs/linux-armv4/asm/configdata.pm b/deps/openssl/config/archs/linux-armv4/asm/configdata.pm index 07d8870da90f92..44123221e58537 100644 --- a/deps/openssl/config/archs/linux-armv4/asm/configdata.pm +++ b/deps/openssl/config/archs/linux-armv4/asm/configdata.pm @@ -18,6 +18,7 @@ our %config = ( "ARFLAGS" => [ "qc" ], + "ASFLAGS" => [], "CC" => "gcc", "CFLAGS" => [ "-Wall -O3" @@ -30,14 +31,16 @@ our %config = ( "-Wall -O3" ], "FIPSKEY" => "f4556650ac31d35461610bac4ed81b1a181b2d8a43ea2854cbae22ca74560813", + "FIPS_VENDOR" => "OpenSSL FIPS Provider", "HASHBANGPERL" => "/usr/bin/env perl", "LDFLAGS" => [], "LDLIBS" => [], + "OBJCOPY" => "objcopy", "PERL" => "/usr/bin/perl", "RANLIB" => "ranlib", "RC" => "windres", "RCFLAGS" => [], - "api" => "30000", + "api" => "30500", "b32" => "1", "b64" => "0", "b64l" => "0", @@ -59,11 +62,13 @@ our %config = ( "doc/build.info", "test/build.info", "engines/build.info", + "exporters/build.info", "crypto/objects/build.info", "crypto/buffer/build.info", "crypto/bio/build.info", "crypto/stack/build.info", "crypto/lhash/build.info", + "crypto/hashtable/build.info", "crypto/rand/build.info", "crypto/evp/build.info", "crypto/asn1/build.info", @@ -81,6 +86,7 @@ our %config = ( "crypto/md5/build.info", "crypto/sha/build.info", "crypto/mdc2/build.info", + "crypto/ml_kem/build.info", "crypto/hmac/build.info", "crypto/ripemd/build.info", "crypto/whrlpool/build.info", @@ -122,11 +128,19 @@ our %config = ( "crypto/cmp/build.info", "crypto/encode_decode/build.info", "crypto/ffc/build.info", + "crypto/hpke/build.info", + "crypto/thread/build.info", + "crypto/ml_dsa/build.info", + "crypto/slh_dsa/build.info", + "ssl/record/build.info", + "ssl/rio/build.info", + "ssl/quic/build.info", "apps/lib/build.info", "providers/common/build.info", "providers/implementations/build.info", "providers/fips/build.info", "doc/man1/build.info", + "ssl/record/methods/build.info", "providers/common/der/build.info", "providers/implementations/digests/build.info", "providers/implementations/ciphers/build.info", @@ -140,6 +154,7 @@ our %config = ( "providers/implementations/encode_decode/build.info", "providers/implementations/storemgmt/build.info", "providers/implementations/kem/build.info", + "providers/implementations/skeymgmt/build.info", "providers/implementations/rands/seeding/build.info" ], "build_metadata" => "", @@ -159,7 +174,7 @@ our %config = ( ], "dynamic_engines" => "0", "ex_libs" => [], - "full_version" => "3.0.17", + "full_version" => "3.5.1", "includes" => [], "lflags" => [], "lib_defines" => [ @@ -168,37 +183,52 @@ our %config = ( "libdir" => "", "major" => "3", "makedep_scheme" => "gcc", - "minor" => "0", + "minor" => "5", "openssl_api_defines" => [ - "OPENSSL_CONFIGURED_API=30000" + "OPENSSL_CONFIGURED_API=30500" ], "openssl_feature_defines" => [ "OPENSSL_RAND_SEED_OS", "OPENSSL_THREADS", "OPENSSL_NO_AFALGENG", "OPENSSL_NO_ASAN", + "OPENSSL_NO_BROTLI", + "OPENSSL_NO_BROTLI_DYNAMIC", "OPENSSL_NO_COMP", "OPENSSL_NO_CRYPTO_MDEBUG", "OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE", + "OPENSSL_NO_DEMOS", "OPENSSL_NO_DEVCRYPTOENG", "OPENSSL_NO_EC_NISTP_64_GCC_128", "OPENSSL_NO_EGD", "OPENSSL_NO_EXTERNAL_TESTS", + "OPENSSL_NO_FIPS_JITTER", "OPENSSL_NO_FUZZ_AFL", "OPENSSL_NO_FUZZ_LIBFUZZER", + "OPENSSL_NO_H3DEMO", + "OPENSSL_NO_HQINTEROP", + "OPENSSL_NO_JITTER", "OPENSSL_NO_KTLS", "OPENSSL_NO_LOADERENG", "OPENSSL_NO_MD2", "OPENSSL_NO_MSAN", + "OPENSSL_NO_PIE", "OPENSSL_NO_RC5", "OPENSSL_NO_SCTP", "OPENSSL_NO_SSL3", "OPENSSL_NO_SSL3_METHOD", + "OPENSSL_NO_SSLKEYLOG", + "OPENSSL_NO_TFO", "OPENSSL_NO_TRACE", "OPENSSL_NO_UBSAN", "OPENSSL_NO_UNIT_TEST", "OPENSSL_NO_UPLINK", "OPENSSL_NO_WEAK_SSL_CIPHERS", + "OPENSSL_NO_WINSTORE", + "OPENSSL_NO_ZLIB", + "OPENSSL_NO_ZLIB_DYNAMIC", + "OPENSSL_NO_ZSTD", + "OPENSSL_NO_ZSTD_DYNAMIC", "OPENSSL_NO_DYNAMIC_ENGINE" ], "openssl_other_defines" => [ @@ -206,11 +236,11 @@ our %config = ( ], "openssl_sys_defines" => [], "openssldir" => "", - "options" => "enable-ssl-trace enable-fips no-afalgeng no-asan no-buildtest-c++ no-comp no-crypto-mdebug no-crypto-mdebug-backtrace no-devcryptoeng no-dynamic-engine no-ec_nistp_64_gcc_128 no-egd no-external-tests no-fuzz-afl no-fuzz-libfuzzer no-ktls no-loadereng no-md2 no-msan no-rc5 no-sctp no-shared no-ssl3 no-ssl3-method no-trace no-ubsan no-unit-test no-uplink no-weak-ssl-ciphers no-zlib no-zlib-dynamic", - "patch" => "17", + "options" => "enable-ssl-trace enable-fips no-afalgeng no-asan no-brotli no-brotli-dynamic no-buildtest-c++ no-comp no-crypto-mdebug no-crypto-mdebug-backtrace no-demos no-devcryptoeng no-dynamic-engine no-ec_nistp_64_gcc_128 no-egd no-external-tests no-fips-jitter no-fuzz-afl no-fuzz-libfuzzer no-h3demo no-hqinterop no-jitter no-ktls no-loadereng no-md2 no-msan no-pie no-rc5 no-sctp no-shared no-ssl3 no-ssl3-method no-sslkeylog no-tfo no-trace no-ubsan no-unit-test no-uplink no-weak-ssl-ciphers no-winstore no-zlib no-zlib-dynamic no-zstd no-zstd-dynamic", + "patch" => "1", "perl_archname" => "x86_64-linux-gnu-thread-multi", "perl_cmd" => "/usr/bin/perl", - "perl_version" => "5.38.2", + "perl_version" => "5.34.0", "perlargv" => [ "no-comp", "no-shared", @@ -240,6 +270,7 @@ our %config = ( "LDLIBS" => undef, "MT" => undef, "MTFLAGS" => undef, + "OBJCOPY" => undef, "OPENSSL_LOCAL_CONFIG_DIR" => undef, "PERL" => undef, "RANLIB" => undef, @@ -263,7 +294,7 @@ our %config = ( "shlib_version" => "3", "sourcedir" => ".", "target" => "linux-armv4", - "version" => "3.0.17" + "version" => "3.5.1" ); our %target = ( "AR" => "ar", @@ -273,6 +304,7 @@ our %target = ( "CXX" => "g++", "CXXFLAGS" => "-Wall -O3", "HASHBANGPERL" => "/usr/bin/env perl", + "OBJCOPY" => "objcopy", "RANLIB" => "ranlib", "RC" => "windres", "_conf_fname_int" => [ @@ -284,6 +316,8 @@ our %target = ( "Configurations/shared-info.pl" ], "asm_arch" => "armv4", + "bin_cflags" => "", + "bin_lflags" => "", "bn_ops" => "BN_LLONG RC4_CHAR", "build_file" => "Makefile", "build_scheme" => [ @@ -328,6 +362,8 @@ our %target = ( our @disablables = ( "acvp-tests", "afalgeng", + "apps", + "argon2", "aria", "asan", "asm", @@ -338,11 +374,14 @@ our @disablables = ( "autoload-config", "bf", "blake2", + "brotli", + "brotli-dynamic", "buildtest-c++", "bulk", "cached-fetch", "camellia", "capieng", + "winstore", "cast", "chacha", "cmac", @@ -351,11 +390,16 @@ our @disablables = ( "comp", "crypto-mdebug", "ct", + "default-thread-pool", + "demos", + "h3demo", + "hqinterop", "deprecated", "des", "devcryptoeng", "dgram", "dh", + "docs", "dsa", "dso", "dtls", @@ -365,6 +409,7 @@ our @disablables = ( "ec_nistp_64_gcc_128", "ecdh", "ecdsa", + "ecx", "egd", "engine", "err", @@ -372,10 +417,15 @@ our @disablables = ( "filenames", "fips", "fips-securitychecks", + "fips-post", + "fips-jitter", "fuzz-afl", "fuzz-libfuzzer", "gost", + "http", "idea", + "integrity-only-ciphers", + "jitter", "ktls", "legacy", "loadereng", @@ -383,6 +433,8 @@ our @disablables = ( "md2", "md4", "mdc2", + "ml-dsa", + "ml-kem", "module", "msan", "multiblock", @@ -391,10 +443,13 @@ our @disablables = ( "ocsp", "padlockeng", "pic", + "pie", "pinshared", "poly1305", "posix-io", "psk", + "quic", + "unstable-qlog", "rc2", "rc4", "rc5", @@ -408,7 +463,9 @@ our @disablables = ( "shared", "siphash", "siv", + "slh-dsa", "sm2", + "sm2-precomp", "sm3", "sm4", "sock", @@ -419,9 +476,13 @@ our @disablables = ( "ssl-trace", "static-engine", "stdio", + "sslkeylog", "tests", + "tfo", + "thread-pool", "threads", "tls", + "tls-deprecated-ec", "trace", "ts", "ubsan", @@ -432,6 +493,8 @@ our @disablables = ( "whirlpool", "zlib", "zlib-dynamic", + "zstd", + "zstd-dynamic", "ssl3", "ssl3-method", "tls1", @@ -452,33 +515,46 @@ our @disablables_int = ( our %disabled = ( "afalgeng" => "option", "asan" => "default", + "brotli" => "default", + "brotli-dynamic" => "default", "buildtest-c++" => "default", "comp" => "option", "crypto-mdebug" => "default", "crypto-mdebug-backtrace" => "default", + "demos" => "default", "devcryptoeng" => "default", "dynamic-engine" => "cascade", "ec_nistp_64_gcc_128" => "default", "egd" => "default", "external-tests" => "default", + "fips-jitter" => "default", "fuzz-afl" => "default", "fuzz-libfuzzer" => "default", + "h3demo" => "default", + "hqinterop" => "default", + "jitter" => "default", "ktls" => "default", "loadereng" => "cascade", "md2" => "default", "msan" => "default", + "pie" => "default", "rc5" => "default", "sctp" => "default", "shared" => "option", "ssl3" => "default", "ssl3-method" => "default", + "sslkeylog" => "default", + "tfo" => "default", "trace" => "default", "ubsan" => "default", "unit-test" => "default", "uplink" => "no uplink_arch", "weak-ssl-ciphers" => "default", + "winstore" => "not-windows", "zlib" => "default", - "zlib-dynamic" => "default" + "zlib-dynamic" => "default", + "zstd" => "default", + "zstd-dynamic" => "default" ); our %withargs = (); our %unified_info = ( @@ -704,6 +780,11 @@ our %unified_info = ( "pod" => "1" } }, + "doc/man1/openssl-skeyutl.pod" => { + "doc/man1/openssl-skeyutl.pod.in" => { + "pod" => "1" + } + }, "doc/man1/openssl-smime.pod" => { "doc/man1/openssl-smime.pod.in" => { "pod" => "1" @@ -761,6 +842,21 @@ our %unified_info = ( } }, "generate" => { + "exporters/OpenSSLConfig.cmake" => { + "exporter" => "cmake" + }, + "exporters/OpenSSLConfigVersion.cmake" => { + "exporter" => "cmake" + }, + "exporters/libcrypto.pc" => { + "exporter" => "pkg-config" + }, + "exporters/libssl.pc" => { + "exporter" => "pkg-config" + }, + "exporters/openssl.pc" => { + "exporter" => "pkg-config" + }, "include/openssl/configuration.h" => { "skip" => "1" } @@ -781,6 +877,9 @@ our %unified_info = ( "providers/liblegacy.a" => { "noinst" => "1" }, + "providers/libtemplate.a" => { + "noinst" => "1" + }, "test/libtestutil.a" => { "has_main" => "1", "noinst" => "1" @@ -798,6 +897,9 @@ our %unified_info = ( } }, "programs" => { + "fuzz/acert-test" => { + "noinst" => "1" + }, "fuzz/asn1-test" => { "noinst" => "1" }, @@ -828,9 +930,60 @@ our %unified_info = ( "fuzz/ct-test" => { "noinst" => "1" }, + "fuzz/decoder-test" => { + "noinst" => "1" + }, + "fuzz/dtlsclient-test" => { + "noinst" => "1" + }, + "fuzz/dtlsserver-test" => { + "noinst" => "1" + }, + "fuzz/hashtable-test" => { + "noinst" => "1" + }, + "fuzz/ml-dsa-test" => { + "noinst" => "1" + }, + "fuzz/ml-kem-test" => { + "noinst" => "1" + }, + "fuzz/pem-test" => { + "noinst" => "1" + }, + "fuzz/provider-test" => { + "noinst" => "1" + }, + "fuzz/punycode-test" => { + "noinst" => "1" + }, + "fuzz/quic-client-test" => { + "noinst" => "1" + }, + "fuzz/quic-lcidm-test" => { + "noinst" => "1" + }, + "fuzz/quic-rcidm-test" => { + "noinst" => "1" + }, + "fuzz/quic-server-test" => { + "noinst" => "1" + }, + "fuzz/quic-srtm-test" => { + "noinst" => "1" + }, "fuzz/server-test" => { "noinst" => "1" }, + "fuzz/slh-dsa-test" => { + "noinst" => "1" + }, + "fuzz/smime-test" => { + "noinst" => "1" + }, + "fuzz/v3name-test" => { + "noinst" => "1" + }, "fuzz/x509-test" => { "noinst" => "1" }, @@ -882,18 +1035,30 @@ our %unified_info = ( "test/bftest" => { "noinst" => "1" }, + "test/bio_addr_test" => { + "noinst" => "1" + }, + "test/bio_base64_test" => { + "noinst" => "1" + }, "test/bio_callback_test" => { "noinst" => "1" }, "test/bio_core_test" => { "noinst" => "1" }, + "test/bio_dgram_test" => { + "noinst" => "1" + }, "test/bio_enc_test" => { "noinst" => "1" }, "test/bio_memleak_test" => { "noinst" => "1" }, + "test/bio_meth_test" => { + "noinst" => "1" + }, "test/bio_prefix_text" => { "noinst" => "1" }, @@ -903,6 +1068,9 @@ our %unified_info = ( "test/bio_readbuffer_test" => { "noinst" => "1" }, + "test/bio_tfo_test" => { + "noinst" => "1" + }, "test/bioprinttest" => { "noinst" => "1" }, @@ -912,6 +1080,9 @@ our %unified_info = ( "test/bntest" => { "noinst" => "1" }, + "test/build_wincrypt_test" => { + "noinst" => "1" + }, "test/buildtest_c_aes" => { "noinst" => "1" }, @@ -927,6 +1098,9 @@ our %unified_info = ( "test/buildtest_c_buffer" => { "noinst" => "1" }, + "test/buildtest_c_byteorder" => { + "noinst" => "1" + }, "test/buildtest_c_camellia" => { "noinst" => "1" }, @@ -951,9 +1125,6 @@ our %unified_info = ( "test/buildtest_c_core_dispatch" => { "noinst" => "1" }, - "test/buildtest_c_core_names" => { - "noinst" => "1" - }, "test/buildtest_c_core_object" => { "noinst" => "1" }, @@ -978,6 +1149,9 @@ our %unified_info = ( "test/buildtest_c_e_os2" => { "noinst" => "1" }, + "test/buildtest_c_e_ostime" => { + "noinst" => "1" + }, "test/buildtest_c_ebcdic" => { "noinst" => "1" }, @@ -1005,12 +1179,18 @@ our %unified_info = ( "test/buildtest_c_hmac" => { "noinst" => "1" }, + "test/buildtest_c_hpke" => { + "noinst" => "1" + }, "test/buildtest_c_http" => { "noinst" => "1" }, "test/buildtest_c_idea" => { "noinst" => "1" }, + "test/buildtest_c_indicator" => { + "noinst" => "1" + }, "test/buildtest_c_kdf" => { "noinst" => "1" }, @@ -1026,6 +1206,9 @@ our %unified_info = ( "test/buildtest_c_mdc2" => { "noinst" => "1" }, + "test/buildtest_c_ml_kem" => { + "noinst" => "1" + }, "test/buildtest_c_modes" => { "noinst" => "1" }, @@ -1056,6 +1239,9 @@ our %unified_info = ( "test/buildtest_c_provider" => { "noinst" => "1" }, + "test/buildtest_c_quic" => { + "noinst" => "1" + }, "test/buildtest_c_rand" => { "noinst" => "1" }, @@ -1098,6 +1284,9 @@ our %unified_info = ( "test/buildtest_c_symhacks" => { "noinst" => "1" }, + "test/buildtest_c_thread" => { + "noinst" => "1" + }, "test/buildtest_c_tls1" => { "noinst" => "1" }, @@ -1113,6 +1302,12 @@ our %unified_info = ( "test/buildtest_c_whrlpool" => { "noinst" => "1" }, + "test/byteorder_test" => { + "noinst" => "1" + }, + "test/ca_internals_test" => { + "noinst" => "1" + }, "test/casttest" => { "noinst" => "1" }, @@ -1197,6 +1392,9 @@ our %unified_info = ( "test/danetest" => { "noinst" => "1" }, + "test/decoder_propq_test" => { + "noinst" => "1" + }, "test/defltfips_test" => { "noinst" => "1" }, @@ -1269,15 +1467,24 @@ our %unified_info = ( "test/evp_pkey_ctx_new_from_name" => { "noinst" => "1" }, + "test/evp_pkey_dhkem_test" => { + "noinst" => "1" + }, "test/evp_pkey_dparams_test" => { "noinst" => "1" }, "test/evp_pkey_provided_test" => { "noinst" => "1" }, + "test/evp_skey_test" => { + "noinst" => "1" + }, "test/evp_test" => { "noinst" => "1" }, + "test/evp_xof_test" => { + "noinst" => "1" + }, "test/exdatatest" => { "noinst" => "1" }, @@ -1305,6 +1512,9 @@ our %unified_info = ( "test/hmactest" => { "noinst" => "1" }, + "test/hpke_test" => { + "noinst" => "1" + }, "test/http_test" => { "noinst" => "1" }, @@ -1314,12 +1524,18 @@ our %unified_info = ( "test/igetest" => { "noinst" => "1" }, + "test/json_test" => { + "noinst" => "1" + }, "test/keymgmt_internal_test" => { "noinst" => "1" }, "test/lhash_test" => { "noinst" => "1" }, + "test/list_test" => { + "noinst" => "1" + }, "test/localetest" => { "noinst" => "1" }, @@ -1329,9 +1545,21 @@ our %unified_info = ( "test/mdc2test" => { "noinst" => "1" }, + "test/membio_test" => { + "noinst" => "1" + }, "test/memleaktest" => { "noinst" => "1" }, + "test/ml_dsa_test" => { + "noinst" => "1" + }, + "test/ml_kem_evp_extra_test" => { + "noinst" => "1" + }, + "test/ml_kem_internal_test" => { + "noinst" => "1" + }, "test/modes_internal_test" => { "noinst" => "1" }, @@ -1350,6 +1578,9 @@ our %unified_info = ( "test/packettest" => { "noinst" => "1" }, + "test/pairwise_fail_test" => { + "noinst" => "1" + }, "test/param_build_test" => { "noinst" => "1" }, @@ -1374,6 +1605,9 @@ our %unified_info = ( "test/pemtest" => { "noinst" => "1" }, + "test/pkcs12_api_test" => { + "noinst" => "1" + }, "test/pkcs12_format_test" => { "noinst" => "1" }, @@ -1389,6 +1623,9 @@ our %unified_info = ( "test/poly1305_internal_test" => { "noinst" => "1" }, + "test/priority_queue_test" => { + "noinst" => "1" + }, "test/property_test" => { "noinst" => "1" }, @@ -1398,6 +1635,9 @@ our %unified_info = ( "test/provfetchtest" => { "noinst" => "1" }, + "test/provider_default_search_path_test" => { + "noinst" => "1" + }, "test/provider_fallback_test" => { "noinst" => "1" }, @@ -1416,6 +1656,72 @@ our %unified_info = ( "test/punycode_test" => { "noinst" => "1" }, + "test/quic_ackm_test" => { + "noinst" => "1" + }, + "test/quic_cc_test" => { + "noinst" => "1" + }, + "test/quic_cfq_test" => { + "noinst" => "1" + }, + "test/quic_client_test" => { + "noinst" => "1" + }, + "test/quic_fc_test" => { + "noinst" => "1" + }, + "test/quic_fifd_test" => { + "noinst" => "1" + }, + "test/quic_lcidm_test" => { + "noinst" => "1" + }, + "test/quic_multistream_test" => { + "noinst" => "1" + }, + "test/quic_newcid_test" => { + "noinst" => "1" + }, + "test/quic_qlog_test" => { + "noinst" => "1" + }, + "test/quic_radix_test" => { + "noinst" => "1" + }, + "test/quic_rcidm_test" => { + "noinst" => "1" + }, + "test/quic_record_test" => { + "noinst" => "1" + }, + "test/quic_srt_gen_test" => { + "noinst" => "1" + }, + "test/quic_srtm_test" => { + "noinst" => "1" + }, + "test/quic_stream_test" => { + "noinst" => "1" + }, + "test/quic_tserver_test" => { + "noinst" => "1" + }, + "test/quic_txp_test" => { + "noinst" => "1" + }, + "test/quic_txpim_test" => { + "noinst" => "1" + }, + "test/quic_wire_test" => { + "noinst" => "1" + }, + "test/quicapitest" => { + "noinst" => "1" + }, + "test/quicfaultstest" => { + "noinst" => "1" + }, "test/rand_status_test" => { "noinst" => "1" }, @@ -1431,12 +1737,15 @@ our %unified_info = ( "test/rc5test" => { "noinst" => "1" }, - "test/rdrand_sanitytest" => { + "test/rdcpu_sanitytest" => { "noinst" => "1" }, "test/recordlentest" => { "noinst" => "1" }, + "test/rpktest" => { + "noinst" => "1" + }, "test/rsa_complex" => { "noinst" => "1" }, @@ -1449,6 +1758,12 @@ our %unified_info = ( "test/rsa_test" => { "noinst" => "1" }, + "test/rsa_x931_test" => { + "noinst" => "1" + }, + "test/safe_math_test" => { + "noinst" => "1" + }, "test/sanitytest" => { "noinst" => "1" }, @@ -1464,6 +1779,9 @@ our %unified_info = ( "test/siphash_internal_test" => { "noinst" => "1" }, + "test/slh_dsa_test" => { + "noinst" => "1" + }, "test/sm2_internal_test" => { "noinst" => "1" }, @@ -1485,6 +1803,9 @@ our %unified_info = ( "test/ssl_ctx_test" => { "noinst" => "1" }, + "test/ssl_handshake_rtt_test" => { + "noinst" => "1" + }, "test/ssl_old_test" => { "noinst" => "1" }, @@ -1506,12 +1827,18 @@ our %unified_info = ( "test/stack_test" => { "noinst" => "1" }, + "test/strtoultest" => { + "noinst" => "1" + }, "test/sysdefaulttest" => { "noinst" => "1" }, "test/test_test" => { "noinst" => "1" }, + "test/threadpool_test" => { + "noinst" => "1" + }, "test/threadstest" => { "noinst" => "1" }, @@ -1521,12 +1848,18 @@ our %unified_info = ( "test/time_offset_test" => { "noinst" => "1" }, + "test/time_test" => { + "noinst" => "1" + }, "test/tls13ccstest" => { "noinst" => "1" }, "test/tls13encryptiontest" => { "noinst" => "1" }, + "test/tls13groupselection_test" => { + "noinst" => "1" + }, "test/trace_api_test" => { "noinst" => "1" }, @@ -1554,6 +1887,9 @@ our %unified_info = ( "test/wpackettest" => { "noinst" => "1" }, + "test/x509_acert_test" => { + "noinst" => "1" + }, "test/x509_check_cert_pkey_test" => { "noinst" => "1" }, @@ -1563,6 +1899,15 @@ our %unified_info = ( "test/x509_internal_test" => { "noinst" => "1" }, + "test/x509_load_cert_file_test" => { + "noinst" => "1" + }, + "test/x509_req_test" => { + "noinst" => "1" + }, + "test/x509_test" => { + "noinst" => "1" + }, "test/x509_time_test" => { "noinst" => "1" }, @@ -1626,6 +1971,7 @@ our %unified_info = ( "AES_ASM", "BSAES_ASM", "ECP_NISTZ256_ASM", + "GHASH_ASM", "KECCAK1600_ASM", "OPENSSL_CPUID_OBJ", "SHA1_ASM", @@ -1646,6 +1992,9 @@ our %unified_info = ( "SHA256_ASM", "SHA512_ASM" ], + "test/endecode_test" => [ + "STATIC_LEGACY" + ], "test/evp_extra_test" => [ "STATIC_LEGACY" ], @@ -1658,14 +2007,21 @@ our %unified_info = ( }, "depends" => { "" => [ + "OpenSSLConfigVersion.cmake", + "crypto/params_idx.c", + "exporters/OpenSSLConfigVersion.cmake", + "exporters/openssl.pc", "include/crypto/bn_conf.h", "include/crypto/dso_conf.h", + "include/internal/param_names.h", "include/openssl/asn1.h", "include/openssl/asn1t.h", "include/openssl/bio.h", "include/openssl/cmp.h", "include/openssl/cms.h", + "include/openssl/comp.h", "include/openssl/conf.h", + "include/openssl/core_names.h", "include/openssl/crmf.h", "include/openssl/crypto.h", "include/openssl/ct.h", @@ -1682,10 +2038,22 @@ our %unified_info = ( "include/openssl/ssl.h", "include/openssl/ui.h", "include/openssl/x509.h", + "include/openssl/x509_acert.h", "include/openssl/x509_vfy.h", "include/openssl/x509v3.h", + "openssl.pc", "test/provider_internal_test.cnf" ], + "OpenSSLConfig.cmake" => [ + "builddata.pm" + ], + "OpenSSLConfigVersion.cmake" => [ + "OpenSSLConfig.cmake", + "builddata.pm" + ], + "apps/ca_internals_test-bin-ca.o" => [ + "apps/progs.h" + ], "apps/lib/cmp_client_test-bin-cmp_mock_srv.o" => [ "apps/progs.h" ], @@ -1831,6 +2199,9 @@ our %unified_info = ( "apps/openssl-bin-sess_id.o" => [ "apps/progs.h" ], + "apps/openssl-bin-skeyutl.o" => [ + "apps/progs.h" + ], "apps/openssl-bin-smime.o" => [ "apps/progs.h" ], @@ -1919,6 +2290,9 @@ our %unified_info = ( "crypto/libcrypto-lib-info.o" => [ "crypto/buildinf.h" ], + "crypto/params_idx.c" => [ + "util/perl|OpenSSL/paramnames.pm" + ], "crypto/rc4/rc4-586.S" => [ "crypto/perlasm/x86asm.pl" ], @@ -2084,6 +2458,9 @@ our %unified_info = ( "doc/html/man1/openssl-sess_id.html" => [ "doc/man1/openssl-sess_id.pod" ], + "doc/html/man1/openssl-skeyutl.html" => [ + "doc/man1/openssl-skeyutl.pod" + ], "doc/html/man1/openssl-smime.html" => [ "doc/man1/openssl-smime.pod" ], @@ -2225,6 +2602,9 @@ our %unified_info = ( "doc/html/man3/BIO_get_ex_new_index.html" => [ "doc/man3/BIO_get_ex_new_index.pod" ], + "doc/html/man3/BIO_get_rpoll_descriptor.html" => [ + "doc/man3/BIO_get_rpoll_descriptor.pod" + ], "doc/html/man3/BIO_meth_new.html" => [ "doc/man3/BIO_meth_new.pod" ], @@ -2261,6 +2641,9 @@ our %unified_info = ( "doc/html/man3/BIO_s_datagram.html" => [ "doc/man3/BIO_s_datagram.pod" ], + "doc/html/man3/BIO_s_dgram_pair.html" => [ + "doc/man3/BIO_s_dgram_pair.pod" + ], "doc/html/man3/BIO_s_fd.html" => [ "doc/man3/BIO_s_fd.pod" ], @@ -2276,6 +2659,9 @@ our %unified_info = ( "doc/html/man3/BIO_s_socket.html" => [ "doc/man3/BIO_s_socket.pod" ], + "doc/html/man3/BIO_sendmmsg.html" => [ + "doc/man3/BIO_sendmmsg.pod" + ], "doc/html/man3/BIO_set_callback.html" => [ "doc/man3/BIO_set_callback.pod" ], @@ -2348,6 +2734,9 @@ our %unified_info = ( "doc/html/man3/BUF_MEM_new.html" => [ "doc/man3/BUF_MEM_new.pod" ], + "doc/html/man3/CMAC_CTX.html" => [ + "doc/man3/CMAC_CTX.pod" + ], "doc/html/man3/CMS_EncryptedData_decrypt.html" => [ "doc/man3/CMS_EncryptedData_decrypt.pod" ], @@ -2414,6 +2803,9 @@ our %unified_info = ( "doc/html/man3/CMS_verify_receipt.html" => [ "doc/man3/CMS_verify_receipt.pod" ], + "doc/html/man3/COMP_CTX_new.html" => [ + "doc/man3/COMP_CTX_new.pod" + ], "doc/html/man3/CONF_modules_free.html" => [ "doc/man3/CONF_modules_free.pod" ], @@ -2513,6 +2905,12 @@ our %unified_info = ( "doc/html/man3/DTLS_set_timer_cb.html" => [ "doc/man3/DTLS_set_timer_cb.pod" ], + "doc/html/man3/DTLSv1_get_timeout.html" => [ + "doc/man3/DTLSv1_get_timeout.pod" + ], + "doc/html/man3/DTLSv1_handle_timeout.html" => [ + "doc/man3/DTLSv1_handle_timeout.pod" + ], "doc/html/man3/DTLSv1_listen.html" => [ "doc/man3/DTLSv1_listen.pod" ], @@ -2651,6 +3049,9 @@ our %unified_info = ( "doc/html/man3/EVP_PKEY_CTX_get0_pkey.html" => [ "doc/man3/EVP_PKEY_CTX_get0_pkey.pod" ], + "doc/html/man3/EVP_PKEY_CTX_get_algor.html" => [ + "doc/man3/EVP_PKEY_CTX_get_algor.pod" + ], "doc/html/man3/EVP_PKEY_CTX_new.html" => [ "doc/man3/EVP_PKEY_CTX_new.pod" ], @@ -2768,6 +3169,12 @@ our %unified_info = ( "doc/html/man3/EVP_SIGNATURE.html" => [ "doc/man3/EVP_SIGNATURE.pod" ], + "doc/html/man3/EVP_SKEY.html" => [ + "doc/man3/EVP_SKEY.pod" + ], + "doc/html/man3/EVP_SKEYMGMT.html" => [ + "doc/man3/EVP_SKEYMGMT.pod" + ], "doc/html/man3/EVP_SealInit.html" => [ "doc/man3/EVP_SealInit.pod" ], @@ -2855,6 +3262,9 @@ our %unified_info = ( "doc/html/man3/EVP_whirlpool.html" => [ "doc/man3/EVP_whirlpool.pod" ], + "doc/html/man3/GENERAL_NAME.html" => [ + "doc/man3/GENERAL_NAME.pod" + ], "doc/html/man3/HMAC.html" => [ "doc/man3/HMAC.pod" ], @@ -2927,9 +3337,15 @@ our %unified_info = ( "doc/html/man3/OPENSSL_load_builtin_modules.html" => [ "doc/man3/OPENSSL_load_builtin_modules.pod" ], + "doc/html/man3/OPENSSL_load_u16_le.html" => [ + "doc/man3/OPENSSL_load_u16_le.pod" + ], "doc/html/man3/OPENSSL_malloc.html" => [ "doc/man3/OPENSSL_malloc.pod" ], + "doc/html/man3/OPENSSL_riscvcap.html" => [ + "doc/man3/OPENSSL_riscvcap.pod" + ], "doc/html/man3/OPENSSL_s390xcap.html" => [ "doc/man3/OPENSSL_s390xcap.pod" ], @@ -2945,12 +3361,18 @@ our %unified_info = ( "doc/html/man3/OSSL_CALLBACK.html" => [ "doc/man3/OSSL_CALLBACK.pod" ], + "doc/html/man3/OSSL_CMP_ATAV_set0.html" => [ + "doc/man3/OSSL_CMP_ATAV_set0.pod" + ], "doc/html/man3/OSSL_CMP_CTX_new.html" => [ "doc/man3/OSSL_CMP_CTX_new.pod" ], "doc/html/man3/OSSL_CMP_HDR_get0_transactionID.html" => [ "doc/man3/OSSL_CMP_HDR_get0_transactionID.pod" ], + "doc/html/man3/OSSL_CMP_ITAV_new_caCerts.html" => [ + "doc/man3/OSSL_CMP_ITAV_new_caCerts.pod" + ], "doc/html/man3/OSSL_CMP_ITAV_set0.html" => [ "doc/man3/OSSL_CMP_ITAV_set0.pod" ], @@ -3020,9 +3442,18 @@ our %unified_info = ( "doc/html/man3/OSSL_ENCODER_to_bio.html" => [ "doc/man3/OSSL_ENCODER_to_bio.pod" ], + "doc/html/man3/OSSL_ERR_STATE_save.html" => [ + "doc/man3/OSSL_ERR_STATE_save.pod" + ], "doc/html/man3/OSSL_ESS_check_signing_certs.html" => [ "doc/man3/OSSL_ESS_check_signing_certs.pod" ], + "doc/html/man3/OSSL_GENERAL_NAMES_print.html" => [ + "doc/man3/OSSL_GENERAL_NAMES_print.pod" + ], + "doc/html/man3/OSSL_HPKE_CTX_new.html" => [ + "doc/man3/OSSL_HPKE_CTX_new.pod" + ], "doc/html/man3/OSSL_HTTP_REQ_CTX.html" => [ "doc/man3/OSSL_HTTP_REQ_CTX.pod" ], @@ -3032,12 +3463,24 @@ our %unified_info = ( "doc/html/man3/OSSL_HTTP_transfer.html" => [ "doc/man3/OSSL_HTTP_transfer.pod" ], + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX.html" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX.pod" + ], + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX_print.html" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX_print.pod" + ], + "doc/html/man3/OSSL_INDICATOR_set_callback.html" => [ + "doc/man3/OSSL_INDICATOR_set_callback.pod" + ], "doc/html/man3/OSSL_ITEM.html" => [ "doc/man3/OSSL_ITEM.pod" ], "doc/html/man3/OSSL_LIB_CTX.html" => [ "doc/man3/OSSL_LIB_CTX.pod" ], + "doc/html/man3/OSSL_LIB_CTX_set_conf_diagnostics.html" => [ + "doc/man3/OSSL_LIB_CTX_set_conf_diagnostics.pod" + ], "doc/html/man3/OSSL_PARAM.html" => [ "doc/man3/OSSL_PARAM.pod" ], @@ -3053,9 +3496,15 @@ our %unified_info = ( "doc/html/man3/OSSL_PARAM_int.html" => [ "doc/man3/OSSL_PARAM_int.pod" ], + "doc/html/man3/OSSL_PARAM_print_to_bio.html" => [ + "doc/man3/OSSL_PARAM_print_to_bio.pod" + ], "doc/html/man3/OSSL_PROVIDER.html" => [ "doc/man3/OSSL_PROVIDER.pod" ], + "doc/html/man3/OSSL_QUIC_client_method.html" => [ + "doc/man3/OSSL_QUIC_client_method.pod" + ], "doc/html/man3/OSSL_SELF_TEST_new.html" => [ "doc/man3/OSSL_SELF_TEST_new.pod" ], @@ -3080,6 +3529,9 @@ our %unified_info = ( "doc/html/man3/OSSL_STORE_open.html" => [ "doc/man3/OSSL_STORE_open.pod" ], + "doc/html/man3/OSSL_sleep.html" => [ + "doc/man3/OSSL_sleep.pod" + ], "doc/html/man3/OSSL_trace_enabled.html" => [ "doc/man3/OSSL_trace_enabled.pod" ], @@ -3095,6 +3547,9 @@ our %unified_info = ( "doc/html/man3/OpenSSL_version.html" => [ "doc/man3/OpenSSL_version.pod" ], + "doc/html/man3/PBMAC1_get1_pbkdf2_param.html" => [ + "doc/man3/PBMAC1_get1_pbkdf2_param.pod" + ], "doc/html/man3/PEM_X509_INFO_read_bio_ex.html" => [ "doc/man3/PEM_X509_INFO_read_bio_ex.pod" ], @@ -3131,6 +3586,9 @@ our %unified_info = ( "doc/html/man3/PKCS12_SAFEBAG_get1_cert.html" => [ "doc/man3/PKCS12_SAFEBAG_get1_cert.pod" ], + "doc/html/man3/PKCS12_SAFEBAG_set0_attrs.html" => [ + "doc/man3/PKCS12_SAFEBAG_set0_attrs.pod" + ], "doc/html/man3/PKCS12_add1_attr_by_NID.html" => [ "doc/man3/PKCS12_add1_attr_by_NID.pod" ], @@ -3404,6 +3862,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set0_CA_list.html" => [ "doc/man3/SSL_CTX_set0_CA_list.pod" ], + "doc/html/man3/SSL_CTX_set1_cert_comp_preference.html" => [ + "doc/man3/SSL_CTX_set1_cert_comp_preference.pod" + ], "doc/html/man3/SSL_CTX_set1_curves.html" => [ "doc/man3/SSL_CTX_set1_curves.pod" ], @@ -3443,6 +3904,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_default_passwd_cb.html" => [ "doc/man3/SSL_CTX_set_default_passwd_cb.pod" ], + "doc/html/man3/SSL_CTX_set_domain_flags.html" => [ + "doc/man3/SSL_CTX_set_domain_flags.pod" + ], "doc/html/man3/SSL_CTX_set_generate_session_id.html" => [ "doc/man3/SSL_CTX_set_generate_session_id.pod" ], @@ -3464,6 +3928,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_msg_callback.html" => [ "doc/man3/SSL_CTX_set_msg_callback.pod" ], + "doc/html/man3/SSL_CTX_set_new_pending_conn_cb.html" => [ + "doc/man3/SSL_CTX_set_new_pending_conn_cb.pod" + ], "doc/html/man3/SSL_CTX_set_num_tickets.html" => [ "doc/man3/SSL_CTX_set_num_tickets.pod" ], @@ -3578,6 +4045,9 @@ our %unified_info = ( "doc/html/man3/SSL_accept.html" => [ "doc/man3/SSL_accept.pod" ], + "doc/html/man3/SSL_accept_stream.html" => [ + "doc/man3/SSL_accept_stream.pod" + ], "doc/html/man3/SSL_alert_type_string.html" => [ "doc/man3/SSL_alert_type_string.pod" ], @@ -3605,9 +4075,21 @@ our %unified_info = ( "doc/html/man3/SSL_free.html" => [ "doc/man3/SSL_free.pod" ], + "doc/html/man3/SSL_get0_connection.html" => [ + "doc/man3/SSL_get0_connection.pod" + ], + "doc/html/man3/SSL_get0_group_name.html" => [ + "doc/man3/SSL_get0_group_name.pod" + ], + "doc/html/man3/SSL_get0_peer_rpk.html" => [ + "doc/man3/SSL_get0_peer_rpk.pod" + ], "doc/html/man3/SSL_get0_peer_scts.html" => [ "doc/man3/SSL_get0_peer_scts.pod" ], + "doc/html/man3/SSL_get1_builtin_sigalgs.html" => [ + "doc/man3/SSL_get1_builtin_sigalgs.pod" + ], "doc/html/man3/SSL_get_SSL_CTX.html" => [ "doc/man3/SSL_get_SSL_CTX.pod" ], @@ -3623,6 +4105,9 @@ our %unified_info = ( "doc/html/man3/SSL_get_client_random.html" => [ "doc/man3/SSL_get_client_random.pod" ], + "doc/html/man3/SSL_get_conn_close_info.html" => [ + "doc/man3/SSL_get_conn_close_info.pod" + ], "doc/html/man3/SSL_get_current_cipher.html" => [ "doc/man3/SSL_get_current_cipher.pod" ], @@ -3632,12 +4117,18 @@ our %unified_info = ( "doc/html/man3/SSL_get_error.html" => [ "doc/man3/SSL_get_error.pod" ], + "doc/html/man3/SSL_get_event_timeout.html" => [ + "doc/man3/SSL_get_event_timeout.pod" + ], "doc/html/man3/SSL_get_extms_support.html" => [ "doc/man3/SSL_get_extms_support.pod" ], "doc/html/man3/SSL_get_fd.html" => [ "doc/man3/SSL_get_fd.pod" ], + "doc/html/man3/SSL_get_handshake_rtt.html" => [ + "doc/man3/SSL_get_handshake_rtt.pod" + ], "doc/html/man3/SSL_get_peer_cert_chain.html" => [ "doc/man3/SSL_get_peer_cert_chain.pod" ], @@ -3656,12 +4147,24 @@ our %unified_info = ( "doc/html/man3/SSL_get_rbio.html" => [ "doc/man3/SSL_get_rbio.pod" ], + "doc/html/man3/SSL_get_rpoll_descriptor.html" => [ + "doc/man3/SSL_get_rpoll_descriptor.pod" + ], "doc/html/man3/SSL_get_session.html" => [ "doc/man3/SSL_get_session.pod" ], "doc/html/man3/SSL_get_shared_sigalgs.html" => [ "doc/man3/SSL_get_shared_sigalgs.pod" ], + "doc/html/man3/SSL_get_stream_id.html" => [ + "doc/man3/SSL_get_stream_id.pod" + ], + "doc/html/man3/SSL_get_stream_read_state.html" => [ + "doc/man3/SSL_get_stream_read_state.pod" + ], + "doc/html/man3/SSL_get_value_uint.html" => [ + "doc/man3/SSL_get_value_uint.pod" + ], "doc/html/man3/SSL_get_verify_result.html" => [ "doc/man3/SSL_get_verify_result.pod" ], @@ -3671,9 +4174,15 @@ our %unified_info = ( "doc/html/man3/SSL_group_to_name.html" => [ "doc/man3/SSL_group_to_name.pod" ], + "doc/html/man3/SSL_handle_events.html" => [ + "doc/man3/SSL_handle_events.pod" + ], "doc/html/man3/SSL_in_init.html" => [ "doc/man3/SSL_in_init.pod" ], + "doc/html/man3/SSL_inject_net_dgram.html" => [ + "doc/man3/SSL_inject_net_dgram.pod" + ], "doc/html/man3/SSL_key_update.html" => [ "doc/man3/SSL_key_update.pod" ], @@ -3686,9 +4195,21 @@ our %unified_info = ( "doc/html/man3/SSL_new.html" => [ "doc/man3/SSL_new.pod" ], + "doc/html/man3/SSL_new_domain.html" => [ + "doc/man3/SSL_new_domain.pod" + ], + "doc/html/man3/SSL_new_listener.html" => [ + "doc/man3/SSL_new_listener.pod" + ], + "doc/html/man3/SSL_new_stream.html" => [ + "doc/man3/SSL_new_stream.pod" + ], "doc/html/man3/SSL_pending.html" => [ "doc/man3/SSL_pending.pod" ], + "doc/html/man3/SSL_poll.html" => [ + "doc/man3/SSL_poll.pod" + ], "doc/html/man3/SSL_read.html" => [ "doc/man3/SSL_read.pod" ], @@ -3704,24 +4225,45 @@ our %unified_info = ( "doc/html/man3/SSL_set1_host.html" => [ "doc/man3/SSL_set1_host.pod" ], + "doc/html/man3/SSL_set1_initial_peer_addr.html" => [ + "doc/man3/SSL_set1_initial_peer_addr.pod" + ], + "doc/html/man3/SSL_set1_server_cert_type.html" => [ + "doc/man3/SSL_set1_server_cert_type.pod" + ], "doc/html/man3/SSL_set_async_callback.html" => [ "doc/man3/SSL_set_async_callback.pod" ], "doc/html/man3/SSL_set_bio.html" => [ "doc/man3/SSL_set_bio.pod" ], + "doc/html/man3/SSL_set_blocking_mode.html" => [ + "doc/man3/SSL_set_blocking_mode.pod" + ], "doc/html/man3/SSL_set_connect_state.html" => [ "doc/man3/SSL_set_connect_state.pod" ], + "doc/html/man3/SSL_set_default_stream_mode.html" => [ + "doc/man3/SSL_set_default_stream_mode.pod" + ], "doc/html/man3/SSL_set_fd.html" => [ "doc/man3/SSL_set_fd.pod" ], + "doc/html/man3/SSL_set_incoming_stream_policy.html" => [ + "doc/man3/SSL_set_incoming_stream_policy.pod" + ], + "doc/html/man3/SSL_set_quic_tls_cbs.html" => [ + "doc/man3/SSL_set_quic_tls_cbs.pod" + ], "doc/html/man3/SSL_set_retry_verify.html" => [ "doc/man3/SSL_set_retry_verify.pod" ], "doc/html/man3/SSL_set_session.html" => [ "doc/man3/SSL_set_session.pod" ], + "doc/html/man3/SSL_set_session_secret_cb.html" => [ + "doc/man3/SSL_set_session_secret_cb.pod" + ], "doc/html/man3/SSL_set_shutdown.html" => [ "doc/man3/SSL_set_shutdown.pod" ], @@ -3734,6 +4276,12 @@ our %unified_info = ( "doc/html/man3/SSL_state_string.html" => [ "doc/man3/SSL_state_string.pod" ], + "doc/html/man3/SSL_stream_conclude.html" => [ + "doc/man3/SSL_stream_conclude.pod" + ], + "doc/html/man3/SSL_stream_reset.html" => [ + "doc/man3/SSL_stream_reset.pod" + ], "doc/html/man3/SSL_want.html" => [ "doc/man3/SSL_want.pod" ], @@ -3743,8 +4291,8 @@ our %unified_info = ( "doc/html/man3/TS_RESP_CTX_new.html" => [ "doc/man3/TS_RESP_CTX_new.pod" ], - "doc/html/man3/TS_VERIFY_CTX_set_certs.html" => [ - "doc/man3/TS_VERIFY_CTX_set_certs.pod" + "doc/html/man3/TS_VERIFY_CTX.html" => [ + "doc/man3/TS_VERIFY_CTX.pod" ], "doc/html/man3/UI_STRING.html" => [ "doc/man3/UI_STRING.pod" @@ -3764,6 +4312,21 @@ our %unified_info = ( "doc/html/man3/X509V3_set_ctx.html" => [ "doc/man3/X509V3_set_ctx.pod" ], + "doc/html/man3/X509_ACERT_add1_attr.html" => [ + "doc/man3/X509_ACERT_add1_attr.pod" + ], + "doc/html/man3/X509_ACERT_add_attr_nconf.html" => [ + "doc/man3/X509_ACERT_add_attr_nconf.pod" + ], + "doc/html/man3/X509_ACERT_get0_holder_baseCertId.html" => [ + "doc/man3/X509_ACERT_get0_holder_baseCertId.pod" + ], + "doc/html/man3/X509_ACERT_get_attr.html" => [ + "doc/man3/X509_ACERT_get_attr.pod" + ], + "doc/html/man3/X509_ACERT_print_ex.html" => [ + "doc/man3/X509_ACERT_print_ex.pod" + ], "doc/html/man3/X509_ALGOR_dup.html" => [ "doc/man3/X509_ALGOR_dup.pod" ], @@ -3812,6 +4375,9 @@ our %unified_info = ( "doc/html/man3/X509_SIG_get0.html" => [ "doc/man3/X509_SIG_get0.pod" ], + "doc/html/man3/X509_STORE_CTX_get_by_subject.html" => [ + "doc/man3/X509_STORE_CTX_get_by_subject.pod" + ], "doc/html/man3/X509_STORE_CTX_get_error.html" => [ "doc/man3/X509_STORE_CTX_get_error.pod" ], @@ -3878,6 +4444,9 @@ our %unified_info = ( "doc/html/man3/X509_get0_uids.html" => [ "doc/man3/X509_get0_uids.pod" ], + "doc/html/man3/X509_get_default_cert_file.html" => [ + "doc/man3/X509_get_default_cert_file.pod" + ], "doc/html/man3/X509_get_extension_flags.html" => [ "doc/man3/X509_get_extension_flags.pod" ], @@ -4001,9 +4570,15 @@ our %unified_info = ( "doc/html/man7/EVP_CIPHER-SM4.html" => [ "doc/man7/EVP_CIPHER-SM4.pod" ], + "doc/html/man7/EVP_KDF-ARGON2.html" => [ + "doc/man7/EVP_KDF-ARGON2.pod" + ], "doc/html/man7/EVP_KDF-HKDF.html" => [ "doc/man7/EVP_KDF-HKDF.pod" ], + "doc/html/man7/EVP_KDF-HMAC-DRBG.html" => [ + "doc/man7/EVP_KDF-HMAC-DRBG.pod" + ], "doc/html/man7/EVP_KDF-KB.html" => [ "doc/man7/EVP_KDF-KB.pod" ], @@ -4019,6 +4594,9 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-PKCS12KDF.html" => [ "doc/man7/EVP_KDF-PKCS12KDF.pod" ], + "doc/html/man7/EVP_KDF-PVKKDF.html" => [ + "doc/man7/EVP_KDF-PVKKDF.pod" + ], "doc/html/man7/EVP_KDF-SCRYPT.html" => [ "doc/man7/EVP_KDF-SCRYPT.pod" ], @@ -4043,9 +4621,18 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-X963.html" => [ "doc/man7/EVP_KDF-X963.pod" ], + "doc/html/man7/EVP_KEM-EC.html" => [ + "doc/man7/EVP_KEM-EC.pod" + ], + "doc/html/man7/EVP_KEM-ML-KEM.html" => [ + "doc/man7/EVP_KEM-ML-KEM.pod" + ], "doc/html/man7/EVP_KEM-RSA.html" => [ "doc/man7/EVP_KEM-RSA.pod" ], + "doc/html/man7/EVP_KEM-X25519.html" => [ + "doc/man7/EVP_KEM-X25519.pod" + ], "doc/html/man7/EVP_KEYEXCH-DH.html" => [ "doc/man7/EVP_KEYEXCH-DH.pod" ], @@ -4079,6 +4666,9 @@ our %unified_info = ( "doc/html/man7/EVP_MD-BLAKE2.html" => [ "doc/man7/EVP_MD-BLAKE2.pod" ], + "doc/html/man7/EVP_MD-KECCAK.html" => [ + "doc/man7/EVP_MD-KECCAK.pod" + ], "doc/html/man7/EVP_MD-MD2.html" => [ "doc/man7/EVP_MD-MD2.pod" ], @@ -4136,15 +4726,27 @@ our %unified_info = ( "doc/html/man7/EVP_PKEY-HMAC.html" => [ "doc/man7/EVP_PKEY-HMAC.pod" ], + "doc/html/man7/EVP_PKEY-ML-DSA.html" => [ + "doc/man7/EVP_PKEY-ML-DSA.pod" + ], + "doc/html/man7/EVP_PKEY-ML-KEM.html" => [ + "doc/man7/EVP_PKEY-ML-KEM.pod" + ], "doc/html/man7/EVP_PKEY-RSA.html" => [ "doc/man7/EVP_PKEY-RSA.pod" ], + "doc/html/man7/EVP_PKEY-SLH-DSA.html" => [ + "doc/man7/EVP_PKEY-SLH-DSA.pod" + ], "doc/html/man7/EVP_PKEY-SM2.html" => [ "doc/man7/EVP_PKEY-SM2.pod" ], "doc/html/man7/EVP_PKEY-X25519.html" => [ "doc/man7/EVP_PKEY-X25519.pod" ], + "doc/html/man7/EVP_RAND-CRNG-TEST.html" => [ + "doc/man7/EVP_RAND-CRNG-TEST.pod" + ], "doc/html/man7/EVP_RAND-CTR-DRBG.html" => [ "doc/man7/EVP_RAND-CTR-DRBG.pod" ], @@ -4154,6 +4756,9 @@ our %unified_info = ( "doc/html/man7/EVP_RAND-HMAC-DRBG.html" => [ "doc/man7/EVP_RAND-HMAC-DRBG.pod" ], + "doc/html/man7/EVP_RAND-JITTER.html" => [ + "doc/man7/EVP_RAND-JITTER.pod" + ], "doc/html/man7/EVP_RAND-SEED-SRC.html" => [ "doc/man7/EVP_RAND-SEED-SRC.pod" ], @@ -4175,9 +4780,15 @@ our %unified_info = ( "doc/html/man7/EVP_SIGNATURE-HMAC.html" => [ "doc/man7/EVP_SIGNATURE-HMAC.pod" ], + "doc/html/man7/EVP_SIGNATURE-ML-DSA.html" => [ + "doc/man7/EVP_SIGNATURE-ML-DSA.pod" + ], "doc/html/man7/EVP_SIGNATURE-RSA.html" => [ "doc/man7/EVP_SIGNATURE-RSA.pod" ], + "doc/html/man7/EVP_SIGNATURE-SLH-DSA.html" => [ + "doc/man7/EVP_SIGNATURE-SLH-DSA.pod" + ], "doc/html/man7/OSSL_PROVIDER-FIPS.html" => [ "doc/man7/OSSL_PROVIDER-FIPS.pod" ], @@ -4193,6 +4804,9 @@ our %unified_info = ( "doc/html/man7/OSSL_PROVIDER-null.html" => [ "doc/man7/OSSL_PROVIDER-null.pod" ], + "doc/html/man7/OSSL_STORE-winstore.html" => [ + "doc/man7/OSSL_STORE-winstore.pod" + ], "doc/html/man7/RAND.html" => [ "doc/man7/RAND.pod" ], @@ -4205,9 +4819,6 @@ our %unified_info = ( "doc/html/man7/bio.html" => [ "doc/man7/bio.pod" ], - "doc/html/man7/crypto.html" => [ - "doc/man7/crypto.pod" - ], "doc/html/man7/ct.html" => [ "doc/man7/ct.pod" ], @@ -4238,9 +4849,6 @@ our %unified_info = ( "doc/html/man7/life_cycle-rand.html" => [ "doc/man7/life_cycle-rand.pod" ], - "doc/html/man7/migration_guide.html" => [ - "doc/man7/migration_guide.pod" - ], "doc/html/man7/openssl-core.h.html" => [ "doc/man7/openssl-core.h.pod" ], @@ -4256,12 +4864,66 @@ our %unified_info = ( "doc/html/man7/openssl-glossary.html" => [ "doc/man7/openssl-glossary.pod" ], + "doc/html/man7/openssl-qlog.html" => [ + "doc/man7/openssl-qlog.pod" + ], + "doc/html/man7/openssl-quic-concurrency.html" => [ + "doc/man7/openssl-quic-concurrency.pod" + ], + "doc/html/man7/openssl-quic.html" => [ + "doc/man7/openssl-quic.pod" + ], "doc/html/man7/openssl-threads.html" => [ "doc/man7/openssl-threads.pod" ], "doc/html/man7/openssl_user_macros.html" => [ "doc/man7/openssl_user_macros.pod" ], + "doc/html/man7/ossl-guide-introduction.html" => [ + "doc/man7/ossl-guide-introduction.pod" + ], + "doc/html/man7/ossl-guide-libcrypto-introduction.html" => [ + "doc/man7/ossl-guide-libcrypto-introduction.pod" + ], + "doc/html/man7/ossl-guide-libraries-introduction.html" => [ + "doc/man7/ossl-guide-libraries-introduction.pod" + ], + "doc/html/man7/ossl-guide-libssl-introduction.html" => [ + "doc/man7/ossl-guide-libssl-introduction.pod" + ], + "doc/html/man7/ossl-guide-migration.html" => [ + "doc/man7/ossl-guide-migration.pod" + ], + "doc/html/man7/ossl-guide-quic-client-block.html" => [ + "doc/man7/ossl-guide-quic-client-block.pod" + ], + "doc/html/man7/ossl-guide-quic-client-non-block.html" => [ + "doc/man7/ossl-guide-quic-client-non-block.pod" + ], + "doc/html/man7/ossl-guide-quic-introduction.html" => [ + "doc/man7/ossl-guide-quic-introduction.pod" + ], + "doc/html/man7/ossl-guide-quic-multi-stream.html" => [ + "doc/man7/ossl-guide-quic-multi-stream.pod" + ], + "doc/html/man7/ossl-guide-quic-server-block.html" => [ + "doc/man7/ossl-guide-quic-server-block.pod" + ], + "doc/html/man7/ossl-guide-quic-server-non-block.html" => [ + "doc/man7/ossl-guide-quic-server-non-block.pod" + ], + "doc/html/man7/ossl-guide-tls-client-block.html" => [ + "doc/man7/ossl-guide-tls-client-block.pod" + ], + "doc/html/man7/ossl-guide-tls-client-non-block.html" => [ + "doc/man7/ossl-guide-tls-client-non-block.pod" + ], + "doc/html/man7/ossl-guide-tls-introduction.html" => [ + "doc/man7/ossl-guide-tls-introduction.pod" + ], + "doc/html/man7/ossl-guide-tls-server-block.html" => [ + "doc/man7/ossl-guide-tls-server-block.pod" + ], "doc/html/man7/ossl_store-file.html" => [ "doc/man7/ossl_store-file.pod" ], @@ -4316,6 +4978,9 @@ our %unified_info = ( "doc/html/man7/provider-signature.html" => [ "doc/man7/provider-signature.pod" ], + "doc/html/man7/provider-skeymgmt.html" => [ + "doc/man7/provider-skeymgmt.pod" + ], "doc/html/man7/provider-storemgmt.html" => [ "doc/man7/provider-storemgmt.pod" ], @@ -4325,9 +4990,6 @@ our %unified_info = ( "doc/html/man7/proxy-certificates.html" => [ "doc/man7/proxy-certificates.pod" ], - "doc/html/man7/ssl.html" => [ - "doc/man7/ssl.pod" - ], "doc/html/man7/x509.html" => [ "doc/man7/x509.pod" ], @@ -4475,6 +5137,9 @@ our %unified_info = ( "doc/man/man1/openssl-sess_id.1" => [ "doc/man1/openssl-sess_id.pod" ], + "doc/man/man1/openssl-skeyutl.1" => [ + "doc/man1/openssl-skeyutl.pod" + ], "doc/man/man1/openssl-smime.1" => [ "doc/man1/openssl-smime.pod" ], @@ -4616,6 +5281,9 @@ our %unified_info = ( "doc/man/man3/BIO_get_ex_new_index.3" => [ "doc/man3/BIO_get_ex_new_index.pod" ], + "doc/man/man3/BIO_get_rpoll_descriptor.3" => [ + "doc/man3/BIO_get_rpoll_descriptor.pod" + ], "doc/man/man3/BIO_meth_new.3" => [ "doc/man3/BIO_meth_new.pod" ], @@ -4652,6 +5320,9 @@ our %unified_info = ( "doc/man/man3/BIO_s_datagram.3" => [ "doc/man3/BIO_s_datagram.pod" ], + "doc/man/man3/BIO_s_dgram_pair.3" => [ + "doc/man3/BIO_s_dgram_pair.pod" + ], "doc/man/man3/BIO_s_fd.3" => [ "doc/man3/BIO_s_fd.pod" ], @@ -4667,6 +5338,9 @@ our %unified_info = ( "doc/man/man3/BIO_s_socket.3" => [ "doc/man3/BIO_s_socket.pod" ], + "doc/man/man3/BIO_sendmmsg.3" => [ + "doc/man3/BIO_sendmmsg.pod" + ], "doc/man/man3/BIO_set_callback.3" => [ "doc/man3/BIO_set_callback.pod" ], @@ -4739,6 +5413,9 @@ our %unified_info = ( "doc/man/man3/BUF_MEM_new.3" => [ "doc/man3/BUF_MEM_new.pod" ], + "doc/man/man3/CMAC_CTX.3" => [ + "doc/man3/CMAC_CTX.pod" + ], "doc/man/man3/CMS_EncryptedData_decrypt.3" => [ "doc/man3/CMS_EncryptedData_decrypt.pod" ], @@ -4805,6 +5482,9 @@ our %unified_info = ( "doc/man/man3/CMS_verify_receipt.3" => [ "doc/man3/CMS_verify_receipt.pod" ], + "doc/man/man3/COMP_CTX_new.3" => [ + "doc/man3/COMP_CTX_new.pod" + ], "doc/man/man3/CONF_modules_free.3" => [ "doc/man3/CONF_modules_free.pod" ], @@ -4904,6 +5584,12 @@ our %unified_info = ( "doc/man/man3/DTLS_set_timer_cb.3" => [ "doc/man3/DTLS_set_timer_cb.pod" ], + "doc/man/man3/DTLSv1_get_timeout.3" => [ + "doc/man3/DTLSv1_get_timeout.pod" + ], + "doc/man/man3/DTLSv1_handle_timeout.3" => [ + "doc/man3/DTLSv1_handle_timeout.pod" + ], "doc/man/man3/DTLSv1_listen.3" => [ "doc/man3/DTLSv1_listen.pod" ], @@ -5042,6 +5728,9 @@ our %unified_info = ( "doc/man/man3/EVP_PKEY_CTX_get0_pkey.3" => [ "doc/man3/EVP_PKEY_CTX_get0_pkey.pod" ], + "doc/man/man3/EVP_PKEY_CTX_get_algor.3" => [ + "doc/man3/EVP_PKEY_CTX_get_algor.pod" + ], "doc/man/man3/EVP_PKEY_CTX_new.3" => [ "doc/man3/EVP_PKEY_CTX_new.pod" ], @@ -5159,6 +5848,12 @@ our %unified_info = ( "doc/man/man3/EVP_SIGNATURE.3" => [ "doc/man3/EVP_SIGNATURE.pod" ], + "doc/man/man3/EVP_SKEY.3" => [ + "doc/man3/EVP_SKEY.pod" + ], + "doc/man/man3/EVP_SKEYMGMT.3" => [ + "doc/man3/EVP_SKEYMGMT.pod" + ], "doc/man/man3/EVP_SealInit.3" => [ "doc/man3/EVP_SealInit.pod" ], @@ -5246,6 +5941,9 @@ our %unified_info = ( "doc/man/man3/EVP_whirlpool.3" => [ "doc/man3/EVP_whirlpool.pod" ], + "doc/man/man3/GENERAL_NAME.3" => [ + "doc/man3/GENERAL_NAME.pod" + ], "doc/man/man3/HMAC.3" => [ "doc/man3/HMAC.pod" ], @@ -5318,9 +6016,15 @@ our %unified_info = ( "doc/man/man3/OPENSSL_load_builtin_modules.3" => [ "doc/man3/OPENSSL_load_builtin_modules.pod" ], + "doc/man/man3/OPENSSL_load_u16_le.3" => [ + "doc/man3/OPENSSL_load_u16_le.pod" + ], "doc/man/man3/OPENSSL_malloc.3" => [ "doc/man3/OPENSSL_malloc.pod" ], + "doc/man/man3/OPENSSL_riscvcap.3" => [ + "doc/man3/OPENSSL_riscvcap.pod" + ], "doc/man/man3/OPENSSL_s390xcap.3" => [ "doc/man3/OPENSSL_s390xcap.pod" ], @@ -5336,12 +6040,18 @@ our %unified_info = ( "doc/man/man3/OSSL_CALLBACK.3" => [ "doc/man3/OSSL_CALLBACK.pod" ], + "doc/man/man3/OSSL_CMP_ATAV_set0.3" => [ + "doc/man3/OSSL_CMP_ATAV_set0.pod" + ], "doc/man/man3/OSSL_CMP_CTX_new.3" => [ "doc/man3/OSSL_CMP_CTX_new.pod" ], "doc/man/man3/OSSL_CMP_HDR_get0_transactionID.3" => [ "doc/man3/OSSL_CMP_HDR_get0_transactionID.pod" ], + "doc/man/man3/OSSL_CMP_ITAV_new_caCerts.3" => [ + "doc/man3/OSSL_CMP_ITAV_new_caCerts.pod" + ], "doc/man/man3/OSSL_CMP_ITAV_set0.3" => [ "doc/man3/OSSL_CMP_ITAV_set0.pod" ], @@ -5411,9 +6121,18 @@ our %unified_info = ( "doc/man/man3/OSSL_ENCODER_to_bio.3" => [ "doc/man3/OSSL_ENCODER_to_bio.pod" ], + "doc/man/man3/OSSL_ERR_STATE_save.3" => [ + "doc/man3/OSSL_ERR_STATE_save.pod" + ], "doc/man/man3/OSSL_ESS_check_signing_certs.3" => [ "doc/man3/OSSL_ESS_check_signing_certs.pod" ], + "doc/man/man3/OSSL_GENERAL_NAMES_print.3" => [ + "doc/man3/OSSL_GENERAL_NAMES_print.pod" + ], + "doc/man/man3/OSSL_HPKE_CTX_new.3" => [ + "doc/man3/OSSL_HPKE_CTX_new.pod" + ], "doc/man/man3/OSSL_HTTP_REQ_CTX.3" => [ "doc/man3/OSSL_HTTP_REQ_CTX.pod" ], @@ -5423,12 +6142,24 @@ our %unified_info = ( "doc/man/man3/OSSL_HTTP_transfer.3" => [ "doc/man3/OSSL_HTTP_transfer.pod" ], + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX.3" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX.pod" + ], + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX_print.3" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX_print.pod" + ], + "doc/man/man3/OSSL_INDICATOR_set_callback.3" => [ + "doc/man3/OSSL_INDICATOR_set_callback.pod" + ], "doc/man/man3/OSSL_ITEM.3" => [ "doc/man3/OSSL_ITEM.pod" ], "doc/man/man3/OSSL_LIB_CTX.3" => [ "doc/man3/OSSL_LIB_CTX.pod" ], + "doc/man/man3/OSSL_LIB_CTX_set_conf_diagnostics.3" => [ + "doc/man3/OSSL_LIB_CTX_set_conf_diagnostics.pod" + ], "doc/man/man3/OSSL_PARAM.3" => [ "doc/man3/OSSL_PARAM.pod" ], @@ -5444,9 +6175,15 @@ our %unified_info = ( "doc/man/man3/OSSL_PARAM_int.3" => [ "doc/man3/OSSL_PARAM_int.pod" ], + "doc/man/man3/OSSL_PARAM_print_to_bio.3" => [ + "doc/man3/OSSL_PARAM_print_to_bio.pod" + ], "doc/man/man3/OSSL_PROVIDER.3" => [ "doc/man3/OSSL_PROVIDER.pod" ], + "doc/man/man3/OSSL_QUIC_client_method.3" => [ + "doc/man3/OSSL_QUIC_client_method.pod" + ], "doc/man/man3/OSSL_SELF_TEST_new.3" => [ "doc/man3/OSSL_SELF_TEST_new.pod" ], @@ -5471,6 +6208,9 @@ our %unified_info = ( "doc/man/man3/OSSL_STORE_open.3" => [ "doc/man3/OSSL_STORE_open.pod" ], + "doc/man/man3/OSSL_sleep.3" => [ + "doc/man3/OSSL_sleep.pod" + ], "doc/man/man3/OSSL_trace_enabled.3" => [ "doc/man3/OSSL_trace_enabled.pod" ], @@ -5486,6 +6226,9 @@ our %unified_info = ( "doc/man/man3/OpenSSL_version.3" => [ "doc/man3/OpenSSL_version.pod" ], + "doc/man/man3/PBMAC1_get1_pbkdf2_param.3" => [ + "doc/man3/PBMAC1_get1_pbkdf2_param.pod" + ], "doc/man/man3/PEM_X509_INFO_read_bio_ex.3" => [ "doc/man3/PEM_X509_INFO_read_bio_ex.pod" ], @@ -5522,6 +6265,9 @@ our %unified_info = ( "doc/man/man3/PKCS12_SAFEBAG_get1_cert.3" => [ "doc/man3/PKCS12_SAFEBAG_get1_cert.pod" ], + "doc/man/man3/PKCS12_SAFEBAG_set0_attrs.3" => [ + "doc/man3/PKCS12_SAFEBAG_set0_attrs.pod" + ], "doc/man/man3/PKCS12_add1_attr_by_NID.3" => [ "doc/man3/PKCS12_add1_attr_by_NID.pod" ], @@ -5795,6 +6541,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set0_CA_list.3" => [ "doc/man3/SSL_CTX_set0_CA_list.pod" ], + "doc/man/man3/SSL_CTX_set1_cert_comp_preference.3" => [ + "doc/man3/SSL_CTX_set1_cert_comp_preference.pod" + ], "doc/man/man3/SSL_CTX_set1_curves.3" => [ "doc/man3/SSL_CTX_set1_curves.pod" ], @@ -5834,6 +6583,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_default_passwd_cb.3" => [ "doc/man3/SSL_CTX_set_default_passwd_cb.pod" ], + "doc/man/man3/SSL_CTX_set_domain_flags.3" => [ + "doc/man3/SSL_CTX_set_domain_flags.pod" + ], "doc/man/man3/SSL_CTX_set_generate_session_id.3" => [ "doc/man3/SSL_CTX_set_generate_session_id.pod" ], @@ -5855,6 +6607,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_msg_callback.3" => [ "doc/man3/SSL_CTX_set_msg_callback.pod" ], + "doc/man/man3/SSL_CTX_set_new_pending_conn_cb.3" => [ + "doc/man3/SSL_CTX_set_new_pending_conn_cb.pod" + ], "doc/man/man3/SSL_CTX_set_num_tickets.3" => [ "doc/man3/SSL_CTX_set_num_tickets.pod" ], @@ -5969,6 +6724,9 @@ our %unified_info = ( "doc/man/man3/SSL_accept.3" => [ "doc/man3/SSL_accept.pod" ], + "doc/man/man3/SSL_accept_stream.3" => [ + "doc/man3/SSL_accept_stream.pod" + ], "doc/man/man3/SSL_alert_type_string.3" => [ "doc/man3/SSL_alert_type_string.pod" ], @@ -5996,9 +6754,21 @@ our %unified_info = ( "doc/man/man3/SSL_free.3" => [ "doc/man3/SSL_free.pod" ], + "doc/man/man3/SSL_get0_connection.3" => [ + "doc/man3/SSL_get0_connection.pod" + ], + "doc/man/man3/SSL_get0_group_name.3" => [ + "doc/man3/SSL_get0_group_name.pod" + ], + "doc/man/man3/SSL_get0_peer_rpk.3" => [ + "doc/man3/SSL_get0_peer_rpk.pod" + ], "doc/man/man3/SSL_get0_peer_scts.3" => [ "doc/man3/SSL_get0_peer_scts.pod" ], + "doc/man/man3/SSL_get1_builtin_sigalgs.3" => [ + "doc/man3/SSL_get1_builtin_sigalgs.pod" + ], "doc/man/man3/SSL_get_SSL_CTX.3" => [ "doc/man3/SSL_get_SSL_CTX.pod" ], @@ -6014,6 +6784,9 @@ our %unified_info = ( "doc/man/man3/SSL_get_client_random.3" => [ "doc/man3/SSL_get_client_random.pod" ], + "doc/man/man3/SSL_get_conn_close_info.3" => [ + "doc/man3/SSL_get_conn_close_info.pod" + ], "doc/man/man3/SSL_get_current_cipher.3" => [ "doc/man3/SSL_get_current_cipher.pod" ], @@ -6023,12 +6796,18 @@ our %unified_info = ( "doc/man/man3/SSL_get_error.3" => [ "doc/man3/SSL_get_error.pod" ], + "doc/man/man3/SSL_get_event_timeout.3" => [ + "doc/man3/SSL_get_event_timeout.pod" + ], "doc/man/man3/SSL_get_extms_support.3" => [ "doc/man3/SSL_get_extms_support.pod" ], "doc/man/man3/SSL_get_fd.3" => [ "doc/man3/SSL_get_fd.pod" ], + "doc/man/man3/SSL_get_handshake_rtt.3" => [ + "doc/man3/SSL_get_handshake_rtt.pod" + ], "doc/man/man3/SSL_get_peer_cert_chain.3" => [ "doc/man3/SSL_get_peer_cert_chain.pod" ], @@ -6047,12 +6826,24 @@ our %unified_info = ( "doc/man/man3/SSL_get_rbio.3" => [ "doc/man3/SSL_get_rbio.pod" ], + "doc/man/man3/SSL_get_rpoll_descriptor.3" => [ + "doc/man3/SSL_get_rpoll_descriptor.pod" + ], "doc/man/man3/SSL_get_session.3" => [ "doc/man3/SSL_get_session.pod" ], "doc/man/man3/SSL_get_shared_sigalgs.3" => [ "doc/man3/SSL_get_shared_sigalgs.pod" ], + "doc/man/man3/SSL_get_stream_id.3" => [ + "doc/man3/SSL_get_stream_id.pod" + ], + "doc/man/man3/SSL_get_stream_read_state.3" => [ + "doc/man3/SSL_get_stream_read_state.pod" + ], + "doc/man/man3/SSL_get_value_uint.3" => [ + "doc/man3/SSL_get_value_uint.pod" + ], "doc/man/man3/SSL_get_verify_result.3" => [ "doc/man3/SSL_get_verify_result.pod" ], @@ -6062,9 +6853,15 @@ our %unified_info = ( "doc/man/man3/SSL_group_to_name.3" => [ "doc/man3/SSL_group_to_name.pod" ], + "doc/man/man3/SSL_handle_events.3" => [ + "doc/man3/SSL_handle_events.pod" + ], "doc/man/man3/SSL_in_init.3" => [ "doc/man3/SSL_in_init.pod" ], + "doc/man/man3/SSL_inject_net_dgram.3" => [ + "doc/man3/SSL_inject_net_dgram.pod" + ], "doc/man/man3/SSL_key_update.3" => [ "doc/man3/SSL_key_update.pod" ], @@ -6077,9 +6874,21 @@ our %unified_info = ( "doc/man/man3/SSL_new.3" => [ "doc/man3/SSL_new.pod" ], + "doc/man/man3/SSL_new_domain.3" => [ + "doc/man3/SSL_new_domain.pod" + ], + "doc/man/man3/SSL_new_listener.3" => [ + "doc/man3/SSL_new_listener.pod" + ], + "doc/man/man3/SSL_new_stream.3" => [ + "doc/man3/SSL_new_stream.pod" + ], "doc/man/man3/SSL_pending.3" => [ "doc/man3/SSL_pending.pod" ], + "doc/man/man3/SSL_poll.3" => [ + "doc/man3/SSL_poll.pod" + ], "doc/man/man3/SSL_read.3" => [ "doc/man3/SSL_read.pod" ], @@ -6095,24 +6904,45 @@ our %unified_info = ( "doc/man/man3/SSL_set1_host.3" => [ "doc/man3/SSL_set1_host.pod" ], + "doc/man/man3/SSL_set1_initial_peer_addr.3" => [ + "doc/man3/SSL_set1_initial_peer_addr.pod" + ], + "doc/man/man3/SSL_set1_server_cert_type.3" => [ + "doc/man3/SSL_set1_server_cert_type.pod" + ], "doc/man/man3/SSL_set_async_callback.3" => [ "doc/man3/SSL_set_async_callback.pod" ], "doc/man/man3/SSL_set_bio.3" => [ "doc/man3/SSL_set_bio.pod" ], + "doc/man/man3/SSL_set_blocking_mode.3" => [ + "doc/man3/SSL_set_blocking_mode.pod" + ], "doc/man/man3/SSL_set_connect_state.3" => [ "doc/man3/SSL_set_connect_state.pod" ], + "doc/man/man3/SSL_set_default_stream_mode.3" => [ + "doc/man3/SSL_set_default_stream_mode.pod" + ], "doc/man/man3/SSL_set_fd.3" => [ "doc/man3/SSL_set_fd.pod" ], + "doc/man/man3/SSL_set_incoming_stream_policy.3" => [ + "doc/man3/SSL_set_incoming_stream_policy.pod" + ], + "doc/man/man3/SSL_set_quic_tls_cbs.3" => [ + "doc/man3/SSL_set_quic_tls_cbs.pod" + ], "doc/man/man3/SSL_set_retry_verify.3" => [ "doc/man3/SSL_set_retry_verify.pod" ], "doc/man/man3/SSL_set_session.3" => [ "doc/man3/SSL_set_session.pod" ], + "doc/man/man3/SSL_set_session_secret_cb.3" => [ + "doc/man3/SSL_set_session_secret_cb.pod" + ], "doc/man/man3/SSL_set_shutdown.3" => [ "doc/man3/SSL_set_shutdown.pod" ], @@ -6125,6 +6955,12 @@ our %unified_info = ( "doc/man/man3/SSL_state_string.3" => [ "doc/man3/SSL_state_string.pod" ], + "doc/man/man3/SSL_stream_conclude.3" => [ + "doc/man3/SSL_stream_conclude.pod" + ], + "doc/man/man3/SSL_stream_reset.3" => [ + "doc/man3/SSL_stream_reset.pod" + ], "doc/man/man3/SSL_want.3" => [ "doc/man3/SSL_want.pod" ], @@ -6134,8 +6970,8 @@ our %unified_info = ( "doc/man/man3/TS_RESP_CTX_new.3" => [ "doc/man3/TS_RESP_CTX_new.pod" ], - "doc/man/man3/TS_VERIFY_CTX_set_certs.3" => [ - "doc/man3/TS_VERIFY_CTX_set_certs.pod" + "doc/man/man3/TS_VERIFY_CTX.3" => [ + "doc/man3/TS_VERIFY_CTX.pod" ], "doc/man/man3/UI_STRING.3" => [ "doc/man3/UI_STRING.pod" @@ -6155,6 +6991,21 @@ our %unified_info = ( "doc/man/man3/X509V3_set_ctx.3" => [ "doc/man3/X509V3_set_ctx.pod" ], + "doc/man/man3/X509_ACERT_add1_attr.3" => [ + "doc/man3/X509_ACERT_add1_attr.pod" + ], + "doc/man/man3/X509_ACERT_add_attr_nconf.3" => [ + "doc/man3/X509_ACERT_add_attr_nconf.pod" + ], + "doc/man/man3/X509_ACERT_get0_holder_baseCertId.3" => [ + "doc/man3/X509_ACERT_get0_holder_baseCertId.pod" + ], + "doc/man/man3/X509_ACERT_get_attr.3" => [ + "doc/man3/X509_ACERT_get_attr.pod" + ], + "doc/man/man3/X509_ACERT_print_ex.3" => [ + "doc/man3/X509_ACERT_print_ex.pod" + ], "doc/man/man3/X509_ALGOR_dup.3" => [ "doc/man3/X509_ALGOR_dup.pod" ], @@ -6203,6 +7054,9 @@ our %unified_info = ( "doc/man/man3/X509_SIG_get0.3" => [ "doc/man3/X509_SIG_get0.pod" ], + "doc/man/man3/X509_STORE_CTX_get_by_subject.3" => [ + "doc/man3/X509_STORE_CTX_get_by_subject.pod" + ], "doc/man/man3/X509_STORE_CTX_get_error.3" => [ "doc/man3/X509_STORE_CTX_get_error.pod" ], @@ -6269,6 +7123,9 @@ our %unified_info = ( "doc/man/man3/X509_get0_uids.3" => [ "doc/man3/X509_get0_uids.pod" ], + "doc/man/man3/X509_get_default_cert_file.3" => [ + "doc/man3/X509_get_default_cert_file.pod" + ], "doc/man/man3/X509_get_extension_flags.3" => [ "doc/man3/X509_get_extension_flags.pod" ], @@ -6392,9 +7249,15 @@ our %unified_info = ( "doc/man/man7/EVP_CIPHER-SM4.7" => [ "doc/man7/EVP_CIPHER-SM4.pod" ], + "doc/man/man7/EVP_KDF-ARGON2.7" => [ + "doc/man7/EVP_KDF-ARGON2.pod" + ], "doc/man/man7/EVP_KDF-HKDF.7" => [ "doc/man7/EVP_KDF-HKDF.pod" ], + "doc/man/man7/EVP_KDF-HMAC-DRBG.7" => [ + "doc/man7/EVP_KDF-HMAC-DRBG.pod" + ], "doc/man/man7/EVP_KDF-KB.7" => [ "doc/man7/EVP_KDF-KB.pod" ], @@ -6410,6 +7273,9 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-PKCS12KDF.7" => [ "doc/man7/EVP_KDF-PKCS12KDF.pod" ], + "doc/man/man7/EVP_KDF-PVKKDF.7" => [ + "doc/man7/EVP_KDF-PVKKDF.pod" + ], "doc/man/man7/EVP_KDF-SCRYPT.7" => [ "doc/man7/EVP_KDF-SCRYPT.pod" ], @@ -6434,9 +7300,18 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-X963.7" => [ "doc/man7/EVP_KDF-X963.pod" ], + "doc/man/man7/EVP_KEM-EC.7" => [ + "doc/man7/EVP_KEM-EC.pod" + ], + "doc/man/man7/EVP_KEM-ML-KEM.7" => [ + "doc/man7/EVP_KEM-ML-KEM.pod" + ], "doc/man/man7/EVP_KEM-RSA.7" => [ "doc/man7/EVP_KEM-RSA.pod" ], + "doc/man/man7/EVP_KEM-X25519.7" => [ + "doc/man7/EVP_KEM-X25519.pod" + ], "doc/man/man7/EVP_KEYEXCH-DH.7" => [ "doc/man7/EVP_KEYEXCH-DH.pod" ], @@ -6470,6 +7345,9 @@ our %unified_info = ( "doc/man/man7/EVP_MD-BLAKE2.7" => [ "doc/man7/EVP_MD-BLAKE2.pod" ], + "doc/man/man7/EVP_MD-KECCAK.7" => [ + "doc/man7/EVP_MD-KECCAK.pod" + ], "doc/man/man7/EVP_MD-MD2.7" => [ "doc/man7/EVP_MD-MD2.pod" ], @@ -6527,15 +7405,27 @@ our %unified_info = ( "doc/man/man7/EVP_PKEY-HMAC.7" => [ "doc/man7/EVP_PKEY-HMAC.pod" ], + "doc/man/man7/EVP_PKEY-ML-DSA.7" => [ + "doc/man7/EVP_PKEY-ML-DSA.pod" + ], + "doc/man/man7/EVP_PKEY-ML-KEM.7" => [ + "doc/man7/EVP_PKEY-ML-KEM.pod" + ], "doc/man/man7/EVP_PKEY-RSA.7" => [ "doc/man7/EVP_PKEY-RSA.pod" ], + "doc/man/man7/EVP_PKEY-SLH-DSA.7" => [ + "doc/man7/EVP_PKEY-SLH-DSA.pod" + ], "doc/man/man7/EVP_PKEY-SM2.7" => [ "doc/man7/EVP_PKEY-SM2.pod" ], "doc/man/man7/EVP_PKEY-X25519.7" => [ "doc/man7/EVP_PKEY-X25519.pod" ], + "doc/man/man7/EVP_RAND-CRNG-TEST.7" => [ + "doc/man7/EVP_RAND-CRNG-TEST.pod" + ], "doc/man/man7/EVP_RAND-CTR-DRBG.7" => [ "doc/man7/EVP_RAND-CTR-DRBG.pod" ], @@ -6545,6 +7435,9 @@ our %unified_info = ( "doc/man/man7/EVP_RAND-HMAC-DRBG.7" => [ "doc/man7/EVP_RAND-HMAC-DRBG.pod" ], + "doc/man/man7/EVP_RAND-JITTER.7" => [ + "doc/man7/EVP_RAND-JITTER.pod" + ], "doc/man/man7/EVP_RAND-SEED-SRC.7" => [ "doc/man7/EVP_RAND-SEED-SRC.pod" ], @@ -6566,9 +7459,15 @@ our %unified_info = ( "doc/man/man7/EVP_SIGNATURE-HMAC.7" => [ "doc/man7/EVP_SIGNATURE-HMAC.pod" ], + "doc/man/man7/EVP_SIGNATURE-ML-DSA.7" => [ + "doc/man7/EVP_SIGNATURE-ML-DSA.pod" + ], "doc/man/man7/EVP_SIGNATURE-RSA.7" => [ "doc/man7/EVP_SIGNATURE-RSA.pod" ], + "doc/man/man7/EVP_SIGNATURE-SLH-DSA.7" => [ + "doc/man7/EVP_SIGNATURE-SLH-DSA.pod" + ], "doc/man/man7/OSSL_PROVIDER-FIPS.7" => [ "doc/man7/OSSL_PROVIDER-FIPS.pod" ], @@ -6584,6 +7483,9 @@ our %unified_info = ( "doc/man/man7/OSSL_PROVIDER-null.7" => [ "doc/man7/OSSL_PROVIDER-null.pod" ], + "doc/man/man7/OSSL_STORE-winstore.7" => [ + "doc/man7/OSSL_STORE-winstore.pod" + ], "doc/man/man7/RAND.7" => [ "doc/man7/RAND.pod" ], @@ -6596,9 +7498,6 @@ our %unified_info = ( "doc/man/man7/bio.7" => [ "doc/man7/bio.pod" ], - "doc/man/man7/crypto.7" => [ - "doc/man7/crypto.pod" - ], "doc/man/man7/ct.7" => [ "doc/man7/ct.pod" ], @@ -6629,9 +7528,6 @@ our %unified_info = ( "doc/man/man7/life_cycle-rand.7" => [ "doc/man7/life_cycle-rand.pod" ], - "doc/man/man7/migration_guide.7" => [ - "doc/man7/migration_guide.pod" - ], "doc/man/man7/openssl-core.h.7" => [ "doc/man7/openssl-core.h.pod" ], @@ -6647,12 +7543,66 @@ our %unified_info = ( "doc/man/man7/openssl-glossary.7" => [ "doc/man7/openssl-glossary.pod" ], + "doc/man/man7/openssl-qlog.7" => [ + "doc/man7/openssl-qlog.pod" + ], + "doc/man/man7/openssl-quic-concurrency.7" => [ + "doc/man7/openssl-quic-concurrency.pod" + ], + "doc/man/man7/openssl-quic.7" => [ + "doc/man7/openssl-quic.pod" + ], "doc/man/man7/openssl-threads.7" => [ "doc/man7/openssl-threads.pod" ], "doc/man/man7/openssl_user_macros.7" => [ "doc/man7/openssl_user_macros.pod" ], + "doc/man/man7/ossl-guide-introduction.7" => [ + "doc/man7/ossl-guide-introduction.pod" + ], + "doc/man/man7/ossl-guide-libcrypto-introduction.7" => [ + "doc/man7/ossl-guide-libcrypto-introduction.pod" + ], + "doc/man/man7/ossl-guide-libraries-introduction.7" => [ + "doc/man7/ossl-guide-libraries-introduction.pod" + ], + "doc/man/man7/ossl-guide-libssl-introduction.7" => [ + "doc/man7/ossl-guide-libssl-introduction.pod" + ], + "doc/man/man7/ossl-guide-migration.7" => [ + "doc/man7/ossl-guide-migration.pod" + ], + "doc/man/man7/ossl-guide-quic-client-block.7" => [ + "doc/man7/ossl-guide-quic-client-block.pod" + ], + "doc/man/man7/ossl-guide-quic-client-non-block.7" => [ + "doc/man7/ossl-guide-quic-client-non-block.pod" + ], + "doc/man/man7/ossl-guide-quic-introduction.7" => [ + "doc/man7/ossl-guide-quic-introduction.pod" + ], + "doc/man/man7/ossl-guide-quic-multi-stream.7" => [ + "doc/man7/ossl-guide-quic-multi-stream.pod" + ], + "doc/man/man7/ossl-guide-quic-server-block.7" => [ + "doc/man7/ossl-guide-quic-server-block.pod" + ], + "doc/man/man7/ossl-guide-quic-server-non-block.7" => [ + "doc/man7/ossl-guide-quic-server-non-block.pod" + ], + "doc/man/man7/ossl-guide-tls-client-block.7" => [ + "doc/man7/ossl-guide-tls-client-block.pod" + ], + "doc/man/man7/ossl-guide-tls-client-non-block.7" => [ + "doc/man7/ossl-guide-tls-client-non-block.pod" + ], + "doc/man/man7/ossl-guide-tls-introduction.7" => [ + "doc/man7/ossl-guide-tls-introduction.pod" + ], + "doc/man/man7/ossl-guide-tls-server-block.7" => [ + "doc/man7/ossl-guide-tls-server-block.pod" + ], "doc/man/man7/ossl_store-file.7" => [ "doc/man7/ossl_store-file.pod" ], @@ -6707,6 +7657,9 @@ our %unified_info = ( "doc/man/man7/provider-signature.7" => [ "doc/man7/provider-signature.pod" ], + "doc/man/man7/provider-skeymgmt.7" => [ + "doc/man7/provider-skeymgmt.pod" + ], "doc/man/man7/provider-storemgmt.7" => [ "doc/man7/provider-storemgmt.pod" ], @@ -6716,9 +7669,6 @@ our %unified_info = ( "doc/man/man7/proxy-certificates.7" => [ "doc/man7/proxy-certificates.pod" ], - "doc/man/man7/ssl.7" => [ - "doc/man7/ssl.pod" - ], "doc/man/man7/x509.7" => [ "doc/man7/x509.pod" ], @@ -6898,6 +7848,10 @@ our %unified_info = ( "doc/man1/openssl-sess_id.pod.in", "doc/perlvars.pm" ], + "doc/man1/openssl-skeyutl.pod" => [ + "doc/man1/openssl-skeyutl.pod.in", + "doc/perlvars.pm" + ], "doc/man1/openssl-smime.pod" => [ "doc/man1/openssl-smime.pod.in", "doc/perlvars.pm" @@ -6937,6 +7891,27 @@ our %unified_info = ( "doc/man7/openssl_user_macros.pod" => [ "doc/man7/openssl_user_macros.pod.in" ], + "exporters/OpenSSLConfig.cmake" => [ + "installdata.pm" + ], + "exporters/OpenSSLConfigVersion.cmake" => [ + "exporters/OpenSSLConfig.cmake", + "installdata.pm" + ], + "exporters/libcrypto.pc" => [ + "installdata.pm" + ], + "exporters/libssl.pc" => [ + "installdata.pm" + ], + "exporters/openssl.pc" => [ + "exporters/libcrypto.pc", + "exporters/libssl.pc", + "installdata.pm" + ], + "fuzz/acert-test" => [ + "libcrypto" + ], "fuzz/asn1-test" => [ "libcrypto", "libssl" @@ -6969,17 +7944,85 @@ our %unified_info = ( "fuzz/ct-test" => [ "libcrypto" ], + "fuzz/decoder-test" => [ + "libcrypto" + ], + "fuzz/dtlsclient-test" => [ + "libcrypto", + "libssl" + ], + "fuzz/dtlsserver-test" => [ + "libcrypto", + "libssl" + ], + "fuzz/hashtable-test" => [ + "libcrypto.a" + ], + "fuzz/ml-dsa-test" => [ + "libcrypto.a" + ], + "fuzz/ml-kem-test" => [ + "libcrypto.a" + ], + "fuzz/pem-test" => [ + "libcrypto.a" + ], + "fuzz/provider-test" => [ + "libcrypto" + ], + "fuzz/punycode-test" => [ + "libcrypto.a" + ], + "fuzz/quic-client-test" => [ + "libcrypto.a", + "libssl.a" + ], + "fuzz/quic-lcidm-test" => [ + "libcrypto.a", + "libssl.a" + ], + "fuzz/quic-rcidm-test" => [ + "libcrypto.a", + "libssl.a" + ], + "fuzz/quic-server-test" => [ + "libcrypto.a", + "libssl.a" + ], + "fuzz/quic-srtm-test" => [ + "libcrypto.a", + "libssl.a" + ], "fuzz/server-test" => [ "libcrypto", "libssl" ], + "fuzz/slh-dsa-test" => [ + "libcrypto.a" + ], + "fuzz/smime-test" => [ + "libcrypto", + "libssl" + ], + "fuzz/v3name-test" => [ + "libcrypto.a" + ], "fuzz/x509-test" => [ "libcrypto" ], + "include/internal/param_names.h" => [ + "util/perl|OpenSSL/paramnames.pm" + ], + "include/openssl/core_names.h" => [ + "util/perl|OpenSSL/paramnames.pm" + ], "libcrypto.ld" => [ "configdata.pm", "util/perl/OpenSSL/Ordinals.pm" ], + "libcrypto.pc" => [ + "builddata.pm" + ], "libssl" => [ "libcrypto" ], @@ -6987,6 +8030,14 @@ our %unified_info = ( "configdata.pm", "util/perl/OpenSSL/Ordinals.pm" ], + "libssl.pc" => [ + "builddata.pm" + ], + "openssl.pc" => [ + "builddata.pm", + "libcrypto.pc", + "libssl.pc" + ], "providers/common/der/der_digests_gen.c" => [ "providers/common/der/DIGESTS.asn1", "providers/common/der/NIST.asn1", @@ -7004,11 +8055,19 @@ our %unified_info = ( "providers/common/der/ECX.asn1", "providers/common/der/oids_to_c.pm" ], + "providers/common/der/der_ml_dsa_gen.c" => [ + "providers/common/der/ML_DSA.asn1", + "providers/common/der/oids_to_c.pm" + ], "providers/common/der/der_rsa_gen.c" => [ "providers/common/der/NIST.asn1", "providers/common/der/RSA.asn1", "providers/common/der/oids_to_c.pm" ], + "providers/common/der/der_slh_dsa_gen.c" => [ + "providers/common/der/SLH_DSA.asn1", + "providers/common/der/oids_to_c.pm" + ], "providers/common/der/der_sm2_gen.c" => [ "providers/common/der/SM2.asn1", "providers/common/der/oids_to_c.pm" @@ -7048,6 +8107,12 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ecx_key.o" => [ "providers/common/include/prov/der_ecx.h" ], + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o" => [ + "providers/common/include/prov/der_ml_dsa.h" + ], + "providers/common/der/libcommon-lib-der_ml_dsa_key.o" => [ + "providers/common/include/prov/der_ml_dsa.h" + ], "providers/common/der/libcommon-lib-der_rsa_gen.o" => [ "providers/common/include/prov/der_rsa.h" ], @@ -7055,6 +8120,12 @@ our %unified_info = ( "providers/common/include/prov/der_digests.h", "providers/common/include/prov/der_rsa.h" ], + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o" => [ + "providers/common/include/prov/der_slh_dsa.h" + ], + "providers/common/der/libcommon-lib-der_slh_dsa_key.o" => [ + "providers/common/include/prov/der_slh_dsa.h" + ], "providers/common/der/libcommon-lib-der_wrap_gen.o" => [ "providers/common/include/prov/der_wrap.h" ], @@ -7094,11 +8165,19 @@ our %unified_info = ( "providers/common/der/ECX.asn1", "providers/common/der/oids_to_c.pm" ], + "providers/common/include/prov/der_ml_dsa.h" => [ + "providers/common/der/ML_DSA.asn1", + "providers/common/der/oids_to_c.pm" + ], "providers/common/include/prov/der_rsa.h" => [ "providers/common/der/NIST.asn1", "providers/common/der/RSA.asn1", "providers/common/der/oids_to_c.pm" ], + "providers/common/include/prov/der_slh_dsa.h" => [ + "providers/common/der/SLH_DSA.asn1", + "providers/common/der/oids_to_c.pm" + ], "providers/common/include/prov/der_sm2.h" => [ "providers/common/der/SM2.asn1", "providers/common/der/oids_to_c.pm" @@ -7131,9 +8210,15 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-eddsa_sig.o" => [ "providers/common/include/prov/der_ecx.h" ], + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o" => [ + "providers/common/include/prov/der_ml_dsa.h" + ], "providers/implementations/signature/libdefault-lib-rsa_sig.o" => [ "providers/common/include/prov/der_rsa.h" ], + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o" => [ + "providers/common/include/prov/der_slh_dsa.h" + ], "providers/implementations/signature/libdefault-lib-sm2_sig.o" => [ "providers/common/include/prov/der_sm2.h" ], @@ -7146,9 +8231,15 @@ our %unified_info = ( "providers/implementations/signature/libfips-lib-eddsa_sig.o" => [ "providers/common/include/prov/der_ecx.h" ], + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o" => [ + "providers/common/include/prov/der_ml_dsa.h" + ], "providers/implementations/signature/libfips-lib-rsa_sig.o" => [ "providers/common/include/prov/der_rsa.h" ], + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o" => [ + "providers/common/include/prov/der_slh_dsa.h" + ], "providers/legacy" => [ "libcrypto", "providers/liblegacy.a" @@ -7226,6 +8317,14 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/bio_addr_test" => [ + "libcrypto", + "test/libtestutil.a" + ], + "test/bio_base64_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/bio_callback_test" => [ "libcrypto", "test/libtestutil.a" @@ -7234,6 +8333,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/bio_dgram_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/bio_enc_test" => [ "libcrypto", "test/libtestutil.a" @@ -7242,6 +8345,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/bio_meth_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/bio_prefix_text" => [ "libcrypto", "test/libtestutil.a" @@ -7254,6 +8361,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/bio_tfo_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/bioprinttest" => [ "libcrypto", "test/libtestutil.a" @@ -7266,6 +8377,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/build_wincrypt_test" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_aes" => [ "libcrypto", "libssl" @@ -7286,6 +8401,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_byteorder" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_camellia" => [ "libcrypto", "libssl" @@ -7318,10 +8437,6 @@ our %unified_info = ( "libcrypto", "libssl" ], - "test/buildtest_c_core_names" => [ - "libcrypto", - "libssl" - ], "test/buildtest_c_core_object" => [ "libcrypto", "libssl" @@ -7354,6 +8469,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_e_ostime" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_ebcdic" => [ "libcrypto", "libssl" @@ -7390,6 +8509,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_hpke" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_http" => [ "libcrypto", "libssl" @@ -7398,6 +8521,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_indicator" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_kdf" => [ "libcrypto", "libssl" @@ -7418,6 +8545,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_ml_kem" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_modes" => [ "libcrypto", "libssl" @@ -7458,6 +8589,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_quic" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_rand" => [ "libcrypto", "libssl" @@ -7514,6 +8649,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_thread" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_tls1" => [ "libcrypto", "libssl" @@ -7534,10 +8673,23 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/byteorder_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], + "test/ca_internals_test" => [ + "libssl", + "test/libtestutil.a" + ], "test/casttest" => [ "libcrypto", "test/libtestutil.a" ], + "test/cert_comp_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], "test/chacha_internal_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -7651,6 +8803,10 @@ our %unified_info = ( "libssl", "test/libtestutil.a" ], + "test/decoder_propq_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/defltfips_test" => [ "libcrypto", "test/libtestutil.a" @@ -7707,6 +8863,8 @@ our %unified_info = ( ], "test/endecode_test" => [ "libcrypto.a", + "providers/libcommon.a", + "providers/liblegacy.a", "test/libtestutil.a" ], "test/endecoder_legacy_test" => [ @@ -7750,6 +8908,10 @@ our %unified_info = ( "test/evp_pkey_ctx_new_from_name" => [ "libcrypto" ], + "test/evp_pkey_dhkem_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/evp_pkey_dparams_test" => [ "libcrypto", "test/libtestutil.a" @@ -7758,10 +8920,18 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/evp_skey_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/evp_test" => [ "libcrypto", "test/libtestutil.a" ], + "test/evp_xof_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/exdatatest" => [ "libcrypto", "test/libtestutil.a" @@ -7800,6 +8970,10 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/hpke_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/http_test" => [ "libcrypto", "test/libtestutil.a" @@ -7812,17 +8986,25 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/json_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], "test/keymgmt_internal_test" => [ "libcrypto.a", "test/libtestutil.a" ], "test/lhash_test" => [ - "libcrypto", + "libcrypto.a", "test/libtestutil.a" ], "test/libtestutil.a" => [ "libcrypto" ], + "test/list_test" => [ + "test/libtestutil.a" + ], "test/localetest" => [ "libcrypto", "test/libtestutil.a" @@ -7835,10 +9017,26 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/membio_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/memleaktest" => [ "libcrypto", "test/libtestutil.a" ], + "test/ml_dsa_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], + "test/ml_kem_evp_extra_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], + "test/ml_kem_internal_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/modes_internal_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -7863,6 +9061,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/pairwise_fail_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/param_build_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -7895,6 +9097,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/pkcs12_api_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/pkcs12_format_test" => [ "libcrypto", "test/libtestutil.a" @@ -7915,6 +9121,11 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/priority_queue_test" => [ + "libcrypto", + "libssl.a", + "test/libtestutil.a" + ], "test/property_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -7927,6 +9138,10 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/provider_default_search_path_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/provider_fallback_test" => [ "libcrypto", "test/libtestutil.a" @@ -7951,12 +9166,122 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/quic_ackm_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_cc_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_cfq_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_client_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_fc_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_fifd_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_lcidm_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_multistream_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_newcid_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_qlog_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_radix_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_rcidm_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_record_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_srt_gen_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_srtm_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_stream_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_tserver_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_txp_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_txpim_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_wire_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quicapitest" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quicfaultstest" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], "test/rand_status_test" => [ "libcrypto", "test/libtestutil.a" ], "test/rand_test" => [ - "libcrypto", + "libcrypto.a", "test/libtestutil.a" ], "test/rc2test" => [ @@ -7971,7 +9296,7 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], - "test/rdrand_sanitytest" => [ + "test/rdcpu_sanitytest" => [ "libcrypto.a", "test/libtestutil.a" ], @@ -7980,6 +9305,11 @@ our %unified_info = ( "libssl", "test/libtestutil.a" ], + "test/rpktest" => [ + "libcrypto", + "libssl", + "test/libtestutil.a" + ], "test/rsa_mp_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -7992,10 +9322,18 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], - "test/sanitytest" => [ + "test/rsa_x931_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], + "test/safe_math_test" => [ "libcrypto", "test/libtestutil.a" ], + "test/sanitytest" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/secmemtest" => [ "libcrypto", "test/libtestutil.a" @@ -8013,6 +9351,10 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/slh_dsa_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/sm2_internal_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -8042,6 +9384,11 @@ our %unified_info = ( "libssl", "test/libtestutil.a" ], + "test/ssl_handshake_rtt_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], "test/ssl_old_test" => [ "libcrypto.a", "libssl.a", @@ -8058,8 +9405,8 @@ our %unified_info = ( "test/libtestutil.a" ], "test/sslapitest" => [ - "libcrypto", - "libssl", + "libcrypto.a", + "libssl.a", "test/libtestutil.a" ], "test/sslbuffertest" => [ @@ -8076,6 +9423,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/strtoultest" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/sysdefaulttest" => [ "libcrypto", "libssl", @@ -8085,8 +9436,12 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/threadpool_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/threadstest" => [ - "libcrypto", + "libcrypto.a", "test/libtestutil.a" ], "test/threadstest_fips" => [ @@ -8097,6 +9452,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/time_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/tls13ccstest" => [ "libcrypto", "libssl", @@ -8107,6 +9466,11 @@ our %unified_info = ( "libssl.a", "test/libtestutil.a" ], + "test/tls13groupselection_test" => [ + "libcrypto", + "libssl", + "test/libtestutil.a" + ], "test/trace_api_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -8144,6 +9508,10 @@ our %unified_info = ( "libssl.a", "test/libtestutil.a" ], + "test/x509_acert_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/x509_check_cert_pkey_test" => [ "libcrypto", "test/libtestutil.a" @@ -8156,6 +9524,18 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/x509_load_cert_file_test" => [ + "libcrypto", + "test/libtestutil.a" + ], + "test/x509_req_test" => [ + "libcrypto", + "test/libtestutil.a" + ], + "test/x509_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/x509_time_test" => [ "libcrypto", "test/libtestutil.a" @@ -8170,9 +9550,13 @@ our %unified_info = ( }, "dirinfo" => { "apps" => { + "deps" => [ + "apps/ca_internals_test-bin-ca.o" + ], "products" => { "bin" => [ - "apps/openssl" + "apps/openssl", + "test/ca_internals_test" ], "script" => [ "apps/CA.pl", @@ -8183,6 +9567,14 @@ our %unified_info = ( "apps/lib" => { "deps" => [ "apps/lib/openssl-bin-cmp_mock_srv.o", + "apps/lib/ca_internals_test-bin-app_libctx.o", + "apps/lib/ca_internals_test-bin-app_provider.o", + "apps/lib/ca_internals_test-bin-app_rand.o", + "apps/lib/ca_internals_test-bin-app_x509.o", + "apps/lib/ca_internals_test-bin-apps.o", + "apps/lib/ca_internals_test-bin-apps_ui.o", + "apps/lib/ca_internals_test-bin-engine.o", + "apps/lib/ca_internals_test-bin-fmt.o", "apps/lib/cmp_client_test-bin-cmp_mock_srv.o", "apps/lib/uitest-bin-apps_ui.o", "apps/lib/libapps-lib-app_libctx.o", @@ -8191,12 +9583,14 @@ our %unified_info = ( "apps/lib/libapps-lib-app_rand.o", "apps/lib/libapps-lib-app_x509.o", "apps/lib/libapps-lib-apps.o", + "apps/lib/libapps-lib-apps_opt_printf.o", "apps/lib/libapps-lib-apps_ui.o", "apps/lib/libapps-lib-columns.o", "apps/lib/libapps-lib-engine.o", "apps/lib/libapps-lib-engine_loader.o", "apps/lib/libapps-lib-fmt.o", "apps/lib/libapps-lib-http_server.o", + "apps/lib/libapps-lib-log.o", "apps/lib/libapps-lib-names.o", "apps/lib/libapps-lib-opt.o", "apps/lib/libapps-lib-s_cb.o", @@ -8207,6 +9601,7 @@ our %unified_info = ( "products" => { "bin" => [ "apps/openssl", + "test/ca_internals_test", "test/cmp_client_test", "test/uitest" ], @@ -8218,10 +9613,14 @@ our %unified_info = ( }, "crypto" => { "deps" => [ + "crypto/asn1_time_test-bin-ctype.o", + "crypto/ca_internals_test-bin-ctype.o", + "crypto/packettest-bin-quic_vlint.o", "crypto/libcrypto-lib-armcap.o", "crypto/libcrypto-lib-armv4cpuid.o", "crypto/libcrypto-lib-asn1_dsa.o", "crypto/libcrypto-lib-bsearch.o", + "crypto/libcrypto-lib-comp_methods.o", "crypto/libcrypto-lib-context.o", "crypto/libcrypto-lib-core_algorithm.o", "crypto/libcrypto-lib-core_fetch.o", @@ -8231,10 +9630,13 @@ our %unified_info = ( "crypto/libcrypto-lib-cryptlib.o", "crypto/libcrypto-lib-ctype.o", "crypto/libcrypto-lib-cversion.o", + "crypto/libcrypto-lib-defaults.o", "crypto/libcrypto-lib-der_writer.o", + "crypto/libcrypto-lib-deterministic_nonce.o", "crypto/libcrypto-lib-ebcdic.o", "crypto/libcrypto-lib-ex_data.o", "crypto/libcrypto-lib-getenv.o", + "crypto/libcrypto-lib-indicator_core.o", "crypto/libcrypto-lib-info.o", "crypto/libcrypto-lib-init.o", "crypto/libcrypto-lib-initthread.o", @@ -8251,6 +9653,7 @@ our %unified_info = ( "crypto/libcrypto-lib-params.o", "crypto/libcrypto-lib-params_dup.o", "crypto/libcrypto-lib-params_from_text.o", + "crypto/libcrypto-lib-params_idx.o", "crypto/libcrypto-lib-passphrase.o", "crypto/libcrypto-lib-provider.o", "crypto/libcrypto-lib-provider_child.o", @@ -8258,12 +9661,16 @@ our %unified_info = ( "crypto/libcrypto-lib-provider_core.o", "crypto/libcrypto-lib-provider_predefined.o", "crypto/libcrypto-lib-punycode.o", + "crypto/libcrypto-lib-quic_vlint.o", "crypto/libcrypto-lib-self_test_core.o", + "crypto/libcrypto-lib-sleep.o", "crypto/libcrypto-lib-sparse_array.o", + "crypto/libcrypto-lib-ssl_err.o", "crypto/libcrypto-lib-threads_lib.o", "crypto/libcrypto-lib-threads_none.o", "crypto/libcrypto-lib-threads_pthread.o", "crypto/libcrypto-lib-threads_win.o", + "crypto/libcrypto-lib-time.o", "crypto/libcrypto-lib-trace.o", "crypto/libcrypto-lib-uid.o", "crypto/libfips-lib-armcap.o", @@ -8287,6 +9694,7 @@ our %unified_info = ( "crypto/libfips-lib-params.o", "crypto/libfips-lib-params_dup.o", "crypto/libfips-lib-params_from_text.o", + "crypto/libfips-lib-params_idx.o", "crypto/libfips-lib-provider_core.o", "crypto/libfips-lib-provider_predefined.o", "crypto/libfips-lib-self_test_core.o", @@ -8294,9 +9702,15 @@ our %unified_info = ( "crypto/libfips-lib-threads_lib.o", "crypto/libfips-lib-threads_none.o", "crypto/libfips-lib-threads_pthread.o", - "crypto/libfips-lib-threads_win.o" + "crypto/libfips-lib-threads_win.o", + "crypto/libfips-lib-time.o" ], "products" => { + "bin" => [ + "test/asn1_time_test", + "test/ca_internals_test", + "test/packettest" + ], "lib" => [ "libcrypto", "providers/libfips.a" @@ -8341,6 +9755,8 @@ our %unified_info = ( }, "crypto/asn1" => { "deps" => [ + "crypto/asn1/asn1_time_test-bin-a_time.o", + "crypto/asn1/ca_internals_test-bin-a_time.o", "crypto/asn1/libcrypto-lib-a_bitstr.o", "crypto/asn1/libcrypto-lib-a_d2i_fp.o", "crypto/asn1/libcrypto-lib-a_digest.o", @@ -8407,6 +9823,10 @@ our %unified_info = ( "crypto/asn1/libcrypto-lib-x_val.o" ], "products" => { + "bin" => [ + "test/asn1_time_test", + "test/ca_internals_test" + ], "lib" => [ "libcrypto" ] @@ -8472,6 +9892,7 @@ our %unified_info = ( "crypto/bio/libcrypto-lib-bss_conn.o", "crypto/bio/libcrypto-lib-bss_core.o", "crypto/bio/libcrypto-lib-bss_dgram.o", + "crypto/bio/libcrypto-lib-bss_dgram_pair.o", "crypto/bio/libcrypto-lib-bss_fd.o", "crypto/bio/libcrypto-lib-bss_file.o", "crypto/bio/libcrypto-lib-bss_log.o", @@ -8632,6 +10053,7 @@ our %unified_info = ( "crypto/cmp/libcrypto-lib-cmp_client.o", "crypto/cmp/libcrypto-lib-cmp_ctx.o", "crypto/cmp/libcrypto-lib-cmp_err.o", + "crypto/cmp/libcrypto-lib-cmp_genm.o", "crypto/cmp/libcrypto-lib-cmp_hdr.o", "crypto/cmp/libcrypto-lib-cmp_http.o", "crypto/cmp/libcrypto-lib-cmp_msg.o", @@ -9003,7 +10425,9 @@ our %unified_info = ( "crypto/err/libcrypto-lib-err_all.o", "crypto/err/libcrypto-lib-err_all_legacy.o", "crypto/err/libcrypto-lib-err_blocks.o", - "crypto/err/libcrypto-lib-err_prn.o" + "crypto/err/libcrypto-lib-err_mark.o", + "crypto/err/libcrypto-lib-err_prn.o", + "crypto/err/libcrypto-lib-err_save.o" ], "products" => { "lib" => [ @@ -9104,7 +10528,9 @@ our %unified_info = ( "crypto/evp/libcrypto-lib-pmeth_check.o", "crypto/evp/libcrypto-lib-pmeth_gn.o", "crypto/evp/libcrypto-lib-pmeth_lib.o", + "crypto/evp/libcrypto-lib-s_lib.o", "crypto/evp/libcrypto-lib-signature.o", + "crypto/evp/libcrypto-lib-skeymgmt_meth.o", "crypto/evp/libfips-lib-asymcipher.o", "crypto/evp/libfips-lib-dh_support.o", "crypto/evp/libfips-lib-digest.o", @@ -9120,14 +10546,15 @@ our %unified_info = ( "crypto/evp/libfips-lib-kem.o", "crypto/evp/libfips-lib-keymgmt_lib.o", "crypto/evp/libfips-lib-keymgmt_meth.o", - "crypto/evp/libfips-lib-m_sigver.o", "crypto/evp/libfips-lib-mac_lib.o", "crypto/evp/libfips-lib-mac_meth.o", "crypto/evp/libfips-lib-p_lib.o", "crypto/evp/libfips-lib-pmeth_check.o", "crypto/evp/libfips-lib-pmeth_gn.o", "crypto/evp/libfips-lib-pmeth_lib.o", - "crypto/evp/libfips-lib-signature.o" + "crypto/evp/libfips-lib-s_lib.o", + "crypto/evp/libfips-lib-signature.o", + "crypto/evp/libfips-lib-skeymgmt_meth.o" ], "products" => { "lib" => [ @@ -9160,6 +10587,20 @@ our %unified_info = ( ] } }, + "crypto/hashtable" => { + "deps" => [ + "crypto/hashtable/libcrypto-lib-hashfunc.o", + "crypto/hashtable/libcrypto-lib-hashtable.o", + "crypto/hashtable/libfips-lib-hashfunc.o", + "crypto/hashtable/libfips-lib-hashtable.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, "crypto/hmac" => { "deps" => [ "crypto/hmac/libcrypto-lib-hmac.o", @@ -9172,6 +10613,17 @@ our %unified_info = ( ] } }, + "crypto/hpke" => { + "deps" => [ + "crypto/hpke/libcrypto-lib-hpke.o", + "crypto/hpke/libcrypto-lib-hpke_util.o" + ], + "products" => { + "lib" => [ + "libcrypto" + ] + } + }, "crypto/http" => { "deps" => [ "crypto/http/libcrypto-lib-http_client.o", @@ -9255,6 +10707,44 @@ our %unified_info = ( ] } }, + "crypto/ml_dsa" => { + "deps" => [ + "crypto/ml_dsa/libcrypto-lib-ml_dsa_encoders.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key_compress.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_matrix.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_ntt.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_params.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sample.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sign.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_encoders.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_key.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_key_compress.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_matrix.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_ntt.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_params.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_sample.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_sign.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, + "crypto/ml_kem" => { + "deps" => [ + "crypto/ml_kem/libcrypto-lib-ml_kem.o", + "crypto/ml_kem/libfips-lib-ml_kem.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, "crypto/modes" => { "deps" => [ "crypto/modes/libcrypto-lib-cbc128.o", @@ -9270,6 +10760,7 @@ our %unified_info = ( "crypto/modes/libcrypto-lib-siv128.o", "crypto/modes/libcrypto-lib-wrap128.o", "crypto/modes/libcrypto-lib-xts128.o", + "crypto/modes/libcrypto-lib-xts128gb.o", "crypto/modes/libfips-lib-cbc128.o", "crypto/modes/libfips-lib-ccm128.o", "crypto/modes/libfips-lib-cfb128.o", @@ -9279,7 +10770,8 @@ our %unified_info = ( "crypto/modes/libfips-lib-ghashv8-armx.o", "crypto/modes/libfips-lib-ofb128.o", "crypto/modes/libfips-lib-wrap128.o", - "crypto/modes/libfips-lib-xts128.o" + "crypto/modes/libfips-lib-xts128.o", + "crypto/modes/libfips-lib-xts128gb.o" ], "products" => { "lib" => [ @@ -9423,6 +10915,7 @@ our %unified_info = ( "crypto/rand/libcrypto-lib-rand_lib.o", "crypto/rand/libcrypto-lib-rand_meth.o", "crypto/rand/libcrypto-lib-rand_pool.o", + "crypto/rand/libcrypto-lib-rand_uniform.o", "crypto/rand/libcrypto-lib-randfile.o", "crypto/rand/libfips-lib-rand_lib.o" ], @@ -9573,6 +11066,36 @@ our %unified_info = ( ] } }, + "crypto/slh_dsa" => { + "deps" => [ + "crypto/slh_dsa/libcrypto-lib-slh_adrs.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa_hash_ctx.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa_key.o", + "crypto/slh_dsa/libcrypto-lib-slh_fors.o", + "crypto/slh_dsa/libcrypto-lib-slh_hash.o", + "crypto/slh_dsa/libcrypto-lib-slh_hypertree.o", + "crypto/slh_dsa/libcrypto-lib-slh_params.o", + "crypto/slh_dsa/libcrypto-lib-slh_wots.o", + "crypto/slh_dsa/libcrypto-lib-slh_xmss.o", + "crypto/slh_dsa/libfips-lib-slh_adrs.o", + "crypto/slh_dsa/libfips-lib-slh_dsa.o", + "crypto/slh_dsa/libfips-lib-slh_dsa_hash_ctx.o", + "crypto/slh_dsa/libfips-lib-slh_dsa_key.o", + "crypto/slh_dsa/libfips-lib-slh_fors.o", + "crypto/slh_dsa/libfips-lib-slh_hash.o", + "crypto/slh_dsa/libfips-lib-slh_hypertree.o", + "crypto/slh_dsa/libfips-lib-slh_params.o", + "crypto/slh_dsa/libfips-lib-slh_wots.o", + "crypto/slh_dsa/libfips-lib-slh_xmss.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, "crypto/sm2" => { "deps" => [ "crypto/sm2/libcrypto-lib-sm2_crypt.o", @@ -9646,6 +11169,38 @@ our %unified_info = ( ] } }, + "crypto/thread" => { + "deps" => [ + "crypto/thread/libcrypto-lib-api.o", + "crypto/thread/libcrypto-lib-arch.o", + "crypto/thread/libcrypto-lib-internal.o", + "crypto/thread/libfips-lib-api.o", + "crypto/thread/libfips-lib-arch.o", + "crypto/thread/libfips-lib-internal.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, + "crypto/thread/arch" => { + "deps" => [ + "crypto/thread/arch/libcrypto-lib-thread_none.o", + "crypto/thread/arch/libcrypto-lib-thread_posix.o", + "crypto/thread/arch/libcrypto-lib-thread_win.o", + "crypto/thread/arch/libfips-lib-thread_none.o", + "crypto/thread/arch/libfips-lib-thread_posix.o", + "crypto/thread/arch/libfips-lib-thread_win.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, "crypto/ts" => { "deps" => [ "crypto/ts/libcrypto-lib-ts_asn1.o", @@ -9712,14 +11267,22 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-pcy_map.o", "crypto/x509/libcrypto-lib-pcy_node.o", "crypto/x509/libcrypto-lib-pcy_tree.o", + "crypto/x509/libcrypto-lib-t_acert.o", "crypto/x509/libcrypto-lib-t_crl.o", "crypto/x509/libcrypto-lib-t_req.o", "crypto/x509/libcrypto-lib-t_x509.o", + "crypto/x509/libcrypto-lib-v3_aaa.o", + "crypto/x509/libcrypto-lib-v3_ac_tgt.o", "crypto/x509/libcrypto-lib-v3_addr.o", "crypto/x509/libcrypto-lib-v3_admis.o", "crypto/x509/libcrypto-lib-v3_akeya.o", "crypto/x509/libcrypto-lib-v3_akid.o", "crypto/x509/libcrypto-lib-v3_asid.o", + "crypto/x509/libcrypto-lib-v3_attrdesc.o", + "crypto/x509/libcrypto-lib-v3_attrmap.o", + "crypto/x509/libcrypto-lib-v3_audit_id.o", + "crypto/x509/libcrypto-lib-v3_authattid.o", + "crypto/x509/libcrypto-lib-v3_battcons.o", "crypto/x509/libcrypto-lib-v3_bcons.o", "crypto/x509/libcrypto-lib-v3_bitst.o", "crypto/x509/libcrypto-lib-v3_conf.o", @@ -9728,12 +11291,17 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_enum.o", "crypto/x509/libcrypto-lib-v3_extku.o", "crypto/x509/libcrypto-lib-v3_genn.o", + "crypto/x509/libcrypto-lib-v3_group_ac.o", "crypto/x509/libcrypto-lib-v3_ia5.o", + "crypto/x509/libcrypto-lib-v3_ind_iss.o", "crypto/x509/libcrypto-lib-v3_info.o", "crypto/x509/libcrypto-lib-v3_int.o", + "crypto/x509/libcrypto-lib-v3_iobo.o", "crypto/x509/libcrypto-lib-v3_ist.o", "crypto/x509/libcrypto-lib-v3_lib.o", "crypto/x509/libcrypto-lib-v3_ncons.o", + "crypto/x509/libcrypto-lib-v3_no_ass.o", + "crypto/x509/libcrypto-lib-v3_no_rev_avail.o", "crypto/x509/libcrypto-lib-v3_pci.o", "crypto/x509/libcrypto-lib-v3_pcia.o", "crypto/x509/libcrypto-lib-v3_pcons.o", @@ -9741,13 +11309,20 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_pmaps.o", "crypto/x509/libcrypto-lib-v3_prn.o", "crypto/x509/libcrypto-lib-v3_purp.o", + "crypto/x509/libcrypto-lib-v3_rolespec.o", "crypto/x509/libcrypto-lib-v3_san.o", + "crypto/x509/libcrypto-lib-v3_sda.o", + "crypto/x509/libcrypto-lib-v3_single_use.o", "crypto/x509/libcrypto-lib-v3_skid.o", + "crypto/x509/libcrypto-lib-v3_soa_id.o", "crypto/x509/libcrypto-lib-v3_sxnet.o", + "crypto/x509/libcrypto-lib-v3_timespec.o", "crypto/x509/libcrypto-lib-v3_tlsf.o", + "crypto/x509/libcrypto-lib-v3_usernotice.o", "crypto/x509/libcrypto-lib-v3_utf8.o", "crypto/x509/libcrypto-lib-v3_utl.o", "crypto/x509/libcrypto-lib-v3err.o", + "crypto/x509/libcrypto-lib-x509_acert.o", "crypto/x509/libcrypto-lib-x509_att.o", "crypto/x509/libcrypto-lib-x509_cmp.o", "crypto/x509/libcrypto-lib-x509_d2.o", @@ -9765,6 +11340,7 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x509_v3.o", "crypto/x509/libcrypto-lib-x509_vfy.o", "crypto/x509/libcrypto-lib-x509_vpm.o", + "crypto/x509/libcrypto-lib-x509aset.o", "crypto/x509/libcrypto-lib-x509cset.o", "crypto/x509/libcrypto-lib-x509name.o", "crypto/x509/libcrypto-lib-x509rset.o", @@ -9774,6 +11350,7 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x_attrib.o", "crypto/x509/libcrypto-lib-x_crl.o", "crypto/x509/libcrypto-lib-x_exten.o", + "crypto/x509/libcrypto-lib-x_ietfatt.o", "crypto/x509/libcrypto-lib-x_name.o", "crypto/x509/libcrypto-lib-x_pubkey.o", "crypto/x509/libcrypto-lib-x_req.o", @@ -9800,6 +11377,7 @@ our %unified_info = ( "fuzz" => { "products" => { "bin" => [ + "fuzz/acert-test", "fuzz/asn1-test", "fuzz/asn1parse-test", "fuzz/bignum-test", @@ -9810,13 +11388,31 @@ our %unified_info = ( "fuzz/conf-test", "fuzz/crl-test", "fuzz/ct-test", + "fuzz/decoder-test", + "fuzz/dtlsclient-test", + "fuzz/dtlsserver-test", + "fuzz/hashtable-test", + "fuzz/ml-dsa-test", + "fuzz/ml-kem-test", + "fuzz/pem-test", + "fuzz/provider-test", + "fuzz/punycode-test", + "fuzz/quic-client-test", + "fuzz/quic-lcidm-test", + "fuzz/quic-rcidm-test", + "fuzz/quic-server-test", + "fuzz/quic-srtm-test", "fuzz/server-test", + "fuzz/slh-dsa-test", + "fuzz/smime-test", + "fuzz/v3name-test", "fuzz/x509-test" ] } }, "providers" => { "deps" => [ + "providers/endecode_test-bin-legacyprov.o", "providers/evp_extra_test-bin-legacyprov.o", "providers/libcrypto-lib-baseprov.o", "providers/libcrypto-lib-defltprov.o", @@ -9826,6 +11422,7 @@ our %unified_info = ( ], "products" => { "bin" => [ + "test/endecode_test", "test/evp_extra_test" ], "dso" => [ @@ -9877,8 +11474,12 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ec_sig.o", "providers/common/der/libcommon-lib-der_ecx_gen.o", "providers/common/der/libcommon-lib-der_ecx_key.o", + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o", + "providers/common/der/libcommon-lib-der_ml_dsa_key.o", "providers/common/der/libcommon-lib-der_rsa_gen.o", "providers/common/der/libcommon-lib-der_rsa_key.o", + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o", + "providers/common/der/libcommon-lib-der_slh_dsa_key.o", "providers/common/der/libcommon-lib-der_wrap_gen.o", "providers/common/der/libdefault-lib-der_rsa_sig.o", "providers/common/der/libdefault-lib-der_sm2_gen.o", @@ -9897,6 +11498,7 @@ our %unified_info = ( "providers/fips" => { "deps" => [ "providers/fips/fips-dso-fips_entry.o", + "providers/fips/libfips-lib-fipsindicator.o", "providers/fips/libfips-lib-fipsprov.o", "providers/fips/libfips-lib-self_test.o", "providers/fips/libfips-lib-self_test_kats.o" @@ -9940,6 +11542,9 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_aes_ccm_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_polyval.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_ocb.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_ocb_hw.o", @@ -9964,7 +11569,13 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_cts.o", "providers/implementations/ciphers/libdefault-lib-cipher_null.o", "providers/implementations/ciphers/libdefault-lib-cipher_sm4.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_sm4_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes_common.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes_default.o", @@ -10061,7 +11672,10 @@ our %unified_info = ( "providers/implementations/encode_decode/libdefault-lib-encode_key2blob.o", "providers/implementations/encode_decode/libdefault-lib-encode_key2ms.o", "providers/implementations/encode_decode/libdefault-lib-encode_key2text.o", - "providers/implementations/encode_decode/libdefault-lib-endecoder_common.o" + "providers/implementations/encode_decode/libdefault-lib-endecoder_common.o", + "providers/implementations/encode_decode/libdefault-lib-ml_common_codecs.o", + "providers/implementations/encode_decode/libdefault-lib-ml_dsa_codecs.o", + "providers/implementations/encode_decode/libdefault-lib-ml_kem_codecs.o" ], "products" => { "lib" => [ @@ -10089,7 +11703,9 @@ our %unified_info = ( }, "providers/implementations/kdfs" => { "deps" => [ + "providers/implementations/kdfs/libdefault-lib-argon2.o", "providers/implementations/kdfs/libdefault-lib-hkdf.o", + "providers/implementations/kdfs/libdefault-lib-hmacdrbg_kdf.o", "providers/implementations/kdfs/libdefault-lib-kbkdf.o", "providers/implementations/kdfs/libdefault-lib-krb5kdf.o", "providers/implementations/kdfs/libdefault-lib-pbkdf2.o", @@ -10108,7 +11724,8 @@ our %unified_info = ( "providers/implementations/kdfs/libfips-lib-sskdf.o", "providers/implementations/kdfs/libfips-lib-tls1_prf.o", "providers/implementations/kdfs/libfips-lib-x942kdf.o", - "providers/implementations/kdfs/liblegacy-lib-pbkdf1.o" + "providers/implementations/kdfs/liblegacy-lib-pbkdf1.o", + "providers/implementations/kdfs/liblegacy-lib-pvkkdf.o" ], "products" => { "lib" => [ @@ -10120,13 +11737,22 @@ our %unified_info = ( }, "providers/implementations/kem" => { "deps" => [ + "providers/implementations/kem/libdefault-lib-ec_kem.o", + "providers/implementations/kem/libdefault-lib-ecx_kem.o", + "providers/implementations/kem/libdefault-lib-kem_util.o", + "providers/implementations/kem/libdefault-lib-ml_kem_kem.o", + "providers/implementations/kem/libdefault-lib-mlx_kem.o", "providers/implementations/kem/libdefault-lib-rsa_kem.o", - "providers/implementations/kem/libfips-lib-rsa_kem.o" + "providers/implementations/kem/libfips-lib-ml_kem_kem.o", + "providers/implementations/kem/libfips-lib-mlx_kem.o", + "providers/implementations/kem/libfips-lib-rsa_kem.o", + "providers/implementations/kem/libtemplate-lib-template_kem.o" ], "products" => { "lib" => [ "providers/libdefault.a", - "providers/libfips.a" + "providers/libfips.a", + "providers/libtemplate.a" ] } }, @@ -10138,19 +11764,29 @@ our %unified_info = ( "providers/implementations/keymgmt/libdefault-lib-ecx_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-kdf_legacy_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-mac_legacy_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-ml_dsa_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-ml_kem_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-mlx_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-rsa_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-slh_dsa_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-dh_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-dsa_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-ec_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-ecx_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-kdf_legacy_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-mac_legacy_kmgmt.o", - "providers/implementations/keymgmt/libfips-lib-rsa_kmgmt.o" + "providers/implementations/keymgmt/libfips-lib-ml_dsa_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-ml_kem_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-mlx_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-rsa_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-slh_dsa_kmgmt.o", + "providers/implementations/keymgmt/libtemplate-lib-template_kmgmt.o" ], "products" => { "lib" => [ "providers/libdefault.a", - "providers/libfips.a" + "providers/libfips.a", + "providers/libtemplate.a" ] } }, @@ -10178,18 +11814,18 @@ our %unified_info = ( }, "providers/implementations/rands" => { "deps" => [ - "providers/implementations/rands/libdefault-lib-crngt.o", "providers/implementations/rands/libdefault-lib-drbg.o", "providers/implementations/rands/libdefault-lib-drbg_ctr.o", "providers/implementations/rands/libdefault-lib-drbg_hash.o", "providers/implementations/rands/libdefault-lib-drbg_hmac.o", "providers/implementations/rands/libdefault-lib-seed_src.o", + "providers/implementations/rands/libdefault-lib-seed_src_jitter.o", "providers/implementations/rands/libdefault-lib-test_rng.o", - "providers/implementations/rands/libfips-lib-crngt.o", "providers/implementations/rands/libfips-lib-drbg.o", "providers/implementations/rands/libfips-lib-drbg_ctr.o", "providers/implementations/rands/libfips-lib-drbg_hash.o", "providers/implementations/rands/libfips-lib-drbg_hmac.o", + "providers/implementations/rands/libfips-lib-fips_crng_test.o", "providers/implementations/rands/libfips-lib-test_rng.o" ], "products" => { @@ -10218,13 +11854,31 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-ecdsa_sig.o", "providers/implementations/signature/libdefault-lib-eddsa_sig.o", "providers/implementations/signature/libdefault-lib-mac_legacy_sig.o", + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o", "providers/implementations/signature/libdefault-lib-rsa_sig.o", + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o", "providers/implementations/signature/libdefault-lib-sm2_sig.o", "providers/implementations/signature/libfips-lib-dsa_sig.o", "providers/implementations/signature/libfips-lib-ecdsa_sig.o", "providers/implementations/signature/libfips-lib-eddsa_sig.o", "providers/implementations/signature/libfips-lib-mac_legacy_sig.o", - "providers/implementations/signature/libfips-lib-rsa_sig.o" + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o", + "providers/implementations/signature/libfips-lib-rsa_sig.o", + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o" + ], + "products" => { + "lib" => [ + "providers/libdefault.a", + "providers/libfips.a" + ] + } + }, + "providers/implementations/skeymgmt" => { + "deps" => [ + "providers/implementations/skeymgmt/libdefault-lib-aes_skmgmt.o", + "providers/implementations/skeymgmt/libdefault-lib-generic.o", + "providers/implementations/skeymgmt/libfips-lib-aes_skmgmt.o", + "providers/implementations/skeymgmt/libfips-lib-generic.o" ], "products" => { "lib" => [ @@ -10252,14 +11906,15 @@ our %unified_info = ( "ssl/libssl-lib-d1_srtp.o", "ssl/libssl-lib-methods.o", "ssl/libssl-lib-pqueue.o", + "ssl/libssl-lib-priority_queue.o", "ssl/libssl-lib-s3_enc.o", "ssl/libssl-lib-s3_lib.o", "ssl/libssl-lib-s3_msg.o", "ssl/libssl-lib-ssl_asn1.o", "ssl/libssl-lib-ssl_cert.o", + "ssl/libssl-lib-ssl_cert_comp.o", "ssl/libssl-lib-ssl_ciph.o", "ssl/libssl-lib-ssl_conf.o", - "ssl/libssl-lib-ssl_err.o", "ssl/libssl-lib-ssl_err_legacy.o", "ssl/libssl-lib-ssl_init.o", "ssl/libssl-lib-ssl_lib.o", @@ -10275,32 +11930,107 @@ our %unified_info = ( "ssl/libssl-lib-t1_trce.o", "ssl/libssl-lib-tls13_enc.o", "ssl/libssl-lib-tls_depr.o", - "ssl/libssl-lib-tls_srp.o", - "ssl/libdefault-lib-s3_cbc.o", - "ssl/libfips-lib-s3_cbc.o" + "ssl/libssl-lib-tls_srp.o" ], "products" => { "lib" => [ - "libssl", - "providers/libdefault.a", - "providers/libfips.a" + "libssl" + ] + } + }, + "ssl/quic" => { + "deps" => [ + "ssl/quic/libssl-lib-cc_newreno.o", + "ssl/quic/libssl-lib-json_enc.o", + "ssl/quic/libssl-lib-qlog.o", + "ssl/quic/libssl-lib-qlog_event_helpers.o", + "ssl/quic/libssl-lib-quic_ackm.o", + "ssl/quic/libssl-lib-quic_cfq.o", + "ssl/quic/libssl-lib-quic_channel.o", + "ssl/quic/libssl-lib-quic_demux.o", + "ssl/quic/libssl-lib-quic_engine.o", + "ssl/quic/libssl-lib-quic_fc.o", + "ssl/quic/libssl-lib-quic_fifd.o", + "ssl/quic/libssl-lib-quic_impl.o", + "ssl/quic/libssl-lib-quic_lcidm.o", + "ssl/quic/libssl-lib-quic_method.o", + "ssl/quic/libssl-lib-quic_obj.o", + "ssl/quic/libssl-lib-quic_port.o", + "ssl/quic/libssl-lib-quic_rcidm.o", + "ssl/quic/libssl-lib-quic_reactor.o", + "ssl/quic/libssl-lib-quic_reactor_wait_ctx.o", + "ssl/quic/libssl-lib-quic_record_rx.o", + "ssl/quic/libssl-lib-quic_record_shared.o", + "ssl/quic/libssl-lib-quic_record_tx.o", + "ssl/quic/libssl-lib-quic_record_util.o", + "ssl/quic/libssl-lib-quic_rstream.o", + "ssl/quic/libssl-lib-quic_rx_depack.o", + "ssl/quic/libssl-lib-quic_sf_list.o", + "ssl/quic/libssl-lib-quic_srt_gen.o", + "ssl/quic/libssl-lib-quic_srtm.o", + "ssl/quic/libssl-lib-quic_sstream.o", + "ssl/quic/libssl-lib-quic_statm.o", + "ssl/quic/libssl-lib-quic_stream_map.o", + "ssl/quic/libssl-lib-quic_thread_assist.o", + "ssl/quic/libssl-lib-quic_tls.o", + "ssl/quic/libssl-lib-quic_tls_api.o", + "ssl/quic/libssl-lib-quic_trace.o", + "ssl/quic/libssl-lib-quic_tserver.o", + "ssl/quic/libssl-lib-quic_txp.o", + "ssl/quic/libssl-lib-quic_txpim.o", + "ssl/quic/libssl-lib-quic_types.o", + "ssl/quic/libssl-lib-quic_wire.o", + "ssl/quic/libssl-lib-quic_wire_pkt.o", + "ssl/quic/libssl-lib-uint_set.o" + ], + "products" => { + "lib" => [ + "libssl" ] } }, "ssl/record" => { "deps" => [ - "ssl/record/libssl-lib-dtls1_bitmap.o", "ssl/record/libssl-lib-rec_layer_d1.o", - "ssl/record/libssl-lib-rec_layer_s3.o", - "ssl/record/libssl-lib-ssl3_buffer.o", - "ssl/record/libssl-lib-ssl3_record.o", - "ssl/record/libssl-lib-ssl3_record_tls13.o", - "ssl/record/libcommon-lib-tls_pad.o" + "ssl/record/libssl-lib-rec_layer_s3.o" + ], + "products" => { + "lib" => [ + "libssl" + ] + } + }, + "ssl/record/methods" => { + "deps" => [ + "ssl/record/methods/libssl-lib-dtls_meth.o", + "ssl/record/methods/libssl-lib-ssl3_meth.o", + "ssl/record/methods/libssl-lib-tls13_meth.o", + "ssl/record/methods/libssl-lib-tls1_meth.o", + "ssl/record/methods/libssl-lib-tls_common.o", + "ssl/record/methods/libssl-lib-tls_multib.o", + "ssl/record/methods/libssl-lib-tlsany_meth.o", + "ssl/record/methods/libcommon-lib-tls_pad.o", + "ssl/record/methods/libdefault-lib-ssl3_cbc.o", + "ssl/record/methods/libfips-lib-ssl3_cbc.o" ], "products" => { "lib" => [ "libssl", - "providers/libcommon.a" + "providers/libcommon.a", + "providers/libdefault.a", + "providers/libfips.a" + ] + } + }, + "ssl/rio" => { + "deps" => [ + "ssl/rio/libssl-lib-poll_builder.o", + "ssl/rio/libssl-lib-poll_immediate.o", + "ssl/rio/libssl-lib-rio_notifier.o" + ], + "products" => { + "lib" => [ + "libssl" ] } }, @@ -10338,9 +12068,40 @@ our %unified_info = ( "test/helpers/dtlstest-bin-ssltestlib.o", "test/helpers/endecode_test-bin-predefined_dhparams.o", "test/helpers/fatalerrtest-bin-ssltestlib.o", + "test/helpers/json_test-bin-noisydgrambio.o", + "test/helpers/json_test-bin-pktsplitbio.o", + "test/helpers/json_test-bin-quictestlib.o", + "test/helpers/json_test-bin-ssltestlib.o", + "test/helpers/pkcs12_api_test-bin-pkcs12.o", "test/helpers/pkcs12_format_test-bin-pkcs12.o", + "test/helpers/quic_multistream_test-bin-noisydgrambio.o", + "test/helpers/quic_multistream_test-bin-pktsplitbio.o", + "test/helpers/quic_multistream_test-bin-quictestlib.o", + "test/helpers/quic_multistream_test-bin-ssltestlib.o", + "test/helpers/quic_newcid_test-bin-noisydgrambio.o", + "test/helpers/quic_newcid_test-bin-pktsplitbio.o", + "test/helpers/quic_newcid_test-bin-quictestlib.o", + "test/helpers/quic_newcid_test-bin-ssltestlib.o", + "test/helpers/quic_radix_test-bin-noisydgrambio.o", + "test/helpers/quic_radix_test-bin-pktsplitbio.o", + "test/helpers/quic_radix_test-bin-quictestlib.o", + "test/helpers/quic_radix_test-bin-ssltestlib.o", + "test/helpers/quic_srt_gen_test-bin-noisydgrambio.o", + "test/helpers/quic_srt_gen_test-bin-pktsplitbio.o", + "test/helpers/quic_srt_gen_test-bin-quictestlib.o", + "test/helpers/quic_srt_gen_test-bin-ssltestlib.o", + "test/helpers/quicapitest-bin-noisydgrambio.o", + "test/helpers/quicapitest-bin-pktsplitbio.o", + "test/helpers/quicapitest-bin-quictestlib.o", + "test/helpers/quicapitest-bin-ssltestlib.o", + "test/helpers/quicfaultstest-bin-noisydgrambio.o", + "test/helpers/quicfaultstest-bin-pktsplitbio.o", + "test/helpers/quicfaultstest-bin-quictestlib.o", + "test/helpers/quicfaultstest-bin-ssltestlib.o", "test/helpers/recordlentest-bin-ssltestlib.o", + "test/helpers/rpktest-bin-ssltestlib.o", "test/helpers/servername_test-bin-ssltestlib.o", + "test/helpers/ssl_handshake_rtt_test-bin-ssltestlib.o", "test/helpers/ssl_old_test-bin-predefined_dhparams.o", "test/helpers/ssl_test-bin-handshake.o", "test/helpers/ssl_test-bin-handshake_srp.o", @@ -10349,7 +12110,8 @@ our %unified_info = ( "test/helpers/sslapitest-bin-ssltestlib.o", "test/helpers/sslbuffertest-bin-ssltestlib.o", "test/helpers/sslcorrupttest-bin-ssltestlib.o", - "test/helpers/tls13ccstest-bin-ssltestlib.o" + "test/helpers/tls13ccstest-bin-ssltestlib.o", + "test/helpers/tls13groupselection_test-bin-ssltestlib.o" ], "products" => { "bin" => [ @@ -10367,16 +12129,37 @@ our %unified_info = ( "test/dtlstest", "test/endecode_test", "test/fatalerrtest", + "test/json_test", + "test/pkcs12_api_test", "test/pkcs12_format_test", + "test/quic_multistream_test", + "test/quic_newcid_test", + "test/quic_radix_test", + "test/quic_srt_gen_test", + "test/quicapitest", + "test/quicfaultstest", "test/recordlentest", + "test/rpktest", "test/servername_test", + "test/ssl_handshake_rtt_test", "test/ssl_old_test", "test/ssl_test", "test/ssl_test_ctx_test", "test/sslapitest", "test/sslbuffertest", "test/sslcorrupttest", - "test/tls13ccstest" + "test/tls13ccstest", + "test/tls13groupselection_test" + ] + } + }, + "test/radix" => { + "deps" => [ + "test/radix/quic_radix_test-bin-quic_radix.o" + ], + "products" => { + "bin" => [ + "test/quic_radix_test" ] } }, @@ -10388,6 +12171,7 @@ our %unified_info = ( "test/testutil/libtestutil-lib-driver.o", "test/testutil/libtestutil-lib-fake_random.o", "test/testutil/libtestutil-lib-format_output.o", + "test/testutil/libtestutil-lib-helper.o", "test/testutil/libtestutil-lib-load.o", "test/testutil/libtestutil-lib-main.o", "test/testutil/libtestutil-lib-options.o", @@ -10423,6 +12207,12 @@ our %unified_info = ( } }, "generate" => { + "OpenSSLConfig.cmake" => [ + "exporters/cmake/OpenSSLConfig.cmake.in" + ], + "OpenSSLConfigVersion.cmake" => [ + "exporters/cmake/OpenSSLConfigVersion.cmake.in" + ], "apps/progs.c" => [ "apps/progs.pl", "\"-C\"", @@ -10433,6 +12223,19 @@ our %unified_info = ( "\"-H\"", "\$(APPS_OPENSSL)" ], + "builddata.pm" => [ + "util/mkinstallvars.pl", + "PREFIX=.", + "BINDIR=apps", + "APPLINKDIR=ms", + "LIBDIR=", + "INCLUDEDIR=include", + "\"INCLUDEDIR=\$(SRCDIR)/include\"", + "ENGINESDIR=engines", + "MODULESDIR=providers", + "\"VERSION=\$(VERSION)\"", + "\"LDLIBS=\$(LIB_EX_LIBS)\"" + ], "crypto/aes/aes-586.S" => [ "crypto/aes/asm/aes-586.pl" ], @@ -10454,6 +12257,24 @@ our %unified_info = ( "crypto/aes/aes-ppc.s" => [ "crypto/aes/asm/aes-ppc.pl" ], + "crypto/aes/aes-riscv32-zkn.s" => [ + "crypto/aes/asm/aes-riscv32-zkn.pl" + ], + "crypto/aes/aes-riscv64-zkn.s" => [ + "crypto/aes/asm/aes-riscv64-zkn.pl" + ], + "crypto/aes/aes-riscv64-zvbb-zvkg-zvkned.s" => [ + "crypto/aes/asm/aes-riscv64-zvbb-zvkg-zvkned.pl" + ], + "crypto/aes/aes-riscv64-zvkb-zvkned.s" => [ + "crypto/aes/asm/aes-riscv64-zvkb-zvkned.pl" + ], + "crypto/aes/aes-riscv64-zvkned.s" => [ + "crypto/aes/asm/aes-riscv64-zvkned.pl" + ], + "crypto/aes/aes-riscv64.s" => [ + "crypto/aes/asm/aes-riscv64.pl" + ], "crypto/aes/aes-s390x.S" => [ "crypto/aes/asm/aes-s390x.pl" ], @@ -10481,6 +12302,9 @@ our %unified_info = ( "crypto/aes/aesni-x86_64.s" => [ "crypto/aes/asm/aesni-x86_64.pl" ], + "crypto/aes/aesni-xts-avx512.s" => [ + "crypto/aes/asm/aesni-xts-avx512.pl" + ], "crypto/aes/aesp8-ppc.s" => [ "crypto/aes/asm/aesp8-ppc.pl" ], @@ -10493,12 +12317,18 @@ our %unified_info = ( "crypto/aes/bsaes-armv7.S" => [ "crypto/aes/asm/bsaes-armv7.pl" ], + "crypto/aes/bsaes-armv8.S" => [ + "crypto/aes/asm/bsaes-armv8.pl" + ], "crypto/aes/bsaes-x86_64.s" => [ "crypto/aes/asm/bsaes-x86_64.pl" ], "crypto/aes/vpaes-armv8.S" => [ "crypto/aes/asm/vpaes-armv8.pl" ], + "crypto/aes/vpaes-loongarch64.S" => [ + "crypto/aes/asm/vpaes-loongarch64.pl" + ], "crypto/aes/vpaes-ppc.s" => [ "crypto/aes/asm/vpaes-ppc.pl" ], @@ -10559,15 +12389,33 @@ our %unified_info = ( "crypto/bn/ppc-mont.s" => [ "crypto/bn/asm/ppc-mont.pl" ], + "crypto/bn/ppc64-mont-fixed.s" => [ + "crypto/bn/asm/ppc64-mont-fixed.pl" + ], "crypto/bn/ppc64-mont.s" => [ "crypto/bn/asm/ppc64-mont.pl" ], + "crypto/bn/rsaz-2k-avx512.s" => [ + "crypto/bn/asm/rsaz-2k-avx512.pl" + ], + "crypto/bn/rsaz-2k-avxifma.s" => [ + "crypto/bn/asm/rsaz-2k-avxifma.pl" + ], + "crypto/bn/rsaz-3k-avx512.s" => [ + "crypto/bn/asm/rsaz-3k-avx512.pl" + ], + "crypto/bn/rsaz-3k-avxifma.s" => [ + "crypto/bn/asm/rsaz-3k-avxifma.pl" + ], + "crypto/bn/rsaz-4k-avx512.s" => [ + "crypto/bn/asm/rsaz-4k-avx512.pl" + ], + "crypto/bn/rsaz-4k-avxifma.s" => [ + "crypto/bn/asm/rsaz-4k-avxifma.pl" + ], "crypto/bn/rsaz-avx2.s" => [ "crypto/bn/asm/rsaz-avx2.pl" ], - "crypto/bn/rsaz-avx512.s" => [ - "crypto/bn/asm/rsaz-avx512.pl" - ], "crypto/bn/rsaz-x86_64.s" => [ "crypto/bn/asm/rsaz-x86_64.pl" ], @@ -10629,6 +12477,9 @@ our %unified_info = ( "crypto/chacha/chacha-armv4.S" => [ "crypto/chacha/asm/chacha-armv4.pl" ], + "crypto/chacha/chacha-armv8-sve.S" => [ + "crypto/chacha/asm/chacha-armv8-sve.pl" + ], "crypto/chacha/chacha-armv8.S" => [ "crypto/chacha/asm/chacha-armv8.pl" ], @@ -10641,9 +12492,19 @@ our %unified_info = ( "crypto/chacha/chacha-ia64.s" => [ "crypto/chacha/chacha-ia64.S" ], + "crypto/chacha/chacha-loongarch64.S" => [ + "crypto/chacha/asm/chacha-loongarch64.pl" + ], "crypto/chacha/chacha-ppc.s" => [ "crypto/chacha/asm/chacha-ppc.pl" ], + "crypto/chacha/chacha-riscv64-v-zbb-zvkb.s" => [ + "crypto/chacha/asm/chacha-riscv64-v-zbb.pl", + "zvkb" + ], + "crypto/chacha/chacha-riscv64-v-zbb.s" => [ + "crypto/chacha/asm/chacha-riscv64-v-zbb.pl" + ], "crypto/chacha/chacha-s390x.S" => [ "crypto/chacha/asm/chacha-s390x.pl" ], @@ -10653,6 +12514,9 @@ our %unified_info = ( "crypto/chacha/chacha-x86_64.s" => [ "crypto/chacha/asm/chacha-x86_64.pl" ], + "crypto/chacha/chachap10-ppc.s" => [ + "crypto/chacha/asm/chachap10-ppc.pl" + ], "crypto/des/crypt586.S" => [ "crypto/des/asm/crypt586.pl" ], @@ -10665,6 +12529,9 @@ our %unified_info = ( "crypto/des/dest4-sparcv9.S" => [ "crypto/des/asm/dest4-sparcv9.pl" ], + "crypto/ec/ecp_nistp384-ppc64.s" => [ + "crypto/ec/asm/ecp_nistp384-ppc64.pl" + ], "crypto/ec/ecp_nistp521-ppc64.s" => [ "crypto/ec/asm/ecp_nistp521-ppc64.pl" ], @@ -10689,6 +12556,9 @@ our %unified_info = ( "crypto/ec/ecp_nistz256-x86_64.s" => [ "crypto/ec/asm/ecp_nistz256-x86_64.pl" ], + "crypto/ec/ecp_sm2p256-armv8.S" => [ + "crypto/ec/asm/ecp_sm2p256-armv8.pl" + ], "crypto/ec/x25519-ppc64.s" => [ "crypto/ec/asm/x25519-ppc64.pl" ], @@ -10698,18 +12568,39 @@ our %unified_info = ( "crypto/ia64cpuid.s" => [ "crypto/ia64cpuid.S" ], + "crypto/loongarch64cpuid.s" => [ + "crypto/loongarch64cpuid.pl" + ], "crypto/md5/md5-586.S" => [ "crypto/md5/asm/md5-586.pl" ], + "crypto/md5/md5-aarch64.S" => [ + "crypto/md5/asm/md5-aarch64.pl" + ], + "crypto/md5/md5-loongarch64.S" => [ + "crypto/md5/asm/md5-loongarch64.pl" + ], "crypto/md5/md5-sparcv9.S" => [ "crypto/md5/asm/md5-sparcv9.pl" ], "crypto/md5/md5-x86_64.s" => [ "crypto/md5/asm/md5-x86_64.pl" ], + "crypto/modes/aes-gcm-armv8-unroll8_64.S" => [ + "crypto/modes/asm/aes-gcm-armv8-unroll8_64.pl" + ], "crypto/modes/aes-gcm-armv8_64.S" => [ "crypto/modes/asm/aes-gcm-armv8_64.pl" ], + "crypto/modes/aes-gcm-avx512.s" => [ + "crypto/modes/asm/aes-gcm-avx512.pl" + ], + "crypto/modes/aes-gcm-ppc.s" => [ + "crypto/modes/asm/aes-gcm-ppc.pl" + ], + "crypto/modes/aes-gcm-riscv64-zvkb-zvkg-zvkned.s" => [ + "crypto/modes/asm/aes-gcm-riscv64-zvkb-zvkg-zvkned.pl" + ], "crypto/modes/aesni-gcm-x86_64.s" => [ "crypto/modes/asm/aesni-gcm-x86_64.pl" ], @@ -10728,6 +12619,15 @@ our %unified_info = ( "crypto/modes/ghash-parisc.s" => [ "crypto/modes/asm/ghash-parisc.pl" ], + "crypto/modes/ghash-riscv64-zvkb-zvbc.s" => [ + "crypto/modes/asm/ghash-riscv64-zvkb-zvbc.pl" + ], + "crypto/modes/ghash-riscv64-zvkg.s" => [ + "crypto/modes/asm/ghash-riscv64-zvkg.pl" + ], + "crypto/modes/ghash-riscv64.s" => [ + "crypto/modes/asm/ghash-riscv64.pl" + ], "crypto/modes/ghash-s390x.S" => [ "crypto/modes/asm/ghash-s390x.pl" ], @@ -10746,6 +12646,9 @@ our %unified_info = ( "crypto/modes/ghashv8-armx.S" => [ "crypto/modes/asm/ghashv8-armx.pl" ], + "crypto/params_idx.c" => [ + "crypto/params_idx.c.in" + ], "crypto/pariscid.s" => [ "crypto/pariscid.pl" ], @@ -10806,6 +12709,12 @@ our %unified_info = ( "crypto/ripemd/rmd-586.S" => [ "crypto/ripemd/asm/rmd-586.pl" ], + "crypto/riscv32cpuid.s" => [ + "crypto/riscv32cpuid.pl" + ], + "crypto/riscv64cpuid.s" => [ + "crypto/riscv64cpuid.pl" + ], "crypto/s390xcpuid.S" => [ "crypto/s390xcpuid.pl" ], @@ -10914,6 +12823,9 @@ our %unified_info = ( "crypto/sha/sha256-ppc.s" => [ "crypto/sha/asm/sha512-ppc.pl" ], + "crypto/sha/sha256-riscv64-zvkb-zvknha_or_zvknhb.S" => [ + "crypto/sha/asm/sha256-riscv64-zvkb-zvknha_or_zvknhb.pl" + ], "crypto/sha/sha256-s390x.S" => [ "crypto/sha/asm/sha512-s390x.pl" ], @@ -10950,6 +12862,9 @@ our %unified_info = ( "crypto/sha/sha512-ppc.s" => [ "crypto/sha/asm/sha512-ppc.pl" ], + "crypto/sha/sha512-riscv64-zvkb-zvknhb.S" => [ + "crypto/sha/asm/sha512-riscv64-zvkb-zvknhb.pl" + ], "crypto/sha/sha512-s390x.S" => [ "crypto/sha/asm/sha512-s390x.pl" ], @@ -10962,6 +12877,24 @@ our %unified_info = ( "crypto/sha/sha512p8-ppc.s" => [ "crypto/sha/asm/sha512p8-ppc.pl" ], + "crypto/sm3/sm3-armv8.S" => [ + "crypto/sm3/asm/sm3-armv8.pl" + ], + "crypto/sm3/sm3-riscv64-zvksh.S" => [ + "crypto/sm3/asm/sm3-riscv64-zvksh.pl" + ], + "crypto/sm4/sm4-armv8.S" => [ + "crypto/sm4/asm/sm4-armv8.pl" + ], + "crypto/sm4/sm4-riscv64-zvksed.s" => [ + "crypto/sm4/asm/sm4-riscv64-zvksed.pl" + ], + "crypto/sm4/vpsm4-armv8.S" => [ + "crypto/sm4/asm/vpsm4-armv8.pl" + ], + "crypto/sm4/vpsm4_ex-armv8.S" => [ + "crypto/sm4/asm/vpsm4_ex-armv8.pl" + ], "crypto/uplink-ia64.s" => [ "ms/uplink-ia64.pl" ], @@ -11127,6 +13060,9 @@ our %unified_info = ( "doc/html/man1/openssl-sess_id.html" => [ "doc/man1/openssl-sess_id.pod" ], + "doc/html/man1/openssl-skeyutl.html" => [ + "doc/man1/openssl-skeyutl.pod" + ], "doc/html/man1/openssl-smime.html" => [ "doc/man1/openssl-smime.pod" ], @@ -11268,6 +13204,9 @@ our %unified_info = ( "doc/html/man3/BIO_get_ex_new_index.html" => [ "doc/man3/BIO_get_ex_new_index.pod" ], + "doc/html/man3/BIO_get_rpoll_descriptor.html" => [ + "doc/man3/BIO_get_rpoll_descriptor.pod" + ], "doc/html/man3/BIO_meth_new.html" => [ "doc/man3/BIO_meth_new.pod" ], @@ -11304,6 +13243,9 @@ our %unified_info = ( "doc/html/man3/BIO_s_datagram.html" => [ "doc/man3/BIO_s_datagram.pod" ], + "doc/html/man3/BIO_s_dgram_pair.html" => [ + "doc/man3/BIO_s_dgram_pair.pod" + ], "doc/html/man3/BIO_s_fd.html" => [ "doc/man3/BIO_s_fd.pod" ], @@ -11319,6 +13261,9 @@ our %unified_info = ( "doc/html/man3/BIO_s_socket.html" => [ "doc/man3/BIO_s_socket.pod" ], + "doc/html/man3/BIO_sendmmsg.html" => [ + "doc/man3/BIO_sendmmsg.pod" + ], "doc/html/man3/BIO_set_callback.html" => [ "doc/man3/BIO_set_callback.pod" ], @@ -11391,6 +13336,9 @@ our %unified_info = ( "doc/html/man3/BUF_MEM_new.html" => [ "doc/man3/BUF_MEM_new.pod" ], + "doc/html/man3/CMAC_CTX.html" => [ + "doc/man3/CMAC_CTX.pod" + ], "doc/html/man3/CMS_EncryptedData_decrypt.html" => [ "doc/man3/CMS_EncryptedData_decrypt.pod" ], @@ -11457,6 +13405,9 @@ our %unified_info = ( "doc/html/man3/CMS_verify_receipt.html" => [ "doc/man3/CMS_verify_receipt.pod" ], + "doc/html/man3/COMP_CTX_new.html" => [ + "doc/man3/COMP_CTX_new.pod" + ], "doc/html/man3/CONF_modules_free.html" => [ "doc/man3/CONF_modules_free.pod" ], @@ -11556,6 +13507,12 @@ our %unified_info = ( "doc/html/man3/DTLS_set_timer_cb.html" => [ "doc/man3/DTLS_set_timer_cb.pod" ], + "doc/html/man3/DTLSv1_get_timeout.html" => [ + "doc/man3/DTLSv1_get_timeout.pod" + ], + "doc/html/man3/DTLSv1_handle_timeout.html" => [ + "doc/man3/DTLSv1_handle_timeout.pod" + ], "doc/html/man3/DTLSv1_listen.html" => [ "doc/man3/DTLSv1_listen.pod" ], @@ -11694,6 +13651,9 @@ our %unified_info = ( "doc/html/man3/EVP_PKEY_CTX_get0_pkey.html" => [ "doc/man3/EVP_PKEY_CTX_get0_pkey.pod" ], + "doc/html/man3/EVP_PKEY_CTX_get_algor.html" => [ + "doc/man3/EVP_PKEY_CTX_get_algor.pod" + ], "doc/html/man3/EVP_PKEY_CTX_new.html" => [ "doc/man3/EVP_PKEY_CTX_new.pod" ], @@ -11811,6 +13771,12 @@ our %unified_info = ( "doc/html/man3/EVP_SIGNATURE.html" => [ "doc/man3/EVP_SIGNATURE.pod" ], + "doc/html/man3/EVP_SKEY.html" => [ + "doc/man3/EVP_SKEY.pod" + ], + "doc/html/man3/EVP_SKEYMGMT.html" => [ + "doc/man3/EVP_SKEYMGMT.pod" + ], "doc/html/man3/EVP_SealInit.html" => [ "doc/man3/EVP_SealInit.pod" ], @@ -11898,6 +13864,9 @@ our %unified_info = ( "doc/html/man3/EVP_whirlpool.html" => [ "doc/man3/EVP_whirlpool.pod" ], + "doc/html/man3/GENERAL_NAME.html" => [ + "doc/man3/GENERAL_NAME.pod" + ], "doc/html/man3/HMAC.html" => [ "doc/man3/HMAC.pod" ], @@ -11970,9 +13939,15 @@ our %unified_info = ( "doc/html/man3/OPENSSL_load_builtin_modules.html" => [ "doc/man3/OPENSSL_load_builtin_modules.pod" ], + "doc/html/man3/OPENSSL_load_u16_le.html" => [ + "doc/man3/OPENSSL_load_u16_le.pod" + ], "doc/html/man3/OPENSSL_malloc.html" => [ "doc/man3/OPENSSL_malloc.pod" ], + "doc/html/man3/OPENSSL_riscvcap.html" => [ + "doc/man3/OPENSSL_riscvcap.pod" + ], "doc/html/man3/OPENSSL_s390xcap.html" => [ "doc/man3/OPENSSL_s390xcap.pod" ], @@ -11988,12 +13963,18 @@ our %unified_info = ( "doc/html/man3/OSSL_CALLBACK.html" => [ "doc/man3/OSSL_CALLBACK.pod" ], + "doc/html/man3/OSSL_CMP_ATAV_set0.html" => [ + "doc/man3/OSSL_CMP_ATAV_set0.pod" + ], "doc/html/man3/OSSL_CMP_CTX_new.html" => [ "doc/man3/OSSL_CMP_CTX_new.pod" ], "doc/html/man3/OSSL_CMP_HDR_get0_transactionID.html" => [ "doc/man3/OSSL_CMP_HDR_get0_transactionID.pod" ], + "doc/html/man3/OSSL_CMP_ITAV_new_caCerts.html" => [ + "doc/man3/OSSL_CMP_ITAV_new_caCerts.pod" + ], "doc/html/man3/OSSL_CMP_ITAV_set0.html" => [ "doc/man3/OSSL_CMP_ITAV_set0.pod" ], @@ -12063,9 +14044,18 @@ our %unified_info = ( "doc/html/man3/OSSL_ENCODER_to_bio.html" => [ "doc/man3/OSSL_ENCODER_to_bio.pod" ], + "doc/html/man3/OSSL_ERR_STATE_save.html" => [ + "doc/man3/OSSL_ERR_STATE_save.pod" + ], "doc/html/man3/OSSL_ESS_check_signing_certs.html" => [ "doc/man3/OSSL_ESS_check_signing_certs.pod" ], + "doc/html/man3/OSSL_GENERAL_NAMES_print.html" => [ + "doc/man3/OSSL_GENERAL_NAMES_print.pod" + ], + "doc/html/man3/OSSL_HPKE_CTX_new.html" => [ + "doc/man3/OSSL_HPKE_CTX_new.pod" + ], "doc/html/man3/OSSL_HTTP_REQ_CTX.html" => [ "doc/man3/OSSL_HTTP_REQ_CTX.pod" ], @@ -12075,12 +14065,24 @@ our %unified_info = ( "doc/html/man3/OSSL_HTTP_transfer.html" => [ "doc/man3/OSSL_HTTP_transfer.pod" ], + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX.html" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX.pod" + ], + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX_print.html" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX_print.pod" + ], + "doc/html/man3/OSSL_INDICATOR_set_callback.html" => [ + "doc/man3/OSSL_INDICATOR_set_callback.pod" + ], "doc/html/man3/OSSL_ITEM.html" => [ "doc/man3/OSSL_ITEM.pod" ], "doc/html/man3/OSSL_LIB_CTX.html" => [ "doc/man3/OSSL_LIB_CTX.pod" ], + "doc/html/man3/OSSL_LIB_CTX_set_conf_diagnostics.html" => [ + "doc/man3/OSSL_LIB_CTX_set_conf_diagnostics.pod" + ], "doc/html/man3/OSSL_PARAM.html" => [ "doc/man3/OSSL_PARAM.pod" ], @@ -12096,9 +14098,15 @@ our %unified_info = ( "doc/html/man3/OSSL_PARAM_int.html" => [ "doc/man3/OSSL_PARAM_int.pod" ], + "doc/html/man3/OSSL_PARAM_print_to_bio.html" => [ + "doc/man3/OSSL_PARAM_print_to_bio.pod" + ], "doc/html/man3/OSSL_PROVIDER.html" => [ "doc/man3/OSSL_PROVIDER.pod" ], + "doc/html/man3/OSSL_QUIC_client_method.html" => [ + "doc/man3/OSSL_QUIC_client_method.pod" + ], "doc/html/man3/OSSL_SELF_TEST_new.html" => [ "doc/man3/OSSL_SELF_TEST_new.pod" ], @@ -12123,6 +14131,9 @@ our %unified_info = ( "doc/html/man3/OSSL_STORE_open.html" => [ "doc/man3/OSSL_STORE_open.pod" ], + "doc/html/man3/OSSL_sleep.html" => [ + "doc/man3/OSSL_sleep.pod" + ], "doc/html/man3/OSSL_trace_enabled.html" => [ "doc/man3/OSSL_trace_enabled.pod" ], @@ -12138,6 +14149,9 @@ our %unified_info = ( "doc/html/man3/OpenSSL_version.html" => [ "doc/man3/OpenSSL_version.pod" ], + "doc/html/man3/PBMAC1_get1_pbkdf2_param.html" => [ + "doc/man3/PBMAC1_get1_pbkdf2_param.pod" + ], "doc/html/man3/PEM_X509_INFO_read_bio_ex.html" => [ "doc/man3/PEM_X509_INFO_read_bio_ex.pod" ], @@ -12174,6 +14188,9 @@ our %unified_info = ( "doc/html/man3/PKCS12_SAFEBAG_get1_cert.html" => [ "doc/man3/PKCS12_SAFEBAG_get1_cert.pod" ], + "doc/html/man3/PKCS12_SAFEBAG_set0_attrs.html" => [ + "doc/man3/PKCS12_SAFEBAG_set0_attrs.pod" + ], "doc/html/man3/PKCS12_add1_attr_by_NID.html" => [ "doc/man3/PKCS12_add1_attr_by_NID.pod" ], @@ -12447,6 +14464,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set0_CA_list.html" => [ "doc/man3/SSL_CTX_set0_CA_list.pod" ], + "doc/html/man3/SSL_CTX_set1_cert_comp_preference.html" => [ + "doc/man3/SSL_CTX_set1_cert_comp_preference.pod" + ], "doc/html/man3/SSL_CTX_set1_curves.html" => [ "doc/man3/SSL_CTX_set1_curves.pod" ], @@ -12486,6 +14506,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_default_passwd_cb.html" => [ "doc/man3/SSL_CTX_set_default_passwd_cb.pod" ], + "doc/html/man3/SSL_CTX_set_domain_flags.html" => [ + "doc/man3/SSL_CTX_set_domain_flags.pod" + ], "doc/html/man3/SSL_CTX_set_generate_session_id.html" => [ "doc/man3/SSL_CTX_set_generate_session_id.pod" ], @@ -12507,6 +14530,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_msg_callback.html" => [ "doc/man3/SSL_CTX_set_msg_callback.pod" ], + "doc/html/man3/SSL_CTX_set_new_pending_conn_cb.html" => [ + "doc/man3/SSL_CTX_set_new_pending_conn_cb.pod" + ], "doc/html/man3/SSL_CTX_set_num_tickets.html" => [ "doc/man3/SSL_CTX_set_num_tickets.pod" ], @@ -12621,6 +14647,9 @@ our %unified_info = ( "doc/html/man3/SSL_accept.html" => [ "doc/man3/SSL_accept.pod" ], + "doc/html/man3/SSL_accept_stream.html" => [ + "doc/man3/SSL_accept_stream.pod" + ], "doc/html/man3/SSL_alert_type_string.html" => [ "doc/man3/SSL_alert_type_string.pod" ], @@ -12648,9 +14677,21 @@ our %unified_info = ( "doc/html/man3/SSL_free.html" => [ "doc/man3/SSL_free.pod" ], + "doc/html/man3/SSL_get0_connection.html" => [ + "doc/man3/SSL_get0_connection.pod" + ], + "doc/html/man3/SSL_get0_group_name.html" => [ + "doc/man3/SSL_get0_group_name.pod" + ], + "doc/html/man3/SSL_get0_peer_rpk.html" => [ + "doc/man3/SSL_get0_peer_rpk.pod" + ], "doc/html/man3/SSL_get0_peer_scts.html" => [ "doc/man3/SSL_get0_peer_scts.pod" ], + "doc/html/man3/SSL_get1_builtin_sigalgs.html" => [ + "doc/man3/SSL_get1_builtin_sigalgs.pod" + ], "doc/html/man3/SSL_get_SSL_CTX.html" => [ "doc/man3/SSL_get_SSL_CTX.pod" ], @@ -12666,6 +14707,9 @@ our %unified_info = ( "doc/html/man3/SSL_get_client_random.html" => [ "doc/man3/SSL_get_client_random.pod" ], + "doc/html/man3/SSL_get_conn_close_info.html" => [ + "doc/man3/SSL_get_conn_close_info.pod" + ], "doc/html/man3/SSL_get_current_cipher.html" => [ "doc/man3/SSL_get_current_cipher.pod" ], @@ -12675,12 +14719,18 @@ our %unified_info = ( "doc/html/man3/SSL_get_error.html" => [ "doc/man3/SSL_get_error.pod" ], + "doc/html/man3/SSL_get_event_timeout.html" => [ + "doc/man3/SSL_get_event_timeout.pod" + ], "doc/html/man3/SSL_get_extms_support.html" => [ "doc/man3/SSL_get_extms_support.pod" ], "doc/html/man3/SSL_get_fd.html" => [ "doc/man3/SSL_get_fd.pod" ], + "doc/html/man3/SSL_get_handshake_rtt.html" => [ + "doc/man3/SSL_get_handshake_rtt.pod" + ], "doc/html/man3/SSL_get_peer_cert_chain.html" => [ "doc/man3/SSL_get_peer_cert_chain.pod" ], @@ -12699,12 +14749,24 @@ our %unified_info = ( "doc/html/man3/SSL_get_rbio.html" => [ "doc/man3/SSL_get_rbio.pod" ], + "doc/html/man3/SSL_get_rpoll_descriptor.html" => [ + "doc/man3/SSL_get_rpoll_descriptor.pod" + ], "doc/html/man3/SSL_get_session.html" => [ "doc/man3/SSL_get_session.pod" ], "doc/html/man3/SSL_get_shared_sigalgs.html" => [ "doc/man3/SSL_get_shared_sigalgs.pod" ], + "doc/html/man3/SSL_get_stream_id.html" => [ + "doc/man3/SSL_get_stream_id.pod" + ], + "doc/html/man3/SSL_get_stream_read_state.html" => [ + "doc/man3/SSL_get_stream_read_state.pod" + ], + "doc/html/man3/SSL_get_value_uint.html" => [ + "doc/man3/SSL_get_value_uint.pod" + ], "doc/html/man3/SSL_get_verify_result.html" => [ "doc/man3/SSL_get_verify_result.pod" ], @@ -12714,9 +14776,15 @@ our %unified_info = ( "doc/html/man3/SSL_group_to_name.html" => [ "doc/man3/SSL_group_to_name.pod" ], + "doc/html/man3/SSL_handle_events.html" => [ + "doc/man3/SSL_handle_events.pod" + ], "doc/html/man3/SSL_in_init.html" => [ "doc/man3/SSL_in_init.pod" ], + "doc/html/man3/SSL_inject_net_dgram.html" => [ + "doc/man3/SSL_inject_net_dgram.pod" + ], "doc/html/man3/SSL_key_update.html" => [ "doc/man3/SSL_key_update.pod" ], @@ -12729,9 +14797,21 @@ our %unified_info = ( "doc/html/man3/SSL_new.html" => [ "doc/man3/SSL_new.pod" ], + "doc/html/man3/SSL_new_domain.html" => [ + "doc/man3/SSL_new_domain.pod" + ], + "doc/html/man3/SSL_new_listener.html" => [ + "doc/man3/SSL_new_listener.pod" + ], + "doc/html/man3/SSL_new_stream.html" => [ + "doc/man3/SSL_new_stream.pod" + ], "doc/html/man3/SSL_pending.html" => [ "doc/man3/SSL_pending.pod" ], + "doc/html/man3/SSL_poll.html" => [ + "doc/man3/SSL_poll.pod" + ], "doc/html/man3/SSL_read.html" => [ "doc/man3/SSL_read.pod" ], @@ -12747,24 +14827,45 @@ our %unified_info = ( "doc/html/man3/SSL_set1_host.html" => [ "doc/man3/SSL_set1_host.pod" ], + "doc/html/man3/SSL_set1_initial_peer_addr.html" => [ + "doc/man3/SSL_set1_initial_peer_addr.pod" + ], + "doc/html/man3/SSL_set1_server_cert_type.html" => [ + "doc/man3/SSL_set1_server_cert_type.pod" + ], "doc/html/man3/SSL_set_async_callback.html" => [ "doc/man3/SSL_set_async_callback.pod" ], "doc/html/man3/SSL_set_bio.html" => [ "doc/man3/SSL_set_bio.pod" ], + "doc/html/man3/SSL_set_blocking_mode.html" => [ + "doc/man3/SSL_set_blocking_mode.pod" + ], "doc/html/man3/SSL_set_connect_state.html" => [ "doc/man3/SSL_set_connect_state.pod" ], + "doc/html/man3/SSL_set_default_stream_mode.html" => [ + "doc/man3/SSL_set_default_stream_mode.pod" + ], "doc/html/man3/SSL_set_fd.html" => [ "doc/man3/SSL_set_fd.pod" ], + "doc/html/man3/SSL_set_incoming_stream_policy.html" => [ + "doc/man3/SSL_set_incoming_stream_policy.pod" + ], + "doc/html/man3/SSL_set_quic_tls_cbs.html" => [ + "doc/man3/SSL_set_quic_tls_cbs.pod" + ], "doc/html/man3/SSL_set_retry_verify.html" => [ "doc/man3/SSL_set_retry_verify.pod" ], "doc/html/man3/SSL_set_session.html" => [ "doc/man3/SSL_set_session.pod" ], + "doc/html/man3/SSL_set_session_secret_cb.html" => [ + "doc/man3/SSL_set_session_secret_cb.pod" + ], "doc/html/man3/SSL_set_shutdown.html" => [ "doc/man3/SSL_set_shutdown.pod" ], @@ -12777,6 +14878,12 @@ our %unified_info = ( "doc/html/man3/SSL_state_string.html" => [ "doc/man3/SSL_state_string.pod" ], + "doc/html/man3/SSL_stream_conclude.html" => [ + "doc/man3/SSL_stream_conclude.pod" + ], + "doc/html/man3/SSL_stream_reset.html" => [ + "doc/man3/SSL_stream_reset.pod" + ], "doc/html/man3/SSL_want.html" => [ "doc/man3/SSL_want.pod" ], @@ -12786,8 +14893,8 @@ our %unified_info = ( "doc/html/man3/TS_RESP_CTX_new.html" => [ "doc/man3/TS_RESP_CTX_new.pod" ], - "doc/html/man3/TS_VERIFY_CTX_set_certs.html" => [ - "doc/man3/TS_VERIFY_CTX_set_certs.pod" + "doc/html/man3/TS_VERIFY_CTX.html" => [ + "doc/man3/TS_VERIFY_CTX.pod" ], "doc/html/man3/UI_STRING.html" => [ "doc/man3/UI_STRING.pod" @@ -12807,6 +14914,21 @@ our %unified_info = ( "doc/html/man3/X509V3_set_ctx.html" => [ "doc/man3/X509V3_set_ctx.pod" ], + "doc/html/man3/X509_ACERT_add1_attr.html" => [ + "doc/man3/X509_ACERT_add1_attr.pod" + ], + "doc/html/man3/X509_ACERT_add_attr_nconf.html" => [ + "doc/man3/X509_ACERT_add_attr_nconf.pod" + ], + "doc/html/man3/X509_ACERT_get0_holder_baseCertId.html" => [ + "doc/man3/X509_ACERT_get0_holder_baseCertId.pod" + ], + "doc/html/man3/X509_ACERT_get_attr.html" => [ + "doc/man3/X509_ACERT_get_attr.pod" + ], + "doc/html/man3/X509_ACERT_print_ex.html" => [ + "doc/man3/X509_ACERT_print_ex.pod" + ], "doc/html/man3/X509_ALGOR_dup.html" => [ "doc/man3/X509_ALGOR_dup.pod" ], @@ -12855,6 +14977,9 @@ our %unified_info = ( "doc/html/man3/X509_SIG_get0.html" => [ "doc/man3/X509_SIG_get0.pod" ], + "doc/html/man3/X509_STORE_CTX_get_by_subject.html" => [ + "doc/man3/X509_STORE_CTX_get_by_subject.pod" + ], "doc/html/man3/X509_STORE_CTX_get_error.html" => [ "doc/man3/X509_STORE_CTX_get_error.pod" ], @@ -12921,6 +15046,9 @@ our %unified_info = ( "doc/html/man3/X509_get0_uids.html" => [ "doc/man3/X509_get0_uids.pod" ], + "doc/html/man3/X509_get_default_cert_file.html" => [ + "doc/man3/X509_get_default_cert_file.pod" + ], "doc/html/man3/X509_get_extension_flags.html" => [ "doc/man3/X509_get_extension_flags.pod" ], @@ -13044,9 +15172,15 @@ our %unified_info = ( "doc/html/man7/EVP_CIPHER-SM4.html" => [ "doc/man7/EVP_CIPHER-SM4.pod" ], + "doc/html/man7/EVP_KDF-ARGON2.html" => [ + "doc/man7/EVP_KDF-ARGON2.pod" + ], "doc/html/man7/EVP_KDF-HKDF.html" => [ "doc/man7/EVP_KDF-HKDF.pod" ], + "doc/html/man7/EVP_KDF-HMAC-DRBG.html" => [ + "doc/man7/EVP_KDF-HMAC-DRBG.pod" + ], "doc/html/man7/EVP_KDF-KB.html" => [ "doc/man7/EVP_KDF-KB.pod" ], @@ -13062,6 +15196,9 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-PKCS12KDF.html" => [ "doc/man7/EVP_KDF-PKCS12KDF.pod" ], + "doc/html/man7/EVP_KDF-PVKKDF.html" => [ + "doc/man7/EVP_KDF-PVKKDF.pod" + ], "doc/html/man7/EVP_KDF-SCRYPT.html" => [ "doc/man7/EVP_KDF-SCRYPT.pod" ], @@ -13086,9 +15223,18 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-X963.html" => [ "doc/man7/EVP_KDF-X963.pod" ], + "doc/html/man7/EVP_KEM-EC.html" => [ + "doc/man7/EVP_KEM-EC.pod" + ], + "doc/html/man7/EVP_KEM-ML-KEM.html" => [ + "doc/man7/EVP_KEM-ML-KEM.pod" + ], "doc/html/man7/EVP_KEM-RSA.html" => [ "doc/man7/EVP_KEM-RSA.pod" ], + "doc/html/man7/EVP_KEM-X25519.html" => [ + "doc/man7/EVP_KEM-X25519.pod" + ], "doc/html/man7/EVP_KEYEXCH-DH.html" => [ "doc/man7/EVP_KEYEXCH-DH.pod" ], @@ -13122,6 +15268,9 @@ our %unified_info = ( "doc/html/man7/EVP_MD-BLAKE2.html" => [ "doc/man7/EVP_MD-BLAKE2.pod" ], + "doc/html/man7/EVP_MD-KECCAK.html" => [ + "doc/man7/EVP_MD-KECCAK.pod" + ], "doc/html/man7/EVP_MD-MD2.html" => [ "doc/man7/EVP_MD-MD2.pod" ], @@ -13179,15 +15328,27 @@ our %unified_info = ( "doc/html/man7/EVP_PKEY-HMAC.html" => [ "doc/man7/EVP_PKEY-HMAC.pod" ], + "doc/html/man7/EVP_PKEY-ML-DSA.html" => [ + "doc/man7/EVP_PKEY-ML-DSA.pod" + ], + "doc/html/man7/EVP_PKEY-ML-KEM.html" => [ + "doc/man7/EVP_PKEY-ML-KEM.pod" + ], "doc/html/man7/EVP_PKEY-RSA.html" => [ "doc/man7/EVP_PKEY-RSA.pod" ], + "doc/html/man7/EVP_PKEY-SLH-DSA.html" => [ + "doc/man7/EVP_PKEY-SLH-DSA.pod" + ], "doc/html/man7/EVP_PKEY-SM2.html" => [ "doc/man7/EVP_PKEY-SM2.pod" ], "doc/html/man7/EVP_PKEY-X25519.html" => [ "doc/man7/EVP_PKEY-X25519.pod" ], + "doc/html/man7/EVP_RAND-CRNG-TEST.html" => [ + "doc/man7/EVP_RAND-CRNG-TEST.pod" + ], "doc/html/man7/EVP_RAND-CTR-DRBG.html" => [ "doc/man7/EVP_RAND-CTR-DRBG.pod" ], @@ -13197,6 +15358,9 @@ our %unified_info = ( "doc/html/man7/EVP_RAND-HMAC-DRBG.html" => [ "doc/man7/EVP_RAND-HMAC-DRBG.pod" ], + "doc/html/man7/EVP_RAND-JITTER.html" => [ + "doc/man7/EVP_RAND-JITTER.pod" + ], "doc/html/man7/EVP_RAND-SEED-SRC.html" => [ "doc/man7/EVP_RAND-SEED-SRC.pod" ], @@ -13218,9 +15382,15 @@ our %unified_info = ( "doc/html/man7/EVP_SIGNATURE-HMAC.html" => [ "doc/man7/EVP_SIGNATURE-HMAC.pod" ], + "doc/html/man7/EVP_SIGNATURE-ML-DSA.html" => [ + "doc/man7/EVP_SIGNATURE-ML-DSA.pod" + ], "doc/html/man7/EVP_SIGNATURE-RSA.html" => [ "doc/man7/EVP_SIGNATURE-RSA.pod" ], + "doc/html/man7/EVP_SIGNATURE-SLH-DSA.html" => [ + "doc/man7/EVP_SIGNATURE-SLH-DSA.pod" + ], "doc/html/man7/OSSL_PROVIDER-FIPS.html" => [ "doc/man7/OSSL_PROVIDER-FIPS.pod" ], @@ -13236,6 +15406,9 @@ our %unified_info = ( "doc/html/man7/OSSL_PROVIDER-null.html" => [ "doc/man7/OSSL_PROVIDER-null.pod" ], + "doc/html/man7/OSSL_STORE-winstore.html" => [ + "doc/man7/OSSL_STORE-winstore.pod" + ], "doc/html/man7/RAND.html" => [ "doc/man7/RAND.pod" ], @@ -13248,9 +15421,6 @@ our %unified_info = ( "doc/html/man7/bio.html" => [ "doc/man7/bio.pod" ], - "doc/html/man7/crypto.html" => [ - "doc/man7/crypto.pod" - ], "doc/html/man7/ct.html" => [ "doc/man7/ct.pod" ], @@ -13281,9 +15451,6 @@ our %unified_info = ( "doc/html/man7/life_cycle-rand.html" => [ "doc/man7/life_cycle-rand.pod" ], - "doc/html/man7/migration_guide.html" => [ - "doc/man7/migration_guide.pod" - ], "doc/html/man7/openssl-core.h.html" => [ "doc/man7/openssl-core.h.pod" ], @@ -13299,12 +15466,66 @@ our %unified_info = ( "doc/html/man7/openssl-glossary.html" => [ "doc/man7/openssl-glossary.pod" ], + "doc/html/man7/openssl-qlog.html" => [ + "doc/man7/openssl-qlog.pod" + ], + "doc/html/man7/openssl-quic-concurrency.html" => [ + "doc/man7/openssl-quic-concurrency.pod" + ], + "doc/html/man7/openssl-quic.html" => [ + "doc/man7/openssl-quic.pod" + ], "doc/html/man7/openssl-threads.html" => [ "doc/man7/openssl-threads.pod" ], "doc/html/man7/openssl_user_macros.html" => [ "doc/man7/openssl_user_macros.pod" ], + "doc/html/man7/ossl-guide-introduction.html" => [ + "doc/man7/ossl-guide-introduction.pod" + ], + "doc/html/man7/ossl-guide-libcrypto-introduction.html" => [ + "doc/man7/ossl-guide-libcrypto-introduction.pod" + ], + "doc/html/man7/ossl-guide-libraries-introduction.html" => [ + "doc/man7/ossl-guide-libraries-introduction.pod" + ], + "doc/html/man7/ossl-guide-libssl-introduction.html" => [ + "doc/man7/ossl-guide-libssl-introduction.pod" + ], + "doc/html/man7/ossl-guide-migration.html" => [ + "doc/man7/ossl-guide-migration.pod" + ], + "doc/html/man7/ossl-guide-quic-client-block.html" => [ + "doc/man7/ossl-guide-quic-client-block.pod" + ], + "doc/html/man7/ossl-guide-quic-client-non-block.html" => [ + "doc/man7/ossl-guide-quic-client-non-block.pod" + ], + "doc/html/man7/ossl-guide-quic-introduction.html" => [ + "doc/man7/ossl-guide-quic-introduction.pod" + ], + "doc/html/man7/ossl-guide-quic-multi-stream.html" => [ + "doc/man7/ossl-guide-quic-multi-stream.pod" + ], + "doc/html/man7/ossl-guide-quic-server-block.html" => [ + "doc/man7/ossl-guide-quic-server-block.pod" + ], + "doc/html/man7/ossl-guide-quic-server-non-block.html" => [ + "doc/man7/ossl-guide-quic-server-non-block.pod" + ], + "doc/html/man7/ossl-guide-tls-client-block.html" => [ + "doc/man7/ossl-guide-tls-client-block.pod" + ], + "doc/html/man7/ossl-guide-tls-client-non-block.html" => [ + "doc/man7/ossl-guide-tls-client-non-block.pod" + ], + "doc/html/man7/ossl-guide-tls-introduction.html" => [ + "doc/man7/ossl-guide-tls-introduction.pod" + ], + "doc/html/man7/ossl-guide-tls-server-block.html" => [ + "doc/man7/ossl-guide-tls-server-block.pod" + ], "doc/html/man7/ossl_store-file.html" => [ "doc/man7/ossl_store-file.pod" ], @@ -13359,6 +15580,9 @@ our %unified_info = ( "doc/html/man7/provider-signature.html" => [ "doc/man7/provider-signature.pod" ], + "doc/html/man7/provider-skeymgmt.html" => [ + "doc/man7/provider-skeymgmt.pod" + ], "doc/html/man7/provider-storemgmt.html" => [ "doc/man7/provider-storemgmt.pod" ], @@ -13368,9 +15592,6 @@ our %unified_info = ( "doc/html/man7/proxy-certificates.html" => [ "doc/man7/proxy-certificates.pod" ], - "doc/html/man7/ssl.html" => [ - "doc/man7/ssl.pod" - ], "doc/html/man7/x509.html" => [ "doc/man7/x509.pod" ], @@ -13518,6 +15739,9 @@ our %unified_info = ( "doc/man/man1/openssl-sess_id.1" => [ "doc/man1/openssl-sess_id.pod" ], + "doc/man/man1/openssl-skeyutl.1" => [ + "doc/man1/openssl-skeyutl.pod" + ], "doc/man/man1/openssl-smime.1" => [ "doc/man1/openssl-smime.pod" ], @@ -13659,6 +15883,9 @@ our %unified_info = ( "doc/man/man3/BIO_get_ex_new_index.3" => [ "doc/man3/BIO_get_ex_new_index.pod" ], + "doc/man/man3/BIO_get_rpoll_descriptor.3" => [ + "doc/man3/BIO_get_rpoll_descriptor.pod" + ], "doc/man/man3/BIO_meth_new.3" => [ "doc/man3/BIO_meth_new.pod" ], @@ -13695,6 +15922,9 @@ our %unified_info = ( "doc/man/man3/BIO_s_datagram.3" => [ "doc/man3/BIO_s_datagram.pod" ], + "doc/man/man3/BIO_s_dgram_pair.3" => [ + "doc/man3/BIO_s_dgram_pair.pod" + ], "doc/man/man3/BIO_s_fd.3" => [ "doc/man3/BIO_s_fd.pod" ], @@ -13710,6 +15940,9 @@ our %unified_info = ( "doc/man/man3/BIO_s_socket.3" => [ "doc/man3/BIO_s_socket.pod" ], + "doc/man/man3/BIO_sendmmsg.3" => [ + "doc/man3/BIO_sendmmsg.pod" + ], "doc/man/man3/BIO_set_callback.3" => [ "doc/man3/BIO_set_callback.pod" ], @@ -13782,6 +16015,9 @@ our %unified_info = ( "doc/man/man3/BUF_MEM_new.3" => [ "doc/man3/BUF_MEM_new.pod" ], + "doc/man/man3/CMAC_CTX.3" => [ + "doc/man3/CMAC_CTX.pod" + ], "doc/man/man3/CMS_EncryptedData_decrypt.3" => [ "doc/man3/CMS_EncryptedData_decrypt.pod" ], @@ -13848,6 +16084,9 @@ our %unified_info = ( "doc/man/man3/CMS_verify_receipt.3" => [ "doc/man3/CMS_verify_receipt.pod" ], + "doc/man/man3/COMP_CTX_new.3" => [ + "doc/man3/COMP_CTX_new.pod" + ], "doc/man/man3/CONF_modules_free.3" => [ "doc/man3/CONF_modules_free.pod" ], @@ -13947,6 +16186,12 @@ our %unified_info = ( "doc/man/man3/DTLS_set_timer_cb.3" => [ "doc/man3/DTLS_set_timer_cb.pod" ], + "doc/man/man3/DTLSv1_get_timeout.3" => [ + "doc/man3/DTLSv1_get_timeout.pod" + ], + "doc/man/man3/DTLSv1_handle_timeout.3" => [ + "doc/man3/DTLSv1_handle_timeout.pod" + ], "doc/man/man3/DTLSv1_listen.3" => [ "doc/man3/DTLSv1_listen.pod" ], @@ -14085,6 +16330,9 @@ our %unified_info = ( "doc/man/man3/EVP_PKEY_CTX_get0_pkey.3" => [ "doc/man3/EVP_PKEY_CTX_get0_pkey.pod" ], + "doc/man/man3/EVP_PKEY_CTX_get_algor.3" => [ + "doc/man3/EVP_PKEY_CTX_get_algor.pod" + ], "doc/man/man3/EVP_PKEY_CTX_new.3" => [ "doc/man3/EVP_PKEY_CTX_new.pod" ], @@ -14202,6 +16450,12 @@ our %unified_info = ( "doc/man/man3/EVP_SIGNATURE.3" => [ "doc/man3/EVP_SIGNATURE.pod" ], + "doc/man/man3/EVP_SKEY.3" => [ + "doc/man3/EVP_SKEY.pod" + ], + "doc/man/man3/EVP_SKEYMGMT.3" => [ + "doc/man3/EVP_SKEYMGMT.pod" + ], "doc/man/man3/EVP_SealInit.3" => [ "doc/man3/EVP_SealInit.pod" ], @@ -14289,6 +16543,9 @@ our %unified_info = ( "doc/man/man3/EVP_whirlpool.3" => [ "doc/man3/EVP_whirlpool.pod" ], + "doc/man/man3/GENERAL_NAME.3" => [ + "doc/man3/GENERAL_NAME.pod" + ], "doc/man/man3/HMAC.3" => [ "doc/man3/HMAC.pod" ], @@ -14361,9 +16618,15 @@ our %unified_info = ( "doc/man/man3/OPENSSL_load_builtin_modules.3" => [ "doc/man3/OPENSSL_load_builtin_modules.pod" ], + "doc/man/man3/OPENSSL_load_u16_le.3" => [ + "doc/man3/OPENSSL_load_u16_le.pod" + ], "doc/man/man3/OPENSSL_malloc.3" => [ "doc/man3/OPENSSL_malloc.pod" ], + "doc/man/man3/OPENSSL_riscvcap.3" => [ + "doc/man3/OPENSSL_riscvcap.pod" + ], "doc/man/man3/OPENSSL_s390xcap.3" => [ "doc/man3/OPENSSL_s390xcap.pod" ], @@ -14379,12 +16642,18 @@ our %unified_info = ( "doc/man/man3/OSSL_CALLBACK.3" => [ "doc/man3/OSSL_CALLBACK.pod" ], + "doc/man/man3/OSSL_CMP_ATAV_set0.3" => [ + "doc/man3/OSSL_CMP_ATAV_set0.pod" + ], "doc/man/man3/OSSL_CMP_CTX_new.3" => [ "doc/man3/OSSL_CMP_CTX_new.pod" ], "doc/man/man3/OSSL_CMP_HDR_get0_transactionID.3" => [ "doc/man3/OSSL_CMP_HDR_get0_transactionID.pod" ], + "doc/man/man3/OSSL_CMP_ITAV_new_caCerts.3" => [ + "doc/man3/OSSL_CMP_ITAV_new_caCerts.pod" + ], "doc/man/man3/OSSL_CMP_ITAV_set0.3" => [ "doc/man3/OSSL_CMP_ITAV_set0.pod" ], @@ -14454,9 +16723,18 @@ our %unified_info = ( "doc/man/man3/OSSL_ENCODER_to_bio.3" => [ "doc/man3/OSSL_ENCODER_to_bio.pod" ], + "doc/man/man3/OSSL_ERR_STATE_save.3" => [ + "doc/man3/OSSL_ERR_STATE_save.pod" + ], "doc/man/man3/OSSL_ESS_check_signing_certs.3" => [ "doc/man3/OSSL_ESS_check_signing_certs.pod" ], + "doc/man/man3/OSSL_GENERAL_NAMES_print.3" => [ + "doc/man3/OSSL_GENERAL_NAMES_print.pod" + ], + "doc/man/man3/OSSL_HPKE_CTX_new.3" => [ + "doc/man3/OSSL_HPKE_CTX_new.pod" + ], "doc/man/man3/OSSL_HTTP_REQ_CTX.3" => [ "doc/man3/OSSL_HTTP_REQ_CTX.pod" ], @@ -14466,12 +16744,24 @@ our %unified_info = ( "doc/man/man3/OSSL_HTTP_transfer.3" => [ "doc/man3/OSSL_HTTP_transfer.pod" ], + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX.3" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX.pod" + ], + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX_print.3" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX_print.pod" + ], + "doc/man/man3/OSSL_INDICATOR_set_callback.3" => [ + "doc/man3/OSSL_INDICATOR_set_callback.pod" + ], "doc/man/man3/OSSL_ITEM.3" => [ "doc/man3/OSSL_ITEM.pod" ], "doc/man/man3/OSSL_LIB_CTX.3" => [ "doc/man3/OSSL_LIB_CTX.pod" ], + "doc/man/man3/OSSL_LIB_CTX_set_conf_diagnostics.3" => [ + "doc/man3/OSSL_LIB_CTX_set_conf_diagnostics.pod" + ], "doc/man/man3/OSSL_PARAM.3" => [ "doc/man3/OSSL_PARAM.pod" ], @@ -14487,9 +16777,15 @@ our %unified_info = ( "doc/man/man3/OSSL_PARAM_int.3" => [ "doc/man3/OSSL_PARAM_int.pod" ], + "doc/man/man3/OSSL_PARAM_print_to_bio.3" => [ + "doc/man3/OSSL_PARAM_print_to_bio.pod" + ], "doc/man/man3/OSSL_PROVIDER.3" => [ "doc/man3/OSSL_PROVIDER.pod" ], + "doc/man/man3/OSSL_QUIC_client_method.3" => [ + "doc/man3/OSSL_QUIC_client_method.pod" + ], "doc/man/man3/OSSL_SELF_TEST_new.3" => [ "doc/man3/OSSL_SELF_TEST_new.pod" ], @@ -14514,6 +16810,9 @@ our %unified_info = ( "doc/man/man3/OSSL_STORE_open.3" => [ "doc/man3/OSSL_STORE_open.pod" ], + "doc/man/man3/OSSL_sleep.3" => [ + "doc/man3/OSSL_sleep.pod" + ], "doc/man/man3/OSSL_trace_enabled.3" => [ "doc/man3/OSSL_trace_enabled.pod" ], @@ -14529,6 +16828,9 @@ our %unified_info = ( "doc/man/man3/OpenSSL_version.3" => [ "doc/man3/OpenSSL_version.pod" ], + "doc/man/man3/PBMAC1_get1_pbkdf2_param.3" => [ + "doc/man3/PBMAC1_get1_pbkdf2_param.pod" + ], "doc/man/man3/PEM_X509_INFO_read_bio_ex.3" => [ "doc/man3/PEM_X509_INFO_read_bio_ex.pod" ], @@ -14565,6 +16867,9 @@ our %unified_info = ( "doc/man/man3/PKCS12_SAFEBAG_get1_cert.3" => [ "doc/man3/PKCS12_SAFEBAG_get1_cert.pod" ], + "doc/man/man3/PKCS12_SAFEBAG_set0_attrs.3" => [ + "doc/man3/PKCS12_SAFEBAG_set0_attrs.pod" + ], "doc/man/man3/PKCS12_add1_attr_by_NID.3" => [ "doc/man3/PKCS12_add1_attr_by_NID.pod" ], @@ -14838,6 +17143,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set0_CA_list.3" => [ "doc/man3/SSL_CTX_set0_CA_list.pod" ], + "doc/man/man3/SSL_CTX_set1_cert_comp_preference.3" => [ + "doc/man3/SSL_CTX_set1_cert_comp_preference.pod" + ], "doc/man/man3/SSL_CTX_set1_curves.3" => [ "doc/man3/SSL_CTX_set1_curves.pod" ], @@ -14877,6 +17185,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_default_passwd_cb.3" => [ "doc/man3/SSL_CTX_set_default_passwd_cb.pod" ], + "doc/man/man3/SSL_CTX_set_domain_flags.3" => [ + "doc/man3/SSL_CTX_set_domain_flags.pod" + ], "doc/man/man3/SSL_CTX_set_generate_session_id.3" => [ "doc/man3/SSL_CTX_set_generate_session_id.pod" ], @@ -14898,6 +17209,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_msg_callback.3" => [ "doc/man3/SSL_CTX_set_msg_callback.pod" ], + "doc/man/man3/SSL_CTX_set_new_pending_conn_cb.3" => [ + "doc/man3/SSL_CTX_set_new_pending_conn_cb.pod" + ], "doc/man/man3/SSL_CTX_set_num_tickets.3" => [ "doc/man3/SSL_CTX_set_num_tickets.pod" ], @@ -15012,6 +17326,9 @@ our %unified_info = ( "doc/man/man3/SSL_accept.3" => [ "doc/man3/SSL_accept.pod" ], + "doc/man/man3/SSL_accept_stream.3" => [ + "doc/man3/SSL_accept_stream.pod" + ], "doc/man/man3/SSL_alert_type_string.3" => [ "doc/man3/SSL_alert_type_string.pod" ], @@ -15039,9 +17356,21 @@ our %unified_info = ( "doc/man/man3/SSL_free.3" => [ "doc/man3/SSL_free.pod" ], + "doc/man/man3/SSL_get0_connection.3" => [ + "doc/man3/SSL_get0_connection.pod" + ], + "doc/man/man3/SSL_get0_group_name.3" => [ + "doc/man3/SSL_get0_group_name.pod" + ], + "doc/man/man3/SSL_get0_peer_rpk.3" => [ + "doc/man3/SSL_get0_peer_rpk.pod" + ], "doc/man/man3/SSL_get0_peer_scts.3" => [ "doc/man3/SSL_get0_peer_scts.pod" ], + "doc/man/man3/SSL_get1_builtin_sigalgs.3" => [ + "doc/man3/SSL_get1_builtin_sigalgs.pod" + ], "doc/man/man3/SSL_get_SSL_CTX.3" => [ "doc/man3/SSL_get_SSL_CTX.pod" ], @@ -15057,6 +17386,9 @@ our %unified_info = ( "doc/man/man3/SSL_get_client_random.3" => [ "doc/man3/SSL_get_client_random.pod" ], + "doc/man/man3/SSL_get_conn_close_info.3" => [ + "doc/man3/SSL_get_conn_close_info.pod" + ], "doc/man/man3/SSL_get_current_cipher.3" => [ "doc/man3/SSL_get_current_cipher.pod" ], @@ -15066,12 +17398,18 @@ our %unified_info = ( "doc/man/man3/SSL_get_error.3" => [ "doc/man3/SSL_get_error.pod" ], + "doc/man/man3/SSL_get_event_timeout.3" => [ + "doc/man3/SSL_get_event_timeout.pod" + ], "doc/man/man3/SSL_get_extms_support.3" => [ "doc/man3/SSL_get_extms_support.pod" ], "doc/man/man3/SSL_get_fd.3" => [ "doc/man3/SSL_get_fd.pod" ], + "doc/man/man3/SSL_get_handshake_rtt.3" => [ + "doc/man3/SSL_get_handshake_rtt.pod" + ], "doc/man/man3/SSL_get_peer_cert_chain.3" => [ "doc/man3/SSL_get_peer_cert_chain.pod" ], @@ -15090,12 +17428,24 @@ our %unified_info = ( "doc/man/man3/SSL_get_rbio.3" => [ "doc/man3/SSL_get_rbio.pod" ], + "doc/man/man3/SSL_get_rpoll_descriptor.3" => [ + "doc/man3/SSL_get_rpoll_descriptor.pod" + ], "doc/man/man3/SSL_get_session.3" => [ "doc/man3/SSL_get_session.pod" ], "doc/man/man3/SSL_get_shared_sigalgs.3" => [ "doc/man3/SSL_get_shared_sigalgs.pod" ], + "doc/man/man3/SSL_get_stream_id.3" => [ + "doc/man3/SSL_get_stream_id.pod" + ], + "doc/man/man3/SSL_get_stream_read_state.3" => [ + "doc/man3/SSL_get_stream_read_state.pod" + ], + "doc/man/man3/SSL_get_value_uint.3" => [ + "doc/man3/SSL_get_value_uint.pod" + ], "doc/man/man3/SSL_get_verify_result.3" => [ "doc/man3/SSL_get_verify_result.pod" ], @@ -15105,9 +17455,15 @@ our %unified_info = ( "doc/man/man3/SSL_group_to_name.3" => [ "doc/man3/SSL_group_to_name.pod" ], + "doc/man/man3/SSL_handle_events.3" => [ + "doc/man3/SSL_handle_events.pod" + ], "doc/man/man3/SSL_in_init.3" => [ "doc/man3/SSL_in_init.pod" ], + "doc/man/man3/SSL_inject_net_dgram.3" => [ + "doc/man3/SSL_inject_net_dgram.pod" + ], "doc/man/man3/SSL_key_update.3" => [ "doc/man3/SSL_key_update.pod" ], @@ -15120,9 +17476,21 @@ our %unified_info = ( "doc/man/man3/SSL_new.3" => [ "doc/man3/SSL_new.pod" ], + "doc/man/man3/SSL_new_domain.3" => [ + "doc/man3/SSL_new_domain.pod" + ], + "doc/man/man3/SSL_new_listener.3" => [ + "doc/man3/SSL_new_listener.pod" + ], + "doc/man/man3/SSL_new_stream.3" => [ + "doc/man3/SSL_new_stream.pod" + ], "doc/man/man3/SSL_pending.3" => [ "doc/man3/SSL_pending.pod" ], + "doc/man/man3/SSL_poll.3" => [ + "doc/man3/SSL_poll.pod" + ], "doc/man/man3/SSL_read.3" => [ "doc/man3/SSL_read.pod" ], @@ -15138,24 +17506,45 @@ our %unified_info = ( "doc/man/man3/SSL_set1_host.3" => [ "doc/man3/SSL_set1_host.pod" ], + "doc/man/man3/SSL_set1_initial_peer_addr.3" => [ + "doc/man3/SSL_set1_initial_peer_addr.pod" + ], + "doc/man/man3/SSL_set1_server_cert_type.3" => [ + "doc/man3/SSL_set1_server_cert_type.pod" + ], "doc/man/man3/SSL_set_async_callback.3" => [ "doc/man3/SSL_set_async_callback.pod" ], "doc/man/man3/SSL_set_bio.3" => [ "doc/man3/SSL_set_bio.pod" ], + "doc/man/man3/SSL_set_blocking_mode.3" => [ + "doc/man3/SSL_set_blocking_mode.pod" + ], "doc/man/man3/SSL_set_connect_state.3" => [ "doc/man3/SSL_set_connect_state.pod" ], + "doc/man/man3/SSL_set_default_stream_mode.3" => [ + "doc/man3/SSL_set_default_stream_mode.pod" + ], "doc/man/man3/SSL_set_fd.3" => [ "doc/man3/SSL_set_fd.pod" ], + "doc/man/man3/SSL_set_incoming_stream_policy.3" => [ + "doc/man3/SSL_set_incoming_stream_policy.pod" + ], + "doc/man/man3/SSL_set_quic_tls_cbs.3" => [ + "doc/man3/SSL_set_quic_tls_cbs.pod" + ], "doc/man/man3/SSL_set_retry_verify.3" => [ "doc/man3/SSL_set_retry_verify.pod" ], "doc/man/man3/SSL_set_session.3" => [ "doc/man3/SSL_set_session.pod" ], + "doc/man/man3/SSL_set_session_secret_cb.3" => [ + "doc/man3/SSL_set_session_secret_cb.pod" + ], "doc/man/man3/SSL_set_shutdown.3" => [ "doc/man3/SSL_set_shutdown.pod" ], @@ -15168,6 +17557,12 @@ our %unified_info = ( "doc/man/man3/SSL_state_string.3" => [ "doc/man3/SSL_state_string.pod" ], + "doc/man/man3/SSL_stream_conclude.3" => [ + "doc/man3/SSL_stream_conclude.pod" + ], + "doc/man/man3/SSL_stream_reset.3" => [ + "doc/man3/SSL_stream_reset.pod" + ], "doc/man/man3/SSL_want.3" => [ "doc/man3/SSL_want.pod" ], @@ -15177,8 +17572,8 @@ our %unified_info = ( "doc/man/man3/TS_RESP_CTX_new.3" => [ "doc/man3/TS_RESP_CTX_new.pod" ], - "doc/man/man3/TS_VERIFY_CTX_set_certs.3" => [ - "doc/man3/TS_VERIFY_CTX_set_certs.pod" + "doc/man/man3/TS_VERIFY_CTX.3" => [ + "doc/man3/TS_VERIFY_CTX.pod" ], "doc/man/man3/UI_STRING.3" => [ "doc/man3/UI_STRING.pod" @@ -15198,6 +17593,21 @@ our %unified_info = ( "doc/man/man3/X509V3_set_ctx.3" => [ "doc/man3/X509V3_set_ctx.pod" ], + "doc/man/man3/X509_ACERT_add1_attr.3" => [ + "doc/man3/X509_ACERT_add1_attr.pod" + ], + "doc/man/man3/X509_ACERT_add_attr_nconf.3" => [ + "doc/man3/X509_ACERT_add_attr_nconf.pod" + ], + "doc/man/man3/X509_ACERT_get0_holder_baseCertId.3" => [ + "doc/man3/X509_ACERT_get0_holder_baseCertId.pod" + ], + "doc/man/man3/X509_ACERT_get_attr.3" => [ + "doc/man3/X509_ACERT_get_attr.pod" + ], + "doc/man/man3/X509_ACERT_print_ex.3" => [ + "doc/man3/X509_ACERT_print_ex.pod" + ], "doc/man/man3/X509_ALGOR_dup.3" => [ "doc/man3/X509_ALGOR_dup.pod" ], @@ -15246,6 +17656,9 @@ our %unified_info = ( "doc/man/man3/X509_SIG_get0.3" => [ "doc/man3/X509_SIG_get0.pod" ], + "doc/man/man3/X509_STORE_CTX_get_by_subject.3" => [ + "doc/man3/X509_STORE_CTX_get_by_subject.pod" + ], "doc/man/man3/X509_STORE_CTX_get_error.3" => [ "doc/man3/X509_STORE_CTX_get_error.pod" ], @@ -15312,6 +17725,9 @@ our %unified_info = ( "doc/man/man3/X509_get0_uids.3" => [ "doc/man3/X509_get0_uids.pod" ], + "doc/man/man3/X509_get_default_cert_file.3" => [ + "doc/man3/X509_get_default_cert_file.pod" + ], "doc/man/man3/X509_get_extension_flags.3" => [ "doc/man3/X509_get_extension_flags.pod" ], @@ -15435,9 +17851,15 @@ our %unified_info = ( "doc/man/man7/EVP_CIPHER-SM4.7" => [ "doc/man7/EVP_CIPHER-SM4.pod" ], + "doc/man/man7/EVP_KDF-ARGON2.7" => [ + "doc/man7/EVP_KDF-ARGON2.pod" + ], "doc/man/man7/EVP_KDF-HKDF.7" => [ "doc/man7/EVP_KDF-HKDF.pod" ], + "doc/man/man7/EVP_KDF-HMAC-DRBG.7" => [ + "doc/man7/EVP_KDF-HMAC-DRBG.pod" + ], "doc/man/man7/EVP_KDF-KB.7" => [ "doc/man7/EVP_KDF-KB.pod" ], @@ -15453,6 +17875,9 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-PKCS12KDF.7" => [ "doc/man7/EVP_KDF-PKCS12KDF.pod" ], + "doc/man/man7/EVP_KDF-PVKKDF.7" => [ + "doc/man7/EVP_KDF-PVKKDF.pod" + ], "doc/man/man7/EVP_KDF-SCRYPT.7" => [ "doc/man7/EVP_KDF-SCRYPT.pod" ], @@ -15477,9 +17902,18 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-X963.7" => [ "doc/man7/EVP_KDF-X963.pod" ], + "doc/man/man7/EVP_KEM-EC.7" => [ + "doc/man7/EVP_KEM-EC.pod" + ], + "doc/man/man7/EVP_KEM-ML-KEM.7" => [ + "doc/man7/EVP_KEM-ML-KEM.pod" + ], "doc/man/man7/EVP_KEM-RSA.7" => [ "doc/man7/EVP_KEM-RSA.pod" ], + "doc/man/man7/EVP_KEM-X25519.7" => [ + "doc/man7/EVP_KEM-X25519.pod" + ], "doc/man/man7/EVP_KEYEXCH-DH.7" => [ "doc/man7/EVP_KEYEXCH-DH.pod" ], @@ -15513,6 +17947,9 @@ our %unified_info = ( "doc/man/man7/EVP_MD-BLAKE2.7" => [ "doc/man7/EVP_MD-BLAKE2.pod" ], + "doc/man/man7/EVP_MD-KECCAK.7" => [ + "doc/man7/EVP_MD-KECCAK.pod" + ], "doc/man/man7/EVP_MD-MD2.7" => [ "doc/man7/EVP_MD-MD2.pod" ], @@ -15570,15 +18007,27 @@ our %unified_info = ( "doc/man/man7/EVP_PKEY-HMAC.7" => [ "doc/man7/EVP_PKEY-HMAC.pod" ], + "doc/man/man7/EVP_PKEY-ML-DSA.7" => [ + "doc/man7/EVP_PKEY-ML-DSA.pod" + ], + "doc/man/man7/EVP_PKEY-ML-KEM.7" => [ + "doc/man7/EVP_PKEY-ML-KEM.pod" + ], "doc/man/man7/EVP_PKEY-RSA.7" => [ "doc/man7/EVP_PKEY-RSA.pod" ], + "doc/man/man7/EVP_PKEY-SLH-DSA.7" => [ + "doc/man7/EVP_PKEY-SLH-DSA.pod" + ], "doc/man/man7/EVP_PKEY-SM2.7" => [ "doc/man7/EVP_PKEY-SM2.pod" ], "doc/man/man7/EVP_PKEY-X25519.7" => [ "doc/man7/EVP_PKEY-X25519.pod" ], + "doc/man/man7/EVP_RAND-CRNG-TEST.7" => [ + "doc/man7/EVP_RAND-CRNG-TEST.pod" + ], "doc/man/man7/EVP_RAND-CTR-DRBG.7" => [ "doc/man7/EVP_RAND-CTR-DRBG.pod" ], @@ -15588,6 +18037,9 @@ our %unified_info = ( "doc/man/man7/EVP_RAND-HMAC-DRBG.7" => [ "doc/man7/EVP_RAND-HMAC-DRBG.pod" ], + "doc/man/man7/EVP_RAND-JITTER.7" => [ + "doc/man7/EVP_RAND-JITTER.pod" + ], "doc/man/man7/EVP_RAND-SEED-SRC.7" => [ "doc/man7/EVP_RAND-SEED-SRC.pod" ], @@ -15609,9 +18061,15 @@ our %unified_info = ( "doc/man/man7/EVP_SIGNATURE-HMAC.7" => [ "doc/man7/EVP_SIGNATURE-HMAC.pod" ], + "doc/man/man7/EVP_SIGNATURE-ML-DSA.7" => [ + "doc/man7/EVP_SIGNATURE-ML-DSA.pod" + ], "doc/man/man7/EVP_SIGNATURE-RSA.7" => [ "doc/man7/EVP_SIGNATURE-RSA.pod" ], + "doc/man/man7/EVP_SIGNATURE-SLH-DSA.7" => [ + "doc/man7/EVP_SIGNATURE-SLH-DSA.pod" + ], "doc/man/man7/OSSL_PROVIDER-FIPS.7" => [ "doc/man7/OSSL_PROVIDER-FIPS.pod" ], @@ -15627,6 +18085,9 @@ our %unified_info = ( "doc/man/man7/OSSL_PROVIDER-null.7" => [ "doc/man7/OSSL_PROVIDER-null.pod" ], + "doc/man/man7/OSSL_STORE-winstore.7" => [ + "doc/man7/OSSL_STORE-winstore.pod" + ], "doc/man/man7/RAND.7" => [ "doc/man7/RAND.pod" ], @@ -15639,9 +18100,6 @@ our %unified_info = ( "doc/man/man7/bio.7" => [ "doc/man7/bio.pod" ], - "doc/man/man7/crypto.7" => [ - "doc/man7/crypto.pod" - ], "doc/man/man7/ct.7" => [ "doc/man7/ct.pod" ], @@ -15672,9 +18130,6 @@ our %unified_info = ( "doc/man/man7/life_cycle-rand.7" => [ "doc/man7/life_cycle-rand.pod" ], - "doc/man/man7/migration_guide.7" => [ - "doc/man7/migration_guide.pod" - ], "doc/man/man7/openssl-core.h.7" => [ "doc/man7/openssl-core.h.pod" ], @@ -15690,12 +18145,66 @@ our %unified_info = ( "doc/man/man7/openssl-glossary.7" => [ "doc/man7/openssl-glossary.pod" ], + "doc/man/man7/openssl-qlog.7" => [ + "doc/man7/openssl-qlog.pod" + ], + "doc/man/man7/openssl-quic-concurrency.7" => [ + "doc/man7/openssl-quic-concurrency.pod" + ], + "doc/man/man7/openssl-quic.7" => [ + "doc/man7/openssl-quic.pod" + ], "doc/man/man7/openssl-threads.7" => [ "doc/man7/openssl-threads.pod" ], "doc/man/man7/openssl_user_macros.7" => [ "doc/man7/openssl_user_macros.pod" ], + "doc/man/man7/ossl-guide-introduction.7" => [ + "doc/man7/ossl-guide-introduction.pod" + ], + "doc/man/man7/ossl-guide-libcrypto-introduction.7" => [ + "doc/man7/ossl-guide-libcrypto-introduction.pod" + ], + "doc/man/man7/ossl-guide-libraries-introduction.7" => [ + "doc/man7/ossl-guide-libraries-introduction.pod" + ], + "doc/man/man7/ossl-guide-libssl-introduction.7" => [ + "doc/man7/ossl-guide-libssl-introduction.pod" + ], + "doc/man/man7/ossl-guide-migration.7" => [ + "doc/man7/ossl-guide-migration.pod" + ], + "doc/man/man7/ossl-guide-quic-client-block.7" => [ + "doc/man7/ossl-guide-quic-client-block.pod" + ], + "doc/man/man7/ossl-guide-quic-client-non-block.7" => [ + "doc/man7/ossl-guide-quic-client-non-block.pod" + ], + "doc/man/man7/ossl-guide-quic-introduction.7" => [ + "doc/man7/ossl-guide-quic-introduction.pod" + ], + "doc/man/man7/ossl-guide-quic-multi-stream.7" => [ + "doc/man7/ossl-guide-quic-multi-stream.pod" + ], + "doc/man/man7/ossl-guide-quic-server-block.7" => [ + "doc/man7/ossl-guide-quic-server-block.pod" + ], + "doc/man/man7/ossl-guide-quic-server-non-block.7" => [ + "doc/man7/ossl-guide-quic-server-non-block.pod" + ], + "doc/man/man7/ossl-guide-tls-client-block.7" => [ + "doc/man7/ossl-guide-tls-client-block.pod" + ], + "doc/man/man7/ossl-guide-tls-client-non-block.7" => [ + "doc/man7/ossl-guide-tls-client-non-block.pod" + ], + "doc/man/man7/ossl-guide-tls-introduction.7" => [ + "doc/man7/ossl-guide-tls-introduction.pod" + ], + "doc/man/man7/ossl-guide-tls-server-block.7" => [ + "doc/man7/ossl-guide-tls-server-block.pod" + ], "doc/man/man7/ossl_store-file.7" => [ "doc/man7/ossl_store-file.pod" ], @@ -15750,6 +18259,9 @@ our %unified_info = ( "doc/man/man7/provider-signature.7" => [ "doc/man7/provider-signature.pod" ], + "doc/man/man7/provider-skeymgmt.7" => [ + "doc/man7/provider-skeymgmt.pod" + ], "doc/man/man7/provider-storemgmt.7" => [ "doc/man7/provider-storemgmt.pod" ], @@ -15759,9 +18271,6 @@ our %unified_info = ( "doc/man/man7/proxy-certificates.7" => [ "doc/man7/proxy-certificates.pod" ], - "doc/man/man7/ssl.7" => [ - "doc/man7/ssl.pod" - ], "doc/man/man7/x509.7" => [ "doc/man7/x509.pod" ], @@ -15897,6 +18406,9 @@ our %unified_info = ( "doc/man1/openssl-sess_id.pod" => [ "doc/man1/openssl-sess_id.pod.in" ], + "doc/man1/openssl-skeyutl.pod" => [ + "doc/man1/openssl-skeyutl.pod.in" + ], "doc/man1/openssl-smime.pod" => [ "doc/man1/openssl-smime.pod.in" ], @@ -15933,12 +18445,30 @@ our %unified_info = ( "engines/e_padlock-x86_64.s" => [ "engines/asm/e_padlock-x86_64.pl" ], + "exporters/OpenSSLConfig.cmake" => [ + "exporters/cmake/OpenSSLConfig.cmake.in" + ], + "exporters/OpenSSLConfigVersion.cmake" => [ + "exporters/cmake/OpenSSLConfigVersion.cmake.in" + ], + "exporters/libcrypto.pc" => [ + "exporters/pkg-config/libcrypto.pc.in" + ], + "exporters/libssl.pc" => [ + "exporters/pkg-config/libssl.pc.in" + ], + "exporters/openssl.pc" => [ + "exporters/pkg-config/openssl.pc.in" + ], "include/crypto/bn_conf.h" => [ "include/crypto/bn_conf.h.in" ], "include/crypto/dso_conf.h" => [ "include/crypto/dso_conf.h.in" ], + "include/internal/param_names.h" => [ + "include/internal/param_names.h.in" + ], "include/openssl/asn1.h" => [ "include/openssl/asn1.h.in" ], @@ -15954,12 +18484,18 @@ our %unified_info = ( "include/openssl/cms.h" => [ "include/openssl/cms.h.in" ], + "include/openssl/comp.h" => [ + "include/openssl/comp.h.in" + ], "include/openssl/conf.h" => [ "include/openssl/conf.h.in" ], "include/openssl/configuration.h" => [ "include/openssl/configuration.h.in" ], + "include/openssl/core_names.h" => [ + "include/openssl/core_names.h.in" + ], "include/openssl/crmf.h" => [ "include/openssl/crmf.h.in" ], @@ -16008,20 +18544,47 @@ our %unified_info = ( "include/openssl/x509.h" => [ "include/openssl/x509.h.in" ], + "include/openssl/x509_acert.h" => [ + "include/openssl/x509_acert.h.in" + ], "include/openssl/x509_vfy.h" => [ "include/openssl/x509_vfy.h.in" ], "include/openssl/x509v3.h" => [ "include/openssl/x509v3.h.in" ], + "installdata.pm" => [ + "util/mkinstallvars.pl", + "\"PREFIX=\$(INSTALLTOP)\"", + "BINDIR=bin", + "\"LIBDIR=\$(LIBDIR)\"", + "\"libdir=\$(libdir)\"", + "INCLUDEDIR=include", + "APPLINKDIR=include/openssl", + "\"ENGINESDIR=\$(ENGINESDIR)\"", + "\"MODULESDIR=\$(MODULESDIR)\"", + "\"PKGCONFIGDIR=\$(PKGCONFIGDIR)\"", + "\"CMAKECONFIGDIR=\$(CMAKECONFIGDIR)\"", + "\"LDLIBS=\$(LIB_EX_LIBS)\"", + "\"VERSION=\$(VERSION)\"" + ], "libcrypto.ld" => [ "util/libcrypto.num", "libcrypto" ], + "libcrypto.pc" => [ + "exporters/pkg-config/libcrypto.pc.in" + ], "libssl.ld" => [ "util/libssl.num", "libssl" ], + "libssl.pc" => [ + "exporters/pkg-config/libssl.pc.in" + ], + "openssl.pc" => [ + "exporters/pkg-config/openssl.pc.in" + ], "providers/common/der/der_digests_gen.c" => [ "providers/common/der/der_digests_gen.c.in" ], @@ -16034,9 +18597,15 @@ our %unified_info = ( "providers/common/der/der_ecx_gen.c" => [ "providers/common/der/der_ecx_gen.c.in" ], + "providers/common/der/der_ml_dsa_gen.c" => [ + "providers/common/der/der_ml_dsa_gen.c.in" + ], "providers/common/der/der_rsa_gen.c" => [ "providers/common/der/der_rsa_gen.c.in" ], + "providers/common/der/der_slh_dsa_gen.c" => [ + "providers/common/der/der_slh_dsa_gen.c.in" + ], "providers/common/der/der_sm2_gen.c" => [ "providers/common/der/der_sm2_gen.c.in" ], @@ -16055,9 +18624,15 @@ our %unified_info = ( "providers/common/include/prov/der_ecx.h" => [ "providers/common/include/prov/der_ecx.h.in" ], + "providers/common/include/prov/der_ml_dsa.h" => [ + "providers/common/include/prov/der_ml_dsa.h.in" + ], "providers/common/include/prov/der_rsa.h" => [ "providers/common/include/prov/der_rsa.h.in" ], + "providers/common/include/prov/der_slh_dsa.h" => [ + "providers/common/include/prov/der_slh_dsa.h.in" + ], "providers/common/include/prov/der_sm2.h" => [ "providers/common/include/prov/der_sm2.h.in" ], @@ -16099,6 +18674,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "buffer" ], + "test/buildtest_byteorder.c" => [ + "test/generate_buildtest.pl", + "byteorder" + ], "test/buildtest_camellia.c" => [ "test/generate_buildtest.pl", "camellia" @@ -16131,10 +18710,6 @@ our %unified_info = ( "test/generate_buildtest.pl", "core_dispatch" ], - "test/buildtest_core_names.c" => [ - "test/generate_buildtest.pl", - "core_names" - ], "test/buildtest_core_object.c" => [ "test/generate_buildtest.pl", "core_object" @@ -16167,6 +18742,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "e_os2" ], + "test/buildtest_e_ostime.c" => [ + "test/generate_buildtest.pl", + "e_ostime" + ], "test/buildtest_ebcdic.c" => [ "test/generate_buildtest.pl", "ebcdic" @@ -16203,6 +18782,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "hmac" ], + "test/buildtest_hpke.c" => [ + "test/generate_buildtest.pl", + "hpke" + ], "test/buildtest_http.c" => [ "test/generate_buildtest.pl", "http" @@ -16211,6 +18794,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "idea" ], + "test/buildtest_indicator.c" => [ + "test/generate_buildtest.pl", + "indicator" + ], "test/buildtest_kdf.c" => [ "test/generate_buildtest.pl", "kdf" @@ -16231,6 +18818,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "mdc2" ], + "test/buildtest_ml_kem.c" => [ + "test/generate_buildtest.pl", + "ml_kem" + ], "test/buildtest_modes.c" => [ "test/generate_buildtest.pl", "modes" @@ -16271,6 +18862,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "provider" ], + "test/buildtest_quic.c" => [ + "test/generate_buildtest.pl", + "quic" + ], "test/buildtest_rand.c" => [ "test/generate_buildtest.pl", "rand" @@ -16327,6 +18922,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "symhacks" ], + "test/buildtest_thread.c" => [ + "test/generate_buildtest.pl", + "thread" + ], "test/buildtest_tls1.c" => [ "test/generate_buildtest.pl", "tls1" @@ -16407,6 +19006,7 @@ our %unified_info = ( "doc/html/man1/openssl-s_server.html", "doc/html/man1/openssl-s_time.html", "doc/html/man1/openssl-sess_id.html", + "doc/html/man1/openssl-skeyutl.html", "doc/html/man1/openssl-smime.html", "doc/html/man1/openssl-speed.html", "doc/html/man1/openssl-spkac.html", @@ -16456,6 +19056,7 @@ our %unified_info = ( "doc/html/man3/BIO_find_type.html", "doc/html/man3/BIO_get_data.html", "doc/html/man3/BIO_get_ex_new_index.html", + "doc/html/man3/BIO_get_rpoll_descriptor.html", "doc/html/man3/BIO_meth_new.html", "doc/html/man3/BIO_new.html", "doc/html/man3/BIO_new_CMS.html", @@ -16468,11 +19069,13 @@ our %unified_info = ( "doc/html/man3/BIO_s_connect.html", "doc/html/man3/BIO_s_core.html", "doc/html/man3/BIO_s_datagram.html", + "doc/html/man3/BIO_s_dgram_pair.html", "doc/html/man3/BIO_s_fd.html", "doc/html/man3/BIO_s_file.html", "doc/html/man3/BIO_s_mem.html", "doc/html/man3/BIO_s_null.html", "doc/html/man3/BIO_s_socket.html", + "doc/html/man3/BIO_sendmmsg.html", "doc/html/man3/BIO_set_callback.html", "doc/html/man3/BIO_should_retry.html", "doc/html/man3/BIO_socket_wait.html", @@ -16497,6 +19100,7 @@ our %unified_info = ( "doc/html/man3/BN_swap.html", "doc/html/man3/BN_zero.html", "doc/html/man3/BUF_MEM_new.html", + "doc/html/man3/CMAC_CTX.html", "doc/html/man3/CMS_EncryptedData_decrypt.html", "doc/html/man3/CMS_EncryptedData_encrypt.html", "doc/html/man3/CMS_EnvelopedData_create.html", @@ -16519,6 +19123,7 @@ our %unified_info = ( "doc/html/man3/CMS_uncompress.html", "doc/html/man3/CMS_verify.html", "doc/html/man3/CMS_verify_receipt.html", + "doc/html/man3/COMP_CTX_new.html", "doc/html/man3/CONF_modules_free.html", "doc/html/man3/CONF_modules_load_file.html", "doc/html/man3/CRYPTO_THREAD_run_once.html", @@ -16552,6 +19157,8 @@ our %unified_info = ( "doc/html/man3/DSA_size.html", "doc/html/man3/DTLS_get_data_mtu.html", "doc/html/man3/DTLS_set_timer_cb.html", + "doc/html/man3/DTLSv1_get_timeout.html", + "doc/html/man3/DTLSv1_handle_timeout.html", "doc/html/man3/DTLSv1_listen.html", "doc/html/man3/ECDSA_SIG_new.html", "doc/html/man3/ECDSA_sign.html", @@ -16598,6 +19205,7 @@ our %unified_info = ( "doc/html/man3/EVP_PKEY_CTX_ctrl.html", "doc/html/man3/EVP_PKEY_CTX_get0_libctx.html", "doc/html/man3/EVP_PKEY_CTX_get0_pkey.html", + "doc/html/man3/EVP_PKEY_CTX_get_algor.html", "doc/html/man3/EVP_PKEY_CTX_new.html", "doc/html/man3/EVP_PKEY_CTX_set1_pbe_pass.html", "doc/html/man3/EVP_PKEY_CTX_set_hkdf_md.html", @@ -16637,6 +19245,8 @@ our %unified_info = ( "doc/html/man3/EVP_PKEY_verify_recover.html", "doc/html/man3/EVP_RAND.html", "doc/html/man3/EVP_SIGNATURE.html", + "doc/html/man3/EVP_SKEY.html", + "doc/html/man3/EVP_SKEYMGMT.html", "doc/html/man3/EVP_SealInit.html", "doc/html/man3/EVP_SignInit.html", "doc/html/man3/EVP_VerifyInit.html", @@ -16666,6 +19276,7 @@ our %unified_info = ( "doc/html/man3/EVP_sm3.html", "doc/html/man3/EVP_sm4_cbc.html", "doc/html/man3/EVP_whirlpool.html", + "doc/html/man3/GENERAL_NAME.html", "doc/html/man3/HMAC.html", "doc/html/man3/MD5.html", "doc/html/man3/MDC2_Init.html", @@ -16690,14 +19301,18 @@ our %unified_info = ( "doc/html/man3/OPENSSL_init_ssl.html", "doc/html/man3/OPENSSL_instrument_bus.html", "doc/html/man3/OPENSSL_load_builtin_modules.html", + "doc/html/man3/OPENSSL_load_u16_le.html", "doc/html/man3/OPENSSL_malloc.html", + "doc/html/man3/OPENSSL_riscvcap.html", "doc/html/man3/OPENSSL_s390xcap.html", "doc/html/man3/OPENSSL_secure_malloc.html", "doc/html/man3/OPENSSL_strcasecmp.html", "doc/html/man3/OSSL_ALGORITHM.html", "doc/html/man3/OSSL_CALLBACK.html", + "doc/html/man3/OSSL_CMP_ATAV_set0.html", "doc/html/man3/OSSL_CMP_CTX_new.html", "doc/html/man3/OSSL_CMP_HDR_get0_transactionID.html", + "doc/html/man3/OSSL_CMP_ITAV_new_caCerts.html", "doc/html/man3/OSSL_CMP_ITAV_set0.html", "doc/html/man3/OSSL_CMP_MSG_get0_header.html", "doc/html/man3/OSSL_CMP_MSG_http_perform.html", @@ -16721,18 +19336,27 @@ our %unified_info = ( "doc/html/man3/OSSL_ENCODER_CTX.html", "doc/html/man3/OSSL_ENCODER_CTX_new_for_pkey.html", "doc/html/man3/OSSL_ENCODER_to_bio.html", + "doc/html/man3/OSSL_ERR_STATE_save.html", "doc/html/man3/OSSL_ESS_check_signing_certs.html", + "doc/html/man3/OSSL_GENERAL_NAMES_print.html", + "doc/html/man3/OSSL_HPKE_CTX_new.html", "doc/html/man3/OSSL_HTTP_REQ_CTX.html", "doc/html/man3/OSSL_HTTP_parse_url.html", "doc/html/man3/OSSL_HTTP_transfer.html", + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX.html", + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX_print.html", + "doc/html/man3/OSSL_INDICATOR_set_callback.html", "doc/html/man3/OSSL_ITEM.html", "doc/html/man3/OSSL_LIB_CTX.html", + "doc/html/man3/OSSL_LIB_CTX_set_conf_diagnostics.html", "doc/html/man3/OSSL_PARAM.html", "doc/html/man3/OSSL_PARAM_BLD.html", "doc/html/man3/OSSL_PARAM_allocate_from_text.html", "doc/html/man3/OSSL_PARAM_dup.html", "doc/html/man3/OSSL_PARAM_int.html", + "doc/html/man3/OSSL_PARAM_print_to_bio.html", "doc/html/man3/OSSL_PROVIDER.html", + "doc/html/man3/OSSL_QUIC_client_method.html", "doc/html/man3/OSSL_SELF_TEST_new.html", "doc/html/man3/OSSL_SELF_TEST_set_callback.html", "doc/html/man3/OSSL_STORE_INFO.html", @@ -16741,11 +19365,13 @@ our %unified_info = ( "doc/html/man3/OSSL_STORE_attach.html", "doc/html/man3/OSSL_STORE_expect.html", "doc/html/man3/OSSL_STORE_open.html", + "doc/html/man3/OSSL_sleep.html", "doc/html/man3/OSSL_trace_enabled.html", "doc/html/man3/OSSL_trace_get_category_num.html", "doc/html/man3/OSSL_trace_set_channel.html", "doc/html/man3/OpenSSL_add_all_algorithms.html", "doc/html/man3/OpenSSL_version.html", + "doc/html/man3/PBMAC1_get1_pbkdf2_param.html", "doc/html/man3/PEM_X509_INFO_read_bio_ex.html", "doc/html/man3/PEM_bytes_read_bio.html", "doc/html/man3/PEM_read.html", @@ -16758,6 +19384,7 @@ our %unified_info = ( "doc/html/man3/PKCS12_SAFEBAG_create_cert.html", "doc/html/man3/PKCS12_SAFEBAG_get0_attrs.html", "doc/html/man3/PKCS12_SAFEBAG_get1_cert.html", + "doc/html/man3/PKCS12_SAFEBAG_set0_attrs.html", "doc/html/man3/PKCS12_add1_attr_by_NID.html", "doc/html/man3/PKCS12_add_CSPName_asc.html", "doc/html/man3/PKCS12_add_cert.html", @@ -16849,6 +19476,7 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_sess_set_get_cb.html", "doc/html/man3/SSL_CTX_sessions.html", "doc/html/man3/SSL_CTX_set0_CA_list.html", + "doc/html/man3/SSL_CTX_set1_cert_comp_preference.html", "doc/html/man3/SSL_CTX_set1_curves.html", "doc/html/man3/SSL_CTX_set1_sigalgs.html", "doc/html/man3/SSL_CTX_set1_verify_cert_store.html", @@ -16862,6 +19490,7 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_ct_validation_callback.html", "doc/html/man3/SSL_CTX_set_ctlog_list_file.html", "doc/html/man3/SSL_CTX_set_default_passwd_cb.html", + "doc/html/man3/SSL_CTX_set_domain_flags.html", "doc/html/man3/SSL_CTX_set_generate_session_id.html", "doc/html/man3/SSL_CTX_set_info_callback.html", "doc/html/man3/SSL_CTX_set_keylog_callback.html", @@ -16869,6 +19498,7 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_min_proto_version.html", "doc/html/man3/SSL_CTX_set_mode.html", "doc/html/man3/SSL_CTX_set_msg_callback.html", + "doc/html/man3/SSL_CTX_set_new_pending_conn_cb.html", "doc/html/man3/SSL_CTX_set_num_tickets.html", "doc/html/man3/SSL_CTX_set_options.html", "doc/html/man3/SSL_CTX_set_psk_client_callback.html", @@ -16907,6 +19537,7 @@ our %unified_info = ( "doc/html/man3/SSL_SESSION_print.html", "doc/html/man3/SSL_SESSION_set1_id.html", "doc/html/man3/SSL_accept.html", + "doc/html/man3/SSL_accept_stream.html", "doc/html/man3/SSL_alert_type_string.html", "doc/html/man3/SSL_alloc_buffers.html", "doc/html/man3/SSL_check_chain.html", @@ -16916,59 +19547,90 @@ our %unified_info = ( "doc/html/man3/SSL_export_keying_material.html", "doc/html/man3/SSL_extension_supported.html", "doc/html/man3/SSL_free.html", + "doc/html/man3/SSL_get0_connection.html", + "doc/html/man3/SSL_get0_group_name.html", + "doc/html/man3/SSL_get0_peer_rpk.html", "doc/html/man3/SSL_get0_peer_scts.html", + "doc/html/man3/SSL_get1_builtin_sigalgs.html", "doc/html/man3/SSL_get_SSL_CTX.html", "doc/html/man3/SSL_get_all_async_fds.html", "doc/html/man3/SSL_get_certificate.html", "doc/html/man3/SSL_get_ciphers.html", "doc/html/man3/SSL_get_client_random.html", + "doc/html/man3/SSL_get_conn_close_info.html", "doc/html/man3/SSL_get_current_cipher.html", "doc/html/man3/SSL_get_default_timeout.html", "doc/html/man3/SSL_get_error.html", + "doc/html/man3/SSL_get_event_timeout.html", "doc/html/man3/SSL_get_extms_support.html", "doc/html/man3/SSL_get_fd.html", + "doc/html/man3/SSL_get_handshake_rtt.html", "doc/html/man3/SSL_get_peer_cert_chain.html", "doc/html/man3/SSL_get_peer_certificate.html", "doc/html/man3/SSL_get_peer_signature_nid.html", "doc/html/man3/SSL_get_peer_tmp_key.html", "doc/html/man3/SSL_get_psk_identity.html", "doc/html/man3/SSL_get_rbio.html", + "doc/html/man3/SSL_get_rpoll_descriptor.html", "doc/html/man3/SSL_get_session.html", "doc/html/man3/SSL_get_shared_sigalgs.html", + "doc/html/man3/SSL_get_stream_id.html", + "doc/html/man3/SSL_get_stream_read_state.html", + "doc/html/man3/SSL_get_value_uint.html", "doc/html/man3/SSL_get_verify_result.html", "doc/html/man3/SSL_get_version.html", "doc/html/man3/SSL_group_to_name.html", + "doc/html/man3/SSL_handle_events.html", "doc/html/man3/SSL_in_init.html", + "doc/html/man3/SSL_inject_net_dgram.html", "doc/html/man3/SSL_key_update.html", "doc/html/man3/SSL_library_init.html", "doc/html/man3/SSL_load_client_CA_file.html", "doc/html/man3/SSL_new.html", + "doc/html/man3/SSL_new_domain.html", + "doc/html/man3/SSL_new_listener.html", + "doc/html/man3/SSL_new_stream.html", "doc/html/man3/SSL_pending.html", + "doc/html/man3/SSL_poll.html", "doc/html/man3/SSL_read.html", "doc/html/man3/SSL_read_early_data.html", "doc/html/man3/SSL_rstate_string.html", "doc/html/man3/SSL_session_reused.html", "doc/html/man3/SSL_set1_host.html", + "doc/html/man3/SSL_set1_initial_peer_addr.html", + "doc/html/man3/SSL_set1_server_cert_type.html", "doc/html/man3/SSL_set_async_callback.html", "doc/html/man3/SSL_set_bio.html", + "doc/html/man3/SSL_set_blocking_mode.html", "doc/html/man3/SSL_set_connect_state.html", + "doc/html/man3/SSL_set_default_stream_mode.html", "doc/html/man3/SSL_set_fd.html", + "doc/html/man3/SSL_set_incoming_stream_policy.html", + "doc/html/man3/SSL_set_quic_tls_cbs.html", "doc/html/man3/SSL_set_retry_verify.html", "doc/html/man3/SSL_set_session.html", + "doc/html/man3/SSL_set_session_secret_cb.html", "doc/html/man3/SSL_set_shutdown.html", "doc/html/man3/SSL_set_verify_result.html", "doc/html/man3/SSL_shutdown.html", "doc/html/man3/SSL_state_string.html", + "doc/html/man3/SSL_stream_conclude.html", + "doc/html/man3/SSL_stream_reset.html", "doc/html/man3/SSL_want.html", "doc/html/man3/SSL_write.html", "doc/html/man3/TS_RESP_CTX_new.html", - "doc/html/man3/TS_VERIFY_CTX_set_certs.html", + "doc/html/man3/TS_VERIFY_CTX.html", "doc/html/man3/UI_STRING.html", "doc/html/man3/UI_UTIL_read_pw.html", "doc/html/man3/UI_create_method.html", "doc/html/man3/UI_new.html", "doc/html/man3/X509V3_get_d2i.html", "doc/html/man3/X509V3_set_ctx.html", + "doc/html/man3/X509_ACERT_add1_attr.html", + "doc/html/man3/X509_ACERT_add_attr_nconf.html", + "doc/html/man3/X509_ACERT_get0_holder_baseCertId.html", + "doc/html/man3/X509_ACERT_get_attr.html", + "doc/html/man3/X509_ACERT_print_ex.html", "doc/html/man3/X509_ALGOR_dup.html", "doc/html/man3/X509_ATTRIBUTE.html", "doc/html/man3/X509_CRL_get0_by_serial.html", @@ -16985,6 +19647,7 @@ our %unified_info = ( "doc/html/man3/X509_REQ_get_attr.html", "doc/html/man3/X509_REQ_get_extensions.html", "doc/html/man3/X509_SIG_get0.html", + "doc/html/man3/X509_STORE_CTX_get_by_subject.html", "doc/html/man3/X509_STORE_CTX_get_error.html", "doc/html/man3/X509_STORE_CTX_new.html", "doc/html/man3/X509_STORE_CTX_set_verify_cb.html", @@ -17007,6 +19670,7 @@ our %unified_info = ( "doc/html/man3/X509_get0_notBefore.html", "doc/html/man3/X509_get0_signature.html", "doc/html/man3/X509_get0_uids.html", + "doc/html/man3/X509_get_default_cert_file.html", "doc/html/man3/X509_get_extension_flags.html", "doc/html/man3/X509_get_pubkey.html", "doc/html/man3/X509_get_serialNumber.html", @@ -17052,12 +19716,15 @@ our %unified_info = ( "doc/html/man7/EVP_CIPHER-RC5.html", "doc/html/man7/EVP_CIPHER-SEED.html", "doc/html/man7/EVP_CIPHER-SM4.html", + "doc/html/man7/EVP_KDF-ARGON2.html", "doc/html/man7/EVP_KDF-HKDF.html", + "doc/html/man7/EVP_KDF-HMAC-DRBG.html", "doc/html/man7/EVP_KDF-KB.html", "doc/html/man7/EVP_KDF-KRB5KDF.html", "doc/html/man7/EVP_KDF-PBKDF1.html", "doc/html/man7/EVP_KDF-PBKDF2.html", "doc/html/man7/EVP_KDF-PKCS12KDF.html", + "doc/html/man7/EVP_KDF-PVKKDF.html", "doc/html/man7/EVP_KDF-SCRYPT.html", "doc/html/man7/EVP_KDF-SS.html", "doc/html/man7/EVP_KDF-SSHKDF.html", @@ -17066,7 +19733,10 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-X942-ASN1.html", "doc/html/man7/EVP_KDF-X942-CONCAT.html", "doc/html/man7/EVP_KDF-X963.html", + "doc/html/man7/EVP_KEM-EC.html", + "doc/html/man7/EVP_KEM-ML-KEM.html", "doc/html/man7/EVP_KEM-RSA.html", + "doc/html/man7/EVP_KEM-X25519.html", "doc/html/man7/EVP_KEYEXCH-DH.html", "doc/html/man7/EVP_KEYEXCH-ECDH.html", "doc/html/man7/EVP_KEYEXCH-X25519.html", @@ -17078,6 +19748,7 @@ our %unified_info = ( "doc/html/man7/EVP_MAC-Poly1305.html", "doc/html/man7/EVP_MAC-Siphash.html", "doc/html/man7/EVP_MD-BLAKE2.html", + "doc/html/man7/EVP_MD-KECCAK.html", "doc/html/man7/EVP_MD-MD2.html", "doc/html/man7/EVP_MD-MD4.html", "doc/html/man7/EVP_MD-MD5-SHA1.html", @@ -17097,12 +19768,17 @@ our %unified_info = ( "doc/html/man7/EVP_PKEY-EC.html", "doc/html/man7/EVP_PKEY-FFC.html", "doc/html/man7/EVP_PKEY-HMAC.html", + "doc/html/man7/EVP_PKEY-ML-DSA.html", + "doc/html/man7/EVP_PKEY-ML-KEM.html", "doc/html/man7/EVP_PKEY-RSA.html", + "doc/html/man7/EVP_PKEY-SLH-DSA.html", "doc/html/man7/EVP_PKEY-SM2.html", "doc/html/man7/EVP_PKEY-X25519.html", + "doc/html/man7/EVP_RAND-CRNG-TEST.html", "doc/html/man7/EVP_RAND-CTR-DRBG.html", "doc/html/man7/EVP_RAND-HASH-DRBG.html", "doc/html/man7/EVP_RAND-HMAC-DRBG.html", + "doc/html/man7/EVP_RAND-JITTER.html", "doc/html/man7/EVP_RAND-SEED-SRC.html", "doc/html/man7/EVP_RAND-TEST-RAND.html", "doc/html/man7/EVP_RAND.html", @@ -17110,17 +19786,19 @@ our %unified_info = ( "doc/html/man7/EVP_SIGNATURE-ECDSA.html", "doc/html/man7/EVP_SIGNATURE-ED25519.html", "doc/html/man7/EVP_SIGNATURE-HMAC.html", + "doc/html/man7/EVP_SIGNATURE-ML-DSA.html", "doc/html/man7/EVP_SIGNATURE-RSA.html", + "doc/html/man7/EVP_SIGNATURE-SLH-DSA.html", "doc/html/man7/OSSL_PROVIDER-FIPS.html", "doc/html/man7/OSSL_PROVIDER-base.html", "doc/html/man7/OSSL_PROVIDER-default.html", "doc/html/man7/OSSL_PROVIDER-legacy.html", "doc/html/man7/OSSL_PROVIDER-null.html", + "doc/html/man7/OSSL_STORE-winstore.html", "doc/html/man7/RAND.html", "doc/html/man7/RSA-PSS.html", "doc/html/man7/X25519.html", "doc/html/man7/bio.html", - "doc/html/man7/crypto.html", "doc/html/man7/ct.html", "doc/html/man7/des_modes.html", "doc/html/man7/evp.html", @@ -17131,14 +19809,31 @@ our %unified_info = ( "doc/html/man7/life_cycle-mac.html", "doc/html/man7/life_cycle-pkey.html", "doc/html/man7/life_cycle-rand.html", - "doc/html/man7/migration_guide.html", "doc/html/man7/openssl-core.h.html", "doc/html/man7/openssl-core_dispatch.h.html", "doc/html/man7/openssl-core_names.h.html", "doc/html/man7/openssl-env.html", "doc/html/man7/openssl-glossary.html", + "doc/html/man7/openssl-qlog.html", + "doc/html/man7/openssl-quic-concurrency.html", + "doc/html/man7/openssl-quic.html", "doc/html/man7/openssl-threads.html", "doc/html/man7/openssl_user_macros.html", + "doc/html/man7/ossl-guide-introduction.html", + "doc/html/man7/ossl-guide-libcrypto-introduction.html", + "doc/html/man7/ossl-guide-libraries-introduction.html", + "doc/html/man7/ossl-guide-libssl-introduction.html", + "doc/html/man7/ossl-guide-migration.html", + "doc/html/man7/ossl-guide-quic-client-block.html", + "doc/html/man7/ossl-guide-quic-client-non-block.html", + "doc/html/man7/ossl-guide-quic-introduction.html", + "doc/html/man7/ossl-guide-quic-multi-stream.html", + "doc/html/man7/ossl-guide-quic-server-block.html", + "doc/html/man7/ossl-guide-quic-server-non-block.html", + "doc/html/man7/ossl-guide-tls-client-block.html", + "doc/html/man7/ossl-guide-tls-client-non-block.html", + "doc/html/man7/ossl-guide-tls-introduction.html", + "doc/html/man7/ossl-guide-tls-server-block.html", "doc/html/man7/ossl_store-file.html", "doc/html/man7/ossl_store.html", "doc/html/man7/passphrase-encoding.html", @@ -17157,10 +19852,10 @@ our %unified_info = ( "doc/html/man7/provider-object.html", "doc/html/man7/provider-rand.html", "doc/html/man7/provider-signature.html", + "doc/html/man7/provider-skeymgmt.html", "doc/html/man7/provider-storemgmt.html", "doc/html/man7/provider.html", "doc/html/man7/proxy-certificates.html", - "doc/html/man7/ssl.html", "doc/html/man7/x509.html" ] }, @@ -17175,12 +19870,21 @@ our %unified_info = ( ] }, "includes" => { + "OpenSSLConfig.cmake" => [ + "." + ], + "OpenSSLConfigVersion.cmake" => [ + "." + ], "apps/asn1parse.o" => [ "apps" ], "apps/ca.o" => [ "apps" ], + "apps/ca_internals_test-bin-ca.o" => [ + "apps" + ], "apps/ciphers.o" => [ "apps" ], @@ -17407,6 +20111,9 @@ our %unified_info = ( "apps/openssl-bin-sess_id.o" => [ "apps" ], + "apps/openssl-bin-skeyutl.o" => [ + "apps" + ], "apps/openssl-bin-smime.o" => [ "apps" ], @@ -17494,6 +20201,9 @@ our %unified_info = ( "apps/sess_id.o" => [ "apps" ], + "apps/skeyutl.o" => [ + "apps" + ], "apps/smime.o" => [ "apps" ], @@ -17563,6 +20273,12 @@ our %unified_info = ( "crypto/aes/libfips-lib-bsaes-armv7.o" => [ "crypto" ], + "crypto/aes/vpaes-armv8.o" => [ + "crypto" + ], + "crypto/aes/vpaes-loongarch64.o" => [ + "crypto" + ], "crypto/arm64cpuid.o" => [ "crypto" ], @@ -17626,9 +20342,15 @@ our %unified_info = ( "crypto/chacha/chacha-armv4.o" => [ "crypto" ], + "crypto/chacha/chacha-armv8-sve.o" => [ + "crypto" + ], "crypto/chacha/chacha-armv8.o" => [ "crypto" ], + "crypto/chacha/chacha-loongarch64.o" => [ + "crypto" + ], "crypto/chacha/chacha-s390x.o" => [ "crypto" ], @@ -17656,6 +20378,12 @@ our %unified_info = ( "crypto/ec/ecp_s390x_nistp.o" => [ "crypto" ], + "crypto/ec/ecp_sm2p256-armv8.o" => [ + "crypto" + ], + "crypto/ec/ecx_key.o" => [ + "crypto" + ], "crypto/ec/ecx_meth.o" => [ "crypto" ], @@ -17665,12 +20393,18 @@ our %unified_info = ( "crypto/ec/libcrypto-lib-ecp_nistz256-armv4.o" => [ "crypto" ], + "crypto/ec/libcrypto-lib-ecx_key.o" => [ + "crypto" + ], "crypto/ec/libcrypto-lib-ecx_meth.o" => [ "crypto" ], "crypto/ec/libfips-lib-ecp_nistz256-armv4.o" => [ "crypto" ], + "crypto/ec/libfips-lib-ecx_key.o" => [ + "crypto" + ], "crypto/evp/e_aes.o" => [ "crypto", "crypto/modes" @@ -17748,9 +20482,18 @@ our %unified_info = ( "crypto/libfips-lib-cpuid.o" => [ "." ], + "crypto/md5/md5-aarch64.o" => [ + "crypto" + ], + "crypto/md5/md5-loongarch64.o" => [ + "crypto" + ], "crypto/md5/md5-sparcv9.o" => [ "crypto" ], + "crypto/modes/aes-gcm-armv8-unroll8_64.o" => [ + "crypto" + ], "crypto/modes/aes-gcm-armv8_64.o" => [ "crypto" ], @@ -17787,6 +20530,9 @@ our %unified_info = ( "crypto/modes/libfips-lib-ghashv8-armx.o" => [ "crypto" ], + "crypto/params_idx.c" => [ + "util/perl" + ], "crypto/poly1305/libcrypto-lib-poly1305-armv4.o" => [ "crypto" ], @@ -17811,6 +20557,9 @@ our %unified_info = ( "crypto/sha/keccak1600-armv4.o" => [ "crypto" ], + "crypto/sha/keccak1600-armv8.o" => [ + "crypto" + ], "crypto/sha/libcrypto-lib-keccak1600-armv4.o" => [ "crypto" ], @@ -17880,6 +20629,18 @@ our %unified_info = ( "crypto/sha/sha512-sparcv9.o" => [ "crypto" ], + "crypto/sm3/sm3-armv8.o" => [ + "crypto" + ], + "crypto/sm4/sm4-armv8.o" => [ + "crypto" + ], + "crypto/sm4/vpsm4-armv8.o" => [ + "crypto" + ], + "crypto/sm4/vpsm4_ex-armv8.o" => [ + "crypto" + ], "doc/man1/openssl-asn1parse.pod" => [ "doc" ], @@ -18012,6 +20773,9 @@ our %unified_info = ( "doc/man1/openssl-sess_id.pod" => [ "doc" ], + "doc/man1/openssl-skeyutl.pod" => [ + "doc" + ], "doc/man1/openssl-smime.pod" => [ "doc" ], @@ -18039,6 +20803,24 @@ our %unified_info = ( "doc/man1/openssl-x509.pod" => [ "doc" ], + "exporters/OpenSSLConfig.cmake" => [ + "." + ], + "exporters/OpenSSLConfigVersion.cmake" => [ + "." + ], + "exporters/libcrypto.pc" => [ + "." + ], + "exporters/libssl.pc" => [ + "." + ], + "exporters/openssl.pc" => [ + "." + ], + "fuzz/acert-test" => [ + "include" + ], "fuzz/asn1-test" => [ "include" ], @@ -18069,12 +20851,69 @@ our %unified_info = ( "fuzz/ct-test" => [ "include" ], + "fuzz/decoder-test" => [ + "include" + ], + "fuzz/dtlsclient-test" => [ + "include" + ], + "fuzz/dtlsserver-test" => [ + "include" + ], + "fuzz/hashtable-test" => [ + "include" + ], + "fuzz/ml-dsa-test" => [ + "include" + ], + "fuzz/ml-kem-test" => [ + "include" + ], + "fuzz/pem-test" => [ + "include" + ], + "fuzz/provider-test" => [ + "include" + ], + "fuzz/punycode-test" => [ + "include" + ], + "fuzz/quic-client-test" => [ + "include" + ], + "fuzz/quic-lcidm-test" => [ + "include" + ], + "fuzz/quic-rcidm-test" => [ + "include" + ], + "fuzz/quic-server-test" => [ + "include" + ], + "fuzz/quic-srtm-test" => [ + "include" + ], "fuzz/server-test" => [ "include" ], + "fuzz/slh-dsa-test" => [ + "include" + ], + "fuzz/smime-test" => [ + "include" + ], + "fuzz/v3name-test" => [ + "include" + ], "fuzz/x509-test" => [ "include" ], + "include/internal/param_names.h" => [ + "util/perl" + ], + "include/openssl/core_names.h" => [ + "util/perl" + ], "libcrypto" => [ ".", "include", @@ -18085,6 +20924,9 @@ our %unified_info = ( ".", "util/perl/OpenSSL" ], + "libcrypto.pc" => [ + "." + ], "libssl" => [ ".", "include" @@ -18093,6 +20935,12 @@ our %unified_info = ( ".", "util/perl/OpenSSL" ], + "libssl.pc" => [ + "." + ], + "openssl.pc" => [ + "." + ], "providers/common/der/der_digests_gen.c" => [ "providers/common/der" ], @@ -18132,6 +20980,15 @@ our %unified_info = ( "providers/common/der/der_ecx_key.o" => [ "providers/common/include/prov" ], + "providers/common/der/der_ml_dsa_gen.c" => [ + "providers/common/der" + ], + "providers/common/der/der_ml_dsa_gen.o" => [ + "providers/common/include/prov" + ], + "providers/common/der/der_ml_dsa_key.o" => [ + "providers/common/include/prov" + ], "providers/common/der/der_rsa_gen.c" => [ "providers/common/der" ], @@ -18144,6 +21001,15 @@ our %unified_info = ( "providers/common/der/der_rsa_sig.o" => [ "providers/common/include/prov" ], + "providers/common/der/der_slh_dsa_gen.c" => [ + "providers/common/der" + ], + "providers/common/der/der_slh_dsa_gen.o" => [ + "providers/common/include/prov" + ], + "providers/common/der/der_slh_dsa_key.o" => [ + "providers/common/include/prov" + ], "providers/common/der/der_sm2_gen.c" => [ "providers/common/der" ], @@ -18189,12 +21055,24 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ecx_key.o" => [ "providers/common/include/prov" ], + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o" => [ + "providers/common/include/prov" + ], + "providers/common/der/libcommon-lib-der_ml_dsa_key.o" => [ + "providers/common/include/prov" + ], "providers/common/der/libcommon-lib-der_rsa_gen.o" => [ "providers/common/include/prov" ], "providers/common/der/libcommon-lib-der_rsa_key.o" => [ "providers/common/include/prov" ], + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o" => [ + "providers/common/include/prov" + ], + "providers/common/der/libcommon-lib-der_slh_dsa_key.o" => [ + "providers/common/include/prov" + ], "providers/common/der/libcommon-lib-der_wrap_gen.o" => [ "providers/common/include/prov" ], @@ -18225,9 +21103,15 @@ our %unified_info = ( "providers/common/include/prov/der_ecx.h" => [ "providers/common/der" ], + "providers/common/include/prov/der_ml_dsa.h" => [ + "providers/common/der" + ], "providers/common/include/prov/der_rsa.h" => [ "providers/common/der" ], + "providers/common/include/prov/der_slh_dsa.h" => [ + "providers/common/der" + ], "providers/common/include/prov/der_sm2.h" => [ "providers/common/der" ], @@ -18270,9 +21154,15 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-eddsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/libdefault-lib-rsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/libdefault-lib-sm2_sig.o" => [ "providers/common/include/prov" ], @@ -18285,12 +21175,24 @@ our %unified_info = ( "providers/implementations/signature/libfips-lib-eddsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/libfips-lib-rsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o" => [ + "providers/common/include/prov" + ], + "providers/implementations/signature/ml_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/rsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/slh_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/sm2_sig.o" => [ "providers/common/include/prov" ], @@ -18303,28 +21205,39 @@ our %unified_info = ( "crypto", "include", "providers/implementations/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" ], "providers/libdefault.a" => [ ".", "crypto", "include", "providers/implementations/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" ], "providers/libfips.a" => [ ".", "crypto", "include", "providers/implementations/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" ], "providers/liblegacy.a" => [ ".", "crypto", "include", "providers/implementations/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" + ], + "providers/libtemplate.a" => [ + "crypto", + "include", + "providers/implementations/include", + "providers/common/include", + "providers/fips/include" ], "test/aborttest" => [ "include", @@ -18393,6 +21306,14 @@ our %unified_info = ( "include", "apps/include" ], + "test/bio_addr_test" => [ + "include", + "apps/include" + ], + "test/bio_base64_test" => [ + "include", + "apps/include" + ], "test/bio_callback_test" => [ "include", "apps/include" @@ -18401,11 +21322,20 @@ our %unified_info = ( "include", "apps/include" ], + "test/bio_dgram_test" => [ + "include", + "apps/include", + "." + ], "test/bio_enc_test" => [ "include", "apps/include" ], - "test/bio_memleak_test" => [ + "test/bio_memleak_test" => [ + "include", + "apps/include" + ], + "test/bio_meth_test" => [ "include", "apps/include" ], @@ -18422,6 +21352,11 @@ our %unified_info = ( "include", "apps/include" ], + "test/bio_tfo_test" => [ + "include", + "apps/include", + "." + ], "test/bioprinttest" => [ "include", "apps/include" @@ -18436,6 +21371,9 @@ our %unified_info = ( "include", "apps/include" ], + "test/build_wincrypt_test" => [ + "include" + ], "test/buildtest_c_aes" => [ "include" ], @@ -18451,6 +21389,9 @@ our %unified_info = ( "test/buildtest_c_buffer" => [ "include" ], + "test/buildtest_c_byteorder" => [ + "include" + ], "test/buildtest_c_camellia" => [ "include" ], @@ -18475,9 +21416,6 @@ our %unified_info = ( "test/buildtest_c_core_dispatch" => [ "include" ], - "test/buildtest_c_core_names" => [ - "include" - ], "test/buildtest_c_core_object" => [ "include" ], @@ -18502,6 +21440,9 @@ our %unified_info = ( "test/buildtest_c_e_os2" => [ "include" ], + "test/buildtest_c_e_ostime" => [ + "include" + ], "test/buildtest_c_ebcdic" => [ "include" ], @@ -18529,12 +21470,18 @@ our %unified_info = ( "test/buildtest_c_hmac" => [ "include" ], + "test/buildtest_c_hpke" => [ + "include" + ], "test/buildtest_c_http" => [ "include" ], "test/buildtest_c_idea" => [ "include" ], + "test/buildtest_c_indicator" => [ + "include" + ], "test/buildtest_c_kdf" => [ "include" ], @@ -18550,6 +21497,9 @@ our %unified_info = ( "test/buildtest_c_mdc2" => [ "include" ], + "test/buildtest_c_ml_kem" => [ + "include" + ], "test/buildtest_c_modes" => [ "include" ], @@ -18580,6 +21530,9 @@ our %unified_info = ( "test/buildtest_c_provider" => [ "include" ], + "test/buildtest_c_quic" => [ + "include" + ], "test/buildtest_c_rand" => [ "include" ], @@ -18622,6 +21575,9 @@ our %unified_info = ( "test/buildtest_c_symhacks" => [ "include" ], + "test/buildtest_c_thread" => [ + "include" + ], "test/buildtest_c_tls1" => [ "include" ], @@ -18637,10 +21593,24 @@ our %unified_info = ( "test/buildtest_c_whrlpool" => [ "include" ], + "test/byteorder_test" => [ + "include", + "apps/include" + ], + "test/ca_internals_test" => [ + ".", + "include", + "apps/include" + ], "test/casttest" => [ "include", "apps/include" ], + "test/cert_comp_test" => [ + "include", + "apps/include", + "." + ], "test/chacha_internal_test" => [ ".", "include", @@ -18764,6 +21734,11 @@ our %unified_info = ( "include", "apps/include" ], + "test/decoder_propq_test" => [ + ".", + "include", + "apps/include" + ], "test/defltfips_test" => [ "include", "apps/include" @@ -18779,7 +21754,8 @@ our %unified_info = ( "test/drbgtest" => [ "include", "apps/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" ], "test/dsa_no_digest_size_test" => [ "include", @@ -18822,7 +21798,9 @@ our %unified_info = ( "test/endecode_test" => [ ".", "include", - "apps/include" + "apps/include", + "providers/common/include", + "providers/implementations/include" ], "test/endecoder_legacy_test" => [ ".", @@ -18867,6 +21845,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/evp_pkey_dhkem_test" => [ + "include", + "apps/include" + ], "test/evp_pkey_dparams_test" => [ "include", "apps/include" @@ -18875,10 +21857,18 @@ our %unified_info = ( "include", "apps/include" ], + "test/evp_skey_test" => [ + "include", + "apps/include" + ], "test/evp_test" => [ "include", "apps/include" ], + "test/evp_xof_test" => [ + "include", + "apps/include" + ], "test/exdatatest" => [ "include", "apps/include" @@ -18979,22 +21969,62 @@ our %unified_info = ( ".", "include" ], + "test/helpers/json_test-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/helpers/pkcs12.o" => [ ".", "include" ], + "test/helpers/pkcs12_api_test-bin-pkcs12.o" => [ + ".", + "include" + ], "test/helpers/pkcs12_format_test-bin-pkcs12.o" => [ ".", "include" ], + "test/helpers/quic_multistream_test-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quic_newcid_test-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quic_radix_test-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quic_srt_gen_test-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quicapitest-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quicfaultstest-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/helpers/recordlentest-bin-ssltestlib.o" => [ ".", "include" ], + "test/helpers/rpktest-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/helpers/servername_test-bin-ssltestlib.o" => [ ".", "include" ], + "test/helpers/ssl_handshake_rtt_test-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/helpers/ssl_test-bin-handshake.o" => [ ".", "include" @@ -19028,6 +22058,10 @@ our %unified_info = ( ".", "include" ], + "test/helpers/tls13groupselection_test-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/hexstr_test" => [ ".", "include", @@ -19037,6 +22071,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/hpke_test" => [ + "include", + "apps/include" + ], "test/http_test" => [ "include", "apps/include" @@ -19049,6 +22087,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/json_test" => [ + "include", + "apps/include" + ], "test/keymgmt_internal_test" => [ ".", "include", @@ -19063,6 +22105,10 @@ our %unified_info = ( "apps/include", "." ], + "test/list_test" => [ + "include", + "apps/include" + ], "test/localetest" => [ "include", "apps/include" @@ -19076,10 +22122,27 @@ our %unified_info = ( "include", "apps/include" ], + "test/membio_test" => [ + "include", + "apps/include", + "." + ], "test/memleaktest" => [ "include", "apps/include" ], + "test/ml_dsa_test" => [ + "include", + "apps/include" + ], + "test/ml_kem_evp_extra_test" => [ + "include", + "apps/include" + ], + "test/ml_kem_internal_test" => [ + "include", + "apps/include" + ], "test/modes_internal_test" => [ ".", "include", @@ -19114,6 +22177,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/pairwise_fail_test" => [ + "include", + "apps/include" + ], "test/param_build_test" => [ "include", "apps/include" @@ -19147,6 +22214,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/pkcs12_api_test" => [ + "include", + "apps/include" + ], "test/pkcs12_format_test" => [ "include", "apps/include" @@ -19168,6 +22239,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/priority_queue_test" => [ + "include", + "apps/include" + ], "test/property_test" => [ ".", "include", @@ -19181,6 +22256,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/provider_default_search_path_test" => [ + "include", + "apps/include" + ], "test/provider_fallback_test" => [ "include", "apps/include" @@ -19207,6 +22286,97 @@ our %unified_info = ( "include", "apps/include" ], + "test/quic_ackm_test" => [ + "include", + "apps/include" + ], + "test/quic_cc_test" => [ + "include", + "apps/include" + ], + "test/quic_cfq_test" => [ + "include", + "apps/include" + ], + "test/quic_client_test" => [ + "include", + "apps/include" + ], + "test/quic_fc_test" => [ + "include", + "apps/include" + ], + "test/quic_fifd_test" => [ + "include", + "apps/include" + ], + "test/quic_lcidm_test" => [ + "include", + "apps/include" + ], + "test/quic_multistream_test" => [ + "include", + "apps/include" + ], + "test/quic_newcid_test" => [ + "include", + "apps/include", + "." + ], + "test/quic_qlog_test" => [ + "include", + "apps/include" + ], + "test/quic_radix_test" => [ + "include", + "apps/include" + ], + "test/quic_rcidm_test" => [ + "include", + "apps/include" + ], + "test/quic_record_test" => [ + "include", + "apps/include" + ], + "test/quic_srt_gen_test" => [ + "include", + "apps/include", + "." + ], + "test/quic_srtm_test" => [ + "include", + "apps/include" + ], + "test/quic_stream_test" => [ + "include", + "apps/include" + ], + "test/quic_tserver_test" => [ + "include", + "apps/include" + ], + "test/quic_txp_test" => [ + "include", + "apps/include" + ], + "test/quic_txpim_test" => [ + "include", + "apps/include" + ], + "test/quic_wire_test" => [ + "include", + "apps/include" + ], + "test/quicapitest" => [ + "include", + "apps/include" + ], + "test/quicfaultstest" => [ + "include", + "apps/include", + "." + ], "test/rand_status_test" => [ "include", "apps/include" @@ -19227,14 +22397,20 @@ our %unified_info = ( "include", "apps/include" ], - "test/rdrand_sanitytest" => [ + "test/rdcpu_sanitytest" => [ "include", - "apps/include" + "apps/include", + "crypto" ], "test/recordlentest" => [ "include", "apps/include" ], + "test/rpktest" => [ + "include", + "apps/include", + "." + ], "test/rsa_complex" => [ "include", "apps/include" @@ -19253,6 +22429,15 @@ our %unified_info = ( "include", "apps/include" ], + "test/rsa_x931_test" => [ + ".", + "include", + "apps/include" + ], + "test/safe_math_test" => [ + "include", + "apps/include" + ], "test/sanitytest" => [ "include", "apps/include" @@ -19274,6 +22459,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/slh_dsa_test" => [ + "include", + "apps/include" + ], "test/sm2_internal_test" => [ "include", "apps/include" @@ -19304,6 +22493,11 @@ our %unified_info = ( "include", "apps/include" ], + "test/ssl_handshake_rtt_test" => [ + "include", + "apps/include", + "." + ], "test/ssl_old_test" => [ ".", "include", @@ -19320,6 +22514,7 @@ our %unified_info = ( "test/sslapitest" => [ "include", "apps/include", + "providers/common/include", "." ], "test/sslbuffertest" => [ @@ -19334,6 +22529,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/strtoultest" => [ + "include", + "apps/include" + ], "test/sysdefaulttest" => [ "include", "apps/include" @@ -19342,7 +22541,13 @@ our %unified_info = ( "include", "apps/include" ], + "test/threadpool_test" => [ + ".", + "include", + "apps/include" + ], "test/threadstest" => [ + ".", "include", "apps/include" ], @@ -19354,6 +22559,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/time_test" => [ + "include", + "apps/include" + ], "test/tls13ccstest" => [ "include", "apps/include" @@ -19363,6 +22572,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/tls13groupselection_test" => [ + "include", + "apps/include" + ], "test/trace_api_test" => [ ".", "include", @@ -19401,6 +22614,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/x509_acert_test" => [ + "include", + "apps/include" + ], "test/x509_check_cert_pkey_test" => [ "include", "apps/include" @@ -19414,6 +22631,18 @@ our %unified_info = ( "include", "apps/include" ], + "test/x509_load_cert_file_test" => [ + "include", + "apps/include" + ], + "test/x509_req_test" => [ + "include", + "apps/include" + ], + "test/x509_test" => [ + "include", + "apps/include" + ], "test/x509_time_test" => [ "include", "apps/include" @@ -19435,6 +22664,7 @@ our %unified_info = ( "providers/libdefault.a", "providers/libfips.a", "providers/liblegacy.a", + "providers/libtemplate.a", "test/libtestutil.a" ], "mandocs" => { @@ -19487,6 +22717,7 @@ our %unified_info = ( "doc/man/man1/openssl-s_server.1", "doc/man/man1/openssl-s_time.1", "doc/man/man1/openssl-sess_id.1", + "doc/man/man1/openssl-skeyutl.1", "doc/man/man1/openssl-smime.1", "doc/man/man1/openssl-speed.1", "doc/man/man1/openssl-spkac.1", @@ -19536,6 +22767,7 @@ our %unified_info = ( "doc/man/man3/BIO_find_type.3", "doc/man/man3/BIO_get_data.3", "doc/man/man3/BIO_get_ex_new_index.3", + "doc/man/man3/BIO_get_rpoll_descriptor.3", "doc/man/man3/BIO_meth_new.3", "doc/man/man3/BIO_new.3", "doc/man/man3/BIO_new_CMS.3", @@ -19548,11 +22780,13 @@ our %unified_info = ( "doc/man/man3/BIO_s_connect.3", "doc/man/man3/BIO_s_core.3", "doc/man/man3/BIO_s_datagram.3", + "doc/man/man3/BIO_s_dgram_pair.3", "doc/man/man3/BIO_s_fd.3", "doc/man/man3/BIO_s_file.3", "doc/man/man3/BIO_s_mem.3", "doc/man/man3/BIO_s_null.3", "doc/man/man3/BIO_s_socket.3", + "doc/man/man3/BIO_sendmmsg.3", "doc/man/man3/BIO_set_callback.3", "doc/man/man3/BIO_should_retry.3", "doc/man/man3/BIO_socket_wait.3", @@ -19577,6 +22811,7 @@ our %unified_info = ( "doc/man/man3/BN_swap.3", "doc/man/man3/BN_zero.3", "doc/man/man3/BUF_MEM_new.3", + "doc/man/man3/CMAC_CTX.3", "doc/man/man3/CMS_EncryptedData_decrypt.3", "doc/man/man3/CMS_EncryptedData_encrypt.3", "doc/man/man3/CMS_EnvelopedData_create.3", @@ -19599,6 +22834,7 @@ our %unified_info = ( "doc/man/man3/CMS_uncompress.3", "doc/man/man3/CMS_verify.3", "doc/man/man3/CMS_verify_receipt.3", + "doc/man/man3/COMP_CTX_new.3", "doc/man/man3/CONF_modules_free.3", "doc/man/man3/CONF_modules_load_file.3", "doc/man/man3/CRYPTO_THREAD_run_once.3", @@ -19632,6 +22868,8 @@ our %unified_info = ( "doc/man/man3/DSA_size.3", "doc/man/man3/DTLS_get_data_mtu.3", "doc/man/man3/DTLS_set_timer_cb.3", + "doc/man/man3/DTLSv1_get_timeout.3", + "doc/man/man3/DTLSv1_handle_timeout.3", "doc/man/man3/DTLSv1_listen.3", "doc/man/man3/ECDSA_SIG_new.3", "doc/man/man3/ECDSA_sign.3", @@ -19678,6 +22916,7 @@ our %unified_info = ( "doc/man/man3/EVP_PKEY_CTX_ctrl.3", "doc/man/man3/EVP_PKEY_CTX_get0_libctx.3", "doc/man/man3/EVP_PKEY_CTX_get0_pkey.3", + "doc/man/man3/EVP_PKEY_CTX_get_algor.3", "doc/man/man3/EVP_PKEY_CTX_new.3", "doc/man/man3/EVP_PKEY_CTX_set1_pbe_pass.3", "doc/man/man3/EVP_PKEY_CTX_set_hkdf_md.3", @@ -19717,6 +22956,8 @@ our %unified_info = ( "doc/man/man3/EVP_PKEY_verify_recover.3", "doc/man/man3/EVP_RAND.3", "doc/man/man3/EVP_SIGNATURE.3", + "doc/man/man3/EVP_SKEY.3", + "doc/man/man3/EVP_SKEYMGMT.3", "doc/man/man3/EVP_SealInit.3", "doc/man/man3/EVP_SignInit.3", "doc/man/man3/EVP_VerifyInit.3", @@ -19746,6 +22987,7 @@ our %unified_info = ( "doc/man/man3/EVP_sm3.3", "doc/man/man3/EVP_sm4_cbc.3", "doc/man/man3/EVP_whirlpool.3", + "doc/man/man3/GENERAL_NAME.3", "doc/man/man3/HMAC.3", "doc/man/man3/MD5.3", "doc/man/man3/MDC2_Init.3", @@ -19770,14 +23012,18 @@ our %unified_info = ( "doc/man/man3/OPENSSL_init_ssl.3", "doc/man/man3/OPENSSL_instrument_bus.3", "doc/man/man3/OPENSSL_load_builtin_modules.3", + "doc/man/man3/OPENSSL_load_u16_le.3", "doc/man/man3/OPENSSL_malloc.3", + "doc/man/man3/OPENSSL_riscvcap.3", "doc/man/man3/OPENSSL_s390xcap.3", "doc/man/man3/OPENSSL_secure_malloc.3", "doc/man/man3/OPENSSL_strcasecmp.3", "doc/man/man3/OSSL_ALGORITHM.3", "doc/man/man3/OSSL_CALLBACK.3", + "doc/man/man3/OSSL_CMP_ATAV_set0.3", "doc/man/man3/OSSL_CMP_CTX_new.3", "doc/man/man3/OSSL_CMP_HDR_get0_transactionID.3", + "doc/man/man3/OSSL_CMP_ITAV_new_caCerts.3", "doc/man/man3/OSSL_CMP_ITAV_set0.3", "doc/man/man3/OSSL_CMP_MSG_get0_header.3", "doc/man/man3/OSSL_CMP_MSG_http_perform.3", @@ -19801,18 +23047,27 @@ our %unified_info = ( "doc/man/man3/OSSL_ENCODER_CTX.3", "doc/man/man3/OSSL_ENCODER_CTX_new_for_pkey.3", "doc/man/man3/OSSL_ENCODER_to_bio.3", + "doc/man/man3/OSSL_ERR_STATE_save.3", "doc/man/man3/OSSL_ESS_check_signing_certs.3", + "doc/man/man3/OSSL_GENERAL_NAMES_print.3", + "doc/man/man3/OSSL_HPKE_CTX_new.3", "doc/man/man3/OSSL_HTTP_REQ_CTX.3", "doc/man/man3/OSSL_HTTP_parse_url.3", "doc/man/man3/OSSL_HTTP_transfer.3", + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX.3", + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX_print.3", + "doc/man/man3/OSSL_INDICATOR_set_callback.3", "doc/man/man3/OSSL_ITEM.3", "doc/man/man3/OSSL_LIB_CTX.3", + "doc/man/man3/OSSL_LIB_CTX_set_conf_diagnostics.3", "doc/man/man3/OSSL_PARAM.3", "doc/man/man3/OSSL_PARAM_BLD.3", "doc/man/man3/OSSL_PARAM_allocate_from_text.3", "doc/man/man3/OSSL_PARAM_dup.3", "doc/man/man3/OSSL_PARAM_int.3", + "doc/man/man3/OSSL_PARAM_print_to_bio.3", "doc/man/man3/OSSL_PROVIDER.3", + "doc/man/man3/OSSL_QUIC_client_method.3", "doc/man/man3/OSSL_SELF_TEST_new.3", "doc/man/man3/OSSL_SELF_TEST_set_callback.3", "doc/man/man3/OSSL_STORE_INFO.3", @@ -19821,11 +23076,13 @@ our %unified_info = ( "doc/man/man3/OSSL_STORE_attach.3", "doc/man/man3/OSSL_STORE_expect.3", "doc/man/man3/OSSL_STORE_open.3", + "doc/man/man3/OSSL_sleep.3", "doc/man/man3/OSSL_trace_enabled.3", "doc/man/man3/OSSL_trace_get_category_num.3", "doc/man/man3/OSSL_trace_set_channel.3", "doc/man/man3/OpenSSL_add_all_algorithms.3", "doc/man/man3/OpenSSL_version.3", + "doc/man/man3/PBMAC1_get1_pbkdf2_param.3", "doc/man/man3/PEM_X509_INFO_read_bio_ex.3", "doc/man/man3/PEM_bytes_read_bio.3", "doc/man/man3/PEM_read.3", @@ -19838,6 +23095,7 @@ our %unified_info = ( "doc/man/man3/PKCS12_SAFEBAG_create_cert.3", "doc/man/man3/PKCS12_SAFEBAG_get0_attrs.3", "doc/man/man3/PKCS12_SAFEBAG_get1_cert.3", + "doc/man/man3/PKCS12_SAFEBAG_set0_attrs.3", "doc/man/man3/PKCS12_add1_attr_by_NID.3", "doc/man/man3/PKCS12_add_CSPName_asc.3", "doc/man/man3/PKCS12_add_cert.3", @@ -19929,6 +23187,7 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_sess_set_get_cb.3", "doc/man/man3/SSL_CTX_sessions.3", "doc/man/man3/SSL_CTX_set0_CA_list.3", + "doc/man/man3/SSL_CTX_set1_cert_comp_preference.3", "doc/man/man3/SSL_CTX_set1_curves.3", "doc/man/man3/SSL_CTX_set1_sigalgs.3", "doc/man/man3/SSL_CTX_set1_verify_cert_store.3", @@ -19942,6 +23201,7 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_ct_validation_callback.3", "doc/man/man3/SSL_CTX_set_ctlog_list_file.3", "doc/man/man3/SSL_CTX_set_default_passwd_cb.3", + "doc/man/man3/SSL_CTX_set_domain_flags.3", "doc/man/man3/SSL_CTX_set_generate_session_id.3", "doc/man/man3/SSL_CTX_set_info_callback.3", "doc/man/man3/SSL_CTX_set_keylog_callback.3", @@ -19949,6 +23209,7 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_min_proto_version.3", "doc/man/man3/SSL_CTX_set_mode.3", "doc/man/man3/SSL_CTX_set_msg_callback.3", + "doc/man/man3/SSL_CTX_set_new_pending_conn_cb.3", "doc/man/man3/SSL_CTX_set_num_tickets.3", "doc/man/man3/SSL_CTX_set_options.3", "doc/man/man3/SSL_CTX_set_psk_client_callback.3", @@ -19987,6 +23248,7 @@ our %unified_info = ( "doc/man/man3/SSL_SESSION_print.3", "doc/man/man3/SSL_SESSION_set1_id.3", "doc/man/man3/SSL_accept.3", + "doc/man/man3/SSL_accept_stream.3", "doc/man/man3/SSL_alert_type_string.3", "doc/man/man3/SSL_alloc_buffers.3", "doc/man/man3/SSL_check_chain.3", @@ -19996,59 +23258,90 @@ our %unified_info = ( "doc/man/man3/SSL_export_keying_material.3", "doc/man/man3/SSL_extension_supported.3", "doc/man/man3/SSL_free.3", + "doc/man/man3/SSL_get0_connection.3", + "doc/man/man3/SSL_get0_group_name.3", + "doc/man/man3/SSL_get0_peer_rpk.3", "doc/man/man3/SSL_get0_peer_scts.3", + "doc/man/man3/SSL_get1_builtin_sigalgs.3", "doc/man/man3/SSL_get_SSL_CTX.3", "doc/man/man3/SSL_get_all_async_fds.3", "doc/man/man3/SSL_get_certificate.3", "doc/man/man3/SSL_get_ciphers.3", "doc/man/man3/SSL_get_client_random.3", + "doc/man/man3/SSL_get_conn_close_info.3", "doc/man/man3/SSL_get_current_cipher.3", "doc/man/man3/SSL_get_default_timeout.3", "doc/man/man3/SSL_get_error.3", + "doc/man/man3/SSL_get_event_timeout.3", "doc/man/man3/SSL_get_extms_support.3", "doc/man/man3/SSL_get_fd.3", + "doc/man/man3/SSL_get_handshake_rtt.3", "doc/man/man3/SSL_get_peer_cert_chain.3", "doc/man/man3/SSL_get_peer_certificate.3", "doc/man/man3/SSL_get_peer_signature_nid.3", "doc/man/man3/SSL_get_peer_tmp_key.3", "doc/man/man3/SSL_get_psk_identity.3", "doc/man/man3/SSL_get_rbio.3", + "doc/man/man3/SSL_get_rpoll_descriptor.3", "doc/man/man3/SSL_get_session.3", "doc/man/man3/SSL_get_shared_sigalgs.3", + "doc/man/man3/SSL_get_stream_id.3", + "doc/man/man3/SSL_get_stream_read_state.3", + "doc/man/man3/SSL_get_value_uint.3", "doc/man/man3/SSL_get_verify_result.3", "doc/man/man3/SSL_get_version.3", "doc/man/man3/SSL_group_to_name.3", + "doc/man/man3/SSL_handle_events.3", "doc/man/man3/SSL_in_init.3", + "doc/man/man3/SSL_inject_net_dgram.3", "doc/man/man3/SSL_key_update.3", "doc/man/man3/SSL_library_init.3", "doc/man/man3/SSL_load_client_CA_file.3", "doc/man/man3/SSL_new.3", + "doc/man/man3/SSL_new_domain.3", + "doc/man/man3/SSL_new_listener.3", + "doc/man/man3/SSL_new_stream.3", "doc/man/man3/SSL_pending.3", + "doc/man/man3/SSL_poll.3", "doc/man/man3/SSL_read.3", "doc/man/man3/SSL_read_early_data.3", "doc/man/man3/SSL_rstate_string.3", "doc/man/man3/SSL_session_reused.3", "doc/man/man3/SSL_set1_host.3", + "doc/man/man3/SSL_set1_initial_peer_addr.3", + "doc/man/man3/SSL_set1_server_cert_type.3", "doc/man/man3/SSL_set_async_callback.3", "doc/man/man3/SSL_set_bio.3", + "doc/man/man3/SSL_set_blocking_mode.3", "doc/man/man3/SSL_set_connect_state.3", + "doc/man/man3/SSL_set_default_stream_mode.3", "doc/man/man3/SSL_set_fd.3", + "doc/man/man3/SSL_set_incoming_stream_policy.3", + "doc/man/man3/SSL_set_quic_tls_cbs.3", "doc/man/man3/SSL_set_retry_verify.3", "doc/man/man3/SSL_set_session.3", + "doc/man/man3/SSL_set_session_secret_cb.3", "doc/man/man3/SSL_set_shutdown.3", "doc/man/man3/SSL_set_verify_result.3", "doc/man/man3/SSL_shutdown.3", "doc/man/man3/SSL_state_string.3", + "doc/man/man3/SSL_stream_conclude.3", + "doc/man/man3/SSL_stream_reset.3", "doc/man/man3/SSL_want.3", "doc/man/man3/SSL_write.3", "doc/man/man3/TS_RESP_CTX_new.3", - "doc/man/man3/TS_VERIFY_CTX_set_certs.3", + "doc/man/man3/TS_VERIFY_CTX.3", "doc/man/man3/UI_STRING.3", "doc/man/man3/UI_UTIL_read_pw.3", "doc/man/man3/UI_create_method.3", "doc/man/man3/UI_new.3", "doc/man/man3/X509V3_get_d2i.3", "doc/man/man3/X509V3_set_ctx.3", + "doc/man/man3/X509_ACERT_add1_attr.3", + "doc/man/man3/X509_ACERT_add_attr_nconf.3", + "doc/man/man3/X509_ACERT_get0_holder_baseCertId.3", + "doc/man/man3/X509_ACERT_get_attr.3", + "doc/man/man3/X509_ACERT_print_ex.3", "doc/man/man3/X509_ALGOR_dup.3", "doc/man/man3/X509_ATTRIBUTE.3", "doc/man/man3/X509_CRL_get0_by_serial.3", @@ -20065,6 +23358,7 @@ our %unified_info = ( "doc/man/man3/X509_REQ_get_attr.3", "doc/man/man3/X509_REQ_get_extensions.3", "doc/man/man3/X509_SIG_get0.3", + "doc/man/man3/X509_STORE_CTX_get_by_subject.3", "doc/man/man3/X509_STORE_CTX_get_error.3", "doc/man/man3/X509_STORE_CTX_new.3", "doc/man/man3/X509_STORE_CTX_set_verify_cb.3", @@ -20087,6 +23381,7 @@ our %unified_info = ( "doc/man/man3/X509_get0_notBefore.3", "doc/man/man3/X509_get0_signature.3", "doc/man/man3/X509_get0_uids.3", + "doc/man/man3/X509_get_default_cert_file.3", "doc/man/man3/X509_get_extension_flags.3", "doc/man/man3/X509_get_pubkey.3", "doc/man/man3/X509_get_serialNumber.3", @@ -20132,12 +23427,15 @@ our %unified_info = ( "doc/man/man7/EVP_CIPHER-RC5.7", "doc/man/man7/EVP_CIPHER-SEED.7", "doc/man/man7/EVP_CIPHER-SM4.7", + "doc/man/man7/EVP_KDF-ARGON2.7", "doc/man/man7/EVP_KDF-HKDF.7", + "doc/man/man7/EVP_KDF-HMAC-DRBG.7", "doc/man/man7/EVP_KDF-KB.7", "doc/man/man7/EVP_KDF-KRB5KDF.7", "doc/man/man7/EVP_KDF-PBKDF1.7", "doc/man/man7/EVP_KDF-PBKDF2.7", "doc/man/man7/EVP_KDF-PKCS12KDF.7", + "doc/man/man7/EVP_KDF-PVKKDF.7", "doc/man/man7/EVP_KDF-SCRYPT.7", "doc/man/man7/EVP_KDF-SS.7", "doc/man/man7/EVP_KDF-SSHKDF.7", @@ -20146,7 +23444,10 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-X942-ASN1.7", "doc/man/man7/EVP_KDF-X942-CONCAT.7", "doc/man/man7/EVP_KDF-X963.7", + "doc/man/man7/EVP_KEM-EC.7", + "doc/man/man7/EVP_KEM-ML-KEM.7", "doc/man/man7/EVP_KEM-RSA.7", + "doc/man/man7/EVP_KEM-X25519.7", "doc/man/man7/EVP_KEYEXCH-DH.7", "doc/man/man7/EVP_KEYEXCH-ECDH.7", "doc/man/man7/EVP_KEYEXCH-X25519.7", @@ -20158,6 +23459,7 @@ our %unified_info = ( "doc/man/man7/EVP_MAC-Poly1305.7", "doc/man/man7/EVP_MAC-Siphash.7", "doc/man/man7/EVP_MD-BLAKE2.7", + "doc/man/man7/EVP_MD-KECCAK.7", "doc/man/man7/EVP_MD-MD2.7", "doc/man/man7/EVP_MD-MD4.7", "doc/man/man7/EVP_MD-MD5-SHA1.7", @@ -20177,12 +23479,17 @@ our %unified_info = ( "doc/man/man7/EVP_PKEY-EC.7", "doc/man/man7/EVP_PKEY-FFC.7", "doc/man/man7/EVP_PKEY-HMAC.7", + "doc/man/man7/EVP_PKEY-ML-DSA.7", + "doc/man/man7/EVP_PKEY-ML-KEM.7", "doc/man/man7/EVP_PKEY-RSA.7", + "doc/man/man7/EVP_PKEY-SLH-DSA.7", "doc/man/man7/EVP_PKEY-SM2.7", "doc/man/man7/EVP_PKEY-X25519.7", + "doc/man/man7/EVP_RAND-CRNG-TEST.7", "doc/man/man7/EVP_RAND-CTR-DRBG.7", "doc/man/man7/EVP_RAND-HASH-DRBG.7", "doc/man/man7/EVP_RAND-HMAC-DRBG.7", + "doc/man/man7/EVP_RAND-JITTER.7", "doc/man/man7/EVP_RAND-SEED-SRC.7", "doc/man/man7/EVP_RAND-TEST-RAND.7", "doc/man/man7/EVP_RAND.7", @@ -20190,17 +23497,19 @@ our %unified_info = ( "doc/man/man7/EVP_SIGNATURE-ECDSA.7", "doc/man/man7/EVP_SIGNATURE-ED25519.7", "doc/man/man7/EVP_SIGNATURE-HMAC.7", + "doc/man/man7/EVP_SIGNATURE-ML-DSA.7", "doc/man/man7/EVP_SIGNATURE-RSA.7", + "doc/man/man7/EVP_SIGNATURE-SLH-DSA.7", "doc/man/man7/OSSL_PROVIDER-FIPS.7", "doc/man/man7/OSSL_PROVIDER-base.7", "doc/man/man7/OSSL_PROVIDER-default.7", "doc/man/man7/OSSL_PROVIDER-legacy.7", "doc/man/man7/OSSL_PROVIDER-null.7", + "doc/man/man7/OSSL_STORE-winstore.7", "doc/man/man7/RAND.7", "doc/man/man7/RSA-PSS.7", "doc/man/man7/X25519.7", "doc/man/man7/bio.7", - "doc/man/man7/crypto.7", "doc/man/man7/ct.7", "doc/man/man7/des_modes.7", "doc/man/man7/evp.7", @@ -20211,14 +23520,31 @@ our %unified_info = ( "doc/man/man7/life_cycle-mac.7", "doc/man/man7/life_cycle-pkey.7", "doc/man/man7/life_cycle-rand.7", - "doc/man/man7/migration_guide.7", "doc/man/man7/openssl-core.h.7", "doc/man/man7/openssl-core_dispatch.h.7", "doc/man/man7/openssl-core_names.h.7", "doc/man/man7/openssl-env.7", "doc/man/man7/openssl-glossary.7", + "doc/man/man7/openssl-qlog.7", + "doc/man/man7/openssl-quic-concurrency.7", + "doc/man/man7/openssl-quic.7", "doc/man/man7/openssl-threads.7", "doc/man/man7/openssl_user_macros.7", + "doc/man/man7/ossl-guide-introduction.7", + "doc/man/man7/ossl-guide-libcrypto-introduction.7", + "doc/man/man7/ossl-guide-libraries-introduction.7", + "doc/man/man7/ossl-guide-libssl-introduction.7", + "doc/man/man7/ossl-guide-migration.7", + "doc/man/man7/ossl-guide-quic-client-block.7", + "doc/man/man7/ossl-guide-quic-client-non-block.7", + "doc/man/man7/ossl-guide-quic-introduction.7", + "doc/man/man7/ossl-guide-quic-multi-stream.7", + "doc/man/man7/ossl-guide-quic-server-block.7", + "doc/man/man7/ossl-guide-quic-server-non-block.7", + "doc/man/man7/ossl-guide-tls-client-block.7", + "doc/man/man7/ossl-guide-tls-client-non-block.7", + "doc/man/man7/ossl-guide-tls-introduction.7", + "doc/man/man7/ossl-guide-tls-server-block.7", "doc/man/man7/ossl_store-file.7", "doc/man/man7/ossl_store.7", "doc/man/man7/passphrase-encoding.7", @@ -20237,10 +23563,10 @@ our %unified_info = ( "doc/man/man7/provider-object.7", "doc/man/man7/provider-rand.7", "doc/man/man7/provider-signature.7", + "doc/man/man7/provider-skeymgmt.7", "doc/man/man7/provider-storemgmt.7", "doc/man/man7/provider.7", "doc/man/man7/proxy-certificates.7", - "doc/man/man7/ssl.7", "doc/man/man7/x509.7" ] }, @@ -20252,6 +23578,7 @@ our %unified_info = ( ], "programs" => [ "apps/openssl", + "fuzz/acert-test", "fuzz/asn1-test", "fuzz/asn1parse-test", "fuzz/bignum-test", @@ -20262,7 +23589,24 @@ our %unified_info = ( "fuzz/conf-test", "fuzz/crl-test", "fuzz/ct-test", + "fuzz/decoder-test", + "fuzz/dtlsclient-test", + "fuzz/dtlsserver-test", + "fuzz/hashtable-test", + "fuzz/ml-dsa-test", + "fuzz/ml-kem-test", + "fuzz/pem-test", + "fuzz/provider-test", + "fuzz/punycode-test", + "fuzz/quic-client-test", + "fuzz/quic-lcidm-test", + "fuzz/quic-rcidm-test", + "fuzz/quic-server-test", + "fuzz/quic-srtm-test", "fuzz/server-test", + "fuzz/slh-dsa-test", + "fuzz/smime-test", + "fuzz/v3name-test", "fuzz/x509-test", "test/aborttest", "test/acvp_test", @@ -20280,21 +23624,28 @@ our %unified_info = ( "test/asynctest", "test/bad_dtls_test", "test/bftest", + "test/bio_addr_test", + "test/bio_base64_test", "test/bio_callback_test", "test/bio_core_test", + "test/bio_dgram_test", "test/bio_enc_test", "test/bio_memleak_test", + "test/bio_meth_test", "test/bio_prefix_text", "test/bio_pw_callback_test", "test/bio_readbuffer_test", + "test/bio_tfo_test", "test/bioprinttest", "test/bn_internal_test", "test/bntest", + "test/build_wincrypt_test", "test/buildtest_c_aes", "test/buildtest_c_async", "test/buildtest_c_blowfish", "test/buildtest_c_bn", "test/buildtest_c_buffer", + "test/buildtest_c_byteorder", "test/buildtest_c_camellia", "test/buildtest_c_cast", "test/buildtest_c_cmac", @@ -20303,7 +23654,6 @@ our %unified_info = ( "test/buildtest_c_conftypes", "test/buildtest_c_core", "test/buildtest_c_core_dispatch", - "test/buildtest_c_core_names", "test/buildtest_c_core_object", "test/buildtest_c_cryptoerr_legacy", "test/buildtest_c_decoder", @@ -20312,6 +23662,7 @@ our %unified_info = ( "test/buildtest_c_dsa", "test/buildtest_c_dtls1", "test/buildtest_c_e_os2", + "test/buildtest_c_e_ostime", "test/buildtest_c_ebcdic", "test/buildtest_c_ec", "test/buildtest_c_ecdh", @@ -20321,13 +23672,16 @@ our %unified_info = ( "test/buildtest_c_evp", "test/buildtest_c_fips_names", "test/buildtest_c_hmac", + "test/buildtest_c_hpke", "test/buildtest_c_http", "test/buildtest_c_idea", + "test/buildtest_c_indicator", "test/buildtest_c_kdf", "test/buildtest_c_macros", "test/buildtest_c_md4", "test/buildtest_c_md5", "test/buildtest_c_mdc2", + "test/buildtest_c_ml_kem", "test/buildtest_c_modes", "test/buildtest_c_obj_mac", "test/buildtest_c_objects", @@ -20338,6 +23692,7 @@ our %unified_info = ( "test/buildtest_c_pem2", "test/buildtest_c_prov_ssl", "test/buildtest_c_provider", + "test/buildtest_c_quic", "test/buildtest_c_rand", "test/buildtest_c_rc2", "test/buildtest_c_rc4", @@ -20352,11 +23707,14 @@ our %unified_info = ( "test/buildtest_c_stack", "test/buildtest_c_store", "test/buildtest_c_symhacks", + "test/buildtest_c_thread", "test/buildtest_c_tls1", "test/buildtest_c_ts", "test/buildtest_c_txt_db", "test/buildtest_c_types", "test/buildtest_c_whrlpool", + "test/byteorder_test", + "test/ca_internals_test", "test/casttest", "test/chacha_internal_test", "test/cipher_overhead_test", @@ -20385,6 +23743,7 @@ our %unified_info = ( "test/curve448_internal_test", "test/d2i_test", "test/danetest", + "test/decoder_propq_test", "test/defltfips_test", "test/destest", "test/dhtest", @@ -20409,9 +23768,12 @@ our %unified_info = ( "test/evp_kdf_test", "test/evp_libctx_test", "test/evp_pkey_ctx_new_from_name", + "test/evp_pkey_dhkem_test", "test/evp_pkey_dparams_test", "test/evp_pkey_provided_test", + "test/evp_skey_test", "test/evp_test", + "test/evp_xof_test", "test/exdatatest", "test/exptest", "test/ext_internal_test", @@ -20421,21 +23783,29 @@ our %unified_info = ( "test/gmdifftest", "test/hexstr_test", "test/hmactest", + "test/hpke_test", "test/http_test", "test/ideatest", "test/igetest", + "test/json_test", "test/keymgmt_internal_test", "test/lhash_test", + "test/list_test", "test/localetest", "test/mdc2_internal_test", "test/mdc2test", + "test/membio_test", "test/memleaktest", + "test/ml_dsa_test", + "test/ml_kem_evp_extra_test", + "test/ml_kem_internal_test", "test/modes_internal_test", "test/namemap_internal_test", "test/nodefltctxtest", "test/ocspapitest", "test/ossl_store_test", "test/packettest", + "test/pairwise_fail_test", "test/param_build_test", "test/params_api_test", "test/params_conversion_test", @@ -20444,36 +23814,65 @@ our %unified_info = ( "test/pbetest", "test/pem_read_depr_test", "test/pemtest", + "test/pkcs12_api_test", "test/pkcs12_format_test", "test/pkcs7_test", "test/pkey_meth_kdf_test", "test/pkey_meth_test", "test/poly1305_internal_test", + "test/priority_queue_test", "test/property_test", "test/prov_config_test", "test/provfetchtest", + "test/provider_default_search_path_test", "test/provider_fallback_test", "test/provider_internal_test", "test/provider_pkey_test", "test/provider_status_test", "test/provider_test", "test/punycode_test", + "test/quic_ackm_test", + "test/quic_cc_test", + "test/quic_cfq_test", + "test/quic_client_test", + "test/quic_fc_test", + "test/quic_fifd_test", + "test/quic_lcidm_test", + "test/quic_multistream_test", + "test/quic_newcid_test", + "test/quic_qlog_test", + "test/quic_radix_test", + "test/quic_rcidm_test", + "test/quic_record_test", + "test/quic_srt_gen_test", + "test/quic_srtm_test", + "test/quic_stream_test", + "test/quic_tserver_test", + "test/quic_txp_test", + "test/quic_txpim_test", + "test/quic_wire_test", + "test/quicapitest", + "test/quicfaultstest", "test/rand_status_test", "test/rand_test", "test/rc2test", "test/rc4test", "test/rc5test", - "test/rdrand_sanitytest", + "test/rdcpu_sanitytest", "test/recordlentest", + "test/rpktest", "test/rsa_complex", "test/rsa_mp_test", "test/rsa_sp800_56b_test", "test/rsa_test", + "test/rsa_x931_test", + "test/safe_math_test", "test/sanitytest", "test/secmemtest", "test/servername_test", "test/sha_test", "test/siphash_internal_test", + "test/slh_dsa_test", "test/sm2_internal_test", "test/sm3_internal_test", "test/sm4_internal_test", @@ -20481,6 +23880,7 @@ our %unified_info = ( "test/srptest", "test/ssl_cert_table_internal_test", "test/ssl_ctx_test", + "test/ssl_handshake_rtt_test", "test/ssl_old_test", "test/ssl_test", "test/ssl_test_ctx_test", @@ -20488,13 +23888,17 @@ our %unified_info = ( "test/sslbuffertest", "test/sslcorrupttest", "test/stack_test", + "test/strtoultest", "test/sysdefaulttest", "test/test_test", + "test/threadpool_test", "test/threadstest", "test/threadstest_fips", "test/time_offset_test", + "test/time_test", "test/tls13ccstest", "test/tls13encryptiontest", + "test/tls13groupselection_test", "test/trace_api_test", "test/uitest", "test/upcallstest", @@ -20504,9 +23908,13 @@ our %unified_info = ( "test/verify_extra_test", "test/versions", "test/wpackettest", + "test/x509_acert_test", "test/x509_check_cert_pkey_test", "test/x509_dup_cert_test", "test/x509_internal_test", + "test/x509_load_cert_file_test", + "test/x509_req_test", + "test/x509_test", "test/x509_time_test", "test/x509aux" ], @@ -20522,6 +23930,33 @@ our %unified_info = ( "apps/CA.pl" => [ "apps/CA.pl.in" ], + "apps/ca_internals_test-bin-ca.o" => [ + "apps/ca.c" + ], + "apps/lib/ca_internals_test-bin-app_libctx.o" => [ + "apps/lib/app_libctx.c" + ], + "apps/lib/ca_internals_test-bin-app_provider.o" => [ + "apps/lib/app_provider.c" + ], + "apps/lib/ca_internals_test-bin-app_rand.o" => [ + "apps/lib/app_rand.c" + ], + "apps/lib/ca_internals_test-bin-app_x509.o" => [ + "apps/lib/app_x509.c" + ], + "apps/lib/ca_internals_test-bin-apps.o" => [ + "apps/lib/apps.c" + ], + "apps/lib/ca_internals_test-bin-apps_ui.o" => [ + "apps/lib/apps_ui.c" + ], + "apps/lib/ca_internals_test-bin-engine.o" => [ + "apps/lib/engine.c" + ], + "apps/lib/ca_internals_test-bin-fmt.o" => [ + "apps/lib/fmt.c" + ], "apps/lib/cmp_client_test-bin-cmp_mock_srv.o" => [ "apps/lib/cmp_mock_srv.c" ], @@ -20543,6 +23978,9 @@ our %unified_info = ( "apps/lib/libapps-lib-apps.o" => [ "apps/lib/apps.c" ], + "apps/lib/libapps-lib-apps_opt_printf.o" => [ + "apps/lib/apps_opt_printf.c" + ], "apps/lib/libapps-lib-apps_ui.o" => [ "apps/lib/apps_ui.c" ], @@ -20561,6 +23999,9 @@ our %unified_info = ( "apps/lib/libapps-lib-http_server.o" => [ "apps/lib/http_server.c" ], + "apps/lib/libapps-lib-log.o" => [ + "apps/lib/log.c" + ], "apps/lib/libapps-lib-names.o" => [ "apps/lib/names.c" ], @@ -20592,12 +24033,14 @@ our %unified_info = ( "apps/lib/libapps-lib-app_rand.o", "apps/lib/libapps-lib-app_x509.o", "apps/lib/libapps-lib-apps.o", + "apps/lib/libapps-lib-apps_opt_printf.o", "apps/lib/libapps-lib-apps_ui.o", "apps/lib/libapps-lib-columns.o", "apps/lib/libapps-lib-engine.o", "apps/lib/libapps-lib-engine_loader.o", "apps/lib/libapps-lib-fmt.o", "apps/lib/libapps-lib-http_server.o", + "apps/lib/libapps-lib-log.o", "apps/lib/libapps-lib-names.o", "apps/lib/libapps-lib-opt.o", "apps/lib/libapps-lib-s_cb.o", @@ -20651,6 +24094,7 @@ our %unified_info = ( "apps/openssl-bin-s_server.o", "apps/openssl-bin-s_time.o", "apps/openssl-bin-sess_id.o", + "apps/openssl-bin-skeyutl.o", "apps/openssl-bin-smime.o", "apps/openssl-bin-speed.o", "apps/openssl-bin-spkac.o", @@ -20796,6 +24240,9 @@ our %unified_info = ( "apps/openssl-bin-sess_id.o" => [ "apps/sess_id.c" ], + "apps/openssl-bin-skeyutl.o" => [ + "apps/skeyutl.c" + ], "apps/openssl-bin-smime.o" => [ "apps/smime.c" ], @@ -20877,6 +24324,12 @@ our %unified_info = ( "crypto/aria/libcrypto-lib-aria.o" => [ "crypto/aria/aria.c" ], + "crypto/asn1/asn1_time_test-bin-a_time.o" => [ + "crypto/asn1/a_time.c" + ], + "crypto/asn1/ca_internals_test-bin-a_time.o" => [ + "crypto/asn1/a_time.c" + ], "crypto/asn1/libcrypto-lib-a_bitstr.o" => [ "crypto/asn1/a_bitstr.c" ], @@ -21069,6 +24522,9 @@ our %unified_info = ( "crypto/asn1/libcrypto-lib-x_val.o" => [ "crypto/asn1/x_val.c" ], + "crypto/asn1_time_test-bin-ctype.o" => [ + "crypto/ctype.c" + ], "crypto/async/arch/libcrypto-lib-async_null.o" => [ "crypto/async/arch/async_null.c" ], @@ -21162,6 +24618,9 @@ our %unified_info = ( "crypto/bio/libcrypto-lib-bss_dgram.o" => [ "crypto/bio/bss_dgram.c" ], + "crypto/bio/libcrypto-lib-bss_dgram_pair.o" => [ + "crypto/bio/bss_dgram_pair.c" + ], "crypto/bio/libcrypto-lib-bss_fd.o" => [ "crypto/bio/bss_fd.c" ], @@ -21387,6 +24846,9 @@ our %unified_info = ( "crypto/buffer/libfips-lib-buffer.o" => [ "crypto/buffer/buffer.c" ], + "crypto/ca_internals_test-bin-ctype.o" => [ + "crypto/ctype.c" + ], "crypto/camellia/libcrypto-lib-camellia.o" => [ "crypto/camellia/camellia.c" ], @@ -21444,6 +24906,9 @@ our %unified_info = ( "crypto/cmp/libcrypto-lib-cmp_err.o" => [ "crypto/cmp/cmp_err.c" ], + "crypto/cmp/libcrypto-lib-cmp_genm.o" => [ + "crypto/cmp/cmp_genm.c" + ], "crypto/cmp/libcrypto-lib-cmp_hdr.o" => [ "crypto/cmp/cmp_hdr.c" ], @@ -22131,9 +25596,15 @@ our %unified_info = ( "crypto/err/libcrypto-lib-err_blocks.o" => [ "crypto/err/err_blocks.c" ], + "crypto/err/libcrypto-lib-err_mark.o" => [ + "crypto/err/err_mark.c" + ], "crypto/err/libcrypto-lib-err_prn.o" => [ "crypto/err/err_prn.c" ], + "crypto/err/libcrypto-lib-err_save.o" => [ + "crypto/err/err_save.c" + ], "crypto/ess/libcrypto-lib-ess_asn1.o" => [ "crypto/ess/ess_asn1.c" ], @@ -22380,9 +25851,15 @@ our %unified_info = ( "crypto/evp/libcrypto-lib-pmeth_lib.o" => [ "crypto/evp/pmeth_lib.c" ], + "crypto/evp/libcrypto-lib-s_lib.o" => [ + "crypto/evp/s_lib.c" + ], "crypto/evp/libcrypto-lib-signature.o" => [ "crypto/evp/signature.c" ], + "crypto/evp/libcrypto-lib-skeymgmt_meth.o" => [ + "crypto/evp/skeymgmt_meth.c" + ], "crypto/evp/libfips-lib-asymcipher.o" => [ "crypto/evp/asymcipher.c" ], @@ -22428,9 +25905,6 @@ our %unified_info = ( "crypto/evp/libfips-lib-keymgmt_meth.o" => [ "crypto/evp/keymgmt_meth.c" ], - "crypto/evp/libfips-lib-m_sigver.o" => [ - "crypto/evp/m_sigver.c" - ], "crypto/evp/libfips-lib-mac_lib.o" => [ "crypto/evp/mac_lib.c" ], @@ -22449,9 +25923,15 @@ our %unified_info = ( "crypto/evp/libfips-lib-pmeth_lib.o" => [ "crypto/evp/pmeth_lib.c" ], + "crypto/evp/libfips-lib-s_lib.o" => [ + "crypto/evp/s_lib.c" + ], "crypto/evp/libfips-lib-signature.o" => [ "crypto/evp/signature.c" ], + "crypto/evp/libfips-lib-skeymgmt_meth.o" => [ + "crypto/evp/skeymgmt_meth.c" + ], "crypto/ffc/libcrypto-lib-ffc_backend.o" => [ "crypto/ffc/ffc_backend.c" ], @@ -22494,12 +25974,30 @@ our %unified_info = ( "crypto/ffc/libfips-lib-ffc_params_validate.o" => [ "crypto/ffc/ffc_params_validate.c" ], + "crypto/hashtable/libcrypto-lib-hashfunc.o" => [ + "crypto/hashtable/hashfunc.c" + ], + "crypto/hashtable/libcrypto-lib-hashtable.o" => [ + "crypto/hashtable/hashtable.c" + ], + "crypto/hashtable/libfips-lib-hashfunc.o" => [ + "crypto/hashtable/hashfunc.c" + ], + "crypto/hashtable/libfips-lib-hashtable.o" => [ + "crypto/hashtable/hashtable.c" + ], "crypto/hmac/libcrypto-lib-hmac.o" => [ "crypto/hmac/hmac.c" ], "crypto/hmac/libfips-lib-hmac.o" => [ "crypto/hmac/hmac.c" ], + "crypto/hpke/libcrypto-lib-hpke.o" => [ + "crypto/hpke/hpke.c" + ], + "crypto/hpke/libcrypto-lib-hpke_util.o" => [ + "crypto/hpke/hpke_util.c" + ], "crypto/http/libcrypto-lib-http_client.o" => [ "crypto/http/http_client.c" ], @@ -22548,6 +26046,9 @@ our %unified_info = ( "crypto/libcrypto-lib-bsearch.o" => [ "crypto/bsearch.c" ], + "crypto/libcrypto-lib-comp_methods.o" => [ + "crypto/comp_methods.c" + ], "crypto/libcrypto-lib-context.o" => [ "crypto/context.c" ], @@ -22575,9 +26076,15 @@ our %unified_info = ( "crypto/libcrypto-lib-cversion.o" => [ "crypto/cversion.c" ], + "crypto/libcrypto-lib-defaults.o" => [ + "crypto/defaults.c" + ], "crypto/libcrypto-lib-der_writer.o" => [ "crypto/der_writer.c" ], + "crypto/libcrypto-lib-deterministic_nonce.o" => [ + "crypto/deterministic_nonce.c" + ], "crypto/libcrypto-lib-ebcdic.o" => [ "crypto/ebcdic.c" ], @@ -22587,6 +26094,9 @@ our %unified_info = ( "crypto/libcrypto-lib-getenv.o" => [ "crypto/getenv.c" ], + "crypto/libcrypto-lib-indicator_core.o" => [ + "crypto/indicator_core.c" + ], "crypto/libcrypto-lib-info.o" => [ "crypto/info.c" ], @@ -22635,6 +26145,9 @@ our %unified_info = ( "crypto/libcrypto-lib-params_from_text.o" => [ "crypto/params_from_text.c" ], + "crypto/libcrypto-lib-params_idx.o" => [ + "crypto/params_idx.c" + ], "crypto/libcrypto-lib-passphrase.o" => [ "crypto/passphrase.c" ], @@ -22656,12 +26169,21 @@ our %unified_info = ( "crypto/libcrypto-lib-punycode.o" => [ "crypto/punycode.c" ], + "crypto/libcrypto-lib-quic_vlint.o" => [ + "crypto/quic_vlint.c" + ], "crypto/libcrypto-lib-self_test_core.o" => [ "crypto/self_test_core.c" ], + "crypto/libcrypto-lib-sleep.o" => [ + "crypto/sleep.c" + ], "crypto/libcrypto-lib-sparse_array.o" => [ "crypto/sparse_array.c" ], + "crypto/libcrypto-lib-ssl_err.o" => [ + "crypto/ssl_err.c" + ], "crypto/libcrypto-lib-threads_lib.o" => [ "crypto/threads_lib.c" ], @@ -22674,6 +26196,9 @@ our %unified_info = ( "crypto/libcrypto-lib-threads_win.o" => [ "crypto/threads_win.c" ], + "crypto/libcrypto-lib-time.o" => [ + "crypto/time.c" + ], "crypto/libcrypto-lib-trace.o" => [ "crypto/trace.c" ], @@ -22743,6 +26268,9 @@ our %unified_info = ( "crypto/libfips-lib-params_from_text.o" => [ "crypto/params_from_text.c" ], + "crypto/libfips-lib-params_idx.o" => [ + "crypto/params_idx.c" + ], "crypto/libfips-lib-provider_core.o" => [ "crypto/provider_core.c" ], @@ -22767,6 +26295,9 @@ our %unified_info = ( "crypto/libfips-lib-threads_win.o" => [ "crypto/threads_win.c" ], + "crypto/libfips-lib-time.o" => [ + "crypto/time.c" + ], "crypto/md4/libcrypto-lib-md4_dgst.o" => [ "crypto/md4/md4_dgst.c" ], @@ -22788,6 +26319,60 @@ our %unified_info = ( "crypto/mdc2/libcrypto-lib-mdc2dgst.o" => [ "crypto/mdc2/mdc2dgst.c" ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_encoders.o" => [ + "crypto/ml_dsa/ml_dsa_encoders.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key.o" => [ + "crypto/ml_dsa/ml_dsa_key.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key_compress.o" => [ + "crypto/ml_dsa/ml_dsa_key_compress.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_matrix.o" => [ + "crypto/ml_dsa/ml_dsa_matrix.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_ntt.o" => [ + "crypto/ml_dsa/ml_dsa_ntt.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_params.o" => [ + "crypto/ml_dsa/ml_dsa_params.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sample.o" => [ + "crypto/ml_dsa/ml_dsa_sample.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sign.o" => [ + "crypto/ml_dsa/ml_dsa_sign.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_encoders.o" => [ + "crypto/ml_dsa/ml_dsa_encoders.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_key.o" => [ + "crypto/ml_dsa/ml_dsa_key.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_key_compress.o" => [ + "crypto/ml_dsa/ml_dsa_key_compress.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_matrix.o" => [ + "crypto/ml_dsa/ml_dsa_matrix.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_ntt.o" => [ + "crypto/ml_dsa/ml_dsa_ntt.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_params.o" => [ + "crypto/ml_dsa/ml_dsa_params.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_sample.o" => [ + "crypto/ml_dsa/ml_dsa_sample.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_sign.o" => [ + "crypto/ml_dsa/ml_dsa_sign.c" + ], + "crypto/ml_kem/libcrypto-lib-ml_kem.o" => [ + "crypto/ml_kem/ml_kem.c" + ], + "crypto/ml_kem/libfips-lib-ml_kem.o" => [ + "crypto/ml_kem/ml_kem.c" + ], "crypto/modes/libcrypto-lib-cbc128.o" => [ "crypto/modes/cbc128.c" ], @@ -22827,6 +26412,9 @@ our %unified_info = ( "crypto/modes/libcrypto-lib-xts128.o" => [ "crypto/modes/xts128.c" ], + "crypto/modes/libcrypto-lib-xts128gb.o" => [ + "crypto/modes/xts128gb.c" + ], "crypto/modes/libfips-lib-cbc128.o" => [ "crypto/modes/cbc128.c" ], @@ -22857,6 +26445,9 @@ our %unified_info = ( "crypto/modes/libfips-lib-xts128.o" => [ "crypto/modes/xts128.c" ], + "crypto/modes/libfips-lib-xts128gb.o" => [ + "crypto/modes/xts128gb.c" + ], "crypto/objects/libcrypto-lib-o_names.o" => [ "crypto/objects/o_names.c" ], @@ -22902,6 +26493,9 @@ our %unified_info = ( "crypto/ocsp/libcrypto-lib-v3_ocsp.o" => [ "crypto/ocsp/v3_ocsp.c" ], + "crypto/packettest-bin-quic_vlint.o" => [ + "crypto/quic_vlint.c" + ], "crypto/pem/libcrypto-lib-pem_all.o" => [ "crypto/pem/pem_all.c" ], @@ -23064,6 +26658,9 @@ our %unified_info = ( "crypto/rand/libcrypto-lib-rand_pool.o" => [ "crypto/rand/rand_pool.c" ], + "crypto/rand/libcrypto-lib-rand_uniform.o" => [ + "crypto/rand/rand_uniform.c" + ], "crypto/rand/libcrypto-lib-randfile.o" => [ "crypto/rand/randfile.c" ], @@ -23295,6 +26892,66 @@ our %unified_info = ( "crypto/siphash/libcrypto-lib-siphash.o" => [ "crypto/siphash/siphash.c" ], + "crypto/slh_dsa/libcrypto-lib-slh_adrs.o" => [ + "crypto/slh_dsa/slh_adrs.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_dsa.o" => [ + "crypto/slh_dsa/slh_dsa.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_dsa_hash_ctx.o" => [ + "crypto/slh_dsa/slh_dsa_hash_ctx.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_dsa_key.o" => [ + "crypto/slh_dsa/slh_dsa_key.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_fors.o" => [ + "crypto/slh_dsa/slh_fors.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_hash.o" => [ + "crypto/slh_dsa/slh_hash.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_hypertree.o" => [ + "crypto/slh_dsa/slh_hypertree.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_params.o" => [ + "crypto/slh_dsa/slh_params.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_wots.o" => [ + "crypto/slh_dsa/slh_wots.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_xmss.o" => [ + "crypto/slh_dsa/slh_xmss.c" + ], + "crypto/slh_dsa/libfips-lib-slh_adrs.o" => [ + "crypto/slh_dsa/slh_adrs.c" + ], + "crypto/slh_dsa/libfips-lib-slh_dsa.o" => [ + "crypto/slh_dsa/slh_dsa.c" + ], + "crypto/slh_dsa/libfips-lib-slh_dsa_hash_ctx.o" => [ + "crypto/slh_dsa/slh_dsa_hash_ctx.c" + ], + "crypto/slh_dsa/libfips-lib-slh_dsa_key.o" => [ + "crypto/slh_dsa/slh_dsa_key.c" + ], + "crypto/slh_dsa/libfips-lib-slh_fors.o" => [ + "crypto/slh_dsa/slh_fors.c" + ], + "crypto/slh_dsa/libfips-lib-slh_hash.o" => [ + "crypto/slh_dsa/slh_hash.c" + ], + "crypto/slh_dsa/libfips-lib-slh_hypertree.o" => [ + "crypto/slh_dsa/slh_hypertree.c" + ], + "crypto/slh_dsa/libfips-lib-slh_params.o" => [ + "crypto/slh_dsa/slh_params.c" + ], + "crypto/slh_dsa/libfips-lib-slh_wots.o" => [ + "crypto/slh_dsa/slh_wots.c" + ], + "crypto/slh_dsa/libfips-lib-slh_xmss.o" => [ + "crypto/slh_dsa/slh_xmss.c" + ], "crypto/sm2/libcrypto-lib-sm2_crypt.o" => [ "crypto/sm2/sm2_crypt.c" ], @@ -23349,6 +27006,42 @@ our %unified_info = ( "crypto/store/libcrypto-lib-store_strings.o" => [ "crypto/store/store_strings.c" ], + "crypto/thread/arch/libcrypto-lib-thread_none.o" => [ + "crypto/thread/arch/thread_none.c" + ], + "crypto/thread/arch/libcrypto-lib-thread_posix.o" => [ + "crypto/thread/arch/thread_posix.c" + ], + "crypto/thread/arch/libcrypto-lib-thread_win.o" => [ + "crypto/thread/arch/thread_win.c" + ], + "crypto/thread/arch/libfips-lib-thread_none.o" => [ + "crypto/thread/arch/thread_none.c" + ], + "crypto/thread/arch/libfips-lib-thread_posix.o" => [ + "crypto/thread/arch/thread_posix.c" + ], + "crypto/thread/arch/libfips-lib-thread_win.o" => [ + "crypto/thread/arch/thread_win.c" + ], + "crypto/thread/libcrypto-lib-api.o" => [ + "crypto/thread/api.c" + ], + "crypto/thread/libcrypto-lib-arch.o" => [ + "crypto/thread/arch.c" + ], + "crypto/thread/libcrypto-lib-internal.o" => [ + "crypto/thread/internal.c" + ], + "crypto/thread/libfips-lib-api.o" => [ + "crypto/thread/api.c" + ], + "crypto/thread/libfips-lib-arch.o" => [ + "crypto/thread/arch.c" + ], + "crypto/thread/libfips-lib-internal.o" => [ + "crypto/thread/internal.c" + ], "crypto/ts/libcrypto-lib-ts_asn1.o" => [ "crypto/ts/ts_asn1.c" ], @@ -23433,6 +27126,9 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-pcy_tree.o" => [ "crypto/x509/pcy_tree.c" ], + "crypto/x509/libcrypto-lib-t_acert.o" => [ + "crypto/x509/t_acert.c" + ], "crypto/x509/libcrypto-lib-t_crl.o" => [ "crypto/x509/t_crl.c" ], @@ -23442,6 +27138,12 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-t_x509.o" => [ "crypto/x509/t_x509.c" ], + "crypto/x509/libcrypto-lib-v3_aaa.o" => [ + "crypto/x509/v3_aaa.c" + ], + "crypto/x509/libcrypto-lib-v3_ac_tgt.o" => [ + "crypto/x509/v3_ac_tgt.c" + ], "crypto/x509/libcrypto-lib-v3_addr.o" => [ "crypto/x509/v3_addr.c" ], @@ -23457,6 +27159,21 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_asid.o" => [ "crypto/x509/v3_asid.c" ], + "crypto/x509/libcrypto-lib-v3_attrdesc.o" => [ + "crypto/x509/v3_attrdesc.c" + ], + "crypto/x509/libcrypto-lib-v3_attrmap.o" => [ + "crypto/x509/v3_attrmap.c" + ], + "crypto/x509/libcrypto-lib-v3_audit_id.o" => [ + "crypto/x509/v3_audit_id.c" + ], + "crypto/x509/libcrypto-lib-v3_authattid.o" => [ + "crypto/x509/v3_authattid.c" + ], + "crypto/x509/libcrypto-lib-v3_battcons.o" => [ + "crypto/x509/v3_battcons.c" + ], "crypto/x509/libcrypto-lib-v3_bcons.o" => [ "crypto/x509/v3_bcons.c" ], @@ -23481,15 +27198,24 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_genn.o" => [ "crypto/x509/v3_genn.c" ], + "crypto/x509/libcrypto-lib-v3_group_ac.o" => [ + "crypto/x509/v3_group_ac.c" + ], "crypto/x509/libcrypto-lib-v3_ia5.o" => [ "crypto/x509/v3_ia5.c" ], + "crypto/x509/libcrypto-lib-v3_ind_iss.o" => [ + "crypto/x509/v3_ind_iss.c" + ], "crypto/x509/libcrypto-lib-v3_info.o" => [ "crypto/x509/v3_info.c" ], "crypto/x509/libcrypto-lib-v3_int.o" => [ "crypto/x509/v3_int.c" ], + "crypto/x509/libcrypto-lib-v3_iobo.o" => [ + "crypto/x509/v3_iobo.c" + ], "crypto/x509/libcrypto-lib-v3_ist.o" => [ "crypto/x509/v3_ist.c" ], @@ -23499,6 +27225,12 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_ncons.o" => [ "crypto/x509/v3_ncons.c" ], + "crypto/x509/libcrypto-lib-v3_no_ass.o" => [ + "crypto/x509/v3_no_ass.c" + ], + "crypto/x509/libcrypto-lib-v3_no_rev_avail.o" => [ + "crypto/x509/v3_no_rev_avail.c" + ], "crypto/x509/libcrypto-lib-v3_pci.o" => [ "crypto/x509/v3_pci.c" ], @@ -23520,18 +27252,36 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_purp.o" => [ "crypto/x509/v3_purp.c" ], + "crypto/x509/libcrypto-lib-v3_rolespec.o" => [ + "crypto/x509/v3_rolespec.c" + ], "crypto/x509/libcrypto-lib-v3_san.o" => [ "crypto/x509/v3_san.c" ], + "crypto/x509/libcrypto-lib-v3_sda.o" => [ + "crypto/x509/v3_sda.c" + ], + "crypto/x509/libcrypto-lib-v3_single_use.o" => [ + "crypto/x509/v3_single_use.c" + ], "crypto/x509/libcrypto-lib-v3_skid.o" => [ "crypto/x509/v3_skid.c" ], + "crypto/x509/libcrypto-lib-v3_soa_id.o" => [ + "crypto/x509/v3_soa_id.c" + ], "crypto/x509/libcrypto-lib-v3_sxnet.o" => [ "crypto/x509/v3_sxnet.c" ], + "crypto/x509/libcrypto-lib-v3_timespec.o" => [ + "crypto/x509/v3_timespec.c" + ], "crypto/x509/libcrypto-lib-v3_tlsf.o" => [ "crypto/x509/v3_tlsf.c" ], + "crypto/x509/libcrypto-lib-v3_usernotice.o" => [ + "crypto/x509/v3_usernotice.c" + ], "crypto/x509/libcrypto-lib-v3_utf8.o" => [ "crypto/x509/v3_utf8.c" ], @@ -23541,6 +27291,9 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3err.o" => [ "crypto/x509/v3err.c" ], + "crypto/x509/libcrypto-lib-x509_acert.o" => [ + "crypto/x509/x509_acert.c" + ], "crypto/x509/libcrypto-lib-x509_att.o" => [ "crypto/x509/x509_att.c" ], @@ -23592,6 +27345,9 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x509_vpm.o" => [ "crypto/x509/x509_vpm.c" ], + "crypto/x509/libcrypto-lib-x509aset.o" => [ + "crypto/x509/x509aset.c" + ], "crypto/x509/libcrypto-lib-x509cset.o" => [ "crypto/x509/x509cset.c" ], @@ -23619,6 +27375,9 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x_exten.o" => [ "crypto/x509/x_exten.c" ], + "crypto/x509/libcrypto-lib-x_ietfatt.o" => [ + "crypto/x509/x_ietfatt.c" + ], "crypto/x509/libcrypto-lib-x_name.o" => [ "crypto/x509/x_name.c" ], @@ -23640,6 +27399,16 @@ our %unified_info = ( "engines/libcrypto-lib-e_padlock.o" => [ "engines/e_padlock.c" ], + "fuzz/acert-test" => [ + "fuzz/acert-test-bin-acert.o", + "fuzz/acert-test-bin-test-corpus.o" + ], + "fuzz/acert-test-bin-acert.o" => [ + "fuzz/acert.c" + ], + "fuzz/acert-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], "fuzz/asn1-test" => [ "fuzz/asn1-test-bin-asn1.o", "fuzz/asn1-test-bin-fuzz_rand.o", @@ -23752,6 +27521,190 @@ our %unified_info = ( "fuzz/ct-test-bin-test-corpus.o" => [ "fuzz/test-corpus.c" ], + "fuzz/decoder-test" => [ + "fuzz/decoder-test-bin-decoder.o", + "fuzz/decoder-test-bin-fuzz_rand.o", + "fuzz/decoder-test-bin-test-corpus.o" + ], + "fuzz/decoder-test-bin-decoder.o" => [ + "fuzz/decoder.c" + ], + "fuzz/decoder-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/decoder-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/dtlsclient-test" => [ + "fuzz/dtlsclient-test-bin-dtlsclient.o", + "fuzz/dtlsclient-test-bin-fuzz_rand.o", + "fuzz/dtlsclient-test-bin-test-corpus.o" + ], + "fuzz/dtlsclient-test-bin-dtlsclient.o" => [ + "fuzz/dtlsclient.c" + ], + "fuzz/dtlsclient-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/dtlsclient-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/dtlsserver-test" => [ + "fuzz/dtlsserver-test-bin-dtlsserver.o", + "fuzz/dtlsserver-test-bin-fuzz_rand.o", + "fuzz/dtlsserver-test-bin-test-corpus.o" + ], + "fuzz/dtlsserver-test-bin-dtlsserver.o" => [ + "fuzz/dtlsserver.c" + ], + "fuzz/dtlsserver-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/dtlsserver-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/hashtable-test" => [ + "fuzz/hashtable-test-bin-fuzz_rand.o", + "fuzz/hashtable-test-bin-hashtable.o", + "fuzz/hashtable-test-bin-test-corpus.o" + ], + "fuzz/hashtable-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/hashtable-test-bin-hashtable.o" => [ + "fuzz/hashtable.c" + ], + "fuzz/hashtable-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/ml-dsa-test" => [ + "fuzz/ml-dsa-test-bin-fuzz_rand.o", + "fuzz/ml-dsa-test-bin-ml-dsa.o", + "fuzz/ml-dsa-test-bin-test-corpus.o" + ], + "fuzz/ml-dsa-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/ml-dsa-test-bin-ml-dsa.o" => [ + "fuzz/ml-dsa.c" + ], + "fuzz/ml-dsa-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/ml-kem-test" => [ + "fuzz/ml-kem-test-bin-fuzz_rand.o", + "fuzz/ml-kem-test-bin-ml-kem.o", + "fuzz/ml-kem-test-bin-test-corpus.o" + ], + "fuzz/ml-kem-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/ml-kem-test-bin-ml-kem.o" => [ + "fuzz/ml-kem.c" + ], + "fuzz/ml-kem-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/pem-test" => [ + "fuzz/pem-test-bin-pem.o", + "fuzz/pem-test-bin-test-corpus.o" + ], + "fuzz/pem-test-bin-pem.o" => [ + "fuzz/pem.c" + ], + "fuzz/pem-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/provider-test" => [ + "fuzz/provider-test-bin-provider.o", + "fuzz/provider-test-bin-test-corpus.o" + ], + "fuzz/provider-test-bin-provider.o" => [ + "fuzz/provider.c" + ], + "fuzz/provider-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/punycode-test" => [ + "fuzz/punycode-test-bin-punycode.o", + "fuzz/punycode-test-bin-test-corpus.o" + ], + "fuzz/punycode-test-bin-punycode.o" => [ + "fuzz/punycode.c" + ], + "fuzz/punycode-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-client-test" => [ + "fuzz/quic-client-test-bin-fuzz_rand.o", + "fuzz/quic-client-test-bin-quic-client.o", + "fuzz/quic-client-test-bin-test-corpus.o" + ], + "fuzz/quic-client-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-client-test-bin-quic-client.o" => [ + "fuzz/quic-client.c" + ], + "fuzz/quic-client-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-lcidm-test" => [ + "fuzz/quic-lcidm-test-bin-fuzz_rand.o", + "fuzz/quic-lcidm-test-bin-quic-lcidm.o", + "fuzz/quic-lcidm-test-bin-test-corpus.o" + ], + "fuzz/quic-lcidm-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-lcidm-test-bin-quic-lcidm.o" => [ + "fuzz/quic-lcidm.c" + ], + "fuzz/quic-lcidm-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-rcidm-test" => [ + "fuzz/quic-rcidm-test-bin-fuzz_rand.o", + "fuzz/quic-rcidm-test-bin-quic-rcidm.o", + "fuzz/quic-rcidm-test-bin-test-corpus.o" + ], + "fuzz/quic-rcidm-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-rcidm-test-bin-quic-rcidm.o" => [ + "fuzz/quic-rcidm.c" + ], + "fuzz/quic-rcidm-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-server-test" => [ + "fuzz/quic-server-test-bin-fuzz_rand.o", + "fuzz/quic-server-test-bin-quic-server.o", + "fuzz/quic-server-test-bin-test-corpus.o" + ], + "fuzz/quic-server-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-server-test-bin-quic-server.o" => [ + "fuzz/quic-server.c" + ], + "fuzz/quic-server-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-srtm-test" => [ + "fuzz/quic-srtm-test-bin-fuzz_rand.o", + "fuzz/quic-srtm-test-bin-quic-srtm.o", + "fuzz/quic-srtm-test-bin-test-corpus.o" + ], + "fuzz/quic-srtm-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-srtm-test-bin-quic-srtm.o" => [ + "fuzz/quic-srtm.c" + ], + "fuzz/quic-srtm-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], "fuzz/server-test" => [ "fuzz/server-test-bin-fuzz_rand.o", "fuzz/server-test-bin-server.o", @@ -23766,6 +27719,40 @@ our %unified_info = ( "fuzz/server-test-bin-test-corpus.o" => [ "fuzz/test-corpus.c" ], + "fuzz/slh-dsa-test" => [ + "fuzz/slh-dsa-test-bin-fuzz_rand.o", + "fuzz/slh-dsa-test-bin-slh-dsa.o", + "fuzz/slh-dsa-test-bin-test-corpus.o" + ], + "fuzz/slh-dsa-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/slh-dsa-test-bin-slh-dsa.o" => [ + "fuzz/slh-dsa.c" + ], + "fuzz/slh-dsa-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/smime-test" => [ + "fuzz/smime-test-bin-smime.o", + "fuzz/smime-test-bin-test-corpus.o" + ], + "fuzz/smime-test-bin-smime.o" => [ + "fuzz/smime.c" + ], + "fuzz/smime-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/v3name-test" => [ + "fuzz/v3name-test-bin-test-corpus.o", + "fuzz/v3name-test-bin-v3name.o" + ], + "fuzz/v3name-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/v3name-test-bin-v3name.o" => [ + "fuzz/v3name.c" + ], "fuzz/x509-test" => [ "fuzz/x509-test-bin-fuzz_rand.o", "fuzz/x509-test-bin-test-corpus.o", @@ -23887,6 +27874,7 @@ our %unified_info = ( "crypto/bio/libcrypto-lib-bss_conn.o", "crypto/bio/libcrypto-lib-bss_core.o", "crypto/bio/libcrypto-lib-bss_dgram.o", + "crypto/bio/libcrypto-lib-bss_dgram_pair.o", "crypto/bio/libcrypto-lib-bss_fd.o", "crypto/bio/libcrypto-lib-bss_file.o", "crypto/bio/libcrypto-lib-bss_log.o", @@ -23949,6 +27937,7 @@ our %unified_info = ( "crypto/cmp/libcrypto-lib-cmp_client.o", "crypto/cmp/libcrypto-lib-cmp_ctx.o", "crypto/cmp/libcrypto-lib-cmp_err.o", + "crypto/cmp/libcrypto-lib-cmp_genm.o", "crypto/cmp/libcrypto-lib-cmp_hdr.o", "crypto/cmp/libcrypto-lib-cmp_http.o", "crypto/cmp/libcrypto-lib-cmp_msg.o", @@ -24126,7 +28115,9 @@ our %unified_info = ( "crypto/err/libcrypto-lib-err_all.o", "crypto/err/libcrypto-lib-err_all_legacy.o", "crypto/err/libcrypto-lib-err_blocks.o", + "crypto/err/libcrypto-lib-err_mark.o", "crypto/err/libcrypto-lib-err_prn.o", + "crypto/err/libcrypto-lib-err_save.o", "crypto/ess/libcrypto-lib-ess_asn1.o", "crypto/ess/libcrypto-lib-ess_err.o", "crypto/ess/libcrypto-lib-ess_lib.o", @@ -24209,7 +28200,9 @@ our %unified_info = ( "crypto/evp/libcrypto-lib-pmeth_check.o", "crypto/evp/libcrypto-lib-pmeth_gn.o", "crypto/evp/libcrypto-lib-pmeth_lib.o", + "crypto/evp/libcrypto-lib-s_lib.o", "crypto/evp/libcrypto-lib-signature.o", + "crypto/evp/libcrypto-lib-skeymgmt_meth.o", "crypto/ffc/libcrypto-lib-ffc_backend.o", "crypto/ffc/libcrypto-lib-ffc_dh.o", "crypto/ffc/libcrypto-lib-ffc_key_generate.o", @@ -24217,7 +28210,11 @@ our %unified_info = ( "crypto/ffc/libcrypto-lib-ffc_params.o", "crypto/ffc/libcrypto-lib-ffc_params_generate.o", "crypto/ffc/libcrypto-lib-ffc_params_validate.o", + "crypto/hashtable/libcrypto-lib-hashfunc.o", + "crypto/hashtable/libcrypto-lib-hashtable.o", "crypto/hmac/libcrypto-lib-hmac.o", + "crypto/hpke/libcrypto-lib-hpke.o", + "crypto/hpke/libcrypto-lib-hpke_util.o", "crypto/http/libcrypto-lib-http_client.o", "crypto/http/libcrypto-lib-http_err.o", "crypto/http/libcrypto-lib-http_lib.o", @@ -24233,6 +28230,7 @@ our %unified_info = ( "crypto/libcrypto-lib-armv4cpuid.o", "crypto/libcrypto-lib-asn1_dsa.o", "crypto/libcrypto-lib-bsearch.o", + "crypto/libcrypto-lib-comp_methods.o", "crypto/libcrypto-lib-context.o", "crypto/libcrypto-lib-core_algorithm.o", "crypto/libcrypto-lib-core_fetch.o", @@ -24242,10 +28240,13 @@ our %unified_info = ( "crypto/libcrypto-lib-cryptlib.o", "crypto/libcrypto-lib-ctype.o", "crypto/libcrypto-lib-cversion.o", + "crypto/libcrypto-lib-defaults.o", "crypto/libcrypto-lib-der_writer.o", + "crypto/libcrypto-lib-deterministic_nonce.o", "crypto/libcrypto-lib-ebcdic.o", "crypto/libcrypto-lib-ex_data.o", "crypto/libcrypto-lib-getenv.o", + "crypto/libcrypto-lib-indicator_core.o", "crypto/libcrypto-lib-info.o", "crypto/libcrypto-lib-init.o", "crypto/libcrypto-lib-initthread.o", @@ -24262,6 +28263,7 @@ our %unified_info = ( "crypto/libcrypto-lib-params.o", "crypto/libcrypto-lib-params_dup.o", "crypto/libcrypto-lib-params_from_text.o", + "crypto/libcrypto-lib-params_idx.o", "crypto/libcrypto-lib-passphrase.o", "crypto/libcrypto-lib-provider.o", "crypto/libcrypto-lib-provider_child.o", @@ -24269,12 +28271,16 @@ our %unified_info = ( "crypto/libcrypto-lib-provider_core.o", "crypto/libcrypto-lib-provider_predefined.o", "crypto/libcrypto-lib-punycode.o", + "crypto/libcrypto-lib-quic_vlint.o", "crypto/libcrypto-lib-self_test_core.o", + "crypto/libcrypto-lib-sleep.o", "crypto/libcrypto-lib-sparse_array.o", + "crypto/libcrypto-lib-ssl_err.o", "crypto/libcrypto-lib-threads_lib.o", "crypto/libcrypto-lib-threads_none.o", "crypto/libcrypto-lib-threads_pthread.o", "crypto/libcrypto-lib-threads_win.o", + "crypto/libcrypto-lib-time.o", "crypto/libcrypto-lib-trace.o", "crypto/libcrypto-lib-uid.o", "crypto/md4/libcrypto-lib-md4_dgst.o", @@ -24284,6 +28290,15 @@ our %unified_info = ( "crypto/md5/libcrypto-lib-md5_sha1.o", "crypto/mdc2/libcrypto-lib-mdc2_one.o", "crypto/mdc2/libcrypto-lib-mdc2dgst.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_encoders.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key_compress.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_matrix.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_ntt.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_params.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sample.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sign.o", + "crypto/ml_kem/libcrypto-lib-ml_kem.o", "crypto/modes/libcrypto-lib-cbc128.o", "crypto/modes/libcrypto-lib-ccm128.o", "crypto/modes/libcrypto-lib-cfb128.o", @@ -24297,6 +28312,7 @@ our %unified_info = ( "crypto/modes/libcrypto-lib-siv128.o", "crypto/modes/libcrypto-lib-wrap128.o", "crypto/modes/libcrypto-lib-xts128.o", + "crypto/modes/libcrypto-lib-xts128gb.o", "crypto/objects/libcrypto-lib-o_names.o", "crypto/objects/libcrypto-lib-obj_dat.o", "crypto/objects/libcrypto-lib-obj_err.o", @@ -24361,6 +28377,7 @@ our %unified_info = ( "crypto/rand/libcrypto-lib-rand_lib.o", "crypto/rand/libcrypto-lib-rand_meth.o", "crypto/rand/libcrypto-lib-rand_pool.o", + "crypto/rand/libcrypto-lib-rand_uniform.o", "crypto/rand/libcrypto-lib-randfile.o", "crypto/rc2/libcrypto-lib-rc2_cbc.o", "crypto/rc2/libcrypto-lib-rc2_ecb.o", @@ -24412,6 +28429,16 @@ our %unified_info = ( "crypto/sha/libcrypto-lib-sha512-armv4.o", "crypto/sha/libcrypto-lib-sha512.o", "crypto/siphash/libcrypto-lib-siphash.o", + "crypto/slh_dsa/libcrypto-lib-slh_adrs.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa_hash_ctx.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa_key.o", + "crypto/slh_dsa/libcrypto-lib-slh_fors.o", + "crypto/slh_dsa/libcrypto-lib-slh_hash.o", + "crypto/slh_dsa/libcrypto-lib-slh_hypertree.o", + "crypto/slh_dsa/libcrypto-lib-slh_params.o", + "crypto/slh_dsa/libcrypto-lib-slh_wots.o", + "crypto/slh_dsa/libcrypto-lib-slh_xmss.o", "crypto/sm2/libcrypto-lib-sm2_crypt.o", "crypto/sm2/libcrypto-lib-sm2_err.o", "crypto/sm2/libcrypto-lib-sm2_key.o", @@ -24429,6 +28456,12 @@ our %unified_info = ( "crypto/store/libcrypto-lib-store_register.o", "crypto/store/libcrypto-lib-store_result.o", "crypto/store/libcrypto-lib-store_strings.o", + "crypto/thread/arch/libcrypto-lib-thread_none.o", + "crypto/thread/arch/libcrypto-lib-thread_posix.o", + "crypto/thread/arch/libcrypto-lib-thread_win.o", + "crypto/thread/libcrypto-lib-api.o", + "crypto/thread/libcrypto-lib-arch.o", + "crypto/thread/libcrypto-lib-internal.o", "crypto/ts/libcrypto-lib-ts_asn1.o", "crypto/ts/libcrypto-lib-ts_conf.o", "crypto/ts/libcrypto-lib-ts_err.o", @@ -24457,14 +28490,22 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-pcy_map.o", "crypto/x509/libcrypto-lib-pcy_node.o", "crypto/x509/libcrypto-lib-pcy_tree.o", + "crypto/x509/libcrypto-lib-t_acert.o", "crypto/x509/libcrypto-lib-t_crl.o", "crypto/x509/libcrypto-lib-t_req.o", "crypto/x509/libcrypto-lib-t_x509.o", + "crypto/x509/libcrypto-lib-v3_aaa.o", + "crypto/x509/libcrypto-lib-v3_ac_tgt.o", "crypto/x509/libcrypto-lib-v3_addr.o", "crypto/x509/libcrypto-lib-v3_admis.o", "crypto/x509/libcrypto-lib-v3_akeya.o", "crypto/x509/libcrypto-lib-v3_akid.o", "crypto/x509/libcrypto-lib-v3_asid.o", + "crypto/x509/libcrypto-lib-v3_attrdesc.o", + "crypto/x509/libcrypto-lib-v3_attrmap.o", + "crypto/x509/libcrypto-lib-v3_audit_id.o", + "crypto/x509/libcrypto-lib-v3_authattid.o", + "crypto/x509/libcrypto-lib-v3_battcons.o", "crypto/x509/libcrypto-lib-v3_bcons.o", "crypto/x509/libcrypto-lib-v3_bitst.o", "crypto/x509/libcrypto-lib-v3_conf.o", @@ -24473,12 +28514,17 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_enum.o", "crypto/x509/libcrypto-lib-v3_extku.o", "crypto/x509/libcrypto-lib-v3_genn.o", + "crypto/x509/libcrypto-lib-v3_group_ac.o", "crypto/x509/libcrypto-lib-v3_ia5.o", + "crypto/x509/libcrypto-lib-v3_ind_iss.o", "crypto/x509/libcrypto-lib-v3_info.o", "crypto/x509/libcrypto-lib-v3_int.o", + "crypto/x509/libcrypto-lib-v3_iobo.o", "crypto/x509/libcrypto-lib-v3_ist.o", "crypto/x509/libcrypto-lib-v3_lib.o", "crypto/x509/libcrypto-lib-v3_ncons.o", + "crypto/x509/libcrypto-lib-v3_no_ass.o", + "crypto/x509/libcrypto-lib-v3_no_rev_avail.o", "crypto/x509/libcrypto-lib-v3_pci.o", "crypto/x509/libcrypto-lib-v3_pcia.o", "crypto/x509/libcrypto-lib-v3_pcons.o", @@ -24486,13 +28532,20 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_pmaps.o", "crypto/x509/libcrypto-lib-v3_prn.o", "crypto/x509/libcrypto-lib-v3_purp.o", + "crypto/x509/libcrypto-lib-v3_rolespec.o", "crypto/x509/libcrypto-lib-v3_san.o", + "crypto/x509/libcrypto-lib-v3_sda.o", + "crypto/x509/libcrypto-lib-v3_single_use.o", "crypto/x509/libcrypto-lib-v3_skid.o", + "crypto/x509/libcrypto-lib-v3_soa_id.o", "crypto/x509/libcrypto-lib-v3_sxnet.o", + "crypto/x509/libcrypto-lib-v3_timespec.o", "crypto/x509/libcrypto-lib-v3_tlsf.o", + "crypto/x509/libcrypto-lib-v3_usernotice.o", "crypto/x509/libcrypto-lib-v3_utf8.o", "crypto/x509/libcrypto-lib-v3_utl.o", "crypto/x509/libcrypto-lib-v3err.o", + "crypto/x509/libcrypto-lib-x509_acert.o", "crypto/x509/libcrypto-lib-x509_att.o", "crypto/x509/libcrypto-lib-x509_cmp.o", "crypto/x509/libcrypto-lib-x509_d2.o", @@ -24510,6 +28563,7 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x509_v3.o", "crypto/x509/libcrypto-lib-x509_vfy.o", "crypto/x509/libcrypto-lib-x509_vpm.o", + "crypto/x509/libcrypto-lib-x509aset.o", "crypto/x509/libcrypto-lib-x509cset.o", "crypto/x509/libcrypto-lib-x509name.o", "crypto/x509/libcrypto-lib-x509rset.o", @@ -24519,6 +28573,7 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x_attrib.o", "crypto/x509/libcrypto-lib-x_crl.o", "crypto/x509/libcrypto-lib-x_exten.o", + "crypto/x509/libcrypto-lib-x_ietfatt.o", "crypto/x509/libcrypto-lib-x_name.o", "crypto/x509/libcrypto-lib-x_pubkey.o", "crypto/x509/libcrypto-lib-x_req.o", @@ -24539,14 +28594,15 @@ our %unified_info = ( "ssl/libssl-lib-d1_srtp.o", "ssl/libssl-lib-methods.o", "ssl/libssl-lib-pqueue.o", + "ssl/libssl-lib-priority_queue.o", "ssl/libssl-lib-s3_enc.o", "ssl/libssl-lib-s3_lib.o", "ssl/libssl-lib-s3_msg.o", "ssl/libssl-lib-ssl_asn1.o", "ssl/libssl-lib-ssl_cert.o", + "ssl/libssl-lib-ssl_cert_comp.o", "ssl/libssl-lib-ssl_ciph.o", "ssl/libssl-lib-ssl_conf.o", - "ssl/libssl-lib-ssl_err.o", "ssl/libssl-lib-ssl_err_legacy.o", "ssl/libssl-lib-ssl_init.o", "ssl/libssl-lib-ssl_lib.o", @@ -24563,12 +28619,60 @@ our %unified_info = ( "ssl/libssl-lib-tls13_enc.o", "ssl/libssl-lib-tls_depr.o", "ssl/libssl-lib-tls_srp.o", - "ssl/record/libssl-lib-dtls1_bitmap.o", + "ssl/quic/libssl-lib-cc_newreno.o", + "ssl/quic/libssl-lib-json_enc.o", + "ssl/quic/libssl-lib-qlog.o", + "ssl/quic/libssl-lib-qlog_event_helpers.o", + "ssl/quic/libssl-lib-quic_ackm.o", + "ssl/quic/libssl-lib-quic_cfq.o", + "ssl/quic/libssl-lib-quic_channel.o", + "ssl/quic/libssl-lib-quic_demux.o", + "ssl/quic/libssl-lib-quic_engine.o", + "ssl/quic/libssl-lib-quic_fc.o", + "ssl/quic/libssl-lib-quic_fifd.o", + "ssl/quic/libssl-lib-quic_impl.o", + "ssl/quic/libssl-lib-quic_lcidm.o", + "ssl/quic/libssl-lib-quic_method.o", + "ssl/quic/libssl-lib-quic_obj.o", + "ssl/quic/libssl-lib-quic_port.o", + "ssl/quic/libssl-lib-quic_rcidm.o", + "ssl/quic/libssl-lib-quic_reactor.o", + "ssl/quic/libssl-lib-quic_reactor_wait_ctx.o", + "ssl/quic/libssl-lib-quic_record_rx.o", + "ssl/quic/libssl-lib-quic_record_shared.o", + "ssl/quic/libssl-lib-quic_record_tx.o", + "ssl/quic/libssl-lib-quic_record_util.o", + "ssl/quic/libssl-lib-quic_rstream.o", + "ssl/quic/libssl-lib-quic_rx_depack.o", + "ssl/quic/libssl-lib-quic_sf_list.o", + "ssl/quic/libssl-lib-quic_srt_gen.o", + "ssl/quic/libssl-lib-quic_srtm.o", + "ssl/quic/libssl-lib-quic_sstream.o", + "ssl/quic/libssl-lib-quic_statm.o", + "ssl/quic/libssl-lib-quic_stream_map.o", + "ssl/quic/libssl-lib-quic_thread_assist.o", + "ssl/quic/libssl-lib-quic_tls.o", + "ssl/quic/libssl-lib-quic_tls_api.o", + "ssl/quic/libssl-lib-quic_trace.o", + "ssl/quic/libssl-lib-quic_tserver.o", + "ssl/quic/libssl-lib-quic_txp.o", + "ssl/quic/libssl-lib-quic_txpim.o", + "ssl/quic/libssl-lib-quic_types.o", + "ssl/quic/libssl-lib-quic_wire.o", + "ssl/quic/libssl-lib-quic_wire_pkt.o", + "ssl/quic/libssl-lib-uint_set.o", "ssl/record/libssl-lib-rec_layer_d1.o", "ssl/record/libssl-lib-rec_layer_s3.o", - "ssl/record/libssl-lib-ssl3_buffer.o", - "ssl/record/libssl-lib-ssl3_record.o", - "ssl/record/libssl-lib-ssl3_record_tls13.o", + "ssl/record/methods/libssl-lib-dtls_meth.o", + "ssl/record/methods/libssl-lib-ssl3_meth.o", + "ssl/record/methods/libssl-lib-tls13_meth.o", + "ssl/record/methods/libssl-lib-tls1_meth.o", + "ssl/record/methods/libssl-lib-tls_common.o", + "ssl/record/methods/libssl-lib-tls_multib.o", + "ssl/record/methods/libssl-lib-tlsany_meth.o", + "ssl/rio/libssl-lib-poll_builder.o", + "ssl/rio/libssl-lib-poll_immediate.o", + "ssl/rio/libssl-lib-rio_notifier.o", "ssl/statem/libssl-lib-extensions.o", "ssl/statem/libssl-lib-extensions_clnt.o", "ssl/statem/libssl-lib-extensions_cust.o", @@ -24606,12 +28710,24 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ecx_key.o" => [ "providers/common/der/der_ecx_key.c" ], + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o" => [ + "providers/common/der/der_ml_dsa_gen.c" + ], + "providers/common/der/libcommon-lib-der_ml_dsa_key.o" => [ + "providers/common/der/der_ml_dsa_key.c" + ], "providers/common/der/libcommon-lib-der_rsa_gen.o" => [ "providers/common/der/der_rsa_gen.c" ], "providers/common/der/libcommon-lib-der_rsa_key.o" => [ "providers/common/der/der_rsa_key.c" ], + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o" => [ + "providers/common/der/der_slh_dsa_gen.c" + ], + "providers/common/der/libcommon-lib-der_slh_dsa_key.o" => [ + "providers/common/der/der_slh_dsa_key.c" + ], "providers/common/der/libcommon-lib-der_wrap_gen.o" => [ "providers/common/der/der_wrap_gen.c" ], @@ -24678,6 +28794,9 @@ our %unified_info = ( "providers/common/libfips-lib-securitycheck_fips.o" => [ "providers/common/securitycheck_fips.c" ], + "providers/endecode_test-bin-legacyprov.o" => [ + "providers/legacyprov.c" + ], "providers/evp_extra_test-bin-legacyprov.o" => [ "providers/legacyprov.c" ], @@ -24688,6 +28807,9 @@ our %unified_info = ( "providers/fips/fips-dso-fips_entry.o" => [ "providers/fips/fips_entry.c" ], + "providers/fips/libfips-lib-fipsindicator.o" => [ + "providers/fips/fipsindicator.c" + ], "providers/fips/libfips-lib-fipsprov.o" => [ "providers/fips/fipsprov.c" ], @@ -24751,6 +28873,15 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_hw.o" => [ "providers/implementations/ciphers/cipher_aes_gcm_hw.c" ], + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv.o" => [ + "providers/implementations/ciphers/cipher_aes_gcm_siv.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_hw.o" => [ + "providers/implementations/ciphers/cipher_aes_gcm_siv_hw.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_polyval.o" => [ + "providers/implementations/ciphers/cipher_aes_gcm_siv_polyval.c" + ], "providers/implementations/ciphers/libdefault-lib-cipher_aes_hw.o" => [ "providers/implementations/ciphers/cipher_aes_hw.c" ], @@ -24823,9 +28954,27 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_sm4.o" => [ "providers/implementations/ciphers/cipher_sm4.c" ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm.o" => [ + "providers/implementations/ciphers/cipher_sm4_ccm.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm_hw.o" => [ + "providers/implementations/ciphers/cipher_sm4_ccm_hw.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm.o" => [ + "providers/implementations/ciphers/cipher_sm4_gcm.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm_hw.o" => [ + "providers/implementations/ciphers/cipher_sm4_gcm_hw.c" + ], "providers/implementations/ciphers/libdefault-lib-cipher_sm4_hw.o" => [ "providers/implementations/ciphers/cipher_sm4_hw.c" ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts.o" => [ + "providers/implementations/ciphers/cipher_sm4_xts.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts_hw.o" => [ + "providers/implementations/ciphers/cipher_sm4_xts_hw.c" + ], "providers/implementations/ciphers/libdefault-lib-cipher_tdes.o" => [ "providers/implementations/ciphers/cipher_tdes.c" ], @@ -25045,6 +29194,15 @@ our %unified_info = ( "providers/implementations/encode_decode/libdefault-lib-endecoder_common.o" => [ "providers/implementations/encode_decode/endecoder_common.c" ], + "providers/implementations/encode_decode/libdefault-lib-ml_common_codecs.o" => [ + "providers/implementations/encode_decode/ml_common_codecs.c" + ], + "providers/implementations/encode_decode/libdefault-lib-ml_dsa_codecs.o" => [ + "providers/implementations/encode_decode/ml_dsa_codecs.c" + ], + "providers/implementations/encode_decode/libdefault-lib-ml_kem_codecs.o" => [ + "providers/implementations/encode_decode/ml_kem_codecs.c" + ], "providers/implementations/exchange/libdefault-lib-dh_exch.o" => [ "providers/implementations/exchange/dh_exch.c" ], @@ -25069,9 +29227,15 @@ our %unified_info = ( "providers/implementations/exchange/libfips-lib-kdf_exch.o" => [ "providers/implementations/exchange/kdf_exch.c" ], + "providers/implementations/kdfs/libdefault-lib-argon2.o" => [ + "providers/implementations/kdfs/argon2.c" + ], "providers/implementations/kdfs/libdefault-lib-hkdf.o" => [ "providers/implementations/kdfs/hkdf.c" ], + "providers/implementations/kdfs/libdefault-lib-hmacdrbg_kdf.o" => [ + "providers/implementations/kdfs/hmacdrbg_kdf.c" + ], "providers/implementations/kdfs/libdefault-lib-kbkdf.o" => [ "providers/implementations/kdfs/kbkdf.c" ], @@ -25129,12 +29293,39 @@ our %unified_info = ( "providers/implementations/kdfs/liblegacy-lib-pbkdf1.o" => [ "providers/implementations/kdfs/pbkdf1.c" ], + "providers/implementations/kdfs/liblegacy-lib-pvkkdf.o" => [ + "providers/implementations/kdfs/pvkkdf.c" + ], + "providers/implementations/kem/libdefault-lib-ec_kem.o" => [ + "providers/implementations/kem/ec_kem.c" + ], + "providers/implementations/kem/libdefault-lib-ecx_kem.o" => [ + "providers/implementations/kem/ecx_kem.c" + ], + "providers/implementations/kem/libdefault-lib-kem_util.o" => [ + "providers/implementations/kem/kem_util.c" + ], + "providers/implementations/kem/libdefault-lib-ml_kem_kem.o" => [ + "providers/implementations/kem/ml_kem_kem.c" + ], + "providers/implementations/kem/libdefault-lib-mlx_kem.o" => [ + "providers/implementations/kem/mlx_kem.c" + ], "providers/implementations/kem/libdefault-lib-rsa_kem.o" => [ "providers/implementations/kem/rsa_kem.c" ], + "providers/implementations/kem/libfips-lib-ml_kem_kem.o" => [ + "providers/implementations/kem/ml_kem_kem.c" + ], + "providers/implementations/kem/libfips-lib-mlx_kem.o" => [ + "providers/implementations/kem/mlx_kem.c" + ], "providers/implementations/kem/libfips-lib-rsa_kem.o" => [ "providers/implementations/kem/rsa_kem.c" ], + "providers/implementations/kem/libtemplate-lib-template_kem.o" => [ + "providers/implementations/kem/template_kem.c" + ], "providers/implementations/keymgmt/libdefault-lib-dh_kmgmt.o" => [ "providers/implementations/keymgmt/dh_kmgmt.c" ], @@ -25153,9 +29344,21 @@ our %unified_info = ( "providers/implementations/keymgmt/libdefault-lib-mac_legacy_kmgmt.o" => [ "providers/implementations/keymgmt/mac_legacy_kmgmt.c" ], + "providers/implementations/keymgmt/libdefault-lib-ml_dsa_kmgmt.o" => [ + "providers/implementations/keymgmt/ml_dsa_kmgmt.c" + ], + "providers/implementations/keymgmt/libdefault-lib-ml_kem_kmgmt.o" => [ + "providers/implementations/keymgmt/ml_kem_kmgmt.c" + ], + "providers/implementations/keymgmt/libdefault-lib-mlx_kmgmt.o" => [ + "providers/implementations/keymgmt/mlx_kmgmt.c" + ], "providers/implementations/keymgmt/libdefault-lib-rsa_kmgmt.o" => [ "providers/implementations/keymgmt/rsa_kmgmt.c" ], + "providers/implementations/keymgmt/libdefault-lib-slh_dsa_kmgmt.o" => [ + "providers/implementations/keymgmt/slh_dsa_kmgmt.c" + ], "providers/implementations/keymgmt/libfips-lib-dh_kmgmt.o" => [ "providers/implementations/keymgmt/dh_kmgmt.c" ], @@ -25174,9 +29377,24 @@ our %unified_info = ( "providers/implementations/keymgmt/libfips-lib-mac_legacy_kmgmt.o" => [ "providers/implementations/keymgmt/mac_legacy_kmgmt.c" ], + "providers/implementations/keymgmt/libfips-lib-ml_dsa_kmgmt.o" => [ + "providers/implementations/keymgmt/ml_dsa_kmgmt.c" + ], + "providers/implementations/keymgmt/libfips-lib-ml_kem_kmgmt.o" => [ + "providers/implementations/keymgmt/ml_kem_kmgmt.c" + ], + "providers/implementations/keymgmt/libfips-lib-mlx_kmgmt.o" => [ + "providers/implementations/keymgmt/mlx_kmgmt.c" + ], "providers/implementations/keymgmt/libfips-lib-rsa_kmgmt.o" => [ "providers/implementations/keymgmt/rsa_kmgmt.c" ], + "providers/implementations/keymgmt/libfips-lib-slh_dsa_kmgmt.o" => [ + "providers/implementations/keymgmt/slh_dsa_kmgmt.c" + ], + "providers/implementations/keymgmt/libtemplate-lib-template_kmgmt.o" => [ + "providers/implementations/keymgmt/template_kmgmt.c" + ], "providers/implementations/macs/libdefault-lib-blake2b_mac.o" => [ "providers/implementations/macs/blake2b_mac.c" ], @@ -25213,9 +29431,6 @@ our %unified_info = ( "providers/implementations/macs/libfips-lib-kmac_prov.o" => [ "providers/implementations/macs/kmac_prov.c" ], - "providers/implementations/rands/libdefault-lib-crngt.o" => [ - "providers/implementations/rands/crngt.c" - ], "providers/implementations/rands/libdefault-lib-drbg.o" => [ "providers/implementations/rands/drbg.c" ], @@ -25231,12 +29446,12 @@ our %unified_info = ( "providers/implementations/rands/libdefault-lib-seed_src.o" => [ "providers/implementations/rands/seed_src.c" ], + "providers/implementations/rands/libdefault-lib-seed_src_jitter.o" => [ + "providers/implementations/rands/seed_src_jitter.c" + ], "providers/implementations/rands/libdefault-lib-test_rng.o" => [ "providers/implementations/rands/test_rng.c" ], - "providers/implementations/rands/libfips-lib-crngt.o" => [ - "providers/implementations/rands/crngt.c" - ], "providers/implementations/rands/libfips-lib-drbg.o" => [ "providers/implementations/rands/drbg.c" ], @@ -25249,6 +29464,9 @@ our %unified_info = ( "providers/implementations/rands/libfips-lib-drbg_hmac.o" => [ "providers/implementations/rands/drbg_hmac.c" ], + "providers/implementations/rands/libfips-lib-fips_crng_test.o" => [ + "providers/implementations/rands/fips_crng_test.c" + ], "providers/implementations/rands/libfips-lib-test_rng.o" => [ "providers/implementations/rands/test_rng.c" ], @@ -25276,9 +29494,15 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-mac_legacy_sig.o" => [ "providers/implementations/signature/mac_legacy_sig.c" ], + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o" => [ + "providers/implementations/signature/ml_dsa_sig.c" + ], "providers/implementations/signature/libdefault-lib-rsa_sig.o" => [ "providers/implementations/signature/rsa_sig.c" ], + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o" => [ + "providers/implementations/signature/slh_dsa_sig.c" + ], "providers/implementations/signature/libdefault-lib-sm2_sig.o" => [ "providers/implementations/signature/sm2_sig.c" ], @@ -25294,9 +29518,27 @@ our %unified_info = ( "providers/implementations/signature/libfips-lib-mac_legacy_sig.o" => [ "providers/implementations/signature/mac_legacy_sig.c" ], + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o" => [ + "providers/implementations/signature/ml_dsa_sig.c" + ], "providers/implementations/signature/libfips-lib-rsa_sig.o" => [ "providers/implementations/signature/rsa_sig.c" ], + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o" => [ + "providers/implementations/signature/slh_dsa_sig.c" + ], + "providers/implementations/skeymgmt/libdefault-lib-aes_skmgmt.o" => [ + "providers/implementations/skeymgmt/aes_skmgmt.c" + ], + "providers/implementations/skeymgmt/libdefault-lib-generic.o" => [ + "providers/implementations/skeymgmt/generic.c" + ], + "providers/implementations/skeymgmt/libfips-lib-aes_skmgmt.o" => [ + "providers/implementations/skeymgmt/aes_skmgmt.c" + ], + "providers/implementations/skeymgmt/libfips-lib-generic.o" => [ + "providers/implementations/skeymgmt/generic.c" + ], "providers/implementations/storemgmt/libdefault-lib-file_store.o" => [ "providers/implementations/storemgmt/file_store.c" ], @@ -25320,8 +29562,12 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ec_sig.o", "providers/common/der/libcommon-lib-der_ecx_gen.o", "providers/common/der/libcommon-lib-der_ecx_key.o", + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o", + "providers/common/der/libcommon-lib-der_ml_dsa_key.o", "providers/common/der/libcommon-lib-der_rsa_gen.o", "providers/common/der/libcommon-lib-der_rsa_key.o", + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o", + "providers/common/der/libcommon-lib-der_slh_dsa_key.o", "providers/common/der/libcommon-lib-der_wrap_gen.o", "providers/common/libcommon-lib-provider_ctx.o", "providers/common/libcommon-lib-provider_err.o", @@ -25333,7 +29579,7 @@ our %unified_info = ( "providers/implementations/ciphers/libcommon-lib-ciphercommon_gcm_hw.o", "providers/implementations/ciphers/libcommon-lib-ciphercommon_hw.o", "providers/implementations/digests/libcommon-lib-digestcommon.o", - "ssl/record/libcommon-lib-tls_pad.o" + "ssl/record/methods/libcommon-lib-tls_pad.o" ], "providers/libcrypto-lib-baseprov.o" => [ "providers/baseprov.c" @@ -25369,6 +29615,9 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_aes_ccm_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_polyval.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_ocb.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_ocb_hw.o", @@ -25393,7 +29642,13 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_cts.o", "providers/implementations/ciphers/libdefault-lib-cipher_null.o", "providers/implementations/ciphers/libdefault-lib-cipher_sm4.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_sm4_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes_common.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes_default.o", @@ -25422,11 +29677,16 @@ our %unified_info = ( "providers/implementations/encode_decode/libdefault-lib-encode_key2ms.o", "providers/implementations/encode_decode/libdefault-lib-encode_key2text.o", "providers/implementations/encode_decode/libdefault-lib-endecoder_common.o", + "providers/implementations/encode_decode/libdefault-lib-ml_common_codecs.o", + "providers/implementations/encode_decode/libdefault-lib-ml_dsa_codecs.o", + "providers/implementations/encode_decode/libdefault-lib-ml_kem_codecs.o", "providers/implementations/exchange/libdefault-lib-dh_exch.o", "providers/implementations/exchange/libdefault-lib-ecdh_exch.o", "providers/implementations/exchange/libdefault-lib-ecx_exch.o", "providers/implementations/exchange/libdefault-lib-kdf_exch.o", + "providers/implementations/kdfs/libdefault-lib-argon2.o", "providers/implementations/kdfs/libdefault-lib-hkdf.o", + "providers/implementations/kdfs/libdefault-lib-hmacdrbg_kdf.o", "providers/implementations/kdfs/libdefault-lib-kbkdf.o", "providers/implementations/kdfs/libdefault-lib-krb5kdf.o", "providers/implementations/kdfs/libdefault-lib-pbkdf2.o", @@ -25437,6 +29697,11 @@ our %unified_info = ( "providers/implementations/kdfs/libdefault-lib-sskdf.o", "providers/implementations/kdfs/libdefault-lib-tls1_prf.o", "providers/implementations/kdfs/libdefault-lib-x942kdf.o", + "providers/implementations/kem/libdefault-lib-ec_kem.o", + "providers/implementations/kem/libdefault-lib-ecx_kem.o", + "providers/implementations/kem/libdefault-lib-kem_util.o", + "providers/implementations/kem/libdefault-lib-ml_kem_kem.o", + "providers/implementations/kem/libdefault-lib-mlx_kem.o", "providers/implementations/kem/libdefault-lib-rsa_kem.o", "providers/implementations/keymgmt/libdefault-lib-dh_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-dsa_kmgmt.o", @@ -25444,7 +29709,11 @@ our %unified_info = ( "providers/implementations/keymgmt/libdefault-lib-ecx_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-kdf_legacy_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-mac_legacy_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-ml_dsa_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-ml_kem_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-mlx_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-rsa_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-slh_dsa_kmgmt.o", "providers/implementations/macs/libdefault-lib-blake2b_mac.o", "providers/implementations/macs/libdefault-lib-blake2s_mac.o", "providers/implementations/macs/libdefault-lib-cmac_prov.o", @@ -25453,12 +29722,12 @@ our %unified_info = ( "providers/implementations/macs/libdefault-lib-kmac_prov.o", "providers/implementations/macs/libdefault-lib-poly1305_prov.o", "providers/implementations/macs/libdefault-lib-siphash_prov.o", - "providers/implementations/rands/libdefault-lib-crngt.o", "providers/implementations/rands/libdefault-lib-drbg.o", "providers/implementations/rands/libdefault-lib-drbg_ctr.o", "providers/implementations/rands/libdefault-lib-drbg_hash.o", "providers/implementations/rands/libdefault-lib-drbg_hmac.o", "providers/implementations/rands/libdefault-lib-seed_src.o", + "providers/implementations/rands/libdefault-lib-seed_src_jitter.o", "providers/implementations/rands/libdefault-lib-test_rng.o", "providers/implementations/rands/seeding/libdefault-lib-rand_cpu_x86.o", "providers/implementations/rands/seeding/libdefault-lib-rand_tsc.o", @@ -25468,11 +29737,15 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-ecdsa_sig.o", "providers/implementations/signature/libdefault-lib-eddsa_sig.o", "providers/implementations/signature/libdefault-lib-mac_legacy_sig.o", + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o", "providers/implementations/signature/libdefault-lib-rsa_sig.o", + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o", "providers/implementations/signature/libdefault-lib-sm2_sig.o", + "providers/implementations/skeymgmt/libdefault-lib-aes_skmgmt.o", + "providers/implementations/skeymgmt/libdefault-lib-generic.o", "providers/implementations/storemgmt/libdefault-lib-file_store.o", "providers/implementations/storemgmt/libdefault-lib-file_store_any2obj.o", - "ssl/libdefault-lib-s3_cbc.o" + "ssl/record/methods/libdefault-lib-ssl3_cbc.o" ], "providers/libfips.a" => [ "crypto/aes/libfips-lib-aes-armv4.o", @@ -25580,14 +29853,15 @@ our %unified_info = ( "crypto/evp/libfips-lib-kem.o", "crypto/evp/libfips-lib-keymgmt_lib.o", "crypto/evp/libfips-lib-keymgmt_meth.o", - "crypto/evp/libfips-lib-m_sigver.o", "crypto/evp/libfips-lib-mac_lib.o", "crypto/evp/libfips-lib-mac_meth.o", "crypto/evp/libfips-lib-p_lib.o", "crypto/evp/libfips-lib-pmeth_check.o", "crypto/evp/libfips-lib-pmeth_gn.o", "crypto/evp/libfips-lib-pmeth_lib.o", + "crypto/evp/libfips-lib-s_lib.o", "crypto/evp/libfips-lib-signature.o", + "crypto/evp/libfips-lib-skeymgmt_meth.o", "crypto/ffc/libfips-lib-ffc_backend.o", "crypto/ffc/libfips-lib-ffc_dh.o", "crypto/ffc/libfips-lib-ffc_key_generate.o", @@ -25595,6 +29869,8 @@ our %unified_info = ( "crypto/ffc/libfips-lib-ffc_params.o", "crypto/ffc/libfips-lib-ffc_params_generate.o", "crypto/ffc/libfips-lib-ffc_params_validate.o", + "crypto/hashtable/libfips-lib-hashfunc.o", + "crypto/hashtable/libfips-lib-hashtable.o", "crypto/hmac/libfips-lib-hmac.o", "crypto/lhash/libfips-lib-lhash.o", "crypto/libfips-lib-armcap.o", @@ -25618,6 +29894,7 @@ our %unified_info = ( "crypto/libfips-lib-params.o", "crypto/libfips-lib-params_dup.o", "crypto/libfips-lib-params_from_text.o", + "crypto/libfips-lib-params_idx.o", "crypto/libfips-lib-provider_core.o", "crypto/libfips-lib-provider_predefined.o", "crypto/libfips-lib-self_test_core.o", @@ -25626,6 +29903,16 @@ our %unified_info = ( "crypto/libfips-lib-threads_none.o", "crypto/libfips-lib-threads_pthread.o", "crypto/libfips-lib-threads_win.o", + "crypto/libfips-lib-time.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_encoders.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_key.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_key_compress.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_matrix.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_ntt.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_params.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_sample.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_sign.o", + "crypto/ml_kem/libfips-lib-ml_kem.o", "crypto/modes/libfips-lib-cbc128.o", "crypto/modes/libfips-lib-ccm128.o", "crypto/modes/libfips-lib-cfb128.o", @@ -25636,6 +29923,7 @@ our %unified_info = ( "crypto/modes/libfips-lib-ofb128.o", "crypto/modes/libfips-lib-wrap128.o", "crypto/modes/libfips-lib-xts128.o", + "crypto/modes/libfips-lib-xts128gb.o", "crypto/property/libfips-lib-defn_cache.o", "crypto/property/libfips-lib-property.o", "crypto/property/libfips-lib-property_parse.o", @@ -25667,7 +29955,23 @@ our %unified_info = ( "crypto/sha/libfips-lib-sha3.o", "crypto/sha/libfips-lib-sha512-armv4.o", "crypto/sha/libfips-lib-sha512.o", + "crypto/slh_dsa/libfips-lib-slh_adrs.o", + "crypto/slh_dsa/libfips-lib-slh_dsa.o", + "crypto/slh_dsa/libfips-lib-slh_dsa_hash_ctx.o", + "crypto/slh_dsa/libfips-lib-slh_dsa_key.o", + "crypto/slh_dsa/libfips-lib-slh_fors.o", + "crypto/slh_dsa/libfips-lib-slh_hash.o", + "crypto/slh_dsa/libfips-lib-slh_hypertree.o", + "crypto/slh_dsa/libfips-lib-slh_params.o", + "crypto/slh_dsa/libfips-lib-slh_wots.o", + "crypto/slh_dsa/libfips-lib-slh_xmss.o", "crypto/stack/libfips-lib-stack.o", + "crypto/thread/arch/libfips-lib-thread_none.o", + "crypto/thread/arch/libfips-lib-thread_posix.o", + "crypto/thread/arch/libfips-lib-thread_win.o", + "crypto/thread/libfips-lib-api.o", + "crypto/thread/libfips-lib-arch.o", + "crypto/thread/libfips-lib-internal.o", "providers/common/der/libfips-lib-der_rsa_sig.o", "providers/common/libfips-lib-bio_prov.o", "providers/common/libfips-lib-capabilities.o", @@ -25676,6 +29980,7 @@ our %unified_info = ( "providers/common/libfips-lib-provider_util.o", "providers/common/libfips-lib-securitycheck.o", "providers/common/libfips-lib-securitycheck_fips.o", + "providers/fips/libfips-lib-fipsindicator.o", "providers/fips/libfips-lib-fipsprov.o", "providers/fips/libfips-lib-self_test.o", "providers/fips/libfips-lib-self_test_kats.o", @@ -25713,6 +30018,8 @@ our %unified_info = ( "providers/implementations/kdfs/libfips-lib-sskdf.o", "providers/implementations/kdfs/libfips-lib-tls1_prf.o", "providers/implementations/kdfs/libfips-lib-x942kdf.o", + "providers/implementations/kem/libfips-lib-ml_kem_kem.o", + "providers/implementations/kem/libfips-lib-mlx_kem.o", "providers/implementations/kem/libfips-lib-rsa_kem.o", "providers/implementations/keymgmt/libfips-lib-dh_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-dsa_kmgmt.o", @@ -25720,24 +30027,32 @@ our %unified_info = ( "providers/implementations/keymgmt/libfips-lib-ecx_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-kdf_legacy_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-mac_legacy_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-ml_dsa_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-ml_kem_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-mlx_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-rsa_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-slh_dsa_kmgmt.o", "providers/implementations/macs/libfips-lib-cmac_prov.o", "providers/implementations/macs/libfips-lib-gmac_prov.o", "providers/implementations/macs/libfips-lib-hmac_prov.o", "providers/implementations/macs/libfips-lib-kmac_prov.o", - "providers/implementations/rands/libfips-lib-crngt.o", "providers/implementations/rands/libfips-lib-drbg.o", "providers/implementations/rands/libfips-lib-drbg_ctr.o", "providers/implementations/rands/libfips-lib-drbg_hash.o", "providers/implementations/rands/libfips-lib-drbg_hmac.o", + "providers/implementations/rands/libfips-lib-fips_crng_test.o", "providers/implementations/rands/libfips-lib-test_rng.o", "providers/implementations/signature/libfips-lib-dsa_sig.o", "providers/implementations/signature/libfips-lib-ecdsa_sig.o", "providers/implementations/signature/libfips-lib-eddsa_sig.o", "providers/implementations/signature/libfips-lib-mac_legacy_sig.o", + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o", "providers/implementations/signature/libfips-lib-rsa_sig.o", + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o", + "providers/implementations/skeymgmt/libfips-lib-aes_skmgmt.o", + "providers/implementations/skeymgmt/libfips-lib-generic.o", "providers/libcommon.a", - "ssl/libfips-lib-s3_cbc.o" + "ssl/record/methods/libfips-lib-ssl3_cbc.o" ], "providers/liblegacy-lib-prov_running.o" => [ "providers/prov_running.c" @@ -25767,13 +30082,12 @@ our %unified_info = ( "providers/implementations/digests/liblegacy-lib-ripemd_prov.o", "providers/implementations/digests/liblegacy-lib-wp_prov.o", "providers/implementations/kdfs/liblegacy-lib-pbkdf1.o", + "providers/implementations/kdfs/liblegacy-lib-pvkkdf.o", "providers/liblegacy-lib-prov_running.o" ], - "ssl/libdefault-lib-s3_cbc.o" => [ - "ssl/s3_cbc.c" - ], - "ssl/libfips-lib-s3_cbc.o" => [ - "ssl/s3_cbc.c" + "providers/libtemplate.a" => [ + "providers/implementations/kem/libtemplate-lib-template_kem.o", + "providers/implementations/keymgmt/libtemplate-lib-template_kmgmt.o" ], "ssl/libssl-lib-bio_ssl.o" => [ "ssl/bio_ssl.c" @@ -25793,6 +30107,9 @@ our %unified_info = ( "ssl/libssl-lib-pqueue.o" => [ "ssl/pqueue.c" ], + "ssl/libssl-lib-priority_queue.o" => [ + "ssl/priority_queue.c" + ], "ssl/libssl-lib-s3_enc.o" => [ "ssl/s3_enc.c" ], @@ -25808,15 +30125,15 @@ our %unified_info = ( "ssl/libssl-lib-ssl_cert.o" => [ "ssl/ssl_cert.c" ], + "ssl/libssl-lib-ssl_cert_comp.o" => [ + "ssl/ssl_cert_comp.c" + ], "ssl/libssl-lib-ssl_ciph.o" => [ "ssl/ssl_ciph.c" ], "ssl/libssl-lib-ssl_conf.o" => [ "ssl/ssl_conf.c" ], - "ssl/libssl-lib-ssl_err.o" => [ - "ssl/ssl_err.c" - ], "ssl/libssl-lib-ssl_err_legacy.o" => [ "ssl/ssl_err_legacy.c" ], @@ -25865,11 +30182,131 @@ our %unified_info = ( "ssl/libssl-lib-tls_srp.o" => [ "ssl/tls_srp.c" ], - "ssl/record/libcommon-lib-tls_pad.o" => [ - "ssl/record/tls_pad.c" + "ssl/quic/libssl-lib-cc_newreno.o" => [ + "ssl/quic/cc_newreno.c" + ], + "ssl/quic/libssl-lib-json_enc.o" => [ + "ssl/quic/json_enc.c" + ], + "ssl/quic/libssl-lib-qlog.o" => [ + "ssl/quic/qlog.c" + ], + "ssl/quic/libssl-lib-qlog_event_helpers.o" => [ + "ssl/quic/qlog_event_helpers.c" + ], + "ssl/quic/libssl-lib-quic_ackm.o" => [ + "ssl/quic/quic_ackm.c" + ], + "ssl/quic/libssl-lib-quic_cfq.o" => [ + "ssl/quic/quic_cfq.c" + ], + "ssl/quic/libssl-lib-quic_channel.o" => [ + "ssl/quic/quic_channel.c" + ], + "ssl/quic/libssl-lib-quic_demux.o" => [ + "ssl/quic/quic_demux.c" + ], + "ssl/quic/libssl-lib-quic_engine.o" => [ + "ssl/quic/quic_engine.c" + ], + "ssl/quic/libssl-lib-quic_fc.o" => [ + "ssl/quic/quic_fc.c" + ], + "ssl/quic/libssl-lib-quic_fifd.o" => [ + "ssl/quic/quic_fifd.c" + ], + "ssl/quic/libssl-lib-quic_impl.o" => [ + "ssl/quic/quic_impl.c" + ], + "ssl/quic/libssl-lib-quic_lcidm.o" => [ + "ssl/quic/quic_lcidm.c" + ], + "ssl/quic/libssl-lib-quic_method.o" => [ + "ssl/quic/quic_method.c" + ], + "ssl/quic/libssl-lib-quic_obj.o" => [ + "ssl/quic/quic_obj.c" + ], + "ssl/quic/libssl-lib-quic_port.o" => [ + "ssl/quic/quic_port.c" + ], + "ssl/quic/libssl-lib-quic_rcidm.o" => [ + "ssl/quic/quic_rcidm.c" + ], + "ssl/quic/libssl-lib-quic_reactor.o" => [ + "ssl/quic/quic_reactor.c" + ], + "ssl/quic/libssl-lib-quic_reactor_wait_ctx.o" => [ + "ssl/quic/quic_reactor_wait_ctx.c" + ], + "ssl/quic/libssl-lib-quic_record_rx.o" => [ + "ssl/quic/quic_record_rx.c" + ], + "ssl/quic/libssl-lib-quic_record_shared.o" => [ + "ssl/quic/quic_record_shared.c" + ], + "ssl/quic/libssl-lib-quic_record_tx.o" => [ + "ssl/quic/quic_record_tx.c" + ], + "ssl/quic/libssl-lib-quic_record_util.o" => [ + "ssl/quic/quic_record_util.c" + ], + "ssl/quic/libssl-lib-quic_rstream.o" => [ + "ssl/quic/quic_rstream.c" ], - "ssl/record/libssl-lib-dtls1_bitmap.o" => [ - "ssl/record/dtls1_bitmap.c" + "ssl/quic/libssl-lib-quic_rx_depack.o" => [ + "ssl/quic/quic_rx_depack.c" + ], + "ssl/quic/libssl-lib-quic_sf_list.o" => [ + "ssl/quic/quic_sf_list.c" + ], + "ssl/quic/libssl-lib-quic_srt_gen.o" => [ + "ssl/quic/quic_srt_gen.c" + ], + "ssl/quic/libssl-lib-quic_srtm.o" => [ + "ssl/quic/quic_srtm.c" + ], + "ssl/quic/libssl-lib-quic_sstream.o" => [ + "ssl/quic/quic_sstream.c" + ], + "ssl/quic/libssl-lib-quic_statm.o" => [ + "ssl/quic/quic_statm.c" + ], + "ssl/quic/libssl-lib-quic_stream_map.o" => [ + "ssl/quic/quic_stream_map.c" + ], + "ssl/quic/libssl-lib-quic_thread_assist.o" => [ + "ssl/quic/quic_thread_assist.c" + ], + "ssl/quic/libssl-lib-quic_tls.o" => [ + "ssl/quic/quic_tls.c" + ], + "ssl/quic/libssl-lib-quic_tls_api.o" => [ + "ssl/quic/quic_tls_api.c" + ], + "ssl/quic/libssl-lib-quic_trace.o" => [ + "ssl/quic/quic_trace.c" + ], + "ssl/quic/libssl-lib-quic_tserver.o" => [ + "ssl/quic/quic_tserver.c" + ], + "ssl/quic/libssl-lib-quic_txp.o" => [ + "ssl/quic/quic_txp.c" + ], + "ssl/quic/libssl-lib-quic_txpim.o" => [ + "ssl/quic/quic_txpim.c" + ], + "ssl/quic/libssl-lib-quic_types.o" => [ + "ssl/quic/quic_types.c" + ], + "ssl/quic/libssl-lib-quic_wire.o" => [ + "ssl/quic/quic_wire.c" + ], + "ssl/quic/libssl-lib-quic_wire_pkt.o" => [ + "ssl/quic/quic_wire_pkt.c" + ], + "ssl/quic/libssl-lib-uint_set.o" => [ + "ssl/quic/uint_set.c" ], "ssl/record/libssl-lib-rec_layer_d1.o" => [ "ssl/record/rec_layer_d1.c" @@ -25877,14 +30314,44 @@ our %unified_info = ( "ssl/record/libssl-lib-rec_layer_s3.o" => [ "ssl/record/rec_layer_s3.c" ], - "ssl/record/libssl-lib-ssl3_buffer.o" => [ - "ssl/record/ssl3_buffer.c" + "ssl/record/methods/libcommon-lib-tls_pad.o" => [ + "ssl/record/methods/tls_pad.c" + ], + "ssl/record/methods/libdefault-lib-ssl3_cbc.o" => [ + "ssl/record/methods/ssl3_cbc.c" + ], + "ssl/record/methods/libfips-lib-ssl3_cbc.o" => [ + "ssl/record/methods/ssl3_cbc.c" + ], + "ssl/record/methods/libssl-lib-dtls_meth.o" => [ + "ssl/record/methods/dtls_meth.c" + ], + "ssl/record/methods/libssl-lib-ssl3_meth.o" => [ + "ssl/record/methods/ssl3_meth.c" + ], + "ssl/record/methods/libssl-lib-tls13_meth.o" => [ + "ssl/record/methods/tls13_meth.c" + ], + "ssl/record/methods/libssl-lib-tls1_meth.o" => [ + "ssl/record/methods/tls1_meth.c" + ], + "ssl/record/methods/libssl-lib-tls_common.o" => [ + "ssl/record/methods/tls_common.c" ], - "ssl/record/libssl-lib-ssl3_record.o" => [ - "ssl/record/ssl3_record.c" + "ssl/record/methods/libssl-lib-tls_multib.o" => [ + "ssl/record/methods/tls_multib.c" ], - "ssl/record/libssl-lib-ssl3_record_tls13.o" => [ - "ssl/record/ssl3_record_tls13.c" + "ssl/record/methods/libssl-lib-tlsany_meth.o" => [ + "ssl/record/methods/tlsany_meth.c" + ], + "ssl/rio/libssl-lib-poll_builder.o" => [ + "ssl/rio/poll_builder.c" + ], + "ssl/rio/libssl-lib-poll_immediate.o" => [ + "ssl/rio/poll_immediate.c" + ], + "ssl/rio/libssl-lib-rio_notifier.o" => [ + "ssl/rio/rio_notifier.c" ], "ssl/statem/libssl-lib-extensions.o" => [ "ssl/statem/extensions.c" @@ -25980,6 +30447,8 @@ our %unified_info = ( "test/asn1_string_table_test.c" ], "test/asn1_time_test" => [ + "crypto/asn1/asn1_time_test-bin-a_time.o", + "crypto/asn1_time_test-bin-ctype.o", "test/asn1_time_test-bin-asn1_time_test.o" ], "test/asn1_time_test-bin-asn1_time_test.o" => [ @@ -26010,6 +30479,18 @@ our %unified_info = ( "test/bftest-bin-bftest.o" => [ "test/bftest.c" ], + "test/bio_addr_test" => [ + "test/bio_addr_test-bin-bio_addr_test.o" + ], + "test/bio_addr_test-bin-bio_addr_test.o" => [ + "test/bio_addr_test.c" + ], + "test/bio_base64_test" => [ + "test/bio_base64_test-bin-bio_base64_test.o" + ], + "test/bio_base64_test-bin-bio_base64_test.o" => [ + "test/bio_base64_test.c" + ], "test/bio_callback_test" => [ "test/bio_callback_test-bin-bio_callback_test.o" ], @@ -26022,6 +30503,12 @@ our %unified_info = ( "test/bio_core_test-bin-bio_core_test.o" => [ "test/bio_core_test.c" ], + "test/bio_dgram_test" => [ + "test/bio_dgram_test-bin-bio_dgram_test.o" + ], + "test/bio_dgram_test-bin-bio_dgram_test.o" => [ + "test/bio_dgram_test.c" + ], "test/bio_enc_test" => [ "test/bio_enc_test-bin-bio_enc_test.o" ], @@ -26034,6 +30521,12 @@ our %unified_info = ( "test/bio_memleak_test-bin-bio_memleak_test.o" => [ "test/bio_memleak_test.c" ], + "test/bio_meth_test" => [ + "test/bio_meth_test-bin-bio_meth_test.o" + ], + "test/bio_meth_test-bin-bio_meth_test.o" => [ + "test/bio_meth_test.c" + ], "test/bio_prefix_text" => [ "test/bio_prefix_text-bin-bio_prefix_text.o" ], @@ -26052,6 +30545,12 @@ our %unified_info = ( "test/bio_readbuffer_test-bin-bio_readbuffer_test.o" => [ "test/bio_readbuffer_test.c" ], + "test/bio_tfo_test" => [ + "test/bio_tfo_test-bin-bio_tfo_test.o" + ], + "test/bio_tfo_test-bin-bio_tfo_test.o" => [ + "test/bio_tfo_test.c" + ], "test/bioprinttest" => [ "test/bioprinttest-bin-bioprinttest.o" ], @@ -26070,6 +30569,12 @@ our %unified_info = ( "test/bntest-bin-bntest.o" => [ "test/bntest.c" ], + "test/build_wincrypt_test" => [ + "test/build_wincrypt_test-bin-build_wincrypt_test.o" + ], + "test/build_wincrypt_test-bin-build_wincrypt_test.o" => [ + "test/build_wincrypt_test.c" + ], "test/buildtest_c_aes" => [ "test/buildtest_c_aes-bin-buildtest_aes.o" ], @@ -26100,6 +30605,12 @@ our %unified_info = ( "test/buildtest_c_buffer-bin-buildtest_buffer.o" => [ "test/buildtest_buffer.c" ], + "test/buildtest_c_byteorder" => [ + "test/buildtest_c_byteorder-bin-buildtest_byteorder.o" + ], + "test/buildtest_c_byteorder-bin-buildtest_byteorder.o" => [ + "test/buildtest_byteorder.c" + ], "test/buildtest_c_camellia" => [ "test/buildtest_c_camellia-bin-buildtest_camellia.o" ], @@ -26148,12 +30659,6 @@ our %unified_info = ( "test/buildtest_c_core_dispatch-bin-buildtest_core_dispatch.o" => [ "test/buildtest_core_dispatch.c" ], - "test/buildtest_c_core_names" => [ - "test/buildtest_c_core_names-bin-buildtest_core_names.o" - ], - "test/buildtest_c_core_names-bin-buildtest_core_names.o" => [ - "test/buildtest_core_names.c" - ], "test/buildtest_c_core_object" => [ "test/buildtest_c_core_object-bin-buildtest_core_object.o" ], @@ -26202,6 +30707,12 @@ our %unified_info = ( "test/buildtest_c_e_os2-bin-buildtest_e_os2.o" => [ "test/buildtest_e_os2.c" ], + "test/buildtest_c_e_ostime" => [ + "test/buildtest_c_e_ostime-bin-buildtest_e_ostime.o" + ], + "test/buildtest_c_e_ostime-bin-buildtest_e_ostime.o" => [ + "test/buildtest_e_ostime.c" + ], "test/buildtest_c_ebcdic" => [ "test/buildtest_c_ebcdic-bin-buildtest_ebcdic.o" ], @@ -26256,6 +30767,12 @@ our %unified_info = ( "test/buildtest_c_hmac-bin-buildtest_hmac.o" => [ "test/buildtest_hmac.c" ], + "test/buildtest_c_hpke" => [ + "test/buildtest_c_hpke-bin-buildtest_hpke.o" + ], + "test/buildtest_c_hpke-bin-buildtest_hpke.o" => [ + "test/buildtest_hpke.c" + ], "test/buildtest_c_http" => [ "test/buildtest_c_http-bin-buildtest_http.o" ], @@ -26268,6 +30785,12 @@ our %unified_info = ( "test/buildtest_c_idea-bin-buildtest_idea.o" => [ "test/buildtest_idea.c" ], + "test/buildtest_c_indicator" => [ + "test/buildtest_c_indicator-bin-buildtest_indicator.o" + ], + "test/buildtest_c_indicator-bin-buildtest_indicator.o" => [ + "test/buildtest_indicator.c" + ], "test/buildtest_c_kdf" => [ "test/buildtest_c_kdf-bin-buildtest_kdf.o" ], @@ -26298,6 +30821,12 @@ our %unified_info = ( "test/buildtest_c_mdc2-bin-buildtest_mdc2.o" => [ "test/buildtest_mdc2.c" ], + "test/buildtest_c_ml_kem" => [ + "test/buildtest_c_ml_kem-bin-buildtest_ml_kem.o" + ], + "test/buildtest_c_ml_kem-bin-buildtest_ml_kem.o" => [ + "test/buildtest_ml_kem.c" + ], "test/buildtest_c_modes" => [ "test/buildtest_c_modes-bin-buildtest_modes.o" ], @@ -26358,6 +30887,12 @@ our %unified_info = ( "test/buildtest_c_provider-bin-buildtest_provider.o" => [ "test/buildtest_provider.c" ], + "test/buildtest_c_quic" => [ + "test/buildtest_c_quic-bin-buildtest_quic.o" + ], + "test/buildtest_c_quic-bin-buildtest_quic.o" => [ + "test/buildtest_quic.c" + ], "test/buildtest_c_rand" => [ "test/buildtest_c_rand-bin-buildtest_rand.o" ], @@ -26442,6 +30977,12 @@ our %unified_info = ( "test/buildtest_c_symhacks-bin-buildtest_symhacks.o" => [ "test/buildtest_symhacks.c" ], + "test/buildtest_c_thread" => [ + "test/buildtest_c_thread-bin-buildtest_thread.o" + ], + "test/buildtest_c_thread-bin-buildtest_thread.o" => [ + "test/buildtest_thread.c" + ], "test/buildtest_c_tls1" => [ "test/buildtest_c_tls1-bin-buildtest_tls1.o" ], @@ -26472,6 +31013,29 @@ our %unified_info = ( "test/buildtest_c_whrlpool-bin-buildtest_whrlpool.o" => [ "test/buildtest_whrlpool.c" ], + "test/byteorder_test" => [ + "test/byteorder_test-bin-byteorder_test.o" + ], + "test/byteorder_test-bin-byteorder_test.o" => [ + "test/byteorder_test.c" + ], + "test/ca_internals_test" => [ + "apps/ca_internals_test-bin-ca.o", + "apps/lib/ca_internals_test-bin-app_libctx.o", + "apps/lib/ca_internals_test-bin-app_provider.o", + "apps/lib/ca_internals_test-bin-app_rand.o", + "apps/lib/ca_internals_test-bin-app_x509.o", + "apps/lib/ca_internals_test-bin-apps.o", + "apps/lib/ca_internals_test-bin-apps_ui.o", + "apps/lib/ca_internals_test-bin-engine.o", + "apps/lib/ca_internals_test-bin-fmt.o", + "crypto/asn1/ca_internals_test-bin-a_time.o", + "crypto/ca_internals_test-bin-ctype.o", + "test/ca_internals_test-bin-ca_internals_test.o" + ], + "test/ca_internals_test-bin-ca_internals_test.o" => [ + "test/ca_internals_test.c" + ], "test/casttest" => [ "test/casttest-bin-casttest.o" ], @@ -26650,6 +31214,12 @@ our %unified_info = ( "test/danetest-bin-danetest.o" => [ "test/danetest.c" ], + "test/decoder_propq_test" => [ + "test/decoder_propq_test-bin-decoder_propq_test.o" + ], + "test/decoder_propq_test-bin-decoder_propq_test.o" => [ + "test/decoder_propq_test.c" + ], "test/defltfips_test" => [ "test/defltfips_test-bin-defltfips_test.o" ], @@ -26731,6 +31301,7 @@ our %unified_info = ( "test/ectest.c" ], "test/endecode_test" => [ + "providers/endecode_test-bin-legacyprov.o", "test/endecode_test-bin-endecode_test.o", "test/helpers/endecode_test-bin-predefined_dhparams.o" ], @@ -26763,17 +31334,29 @@ our %unified_info = ( ], "test/evp_extra_test" => [ "providers/evp_extra_test-bin-legacyprov.o", - "test/evp_extra_test-bin-evp_extra_test.o" + "test/evp_extra_test-bin-evp_extra_test.o", + "test/evp_extra_test-bin-fake_pipelineprov.o", + "test/evp_extra_test-bin-fake_rsaprov.o" ], "test/evp_extra_test-bin-evp_extra_test.o" => [ "test/evp_extra_test.c" ], + "test/evp_extra_test-bin-fake_pipelineprov.o" => [ + "test/fake_pipelineprov.c" + ], + "test/evp_extra_test-bin-fake_rsaprov.o" => [ + "test/fake_rsaprov.c" + ], "test/evp_extra_test2" => [ - "test/evp_extra_test2-bin-evp_extra_test2.o" + "test/evp_extra_test2-bin-evp_extra_test2.o", + "test/evp_extra_test2-bin-tls-provider.o" ], "test/evp_extra_test2-bin-evp_extra_test2.o" => [ "test/evp_extra_test2.c" ], + "test/evp_extra_test2-bin-tls-provider.o" => [ + "test/tls-provider.c" + ], "test/evp_fetch_prov_test" => [ "test/evp_fetch_prov_test-bin-evp_fetch_prov_test.o" ], @@ -26798,6 +31381,12 @@ our %unified_info = ( "test/evp_pkey_ctx_new_from_name-bin-evp_pkey_ctx_new_from_name.o" => [ "test/evp_pkey_ctx_new_from_name.c" ], + "test/evp_pkey_dhkem_test" => [ + "test/evp_pkey_dhkem_test-bin-evp_pkey_dhkem_test.o" + ], + "test/evp_pkey_dhkem_test-bin-evp_pkey_dhkem_test.o" => [ + "test/evp_pkey_dhkem_test.c" + ], "test/evp_pkey_dparams_test" => [ "test/evp_pkey_dparams_test-bin-evp_pkey_dparams_test.o" ], @@ -26810,12 +31399,28 @@ our %unified_info = ( "test/evp_pkey_provided_test-bin-evp_pkey_provided_test.o" => [ "test/evp_pkey_provided_test.c" ], + "test/evp_skey_test" => [ + "test/evp_skey_test-bin-evp_skey_test.o", + "test/evp_skey_test-bin-fake_cipherprov.o" + ], + "test/evp_skey_test-bin-evp_skey_test.o" => [ + "test/evp_skey_test.c" + ], + "test/evp_skey_test-bin-fake_cipherprov.o" => [ + "test/fake_cipherprov.c" + ], "test/evp_test" => [ "test/evp_test-bin-evp_test.o" ], "test/evp_test-bin-evp_test.o" => [ "test/evp_test.c" ], + "test/evp_xof_test" => [ + "test/evp_xof_test-bin-evp_xof_test.o" + ], + "test/evp_xof_test-bin-evp_xof_test.o" => [ + "test/evp_xof_test.c" + ], "test/exdatatest" => [ "test/exdatatest-bin-exdatatest.o" ], @@ -26901,15 +31506,108 @@ our %unified_info = ( "test/helpers/fatalerrtest-bin-ssltestlib.o" => [ "test/helpers/ssltestlib.c" ], + "test/helpers/json_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/json_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/json_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/json_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/pkcs12_api_test-bin-pkcs12.o" => [ + "test/helpers/pkcs12.c" + ], "test/helpers/pkcs12_format_test-bin-pkcs12.o" => [ "test/helpers/pkcs12.c" ], + "test/helpers/quic_multistream_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quic_multistream_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quic_multistream_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quic_multistream_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quic_newcid_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quic_newcid_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quic_newcid_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quic_newcid_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quic_radix_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quic_radix_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quic_radix_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quic_radix_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quic_srt_gen_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quic_srt_gen_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quic_srt_gen_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quic_srt_gen_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quicapitest-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quicapitest-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quicapitest-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quicapitest-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quicfaultstest-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quicfaultstest-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quicfaultstest-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quicfaultstest-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], "test/helpers/recordlentest-bin-ssltestlib.o" => [ "test/helpers/ssltestlib.c" ], + "test/helpers/rpktest-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], "test/helpers/servername_test-bin-ssltestlib.o" => [ "test/helpers/ssltestlib.c" ], + "test/helpers/ssl_handshake_rtt_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], "test/helpers/ssl_old_test-bin-predefined_dhparams.o" => [ "test/helpers/predefined_dhparams.c" ], @@ -26937,6 +31635,9 @@ our %unified_info = ( "test/helpers/tls13ccstest-bin-ssltestlib.o" => [ "test/helpers/ssltestlib.c" ], + "test/helpers/tls13groupselection_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], "test/hexstr_test" => [ "test/hexstr_test-bin-hexstr_test.o" ], @@ -26949,6 +31650,12 @@ our %unified_info = ( "test/hmactest-bin-hmactest.o" => [ "test/hmactest.c" ], + "test/hpke_test" => [ + "test/hpke_test-bin-hpke_test.o" + ], + "test/hpke_test-bin-hpke_test.o" => [ + "test/hpke_test.c" + ], "test/http_test" => [ "test/http_test-bin-http_test.o" ], @@ -26967,6 +31674,16 @@ our %unified_info = ( "test/igetest-bin-igetest.o" => [ "test/igetest.c" ], + "test/json_test" => [ + "test/helpers/json_test-bin-noisydgrambio.o", + "test/helpers/json_test-bin-pktsplitbio.o", + "test/helpers/json_test-bin-quictestlib.o", + "test/helpers/json_test-bin-ssltestlib.o", + "test/json_test-bin-json_test.o" + ], + "test/json_test-bin-json_test.o" => [ + "test/json_test.c" + ], "test/keymgmt_internal_test" => [ "test/keymgmt_internal_test-bin-keymgmt_internal_test.o" ], @@ -26987,6 +31704,7 @@ our %unified_info = ( "test/testutil/libtestutil-lib-driver.o", "test/testutil/libtestutil-lib-fake_random.o", "test/testutil/libtestutil-lib-format_output.o", + "test/testutil/libtestutil-lib-helper.o", "test/testutil/libtestutil-lib-load.o", "test/testutil/libtestutil-lib-main.o", "test/testutil/libtestutil-lib-options.o", @@ -26999,6 +31717,12 @@ our %unified_info = ( "test/testutil/libtestutil-lib-tests.o", "test/testutil/libtestutil-lib-testutil_init.o" ], + "test/list_test" => [ + "test/list_test-bin-list_test.o" + ], + "test/list_test-bin-list_test.o" => [ + "test/list_test.c" + ], "test/localetest" => [ "test/localetest-bin-localetest.o" ], @@ -27017,12 +31741,36 @@ our %unified_info = ( "test/mdc2test-bin-mdc2test.o" => [ "test/mdc2test.c" ], + "test/membio_test" => [ + "test/membio_test-bin-membio_test.o" + ], + "test/membio_test-bin-membio_test.o" => [ + "test/membio_test.c" + ], "test/memleaktest" => [ "test/memleaktest-bin-memleaktest.o" ], "test/memleaktest-bin-memleaktest.o" => [ "test/memleaktest.c" ], + "test/ml_dsa_test" => [ + "test/ml_dsa_test-bin-ml_dsa_test.o" + ], + "test/ml_dsa_test-bin-ml_dsa_test.o" => [ + "test/ml_dsa_test.c" + ], + "test/ml_kem_evp_extra_test" => [ + "test/ml_kem_evp_extra_test-bin-ml_kem_evp_extra_test.o" + ], + "test/ml_kem_evp_extra_test-bin-ml_kem_evp_extra_test.o" => [ + "test/ml_kem_evp_extra_test.c" + ], + "test/ml_kem_internal_test" => [ + "test/ml_kem_internal_test-bin-ml_kem_internal_test.o" + ], + "test/ml_kem_internal_test-bin-ml_kem_internal_test.o" => [ + "test/ml_kem_internal_test.c" + ], "test/modes_internal_test" => [ "test/modes_internal_test-bin-modes_internal_test.o" ], @@ -27068,11 +31816,18 @@ our %unified_info = ( "test/p_test.c" ], "test/packettest" => [ + "crypto/packettest-bin-quic_vlint.o", "test/packettest-bin-packettest.o" ], "test/packettest-bin-packettest.o" => [ "test/packettest.c" ], + "test/pairwise_fail_test" => [ + "test/pairwise_fail_test-bin-pairwise_fail_test.o" + ], + "test/pairwise_fail_test-bin-pairwise_fail_test.o" => [ + "test/pairwise_fail_test.c" + ], "test/param_build_test" => [ "test/param_build_test-bin-param_build_test.o" ], @@ -27121,6 +31876,13 @@ our %unified_info = ( "test/pemtest-bin-pemtest.o" => [ "test/pemtest.c" ], + "test/pkcs12_api_test" => [ + "test/helpers/pkcs12_api_test-bin-pkcs12.o", + "test/pkcs12_api_test-bin-pkcs12_api_test.o" + ], + "test/pkcs12_api_test-bin-pkcs12_api_test.o" => [ + "test/pkcs12_api_test.c" + ], "test/pkcs12_format_test" => [ "test/helpers/pkcs12_format_test-bin-pkcs12.o", "test/pkcs12_format_test-bin-pkcs12_format_test.o" @@ -27152,6 +31914,12 @@ our %unified_info = ( "test/poly1305_internal_test-bin-poly1305_internal_test.o" => [ "test/poly1305_internal_test.c" ], + "test/priority_queue_test" => [ + "test/priority_queue_test-bin-priority_queue_test.o" + ], + "test/priority_queue_test-bin-priority_queue_test.o" => [ + "test/priority_queue_test.c" + ], "test/property_test" => [ "test/property_test-bin-property_test.o" ], @@ -27170,6 +31938,12 @@ our %unified_info = ( "test/provfetchtest-bin-provfetchtest.o" => [ "test/provfetchtest.c" ], + "test/provider_default_search_path_test" => [ + "test/provider_default_search_path_test-bin-provider_default_search_path_test.o" + ], + "test/provider_default_search_path_test-bin-provider_default_search_path_test.o" => [ + "test/provider_default_search_path_test.c" + ], "test/provider_fallback_test" => [ "test/provider_fallback_test-bin-provider_fallback_test.o" ], @@ -27218,6 +31992,174 @@ our %unified_info = ( "test/punycode_test-bin-punycode_test.o" => [ "test/punycode_test.c" ], + "test/quic_ackm_test" => [ + "test/quic_ackm_test-bin-cc_dummy.o", + "test/quic_ackm_test-bin-quic_ackm_test.o" + ], + "test/quic_ackm_test-bin-cc_dummy.o" => [ + "test/cc_dummy.c" + ], + "test/quic_ackm_test-bin-quic_ackm_test.o" => [ + "test/quic_ackm_test.c" + ], + "test/quic_cc_test" => [ + "test/quic_cc_test-bin-quic_cc_test.o" + ], + "test/quic_cc_test-bin-quic_cc_test.o" => [ + "test/quic_cc_test.c" + ], + "test/quic_cfq_test" => [ + "test/quic_cfq_test-bin-quic_cfq_test.o" + ], + "test/quic_cfq_test-bin-quic_cfq_test.o" => [ + "test/quic_cfq_test.c" + ], + "test/quic_client_test" => [ + "test/quic_client_test-bin-quic_client_test.o" + ], + "test/quic_client_test-bin-quic_client_test.o" => [ + "test/quic_client_test.c" + ], + "test/quic_fc_test" => [ + "test/quic_fc_test-bin-quic_fc_test.o" + ], + "test/quic_fc_test-bin-quic_fc_test.o" => [ + "test/quic_fc_test.c" + ], + "test/quic_fifd_test" => [ + "test/quic_fifd_test-bin-cc_dummy.o", + "test/quic_fifd_test-bin-quic_fifd_test.o" + ], + "test/quic_fifd_test-bin-cc_dummy.o" => [ + "test/cc_dummy.c" + ], + "test/quic_fifd_test-bin-quic_fifd_test.o" => [ + "test/quic_fifd_test.c" + ], + "test/quic_lcidm_test" => [ + "test/quic_lcidm_test-bin-quic_lcidm_test.o" + ], + "test/quic_lcidm_test-bin-quic_lcidm_test.o" => [ + "test/quic_lcidm_test.c" + ], + "test/quic_multistream_test" => [ + "test/helpers/quic_multistream_test-bin-noisydgrambio.o", + "test/helpers/quic_multistream_test-bin-pktsplitbio.o", + "test/helpers/quic_multistream_test-bin-quictestlib.o", + "test/helpers/quic_multistream_test-bin-ssltestlib.o", + "test/quic_multistream_test-bin-quic_multistream_test.o" + ], + "test/quic_multistream_test-bin-quic_multistream_test.o" => [ + "test/quic_multistream_test.c" + ], + "test/quic_newcid_test" => [ + "test/helpers/quic_newcid_test-bin-noisydgrambio.o", + "test/helpers/quic_newcid_test-bin-pktsplitbio.o", + "test/helpers/quic_newcid_test-bin-quictestlib.o", + "test/helpers/quic_newcid_test-bin-ssltestlib.o", + "test/quic_newcid_test-bin-quic_newcid_test.o" + ], + "test/quic_newcid_test-bin-quic_newcid_test.o" => [ + "test/quic_newcid_test.c" + ], + "test/quic_qlog_test" => [ + "test/quic_qlog_test-bin-quic_qlog_test.o" + ], + "test/quic_qlog_test-bin-quic_qlog_test.o" => [ + "test/quic_qlog_test.c" + ], + "test/quic_radix_test" => [ + "test/helpers/quic_radix_test-bin-noisydgrambio.o", + "test/helpers/quic_radix_test-bin-pktsplitbio.o", + "test/helpers/quic_radix_test-bin-quictestlib.o", + "test/helpers/quic_radix_test-bin-ssltestlib.o", + "test/radix/quic_radix_test-bin-quic_radix.o" + ], + "test/quic_rcidm_test" => [ + "test/quic_rcidm_test-bin-quic_rcidm_test.o" + ], + "test/quic_rcidm_test-bin-quic_rcidm_test.o" => [ + "test/quic_rcidm_test.c" + ], + "test/quic_record_test" => [ + "test/quic_record_test-bin-quic_record_test.o" + ], + "test/quic_record_test-bin-quic_record_test.o" => [ + "test/quic_record_test.c" + ], + "test/quic_srt_gen_test" => [ + "test/helpers/quic_srt_gen_test-bin-noisydgrambio.o", + "test/helpers/quic_srt_gen_test-bin-pktsplitbio.o", + "test/helpers/quic_srt_gen_test-bin-quictestlib.o", + "test/helpers/quic_srt_gen_test-bin-ssltestlib.o", + "test/quic_srt_gen_test-bin-quic_srt_gen_test.o" + ], + "test/quic_srt_gen_test-bin-quic_srt_gen_test.o" => [ + "test/quic_srt_gen_test.c" + ], + "test/quic_srtm_test" => [ + "test/quic_srtm_test-bin-quic_srtm_test.o" + ], + "test/quic_srtm_test-bin-quic_srtm_test.o" => [ + "test/quic_srtm_test.c" + ], + "test/quic_stream_test" => [ + "test/quic_stream_test-bin-quic_stream_test.o" + ], + "test/quic_stream_test-bin-quic_stream_test.o" => [ + "test/quic_stream_test.c" + ], + "test/quic_tserver_test" => [ + "test/quic_tserver_test-bin-quic_tserver_test.o" + ], + "test/quic_tserver_test-bin-quic_tserver_test.o" => [ + "test/quic_tserver_test.c" + ], + "test/quic_txp_test" => [ + "test/quic_txp_test-bin-cc_dummy.o", + "test/quic_txp_test-bin-quic_txp_test.o" + ], + "test/quic_txp_test-bin-cc_dummy.o" => [ + "test/cc_dummy.c" + ], + "test/quic_txp_test-bin-quic_txp_test.o" => [ + "test/quic_txp_test.c" + ], + "test/quic_txpim_test" => [ + "test/quic_txpim_test-bin-quic_txpim_test.o" + ], + "test/quic_txpim_test-bin-quic_txpim_test.o" => [ + "test/quic_txpim_test.c" + ], + "test/quic_wire_test" => [ + "test/quic_wire_test-bin-quic_wire_test.o" + ], + "test/quic_wire_test-bin-quic_wire_test.o" => [ + "test/quic_wire_test.c" + ], + "test/quicapitest" => [ + "test/helpers/quicapitest-bin-noisydgrambio.o", + "test/helpers/quicapitest-bin-pktsplitbio.o", + "test/helpers/quicapitest-bin-quictestlib.o", + "test/helpers/quicapitest-bin-ssltestlib.o", + "test/quicapitest-bin-quicapitest.o" + ], + "test/quicapitest-bin-quicapitest.o" => [ + "test/quicapitest.c" + ], + "test/quicfaultstest" => [ + "test/helpers/quicfaultstest-bin-noisydgrambio.o", + "test/helpers/quicfaultstest-bin-pktsplitbio.o", + "test/helpers/quicfaultstest-bin-quictestlib.o", + "test/helpers/quicfaultstest-bin-ssltestlib.o", + "test/quicfaultstest-bin-quicfaultstest.o" + ], + "test/quicfaultstest-bin-quicfaultstest.o" => [ + "test/quicfaultstest.c" + ], + "test/radix/quic_radix_test-bin-quic_radix.o" => [ + "test/radix/quic_radix.c" + ], "test/rand_status_test" => [ "test/rand_status_test-bin-rand_status_test.o" ], @@ -27248,11 +32190,11 @@ our %unified_info = ( "test/rc5test-bin-rc5test.o" => [ "test/rc5test.c" ], - "test/rdrand_sanitytest" => [ - "test/rdrand_sanitytest-bin-rdrand_sanitytest.o" + "test/rdcpu_sanitytest" => [ + "test/rdcpu_sanitytest-bin-rdcpu_sanitytest.o" ], - "test/rdrand_sanitytest-bin-rdrand_sanitytest.o" => [ - "test/rdrand_sanitytest.c" + "test/rdcpu_sanitytest-bin-rdcpu_sanitytest.o" => [ + "test/rdcpu_sanitytest.c" ], "test/recordlentest" => [ "test/helpers/recordlentest-bin-ssltestlib.o", @@ -27261,6 +32203,13 @@ our %unified_info = ( "test/recordlentest-bin-recordlentest.o" => [ "test/recordlentest.c" ], + "test/rpktest" => [ + "test/helpers/rpktest-bin-ssltestlib.o", + "test/rpktest-bin-rpktest.o" + ], + "test/rpktest-bin-rpktest.o" => [ + "test/rpktest.c" + ], "test/rsa_complex" => [ "test/rsa_complex-bin-rsa_complex.o" ], @@ -27285,6 +32234,18 @@ our %unified_info = ( "test/rsa_test-bin-rsa_test.o" => [ "test/rsa_test.c" ], + "test/rsa_x931_test" => [ + "test/rsa_x931_test-bin-rsa_x931_test.o" + ], + "test/rsa_x931_test-bin-rsa_x931_test.o" => [ + "test/rsa_x931_test.c" + ], + "test/safe_math_test" => [ + "test/safe_math_test-bin-safe_math_test.o" + ], + "test/safe_math_test-bin-safe_math_test.o" => [ + "test/safe_math_test.c" + ], "test/sanitytest" => [ "test/sanitytest-bin-sanitytest.o" ], @@ -27316,6 +32277,12 @@ our %unified_info = ( "test/siphash_internal_test-bin-siphash_internal_test.o" => [ "test/siphash_internal_test.c" ], + "test/slh_dsa_test" => [ + "test/slh_dsa_test-bin-slh_dsa_test.o" + ], + "test/slh_dsa_test-bin-slh_dsa_test.o" => [ + "test/slh_dsa_test.c" + ], "test/sm2_internal_test" => [ "test/sm2_internal_test-bin-sm2_internal_test.o" ], @@ -27358,6 +32325,13 @@ our %unified_info = ( "test/ssl_ctx_test-bin-ssl_ctx_test.o" => [ "test/ssl_ctx_test.c" ], + "test/ssl_handshake_rtt_test" => [ + "test/helpers/ssl_handshake_rtt_test-bin-ssltestlib.o", + "test/ssl_handshake_rtt_test-bin-ssl_handshake_rtt_test.o" + ], + "test/ssl_handshake_rtt_test-bin-ssl_handshake_rtt_test.o" => [ + "test/ssl_handshake_rtt_test.c" + ], "test/ssl_old_test" => [ "test/helpers/ssl_old_test-bin-predefined_dhparams.o", "test/ssl_old_test-bin-ssl_old_test.o" @@ -27416,6 +32390,12 @@ our %unified_info = ( "test/stack_test-bin-stack_test.o" => [ "test/stack_test.c" ], + "test/strtoultest" => [ + "test/strtoultest-bin-strtoultest.o" + ], + "test/strtoultest-bin-strtoultest.o" => [ + "test/strtoultest.c" + ], "test/sysdefaulttest" => [ "test/sysdefaulttest-bin-sysdefaulttest.o" ], @@ -27446,6 +32426,9 @@ our %unified_info = ( "test/testutil/libtestutil-lib-format_output.o" => [ "test/testutil/format_output.c" ], + "test/testutil/libtestutil-lib-helper.o" => [ + "test/testutil/helper.c" + ], "test/testutil/libtestutil-lib-load.o" => [ "test/testutil/load.c" ], @@ -27479,6 +32462,12 @@ our %unified_info = ( "test/testutil/libtestutil-lib-testutil_init.o" => [ "test/testutil/testutil_init.c" ], + "test/threadpool_test" => [ + "test/threadpool_test-bin-threadpool_test.o" + ], + "test/threadpool_test-bin-threadpool_test.o" => [ + "test/threadpool_test.c" + ], "test/threadstest" => [ "test/threadstest-bin-threadstest.o" ], @@ -27497,6 +32486,12 @@ our %unified_info = ( "test/time_offset_test-bin-time_offset_test.o" => [ "test/time_offset_test.c" ], + "test/time_test" => [ + "test/time_test-bin-time_test.o" + ], + "test/time_test-bin-time_test.o" => [ + "test/time_test.c" + ], "test/tls13ccstest" => [ "test/helpers/tls13ccstest-bin-ssltestlib.o", "test/tls13ccstest-bin-tls13ccstest.o" @@ -27510,6 +32505,13 @@ our %unified_info = ( "test/tls13encryptiontest-bin-tls13encryptiontest.o" => [ "test/tls13encryptiontest.c" ], + "test/tls13groupselection_test" => [ + "test/helpers/tls13groupselection_test-bin-ssltestlib.o", + "test/tls13groupselection_test-bin-tls13groupselection_test.o" + ], + "test/tls13groupselection_test-bin-tls13groupselection_test.o" => [ + "test/tls13groupselection_test.c" + ], "test/trace_api_test" => [ "test/trace_api_test-bin-trace_api_test.o" ], @@ -27565,6 +32567,12 @@ our %unified_info = ( "test/wpackettest-bin-wpackettest.o" => [ "test/wpackettest.c" ], + "test/x509_acert_test" => [ + "test/x509_acert_test-bin-x509_acert_test.o" + ], + "test/x509_acert_test-bin-x509_acert_test.o" => [ + "test/x509_acert_test.c" + ], "test/x509_check_cert_pkey_test" => [ "test/x509_check_cert_pkey_test-bin-x509_check_cert_pkey_test.o" ], @@ -27583,6 +32591,24 @@ our %unified_info = ( "test/x509_internal_test-bin-x509_internal_test.o" => [ "test/x509_internal_test.c" ], + "test/x509_load_cert_file_test" => [ + "test/x509_load_cert_file_test-bin-x509_load_cert_file_test.o" + ], + "test/x509_load_cert_file_test-bin-x509_load_cert_file_test.o" => [ + "test/x509_load_cert_file_test.c" + ], + "test/x509_req_test" => [ + "test/x509_req_test-bin-x509_req_test.o" + ], + "test/x509_req_test-bin-x509_req_test.o" => [ + "test/x509_req_test.c" + ], + "test/x509_test" => [ + "test/x509_test-bin-x509_test.o" + ], + "test/x509_test-bin-x509_test.o" => [ + "test/x509_test.c" + ], "test/x509_time_test" => [ "test/x509_time_test-bin-x509_time_test.o" ], @@ -27646,6 +32672,7 @@ my @makevars = ( "LDLIBS", "MT", "MTFLAGS", + "OBJCOPY", "PERL", "RANLIB", "RC", @@ -27659,6 +32686,12 @@ my %disabled_info = ( "asan" => { "macro" => "OPENSSL_NO_ASAN" }, + "brotli" => { + "macro" => "OPENSSL_NO_BROTLI" + }, + "brotli-dynamic" => { + "macro" => "OPENSSL_NO_BROTLI_DYNAMIC" + }, "comp" => { "macro" => "OPENSSL_NO_COMP", "skipped" => [ @@ -27671,6 +32704,9 @@ my %disabled_info = ( "crypto-mdebug-backtrace" => { "macro" => "OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE" }, + "demos" => { + "macro" => "OPENSSL_NO_DEMOS" + }, "devcryptoeng" => { "macro" => "OPENSSL_NO_DEVCRYPTOENG" }, @@ -27683,12 +32719,24 @@ my %disabled_info = ( "external-tests" => { "macro" => "OPENSSL_NO_EXTERNAL_TESTS" }, + "fips-jitter" => { + "macro" => "OPENSSL_NO_FIPS_JITTER" + }, "fuzz-afl" => { "macro" => "OPENSSL_NO_FUZZ_AFL" }, "fuzz-libfuzzer" => { "macro" => "OPENSSL_NO_FUZZ_LIBFUZZER" }, + "h3demo" => { + "macro" => "OPENSSL_NO_H3DEMO" + }, + "hqinterop" => { + "macro" => "OPENSSL_NO_HQINTEROP" + }, + "jitter" => { + "macro" => "OPENSSL_NO_JITTER" + }, "ktls" => { "macro" => "OPENSSL_NO_KTLS" }, @@ -27704,6 +32752,9 @@ my %disabled_info = ( "msan" => { "macro" => "OPENSSL_NO_MSAN" }, + "pie" => { + "macro" => "OPENSSL_NO_PIE" + }, "rc5" => { "macro" => "OPENSSL_NO_RC5", "skipped" => [ @@ -27719,6 +32770,12 @@ my %disabled_info = ( "ssl3-method" => { "macro" => "OPENSSL_NO_SSL3_METHOD" }, + "sslkeylog" => { + "macro" => "OPENSSL_NO_SSLKEYLOG" + }, + "tfo" => { + "macro" => "OPENSSL_NO_TFO" + }, "trace" => { "macro" => "OPENSSL_NO_TRACE" }, @@ -27733,6 +32790,21 @@ my %disabled_info = ( }, "weak-ssl-ciphers" => { "macro" => "OPENSSL_NO_WEAK_SSL_CIPHERS" + }, + "winstore" => { + "macro" => "OPENSSL_NO_WINSTORE" + }, + "zlib" => { + "macro" => "OPENSSL_NO_ZLIB" + }, + "zlib-dynamic" => { + "macro" => "OPENSSL_NO_ZLIB_DYNAMIC" + }, + "zstd" => { + "macro" => "OPENSSL_NO_ZSTD" + }, + "zstd-dynamic" => { + "macro" => "OPENSSL_NO_ZSTD_DYNAMIC" } ); my @user_crossable = qw( AR AS CC CXX CPP LD MT RANLIB RC ); @@ -27746,15 +32818,15 @@ unless (caller) { use File::Copy; use Pod::Usage; - use lib '/home/runner/work/node/node/deps/openssl/openssl/util/perl'; - use OpenSSL::fallback '/home/runner/work/node/node/deps/openssl/openssl/external/perl/MODULES.txt'; + use lib '/node/deps/openssl/openssl/util/perl'; + use OpenSSL::fallback '/node/deps/openssl/openssl/external/perl/MODULES.txt'; my $here = dirname($0); if (scalar @ARGV == 0) { # With no arguments, re-create the build file # We do that in two steps, where the first step emits perl - # snipets. + # snippets. my $buildfile = $config{build_file}; my $buildfile_template = "$buildfile.in"; @@ -27774,7 +32846,7 @@ unless (caller) { ); use lib '.'; - use lib '/home/runner/work/node/node/deps/openssl/openssl/Configurations'; + use lib '/node/deps/openssl/openssl/Configurations'; use gentemplate; open my $buildfile_template_fh, ">$buildfile_template" @@ -27791,8 +32863,8 @@ unless (caller) { my $prepend = <<'_____'; use File::Spec::Functions; -use lib '/home/runner/work/node/node/deps/openssl/openssl/util/perl'; -use lib '/home/runner/work/node/node/deps/openssl/openssl/Configurations'; +use lib '/node/deps/openssl/openssl/util/perl'; +use lib '/node/deps/openssl/openssl/Configurations'; use lib '.'; use platform; _____ diff --git a/deps/openssl/config/archs/linux-armv4/asm/crypto/aes/aesv8-armx.S b/deps/openssl/config/archs/linux-armv4/asm/crypto/aes/aesv8-armx.S index eca1f753abd741..cf7a77c200d707 100644 --- a/deps/openssl/config/archs/linux-armv4/asm/crypto/aes/aesv8-armx.S +++ b/deps/openssl/config/archs/linux-armv4/asm/crypto/aes/aesv8-armx.S @@ -18,7 +18,6 @@ .long 0x01,0x01,0x01,0x01 .long 0x0c0f0e0d,0x0c0f0e0d,0x0c0f0e0d,0x0c0f0e0d @ rotate-n-splat .long 0x1b,0x1b,0x1b,0x1b - .globl aes_v8_set_encrypt_key .type aes_v8_set_encrypt_key,%function .align 5 diff --git a/deps/openssl/config/archs/linux-armv4/asm/crypto/armv4cpuid.S b/deps/openssl/config/archs/linux-armv4/asm/crypto/armv4cpuid.S index 2984c8b035c13c..843f3dda55524a 100644 --- a/deps/openssl/config/archs/linux-armv4/asm/crypto/armv4cpuid.S +++ b/deps/openssl/config/archs/linux-armv4/asm/crypto/armv4cpuid.S @@ -268,5 +268,5 @@ atomic_add_spinlock: .word 0 #endif -.comm OPENSSL_armcap_P,4,4 + .hidden OPENSSL_armcap_P diff --git a/deps/openssl/config/archs/linux-armv4/asm/crypto/bn/armv4-gf2m.S b/deps/openssl/config/archs/linux-armv4/asm/crypto/bn/armv4-gf2m.S index 72fbfa38988828..b20a1daee09ecf 100644 --- a/deps/openssl/config/archs/linux-armv4/asm/crypto/bn/armv4-gf2m.S +++ b/deps/openssl/config/archs/linux-armv4/asm/crypto/bn/armv4-gf2m.S @@ -231,5 +231,6 @@ bn_GF2m_mul_2x2: .align 5 #if __ARM_MAX_ARCH__>=7 -.comm OPENSSL_armcap_P,4,4 + +.hidden OPENSSL_armcap_P #endif diff --git a/deps/openssl/config/archs/linux-armv4/asm/crypto/bn/armv4-mont.S b/deps/openssl/config/archs/linux-armv4/asm/crypto/bn/armv4-mont.S index 99713f8afe28d2..57a83738855b48 100644 --- a/deps/openssl/config/archs/linux-armv4/asm/crypto/bn/armv4-mont.S +++ b/deps/openssl/config/archs/linux-armv4/asm/crypto/bn/armv4-mont.S @@ -956,5 +956,6 @@ bn_mul8x_mont_neon: .align 2 .align 2 #if __ARM_MAX_ARCH__>=7 -.comm OPENSSL_armcap_P,4,4 + +.hidden OPENSSL_armcap_P #endif diff --git a/deps/openssl/config/archs/linux-armv4/asm/crypto/buildinf.h b/deps/openssl/config/archs/linux-armv4/asm/crypto/buildinf.h index 0b40c3d4700901..e6f22c278c3e5b 100644 --- a/deps/openssl/config/archs/linux-armv4/asm/crypto/buildinf.h +++ b/deps/openssl/config/archs/linux-armv4/asm/crypto/buildinf.h @@ -11,7 +11,7 @@ */ #define PLATFORM "platform: linux-armv4" -#define DATE "built on: Sun Jul 20 00:49:30 2025 UTC" +#define DATE "built on: Sun Jul 27 00:50:58 2025 UTC" /* * Generate compiler_flags as an array of individual characters. This is a diff --git a/deps/openssl/config/archs/linux-armv4/asm/crypto/chacha/chacha-armv4.S b/deps/openssl/config/archs/linux-armv4/asm/crypto/chacha/chacha-armv4.S index 0badd6fea5b195..15a8bb10073fac 100644 --- a/deps/openssl/config/archs/linux-armv4/asm/crypto/chacha/chacha-armv4.S +++ b/deps/openssl/config/archs/linux-armv4/asm/crypto/chacha/chacha-armv4.S @@ -1473,5 +1473,6 @@ ChaCha20_neon: add sp,sp,#4*(16+3) ldmia sp!,{r4,r5,r6,r7,r8,r9,r10,r11,pc} .size ChaCha20_neon,.-ChaCha20_neon -.comm OPENSSL_armcap_P,4,4 + +.hidden OPENSSL_armcap_P #endif diff --git a/deps/openssl/config/archs/linux-armv4/asm/crypto/modes/ghashv8-armx.S b/deps/openssl/config/archs/linux-armv4/asm/crypto/modes/ghashv8-armx.S index 2dd63a8c85d353..67299867aa2e3c 100644 --- a/deps/openssl/config/archs/linux-armv4/asm/crypto/modes/ghashv8-armx.S +++ b/deps/openssl/config/archs/linux-armv4/asm/crypto/modes/ghashv8-armx.S @@ -237,6 +237,7 @@ gcm_ghash_v8: vldmia sp!,{d8,d9,d10,d11,d12,d13,d14,d15} @ 32-bit ABI says so bx lr .size gcm_ghash_v8,.-gcm_ghash_v8 +.section .rodata .byte 71,72,65,83,72,32,102,111,114,32,65,82,77,118,56,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 .align 2 .align 2 diff --git a/deps/openssl/config/archs/linux-armv4/asm/crypto/params_idx.c b/deps/openssl/config/archs/linux-armv4/asm/crypto/params_idx.c new file mode 100644 index 00000000000000..9d76ffededc24c --- /dev/null +++ b/deps/openssl/config/archs/linux-armv4/asm/crypto/params_idx.c @@ -0,0 +1,3366 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from crypto/params_idx.c.in + * + * Copyright 2023 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + +#include "internal/e_os.h" +#include "internal/param_names.h" +#include + +/* Machine generated TRIE -- generated by util/perl/OpenSSL/paramnames.pm */ +int ossl_param_find_pidx(const char *s) +{ + switch(s[0]) { + default: + break; + case 'a': + switch(s[1]) { + default: + break; + case 'c': + if (strcmp("vp-info", s + 2) == 0) + return PIDX_KDF_PARAM_X942_ACVPINFO; + break; + case 'd': + switch(s[2]) { + default: + break; + case 'd': + if (strcmp("itional-random", s + 3) == 0) + return PIDX_SIGNATURE_PARAM_ADD_RANDOM; + break; + case '\0': + return PIDX_KDF_PARAM_ARGON2_AD; + } + break; + case 'e': + if (strcmp("ad", s + 2) == 0) + return PIDX_CIPHER_PARAM_AEAD; + break; + case 'l': + switch(s[2]) { + default: + break; + case 'g': + switch(s[3]) { + default: + break; + case '_': + if (strcmp("id_param", s + 4) == 0) + return PIDX_CIPHER_PARAM_ALGORITHM_ID_PARAMS_OLD; + break; + case 'i': + if (strcmp("d-absent", s + 4) == 0) + return PIDX_DIGEST_PARAM_ALGID_ABSENT; + break; + case 'o': + switch(s[4]) { + default: + break; + case 'r': + switch(s[5]) { + default: + break; + case 'i': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case 'h': + switch(s[8]) { + default: + break; + case 'm': + switch(s[9]) { + default: + break; + case '-': + switch(s[10]) { + default: + break; + case 'i': + switch(s[11]) { + default: + break; + case 'd': + switch(s[12]) { + default: + break; + case '-': + if (strcmp("params", s + 13) == 0) + return PIDX_ALG_PARAM_ALGORITHM_ID_PARAMS; + break; + case '\0': + return PIDX_ALG_PARAM_ALGORITHM_ID; + } + } + } + } + } + } + } + } + } + } + break; + case 'i': + if (strcmp("as", s + 3) == 0) + return PIDX_STORE_PARAM_ALIAS; + } + break; + case '\0': + return PIDX_PKEY_PARAM_EC_A; + } + break; + case 'b': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("sis-type", s + 2) == 0) + return PIDX_PKEY_PARAM_EC_CHAR2_TYPE; + break; + case 'i': + if (strcmp("ts", s + 2) == 0) + return PIDX_PKEY_PARAM_BITS; + break; + case 'l': + switch(s[2]) { + default: + break; + case 'o': + switch(s[3]) { + default: + break; + case 'c': + switch(s[4]) { + default: + break; + case 'k': + switch(s[5]) { + default: + break; + case '-': + if (strcmp("size", s + 6) == 0) + return PIDX_MAC_PARAM_BLOCK_SIZE; + break; + case '_': + if (strcmp("padding", s + 6) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_BLOCK_PADDING; + break; + case 's': + if (strcmp("ize", s + 6) == 0) + return PIDX_DIGEST_PARAM_BLOCK_SIZE; + } + } + } + } + break; + case 'u': + if (strcmp("ildinfo", s + 2) == 0) + return PIDX_PROV_PARAM_BUILDINFO; + break; + case '\0': + return PIDX_PKEY_PARAM_EC_B; + } + break; + case 'c': + switch(s[1]) { + default: + break; + case '-': + if (strcmp("rounds", s + 2) == 0) + return PIDX_MAC_PARAM_C_ROUNDS; + break; + case 'e': + if (strcmp("kalg", s + 2) == 0) + return PIDX_KDF_PARAM_CEK_ALG; + break; + case 'i': + if (strcmp("pher", s + 2) == 0) + return PIDX_ALG_PARAM_CIPHER; + break; + case 'o': + switch(s[2]) { + default: + break; + case 'f': + if (strcmp("actor", s + 3) == 0) + return PIDX_PKEY_PARAM_EC_COFACTOR; + break; + case 'n': + switch(s[3]) { + default: + break; + case 's': + if (strcmp("tant", s + 4) == 0) + return PIDX_KDF_PARAM_CONSTANT; + break; + case 't': + if (strcmp("ext-string", s + 4) == 0) + return PIDX_SIGNATURE_PARAM_CONTEXT_STRING; + } + } + break; + case 't': + switch(s[2]) { + default: + break; + case 's': + switch(s[3]) { + default: + break; + case '_': + if (strcmp("mode", s + 4) == 0) + return PIDX_CIPHER_PARAM_CTS_MODE; + break; + case '\0': + return PIDX_CIPHER_PARAM_CTS; + } + } + break; + case 'u': + switch(s[2]) { + default: + break; + case 's': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case 'o': + switch(s[5]) { + default: + break; + case 'm': + switch(s[6]) { + default: + break; + case '-': + if (strcmp("iv", s + 7) == 0) + return PIDX_CIPHER_PARAM_CUSTOM_IV; + break; + case '\0': + return PIDX_MAC_PARAM_CUSTOM; + } + } + } + } + } + } + break; + case 'd': + switch(s[1]) { + default: + break; + case '-': + if (strcmp("rounds", s + 2) == 0) + return PIDX_MAC_PARAM_D_ROUNDS; + break; + case 'a': + switch(s[2]) { + default: + break; + case 't': + switch(s[3]) { + default: + break; + case 'a': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 's': + if (strcmp("tructure", s + 6) == 0) + return PIDX_OBJECT_PARAM_DATA_STRUCTURE; + break; + case 't': + if (strcmp("ype", s + 6) == 0) + return PIDX_OBJECT_PARAM_DATA_TYPE; + } + break; + case '\0': + return PIDX_OBJECT_PARAM_DATA; + } + } + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'c': + switch(s[3]) { + default: + break; + case 'o': + if (strcmp("ded-from-explicit", s + 4) == 0) + return PIDX_PKEY_PARAM_EC_DECODED_FROM_EXPLICIT_PARAMS; + break; + case 'r': + if (strcmp("ypt-only", s + 4) == 0) + return PIDX_CIPHER_PARAM_DECRYPT_ONLY; + } + break; + case 'f': + if (strcmp("ault-digest", s + 3) == 0) + return PIDX_PKEY_PARAM_DEFAULT_DIGEST; + break; + case 's': + if (strcmp("c", s + 3) == 0) + return PIDX_OBJECT_PARAM_DESC; + break; + case 't': + if (strcmp("erministic", s + 3) == 0) + return PIDX_SIGNATURE_PARAM_DETERMINISTIC; + } + break; + case 'h': + if (strcmp("kem-ikm", s + 2) == 0) + return PIDX_PKEY_PARAM_DHKEM_IKM; + break; + case 'i': + switch(s[2]) { + default: + break; + case 'g': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case 's': + switch(s[5]) { + default: + break; + case 't': + switch(s[6]) { + default: + break; + case '-': + switch(s[7]) { + default: + break; + case 'c': + if (strcmp("heck", s + 8) == 0) + return PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK; + break; + case 'n': + if (strcmp("oinit", s + 8) == 0) + return PIDX_MAC_PARAM_DIGEST_NOINIT; + break; + case 'o': + if (strcmp("neshot", s + 8) == 0) + return PIDX_MAC_PARAM_DIGEST_ONESHOT; + break; + case 'p': + if (strcmp("rops", s + 8) == 0) + return PIDX_ASYM_CIPHER_PARAM_OAEP_DIGEST_PROPS; + break; + case 's': + if (strcmp("ize", s + 8) == 0) + return PIDX_PKEY_PARAM_DIGEST_SIZE; + } + break; + case '\0': + return PIDX_STORE_PARAM_DIGEST; + } + } + } + } + break; + case 's': + if (strcmp("tid", s + 3) == 0) + return PIDX_PKEY_PARAM_DIST_ID; + } + break; + case 'r': + if (strcmp("bg-no-trunc-md", s + 2) == 0) + return PIDX_PROV_PARAM_DRBG_TRUNC_DIGEST; + break; + case 's': + if (strcmp("a-sign-disabled", s + 2) == 0) + return PIDX_PROV_PARAM_DSA_SIGN_DISABLED; + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_D; + } + break; + case 'e': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("rly_clean", s + 2) == 0) + return PIDX_KDF_PARAM_EARLY_CLEAN; + break; + case 'c': + switch(s[2]) { + default: + break; + case 'd': + switch(s[3]) { + default: + break; + case 'h': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'c': + switch(s[6]) { + default: + break; + case 'o': + switch(s[7]) { + default: + break; + case 'f': + switch(s[8]) { + default: + break; + case 'a': + switch(s[9]) { + default: + break; + case 'c': + switch(s[10]) { + default: + break; + case 't': + switch(s[11]) { + default: + break; + case 'o': + switch(s[12]) { + default: + break; + case 'r': + switch(s[13]) { + default: + break; + case '-': + switch(s[14]) { + default: + break; + case 'c': + if (strcmp("heck", s + 15) == 0) + return PIDX_PROV_PARAM_ECDH_COFACTOR_CHECK; + break; + case 'm': + if (strcmp("ode", s + 15) == 0) + return PIDX_EXCHANGE_PARAM_EC_ECDH_COFACTOR_MODE; + } + } + } + } + } + } + } + } + } + } + } + } + } + break; + case 'm': + if (strcmp("s_check", s + 2) == 0) + return PIDX_KDF_PARAM_FIPS_EMS_CHECK; + break; + case 'n': + switch(s[2]) { + default: + break; + case 'c': + switch(s[3]) { + default: + break; + case 'o': + switch(s[4]) { + default: + break; + case 'd': + switch(s[5]) { + default: + break; + case 'e': + if (strcmp("d-pub-key", s + 6) == 0) + return PIDX_PKEY_PARAM_ENCODED_PUBLIC_KEY; + break; + case 'i': + if (strcmp("ng", s + 6) == 0) + return PIDX_PKEY_PARAM_EC_ENCODING; + } + } + break; + case 'r': + switch(s[4]) { + default: + break; + case 'y': + switch(s[5]) { + default: + break; + case 'p': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case '-': + switch(s[8]) { + default: + break; + case 'c': + if (strcmp("heck", s + 9) == 0) + return PIDX_CIPHER_PARAM_FIPS_ENCRYPT_CHECK; + break; + case 'l': + if (strcmp("evel", s + 9) == 0) + return PIDX_ENCODER_PARAM_ENCRYPT_LEVEL; + } + } + } + } + } + } + break; + case 'g': + if (strcmp("ine", s + 3) == 0) + return PIDX_ALG_PARAM_ENGINE; + break; + case 't': + switch(s[3]) { + default: + break; + case 'r': + switch(s[4]) { + default: + break; + case 'o': + switch(s[5]) { + default: + break; + case 'p': + switch(s[6]) { + default: + break; + case 'y': + switch(s[7]) { + default: + break; + case '_': + if (strcmp("required", s + 8) == 0) + return PIDX_DRBG_PARAM_ENTROPY_REQUIRED; + break; + case '\0': + return PIDX_KDF_PARAM_HMACDRBG_ENTROPY; + } + } + } + } + } + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_E; + break; + case 'x': + if (strcmp("pect", s + 2) == 0) + return PIDX_STORE_PARAM_EXPECT; + } + break; + case 'f': + switch(s[1]) { + default: + break; + case 'i': + switch(s[2]) { + default: + break; + case 'e': + if (strcmp("ld-type", s + 3) == 0) + return PIDX_PKEY_PARAM_EC_FIELD_TYPE; + break; + case 'n': + if (strcmp("gerprint", s + 3) == 0) + return PIDX_STORE_PARAM_FINGERPRINT; + break; + case 'p': + if (strcmp("s-indicator", s + 3) == 0) + return PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR; + } + } + break; + case 'g': + switch(s[1]) { + default: + break; + case 'e': + switch(s[2]) { + default: + break; + case 'n': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case 'r': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case 'e': + switch(s[8]) { + default: + break; + case '\0': + return PIDX_RAND_PARAM_GENERATE; + } + break; + case 'o': + if (strcmp("r", s + 8) == 0) + return PIDX_PKEY_PARAM_EC_GENERATOR; + } + } + } + } + } + } + break; + case 'i': + if (strcmp("ndex", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_GINDEX; + break; + case 'r': + switch(s[2]) { + default: + break; + case 'o': + switch(s[3]) { + default: + break; + case 'u': + switch(s[4]) { + default: + break; + case 'p': + switch(s[5]) { + default: + break; + case '-': + if (strcmp("check", s + 6) == 0) + return PIDX_PKEY_PARAM_EC_GROUP_CHECK_TYPE; + break; + case '\0': + return PIDX_PKEY_PARAM_GROUP_NAME; + } + } + } + } + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_G; + } + break; + case 'h': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("s-randkey", s + 2) == 0) + return PIDX_CIPHER_PARAM_HAS_RAND_KEY; + break; + case 'i': + if (strcmp("ndex", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_H; + break; + case 'k': + switch(s[2]) { + default: + break; + case 'd': + switch(s[3]) { + default: + break; + case 'f': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 6) == 0) + return PIDX_PROV_PARAM_HKDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 6) == 0) + return PIDX_PROV_PARAM_HKDF_KEY_CHECK; + } + } + } + } + break; + case 'm': + if (strcmp("ac-key-check", s + 2) == 0) + return PIDX_PROV_PARAM_HMAC_KEY_CHECK; + break; + case 's': + if (strcmp("_padding", s + 2) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_HS_PADDING; + } + break; + case 'i': + switch(s[1]) { + default: + break; + case 'd': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_KDF_PARAM_PKCS12_ID; + } + break; + case 'k': + if (strcmp("me", s + 2) == 0) + return PIDX_KEM_PARAM_IKME; + break; + case 'm': + if (strcmp("plicit-rejection", s + 2) == 0) + return PIDX_PKEY_PARAM_IMPLICIT_REJECTION; + break; + case 'n': + switch(s[2]) { + default: + break; + case 'c': + if (strcmp("lude-public", s + 3) == 0) + return PIDX_PKEY_PARAM_EC_INCLUDE_PUBLIC; + break; + case 'f': + if (strcmp("o", s + 3) == 0) + return PIDX_PASSPHRASE_PARAM_INFO; + break; + case 'p': + if (strcmp("ut-type", s + 3) == 0) + return PIDX_STORE_PARAM_INPUT_TYPE; + break; + case 's': + if (strcmp("tance", s + 3) == 0) + return PIDX_SIGNATURE_PARAM_INSTANCE; + } + break; + case 't': + switch(s[2]) { + default: + break; + case 'e': + switch(s[3]) { + default: + break; + case 'r': + switch(s[4]) { + default: + break; + case 'a': + if (strcmp("tion", s + 5) == 0) + return PIDX_GEN_PARAM_ITERATION; + break; + case '\0': + return PIDX_KDF_PARAM_ITER; + } + } + } + break; + case 'v': + switch(s[2]) { + default: + break; + case '-': + if (strcmp("generated", s + 3) == 0) + return PIDX_CIPHER_PARAM_AEAD_IV_GENERATED; + break; + case 'l': + if (strcmp("en", s + 3) == 0) + return PIDX_CIPHER_PARAM_IVLEN; + break; + case '\0': + return PIDX_MAC_PARAM_IV; + } + } + break; + case 'j': + switch(s[1]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_COFACTOR; + } + break; + case 'k': + switch(s[1]) { + default: + break; + case '1': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_PP_K1; + } + break; + case '2': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_PP_K2; + } + break; + case '3': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_PP_K3; + } + break; + case 'a': + if (strcmp("t", s + 2) == 0) + return PIDX_SIGNATURE_PARAM_KAT; + break; + case 'b': + if (strcmp("kdf-key-check", s + 2) == 0) + return PIDX_PROV_PARAM_KBKDF_KEY_CHECK; + break; + case 'd': + switch(s[2]) { + default: + break; + case 'f': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'd': + switch(s[5]) { + default: + break; + case 'i': + switch(s[6]) { + default: + break; + case 'g': + switch(s[7]) { + default: + break; + case 'e': + switch(s[8]) { + default: + break; + case 's': + switch(s[9]) { + default: + break; + case 't': + switch(s[10]) { + default: + break; + case '-': + if (strcmp("props", s + 11) == 0) + return PIDX_EXCHANGE_PARAM_KDF_DIGEST_PROPS; + break; + case '\0': + return PIDX_EXCHANGE_PARAM_KDF_DIGEST; + } + } + } + } + } + } + break; + case 'o': + if (strcmp("utlen", s + 5) == 0) + return PIDX_EXCHANGE_PARAM_KDF_OUTLEN; + break; + case 't': + if (strcmp("ype", s + 5) == 0) + return PIDX_EXCHANGE_PARAM_KDF_TYPE; + break; + case 'u': + if (strcmp("km", s + 5) == 0) + return PIDX_EXCHANGE_PARAM_KDF_UKM; + } + } + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'y': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'c': + if (strcmp("heck", s + 5) == 0) + return PIDX_PKEY_PARAM_FIPS_KEY_CHECK; + break; + case 'l': + if (strcmp("ength", s + 5) == 0) + return PIDX_SKEY_PARAM_KEY_LENGTH; + } + break; + case 'b': + if (strcmp("its", s + 4) == 0) + return PIDX_CIPHER_PARAM_RC2_KEYBITS; + break; + case 'l': + if (strcmp("en", s + 4) == 0) + return PIDX_CIPHER_PARAM_KEYLEN; + break; + case '\0': + return PIDX_MAC_PARAM_KEY; + } + } + break; + case 'm': + if (strcmp("ac-key-check", s + 2) == 0) + return PIDX_PROV_PARAM_KMAC_KEY_CHECK; + } + break; + case 'l': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'b': + if (strcmp("el", s + 3) == 0) + return PIDX_KDF_PARAM_LABEL; + break; + case 'n': + if (strcmp("es", s + 3) == 0) + return PIDX_KDF_PARAM_ARGON2_LANES; + } + } + break; + case 'm': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'c': + switch(s[3]) { + default: + break; + case 'k': + if (strcmp("ey", s + 4) == 0) + return PIDX_CIPHER_PARAM_AEAD_MAC_KEY; + break; + case 'l': + if (strcmp("en", s + 4) == 0) + return PIDX_KDF_PARAM_MAC_SIZE; + break; + case '\0': + return PIDX_ALG_PARAM_MAC; + } + break; + case 'n': + if (strcmp("datory-digest", s + 3) == 0) + return PIDX_PKEY_PARAM_MANDATORY_DIGEST; + break; + case 'x': + switch(s[3]) { + default: + break; + case '-': + if (strcmp("size", s + 4) == 0) + return PIDX_PKEY_PARAM_MAX_SIZE; + break; + case '_': + switch(s[4]) { + default: + break; + case 'a': + if (strcmp("dinlen", s + 5) == 0) + return PIDX_DRBG_PARAM_MAX_ADINLEN; + break; + case 'e': + switch(s[5]) { + default: + break; + case 'a': + if (strcmp("rly_data", s + 6) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_MAX_EARLY_DATA; + break; + case 'n': + if (strcmp("tropylen", s + 6) == 0) + return PIDX_DRBG_PARAM_MAX_ENTROPYLEN; + } + break; + case 'f': + if (strcmp("rag_len", s + 5) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_MAX_FRAG_LEN; + break; + case 'n': + if (strcmp("oncelen", s + 5) == 0) + return PIDX_DRBG_PARAM_MAX_NONCELEN; + break; + case 'p': + if (strcmp("erslen", s + 5) == 0) + return PIDX_DRBG_PARAM_MAX_PERSLEN; + break; + case 'r': + if (strcmp("equest", s + 5) == 0) + return PIDX_RAND_PARAM_MAX_REQUEST; + } + break; + case 'i': + if (strcmp("um_length", s + 4) == 0) + return PIDX_DRBG_PARAM_MAX_LENGTH; + break; + case 'm': + if (strcmp("em_bytes", s + 4) == 0) + return PIDX_KDF_PARAM_SCRYPT_MAXMEM; + } + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'm': + if (strcmp("cost", s + 3) == 0) + return PIDX_KDF_PARAM_ARGON2_MEMCOST; + break; + case 's': + if (strcmp("sage-encoding", s + 3) == 0) + return PIDX_SIGNATURE_PARAM_MESSAGE_ENCODING; + } + break; + case 'g': + switch(s[2]) { + default: + break; + case 'f': + switch(s[3]) { + default: + break; + case '1': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'd': + if (strcmp("igest", s + 6) == 0) + return PIDX_PKEY_PARAM_MGF1_DIGEST; + break; + case 'p': + if (strcmp("roperties", s + 6) == 0) + return PIDX_PKEY_PARAM_MGF1_PROPERTIES; + } + } + break; + case '\0': + return PIDX_PKEY_PARAM_MASKGENFUNC; + } + } + break; + case 'i': + switch(s[2]) { + default: + break; + case 'c': + if (strcmp("alg", s + 3) == 0) + return PIDX_DIGEST_PARAM_MICALG; + break; + case 'n': + switch(s[3]) { + default: + break; + case '_': + switch(s[4]) { + default: + break; + case 'e': + if (strcmp("ntropylen", s + 5) == 0) + return PIDX_DRBG_PARAM_MIN_ENTROPYLEN; + break; + case 'n': + if (strcmp("oncelen", s + 5) == 0) + return PIDX_DRBG_PARAM_MIN_NONCELEN; + } + break; + case 'i': + if (strcmp("um_length", s + 4) == 0) + return PIDX_DRBG_PARAM_MIN_LENGTH; + } + } + break; + case 'l': + switch(s[2]) { + default: + break; + case '-': + switch(s[3]) { + default: + break; + case 'd': + switch(s[4]) { + default: + break; + case 's': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case '.': + switch(s[7]) { + default: + break; + case 'i': + if (strcmp("nput_formats", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_DSA_INPUT_FORMATS; + break; + case 'o': + if (strcmp("utput_formats", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_DSA_OUTPUT_FORMATS; + break; + case 'p': + if (strcmp("refer_seed", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_DSA_PREFER_SEED; + break; + case 'r': + if (strcmp("etain_seed", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_DSA_RETAIN_SEED; + } + } + } + } + break; + case 'k': + switch(s[4]) { + default: + break; + case 'e': + switch(s[5]) { + default: + break; + case 'm': + switch(s[6]) { + default: + break; + case '.': + switch(s[7]) { + default: + break; + case 'i': + switch(s[8]) { + default: + break; + case 'm': + if (strcmp("port_pct_type", s + 9) == 0) + return PIDX_PKEY_PARAM_ML_KEM_IMPORT_PCT_TYPE; + break; + case 'n': + if (strcmp("put_formats", s + 9) == 0) + return PIDX_PKEY_PARAM_ML_KEM_INPUT_FORMATS; + } + break; + case 'o': + if (strcmp("utput_formats", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_KEM_OUTPUT_FORMATS; + break; + case 'p': + if (strcmp("refer_seed", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_KEM_PREFER_SEED; + break; + case 'r': + if (strcmp("etain_seed", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_KEM_RETAIN_SEED; + } + } + } + } + } + } + break; + case 'o': + switch(s[2]) { + default: + break; + case 'd': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case '\0': + return PIDX_LIBSSL_RECORD_LAYER_PARAM_MODE; + } + break; + case 'u': + if (strcmp("le-filename", s + 4) == 0) + return PIDX_PROV_PARAM_CORE_MODULE_FILENAME; + } + } + break; + case 'u': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_SIGNATURE_PARAM_MU; + } + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_M; + } + break; + case 'n': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("me", s + 2) == 0) + return PIDX_STORE_PARAM_ISSUER; + break; + case 'o': + switch(s[2]) { + default: + break; + case '-': + if (strcmp("short-mac", s + 3) == 0) + return PIDX_PROV_PARAM_NO_SHORT_MAC; + break; + case 'n': + switch(s[3]) { + default: + break; + case 'c': + switch(s[4]) { + default: + break; + case 'e': + switch(s[5]) { + default: + break; + case '-': + if (strcmp("type", s + 6) == 0) + return PIDX_SIGNATURE_PARAM_NONCE_TYPE; + break; + case '\0': + return PIDX_KDF_PARAM_HMACDRBG_NONCE; + } + } + } + } + break; + case 'u': + if (strcmp("m", s + 2) == 0) + return PIDX_CIPHER_PARAM_NUM; + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_N; + } + break; + case 'o': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("ep-label", s + 2) == 0) + return PIDX_ASYM_CIPHER_PARAM_OAEP_LABEL; + break; + case 'p': + switch(s[2]) { + default: + break; + case 'e': + switch(s[3]) { + default: + break; + case 'n': + if (strcmp("ssl-version", s + 4) == 0) + return PIDX_PROV_PARAM_CORE_VERSION; + break; + case 'r': + if (strcmp("ation", s + 4) == 0) + return PIDX_KEM_PARAM_OPERATION; + } + break; + case 't': + if (strcmp("ions", s + 3) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_OPTIONS; + } + break; + case 'r': + if (strcmp("der", s + 2) == 0) + return PIDX_PKEY_PARAM_EC_ORDER; + } + break; + case 'p': + switch(s[1]) { + default: + break; + case '1': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_P1; + } + break; + case '2': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_P2; + } + break; + case 'a': + switch(s[2]) { + default: + break; + case 'd': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'm': + if (strcmp("ode", s + 5) == 0) + return PIDX_PKEY_PARAM_PAD_MODE; + break; + case 't': + if (strcmp("ype", s + 5) == 0) + return PIDX_DIGEST_PARAM_PAD_TYPE; + } + break; + case 'd': + if (strcmp("ing", s + 4) == 0) + return PIDX_CIPHER_PARAM_PADDING; + break; + case '\0': + return PIDX_EXCHANGE_PARAM_PAD; + } + break; + case 'r': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case 'y': + switch(s[5]) { + default: + break; + case 'u': + if (strcmp("-info", s + 6) == 0) + return PIDX_KDF_PARAM_X942_PARTYUINFO; + break; + case 'v': + if (strcmp("-info", s + 6) == 0) + return PIDX_KDF_PARAM_X942_PARTYVINFO; + } + } + } + break; + case 's': + if (strcmp("s", s + 3) == 0) + return PIDX_KDF_PARAM_PASSWORD; + } + break; + case 'b': + switch(s[2]) { + default: + break; + case 'i': + if (strcmp("ts", s + 3) == 0) + return PIDX_PKEY_PARAM_FFC_PBITS; + break; + case 'k': + if (strcmp("df2-lower-bound-check", s + 3) == 0) + return PIDX_PROV_PARAM_PBKDF2_LOWER_BOUND_CHECK; + } + break; + case 'c': + if (strcmp("ounter", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_PCOUNTER; + break; + case 'i': + if (strcmp("peline-tag", s + 2) == 0) + return PIDX_CIPHER_PARAM_PIPELINE_AEAD_TAG; + break; + case 'k': + if (strcmp("cs5", s + 2) == 0) + return PIDX_KDF_PARAM_PKCS5; + break; + case 'o': + switch(s[2]) { + default: + break; + case 'i': + if (strcmp("nt-format", s + 3) == 0) + return PIDX_PKEY_PARAM_EC_POINT_CONVERSION_FORMAT; + break; + case 't': + if (strcmp("ential", s + 3) == 0) + return PIDX_GEN_PARAM_POTENTIAL; + } + break; + case 'r': + switch(s[2]) { + default: + break; + case 'e': + switch(s[3]) { + default: + break; + case 'd': + if (strcmp("iction_resistance", s + 4) == 0) + return PIDX_DRBG_PARAM_PREDICTION_RESISTANCE; + break; + case 'f': + if (strcmp("ix", s + 4) == 0) + return PIDX_KDF_PARAM_PREFIX; + } + break; + case 'i': + switch(s[3]) { + default: + break; + case 'm': + if (strcmp("es", s + 4) == 0) + return PIDX_PKEY_PARAM_RSA_PRIMES; + break; + case 'v': + switch(s[4]) { + default: + break; + case '_': + if (strcmp("len", s + 5) == 0) + return PIDX_PKEY_PARAM_DH_PRIV_LEN; + break; + case '\0': + return PIDX_PKEY_PARAM_PRIV_KEY; + } + } + break; + case 'o': + switch(s[3]) { + default: + break; + case 'p': + if (strcmp("erties", s + 4) == 0) + return PIDX_STORE_PARAM_PROPERTIES; + break; + case 'v': + if (strcmp("ider-name", s + 4) == 0) + return PIDX_PROV_PARAM_CORE_PROV_NAME; + } + } + break; + case 'u': + if (strcmp("b", s + 2) == 0) + return PIDX_PKEY_PARAM_PUB_KEY; + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_P; + } + break; + case 'q': + switch(s[1]) { + default: + break; + case '1': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_Q1; + } + break; + case '2': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_Q2; + } + break; + case 'b': + if (strcmp("its", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_QBITS; + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_Q; + break; + case 'x': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_PUB_X; + } + break; + case 'y': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_PUB_Y; + } + } + break; + case 'r': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'n': + switch(s[3]) { + default: + break; + case 'd': + switch(s[4]) { + default: + break; + case 'k': + if (strcmp("ey", s + 5) == 0) + return PIDX_CIPHER_PARAM_RANDOM_KEY; + break; + case 'o': + if (strcmp("m_data", s + 5) == 0) + return PIDX_DRBG_PARAM_RANDOM_DATA; + } + } + break; + case 'w': + if (strcmp("-bytes", s + 3) == 0) + return PIDX_SKEY_PARAM_RAW_BYTES; + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'a': + switch(s[3]) { + default: + break; + case 'd': + switch(s[4]) { + default: + break; + case '_': + switch(s[5]) { + default: + break; + case 'a': + if (strcmp("head", s + 6) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_READ_AHEAD; + break; + case 'b': + if (strcmp("uffer_len", s + 6) == 0) + return PIDX_LIBSSL_RECORD_LAYER_READ_BUFFER_LEN; + } + } + } + break; + case 'f': + if (strcmp("erence", s + 3) == 0) + return PIDX_OBJECT_PARAM_REFERENCE; + break; + case 's': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case 'e': + switch(s[5]) { + default: + break; + case 'd': + switch(s[6]) { + default: + break; + case '_': + switch(s[7]) { + default: + break; + case 'c': + if (strcmp("ounter", s + 8) == 0) + return PIDX_DRBG_PARAM_RESEED_COUNTER; + break; + case 'r': + if (strcmp("equests", s + 8) == 0) + return PIDX_DRBG_PARAM_RESEED_REQUESTS; + break; + case 't': + switch(s[8]) { + default: + break; + case 'i': + switch(s[9]) { + default: + break; + case 'm': + switch(s[10]) { + default: + break; + case 'e': + switch(s[11]) { + default: + break; + case '_': + if (strcmp("interval", s + 12) == 0) + return PIDX_DRBG_PARAM_RESEED_TIME_INTERVAL; + break; + case '\0': + return PIDX_DRBG_PARAM_RESEED_TIME; + } + } + } + } + } + } + } + } + } + } + break; + case 'o': + if (strcmp("unds", s + 2) == 0) + return PIDX_CIPHER_PARAM_ROUNDS; + break; + case 's': + switch(s[2]) { + default: + break; + case 'a': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'c': + switch(s[5]) { + default: + break; + case 'o': + switch(s[6]) { + default: + break; + case 'e': + switch(s[7]) { + default: + break; + case 'f': + switch(s[8]) { + default: + break; + case 'f': + switch(s[9]) { + default: + break; + case 'i': + switch(s[10]) { + default: + break; + case 'c': + switch(s[11]) { + default: + break; + case 'i': + switch(s[12]) { + default: + break; + case 'e': + switch(s[13]) { + default: + break; + case 'n': + switch(s[14]) { + default: + break; + case 't': + switch(s[15]) { + default: + break; + case '1': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT1; + } + break; + case '2': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT2; + } + break; + case '3': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT3; + } + break; + case '4': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT4; + } + break; + case '5': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT5; + } + break; + case '6': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT6; + } + break; + case '7': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT7; + } + break; + case '8': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT8; + } + break; + case '9': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT9; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT; + } + } + } + } + } + } + } + } + } + } + } + break; + case 'd': + if (strcmp("erive-from-pq", s + 5) == 0) + return PIDX_PKEY_PARAM_RSA_DERIVE_FROM_PQ; + break; + case 'e': + switch(s[5]) { + default: + break; + case 'x': + switch(s[6]) { + default: + break; + case 'p': + switch(s[7]) { + default: + break; + case 'o': + switch(s[8]) { + default: + break; + case 'n': + switch(s[9]) { + default: + break; + case 'e': + switch(s[10]) { + default: + break; + case 'n': + switch(s[11]) { + default: + break; + case 't': + switch(s[12]) { + default: + break; + case '1': + switch(s[13]) { + default: + break; + case '0': + switch(s[14]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT10; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT1; + } + break; + case '2': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT2; + } + break; + case '3': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT3; + } + break; + case '4': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT4; + } + break; + case '5': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT5; + } + break; + case '6': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT6; + } + break; + case '7': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT7; + } + break; + case '8': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT8; + } + break; + case '9': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT9; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT; + } + } + } + } + } + } + } + } + break; + case 'f': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case 'c': + switch(s[7]) { + default: + break; + case 't': + switch(s[8]) { + default: + break; + case 'o': + switch(s[9]) { + default: + break; + case 'r': + switch(s[10]) { + default: + break; + case '1': + switch(s[11]) { + default: + break; + case '0': + switch(s[12]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR10; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR1; + } + break; + case '2': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR2; + } + break; + case '3': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR3; + } + break; + case '4': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR4; + } + break; + case '5': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR5; + } + break; + case '6': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR6; + } + break; + case '7': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR7; + } + break; + case '8': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR8; + } + break; + case '9': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR9; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR; + } + } + } + } + } + } + break; + case 'p': + switch(s[5]) { + default: + break; + case 'k': + if (strcmp("cs15-pad-disabled", s + 6) == 0) + return PIDX_PROV_PARAM_RSA_PKCS15_PAD_DISABLED; + break; + case 's': + if (strcmp("s-saltlen-check", s + 6) == 0) + return PIDX_SIGNATURE_PARAM_FIPS_RSA_PSS_SALTLEN_CHECK; + } + break; + case 's': + if (strcmp("ign-x931-pad-disabled", s + 5) == 0) + return PIDX_PROV_PARAM_RSA_SIGN_X931_PAD_DISABLED; + } + } + } + break; + case '\0': + return PIDX_KDF_PARAM_SCRYPT_R; + } + break; + case 's': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'f': + if (strcmp("eprime-generator", s + 3) == 0) + return PIDX_PKEY_PARAM_DH_GENERATOR; + break; + case 'l': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case 'l': + if (strcmp("en", s + 5) == 0) + return PIDX_SIGNATURE_PARAM_PSS_SALTLEN; + break; + case '\0': + return PIDX_MAC_PARAM_SALT; + } + } + break; + case 'v': + if (strcmp("e-parameters", s + 3) == 0) + return PIDX_ENCODER_PARAM_SAVE_PARAMETERS; + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'c': + switch(s[3]) { + default: + break; + case 'r': + if (strcmp("et", s + 4) == 0) + return PIDX_KDF_PARAM_SECRET; + break; + case 'u': + switch(s[4]) { + default: + break; + case 'r': + switch(s[5]) { + default: + break; + case 'i': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case 'y': + switch(s[8]) { + default: + break; + case '-': + switch(s[9]) { + default: + break; + case 'b': + if (strcmp("its", s + 10) == 0) + return PIDX_PKEY_PARAM_SECURITY_BITS; + break; + case 'c': + if (strcmp("hecks", s + 10) == 0) + return PIDX_PROV_PARAM_SECURITY_CHECKS; + } + } + } + } + } + } + } + break; + case 'e': + if (strcmp("d", s + 3) == 0) + return PIDX_PKEY_PARAM_SLH_DSA_SEED; + break; + case 'r': + if (strcmp("ial", s + 3) == 0) + return PIDX_STORE_PARAM_SERIAL; + break; + case 's': + if (strcmp("sion_id", s + 3) == 0) + return PIDX_KDF_PARAM_SSHKDF_SESSION_ID; + } + break; + case 'i': + switch(s[2]) { + default: + break; + case 'g': + switch(s[3]) { + default: + break; + case 'n': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'c': + if (strcmp("heck", s + 6) == 0) + return PIDX_PKEY_PARAM_FIPS_SIGN_CHECK; + break; + case 'x': + if (strcmp("931-pad-check", s + 6) == 0) + return PIDX_SIGNATURE_PARAM_FIPS_SIGN_X931_PAD_CHECK; + } + break; + case 'a': + switch(s[5]) { + default: + break; + case 't': + switch(s[6]) { + default: + break; + case 'u': + switch(s[7]) { + default: + break; + case 'r': + switch(s[8]) { + default: + break; + case 'e': + switch(s[9]) { + default: + break; + case '-': + if (strcmp("digest-check", s + 10) == 0) + return PIDX_PROV_PARAM_SIGNATURE_DIGEST_CHECK; + break; + case '\0': + return PIDX_SIGNATURE_PARAM_SIGNATURE; + } + } + } + } + } + } + } + break; + case 'z': + if (strcmp("e", s + 3) == 0) + return PIDX_MAC_PARAM_SIZE; + } + break; + case 'p': + if (strcmp("eed", s + 2) == 0) + return PIDX_CIPHER_PARAM_SPEED; + break; + case 's': + switch(s[2]) { + default: + break; + case 'h': + switch(s[3]) { + default: + break; + case 'k': + switch(s[4]) { + default: + break; + case 'd': + switch(s[5]) { + default: + break; + case 'f': + switch(s[6]) { + default: + break; + case '-': + switch(s[7]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 8) == 0) + return PIDX_PROV_PARAM_SSHKDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 8) == 0) + return PIDX_PROV_PARAM_SSHKDF_KEY_CHECK; + } + } + } + } + } + break; + case 'k': + switch(s[3]) { + default: + break; + case 'd': + switch(s[4]) { + default: + break; + case 'f': + switch(s[5]) { + default: + break; + case '-': + switch(s[6]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 7) == 0) + return PIDX_PROV_PARAM_SSKDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 7) == 0) + return PIDX_PROV_PARAM_SSKDF_KEY_CHECK; + } + } + } + } + break; + case 'l': + if (strcmp("3-ms", s + 3) == 0) + return PIDX_DIGEST_PARAM_SSL3_MS; + } + break; + case 't': + switch(s[2]) { + default: + break; + case '-': + switch(s[3]) { + default: + break; + case 'd': + if (strcmp("esc", s + 4) == 0) + return PIDX_PROV_PARAM_SELF_TEST_DESC; + break; + case 'p': + if (strcmp("hase", s + 4) == 0) + return PIDX_PROV_PARAM_SELF_TEST_PHASE; + break; + case 't': + if (strcmp("ype", s + 4) == 0) + return PIDX_PROV_PARAM_SELF_TEST_TYPE; + } + break; + case 'a': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case 'e': + switch(s[5]) { + default: + break; + case '\0': + return PIDX_RAND_PARAM_STATE; + } + break; + case 'u': + if (strcmp("s", s + 5) == 0) + return PIDX_PROV_PARAM_STATUS; + } + } + break; + case 'r': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case 'a': + if (strcmp("m_mac", s + 5) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_STREAM_MAC; + break; + case 'n': + if (strcmp("gth", s + 5) == 0) + return PIDX_RAND_PARAM_STRENGTH; + } + } + } + break; + case 'u': + switch(s[2]) { + default: + break; + case 'b': + if (strcmp("ject", s + 3) == 0) + return PIDX_STORE_PARAM_SUBJECT; + break; + case 'p': + switch(s[3]) { + default: + break; + case 'p': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'p': + switch(s[6]) { + default: + break; + case 'r': + if (strcmp("ivinfo", s + 7) == 0) + return PIDX_KDF_PARAM_X942_SUPP_PRIVINFO; + break; + case 'u': + if (strcmp("binfo", s + 7) == 0) + return PIDX_KDF_PARAM_X942_SUPP_PUBINFO; + } + } + } + } + } + } + break; + case 't': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'g': + switch(s[3]) { + default: + break; + case 'l': + if (strcmp("en", s + 4) == 0) + return PIDX_CIPHER_PARAM_AEAD_TAGLEN; + break; + case '\0': + return PIDX_CIPHER_PARAM_AEAD_TAG; + } + } + break; + case 'd': + if (strcmp("es-encrypt-disabled", s + 2) == 0) + return PIDX_PROV_PARAM_TDES_ENCRYPT_DISABLED; + break; + case 'e': + switch(s[2]) { + default: + break; + case 's': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case '-': + if (strcmp("entropy", s + 5) == 0) + return PIDX_SIGNATURE_PARAM_TEST_ENTROPY; + break; + case '_': + switch(s[5]) { + default: + break; + case 'e': + if (strcmp("ntropy", s + 6) == 0) + return PIDX_RAND_PARAM_TEST_ENTROPY; + break; + case 'n': + if (strcmp("once", s + 6) == 0) + return PIDX_RAND_PARAM_TEST_NONCE; + } + } + } + } + break; + case 'h': + if (strcmp("reads", s + 2) == 0) + return PIDX_KDF_PARAM_THREADS; + break; + case 'l': + switch(s[2]) { + default: + break; + case 's': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'c': + if (strcmp("lient-version", s + 5) == 0) + return PIDX_ASYM_CIPHER_PARAM_TLS_CLIENT_VERSION; + break; + case 'd': + if (strcmp("ata-size", s + 5) == 0) + return PIDX_MAC_PARAM_TLS_DATA_SIZE; + break; + case 'g': + switch(s[5]) { + default: + break; + case 'r': + switch(s[6]) { + default: + break; + case 'o': + switch(s[7]) { + default: + break; + case 'u': + switch(s[8]) { + default: + break; + case 'p': + switch(s[9]) { + default: + break; + case '-': + switch(s[10]) { + default: + break; + case 'a': + if (strcmp("lg", s + 11) == 0) + return PIDX_CAPABILITY_TLS_GROUP_ALG; + break; + case 'i': + switch(s[11]) { + default: + break; + case 'd': + switch(s[12]) { + default: + break; + case '\0': + return PIDX_CAPABILITY_TLS_GROUP_ID; + } + break; + case 's': + if (strcmp("-kem", s + 12) == 0) + return PIDX_CAPABILITY_TLS_GROUP_IS_KEM; + } + break; + case 'n': + switch(s[11]) { + default: + break; + case 'a': + switch(s[12]) { + default: + break; + case 'm': + switch(s[13]) { + default: + break; + case 'e': + switch(s[14]) { + default: + break; + case '-': + if (strcmp("internal", s + 15) == 0) + return PIDX_CAPABILITY_TLS_GROUP_NAME_INTERNAL; + break; + case '\0': + return PIDX_CAPABILITY_TLS_GROUP_NAME; + } + } + } + } + break; + case 's': + if (strcmp("ec-bits", s + 11) == 0) + return PIDX_CAPABILITY_TLS_GROUP_SECURITY_BITS; + } + } + } + } + } + } + break; + case 'm': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case 'c': + switch(s[7]) { + default: + break; + case '-': + if (strcmp("size", s + 8) == 0) + return PIDX_CIPHER_PARAM_TLS_MAC_SIZE; + break; + case '\0': + return PIDX_CIPHER_PARAM_TLS_MAC; + } + break; + case 'x': + switch(s[7]) { + default: + break; + case '-': + switch(s[8]) { + default: + break; + case 'd': + if (strcmp("tls", s + 9) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_MAX_DTLS; + break; + case 't': + if (strcmp("ls", s + 9) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_MAX_TLS; + } + } + } + break; + case 'i': + switch(s[6]) { + default: + break; + case 'n': + switch(s[7]) { + default: + break; + case '-': + switch(s[8]) { + default: + break; + case 'd': + if (strcmp("tls", s + 9) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_MIN_DTLS; + break; + case 't': + if (strcmp("ls", s + 9) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_MIN_TLS; + } + } + } + break; + case 'u': + if (strcmp("lti", s + 6) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK; + } + break; + case 'n': + if (strcmp("egotiated-version", s + 5) == 0) + return PIDX_ASYM_CIPHER_PARAM_TLS_NEGOTIATED_VERSION; + break; + case 's': + switch(s[5]) { + default: + break; + case 'i': + switch(s[6]) { + default: + break; + case 'g': + switch(s[7]) { + default: + break; + case 'a': + switch(s[8]) { + default: + break; + case 'l': + switch(s[9]) { + default: + break; + case 'g': + switch(s[10]) { + default: + break; + case '-': + switch(s[11]) { + default: + break; + case 'c': + if (strcmp("ode-point", s + 12) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_CODE_POINT; + break; + case 'h': + switch(s[12]) { + default: + break; + case 'a': + switch(s[13]) { + default: + break; + case 's': + switch(s[14]) { + default: + break; + case 'h': + switch(s[15]) { + default: + break; + case '-': + switch(s[16]) { + default: + break; + case 'n': + if (strcmp("ame", s + 17) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_HASH_NAME; + break; + case 'o': + if (strcmp("id", s + 17) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_HASH_OID; + } + } + } + } + } + break; + case 'i': + if (strcmp("ana-name", s + 12) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_IANA_NAME; + break; + case 'k': + switch(s[12]) { + default: + break; + case 'e': + switch(s[13]) { + default: + break; + case 'y': + switch(s[14]) { + default: + break; + case 't': + switch(s[15]) { + default: + break; + case 'y': + switch(s[16]) { + default: + break; + case 'p': + switch(s[17]) { + default: + break; + case 'e': + switch(s[18]) { + default: + break; + case '-': + if (strcmp("oid", s + 19) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_KEYTYPE_OID; + break; + case '\0': + return PIDX_CAPABILITY_TLS_SIGALG_KEYTYPE; + } + } + } + } + } + } + } + break; + case 'n': + if (strcmp("ame", s + 12) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_NAME; + break; + case 'o': + if (strcmp("id", s + 12) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_OID; + break; + case 's': + switch(s[12]) { + default: + break; + case 'e': + if (strcmp("c-bits", s + 13) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_SECURITY_BITS; + break; + case 'i': + switch(s[13]) { + default: + break; + case 'g': + switch(s[14]) { + default: + break; + case '-': + switch(s[15]) { + default: + break; + case 'n': + if (strcmp("ame", s + 16) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_SIG_NAME; + break; + case 'o': + if (strcmp("id", s + 16) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_SIG_OID; + } + } + } + } + } + } + } + } + } + } + } + break; + case 'v': + if (strcmp("ersion", s + 5) == 0) + return PIDX_CIPHER_PARAM_TLS_VERSION; + } + break; + case '1': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'p': + switch(s[6]) { + default: + break; + case 'r': + switch(s[7]) { + default: + break; + case 'f': + switch(s[8]) { + default: + break; + case '-': + switch(s[9]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 10) == 0) + return PIDX_PROV_PARAM_TLS1_PRF_DIGEST_CHECK; + break; + case 'e': + if (strcmp("ms-check", s + 10) == 0) + return PIDX_PROV_PARAM_TLS1_PRF_EMS_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 10) == 0) + return PIDX_PROV_PARAM_TLS1_PRF_KEY_CHECK; + } + } + } + } + } + break; + case '3': + switch(s[5]) { + default: + break; + case '-': + switch(s[6]) { + default: + break; + case 'k': + switch(s[7]) { + default: + break; + case 'd': + switch(s[8]) { + default: + break; + case 'f': + switch(s[9]) { + default: + break; + case '-': + switch(s[10]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 11) == 0) + return PIDX_PROV_PARAM_TLS13_KDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 11) == 0) + return PIDX_PROV_PARAM_TLS13_KDF_KEY_CHECK; + } + } + } + } + } + } + break; + case 'm': + switch(s[5]) { + default: + break; + case 'u': + switch(s[6]) { + default: + break; + case 'l': + switch(s[7]) { + default: + break; + case 't': + switch(s[8]) { + default: + break; + case 'i': + switch(s[9]) { + default: + break; + case '_': + switch(s[10]) { + default: + break; + case 'a': + switch(s[11]) { + default: + break; + case 'a': + switch(s[12]) { + default: + break; + case 'd': + switch(s[13]) { + default: + break; + case 'p': + if (strcmp("acklen", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD_PACKLEN; + break; + case '\0': + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD; + } + } + } + break; + case 'e': + switch(s[11]) { + default: + break; + case 'n': + switch(s[12]) { + default: + break; + case 'c': + switch(s[13]) { + default: + break; + case 'i': + if (strcmp("n", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_IN; + break; + case 'l': + if (strcmp("en", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_LEN; + break; + case '\0': + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC; + } + } + } + break; + case 'i': + if (strcmp("nterleave", s + 11) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_INTERLEAVE; + break; + case 'm': + switch(s[11]) { + default: + break; + case 'a': + switch(s[12]) { + default: + break; + case 'x': + switch(s[13]) { + default: + break; + case 'b': + if (strcmp("ufsz", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_BUFSIZE; + break; + case 's': + if (strcmp("ndfrag", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_SEND_FRAGMENT; + } + } + } + } + } + } + } + } + } + } + break; + case 'a': + switch(s[4]) { + default: + break; + case 'a': + switch(s[5]) { + default: + break; + case 'd': + switch(s[6]) { + default: + break; + case 'p': + if (strcmp("ad", s + 7) == 0) + return PIDX_CIPHER_PARAM_AEAD_TLS1_AAD_PAD; + break; + case '\0': + return PIDX_CIPHER_PARAM_AEAD_TLS1_AAD; + } + } + } + break; + case 'i': + switch(s[4]) { + default: + break; + case 'v': + switch(s[5]) { + default: + break; + case 'f': + if (strcmp("ixed", s + 6) == 0) + return PIDX_CIPHER_PARAM_AEAD_TLS1_IV_FIXED; + break; + case 'g': + if (strcmp("en", s + 6) == 0) + return PIDX_CIPHER_PARAM_AEAD_TLS1_GET_IV_GEN; + break; + case 'i': + if (strcmp("nv", s + 6) == 0) + return PIDX_CIPHER_PARAM_AEAD_TLS1_SET_IV_INV; + } + } + break; + case 't': + if (strcmp("ree", s + 4) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_TLSTREE; + } + } + break; + case 'p': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_TP_BASIS; + } + break; + case 'y': + if (strcmp("pe", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_TYPE; + } + break; + case 'u': + switch(s[1]) { + default: + break; + case 'k': + if (strcmp("m", s + 2) == 0) + return PIDX_KDF_PARAM_UKM; + break; + case 'p': + if (strcmp("dated-iv", s + 2) == 0) + return PIDX_CIPHER_PARAM_UPDATED_IV; + break; + case 's': + switch(s[2]) { + default: + break; + case 'e': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'b': + if (strcmp("its", s + 5) == 0) + return PIDX_CIPHER_PARAM_USE_BITS; + break; + case 'c': + if (strcmp("ofactor-flag", s + 5) == 0) + return PIDX_PKEY_PARAM_USE_COFACTOR_FLAG; + break; + case 'k': + if (strcmp("eybits", s + 5) == 0) + return PIDX_KDF_PARAM_X942_USE_KEYBITS; + break; + case 'l': + switch(s[5]) { + default: + break; + case '\0': + return PIDX_KDF_PARAM_KBKDF_USE_L; + } + break; + case 's': + if (strcmp("eparator", s + 5) == 0) + return PIDX_KDF_PARAM_KBKDF_USE_SEPARATOR; + } + break; + case '_': + switch(s[4]) { + default: + break; + case 'd': + if (strcmp("erivation_function", s + 5) == 0) + return PIDX_DRBG_PARAM_USE_DF; + break; + case 'e': + if (strcmp("tm", s + 5) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_USE_ETM; + } + } + } + } + break; + case 'v': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'l': + switch(s[3]) { + default: + break; + case 'i': + switch(s[4]) { + default: + break; + case 'd': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case 'e': + switch(s[8]) { + default: + break; + case '-': + switch(s[9]) { + default: + break; + case 'g': + switch(s[10]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_VALIDATE_G; + } + break; + case 'l': + if (strcmp("egacy", s + 10) == 0) + return PIDX_PKEY_PARAM_FFC_VALIDATE_LEGACY; + break; + case 'p': + if (strcmp("q", s + 10) == 0) + return PIDX_PKEY_PARAM_FFC_VALIDATE_PQ; + } + } + } + } + } + } + } + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'r': + switch(s[3]) { + default: + break; + case 'i': + if (strcmp("fy-message", s + 4) == 0) + return PIDX_SIGNATURE_PARAM_FIPS_VERIFY_MESSAGE; + break; + case 's': + if (strcmp("ion", s + 4) == 0) + return PIDX_PROV_PARAM_VERSION; + } + } + } + break; + case 'x': + switch(s[1]) { + default: + break; + case '9': + switch(s[2]) { + default: + break; + case '4': + if (strcmp("2kdf-key-check", s + 3) == 0) + return PIDX_PROV_PARAM_X942KDF_KEY_CHECK; + break; + case '6': + switch(s[3]) { + default: + break; + case '3': + switch(s[4]) { + default: + break; + case 'k': + switch(s[5]) { + default: + break; + case 'd': + switch(s[6]) { + default: + break; + case 'f': + switch(s[7]) { + default: + break; + case '-': + switch(s[8]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 9) == 0) + return PIDX_PROV_PARAM_X963KDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 9) == 0) + return PIDX_PROV_PARAM_X963KDF_KEY_CHECK; + } + } + } + } + } + } + } + break; + case 'c': + if (strcmp("ghash", s + 2) == 0) + return PIDX_KDF_PARAM_SSHKDF_XCGHASH; + break; + case 'o': + switch(s[2]) { + default: + break; + case 'f': + switch(s[3]) { + default: + break; + case 'l': + if (strcmp("en", s + 4) == 0) + return PIDX_DIGEST_PARAM_XOFLEN; + break; + case '\0': + return PIDX_MAC_PARAM_XOF; + } + } + break; + case 'p': + switch(s[2]) { + default: + break; + case '1': + switch(s[3]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XP1; + } + break; + case '2': + switch(s[3]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XP2; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XP; + } + break; + case 'q': + switch(s[2]) { + default: + break; + case '1': + switch(s[3]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XQ1; + } + break; + case '2': + switch(s[3]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XQ2; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XQ; + } + break; + case 't': + if (strcmp("s_standard", s + 2) == 0) + return PIDX_CIPHER_PARAM_XTS_STANDARD; + } + } + return -1; +} + +/* End of TRIE */ diff --git a/deps/openssl/config/archs/linux-armv4/asm/crypto/poly1305/poly1305-armv4.S b/deps/openssl/config/archs/linux-armv4/asm/crypto/poly1305/poly1305-armv4.S index 14f80a85c83448..95b166b28b1dbb 100644 --- a/deps/openssl/config/archs/linux-armv4/asm/crypto/poly1305/poly1305-armv4.S +++ b/deps/openssl/config/archs/linux-armv4/asm/crypto/poly1305/poly1305-armv4.S @@ -1164,5 +1164,6 @@ poly1305_emit_neon: .align 2 .align 2 #if __ARM_MAX_ARCH__>=7 -.comm OPENSSL_armcap_P,4,4 + +.hidden OPENSSL_armcap_P #endif diff --git a/deps/openssl/config/archs/linux-armv4/asm/crypto/sha/keccak1600-armv4.S b/deps/openssl/config/archs/linux-armv4/asm/crypto/sha/keccak1600-armv4.S index e601fb1a26c0dc..74d16c4170cc43 100644 --- a/deps/openssl/config/archs/linux-armv4/asm/crypto/sha/keccak1600-armv4.S +++ b/deps/openssl/config/archs/linux-armv4/asm/crypto/sha/keccak1600-armv4.S @@ -2043,6 +2043,7 @@ SHA3_squeeze: mov r4,r1 mov r5,r2 mov r12,r3 + ldr r0, [sp, #40] @ next is after the 10 pushed registers (10*4) #ifdef __thumb2__ mov r9,#0x00ff00ff @@ -2064,6 +2065,8 @@ SHA3_squeeze: stmdb sp!,{r6,r7,r8,r9} mov r14,r10 + cmp r0, #1 + beq .Lnext_block b .Loop_squeeze .align 4 @@ -2135,7 +2138,7 @@ SHA3_squeeze: subs r12,r12,#8 @ bsz -= 8 bhi .Loop_squeeze - +.Lnext_block: mov r0,r14 @ original r10 bl KeccakF1600 diff --git a/deps/openssl/config/archs/linux-armv4/asm/crypto/sha/sha1-armv4-large.S b/deps/openssl/config/archs/linux-armv4/asm/crypto/sha/sha1-armv4-large.S index 4729122657449b..596de458b1409e 100644 --- a/deps/openssl/config/archs/linux-armv4/asm/crypto/sha/sha1-armv4-large.S +++ b/deps/openssl/config/archs/linux-armv4/asm/crypto/sha/sha1-armv4-large.S @@ -1494,5 +1494,6 @@ sha1_block_data_order_armv8: .size sha1_block_data_order_armv8,.-sha1_block_data_order_armv8 #endif #if __ARM_MAX_ARCH__>=7 -.comm OPENSSL_armcap_P,4,4 + +.hidden OPENSSL_armcap_P #endif diff --git a/deps/openssl/config/archs/linux-armv4/asm/crypto/sha/sha256-armv4.S b/deps/openssl/config/archs/linux-armv4/asm/crypto/sha/sha256-armv4.S index 4348a68a9671e4..849226a83414ca 100644 --- a/deps/openssl/config/archs/linux-armv4/asm/crypto/sha/sha256-armv4.S +++ b/deps/openssl/config/archs/linux-armv4/asm/crypto/sha/sha256-armv4.S @@ -1,4 +1,4 @@ -@ Copyright 2007-2020 The OpenSSL Project Authors. All Rights Reserved. +@ Copyright 2007-2023 The OpenSSL Project Authors. All Rights Reserved. @ @ Licensed under the Apache License 2.0 (the "License"). You may not use @ this file except in compliance with the License. You can obtain a copy @@ -2818,5 +2818,6 @@ sha256_block_data_order_armv8: .align 2 .align 2 #if __ARM_MAX_ARCH__>=7 && !defined(__KERNEL__) -.comm OPENSSL_armcap_P,4,4 + +.hidden OPENSSL_armcap_P #endif diff --git a/deps/openssl/config/archs/linux-armv4/asm/crypto/sha/sha512-armv4.S b/deps/openssl/config/archs/linux-armv4/asm/crypto/sha/sha512-armv4.S index 9ee892276c93fc..f1f8ab9e03fadf 100644 --- a/deps/openssl/config/archs/linux-armv4/asm/crypto/sha/sha512-armv4.S +++ b/deps/openssl/config/archs/linux-armv4/asm/crypto/sha/sha512-armv4.S @@ -1,4 +1,4 @@ -@ Copyright 2007-2020 The OpenSSL Project Authors. All Rights Reserved. +@ Copyright 2007-2023 The OpenSSL Project Authors. All Rights Reserved. @ @ Licensed under the Apache License 2.0 (the "License"). You may not use @ this file except in compliance with the License. You can obtain a copy @@ -1872,5 +1872,6 @@ sha512_block_data_order_neon: .align 2 .align 2 #if __ARM_MAX_ARCH__>=7 && !defined(__KERNEL__) -.comm OPENSSL_armcap_P,4,4 + +.hidden OPENSSL_armcap_P #endif diff --git a/deps/openssl/config/archs/linux-armv4/asm/include/internal/param_names.h b/deps/openssl/config/archs/linux-armv4/asm/include/internal/param_names.h new file mode 100644 index 00000000000000..0a0404a57e82b9 --- /dev/null +++ b/deps/openssl/config/archs/linux-armv4/asm/include/internal/param_names.h @@ -0,0 +1,469 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from include/internal/param_names.h.in + * + * Copyright 2023 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + +int ossl_param_find_pidx(const char *s); + +/* Parameter name definitions - generated by util/perl/OpenSSL/paramnames.pm */ +#define NUM_PIDX 346 + +#define PIDX_ALG_PARAM_ALGORITHM_ID 0 +#define PIDX_ALG_PARAM_ALGORITHM_ID_PARAMS 1 +#define PIDX_ALG_PARAM_CIPHER 2 +#define PIDX_ALG_PARAM_DIGEST 3 +#define PIDX_ALG_PARAM_ENGINE 4 +#define PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR 5 +#define PIDX_ALG_PARAM_MAC 6 +#define PIDX_ALG_PARAM_PROPERTIES 7 +#define PIDX_ASYM_CIPHER_PARAM_DIGEST PIDX_PKEY_PARAM_DIGEST +#define PIDX_ASYM_CIPHER_PARAM_ENGINE PIDX_PKEY_PARAM_ENGINE +#define PIDX_ASYM_CIPHER_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_ASYM_CIPHER_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_ASYM_CIPHER_PARAM_FIPS_RSA_PKCS15_PAD_DISABLED PIDX_PROV_PARAM_RSA_PKCS15_PAD_DISABLED +#define PIDX_ASYM_CIPHER_PARAM_IMPLICIT_REJECTION 8 +#define PIDX_ASYM_CIPHER_PARAM_MGF1_DIGEST PIDX_PKEY_PARAM_MGF1_DIGEST +#define PIDX_ASYM_CIPHER_PARAM_MGF1_DIGEST_PROPS PIDX_PKEY_PARAM_MGF1_PROPERTIES +#define PIDX_ASYM_CIPHER_PARAM_OAEP_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_ASYM_CIPHER_PARAM_OAEP_DIGEST_PROPS 9 +#define PIDX_ASYM_CIPHER_PARAM_OAEP_LABEL 10 +#define PIDX_ASYM_CIPHER_PARAM_PAD_MODE PIDX_PKEY_PARAM_PAD_MODE +#define PIDX_ASYM_CIPHER_PARAM_PROPERTIES PIDX_PKEY_PARAM_PROPERTIES +#define PIDX_ASYM_CIPHER_PARAM_TLS_CLIENT_VERSION 11 +#define PIDX_ASYM_CIPHER_PARAM_TLS_NEGOTIATED_VERSION 12 +#define PIDX_CAPABILITY_TLS_GROUP_ALG 13 +#define PIDX_CAPABILITY_TLS_GROUP_ID 14 +#define PIDX_CAPABILITY_TLS_GROUP_IS_KEM 15 +#define PIDX_CAPABILITY_TLS_GROUP_MAX_DTLS 16 +#define PIDX_CAPABILITY_TLS_GROUP_MAX_TLS 17 +#define PIDX_CAPABILITY_TLS_GROUP_MIN_DTLS 18 +#define PIDX_CAPABILITY_TLS_GROUP_MIN_TLS 19 +#define PIDX_CAPABILITY_TLS_GROUP_NAME 20 +#define PIDX_CAPABILITY_TLS_GROUP_NAME_INTERNAL 21 +#define PIDX_CAPABILITY_TLS_GROUP_SECURITY_BITS 22 +#define PIDX_CAPABILITY_TLS_SIGALG_CODE_POINT 23 +#define PIDX_CAPABILITY_TLS_SIGALG_HASH_NAME 24 +#define PIDX_CAPABILITY_TLS_SIGALG_HASH_OID 25 +#define PIDX_CAPABILITY_TLS_SIGALG_IANA_NAME 26 +#define PIDX_CAPABILITY_TLS_SIGALG_KEYTYPE 27 +#define PIDX_CAPABILITY_TLS_SIGALG_KEYTYPE_OID 28 +#define PIDX_CAPABILITY_TLS_SIGALG_MAX_DTLS 16 +#define PIDX_CAPABILITY_TLS_SIGALG_MAX_TLS 17 +#define PIDX_CAPABILITY_TLS_SIGALG_MIN_DTLS 18 +#define PIDX_CAPABILITY_TLS_SIGALG_MIN_TLS 19 +#define PIDX_CAPABILITY_TLS_SIGALG_NAME 29 +#define PIDX_CAPABILITY_TLS_SIGALG_OID 30 +#define PIDX_CAPABILITY_TLS_SIGALG_SECURITY_BITS 31 +#define PIDX_CAPABILITY_TLS_SIGALG_SIG_NAME 32 +#define PIDX_CAPABILITY_TLS_SIGALG_SIG_OID 33 +#define PIDX_CIPHER_PARAM_AEAD 34 +#define PIDX_CIPHER_PARAM_AEAD_IVLEN PIDX_CIPHER_PARAM_IVLEN +#define PIDX_CIPHER_PARAM_AEAD_IV_GENERATED 35 +#define PIDX_CIPHER_PARAM_AEAD_MAC_KEY 36 +#define PIDX_CIPHER_PARAM_AEAD_TAG 37 +#define PIDX_CIPHER_PARAM_AEAD_TAGLEN 38 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_AAD 39 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_AAD_PAD 40 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_GET_IV_GEN 41 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_IV_FIXED 42 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_SET_IV_INV 43 +#define PIDX_CIPHER_PARAM_ALGORITHM_ID PIDX_ALG_PARAM_ALGORITHM_ID +#define PIDX_CIPHER_PARAM_ALGORITHM_ID_PARAMS PIDX_ALG_PARAM_ALGORITHM_ID_PARAMS +#define PIDX_CIPHER_PARAM_ALGORITHM_ID_PARAMS_OLD 44 +#define PIDX_CIPHER_PARAM_BLOCK_SIZE 45 +#define PIDX_CIPHER_PARAM_CTS 46 +#define PIDX_CIPHER_PARAM_CTS_MODE 47 +#define PIDX_CIPHER_PARAM_CUSTOM_IV 48 +#define PIDX_CIPHER_PARAM_DECRYPT_ONLY 49 +#define PIDX_CIPHER_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_CIPHER_PARAM_FIPS_ENCRYPT_CHECK 50 +#define PIDX_CIPHER_PARAM_HAS_RAND_KEY 51 +#define PIDX_CIPHER_PARAM_IV 52 +#define PIDX_CIPHER_PARAM_IVLEN 53 +#define PIDX_CIPHER_PARAM_KEYLEN 54 +#define PIDX_CIPHER_PARAM_MODE 55 +#define PIDX_CIPHER_PARAM_NUM 56 +#define PIDX_CIPHER_PARAM_PADDING 57 +#define PIDX_CIPHER_PARAM_PIPELINE_AEAD_TAG 58 +#define PIDX_CIPHER_PARAM_RANDOM_KEY 59 +#define PIDX_CIPHER_PARAM_RC2_KEYBITS 60 +#define PIDX_CIPHER_PARAM_ROUNDS 61 +#define PIDX_CIPHER_PARAM_SPEED 62 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK 63 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD 64 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD_PACKLEN 65 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC 66 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_IN 67 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_LEN 68 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_INTERLEAVE 69 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_BUFSIZE 70 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_SEND_FRAGMENT 71 +#define PIDX_CIPHER_PARAM_TLS_MAC 72 +#define PIDX_CIPHER_PARAM_TLS_MAC_SIZE 73 +#define PIDX_CIPHER_PARAM_TLS_VERSION 74 +#define PIDX_CIPHER_PARAM_UPDATED_IV 75 +#define PIDX_CIPHER_PARAM_USE_BITS 76 +#define PIDX_CIPHER_PARAM_XTS_STANDARD 77 +#define PIDX_DECODER_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_DIGEST_PARAM_ALGID_ABSENT 78 +#define PIDX_DIGEST_PARAM_BLOCK_SIZE 45 +#define PIDX_DIGEST_PARAM_MICALG 79 +#define PIDX_DIGEST_PARAM_PAD_TYPE 80 +#define PIDX_DIGEST_PARAM_SIZE 81 +#define PIDX_DIGEST_PARAM_SSL3_MS 82 +#define PIDX_DIGEST_PARAM_XOF 83 +#define PIDX_DIGEST_PARAM_XOFLEN 84 +#define PIDX_DRBG_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_DRBG_PARAM_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_DRBG_PARAM_ENTROPY_REQUIRED 85 +#define PIDX_DRBG_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_DRBG_PARAM_FIPS_DIGEST_CHECK PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK +#define PIDX_DRBG_PARAM_MAC PIDX_ALG_PARAM_MAC +#define PIDX_DRBG_PARAM_MAX_ADINLEN 86 +#define PIDX_DRBG_PARAM_MAX_ENTROPYLEN 87 +#define PIDX_DRBG_PARAM_MAX_LENGTH 88 +#define PIDX_DRBG_PARAM_MAX_NONCELEN 89 +#define PIDX_DRBG_PARAM_MAX_PERSLEN 90 +#define PIDX_DRBG_PARAM_MIN_ENTROPYLEN 91 +#define PIDX_DRBG_PARAM_MIN_LENGTH 92 +#define PIDX_DRBG_PARAM_MIN_NONCELEN 93 +#define PIDX_DRBG_PARAM_PREDICTION_RESISTANCE 94 +#define PIDX_DRBG_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_DRBG_PARAM_RANDOM_DATA 95 +#define PIDX_DRBG_PARAM_RESEED_COUNTER 96 +#define PIDX_DRBG_PARAM_RESEED_REQUESTS 97 +#define PIDX_DRBG_PARAM_RESEED_TIME 98 +#define PIDX_DRBG_PARAM_RESEED_TIME_INTERVAL 99 +#define PIDX_DRBG_PARAM_SIZE 81 +#define PIDX_DRBG_PARAM_USE_DF 100 +#define PIDX_ENCODER_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_ENCODER_PARAM_ENCRYPT_LEVEL 101 +#define PIDX_ENCODER_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_ENCODER_PARAM_SAVE_PARAMETERS 102 +#define PIDX_EXCHANGE_PARAM_EC_ECDH_COFACTOR_MODE 103 +#define PIDX_EXCHANGE_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_EXCHANGE_PARAM_FIPS_DIGEST_CHECK PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK +#define PIDX_EXCHANGE_PARAM_FIPS_ECDH_COFACTOR_CHECK PIDX_PROV_PARAM_ECDH_COFACTOR_CHECK +#define PIDX_EXCHANGE_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_EXCHANGE_PARAM_KDF_DIGEST 104 +#define PIDX_EXCHANGE_PARAM_KDF_DIGEST_PROPS 105 +#define PIDX_EXCHANGE_PARAM_KDF_OUTLEN 106 +#define PIDX_EXCHANGE_PARAM_KDF_TYPE 107 +#define PIDX_EXCHANGE_PARAM_KDF_UKM 108 +#define PIDX_EXCHANGE_PARAM_PAD 109 +#define PIDX_GEN_PARAM_ITERATION 110 +#define PIDX_GEN_PARAM_POTENTIAL 111 +#define PIDX_KDF_PARAM_ARGON2_AD 112 +#define PIDX_KDF_PARAM_ARGON2_LANES 113 +#define PIDX_KDF_PARAM_ARGON2_MEMCOST 114 +#define PIDX_KDF_PARAM_ARGON2_VERSION 115 +#define PIDX_KDF_PARAM_CEK_ALG 116 +#define PIDX_KDF_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_KDF_PARAM_CONSTANT 117 +#define PIDX_KDF_PARAM_DATA 118 +#define PIDX_KDF_PARAM_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_KDF_PARAM_EARLY_CLEAN 119 +#define PIDX_KDF_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_KDF_PARAM_FIPS_DIGEST_CHECK PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK +#define PIDX_KDF_PARAM_FIPS_EMS_CHECK 120 +#define PIDX_KDF_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_KDF_PARAM_HMACDRBG_ENTROPY 121 +#define PIDX_KDF_PARAM_HMACDRBG_NONCE 122 +#define PIDX_KDF_PARAM_INFO 123 +#define PIDX_KDF_PARAM_ITER 124 +#define PIDX_KDF_PARAM_KBKDF_R 125 +#define PIDX_KDF_PARAM_KBKDF_USE_L 126 +#define PIDX_KDF_PARAM_KBKDF_USE_SEPARATOR 127 +#define PIDX_KDF_PARAM_KEY 128 +#define PIDX_KDF_PARAM_LABEL 129 +#define PIDX_KDF_PARAM_MAC PIDX_ALG_PARAM_MAC +#define PIDX_KDF_PARAM_MAC_SIZE 130 +#define PIDX_KDF_PARAM_MODE 55 +#define PIDX_KDF_PARAM_PASSWORD 131 +#define PIDX_KDF_PARAM_PKCS12_ID 132 +#define PIDX_KDF_PARAM_PKCS5 133 +#define PIDX_KDF_PARAM_PREFIX 134 +#define PIDX_KDF_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_KDF_PARAM_SALT 135 +#define PIDX_KDF_PARAM_SCRYPT_MAXMEM 136 +#define PIDX_KDF_PARAM_SCRYPT_N 137 +#define PIDX_KDF_PARAM_SCRYPT_P 138 +#define PIDX_KDF_PARAM_SCRYPT_R 125 +#define PIDX_KDF_PARAM_SECRET 139 +#define PIDX_KDF_PARAM_SEED 140 +#define PIDX_KDF_PARAM_SIZE 81 +#define PIDX_KDF_PARAM_SSHKDF_SESSION_ID 141 +#define PIDX_KDF_PARAM_SSHKDF_TYPE 142 +#define PIDX_KDF_PARAM_SSHKDF_XCGHASH 143 +#define PIDX_KDF_PARAM_THREADS 144 +#define PIDX_KDF_PARAM_UKM 145 +#define PIDX_KDF_PARAM_X942_ACVPINFO 146 +#define PIDX_KDF_PARAM_X942_PARTYUINFO 147 +#define PIDX_KDF_PARAM_X942_PARTYVINFO 148 +#define PIDX_KDF_PARAM_X942_SUPP_PRIVINFO 149 +#define PIDX_KDF_PARAM_X942_SUPP_PUBINFO 150 +#define PIDX_KDF_PARAM_X942_USE_KEYBITS 151 +#define PIDX_KEM_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_KEM_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_KEM_PARAM_IKME 152 +#define PIDX_KEM_PARAM_OPERATION 153 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_BLOCK_PADDING 154 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_HS_PADDING 155 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_MAX_EARLY_DATA 156 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_MAX_FRAG_LEN 157 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_MODE 55 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_OPTIONS 158 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_READ_AHEAD 159 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_STREAM_MAC 160 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_TLSTREE 161 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_USE_ETM 162 +#define PIDX_LIBSSL_RECORD_LAYER_READ_BUFFER_LEN 163 +#define PIDX_MAC_PARAM_BLOCK_SIZE 164 +#define PIDX_MAC_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_MAC_PARAM_CUSTOM 165 +#define PIDX_MAC_PARAM_C_ROUNDS 166 +#define PIDX_MAC_PARAM_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_MAC_PARAM_DIGEST_NOINIT 167 +#define PIDX_MAC_PARAM_DIGEST_ONESHOT 168 +#define PIDX_MAC_PARAM_D_ROUNDS 169 +#define PIDX_MAC_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_MAC_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_MAC_PARAM_FIPS_NO_SHORT_MAC PIDX_PROV_PARAM_NO_SHORT_MAC +#define PIDX_MAC_PARAM_IV 52 +#define PIDX_MAC_PARAM_KEY 128 +#define PIDX_MAC_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_MAC_PARAM_SALT 135 +#define PIDX_MAC_PARAM_SIZE 81 +#define PIDX_MAC_PARAM_TLS_DATA_SIZE 170 +#define PIDX_MAC_PARAM_XOF 83 +#define PIDX_OBJECT_PARAM_DATA 118 +#define PIDX_OBJECT_PARAM_DATA_STRUCTURE 171 +#define PIDX_OBJECT_PARAM_DATA_TYPE 172 +#define PIDX_OBJECT_PARAM_DESC 173 +#define PIDX_OBJECT_PARAM_INPUT_TYPE 174 +#define PIDX_OBJECT_PARAM_REFERENCE 175 +#define PIDX_OBJECT_PARAM_TYPE 142 +#define PIDX_PASSPHRASE_PARAM_INFO 123 +#define PIDX_PKEY_PARAM_ALGORITHM_ID PIDX_ALG_PARAM_ALGORITHM_ID +#define PIDX_PKEY_PARAM_ALGORITHM_ID_PARAMS PIDX_ALG_PARAM_ALGORITHM_ID_PARAMS +#define PIDX_PKEY_PARAM_BITS 176 +#define PIDX_PKEY_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_PKEY_PARAM_DEFAULT_DIGEST 177 +#define PIDX_PKEY_PARAM_DHKEM_IKM 178 +#define PIDX_PKEY_PARAM_DH_GENERATOR 179 +#define PIDX_PKEY_PARAM_DH_PRIV_LEN 180 +#define PIDX_PKEY_PARAM_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_PKEY_PARAM_DIGEST_SIZE 181 +#define PIDX_PKEY_PARAM_DIST_ID 182 +#define PIDX_PKEY_PARAM_EC_A 183 +#define PIDX_PKEY_PARAM_EC_B 184 +#define PIDX_PKEY_PARAM_EC_CHAR2_M 185 +#define PIDX_PKEY_PARAM_EC_CHAR2_PP_K1 186 +#define PIDX_PKEY_PARAM_EC_CHAR2_PP_K2 187 +#define PIDX_PKEY_PARAM_EC_CHAR2_PP_K3 188 +#define PIDX_PKEY_PARAM_EC_CHAR2_TP_BASIS 189 +#define PIDX_PKEY_PARAM_EC_CHAR2_TYPE 190 +#define PIDX_PKEY_PARAM_EC_COFACTOR 191 +#define PIDX_PKEY_PARAM_EC_DECODED_FROM_EXPLICIT_PARAMS 192 +#define PIDX_PKEY_PARAM_EC_ENCODING 193 +#define PIDX_PKEY_PARAM_EC_FIELD_TYPE 194 +#define PIDX_PKEY_PARAM_EC_GENERATOR 195 +#define PIDX_PKEY_PARAM_EC_GROUP_CHECK_TYPE 196 +#define PIDX_PKEY_PARAM_EC_INCLUDE_PUBLIC 197 +#define PIDX_PKEY_PARAM_EC_ORDER 198 +#define PIDX_PKEY_PARAM_EC_P 138 +#define PIDX_PKEY_PARAM_EC_POINT_CONVERSION_FORMAT 199 +#define PIDX_PKEY_PARAM_EC_PUB_X 200 +#define PIDX_PKEY_PARAM_EC_PUB_Y 201 +#define PIDX_PKEY_PARAM_EC_SEED 140 +#define PIDX_PKEY_PARAM_ENCODED_PUBLIC_KEY 202 +#define PIDX_PKEY_PARAM_ENGINE PIDX_ALG_PARAM_ENGINE +#define PIDX_PKEY_PARAM_FFC_COFACTOR 203 +#define PIDX_PKEY_PARAM_FFC_DIGEST PIDX_PKEY_PARAM_DIGEST +#define PIDX_PKEY_PARAM_FFC_DIGEST_PROPS PIDX_PKEY_PARAM_PROPERTIES +#define PIDX_PKEY_PARAM_FFC_G 204 +#define PIDX_PKEY_PARAM_FFC_GINDEX 205 +#define PIDX_PKEY_PARAM_FFC_H 206 +#define PIDX_PKEY_PARAM_FFC_P 138 +#define PIDX_PKEY_PARAM_FFC_PBITS 207 +#define PIDX_PKEY_PARAM_FFC_PCOUNTER 208 +#define PIDX_PKEY_PARAM_FFC_Q 209 +#define PIDX_PKEY_PARAM_FFC_QBITS 210 +#define PIDX_PKEY_PARAM_FFC_SEED 140 +#define PIDX_PKEY_PARAM_FFC_TYPE 142 +#define PIDX_PKEY_PARAM_FFC_VALIDATE_G 211 +#define PIDX_PKEY_PARAM_FFC_VALIDATE_LEGACY 212 +#define PIDX_PKEY_PARAM_FFC_VALIDATE_PQ 213 +#define PIDX_PKEY_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK 214 +#define PIDX_PKEY_PARAM_FIPS_KEY_CHECK 215 +#define PIDX_PKEY_PARAM_FIPS_SIGN_CHECK 216 +#define PIDX_PKEY_PARAM_GROUP_NAME 217 +#define PIDX_PKEY_PARAM_IMPLICIT_REJECTION 8 +#define PIDX_PKEY_PARAM_MANDATORY_DIGEST 218 +#define PIDX_PKEY_PARAM_MASKGENFUNC 219 +#define PIDX_PKEY_PARAM_MAX_SIZE 220 +#define PIDX_PKEY_PARAM_MGF1_DIGEST 221 +#define PIDX_PKEY_PARAM_MGF1_PROPERTIES 222 +#define PIDX_PKEY_PARAM_ML_DSA_INPUT_FORMATS 223 +#define PIDX_PKEY_PARAM_ML_DSA_OUTPUT_FORMATS 224 +#define PIDX_PKEY_PARAM_ML_DSA_PREFER_SEED 225 +#define PIDX_PKEY_PARAM_ML_DSA_RETAIN_SEED 226 +#define PIDX_PKEY_PARAM_ML_DSA_SEED 140 +#define PIDX_PKEY_PARAM_ML_KEM_IMPORT_PCT_TYPE 227 +#define PIDX_PKEY_PARAM_ML_KEM_INPUT_FORMATS 228 +#define PIDX_PKEY_PARAM_ML_KEM_OUTPUT_FORMATS 229 +#define PIDX_PKEY_PARAM_ML_KEM_PREFER_SEED 230 +#define PIDX_PKEY_PARAM_ML_KEM_RETAIN_SEED 231 +#define PIDX_PKEY_PARAM_ML_KEM_SEED 140 +#define PIDX_PKEY_PARAM_PAD_MODE 232 +#define PIDX_PKEY_PARAM_PRIV_KEY 233 +#define PIDX_PKEY_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_PKEY_PARAM_PUB_KEY 234 +#define PIDX_PKEY_PARAM_RSA_BITS PIDX_PKEY_PARAM_BITS +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT 235 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT1 236 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT2 237 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT3 238 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT4 239 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT5 240 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT6 241 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT7 242 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT8 243 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT9 244 +#define PIDX_PKEY_PARAM_RSA_D 245 +#define PIDX_PKEY_PARAM_RSA_DERIVE_FROM_PQ 246 +#define PIDX_PKEY_PARAM_RSA_DIGEST PIDX_PKEY_PARAM_DIGEST +#define PIDX_PKEY_PARAM_RSA_DIGEST_PROPS PIDX_PKEY_PARAM_PROPERTIES +#define PIDX_PKEY_PARAM_RSA_E 247 +#define PIDX_PKEY_PARAM_RSA_EXPONENT 248 +#define PIDX_PKEY_PARAM_RSA_EXPONENT1 249 +#define PIDX_PKEY_PARAM_RSA_EXPONENT10 250 +#define PIDX_PKEY_PARAM_RSA_EXPONENT2 251 +#define PIDX_PKEY_PARAM_RSA_EXPONENT3 252 +#define PIDX_PKEY_PARAM_RSA_EXPONENT4 253 +#define PIDX_PKEY_PARAM_RSA_EXPONENT5 254 +#define PIDX_PKEY_PARAM_RSA_EXPONENT6 255 +#define PIDX_PKEY_PARAM_RSA_EXPONENT7 256 +#define PIDX_PKEY_PARAM_RSA_EXPONENT8 257 +#define PIDX_PKEY_PARAM_RSA_EXPONENT9 258 +#define PIDX_PKEY_PARAM_RSA_FACTOR 259 +#define PIDX_PKEY_PARAM_RSA_FACTOR1 260 +#define PIDX_PKEY_PARAM_RSA_FACTOR10 261 +#define PIDX_PKEY_PARAM_RSA_FACTOR2 262 +#define PIDX_PKEY_PARAM_RSA_FACTOR3 263 +#define PIDX_PKEY_PARAM_RSA_FACTOR4 264 +#define PIDX_PKEY_PARAM_RSA_FACTOR5 265 +#define PIDX_PKEY_PARAM_RSA_FACTOR6 266 +#define PIDX_PKEY_PARAM_RSA_FACTOR7 267 +#define PIDX_PKEY_PARAM_RSA_FACTOR8 268 +#define PIDX_PKEY_PARAM_RSA_FACTOR9 269 +#define PIDX_PKEY_PARAM_RSA_MASKGENFUNC PIDX_PKEY_PARAM_MASKGENFUNC +#define PIDX_PKEY_PARAM_RSA_MGF1_DIGEST PIDX_PKEY_PARAM_MGF1_DIGEST +#define PIDX_PKEY_PARAM_RSA_N 137 +#define PIDX_PKEY_PARAM_RSA_PRIMES 270 +#define PIDX_PKEY_PARAM_RSA_PSS_SALTLEN 271 +#define PIDX_PKEY_PARAM_RSA_TEST_P1 272 +#define PIDX_PKEY_PARAM_RSA_TEST_P2 273 +#define PIDX_PKEY_PARAM_RSA_TEST_Q1 274 +#define PIDX_PKEY_PARAM_RSA_TEST_Q2 275 +#define PIDX_PKEY_PARAM_RSA_TEST_XP 276 +#define PIDX_PKEY_PARAM_RSA_TEST_XP1 277 +#define PIDX_PKEY_PARAM_RSA_TEST_XP2 278 +#define PIDX_PKEY_PARAM_RSA_TEST_XQ 279 +#define PIDX_PKEY_PARAM_RSA_TEST_XQ1 280 +#define PIDX_PKEY_PARAM_RSA_TEST_XQ2 281 +#define PIDX_PKEY_PARAM_SECURITY_BITS 282 +#define PIDX_PKEY_PARAM_SLH_DSA_SEED 140 +#define PIDX_PKEY_PARAM_USE_COFACTOR_ECDH PIDX_PKEY_PARAM_USE_COFACTOR_FLAG +#define PIDX_PKEY_PARAM_USE_COFACTOR_FLAG 283 +#define PIDX_PROV_PARAM_BUILDINFO 284 +#define PIDX_PROV_PARAM_CORE_MODULE_FILENAME 285 +#define PIDX_PROV_PARAM_CORE_PROV_NAME 286 +#define PIDX_PROV_PARAM_CORE_VERSION 287 +#define PIDX_PROV_PARAM_DRBG_TRUNC_DIGEST 288 +#define PIDX_PROV_PARAM_DSA_SIGN_DISABLED 289 +#define PIDX_PROV_PARAM_ECDH_COFACTOR_CHECK 290 +#define PIDX_PROV_PARAM_HKDF_DIGEST_CHECK 291 +#define PIDX_PROV_PARAM_HKDF_KEY_CHECK 292 +#define PIDX_PROV_PARAM_HMAC_KEY_CHECK 293 +#define PIDX_PROV_PARAM_KBKDF_KEY_CHECK 294 +#define PIDX_PROV_PARAM_KMAC_KEY_CHECK 295 +#define PIDX_PROV_PARAM_NAME 296 +#define PIDX_PROV_PARAM_NO_SHORT_MAC 297 +#define PIDX_PROV_PARAM_PBKDF2_LOWER_BOUND_CHECK 298 +#define PIDX_PROV_PARAM_RSA_PKCS15_PAD_DISABLED 299 +#define PIDX_PROV_PARAM_RSA_PSS_SALTLEN_CHECK 300 +#define PIDX_PROV_PARAM_RSA_SIGN_X931_PAD_DISABLED 301 +#define PIDX_PROV_PARAM_SECURITY_CHECKS 302 +#define PIDX_PROV_PARAM_SELF_TEST_DESC 303 +#define PIDX_PROV_PARAM_SELF_TEST_PHASE 304 +#define PIDX_PROV_PARAM_SELF_TEST_TYPE 305 +#define PIDX_PROV_PARAM_SIGNATURE_DIGEST_CHECK 306 +#define PIDX_PROV_PARAM_SSHKDF_DIGEST_CHECK 307 +#define PIDX_PROV_PARAM_SSHKDF_KEY_CHECK 308 +#define PIDX_PROV_PARAM_SSKDF_DIGEST_CHECK 309 +#define PIDX_PROV_PARAM_SSKDF_KEY_CHECK 310 +#define PIDX_PROV_PARAM_STATUS 311 +#define PIDX_PROV_PARAM_TDES_ENCRYPT_DISABLED 312 +#define PIDX_PROV_PARAM_TLS13_KDF_DIGEST_CHECK 313 +#define PIDX_PROV_PARAM_TLS13_KDF_KEY_CHECK 314 +#define PIDX_PROV_PARAM_TLS1_PRF_DIGEST_CHECK 315 +#define PIDX_PROV_PARAM_TLS1_PRF_EMS_CHECK 316 +#define PIDX_PROV_PARAM_TLS1_PRF_KEY_CHECK 317 +#define PIDX_PROV_PARAM_VERSION 115 +#define PIDX_PROV_PARAM_X942KDF_KEY_CHECK 318 +#define PIDX_PROV_PARAM_X963KDF_DIGEST_CHECK 319 +#define PIDX_PROV_PARAM_X963KDF_KEY_CHECK 320 +#define PIDX_RAND_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_RAND_PARAM_GENERATE 321 +#define PIDX_RAND_PARAM_MAX_REQUEST 322 +#define PIDX_RAND_PARAM_STATE 323 +#define PIDX_RAND_PARAM_STRENGTH 324 +#define PIDX_RAND_PARAM_TEST_ENTROPY 325 +#define PIDX_RAND_PARAM_TEST_NONCE 326 +#define PIDX_SIGNATURE_PARAM_ADD_RANDOM 327 +#define PIDX_SIGNATURE_PARAM_ALGORITHM_ID PIDX_PKEY_PARAM_ALGORITHM_ID +#define PIDX_SIGNATURE_PARAM_ALGORITHM_ID_PARAMS PIDX_PKEY_PARAM_ALGORITHM_ID_PARAMS +#define PIDX_SIGNATURE_PARAM_CONTEXT_STRING 328 +#define PIDX_SIGNATURE_PARAM_DETERMINISTIC 329 +#define PIDX_SIGNATURE_PARAM_DIGEST PIDX_PKEY_PARAM_DIGEST +#define PIDX_SIGNATURE_PARAM_DIGEST_SIZE PIDX_PKEY_PARAM_DIGEST_SIZE +#define PIDX_SIGNATURE_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_SIGNATURE_PARAM_FIPS_DIGEST_CHECK PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK +#define PIDX_SIGNATURE_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_SIGNATURE_PARAM_FIPS_RSA_PSS_SALTLEN_CHECK 300 +#define PIDX_SIGNATURE_PARAM_FIPS_SIGN_CHECK PIDX_PKEY_PARAM_FIPS_SIGN_CHECK +#define PIDX_SIGNATURE_PARAM_FIPS_SIGN_X931_PAD_CHECK 330 +#define PIDX_SIGNATURE_PARAM_FIPS_VERIFY_MESSAGE 331 +#define PIDX_SIGNATURE_PARAM_INSTANCE 332 +#define PIDX_SIGNATURE_PARAM_KAT 333 +#define PIDX_SIGNATURE_PARAM_MESSAGE_ENCODING 334 +#define PIDX_SIGNATURE_PARAM_MGF1_DIGEST PIDX_PKEY_PARAM_MGF1_DIGEST +#define PIDX_SIGNATURE_PARAM_MGF1_PROPERTIES PIDX_PKEY_PARAM_MGF1_PROPERTIES +#define PIDX_SIGNATURE_PARAM_MU 335 +#define PIDX_SIGNATURE_PARAM_NONCE_TYPE 336 +#define PIDX_SIGNATURE_PARAM_PAD_MODE PIDX_PKEY_PARAM_PAD_MODE +#define PIDX_SIGNATURE_PARAM_PROPERTIES PIDX_PKEY_PARAM_PROPERTIES +#define PIDX_SIGNATURE_PARAM_PSS_SALTLEN 271 +#define PIDX_SIGNATURE_PARAM_SIGNATURE 337 +#define PIDX_SIGNATURE_PARAM_TEST_ENTROPY 338 +#define PIDX_SKEY_PARAM_KEY_LENGTH 339 +#define PIDX_SKEY_PARAM_RAW_BYTES 340 +#define PIDX_STORE_PARAM_ALIAS 341 +#define PIDX_STORE_PARAM_DIGEST 3 +#define PIDX_STORE_PARAM_EXPECT 342 +#define PIDX_STORE_PARAM_FINGERPRINT 343 +#define PIDX_STORE_PARAM_INPUT_TYPE 174 +#define PIDX_STORE_PARAM_ISSUER 296 +#define PIDX_STORE_PARAM_PROPERTIES 7 +#define PIDX_STORE_PARAM_SERIAL 344 +#define PIDX_STORE_PARAM_SUBJECT 345 diff --git a/deps/openssl/config/archs/linux-armv4/asm/include/openssl/asn1.h b/deps/openssl/config/archs/linux-armv4/asm/include/openssl/asn1.h index 21ff58e3d803d4..15e9e44674b0f3 100644 --- a/deps/openssl/config/archs/linux-armv4/asm/include/openssl/asn1.h +++ b/deps/openssl/config/archs/linux-armv4/asm/include/openssl/asn1.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/asn1.h.in * - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -21,6 +21,9 @@ # define HEADER_ASN1_H # endif +# ifndef OPENSSL_NO_STDIO +# include +# endif # include # include # include @@ -50,14 +53,14 @@ extern "C" { # define V_ASN1_PRIMITIVE_TAG 0x1f # define V_ASN1_PRIMATIVE_TAG /*compat*/ V_ASN1_PRIMITIVE_TAG -# define V_ASN1_APP_CHOOSE -2/* let the recipient choose */ -# define V_ASN1_OTHER -3/* used in ASN1_TYPE */ -# define V_ASN1_ANY -4/* used in ASN1 template code */ +# define V_ASN1_APP_CHOOSE -2 /* let the recipient choose */ +# define V_ASN1_OTHER -3 /* used in ASN1_TYPE */ +# define V_ASN1_ANY -4 /* used in ASN1 template code */ # define V_ASN1_UNDEF -1 /* ASN.1 tag values */ # define V_ASN1_EOC 0 -# define V_ASN1_BOOLEAN 1 /**/ +# define V_ASN1_BOOLEAN 1 # define V_ASN1_INTEGER 2 # define V_ASN1_BIT_STRING 3 # define V_ASN1_OCTET_STRING 4 @@ -70,19 +73,19 @@ extern "C" { # define V_ASN1_UTF8STRING 12 # define V_ASN1_SEQUENCE 16 # define V_ASN1_SET 17 -# define V_ASN1_NUMERICSTRING 18 /**/ +# define V_ASN1_NUMERICSTRING 18 # define V_ASN1_PRINTABLESTRING 19 # define V_ASN1_T61STRING 20 -# define V_ASN1_TELETEXSTRING 20/* alias */ -# define V_ASN1_VIDEOTEXSTRING 21 /**/ +# define V_ASN1_TELETEXSTRING 20 /* alias */ +# define V_ASN1_VIDEOTEXSTRING 21 # define V_ASN1_IA5STRING 22 # define V_ASN1_UTCTIME 23 -# define V_ASN1_GENERALIZEDTIME 24 /**/ -# define V_ASN1_GRAPHICSTRING 25 /**/ -# define V_ASN1_ISO64STRING 26 /**/ -# define V_ASN1_VISIBLESTRING 26/* alias */ -# define V_ASN1_GENERALSTRING 27 /**/ -# define V_ASN1_UNIVERSALSTRING 28 /**/ +# define V_ASN1_GENERALIZEDTIME 24 +# define V_ASN1_GRAPHICSTRING 25 +# define V_ASN1_ISO64STRING 26 +# define V_ASN1_VISIBLESTRING 26 /* alias */ +# define V_ASN1_GENERALSTRING 27 +# define V_ASN1_UNIVERSALSTRING 28 # define V_ASN1_BMPSTRING 30 /* @@ -155,7 +158,7 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_ALGOR, X509_ALGOR, X509_ALGOR) -# define ASN1_STRING_FLAG_BITS_LEFT 0x08/* Set if 0x07 has bits left value */ +# define ASN1_STRING_FLAG_BITS_LEFT 0x08 /* Set if 0x07 has bits left value */ /* * This indicates that the ASN1_STRING is not a real value but just a place * holder for the location where indefinite length constructed data should be @@ -275,7 +278,7 @@ typedef struct ASN1_TLC_st ASN1_TLC; /* This is just an opaque pointer */ typedef struct ASN1_VALUE_st ASN1_VALUE; -/* Declare ASN1 functions: the implement macro in in asn1t.h */ +/* Declare ASN1 functions: the implement macro is in asn1t.h */ /* * The mysterious 'extern' that's passed to some macros is innocuous, @@ -368,6 +371,7 @@ typedef struct ASN1_VALUE_st ASN1_VALUE; typedef void *d2i_of_void(void **, const unsigned char **, long); typedef int i2d_of_void(const void *, unsigned char **); +typedef int OSSL_i2d_of_void_ctx(const void *, unsigned char **, void *vctx); /*- * The following macros and typedefs allow an ASN1_ITEM @@ -996,6 +1000,8 @@ int ASN1_TYPE_get_int_octetstring(const ASN1_TYPE *a, long *num, unsigned char *data, int max_len); void *ASN1_item_unpack(const ASN1_STRING *oct, const ASN1_ITEM *it); +void *ASN1_item_unpack_ex(const ASN1_STRING *oct, const ASN1_ITEM *it, + OSSL_LIB_CTX *libctx, const char *propq); ASN1_STRING *ASN1_item_pack(void *obj, const ASN1_ITEM *it, ASN1_OCTET_STRING **oct); diff --git a/deps/openssl/config/archs/linux-armv4/asm/include/openssl/bio.h b/deps/openssl/config/archs/linux-armv4/asm/include/openssl/bio.h index f9aa74731c833c..e02f867beb0ec0 100644 --- a/deps/openssl/config/archs/linux-armv4/asm/include/openssl/bio.h +++ b/deps/openssl/config/archs/linux-armv4/asm/include/openssl/bio.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/bio.h.in * - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -67,8 +67,13 @@ extern "C" { # define BIO_TYPE_DGRAM_SCTP (24|BIO_TYPE_SOURCE_SINK|BIO_TYPE_DESCRIPTOR) # endif # define BIO_TYPE_CORE_TO_PROV (25|BIO_TYPE_SOURCE_SINK) +# define BIO_TYPE_DGRAM_PAIR (26|BIO_TYPE_SOURCE_SINK) +# define BIO_TYPE_DGRAM_MEM (27|BIO_TYPE_SOURCE_SINK) +/* Custom type starting index returned by BIO_get_new_index() */ #define BIO_TYPE_START 128 +/* Custom type maximum index that can be returned by BIO_get_new_index() */ +#define BIO_TYPE_MASK 0xFF /* * BIO_FILENAME_READ|BIO_CLOSE to open or close on free. @@ -171,6 +176,31 @@ extern "C" { # define BIO_CTRL_SET_INDENT 80 # define BIO_CTRL_GET_INDENT 81 +# define BIO_CTRL_DGRAM_GET_LOCAL_ADDR_CAP 82 +# define BIO_CTRL_DGRAM_GET_LOCAL_ADDR_ENABLE 83 +# define BIO_CTRL_DGRAM_SET_LOCAL_ADDR_ENABLE 84 +# define BIO_CTRL_DGRAM_GET_EFFECTIVE_CAPS 85 +# define BIO_CTRL_DGRAM_GET_CAPS 86 +# define BIO_CTRL_DGRAM_SET_CAPS 87 +# define BIO_CTRL_DGRAM_GET_NO_TRUNC 88 +# define BIO_CTRL_DGRAM_SET_NO_TRUNC 89 + +/* + * internal BIO: + * # define BIO_CTRL_SET_KTLS_TX_ZEROCOPY_SENDFILE 90 + */ + +# define BIO_CTRL_GET_RPOLL_DESCRIPTOR 91 +# define BIO_CTRL_GET_WPOLL_DESCRIPTOR 92 +# define BIO_CTRL_DGRAM_DETECT_PEER_ADDR 93 +# define BIO_CTRL_DGRAM_SET0_LOCAL_ADDR 94 + +# define BIO_DGRAM_CAP_NONE 0U +# define BIO_DGRAM_CAP_HANDLES_SRC_ADDR (1U << 0) +# define BIO_DGRAM_CAP_HANDLES_DST_ADDR (1U << 1) +# define BIO_DGRAM_CAP_PROVIDES_SRC_ADDR (1U << 2) +# define BIO_DGRAM_CAP_PROVIDES_DST_ADDR (1U << 3) + # ifndef OPENSSL_NO_KTLS # define BIO_get_ktls_send(b) \ (BIO_ctrl(b, BIO_CTRL_GET_KTLS_SEND, 0, NULL) > 0) @@ -208,7 +238,7 @@ extern "C" { # define BIO_FLAGS_NONCLEAR_RST 0x400 # define BIO_FLAGS_IN_EOF 0x800 -/* the BIO FLAGS values 0x1000 to 0x4000 are reserved for internal KTLS flags */ +/* the BIO FLAGS values 0x1000 to 0x8000 are reserved for internal KTLS flags */ typedef union bio_addr_st BIO_ADDR; typedef struct bio_addrinfo_st BIO_ADDRINFO; @@ -256,12 +286,14 @@ void BIO_clear_flags(BIO *b, int flags); # define BIO_RR_ACCEPT 0x03 /* These are passed by the BIO callback */ -# define BIO_CB_FREE 0x01 -# define BIO_CB_READ 0x02 -# define BIO_CB_WRITE 0x03 -# define BIO_CB_PUTS 0x04 -# define BIO_CB_GETS 0x05 -# define BIO_CB_CTRL 0x06 +# define BIO_CB_FREE 0x01 +# define BIO_CB_READ 0x02 +# define BIO_CB_WRITE 0x03 +# define BIO_CB_PUTS 0x04 +# define BIO_CB_GETS 0x05 +# define BIO_CB_CTRL 0x06 +# define BIO_CB_RECVMMSG 0x07 +# define BIO_CB_SENDMMSG 0x08 /* * The callback is called before and after the underling operation, The @@ -362,6 +394,36 @@ struct bio_dgram_sctp_prinfo { }; # endif +/* BIO_sendmmsg/BIO_recvmmsg-related definitions */ +typedef struct bio_msg_st { + void *data; + size_t data_len; + BIO_ADDR *peer, *local; + uint64_t flags; +} BIO_MSG; + +typedef struct bio_mmsg_cb_args_st { + BIO_MSG *msg; + size_t stride, num_msg; + uint64_t flags; + size_t *msgs_processed; +} BIO_MMSG_CB_ARGS; + +#define BIO_POLL_DESCRIPTOR_TYPE_NONE 0 +#define BIO_POLL_DESCRIPTOR_TYPE_SOCK_FD 1 +#define BIO_POLL_DESCRIPTOR_TYPE_SSL 2 +#define BIO_POLL_DESCRIPTOR_CUSTOM_START 8192 + +typedef struct bio_poll_descriptor_st { + uint32_t type; + union { + int fd; + void *custom; + uintptr_t custom_ui; + SSL *ssl; + } value; +} BIO_POLL_DESCRIPTOR; + /* * #define BIO_CONN_get_param_hostname BIO_ctrl */ @@ -428,10 +490,17 @@ struct bio_dgram_sctp_prinfo { # define BIO_C_SET_CONNECT_MODE 155 +# define BIO_C_SET_TFO 156 /* like BIO_C_SET_NBIO */ + +# define BIO_C_SET_SOCK_TYPE 157 +# define BIO_C_GET_SOCK_TYPE 158 +# define BIO_C_GET_DGRAM_BIO 159 + # define BIO_set_app_data(s,arg) BIO_set_ex_data(s,0,arg) # define BIO_get_app_data(s) BIO_get_ex_data(s,0) -# define BIO_set_nbio(b,n) BIO_ctrl(b,BIO_C_SET_NBIO,(n),NULL) +# define BIO_set_nbio(b,n) BIO_ctrl(b,BIO_C_SET_NBIO,(n),NULL) +# define BIO_set_tfo(b,n) BIO_ctrl(b,BIO_C_SET_TFO,(n),NULL) # ifndef OPENSSL_NO_SOCK /* IP families we support, for BIO_s_connect() and BIO_s_accept() */ @@ -452,7 +521,11 @@ struct bio_dgram_sctp_prinfo { # define BIO_get_conn_port(b) ((const char *)BIO_ptr_ctrl(b,BIO_C_GET_CONNECT,1)) # define BIO_get_conn_address(b) ((const BIO_ADDR *)BIO_ptr_ctrl(b,BIO_C_GET_CONNECT,2)) # define BIO_get_conn_ip_family(b) BIO_ctrl(b,BIO_C_GET_CONNECT,3,NULL) +# define BIO_get_conn_mode(b) BIO_ctrl(b,BIO_C_GET_CONNECT,4,NULL) # define BIO_set_conn_mode(b,n) BIO_ctrl(b,BIO_C_SET_CONNECT_MODE,(n),NULL) +# define BIO_set_sock_type(b,t) BIO_ctrl(b,BIO_C_SET_SOCK_TYPE,(t),NULL) +# define BIO_get_sock_type(b) BIO_ctrl(b,BIO_C_GET_SOCK_TYPE,0,NULL) +# define BIO_get0_dgram_bio(b, p) BIO_ctrl(b,BIO_C_GET_DGRAM_BIO,0,(void *)(BIO **)(p)) /* BIO_s_accept() */ # define BIO_set_accept_name(b,name) BIO_ctrl(b,BIO_C_SET_ACCEPT,0, \ @@ -469,6 +542,7 @@ struct bio_dgram_sctp_prinfo { (char *)(bio)) # define BIO_set_accept_ip_family(b,f) BIO_int_ctrl(b,BIO_C_SET_ACCEPT,4,f) # define BIO_get_accept_ip_family(b) BIO_ctrl(b,BIO_C_GET_ACCEPT,4,NULL) +# define BIO_set_tfo_accept(b,n) BIO_ctrl(b,BIO_C_SET_ACCEPT,5,(n)?(void *)"a":NULL) /* Aliases kept for backward compatibility */ # define BIO_BIND_NORMAL 0 @@ -596,8 +670,32 @@ int BIO_ctrl_reset_read_request(BIO *b); (int)BIO_ctrl(b, BIO_CTRL_DGRAM_GET_PEER, 0, (char *)(peer)) # define BIO_dgram_set_peer(b,peer) \ (int)BIO_ctrl(b, BIO_CTRL_DGRAM_SET_PEER, 0, (char *)(peer)) +# define BIO_dgram_detect_peer_addr(b,peer) \ + (int)BIO_ctrl(b, BIO_CTRL_DGRAM_DETECT_PEER_ADDR, 0, (char *)(peer)) # define BIO_dgram_get_mtu_overhead(b) \ (unsigned int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_MTU_OVERHEAD, 0, NULL) +# define BIO_dgram_get_local_addr_cap(b) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_LOCAL_ADDR_CAP, 0, NULL) +# define BIO_dgram_get_local_addr_enable(b, penable) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_LOCAL_ADDR_ENABLE, 0, (char *)(penable)) +# define BIO_dgram_set_local_addr_enable(b, enable) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET_LOCAL_ADDR_ENABLE, (enable), NULL) +# define BIO_dgram_get_effective_caps(b) \ + (uint32_t)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_EFFECTIVE_CAPS, 0, NULL) +# define BIO_dgram_get_caps(b) \ + (uint32_t)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_CAPS, 0, NULL) +# define BIO_dgram_set_caps(b, caps) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET_CAPS, (long)(caps), NULL) +# define BIO_dgram_get_no_trunc(b) \ + (unsigned int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_NO_TRUNC, 0, NULL) +# define BIO_dgram_set_no_trunc(b, enable) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET_NO_TRUNC, (enable), NULL) +# define BIO_dgram_get_mtu(b) \ + (unsigned int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_MTU, 0, NULL) +# define BIO_dgram_set_mtu(b, mtu) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET_MTU, (mtu), NULL) +# define BIO_dgram_set0_local_addr(b, addr) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET0_LOCAL_ADDR, 0, (addr)) /* ctrl macros for BIO_f_prefix */ # define BIO_set_prefix(b,p) BIO_ctrl((b), BIO_CTRL_SET_PREFIX, 0, (void *)(p)) @@ -640,10 +738,18 @@ void BIO_vfree(BIO *a); int BIO_up_ref(BIO *a); int BIO_read(BIO *b, void *data, int dlen); int BIO_read_ex(BIO *b, void *data, size_t dlen, size_t *readbytes); +__owur int BIO_recvmmsg(BIO *b, BIO_MSG *msg, + size_t stride, size_t num_msg, uint64_t flags, + size_t *msgs_processed); int BIO_gets(BIO *bp, char *buf, int size); int BIO_get_line(BIO *bio, char *buf, int size); int BIO_write(BIO *b, const void *data, int dlen); int BIO_write_ex(BIO *b, const void *data, size_t dlen, size_t *written); +__owur int BIO_sendmmsg(BIO *b, BIO_MSG *msg, + size_t stride, size_t num_msg, uint64_t flags, + size_t *msgs_processed); +__owur int BIO_get_rpoll_descriptor(BIO *b, BIO_POLL_DESCRIPTOR *desc); +__owur int BIO_get_wpoll_descriptor(BIO *b, BIO_POLL_DESCRIPTOR *desc); int BIO_puts(BIO *bp, const char *buf); int BIO_indent(BIO *b, int indent, int max); long BIO_ctrl(BIO *bp, int cmd, long larg, void *parg); @@ -667,6 +773,9 @@ int BIO_nwrite0(BIO *bio, char **buf); int BIO_nwrite(BIO *bio, char **buf, int num); const BIO_METHOD *BIO_s_mem(void); +# ifndef OPENSSL_NO_DGRAM +const BIO_METHOD *BIO_s_dgram_mem(void); +# endif const BIO_METHOD *BIO_s_secmem(void); BIO *BIO_new_mem_buf(const void *buf, int len); # ifndef OPENSSL_NO_SOCK @@ -686,6 +795,7 @@ const BIO_METHOD *BIO_f_nbio_test(void); const BIO_METHOD *BIO_f_prefix(void); const BIO_METHOD *BIO_s_core(void); # ifndef OPENSSL_NO_DGRAM +const BIO_METHOD *BIO_s_dgram_pair(void); const BIO_METHOD *BIO_s_datagram(void); int BIO_dgram_non_fatal_error(int error); BIO *BIO_new_dgram(int fd, int close_flag); @@ -704,6 +814,7 @@ int BIO_dgram_sctp_msg_waiting(BIO *b); # ifndef OPENSSL_NO_SOCK int BIO_sock_should_retry(int i); int BIO_sock_non_fatal_error(int error); +int BIO_err_is_non_fatal(unsigned int errcode); int BIO_socket_wait(int fd, int for_read, time_t max_time); # endif int BIO_wait(BIO *bio, time_t max_time, unsigned int nap_milliseconds); @@ -726,6 +837,8 @@ int BIO_hex_string(BIO *out, int indent, int width, const void *data, # ifndef OPENSSL_NO_SOCK BIO_ADDR *BIO_ADDR_new(void); +int BIO_ADDR_copy(BIO_ADDR *dst, const BIO_ADDR *src); +BIO_ADDR *BIO_ADDR_dup(const BIO_ADDR *ap); int BIO_ADDR_rawmake(BIO_ADDR *ap, int family, const void *where, size_t wherelen, unsigned short port); void BIO_ADDR_free(BIO_ADDR *); @@ -788,6 +901,7 @@ int BIO_sock_info(int sock, # define BIO_SOCK_KEEPALIVE 0x04 # define BIO_SOCK_NONBLOCK 0x08 # define BIO_SOCK_NODELAY 0x10 +# define BIO_SOCK_TFO 0x20 int BIO_socket(int domain, int socktype, int protocol, int options); int BIO_connect(int sock, const BIO_ADDR *addr, int options); @@ -805,6 +919,11 @@ BIO *BIO_new_fd(int fd, int close_flag); int BIO_new_bio_pair(BIO **bio1, size_t writebuf1, BIO **bio2, size_t writebuf2); +# ifndef OPENSSL_NO_DGRAM +int BIO_new_bio_dgram_pair(BIO **bio1, size_t writebuf1, + BIO **bio2, size_t writebuf2); +# endif + /* * If successful, returns 1 and in *bio1, *bio2 two BIO pair endpoints. * Otherwise returns 0 and sets *bio1 and *bio2 to NULL. Size 0 uses default @@ -849,38 +968,54 @@ ossl_bio__attr__((__format__(ossl_bio__printf__, 3, 0))); BIO_METHOD *BIO_meth_new(int type, const char *name); void BIO_meth_free(BIO_METHOD *biom); -int (*BIO_meth_get_write(const BIO_METHOD *biom)) (BIO *, const char *, int); -int (*BIO_meth_get_write_ex(const BIO_METHOD *biom)) (BIO *, const char *, size_t, - size_t *); int BIO_meth_set_write(BIO_METHOD *biom, int (*write) (BIO *, const char *, int)); int BIO_meth_set_write_ex(BIO_METHOD *biom, int (*bwrite) (BIO *, const char *, size_t, size_t *)); -int (*BIO_meth_get_read(const BIO_METHOD *biom)) (BIO *, char *, int); -int (*BIO_meth_get_read_ex(const BIO_METHOD *biom)) (BIO *, char *, size_t, size_t *); +int BIO_meth_set_sendmmsg(BIO_METHOD *biom, + int (*f) (BIO *, BIO_MSG *, size_t, size_t, + uint64_t, size_t *)); int BIO_meth_set_read(BIO_METHOD *biom, int (*read) (BIO *, char *, int)); int BIO_meth_set_read_ex(BIO_METHOD *biom, int (*bread) (BIO *, char *, size_t, size_t *)); -int (*BIO_meth_get_puts(const BIO_METHOD *biom)) (BIO *, const char *); +int BIO_meth_set_recvmmsg(BIO_METHOD *biom, + int (*f) (BIO *, BIO_MSG *, size_t, size_t, + uint64_t, size_t *)); int BIO_meth_set_puts(BIO_METHOD *biom, int (*puts) (BIO *, const char *)); -int (*BIO_meth_get_gets(const BIO_METHOD *biom)) (BIO *, char *, int); int BIO_meth_set_gets(BIO_METHOD *biom, int (*ossl_gets) (BIO *, char *, int)); -long (*BIO_meth_get_ctrl(const BIO_METHOD *biom)) (BIO *, int, long, void *); int BIO_meth_set_ctrl(BIO_METHOD *biom, long (*ctrl) (BIO *, int, long, void *)); -int (*BIO_meth_get_create(const BIO_METHOD *bion)) (BIO *); int BIO_meth_set_create(BIO_METHOD *biom, int (*create) (BIO *)); -int (*BIO_meth_get_destroy(const BIO_METHOD *biom)) (BIO *); int BIO_meth_set_destroy(BIO_METHOD *biom, int (*destroy) (BIO *)); -long (*BIO_meth_get_callback_ctrl(const BIO_METHOD *biom)) - (BIO *, int, BIO_info_cb *); int BIO_meth_set_callback_ctrl(BIO_METHOD *biom, long (*callback_ctrl) (BIO *, int, BIO_info_cb *)); - +# ifndef OPENSSL_NO_DEPRECATED_3_5 +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_write(const BIO_METHOD *biom)) (BIO *, const char *, + int); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_write_ex(const BIO_METHOD *biom)) (BIO *, const char *, + size_t, size_t *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_sendmmsg(const BIO_METHOD *biom))(BIO *, BIO_MSG *, + size_t, size_t, + uint64_t, size_t *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_read(const BIO_METHOD *biom)) (BIO *, char *, int); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_read_ex(const BIO_METHOD *biom)) (BIO *, char *, + size_t, size_t *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_recvmmsg(const BIO_METHOD *biom))(BIO *, BIO_MSG *, + size_t, size_t, + uint64_t, size_t *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_puts(const BIO_METHOD *biom)) (BIO *, const char *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_gets(const BIO_METHOD *biom)) (BIO *, char *, int); +OSSL_DEPRECATEDIN_3_5 long (*BIO_meth_get_ctrl(const BIO_METHOD *biom)) (BIO *, int, + long, void *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_create(const BIO_METHOD *bion)) (BIO *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_destroy(const BIO_METHOD *biom)) (BIO *); +OSSL_DEPRECATEDIN_3_5 long (*BIO_meth_get_callback_ctrl(const BIO_METHOD *biom)) (BIO *, int, + BIO_info_cb *); +# endif # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/linux-armv4/asm/include/openssl/cmp.h b/deps/openssl/config/archs/linux-armv4/asm/include/openssl/cmp.h index 49825570d8c303..05aed3029d594c 100644 --- a/deps/openssl/config/archs/linux-armv4/asm/include/openssl/cmp.h +++ b/deps/openssl/config/archs/linux-armv4/asm/include/openssl/cmp.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/cmp.h.in * - * Copyright 2007-2023 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2007-2024 The OpenSSL Project Authors. All Rights Reserved. * Copyright Nokia 2007-2019 * Copyright Siemens AG 2015-2019 * @@ -35,7 +35,9 @@ extern "C" { # endif -# define OSSL_CMP_PVNO 2 +# define OSSL_CMP_PVNO_2 2 +# define OSSL_CMP_PVNO_3 3 +# define OSSL_CMP_PVNO OSSL_CMP_PVNO_2 /* v2 is the default */ /*- * PKIFailureInfo ::= BIT STRING { @@ -137,7 +139,6 @@ extern "C" { # if OSSL_CMP_PKIFAILUREINFO_MAX_BIT_PATTERN > INT_MAX # error CMP_PKIFAILUREINFO_MAX bit pattern does not fit in type int # endif - typedef ASN1_BIT_STRING OSSL_CMP_PKIFAILUREINFO; # define OSSL_CMP_CTX_FAILINFO_badAlg (1 << 0) @@ -203,8 +204,8 @@ typedef ASN1_BIT_STRING OSSL_CMP_PKIFAILUREINFO; # define OSSL_CMP_PKISTATUS_revocationWarning 4 # define OSSL_CMP_PKISTATUS_revocationNotification 5 # define OSSL_CMP_PKISTATUS_keyUpdateWarning 6 - typedef ASN1_INTEGER OSSL_CMP_PKISTATUS; + DECLARE_ASN1_ITEM(OSSL_CMP_PKISTATUS) # define OSSL_CMP_CERTORENCCERT_CERTIFICATE 0 @@ -274,6 +275,46 @@ SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CMP_ITAV, OSSL_CMP_ITAV, OSSL_CMP_ITAV) #define sk_OSSL_CMP_ITAV_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_CMP_ITAV) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_CMP_ITAV_sk_type(sk), ossl_check_OSSL_CMP_ITAV_copyfunc_type(copyfunc), ossl_check_OSSL_CMP_ITAV_freefunc_type(freefunc))) #define sk_OSSL_CMP_ITAV_set_cmp_func(sk, cmp) ((sk_OSSL_CMP_ITAV_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CMP_ITAV_sk_type(sk), ossl_check_OSSL_CMP_ITAV_compfunc_type(cmp))) + +typedef struct ossl_cmp_crlstatus_st OSSL_CMP_CRLSTATUS; +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CMP_CRLSTATUS, OSSL_CMP_CRLSTATUS, OSSL_CMP_CRLSTATUS) +#define sk_OSSL_CMP_CRLSTATUS_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_value(sk, idx) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_value(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk), (idx))) +#define sk_OSSL_CMP_CRLSTATUS_new(cmp) ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_new(ossl_check_OSSL_CMP_CRLSTATUS_compfunc_type(cmp))) +#define sk_OSSL_CMP_CRLSTATUS_new_null() ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_new_null()) +#define sk_OSSL_CMP_CRLSTATUS_new_reserve(cmp, n) ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_CMP_CRLSTATUS_compfunc_type(cmp), (n))) +#define sk_OSSL_CMP_CRLSTATUS_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), (n)) +#define sk_OSSL_CMP_CRLSTATUS_free(sk) OPENSSL_sk_free(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_delete(sk, i) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_delete(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), (i))) +#define sk_OSSL_CMP_CRLSTATUS_delete_ptr(sk, ptr) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr))) +#define sk_OSSL_CMP_CRLSTATUS_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr)) +#define sk_OSSL_CMP_CRLSTATUS_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr)) +#define sk_OSSL_CMP_CRLSTATUS_pop(sk) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_pop(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk))) +#define sk_OSSL_CMP_CRLSTATUS_shift(sk) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_shift(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk))) +#define sk_OSSL_CMP_CRLSTATUS_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk),ossl_check_OSSL_CMP_CRLSTATUS_freefunc_type(freefunc)) +#define sk_OSSL_CMP_CRLSTATUS_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr), (idx)) +#define sk_OSSL_CMP_CRLSTATUS_set(sk, idx, ptr) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_set(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), (idx), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr))) +#define sk_OSSL_CMP_CRLSTATUS_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr)) +#define sk_OSSL_CMP_CRLSTATUS_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr)) +#define sk_OSSL_CMP_CRLSTATUS_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr), pnum) +#define sk_OSSL_CMP_CRLSTATUS_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_dup(sk) ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_dup(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk))) +#define sk_OSSL_CMP_CRLSTATUS_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_copyfunc_type(copyfunc), ossl_check_OSSL_CMP_CRLSTATUS_freefunc_type(freefunc))) +#define sk_OSSL_CMP_CRLSTATUS_set_cmp_func(sk, cmp) ((sk_OSSL_CMP_CRLSTATUS_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_compfunc_type(cmp))) + + +typedef OSSL_CRMF_ATTRIBUTETYPEANDVALUE OSSL_CMP_ATAV; +# define OSSL_CMP_ATAV_free OSSL_CRMF_ATTRIBUTETYPEANDVALUE_free +typedef STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) OSSL_CMP_ATAVS; +DECLARE_ASN1_FUNCTIONS(OSSL_CMP_ATAVS) +# define stack_st_OSSL_CMP_ATAV stack_st_OSSL_CRMF_ATTRIBUTETYPEANDVALUE +# define sk_OSSL_CMP_ATAV_num sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_num +# define sk_OSSL_CMP_ATAV_value sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_value +# define sk_OSSL_CMP_ATAV_push sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_push +# define sk_OSSL_CMP_ATAV_pop_free sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_pop_free + typedef struct ossl_cmp_revrepcontent_st OSSL_CMP_REVREPCONTENT; typedef struct ossl_cmp_pkisi_st OSSL_CMP_PKISI; DECLARE_ASN1_FUNCTIONS(OSSL_CMP_PKISI) @@ -375,21 +416,75 @@ void OSSL_CMP_ITAV_set0(OSSL_CMP_ITAV *itav, ASN1_OBJECT *type, ASN1_TYPE *value); ASN1_OBJECT *OSSL_CMP_ITAV_get0_type(const OSSL_CMP_ITAV *itav); ASN1_TYPE *OSSL_CMP_ITAV_get0_value(const OSSL_CMP_ITAV *itav); -int OSSL_CMP_ITAV_push0_stack_item(STACK_OF(OSSL_CMP_ITAV) **itav_sk_p, +int OSSL_CMP_ITAV_push0_stack_item(STACK_OF(OSSL_CMP_ITAV) **sk_p, OSSL_CMP_ITAV *itav); void OSSL_CMP_ITAV_free(OSSL_CMP_ITAV *itav); + +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new0_certProfile(STACK_OF(ASN1_UTF8STRING) + *certProfile); +int OSSL_CMP_ITAV_get0_certProfile(const OSSL_CMP_ITAV *itav, + STACK_OF(ASN1_UTF8STRING) **out); +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new_caCerts(const STACK_OF(X509) *caCerts); +int OSSL_CMP_ITAV_get0_caCerts(const OSSL_CMP_ITAV *itav, STACK_OF(X509) **out); + +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new_rootCaCert(const X509 *rootCaCert); +int OSSL_CMP_ITAV_get0_rootCaCert(const OSSL_CMP_ITAV *itav, X509 **out); +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new_rootCaKeyUpdate(const X509 *newWithNew, + const X509 *newWithOld, + const X509 *oldWithNew); +int OSSL_CMP_ITAV_get0_rootCaKeyUpdate(const OSSL_CMP_ITAV *itav, + X509 **newWithNew, + X509 **newWithOld, + X509 **oldWithNew); + +OSSL_CMP_CRLSTATUS *OSSL_CMP_CRLSTATUS_create(const X509_CRL *crl, + const X509 *cert, int only_DN); +OSSL_CMP_CRLSTATUS *OSSL_CMP_CRLSTATUS_new1(const DIST_POINT_NAME *dpn, + const GENERAL_NAMES *issuer, + const ASN1_TIME *thisUpdate); +int OSSL_CMP_CRLSTATUS_get0(const OSSL_CMP_CRLSTATUS *crlstatus, + DIST_POINT_NAME **dpn, GENERAL_NAMES **issuer, + ASN1_TIME **thisUpdate); +void OSSL_CMP_CRLSTATUS_free(OSSL_CMP_CRLSTATUS *crlstatus); +OSSL_CMP_ITAV +*OSSL_CMP_ITAV_new0_crlStatusList(STACK_OF(OSSL_CMP_CRLSTATUS) *crlStatusList); +int OSSL_CMP_ITAV_get0_crlStatusList(const OSSL_CMP_ITAV *itav, + STACK_OF(OSSL_CMP_CRLSTATUS) **out); +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new_crls(const X509_CRL *crls); +int OSSL_CMP_ITAV_get0_crls(const OSSL_CMP_ITAV *it, STACK_OF(X509_CRL) **out); +OSSL_CMP_ITAV +*OSSL_CMP_ITAV_new0_certReqTemplate(OSSL_CRMF_CERTTEMPLATE *certTemplate, + OSSL_CMP_ATAVS *keySpec); +int OSSL_CMP_ITAV_get1_certReqTemplate(const OSSL_CMP_ITAV *itav, + OSSL_CRMF_CERTTEMPLATE **certTemplate, + OSSL_CMP_ATAVS **keySpec); + +OSSL_CMP_ATAV *OSSL_CMP_ATAV_create(ASN1_OBJECT *type, ASN1_TYPE *value); +void OSSL_CMP_ATAV_set0(OSSL_CMP_ATAV *itav, ASN1_OBJECT *type, + ASN1_TYPE *value); +ASN1_OBJECT *OSSL_CMP_ATAV_get0_type(const OSSL_CMP_ATAV *itav); +ASN1_TYPE *OSSL_CMP_ATAV_get0_value(const OSSL_CMP_ATAV *itav); +OSSL_CMP_ATAV *OSSL_CMP_ATAV_new_algId(const X509_ALGOR *alg); +X509_ALGOR *OSSL_CMP_ATAV_get0_algId(const OSSL_CMP_ATAV *atav); +OSSL_CMP_ATAV *OSSL_CMP_ATAV_new_rsaKeyLen(int len); +int OSSL_CMP_ATAV_get_rsaKeyLen(const OSSL_CMP_ATAV *atav); +int OSSL_CMP_ATAV_push1(OSSL_CMP_ATAVS **sk_p, const OSSL_CMP_ATAV *atav); + void OSSL_CMP_MSG_free(OSSL_CMP_MSG *msg); /* from cmp_ctx.c */ OSSL_CMP_CTX *OSSL_CMP_CTX_new(OSSL_LIB_CTX *libctx, const char *propq); void OSSL_CMP_CTX_free(OSSL_CMP_CTX *ctx); int OSSL_CMP_CTX_reinit(OSSL_CMP_CTX *ctx); +OSSL_LIB_CTX *OSSL_CMP_CTX_get0_libctx(const OSSL_CMP_CTX *ctx); +const char *OSSL_CMP_CTX_get0_propq(const OSSL_CMP_CTX *ctx); /* CMP general options: */ # define OSSL_CMP_OPT_LOG_VERBOSITY 0 /* CMP transfer options: */ -# define OSSL_CMP_OPT_KEEP_ALIVE 10 -# define OSSL_CMP_OPT_MSG_TIMEOUT 11 +# define OSSL_CMP_OPT_KEEP_ALIVE 10 +# define OSSL_CMP_OPT_MSG_TIMEOUT 11 # define OSSL_CMP_OPT_TOTAL_TIMEOUT 12 +# define OSSL_CMP_OPT_USE_TLS 13 /* CMP request options: */ # define OSSL_CMP_OPT_VALIDITY_DAYS 20 # define OSSL_CMP_OPT_SUBJECTALTNAME_NODEFAULT 21 @@ -407,6 +502,7 @@ int OSSL_CMP_CTX_reinit(OSSL_CMP_CTX *ctx); # define OSSL_CMP_OPT_DIGEST_ALGNID 34 # define OSSL_CMP_OPT_IGNORE_KEYUSAGE 35 # define OSSL_CMP_OPT_PERMIT_TA_IN_EXTRACERTS_FOR_IR 36 +# define OSSL_CMP_OPT_NO_CACHE_EXTRACERTS 37 int OSSL_CMP_CTX_set_option(OSSL_CMP_CTX *ctx, int opt, int val); int OSSL_CMP_CTX_get_option(const OSSL_CMP_CTX *ctx, int opt); /* CMP-specific callback for logging and outputting the error queue: */ @@ -420,9 +516,11 @@ int OSSL_CMP_CTX_set1_server(OSSL_CMP_CTX *ctx, const char *address); int OSSL_CMP_CTX_set_serverPort(OSSL_CMP_CTX *ctx, int port); int OSSL_CMP_CTX_set1_proxy(OSSL_CMP_CTX *ctx, const char *name); int OSSL_CMP_CTX_set1_no_proxy(OSSL_CMP_CTX *ctx, const char *names); +# ifndef OPENSSL_NO_HTTP int OSSL_CMP_CTX_set_http_cb(OSSL_CMP_CTX *ctx, OSSL_HTTP_bio_cb_t cb); int OSSL_CMP_CTX_set_http_cb_arg(OSSL_CMP_CTX *ctx, void *arg); void *OSSL_CMP_CTX_get_http_cb_arg(const OSSL_CMP_CTX *ctx); +# endif typedef OSSL_CMP_MSG *(*OSSL_CMP_transfer_cb_t) (OSSL_CMP_CTX *ctx, const OSSL_CMP_MSG *req); int OSSL_CMP_CTX_set_transfer_cb(OSSL_CMP_CTX *ctx, OSSL_CMP_transfer_cb_t cb); @@ -432,7 +530,9 @@ void *OSSL_CMP_CTX_get_transfer_cb_arg(const OSSL_CMP_CTX *ctx); int OSSL_CMP_CTX_set1_srvCert(OSSL_CMP_CTX *ctx, X509 *cert); int OSSL_CMP_CTX_set1_expected_sender(OSSL_CMP_CTX *ctx, const X509_NAME *name); int OSSL_CMP_CTX_set0_trustedStore(OSSL_CMP_CTX *ctx, X509_STORE *store); +# define OSSL_CMP_CTX_set0_trusted OSSL_CMP_CTX_set0_trustedStore X509_STORE *OSSL_CMP_CTX_get0_trustedStore(const OSSL_CMP_CTX *ctx); +# define OSSL_CMP_CTX_get0_trusted OSSL_CMP_CTX_get0_trustedStore int OSSL_CMP_CTX_set1_untrusted(OSSL_CMP_CTX *ctx, STACK_OF(X509) *certs); STACK_OF(X509) *OSSL_CMP_CTX_get0_untrusted(const OSSL_CMP_CTX *ctx); /* client authentication: */ @@ -448,12 +548,15 @@ int OSSL_CMP_CTX_set1_secretValue(OSSL_CMP_CTX *ctx, int OSSL_CMP_CTX_set1_recipient(OSSL_CMP_CTX *ctx, const X509_NAME *name); int OSSL_CMP_CTX_push0_geninfo_ITAV(OSSL_CMP_CTX *ctx, OSSL_CMP_ITAV *itav); int OSSL_CMP_CTX_reset_geninfo_ITAVs(OSSL_CMP_CTX *ctx); +STACK_OF(OSSL_CMP_ITAV) + *OSSL_CMP_CTX_get0_geninfo_ITAVs(const OSSL_CMP_CTX *ctx); int OSSL_CMP_CTX_set1_extraCertsOut(OSSL_CMP_CTX *ctx, STACK_OF(X509) *extraCertsOut); /* certificate template: */ int OSSL_CMP_CTX_set0_newPkey(OSSL_CMP_CTX *ctx, int priv, EVP_PKEY *pkey); EVP_PKEY *OSSL_CMP_CTX_get0_newPkey(const OSSL_CMP_CTX *ctx, int priv); int OSSL_CMP_CTX_set1_issuer(OSSL_CMP_CTX *ctx, const X509_NAME *name); +int OSSL_CMP_CTX_set1_serialNumber(OSSL_CMP_CTX *ctx, const ASN1_INTEGER *sn); int OSSL_CMP_CTX_set1_subjectName(OSSL_CMP_CTX *ctx, const X509_NAME *name); int OSSL_CMP_CTX_push1_subjectAltName(OSSL_CMP_CTX *ctx, const GENERAL_NAME *name); @@ -477,6 +580,7 @@ int OSSL_CMP_CTX_get_status(const OSSL_CMP_CTX *ctx); OSSL_CMP_PKIFREETEXT *OSSL_CMP_CTX_get0_statusString(const OSSL_CMP_CTX *ctx); int OSSL_CMP_CTX_get_failInfoCode(const OSSL_CMP_CTX *ctx); # define OSSL_CMP_PKISI_BUFLEN 1024 +X509 *OSSL_CMP_CTX_get0_validatedSrvCert(const OSSL_CMP_CTX *ctx); X509 *OSSL_CMP_CTX_get0_newCert(const OSSL_CMP_CTX *ctx); STACK_OF(X509) *OSSL_CMP_CTX_get1_newChain(const OSSL_CMP_CTX *ctx); STACK_OF(X509) *OSSL_CMP_CTX_get1_caPubs(const OSSL_CMP_CTX *ctx); @@ -498,10 +602,13 @@ OSSL_CMP_STATUSINFO_new(int status, int fail_info, const char *text); ASN1_OCTET_STRING *OSSL_CMP_HDR_get0_transactionID(const OSSL_CMP_PKIHEADER *hdr); ASN1_OCTET_STRING *OSSL_CMP_HDR_get0_recipNonce(const OSSL_CMP_PKIHEADER *hdr); +STACK_OF(OSSL_CMP_ITAV) + *OSSL_CMP_HDR_get0_geninfo_ITAVs(const OSSL_CMP_PKIHEADER *hdr); /* from cmp_msg.c */ OSSL_CMP_PKIHEADER *OSSL_CMP_MSG_get0_header(const OSSL_CMP_MSG *msg); int OSSL_CMP_MSG_get_bodytype(const OSSL_CMP_MSG *msg); +X509_PUBKEY *OSSL_CMP_MSG_get0_certreq_publickey(const OSSL_CMP_MSG *msg); int OSSL_CMP_MSG_update_transactionID(OSSL_CMP_CTX *ctx, OSSL_CMP_MSG *msg); int OSSL_CMP_MSG_update_recipNonce(OSSL_CMP_CTX *ctx, OSSL_CMP_MSG *msg); OSSL_CRMF_MSG *OSSL_CMP_CTX_setup_CRM(OSSL_CMP_CTX *ctx, int for_KUR, int rid); @@ -517,8 +624,10 @@ int OSSL_CMP_validate_cert_path(const OSSL_CMP_CTX *ctx, X509_STORE *trusted_store, X509 *cert); /* from cmp_http.c */ +# ifndef OPENSSL_NO_HTTP OSSL_CMP_MSG *OSSL_CMP_MSG_http_perform(OSSL_CMP_CTX *ctx, const OSSL_CMP_MSG *req); +# endif /* from cmp_server.c */ typedef struct ossl_cmp_srv_ctx_st OSSL_CMP_SRV_CTX; @@ -561,6 +670,13 @@ int OSSL_CMP_SRV_CTX_init(OSSL_CMP_SRV_CTX *srv_ctx, void *custom_ctx, OSSL_CMP_SRV_error_cb_t process_error, OSSL_CMP_SRV_certConf_cb_t process_certConf, OSSL_CMP_SRV_pollReq_cb_t process_pollReq); +typedef int (*OSSL_CMP_SRV_delayed_delivery_cb_t)(OSSL_CMP_SRV_CTX *srv_ctx, + const OSSL_CMP_MSG *req); +typedef int (*OSSL_CMP_SRV_clean_transaction_cb_t)(OSSL_CMP_SRV_CTX *srv_ctx, + const ASN1_OCTET_STRING *id); +int OSSL_CMP_SRV_CTX_init_trans(OSSL_CMP_SRV_CTX *srv_ctx, + OSSL_CMP_SRV_delayed_delivery_cb_t delay, + OSSL_CMP_SRV_clean_transaction_cb_t clean); OSSL_CMP_CTX *OSSL_CMP_SRV_CTX_get0_cmp_ctx(const OSSL_CMP_SRV_CTX *srv_ctx); void *OSSL_CMP_SRV_CTX_get0_custom_ctx(const OSSL_CMP_SRV_CTX *srv_ctx); int OSSL_CMP_SRV_CTX_set_send_unprotected_errors(OSSL_CMP_SRV_CTX *srv_ctx, @@ -577,6 +693,8 @@ X509 *OSSL_CMP_exec_certreq(OSSL_CMP_CTX *ctx, int req_type, # define OSSL_CMP_CR 2 # define OSSL_CMP_P10CR 4 # define OSSL_CMP_KUR 7 +# define OSSL_CMP_GENM 21 +# define OSSL_CMP_ERROR 23 # define OSSL_CMP_exec_IR_ses(ctx) \ OSSL_CMP_exec_certreq(ctx, OSSL_CMP_IR, NULL) # define OSSL_CMP_exec_CR_ses(ctx) \ @@ -590,6 +708,18 @@ int OSSL_CMP_try_certreq(OSSL_CMP_CTX *ctx, int req_type, int OSSL_CMP_exec_RR_ses(OSSL_CMP_CTX *ctx); STACK_OF(OSSL_CMP_ITAV) *OSSL_CMP_exec_GENM_ses(OSSL_CMP_CTX *ctx); +/* from cmp_genm.c */ +int OSSL_CMP_get1_caCerts(OSSL_CMP_CTX *ctx, STACK_OF(X509) **out); +int OSSL_CMP_get1_rootCaKeyUpdate(OSSL_CMP_CTX *ctx, + const X509 *oldWithOld, X509 **newWithNew, + X509 **newWithOld, X509 **oldWithNew); +int OSSL_CMP_get1_crlUpdate(OSSL_CMP_CTX *ctx, const X509 *crlcert, + const X509_CRL *last_crl, + X509_CRL **crl); +int OSSL_CMP_get1_certReqTemplate(OSSL_CMP_CTX *ctx, + OSSL_CRMF_CERTTEMPLATE **certTemplate, + OSSL_CMP_ATAVS **keySpec); + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/linux-armv4/asm/include/openssl/cms.h b/deps/openssl/config/archs/linux-armv4/asm/include/openssl/cms.h index 3b453e6a2187a2..63afab563557b0 100644 --- a/deps/openssl/config/archs/linux-armv4/asm/include/openssl/cms.h +++ b/deps/openssl/config/archs/linux-armv4/asm/include/openssl/cms.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/cms.h.in * - * Copyright 2008-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2008-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -31,8 +31,10 @@ extern "C" { # endif +typedef struct CMS_EnvelopedData_st CMS_EnvelopedData; typedef struct CMS_ContentInfo_st CMS_ContentInfo; typedef struct CMS_SignerInfo_st CMS_SignerInfo; +typedef struct CMS_SignedData_st CMS_SignedData; typedef struct CMS_CertificateChoices CMS_CertificateChoices; typedef struct CMS_RevocationInfoChoice_st CMS_RevocationInfoChoice; typedef struct CMS_RecipientInfo_st CMS_RecipientInfo; @@ -147,10 +149,14 @@ SKM_DEFINE_STACK_OF_INTERNAL(CMS_RevocationInfoChoice, CMS_RevocationInfoChoice, #define sk_CMS_RevocationInfoChoice_set_cmp_func(sk, cmp) ((sk_CMS_RevocationInfoChoice_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_CMS_RevocationInfoChoice_sk_type(sk), ossl_check_CMS_RevocationInfoChoice_compfunc_type(cmp))) +DECLARE_ASN1_ITEM(CMS_EnvelopedData) +DECLARE_ASN1_ALLOC_FUNCTIONS(CMS_SignedData) DECLARE_ASN1_FUNCTIONS(CMS_ContentInfo) DECLARE_ASN1_FUNCTIONS(CMS_ReceiptRequest) DECLARE_ASN1_PRINT_FUNCTION(CMS_ContentInfo) +DECLARE_ASN1_DUP_FUNCTION(CMS_EnvelopedData) + CMS_ContentInfo *CMS_ContentInfo_new_ex(OSSL_LIB_CTX *libctx, const char *propq); # define CMS_SIGNERINFO_ISSUER_SERIAL 0 @@ -190,6 +196,7 @@ CMS_ContentInfo *CMS_ContentInfo_new_ex(OSSL_LIB_CTX *libctx, const char *propq) # define CMS_ASCIICRLF 0x80000 # define CMS_CADES 0x100000 # define CMS_USE_ORIGINATOR_KEYID 0x200000 +# define CMS_NO_SIGNING_TIME 0x400000 const ASN1_OBJECT *CMS_get0_type(const CMS_ContentInfo *cms); @@ -217,13 +224,16 @@ int SMIME_write_CMS(BIO *bio, CMS_ContentInfo *cms, BIO *data, int flags); int CMS_final(CMS_ContentInfo *cms, BIO *data, BIO *dcont, unsigned int flags); +int CMS_final_digest(CMS_ContentInfo *cms, + const unsigned char *md, unsigned int mdlen, BIO *dcont, + unsigned int flags); CMS_ContentInfo *CMS_sign(X509 *signcert, EVP_PKEY *pkey, STACK_OF(X509) *certs, BIO *data, unsigned int flags); CMS_ContentInfo *CMS_sign_ex(X509 *signcert, EVP_PKEY *pkey, STACK_OF(X509) *certs, BIO *data, - unsigned int flags, OSSL_LIB_CTX *ctx, + unsigned int flags, OSSL_LIB_CTX *libctx, const char *propq); CMS_ContentInfo *CMS_sign_receipt(CMS_SignerInfo *si, @@ -233,27 +243,26 @@ CMS_ContentInfo *CMS_sign_receipt(CMS_SignerInfo *si, int CMS_data(CMS_ContentInfo *cms, BIO *out, unsigned int flags); CMS_ContentInfo *CMS_data_create(BIO *in, unsigned int flags); CMS_ContentInfo *CMS_data_create_ex(BIO *in, unsigned int flags, - OSSL_LIB_CTX *ctx, const char *propq); + OSSL_LIB_CTX *libctx, const char *propq); int CMS_digest_verify(CMS_ContentInfo *cms, BIO *dcont, BIO *out, unsigned int flags); CMS_ContentInfo *CMS_digest_create(BIO *in, const EVP_MD *md, unsigned int flags); CMS_ContentInfo *CMS_digest_create_ex(BIO *in, const EVP_MD *md, - unsigned int flags, OSSL_LIB_CTX *ctx, + unsigned int flags, OSSL_LIB_CTX *libctx, const char *propq); int CMS_EncryptedData_decrypt(CMS_ContentInfo *cms, const unsigned char *key, size_t keylen, BIO *dcont, BIO *out, unsigned int flags); - CMS_ContentInfo *CMS_EncryptedData_encrypt(BIO *in, const EVP_CIPHER *cipher, const unsigned char *key, size_t keylen, unsigned int flags); CMS_ContentInfo *CMS_EncryptedData_encrypt_ex(BIO *in, const EVP_CIPHER *cipher, const unsigned char *key, size_t keylen, unsigned int flags, - OSSL_LIB_CTX *ctx, + OSSL_LIB_CTX *libctx, const char *propq); int CMS_EncryptedData_set1_key(CMS_ContentInfo *cms, const EVP_CIPHER *ciph, @@ -272,7 +281,7 @@ CMS_ContentInfo *CMS_encrypt(STACK_OF(X509) *certs, BIO *in, const EVP_CIPHER *cipher, unsigned int flags); CMS_ContentInfo *CMS_encrypt_ex(STACK_OF(X509) *certs, BIO *in, const EVP_CIPHER *cipher, unsigned int flags, - OSSL_LIB_CTX *ctx, const char *propq); + OSSL_LIB_CTX *libctx, const char *propq); int CMS_decrypt(CMS_ContentInfo *cms, EVP_PKEY *pkey, X509 *cert, BIO *dcont, BIO *out, unsigned int flags); @@ -291,12 +300,16 @@ int CMS_RecipientInfo_type(CMS_RecipientInfo *ri); EVP_PKEY_CTX *CMS_RecipientInfo_get0_pkey_ctx(CMS_RecipientInfo *ri); CMS_ContentInfo *CMS_AuthEnvelopedData_create(const EVP_CIPHER *cipher); CMS_ContentInfo * -CMS_AuthEnvelopedData_create_ex(const EVP_CIPHER *cipher, OSSL_LIB_CTX *ctx, +CMS_AuthEnvelopedData_create_ex(const EVP_CIPHER *cipher, OSSL_LIB_CTX *libctx, const char *propq); CMS_ContentInfo *CMS_EnvelopedData_create(const EVP_CIPHER *cipher); CMS_ContentInfo *CMS_EnvelopedData_create_ex(const EVP_CIPHER *cipher, - OSSL_LIB_CTX *ctx, + OSSL_LIB_CTX *libctx, const char *propq); +BIO *CMS_EnvelopedData_decrypt(CMS_EnvelopedData *env, BIO *detached_data, + EVP_PKEY *pkey, X509 *cert, + ASN1_OCTET_STRING *secret, unsigned int flags, + OSSL_LIB_CTX *libctx, const char *propq); CMS_RecipientInfo *CMS_add1_recipient_cert(CMS_ContentInfo *cms, X509 *recip, unsigned int flags); @@ -385,6 +398,11 @@ ASN1_OCTET_STRING *CMS_SignerInfo_get0_signature(CMS_SignerInfo *si); int CMS_SignerInfo_sign(CMS_SignerInfo *si); int CMS_SignerInfo_verify(CMS_SignerInfo *si); int CMS_SignerInfo_verify_content(CMS_SignerInfo *si, BIO *chain); +BIO *CMS_SignedData_verify(CMS_SignedData *sd, BIO *detached_data, + STACK_OF(X509) *scerts, X509_STORE *store, + STACK_OF(X509) *extra, STACK_OF(X509_CRL) *crls, + unsigned int flags, + OSSL_LIB_CTX *libctx, const char *propq); int CMS_add_smimecap(CMS_SignerInfo *si, STACK_OF(X509_ALGOR) *algs); int CMS_add_simple_smimecap(STACK_OF(X509_ALGOR) **algs, @@ -441,7 +459,7 @@ CMS_ReceiptRequest *CMS_ReceiptRequest_create0_ex( unsigned char *id, int idlen, int allorfirst, STACK_OF(GENERAL_NAMES) *receiptList, STACK_OF(GENERAL_NAMES) *receiptsTo, - OSSL_LIB_CTX *ctx); + OSSL_LIB_CTX *libctx); int CMS_add1_ReceiptRequest(CMS_SignerInfo *si, CMS_ReceiptRequest *rr); void CMS_ReceiptRequest_get0_values(CMS_ReceiptRequest *rr, diff --git a/deps/openssl/config/archs/linux-armv4/asm/include/openssl/comp.h b/deps/openssl/config/archs/linux-armv4/asm/include/openssl/comp.h new file mode 100644 index 00000000000000..90e39511fe8d28 --- /dev/null +++ b/deps/openssl/config/archs/linux-armv4/asm/include/openssl/comp.h @@ -0,0 +1,98 @@ +/* + * Copyright 2015-2024 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + + +#ifndef OPENSSL_COMP_H +# define OPENSSL_COMP_H +# pragma once + +# include +# ifndef OPENSSL_NO_DEPRECATED_3_0 +# define HEADER_COMP_H +# endif + +# include + +# include +# include +# ifdef __cplusplus +extern "C" { +# endif + + + +# ifndef OPENSSL_NO_COMP + +COMP_CTX *COMP_CTX_new(COMP_METHOD *meth); +const COMP_METHOD *COMP_CTX_get_method(const COMP_CTX *ctx); +int COMP_CTX_get_type(const COMP_CTX* comp); +int COMP_get_type(const COMP_METHOD *meth); +const char *COMP_get_name(const COMP_METHOD *meth); +void COMP_CTX_free(COMP_CTX *ctx); + +int COMP_compress_block(COMP_CTX *ctx, unsigned char *out, int olen, + unsigned char *in, int ilen); +int COMP_expand_block(COMP_CTX *ctx, unsigned char *out, int olen, + unsigned char *in, int ilen); + +COMP_METHOD *COMP_zlib(void); +COMP_METHOD *COMP_zlib_oneshot(void); +COMP_METHOD *COMP_brotli(void); +COMP_METHOD *COMP_brotli_oneshot(void); +COMP_METHOD *COMP_zstd(void); +COMP_METHOD *COMP_zstd_oneshot(void); + +# ifndef OPENSSL_NO_DEPRECATED_1_1_0 +# define COMP_zlib_cleanup() while(0) continue +# endif + +# ifdef OPENSSL_BIO_H +const BIO_METHOD *BIO_f_zlib(void); +const BIO_METHOD *BIO_f_brotli(void); +const BIO_METHOD *BIO_f_zstd(void); +# endif + +# endif + +typedef struct ssl_comp_st SSL_COMP; + +SKM_DEFINE_STACK_OF_INTERNAL(SSL_COMP, SSL_COMP, SSL_COMP) +#define sk_SSL_COMP_num(sk) OPENSSL_sk_num(ossl_check_const_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_value(sk, idx) ((SSL_COMP *)OPENSSL_sk_value(ossl_check_const_SSL_COMP_sk_type(sk), (idx))) +#define sk_SSL_COMP_new(cmp) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new(ossl_check_SSL_COMP_compfunc_type(cmp))) +#define sk_SSL_COMP_new_null() ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new_null()) +#define sk_SSL_COMP_new_reserve(cmp, n) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new_reserve(ossl_check_SSL_COMP_compfunc_type(cmp), (n))) +#define sk_SSL_COMP_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_SSL_COMP_sk_type(sk), (n)) +#define sk_SSL_COMP_free(sk) OPENSSL_sk_free(ossl_check_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_zero(sk) OPENSSL_sk_zero(ossl_check_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_delete(sk, i) ((SSL_COMP *)OPENSSL_sk_delete(ossl_check_SSL_COMP_sk_type(sk), (i))) +#define sk_SSL_COMP_delete_ptr(sk, ptr) ((SSL_COMP *)OPENSSL_sk_delete_ptr(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr))) +#define sk_SSL_COMP_push(sk, ptr) OPENSSL_sk_push(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) +#define sk_SSL_COMP_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) +#define sk_SSL_COMP_pop(sk) ((SSL_COMP *)OPENSSL_sk_pop(ossl_check_SSL_COMP_sk_type(sk))) +#define sk_SSL_COMP_shift(sk) ((SSL_COMP *)OPENSSL_sk_shift(ossl_check_SSL_COMP_sk_type(sk))) +#define sk_SSL_COMP_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_SSL_COMP_sk_type(sk),ossl_check_SSL_COMP_freefunc_type(freefunc)) +#define sk_SSL_COMP_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr), (idx)) +#define sk_SSL_COMP_set(sk, idx, ptr) ((SSL_COMP *)OPENSSL_sk_set(ossl_check_SSL_COMP_sk_type(sk), (idx), ossl_check_SSL_COMP_type(ptr))) +#define sk_SSL_COMP_find(sk, ptr) OPENSSL_sk_find(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) +#define sk_SSL_COMP_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) +#define sk_SSL_COMP_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr), pnum) +#define sk_SSL_COMP_sort(sk) OPENSSL_sk_sort(ossl_check_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_dup(sk) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_dup(ossl_check_const_SSL_COMP_sk_type(sk))) +#define sk_SSL_COMP_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_deep_copy(ossl_check_const_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_copyfunc_type(copyfunc), ossl_check_SSL_COMP_freefunc_type(freefunc))) +#define sk_SSL_COMP_set_cmp_func(sk, cmp) ((sk_SSL_COMP_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_compfunc_type(cmp))) + + + +# ifdef __cplusplus +} +# endif +#endif diff --git a/deps/openssl/config/archs/linux-armv4/asm/include/openssl/conf.h b/deps/openssl/config/archs/linux-armv4/asm/include/openssl/conf.h index 44989929f6c84a..38576290bf641b 100644 --- a/deps/openssl/config/archs/linux-armv4/asm/include/openssl/conf.h +++ b/deps/openssl/config/archs/linux-armv4/asm/include/openssl/conf.h @@ -27,6 +27,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -65,7 +68,7 @@ SKM_DEFINE_STACK_OF_INTERNAL(CONF_VALUE, CONF_VALUE, CONF_VALUE) #define sk_CONF_VALUE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(CONF_VALUE) *)OPENSSL_sk_deep_copy(ossl_check_const_CONF_VALUE_sk_type(sk), ossl_check_CONF_VALUE_copyfunc_type(copyfunc), ossl_check_CONF_VALUE_freefunc_type(freefunc))) #define sk_CONF_VALUE_set_cmp_func(sk, cmp) ((sk_CONF_VALUE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_CONF_VALUE_sk_type(sk), ossl_check_CONF_VALUE_compfunc_type(cmp))) DEFINE_LHASH_OF_INTERNAL(CONF_VALUE); -#define lh_CONF_VALUE_new(hfn, cmp) ((LHASH_OF(CONF_VALUE) *)OPENSSL_LH_new(ossl_check_CONF_VALUE_lh_hashfunc_type(hfn), ossl_check_CONF_VALUE_lh_compfunc_type(cmp))) +#define lh_CONF_VALUE_new(hfn, cmp) ((LHASH_OF(CONF_VALUE) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new(ossl_check_CONF_VALUE_lh_hashfunc_type(hfn), ossl_check_CONF_VALUE_lh_compfunc_type(cmp)), lh_CONF_VALUE_hash_thunk, lh_CONF_VALUE_comp_thunk, lh_CONF_VALUE_doall_thunk, lh_CONF_VALUE_doall_arg_thunk)) #define lh_CONF_VALUE_free(lh) OPENSSL_LH_free(ossl_check_CONF_VALUE_lh_type(lh)) #define lh_CONF_VALUE_flush(lh) OPENSSL_LH_flush(ossl_check_CONF_VALUE_lh_type(lh)) #define lh_CONF_VALUE_insert(lh, ptr) ((CONF_VALUE *)OPENSSL_LH_insert(ossl_check_CONF_VALUE_lh_type(lh), ossl_check_CONF_VALUE_lh_plain_type(ptr))) diff --git a/deps/openssl/config/archs/linux-armv4/asm/include/openssl/configuration.h b/deps/openssl/config/archs/linux-armv4/asm/include/openssl/configuration.h index 89c3cef5ac5f3c..efd5cb68698482 100644 --- a/deps/openssl/config/archs/linux-armv4/asm/include/openssl/configuration.h +++ b/deps/openssl/config/archs/linux-armv4/asm/include/openssl/configuration.h @@ -27,7 +27,7 @@ extern "C" { * OpenSSL was configured with the following options: */ -# define OPENSSL_CONFIGURED_API 30000 +# define OPENSSL_CONFIGURED_API 30500 # ifndef OPENSSL_RAND_SEED_OS # define OPENSSL_RAND_SEED_OS # endif @@ -40,6 +40,12 @@ extern "C" { # ifndef OPENSSL_NO_ASAN # define OPENSSL_NO_ASAN # endif +# ifndef OPENSSL_NO_BROTLI +# define OPENSSL_NO_BROTLI +# endif +# ifndef OPENSSL_NO_BROTLI_DYNAMIC +# define OPENSSL_NO_BROTLI_DYNAMIC +# endif # ifndef OPENSSL_NO_COMP # define OPENSSL_NO_COMP # endif @@ -49,6 +55,9 @@ extern "C" { # ifndef OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE # define OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE # endif +# ifndef OPENSSL_NO_DEMOS +# define OPENSSL_NO_DEMOS +# endif # ifndef OPENSSL_NO_DEVCRYPTOENG # define OPENSSL_NO_DEVCRYPTOENG # endif @@ -61,12 +70,24 @@ extern "C" { # ifndef OPENSSL_NO_EXTERNAL_TESTS # define OPENSSL_NO_EXTERNAL_TESTS # endif +# ifndef OPENSSL_NO_FIPS_JITTER +# define OPENSSL_NO_FIPS_JITTER +# endif # ifndef OPENSSL_NO_FUZZ_AFL # define OPENSSL_NO_FUZZ_AFL # endif # ifndef OPENSSL_NO_FUZZ_LIBFUZZER # define OPENSSL_NO_FUZZ_LIBFUZZER # endif +# ifndef OPENSSL_NO_H3DEMO +# define OPENSSL_NO_H3DEMO +# endif +# ifndef OPENSSL_NO_HQINTEROP +# define OPENSSL_NO_HQINTEROP +# endif +# ifndef OPENSSL_NO_JITTER +# define OPENSSL_NO_JITTER +# endif # ifndef OPENSSL_NO_KTLS # define OPENSSL_NO_KTLS # endif @@ -79,6 +100,9 @@ extern "C" { # ifndef OPENSSL_NO_MSAN # define OPENSSL_NO_MSAN # endif +# ifndef OPENSSL_NO_PIE +# define OPENSSL_NO_PIE +# endif # ifndef OPENSSL_NO_RC5 # define OPENSSL_NO_RC5 # endif @@ -91,6 +115,12 @@ extern "C" { # ifndef OPENSSL_NO_SSL3_METHOD # define OPENSSL_NO_SSL3_METHOD # endif +# ifndef OPENSSL_NO_SSLKEYLOG +# define OPENSSL_NO_SSLKEYLOG +# endif +# ifndef OPENSSL_NO_TFO +# define OPENSSL_NO_TFO +# endif # ifndef OPENSSL_NO_TRACE # define OPENSSL_NO_TRACE # endif @@ -106,6 +136,21 @@ extern "C" { # ifndef OPENSSL_NO_WEAK_SSL_CIPHERS # define OPENSSL_NO_WEAK_SSL_CIPHERS # endif +# ifndef OPENSSL_NO_WINSTORE +# define OPENSSL_NO_WINSTORE +# endif +# ifndef OPENSSL_NO_ZLIB +# define OPENSSL_NO_ZLIB +# endif +# ifndef OPENSSL_NO_ZLIB_DYNAMIC +# define OPENSSL_NO_ZLIB_DYNAMIC +# endif +# ifndef OPENSSL_NO_ZSTD +# define OPENSSL_NO_ZSTD +# endif +# ifndef OPENSSL_NO_ZSTD_DYNAMIC +# define OPENSSL_NO_ZSTD_DYNAMIC +# endif # ifndef OPENSSL_NO_DYNAMIC_ENGINE # define OPENSSL_NO_DYNAMIC_ENGINE # endif @@ -127,6 +172,12 @@ extern "C" { # define RC4_INT unsigned char +# if defined(OPENSSL_NO_COMP) || (defined(OPENSSL_NO_BROTLI) && defined(OPENSSL_NO_ZSTD) && defined(OPENSSL_NO_ZLIB)) +# define OPENSSL_NO_COMP_ALG +# else +# undef OPENSSL_NO_COMP_ALG +# endif + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/linux-armv4/asm/include/openssl/core_names.h b/deps/openssl/config/archs/linux-armv4/asm/include/openssl/core_names.h new file mode 100644 index 00000000000000..e93e79a52bc910 --- /dev/null +++ b/deps/openssl/config/archs/linux-armv4/asm/include/openssl/core_names.h @@ -0,0 +1,575 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from include/openssl/core_names.h.in + * + * Copyright 2019-2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + +#ifndef OPENSSL_CORE_NAMES_H +# define OPENSSL_CORE_NAMES_H +# pragma once + +# ifdef __cplusplus +extern "C" { +# endif + +/* OSSL_CIPHER_PARAM_CTS_MODE Values */ +# define OSSL_CIPHER_CTS_MODE_CS1 "CS1" +# define OSSL_CIPHER_CTS_MODE_CS2 "CS2" +# define OSSL_CIPHER_CTS_MODE_CS3 "CS3" + +/* Known CIPHER names (not a complete list) */ +# define OSSL_CIPHER_NAME_AES_128_GCM_SIV "AES-128-GCM-SIV" +# define OSSL_CIPHER_NAME_AES_192_GCM_SIV "AES-192-GCM-SIV" +# define OSSL_CIPHER_NAME_AES_256_GCM_SIV "AES-256-GCM-SIV" + +/* Known DIGEST names (not a complete list) */ +# define OSSL_DIGEST_NAME_MD5 "MD5" +# define OSSL_DIGEST_NAME_MD5_SHA1 "MD5-SHA1" +# define OSSL_DIGEST_NAME_SHA1 "SHA1" +# define OSSL_DIGEST_NAME_SHA2_224 "SHA2-224" +# define OSSL_DIGEST_NAME_SHA2_256 "SHA2-256" +# define OSSL_DIGEST_NAME_SHA2_256_192 "SHA2-256/192" +# define OSSL_DIGEST_NAME_SHA2_384 "SHA2-384" +# define OSSL_DIGEST_NAME_SHA2_512 "SHA2-512" +# define OSSL_DIGEST_NAME_SHA2_512_224 "SHA2-512/224" +# define OSSL_DIGEST_NAME_SHA2_512_256 "SHA2-512/256" +# define OSSL_DIGEST_NAME_MD2 "MD2" +# define OSSL_DIGEST_NAME_MD4 "MD4" +# define OSSL_DIGEST_NAME_MDC2 "MDC2" +# define OSSL_DIGEST_NAME_RIPEMD160 "RIPEMD160" +# define OSSL_DIGEST_NAME_SHA3_224 "SHA3-224" +# define OSSL_DIGEST_NAME_SHA3_256 "SHA3-256" +# define OSSL_DIGEST_NAME_SHA3_384 "SHA3-384" +# define OSSL_DIGEST_NAME_SHA3_512 "SHA3-512" +# define OSSL_DIGEST_NAME_KECCAK_KMAC128 "KECCAK-KMAC-128" +# define OSSL_DIGEST_NAME_KECCAK_KMAC256 "KECCAK-KMAC-256" +# define OSSL_DIGEST_NAME_SM3 "SM3" + +/* Known MAC names */ +# define OSSL_MAC_NAME_BLAKE2BMAC "BLAKE2BMAC" +# define OSSL_MAC_NAME_BLAKE2SMAC "BLAKE2SMAC" +# define OSSL_MAC_NAME_CMAC "CMAC" +# define OSSL_MAC_NAME_GMAC "GMAC" +# define OSSL_MAC_NAME_HMAC "HMAC" +# define OSSL_MAC_NAME_KMAC128 "KMAC128" +# define OSSL_MAC_NAME_KMAC256 "KMAC256" +# define OSSL_MAC_NAME_POLY1305 "POLY1305" +# define OSSL_MAC_NAME_SIPHASH "SIPHASH" + +/* Known KDF names */ +# define OSSL_KDF_NAME_HKDF "HKDF" +# define OSSL_KDF_NAME_TLS1_3_KDF "TLS13-KDF" +# define OSSL_KDF_NAME_PBKDF1 "PBKDF1" +# define OSSL_KDF_NAME_PBKDF2 "PBKDF2" +# define OSSL_KDF_NAME_SCRYPT "SCRYPT" +# define OSSL_KDF_NAME_SSHKDF "SSHKDF" +# define OSSL_KDF_NAME_SSKDF "SSKDF" +# define OSSL_KDF_NAME_TLS1_PRF "TLS1-PRF" +# define OSSL_KDF_NAME_X942KDF_ASN1 "X942KDF-ASN1" +# define OSSL_KDF_NAME_X942KDF_CONCAT "X942KDF-CONCAT" +# define OSSL_KDF_NAME_X963KDF "X963KDF" +# define OSSL_KDF_NAME_KBKDF "KBKDF" +# define OSSL_KDF_NAME_KRB5KDF "KRB5KDF" +# define OSSL_KDF_NAME_HMACDRBGKDF "HMAC-DRBG-KDF" + +/* RSA padding modes */ +# define OSSL_PKEY_RSA_PAD_MODE_NONE "none" +# define OSSL_PKEY_RSA_PAD_MODE_PKCSV15 "pkcs1" +# define OSSL_PKEY_RSA_PAD_MODE_OAEP "oaep" +# define OSSL_PKEY_RSA_PAD_MODE_X931 "x931" +# define OSSL_PKEY_RSA_PAD_MODE_PSS "pss" + +/* RSA pss padding salt length */ +# define OSSL_PKEY_RSA_PSS_SALT_LEN_DIGEST "digest" +# define OSSL_PKEY_RSA_PSS_SALT_LEN_MAX "max" +# define OSSL_PKEY_RSA_PSS_SALT_LEN_AUTO "auto" +# define OSSL_PKEY_RSA_PSS_SALT_LEN_AUTO_DIGEST_MAX "auto-digestmax" + +/* OSSL_PKEY_PARAM_EC_ENCODING values */ +# define OSSL_PKEY_EC_ENCODING_EXPLICIT "explicit" +# define OSSL_PKEY_EC_ENCODING_GROUP "named_curve" + +# define OSSL_PKEY_EC_POINT_CONVERSION_FORMAT_UNCOMPRESSED "uncompressed" +# define OSSL_PKEY_EC_POINT_CONVERSION_FORMAT_COMPRESSED "compressed" +# define OSSL_PKEY_EC_POINT_CONVERSION_FORMAT_HYBRID "hybrid" + +# define OSSL_PKEY_EC_GROUP_CHECK_DEFAULT "default" +# define OSSL_PKEY_EC_GROUP_CHECK_NAMED "named" +# define OSSL_PKEY_EC_GROUP_CHECK_NAMED_NIST "named-nist" + +/* PROV_SKEY well known key types */ +# define OSSL_SKEY_TYPE_GENERIC "GENERIC-SECRET" +# define OSSL_SKEY_TYPE_AES "AES" + +/* OSSL_KEM_PARAM_OPERATION values */ +#define OSSL_KEM_PARAM_OPERATION_RSASVE "RSASVE" +#define OSSL_KEM_PARAM_OPERATION_DHKEM "DHKEM" + +/* Provider configuration variables */ +#define OSSL_PKEY_RETAIN_SEED "pkey_retain_seed" + +/* Parameter name definitions - generated by util/perl/OpenSSL/paramnames.pm */ +# define OSSL_ALG_PARAM_ALGORITHM_ID "algorithm-id" +# define OSSL_ALG_PARAM_ALGORITHM_ID_PARAMS "algorithm-id-params" +# define OSSL_ALG_PARAM_CIPHER "cipher" +# define OSSL_ALG_PARAM_DIGEST "digest" +# define OSSL_ALG_PARAM_ENGINE "engine" +# define OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR "fips-indicator" +# define OSSL_ALG_PARAM_MAC "mac" +# define OSSL_ALG_PARAM_PROPERTIES "properties" +# define OSSL_ASYM_CIPHER_PARAM_DIGEST OSSL_PKEY_PARAM_DIGEST +# define OSSL_ASYM_CIPHER_PARAM_ENGINE OSSL_PKEY_PARAM_ENGINE +# define OSSL_ASYM_CIPHER_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_ASYM_CIPHER_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_ASYM_CIPHER_PARAM_FIPS_RSA_PKCS15_PAD_DISABLED OSSL_PROV_PARAM_RSA_PKCS15_PAD_DISABLED +# define OSSL_ASYM_CIPHER_PARAM_IMPLICIT_REJECTION "implicit-rejection" +# define OSSL_ASYM_CIPHER_PARAM_MGF1_DIGEST OSSL_PKEY_PARAM_MGF1_DIGEST +# define OSSL_ASYM_CIPHER_PARAM_MGF1_DIGEST_PROPS OSSL_PKEY_PARAM_MGF1_PROPERTIES +# define OSSL_ASYM_CIPHER_PARAM_OAEP_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_ASYM_CIPHER_PARAM_OAEP_DIGEST_PROPS "digest-props" +# define OSSL_ASYM_CIPHER_PARAM_OAEP_LABEL "oaep-label" +# define OSSL_ASYM_CIPHER_PARAM_PAD_MODE OSSL_PKEY_PARAM_PAD_MODE +# define OSSL_ASYM_CIPHER_PARAM_PROPERTIES OSSL_PKEY_PARAM_PROPERTIES +# define OSSL_ASYM_CIPHER_PARAM_TLS_CLIENT_VERSION "tls-client-version" +# define OSSL_ASYM_CIPHER_PARAM_TLS_NEGOTIATED_VERSION "tls-negotiated-version" +# define OSSL_CAPABILITY_TLS_GROUP_ALG "tls-group-alg" +# define OSSL_CAPABILITY_TLS_GROUP_ID "tls-group-id" +# define OSSL_CAPABILITY_TLS_GROUP_IS_KEM "tls-group-is-kem" +# define OSSL_CAPABILITY_TLS_GROUP_MAX_DTLS "tls-max-dtls" +# define OSSL_CAPABILITY_TLS_GROUP_MAX_TLS "tls-max-tls" +# define OSSL_CAPABILITY_TLS_GROUP_MIN_DTLS "tls-min-dtls" +# define OSSL_CAPABILITY_TLS_GROUP_MIN_TLS "tls-min-tls" +# define OSSL_CAPABILITY_TLS_GROUP_NAME "tls-group-name" +# define OSSL_CAPABILITY_TLS_GROUP_NAME_INTERNAL "tls-group-name-internal" +# define OSSL_CAPABILITY_TLS_GROUP_SECURITY_BITS "tls-group-sec-bits" +# define OSSL_CAPABILITY_TLS_SIGALG_CODE_POINT "tls-sigalg-code-point" +# define OSSL_CAPABILITY_TLS_SIGALG_HASH_NAME "tls-sigalg-hash-name" +# define OSSL_CAPABILITY_TLS_SIGALG_HASH_OID "tls-sigalg-hash-oid" +# define OSSL_CAPABILITY_TLS_SIGALG_IANA_NAME "tls-sigalg-iana-name" +# define OSSL_CAPABILITY_TLS_SIGALG_KEYTYPE "tls-sigalg-keytype" +# define OSSL_CAPABILITY_TLS_SIGALG_KEYTYPE_OID "tls-sigalg-keytype-oid" +# define OSSL_CAPABILITY_TLS_SIGALG_MAX_DTLS "tls-max-dtls" +# define OSSL_CAPABILITY_TLS_SIGALG_MAX_TLS "tls-max-tls" +# define OSSL_CAPABILITY_TLS_SIGALG_MIN_DTLS "tls-min-dtls" +# define OSSL_CAPABILITY_TLS_SIGALG_MIN_TLS "tls-min-tls" +# define OSSL_CAPABILITY_TLS_SIGALG_NAME "tls-sigalg-name" +# define OSSL_CAPABILITY_TLS_SIGALG_OID "tls-sigalg-oid" +# define OSSL_CAPABILITY_TLS_SIGALG_SECURITY_BITS "tls-sigalg-sec-bits" +# define OSSL_CAPABILITY_TLS_SIGALG_SIG_NAME "tls-sigalg-sig-name" +# define OSSL_CAPABILITY_TLS_SIGALG_SIG_OID "tls-sigalg-sig-oid" +# define OSSL_CIPHER_PARAM_AEAD "aead" +# define OSSL_CIPHER_PARAM_AEAD_IVLEN OSSL_CIPHER_PARAM_IVLEN +# define OSSL_CIPHER_PARAM_AEAD_IV_GENERATED "iv-generated" +# define OSSL_CIPHER_PARAM_AEAD_MAC_KEY "mackey" +# define OSSL_CIPHER_PARAM_AEAD_TAG "tag" +# define OSSL_CIPHER_PARAM_AEAD_TAGLEN "taglen" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_AAD "tlsaad" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_AAD_PAD "tlsaadpad" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_GET_IV_GEN "tlsivgen" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_IV_FIXED "tlsivfixed" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_SET_IV_INV "tlsivinv" +# define OSSL_CIPHER_PARAM_ALGORITHM_ID OSSL_ALG_PARAM_ALGORITHM_ID +# define OSSL_CIPHER_PARAM_ALGORITHM_ID_PARAMS OSSL_ALG_PARAM_ALGORITHM_ID_PARAMS +# define OSSL_CIPHER_PARAM_ALGORITHM_ID_PARAMS_OLD "alg_id_param" +# define OSSL_CIPHER_PARAM_BLOCK_SIZE "blocksize" +# define OSSL_CIPHER_PARAM_CTS "cts" +# define OSSL_CIPHER_PARAM_CTS_MODE "cts_mode" +# define OSSL_CIPHER_PARAM_CUSTOM_IV "custom-iv" +# define OSSL_CIPHER_PARAM_DECRYPT_ONLY "decrypt-only" +# define OSSL_CIPHER_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_CIPHER_PARAM_FIPS_ENCRYPT_CHECK "encrypt-check" +# define OSSL_CIPHER_PARAM_HAS_RAND_KEY "has-randkey" +# define OSSL_CIPHER_PARAM_IV "iv" +# define OSSL_CIPHER_PARAM_IVLEN "ivlen" +# define OSSL_CIPHER_PARAM_KEYLEN "keylen" +# define OSSL_CIPHER_PARAM_MODE "mode" +# define OSSL_CIPHER_PARAM_NUM "num" +# define OSSL_CIPHER_PARAM_PADDING "padding" +# define OSSL_CIPHER_PARAM_PIPELINE_AEAD_TAG "pipeline-tag" +# define OSSL_CIPHER_PARAM_RANDOM_KEY "randkey" +# define OSSL_CIPHER_PARAM_RC2_KEYBITS "keybits" +# define OSSL_CIPHER_PARAM_ROUNDS "rounds" +# define OSSL_CIPHER_PARAM_SPEED "speed" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK "tls-multi" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD "tls1multi_aad" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD_PACKLEN "tls1multi_aadpacklen" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC "tls1multi_enc" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_IN "tls1multi_encin" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_LEN "tls1multi_enclen" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_INTERLEAVE "tls1multi_interleave" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_BUFSIZE "tls1multi_maxbufsz" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_SEND_FRAGMENT "tls1multi_maxsndfrag" +# define OSSL_CIPHER_PARAM_TLS_MAC "tls-mac" +# define OSSL_CIPHER_PARAM_TLS_MAC_SIZE "tls-mac-size" +# define OSSL_CIPHER_PARAM_TLS_VERSION "tls-version" +# define OSSL_CIPHER_PARAM_UPDATED_IV "updated-iv" +# define OSSL_CIPHER_PARAM_USE_BITS "use-bits" +# define OSSL_CIPHER_PARAM_XTS_STANDARD "xts_standard" +# define OSSL_DECODER_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_DIGEST_PARAM_ALGID_ABSENT "algid-absent" +# define OSSL_DIGEST_PARAM_BLOCK_SIZE "blocksize" +# define OSSL_DIGEST_PARAM_MICALG "micalg" +# define OSSL_DIGEST_PARAM_PAD_TYPE "pad-type" +# define OSSL_DIGEST_PARAM_SIZE "size" +# define OSSL_DIGEST_PARAM_SSL3_MS "ssl3-ms" +# define OSSL_DIGEST_PARAM_XOF "xof" +# define OSSL_DIGEST_PARAM_XOFLEN "xoflen" +# define OSSL_DRBG_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_DRBG_PARAM_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_DRBG_PARAM_ENTROPY_REQUIRED "entropy_required" +# define OSSL_DRBG_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_DRBG_PARAM_FIPS_DIGEST_CHECK OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK +# define OSSL_DRBG_PARAM_MAC OSSL_ALG_PARAM_MAC +# define OSSL_DRBG_PARAM_MAX_ADINLEN "max_adinlen" +# define OSSL_DRBG_PARAM_MAX_ENTROPYLEN "max_entropylen" +# define OSSL_DRBG_PARAM_MAX_LENGTH "maxium_length" +# define OSSL_DRBG_PARAM_MAX_NONCELEN "max_noncelen" +# define OSSL_DRBG_PARAM_MAX_PERSLEN "max_perslen" +# define OSSL_DRBG_PARAM_MIN_ENTROPYLEN "min_entropylen" +# define OSSL_DRBG_PARAM_MIN_LENGTH "minium_length" +# define OSSL_DRBG_PARAM_MIN_NONCELEN "min_noncelen" +# define OSSL_DRBG_PARAM_PREDICTION_RESISTANCE "prediction_resistance" +# define OSSL_DRBG_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_DRBG_PARAM_RANDOM_DATA "random_data" +# define OSSL_DRBG_PARAM_RESEED_COUNTER "reseed_counter" +# define OSSL_DRBG_PARAM_RESEED_REQUESTS "reseed_requests" +# define OSSL_DRBG_PARAM_RESEED_TIME "reseed_time" +# define OSSL_DRBG_PARAM_RESEED_TIME_INTERVAL "reseed_time_interval" +# define OSSL_DRBG_PARAM_SIZE "size" +# define OSSL_DRBG_PARAM_USE_DF "use_derivation_function" +# define OSSL_ENCODER_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_ENCODER_PARAM_ENCRYPT_LEVEL "encrypt-level" +# define OSSL_ENCODER_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_ENCODER_PARAM_SAVE_PARAMETERS "save-parameters" +# define OSSL_EXCHANGE_PARAM_EC_ECDH_COFACTOR_MODE "ecdh-cofactor-mode" +# define OSSL_EXCHANGE_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_EXCHANGE_PARAM_FIPS_DIGEST_CHECK OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK +# define OSSL_EXCHANGE_PARAM_FIPS_ECDH_COFACTOR_CHECK OSSL_PROV_PARAM_ECDH_COFACTOR_CHECK +# define OSSL_EXCHANGE_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_EXCHANGE_PARAM_KDF_DIGEST "kdf-digest" +# define OSSL_EXCHANGE_PARAM_KDF_DIGEST_PROPS "kdf-digest-props" +# define OSSL_EXCHANGE_PARAM_KDF_OUTLEN "kdf-outlen" +# define OSSL_EXCHANGE_PARAM_KDF_TYPE "kdf-type" +# define OSSL_EXCHANGE_PARAM_KDF_UKM "kdf-ukm" +# define OSSL_EXCHANGE_PARAM_PAD "pad" +# define OSSL_GEN_PARAM_ITERATION "iteration" +# define OSSL_GEN_PARAM_POTENTIAL "potential" +# define OSSL_KDF_PARAM_ARGON2_AD "ad" +# define OSSL_KDF_PARAM_ARGON2_LANES "lanes" +# define OSSL_KDF_PARAM_ARGON2_MEMCOST "memcost" +# define OSSL_KDF_PARAM_ARGON2_VERSION "version" +# define OSSL_KDF_PARAM_CEK_ALG "cekalg" +# define OSSL_KDF_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_KDF_PARAM_CONSTANT "constant" +# define OSSL_KDF_PARAM_DATA "data" +# define OSSL_KDF_PARAM_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_KDF_PARAM_EARLY_CLEAN "early_clean" +# define OSSL_KDF_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_KDF_PARAM_FIPS_DIGEST_CHECK OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK +# define OSSL_KDF_PARAM_FIPS_EMS_CHECK "ems_check" +# define OSSL_KDF_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_KDF_PARAM_HMACDRBG_ENTROPY "entropy" +# define OSSL_KDF_PARAM_HMACDRBG_NONCE "nonce" +# define OSSL_KDF_PARAM_INFO "info" +# define OSSL_KDF_PARAM_ITER "iter" +# define OSSL_KDF_PARAM_KBKDF_R "r" +# define OSSL_KDF_PARAM_KBKDF_USE_L "use-l" +# define OSSL_KDF_PARAM_KBKDF_USE_SEPARATOR "use-separator" +# define OSSL_KDF_PARAM_KEY "key" +# define OSSL_KDF_PARAM_LABEL "label" +# define OSSL_KDF_PARAM_MAC OSSL_ALG_PARAM_MAC +# define OSSL_KDF_PARAM_MAC_SIZE "maclen" +# define OSSL_KDF_PARAM_MODE "mode" +# define OSSL_KDF_PARAM_PASSWORD "pass" +# define OSSL_KDF_PARAM_PKCS12_ID "id" +# define OSSL_KDF_PARAM_PKCS5 "pkcs5" +# define OSSL_KDF_PARAM_PREFIX "prefix" +# define OSSL_KDF_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_KDF_PARAM_SALT "salt" +# define OSSL_KDF_PARAM_SCRYPT_MAXMEM "maxmem_bytes" +# define OSSL_KDF_PARAM_SCRYPT_N "n" +# define OSSL_KDF_PARAM_SCRYPT_P "p" +# define OSSL_KDF_PARAM_SCRYPT_R "r" +# define OSSL_KDF_PARAM_SECRET "secret" +# define OSSL_KDF_PARAM_SEED "seed" +# define OSSL_KDF_PARAM_SIZE "size" +# define OSSL_KDF_PARAM_SSHKDF_SESSION_ID "session_id" +# define OSSL_KDF_PARAM_SSHKDF_TYPE "type" +# define OSSL_KDF_PARAM_SSHKDF_XCGHASH "xcghash" +# define OSSL_KDF_PARAM_THREADS "threads" +# define OSSL_KDF_PARAM_UKM "ukm" +# define OSSL_KDF_PARAM_X942_ACVPINFO "acvp-info" +# define OSSL_KDF_PARAM_X942_PARTYUINFO "partyu-info" +# define OSSL_KDF_PARAM_X942_PARTYVINFO "partyv-info" +# define OSSL_KDF_PARAM_X942_SUPP_PRIVINFO "supp-privinfo" +# define OSSL_KDF_PARAM_X942_SUPP_PUBINFO "supp-pubinfo" +# define OSSL_KDF_PARAM_X942_USE_KEYBITS "use-keybits" +# define OSSL_KEM_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_KEM_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_KEM_PARAM_IKME "ikme" +# define OSSL_KEM_PARAM_OPERATION "operation" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_BLOCK_PADDING "block_padding" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_HS_PADDING "hs_padding" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_MAX_EARLY_DATA "max_early_data" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_MAX_FRAG_LEN "max_frag_len" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_MODE "mode" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_OPTIONS "options" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_READ_AHEAD "read_ahead" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_STREAM_MAC "stream_mac" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_TLSTREE "tlstree" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_USE_ETM "use_etm" +# define OSSL_LIBSSL_RECORD_LAYER_READ_BUFFER_LEN "read_buffer_len" +# define OSSL_MAC_PARAM_BLOCK_SIZE "block-size" +# define OSSL_MAC_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_MAC_PARAM_CUSTOM "custom" +# define OSSL_MAC_PARAM_C_ROUNDS "c-rounds" +# define OSSL_MAC_PARAM_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_MAC_PARAM_DIGEST_NOINIT "digest-noinit" +# define OSSL_MAC_PARAM_DIGEST_ONESHOT "digest-oneshot" +# define OSSL_MAC_PARAM_D_ROUNDS "d-rounds" +# define OSSL_MAC_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_MAC_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_MAC_PARAM_FIPS_NO_SHORT_MAC OSSL_PROV_PARAM_NO_SHORT_MAC +# define OSSL_MAC_PARAM_IV "iv" +# define OSSL_MAC_PARAM_KEY "key" +# define OSSL_MAC_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_MAC_PARAM_SALT "salt" +# define OSSL_MAC_PARAM_SIZE "size" +# define OSSL_MAC_PARAM_TLS_DATA_SIZE "tls-data-size" +# define OSSL_MAC_PARAM_XOF "xof" +# define OSSL_OBJECT_PARAM_DATA "data" +# define OSSL_OBJECT_PARAM_DATA_STRUCTURE "data-structure" +# define OSSL_OBJECT_PARAM_DATA_TYPE "data-type" +# define OSSL_OBJECT_PARAM_DESC "desc" +# define OSSL_OBJECT_PARAM_INPUT_TYPE "input-type" +# define OSSL_OBJECT_PARAM_REFERENCE "reference" +# define OSSL_OBJECT_PARAM_TYPE "type" +# define OSSL_PASSPHRASE_PARAM_INFO "info" +# define OSSL_PKEY_PARAM_ALGORITHM_ID OSSL_ALG_PARAM_ALGORITHM_ID +# define OSSL_PKEY_PARAM_ALGORITHM_ID_PARAMS OSSL_ALG_PARAM_ALGORITHM_ID_PARAMS +# define OSSL_PKEY_PARAM_BITS "bits" +# define OSSL_PKEY_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_PKEY_PARAM_DEFAULT_DIGEST "default-digest" +# define OSSL_PKEY_PARAM_DHKEM_IKM "dhkem-ikm" +# define OSSL_PKEY_PARAM_DH_GENERATOR "safeprime-generator" +# define OSSL_PKEY_PARAM_DH_PRIV_LEN "priv_len" +# define OSSL_PKEY_PARAM_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_PKEY_PARAM_DIGEST_SIZE "digest-size" +# define OSSL_PKEY_PARAM_DIST_ID "distid" +# define OSSL_PKEY_PARAM_EC_A "a" +# define OSSL_PKEY_PARAM_EC_B "b" +# define OSSL_PKEY_PARAM_EC_CHAR2_M "m" +# define OSSL_PKEY_PARAM_EC_CHAR2_PP_K1 "k1" +# define OSSL_PKEY_PARAM_EC_CHAR2_PP_K2 "k2" +# define OSSL_PKEY_PARAM_EC_CHAR2_PP_K3 "k3" +# define OSSL_PKEY_PARAM_EC_CHAR2_TP_BASIS "tp" +# define OSSL_PKEY_PARAM_EC_CHAR2_TYPE "basis-type" +# define OSSL_PKEY_PARAM_EC_COFACTOR "cofactor" +# define OSSL_PKEY_PARAM_EC_DECODED_FROM_EXPLICIT_PARAMS "decoded-from-explicit" +# define OSSL_PKEY_PARAM_EC_ENCODING "encoding" +# define OSSL_PKEY_PARAM_EC_FIELD_TYPE "field-type" +# define OSSL_PKEY_PARAM_EC_GENERATOR "generator" +# define OSSL_PKEY_PARAM_EC_GROUP_CHECK_TYPE "group-check" +# define OSSL_PKEY_PARAM_EC_INCLUDE_PUBLIC "include-public" +# define OSSL_PKEY_PARAM_EC_ORDER "order" +# define OSSL_PKEY_PARAM_EC_P "p" +# define OSSL_PKEY_PARAM_EC_POINT_CONVERSION_FORMAT "point-format" +# define OSSL_PKEY_PARAM_EC_PUB_X "qx" +# define OSSL_PKEY_PARAM_EC_PUB_Y "qy" +# define OSSL_PKEY_PARAM_EC_SEED "seed" +# define OSSL_PKEY_PARAM_ENCODED_PUBLIC_KEY "encoded-pub-key" +# define OSSL_PKEY_PARAM_ENGINE OSSL_ALG_PARAM_ENGINE +# define OSSL_PKEY_PARAM_FFC_COFACTOR "j" +# define OSSL_PKEY_PARAM_FFC_DIGEST OSSL_PKEY_PARAM_DIGEST +# define OSSL_PKEY_PARAM_FFC_DIGEST_PROPS OSSL_PKEY_PARAM_PROPERTIES +# define OSSL_PKEY_PARAM_FFC_G "g" +# define OSSL_PKEY_PARAM_FFC_GINDEX "gindex" +# define OSSL_PKEY_PARAM_FFC_H "hindex" +# define OSSL_PKEY_PARAM_FFC_P "p" +# define OSSL_PKEY_PARAM_FFC_PBITS "pbits" +# define OSSL_PKEY_PARAM_FFC_PCOUNTER "pcounter" +# define OSSL_PKEY_PARAM_FFC_Q "q" +# define OSSL_PKEY_PARAM_FFC_QBITS "qbits" +# define OSSL_PKEY_PARAM_FFC_SEED "seed" +# define OSSL_PKEY_PARAM_FFC_TYPE "type" +# define OSSL_PKEY_PARAM_FFC_VALIDATE_G "validate-g" +# define OSSL_PKEY_PARAM_FFC_VALIDATE_LEGACY "validate-legacy" +# define OSSL_PKEY_PARAM_FFC_VALIDATE_PQ "validate-pq" +# define OSSL_PKEY_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK "digest-check" +# define OSSL_PKEY_PARAM_FIPS_KEY_CHECK "key-check" +# define OSSL_PKEY_PARAM_FIPS_SIGN_CHECK "sign-check" +# define OSSL_PKEY_PARAM_GROUP_NAME "group" +# define OSSL_PKEY_PARAM_IMPLICIT_REJECTION "implicit-rejection" +# define OSSL_PKEY_PARAM_MANDATORY_DIGEST "mandatory-digest" +# define OSSL_PKEY_PARAM_MASKGENFUNC "mgf" +# define OSSL_PKEY_PARAM_MAX_SIZE "max-size" +# define OSSL_PKEY_PARAM_MGF1_DIGEST "mgf1-digest" +# define OSSL_PKEY_PARAM_MGF1_PROPERTIES "mgf1-properties" +# define OSSL_PKEY_PARAM_ML_DSA_INPUT_FORMATS "ml-dsa.input_formats" +# define OSSL_PKEY_PARAM_ML_DSA_OUTPUT_FORMATS "ml-dsa.output_formats" +# define OSSL_PKEY_PARAM_ML_DSA_PREFER_SEED "ml-dsa.prefer_seed" +# define OSSL_PKEY_PARAM_ML_DSA_RETAIN_SEED "ml-dsa.retain_seed" +# define OSSL_PKEY_PARAM_ML_DSA_SEED "seed" +# define OSSL_PKEY_PARAM_ML_KEM_IMPORT_PCT_TYPE "ml-kem.import_pct_type" +# define OSSL_PKEY_PARAM_ML_KEM_INPUT_FORMATS "ml-kem.input_formats" +# define OSSL_PKEY_PARAM_ML_KEM_OUTPUT_FORMATS "ml-kem.output_formats" +# define OSSL_PKEY_PARAM_ML_KEM_PREFER_SEED "ml-kem.prefer_seed" +# define OSSL_PKEY_PARAM_ML_KEM_RETAIN_SEED "ml-kem.retain_seed" +# define OSSL_PKEY_PARAM_ML_KEM_SEED "seed" +# define OSSL_PKEY_PARAM_PAD_MODE "pad-mode" +# define OSSL_PKEY_PARAM_PRIV_KEY "priv" +# define OSSL_PKEY_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_PKEY_PARAM_PUB_KEY "pub" +# define OSSL_PKEY_PARAM_RSA_BITS OSSL_PKEY_PARAM_BITS +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT "rsa-coefficient" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT1 "rsa-coefficient1" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT2 "rsa-coefficient2" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT3 "rsa-coefficient3" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT4 "rsa-coefficient4" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT5 "rsa-coefficient5" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT6 "rsa-coefficient6" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT7 "rsa-coefficient7" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT8 "rsa-coefficient8" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT9 "rsa-coefficient9" +# define OSSL_PKEY_PARAM_RSA_D "d" +# define OSSL_PKEY_PARAM_RSA_DERIVE_FROM_PQ "rsa-derive-from-pq" +# define OSSL_PKEY_PARAM_RSA_DIGEST OSSL_PKEY_PARAM_DIGEST +# define OSSL_PKEY_PARAM_RSA_DIGEST_PROPS OSSL_PKEY_PARAM_PROPERTIES +# define OSSL_PKEY_PARAM_RSA_E "e" +# define OSSL_PKEY_PARAM_RSA_EXPONENT "rsa-exponent" +# define OSSL_PKEY_PARAM_RSA_EXPONENT1 "rsa-exponent1" +# define OSSL_PKEY_PARAM_RSA_EXPONENT10 "rsa-exponent10" +# define OSSL_PKEY_PARAM_RSA_EXPONENT2 "rsa-exponent2" +# define OSSL_PKEY_PARAM_RSA_EXPONENT3 "rsa-exponent3" +# define OSSL_PKEY_PARAM_RSA_EXPONENT4 "rsa-exponent4" +# define OSSL_PKEY_PARAM_RSA_EXPONENT5 "rsa-exponent5" +# define OSSL_PKEY_PARAM_RSA_EXPONENT6 "rsa-exponent6" +# define OSSL_PKEY_PARAM_RSA_EXPONENT7 "rsa-exponent7" +# define OSSL_PKEY_PARAM_RSA_EXPONENT8 "rsa-exponent8" +# define OSSL_PKEY_PARAM_RSA_EXPONENT9 "rsa-exponent9" +# define OSSL_PKEY_PARAM_RSA_FACTOR "rsa-factor" +# define OSSL_PKEY_PARAM_RSA_FACTOR1 "rsa-factor1" +# define OSSL_PKEY_PARAM_RSA_FACTOR10 "rsa-factor10" +# define OSSL_PKEY_PARAM_RSA_FACTOR2 "rsa-factor2" +# define OSSL_PKEY_PARAM_RSA_FACTOR3 "rsa-factor3" +# define OSSL_PKEY_PARAM_RSA_FACTOR4 "rsa-factor4" +# define OSSL_PKEY_PARAM_RSA_FACTOR5 "rsa-factor5" +# define OSSL_PKEY_PARAM_RSA_FACTOR6 "rsa-factor6" +# define OSSL_PKEY_PARAM_RSA_FACTOR7 "rsa-factor7" +# define OSSL_PKEY_PARAM_RSA_FACTOR8 "rsa-factor8" +# define OSSL_PKEY_PARAM_RSA_FACTOR9 "rsa-factor9" +# define OSSL_PKEY_PARAM_RSA_MASKGENFUNC OSSL_PKEY_PARAM_MASKGENFUNC +# define OSSL_PKEY_PARAM_RSA_MGF1_DIGEST OSSL_PKEY_PARAM_MGF1_DIGEST +# define OSSL_PKEY_PARAM_RSA_N "n" +# define OSSL_PKEY_PARAM_RSA_PRIMES "primes" +# define OSSL_PKEY_PARAM_RSA_PSS_SALTLEN "saltlen" +# define OSSL_PKEY_PARAM_RSA_TEST_P1 "p1" +# define OSSL_PKEY_PARAM_RSA_TEST_P2 "p2" +# define OSSL_PKEY_PARAM_RSA_TEST_Q1 "q1" +# define OSSL_PKEY_PARAM_RSA_TEST_Q2 "q2" +# define OSSL_PKEY_PARAM_RSA_TEST_XP "xp" +# define OSSL_PKEY_PARAM_RSA_TEST_XP1 "xp1" +# define OSSL_PKEY_PARAM_RSA_TEST_XP2 "xp2" +# define OSSL_PKEY_PARAM_RSA_TEST_XQ "xq" +# define OSSL_PKEY_PARAM_RSA_TEST_XQ1 "xq1" +# define OSSL_PKEY_PARAM_RSA_TEST_XQ2 "xq2" +# define OSSL_PKEY_PARAM_SECURITY_BITS "security-bits" +# define OSSL_PKEY_PARAM_SLH_DSA_SEED "seed" +# define OSSL_PKEY_PARAM_USE_COFACTOR_ECDH OSSL_PKEY_PARAM_USE_COFACTOR_FLAG +# define OSSL_PKEY_PARAM_USE_COFACTOR_FLAG "use-cofactor-flag" +# define OSSL_PROV_PARAM_BUILDINFO "buildinfo" +# define OSSL_PROV_PARAM_CORE_MODULE_FILENAME "module-filename" +# define OSSL_PROV_PARAM_CORE_PROV_NAME "provider-name" +# define OSSL_PROV_PARAM_CORE_VERSION "openssl-version" +# define OSSL_PROV_PARAM_DRBG_TRUNC_DIGEST "drbg-no-trunc-md" +# define OSSL_PROV_PARAM_DSA_SIGN_DISABLED "dsa-sign-disabled" +# define OSSL_PROV_PARAM_ECDH_COFACTOR_CHECK "ecdh-cofactor-check" +# define OSSL_PROV_PARAM_HKDF_DIGEST_CHECK "hkdf-digest-check" +# define OSSL_PROV_PARAM_HKDF_KEY_CHECK "hkdf-key-check" +# define OSSL_PROV_PARAM_HMAC_KEY_CHECK "hmac-key-check" +# define OSSL_PROV_PARAM_KBKDF_KEY_CHECK "kbkdf-key-check" +# define OSSL_PROV_PARAM_KMAC_KEY_CHECK "kmac-key-check" +# define OSSL_PROV_PARAM_NAME "name" +# define OSSL_PROV_PARAM_NO_SHORT_MAC "no-short-mac" +# define OSSL_PROV_PARAM_PBKDF2_LOWER_BOUND_CHECK "pbkdf2-lower-bound-check" +# define OSSL_PROV_PARAM_RSA_PKCS15_PAD_DISABLED "rsa-pkcs15-pad-disabled" +# define OSSL_PROV_PARAM_RSA_PSS_SALTLEN_CHECK "rsa-pss-saltlen-check" +# define OSSL_PROV_PARAM_RSA_SIGN_X931_PAD_DISABLED "rsa-sign-x931-pad-disabled" +# define OSSL_PROV_PARAM_SECURITY_CHECKS "security-checks" +# define OSSL_PROV_PARAM_SELF_TEST_DESC "st-desc" +# define OSSL_PROV_PARAM_SELF_TEST_PHASE "st-phase" +# define OSSL_PROV_PARAM_SELF_TEST_TYPE "st-type" +# define OSSL_PROV_PARAM_SIGNATURE_DIGEST_CHECK "signature-digest-check" +# define OSSL_PROV_PARAM_SSHKDF_DIGEST_CHECK "sshkdf-digest-check" +# define OSSL_PROV_PARAM_SSHKDF_KEY_CHECK "sshkdf-key-check" +# define OSSL_PROV_PARAM_SSKDF_DIGEST_CHECK "sskdf-digest-check" +# define OSSL_PROV_PARAM_SSKDF_KEY_CHECK "sskdf-key-check" +# define OSSL_PROV_PARAM_STATUS "status" +# define OSSL_PROV_PARAM_TDES_ENCRYPT_DISABLED "tdes-encrypt-disabled" +# define OSSL_PROV_PARAM_TLS13_KDF_DIGEST_CHECK "tls13-kdf-digest-check" +# define OSSL_PROV_PARAM_TLS13_KDF_KEY_CHECK "tls13-kdf-key-check" +# define OSSL_PROV_PARAM_TLS1_PRF_DIGEST_CHECK "tls1-prf-digest-check" +# define OSSL_PROV_PARAM_TLS1_PRF_EMS_CHECK "tls1-prf-ems-check" +# define OSSL_PROV_PARAM_TLS1_PRF_KEY_CHECK "tls1-prf-key-check" +# define OSSL_PROV_PARAM_VERSION "version" +# define OSSL_PROV_PARAM_X942KDF_KEY_CHECK "x942kdf-key-check" +# define OSSL_PROV_PARAM_X963KDF_DIGEST_CHECK "x963kdf-digest-check" +# define OSSL_PROV_PARAM_X963KDF_KEY_CHECK "x963kdf-key-check" +# define OSSL_RAND_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_RAND_PARAM_GENERATE "generate" +# define OSSL_RAND_PARAM_MAX_REQUEST "max_request" +# define OSSL_RAND_PARAM_STATE "state" +# define OSSL_RAND_PARAM_STRENGTH "strength" +# define OSSL_RAND_PARAM_TEST_ENTROPY "test_entropy" +# define OSSL_RAND_PARAM_TEST_NONCE "test_nonce" +# define OSSL_SIGNATURE_PARAM_ADD_RANDOM "additional-random" +# define OSSL_SIGNATURE_PARAM_ALGORITHM_ID OSSL_PKEY_PARAM_ALGORITHM_ID +# define OSSL_SIGNATURE_PARAM_ALGORITHM_ID_PARAMS OSSL_PKEY_PARAM_ALGORITHM_ID_PARAMS +# define OSSL_SIGNATURE_PARAM_CONTEXT_STRING "context-string" +# define OSSL_SIGNATURE_PARAM_DETERMINISTIC "deterministic" +# define OSSL_SIGNATURE_PARAM_DIGEST OSSL_PKEY_PARAM_DIGEST +# define OSSL_SIGNATURE_PARAM_DIGEST_SIZE OSSL_PKEY_PARAM_DIGEST_SIZE +# define OSSL_SIGNATURE_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_SIGNATURE_PARAM_FIPS_DIGEST_CHECK OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK +# define OSSL_SIGNATURE_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_SIGNATURE_PARAM_FIPS_RSA_PSS_SALTLEN_CHECK "rsa-pss-saltlen-check" +# define OSSL_SIGNATURE_PARAM_FIPS_SIGN_CHECK OSSL_PKEY_PARAM_FIPS_SIGN_CHECK +# define OSSL_SIGNATURE_PARAM_FIPS_SIGN_X931_PAD_CHECK "sign-x931-pad-check" +# define OSSL_SIGNATURE_PARAM_FIPS_VERIFY_MESSAGE "verify-message" +# define OSSL_SIGNATURE_PARAM_INSTANCE "instance" +# define OSSL_SIGNATURE_PARAM_KAT "kat" +# define OSSL_SIGNATURE_PARAM_MESSAGE_ENCODING "message-encoding" +# define OSSL_SIGNATURE_PARAM_MGF1_DIGEST OSSL_PKEY_PARAM_MGF1_DIGEST +# define OSSL_SIGNATURE_PARAM_MGF1_PROPERTIES OSSL_PKEY_PARAM_MGF1_PROPERTIES +# define OSSL_SIGNATURE_PARAM_MU "mu" +# define OSSL_SIGNATURE_PARAM_NONCE_TYPE "nonce-type" +# define OSSL_SIGNATURE_PARAM_PAD_MODE OSSL_PKEY_PARAM_PAD_MODE +# define OSSL_SIGNATURE_PARAM_PROPERTIES OSSL_PKEY_PARAM_PROPERTIES +# define OSSL_SIGNATURE_PARAM_PSS_SALTLEN "saltlen" +# define OSSL_SIGNATURE_PARAM_SIGNATURE "signature" +# define OSSL_SIGNATURE_PARAM_TEST_ENTROPY "test-entropy" +# define OSSL_SKEY_PARAM_KEY_LENGTH "key-length" +# define OSSL_SKEY_PARAM_RAW_BYTES "raw-bytes" +# define OSSL_STORE_PARAM_ALIAS "alias" +# define OSSL_STORE_PARAM_DIGEST "digest" +# define OSSL_STORE_PARAM_EXPECT "expect" +# define OSSL_STORE_PARAM_FINGERPRINT "fingerprint" +# define OSSL_STORE_PARAM_INPUT_TYPE "input-type" +# define OSSL_STORE_PARAM_ISSUER "name" +# define OSSL_STORE_PARAM_PROPERTIES "properties" +# define OSSL_STORE_PARAM_SERIAL "serial" +# define OSSL_STORE_PARAM_SUBJECT "subject" + +# ifdef __cplusplus +} +# endif + +#endif diff --git a/deps/openssl/config/archs/linux-armv4/asm/include/openssl/crmf.h b/deps/openssl/config/archs/linux-armv4/asm/include/openssl/crmf.h index 71b747ed33d239..4bf550fd47daa9 100644 --- a/deps/openssl/config/archs/linux-armv4/asm/include/openssl/crmf.h +++ b/deps/openssl/config/archs/linux-armv4/asm/include/openssl/crmf.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/crmf.h.in * - * Copyright 2007-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2007-2025 The OpenSSL Project Authors. All Rights Reserved. * Copyright Nokia 2007-2019 * Copyright Siemens AG 2015-2019 * @@ -26,6 +26,7 @@ # include # include # include /* for GENERAL_NAME etc. */ +# include /* explicit #includes not strictly needed since implied by the above: */ # include @@ -43,9 +44,12 @@ extern "C" { # define OSSL_CRMF_SUBSEQUENTMESSAGE_ENCRCERT 0 # define OSSL_CRMF_SUBSEQUENTMESSAGE_CHALLENGERESP 1 - typedef struct ossl_crmf_encryptedvalue_st OSSL_CRMF_ENCRYPTEDVALUE; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_ENCRYPTEDVALUE) + +typedef struct ossl_crmf_encryptedkey_st OSSL_CRMF_ENCRYPTEDKEY; +DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_ENCRYPTEDKEY) + typedef struct ossl_crmf_msg_st OSSL_CRMF_MSG; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_MSG) DECLARE_ASN1_DUP_FUNCTION(OSSL_CRMF_MSG) @@ -77,6 +81,36 @@ SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CRMF_MSG, OSSL_CRMF_MSG, OSSL_CRMF_MSG) #define sk_OSSL_CRMF_MSG_set_cmp_func(sk, cmp) ((sk_OSSL_CRMF_MSG_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CRMF_MSG_sk_type(sk), ossl_check_OSSL_CRMF_MSG_compfunc_type(cmp))) typedef struct ossl_crmf_attributetypeandvalue_st OSSL_CRMF_ATTRIBUTETYPEANDVALUE; +void OSSL_CRMF_ATTRIBUTETYPEANDVALUE_free(OSSL_CRMF_ATTRIBUTETYPEANDVALUE *v); +DECLARE_ASN1_DUP_FUNCTION(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CRMF_ATTRIBUTETYPEANDVALUE, OSSL_CRMF_ATTRIBUTETYPEANDVALUE, OSSL_CRMF_ATTRIBUTETYPEANDVALUE) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_value(sk, idx) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_value(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), (idx))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_new(cmp) ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_new(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_compfunc_type(cmp))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_new_null() ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_new_null()) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_new_reserve(cmp, n) ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_compfunc_type(cmp), (n))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), (n)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_free(sk) OPENSSL_sk_free(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_delete(sk, i) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_delete(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), (i))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_delete_ptr(sk, ptr) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_pop(sk) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_pop(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_shift(sk) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_shift(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk),ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_freefunc_type(freefunc)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr), (idx)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_set(sk, idx, ptr) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_set(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), (idx), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr), pnum) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_dup(sk) ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_dup(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_copyfunc_type(copyfunc), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_freefunc_type(freefunc))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_set_cmp_func(sk, cmp) ((sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_compfunc_type(cmp))) + + typedef struct ossl_crmf_pbmparameter_st OSSL_CRMF_PBMPARAMETER; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_PBMPARAMETER) typedef struct ossl_crmf_poposigningkey_st OSSL_CRMF_POPOSIGNINGKEY; @@ -118,6 +152,7 @@ typedef struct ossl_crmf_singlepubinfo_st OSSL_CRMF_SINGLEPUBINFO; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_SINGLEPUBINFO) typedef struct ossl_crmf_certtemplate_st OSSL_CRMF_CERTTEMPLATE; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_CERTTEMPLATE) +DECLARE_ASN1_DUP_FUNCTION(OSSL_CRMF_CERTTEMPLATE) typedef STACK_OF(OSSL_CRMF_MSG) OSSL_CRMF_MSGS; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_MSGS) @@ -198,12 +233,14 @@ int OSSL_CRMF_MSGS_verify_popo(const OSSL_CRMF_MSGS *reqs, int rid, int acceptRAVerified, OSSL_LIB_CTX *libctx, const char *propq); OSSL_CRMF_CERTTEMPLATE *OSSL_CRMF_MSG_get0_tmpl(const OSSL_CRMF_MSG *crm); -const ASN1_INTEGER -*OSSL_CRMF_CERTTEMPLATE_get0_serialNumber(const OSSL_CRMF_CERTTEMPLATE *tmpl); +X509_PUBKEY +*OSSL_CRMF_CERTTEMPLATE_get0_publicKey(const OSSL_CRMF_CERTTEMPLATE *tmpl); const X509_NAME *OSSL_CRMF_CERTTEMPLATE_get0_subject(const OSSL_CRMF_CERTTEMPLATE *tmpl); const X509_NAME *OSSL_CRMF_CERTTEMPLATE_get0_issuer(const OSSL_CRMF_CERTTEMPLATE *tmpl); +const ASN1_INTEGER +*OSSL_CRMF_CERTTEMPLATE_get0_serialNumber(const OSSL_CRMF_CERTTEMPLATE *tmpl); X509_EXTENSIONS *OSSL_CRMF_CERTTEMPLATE_get0_extensions(const OSSL_CRMF_CERTTEMPLATE *tmpl); const X509_NAME @@ -215,10 +252,24 @@ int OSSL_CRMF_CERTTEMPLATE_fill(OSSL_CRMF_CERTTEMPLATE *tmpl, const X509_NAME *subject, const X509_NAME *issuer, const ASN1_INTEGER *serial); -X509 -*OSSL_CRMF_ENCRYPTEDVALUE_get1_encCert(const OSSL_CRMF_ENCRYPTEDVALUE *ecert, - OSSL_LIB_CTX *libctx, const char *propq, - EVP_PKEY *pkey); +X509 *OSSL_CRMF_ENCRYPTEDVALUE_get1_encCert(const OSSL_CRMF_ENCRYPTEDVALUE *ecert, + OSSL_LIB_CTX *libctx, const char *propq, + EVP_PKEY *pkey); +X509 *OSSL_CRMF_ENCRYPTEDKEY_get1_encCert(const OSSL_CRMF_ENCRYPTEDKEY *ecert, + OSSL_LIB_CTX *libctx, const char *propq, + EVP_PKEY *pkey, unsigned int flags); +unsigned char +*OSSL_CRMF_ENCRYPTEDVALUE_decrypt(const OSSL_CRMF_ENCRYPTEDVALUE *enc, + OSSL_LIB_CTX *libctx, const char *propq, + EVP_PKEY *pkey, int *outlen); +EVP_PKEY *OSSL_CRMF_ENCRYPTEDKEY_get1_pkey(const OSSL_CRMF_ENCRYPTEDKEY *encryptedKey, + X509_STORE *ts, STACK_OF(X509) *extra, EVP_PKEY *pkey, + X509 *cert, ASN1_OCTET_STRING *secret, + OSSL_LIB_CTX *libctx, const char *propq); +int OSSL_CRMF_MSG_centralkeygen_requested(const OSSL_CRMF_MSG *crm, const X509_REQ *p10cr); +# ifndef OPENSSL_NO_CMS +OSSL_CRMF_ENCRYPTEDKEY *OSSL_CRMF_ENCRYPTEDKEY_init_envdata(CMS_EnvelopedData *envdata); +# endif # ifdef __cplusplus } diff --git a/deps/openssl/config/archs/linux-armv4/asm/include/openssl/crypto.h b/deps/openssl/config/archs/linux-armv4/asm/include/openssl/crypto.h index 3f40be6d8c61d5..fd2cfd3e5a9ac4 100644 --- a/deps/openssl/config/archs/linux-armv4/asm/include/openssl/crypto.h +++ b/deps/openssl/config/archs/linux-armv4/asm/include/openssl/crypto.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/crypto.h.in * - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2024 The OpenSSL Project Authors. All Rights Reserved. * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved * * Licensed under the Apache License 2.0 (the "License"). You may not use @@ -85,9 +85,15 @@ int CRYPTO_THREAD_unlock(CRYPTO_RWLOCK *lock); void CRYPTO_THREAD_lock_free(CRYPTO_RWLOCK *lock); int CRYPTO_atomic_add(int *val, int amount, int *ret, CRYPTO_RWLOCK *lock); +int CRYPTO_atomic_add64(uint64_t *val, uint64_t op, uint64_t *ret, + CRYPTO_RWLOCK *lock); +int CRYPTO_atomic_and(uint64_t *val, uint64_t op, uint64_t *ret, + CRYPTO_RWLOCK *lock); int CRYPTO_atomic_or(uint64_t *val, uint64_t op, uint64_t *ret, CRYPTO_RWLOCK *lock); int CRYPTO_atomic_load(uint64_t *val, uint64_t *ret, CRYPTO_RWLOCK *lock); +int CRYPTO_atomic_load_int(int *val, int *ret, CRYPTO_RWLOCK *lock); +int CRYPTO_atomic_store(uint64_t *dst, uint64_t val, CRYPTO_RWLOCK *lock); /* No longer needed, so this is a no-op */ #define OPENSSL_malloc_init() while(0) continue @@ -96,6 +102,9 @@ int CRYPTO_atomic_load(uint64_t *val, uint64_t *ret, CRYPTO_RWLOCK *lock); CRYPTO_malloc(num, OPENSSL_FILE, OPENSSL_LINE) # define OPENSSL_zalloc(num) \ CRYPTO_zalloc(num, OPENSSL_FILE, OPENSSL_LINE) +# define OPENSSL_aligned_alloc(num, alignment, freeptr) \ + CRYPTO_aligned_alloc(num, alignment, freeptr, \ + OPENSSL_FILE, OPENSSL_LINE) # define OPENSSL_realloc(addr, num) \ CRYPTO_realloc(addr, num, OPENSSL_FILE, OPENSSL_LINE) # define OPENSSL_clear_realloc(addr, old_num, num) \ @@ -124,6 +133,7 @@ int CRYPTO_atomic_load(uint64_t *val, uint64_t *ret, CRYPTO_RWLOCK *lock); size_t OPENSSL_strlcpy(char *dst, const char *src, size_t siz); size_t OPENSSL_strlcat(char *dst, const char *src, size_t siz); size_t OPENSSL_strnlen(const char *str, size_t maxlen); +int OPENSSL_strtoul(const char *str, char **endptr, int base, unsigned long *num); int OPENSSL_buf2hexstr_ex(char *str, size_t str_n, size_t *strlength, const unsigned char *buf, size_t buflen, const char sep); @@ -160,6 +170,7 @@ const char *OpenSSL_version(int type); # define OPENSSL_FULL_VERSION_STRING 7 # define OPENSSL_MODULES_DIR 8 # define OPENSSL_CPU_INFO 9 +# define OPENSSL_WINCTX 10 const char *OPENSSL_info(int type); /* @@ -174,6 +185,7 @@ const char *OPENSSL_info(int type); # define OPENSSL_INFO_LIST_SEPARATOR 1006 # define OPENSSL_INFO_SEED_SOURCE 1007 # define OPENSSL_INFO_CPU_SETTINGS 1008 +# define OPENSSL_INFO_WINDOWS_CONTEXT 1009 int OPENSSL_issetugid(void); @@ -341,11 +353,14 @@ void CRYPTO_get_mem_functions(CRYPTO_malloc_fn *malloc_fn, CRYPTO_realloc_fn *realloc_fn, CRYPTO_free_fn *free_fn); -void *CRYPTO_malloc(size_t num, const char *file, int line); -void *CRYPTO_zalloc(size_t num, const char *file, int line); -void *CRYPTO_memdup(const void *str, size_t siz, const char *file, int line); -char *CRYPTO_strdup(const char *str, const char *file, int line); -char *CRYPTO_strndup(const char *str, size_t s, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_malloc(size_t num, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_zalloc(size_t num, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_aligned_alloc(size_t num, size_t align, + void **freeptr, const char *file, + int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_memdup(const void *str, size_t siz, const char *file, int line); +OSSL_CRYPTO_ALLOC char *CRYPTO_strdup(const char *str, const char *file, int line); +OSSL_CRYPTO_ALLOC char *CRYPTO_strndup(const char *str, size_t s, const char *file, int line); void CRYPTO_free(void *ptr, const char *file, int line); void CRYPTO_clear_free(void *ptr, size_t num, const char *file, int line); void *CRYPTO_realloc(void *addr, size_t num, const char *file, int line); @@ -354,8 +369,8 @@ void *CRYPTO_clear_realloc(void *addr, size_t old_num, size_t num, int CRYPTO_secure_malloc_init(size_t sz, size_t minsize); int CRYPTO_secure_malloc_done(void); -void *CRYPTO_secure_malloc(size_t num, const char *file, int line); -void *CRYPTO_secure_zalloc(size_t num, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_secure_malloc(size_t num, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_secure_zalloc(size_t num, const char *file, int line); void CRYPTO_secure_free(void *ptr, const char *file, int line); void CRYPTO_secure_clear_free(void *ptr, size_t num, const char *file, int line); @@ -376,6 +391,9 @@ void OPENSSL_cleanse(void *ptr, size_t len); # define CRYPTO_MEM_CHECK_ENABLE 0x2 /* Control and mode bit */ # define CRYPTO_MEM_CHECK_DISABLE 0x3 /* Control only */ +/* max allowed length for value of OPENSSL_MALLOC_FAILURES env var. */ +# define CRYPTO_MEM_CHECK_MAX_FS 256 + void CRYPTO_get_alloc_counts(int *mcount, int *rcount, int *fcount); # ifndef OPENSSL_NO_DEPRECATED_3_0 # define OPENSSL_mem_debug_push(info) \ @@ -551,6 +569,13 @@ int OSSL_LIB_CTX_load_config(OSSL_LIB_CTX *ctx, const char *config_file); void OSSL_LIB_CTX_free(OSSL_LIB_CTX *); OSSL_LIB_CTX *OSSL_LIB_CTX_get0_global_default(void); OSSL_LIB_CTX *OSSL_LIB_CTX_set0_default(OSSL_LIB_CTX *libctx); +int OSSL_LIB_CTX_get_conf_diagnostics(OSSL_LIB_CTX *ctx); +void OSSL_LIB_CTX_set_conf_diagnostics(OSSL_LIB_CTX *ctx, int value); + +void OSSL_sleep(uint64_t millis); + + +void *OSSL_LIB_CTX_get_data(OSSL_LIB_CTX *ctx, int index); # ifdef __cplusplus } diff --git a/deps/openssl/config/archs/linux-armv4/asm/include/openssl/ct.h b/deps/openssl/config/archs/linux-armv4/asm/include/openssl/ct.h index b6dd8c3547710a..e6dd1192a4e0b3 100644 --- a/deps/openssl/config/archs/linux-armv4/asm/include/openssl/ct.h +++ b/deps/openssl/config/archs/linux-armv4/asm/include/openssl/ct.h @@ -133,7 +133,7 @@ typedef enum { */ CT_POLICY_EVAL_CTX *CT_POLICY_EVAL_CTX_new_ex(OSSL_LIB_CTX *libctx, const char *propq); - + /* * The same as CT_POLICY_EVAL_CTX_new_ex() but the default library * context and property query string is used. diff --git a/deps/openssl/config/archs/linux-armv4/asm/include/openssl/err.h b/deps/openssl/config/archs/linux-armv4/asm/include/openssl/err.h index 2abf2483488181..daca18e7b757b0 100644 --- a/deps/openssl/config/archs/linux-armv4/asm/include/openssl/err.h +++ b/deps/openssl/config/archs/linux-armv4/asm/include/openssl/err.h @@ -1,5 +1,5 @@ /* - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -372,7 +372,7 @@ typedef struct ERR_string_data_st { } ERR_STRING_DATA; DEFINE_LHASH_OF_INTERNAL(ERR_STRING_DATA); -#define lh_ERR_STRING_DATA_new(hfn, cmp) ((LHASH_OF(ERR_STRING_DATA) *)OPENSSL_LH_new(ossl_check_ERR_STRING_DATA_lh_hashfunc_type(hfn), ossl_check_ERR_STRING_DATA_lh_compfunc_type(cmp))) +#define lh_ERR_STRING_DATA_new(hfn, cmp) ((LHASH_OF(ERR_STRING_DATA) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new(ossl_check_ERR_STRING_DATA_lh_hashfunc_type(hfn), ossl_check_ERR_STRING_DATA_lh_compfunc_type(cmp)), lh_ERR_STRING_DATA_hash_thunk, lh_ERR_STRING_DATA_comp_thunk, lh_ERR_STRING_DATA_doall_thunk, lh_ERR_STRING_DATA_doall_arg_thunk)) #define lh_ERR_STRING_DATA_free(lh) OPENSSL_LH_free(ossl_check_ERR_STRING_DATA_lh_type(lh)) #define lh_ERR_STRING_DATA_flush(lh) OPENSSL_LH_flush(ossl_check_ERR_STRING_DATA_lh_type(lh)) #define lh_ERR_STRING_DATA_insert(lh, ptr) ((ERR_STRING_DATA *)OPENSSL_LH_insert(ossl_check_ERR_STRING_DATA_lh_type(lh), ossl_check_ERR_STRING_DATA_lh_plain_type(ptr))) @@ -496,6 +496,14 @@ int ERR_get_next_error_library(void); int ERR_set_mark(void); int ERR_pop_to_mark(void); int ERR_clear_last_mark(void); +int ERR_count_to_mark(void); +int ERR_pop(void); + +ERR_STATE *OSSL_ERR_STATE_new(void); +void OSSL_ERR_STATE_save(ERR_STATE *es); +void OSSL_ERR_STATE_save_to_mark(ERR_STATE *es); +void OSSL_ERR_STATE_restore(const ERR_STATE *es); +void OSSL_ERR_STATE_free(ERR_STATE *es); #ifdef __cplusplus } diff --git a/deps/openssl/config/archs/linux-armv4/asm/include/openssl/fipskey.h b/deps/openssl/config/archs/linux-armv4/asm/include/openssl/fipskey.h index 42ba014b313ba8..929db18c678364 100644 --- a/deps/openssl/config/archs/linux-armv4/asm/include/openssl/fipskey.h +++ b/deps/openssl/config/archs/linux-armv4/asm/include/openssl/fipskey.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/fipskey.h.in * - * Copyright 2020-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2020-2024 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -29,6 +29,11 @@ extern "C" { */ #define FIPS_KEY_STRING "f4556650ac31d35461610bac4ed81b1a181b2d8a43ea2854cbae22ca74560813" +/* + * The FIPS provider vendor name, as a string. + */ +#define FIPS_VENDOR "OpenSSL FIPS Provider" + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/linux-armv4/asm/include/openssl/lhash.h b/deps/openssl/config/archs/linux-armv4/asm/include/openssl/lhash.h index 39dd6254acdeb6..62c55b20fd9716 100644 --- a/deps/openssl/config/archs/linux-armv4/asm/include/openssl/lhash.h +++ b/deps/openssl/config/archs/linux-armv4/asm/include/openssl/lhash.h @@ -1,5 +1,5 @@ /* - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2024 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -24,6 +24,9 @@ # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -31,9 +34,13 @@ extern "C" { typedef struct lhash_node_st OPENSSL_LH_NODE; typedef int (*OPENSSL_LH_COMPFUNC) (const void *, const void *); +typedef int (*OPENSSL_LH_COMPFUNCTHUNK) (const void *, const void *, OPENSSL_LH_COMPFUNC cfn); typedef unsigned long (*OPENSSL_LH_HASHFUNC) (const void *); +typedef unsigned long (*OPENSSL_LH_HASHFUNCTHUNK) (const void *, OPENSSL_LH_HASHFUNC hfn); typedef void (*OPENSSL_LH_DOALL_FUNC) (void *); +typedef void (*OPENSSL_LH_DOALL_FUNC_THUNK) (void *, OPENSSL_LH_DOALL_FUNC doall); typedef void (*OPENSSL_LH_DOALL_FUNCARG) (void *, void *); +typedef void (*OPENSSL_LH_DOALL_FUNCARG_THUNK) (void *, void *, OPENSSL_LH_DOALL_FUNCARG doall); typedef struct lhash_st OPENSSL_LHASH; /* @@ -79,26 +86,40 @@ typedef struct lhash_st OPENSSL_LHASH; int OPENSSL_LH_error(OPENSSL_LHASH *lh); OPENSSL_LHASH *OPENSSL_LH_new(OPENSSL_LH_HASHFUNC h, OPENSSL_LH_COMPFUNC c); +OPENSSL_LHASH *OPENSSL_LH_set_thunks(OPENSSL_LHASH *lh, + OPENSSL_LH_HASHFUNCTHUNK hw, + OPENSSL_LH_COMPFUNCTHUNK cw, + OPENSSL_LH_DOALL_FUNC_THUNK daw, + OPENSSL_LH_DOALL_FUNCARG_THUNK daaw); void OPENSSL_LH_free(OPENSSL_LHASH *lh); void OPENSSL_LH_flush(OPENSSL_LHASH *lh); void *OPENSSL_LH_insert(OPENSSL_LHASH *lh, void *data); void *OPENSSL_LH_delete(OPENSSL_LHASH *lh, const void *data); void *OPENSSL_LH_retrieve(OPENSSL_LHASH *lh, const void *data); void OPENSSL_LH_doall(OPENSSL_LHASH *lh, OPENSSL_LH_DOALL_FUNC func); -void OPENSSL_LH_doall_arg(OPENSSL_LHASH *lh, OPENSSL_LH_DOALL_FUNCARG func, void *arg); +void OPENSSL_LH_doall_arg(OPENSSL_LHASH *lh, + OPENSSL_LH_DOALL_FUNCARG func, void *arg); +void OPENSSL_LH_doall_arg_thunk(OPENSSL_LHASH *lh, + OPENSSL_LH_DOALL_FUNCARG_THUNK daaw, + OPENSSL_LH_DOALL_FUNCARG fn, void *arg); + unsigned long OPENSSL_LH_strhash(const char *c); unsigned long OPENSSL_LH_num_items(const OPENSSL_LHASH *lh); unsigned long OPENSSL_LH_get_down_load(const OPENSSL_LHASH *lh); void OPENSSL_LH_set_down_load(OPENSSL_LHASH *lh, unsigned long down_load); # ifndef OPENSSL_NO_STDIO -void OPENSSL_LH_stats(const OPENSSL_LHASH *lh, FILE *fp); -void OPENSSL_LH_node_stats(const OPENSSL_LHASH *lh, FILE *fp); -void OPENSSL_LH_node_usage_stats(const OPENSSL_LHASH *lh, FILE *fp); +# ifndef OPENSSL_NO_DEPRECATED_3_1 +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_stats(const OPENSSL_LHASH *lh, FILE *fp); +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_node_stats(const OPENSSL_LHASH *lh, FILE *fp); +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_node_usage_stats(const OPENSSL_LHASH *lh, FILE *fp); +# endif +# endif +# ifndef OPENSSL_NO_DEPRECATED_3_1 +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_stats_bio(const OPENSSL_LHASH *lh, BIO *out); +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_node_stats_bio(const OPENSSL_LHASH *lh, BIO *out); +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_node_usage_stats_bio(const OPENSSL_LHASH *lh, BIO *out); # endif -void OPENSSL_LH_stats_bio(const OPENSSL_LHASH *lh, BIO *out); -void OPENSSL_LH_node_stats_bio(const OPENSSL_LHASH *lh, BIO *out); -void OPENSSL_LH_node_usage_stats_bio(const OPENSSL_LHASH *lh, BIO *out); # ifndef OPENSSL_NO_DEPRECATED_1_1_0 # define _LHASH OPENSSL_LHASH @@ -129,110 +150,190 @@ void OPENSSL_LH_node_usage_stats_bio(const OPENSSL_LHASH *lh, BIO *out); /* Helper macro for internal use */ # define DEFINE_LHASH_OF_INTERNAL(type) \ - LHASH_OF(type) { union lh_##type##_dummy { void* d1; unsigned long d2; int d3; } dummy; }; \ + LHASH_OF(type) { \ + union lh_##type##_dummy { void* d1; unsigned long d2; int d3; } dummy; \ + }; \ typedef int (*lh_##type##_compfunc)(const type *a, const type *b); \ typedef unsigned long (*lh_##type##_hashfunc)(const type *a); \ typedef void (*lh_##type##_doallfunc)(type *a); \ - static ossl_unused ossl_inline type *ossl_check_##type##_lh_plain_type(type *ptr) \ + static ossl_inline unsigned long lh_##type##_hash_thunk(const void *data, OPENSSL_LH_HASHFUNC hfn) \ + { \ + unsigned long (*hfn_conv)(const type *) = (unsigned long (*)(const type *))hfn; \ + return hfn_conv((const type *)data); \ + } \ + static ossl_inline int lh_##type##_comp_thunk(const void *da, const void *db, OPENSSL_LH_COMPFUNC cfn) \ + { \ + int (*cfn_conv)(const type *, const type *) = (int (*)(const type *, const type *))cfn; \ + return cfn_conv((const type *)da, (const type *)db); \ + } \ + static ossl_inline void lh_##type##_doall_thunk(void *node, OPENSSL_LH_DOALL_FUNC doall) \ + { \ + void (*doall_conv)(type *) = (void (*)(type *))doall; \ + doall_conv((type *)node); \ + } \ + static ossl_inline void lh_##type##_doall_arg_thunk(void *node, void *arg, OPENSSL_LH_DOALL_FUNCARG doall) \ + { \ + void (*doall_conv)(type *, void *) = (void (*)(type *, void *))doall; \ + doall_conv((type *)node, arg); \ + } \ + static ossl_unused ossl_inline type *\ + ossl_check_##type##_lh_plain_type(type *ptr) \ { \ return ptr; \ } \ - static ossl_unused ossl_inline const type *ossl_check_const_##type##_lh_plain_type(const type *ptr) \ + static ossl_unused ossl_inline const type * \ + ossl_check_const_##type##_lh_plain_type(const type *ptr) \ { \ return ptr; \ } \ - static ossl_unused ossl_inline const OPENSSL_LHASH *ossl_check_const_##type##_lh_type(const LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline const OPENSSL_LHASH * \ + ossl_check_const_##type##_lh_type(const LHASH_OF(type) *lh) \ { \ return (const OPENSSL_LHASH *)lh; \ } \ - static ossl_unused ossl_inline OPENSSL_LHASH *ossl_check_##type##_lh_type(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline OPENSSL_LHASH * \ + ossl_check_##type##_lh_type(LHASH_OF(type) *lh) \ { \ return (OPENSSL_LHASH *)lh; \ } \ - static ossl_unused ossl_inline OPENSSL_LH_COMPFUNC ossl_check_##type##_lh_compfunc_type(lh_##type##_compfunc cmp) \ + static ossl_unused ossl_inline OPENSSL_LH_COMPFUNC \ + ossl_check_##type##_lh_compfunc_type(lh_##type##_compfunc cmp) \ { \ return (OPENSSL_LH_COMPFUNC)cmp; \ } \ - static ossl_unused ossl_inline OPENSSL_LH_HASHFUNC ossl_check_##type##_lh_hashfunc_type(lh_##type##_hashfunc hfn) \ + static ossl_unused ossl_inline OPENSSL_LH_HASHFUNC \ + ossl_check_##type##_lh_hashfunc_type(lh_##type##_hashfunc hfn) \ { \ return (OPENSSL_LH_HASHFUNC)hfn; \ } \ - static ossl_unused ossl_inline OPENSSL_LH_DOALL_FUNC ossl_check_##type##_lh_doallfunc_type(lh_##type##_doallfunc dfn) \ + static ossl_unused ossl_inline OPENSSL_LH_DOALL_FUNC \ + ossl_check_##type##_lh_doallfunc_type(lh_##type##_doallfunc dfn) \ { \ return (OPENSSL_LH_DOALL_FUNC)dfn; \ } \ LHASH_OF(type) -# define DEFINE_LHASH_OF(type) \ - LHASH_OF(type) { union lh_##type##_dummy { void* d1; unsigned long d2; int d3; } dummy; }; \ - static ossl_unused ossl_inline LHASH_OF(type) *lh_##type##_new(unsigned long (*hfn)(const type *), \ - int (*cfn)(const type *, const type *)) \ +# ifndef OPENSSL_NO_DEPRECATED_3_1 +# define DEFINE_LHASH_OF_DEPRECATED(type) \ + static ossl_unused ossl_inline void \ + lh_##type##_node_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ { \ - return (LHASH_OF(type) *) \ - OPENSSL_LH_new((OPENSSL_LH_HASHFUNC)hfn, (OPENSSL_LH_COMPFUNC)cfn); \ + OPENSSL_LH_node_stats_bio((const OPENSSL_LHASH *)lh, out); \ } \ - static ossl_unused ossl_inline void lh_##type##_free(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline void \ + lh_##type##_node_usage_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + { \ + OPENSSL_LH_node_usage_stats_bio((const OPENSSL_LHASH *)lh, out); \ + } \ + static ossl_unused ossl_inline void \ + lh_##type##_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + { \ + OPENSSL_LH_stats_bio((const OPENSSL_LHASH *)lh, out); \ + } +# else +# define DEFINE_LHASH_OF_DEPRECATED(type) +# endif + +# define DEFINE_LHASH_OF_EX(type) \ + LHASH_OF(type) { \ + union lh_##type##_dummy { void* d1; unsigned long d2; int d3; } dummy; \ + }; \ + static unsigned long \ + lh_##type##_hfn_thunk(const void *data, OPENSSL_LH_HASHFUNC hfn) \ + { \ + unsigned long (*hfn_conv)(const type *) = (unsigned long (*)(const type *))hfn; \ + return hfn_conv((const type *)data); \ + } \ + static int lh_##type##_cfn_thunk(const void *da, const void *db, OPENSSL_LH_COMPFUNC cfn) \ + { \ + int (*cfn_conv)(const type *, const type *) = (int (*)(const type *, const type *))cfn; \ + return cfn_conv((const type *)da, (const type *)db); \ + } \ + static ossl_unused ossl_inline void \ + lh_##type##_free(LHASH_OF(type) *lh) \ { \ OPENSSL_LH_free((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline void lh_##type##_flush(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline void \ + lh_##type##_flush(LHASH_OF(type) *lh) \ { \ OPENSSL_LH_flush((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline type *lh_##type##_insert(LHASH_OF(type) *lh, type *d) \ + static ossl_unused ossl_inline type * \ + lh_##type##_insert(LHASH_OF(type) *lh, type *d) \ { \ return (type *)OPENSSL_LH_insert((OPENSSL_LHASH *)lh, d); \ } \ - static ossl_unused ossl_inline type *lh_##type##_delete(LHASH_OF(type) *lh, const type *d) \ + static ossl_unused ossl_inline type * \ + lh_##type##_delete(LHASH_OF(type) *lh, const type *d) \ { \ return (type *)OPENSSL_LH_delete((OPENSSL_LHASH *)lh, d); \ } \ - static ossl_unused ossl_inline type *lh_##type##_retrieve(LHASH_OF(type) *lh, const type *d) \ + static ossl_unused ossl_inline type * \ + lh_##type##_retrieve(LHASH_OF(type) *lh, const type *d) \ { \ return (type *)OPENSSL_LH_retrieve((OPENSSL_LHASH *)lh, d); \ } \ - static ossl_unused ossl_inline int lh_##type##_error(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline int \ + lh_##type##_error(LHASH_OF(type) *lh) \ { \ return OPENSSL_LH_error((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline unsigned long lh_##type##_num_items(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline unsigned long \ + lh_##type##_num_items(LHASH_OF(type) *lh) \ { \ return OPENSSL_LH_num_items((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline void lh_##type##_node_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + static ossl_unused ossl_inline unsigned long \ + lh_##type##_get_down_load(LHASH_OF(type) *lh) \ { \ - OPENSSL_LH_node_stats_bio((const OPENSSL_LHASH *)lh, out); \ + return OPENSSL_LH_get_down_load((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline void lh_##type##_node_usage_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + static ossl_unused ossl_inline void \ + lh_##type##_set_down_load(LHASH_OF(type) *lh, unsigned long dl) \ { \ - OPENSSL_LH_node_usage_stats_bio((const OPENSSL_LHASH *)lh, out); \ + OPENSSL_LH_set_down_load((OPENSSL_LHASH *)lh, dl); \ } \ - static ossl_unused ossl_inline void lh_##type##_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall_thunk(void *node, OPENSSL_LH_DOALL_FUNC doall) \ { \ - OPENSSL_LH_stats_bio((const OPENSSL_LHASH *)lh, out); \ + void (*doall_conv)(type *) = (void (*)(type *))doall; \ + doall_conv((type *)node); \ } \ - static ossl_unused ossl_inline unsigned long lh_##type##_get_down_load(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall_arg_thunk(void *node, void *arg, OPENSSL_LH_DOALL_FUNCARG doall) \ { \ - return OPENSSL_LH_get_down_load((OPENSSL_LHASH *)lh); \ + void (*doall_conv)(type *, void *) = (void (*)(type *, void *))doall; \ + doall_conv((type *)node, arg); \ } \ - static ossl_unused ossl_inline void lh_##type##_set_down_load(LHASH_OF(type) *lh, unsigned long dl) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall(LHASH_OF(type) *lh, void (*doall)(type *)) \ { \ - OPENSSL_LH_set_down_load((OPENSSL_LHASH *)lh, dl); \ + OPENSSL_LH_doall((OPENSSL_LHASH *)lh, (OPENSSL_LH_DOALL_FUNC)doall); \ } \ - static ossl_unused ossl_inline void lh_##type##_doall(LHASH_OF(type) *lh, \ - void (*doall)(type *)) \ + static ossl_unused ossl_inline LHASH_OF(type) * \ + lh_##type##_new(unsigned long (*hfn)(const type *), \ + int (*cfn)(const type *, const type *)) \ { \ - OPENSSL_LH_doall((OPENSSL_LHASH *)lh, (OPENSSL_LH_DOALL_FUNC)doall); \ + return (LHASH_OF(type) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new((OPENSSL_LH_HASHFUNC)hfn, (OPENSSL_LH_COMPFUNC)cfn), \ + lh_##type##_hfn_thunk, lh_##type##_cfn_thunk, \ + lh_##type##_doall_thunk, \ + lh_##type##_doall_arg_thunk); \ } \ - static ossl_unused ossl_inline void lh_##type##_doall_arg(LHASH_OF(type) *lh, \ - void (*doallarg)(type *, void *), \ - void *arg) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall_arg(LHASH_OF(type) *lh, \ + void (*doallarg)(type *, void *), void *arg) \ { \ OPENSSL_LH_doall_arg((OPENSSL_LHASH *)lh, \ (OPENSSL_LH_DOALL_FUNCARG)doallarg, arg); \ } \ LHASH_OF(type) +# define DEFINE_LHASH_OF(type) \ + DEFINE_LHASH_OF_EX(type); \ + DEFINE_LHASH_OF_DEPRECATED(type) \ + LHASH_OF(type) + #define IMPLEMENT_LHASH_DOALL_ARG_CONST(type, argtype) \ int_implement_lhash_doall(type, argtype, const type) @@ -240,17 +341,26 @@ void OPENSSL_LH_node_usage_stats_bio(const OPENSSL_LHASH *lh, BIO *out); int_implement_lhash_doall(type, argtype, type) #define int_implement_lhash_doall(type, argtype, cbargtype) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall_##argtype##_thunk(void *node, void *arg, OPENSSL_LH_DOALL_FUNCARG fn) \ + { \ + void (*fn_conv)(cbargtype *, argtype *) = (void (*)(cbargtype *, argtype *))fn; \ + fn_conv((cbargtype *)node, (argtype *)arg); \ + } \ static ossl_unused ossl_inline void \ lh_##type##_doall_##argtype(LHASH_OF(type) *lh, \ void (*fn)(cbargtype *, argtype *), \ argtype *arg) \ { \ - OPENSSL_LH_doall_arg((OPENSSL_LHASH *)lh, (OPENSSL_LH_DOALL_FUNCARG)fn, (void *)arg); \ + OPENSSL_LH_doall_arg_thunk((OPENSSL_LHASH *)lh, \ + lh_##type##_doall_##argtype##_thunk, \ + (OPENSSL_LH_DOALL_FUNCARG)fn, \ + (void *)arg); \ } \ LHASH_OF(type) DEFINE_LHASH_OF_INTERNAL(OPENSSL_STRING); -#define lh_OPENSSL_STRING_new(hfn, cmp) ((LHASH_OF(OPENSSL_STRING) *)OPENSSL_LH_new(ossl_check_OPENSSL_STRING_lh_hashfunc_type(hfn), ossl_check_OPENSSL_STRING_lh_compfunc_type(cmp))) +#define lh_OPENSSL_STRING_new(hfn, cmp) ((LHASH_OF(OPENSSL_STRING) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new(ossl_check_OPENSSL_STRING_lh_hashfunc_type(hfn), ossl_check_OPENSSL_STRING_lh_compfunc_type(cmp)), lh_OPENSSL_STRING_hash_thunk, lh_OPENSSL_STRING_comp_thunk, lh_OPENSSL_STRING_doall_thunk, lh_OPENSSL_STRING_doall_arg_thunk)) #define lh_OPENSSL_STRING_free(lh) OPENSSL_LH_free(ossl_check_OPENSSL_STRING_lh_type(lh)) #define lh_OPENSSL_STRING_flush(lh) OPENSSL_LH_flush(ossl_check_OPENSSL_STRING_lh_type(lh)) #define lh_OPENSSL_STRING_insert(lh, ptr) ((OPENSSL_STRING *)OPENSSL_LH_insert(ossl_check_OPENSSL_STRING_lh_type(lh), ossl_check_OPENSSL_STRING_lh_plain_type(ptr))) @@ -265,7 +375,7 @@ DEFINE_LHASH_OF_INTERNAL(OPENSSL_STRING); #define lh_OPENSSL_STRING_set_down_load(lh, dl) OPENSSL_LH_set_down_load(ossl_check_OPENSSL_STRING_lh_type(lh), dl) #define lh_OPENSSL_STRING_doall(lh, dfn) OPENSSL_LH_doall(ossl_check_OPENSSL_STRING_lh_type(lh), ossl_check_OPENSSL_STRING_lh_doallfunc_type(dfn)) DEFINE_LHASH_OF_INTERNAL(OPENSSL_CSTRING); -#define lh_OPENSSL_CSTRING_new(hfn, cmp) ((LHASH_OF(OPENSSL_CSTRING) *)OPENSSL_LH_new(ossl_check_OPENSSL_CSTRING_lh_hashfunc_type(hfn), ossl_check_OPENSSL_CSTRING_lh_compfunc_type(cmp))) +#define lh_OPENSSL_CSTRING_new(hfn, cmp) ((LHASH_OF(OPENSSL_CSTRING) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new(ossl_check_OPENSSL_CSTRING_lh_hashfunc_type(hfn), ossl_check_OPENSSL_CSTRING_lh_compfunc_type(cmp)), lh_OPENSSL_CSTRING_hash_thunk, lh_OPENSSL_CSTRING_comp_thunk, lh_OPENSSL_CSTRING_doall_thunk, lh_OPENSSL_CSTRING_doall_arg_thunk)) #define lh_OPENSSL_CSTRING_free(lh) OPENSSL_LH_free(ossl_check_OPENSSL_CSTRING_lh_type(lh)) #define lh_OPENSSL_CSTRING_flush(lh) OPENSSL_LH_flush(ossl_check_OPENSSL_CSTRING_lh_type(lh)) #define lh_OPENSSL_CSTRING_insert(lh, ptr) ((OPENSSL_CSTRING *)OPENSSL_LH_insert(ossl_check_OPENSSL_CSTRING_lh_type(lh), ossl_check_OPENSSL_CSTRING_lh_plain_type(ptr))) diff --git a/deps/openssl/config/archs/linux-armv4/asm/include/openssl/opensslv.h b/deps/openssl/config/archs/linux-armv4/asm/include/openssl/opensslv.h index 5fb5bc63056fe0..dd50d89cb9982d 100644 --- a/deps/openssl/config/archs/linux-armv4/asm/include/openssl/opensslv.h +++ b/deps/openssl/config/archs/linux-armv4/asm/include/openssl/opensslv.h @@ -28,8 +28,8 @@ extern "C" { * These macros express version number MAJOR.MINOR.PATCH exactly */ # define OPENSSL_VERSION_MAJOR 3 -# define OPENSSL_VERSION_MINOR 0 -# define OPENSSL_VERSION_PATCH 17 +# define OPENSSL_VERSION_MINOR 5 +# define OPENSSL_VERSION_PATCH 1 /* * Additional version information @@ -74,8 +74,8 @@ extern "C" { * longer variant with OPENSSL_VERSION_PRE_RELEASE_STR and * OPENSSL_VERSION_BUILD_METADATA_STR appended. */ -# define OPENSSL_VERSION_STR "3.0.17" -# define OPENSSL_FULL_VERSION_STR "3.0.17" +# define OPENSSL_VERSION_STR "3.5.1" +# define OPENSSL_FULL_VERSION_STR "3.5.1" /* * SECTION 3: ADDITIONAL METADATA @@ -88,7 +88,7 @@ extern "C" { * SECTION 4: BACKWARD COMPATIBILITY */ -# define OPENSSL_VERSION_TEXT "OpenSSL 3.0.17 1 Jul 2025" +# define OPENSSL_VERSION_TEXT "OpenSSL 3.5.1 1 Jul 2025" /* Synthesize OPENSSL_VERSION_NUMBER with the layout 0xMNN00PPSL */ # ifdef OPENSSL_VERSION_PRE_RELEASE diff --git a/deps/openssl/config/archs/linux-armv4/asm/include/openssl/pkcs12.h b/deps/openssl/config/archs/linux-armv4/asm/include/openssl/pkcs12.h index c5e0cab06491ec..0809645dad0bbf 100644 --- a/deps/openssl/config/archs/linux-armv4/asm/include/openssl/pkcs12.h +++ b/deps/openssl/config/archs/linux-armv4/asm/include/openssl/pkcs12.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/pkcs12.h.in * - * Copyright 1999-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1999-2024 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -25,6 +25,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -41,6 +44,7 @@ extern "C" { # define PKCS12_MAC_KEY_LENGTH 20 +/* The macro is expected to be used only internally. Kept for backwards compatibility. */ # define PKCS12_SALT_LEN 8 /* It's not clear if these are actually needed... */ @@ -130,7 +134,9 @@ int PKCS12_SAFEBAG_get_bag_nid(const PKCS12_SAFEBAG *bag); const ASN1_TYPE *PKCS12_SAFEBAG_get0_bag_obj(const PKCS12_SAFEBAG *bag); const ASN1_OBJECT *PKCS12_SAFEBAG_get0_bag_type(const PKCS12_SAFEBAG *bag); +X509 *PKCS12_SAFEBAG_get1_cert_ex(const PKCS12_SAFEBAG *bag, OSSL_LIB_CTX *libctx, const char *propq); X509 *PKCS12_SAFEBAG_get1_cert(const PKCS12_SAFEBAG *bag); +X509_CRL *PKCS12_SAFEBAG_get1_crl_ex(const PKCS12_SAFEBAG *bag, OSSL_LIB_CTX *libctx, const char *propq); X509_CRL *PKCS12_SAFEBAG_get1_crl(const PKCS12_SAFEBAG *bag); const STACK_OF(PKCS12_SAFEBAG) * PKCS12_SAFEBAG_get0_safes(const PKCS12_SAFEBAG *bag); @@ -218,6 +224,7 @@ ASN1_TYPE *PKCS12_get_attr_gen(const STACK_OF(X509_ATTRIBUTE) *attrs, char *PKCS12_get_friendlyname(PKCS12_SAFEBAG *bag); const STACK_OF(X509_ATTRIBUTE) * PKCS12_SAFEBAG_get0_attrs(const PKCS12_SAFEBAG *bag); +void PKCS12_SAFEBAG_set0_attrs(PKCS12_SAFEBAG *bag, STACK_OF(X509_ATTRIBUTE) *attrs); unsigned char *PKCS12_pbe_crypt(const X509_ALGOR *algor, const char *pass, int passlen, const unsigned char *in, int inlen, @@ -285,6 +292,9 @@ int PKCS12_verify_mac(PKCS12 *p12, const char *pass, int passlen); int PKCS12_set_mac(PKCS12 *p12, const char *pass, int passlen, unsigned char *salt, int saltlen, int iter, const EVP_MD *md_type); +int PKCS12_set_pbmac1_pbkdf2(PKCS12 *p12, const char *pass, int passlen, + unsigned char *salt, int saltlen, int iter, + const EVP_MD *md_type, const char *prf_md_name); int PKCS12_setup_mac(PKCS12 *p12, int iter, unsigned char *salt, int saltlen, const EVP_MD *md_type); unsigned char *OPENSSL_asc2uni(const char *asc, int asclen, @@ -305,6 +315,7 @@ DECLARE_ASN1_ITEM(PKCS12_AUTHSAFES) void PKCS12_PBE_add(void); int PKCS12_parse(PKCS12 *p12, const char *pass, EVP_PKEY **pkey, X509 **cert, STACK_OF(X509) **ca); +typedef int PKCS12_create_cb(PKCS12_SAFEBAG *bag, void *cbarg); PKCS12 *PKCS12_create(const char *pass, const char *name, EVP_PKEY *pkey, X509 *cert, STACK_OF(X509) *ca, int nid_key, int nid_cert, int iter, int mac_iter, int keytype); @@ -312,6 +323,11 @@ PKCS12 *PKCS12_create_ex(const char *pass, const char *name, EVP_PKEY *pkey, X509 *cert, STACK_OF(X509) *ca, int nid_key, int nid_cert, int iter, int mac_iter, int keytype, OSSL_LIB_CTX *ctx, const char *propq); +PKCS12 *PKCS12_create_ex2(const char *pass, const char *name, EVP_PKEY *pkey, + X509 *cert, STACK_OF(X509) *ca, int nid_key, int nid_cert, + int iter, int mac_iter, int keytype, + OSSL_LIB_CTX *ctx, const char *propq, + PKCS12_create_cb *cb, void *cbarg); PKCS12_SAFEBAG *PKCS12_add_cert(STACK_OF(PKCS12_SAFEBAG) **pbags, X509 *cert); PKCS12_SAFEBAG *PKCS12_add_key(STACK_OF(PKCS12_SAFEBAG) **pbags, diff --git a/deps/openssl/config/archs/linux-armv4/asm/include/openssl/pkcs7.h b/deps/openssl/config/archs/linux-armv4/asm/include/openssl/pkcs7.h index 0ce79bf4fa160e..fa68462aff973b 100644 --- a/deps/openssl/config/archs/linux-armv4/asm/include/openssl/pkcs7.h +++ b/deps/openssl/config/archs/linux-armv4/asm/include/openssl/pkcs7.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/pkcs7.h.in * - * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -28,6 +28,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -131,8 +134,8 @@ SKM_DEFINE_STACK_OF_INTERNAL(PKCS7_RECIP_INFO, PKCS7_RECIP_INFO, PKCS7_RECIP_INF typedef struct pkcs7_signed_st { ASN1_INTEGER *version; /* version 1 */ STACK_OF(X509_ALGOR) *md_algs; /* md used */ - STACK_OF(X509) *cert; /* [ 0 ] */ - STACK_OF(X509_CRL) *crl; /* [ 1 ] */ + STACK_OF(X509) *cert; /* [ 0 ] */ /* name should be 'certificates' */ + STACK_OF(X509_CRL) *crl; /* [ 1 ] */ /* name should be 'crls' */ STACK_OF(PKCS7_SIGNER_INFO) *signer_info; struct pkcs7_st *contents; } PKCS7_SIGNED; @@ -158,8 +161,8 @@ typedef struct pkcs7_enveloped_st { typedef struct pkcs7_signedandenveloped_st { ASN1_INTEGER *version; /* version 1 */ STACK_OF(X509_ALGOR) *md_algs; /* md used */ - STACK_OF(X509) *cert; /* [ 0 ] */ - STACK_OF(X509_CRL) *crl; /* [ 1 ] */ + STACK_OF(X509) *cert; /* [ 0 ] */ /* name should be 'certificates' */ + STACK_OF(X509_CRL) *crl; /* [ 1 ] */ /* name should be 'crls' */ STACK_OF(PKCS7_SIGNER_INFO) *signer_info; PKCS7_ENC_CONTENT *enc_data; STACK_OF(PKCS7_RECIP_INFO) *recipientinfo; @@ -200,7 +203,7 @@ typedef struct pkcs7_st { /* NID_pkcs7_data */ ASN1_OCTET_STRING *data; /* NID_pkcs7_signed */ - PKCS7_SIGNED *sign; + PKCS7_SIGNED *sign; /* field name 'signed' would clash with C keyword */ /* NID_pkcs7_enveloped */ PKCS7_ENVELOPE *enveloped; /* NID_pkcs7_signedAndEnveloped */ @@ -341,13 +344,13 @@ int PKCS7_SIGNER_INFO_set(PKCS7_SIGNER_INFO *p7i, X509 *x509, EVP_PKEY *pkey, const EVP_MD *dgst); int PKCS7_SIGNER_INFO_sign(PKCS7_SIGNER_INFO *si); int PKCS7_add_signer(PKCS7 *p7, PKCS7_SIGNER_INFO *p7i); -int PKCS7_add_certificate(PKCS7 *p7, X509 *x509); -int PKCS7_add_crl(PKCS7 *p7, X509_CRL *x509); +int PKCS7_add_certificate(PKCS7 *p7, X509 *cert); +int PKCS7_add_crl(PKCS7 *p7, X509_CRL *crl); int PKCS7_content_new(PKCS7 *p7, int nid); int PKCS7_dataVerify(X509_STORE *cert_store, X509_STORE_CTX *ctx, BIO *bio, PKCS7 *p7, PKCS7_SIGNER_INFO *si); int PKCS7_signatureVerify(BIO *bio, PKCS7 *p7, PKCS7_SIGNER_INFO *si, - X509 *x509); + X509 *signer); BIO *PKCS7_dataInit(PKCS7 *p7, BIO *bio); int PKCS7_dataFinal(PKCS7 *p7, BIO *bio); diff --git a/deps/openssl/config/archs/linux-armv4/asm/include/openssl/ssl.h b/deps/openssl/config/archs/linux-armv4/asm/include/openssl/ssl.h index 3df725c56d6c5e..7e3d89c7ef3dc9 100644 --- a/deps/openssl/config/archs/linux-armv4/asm/include/openssl/ssl.h +++ b/deps/openssl/config/archs/linux-armv4/asm/include/openssl/ssl.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/ssl.h.in * - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved * Copyright 2005 Nokia. All rights reserved. * @@ -24,6 +24,7 @@ # endif # include +# include # include # include # include @@ -42,6 +43,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -231,10 +235,8 @@ typedef struct ssl_cipher_st SSL_CIPHER; typedef struct ssl_session_st SSL_SESSION; typedef struct tls_sigalgs_st TLS_SIGALGS; typedef struct ssl_conf_ctx_st SSL_CONF_CTX; -typedef struct ssl_comp_st SSL_COMP; STACK_OF(SSL_CIPHER); -STACK_OF(SSL_COMP); /* SRTP protection profiles for use with the use_srtp extension (RFC 5764)*/ typedef struct srtp_protection_profile_st { @@ -278,28 +280,31 @@ typedef int (*tls_session_secret_cb_fn)(SSL *s, void *secret, int *secret_len, /* Extension context codes */ /* This extension is only allowed in TLS */ -#define SSL_EXT_TLS_ONLY 0x0001 +#define SSL_EXT_TLS_ONLY 0x00001 /* This extension is only allowed in DTLS */ -#define SSL_EXT_DTLS_ONLY 0x0002 +#define SSL_EXT_DTLS_ONLY 0x00002 /* Some extensions may be allowed in DTLS but we don't implement them for it */ -#define SSL_EXT_TLS_IMPLEMENTATION_ONLY 0x0004 +#define SSL_EXT_TLS_IMPLEMENTATION_ONLY 0x00004 /* Most extensions are not defined for SSLv3 but EXT_TYPE_renegotiate is */ -#define SSL_EXT_SSL3_ALLOWED 0x0008 +#define SSL_EXT_SSL3_ALLOWED 0x00008 /* Extension is only defined for TLS1.2 and below */ -#define SSL_EXT_TLS1_2_AND_BELOW_ONLY 0x0010 +#define SSL_EXT_TLS1_2_AND_BELOW_ONLY 0x00010 /* Extension is only defined for TLS1.3 and above */ -#define SSL_EXT_TLS1_3_ONLY 0x0020 +#define SSL_EXT_TLS1_3_ONLY 0x00020 /* Ignore this extension during parsing if we are resuming */ -#define SSL_EXT_IGNORE_ON_RESUMPTION 0x0040 -#define SSL_EXT_CLIENT_HELLO 0x0080 +#define SSL_EXT_IGNORE_ON_RESUMPTION 0x00040 +#define SSL_EXT_CLIENT_HELLO 0x00080 /* Really means TLS1.2 or below */ -#define SSL_EXT_TLS1_2_SERVER_HELLO 0x0100 -#define SSL_EXT_TLS1_3_SERVER_HELLO 0x0200 -#define SSL_EXT_TLS1_3_ENCRYPTED_EXTENSIONS 0x0400 -#define SSL_EXT_TLS1_3_HELLO_RETRY_REQUEST 0x0800 -#define SSL_EXT_TLS1_3_CERTIFICATE 0x1000 -#define SSL_EXT_TLS1_3_NEW_SESSION_TICKET 0x2000 -#define SSL_EXT_TLS1_3_CERTIFICATE_REQUEST 0x4000 +#define SSL_EXT_TLS1_2_SERVER_HELLO 0x00100 +#define SSL_EXT_TLS1_3_SERVER_HELLO 0x00200 +#define SSL_EXT_TLS1_3_ENCRYPTED_EXTENSIONS 0x00400 +#define SSL_EXT_TLS1_3_HELLO_RETRY_REQUEST 0x00800 +#define SSL_EXT_TLS1_3_CERTIFICATE 0x01000 +#define SSL_EXT_TLS1_3_NEW_SESSION_TICKET 0x02000 +#define SSL_EXT_TLS1_3_CERTIFICATE_REQUEST 0x04000 +#define SSL_EXT_TLS1_3_CERTIFICATE_COMPRESSION 0x08000 +/* When sending a raw public key in a certificate message */ +#define SSL_EXT_TLS1_3_RAW_PUBLIC_KEY 0x10000 /* Typedefs for handling custom extensions */ @@ -404,7 +409,7 @@ typedef int (*SSL_async_callback_fn)(SSL *s, void *arg); */ # define SSL_OP_CIPHER_SERVER_PREFERENCE SSL_OP_BIT(22) /* - * If set, a server will allow a client to issue a SSLv3.0 version + * If set, a server will allow a client to issue an SSLv3.0 version * number as latest version supported in the premaster secret, even when * TLSv1.0 (version 3.1) was announced in the client hello. Normally * this is forbidden to prevent version rollback attacks. @@ -430,6 +435,19 @@ typedef int (*SSL_async_callback_fn)(SSL *s, void *arg); * interoperability with CryptoPro CSP 3.x */ # define SSL_OP_CRYPTOPRO_TLSEXT_BUG SSL_OP_BIT(31) +/* + * Disable RFC8879 certificate compression + * SSL_OP_NO_TX_CERTIFICATE_COMPRESSION: don't send compressed certificates, + * and ignore the extension when received. + * SSL_OP_NO_RX_CERTIFICATE_COMPRESSION: don't send the extension, and + * subsequently indicating that receiving is not supported + */ +# define SSL_OP_NO_TX_CERTIFICATE_COMPRESSION SSL_OP_BIT(32) +# define SSL_OP_NO_RX_CERTIFICATE_COMPRESSION SSL_OP_BIT(33) + /* Enable KTLS TX zerocopy on Linux */ +# define SSL_OP_ENABLE_KTLS_TX_ZEROCOPY_SENDFILE SSL_OP_BIT(34) + +#define SSL_OP_PREFER_NO_DHE_KEX SSL_OP_BIT(35) /* * Option "collections." @@ -574,6 +592,8 @@ typedef int (*SSL_async_callback_fn)(SSL *s, void *arg); # define CERT_PKEY_CERT_TYPE 0x400 /* Cert chain suitable to Suite B */ # define CERT_PKEY_SUITEB 0x800 +/* Cert pkey valid for raw public key use */ +# define CERT_PKEY_RPK 0x1000 # define SSL_CONF_FLAG_CMDLINE 0x1 # define SSL_CONF_FLAG_FILE 0x2 @@ -965,6 +985,7 @@ uint32_t SSL_get_recv_max_early_data(const SSL *s); # include /* This is mostly sslv3 with a few tweaks */ # include /* Datagram TLS */ # include /* Support for the use_srtp extension */ +# include #ifdef __cplusplus extern "C" { @@ -1000,32 +1021,6 @@ SKM_DEFINE_STACK_OF_INTERNAL(SSL_CIPHER, const SSL_CIPHER, SSL_CIPHER) #define sk_SSL_CIPHER_dup(sk) ((STACK_OF(SSL_CIPHER) *)OPENSSL_sk_dup(ossl_check_const_SSL_CIPHER_sk_type(sk))) #define sk_SSL_CIPHER_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(SSL_CIPHER) *)OPENSSL_sk_deep_copy(ossl_check_const_SSL_CIPHER_sk_type(sk), ossl_check_SSL_CIPHER_copyfunc_type(copyfunc), ossl_check_SSL_CIPHER_freefunc_type(freefunc))) #define sk_SSL_CIPHER_set_cmp_func(sk, cmp) ((sk_SSL_CIPHER_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_SSL_CIPHER_sk_type(sk), ossl_check_SSL_CIPHER_compfunc_type(cmp))) -SKM_DEFINE_STACK_OF_INTERNAL(SSL_COMP, SSL_COMP, SSL_COMP) -#define sk_SSL_COMP_num(sk) OPENSSL_sk_num(ossl_check_const_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_value(sk, idx) ((SSL_COMP *)OPENSSL_sk_value(ossl_check_const_SSL_COMP_sk_type(sk), (idx))) -#define sk_SSL_COMP_new(cmp) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new(ossl_check_SSL_COMP_compfunc_type(cmp))) -#define sk_SSL_COMP_new_null() ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new_null()) -#define sk_SSL_COMP_new_reserve(cmp, n) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new_reserve(ossl_check_SSL_COMP_compfunc_type(cmp), (n))) -#define sk_SSL_COMP_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_SSL_COMP_sk_type(sk), (n)) -#define sk_SSL_COMP_free(sk) OPENSSL_sk_free(ossl_check_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_zero(sk) OPENSSL_sk_zero(ossl_check_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_delete(sk, i) ((SSL_COMP *)OPENSSL_sk_delete(ossl_check_SSL_COMP_sk_type(sk), (i))) -#define sk_SSL_COMP_delete_ptr(sk, ptr) ((SSL_COMP *)OPENSSL_sk_delete_ptr(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr))) -#define sk_SSL_COMP_push(sk, ptr) OPENSSL_sk_push(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) -#define sk_SSL_COMP_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) -#define sk_SSL_COMP_pop(sk) ((SSL_COMP *)OPENSSL_sk_pop(ossl_check_SSL_COMP_sk_type(sk))) -#define sk_SSL_COMP_shift(sk) ((SSL_COMP *)OPENSSL_sk_shift(ossl_check_SSL_COMP_sk_type(sk))) -#define sk_SSL_COMP_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_SSL_COMP_sk_type(sk),ossl_check_SSL_COMP_freefunc_type(freefunc)) -#define sk_SSL_COMP_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr), (idx)) -#define sk_SSL_COMP_set(sk, idx, ptr) ((SSL_COMP *)OPENSSL_sk_set(ossl_check_SSL_COMP_sk_type(sk), (idx), ossl_check_SSL_COMP_type(ptr))) -#define sk_SSL_COMP_find(sk, ptr) OPENSSL_sk_find(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) -#define sk_SSL_COMP_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) -#define sk_SSL_COMP_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr), pnum) -#define sk_SSL_COMP_sort(sk) OPENSSL_sk_sort(ossl_check_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_dup(sk) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_dup(ossl_check_const_SSL_COMP_sk_type(sk))) -#define sk_SSL_COMP_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_deep_copy(ossl_check_const_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_copyfunc_type(copyfunc), ossl_check_SSL_COMP_freefunc_type(freefunc))) -#define sk_SSL_COMP_set_cmp_func(sk, cmp) ((sk_SSL_COMP_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_compfunc_type(cmp))) /* compatibility */ @@ -1066,6 +1061,7 @@ typedef enum { DTLS_ST_CR_HELLO_VERIFY_REQUEST, TLS_ST_CR_SRVR_HELLO, TLS_ST_CR_CERT, + TLS_ST_CR_COMP_CERT, TLS_ST_CR_CERT_STATUS, TLS_ST_CR_KEY_EXCH, TLS_ST_CR_CERT_REQ, @@ -1075,6 +1071,7 @@ typedef enum { TLS_ST_CR_FINISHED, TLS_ST_CW_CLNT_HELLO, TLS_ST_CW_CERT, + TLS_ST_CW_COMP_CERT, TLS_ST_CW_KEY_EXCH, TLS_ST_CW_CERT_VRFY, TLS_ST_CW_CHANGE, @@ -1085,10 +1082,12 @@ typedef enum { DTLS_ST_SW_HELLO_VERIFY_REQUEST, TLS_ST_SW_SRVR_HELLO, TLS_ST_SW_CERT, + TLS_ST_SW_COMP_CERT, TLS_ST_SW_KEY_EXCH, TLS_ST_SW_CERT_REQ, TLS_ST_SW_SRVR_DONE, TLS_ST_SR_CERT, + TLS_ST_SR_COMP_CERT, TLS_ST_SR_KEY_EXCH, TLS_ST_SR_CERT_VRFY, TLS_ST_SR_NEXT_PROTO, @@ -1380,9 +1379,13 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) # define SSL_CTRL_GET_SIGNATURE_NID 132 # define SSL_CTRL_GET_TMP_KEY 133 # define SSL_CTRL_GET_NEGOTIATED_GROUP 134 +# define SSL_CTRL_GET_IANA_GROUPS 135 # define SSL_CTRL_SET_RETRY_VERIFY 136 # define SSL_CTRL_GET_VERIFY_CERT_STORE 137 # define SSL_CTRL_GET_CHAIN_CERT_STORE 138 +# define SSL_CTRL_GET0_IMPLEMENTED_GROUPS 139 +# define SSL_CTRL_GET_SIGNATURE_NAME 140 +# define SSL_CTRL_GET_PEER_SIGNATURE_NAME 141 # define SSL_CERT_SET_FIRST 1 # define SSL_CERT_SET_NEXT 2 # define SSL_CERT_SET_SERVER 3 @@ -1485,10 +1488,15 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) # define SSL_get1_groups(s, glist) \ SSL_ctrl(s,SSL_CTRL_GET_GROUPS,0,(int*)(glist)) +# define SSL_get0_iana_groups(s, plst) \ + SSL_ctrl(s,SSL_CTRL_GET_IANA_GROUPS,0,(uint16_t **)(plst)) # define SSL_CTX_set1_groups(ctx, glist, glistlen) \ SSL_CTX_ctrl(ctx,SSL_CTRL_SET_GROUPS,glistlen,(int *)(glist)) # define SSL_CTX_set1_groups_list(ctx, s) \ SSL_CTX_ctrl(ctx,SSL_CTRL_SET_GROUPS_LIST,0,(char *)(s)) +# define SSL_CTX_get0_implemented_groups(ctx, all, out) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_GET0_IMPLEMENTED_GROUPS, all, \ + (STACK_OF(OPENSSL_CSTRING) *)(out)) # define SSL_set1_groups(s, glist, glistlen) \ SSL_ctrl(s,SSL_CTRL_SET_GROUPS,glistlen,(char *)(glist)) # define SSL_set1_groups_list(s, str) \ @@ -1520,8 +1528,12 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) (char *)(clist)) # define SSL_set1_client_certificate_types(s, clist, clistlen) \ SSL_ctrl(s,SSL_CTRL_SET_CLIENT_CERT_TYPES,clistlen,(char *)(clist)) +# define SSL_get0_signature_name(s, str) \ + SSL_ctrl(s,SSL_CTRL_GET_SIGNATURE_NAME,0,(1?(str):(const char **)NULL)) # define SSL_get_signature_nid(s, pn) \ SSL_ctrl(s,SSL_CTRL_GET_SIGNATURE_NID,0,pn) +# define SSL_get0_peer_signature_name(s, str) \ + SSL_ctrl(s,SSL_CTRL_GET_PEER_SIGNATURE_NAME,0,(1?(str):(const char **)NULL)) # define SSL_get_peer_signature_nid(s, pn) \ SSL_ctrl(s,SSL_CTRL_GET_PEER_SIGNATURE_NID,0,pn) # define SSL_get_peer_tmp_key(s, pk) \ @@ -1549,6 +1561,7 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) # define SSL_get_max_proto_version(s) \ SSL_ctrl(s, SSL_CTRL_GET_MAX_PROTO_VERSION, 0, NULL) +const char *SSL_get0_group_name(SSL *s); const char *SSL_group_to_name(SSL *s, int id); /* Backwards compatibility, original 1.1.0 names */ @@ -1613,7 +1626,11 @@ void SSL_CTX_set1_cert_store(SSL_CTX *, X509_STORE *); __owur int SSL_want(const SSL *s); __owur int SSL_clear(SSL *s); +#ifndef OPENSSL_NO_DEPRECATED_3_4 +OSSL_DEPRECATEDIN_3_4_FOR("not Y2038-safe, replace with SSL_CTX_flush_sessions_ex()") void SSL_CTX_flush_sessions(SSL_CTX *ctx, long tm); +#endif +void SSL_CTX_flush_sessions_ex(SSL_CTX *ctx, time_t tm); __owur const SSL_CIPHER *SSL_get_current_cipher(const SSL *s); __owur const SSL_CIPHER *SSL_get_pending_cipher(const SSL *s); @@ -1725,13 +1742,21 @@ __owur const char *SSL_state_string(const SSL *s); __owur const char *SSL_rstate_string(const SSL *s); __owur const char *SSL_state_string_long(const SSL *s); __owur const char *SSL_rstate_string_long(const SSL *s); + +#ifndef OPENSSL_NO_DEPRECATED_3_4 +OSSL_DEPRECATEDIN_3_4_FOR("not Y2038-safe, replace with SSL_SESSION_get_time_ex()") __owur long SSL_SESSION_get_time(const SSL_SESSION *s); +OSSL_DEPRECATEDIN_3_4_FOR("not Y2038-safe, replace with SSL_SESSION_set_time_ex()") __owur long SSL_SESSION_set_time(SSL_SESSION *s, long t); +#endif __owur long SSL_SESSION_get_timeout(const SSL_SESSION *s); __owur long SSL_SESSION_set_timeout(SSL_SESSION *s, long t); __owur int SSL_SESSION_get_protocol_version(const SSL_SESSION *s); __owur int SSL_SESSION_set_protocol_version(SSL_SESSION *s, int version); +__owur time_t SSL_SESSION_get_time_ex(const SSL_SESSION *s); +__owur time_t SSL_SESSION_set_time_ex(SSL_SESSION *s, time_t t); + __owur const char *SSL_SESSION_get0_hostname(const SSL_SESSION *s); __owur int SSL_SESSION_set1_hostname(SSL_SESSION *s, const char *hostname); void SSL_SESSION_get0_alpn_selected(const SSL_SESSION *s, @@ -1783,6 +1808,9 @@ __owur int SSL_has_matching_session_id(const SSL *s, unsigned int id_len); SSL_SESSION *d2i_SSL_SESSION(SSL_SESSION **a, const unsigned char **pp, long length); +SSL_SESSION *d2i_SSL_SESSION_ex(SSL_SESSION **a, const unsigned char **pp, + long length, OSSL_LIB_CTX *libctx, + const char *propq); # ifdef OPENSSL_X509_H __owur X509 *SSL_get0_peer_certificate(const SSL *s); @@ -1840,6 +1868,8 @@ __owur int SSL_CTX_set_session_id_context(SSL_CTX *ctx, SSL *SSL_new(SSL_CTX *ctx); int SSL_up_ref(SSL *s); int SSL_is_dtls(const SSL *s); +int SSL_is_tls(const SSL *s); +int SSL_is_quic(const SSL *s); __owur int SSL_set_session_id_context(SSL *ssl, const unsigned char *sid_ctx, unsigned int sid_ctx_len); @@ -1848,8 +1878,8 @@ __owur int SSL_set_purpose(SSL *ssl, int purpose); __owur int SSL_CTX_set_trust(SSL_CTX *ctx, int trust); __owur int SSL_set_trust(SSL *ssl, int trust); -__owur int SSL_set1_host(SSL *s, const char *hostname); -__owur int SSL_add1_host(SSL *s, const char *hostname); +__owur int SSL_set1_host(SSL *s, const char *host); +__owur int SSL_add1_host(SSL *s, const char *host); __owur const char *SSL_get0_peername(SSL *s); void SSL_set_hostflags(SSL *s, unsigned int flags); @@ -1924,6 +1954,11 @@ OSSL_DEPRECATEDIN_3_0 __owur char *SSL_get_srp_userinfo(SSL *s); typedef int (*SSL_client_hello_cb_fn) (SSL *s, int *al, void *arg); void SSL_CTX_set_client_hello_cb(SSL_CTX *c, SSL_client_hello_cb_fn cb, void *arg); +typedef int (*SSL_new_pending_conn_cb_fn) (SSL_CTX *ctx, SSL *new_ssl, + void *arg); +void SSL_CTX_set_new_pending_conn_cb(SSL_CTX *c, SSL_new_pending_conn_cb_fn cb, + void *arg); + int SSL_client_hello_isv2(SSL *s); unsigned int SSL_client_hello_get0_legacy_version(SSL *s); size_t SSL_client_hello_get0_random(SSL *s, const unsigned char **out); @@ -1932,6 +1967,8 @@ size_t SSL_client_hello_get0_ciphers(SSL *s, const unsigned char **out); size_t SSL_client_hello_get0_compression_methods(SSL *s, const unsigned char **out); int SSL_client_hello_get1_extensions_present(SSL *s, int **out, size_t *outlen); +int SSL_client_hello_get_extension_order(SSL *s, uint16_t *exts, + size_t *num_exts); int SSL_client_hello_get0_ext(SSL *s, unsigned int type, const unsigned char **out, size_t *outlen); @@ -1978,6 +2015,12 @@ long SSL_callback_ctrl(SSL *, int, void (*)(void)); long SSL_CTX_ctrl(SSL_CTX *ctx, int cmd, long larg, void *parg); long SSL_CTX_callback_ctrl(SSL_CTX *, int, void (*)(void)); +# define SSL_WRITE_FLAG_CONCLUDE (1U << 0) + +__owur int SSL_write_ex2(SSL *s, const void *buf, size_t num, + uint64_t flags, + size_t *written); + # define SSL_EARLY_DATA_NOT_SENT 0 # define SSL_EARLY_DATA_REJECTED 1 # define SSL_EARLY_DATA_ACCEPTED 2 @@ -1986,6 +2029,7 @@ __owur int SSL_get_early_data_status(const SSL *s); __owur int SSL_get_error(const SSL *s, int ret_code); __owur const char *SSL_get_version(const SSL *s); +__owur int SSL_get_handshake_rtt(const SSL *s, uint64_t *rtt); /* This sets the 'default' SSL version that SSL_new() will create */ # ifndef OPENSSL_NO_DEPRECATED_3_0 @@ -2281,6 +2325,8 @@ void SSL_CTX_set_record_padding_callback(SSL_CTX *ctx, void SSL_CTX_set_record_padding_callback_arg(SSL_CTX *ctx, void *arg); void *SSL_CTX_get_record_padding_callback_arg(const SSL_CTX *ctx); int SSL_CTX_set_block_padding(SSL_CTX *ctx, size_t block_size); +int SSL_CTX_set_block_padding_ex(SSL_CTX *ctx, size_t app_block_size, + size_t hs_block_size); int SSL_set_record_padding_callback(SSL *ssl, size_t (*cb) (SSL *ssl, int type, @@ -2288,12 +2334,255 @@ int SSL_set_record_padding_callback(SSL *ssl, void SSL_set_record_padding_callback_arg(SSL *ssl, void *arg); void *SSL_get_record_padding_callback_arg(const SSL *ssl); int SSL_set_block_padding(SSL *ssl, size_t block_size); - +int SSL_set_block_padding_ex(SSL *ssl, size_t app_block_size, + size_t hs_block_size); int SSL_set_num_tickets(SSL *s, size_t num_tickets); size_t SSL_get_num_tickets(const SSL *s); int SSL_CTX_set_num_tickets(SSL_CTX *ctx, size_t num_tickets); size_t SSL_CTX_get_num_tickets(const SSL_CTX *ctx); +/* QUIC support */ +int SSL_handle_events(SSL *s); +__owur int SSL_get_event_timeout(SSL *s, struct timeval *tv, int *is_infinite); +__owur int SSL_get_rpoll_descriptor(SSL *s, BIO_POLL_DESCRIPTOR *desc); +__owur int SSL_get_wpoll_descriptor(SSL *s, BIO_POLL_DESCRIPTOR *desc); +__owur int SSL_net_read_desired(SSL *s); +__owur int SSL_net_write_desired(SSL *s); +__owur int SSL_set_blocking_mode(SSL *s, int blocking); +__owur int SSL_get_blocking_mode(SSL *s); +__owur int SSL_set1_initial_peer_addr(SSL *s, const BIO_ADDR *peer_addr); +__owur SSL *SSL_get0_connection(SSL *s); +__owur int SSL_is_connection(SSL *s); + +__owur int SSL_is_listener(SSL *ssl); +__owur SSL *SSL_get0_listener(SSL *s); +#define SSL_LISTENER_FLAG_NO_VALIDATE (1UL << 1) +__owur SSL *SSL_new_listener(SSL_CTX *ctx, uint64_t flags); +__owur SSL *SSL_new_listener_from(SSL *ssl, uint64_t flags); +__owur SSL *SSL_new_from_listener(SSL *ssl, uint64_t flags); +#define SSL_ACCEPT_CONNECTION_NO_BLOCK (1UL << 0) +__owur SSL *SSL_accept_connection(SSL *ssl, uint64_t flags); +__owur size_t SSL_get_accept_connection_queue_len(SSL *ssl); +__owur int SSL_listen(SSL *ssl); + +__owur int SSL_is_domain(SSL *s); +__owur SSL *SSL_get0_domain(SSL *s); +__owur SSL *SSL_new_domain(SSL_CTX *ctx, uint64_t flags); + +#define SSL_DOMAIN_FLAG_SINGLE_THREAD (1U << 0) +#define SSL_DOMAIN_FLAG_MULTI_THREAD (1U << 1) +#define SSL_DOMAIN_FLAG_THREAD_ASSISTED (1U << 2) +#define SSL_DOMAIN_FLAG_BLOCKING (1U << 3) +#define SSL_DOMAIN_FLAG_LEGACY_BLOCKING (1U << 4) + +__owur int SSL_CTX_set_domain_flags(SSL_CTX *ctx, uint64_t domain_flags); +__owur int SSL_CTX_get_domain_flags(const SSL_CTX *ctx, uint64_t *domain_flags); +__owur int SSL_get_domain_flags(const SSL *ssl, uint64_t *domain_flags); + +#define SSL_STREAM_TYPE_NONE 0 +#define SSL_STREAM_TYPE_READ (1U << 0) +#define SSL_STREAM_TYPE_WRITE (1U << 1) +#define SSL_STREAM_TYPE_BIDI (SSL_STREAM_TYPE_READ | SSL_STREAM_TYPE_WRITE) +__owur int SSL_get_stream_type(SSL *s); + +__owur uint64_t SSL_get_stream_id(SSL *s); +__owur int SSL_is_stream_local(SSL *s); + +#define SSL_DEFAULT_STREAM_MODE_NONE 0 +#define SSL_DEFAULT_STREAM_MODE_AUTO_BIDI 1 +#define SSL_DEFAULT_STREAM_MODE_AUTO_UNI 2 +__owur int SSL_set_default_stream_mode(SSL *s, uint32_t mode); + +#define SSL_STREAM_FLAG_UNI (1U << 0) +#define SSL_STREAM_FLAG_NO_BLOCK (1U << 1) +#define SSL_STREAM_FLAG_ADVANCE (1U << 2) +__owur SSL *SSL_new_stream(SSL *s, uint64_t flags); + +#define SSL_INCOMING_STREAM_POLICY_AUTO 0 +#define SSL_INCOMING_STREAM_POLICY_ACCEPT 1 +#define SSL_INCOMING_STREAM_POLICY_REJECT 2 +__owur int SSL_set_incoming_stream_policy(SSL *s, int policy, uint64_t aec); + +#define SSL_ACCEPT_STREAM_NO_BLOCK (1U << 0) +__owur SSL *SSL_accept_stream(SSL *s, uint64_t flags); +__owur size_t SSL_get_accept_stream_queue_len(SSL *s); + +# ifndef OPENSSL_NO_QUIC +__owur int SSL_inject_net_dgram(SSL *s, const unsigned char *buf, + size_t buf_len, + const BIO_ADDR *peer, + const BIO_ADDR *local); +# endif + +typedef struct ssl_shutdown_ex_args_st { + uint64_t quic_error_code; + const char *quic_reason; +} SSL_SHUTDOWN_EX_ARGS; + +#define SSL_SHUTDOWN_FLAG_RAPID (1U << 0) +#define SSL_SHUTDOWN_FLAG_NO_STREAM_FLUSH (1U << 1) +#define SSL_SHUTDOWN_FLAG_NO_BLOCK (1U << 2) +#define SSL_SHUTDOWN_FLAG_WAIT_PEER (1U << 3) + +__owur int SSL_shutdown_ex(SSL *ssl, uint64_t flags, + const SSL_SHUTDOWN_EX_ARGS *args, + size_t args_len); + +__owur int SSL_stream_conclude(SSL *ssl, uint64_t flags); + +typedef struct ssl_stream_reset_args_st { + uint64_t quic_error_code; +} SSL_STREAM_RESET_ARGS; + +__owur int SSL_stream_reset(SSL *ssl, + const SSL_STREAM_RESET_ARGS *args, + size_t args_len); + +#define SSL_STREAM_STATE_NONE 0 +#define SSL_STREAM_STATE_OK 1 +#define SSL_STREAM_STATE_WRONG_DIR 2 +#define SSL_STREAM_STATE_FINISHED 3 +#define SSL_STREAM_STATE_RESET_LOCAL 4 +#define SSL_STREAM_STATE_RESET_REMOTE 5 +#define SSL_STREAM_STATE_CONN_CLOSED 6 +__owur int SSL_get_stream_read_state(SSL *ssl); +__owur int SSL_get_stream_write_state(SSL *ssl); + +__owur int SSL_get_stream_read_error_code(SSL *ssl, uint64_t *app_error_code); +__owur int SSL_get_stream_write_error_code(SSL *ssl, uint64_t *app_error_code); + +#define SSL_CONN_CLOSE_FLAG_LOCAL (1U << 0) +#define SSL_CONN_CLOSE_FLAG_TRANSPORT (1U << 1) + +typedef struct ssl_conn_close_info_st { + uint64_t error_code, frame_type; + const char *reason; + size_t reason_len; + uint32_t flags; +} SSL_CONN_CLOSE_INFO; + +__owur int SSL_get_conn_close_info(SSL *ssl, + SSL_CONN_CLOSE_INFO *info, + size_t info_len); + +# define SSL_VALUE_CLASS_GENERIC 0 +# define SSL_VALUE_CLASS_FEATURE_REQUEST 1 +# define SSL_VALUE_CLASS_FEATURE_PEER_REQUEST 2 +# define SSL_VALUE_CLASS_FEATURE_NEGOTIATED 3 + +# define SSL_VALUE_NONE 0 +# define SSL_VALUE_QUIC_STREAM_BIDI_LOCAL_AVAIL 1 +# define SSL_VALUE_QUIC_STREAM_BIDI_REMOTE_AVAIL 2 +# define SSL_VALUE_QUIC_STREAM_UNI_LOCAL_AVAIL 3 +# define SSL_VALUE_QUIC_STREAM_UNI_REMOTE_AVAIL 4 +# define SSL_VALUE_QUIC_IDLE_TIMEOUT 5 +# define SSL_VALUE_EVENT_HANDLING_MODE 6 +# define SSL_VALUE_STREAM_WRITE_BUF_SIZE 7 +# define SSL_VALUE_STREAM_WRITE_BUF_USED 8 +# define SSL_VALUE_STREAM_WRITE_BUF_AVAIL 9 + +# define SSL_VALUE_EVENT_HANDLING_MODE_INHERIT 0 +# define SSL_VALUE_EVENT_HANDLING_MODE_IMPLICIT 1 +# define SSL_VALUE_EVENT_HANDLING_MODE_EXPLICIT 2 + +int SSL_get_value_uint(SSL *s, uint32_t class_, uint32_t id, uint64_t *v); +int SSL_set_value_uint(SSL *s, uint32_t class_, uint32_t id, uint64_t v); + +# define SSL_get_generic_value_uint(ssl, id, v) \ + SSL_get_value_uint((ssl), SSL_VALUE_CLASS_GENERIC, (id), (v)) +# define SSL_set_generic_value_uint(ssl, id, v) \ + SSL_set_value_uint((ssl), SSL_VALUE_CLASS_GENERIC, (id), (v)) +# define SSL_get_feature_request_uint(ssl, id, v) \ + SSL_get_value_uint((ssl), SSL_VALUE_CLASS_FEATURE_REQUEST, (id), (v)) +# define SSL_set_feature_request_uint(ssl, id, v) \ + SSL_set_value_uint((ssl), SSL_VALUE_CLASS_FEATURE_REQUEST, (id), (v)) +# define SSL_get_feature_peer_request_uint(ssl, id, v) \ + SSL_get_value_uint((ssl), SSL_VALUE_CLASS_FEATURE_PEER_REQUEST, (id), (v)) +# define SSL_get_feature_negotiated_uint(ssl, id, v) \ + SSL_get_value_uint((ssl), SSL_VALUE_CLASS_FEATURE_NEGOTIATED, (id), (v)) + +# define SSL_get_quic_stream_bidi_local_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_QUIC_STREAM_BIDI_LOCAL_AVAIL, \ + (value)) +# define SSL_get_quic_stream_bidi_remote_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_QUIC_STREAM_BIDI_REMOTE_AVAIL, \ + (value)) +# define SSL_get_quic_stream_uni_local_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_QUIC_STREAM_UNI_LOCAL_AVAIL, \ + (value)) +# define SSL_get_quic_stream_uni_remote_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_QUIC_STREAM_UNI_REMOTE_AVAIL, \ + (value)) + +# define SSL_get_event_handling_mode(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_EVENT_HANDLING_MODE, \ + (value)) +# define SSL_set_event_handling_mode(ssl, value) \ + SSL_set_generic_value_uint((ssl), SSL_VALUE_EVENT_HANDLING_MODE, \ + (value)) + +# define SSL_get_stream_write_buf_size(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_STREAM_WRITE_BUF_SIZE, \ + (value)) +# define SSL_get_stream_write_buf_used(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_STREAM_WRITE_BUF_USED, \ + (value)) +# define SSL_get_stream_write_buf_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_STREAM_WRITE_BUF_AVAIL, \ + (value)) + +# define SSL_POLL_EVENT_NONE 0 + +# define SSL_POLL_EVENT_F (1U << 0) /* F (Failure) */ +# define SSL_POLL_EVENT_EL (1U << 1) /* EL (Exception on Listener) */ +# define SSL_POLL_EVENT_EC (1U << 2) /* EC (Exception on Conn) */ +# define SSL_POLL_EVENT_ECD (1U << 3) /* ECD (Exception on Conn Drained) */ +# define SSL_POLL_EVENT_ER (1U << 4) /* ER (Exception on Read) */ +# define SSL_POLL_EVENT_EW (1U << 5) /* EW (Exception on Write) */ +# define SSL_POLL_EVENT_R (1U << 6) /* R (Readable) */ +# define SSL_POLL_EVENT_W (1U << 7) /* W (Writable) */ +# define SSL_POLL_EVENT_IC (1U << 8) /* IC (Incoming Connection) */ +# define SSL_POLL_EVENT_ISB (1U << 9) /* ISB (Incoming Stream: Bidi) */ +# define SSL_POLL_EVENT_ISU (1U << 10) /* ISU (Incoming Stream: Uni) */ +# define SSL_POLL_EVENT_OSB (1U << 11) /* OSB (Outgoing Stream: Bidi) */ +# define SSL_POLL_EVENT_OSU (1U << 12) /* OSU (Outgoing Stream: Uni) */ + +# define SSL_POLL_EVENT_RW (SSL_POLL_EVENT_R | SSL_POLL_EVENT_W) +# define SSL_POLL_EVENT_RE (SSL_POLL_EVENT_R | SSL_POLL_EVENT_ER) +# define SSL_POLL_EVENT_WE (SSL_POLL_EVENT_W | SSL_POLL_EVENT_EW) +# define SSL_POLL_EVENT_RWE (SSL_POLL_EVENT_RE | SSL_POLL_EVENT_WE) +# define SSL_POLL_EVENT_E (SSL_POLL_EVENT_EL | SSL_POLL_EVENT_EC \ + | SSL_POLL_EVENT_ER | SSL_POLL_EVENT_EW) +# define SSL_POLL_EVENT_IS (SSL_POLL_EVENT_ISB | SSL_POLL_EVENT_ISU) +# define SSL_POLL_EVENT_ISE (SSL_POLL_EVENT_IS | SSL_POLL_EVENT_EC) +# define SSL_POLL_EVENT_I (SSL_POLL_EVENT_IS | SSL_POLL_EVENT_IC) +# define SSL_POLL_EVENT_OS (SSL_POLL_EVENT_OSB | SSL_POLL_EVENT_OSU) +# define SSL_POLL_EVENT_OSE (SSL_POLL_EVENT_OS | SSL_POLL_EVENT_EC) + +typedef struct ssl_poll_item_st { + BIO_POLL_DESCRIPTOR desc; + uint64_t events, revents; +} SSL_POLL_ITEM; + +# define SSL_POLL_FLAG_NO_HANDLE_EVENTS (1U << 0) + +__owur int SSL_poll(SSL_POLL_ITEM *items, + size_t num_items, + size_t stride, + const struct timeval *timeout, + uint64_t flags, + size_t *result_count); + +static ossl_inline ossl_unused BIO_POLL_DESCRIPTOR +SSL_as_poll_descriptor(SSL *s) +{ + BIO_POLL_DESCRIPTOR d; + + d.type = BIO_POLL_DESCRIPTOR_TYPE_SSL; + d.value.ssl = s; + return d; +} + # ifndef OPENSSL_NO_DEPRECATED_1_1_0 # define SSL_cache_hit(s) SSL_session_reused(s) # endif @@ -2593,6 +2882,51 @@ void SSL_set_allow_early_data_cb(SSL *s, const char *OSSL_default_cipher_list(void); const char *OSSL_default_ciphersuites(void); +/* RFC8879 Certificate compression APIs */ + +int SSL_CTX_compress_certs(SSL_CTX *ctx, int alg); +int SSL_compress_certs(SSL *ssl, int alg); + +int SSL_CTX_set1_cert_comp_preference(SSL_CTX *ctx, int *algs, size_t len); +int SSL_set1_cert_comp_preference(SSL *ssl, int *algs, size_t len); + +int SSL_CTX_set1_compressed_cert(SSL_CTX *ctx, int algorithm, unsigned char *comp_data, + size_t comp_length, size_t orig_length); +int SSL_set1_compressed_cert(SSL *ssl, int algorithm, unsigned char *comp_data, + size_t comp_length, size_t orig_length); +size_t SSL_CTX_get1_compressed_cert(SSL_CTX *ctx, int alg, unsigned char **data, size_t *orig_len); +size_t SSL_get1_compressed_cert(SSL *ssl, int alg, unsigned char **data, size_t *orig_len); + +__owur int SSL_add_expected_rpk(SSL *s, EVP_PKEY *rpk); +__owur EVP_PKEY *SSL_get0_peer_rpk(const SSL *s); +__owur EVP_PKEY *SSL_SESSION_get0_peer_rpk(SSL_SESSION *s); +__owur int SSL_get_negotiated_client_cert_type(const SSL *s); +__owur int SSL_get_negotiated_server_cert_type(const SSL *s); + +__owur int SSL_set1_client_cert_type(SSL *s, const unsigned char *val, size_t len); +__owur int SSL_set1_server_cert_type(SSL *s, const unsigned char *val, size_t len); +__owur int SSL_CTX_set1_client_cert_type(SSL_CTX *ctx, const unsigned char *val, size_t len); +__owur int SSL_CTX_set1_server_cert_type(SSL_CTX *ctx, const unsigned char *val, size_t len); +__owur int SSL_get0_client_cert_type(const SSL *s, unsigned char **t, size_t *len); +__owur int SSL_get0_server_cert_type(const SSL *s, unsigned char **t, size_t *len); +__owur int SSL_CTX_get0_client_cert_type(const SSL_CTX *ctx, unsigned char **t, size_t *len); +__owur int SSL_CTX_get0_server_cert_type(const SSL_CTX *s, unsigned char **t, size_t *len); + +/* + * Protection level. For <= TLSv1.2 only "NONE" and "APPLICATION" are used. + */ +# define OSSL_RECORD_PROTECTION_LEVEL_NONE 0 +# define OSSL_RECORD_PROTECTION_LEVEL_EARLY 1 +# define OSSL_RECORD_PROTECTION_LEVEL_HANDSHAKE 2 +# define OSSL_RECORD_PROTECTION_LEVEL_APPLICATION 3 + +int SSL_set_quic_tls_cbs(SSL *s, const OSSL_DISPATCH *qtdis, void *arg); +int SSL_set_quic_tls_transport_params(SSL *s, + const unsigned char *params, + size_t params_len); + +int SSL_set_quic_tls_early_data_enabled(SSL *s, int enabled); + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/linux-armv4/asm/include/openssl/x509.h b/deps/openssl/config/archs/linux-armv4/asm/include/openssl/x509.h index 1f7755e5b69c75..d013458c226461 100644 --- a/deps/openssl/config/archs/linux-armv4/asm/include/openssl/x509.h +++ b/deps/openssl/config/archs/linux-armv4/asm/include/openssl/x509.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/x509.h.in * - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2024 The OpenSSL Project Authors. All Rights Reserved. * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved * * Licensed under the Apache License 2.0 (the "License"). You may not use @@ -40,6 +40,9 @@ # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -162,16 +165,24 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_CRL, X509_CRL, X509_CRL) # define X509_FILETYPE_ASN1 2 # define X509_FILETYPE_DEFAULT 3 -# define X509v3_KU_DIGITAL_SIGNATURE 0x0080 -# define X509v3_KU_NON_REPUDIATION 0x0040 -# define X509v3_KU_KEY_ENCIPHERMENT 0x0020 -# define X509v3_KU_DATA_ENCIPHERMENT 0x0010 -# define X509v3_KU_KEY_AGREEMENT 0x0008 -# define X509v3_KU_KEY_CERT_SIGN 0x0004 -# define X509v3_KU_CRL_SIGN 0x0002 -# define X509v3_KU_ENCIPHER_ONLY 0x0001 -# define X509v3_KU_DECIPHER_ONLY 0x8000 -# define X509v3_KU_UNDEF 0xffff +/*- + * : + * The KeyUsage BITSTRING is treated as a little-endian integer, hence bit `0` + * is 0x80, while bit `7` is 0x01 (the LSB of the integer value), bit `8` is + * then the MSB of the second octet, or 0x8000. + */ +# define X509v3_KU_DIGITAL_SIGNATURE 0x0080 /* (0) */ +# define X509v3_KU_NON_REPUDIATION 0x0040 /* (1) */ +# define X509v3_KU_KEY_ENCIPHERMENT 0x0020 /* (2) */ +# define X509v3_KU_DATA_ENCIPHERMENT 0x0010 /* (3) */ +# define X509v3_KU_KEY_AGREEMENT 0x0008 /* (4) */ +# define X509v3_KU_KEY_CERT_SIGN 0x0004 /* (5) */ +# define X509v3_KU_CRL_SIGN 0x0002 /* (6) */ +# define X509v3_KU_ENCIPHER_ONLY 0x0001 /* (7) */ +# define X509v3_KU_DECIPHER_ONLY 0x8000 /* (8) */ +# ifndef OPENSSL_NO_DEPRECATED_3_4 +# define X509v3_KU_UNDEF 0xffff /* vestigial, not used */ +# endif struct X509_algor_st { ASN1_OBJECT *algorithm; @@ -462,7 +473,12 @@ typedef struct PBKDF2PARAM_st { X509_ALGOR *prf; } PBKDF2PARAM; -#ifndef OPENSSL_NO_SCRYPT +typedef struct { + X509_ALGOR *keyDerivationFunc; + X509_ALGOR *messageAuthScheme; +} PBMAC1PARAM; + +# ifndef OPENSSL_NO_SCRYPT typedef struct SCRYPT_PARAMS_st { ASN1_OCTET_STRING *salt; ASN1_INTEGER *costParameter; @@ -470,7 +486,7 @@ typedef struct SCRYPT_PARAMS_st { ASN1_INTEGER *parallelizationParameter; ASN1_INTEGER *keyLength; } SCRYPT_PARAMS; -#endif +# endif #ifdef __cplusplus } @@ -603,6 +619,8 @@ EVP_PKEY *d2i_PrivateKey_ex_fp(FILE *fp, EVP_PKEY **a, OSSL_LIB_CTX *libctx, const char *propq); EVP_PKEY *d2i_PrivateKey_fp(FILE *fp, EVP_PKEY **a); int i2d_PUBKEY_fp(FILE *fp, const EVP_PKEY *pkey); +EVP_PKEY *d2i_PUBKEY_ex_fp(FILE *fp, EVP_PKEY **a, OSSL_LIB_CTX *libctx, + const char *propq); EVP_PKEY *d2i_PUBKEY_fp(FILE *fp, EVP_PKEY **a); # endif @@ -651,6 +669,8 @@ EVP_PKEY *d2i_PrivateKey_ex_bio(BIO *bp, EVP_PKEY **a, OSSL_LIB_CTX *libctx, const char *propq); EVP_PKEY *d2i_PrivateKey_bio(BIO *bp, EVP_PKEY **a); int i2d_PUBKEY_bio(BIO *bp, const EVP_PKEY *pkey); +EVP_PKEY *d2i_PUBKEY_ex_bio(BIO *bp, EVP_PKEY **a, OSSL_LIB_CTX *libctx, + const char *propq); EVP_PKEY *d2i_PUBKEY_bio(BIO *bp, EVP_PKEY **a); DECLARE_ASN1_DUP_FUNCTION(X509) @@ -884,12 +904,12 @@ int X509_REQ_get_signature_nid(const X509_REQ *req); int i2d_re_X509_REQ_tbs(X509_REQ *req, unsigned char **pp); int X509_REQ_set_pubkey(X509_REQ *x, EVP_PKEY *pkey); EVP_PKEY *X509_REQ_get_pubkey(X509_REQ *req); -EVP_PKEY *X509_REQ_get0_pubkey(X509_REQ *req); +EVP_PKEY *X509_REQ_get0_pubkey(const X509_REQ *req); X509_PUBKEY *X509_REQ_get_X509_PUBKEY(X509_REQ *req); int X509_REQ_extension_nid(int nid); int *X509_REQ_get_extension_nids(void); void X509_REQ_set_extension_nids(int *nids); -STACK_OF(X509_EXTENSION) *X509_REQ_get_extensions(X509_REQ *req); +STACK_OF(X509_EXTENSION) *X509_REQ_get_extensions(OSSL_FUTURE_CONST X509_REQ *req); int X509_REQ_add_extensions_nid(X509_REQ *req, const STACK_OF(X509_EXTENSION) *exts, int nid); int X509_REQ_add_extensions(X509_REQ *req, const STACK_OF(X509_EXTENSION) *ext); @@ -950,13 +970,14 @@ X509_REVOKED_get0_extensions(const X509_REVOKED *r); X509_CRL *X509_CRL_diff(X509_CRL *base, X509_CRL *newer, EVP_PKEY *skey, const EVP_MD *md, unsigned int flags); -int X509_REQ_check_private_key(X509_REQ *x509, EVP_PKEY *pkey); +int X509_REQ_check_private_key(const X509_REQ *req, EVP_PKEY *pkey); -int X509_check_private_key(const X509 *x509, const EVP_PKEY *pkey); +int X509_check_private_key(const X509 *cert, const EVP_PKEY *pkey); int X509_chain_check_suiteb(int *perror_depth, X509 *x, STACK_OF(X509) *chain, unsigned long flags); int X509_CRL_check_suiteb(X509_CRL *crl, EVP_PKEY *pk, unsigned long flags); +void OSSL_STACK_OF_X509_free(STACK_OF(X509) *certs); STACK_OF(X509) *X509_chain_up_ref(STACK_OF(X509) *chain); int X509_issuer_and_serial_cmp(const X509 *a, const X509 *b); @@ -1077,6 +1098,8 @@ X509_EXTENSION *X509v3_get_ext(const STACK_OF(X509_EXTENSION) *x, int loc); X509_EXTENSION *X509v3_delete_ext(STACK_OF(X509_EXTENSION) *x, int loc); STACK_OF(X509_EXTENSION) *X509v3_add_ext(STACK_OF(X509_EXTENSION) **x, X509_EXTENSION *ex, int loc); +STACK_OF(X509_EXTENSION) *X509v3_add_extensions(STACK_OF(X509_EXTENSION) **target, + const STACK_OF(X509_EXTENSION) *exts); int X509_get_ext_count(const X509 *x); int X509_get_ext_by_NID(const X509 *x, int nid, int lastpos); @@ -1198,9 +1221,10 @@ X509 *X509_find_by_subject(STACK_OF(X509) *sk, const X509_NAME *name); DECLARE_ASN1_FUNCTIONS(PBEPARAM) DECLARE_ASN1_FUNCTIONS(PBE2PARAM) DECLARE_ASN1_FUNCTIONS(PBKDF2PARAM) -#ifndef OPENSSL_NO_SCRYPT +DECLARE_ASN1_FUNCTIONS(PBMAC1PARAM) +# ifndef OPENSSL_NO_SCRYPT DECLARE_ASN1_FUNCTIONS(SCRYPT_PARAMS) -#endif +# endif int PKCS5_pbe_set0_algor(X509_ALGOR *algor, int alg, int iter, const unsigned char *salt, int saltlen); @@ -1237,6 +1261,7 @@ X509_ALGOR *PKCS5_pbkdf2_set_ex(int iter, unsigned char *salt, int saltlen, int prf_nid, int keylen, OSSL_LIB_CTX *libctx); +PBKDF2PARAM *PBMAC1_get1_pbkdf2_param(const X509_ALGOR *macalg); /* PKCS#8 utilities */ DECLARE_ASN1_FUNCTIONS(PKCS8_PRIV_KEY_INFO) @@ -1262,6 +1287,8 @@ int PKCS8_pkey_add1_attr_by_OBJ(PKCS8_PRIV_KEY_INFO *p8, const ASN1_OBJECT *obj, int type, const unsigned char *bytes, int len); +void X509_PUBKEY_set0_public_key(X509_PUBKEY *pub, + unsigned char *penc, int penclen); int X509_PUBKEY_set0_param(X509_PUBKEY *pub, ASN1_OBJECT *aobj, int ptype, void *pval, unsigned char *penc, int penclen); diff --git a/deps/openssl/config/archs/linux-armv4/asm/include/openssl/x509_acert.h b/deps/openssl/config/archs/linux-armv4/asm/include/openssl/x509_acert.h new file mode 100644 index 00000000000000..9dde625677f9a9 --- /dev/null +++ b/deps/openssl/config/archs/linux-armv4/asm/include/openssl/x509_acert.h @@ -0,0 +1,294 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from include/openssl/x509_acert.h.in + * + * Copyright 2022-2024 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + + +#ifndef OPENSSL_X509_ACERT_H +# define OPENSSL_X509_ACERT_H +# pragma once + +# include +# include +# include + +typedef struct X509_acert_st X509_ACERT; +typedef struct X509_acert_info_st X509_ACERT_INFO; +typedef struct ossl_object_digest_info_st OSSL_OBJECT_DIGEST_INFO; +typedef struct ossl_issuer_serial_st OSSL_ISSUER_SERIAL; +typedef struct X509_acert_issuer_v2form_st X509_ACERT_ISSUER_V2FORM; + +DECLARE_ASN1_FUNCTIONS(X509_ACERT) +DECLARE_ASN1_DUP_FUNCTION(X509_ACERT) +DECLARE_ASN1_ITEM(X509_ACERT_INFO) +DECLARE_ASN1_ALLOC_FUNCTIONS(X509_ACERT_INFO) +DECLARE_ASN1_ALLOC_FUNCTIONS(OSSL_OBJECT_DIGEST_INFO) +DECLARE_ASN1_ALLOC_FUNCTIONS(OSSL_ISSUER_SERIAL) +DECLARE_ASN1_ALLOC_FUNCTIONS(X509_ACERT_ISSUER_V2FORM) + +# ifndef OPENSSL_NO_STDIO +X509_ACERT *d2i_X509_ACERT_fp(FILE *fp, X509_ACERT **acert); +int i2d_X509_ACERT_fp(FILE *fp, const X509_ACERT *acert); +# endif + +DECLARE_PEM_rw(X509_ACERT, X509_ACERT) + +X509_ACERT *d2i_X509_ACERT_bio(BIO *bp, X509_ACERT **acert); +int i2d_X509_ACERT_bio(BIO *bp, const X509_ACERT *acert); + +int X509_ACERT_sign(X509_ACERT *x, EVP_PKEY *pkey, const EVP_MD *md); +int X509_ACERT_sign_ctx(X509_ACERT *x, EVP_MD_CTX *ctx); +int X509_ACERT_verify(X509_ACERT *a, EVP_PKEY *r); + +# define X509_ACERT_VERSION_2 1 + +const GENERAL_NAMES *X509_ACERT_get0_holder_entityName(const X509_ACERT *x); +const OSSL_ISSUER_SERIAL *X509_ACERT_get0_holder_baseCertId(const X509_ACERT *x); +const OSSL_OBJECT_DIGEST_INFO * X509_ACERT_get0_holder_digest(const X509_ACERT *x); +const X509_NAME *X509_ACERT_get0_issuerName(const X509_ACERT *x); +long X509_ACERT_get_version(const X509_ACERT *x); +void X509_ACERT_get0_signature(const X509_ACERT *x, + const ASN1_BIT_STRING **psig, + const X509_ALGOR **palg); +int X509_ACERT_get_signature_nid(const X509_ACERT *x); +const X509_ALGOR *X509_ACERT_get0_info_sigalg(const X509_ACERT *x); +const ASN1_INTEGER *X509_ACERT_get0_serialNumber(const X509_ACERT *x); +const ASN1_TIME *X509_ACERT_get0_notBefore(const X509_ACERT *x); +const ASN1_TIME *X509_ACERT_get0_notAfter(const X509_ACERT *x); +const ASN1_BIT_STRING *X509_ACERT_get0_issuerUID(const X509_ACERT *x); + +int X509_ACERT_print(BIO *bp, X509_ACERT *x); +int X509_ACERT_print_ex(BIO *bp, X509_ACERT *x, unsigned long nmflags, + unsigned long cflag); + +int X509_ACERT_get_attr_count(const X509_ACERT *x); +int X509_ACERT_get_attr_by_NID(const X509_ACERT *x, int nid, int lastpos); +int X509_ACERT_get_attr_by_OBJ(const X509_ACERT *x, const ASN1_OBJECT *obj, + int lastpos); +X509_ATTRIBUTE *X509_ACERT_get_attr(const X509_ACERT *x, int loc); +X509_ATTRIBUTE *X509_ACERT_delete_attr(X509_ACERT *x, int loc); + +void *X509_ACERT_get_ext_d2i(const X509_ACERT *x, int nid, int *crit, int *idx); +int X509_ACERT_add1_ext_i2d(X509_ACERT *x, int nid, void *value, int crit, + unsigned long flags); +const STACK_OF(X509_EXTENSION) *X509_ACERT_get0_extensions(const X509_ACERT *x); + +# define OSSL_OBJECT_DIGEST_INFO_PUBLIC_KEY 0 +# define OSSL_OBJECT_DIGEST_INFO_PUBLIC_KEY_CERT 1 +# define OSSL_OBJECT_DIGEST_INFO_OTHER 2 /* must not be used in RFC 5755 profile */ +int X509_ACERT_set_version(X509_ACERT *x, long version); +void X509_ACERT_set0_holder_entityName(X509_ACERT *x, GENERAL_NAMES *name); +void X509_ACERT_set0_holder_baseCertId(X509_ACERT *x, OSSL_ISSUER_SERIAL *isss); +void X509_ACERT_set0_holder_digest(X509_ACERT *x, + OSSL_OBJECT_DIGEST_INFO *dinfo); + +int X509_ACERT_add1_attr(X509_ACERT *x, X509_ATTRIBUTE *attr); +int X509_ACERT_add1_attr_by_OBJ(X509_ACERT *x, const ASN1_OBJECT *obj, + int type, const void *bytes, int len); +int X509_ACERT_add1_attr_by_NID(X509_ACERT *x, int nid, int type, + const void *bytes, int len); +int X509_ACERT_add1_attr_by_txt(X509_ACERT *x, const char *attrname, int type, + const unsigned char *bytes, int len); +int X509_ACERT_add_attr_nconf(CONF *conf, const char *section, + X509_ACERT *acert); + +int X509_ACERT_set1_issuerName(X509_ACERT *x, const X509_NAME *name); +int X509_ACERT_set1_serialNumber(X509_ACERT *x, const ASN1_INTEGER *serial); +int X509_ACERT_set1_notBefore(X509_ACERT *x, const ASN1_GENERALIZEDTIME *time); +int X509_ACERT_set1_notAfter(X509_ACERT *x, const ASN1_GENERALIZEDTIME *time); + +void OSSL_OBJECT_DIGEST_INFO_get0_digest(const OSSL_OBJECT_DIGEST_INFO *o, + int *digestedObjectType, + const X509_ALGOR **digestAlgorithm, + const ASN1_BIT_STRING **digest); + +int OSSL_OBJECT_DIGEST_INFO_set1_digest(OSSL_OBJECT_DIGEST_INFO *o, + int digestedObjectType, + X509_ALGOR *digestAlgorithm, + ASN1_BIT_STRING *digest); + +const X509_NAME *OSSL_ISSUER_SERIAL_get0_issuer(const OSSL_ISSUER_SERIAL *isss); +const ASN1_INTEGER *OSSL_ISSUER_SERIAL_get0_serial(const OSSL_ISSUER_SERIAL *isss); +const ASN1_BIT_STRING *OSSL_ISSUER_SERIAL_get0_issuerUID(const OSSL_ISSUER_SERIAL *isss); + +int OSSL_ISSUER_SERIAL_set1_issuer(OSSL_ISSUER_SERIAL *isss, + const X509_NAME *issuer); +int OSSL_ISSUER_SERIAL_set1_serial(OSSL_ISSUER_SERIAL *isss, + const ASN1_INTEGER *serial); +int OSSL_ISSUER_SERIAL_set1_issuerUID(OSSL_ISSUER_SERIAL *isss, + const ASN1_BIT_STRING *uid); + +# define OSSL_IETFAS_OCTETS 0 +# define OSSL_IETFAS_OID 1 +# define OSSL_IETFAS_STRING 2 + +typedef struct OSSL_IETF_ATTR_SYNTAX_VALUE_st OSSL_IETF_ATTR_SYNTAX_VALUE; +typedef struct OSSL_IETF_ATTR_SYNTAX_st OSSL_IETF_ATTR_SYNTAX; +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_IETF_ATTR_SYNTAX_VALUE, OSSL_IETF_ATTR_SYNTAX_VALUE, OSSL_IETF_ATTR_SYNTAX_VALUE) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_value(sk, idx) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_value(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), (idx))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_new(cmp) ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_new(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_compfunc_type(cmp))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_new_null() ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_new_null()) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_new_reserve(cmp, n) ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_compfunc_type(cmp), (n))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), (n)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_free(sk) OPENSSL_sk_free(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_delete(sk, i) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_delete(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), (i))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_delete_ptr(sk, ptr) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_pop(sk) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_pop(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_shift(sk) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_shift(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk),ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_freefunc_type(freefunc)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr), (idx)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_set(sk, idx, ptr) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_set(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), (idx), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr), pnum) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_dup(sk) ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_dup(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_copyfunc_type(copyfunc), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_freefunc_type(freefunc))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_set_cmp_func(sk, cmp) ((sk_OSSL_IETF_ATTR_SYNTAX_VALUE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_compfunc_type(cmp))) + + +DECLARE_ASN1_ITEM(OSSL_IETF_ATTR_SYNTAX_VALUE) +DECLARE_ASN1_ALLOC_FUNCTIONS(OSSL_IETF_ATTR_SYNTAX_VALUE) +DECLARE_ASN1_FUNCTIONS(OSSL_IETF_ATTR_SYNTAX) + +const GENERAL_NAMES * +OSSL_IETF_ATTR_SYNTAX_get0_policyAuthority(const OSSL_IETF_ATTR_SYNTAX *a); +void OSSL_IETF_ATTR_SYNTAX_set0_policyAuthority(OSSL_IETF_ATTR_SYNTAX *a, + GENERAL_NAMES *names); + +int OSSL_IETF_ATTR_SYNTAX_get_value_num(const OSSL_IETF_ATTR_SYNTAX *a); +void *OSSL_IETF_ATTR_SYNTAX_get0_value(const OSSL_IETF_ATTR_SYNTAX *a, + int ind, int *type); +int OSSL_IETF_ATTR_SYNTAX_add1_value(OSSL_IETF_ATTR_SYNTAX *a, int type, + void *data); +int OSSL_IETF_ATTR_SYNTAX_print(BIO *bp, OSSL_IETF_ATTR_SYNTAX *a, int indent); + +struct TARGET_CERT_st { + OSSL_ISSUER_SERIAL *targetCertificate; + GENERAL_NAME *targetName; + OSSL_OBJECT_DIGEST_INFO *certDigestInfo; +}; + +typedef struct TARGET_CERT_st OSSL_TARGET_CERT; + +# define OSSL_TGT_TARGET_NAME 0 +# define OSSL_TGT_TARGET_GROUP 1 +# define OSSL_TGT_TARGET_CERT 2 + +typedef struct TARGET_st { + int type; + union { + GENERAL_NAME *targetName; + GENERAL_NAME *targetGroup; + OSSL_TARGET_CERT *targetCert; + } choice; +} OSSL_TARGET; + +typedef STACK_OF(OSSL_TARGET) OSSL_TARGETS; +typedef STACK_OF(OSSL_TARGETS) OSSL_TARGETING_INFORMATION; + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_TARGET, OSSL_TARGET, OSSL_TARGET) +#define sk_OSSL_TARGET_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_value(sk, idx) ((OSSL_TARGET *)OPENSSL_sk_value(ossl_check_const_OSSL_TARGET_sk_type(sk), (idx))) +#define sk_OSSL_TARGET_new(cmp) ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_new(ossl_check_OSSL_TARGET_compfunc_type(cmp))) +#define sk_OSSL_TARGET_new_null() ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_new_null()) +#define sk_OSSL_TARGET_new_reserve(cmp, n) ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_TARGET_compfunc_type(cmp), (n))) +#define sk_OSSL_TARGET_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_TARGET_sk_type(sk), (n)) +#define sk_OSSL_TARGET_free(sk) OPENSSL_sk_free(ossl_check_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_delete(sk, i) ((OSSL_TARGET *)OPENSSL_sk_delete(ossl_check_OSSL_TARGET_sk_type(sk), (i))) +#define sk_OSSL_TARGET_delete_ptr(sk, ptr) ((OSSL_TARGET *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr))) +#define sk_OSSL_TARGET_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr)) +#define sk_OSSL_TARGET_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr)) +#define sk_OSSL_TARGET_pop(sk) ((OSSL_TARGET *)OPENSSL_sk_pop(ossl_check_OSSL_TARGET_sk_type(sk))) +#define sk_OSSL_TARGET_shift(sk) ((OSSL_TARGET *)OPENSSL_sk_shift(ossl_check_OSSL_TARGET_sk_type(sk))) +#define sk_OSSL_TARGET_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_TARGET_sk_type(sk),ossl_check_OSSL_TARGET_freefunc_type(freefunc)) +#define sk_OSSL_TARGET_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr), (idx)) +#define sk_OSSL_TARGET_set(sk, idx, ptr) ((OSSL_TARGET *)OPENSSL_sk_set(ossl_check_OSSL_TARGET_sk_type(sk), (idx), ossl_check_OSSL_TARGET_type(ptr))) +#define sk_OSSL_TARGET_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr)) +#define sk_OSSL_TARGET_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr)) +#define sk_OSSL_TARGET_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr), pnum) +#define sk_OSSL_TARGET_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_dup(sk) ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_dup(ossl_check_const_OSSL_TARGET_sk_type(sk))) +#define sk_OSSL_TARGET_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_copyfunc_type(copyfunc), ossl_check_OSSL_TARGET_freefunc_type(freefunc))) +#define sk_OSSL_TARGET_set_cmp_func(sk, cmp) ((sk_OSSL_TARGET_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_compfunc_type(cmp))) + + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_TARGETS, OSSL_TARGETS, OSSL_TARGETS) +#define sk_OSSL_TARGETS_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_value(sk, idx) ((OSSL_TARGETS *)OPENSSL_sk_value(ossl_check_const_OSSL_TARGETS_sk_type(sk), (idx))) +#define sk_OSSL_TARGETS_new(cmp) ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_new(ossl_check_OSSL_TARGETS_compfunc_type(cmp))) +#define sk_OSSL_TARGETS_new_null() ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_new_null()) +#define sk_OSSL_TARGETS_new_reserve(cmp, n) ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_TARGETS_compfunc_type(cmp), (n))) +#define sk_OSSL_TARGETS_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_TARGETS_sk_type(sk), (n)) +#define sk_OSSL_TARGETS_free(sk) OPENSSL_sk_free(ossl_check_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_delete(sk, i) ((OSSL_TARGETS *)OPENSSL_sk_delete(ossl_check_OSSL_TARGETS_sk_type(sk), (i))) +#define sk_OSSL_TARGETS_delete_ptr(sk, ptr) ((OSSL_TARGETS *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr))) +#define sk_OSSL_TARGETS_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr)) +#define sk_OSSL_TARGETS_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr)) +#define sk_OSSL_TARGETS_pop(sk) ((OSSL_TARGETS *)OPENSSL_sk_pop(ossl_check_OSSL_TARGETS_sk_type(sk))) +#define sk_OSSL_TARGETS_shift(sk) ((OSSL_TARGETS *)OPENSSL_sk_shift(ossl_check_OSSL_TARGETS_sk_type(sk))) +#define sk_OSSL_TARGETS_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_TARGETS_sk_type(sk),ossl_check_OSSL_TARGETS_freefunc_type(freefunc)) +#define sk_OSSL_TARGETS_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr), (idx)) +#define sk_OSSL_TARGETS_set(sk, idx, ptr) ((OSSL_TARGETS *)OPENSSL_sk_set(ossl_check_OSSL_TARGETS_sk_type(sk), (idx), ossl_check_OSSL_TARGETS_type(ptr))) +#define sk_OSSL_TARGETS_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr)) +#define sk_OSSL_TARGETS_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr)) +#define sk_OSSL_TARGETS_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr), pnum) +#define sk_OSSL_TARGETS_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_dup(sk) ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_dup(ossl_check_const_OSSL_TARGETS_sk_type(sk))) +#define sk_OSSL_TARGETS_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_copyfunc_type(copyfunc), ossl_check_OSSL_TARGETS_freefunc_type(freefunc))) +#define sk_OSSL_TARGETS_set_cmp_func(sk, cmp) ((sk_OSSL_TARGETS_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_compfunc_type(cmp))) + + +DECLARE_ASN1_FUNCTIONS(OSSL_TARGET) +DECLARE_ASN1_FUNCTIONS(OSSL_TARGETS) +DECLARE_ASN1_FUNCTIONS(OSSL_TARGETING_INFORMATION) + +typedef STACK_OF(OSSL_ISSUER_SERIAL) OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX; +DECLARE_ASN1_FUNCTIONS(OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ISSUER_SERIAL, OSSL_ISSUER_SERIAL, OSSL_ISSUER_SERIAL) +#define sk_OSSL_ISSUER_SERIAL_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_value(sk, idx) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_value(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk), (idx))) +#define sk_OSSL_ISSUER_SERIAL_new(cmp) ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_new(ossl_check_OSSL_ISSUER_SERIAL_compfunc_type(cmp))) +#define sk_OSSL_ISSUER_SERIAL_new_null() ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ISSUER_SERIAL_new_reserve(cmp, n) ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ISSUER_SERIAL_compfunc_type(cmp), (n))) +#define sk_OSSL_ISSUER_SERIAL_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), (n)) +#define sk_OSSL_ISSUER_SERIAL_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_delete(sk, i) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_delete(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), (i))) +#define sk_OSSL_ISSUER_SERIAL_delete_ptr(sk, ptr) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr))) +#define sk_OSSL_ISSUER_SERIAL_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr)) +#define sk_OSSL_ISSUER_SERIAL_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr)) +#define sk_OSSL_ISSUER_SERIAL_pop(sk) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_pop(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk))) +#define sk_OSSL_ISSUER_SERIAL_shift(sk) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_shift(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk))) +#define sk_OSSL_ISSUER_SERIAL_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk),ossl_check_OSSL_ISSUER_SERIAL_freefunc_type(freefunc)) +#define sk_OSSL_ISSUER_SERIAL_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr), (idx)) +#define sk_OSSL_ISSUER_SERIAL_set(sk, idx, ptr) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_set(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), (idx), ossl_check_OSSL_ISSUER_SERIAL_type(ptr))) +#define sk_OSSL_ISSUER_SERIAL_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr)) +#define sk_OSSL_ISSUER_SERIAL_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr)) +#define sk_OSSL_ISSUER_SERIAL_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr), pnum) +#define sk_OSSL_ISSUER_SERIAL_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_dup(sk) ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk))) +#define sk_OSSL_ISSUER_SERIAL_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_copyfunc_type(copyfunc), ossl_check_OSSL_ISSUER_SERIAL_freefunc_type(freefunc))) +#define sk_OSSL_ISSUER_SERIAL_set_cmp_func(sk, cmp) ((sk_OSSL_ISSUER_SERIAL_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_compfunc_type(cmp))) + + +#endif diff --git a/deps/openssl/config/archs/linux-armv4/asm/include/openssl/x509_vfy.h b/deps/openssl/config/archs/linux-armv4/asm/include/openssl/x509_vfy.h index 29b0e147adcab1..c9bdc3b39d685d 100644 --- a/deps/openssl/config/archs/linux-armv4/asm/include/openssl/x509_vfy.h +++ b/deps/openssl/config/archs/linux-armv4/asm/include/openssl/x509_vfy.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/x509_vfy.h.in * - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -411,6 +411,7 @@ X509_LOOKUP_ctrl_ex((x), X509_L_ADD_STORE, (name), 0, NULL, \ # define X509_V_ERR_CA_CERT_MISSING_KEY_USAGE 92 # define X509_V_ERR_EXTENSIONS_REQUIRE_VERSION_3 93 # define X509_V_ERR_EC_KEY_EXPLICIT_PARAMS 94 +# define X509_V_ERR_RPK_UNTRUSTED 95 /* Certificate verify flags */ # ifndef OPENSSL_NO_DEPRECATED_1_1_0 @@ -491,71 +492,72 @@ int X509_OBJECT_set1_X509(X509_OBJECT *a, X509 *obj); X509_CRL *X509_OBJECT_get0_X509_CRL(const X509_OBJECT *a); int X509_OBJECT_set1_X509_CRL(X509_OBJECT *a, X509_CRL *obj); X509_STORE *X509_STORE_new(void); -void X509_STORE_free(X509_STORE *v); -int X509_STORE_lock(X509_STORE *ctx); -int X509_STORE_unlock(X509_STORE *ctx); -int X509_STORE_up_ref(X509_STORE *v); -STACK_OF(X509_OBJECT) *X509_STORE_get0_objects(const X509_STORE *v); -STACK_OF(X509) *X509_STORE_get1_all_certs(X509_STORE *st); -STACK_OF(X509) *X509_STORE_CTX_get1_certs(X509_STORE_CTX *st, +void X509_STORE_free(X509_STORE *xs); +int X509_STORE_lock(X509_STORE *xs); +int X509_STORE_unlock(X509_STORE *xs); +int X509_STORE_up_ref(X509_STORE *xs); +STACK_OF(X509_OBJECT) *X509_STORE_get0_objects(const X509_STORE *xs); +STACK_OF(X509_OBJECT) *X509_STORE_get1_objects(X509_STORE *xs); +STACK_OF(X509) *X509_STORE_get1_all_certs(X509_STORE *xs); +STACK_OF(X509) *X509_STORE_CTX_get1_certs(X509_STORE_CTX *xs, const X509_NAME *nm); STACK_OF(X509_CRL) *X509_STORE_CTX_get1_crls(const X509_STORE_CTX *st, const X509_NAME *nm); -int X509_STORE_set_flags(X509_STORE *ctx, unsigned long flags); -int X509_STORE_set_purpose(X509_STORE *ctx, int purpose); -int X509_STORE_set_trust(X509_STORE *ctx, int trust); -int X509_STORE_set1_param(X509_STORE *ctx, const X509_VERIFY_PARAM *pm); -X509_VERIFY_PARAM *X509_STORE_get0_param(const X509_STORE *ctx); +int X509_STORE_set_flags(X509_STORE *xs, unsigned long flags); +int X509_STORE_set_purpose(X509_STORE *xs, int purpose); +int X509_STORE_set_trust(X509_STORE *xs, int trust); +int X509_STORE_set1_param(X509_STORE *xs, const X509_VERIFY_PARAM *pm); +X509_VERIFY_PARAM *X509_STORE_get0_param(const X509_STORE *xs); -void X509_STORE_set_verify(X509_STORE *ctx, X509_STORE_CTX_verify_fn verify); +void X509_STORE_set_verify(X509_STORE *xs, X509_STORE_CTX_verify_fn verify); #define X509_STORE_set_verify_func(ctx, func) \ X509_STORE_set_verify((ctx),(func)) void X509_STORE_CTX_set_verify(X509_STORE_CTX *ctx, X509_STORE_CTX_verify_fn verify); -X509_STORE_CTX_verify_fn X509_STORE_get_verify(const X509_STORE *ctx); -void X509_STORE_set_verify_cb(X509_STORE *ctx, +X509_STORE_CTX_verify_fn X509_STORE_get_verify(const X509_STORE *xs); +void X509_STORE_set_verify_cb(X509_STORE *xs, X509_STORE_CTX_verify_cb verify_cb); # define X509_STORE_set_verify_cb_func(ctx,func) \ X509_STORE_set_verify_cb((ctx),(func)) -X509_STORE_CTX_verify_cb X509_STORE_get_verify_cb(const X509_STORE *ctx); -void X509_STORE_set_get_issuer(X509_STORE *ctx, +X509_STORE_CTX_verify_cb X509_STORE_get_verify_cb(const X509_STORE *xs); +void X509_STORE_set_get_issuer(X509_STORE *xs, X509_STORE_CTX_get_issuer_fn get_issuer); -X509_STORE_CTX_get_issuer_fn X509_STORE_get_get_issuer(const X509_STORE *ctx); -void X509_STORE_set_check_issued(X509_STORE *ctx, +X509_STORE_CTX_get_issuer_fn X509_STORE_get_get_issuer(const X509_STORE *xs); +void X509_STORE_set_check_issued(X509_STORE *xs, X509_STORE_CTX_check_issued_fn check_issued); -X509_STORE_CTX_check_issued_fn X509_STORE_get_check_issued(const X509_STORE *ctx); -void X509_STORE_set_check_revocation(X509_STORE *ctx, +X509_STORE_CTX_check_issued_fn X509_STORE_get_check_issued(const X509_STORE *s); +void X509_STORE_set_check_revocation(X509_STORE *xs, X509_STORE_CTX_check_revocation_fn check_revocation); X509_STORE_CTX_check_revocation_fn - X509_STORE_get_check_revocation(const X509_STORE *ctx); -void X509_STORE_set_get_crl(X509_STORE *ctx, + X509_STORE_get_check_revocation(const X509_STORE *xs); +void X509_STORE_set_get_crl(X509_STORE *xs, X509_STORE_CTX_get_crl_fn get_crl); -X509_STORE_CTX_get_crl_fn X509_STORE_get_get_crl(const X509_STORE *ctx); -void X509_STORE_set_check_crl(X509_STORE *ctx, +X509_STORE_CTX_get_crl_fn X509_STORE_get_get_crl(const X509_STORE *xs); +void X509_STORE_set_check_crl(X509_STORE *xs, X509_STORE_CTX_check_crl_fn check_crl); -X509_STORE_CTX_check_crl_fn X509_STORE_get_check_crl(const X509_STORE *ctx); -void X509_STORE_set_cert_crl(X509_STORE *ctx, +X509_STORE_CTX_check_crl_fn X509_STORE_get_check_crl(const X509_STORE *xs); +void X509_STORE_set_cert_crl(X509_STORE *xs, X509_STORE_CTX_cert_crl_fn cert_crl); -X509_STORE_CTX_cert_crl_fn X509_STORE_get_cert_crl(const X509_STORE *ctx); -void X509_STORE_set_check_policy(X509_STORE *ctx, +X509_STORE_CTX_cert_crl_fn X509_STORE_get_cert_crl(const X509_STORE *xs); +void X509_STORE_set_check_policy(X509_STORE *xs, X509_STORE_CTX_check_policy_fn check_policy); -X509_STORE_CTX_check_policy_fn X509_STORE_get_check_policy(const X509_STORE *ctx); -void X509_STORE_set_lookup_certs(X509_STORE *ctx, +X509_STORE_CTX_check_policy_fn X509_STORE_get_check_policy(const X509_STORE *s); +void X509_STORE_set_lookup_certs(X509_STORE *xs, X509_STORE_CTX_lookup_certs_fn lookup_certs); -X509_STORE_CTX_lookup_certs_fn X509_STORE_get_lookup_certs(const X509_STORE *ctx); -void X509_STORE_set_lookup_crls(X509_STORE *ctx, +X509_STORE_CTX_lookup_certs_fn X509_STORE_get_lookup_certs(const X509_STORE *s); +void X509_STORE_set_lookup_crls(X509_STORE *xs, X509_STORE_CTX_lookup_crls_fn lookup_crls); #define X509_STORE_set_lookup_crls_cb(ctx, func) \ X509_STORE_set_lookup_crls((ctx), (func)) -X509_STORE_CTX_lookup_crls_fn X509_STORE_get_lookup_crls(const X509_STORE *ctx); -void X509_STORE_set_cleanup(X509_STORE *ctx, +X509_STORE_CTX_lookup_crls_fn X509_STORE_get_lookup_crls(const X509_STORE *xs); +void X509_STORE_set_cleanup(X509_STORE *xs, X509_STORE_CTX_cleanup_fn cleanup); -X509_STORE_CTX_cleanup_fn X509_STORE_get_cleanup(const X509_STORE *ctx); +X509_STORE_CTX_cleanup_fn X509_STORE_get_cleanup(const X509_STORE *xs); #define X509_STORE_get_ex_new_index(l, p, newf, dupf, freef) \ CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_X509_STORE, l, p, newf, dupf, freef) -int X509_STORE_set_ex_data(X509_STORE *ctx, int idx, void *data); -void *X509_STORE_get_ex_data(const X509_STORE *ctx, int idx); +int X509_STORE_set_ex_data(X509_STORE *xs, int idx, void *data); +void *X509_STORE_get_ex_data(const X509_STORE *xs, int idx); X509_STORE_CTX *X509_STORE_CTX_new_ex(OSSL_LIB_CTX *libctx, const char *propq); X509_STORE_CTX *X509_STORE_CTX_new(void); @@ -565,11 +567,14 @@ int X509_STORE_CTX_get1_issuer(X509 **issuer, X509_STORE_CTX *ctx, X509 *x); void X509_STORE_CTX_free(X509_STORE_CTX *ctx); int X509_STORE_CTX_init(X509_STORE_CTX *ctx, X509_STORE *trust_store, X509 *target, STACK_OF(X509) *untrusted); +int X509_STORE_CTX_init_rpk(X509_STORE_CTX *ctx, X509_STORE *trust_store, + EVP_PKEY* rpk); void X509_STORE_CTX_set0_trusted_stack(X509_STORE_CTX *ctx, STACK_OF(X509) *sk); void X509_STORE_CTX_cleanup(X509_STORE_CTX *ctx); X509_STORE *X509_STORE_CTX_get0_store(const X509_STORE_CTX *ctx); X509 *X509_STORE_CTX_get0_cert(const X509_STORE_CTX *ctx); +EVP_PKEY *X509_STORE_CTX_get0_rpk(const X509_STORE_CTX *ctx); STACK_OF(X509)* X509_STORE_CTX_get0_untrusted(const X509_STORE_CTX *ctx); void X509_STORE_CTX_set0_untrusted(X509_STORE_CTX *ctx, STACK_OF(X509) *sk); void X509_STORE_CTX_set_verify_cb(X509_STORE_CTX *ctx, @@ -579,6 +584,8 @@ X509_STORE_CTX_verify_fn X509_STORE_CTX_get_verify(const X509_STORE_CTX *ctx); X509_STORE_CTX_get_issuer_fn X509_STORE_CTX_get_get_issuer(const X509_STORE_CTX *ctx); X509_STORE_CTX_check_issued_fn X509_STORE_CTX_get_check_issued(const X509_STORE_CTX *ctx); X509_STORE_CTX_check_revocation_fn X509_STORE_CTX_get_check_revocation(const X509_STORE_CTX *ctx); +void X509_STORE_CTX_set_get_crl(X509_STORE_CTX *ctx, + X509_STORE_CTX_get_crl_fn get_crl); X509_STORE_CTX_get_crl_fn X509_STORE_CTX_get_get_crl(const X509_STORE_CTX *ctx); X509_STORE_CTX_check_crl_fn X509_STORE_CTX_get_check_crl(const X509_STORE_CTX *ctx); X509_STORE_CTX_cert_crl_fn X509_STORE_CTX_get_cert_crl(const X509_STORE_CTX *ctx); @@ -600,7 +607,7 @@ X509_STORE_CTX_cleanup_fn X509_STORE_CTX_get_cleanup(const X509_STORE_CTX *ctx); # define X509_STORE_get1_crl X509_STORE_CTX_get1_crls #endif -X509_LOOKUP *X509_STORE_add_lookup(X509_STORE *v, X509_LOOKUP_METHOD *m); +X509_LOOKUP *X509_STORE_add_lookup(X509_STORE *xs, X509_LOOKUP_METHOD *m); X509_LOOKUP_METHOD *X509_LOOKUP_hash_dir(void); X509_LOOKUP_METHOD *X509_LOOKUP_file(void); X509_LOOKUP_METHOD *X509_LOOKUP_store(void); @@ -685,8 +692,8 @@ X509_LOOKUP_get_by_alias_fn X509_LOOKUP_meth_get_get_by_alias( const X509_LOOKUP_METHOD *method); -int X509_STORE_add_cert(X509_STORE *ctx, X509 *x); -int X509_STORE_add_crl(X509_STORE *ctx, X509_CRL *x); +int X509_STORE_add_cert(X509_STORE *xs, X509 *x); +int X509_STORE_add_crl(X509_STORE *xs, X509_CRL *x); int X509_STORE_CTX_get_by_subject(const X509_STORE_CTX *vs, X509_LOOKUP_TYPE type, @@ -730,23 +737,21 @@ void *X509_LOOKUP_get_method_data(const X509_LOOKUP *ctx); X509_STORE *X509_LOOKUP_get_store(const X509_LOOKUP *ctx); int X509_LOOKUP_shutdown(X509_LOOKUP *ctx); -int X509_STORE_load_file(X509_STORE *ctx, const char *file); -int X509_STORE_load_path(X509_STORE *ctx, const char *path); -int X509_STORE_load_store(X509_STORE *ctx, const char *store); -int X509_STORE_load_locations(X509_STORE *ctx, - const char *file, - const char *dir); -int X509_STORE_set_default_paths(X509_STORE *ctx); +int X509_STORE_load_file(X509_STORE *xs, const char *file); +int X509_STORE_load_path(X509_STORE *xs, const char *path); +int X509_STORE_load_store(X509_STORE *xs, const char *store); +int X509_STORE_load_locations(X509_STORE *s, const char *file, const char *dir); +int X509_STORE_set_default_paths(X509_STORE *xs); -int X509_STORE_load_file_ex(X509_STORE *ctx, const char *file, +int X509_STORE_load_file_ex(X509_STORE *xs, const char *file, OSSL_LIB_CTX *libctx, const char *propq); -int X509_STORE_load_store_ex(X509_STORE *ctx, const char *store, +int X509_STORE_load_store_ex(X509_STORE *xs, const char *store, OSSL_LIB_CTX *libctx, const char *propq); -int X509_STORE_load_locations_ex(X509_STORE *ctx, const char *file, - const char *dir, OSSL_LIB_CTX *libctx, - const char *propq); -int X509_STORE_set_default_paths_ex(X509_STORE *ctx, OSSL_LIB_CTX *libctx, - const char *propq); +int X509_STORE_load_locations_ex(X509_STORE *xs, + const char *file, const char *dir, + OSSL_LIB_CTX *libctx, const char *propq); +int X509_STORE_set_default_paths_ex(X509_STORE *xs, + OSSL_LIB_CTX *libctx, const char *propq); #define X509_STORE_CTX_get_ex_new_index(l, p, newf, dupf, freef) \ CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_X509_STORE_CTX, l, p, newf, dupf, freef) @@ -764,6 +769,7 @@ X509_STORE_CTX *X509_STORE_CTX_get0_parent_ctx(const X509_STORE_CTX *ctx); STACK_OF(X509) *X509_STORE_CTX_get0_chain(const X509_STORE_CTX *ctx); STACK_OF(X509) *X509_STORE_CTX_get1_chain(const X509_STORE_CTX *ctx); void X509_STORE_CTX_set_cert(X509_STORE_CTX *ctx, X509 *target); +void X509_STORE_CTX_set0_rpk(X509_STORE_CTX *ctx, EVP_PKEY *target); void X509_STORE_CTX_set0_verified_chain(X509_STORE_CTX *c, STACK_OF(X509) *sk); void X509_STORE_CTX_set0_crls(X509_STORE_CTX *ctx, STACK_OF(X509_CRL) *sk); int X509_STORE_CTX_set_purpose(X509_STORE_CTX *ctx, int purpose); @@ -773,6 +779,8 @@ int X509_STORE_CTX_purpose_inherit(X509_STORE_CTX *ctx, int def_purpose, void X509_STORE_CTX_set_flags(X509_STORE_CTX *ctx, unsigned long flags); void X509_STORE_CTX_set_time(X509_STORE_CTX *ctx, unsigned long flags, time_t t); +void X509_STORE_CTX_set_current_reasons(X509_STORE_CTX *ctx, + unsigned int current_reasons); X509_POLICY_TREE *X509_STORE_CTX_get0_policy_tree(const X509_STORE_CTX *ctx); int X509_STORE_CTX_get_explicit_policy(const X509_STORE_CTX *ctx); @@ -804,6 +812,7 @@ int X509_VERIFY_PARAM_clear_flags(X509_VERIFY_PARAM *param, unsigned long flags); unsigned long X509_VERIFY_PARAM_get_flags(const X509_VERIFY_PARAM *param); int X509_VERIFY_PARAM_set_purpose(X509_VERIFY_PARAM *param, int purpose); +int X509_VERIFY_PARAM_get_purpose(const X509_VERIFY_PARAM *param); int X509_VERIFY_PARAM_set_trust(X509_VERIFY_PARAM *param, int trust); void X509_VERIFY_PARAM_set_depth(X509_VERIFY_PARAM *param, int depth); void X509_VERIFY_PARAM_set_auth_level(X509_VERIFY_PARAM *param, int auth_level); diff --git a/deps/openssl/config/archs/linux-armv4/asm/include/openssl/x509v3.h b/deps/openssl/config/archs/linux-armv4/asm/include/openssl/x509v3.h index 20b67455f2061d..b8dabac35a4915 100644 --- a/deps/openssl/config/archs/linux-armv4/asm/include/openssl/x509v3.h +++ b/deps/openssl/config/archs/linux-armv4/asm/include/openssl/x509v3.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/x509v3.h.in * - * Copyright 1999-2023 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1999-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -25,6 +25,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -146,6 +149,11 @@ typedef struct BASIC_CONSTRAINTS_st { ASN1_INTEGER *pathlen; } BASIC_CONSTRAINTS; +typedef struct OSSL_BASIC_ATTR_CONSTRAINTS_st { + int authority; + ASN1_INTEGER *pathlen; +} OSSL_BASIC_ATTR_CONSTRAINTS; + typedef struct PKEY_USAGE_PERIOD_st { ASN1_GENERALIZEDTIME *notBefore; ASN1_GENERALIZEDTIME *notAfter; @@ -198,6 +206,8 @@ typedef struct ACCESS_DESCRIPTION_st { GENERAL_NAME *location; } ACCESS_DESCRIPTION; +int GENERAL_NAME_set1_X509_NAME(GENERAL_NAME **tgt, const X509_NAME *src); + SKM_DEFINE_STACK_OF_INTERNAL(ACCESS_DESCRIPTION, ACCESS_DESCRIPTION, ACCESS_DESCRIPTION) #define sk_ACCESS_DESCRIPTION_num(sk) OPENSSL_sk_num(ossl_check_const_ACCESS_DESCRIPTION_sk_type(sk)) #define sk_ACCESS_DESCRIPTION_value(sk, idx) ((ACCESS_DESCRIPTION *)OPENSSL_sk_value(ossl_check_const_ACCESS_DESCRIPTION_sk_type(sk), (idx))) @@ -294,6 +304,7 @@ typedef struct DIST_POINT_NAME_st { /* If relativename then this contains the full distribution point name */ X509_NAME *dpname; } DIST_POINT_NAME; +DECLARE_ASN1_DUP_FUNCTION(DIST_POINT_NAME) /* All existing reasons */ # define CRLDP_ALL_REASONS 0x807f @@ -659,15 +670,16 @@ struct ISSUING_DIST_POINT_st { # define EXFLAG_SAN_CRITICAL 0x80000 # define EXFLAG_NO_FINGERPRINT 0x100000 -# define KU_DIGITAL_SIGNATURE 0x0080 -# define KU_NON_REPUDIATION 0x0040 -# define KU_KEY_ENCIPHERMENT 0x0020 -# define KU_DATA_ENCIPHERMENT 0x0010 -# define KU_KEY_AGREEMENT 0x0008 -# define KU_KEY_CERT_SIGN 0x0004 -# define KU_CRL_SIGN 0x0002 -# define KU_ENCIPHER_ONLY 0x0001 -# define KU_DECIPHER_ONLY 0x8000 +/* https://datatracker.ietf.org/doc/html/rfc5280#section-4.2.1.3 */ +# define KU_DIGITAL_SIGNATURE X509v3_KU_DIGITAL_SIGNATURE +# define KU_NON_REPUDIATION X509v3_KU_NON_REPUDIATION +# define KU_KEY_ENCIPHERMENT X509v3_KU_KEY_ENCIPHERMENT +# define KU_DATA_ENCIPHERMENT X509v3_KU_DATA_ENCIPHERMENT +# define KU_KEY_AGREEMENT X509v3_KU_KEY_AGREEMENT +# define KU_KEY_CERT_SIGN X509v3_KU_KEY_CERT_SIGN +# define KU_CRL_SIGN X509v3_KU_CRL_SIGN +# define KU_ENCIPHER_ONLY X509v3_KU_ENCIPHER_ONLY +# define KU_DECIPHER_ONLY X509v3_KU_DECIPHER_ONLY # define NS_SSL_CLIENT 0x80 # define NS_SSL_SERVER 0x40 @@ -729,7 +741,7 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_PURPOSE, X509_PURPOSE, X509_PURPOSE) #define sk_X509_PURPOSE_set_cmp_func(sk, cmp) ((sk_X509_PURPOSE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_X509_PURPOSE_sk_type(sk), ossl_check_X509_PURPOSE_compfunc_type(cmp))) - +# define X509_PURPOSE_DEFAULT_ANY 0 # define X509_PURPOSE_SSL_CLIENT 1 # define X509_PURPOSE_SSL_SERVER 2 # define X509_PURPOSE_NS_SSL_SERVER 3 @@ -739,9 +751,10 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_PURPOSE, X509_PURPOSE, X509_PURPOSE) # define X509_PURPOSE_ANY 7 # define X509_PURPOSE_OCSP_HELPER 8 # define X509_PURPOSE_TIMESTAMP_SIGN 9 +# define X509_PURPOSE_CODE_SIGN 10 # define X509_PURPOSE_MIN 1 -# define X509_PURPOSE_MAX 9 +# define X509_PURPOSE_MAX 10 /* Flags for X509V3_EXT_print() */ @@ -767,6 +780,7 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_PURPOSE, X509_PURPOSE, X509_PURPOSE) # define X509V3_ADD_SILENT 0x10 DECLARE_ASN1_FUNCTIONS(BASIC_CONSTRAINTS) +DECLARE_ASN1_FUNCTIONS(OSSL_BASIC_ATTR_CONSTRAINTS) DECLARE_ASN1_FUNCTIONS(SXNET) DECLARE_ASN1_FUNCTIONS(SXNETID) @@ -976,7 +990,6 @@ int X509V3_extensions_print(BIO *out, const char *title, int X509_check_ca(X509 *x); int X509_check_purpose(X509 *x, int id, int ca); int X509_supported_extension(X509_EXTENSION *ex); -int X509_PURPOSE_set(int *p, int purpose); int X509_check_issued(X509 *issuer, X509 *subject); int X509_check_akid(const X509 *issuer, const AUTHORITY_KEYID *akid); void X509_set_proxy_flag(X509 *x); @@ -992,22 +1005,26 @@ const GENERAL_NAMES *X509_get0_authority_issuer(X509 *x); const ASN1_INTEGER *X509_get0_authority_serial(X509 *x); int X509_PURPOSE_get_count(void); -X509_PURPOSE *X509_PURPOSE_get0(int idx); +int X509_PURPOSE_get_unused_id(OSSL_LIB_CTX *libctx); int X509_PURPOSE_get_by_sname(const char *sname); int X509_PURPOSE_get_by_id(int id); int X509_PURPOSE_add(int id, int trust, int flags, int (*ck) (const X509_PURPOSE *, const X509 *, int), const char *name, const char *sname, void *arg); +void X509_PURPOSE_cleanup(void); + +X509_PURPOSE *X509_PURPOSE_get0(int idx); +int X509_PURPOSE_get_id(const X509_PURPOSE *); char *X509_PURPOSE_get0_name(const X509_PURPOSE *xp); char *X509_PURPOSE_get0_sname(const X509_PURPOSE *xp); int X509_PURPOSE_get_trust(const X509_PURPOSE *xp); -void X509_PURPOSE_cleanup(void); -int X509_PURPOSE_get_id(const X509_PURPOSE *); +int X509_PURPOSE_set(int *p, int purpose); STACK_OF(OPENSSL_STRING) *X509_get1_email(X509 *x); STACK_OF(OPENSSL_STRING) *X509_REQ_get1_email(X509_REQ *x); void X509_email_free(STACK_OF(OPENSSL_STRING) *sk); STACK_OF(OPENSSL_STRING) *X509_get1_ocsp(X509 *x); + /* Flags for X509_check_* functions */ /* @@ -1444,6 +1461,507 @@ const ASN1_PRINTABLESTRING *PROFESSION_INFO_get0_registrationNumber( void PROFESSION_INFO_set0_registrationNumber( PROFESSION_INFO *pi, ASN1_PRINTABLESTRING *rn); +int OSSL_GENERAL_NAMES_print(BIO *out, GENERAL_NAMES *gens, int indent); + +typedef STACK_OF(X509_ATTRIBUTE) OSSL_ATTRIBUTES_SYNTAX; +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTES_SYNTAX) + +typedef STACK_OF(USERNOTICE) OSSL_USER_NOTICE_SYNTAX; +DECLARE_ASN1_FUNCTIONS(OSSL_USER_NOTICE_SYNTAX) + +SKM_DEFINE_STACK_OF_INTERNAL(USERNOTICE, USERNOTICE, USERNOTICE) +#define sk_USERNOTICE_num(sk) OPENSSL_sk_num(ossl_check_const_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_value(sk, idx) ((USERNOTICE *)OPENSSL_sk_value(ossl_check_const_USERNOTICE_sk_type(sk), (idx))) +#define sk_USERNOTICE_new(cmp) ((STACK_OF(USERNOTICE) *)OPENSSL_sk_new(ossl_check_USERNOTICE_compfunc_type(cmp))) +#define sk_USERNOTICE_new_null() ((STACK_OF(USERNOTICE) *)OPENSSL_sk_new_null()) +#define sk_USERNOTICE_new_reserve(cmp, n) ((STACK_OF(USERNOTICE) *)OPENSSL_sk_new_reserve(ossl_check_USERNOTICE_compfunc_type(cmp), (n))) +#define sk_USERNOTICE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_USERNOTICE_sk_type(sk), (n)) +#define sk_USERNOTICE_free(sk) OPENSSL_sk_free(ossl_check_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_zero(sk) OPENSSL_sk_zero(ossl_check_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_delete(sk, i) ((USERNOTICE *)OPENSSL_sk_delete(ossl_check_USERNOTICE_sk_type(sk), (i))) +#define sk_USERNOTICE_delete_ptr(sk, ptr) ((USERNOTICE *)OPENSSL_sk_delete_ptr(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr))) +#define sk_USERNOTICE_push(sk, ptr) OPENSSL_sk_push(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr)) +#define sk_USERNOTICE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr)) +#define sk_USERNOTICE_pop(sk) ((USERNOTICE *)OPENSSL_sk_pop(ossl_check_USERNOTICE_sk_type(sk))) +#define sk_USERNOTICE_shift(sk) ((USERNOTICE *)OPENSSL_sk_shift(ossl_check_USERNOTICE_sk_type(sk))) +#define sk_USERNOTICE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_USERNOTICE_sk_type(sk),ossl_check_USERNOTICE_freefunc_type(freefunc)) +#define sk_USERNOTICE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr), (idx)) +#define sk_USERNOTICE_set(sk, idx, ptr) ((USERNOTICE *)OPENSSL_sk_set(ossl_check_USERNOTICE_sk_type(sk), (idx), ossl_check_USERNOTICE_type(ptr))) +#define sk_USERNOTICE_find(sk, ptr) OPENSSL_sk_find(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr)) +#define sk_USERNOTICE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr)) +#define sk_USERNOTICE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr), pnum) +#define sk_USERNOTICE_sort(sk) OPENSSL_sk_sort(ossl_check_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_dup(sk) ((STACK_OF(USERNOTICE) *)OPENSSL_sk_dup(ossl_check_const_USERNOTICE_sk_type(sk))) +#define sk_USERNOTICE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(USERNOTICE) *)OPENSSL_sk_deep_copy(ossl_check_const_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_copyfunc_type(copyfunc), ossl_check_USERNOTICE_freefunc_type(freefunc))) +#define sk_USERNOTICE_set_cmp_func(sk, cmp) ((sk_USERNOTICE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_compfunc_type(cmp))) + + +typedef struct OSSL_ROLE_SPEC_CERT_ID_st { + GENERAL_NAME *roleName; + GENERAL_NAME *roleCertIssuer; + ASN1_INTEGER *roleCertSerialNumber; + GENERAL_NAMES *roleCertLocator; +} OSSL_ROLE_SPEC_CERT_ID; + +DECLARE_ASN1_FUNCTIONS(OSSL_ROLE_SPEC_CERT_ID) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ROLE_SPEC_CERT_ID, OSSL_ROLE_SPEC_CERT_ID, OSSL_ROLE_SPEC_CERT_ID) +#define sk_OSSL_ROLE_SPEC_CERT_ID_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_value(sk, idx) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_value(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), (idx))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_new(cmp) ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_new(ossl_check_OSSL_ROLE_SPEC_CERT_ID_compfunc_type(cmp))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_new_null() ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ROLE_SPEC_CERT_ID_new_reserve(cmp, n) ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ROLE_SPEC_CERT_ID_compfunc_type(cmp), (n))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), (n)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_delete(sk, i) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_delete(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), (i))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_delete_ptr(sk, ptr) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_pop(sk) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_pop(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_shift(sk) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_shift(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk),ossl_check_OSSL_ROLE_SPEC_CERT_ID_freefunc_type(freefunc)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr), (idx)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_set(sk, idx, ptr) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_set(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), (idx), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr), pnum) +#define sk_OSSL_ROLE_SPEC_CERT_ID_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_dup(sk) ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_copyfunc_type(copyfunc), ossl_check_OSSL_ROLE_SPEC_CERT_ID_freefunc_type(freefunc))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_set_cmp_func(sk, cmp) ((sk_OSSL_ROLE_SPEC_CERT_ID_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_compfunc_type(cmp))) + + +typedef STACK_OF(OSSL_ROLE_SPEC_CERT_ID) OSSL_ROLE_SPEC_CERT_ID_SYNTAX; + +DECLARE_ASN1_FUNCTIONS(OSSL_ROLE_SPEC_CERT_ID_SYNTAX) +typedef struct OSSL_HASH_st { + X509_ALGOR *algorithmIdentifier; + ASN1_BIT_STRING *hashValue; +} OSSL_HASH; + +typedef struct OSSL_INFO_SYNTAX_POINTER_st { + GENERAL_NAMES *name; + OSSL_HASH *hash; +} OSSL_INFO_SYNTAX_POINTER; + +# define OSSL_INFO_SYNTAX_TYPE_CONTENT 0 +# define OSSL_INFO_SYNTAX_TYPE_POINTER 1 + +typedef struct OSSL_INFO_SYNTAX_st { + int type; + union { + ASN1_STRING *content; + OSSL_INFO_SYNTAX_POINTER *pointer; + } choice; +} OSSL_INFO_SYNTAX; + +typedef struct OSSL_PRIVILEGE_POLICY_ID_st { + ASN1_OBJECT *privilegePolicy; + OSSL_INFO_SYNTAX *privPolSyntax; +} OSSL_PRIVILEGE_POLICY_ID; + +typedef struct OSSL_ATTRIBUTE_DESCRIPTOR_st { + ASN1_OBJECT *identifier; + ASN1_STRING *attributeSyntax; + ASN1_UTF8STRING *name; + ASN1_UTF8STRING *description; + OSSL_PRIVILEGE_POLICY_ID *dominationRule; +} OSSL_ATTRIBUTE_DESCRIPTOR; + +DECLARE_ASN1_FUNCTIONS(OSSL_HASH) +DECLARE_ASN1_FUNCTIONS(OSSL_INFO_SYNTAX) +DECLARE_ASN1_FUNCTIONS(OSSL_INFO_SYNTAX_POINTER) +DECLARE_ASN1_FUNCTIONS(OSSL_PRIVILEGE_POLICY_ID) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_DESCRIPTOR) + +typedef struct OSSL_TIME_SPEC_ABSOLUTE_st { + ASN1_GENERALIZEDTIME *startTime; + ASN1_GENERALIZEDTIME *endTime; +} OSSL_TIME_SPEC_ABSOLUTE; + +typedef struct OSSL_DAY_TIME_st { + ASN1_INTEGER *hour; + ASN1_INTEGER *minute; + ASN1_INTEGER *second; +} OSSL_DAY_TIME; + +typedef struct OSSL_DAY_TIME_BAND_st { + OSSL_DAY_TIME *startDayTime; + OSSL_DAY_TIME *endDayTime; +} OSSL_DAY_TIME_BAND; + +# define OSSL_NAMED_DAY_TYPE_INT 0 +# define OSSL_NAMED_DAY_TYPE_BIT 1 +# define OSSL_NAMED_DAY_INT_SUN 1 +# define OSSL_NAMED_DAY_INT_MON 2 +# define OSSL_NAMED_DAY_INT_TUE 3 +# define OSSL_NAMED_DAY_INT_WED 4 +# define OSSL_NAMED_DAY_INT_THU 5 +# define OSSL_NAMED_DAY_INT_FRI 6 +# define OSSL_NAMED_DAY_INT_SAT 7 +# define OSSL_NAMED_DAY_BIT_SUN 0 +# define OSSL_NAMED_DAY_BIT_MON 1 +# define OSSL_NAMED_DAY_BIT_TUE 2 +# define OSSL_NAMED_DAY_BIT_WED 3 +# define OSSL_NAMED_DAY_BIT_THU 4 +# define OSSL_NAMED_DAY_BIT_FRI 5 +# define OSSL_NAMED_DAY_BIT_SAT 6 + +typedef struct OSSL_NAMED_DAY_st { + int type; + union { + ASN1_INTEGER *intNamedDays; + ASN1_BIT_STRING *bitNamedDays; + } choice; +} OSSL_NAMED_DAY; + +# define OSSL_TIME_SPEC_X_DAY_OF_FIRST 0 +# define OSSL_TIME_SPEC_X_DAY_OF_SECOND 1 +# define OSSL_TIME_SPEC_X_DAY_OF_THIRD 2 +# define OSSL_TIME_SPEC_X_DAY_OF_FOURTH 3 +# define OSSL_TIME_SPEC_X_DAY_OF_FIFTH 4 + +typedef struct OSSL_TIME_SPEC_X_DAY_OF_st { + int type; + union { + OSSL_NAMED_DAY *first; + OSSL_NAMED_DAY *second; + OSSL_NAMED_DAY *third; + OSSL_NAMED_DAY *fourth; + OSSL_NAMED_DAY *fifth; + } choice; +} OSSL_TIME_SPEC_X_DAY_OF; + +# define OSSL_TIME_SPEC_DAY_TYPE_INT 0 +# define OSSL_TIME_SPEC_DAY_TYPE_BIT 1 +# define OSSL_TIME_SPEC_DAY_TYPE_DAY_OF 2 +# define OSSL_TIME_SPEC_DAY_BIT_SUN 0 +# define OSSL_TIME_SPEC_DAY_BIT_MON 1 +# define OSSL_TIME_SPEC_DAY_BIT_TUE 2 +# define OSSL_TIME_SPEC_DAY_BIT_WED 3 +# define OSSL_TIME_SPEC_DAY_BIT_THU 4 +# define OSSL_TIME_SPEC_DAY_BIT_FRI 5 +# define OSSL_TIME_SPEC_DAY_BIT_SAT 6 +# define OSSL_TIME_SPEC_DAY_INT_SUN 1 +# define OSSL_TIME_SPEC_DAY_INT_MON 2 +# define OSSL_TIME_SPEC_DAY_INT_TUE 3 +# define OSSL_TIME_SPEC_DAY_INT_WED 4 +# define OSSL_TIME_SPEC_DAY_INT_THU 5 +# define OSSL_TIME_SPEC_DAY_INT_FRI 6 +# define OSSL_TIME_SPEC_DAY_INT_SAT 7 + +typedef struct OSSL_TIME_SPEC_DAY_st { + int type; + union { + STACK_OF(ASN1_INTEGER) *intDay; + ASN1_BIT_STRING *bitDay; + OSSL_TIME_SPEC_X_DAY_OF *dayOf; + } choice; +} OSSL_TIME_SPEC_DAY; + +# define OSSL_TIME_SPEC_WEEKS_TYPE_ALL 0 +# define OSSL_TIME_SPEC_WEEKS_TYPE_INT 1 +# define OSSL_TIME_SPEC_WEEKS_TYPE_BIT 2 +# define OSSL_TIME_SPEC_BIT_WEEKS_1 0 +# define OSSL_TIME_SPEC_BIT_WEEKS_2 1 +# define OSSL_TIME_SPEC_BIT_WEEKS_3 2 +# define OSSL_TIME_SPEC_BIT_WEEKS_4 3 +# define OSSL_TIME_SPEC_BIT_WEEKS_5 4 + +typedef struct OSSL_TIME_SPEC_WEEKS_st { + int type; + union { + ASN1_NULL *allWeeks; + STACK_OF(ASN1_INTEGER) *intWeek; + ASN1_BIT_STRING *bitWeek; + } choice; +} OSSL_TIME_SPEC_WEEKS; + +# define OSSL_TIME_SPEC_MONTH_TYPE_ALL 0 +# define OSSL_TIME_SPEC_MONTH_TYPE_INT 1 +# define OSSL_TIME_SPEC_MONTH_TYPE_BIT 2 +# define OSSL_TIME_SPEC_INT_MONTH_JAN 1 +# define OSSL_TIME_SPEC_INT_MONTH_FEB 2 +# define OSSL_TIME_SPEC_INT_MONTH_MAR 3 +# define OSSL_TIME_SPEC_INT_MONTH_APR 4 +# define OSSL_TIME_SPEC_INT_MONTH_MAY 5 +# define OSSL_TIME_SPEC_INT_MONTH_JUN 6 +# define OSSL_TIME_SPEC_INT_MONTH_JUL 7 +# define OSSL_TIME_SPEC_INT_MONTH_AUG 8 +# define OSSL_TIME_SPEC_INT_MONTH_SEP 9 +# define OSSL_TIME_SPEC_INT_MONTH_OCT 10 +# define OSSL_TIME_SPEC_INT_MONTH_NOV 11 +# define OSSL_TIME_SPEC_INT_MONTH_DEC 12 +# define OSSL_TIME_SPEC_BIT_MONTH_JAN 0 +# define OSSL_TIME_SPEC_BIT_MONTH_FEB 1 +# define OSSL_TIME_SPEC_BIT_MONTH_MAR 2 +# define OSSL_TIME_SPEC_BIT_MONTH_APR 3 +# define OSSL_TIME_SPEC_BIT_MONTH_MAY 4 +# define OSSL_TIME_SPEC_BIT_MONTH_JUN 5 +# define OSSL_TIME_SPEC_BIT_MONTH_JUL 6 +# define OSSL_TIME_SPEC_BIT_MONTH_AUG 7 +# define OSSL_TIME_SPEC_BIT_MONTH_SEP 8 +# define OSSL_TIME_SPEC_BIT_MONTH_OCT 9 +# define OSSL_TIME_SPEC_BIT_MONTH_NOV 10 +# define OSSL_TIME_SPEC_BIT_MONTH_DEC 11 + +typedef struct OSSL_TIME_SPEC_MONTH_st { + int type; + union { + ASN1_NULL *allMonths; + STACK_OF(ASN1_INTEGER) *intMonth; + ASN1_BIT_STRING *bitMonth; + } choice; +} OSSL_TIME_SPEC_MONTH; + +typedef struct OSSL_TIME_PERIOD_st { + STACK_OF(OSSL_DAY_TIME_BAND) *timesOfDay; + OSSL_TIME_SPEC_DAY *days; + OSSL_TIME_SPEC_WEEKS *weeks; + OSSL_TIME_SPEC_MONTH *months; + STACK_OF(ASN1_INTEGER) *years; +} OSSL_TIME_PERIOD; + +# define OSSL_TIME_SPEC_TIME_TYPE_ABSOLUTE 0 +# define OSSL_TIME_SPEC_TIME_TYPE_PERIODIC 1 + +typedef struct OSSL_TIME_SPEC_TIME_st { + int type; + union { + OSSL_TIME_SPEC_ABSOLUTE *absolute; + STACK_OF(OSSL_TIME_PERIOD) *periodic; + } choice; +} OSSL_TIME_SPEC_TIME; + +typedef struct OSSL_TIME_SPEC_st { + OSSL_TIME_SPEC_TIME *time; + ASN1_BOOLEAN notThisTime; + ASN1_INTEGER *timeZone; +} OSSL_TIME_SPEC; + +DECLARE_ASN1_FUNCTIONS(OSSL_DAY_TIME) +DECLARE_ASN1_FUNCTIONS(OSSL_DAY_TIME_BAND) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_DAY) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_WEEKS) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_MONTH) +DECLARE_ASN1_FUNCTIONS(OSSL_NAMED_DAY) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_X_DAY_OF) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_ABSOLUTE) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_TIME) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_PERIOD) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_TIME_PERIOD, OSSL_TIME_PERIOD, OSSL_TIME_PERIOD) +#define sk_OSSL_TIME_PERIOD_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_value(sk, idx) ((OSSL_TIME_PERIOD *)OPENSSL_sk_value(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk), (idx))) +#define sk_OSSL_TIME_PERIOD_new(cmp) ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_new(ossl_check_OSSL_TIME_PERIOD_compfunc_type(cmp))) +#define sk_OSSL_TIME_PERIOD_new_null() ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_new_null()) +#define sk_OSSL_TIME_PERIOD_new_reserve(cmp, n) ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_TIME_PERIOD_compfunc_type(cmp), (n))) +#define sk_OSSL_TIME_PERIOD_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), (n)) +#define sk_OSSL_TIME_PERIOD_free(sk) OPENSSL_sk_free(ossl_check_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_delete(sk, i) ((OSSL_TIME_PERIOD *)OPENSSL_sk_delete(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), (i))) +#define sk_OSSL_TIME_PERIOD_delete_ptr(sk, ptr) ((OSSL_TIME_PERIOD *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr))) +#define sk_OSSL_TIME_PERIOD_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr)) +#define sk_OSSL_TIME_PERIOD_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr)) +#define sk_OSSL_TIME_PERIOD_pop(sk) ((OSSL_TIME_PERIOD *)OPENSSL_sk_pop(ossl_check_OSSL_TIME_PERIOD_sk_type(sk))) +#define sk_OSSL_TIME_PERIOD_shift(sk) ((OSSL_TIME_PERIOD *)OPENSSL_sk_shift(ossl_check_OSSL_TIME_PERIOD_sk_type(sk))) +#define sk_OSSL_TIME_PERIOD_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_TIME_PERIOD_sk_type(sk),ossl_check_OSSL_TIME_PERIOD_freefunc_type(freefunc)) +#define sk_OSSL_TIME_PERIOD_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr), (idx)) +#define sk_OSSL_TIME_PERIOD_set(sk, idx, ptr) ((OSSL_TIME_PERIOD *)OPENSSL_sk_set(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), (idx), ossl_check_OSSL_TIME_PERIOD_type(ptr))) +#define sk_OSSL_TIME_PERIOD_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr)) +#define sk_OSSL_TIME_PERIOD_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr)) +#define sk_OSSL_TIME_PERIOD_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr), pnum) +#define sk_OSSL_TIME_PERIOD_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_dup(sk) ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_dup(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk))) +#define sk_OSSL_TIME_PERIOD_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_copyfunc_type(copyfunc), ossl_check_OSSL_TIME_PERIOD_freefunc_type(freefunc))) +#define sk_OSSL_TIME_PERIOD_set_cmp_func(sk, cmp) ((sk_OSSL_TIME_PERIOD_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_compfunc_type(cmp))) + + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_DAY_TIME_BAND, OSSL_DAY_TIME_BAND, OSSL_DAY_TIME_BAND) +#define sk_OSSL_DAY_TIME_BAND_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_value(sk, idx) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_value(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk), (idx))) +#define sk_OSSL_DAY_TIME_BAND_new(cmp) ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_new(ossl_check_OSSL_DAY_TIME_BAND_compfunc_type(cmp))) +#define sk_OSSL_DAY_TIME_BAND_new_null() ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_new_null()) +#define sk_OSSL_DAY_TIME_BAND_new_reserve(cmp, n) ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_DAY_TIME_BAND_compfunc_type(cmp), (n))) +#define sk_OSSL_DAY_TIME_BAND_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), (n)) +#define sk_OSSL_DAY_TIME_BAND_free(sk) OPENSSL_sk_free(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_delete(sk, i) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_delete(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), (i))) +#define sk_OSSL_DAY_TIME_BAND_delete_ptr(sk, ptr) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr))) +#define sk_OSSL_DAY_TIME_BAND_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr)) +#define sk_OSSL_DAY_TIME_BAND_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr)) +#define sk_OSSL_DAY_TIME_BAND_pop(sk) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_pop(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk))) +#define sk_OSSL_DAY_TIME_BAND_shift(sk) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_shift(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk))) +#define sk_OSSL_DAY_TIME_BAND_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk),ossl_check_OSSL_DAY_TIME_BAND_freefunc_type(freefunc)) +#define sk_OSSL_DAY_TIME_BAND_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr), (idx)) +#define sk_OSSL_DAY_TIME_BAND_set(sk, idx, ptr) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_set(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), (idx), ossl_check_OSSL_DAY_TIME_BAND_type(ptr))) +#define sk_OSSL_DAY_TIME_BAND_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr)) +#define sk_OSSL_DAY_TIME_BAND_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr)) +#define sk_OSSL_DAY_TIME_BAND_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr), pnum) +#define sk_OSSL_DAY_TIME_BAND_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_dup(sk) ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_dup(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk))) +#define sk_OSSL_DAY_TIME_BAND_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_copyfunc_type(copyfunc), ossl_check_OSSL_DAY_TIME_BAND_freefunc_type(freefunc))) +#define sk_OSSL_DAY_TIME_BAND_set_cmp_func(sk, cmp) ((sk_OSSL_DAY_TIME_BAND_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_compfunc_type(cmp))) + + +/* Attribute Type and Value */ +typedef struct atav_st { + ASN1_OBJECT *type; + ASN1_TYPE *value; +} OSSL_ATAV; + +typedef struct ATTRIBUTE_TYPE_MAPPING_st { + ASN1_OBJECT *local; + ASN1_OBJECT *remote; +} OSSL_ATTRIBUTE_TYPE_MAPPING; + +typedef struct ATTRIBUTE_VALUE_MAPPING_st { + OSSL_ATAV *local; + OSSL_ATAV *remote; +} OSSL_ATTRIBUTE_VALUE_MAPPING; + +# define OSSL_ATTR_MAP_TYPE 0 +# define OSSL_ATTR_MAP_VALUE 1 + +typedef struct ATTRIBUTE_MAPPING_st { + int type; + union { + OSSL_ATTRIBUTE_TYPE_MAPPING *typeMappings; + OSSL_ATTRIBUTE_VALUE_MAPPING *typeValueMappings; + } choice; +} OSSL_ATTRIBUTE_MAPPING; + +typedef STACK_OF(OSSL_ATTRIBUTE_MAPPING) OSSL_ATTRIBUTE_MAPPINGS; +DECLARE_ASN1_FUNCTIONS(OSSL_ATAV) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_TYPE_MAPPING) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_VALUE_MAPPING) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_MAPPING) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_MAPPINGS) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ATTRIBUTE_MAPPING, OSSL_ATTRIBUTE_MAPPING, OSSL_ATTRIBUTE_MAPPING) +#define sk_OSSL_ATTRIBUTE_MAPPING_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_value(sk, idx) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_value(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), (idx))) +#define sk_OSSL_ATTRIBUTE_MAPPING_new(cmp) ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_new(ossl_check_OSSL_ATTRIBUTE_MAPPING_compfunc_type(cmp))) +#define sk_OSSL_ATTRIBUTE_MAPPING_new_null() ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ATTRIBUTE_MAPPING_new_reserve(cmp, n) ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ATTRIBUTE_MAPPING_compfunc_type(cmp), (n))) +#define sk_OSSL_ATTRIBUTE_MAPPING_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), (n)) +#define sk_OSSL_ATTRIBUTE_MAPPING_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_delete(sk, i) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_delete(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), (i))) +#define sk_OSSL_ATTRIBUTE_MAPPING_delete_ptr(sk, ptr) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr))) +#define sk_OSSL_ATTRIBUTE_MAPPING_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr)) +#define sk_OSSL_ATTRIBUTE_MAPPING_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr)) +#define sk_OSSL_ATTRIBUTE_MAPPING_pop(sk) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_pop(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk))) +#define sk_OSSL_ATTRIBUTE_MAPPING_shift(sk) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_shift(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk))) +#define sk_OSSL_ATTRIBUTE_MAPPING_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk),ossl_check_OSSL_ATTRIBUTE_MAPPING_freefunc_type(freefunc)) +#define sk_OSSL_ATTRIBUTE_MAPPING_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr), (idx)) +#define sk_OSSL_ATTRIBUTE_MAPPING_set(sk, idx, ptr) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_set(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), (idx), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr))) +#define sk_OSSL_ATTRIBUTE_MAPPING_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr)) +#define sk_OSSL_ATTRIBUTE_MAPPING_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr)) +#define sk_OSSL_ATTRIBUTE_MAPPING_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr), pnum) +#define sk_OSSL_ATTRIBUTE_MAPPING_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_dup(sk) ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk))) +#define sk_OSSL_ATTRIBUTE_MAPPING_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_copyfunc_type(copyfunc), ossl_check_OSSL_ATTRIBUTE_MAPPING_freefunc_type(freefunc))) +#define sk_OSSL_ATTRIBUTE_MAPPING_set_cmp_func(sk, cmp) ((sk_OSSL_ATTRIBUTE_MAPPING_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_compfunc_type(cmp))) + + +# define OSSL_AAA_ATTRIBUTE_TYPE 0 +# define OSSL_AAA_ATTRIBUTE_VALUES 1 + +typedef struct ALLOWED_ATTRIBUTES_CHOICE_st { + int type; + union { + ASN1_OBJECT *attributeType; + X509_ATTRIBUTE *attributeTypeandValues; + } choice; +} OSSL_ALLOWED_ATTRIBUTES_CHOICE; + +typedef struct ALLOWED_ATTRIBUTES_ITEM_st { + STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *attributes; + GENERAL_NAME *holderDomain; +} OSSL_ALLOWED_ATTRIBUTES_ITEM; + +typedef STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) OSSL_ALLOWED_ATTRIBUTES_SYNTAX; + +DECLARE_ASN1_FUNCTIONS(OSSL_ALLOWED_ATTRIBUTES_CHOICE) +DECLARE_ASN1_FUNCTIONS(OSSL_ALLOWED_ATTRIBUTES_ITEM) +DECLARE_ASN1_FUNCTIONS(OSSL_ALLOWED_ATTRIBUTES_SYNTAX) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ALLOWED_ATTRIBUTES_CHOICE, OSSL_ALLOWED_ATTRIBUTES_CHOICE, OSSL_ALLOWED_ATTRIBUTES_CHOICE) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_value(sk, idx) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_value(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), (idx))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_new(cmp) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_new(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_compfunc_type(cmp))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_new_null() ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_new_reserve(cmp, n) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_compfunc_type(cmp), (n))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), (n)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_delete(sk, i) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_delete(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), (i))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_delete_ptr(sk, ptr) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_pop(sk) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_pop(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_shift(sk) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_shift(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk),ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_freefunc_type(freefunc)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr), (idx)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_set(sk, idx, ptr) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_set(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), (idx), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr), pnum) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_dup(sk) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_copyfunc_type(copyfunc), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_freefunc_type(freefunc))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_set_cmp_func(sk, cmp) ((sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_compfunc_type(cmp))) + + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ALLOWED_ATTRIBUTES_ITEM, OSSL_ALLOWED_ATTRIBUTES_ITEM, OSSL_ALLOWED_ATTRIBUTES_ITEM) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_value(sk, idx) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_value(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), (idx))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_new(cmp) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_new(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_compfunc_type(cmp))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_new_null() ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_new_reserve(cmp, n) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_compfunc_type(cmp), (n))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), (n)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_delete(sk, i) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_delete(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), (i))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_delete_ptr(sk, ptr) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_pop(sk) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_pop(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_shift(sk) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_shift(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk),ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_freefunc_type(freefunc)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr), (idx)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_set(sk, idx, ptr) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_set(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), (idx), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr), pnum) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_dup(sk) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_copyfunc_type(copyfunc), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_freefunc_type(freefunc))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_set_cmp_func(sk, cmp) ((sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_compfunc_type(cmp))) + + +typedef struct AA_DIST_POINT_st { + DIST_POINT_NAME *distpoint; + ASN1_BIT_STRING *reasons; + int dp_reasons; + ASN1_BOOLEAN indirectCRL; + ASN1_BOOLEAN containsUserAttributeCerts; + ASN1_BOOLEAN containsAACerts; + ASN1_BOOLEAN containsSOAPublicKeyCerts; +} OSSL_AA_DIST_POINT; + +DECLARE_ASN1_FUNCTIONS(OSSL_AA_DIST_POINT) + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/linux-armv4/asm/include/progs.h b/deps/openssl/config/archs/linux-armv4/asm/include/progs.h index be55f61503d405..1b62ec37dec130 100644 --- a/deps/openssl/config/archs/linux-armv4/asm/include/progs.h +++ b/deps/openssl/config/archs/linux-armv4/asm/include/progs.h @@ -56,6 +56,7 @@ extern int s_client_main(int argc, char *argv[]); extern int s_server_main(int argc, char *argv[]); extern int s_time_main(int argc, char *argv[]); extern int sess_id_main(int argc, char *argv[]); +extern int skeyutl_main(int argc, char *argv[]); extern int smime_main(int argc, char *argv[]); extern int speed_main(int argc, char *argv[]); extern int spkac_main(int argc, char *argv[]); @@ -110,6 +111,7 @@ extern const OPTIONS s_client_options[]; extern const OPTIONS s_server_options[]; extern const OPTIONS s_time_options[]; extern const OPTIONS sess_id_options[]; +extern const OPTIONS skeyutl_options[]; extern const OPTIONS smime_options[]; extern const OPTIONS speed_options[]; extern const OPTIONS spkac_options[]; diff --git a/deps/openssl/config/archs/linux-armv4/asm/openssl-cl.gypi b/deps/openssl/config/archs/linux-armv4/asm/openssl-cl.gypi index 0b29d69ac529ef..fa39659907c624 100644 --- a/deps/openssl/config/archs/linux-armv4/asm/openssl-cl.gypi +++ b/deps/openssl/config/archs/linux-armv4/asm/openssl-cl.gypi @@ -74,6 +74,7 @@ 'openssl/apps/s_server.c', 'openssl/apps/s_time.c', 'openssl/apps/sess_id.c', + 'openssl/apps/skeyutl.c', 'openssl/apps/smime.c', 'openssl/apps/speed.c', 'openssl/apps/spkac.c', @@ -89,12 +90,14 @@ 'openssl/apps/lib/app_rand.c', 'openssl/apps/lib/app_x509.c', 'openssl/apps/lib/apps.c', + 'openssl/apps/lib/apps_opt_printf.c', 'openssl/apps/lib/apps_ui.c', 'openssl/apps/lib/columns.c', 'openssl/apps/lib/engine.c', 'openssl/apps/lib/engine_loader.c', 'openssl/apps/lib/fmt.c', 'openssl/apps/lib/http_server.c', + 'openssl/apps/lib/log.c', 'openssl/apps/lib/names.c', 'openssl/apps/lib/opt.c', 'openssl/apps/lib/s_cb.c', diff --git a/deps/openssl/config/archs/linux-armv4/asm/openssl-fips.gypi b/deps/openssl/config/archs/linux-armv4/asm/openssl-fips.gypi index 98918f2400bea1..0dcd7f9537f528 100644 --- a/deps/openssl/config/archs/linux-armv4/asm/openssl-fips.gypi +++ b/deps/openssl/config/archs/linux-armv4/asm/openssl-fips.gypi @@ -100,14 +100,15 @@ 'openssl/crypto/evp/kem.c', 'openssl/crypto/evp/keymgmt_lib.c', 'openssl/crypto/evp/keymgmt_meth.c', - 'openssl/crypto/evp/m_sigver.c', 'openssl/crypto/evp/mac_lib.c', 'openssl/crypto/evp/mac_meth.c', 'openssl/crypto/evp/p_lib.c', 'openssl/crypto/evp/pmeth_check.c', 'openssl/crypto/evp/pmeth_gn.c', 'openssl/crypto/evp/pmeth_lib.c', + 'openssl/crypto/evp/s_lib.c', 'openssl/crypto/evp/signature.c', + 'openssl/crypto/evp/skeymgmt_meth.c', 'openssl/crypto/ffc/ffc_backend.c', 'openssl/crypto/ffc/ffc_dh.c', 'openssl/crypto/ffc/ffc_key_generate.c', @@ -115,6 +116,8 @@ 'openssl/crypto/ffc/ffc_params.c', 'openssl/crypto/ffc/ffc_params_generate.c', 'openssl/crypto/ffc/ffc_params_validate.c', + 'openssl/crypto/hashtable/hashfunc.c', + 'openssl/crypto/hashtable/hashtable.c', 'openssl/crypto/hmac/hmac.c', 'openssl/crypto/lhash/lhash.c', 'openssl/crypto/armcap.c', @@ -145,6 +148,16 @@ 'openssl/crypto/threads_none.c', 'openssl/crypto/threads_pthread.c', 'openssl/crypto/threads_win.c', + 'openssl/crypto/time.c', + 'openssl/crypto/ml_dsa/ml_dsa_encoders.c', + 'openssl/crypto/ml_dsa/ml_dsa_key.c', + 'openssl/crypto/ml_dsa/ml_dsa_key_compress.c', + 'openssl/crypto/ml_dsa/ml_dsa_matrix.c', + 'openssl/crypto/ml_dsa/ml_dsa_ntt.c', + 'openssl/crypto/ml_dsa/ml_dsa_params.c', + 'openssl/crypto/ml_dsa/ml_dsa_sample.c', + 'openssl/crypto/ml_dsa/ml_dsa_sign.c', + 'openssl/crypto/ml_kem/ml_kem.c', 'openssl/crypto/modes/cbc128.c', 'openssl/crypto/modes/ccm128.c', 'openssl/crypto/modes/cfb128.c', @@ -153,6 +166,7 @@ 'openssl/crypto/modes/ofb128.c', 'openssl/crypto/modes/wrap128.c', 'openssl/crypto/modes/xts128.c', + 'openssl/crypto/modes/xts128gb.c', 'openssl/crypto/property/defn_cache.c', 'openssl/crypto/property/property.c', 'openssl/crypto/property/property_parse.c', @@ -180,7 +194,23 @@ 'openssl/crypto/sha/sha256.c', 'openssl/crypto/sha/sha3.c', 'openssl/crypto/sha/sha512.c', + 'openssl/crypto/slh_dsa/slh_adrs.c', + 'openssl/crypto/slh_dsa/slh_dsa.c', + 'openssl/crypto/slh_dsa/slh_dsa_hash_ctx.c', + 'openssl/crypto/slh_dsa/slh_dsa_key.c', + 'openssl/crypto/slh_dsa/slh_fors.c', + 'openssl/crypto/slh_dsa/slh_hash.c', + 'openssl/crypto/slh_dsa/slh_hypertree.c', + 'openssl/crypto/slh_dsa/slh_params.c', + 'openssl/crypto/slh_dsa/slh_wots.c', + 'openssl/crypto/slh_dsa/slh_xmss.c', 'openssl/crypto/stack/stack.c', + 'openssl/crypto/thread/arch/thread_none.c', + 'openssl/crypto/thread/arch/thread_posix.c', + 'openssl/crypto/thread/arch/thread_win.c', + 'openssl/crypto/thread/api.c', + 'openssl/crypto/thread/arch.c', + 'openssl/crypto/thread/internal.c', 'openssl/providers/common/der/der_rsa_sig.c', 'openssl/providers/common/bio_prov.c', 'openssl/providers/common/capabilities.c', @@ -189,6 +219,7 @@ 'openssl/providers/common/provider_util.c', 'openssl/providers/common/securitycheck.c', 'openssl/providers/common/securitycheck_fips.c', + 'openssl/providers/fips/fipsindicator.c', 'openssl/providers/fips/fipsprov.c', 'openssl/providers/fips/self_test.c', 'openssl/providers/fips/self_test_kats.c', @@ -226,6 +257,8 @@ 'openssl/providers/implementations/kdfs/sskdf.c', 'openssl/providers/implementations/kdfs/tls1_prf.c', 'openssl/providers/implementations/kdfs/x942kdf.c', + 'openssl/providers/implementations/kem/ml_kem_kem.c', + 'openssl/providers/implementations/kem/mlx_kem.c', 'openssl/providers/implementations/kem/rsa_kem.c', 'openssl/providers/implementations/keymgmt/dh_kmgmt.c', 'openssl/providers/implementations/keymgmt/dsa_kmgmt.c', @@ -233,29 +266,39 @@ 'openssl/providers/implementations/keymgmt/ecx_kmgmt.c', 'openssl/providers/implementations/keymgmt/kdf_legacy_kmgmt.c', 'openssl/providers/implementations/keymgmt/mac_legacy_kmgmt.c', + 'openssl/providers/implementations/keymgmt/ml_dsa_kmgmt.c', + 'openssl/providers/implementations/keymgmt/ml_kem_kmgmt.c', + 'openssl/providers/implementations/keymgmt/mlx_kmgmt.c', 'openssl/providers/implementations/keymgmt/rsa_kmgmt.c', + 'openssl/providers/implementations/keymgmt/slh_dsa_kmgmt.c', 'openssl/providers/implementations/macs/cmac_prov.c', 'openssl/providers/implementations/macs/gmac_prov.c', 'openssl/providers/implementations/macs/hmac_prov.c', 'openssl/providers/implementations/macs/kmac_prov.c', - 'openssl/providers/implementations/rands/crngt.c', 'openssl/providers/implementations/rands/drbg.c', 'openssl/providers/implementations/rands/drbg_ctr.c', 'openssl/providers/implementations/rands/drbg_hash.c', 'openssl/providers/implementations/rands/drbg_hmac.c', + 'openssl/providers/implementations/rands/fips_crng_test.c', 'openssl/providers/implementations/rands/test_rng.c', 'openssl/providers/implementations/signature/dsa_sig.c', 'openssl/providers/implementations/signature/ecdsa_sig.c', 'openssl/providers/implementations/signature/eddsa_sig.c', 'openssl/providers/implementations/signature/mac_legacy_sig.c', + 'openssl/providers/implementations/signature/ml_dsa_sig.c', 'openssl/providers/implementations/signature/rsa_sig.c', - 'openssl/ssl/s3_cbc.c', + 'openssl/providers/implementations/signature/slh_dsa_sig.c', + 'openssl/providers/implementations/skeymgmt/aes_skmgmt.c', + 'openssl/providers/implementations/skeymgmt/generic.c', + 'openssl/ssl/record/methods/ssl3_cbc.c', 'openssl/providers/common/der/der_dsa_key.c', 'openssl/providers/common/der/der_dsa_sig.c', 'openssl/providers/common/der/der_ec_key.c', 'openssl/providers/common/der/der_ec_sig.c', 'openssl/providers/common/der/der_ecx_key.c', + 'openssl/providers/common/der/der_ml_dsa_key.c', 'openssl/providers/common/der/der_rsa_key.c', + 'openssl/providers/common/der/der_slh_dsa_key.c', 'openssl/providers/common/provider_ctx.c', 'openssl/providers/common/provider_err.c', 'openssl/providers/implementations/ciphers/ciphercommon.c', @@ -266,7 +309,7 @@ 'openssl/providers/implementations/ciphers/ciphercommon_gcm_hw.c', 'openssl/providers/implementations/ciphers/ciphercommon_hw.c', 'openssl/providers/implementations/digests/digestcommon.c', - 'openssl/ssl/record/tls_pad.c', + 'openssl/ssl/record/methods/tls_pad.c', 'openssl/providers/fips/fips_entry.c', ], @@ -279,6 +322,7 @@ './config/archs/linux-armv4/asm/crypto/chacha/chacha-armv4.S', './config/archs/linux-armv4/asm/crypto/ec/ecp_nistz256-armv4.S', './config/archs/linux-armv4/asm/crypto/armv4cpuid.S', + './config/archs/linux-armv4/asm/crypto/params_idx.c', './config/archs/linux-armv4/asm/crypto/modes/ghash-armv4.S', './config/archs/linux-armv4/asm/crypto/modes/ghashv8-armx.S', './config/archs/linux-armv4/asm/crypto/poly1305/poly1305-armv4.S', @@ -291,7 +335,9 @@ './config/archs/linux-armv4/asm/providers/common/der/der_dsa_gen.c', './config/archs/linux-armv4/asm/providers/common/der/der_ec_gen.c', './config/archs/linux-armv4/asm/providers/common/der/der_ecx_gen.c', + './config/archs/linux-armv4/asm/providers/common/der/der_ml_dsa_gen.c', './config/archs/linux-armv4/asm/providers/common/der/der_rsa_gen.c', + './config/archs/linux-armv4/asm/providers/common/der/der_slh_dsa_gen.c', './config/archs/linux-armv4/asm/providers/common/der/der_wrap_gen.c', './config/archs/linux-armv4/asm/providers/legacy.ld', './config/archs/linux-armv4/asm/providers/fips.ld', diff --git a/deps/openssl/config/archs/linux-armv4/asm/openssl.gypi b/deps/openssl/config/archs/linux-armv4/asm/openssl.gypi index 849f58d4bdb02b..7e164a7b1b14a2 100644 --- a/deps/openssl/config/archs/linux-armv4/asm/openssl.gypi +++ b/deps/openssl/config/archs/linux-armv4/asm/openssl.gypi @@ -7,14 +7,15 @@ 'openssl/ssl/d1_srtp.c', 'openssl/ssl/methods.c', 'openssl/ssl/pqueue.c', + 'openssl/ssl/priority_queue.c', 'openssl/ssl/s3_enc.c', 'openssl/ssl/s3_lib.c', 'openssl/ssl/s3_msg.c', 'openssl/ssl/ssl_asn1.c', 'openssl/ssl/ssl_cert.c', + 'openssl/ssl/ssl_cert_comp.c', 'openssl/ssl/ssl_ciph.c', 'openssl/ssl/ssl_conf.c', - 'openssl/ssl/ssl_err.c', 'openssl/ssl/ssl_err_legacy.c', 'openssl/ssl/ssl_init.c', 'openssl/ssl/ssl_lib.c', @@ -31,12 +32,60 @@ 'openssl/ssl/tls13_enc.c', 'openssl/ssl/tls_depr.c', 'openssl/ssl/tls_srp.c', - 'openssl/ssl/record/dtls1_bitmap.c', + 'openssl/ssl/quic/cc_newreno.c', + 'openssl/ssl/quic/json_enc.c', + 'openssl/ssl/quic/qlog.c', + 'openssl/ssl/quic/qlog_event_helpers.c', + 'openssl/ssl/quic/quic_ackm.c', + 'openssl/ssl/quic/quic_cfq.c', + 'openssl/ssl/quic/quic_channel.c', + 'openssl/ssl/quic/quic_demux.c', + 'openssl/ssl/quic/quic_engine.c', + 'openssl/ssl/quic/quic_fc.c', + 'openssl/ssl/quic/quic_fifd.c', + 'openssl/ssl/quic/quic_impl.c', + 'openssl/ssl/quic/quic_lcidm.c', + 'openssl/ssl/quic/quic_method.c', + 'openssl/ssl/quic/quic_obj.c', + 'openssl/ssl/quic/quic_port.c', + 'openssl/ssl/quic/quic_rcidm.c', + 'openssl/ssl/quic/quic_reactor.c', + 'openssl/ssl/quic/quic_reactor_wait_ctx.c', + 'openssl/ssl/quic/quic_record_rx.c', + 'openssl/ssl/quic/quic_record_shared.c', + 'openssl/ssl/quic/quic_record_tx.c', + 'openssl/ssl/quic/quic_record_util.c', + 'openssl/ssl/quic/quic_rstream.c', + 'openssl/ssl/quic/quic_rx_depack.c', + 'openssl/ssl/quic/quic_sf_list.c', + 'openssl/ssl/quic/quic_srt_gen.c', + 'openssl/ssl/quic/quic_srtm.c', + 'openssl/ssl/quic/quic_sstream.c', + 'openssl/ssl/quic/quic_statm.c', + 'openssl/ssl/quic/quic_stream_map.c', + 'openssl/ssl/quic/quic_thread_assist.c', + 'openssl/ssl/quic/quic_tls.c', + 'openssl/ssl/quic/quic_tls_api.c', + 'openssl/ssl/quic/quic_trace.c', + 'openssl/ssl/quic/quic_tserver.c', + 'openssl/ssl/quic/quic_txp.c', + 'openssl/ssl/quic/quic_txpim.c', + 'openssl/ssl/quic/quic_types.c', + 'openssl/ssl/quic/quic_wire.c', + 'openssl/ssl/quic/quic_wire_pkt.c', + 'openssl/ssl/quic/uint_set.c', 'openssl/ssl/record/rec_layer_d1.c', 'openssl/ssl/record/rec_layer_s3.c', - 'openssl/ssl/record/ssl3_buffer.c', - 'openssl/ssl/record/ssl3_record.c', - 'openssl/ssl/record/ssl3_record_tls13.c', + 'openssl/ssl/record/methods/dtls_meth.c', + 'openssl/ssl/record/methods/ssl3_meth.c', + 'openssl/ssl/record/methods/tls13_meth.c', + 'openssl/ssl/record/methods/tls1_meth.c', + 'openssl/ssl/record/methods/tls_common.c', + 'openssl/ssl/record/methods/tls_multib.c', + 'openssl/ssl/record/methods/tlsany_meth.c', + 'openssl/ssl/rio/poll_builder.c', + 'openssl/ssl/rio/poll_immediate.c', + 'openssl/ssl/rio/rio_notifier.c', 'openssl/ssl/statem/extensions.c', 'openssl/ssl/statem/extensions_clnt.c', 'openssl/ssl/statem/extensions_cust.c', @@ -149,6 +198,7 @@ 'openssl/crypto/bio/bss_conn.c', 'openssl/crypto/bio/bss_core.c', 'openssl/crypto/bio/bss_dgram.c', + 'openssl/crypto/bio/bss_dgram_pair.c', 'openssl/crypto/bio/bss_fd.c', 'openssl/crypto/bio/bss_file.c', 'openssl/crypto/bio/bss_log.c', @@ -208,6 +258,7 @@ 'openssl/crypto/cmp/cmp_client.c', 'openssl/crypto/cmp/cmp_ctx.c', 'openssl/crypto/cmp/cmp_err.c', + 'openssl/crypto/cmp/cmp_genm.c', 'openssl/crypto/cmp/cmp_hdr.c', 'openssl/crypto/cmp/cmp_http.c', 'openssl/crypto/cmp/cmp_msg.c', @@ -384,7 +435,9 @@ 'openssl/crypto/err/err_all.c', 'openssl/crypto/err/err_all_legacy.c', 'openssl/crypto/err/err_blocks.c', + 'openssl/crypto/err/err_mark.c', 'openssl/crypto/err/err_prn.c', + 'openssl/crypto/err/err_save.c', 'openssl/crypto/ess/ess_asn1.c', 'openssl/crypto/ess/ess_err.c', 'openssl/crypto/ess/ess_lib.c', @@ -467,7 +520,9 @@ 'openssl/crypto/evp/pmeth_check.c', 'openssl/crypto/evp/pmeth_gn.c', 'openssl/crypto/evp/pmeth_lib.c', + 'openssl/crypto/evp/s_lib.c', 'openssl/crypto/evp/signature.c', + 'openssl/crypto/evp/skeymgmt_meth.c', 'openssl/crypto/ffc/ffc_backend.c', 'openssl/crypto/ffc/ffc_dh.c', 'openssl/crypto/ffc/ffc_key_generate.c', @@ -475,7 +530,11 @@ 'openssl/crypto/ffc/ffc_params.c', 'openssl/crypto/ffc/ffc_params_generate.c', 'openssl/crypto/ffc/ffc_params_validate.c', + 'openssl/crypto/hashtable/hashfunc.c', + 'openssl/crypto/hashtable/hashtable.c', 'openssl/crypto/hmac/hmac.c', + 'openssl/crypto/hpke/hpke.c', + 'openssl/crypto/hpke/hpke_util.c', 'openssl/crypto/http/http_client.c', 'openssl/crypto/http/http_err.c', 'openssl/crypto/http/http_lib.c', @@ -490,6 +549,7 @@ 'openssl/crypto/armcap.c', 'openssl/crypto/asn1_dsa.c', 'openssl/crypto/bsearch.c', + 'openssl/crypto/comp_methods.c', 'openssl/crypto/context.c', 'openssl/crypto/core_algorithm.c', 'openssl/crypto/core_fetch.c', @@ -499,10 +559,13 @@ 'openssl/crypto/cryptlib.c', 'openssl/crypto/ctype.c', 'openssl/crypto/cversion.c', + 'openssl/crypto/defaults.c', 'openssl/crypto/der_writer.c', + 'openssl/crypto/deterministic_nonce.c', 'openssl/crypto/ebcdic.c', 'openssl/crypto/ex_data.c', 'openssl/crypto/getenv.c', + 'openssl/crypto/indicator_core.c', 'openssl/crypto/info.c', 'openssl/crypto/init.c', 'openssl/crypto/initthread.c', @@ -526,12 +589,16 @@ 'openssl/crypto/provider_core.c', 'openssl/crypto/provider_predefined.c', 'openssl/crypto/punycode.c', + 'openssl/crypto/quic_vlint.c', 'openssl/crypto/self_test_core.c', + 'openssl/crypto/sleep.c', 'openssl/crypto/sparse_array.c', + 'openssl/crypto/ssl_err.c', 'openssl/crypto/threads_lib.c', 'openssl/crypto/threads_none.c', 'openssl/crypto/threads_pthread.c', 'openssl/crypto/threads_win.c', + 'openssl/crypto/time.c', 'openssl/crypto/trace.c', 'openssl/crypto/uid.c', 'openssl/crypto/md4/md4_dgst.c', @@ -541,6 +608,15 @@ 'openssl/crypto/md5/md5_sha1.c', 'openssl/crypto/mdc2/mdc2_one.c', 'openssl/crypto/mdc2/mdc2dgst.c', + 'openssl/crypto/ml_dsa/ml_dsa_encoders.c', + 'openssl/crypto/ml_dsa/ml_dsa_key.c', + 'openssl/crypto/ml_dsa/ml_dsa_key_compress.c', + 'openssl/crypto/ml_dsa/ml_dsa_matrix.c', + 'openssl/crypto/ml_dsa/ml_dsa_ntt.c', + 'openssl/crypto/ml_dsa/ml_dsa_params.c', + 'openssl/crypto/ml_dsa/ml_dsa_sample.c', + 'openssl/crypto/ml_dsa/ml_dsa_sign.c', + 'openssl/crypto/ml_kem/ml_kem.c', 'openssl/crypto/modes/cbc128.c', 'openssl/crypto/modes/ccm128.c', 'openssl/crypto/modes/cfb128.c', @@ -552,6 +628,7 @@ 'openssl/crypto/modes/siv128.c', 'openssl/crypto/modes/wrap128.c', 'openssl/crypto/modes/xts128.c', + 'openssl/crypto/modes/xts128gb.c', 'openssl/crypto/objects/o_names.c', 'openssl/crypto/objects/obj_dat.c', 'openssl/crypto/objects/obj_err.c', @@ -615,6 +692,7 @@ 'openssl/crypto/rand/rand_lib.c', 'openssl/crypto/rand/rand_meth.c', 'openssl/crypto/rand/rand_pool.c', + 'openssl/crypto/rand/rand_uniform.c', 'openssl/crypto/rand/randfile.c', 'openssl/crypto/rc2/rc2_cbc.c', 'openssl/crypto/rc2/rc2_ecb.c', @@ -662,6 +740,16 @@ 'openssl/crypto/sha/sha3.c', 'openssl/crypto/sha/sha512.c', 'openssl/crypto/siphash/siphash.c', + 'openssl/crypto/slh_dsa/slh_adrs.c', + 'openssl/crypto/slh_dsa/slh_dsa.c', + 'openssl/crypto/slh_dsa/slh_dsa_hash_ctx.c', + 'openssl/crypto/slh_dsa/slh_dsa_key.c', + 'openssl/crypto/slh_dsa/slh_fors.c', + 'openssl/crypto/slh_dsa/slh_hash.c', + 'openssl/crypto/slh_dsa/slh_hypertree.c', + 'openssl/crypto/slh_dsa/slh_params.c', + 'openssl/crypto/slh_dsa/slh_wots.c', + 'openssl/crypto/slh_dsa/slh_xmss.c', 'openssl/crypto/sm2/sm2_crypt.c', 'openssl/crypto/sm2/sm2_err.c', 'openssl/crypto/sm2/sm2_key.c', @@ -679,6 +767,12 @@ 'openssl/crypto/store/store_register.c', 'openssl/crypto/store/store_result.c', 'openssl/crypto/store/store_strings.c', + 'openssl/crypto/thread/arch/thread_none.c', + 'openssl/crypto/thread/arch/thread_posix.c', + 'openssl/crypto/thread/arch/thread_win.c', + 'openssl/crypto/thread/api.c', + 'openssl/crypto/thread/arch.c', + 'openssl/crypto/thread/internal.c', 'openssl/crypto/ts/ts_asn1.c', 'openssl/crypto/ts/ts_conf.c', 'openssl/crypto/ts/ts_err.c', @@ -707,14 +801,22 @@ 'openssl/crypto/x509/pcy_map.c', 'openssl/crypto/x509/pcy_node.c', 'openssl/crypto/x509/pcy_tree.c', + 'openssl/crypto/x509/t_acert.c', 'openssl/crypto/x509/t_crl.c', 'openssl/crypto/x509/t_req.c', 'openssl/crypto/x509/t_x509.c', + 'openssl/crypto/x509/v3_aaa.c', + 'openssl/crypto/x509/v3_ac_tgt.c', 'openssl/crypto/x509/v3_addr.c', 'openssl/crypto/x509/v3_admis.c', 'openssl/crypto/x509/v3_akeya.c', 'openssl/crypto/x509/v3_akid.c', 'openssl/crypto/x509/v3_asid.c', + 'openssl/crypto/x509/v3_attrdesc.c', + 'openssl/crypto/x509/v3_attrmap.c', + 'openssl/crypto/x509/v3_audit_id.c', + 'openssl/crypto/x509/v3_authattid.c', + 'openssl/crypto/x509/v3_battcons.c', 'openssl/crypto/x509/v3_bcons.c', 'openssl/crypto/x509/v3_bitst.c', 'openssl/crypto/x509/v3_conf.c', @@ -723,12 +825,17 @@ 'openssl/crypto/x509/v3_enum.c', 'openssl/crypto/x509/v3_extku.c', 'openssl/crypto/x509/v3_genn.c', + 'openssl/crypto/x509/v3_group_ac.c', 'openssl/crypto/x509/v3_ia5.c', + 'openssl/crypto/x509/v3_ind_iss.c', 'openssl/crypto/x509/v3_info.c', 'openssl/crypto/x509/v3_int.c', + 'openssl/crypto/x509/v3_iobo.c', 'openssl/crypto/x509/v3_ist.c', 'openssl/crypto/x509/v3_lib.c', 'openssl/crypto/x509/v3_ncons.c', + 'openssl/crypto/x509/v3_no_ass.c', + 'openssl/crypto/x509/v3_no_rev_avail.c', 'openssl/crypto/x509/v3_pci.c', 'openssl/crypto/x509/v3_pcia.c', 'openssl/crypto/x509/v3_pcons.c', @@ -736,13 +843,20 @@ 'openssl/crypto/x509/v3_pmaps.c', 'openssl/crypto/x509/v3_prn.c', 'openssl/crypto/x509/v3_purp.c', + 'openssl/crypto/x509/v3_rolespec.c', 'openssl/crypto/x509/v3_san.c', + 'openssl/crypto/x509/v3_sda.c', + 'openssl/crypto/x509/v3_single_use.c', 'openssl/crypto/x509/v3_skid.c', + 'openssl/crypto/x509/v3_soa_id.c', 'openssl/crypto/x509/v3_sxnet.c', + 'openssl/crypto/x509/v3_timespec.c', 'openssl/crypto/x509/v3_tlsf.c', + 'openssl/crypto/x509/v3_usernotice.c', 'openssl/crypto/x509/v3_utf8.c', 'openssl/crypto/x509/v3_utl.c', 'openssl/crypto/x509/v3err.c', + 'openssl/crypto/x509/x509_acert.c', 'openssl/crypto/x509/x509_att.c', 'openssl/crypto/x509/x509_cmp.c', 'openssl/crypto/x509/x509_d2.c', @@ -760,6 +874,7 @@ 'openssl/crypto/x509/x509_v3.c', 'openssl/crypto/x509/x509_vfy.c', 'openssl/crypto/x509/x509_vpm.c', + 'openssl/crypto/x509/x509aset.c', 'openssl/crypto/x509/x509cset.c', 'openssl/crypto/x509/x509name.c', 'openssl/crypto/x509/x509rset.c', @@ -769,6 +884,7 @@ 'openssl/crypto/x509/x_attrib.c', 'openssl/crypto/x509/x_crl.c', 'openssl/crypto/x509/x_exten.c', + 'openssl/crypto/x509/x_ietfatt.c', 'openssl/crypto/x509/x_name.c', 'openssl/crypto/x509/x_pubkey.c', 'openssl/crypto/x509/x_req.c', @@ -800,6 +916,9 @@ 'openssl/providers/implementations/ciphers/cipher_aes_ccm_hw.c', 'openssl/providers/implementations/ciphers/cipher_aes_gcm.c', 'openssl/providers/implementations/ciphers/cipher_aes_gcm_hw.c', + 'openssl/providers/implementations/ciphers/cipher_aes_gcm_siv.c', + 'openssl/providers/implementations/ciphers/cipher_aes_gcm_siv_hw.c', + 'openssl/providers/implementations/ciphers/cipher_aes_gcm_siv_polyval.c', 'openssl/providers/implementations/ciphers/cipher_aes_hw.c', 'openssl/providers/implementations/ciphers/cipher_aes_ocb.c', 'openssl/providers/implementations/ciphers/cipher_aes_ocb_hw.c', @@ -824,7 +943,13 @@ 'openssl/providers/implementations/ciphers/cipher_cts.c', 'openssl/providers/implementations/ciphers/cipher_null.c', 'openssl/providers/implementations/ciphers/cipher_sm4.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_ccm.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_ccm_hw.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_gcm.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_gcm_hw.c', 'openssl/providers/implementations/ciphers/cipher_sm4_hw.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_xts.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_xts_hw.c', 'openssl/providers/implementations/ciphers/cipher_tdes.c', 'openssl/providers/implementations/ciphers/cipher_tdes_common.c', 'openssl/providers/implementations/ciphers/cipher_tdes_default.c', @@ -853,11 +978,16 @@ 'openssl/providers/implementations/encode_decode/encode_key2ms.c', 'openssl/providers/implementations/encode_decode/encode_key2text.c', 'openssl/providers/implementations/encode_decode/endecoder_common.c', + 'openssl/providers/implementations/encode_decode/ml_common_codecs.c', + 'openssl/providers/implementations/encode_decode/ml_dsa_codecs.c', + 'openssl/providers/implementations/encode_decode/ml_kem_codecs.c', 'openssl/providers/implementations/exchange/dh_exch.c', 'openssl/providers/implementations/exchange/ecdh_exch.c', 'openssl/providers/implementations/exchange/ecx_exch.c', 'openssl/providers/implementations/exchange/kdf_exch.c', + 'openssl/providers/implementations/kdfs/argon2.c', 'openssl/providers/implementations/kdfs/hkdf.c', + 'openssl/providers/implementations/kdfs/hmacdrbg_kdf.c', 'openssl/providers/implementations/kdfs/kbkdf.c', 'openssl/providers/implementations/kdfs/krb5kdf.c', 'openssl/providers/implementations/kdfs/pbkdf2.c', @@ -868,6 +998,11 @@ 'openssl/providers/implementations/kdfs/sskdf.c', 'openssl/providers/implementations/kdfs/tls1_prf.c', 'openssl/providers/implementations/kdfs/x942kdf.c', + 'openssl/providers/implementations/kem/ec_kem.c', + 'openssl/providers/implementations/kem/ecx_kem.c', + 'openssl/providers/implementations/kem/kem_util.c', + 'openssl/providers/implementations/kem/ml_kem_kem.c', + 'openssl/providers/implementations/kem/mlx_kem.c', 'openssl/providers/implementations/kem/rsa_kem.c', 'openssl/providers/implementations/keymgmt/dh_kmgmt.c', 'openssl/providers/implementations/keymgmt/dsa_kmgmt.c', @@ -875,7 +1010,11 @@ 'openssl/providers/implementations/keymgmt/ecx_kmgmt.c', 'openssl/providers/implementations/keymgmt/kdf_legacy_kmgmt.c', 'openssl/providers/implementations/keymgmt/mac_legacy_kmgmt.c', + 'openssl/providers/implementations/keymgmt/ml_dsa_kmgmt.c', + 'openssl/providers/implementations/keymgmt/ml_kem_kmgmt.c', + 'openssl/providers/implementations/keymgmt/mlx_kmgmt.c', 'openssl/providers/implementations/keymgmt/rsa_kmgmt.c', + 'openssl/providers/implementations/keymgmt/slh_dsa_kmgmt.c', 'openssl/providers/implementations/macs/blake2b_mac.c', 'openssl/providers/implementations/macs/blake2s_mac.c', 'openssl/providers/implementations/macs/cmac_prov.c', @@ -884,12 +1023,12 @@ 'openssl/providers/implementations/macs/kmac_prov.c', 'openssl/providers/implementations/macs/poly1305_prov.c', 'openssl/providers/implementations/macs/siphash_prov.c', - 'openssl/providers/implementations/rands/crngt.c', 'openssl/providers/implementations/rands/drbg.c', 'openssl/providers/implementations/rands/drbg_ctr.c', 'openssl/providers/implementations/rands/drbg_hash.c', 'openssl/providers/implementations/rands/drbg_hmac.c', 'openssl/providers/implementations/rands/seed_src.c', + 'openssl/providers/implementations/rands/seed_src_jitter.c', 'openssl/providers/implementations/rands/test_rng.c', 'openssl/providers/implementations/rands/seeding/rand_cpu_x86.c', 'openssl/providers/implementations/rands/seeding/rand_tsc.c', @@ -899,17 +1038,23 @@ 'openssl/providers/implementations/signature/ecdsa_sig.c', 'openssl/providers/implementations/signature/eddsa_sig.c', 'openssl/providers/implementations/signature/mac_legacy_sig.c', + 'openssl/providers/implementations/signature/ml_dsa_sig.c', 'openssl/providers/implementations/signature/rsa_sig.c', + 'openssl/providers/implementations/signature/slh_dsa_sig.c', 'openssl/providers/implementations/signature/sm2_sig.c', + 'openssl/providers/implementations/skeymgmt/aes_skmgmt.c', + 'openssl/providers/implementations/skeymgmt/generic.c', 'openssl/providers/implementations/storemgmt/file_store.c', 'openssl/providers/implementations/storemgmt/file_store_any2obj.c', - 'openssl/ssl/s3_cbc.c', + 'openssl/ssl/record/methods/ssl3_cbc.c', 'openssl/providers/common/der/der_dsa_key.c', 'openssl/providers/common/der/der_dsa_sig.c', 'openssl/providers/common/der/der_ec_key.c', 'openssl/providers/common/der/der_ec_sig.c', 'openssl/providers/common/der/der_ecx_key.c', + 'openssl/providers/common/der/der_ml_dsa_key.c', 'openssl/providers/common/der/der_rsa_key.c', + 'openssl/providers/common/der/der_slh_dsa_key.c', 'openssl/providers/common/provider_ctx.c', 'openssl/providers/common/provider_err.c', 'openssl/providers/implementations/ciphers/ciphercommon.c', @@ -920,7 +1065,7 @@ 'openssl/providers/implementations/ciphers/ciphercommon_gcm_hw.c', 'openssl/providers/implementations/ciphers/ciphercommon_hw.c', 'openssl/providers/implementations/digests/digestcommon.c', - 'openssl/ssl/record/tls_pad.c', + 'openssl/ssl/record/methods/tls_pad.c', 'openssl/providers/implementations/ciphers/cipher_blowfish.c', 'openssl/providers/implementations/ciphers/cipher_blowfish_hw.c', 'openssl/providers/implementations/ciphers/cipher_cast5.c', @@ -945,6 +1090,7 @@ 'openssl/providers/implementations/digests/ripemd_prov.c', 'openssl/providers/implementations/digests/wp_prov.c', 'openssl/providers/implementations/kdfs/pbkdf1.c', + 'openssl/providers/implementations/kdfs/pvkkdf.c', 'openssl/providers/prov_running.c', 'openssl/providers/legacyprov.c', ], @@ -957,6 +1103,7 @@ './config/archs/linux-armv4/asm/crypto/chacha/chacha-armv4.S', './config/archs/linux-armv4/asm/crypto/ec/ecp_nistz256-armv4.S', './config/archs/linux-armv4/asm/crypto/armv4cpuid.S', + './config/archs/linux-armv4/asm/crypto/params_idx.c', './config/archs/linux-armv4/asm/crypto/modes/ghash-armv4.S', './config/archs/linux-armv4/asm/crypto/modes/ghashv8-armx.S', './config/archs/linux-armv4/asm/crypto/poly1305/poly1305-armv4.S', @@ -969,7 +1116,9 @@ './config/archs/linux-armv4/asm/providers/common/der/der_dsa_gen.c', './config/archs/linux-armv4/asm/providers/common/der/der_ec_gen.c', './config/archs/linux-armv4/asm/providers/common/der/der_ecx_gen.c', + './config/archs/linux-armv4/asm/providers/common/der/der_ml_dsa_gen.c', './config/archs/linux-armv4/asm/providers/common/der/der_rsa_gen.c', + './config/archs/linux-armv4/asm/providers/common/der/der_slh_dsa_gen.c', './config/archs/linux-armv4/asm/providers/common/der/der_wrap_gen.c', './config/archs/linux-armv4/asm/providers/legacy.ld', './config/archs/linux-armv4/asm/providers/fips.ld', diff --git a/deps/openssl/config/archs/linux-armv4/asm/providers/common/der/der_ml_dsa_gen.c b/deps/openssl/config/archs/linux-armv4/asm/providers/common/der/der_ml_dsa_gen.c new file mode 100644 index 00000000000000..4a8a113a268578 --- /dev/null +++ b/deps/openssl/config/archs/linux-armv4/asm/providers/common/der/der_ml_dsa_gen.c @@ -0,0 +1,37 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from providers/common/der/der_ml_dsa_gen.c.in + * + * Copyright 2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include "prov/der_ml_dsa.h" + +/* Well known OIDs precompiled */ + +/* + * id-ml-dsa-44 OBJECT IDENTIFIER ::= { sigAlgs 17 } + */ +const unsigned char ossl_der_oid_id_ml_dsa_44[DER_OID_SZ_id_ml_dsa_44] = { + DER_OID_V_id_ml_dsa_44 +}; + +/* + * id-ml-dsa-65 OBJECT IDENTIFIER ::= { sigAlgs 18 } + */ +const unsigned char ossl_der_oid_id_ml_dsa_65[DER_OID_SZ_id_ml_dsa_65] = { + DER_OID_V_id_ml_dsa_65 +}; + +/* + * id-ml-dsa-87 OBJECT IDENTIFIER ::= { sigAlgs 19 } + */ +const unsigned char ossl_der_oid_id_ml_dsa_87[DER_OID_SZ_id_ml_dsa_87] = { + DER_OID_V_id_ml_dsa_87 +}; + diff --git a/deps/openssl/config/archs/linux-armv4/asm/providers/common/der/der_slh_dsa_gen.c b/deps/openssl/config/archs/linux-armv4/asm/providers/common/der/der_slh_dsa_gen.c new file mode 100644 index 00000000000000..1419a9515097dd --- /dev/null +++ b/deps/openssl/config/archs/linux-armv4/asm/providers/common/der/der_slh_dsa_gen.c @@ -0,0 +1,100 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from providers/common/der/der_slh_dsa_gen.c.in + * + * Copyright 2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include "prov/der_slh_dsa.h" + +/* Well known OIDs precompiled */ + +/* + * id-slh-dsa-sha2-128s OBJECT IDENTIFIER ::= { sigAlgs 20 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_128s[DER_OID_SZ_id_slh_dsa_sha2_128s] = { + DER_OID_V_id_slh_dsa_sha2_128s +}; + +/* + * id-slh-dsa-sha2-128f OBJECT IDENTIFIER ::= { sigAlgs 21 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_128f[DER_OID_SZ_id_slh_dsa_sha2_128f] = { + DER_OID_V_id_slh_dsa_sha2_128f +}; + +/* + * id-slh-dsa-sha2-192s OBJECT IDENTIFIER ::= { sigAlgs 22 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_192s[DER_OID_SZ_id_slh_dsa_sha2_192s] = { + DER_OID_V_id_slh_dsa_sha2_192s +}; + +/* + * id-slh-dsa-sha2-192f OBJECT IDENTIFIER ::= { sigAlgs 23 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_192f[DER_OID_SZ_id_slh_dsa_sha2_192f] = { + DER_OID_V_id_slh_dsa_sha2_192f +}; + +/* + * id-slh-dsa-sha2-256s OBJECT IDENTIFIER ::= { sigAlgs 24 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_256s[DER_OID_SZ_id_slh_dsa_sha2_256s] = { + DER_OID_V_id_slh_dsa_sha2_256s +}; + +/* + * id-slh-dsa-sha2-256f OBJECT IDENTIFIER ::= { sigAlgs 25 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_256f[DER_OID_SZ_id_slh_dsa_sha2_256f] = { + DER_OID_V_id_slh_dsa_sha2_256f +}; + +/* + * id-slh-dsa-shake-128s OBJECT IDENTIFIER ::= { sigAlgs 26 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_128s[DER_OID_SZ_id_slh_dsa_shake_128s] = { + DER_OID_V_id_slh_dsa_shake_128s +}; + +/* + * id-slh-dsa-shake-128f OBJECT IDENTIFIER ::= { sigAlgs 27 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_128f[DER_OID_SZ_id_slh_dsa_shake_128f] = { + DER_OID_V_id_slh_dsa_shake_128f +}; + +/* + * id-slh-dsa-shake-192s OBJECT IDENTIFIER ::= { sigAlgs 28 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_192s[DER_OID_SZ_id_slh_dsa_shake_192s] = { + DER_OID_V_id_slh_dsa_shake_192s +}; + +/* + * id-slh-dsa-shake-192f OBJECT IDENTIFIER ::= { sigAlgs 29 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_192f[DER_OID_SZ_id_slh_dsa_shake_192f] = { + DER_OID_V_id_slh_dsa_shake_192f +}; + +/* + * id-slh-dsa-shake-256s OBJECT IDENTIFIER ::= { sigAlgs 30 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_256s[DER_OID_SZ_id_slh_dsa_shake_256s] = { + DER_OID_V_id_slh_dsa_shake_256s +}; + +/* + * id-slh-dsa-shake-256f OBJECT IDENTIFIER ::= { sigAlgs 31 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_256f[DER_OID_SZ_id_slh_dsa_shake_256f] = { + DER_OID_V_id_slh_dsa_shake_256f +}; + diff --git a/deps/openssl/config/archs/linux-armv4/asm/providers/common/include/prov/der_ml_dsa.h b/deps/openssl/config/archs/linux-armv4/asm/providers/common/include/prov/der_ml_dsa.h new file mode 100644 index 00000000000000..c55f780ab4527c --- /dev/null +++ b/deps/openssl/config/archs/linux-armv4/asm/providers/common/include/prov/der_ml_dsa.h @@ -0,0 +1,40 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from providers/common/include/prov/der_ml_dsa.h.in + * + * Copyright 2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include "internal/der.h" +#include "crypto/ml_dsa.h" + +/* Well known OIDs precompiled */ + +/* + * id-ml-dsa-44 OBJECT IDENTIFIER ::= { sigAlgs 17 } + */ +#define DER_OID_V_id_ml_dsa_44 DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x11 +#define DER_OID_SZ_id_ml_dsa_44 11 +extern const unsigned char ossl_der_oid_id_ml_dsa_44[DER_OID_SZ_id_ml_dsa_44]; + +/* + * id-ml-dsa-65 OBJECT IDENTIFIER ::= { sigAlgs 18 } + */ +#define DER_OID_V_id_ml_dsa_65 DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x12 +#define DER_OID_SZ_id_ml_dsa_65 11 +extern const unsigned char ossl_der_oid_id_ml_dsa_65[DER_OID_SZ_id_ml_dsa_65]; + +/* + * id-ml-dsa-87 OBJECT IDENTIFIER ::= { sigAlgs 19 } + */ +#define DER_OID_V_id_ml_dsa_87 DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x13 +#define DER_OID_SZ_id_ml_dsa_87 11 +extern const unsigned char ossl_der_oid_id_ml_dsa_87[DER_OID_SZ_id_ml_dsa_87]; + + +int ossl_DER_w_algorithmIdentifier_ML_DSA(WPACKET *pkt, int tag, ML_DSA_KEY *key); diff --git a/deps/openssl/config/archs/linux-armv4/asm/providers/common/include/prov/der_slh_dsa.h b/deps/openssl/config/archs/linux-armv4/asm/providers/common/include/prov/der_slh_dsa.h new file mode 100644 index 00000000000000..760f8e7699be72 --- /dev/null +++ b/deps/openssl/config/archs/linux-armv4/asm/providers/common/include/prov/der_slh_dsa.h @@ -0,0 +1,103 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from providers/common/include/prov/der_slh_dsa.h.in + * + * Copyright 2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include "internal/der.h" +#include "crypto/slh_dsa.h" + +/* Well known OIDs precompiled */ + +/* + * id-slh-dsa-sha2-128s OBJECT IDENTIFIER ::= { sigAlgs 20 } + */ +#define DER_OID_V_id_slh_dsa_sha2_128s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x14 +#define DER_OID_SZ_id_slh_dsa_sha2_128s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_128s[DER_OID_SZ_id_slh_dsa_sha2_128s]; + +/* + * id-slh-dsa-sha2-128f OBJECT IDENTIFIER ::= { sigAlgs 21 } + */ +#define DER_OID_V_id_slh_dsa_sha2_128f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x15 +#define DER_OID_SZ_id_slh_dsa_sha2_128f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_128f[DER_OID_SZ_id_slh_dsa_sha2_128f]; + +/* + * id-slh-dsa-sha2-192s OBJECT IDENTIFIER ::= { sigAlgs 22 } + */ +#define DER_OID_V_id_slh_dsa_sha2_192s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x16 +#define DER_OID_SZ_id_slh_dsa_sha2_192s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_192s[DER_OID_SZ_id_slh_dsa_sha2_192s]; + +/* + * id-slh-dsa-sha2-192f OBJECT IDENTIFIER ::= { sigAlgs 23 } + */ +#define DER_OID_V_id_slh_dsa_sha2_192f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x17 +#define DER_OID_SZ_id_slh_dsa_sha2_192f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_192f[DER_OID_SZ_id_slh_dsa_sha2_192f]; + +/* + * id-slh-dsa-sha2-256s OBJECT IDENTIFIER ::= { sigAlgs 24 } + */ +#define DER_OID_V_id_slh_dsa_sha2_256s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x18 +#define DER_OID_SZ_id_slh_dsa_sha2_256s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_256s[DER_OID_SZ_id_slh_dsa_sha2_256s]; + +/* + * id-slh-dsa-sha2-256f OBJECT IDENTIFIER ::= { sigAlgs 25 } + */ +#define DER_OID_V_id_slh_dsa_sha2_256f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x19 +#define DER_OID_SZ_id_slh_dsa_sha2_256f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_256f[DER_OID_SZ_id_slh_dsa_sha2_256f]; + +/* + * id-slh-dsa-shake-128s OBJECT IDENTIFIER ::= { sigAlgs 26 } + */ +#define DER_OID_V_id_slh_dsa_shake_128s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1A +#define DER_OID_SZ_id_slh_dsa_shake_128s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_128s[DER_OID_SZ_id_slh_dsa_shake_128s]; + +/* + * id-slh-dsa-shake-128f OBJECT IDENTIFIER ::= { sigAlgs 27 } + */ +#define DER_OID_V_id_slh_dsa_shake_128f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1B +#define DER_OID_SZ_id_slh_dsa_shake_128f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_128f[DER_OID_SZ_id_slh_dsa_shake_128f]; + +/* + * id-slh-dsa-shake-192s OBJECT IDENTIFIER ::= { sigAlgs 28 } + */ +#define DER_OID_V_id_slh_dsa_shake_192s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1C +#define DER_OID_SZ_id_slh_dsa_shake_192s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_192s[DER_OID_SZ_id_slh_dsa_shake_192s]; + +/* + * id-slh-dsa-shake-192f OBJECT IDENTIFIER ::= { sigAlgs 29 } + */ +#define DER_OID_V_id_slh_dsa_shake_192f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1D +#define DER_OID_SZ_id_slh_dsa_shake_192f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_192f[DER_OID_SZ_id_slh_dsa_shake_192f]; + +/* + * id-slh-dsa-shake-256s OBJECT IDENTIFIER ::= { sigAlgs 30 } + */ +#define DER_OID_V_id_slh_dsa_shake_256s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1E +#define DER_OID_SZ_id_slh_dsa_shake_256s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_256s[DER_OID_SZ_id_slh_dsa_shake_256s]; + +/* + * id-slh-dsa-shake-256f OBJECT IDENTIFIER ::= { sigAlgs 31 } + */ +#define DER_OID_V_id_slh_dsa_shake_256f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1F +#define DER_OID_SZ_id_slh_dsa_shake_256f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_256f[DER_OID_SZ_id_slh_dsa_shake_256f]; + + +int ossl_DER_w_algorithmIdentifier_SLH_DSA(WPACKET *pkt, int tag, SLH_DSA_KEY *key); diff --git a/deps/openssl/config/archs/linux-armv4/asm_avx2/apps/progs.c b/deps/openssl/config/archs/linux-armv4/asm_avx2/apps/progs.c index 43cef00799b86e..acc204a3e6e781 100644 --- a/deps/openssl/config/archs/linux-armv4/asm_avx2/apps/progs.c +++ b/deps/openssl/config/archs/linux-armv4/asm_avx2/apps/progs.c @@ -89,6 +89,7 @@ FUNCTION functions[] = { {FT_general, "s_time", s_time_main, s_time_options, NULL, NULL}, #endif {FT_general, "sess_id", sess_id_main, sess_id_options, NULL, NULL}, + {FT_general, "skeyutl", skeyutl_main, skeyutl_options, NULL, NULL}, {FT_general, "smime", smime_main, smime_options, NULL, NULL}, {FT_general, "speed", speed_main, speed_options, NULL, NULL}, {FT_general, "spkac", spkac_main, spkac_options, NULL, NULL}, @@ -225,9 +226,15 @@ FUNCTION functions[] = { {FT_cipher, "camellia-256-ecb", enc_main, enc_options, NULL}, #endif {FT_cipher, "base64", enc_main, enc_options, NULL}, -#ifdef ZLIB +#ifndef OPENSSL_NO_ZLIB {FT_cipher, "zlib", enc_main, enc_options, NULL}, #endif +#ifndef OPENSSL_NO_BROTLI + {FT_cipher, "brotli", enc_main, enc_options, NULL}, +#endif +#ifndef OPENSSL_NO_ZSTD + {FT_cipher, "zstd", enc_main, enc_options, NULL}, +#endif #ifndef OPENSSL_NO_DES {FT_cipher, "des", enc_main, enc_options, NULL}, #endif diff --git a/deps/openssl/config/archs/linux-armv4/asm_avx2/configdata.pm b/deps/openssl/config/archs/linux-armv4/asm_avx2/configdata.pm index 52d02590cce526..cc8b5e63daf142 100644 --- a/deps/openssl/config/archs/linux-armv4/asm_avx2/configdata.pm +++ b/deps/openssl/config/archs/linux-armv4/asm_avx2/configdata.pm @@ -18,6 +18,7 @@ our %config = ( "ARFLAGS" => [ "qc" ], + "ASFLAGS" => [], "CC" => "../config/fake_gcc.pl", "CFLAGS" => [ "-Wall -O3" @@ -30,14 +31,16 @@ our %config = ( "-Wall -O3" ], "FIPSKEY" => "f4556650ac31d35461610bac4ed81b1a181b2d8a43ea2854cbae22ca74560813", + "FIPS_VENDOR" => "OpenSSL FIPS Provider", "HASHBANGPERL" => "/usr/bin/env perl", "LDFLAGS" => [], "LDLIBS" => [], + "OBJCOPY" => "objcopy", "PERL" => "/usr/bin/perl", "RANLIB" => "ranlib", "RC" => "windres", "RCFLAGS" => [], - "api" => "30000", + "api" => "30500", "b32" => "1", "b64" => "0", "b64l" => "0", @@ -59,11 +62,13 @@ our %config = ( "doc/build.info", "test/build.info", "engines/build.info", + "exporters/build.info", "crypto/objects/build.info", "crypto/buffer/build.info", "crypto/bio/build.info", "crypto/stack/build.info", "crypto/lhash/build.info", + "crypto/hashtable/build.info", "crypto/rand/build.info", "crypto/evp/build.info", "crypto/asn1/build.info", @@ -81,6 +86,7 @@ our %config = ( "crypto/md5/build.info", "crypto/sha/build.info", "crypto/mdc2/build.info", + "crypto/ml_kem/build.info", "crypto/hmac/build.info", "crypto/ripemd/build.info", "crypto/whrlpool/build.info", @@ -122,11 +128,19 @@ our %config = ( "crypto/cmp/build.info", "crypto/encode_decode/build.info", "crypto/ffc/build.info", + "crypto/hpke/build.info", + "crypto/thread/build.info", + "crypto/ml_dsa/build.info", + "crypto/slh_dsa/build.info", + "ssl/record/build.info", + "ssl/rio/build.info", + "ssl/quic/build.info", "apps/lib/build.info", "providers/common/build.info", "providers/implementations/build.info", "providers/fips/build.info", "doc/man1/build.info", + "ssl/record/methods/build.info", "providers/common/der/build.info", "providers/implementations/digests/build.info", "providers/implementations/ciphers/build.info", @@ -140,6 +154,7 @@ our %config = ( "providers/implementations/encode_decode/build.info", "providers/implementations/storemgmt/build.info", "providers/implementations/kem/build.info", + "providers/implementations/skeymgmt/build.info", "providers/implementations/rands/seeding/build.info" ], "build_metadata" => "", @@ -159,7 +174,7 @@ our %config = ( ], "dynamic_engines" => "0", "ex_libs" => [], - "full_version" => "3.0.17", + "full_version" => "3.5.1", "includes" => [], "lflags" => [], "lib_defines" => [ @@ -168,37 +183,52 @@ our %config = ( "libdir" => "", "major" => "3", "makedep_scheme" => "gcc", - "minor" => "0", + "minor" => "5", "openssl_api_defines" => [ - "OPENSSL_CONFIGURED_API=30000" + "OPENSSL_CONFIGURED_API=30500" ], "openssl_feature_defines" => [ "OPENSSL_RAND_SEED_OS", "OPENSSL_THREADS", "OPENSSL_NO_AFALGENG", "OPENSSL_NO_ASAN", + "OPENSSL_NO_BROTLI", + "OPENSSL_NO_BROTLI_DYNAMIC", "OPENSSL_NO_COMP", "OPENSSL_NO_CRYPTO_MDEBUG", "OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE", + "OPENSSL_NO_DEMOS", "OPENSSL_NO_DEVCRYPTOENG", "OPENSSL_NO_EC_NISTP_64_GCC_128", "OPENSSL_NO_EGD", "OPENSSL_NO_EXTERNAL_TESTS", + "OPENSSL_NO_FIPS_JITTER", "OPENSSL_NO_FUZZ_AFL", "OPENSSL_NO_FUZZ_LIBFUZZER", + "OPENSSL_NO_H3DEMO", + "OPENSSL_NO_HQINTEROP", + "OPENSSL_NO_JITTER", "OPENSSL_NO_KTLS", "OPENSSL_NO_LOADERENG", "OPENSSL_NO_MD2", "OPENSSL_NO_MSAN", + "OPENSSL_NO_PIE", "OPENSSL_NO_RC5", "OPENSSL_NO_SCTP", "OPENSSL_NO_SSL3", "OPENSSL_NO_SSL3_METHOD", + "OPENSSL_NO_SSLKEYLOG", + "OPENSSL_NO_TFO", "OPENSSL_NO_TRACE", "OPENSSL_NO_UBSAN", "OPENSSL_NO_UNIT_TEST", "OPENSSL_NO_UPLINK", "OPENSSL_NO_WEAK_SSL_CIPHERS", + "OPENSSL_NO_WINSTORE", + "OPENSSL_NO_ZLIB", + "OPENSSL_NO_ZLIB_DYNAMIC", + "OPENSSL_NO_ZSTD", + "OPENSSL_NO_ZSTD_DYNAMIC", "OPENSSL_NO_DYNAMIC_ENGINE" ], "openssl_other_defines" => [ @@ -206,11 +236,11 @@ our %config = ( ], "openssl_sys_defines" => [], "openssldir" => "", - "options" => "enable-ssl-trace enable-fips no-afalgeng no-asan no-buildtest-c++ no-comp no-crypto-mdebug no-crypto-mdebug-backtrace no-devcryptoeng no-dynamic-engine no-ec_nistp_64_gcc_128 no-egd no-external-tests no-fuzz-afl no-fuzz-libfuzzer no-ktls no-loadereng no-md2 no-msan no-rc5 no-sctp no-shared no-ssl3 no-ssl3-method no-trace no-ubsan no-unit-test no-uplink no-weak-ssl-ciphers no-zlib no-zlib-dynamic", - "patch" => "17", + "options" => "enable-ssl-trace enable-fips no-afalgeng no-asan no-brotli no-brotli-dynamic no-buildtest-c++ no-comp no-crypto-mdebug no-crypto-mdebug-backtrace no-demos no-devcryptoeng no-dynamic-engine no-ec_nistp_64_gcc_128 no-egd no-external-tests no-fips-jitter no-fuzz-afl no-fuzz-libfuzzer no-h3demo no-hqinterop no-jitter no-ktls no-loadereng no-md2 no-msan no-pie no-rc5 no-sctp no-shared no-ssl3 no-ssl3-method no-sslkeylog no-tfo no-trace no-ubsan no-unit-test no-uplink no-weak-ssl-ciphers no-winstore no-zlib no-zlib-dynamic no-zstd no-zstd-dynamic", + "patch" => "1", "perl_archname" => "x86_64-linux-gnu-thread-multi", "perl_cmd" => "/usr/bin/perl", - "perl_version" => "5.38.2", + "perl_version" => "5.34.0", "perlargv" => [ "no-comp", "no-shared", @@ -240,6 +270,7 @@ our %config = ( "LDLIBS" => undef, "MT" => undef, "MTFLAGS" => undef, + "OBJCOPY" => undef, "OPENSSL_LOCAL_CONFIG_DIR" => undef, "PERL" => undef, "RANLIB" => undef, @@ -263,7 +294,7 @@ our %config = ( "shlib_version" => "3", "sourcedir" => ".", "target" => "linux-armv4", - "version" => "3.0.17" + "version" => "3.5.1" ); our %target = ( "AR" => "ar", @@ -273,6 +304,7 @@ our %target = ( "CXX" => "g++", "CXXFLAGS" => "-Wall -O3", "HASHBANGPERL" => "/usr/bin/env perl", + "OBJCOPY" => "objcopy", "RANLIB" => "ranlib", "RC" => "windres", "_conf_fname_int" => [ @@ -284,6 +316,8 @@ our %target = ( "Configurations/shared-info.pl" ], "asm_arch" => "armv4", + "bin_cflags" => "", + "bin_lflags" => "", "bn_ops" => "BN_LLONG RC4_CHAR", "build_file" => "Makefile", "build_scheme" => [ @@ -328,6 +362,8 @@ our %target = ( our @disablables = ( "acvp-tests", "afalgeng", + "apps", + "argon2", "aria", "asan", "asm", @@ -338,11 +374,14 @@ our @disablables = ( "autoload-config", "bf", "blake2", + "brotli", + "brotli-dynamic", "buildtest-c++", "bulk", "cached-fetch", "camellia", "capieng", + "winstore", "cast", "chacha", "cmac", @@ -351,11 +390,16 @@ our @disablables = ( "comp", "crypto-mdebug", "ct", + "default-thread-pool", + "demos", + "h3demo", + "hqinterop", "deprecated", "des", "devcryptoeng", "dgram", "dh", + "docs", "dsa", "dso", "dtls", @@ -365,6 +409,7 @@ our @disablables = ( "ec_nistp_64_gcc_128", "ecdh", "ecdsa", + "ecx", "egd", "engine", "err", @@ -372,10 +417,15 @@ our @disablables = ( "filenames", "fips", "fips-securitychecks", + "fips-post", + "fips-jitter", "fuzz-afl", "fuzz-libfuzzer", "gost", + "http", "idea", + "integrity-only-ciphers", + "jitter", "ktls", "legacy", "loadereng", @@ -383,6 +433,8 @@ our @disablables = ( "md2", "md4", "mdc2", + "ml-dsa", + "ml-kem", "module", "msan", "multiblock", @@ -391,10 +443,13 @@ our @disablables = ( "ocsp", "padlockeng", "pic", + "pie", "pinshared", "poly1305", "posix-io", "psk", + "quic", + "unstable-qlog", "rc2", "rc4", "rc5", @@ -408,7 +463,9 @@ our @disablables = ( "shared", "siphash", "siv", + "slh-dsa", "sm2", + "sm2-precomp", "sm3", "sm4", "sock", @@ -419,9 +476,13 @@ our @disablables = ( "ssl-trace", "static-engine", "stdio", + "sslkeylog", "tests", + "tfo", + "thread-pool", "threads", "tls", + "tls-deprecated-ec", "trace", "ts", "ubsan", @@ -432,6 +493,8 @@ our @disablables = ( "whirlpool", "zlib", "zlib-dynamic", + "zstd", + "zstd-dynamic", "ssl3", "ssl3-method", "tls1", @@ -452,33 +515,46 @@ our @disablables_int = ( our %disabled = ( "afalgeng" => "option", "asan" => "default", + "brotli" => "default", + "brotli-dynamic" => "default", "buildtest-c++" => "default", "comp" => "option", "crypto-mdebug" => "default", "crypto-mdebug-backtrace" => "default", + "demos" => "default", "devcryptoeng" => "default", "dynamic-engine" => "cascade", "ec_nistp_64_gcc_128" => "default", "egd" => "default", "external-tests" => "default", + "fips-jitter" => "default", "fuzz-afl" => "default", "fuzz-libfuzzer" => "default", + "h3demo" => "default", + "hqinterop" => "default", + "jitter" => "default", "ktls" => "default", "loadereng" => "cascade", "md2" => "default", "msan" => "default", + "pie" => "default", "rc5" => "default", "sctp" => "default", "shared" => "option", "ssl3" => "default", "ssl3-method" => "default", + "sslkeylog" => "default", + "tfo" => "default", "trace" => "default", "ubsan" => "default", "unit-test" => "default", "uplink" => "no uplink_arch", "weak-ssl-ciphers" => "default", + "winstore" => "not-windows", "zlib" => "default", - "zlib-dynamic" => "default" + "zlib-dynamic" => "default", + "zstd" => "default", + "zstd-dynamic" => "default" ); our %withargs = (); our %unified_info = ( @@ -704,6 +780,11 @@ our %unified_info = ( "pod" => "1" } }, + "doc/man1/openssl-skeyutl.pod" => { + "doc/man1/openssl-skeyutl.pod.in" => { + "pod" => "1" + } + }, "doc/man1/openssl-smime.pod" => { "doc/man1/openssl-smime.pod.in" => { "pod" => "1" @@ -761,6 +842,21 @@ our %unified_info = ( } }, "generate" => { + "exporters/OpenSSLConfig.cmake" => { + "exporter" => "cmake" + }, + "exporters/OpenSSLConfigVersion.cmake" => { + "exporter" => "cmake" + }, + "exporters/libcrypto.pc" => { + "exporter" => "pkg-config" + }, + "exporters/libssl.pc" => { + "exporter" => "pkg-config" + }, + "exporters/openssl.pc" => { + "exporter" => "pkg-config" + }, "include/openssl/configuration.h" => { "skip" => "1" } @@ -781,6 +877,9 @@ our %unified_info = ( "providers/liblegacy.a" => { "noinst" => "1" }, + "providers/libtemplate.a" => { + "noinst" => "1" + }, "test/libtestutil.a" => { "has_main" => "1", "noinst" => "1" @@ -798,6 +897,9 @@ our %unified_info = ( } }, "programs" => { + "fuzz/acert-test" => { + "noinst" => "1" + }, "fuzz/asn1-test" => { "noinst" => "1" }, @@ -828,9 +930,60 @@ our %unified_info = ( "fuzz/ct-test" => { "noinst" => "1" }, + "fuzz/decoder-test" => { + "noinst" => "1" + }, + "fuzz/dtlsclient-test" => { + "noinst" => "1" + }, + "fuzz/dtlsserver-test" => { + "noinst" => "1" + }, + "fuzz/hashtable-test" => { + "noinst" => "1" + }, + "fuzz/ml-dsa-test" => { + "noinst" => "1" + }, + "fuzz/ml-kem-test" => { + "noinst" => "1" + }, + "fuzz/pem-test" => { + "noinst" => "1" + }, + "fuzz/provider-test" => { + "noinst" => "1" + }, + "fuzz/punycode-test" => { + "noinst" => "1" + }, + "fuzz/quic-client-test" => { + "noinst" => "1" + }, + "fuzz/quic-lcidm-test" => { + "noinst" => "1" + }, + "fuzz/quic-rcidm-test" => { + "noinst" => "1" + }, + "fuzz/quic-server-test" => { + "noinst" => "1" + }, + "fuzz/quic-srtm-test" => { + "noinst" => "1" + }, "fuzz/server-test" => { "noinst" => "1" }, + "fuzz/slh-dsa-test" => { + "noinst" => "1" + }, + "fuzz/smime-test" => { + "noinst" => "1" + }, + "fuzz/v3name-test" => { + "noinst" => "1" + }, "fuzz/x509-test" => { "noinst" => "1" }, @@ -882,18 +1035,30 @@ our %unified_info = ( "test/bftest" => { "noinst" => "1" }, + "test/bio_addr_test" => { + "noinst" => "1" + }, + "test/bio_base64_test" => { + "noinst" => "1" + }, "test/bio_callback_test" => { "noinst" => "1" }, "test/bio_core_test" => { "noinst" => "1" }, + "test/bio_dgram_test" => { + "noinst" => "1" + }, "test/bio_enc_test" => { "noinst" => "1" }, "test/bio_memleak_test" => { "noinst" => "1" }, + "test/bio_meth_test" => { + "noinst" => "1" + }, "test/bio_prefix_text" => { "noinst" => "1" }, @@ -903,6 +1068,9 @@ our %unified_info = ( "test/bio_readbuffer_test" => { "noinst" => "1" }, + "test/bio_tfo_test" => { + "noinst" => "1" + }, "test/bioprinttest" => { "noinst" => "1" }, @@ -912,6 +1080,9 @@ our %unified_info = ( "test/bntest" => { "noinst" => "1" }, + "test/build_wincrypt_test" => { + "noinst" => "1" + }, "test/buildtest_c_aes" => { "noinst" => "1" }, @@ -927,6 +1098,9 @@ our %unified_info = ( "test/buildtest_c_buffer" => { "noinst" => "1" }, + "test/buildtest_c_byteorder" => { + "noinst" => "1" + }, "test/buildtest_c_camellia" => { "noinst" => "1" }, @@ -951,9 +1125,6 @@ our %unified_info = ( "test/buildtest_c_core_dispatch" => { "noinst" => "1" }, - "test/buildtest_c_core_names" => { - "noinst" => "1" - }, "test/buildtest_c_core_object" => { "noinst" => "1" }, @@ -978,6 +1149,9 @@ our %unified_info = ( "test/buildtest_c_e_os2" => { "noinst" => "1" }, + "test/buildtest_c_e_ostime" => { + "noinst" => "1" + }, "test/buildtest_c_ebcdic" => { "noinst" => "1" }, @@ -1005,12 +1179,18 @@ our %unified_info = ( "test/buildtest_c_hmac" => { "noinst" => "1" }, + "test/buildtest_c_hpke" => { + "noinst" => "1" + }, "test/buildtest_c_http" => { "noinst" => "1" }, "test/buildtest_c_idea" => { "noinst" => "1" }, + "test/buildtest_c_indicator" => { + "noinst" => "1" + }, "test/buildtest_c_kdf" => { "noinst" => "1" }, @@ -1026,6 +1206,9 @@ our %unified_info = ( "test/buildtest_c_mdc2" => { "noinst" => "1" }, + "test/buildtest_c_ml_kem" => { + "noinst" => "1" + }, "test/buildtest_c_modes" => { "noinst" => "1" }, @@ -1056,6 +1239,9 @@ our %unified_info = ( "test/buildtest_c_provider" => { "noinst" => "1" }, + "test/buildtest_c_quic" => { + "noinst" => "1" + }, "test/buildtest_c_rand" => { "noinst" => "1" }, @@ -1098,6 +1284,9 @@ our %unified_info = ( "test/buildtest_c_symhacks" => { "noinst" => "1" }, + "test/buildtest_c_thread" => { + "noinst" => "1" + }, "test/buildtest_c_tls1" => { "noinst" => "1" }, @@ -1113,6 +1302,12 @@ our %unified_info = ( "test/buildtest_c_whrlpool" => { "noinst" => "1" }, + "test/byteorder_test" => { + "noinst" => "1" + }, + "test/ca_internals_test" => { + "noinst" => "1" + }, "test/casttest" => { "noinst" => "1" }, @@ -1197,6 +1392,9 @@ our %unified_info = ( "test/danetest" => { "noinst" => "1" }, + "test/decoder_propq_test" => { + "noinst" => "1" + }, "test/defltfips_test" => { "noinst" => "1" }, @@ -1269,15 +1467,24 @@ our %unified_info = ( "test/evp_pkey_ctx_new_from_name" => { "noinst" => "1" }, + "test/evp_pkey_dhkem_test" => { + "noinst" => "1" + }, "test/evp_pkey_dparams_test" => { "noinst" => "1" }, "test/evp_pkey_provided_test" => { "noinst" => "1" }, + "test/evp_skey_test" => { + "noinst" => "1" + }, "test/evp_test" => { "noinst" => "1" }, + "test/evp_xof_test" => { + "noinst" => "1" + }, "test/exdatatest" => { "noinst" => "1" }, @@ -1305,6 +1512,9 @@ our %unified_info = ( "test/hmactest" => { "noinst" => "1" }, + "test/hpke_test" => { + "noinst" => "1" + }, "test/http_test" => { "noinst" => "1" }, @@ -1314,12 +1524,18 @@ our %unified_info = ( "test/igetest" => { "noinst" => "1" }, + "test/json_test" => { + "noinst" => "1" + }, "test/keymgmt_internal_test" => { "noinst" => "1" }, "test/lhash_test" => { "noinst" => "1" }, + "test/list_test" => { + "noinst" => "1" + }, "test/localetest" => { "noinst" => "1" }, @@ -1329,9 +1545,21 @@ our %unified_info = ( "test/mdc2test" => { "noinst" => "1" }, + "test/membio_test" => { + "noinst" => "1" + }, "test/memleaktest" => { "noinst" => "1" }, + "test/ml_dsa_test" => { + "noinst" => "1" + }, + "test/ml_kem_evp_extra_test" => { + "noinst" => "1" + }, + "test/ml_kem_internal_test" => { + "noinst" => "1" + }, "test/modes_internal_test" => { "noinst" => "1" }, @@ -1350,6 +1578,9 @@ our %unified_info = ( "test/packettest" => { "noinst" => "1" }, + "test/pairwise_fail_test" => { + "noinst" => "1" + }, "test/param_build_test" => { "noinst" => "1" }, @@ -1374,6 +1605,9 @@ our %unified_info = ( "test/pemtest" => { "noinst" => "1" }, + "test/pkcs12_api_test" => { + "noinst" => "1" + }, "test/pkcs12_format_test" => { "noinst" => "1" }, @@ -1389,6 +1623,9 @@ our %unified_info = ( "test/poly1305_internal_test" => { "noinst" => "1" }, + "test/priority_queue_test" => { + "noinst" => "1" + }, "test/property_test" => { "noinst" => "1" }, @@ -1398,6 +1635,9 @@ our %unified_info = ( "test/provfetchtest" => { "noinst" => "1" }, + "test/provider_default_search_path_test" => { + "noinst" => "1" + }, "test/provider_fallback_test" => { "noinst" => "1" }, @@ -1416,6 +1656,72 @@ our %unified_info = ( "test/punycode_test" => { "noinst" => "1" }, + "test/quic_ackm_test" => { + "noinst" => "1" + }, + "test/quic_cc_test" => { + "noinst" => "1" + }, + "test/quic_cfq_test" => { + "noinst" => "1" + }, + "test/quic_client_test" => { + "noinst" => "1" + }, + "test/quic_fc_test" => { + "noinst" => "1" + }, + "test/quic_fifd_test" => { + "noinst" => "1" + }, + "test/quic_lcidm_test" => { + "noinst" => "1" + }, + "test/quic_multistream_test" => { + "noinst" => "1" + }, + "test/quic_newcid_test" => { + "noinst" => "1" + }, + "test/quic_qlog_test" => { + "noinst" => "1" + }, + "test/quic_radix_test" => { + "noinst" => "1" + }, + "test/quic_rcidm_test" => { + "noinst" => "1" + }, + "test/quic_record_test" => { + "noinst" => "1" + }, + "test/quic_srt_gen_test" => { + "noinst" => "1" + }, + "test/quic_srtm_test" => { + "noinst" => "1" + }, + "test/quic_stream_test" => { + "noinst" => "1" + }, + "test/quic_tserver_test" => { + "noinst" => "1" + }, + "test/quic_txp_test" => { + "noinst" => "1" + }, + "test/quic_txpim_test" => { + "noinst" => "1" + }, + "test/quic_wire_test" => { + "noinst" => "1" + }, + "test/quicapitest" => { + "noinst" => "1" + }, + "test/quicfaultstest" => { + "noinst" => "1" + }, "test/rand_status_test" => { "noinst" => "1" }, @@ -1431,12 +1737,15 @@ our %unified_info = ( "test/rc5test" => { "noinst" => "1" }, - "test/rdrand_sanitytest" => { + "test/rdcpu_sanitytest" => { "noinst" => "1" }, "test/recordlentest" => { "noinst" => "1" }, + "test/rpktest" => { + "noinst" => "1" + }, "test/rsa_complex" => { "noinst" => "1" }, @@ -1449,6 +1758,12 @@ our %unified_info = ( "test/rsa_test" => { "noinst" => "1" }, + "test/rsa_x931_test" => { + "noinst" => "1" + }, + "test/safe_math_test" => { + "noinst" => "1" + }, "test/sanitytest" => { "noinst" => "1" }, @@ -1464,6 +1779,9 @@ our %unified_info = ( "test/siphash_internal_test" => { "noinst" => "1" }, + "test/slh_dsa_test" => { + "noinst" => "1" + }, "test/sm2_internal_test" => { "noinst" => "1" }, @@ -1485,6 +1803,9 @@ our %unified_info = ( "test/ssl_ctx_test" => { "noinst" => "1" }, + "test/ssl_handshake_rtt_test" => { + "noinst" => "1" + }, "test/ssl_old_test" => { "noinst" => "1" }, @@ -1506,12 +1827,18 @@ our %unified_info = ( "test/stack_test" => { "noinst" => "1" }, + "test/strtoultest" => { + "noinst" => "1" + }, "test/sysdefaulttest" => { "noinst" => "1" }, "test/test_test" => { "noinst" => "1" }, + "test/threadpool_test" => { + "noinst" => "1" + }, "test/threadstest" => { "noinst" => "1" }, @@ -1521,12 +1848,18 @@ our %unified_info = ( "test/time_offset_test" => { "noinst" => "1" }, + "test/time_test" => { + "noinst" => "1" + }, "test/tls13ccstest" => { "noinst" => "1" }, "test/tls13encryptiontest" => { "noinst" => "1" }, + "test/tls13groupselection_test" => { + "noinst" => "1" + }, "test/trace_api_test" => { "noinst" => "1" }, @@ -1554,6 +1887,9 @@ our %unified_info = ( "test/wpackettest" => { "noinst" => "1" }, + "test/x509_acert_test" => { + "noinst" => "1" + }, "test/x509_check_cert_pkey_test" => { "noinst" => "1" }, @@ -1563,6 +1899,15 @@ our %unified_info = ( "test/x509_internal_test" => { "noinst" => "1" }, + "test/x509_load_cert_file_test" => { + "noinst" => "1" + }, + "test/x509_req_test" => { + "noinst" => "1" + }, + "test/x509_test" => { + "noinst" => "1" + }, "test/x509_time_test" => { "noinst" => "1" }, @@ -1626,6 +1971,7 @@ our %unified_info = ( "AES_ASM", "BSAES_ASM", "ECP_NISTZ256_ASM", + "GHASH_ASM", "KECCAK1600_ASM", "OPENSSL_CPUID_OBJ", "SHA1_ASM", @@ -1646,6 +1992,9 @@ our %unified_info = ( "SHA256_ASM", "SHA512_ASM" ], + "test/endecode_test" => [ + "STATIC_LEGACY" + ], "test/evp_extra_test" => [ "STATIC_LEGACY" ], @@ -1658,14 +2007,21 @@ our %unified_info = ( }, "depends" => { "" => [ + "OpenSSLConfigVersion.cmake", + "crypto/params_idx.c", + "exporters/OpenSSLConfigVersion.cmake", + "exporters/openssl.pc", "include/crypto/bn_conf.h", "include/crypto/dso_conf.h", + "include/internal/param_names.h", "include/openssl/asn1.h", "include/openssl/asn1t.h", "include/openssl/bio.h", "include/openssl/cmp.h", "include/openssl/cms.h", + "include/openssl/comp.h", "include/openssl/conf.h", + "include/openssl/core_names.h", "include/openssl/crmf.h", "include/openssl/crypto.h", "include/openssl/ct.h", @@ -1682,10 +2038,22 @@ our %unified_info = ( "include/openssl/ssl.h", "include/openssl/ui.h", "include/openssl/x509.h", + "include/openssl/x509_acert.h", "include/openssl/x509_vfy.h", "include/openssl/x509v3.h", + "openssl.pc", "test/provider_internal_test.cnf" ], + "OpenSSLConfig.cmake" => [ + "builddata.pm" + ], + "OpenSSLConfigVersion.cmake" => [ + "OpenSSLConfig.cmake", + "builddata.pm" + ], + "apps/ca_internals_test-bin-ca.o" => [ + "apps/progs.h" + ], "apps/lib/cmp_client_test-bin-cmp_mock_srv.o" => [ "apps/progs.h" ], @@ -1831,6 +2199,9 @@ our %unified_info = ( "apps/openssl-bin-sess_id.o" => [ "apps/progs.h" ], + "apps/openssl-bin-skeyutl.o" => [ + "apps/progs.h" + ], "apps/openssl-bin-smime.o" => [ "apps/progs.h" ], @@ -1919,6 +2290,9 @@ our %unified_info = ( "crypto/libcrypto-lib-info.o" => [ "crypto/buildinf.h" ], + "crypto/params_idx.c" => [ + "util/perl|OpenSSL/paramnames.pm" + ], "crypto/rc4/rc4-586.S" => [ "crypto/perlasm/x86asm.pl" ], @@ -2084,6 +2458,9 @@ our %unified_info = ( "doc/html/man1/openssl-sess_id.html" => [ "doc/man1/openssl-sess_id.pod" ], + "doc/html/man1/openssl-skeyutl.html" => [ + "doc/man1/openssl-skeyutl.pod" + ], "doc/html/man1/openssl-smime.html" => [ "doc/man1/openssl-smime.pod" ], @@ -2225,6 +2602,9 @@ our %unified_info = ( "doc/html/man3/BIO_get_ex_new_index.html" => [ "doc/man3/BIO_get_ex_new_index.pod" ], + "doc/html/man3/BIO_get_rpoll_descriptor.html" => [ + "doc/man3/BIO_get_rpoll_descriptor.pod" + ], "doc/html/man3/BIO_meth_new.html" => [ "doc/man3/BIO_meth_new.pod" ], @@ -2261,6 +2641,9 @@ our %unified_info = ( "doc/html/man3/BIO_s_datagram.html" => [ "doc/man3/BIO_s_datagram.pod" ], + "doc/html/man3/BIO_s_dgram_pair.html" => [ + "doc/man3/BIO_s_dgram_pair.pod" + ], "doc/html/man3/BIO_s_fd.html" => [ "doc/man3/BIO_s_fd.pod" ], @@ -2276,6 +2659,9 @@ our %unified_info = ( "doc/html/man3/BIO_s_socket.html" => [ "doc/man3/BIO_s_socket.pod" ], + "doc/html/man3/BIO_sendmmsg.html" => [ + "doc/man3/BIO_sendmmsg.pod" + ], "doc/html/man3/BIO_set_callback.html" => [ "doc/man3/BIO_set_callback.pod" ], @@ -2348,6 +2734,9 @@ our %unified_info = ( "doc/html/man3/BUF_MEM_new.html" => [ "doc/man3/BUF_MEM_new.pod" ], + "doc/html/man3/CMAC_CTX.html" => [ + "doc/man3/CMAC_CTX.pod" + ], "doc/html/man3/CMS_EncryptedData_decrypt.html" => [ "doc/man3/CMS_EncryptedData_decrypt.pod" ], @@ -2414,6 +2803,9 @@ our %unified_info = ( "doc/html/man3/CMS_verify_receipt.html" => [ "doc/man3/CMS_verify_receipt.pod" ], + "doc/html/man3/COMP_CTX_new.html" => [ + "doc/man3/COMP_CTX_new.pod" + ], "doc/html/man3/CONF_modules_free.html" => [ "doc/man3/CONF_modules_free.pod" ], @@ -2513,6 +2905,12 @@ our %unified_info = ( "doc/html/man3/DTLS_set_timer_cb.html" => [ "doc/man3/DTLS_set_timer_cb.pod" ], + "doc/html/man3/DTLSv1_get_timeout.html" => [ + "doc/man3/DTLSv1_get_timeout.pod" + ], + "doc/html/man3/DTLSv1_handle_timeout.html" => [ + "doc/man3/DTLSv1_handle_timeout.pod" + ], "doc/html/man3/DTLSv1_listen.html" => [ "doc/man3/DTLSv1_listen.pod" ], @@ -2651,6 +3049,9 @@ our %unified_info = ( "doc/html/man3/EVP_PKEY_CTX_get0_pkey.html" => [ "doc/man3/EVP_PKEY_CTX_get0_pkey.pod" ], + "doc/html/man3/EVP_PKEY_CTX_get_algor.html" => [ + "doc/man3/EVP_PKEY_CTX_get_algor.pod" + ], "doc/html/man3/EVP_PKEY_CTX_new.html" => [ "doc/man3/EVP_PKEY_CTX_new.pod" ], @@ -2768,6 +3169,12 @@ our %unified_info = ( "doc/html/man3/EVP_SIGNATURE.html" => [ "doc/man3/EVP_SIGNATURE.pod" ], + "doc/html/man3/EVP_SKEY.html" => [ + "doc/man3/EVP_SKEY.pod" + ], + "doc/html/man3/EVP_SKEYMGMT.html" => [ + "doc/man3/EVP_SKEYMGMT.pod" + ], "doc/html/man3/EVP_SealInit.html" => [ "doc/man3/EVP_SealInit.pod" ], @@ -2855,6 +3262,9 @@ our %unified_info = ( "doc/html/man3/EVP_whirlpool.html" => [ "doc/man3/EVP_whirlpool.pod" ], + "doc/html/man3/GENERAL_NAME.html" => [ + "doc/man3/GENERAL_NAME.pod" + ], "doc/html/man3/HMAC.html" => [ "doc/man3/HMAC.pod" ], @@ -2927,9 +3337,15 @@ our %unified_info = ( "doc/html/man3/OPENSSL_load_builtin_modules.html" => [ "doc/man3/OPENSSL_load_builtin_modules.pod" ], + "doc/html/man3/OPENSSL_load_u16_le.html" => [ + "doc/man3/OPENSSL_load_u16_le.pod" + ], "doc/html/man3/OPENSSL_malloc.html" => [ "doc/man3/OPENSSL_malloc.pod" ], + "doc/html/man3/OPENSSL_riscvcap.html" => [ + "doc/man3/OPENSSL_riscvcap.pod" + ], "doc/html/man3/OPENSSL_s390xcap.html" => [ "doc/man3/OPENSSL_s390xcap.pod" ], @@ -2945,12 +3361,18 @@ our %unified_info = ( "doc/html/man3/OSSL_CALLBACK.html" => [ "doc/man3/OSSL_CALLBACK.pod" ], + "doc/html/man3/OSSL_CMP_ATAV_set0.html" => [ + "doc/man3/OSSL_CMP_ATAV_set0.pod" + ], "doc/html/man3/OSSL_CMP_CTX_new.html" => [ "doc/man3/OSSL_CMP_CTX_new.pod" ], "doc/html/man3/OSSL_CMP_HDR_get0_transactionID.html" => [ "doc/man3/OSSL_CMP_HDR_get0_transactionID.pod" ], + "doc/html/man3/OSSL_CMP_ITAV_new_caCerts.html" => [ + "doc/man3/OSSL_CMP_ITAV_new_caCerts.pod" + ], "doc/html/man3/OSSL_CMP_ITAV_set0.html" => [ "doc/man3/OSSL_CMP_ITAV_set0.pod" ], @@ -3020,9 +3442,18 @@ our %unified_info = ( "doc/html/man3/OSSL_ENCODER_to_bio.html" => [ "doc/man3/OSSL_ENCODER_to_bio.pod" ], + "doc/html/man3/OSSL_ERR_STATE_save.html" => [ + "doc/man3/OSSL_ERR_STATE_save.pod" + ], "doc/html/man3/OSSL_ESS_check_signing_certs.html" => [ "doc/man3/OSSL_ESS_check_signing_certs.pod" ], + "doc/html/man3/OSSL_GENERAL_NAMES_print.html" => [ + "doc/man3/OSSL_GENERAL_NAMES_print.pod" + ], + "doc/html/man3/OSSL_HPKE_CTX_new.html" => [ + "doc/man3/OSSL_HPKE_CTX_new.pod" + ], "doc/html/man3/OSSL_HTTP_REQ_CTX.html" => [ "doc/man3/OSSL_HTTP_REQ_CTX.pod" ], @@ -3032,12 +3463,24 @@ our %unified_info = ( "doc/html/man3/OSSL_HTTP_transfer.html" => [ "doc/man3/OSSL_HTTP_transfer.pod" ], + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX.html" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX.pod" + ], + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX_print.html" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX_print.pod" + ], + "doc/html/man3/OSSL_INDICATOR_set_callback.html" => [ + "doc/man3/OSSL_INDICATOR_set_callback.pod" + ], "doc/html/man3/OSSL_ITEM.html" => [ "doc/man3/OSSL_ITEM.pod" ], "doc/html/man3/OSSL_LIB_CTX.html" => [ "doc/man3/OSSL_LIB_CTX.pod" ], + "doc/html/man3/OSSL_LIB_CTX_set_conf_diagnostics.html" => [ + "doc/man3/OSSL_LIB_CTX_set_conf_diagnostics.pod" + ], "doc/html/man3/OSSL_PARAM.html" => [ "doc/man3/OSSL_PARAM.pod" ], @@ -3053,9 +3496,15 @@ our %unified_info = ( "doc/html/man3/OSSL_PARAM_int.html" => [ "doc/man3/OSSL_PARAM_int.pod" ], + "doc/html/man3/OSSL_PARAM_print_to_bio.html" => [ + "doc/man3/OSSL_PARAM_print_to_bio.pod" + ], "doc/html/man3/OSSL_PROVIDER.html" => [ "doc/man3/OSSL_PROVIDER.pod" ], + "doc/html/man3/OSSL_QUIC_client_method.html" => [ + "doc/man3/OSSL_QUIC_client_method.pod" + ], "doc/html/man3/OSSL_SELF_TEST_new.html" => [ "doc/man3/OSSL_SELF_TEST_new.pod" ], @@ -3080,6 +3529,9 @@ our %unified_info = ( "doc/html/man3/OSSL_STORE_open.html" => [ "doc/man3/OSSL_STORE_open.pod" ], + "doc/html/man3/OSSL_sleep.html" => [ + "doc/man3/OSSL_sleep.pod" + ], "doc/html/man3/OSSL_trace_enabled.html" => [ "doc/man3/OSSL_trace_enabled.pod" ], @@ -3095,6 +3547,9 @@ our %unified_info = ( "doc/html/man3/OpenSSL_version.html" => [ "doc/man3/OpenSSL_version.pod" ], + "doc/html/man3/PBMAC1_get1_pbkdf2_param.html" => [ + "doc/man3/PBMAC1_get1_pbkdf2_param.pod" + ], "doc/html/man3/PEM_X509_INFO_read_bio_ex.html" => [ "doc/man3/PEM_X509_INFO_read_bio_ex.pod" ], @@ -3131,6 +3586,9 @@ our %unified_info = ( "doc/html/man3/PKCS12_SAFEBAG_get1_cert.html" => [ "doc/man3/PKCS12_SAFEBAG_get1_cert.pod" ], + "doc/html/man3/PKCS12_SAFEBAG_set0_attrs.html" => [ + "doc/man3/PKCS12_SAFEBAG_set0_attrs.pod" + ], "doc/html/man3/PKCS12_add1_attr_by_NID.html" => [ "doc/man3/PKCS12_add1_attr_by_NID.pod" ], @@ -3404,6 +3862,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set0_CA_list.html" => [ "doc/man3/SSL_CTX_set0_CA_list.pod" ], + "doc/html/man3/SSL_CTX_set1_cert_comp_preference.html" => [ + "doc/man3/SSL_CTX_set1_cert_comp_preference.pod" + ], "doc/html/man3/SSL_CTX_set1_curves.html" => [ "doc/man3/SSL_CTX_set1_curves.pod" ], @@ -3443,6 +3904,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_default_passwd_cb.html" => [ "doc/man3/SSL_CTX_set_default_passwd_cb.pod" ], + "doc/html/man3/SSL_CTX_set_domain_flags.html" => [ + "doc/man3/SSL_CTX_set_domain_flags.pod" + ], "doc/html/man3/SSL_CTX_set_generate_session_id.html" => [ "doc/man3/SSL_CTX_set_generate_session_id.pod" ], @@ -3464,6 +3928,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_msg_callback.html" => [ "doc/man3/SSL_CTX_set_msg_callback.pod" ], + "doc/html/man3/SSL_CTX_set_new_pending_conn_cb.html" => [ + "doc/man3/SSL_CTX_set_new_pending_conn_cb.pod" + ], "doc/html/man3/SSL_CTX_set_num_tickets.html" => [ "doc/man3/SSL_CTX_set_num_tickets.pod" ], @@ -3578,6 +4045,9 @@ our %unified_info = ( "doc/html/man3/SSL_accept.html" => [ "doc/man3/SSL_accept.pod" ], + "doc/html/man3/SSL_accept_stream.html" => [ + "doc/man3/SSL_accept_stream.pod" + ], "doc/html/man3/SSL_alert_type_string.html" => [ "doc/man3/SSL_alert_type_string.pod" ], @@ -3605,9 +4075,21 @@ our %unified_info = ( "doc/html/man3/SSL_free.html" => [ "doc/man3/SSL_free.pod" ], + "doc/html/man3/SSL_get0_connection.html" => [ + "doc/man3/SSL_get0_connection.pod" + ], + "doc/html/man3/SSL_get0_group_name.html" => [ + "doc/man3/SSL_get0_group_name.pod" + ], + "doc/html/man3/SSL_get0_peer_rpk.html" => [ + "doc/man3/SSL_get0_peer_rpk.pod" + ], "doc/html/man3/SSL_get0_peer_scts.html" => [ "doc/man3/SSL_get0_peer_scts.pod" ], + "doc/html/man3/SSL_get1_builtin_sigalgs.html" => [ + "doc/man3/SSL_get1_builtin_sigalgs.pod" + ], "doc/html/man3/SSL_get_SSL_CTX.html" => [ "doc/man3/SSL_get_SSL_CTX.pod" ], @@ -3623,6 +4105,9 @@ our %unified_info = ( "doc/html/man3/SSL_get_client_random.html" => [ "doc/man3/SSL_get_client_random.pod" ], + "doc/html/man3/SSL_get_conn_close_info.html" => [ + "doc/man3/SSL_get_conn_close_info.pod" + ], "doc/html/man3/SSL_get_current_cipher.html" => [ "doc/man3/SSL_get_current_cipher.pod" ], @@ -3632,12 +4117,18 @@ our %unified_info = ( "doc/html/man3/SSL_get_error.html" => [ "doc/man3/SSL_get_error.pod" ], + "doc/html/man3/SSL_get_event_timeout.html" => [ + "doc/man3/SSL_get_event_timeout.pod" + ], "doc/html/man3/SSL_get_extms_support.html" => [ "doc/man3/SSL_get_extms_support.pod" ], "doc/html/man3/SSL_get_fd.html" => [ "doc/man3/SSL_get_fd.pod" ], + "doc/html/man3/SSL_get_handshake_rtt.html" => [ + "doc/man3/SSL_get_handshake_rtt.pod" + ], "doc/html/man3/SSL_get_peer_cert_chain.html" => [ "doc/man3/SSL_get_peer_cert_chain.pod" ], @@ -3656,12 +4147,24 @@ our %unified_info = ( "doc/html/man3/SSL_get_rbio.html" => [ "doc/man3/SSL_get_rbio.pod" ], + "doc/html/man3/SSL_get_rpoll_descriptor.html" => [ + "doc/man3/SSL_get_rpoll_descriptor.pod" + ], "doc/html/man3/SSL_get_session.html" => [ "doc/man3/SSL_get_session.pod" ], "doc/html/man3/SSL_get_shared_sigalgs.html" => [ "doc/man3/SSL_get_shared_sigalgs.pod" ], + "doc/html/man3/SSL_get_stream_id.html" => [ + "doc/man3/SSL_get_stream_id.pod" + ], + "doc/html/man3/SSL_get_stream_read_state.html" => [ + "doc/man3/SSL_get_stream_read_state.pod" + ], + "doc/html/man3/SSL_get_value_uint.html" => [ + "doc/man3/SSL_get_value_uint.pod" + ], "doc/html/man3/SSL_get_verify_result.html" => [ "doc/man3/SSL_get_verify_result.pod" ], @@ -3671,9 +4174,15 @@ our %unified_info = ( "doc/html/man3/SSL_group_to_name.html" => [ "doc/man3/SSL_group_to_name.pod" ], + "doc/html/man3/SSL_handle_events.html" => [ + "doc/man3/SSL_handle_events.pod" + ], "doc/html/man3/SSL_in_init.html" => [ "doc/man3/SSL_in_init.pod" ], + "doc/html/man3/SSL_inject_net_dgram.html" => [ + "doc/man3/SSL_inject_net_dgram.pod" + ], "doc/html/man3/SSL_key_update.html" => [ "doc/man3/SSL_key_update.pod" ], @@ -3686,9 +4195,21 @@ our %unified_info = ( "doc/html/man3/SSL_new.html" => [ "doc/man3/SSL_new.pod" ], + "doc/html/man3/SSL_new_domain.html" => [ + "doc/man3/SSL_new_domain.pod" + ], + "doc/html/man3/SSL_new_listener.html" => [ + "doc/man3/SSL_new_listener.pod" + ], + "doc/html/man3/SSL_new_stream.html" => [ + "doc/man3/SSL_new_stream.pod" + ], "doc/html/man3/SSL_pending.html" => [ "doc/man3/SSL_pending.pod" ], + "doc/html/man3/SSL_poll.html" => [ + "doc/man3/SSL_poll.pod" + ], "doc/html/man3/SSL_read.html" => [ "doc/man3/SSL_read.pod" ], @@ -3704,24 +4225,45 @@ our %unified_info = ( "doc/html/man3/SSL_set1_host.html" => [ "doc/man3/SSL_set1_host.pod" ], + "doc/html/man3/SSL_set1_initial_peer_addr.html" => [ + "doc/man3/SSL_set1_initial_peer_addr.pod" + ], + "doc/html/man3/SSL_set1_server_cert_type.html" => [ + "doc/man3/SSL_set1_server_cert_type.pod" + ], "doc/html/man3/SSL_set_async_callback.html" => [ "doc/man3/SSL_set_async_callback.pod" ], "doc/html/man3/SSL_set_bio.html" => [ "doc/man3/SSL_set_bio.pod" ], + "doc/html/man3/SSL_set_blocking_mode.html" => [ + "doc/man3/SSL_set_blocking_mode.pod" + ], "doc/html/man3/SSL_set_connect_state.html" => [ "doc/man3/SSL_set_connect_state.pod" ], + "doc/html/man3/SSL_set_default_stream_mode.html" => [ + "doc/man3/SSL_set_default_stream_mode.pod" + ], "doc/html/man3/SSL_set_fd.html" => [ "doc/man3/SSL_set_fd.pod" ], + "doc/html/man3/SSL_set_incoming_stream_policy.html" => [ + "doc/man3/SSL_set_incoming_stream_policy.pod" + ], + "doc/html/man3/SSL_set_quic_tls_cbs.html" => [ + "doc/man3/SSL_set_quic_tls_cbs.pod" + ], "doc/html/man3/SSL_set_retry_verify.html" => [ "doc/man3/SSL_set_retry_verify.pod" ], "doc/html/man3/SSL_set_session.html" => [ "doc/man3/SSL_set_session.pod" ], + "doc/html/man3/SSL_set_session_secret_cb.html" => [ + "doc/man3/SSL_set_session_secret_cb.pod" + ], "doc/html/man3/SSL_set_shutdown.html" => [ "doc/man3/SSL_set_shutdown.pod" ], @@ -3734,6 +4276,12 @@ our %unified_info = ( "doc/html/man3/SSL_state_string.html" => [ "doc/man3/SSL_state_string.pod" ], + "doc/html/man3/SSL_stream_conclude.html" => [ + "doc/man3/SSL_stream_conclude.pod" + ], + "doc/html/man3/SSL_stream_reset.html" => [ + "doc/man3/SSL_stream_reset.pod" + ], "doc/html/man3/SSL_want.html" => [ "doc/man3/SSL_want.pod" ], @@ -3743,8 +4291,8 @@ our %unified_info = ( "doc/html/man3/TS_RESP_CTX_new.html" => [ "doc/man3/TS_RESP_CTX_new.pod" ], - "doc/html/man3/TS_VERIFY_CTX_set_certs.html" => [ - "doc/man3/TS_VERIFY_CTX_set_certs.pod" + "doc/html/man3/TS_VERIFY_CTX.html" => [ + "doc/man3/TS_VERIFY_CTX.pod" ], "doc/html/man3/UI_STRING.html" => [ "doc/man3/UI_STRING.pod" @@ -3764,6 +4312,21 @@ our %unified_info = ( "doc/html/man3/X509V3_set_ctx.html" => [ "doc/man3/X509V3_set_ctx.pod" ], + "doc/html/man3/X509_ACERT_add1_attr.html" => [ + "doc/man3/X509_ACERT_add1_attr.pod" + ], + "doc/html/man3/X509_ACERT_add_attr_nconf.html" => [ + "doc/man3/X509_ACERT_add_attr_nconf.pod" + ], + "doc/html/man3/X509_ACERT_get0_holder_baseCertId.html" => [ + "doc/man3/X509_ACERT_get0_holder_baseCertId.pod" + ], + "doc/html/man3/X509_ACERT_get_attr.html" => [ + "doc/man3/X509_ACERT_get_attr.pod" + ], + "doc/html/man3/X509_ACERT_print_ex.html" => [ + "doc/man3/X509_ACERT_print_ex.pod" + ], "doc/html/man3/X509_ALGOR_dup.html" => [ "doc/man3/X509_ALGOR_dup.pod" ], @@ -3812,6 +4375,9 @@ our %unified_info = ( "doc/html/man3/X509_SIG_get0.html" => [ "doc/man3/X509_SIG_get0.pod" ], + "doc/html/man3/X509_STORE_CTX_get_by_subject.html" => [ + "doc/man3/X509_STORE_CTX_get_by_subject.pod" + ], "doc/html/man3/X509_STORE_CTX_get_error.html" => [ "doc/man3/X509_STORE_CTX_get_error.pod" ], @@ -3878,6 +4444,9 @@ our %unified_info = ( "doc/html/man3/X509_get0_uids.html" => [ "doc/man3/X509_get0_uids.pod" ], + "doc/html/man3/X509_get_default_cert_file.html" => [ + "doc/man3/X509_get_default_cert_file.pod" + ], "doc/html/man3/X509_get_extension_flags.html" => [ "doc/man3/X509_get_extension_flags.pod" ], @@ -4001,9 +4570,15 @@ our %unified_info = ( "doc/html/man7/EVP_CIPHER-SM4.html" => [ "doc/man7/EVP_CIPHER-SM4.pod" ], + "doc/html/man7/EVP_KDF-ARGON2.html" => [ + "doc/man7/EVP_KDF-ARGON2.pod" + ], "doc/html/man7/EVP_KDF-HKDF.html" => [ "doc/man7/EVP_KDF-HKDF.pod" ], + "doc/html/man7/EVP_KDF-HMAC-DRBG.html" => [ + "doc/man7/EVP_KDF-HMAC-DRBG.pod" + ], "doc/html/man7/EVP_KDF-KB.html" => [ "doc/man7/EVP_KDF-KB.pod" ], @@ -4019,6 +4594,9 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-PKCS12KDF.html" => [ "doc/man7/EVP_KDF-PKCS12KDF.pod" ], + "doc/html/man7/EVP_KDF-PVKKDF.html" => [ + "doc/man7/EVP_KDF-PVKKDF.pod" + ], "doc/html/man7/EVP_KDF-SCRYPT.html" => [ "doc/man7/EVP_KDF-SCRYPT.pod" ], @@ -4043,9 +4621,18 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-X963.html" => [ "doc/man7/EVP_KDF-X963.pod" ], + "doc/html/man7/EVP_KEM-EC.html" => [ + "doc/man7/EVP_KEM-EC.pod" + ], + "doc/html/man7/EVP_KEM-ML-KEM.html" => [ + "doc/man7/EVP_KEM-ML-KEM.pod" + ], "doc/html/man7/EVP_KEM-RSA.html" => [ "doc/man7/EVP_KEM-RSA.pod" ], + "doc/html/man7/EVP_KEM-X25519.html" => [ + "doc/man7/EVP_KEM-X25519.pod" + ], "doc/html/man7/EVP_KEYEXCH-DH.html" => [ "doc/man7/EVP_KEYEXCH-DH.pod" ], @@ -4079,6 +4666,9 @@ our %unified_info = ( "doc/html/man7/EVP_MD-BLAKE2.html" => [ "doc/man7/EVP_MD-BLAKE2.pod" ], + "doc/html/man7/EVP_MD-KECCAK.html" => [ + "doc/man7/EVP_MD-KECCAK.pod" + ], "doc/html/man7/EVP_MD-MD2.html" => [ "doc/man7/EVP_MD-MD2.pod" ], @@ -4136,15 +4726,27 @@ our %unified_info = ( "doc/html/man7/EVP_PKEY-HMAC.html" => [ "doc/man7/EVP_PKEY-HMAC.pod" ], + "doc/html/man7/EVP_PKEY-ML-DSA.html" => [ + "doc/man7/EVP_PKEY-ML-DSA.pod" + ], + "doc/html/man7/EVP_PKEY-ML-KEM.html" => [ + "doc/man7/EVP_PKEY-ML-KEM.pod" + ], "doc/html/man7/EVP_PKEY-RSA.html" => [ "doc/man7/EVP_PKEY-RSA.pod" ], + "doc/html/man7/EVP_PKEY-SLH-DSA.html" => [ + "doc/man7/EVP_PKEY-SLH-DSA.pod" + ], "doc/html/man7/EVP_PKEY-SM2.html" => [ "doc/man7/EVP_PKEY-SM2.pod" ], "doc/html/man7/EVP_PKEY-X25519.html" => [ "doc/man7/EVP_PKEY-X25519.pod" ], + "doc/html/man7/EVP_RAND-CRNG-TEST.html" => [ + "doc/man7/EVP_RAND-CRNG-TEST.pod" + ], "doc/html/man7/EVP_RAND-CTR-DRBG.html" => [ "doc/man7/EVP_RAND-CTR-DRBG.pod" ], @@ -4154,6 +4756,9 @@ our %unified_info = ( "doc/html/man7/EVP_RAND-HMAC-DRBG.html" => [ "doc/man7/EVP_RAND-HMAC-DRBG.pod" ], + "doc/html/man7/EVP_RAND-JITTER.html" => [ + "doc/man7/EVP_RAND-JITTER.pod" + ], "doc/html/man7/EVP_RAND-SEED-SRC.html" => [ "doc/man7/EVP_RAND-SEED-SRC.pod" ], @@ -4175,9 +4780,15 @@ our %unified_info = ( "doc/html/man7/EVP_SIGNATURE-HMAC.html" => [ "doc/man7/EVP_SIGNATURE-HMAC.pod" ], + "doc/html/man7/EVP_SIGNATURE-ML-DSA.html" => [ + "doc/man7/EVP_SIGNATURE-ML-DSA.pod" + ], "doc/html/man7/EVP_SIGNATURE-RSA.html" => [ "doc/man7/EVP_SIGNATURE-RSA.pod" ], + "doc/html/man7/EVP_SIGNATURE-SLH-DSA.html" => [ + "doc/man7/EVP_SIGNATURE-SLH-DSA.pod" + ], "doc/html/man7/OSSL_PROVIDER-FIPS.html" => [ "doc/man7/OSSL_PROVIDER-FIPS.pod" ], @@ -4193,6 +4804,9 @@ our %unified_info = ( "doc/html/man7/OSSL_PROVIDER-null.html" => [ "doc/man7/OSSL_PROVIDER-null.pod" ], + "doc/html/man7/OSSL_STORE-winstore.html" => [ + "doc/man7/OSSL_STORE-winstore.pod" + ], "doc/html/man7/RAND.html" => [ "doc/man7/RAND.pod" ], @@ -4205,9 +4819,6 @@ our %unified_info = ( "doc/html/man7/bio.html" => [ "doc/man7/bio.pod" ], - "doc/html/man7/crypto.html" => [ - "doc/man7/crypto.pod" - ], "doc/html/man7/ct.html" => [ "doc/man7/ct.pod" ], @@ -4238,9 +4849,6 @@ our %unified_info = ( "doc/html/man7/life_cycle-rand.html" => [ "doc/man7/life_cycle-rand.pod" ], - "doc/html/man7/migration_guide.html" => [ - "doc/man7/migration_guide.pod" - ], "doc/html/man7/openssl-core.h.html" => [ "doc/man7/openssl-core.h.pod" ], @@ -4256,12 +4864,66 @@ our %unified_info = ( "doc/html/man7/openssl-glossary.html" => [ "doc/man7/openssl-glossary.pod" ], + "doc/html/man7/openssl-qlog.html" => [ + "doc/man7/openssl-qlog.pod" + ], + "doc/html/man7/openssl-quic-concurrency.html" => [ + "doc/man7/openssl-quic-concurrency.pod" + ], + "doc/html/man7/openssl-quic.html" => [ + "doc/man7/openssl-quic.pod" + ], "doc/html/man7/openssl-threads.html" => [ "doc/man7/openssl-threads.pod" ], "doc/html/man7/openssl_user_macros.html" => [ "doc/man7/openssl_user_macros.pod" ], + "doc/html/man7/ossl-guide-introduction.html" => [ + "doc/man7/ossl-guide-introduction.pod" + ], + "doc/html/man7/ossl-guide-libcrypto-introduction.html" => [ + "doc/man7/ossl-guide-libcrypto-introduction.pod" + ], + "doc/html/man7/ossl-guide-libraries-introduction.html" => [ + "doc/man7/ossl-guide-libraries-introduction.pod" + ], + "doc/html/man7/ossl-guide-libssl-introduction.html" => [ + "doc/man7/ossl-guide-libssl-introduction.pod" + ], + "doc/html/man7/ossl-guide-migration.html" => [ + "doc/man7/ossl-guide-migration.pod" + ], + "doc/html/man7/ossl-guide-quic-client-block.html" => [ + "doc/man7/ossl-guide-quic-client-block.pod" + ], + "doc/html/man7/ossl-guide-quic-client-non-block.html" => [ + "doc/man7/ossl-guide-quic-client-non-block.pod" + ], + "doc/html/man7/ossl-guide-quic-introduction.html" => [ + "doc/man7/ossl-guide-quic-introduction.pod" + ], + "doc/html/man7/ossl-guide-quic-multi-stream.html" => [ + "doc/man7/ossl-guide-quic-multi-stream.pod" + ], + "doc/html/man7/ossl-guide-quic-server-block.html" => [ + "doc/man7/ossl-guide-quic-server-block.pod" + ], + "doc/html/man7/ossl-guide-quic-server-non-block.html" => [ + "doc/man7/ossl-guide-quic-server-non-block.pod" + ], + "doc/html/man7/ossl-guide-tls-client-block.html" => [ + "doc/man7/ossl-guide-tls-client-block.pod" + ], + "doc/html/man7/ossl-guide-tls-client-non-block.html" => [ + "doc/man7/ossl-guide-tls-client-non-block.pod" + ], + "doc/html/man7/ossl-guide-tls-introduction.html" => [ + "doc/man7/ossl-guide-tls-introduction.pod" + ], + "doc/html/man7/ossl-guide-tls-server-block.html" => [ + "doc/man7/ossl-guide-tls-server-block.pod" + ], "doc/html/man7/ossl_store-file.html" => [ "doc/man7/ossl_store-file.pod" ], @@ -4316,6 +4978,9 @@ our %unified_info = ( "doc/html/man7/provider-signature.html" => [ "doc/man7/provider-signature.pod" ], + "doc/html/man7/provider-skeymgmt.html" => [ + "doc/man7/provider-skeymgmt.pod" + ], "doc/html/man7/provider-storemgmt.html" => [ "doc/man7/provider-storemgmt.pod" ], @@ -4325,9 +4990,6 @@ our %unified_info = ( "doc/html/man7/proxy-certificates.html" => [ "doc/man7/proxy-certificates.pod" ], - "doc/html/man7/ssl.html" => [ - "doc/man7/ssl.pod" - ], "doc/html/man7/x509.html" => [ "doc/man7/x509.pod" ], @@ -4475,6 +5137,9 @@ our %unified_info = ( "doc/man/man1/openssl-sess_id.1" => [ "doc/man1/openssl-sess_id.pod" ], + "doc/man/man1/openssl-skeyutl.1" => [ + "doc/man1/openssl-skeyutl.pod" + ], "doc/man/man1/openssl-smime.1" => [ "doc/man1/openssl-smime.pod" ], @@ -4616,6 +5281,9 @@ our %unified_info = ( "doc/man/man3/BIO_get_ex_new_index.3" => [ "doc/man3/BIO_get_ex_new_index.pod" ], + "doc/man/man3/BIO_get_rpoll_descriptor.3" => [ + "doc/man3/BIO_get_rpoll_descriptor.pod" + ], "doc/man/man3/BIO_meth_new.3" => [ "doc/man3/BIO_meth_new.pod" ], @@ -4652,6 +5320,9 @@ our %unified_info = ( "doc/man/man3/BIO_s_datagram.3" => [ "doc/man3/BIO_s_datagram.pod" ], + "doc/man/man3/BIO_s_dgram_pair.3" => [ + "doc/man3/BIO_s_dgram_pair.pod" + ], "doc/man/man3/BIO_s_fd.3" => [ "doc/man3/BIO_s_fd.pod" ], @@ -4667,6 +5338,9 @@ our %unified_info = ( "doc/man/man3/BIO_s_socket.3" => [ "doc/man3/BIO_s_socket.pod" ], + "doc/man/man3/BIO_sendmmsg.3" => [ + "doc/man3/BIO_sendmmsg.pod" + ], "doc/man/man3/BIO_set_callback.3" => [ "doc/man3/BIO_set_callback.pod" ], @@ -4739,6 +5413,9 @@ our %unified_info = ( "doc/man/man3/BUF_MEM_new.3" => [ "doc/man3/BUF_MEM_new.pod" ], + "doc/man/man3/CMAC_CTX.3" => [ + "doc/man3/CMAC_CTX.pod" + ], "doc/man/man3/CMS_EncryptedData_decrypt.3" => [ "doc/man3/CMS_EncryptedData_decrypt.pod" ], @@ -4805,6 +5482,9 @@ our %unified_info = ( "doc/man/man3/CMS_verify_receipt.3" => [ "doc/man3/CMS_verify_receipt.pod" ], + "doc/man/man3/COMP_CTX_new.3" => [ + "doc/man3/COMP_CTX_new.pod" + ], "doc/man/man3/CONF_modules_free.3" => [ "doc/man3/CONF_modules_free.pod" ], @@ -4904,6 +5584,12 @@ our %unified_info = ( "doc/man/man3/DTLS_set_timer_cb.3" => [ "doc/man3/DTLS_set_timer_cb.pod" ], + "doc/man/man3/DTLSv1_get_timeout.3" => [ + "doc/man3/DTLSv1_get_timeout.pod" + ], + "doc/man/man3/DTLSv1_handle_timeout.3" => [ + "doc/man3/DTLSv1_handle_timeout.pod" + ], "doc/man/man3/DTLSv1_listen.3" => [ "doc/man3/DTLSv1_listen.pod" ], @@ -5042,6 +5728,9 @@ our %unified_info = ( "doc/man/man3/EVP_PKEY_CTX_get0_pkey.3" => [ "doc/man3/EVP_PKEY_CTX_get0_pkey.pod" ], + "doc/man/man3/EVP_PKEY_CTX_get_algor.3" => [ + "doc/man3/EVP_PKEY_CTX_get_algor.pod" + ], "doc/man/man3/EVP_PKEY_CTX_new.3" => [ "doc/man3/EVP_PKEY_CTX_new.pod" ], @@ -5159,6 +5848,12 @@ our %unified_info = ( "doc/man/man3/EVP_SIGNATURE.3" => [ "doc/man3/EVP_SIGNATURE.pod" ], + "doc/man/man3/EVP_SKEY.3" => [ + "doc/man3/EVP_SKEY.pod" + ], + "doc/man/man3/EVP_SKEYMGMT.3" => [ + "doc/man3/EVP_SKEYMGMT.pod" + ], "doc/man/man3/EVP_SealInit.3" => [ "doc/man3/EVP_SealInit.pod" ], @@ -5246,6 +5941,9 @@ our %unified_info = ( "doc/man/man3/EVP_whirlpool.3" => [ "doc/man3/EVP_whirlpool.pod" ], + "doc/man/man3/GENERAL_NAME.3" => [ + "doc/man3/GENERAL_NAME.pod" + ], "doc/man/man3/HMAC.3" => [ "doc/man3/HMAC.pod" ], @@ -5318,9 +6016,15 @@ our %unified_info = ( "doc/man/man3/OPENSSL_load_builtin_modules.3" => [ "doc/man3/OPENSSL_load_builtin_modules.pod" ], + "doc/man/man3/OPENSSL_load_u16_le.3" => [ + "doc/man3/OPENSSL_load_u16_le.pod" + ], "doc/man/man3/OPENSSL_malloc.3" => [ "doc/man3/OPENSSL_malloc.pod" ], + "doc/man/man3/OPENSSL_riscvcap.3" => [ + "doc/man3/OPENSSL_riscvcap.pod" + ], "doc/man/man3/OPENSSL_s390xcap.3" => [ "doc/man3/OPENSSL_s390xcap.pod" ], @@ -5336,12 +6040,18 @@ our %unified_info = ( "doc/man/man3/OSSL_CALLBACK.3" => [ "doc/man3/OSSL_CALLBACK.pod" ], + "doc/man/man3/OSSL_CMP_ATAV_set0.3" => [ + "doc/man3/OSSL_CMP_ATAV_set0.pod" + ], "doc/man/man3/OSSL_CMP_CTX_new.3" => [ "doc/man3/OSSL_CMP_CTX_new.pod" ], "doc/man/man3/OSSL_CMP_HDR_get0_transactionID.3" => [ "doc/man3/OSSL_CMP_HDR_get0_transactionID.pod" ], + "doc/man/man3/OSSL_CMP_ITAV_new_caCerts.3" => [ + "doc/man3/OSSL_CMP_ITAV_new_caCerts.pod" + ], "doc/man/man3/OSSL_CMP_ITAV_set0.3" => [ "doc/man3/OSSL_CMP_ITAV_set0.pod" ], @@ -5411,9 +6121,18 @@ our %unified_info = ( "doc/man/man3/OSSL_ENCODER_to_bio.3" => [ "doc/man3/OSSL_ENCODER_to_bio.pod" ], + "doc/man/man3/OSSL_ERR_STATE_save.3" => [ + "doc/man3/OSSL_ERR_STATE_save.pod" + ], "doc/man/man3/OSSL_ESS_check_signing_certs.3" => [ "doc/man3/OSSL_ESS_check_signing_certs.pod" ], + "doc/man/man3/OSSL_GENERAL_NAMES_print.3" => [ + "doc/man3/OSSL_GENERAL_NAMES_print.pod" + ], + "doc/man/man3/OSSL_HPKE_CTX_new.3" => [ + "doc/man3/OSSL_HPKE_CTX_new.pod" + ], "doc/man/man3/OSSL_HTTP_REQ_CTX.3" => [ "doc/man3/OSSL_HTTP_REQ_CTX.pod" ], @@ -5423,12 +6142,24 @@ our %unified_info = ( "doc/man/man3/OSSL_HTTP_transfer.3" => [ "doc/man3/OSSL_HTTP_transfer.pod" ], + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX.3" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX.pod" + ], + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX_print.3" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX_print.pod" + ], + "doc/man/man3/OSSL_INDICATOR_set_callback.3" => [ + "doc/man3/OSSL_INDICATOR_set_callback.pod" + ], "doc/man/man3/OSSL_ITEM.3" => [ "doc/man3/OSSL_ITEM.pod" ], "doc/man/man3/OSSL_LIB_CTX.3" => [ "doc/man3/OSSL_LIB_CTX.pod" ], + "doc/man/man3/OSSL_LIB_CTX_set_conf_diagnostics.3" => [ + "doc/man3/OSSL_LIB_CTX_set_conf_diagnostics.pod" + ], "doc/man/man3/OSSL_PARAM.3" => [ "doc/man3/OSSL_PARAM.pod" ], @@ -5444,9 +6175,15 @@ our %unified_info = ( "doc/man/man3/OSSL_PARAM_int.3" => [ "doc/man3/OSSL_PARAM_int.pod" ], + "doc/man/man3/OSSL_PARAM_print_to_bio.3" => [ + "doc/man3/OSSL_PARAM_print_to_bio.pod" + ], "doc/man/man3/OSSL_PROVIDER.3" => [ "doc/man3/OSSL_PROVIDER.pod" ], + "doc/man/man3/OSSL_QUIC_client_method.3" => [ + "doc/man3/OSSL_QUIC_client_method.pod" + ], "doc/man/man3/OSSL_SELF_TEST_new.3" => [ "doc/man3/OSSL_SELF_TEST_new.pod" ], @@ -5471,6 +6208,9 @@ our %unified_info = ( "doc/man/man3/OSSL_STORE_open.3" => [ "doc/man3/OSSL_STORE_open.pod" ], + "doc/man/man3/OSSL_sleep.3" => [ + "doc/man3/OSSL_sleep.pod" + ], "doc/man/man3/OSSL_trace_enabled.3" => [ "doc/man3/OSSL_trace_enabled.pod" ], @@ -5486,6 +6226,9 @@ our %unified_info = ( "doc/man/man3/OpenSSL_version.3" => [ "doc/man3/OpenSSL_version.pod" ], + "doc/man/man3/PBMAC1_get1_pbkdf2_param.3" => [ + "doc/man3/PBMAC1_get1_pbkdf2_param.pod" + ], "doc/man/man3/PEM_X509_INFO_read_bio_ex.3" => [ "doc/man3/PEM_X509_INFO_read_bio_ex.pod" ], @@ -5522,6 +6265,9 @@ our %unified_info = ( "doc/man/man3/PKCS12_SAFEBAG_get1_cert.3" => [ "doc/man3/PKCS12_SAFEBAG_get1_cert.pod" ], + "doc/man/man3/PKCS12_SAFEBAG_set0_attrs.3" => [ + "doc/man3/PKCS12_SAFEBAG_set0_attrs.pod" + ], "doc/man/man3/PKCS12_add1_attr_by_NID.3" => [ "doc/man3/PKCS12_add1_attr_by_NID.pod" ], @@ -5795,6 +6541,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set0_CA_list.3" => [ "doc/man3/SSL_CTX_set0_CA_list.pod" ], + "doc/man/man3/SSL_CTX_set1_cert_comp_preference.3" => [ + "doc/man3/SSL_CTX_set1_cert_comp_preference.pod" + ], "doc/man/man3/SSL_CTX_set1_curves.3" => [ "doc/man3/SSL_CTX_set1_curves.pod" ], @@ -5834,6 +6583,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_default_passwd_cb.3" => [ "doc/man3/SSL_CTX_set_default_passwd_cb.pod" ], + "doc/man/man3/SSL_CTX_set_domain_flags.3" => [ + "doc/man3/SSL_CTX_set_domain_flags.pod" + ], "doc/man/man3/SSL_CTX_set_generate_session_id.3" => [ "doc/man3/SSL_CTX_set_generate_session_id.pod" ], @@ -5855,6 +6607,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_msg_callback.3" => [ "doc/man3/SSL_CTX_set_msg_callback.pod" ], + "doc/man/man3/SSL_CTX_set_new_pending_conn_cb.3" => [ + "doc/man3/SSL_CTX_set_new_pending_conn_cb.pod" + ], "doc/man/man3/SSL_CTX_set_num_tickets.3" => [ "doc/man3/SSL_CTX_set_num_tickets.pod" ], @@ -5969,6 +6724,9 @@ our %unified_info = ( "doc/man/man3/SSL_accept.3" => [ "doc/man3/SSL_accept.pod" ], + "doc/man/man3/SSL_accept_stream.3" => [ + "doc/man3/SSL_accept_stream.pod" + ], "doc/man/man3/SSL_alert_type_string.3" => [ "doc/man3/SSL_alert_type_string.pod" ], @@ -5996,9 +6754,21 @@ our %unified_info = ( "doc/man/man3/SSL_free.3" => [ "doc/man3/SSL_free.pod" ], + "doc/man/man3/SSL_get0_connection.3" => [ + "doc/man3/SSL_get0_connection.pod" + ], + "doc/man/man3/SSL_get0_group_name.3" => [ + "doc/man3/SSL_get0_group_name.pod" + ], + "doc/man/man3/SSL_get0_peer_rpk.3" => [ + "doc/man3/SSL_get0_peer_rpk.pod" + ], "doc/man/man3/SSL_get0_peer_scts.3" => [ "doc/man3/SSL_get0_peer_scts.pod" ], + "doc/man/man3/SSL_get1_builtin_sigalgs.3" => [ + "doc/man3/SSL_get1_builtin_sigalgs.pod" + ], "doc/man/man3/SSL_get_SSL_CTX.3" => [ "doc/man3/SSL_get_SSL_CTX.pod" ], @@ -6014,6 +6784,9 @@ our %unified_info = ( "doc/man/man3/SSL_get_client_random.3" => [ "doc/man3/SSL_get_client_random.pod" ], + "doc/man/man3/SSL_get_conn_close_info.3" => [ + "doc/man3/SSL_get_conn_close_info.pod" + ], "doc/man/man3/SSL_get_current_cipher.3" => [ "doc/man3/SSL_get_current_cipher.pod" ], @@ -6023,12 +6796,18 @@ our %unified_info = ( "doc/man/man3/SSL_get_error.3" => [ "doc/man3/SSL_get_error.pod" ], + "doc/man/man3/SSL_get_event_timeout.3" => [ + "doc/man3/SSL_get_event_timeout.pod" + ], "doc/man/man3/SSL_get_extms_support.3" => [ "doc/man3/SSL_get_extms_support.pod" ], "doc/man/man3/SSL_get_fd.3" => [ "doc/man3/SSL_get_fd.pod" ], + "doc/man/man3/SSL_get_handshake_rtt.3" => [ + "doc/man3/SSL_get_handshake_rtt.pod" + ], "doc/man/man3/SSL_get_peer_cert_chain.3" => [ "doc/man3/SSL_get_peer_cert_chain.pod" ], @@ -6047,12 +6826,24 @@ our %unified_info = ( "doc/man/man3/SSL_get_rbio.3" => [ "doc/man3/SSL_get_rbio.pod" ], + "doc/man/man3/SSL_get_rpoll_descriptor.3" => [ + "doc/man3/SSL_get_rpoll_descriptor.pod" + ], "doc/man/man3/SSL_get_session.3" => [ "doc/man3/SSL_get_session.pod" ], "doc/man/man3/SSL_get_shared_sigalgs.3" => [ "doc/man3/SSL_get_shared_sigalgs.pod" ], + "doc/man/man3/SSL_get_stream_id.3" => [ + "doc/man3/SSL_get_stream_id.pod" + ], + "doc/man/man3/SSL_get_stream_read_state.3" => [ + "doc/man3/SSL_get_stream_read_state.pod" + ], + "doc/man/man3/SSL_get_value_uint.3" => [ + "doc/man3/SSL_get_value_uint.pod" + ], "doc/man/man3/SSL_get_verify_result.3" => [ "doc/man3/SSL_get_verify_result.pod" ], @@ -6062,9 +6853,15 @@ our %unified_info = ( "doc/man/man3/SSL_group_to_name.3" => [ "doc/man3/SSL_group_to_name.pod" ], + "doc/man/man3/SSL_handle_events.3" => [ + "doc/man3/SSL_handle_events.pod" + ], "doc/man/man3/SSL_in_init.3" => [ "doc/man3/SSL_in_init.pod" ], + "doc/man/man3/SSL_inject_net_dgram.3" => [ + "doc/man3/SSL_inject_net_dgram.pod" + ], "doc/man/man3/SSL_key_update.3" => [ "doc/man3/SSL_key_update.pod" ], @@ -6077,9 +6874,21 @@ our %unified_info = ( "doc/man/man3/SSL_new.3" => [ "doc/man3/SSL_new.pod" ], + "doc/man/man3/SSL_new_domain.3" => [ + "doc/man3/SSL_new_domain.pod" + ], + "doc/man/man3/SSL_new_listener.3" => [ + "doc/man3/SSL_new_listener.pod" + ], + "doc/man/man3/SSL_new_stream.3" => [ + "doc/man3/SSL_new_stream.pod" + ], "doc/man/man3/SSL_pending.3" => [ "doc/man3/SSL_pending.pod" ], + "doc/man/man3/SSL_poll.3" => [ + "doc/man3/SSL_poll.pod" + ], "doc/man/man3/SSL_read.3" => [ "doc/man3/SSL_read.pod" ], @@ -6095,24 +6904,45 @@ our %unified_info = ( "doc/man/man3/SSL_set1_host.3" => [ "doc/man3/SSL_set1_host.pod" ], + "doc/man/man3/SSL_set1_initial_peer_addr.3" => [ + "doc/man3/SSL_set1_initial_peer_addr.pod" + ], + "doc/man/man3/SSL_set1_server_cert_type.3" => [ + "doc/man3/SSL_set1_server_cert_type.pod" + ], "doc/man/man3/SSL_set_async_callback.3" => [ "doc/man3/SSL_set_async_callback.pod" ], "doc/man/man3/SSL_set_bio.3" => [ "doc/man3/SSL_set_bio.pod" ], + "doc/man/man3/SSL_set_blocking_mode.3" => [ + "doc/man3/SSL_set_blocking_mode.pod" + ], "doc/man/man3/SSL_set_connect_state.3" => [ "doc/man3/SSL_set_connect_state.pod" ], + "doc/man/man3/SSL_set_default_stream_mode.3" => [ + "doc/man3/SSL_set_default_stream_mode.pod" + ], "doc/man/man3/SSL_set_fd.3" => [ "doc/man3/SSL_set_fd.pod" ], + "doc/man/man3/SSL_set_incoming_stream_policy.3" => [ + "doc/man3/SSL_set_incoming_stream_policy.pod" + ], + "doc/man/man3/SSL_set_quic_tls_cbs.3" => [ + "doc/man3/SSL_set_quic_tls_cbs.pod" + ], "doc/man/man3/SSL_set_retry_verify.3" => [ "doc/man3/SSL_set_retry_verify.pod" ], "doc/man/man3/SSL_set_session.3" => [ "doc/man3/SSL_set_session.pod" ], + "doc/man/man3/SSL_set_session_secret_cb.3" => [ + "doc/man3/SSL_set_session_secret_cb.pod" + ], "doc/man/man3/SSL_set_shutdown.3" => [ "doc/man3/SSL_set_shutdown.pod" ], @@ -6125,6 +6955,12 @@ our %unified_info = ( "doc/man/man3/SSL_state_string.3" => [ "doc/man3/SSL_state_string.pod" ], + "doc/man/man3/SSL_stream_conclude.3" => [ + "doc/man3/SSL_stream_conclude.pod" + ], + "doc/man/man3/SSL_stream_reset.3" => [ + "doc/man3/SSL_stream_reset.pod" + ], "doc/man/man3/SSL_want.3" => [ "doc/man3/SSL_want.pod" ], @@ -6134,8 +6970,8 @@ our %unified_info = ( "doc/man/man3/TS_RESP_CTX_new.3" => [ "doc/man3/TS_RESP_CTX_new.pod" ], - "doc/man/man3/TS_VERIFY_CTX_set_certs.3" => [ - "doc/man3/TS_VERIFY_CTX_set_certs.pod" + "doc/man/man3/TS_VERIFY_CTX.3" => [ + "doc/man3/TS_VERIFY_CTX.pod" ], "doc/man/man3/UI_STRING.3" => [ "doc/man3/UI_STRING.pod" @@ -6155,6 +6991,21 @@ our %unified_info = ( "doc/man/man3/X509V3_set_ctx.3" => [ "doc/man3/X509V3_set_ctx.pod" ], + "doc/man/man3/X509_ACERT_add1_attr.3" => [ + "doc/man3/X509_ACERT_add1_attr.pod" + ], + "doc/man/man3/X509_ACERT_add_attr_nconf.3" => [ + "doc/man3/X509_ACERT_add_attr_nconf.pod" + ], + "doc/man/man3/X509_ACERT_get0_holder_baseCertId.3" => [ + "doc/man3/X509_ACERT_get0_holder_baseCertId.pod" + ], + "doc/man/man3/X509_ACERT_get_attr.3" => [ + "doc/man3/X509_ACERT_get_attr.pod" + ], + "doc/man/man3/X509_ACERT_print_ex.3" => [ + "doc/man3/X509_ACERT_print_ex.pod" + ], "doc/man/man3/X509_ALGOR_dup.3" => [ "doc/man3/X509_ALGOR_dup.pod" ], @@ -6203,6 +7054,9 @@ our %unified_info = ( "doc/man/man3/X509_SIG_get0.3" => [ "doc/man3/X509_SIG_get0.pod" ], + "doc/man/man3/X509_STORE_CTX_get_by_subject.3" => [ + "doc/man3/X509_STORE_CTX_get_by_subject.pod" + ], "doc/man/man3/X509_STORE_CTX_get_error.3" => [ "doc/man3/X509_STORE_CTX_get_error.pod" ], @@ -6269,6 +7123,9 @@ our %unified_info = ( "doc/man/man3/X509_get0_uids.3" => [ "doc/man3/X509_get0_uids.pod" ], + "doc/man/man3/X509_get_default_cert_file.3" => [ + "doc/man3/X509_get_default_cert_file.pod" + ], "doc/man/man3/X509_get_extension_flags.3" => [ "doc/man3/X509_get_extension_flags.pod" ], @@ -6392,9 +7249,15 @@ our %unified_info = ( "doc/man/man7/EVP_CIPHER-SM4.7" => [ "doc/man7/EVP_CIPHER-SM4.pod" ], + "doc/man/man7/EVP_KDF-ARGON2.7" => [ + "doc/man7/EVP_KDF-ARGON2.pod" + ], "doc/man/man7/EVP_KDF-HKDF.7" => [ "doc/man7/EVP_KDF-HKDF.pod" ], + "doc/man/man7/EVP_KDF-HMAC-DRBG.7" => [ + "doc/man7/EVP_KDF-HMAC-DRBG.pod" + ], "doc/man/man7/EVP_KDF-KB.7" => [ "doc/man7/EVP_KDF-KB.pod" ], @@ -6410,6 +7273,9 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-PKCS12KDF.7" => [ "doc/man7/EVP_KDF-PKCS12KDF.pod" ], + "doc/man/man7/EVP_KDF-PVKKDF.7" => [ + "doc/man7/EVP_KDF-PVKKDF.pod" + ], "doc/man/man7/EVP_KDF-SCRYPT.7" => [ "doc/man7/EVP_KDF-SCRYPT.pod" ], @@ -6434,9 +7300,18 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-X963.7" => [ "doc/man7/EVP_KDF-X963.pod" ], + "doc/man/man7/EVP_KEM-EC.7" => [ + "doc/man7/EVP_KEM-EC.pod" + ], + "doc/man/man7/EVP_KEM-ML-KEM.7" => [ + "doc/man7/EVP_KEM-ML-KEM.pod" + ], "doc/man/man7/EVP_KEM-RSA.7" => [ "doc/man7/EVP_KEM-RSA.pod" ], + "doc/man/man7/EVP_KEM-X25519.7" => [ + "doc/man7/EVP_KEM-X25519.pod" + ], "doc/man/man7/EVP_KEYEXCH-DH.7" => [ "doc/man7/EVP_KEYEXCH-DH.pod" ], @@ -6470,6 +7345,9 @@ our %unified_info = ( "doc/man/man7/EVP_MD-BLAKE2.7" => [ "doc/man7/EVP_MD-BLAKE2.pod" ], + "doc/man/man7/EVP_MD-KECCAK.7" => [ + "doc/man7/EVP_MD-KECCAK.pod" + ], "doc/man/man7/EVP_MD-MD2.7" => [ "doc/man7/EVP_MD-MD2.pod" ], @@ -6527,15 +7405,27 @@ our %unified_info = ( "doc/man/man7/EVP_PKEY-HMAC.7" => [ "doc/man7/EVP_PKEY-HMAC.pod" ], + "doc/man/man7/EVP_PKEY-ML-DSA.7" => [ + "doc/man7/EVP_PKEY-ML-DSA.pod" + ], + "doc/man/man7/EVP_PKEY-ML-KEM.7" => [ + "doc/man7/EVP_PKEY-ML-KEM.pod" + ], "doc/man/man7/EVP_PKEY-RSA.7" => [ "doc/man7/EVP_PKEY-RSA.pod" ], + "doc/man/man7/EVP_PKEY-SLH-DSA.7" => [ + "doc/man7/EVP_PKEY-SLH-DSA.pod" + ], "doc/man/man7/EVP_PKEY-SM2.7" => [ "doc/man7/EVP_PKEY-SM2.pod" ], "doc/man/man7/EVP_PKEY-X25519.7" => [ "doc/man7/EVP_PKEY-X25519.pod" ], + "doc/man/man7/EVP_RAND-CRNG-TEST.7" => [ + "doc/man7/EVP_RAND-CRNG-TEST.pod" + ], "doc/man/man7/EVP_RAND-CTR-DRBG.7" => [ "doc/man7/EVP_RAND-CTR-DRBG.pod" ], @@ -6545,6 +7435,9 @@ our %unified_info = ( "doc/man/man7/EVP_RAND-HMAC-DRBG.7" => [ "doc/man7/EVP_RAND-HMAC-DRBG.pod" ], + "doc/man/man7/EVP_RAND-JITTER.7" => [ + "doc/man7/EVP_RAND-JITTER.pod" + ], "doc/man/man7/EVP_RAND-SEED-SRC.7" => [ "doc/man7/EVP_RAND-SEED-SRC.pod" ], @@ -6566,9 +7459,15 @@ our %unified_info = ( "doc/man/man7/EVP_SIGNATURE-HMAC.7" => [ "doc/man7/EVP_SIGNATURE-HMAC.pod" ], + "doc/man/man7/EVP_SIGNATURE-ML-DSA.7" => [ + "doc/man7/EVP_SIGNATURE-ML-DSA.pod" + ], "doc/man/man7/EVP_SIGNATURE-RSA.7" => [ "doc/man7/EVP_SIGNATURE-RSA.pod" ], + "doc/man/man7/EVP_SIGNATURE-SLH-DSA.7" => [ + "doc/man7/EVP_SIGNATURE-SLH-DSA.pod" + ], "doc/man/man7/OSSL_PROVIDER-FIPS.7" => [ "doc/man7/OSSL_PROVIDER-FIPS.pod" ], @@ -6584,6 +7483,9 @@ our %unified_info = ( "doc/man/man7/OSSL_PROVIDER-null.7" => [ "doc/man7/OSSL_PROVIDER-null.pod" ], + "doc/man/man7/OSSL_STORE-winstore.7" => [ + "doc/man7/OSSL_STORE-winstore.pod" + ], "doc/man/man7/RAND.7" => [ "doc/man7/RAND.pod" ], @@ -6596,9 +7498,6 @@ our %unified_info = ( "doc/man/man7/bio.7" => [ "doc/man7/bio.pod" ], - "doc/man/man7/crypto.7" => [ - "doc/man7/crypto.pod" - ], "doc/man/man7/ct.7" => [ "doc/man7/ct.pod" ], @@ -6629,9 +7528,6 @@ our %unified_info = ( "doc/man/man7/life_cycle-rand.7" => [ "doc/man7/life_cycle-rand.pod" ], - "doc/man/man7/migration_guide.7" => [ - "doc/man7/migration_guide.pod" - ], "doc/man/man7/openssl-core.h.7" => [ "doc/man7/openssl-core.h.pod" ], @@ -6647,12 +7543,66 @@ our %unified_info = ( "doc/man/man7/openssl-glossary.7" => [ "doc/man7/openssl-glossary.pod" ], + "doc/man/man7/openssl-qlog.7" => [ + "doc/man7/openssl-qlog.pod" + ], + "doc/man/man7/openssl-quic-concurrency.7" => [ + "doc/man7/openssl-quic-concurrency.pod" + ], + "doc/man/man7/openssl-quic.7" => [ + "doc/man7/openssl-quic.pod" + ], "doc/man/man7/openssl-threads.7" => [ "doc/man7/openssl-threads.pod" ], "doc/man/man7/openssl_user_macros.7" => [ "doc/man7/openssl_user_macros.pod" ], + "doc/man/man7/ossl-guide-introduction.7" => [ + "doc/man7/ossl-guide-introduction.pod" + ], + "doc/man/man7/ossl-guide-libcrypto-introduction.7" => [ + "doc/man7/ossl-guide-libcrypto-introduction.pod" + ], + "doc/man/man7/ossl-guide-libraries-introduction.7" => [ + "doc/man7/ossl-guide-libraries-introduction.pod" + ], + "doc/man/man7/ossl-guide-libssl-introduction.7" => [ + "doc/man7/ossl-guide-libssl-introduction.pod" + ], + "doc/man/man7/ossl-guide-migration.7" => [ + "doc/man7/ossl-guide-migration.pod" + ], + "doc/man/man7/ossl-guide-quic-client-block.7" => [ + "doc/man7/ossl-guide-quic-client-block.pod" + ], + "doc/man/man7/ossl-guide-quic-client-non-block.7" => [ + "doc/man7/ossl-guide-quic-client-non-block.pod" + ], + "doc/man/man7/ossl-guide-quic-introduction.7" => [ + "doc/man7/ossl-guide-quic-introduction.pod" + ], + "doc/man/man7/ossl-guide-quic-multi-stream.7" => [ + "doc/man7/ossl-guide-quic-multi-stream.pod" + ], + "doc/man/man7/ossl-guide-quic-server-block.7" => [ + "doc/man7/ossl-guide-quic-server-block.pod" + ], + "doc/man/man7/ossl-guide-quic-server-non-block.7" => [ + "doc/man7/ossl-guide-quic-server-non-block.pod" + ], + "doc/man/man7/ossl-guide-tls-client-block.7" => [ + "doc/man7/ossl-guide-tls-client-block.pod" + ], + "doc/man/man7/ossl-guide-tls-client-non-block.7" => [ + "doc/man7/ossl-guide-tls-client-non-block.pod" + ], + "doc/man/man7/ossl-guide-tls-introduction.7" => [ + "doc/man7/ossl-guide-tls-introduction.pod" + ], + "doc/man/man7/ossl-guide-tls-server-block.7" => [ + "doc/man7/ossl-guide-tls-server-block.pod" + ], "doc/man/man7/ossl_store-file.7" => [ "doc/man7/ossl_store-file.pod" ], @@ -6707,6 +7657,9 @@ our %unified_info = ( "doc/man/man7/provider-signature.7" => [ "doc/man7/provider-signature.pod" ], + "doc/man/man7/provider-skeymgmt.7" => [ + "doc/man7/provider-skeymgmt.pod" + ], "doc/man/man7/provider-storemgmt.7" => [ "doc/man7/provider-storemgmt.pod" ], @@ -6716,9 +7669,6 @@ our %unified_info = ( "doc/man/man7/proxy-certificates.7" => [ "doc/man7/proxy-certificates.pod" ], - "doc/man/man7/ssl.7" => [ - "doc/man7/ssl.pod" - ], "doc/man/man7/x509.7" => [ "doc/man7/x509.pod" ], @@ -6898,6 +7848,10 @@ our %unified_info = ( "doc/man1/openssl-sess_id.pod.in", "doc/perlvars.pm" ], + "doc/man1/openssl-skeyutl.pod" => [ + "doc/man1/openssl-skeyutl.pod.in", + "doc/perlvars.pm" + ], "doc/man1/openssl-smime.pod" => [ "doc/man1/openssl-smime.pod.in", "doc/perlvars.pm" @@ -6937,6 +7891,27 @@ our %unified_info = ( "doc/man7/openssl_user_macros.pod" => [ "doc/man7/openssl_user_macros.pod.in" ], + "exporters/OpenSSLConfig.cmake" => [ + "installdata.pm" + ], + "exporters/OpenSSLConfigVersion.cmake" => [ + "exporters/OpenSSLConfig.cmake", + "installdata.pm" + ], + "exporters/libcrypto.pc" => [ + "installdata.pm" + ], + "exporters/libssl.pc" => [ + "installdata.pm" + ], + "exporters/openssl.pc" => [ + "exporters/libcrypto.pc", + "exporters/libssl.pc", + "installdata.pm" + ], + "fuzz/acert-test" => [ + "libcrypto" + ], "fuzz/asn1-test" => [ "libcrypto", "libssl" @@ -6969,17 +7944,85 @@ our %unified_info = ( "fuzz/ct-test" => [ "libcrypto" ], + "fuzz/decoder-test" => [ + "libcrypto" + ], + "fuzz/dtlsclient-test" => [ + "libcrypto", + "libssl" + ], + "fuzz/dtlsserver-test" => [ + "libcrypto", + "libssl" + ], + "fuzz/hashtable-test" => [ + "libcrypto.a" + ], + "fuzz/ml-dsa-test" => [ + "libcrypto.a" + ], + "fuzz/ml-kem-test" => [ + "libcrypto.a" + ], + "fuzz/pem-test" => [ + "libcrypto.a" + ], + "fuzz/provider-test" => [ + "libcrypto" + ], + "fuzz/punycode-test" => [ + "libcrypto.a" + ], + "fuzz/quic-client-test" => [ + "libcrypto.a", + "libssl.a" + ], + "fuzz/quic-lcidm-test" => [ + "libcrypto.a", + "libssl.a" + ], + "fuzz/quic-rcidm-test" => [ + "libcrypto.a", + "libssl.a" + ], + "fuzz/quic-server-test" => [ + "libcrypto.a", + "libssl.a" + ], + "fuzz/quic-srtm-test" => [ + "libcrypto.a", + "libssl.a" + ], "fuzz/server-test" => [ "libcrypto", "libssl" ], + "fuzz/slh-dsa-test" => [ + "libcrypto.a" + ], + "fuzz/smime-test" => [ + "libcrypto", + "libssl" + ], + "fuzz/v3name-test" => [ + "libcrypto.a" + ], "fuzz/x509-test" => [ "libcrypto" ], + "include/internal/param_names.h" => [ + "util/perl|OpenSSL/paramnames.pm" + ], + "include/openssl/core_names.h" => [ + "util/perl|OpenSSL/paramnames.pm" + ], "libcrypto.ld" => [ "configdata.pm", "util/perl/OpenSSL/Ordinals.pm" ], + "libcrypto.pc" => [ + "builddata.pm" + ], "libssl" => [ "libcrypto" ], @@ -6987,6 +8030,14 @@ our %unified_info = ( "configdata.pm", "util/perl/OpenSSL/Ordinals.pm" ], + "libssl.pc" => [ + "builddata.pm" + ], + "openssl.pc" => [ + "builddata.pm", + "libcrypto.pc", + "libssl.pc" + ], "providers/common/der/der_digests_gen.c" => [ "providers/common/der/DIGESTS.asn1", "providers/common/der/NIST.asn1", @@ -7004,11 +8055,19 @@ our %unified_info = ( "providers/common/der/ECX.asn1", "providers/common/der/oids_to_c.pm" ], + "providers/common/der/der_ml_dsa_gen.c" => [ + "providers/common/der/ML_DSA.asn1", + "providers/common/der/oids_to_c.pm" + ], "providers/common/der/der_rsa_gen.c" => [ "providers/common/der/NIST.asn1", "providers/common/der/RSA.asn1", "providers/common/der/oids_to_c.pm" ], + "providers/common/der/der_slh_dsa_gen.c" => [ + "providers/common/der/SLH_DSA.asn1", + "providers/common/der/oids_to_c.pm" + ], "providers/common/der/der_sm2_gen.c" => [ "providers/common/der/SM2.asn1", "providers/common/der/oids_to_c.pm" @@ -7048,6 +8107,12 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ecx_key.o" => [ "providers/common/include/prov/der_ecx.h" ], + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o" => [ + "providers/common/include/prov/der_ml_dsa.h" + ], + "providers/common/der/libcommon-lib-der_ml_dsa_key.o" => [ + "providers/common/include/prov/der_ml_dsa.h" + ], "providers/common/der/libcommon-lib-der_rsa_gen.o" => [ "providers/common/include/prov/der_rsa.h" ], @@ -7055,6 +8120,12 @@ our %unified_info = ( "providers/common/include/prov/der_digests.h", "providers/common/include/prov/der_rsa.h" ], + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o" => [ + "providers/common/include/prov/der_slh_dsa.h" + ], + "providers/common/der/libcommon-lib-der_slh_dsa_key.o" => [ + "providers/common/include/prov/der_slh_dsa.h" + ], "providers/common/der/libcommon-lib-der_wrap_gen.o" => [ "providers/common/include/prov/der_wrap.h" ], @@ -7094,11 +8165,19 @@ our %unified_info = ( "providers/common/der/ECX.asn1", "providers/common/der/oids_to_c.pm" ], + "providers/common/include/prov/der_ml_dsa.h" => [ + "providers/common/der/ML_DSA.asn1", + "providers/common/der/oids_to_c.pm" + ], "providers/common/include/prov/der_rsa.h" => [ "providers/common/der/NIST.asn1", "providers/common/der/RSA.asn1", "providers/common/der/oids_to_c.pm" ], + "providers/common/include/prov/der_slh_dsa.h" => [ + "providers/common/der/SLH_DSA.asn1", + "providers/common/der/oids_to_c.pm" + ], "providers/common/include/prov/der_sm2.h" => [ "providers/common/der/SM2.asn1", "providers/common/der/oids_to_c.pm" @@ -7131,9 +8210,15 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-eddsa_sig.o" => [ "providers/common/include/prov/der_ecx.h" ], + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o" => [ + "providers/common/include/prov/der_ml_dsa.h" + ], "providers/implementations/signature/libdefault-lib-rsa_sig.o" => [ "providers/common/include/prov/der_rsa.h" ], + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o" => [ + "providers/common/include/prov/der_slh_dsa.h" + ], "providers/implementations/signature/libdefault-lib-sm2_sig.o" => [ "providers/common/include/prov/der_sm2.h" ], @@ -7146,9 +8231,15 @@ our %unified_info = ( "providers/implementations/signature/libfips-lib-eddsa_sig.o" => [ "providers/common/include/prov/der_ecx.h" ], + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o" => [ + "providers/common/include/prov/der_ml_dsa.h" + ], "providers/implementations/signature/libfips-lib-rsa_sig.o" => [ "providers/common/include/prov/der_rsa.h" ], + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o" => [ + "providers/common/include/prov/der_slh_dsa.h" + ], "providers/legacy" => [ "libcrypto", "providers/liblegacy.a" @@ -7226,6 +8317,14 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/bio_addr_test" => [ + "libcrypto", + "test/libtestutil.a" + ], + "test/bio_base64_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/bio_callback_test" => [ "libcrypto", "test/libtestutil.a" @@ -7234,6 +8333,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/bio_dgram_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/bio_enc_test" => [ "libcrypto", "test/libtestutil.a" @@ -7242,6 +8345,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/bio_meth_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/bio_prefix_text" => [ "libcrypto", "test/libtestutil.a" @@ -7254,6 +8361,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/bio_tfo_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/bioprinttest" => [ "libcrypto", "test/libtestutil.a" @@ -7266,6 +8377,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/build_wincrypt_test" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_aes" => [ "libcrypto", "libssl" @@ -7286,6 +8401,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_byteorder" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_camellia" => [ "libcrypto", "libssl" @@ -7318,10 +8437,6 @@ our %unified_info = ( "libcrypto", "libssl" ], - "test/buildtest_c_core_names" => [ - "libcrypto", - "libssl" - ], "test/buildtest_c_core_object" => [ "libcrypto", "libssl" @@ -7354,6 +8469,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_e_ostime" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_ebcdic" => [ "libcrypto", "libssl" @@ -7390,6 +8509,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_hpke" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_http" => [ "libcrypto", "libssl" @@ -7398,6 +8521,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_indicator" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_kdf" => [ "libcrypto", "libssl" @@ -7418,6 +8545,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_ml_kem" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_modes" => [ "libcrypto", "libssl" @@ -7458,6 +8589,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_quic" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_rand" => [ "libcrypto", "libssl" @@ -7514,6 +8649,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_thread" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_tls1" => [ "libcrypto", "libssl" @@ -7534,10 +8673,23 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/byteorder_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], + "test/ca_internals_test" => [ + "libssl", + "test/libtestutil.a" + ], "test/casttest" => [ "libcrypto", "test/libtestutil.a" ], + "test/cert_comp_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], "test/chacha_internal_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -7651,6 +8803,10 @@ our %unified_info = ( "libssl", "test/libtestutil.a" ], + "test/decoder_propq_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/defltfips_test" => [ "libcrypto", "test/libtestutil.a" @@ -7707,6 +8863,8 @@ our %unified_info = ( ], "test/endecode_test" => [ "libcrypto.a", + "providers/libcommon.a", + "providers/liblegacy.a", "test/libtestutil.a" ], "test/endecoder_legacy_test" => [ @@ -7750,6 +8908,10 @@ our %unified_info = ( "test/evp_pkey_ctx_new_from_name" => [ "libcrypto" ], + "test/evp_pkey_dhkem_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/evp_pkey_dparams_test" => [ "libcrypto", "test/libtestutil.a" @@ -7758,10 +8920,18 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/evp_skey_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/evp_test" => [ "libcrypto", "test/libtestutil.a" ], + "test/evp_xof_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/exdatatest" => [ "libcrypto", "test/libtestutil.a" @@ -7800,6 +8970,10 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/hpke_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/http_test" => [ "libcrypto", "test/libtestutil.a" @@ -7812,17 +8986,25 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/json_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], "test/keymgmt_internal_test" => [ "libcrypto.a", "test/libtestutil.a" ], "test/lhash_test" => [ - "libcrypto", + "libcrypto.a", "test/libtestutil.a" ], "test/libtestutil.a" => [ "libcrypto" ], + "test/list_test" => [ + "test/libtestutil.a" + ], "test/localetest" => [ "libcrypto", "test/libtestutil.a" @@ -7835,10 +9017,26 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/membio_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/memleaktest" => [ "libcrypto", "test/libtestutil.a" ], + "test/ml_dsa_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], + "test/ml_kem_evp_extra_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], + "test/ml_kem_internal_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/modes_internal_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -7863,6 +9061,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/pairwise_fail_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/param_build_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -7895,6 +9097,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/pkcs12_api_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/pkcs12_format_test" => [ "libcrypto", "test/libtestutil.a" @@ -7915,6 +9121,11 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/priority_queue_test" => [ + "libcrypto", + "libssl.a", + "test/libtestutil.a" + ], "test/property_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -7927,6 +9138,10 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/provider_default_search_path_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/provider_fallback_test" => [ "libcrypto", "test/libtestutil.a" @@ -7951,12 +9166,122 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/quic_ackm_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_cc_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_cfq_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_client_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_fc_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_fifd_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_lcidm_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_multistream_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_newcid_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_qlog_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_radix_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_rcidm_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_record_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_srt_gen_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_srtm_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_stream_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_tserver_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_txp_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_txpim_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_wire_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quicapitest" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quicfaultstest" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], "test/rand_status_test" => [ "libcrypto", "test/libtestutil.a" ], "test/rand_test" => [ - "libcrypto", + "libcrypto.a", "test/libtestutil.a" ], "test/rc2test" => [ @@ -7971,7 +9296,7 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], - "test/rdrand_sanitytest" => [ + "test/rdcpu_sanitytest" => [ "libcrypto.a", "test/libtestutil.a" ], @@ -7980,6 +9305,11 @@ our %unified_info = ( "libssl", "test/libtestutil.a" ], + "test/rpktest" => [ + "libcrypto", + "libssl", + "test/libtestutil.a" + ], "test/rsa_mp_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -7992,10 +9322,18 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], - "test/sanitytest" => [ + "test/rsa_x931_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], + "test/safe_math_test" => [ "libcrypto", "test/libtestutil.a" ], + "test/sanitytest" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/secmemtest" => [ "libcrypto", "test/libtestutil.a" @@ -8013,6 +9351,10 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/slh_dsa_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/sm2_internal_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -8042,6 +9384,11 @@ our %unified_info = ( "libssl", "test/libtestutil.a" ], + "test/ssl_handshake_rtt_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], "test/ssl_old_test" => [ "libcrypto.a", "libssl.a", @@ -8058,8 +9405,8 @@ our %unified_info = ( "test/libtestutil.a" ], "test/sslapitest" => [ - "libcrypto", - "libssl", + "libcrypto.a", + "libssl.a", "test/libtestutil.a" ], "test/sslbuffertest" => [ @@ -8076,6 +9423,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/strtoultest" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/sysdefaulttest" => [ "libcrypto", "libssl", @@ -8085,8 +9436,12 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/threadpool_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/threadstest" => [ - "libcrypto", + "libcrypto.a", "test/libtestutil.a" ], "test/threadstest_fips" => [ @@ -8097,6 +9452,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/time_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/tls13ccstest" => [ "libcrypto", "libssl", @@ -8107,6 +9466,11 @@ our %unified_info = ( "libssl.a", "test/libtestutil.a" ], + "test/tls13groupselection_test" => [ + "libcrypto", + "libssl", + "test/libtestutil.a" + ], "test/trace_api_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -8144,6 +9508,10 @@ our %unified_info = ( "libssl.a", "test/libtestutil.a" ], + "test/x509_acert_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/x509_check_cert_pkey_test" => [ "libcrypto", "test/libtestutil.a" @@ -8156,6 +9524,18 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/x509_load_cert_file_test" => [ + "libcrypto", + "test/libtestutil.a" + ], + "test/x509_req_test" => [ + "libcrypto", + "test/libtestutil.a" + ], + "test/x509_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/x509_time_test" => [ "libcrypto", "test/libtestutil.a" @@ -8170,9 +9550,13 @@ our %unified_info = ( }, "dirinfo" => { "apps" => { + "deps" => [ + "apps/ca_internals_test-bin-ca.o" + ], "products" => { "bin" => [ - "apps/openssl" + "apps/openssl", + "test/ca_internals_test" ], "script" => [ "apps/CA.pl", @@ -8183,6 +9567,14 @@ our %unified_info = ( "apps/lib" => { "deps" => [ "apps/lib/openssl-bin-cmp_mock_srv.o", + "apps/lib/ca_internals_test-bin-app_libctx.o", + "apps/lib/ca_internals_test-bin-app_provider.o", + "apps/lib/ca_internals_test-bin-app_rand.o", + "apps/lib/ca_internals_test-bin-app_x509.o", + "apps/lib/ca_internals_test-bin-apps.o", + "apps/lib/ca_internals_test-bin-apps_ui.o", + "apps/lib/ca_internals_test-bin-engine.o", + "apps/lib/ca_internals_test-bin-fmt.o", "apps/lib/cmp_client_test-bin-cmp_mock_srv.o", "apps/lib/uitest-bin-apps_ui.o", "apps/lib/libapps-lib-app_libctx.o", @@ -8191,12 +9583,14 @@ our %unified_info = ( "apps/lib/libapps-lib-app_rand.o", "apps/lib/libapps-lib-app_x509.o", "apps/lib/libapps-lib-apps.o", + "apps/lib/libapps-lib-apps_opt_printf.o", "apps/lib/libapps-lib-apps_ui.o", "apps/lib/libapps-lib-columns.o", "apps/lib/libapps-lib-engine.o", "apps/lib/libapps-lib-engine_loader.o", "apps/lib/libapps-lib-fmt.o", "apps/lib/libapps-lib-http_server.o", + "apps/lib/libapps-lib-log.o", "apps/lib/libapps-lib-names.o", "apps/lib/libapps-lib-opt.o", "apps/lib/libapps-lib-s_cb.o", @@ -8207,6 +9601,7 @@ our %unified_info = ( "products" => { "bin" => [ "apps/openssl", + "test/ca_internals_test", "test/cmp_client_test", "test/uitest" ], @@ -8218,10 +9613,14 @@ our %unified_info = ( }, "crypto" => { "deps" => [ + "crypto/asn1_time_test-bin-ctype.o", + "crypto/ca_internals_test-bin-ctype.o", + "crypto/packettest-bin-quic_vlint.o", "crypto/libcrypto-lib-armcap.o", "crypto/libcrypto-lib-armv4cpuid.o", "crypto/libcrypto-lib-asn1_dsa.o", "crypto/libcrypto-lib-bsearch.o", + "crypto/libcrypto-lib-comp_methods.o", "crypto/libcrypto-lib-context.o", "crypto/libcrypto-lib-core_algorithm.o", "crypto/libcrypto-lib-core_fetch.o", @@ -8231,10 +9630,13 @@ our %unified_info = ( "crypto/libcrypto-lib-cryptlib.o", "crypto/libcrypto-lib-ctype.o", "crypto/libcrypto-lib-cversion.o", + "crypto/libcrypto-lib-defaults.o", "crypto/libcrypto-lib-der_writer.o", + "crypto/libcrypto-lib-deterministic_nonce.o", "crypto/libcrypto-lib-ebcdic.o", "crypto/libcrypto-lib-ex_data.o", "crypto/libcrypto-lib-getenv.o", + "crypto/libcrypto-lib-indicator_core.o", "crypto/libcrypto-lib-info.o", "crypto/libcrypto-lib-init.o", "crypto/libcrypto-lib-initthread.o", @@ -8251,6 +9653,7 @@ our %unified_info = ( "crypto/libcrypto-lib-params.o", "crypto/libcrypto-lib-params_dup.o", "crypto/libcrypto-lib-params_from_text.o", + "crypto/libcrypto-lib-params_idx.o", "crypto/libcrypto-lib-passphrase.o", "crypto/libcrypto-lib-provider.o", "crypto/libcrypto-lib-provider_child.o", @@ -8258,12 +9661,16 @@ our %unified_info = ( "crypto/libcrypto-lib-provider_core.o", "crypto/libcrypto-lib-provider_predefined.o", "crypto/libcrypto-lib-punycode.o", + "crypto/libcrypto-lib-quic_vlint.o", "crypto/libcrypto-lib-self_test_core.o", + "crypto/libcrypto-lib-sleep.o", "crypto/libcrypto-lib-sparse_array.o", + "crypto/libcrypto-lib-ssl_err.o", "crypto/libcrypto-lib-threads_lib.o", "crypto/libcrypto-lib-threads_none.o", "crypto/libcrypto-lib-threads_pthread.o", "crypto/libcrypto-lib-threads_win.o", + "crypto/libcrypto-lib-time.o", "crypto/libcrypto-lib-trace.o", "crypto/libcrypto-lib-uid.o", "crypto/libfips-lib-armcap.o", @@ -8287,6 +9694,7 @@ our %unified_info = ( "crypto/libfips-lib-params.o", "crypto/libfips-lib-params_dup.o", "crypto/libfips-lib-params_from_text.o", + "crypto/libfips-lib-params_idx.o", "crypto/libfips-lib-provider_core.o", "crypto/libfips-lib-provider_predefined.o", "crypto/libfips-lib-self_test_core.o", @@ -8294,9 +9702,15 @@ our %unified_info = ( "crypto/libfips-lib-threads_lib.o", "crypto/libfips-lib-threads_none.o", "crypto/libfips-lib-threads_pthread.o", - "crypto/libfips-lib-threads_win.o" + "crypto/libfips-lib-threads_win.o", + "crypto/libfips-lib-time.o" ], "products" => { + "bin" => [ + "test/asn1_time_test", + "test/ca_internals_test", + "test/packettest" + ], "lib" => [ "libcrypto", "providers/libfips.a" @@ -8341,6 +9755,8 @@ our %unified_info = ( }, "crypto/asn1" => { "deps" => [ + "crypto/asn1/asn1_time_test-bin-a_time.o", + "crypto/asn1/ca_internals_test-bin-a_time.o", "crypto/asn1/libcrypto-lib-a_bitstr.o", "crypto/asn1/libcrypto-lib-a_d2i_fp.o", "crypto/asn1/libcrypto-lib-a_digest.o", @@ -8407,6 +9823,10 @@ our %unified_info = ( "crypto/asn1/libcrypto-lib-x_val.o" ], "products" => { + "bin" => [ + "test/asn1_time_test", + "test/ca_internals_test" + ], "lib" => [ "libcrypto" ] @@ -8472,6 +9892,7 @@ our %unified_info = ( "crypto/bio/libcrypto-lib-bss_conn.o", "crypto/bio/libcrypto-lib-bss_core.o", "crypto/bio/libcrypto-lib-bss_dgram.o", + "crypto/bio/libcrypto-lib-bss_dgram_pair.o", "crypto/bio/libcrypto-lib-bss_fd.o", "crypto/bio/libcrypto-lib-bss_file.o", "crypto/bio/libcrypto-lib-bss_log.o", @@ -8632,6 +10053,7 @@ our %unified_info = ( "crypto/cmp/libcrypto-lib-cmp_client.o", "crypto/cmp/libcrypto-lib-cmp_ctx.o", "crypto/cmp/libcrypto-lib-cmp_err.o", + "crypto/cmp/libcrypto-lib-cmp_genm.o", "crypto/cmp/libcrypto-lib-cmp_hdr.o", "crypto/cmp/libcrypto-lib-cmp_http.o", "crypto/cmp/libcrypto-lib-cmp_msg.o", @@ -9003,7 +10425,9 @@ our %unified_info = ( "crypto/err/libcrypto-lib-err_all.o", "crypto/err/libcrypto-lib-err_all_legacy.o", "crypto/err/libcrypto-lib-err_blocks.o", - "crypto/err/libcrypto-lib-err_prn.o" + "crypto/err/libcrypto-lib-err_mark.o", + "crypto/err/libcrypto-lib-err_prn.o", + "crypto/err/libcrypto-lib-err_save.o" ], "products" => { "lib" => [ @@ -9104,7 +10528,9 @@ our %unified_info = ( "crypto/evp/libcrypto-lib-pmeth_check.o", "crypto/evp/libcrypto-lib-pmeth_gn.o", "crypto/evp/libcrypto-lib-pmeth_lib.o", + "crypto/evp/libcrypto-lib-s_lib.o", "crypto/evp/libcrypto-lib-signature.o", + "crypto/evp/libcrypto-lib-skeymgmt_meth.o", "crypto/evp/libfips-lib-asymcipher.o", "crypto/evp/libfips-lib-dh_support.o", "crypto/evp/libfips-lib-digest.o", @@ -9120,14 +10546,15 @@ our %unified_info = ( "crypto/evp/libfips-lib-kem.o", "crypto/evp/libfips-lib-keymgmt_lib.o", "crypto/evp/libfips-lib-keymgmt_meth.o", - "crypto/evp/libfips-lib-m_sigver.o", "crypto/evp/libfips-lib-mac_lib.o", "crypto/evp/libfips-lib-mac_meth.o", "crypto/evp/libfips-lib-p_lib.o", "crypto/evp/libfips-lib-pmeth_check.o", "crypto/evp/libfips-lib-pmeth_gn.o", "crypto/evp/libfips-lib-pmeth_lib.o", - "crypto/evp/libfips-lib-signature.o" + "crypto/evp/libfips-lib-s_lib.o", + "crypto/evp/libfips-lib-signature.o", + "crypto/evp/libfips-lib-skeymgmt_meth.o" ], "products" => { "lib" => [ @@ -9160,6 +10587,20 @@ our %unified_info = ( ] } }, + "crypto/hashtable" => { + "deps" => [ + "crypto/hashtable/libcrypto-lib-hashfunc.o", + "crypto/hashtable/libcrypto-lib-hashtable.o", + "crypto/hashtable/libfips-lib-hashfunc.o", + "crypto/hashtable/libfips-lib-hashtable.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, "crypto/hmac" => { "deps" => [ "crypto/hmac/libcrypto-lib-hmac.o", @@ -9172,6 +10613,17 @@ our %unified_info = ( ] } }, + "crypto/hpke" => { + "deps" => [ + "crypto/hpke/libcrypto-lib-hpke.o", + "crypto/hpke/libcrypto-lib-hpke_util.o" + ], + "products" => { + "lib" => [ + "libcrypto" + ] + } + }, "crypto/http" => { "deps" => [ "crypto/http/libcrypto-lib-http_client.o", @@ -9255,6 +10707,44 @@ our %unified_info = ( ] } }, + "crypto/ml_dsa" => { + "deps" => [ + "crypto/ml_dsa/libcrypto-lib-ml_dsa_encoders.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key_compress.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_matrix.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_ntt.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_params.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sample.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sign.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_encoders.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_key.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_key_compress.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_matrix.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_ntt.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_params.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_sample.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_sign.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, + "crypto/ml_kem" => { + "deps" => [ + "crypto/ml_kem/libcrypto-lib-ml_kem.o", + "crypto/ml_kem/libfips-lib-ml_kem.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, "crypto/modes" => { "deps" => [ "crypto/modes/libcrypto-lib-cbc128.o", @@ -9270,6 +10760,7 @@ our %unified_info = ( "crypto/modes/libcrypto-lib-siv128.o", "crypto/modes/libcrypto-lib-wrap128.o", "crypto/modes/libcrypto-lib-xts128.o", + "crypto/modes/libcrypto-lib-xts128gb.o", "crypto/modes/libfips-lib-cbc128.o", "crypto/modes/libfips-lib-ccm128.o", "crypto/modes/libfips-lib-cfb128.o", @@ -9279,7 +10770,8 @@ our %unified_info = ( "crypto/modes/libfips-lib-ghashv8-armx.o", "crypto/modes/libfips-lib-ofb128.o", "crypto/modes/libfips-lib-wrap128.o", - "crypto/modes/libfips-lib-xts128.o" + "crypto/modes/libfips-lib-xts128.o", + "crypto/modes/libfips-lib-xts128gb.o" ], "products" => { "lib" => [ @@ -9423,6 +10915,7 @@ our %unified_info = ( "crypto/rand/libcrypto-lib-rand_lib.o", "crypto/rand/libcrypto-lib-rand_meth.o", "crypto/rand/libcrypto-lib-rand_pool.o", + "crypto/rand/libcrypto-lib-rand_uniform.o", "crypto/rand/libcrypto-lib-randfile.o", "crypto/rand/libfips-lib-rand_lib.o" ], @@ -9573,6 +11066,36 @@ our %unified_info = ( ] } }, + "crypto/slh_dsa" => { + "deps" => [ + "crypto/slh_dsa/libcrypto-lib-slh_adrs.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa_hash_ctx.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa_key.o", + "crypto/slh_dsa/libcrypto-lib-slh_fors.o", + "crypto/slh_dsa/libcrypto-lib-slh_hash.o", + "crypto/slh_dsa/libcrypto-lib-slh_hypertree.o", + "crypto/slh_dsa/libcrypto-lib-slh_params.o", + "crypto/slh_dsa/libcrypto-lib-slh_wots.o", + "crypto/slh_dsa/libcrypto-lib-slh_xmss.o", + "crypto/slh_dsa/libfips-lib-slh_adrs.o", + "crypto/slh_dsa/libfips-lib-slh_dsa.o", + "crypto/slh_dsa/libfips-lib-slh_dsa_hash_ctx.o", + "crypto/slh_dsa/libfips-lib-slh_dsa_key.o", + "crypto/slh_dsa/libfips-lib-slh_fors.o", + "crypto/slh_dsa/libfips-lib-slh_hash.o", + "crypto/slh_dsa/libfips-lib-slh_hypertree.o", + "crypto/slh_dsa/libfips-lib-slh_params.o", + "crypto/slh_dsa/libfips-lib-slh_wots.o", + "crypto/slh_dsa/libfips-lib-slh_xmss.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, "crypto/sm2" => { "deps" => [ "crypto/sm2/libcrypto-lib-sm2_crypt.o", @@ -9646,6 +11169,38 @@ our %unified_info = ( ] } }, + "crypto/thread" => { + "deps" => [ + "crypto/thread/libcrypto-lib-api.o", + "crypto/thread/libcrypto-lib-arch.o", + "crypto/thread/libcrypto-lib-internal.o", + "crypto/thread/libfips-lib-api.o", + "crypto/thread/libfips-lib-arch.o", + "crypto/thread/libfips-lib-internal.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, + "crypto/thread/arch" => { + "deps" => [ + "crypto/thread/arch/libcrypto-lib-thread_none.o", + "crypto/thread/arch/libcrypto-lib-thread_posix.o", + "crypto/thread/arch/libcrypto-lib-thread_win.o", + "crypto/thread/arch/libfips-lib-thread_none.o", + "crypto/thread/arch/libfips-lib-thread_posix.o", + "crypto/thread/arch/libfips-lib-thread_win.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, "crypto/ts" => { "deps" => [ "crypto/ts/libcrypto-lib-ts_asn1.o", @@ -9712,14 +11267,22 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-pcy_map.o", "crypto/x509/libcrypto-lib-pcy_node.o", "crypto/x509/libcrypto-lib-pcy_tree.o", + "crypto/x509/libcrypto-lib-t_acert.o", "crypto/x509/libcrypto-lib-t_crl.o", "crypto/x509/libcrypto-lib-t_req.o", "crypto/x509/libcrypto-lib-t_x509.o", + "crypto/x509/libcrypto-lib-v3_aaa.o", + "crypto/x509/libcrypto-lib-v3_ac_tgt.o", "crypto/x509/libcrypto-lib-v3_addr.o", "crypto/x509/libcrypto-lib-v3_admis.o", "crypto/x509/libcrypto-lib-v3_akeya.o", "crypto/x509/libcrypto-lib-v3_akid.o", "crypto/x509/libcrypto-lib-v3_asid.o", + "crypto/x509/libcrypto-lib-v3_attrdesc.o", + "crypto/x509/libcrypto-lib-v3_attrmap.o", + "crypto/x509/libcrypto-lib-v3_audit_id.o", + "crypto/x509/libcrypto-lib-v3_authattid.o", + "crypto/x509/libcrypto-lib-v3_battcons.o", "crypto/x509/libcrypto-lib-v3_bcons.o", "crypto/x509/libcrypto-lib-v3_bitst.o", "crypto/x509/libcrypto-lib-v3_conf.o", @@ -9728,12 +11291,17 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_enum.o", "crypto/x509/libcrypto-lib-v3_extku.o", "crypto/x509/libcrypto-lib-v3_genn.o", + "crypto/x509/libcrypto-lib-v3_group_ac.o", "crypto/x509/libcrypto-lib-v3_ia5.o", + "crypto/x509/libcrypto-lib-v3_ind_iss.o", "crypto/x509/libcrypto-lib-v3_info.o", "crypto/x509/libcrypto-lib-v3_int.o", + "crypto/x509/libcrypto-lib-v3_iobo.o", "crypto/x509/libcrypto-lib-v3_ist.o", "crypto/x509/libcrypto-lib-v3_lib.o", "crypto/x509/libcrypto-lib-v3_ncons.o", + "crypto/x509/libcrypto-lib-v3_no_ass.o", + "crypto/x509/libcrypto-lib-v3_no_rev_avail.o", "crypto/x509/libcrypto-lib-v3_pci.o", "crypto/x509/libcrypto-lib-v3_pcia.o", "crypto/x509/libcrypto-lib-v3_pcons.o", @@ -9741,13 +11309,20 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_pmaps.o", "crypto/x509/libcrypto-lib-v3_prn.o", "crypto/x509/libcrypto-lib-v3_purp.o", + "crypto/x509/libcrypto-lib-v3_rolespec.o", "crypto/x509/libcrypto-lib-v3_san.o", + "crypto/x509/libcrypto-lib-v3_sda.o", + "crypto/x509/libcrypto-lib-v3_single_use.o", "crypto/x509/libcrypto-lib-v3_skid.o", + "crypto/x509/libcrypto-lib-v3_soa_id.o", "crypto/x509/libcrypto-lib-v3_sxnet.o", + "crypto/x509/libcrypto-lib-v3_timespec.o", "crypto/x509/libcrypto-lib-v3_tlsf.o", + "crypto/x509/libcrypto-lib-v3_usernotice.o", "crypto/x509/libcrypto-lib-v3_utf8.o", "crypto/x509/libcrypto-lib-v3_utl.o", "crypto/x509/libcrypto-lib-v3err.o", + "crypto/x509/libcrypto-lib-x509_acert.o", "crypto/x509/libcrypto-lib-x509_att.o", "crypto/x509/libcrypto-lib-x509_cmp.o", "crypto/x509/libcrypto-lib-x509_d2.o", @@ -9765,6 +11340,7 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x509_v3.o", "crypto/x509/libcrypto-lib-x509_vfy.o", "crypto/x509/libcrypto-lib-x509_vpm.o", + "crypto/x509/libcrypto-lib-x509aset.o", "crypto/x509/libcrypto-lib-x509cset.o", "crypto/x509/libcrypto-lib-x509name.o", "crypto/x509/libcrypto-lib-x509rset.o", @@ -9774,6 +11350,7 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x_attrib.o", "crypto/x509/libcrypto-lib-x_crl.o", "crypto/x509/libcrypto-lib-x_exten.o", + "crypto/x509/libcrypto-lib-x_ietfatt.o", "crypto/x509/libcrypto-lib-x_name.o", "crypto/x509/libcrypto-lib-x_pubkey.o", "crypto/x509/libcrypto-lib-x_req.o", @@ -9800,6 +11377,7 @@ our %unified_info = ( "fuzz" => { "products" => { "bin" => [ + "fuzz/acert-test", "fuzz/asn1-test", "fuzz/asn1parse-test", "fuzz/bignum-test", @@ -9810,13 +11388,31 @@ our %unified_info = ( "fuzz/conf-test", "fuzz/crl-test", "fuzz/ct-test", + "fuzz/decoder-test", + "fuzz/dtlsclient-test", + "fuzz/dtlsserver-test", + "fuzz/hashtable-test", + "fuzz/ml-dsa-test", + "fuzz/ml-kem-test", + "fuzz/pem-test", + "fuzz/provider-test", + "fuzz/punycode-test", + "fuzz/quic-client-test", + "fuzz/quic-lcidm-test", + "fuzz/quic-rcidm-test", + "fuzz/quic-server-test", + "fuzz/quic-srtm-test", "fuzz/server-test", + "fuzz/slh-dsa-test", + "fuzz/smime-test", + "fuzz/v3name-test", "fuzz/x509-test" ] } }, "providers" => { "deps" => [ + "providers/endecode_test-bin-legacyprov.o", "providers/evp_extra_test-bin-legacyprov.o", "providers/libcrypto-lib-baseprov.o", "providers/libcrypto-lib-defltprov.o", @@ -9826,6 +11422,7 @@ our %unified_info = ( ], "products" => { "bin" => [ + "test/endecode_test", "test/evp_extra_test" ], "dso" => [ @@ -9877,8 +11474,12 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ec_sig.o", "providers/common/der/libcommon-lib-der_ecx_gen.o", "providers/common/der/libcommon-lib-der_ecx_key.o", + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o", + "providers/common/der/libcommon-lib-der_ml_dsa_key.o", "providers/common/der/libcommon-lib-der_rsa_gen.o", "providers/common/der/libcommon-lib-der_rsa_key.o", + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o", + "providers/common/der/libcommon-lib-der_slh_dsa_key.o", "providers/common/der/libcommon-lib-der_wrap_gen.o", "providers/common/der/libdefault-lib-der_rsa_sig.o", "providers/common/der/libdefault-lib-der_sm2_gen.o", @@ -9897,6 +11498,7 @@ our %unified_info = ( "providers/fips" => { "deps" => [ "providers/fips/fips-dso-fips_entry.o", + "providers/fips/libfips-lib-fipsindicator.o", "providers/fips/libfips-lib-fipsprov.o", "providers/fips/libfips-lib-self_test.o", "providers/fips/libfips-lib-self_test_kats.o" @@ -9940,6 +11542,9 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_aes_ccm_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_polyval.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_ocb.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_ocb_hw.o", @@ -9964,7 +11569,13 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_cts.o", "providers/implementations/ciphers/libdefault-lib-cipher_null.o", "providers/implementations/ciphers/libdefault-lib-cipher_sm4.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_sm4_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes_common.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes_default.o", @@ -10061,7 +11672,10 @@ our %unified_info = ( "providers/implementations/encode_decode/libdefault-lib-encode_key2blob.o", "providers/implementations/encode_decode/libdefault-lib-encode_key2ms.o", "providers/implementations/encode_decode/libdefault-lib-encode_key2text.o", - "providers/implementations/encode_decode/libdefault-lib-endecoder_common.o" + "providers/implementations/encode_decode/libdefault-lib-endecoder_common.o", + "providers/implementations/encode_decode/libdefault-lib-ml_common_codecs.o", + "providers/implementations/encode_decode/libdefault-lib-ml_dsa_codecs.o", + "providers/implementations/encode_decode/libdefault-lib-ml_kem_codecs.o" ], "products" => { "lib" => [ @@ -10089,7 +11703,9 @@ our %unified_info = ( }, "providers/implementations/kdfs" => { "deps" => [ + "providers/implementations/kdfs/libdefault-lib-argon2.o", "providers/implementations/kdfs/libdefault-lib-hkdf.o", + "providers/implementations/kdfs/libdefault-lib-hmacdrbg_kdf.o", "providers/implementations/kdfs/libdefault-lib-kbkdf.o", "providers/implementations/kdfs/libdefault-lib-krb5kdf.o", "providers/implementations/kdfs/libdefault-lib-pbkdf2.o", @@ -10108,7 +11724,8 @@ our %unified_info = ( "providers/implementations/kdfs/libfips-lib-sskdf.o", "providers/implementations/kdfs/libfips-lib-tls1_prf.o", "providers/implementations/kdfs/libfips-lib-x942kdf.o", - "providers/implementations/kdfs/liblegacy-lib-pbkdf1.o" + "providers/implementations/kdfs/liblegacy-lib-pbkdf1.o", + "providers/implementations/kdfs/liblegacy-lib-pvkkdf.o" ], "products" => { "lib" => [ @@ -10120,13 +11737,22 @@ our %unified_info = ( }, "providers/implementations/kem" => { "deps" => [ + "providers/implementations/kem/libdefault-lib-ec_kem.o", + "providers/implementations/kem/libdefault-lib-ecx_kem.o", + "providers/implementations/kem/libdefault-lib-kem_util.o", + "providers/implementations/kem/libdefault-lib-ml_kem_kem.o", + "providers/implementations/kem/libdefault-lib-mlx_kem.o", "providers/implementations/kem/libdefault-lib-rsa_kem.o", - "providers/implementations/kem/libfips-lib-rsa_kem.o" + "providers/implementations/kem/libfips-lib-ml_kem_kem.o", + "providers/implementations/kem/libfips-lib-mlx_kem.o", + "providers/implementations/kem/libfips-lib-rsa_kem.o", + "providers/implementations/kem/libtemplate-lib-template_kem.o" ], "products" => { "lib" => [ "providers/libdefault.a", - "providers/libfips.a" + "providers/libfips.a", + "providers/libtemplate.a" ] } }, @@ -10138,19 +11764,29 @@ our %unified_info = ( "providers/implementations/keymgmt/libdefault-lib-ecx_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-kdf_legacy_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-mac_legacy_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-ml_dsa_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-ml_kem_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-mlx_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-rsa_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-slh_dsa_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-dh_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-dsa_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-ec_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-ecx_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-kdf_legacy_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-mac_legacy_kmgmt.o", - "providers/implementations/keymgmt/libfips-lib-rsa_kmgmt.o" + "providers/implementations/keymgmt/libfips-lib-ml_dsa_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-ml_kem_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-mlx_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-rsa_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-slh_dsa_kmgmt.o", + "providers/implementations/keymgmt/libtemplate-lib-template_kmgmt.o" ], "products" => { "lib" => [ "providers/libdefault.a", - "providers/libfips.a" + "providers/libfips.a", + "providers/libtemplate.a" ] } }, @@ -10178,18 +11814,18 @@ our %unified_info = ( }, "providers/implementations/rands" => { "deps" => [ - "providers/implementations/rands/libdefault-lib-crngt.o", "providers/implementations/rands/libdefault-lib-drbg.o", "providers/implementations/rands/libdefault-lib-drbg_ctr.o", "providers/implementations/rands/libdefault-lib-drbg_hash.o", "providers/implementations/rands/libdefault-lib-drbg_hmac.o", "providers/implementations/rands/libdefault-lib-seed_src.o", + "providers/implementations/rands/libdefault-lib-seed_src_jitter.o", "providers/implementations/rands/libdefault-lib-test_rng.o", - "providers/implementations/rands/libfips-lib-crngt.o", "providers/implementations/rands/libfips-lib-drbg.o", "providers/implementations/rands/libfips-lib-drbg_ctr.o", "providers/implementations/rands/libfips-lib-drbg_hash.o", "providers/implementations/rands/libfips-lib-drbg_hmac.o", + "providers/implementations/rands/libfips-lib-fips_crng_test.o", "providers/implementations/rands/libfips-lib-test_rng.o" ], "products" => { @@ -10218,13 +11854,31 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-ecdsa_sig.o", "providers/implementations/signature/libdefault-lib-eddsa_sig.o", "providers/implementations/signature/libdefault-lib-mac_legacy_sig.o", + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o", "providers/implementations/signature/libdefault-lib-rsa_sig.o", + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o", "providers/implementations/signature/libdefault-lib-sm2_sig.o", "providers/implementations/signature/libfips-lib-dsa_sig.o", "providers/implementations/signature/libfips-lib-ecdsa_sig.o", "providers/implementations/signature/libfips-lib-eddsa_sig.o", "providers/implementations/signature/libfips-lib-mac_legacy_sig.o", - "providers/implementations/signature/libfips-lib-rsa_sig.o" + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o", + "providers/implementations/signature/libfips-lib-rsa_sig.o", + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o" + ], + "products" => { + "lib" => [ + "providers/libdefault.a", + "providers/libfips.a" + ] + } + }, + "providers/implementations/skeymgmt" => { + "deps" => [ + "providers/implementations/skeymgmt/libdefault-lib-aes_skmgmt.o", + "providers/implementations/skeymgmt/libdefault-lib-generic.o", + "providers/implementations/skeymgmt/libfips-lib-aes_skmgmt.o", + "providers/implementations/skeymgmt/libfips-lib-generic.o" ], "products" => { "lib" => [ @@ -10252,14 +11906,15 @@ our %unified_info = ( "ssl/libssl-lib-d1_srtp.o", "ssl/libssl-lib-methods.o", "ssl/libssl-lib-pqueue.o", + "ssl/libssl-lib-priority_queue.o", "ssl/libssl-lib-s3_enc.o", "ssl/libssl-lib-s3_lib.o", "ssl/libssl-lib-s3_msg.o", "ssl/libssl-lib-ssl_asn1.o", "ssl/libssl-lib-ssl_cert.o", + "ssl/libssl-lib-ssl_cert_comp.o", "ssl/libssl-lib-ssl_ciph.o", "ssl/libssl-lib-ssl_conf.o", - "ssl/libssl-lib-ssl_err.o", "ssl/libssl-lib-ssl_err_legacy.o", "ssl/libssl-lib-ssl_init.o", "ssl/libssl-lib-ssl_lib.o", @@ -10275,32 +11930,107 @@ our %unified_info = ( "ssl/libssl-lib-t1_trce.o", "ssl/libssl-lib-tls13_enc.o", "ssl/libssl-lib-tls_depr.o", - "ssl/libssl-lib-tls_srp.o", - "ssl/libdefault-lib-s3_cbc.o", - "ssl/libfips-lib-s3_cbc.o" + "ssl/libssl-lib-tls_srp.o" ], "products" => { "lib" => [ - "libssl", - "providers/libdefault.a", - "providers/libfips.a" + "libssl" + ] + } + }, + "ssl/quic" => { + "deps" => [ + "ssl/quic/libssl-lib-cc_newreno.o", + "ssl/quic/libssl-lib-json_enc.o", + "ssl/quic/libssl-lib-qlog.o", + "ssl/quic/libssl-lib-qlog_event_helpers.o", + "ssl/quic/libssl-lib-quic_ackm.o", + "ssl/quic/libssl-lib-quic_cfq.o", + "ssl/quic/libssl-lib-quic_channel.o", + "ssl/quic/libssl-lib-quic_demux.o", + "ssl/quic/libssl-lib-quic_engine.o", + "ssl/quic/libssl-lib-quic_fc.o", + "ssl/quic/libssl-lib-quic_fifd.o", + "ssl/quic/libssl-lib-quic_impl.o", + "ssl/quic/libssl-lib-quic_lcidm.o", + "ssl/quic/libssl-lib-quic_method.o", + "ssl/quic/libssl-lib-quic_obj.o", + "ssl/quic/libssl-lib-quic_port.o", + "ssl/quic/libssl-lib-quic_rcidm.o", + "ssl/quic/libssl-lib-quic_reactor.o", + "ssl/quic/libssl-lib-quic_reactor_wait_ctx.o", + "ssl/quic/libssl-lib-quic_record_rx.o", + "ssl/quic/libssl-lib-quic_record_shared.o", + "ssl/quic/libssl-lib-quic_record_tx.o", + "ssl/quic/libssl-lib-quic_record_util.o", + "ssl/quic/libssl-lib-quic_rstream.o", + "ssl/quic/libssl-lib-quic_rx_depack.o", + "ssl/quic/libssl-lib-quic_sf_list.o", + "ssl/quic/libssl-lib-quic_srt_gen.o", + "ssl/quic/libssl-lib-quic_srtm.o", + "ssl/quic/libssl-lib-quic_sstream.o", + "ssl/quic/libssl-lib-quic_statm.o", + "ssl/quic/libssl-lib-quic_stream_map.o", + "ssl/quic/libssl-lib-quic_thread_assist.o", + "ssl/quic/libssl-lib-quic_tls.o", + "ssl/quic/libssl-lib-quic_tls_api.o", + "ssl/quic/libssl-lib-quic_trace.o", + "ssl/quic/libssl-lib-quic_tserver.o", + "ssl/quic/libssl-lib-quic_txp.o", + "ssl/quic/libssl-lib-quic_txpim.o", + "ssl/quic/libssl-lib-quic_types.o", + "ssl/quic/libssl-lib-quic_wire.o", + "ssl/quic/libssl-lib-quic_wire_pkt.o", + "ssl/quic/libssl-lib-uint_set.o" + ], + "products" => { + "lib" => [ + "libssl" ] } }, "ssl/record" => { "deps" => [ - "ssl/record/libssl-lib-dtls1_bitmap.o", "ssl/record/libssl-lib-rec_layer_d1.o", - "ssl/record/libssl-lib-rec_layer_s3.o", - "ssl/record/libssl-lib-ssl3_buffer.o", - "ssl/record/libssl-lib-ssl3_record.o", - "ssl/record/libssl-lib-ssl3_record_tls13.o", - "ssl/record/libcommon-lib-tls_pad.o" + "ssl/record/libssl-lib-rec_layer_s3.o" + ], + "products" => { + "lib" => [ + "libssl" + ] + } + }, + "ssl/record/methods" => { + "deps" => [ + "ssl/record/methods/libssl-lib-dtls_meth.o", + "ssl/record/methods/libssl-lib-ssl3_meth.o", + "ssl/record/methods/libssl-lib-tls13_meth.o", + "ssl/record/methods/libssl-lib-tls1_meth.o", + "ssl/record/methods/libssl-lib-tls_common.o", + "ssl/record/methods/libssl-lib-tls_multib.o", + "ssl/record/methods/libssl-lib-tlsany_meth.o", + "ssl/record/methods/libcommon-lib-tls_pad.o", + "ssl/record/methods/libdefault-lib-ssl3_cbc.o", + "ssl/record/methods/libfips-lib-ssl3_cbc.o" ], "products" => { "lib" => [ "libssl", - "providers/libcommon.a" + "providers/libcommon.a", + "providers/libdefault.a", + "providers/libfips.a" + ] + } + }, + "ssl/rio" => { + "deps" => [ + "ssl/rio/libssl-lib-poll_builder.o", + "ssl/rio/libssl-lib-poll_immediate.o", + "ssl/rio/libssl-lib-rio_notifier.o" + ], + "products" => { + "lib" => [ + "libssl" ] } }, @@ -10338,9 +12068,40 @@ our %unified_info = ( "test/helpers/dtlstest-bin-ssltestlib.o", "test/helpers/endecode_test-bin-predefined_dhparams.o", "test/helpers/fatalerrtest-bin-ssltestlib.o", + "test/helpers/json_test-bin-noisydgrambio.o", + "test/helpers/json_test-bin-pktsplitbio.o", + "test/helpers/json_test-bin-quictestlib.o", + "test/helpers/json_test-bin-ssltestlib.o", + "test/helpers/pkcs12_api_test-bin-pkcs12.o", "test/helpers/pkcs12_format_test-bin-pkcs12.o", + "test/helpers/quic_multistream_test-bin-noisydgrambio.o", + "test/helpers/quic_multistream_test-bin-pktsplitbio.o", + "test/helpers/quic_multistream_test-bin-quictestlib.o", + "test/helpers/quic_multistream_test-bin-ssltestlib.o", + "test/helpers/quic_newcid_test-bin-noisydgrambio.o", + "test/helpers/quic_newcid_test-bin-pktsplitbio.o", + "test/helpers/quic_newcid_test-bin-quictestlib.o", + "test/helpers/quic_newcid_test-bin-ssltestlib.o", + "test/helpers/quic_radix_test-bin-noisydgrambio.o", + "test/helpers/quic_radix_test-bin-pktsplitbio.o", + "test/helpers/quic_radix_test-bin-quictestlib.o", + "test/helpers/quic_radix_test-bin-ssltestlib.o", + "test/helpers/quic_srt_gen_test-bin-noisydgrambio.o", + "test/helpers/quic_srt_gen_test-bin-pktsplitbio.o", + "test/helpers/quic_srt_gen_test-bin-quictestlib.o", + "test/helpers/quic_srt_gen_test-bin-ssltestlib.o", + "test/helpers/quicapitest-bin-noisydgrambio.o", + "test/helpers/quicapitest-bin-pktsplitbio.o", + "test/helpers/quicapitest-bin-quictestlib.o", + "test/helpers/quicapitest-bin-ssltestlib.o", + "test/helpers/quicfaultstest-bin-noisydgrambio.o", + "test/helpers/quicfaultstest-bin-pktsplitbio.o", + "test/helpers/quicfaultstest-bin-quictestlib.o", + "test/helpers/quicfaultstest-bin-ssltestlib.o", "test/helpers/recordlentest-bin-ssltestlib.o", + "test/helpers/rpktest-bin-ssltestlib.o", "test/helpers/servername_test-bin-ssltestlib.o", + "test/helpers/ssl_handshake_rtt_test-bin-ssltestlib.o", "test/helpers/ssl_old_test-bin-predefined_dhparams.o", "test/helpers/ssl_test-bin-handshake.o", "test/helpers/ssl_test-bin-handshake_srp.o", @@ -10349,7 +12110,8 @@ our %unified_info = ( "test/helpers/sslapitest-bin-ssltestlib.o", "test/helpers/sslbuffertest-bin-ssltestlib.o", "test/helpers/sslcorrupttest-bin-ssltestlib.o", - "test/helpers/tls13ccstest-bin-ssltestlib.o" + "test/helpers/tls13ccstest-bin-ssltestlib.o", + "test/helpers/tls13groupselection_test-bin-ssltestlib.o" ], "products" => { "bin" => [ @@ -10367,16 +12129,37 @@ our %unified_info = ( "test/dtlstest", "test/endecode_test", "test/fatalerrtest", + "test/json_test", + "test/pkcs12_api_test", "test/pkcs12_format_test", + "test/quic_multistream_test", + "test/quic_newcid_test", + "test/quic_radix_test", + "test/quic_srt_gen_test", + "test/quicapitest", + "test/quicfaultstest", "test/recordlentest", + "test/rpktest", "test/servername_test", + "test/ssl_handshake_rtt_test", "test/ssl_old_test", "test/ssl_test", "test/ssl_test_ctx_test", "test/sslapitest", "test/sslbuffertest", "test/sslcorrupttest", - "test/tls13ccstest" + "test/tls13ccstest", + "test/tls13groupselection_test" + ] + } + }, + "test/radix" => { + "deps" => [ + "test/radix/quic_radix_test-bin-quic_radix.o" + ], + "products" => { + "bin" => [ + "test/quic_radix_test" ] } }, @@ -10388,6 +12171,7 @@ our %unified_info = ( "test/testutil/libtestutil-lib-driver.o", "test/testutil/libtestutil-lib-fake_random.o", "test/testutil/libtestutil-lib-format_output.o", + "test/testutil/libtestutil-lib-helper.o", "test/testutil/libtestutil-lib-load.o", "test/testutil/libtestutil-lib-main.o", "test/testutil/libtestutil-lib-options.o", @@ -10423,6 +12207,12 @@ our %unified_info = ( } }, "generate" => { + "OpenSSLConfig.cmake" => [ + "exporters/cmake/OpenSSLConfig.cmake.in" + ], + "OpenSSLConfigVersion.cmake" => [ + "exporters/cmake/OpenSSLConfigVersion.cmake.in" + ], "apps/progs.c" => [ "apps/progs.pl", "\"-C\"", @@ -10433,6 +12223,19 @@ our %unified_info = ( "\"-H\"", "\$(APPS_OPENSSL)" ], + "builddata.pm" => [ + "util/mkinstallvars.pl", + "PREFIX=.", + "BINDIR=apps", + "APPLINKDIR=ms", + "LIBDIR=", + "INCLUDEDIR=include", + "\"INCLUDEDIR=\$(SRCDIR)/include\"", + "ENGINESDIR=engines", + "MODULESDIR=providers", + "\"VERSION=\$(VERSION)\"", + "\"LDLIBS=\$(LIB_EX_LIBS)\"" + ], "crypto/aes/aes-586.S" => [ "crypto/aes/asm/aes-586.pl" ], @@ -10454,6 +12257,24 @@ our %unified_info = ( "crypto/aes/aes-ppc.s" => [ "crypto/aes/asm/aes-ppc.pl" ], + "crypto/aes/aes-riscv32-zkn.s" => [ + "crypto/aes/asm/aes-riscv32-zkn.pl" + ], + "crypto/aes/aes-riscv64-zkn.s" => [ + "crypto/aes/asm/aes-riscv64-zkn.pl" + ], + "crypto/aes/aes-riscv64-zvbb-zvkg-zvkned.s" => [ + "crypto/aes/asm/aes-riscv64-zvbb-zvkg-zvkned.pl" + ], + "crypto/aes/aes-riscv64-zvkb-zvkned.s" => [ + "crypto/aes/asm/aes-riscv64-zvkb-zvkned.pl" + ], + "crypto/aes/aes-riscv64-zvkned.s" => [ + "crypto/aes/asm/aes-riscv64-zvkned.pl" + ], + "crypto/aes/aes-riscv64.s" => [ + "crypto/aes/asm/aes-riscv64.pl" + ], "crypto/aes/aes-s390x.S" => [ "crypto/aes/asm/aes-s390x.pl" ], @@ -10481,6 +12302,9 @@ our %unified_info = ( "crypto/aes/aesni-x86_64.s" => [ "crypto/aes/asm/aesni-x86_64.pl" ], + "crypto/aes/aesni-xts-avx512.s" => [ + "crypto/aes/asm/aesni-xts-avx512.pl" + ], "crypto/aes/aesp8-ppc.s" => [ "crypto/aes/asm/aesp8-ppc.pl" ], @@ -10493,12 +12317,18 @@ our %unified_info = ( "crypto/aes/bsaes-armv7.S" => [ "crypto/aes/asm/bsaes-armv7.pl" ], + "crypto/aes/bsaes-armv8.S" => [ + "crypto/aes/asm/bsaes-armv8.pl" + ], "crypto/aes/bsaes-x86_64.s" => [ "crypto/aes/asm/bsaes-x86_64.pl" ], "crypto/aes/vpaes-armv8.S" => [ "crypto/aes/asm/vpaes-armv8.pl" ], + "crypto/aes/vpaes-loongarch64.S" => [ + "crypto/aes/asm/vpaes-loongarch64.pl" + ], "crypto/aes/vpaes-ppc.s" => [ "crypto/aes/asm/vpaes-ppc.pl" ], @@ -10559,15 +12389,33 @@ our %unified_info = ( "crypto/bn/ppc-mont.s" => [ "crypto/bn/asm/ppc-mont.pl" ], + "crypto/bn/ppc64-mont-fixed.s" => [ + "crypto/bn/asm/ppc64-mont-fixed.pl" + ], "crypto/bn/ppc64-mont.s" => [ "crypto/bn/asm/ppc64-mont.pl" ], + "crypto/bn/rsaz-2k-avx512.s" => [ + "crypto/bn/asm/rsaz-2k-avx512.pl" + ], + "crypto/bn/rsaz-2k-avxifma.s" => [ + "crypto/bn/asm/rsaz-2k-avxifma.pl" + ], + "crypto/bn/rsaz-3k-avx512.s" => [ + "crypto/bn/asm/rsaz-3k-avx512.pl" + ], + "crypto/bn/rsaz-3k-avxifma.s" => [ + "crypto/bn/asm/rsaz-3k-avxifma.pl" + ], + "crypto/bn/rsaz-4k-avx512.s" => [ + "crypto/bn/asm/rsaz-4k-avx512.pl" + ], + "crypto/bn/rsaz-4k-avxifma.s" => [ + "crypto/bn/asm/rsaz-4k-avxifma.pl" + ], "crypto/bn/rsaz-avx2.s" => [ "crypto/bn/asm/rsaz-avx2.pl" ], - "crypto/bn/rsaz-avx512.s" => [ - "crypto/bn/asm/rsaz-avx512.pl" - ], "crypto/bn/rsaz-x86_64.s" => [ "crypto/bn/asm/rsaz-x86_64.pl" ], @@ -10629,6 +12477,9 @@ our %unified_info = ( "crypto/chacha/chacha-armv4.S" => [ "crypto/chacha/asm/chacha-armv4.pl" ], + "crypto/chacha/chacha-armv8-sve.S" => [ + "crypto/chacha/asm/chacha-armv8-sve.pl" + ], "crypto/chacha/chacha-armv8.S" => [ "crypto/chacha/asm/chacha-armv8.pl" ], @@ -10641,9 +12492,19 @@ our %unified_info = ( "crypto/chacha/chacha-ia64.s" => [ "crypto/chacha/chacha-ia64.S" ], + "crypto/chacha/chacha-loongarch64.S" => [ + "crypto/chacha/asm/chacha-loongarch64.pl" + ], "crypto/chacha/chacha-ppc.s" => [ "crypto/chacha/asm/chacha-ppc.pl" ], + "crypto/chacha/chacha-riscv64-v-zbb-zvkb.s" => [ + "crypto/chacha/asm/chacha-riscv64-v-zbb.pl", + "zvkb" + ], + "crypto/chacha/chacha-riscv64-v-zbb.s" => [ + "crypto/chacha/asm/chacha-riscv64-v-zbb.pl" + ], "crypto/chacha/chacha-s390x.S" => [ "crypto/chacha/asm/chacha-s390x.pl" ], @@ -10653,6 +12514,9 @@ our %unified_info = ( "crypto/chacha/chacha-x86_64.s" => [ "crypto/chacha/asm/chacha-x86_64.pl" ], + "crypto/chacha/chachap10-ppc.s" => [ + "crypto/chacha/asm/chachap10-ppc.pl" + ], "crypto/des/crypt586.S" => [ "crypto/des/asm/crypt586.pl" ], @@ -10665,6 +12529,9 @@ our %unified_info = ( "crypto/des/dest4-sparcv9.S" => [ "crypto/des/asm/dest4-sparcv9.pl" ], + "crypto/ec/ecp_nistp384-ppc64.s" => [ + "crypto/ec/asm/ecp_nistp384-ppc64.pl" + ], "crypto/ec/ecp_nistp521-ppc64.s" => [ "crypto/ec/asm/ecp_nistp521-ppc64.pl" ], @@ -10689,6 +12556,9 @@ our %unified_info = ( "crypto/ec/ecp_nistz256-x86_64.s" => [ "crypto/ec/asm/ecp_nistz256-x86_64.pl" ], + "crypto/ec/ecp_sm2p256-armv8.S" => [ + "crypto/ec/asm/ecp_sm2p256-armv8.pl" + ], "crypto/ec/x25519-ppc64.s" => [ "crypto/ec/asm/x25519-ppc64.pl" ], @@ -10698,18 +12568,39 @@ our %unified_info = ( "crypto/ia64cpuid.s" => [ "crypto/ia64cpuid.S" ], + "crypto/loongarch64cpuid.s" => [ + "crypto/loongarch64cpuid.pl" + ], "crypto/md5/md5-586.S" => [ "crypto/md5/asm/md5-586.pl" ], + "crypto/md5/md5-aarch64.S" => [ + "crypto/md5/asm/md5-aarch64.pl" + ], + "crypto/md5/md5-loongarch64.S" => [ + "crypto/md5/asm/md5-loongarch64.pl" + ], "crypto/md5/md5-sparcv9.S" => [ "crypto/md5/asm/md5-sparcv9.pl" ], "crypto/md5/md5-x86_64.s" => [ "crypto/md5/asm/md5-x86_64.pl" ], + "crypto/modes/aes-gcm-armv8-unroll8_64.S" => [ + "crypto/modes/asm/aes-gcm-armv8-unroll8_64.pl" + ], "crypto/modes/aes-gcm-armv8_64.S" => [ "crypto/modes/asm/aes-gcm-armv8_64.pl" ], + "crypto/modes/aes-gcm-avx512.s" => [ + "crypto/modes/asm/aes-gcm-avx512.pl" + ], + "crypto/modes/aes-gcm-ppc.s" => [ + "crypto/modes/asm/aes-gcm-ppc.pl" + ], + "crypto/modes/aes-gcm-riscv64-zvkb-zvkg-zvkned.s" => [ + "crypto/modes/asm/aes-gcm-riscv64-zvkb-zvkg-zvkned.pl" + ], "crypto/modes/aesni-gcm-x86_64.s" => [ "crypto/modes/asm/aesni-gcm-x86_64.pl" ], @@ -10728,6 +12619,15 @@ our %unified_info = ( "crypto/modes/ghash-parisc.s" => [ "crypto/modes/asm/ghash-parisc.pl" ], + "crypto/modes/ghash-riscv64-zvkb-zvbc.s" => [ + "crypto/modes/asm/ghash-riscv64-zvkb-zvbc.pl" + ], + "crypto/modes/ghash-riscv64-zvkg.s" => [ + "crypto/modes/asm/ghash-riscv64-zvkg.pl" + ], + "crypto/modes/ghash-riscv64.s" => [ + "crypto/modes/asm/ghash-riscv64.pl" + ], "crypto/modes/ghash-s390x.S" => [ "crypto/modes/asm/ghash-s390x.pl" ], @@ -10746,6 +12646,9 @@ our %unified_info = ( "crypto/modes/ghashv8-armx.S" => [ "crypto/modes/asm/ghashv8-armx.pl" ], + "crypto/params_idx.c" => [ + "crypto/params_idx.c.in" + ], "crypto/pariscid.s" => [ "crypto/pariscid.pl" ], @@ -10806,6 +12709,12 @@ our %unified_info = ( "crypto/ripemd/rmd-586.S" => [ "crypto/ripemd/asm/rmd-586.pl" ], + "crypto/riscv32cpuid.s" => [ + "crypto/riscv32cpuid.pl" + ], + "crypto/riscv64cpuid.s" => [ + "crypto/riscv64cpuid.pl" + ], "crypto/s390xcpuid.S" => [ "crypto/s390xcpuid.pl" ], @@ -10914,6 +12823,9 @@ our %unified_info = ( "crypto/sha/sha256-ppc.s" => [ "crypto/sha/asm/sha512-ppc.pl" ], + "crypto/sha/sha256-riscv64-zvkb-zvknha_or_zvknhb.S" => [ + "crypto/sha/asm/sha256-riscv64-zvkb-zvknha_or_zvknhb.pl" + ], "crypto/sha/sha256-s390x.S" => [ "crypto/sha/asm/sha512-s390x.pl" ], @@ -10950,6 +12862,9 @@ our %unified_info = ( "crypto/sha/sha512-ppc.s" => [ "crypto/sha/asm/sha512-ppc.pl" ], + "crypto/sha/sha512-riscv64-zvkb-zvknhb.S" => [ + "crypto/sha/asm/sha512-riscv64-zvkb-zvknhb.pl" + ], "crypto/sha/sha512-s390x.S" => [ "crypto/sha/asm/sha512-s390x.pl" ], @@ -10962,6 +12877,24 @@ our %unified_info = ( "crypto/sha/sha512p8-ppc.s" => [ "crypto/sha/asm/sha512p8-ppc.pl" ], + "crypto/sm3/sm3-armv8.S" => [ + "crypto/sm3/asm/sm3-armv8.pl" + ], + "crypto/sm3/sm3-riscv64-zvksh.S" => [ + "crypto/sm3/asm/sm3-riscv64-zvksh.pl" + ], + "crypto/sm4/sm4-armv8.S" => [ + "crypto/sm4/asm/sm4-armv8.pl" + ], + "crypto/sm4/sm4-riscv64-zvksed.s" => [ + "crypto/sm4/asm/sm4-riscv64-zvksed.pl" + ], + "crypto/sm4/vpsm4-armv8.S" => [ + "crypto/sm4/asm/vpsm4-armv8.pl" + ], + "crypto/sm4/vpsm4_ex-armv8.S" => [ + "crypto/sm4/asm/vpsm4_ex-armv8.pl" + ], "crypto/uplink-ia64.s" => [ "ms/uplink-ia64.pl" ], @@ -11127,6 +13060,9 @@ our %unified_info = ( "doc/html/man1/openssl-sess_id.html" => [ "doc/man1/openssl-sess_id.pod" ], + "doc/html/man1/openssl-skeyutl.html" => [ + "doc/man1/openssl-skeyutl.pod" + ], "doc/html/man1/openssl-smime.html" => [ "doc/man1/openssl-smime.pod" ], @@ -11268,6 +13204,9 @@ our %unified_info = ( "doc/html/man3/BIO_get_ex_new_index.html" => [ "doc/man3/BIO_get_ex_new_index.pod" ], + "doc/html/man3/BIO_get_rpoll_descriptor.html" => [ + "doc/man3/BIO_get_rpoll_descriptor.pod" + ], "doc/html/man3/BIO_meth_new.html" => [ "doc/man3/BIO_meth_new.pod" ], @@ -11304,6 +13243,9 @@ our %unified_info = ( "doc/html/man3/BIO_s_datagram.html" => [ "doc/man3/BIO_s_datagram.pod" ], + "doc/html/man3/BIO_s_dgram_pair.html" => [ + "doc/man3/BIO_s_dgram_pair.pod" + ], "doc/html/man3/BIO_s_fd.html" => [ "doc/man3/BIO_s_fd.pod" ], @@ -11319,6 +13261,9 @@ our %unified_info = ( "doc/html/man3/BIO_s_socket.html" => [ "doc/man3/BIO_s_socket.pod" ], + "doc/html/man3/BIO_sendmmsg.html" => [ + "doc/man3/BIO_sendmmsg.pod" + ], "doc/html/man3/BIO_set_callback.html" => [ "doc/man3/BIO_set_callback.pod" ], @@ -11391,6 +13336,9 @@ our %unified_info = ( "doc/html/man3/BUF_MEM_new.html" => [ "doc/man3/BUF_MEM_new.pod" ], + "doc/html/man3/CMAC_CTX.html" => [ + "doc/man3/CMAC_CTX.pod" + ], "doc/html/man3/CMS_EncryptedData_decrypt.html" => [ "doc/man3/CMS_EncryptedData_decrypt.pod" ], @@ -11457,6 +13405,9 @@ our %unified_info = ( "doc/html/man3/CMS_verify_receipt.html" => [ "doc/man3/CMS_verify_receipt.pod" ], + "doc/html/man3/COMP_CTX_new.html" => [ + "doc/man3/COMP_CTX_new.pod" + ], "doc/html/man3/CONF_modules_free.html" => [ "doc/man3/CONF_modules_free.pod" ], @@ -11556,6 +13507,12 @@ our %unified_info = ( "doc/html/man3/DTLS_set_timer_cb.html" => [ "doc/man3/DTLS_set_timer_cb.pod" ], + "doc/html/man3/DTLSv1_get_timeout.html" => [ + "doc/man3/DTLSv1_get_timeout.pod" + ], + "doc/html/man3/DTLSv1_handle_timeout.html" => [ + "doc/man3/DTLSv1_handle_timeout.pod" + ], "doc/html/man3/DTLSv1_listen.html" => [ "doc/man3/DTLSv1_listen.pod" ], @@ -11694,6 +13651,9 @@ our %unified_info = ( "doc/html/man3/EVP_PKEY_CTX_get0_pkey.html" => [ "doc/man3/EVP_PKEY_CTX_get0_pkey.pod" ], + "doc/html/man3/EVP_PKEY_CTX_get_algor.html" => [ + "doc/man3/EVP_PKEY_CTX_get_algor.pod" + ], "doc/html/man3/EVP_PKEY_CTX_new.html" => [ "doc/man3/EVP_PKEY_CTX_new.pod" ], @@ -11811,6 +13771,12 @@ our %unified_info = ( "doc/html/man3/EVP_SIGNATURE.html" => [ "doc/man3/EVP_SIGNATURE.pod" ], + "doc/html/man3/EVP_SKEY.html" => [ + "doc/man3/EVP_SKEY.pod" + ], + "doc/html/man3/EVP_SKEYMGMT.html" => [ + "doc/man3/EVP_SKEYMGMT.pod" + ], "doc/html/man3/EVP_SealInit.html" => [ "doc/man3/EVP_SealInit.pod" ], @@ -11898,6 +13864,9 @@ our %unified_info = ( "doc/html/man3/EVP_whirlpool.html" => [ "doc/man3/EVP_whirlpool.pod" ], + "doc/html/man3/GENERAL_NAME.html" => [ + "doc/man3/GENERAL_NAME.pod" + ], "doc/html/man3/HMAC.html" => [ "doc/man3/HMAC.pod" ], @@ -11970,9 +13939,15 @@ our %unified_info = ( "doc/html/man3/OPENSSL_load_builtin_modules.html" => [ "doc/man3/OPENSSL_load_builtin_modules.pod" ], + "doc/html/man3/OPENSSL_load_u16_le.html" => [ + "doc/man3/OPENSSL_load_u16_le.pod" + ], "doc/html/man3/OPENSSL_malloc.html" => [ "doc/man3/OPENSSL_malloc.pod" ], + "doc/html/man3/OPENSSL_riscvcap.html" => [ + "doc/man3/OPENSSL_riscvcap.pod" + ], "doc/html/man3/OPENSSL_s390xcap.html" => [ "doc/man3/OPENSSL_s390xcap.pod" ], @@ -11988,12 +13963,18 @@ our %unified_info = ( "doc/html/man3/OSSL_CALLBACK.html" => [ "doc/man3/OSSL_CALLBACK.pod" ], + "doc/html/man3/OSSL_CMP_ATAV_set0.html" => [ + "doc/man3/OSSL_CMP_ATAV_set0.pod" + ], "doc/html/man3/OSSL_CMP_CTX_new.html" => [ "doc/man3/OSSL_CMP_CTX_new.pod" ], "doc/html/man3/OSSL_CMP_HDR_get0_transactionID.html" => [ "doc/man3/OSSL_CMP_HDR_get0_transactionID.pod" ], + "doc/html/man3/OSSL_CMP_ITAV_new_caCerts.html" => [ + "doc/man3/OSSL_CMP_ITAV_new_caCerts.pod" + ], "doc/html/man3/OSSL_CMP_ITAV_set0.html" => [ "doc/man3/OSSL_CMP_ITAV_set0.pod" ], @@ -12063,9 +14044,18 @@ our %unified_info = ( "doc/html/man3/OSSL_ENCODER_to_bio.html" => [ "doc/man3/OSSL_ENCODER_to_bio.pod" ], + "doc/html/man3/OSSL_ERR_STATE_save.html" => [ + "doc/man3/OSSL_ERR_STATE_save.pod" + ], "doc/html/man3/OSSL_ESS_check_signing_certs.html" => [ "doc/man3/OSSL_ESS_check_signing_certs.pod" ], + "doc/html/man3/OSSL_GENERAL_NAMES_print.html" => [ + "doc/man3/OSSL_GENERAL_NAMES_print.pod" + ], + "doc/html/man3/OSSL_HPKE_CTX_new.html" => [ + "doc/man3/OSSL_HPKE_CTX_new.pod" + ], "doc/html/man3/OSSL_HTTP_REQ_CTX.html" => [ "doc/man3/OSSL_HTTP_REQ_CTX.pod" ], @@ -12075,12 +14065,24 @@ our %unified_info = ( "doc/html/man3/OSSL_HTTP_transfer.html" => [ "doc/man3/OSSL_HTTP_transfer.pod" ], + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX.html" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX.pod" + ], + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX_print.html" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX_print.pod" + ], + "doc/html/man3/OSSL_INDICATOR_set_callback.html" => [ + "doc/man3/OSSL_INDICATOR_set_callback.pod" + ], "doc/html/man3/OSSL_ITEM.html" => [ "doc/man3/OSSL_ITEM.pod" ], "doc/html/man3/OSSL_LIB_CTX.html" => [ "doc/man3/OSSL_LIB_CTX.pod" ], + "doc/html/man3/OSSL_LIB_CTX_set_conf_diagnostics.html" => [ + "doc/man3/OSSL_LIB_CTX_set_conf_diagnostics.pod" + ], "doc/html/man3/OSSL_PARAM.html" => [ "doc/man3/OSSL_PARAM.pod" ], @@ -12096,9 +14098,15 @@ our %unified_info = ( "doc/html/man3/OSSL_PARAM_int.html" => [ "doc/man3/OSSL_PARAM_int.pod" ], + "doc/html/man3/OSSL_PARAM_print_to_bio.html" => [ + "doc/man3/OSSL_PARAM_print_to_bio.pod" + ], "doc/html/man3/OSSL_PROVIDER.html" => [ "doc/man3/OSSL_PROVIDER.pod" ], + "doc/html/man3/OSSL_QUIC_client_method.html" => [ + "doc/man3/OSSL_QUIC_client_method.pod" + ], "doc/html/man3/OSSL_SELF_TEST_new.html" => [ "doc/man3/OSSL_SELF_TEST_new.pod" ], @@ -12123,6 +14131,9 @@ our %unified_info = ( "doc/html/man3/OSSL_STORE_open.html" => [ "doc/man3/OSSL_STORE_open.pod" ], + "doc/html/man3/OSSL_sleep.html" => [ + "doc/man3/OSSL_sleep.pod" + ], "doc/html/man3/OSSL_trace_enabled.html" => [ "doc/man3/OSSL_trace_enabled.pod" ], @@ -12138,6 +14149,9 @@ our %unified_info = ( "doc/html/man3/OpenSSL_version.html" => [ "doc/man3/OpenSSL_version.pod" ], + "doc/html/man3/PBMAC1_get1_pbkdf2_param.html" => [ + "doc/man3/PBMAC1_get1_pbkdf2_param.pod" + ], "doc/html/man3/PEM_X509_INFO_read_bio_ex.html" => [ "doc/man3/PEM_X509_INFO_read_bio_ex.pod" ], @@ -12174,6 +14188,9 @@ our %unified_info = ( "doc/html/man3/PKCS12_SAFEBAG_get1_cert.html" => [ "doc/man3/PKCS12_SAFEBAG_get1_cert.pod" ], + "doc/html/man3/PKCS12_SAFEBAG_set0_attrs.html" => [ + "doc/man3/PKCS12_SAFEBAG_set0_attrs.pod" + ], "doc/html/man3/PKCS12_add1_attr_by_NID.html" => [ "doc/man3/PKCS12_add1_attr_by_NID.pod" ], @@ -12447,6 +14464,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set0_CA_list.html" => [ "doc/man3/SSL_CTX_set0_CA_list.pod" ], + "doc/html/man3/SSL_CTX_set1_cert_comp_preference.html" => [ + "doc/man3/SSL_CTX_set1_cert_comp_preference.pod" + ], "doc/html/man3/SSL_CTX_set1_curves.html" => [ "doc/man3/SSL_CTX_set1_curves.pod" ], @@ -12486,6 +14506,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_default_passwd_cb.html" => [ "doc/man3/SSL_CTX_set_default_passwd_cb.pod" ], + "doc/html/man3/SSL_CTX_set_domain_flags.html" => [ + "doc/man3/SSL_CTX_set_domain_flags.pod" + ], "doc/html/man3/SSL_CTX_set_generate_session_id.html" => [ "doc/man3/SSL_CTX_set_generate_session_id.pod" ], @@ -12507,6 +14530,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_msg_callback.html" => [ "doc/man3/SSL_CTX_set_msg_callback.pod" ], + "doc/html/man3/SSL_CTX_set_new_pending_conn_cb.html" => [ + "doc/man3/SSL_CTX_set_new_pending_conn_cb.pod" + ], "doc/html/man3/SSL_CTX_set_num_tickets.html" => [ "doc/man3/SSL_CTX_set_num_tickets.pod" ], @@ -12621,6 +14647,9 @@ our %unified_info = ( "doc/html/man3/SSL_accept.html" => [ "doc/man3/SSL_accept.pod" ], + "doc/html/man3/SSL_accept_stream.html" => [ + "doc/man3/SSL_accept_stream.pod" + ], "doc/html/man3/SSL_alert_type_string.html" => [ "doc/man3/SSL_alert_type_string.pod" ], @@ -12648,9 +14677,21 @@ our %unified_info = ( "doc/html/man3/SSL_free.html" => [ "doc/man3/SSL_free.pod" ], + "doc/html/man3/SSL_get0_connection.html" => [ + "doc/man3/SSL_get0_connection.pod" + ], + "doc/html/man3/SSL_get0_group_name.html" => [ + "doc/man3/SSL_get0_group_name.pod" + ], + "doc/html/man3/SSL_get0_peer_rpk.html" => [ + "doc/man3/SSL_get0_peer_rpk.pod" + ], "doc/html/man3/SSL_get0_peer_scts.html" => [ "doc/man3/SSL_get0_peer_scts.pod" ], + "doc/html/man3/SSL_get1_builtin_sigalgs.html" => [ + "doc/man3/SSL_get1_builtin_sigalgs.pod" + ], "doc/html/man3/SSL_get_SSL_CTX.html" => [ "doc/man3/SSL_get_SSL_CTX.pod" ], @@ -12666,6 +14707,9 @@ our %unified_info = ( "doc/html/man3/SSL_get_client_random.html" => [ "doc/man3/SSL_get_client_random.pod" ], + "doc/html/man3/SSL_get_conn_close_info.html" => [ + "doc/man3/SSL_get_conn_close_info.pod" + ], "doc/html/man3/SSL_get_current_cipher.html" => [ "doc/man3/SSL_get_current_cipher.pod" ], @@ -12675,12 +14719,18 @@ our %unified_info = ( "doc/html/man3/SSL_get_error.html" => [ "doc/man3/SSL_get_error.pod" ], + "doc/html/man3/SSL_get_event_timeout.html" => [ + "doc/man3/SSL_get_event_timeout.pod" + ], "doc/html/man3/SSL_get_extms_support.html" => [ "doc/man3/SSL_get_extms_support.pod" ], "doc/html/man3/SSL_get_fd.html" => [ "doc/man3/SSL_get_fd.pod" ], + "doc/html/man3/SSL_get_handshake_rtt.html" => [ + "doc/man3/SSL_get_handshake_rtt.pod" + ], "doc/html/man3/SSL_get_peer_cert_chain.html" => [ "doc/man3/SSL_get_peer_cert_chain.pod" ], @@ -12699,12 +14749,24 @@ our %unified_info = ( "doc/html/man3/SSL_get_rbio.html" => [ "doc/man3/SSL_get_rbio.pod" ], + "doc/html/man3/SSL_get_rpoll_descriptor.html" => [ + "doc/man3/SSL_get_rpoll_descriptor.pod" + ], "doc/html/man3/SSL_get_session.html" => [ "doc/man3/SSL_get_session.pod" ], "doc/html/man3/SSL_get_shared_sigalgs.html" => [ "doc/man3/SSL_get_shared_sigalgs.pod" ], + "doc/html/man3/SSL_get_stream_id.html" => [ + "doc/man3/SSL_get_stream_id.pod" + ], + "doc/html/man3/SSL_get_stream_read_state.html" => [ + "doc/man3/SSL_get_stream_read_state.pod" + ], + "doc/html/man3/SSL_get_value_uint.html" => [ + "doc/man3/SSL_get_value_uint.pod" + ], "doc/html/man3/SSL_get_verify_result.html" => [ "doc/man3/SSL_get_verify_result.pod" ], @@ -12714,9 +14776,15 @@ our %unified_info = ( "doc/html/man3/SSL_group_to_name.html" => [ "doc/man3/SSL_group_to_name.pod" ], + "doc/html/man3/SSL_handle_events.html" => [ + "doc/man3/SSL_handle_events.pod" + ], "doc/html/man3/SSL_in_init.html" => [ "doc/man3/SSL_in_init.pod" ], + "doc/html/man3/SSL_inject_net_dgram.html" => [ + "doc/man3/SSL_inject_net_dgram.pod" + ], "doc/html/man3/SSL_key_update.html" => [ "doc/man3/SSL_key_update.pod" ], @@ -12729,9 +14797,21 @@ our %unified_info = ( "doc/html/man3/SSL_new.html" => [ "doc/man3/SSL_new.pod" ], + "doc/html/man3/SSL_new_domain.html" => [ + "doc/man3/SSL_new_domain.pod" + ], + "doc/html/man3/SSL_new_listener.html" => [ + "doc/man3/SSL_new_listener.pod" + ], + "doc/html/man3/SSL_new_stream.html" => [ + "doc/man3/SSL_new_stream.pod" + ], "doc/html/man3/SSL_pending.html" => [ "doc/man3/SSL_pending.pod" ], + "doc/html/man3/SSL_poll.html" => [ + "doc/man3/SSL_poll.pod" + ], "doc/html/man3/SSL_read.html" => [ "doc/man3/SSL_read.pod" ], @@ -12747,24 +14827,45 @@ our %unified_info = ( "doc/html/man3/SSL_set1_host.html" => [ "doc/man3/SSL_set1_host.pod" ], + "doc/html/man3/SSL_set1_initial_peer_addr.html" => [ + "doc/man3/SSL_set1_initial_peer_addr.pod" + ], + "doc/html/man3/SSL_set1_server_cert_type.html" => [ + "doc/man3/SSL_set1_server_cert_type.pod" + ], "doc/html/man3/SSL_set_async_callback.html" => [ "doc/man3/SSL_set_async_callback.pod" ], "doc/html/man3/SSL_set_bio.html" => [ "doc/man3/SSL_set_bio.pod" ], + "doc/html/man3/SSL_set_blocking_mode.html" => [ + "doc/man3/SSL_set_blocking_mode.pod" + ], "doc/html/man3/SSL_set_connect_state.html" => [ "doc/man3/SSL_set_connect_state.pod" ], + "doc/html/man3/SSL_set_default_stream_mode.html" => [ + "doc/man3/SSL_set_default_stream_mode.pod" + ], "doc/html/man3/SSL_set_fd.html" => [ "doc/man3/SSL_set_fd.pod" ], + "doc/html/man3/SSL_set_incoming_stream_policy.html" => [ + "doc/man3/SSL_set_incoming_stream_policy.pod" + ], + "doc/html/man3/SSL_set_quic_tls_cbs.html" => [ + "doc/man3/SSL_set_quic_tls_cbs.pod" + ], "doc/html/man3/SSL_set_retry_verify.html" => [ "doc/man3/SSL_set_retry_verify.pod" ], "doc/html/man3/SSL_set_session.html" => [ "doc/man3/SSL_set_session.pod" ], + "doc/html/man3/SSL_set_session_secret_cb.html" => [ + "doc/man3/SSL_set_session_secret_cb.pod" + ], "doc/html/man3/SSL_set_shutdown.html" => [ "doc/man3/SSL_set_shutdown.pod" ], @@ -12777,6 +14878,12 @@ our %unified_info = ( "doc/html/man3/SSL_state_string.html" => [ "doc/man3/SSL_state_string.pod" ], + "doc/html/man3/SSL_stream_conclude.html" => [ + "doc/man3/SSL_stream_conclude.pod" + ], + "doc/html/man3/SSL_stream_reset.html" => [ + "doc/man3/SSL_stream_reset.pod" + ], "doc/html/man3/SSL_want.html" => [ "doc/man3/SSL_want.pod" ], @@ -12786,8 +14893,8 @@ our %unified_info = ( "doc/html/man3/TS_RESP_CTX_new.html" => [ "doc/man3/TS_RESP_CTX_new.pod" ], - "doc/html/man3/TS_VERIFY_CTX_set_certs.html" => [ - "doc/man3/TS_VERIFY_CTX_set_certs.pod" + "doc/html/man3/TS_VERIFY_CTX.html" => [ + "doc/man3/TS_VERIFY_CTX.pod" ], "doc/html/man3/UI_STRING.html" => [ "doc/man3/UI_STRING.pod" @@ -12807,6 +14914,21 @@ our %unified_info = ( "doc/html/man3/X509V3_set_ctx.html" => [ "doc/man3/X509V3_set_ctx.pod" ], + "doc/html/man3/X509_ACERT_add1_attr.html" => [ + "doc/man3/X509_ACERT_add1_attr.pod" + ], + "doc/html/man3/X509_ACERT_add_attr_nconf.html" => [ + "doc/man3/X509_ACERT_add_attr_nconf.pod" + ], + "doc/html/man3/X509_ACERT_get0_holder_baseCertId.html" => [ + "doc/man3/X509_ACERT_get0_holder_baseCertId.pod" + ], + "doc/html/man3/X509_ACERT_get_attr.html" => [ + "doc/man3/X509_ACERT_get_attr.pod" + ], + "doc/html/man3/X509_ACERT_print_ex.html" => [ + "doc/man3/X509_ACERT_print_ex.pod" + ], "doc/html/man3/X509_ALGOR_dup.html" => [ "doc/man3/X509_ALGOR_dup.pod" ], @@ -12855,6 +14977,9 @@ our %unified_info = ( "doc/html/man3/X509_SIG_get0.html" => [ "doc/man3/X509_SIG_get0.pod" ], + "doc/html/man3/X509_STORE_CTX_get_by_subject.html" => [ + "doc/man3/X509_STORE_CTX_get_by_subject.pod" + ], "doc/html/man3/X509_STORE_CTX_get_error.html" => [ "doc/man3/X509_STORE_CTX_get_error.pod" ], @@ -12921,6 +15046,9 @@ our %unified_info = ( "doc/html/man3/X509_get0_uids.html" => [ "doc/man3/X509_get0_uids.pod" ], + "doc/html/man3/X509_get_default_cert_file.html" => [ + "doc/man3/X509_get_default_cert_file.pod" + ], "doc/html/man3/X509_get_extension_flags.html" => [ "doc/man3/X509_get_extension_flags.pod" ], @@ -13044,9 +15172,15 @@ our %unified_info = ( "doc/html/man7/EVP_CIPHER-SM4.html" => [ "doc/man7/EVP_CIPHER-SM4.pod" ], + "doc/html/man7/EVP_KDF-ARGON2.html" => [ + "doc/man7/EVP_KDF-ARGON2.pod" + ], "doc/html/man7/EVP_KDF-HKDF.html" => [ "doc/man7/EVP_KDF-HKDF.pod" ], + "doc/html/man7/EVP_KDF-HMAC-DRBG.html" => [ + "doc/man7/EVP_KDF-HMAC-DRBG.pod" + ], "doc/html/man7/EVP_KDF-KB.html" => [ "doc/man7/EVP_KDF-KB.pod" ], @@ -13062,6 +15196,9 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-PKCS12KDF.html" => [ "doc/man7/EVP_KDF-PKCS12KDF.pod" ], + "doc/html/man7/EVP_KDF-PVKKDF.html" => [ + "doc/man7/EVP_KDF-PVKKDF.pod" + ], "doc/html/man7/EVP_KDF-SCRYPT.html" => [ "doc/man7/EVP_KDF-SCRYPT.pod" ], @@ -13086,9 +15223,18 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-X963.html" => [ "doc/man7/EVP_KDF-X963.pod" ], + "doc/html/man7/EVP_KEM-EC.html" => [ + "doc/man7/EVP_KEM-EC.pod" + ], + "doc/html/man7/EVP_KEM-ML-KEM.html" => [ + "doc/man7/EVP_KEM-ML-KEM.pod" + ], "doc/html/man7/EVP_KEM-RSA.html" => [ "doc/man7/EVP_KEM-RSA.pod" ], + "doc/html/man7/EVP_KEM-X25519.html" => [ + "doc/man7/EVP_KEM-X25519.pod" + ], "doc/html/man7/EVP_KEYEXCH-DH.html" => [ "doc/man7/EVP_KEYEXCH-DH.pod" ], @@ -13122,6 +15268,9 @@ our %unified_info = ( "doc/html/man7/EVP_MD-BLAKE2.html" => [ "doc/man7/EVP_MD-BLAKE2.pod" ], + "doc/html/man7/EVP_MD-KECCAK.html" => [ + "doc/man7/EVP_MD-KECCAK.pod" + ], "doc/html/man7/EVP_MD-MD2.html" => [ "doc/man7/EVP_MD-MD2.pod" ], @@ -13179,15 +15328,27 @@ our %unified_info = ( "doc/html/man7/EVP_PKEY-HMAC.html" => [ "doc/man7/EVP_PKEY-HMAC.pod" ], + "doc/html/man7/EVP_PKEY-ML-DSA.html" => [ + "doc/man7/EVP_PKEY-ML-DSA.pod" + ], + "doc/html/man7/EVP_PKEY-ML-KEM.html" => [ + "doc/man7/EVP_PKEY-ML-KEM.pod" + ], "doc/html/man7/EVP_PKEY-RSA.html" => [ "doc/man7/EVP_PKEY-RSA.pod" ], + "doc/html/man7/EVP_PKEY-SLH-DSA.html" => [ + "doc/man7/EVP_PKEY-SLH-DSA.pod" + ], "doc/html/man7/EVP_PKEY-SM2.html" => [ "doc/man7/EVP_PKEY-SM2.pod" ], "doc/html/man7/EVP_PKEY-X25519.html" => [ "doc/man7/EVP_PKEY-X25519.pod" ], + "doc/html/man7/EVP_RAND-CRNG-TEST.html" => [ + "doc/man7/EVP_RAND-CRNG-TEST.pod" + ], "doc/html/man7/EVP_RAND-CTR-DRBG.html" => [ "doc/man7/EVP_RAND-CTR-DRBG.pod" ], @@ -13197,6 +15358,9 @@ our %unified_info = ( "doc/html/man7/EVP_RAND-HMAC-DRBG.html" => [ "doc/man7/EVP_RAND-HMAC-DRBG.pod" ], + "doc/html/man7/EVP_RAND-JITTER.html" => [ + "doc/man7/EVP_RAND-JITTER.pod" + ], "doc/html/man7/EVP_RAND-SEED-SRC.html" => [ "doc/man7/EVP_RAND-SEED-SRC.pod" ], @@ -13218,9 +15382,15 @@ our %unified_info = ( "doc/html/man7/EVP_SIGNATURE-HMAC.html" => [ "doc/man7/EVP_SIGNATURE-HMAC.pod" ], + "doc/html/man7/EVP_SIGNATURE-ML-DSA.html" => [ + "doc/man7/EVP_SIGNATURE-ML-DSA.pod" + ], "doc/html/man7/EVP_SIGNATURE-RSA.html" => [ "doc/man7/EVP_SIGNATURE-RSA.pod" ], + "doc/html/man7/EVP_SIGNATURE-SLH-DSA.html" => [ + "doc/man7/EVP_SIGNATURE-SLH-DSA.pod" + ], "doc/html/man7/OSSL_PROVIDER-FIPS.html" => [ "doc/man7/OSSL_PROVIDER-FIPS.pod" ], @@ -13236,6 +15406,9 @@ our %unified_info = ( "doc/html/man7/OSSL_PROVIDER-null.html" => [ "doc/man7/OSSL_PROVIDER-null.pod" ], + "doc/html/man7/OSSL_STORE-winstore.html" => [ + "doc/man7/OSSL_STORE-winstore.pod" + ], "doc/html/man7/RAND.html" => [ "doc/man7/RAND.pod" ], @@ -13248,9 +15421,6 @@ our %unified_info = ( "doc/html/man7/bio.html" => [ "doc/man7/bio.pod" ], - "doc/html/man7/crypto.html" => [ - "doc/man7/crypto.pod" - ], "doc/html/man7/ct.html" => [ "doc/man7/ct.pod" ], @@ -13281,9 +15451,6 @@ our %unified_info = ( "doc/html/man7/life_cycle-rand.html" => [ "doc/man7/life_cycle-rand.pod" ], - "doc/html/man7/migration_guide.html" => [ - "doc/man7/migration_guide.pod" - ], "doc/html/man7/openssl-core.h.html" => [ "doc/man7/openssl-core.h.pod" ], @@ -13299,12 +15466,66 @@ our %unified_info = ( "doc/html/man7/openssl-glossary.html" => [ "doc/man7/openssl-glossary.pod" ], + "doc/html/man7/openssl-qlog.html" => [ + "doc/man7/openssl-qlog.pod" + ], + "doc/html/man7/openssl-quic-concurrency.html" => [ + "doc/man7/openssl-quic-concurrency.pod" + ], + "doc/html/man7/openssl-quic.html" => [ + "doc/man7/openssl-quic.pod" + ], "doc/html/man7/openssl-threads.html" => [ "doc/man7/openssl-threads.pod" ], "doc/html/man7/openssl_user_macros.html" => [ "doc/man7/openssl_user_macros.pod" ], + "doc/html/man7/ossl-guide-introduction.html" => [ + "doc/man7/ossl-guide-introduction.pod" + ], + "doc/html/man7/ossl-guide-libcrypto-introduction.html" => [ + "doc/man7/ossl-guide-libcrypto-introduction.pod" + ], + "doc/html/man7/ossl-guide-libraries-introduction.html" => [ + "doc/man7/ossl-guide-libraries-introduction.pod" + ], + "doc/html/man7/ossl-guide-libssl-introduction.html" => [ + "doc/man7/ossl-guide-libssl-introduction.pod" + ], + "doc/html/man7/ossl-guide-migration.html" => [ + "doc/man7/ossl-guide-migration.pod" + ], + "doc/html/man7/ossl-guide-quic-client-block.html" => [ + "doc/man7/ossl-guide-quic-client-block.pod" + ], + "doc/html/man7/ossl-guide-quic-client-non-block.html" => [ + "doc/man7/ossl-guide-quic-client-non-block.pod" + ], + "doc/html/man7/ossl-guide-quic-introduction.html" => [ + "doc/man7/ossl-guide-quic-introduction.pod" + ], + "doc/html/man7/ossl-guide-quic-multi-stream.html" => [ + "doc/man7/ossl-guide-quic-multi-stream.pod" + ], + "doc/html/man7/ossl-guide-quic-server-block.html" => [ + "doc/man7/ossl-guide-quic-server-block.pod" + ], + "doc/html/man7/ossl-guide-quic-server-non-block.html" => [ + "doc/man7/ossl-guide-quic-server-non-block.pod" + ], + "doc/html/man7/ossl-guide-tls-client-block.html" => [ + "doc/man7/ossl-guide-tls-client-block.pod" + ], + "doc/html/man7/ossl-guide-tls-client-non-block.html" => [ + "doc/man7/ossl-guide-tls-client-non-block.pod" + ], + "doc/html/man7/ossl-guide-tls-introduction.html" => [ + "doc/man7/ossl-guide-tls-introduction.pod" + ], + "doc/html/man7/ossl-guide-tls-server-block.html" => [ + "doc/man7/ossl-guide-tls-server-block.pod" + ], "doc/html/man7/ossl_store-file.html" => [ "doc/man7/ossl_store-file.pod" ], @@ -13359,6 +15580,9 @@ our %unified_info = ( "doc/html/man7/provider-signature.html" => [ "doc/man7/provider-signature.pod" ], + "doc/html/man7/provider-skeymgmt.html" => [ + "doc/man7/provider-skeymgmt.pod" + ], "doc/html/man7/provider-storemgmt.html" => [ "doc/man7/provider-storemgmt.pod" ], @@ -13368,9 +15592,6 @@ our %unified_info = ( "doc/html/man7/proxy-certificates.html" => [ "doc/man7/proxy-certificates.pod" ], - "doc/html/man7/ssl.html" => [ - "doc/man7/ssl.pod" - ], "doc/html/man7/x509.html" => [ "doc/man7/x509.pod" ], @@ -13518,6 +15739,9 @@ our %unified_info = ( "doc/man/man1/openssl-sess_id.1" => [ "doc/man1/openssl-sess_id.pod" ], + "doc/man/man1/openssl-skeyutl.1" => [ + "doc/man1/openssl-skeyutl.pod" + ], "doc/man/man1/openssl-smime.1" => [ "doc/man1/openssl-smime.pod" ], @@ -13659,6 +15883,9 @@ our %unified_info = ( "doc/man/man3/BIO_get_ex_new_index.3" => [ "doc/man3/BIO_get_ex_new_index.pod" ], + "doc/man/man3/BIO_get_rpoll_descriptor.3" => [ + "doc/man3/BIO_get_rpoll_descriptor.pod" + ], "doc/man/man3/BIO_meth_new.3" => [ "doc/man3/BIO_meth_new.pod" ], @@ -13695,6 +15922,9 @@ our %unified_info = ( "doc/man/man3/BIO_s_datagram.3" => [ "doc/man3/BIO_s_datagram.pod" ], + "doc/man/man3/BIO_s_dgram_pair.3" => [ + "doc/man3/BIO_s_dgram_pair.pod" + ], "doc/man/man3/BIO_s_fd.3" => [ "doc/man3/BIO_s_fd.pod" ], @@ -13710,6 +15940,9 @@ our %unified_info = ( "doc/man/man3/BIO_s_socket.3" => [ "doc/man3/BIO_s_socket.pod" ], + "doc/man/man3/BIO_sendmmsg.3" => [ + "doc/man3/BIO_sendmmsg.pod" + ], "doc/man/man3/BIO_set_callback.3" => [ "doc/man3/BIO_set_callback.pod" ], @@ -13782,6 +16015,9 @@ our %unified_info = ( "doc/man/man3/BUF_MEM_new.3" => [ "doc/man3/BUF_MEM_new.pod" ], + "doc/man/man3/CMAC_CTX.3" => [ + "doc/man3/CMAC_CTX.pod" + ], "doc/man/man3/CMS_EncryptedData_decrypt.3" => [ "doc/man3/CMS_EncryptedData_decrypt.pod" ], @@ -13848,6 +16084,9 @@ our %unified_info = ( "doc/man/man3/CMS_verify_receipt.3" => [ "doc/man3/CMS_verify_receipt.pod" ], + "doc/man/man3/COMP_CTX_new.3" => [ + "doc/man3/COMP_CTX_new.pod" + ], "doc/man/man3/CONF_modules_free.3" => [ "doc/man3/CONF_modules_free.pod" ], @@ -13947,6 +16186,12 @@ our %unified_info = ( "doc/man/man3/DTLS_set_timer_cb.3" => [ "doc/man3/DTLS_set_timer_cb.pod" ], + "doc/man/man3/DTLSv1_get_timeout.3" => [ + "doc/man3/DTLSv1_get_timeout.pod" + ], + "doc/man/man3/DTLSv1_handle_timeout.3" => [ + "doc/man3/DTLSv1_handle_timeout.pod" + ], "doc/man/man3/DTLSv1_listen.3" => [ "doc/man3/DTLSv1_listen.pod" ], @@ -14085,6 +16330,9 @@ our %unified_info = ( "doc/man/man3/EVP_PKEY_CTX_get0_pkey.3" => [ "doc/man3/EVP_PKEY_CTX_get0_pkey.pod" ], + "doc/man/man3/EVP_PKEY_CTX_get_algor.3" => [ + "doc/man3/EVP_PKEY_CTX_get_algor.pod" + ], "doc/man/man3/EVP_PKEY_CTX_new.3" => [ "doc/man3/EVP_PKEY_CTX_new.pod" ], @@ -14202,6 +16450,12 @@ our %unified_info = ( "doc/man/man3/EVP_SIGNATURE.3" => [ "doc/man3/EVP_SIGNATURE.pod" ], + "doc/man/man3/EVP_SKEY.3" => [ + "doc/man3/EVP_SKEY.pod" + ], + "doc/man/man3/EVP_SKEYMGMT.3" => [ + "doc/man3/EVP_SKEYMGMT.pod" + ], "doc/man/man3/EVP_SealInit.3" => [ "doc/man3/EVP_SealInit.pod" ], @@ -14289,6 +16543,9 @@ our %unified_info = ( "doc/man/man3/EVP_whirlpool.3" => [ "doc/man3/EVP_whirlpool.pod" ], + "doc/man/man3/GENERAL_NAME.3" => [ + "doc/man3/GENERAL_NAME.pod" + ], "doc/man/man3/HMAC.3" => [ "doc/man3/HMAC.pod" ], @@ -14361,9 +16618,15 @@ our %unified_info = ( "doc/man/man3/OPENSSL_load_builtin_modules.3" => [ "doc/man3/OPENSSL_load_builtin_modules.pod" ], + "doc/man/man3/OPENSSL_load_u16_le.3" => [ + "doc/man3/OPENSSL_load_u16_le.pod" + ], "doc/man/man3/OPENSSL_malloc.3" => [ "doc/man3/OPENSSL_malloc.pod" ], + "doc/man/man3/OPENSSL_riscvcap.3" => [ + "doc/man3/OPENSSL_riscvcap.pod" + ], "doc/man/man3/OPENSSL_s390xcap.3" => [ "doc/man3/OPENSSL_s390xcap.pod" ], @@ -14379,12 +16642,18 @@ our %unified_info = ( "doc/man/man3/OSSL_CALLBACK.3" => [ "doc/man3/OSSL_CALLBACK.pod" ], + "doc/man/man3/OSSL_CMP_ATAV_set0.3" => [ + "doc/man3/OSSL_CMP_ATAV_set0.pod" + ], "doc/man/man3/OSSL_CMP_CTX_new.3" => [ "doc/man3/OSSL_CMP_CTX_new.pod" ], "doc/man/man3/OSSL_CMP_HDR_get0_transactionID.3" => [ "doc/man3/OSSL_CMP_HDR_get0_transactionID.pod" ], + "doc/man/man3/OSSL_CMP_ITAV_new_caCerts.3" => [ + "doc/man3/OSSL_CMP_ITAV_new_caCerts.pod" + ], "doc/man/man3/OSSL_CMP_ITAV_set0.3" => [ "doc/man3/OSSL_CMP_ITAV_set0.pod" ], @@ -14454,9 +16723,18 @@ our %unified_info = ( "doc/man/man3/OSSL_ENCODER_to_bio.3" => [ "doc/man3/OSSL_ENCODER_to_bio.pod" ], + "doc/man/man3/OSSL_ERR_STATE_save.3" => [ + "doc/man3/OSSL_ERR_STATE_save.pod" + ], "doc/man/man3/OSSL_ESS_check_signing_certs.3" => [ "doc/man3/OSSL_ESS_check_signing_certs.pod" ], + "doc/man/man3/OSSL_GENERAL_NAMES_print.3" => [ + "doc/man3/OSSL_GENERAL_NAMES_print.pod" + ], + "doc/man/man3/OSSL_HPKE_CTX_new.3" => [ + "doc/man3/OSSL_HPKE_CTX_new.pod" + ], "doc/man/man3/OSSL_HTTP_REQ_CTX.3" => [ "doc/man3/OSSL_HTTP_REQ_CTX.pod" ], @@ -14466,12 +16744,24 @@ our %unified_info = ( "doc/man/man3/OSSL_HTTP_transfer.3" => [ "doc/man3/OSSL_HTTP_transfer.pod" ], + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX.3" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX.pod" + ], + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX_print.3" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX_print.pod" + ], + "doc/man/man3/OSSL_INDICATOR_set_callback.3" => [ + "doc/man3/OSSL_INDICATOR_set_callback.pod" + ], "doc/man/man3/OSSL_ITEM.3" => [ "doc/man3/OSSL_ITEM.pod" ], "doc/man/man3/OSSL_LIB_CTX.3" => [ "doc/man3/OSSL_LIB_CTX.pod" ], + "doc/man/man3/OSSL_LIB_CTX_set_conf_diagnostics.3" => [ + "doc/man3/OSSL_LIB_CTX_set_conf_diagnostics.pod" + ], "doc/man/man3/OSSL_PARAM.3" => [ "doc/man3/OSSL_PARAM.pod" ], @@ -14487,9 +16777,15 @@ our %unified_info = ( "doc/man/man3/OSSL_PARAM_int.3" => [ "doc/man3/OSSL_PARAM_int.pod" ], + "doc/man/man3/OSSL_PARAM_print_to_bio.3" => [ + "doc/man3/OSSL_PARAM_print_to_bio.pod" + ], "doc/man/man3/OSSL_PROVIDER.3" => [ "doc/man3/OSSL_PROVIDER.pod" ], + "doc/man/man3/OSSL_QUIC_client_method.3" => [ + "doc/man3/OSSL_QUIC_client_method.pod" + ], "doc/man/man3/OSSL_SELF_TEST_new.3" => [ "doc/man3/OSSL_SELF_TEST_new.pod" ], @@ -14514,6 +16810,9 @@ our %unified_info = ( "doc/man/man3/OSSL_STORE_open.3" => [ "doc/man3/OSSL_STORE_open.pod" ], + "doc/man/man3/OSSL_sleep.3" => [ + "doc/man3/OSSL_sleep.pod" + ], "doc/man/man3/OSSL_trace_enabled.3" => [ "doc/man3/OSSL_trace_enabled.pod" ], @@ -14529,6 +16828,9 @@ our %unified_info = ( "doc/man/man3/OpenSSL_version.3" => [ "doc/man3/OpenSSL_version.pod" ], + "doc/man/man3/PBMAC1_get1_pbkdf2_param.3" => [ + "doc/man3/PBMAC1_get1_pbkdf2_param.pod" + ], "doc/man/man3/PEM_X509_INFO_read_bio_ex.3" => [ "doc/man3/PEM_X509_INFO_read_bio_ex.pod" ], @@ -14565,6 +16867,9 @@ our %unified_info = ( "doc/man/man3/PKCS12_SAFEBAG_get1_cert.3" => [ "doc/man3/PKCS12_SAFEBAG_get1_cert.pod" ], + "doc/man/man3/PKCS12_SAFEBAG_set0_attrs.3" => [ + "doc/man3/PKCS12_SAFEBAG_set0_attrs.pod" + ], "doc/man/man3/PKCS12_add1_attr_by_NID.3" => [ "doc/man3/PKCS12_add1_attr_by_NID.pod" ], @@ -14838,6 +17143,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set0_CA_list.3" => [ "doc/man3/SSL_CTX_set0_CA_list.pod" ], + "doc/man/man3/SSL_CTX_set1_cert_comp_preference.3" => [ + "doc/man3/SSL_CTX_set1_cert_comp_preference.pod" + ], "doc/man/man3/SSL_CTX_set1_curves.3" => [ "doc/man3/SSL_CTX_set1_curves.pod" ], @@ -14877,6 +17185,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_default_passwd_cb.3" => [ "doc/man3/SSL_CTX_set_default_passwd_cb.pod" ], + "doc/man/man3/SSL_CTX_set_domain_flags.3" => [ + "doc/man3/SSL_CTX_set_domain_flags.pod" + ], "doc/man/man3/SSL_CTX_set_generate_session_id.3" => [ "doc/man3/SSL_CTX_set_generate_session_id.pod" ], @@ -14898,6 +17209,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_msg_callback.3" => [ "doc/man3/SSL_CTX_set_msg_callback.pod" ], + "doc/man/man3/SSL_CTX_set_new_pending_conn_cb.3" => [ + "doc/man3/SSL_CTX_set_new_pending_conn_cb.pod" + ], "doc/man/man3/SSL_CTX_set_num_tickets.3" => [ "doc/man3/SSL_CTX_set_num_tickets.pod" ], @@ -15012,6 +17326,9 @@ our %unified_info = ( "doc/man/man3/SSL_accept.3" => [ "doc/man3/SSL_accept.pod" ], + "doc/man/man3/SSL_accept_stream.3" => [ + "doc/man3/SSL_accept_stream.pod" + ], "doc/man/man3/SSL_alert_type_string.3" => [ "doc/man3/SSL_alert_type_string.pod" ], @@ -15039,9 +17356,21 @@ our %unified_info = ( "doc/man/man3/SSL_free.3" => [ "doc/man3/SSL_free.pod" ], + "doc/man/man3/SSL_get0_connection.3" => [ + "doc/man3/SSL_get0_connection.pod" + ], + "doc/man/man3/SSL_get0_group_name.3" => [ + "doc/man3/SSL_get0_group_name.pod" + ], + "doc/man/man3/SSL_get0_peer_rpk.3" => [ + "doc/man3/SSL_get0_peer_rpk.pod" + ], "doc/man/man3/SSL_get0_peer_scts.3" => [ "doc/man3/SSL_get0_peer_scts.pod" ], + "doc/man/man3/SSL_get1_builtin_sigalgs.3" => [ + "doc/man3/SSL_get1_builtin_sigalgs.pod" + ], "doc/man/man3/SSL_get_SSL_CTX.3" => [ "doc/man3/SSL_get_SSL_CTX.pod" ], @@ -15057,6 +17386,9 @@ our %unified_info = ( "doc/man/man3/SSL_get_client_random.3" => [ "doc/man3/SSL_get_client_random.pod" ], + "doc/man/man3/SSL_get_conn_close_info.3" => [ + "doc/man3/SSL_get_conn_close_info.pod" + ], "doc/man/man3/SSL_get_current_cipher.3" => [ "doc/man3/SSL_get_current_cipher.pod" ], @@ -15066,12 +17398,18 @@ our %unified_info = ( "doc/man/man3/SSL_get_error.3" => [ "doc/man3/SSL_get_error.pod" ], + "doc/man/man3/SSL_get_event_timeout.3" => [ + "doc/man3/SSL_get_event_timeout.pod" + ], "doc/man/man3/SSL_get_extms_support.3" => [ "doc/man3/SSL_get_extms_support.pod" ], "doc/man/man3/SSL_get_fd.3" => [ "doc/man3/SSL_get_fd.pod" ], + "doc/man/man3/SSL_get_handshake_rtt.3" => [ + "doc/man3/SSL_get_handshake_rtt.pod" + ], "doc/man/man3/SSL_get_peer_cert_chain.3" => [ "doc/man3/SSL_get_peer_cert_chain.pod" ], @@ -15090,12 +17428,24 @@ our %unified_info = ( "doc/man/man3/SSL_get_rbio.3" => [ "doc/man3/SSL_get_rbio.pod" ], + "doc/man/man3/SSL_get_rpoll_descriptor.3" => [ + "doc/man3/SSL_get_rpoll_descriptor.pod" + ], "doc/man/man3/SSL_get_session.3" => [ "doc/man3/SSL_get_session.pod" ], "doc/man/man3/SSL_get_shared_sigalgs.3" => [ "doc/man3/SSL_get_shared_sigalgs.pod" ], + "doc/man/man3/SSL_get_stream_id.3" => [ + "doc/man3/SSL_get_stream_id.pod" + ], + "doc/man/man3/SSL_get_stream_read_state.3" => [ + "doc/man3/SSL_get_stream_read_state.pod" + ], + "doc/man/man3/SSL_get_value_uint.3" => [ + "doc/man3/SSL_get_value_uint.pod" + ], "doc/man/man3/SSL_get_verify_result.3" => [ "doc/man3/SSL_get_verify_result.pod" ], @@ -15105,9 +17455,15 @@ our %unified_info = ( "doc/man/man3/SSL_group_to_name.3" => [ "doc/man3/SSL_group_to_name.pod" ], + "doc/man/man3/SSL_handle_events.3" => [ + "doc/man3/SSL_handle_events.pod" + ], "doc/man/man3/SSL_in_init.3" => [ "doc/man3/SSL_in_init.pod" ], + "doc/man/man3/SSL_inject_net_dgram.3" => [ + "doc/man3/SSL_inject_net_dgram.pod" + ], "doc/man/man3/SSL_key_update.3" => [ "doc/man3/SSL_key_update.pod" ], @@ -15120,9 +17476,21 @@ our %unified_info = ( "doc/man/man3/SSL_new.3" => [ "doc/man3/SSL_new.pod" ], + "doc/man/man3/SSL_new_domain.3" => [ + "doc/man3/SSL_new_domain.pod" + ], + "doc/man/man3/SSL_new_listener.3" => [ + "doc/man3/SSL_new_listener.pod" + ], + "doc/man/man3/SSL_new_stream.3" => [ + "doc/man3/SSL_new_stream.pod" + ], "doc/man/man3/SSL_pending.3" => [ "doc/man3/SSL_pending.pod" ], + "doc/man/man3/SSL_poll.3" => [ + "doc/man3/SSL_poll.pod" + ], "doc/man/man3/SSL_read.3" => [ "doc/man3/SSL_read.pod" ], @@ -15138,24 +17506,45 @@ our %unified_info = ( "doc/man/man3/SSL_set1_host.3" => [ "doc/man3/SSL_set1_host.pod" ], + "doc/man/man3/SSL_set1_initial_peer_addr.3" => [ + "doc/man3/SSL_set1_initial_peer_addr.pod" + ], + "doc/man/man3/SSL_set1_server_cert_type.3" => [ + "doc/man3/SSL_set1_server_cert_type.pod" + ], "doc/man/man3/SSL_set_async_callback.3" => [ "doc/man3/SSL_set_async_callback.pod" ], "doc/man/man3/SSL_set_bio.3" => [ "doc/man3/SSL_set_bio.pod" ], + "doc/man/man3/SSL_set_blocking_mode.3" => [ + "doc/man3/SSL_set_blocking_mode.pod" + ], "doc/man/man3/SSL_set_connect_state.3" => [ "doc/man3/SSL_set_connect_state.pod" ], + "doc/man/man3/SSL_set_default_stream_mode.3" => [ + "doc/man3/SSL_set_default_stream_mode.pod" + ], "doc/man/man3/SSL_set_fd.3" => [ "doc/man3/SSL_set_fd.pod" ], + "doc/man/man3/SSL_set_incoming_stream_policy.3" => [ + "doc/man3/SSL_set_incoming_stream_policy.pod" + ], + "doc/man/man3/SSL_set_quic_tls_cbs.3" => [ + "doc/man3/SSL_set_quic_tls_cbs.pod" + ], "doc/man/man3/SSL_set_retry_verify.3" => [ "doc/man3/SSL_set_retry_verify.pod" ], "doc/man/man3/SSL_set_session.3" => [ "doc/man3/SSL_set_session.pod" ], + "doc/man/man3/SSL_set_session_secret_cb.3" => [ + "doc/man3/SSL_set_session_secret_cb.pod" + ], "doc/man/man3/SSL_set_shutdown.3" => [ "doc/man3/SSL_set_shutdown.pod" ], @@ -15168,6 +17557,12 @@ our %unified_info = ( "doc/man/man3/SSL_state_string.3" => [ "doc/man3/SSL_state_string.pod" ], + "doc/man/man3/SSL_stream_conclude.3" => [ + "doc/man3/SSL_stream_conclude.pod" + ], + "doc/man/man3/SSL_stream_reset.3" => [ + "doc/man3/SSL_stream_reset.pod" + ], "doc/man/man3/SSL_want.3" => [ "doc/man3/SSL_want.pod" ], @@ -15177,8 +17572,8 @@ our %unified_info = ( "doc/man/man3/TS_RESP_CTX_new.3" => [ "doc/man3/TS_RESP_CTX_new.pod" ], - "doc/man/man3/TS_VERIFY_CTX_set_certs.3" => [ - "doc/man3/TS_VERIFY_CTX_set_certs.pod" + "doc/man/man3/TS_VERIFY_CTX.3" => [ + "doc/man3/TS_VERIFY_CTX.pod" ], "doc/man/man3/UI_STRING.3" => [ "doc/man3/UI_STRING.pod" @@ -15198,6 +17593,21 @@ our %unified_info = ( "doc/man/man3/X509V3_set_ctx.3" => [ "doc/man3/X509V3_set_ctx.pod" ], + "doc/man/man3/X509_ACERT_add1_attr.3" => [ + "doc/man3/X509_ACERT_add1_attr.pod" + ], + "doc/man/man3/X509_ACERT_add_attr_nconf.3" => [ + "doc/man3/X509_ACERT_add_attr_nconf.pod" + ], + "doc/man/man3/X509_ACERT_get0_holder_baseCertId.3" => [ + "doc/man3/X509_ACERT_get0_holder_baseCertId.pod" + ], + "doc/man/man3/X509_ACERT_get_attr.3" => [ + "doc/man3/X509_ACERT_get_attr.pod" + ], + "doc/man/man3/X509_ACERT_print_ex.3" => [ + "doc/man3/X509_ACERT_print_ex.pod" + ], "doc/man/man3/X509_ALGOR_dup.3" => [ "doc/man3/X509_ALGOR_dup.pod" ], @@ -15246,6 +17656,9 @@ our %unified_info = ( "doc/man/man3/X509_SIG_get0.3" => [ "doc/man3/X509_SIG_get0.pod" ], + "doc/man/man3/X509_STORE_CTX_get_by_subject.3" => [ + "doc/man3/X509_STORE_CTX_get_by_subject.pod" + ], "doc/man/man3/X509_STORE_CTX_get_error.3" => [ "doc/man3/X509_STORE_CTX_get_error.pod" ], @@ -15312,6 +17725,9 @@ our %unified_info = ( "doc/man/man3/X509_get0_uids.3" => [ "doc/man3/X509_get0_uids.pod" ], + "doc/man/man3/X509_get_default_cert_file.3" => [ + "doc/man3/X509_get_default_cert_file.pod" + ], "doc/man/man3/X509_get_extension_flags.3" => [ "doc/man3/X509_get_extension_flags.pod" ], @@ -15435,9 +17851,15 @@ our %unified_info = ( "doc/man/man7/EVP_CIPHER-SM4.7" => [ "doc/man7/EVP_CIPHER-SM4.pod" ], + "doc/man/man7/EVP_KDF-ARGON2.7" => [ + "doc/man7/EVP_KDF-ARGON2.pod" + ], "doc/man/man7/EVP_KDF-HKDF.7" => [ "doc/man7/EVP_KDF-HKDF.pod" ], + "doc/man/man7/EVP_KDF-HMAC-DRBG.7" => [ + "doc/man7/EVP_KDF-HMAC-DRBG.pod" + ], "doc/man/man7/EVP_KDF-KB.7" => [ "doc/man7/EVP_KDF-KB.pod" ], @@ -15453,6 +17875,9 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-PKCS12KDF.7" => [ "doc/man7/EVP_KDF-PKCS12KDF.pod" ], + "doc/man/man7/EVP_KDF-PVKKDF.7" => [ + "doc/man7/EVP_KDF-PVKKDF.pod" + ], "doc/man/man7/EVP_KDF-SCRYPT.7" => [ "doc/man7/EVP_KDF-SCRYPT.pod" ], @@ -15477,9 +17902,18 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-X963.7" => [ "doc/man7/EVP_KDF-X963.pod" ], + "doc/man/man7/EVP_KEM-EC.7" => [ + "doc/man7/EVP_KEM-EC.pod" + ], + "doc/man/man7/EVP_KEM-ML-KEM.7" => [ + "doc/man7/EVP_KEM-ML-KEM.pod" + ], "doc/man/man7/EVP_KEM-RSA.7" => [ "doc/man7/EVP_KEM-RSA.pod" ], + "doc/man/man7/EVP_KEM-X25519.7" => [ + "doc/man7/EVP_KEM-X25519.pod" + ], "doc/man/man7/EVP_KEYEXCH-DH.7" => [ "doc/man7/EVP_KEYEXCH-DH.pod" ], @@ -15513,6 +17947,9 @@ our %unified_info = ( "doc/man/man7/EVP_MD-BLAKE2.7" => [ "doc/man7/EVP_MD-BLAKE2.pod" ], + "doc/man/man7/EVP_MD-KECCAK.7" => [ + "doc/man7/EVP_MD-KECCAK.pod" + ], "doc/man/man7/EVP_MD-MD2.7" => [ "doc/man7/EVP_MD-MD2.pod" ], @@ -15570,15 +18007,27 @@ our %unified_info = ( "doc/man/man7/EVP_PKEY-HMAC.7" => [ "doc/man7/EVP_PKEY-HMAC.pod" ], + "doc/man/man7/EVP_PKEY-ML-DSA.7" => [ + "doc/man7/EVP_PKEY-ML-DSA.pod" + ], + "doc/man/man7/EVP_PKEY-ML-KEM.7" => [ + "doc/man7/EVP_PKEY-ML-KEM.pod" + ], "doc/man/man7/EVP_PKEY-RSA.7" => [ "doc/man7/EVP_PKEY-RSA.pod" ], + "doc/man/man7/EVP_PKEY-SLH-DSA.7" => [ + "doc/man7/EVP_PKEY-SLH-DSA.pod" + ], "doc/man/man7/EVP_PKEY-SM2.7" => [ "doc/man7/EVP_PKEY-SM2.pod" ], "doc/man/man7/EVP_PKEY-X25519.7" => [ "doc/man7/EVP_PKEY-X25519.pod" ], + "doc/man/man7/EVP_RAND-CRNG-TEST.7" => [ + "doc/man7/EVP_RAND-CRNG-TEST.pod" + ], "doc/man/man7/EVP_RAND-CTR-DRBG.7" => [ "doc/man7/EVP_RAND-CTR-DRBG.pod" ], @@ -15588,6 +18037,9 @@ our %unified_info = ( "doc/man/man7/EVP_RAND-HMAC-DRBG.7" => [ "doc/man7/EVP_RAND-HMAC-DRBG.pod" ], + "doc/man/man7/EVP_RAND-JITTER.7" => [ + "doc/man7/EVP_RAND-JITTER.pod" + ], "doc/man/man7/EVP_RAND-SEED-SRC.7" => [ "doc/man7/EVP_RAND-SEED-SRC.pod" ], @@ -15609,9 +18061,15 @@ our %unified_info = ( "doc/man/man7/EVP_SIGNATURE-HMAC.7" => [ "doc/man7/EVP_SIGNATURE-HMAC.pod" ], + "doc/man/man7/EVP_SIGNATURE-ML-DSA.7" => [ + "doc/man7/EVP_SIGNATURE-ML-DSA.pod" + ], "doc/man/man7/EVP_SIGNATURE-RSA.7" => [ "doc/man7/EVP_SIGNATURE-RSA.pod" ], + "doc/man/man7/EVP_SIGNATURE-SLH-DSA.7" => [ + "doc/man7/EVP_SIGNATURE-SLH-DSA.pod" + ], "doc/man/man7/OSSL_PROVIDER-FIPS.7" => [ "doc/man7/OSSL_PROVIDER-FIPS.pod" ], @@ -15627,6 +18085,9 @@ our %unified_info = ( "doc/man/man7/OSSL_PROVIDER-null.7" => [ "doc/man7/OSSL_PROVIDER-null.pod" ], + "doc/man/man7/OSSL_STORE-winstore.7" => [ + "doc/man7/OSSL_STORE-winstore.pod" + ], "doc/man/man7/RAND.7" => [ "doc/man7/RAND.pod" ], @@ -15639,9 +18100,6 @@ our %unified_info = ( "doc/man/man7/bio.7" => [ "doc/man7/bio.pod" ], - "doc/man/man7/crypto.7" => [ - "doc/man7/crypto.pod" - ], "doc/man/man7/ct.7" => [ "doc/man7/ct.pod" ], @@ -15672,9 +18130,6 @@ our %unified_info = ( "doc/man/man7/life_cycle-rand.7" => [ "doc/man7/life_cycle-rand.pod" ], - "doc/man/man7/migration_guide.7" => [ - "doc/man7/migration_guide.pod" - ], "doc/man/man7/openssl-core.h.7" => [ "doc/man7/openssl-core.h.pod" ], @@ -15690,12 +18145,66 @@ our %unified_info = ( "doc/man/man7/openssl-glossary.7" => [ "doc/man7/openssl-glossary.pod" ], + "doc/man/man7/openssl-qlog.7" => [ + "doc/man7/openssl-qlog.pod" + ], + "doc/man/man7/openssl-quic-concurrency.7" => [ + "doc/man7/openssl-quic-concurrency.pod" + ], + "doc/man/man7/openssl-quic.7" => [ + "doc/man7/openssl-quic.pod" + ], "doc/man/man7/openssl-threads.7" => [ "doc/man7/openssl-threads.pod" ], "doc/man/man7/openssl_user_macros.7" => [ "doc/man7/openssl_user_macros.pod" ], + "doc/man/man7/ossl-guide-introduction.7" => [ + "doc/man7/ossl-guide-introduction.pod" + ], + "doc/man/man7/ossl-guide-libcrypto-introduction.7" => [ + "doc/man7/ossl-guide-libcrypto-introduction.pod" + ], + "doc/man/man7/ossl-guide-libraries-introduction.7" => [ + "doc/man7/ossl-guide-libraries-introduction.pod" + ], + "doc/man/man7/ossl-guide-libssl-introduction.7" => [ + "doc/man7/ossl-guide-libssl-introduction.pod" + ], + "doc/man/man7/ossl-guide-migration.7" => [ + "doc/man7/ossl-guide-migration.pod" + ], + "doc/man/man7/ossl-guide-quic-client-block.7" => [ + "doc/man7/ossl-guide-quic-client-block.pod" + ], + "doc/man/man7/ossl-guide-quic-client-non-block.7" => [ + "doc/man7/ossl-guide-quic-client-non-block.pod" + ], + "doc/man/man7/ossl-guide-quic-introduction.7" => [ + "doc/man7/ossl-guide-quic-introduction.pod" + ], + "doc/man/man7/ossl-guide-quic-multi-stream.7" => [ + "doc/man7/ossl-guide-quic-multi-stream.pod" + ], + "doc/man/man7/ossl-guide-quic-server-block.7" => [ + "doc/man7/ossl-guide-quic-server-block.pod" + ], + "doc/man/man7/ossl-guide-quic-server-non-block.7" => [ + "doc/man7/ossl-guide-quic-server-non-block.pod" + ], + "doc/man/man7/ossl-guide-tls-client-block.7" => [ + "doc/man7/ossl-guide-tls-client-block.pod" + ], + "doc/man/man7/ossl-guide-tls-client-non-block.7" => [ + "doc/man7/ossl-guide-tls-client-non-block.pod" + ], + "doc/man/man7/ossl-guide-tls-introduction.7" => [ + "doc/man7/ossl-guide-tls-introduction.pod" + ], + "doc/man/man7/ossl-guide-tls-server-block.7" => [ + "doc/man7/ossl-guide-tls-server-block.pod" + ], "doc/man/man7/ossl_store-file.7" => [ "doc/man7/ossl_store-file.pod" ], @@ -15750,6 +18259,9 @@ our %unified_info = ( "doc/man/man7/provider-signature.7" => [ "doc/man7/provider-signature.pod" ], + "doc/man/man7/provider-skeymgmt.7" => [ + "doc/man7/provider-skeymgmt.pod" + ], "doc/man/man7/provider-storemgmt.7" => [ "doc/man7/provider-storemgmt.pod" ], @@ -15759,9 +18271,6 @@ our %unified_info = ( "doc/man/man7/proxy-certificates.7" => [ "doc/man7/proxy-certificates.pod" ], - "doc/man/man7/ssl.7" => [ - "doc/man7/ssl.pod" - ], "doc/man/man7/x509.7" => [ "doc/man7/x509.pod" ], @@ -15897,6 +18406,9 @@ our %unified_info = ( "doc/man1/openssl-sess_id.pod" => [ "doc/man1/openssl-sess_id.pod.in" ], + "doc/man1/openssl-skeyutl.pod" => [ + "doc/man1/openssl-skeyutl.pod.in" + ], "doc/man1/openssl-smime.pod" => [ "doc/man1/openssl-smime.pod.in" ], @@ -15933,12 +18445,30 @@ our %unified_info = ( "engines/e_padlock-x86_64.s" => [ "engines/asm/e_padlock-x86_64.pl" ], + "exporters/OpenSSLConfig.cmake" => [ + "exporters/cmake/OpenSSLConfig.cmake.in" + ], + "exporters/OpenSSLConfigVersion.cmake" => [ + "exporters/cmake/OpenSSLConfigVersion.cmake.in" + ], + "exporters/libcrypto.pc" => [ + "exporters/pkg-config/libcrypto.pc.in" + ], + "exporters/libssl.pc" => [ + "exporters/pkg-config/libssl.pc.in" + ], + "exporters/openssl.pc" => [ + "exporters/pkg-config/openssl.pc.in" + ], "include/crypto/bn_conf.h" => [ "include/crypto/bn_conf.h.in" ], "include/crypto/dso_conf.h" => [ "include/crypto/dso_conf.h.in" ], + "include/internal/param_names.h" => [ + "include/internal/param_names.h.in" + ], "include/openssl/asn1.h" => [ "include/openssl/asn1.h.in" ], @@ -15954,12 +18484,18 @@ our %unified_info = ( "include/openssl/cms.h" => [ "include/openssl/cms.h.in" ], + "include/openssl/comp.h" => [ + "include/openssl/comp.h.in" + ], "include/openssl/conf.h" => [ "include/openssl/conf.h.in" ], "include/openssl/configuration.h" => [ "include/openssl/configuration.h.in" ], + "include/openssl/core_names.h" => [ + "include/openssl/core_names.h.in" + ], "include/openssl/crmf.h" => [ "include/openssl/crmf.h.in" ], @@ -16008,20 +18544,47 @@ our %unified_info = ( "include/openssl/x509.h" => [ "include/openssl/x509.h.in" ], + "include/openssl/x509_acert.h" => [ + "include/openssl/x509_acert.h.in" + ], "include/openssl/x509_vfy.h" => [ "include/openssl/x509_vfy.h.in" ], "include/openssl/x509v3.h" => [ "include/openssl/x509v3.h.in" ], + "installdata.pm" => [ + "util/mkinstallvars.pl", + "\"PREFIX=\$(INSTALLTOP)\"", + "BINDIR=bin", + "\"LIBDIR=\$(LIBDIR)\"", + "\"libdir=\$(libdir)\"", + "INCLUDEDIR=include", + "APPLINKDIR=include/openssl", + "\"ENGINESDIR=\$(ENGINESDIR)\"", + "\"MODULESDIR=\$(MODULESDIR)\"", + "\"PKGCONFIGDIR=\$(PKGCONFIGDIR)\"", + "\"CMAKECONFIGDIR=\$(CMAKECONFIGDIR)\"", + "\"LDLIBS=\$(LIB_EX_LIBS)\"", + "\"VERSION=\$(VERSION)\"" + ], "libcrypto.ld" => [ "util/libcrypto.num", "libcrypto" ], + "libcrypto.pc" => [ + "exporters/pkg-config/libcrypto.pc.in" + ], "libssl.ld" => [ "util/libssl.num", "libssl" ], + "libssl.pc" => [ + "exporters/pkg-config/libssl.pc.in" + ], + "openssl.pc" => [ + "exporters/pkg-config/openssl.pc.in" + ], "providers/common/der/der_digests_gen.c" => [ "providers/common/der/der_digests_gen.c.in" ], @@ -16034,9 +18597,15 @@ our %unified_info = ( "providers/common/der/der_ecx_gen.c" => [ "providers/common/der/der_ecx_gen.c.in" ], + "providers/common/der/der_ml_dsa_gen.c" => [ + "providers/common/der/der_ml_dsa_gen.c.in" + ], "providers/common/der/der_rsa_gen.c" => [ "providers/common/der/der_rsa_gen.c.in" ], + "providers/common/der/der_slh_dsa_gen.c" => [ + "providers/common/der/der_slh_dsa_gen.c.in" + ], "providers/common/der/der_sm2_gen.c" => [ "providers/common/der/der_sm2_gen.c.in" ], @@ -16055,9 +18624,15 @@ our %unified_info = ( "providers/common/include/prov/der_ecx.h" => [ "providers/common/include/prov/der_ecx.h.in" ], + "providers/common/include/prov/der_ml_dsa.h" => [ + "providers/common/include/prov/der_ml_dsa.h.in" + ], "providers/common/include/prov/der_rsa.h" => [ "providers/common/include/prov/der_rsa.h.in" ], + "providers/common/include/prov/der_slh_dsa.h" => [ + "providers/common/include/prov/der_slh_dsa.h.in" + ], "providers/common/include/prov/der_sm2.h" => [ "providers/common/include/prov/der_sm2.h.in" ], @@ -16099,6 +18674,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "buffer" ], + "test/buildtest_byteorder.c" => [ + "test/generate_buildtest.pl", + "byteorder" + ], "test/buildtest_camellia.c" => [ "test/generate_buildtest.pl", "camellia" @@ -16131,10 +18710,6 @@ our %unified_info = ( "test/generate_buildtest.pl", "core_dispatch" ], - "test/buildtest_core_names.c" => [ - "test/generate_buildtest.pl", - "core_names" - ], "test/buildtest_core_object.c" => [ "test/generate_buildtest.pl", "core_object" @@ -16167,6 +18742,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "e_os2" ], + "test/buildtest_e_ostime.c" => [ + "test/generate_buildtest.pl", + "e_ostime" + ], "test/buildtest_ebcdic.c" => [ "test/generate_buildtest.pl", "ebcdic" @@ -16203,6 +18782,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "hmac" ], + "test/buildtest_hpke.c" => [ + "test/generate_buildtest.pl", + "hpke" + ], "test/buildtest_http.c" => [ "test/generate_buildtest.pl", "http" @@ -16211,6 +18794,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "idea" ], + "test/buildtest_indicator.c" => [ + "test/generate_buildtest.pl", + "indicator" + ], "test/buildtest_kdf.c" => [ "test/generate_buildtest.pl", "kdf" @@ -16231,6 +18818,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "mdc2" ], + "test/buildtest_ml_kem.c" => [ + "test/generate_buildtest.pl", + "ml_kem" + ], "test/buildtest_modes.c" => [ "test/generate_buildtest.pl", "modes" @@ -16271,6 +18862,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "provider" ], + "test/buildtest_quic.c" => [ + "test/generate_buildtest.pl", + "quic" + ], "test/buildtest_rand.c" => [ "test/generate_buildtest.pl", "rand" @@ -16327,6 +18922,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "symhacks" ], + "test/buildtest_thread.c" => [ + "test/generate_buildtest.pl", + "thread" + ], "test/buildtest_tls1.c" => [ "test/generate_buildtest.pl", "tls1" @@ -16407,6 +19006,7 @@ our %unified_info = ( "doc/html/man1/openssl-s_server.html", "doc/html/man1/openssl-s_time.html", "doc/html/man1/openssl-sess_id.html", + "doc/html/man1/openssl-skeyutl.html", "doc/html/man1/openssl-smime.html", "doc/html/man1/openssl-speed.html", "doc/html/man1/openssl-spkac.html", @@ -16456,6 +19056,7 @@ our %unified_info = ( "doc/html/man3/BIO_find_type.html", "doc/html/man3/BIO_get_data.html", "doc/html/man3/BIO_get_ex_new_index.html", + "doc/html/man3/BIO_get_rpoll_descriptor.html", "doc/html/man3/BIO_meth_new.html", "doc/html/man3/BIO_new.html", "doc/html/man3/BIO_new_CMS.html", @@ -16468,11 +19069,13 @@ our %unified_info = ( "doc/html/man3/BIO_s_connect.html", "doc/html/man3/BIO_s_core.html", "doc/html/man3/BIO_s_datagram.html", + "doc/html/man3/BIO_s_dgram_pair.html", "doc/html/man3/BIO_s_fd.html", "doc/html/man3/BIO_s_file.html", "doc/html/man3/BIO_s_mem.html", "doc/html/man3/BIO_s_null.html", "doc/html/man3/BIO_s_socket.html", + "doc/html/man3/BIO_sendmmsg.html", "doc/html/man3/BIO_set_callback.html", "doc/html/man3/BIO_should_retry.html", "doc/html/man3/BIO_socket_wait.html", @@ -16497,6 +19100,7 @@ our %unified_info = ( "doc/html/man3/BN_swap.html", "doc/html/man3/BN_zero.html", "doc/html/man3/BUF_MEM_new.html", + "doc/html/man3/CMAC_CTX.html", "doc/html/man3/CMS_EncryptedData_decrypt.html", "doc/html/man3/CMS_EncryptedData_encrypt.html", "doc/html/man3/CMS_EnvelopedData_create.html", @@ -16519,6 +19123,7 @@ our %unified_info = ( "doc/html/man3/CMS_uncompress.html", "doc/html/man3/CMS_verify.html", "doc/html/man3/CMS_verify_receipt.html", + "doc/html/man3/COMP_CTX_new.html", "doc/html/man3/CONF_modules_free.html", "doc/html/man3/CONF_modules_load_file.html", "doc/html/man3/CRYPTO_THREAD_run_once.html", @@ -16552,6 +19157,8 @@ our %unified_info = ( "doc/html/man3/DSA_size.html", "doc/html/man3/DTLS_get_data_mtu.html", "doc/html/man3/DTLS_set_timer_cb.html", + "doc/html/man3/DTLSv1_get_timeout.html", + "doc/html/man3/DTLSv1_handle_timeout.html", "doc/html/man3/DTLSv1_listen.html", "doc/html/man3/ECDSA_SIG_new.html", "doc/html/man3/ECDSA_sign.html", @@ -16598,6 +19205,7 @@ our %unified_info = ( "doc/html/man3/EVP_PKEY_CTX_ctrl.html", "doc/html/man3/EVP_PKEY_CTX_get0_libctx.html", "doc/html/man3/EVP_PKEY_CTX_get0_pkey.html", + "doc/html/man3/EVP_PKEY_CTX_get_algor.html", "doc/html/man3/EVP_PKEY_CTX_new.html", "doc/html/man3/EVP_PKEY_CTX_set1_pbe_pass.html", "doc/html/man3/EVP_PKEY_CTX_set_hkdf_md.html", @@ -16637,6 +19245,8 @@ our %unified_info = ( "doc/html/man3/EVP_PKEY_verify_recover.html", "doc/html/man3/EVP_RAND.html", "doc/html/man3/EVP_SIGNATURE.html", + "doc/html/man3/EVP_SKEY.html", + "doc/html/man3/EVP_SKEYMGMT.html", "doc/html/man3/EVP_SealInit.html", "doc/html/man3/EVP_SignInit.html", "doc/html/man3/EVP_VerifyInit.html", @@ -16666,6 +19276,7 @@ our %unified_info = ( "doc/html/man3/EVP_sm3.html", "doc/html/man3/EVP_sm4_cbc.html", "doc/html/man3/EVP_whirlpool.html", + "doc/html/man3/GENERAL_NAME.html", "doc/html/man3/HMAC.html", "doc/html/man3/MD5.html", "doc/html/man3/MDC2_Init.html", @@ -16690,14 +19301,18 @@ our %unified_info = ( "doc/html/man3/OPENSSL_init_ssl.html", "doc/html/man3/OPENSSL_instrument_bus.html", "doc/html/man3/OPENSSL_load_builtin_modules.html", + "doc/html/man3/OPENSSL_load_u16_le.html", "doc/html/man3/OPENSSL_malloc.html", + "doc/html/man3/OPENSSL_riscvcap.html", "doc/html/man3/OPENSSL_s390xcap.html", "doc/html/man3/OPENSSL_secure_malloc.html", "doc/html/man3/OPENSSL_strcasecmp.html", "doc/html/man3/OSSL_ALGORITHM.html", "doc/html/man3/OSSL_CALLBACK.html", + "doc/html/man3/OSSL_CMP_ATAV_set0.html", "doc/html/man3/OSSL_CMP_CTX_new.html", "doc/html/man3/OSSL_CMP_HDR_get0_transactionID.html", + "doc/html/man3/OSSL_CMP_ITAV_new_caCerts.html", "doc/html/man3/OSSL_CMP_ITAV_set0.html", "doc/html/man3/OSSL_CMP_MSG_get0_header.html", "doc/html/man3/OSSL_CMP_MSG_http_perform.html", @@ -16721,18 +19336,27 @@ our %unified_info = ( "doc/html/man3/OSSL_ENCODER_CTX.html", "doc/html/man3/OSSL_ENCODER_CTX_new_for_pkey.html", "doc/html/man3/OSSL_ENCODER_to_bio.html", + "doc/html/man3/OSSL_ERR_STATE_save.html", "doc/html/man3/OSSL_ESS_check_signing_certs.html", + "doc/html/man3/OSSL_GENERAL_NAMES_print.html", + "doc/html/man3/OSSL_HPKE_CTX_new.html", "doc/html/man3/OSSL_HTTP_REQ_CTX.html", "doc/html/man3/OSSL_HTTP_parse_url.html", "doc/html/man3/OSSL_HTTP_transfer.html", + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX.html", + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX_print.html", + "doc/html/man3/OSSL_INDICATOR_set_callback.html", "doc/html/man3/OSSL_ITEM.html", "doc/html/man3/OSSL_LIB_CTX.html", + "doc/html/man3/OSSL_LIB_CTX_set_conf_diagnostics.html", "doc/html/man3/OSSL_PARAM.html", "doc/html/man3/OSSL_PARAM_BLD.html", "doc/html/man3/OSSL_PARAM_allocate_from_text.html", "doc/html/man3/OSSL_PARAM_dup.html", "doc/html/man3/OSSL_PARAM_int.html", + "doc/html/man3/OSSL_PARAM_print_to_bio.html", "doc/html/man3/OSSL_PROVIDER.html", + "doc/html/man3/OSSL_QUIC_client_method.html", "doc/html/man3/OSSL_SELF_TEST_new.html", "doc/html/man3/OSSL_SELF_TEST_set_callback.html", "doc/html/man3/OSSL_STORE_INFO.html", @@ -16741,11 +19365,13 @@ our %unified_info = ( "doc/html/man3/OSSL_STORE_attach.html", "doc/html/man3/OSSL_STORE_expect.html", "doc/html/man3/OSSL_STORE_open.html", + "doc/html/man3/OSSL_sleep.html", "doc/html/man3/OSSL_trace_enabled.html", "doc/html/man3/OSSL_trace_get_category_num.html", "doc/html/man3/OSSL_trace_set_channel.html", "doc/html/man3/OpenSSL_add_all_algorithms.html", "doc/html/man3/OpenSSL_version.html", + "doc/html/man3/PBMAC1_get1_pbkdf2_param.html", "doc/html/man3/PEM_X509_INFO_read_bio_ex.html", "doc/html/man3/PEM_bytes_read_bio.html", "doc/html/man3/PEM_read.html", @@ -16758,6 +19384,7 @@ our %unified_info = ( "doc/html/man3/PKCS12_SAFEBAG_create_cert.html", "doc/html/man3/PKCS12_SAFEBAG_get0_attrs.html", "doc/html/man3/PKCS12_SAFEBAG_get1_cert.html", + "doc/html/man3/PKCS12_SAFEBAG_set0_attrs.html", "doc/html/man3/PKCS12_add1_attr_by_NID.html", "doc/html/man3/PKCS12_add_CSPName_asc.html", "doc/html/man3/PKCS12_add_cert.html", @@ -16849,6 +19476,7 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_sess_set_get_cb.html", "doc/html/man3/SSL_CTX_sessions.html", "doc/html/man3/SSL_CTX_set0_CA_list.html", + "doc/html/man3/SSL_CTX_set1_cert_comp_preference.html", "doc/html/man3/SSL_CTX_set1_curves.html", "doc/html/man3/SSL_CTX_set1_sigalgs.html", "doc/html/man3/SSL_CTX_set1_verify_cert_store.html", @@ -16862,6 +19490,7 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_ct_validation_callback.html", "doc/html/man3/SSL_CTX_set_ctlog_list_file.html", "doc/html/man3/SSL_CTX_set_default_passwd_cb.html", + "doc/html/man3/SSL_CTX_set_domain_flags.html", "doc/html/man3/SSL_CTX_set_generate_session_id.html", "doc/html/man3/SSL_CTX_set_info_callback.html", "doc/html/man3/SSL_CTX_set_keylog_callback.html", @@ -16869,6 +19498,7 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_min_proto_version.html", "doc/html/man3/SSL_CTX_set_mode.html", "doc/html/man3/SSL_CTX_set_msg_callback.html", + "doc/html/man3/SSL_CTX_set_new_pending_conn_cb.html", "doc/html/man3/SSL_CTX_set_num_tickets.html", "doc/html/man3/SSL_CTX_set_options.html", "doc/html/man3/SSL_CTX_set_psk_client_callback.html", @@ -16907,6 +19537,7 @@ our %unified_info = ( "doc/html/man3/SSL_SESSION_print.html", "doc/html/man3/SSL_SESSION_set1_id.html", "doc/html/man3/SSL_accept.html", + "doc/html/man3/SSL_accept_stream.html", "doc/html/man3/SSL_alert_type_string.html", "doc/html/man3/SSL_alloc_buffers.html", "doc/html/man3/SSL_check_chain.html", @@ -16916,59 +19547,90 @@ our %unified_info = ( "doc/html/man3/SSL_export_keying_material.html", "doc/html/man3/SSL_extension_supported.html", "doc/html/man3/SSL_free.html", + "doc/html/man3/SSL_get0_connection.html", + "doc/html/man3/SSL_get0_group_name.html", + "doc/html/man3/SSL_get0_peer_rpk.html", "doc/html/man3/SSL_get0_peer_scts.html", + "doc/html/man3/SSL_get1_builtin_sigalgs.html", "doc/html/man3/SSL_get_SSL_CTX.html", "doc/html/man3/SSL_get_all_async_fds.html", "doc/html/man3/SSL_get_certificate.html", "doc/html/man3/SSL_get_ciphers.html", "doc/html/man3/SSL_get_client_random.html", + "doc/html/man3/SSL_get_conn_close_info.html", "doc/html/man3/SSL_get_current_cipher.html", "doc/html/man3/SSL_get_default_timeout.html", "doc/html/man3/SSL_get_error.html", + "doc/html/man3/SSL_get_event_timeout.html", "doc/html/man3/SSL_get_extms_support.html", "doc/html/man3/SSL_get_fd.html", + "doc/html/man3/SSL_get_handshake_rtt.html", "doc/html/man3/SSL_get_peer_cert_chain.html", "doc/html/man3/SSL_get_peer_certificate.html", "doc/html/man3/SSL_get_peer_signature_nid.html", "doc/html/man3/SSL_get_peer_tmp_key.html", "doc/html/man3/SSL_get_psk_identity.html", "doc/html/man3/SSL_get_rbio.html", + "doc/html/man3/SSL_get_rpoll_descriptor.html", "doc/html/man3/SSL_get_session.html", "doc/html/man3/SSL_get_shared_sigalgs.html", + "doc/html/man3/SSL_get_stream_id.html", + "doc/html/man3/SSL_get_stream_read_state.html", + "doc/html/man3/SSL_get_value_uint.html", "doc/html/man3/SSL_get_verify_result.html", "doc/html/man3/SSL_get_version.html", "doc/html/man3/SSL_group_to_name.html", + "doc/html/man3/SSL_handle_events.html", "doc/html/man3/SSL_in_init.html", + "doc/html/man3/SSL_inject_net_dgram.html", "doc/html/man3/SSL_key_update.html", "doc/html/man3/SSL_library_init.html", "doc/html/man3/SSL_load_client_CA_file.html", "doc/html/man3/SSL_new.html", + "doc/html/man3/SSL_new_domain.html", + "doc/html/man3/SSL_new_listener.html", + "doc/html/man3/SSL_new_stream.html", "doc/html/man3/SSL_pending.html", + "doc/html/man3/SSL_poll.html", "doc/html/man3/SSL_read.html", "doc/html/man3/SSL_read_early_data.html", "doc/html/man3/SSL_rstate_string.html", "doc/html/man3/SSL_session_reused.html", "doc/html/man3/SSL_set1_host.html", + "doc/html/man3/SSL_set1_initial_peer_addr.html", + "doc/html/man3/SSL_set1_server_cert_type.html", "doc/html/man3/SSL_set_async_callback.html", "doc/html/man3/SSL_set_bio.html", + "doc/html/man3/SSL_set_blocking_mode.html", "doc/html/man3/SSL_set_connect_state.html", + "doc/html/man3/SSL_set_default_stream_mode.html", "doc/html/man3/SSL_set_fd.html", + "doc/html/man3/SSL_set_incoming_stream_policy.html", + "doc/html/man3/SSL_set_quic_tls_cbs.html", "doc/html/man3/SSL_set_retry_verify.html", "doc/html/man3/SSL_set_session.html", + "doc/html/man3/SSL_set_session_secret_cb.html", "doc/html/man3/SSL_set_shutdown.html", "doc/html/man3/SSL_set_verify_result.html", "doc/html/man3/SSL_shutdown.html", "doc/html/man3/SSL_state_string.html", + "doc/html/man3/SSL_stream_conclude.html", + "doc/html/man3/SSL_stream_reset.html", "doc/html/man3/SSL_want.html", "doc/html/man3/SSL_write.html", "doc/html/man3/TS_RESP_CTX_new.html", - "doc/html/man3/TS_VERIFY_CTX_set_certs.html", + "doc/html/man3/TS_VERIFY_CTX.html", "doc/html/man3/UI_STRING.html", "doc/html/man3/UI_UTIL_read_pw.html", "doc/html/man3/UI_create_method.html", "doc/html/man3/UI_new.html", "doc/html/man3/X509V3_get_d2i.html", "doc/html/man3/X509V3_set_ctx.html", + "doc/html/man3/X509_ACERT_add1_attr.html", + "doc/html/man3/X509_ACERT_add_attr_nconf.html", + "doc/html/man3/X509_ACERT_get0_holder_baseCertId.html", + "doc/html/man3/X509_ACERT_get_attr.html", + "doc/html/man3/X509_ACERT_print_ex.html", "doc/html/man3/X509_ALGOR_dup.html", "doc/html/man3/X509_ATTRIBUTE.html", "doc/html/man3/X509_CRL_get0_by_serial.html", @@ -16985,6 +19647,7 @@ our %unified_info = ( "doc/html/man3/X509_REQ_get_attr.html", "doc/html/man3/X509_REQ_get_extensions.html", "doc/html/man3/X509_SIG_get0.html", + "doc/html/man3/X509_STORE_CTX_get_by_subject.html", "doc/html/man3/X509_STORE_CTX_get_error.html", "doc/html/man3/X509_STORE_CTX_new.html", "doc/html/man3/X509_STORE_CTX_set_verify_cb.html", @@ -17007,6 +19670,7 @@ our %unified_info = ( "doc/html/man3/X509_get0_notBefore.html", "doc/html/man3/X509_get0_signature.html", "doc/html/man3/X509_get0_uids.html", + "doc/html/man3/X509_get_default_cert_file.html", "doc/html/man3/X509_get_extension_flags.html", "doc/html/man3/X509_get_pubkey.html", "doc/html/man3/X509_get_serialNumber.html", @@ -17052,12 +19716,15 @@ our %unified_info = ( "doc/html/man7/EVP_CIPHER-RC5.html", "doc/html/man7/EVP_CIPHER-SEED.html", "doc/html/man7/EVP_CIPHER-SM4.html", + "doc/html/man7/EVP_KDF-ARGON2.html", "doc/html/man7/EVP_KDF-HKDF.html", + "doc/html/man7/EVP_KDF-HMAC-DRBG.html", "doc/html/man7/EVP_KDF-KB.html", "doc/html/man7/EVP_KDF-KRB5KDF.html", "doc/html/man7/EVP_KDF-PBKDF1.html", "doc/html/man7/EVP_KDF-PBKDF2.html", "doc/html/man7/EVP_KDF-PKCS12KDF.html", + "doc/html/man7/EVP_KDF-PVKKDF.html", "doc/html/man7/EVP_KDF-SCRYPT.html", "doc/html/man7/EVP_KDF-SS.html", "doc/html/man7/EVP_KDF-SSHKDF.html", @@ -17066,7 +19733,10 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-X942-ASN1.html", "doc/html/man7/EVP_KDF-X942-CONCAT.html", "doc/html/man7/EVP_KDF-X963.html", + "doc/html/man7/EVP_KEM-EC.html", + "doc/html/man7/EVP_KEM-ML-KEM.html", "doc/html/man7/EVP_KEM-RSA.html", + "doc/html/man7/EVP_KEM-X25519.html", "doc/html/man7/EVP_KEYEXCH-DH.html", "doc/html/man7/EVP_KEYEXCH-ECDH.html", "doc/html/man7/EVP_KEYEXCH-X25519.html", @@ -17078,6 +19748,7 @@ our %unified_info = ( "doc/html/man7/EVP_MAC-Poly1305.html", "doc/html/man7/EVP_MAC-Siphash.html", "doc/html/man7/EVP_MD-BLAKE2.html", + "doc/html/man7/EVP_MD-KECCAK.html", "doc/html/man7/EVP_MD-MD2.html", "doc/html/man7/EVP_MD-MD4.html", "doc/html/man7/EVP_MD-MD5-SHA1.html", @@ -17097,12 +19768,17 @@ our %unified_info = ( "doc/html/man7/EVP_PKEY-EC.html", "doc/html/man7/EVP_PKEY-FFC.html", "doc/html/man7/EVP_PKEY-HMAC.html", + "doc/html/man7/EVP_PKEY-ML-DSA.html", + "doc/html/man7/EVP_PKEY-ML-KEM.html", "doc/html/man7/EVP_PKEY-RSA.html", + "doc/html/man7/EVP_PKEY-SLH-DSA.html", "doc/html/man7/EVP_PKEY-SM2.html", "doc/html/man7/EVP_PKEY-X25519.html", + "doc/html/man7/EVP_RAND-CRNG-TEST.html", "doc/html/man7/EVP_RAND-CTR-DRBG.html", "doc/html/man7/EVP_RAND-HASH-DRBG.html", "doc/html/man7/EVP_RAND-HMAC-DRBG.html", + "doc/html/man7/EVP_RAND-JITTER.html", "doc/html/man7/EVP_RAND-SEED-SRC.html", "doc/html/man7/EVP_RAND-TEST-RAND.html", "doc/html/man7/EVP_RAND.html", @@ -17110,17 +19786,19 @@ our %unified_info = ( "doc/html/man7/EVP_SIGNATURE-ECDSA.html", "doc/html/man7/EVP_SIGNATURE-ED25519.html", "doc/html/man7/EVP_SIGNATURE-HMAC.html", + "doc/html/man7/EVP_SIGNATURE-ML-DSA.html", "doc/html/man7/EVP_SIGNATURE-RSA.html", + "doc/html/man7/EVP_SIGNATURE-SLH-DSA.html", "doc/html/man7/OSSL_PROVIDER-FIPS.html", "doc/html/man7/OSSL_PROVIDER-base.html", "doc/html/man7/OSSL_PROVIDER-default.html", "doc/html/man7/OSSL_PROVIDER-legacy.html", "doc/html/man7/OSSL_PROVIDER-null.html", + "doc/html/man7/OSSL_STORE-winstore.html", "doc/html/man7/RAND.html", "doc/html/man7/RSA-PSS.html", "doc/html/man7/X25519.html", "doc/html/man7/bio.html", - "doc/html/man7/crypto.html", "doc/html/man7/ct.html", "doc/html/man7/des_modes.html", "doc/html/man7/evp.html", @@ -17131,14 +19809,31 @@ our %unified_info = ( "doc/html/man7/life_cycle-mac.html", "doc/html/man7/life_cycle-pkey.html", "doc/html/man7/life_cycle-rand.html", - "doc/html/man7/migration_guide.html", "doc/html/man7/openssl-core.h.html", "doc/html/man7/openssl-core_dispatch.h.html", "doc/html/man7/openssl-core_names.h.html", "doc/html/man7/openssl-env.html", "doc/html/man7/openssl-glossary.html", + "doc/html/man7/openssl-qlog.html", + "doc/html/man7/openssl-quic-concurrency.html", + "doc/html/man7/openssl-quic.html", "doc/html/man7/openssl-threads.html", "doc/html/man7/openssl_user_macros.html", + "doc/html/man7/ossl-guide-introduction.html", + "doc/html/man7/ossl-guide-libcrypto-introduction.html", + "doc/html/man7/ossl-guide-libraries-introduction.html", + "doc/html/man7/ossl-guide-libssl-introduction.html", + "doc/html/man7/ossl-guide-migration.html", + "doc/html/man7/ossl-guide-quic-client-block.html", + "doc/html/man7/ossl-guide-quic-client-non-block.html", + "doc/html/man7/ossl-guide-quic-introduction.html", + "doc/html/man7/ossl-guide-quic-multi-stream.html", + "doc/html/man7/ossl-guide-quic-server-block.html", + "doc/html/man7/ossl-guide-quic-server-non-block.html", + "doc/html/man7/ossl-guide-tls-client-block.html", + "doc/html/man7/ossl-guide-tls-client-non-block.html", + "doc/html/man7/ossl-guide-tls-introduction.html", + "doc/html/man7/ossl-guide-tls-server-block.html", "doc/html/man7/ossl_store-file.html", "doc/html/man7/ossl_store.html", "doc/html/man7/passphrase-encoding.html", @@ -17157,10 +19852,10 @@ our %unified_info = ( "doc/html/man7/provider-object.html", "doc/html/man7/provider-rand.html", "doc/html/man7/provider-signature.html", + "doc/html/man7/provider-skeymgmt.html", "doc/html/man7/provider-storemgmt.html", "doc/html/man7/provider.html", "doc/html/man7/proxy-certificates.html", - "doc/html/man7/ssl.html", "doc/html/man7/x509.html" ] }, @@ -17175,12 +19870,21 @@ our %unified_info = ( ] }, "includes" => { + "OpenSSLConfig.cmake" => [ + "." + ], + "OpenSSLConfigVersion.cmake" => [ + "." + ], "apps/asn1parse.o" => [ "apps" ], "apps/ca.o" => [ "apps" ], + "apps/ca_internals_test-bin-ca.o" => [ + "apps" + ], "apps/ciphers.o" => [ "apps" ], @@ -17407,6 +20111,9 @@ our %unified_info = ( "apps/openssl-bin-sess_id.o" => [ "apps" ], + "apps/openssl-bin-skeyutl.o" => [ + "apps" + ], "apps/openssl-bin-smime.o" => [ "apps" ], @@ -17494,6 +20201,9 @@ our %unified_info = ( "apps/sess_id.o" => [ "apps" ], + "apps/skeyutl.o" => [ + "apps" + ], "apps/smime.o" => [ "apps" ], @@ -17563,6 +20273,12 @@ our %unified_info = ( "crypto/aes/libfips-lib-bsaes-armv7.o" => [ "crypto" ], + "crypto/aes/vpaes-armv8.o" => [ + "crypto" + ], + "crypto/aes/vpaes-loongarch64.o" => [ + "crypto" + ], "crypto/arm64cpuid.o" => [ "crypto" ], @@ -17626,9 +20342,15 @@ our %unified_info = ( "crypto/chacha/chacha-armv4.o" => [ "crypto" ], + "crypto/chacha/chacha-armv8-sve.o" => [ + "crypto" + ], "crypto/chacha/chacha-armv8.o" => [ "crypto" ], + "crypto/chacha/chacha-loongarch64.o" => [ + "crypto" + ], "crypto/chacha/chacha-s390x.o" => [ "crypto" ], @@ -17656,6 +20378,12 @@ our %unified_info = ( "crypto/ec/ecp_s390x_nistp.o" => [ "crypto" ], + "crypto/ec/ecp_sm2p256-armv8.o" => [ + "crypto" + ], + "crypto/ec/ecx_key.o" => [ + "crypto" + ], "crypto/ec/ecx_meth.o" => [ "crypto" ], @@ -17665,12 +20393,18 @@ our %unified_info = ( "crypto/ec/libcrypto-lib-ecp_nistz256-armv4.o" => [ "crypto" ], + "crypto/ec/libcrypto-lib-ecx_key.o" => [ + "crypto" + ], "crypto/ec/libcrypto-lib-ecx_meth.o" => [ "crypto" ], "crypto/ec/libfips-lib-ecp_nistz256-armv4.o" => [ "crypto" ], + "crypto/ec/libfips-lib-ecx_key.o" => [ + "crypto" + ], "crypto/evp/e_aes.o" => [ "crypto", "crypto/modes" @@ -17748,9 +20482,18 @@ our %unified_info = ( "crypto/libfips-lib-cpuid.o" => [ "." ], + "crypto/md5/md5-aarch64.o" => [ + "crypto" + ], + "crypto/md5/md5-loongarch64.o" => [ + "crypto" + ], "crypto/md5/md5-sparcv9.o" => [ "crypto" ], + "crypto/modes/aes-gcm-armv8-unroll8_64.o" => [ + "crypto" + ], "crypto/modes/aes-gcm-armv8_64.o" => [ "crypto" ], @@ -17787,6 +20530,9 @@ our %unified_info = ( "crypto/modes/libfips-lib-ghashv8-armx.o" => [ "crypto" ], + "crypto/params_idx.c" => [ + "util/perl" + ], "crypto/poly1305/libcrypto-lib-poly1305-armv4.o" => [ "crypto" ], @@ -17811,6 +20557,9 @@ our %unified_info = ( "crypto/sha/keccak1600-armv4.o" => [ "crypto" ], + "crypto/sha/keccak1600-armv8.o" => [ + "crypto" + ], "crypto/sha/libcrypto-lib-keccak1600-armv4.o" => [ "crypto" ], @@ -17880,6 +20629,18 @@ our %unified_info = ( "crypto/sha/sha512-sparcv9.o" => [ "crypto" ], + "crypto/sm3/sm3-armv8.o" => [ + "crypto" + ], + "crypto/sm4/sm4-armv8.o" => [ + "crypto" + ], + "crypto/sm4/vpsm4-armv8.o" => [ + "crypto" + ], + "crypto/sm4/vpsm4_ex-armv8.o" => [ + "crypto" + ], "doc/man1/openssl-asn1parse.pod" => [ "doc" ], @@ -18012,6 +20773,9 @@ our %unified_info = ( "doc/man1/openssl-sess_id.pod" => [ "doc" ], + "doc/man1/openssl-skeyutl.pod" => [ + "doc" + ], "doc/man1/openssl-smime.pod" => [ "doc" ], @@ -18039,6 +20803,24 @@ our %unified_info = ( "doc/man1/openssl-x509.pod" => [ "doc" ], + "exporters/OpenSSLConfig.cmake" => [ + "." + ], + "exporters/OpenSSLConfigVersion.cmake" => [ + "." + ], + "exporters/libcrypto.pc" => [ + "." + ], + "exporters/libssl.pc" => [ + "." + ], + "exporters/openssl.pc" => [ + "." + ], + "fuzz/acert-test" => [ + "include" + ], "fuzz/asn1-test" => [ "include" ], @@ -18069,12 +20851,69 @@ our %unified_info = ( "fuzz/ct-test" => [ "include" ], + "fuzz/decoder-test" => [ + "include" + ], + "fuzz/dtlsclient-test" => [ + "include" + ], + "fuzz/dtlsserver-test" => [ + "include" + ], + "fuzz/hashtable-test" => [ + "include" + ], + "fuzz/ml-dsa-test" => [ + "include" + ], + "fuzz/ml-kem-test" => [ + "include" + ], + "fuzz/pem-test" => [ + "include" + ], + "fuzz/provider-test" => [ + "include" + ], + "fuzz/punycode-test" => [ + "include" + ], + "fuzz/quic-client-test" => [ + "include" + ], + "fuzz/quic-lcidm-test" => [ + "include" + ], + "fuzz/quic-rcidm-test" => [ + "include" + ], + "fuzz/quic-server-test" => [ + "include" + ], + "fuzz/quic-srtm-test" => [ + "include" + ], "fuzz/server-test" => [ "include" ], + "fuzz/slh-dsa-test" => [ + "include" + ], + "fuzz/smime-test" => [ + "include" + ], + "fuzz/v3name-test" => [ + "include" + ], "fuzz/x509-test" => [ "include" ], + "include/internal/param_names.h" => [ + "util/perl" + ], + "include/openssl/core_names.h" => [ + "util/perl" + ], "libcrypto" => [ ".", "include", @@ -18085,6 +20924,9 @@ our %unified_info = ( ".", "util/perl/OpenSSL" ], + "libcrypto.pc" => [ + "." + ], "libssl" => [ ".", "include" @@ -18093,6 +20935,12 @@ our %unified_info = ( ".", "util/perl/OpenSSL" ], + "libssl.pc" => [ + "." + ], + "openssl.pc" => [ + "." + ], "providers/common/der/der_digests_gen.c" => [ "providers/common/der" ], @@ -18132,6 +20980,15 @@ our %unified_info = ( "providers/common/der/der_ecx_key.o" => [ "providers/common/include/prov" ], + "providers/common/der/der_ml_dsa_gen.c" => [ + "providers/common/der" + ], + "providers/common/der/der_ml_dsa_gen.o" => [ + "providers/common/include/prov" + ], + "providers/common/der/der_ml_dsa_key.o" => [ + "providers/common/include/prov" + ], "providers/common/der/der_rsa_gen.c" => [ "providers/common/der" ], @@ -18144,6 +21001,15 @@ our %unified_info = ( "providers/common/der/der_rsa_sig.o" => [ "providers/common/include/prov" ], + "providers/common/der/der_slh_dsa_gen.c" => [ + "providers/common/der" + ], + "providers/common/der/der_slh_dsa_gen.o" => [ + "providers/common/include/prov" + ], + "providers/common/der/der_slh_dsa_key.o" => [ + "providers/common/include/prov" + ], "providers/common/der/der_sm2_gen.c" => [ "providers/common/der" ], @@ -18189,12 +21055,24 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ecx_key.o" => [ "providers/common/include/prov" ], + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o" => [ + "providers/common/include/prov" + ], + "providers/common/der/libcommon-lib-der_ml_dsa_key.o" => [ + "providers/common/include/prov" + ], "providers/common/der/libcommon-lib-der_rsa_gen.o" => [ "providers/common/include/prov" ], "providers/common/der/libcommon-lib-der_rsa_key.o" => [ "providers/common/include/prov" ], + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o" => [ + "providers/common/include/prov" + ], + "providers/common/der/libcommon-lib-der_slh_dsa_key.o" => [ + "providers/common/include/prov" + ], "providers/common/der/libcommon-lib-der_wrap_gen.o" => [ "providers/common/include/prov" ], @@ -18225,9 +21103,15 @@ our %unified_info = ( "providers/common/include/prov/der_ecx.h" => [ "providers/common/der" ], + "providers/common/include/prov/der_ml_dsa.h" => [ + "providers/common/der" + ], "providers/common/include/prov/der_rsa.h" => [ "providers/common/der" ], + "providers/common/include/prov/der_slh_dsa.h" => [ + "providers/common/der" + ], "providers/common/include/prov/der_sm2.h" => [ "providers/common/der" ], @@ -18270,9 +21154,15 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-eddsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/libdefault-lib-rsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/libdefault-lib-sm2_sig.o" => [ "providers/common/include/prov" ], @@ -18285,12 +21175,24 @@ our %unified_info = ( "providers/implementations/signature/libfips-lib-eddsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/libfips-lib-rsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o" => [ + "providers/common/include/prov" + ], + "providers/implementations/signature/ml_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/rsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/slh_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/sm2_sig.o" => [ "providers/common/include/prov" ], @@ -18303,28 +21205,39 @@ our %unified_info = ( "crypto", "include", "providers/implementations/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" ], "providers/libdefault.a" => [ ".", "crypto", "include", "providers/implementations/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" ], "providers/libfips.a" => [ ".", "crypto", "include", "providers/implementations/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" ], "providers/liblegacy.a" => [ ".", "crypto", "include", "providers/implementations/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" + ], + "providers/libtemplate.a" => [ + "crypto", + "include", + "providers/implementations/include", + "providers/common/include", + "providers/fips/include" ], "test/aborttest" => [ "include", @@ -18393,6 +21306,14 @@ our %unified_info = ( "include", "apps/include" ], + "test/bio_addr_test" => [ + "include", + "apps/include" + ], + "test/bio_base64_test" => [ + "include", + "apps/include" + ], "test/bio_callback_test" => [ "include", "apps/include" @@ -18401,11 +21322,20 @@ our %unified_info = ( "include", "apps/include" ], + "test/bio_dgram_test" => [ + "include", + "apps/include", + "." + ], "test/bio_enc_test" => [ "include", "apps/include" ], - "test/bio_memleak_test" => [ + "test/bio_memleak_test" => [ + "include", + "apps/include" + ], + "test/bio_meth_test" => [ "include", "apps/include" ], @@ -18422,6 +21352,11 @@ our %unified_info = ( "include", "apps/include" ], + "test/bio_tfo_test" => [ + "include", + "apps/include", + "." + ], "test/bioprinttest" => [ "include", "apps/include" @@ -18436,6 +21371,9 @@ our %unified_info = ( "include", "apps/include" ], + "test/build_wincrypt_test" => [ + "include" + ], "test/buildtest_c_aes" => [ "include" ], @@ -18451,6 +21389,9 @@ our %unified_info = ( "test/buildtest_c_buffer" => [ "include" ], + "test/buildtest_c_byteorder" => [ + "include" + ], "test/buildtest_c_camellia" => [ "include" ], @@ -18475,9 +21416,6 @@ our %unified_info = ( "test/buildtest_c_core_dispatch" => [ "include" ], - "test/buildtest_c_core_names" => [ - "include" - ], "test/buildtest_c_core_object" => [ "include" ], @@ -18502,6 +21440,9 @@ our %unified_info = ( "test/buildtest_c_e_os2" => [ "include" ], + "test/buildtest_c_e_ostime" => [ + "include" + ], "test/buildtest_c_ebcdic" => [ "include" ], @@ -18529,12 +21470,18 @@ our %unified_info = ( "test/buildtest_c_hmac" => [ "include" ], + "test/buildtest_c_hpke" => [ + "include" + ], "test/buildtest_c_http" => [ "include" ], "test/buildtest_c_idea" => [ "include" ], + "test/buildtest_c_indicator" => [ + "include" + ], "test/buildtest_c_kdf" => [ "include" ], @@ -18550,6 +21497,9 @@ our %unified_info = ( "test/buildtest_c_mdc2" => [ "include" ], + "test/buildtest_c_ml_kem" => [ + "include" + ], "test/buildtest_c_modes" => [ "include" ], @@ -18580,6 +21530,9 @@ our %unified_info = ( "test/buildtest_c_provider" => [ "include" ], + "test/buildtest_c_quic" => [ + "include" + ], "test/buildtest_c_rand" => [ "include" ], @@ -18622,6 +21575,9 @@ our %unified_info = ( "test/buildtest_c_symhacks" => [ "include" ], + "test/buildtest_c_thread" => [ + "include" + ], "test/buildtest_c_tls1" => [ "include" ], @@ -18637,10 +21593,24 @@ our %unified_info = ( "test/buildtest_c_whrlpool" => [ "include" ], + "test/byteorder_test" => [ + "include", + "apps/include" + ], + "test/ca_internals_test" => [ + ".", + "include", + "apps/include" + ], "test/casttest" => [ "include", "apps/include" ], + "test/cert_comp_test" => [ + "include", + "apps/include", + "." + ], "test/chacha_internal_test" => [ ".", "include", @@ -18764,6 +21734,11 @@ our %unified_info = ( "include", "apps/include" ], + "test/decoder_propq_test" => [ + ".", + "include", + "apps/include" + ], "test/defltfips_test" => [ "include", "apps/include" @@ -18779,7 +21754,8 @@ our %unified_info = ( "test/drbgtest" => [ "include", "apps/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" ], "test/dsa_no_digest_size_test" => [ "include", @@ -18822,7 +21798,9 @@ our %unified_info = ( "test/endecode_test" => [ ".", "include", - "apps/include" + "apps/include", + "providers/common/include", + "providers/implementations/include" ], "test/endecoder_legacy_test" => [ ".", @@ -18867,6 +21845,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/evp_pkey_dhkem_test" => [ + "include", + "apps/include" + ], "test/evp_pkey_dparams_test" => [ "include", "apps/include" @@ -18875,10 +21857,18 @@ our %unified_info = ( "include", "apps/include" ], + "test/evp_skey_test" => [ + "include", + "apps/include" + ], "test/evp_test" => [ "include", "apps/include" ], + "test/evp_xof_test" => [ + "include", + "apps/include" + ], "test/exdatatest" => [ "include", "apps/include" @@ -18979,22 +21969,62 @@ our %unified_info = ( ".", "include" ], + "test/helpers/json_test-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/helpers/pkcs12.o" => [ ".", "include" ], + "test/helpers/pkcs12_api_test-bin-pkcs12.o" => [ + ".", + "include" + ], "test/helpers/pkcs12_format_test-bin-pkcs12.o" => [ ".", "include" ], + "test/helpers/quic_multistream_test-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quic_newcid_test-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quic_radix_test-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quic_srt_gen_test-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quicapitest-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quicfaultstest-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/helpers/recordlentest-bin-ssltestlib.o" => [ ".", "include" ], + "test/helpers/rpktest-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/helpers/servername_test-bin-ssltestlib.o" => [ ".", "include" ], + "test/helpers/ssl_handshake_rtt_test-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/helpers/ssl_test-bin-handshake.o" => [ ".", "include" @@ -19028,6 +22058,10 @@ our %unified_info = ( ".", "include" ], + "test/helpers/tls13groupselection_test-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/hexstr_test" => [ ".", "include", @@ -19037,6 +22071,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/hpke_test" => [ + "include", + "apps/include" + ], "test/http_test" => [ "include", "apps/include" @@ -19049,6 +22087,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/json_test" => [ + "include", + "apps/include" + ], "test/keymgmt_internal_test" => [ ".", "include", @@ -19063,6 +22105,10 @@ our %unified_info = ( "apps/include", "." ], + "test/list_test" => [ + "include", + "apps/include" + ], "test/localetest" => [ "include", "apps/include" @@ -19076,10 +22122,27 @@ our %unified_info = ( "include", "apps/include" ], + "test/membio_test" => [ + "include", + "apps/include", + "." + ], "test/memleaktest" => [ "include", "apps/include" ], + "test/ml_dsa_test" => [ + "include", + "apps/include" + ], + "test/ml_kem_evp_extra_test" => [ + "include", + "apps/include" + ], + "test/ml_kem_internal_test" => [ + "include", + "apps/include" + ], "test/modes_internal_test" => [ ".", "include", @@ -19114,6 +22177,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/pairwise_fail_test" => [ + "include", + "apps/include" + ], "test/param_build_test" => [ "include", "apps/include" @@ -19147,6 +22214,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/pkcs12_api_test" => [ + "include", + "apps/include" + ], "test/pkcs12_format_test" => [ "include", "apps/include" @@ -19168,6 +22239,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/priority_queue_test" => [ + "include", + "apps/include" + ], "test/property_test" => [ ".", "include", @@ -19181,6 +22256,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/provider_default_search_path_test" => [ + "include", + "apps/include" + ], "test/provider_fallback_test" => [ "include", "apps/include" @@ -19207,6 +22286,97 @@ our %unified_info = ( "include", "apps/include" ], + "test/quic_ackm_test" => [ + "include", + "apps/include" + ], + "test/quic_cc_test" => [ + "include", + "apps/include" + ], + "test/quic_cfq_test" => [ + "include", + "apps/include" + ], + "test/quic_client_test" => [ + "include", + "apps/include" + ], + "test/quic_fc_test" => [ + "include", + "apps/include" + ], + "test/quic_fifd_test" => [ + "include", + "apps/include" + ], + "test/quic_lcidm_test" => [ + "include", + "apps/include" + ], + "test/quic_multistream_test" => [ + "include", + "apps/include" + ], + "test/quic_newcid_test" => [ + "include", + "apps/include", + "." + ], + "test/quic_qlog_test" => [ + "include", + "apps/include" + ], + "test/quic_radix_test" => [ + "include", + "apps/include" + ], + "test/quic_rcidm_test" => [ + "include", + "apps/include" + ], + "test/quic_record_test" => [ + "include", + "apps/include" + ], + "test/quic_srt_gen_test" => [ + "include", + "apps/include", + "." + ], + "test/quic_srtm_test" => [ + "include", + "apps/include" + ], + "test/quic_stream_test" => [ + "include", + "apps/include" + ], + "test/quic_tserver_test" => [ + "include", + "apps/include" + ], + "test/quic_txp_test" => [ + "include", + "apps/include" + ], + "test/quic_txpim_test" => [ + "include", + "apps/include" + ], + "test/quic_wire_test" => [ + "include", + "apps/include" + ], + "test/quicapitest" => [ + "include", + "apps/include" + ], + "test/quicfaultstest" => [ + "include", + "apps/include", + "." + ], "test/rand_status_test" => [ "include", "apps/include" @@ -19227,14 +22397,20 @@ our %unified_info = ( "include", "apps/include" ], - "test/rdrand_sanitytest" => [ + "test/rdcpu_sanitytest" => [ "include", - "apps/include" + "apps/include", + "crypto" ], "test/recordlentest" => [ "include", "apps/include" ], + "test/rpktest" => [ + "include", + "apps/include", + "." + ], "test/rsa_complex" => [ "include", "apps/include" @@ -19253,6 +22429,15 @@ our %unified_info = ( "include", "apps/include" ], + "test/rsa_x931_test" => [ + ".", + "include", + "apps/include" + ], + "test/safe_math_test" => [ + "include", + "apps/include" + ], "test/sanitytest" => [ "include", "apps/include" @@ -19274,6 +22459,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/slh_dsa_test" => [ + "include", + "apps/include" + ], "test/sm2_internal_test" => [ "include", "apps/include" @@ -19304,6 +22493,11 @@ our %unified_info = ( "include", "apps/include" ], + "test/ssl_handshake_rtt_test" => [ + "include", + "apps/include", + "." + ], "test/ssl_old_test" => [ ".", "include", @@ -19320,6 +22514,7 @@ our %unified_info = ( "test/sslapitest" => [ "include", "apps/include", + "providers/common/include", "." ], "test/sslbuffertest" => [ @@ -19334,6 +22529,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/strtoultest" => [ + "include", + "apps/include" + ], "test/sysdefaulttest" => [ "include", "apps/include" @@ -19342,7 +22541,13 @@ our %unified_info = ( "include", "apps/include" ], + "test/threadpool_test" => [ + ".", + "include", + "apps/include" + ], "test/threadstest" => [ + ".", "include", "apps/include" ], @@ -19354,6 +22559,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/time_test" => [ + "include", + "apps/include" + ], "test/tls13ccstest" => [ "include", "apps/include" @@ -19363,6 +22572,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/tls13groupselection_test" => [ + "include", + "apps/include" + ], "test/trace_api_test" => [ ".", "include", @@ -19401,6 +22614,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/x509_acert_test" => [ + "include", + "apps/include" + ], "test/x509_check_cert_pkey_test" => [ "include", "apps/include" @@ -19414,6 +22631,18 @@ our %unified_info = ( "include", "apps/include" ], + "test/x509_load_cert_file_test" => [ + "include", + "apps/include" + ], + "test/x509_req_test" => [ + "include", + "apps/include" + ], + "test/x509_test" => [ + "include", + "apps/include" + ], "test/x509_time_test" => [ "include", "apps/include" @@ -19435,6 +22664,7 @@ our %unified_info = ( "providers/libdefault.a", "providers/libfips.a", "providers/liblegacy.a", + "providers/libtemplate.a", "test/libtestutil.a" ], "mandocs" => { @@ -19487,6 +22717,7 @@ our %unified_info = ( "doc/man/man1/openssl-s_server.1", "doc/man/man1/openssl-s_time.1", "doc/man/man1/openssl-sess_id.1", + "doc/man/man1/openssl-skeyutl.1", "doc/man/man1/openssl-smime.1", "doc/man/man1/openssl-speed.1", "doc/man/man1/openssl-spkac.1", @@ -19536,6 +22767,7 @@ our %unified_info = ( "doc/man/man3/BIO_find_type.3", "doc/man/man3/BIO_get_data.3", "doc/man/man3/BIO_get_ex_new_index.3", + "doc/man/man3/BIO_get_rpoll_descriptor.3", "doc/man/man3/BIO_meth_new.3", "doc/man/man3/BIO_new.3", "doc/man/man3/BIO_new_CMS.3", @@ -19548,11 +22780,13 @@ our %unified_info = ( "doc/man/man3/BIO_s_connect.3", "doc/man/man3/BIO_s_core.3", "doc/man/man3/BIO_s_datagram.3", + "doc/man/man3/BIO_s_dgram_pair.3", "doc/man/man3/BIO_s_fd.3", "doc/man/man3/BIO_s_file.3", "doc/man/man3/BIO_s_mem.3", "doc/man/man3/BIO_s_null.3", "doc/man/man3/BIO_s_socket.3", + "doc/man/man3/BIO_sendmmsg.3", "doc/man/man3/BIO_set_callback.3", "doc/man/man3/BIO_should_retry.3", "doc/man/man3/BIO_socket_wait.3", @@ -19577,6 +22811,7 @@ our %unified_info = ( "doc/man/man3/BN_swap.3", "doc/man/man3/BN_zero.3", "doc/man/man3/BUF_MEM_new.3", + "doc/man/man3/CMAC_CTX.3", "doc/man/man3/CMS_EncryptedData_decrypt.3", "doc/man/man3/CMS_EncryptedData_encrypt.3", "doc/man/man3/CMS_EnvelopedData_create.3", @@ -19599,6 +22834,7 @@ our %unified_info = ( "doc/man/man3/CMS_uncompress.3", "doc/man/man3/CMS_verify.3", "doc/man/man3/CMS_verify_receipt.3", + "doc/man/man3/COMP_CTX_new.3", "doc/man/man3/CONF_modules_free.3", "doc/man/man3/CONF_modules_load_file.3", "doc/man/man3/CRYPTO_THREAD_run_once.3", @@ -19632,6 +22868,8 @@ our %unified_info = ( "doc/man/man3/DSA_size.3", "doc/man/man3/DTLS_get_data_mtu.3", "doc/man/man3/DTLS_set_timer_cb.3", + "doc/man/man3/DTLSv1_get_timeout.3", + "doc/man/man3/DTLSv1_handle_timeout.3", "doc/man/man3/DTLSv1_listen.3", "doc/man/man3/ECDSA_SIG_new.3", "doc/man/man3/ECDSA_sign.3", @@ -19678,6 +22916,7 @@ our %unified_info = ( "doc/man/man3/EVP_PKEY_CTX_ctrl.3", "doc/man/man3/EVP_PKEY_CTX_get0_libctx.3", "doc/man/man3/EVP_PKEY_CTX_get0_pkey.3", + "doc/man/man3/EVP_PKEY_CTX_get_algor.3", "doc/man/man3/EVP_PKEY_CTX_new.3", "doc/man/man3/EVP_PKEY_CTX_set1_pbe_pass.3", "doc/man/man3/EVP_PKEY_CTX_set_hkdf_md.3", @@ -19717,6 +22956,8 @@ our %unified_info = ( "doc/man/man3/EVP_PKEY_verify_recover.3", "doc/man/man3/EVP_RAND.3", "doc/man/man3/EVP_SIGNATURE.3", + "doc/man/man3/EVP_SKEY.3", + "doc/man/man3/EVP_SKEYMGMT.3", "doc/man/man3/EVP_SealInit.3", "doc/man/man3/EVP_SignInit.3", "doc/man/man3/EVP_VerifyInit.3", @@ -19746,6 +22987,7 @@ our %unified_info = ( "doc/man/man3/EVP_sm3.3", "doc/man/man3/EVP_sm4_cbc.3", "doc/man/man3/EVP_whirlpool.3", + "doc/man/man3/GENERAL_NAME.3", "doc/man/man3/HMAC.3", "doc/man/man3/MD5.3", "doc/man/man3/MDC2_Init.3", @@ -19770,14 +23012,18 @@ our %unified_info = ( "doc/man/man3/OPENSSL_init_ssl.3", "doc/man/man3/OPENSSL_instrument_bus.3", "doc/man/man3/OPENSSL_load_builtin_modules.3", + "doc/man/man3/OPENSSL_load_u16_le.3", "doc/man/man3/OPENSSL_malloc.3", + "doc/man/man3/OPENSSL_riscvcap.3", "doc/man/man3/OPENSSL_s390xcap.3", "doc/man/man3/OPENSSL_secure_malloc.3", "doc/man/man3/OPENSSL_strcasecmp.3", "doc/man/man3/OSSL_ALGORITHM.3", "doc/man/man3/OSSL_CALLBACK.3", + "doc/man/man3/OSSL_CMP_ATAV_set0.3", "doc/man/man3/OSSL_CMP_CTX_new.3", "doc/man/man3/OSSL_CMP_HDR_get0_transactionID.3", + "doc/man/man3/OSSL_CMP_ITAV_new_caCerts.3", "doc/man/man3/OSSL_CMP_ITAV_set0.3", "doc/man/man3/OSSL_CMP_MSG_get0_header.3", "doc/man/man3/OSSL_CMP_MSG_http_perform.3", @@ -19801,18 +23047,27 @@ our %unified_info = ( "doc/man/man3/OSSL_ENCODER_CTX.3", "doc/man/man3/OSSL_ENCODER_CTX_new_for_pkey.3", "doc/man/man3/OSSL_ENCODER_to_bio.3", + "doc/man/man3/OSSL_ERR_STATE_save.3", "doc/man/man3/OSSL_ESS_check_signing_certs.3", + "doc/man/man3/OSSL_GENERAL_NAMES_print.3", + "doc/man/man3/OSSL_HPKE_CTX_new.3", "doc/man/man3/OSSL_HTTP_REQ_CTX.3", "doc/man/man3/OSSL_HTTP_parse_url.3", "doc/man/man3/OSSL_HTTP_transfer.3", + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX.3", + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX_print.3", + "doc/man/man3/OSSL_INDICATOR_set_callback.3", "doc/man/man3/OSSL_ITEM.3", "doc/man/man3/OSSL_LIB_CTX.3", + "doc/man/man3/OSSL_LIB_CTX_set_conf_diagnostics.3", "doc/man/man3/OSSL_PARAM.3", "doc/man/man3/OSSL_PARAM_BLD.3", "doc/man/man3/OSSL_PARAM_allocate_from_text.3", "doc/man/man3/OSSL_PARAM_dup.3", "doc/man/man3/OSSL_PARAM_int.3", + "doc/man/man3/OSSL_PARAM_print_to_bio.3", "doc/man/man3/OSSL_PROVIDER.3", + "doc/man/man3/OSSL_QUIC_client_method.3", "doc/man/man3/OSSL_SELF_TEST_new.3", "doc/man/man3/OSSL_SELF_TEST_set_callback.3", "doc/man/man3/OSSL_STORE_INFO.3", @@ -19821,11 +23076,13 @@ our %unified_info = ( "doc/man/man3/OSSL_STORE_attach.3", "doc/man/man3/OSSL_STORE_expect.3", "doc/man/man3/OSSL_STORE_open.3", + "doc/man/man3/OSSL_sleep.3", "doc/man/man3/OSSL_trace_enabled.3", "doc/man/man3/OSSL_trace_get_category_num.3", "doc/man/man3/OSSL_trace_set_channel.3", "doc/man/man3/OpenSSL_add_all_algorithms.3", "doc/man/man3/OpenSSL_version.3", + "doc/man/man3/PBMAC1_get1_pbkdf2_param.3", "doc/man/man3/PEM_X509_INFO_read_bio_ex.3", "doc/man/man3/PEM_bytes_read_bio.3", "doc/man/man3/PEM_read.3", @@ -19838,6 +23095,7 @@ our %unified_info = ( "doc/man/man3/PKCS12_SAFEBAG_create_cert.3", "doc/man/man3/PKCS12_SAFEBAG_get0_attrs.3", "doc/man/man3/PKCS12_SAFEBAG_get1_cert.3", + "doc/man/man3/PKCS12_SAFEBAG_set0_attrs.3", "doc/man/man3/PKCS12_add1_attr_by_NID.3", "doc/man/man3/PKCS12_add_CSPName_asc.3", "doc/man/man3/PKCS12_add_cert.3", @@ -19929,6 +23187,7 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_sess_set_get_cb.3", "doc/man/man3/SSL_CTX_sessions.3", "doc/man/man3/SSL_CTX_set0_CA_list.3", + "doc/man/man3/SSL_CTX_set1_cert_comp_preference.3", "doc/man/man3/SSL_CTX_set1_curves.3", "doc/man/man3/SSL_CTX_set1_sigalgs.3", "doc/man/man3/SSL_CTX_set1_verify_cert_store.3", @@ -19942,6 +23201,7 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_ct_validation_callback.3", "doc/man/man3/SSL_CTX_set_ctlog_list_file.3", "doc/man/man3/SSL_CTX_set_default_passwd_cb.3", + "doc/man/man3/SSL_CTX_set_domain_flags.3", "doc/man/man3/SSL_CTX_set_generate_session_id.3", "doc/man/man3/SSL_CTX_set_info_callback.3", "doc/man/man3/SSL_CTX_set_keylog_callback.3", @@ -19949,6 +23209,7 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_min_proto_version.3", "doc/man/man3/SSL_CTX_set_mode.3", "doc/man/man3/SSL_CTX_set_msg_callback.3", + "doc/man/man3/SSL_CTX_set_new_pending_conn_cb.3", "doc/man/man3/SSL_CTX_set_num_tickets.3", "doc/man/man3/SSL_CTX_set_options.3", "doc/man/man3/SSL_CTX_set_psk_client_callback.3", @@ -19987,6 +23248,7 @@ our %unified_info = ( "doc/man/man3/SSL_SESSION_print.3", "doc/man/man3/SSL_SESSION_set1_id.3", "doc/man/man3/SSL_accept.3", + "doc/man/man3/SSL_accept_stream.3", "doc/man/man3/SSL_alert_type_string.3", "doc/man/man3/SSL_alloc_buffers.3", "doc/man/man3/SSL_check_chain.3", @@ -19996,59 +23258,90 @@ our %unified_info = ( "doc/man/man3/SSL_export_keying_material.3", "doc/man/man3/SSL_extension_supported.3", "doc/man/man3/SSL_free.3", + "doc/man/man3/SSL_get0_connection.3", + "doc/man/man3/SSL_get0_group_name.3", + "doc/man/man3/SSL_get0_peer_rpk.3", "doc/man/man3/SSL_get0_peer_scts.3", + "doc/man/man3/SSL_get1_builtin_sigalgs.3", "doc/man/man3/SSL_get_SSL_CTX.3", "doc/man/man3/SSL_get_all_async_fds.3", "doc/man/man3/SSL_get_certificate.3", "doc/man/man3/SSL_get_ciphers.3", "doc/man/man3/SSL_get_client_random.3", + "doc/man/man3/SSL_get_conn_close_info.3", "doc/man/man3/SSL_get_current_cipher.3", "doc/man/man3/SSL_get_default_timeout.3", "doc/man/man3/SSL_get_error.3", + "doc/man/man3/SSL_get_event_timeout.3", "doc/man/man3/SSL_get_extms_support.3", "doc/man/man3/SSL_get_fd.3", + "doc/man/man3/SSL_get_handshake_rtt.3", "doc/man/man3/SSL_get_peer_cert_chain.3", "doc/man/man3/SSL_get_peer_certificate.3", "doc/man/man3/SSL_get_peer_signature_nid.3", "doc/man/man3/SSL_get_peer_tmp_key.3", "doc/man/man3/SSL_get_psk_identity.3", "doc/man/man3/SSL_get_rbio.3", + "doc/man/man3/SSL_get_rpoll_descriptor.3", "doc/man/man3/SSL_get_session.3", "doc/man/man3/SSL_get_shared_sigalgs.3", + "doc/man/man3/SSL_get_stream_id.3", + "doc/man/man3/SSL_get_stream_read_state.3", + "doc/man/man3/SSL_get_value_uint.3", "doc/man/man3/SSL_get_verify_result.3", "doc/man/man3/SSL_get_version.3", "doc/man/man3/SSL_group_to_name.3", + "doc/man/man3/SSL_handle_events.3", "doc/man/man3/SSL_in_init.3", + "doc/man/man3/SSL_inject_net_dgram.3", "doc/man/man3/SSL_key_update.3", "doc/man/man3/SSL_library_init.3", "doc/man/man3/SSL_load_client_CA_file.3", "doc/man/man3/SSL_new.3", + "doc/man/man3/SSL_new_domain.3", + "doc/man/man3/SSL_new_listener.3", + "doc/man/man3/SSL_new_stream.3", "doc/man/man3/SSL_pending.3", + "doc/man/man3/SSL_poll.3", "doc/man/man3/SSL_read.3", "doc/man/man3/SSL_read_early_data.3", "doc/man/man3/SSL_rstate_string.3", "doc/man/man3/SSL_session_reused.3", "doc/man/man3/SSL_set1_host.3", + "doc/man/man3/SSL_set1_initial_peer_addr.3", + "doc/man/man3/SSL_set1_server_cert_type.3", "doc/man/man3/SSL_set_async_callback.3", "doc/man/man3/SSL_set_bio.3", + "doc/man/man3/SSL_set_blocking_mode.3", "doc/man/man3/SSL_set_connect_state.3", + "doc/man/man3/SSL_set_default_stream_mode.3", "doc/man/man3/SSL_set_fd.3", + "doc/man/man3/SSL_set_incoming_stream_policy.3", + "doc/man/man3/SSL_set_quic_tls_cbs.3", "doc/man/man3/SSL_set_retry_verify.3", "doc/man/man3/SSL_set_session.3", + "doc/man/man3/SSL_set_session_secret_cb.3", "doc/man/man3/SSL_set_shutdown.3", "doc/man/man3/SSL_set_verify_result.3", "doc/man/man3/SSL_shutdown.3", "doc/man/man3/SSL_state_string.3", + "doc/man/man3/SSL_stream_conclude.3", + "doc/man/man3/SSL_stream_reset.3", "doc/man/man3/SSL_want.3", "doc/man/man3/SSL_write.3", "doc/man/man3/TS_RESP_CTX_new.3", - "doc/man/man3/TS_VERIFY_CTX_set_certs.3", + "doc/man/man3/TS_VERIFY_CTX.3", "doc/man/man3/UI_STRING.3", "doc/man/man3/UI_UTIL_read_pw.3", "doc/man/man3/UI_create_method.3", "doc/man/man3/UI_new.3", "doc/man/man3/X509V3_get_d2i.3", "doc/man/man3/X509V3_set_ctx.3", + "doc/man/man3/X509_ACERT_add1_attr.3", + "doc/man/man3/X509_ACERT_add_attr_nconf.3", + "doc/man/man3/X509_ACERT_get0_holder_baseCertId.3", + "doc/man/man3/X509_ACERT_get_attr.3", + "doc/man/man3/X509_ACERT_print_ex.3", "doc/man/man3/X509_ALGOR_dup.3", "doc/man/man3/X509_ATTRIBUTE.3", "doc/man/man3/X509_CRL_get0_by_serial.3", @@ -20065,6 +23358,7 @@ our %unified_info = ( "doc/man/man3/X509_REQ_get_attr.3", "doc/man/man3/X509_REQ_get_extensions.3", "doc/man/man3/X509_SIG_get0.3", + "doc/man/man3/X509_STORE_CTX_get_by_subject.3", "doc/man/man3/X509_STORE_CTX_get_error.3", "doc/man/man3/X509_STORE_CTX_new.3", "doc/man/man3/X509_STORE_CTX_set_verify_cb.3", @@ -20087,6 +23381,7 @@ our %unified_info = ( "doc/man/man3/X509_get0_notBefore.3", "doc/man/man3/X509_get0_signature.3", "doc/man/man3/X509_get0_uids.3", + "doc/man/man3/X509_get_default_cert_file.3", "doc/man/man3/X509_get_extension_flags.3", "doc/man/man3/X509_get_pubkey.3", "doc/man/man3/X509_get_serialNumber.3", @@ -20132,12 +23427,15 @@ our %unified_info = ( "doc/man/man7/EVP_CIPHER-RC5.7", "doc/man/man7/EVP_CIPHER-SEED.7", "doc/man/man7/EVP_CIPHER-SM4.7", + "doc/man/man7/EVP_KDF-ARGON2.7", "doc/man/man7/EVP_KDF-HKDF.7", + "doc/man/man7/EVP_KDF-HMAC-DRBG.7", "doc/man/man7/EVP_KDF-KB.7", "doc/man/man7/EVP_KDF-KRB5KDF.7", "doc/man/man7/EVP_KDF-PBKDF1.7", "doc/man/man7/EVP_KDF-PBKDF2.7", "doc/man/man7/EVP_KDF-PKCS12KDF.7", + "doc/man/man7/EVP_KDF-PVKKDF.7", "doc/man/man7/EVP_KDF-SCRYPT.7", "doc/man/man7/EVP_KDF-SS.7", "doc/man/man7/EVP_KDF-SSHKDF.7", @@ -20146,7 +23444,10 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-X942-ASN1.7", "doc/man/man7/EVP_KDF-X942-CONCAT.7", "doc/man/man7/EVP_KDF-X963.7", + "doc/man/man7/EVP_KEM-EC.7", + "doc/man/man7/EVP_KEM-ML-KEM.7", "doc/man/man7/EVP_KEM-RSA.7", + "doc/man/man7/EVP_KEM-X25519.7", "doc/man/man7/EVP_KEYEXCH-DH.7", "doc/man/man7/EVP_KEYEXCH-ECDH.7", "doc/man/man7/EVP_KEYEXCH-X25519.7", @@ -20158,6 +23459,7 @@ our %unified_info = ( "doc/man/man7/EVP_MAC-Poly1305.7", "doc/man/man7/EVP_MAC-Siphash.7", "doc/man/man7/EVP_MD-BLAKE2.7", + "doc/man/man7/EVP_MD-KECCAK.7", "doc/man/man7/EVP_MD-MD2.7", "doc/man/man7/EVP_MD-MD4.7", "doc/man/man7/EVP_MD-MD5-SHA1.7", @@ -20177,12 +23479,17 @@ our %unified_info = ( "doc/man/man7/EVP_PKEY-EC.7", "doc/man/man7/EVP_PKEY-FFC.7", "doc/man/man7/EVP_PKEY-HMAC.7", + "doc/man/man7/EVP_PKEY-ML-DSA.7", + "doc/man/man7/EVP_PKEY-ML-KEM.7", "doc/man/man7/EVP_PKEY-RSA.7", + "doc/man/man7/EVP_PKEY-SLH-DSA.7", "doc/man/man7/EVP_PKEY-SM2.7", "doc/man/man7/EVP_PKEY-X25519.7", + "doc/man/man7/EVP_RAND-CRNG-TEST.7", "doc/man/man7/EVP_RAND-CTR-DRBG.7", "doc/man/man7/EVP_RAND-HASH-DRBG.7", "doc/man/man7/EVP_RAND-HMAC-DRBG.7", + "doc/man/man7/EVP_RAND-JITTER.7", "doc/man/man7/EVP_RAND-SEED-SRC.7", "doc/man/man7/EVP_RAND-TEST-RAND.7", "doc/man/man7/EVP_RAND.7", @@ -20190,17 +23497,19 @@ our %unified_info = ( "doc/man/man7/EVP_SIGNATURE-ECDSA.7", "doc/man/man7/EVP_SIGNATURE-ED25519.7", "doc/man/man7/EVP_SIGNATURE-HMAC.7", + "doc/man/man7/EVP_SIGNATURE-ML-DSA.7", "doc/man/man7/EVP_SIGNATURE-RSA.7", + "doc/man/man7/EVP_SIGNATURE-SLH-DSA.7", "doc/man/man7/OSSL_PROVIDER-FIPS.7", "doc/man/man7/OSSL_PROVIDER-base.7", "doc/man/man7/OSSL_PROVIDER-default.7", "doc/man/man7/OSSL_PROVIDER-legacy.7", "doc/man/man7/OSSL_PROVIDER-null.7", + "doc/man/man7/OSSL_STORE-winstore.7", "doc/man/man7/RAND.7", "doc/man/man7/RSA-PSS.7", "doc/man/man7/X25519.7", "doc/man/man7/bio.7", - "doc/man/man7/crypto.7", "doc/man/man7/ct.7", "doc/man/man7/des_modes.7", "doc/man/man7/evp.7", @@ -20211,14 +23520,31 @@ our %unified_info = ( "doc/man/man7/life_cycle-mac.7", "doc/man/man7/life_cycle-pkey.7", "doc/man/man7/life_cycle-rand.7", - "doc/man/man7/migration_guide.7", "doc/man/man7/openssl-core.h.7", "doc/man/man7/openssl-core_dispatch.h.7", "doc/man/man7/openssl-core_names.h.7", "doc/man/man7/openssl-env.7", "doc/man/man7/openssl-glossary.7", + "doc/man/man7/openssl-qlog.7", + "doc/man/man7/openssl-quic-concurrency.7", + "doc/man/man7/openssl-quic.7", "doc/man/man7/openssl-threads.7", "doc/man/man7/openssl_user_macros.7", + "doc/man/man7/ossl-guide-introduction.7", + "doc/man/man7/ossl-guide-libcrypto-introduction.7", + "doc/man/man7/ossl-guide-libraries-introduction.7", + "doc/man/man7/ossl-guide-libssl-introduction.7", + "doc/man/man7/ossl-guide-migration.7", + "doc/man/man7/ossl-guide-quic-client-block.7", + "doc/man/man7/ossl-guide-quic-client-non-block.7", + "doc/man/man7/ossl-guide-quic-introduction.7", + "doc/man/man7/ossl-guide-quic-multi-stream.7", + "doc/man/man7/ossl-guide-quic-server-block.7", + "doc/man/man7/ossl-guide-quic-server-non-block.7", + "doc/man/man7/ossl-guide-tls-client-block.7", + "doc/man/man7/ossl-guide-tls-client-non-block.7", + "doc/man/man7/ossl-guide-tls-introduction.7", + "doc/man/man7/ossl-guide-tls-server-block.7", "doc/man/man7/ossl_store-file.7", "doc/man/man7/ossl_store.7", "doc/man/man7/passphrase-encoding.7", @@ -20237,10 +23563,10 @@ our %unified_info = ( "doc/man/man7/provider-object.7", "doc/man/man7/provider-rand.7", "doc/man/man7/provider-signature.7", + "doc/man/man7/provider-skeymgmt.7", "doc/man/man7/provider-storemgmt.7", "doc/man/man7/provider.7", "doc/man/man7/proxy-certificates.7", - "doc/man/man7/ssl.7", "doc/man/man7/x509.7" ] }, @@ -20252,6 +23578,7 @@ our %unified_info = ( ], "programs" => [ "apps/openssl", + "fuzz/acert-test", "fuzz/asn1-test", "fuzz/asn1parse-test", "fuzz/bignum-test", @@ -20262,7 +23589,24 @@ our %unified_info = ( "fuzz/conf-test", "fuzz/crl-test", "fuzz/ct-test", + "fuzz/decoder-test", + "fuzz/dtlsclient-test", + "fuzz/dtlsserver-test", + "fuzz/hashtable-test", + "fuzz/ml-dsa-test", + "fuzz/ml-kem-test", + "fuzz/pem-test", + "fuzz/provider-test", + "fuzz/punycode-test", + "fuzz/quic-client-test", + "fuzz/quic-lcidm-test", + "fuzz/quic-rcidm-test", + "fuzz/quic-server-test", + "fuzz/quic-srtm-test", "fuzz/server-test", + "fuzz/slh-dsa-test", + "fuzz/smime-test", + "fuzz/v3name-test", "fuzz/x509-test", "test/aborttest", "test/acvp_test", @@ -20280,21 +23624,28 @@ our %unified_info = ( "test/asynctest", "test/bad_dtls_test", "test/bftest", + "test/bio_addr_test", + "test/bio_base64_test", "test/bio_callback_test", "test/bio_core_test", + "test/bio_dgram_test", "test/bio_enc_test", "test/bio_memleak_test", + "test/bio_meth_test", "test/bio_prefix_text", "test/bio_pw_callback_test", "test/bio_readbuffer_test", + "test/bio_tfo_test", "test/bioprinttest", "test/bn_internal_test", "test/bntest", + "test/build_wincrypt_test", "test/buildtest_c_aes", "test/buildtest_c_async", "test/buildtest_c_blowfish", "test/buildtest_c_bn", "test/buildtest_c_buffer", + "test/buildtest_c_byteorder", "test/buildtest_c_camellia", "test/buildtest_c_cast", "test/buildtest_c_cmac", @@ -20303,7 +23654,6 @@ our %unified_info = ( "test/buildtest_c_conftypes", "test/buildtest_c_core", "test/buildtest_c_core_dispatch", - "test/buildtest_c_core_names", "test/buildtest_c_core_object", "test/buildtest_c_cryptoerr_legacy", "test/buildtest_c_decoder", @@ -20312,6 +23662,7 @@ our %unified_info = ( "test/buildtest_c_dsa", "test/buildtest_c_dtls1", "test/buildtest_c_e_os2", + "test/buildtest_c_e_ostime", "test/buildtest_c_ebcdic", "test/buildtest_c_ec", "test/buildtest_c_ecdh", @@ -20321,13 +23672,16 @@ our %unified_info = ( "test/buildtest_c_evp", "test/buildtest_c_fips_names", "test/buildtest_c_hmac", + "test/buildtest_c_hpke", "test/buildtest_c_http", "test/buildtest_c_idea", + "test/buildtest_c_indicator", "test/buildtest_c_kdf", "test/buildtest_c_macros", "test/buildtest_c_md4", "test/buildtest_c_md5", "test/buildtest_c_mdc2", + "test/buildtest_c_ml_kem", "test/buildtest_c_modes", "test/buildtest_c_obj_mac", "test/buildtest_c_objects", @@ -20338,6 +23692,7 @@ our %unified_info = ( "test/buildtest_c_pem2", "test/buildtest_c_prov_ssl", "test/buildtest_c_provider", + "test/buildtest_c_quic", "test/buildtest_c_rand", "test/buildtest_c_rc2", "test/buildtest_c_rc4", @@ -20352,11 +23707,14 @@ our %unified_info = ( "test/buildtest_c_stack", "test/buildtest_c_store", "test/buildtest_c_symhacks", + "test/buildtest_c_thread", "test/buildtest_c_tls1", "test/buildtest_c_ts", "test/buildtest_c_txt_db", "test/buildtest_c_types", "test/buildtest_c_whrlpool", + "test/byteorder_test", + "test/ca_internals_test", "test/casttest", "test/chacha_internal_test", "test/cipher_overhead_test", @@ -20385,6 +23743,7 @@ our %unified_info = ( "test/curve448_internal_test", "test/d2i_test", "test/danetest", + "test/decoder_propq_test", "test/defltfips_test", "test/destest", "test/dhtest", @@ -20409,9 +23768,12 @@ our %unified_info = ( "test/evp_kdf_test", "test/evp_libctx_test", "test/evp_pkey_ctx_new_from_name", + "test/evp_pkey_dhkem_test", "test/evp_pkey_dparams_test", "test/evp_pkey_provided_test", + "test/evp_skey_test", "test/evp_test", + "test/evp_xof_test", "test/exdatatest", "test/exptest", "test/ext_internal_test", @@ -20421,21 +23783,29 @@ our %unified_info = ( "test/gmdifftest", "test/hexstr_test", "test/hmactest", + "test/hpke_test", "test/http_test", "test/ideatest", "test/igetest", + "test/json_test", "test/keymgmt_internal_test", "test/lhash_test", + "test/list_test", "test/localetest", "test/mdc2_internal_test", "test/mdc2test", + "test/membio_test", "test/memleaktest", + "test/ml_dsa_test", + "test/ml_kem_evp_extra_test", + "test/ml_kem_internal_test", "test/modes_internal_test", "test/namemap_internal_test", "test/nodefltctxtest", "test/ocspapitest", "test/ossl_store_test", "test/packettest", + "test/pairwise_fail_test", "test/param_build_test", "test/params_api_test", "test/params_conversion_test", @@ -20444,36 +23814,65 @@ our %unified_info = ( "test/pbetest", "test/pem_read_depr_test", "test/pemtest", + "test/pkcs12_api_test", "test/pkcs12_format_test", "test/pkcs7_test", "test/pkey_meth_kdf_test", "test/pkey_meth_test", "test/poly1305_internal_test", + "test/priority_queue_test", "test/property_test", "test/prov_config_test", "test/provfetchtest", + "test/provider_default_search_path_test", "test/provider_fallback_test", "test/provider_internal_test", "test/provider_pkey_test", "test/provider_status_test", "test/provider_test", "test/punycode_test", + "test/quic_ackm_test", + "test/quic_cc_test", + "test/quic_cfq_test", + "test/quic_client_test", + "test/quic_fc_test", + "test/quic_fifd_test", + "test/quic_lcidm_test", + "test/quic_multistream_test", + "test/quic_newcid_test", + "test/quic_qlog_test", + "test/quic_radix_test", + "test/quic_rcidm_test", + "test/quic_record_test", + "test/quic_srt_gen_test", + "test/quic_srtm_test", + "test/quic_stream_test", + "test/quic_tserver_test", + "test/quic_txp_test", + "test/quic_txpim_test", + "test/quic_wire_test", + "test/quicapitest", + "test/quicfaultstest", "test/rand_status_test", "test/rand_test", "test/rc2test", "test/rc4test", "test/rc5test", - "test/rdrand_sanitytest", + "test/rdcpu_sanitytest", "test/recordlentest", + "test/rpktest", "test/rsa_complex", "test/rsa_mp_test", "test/rsa_sp800_56b_test", "test/rsa_test", + "test/rsa_x931_test", + "test/safe_math_test", "test/sanitytest", "test/secmemtest", "test/servername_test", "test/sha_test", "test/siphash_internal_test", + "test/slh_dsa_test", "test/sm2_internal_test", "test/sm3_internal_test", "test/sm4_internal_test", @@ -20481,6 +23880,7 @@ our %unified_info = ( "test/srptest", "test/ssl_cert_table_internal_test", "test/ssl_ctx_test", + "test/ssl_handshake_rtt_test", "test/ssl_old_test", "test/ssl_test", "test/ssl_test_ctx_test", @@ -20488,13 +23888,17 @@ our %unified_info = ( "test/sslbuffertest", "test/sslcorrupttest", "test/stack_test", + "test/strtoultest", "test/sysdefaulttest", "test/test_test", + "test/threadpool_test", "test/threadstest", "test/threadstest_fips", "test/time_offset_test", + "test/time_test", "test/tls13ccstest", "test/tls13encryptiontest", + "test/tls13groupselection_test", "test/trace_api_test", "test/uitest", "test/upcallstest", @@ -20504,9 +23908,13 @@ our %unified_info = ( "test/verify_extra_test", "test/versions", "test/wpackettest", + "test/x509_acert_test", "test/x509_check_cert_pkey_test", "test/x509_dup_cert_test", "test/x509_internal_test", + "test/x509_load_cert_file_test", + "test/x509_req_test", + "test/x509_test", "test/x509_time_test", "test/x509aux" ], @@ -20522,6 +23930,33 @@ our %unified_info = ( "apps/CA.pl" => [ "apps/CA.pl.in" ], + "apps/ca_internals_test-bin-ca.o" => [ + "apps/ca.c" + ], + "apps/lib/ca_internals_test-bin-app_libctx.o" => [ + "apps/lib/app_libctx.c" + ], + "apps/lib/ca_internals_test-bin-app_provider.o" => [ + "apps/lib/app_provider.c" + ], + "apps/lib/ca_internals_test-bin-app_rand.o" => [ + "apps/lib/app_rand.c" + ], + "apps/lib/ca_internals_test-bin-app_x509.o" => [ + "apps/lib/app_x509.c" + ], + "apps/lib/ca_internals_test-bin-apps.o" => [ + "apps/lib/apps.c" + ], + "apps/lib/ca_internals_test-bin-apps_ui.o" => [ + "apps/lib/apps_ui.c" + ], + "apps/lib/ca_internals_test-bin-engine.o" => [ + "apps/lib/engine.c" + ], + "apps/lib/ca_internals_test-bin-fmt.o" => [ + "apps/lib/fmt.c" + ], "apps/lib/cmp_client_test-bin-cmp_mock_srv.o" => [ "apps/lib/cmp_mock_srv.c" ], @@ -20543,6 +23978,9 @@ our %unified_info = ( "apps/lib/libapps-lib-apps.o" => [ "apps/lib/apps.c" ], + "apps/lib/libapps-lib-apps_opt_printf.o" => [ + "apps/lib/apps_opt_printf.c" + ], "apps/lib/libapps-lib-apps_ui.o" => [ "apps/lib/apps_ui.c" ], @@ -20561,6 +23999,9 @@ our %unified_info = ( "apps/lib/libapps-lib-http_server.o" => [ "apps/lib/http_server.c" ], + "apps/lib/libapps-lib-log.o" => [ + "apps/lib/log.c" + ], "apps/lib/libapps-lib-names.o" => [ "apps/lib/names.c" ], @@ -20592,12 +24033,14 @@ our %unified_info = ( "apps/lib/libapps-lib-app_rand.o", "apps/lib/libapps-lib-app_x509.o", "apps/lib/libapps-lib-apps.o", + "apps/lib/libapps-lib-apps_opt_printf.o", "apps/lib/libapps-lib-apps_ui.o", "apps/lib/libapps-lib-columns.o", "apps/lib/libapps-lib-engine.o", "apps/lib/libapps-lib-engine_loader.o", "apps/lib/libapps-lib-fmt.o", "apps/lib/libapps-lib-http_server.o", + "apps/lib/libapps-lib-log.o", "apps/lib/libapps-lib-names.o", "apps/lib/libapps-lib-opt.o", "apps/lib/libapps-lib-s_cb.o", @@ -20651,6 +24094,7 @@ our %unified_info = ( "apps/openssl-bin-s_server.o", "apps/openssl-bin-s_time.o", "apps/openssl-bin-sess_id.o", + "apps/openssl-bin-skeyutl.o", "apps/openssl-bin-smime.o", "apps/openssl-bin-speed.o", "apps/openssl-bin-spkac.o", @@ -20796,6 +24240,9 @@ our %unified_info = ( "apps/openssl-bin-sess_id.o" => [ "apps/sess_id.c" ], + "apps/openssl-bin-skeyutl.o" => [ + "apps/skeyutl.c" + ], "apps/openssl-bin-smime.o" => [ "apps/smime.c" ], @@ -20877,6 +24324,12 @@ our %unified_info = ( "crypto/aria/libcrypto-lib-aria.o" => [ "crypto/aria/aria.c" ], + "crypto/asn1/asn1_time_test-bin-a_time.o" => [ + "crypto/asn1/a_time.c" + ], + "crypto/asn1/ca_internals_test-bin-a_time.o" => [ + "crypto/asn1/a_time.c" + ], "crypto/asn1/libcrypto-lib-a_bitstr.o" => [ "crypto/asn1/a_bitstr.c" ], @@ -21069,6 +24522,9 @@ our %unified_info = ( "crypto/asn1/libcrypto-lib-x_val.o" => [ "crypto/asn1/x_val.c" ], + "crypto/asn1_time_test-bin-ctype.o" => [ + "crypto/ctype.c" + ], "crypto/async/arch/libcrypto-lib-async_null.o" => [ "crypto/async/arch/async_null.c" ], @@ -21162,6 +24618,9 @@ our %unified_info = ( "crypto/bio/libcrypto-lib-bss_dgram.o" => [ "crypto/bio/bss_dgram.c" ], + "crypto/bio/libcrypto-lib-bss_dgram_pair.o" => [ + "crypto/bio/bss_dgram_pair.c" + ], "crypto/bio/libcrypto-lib-bss_fd.o" => [ "crypto/bio/bss_fd.c" ], @@ -21387,6 +24846,9 @@ our %unified_info = ( "crypto/buffer/libfips-lib-buffer.o" => [ "crypto/buffer/buffer.c" ], + "crypto/ca_internals_test-bin-ctype.o" => [ + "crypto/ctype.c" + ], "crypto/camellia/libcrypto-lib-camellia.o" => [ "crypto/camellia/camellia.c" ], @@ -21444,6 +24906,9 @@ our %unified_info = ( "crypto/cmp/libcrypto-lib-cmp_err.o" => [ "crypto/cmp/cmp_err.c" ], + "crypto/cmp/libcrypto-lib-cmp_genm.o" => [ + "crypto/cmp/cmp_genm.c" + ], "crypto/cmp/libcrypto-lib-cmp_hdr.o" => [ "crypto/cmp/cmp_hdr.c" ], @@ -22131,9 +25596,15 @@ our %unified_info = ( "crypto/err/libcrypto-lib-err_blocks.o" => [ "crypto/err/err_blocks.c" ], + "crypto/err/libcrypto-lib-err_mark.o" => [ + "crypto/err/err_mark.c" + ], "crypto/err/libcrypto-lib-err_prn.o" => [ "crypto/err/err_prn.c" ], + "crypto/err/libcrypto-lib-err_save.o" => [ + "crypto/err/err_save.c" + ], "crypto/ess/libcrypto-lib-ess_asn1.o" => [ "crypto/ess/ess_asn1.c" ], @@ -22380,9 +25851,15 @@ our %unified_info = ( "crypto/evp/libcrypto-lib-pmeth_lib.o" => [ "crypto/evp/pmeth_lib.c" ], + "crypto/evp/libcrypto-lib-s_lib.o" => [ + "crypto/evp/s_lib.c" + ], "crypto/evp/libcrypto-lib-signature.o" => [ "crypto/evp/signature.c" ], + "crypto/evp/libcrypto-lib-skeymgmt_meth.o" => [ + "crypto/evp/skeymgmt_meth.c" + ], "crypto/evp/libfips-lib-asymcipher.o" => [ "crypto/evp/asymcipher.c" ], @@ -22428,9 +25905,6 @@ our %unified_info = ( "crypto/evp/libfips-lib-keymgmt_meth.o" => [ "crypto/evp/keymgmt_meth.c" ], - "crypto/evp/libfips-lib-m_sigver.o" => [ - "crypto/evp/m_sigver.c" - ], "crypto/evp/libfips-lib-mac_lib.o" => [ "crypto/evp/mac_lib.c" ], @@ -22449,9 +25923,15 @@ our %unified_info = ( "crypto/evp/libfips-lib-pmeth_lib.o" => [ "crypto/evp/pmeth_lib.c" ], + "crypto/evp/libfips-lib-s_lib.o" => [ + "crypto/evp/s_lib.c" + ], "crypto/evp/libfips-lib-signature.o" => [ "crypto/evp/signature.c" ], + "crypto/evp/libfips-lib-skeymgmt_meth.o" => [ + "crypto/evp/skeymgmt_meth.c" + ], "crypto/ffc/libcrypto-lib-ffc_backend.o" => [ "crypto/ffc/ffc_backend.c" ], @@ -22494,12 +25974,30 @@ our %unified_info = ( "crypto/ffc/libfips-lib-ffc_params_validate.o" => [ "crypto/ffc/ffc_params_validate.c" ], + "crypto/hashtable/libcrypto-lib-hashfunc.o" => [ + "crypto/hashtable/hashfunc.c" + ], + "crypto/hashtable/libcrypto-lib-hashtable.o" => [ + "crypto/hashtable/hashtable.c" + ], + "crypto/hashtable/libfips-lib-hashfunc.o" => [ + "crypto/hashtable/hashfunc.c" + ], + "crypto/hashtable/libfips-lib-hashtable.o" => [ + "crypto/hashtable/hashtable.c" + ], "crypto/hmac/libcrypto-lib-hmac.o" => [ "crypto/hmac/hmac.c" ], "crypto/hmac/libfips-lib-hmac.o" => [ "crypto/hmac/hmac.c" ], + "crypto/hpke/libcrypto-lib-hpke.o" => [ + "crypto/hpke/hpke.c" + ], + "crypto/hpke/libcrypto-lib-hpke_util.o" => [ + "crypto/hpke/hpke_util.c" + ], "crypto/http/libcrypto-lib-http_client.o" => [ "crypto/http/http_client.c" ], @@ -22548,6 +26046,9 @@ our %unified_info = ( "crypto/libcrypto-lib-bsearch.o" => [ "crypto/bsearch.c" ], + "crypto/libcrypto-lib-comp_methods.o" => [ + "crypto/comp_methods.c" + ], "crypto/libcrypto-lib-context.o" => [ "crypto/context.c" ], @@ -22575,9 +26076,15 @@ our %unified_info = ( "crypto/libcrypto-lib-cversion.o" => [ "crypto/cversion.c" ], + "crypto/libcrypto-lib-defaults.o" => [ + "crypto/defaults.c" + ], "crypto/libcrypto-lib-der_writer.o" => [ "crypto/der_writer.c" ], + "crypto/libcrypto-lib-deterministic_nonce.o" => [ + "crypto/deterministic_nonce.c" + ], "crypto/libcrypto-lib-ebcdic.o" => [ "crypto/ebcdic.c" ], @@ -22587,6 +26094,9 @@ our %unified_info = ( "crypto/libcrypto-lib-getenv.o" => [ "crypto/getenv.c" ], + "crypto/libcrypto-lib-indicator_core.o" => [ + "crypto/indicator_core.c" + ], "crypto/libcrypto-lib-info.o" => [ "crypto/info.c" ], @@ -22635,6 +26145,9 @@ our %unified_info = ( "crypto/libcrypto-lib-params_from_text.o" => [ "crypto/params_from_text.c" ], + "crypto/libcrypto-lib-params_idx.o" => [ + "crypto/params_idx.c" + ], "crypto/libcrypto-lib-passphrase.o" => [ "crypto/passphrase.c" ], @@ -22656,12 +26169,21 @@ our %unified_info = ( "crypto/libcrypto-lib-punycode.o" => [ "crypto/punycode.c" ], + "crypto/libcrypto-lib-quic_vlint.o" => [ + "crypto/quic_vlint.c" + ], "crypto/libcrypto-lib-self_test_core.o" => [ "crypto/self_test_core.c" ], + "crypto/libcrypto-lib-sleep.o" => [ + "crypto/sleep.c" + ], "crypto/libcrypto-lib-sparse_array.o" => [ "crypto/sparse_array.c" ], + "crypto/libcrypto-lib-ssl_err.o" => [ + "crypto/ssl_err.c" + ], "crypto/libcrypto-lib-threads_lib.o" => [ "crypto/threads_lib.c" ], @@ -22674,6 +26196,9 @@ our %unified_info = ( "crypto/libcrypto-lib-threads_win.o" => [ "crypto/threads_win.c" ], + "crypto/libcrypto-lib-time.o" => [ + "crypto/time.c" + ], "crypto/libcrypto-lib-trace.o" => [ "crypto/trace.c" ], @@ -22743,6 +26268,9 @@ our %unified_info = ( "crypto/libfips-lib-params_from_text.o" => [ "crypto/params_from_text.c" ], + "crypto/libfips-lib-params_idx.o" => [ + "crypto/params_idx.c" + ], "crypto/libfips-lib-provider_core.o" => [ "crypto/provider_core.c" ], @@ -22767,6 +26295,9 @@ our %unified_info = ( "crypto/libfips-lib-threads_win.o" => [ "crypto/threads_win.c" ], + "crypto/libfips-lib-time.o" => [ + "crypto/time.c" + ], "crypto/md4/libcrypto-lib-md4_dgst.o" => [ "crypto/md4/md4_dgst.c" ], @@ -22788,6 +26319,60 @@ our %unified_info = ( "crypto/mdc2/libcrypto-lib-mdc2dgst.o" => [ "crypto/mdc2/mdc2dgst.c" ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_encoders.o" => [ + "crypto/ml_dsa/ml_dsa_encoders.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key.o" => [ + "crypto/ml_dsa/ml_dsa_key.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key_compress.o" => [ + "crypto/ml_dsa/ml_dsa_key_compress.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_matrix.o" => [ + "crypto/ml_dsa/ml_dsa_matrix.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_ntt.o" => [ + "crypto/ml_dsa/ml_dsa_ntt.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_params.o" => [ + "crypto/ml_dsa/ml_dsa_params.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sample.o" => [ + "crypto/ml_dsa/ml_dsa_sample.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sign.o" => [ + "crypto/ml_dsa/ml_dsa_sign.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_encoders.o" => [ + "crypto/ml_dsa/ml_dsa_encoders.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_key.o" => [ + "crypto/ml_dsa/ml_dsa_key.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_key_compress.o" => [ + "crypto/ml_dsa/ml_dsa_key_compress.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_matrix.o" => [ + "crypto/ml_dsa/ml_dsa_matrix.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_ntt.o" => [ + "crypto/ml_dsa/ml_dsa_ntt.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_params.o" => [ + "crypto/ml_dsa/ml_dsa_params.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_sample.o" => [ + "crypto/ml_dsa/ml_dsa_sample.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_sign.o" => [ + "crypto/ml_dsa/ml_dsa_sign.c" + ], + "crypto/ml_kem/libcrypto-lib-ml_kem.o" => [ + "crypto/ml_kem/ml_kem.c" + ], + "crypto/ml_kem/libfips-lib-ml_kem.o" => [ + "crypto/ml_kem/ml_kem.c" + ], "crypto/modes/libcrypto-lib-cbc128.o" => [ "crypto/modes/cbc128.c" ], @@ -22827,6 +26412,9 @@ our %unified_info = ( "crypto/modes/libcrypto-lib-xts128.o" => [ "crypto/modes/xts128.c" ], + "crypto/modes/libcrypto-lib-xts128gb.o" => [ + "crypto/modes/xts128gb.c" + ], "crypto/modes/libfips-lib-cbc128.o" => [ "crypto/modes/cbc128.c" ], @@ -22857,6 +26445,9 @@ our %unified_info = ( "crypto/modes/libfips-lib-xts128.o" => [ "crypto/modes/xts128.c" ], + "crypto/modes/libfips-lib-xts128gb.o" => [ + "crypto/modes/xts128gb.c" + ], "crypto/objects/libcrypto-lib-o_names.o" => [ "crypto/objects/o_names.c" ], @@ -22902,6 +26493,9 @@ our %unified_info = ( "crypto/ocsp/libcrypto-lib-v3_ocsp.o" => [ "crypto/ocsp/v3_ocsp.c" ], + "crypto/packettest-bin-quic_vlint.o" => [ + "crypto/quic_vlint.c" + ], "crypto/pem/libcrypto-lib-pem_all.o" => [ "crypto/pem/pem_all.c" ], @@ -23064,6 +26658,9 @@ our %unified_info = ( "crypto/rand/libcrypto-lib-rand_pool.o" => [ "crypto/rand/rand_pool.c" ], + "crypto/rand/libcrypto-lib-rand_uniform.o" => [ + "crypto/rand/rand_uniform.c" + ], "crypto/rand/libcrypto-lib-randfile.o" => [ "crypto/rand/randfile.c" ], @@ -23295,6 +26892,66 @@ our %unified_info = ( "crypto/siphash/libcrypto-lib-siphash.o" => [ "crypto/siphash/siphash.c" ], + "crypto/slh_dsa/libcrypto-lib-slh_adrs.o" => [ + "crypto/slh_dsa/slh_adrs.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_dsa.o" => [ + "crypto/slh_dsa/slh_dsa.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_dsa_hash_ctx.o" => [ + "crypto/slh_dsa/slh_dsa_hash_ctx.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_dsa_key.o" => [ + "crypto/slh_dsa/slh_dsa_key.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_fors.o" => [ + "crypto/slh_dsa/slh_fors.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_hash.o" => [ + "crypto/slh_dsa/slh_hash.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_hypertree.o" => [ + "crypto/slh_dsa/slh_hypertree.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_params.o" => [ + "crypto/slh_dsa/slh_params.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_wots.o" => [ + "crypto/slh_dsa/slh_wots.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_xmss.o" => [ + "crypto/slh_dsa/slh_xmss.c" + ], + "crypto/slh_dsa/libfips-lib-slh_adrs.o" => [ + "crypto/slh_dsa/slh_adrs.c" + ], + "crypto/slh_dsa/libfips-lib-slh_dsa.o" => [ + "crypto/slh_dsa/slh_dsa.c" + ], + "crypto/slh_dsa/libfips-lib-slh_dsa_hash_ctx.o" => [ + "crypto/slh_dsa/slh_dsa_hash_ctx.c" + ], + "crypto/slh_dsa/libfips-lib-slh_dsa_key.o" => [ + "crypto/slh_dsa/slh_dsa_key.c" + ], + "crypto/slh_dsa/libfips-lib-slh_fors.o" => [ + "crypto/slh_dsa/slh_fors.c" + ], + "crypto/slh_dsa/libfips-lib-slh_hash.o" => [ + "crypto/slh_dsa/slh_hash.c" + ], + "crypto/slh_dsa/libfips-lib-slh_hypertree.o" => [ + "crypto/slh_dsa/slh_hypertree.c" + ], + "crypto/slh_dsa/libfips-lib-slh_params.o" => [ + "crypto/slh_dsa/slh_params.c" + ], + "crypto/slh_dsa/libfips-lib-slh_wots.o" => [ + "crypto/slh_dsa/slh_wots.c" + ], + "crypto/slh_dsa/libfips-lib-slh_xmss.o" => [ + "crypto/slh_dsa/slh_xmss.c" + ], "crypto/sm2/libcrypto-lib-sm2_crypt.o" => [ "crypto/sm2/sm2_crypt.c" ], @@ -23349,6 +27006,42 @@ our %unified_info = ( "crypto/store/libcrypto-lib-store_strings.o" => [ "crypto/store/store_strings.c" ], + "crypto/thread/arch/libcrypto-lib-thread_none.o" => [ + "crypto/thread/arch/thread_none.c" + ], + "crypto/thread/arch/libcrypto-lib-thread_posix.o" => [ + "crypto/thread/arch/thread_posix.c" + ], + "crypto/thread/arch/libcrypto-lib-thread_win.o" => [ + "crypto/thread/arch/thread_win.c" + ], + "crypto/thread/arch/libfips-lib-thread_none.o" => [ + "crypto/thread/arch/thread_none.c" + ], + "crypto/thread/arch/libfips-lib-thread_posix.o" => [ + "crypto/thread/arch/thread_posix.c" + ], + "crypto/thread/arch/libfips-lib-thread_win.o" => [ + "crypto/thread/arch/thread_win.c" + ], + "crypto/thread/libcrypto-lib-api.o" => [ + "crypto/thread/api.c" + ], + "crypto/thread/libcrypto-lib-arch.o" => [ + "crypto/thread/arch.c" + ], + "crypto/thread/libcrypto-lib-internal.o" => [ + "crypto/thread/internal.c" + ], + "crypto/thread/libfips-lib-api.o" => [ + "crypto/thread/api.c" + ], + "crypto/thread/libfips-lib-arch.o" => [ + "crypto/thread/arch.c" + ], + "crypto/thread/libfips-lib-internal.o" => [ + "crypto/thread/internal.c" + ], "crypto/ts/libcrypto-lib-ts_asn1.o" => [ "crypto/ts/ts_asn1.c" ], @@ -23433,6 +27126,9 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-pcy_tree.o" => [ "crypto/x509/pcy_tree.c" ], + "crypto/x509/libcrypto-lib-t_acert.o" => [ + "crypto/x509/t_acert.c" + ], "crypto/x509/libcrypto-lib-t_crl.o" => [ "crypto/x509/t_crl.c" ], @@ -23442,6 +27138,12 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-t_x509.o" => [ "crypto/x509/t_x509.c" ], + "crypto/x509/libcrypto-lib-v3_aaa.o" => [ + "crypto/x509/v3_aaa.c" + ], + "crypto/x509/libcrypto-lib-v3_ac_tgt.o" => [ + "crypto/x509/v3_ac_tgt.c" + ], "crypto/x509/libcrypto-lib-v3_addr.o" => [ "crypto/x509/v3_addr.c" ], @@ -23457,6 +27159,21 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_asid.o" => [ "crypto/x509/v3_asid.c" ], + "crypto/x509/libcrypto-lib-v3_attrdesc.o" => [ + "crypto/x509/v3_attrdesc.c" + ], + "crypto/x509/libcrypto-lib-v3_attrmap.o" => [ + "crypto/x509/v3_attrmap.c" + ], + "crypto/x509/libcrypto-lib-v3_audit_id.o" => [ + "crypto/x509/v3_audit_id.c" + ], + "crypto/x509/libcrypto-lib-v3_authattid.o" => [ + "crypto/x509/v3_authattid.c" + ], + "crypto/x509/libcrypto-lib-v3_battcons.o" => [ + "crypto/x509/v3_battcons.c" + ], "crypto/x509/libcrypto-lib-v3_bcons.o" => [ "crypto/x509/v3_bcons.c" ], @@ -23481,15 +27198,24 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_genn.o" => [ "crypto/x509/v3_genn.c" ], + "crypto/x509/libcrypto-lib-v3_group_ac.o" => [ + "crypto/x509/v3_group_ac.c" + ], "crypto/x509/libcrypto-lib-v3_ia5.o" => [ "crypto/x509/v3_ia5.c" ], + "crypto/x509/libcrypto-lib-v3_ind_iss.o" => [ + "crypto/x509/v3_ind_iss.c" + ], "crypto/x509/libcrypto-lib-v3_info.o" => [ "crypto/x509/v3_info.c" ], "crypto/x509/libcrypto-lib-v3_int.o" => [ "crypto/x509/v3_int.c" ], + "crypto/x509/libcrypto-lib-v3_iobo.o" => [ + "crypto/x509/v3_iobo.c" + ], "crypto/x509/libcrypto-lib-v3_ist.o" => [ "crypto/x509/v3_ist.c" ], @@ -23499,6 +27225,12 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_ncons.o" => [ "crypto/x509/v3_ncons.c" ], + "crypto/x509/libcrypto-lib-v3_no_ass.o" => [ + "crypto/x509/v3_no_ass.c" + ], + "crypto/x509/libcrypto-lib-v3_no_rev_avail.o" => [ + "crypto/x509/v3_no_rev_avail.c" + ], "crypto/x509/libcrypto-lib-v3_pci.o" => [ "crypto/x509/v3_pci.c" ], @@ -23520,18 +27252,36 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_purp.o" => [ "crypto/x509/v3_purp.c" ], + "crypto/x509/libcrypto-lib-v3_rolespec.o" => [ + "crypto/x509/v3_rolespec.c" + ], "crypto/x509/libcrypto-lib-v3_san.o" => [ "crypto/x509/v3_san.c" ], + "crypto/x509/libcrypto-lib-v3_sda.o" => [ + "crypto/x509/v3_sda.c" + ], + "crypto/x509/libcrypto-lib-v3_single_use.o" => [ + "crypto/x509/v3_single_use.c" + ], "crypto/x509/libcrypto-lib-v3_skid.o" => [ "crypto/x509/v3_skid.c" ], + "crypto/x509/libcrypto-lib-v3_soa_id.o" => [ + "crypto/x509/v3_soa_id.c" + ], "crypto/x509/libcrypto-lib-v3_sxnet.o" => [ "crypto/x509/v3_sxnet.c" ], + "crypto/x509/libcrypto-lib-v3_timespec.o" => [ + "crypto/x509/v3_timespec.c" + ], "crypto/x509/libcrypto-lib-v3_tlsf.o" => [ "crypto/x509/v3_tlsf.c" ], + "crypto/x509/libcrypto-lib-v3_usernotice.o" => [ + "crypto/x509/v3_usernotice.c" + ], "crypto/x509/libcrypto-lib-v3_utf8.o" => [ "crypto/x509/v3_utf8.c" ], @@ -23541,6 +27291,9 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3err.o" => [ "crypto/x509/v3err.c" ], + "crypto/x509/libcrypto-lib-x509_acert.o" => [ + "crypto/x509/x509_acert.c" + ], "crypto/x509/libcrypto-lib-x509_att.o" => [ "crypto/x509/x509_att.c" ], @@ -23592,6 +27345,9 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x509_vpm.o" => [ "crypto/x509/x509_vpm.c" ], + "crypto/x509/libcrypto-lib-x509aset.o" => [ + "crypto/x509/x509aset.c" + ], "crypto/x509/libcrypto-lib-x509cset.o" => [ "crypto/x509/x509cset.c" ], @@ -23619,6 +27375,9 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x_exten.o" => [ "crypto/x509/x_exten.c" ], + "crypto/x509/libcrypto-lib-x_ietfatt.o" => [ + "crypto/x509/x_ietfatt.c" + ], "crypto/x509/libcrypto-lib-x_name.o" => [ "crypto/x509/x_name.c" ], @@ -23640,6 +27399,16 @@ our %unified_info = ( "engines/libcrypto-lib-e_padlock.o" => [ "engines/e_padlock.c" ], + "fuzz/acert-test" => [ + "fuzz/acert-test-bin-acert.o", + "fuzz/acert-test-bin-test-corpus.o" + ], + "fuzz/acert-test-bin-acert.o" => [ + "fuzz/acert.c" + ], + "fuzz/acert-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], "fuzz/asn1-test" => [ "fuzz/asn1-test-bin-asn1.o", "fuzz/asn1-test-bin-fuzz_rand.o", @@ -23752,6 +27521,190 @@ our %unified_info = ( "fuzz/ct-test-bin-test-corpus.o" => [ "fuzz/test-corpus.c" ], + "fuzz/decoder-test" => [ + "fuzz/decoder-test-bin-decoder.o", + "fuzz/decoder-test-bin-fuzz_rand.o", + "fuzz/decoder-test-bin-test-corpus.o" + ], + "fuzz/decoder-test-bin-decoder.o" => [ + "fuzz/decoder.c" + ], + "fuzz/decoder-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/decoder-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/dtlsclient-test" => [ + "fuzz/dtlsclient-test-bin-dtlsclient.o", + "fuzz/dtlsclient-test-bin-fuzz_rand.o", + "fuzz/dtlsclient-test-bin-test-corpus.o" + ], + "fuzz/dtlsclient-test-bin-dtlsclient.o" => [ + "fuzz/dtlsclient.c" + ], + "fuzz/dtlsclient-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/dtlsclient-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/dtlsserver-test" => [ + "fuzz/dtlsserver-test-bin-dtlsserver.o", + "fuzz/dtlsserver-test-bin-fuzz_rand.o", + "fuzz/dtlsserver-test-bin-test-corpus.o" + ], + "fuzz/dtlsserver-test-bin-dtlsserver.o" => [ + "fuzz/dtlsserver.c" + ], + "fuzz/dtlsserver-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/dtlsserver-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/hashtable-test" => [ + "fuzz/hashtable-test-bin-fuzz_rand.o", + "fuzz/hashtable-test-bin-hashtable.o", + "fuzz/hashtable-test-bin-test-corpus.o" + ], + "fuzz/hashtable-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/hashtable-test-bin-hashtable.o" => [ + "fuzz/hashtable.c" + ], + "fuzz/hashtable-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/ml-dsa-test" => [ + "fuzz/ml-dsa-test-bin-fuzz_rand.o", + "fuzz/ml-dsa-test-bin-ml-dsa.o", + "fuzz/ml-dsa-test-bin-test-corpus.o" + ], + "fuzz/ml-dsa-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/ml-dsa-test-bin-ml-dsa.o" => [ + "fuzz/ml-dsa.c" + ], + "fuzz/ml-dsa-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/ml-kem-test" => [ + "fuzz/ml-kem-test-bin-fuzz_rand.o", + "fuzz/ml-kem-test-bin-ml-kem.o", + "fuzz/ml-kem-test-bin-test-corpus.o" + ], + "fuzz/ml-kem-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/ml-kem-test-bin-ml-kem.o" => [ + "fuzz/ml-kem.c" + ], + "fuzz/ml-kem-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/pem-test" => [ + "fuzz/pem-test-bin-pem.o", + "fuzz/pem-test-bin-test-corpus.o" + ], + "fuzz/pem-test-bin-pem.o" => [ + "fuzz/pem.c" + ], + "fuzz/pem-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/provider-test" => [ + "fuzz/provider-test-bin-provider.o", + "fuzz/provider-test-bin-test-corpus.o" + ], + "fuzz/provider-test-bin-provider.o" => [ + "fuzz/provider.c" + ], + "fuzz/provider-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/punycode-test" => [ + "fuzz/punycode-test-bin-punycode.o", + "fuzz/punycode-test-bin-test-corpus.o" + ], + "fuzz/punycode-test-bin-punycode.o" => [ + "fuzz/punycode.c" + ], + "fuzz/punycode-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-client-test" => [ + "fuzz/quic-client-test-bin-fuzz_rand.o", + "fuzz/quic-client-test-bin-quic-client.o", + "fuzz/quic-client-test-bin-test-corpus.o" + ], + "fuzz/quic-client-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-client-test-bin-quic-client.o" => [ + "fuzz/quic-client.c" + ], + "fuzz/quic-client-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-lcidm-test" => [ + "fuzz/quic-lcidm-test-bin-fuzz_rand.o", + "fuzz/quic-lcidm-test-bin-quic-lcidm.o", + "fuzz/quic-lcidm-test-bin-test-corpus.o" + ], + "fuzz/quic-lcidm-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-lcidm-test-bin-quic-lcidm.o" => [ + "fuzz/quic-lcidm.c" + ], + "fuzz/quic-lcidm-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-rcidm-test" => [ + "fuzz/quic-rcidm-test-bin-fuzz_rand.o", + "fuzz/quic-rcidm-test-bin-quic-rcidm.o", + "fuzz/quic-rcidm-test-bin-test-corpus.o" + ], + "fuzz/quic-rcidm-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-rcidm-test-bin-quic-rcidm.o" => [ + "fuzz/quic-rcidm.c" + ], + "fuzz/quic-rcidm-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-server-test" => [ + "fuzz/quic-server-test-bin-fuzz_rand.o", + "fuzz/quic-server-test-bin-quic-server.o", + "fuzz/quic-server-test-bin-test-corpus.o" + ], + "fuzz/quic-server-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-server-test-bin-quic-server.o" => [ + "fuzz/quic-server.c" + ], + "fuzz/quic-server-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-srtm-test" => [ + "fuzz/quic-srtm-test-bin-fuzz_rand.o", + "fuzz/quic-srtm-test-bin-quic-srtm.o", + "fuzz/quic-srtm-test-bin-test-corpus.o" + ], + "fuzz/quic-srtm-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-srtm-test-bin-quic-srtm.o" => [ + "fuzz/quic-srtm.c" + ], + "fuzz/quic-srtm-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], "fuzz/server-test" => [ "fuzz/server-test-bin-fuzz_rand.o", "fuzz/server-test-bin-server.o", @@ -23766,6 +27719,40 @@ our %unified_info = ( "fuzz/server-test-bin-test-corpus.o" => [ "fuzz/test-corpus.c" ], + "fuzz/slh-dsa-test" => [ + "fuzz/slh-dsa-test-bin-fuzz_rand.o", + "fuzz/slh-dsa-test-bin-slh-dsa.o", + "fuzz/slh-dsa-test-bin-test-corpus.o" + ], + "fuzz/slh-dsa-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/slh-dsa-test-bin-slh-dsa.o" => [ + "fuzz/slh-dsa.c" + ], + "fuzz/slh-dsa-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/smime-test" => [ + "fuzz/smime-test-bin-smime.o", + "fuzz/smime-test-bin-test-corpus.o" + ], + "fuzz/smime-test-bin-smime.o" => [ + "fuzz/smime.c" + ], + "fuzz/smime-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/v3name-test" => [ + "fuzz/v3name-test-bin-test-corpus.o", + "fuzz/v3name-test-bin-v3name.o" + ], + "fuzz/v3name-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/v3name-test-bin-v3name.o" => [ + "fuzz/v3name.c" + ], "fuzz/x509-test" => [ "fuzz/x509-test-bin-fuzz_rand.o", "fuzz/x509-test-bin-test-corpus.o", @@ -23887,6 +27874,7 @@ our %unified_info = ( "crypto/bio/libcrypto-lib-bss_conn.o", "crypto/bio/libcrypto-lib-bss_core.o", "crypto/bio/libcrypto-lib-bss_dgram.o", + "crypto/bio/libcrypto-lib-bss_dgram_pair.o", "crypto/bio/libcrypto-lib-bss_fd.o", "crypto/bio/libcrypto-lib-bss_file.o", "crypto/bio/libcrypto-lib-bss_log.o", @@ -23949,6 +27937,7 @@ our %unified_info = ( "crypto/cmp/libcrypto-lib-cmp_client.o", "crypto/cmp/libcrypto-lib-cmp_ctx.o", "crypto/cmp/libcrypto-lib-cmp_err.o", + "crypto/cmp/libcrypto-lib-cmp_genm.o", "crypto/cmp/libcrypto-lib-cmp_hdr.o", "crypto/cmp/libcrypto-lib-cmp_http.o", "crypto/cmp/libcrypto-lib-cmp_msg.o", @@ -24126,7 +28115,9 @@ our %unified_info = ( "crypto/err/libcrypto-lib-err_all.o", "crypto/err/libcrypto-lib-err_all_legacy.o", "crypto/err/libcrypto-lib-err_blocks.o", + "crypto/err/libcrypto-lib-err_mark.o", "crypto/err/libcrypto-lib-err_prn.o", + "crypto/err/libcrypto-lib-err_save.o", "crypto/ess/libcrypto-lib-ess_asn1.o", "crypto/ess/libcrypto-lib-ess_err.o", "crypto/ess/libcrypto-lib-ess_lib.o", @@ -24209,7 +28200,9 @@ our %unified_info = ( "crypto/evp/libcrypto-lib-pmeth_check.o", "crypto/evp/libcrypto-lib-pmeth_gn.o", "crypto/evp/libcrypto-lib-pmeth_lib.o", + "crypto/evp/libcrypto-lib-s_lib.o", "crypto/evp/libcrypto-lib-signature.o", + "crypto/evp/libcrypto-lib-skeymgmt_meth.o", "crypto/ffc/libcrypto-lib-ffc_backend.o", "crypto/ffc/libcrypto-lib-ffc_dh.o", "crypto/ffc/libcrypto-lib-ffc_key_generate.o", @@ -24217,7 +28210,11 @@ our %unified_info = ( "crypto/ffc/libcrypto-lib-ffc_params.o", "crypto/ffc/libcrypto-lib-ffc_params_generate.o", "crypto/ffc/libcrypto-lib-ffc_params_validate.o", + "crypto/hashtable/libcrypto-lib-hashfunc.o", + "crypto/hashtable/libcrypto-lib-hashtable.o", "crypto/hmac/libcrypto-lib-hmac.o", + "crypto/hpke/libcrypto-lib-hpke.o", + "crypto/hpke/libcrypto-lib-hpke_util.o", "crypto/http/libcrypto-lib-http_client.o", "crypto/http/libcrypto-lib-http_err.o", "crypto/http/libcrypto-lib-http_lib.o", @@ -24233,6 +28230,7 @@ our %unified_info = ( "crypto/libcrypto-lib-armv4cpuid.o", "crypto/libcrypto-lib-asn1_dsa.o", "crypto/libcrypto-lib-bsearch.o", + "crypto/libcrypto-lib-comp_methods.o", "crypto/libcrypto-lib-context.o", "crypto/libcrypto-lib-core_algorithm.o", "crypto/libcrypto-lib-core_fetch.o", @@ -24242,10 +28240,13 @@ our %unified_info = ( "crypto/libcrypto-lib-cryptlib.o", "crypto/libcrypto-lib-ctype.o", "crypto/libcrypto-lib-cversion.o", + "crypto/libcrypto-lib-defaults.o", "crypto/libcrypto-lib-der_writer.o", + "crypto/libcrypto-lib-deterministic_nonce.o", "crypto/libcrypto-lib-ebcdic.o", "crypto/libcrypto-lib-ex_data.o", "crypto/libcrypto-lib-getenv.o", + "crypto/libcrypto-lib-indicator_core.o", "crypto/libcrypto-lib-info.o", "crypto/libcrypto-lib-init.o", "crypto/libcrypto-lib-initthread.o", @@ -24262,6 +28263,7 @@ our %unified_info = ( "crypto/libcrypto-lib-params.o", "crypto/libcrypto-lib-params_dup.o", "crypto/libcrypto-lib-params_from_text.o", + "crypto/libcrypto-lib-params_idx.o", "crypto/libcrypto-lib-passphrase.o", "crypto/libcrypto-lib-provider.o", "crypto/libcrypto-lib-provider_child.o", @@ -24269,12 +28271,16 @@ our %unified_info = ( "crypto/libcrypto-lib-provider_core.o", "crypto/libcrypto-lib-provider_predefined.o", "crypto/libcrypto-lib-punycode.o", + "crypto/libcrypto-lib-quic_vlint.o", "crypto/libcrypto-lib-self_test_core.o", + "crypto/libcrypto-lib-sleep.o", "crypto/libcrypto-lib-sparse_array.o", + "crypto/libcrypto-lib-ssl_err.o", "crypto/libcrypto-lib-threads_lib.o", "crypto/libcrypto-lib-threads_none.o", "crypto/libcrypto-lib-threads_pthread.o", "crypto/libcrypto-lib-threads_win.o", + "crypto/libcrypto-lib-time.o", "crypto/libcrypto-lib-trace.o", "crypto/libcrypto-lib-uid.o", "crypto/md4/libcrypto-lib-md4_dgst.o", @@ -24284,6 +28290,15 @@ our %unified_info = ( "crypto/md5/libcrypto-lib-md5_sha1.o", "crypto/mdc2/libcrypto-lib-mdc2_one.o", "crypto/mdc2/libcrypto-lib-mdc2dgst.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_encoders.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key_compress.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_matrix.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_ntt.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_params.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sample.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sign.o", + "crypto/ml_kem/libcrypto-lib-ml_kem.o", "crypto/modes/libcrypto-lib-cbc128.o", "crypto/modes/libcrypto-lib-ccm128.o", "crypto/modes/libcrypto-lib-cfb128.o", @@ -24297,6 +28312,7 @@ our %unified_info = ( "crypto/modes/libcrypto-lib-siv128.o", "crypto/modes/libcrypto-lib-wrap128.o", "crypto/modes/libcrypto-lib-xts128.o", + "crypto/modes/libcrypto-lib-xts128gb.o", "crypto/objects/libcrypto-lib-o_names.o", "crypto/objects/libcrypto-lib-obj_dat.o", "crypto/objects/libcrypto-lib-obj_err.o", @@ -24361,6 +28377,7 @@ our %unified_info = ( "crypto/rand/libcrypto-lib-rand_lib.o", "crypto/rand/libcrypto-lib-rand_meth.o", "crypto/rand/libcrypto-lib-rand_pool.o", + "crypto/rand/libcrypto-lib-rand_uniform.o", "crypto/rand/libcrypto-lib-randfile.o", "crypto/rc2/libcrypto-lib-rc2_cbc.o", "crypto/rc2/libcrypto-lib-rc2_ecb.o", @@ -24412,6 +28429,16 @@ our %unified_info = ( "crypto/sha/libcrypto-lib-sha512-armv4.o", "crypto/sha/libcrypto-lib-sha512.o", "crypto/siphash/libcrypto-lib-siphash.o", + "crypto/slh_dsa/libcrypto-lib-slh_adrs.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa_hash_ctx.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa_key.o", + "crypto/slh_dsa/libcrypto-lib-slh_fors.o", + "crypto/slh_dsa/libcrypto-lib-slh_hash.o", + "crypto/slh_dsa/libcrypto-lib-slh_hypertree.o", + "crypto/slh_dsa/libcrypto-lib-slh_params.o", + "crypto/slh_dsa/libcrypto-lib-slh_wots.o", + "crypto/slh_dsa/libcrypto-lib-slh_xmss.o", "crypto/sm2/libcrypto-lib-sm2_crypt.o", "crypto/sm2/libcrypto-lib-sm2_err.o", "crypto/sm2/libcrypto-lib-sm2_key.o", @@ -24429,6 +28456,12 @@ our %unified_info = ( "crypto/store/libcrypto-lib-store_register.o", "crypto/store/libcrypto-lib-store_result.o", "crypto/store/libcrypto-lib-store_strings.o", + "crypto/thread/arch/libcrypto-lib-thread_none.o", + "crypto/thread/arch/libcrypto-lib-thread_posix.o", + "crypto/thread/arch/libcrypto-lib-thread_win.o", + "crypto/thread/libcrypto-lib-api.o", + "crypto/thread/libcrypto-lib-arch.o", + "crypto/thread/libcrypto-lib-internal.o", "crypto/ts/libcrypto-lib-ts_asn1.o", "crypto/ts/libcrypto-lib-ts_conf.o", "crypto/ts/libcrypto-lib-ts_err.o", @@ -24457,14 +28490,22 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-pcy_map.o", "crypto/x509/libcrypto-lib-pcy_node.o", "crypto/x509/libcrypto-lib-pcy_tree.o", + "crypto/x509/libcrypto-lib-t_acert.o", "crypto/x509/libcrypto-lib-t_crl.o", "crypto/x509/libcrypto-lib-t_req.o", "crypto/x509/libcrypto-lib-t_x509.o", + "crypto/x509/libcrypto-lib-v3_aaa.o", + "crypto/x509/libcrypto-lib-v3_ac_tgt.o", "crypto/x509/libcrypto-lib-v3_addr.o", "crypto/x509/libcrypto-lib-v3_admis.o", "crypto/x509/libcrypto-lib-v3_akeya.o", "crypto/x509/libcrypto-lib-v3_akid.o", "crypto/x509/libcrypto-lib-v3_asid.o", + "crypto/x509/libcrypto-lib-v3_attrdesc.o", + "crypto/x509/libcrypto-lib-v3_attrmap.o", + "crypto/x509/libcrypto-lib-v3_audit_id.o", + "crypto/x509/libcrypto-lib-v3_authattid.o", + "crypto/x509/libcrypto-lib-v3_battcons.o", "crypto/x509/libcrypto-lib-v3_bcons.o", "crypto/x509/libcrypto-lib-v3_bitst.o", "crypto/x509/libcrypto-lib-v3_conf.o", @@ -24473,12 +28514,17 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_enum.o", "crypto/x509/libcrypto-lib-v3_extku.o", "crypto/x509/libcrypto-lib-v3_genn.o", + "crypto/x509/libcrypto-lib-v3_group_ac.o", "crypto/x509/libcrypto-lib-v3_ia5.o", + "crypto/x509/libcrypto-lib-v3_ind_iss.o", "crypto/x509/libcrypto-lib-v3_info.o", "crypto/x509/libcrypto-lib-v3_int.o", + "crypto/x509/libcrypto-lib-v3_iobo.o", "crypto/x509/libcrypto-lib-v3_ist.o", "crypto/x509/libcrypto-lib-v3_lib.o", "crypto/x509/libcrypto-lib-v3_ncons.o", + "crypto/x509/libcrypto-lib-v3_no_ass.o", + "crypto/x509/libcrypto-lib-v3_no_rev_avail.o", "crypto/x509/libcrypto-lib-v3_pci.o", "crypto/x509/libcrypto-lib-v3_pcia.o", "crypto/x509/libcrypto-lib-v3_pcons.o", @@ -24486,13 +28532,20 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_pmaps.o", "crypto/x509/libcrypto-lib-v3_prn.o", "crypto/x509/libcrypto-lib-v3_purp.o", + "crypto/x509/libcrypto-lib-v3_rolespec.o", "crypto/x509/libcrypto-lib-v3_san.o", + "crypto/x509/libcrypto-lib-v3_sda.o", + "crypto/x509/libcrypto-lib-v3_single_use.o", "crypto/x509/libcrypto-lib-v3_skid.o", + "crypto/x509/libcrypto-lib-v3_soa_id.o", "crypto/x509/libcrypto-lib-v3_sxnet.o", + "crypto/x509/libcrypto-lib-v3_timespec.o", "crypto/x509/libcrypto-lib-v3_tlsf.o", + "crypto/x509/libcrypto-lib-v3_usernotice.o", "crypto/x509/libcrypto-lib-v3_utf8.o", "crypto/x509/libcrypto-lib-v3_utl.o", "crypto/x509/libcrypto-lib-v3err.o", + "crypto/x509/libcrypto-lib-x509_acert.o", "crypto/x509/libcrypto-lib-x509_att.o", "crypto/x509/libcrypto-lib-x509_cmp.o", "crypto/x509/libcrypto-lib-x509_d2.o", @@ -24510,6 +28563,7 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x509_v3.o", "crypto/x509/libcrypto-lib-x509_vfy.o", "crypto/x509/libcrypto-lib-x509_vpm.o", + "crypto/x509/libcrypto-lib-x509aset.o", "crypto/x509/libcrypto-lib-x509cset.o", "crypto/x509/libcrypto-lib-x509name.o", "crypto/x509/libcrypto-lib-x509rset.o", @@ -24519,6 +28573,7 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x_attrib.o", "crypto/x509/libcrypto-lib-x_crl.o", "crypto/x509/libcrypto-lib-x_exten.o", + "crypto/x509/libcrypto-lib-x_ietfatt.o", "crypto/x509/libcrypto-lib-x_name.o", "crypto/x509/libcrypto-lib-x_pubkey.o", "crypto/x509/libcrypto-lib-x_req.o", @@ -24539,14 +28594,15 @@ our %unified_info = ( "ssl/libssl-lib-d1_srtp.o", "ssl/libssl-lib-methods.o", "ssl/libssl-lib-pqueue.o", + "ssl/libssl-lib-priority_queue.o", "ssl/libssl-lib-s3_enc.o", "ssl/libssl-lib-s3_lib.o", "ssl/libssl-lib-s3_msg.o", "ssl/libssl-lib-ssl_asn1.o", "ssl/libssl-lib-ssl_cert.o", + "ssl/libssl-lib-ssl_cert_comp.o", "ssl/libssl-lib-ssl_ciph.o", "ssl/libssl-lib-ssl_conf.o", - "ssl/libssl-lib-ssl_err.o", "ssl/libssl-lib-ssl_err_legacy.o", "ssl/libssl-lib-ssl_init.o", "ssl/libssl-lib-ssl_lib.o", @@ -24563,12 +28619,60 @@ our %unified_info = ( "ssl/libssl-lib-tls13_enc.o", "ssl/libssl-lib-tls_depr.o", "ssl/libssl-lib-tls_srp.o", - "ssl/record/libssl-lib-dtls1_bitmap.o", + "ssl/quic/libssl-lib-cc_newreno.o", + "ssl/quic/libssl-lib-json_enc.o", + "ssl/quic/libssl-lib-qlog.o", + "ssl/quic/libssl-lib-qlog_event_helpers.o", + "ssl/quic/libssl-lib-quic_ackm.o", + "ssl/quic/libssl-lib-quic_cfq.o", + "ssl/quic/libssl-lib-quic_channel.o", + "ssl/quic/libssl-lib-quic_demux.o", + "ssl/quic/libssl-lib-quic_engine.o", + "ssl/quic/libssl-lib-quic_fc.o", + "ssl/quic/libssl-lib-quic_fifd.o", + "ssl/quic/libssl-lib-quic_impl.o", + "ssl/quic/libssl-lib-quic_lcidm.o", + "ssl/quic/libssl-lib-quic_method.o", + "ssl/quic/libssl-lib-quic_obj.o", + "ssl/quic/libssl-lib-quic_port.o", + "ssl/quic/libssl-lib-quic_rcidm.o", + "ssl/quic/libssl-lib-quic_reactor.o", + "ssl/quic/libssl-lib-quic_reactor_wait_ctx.o", + "ssl/quic/libssl-lib-quic_record_rx.o", + "ssl/quic/libssl-lib-quic_record_shared.o", + "ssl/quic/libssl-lib-quic_record_tx.o", + "ssl/quic/libssl-lib-quic_record_util.o", + "ssl/quic/libssl-lib-quic_rstream.o", + "ssl/quic/libssl-lib-quic_rx_depack.o", + "ssl/quic/libssl-lib-quic_sf_list.o", + "ssl/quic/libssl-lib-quic_srt_gen.o", + "ssl/quic/libssl-lib-quic_srtm.o", + "ssl/quic/libssl-lib-quic_sstream.o", + "ssl/quic/libssl-lib-quic_statm.o", + "ssl/quic/libssl-lib-quic_stream_map.o", + "ssl/quic/libssl-lib-quic_thread_assist.o", + "ssl/quic/libssl-lib-quic_tls.o", + "ssl/quic/libssl-lib-quic_tls_api.o", + "ssl/quic/libssl-lib-quic_trace.o", + "ssl/quic/libssl-lib-quic_tserver.o", + "ssl/quic/libssl-lib-quic_txp.o", + "ssl/quic/libssl-lib-quic_txpim.o", + "ssl/quic/libssl-lib-quic_types.o", + "ssl/quic/libssl-lib-quic_wire.o", + "ssl/quic/libssl-lib-quic_wire_pkt.o", + "ssl/quic/libssl-lib-uint_set.o", "ssl/record/libssl-lib-rec_layer_d1.o", "ssl/record/libssl-lib-rec_layer_s3.o", - "ssl/record/libssl-lib-ssl3_buffer.o", - "ssl/record/libssl-lib-ssl3_record.o", - "ssl/record/libssl-lib-ssl3_record_tls13.o", + "ssl/record/methods/libssl-lib-dtls_meth.o", + "ssl/record/methods/libssl-lib-ssl3_meth.o", + "ssl/record/methods/libssl-lib-tls13_meth.o", + "ssl/record/methods/libssl-lib-tls1_meth.o", + "ssl/record/methods/libssl-lib-tls_common.o", + "ssl/record/methods/libssl-lib-tls_multib.o", + "ssl/record/methods/libssl-lib-tlsany_meth.o", + "ssl/rio/libssl-lib-poll_builder.o", + "ssl/rio/libssl-lib-poll_immediate.o", + "ssl/rio/libssl-lib-rio_notifier.o", "ssl/statem/libssl-lib-extensions.o", "ssl/statem/libssl-lib-extensions_clnt.o", "ssl/statem/libssl-lib-extensions_cust.o", @@ -24606,12 +28710,24 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ecx_key.o" => [ "providers/common/der/der_ecx_key.c" ], + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o" => [ + "providers/common/der/der_ml_dsa_gen.c" + ], + "providers/common/der/libcommon-lib-der_ml_dsa_key.o" => [ + "providers/common/der/der_ml_dsa_key.c" + ], "providers/common/der/libcommon-lib-der_rsa_gen.o" => [ "providers/common/der/der_rsa_gen.c" ], "providers/common/der/libcommon-lib-der_rsa_key.o" => [ "providers/common/der/der_rsa_key.c" ], + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o" => [ + "providers/common/der/der_slh_dsa_gen.c" + ], + "providers/common/der/libcommon-lib-der_slh_dsa_key.o" => [ + "providers/common/der/der_slh_dsa_key.c" + ], "providers/common/der/libcommon-lib-der_wrap_gen.o" => [ "providers/common/der/der_wrap_gen.c" ], @@ -24678,6 +28794,9 @@ our %unified_info = ( "providers/common/libfips-lib-securitycheck_fips.o" => [ "providers/common/securitycheck_fips.c" ], + "providers/endecode_test-bin-legacyprov.o" => [ + "providers/legacyprov.c" + ], "providers/evp_extra_test-bin-legacyprov.o" => [ "providers/legacyprov.c" ], @@ -24688,6 +28807,9 @@ our %unified_info = ( "providers/fips/fips-dso-fips_entry.o" => [ "providers/fips/fips_entry.c" ], + "providers/fips/libfips-lib-fipsindicator.o" => [ + "providers/fips/fipsindicator.c" + ], "providers/fips/libfips-lib-fipsprov.o" => [ "providers/fips/fipsprov.c" ], @@ -24751,6 +28873,15 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_hw.o" => [ "providers/implementations/ciphers/cipher_aes_gcm_hw.c" ], + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv.o" => [ + "providers/implementations/ciphers/cipher_aes_gcm_siv.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_hw.o" => [ + "providers/implementations/ciphers/cipher_aes_gcm_siv_hw.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_polyval.o" => [ + "providers/implementations/ciphers/cipher_aes_gcm_siv_polyval.c" + ], "providers/implementations/ciphers/libdefault-lib-cipher_aes_hw.o" => [ "providers/implementations/ciphers/cipher_aes_hw.c" ], @@ -24823,9 +28954,27 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_sm4.o" => [ "providers/implementations/ciphers/cipher_sm4.c" ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm.o" => [ + "providers/implementations/ciphers/cipher_sm4_ccm.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm_hw.o" => [ + "providers/implementations/ciphers/cipher_sm4_ccm_hw.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm.o" => [ + "providers/implementations/ciphers/cipher_sm4_gcm.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm_hw.o" => [ + "providers/implementations/ciphers/cipher_sm4_gcm_hw.c" + ], "providers/implementations/ciphers/libdefault-lib-cipher_sm4_hw.o" => [ "providers/implementations/ciphers/cipher_sm4_hw.c" ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts.o" => [ + "providers/implementations/ciphers/cipher_sm4_xts.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts_hw.o" => [ + "providers/implementations/ciphers/cipher_sm4_xts_hw.c" + ], "providers/implementations/ciphers/libdefault-lib-cipher_tdes.o" => [ "providers/implementations/ciphers/cipher_tdes.c" ], @@ -25045,6 +29194,15 @@ our %unified_info = ( "providers/implementations/encode_decode/libdefault-lib-endecoder_common.o" => [ "providers/implementations/encode_decode/endecoder_common.c" ], + "providers/implementations/encode_decode/libdefault-lib-ml_common_codecs.o" => [ + "providers/implementations/encode_decode/ml_common_codecs.c" + ], + "providers/implementations/encode_decode/libdefault-lib-ml_dsa_codecs.o" => [ + "providers/implementations/encode_decode/ml_dsa_codecs.c" + ], + "providers/implementations/encode_decode/libdefault-lib-ml_kem_codecs.o" => [ + "providers/implementations/encode_decode/ml_kem_codecs.c" + ], "providers/implementations/exchange/libdefault-lib-dh_exch.o" => [ "providers/implementations/exchange/dh_exch.c" ], @@ -25069,9 +29227,15 @@ our %unified_info = ( "providers/implementations/exchange/libfips-lib-kdf_exch.o" => [ "providers/implementations/exchange/kdf_exch.c" ], + "providers/implementations/kdfs/libdefault-lib-argon2.o" => [ + "providers/implementations/kdfs/argon2.c" + ], "providers/implementations/kdfs/libdefault-lib-hkdf.o" => [ "providers/implementations/kdfs/hkdf.c" ], + "providers/implementations/kdfs/libdefault-lib-hmacdrbg_kdf.o" => [ + "providers/implementations/kdfs/hmacdrbg_kdf.c" + ], "providers/implementations/kdfs/libdefault-lib-kbkdf.o" => [ "providers/implementations/kdfs/kbkdf.c" ], @@ -25129,12 +29293,39 @@ our %unified_info = ( "providers/implementations/kdfs/liblegacy-lib-pbkdf1.o" => [ "providers/implementations/kdfs/pbkdf1.c" ], + "providers/implementations/kdfs/liblegacy-lib-pvkkdf.o" => [ + "providers/implementations/kdfs/pvkkdf.c" + ], + "providers/implementations/kem/libdefault-lib-ec_kem.o" => [ + "providers/implementations/kem/ec_kem.c" + ], + "providers/implementations/kem/libdefault-lib-ecx_kem.o" => [ + "providers/implementations/kem/ecx_kem.c" + ], + "providers/implementations/kem/libdefault-lib-kem_util.o" => [ + "providers/implementations/kem/kem_util.c" + ], + "providers/implementations/kem/libdefault-lib-ml_kem_kem.o" => [ + "providers/implementations/kem/ml_kem_kem.c" + ], + "providers/implementations/kem/libdefault-lib-mlx_kem.o" => [ + "providers/implementations/kem/mlx_kem.c" + ], "providers/implementations/kem/libdefault-lib-rsa_kem.o" => [ "providers/implementations/kem/rsa_kem.c" ], + "providers/implementations/kem/libfips-lib-ml_kem_kem.o" => [ + "providers/implementations/kem/ml_kem_kem.c" + ], + "providers/implementations/kem/libfips-lib-mlx_kem.o" => [ + "providers/implementations/kem/mlx_kem.c" + ], "providers/implementations/kem/libfips-lib-rsa_kem.o" => [ "providers/implementations/kem/rsa_kem.c" ], + "providers/implementations/kem/libtemplate-lib-template_kem.o" => [ + "providers/implementations/kem/template_kem.c" + ], "providers/implementations/keymgmt/libdefault-lib-dh_kmgmt.o" => [ "providers/implementations/keymgmt/dh_kmgmt.c" ], @@ -25153,9 +29344,21 @@ our %unified_info = ( "providers/implementations/keymgmt/libdefault-lib-mac_legacy_kmgmt.o" => [ "providers/implementations/keymgmt/mac_legacy_kmgmt.c" ], + "providers/implementations/keymgmt/libdefault-lib-ml_dsa_kmgmt.o" => [ + "providers/implementations/keymgmt/ml_dsa_kmgmt.c" + ], + "providers/implementations/keymgmt/libdefault-lib-ml_kem_kmgmt.o" => [ + "providers/implementations/keymgmt/ml_kem_kmgmt.c" + ], + "providers/implementations/keymgmt/libdefault-lib-mlx_kmgmt.o" => [ + "providers/implementations/keymgmt/mlx_kmgmt.c" + ], "providers/implementations/keymgmt/libdefault-lib-rsa_kmgmt.o" => [ "providers/implementations/keymgmt/rsa_kmgmt.c" ], + "providers/implementations/keymgmt/libdefault-lib-slh_dsa_kmgmt.o" => [ + "providers/implementations/keymgmt/slh_dsa_kmgmt.c" + ], "providers/implementations/keymgmt/libfips-lib-dh_kmgmt.o" => [ "providers/implementations/keymgmt/dh_kmgmt.c" ], @@ -25174,9 +29377,24 @@ our %unified_info = ( "providers/implementations/keymgmt/libfips-lib-mac_legacy_kmgmt.o" => [ "providers/implementations/keymgmt/mac_legacy_kmgmt.c" ], + "providers/implementations/keymgmt/libfips-lib-ml_dsa_kmgmt.o" => [ + "providers/implementations/keymgmt/ml_dsa_kmgmt.c" + ], + "providers/implementations/keymgmt/libfips-lib-ml_kem_kmgmt.o" => [ + "providers/implementations/keymgmt/ml_kem_kmgmt.c" + ], + "providers/implementations/keymgmt/libfips-lib-mlx_kmgmt.o" => [ + "providers/implementations/keymgmt/mlx_kmgmt.c" + ], "providers/implementations/keymgmt/libfips-lib-rsa_kmgmt.o" => [ "providers/implementations/keymgmt/rsa_kmgmt.c" ], + "providers/implementations/keymgmt/libfips-lib-slh_dsa_kmgmt.o" => [ + "providers/implementations/keymgmt/slh_dsa_kmgmt.c" + ], + "providers/implementations/keymgmt/libtemplate-lib-template_kmgmt.o" => [ + "providers/implementations/keymgmt/template_kmgmt.c" + ], "providers/implementations/macs/libdefault-lib-blake2b_mac.o" => [ "providers/implementations/macs/blake2b_mac.c" ], @@ -25213,9 +29431,6 @@ our %unified_info = ( "providers/implementations/macs/libfips-lib-kmac_prov.o" => [ "providers/implementations/macs/kmac_prov.c" ], - "providers/implementations/rands/libdefault-lib-crngt.o" => [ - "providers/implementations/rands/crngt.c" - ], "providers/implementations/rands/libdefault-lib-drbg.o" => [ "providers/implementations/rands/drbg.c" ], @@ -25231,12 +29446,12 @@ our %unified_info = ( "providers/implementations/rands/libdefault-lib-seed_src.o" => [ "providers/implementations/rands/seed_src.c" ], + "providers/implementations/rands/libdefault-lib-seed_src_jitter.o" => [ + "providers/implementations/rands/seed_src_jitter.c" + ], "providers/implementations/rands/libdefault-lib-test_rng.o" => [ "providers/implementations/rands/test_rng.c" ], - "providers/implementations/rands/libfips-lib-crngt.o" => [ - "providers/implementations/rands/crngt.c" - ], "providers/implementations/rands/libfips-lib-drbg.o" => [ "providers/implementations/rands/drbg.c" ], @@ -25249,6 +29464,9 @@ our %unified_info = ( "providers/implementations/rands/libfips-lib-drbg_hmac.o" => [ "providers/implementations/rands/drbg_hmac.c" ], + "providers/implementations/rands/libfips-lib-fips_crng_test.o" => [ + "providers/implementations/rands/fips_crng_test.c" + ], "providers/implementations/rands/libfips-lib-test_rng.o" => [ "providers/implementations/rands/test_rng.c" ], @@ -25276,9 +29494,15 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-mac_legacy_sig.o" => [ "providers/implementations/signature/mac_legacy_sig.c" ], + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o" => [ + "providers/implementations/signature/ml_dsa_sig.c" + ], "providers/implementations/signature/libdefault-lib-rsa_sig.o" => [ "providers/implementations/signature/rsa_sig.c" ], + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o" => [ + "providers/implementations/signature/slh_dsa_sig.c" + ], "providers/implementations/signature/libdefault-lib-sm2_sig.o" => [ "providers/implementations/signature/sm2_sig.c" ], @@ -25294,9 +29518,27 @@ our %unified_info = ( "providers/implementations/signature/libfips-lib-mac_legacy_sig.o" => [ "providers/implementations/signature/mac_legacy_sig.c" ], + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o" => [ + "providers/implementations/signature/ml_dsa_sig.c" + ], "providers/implementations/signature/libfips-lib-rsa_sig.o" => [ "providers/implementations/signature/rsa_sig.c" ], + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o" => [ + "providers/implementations/signature/slh_dsa_sig.c" + ], + "providers/implementations/skeymgmt/libdefault-lib-aes_skmgmt.o" => [ + "providers/implementations/skeymgmt/aes_skmgmt.c" + ], + "providers/implementations/skeymgmt/libdefault-lib-generic.o" => [ + "providers/implementations/skeymgmt/generic.c" + ], + "providers/implementations/skeymgmt/libfips-lib-aes_skmgmt.o" => [ + "providers/implementations/skeymgmt/aes_skmgmt.c" + ], + "providers/implementations/skeymgmt/libfips-lib-generic.o" => [ + "providers/implementations/skeymgmt/generic.c" + ], "providers/implementations/storemgmt/libdefault-lib-file_store.o" => [ "providers/implementations/storemgmt/file_store.c" ], @@ -25320,8 +29562,12 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ec_sig.o", "providers/common/der/libcommon-lib-der_ecx_gen.o", "providers/common/der/libcommon-lib-der_ecx_key.o", + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o", + "providers/common/der/libcommon-lib-der_ml_dsa_key.o", "providers/common/der/libcommon-lib-der_rsa_gen.o", "providers/common/der/libcommon-lib-der_rsa_key.o", + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o", + "providers/common/der/libcommon-lib-der_slh_dsa_key.o", "providers/common/der/libcommon-lib-der_wrap_gen.o", "providers/common/libcommon-lib-provider_ctx.o", "providers/common/libcommon-lib-provider_err.o", @@ -25333,7 +29579,7 @@ our %unified_info = ( "providers/implementations/ciphers/libcommon-lib-ciphercommon_gcm_hw.o", "providers/implementations/ciphers/libcommon-lib-ciphercommon_hw.o", "providers/implementations/digests/libcommon-lib-digestcommon.o", - "ssl/record/libcommon-lib-tls_pad.o" + "ssl/record/methods/libcommon-lib-tls_pad.o" ], "providers/libcrypto-lib-baseprov.o" => [ "providers/baseprov.c" @@ -25369,6 +29615,9 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_aes_ccm_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_polyval.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_ocb.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_ocb_hw.o", @@ -25393,7 +29642,13 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_cts.o", "providers/implementations/ciphers/libdefault-lib-cipher_null.o", "providers/implementations/ciphers/libdefault-lib-cipher_sm4.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_sm4_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes_common.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes_default.o", @@ -25422,11 +29677,16 @@ our %unified_info = ( "providers/implementations/encode_decode/libdefault-lib-encode_key2ms.o", "providers/implementations/encode_decode/libdefault-lib-encode_key2text.o", "providers/implementations/encode_decode/libdefault-lib-endecoder_common.o", + "providers/implementations/encode_decode/libdefault-lib-ml_common_codecs.o", + "providers/implementations/encode_decode/libdefault-lib-ml_dsa_codecs.o", + "providers/implementations/encode_decode/libdefault-lib-ml_kem_codecs.o", "providers/implementations/exchange/libdefault-lib-dh_exch.o", "providers/implementations/exchange/libdefault-lib-ecdh_exch.o", "providers/implementations/exchange/libdefault-lib-ecx_exch.o", "providers/implementations/exchange/libdefault-lib-kdf_exch.o", + "providers/implementations/kdfs/libdefault-lib-argon2.o", "providers/implementations/kdfs/libdefault-lib-hkdf.o", + "providers/implementations/kdfs/libdefault-lib-hmacdrbg_kdf.o", "providers/implementations/kdfs/libdefault-lib-kbkdf.o", "providers/implementations/kdfs/libdefault-lib-krb5kdf.o", "providers/implementations/kdfs/libdefault-lib-pbkdf2.o", @@ -25437,6 +29697,11 @@ our %unified_info = ( "providers/implementations/kdfs/libdefault-lib-sskdf.o", "providers/implementations/kdfs/libdefault-lib-tls1_prf.o", "providers/implementations/kdfs/libdefault-lib-x942kdf.o", + "providers/implementations/kem/libdefault-lib-ec_kem.o", + "providers/implementations/kem/libdefault-lib-ecx_kem.o", + "providers/implementations/kem/libdefault-lib-kem_util.o", + "providers/implementations/kem/libdefault-lib-ml_kem_kem.o", + "providers/implementations/kem/libdefault-lib-mlx_kem.o", "providers/implementations/kem/libdefault-lib-rsa_kem.o", "providers/implementations/keymgmt/libdefault-lib-dh_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-dsa_kmgmt.o", @@ -25444,7 +29709,11 @@ our %unified_info = ( "providers/implementations/keymgmt/libdefault-lib-ecx_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-kdf_legacy_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-mac_legacy_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-ml_dsa_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-ml_kem_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-mlx_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-rsa_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-slh_dsa_kmgmt.o", "providers/implementations/macs/libdefault-lib-blake2b_mac.o", "providers/implementations/macs/libdefault-lib-blake2s_mac.o", "providers/implementations/macs/libdefault-lib-cmac_prov.o", @@ -25453,12 +29722,12 @@ our %unified_info = ( "providers/implementations/macs/libdefault-lib-kmac_prov.o", "providers/implementations/macs/libdefault-lib-poly1305_prov.o", "providers/implementations/macs/libdefault-lib-siphash_prov.o", - "providers/implementations/rands/libdefault-lib-crngt.o", "providers/implementations/rands/libdefault-lib-drbg.o", "providers/implementations/rands/libdefault-lib-drbg_ctr.o", "providers/implementations/rands/libdefault-lib-drbg_hash.o", "providers/implementations/rands/libdefault-lib-drbg_hmac.o", "providers/implementations/rands/libdefault-lib-seed_src.o", + "providers/implementations/rands/libdefault-lib-seed_src_jitter.o", "providers/implementations/rands/libdefault-lib-test_rng.o", "providers/implementations/rands/seeding/libdefault-lib-rand_cpu_x86.o", "providers/implementations/rands/seeding/libdefault-lib-rand_tsc.o", @@ -25468,11 +29737,15 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-ecdsa_sig.o", "providers/implementations/signature/libdefault-lib-eddsa_sig.o", "providers/implementations/signature/libdefault-lib-mac_legacy_sig.o", + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o", "providers/implementations/signature/libdefault-lib-rsa_sig.o", + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o", "providers/implementations/signature/libdefault-lib-sm2_sig.o", + "providers/implementations/skeymgmt/libdefault-lib-aes_skmgmt.o", + "providers/implementations/skeymgmt/libdefault-lib-generic.o", "providers/implementations/storemgmt/libdefault-lib-file_store.o", "providers/implementations/storemgmt/libdefault-lib-file_store_any2obj.o", - "ssl/libdefault-lib-s3_cbc.o" + "ssl/record/methods/libdefault-lib-ssl3_cbc.o" ], "providers/libfips.a" => [ "crypto/aes/libfips-lib-aes-armv4.o", @@ -25580,14 +29853,15 @@ our %unified_info = ( "crypto/evp/libfips-lib-kem.o", "crypto/evp/libfips-lib-keymgmt_lib.o", "crypto/evp/libfips-lib-keymgmt_meth.o", - "crypto/evp/libfips-lib-m_sigver.o", "crypto/evp/libfips-lib-mac_lib.o", "crypto/evp/libfips-lib-mac_meth.o", "crypto/evp/libfips-lib-p_lib.o", "crypto/evp/libfips-lib-pmeth_check.o", "crypto/evp/libfips-lib-pmeth_gn.o", "crypto/evp/libfips-lib-pmeth_lib.o", + "crypto/evp/libfips-lib-s_lib.o", "crypto/evp/libfips-lib-signature.o", + "crypto/evp/libfips-lib-skeymgmt_meth.o", "crypto/ffc/libfips-lib-ffc_backend.o", "crypto/ffc/libfips-lib-ffc_dh.o", "crypto/ffc/libfips-lib-ffc_key_generate.o", @@ -25595,6 +29869,8 @@ our %unified_info = ( "crypto/ffc/libfips-lib-ffc_params.o", "crypto/ffc/libfips-lib-ffc_params_generate.o", "crypto/ffc/libfips-lib-ffc_params_validate.o", + "crypto/hashtable/libfips-lib-hashfunc.o", + "crypto/hashtable/libfips-lib-hashtable.o", "crypto/hmac/libfips-lib-hmac.o", "crypto/lhash/libfips-lib-lhash.o", "crypto/libfips-lib-armcap.o", @@ -25618,6 +29894,7 @@ our %unified_info = ( "crypto/libfips-lib-params.o", "crypto/libfips-lib-params_dup.o", "crypto/libfips-lib-params_from_text.o", + "crypto/libfips-lib-params_idx.o", "crypto/libfips-lib-provider_core.o", "crypto/libfips-lib-provider_predefined.o", "crypto/libfips-lib-self_test_core.o", @@ -25626,6 +29903,16 @@ our %unified_info = ( "crypto/libfips-lib-threads_none.o", "crypto/libfips-lib-threads_pthread.o", "crypto/libfips-lib-threads_win.o", + "crypto/libfips-lib-time.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_encoders.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_key.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_key_compress.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_matrix.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_ntt.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_params.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_sample.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_sign.o", + "crypto/ml_kem/libfips-lib-ml_kem.o", "crypto/modes/libfips-lib-cbc128.o", "crypto/modes/libfips-lib-ccm128.o", "crypto/modes/libfips-lib-cfb128.o", @@ -25636,6 +29923,7 @@ our %unified_info = ( "crypto/modes/libfips-lib-ofb128.o", "crypto/modes/libfips-lib-wrap128.o", "crypto/modes/libfips-lib-xts128.o", + "crypto/modes/libfips-lib-xts128gb.o", "crypto/property/libfips-lib-defn_cache.o", "crypto/property/libfips-lib-property.o", "crypto/property/libfips-lib-property_parse.o", @@ -25667,7 +29955,23 @@ our %unified_info = ( "crypto/sha/libfips-lib-sha3.o", "crypto/sha/libfips-lib-sha512-armv4.o", "crypto/sha/libfips-lib-sha512.o", + "crypto/slh_dsa/libfips-lib-slh_adrs.o", + "crypto/slh_dsa/libfips-lib-slh_dsa.o", + "crypto/slh_dsa/libfips-lib-slh_dsa_hash_ctx.o", + "crypto/slh_dsa/libfips-lib-slh_dsa_key.o", + "crypto/slh_dsa/libfips-lib-slh_fors.o", + "crypto/slh_dsa/libfips-lib-slh_hash.o", + "crypto/slh_dsa/libfips-lib-slh_hypertree.o", + "crypto/slh_dsa/libfips-lib-slh_params.o", + "crypto/slh_dsa/libfips-lib-slh_wots.o", + "crypto/slh_dsa/libfips-lib-slh_xmss.o", "crypto/stack/libfips-lib-stack.o", + "crypto/thread/arch/libfips-lib-thread_none.o", + "crypto/thread/arch/libfips-lib-thread_posix.o", + "crypto/thread/arch/libfips-lib-thread_win.o", + "crypto/thread/libfips-lib-api.o", + "crypto/thread/libfips-lib-arch.o", + "crypto/thread/libfips-lib-internal.o", "providers/common/der/libfips-lib-der_rsa_sig.o", "providers/common/libfips-lib-bio_prov.o", "providers/common/libfips-lib-capabilities.o", @@ -25676,6 +29980,7 @@ our %unified_info = ( "providers/common/libfips-lib-provider_util.o", "providers/common/libfips-lib-securitycheck.o", "providers/common/libfips-lib-securitycheck_fips.o", + "providers/fips/libfips-lib-fipsindicator.o", "providers/fips/libfips-lib-fipsprov.o", "providers/fips/libfips-lib-self_test.o", "providers/fips/libfips-lib-self_test_kats.o", @@ -25713,6 +30018,8 @@ our %unified_info = ( "providers/implementations/kdfs/libfips-lib-sskdf.o", "providers/implementations/kdfs/libfips-lib-tls1_prf.o", "providers/implementations/kdfs/libfips-lib-x942kdf.o", + "providers/implementations/kem/libfips-lib-ml_kem_kem.o", + "providers/implementations/kem/libfips-lib-mlx_kem.o", "providers/implementations/kem/libfips-lib-rsa_kem.o", "providers/implementations/keymgmt/libfips-lib-dh_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-dsa_kmgmt.o", @@ -25720,24 +30027,32 @@ our %unified_info = ( "providers/implementations/keymgmt/libfips-lib-ecx_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-kdf_legacy_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-mac_legacy_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-ml_dsa_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-ml_kem_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-mlx_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-rsa_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-slh_dsa_kmgmt.o", "providers/implementations/macs/libfips-lib-cmac_prov.o", "providers/implementations/macs/libfips-lib-gmac_prov.o", "providers/implementations/macs/libfips-lib-hmac_prov.o", "providers/implementations/macs/libfips-lib-kmac_prov.o", - "providers/implementations/rands/libfips-lib-crngt.o", "providers/implementations/rands/libfips-lib-drbg.o", "providers/implementations/rands/libfips-lib-drbg_ctr.o", "providers/implementations/rands/libfips-lib-drbg_hash.o", "providers/implementations/rands/libfips-lib-drbg_hmac.o", + "providers/implementations/rands/libfips-lib-fips_crng_test.o", "providers/implementations/rands/libfips-lib-test_rng.o", "providers/implementations/signature/libfips-lib-dsa_sig.o", "providers/implementations/signature/libfips-lib-ecdsa_sig.o", "providers/implementations/signature/libfips-lib-eddsa_sig.o", "providers/implementations/signature/libfips-lib-mac_legacy_sig.o", + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o", "providers/implementations/signature/libfips-lib-rsa_sig.o", + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o", + "providers/implementations/skeymgmt/libfips-lib-aes_skmgmt.o", + "providers/implementations/skeymgmt/libfips-lib-generic.o", "providers/libcommon.a", - "ssl/libfips-lib-s3_cbc.o" + "ssl/record/methods/libfips-lib-ssl3_cbc.o" ], "providers/liblegacy-lib-prov_running.o" => [ "providers/prov_running.c" @@ -25767,13 +30082,12 @@ our %unified_info = ( "providers/implementations/digests/liblegacy-lib-ripemd_prov.o", "providers/implementations/digests/liblegacy-lib-wp_prov.o", "providers/implementations/kdfs/liblegacy-lib-pbkdf1.o", + "providers/implementations/kdfs/liblegacy-lib-pvkkdf.o", "providers/liblegacy-lib-prov_running.o" ], - "ssl/libdefault-lib-s3_cbc.o" => [ - "ssl/s3_cbc.c" - ], - "ssl/libfips-lib-s3_cbc.o" => [ - "ssl/s3_cbc.c" + "providers/libtemplate.a" => [ + "providers/implementations/kem/libtemplate-lib-template_kem.o", + "providers/implementations/keymgmt/libtemplate-lib-template_kmgmt.o" ], "ssl/libssl-lib-bio_ssl.o" => [ "ssl/bio_ssl.c" @@ -25793,6 +30107,9 @@ our %unified_info = ( "ssl/libssl-lib-pqueue.o" => [ "ssl/pqueue.c" ], + "ssl/libssl-lib-priority_queue.o" => [ + "ssl/priority_queue.c" + ], "ssl/libssl-lib-s3_enc.o" => [ "ssl/s3_enc.c" ], @@ -25808,15 +30125,15 @@ our %unified_info = ( "ssl/libssl-lib-ssl_cert.o" => [ "ssl/ssl_cert.c" ], + "ssl/libssl-lib-ssl_cert_comp.o" => [ + "ssl/ssl_cert_comp.c" + ], "ssl/libssl-lib-ssl_ciph.o" => [ "ssl/ssl_ciph.c" ], "ssl/libssl-lib-ssl_conf.o" => [ "ssl/ssl_conf.c" ], - "ssl/libssl-lib-ssl_err.o" => [ - "ssl/ssl_err.c" - ], "ssl/libssl-lib-ssl_err_legacy.o" => [ "ssl/ssl_err_legacy.c" ], @@ -25865,11 +30182,131 @@ our %unified_info = ( "ssl/libssl-lib-tls_srp.o" => [ "ssl/tls_srp.c" ], - "ssl/record/libcommon-lib-tls_pad.o" => [ - "ssl/record/tls_pad.c" + "ssl/quic/libssl-lib-cc_newreno.o" => [ + "ssl/quic/cc_newreno.c" + ], + "ssl/quic/libssl-lib-json_enc.o" => [ + "ssl/quic/json_enc.c" + ], + "ssl/quic/libssl-lib-qlog.o" => [ + "ssl/quic/qlog.c" + ], + "ssl/quic/libssl-lib-qlog_event_helpers.o" => [ + "ssl/quic/qlog_event_helpers.c" + ], + "ssl/quic/libssl-lib-quic_ackm.o" => [ + "ssl/quic/quic_ackm.c" + ], + "ssl/quic/libssl-lib-quic_cfq.o" => [ + "ssl/quic/quic_cfq.c" + ], + "ssl/quic/libssl-lib-quic_channel.o" => [ + "ssl/quic/quic_channel.c" + ], + "ssl/quic/libssl-lib-quic_demux.o" => [ + "ssl/quic/quic_demux.c" + ], + "ssl/quic/libssl-lib-quic_engine.o" => [ + "ssl/quic/quic_engine.c" + ], + "ssl/quic/libssl-lib-quic_fc.o" => [ + "ssl/quic/quic_fc.c" + ], + "ssl/quic/libssl-lib-quic_fifd.o" => [ + "ssl/quic/quic_fifd.c" + ], + "ssl/quic/libssl-lib-quic_impl.o" => [ + "ssl/quic/quic_impl.c" + ], + "ssl/quic/libssl-lib-quic_lcidm.o" => [ + "ssl/quic/quic_lcidm.c" + ], + "ssl/quic/libssl-lib-quic_method.o" => [ + "ssl/quic/quic_method.c" + ], + "ssl/quic/libssl-lib-quic_obj.o" => [ + "ssl/quic/quic_obj.c" + ], + "ssl/quic/libssl-lib-quic_port.o" => [ + "ssl/quic/quic_port.c" + ], + "ssl/quic/libssl-lib-quic_rcidm.o" => [ + "ssl/quic/quic_rcidm.c" + ], + "ssl/quic/libssl-lib-quic_reactor.o" => [ + "ssl/quic/quic_reactor.c" + ], + "ssl/quic/libssl-lib-quic_reactor_wait_ctx.o" => [ + "ssl/quic/quic_reactor_wait_ctx.c" + ], + "ssl/quic/libssl-lib-quic_record_rx.o" => [ + "ssl/quic/quic_record_rx.c" + ], + "ssl/quic/libssl-lib-quic_record_shared.o" => [ + "ssl/quic/quic_record_shared.c" + ], + "ssl/quic/libssl-lib-quic_record_tx.o" => [ + "ssl/quic/quic_record_tx.c" + ], + "ssl/quic/libssl-lib-quic_record_util.o" => [ + "ssl/quic/quic_record_util.c" + ], + "ssl/quic/libssl-lib-quic_rstream.o" => [ + "ssl/quic/quic_rstream.c" ], - "ssl/record/libssl-lib-dtls1_bitmap.o" => [ - "ssl/record/dtls1_bitmap.c" + "ssl/quic/libssl-lib-quic_rx_depack.o" => [ + "ssl/quic/quic_rx_depack.c" + ], + "ssl/quic/libssl-lib-quic_sf_list.o" => [ + "ssl/quic/quic_sf_list.c" + ], + "ssl/quic/libssl-lib-quic_srt_gen.o" => [ + "ssl/quic/quic_srt_gen.c" + ], + "ssl/quic/libssl-lib-quic_srtm.o" => [ + "ssl/quic/quic_srtm.c" + ], + "ssl/quic/libssl-lib-quic_sstream.o" => [ + "ssl/quic/quic_sstream.c" + ], + "ssl/quic/libssl-lib-quic_statm.o" => [ + "ssl/quic/quic_statm.c" + ], + "ssl/quic/libssl-lib-quic_stream_map.o" => [ + "ssl/quic/quic_stream_map.c" + ], + "ssl/quic/libssl-lib-quic_thread_assist.o" => [ + "ssl/quic/quic_thread_assist.c" + ], + "ssl/quic/libssl-lib-quic_tls.o" => [ + "ssl/quic/quic_tls.c" + ], + "ssl/quic/libssl-lib-quic_tls_api.o" => [ + "ssl/quic/quic_tls_api.c" + ], + "ssl/quic/libssl-lib-quic_trace.o" => [ + "ssl/quic/quic_trace.c" + ], + "ssl/quic/libssl-lib-quic_tserver.o" => [ + "ssl/quic/quic_tserver.c" + ], + "ssl/quic/libssl-lib-quic_txp.o" => [ + "ssl/quic/quic_txp.c" + ], + "ssl/quic/libssl-lib-quic_txpim.o" => [ + "ssl/quic/quic_txpim.c" + ], + "ssl/quic/libssl-lib-quic_types.o" => [ + "ssl/quic/quic_types.c" + ], + "ssl/quic/libssl-lib-quic_wire.o" => [ + "ssl/quic/quic_wire.c" + ], + "ssl/quic/libssl-lib-quic_wire_pkt.o" => [ + "ssl/quic/quic_wire_pkt.c" + ], + "ssl/quic/libssl-lib-uint_set.o" => [ + "ssl/quic/uint_set.c" ], "ssl/record/libssl-lib-rec_layer_d1.o" => [ "ssl/record/rec_layer_d1.c" @@ -25877,14 +30314,44 @@ our %unified_info = ( "ssl/record/libssl-lib-rec_layer_s3.o" => [ "ssl/record/rec_layer_s3.c" ], - "ssl/record/libssl-lib-ssl3_buffer.o" => [ - "ssl/record/ssl3_buffer.c" + "ssl/record/methods/libcommon-lib-tls_pad.o" => [ + "ssl/record/methods/tls_pad.c" + ], + "ssl/record/methods/libdefault-lib-ssl3_cbc.o" => [ + "ssl/record/methods/ssl3_cbc.c" + ], + "ssl/record/methods/libfips-lib-ssl3_cbc.o" => [ + "ssl/record/methods/ssl3_cbc.c" + ], + "ssl/record/methods/libssl-lib-dtls_meth.o" => [ + "ssl/record/methods/dtls_meth.c" + ], + "ssl/record/methods/libssl-lib-ssl3_meth.o" => [ + "ssl/record/methods/ssl3_meth.c" + ], + "ssl/record/methods/libssl-lib-tls13_meth.o" => [ + "ssl/record/methods/tls13_meth.c" + ], + "ssl/record/methods/libssl-lib-tls1_meth.o" => [ + "ssl/record/methods/tls1_meth.c" + ], + "ssl/record/methods/libssl-lib-tls_common.o" => [ + "ssl/record/methods/tls_common.c" ], - "ssl/record/libssl-lib-ssl3_record.o" => [ - "ssl/record/ssl3_record.c" + "ssl/record/methods/libssl-lib-tls_multib.o" => [ + "ssl/record/methods/tls_multib.c" ], - "ssl/record/libssl-lib-ssl3_record_tls13.o" => [ - "ssl/record/ssl3_record_tls13.c" + "ssl/record/methods/libssl-lib-tlsany_meth.o" => [ + "ssl/record/methods/tlsany_meth.c" + ], + "ssl/rio/libssl-lib-poll_builder.o" => [ + "ssl/rio/poll_builder.c" + ], + "ssl/rio/libssl-lib-poll_immediate.o" => [ + "ssl/rio/poll_immediate.c" + ], + "ssl/rio/libssl-lib-rio_notifier.o" => [ + "ssl/rio/rio_notifier.c" ], "ssl/statem/libssl-lib-extensions.o" => [ "ssl/statem/extensions.c" @@ -25980,6 +30447,8 @@ our %unified_info = ( "test/asn1_string_table_test.c" ], "test/asn1_time_test" => [ + "crypto/asn1/asn1_time_test-bin-a_time.o", + "crypto/asn1_time_test-bin-ctype.o", "test/asn1_time_test-bin-asn1_time_test.o" ], "test/asn1_time_test-bin-asn1_time_test.o" => [ @@ -26010,6 +30479,18 @@ our %unified_info = ( "test/bftest-bin-bftest.o" => [ "test/bftest.c" ], + "test/bio_addr_test" => [ + "test/bio_addr_test-bin-bio_addr_test.o" + ], + "test/bio_addr_test-bin-bio_addr_test.o" => [ + "test/bio_addr_test.c" + ], + "test/bio_base64_test" => [ + "test/bio_base64_test-bin-bio_base64_test.o" + ], + "test/bio_base64_test-bin-bio_base64_test.o" => [ + "test/bio_base64_test.c" + ], "test/bio_callback_test" => [ "test/bio_callback_test-bin-bio_callback_test.o" ], @@ -26022,6 +30503,12 @@ our %unified_info = ( "test/bio_core_test-bin-bio_core_test.o" => [ "test/bio_core_test.c" ], + "test/bio_dgram_test" => [ + "test/bio_dgram_test-bin-bio_dgram_test.o" + ], + "test/bio_dgram_test-bin-bio_dgram_test.o" => [ + "test/bio_dgram_test.c" + ], "test/bio_enc_test" => [ "test/bio_enc_test-bin-bio_enc_test.o" ], @@ -26034,6 +30521,12 @@ our %unified_info = ( "test/bio_memleak_test-bin-bio_memleak_test.o" => [ "test/bio_memleak_test.c" ], + "test/bio_meth_test" => [ + "test/bio_meth_test-bin-bio_meth_test.o" + ], + "test/bio_meth_test-bin-bio_meth_test.o" => [ + "test/bio_meth_test.c" + ], "test/bio_prefix_text" => [ "test/bio_prefix_text-bin-bio_prefix_text.o" ], @@ -26052,6 +30545,12 @@ our %unified_info = ( "test/bio_readbuffer_test-bin-bio_readbuffer_test.o" => [ "test/bio_readbuffer_test.c" ], + "test/bio_tfo_test" => [ + "test/bio_tfo_test-bin-bio_tfo_test.o" + ], + "test/bio_tfo_test-bin-bio_tfo_test.o" => [ + "test/bio_tfo_test.c" + ], "test/bioprinttest" => [ "test/bioprinttest-bin-bioprinttest.o" ], @@ -26070,6 +30569,12 @@ our %unified_info = ( "test/bntest-bin-bntest.o" => [ "test/bntest.c" ], + "test/build_wincrypt_test" => [ + "test/build_wincrypt_test-bin-build_wincrypt_test.o" + ], + "test/build_wincrypt_test-bin-build_wincrypt_test.o" => [ + "test/build_wincrypt_test.c" + ], "test/buildtest_c_aes" => [ "test/buildtest_c_aes-bin-buildtest_aes.o" ], @@ -26100,6 +30605,12 @@ our %unified_info = ( "test/buildtest_c_buffer-bin-buildtest_buffer.o" => [ "test/buildtest_buffer.c" ], + "test/buildtest_c_byteorder" => [ + "test/buildtest_c_byteorder-bin-buildtest_byteorder.o" + ], + "test/buildtest_c_byteorder-bin-buildtest_byteorder.o" => [ + "test/buildtest_byteorder.c" + ], "test/buildtest_c_camellia" => [ "test/buildtest_c_camellia-bin-buildtest_camellia.o" ], @@ -26148,12 +30659,6 @@ our %unified_info = ( "test/buildtest_c_core_dispatch-bin-buildtest_core_dispatch.o" => [ "test/buildtest_core_dispatch.c" ], - "test/buildtest_c_core_names" => [ - "test/buildtest_c_core_names-bin-buildtest_core_names.o" - ], - "test/buildtest_c_core_names-bin-buildtest_core_names.o" => [ - "test/buildtest_core_names.c" - ], "test/buildtest_c_core_object" => [ "test/buildtest_c_core_object-bin-buildtest_core_object.o" ], @@ -26202,6 +30707,12 @@ our %unified_info = ( "test/buildtest_c_e_os2-bin-buildtest_e_os2.o" => [ "test/buildtest_e_os2.c" ], + "test/buildtest_c_e_ostime" => [ + "test/buildtest_c_e_ostime-bin-buildtest_e_ostime.o" + ], + "test/buildtest_c_e_ostime-bin-buildtest_e_ostime.o" => [ + "test/buildtest_e_ostime.c" + ], "test/buildtest_c_ebcdic" => [ "test/buildtest_c_ebcdic-bin-buildtest_ebcdic.o" ], @@ -26256,6 +30767,12 @@ our %unified_info = ( "test/buildtest_c_hmac-bin-buildtest_hmac.o" => [ "test/buildtest_hmac.c" ], + "test/buildtest_c_hpke" => [ + "test/buildtest_c_hpke-bin-buildtest_hpke.o" + ], + "test/buildtest_c_hpke-bin-buildtest_hpke.o" => [ + "test/buildtest_hpke.c" + ], "test/buildtest_c_http" => [ "test/buildtest_c_http-bin-buildtest_http.o" ], @@ -26268,6 +30785,12 @@ our %unified_info = ( "test/buildtest_c_idea-bin-buildtest_idea.o" => [ "test/buildtest_idea.c" ], + "test/buildtest_c_indicator" => [ + "test/buildtest_c_indicator-bin-buildtest_indicator.o" + ], + "test/buildtest_c_indicator-bin-buildtest_indicator.o" => [ + "test/buildtest_indicator.c" + ], "test/buildtest_c_kdf" => [ "test/buildtest_c_kdf-bin-buildtest_kdf.o" ], @@ -26298,6 +30821,12 @@ our %unified_info = ( "test/buildtest_c_mdc2-bin-buildtest_mdc2.o" => [ "test/buildtest_mdc2.c" ], + "test/buildtest_c_ml_kem" => [ + "test/buildtest_c_ml_kem-bin-buildtest_ml_kem.o" + ], + "test/buildtest_c_ml_kem-bin-buildtest_ml_kem.o" => [ + "test/buildtest_ml_kem.c" + ], "test/buildtest_c_modes" => [ "test/buildtest_c_modes-bin-buildtest_modes.o" ], @@ -26358,6 +30887,12 @@ our %unified_info = ( "test/buildtest_c_provider-bin-buildtest_provider.o" => [ "test/buildtest_provider.c" ], + "test/buildtest_c_quic" => [ + "test/buildtest_c_quic-bin-buildtest_quic.o" + ], + "test/buildtest_c_quic-bin-buildtest_quic.o" => [ + "test/buildtest_quic.c" + ], "test/buildtest_c_rand" => [ "test/buildtest_c_rand-bin-buildtest_rand.o" ], @@ -26442,6 +30977,12 @@ our %unified_info = ( "test/buildtest_c_symhacks-bin-buildtest_symhacks.o" => [ "test/buildtest_symhacks.c" ], + "test/buildtest_c_thread" => [ + "test/buildtest_c_thread-bin-buildtest_thread.o" + ], + "test/buildtest_c_thread-bin-buildtest_thread.o" => [ + "test/buildtest_thread.c" + ], "test/buildtest_c_tls1" => [ "test/buildtest_c_tls1-bin-buildtest_tls1.o" ], @@ -26472,6 +31013,29 @@ our %unified_info = ( "test/buildtest_c_whrlpool-bin-buildtest_whrlpool.o" => [ "test/buildtest_whrlpool.c" ], + "test/byteorder_test" => [ + "test/byteorder_test-bin-byteorder_test.o" + ], + "test/byteorder_test-bin-byteorder_test.o" => [ + "test/byteorder_test.c" + ], + "test/ca_internals_test" => [ + "apps/ca_internals_test-bin-ca.o", + "apps/lib/ca_internals_test-bin-app_libctx.o", + "apps/lib/ca_internals_test-bin-app_provider.o", + "apps/lib/ca_internals_test-bin-app_rand.o", + "apps/lib/ca_internals_test-bin-app_x509.o", + "apps/lib/ca_internals_test-bin-apps.o", + "apps/lib/ca_internals_test-bin-apps_ui.o", + "apps/lib/ca_internals_test-bin-engine.o", + "apps/lib/ca_internals_test-bin-fmt.o", + "crypto/asn1/ca_internals_test-bin-a_time.o", + "crypto/ca_internals_test-bin-ctype.o", + "test/ca_internals_test-bin-ca_internals_test.o" + ], + "test/ca_internals_test-bin-ca_internals_test.o" => [ + "test/ca_internals_test.c" + ], "test/casttest" => [ "test/casttest-bin-casttest.o" ], @@ -26650,6 +31214,12 @@ our %unified_info = ( "test/danetest-bin-danetest.o" => [ "test/danetest.c" ], + "test/decoder_propq_test" => [ + "test/decoder_propq_test-bin-decoder_propq_test.o" + ], + "test/decoder_propq_test-bin-decoder_propq_test.o" => [ + "test/decoder_propq_test.c" + ], "test/defltfips_test" => [ "test/defltfips_test-bin-defltfips_test.o" ], @@ -26731,6 +31301,7 @@ our %unified_info = ( "test/ectest.c" ], "test/endecode_test" => [ + "providers/endecode_test-bin-legacyprov.o", "test/endecode_test-bin-endecode_test.o", "test/helpers/endecode_test-bin-predefined_dhparams.o" ], @@ -26763,17 +31334,29 @@ our %unified_info = ( ], "test/evp_extra_test" => [ "providers/evp_extra_test-bin-legacyprov.o", - "test/evp_extra_test-bin-evp_extra_test.o" + "test/evp_extra_test-bin-evp_extra_test.o", + "test/evp_extra_test-bin-fake_pipelineprov.o", + "test/evp_extra_test-bin-fake_rsaprov.o" ], "test/evp_extra_test-bin-evp_extra_test.o" => [ "test/evp_extra_test.c" ], + "test/evp_extra_test-bin-fake_pipelineprov.o" => [ + "test/fake_pipelineprov.c" + ], + "test/evp_extra_test-bin-fake_rsaprov.o" => [ + "test/fake_rsaprov.c" + ], "test/evp_extra_test2" => [ - "test/evp_extra_test2-bin-evp_extra_test2.o" + "test/evp_extra_test2-bin-evp_extra_test2.o", + "test/evp_extra_test2-bin-tls-provider.o" ], "test/evp_extra_test2-bin-evp_extra_test2.o" => [ "test/evp_extra_test2.c" ], + "test/evp_extra_test2-bin-tls-provider.o" => [ + "test/tls-provider.c" + ], "test/evp_fetch_prov_test" => [ "test/evp_fetch_prov_test-bin-evp_fetch_prov_test.o" ], @@ -26798,6 +31381,12 @@ our %unified_info = ( "test/evp_pkey_ctx_new_from_name-bin-evp_pkey_ctx_new_from_name.o" => [ "test/evp_pkey_ctx_new_from_name.c" ], + "test/evp_pkey_dhkem_test" => [ + "test/evp_pkey_dhkem_test-bin-evp_pkey_dhkem_test.o" + ], + "test/evp_pkey_dhkem_test-bin-evp_pkey_dhkem_test.o" => [ + "test/evp_pkey_dhkem_test.c" + ], "test/evp_pkey_dparams_test" => [ "test/evp_pkey_dparams_test-bin-evp_pkey_dparams_test.o" ], @@ -26810,12 +31399,28 @@ our %unified_info = ( "test/evp_pkey_provided_test-bin-evp_pkey_provided_test.o" => [ "test/evp_pkey_provided_test.c" ], + "test/evp_skey_test" => [ + "test/evp_skey_test-bin-evp_skey_test.o", + "test/evp_skey_test-bin-fake_cipherprov.o" + ], + "test/evp_skey_test-bin-evp_skey_test.o" => [ + "test/evp_skey_test.c" + ], + "test/evp_skey_test-bin-fake_cipherprov.o" => [ + "test/fake_cipherprov.c" + ], "test/evp_test" => [ "test/evp_test-bin-evp_test.o" ], "test/evp_test-bin-evp_test.o" => [ "test/evp_test.c" ], + "test/evp_xof_test" => [ + "test/evp_xof_test-bin-evp_xof_test.o" + ], + "test/evp_xof_test-bin-evp_xof_test.o" => [ + "test/evp_xof_test.c" + ], "test/exdatatest" => [ "test/exdatatest-bin-exdatatest.o" ], @@ -26901,15 +31506,108 @@ our %unified_info = ( "test/helpers/fatalerrtest-bin-ssltestlib.o" => [ "test/helpers/ssltestlib.c" ], + "test/helpers/json_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/json_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/json_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/json_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/pkcs12_api_test-bin-pkcs12.o" => [ + "test/helpers/pkcs12.c" + ], "test/helpers/pkcs12_format_test-bin-pkcs12.o" => [ "test/helpers/pkcs12.c" ], + "test/helpers/quic_multistream_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quic_multistream_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quic_multistream_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quic_multistream_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quic_newcid_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quic_newcid_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quic_newcid_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quic_newcid_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quic_radix_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quic_radix_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quic_radix_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quic_radix_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quic_srt_gen_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quic_srt_gen_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quic_srt_gen_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quic_srt_gen_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quicapitest-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quicapitest-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quicapitest-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quicapitest-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quicfaultstest-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quicfaultstest-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quicfaultstest-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quicfaultstest-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], "test/helpers/recordlentest-bin-ssltestlib.o" => [ "test/helpers/ssltestlib.c" ], + "test/helpers/rpktest-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], "test/helpers/servername_test-bin-ssltestlib.o" => [ "test/helpers/ssltestlib.c" ], + "test/helpers/ssl_handshake_rtt_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], "test/helpers/ssl_old_test-bin-predefined_dhparams.o" => [ "test/helpers/predefined_dhparams.c" ], @@ -26937,6 +31635,9 @@ our %unified_info = ( "test/helpers/tls13ccstest-bin-ssltestlib.o" => [ "test/helpers/ssltestlib.c" ], + "test/helpers/tls13groupselection_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], "test/hexstr_test" => [ "test/hexstr_test-bin-hexstr_test.o" ], @@ -26949,6 +31650,12 @@ our %unified_info = ( "test/hmactest-bin-hmactest.o" => [ "test/hmactest.c" ], + "test/hpke_test" => [ + "test/hpke_test-bin-hpke_test.o" + ], + "test/hpke_test-bin-hpke_test.o" => [ + "test/hpke_test.c" + ], "test/http_test" => [ "test/http_test-bin-http_test.o" ], @@ -26967,6 +31674,16 @@ our %unified_info = ( "test/igetest-bin-igetest.o" => [ "test/igetest.c" ], + "test/json_test" => [ + "test/helpers/json_test-bin-noisydgrambio.o", + "test/helpers/json_test-bin-pktsplitbio.o", + "test/helpers/json_test-bin-quictestlib.o", + "test/helpers/json_test-bin-ssltestlib.o", + "test/json_test-bin-json_test.o" + ], + "test/json_test-bin-json_test.o" => [ + "test/json_test.c" + ], "test/keymgmt_internal_test" => [ "test/keymgmt_internal_test-bin-keymgmt_internal_test.o" ], @@ -26987,6 +31704,7 @@ our %unified_info = ( "test/testutil/libtestutil-lib-driver.o", "test/testutil/libtestutil-lib-fake_random.o", "test/testutil/libtestutil-lib-format_output.o", + "test/testutil/libtestutil-lib-helper.o", "test/testutil/libtestutil-lib-load.o", "test/testutil/libtestutil-lib-main.o", "test/testutil/libtestutil-lib-options.o", @@ -26999,6 +31717,12 @@ our %unified_info = ( "test/testutil/libtestutil-lib-tests.o", "test/testutil/libtestutil-lib-testutil_init.o" ], + "test/list_test" => [ + "test/list_test-bin-list_test.o" + ], + "test/list_test-bin-list_test.o" => [ + "test/list_test.c" + ], "test/localetest" => [ "test/localetest-bin-localetest.o" ], @@ -27017,12 +31741,36 @@ our %unified_info = ( "test/mdc2test-bin-mdc2test.o" => [ "test/mdc2test.c" ], + "test/membio_test" => [ + "test/membio_test-bin-membio_test.o" + ], + "test/membio_test-bin-membio_test.o" => [ + "test/membio_test.c" + ], "test/memleaktest" => [ "test/memleaktest-bin-memleaktest.o" ], "test/memleaktest-bin-memleaktest.o" => [ "test/memleaktest.c" ], + "test/ml_dsa_test" => [ + "test/ml_dsa_test-bin-ml_dsa_test.o" + ], + "test/ml_dsa_test-bin-ml_dsa_test.o" => [ + "test/ml_dsa_test.c" + ], + "test/ml_kem_evp_extra_test" => [ + "test/ml_kem_evp_extra_test-bin-ml_kem_evp_extra_test.o" + ], + "test/ml_kem_evp_extra_test-bin-ml_kem_evp_extra_test.o" => [ + "test/ml_kem_evp_extra_test.c" + ], + "test/ml_kem_internal_test" => [ + "test/ml_kem_internal_test-bin-ml_kem_internal_test.o" + ], + "test/ml_kem_internal_test-bin-ml_kem_internal_test.o" => [ + "test/ml_kem_internal_test.c" + ], "test/modes_internal_test" => [ "test/modes_internal_test-bin-modes_internal_test.o" ], @@ -27068,11 +31816,18 @@ our %unified_info = ( "test/p_test.c" ], "test/packettest" => [ + "crypto/packettest-bin-quic_vlint.o", "test/packettest-bin-packettest.o" ], "test/packettest-bin-packettest.o" => [ "test/packettest.c" ], + "test/pairwise_fail_test" => [ + "test/pairwise_fail_test-bin-pairwise_fail_test.o" + ], + "test/pairwise_fail_test-bin-pairwise_fail_test.o" => [ + "test/pairwise_fail_test.c" + ], "test/param_build_test" => [ "test/param_build_test-bin-param_build_test.o" ], @@ -27121,6 +31876,13 @@ our %unified_info = ( "test/pemtest-bin-pemtest.o" => [ "test/pemtest.c" ], + "test/pkcs12_api_test" => [ + "test/helpers/pkcs12_api_test-bin-pkcs12.o", + "test/pkcs12_api_test-bin-pkcs12_api_test.o" + ], + "test/pkcs12_api_test-bin-pkcs12_api_test.o" => [ + "test/pkcs12_api_test.c" + ], "test/pkcs12_format_test" => [ "test/helpers/pkcs12_format_test-bin-pkcs12.o", "test/pkcs12_format_test-bin-pkcs12_format_test.o" @@ -27152,6 +31914,12 @@ our %unified_info = ( "test/poly1305_internal_test-bin-poly1305_internal_test.o" => [ "test/poly1305_internal_test.c" ], + "test/priority_queue_test" => [ + "test/priority_queue_test-bin-priority_queue_test.o" + ], + "test/priority_queue_test-bin-priority_queue_test.o" => [ + "test/priority_queue_test.c" + ], "test/property_test" => [ "test/property_test-bin-property_test.o" ], @@ -27170,6 +31938,12 @@ our %unified_info = ( "test/provfetchtest-bin-provfetchtest.o" => [ "test/provfetchtest.c" ], + "test/provider_default_search_path_test" => [ + "test/provider_default_search_path_test-bin-provider_default_search_path_test.o" + ], + "test/provider_default_search_path_test-bin-provider_default_search_path_test.o" => [ + "test/provider_default_search_path_test.c" + ], "test/provider_fallback_test" => [ "test/provider_fallback_test-bin-provider_fallback_test.o" ], @@ -27218,6 +31992,174 @@ our %unified_info = ( "test/punycode_test-bin-punycode_test.o" => [ "test/punycode_test.c" ], + "test/quic_ackm_test" => [ + "test/quic_ackm_test-bin-cc_dummy.o", + "test/quic_ackm_test-bin-quic_ackm_test.o" + ], + "test/quic_ackm_test-bin-cc_dummy.o" => [ + "test/cc_dummy.c" + ], + "test/quic_ackm_test-bin-quic_ackm_test.o" => [ + "test/quic_ackm_test.c" + ], + "test/quic_cc_test" => [ + "test/quic_cc_test-bin-quic_cc_test.o" + ], + "test/quic_cc_test-bin-quic_cc_test.o" => [ + "test/quic_cc_test.c" + ], + "test/quic_cfq_test" => [ + "test/quic_cfq_test-bin-quic_cfq_test.o" + ], + "test/quic_cfq_test-bin-quic_cfq_test.o" => [ + "test/quic_cfq_test.c" + ], + "test/quic_client_test" => [ + "test/quic_client_test-bin-quic_client_test.o" + ], + "test/quic_client_test-bin-quic_client_test.o" => [ + "test/quic_client_test.c" + ], + "test/quic_fc_test" => [ + "test/quic_fc_test-bin-quic_fc_test.o" + ], + "test/quic_fc_test-bin-quic_fc_test.o" => [ + "test/quic_fc_test.c" + ], + "test/quic_fifd_test" => [ + "test/quic_fifd_test-bin-cc_dummy.o", + "test/quic_fifd_test-bin-quic_fifd_test.o" + ], + "test/quic_fifd_test-bin-cc_dummy.o" => [ + "test/cc_dummy.c" + ], + "test/quic_fifd_test-bin-quic_fifd_test.o" => [ + "test/quic_fifd_test.c" + ], + "test/quic_lcidm_test" => [ + "test/quic_lcidm_test-bin-quic_lcidm_test.o" + ], + "test/quic_lcidm_test-bin-quic_lcidm_test.o" => [ + "test/quic_lcidm_test.c" + ], + "test/quic_multistream_test" => [ + "test/helpers/quic_multistream_test-bin-noisydgrambio.o", + "test/helpers/quic_multistream_test-bin-pktsplitbio.o", + "test/helpers/quic_multistream_test-bin-quictestlib.o", + "test/helpers/quic_multistream_test-bin-ssltestlib.o", + "test/quic_multistream_test-bin-quic_multistream_test.o" + ], + "test/quic_multistream_test-bin-quic_multistream_test.o" => [ + "test/quic_multistream_test.c" + ], + "test/quic_newcid_test" => [ + "test/helpers/quic_newcid_test-bin-noisydgrambio.o", + "test/helpers/quic_newcid_test-bin-pktsplitbio.o", + "test/helpers/quic_newcid_test-bin-quictestlib.o", + "test/helpers/quic_newcid_test-bin-ssltestlib.o", + "test/quic_newcid_test-bin-quic_newcid_test.o" + ], + "test/quic_newcid_test-bin-quic_newcid_test.o" => [ + "test/quic_newcid_test.c" + ], + "test/quic_qlog_test" => [ + "test/quic_qlog_test-bin-quic_qlog_test.o" + ], + "test/quic_qlog_test-bin-quic_qlog_test.o" => [ + "test/quic_qlog_test.c" + ], + "test/quic_radix_test" => [ + "test/helpers/quic_radix_test-bin-noisydgrambio.o", + "test/helpers/quic_radix_test-bin-pktsplitbio.o", + "test/helpers/quic_radix_test-bin-quictestlib.o", + "test/helpers/quic_radix_test-bin-ssltestlib.o", + "test/radix/quic_radix_test-bin-quic_radix.o" + ], + "test/quic_rcidm_test" => [ + "test/quic_rcidm_test-bin-quic_rcidm_test.o" + ], + "test/quic_rcidm_test-bin-quic_rcidm_test.o" => [ + "test/quic_rcidm_test.c" + ], + "test/quic_record_test" => [ + "test/quic_record_test-bin-quic_record_test.o" + ], + "test/quic_record_test-bin-quic_record_test.o" => [ + "test/quic_record_test.c" + ], + "test/quic_srt_gen_test" => [ + "test/helpers/quic_srt_gen_test-bin-noisydgrambio.o", + "test/helpers/quic_srt_gen_test-bin-pktsplitbio.o", + "test/helpers/quic_srt_gen_test-bin-quictestlib.o", + "test/helpers/quic_srt_gen_test-bin-ssltestlib.o", + "test/quic_srt_gen_test-bin-quic_srt_gen_test.o" + ], + "test/quic_srt_gen_test-bin-quic_srt_gen_test.o" => [ + "test/quic_srt_gen_test.c" + ], + "test/quic_srtm_test" => [ + "test/quic_srtm_test-bin-quic_srtm_test.o" + ], + "test/quic_srtm_test-bin-quic_srtm_test.o" => [ + "test/quic_srtm_test.c" + ], + "test/quic_stream_test" => [ + "test/quic_stream_test-bin-quic_stream_test.o" + ], + "test/quic_stream_test-bin-quic_stream_test.o" => [ + "test/quic_stream_test.c" + ], + "test/quic_tserver_test" => [ + "test/quic_tserver_test-bin-quic_tserver_test.o" + ], + "test/quic_tserver_test-bin-quic_tserver_test.o" => [ + "test/quic_tserver_test.c" + ], + "test/quic_txp_test" => [ + "test/quic_txp_test-bin-cc_dummy.o", + "test/quic_txp_test-bin-quic_txp_test.o" + ], + "test/quic_txp_test-bin-cc_dummy.o" => [ + "test/cc_dummy.c" + ], + "test/quic_txp_test-bin-quic_txp_test.o" => [ + "test/quic_txp_test.c" + ], + "test/quic_txpim_test" => [ + "test/quic_txpim_test-bin-quic_txpim_test.o" + ], + "test/quic_txpim_test-bin-quic_txpim_test.o" => [ + "test/quic_txpim_test.c" + ], + "test/quic_wire_test" => [ + "test/quic_wire_test-bin-quic_wire_test.o" + ], + "test/quic_wire_test-bin-quic_wire_test.o" => [ + "test/quic_wire_test.c" + ], + "test/quicapitest" => [ + "test/helpers/quicapitest-bin-noisydgrambio.o", + "test/helpers/quicapitest-bin-pktsplitbio.o", + "test/helpers/quicapitest-bin-quictestlib.o", + "test/helpers/quicapitest-bin-ssltestlib.o", + "test/quicapitest-bin-quicapitest.o" + ], + "test/quicapitest-bin-quicapitest.o" => [ + "test/quicapitest.c" + ], + "test/quicfaultstest" => [ + "test/helpers/quicfaultstest-bin-noisydgrambio.o", + "test/helpers/quicfaultstest-bin-pktsplitbio.o", + "test/helpers/quicfaultstest-bin-quictestlib.o", + "test/helpers/quicfaultstest-bin-ssltestlib.o", + "test/quicfaultstest-bin-quicfaultstest.o" + ], + "test/quicfaultstest-bin-quicfaultstest.o" => [ + "test/quicfaultstest.c" + ], + "test/radix/quic_radix_test-bin-quic_radix.o" => [ + "test/radix/quic_radix.c" + ], "test/rand_status_test" => [ "test/rand_status_test-bin-rand_status_test.o" ], @@ -27248,11 +32190,11 @@ our %unified_info = ( "test/rc5test-bin-rc5test.o" => [ "test/rc5test.c" ], - "test/rdrand_sanitytest" => [ - "test/rdrand_sanitytest-bin-rdrand_sanitytest.o" + "test/rdcpu_sanitytest" => [ + "test/rdcpu_sanitytest-bin-rdcpu_sanitytest.o" ], - "test/rdrand_sanitytest-bin-rdrand_sanitytest.o" => [ - "test/rdrand_sanitytest.c" + "test/rdcpu_sanitytest-bin-rdcpu_sanitytest.o" => [ + "test/rdcpu_sanitytest.c" ], "test/recordlentest" => [ "test/helpers/recordlentest-bin-ssltestlib.o", @@ -27261,6 +32203,13 @@ our %unified_info = ( "test/recordlentest-bin-recordlentest.o" => [ "test/recordlentest.c" ], + "test/rpktest" => [ + "test/helpers/rpktest-bin-ssltestlib.o", + "test/rpktest-bin-rpktest.o" + ], + "test/rpktest-bin-rpktest.o" => [ + "test/rpktest.c" + ], "test/rsa_complex" => [ "test/rsa_complex-bin-rsa_complex.o" ], @@ -27285,6 +32234,18 @@ our %unified_info = ( "test/rsa_test-bin-rsa_test.o" => [ "test/rsa_test.c" ], + "test/rsa_x931_test" => [ + "test/rsa_x931_test-bin-rsa_x931_test.o" + ], + "test/rsa_x931_test-bin-rsa_x931_test.o" => [ + "test/rsa_x931_test.c" + ], + "test/safe_math_test" => [ + "test/safe_math_test-bin-safe_math_test.o" + ], + "test/safe_math_test-bin-safe_math_test.o" => [ + "test/safe_math_test.c" + ], "test/sanitytest" => [ "test/sanitytest-bin-sanitytest.o" ], @@ -27316,6 +32277,12 @@ our %unified_info = ( "test/siphash_internal_test-bin-siphash_internal_test.o" => [ "test/siphash_internal_test.c" ], + "test/slh_dsa_test" => [ + "test/slh_dsa_test-bin-slh_dsa_test.o" + ], + "test/slh_dsa_test-bin-slh_dsa_test.o" => [ + "test/slh_dsa_test.c" + ], "test/sm2_internal_test" => [ "test/sm2_internal_test-bin-sm2_internal_test.o" ], @@ -27358,6 +32325,13 @@ our %unified_info = ( "test/ssl_ctx_test-bin-ssl_ctx_test.o" => [ "test/ssl_ctx_test.c" ], + "test/ssl_handshake_rtt_test" => [ + "test/helpers/ssl_handshake_rtt_test-bin-ssltestlib.o", + "test/ssl_handshake_rtt_test-bin-ssl_handshake_rtt_test.o" + ], + "test/ssl_handshake_rtt_test-bin-ssl_handshake_rtt_test.o" => [ + "test/ssl_handshake_rtt_test.c" + ], "test/ssl_old_test" => [ "test/helpers/ssl_old_test-bin-predefined_dhparams.o", "test/ssl_old_test-bin-ssl_old_test.o" @@ -27416,6 +32390,12 @@ our %unified_info = ( "test/stack_test-bin-stack_test.o" => [ "test/stack_test.c" ], + "test/strtoultest" => [ + "test/strtoultest-bin-strtoultest.o" + ], + "test/strtoultest-bin-strtoultest.o" => [ + "test/strtoultest.c" + ], "test/sysdefaulttest" => [ "test/sysdefaulttest-bin-sysdefaulttest.o" ], @@ -27446,6 +32426,9 @@ our %unified_info = ( "test/testutil/libtestutil-lib-format_output.o" => [ "test/testutil/format_output.c" ], + "test/testutil/libtestutil-lib-helper.o" => [ + "test/testutil/helper.c" + ], "test/testutil/libtestutil-lib-load.o" => [ "test/testutil/load.c" ], @@ -27479,6 +32462,12 @@ our %unified_info = ( "test/testutil/libtestutil-lib-testutil_init.o" => [ "test/testutil/testutil_init.c" ], + "test/threadpool_test" => [ + "test/threadpool_test-bin-threadpool_test.o" + ], + "test/threadpool_test-bin-threadpool_test.o" => [ + "test/threadpool_test.c" + ], "test/threadstest" => [ "test/threadstest-bin-threadstest.o" ], @@ -27497,6 +32486,12 @@ our %unified_info = ( "test/time_offset_test-bin-time_offset_test.o" => [ "test/time_offset_test.c" ], + "test/time_test" => [ + "test/time_test-bin-time_test.o" + ], + "test/time_test-bin-time_test.o" => [ + "test/time_test.c" + ], "test/tls13ccstest" => [ "test/helpers/tls13ccstest-bin-ssltestlib.o", "test/tls13ccstest-bin-tls13ccstest.o" @@ -27510,6 +32505,13 @@ our %unified_info = ( "test/tls13encryptiontest-bin-tls13encryptiontest.o" => [ "test/tls13encryptiontest.c" ], + "test/tls13groupselection_test" => [ + "test/helpers/tls13groupselection_test-bin-ssltestlib.o", + "test/tls13groupselection_test-bin-tls13groupselection_test.o" + ], + "test/tls13groupselection_test-bin-tls13groupselection_test.o" => [ + "test/tls13groupselection_test.c" + ], "test/trace_api_test" => [ "test/trace_api_test-bin-trace_api_test.o" ], @@ -27565,6 +32567,12 @@ our %unified_info = ( "test/wpackettest-bin-wpackettest.o" => [ "test/wpackettest.c" ], + "test/x509_acert_test" => [ + "test/x509_acert_test-bin-x509_acert_test.o" + ], + "test/x509_acert_test-bin-x509_acert_test.o" => [ + "test/x509_acert_test.c" + ], "test/x509_check_cert_pkey_test" => [ "test/x509_check_cert_pkey_test-bin-x509_check_cert_pkey_test.o" ], @@ -27583,6 +32591,24 @@ our %unified_info = ( "test/x509_internal_test-bin-x509_internal_test.o" => [ "test/x509_internal_test.c" ], + "test/x509_load_cert_file_test" => [ + "test/x509_load_cert_file_test-bin-x509_load_cert_file_test.o" + ], + "test/x509_load_cert_file_test-bin-x509_load_cert_file_test.o" => [ + "test/x509_load_cert_file_test.c" + ], + "test/x509_req_test" => [ + "test/x509_req_test-bin-x509_req_test.o" + ], + "test/x509_req_test-bin-x509_req_test.o" => [ + "test/x509_req_test.c" + ], + "test/x509_test" => [ + "test/x509_test-bin-x509_test.o" + ], + "test/x509_test-bin-x509_test.o" => [ + "test/x509_test.c" + ], "test/x509_time_test" => [ "test/x509_time_test-bin-x509_time_test.o" ], @@ -27646,6 +32672,7 @@ my @makevars = ( "LDLIBS", "MT", "MTFLAGS", + "OBJCOPY", "PERL", "RANLIB", "RC", @@ -27659,6 +32686,12 @@ my %disabled_info = ( "asan" => { "macro" => "OPENSSL_NO_ASAN" }, + "brotli" => { + "macro" => "OPENSSL_NO_BROTLI" + }, + "brotli-dynamic" => { + "macro" => "OPENSSL_NO_BROTLI_DYNAMIC" + }, "comp" => { "macro" => "OPENSSL_NO_COMP", "skipped" => [ @@ -27671,6 +32704,9 @@ my %disabled_info = ( "crypto-mdebug-backtrace" => { "macro" => "OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE" }, + "demos" => { + "macro" => "OPENSSL_NO_DEMOS" + }, "devcryptoeng" => { "macro" => "OPENSSL_NO_DEVCRYPTOENG" }, @@ -27683,12 +32719,24 @@ my %disabled_info = ( "external-tests" => { "macro" => "OPENSSL_NO_EXTERNAL_TESTS" }, + "fips-jitter" => { + "macro" => "OPENSSL_NO_FIPS_JITTER" + }, "fuzz-afl" => { "macro" => "OPENSSL_NO_FUZZ_AFL" }, "fuzz-libfuzzer" => { "macro" => "OPENSSL_NO_FUZZ_LIBFUZZER" }, + "h3demo" => { + "macro" => "OPENSSL_NO_H3DEMO" + }, + "hqinterop" => { + "macro" => "OPENSSL_NO_HQINTEROP" + }, + "jitter" => { + "macro" => "OPENSSL_NO_JITTER" + }, "ktls" => { "macro" => "OPENSSL_NO_KTLS" }, @@ -27704,6 +32752,9 @@ my %disabled_info = ( "msan" => { "macro" => "OPENSSL_NO_MSAN" }, + "pie" => { + "macro" => "OPENSSL_NO_PIE" + }, "rc5" => { "macro" => "OPENSSL_NO_RC5", "skipped" => [ @@ -27719,6 +32770,12 @@ my %disabled_info = ( "ssl3-method" => { "macro" => "OPENSSL_NO_SSL3_METHOD" }, + "sslkeylog" => { + "macro" => "OPENSSL_NO_SSLKEYLOG" + }, + "tfo" => { + "macro" => "OPENSSL_NO_TFO" + }, "trace" => { "macro" => "OPENSSL_NO_TRACE" }, @@ -27733,6 +32790,21 @@ my %disabled_info = ( }, "weak-ssl-ciphers" => { "macro" => "OPENSSL_NO_WEAK_SSL_CIPHERS" + }, + "winstore" => { + "macro" => "OPENSSL_NO_WINSTORE" + }, + "zlib" => { + "macro" => "OPENSSL_NO_ZLIB" + }, + "zlib-dynamic" => { + "macro" => "OPENSSL_NO_ZLIB_DYNAMIC" + }, + "zstd" => { + "macro" => "OPENSSL_NO_ZSTD" + }, + "zstd-dynamic" => { + "macro" => "OPENSSL_NO_ZSTD_DYNAMIC" } ); my @user_crossable = qw( AR AS CC CXX CPP LD MT RANLIB RC ); @@ -27746,15 +32818,15 @@ unless (caller) { use File::Copy; use Pod::Usage; - use lib '/home/runner/work/node/node/deps/openssl/openssl/util/perl'; - use OpenSSL::fallback '/home/runner/work/node/node/deps/openssl/openssl/external/perl/MODULES.txt'; + use lib '/node/deps/openssl/openssl/util/perl'; + use OpenSSL::fallback '/node/deps/openssl/openssl/external/perl/MODULES.txt'; my $here = dirname($0); if (scalar @ARGV == 0) { # With no arguments, re-create the build file # We do that in two steps, where the first step emits perl - # snipets. + # snippets. my $buildfile = $config{build_file}; my $buildfile_template = "$buildfile.in"; @@ -27774,7 +32846,7 @@ unless (caller) { ); use lib '.'; - use lib '/home/runner/work/node/node/deps/openssl/openssl/Configurations'; + use lib '/node/deps/openssl/openssl/Configurations'; use gentemplate; open my $buildfile_template_fh, ">$buildfile_template" @@ -27791,8 +32863,8 @@ unless (caller) { my $prepend = <<'_____'; use File::Spec::Functions; -use lib '/home/runner/work/node/node/deps/openssl/openssl/util/perl'; -use lib '/home/runner/work/node/node/deps/openssl/openssl/Configurations'; +use lib '/node/deps/openssl/openssl/util/perl'; +use lib '/node/deps/openssl/openssl/Configurations'; use lib '.'; use platform; _____ diff --git a/deps/openssl/config/archs/linux-armv4/asm_avx2/crypto/aes/aesv8-armx.S b/deps/openssl/config/archs/linux-armv4/asm_avx2/crypto/aes/aesv8-armx.S index eca1f753abd741..cf7a77c200d707 100644 --- a/deps/openssl/config/archs/linux-armv4/asm_avx2/crypto/aes/aesv8-armx.S +++ b/deps/openssl/config/archs/linux-armv4/asm_avx2/crypto/aes/aesv8-armx.S @@ -18,7 +18,6 @@ .long 0x01,0x01,0x01,0x01 .long 0x0c0f0e0d,0x0c0f0e0d,0x0c0f0e0d,0x0c0f0e0d @ rotate-n-splat .long 0x1b,0x1b,0x1b,0x1b - .globl aes_v8_set_encrypt_key .type aes_v8_set_encrypt_key,%function .align 5 diff --git a/deps/openssl/config/archs/linux-armv4/asm_avx2/crypto/armv4cpuid.S b/deps/openssl/config/archs/linux-armv4/asm_avx2/crypto/armv4cpuid.S index 2984c8b035c13c..843f3dda55524a 100644 --- a/deps/openssl/config/archs/linux-armv4/asm_avx2/crypto/armv4cpuid.S +++ b/deps/openssl/config/archs/linux-armv4/asm_avx2/crypto/armv4cpuid.S @@ -268,5 +268,5 @@ atomic_add_spinlock: .word 0 #endif -.comm OPENSSL_armcap_P,4,4 + .hidden OPENSSL_armcap_P diff --git a/deps/openssl/config/archs/linux-armv4/asm_avx2/crypto/bn/armv4-gf2m.S b/deps/openssl/config/archs/linux-armv4/asm_avx2/crypto/bn/armv4-gf2m.S index 72fbfa38988828..b20a1daee09ecf 100644 --- a/deps/openssl/config/archs/linux-armv4/asm_avx2/crypto/bn/armv4-gf2m.S +++ b/deps/openssl/config/archs/linux-armv4/asm_avx2/crypto/bn/armv4-gf2m.S @@ -231,5 +231,6 @@ bn_GF2m_mul_2x2: .align 5 #if __ARM_MAX_ARCH__>=7 -.comm OPENSSL_armcap_P,4,4 + +.hidden OPENSSL_armcap_P #endif diff --git a/deps/openssl/config/archs/linux-armv4/asm_avx2/crypto/bn/armv4-mont.S b/deps/openssl/config/archs/linux-armv4/asm_avx2/crypto/bn/armv4-mont.S index 99713f8afe28d2..57a83738855b48 100644 --- a/deps/openssl/config/archs/linux-armv4/asm_avx2/crypto/bn/armv4-mont.S +++ b/deps/openssl/config/archs/linux-armv4/asm_avx2/crypto/bn/armv4-mont.S @@ -956,5 +956,6 @@ bn_mul8x_mont_neon: .align 2 .align 2 #if __ARM_MAX_ARCH__>=7 -.comm OPENSSL_armcap_P,4,4 + +.hidden OPENSSL_armcap_P #endif diff --git a/deps/openssl/config/archs/linux-armv4/asm_avx2/crypto/buildinf.h b/deps/openssl/config/archs/linux-armv4/asm_avx2/crypto/buildinf.h index 66a200afb92f0f..e31cbb1af6765f 100644 --- a/deps/openssl/config/archs/linux-armv4/asm_avx2/crypto/buildinf.h +++ b/deps/openssl/config/archs/linux-armv4/asm_avx2/crypto/buildinf.h @@ -11,7 +11,7 @@ */ #define PLATFORM "platform: linux-armv4" -#define DATE "built on: Sun Jul 20 00:49:42 2025 UTC" +#define DATE "built on: Sun Jul 27 00:51:15 2025 UTC" /* * Generate compiler_flags as an array of individual characters. This is a diff --git a/deps/openssl/config/archs/linux-armv4/asm_avx2/crypto/chacha/chacha-armv4.S b/deps/openssl/config/archs/linux-armv4/asm_avx2/crypto/chacha/chacha-armv4.S index 0badd6fea5b195..15a8bb10073fac 100644 --- a/deps/openssl/config/archs/linux-armv4/asm_avx2/crypto/chacha/chacha-armv4.S +++ b/deps/openssl/config/archs/linux-armv4/asm_avx2/crypto/chacha/chacha-armv4.S @@ -1473,5 +1473,6 @@ ChaCha20_neon: add sp,sp,#4*(16+3) ldmia sp!,{r4,r5,r6,r7,r8,r9,r10,r11,pc} .size ChaCha20_neon,.-ChaCha20_neon -.comm OPENSSL_armcap_P,4,4 + +.hidden OPENSSL_armcap_P #endif diff --git a/deps/openssl/config/archs/linux-armv4/asm_avx2/crypto/modes/ghashv8-armx.S b/deps/openssl/config/archs/linux-armv4/asm_avx2/crypto/modes/ghashv8-armx.S index 2dd63a8c85d353..67299867aa2e3c 100644 --- a/deps/openssl/config/archs/linux-armv4/asm_avx2/crypto/modes/ghashv8-armx.S +++ b/deps/openssl/config/archs/linux-armv4/asm_avx2/crypto/modes/ghashv8-armx.S @@ -237,6 +237,7 @@ gcm_ghash_v8: vldmia sp!,{d8,d9,d10,d11,d12,d13,d14,d15} @ 32-bit ABI says so bx lr .size gcm_ghash_v8,.-gcm_ghash_v8 +.section .rodata .byte 71,72,65,83,72,32,102,111,114,32,65,82,77,118,56,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 .align 2 .align 2 diff --git a/deps/openssl/config/archs/linux-armv4/asm_avx2/crypto/params_idx.c b/deps/openssl/config/archs/linux-armv4/asm_avx2/crypto/params_idx.c new file mode 100644 index 00000000000000..9d76ffededc24c --- /dev/null +++ b/deps/openssl/config/archs/linux-armv4/asm_avx2/crypto/params_idx.c @@ -0,0 +1,3366 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from crypto/params_idx.c.in + * + * Copyright 2023 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + +#include "internal/e_os.h" +#include "internal/param_names.h" +#include + +/* Machine generated TRIE -- generated by util/perl/OpenSSL/paramnames.pm */ +int ossl_param_find_pidx(const char *s) +{ + switch(s[0]) { + default: + break; + case 'a': + switch(s[1]) { + default: + break; + case 'c': + if (strcmp("vp-info", s + 2) == 0) + return PIDX_KDF_PARAM_X942_ACVPINFO; + break; + case 'd': + switch(s[2]) { + default: + break; + case 'd': + if (strcmp("itional-random", s + 3) == 0) + return PIDX_SIGNATURE_PARAM_ADD_RANDOM; + break; + case '\0': + return PIDX_KDF_PARAM_ARGON2_AD; + } + break; + case 'e': + if (strcmp("ad", s + 2) == 0) + return PIDX_CIPHER_PARAM_AEAD; + break; + case 'l': + switch(s[2]) { + default: + break; + case 'g': + switch(s[3]) { + default: + break; + case '_': + if (strcmp("id_param", s + 4) == 0) + return PIDX_CIPHER_PARAM_ALGORITHM_ID_PARAMS_OLD; + break; + case 'i': + if (strcmp("d-absent", s + 4) == 0) + return PIDX_DIGEST_PARAM_ALGID_ABSENT; + break; + case 'o': + switch(s[4]) { + default: + break; + case 'r': + switch(s[5]) { + default: + break; + case 'i': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case 'h': + switch(s[8]) { + default: + break; + case 'm': + switch(s[9]) { + default: + break; + case '-': + switch(s[10]) { + default: + break; + case 'i': + switch(s[11]) { + default: + break; + case 'd': + switch(s[12]) { + default: + break; + case '-': + if (strcmp("params", s + 13) == 0) + return PIDX_ALG_PARAM_ALGORITHM_ID_PARAMS; + break; + case '\0': + return PIDX_ALG_PARAM_ALGORITHM_ID; + } + } + } + } + } + } + } + } + } + } + break; + case 'i': + if (strcmp("as", s + 3) == 0) + return PIDX_STORE_PARAM_ALIAS; + } + break; + case '\0': + return PIDX_PKEY_PARAM_EC_A; + } + break; + case 'b': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("sis-type", s + 2) == 0) + return PIDX_PKEY_PARAM_EC_CHAR2_TYPE; + break; + case 'i': + if (strcmp("ts", s + 2) == 0) + return PIDX_PKEY_PARAM_BITS; + break; + case 'l': + switch(s[2]) { + default: + break; + case 'o': + switch(s[3]) { + default: + break; + case 'c': + switch(s[4]) { + default: + break; + case 'k': + switch(s[5]) { + default: + break; + case '-': + if (strcmp("size", s + 6) == 0) + return PIDX_MAC_PARAM_BLOCK_SIZE; + break; + case '_': + if (strcmp("padding", s + 6) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_BLOCK_PADDING; + break; + case 's': + if (strcmp("ize", s + 6) == 0) + return PIDX_DIGEST_PARAM_BLOCK_SIZE; + } + } + } + } + break; + case 'u': + if (strcmp("ildinfo", s + 2) == 0) + return PIDX_PROV_PARAM_BUILDINFO; + break; + case '\0': + return PIDX_PKEY_PARAM_EC_B; + } + break; + case 'c': + switch(s[1]) { + default: + break; + case '-': + if (strcmp("rounds", s + 2) == 0) + return PIDX_MAC_PARAM_C_ROUNDS; + break; + case 'e': + if (strcmp("kalg", s + 2) == 0) + return PIDX_KDF_PARAM_CEK_ALG; + break; + case 'i': + if (strcmp("pher", s + 2) == 0) + return PIDX_ALG_PARAM_CIPHER; + break; + case 'o': + switch(s[2]) { + default: + break; + case 'f': + if (strcmp("actor", s + 3) == 0) + return PIDX_PKEY_PARAM_EC_COFACTOR; + break; + case 'n': + switch(s[3]) { + default: + break; + case 's': + if (strcmp("tant", s + 4) == 0) + return PIDX_KDF_PARAM_CONSTANT; + break; + case 't': + if (strcmp("ext-string", s + 4) == 0) + return PIDX_SIGNATURE_PARAM_CONTEXT_STRING; + } + } + break; + case 't': + switch(s[2]) { + default: + break; + case 's': + switch(s[3]) { + default: + break; + case '_': + if (strcmp("mode", s + 4) == 0) + return PIDX_CIPHER_PARAM_CTS_MODE; + break; + case '\0': + return PIDX_CIPHER_PARAM_CTS; + } + } + break; + case 'u': + switch(s[2]) { + default: + break; + case 's': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case 'o': + switch(s[5]) { + default: + break; + case 'm': + switch(s[6]) { + default: + break; + case '-': + if (strcmp("iv", s + 7) == 0) + return PIDX_CIPHER_PARAM_CUSTOM_IV; + break; + case '\0': + return PIDX_MAC_PARAM_CUSTOM; + } + } + } + } + } + } + break; + case 'd': + switch(s[1]) { + default: + break; + case '-': + if (strcmp("rounds", s + 2) == 0) + return PIDX_MAC_PARAM_D_ROUNDS; + break; + case 'a': + switch(s[2]) { + default: + break; + case 't': + switch(s[3]) { + default: + break; + case 'a': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 's': + if (strcmp("tructure", s + 6) == 0) + return PIDX_OBJECT_PARAM_DATA_STRUCTURE; + break; + case 't': + if (strcmp("ype", s + 6) == 0) + return PIDX_OBJECT_PARAM_DATA_TYPE; + } + break; + case '\0': + return PIDX_OBJECT_PARAM_DATA; + } + } + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'c': + switch(s[3]) { + default: + break; + case 'o': + if (strcmp("ded-from-explicit", s + 4) == 0) + return PIDX_PKEY_PARAM_EC_DECODED_FROM_EXPLICIT_PARAMS; + break; + case 'r': + if (strcmp("ypt-only", s + 4) == 0) + return PIDX_CIPHER_PARAM_DECRYPT_ONLY; + } + break; + case 'f': + if (strcmp("ault-digest", s + 3) == 0) + return PIDX_PKEY_PARAM_DEFAULT_DIGEST; + break; + case 's': + if (strcmp("c", s + 3) == 0) + return PIDX_OBJECT_PARAM_DESC; + break; + case 't': + if (strcmp("erministic", s + 3) == 0) + return PIDX_SIGNATURE_PARAM_DETERMINISTIC; + } + break; + case 'h': + if (strcmp("kem-ikm", s + 2) == 0) + return PIDX_PKEY_PARAM_DHKEM_IKM; + break; + case 'i': + switch(s[2]) { + default: + break; + case 'g': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case 's': + switch(s[5]) { + default: + break; + case 't': + switch(s[6]) { + default: + break; + case '-': + switch(s[7]) { + default: + break; + case 'c': + if (strcmp("heck", s + 8) == 0) + return PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK; + break; + case 'n': + if (strcmp("oinit", s + 8) == 0) + return PIDX_MAC_PARAM_DIGEST_NOINIT; + break; + case 'o': + if (strcmp("neshot", s + 8) == 0) + return PIDX_MAC_PARAM_DIGEST_ONESHOT; + break; + case 'p': + if (strcmp("rops", s + 8) == 0) + return PIDX_ASYM_CIPHER_PARAM_OAEP_DIGEST_PROPS; + break; + case 's': + if (strcmp("ize", s + 8) == 0) + return PIDX_PKEY_PARAM_DIGEST_SIZE; + } + break; + case '\0': + return PIDX_STORE_PARAM_DIGEST; + } + } + } + } + break; + case 's': + if (strcmp("tid", s + 3) == 0) + return PIDX_PKEY_PARAM_DIST_ID; + } + break; + case 'r': + if (strcmp("bg-no-trunc-md", s + 2) == 0) + return PIDX_PROV_PARAM_DRBG_TRUNC_DIGEST; + break; + case 's': + if (strcmp("a-sign-disabled", s + 2) == 0) + return PIDX_PROV_PARAM_DSA_SIGN_DISABLED; + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_D; + } + break; + case 'e': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("rly_clean", s + 2) == 0) + return PIDX_KDF_PARAM_EARLY_CLEAN; + break; + case 'c': + switch(s[2]) { + default: + break; + case 'd': + switch(s[3]) { + default: + break; + case 'h': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'c': + switch(s[6]) { + default: + break; + case 'o': + switch(s[7]) { + default: + break; + case 'f': + switch(s[8]) { + default: + break; + case 'a': + switch(s[9]) { + default: + break; + case 'c': + switch(s[10]) { + default: + break; + case 't': + switch(s[11]) { + default: + break; + case 'o': + switch(s[12]) { + default: + break; + case 'r': + switch(s[13]) { + default: + break; + case '-': + switch(s[14]) { + default: + break; + case 'c': + if (strcmp("heck", s + 15) == 0) + return PIDX_PROV_PARAM_ECDH_COFACTOR_CHECK; + break; + case 'm': + if (strcmp("ode", s + 15) == 0) + return PIDX_EXCHANGE_PARAM_EC_ECDH_COFACTOR_MODE; + } + } + } + } + } + } + } + } + } + } + } + } + } + break; + case 'm': + if (strcmp("s_check", s + 2) == 0) + return PIDX_KDF_PARAM_FIPS_EMS_CHECK; + break; + case 'n': + switch(s[2]) { + default: + break; + case 'c': + switch(s[3]) { + default: + break; + case 'o': + switch(s[4]) { + default: + break; + case 'd': + switch(s[5]) { + default: + break; + case 'e': + if (strcmp("d-pub-key", s + 6) == 0) + return PIDX_PKEY_PARAM_ENCODED_PUBLIC_KEY; + break; + case 'i': + if (strcmp("ng", s + 6) == 0) + return PIDX_PKEY_PARAM_EC_ENCODING; + } + } + break; + case 'r': + switch(s[4]) { + default: + break; + case 'y': + switch(s[5]) { + default: + break; + case 'p': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case '-': + switch(s[8]) { + default: + break; + case 'c': + if (strcmp("heck", s + 9) == 0) + return PIDX_CIPHER_PARAM_FIPS_ENCRYPT_CHECK; + break; + case 'l': + if (strcmp("evel", s + 9) == 0) + return PIDX_ENCODER_PARAM_ENCRYPT_LEVEL; + } + } + } + } + } + } + break; + case 'g': + if (strcmp("ine", s + 3) == 0) + return PIDX_ALG_PARAM_ENGINE; + break; + case 't': + switch(s[3]) { + default: + break; + case 'r': + switch(s[4]) { + default: + break; + case 'o': + switch(s[5]) { + default: + break; + case 'p': + switch(s[6]) { + default: + break; + case 'y': + switch(s[7]) { + default: + break; + case '_': + if (strcmp("required", s + 8) == 0) + return PIDX_DRBG_PARAM_ENTROPY_REQUIRED; + break; + case '\0': + return PIDX_KDF_PARAM_HMACDRBG_ENTROPY; + } + } + } + } + } + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_E; + break; + case 'x': + if (strcmp("pect", s + 2) == 0) + return PIDX_STORE_PARAM_EXPECT; + } + break; + case 'f': + switch(s[1]) { + default: + break; + case 'i': + switch(s[2]) { + default: + break; + case 'e': + if (strcmp("ld-type", s + 3) == 0) + return PIDX_PKEY_PARAM_EC_FIELD_TYPE; + break; + case 'n': + if (strcmp("gerprint", s + 3) == 0) + return PIDX_STORE_PARAM_FINGERPRINT; + break; + case 'p': + if (strcmp("s-indicator", s + 3) == 0) + return PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR; + } + } + break; + case 'g': + switch(s[1]) { + default: + break; + case 'e': + switch(s[2]) { + default: + break; + case 'n': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case 'r': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case 'e': + switch(s[8]) { + default: + break; + case '\0': + return PIDX_RAND_PARAM_GENERATE; + } + break; + case 'o': + if (strcmp("r", s + 8) == 0) + return PIDX_PKEY_PARAM_EC_GENERATOR; + } + } + } + } + } + } + break; + case 'i': + if (strcmp("ndex", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_GINDEX; + break; + case 'r': + switch(s[2]) { + default: + break; + case 'o': + switch(s[3]) { + default: + break; + case 'u': + switch(s[4]) { + default: + break; + case 'p': + switch(s[5]) { + default: + break; + case '-': + if (strcmp("check", s + 6) == 0) + return PIDX_PKEY_PARAM_EC_GROUP_CHECK_TYPE; + break; + case '\0': + return PIDX_PKEY_PARAM_GROUP_NAME; + } + } + } + } + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_G; + } + break; + case 'h': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("s-randkey", s + 2) == 0) + return PIDX_CIPHER_PARAM_HAS_RAND_KEY; + break; + case 'i': + if (strcmp("ndex", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_H; + break; + case 'k': + switch(s[2]) { + default: + break; + case 'd': + switch(s[3]) { + default: + break; + case 'f': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 6) == 0) + return PIDX_PROV_PARAM_HKDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 6) == 0) + return PIDX_PROV_PARAM_HKDF_KEY_CHECK; + } + } + } + } + break; + case 'm': + if (strcmp("ac-key-check", s + 2) == 0) + return PIDX_PROV_PARAM_HMAC_KEY_CHECK; + break; + case 's': + if (strcmp("_padding", s + 2) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_HS_PADDING; + } + break; + case 'i': + switch(s[1]) { + default: + break; + case 'd': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_KDF_PARAM_PKCS12_ID; + } + break; + case 'k': + if (strcmp("me", s + 2) == 0) + return PIDX_KEM_PARAM_IKME; + break; + case 'm': + if (strcmp("plicit-rejection", s + 2) == 0) + return PIDX_PKEY_PARAM_IMPLICIT_REJECTION; + break; + case 'n': + switch(s[2]) { + default: + break; + case 'c': + if (strcmp("lude-public", s + 3) == 0) + return PIDX_PKEY_PARAM_EC_INCLUDE_PUBLIC; + break; + case 'f': + if (strcmp("o", s + 3) == 0) + return PIDX_PASSPHRASE_PARAM_INFO; + break; + case 'p': + if (strcmp("ut-type", s + 3) == 0) + return PIDX_STORE_PARAM_INPUT_TYPE; + break; + case 's': + if (strcmp("tance", s + 3) == 0) + return PIDX_SIGNATURE_PARAM_INSTANCE; + } + break; + case 't': + switch(s[2]) { + default: + break; + case 'e': + switch(s[3]) { + default: + break; + case 'r': + switch(s[4]) { + default: + break; + case 'a': + if (strcmp("tion", s + 5) == 0) + return PIDX_GEN_PARAM_ITERATION; + break; + case '\0': + return PIDX_KDF_PARAM_ITER; + } + } + } + break; + case 'v': + switch(s[2]) { + default: + break; + case '-': + if (strcmp("generated", s + 3) == 0) + return PIDX_CIPHER_PARAM_AEAD_IV_GENERATED; + break; + case 'l': + if (strcmp("en", s + 3) == 0) + return PIDX_CIPHER_PARAM_IVLEN; + break; + case '\0': + return PIDX_MAC_PARAM_IV; + } + } + break; + case 'j': + switch(s[1]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_COFACTOR; + } + break; + case 'k': + switch(s[1]) { + default: + break; + case '1': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_PP_K1; + } + break; + case '2': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_PP_K2; + } + break; + case '3': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_PP_K3; + } + break; + case 'a': + if (strcmp("t", s + 2) == 0) + return PIDX_SIGNATURE_PARAM_KAT; + break; + case 'b': + if (strcmp("kdf-key-check", s + 2) == 0) + return PIDX_PROV_PARAM_KBKDF_KEY_CHECK; + break; + case 'd': + switch(s[2]) { + default: + break; + case 'f': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'd': + switch(s[5]) { + default: + break; + case 'i': + switch(s[6]) { + default: + break; + case 'g': + switch(s[7]) { + default: + break; + case 'e': + switch(s[8]) { + default: + break; + case 's': + switch(s[9]) { + default: + break; + case 't': + switch(s[10]) { + default: + break; + case '-': + if (strcmp("props", s + 11) == 0) + return PIDX_EXCHANGE_PARAM_KDF_DIGEST_PROPS; + break; + case '\0': + return PIDX_EXCHANGE_PARAM_KDF_DIGEST; + } + } + } + } + } + } + break; + case 'o': + if (strcmp("utlen", s + 5) == 0) + return PIDX_EXCHANGE_PARAM_KDF_OUTLEN; + break; + case 't': + if (strcmp("ype", s + 5) == 0) + return PIDX_EXCHANGE_PARAM_KDF_TYPE; + break; + case 'u': + if (strcmp("km", s + 5) == 0) + return PIDX_EXCHANGE_PARAM_KDF_UKM; + } + } + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'y': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'c': + if (strcmp("heck", s + 5) == 0) + return PIDX_PKEY_PARAM_FIPS_KEY_CHECK; + break; + case 'l': + if (strcmp("ength", s + 5) == 0) + return PIDX_SKEY_PARAM_KEY_LENGTH; + } + break; + case 'b': + if (strcmp("its", s + 4) == 0) + return PIDX_CIPHER_PARAM_RC2_KEYBITS; + break; + case 'l': + if (strcmp("en", s + 4) == 0) + return PIDX_CIPHER_PARAM_KEYLEN; + break; + case '\0': + return PIDX_MAC_PARAM_KEY; + } + } + break; + case 'm': + if (strcmp("ac-key-check", s + 2) == 0) + return PIDX_PROV_PARAM_KMAC_KEY_CHECK; + } + break; + case 'l': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'b': + if (strcmp("el", s + 3) == 0) + return PIDX_KDF_PARAM_LABEL; + break; + case 'n': + if (strcmp("es", s + 3) == 0) + return PIDX_KDF_PARAM_ARGON2_LANES; + } + } + break; + case 'm': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'c': + switch(s[3]) { + default: + break; + case 'k': + if (strcmp("ey", s + 4) == 0) + return PIDX_CIPHER_PARAM_AEAD_MAC_KEY; + break; + case 'l': + if (strcmp("en", s + 4) == 0) + return PIDX_KDF_PARAM_MAC_SIZE; + break; + case '\0': + return PIDX_ALG_PARAM_MAC; + } + break; + case 'n': + if (strcmp("datory-digest", s + 3) == 0) + return PIDX_PKEY_PARAM_MANDATORY_DIGEST; + break; + case 'x': + switch(s[3]) { + default: + break; + case '-': + if (strcmp("size", s + 4) == 0) + return PIDX_PKEY_PARAM_MAX_SIZE; + break; + case '_': + switch(s[4]) { + default: + break; + case 'a': + if (strcmp("dinlen", s + 5) == 0) + return PIDX_DRBG_PARAM_MAX_ADINLEN; + break; + case 'e': + switch(s[5]) { + default: + break; + case 'a': + if (strcmp("rly_data", s + 6) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_MAX_EARLY_DATA; + break; + case 'n': + if (strcmp("tropylen", s + 6) == 0) + return PIDX_DRBG_PARAM_MAX_ENTROPYLEN; + } + break; + case 'f': + if (strcmp("rag_len", s + 5) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_MAX_FRAG_LEN; + break; + case 'n': + if (strcmp("oncelen", s + 5) == 0) + return PIDX_DRBG_PARAM_MAX_NONCELEN; + break; + case 'p': + if (strcmp("erslen", s + 5) == 0) + return PIDX_DRBG_PARAM_MAX_PERSLEN; + break; + case 'r': + if (strcmp("equest", s + 5) == 0) + return PIDX_RAND_PARAM_MAX_REQUEST; + } + break; + case 'i': + if (strcmp("um_length", s + 4) == 0) + return PIDX_DRBG_PARAM_MAX_LENGTH; + break; + case 'm': + if (strcmp("em_bytes", s + 4) == 0) + return PIDX_KDF_PARAM_SCRYPT_MAXMEM; + } + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'm': + if (strcmp("cost", s + 3) == 0) + return PIDX_KDF_PARAM_ARGON2_MEMCOST; + break; + case 's': + if (strcmp("sage-encoding", s + 3) == 0) + return PIDX_SIGNATURE_PARAM_MESSAGE_ENCODING; + } + break; + case 'g': + switch(s[2]) { + default: + break; + case 'f': + switch(s[3]) { + default: + break; + case '1': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'd': + if (strcmp("igest", s + 6) == 0) + return PIDX_PKEY_PARAM_MGF1_DIGEST; + break; + case 'p': + if (strcmp("roperties", s + 6) == 0) + return PIDX_PKEY_PARAM_MGF1_PROPERTIES; + } + } + break; + case '\0': + return PIDX_PKEY_PARAM_MASKGENFUNC; + } + } + break; + case 'i': + switch(s[2]) { + default: + break; + case 'c': + if (strcmp("alg", s + 3) == 0) + return PIDX_DIGEST_PARAM_MICALG; + break; + case 'n': + switch(s[3]) { + default: + break; + case '_': + switch(s[4]) { + default: + break; + case 'e': + if (strcmp("ntropylen", s + 5) == 0) + return PIDX_DRBG_PARAM_MIN_ENTROPYLEN; + break; + case 'n': + if (strcmp("oncelen", s + 5) == 0) + return PIDX_DRBG_PARAM_MIN_NONCELEN; + } + break; + case 'i': + if (strcmp("um_length", s + 4) == 0) + return PIDX_DRBG_PARAM_MIN_LENGTH; + } + } + break; + case 'l': + switch(s[2]) { + default: + break; + case '-': + switch(s[3]) { + default: + break; + case 'd': + switch(s[4]) { + default: + break; + case 's': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case '.': + switch(s[7]) { + default: + break; + case 'i': + if (strcmp("nput_formats", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_DSA_INPUT_FORMATS; + break; + case 'o': + if (strcmp("utput_formats", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_DSA_OUTPUT_FORMATS; + break; + case 'p': + if (strcmp("refer_seed", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_DSA_PREFER_SEED; + break; + case 'r': + if (strcmp("etain_seed", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_DSA_RETAIN_SEED; + } + } + } + } + break; + case 'k': + switch(s[4]) { + default: + break; + case 'e': + switch(s[5]) { + default: + break; + case 'm': + switch(s[6]) { + default: + break; + case '.': + switch(s[7]) { + default: + break; + case 'i': + switch(s[8]) { + default: + break; + case 'm': + if (strcmp("port_pct_type", s + 9) == 0) + return PIDX_PKEY_PARAM_ML_KEM_IMPORT_PCT_TYPE; + break; + case 'n': + if (strcmp("put_formats", s + 9) == 0) + return PIDX_PKEY_PARAM_ML_KEM_INPUT_FORMATS; + } + break; + case 'o': + if (strcmp("utput_formats", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_KEM_OUTPUT_FORMATS; + break; + case 'p': + if (strcmp("refer_seed", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_KEM_PREFER_SEED; + break; + case 'r': + if (strcmp("etain_seed", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_KEM_RETAIN_SEED; + } + } + } + } + } + } + break; + case 'o': + switch(s[2]) { + default: + break; + case 'd': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case '\0': + return PIDX_LIBSSL_RECORD_LAYER_PARAM_MODE; + } + break; + case 'u': + if (strcmp("le-filename", s + 4) == 0) + return PIDX_PROV_PARAM_CORE_MODULE_FILENAME; + } + } + break; + case 'u': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_SIGNATURE_PARAM_MU; + } + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_M; + } + break; + case 'n': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("me", s + 2) == 0) + return PIDX_STORE_PARAM_ISSUER; + break; + case 'o': + switch(s[2]) { + default: + break; + case '-': + if (strcmp("short-mac", s + 3) == 0) + return PIDX_PROV_PARAM_NO_SHORT_MAC; + break; + case 'n': + switch(s[3]) { + default: + break; + case 'c': + switch(s[4]) { + default: + break; + case 'e': + switch(s[5]) { + default: + break; + case '-': + if (strcmp("type", s + 6) == 0) + return PIDX_SIGNATURE_PARAM_NONCE_TYPE; + break; + case '\0': + return PIDX_KDF_PARAM_HMACDRBG_NONCE; + } + } + } + } + break; + case 'u': + if (strcmp("m", s + 2) == 0) + return PIDX_CIPHER_PARAM_NUM; + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_N; + } + break; + case 'o': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("ep-label", s + 2) == 0) + return PIDX_ASYM_CIPHER_PARAM_OAEP_LABEL; + break; + case 'p': + switch(s[2]) { + default: + break; + case 'e': + switch(s[3]) { + default: + break; + case 'n': + if (strcmp("ssl-version", s + 4) == 0) + return PIDX_PROV_PARAM_CORE_VERSION; + break; + case 'r': + if (strcmp("ation", s + 4) == 0) + return PIDX_KEM_PARAM_OPERATION; + } + break; + case 't': + if (strcmp("ions", s + 3) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_OPTIONS; + } + break; + case 'r': + if (strcmp("der", s + 2) == 0) + return PIDX_PKEY_PARAM_EC_ORDER; + } + break; + case 'p': + switch(s[1]) { + default: + break; + case '1': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_P1; + } + break; + case '2': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_P2; + } + break; + case 'a': + switch(s[2]) { + default: + break; + case 'd': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'm': + if (strcmp("ode", s + 5) == 0) + return PIDX_PKEY_PARAM_PAD_MODE; + break; + case 't': + if (strcmp("ype", s + 5) == 0) + return PIDX_DIGEST_PARAM_PAD_TYPE; + } + break; + case 'd': + if (strcmp("ing", s + 4) == 0) + return PIDX_CIPHER_PARAM_PADDING; + break; + case '\0': + return PIDX_EXCHANGE_PARAM_PAD; + } + break; + case 'r': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case 'y': + switch(s[5]) { + default: + break; + case 'u': + if (strcmp("-info", s + 6) == 0) + return PIDX_KDF_PARAM_X942_PARTYUINFO; + break; + case 'v': + if (strcmp("-info", s + 6) == 0) + return PIDX_KDF_PARAM_X942_PARTYVINFO; + } + } + } + break; + case 's': + if (strcmp("s", s + 3) == 0) + return PIDX_KDF_PARAM_PASSWORD; + } + break; + case 'b': + switch(s[2]) { + default: + break; + case 'i': + if (strcmp("ts", s + 3) == 0) + return PIDX_PKEY_PARAM_FFC_PBITS; + break; + case 'k': + if (strcmp("df2-lower-bound-check", s + 3) == 0) + return PIDX_PROV_PARAM_PBKDF2_LOWER_BOUND_CHECK; + } + break; + case 'c': + if (strcmp("ounter", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_PCOUNTER; + break; + case 'i': + if (strcmp("peline-tag", s + 2) == 0) + return PIDX_CIPHER_PARAM_PIPELINE_AEAD_TAG; + break; + case 'k': + if (strcmp("cs5", s + 2) == 0) + return PIDX_KDF_PARAM_PKCS5; + break; + case 'o': + switch(s[2]) { + default: + break; + case 'i': + if (strcmp("nt-format", s + 3) == 0) + return PIDX_PKEY_PARAM_EC_POINT_CONVERSION_FORMAT; + break; + case 't': + if (strcmp("ential", s + 3) == 0) + return PIDX_GEN_PARAM_POTENTIAL; + } + break; + case 'r': + switch(s[2]) { + default: + break; + case 'e': + switch(s[3]) { + default: + break; + case 'd': + if (strcmp("iction_resistance", s + 4) == 0) + return PIDX_DRBG_PARAM_PREDICTION_RESISTANCE; + break; + case 'f': + if (strcmp("ix", s + 4) == 0) + return PIDX_KDF_PARAM_PREFIX; + } + break; + case 'i': + switch(s[3]) { + default: + break; + case 'm': + if (strcmp("es", s + 4) == 0) + return PIDX_PKEY_PARAM_RSA_PRIMES; + break; + case 'v': + switch(s[4]) { + default: + break; + case '_': + if (strcmp("len", s + 5) == 0) + return PIDX_PKEY_PARAM_DH_PRIV_LEN; + break; + case '\0': + return PIDX_PKEY_PARAM_PRIV_KEY; + } + } + break; + case 'o': + switch(s[3]) { + default: + break; + case 'p': + if (strcmp("erties", s + 4) == 0) + return PIDX_STORE_PARAM_PROPERTIES; + break; + case 'v': + if (strcmp("ider-name", s + 4) == 0) + return PIDX_PROV_PARAM_CORE_PROV_NAME; + } + } + break; + case 'u': + if (strcmp("b", s + 2) == 0) + return PIDX_PKEY_PARAM_PUB_KEY; + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_P; + } + break; + case 'q': + switch(s[1]) { + default: + break; + case '1': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_Q1; + } + break; + case '2': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_Q2; + } + break; + case 'b': + if (strcmp("its", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_QBITS; + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_Q; + break; + case 'x': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_PUB_X; + } + break; + case 'y': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_PUB_Y; + } + } + break; + case 'r': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'n': + switch(s[3]) { + default: + break; + case 'd': + switch(s[4]) { + default: + break; + case 'k': + if (strcmp("ey", s + 5) == 0) + return PIDX_CIPHER_PARAM_RANDOM_KEY; + break; + case 'o': + if (strcmp("m_data", s + 5) == 0) + return PIDX_DRBG_PARAM_RANDOM_DATA; + } + } + break; + case 'w': + if (strcmp("-bytes", s + 3) == 0) + return PIDX_SKEY_PARAM_RAW_BYTES; + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'a': + switch(s[3]) { + default: + break; + case 'd': + switch(s[4]) { + default: + break; + case '_': + switch(s[5]) { + default: + break; + case 'a': + if (strcmp("head", s + 6) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_READ_AHEAD; + break; + case 'b': + if (strcmp("uffer_len", s + 6) == 0) + return PIDX_LIBSSL_RECORD_LAYER_READ_BUFFER_LEN; + } + } + } + break; + case 'f': + if (strcmp("erence", s + 3) == 0) + return PIDX_OBJECT_PARAM_REFERENCE; + break; + case 's': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case 'e': + switch(s[5]) { + default: + break; + case 'd': + switch(s[6]) { + default: + break; + case '_': + switch(s[7]) { + default: + break; + case 'c': + if (strcmp("ounter", s + 8) == 0) + return PIDX_DRBG_PARAM_RESEED_COUNTER; + break; + case 'r': + if (strcmp("equests", s + 8) == 0) + return PIDX_DRBG_PARAM_RESEED_REQUESTS; + break; + case 't': + switch(s[8]) { + default: + break; + case 'i': + switch(s[9]) { + default: + break; + case 'm': + switch(s[10]) { + default: + break; + case 'e': + switch(s[11]) { + default: + break; + case '_': + if (strcmp("interval", s + 12) == 0) + return PIDX_DRBG_PARAM_RESEED_TIME_INTERVAL; + break; + case '\0': + return PIDX_DRBG_PARAM_RESEED_TIME; + } + } + } + } + } + } + } + } + } + } + break; + case 'o': + if (strcmp("unds", s + 2) == 0) + return PIDX_CIPHER_PARAM_ROUNDS; + break; + case 's': + switch(s[2]) { + default: + break; + case 'a': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'c': + switch(s[5]) { + default: + break; + case 'o': + switch(s[6]) { + default: + break; + case 'e': + switch(s[7]) { + default: + break; + case 'f': + switch(s[8]) { + default: + break; + case 'f': + switch(s[9]) { + default: + break; + case 'i': + switch(s[10]) { + default: + break; + case 'c': + switch(s[11]) { + default: + break; + case 'i': + switch(s[12]) { + default: + break; + case 'e': + switch(s[13]) { + default: + break; + case 'n': + switch(s[14]) { + default: + break; + case 't': + switch(s[15]) { + default: + break; + case '1': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT1; + } + break; + case '2': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT2; + } + break; + case '3': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT3; + } + break; + case '4': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT4; + } + break; + case '5': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT5; + } + break; + case '6': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT6; + } + break; + case '7': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT7; + } + break; + case '8': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT8; + } + break; + case '9': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT9; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT; + } + } + } + } + } + } + } + } + } + } + } + break; + case 'd': + if (strcmp("erive-from-pq", s + 5) == 0) + return PIDX_PKEY_PARAM_RSA_DERIVE_FROM_PQ; + break; + case 'e': + switch(s[5]) { + default: + break; + case 'x': + switch(s[6]) { + default: + break; + case 'p': + switch(s[7]) { + default: + break; + case 'o': + switch(s[8]) { + default: + break; + case 'n': + switch(s[9]) { + default: + break; + case 'e': + switch(s[10]) { + default: + break; + case 'n': + switch(s[11]) { + default: + break; + case 't': + switch(s[12]) { + default: + break; + case '1': + switch(s[13]) { + default: + break; + case '0': + switch(s[14]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT10; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT1; + } + break; + case '2': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT2; + } + break; + case '3': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT3; + } + break; + case '4': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT4; + } + break; + case '5': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT5; + } + break; + case '6': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT6; + } + break; + case '7': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT7; + } + break; + case '8': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT8; + } + break; + case '9': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT9; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT; + } + } + } + } + } + } + } + } + break; + case 'f': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case 'c': + switch(s[7]) { + default: + break; + case 't': + switch(s[8]) { + default: + break; + case 'o': + switch(s[9]) { + default: + break; + case 'r': + switch(s[10]) { + default: + break; + case '1': + switch(s[11]) { + default: + break; + case '0': + switch(s[12]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR10; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR1; + } + break; + case '2': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR2; + } + break; + case '3': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR3; + } + break; + case '4': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR4; + } + break; + case '5': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR5; + } + break; + case '6': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR6; + } + break; + case '7': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR7; + } + break; + case '8': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR8; + } + break; + case '9': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR9; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR; + } + } + } + } + } + } + break; + case 'p': + switch(s[5]) { + default: + break; + case 'k': + if (strcmp("cs15-pad-disabled", s + 6) == 0) + return PIDX_PROV_PARAM_RSA_PKCS15_PAD_DISABLED; + break; + case 's': + if (strcmp("s-saltlen-check", s + 6) == 0) + return PIDX_SIGNATURE_PARAM_FIPS_RSA_PSS_SALTLEN_CHECK; + } + break; + case 's': + if (strcmp("ign-x931-pad-disabled", s + 5) == 0) + return PIDX_PROV_PARAM_RSA_SIGN_X931_PAD_DISABLED; + } + } + } + break; + case '\0': + return PIDX_KDF_PARAM_SCRYPT_R; + } + break; + case 's': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'f': + if (strcmp("eprime-generator", s + 3) == 0) + return PIDX_PKEY_PARAM_DH_GENERATOR; + break; + case 'l': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case 'l': + if (strcmp("en", s + 5) == 0) + return PIDX_SIGNATURE_PARAM_PSS_SALTLEN; + break; + case '\0': + return PIDX_MAC_PARAM_SALT; + } + } + break; + case 'v': + if (strcmp("e-parameters", s + 3) == 0) + return PIDX_ENCODER_PARAM_SAVE_PARAMETERS; + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'c': + switch(s[3]) { + default: + break; + case 'r': + if (strcmp("et", s + 4) == 0) + return PIDX_KDF_PARAM_SECRET; + break; + case 'u': + switch(s[4]) { + default: + break; + case 'r': + switch(s[5]) { + default: + break; + case 'i': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case 'y': + switch(s[8]) { + default: + break; + case '-': + switch(s[9]) { + default: + break; + case 'b': + if (strcmp("its", s + 10) == 0) + return PIDX_PKEY_PARAM_SECURITY_BITS; + break; + case 'c': + if (strcmp("hecks", s + 10) == 0) + return PIDX_PROV_PARAM_SECURITY_CHECKS; + } + } + } + } + } + } + } + break; + case 'e': + if (strcmp("d", s + 3) == 0) + return PIDX_PKEY_PARAM_SLH_DSA_SEED; + break; + case 'r': + if (strcmp("ial", s + 3) == 0) + return PIDX_STORE_PARAM_SERIAL; + break; + case 's': + if (strcmp("sion_id", s + 3) == 0) + return PIDX_KDF_PARAM_SSHKDF_SESSION_ID; + } + break; + case 'i': + switch(s[2]) { + default: + break; + case 'g': + switch(s[3]) { + default: + break; + case 'n': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'c': + if (strcmp("heck", s + 6) == 0) + return PIDX_PKEY_PARAM_FIPS_SIGN_CHECK; + break; + case 'x': + if (strcmp("931-pad-check", s + 6) == 0) + return PIDX_SIGNATURE_PARAM_FIPS_SIGN_X931_PAD_CHECK; + } + break; + case 'a': + switch(s[5]) { + default: + break; + case 't': + switch(s[6]) { + default: + break; + case 'u': + switch(s[7]) { + default: + break; + case 'r': + switch(s[8]) { + default: + break; + case 'e': + switch(s[9]) { + default: + break; + case '-': + if (strcmp("digest-check", s + 10) == 0) + return PIDX_PROV_PARAM_SIGNATURE_DIGEST_CHECK; + break; + case '\0': + return PIDX_SIGNATURE_PARAM_SIGNATURE; + } + } + } + } + } + } + } + break; + case 'z': + if (strcmp("e", s + 3) == 0) + return PIDX_MAC_PARAM_SIZE; + } + break; + case 'p': + if (strcmp("eed", s + 2) == 0) + return PIDX_CIPHER_PARAM_SPEED; + break; + case 's': + switch(s[2]) { + default: + break; + case 'h': + switch(s[3]) { + default: + break; + case 'k': + switch(s[4]) { + default: + break; + case 'd': + switch(s[5]) { + default: + break; + case 'f': + switch(s[6]) { + default: + break; + case '-': + switch(s[7]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 8) == 0) + return PIDX_PROV_PARAM_SSHKDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 8) == 0) + return PIDX_PROV_PARAM_SSHKDF_KEY_CHECK; + } + } + } + } + } + break; + case 'k': + switch(s[3]) { + default: + break; + case 'd': + switch(s[4]) { + default: + break; + case 'f': + switch(s[5]) { + default: + break; + case '-': + switch(s[6]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 7) == 0) + return PIDX_PROV_PARAM_SSKDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 7) == 0) + return PIDX_PROV_PARAM_SSKDF_KEY_CHECK; + } + } + } + } + break; + case 'l': + if (strcmp("3-ms", s + 3) == 0) + return PIDX_DIGEST_PARAM_SSL3_MS; + } + break; + case 't': + switch(s[2]) { + default: + break; + case '-': + switch(s[3]) { + default: + break; + case 'd': + if (strcmp("esc", s + 4) == 0) + return PIDX_PROV_PARAM_SELF_TEST_DESC; + break; + case 'p': + if (strcmp("hase", s + 4) == 0) + return PIDX_PROV_PARAM_SELF_TEST_PHASE; + break; + case 't': + if (strcmp("ype", s + 4) == 0) + return PIDX_PROV_PARAM_SELF_TEST_TYPE; + } + break; + case 'a': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case 'e': + switch(s[5]) { + default: + break; + case '\0': + return PIDX_RAND_PARAM_STATE; + } + break; + case 'u': + if (strcmp("s", s + 5) == 0) + return PIDX_PROV_PARAM_STATUS; + } + } + break; + case 'r': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case 'a': + if (strcmp("m_mac", s + 5) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_STREAM_MAC; + break; + case 'n': + if (strcmp("gth", s + 5) == 0) + return PIDX_RAND_PARAM_STRENGTH; + } + } + } + break; + case 'u': + switch(s[2]) { + default: + break; + case 'b': + if (strcmp("ject", s + 3) == 0) + return PIDX_STORE_PARAM_SUBJECT; + break; + case 'p': + switch(s[3]) { + default: + break; + case 'p': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'p': + switch(s[6]) { + default: + break; + case 'r': + if (strcmp("ivinfo", s + 7) == 0) + return PIDX_KDF_PARAM_X942_SUPP_PRIVINFO; + break; + case 'u': + if (strcmp("binfo", s + 7) == 0) + return PIDX_KDF_PARAM_X942_SUPP_PUBINFO; + } + } + } + } + } + } + break; + case 't': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'g': + switch(s[3]) { + default: + break; + case 'l': + if (strcmp("en", s + 4) == 0) + return PIDX_CIPHER_PARAM_AEAD_TAGLEN; + break; + case '\0': + return PIDX_CIPHER_PARAM_AEAD_TAG; + } + } + break; + case 'd': + if (strcmp("es-encrypt-disabled", s + 2) == 0) + return PIDX_PROV_PARAM_TDES_ENCRYPT_DISABLED; + break; + case 'e': + switch(s[2]) { + default: + break; + case 's': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case '-': + if (strcmp("entropy", s + 5) == 0) + return PIDX_SIGNATURE_PARAM_TEST_ENTROPY; + break; + case '_': + switch(s[5]) { + default: + break; + case 'e': + if (strcmp("ntropy", s + 6) == 0) + return PIDX_RAND_PARAM_TEST_ENTROPY; + break; + case 'n': + if (strcmp("once", s + 6) == 0) + return PIDX_RAND_PARAM_TEST_NONCE; + } + } + } + } + break; + case 'h': + if (strcmp("reads", s + 2) == 0) + return PIDX_KDF_PARAM_THREADS; + break; + case 'l': + switch(s[2]) { + default: + break; + case 's': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'c': + if (strcmp("lient-version", s + 5) == 0) + return PIDX_ASYM_CIPHER_PARAM_TLS_CLIENT_VERSION; + break; + case 'd': + if (strcmp("ata-size", s + 5) == 0) + return PIDX_MAC_PARAM_TLS_DATA_SIZE; + break; + case 'g': + switch(s[5]) { + default: + break; + case 'r': + switch(s[6]) { + default: + break; + case 'o': + switch(s[7]) { + default: + break; + case 'u': + switch(s[8]) { + default: + break; + case 'p': + switch(s[9]) { + default: + break; + case '-': + switch(s[10]) { + default: + break; + case 'a': + if (strcmp("lg", s + 11) == 0) + return PIDX_CAPABILITY_TLS_GROUP_ALG; + break; + case 'i': + switch(s[11]) { + default: + break; + case 'd': + switch(s[12]) { + default: + break; + case '\0': + return PIDX_CAPABILITY_TLS_GROUP_ID; + } + break; + case 's': + if (strcmp("-kem", s + 12) == 0) + return PIDX_CAPABILITY_TLS_GROUP_IS_KEM; + } + break; + case 'n': + switch(s[11]) { + default: + break; + case 'a': + switch(s[12]) { + default: + break; + case 'm': + switch(s[13]) { + default: + break; + case 'e': + switch(s[14]) { + default: + break; + case '-': + if (strcmp("internal", s + 15) == 0) + return PIDX_CAPABILITY_TLS_GROUP_NAME_INTERNAL; + break; + case '\0': + return PIDX_CAPABILITY_TLS_GROUP_NAME; + } + } + } + } + break; + case 's': + if (strcmp("ec-bits", s + 11) == 0) + return PIDX_CAPABILITY_TLS_GROUP_SECURITY_BITS; + } + } + } + } + } + } + break; + case 'm': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case 'c': + switch(s[7]) { + default: + break; + case '-': + if (strcmp("size", s + 8) == 0) + return PIDX_CIPHER_PARAM_TLS_MAC_SIZE; + break; + case '\0': + return PIDX_CIPHER_PARAM_TLS_MAC; + } + break; + case 'x': + switch(s[7]) { + default: + break; + case '-': + switch(s[8]) { + default: + break; + case 'd': + if (strcmp("tls", s + 9) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_MAX_DTLS; + break; + case 't': + if (strcmp("ls", s + 9) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_MAX_TLS; + } + } + } + break; + case 'i': + switch(s[6]) { + default: + break; + case 'n': + switch(s[7]) { + default: + break; + case '-': + switch(s[8]) { + default: + break; + case 'd': + if (strcmp("tls", s + 9) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_MIN_DTLS; + break; + case 't': + if (strcmp("ls", s + 9) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_MIN_TLS; + } + } + } + break; + case 'u': + if (strcmp("lti", s + 6) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK; + } + break; + case 'n': + if (strcmp("egotiated-version", s + 5) == 0) + return PIDX_ASYM_CIPHER_PARAM_TLS_NEGOTIATED_VERSION; + break; + case 's': + switch(s[5]) { + default: + break; + case 'i': + switch(s[6]) { + default: + break; + case 'g': + switch(s[7]) { + default: + break; + case 'a': + switch(s[8]) { + default: + break; + case 'l': + switch(s[9]) { + default: + break; + case 'g': + switch(s[10]) { + default: + break; + case '-': + switch(s[11]) { + default: + break; + case 'c': + if (strcmp("ode-point", s + 12) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_CODE_POINT; + break; + case 'h': + switch(s[12]) { + default: + break; + case 'a': + switch(s[13]) { + default: + break; + case 's': + switch(s[14]) { + default: + break; + case 'h': + switch(s[15]) { + default: + break; + case '-': + switch(s[16]) { + default: + break; + case 'n': + if (strcmp("ame", s + 17) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_HASH_NAME; + break; + case 'o': + if (strcmp("id", s + 17) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_HASH_OID; + } + } + } + } + } + break; + case 'i': + if (strcmp("ana-name", s + 12) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_IANA_NAME; + break; + case 'k': + switch(s[12]) { + default: + break; + case 'e': + switch(s[13]) { + default: + break; + case 'y': + switch(s[14]) { + default: + break; + case 't': + switch(s[15]) { + default: + break; + case 'y': + switch(s[16]) { + default: + break; + case 'p': + switch(s[17]) { + default: + break; + case 'e': + switch(s[18]) { + default: + break; + case '-': + if (strcmp("oid", s + 19) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_KEYTYPE_OID; + break; + case '\0': + return PIDX_CAPABILITY_TLS_SIGALG_KEYTYPE; + } + } + } + } + } + } + } + break; + case 'n': + if (strcmp("ame", s + 12) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_NAME; + break; + case 'o': + if (strcmp("id", s + 12) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_OID; + break; + case 's': + switch(s[12]) { + default: + break; + case 'e': + if (strcmp("c-bits", s + 13) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_SECURITY_BITS; + break; + case 'i': + switch(s[13]) { + default: + break; + case 'g': + switch(s[14]) { + default: + break; + case '-': + switch(s[15]) { + default: + break; + case 'n': + if (strcmp("ame", s + 16) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_SIG_NAME; + break; + case 'o': + if (strcmp("id", s + 16) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_SIG_OID; + } + } + } + } + } + } + } + } + } + } + } + break; + case 'v': + if (strcmp("ersion", s + 5) == 0) + return PIDX_CIPHER_PARAM_TLS_VERSION; + } + break; + case '1': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'p': + switch(s[6]) { + default: + break; + case 'r': + switch(s[7]) { + default: + break; + case 'f': + switch(s[8]) { + default: + break; + case '-': + switch(s[9]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 10) == 0) + return PIDX_PROV_PARAM_TLS1_PRF_DIGEST_CHECK; + break; + case 'e': + if (strcmp("ms-check", s + 10) == 0) + return PIDX_PROV_PARAM_TLS1_PRF_EMS_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 10) == 0) + return PIDX_PROV_PARAM_TLS1_PRF_KEY_CHECK; + } + } + } + } + } + break; + case '3': + switch(s[5]) { + default: + break; + case '-': + switch(s[6]) { + default: + break; + case 'k': + switch(s[7]) { + default: + break; + case 'd': + switch(s[8]) { + default: + break; + case 'f': + switch(s[9]) { + default: + break; + case '-': + switch(s[10]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 11) == 0) + return PIDX_PROV_PARAM_TLS13_KDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 11) == 0) + return PIDX_PROV_PARAM_TLS13_KDF_KEY_CHECK; + } + } + } + } + } + } + break; + case 'm': + switch(s[5]) { + default: + break; + case 'u': + switch(s[6]) { + default: + break; + case 'l': + switch(s[7]) { + default: + break; + case 't': + switch(s[8]) { + default: + break; + case 'i': + switch(s[9]) { + default: + break; + case '_': + switch(s[10]) { + default: + break; + case 'a': + switch(s[11]) { + default: + break; + case 'a': + switch(s[12]) { + default: + break; + case 'd': + switch(s[13]) { + default: + break; + case 'p': + if (strcmp("acklen", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD_PACKLEN; + break; + case '\0': + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD; + } + } + } + break; + case 'e': + switch(s[11]) { + default: + break; + case 'n': + switch(s[12]) { + default: + break; + case 'c': + switch(s[13]) { + default: + break; + case 'i': + if (strcmp("n", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_IN; + break; + case 'l': + if (strcmp("en", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_LEN; + break; + case '\0': + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC; + } + } + } + break; + case 'i': + if (strcmp("nterleave", s + 11) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_INTERLEAVE; + break; + case 'm': + switch(s[11]) { + default: + break; + case 'a': + switch(s[12]) { + default: + break; + case 'x': + switch(s[13]) { + default: + break; + case 'b': + if (strcmp("ufsz", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_BUFSIZE; + break; + case 's': + if (strcmp("ndfrag", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_SEND_FRAGMENT; + } + } + } + } + } + } + } + } + } + } + break; + case 'a': + switch(s[4]) { + default: + break; + case 'a': + switch(s[5]) { + default: + break; + case 'd': + switch(s[6]) { + default: + break; + case 'p': + if (strcmp("ad", s + 7) == 0) + return PIDX_CIPHER_PARAM_AEAD_TLS1_AAD_PAD; + break; + case '\0': + return PIDX_CIPHER_PARAM_AEAD_TLS1_AAD; + } + } + } + break; + case 'i': + switch(s[4]) { + default: + break; + case 'v': + switch(s[5]) { + default: + break; + case 'f': + if (strcmp("ixed", s + 6) == 0) + return PIDX_CIPHER_PARAM_AEAD_TLS1_IV_FIXED; + break; + case 'g': + if (strcmp("en", s + 6) == 0) + return PIDX_CIPHER_PARAM_AEAD_TLS1_GET_IV_GEN; + break; + case 'i': + if (strcmp("nv", s + 6) == 0) + return PIDX_CIPHER_PARAM_AEAD_TLS1_SET_IV_INV; + } + } + break; + case 't': + if (strcmp("ree", s + 4) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_TLSTREE; + } + } + break; + case 'p': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_TP_BASIS; + } + break; + case 'y': + if (strcmp("pe", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_TYPE; + } + break; + case 'u': + switch(s[1]) { + default: + break; + case 'k': + if (strcmp("m", s + 2) == 0) + return PIDX_KDF_PARAM_UKM; + break; + case 'p': + if (strcmp("dated-iv", s + 2) == 0) + return PIDX_CIPHER_PARAM_UPDATED_IV; + break; + case 's': + switch(s[2]) { + default: + break; + case 'e': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'b': + if (strcmp("its", s + 5) == 0) + return PIDX_CIPHER_PARAM_USE_BITS; + break; + case 'c': + if (strcmp("ofactor-flag", s + 5) == 0) + return PIDX_PKEY_PARAM_USE_COFACTOR_FLAG; + break; + case 'k': + if (strcmp("eybits", s + 5) == 0) + return PIDX_KDF_PARAM_X942_USE_KEYBITS; + break; + case 'l': + switch(s[5]) { + default: + break; + case '\0': + return PIDX_KDF_PARAM_KBKDF_USE_L; + } + break; + case 's': + if (strcmp("eparator", s + 5) == 0) + return PIDX_KDF_PARAM_KBKDF_USE_SEPARATOR; + } + break; + case '_': + switch(s[4]) { + default: + break; + case 'd': + if (strcmp("erivation_function", s + 5) == 0) + return PIDX_DRBG_PARAM_USE_DF; + break; + case 'e': + if (strcmp("tm", s + 5) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_USE_ETM; + } + } + } + } + break; + case 'v': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'l': + switch(s[3]) { + default: + break; + case 'i': + switch(s[4]) { + default: + break; + case 'd': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case 'e': + switch(s[8]) { + default: + break; + case '-': + switch(s[9]) { + default: + break; + case 'g': + switch(s[10]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_VALIDATE_G; + } + break; + case 'l': + if (strcmp("egacy", s + 10) == 0) + return PIDX_PKEY_PARAM_FFC_VALIDATE_LEGACY; + break; + case 'p': + if (strcmp("q", s + 10) == 0) + return PIDX_PKEY_PARAM_FFC_VALIDATE_PQ; + } + } + } + } + } + } + } + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'r': + switch(s[3]) { + default: + break; + case 'i': + if (strcmp("fy-message", s + 4) == 0) + return PIDX_SIGNATURE_PARAM_FIPS_VERIFY_MESSAGE; + break; + case 's': + if (strcmp("ion", s + 4) == 0) + return PIDX_PROV_PARAM_VERSION; + } + } + } + break; + case 'x': + switch(s[1]) { + default: + break; + case '9': + switch(s[2]) { + default: + break; + case '4': + if (strcmp("2kdf-key-check", s + 3) == 0) + return PIDX_PROV_PARAM_X942KDF_KEY_CHECK; + break; + case '6': + switch(s[3]) { + default: + break; + case '3': + switch(s[4]) { + default: + break; + case 'k': + switch(s[5]) { + default: + break; + case 'd': + switch(s[6]) { + default: + break; + case 'f': + switch(s[7]) { + default: + break; + case '-': + switch(s[8]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 9) == 0) + return PIDX_PROV_PARAM_X963KDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 9) == 0) + return PIDX_PROV_PARAM_X963KDF_KEY_CHECK; + } + } + } + } + } + } + } + break; + case 'c': + if (strcmp("ghash", s + 2) == 0) + return PIDX_KDF_PARAM_SSHKDF_XCGHASH; + break; + case 'o': + switch(s[2]) { + default: + break; + case 'f': + switch(s[3]) { + default: + break; + case 'l': + if (strcmp("en", s + 4) == 0) + return PIDX_DIGEST_PARAM_XOFLEN; + break; + case '\0': + return PIDX_MAC_PARAM_XOF; + } + } + break; + case 'p': + switch(s[2]) { + default: + break; + case '1': + switch(s[3]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XP1; + } + break; + case '2': + switch(s[3]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XP2; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XP; + } + break; + case 'q': + switch(s[2]) { + default: + break; + case '1': + switch(s[3]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XQ1; + } + break; + case '2': + switch(s[3]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XQ2; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XQ; + } + break; + case 't': + if (strcmp("s_standard", s + 2) == 0) + return PIDX_CIPHER_PARAM_XTS_STANDARD; + } + } + return -1; +} + +/* End of TRIE */ diff --git a/deps/openssl/config/archs/linux-armv4/asm_avx2/crypto/poly1305/poly1305-armv4.S b/deps/openssl/config/archs/linux-armv4/asm_avx2/crypto/poly1305/poly1305-armv4.S index 14f80a85c83448..95b166b28b1dbb 100644 --- a/deps/openssl/config/archs/linux-armv4/asm_avx2/crypto/poly1305/poly1305-armv4.S +++ b/deps/openssl/config/archs/linux-armv4/asm_avx2/crypto/poly1305/poly1305-armv4.S @@ -1164,5 +1164,6 @@ poly1305_emit_neon: .align 2 .align 2 #if __ARM_MAX_ARCH__>=7 -.comm OPENSSL_armcap_P,4,4 + +.hidden OPENSSL_armcap_P #endif diff --git a/deps/openssl/config/archs/linux-armv4/asm_avx2/crypto/sha/keccak1600-armv4.S b/deps/openssl/config/archs/linux-armv4/asm_avx2/crypto/sha/keccak1600-armv4.S index e601fb1a26c0dc..74d16c4170cc43 100644 --- a/deps/openssl/config/archs/linux-armv4/asm_avx2/crypto/sha/keccak1600-armv4.S +++ b/deps/openssl/config/archs/linux-armv4/asm_avx2/crypto/sha/keccak1600-armv4.S @@ -2043,6 +2043,7 @@ SHA3_squeeze: mov r4,r1 mov r5,r2 mov r12,r3 + ldr r0, [sp, #40] @ next is after the 10 pushed registers (10*4) #ifdef __thumb2__ mov r9,#0x00ff00ff @@ -2064,6 +2065,8 @@ SHA3_squeeze: stmdb sp!,{r6,r7,r8,r9} mov r14,r10 + cmp r0, #1 + beq .Lnext_block b .Loop_squeeze .align 4 @@ -2135,7 +2138,7 @@ SHA3_squeeze: subs r12,r12,#8 @ bsz -= 8 bhi .Loop_squeeze - +.Lnext_block: mov r0,r14 @ original r10 bl KeccakF1600 diff --git a/deps/openssl/config/archs/linux-armv4/asm_avx2/crypto/sha/sha1-armv4-large.S b/deps/openssl/config/archs/linux-armv4/asm_avx2/crypto/sha/sha1-armv4-large.S index 4729122657449b..596de458b1409e 100644 --- a/deps/openssl/config/archs/linux-armv4/asm_avx2/crypto/sha/sha1-armv4-large.S +++ b/deps/openssl/config/archs/linux-armv4/asm_avx2/crypto/sha/sha1-armv4-large.S @@ -1494,5 +1494,6 @@ sha1_block_data_order_armv8: .size sha1_block_data_order_armv8,.-sha1_block_data_order_armv8 #endif #if __ARM_MAX_ARCH__>=7 -.comm OPENSSL_armcap_P,4,4 + +.hidden OPENSSL_armcap_P #endif diff --git a/deps/openssl/config/archs/linux-armv4/asm_avx2/crypto/sha/sha256-armv4.S b/deps/openssl/config/archs/linux-armv4/asm_avx2/crypto/sha/sha256-armv4.S index 4348a68a9671e4..849226a83414ca 100644 --- a/deps/openssl/config/archs/linux-armv4/asm_avx2/crypto/sha/sha256-armv4.S +++ b/deps/openssl/config/archs/linux-armv4/asm_avx2/crypto/sha/sha256-armv4.S @@ -1,4 +1,4 @@ -@ Copyright 2007-2020 The OpenSSL Project Authors. All Rights Reserved. +@ Copyright 2007-2023 The OpenSSL Project Authors. All Rights Reserved. @ @ Licensed under the Apache License 2.0 (the "License"). You may not use @ this file except in compliance with the License. You can obtain a copy @@ -2818,5 +2818,6 @@ sha256_block_data_order_armv8: .align 2 .align 2 #if __ARM_MAX_ARCH__>=7 && !defined(__KERNEL__) -.comm OPENSSL_armcap_P,4,4 + +.hidden OPENSSL_armcap_P #endif diff --git a/deps/openssl/config/archs/linux-armv4/asm_avx2/crypto/sha/sha512-armv4.S b/deps/openssl/config/archs/linux-armv4/asm_avx2/crypto/sha/sha512-armv4.S index 9ee892276c93fc..f1f8ab9e03fadf 100644 --- a/deps/openssl/config/archs/linux-armv4/asm_avx2/crypto/sha/sha512-armv4.S +++ b/deps/openssl/config/archs/linux-armv4/asm_avx2/crypto/sha/sha512-armv4.S @@ -1,4 +1,4 @@ -@ Copyright 2007-2020 The OpenSSL Project Authors. All Rights Reserved. +@ Copyright 2007-2023 The OpenSSL Project Authors. All Rights Reserved. @ @ Licensed under the Apache License 2.0 (the "License"). You may not use @ this file except in compliance with the License. You can obtain a copy @@ -1872,5 +1872,6 @@ sha512_block_data_order_neon: .align 2 .align 2 #if __ARM_MAX_ARCH__>=7 && !defined(__KERNEL__) -.comm OPENSSL_armcap_P,4,4 + +.hidden OPENSSL_armcap_P #endif diff --git a/deps/openssl/config/archs/linux-armv4/asm_avx2/include/internal/param_names.h b/deps/openssl/config/archs/linux-armv4/asm_avx2/include/internal/param_names.h new file mode 100644 index 00000000000000..0a0404a57e82b9 --- /dev/null +++ b/deps/openssl/config/archs/linux-armv4/asm_avx2/include/internal/param_names.h @@ -0,0 +1,469 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from include/internal/param_names.h.in + * + * Copyright 2023 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + +int ossl_param_find_pidx(const char *s); + +/* Parameter name definitions - generated by util/perl/OpenSSL/paramnames.pm */ +#define NUM_PIDX 346 + +#define PIDX_ALG_PARAM_ALGORITHM_ID 0 +#define PIDX_ALG_PARAM_ALGORITHM_ID_PARAMS 1 +#define PIDX_ALG_PARAM_CIPHER 2 +#define PIDX_ALG_PARAM_DIGEST 3 +#define PIDX_ALG_PARAM_ENGINE 4 +#define PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR 5 +#define PIDX_ALG_PARAM_MAC 6 +#define PIDX_ALG_PARAM_PROPERTIES 7 +#define PIDX_ASYM_CIPHER_PARAM_DIGEST PIDX_PKEY_PARAM_DIGEST +#define PIDX_ASYM_CIPHER_PARAM_ENGINE PIDX_PKEY_PARAM_ENGINE +#define PIDX_ASYM_CIPHER_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_ASYM_CIPHER_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_ASYM_CIPHER_PARAM_FIPS_RSA_PKCS15_PAD_DISABLED PIDX_PROV_PARAM_RSA_PKCS15_PAD_DISABLED +#define PIDX_ASYM_CIPHER_PARAM_IMPLICIT_REJECTION 8 +#define PIDX_ASYM_CIPHER_PARAM_MGF1_DIGEST PIDX_PKEY_PARAM_MGF1_DIGEST +#define PIDX_ASYM_CIPHER_PARAM_MGF1_DIGEST_PROPS PIDX_PKEY_PARAM_MGF1_PROPERTIES +#define PIDX_ASYM_CIPHER_PARAM_OAEP_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_ASYM_CIPHER_PARAM_OAEP_DIGEST_PROPS 9 +#define PIDX_ASYM_CIPHER_PARAM_OAEP_LABEL 10 +#define PIDX_ASYM_CIPHER_PARAM_PAD_MODE PIDX_PKEY_PARAM_PAD_MODE +#define PIDX_ASYM_CIPHER_PARAM_PROPERTIES PIDX_PKEY_PARAM_PROPERTIES +#define PIDX_ASYM_CIPHER_PARAM_TLS_CLIENT_VERSION 11 +#define PIDX_ASYM_CIPHER_PARAM_TLS_NEGOTIATED_VERSION 12 +#define PIDX_CAPABILITY_TLS_GROUP_ALG 13 +#define PIDX_CAPABILITY_TLS_GROUP_ID 14 +#define PIDX_CAPABILITY_TLS_GROUP_IS_KEM 15 +#define PIDX_CAPABILITY_TLS_GROUP_MAX_DTLS 16 +#define PIDX_CAPABILITY_TLS_GROUP_MAX_TLS 17 +#define PIDX_CAPABILITY_TLS_GROUP_MIN_DTLS 18 +#define PIDX_CAPABILITY_TLS_GROUP_MIN_TLS 19 +#define PIDX_CAPABILITY_TLS_GROUP_NAME 20 +#define PIDX_CAPABILITY_TLS_GROUP_NAME_INTERNAL 21 +#define PIDX_CAPABILITY_TLS_GROUP_SECURITY_BITS 22 +#define PIDX_CAPABILITY_TLS_SIGALG_CODE_POINT 23 +#define PIDX_CAPABILITY_TLS_SIGALG_HASH_NAME 24 +#define PIDX_CAPABILITY_TLS_SIGALG_HASH_OID 25 +#define PIDX_CAPABILITY_TLS_SIGALG_IANA_NAME 26 +#define PIDX_CAPABILITY_TLS_SIGALG_KEYTYPE 27 +#define PIDX_CAPABILITY_TLS_SIGALG_KEYTYPE_OID 28 +#define PIDX_CAPABILITY_TLS_SIGALG_MAX_DTLS 16 +#define PIDX_CAPABILITY_TLS_SIGALG_MAX_TLS 17 +#define PIDX_CAPABILITY_TLS_SIGALG_MIN_DTLS 18 +#define PIDX_CAPABILITY_TLS_SIGALG_MIN_TLS 19 +#define PIDX_CAPABILITY_TLS_SIGALG_NAME 29 +#define PIDX_CAPABILITY_TLS_SIGALG_OID 30 +#define PIDX_CAPABILITY_TLS_SIGALG_SECURITY_BITS 31 +#define PIDX_CAPABILITY_TLS_SIGALG_SIG_NAME 32 +#define PIDX_CAPABILITY_TLS_SIGALG_SIG_OID 33 +#define PIDX_CIPHER_PARAM_AEAD 34 +#define PIDX_CIPHER_PARAM_AEAD_IVLEN PIDX_CIPHER_PARAM_IVLEN +#define PIDX_CIPHER_PARAM_AEAD_IV_GENERATED 35 +#define PIDX_CIPHER_PARAM_AEAD_MAC_KEY 36 +#define PIDX_CIPHER_PARAM_AEAD_TAG 37 +#define PIDX_CIPHER_PARAM_AEAD_TAGLEN 38 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_AAD 39 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_AAD_PAD 40 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_GET_IV_GEN 41 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_IV_FIXED 42 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_SET_IV_INV 43 +#define PIDX_CIPHER_PARAM_ALGORITHM_ID PIDX_ALG_PARAM_ALGORITHM_ID +#define PIDX_CIPHER_PARAM_ALGORITHM_ID_PARAMS PIDX_ALG_PARAM_ALGORITHM_ID_PARAMS +#define PIDX_CIPHER_PARAM_ALGORITHM_ID_PARAMS_OLD 44 +#define PIDX_CIPHER_PARAM_BLOCK_SIZE 45 +#define PIDX_CIPHER_PARAM_CTS 46 +#define PIDX_CIPHER_PARAM_CTS_MODE 47 +#define PIDX_CIPHER_PARAM_CUSTOM_IV 48 +#define PIDX_CIPHER_PARAM_DECRYPT_ONLY 49 +#define PIDX_CIPHER_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_CIPHER_PARAM_FIPS_ENCRYPT_CHECK 50 +#define PIDX_CIPHER_PARAM_HAS_RAND_KEY 51 +#define PIDX_CIPHER_PARAM_IV 52 +#define PIDX_CIPHER_PARAM_IVLEN 53 +#define PIDX_CIPHER_PARAM_KEYLEN 54 +#define PIDX_CIPHER_PARAM_MODE 55 +#define PIDX_CIPHER_PARAM_NUM 56 +#define PIDX_CIPHER_PARAM_PADDING 57 +#define PIDX_CIPHER_PARAM_PIPELINE_AEAD_TAG 58 +#define PIDX_CIPHER_PARAM_RANDOM_KEY 59 +#define PIDX_CIPHER_PARAM_RC2_KEYBITS 60 +#define PIDX_CIPHER_PARAM_ROUNDS 61 +#define PIDX_CIPHER_PARAM_SPEED 62 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK 63 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD 64 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD_PACKLEN 65 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC 66 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_IN 67 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_LEN 68 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_INTERLEAVE 69 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_BUFSIZE 70 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_SEND_FRAGMENT 71 +#define PIDX_CIPHER_PARAM_TLS_MAC 72 +#define PIDX_CIPHER_PARAM_TLS_MAC_SIZE 73 +#define PIDX_CIPHER_PARAM_TLS_VERSION 74 +#define PIDX_CIPHER_PARAM_UPDATED_IV 75 +#define PIDX_CIPHER_PARAM_USE_BITS 76 +#define PIDX_CIPHER_PARAM_XTS_STANDARD 77 +#define PIDX_DECODER_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_DIGEST_PARAM_ALGID_ABSENT 78 +#define PIDX_DIGEST_PARAM_BLOCK_SIZE 45 +#define PIDX_DIGEST_PARAM_MICALG 79 +#define PIDX_DIGEST_PARAM_PAD_TYPE 80 +#define PIDX_DIGEST_PARAM_SIZE 81 +#define PIDX_DIGEST_PARAM_SSL3_MS 82 +#define PIDX_DIGEST_PARAM_XOF 83 +#define PIDX_DIGEST_PARAM_XOFLEN 84 +#define PIDX_DRBG_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_DRBG_PARAM_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_DRBG_PARAM_ENTROPY_REQUIRED 85 +#define PIDX_DRBG_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_DRBG_PARAM_FIPS_DIGEST_CHECK PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK +#define PIDX_DRBG_PARAM_MAC PIDX_ALG_PARAM_MAC +#define PIDX_DRBG_PARAM_MAX_ADINLEN 86 +#define PIDX_DRBG_PARAM_MAX_ENTROPYLEN 87 +#define PIDX_DRBG_PARAM_MAX_LENGTH 88 +#define PIDX_DRBG_PARAM_MAX_NONCELEN 89 +#define PIDX_DRBG_PARAM_MAX_PERSLEN 90 +#define PIDX_DRBG_PARAM_MIN_ENTROPYLEN 91 +#define PIDX_DRBG_PARAM_MIN_LENGTH 92 +#define PIDX_DRBG_PARAM_MIN_NONCELEN 93 +#define PIDX_DRBG_PARAM_PREDICTION_RESISTANCE 94 +#define PIDX_DRBG_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_DRBG_PARAM_RANDOM_DATA 95 +#define PIDX_DRBG_PARAM_RESEED_COUNTER 96 +#define PIDX_DRBG_PARAM_RESEED_REQUESTS 97 +#define PIDX_DRBG_PARAM_RESEED_TIME 98 +#define PIDX_DRBG_PARAM_RESEED_TIME_INTERVAL 99 +#define PIDX_DRBG_PARAM_SIZE 81 +#define PIDX_DRBG_PARAM_USE_DF 100 +#define PIDX_ENCODER_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_ENCODER_PARAM_ENCRYPT_LEVEL 101 +#define PIDX_ENCODER_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_ENCODER_PARAM_SAVE_PARAMETERS 102 +#define PIDX_EXCHANGE_PARAM_EC_ECDH_COFACTOR_MODE 103 +#define PIDX_EXCHANGE_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_EXCHANGE_PARAM_FIPS_DIGEST_CHECK PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK +#define PIDX_EXCHANGE_PARAM_FIPS_ECDH_COFACTOR_CHECK PIDX_PROV_PARAM_ECDH_COFACTOR_CHECK +#define PIDX_EXCHANGE_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_EXCHANGE_PARAM_KDF_DIGEST 104 +#define PIDX_EXCHANGE_PARAM_KDF_DIGEST_PROPS 105 +#define PIDX_EXCHANGE_PARAM_KDF_OUTLEN 106 +#define PIDX_EXCHANGE_PARAM_KDF_TYPE 107 +#define PIDX_EXCHANGE_PARAM_KDF_UKM 108 +#define PIDX_EXCHANGE_PARAM_PAD 109 +#define PIDX_GEN_PARAM_ITERATION 110 +#define PIDX_GEN_PARAM_POTENTIAL 111 +#define PIDX_KDF_PARAM_ARGON2_AD 112 +#define PIDX_KDF_PARAM_ARGON2_LANES 113 +#define PIDX_KDF_PARAM_ARGON2_MEMCOST 114 +#define PIDX_KDF_PARAM_ARGON2_VERSION 115 +#define PIDX_KDF_PARAM_CEK_ALG 116 +#define PIDX_KDF_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_KDF_PARAM_CONSTANT 117 +#define PIDX_KDF_PARAM_DATA 118 +#define PIDX_KDF_PARAM_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_KDF_PARAM_EARLY_CLEAN 119 +#define PIDX_KDF_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_KDF_PARAM_FIPS_DIGEST_CHECK PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK +#define PIDX_KDF_PARAM_FIPS_EMS_CHECK 120 +#define PIDX_KDF_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_KDF_PARAM_HMACDRBG_ENTROPY 121 +#define PIDX_KDF_PARAM_HMACDRBG_NONCE 122 +#define PIDX_KDF_PARAM_INFO 123 +#define PIDX_KDF_PARAM_ITER 124 +#define PIDX_KDF_PARAM_KBKDF_R 125 +#define PIDX_KDF_PARAM_KBKDF_USE_L 126 +#define PIDX_KDF_PARAM_KBKDF_USE_SEPARATOR 127 +#define PIDX_KDF_PARAM_KEY 128 +#define PIDX_KDF_PARAM_LABEL 129 +#define PIDX_KDF_PARAM_MAC PIDX_ALG_PARAM_MAC +#define PIDX_KDF_PARAM_MAC_SIZE 130 +#define PIDX_KDF_PARAM_MODE 55 +#define PIDX_KDF_PARAM_PASSWORD 131 +#define PIDX_KDF_PARAM_PKCS12_ID 132 +#define PIDX_KDF_PARAM_PKCS5 133 +#define PIDX_KDF_PARAM_PREFIX 134 +#define PIDX_KDF_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_KDF_PARAM_SALT 135 +#define PIDX_KDF_PARAM_SCRYPT_MAXMEM 136 +#define PIDX_KDF_PARAM_SCRYPT_N 137 +#define PIDX_KDF_PARAM_SCRYPT_P 138 +#define PIDX_KDF_PARAM_SCRYPT_R 125 +#define PIDX_KDF_PARAM_SECRET 139 +#define PIDX_KDF_PARAM_SEED 140 +#define PIDX_KDF_PARAM_SIZE 81 +#define PIDX_KDF_PARAM_SSHKDF_SESSION_ID 141 +#define PIDX_KDF_PARAM_SSHKDF_TYPE 142 +#define PIDX_KDF_PARAM_SSHKDF_XCGHASH 143 +#define PIDX_KDF_PARAM_THREADS 144 +#define PIDX_KDF_PARAM_UKM 145 +#define PIDX_KDF_PARAM_X942_ACVPINFO 146 +#define PIDX_KDF_PARAM_X942_PARTYUINFO 147 +#define PIDX_KDF_PARAM_X942_PARTYVINFO 148 +#define PIDX_KDF_PARAM_X942_SUPP_PRIVINFO 149 +#define PIDX_KDF_PARAM_X942_SUPP_PUBINFO 150 +#define PIDX_KDF_PARAM_X942_USE_KEYBITS 151 +#define PIDX_KEM_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_KEM_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_KEM_PARAM_IKME 152 +#define PIDX_KEM_PARAM_OPERATION 153 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_BLOCK_PADDING 154 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_HS_PADDING 155 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_MAX_EARLY_DATA 156 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_MAX_FRAG_LEN 157 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_MODE 55 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_OPTIONS 158 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_READ_AHEAD 159 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_STREAM_MAC 160 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_TLSTREE 161 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_USE_ETM 162 +#define PIDX_LIBSSL_RECORD_LAYER_READ_BUFFER_LEN 163 +#define PIDX_MAC_PARAM_BLOCK_SIZE 164 +#define PIDX_MAC_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_MAC_PARAM_CUSTOM 165 +#define PIDX_MAC_PARAM_C_ROUNDS 166 +#define PIDX_MAC_PARAM_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_MAC_PARAM_DIGEST_NOINIT 167 +#define PIDX_MAC_PARAM_DIGEST_ONESHOT 168 +#define PIDX_MAC_PARAM_D_ROUNDS 169 +#define PIDX_MAC_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_MAC_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_MAC_PARAM_FIPS_NO_SHORT_MAC PIDX_PROV_PARAM_NO_SHORT_MAC +#define PIDX_MAC_PARAM_IV 52 +#define PIDX_MAC_PARAM_KEY 128 +#define PIDX_MAC_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_MAC_PARAM_SALT 135 +#define PIDX_MAC_PARAM_SIZE 81 +#define PIDX_MAC_PARAM_TLS_DATA_SIZE 170 +#define PIDX_MAC_PARAM_XOF 83 +#define PIDX_OBJECT_PARAM_DATA 118 +#define PIDX_OBJECT_PARAM_DATA_STRUCTURE 171 +#define PIDX_OBJECT_PARAM_DATA_TYPE 172 +#define PIDX_OBJECT_PARAM_DESC 173 +#define PIDX_OBJECT_PARAM_INPUT_TYPE 174 +#define PIDX_OBJECT_PARAM_REFERENCE 175 +#define PIDX_OBJECT_PARAM_TYPE 142 +#define PIDX_PASSPHRASE_PARAM_INFO 123 +#define PIDX_PKEY_PARAM_ALGORITHM_ID PIDX_ALG_PARAM_ALGORITHM_ID +#define PIDX_PKEY_PARAM_ALGORITHM_ID_PARAMS PIDX_ALG_PARAM_ALGORITHM_ID_PARAMS +#define PIDX_PKEY_PARAM_BITS 176 +#define PIDX_PKEY_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_PKEY_PARAM_DEFAULT_DIGEST 177 +#define PIDX_PKEY_PARAM_DHKEM_IKM 178 +#define PIDX_PKEY_PARAM_DH_GENERATOR 179 +#define PIDX_PKEY_PARAM_DH_PRIV_LEN 180 +#define PIDX_PKEY_PARAM_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_PKEY_PARAM_DIGEST_SIZE 181 +#define PIDX_PKEY_PARAM_DIST_ID 182 +#define PIDX_PKEY_PARAM_EC_A 183 +#define PIDX_PKEY_PARAM_EC_B 184 +#define PIDX_PKEY_PARAM_EC_CHAR2_M 185 +#define PIDX_PKEY_PARAM_EC_CHAR2_PP_K1 186 +#define PIDX_PKEY_PARAM_EC_CHAR2_PP_K2 187 +#define PIDX_PKEY_PARAM_EC_CHAR2_PP_K3 188 +#define PIDX_PKEY_PARAM_EC_CHAR2_TP_BASIS 189 +#define PIDX_PKEY_PARAM_EC_CHAR2_TYPE 190 +#define PIDX_PKEY_PARAM_EC_COFACTOR 191 +#define PIDX_PKEY_PARAM_EC_DECODED_FROM_EXPLICIT_PARAMS 192 +#define PIDX_PKEY_PARAM_EC_ENCODING 193 +#define PIDX_PKEY_PARAM_EC_FIELD_TYPE 194 +#define PIDX_PKEY_PARAM_EC_GENERATOR 195 +#define PIDX_PKEY_PARAM_EC_GROUP_CHECK_TYPE 196 +#define PIDX_PKEY_PARAM_EC_INCLUDE_PUBLIC 197 +#define PIDX_PKEY_PARAM_EC_ORDER 198 +#define PIDX_PKEY_PARAM_EC_P 138 +#define PIDX_PKEY_PARAM_EC_POINT_CONVERSION_FORMAT 199 +#define PIDX_PKEY_PARAM_EC_PUB_X 200 +#define PIDX_PKEY_PARAM_EC_PUB_Y 201 +#define PIDX_PKEY_PARAM_EC_SEED 140 +#define PIDX_PKEY_PARAM_ENCODED_PUBLIC_KEY 202 +#define PIDX_PKEY_PARAM_ENGINE PIDX_ALG_PARAM_ENGINE +#define PIDX_PKEY_PARAM_FFC_COFACTOR 203 +#define PIDX_PKEY_PARAM_FFC_DIGEST PIDX_PKEY_PARAM_DIGEST +#define PIDX_PKEY_PARAM_FFC_DIGEST_PROPS PIDX_PKEY_PARAM_PROPERTIES +#define PIDX_PKEY_PARAM_FFC_G 204 +#define PIDX_PKEY_PARAM_FFC_GINDEX 205 +#define PIDX_PKEY_PARAM_FFC_H 206 +#define PIDX_PKEY_PARAM_FFC_P 138 +#define PIDX_PKEY_PARAM_FFC_PBITS 207 +#define PIDX_PKEY_PARAM_FFC_PCOUNTER 208 +#define PIDX_PKEY_PARAM_FFC_Q 209 +#define PIDX_PKEY_PARAM_FFC_QBITS 210 +#define PIDX_PKEY_PARAM_FFC_SEED 140 +#define PIDX_PKEY_PARAM_FFC_TYPE 142 +#define PIDX_PKEY_PARAM_FFC_VALIDATE_G 211 +#define PIDX_PKEY_PARAM_FFC_VALIDATE_LEGACY 212 +#define PIDX_PKEY_PARAM_FFC_VALIDATE_PQ 213 +#define PIDX_PKEY_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK 214 +#define PIDX_PKEY_PARAM_FIPS_KEY_CHECK 215 +#define PIDX_PKEY_PARAM_FIPS_SIGN_CHECK 216 +#define PIDX_PKEY_PARAM_GROUP_NAME 217 +#define PIDX_PKEY_PARAM_IMPLICIT_REJECTION 8 +#define PIDX_PKEY_PARAM_MANDATORY_DIGEST 218 +#define PIDX_PKEY_PARAM_MASKGENFUNC 219 +#define PIDX_PKEY_PARAM_MAX_SIZE 220 +#define PIDX_PKEY_PARAM_MGF1_DIGEST 221 +#define PIDX_PKEY_PARAM_MGF1_PROPERTIES 222 +#define PIDX_PKEY_PARAM_ML_DSA_INPUT_FORMATS 223 +#define PIDX_PKEY_PARAM_ML_DSA_OUTPUT_FORMATS 224 +#define PIDX_PKEY_PARAM_ML_DSA_PREFER_SEED 225 +#define PIDX_PKEY_PARAM_ML_DSA_RETAIN_SEED 226 +#define PIDX_PKEY_PARAM_ML_DSA_SEED 140 +#define PIDX_PKEY_PARAM_ML_KEM_IMPORT_PCT_TYPE 227 +#define PIDX_PKEY_PARAM_ML_KEM_INPUT_FORMATS 228 +#define PIDX_PKEY_PARAM_ML_KEM_OUTPUT_FORMATS 229 +#define PIDX_PKEY_PARAM_ML_KEM_PREFER_SEED 230 +#define PIDX_PKEY_PARAM_ML_KEM_RETAIN_SEED 231 +#define PIDX_PKEY_PARAM_ML_KEM_SEED 140 +#define PIDX_PKEY_PARAM_PAD_MODE 232 +#define PIDX_PKEY_PARAM_PRIV_KEY 233 +#define PIDX_PKEY_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_PKEY_PARAM_PUB_KEY 234 +#define PIDX_PKEY_PARAM_RSA_BITS PIDX_PKEY_PARAM_BITS +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT 235 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT1 236 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT2 237 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT3 238 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT4 239 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT5 240 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT6 241 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT7 242 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT8 243 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT9 244 +#define PIDX_PKEY_PARAM_RSA_D 245 +#define PIDX_PKEY_PARAM_RSA_DERIVE_FROM_PQ 246 +#define PIDX_PKEY_PARAM_RSA_DIGEST PIDX_PKEY_PARAM_DIGEST +#define PIDX_PKEY_PARAM_RSA_DIGEST_PROPS PIDX_PKEY_PARAM_PROPERTIES +#define PIDX_PKEY_PARAM_RSA_E 247 +#define PIDX_PKEY_PARAM_RSA_EXPONENT 248 +#define PIDX_PKEY_PARAM_RSA_EXPONENT1 249 +#define PIDX_PKEY_PARAM_RSA_EXPONENT10 250 +#define PIDX_PKEY_PARAM_RSA_EXPONENT2 251 +#define PIDX_PKEY_PARAM_RSA_EXPONENT3 252 +#define PIDX_PKEY_PARAM_RSA_EXPONENT4 253 +#define PIDX_PKEY_PARAM_RSA_EXPONENT5 254 +#define PIDX_PKEY_PARAM_RSA_EXPONENT6 255 +#define PIDX_PKEY_PARAM_RSA_EXPONENT7 256 +#define PIDX_PKEY_PARAM_RSA_EXPONENT8 257 +#define PIDX_PKEY_PARAM_RSA_EXPONENT9 258 +#define PIDX_PKEY_PARAM_RSA_FACTOR 259 +#define PIDX_PKEY_PARAM_RSA_FACTOR1 260 +#define PIDX_PKEY_PARAM_RSA_FACTOR10 261 +#define PIDX_PKEY_PARAM_RSA_FACTOR2 262 +#define PIDX_PKEY_PARAM_RSA_FACTOR3 263 +#define PIDX_PKEY_PARAM_RSA_FACTOR4 264 +#define PIDX_PKEY_PARAM_RSA_FACTOR5 265 +#define PIDX_PKEY_PARAM_RSA_FACTOR6 266 +#define PIDX_PKEY_PARAM_RSA_FACTOR7 267 +#define PIDX_PKEY_PARAM_RSA_FACTOR8 268 +#define PIDX_PKEY_PARAM_RSA_FACTOR9 269 +#define PIDX_PKEY_PARAM_RSA_MASKGENFUNC PIDX_PKEY_PARAM_MASKGENFUNC +#define PIDX_PKEY_PARAM_RSA_MGF1_DIGEST PIDX_PKEY_PARAM_MGF1_DIGEST +#define PIDX_PKEY_PARAM_RSA_N 137 +#define PIDX_PKEY_PARAM_RSA_PRIMES 270 +#define PIDX_PKEY_PARAM_RSA_PSS_SALTLEN 271 +#define PIDX_PKEY_PARAM_RSA_TEST_P1 272 +#define PIDX_PKEY_PARAM_RSA_TEST_P2 273 +#define PIDX_PKEY_PARAM_RSA_TEST_Q1 274 +#define PIDX_PKEY_PARAM_RSA_TEST_Q2 275 +#define PIDX_PKEY_PARAM_RSA_TEST_XP 276 +#define PIDX_PKEY_PARAM_RSA_TEST_XP1 277 +#define PIDX_PKEY_PARAM_RSA_TEST_XP2 278 +#define PIDX_PKEY_PARAM_RSA_TEST_XQ 279 +#define PIDX_PKEY_PARAM_RSA_TEST_XQ1 280 +#define PIDX_PKEY_PARAM_RSA_TEST_XQ2 281 +#define PIDX_PKEY_PARAM_SECURITY_BITS 282 +#define PIDX_PKEY_PARAM_SLH_DSA_SEED 140 +#define PIDX_PKEY_PARAM_USE_COFACTOR_ECDH PIDX_PKEY_PARAM_USE_COFACTOR_FLAG +#define PIDX_PKEY_PARAM_USE_COFACTOR_FLAG 283 +#define PIDX_PROV_PARAM_BUILDINFO 284 +#define PIDX_PROV_PARAM_CORE_MODULE_FILENAME 285 +#define PIDX_PROV_PARAM_CORE_PROV_NAME 286 +#define PIDX_PROV_PARAM_CORE_VERSION 287 +#define PIDX_PROV_PARAM_DRBG_TRUNC_DIGEST 288 +#define PIDX_PROV_PARAM_DSA_SIGN_DISABLED 289 +#define PIDX_PROV_PARAM_ECDH_COFACTOR_CHECK 290 +#define PIDX_PROV_PARAM_HKDF_DIGEST_CHECK 291 +#define PIDX_PROV_PARAM_HKDF_KEY_CHECK 292 +#define PIDX_PROV_PARAM_HMAC_KEY_CHECK 293 +#define PIDX_PROV_PARAM_KBKDF_KEY_CHECK 294 +#define PIDX_PROV_PARAM_KMAC_KEY_CHECK 295 +#define PIDX_PROV_PARAM_NAME 296 +#define PIDX_PROV_PARAM_NO_SHORT_MAC 297 +#define PIDX_PROV_PARAM_PBKDF2_LOWER_BOUND_CHECK 298 +#define PIDX_PROV_PARAM_RSA_PKCS15_PAD_DISABLED 299 +#define PIDX_PROV_PARAM_RSA_PSS_SALTLEN_CHECK 300 +#define PIDX_PROV_PARAM_RSA_SIGN_X931_PAD_DISABLED 301 +#define PIDX_PROV_PARAM_SECURITY_CHECKS 302 +#define PIDX_PROV_PARAM_SELF_TEST_DESC 303 +#define PIDX_PROV_PARAM_SELF_TEST_PHASE 304 +#define PIDX_PROV_PARAM_SELF_TEST_TYPE 305 +#define PIDX_PROV_PARAM_SIGNATURE_DIGEST_CHECK 306 +#define PIDX_PROV_PARAM_SSHKDF_DIGEST_CHECK 307 +#define PIDX_PROV_PARAM_SSHKDF_KEY_CHECK 308 +#define PIDX_PROV_PARAM_SSKDF_DIGEST_CHECK 309 +#define PIDX_PROV_PARAM_SSKDF_KEY_CHECK 310 +#define PIDX_PROV_PARAM_STATUS 311 +#define PIDX_PROV_PARAM_TDES_ENCRYPT_DISABLED 312 +#define PIDX_PROV_PARAM_TLS13_KDF_DIGEST_CHECK 313 +#define PIDX_PROV_PARAM_TLS13_KDF_KEY_CHECK 314 +#define PIDX_PROV_PARAM_TLS1_PRF_DIGEST_CHECK 315 +#define PIDX_PROV_PARAM_TLS1_PRF_EMS_CHECK 316 +#define PIDX_PROV_PARAM_TLS1_PRF_KEY_CHECK 317 +#define PIDX_PROV_PARAM_VERSION 115 +#define PIDX_PROV_PARAM_X942KDF_KEY_CHECK 318 +#define PIDX_PROV_PARAM_X963KDF_DIGEST_CHECK 319 +#define PIDX_PROV_PARAM_X963KDF_KEY_CHECK 320 +#define PIDX_RAND_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_RAND_PARAM_GENERATE 321 +#define PIDX_RAND_PARAM_MAX_REQUEST 322 +#define PIDX_RAND_PARAM_STATE 323 +#define PIDX_RAND_PARAM_STRENGTH 324 +#define PIDX_RAND_PARAM_TEST_ENTROPY 325 +#define PIDX_RAND_PARAM_TEST_NONCE 326 +#define PIDX_SIGNATURE_PARAM_ADD_RANDOM 327 +#define PIDX_SIGNATURE_PARAM_ALGORITHM_ID PIDX_PKEY_PARAM_ALGORITHM_ID +#define PIDX_SIGNATURE_PARAM_ALGORITHM_ID_PARAMS PIDX_PKEY_PARAM_ALGORITHM_ID_PARAMS +#define PIDX_SIGNATURE_PARAM_CONTEXT_STRING 328 +#define PIDX_SIGNATURE_PARAM_DETERMINISTIC 329 +#define PIDX_SIGNATURE_PARAM_DIGEST PIDX_PKEY_PARAM_DIGEST +#define PIDX_SIGNATURE_PARAM_DIGEST_SIZE PIDX_PKEY_PARAM_DIGEST_SIZE +#define PIDX_SIGNATURE_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_SIGNATURE_PARAM_FIPS_DIGEST_CHECK PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK +#define PIDX_SIGNATURE_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_SIGNATURE_PARAM_FIPS_RSA_PSS_SALTLEN_CHECK 300 +#define PIDX_SIGNATURE_PARAM_FIPS_SIGN_CHECK PIDX_PKEY_PARAM_FIPS_SIGN_CHECK +#define PIDX_SIGNATURE_PARAM_FIPS_SIGN_X931_PAD_CHECK 330 +#define PIDX_SIGNATURE_PARAM_FIPS_VERIFY_MESSAGE 331 +#define PIDX_SIGNATURE_PARAM_INSTANCE 332 +#define PIDX_SIGNATURE_PARAM_KAT 333 +#define PIDX_SIGNATURE_PARAM_MESSAGE_ENCODING 334 +#define PIDX_SIGNATURE_PARAM_MGF1_DIGEST PIDX_PKEY_PARAM_MGF1_DIGEST +#define PIDX_SIGNATURE_PARAM_MGF1_PROPERTIES PIDX_PKEY_PARAM_MGF1_PROPERTIES +#define PIDX_SIGNATURE_PARAM_MU 335 +#define PIDX_SIGNATURE_PARAM_NONCE_TYPE 336 +#define PIDX_SIGNATURE_PARAM_PAD_MODE PIDX_PKEY_PARAM_PAD_MODE +#define PIDX_SIGNATURE_PARAM_PROPERTIES PIDX_PKEY_PARAM_PROPERTIES +#define PIDX_SIGNATURE_PARAM_PSS_SALTLEN 271 +#define PIDX_SIGNATURE_PARAM_SIGNATURE 337 +#define PIDX_SIGNATURE_PARAM_TEST_ENTROPY 338 +#define PIDX_SKEY_PARAM_KEY_LENGTH 339 +#define PIDX_SKEY_PARAM_RAW_BYTES 340 +#define PIDX_STORE_PARAM_ALIAS 341 +#define PIDX_STORE_PARAM_DIGEST 3 +#define PIDX_STORE_PARAM_EXPECT 342 +#define PIDX_STORE_PARAM_FINGERPRINT 343 +#define PIDX_STORE_PARAM_INPUT_TYPE 174 +#define PIDX_STORE_PARAM_ISSUER 296 +#define PIDX_STORE_PARAM_PROPERTIES 7 +#define PIDX_STORE_PARAM_SERIAL 344 +#define PIDX_STORE_PARAM_SUBJECT 345 diff --git a/deps/openssl/config/archs/linux-armv4/asm_avx2/include/openssl/asn1.h b/deps/openssl/config/archs/linux-armv4/asm_avx2/include/openssl/asn1.h index 21ff58e3d803d4..15e9e44674b0f3 100644 --- a/deps/openssl/config/archs/linux-armv4/asm_avx2/include/openssl/asn1.h +++ b/deps/openssl/config/archs/linux-armv4/asm_avx2/include/openssl/asn1.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/asn1.h.in * - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -21,6 +21,9 @@ # define HEADER_ASN1_H # endif +# ifndef OPENSSL_NO_STDIO +# include +# endif # include # include # include @@ -50,14 +53,14 @@ extern "C" { # define V_ASN1_PRIMITIVE_TAG 0x1f # define V_ASN1_PRIMATIVE_TAG /*compat*/ V_ASN1_PRIMITIVE_TAG -# define V_ASN1_APP_CHOOSE -2/* let the recipient choose */ -# define V_ASN1_OTHER -3/* used in ASN1_TYPE */ -# define V_ASN1_ANY -4/* used in ASN1 template code */ +# define V_ASN1_APP_CHOOSE -2 /* let the recipient choose */ +# define V_ASN1_OTHER -3 /* used in ASN1_TYPE */ +# define V_ASN1_ANY -4 /* used in ASN1 template code */ # define V_ASN1_UNDEF -1 /* ASN.1 tag values */ # define V_ASN1_EOC 0 -# define V_ASN1_BOOLEAN 1 /**/ +# define V_ASN1_BOOLEAN 1 # define V_ASN1_INTEGER 2 # define V_ASN1_BIT_STRING 3 # define V_ASN1_OCTET_STRING 4 @@ -70,19 +73,19 @@ extern "C" { # define V_ASN1_UTF8STRING 12 # define V_ASN1_SEQUENCE 16 # define V_ASN1_SET 17 -# define V_ASN1_NUMERICSTRING 18 /**/ +# define V_ASN1_NUMERICSTRING 18 # define V_ASN1_PRINTABLESTRING 19 # define V_ASN1_T61STRING 20 -# define V_ASN1_TELETEXSTRING 20/* alias */ -# define V_ASN1_VIDEOTEXSTRING 21 /**/ +# define V_ASN1_TELETEXSTRING 20 /* alias */ +# define V_ASN1_VIDEOTEXSTRING 21 # define V_ASN1_IA5STRING 22 # define V_ASN1_UTCTIME 23 -# define V_ASN1_GENERALIZEDTIME 24 /**/ -# define V_ASN1_GRAPHICSTRING 25 /**/ -# define V_ASN1_ISO64STRING 26 /**/ -# define V_ASN1_VISIBLESTRING 26/* alias */ -# define V_ASN1_GENERALSTRING 27 /**/ -# define V_ASN1_UNIVERSALSTRING 28 /**/ +# define V_ASN1_GENERALIZEDTIME 24 +# define V_ASN1_GRAPHICSTRING 25 +# define V_ASN1_ISO64STRING 26 +# define V_ASN1_VISIBLESTRING 26 /* alias */ +# define V_ASN1_GENERALSTRING 27 +# define V_ASN1_UNIVERSALSTRING 28 # define V_ASN1_BMPSTRING 30 /* @@ -155,7 +158,7 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_ALGOR, X509_ALGOR, X509_ALGOR) -# define ASN1_STRING_FLAG_BITS_LEFT 0x08/* Set if 0x07 has bits left value */ +# define ASN1_STRING_FLAG_BITS_LEFT 0x08 /* Set if 0x07 has bits left value */ /* * This indicates that the ASN1_STRING is not a real value but just a place * holder for the location where indefinite length constructed data should be @@ -275,7 +278,7 @@ typedef struct ASN1_TLC_st ASN1_TLC; /* This is just an opaque pointer */ typedef struct ASN1_VALUE_st ASN1_VALUE; -/* Declare ASN1 functions: the implement macro in in asn1t.h */ +/* Declare ASN1 functions: the implement macro is in asn1t.h */ /* * The mysterious 'extern' that's passed to some macros is innocuous, @@ -368,6 +371,7 @@ typedef struct ASN1_VALUE_st ASN1_VALUE; typedef void *d2i_of_void(void **, const unsigned char **, long); typedef int i2d_of_void(const void *, unsigned char **); +typedef int OSSL_i2d_of_void_ctx(const void *, unsigned char **, void *vctx); /*- * The following macros and typedefs allow an ASN1_ITEM @@ -996,6 +1000,8 @@ int ASN1_TYPE_get_int_octetstring(const ASN1_TYPE *a, long *num, unsigned char *data, int max_len); void *ASN1_item_unpack(const ASN1_STRING *oct, const ASN1_ITEM *it); +void *ASN1_item_unpack_ex(const ASN1_STRING *oct, const ASN1_ITEM *it, + OSSL_LIB_CTX *libctx, const char *propq); ASN1_STRING *ASN1_item_pack(void *obj, const ASN1_ITEM *it, ASN1_OCTET_STRING **oct); diff --git a/deps/openssl/config/archs/linux-armv4/asm_avx2/include/openssl/bio.h b/deps/openssl/config/archs/linux-armv4/asm_avx2/include/openssl/bio.h index f9aa74731c833c..e02f867beb0ec0 100644 --- a/deps/openssl/config/archs/linux-armv4/asm_avx2/include/openssl/bio.h +++ b/deps/openssl/config/archs/linux-armv4/asm_avx2/include/openssl/bio.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/bio.h.in * - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -67,8 +67,13 @@ extern "C" { # define BIO_TYPE_DGRAM_SCTP (24|BIO_TYPE_SOURCE_SINK|BIO_TYPE_DESCRIPTOR) # endif # define BIO_TYPE_CORE_TO_PROV (25|BIO_TYPE_SOURCE_SINK) +# define BIO_TYPE_DGRAM_PAIR (26|BIO_TYPE_SOURCE_SINK) +# define BIO_TYPE_DGRAM_MEM (27|BIO_TYPE_SOURCE_SINK) +/* Custom type starting index returned by BIO_get_new_index() */ #define BIO_TYPE_START 128 +/* Custom type maximum index that can be returned by BIO_get_new_index() */ +#define BIO_TYPE_MASK 0xFF /* * BIO_FILENAME_READ|BIO_CLOSE to open or close on free. @@ -171,6 +176,31 @@ extern "C" { # define BIO_CTRL_SET_INDENT 80 # define BIO_CTRL_GET_INDENT 81 +# define BIO_CTRL_DGRAM_GET_LOCAL_ADDR_CAP 82 +# define BIO_CTRL_DGRAM_GET_LOCAL_ADDR_ENABLE 83 +# define BIO_CTRL_DGRAM_SET_LOCAL_ADDR_ENABLE 84 +# define BIO_CTRL_DGRAM_GET_EFFECTIVE_CAPS 85 +# define BIO_CTRL_DGRAM_GET_CAPS 86 +# define BIO_CTRL_DGRAM_SET_CAPS 87 +# define BIO_CTRL_DGRAM_GET_NO_TRUNC 88 +# define BIO_CTRL_DGRAM_SET_NO_TRUNC 89 + +/* + * internal BIO: + * # define BIO_CTRL_SET_KTLS_TX_ZEROCOPY_SENDFILE 90 + */ + +# define BIO_CTRL_GET_RPOLL_DESCRIPTOR 91 +# define BIO_CTRL_GET_WPOLL_DESCRIPTOR 92 +# define BIO_CTRL_DGRAM_DETECT_PEER_ADDR 93 +# define BIO_CTRL_DGRAM_SET0_LOCAL_ADDR 94 + +# define BIO_DGRAM_CAP_NONE 0U +# define BIO_DGRAM_CAP_HANDLES_SRC_ADDR (1U << 0) +# define BIO_DGRAM_CAP_HANDLES_DST_ADDR (1U << 1) +# define BIO_DGRAM_CAP_PROVIDES_SRC_ADDR (1U << 2) +# define BIO_DGRAM_CAP_PROVIDES_DST_ADDR (1U << 3) + # ifndef OPENSSL_NO_KTLS # define BIO_get_ktls_send(b) \ (BIO_ctrl(b, BIO_CTRL_GET_KTLS_SEND, 0, NULL) > 0) @@ -208,7 +238,7 @@ extern "C" { # define BIO_FLAGS_NONCLEAR_RST 0x400 # define BIO_FLAGS_IN_EOF 0x800 -/* the BIO FLAGS values 0x1000 to 0x4000 are reserved for internal KTLS flags */ +/* the BIO FLAGS values 0x1000 to 0x8000 are reserved for internal KTLS flags */ typedef union bio_addr_st BIO_ADDR; typedef struct bio_addrinfo_st BIO_ADDRINFO; @@ -256,12 +286,14 @@ void BIO_clear_flags(BIO *b, int flags); # define BIO_RR_ACCEPT 0x03 /* These are passed by the BIO callback */ -# define BIO_CB_FREE 0x01 -# define BIO_CB_READ 0x02 -# define BIO_CB_WRITE 0x03 -# define BIO_CB_PUTS 0x04 -# define BIO_CB_GETS 0x05 -# define BIO_CB_CTRL 0x06 +# define BIO_CB_FREE 0x01 +# define BIO_CB_READ 0x02 +# define BIO_CB_WRITE 0x03 +# define BIO_CB_PUTS 0x04 +# define BIO_CB_GETS 0x05 +# define BIO_CB_CTRL 0x06 +# define BIO_CB_RECVMMSG 0x07 +# define BIO_CB_SENDMMSG 0x08 /* * The callback is called before and after the underling operation, The @@ -362,6 +394,36 @@ struct bio_dgram_sctp_prinfo { }; # endif +/* BIO_sendmmsg/BIO_recvmmsg-related definitions */ +typedef struct bio_msg_st { + void *data; + size_t data_len; + BIO_ADDR *peer, *local; + uint64_t flags; +} BIO_MSG; + +typedef struct bio_mmsg_cb_args_st { + BIO_MSG *msg; + size_t stride, num_msg; + uint64_t flags; + size_t *msgs_processed; +} BIO_MMSG_CB_ARGS; + +#define BIO_POLL_DESCRIPTOR_TYPE_NONE 0 +#define BIO_POLL_DESCRIPTOR_TYPE_SOCK_FD 1 +#define BIO_POLL_DESCRIPTOR_TYPE_SSL 2 +#define BIO_POLL_DESCRIPTOR_CUSTOM_START 8192 + +typedef struct bio_poll_descriptor_st { + uint32_t type; + union { + int fd; + void *custom; + uintptr_t custom_ui; + SSL *ssl; + } value; +} BIO_POLL_DESCRIPTOR; + /* * #define BIO_CONN_get_param_hostname BIO_ctrl */ @@ -428,10 +490,17 @@ struct bio_dgram_sctp_prinfo { # define BIO_C_SET_CONNECT_MODE 155 +# define BIO_C_SET_TFO 156 /* like BIO_C_SET_NBIO */ + +# define BIO_C_SET_SOCK_TYPE 157 +# define BIO_C_GET_SOCK_TYPE 158 +# define BIO_C_GET_DGRAM_BIO 159 + # define BIO_set_app_data(s,arg) BIO_set_ex_data(s,0,arg) # define BIO_get_app_data(s) BIO_get_ex_data(s,0) -# define BIO_set_nbio(b,n) BIO_ctrl(b,BIO_C_SET_NBIO,(n),NULL) +# define BIO_set_nbio(b,n) BIO_ctrl(b,BIO_C_SET_NBIO,(n),NULL) +# define BIO_set_tfo(b,n) BIO_ctrl(b,BIO_C_SET_TFO,(n),NULL) # ifndef OPENSSL_NO_SOCK /* IP families we support, for BIO_s_connect() and BIO_s_accept() */ @@ -452,7 +521,11 @@ struct bio_dgram_sctp_prinfo { # define BIO_get_conn_port(b) ((const char *)BIO_ptr_ctrl(b,BIO_C_GET_CONNECT,1)) # define BIO_get_conn_address(b) ((const BIO_ADDR *)BIO_ptr_ctrl(b,BIO_C_GET_CONNECT,2)) # define BIO_get_conn_ip_family(b) BIO_ctrl(b,BIO_C_GET_CONNECT,3,NULL) +# define BIO_get_conn_mode(b) BIO_ctrl(b,BIO_C_GET_CONNECT,4,NULL) # define BIO_set_conn_mode(b,n) BIO_ctrl(b,BIO_C_SET_CONNECT_MODE,(n),NULL) +# define BIO_set_sock_type(b,t) BIO_ctrl(b,BIO_C_SET_SOCK_TYPE,(t),NULL) +# define BIO_get_sock_type(b) BIO_ctrl(b,BIO_C_GET_SOCK_TYPE,0,NULL) +# define BIO_get0_dgram_bio(b, p) BIO_ctrl(b,BIO_C_GET_DGRAM_BIO,0,(void *)(BIO **)(p)) /* BIO_s_accept() */ # define BIO_set_accept_name(b,name) BIO_ctrl(b,BIO_C_SET_ACCEPT,0, \ @@ -469,6 +542,7 @@ struct bio_dgram_sctp_prinfo { (char *)(bio)) # define BIO_set_accept_ip_family(b,f) BIO_int_ctrl(b,BIO_C_SET_ACCEPT,4,f) # define BIO_get_accept_ip_family(b) BIO_ctrl(b,BIO_C_GET_ACCEPT,4,NULL) +# define BIO_set_tfo_accept(b,n) BIO_ctrl(b,BIO_C_SET_ACCEPT,5,(n)?(void *)"a":NULL) /* Aliases kept for backward compatibility */ # define BIO_BIND_NORMAL 0 @@ -596,8 +670,32 @@ int BIO_ctrl_reset_read_request(BIO *b); (int)BIO_ctrl(b, BIO_CTRL_DGRAM_GET_PEER, 0, (char *)(peer)) # define BIO_dgram_set_peer(b,peer) \ (int)BIO_ctrl(b, BIO_CTRL_DGRAM_SET_PEER, 0, (char *)(peer)) +# define BIO_dgram_detect_peer_addr(b,peer) \ + (int)BIO_ctrl(b, BIO_CTRL_DGRAM_DETECT_PEER_ADDR, 0, (char *)(peer)) # define BIO_dgram_get_mtu_overhead(b) \ (unsigned int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_MTU_OVERHEAD, 0, NULL) +# define BIO_dgram_get_local_addr_cap(b) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_LOCAL_ADDR_CAP, 0, NULL) +# define BIO_dgram_get_local_addr_enable(b, penable) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_LOCAL_ADDR_ENABLE, 0, (char *)(penable)) +# define BIO_dgram_set_local_addr_enable(b, enable) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET_LOCAL_ADDR_ENABLE, (enable), NULL) +# define BIO_dgram_get_effective_caps(b) \ + (uint32_t)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_EFFECTIVE_CAPS, 0, NULL) +# define BIO_dgram_get_caps(b) \ + (uint32_t)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_CAPS, 0, NULL) +# define BIO_dgram_set_caps(b, caps) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET_CAPS, (long)(caps), NULL) +# define BIO_dgram_get_no_trunc(b) \ + (unsigned int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_NO_TRUNC, 0, NULL) +# define BIO_dgram_set_no_trunc(b, enable) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET_NO_TRUNC, (enable), NULL) +# define BIO_dgram_get_mtu(b) \ + (unsigned int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_MTU, 0, NULL) +# define BIO_dgram_set_mtu(b, mtu) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET_MTU, (mtu), NULL) +# define BIO_dgram_set0_local_addr(b, addr) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET0_LOCAL_ADDR, 0, (addr)) /* ctrl macros for BIO_f_prefix */ # define BIO_set_prefix(b,p) BIO_ctrl((b), BIO_CTRL_SET_PREFIX, 0, (void *)(p)) @@ -640,10 +738,18 @@ void BIO_vfree(BIO *a); int BIO_up_ref(BIO *a); int BIO_read(BIO *b, void *data, int dlen); int BIO_read_ex(BIO *b, void *data, size_t dlen, size_t *readbytes); +__owur int BIO_recvmmsg(BIO *b, BIO_MSG *msg, + size_t stride, size_t num_msg, uint64_t flags, + size_t *msgs_processed); int BIO_gets(BIO *bp, char *buf, int size); int BIO_get_line(BIO *bio, char *buf, int size); int BIO_write(BIO *b, const void *data, int dlen); int BIO_write_ex(BIO *b, const void *data, size_t dlen, size_t *written); +__owur int BIO_sendmmsg(BIO *b, BIO_MSG *msg, + size_t stride, size_t num_msg, uint64_t flags, + size_t *msgs_processed); +__owur int BIO_get_rpoll_descriptor(BIO *b, BIO_POLL_DESCRIPTOR *desc); +__owur int BIO_get_wpoll_descriptor(BIO *b, BIO_POLL_DESCRIPTOR *desc); int BIO_puts(BIO *bp, const char *buf); int BIO_indent(BIO *b, int indent, int max); long BIO_ctrl(BIO *bp, int cmd, long larg, void *parg); @@ -667,6 +773,9 @@ int BIO_nwrite0(BIO *bio, char **buf); int BIO_nwrite(BIO *bio, char **buf, int num); const BIO_METHOD *BIO_s_mem(void); +# ifndef OPENSSL_NO_DGRAM +const BIO_METHOD *BIO_s_dgram_mem(void); +# endif const BIO_METHOD *BIO_s_secmem(void); BIO *BIO_new_mem_buf(const void *buf, int len); # ifndef OPENSSL_NO_SOCK @@ -686,6 +795,7 @@ const BIO_METHOD *BIO_f_nbio_test(void); const BIO_METHOD *BIO_f_prefix(void); const BIO_METHOD *BIO_s_core(void); # ifndef OPENSSL_NO_DGRAM +const BIO_METHOD *BIO_s_dgram_pair(void); const BIO_METHOD *BIO_s_datagram(void); int BIO_dgram_non_fatal_error(int error); BIO *BIO_new_dgram(int fd, int close_flag); @@ -704,6 +814,7 @@ int BIO_dgram_sctp_msg_waiting(BIO *b); # ifndef OPENSSL_NO_SOCK int BIO_sock_should_retry(int i); int BIO_sock_non_fatal_error(int error); +int BIO_err_is_non_fatal(unsigned int errcode); int BIO_socket_wait(int fd, int for_read, time_t max_time); # endif int BIO_wait(BIO *bio, time_t max_time, unsigned int nap_milliseconds); @@ -726,6 +837,8 @@ int BIO_hex_string(BIO *out, int indent, int width, const void *data, # ifndef OPENSSL_NO_SOCK BIO_ADDR *BIO_ADDR_new(void); +int BIO_ADDR_copy(BIO_ADDR *dst, const BIO_ADDR *src); +BIO_ADDR *BIO_ADDR_dup(const BIO_ADDR *ap); int BIO_ADDR_rawmake(BIO_ADDR *ap, int family, const void *where, size_t wherelen, unsigned short port); void BIO_ADDR_free(BIO_ADDR *); @@ -788,6 +901,7 @@ int BIO_sock_info(int sock, # define BIO_SOCK_KEEPALIVE 0x04 # define BIO_SOCK_NONBLOCK 0x08 # define BIO_SOCK_NODELAY 0x10 +# define BIO_SOCK_TFO 0x20 int BIO_socket(int domain, int socktype, int protocol, int options); int BIO_connect(int sock, const BIO_ADDR *addr, int options); @@ -805,6 +919,11 @@ BIO *BIO_new_fd(int fd, int close_flag); int BIO_new_bio_pair(BIO **bio1, size_t writebuf1, BIO **bio2, size_t writebuf2); +# ifndef OPENSSL_NO_DGRAM +int BIO_new_bio_dgram_pair(BIO **bio1, size_t writebuf1, + BIO **bio2, size_t writebuf2); +# endif + /* * If successful, returns 1 and in *bio1, *bio2 two BIO pair endpoints. * Otherwise returns 0 and sets *bio1 and *bio2 to NULL. Size 0 uses default @@ -849,38 +968,54 @@ ossl_bio__attr__((__format__(ossl_bio__printf__, 3, 0))); BIO_METHOD *BIO_meth_new(int type, const char *name); void BIO_meth_free(BIO_METHOD *biom); -int (*BIO_meth_get_write(const BIO_METHOD *biom)) (BIO *, const char *, int); -int (*BIO_meth_get_write_ex(const BIO_METHOD *biom)) (BIO *, const char *, size_t, - size_t *); int BIO_meth_set_write(BIO_METHOD *biom, int (*write) (BIO *, const char *, int)); int BIO_meth_set_write_ex(BIO_METHOD *biom, int (*bwrite) (BIO *, const char *, size_t, size_t *)); -int (*BIO_meth_get_read(const BIO_METHOD *biom)) (BIO *, char *, int); -int (*BIO_meth_get_read_ex(const BIO_METHOD *biom)) (BIO *, char *, size_t, size_t *); +int BIO_meth_set_sendmmsg(BIO_METHOD *biom, + int (*f) (BIO *, BIO_MSG *, size_t, size_t, + uint64_t, size_t *)); int BIO_meth_set_read(BIO_METHOD *biom, int (*read) (BIO *, char *, int)); int BIO_meth_set_read_ex(BIO_METHOD *biom, int (*bread) (BIO *, char *, size_t, size_t *)); -int (*BIO_meth_get_puts(const BIO_METHOD *biom)) (BIO *, const char *); +int BIO_meth_set_recvmmsg(BIO_METHOD *biom, + int (*f) (BIO *, BIO_MSG *, size_t, size_t, + uint64_t, size_t *)); int BIO_meth_set_puts(BIO_METHOD *biom, int (*puts) (BIO *, const char *)); -int (*BIO_meth_get_gets(const BIO_METHOD *biom)) (BIO *, char *, int); int BIO_meth_set_gets(BIO_METHOD *biom, int (*ossl_gets) (BIO *, char *, int)); -long (*BIO_meth_get_ctrl(const BIO_METHOD *biom)) (BIO *, int, long, void *); int BIO_meth_set_ctrl(BIO_METHOD *biom, long (*ctrl) (BIO *, int, long, void *)); -int (*BIO_meth_get_create(const BIO_METHOD *bion)) (BIO *); int BIO_meth_set_create(BIO_METHOD *biom, int (*create) (BIO *)); -int (*BIO_meth_get_destroy(const BIO_METHOD *biom)) (BIO *); int BIO_meth_set_destroy(BIO_METHOD *biom, int (*destroy) (BIO *)); -long (*BIO_meth_get_callback_ctrl(const BIO_METHOD *biom)) - (BIO *, int, BIO_info_cb *); int BIO_meth_set_callback_ctrl(BIO_METHOD *biom, long (*callback_ctrl) (BIO *, int, BIO_info_cb *)); - +# ifndef OPENSSL_NO_DEPRECATED_3_5 +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_write(const BIO_METHOD *biom)) (BIO *, const char *, + int); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_write_ex(const BIO_METHOD *biom)) (BIO *, const char *, + size_t, size_t *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_sendmmsg(const BIO_METHOD *biom))(BIO *, BIO_MSG *, + size_t, size_t, + uint64_t, size_t *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_read(const BIO_METHOD *biom)) (BIO *, char *, int); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_read_ex(const BIO_METHOD *biom)) (BIO *, char *, + size_t, size_t *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_recvmmsg(const BIO_METHOD *biom))(BIO *, BIO_MSG *, + size_t, size_t, + uint64_t, size_t *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_puts(const BIO_METHOD *biom)) (BIO *, const char *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_gets(const BIO_METHOD *biom)) (BIO *, char *, int); +OSSL_DEPRECATEDIN_3_5 long (*BIO_meth_get_ctrl(const BIO_METHOD *biom)) (BIO *, int, + long, void *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_create(const BIO_METHOD *bion)) (BIO *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_destroy(const BIO_METHOD *biom)) (BIO *); +OSSL_DEPRECATEDIN_3_5 long (*BIO_meth_get_callback_ctrl(const BIO_METHOD *biom)) (BIO *, int, + BIO_info_cb *); +# endif # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/linux-armv4/asm_avx2/include/openssl/cmp.h b/deps/openssl/config/archs/linux-armv4/asm_avx2/include/openssl/cmp.h index 49825570d8c303..05aed3029d594c 100644 --- a/deps/openssl/config/archs/linux-armv4/asm_avx2/include/openssl/cmp.h +++ b/deps/openssl/config/archs/linux-armv4/asm_avx2/include/openssl/cmp.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/cmp.h.in * - * Copyright 2007-2023 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2007-2024 The OpenSSL Project Authors. All Rights Reserved. * Copyright Nokia 2007-2019 * Copyright Siemens AG 2015-2019 * @@ -35,7 +35,9 @@ extern "C" { # endif -# define OSSL_CMP_PVNO 2 +# define OSSL_CMP_PVNO_2 2 +# define OSSL_CMP_PVNO_3 3 +# define OSSL_CMP_PVNO OSSL_CMP_PVNO_2 /* v2 is the default */ /*- * PKIFailureInfo ::= BIT STRING { @@ -137,7 +139,6 @@ extern "C" { # if OSSL_CMP_PKIFAILUREINFO_MAX_BIT_PATTERN > INT_MAX # error CMP_PKIFAILUREINFO_MAX bit pattern does not fit in type int # endif - typedef ASN1_BIT_STRING OSSL_CMP_PKIFAILUREINFO; # define OSSL_CMP_CTX_FAILINFO_badAlg (1 << 0) @@ -203,8 +204,8 @@ typedef ASN1_BIT_STRING OSSL_CMP_PKIFAILUREINFO; # define OSSL_CMP_PKISTATUS_revocationWarning 4 # define OSSL_CMP_PKISTATUS_revocationNotification 5 # define OSSL_CMP_PKISTATUS_keyUpdateWarning 6 - typedef ASN1_INTEGER OSSL_CMP_PKISTATUS; + DECLARE_ASN1_ITEM(OSSL_CMP_PKISTATUS) # define OSSL_CMP_CERTORENCCERT_CERTIFICATE 0 @@ -274,6 +275,46 @@ SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CMP_ITAV, OSSL_CMP_ITAV, OSSL_CMP_ITAV) #define sk_OSSL_CMP_ITAV_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_CMP_ITAV) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_CMP_ITAV_sk_type(sk), ossl_check_OSSL_CMP_ITAV_copyfunc_type(copyfunc), ossl_check_OSSL_CMP_ITAV_freefunc_type(freefunc))) #define sk_OSSL_CMP_ITAV_set_cmp_func(sk, cmp) ((sk_OSSL_CMP_ITAV_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CMP_ITAV_sk_type(sk), ossl_check_OSSL_CMP_ITAV_compfunc_type(cmp))) + +typedef struct ossl_cmp_crlstatus_st OSSL_CMP_CRLSTATUS; +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CMP_CRLSTATUS, OSSL_CMP_CRLSTATUS, OSSL_CMP_CRLSTATUS) +#define sk_OSSL_CMP_CRLSTATUS_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_value(sk, idx) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_value(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk), (idx))) +#define sk_OSSL_CMP_CRLSTATUS_new(cmp) ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_new(ossl_check_OSSL_CMP_CRLSTATUS_compfunc_type(cmp))) +#define sk_OSSL_CMP_CRLSTATUS_new_null() ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_new_null()) +#define sk_OSSL_CMP_CRLSTATUS_new_reserve(cmp, n) ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_CMP_CRLSTATUS_compfunc_type(cmp), (n))) +#define sk_OSSL_CMP_CRLSTATUS_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), (n)) +#define sk_OSSL_CMP_CRLSTATUS_free(sk) OPENSSL_sk_free(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_delete(sk, i) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_delete(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), (i))) +#define sk_OSSL_CMP_CRLSTATUS_delete_ptr(sk, ptr) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr))) +#define sk_OSSL_CMP_CRLSTATUS_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr)) +#define sk_OSSL_CMP_CRLSTATUS_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr)) +#define sk_OSSL_CMP_CRLSTATUS_pop(sk) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_pop(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk))) +#define sk_OSSL_CMP_CRLSTATUS_shift(sk) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_shift(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk))) +#define sk_OSSL_CMP_CRLSTATUS_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk),ossl_check_OSSL_CMP_CRLSTATUS_freefunc_type(freefunc)) +#define sk_OSSL_CMP_CRLSTATUS_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr), (idx)) +#define sk_OSSL_CMP_CRLSTATUS_set(sk, idx, ptr) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_set(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), (idx), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr))) +#define sk_OSSL_CMP_CRLSTATUS_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr)) +#define sk_OSSL_CMP_CRLSTATUS_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr)) +#define sk_OSSL_CMP_CRLSTATUS_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr), pnum) +#define sk_OSSL_CMP_CRLSTATUS_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_dup(sk) ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_dup(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk))) +#define sk_OSSL_CMP_CRLSTATUS_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_copyfunc_type(copyfunc), ossl_check_OSSL_CMP_CRLSTATUS_freefunc_type(freefunc))) +#define sk_OSSL_CMP_CRLSTATUS_set_cmp_func(sk, cmp) ((sk_OSSL_CMP_CRLSTATUS_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_compfunc_type(cmp))) + + +typedef OSSL_CRMF_ATTRIBUTETYPEANDVALUE OSSL_CMP_ATAV; +# define OSSL_CMP_ATAV_free OSSL_CRMF_ATTRIBUTETYPEANDVALUE_free +typedef STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) OSSL_CMP_ATAVS; +DECLARE_ASN1_FUNCTIONS(OSSL_CMP_ATAVS) +# define stack_st_OSSL_CMP_ATAV stack_st_OSSL_CRMF_ATTRIBUTETYPEANDVALUE +# define sk_OSSL_CMP_ATAV_num sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_num +# define sk_OSSL_CMP_ATAV_value sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_value +# define sk_OSSL_CMP_ATAV_push sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_push +# define sk_OSSL_CMP_ATAV_pop_free sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_pop_free + typedef struct ossl_cmp_revrepcontent_st OSSL_CMP_REVREPCONTENT; typedef struct ossl_cmp_pkisi_st OSSL_CMP_PKISI; DECLARE_ASN1_FUNCTIONS(OSSL_CMP_PKISI) @@ -375,21 +416,75 @@ void OSSL_CMP_ITAV_set0(OSSL_CMP_ITAV *itav, ASN1_OBJECT *type, ASN1_TYPE *value); ASN1_OBJECT *OSSL_CMP_ITAV_get0_type(const OSSL_CMP_ITAV *itav); ASN1_TYPE *OSSL_CMP_ITAV_get0_value(const OSSL_CMP_ITAV *itav); -int OSSL_CMP_ITAV_push0_stack_item(STACK_OF(OSSL_CMP_ITAV) **itav_sk_p, +int OSSL_CMP_ITAV_push0_stack_item(STACK_OF(OSSL_CMP_ITAV) **sk_p, OSSL_CMP_ITAV *itav); void OSSL_CMP_ITAV_free(OSSL_CMP_ITAV *itav); + +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new0_certProfile(STACK_OF(ASN1_UTF8STRING) + *certProfile); +int OSSL_CMP_ITAV_get0_certProfile(const OSSL_CMP_ITAV *itav, + STACK_OF(ASN1_UTF8STRING) **out); +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new_caCerts(const STACK_OF(X509) *caCerts); +int OSSL_CMP_ITAV_get0_caCerts(const OSSL_CMP_ITAV *itav, STACK_OF(X509) **out); + +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new_rootCaCert(const X509 *rootCaCert); +int OSSL_CMP_ITAV_get0_rootCaCert(const OSSL_CMP_ITAV *itav, X509 **out); +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new_rootCaKeyUpdate(const X509 *newWithNew, + const X509 *newWithOld, + const X509 *oldWithNew); +int OSSL_CMP_ITAV_get0_rootCaKeyUpdate(const OSSL_CMP_ITAV *itav, + X509 **newWithNew, + X509 **newWithOld, + X509 **oldWithNew); + +OSSL_CMP_CRLSTATUS *OSSL_CMP_CRLSTATUS_create(const X509_CRL *crl, + const X509 *cert, int only_DN); +OSSL_CMP_CRLSTATUS *OSSL_CMP_CRLSTATUS_new1(const DIST_POINT_NAME *dpn, + const GENERAL_NAMES *issuer, + const ASN1_TIME *thisUpdate); +int OSSL_CMP_CRLSTATUS_get0(const OSSL_CMP_CRLSTATUS *crlstatus, + DIST_POINT_NAME **dpn, GENERAL_NAMES **issuer, + ASN1_TIME **thisUpdate); +void OSSL_CMP_CRLSTATUS_free(OSSL_CMP_CRLSTATUS *crlstatus); +OSSL_CMP_ITAV +*OSSL_CMP_ITAV_new0_crlStatusList(STACK_OF(OSSL_CMP_CRLSTATUS) *crlStatusList); +int OSSL_CMP_ITAV_get0_crlStatusList(const OSSL_CMP_ITAV *itav, + STACK_OF(OSSL_CMP_CRLSTATUS) **out); +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new_crls(const X509_CRL *crls); +int OSSL_CMP_ITAV_get0_crls(const OSSL_CMP_ITAV *it, STACK_OF(X509_CRL) **out); +OSSL_CMP_ITAV +*OSSL_CMP_ITAV_new0_certReqTemplate(OSSL_CRMF_CERTTEMPLATE *certTemplate, + OSSL_CMP_ATAVS *keySpec); +int OSSL_CMP_ITAV_get1_certReqTemplate(const OSSL_CMP_ITAV *itav, + OSSL_CRMF_CERTTEMPLATE **certTemplate, + OSSL_CMP_ATAVS **keySpec); + +OSSL_CMP_ATAV *OSSL_CMP_ATAV_create(ASN1_OBJECT *type, ASN1_TYPE *value); +void OSSL_CMP_ATAV_set0(OSSL_CMP_ATAV *itav, ASN1_OBJECT *type, + ASN1_TYPE *value); +ASN1_OBJECT *OSSL_CMP_ATAV_get0_type(const OSSL_CMP_ATAV *itav); +ASN1_TYPE *OSSL_CMP_ATAV_get0_value(const OSSL_CMP_ATAV *itav); +OSSL_CMP_ATAV *OSSL_CMP_ATAV_new_algId(const X509_ALGOR *alg); +X509_ALGOR *OSSL_CMP_ATAV_get0_algId(const OSSL_CMP_ATAV *atav); +OSSL_CMP_ATAV *OSSL_CMP_ATAV_new_rsaKeyLen(int len); +int OSSL_CMP_ATAV_get_rsaKeyLen(const OSSL_CMP_ATAV *atav); +int OSSL_CMP_ATAV_push1(OSSL_CMP_ATAVS **sk_p, const OSSL_CMP_ATAV *atav); + void OSSL_CMP_MSG_free(OSSL_CMP_MSG *msg); /* from cmp_ctx.c */ OSSL_CMP_CTX *OSSL_CMP_CTX_new(OSSL_LIB_CTX *libctx, const char *propq); void OSSL_CMP_CTX_free(OSSL_CMP_CTX *ctx); int OSSL_CMP_CTX_reinit(OSSL_CMP_CTX *ctx); +OSSL_LIB_CTX *OSSL_CMP_CTX_get0_libctx(const OSSL_CMP_CTX *ctx); +const char *OSSL_CMP_CTX_get0_propq(const OSSL_CMP_CTX *ctx); /* CMP general options: */ # define OSSL_CMP_OPT_LOG_VERBOSITY 0 /* CMP transfer options: */ -# define OSSL_CMP_OPT_KEEP_ALIVE 10 -# define OSSL_CMP_OPT_MSG_TIMEOUT 11 +# define OSSL_CMP_OPT_KEEP_ALIVE 10 +# define OSSL_CMP_OPT_MSG_TIMEOUT 11 # define OSSL_CMP_OPT_TOTAL_TIMEOUT 12 +# define OSSL_CMP_OPT_USE_TLS 13 /* CMP request options: */ # define OSSL_CMP_OPT_VALIDITY_DAYS 20 # define OSSL_CMP_OPT_SUBJECTALTNAME_NODEFAULT 21 @@ -407,6 +502,7 @@ int OSSL_CMP_CTX_reinit(OSSL_CMP_CTX *ctx); # define OSSL_CMP_OPT_DIGEST_ALGNID 34 # define OSSL_CMP_OPT_IGNORE_KEYUSAGE 35 # define OSSL_CMP_OPT_PERMIT_TA_IN_EXTRACERTS_FOR_IR 36 +# define OSSL_CMP_OPT_NO_CACHE_EXTRACERTS 37 int OSSL_CMP_CTX_set_option(OSSL_CMP_CTX *ctx, int opt, int val); int OSSL_CMP_CTX_get_option(const OSSL_CMP_CTX *ctx, int opt); /* CMP-specific callback for logging and outputting the error queue: */ @@ -420,9 +516,11 @@ int OSSL_CMP_CTX_set1_server(OSSL_CMP_CTX *ctx, const char *address); int OSSL_CMP_CTX_set_serverPort(OSSL_CMP_CTX *ctx, int port); int OSSL_CMP_CTX_set1_proxy(OSSL_CMP_CTX *ctx, const char *name); int OSSL_CMP_CTX_set1_no_proxy(OSSL_CMP_CTX *ctx, const char *names); +# ifndef OPENSSL_NO_HTTP int OSSL_CMP_CTX_set_http_cb(OSSL_CMP_CTX *ctx, OSSL_HTTP_bio_cb_t cb); int OSSL_CMP_CTX_set_http_cb_arg(OSSL_CMP_CTX *ctx, void *arg); void *OSSL_CMP_CTX_get_http_cb_arg(const OSSL_CMP_CTX *ctx); +# endif typedef OSSL_CMP_MSG *(*OSSL_CMP_transfer_cb_t) (OSSL_CMP_CTX *ctx, const OSSL_CMP_MSG *req); int OSSL_CMP_CTX_set_transfer_cb(OSSL_CMP_CTX *ctx, OSSL_CMP_transfer_cb_t cb); @@ -432,7 +530,9 @@ void *OSSL_CMP_CTX_get_transfer_cb_arg(const OSSL_CMP_CTX *ctx); int OSSL_CMP_CTX_set1_srvCert(OSSL_CMP_CTX *ctx, X509 *cert); int OSSL_CMP_CTX_set1_expected_sender(OSSL_CMP_CTX *ctx, const X509_NAME *name); int OSSL_CMP_CTX_set0_trustedStore(OSSL_CMP_CTX *ctx, X509_STORE *store); +# define OSSL_CMP_CTX_set0_trusted OSSL_CMP_CTX_set0_trustedStore X509_STORE *OSSL_CMP_CTX_get0_trustedStore(const OSSL_CMP_CTX *ctx); +# define OSSL_CMP_CTX_get0_trusted OSSL_CMP_CTX_get0_trustedStore int OSSL_CMP_CTX_set1_untrusted(OSSL_CMP_CTX *ctx, STACK_OF(X509) *certs); STACK_OF(X509) *OSSL_CMP_CTX_get0_untrusted(const OSSL_CMP_CTX *ctx); /* client authentication: */ @@ -448,12 +548,15 @@ int OSSL_CMP_CTX_set1_secretValue(OSSL_CMP_CTX *ctx, int OSSL_CMP_CTX_set1_recipient(OSSL_CMP_CTX *ctx, const X509_NAME *name); int OSSL_CMP_CTX_push0_geninfo_ITAV(OSSL_CMP_CTX *ctx, OSSL_CMP_ITAV *itav); int OSSL_CMP_CTX_reset_geninfo_ITAVs(OSSL_CMP_CTX *ctx); +STACK_OF(OSSL_CMP_ITAV) + *OSSL_CMP_CTX_get0_geninfo_ITAVs(const OSSL_CMP_CTX *ctx); int OSSL_CMP_CTX_set1_extraCertsOut(OSSL_CMP_CTX *ctx, STACK_OF(X509) *extraCertsOut); /* certificate template: */ int OSSL_CMP_CTX_set0_newPkey(OSSL_CMP_CTX *ctx, int priv, EVP_PKEY *pkey); EVP_PKEY *OSSL_CMP_CTX_get0_newPkey(const OSSL_CMP_CTX *ctx, int priv); int OSSL_CMP_CTX_set1_issuer(OSSL_CMP_CTX *ctx, const X509_NAME *name); +int OSSL_CMP_CTX_set1_serialNumber(OSSL_CMP_CTX *ctx, const ASN1_INTEGER *sn); int OSSL_CMP_CTX_set1_subjectName(OSSL_CMP_CTX *ctx, const X509_NAME *name); int OSSL_CMP_CTX_push1_subjectAltName(OSSL_CMP_CTX *ctx, const GENERAL_NAME *name); @@ -477,6 +580,7 @@ int OSSL_CMP_CTX_get_status(const OSSL_CMP_CTX *ctx); OSSL_CMP_PKIFREETEXT *OSSL_CMP_CTX_get0_statusString(const OSSL_CMP_CTX *ctx); int OSSL_CMP_CTX_get_failInfoCode(const OSSL_CMP_CTX *ctx); # define OSSL_CMP_PKISI_BUFLEN 1024 +X509 *OSSL_CMP_CTX_get0_validatedSrvCert(const OSSL_CMP_CTX *ctx); X509 *OSSL_CMP_CTX_get0_newCert(const OSSL_CMP_CTX *ctx); STACK_OF(X509) *OSSL_CMP_CTX_get1_newChain(const OSSL_CMP_CTX *ctx); STACK_OF(X509) *OSSL_CMP_CTX_get1_caPubs(const OSSL_CMP_CTX *ctx); @@ -498,10 +602,13 @@ OSSL_CMP_STATUSINFO_new(int status, int fail_info, const char *text); ASN1_OCTET_STRING *OSSL_CMP_HDR_get0_transactionID(const OSSL_CMP_PKIHEADER *hdr); ASN1_OCTET_STRING *OSSL_CMP_HDR_get0_recipNonce(const OSSL_CMP_PKIHEADER *hdr); +STACK_OF(OSSL_CMP_ITAV) + *OSSL_CMP_HDR_get0_geninfo_ITAVs(const OSSL_CMP_PKIHEADER *hdr); /* from cmp_msg.c */ OSSL_CMP_PKIHEADER *OSSL_CMP_MSG_get0_header(const OSSL_CMP_MSG *msg); int OSSL_CMP_MSG_get_bodytype(const OSSL_CMP_MSG *msg); +X509_PUBKEY *OSSL_CMP_MSG_get0_certreq_publickey(const OSSL_CMP_MSG *msg); int OSSL_CMP_MSG_update_transactionID(OSSL_CMP_CTX *ctx, OSSL_CMP_MSG *msg); int OSSL_CMP_MSG_update_recipNonce(OSSL_CMP_CTX *ctx, OSSL_CMP_MSG *msg); OSSL_CRMF_MSG *OSSL_CMP_CTX_setup_CRM(OSSL_CMP_CTX *ctx, int for_KUR, int rid); @@ -517,8 +624,10 @@ int OSSL_CMP_validate_cert_path(const OSSL_CMP_CTX *ctx, X509_STORE *trusted_store, X509 *cert); /* from cmp_http.c */ +# ifndef OPENSSL_NO_HTTP OSSL_CMP_MSG *OSSL_CMP_MSG_http_perform(OSSL_CMP_CTX *ctx, const OSSL_CMP_MSG *req); +# endif /* from cmp_server.c */ typedef struct ossl_cmp_srv_ctx_st OSSL_CMP_SRV_CTX; @@ -561,6 +670,13 @@ int OSSL_CMP_SRV_CTX_init(OSSL_CMP_SRV_CTX *srv_ctx, void *custom_ctx, OSSL_CMP_SRV_error_cb_t process_error, OSSL_CMP_SRV_certConf_cb_t process_certConf, OSSL_CMP_SRV_pollReq_cb_t process_pollReq); +typedef int (*OSSL_CMP_SRV_delayed_delivery_cb_t)(OSSL_CMP_SRV_CTX *srv_ctx, + const OSSL_CMP_MSG *req); +typedef int (*OSSL_CMP_SRV_clean_transaction_cb_t)(OSSL_CMP_SRV_CTX *srv_ctx, + const ASN1_OCTET_STRING *id); +int OSSL_CMP_SRV_CTX_init_trans(OSSL_CMP_SRV_CTX *srv_ctx, + OSSL_CMP_SRV_delayed_delivery_cb_t delay, + OSSL_CMP_SRV_clean_transaction_cb_t clean); OSSL_CMP_CTX *OSSL_CMP_SRV_CTX_get0_cmp_ctx(const OSSL_CMP_SRV_CTX *srv_ctx); void *OSSL_CMP_SRV_CTX_get0_custom_ctx(const OSSL_CMP_SRV_CTX *srv_ctx); int OSSL_CMP_SRV_CTX_set_send_unprotected_errors(OSSL_CMP_SRV_CTX *srv_ctx, @@ -577,6 +693,8 @@ X509 *OSSL_CMP_exec_certreq(OSSL_CMP_CTX *ctx, int req_type, # define OSSL_CMP_CR 2 # define OSSL_CMP_P10CR 4 # define OSSL_CMP_KUR 7 +# define OSSL_CMP_GENM 21 +# define OSSL_CMP_ERROR 23 # define OSSL_CMP_exec_IR_ses(ctx) \ OSSL_CMP_exec_certreq(ctx, OSSL_CMP_IR, NULL) # define OSSL_CMP_exec_CR_ses(ctx) \ @@ -590,6 +708,18 @@ int OSSL_CMP_try_certreq(OSSL_CMP_CTX *ctx, int req_type, int OSSL_CMP_exec_RR_ses(OSSL_CMP_CTX *ctx); STACK_OF(OSSL_CMP_ITAV) *OSSL_CMP_exec_GENM_ses(OSSL_CMP_CTX *ctx); +/* from cmp_genm.c */ +int OSSL_CMP_get1_caCerts(OSSL_CMP_CTX *ctx, STACK_OF(X509) **out); +int OSSL_CMP_get1_rootCaKeyUpdate(OSSL_CMP_CTX *ctx, + const X509 *oldWithOld, X509 **newWithNew, + X509 **newWithOld, X509 **oldWithNew); +int OSSL_CMP_get1_crlUpdate(OSSL_CMP_CTX *ctx, const X509 *crlcert, + const X509_CRL *last_crl, + X509_CRL **crl); +int OSSL_CMP_get1_certReqTemplate(OSSL_CMP_CTX *ctx, + OSSL_CRMF_CERTTEMPLATE **certTemplate, + OSSL_CMP_ATAVS **keySpec); + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/linux-armv4/asm_avx2/include/openssl/cms.h b/deps/openssl/config/archs/linux-armv4/asm_avx2/include/openssl/cms.h index 3b453e6a2187a2..63afab563557b0 100644 --- a/deps/openssl/config/archs/linux-armv4/asm_avx2/include/openssl/cms.h +++ b/deps/openssl/config/archs/linux-armv4/asm_avx2/include/openssl/cms.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/cms.h.in * - * Copyright 2008-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2008-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -31,8 +31,10 @@ extern "C" { # endif +typedef struct CMS_EnvelopedData_st CMS_EnvelopedData; typedef struct CMS_ContentInfo_st CMS_ContentInfo; typedef struct CMS_SignerInfo_st CMS_SignerInfo; +typedef struct CMS_SignedData_st CMS_SignedData; typedef struct CMS_CertificateChoices CMS_CertificateChoices; typedef struct CMS_RevocationInfoChoice_st CMS_RevocationInfoChoice; typedef struct CMS_RecipientInfo_st CMS_RecipientInfo; @@ -147,10 +149,14 @@ SKM_DEFINE_STACK_OF_INTERNAL(CMS_RevocationInfoChoice, CMS_RevocationInfoChoice, #define sk_CMS_RevocationInfoChoice_set_cmp_func(sk, cmp) ((sk_CMS_RevocationInfoChoice_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_CMS_RevocationInfoChoice_sk_type(sk), ossl_check_CMS_RevocationInfoChoice_compfunc_type(cmp))) +DECLARE_ASN1_ITEM(CMS_EnvelopedData) +DECLARE_ASN1_ALLOC_FUNCTIONS(CMS_SignedData) DECLARE_ASN1_FUNCTIONS(CMS_ContentInfo) DECLARE_ASN1_FUNCTIONS(CMS_ReceiptRequest) DECLARE_ASN1_PRINT_FUNCTION(CMS_ContentInfo) +DECLARE_ASN1_DUP_FUNCTION(CMS_EnvelopedData) + CMS_ContentInfo *CMS_ContentInfo_new_ex(OSSL_LIB_CTX *libctx, const char *propq); # define CMS_SIGNERINFO_ISSUER_SERIAL 0 @@ -190,6 +196,7 @@ CMS_ContentInfo *CMS_ContentInfo_new_ex(OSSL_LIB_CTX *libctx, const char *propq) # define CMS_ASCIICRLF 0x80000 # define CMS_CADES 0x100000 # define CMS_USE_ORIGINATOR_KEYID 0x200000 +# define CMS_NO_SIGNING_TIME 0x400000 const ASN1_OBJECT *CMS_get0_type(const CMS_ContentInfo *cms); @@ -217,13 +224,16 @@ int SMIME_write_CMS(BIO *bio, CMS_ContentInfo *cms, BIO *data, int flags); int CMS_final(CMS_ContentInfo *cms, BIO *data, BIO *dcont, unsigned int flags); +int CMS_final_digest(CMS_ContentInfo *cms, + const unsigned char *md, unsigned int mdlen, BIO *dcont, + unsigned int flags); CMS_ContentInfo *CMS_sign(X509 *signcert, EVP_PKEY *pkey, STACK_OF(X509) *certs, BIO *data, unsigned int flags); CMS_ContentInfo *CMS_sign_ex(X509 *signcert, EVP_PKEY *pkey, STACK_OF(X509) *certs, BIO *data, - unsigned int flags, OSSL_LIB_CTX *ctx, + unsigned int flags, OSSL_LIB_CTX *libctx, const char *propq); CMS_ContentInfo *CMS_sign_receipt(CMS_SignerInfo *si, @@ -233,27 +243,26 @@ CMS_ContentInfo *CMS_sign_receipt(CMS_SignerInfo *si, int CMS_data(CMS_ContentInfo *cms, BIO *out, unsigned int flags); CMS_ContentInfo *CMS_data_create(BIO *in, unsigned int flags); CMS_ContentInfo *CMS_data_create_ex(BIO *in, unsigned int flags, - OSSL_LIB_CTX *ctx, const char *propq); + OSSL_LIB_CTX *libctx, const char *propq); int CMS_digest_verify(CMS_ContentInfo *cms, BIO *dcont, BIO *out, unsigned int flags); CMS_ContentInfo *CMS_digest_create(BIO *in, const EVP_MD *md, unsigned int flags); CMS_ContentInfo *CMS_digest_create_ex(BIO *in, const EVP_MD *md, - unsigned int flags, OSSL_LIB_CTX *ctx, + unsigned int flags, OSSL_LIB_CTX *libctx, const char *propq); int CMS_EncryptedData_decrypt(CMS_ContentInfo *cms, const unsigned char *key, size_t keylen, BIO *dcont, BIO *out, unsigned int flags); - CMS_ContentInfo *CMS_EncryptedData_encrypt(BIO *in, const EVP_CIPHER *cipher, const unsigned char *key, size_t keylen, unsigned int flags); CMS_ContentInfo *CMS_EncryptedData_encrypt_ex(BIO *in, const EVP_CIPHER *cipher, const unsigned char *key, size_t keylen, unsigned int flags, - OSSL_LIB_CTX *ctx, + OSSL_LIB_CTX *libctx, const char *propq); int CMS_EncryptedData_set1_key(CMS_ContentInfo *cms, const EVP_CIPHER *ciph, @@ -272,7 +281,7 @@ CMS_ContentInfo *CMS_encrypt(STACK_OF(X509) *certs, BIO *in, const EVP_CIPHER *cipher, unsigned int flags); CMS_ContentInfo *CMS_encrypt_ex(STACK_OF(X509) *certs, BIO *in, const EVP_CIPHER *cipher, unsigned int flags, - OSSL_LIB_CTX *ctx, const char *propq); + OSSL_LIB_CTX *libctx, const char *propq); int CMS_decrypt(CMS_ContentInfo *cms, EVP_PKEY *pkey, X509 *cert, BIO *dcont, BIO *out, unsigned int flags); @@ -291,12 +300,16 @@ int CMS_RecipientInfo_type(CMS_RecipientInfo *ri); EVP_PKEY_CTX *CMS_RecipientInfo_get0_pkey_ctx(CMS_RecipientInfo *ri); CMS_ContentInfo *CMS_AuthEnvelopedData_create(const EVP_CIPHER *cipher); CMS_ContentInfo * -CMS_AuthEnvelopedData_create_ex(const EVP_CIPHER *cipher, OSSL_LIB_CTX *ctx, +CMS_AuthEnvelopedData_create_ex(const EVP_CIPHER *cipher, OSSL_LIB_CTX *libctx, const char *propq); CMS_ContentInfo *CMS_EnvelopedData_create(const EVP_CIPHER *cipher); CMS_ContentInfo *CMS_EnvelopedData_create_ex(const EVP_CIPHER *cipher, - OSSL_LIB_CTX *ctx, + OSSL_LIB_CTX *libctx, const char *propq); +BIO *CMS_EnvelopedData_decrypt(CMS_EnvelopedData *env, BIO *detached_data, + EVP_PKEY *pkey, X509 *cert, + ASN1_OCTET_STRING *secret, unsigned int flags, + OSSL_LIB_CTX *libctx, const char *propq); CMS_RecipientInfo *CMS_add1_recipient_cert(CMS_ContentInfo *cms, X509 *recip, unsigned int flags); @@ -385,6 +398,11 @@ ASN1_OCTET_STRING *CMS_SignerInfo_get0_signature(CMS_SignerInfo *si); int CMS_SignerInfo_sign(CMS_SignerInfo *si); int CMS_SignerInfo_verify(CMS_SignerInfo *si); int CMS_SignerInfo_verify_content(CMS_SignerInfo *si, BIO *chain); +BIO *CMS_SignedData_verify(CMS_SignedData *sd, BIO *detached_data, + STACK_OF(X509) *scerts, X509_STORE *store, + STACK_OF(X509) *extra, STACK_OF(X509_CRL) *crls, + unsigned int flags, + OSSL_LIB_CTX *libctx, const char *propq); int CMS_add_smimecap(CMS_SignerInfo *si, STACK_OF(X509_ALGOR) *algs); int CMS_add_simple_smimecap(STACK_OF(X509_ALGOR) **algs, @@ -441,7 +459,7 @@ CMS_ReceiptRequest *CMS_ReceiptRequest_create0_ex( unsigned char *id, int idlen, int allorfirst, STACK_OF(GENERAL_NAMES) *receiptList, STACK_OF(GENERAL_NAMES) *receiptsTo, - OSSL_LIB_CTX *ctx); + OSSL_LIB_CTX *libctx); int CMS_add1_ReceiptRequest(CMS_SignerInfo *si, CMS_ReceiptRequest *rr); void CMS_ReceiptRequest_get0_values(CMS_ReceiptRequest *rr, diff --git a/deps/openssl/config/archs/linux-armv4/asm_avx2/include/openssl/comp.h b/deps/openssl/config/archs/linux-armv4/asm_avx2/include/openssl/comp.h new file mode 100644 index 00000000000000..90e39511fe8d28 --- /dev/null +++ b/deps/openssl/config/archs/linux-armv4/asm_avx2/include/openssl/comp.h @@ -0,0 +1,98 @@ +/* + * Copyright 2015-2024 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + + +#ifndef OPENSSL_COMP_H +# define OPENSSL_COMP_H +# pragma once + +# include +# ifndef OPENSSL_NO_DEPRECATED_3_0 +# define HEADER_COMP_H +# endif + +# include + +# include +# include +# ifdef __cplusplus +extern "C" { +# endif + + + +# ifndef OPENSSL_NO_COMP + +COMP_CTX *COMP_CTX_new(COMP_METHOD *meth); +const COMP_METHOD *COMP_CTX_get_method(const COMP_CTX *ctx); +int COMP_CTX_get_type(const COMP_CTX* comp); +int COMP_get_type(const COMP_METHOD *meth); +const char *COMP_get_name(const COMP_METHOD *meth); +void COMP_CTX_free(COMP_CTX *ctx); + +int COMP_compress_block(COMP_CTX *ctx, unsigned char *out, int olen, + unsigned char *in, int ilen); +int COMP_expand_block(COMP_CTX *ctx, unsigned char *out, int olen, + unsigned char *in, int ilen); + +COMP_METHOD *COMP_zlib(void); +COMP_METHOD *COMP_zlib_oneshot(void); +COMP_METHOD *COMP_brotli(void); +COMP_METHOD *COMP_brotli_oneshot(void); +COMP_METHOD *COMP_zstd(void); +COMP_METHOD *COMP_zstd_oneshot(void); + +# ifndef OPENSSL_NO_DEPRECATED_1_1_0 +# define COMP_zlib_cleanup() while(0) continue +# endif + +# ifdef OPENSSL_BIO_H +const BIO_METHOD *BIO_f_zlib(void); +const BIO_METHOD *BIO_f_brotli(void); +const BIO_METHOD *BIO_f_zstd(void); +# endif + +# endif + +typedef struct ssl_comp_st SSL_COMP; + +SKM_DEFINE_STACK_OF_INTERNAL(SSL_COMP, SSL_COMP, SSL_COMP) +#define sk_SSL_COMP_num(sk) OPENSSL_sk_num(ossl_check_const_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_value(sk, idx) ((SSL_COMP *)OPENSSL_sk_value(ossl_check_const_SSL_COMP_sk_type(sk), (idx))) +#define sk_SSL_COMP_new(cmp) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new(ossl_check_SSL_COMP_compfunc_type(cmp))) +#define sk_SSL_COMP_new_null() ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new_null()) +#define sk_SSL_COMP_new_reserve(cmp, n) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new_reserve(ossl_check_SSL_COMP_compfunc_type(cmp), (n))) +#define sk_SSL_COMP_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_SSL_COMP_sk_type(sk), (n)) +#define sk_SSL_COMP_free(sk) OPENSSL_sk_free(ossl_check_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_zero(sk) OPENSSL_sk_zero(ossl_check_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_delete(sk, i) ((SSL_COMP *)OPENSSL_sk_delete(ossl_check_SSL_COMP_sk_type(sk), (i))) +#define sk_SSL_COMP_delete_ptr(sk, ptr) ((SSL_COMP *)OPENSSL_sk_delete_ptr(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr))) +#define sk_SSL_COMP_push(sk, ptr) OPENSSL_sk_push(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) +#define sk_SSL_COMP_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) +#define sk_SSL_COMP_pop(sk) ((SSL_COMP *)OPENSSL_sk_pop(ossl_check_SSL_COMP_sk_type(sk))) +#define sk_SSL_COMP_shift(sk) ((SSL_COMP *)OPENSSL_sk_shift(ossl_check_SSL_COMP_sk_type(sk))) +#define sk_SSL_COMP_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_SSL_COMP_sk_type(sk),ossl_check_SSL_COMP_freefunc_type(freefunc)) +#define sk_SSL_COMP_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr), (idx)) +#define sk_SSL_COMP_set(sk, idx, ptr) ((SSL_COMP *)OPENSSL_sk_set(ossl_check_SSL_COMP_sk_type(sk), (idx), ossl_check_SSL_COMP_type(ptr))) +#define sk_SSL_COMP_find(sk, ptr) OPENSSL_sk_find(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) +#define sk_SSL_COMP_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) +#define sk_SSL_COMP_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr), pnum) +#define sk_SSL_COMP_sort(sk) OPENSSL_sk_sort(ossl_check_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_dup(sk) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_dup(ossl_check_const_SSL_COMP_sk_type(sk))) +#define sk_SSL_COMP_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_deep_copy(ossl_check_const_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_copyfunc_type(copyfunc), ossl_check_SSL_COMP_freefunc_type(freefunc))) +#define sk_SSL_COMP_set_cmp_func(sk, cmp) ((sk_SSL_COMP_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_compfunc_type(cmp))) + + + +# ifdef __cplusplus +} +# endif +#endif diff --git a/deps/openssl/config/archs/linux-armv4/asm_avx2/include/openssl/conf.h b/deps/openssl/config/archs/linux-armv4/asm_avx2/include/openssl/conf.h index 44989929f6c84a..38576290bf641b 100644 --- a/deps/openssl/config/archs/linux-armv4/asm_avx2/include/openssl/conf.h +++ b/deps/openssl/config/archs/linux-armv4/asm_avx2/include/openssl/conf.h @@ -27,6 +27,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -65,7 +68,7 @@ SKM_DEFINE_STACK_OF_INTERNAL(CONF_VALUE, CONF_VALUE, CONF_VALUE) #define sk_CONF_VALUE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(CONF_VALUE) *)OPENSSL_sk_deep_copy(ossl_check_const_CONF_VALUE_sk_type(sk), ossl_check_CONF_VALUE_copyfunc_type(copyfunc), ossl_check_CONF_VALUE_freefunc_type(freefunc))) #define sk_CONF_VALUE_set_cmp_func(sk, cmp) ((sk_CONF_VALUE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_CONF_VALUE_sk_type(sk), ossl_check_CONF_VALUE_compfunc_type(cmp))) DEFINE_LHASH_OF_INTERNAL(CONF_VALUE); -#define lh_CONF_VALUE_new(hfn, cmp) ((LHASH_OF(CONF_VALUE) *)OPENSSL_LH_new(ossl_check_CONF_VALUE_lh_hashfunc_type(hfn), ossl_check_CONF_VALUE_lh_compfunc_type(cmp))) +#define lh_CONF_VALUE_new(hfn, cmp) ((LHASH_OF(CONF_VALUE) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new(ossl_check_CONF_VALUE_lh_hashfunc_type(hfn), ossl_check_CONF_VALUE_lh_compfunc_type(cmp)), lh_CONF_VALUE_hash_thunk, lh_CONF_VALUE_comp_thunk, lh_CONF_VALUE_doall_thunk, lh_CONF_VALUE_doall_arg_thunk)) #define lh_CONF_VALUE_free(lh) OPENSSL_LH_free(ossl_check_CONF_VALUE_lh_type(lh)) #define lh_CONF_VALUE_flush(lh) OPENSSL_LH_flush(ossl_check_CONF_VALUE_lh_type(lh)) #define lh_CONF_VALUE_insert(lh, ptr) ((CONF_VALUE *)OPENSSL_LH_insert(ossl_check_CONF_VALUE_lh_type(lh), ossl_check_CONF_VALUE_lh_plain_type(ptr))) diff --git a/deps/openssl/config/archs/linux-armv4/asm_avx2/include/openssl/configuration.h b/deps/openssl/config/archs/linux-armv4/asm_avx2/include/openssl/configuration.h index 89c3cef5ac5f3c..efd5cb68698482 100644 --- a/deps/openssl/config/archs/linux-armv4/asm_avx2/include/openssl/configuration.h +++ b/deps/openssl/config/archs/linux-armv4/asm_avx2/include/openssl/configuration.h @@ -27,7 +27,7 @@ extern "C" { * OpenSSL was configured with the following options: */ -# define OPENSSL_CONFIGURED_API 30000 +# define OPENSSL_CONFIGURED_API 30500 # ifndef OPENSSL_RAND_SEED_OS # define OPENSSL_RAND_SEED_OS # endif @@ -40,6 +40,12 @@ extern "C" { # ifndef OPENSSL_NO_ASAN # define OPENSSL_NO_ASAN # endif +# ifndef OPENSSL_NO_BROTLI +# define OPENSSL_NO_BROTLI +# endif +# ifndef OPENSSL_NO_BROTLI_DYNAMIC +# define OPENSSL_NO_BROTLI_DYNAMIC +# endif # ifndef OPENSSL_NO_COMP # define OPENSSL_NO_COMP # endif @@ -49,6 +55,9 @@ extern "C" { # ifndef OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE # define OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE # endif +# ifndef OPENSSL_NO_DEMOS +# define OPENSSL_NO_DEMOS +# endif # ifndef OPENSSL_NO_DEVCRYPTOENG # define OPENSSL_NO_DEVCRYPTOENG # endif @@ -61,12 +70,24 @@ extern "C" { # ifndef OPENSSL_NO_EXTERNAL_TESTS # define OPENSSL_NO_EXTERNAL_TESTS # endif +# ifndef OPENSSL_NO_FIPS_JITTER +# define OPENSSL_NO_FIPS_JITTER +# endif # ifndef OPENSSL_NO_FUZZ_AFL # define OPENSSL_NO_FUZZ_AFL # endif # ifndef OPENSSL_NO_FUZZ_LIBFUZZER # define OPENSSL_NO_FUZZ_LIBFUZZER # endif +# ifndef OPENSSL_NO_H3DEMO +# define OPENSSL_NO_H3DEMO +# endif +# ifndef OPENSSL_NO_HQINTEROP +# define OPENSSL_NO_HQINTEROP +# endif +# ifndef OPENSSL_NO_JITTER +# define OPENSSL_NO_JITTER +# endif # ifndef OPENSSL_NO_KTLS # define OPENSSL_NO_KTLS # endif @@ -79,6 +100,9 @@ extern "C" { # ifndef OPENSSL_NO_MSAN # define OPENSSL_NO_MSAN # endif +# ifndef OPENSSL_NO_PIE +# define OPENSSL_NO_PIE +# endif # ifndef OPENSSL_NO_RC5 # define OPENSSL_NO_RC5 # endif @@ -91,6 +115,12 @@ extern "C" { # ifndef OPENSSL_NO_SSL3_METHOD # define OPENSSL_NO_SSL3_METHOD # endif +# ifndef OPENSSL_NO_SSLKEYLOG +# define OPENSSL_NO_SSLKEYLOG +# endif +# ifndef OPENSSL_NO_TFO +# define OPENSSL_NO_TFO +# endif # ifndef OPENSSL_NO_TRACE # define OPENSSL_NO_TRACE # endif @@ -106,6 +136,21 @@ extern "C" { # ifndef OPENSSL_NO_WEAK_SSL_CIPHERS # define OPENSSL_NO_WEAK_SSL_CIPHERS # endif +# ifndef OPENSSL_NO_WINSTORE +# define OPENSSL_NO_WINSTORE +# endif +# ifndef OPENSSL_NO_ZLIB +# define OPENSSL_NO_ZLIB +# endif +# ifndef OPENSSL_NO_ZLIB_DYNAMIC +# define OPENSSL_NO_ZLIB_DYNAMIC +# endif +# ifndef OPENSSL_NO_ZSTD +# define OPENSSL_NO_ZSTD +# endif +# ifndef OPENSSL_NO_ZSTD_DYNAMIC +# define OPENSSL_NO_ZSTD_DYNAMIC +# endif # ifndef OPENSSL_NO_DYNAMIC_ENGINE # define OPENSSL_NO_DYNAMIC_ENGINE # endif @@ -127,6 +172,12 @@ extern "C" { # define RC4_INT unsigned char +# if defined(OPENSSL_NO_COMP) || (defined(OPENSSL_NO_BROTLI) && defined(OPENSSL_NO_ZSTD) && defined(OPENSSL_NO_ZLIB)) +# define OPENSSL_NO_COMP_ALG +# else +# undef OPENSSL_NO_COMP_ALG +# endif + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/linux-armv4/asm_avx2/include/openssl/core_names.h b/deps/openssl/config/archs/linux-armv4/asm_avx2/include/openssl/core_names.h new file mode 100644 index 00000000000000..e93e79a52bc910 --- /dev/null +++ b/deps/openssl/config/archs/linux-armv4/asm_avx2/include/openssl/core_names.h @@ -0,0 +1,575 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from include/openssl/core_names.h.in + * + * Copyright 2019-2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + +#ifndef OPENSSL_CORE_NAMES_H +# define OPENSSL_CORE_NAMES_H +# pragma once + +# ifdef __cplusplus +extern "C" { +# endif + +/* OSSL_CIPHER_PARAM_CTS_MODE Values */ +# define OSSL_CIPHER_CTS_MODE_CS1 "CS1" +# define OSSL_CIPHER_CTS_MODE_CS2 "CS2" +# define OSSL_CIPHER_CTS_MODE_CS3 "CS3" + +/* Known CIPHER names (not a complete list) */ +# define OSSL_CIPHER_NAME_AES_128_GCM_SIV "AES-128-GCM-SIV" +# define OSSL_CIPHER_NAME_AES_192_GCM_SIV "AES-192-GCM-SIV" +# define OSSL_CIPHER_NAME_AES_256_GCM_SIV "AES-256-GCM-SIV" + +/* Known DIGEST names (not a complete list) */ +# define OSSL_DIGEST_NAME_MD5 "MD5" +# define OSSL_DIGEST_NAME_MD5_SHA1 "MD5-SHA1" +# define OSSL_DIGEST_NAME_SHA1 "SHA1" +# define OSSL_DIGEST_NAME_SHA2_224 "SHA2-224" +# define OSSL_DIGEST_NAME_SHA2_256 "SHA2-256" +# define OSSL_DIGEST_NAME_SHA2_256_192 "SHA2-256/192" +# define OSSL_DIGEST_NAME_SHA2_384 "SHA2-384" +# define OSSL_DIGEST_NAME_SHA2_512 "SHA2-512" +# define OSSL_DIGEST_NAME_SHA2_512_224 "SHA2-512/224" +# define OSSL_DIGEST_NAME_SHA2_512_256 "SHA2-512/256" +# define OSSL_DIGEST_NAME_MD2 "MD2" +# define OSSL_DIGEST_NAME_MD4 "MD4" +# define OSSL_DIGEST_NAME_MDC2 "MDC2" +# define OSSL_DIGEST_NAME_RIPEMD160 "RIPEMD160" +# define OSSL_DIGEST_NAME_SHA3_224 "SHA3-224" +# define OSSL_DIGEST_NAME_SHA3_256 "SHA3-256" +# define OSSL_DIGEST_NAME_SHA3_384 "SHA3-384" +# define OSSL_DIGEST_NAME_SHA3_512 "SHA3-512" +# define OSSL_DIGEST_NAME_KECCAK_KMAC128 "KECCAK-KMAC-128" +# define OSSL_DIGEST_NAME_KECCAK_KMAC256 "KECCAK-KMAC-256" +# define OSSL_DIGEST_NAME_SM3 "SM3" + +/* Known MAC names */ +# define OSSL_MAC_NAME_BLAKE2BMAC "BLAKE2BMAC" +# define OSSL_MAC_NAME_BLAKE2SMAC "BLAKE2SMAC" +# define OSSL_MAC_NAME_CMAC "CMAC" +# define OSSL_MAC_NAME_GMAC "GMAC" +# define OSSL_MAC_NAME_HMAC "HMAC" +# define OSSL_MAC_NAME_KMAC128 "KMAC128" +# define OSSL_MAC_NAME_KMAC256 "KMAC256" +# define OSSL_MAC_NAME_POLY1305 "POLY1305" +# define OSSL_MAC_NAME_SIPHASH "SIPHASH" + +/* Known KDF names */ +# define OSSL_KDF_NAME_HKDF "HKDF" +# define OSSL_KDF_NAME_TLS1_3_KDF "TLS13-KDF" +# define OSSL_KDF_NAME_PBKDF1 "PBKDF1" +# define OSSL_KDF_NAME_PBKDF2 "PBKDF2" +# define OSSL_KDF_NAME_SCRYPT "SCRYPT" +# define OSSL_KDF_NAME_SSHKDF "SSHKDF" +# define OSSL_KDF_NAME_SSKDF "SSKDF" +# define OSSL_KDF_NAME_TLS1_PRF "TLS1-PRF" +# define OSSL_KDF_NAME_X942KDF_ASN1 "X942KDF-ASN1" +# define OSSL_KDF_NAME_X942KDF_CONCAT "X942KDF-CONCAT" +# define OSSL_KDF_NAME_X963KDF "X963KDF" +# define OSSL_KDF_NAME_KBKDF "KBKDF" +# define OSSL_KDF_NAME_KRB5KDF "KRB5KDF" +# define OSSL_KDF_NAME_HMACDRBGKDF "HMAC-DRBG-KDF" + +/* RSA padding modes */ +# define OSSL_PKEY_RSA_PAD_MODE_NONE "none" +# define OSSL_PKEY_RSA_PAD_MODE_PKCSV15 "pkcs1" +# define OSSL_PKEY_RSA_PAD_MODE_OAEP "oaep" +# define OSSL_PKEY_RSA_PAD_MODE_X931 "x931" +# define OSSL_PKEY_RSA_PAD_MODE_PSS "pss" + +/* RSA pss padding salt length */ +# define OSSL_PKEY_RSA_PSS_SALT_LEN_DIGEST "digest" +# define OSSL_PKEY_RSA_PSS_SALT_LEN_MAX "max" +# define OSSL_PKEY_RSA_PSS_SALT_LEN_AUTO "auto" +# define OSSL_PKEY_RSA_PSS_SALT_LEN_AUTO_DIGEST_MAX "auto-digestmax" + +/* OSSL_PKEY_PARAM_EC_ENCODING values */ +# define OSSL_PKEY_EC_ENCODING_EXPLICIT "explicit" +# define OSSL_PKEY_EC_ENCODING_GROUP "named_curve" + +# define OSSL_PKEY_EC_POINT_CONVERSION_FORMAT_UNCOMPRESSED "uncompressed" +# define OSSL_PKEY_EC_POINT_CONVERSION_FORMAT_COMPRESSED "compressed" +# define OSSL_PKEY_EC_POINT_CONVERSION_FORMAT_HYBRID "hybrid" + +# define OSSL_PKEY_EC_GROUP_CHECK_DEFAULT "default" +# define OSSL_PKEY_EC_GROUP_CHECK_NAMED "named" +# define OSSL_PKEY_EC_GROUP_CHECK_NAMED_NIST "named-nist" + +/* PROV_SKEY well known key types */ +# define OSSL_SKEY_TYPE_GENERIC "GENERIC-SECRET" +# define OSSL_SKEY_TYPE_AES "AES" + +/* OSSL_KEM_PARAM_OPERATION values */ +#define OSSL_KEM_PARAM_OPERATION_RSASVE "RSASVE" +#define OSSL_KEM_PARAM_OPERATION_DHKEM "DHKEM" + +/* Provider configuration variables */ +#define OSSL_PKEY_RETAIN_SEED "pkey_retain_seed" + +/* Parameter name definitions - generated by util/perl/OpenSSL/paramnames.pm */ +# define OSSL_ALG_PARAM_ALGORITHM_ID "algorithm-id" +# define OSSL_ALG_PARAM_ALGORITHM_ID_PARAMS "algorithm-id-params" +# define OSSL_ALG_PARAM_CIPHER "cipher" +# define OSSL_ALG_PARAM_DIGEST "digest" +# define OSSL_ALG_PARAM_ENGINE "engine" +# define OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR "fips-indicator" +# define OSSL_ALG_PARAM_MAC "mac" +# define OSSL_ALG_PARAM_PROPERTIES "properties" +# define OSSL_ASYM_CIPHER_PARAM_DIGEST OSSL_PKEY_PARAM_DIGEST +# define OSSL_ASYM_CIPHER_PARAM_ENGINE OSSL_PKEY_PARAM_ENGINE +# define OSSL_ASYM_CIPHER_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_ASYM_CIPHER_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_ASYM_CIPHER_PARAM_FIPS_RSA_PKCS15_PAD_DISABLED OSSL_PROV_PARAM_RSA_PKCS15_PAD_DISABLED +# define OSSL_ASYM_CIPHER_PARAM_IMPLICIT_REJECTION "implicit-rejection" +# define OSSL_ASYM_CIPHER_PARAM_MGF1_DIGEST OSSL_PKEY_PARAM_MGF1_DIGEST +# define OSSL_ASYM_CIPHER_PARAM_MGF1_DIGEST_PROPS OSSL_PKEY_PARAM_MGF1_PROPERTIES +# define OSSL_ASYM_CIPHER_PARAM_OAEP_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_ASYM_CIPHER_PARAM_OAEP_DIGEST_PROPS "digest-props" +# define OSSL_ASYM_CIPHER_PARAM_OAEP_LABEL "oaep-label" +# define OSSL_ASYM_CIPHER_PARAM_PAD_MODE OSSL_PKEY_PARAM_PAD_MODE +# define OSSL_ASYM_CIPHER_PARAM_PROPERTIES OSSL_PKEY_PARAM_PROPERTIES +# define OSSL_ASYM_CIPHER_PARAM_TLS_CLIENT_VERSION "tls-client-version" +# define OSSL_ASYM_CIPHER_PARAM_TLS_NEGOTIATED_VERSION "tls-negotiated-version" +# define OSSL_CAPABILITY_TLS_GROUP_ALG "tls-group-alg" +# define OSSL_CAPABILITY_TLS_GROUP_ID "tls-group-id" +# define OSSL_CAPABILITY_TLS_GROUP_IS_KEM "tls-group-is-kem" +# define OSSL_CAPABILITY_TLS_GROUP_MAX_DTLS "tls-max-dtls" +# define OSSL_CAPABILITY_TLS_GROUP_MAX_TLS "tls-max-tls" +# define OSSL_CAPABILITY_TLS_GROUP_MIN_DTLS "tls-min-dtls" +# define OSSL_CAPABILITY_TLS_GROUP_MIN_TLS "tls-min-tls" +# define OSSL_CAPABILITY_TLS_GROUP_NAME "tls-group-name" +# define OSSL_CAPABILITY_TLS_GROUP_NAME_INTERNAL "tls-group-name-internal" +# define OSSL_CAPABILITY_TLS_GROUP_SECURITY_BITS "tls-group-sec-bits" +# define OSSL_CAPABILITY_TLS_SIGALG_CODE_POINT "tls-sigalg-code-point" +# define OSSL_CAPABILITY_TLS_SIGALG_HASH_NAME "tls-sigalg-hash-name" +# define OSSL_CAPABILITY_TLS_SIGALG_HASH_OID "tls-sigalg-hash-oid" +# define OSSL_CAPABILITY_TLS_SIGALG_IANA_NAME "tls-sigalg-iana-name" +# define OSSL_CAPABILITY_TLS_SIGALG_KEYTYPE "tls-sigalg-keytype" +# define OSSL_CAPABILITY_TLS_SIGALG_KEYTYPE_OID "tls-sigalg-keytype-oid" +# define OSSL_CAPABILITY_TLS_SIGALG_MAX_DTLS "tls-max-dtls" +# define OSSL_CAPABILITY_TLS_SIGALG_MAX_TLS "tls-max-tls" +# define OSSL_CAPABILITY_TLS_SIGALG_MIN_DTLS "tls-min-dtls" +# define OSSL_CAPABILITY_TLS_SIGALG_MIN_TLS "tls-min-tls" +# define OSSL_CAPABILITY_TLS_SIGALG_NAME "tls-sigalg-name" +# define OSSL_CAPABILITY_TLS_SIGALG_OID "tls-sigalg-oid" +# define OSSL_CAPABILITY_TLS_SIGALG_SECURITY_BITS "tls-sigalg-sec-bits" +# define OSSL_CAPABILITY_TLS_SIGALG_SIG_NAME "tls-sigalg-sig-name" +# define OSSL_CAPABILITY_TLS_SIGALG_SIG_OID "tls-sigalg-sig-oid" +# define OSSL_CIPHER_PARAM_AEAD "aead" +# define OSSL_CIPHER_PARAM_AEAD_IVLEN OSSL_CIPHER_PARAM_IVLEN +# define OSSL_CIPHER_PARAM_AEAD_IV_GENERATED "iv-generated" +# define OSSL_CIPHER_PARAM_AEAD_MAC_KEY "mackey" +# define OSSL_CIPHER_PARAM_AEAD_TAG "tag" +# define OSSL_CIPHER_PARAM_AEAD_TAGLEN "taglen" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_AAD "tlsaad" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_AAD_PAD "tlsaadpad" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_GET_IV_GEN "tlsivgen" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_IV_FIXED "tlsivfixed" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_SET_IV_INV "tlsivinv" +# define OSSL_CIPHER_PARAM_ALGORITHM_ID OSSL_ALG_PARAM_ALGORITHM_ID +# define OSSL_CIPHER_PARAM_ALGORITHM_ID_PARAMS OSSL_ALG_PARAM_ALGORITHM_ID_PARAMS +# define OSSL_CIPHER_PARAM_ALGORITHM_ID_PARAMS_OLD "alg_id_param" +# define OSSL_CIPHER_PARAM_BLOCK_SIZE "blocksize" +# define OSSL_CIPHER_PARAM_CTS "cts" +# define OSSL_CIPHER_PARAM_CTS_MODE "cts_mode" +# define OSSL_CIPHER_PARAM_CUSTOM_IV "custom-iv" +# define OSSL_CIPHER_PARAM_DECRYPT_ONLY "decrypt-only" +# define OSSL_CIPHER_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_CIPHER_PARAM_FIPS_ENCRYPT_CHECK "encrypt-check" +# define OSSL_CIPHER_PARAM_HAS_RAND_KEY "has-randkey" +# define OSSL_CIPHER_PARAM_IV "iv" +# define OSSL_CIPHER_PARAM_IVLEN "ivlen" +# define OSSL_CIPHER_PARAM_KEYLEN "keylen" +# define OSSL_CIPHER_PARAM_MODE "mode" +# define OSSL_CIPHER_PARAM_NUM "num" +# define OSSL_CIPHER_PARAM_PADDING "padding" +# define OSSL_CIPHER_PARAM_PIPELINE_AEAD_TAG "pipeline-tag" +# define OSSL_CIPHER_PARAM_RANDOM_KEY "randkey" +# define OSSL_CIPHER_PARAM_RC2_KEYBITS "keybits" +# define OSSL_CIPHER_PARAM_ROUNDS "rounds" +# define OSSL_CIPHER_PARAM_SPEED "speed" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK "tls-multi" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD "tls1multi_aad" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD_PACKLEN "tls1multi_aadpacklen" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC "tls1multi_enc" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_IN "tls1multi_encin" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_LEN "tls1multi_enclen" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_INTERLEAVE "tls1multi_interleave" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_BUFSIZE "tls1multi_maxbufsz" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_SEND_FRAGMENT "tls1multi_maxsndfrag" +# define OSSL_CIPHER_PARAM_TLS_MAC "tls-mac" +# define OSSL_CIPHER_PARAM_TLS_MAC_SIZE "tls-mac-size" +# define OSSL_CIPHER_PARAM_TLS_VERSION "tls-version" +# define OSSL_CIPHER_PARAM_UPDATED_IV "updated-iv" +# define OSSL_CIPHER_PARAM_USE_BITS "use-bits" +# define OSSL_CIPHER_PARAM_XTS_STANDARD "xts_standard" +# define OSSL_DECODER_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_DIGEST_PARAM_ALGID_ABSENT "algid-absent" +# define OSSL_DIGEST_PARAM_BLOCK_SIZE "blocksize" +# define OSSL_DIGEST_PARAM_MICALG "micalg" +# define OSSL_DIGEST_PARAM_PAD_TYPE "pad-type" +# define OSSL_DIGEST_PARAM_SIZE "size" +# define OSSL_DIGEST_PARAM_SSL3_MS "ssl3-ms" +# define OSSL_DIGEST_PARAM_XOF "xof" +# define OSSL_DIGEST_PARAM_XOFLEN "xoflen" +# define OSSL_DRBG_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_DRBG_PARAM_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_DRBG_PARAM_ENTROPY_REQUIRED "entropy_required" +# define OSSL_DRBG_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_DRBG_PARAM_FIPS_DIGEST_CHECK OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK +# define OSSL_DRBG_PARAM_MAC OSSL_ALG_PARAM_MAC +# define OSSL_DRBG_PARAM_MAX_ADINLEN "max_adinlen" +# define OSSL_DRBG_PARAM_MAX_ENTROPYLEN "max_entropylen" +# define OSSL_DRBG_PARAM_MAX_LENGTH "maxium_length" +# define OSSL_DRBG_PARAM_MAX_NONCELEN "max_noncelen" +# define OSSL_DRBG_PARAM_MAX_PERSLEN "max_perslen" +# define OSSL_DRBG_PARAM_MIN_ENTROPYLEN "min_entropylen" +# define OSSL_DRBG_PARAM_MIN_LENGTH "minium_length" +# define OSSL_DRBG_PARAM_MIN_NONCELEN "min_noncelen" +# define OSSL_DRBG_PARAM_PREDICTION_RESISTANCE "prediction_resistance" +# define OSSL_DRBG_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_DRBG_PARAM_RANDOM_DATA "random_data" +# define OSSL_DRBG_PARAM_RESEED_COUNTER "reseed_counter" +# define OSSL_DRBG_PARAM_RESEED_REQUESTS "reseed_requests" +# define OSSL_DRBG_PARAM_RESEED_TIME "reseed_time" +# define OSSL_DRBG_PARAM_RESEED_TIME_INTERVAL "reseed_time_interval" +# define OSSL_DRBG_PARAM_SIZE "size" +# define OSSL_DRBG_PARAM_USE_DF "use_derivation_function" +# define OSSL_ENCODER_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_ENCODER_PARAM_ENCRYPT_LEVEL "encrypt-level" +# define OSSL_ENCODER_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_ENCODER_PARAM_SAVE_PARAMETERS "save-parameters" +# define OSSL_EXCHANGE_PARAM_EC_ECDH_COFACTOR_MODE "ecdh-cofactor-mode" +# define OSSL_EXCHANGE_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_EXCHANGE_PARAM_FIPS_DIGEST_CHECK OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK +# define OSSL_EXCHANGE_PARAM_FIPS_ECDH_COFACTOR_CHECK OSSL_PROV_PARAM_ECDH_COFACTOR_CHECK +# define OSSL_EXCHANGE_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_EXCHANGE_PARAM_KDF_DIGEST "kdf-digest" +# define OSSL_EXCHANGE_PARAM_KDF_DIGEST_PROPS "kdf-digest-props" +# define OSSL_EXCHANGE_PARAM_KDF_OUTLEN "kdf-outlen" +# define OSSL_EXCHANGE_PARAM_KDF_TYPE "kdf-type" +# define OSSL_EXCHANGE_PARAM_KDF_UKM "kdf-ukm" +# define OSSL_EXCHANGE_PARAM_PAD "pad" +# define OSSL_GEN_PARAM_ITERATION "iteration" +# define OSSL_GEN_PARAM_POTENTIAL "potential" +# define OSSL_KDF_PARAM_ARGON2_AD "ad" +# define OSSL_KDF_PARAM_ARGON2_LANES "lanes" +# define OSSL_KDF_PARAM_ARGON2_MEMCOST "memcost" +# define OSSL_KDF_PARAM_ARGON2_VERSION "version" +# define OSSL_KDF_PARAM_CEK_ALG "cekalg" +# define OSSL_KDF_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_KDF_PARAM_CONSTANT "constant" +# define OSSL_KDF_PARAM_DATA "data" +# define OSSL_KDF_PARAM_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_KDF_PARAM_EARLY_CLEAN "early_clean" +# define OSSL_KDF_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_KDF_PARAM_FIPS_DIGEST_CHECK OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK +# define OSSL_KDF_PARAM_FIPS_EMS_CHECK "ems_check" +# define OSSL_KDF_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_KDF_PARAM_HMACDRBG_ENTROPY "entropy" +# define OSSL_KDF_PARAM_HMACDRBG_NONCE "nonce" +# define OSSL_KDF_PARAM_INFO "info" +# define OSSL_KDF_PARAM_ITER "iter" +# define OSSL_KDF_PARAM_KBKDF_R "r" +# define OSSL_KDF_PARAM_KBKDF_USE_L "use-l" +# define OSSL_KDF_PARAM_KBKDF_USE_SEPARATOR "use-separator" +# define OSSL_KDF_PARAM_KEY "key" +# define OSSL_KDF_PARAM_LABEL "label" +# define OSSL_KDF_PARAM_MAC OSSL_ALG_PARAM_MAC +# define OSSL_KDF_PARAM_MAC_SIZE "maclen" +# define OSSL_KDF_PARAM_MODE "mode" +# define OSSL_KDF_PARAM_PASSWORD "pass" +# define OSSL_KDF_PARAM_PKCS12_ID "id" +# define OSSL_KDF_PARAM_PKCS5 "pkcs5" +# define OSSL_KDF_PARAM_PREFIX "prefix" +# define OSSL_KDF_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_KDF_PARAM_SALT "salt" +# define OSSL_KDF_PARAM_SCRYPT_MAXMEM "maxmem_bytes" +# define OSSL_KDF_PARAM_SCRYPT_N "n" +# define OSSL_KDF_PARAM_SCRYPT_P "p" +# define OSSL_KDF_PARAM_SCRYPT_R "r" +# define OSSL_KDF_PARAM_SECRET "secret" +# define OSSL_KDF_PARAM_SEED "seed" +# define OSSL_KDF_PARAM_SIZE "size" +# define OSSL_KDF_PARAM_SSHKDF_SESSION_ID "session_id" +# define OSSL_KDF_PARAM_SSHKDF_TYPE "type" +# define OSSL_KDF_PARAM_SSHKDF_XCGHASH "xcghash" +# define OSSL_KDF_PARAM_THREADS "threads" +# define OSSL_KDF_PARAM_UKM "ukm" +# define OSSL_KDF_PARAM_X942_ACVPINFO "acvp-info" +# define OSSL_KDF_PARAM_X942_PARTYUINFO "partyu-info" +# define OSSL_KDF_PARAM_X942_PARTYVINFO "partyv-info" +# define OSSL_KDF_PARAM_X942_SUPP_PRIVINFO "supp-privinfo" +# define OSSL_KDF_PARAM_X942_SUPP_PUBINFO "supp-pubinfo" +# define OSSL_KDF_PARAM_X942_USE_KEYBITS "use-keybits" +# define OSSL_KEM_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_KEM_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_KEM_PARAM_IKME "ikme" +# define OSSL_KEM_PARAM_OPERATION "operation" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_BLOCK_PADDING "block_padding" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_HS_PADDING "hs_padding" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_MAX_EARLY_DATA "max_early_data" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_MAX_FRAG_LEN "max_frag_len" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_MODE "mode" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_OPTIONS "options" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_READ_AHEAD "read_ahead" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_STREAM_MAC "stream_mac" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_TLSTREE "tlstree" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_USE_ETM "use_etm" +# define OSSL_LIBSSL_RECORD_LAYER_READ_BUFFER_LEN "read_buffer_len" +# define OSSL_MAC_PARAM_BLOCK_SIZE "block-size" +# define OSSL_MAC_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_MAC_PARAM_CUSTOM "custom" +# define OSSL_MAC_PARAM_C_ROUNDS "c-rounds" +# define OSSL_MAC_PARAM_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_MAC_PARAM_DIGEST_NOINIT "digest-noinit" +# define OSSL_MAC_PARAM_DIGEST_ONESHOT "digest-oneshot" +# define OSSL_MAC_PARAM_D_ROUNDS "d-rounds" +# define OSSL_MAC_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_MAC_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_MAC_PARAM_FIPS_NO_SHORT_MAC OSSL_PROV_PARAM_NO_SHORT_MAC +# define OSSL_MAC_PARAM_IV "iv" +# define OSSL_MAC_PARAM_KEY "key" +# define OSSL_MAC_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_MAC_PARAM_SALT "salt" +# define OSSL_MAC_PARAM_SIZE "size" +# define OSSL_MAC_PARAM_TLS_DATA_SIZE "tls-data-size" +# define OSSL_MAC_PARAM_XOF "xof" +# define OSSL_OBJECT_PARAM_DATA "data" +# define OSSL_OBJECT_PARAM_DATA_STRUCTURE "data-structure" +# define OSSL_OBJECT_PARAM_DATA_TYPE "data-type" +# define OSSL_OBJECT_PARAM_DESC "desc" +# define OSSL_OBJECT_PARAM_INPUT_TYPE "input-type" +# define OSSL_OBJECT_PARAM_REFERENCE "reference" +# define OSSL_OBJECT_PARAM_TYPE "type" +# define OSSL_PASSPHRASE_PARAM_INFO "info" +# define OSSL_PKEY_PARAM_ALGORITHM_ID OSSL_ALG_PARAM_ALGORITHM_ID +# define OSSL_PKEY_PARAM_ALGORITHM_ID_PARAMS OSSL_ALG_PARAM_ALGORITHM_ID_PARAMS +# define OSSL_PKEY_PARAM_BITS "bits" +# define OSSL_PKEY_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_PKEY_PARAM_DEFAULT_DIGEST "default-digest" +# define OSSL_PKEY_PARAM_DHKEM_IKM "dhkem-ikm" +# define OSSL_PKEY_PARAM_DH_GENERATOR "safeprime-generator" +# define OSSL_PKEY_PARAM_DH_PRIV_LEN "priv_len" +# define OSSL_PKEY_PARAM_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_PKEY_PARAM_DIGEST_SIZE "digest-size" +# define OSSL_PKEY_PARAM_DIST_ID "distid" +# define OSSL_PKEY_PARAM_EC_A "a" +# define OSSL_PKEY_PARAM_EC_B "b" +# define OSSL_PKEY_PARAM_EC_CHAR2_M "m" +# define OSSL_PKEY_PARAM_EC_CHAR2_PP_K1 "k1" +# define OSSL_PKEY_PARAM_EC_CHAR2_PP_K2 "k2" +# define OSSL_PKEY_PARAM_EC_CHAR2_PP_K3 "k3" +# define OSSL_PKEY_PARAM_EC_CHAR2_TP_BASIS "tp" +# define OSSL_PKEY_PARAM_EC_CHAR2_TYPE "basis-type" +# define OSSL_PKEY_PARAM_EC_COFACTOR "cofactor" +# define OSSL_PKEY_PARAM_EC_DECODED_FROM_EXPLICIT_PARAMS "decoded-from-explicit" +# define OSSL_PKEY_PARAM_EC_ENCODING "encoding" +# define OSSL_PKEY_PARAM_EC_FIELD_TYPE "field-type" +# define OSSL_PKEY_PARAM_EC_GENERATOR "generator" +# define OSSL_PKEY_PARAM_EC_GROUP_CHECK_TYPE "group-check" +# define OSSL_PKEY_PARAM_EC_INCLUDE_PUBLIC "include-public" +# define OSSL_PKEY_PARAM_EC_ORDER "order" +# define OSSL_PKEY_PARAM_EC_P "p" +# define OSSL_PKEY_PARAM_EC_POINT_CONVERSION_FORMAT "point-format" +# define OSSL_PKEY_PARAM_EC_PUB_X "qx" +# define OSSL_PKEY_PARAM_EC_PUB_Y "qy" +# define OSSL_PKEY_PARAM_EC_SEED "seed" +# define OSSL_PKEY_PARAM_ENCODED_PUBLIC_KEY "encoded-pub-key" +# define OSSL_PKEY_PARAM_ENGINE OSSL_ALG_PARAM_ENGINE +# define OSSL_PKEY_PARAM_FFC_COFACTOR "j" +# define OSSL_PKEY_PARAM_FFC_DIGEST OSSL_PKEY_PARAM_DIGEST +# define OSSL_PKEY_PARAM_FFC_DIGEST_PROPS OSSL_PKEY_PARAM_PROPERTIES +# define OSSL_PKEY_PARAM_FFC_G "g" +# define OSSL_PKEY_PARAM_FFC_GINDEX "gindex" +# define OSSL_PKEY_PARAM_FFC_H "hindex" +# define OSSL_PKEY_PARAM_FFC_P "p" +# define OSSL_PKEY_PARAM_FFC_PBITS "pbits" +# define OSSL_PKEY_PARAM_FFC_PCOUNTER "pcounter" +# define OSSL_PKEY_PARAM_FFC_Q "q" +# define OSSL_PKEY_PARAM_FFC_QBITS "qbits" +# define OSSL_PKEY_PARAM_FFC_SEED "seed" +# define OSSL_PKEY_PARAM_FFC_TYPE "type" +# define OSSL_PKEY_PARAM_FFC_VALIDATE_G "validate-g" +# define OSSL_PKEY_PARAM_FFC_VALIDATE_LEGACY "validate-legacy" +# define OSSL_PKEY_PARAM_FFC_VALIDATE_PQ "validate-pq" +# define OSSL_PKEY_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK "digest-check" +# define OSSL_PKEY_PARAM_FIPS_KEY_CHECK "key-check" +# define OSSL_PKEY_PARAM_FIPS_SIGN_CHECK "sign-check" +# define OSSL_PKEY_PARAM_GROUP_NAME "group" +# define OSSL_PKEY_PARAM_IMPLICIT_REJECTION "implicit-rejection" +# define OSSL_PKEY_PARAM_MANDATORY_DIGEST "mandatory-digest" +# define OSSL_PKEY_PARAM_MASKGENFUNC "mgf" +# define OSSL_PKEY_PARAM_MAX_SIZE "max-size" +# define OSSL_PKEY_PARAM_MGF1_DIGEST "mgf1-digest" +# define OSSL_PKEY_PARAM_MGF1_PROPERTIES "mgf1-properties" +# define OSSL_PKEY_PARAM_ML_DSA_INPUT_FORMATS "ml-dsa.input_formats" +# define OSSL_PKEY_PARAM_ML_DSA_OUTPUT_FORMATS "ml-dsa.output_formats" +# define OSSL_PKEY_PARAM_ML_DSA_PREFER_SEED "ml-dsa.prefer_seed" +# define OSSL_PKEY_PARAM_ML_DSA_RETAIN_SEED "ml-dsa.retain_seed" +# define OSSL_PKEY_PARAM_ML_DSA_SEED "seed" +# define OSSL_PKEY_PARAM_ML_KEM_IMPORT_PCT_TYPE "ml-kem.import_pct_type" +# define OSSL_PKEY_PARAM_ML_KEM_INPUT_FORMATS "ml-kem.input_formats" +# define OSSL_PKEY_PARAM_ML_KEM_OUTPUT_FORMATS "ml-kem.output_formats" +# define OSSL_PKEY_PARAM_ML_KEM_PREFER_SEED "ml-kem.prefer_seed" +# define OSSL_PKEY_PARAM_ML_KEM_RETAIN_SEED "ml-kem.retain_seed" +# define OSSL_PKEY_PARAM_ML_KEM_SEED "seed" +# define OSSL_PKEY_PARAM_PAD_MODE "pad-mode" +# define OSSL_PKEY_PARAM_PRIV_KEY "priv" +# define OSSL_PKEY_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_PKEY_PARAM_PUB_KEY "pub" +# define OSSL_PKEY_PARAM_RSA_BITS OSSL_PKEY_PARAM_BITS +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT "rsa-coefficient" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT1 "rsa-coefficient1" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT2 "rsa-coefficient2" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT3 "rsa-coefficient3" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT4 "rsa-coefficient4" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT5 "rsa-coefficient5" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT6 "rsa-coefficient6" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT7 "rsa-coefficient7" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT8 "rsa-coefficient8" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT9 "rsa-coefficient9" +# define OSSL_PKEY_PARAM_RSA_D "d" +# define OSSL_PKEY_PARAM_RSA_DERIVE_FROM_PQ "rsa-derive-from-pq" +# define OSSL_PKEY_PARAM_RSA_DIGEST OSSL_PKEY_PARAM_DIGEST +# define OSSL_PKEY_PARAM_RSA_DIGEST_PROPS OSSL_PKEY_PARAM_PROPERTIES +# define OSSL_PKEY_PARAM_RSA_E "e" +# define OSSL_PKEY_PARAM_RSA_EXPONENT "rsa-exponent" +# define OSSL_PKEY_PARAM_RSA_EXPONENT1 "rsa-exponent1" +# define OSSL_PKEY_PARAM_RSA_EXPONENT10 "rsa-exponent10" +# define OSSL_PKEY_PARAM_RSA_EXPONENT2 "rsa-exponent2" +# define OSSL_PKEY_PARAM_RSA_EXPONENT3 "rsa-exponent3" +# define OSSL_PKEY_PARAM_RSA_EXPONENT4 "rsa-exponent4" +# define OSSL_PKEY_PARAM_RSA_EXPONENT5 "rsa-exponent5" +# define OSSL_PKEY_PARAM_RSA_EXPONENT6 "rsa-exponent6" +# define OSSL_PKEY_PARAM_RSA_EXPONENT7 "rsa-exponent7" +# define OSSL_PKEY_PARAM_RSA_EXPONENT8 "rsa-exponent8" +# define OSSL_PKEY_PARAM_RSA_EXPONENT9 "rsa-exponent9" +# define OSSL_PKEY_PARAM_RSA_FACTOR "rsa-factor" +# define OSSL_PKEY_PARAM_RSA_FACTOR1 "rsa-factor1" +# define OSSL_PKEY_PARAM_RSA_FACTOR10 "rsa-factor10" +# define OSSL_PKEY_PARAM_RSA_FACTOR2 "rsa-factor2" +# define OSSL_PKEY_PARAM_RSA_FACTOR3 "rsa-factor3" +# define OSSL_PKEY_PARAM_RSA_FACTOR4 "rsa-factor4" +# define OSSL_PKEY_PARAM_RSA_FACTOR5 "rsa-factor5" +# define OSSL_PKEY_PARAM_RSA_FACTOR6 "rsa-factor6" +# define OSSL_PKEY_PARAM_RSA_FACTOR7 "rsa-factor7" +# define OSSL_PKEY_PARAM_RSA_FACTOR8 "rsa-factor8" +# define OSSL_PKEY_PARAM_RSA_FACTOR9 "rsa-factor9" +# define OSSL_PKEY_PARAM_RSA_MASKGENFUNC OSSL_PKEY_PARAM_MASKGENFUNC +# define OSSL_PKEY_PARAM_RSA_MGF1_DIGEST OSSL_PKEY_PARAM_MGF1_DIGEST +# define OSSL_PKEY_PARAM_RSA_N "n" +# define OSSL_PKEY_PARAM_RSA_PRIMES "primes" +# define OSSL_PKEY_PARAM_RSA_PSS_SALTLEN "saltlen" +# define OSSL_PKEY_PARAM_RSA_TEST_P1 "p1" +# define OSSL_PKEY_PARAM_RSA_TEST_P2 "p2" +# define OSSL_PKEY_PARAM_RSA_TEST_Q1 "q1" +# define OSSL_PKEY_PARAM_RSA_TEST_Q2 "q2" +# define OSSL_PKEY_PARAM_RSA_TEST_XP "xp" +# define OSSL_PKEY_PARAM_RSA_TEST_XP1 "xp1" +# define OSSL_PKEY_PARAM_RSA_TEST_XP2 "xp2" +# define OSSL_PKEY_PARAM_RSA_TEST_XQ "xq" +# define OSSL_PKEY_PARAM_RSA_TEST_XQ1 "xq1" +# define OSSL_PKEY_PARAM_RSA_TEST_XQ2 "xq2" +# define OSSL_PKEY_PARAM_SECURITY_BITS "security-bits" +# define OSSL_PKEY_PARAM_SLH_DSA_SEED "seed" +# define OSSL_PKEY_PARAM_USE_COFACTOR_ECDH OSSL_PKEY_PARAM_USE_COFACTOR_FLAG +# define OSSL_PKEY_PARAM_USE_COFACTOR_FLAG "use-cofactor-flag" +# define OSSL_PROV_PARAM_BUILDINFO "buildinfo" +# define OSSL_PROV_PARAM_CORE_MODULE_FILENAME "module-filename" +# define OSSL_PROV_PARAM_CORE_PROV_NAME "provider-name" +# define OSSL_PROV_PARAM_CORE_VERSION "openssl-version" +# define OSSL_PROV_PARAM_DRBG_TRUNC_DIGEST "drbg-no-trunc-md" +# define OSSL_PROV_PARAM_DSA_SIGN_DISABLED "dsa-sign-disabled" +# define OSSL_PROV_PARAM_ECDH_COFACTOR_CHECK "ecdh-cofactor-check" +# define OSSL_PROV_PARAM_HKDF_DIGEST_CHECK "hkdf-digest-check" +# define OSSL_PROV_PARAM_HKDF_KEY_CHECK "hkdf-key-check" +# define OSSL_PROV_PARAM_HMAC_KEY_CHECK "hmac-key-check" +# define OSSL_PROV_PARAM_KBKDF_KEY_CHECK "kbkdf-key-check" +# define OSSL_PROV_PARAM_KMAC_KEY_CHECK "kmac-key-check" +# define OSSL_PROV_PARAM_NAME "name" +# define OSSL_PROV_PARAM_NO_SHORT_MAC "no-short-mac" +# define OSSL_PROV_PARAM_PBKDF2_LOWER_BOUND_CHECK "pbkdf2-lower-bound-check" +# define OSSL_PROV_PARAM_RSA_PKCS15_PAD_DISABLED "rsa-pkcs15-pad-disabled" +# define OSSL_PROV_PARAM_RSA_PSS_SALTLEN_CHECK "rsa-pss-saltlen-check" +# define OSSL_PROV_PARAM_RSA_SIGN_X931_PAD_DISABLED "rsa-sign-x931-pad-disabled" +# define OSSL_PROV_PARAM_SECURITY_CHECKS "security-checks" +# define OSSL_PROV_PARAM_SELF_TEST_DESC "st-desc" +# define OSSL_PROV_PARAM_SELF_TEST_PHASE "st-phase" +# define OSSL_PROV_PARAM_SELF_TEST_TYPE "st-type" +# define OSSL_PROV_PARAM_SIGNATURE_DIGEST_CHECK "signature-digest-check" +# define OSSL_PROV_PARAM_SSHKDF_DIGEST_CHECK "sshkdf-digest-check" +# define OSSL_PROV_PARAM_SSHKDF_KEY_CHECK "sshkdf-key-check" +# define OSSL_PROV_PARAM_SSKDF_DIGEST_CHECK "sskdf-digest-check" +# define OSSL_PROV_PARAM_SSKDF_KEY_CHECK "sskdf-key-check" +# define OSSL_PROV_PARAM_STATUS "status" +# define OSSL_PROV_PARAM_TDES_ENCRYPT_DISABLED "tdes-encrypt-disabled" +# define OSSL_PROV_PARAM_TLS13_KDF_DIGEST_CHECK "tls13-kdf-digest-check" +# define OSSL_PROV_PARAM_TLS13_KDF_KEY_CHECK "tls13-kdf-key-check" +# define OSSL_PROV_PARAM_TLS1_PRF_DIGEST_CHECK "tls1-prf-digest-check" +# define OSSL_PROV_PARAM_TLS1_PRF_EMS_CHECK "tls1-prf-ems-check" +# define OSSL_PROV_PARAM_TLS1_PRF_KEY_CHECK "tls1-prf-key-check" +# define OSSL_PROV_PARAM_VERSION "version" +# define OSSL_PROV_PARAM_X942KDF_KEY_CHECK "x942kdf-key-check" +# define OSSL_PROV_PARAM_X963KDF_DIGEST_CHECK "x963kdf-digest-check" +# define OSSL_PROV_PARAM_X963KDF_KEY_CHECK "x963kdf-key-check" +# define OSSL_RAND_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_RAND_PARAM_GENERATE "generate" +# define OSSL_RAND_PARAM_MAX_REQUEST "max_request" +# define OSSL_RAND_PARAM_STATE "state" +# define OSSL_RAND_PARAM_STRENGTH "strength" +# define OSSL_RAND_PARAM_TEST_ENTROPY "test_entropy" +# define OSSL_RAND_PARAM_TEST_NONCE "test_nonce" +# define OSSL_SIGNATURE_PARAM_ADD_RANDOM "additional-random" +# define OSSL_SIGNATURE_PARAM_ALGORITHM_ID OSSL_PKEY_PARAM_ALGORITHM_ID +# define OSSL_SIGNATURE_PARAM_ALGORITHM_ID_PARAMS OSSL_PKEY_PARAM_ALGORITHM_ID_PARAMS +# define OSSL_SIGNATURE_PARAM_CONTEXT_STRING "context-string" +# define OSSL_SIGNATURE_PARAM_DETERMINISTIC "deterministic" +# define OSSL_SIGNATURE_PARAM_DIGEST OSSL_PKEY_PARAM_DIGEST +# define OSSL_SIGNATURE_PARAM_DIGEST_SIZE OSSL_PKEY_PARAM_DIGEST_SIZE +# define OSSL_SIGNATURE_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_SIGNATURE_PARAM_FIPS_DIGEST_CHECK OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK +# define OSSL_SIGNATURE_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_SIGNATURE_PARAM_FIPS_RSA_PSS_SALTLEN_CHECK "rsa-pss-saltlen-check" +# define OSSL_SIGNATURE_PARAM_FIPS_SIGN_CHECK OSSL_PKEY_PARAM_FIPS_SIGN_CHECK +# define OSSL_SIGNATURE_PARAM_FIPS_SIGN_X931_PAD_CHECK "sign-x931-pad-check" +# define OSSL_SIGNATURE_PARAM_FIPS_VERIFY_MESSAGE "verify-message" +# define OSSL_SIGNATURE_PARAM_INSTANCE "instance" +# define OSSL_SIGNATURE_PARAM_KAT "kat" +# define OSSL_SIGNATURE_PARAM_MESSAGE_ENCODING "message-encoding" +# define OSSL_SIGNATURE_PARAM_MGF1_DIGEST OSSL_PKEY_PARAM_MGF1_DIGEST +# define OSSL_SIGNATURE_PARAM_MGF1_PROPERTIES OSSL_PKEY_PARAM_MGF1_PROPERTIES +# define OSSL_SIGNATURE_PARAM_MU "mu" +# define OSSL_SIGNATURE_PARAM_NONCE_TYPE "nonce-type" +# define OSSL_SIGNATURE_PARAM_PAD_MODE OSSL_PKEY_PARAM_PAD_MODE +# define OSSL_SIGNATURE_PARAM_PROPERTIES OSSL_PKEY_PARAM_PROPERTIES +# define OSSL_SIGNATURE_PARAM_PSS_SALTLEN "saltlen" +# define OSSL_SIGNATURE_PARAM_SIGNATURE "signature" +# define OSSL_SIGNATURE_PARAM_TEST_ENTROPY "test-entropy" +# define OSSL_SKEY_PARAM_KEY_LENGTH "key-length" +# define OSSL_SKEY_PARAM_RAW_BYTES "raw-bytes" +# define OSSL_STORE_PARAM_ALIAS "alias" +# define OSSL_STORE_PARAM_DIGEST "digest" +# define OSSL_STORE_PARAM_EXPECT "expect" +# define OSSL_STORE_PARAM_FINGERPRINT "fingerprint" +# define OSSL_STORE_PARAM_INPUT_TYPE "input-type" +# define OSSL_STORE_PARAM_ISSUER "name" +# define OSSL_STORE_PARAM_PROPERTIES "properties" +# define OSSL_STORE_PARAM_SERIAL "serial" +# define OSSL_STORE_PARAM_SUBJECT "subject" + +# ifdef __cplusplus +} +# endif + +#endif diff --git a/deps/openssl/config/archs/linux-armv4/asm_avx2/include/openssl/crmf.h b/deps/openssl/config/archs/linux-armv4/asm_avx2/include/openssl/crmf.h index 71b747ed33d239..4bf550fd47daa9 100644 --- a/deps/openssl/config/archs/linux-armv4/asm_avx2/include/openssl/crmf.h +++ b/deps/openssl/config/archs/linux-armv4/asm_avx2/include/openssl/crmf.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/crmf.h.in * - * Copyright 2007-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2007-2025 The OpenSSL Project Authors. All Rights Reserved. * Copyright Nokia 2007-2019 * Copyright Siemens AG 2015-2019 * @@ -26,6 +26,7 @@ # include # include # include /* for GENERAL_NAME etc. */ +# include /* explicit #includes not strictly needed since implied by the above: */ # include @@ -43,9 +44,12 @@ extern "C" { # define OSSL_CRMF_SUBSEQUENTMESSAGE_ENCRCERT 0 # define OSSL_CRMF_SUBSEQUENTMESSAGE_CHALLENGERESP 1 - typedef struct ossl_crmf_encryptedvalue_st OSSL_CRMF_ENCRYPTEDVALUE; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_ENCRYPTEDVALUE) + +typedef struct ossl_crmf_encryptedkey_st OSSL_CRMF_ENCRYPTEDKEY; +DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_ENCRYPTEDKEY) + typedef struct ossl_crmf_msg_st OSSL_CRMF_MSG; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_MSG) DECLARE_ASN1_DUP_FUNCTION(OSSL_CRMF_MSG) @@ -77,6 +81,36 @@ SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CRMF_MSG, OSSL_CRMF_MSG, OSSL_CRMF_MSG) #define sk_OSSL_CRMF_MSG_set_cmp_func(sk, cmp) ((sk_OSSL_CRMF_MSG_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CRMF_MSG_sk_type(sk), ossl_check_OSSL_CRMF_MSG_compfunc_type(cmp))) typedef struct ossl_crmf_attributetypeandvalue_st OSSL_CRMF_ATTRIBUTETYPEANDVALUE; +void OSSL_CRMF_ATTRIBUTETYPEANDVALUE_free(OSSL_CRMF_ATTRIBUTETYPEANDVALUE *v); +DECLARE_ASN1_DUP_FUNCTION(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CRMF_ATTRIBUTETYPEANDVALUE, OSSL_CRMF_ATTRIBUTETYPEANDVALUE, OSSL_CRMF_ATTRIBUTETYPEANDVALUE) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_value(sk, idx) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_value(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), (idx))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_new(cmp) ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_new(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_compfunc_type(cmp))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_new_null() ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_new_null()) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_new_reserve(cmp, n) ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_compfunc_type(cmp), (n))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), (n)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_free(sk) OPENSSL_sk_free(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_delete(sk, i) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_delete(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), (i))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_delete_ptr(sk, ptr) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_pop(sk) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_pop(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_shift(sk) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_shift(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk),ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_freefunc_type(freefunc)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr), (idx)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_set(sk, idx, ptr) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_set(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), (idx), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr), pnum) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_dup(sk) ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_dup(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_copyfunc_type(copyfunc), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_freefunc_type(freefunc))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_set_cmp_func(sk, cmp) ((sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_compfunc_type(cmp))) + + typedef struct ossl_crmf_pbmparameter_st OSSL_CRMF_PBMPARAMETER; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_PBMPARAMETER) typedef struct ossl_crmf_poposigningkey_st OSSL_CRMF_POPOSIGNINGKEY; @@ -118,6 +152,7 @@ typedef struct ossl_crmf_singlepubinfo_st OSSL_CRMF_SINGLEPUBINFO; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_SINGLEPUBINFO) typedef struct ossl_crmf_certtemplate_st OSSL_CRMF_CERTTEMPLATE; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_CERTTEMPLATE) +DECLARE_ASN1_DUP_FUNCTION(OSSL_CRMF_CERTTEMPLATE) typedef STACK_OF(OSSL_CRMF_MSG) OSSL_CRMF_MSGS; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_MSGS) @@ -198,12 +233,14 @@ int OSSL_CRMF_MSGS_verify_popo(const OSSL_CRMF_MSGS *reqs, int rid, int acceptRAVerified, OSSL_LIB_CTX *libctx, const char *propq); OSSL_CRMF_CERTTEMPLATE *OSSL_CRMF_MSG_get0_tmpl(const OSSL_CRMF_MSG *crm); -const ASN1_INTEGER -*OSSL_CRMF_CERTTEMPLATE_get0_serialNumber(const OSSL_CRMF_CERTTEMPLATE *tmpl); +X509_PUBKEY +*OSSL_CRMF_CERTTEMPLATE_get0_publicKey(const OSSL_CRMF_CERTTEMPLATE *tmpl); const X509_NAME *OSSL_CRMF_CERTTEMPLATE_get0_subject(const OSSL_CRMF_CERTTEMPLATE *tmpl); const X509_NAME *OSSL_CRMF_CERTTEMPLATE_get0_issuer(const OSSL_CRMF_CERTTEMPLATE *tmpl); +const ASN1_INTEGER +*OSSL_CRMF_CERTTEMPLATE_get0_serialNumber(const OSSL_CRMF_CERTTEMPLATE *tmpl); X509_EXTENSIONS *OSSL_CRMF_CERTTEMPLATE_get0_extensions(const OSSL_CRMF_CERTTEMPLATE *tmpl); const X509_NAME @@ -215,10 +252,24 @@ int OSSL_CRMF_CERTTEMPLATE_fill(OSSL_CRMF_CERTTEMPLATE *tmpl, const X509_NAME *subject, const X509_NAME *issuer, const ASN1_INTEGER *serial); -X509 -*OSSL_CRMF_ENCRYPTEDVALUE_get1_encCert(const OSSL_CRMF_ENCRYPTEDVALUE *ecert, - OSSL_LIB_CTX *libctx, const char *propq, - EVP_PKEY *pkey); +X509 *OSSL_CRMF_ENCRYPTEDVALUE_get1_encCert(const OSSL_CRMF_ENCRYPTEDVALUE *ecert, + OSSL_LIB_CTX *libctx, const char *propq, + EVP_PKEY *pkey); +X509 *OSSL_CRMF_ENCRYPTEDKEY_get1_encCert(const OSSL_CRMF_ENCRYPTEDKEY *ecert, + OSSL_LIB_CTX *libctx, const char *propq, + EVP_PKEY *pkey, unsigned int flags); +unsigned char +*OSSL_CRMF_ENCRYPTEDVALUE_decrypt(const OSSL_CRMF_ENCRYPTEDVALUE *enc, + OSSL_LIB_CTX *libctx, const char *propq, + EVP_PKEY *pkey, int *outlen); +EVP_PKEY *OSSL_CRMF_ENCRYPTEDKEY_get1_pkey(const OSSL_CRMF_ENCRYPTEDKEY *encryptedKey, + X509_STORE *ts, STACK_OF(X509) *extra, EVP_PKEY *pkey, + X509 *cert, ASN1_OCTET_STRING *secret, + OSSL_LIB_CTX *libctx, const char *propq); +int OSSL_CRMF_MSG_centralkeygen_requested(const OSSL_CRMF_MSG *crm, const X509_REQ *p10cr); +# ifndef OPENSSL_NO_CMS +OSSL_CRMF_ENCRYPTEDKEY *OSSL_CRMF_ENCRYPTEDKEY_init_envdata(CMS_EnvelopedData *envdata); +# endif # ifdef __cplusplus } diff --git a/deps/openssl/config/archs/linux-armv4/asm_avx2/include/openssl/crypto.h b/deps/openssl/config/archs/linux-armv4/asm_avx2/include/openssl/crypto.h index 3f40be6d8c61d5..fd2cfd3e5a9ac4 100644 --- a/deps/openssl/config/archs/linux-armv4/asm_avx2/include/openssl/crypto.h +++ b/deps/openssl/config/archs/linux-armv4/asm_avx2/include/openssl/crypto.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/crypto.h.in * - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2024 The OpenSSL Project Authors. All Rights Reserved. * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved * * Licensed under the Apache License 2.0 (the "License"). You may not use @@ -85,9 +85,15 @@ int CRYPTO_THREAD_unlock(CRYPTO_RWLOCK *lock); void CRYPTO_THREAD_lock_free(CRYPTO_RWLOCK *lock); int CRYPTO_atomic_add(int *val, int amount, int *ret, CRYPTO_RWLOCK *lock); +int CRYPTO_atomic_add64(uint64_t *val, uint64_t op, uint64_t *ret, + CRYPTO_RWLOCK *lock); +int CRYPTO_atomic_and(uint64_t *val, uint64_t op, uint64_t *ret, + CRYPTO_RWLOCK *lock); int CRYPTO_atomic_or(uint64_t *val, uint64_t op, uint64_t *ret, CRYPTO_RWLOCK *lock); int CRYPTO_atomic_load(uint64_t *val, uint64_t *ret, CRYPTO_RWLOCK *lock); +int CRYPTO_atomic_load_int(int *val, int *ret, CRYPTO_RWLOCK *lock); +int CRYPTO_atomic_store(uint64_t *dst, uint64_t val, CRYPTO_RWLOCK *lock); /* No longer needed, so this is a no-op */ #define OPENSSL_malloc_init() while(0) continue @@ -96,6 +102,9 @@ int CRYPTO_atomic_load(uint64_t *val, uint64_t *ret, CRYPTO_RWLOCK *lock); CRYPTO_malloc(num, OPENSSL_FILE, OPENSSL_LINE) # define OPENSSL_zalloc(num) \ CRYPTO_zalloc(num, OPENSSL_FILE, OPENSSL_LINE) +# define OPENSSL_aligned_alloc(num, alignment, freeptr) \ + CRYPTO_aligned_alloc(num, alignment, freeptr, \ + OPENSSL_FILE, OPENSSL_LINE) # define OPENSSL_realloc(addr, num) \ CRYPTO_realloc(addr, num, OPENSSL_FILE, OPENSSL_LINE) # define OPENSSL_clear_realloc(addr, old_num, num) \ @@ -124,6 +133,7 @@ int CRYPTO_atomic_load(uint64_t *val, uint64_t *ret, CRYPTO_RWLOCK *lock); size_t OPENSSL_strlcpy(char *dst, const char *src, size_t siz); size_t OPENSSL_strlcat(char *dst, const char *src, size_t siz); size_t OPENSSL_strnlen(const char *str, size_t maxlen); +int OPENSSL_strtoul(const char *str, char **endptr, int base, unsigned long *num); int OPENSSL_buf2hexstr_ex(char *str, size_t str_n, size_t *strlength, const unsigned char *buf, size_t buflen, const char sep); @@ -160,6 +170,7 @@ const char *OpenSSL_version(int type); # define OPENSSL_FULL_VERSION_STRING 7 # define OPENSSL_MODULES_DIR 8 # define OPENSSL_CPU_INFO 9 +# define OPENSSL_WINCTX 10 const char *OPENSSL_info(int type); /* @@ -174,6 +185,7 @@ const char *OPENSSL_info(int type); # define OPENSSL_INFO_LIST_SEPARATOR 1006 # define OPENSSL_INFO_SEED_SOURCE 1007 # define OPENSSL_INFO_CPU_SETTINGS 1008 +# define OPENSSL_INFO_WINDOWS_CONTEXT 1009 int OPENSSL_issetugid(void); @@ -341,11 +353,14 @@ void CRYPTO_get_mem_functions(CRYPTO_malloc_fn *malloc_fn, CRYPTO_realloc_fn *realloc_fn, CRYPTO_free_fn *free_fn); -void *CRYPTO_malloc(size_t num, const char *file, int line); -void *CRYPTO_zalloc(size_t num, const char *file, int line); -void *CRYPTO_memdup(const void *str, size_t siz, const char *file, int line); -char *CRYPTO_strdup(const char *str, const char *file, int line); -char *CRYPTO_strndup(const char *str, size_t s, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_malloc(size_t num, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_zalloc(size_t num, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_aligned_alloc(size_t num, size_t align, + void **freeptr, const char *file, + int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_memdup(const void *str, size_t siz, const char *file, int line); +OSSL_CRYPTO_ALLOC char *CRYPTO_strdup(const char *str, const char *file, int line); +OSSL_CRYPTO_ALLOC char *CRYPTO_strndup(const char *str, size_t s, const char *file, int line); void CRYPTO_free(void *ptr, const char *file, int line); void CRYPTO_clear_free(void *ptr, size_t num, const char *file, int line); void *CRYPTO_realloc(void *addr, size_t num, const char *file, int line); @@ -354,8 +369,8 @@ void *CRYPTO_clear_realloc(void *addr, size_t old_num, size_t num, int CRYPTO_secure_malloc_init(size_t sz, size_t minsize); int CRYPTO_secure_malloc_done(void); -void *CRYPTO_secure_malloc(size_t num, const char *file, int line); -void *CRYPTO_secure_zalloc(size_t num, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_secure_malloc(size_t num, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_secure_zalloc(size_t num, const char *file, int line); void CRYPTO_secure_free(void *ptr, const char *file, int line); void CRYPTO_secure_clear_free(void *ptr, size_t num, const char *file, int line); @@ -376,6 +391,9 @@ void OPENSSL_cleanse(void *ptr, size_t len); # define CRYPTO_MEM_CHECK_ENABLE 0x2 /* Control and mode bit */ # define CRYPTO_MEM_CHECK_DISABLE 0x3 /* Control only */ +/* max allowed length for value of OPENSSL_MALLOC_FAILURES env var. */ +# define CRYPTO_MEM_CHECK_MAX_FS 256 + void CRYPTO_get_alloc_counts(int *mcount, int *rcount, int *fcount); # ifndef OPENSSL_NO_DEPRECATED_3_0 # define OPENSSL_mem_debug_push(info) \ @@ -551,6 +569,13 @@ int OSSL_LIB_CTX_load_config(OSSL_LIB_CTX *ctx, const char *config_file); void OSSL_LIB_CTX_free(OSSL_LIB_CTX *); OSSL_LIB_CTX *OSSL_LIB_CTX_get0_global_default(void); OSSL_LIB_CTX *OSSL_LIB_CTX_set0_default(OSSL_LIB_CTX *libctx); +int OSSL_LIB_CTX_get_conf_diagnostics(OSSL_LIB_CTX *ctx); +void OSSL_LIB_CTX_set_conf_diagnostics(OSSL_LIB_CTX *ctx, int value); + +void OSSL_sleep(uint64_t millis); + + +void *OSSL_LIB_CTX_get_data(OSSL_LIB_CTX *ctx, int index); # ifdef __cplusplus } diff --git a/deps/openssl/config/archs/linux-armv4/asm_avx2/include/openssl/ct.h b/deps/openssl/config/archs/linux-armv4/asm_avx2/include/openssl/ct.h index b6dd8c3547710a..e6dd1192a4e0b3 100644 --- a/deps/openssl/config/archs/linux-armv4/asm_avx2/include/openssl/ct.h +++ b/deps/openssl/config/archs/linux-armv4/asm_avx2/include/openssl/ct.h @@ -133,7 +133,7 @@ typedef enum { */ CT_POLICY_EVAL_CTX *CT_POLICY_EVAL_CTX_new_ex(OSSL_LIB_CTX *libctx, const char *propq); - + /* * The same as CT_POLICY_EVAL_CTX_new_ex() but the default library * context and property query string is used. diff --git a/deps/openssl/config/archs/linux-armv4/asm_avx2/include/openssl/err.h b/deps/openssl/config/archs/linux-armv4/asm_avx2/include/openssl/err.h index 2abf2483488181..daca18e7b757b0 100644 --- a/deps/openssl/config/archs/linux-armv4/asm_avx2/include/openssl/err.h +++ b/deps/openssl/config/archs/linux-armv4/asm_avx2/include/openssl/err.h @@ -1,5 +1,5 @@ /* - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -372,7 +372,7 @@ typedef struct ERR_string_data_st { } ERR_STRING_DATA; DEFINE_LHASH_OF_INTERNAL(ERR_STRING_DATA); -#define lh_ERR_STRING_DATA_new(hfn, cmp) ((LHASH_OF(ERR_STRING_DATA) *)OPENSSL_LH_new(ossl_check_ERR_STRING_DATA_lh_hashfunc_type(hfn), ossl_check_ERR_STRING_DATA_lh_compfunc_type(cmp))) +#define lh_ERR_STRING_DATA_new(hfn, cmp) ((LHASH_OF(ERR_STRING_DATA) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new(ossl_check_ERR_STRING_DATA_lh_hashfunc_type(hfn), ossl_check_ERR_STRING_DATA_lh_compfunc_type(cmp)), lh_ERR_STRING_DATA_hash_thunk, lh_ERR_STRING_DATA_comp_thunk, lh_ERR_STRING_DATA_doall_thunk, lh_ERR_STRING_DATA_doall_arg_thunk)) #define lh_ERR_STRING_DATA_free(lh) OPENSSL_LH_free(ossl_check_ERR_STRING_DATA_lh_type(lh)) #define lh_ERR_STRING_DATA_flush(lh) OPENSSL_LH_flush(ossl_check_ERR_STRING_DATA_lh_type(lh)) #define lh_ERR_STRING_DATA_insert(lh, ptr) ((ERR_STRING_DATA *)OPENSSL_LH_insert(ossl_check_ERR_STRING_DATA_lh_type(lh), ossl_check_ERR_STRING_DATA_lh_plain_type(ptr))) @@ -496,6 +496,14 @@ int ERR_get_next_error_library(void); int ERR_set_mark(void); int ERR_pop_to_mark(void); int ERR_clear_last_mark(void); +int ERR_count_to_mark(void); +int ERR_pop(void); + +ERR_STATE *OSSL_ERR_STATE_new(void); +void OSSL_ERR_STATE_save(ERR_STATE *es); +void OSSL_ERR_STATE_save_to_mark(ERR_STATE *es); +void OSSL_ERR_STATE_restore(const ERR_STATE *es); +void OSSL_ERR_STATE_free(ERR_STATE *es); #ifdef __cplusplus } diff --git a/deps/openssl/config/archs/linux-armv4/asm_avx2/include/openssl/fipskey.h b/deps/openssl/config/archs/linux-armv4/asm_avx2/include/openssl/fipskey.h index 42ba014b313ba8..929db18c678364 100644 --- a/deps/openssl/config/archs/linux-armv4/asm_avx2/include/openssl/fipskey.h +++ b/deps/openssl/config/archs/linux-armv4/asm_avx2/include/openssl/fipskey.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/fipskey.h.in * - * Copyright 2020-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2020-2024 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -29,6 +29,11 @@ extern "C" { */ #define FIPS_KEY_STRING "f4556650ac31d35461610bac4ed81b1a181b2d8a43ea2854cbae22ca74560813" +/* + * The FIPS provider vendor name, as a string. + */ +#define FIPS_VENDOR "OpenSSL FIPS Provider" + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/linux-armv4/asm_avx2/include/openssl/lhash.h b/deps/openssl/config/archs/linux-armv4/asm_avx2/include/openssl/lhash.h index 39dd6254acdeb6..62c55b20fd9716 100644 --- a/deps/openssl/config/archs/linux-armv4/asm_avx2/include/openssl/lhash.h +++ b/deps/openssl/config/archs/linux-armv4/asm_avx2/include/openssl/lhash.h @@ -1,5 +1,5 @@ /* - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2024 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -24,6 +24,9 @@ # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -31,9 +34,13 @@ extern "C" { typedef struct lhash_node_st OPENSSL_LH_NODE; typedef int (*OPENSSL_LH_COMPFUNC) (const void *, const void *); +typedef int (*OPENSSL_LH_COMPFUNCTHUNK) (const void *, const void *, OPENSSL_LH_COMPFUNC cfn); typedef unsigned long (*OPENSSL_LH_HASHFUNC) (const void *); +typedef unsigned long (*OPENSSL_LH_HASHFUNCTHUNK) (const void *, OPENSSL_LH_HASHFUNC hfn); typedef void (*OPENSSL_LH_DOALL_FUNC) (void *); +typedef void (*OPENSSL_LH_DOALL_FUNC_THUNK) (void *, OPENSSL_LH_DOALL_FUNC doall); typedef void (*OPENSSL_LH_DOALL_FUNCARG) (void *, void *); +typedef void (*OPENSSL_LH_DOALL_FUNCARG_THUNK) (void *, void *, OPENSSL_LH_DOALL_FUNCARG doall); typedef struct lhash_st OPENSSL_LHASH; /* @@ -79,26 +86,40 @@ typedef struct lhash_st OPENSSL_LHASH; int OPENSSL_LH_error(OPENSSL_LHASH *lh); OPENSSL_LHASH *OPENSSL_LH_new(OPENSSL_LH_HASHFUNC h, OPENSSL_LH_COMPFUNC c); +OPENSSL_LHASH *OPENSSL_LH_set_thunks(OPENSSL_LHASH *lh, + OPENSSL_LH_HASHFUNCTHUNK hw, + OPENSSL_LH_COMPFUNCTHUNK cw, + OPENSSL_LH_DOALL_FUNC_THUNK daw, + OPENSSL_LH_DOALL_FUNCARG_THUNK daaw); void OPENSSL_LH_free(OPENSSL_LHASH *lh); void OPENSSL_LH_flush(OPENSSL_LHASH *lh); void *OPENSSL_LH_insert(OPENSSL_LHASH *lh, void *data); void *OPENSSL_LH_delete(OPENSSL_LHASH *lh, const void *data); void *OPENSSL_LH_retrieve(OPENSSL_LHASH *lh, const void *data); void OPENSSL_LH_doall(OPENSSL_LHASH *lh, OPENSSL_LH_DOALL_FUNC func); -void OPENSSL_LH_doall_arg(OPENSSL_LHASH *lh, OPENSSL_LH_DOALL_FUNCARG func, void *arg); +void OPENSSL_LH_doall_arg(OPENSSL_LHASH *lh, + OPENSSL_LH_DOALL_FUNCARG func, void *arg); +void OPENSSL_LH_doall_arg_thunk(OPENSSL_LHASH *lh, + OPENSSL_LH_DOALL_FUNCARG_THUNK daaw, + OPENSSL_LH_DOALL_FUNCARG fn, void *arg); + unsigned long OPENSSL_LH_strhash(const char *c); unsigned long OPENSSL_LH_num_items(const OPENSSL_LHASH *lh); unsigned long OPENSSL_LH_get_down_load(const OPENSSL_LHASH *lh); void OPENSSL_LH_set_down_load(OPENSSL_LHASH *lh, unsigned long down_load); # ifndef OPENSSL_NO_STDIO -void OPENSSL_LH_stats(const OPENSSL_LHASH *lh, FILE *fp); -void OPENSSL_LH_node_stats(const OPENSSL_LHASH *lh, FILE *fp); -void OPENSSL_LH_node_usage_stats(const OPENSSL_LHASH *lh, FILE *fp); +# ifndef OPENSSL_NO_DEPRECATED_3_1 +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_stats(const OPENSSL_LHASH *lh, FILE *fp); +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_node_stats(const OPENSSL_LHASH *lh, FILE *fp); +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_node_usage_stats(const OPENSSL_LHASH *lh, FILE *fp); +# endif +# endif +# ifndef OPENSSL_NO_DEPRECATED_3_1 +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_stats_bio(const OPENSSL_LHASH *lh, BIO *out); +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_node_stats_bio(const OPENSSL_LHASH *lh, BIO *out); +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_node_usage_stats_bio(const OPENSSL_LHASH *lh, BIO *out); # endif -void OPENSSL_LH_stats_bio(const OPENSSL_LHASH *lh, BIO *out); -void OPENSSL_LH_node_stats_bio(const OPENSSL_LHASH *lh, BIO *out); -void OPENSSL_LH_node_usage_stats_bio(const OPENSSL_LHASH *lh, BIO *out); # ifndef OPENSSL_NO_DEPRECATED_1_1_0 # define _LHASH OPENSSL_LHASH @@ -129,110 +150,190 @@ void OPENSSL_LH_node_usage_stats_bio(const OPENSSL_LHASH *lh, BIO *out); /* Helper macro for internal use */ # define DEFINE_LHASH_OF_INTERNAL(type) \ - LHASH_OF(type) { union lh_##type##_dummy { void* d1; unsigned long d2; int d3; } dummy; }; \ + LHASH_OF(type) { \ + union lh_##type##_dummy { void* d1; unsigned long d2; int d3; } dummy; \ + }; \ typedef int (*lh_##type##_compfunc)(const type *a, const type *b); \ typedef unsigned long (*lh_##type##_hashfunc)(const type *a); \ typedef void (*lh_##type##_doallfunc)(type *a); \ - static ossl_unused ossl_inline type *ossl_check_##type##_lh_plain_type(type *ptr) \ + static ossl_inline unsigned long lh_##type##_hash_thunk(const void *data, OPENSSL_LH_HASHFUNC hfn) \ + { \ + unsigned long (*hfn_conv)(const type *) = (unsigned long (*)(const type *))hfn; \ + return hfn_conv((const type *)data); \ + } \ + static ossl_inline int lh_##type##_comp_thunk(const void *da, const void *db, OPENSSL_LH_COMPFUNC cfn) \ + { \ + int (*cfn_conv)(const type *, const type *) = (int (*)(const type *, const type *))cfn; \ + return cfn_conv((const type *)da, (const type *)db); \ + } \ + static ossl_inline void lh_##type##_doall_thunk(void *node, OPENSSL_LH_DOALL_FUNC doall) \ + { \ + void (*doall_conv)(type *) = (void (*)(type *))doall; \ + doall_conv((type *)node); \ + } \ + static ossl_inline void lh_##type##_doall_arg_thunk(void *node, void *arg, OPENSSL_LH_DOALL_FUNCARG doall) \ + { \ + void (*doall_conv)(type *, void *) = (void (*)(type *, void *))doall; \ + doall_conv((type *)node, arg); \ + } \ + static ossl_unused ossl_inline type *\ + ossl_check_##type##_lh_plain_type(type *ptr) \ { \ return ptr; \ } \ - static ossl_unused ossl_inline const type *ossl_check_const_##type##_lh_plain_type(const type *ptr) \ + static ossl_unused ossl_inline const type * \ + ossl_check_const_##type##_lh_plain_type(const type *ptr) \ { \ return ptr; \ } \ - static ossl_unused ossl_inline const OPENSSL_LHASH *ossl_check_const_##type##_lh_type(const LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline const OPENSSL_LHASH * \ + ossl_check_const_##type##_lh_type(const LHASH_OF(type) *lh) \ { \ return (const OPENSSL_LHASH *)lh; \ } \ - static ossl_unused ossl_inline OPENSSL_LHASH *ossl_check_##type##_lh_type(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline OPENSSL_LHASH * \ + ossl_check_##type##_lh_type(LHASH_OF(type) *lh) \ { \ return (OPENSSL_LHASH *)lh; \ } \ - static ossl_unused ossl_inline OPENSSL_LH_COMPFUNC ossl_check_##type##_lh_compfunc_type(lh_##type##_compfunc cmp) \ + static ossl_unused ossl_inline OPENSSL_LH_COMPFUNC \ + ossl_check_##type##_lh_compfunc_type(lh_##type##_compfunc cmp) \ { \ return (OPENSSL_LH_COMPFUNC)cmp; \ } \ - static ossl_unused ossl_inline OPENSSL_LH_HASHFUNC ossl_check_##type##_lh_hashfunc_type(lh_##type##_hashfunc hfn) \ + static ossl_unused ossl_inline OPENSSL_LH_HASHFUNC \ + ossl_check_##type##_lh_hashfunc_type(lh_##type##_hashfunc hfn) \ { \ return (OPENSSL_LH_HASHFUNC)hfn; \ } \ - static ossl_unused ossl_inline OPENSSL_LH_DOALL_FUNC ossl_check_##type##_lh_doallfunc_type(lh_##type##_doallfunc dfn) \ + static ossl_unused ossl_inline OPENSSL_LH_DOALL_FUNC \ + ossl_check_##type##_lh_doallfunc_type(lh_##type##_doallfunc dfn) \ { \ return (OPENSSL_LH_DOALL_FUNC)dfn; \ } \ LHASH_OF(type) -# define DEFINE_LHASH_OF(type) \ - LHASH_OF(type) { union lh_##type##_dummy { void* d1; unsigned long d2; int d3; } dummy; }; \ - static ossl_unused ossl_inline LHASH_OF(type) *lh_##type##_new(unsigned long (*hfn)(const type *), \ - int (*cfn)(const type *, const type *)) \ +# ifndef OPENSSL_NO_DEPRECATED_3_1 +# define DEFINE_LHASH_OF_DEPRECATED(type) \ + static ossl_unused ossl_inline void \ + lh_##type##_node_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ { \ - return (LHASH_OF(type) *) \ - OPENSSL_LH_new((OPENSSL_LH_HASHFUNC)hfn, (OPENSSL_LH_COMPFUNC)cfn); \ + OPENSSL_LH_node_stats_bio((const OPENSSL_LHASH *)lh, out); \ } \ - static ossl_unused ossl_inline void lh_##type##_free(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline void \ + lh_##type##_node_usage_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + { \ + OPENSSL_LH_node_usage_stats_bio((const OPENSSL_LHASH *)lh, out); \ + } \ + static ossl_unused ossl_inline void \ + lh_##type##_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + { \ + OPENSSL_LH_stats_bio((const OPENSSL_LHASH *)lh, out); \ + } +# else +# define DEFINE_LHASH_OF_DEPRECATED(type) +# endif + +# define DEFINE_LHASH_OF_EX(type) \ + LHASH_OF(type) { \ + union lh_##type##_dummy { void* d1; unsigned long d2; int d3; } dummy; \ + }; \ + static unsigned long \ + lh_##type##_hfn_thunk(const void *data, OPENSSL_LH_HASHFUNC hfn) \ + { \ + unsigned long (*hfn_conv)(const type *) = (unsigned long (*)(const type *))hfn; \ + return hfn_conv((const type *)data); \ + } \ + static int lh_##type##_cfn_thunk(const void *da, const void *db, OPENSSL_LH_COMPFUNC cfn) \ + { \ + int (*cfn_conv)(const type *, const type *) = (int (*)(const type *, const type *))cfn; \ + return cfn_conv((const type *)da, (const type *)db); \ + } \ + static ossl_unused ossl_inline void \ + lh_##type##_free(LHASH_OF(type) *lh) \ { \ OPENSSL_LH_free((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline void lh_##type##_flush(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline void \ + lh_##type##_flush(LHASH_OF(type) *lh) \ { \ OPENSSL_LH_flush((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline type *lh_##type##_insert(LHASH_OF(type) *lh, type *d) \ + static ossl_unused ossl_inline type * \ + lh_##type##_insert(LHASH_OF(type) *lh, type *d) \ { \ return (type *)OPENSSL_LH_insert((OPENSSL_LHASH *)lh, d); \ } \ - static ossl_unused ossl_inline type *lh_##type##_delete(LHASH_OF(type) *lh, const type *d) \ + static ossl_unused ossl_inline type * \ + lh_##type##_delete(LHASH_OF(type) *lh, const type *d) \ { \ return (type *)OPENSSL_LH_delete((OPENSSL_LHASH *)lh, d); \ } \ - static ossl_unused ossl_inline type *lh_##type##_retrieve(LHASH_OF(type) *lh, const type *d) \ + static ossl_unused ossl_inline type * \ + lh_##type##_retrieve(LHASH_OF(type) *lh, const type *d) \ { \ return (type *)OPENSSL_LH_retrieve((OPENSSL_LHASH *)lh, d); \ } \ - static ossl_unused ossl_inline int lh_##type##_error(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline int \ + lh_##type##_error(LHASH_OF(type) *lh) \ { \ return OPENSSL_LH_error((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline unsigned long lh_##type##_num_items(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline unsigned long \ + lh_##type##_num_items(LHASH_OF(type) *lh) \ { \ return OPENSSL_LH_num_items((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline void lh_##type##_node_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + static ossl_unused ossl_inline unsigned long \ + lh_##type##_get_down_load(LHASH_OF(type) *lh) \ { \ - OPENSSL_LH_node_stats_bio((const OPENSSL_LHASH *)lh, out); \ + return OPENSSL_LH_get_down_load((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline void lh_##type##_node_usage_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + static ossl_unused ossl_inline void \ + lh_##type##_set_down_load(LHASH_OF(type) *lh, unsigned long dl) \ { \ - OPENSSL_LH_node_usage_stats_bio((const OPENSSL_LHASH *)lh, out); \ + OPENSSL_LH_set_down_load((OPENSSL_LHASH *)lh, dl); \ } \ - static ossl_unused ossl_inline void lh_##type##_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall_thunk(void *node, OPENSSL_LH_DOALL_FUNC doall) \ { \ - OPENSSL_LH_stats_bio((const OPENSSL_LHASH *)lh, out); \ + void (*doall_conv)(type *) = (void (*)(type *))doall; \ + doall_conv((type *)node); \ } \ - static ossl_unused ossl_inline unsigned long lh_##type##_get_down_load(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall_arg_thunk(void *node, void *arg, OPENSSL_LH_DOALL_FUNCARG doall) \ { \ - return OPENSSL_LH_get_down_load((OPENSSL_LHASH *)lh); \ + void (*doall_conv)(type *, void *) = (void (*)(type *, void *))doall; \ + doall_conv((type *)node, arg); \ } \ - static ossl_unused ossl_inline void lh_##type##_set_down_load(LHASH_OF(type) *lh, unsigned long dl) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall(LHASH_OF(type) *lh, void (*doall)(type *)) \ { \ - OPENSSL_LH_set_down_load((OPENSSL_LHASH *)lh, dl); \ + OPENSSL_LH_doall((OPENSSL_LHASH *)lh, (OPENSSL_LH_DOALL_FUNC)doall); \ } \ - static ossl_unused ossl_inline void lh_##type##_doall(LHASH_OF(type) *lh, \ - void (*doall)(type *)) \ + static ossl_unused ossl_inline LHASH_OF(type) * \ + lh_##type##_new(unsigned long (*hfn)(const type *), \ + int (*cfn)(const type *, const type *)) \ { \ - OPENSSL_LH_doall((OPENSSL_LHASH *)lh, (OPENSSL_LH_DOALL_FUNC)doall); \ + return (LHASH_OF(type) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new((OPENSSL_LH_HASHFUNC)hfn, (OPENSSL_LH_COMPFUNC)cfn), \ + lh_##type##_hfn_thunk, lh_##type##_cfn_thunk, \ + lh_##type##_doall_thunk, \ + lh_##type##_doall_arg_thunk); \ } \ - static ossl_unused ossl_inline void lh_##type##_doall_arg(LHASH_OF(type) *lh, \ - void (*doallarg)(type *, void *), \ - void *arg) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall_arg(LHASH_OF(type) *lh, \ + void (*doallarg)(type *, void *), void *arg) \ { \ OPENSSL_LH_doall_arg((OPENSSL_LHASH *)lh, \ (OPENSSL_LH_DOALL_FUNCARG)doallarg, arg); \ } \ LHASH_OF(type) +# define DEFINE_LHASH_OF(type) \ + DEFINE_LHASH_OF_EX(type); \ + DEFINE_LHASH_OF_DEPRECATED(type) \ + LHASH_OF(type) + #define IMPLEMENT_LHASH_DOALL_ARG_CONST(type, argtype) \ int_implement_lhash_doall(type, argtype, const type) @@ -240,17 +341,26 @@ void OPENSSL_LH_node_usage_stats_bio(const OPENSSL_LHASH *lh, BIO *out); int_implement_lhash_doall(type, argtype, type) #define int_implement_lhash_doall(type, argtype, cbargtype) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall_##argtype##_thunk(void *node, void *arg, OPENSSL_LH_DOALL_FUNCARG fn) \ + { \ + void (*fn_conv)(cbargtype *, argtype *) = (void (*)(cbargtype *, argtype *))fn; \ + fn_conv((cbargtype *)node, (argtype *)arg); \ + } \ static ossl_unused ossl_inline void \ lh_##type##_doall_##argtype(LHASH_OF(type) *lh, \ void (*fn)(cbargtype *, argtype *), \ argtype *arg) \ { \ - OPENSSL_LH_doall_arg((OPENSSL_LHASH *)lh, (OPENSSL_LH_DOALL_FUNCARG)fn, (void *)arg); \ + OPENSSL_LH_doall_arg_thunk((OPENSSL_LHASH *)lh, \ + lh_##type##_doall_##argtype##_thunk, \ + (OPENSSL_LH_DOALL_FUNCARG)fn, \ + (void *)arg); \ } \ LHASH_OF(type) DEFINE_LHASH_OF_INTERNAL(OPENSSL_STRING); -#define lh_OPENSSL_STRING_new(hfn, cmp) ((LHASH_OF(OPENSSL_STRING) *)OPENSSL_LH_new(ossl_check_OPENSSL_STRING_lh_hashfunc_type(hfn), ossl_check_OPENSSL_STRING_lh_compfunc_type(cmp))) +#define lh_OPENSSL_STRING_new(hfn, cmp) ((LHASH_OF(OPENSSL_STRING) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new(ossl_check_OPENSSL_STRING_lh_hashfunc_type(hfn), ossl_check_OPENSSL_STRING_lh_compfunc_type(cmp)), lh_OPENSSL_STRING_hash_thunk, lh_OPENSSL_STRING_comp_thunk, lh_OPENSSL_STRING_doall_thunk, lh_OPENSSL_STRING_doall_arg_thunk)) #define lh_OPENSSL_STRING_free(lh) OPENSSL_LH_free(ossl_check_OPENSSL_STRING_lh_type(lh)) #define lh_OPENSSL_STRING_flush(lh) OPENSSL_LH_flush(ossl_check_OPENSSL_STRING_lh_type(lh)) #define lh_OPENSSL_STRING_insert(lh, ptr) ((OPENSSL_STRING *)OPENSSL_LH_insert(ossl_check_OPENSSL_STRING_lh_type(lh), ossl_check_OPENSSL_STRING_lh_plain_type(ptr))) @@ -265,7 +375,7 @@ DEFINE_LHASH_OF_INTERNAL(OPENSSL_STRING); #define lh_OPENSSL_STRING_set_down_load(lh, dl) OPENSSL_LH_set_down_load(ossl_check_OPENSSL_STRING_lh_type(lh), dl) #define lh_OPENSSL_STRING_doall(lh, dfn) OPENSSL_LH_doall(ossl_check_OPENSSL_STRING_lh_type(lh), ossl_check_OPENSSL_STRING_lh_doallfunc_type(dfn)) DEFINE_LHASH_OF_INTERNAL(OPENSSL_CSTRING); -#define lh_OPENSSL_CSTRING_new(hfn, cmp) ((LHASH_OF(OPENSSL_CSTRING) *)OPENSSL_LH_new(ossl_check_OPENSSL_CSTRING_lh_hashfunc_type(hfn), ossl_check_OPENSSL_CSTRING_lh_compfunc_type(cmp))) +#define lh_OPENSSL_CSTRING_new(hfn, cmp) ((LHASH_OF(OPENSSL_CSTRING) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new(ossl_check_OPENSSL_CSTRING_lh_hashfunc_type(hfn), ossl_check_OPENSSL_CSTRING_lh_compfunc_type(cmp)), lh_OPENSSL_CSTRING_hash_thunk, lh_OPENSSL_CSTRING_comp_thunk, lh_OPENSSL_CSTRING_doall_thunk, lh_OPENSSL_CSTRING_doall_arg_thunk)) #define lh_OPENSSL_CSTRING_free(lh) OPENSSL_LH_free(ossl_check_OPENSSL_CSTRING_lh_type(lh)) #define lh_OPENSSL_CSTRING_flush(lh) OPENSSL_LH_flush(ossl_check_OPENSSL_CSTRING_lh_type(lh)) #define lh_OPENSSL_CSTRING_insert(lh, ptr) ((OPENSSL_CSTRING *)OPENSSL_LH_insert(ossl_check_OPENSSL_CSTRING_lh_type(lh), ossl_check_OPENSSL_CSTRING_lh_plain_type(ptr))) diff --git a/deps/openssl/config/archs/linux-armv4/asm_avx2/include/openssl/opensslv.h b/deps/openssl/config/archs/linux-armv4/asm_avx2/include/openssl/opensslv.h index 5fb5bc63056fe0..dd50d89cb9982d 100644 --- a/deps/openssl/config/archs/linux-armv4/asm_avx2/include/openssl/opensslv.h +++ b/deps/openssl/config/archs/linux-armv4/asm_avx2/include/openssl/opensslv.h @@ -28,8 +28,8 @@ extern "C" { * These macros express version number MAJOR.MINOR.PATCH exactly */ # define OPENSSL_VERSION_MAJOR 3 -# define OPENSSL_VERSION_MINOR 0 -# define OPENSSL_VERSION_PATCH 17 +# define OPENSSL_VERSION_MINOR 5 +# define OPENSSL_VERSION_PATCH 1 /* * Additional version information @@ -74,8 +74,8 @@ extern "C" { * longer variant with OPENSSL_VERSION_PRE_RELEASE_STR and * OPENSSL_VERSION_BUILD_METADATA_STR appended. */ -# define OPENSSL_VERSION_STR "3.0.17" -# define OPENSSL_FULL_VERSION_STR "3.0.17" +# define OPENSSL_VERSION_STR "3.5.1" +# define OPENSSL_FULL_VERSION_STR "3.5.1" /* * SECTION 3: ADDITIONAL METADATA @@ -88,7 +88,7 @@ extern "C" { * SECTION 4: BACKWARD COMPATIBILITY */ -# define OPENSSL_VERSION_TEXT "OpenSSL 3.0.17 1 Jul 2025" +# define OPENSSL_VERSION_TEXT "OpenSSL 3.5.1 1 Jul 2025" /* Synthesize OPENSSL_VERSION_NUMBER with the layout 0xMNN00PPSL */ # ifdef OPENSSL_VERSION_PRE_RELEASE diff --git a/deps/openssl/config/archs/linux-armv4/asm_avx2/include/openssl/pkcs12.h b/deps/openssl/config/archs/linux-armv4/asm_avx2/include/openssl/pkcs12.h index c5e0cab06491ec..0809645dad0bbf 100644 --- a/deps/openssl/config/archs/linux-armv4/asm_avx2/include/openssl/pkcs12.h +++ b/deps/openssl/config/archs/linux-armv4/asm_avx2/include/openssl/pkcs12.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/pkcs12.h.in * - * Copyright 1999-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1999-2024 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -25,6 +25,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -41,6 +44,7 @@ extern "C" { # define PKCS12_MAC_KEY_LENGTH 20 +/* The macro is expected to be used only internally. Kept for backwards compatibility. */ # define PKCS12_SALT_LEN 8 /* It's not clear if these are actually needed... */ @@ -130,7 +134,9 @@ int PKCS12_SAFEBAG_get_bag_nid(const PKCS12_SAFEBAG *bag); const ASN1_TYPE *PKCS12_SAFEBAG_get0_bag_obj(const PKCS12_SAFEBAG *bag); const ASN1_OBJECT *PKCS12_SAFEBAG_get0_bag_type(const PKCS12_SAFEBAG *bag); +X509 *PKCS12_SAFEBAG_get1_cert_ex(const PKCS12_SAFEBAG *bag, OSSL_LIB_CTX *libctx, const char *propq); X509 *PKCS12_SAFEBAG_get1_cert(const PKCS12_SAFEBAG *bag); +X509_CRL *PKCS12_SAFEBAG_get1_crl_ex(const PKCS12_SAFEBAG *bag, OSSL_LIB_CTX *libctx, const char *propq); X509_CRL *PKCS12_SAFEBAG_get1_crl(const PKCS12_SAFEBAG *bag); const STACK_OF(PKCS12_SAFEBAG) * PKCS12_SAFEBAG_get0_safes(const PKCS12_SAFEBAG *bag); @@ -218,6 +224,7 @@ ASN1_TYPE *PKCS12_get_attr_gen(const STACK_OF(X509_ATTRIBUTE) *attrs, char *PKCS12_get_friendlyname(PKCS12_SAFEBAG *bag); const STACK_OF(X509_ATTRIBUTE) * PKCS12_SAFEBAG_get0_attrs(const PKCS12_SAFEBAG *bag); +void PKCS12_SAFEBAG_set0_attrs(PKCS12_SAFEBAG *bag, STACK_OF(X509_ATTRIBUTE) *attrs); unsigned char *PKCS12_pbe_crypt(const X509_ALGOR *algor, const char *pass, int passlen, const unsigned char *in, int inlen, @@ -285,6 +292,9 @@ int PKCS12_verify_mac(PKCS12 *p12, const char *pass, int passlen); int PKCS12_set_mac(PKCS12 *p12, const char *pass, int passlen, unsigned char *salt, int saltlen, int iter, const EVP_MD *md_type); +int PKCS12_set_pbmac1_pbkdf2(PKCS12 *p12, const char *pass, int passlen, + unsigned char *salt, int saltlen, int iter, + const EVP_MD *md_type, const char *prf_md_name); int PKCS12_setup_mac(PKCS12 *p12, int iter, unsigned char *salt, int saltlen, const EVP_MD *md_type); unsigned char *OPENSSL_asc2uni(const char *asc, int asclen, @@ -305,6 +315,7 @@ DECLARE_ASN1_ITEM(PKCS12_AUTHSAFES) void PKCS12_PBE_add(void); int PKCS12_parse(PKCS12 *p12, const char *pass, EVP_PKEY **pkey, X509 **cert, STACK_OF(X509) **ca); +typedef int PKCS12_create_cb(PKCS12_SAFEBAG *bag, void *cbarg); PKCS12 *PKCS12_create(const char *pass, const char *name, EVP_PKEY *pkey, X509 *cert, STACK_OF(X509) *ca, int nid_key, int nid_cert, int iter, int mac_iter, int keytype); @@ -312,6 +323,11 @@ PKCS12 *PKCS12_create_ex(const char *pass, const char *name, EVP_PKEY *pkey, X509 *cert, STACK_OF(X509) *ca, int nid_key, int nid_cert, int iter, int mac_iter, int keytype, OSSL_LIB_CTX *ctx, const char *propq); +PKCS12 *PKCS12_create_ex2(const char *pass, const char *name, EVP_PKEY *pkey, + X509 *cert, STACK_OF(X509) *ca, int nid_key, int nid_cert, + int iter, int mac_iter, int keytype, + OSSL_LIB_CTX *ctx, const char *propq, + PKCS12_create_cb *cb, void *cbarg); PKCS12_SAFEBAG *PKCS12_add_cert(STACK_OF(PKCS12_SAFEBAG) **pbags, X509 *cert); PKCS12_SAFEBAG *PKCS12_add_key(STACK_OF(PKCS12_SAFEBAG) **pbags, diff --git a/deps/openssl/config/archs/linux-armv4/asm_avx2/include/openssl/pkcs7.h b/deps/openssl/config/archs/linux-armv4/asm_avx2/include/openssl/pkcs7.h index 0ce79bf4fa160e..fa68462aff973b 100644 --- a/deps/openssl/config/archs/linux-armv4/asm_avx2/include/openssl/pkcs7.h +++ b/deps/openssl/config/archs/linux-armv4/asm_avx2/include/openssl/pkcs7.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/pkcs7.h.in * - * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -28,6 +28,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -131,8 +134,8 @@ SKM_DEFINE_STACK_OF_INTERNAL(PKCS7_RECIP_INFO, PKCS7_RECIP_INFO, PKCS7_RECIP_INF typedef struct pkcs7_signed_st { ASN1_INTEGER *version; /* version 1 */ STACK_OF(X509_ALGOR) *md_algs; /* md used */ - STACK_OF(X509) *cert; /* [ 0 ] */ - STACK_OF(X509_CRL) *crl; /* [ 1 ] */ + STACK_OF(X509) *cert; /* [ 0 ] */ /* name should be 'certificates' */ + STACK_OF(X509_CRL) *crl; /* [ 1 ] */ /* name should be 'crls' */ STACK_OF(PKCS7_SIGNER_INFO) *signer_info; struct pkcs7_st *contents; } PKCS7_SIGNED; @@ -158,8 +161,8 @@ typedef struct pkcs7_enveloped_st { typedef struct pkcs7_signedandenveloped_st { ASN1_INTEGER *version; /* version 1 */ STACK_OF(X509_ALGOR) *md_algs; /* md used */ - STACK_OF(X509) *cert; /* [ 0 ] */ - STACK_OF(X509_CRL) *crl; /* [ 1 ] */ + STACK_OF(X509) *cert; /* [ 0 ] */ /* name should be 'certificates' */ + STACK_OF(X509_CRL) *crl; /* [ 1 ] */ /* name should be 'crls' */ STACK_OF(PKCS7_SIGNER_INFO) *signer_info; PKCS7_ENC_CONTENT *enc_data; STACK_OF(PKCS7_RECIP_INFO) *recipientinfo; @@ -200,7 +203,7 @@ typedef struct pkcs7_st { /* NID_pkcs7_data */ ASN1_OCTET_STRING *data; /* NID_pkcs7_signed */ - PKCS7_SIGNED *sign; + PKCS7_SIGNED *sign; /* field name 'signed' would clash with C keyword */ /* NID_pkcs7_enveloped */ PKCS7_ENVELOPE *enveloped; /* NID_pkcs7_signedAndEnveloped */ @@ -341,13 +344,13 @@ int PKCS7_SIGNER_INFO_set(PKCS7_SIGNER_INFO *p7i, X509 *x509, EVP_PKEY *pkey, const EVP_MD *dgst); int PKCS7_SIGNER_INFO_sign(PKCS7_SIGNER_INFO *si); int PKCS7_add_signer(PKCS7 *p7, PKCS7_SIGNER_INFO *p7i); -int PKCS7_add_certificate(PKCS7 *p7, X509 *x509); -int PKCS7_add_crl(PKCS7 *p7, X509_CRL *x509); +int PKCS7_add_certificate(PKCS7 *p7, X509 *cert); +int PKCS7_add_crl(PKCS7 *p7, X509_CRL *crl); int PKCS7_content_new(PKCS7 *p7, int nid); int PKCS7_dataVerify(X509_STORE *cert_store, X509_STORE_CTX *ctx, BIO *bio, PKCS7 *p7, PKCS7_SIGNER_INFO *si); int PKCS7_signatureVerify(BIO *bio, PKCS7 *p7, PKCS7_SIGNER_INFO *si, - X509 *x509); + X509 *signer); BIO *PKCS7_dataInit(PKCS7 *p7, BIO *bio); int PKCS7_dataFinal(PKCS7 *p7, BIO *bio); diff --git a/deps/openssl/config/archs/linux-armv4/asm_avx2/include/openssl/ssl.h b/deps/openssl/config/archs/linux-armv4/asm_avx2/include/openssl/ssl.h index 3df725c56d6c5e..7e3d89c7ef3dc9 100644 --- a/deps/openssl/config/archs/linux-armv4/asm_avx2/include/openssl/ssl.h +++ b/deps/openssl/config/archs/linux-armv4/asm_avx2/include/openssl/ssl.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/ssl.h.in * - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved * Copyright 2005 Nokia. All rights reserved. * @@ -24,6 +24,7 @@ # endif # include +# include # include # include # include @@ -42,6 +43,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -231,10 +235,8 @@ typedef struct ssl_cipher_st SSL_CIPHER; typedef struct ssl_session_st SSL_SESSION; typedef struct tls_sigalgs_st TLS_SIGALGS; typedef struct ssl_conf_ctx_st SSL_CONF_CTX; -typedef struct ssl_comp_st SSL_COMP; STACK_OF(SSL_CIPHER); -STACK_OF(SSL_COMP); /* SRTP protection profiles for use with the use_srtp extension (RFC 5764)*/ typedef struct srtp_protection_profile_st { @@ -278,28 +280,31 @@ typedef int (*tls_session_secret_cb_fn)(SSL *s, void *secret, int *secret_len, /* Extension context codes */ /* This extension is only allowed in TLS */ -#define SSL_EXT_TLS_ONLY 0x0001 +#define SSL_EXT_TLS_ONLY 0x00001 /* This extension is only allowed in DTLS */ -#define SSL_EXT_DTLS_ONLY 0x0002 +#define SSL_EXT_DTLS_ONLY 0x00002 /* Some extensions may be allowed in DTLS but we don't implement them for it */ -#define SSL_EXT_TLS_IMPLEMENTATION_ONLY 0x0004 +#define SSL_EXT_TLS_IMPLEMENTATION_ONLY 0x00004 /* Most extensions are not defined for SSLv3 but EXT_TYPE_renegotiate is */ -#define SSL_EXT_SSL3_ALLOWED 0x0008 +#define SSL_EXT_SSL3_ALLOWED 0x00008 /* Extension is only defined for TLS1.2 and below */ -#define SSL_EXT_TLS1_2_AND_BELOW_ONLY 0x0010 +#define SSL_EXT_TLS1_2_AND_BELOW_ONLY 0x00010 /* Extension is only defined for TLS1.3 and above */ -#define SSL_EXT_TLS1_3_ONLY 0x0020 +#define SSL_EXT_TLS1_3_ONLY 0x00020 /* Ignore this extension during parsing if we are resuming */ -#define SSL_EXT_IGNORE_ON_RESUMPTION 0x0040 -#define SSL_EXT_CLIENT_HELLO 0x0080 +#define SSL_EXT_IGNORE_ON_RESUMPTION 0x00040 +#define SSL_EXT_CLIENT_HELLO 0x00080 /* Really means TLS1.2 or below */ -#define SSL_EXT_TLS1_2_SERVER_HELLO 0x0100 -#define SSL_EXT_TLS1_3_SERVER_HELLO 0x0200 -#define SSL_EXT_TLS1_3_ENCRYPTED_EXTENSIONS 0x0400 -#define SSL_EXT_TLS1_3_HELLO_RETRY_REQUEST 0x0800 -#define SSL_EXT_TLS1_3_CERTIFICATE 0x1000 -#define SSL_EXT_TLS1_3_NEW_SESSION_TICKET 0x2000 -#define SSL_EXT_TLS1_3_CERTIFICATE_REQUEST 0x4000 +#define SSL_EXT_TLS1_2_SERVER_HELLO 0x00100 +#define SSL_EXT_TLS1_3_SERVER_HELLO 0x00200 +#define SSL_EXT_TLS1_3_ENCRYPTED_EXTENSIONS 0x00400 +#define SSL_EXT_TLS1_3_HELLO_RETRY_REQUEST 0x00800 +#define SSL_EXT_TLS1_3_CERTIFICATE 0x01000 +#define SSL_EXT_TLS1_3_NEW_SESSION_TICKET 0x02000 +#define SSL_EXT_TLS1_3_CERTIFICATE_REQUEST 0x04000 +#define SSL_EXT_TLS1_3_CERTIFICATE_COMPRESSION 0x08000 +/* When sending a raw public key in a certificate message */ +#define SSL_EXT_TLS1_3_RAW_PUBLIC_KEY 0x10000 /* Typedefs for handling custom extensions */ @@ -404,7 +409,7 @@ typedef int (*SSL_async_callback_fn)(SSL *s, void *arg); */ # define SSL_OP_CIPHER_SERVER_PREFERENCE SSL_OP_BIT(22) /* - * If set, a server will allow a client to issue a SSLv3.0 version + * If set, a server will allow a client to issue an SSLv3.0 version * number as latest version supported in the premaster secret, even when * TLSv1.0 (version 3.1) was announced in the client hello. Normally * this is forbidden to prevent version rollback attacks. @@ -430,6 +435,19 @@ typedef int (*SSL_async_callback_fn)(SSL *s, void *arg); * interoperability with CryptoPro CSP 3.x */ # define SSL_OP_CRYPTOPRO_TLSEXT_BUG SSL_OP_BIT(31) +/* + * Disable RFC8879 certificate compression + * SSL_OP_NO_TX_CERTIFICATE_COMPRESSION: don't send compressed certificates, + * and ignore the extension when received. + * SSL_OP_NO_RX_CERTIFICATE_COMPRESSION: don't send the extension, and + * subsequently indicating that receiving is not supported + */ +# define SSL_OP_NO_TX_CERTIFICATE_COMPRESSION SSL_OP_BIT(32) +# define SSL_OP_NO_RX_CERTIFICATE_COMPRESSION SSL_OP_BIT(33) + /* Enable KTLS TX zerocopy on Linux */ +# define SSL_OP_ENABLE_KTLS_TX_ZEROCOPY_SENDFILE SSL_OP_BIT(34) + +#define SSL_OP_PREFER_NO_DHE_KEX SSL_OP_BIT(35) /* * Option "collections." @@ -574,6 +592,8 @@ typedef int (*SSL_async_callback_fn)(SSL *s, void *arg); # define CERT_PKEY_CERT_TYPE 0x400 /* Cert chain suitable to Suite B */ # define CERT_PKEY_SUITEB 0x800 +/* Cert pkey valid for raw public key use */ +# define CERT_PKEY_RPK 0x1000 # define SSL_CONF_FLAG_CMDLINE 0x1 # define SSL_CONF_FLAG_FILE 0x2 @@ -965,6 +985,7 @@ uint32_t SSL_get_recv_max_early_data(const SSL *s); # include /* This is mostly sslv3 with a few tweaks */ # include /* Datagram TLS */ # include /* Support for the use_srtp extension */ +# include #ifdef __cplusplus extern "C" { @@ -1000,32 +1021,6 @@ SKM_DEFINE_STACK_OF_INTERNAL(SSL_CIPHER, const SSL_CIPHER, SSL_CIPHER) #define sk_SSL_CIPHER_dup(sk) ((STACK_OF(SSL_CIPHER) *)OPENSSL_sk_dup(ossl_check_const_SSL_CIPHER_sk_type(sk))) #define sk_SSL_CIPHER_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(SSL_CIPHER) *)OPENSSL_sk_deep_copy(ossl_check_const_SSL_CIPHER_sk_type(sk), ossl_check_SSL_CIPHER_copyfunc_type(copyfunc), ossl_check_SSL_CIPHER_freefunc_type(freefunc))) #define sk_SSL_CIPHER_set_cmp_func(sk, cmp) ((sk_SSL_CIPHER_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_SSL_CIPHER_sk_type(sk), ossl_check_SSL_CIPHER_compfunc_type(cmp))) -SKM_DEFINE_STACK_OF_INTERNAL(SSL_COMP, SSL_COMP, SSL_COMP) -#define sk_SSL_COMP_num(sk) OPENSSL_sk_num(ossl_check_const_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_value(sk, idx) ((SSL_COMP *)OPENSSL_sk_value(ossl_check_const_SSL_COMP_sk_type(sk), (idx))) -#define sk_SSL_COMP_new(cmp) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new(ossl_check_SSL_COMP_compfunc_type(cmp))) -#define sk_SSL_COMP_new_null() ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new_null()) -#define sk_SSL_COMP_new_reserve(cmp, n) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new_reserve(ossl_check_SSL_COMP_compfunc_type(cmp), (n))) -#define sk_SSL_COMP_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_SSL_COMP_sk_type(sk), (n)) -#define sk_SSL_COMP_free(sk) OPENSSL_sk_free(ossl_check_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_zero(sk) OPENSSL_sk_zero(ossl_check_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_delete(sk, i) ((SSL_COMP *)OPENSSL_sk_delete(ossl_check_SSL_COMP_sk_type(sk), (i))) -#define sk_SSL_COMP_delete_ptr(sk, ptr) ((SSL_COMP *)OPENSSL_sk_delete_ptr(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr))) -#define sk_SSL_COMP_push(sk, ptr) OPENSSL_sk_push(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) -#define sk_SSL_COMP_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) -#define sk_SSL_COMP_pop(sk) ((SSL_COMP *)OPENSSL_sk_pop(ossl_check_SSL_COMP_sk_type(sk))) -#define sk_SSL_COMP_shift(sk) ((SSL_COMP *)OPENSSL_sk_shift(ossl_check_SSL_COMP_sk_type(sk))) -#define sk_SSL_COMP_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_SSL_COMP_sk_type(sk),ossl_check_SSL_COMP_freefunc_type(freefunc)) -#define sk_SSL_COMP_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr), (idx)) -#define sk_SSL_COMP_set(sk, idx, ptr) ((SSL_COMP *)OPENSSL_sk_set(ossl_check_SSL_COMP_sk_type(sk), (idx), ossl_check_SSL_COMP_type(ptr))) -#define sk_SSL_COMP_find(sk, ptr) OPENSSL_sk_find(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) -#define sk_SSL_COMP_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) -#define sk_SSL_COMP_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr), pnum) -#define sk_SSL_COMP_sort(sk) OPENSSL_sk_sort(ossl_check_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_dup(sk) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_dup(ossl_check_const_SSL_COMP_sk_type(sk))) -#define sk_SSL_COMP_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_deep_copy(ossl_check_const_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_copyfunc_type(copyfunc), ossl_check_SSL_COMP_freefunc_type(freefunc))) -#define sk_SSL_COMP_set_cmp_func(sk, cmp) ((sk_SSL_COMP_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_compfunc_type(cmp))) /* compatibility */ @@ -1066,6 +1061,7 @@ typedef enum { DTLS_ST_CR_HELLO_VERIFY_REQUEST, TLS_ST_CR_SRVR_HELLO, TLS_ST_CR_CERT, + TLS_ST_CR_COMP_CERT, TLS_ST_CR_CERT_STATUS, TLS_ST_CR_KEY_EXCH, TLS_ST_CR_CERT_REQ, @@ -1075,6 +1071,7 @@ typedef enum { TLS_ST_CR_FINISHED, TLS_ST_CW_CLNT_HELLO, TLS_ST_CW_CERT, + TLS_ST_CW_COMP_CERT, TLS_ST_CW_KEY_EXCH, TLS_ST_CW_CERT_VRFY, TLS_ST_CW_CHANGE, @@ -1085,10 +1082,12 @@ typedef enum { DTLS_ST_SW_HELLO_VERIFY_REQUEST, TLS_ST_SW_SRVR_HELLO, TLS_ST_SW_CERT, + TLS_ST_SW_COMP_CERT, TLS_ST_SW_KEY_EXCH, TLS_ST_SW_CERT_REQ, TLS_ST_SW_SRVR_DONE, TLS_ST_SR_CERT, + TLS_ST_SR_COMP_CERT, TLS_ST_SR_KEY_EXCH, TLS_ST_SR_CERT_VRFY, TLS_ST_SR_NEXT_PROTO, @@ -1380,9 +1379,13 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) # define SSL_CTRL_GET_SIGNATURE_NID 132 # define SSL_CTRL_GET_TMP_KEY 133 # define SSL_CTRL_GET_NEGOTIATED_GROUP 134 +# define SSL_CTRL_GET_IANA_GROUPS 135 # define SSL_CTRL_SET_RETRY_VERIFY 136 # define SSL_CTRL_GET_VERIFY_CERT_STORE 137 # define SSL_CTRL_GET_CHAIN_CERT_STORE 138 +# define SSL_CTRL_GET0_IMPLEMENTED_GROUPS 139 +# define SSL_CTRL_GET_SIGNATURE_NAME 140 +# define SSL_CTRL_GET_PEER_SIGNATURE_NAME 141 # define SSL_CERT_SET_FIRST 1 # define SSL_CERT_SET_NEXT 2 # define SSL_CERT_SET_SERVER 3 @@ -1485,10 +1488,15 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) # define SSL_get1_groups(s, glist) \ SSL_ctrl(s,SSL_CTRL_GET_GROUPS,0,(int*)(glist)) +# define SSL_get0_iana_groups(s, plst) \ + SSL_ctrl(s,SSL_CTRL_GET_IANA_GROUPS,0,(uint16_t **)(plst)) # define SSL_CTX_set1_groups(ctx, glist, glistlen) \ SSL_CTX_ctrl(ctx,SSL_CTRL_SET_GROUPS,glistlen,(int *)(glist)) # define SSL_CTX_set1_groups_list(ctx, s) \ SSL_CTX_ctrl(ctx,SSL_CTRL_SET_GROUPS_LIST,0,(char *)(s)) +# define SSL_CTX_get0_implemented_groups(ctx, all, out) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_GET0_IMPLEMENTED_GROUPS, all, \ + (STACK_OF(OPENSSL_CSTRING) *)(out)) # define SSL_set1_groups(s, glist, glistlen) \ SSL_ctrl(s,SSL_CTRL_SET_GROUPS,glistlen,(char *)(glist)) # define SSL_set1_groups_list(s, str) \ @@ -1520,8 +1528,12 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) (char *)(clist)) # define SSL_set1_client_certificate_types(s, clist, clistlen) \ SSL_ctrl(s,SSL_CTRL_SET_CLIENT_CERT_TYPES,clistlen,(char *)(clist)) +# define SSL_get0_signature_name(s, str) \ + SSL_ctrl(s,SSL_CTRL_GET_SIGNATURE_NAME,0,(1?(str):(const char **)NULL)) # define SSL_get_signature_nid(s, pn) \ SSL_ctrl(s,SSL_CTRL_GET_SIGNATURE_NID,0,pn) +# define SSL_get0_peer_signature_name(s, str) \ + SSL_ctrl(s,SSL_CTRL_GET_PEER_SIGNATURE_NAME,0,(1?(str):(const char **)NULL)) # define SSL_get_peer_signature_nid(s, pn) \ SSL_ctrl(s,SSL_CTRL_GET_PEER_SIGNATURE_NID,0,pn) # define SSL_get_peer_tmp_key(s, pk) \ @@ -1549,6 +1561,7 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) # define SSL_get_max_proto_version(s) \ SSL_ctrl(s, SSL_CTRL_GET_MAX_PROTO_VERSION, 0, NULL) +const char *SSL_get0_group_name(SSL *s); const char *SSL_group_to_name(SSL *s, int id); /* Backwards compatibility, original 1.1.0 names */ @@ -1613,7 +1626,11 @@ void SSL_CTX_set1_cert_store(SSL_CTX *, X509_STORE *); __owur int SSL_want(const SSL *s); __owur int SSL_clear(SSL *s); +#ifndef OPENSSL_NO_DEPRECATED_3_4 +OSSL_DEPRECATEDIN_3_4_FOR("not Y2038-safe, replace with SSL_CTX_flush_sessions_ex()") void SSL_CTX_flush_sessions(SSL_CTX *ctx, long tm); +#endif +void SSL_CTX_flush_sessions_ex(SSL_CTX *ctx, time_t tm); __owur const SSL_CIPHER *SSL_get_current_cipher(const SSL *s); __owur const SSL_CIPHER *SSL_get_pending_cipher(const SSL *s); @@ -1725,13 +1742,21 @@ __owur const char *SSL_state_string(const SSL *s); __owur const char *SSL_rstate_string(const SSL *s); __owur const char *SSL_state_string_long(const SSL *s); __owur const char *SSL_rstate_string_long(const SSL *s); + +#ifndef OPENSSL_NO_DEPRECATED_3_4 +OSSL_DEPRECATEDIN_3_4_FOR("not Y2038-safe, replace with SSL_SESSION_get_time_ex()") __owur long SSL_SESSION_get_time(const SSL_SESSION *s); +OSSL_DEPRECATEDIN_3_4_FOR("not Y2038-safe, replace with SSL_SESSION_set_time_ex()") __owur long SSL_SESSION_set_time(SSL_SESSION *s, long t); +#endif __owur long SSL_SESSION_get_timeout(const SSL_SESSION *s); __owur long SSL_SESSION_set_timeout(SSL_SESSION *s, long t); __owur int SSL_SESSION_get_protocol_version(const SSL_SESSION *s); __owur int SSL_SESSION_set_protocol_version(SSL_SESSION *s, int version); +__owur time_t SSL_SESSION_get_time_ex(const SSL_SESSION *s); +__owur time_t SSL_SESSION_set_time_ex(SSL_SESSION *s, time_t t); + __owur const char *SSL_SESSION_get0_hostname(const SSL_SESSION *s); __owur int SSL_SESSION_set1_hostname(SSL_SESSION *s, const char *hostname); void SSL_SESSION_get0_alpn_selected(const SSL_SESSION *s, @@ -1783,6 +1808,9 @@ __owur int SSL_has_matching_session_id(const SSL *s, unsigned int id_len); SSL_SESSION *d2i_SSL_SESSION(SSL_SESSION **a, const unsigned char **pp, long length); +SSL_SESSION *d2i_SSL_SESSION_ex(SSL_SESSION **a, const unsigned char **pp, + long length, OSSL_LIB_CTX *libctx, + const char *propq); # ifdef OPENSSL_X509_H __owur X509 *SSL_get0_peer_certificate(const SSL *s); @@ -1840,6 +1868,8 @@ __owur int SSL_CTX_set_session_id_context(SSL_CTX *ctx, SSL *SSL_new(SSL_CTX *ctx); int SSL_up_ref(SSL *s); int SSL_is_dtls(const SSL *s); +int SSL_is_tls(const SSL *s); +int SSL_is_quic(const SSL *s); __owur int SSL_set_session_id_context(SSL *ssl, const unsigned char *sid_ctx, unsigned int sid_ctx_len); @@ -1848,8 +1878,8 @@ __owur int SSL_set_purpose(SSL *ssl, int purpose); __owur int SSL_CTX_set_trust(SSL_CTX *ctx, int trust); __owur int SSL_set_trust(SSL *ssl, int trust); -__owur int SSL_set1_host(SSL *s, const char *hostname); -__owur int SSL_add1_host(SSL *s, const char *hostname); +__owur int SSL_set1_host(SSL *s, const char *host); +__owur int SSL_add1_host(SSL *s, const char *host); __owur const char *SSL_get0_peername(SSL *s); void SSL_set_hostflags(SSL *s, unsigned int flags); @@ -1924,6 +1954,11 @@ OSSL_DEPRECATEDIN_3_0 __owur char *SSL_get_srp_userinfo(SSL *s); typedef int (*SSL_client_hello_cb_fn) (SSL *s, int *al, void *arg); void SSL_CTX_set_client_hello_cb(SSL_CTX *c, SSL_client_hello_cb_fn cb, void *arg); +typedef int (*SSL_new_pending_conn_cb_fn) (SSL_CTX *ctx, SSL *new_ssl, + void *arg); +void SSL_CTX_set_new_pending_conn_cb(SSL_CTX *c, SSL_new_pending_conn_cb_fn cb, + void *arg); + int SSL_client_hello_isv2(SSL *s); unsigned int SSL_client_hello_get0_legacy_version(SSL *s); size_t SSL_client_hello_get0_random(SSL *s, const unsigned char **out); @@ -1932,6 +1967,8 @@ size_t SSL_client_hello_get0_ciphers(SSL *s, const unsigned char **out); size_t SSL_client_hello_get0_compression_methods(SSL *s, const unsigned char **out); int SSL_client_hello_get1_extensions_present(SSL *s, int **out, size_t *outlen); +int SSL_client_hello_get_extension_order(SSL *s, uint16_t *exts, + size_t *num_exts); int SSL_client_hello_get0_ext(SSL *s, unsigned int type, const unsigned char **out, size_t *outlen); @@ -1978,6 +2015,12 @@ long SSL_callback_ctrl(SSL *, int, void (*)(void)); long SSL_CTX_ctrl(SSL_CTX *ctx, int cmd, long larg, void *parg); long SSL_CTX_callback_ctrl(SSL_CTX *, int, void (*)(void)); +# define SSL_WRITE_FLAG_CONCLUDE (1U << 0) + +__owur int SSL_write_ex2(SSL *s, const void *buf, size_t num, + uint64_t flags, + size_t *written); + # define SSL_EARLY_DATA_NOT_SENT 0 # define SSL_EARLY_DATA_REJECTED 1 # define SSL_EARLY_DATA_ACCEPTED 2 @@ -1986,6 +2029,7 @@ __owur int SSL_get_early_data_status(const SSL *s); __owur int SSL_get_error(const SSL *s, int ret_code); __owur const char *SSL_get_version(const SSL *s); +__owur int SSL_get_handshake_rtt(const SSL *s, uint64_t *rtt); /* This sets the 'default' SSL version that SSL_new() will create */ # ifndef OPENSSL_NO_DEPRECATED_3_0 @@ -2281,6 +2325,8 @@ void SSL_CTX_set_record_padding_callback(SSL_CTX *ctx, void SSL_CTX_set_record_padding_callback_arg(SSL_CTX *ctx, void *arg); void *SSL_CTX_get_record_padding_callback_arg(const SSL_CTX *ctx); int SSL_CTX_set_block_padding(SSL_CTX *ctx, size_t block_size); +int SSL_CTX_set_block_padding_ex(SSL_CTX *ctx, size_t app_block_size, + size_t hs_block_size); int SSL_set_record_padding_callback(SSL *ssl, size_t (*cb) (SSL *ssl, int type, @@ -2288,12 +2334,255 @@ int SSL_set_record_padding_callback(SSL *ssl, void SSL_set_record_padding_callback_arg(SSL *ssl, void *arg); void *SSL_get_record_padding_callback_arg(const SSL *ssl); int SSL_set_block_padding(SSL *ssl, size_t block_size); - +int SSL_set_block_padding_ex(SSL *ssl, size_t app_block_size, + size_t hs_block_size); int SSL_set_num_tickets(SSL *s, size_t num_tickets); size_t SSL_get_num_tickets(const SSL *s); int SSL_CTX_set_num_tickets(SSL_CTX *ctx, size_t num_tickets); size_t SSL_CTX_get_num_tickets(const SSL_CTX *ctx); +/* QUIC support */ +int SSL_handle_events(SSL *s); +__owur int SSL_get_event_timeout(SSL *s, struct timeval *tv, int *is_infinite); +__owur int SSL_get_rpoll_descriptor(SSL *s, BIO_POLL_DESCRIPTOR *desc); +__owur int SSL_get_wpoll_descriptor(SSL *s, BIO_POLL_DESCRIPTOR *desc); +__owur int SSL_net_read_desired(SSL *s); +__owur int SSL_net_write_desired(SSL *s); +__owur int SSL_set_blocking_mode(SSL *s, int blocking); +__owur int SSL_get_blocking_mode(SSL *s); +__owur int SSL_set1_initial_peer_addr(SSL *s, const BIO_ADDR *peer_addr); +__owur SSL *SSL_get0_connection(SSL *s); +__owur int SSL_is_connection(SSL *s); + +__owur int SSL_is_listener(SSL *ssl); +__owur SSL *SSL_get0_listener(SSL *s); +#define SSL_LISTENER_FLAG_NO_VALIDATE (1UL << 1) +__owur SSL *SSL_new_listener(SSL_CTX *ctx, uint64_t flags); +__owur SSL *SSL_new_listener_from(SSL *ssl, uint64_t flags); +__owur SSL *SSL_new_from_listener(SSL *ssl, uint64_t flags); +#define SSL_ACCEPT_CONNECTION_NO_BLOCK (1UL << 0) +__owur SSL *SSL_accept_connection(SSL *ssl, uint64_t flags); +__owur size_t SSL_get_accept_connection_queue_len(SSL *ssl); +__owur int SSL_listen(SSL *ssl); + +__owur int SSL_is_domain(SSL *s); +__owur SSL *SSL_get0_domain(SSL *s); +__owur SSL *SSL_new_domain(SSL_CTX *ctx, uint64_t flags); + +#define SSL_DOMAIN_FLAG_SINGLE_THREAD (1U << 0) +#define SSL_DOMAIN_FLAG_MULTI_THREAD (1U << 1) +#define SSL_DOMAIN_FLAG_THREAD_ASSISTED (1U << 2) +#define SSL_DOMAIN_FLAG_BLOCKING (1U << 3) +#define SSL_DOMAIN_FLAG_LEGACY_BLOCKING (1U << 4) + +__owur int SSL_CTX_set_domain_flags(SSL_CTX *ctx, uint64_t domain_flags); +__owur int SSL_CTX_get_domain_flags(const SSL_CTX *ctx, uint64_t *domain_flags); +__owur int SSL_get_domain_flags(const SSL *ssl, uint64_t *domain_flags); + +#define SSL_STREAM_TYPE_NONE 0 +#define SSL_STREAM_TYPE_READ (1U << 0) +#define SSL_STREAM_TYPE_WRITE (1U << 1) +#define SSL_STREAM_TYPE_BIDI (SSL_STREAM_TYPE_READ | SSL_STREAM_TYPE_WRITE) +__owur int SSL_get_stream_type(SSL *s); + +__owur uint64_t SSL_get_stream_id(SSL *s); +__owur int SSL_is_stream_local(SSL *s); + +#define SSL_DEFAULT_STREAM_MODE_NONE 0 +#define SSL_DEFAULT_STREAM_MODE_AUTO_BIDI 1 +#define SSL_DEFAULT_STREAM_MODE_AUTO_UNI 2 +__owur int SSL_set_default_stream_mode(SSL *s, uint32_t mode); + +#define SSL_STREAM_FLAG_UNI (1U << 0) +#define SSL_STREAM_FLAG_NO_BLOCK (1U << 1) +#define SSL_STREAM_FLAG_ADVANCE (1U << 2) +__owur SSL *SSL_new_stream(SSL *s, uint64_t flags); + +#define SSL_INCOMING_STREAM_POLICY_AUTO 0 +#define SSL_INCOMING_STREAM_POLICY_ACCEPT 1 +#define SSL_INCOMING_STREAM_POLICY_REJECT 2 +__owur int SSL_set_incoming_stream_policy(SSL *s, int policy, uint64_t aec); + +#define SSL_ACCEPT_STREAM_NO_BLOCK (1U << 0) +__owur SSL *SSL_accept_stream(SSL *s, uint64_t flags); +__owur size_t SSL_get_accept_stream_queue_len(SSL *s); + +# ifndef OPENSSL_NO_QUIC +__owur int SSL_inject_net_dgram(SSL *s, const unsigned char *buf, + size_t buf_len, + const BIO_ADDR *peer, + const BIO_ADDR *local); +# endif + +typedef struct ssl_shutdown_ex_args_st { + uint64_t quic_error_code; + const char *quic_reason; +} SSL_SHUTDOWN_EX_ARGS; + +#define SSL_SHUTDOWN_FLAG_RAPID (1U << 0) +#define SSL_SHUTDOWN_FLAG_NO_STREAM_FLUSH (1U << 1) +#define SSL_SHUTDOWN_FLAG_NO_BLOCK (1U << 2) +#define SSL_SHUTDOWN_FLAG_WAIT_PEER (1U << 3) + +__owur int SSL_shutdown_ex(SSL *ssl, uint64_t flags, + const SSL_SHUTDOWN_EX_ARGS *args, + size_t args_len); + +__owur int SSL_stream_conclude(SSL *ssl, uint64_t flags); + +typedef struct ssl_stream_reset_args_st { + uint64_t quic_error_code; +} SSL_STREAM_RESET_ARGS; + +__owur int SSL_stream_reset(SSL *ssl, + const SSL_STREAM_RESET_ARGS *args, + size_t args_len); + +#define SSL_STREAM_STATE_NONE 0 +#define SSL_STREAM_STATE_OK 1 +#define SSL_STREAM_STATE_WRONG_DIR 2 +#define SSL_STREAM_STATE_FINISHED 3 +#define SSL_STREAM_STATE_RESET_LOCAL 4 +#define SSL_STREAM_STATE_RESET_REMOTE 5 +#define SSL_STREAM_STATE_CONN_CLOSED 6 +__owur int SSL_get_stream_read_state(SSL *ssl); +__owur int SSL_get_stream_write_state(SSL *ssl); + +__owur int SSL_get_stream_read_error_code(SSL *ssl, uint64_t *app_error_code); +__owur int SSL_get_stream_write_error_code(SSL *ssl, uint64_t *app_error_code); + +#define SSL_CONN_CLOSE_FLAG_LOCAL (1U << 0) +#define SSL_CONN_CLOSE_FLAG_TRANSPORT (1U << 1) + +typedef struct ssl_conn_close_info_st { + uint64_t error_code, frame_type; + const char *reason; + size_t reason_len; + uint32_t flags; +} SSL_CONN_CLOSE_INFO; + +__owur int SSL_get_conn_close_info(SSL *ssl, + SSL_CONN_CLOSE_INFO *info, + size_t info_len); + +# define SSL_VALUE_CLASS_GENERIC 0 +# define SSL_VALUE_CLASS_FEATURE_REQUEST 1 +# define SSL_VALUE_CLASS_FEATURE_PEER_REQUEST 2 +# define SSL_VALUE_CLASS_FEATURE_NEGOTIATED 3 + +# define SSL_VALUE_NONE 0 +# define SSL_VALUE_QUIC_STREAM_BIDI_LOCAL_AVAIL 1 +# define SSL_VALUE_QUIC_STREAM_BIDI_REMOTE_AVAIL 2 +# define SSL_VALUE_QUIC_STREAM_UNI_LOCAL_AVAIL 3 +# define SSL_VALUE_QUIC_STREAM_UNI_REMOTE_AVAIL 4 +# define SSL_VALUE_QUIC_IDLE_TIMEOUT 5 +# define SSL_VALUE_EVENT_HANDLING_MODE 6 +# define SSL_VALUE_STREAM_WRITE_BUF_SIZE 7 +# define SSL_VALUE_STREAM_WRITE_BUF_USED 8 +# define SSL_VALUE_STREAM_WRITE_BUF_AVAIL 9 + +# define SSL_VALUE_EVENT_HANDLING_MODE_INHERIT 0 +# define SSL_VALUE_EVENT_HANDLING_MODE_IMPLICIT 1 +# define SSL_VALUE_EVENT_HANDLING_MODE_EXPLICIT 2 + +int SSL_get_value_uint(SSL *s, uint32_t class_, uint32_t id, uint64_t *v); +int SSL_set_value_uint(SSL *s, uint32_t class_, uint32_t id, uint64_t v); + +# define SSL_get_generic_value_uint(ssl, id, v) \ + SSL_get_value_uint((ssl), SSL_VALUE_CLASS_GENERIC, (id), (v)) +# define SSL_set_generic_value_uint(ssl, id, v) \ + SSL_set_value_uint((ssl), SSL_VALUE_CLASS_GENERIC, (id), (v)) +# define SSL_get_feature_request_uint(ssl, id, v) \ + SSL_get_value_uint((ssl), SSL_VALUE_CLASS_FEATURE_REQUEST, (id), (v)) +# define SSL_set_feature_request_uint(ssl, id, v) \ + SSL_set_value_uint((ssl), SSL_VALUE_CLASS_FEATURE_REQUEST, (id), (v)) +# define SSL_get_feature_peer_request_uint(ssl, id, v) \ + SSL_get_value_uint((ssl), SSL_VALUE_CLASS_FEATURE_PEER_REQUEST, (id), (v)) +# define SSL_get_feature_negotiated_uint(ssl, id, v) \ + SSL_get_value_uint((ssl), SSL_VALUE_CLASS_FEATURE_NEGOTIATED, (id), (v)) + +# define SSL_get_quic_stream_bidi_local_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_QUIC_STREAM_BIDI_LOCAL_AVAIL, \ + (value)) +# define SSL_get_quic_stream_bidi_remote_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_QUIC_STREAM_BIDI_REMOTE_AVAIL, \ + (value)) +# define SSL_get_quic_stream_uni_local_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_QUIC_STREAM_UNI_LOCAL_AVAIL, \ + (value)) +# define SSL_get_quic_stream_uni_remote_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_QUIC_STREAM_UNI_REMOTE_AVAIL, \ + (value)) + +# define SSL_get_event_handling_mode(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_EVENT_HANDLING_MODE, \ + (value)) +# define SSL_set_event_handling_mode(ssl, value) \ + SSL_set_generic_value_uint((ssl), SSL_VALUE_EVENT_HANDLING_MODE, \ + (value)) + +# define SSL_get_stream_write_buf_size(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_STREAM_WRITE_BUF_SIZE, \ + (value)) +# define SSL_get_stream_write_buf_used(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_STREAM_WRITE_BUF_USED, \ + (value)) +# define SSL_get_stream_write_buf_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_STREAM_WRITE_BUF_AVAIL, \ + (value)) + +# define SSL_POLL_EVENT_NONE 0 + +# define SSL_POLL_EVENT_F (1U << 0) /* F (Failure) */ +# define SSL_POLL_EVENT_EL (1U << 1) /* EL (Exception on Listener) */ +# define SSL_POLL_EVENT_EC (1U << 2) /* EC (Exception on Conn) */ +# define SSL_POLL_EVENT_ECD (1U << 3) /* ECD (Exception on Conn Drained) */ +# define SSL_POLL_EVENT_ER (1U << 4) /* ER (Exception on Read) */ +# define SSL_POLL_EVENT_EW (1U << 5) /* EW (Exception on Write) */ +# define SSL_POLL_EVENT_R (1U << 6) /* R (Readable) */ +# define SSL_POLL_EVENT_W (1U << 7) /* W (Writable) */ +# define SSL_POLL_EVENT_IC (1U << 8) /* IC (Incoming Connection) */ +# define SSL_POLL_EVENT_ISB (1U << 9) /* ISB (Incoming Stream: Bidi) */ +# define SSL_POLL_EVENT_ISU (1U << 10) /* ISU (Incoming Stream: Uni) */ +# define SSL_POLL_EVENT_OSB (1U << 11) /* OSB (Outgoing Stream: Bidi) */ +# define SSL_POLL_EVENT_OSU (1U << 12) /* OSU (Outgoing Stream: Uni) */ + +# define SSL_POLL_EVENT_RW (SSL_POLL_EVENT_R | SSL_POLL_EVENT_W) +# define SSL_POLL_EVENT_RE (SSL_POLL_EVENT_R | SSL_POLL_EVENT_ER) +# define SSL_POLL_EVENT_WE (SSL_POLL_EVENT_W | SSL_POLL_EVENT_EW) +# define SSL_POLL_EVENT_RWE (SSL_POLL_EVENT_RE | SSL_POLL_EVENT_WE) +# define SSL_POLL_EVENT_E (SSL_POLL_EVENT_EL | SSL_POLL_EVENT_EC \ + | SSL_POLL_EVENT_ER | SSL_POLL_EVENT_EW) +# define SSL_POLL_EVENT_IS (SSL_POLL_EVENT_ISB | SSL_POLL_EVENT_ISU) +# define SSL_POLL_EVENT_ISE (SSL_POLL_EVENT_IS | SSL_POLL_EVENT_EC) +# define SSL_POLL_EVENT_I (SSL_POLL_EVENT_IS | SSL_POLL_EVENT_IC) +# define SSL_POLL_EVENT_OS (SSL_POLL_EVENT_OSB | SSL_POLL_EVENT_OSU) +# define SSL_POLL_EVENT_OSE (SSL_POLL_EVENT_OS | SSL_POLL_EVENT_EC) + +typedef struct ssl_poll_item_st { + BIO_POLL_DESCRIPTOR desc; + uint64_t events, revents; +} SSL_POLL_ITEM; + +# define SSL_POLL_FLAG_NO_HANDLE_EVENTS (1U << 0) + +__owur int SSL_poll(SSL_POLL_ITEM *items, + size_t num_items, + size_t stride, + const struct timeval *timeout, + uint64_t flags, + size_t *result_count); + +static ossl_inline ossl_unused BIO_POLL_DESCRIPTOR +SSL_as_poll_descriptor(SSL *s) +{ + BIO_POLL_DESCRIPTOR d; + + d.type = BIO_POLL_DESCRIPTOR_TYPE_SSL; + d.value.ssl = s; + return d; +} + # ifndef OPENSSL_NO_DEPRECATED_1_1_0 # define SSL_cache_hit(s) SSL_session_reused(s) # endif @@ -2593,6 +2882,51 @@ void SSL_set_allow_early_data_cb(SSL *s, const char *OSSL_default_cipher_list(void); const char *OSSL_default_ciphersuites(void); +/* RFC8879 Certificate compression APIs */ + +int SSL_CTX_compress_certs(SSL_CTX *ctx, int alg); +int SSL_compress_certs(SSL *ssl, int alg); + +int SSL_CTX_set1_cert_comp_preference(SSL_CTX *ctx, int *algs, size_t len); +int SSL_set1_cert_comp_preference(SSL *ssl, int *algs, size_t len); + +int SSL_CTX_set1_compressed_cert(SSL_CTX *ctx, int algorithm, unsigned char *comp_data, + size_t comp_length, size_t orig_length); +int SSL_set1_compressed_cert(SSL *ssl, int algorithm, unsigned char *comp_data, + size_t comp_length, size_t orig_length); +size_t SSL_CTX_get1_compressed_cert(SSL_CTX *ctx, int alg, unsigned char **data, size_t *orig_len); +size_t SSL_get1_compressed_cert(SSL *ssl, int alg, unsigned char **data, size_t *orig_len); + +__owur int SSL_add_expected_rpk(SSL *s, EVP_PKEY *rpk); +__owur EVP_PKEY *SSL_get0_peer_rpk(const SSL *s); +__owur EVP_PKEY *SSL_SESSION_get0_peer_rpk(SSL_SESSION *s); +__owur int SSL_get_negotiated_client_cert_type(const SSL *s); +__owur int SSL_get_negotiated_server_cert_type(const SSL *s); + +__owur int SSL_set1_client_cert_type(SSL *s, const unsigned char *val, size_t len); +__owur int SSL_set1_server_cert_type(SSL *s, const unsigned char *val, size_t len); +__owur int SSL_CTX_set1_client_cert_type(SSL_CTX *ctx, const unsigned char *val, size_t len); +__owur int SSL_CTX_set1_server_cert_type(SSL_CTX *ctx, const unsigned char *val, size_t len); +__owur int SSL_get0_client_cert_type(const SSL *s, unsigned char **t, size_t *len); +__owur int SSL_get0_server_cert_type(const SSL *s, unsigned char **t, size_t *len); +__owur int SSL_CTX_get0_client_cert_type(const SSL_CTX *ctx, unsigned char **t, size_t *len); +__owur int SSL_CTX_get0_server_cert_type(const SSL_CTX *s, unsigned char **t, size_t *len); + +/* + * Protection level. For <= TLSv1.2 only "NONE" and "APPLICATION" are used. + */ +# define OSSL_RECORD_PROTECTION_LEVEL_NONE 0 +# define OSSL_RECORD_PROTECTION_LEVEL_EARLY 1 +# define OSSL_RECORD_PROTECTION_LEVEL_HANDSHAKE 2 +# define OSSL_RECORD_PROTECTION_LEVEL_APPLICATION 3 + +int SSL_set_quic_tls_cbs(SSL *s, const OSSL_DISPATCH *qtdis, void *arg); +int SSL_set_quic_tls_transport_params(SSL *s, + const unsigned char *params, + size_t params_len); + +int SSL_set_quic_tls_early_data_enabled(SSL *s, int enabled); + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/linux-armv4/asm_avx2/include/openssl/x509.h b/deps/openssl/config/archs/linux-armv4/asm_avx2/include/openssl/x509.h index 1f7755e5b69c75..d013458c226461 100644 --- a/deps/openssl/config/archs/linux-armv4/asm_avx2/include/openssl/x509.h +++ b/deps/openssl/config/archs/linux-armv4/asm_avx2/include/openssl/x509.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/x509.h.in * - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2024 The OpenSSL Project Authors. All Rights Reserved. * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved * * Licensed under the Apache License 2.0 (the "License"). You may not use @@ -40,6 +40,9 @@ # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -162,16 +165,24 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_CRL, X509_CRL, X509_CRL) # define X509_FILETYPE_ASN1 2 # define X509_FILETYPE_DEFAULT 3 -# define X509v3_KU_DIGITAL_SIGNATURE 0x0080 -# define X509v3_KU_NON_REPUDIATION 0x0040 -# define X509v3_KU_KEY_ENCIPHERMENT 0x0020 -# define X509v3_KU_DATA_ENCIPHERMENT 0x0010 -# define X509v3_KU_KEY_AGREEMENT 0x0008 -# define X509v3_KU_KEY_CERT_SIGN 0x0004 -# define X509v3_KU_CRL_SIGN 0x0002 -# define X509v3_KU_ENCIPHER_ONLY 0x0001 -# define X509v3_KU_DECIPHER_ONLY 0x8000 -# define X509v3_KU_UNDEF 0xffff +/*- + * : + * The KeyUsage BITSTRING is treated as a little-endian integer, hence bit `0` + * is 0x80, while bit `7` is 0x01 (the LSB of the integer value), bit `8` is + * then the MSB of the second octet, or 0x8000. + */ +# define X509v3_KU_DIGITAL_SIGNATURE 0x0080 /* (0) */ +# define X509v3_KU_NON_REPUDIATION 0x0040 /* (1) */ +# define X509v3_KU_KEY_ENCIPHERMENT 0x0020 /* (2) */ +# define X509v3_KU_DATA_ENCIPHERMENT 0x0010 /* (3) */ +# define X509v3_KU_KEY_AGREEMENT 0x0008 /* (4) */ +# define X509v3_KU_KEY_CERT_SIGN 0x0004 /* (5) */ +# define X509v3_KU_CRL_SIGN 0x0002 /* (6) */ +# define X509v3_KU_ENCIPHER_ONLY 0x0001 /* (7) */ +# define X509v3_KU_DECIPHER_ONLY 0x8000 /* (8) */ +# ifndef OPENSSL_NO_DEPRECATED_3_4 +# define X509v3_KU_UNDEF 0xffff /* vestigial, not used */ +# endif struct X509_algor_st { ASN1_OBJECT *algorithm; @@ -462,7 +473,12 @@ typedef struct PBKDF2PARAM_st { X509_ALGOR *prf; } PBKDF2PARAM; -#ifndef OPENSSL_NO_SCRYPT +typedef struct { + X509_ALGOR *keyDerivationFunc; + X509_ALGOR *messageAuthScheme; +} PBMAC1PARAM; + +# ifndef OPENSSL_NO_SCRYPT typedef struct SCRYPT_PARAMS_st { ASN1_OCTET_STRING *salt; ASN1_INTEGER *costParameter; @@ -470,7 +486,7 @@ typedef struct SCRYPT_PARAMS_st { ASN1_INTEGER *parallelizationParameter; ASN1_INTEGER *keyLength; } SCRYPT_PARAMS; -#endif +# endif #ifdef __cplusplus } @@ -603,6 +619,8 @@ EVP_PKEY *d2i_PrivateKey_ex_fp(FILE *fp, EVP_PKEY **a, OSSL_LIB_CTX *libctx, const char *propq); EVP_PKEY *d2i_PrivateKey_fp(FILE *fp, EVP_PKEY **a); int i2d_PUBKEY_fp(FILE *fp, const EVP_PKEY *pkey); +EVP_PKEY *d2i_PUBKEY_ex_fp(FILE *fp, EVP_PKEY **a, OSSL_LIB_CTX *libctx, + const char *propq); EVP_PKEY *d2i_PUBKEY_fp(FILE *fp, EVP_PKEY **a); # endif @@ -651,6 +669,8 @@ EVP_PKEY *d2i_PrivateKey_ex_bio(BIO *bp, EVP_PKEY **a, OSSL_LIB_CTX *libctx, const char *propq); EVP_PKEY *d2i_PrivateKey_bio(BIO *bp, EVP_PKEY **a); int i2d_PUBKEY_bio(BIO *bp, const EVP_PKEY *pkey); +EVP_PKEY *d2i_PUBKEY_ex_bio(BIO *bp, EVP_PKEY **a, OSSL_LIB_CTX *libctx, + const char *propq); EVP_PKEY *d2i_PUBKEY_bio(BIO *bp, EVP_PKEY **a); DECLARE_ASN1_DUP_FUNCTION(X509) @@ -884,12 +904,12 @@ int X509_REQ_get_signature_nid(const X509_REQ *req); int i2d_re_X509_REQ_tbs(X509_REQ *req, unsigned char **pp); int X509_REQ_set_pubkey(X509_REQ *x, EVP_PKEY *pkey); EVP_PKEY *X509_REQ_get_pubkey(X509_REQ *req); -EVP_PKEY *X509_REQ_get0_pubkey(X509_REQ *req); +EVP_PKEY *X509_REQ_get0_pubkey(const X509_REQ *req); X509_PUBKEY *X509_REQ_get_X509_PUBKEY(X509_REQ *req); int X509_REQ_extension_nid(int nid); int *X509_REQ_get_extension_nids(void); void X509_REQ_set_extension_nids(int *nids); -STACK_OF(X509_EXTENSION) *X509_REQ_get_extensions(X509_REQ *req); +STACK_OF(X509_EXTENSION) *X509_REQ_get_extensions(OSSL_FUTURE_CONST X509_REQ *req); int X509_REQ_add_extensions_nid(X509_REQ *req, const STACK_OF(X509_EXTENSION) *exts, int nid); int X509_REQ_add_extensions(X509_REQ *req, const STACK_OF(X509_EXTENSION) *ext); @@ -950,13 +970,14 @@ X509_REVOKED_get0_extensions(const X509_REVOKED *r); X509_CRL *X509_CRL_diff(X509_CRL *base, X509_CRL *newer, EVP_PKEY *skey, const EVP_MD *md, unsigned int flags); -int X509_REQ_check_private_key(X509_REQ *x509, EVP_PKEY *pkey); +int X509_REQ_check_private_key(const X509_REQ *req, EVP_PKEY *pkey); -int X509_check_private_key(const X509 *x509, const EVP_PKEY *pkey); +int X509_check_private_key(const X509 *cert, const EVP_PKEY *pkey); int X509_chain_check_suiteb(int *perror_depth, X509 *x, STACK_OF(X509) *chain, unsigned long flags); int X509_CRL_check_suiteb(X509_CRL *crl, EVP_PKEY *pk, unsigned long flags); +void OSSL_STACK_OF_X509_free(STACK_OF(X509) *certs); STACK_OF(X509) *X509_chain_up_ref(STACK_OF(X509) *chain); int X509_issuer_and_serial_cmp(const X509 *a, const X509 *b); @@ -1077,6 +1098,8 @@ X509_EXTENSION *X509v3_get_ext(const STACK_OF(X509_EXTENSION) *x, int loc); X509_EXTENSION *X509v3_delete_ext(STACK_OF(X509_EXTENSION) *x, int loc); STACK_OF(X509_EXTENSION) *X509v3_add_ext(STACK_OF(X509_EXTENSION) **x, X509_EXTENSION *ex, int loc); +STACK_OF(X509_EXTENSION) *X509v3_add_extensions(STACK_OF(X509_EXTENSION) **target, + const STACK_OF(X509_EXTENSION) *exts); int X509_get_ext_count(const X509 *x); int X509_get_ext_by_NID(const X509 *x, int nid, int lastpos); @@ -1198,9 +1221,10 @@ X509 *X509_find_by_subject(STACK_OF(X509) *sk, const X509_NAME *name); DECLARE_ASN1_FUNCTIONS(PBEPARAM) DECLARE_ASN1_FUNCTIONS(PBE2PARAM) DECLARE_ASN1_FUNCTIONS(PBKDF2PARAM) -#ifndef OPENSSL_NO_SCRYPT +DECLARE_ASN1_FUNCTIONS(PBMAC1PARAM) +# ifndef OPENSSL_NO_SCRYPT DECLARE_ASN1_FUNCTIONS(SCRYPT_PARAMS) -#endif +# endif int PKCS5_pbe_set0_algor(X509_ALGOR *algor, int alg, int iter, const unsigned char *salt, int saltlen); @@ -1237,6 +1261,7 @@ X509_ALGOR *PKCS5_pbkdf2_set_ex(int iter, unsigned char *salt, int saltlen, int prf_nid, int keylen, OSSL_LIB_CTX *libctx); +PBKDF2PARAM *PBMAC1_get1_pbkdf2_param(const X509_ALGOR *macalg); /* PKCS#8 utilities */ DECLARE_ASN1_FUNCTIONS(PKCS8_PRIV_KEY_INFO) @@ -1262,6 +1287,8 @@ int PKCS8_pkey_add1_attr_by_OBJ(PKCS8_PRIV_KEY_INFO *p8, const ASN1_OBJECT *obj, int type, const unsigned char *bytes, int len); +void X509_PUBKEY_set0_public_key(X509_PUBKEY *pub, + unsigned char *penc, int penclen); int X509_PUBKEY_set0_param(X509_PUBKEY *pub, ASN1_OBJECT *aobj, int ptype, void *pval, unsigned char *penc, int penclen); diff --git a/deps/openssl/config/archs/linux-armv4/asm_avx2/include/openssl/x509_acert.h b/deps/openssl/config/archs/linux-armv4/asm_avx2/include/openssl/x509_acert.h new file mode 100644 index 00000000000000..9dde625677f9a9 --- /dev/null +++ b/deps/openssl/config/archs/linux-armv4/asm_avx2/include/openssl/x509_acert.h @@ -0,0 +1,294 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from include/openssl/x509_acert.h.in + * + * Copyright 2022-2024 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + + +#ifndef OPENSSL_X509_ACERT_H +# define OPENSSL_X509_ACERT_H +# pragma once + +# include +# include +# include + +typedef struct X509_acert_st X509_ACERT; +typedef struct X509_acert_info_st X509_ACERT_INFO; +typedef struct ossl_object_digest_info_st OSSL_OBJECT_DIGEST_INFO; +typedef struct ossl_issuer_serial_st OSSL_ISSUER_SERIAL; +typedef struct X509_acert_issuer_v2form_st X509_ACERT_ISSUER_V2FORM; + +DECLARE_ASN1_FUNCTIONS(X509_ACERT) +DECLARE_ASN1_DUP_FUNCTION(X509_ACERT) +DECLARE_ASN1_ITEM(X509_ACERT_INFO) +DECLARE_ASN1_ALLOC_FUNCTIONS(X509_ACERT_INFO) +DECLARE_ASN1_ALLOC_FUNCTIONS(OSSL_OBJECT_DIGEST_INFO) +DECLARE_ASN1_ALLOC_FUNCTIONS(OSSL_ISSUER_SERIAL) +DECLARE_ASN1_ALLOC_FUNCTIONS(X509_ACERT_ISSUER_V2FORM) + +# ifndef OPENSSL_NO_STDIO +X509_ACERT *d2i_X509_ACERT_fp(FILE *fp, X509_ACERT **acert); +int i2d_X509_ACERT_fp(FILE *fp, const X509_ACERT *acert); +# endif + +DECLARE_PEM_rw(X509_ACERT, X509_ACERT) + +X509_ACERT *d2i_X509_ACERT_bio(BIO *bp, X509_ACERT **acert); +int i2d_X509_ACERT_bio(BIO *bp, const X509_ACERT *acert); + +int X509_ACERT_sign(X509_ACERT *x, EVP_PKEY *pkey, const EVP_MD *md); +int X509_ACERT_sign_ctx(X509_ACERT *x, EVP_MD_CTX *ctx); +int X509_ACERT_verify(X509_ACERT *a, EVP_PKEY *r); + +# define X509_ACERT_VERSION_2 1 + +const GENERAL_NAMES *X509_ACERT_get0_holder_entityName(const X509_ACERT *x); +const OSSL_ISSUER_SERIAL *X509_ACERT_get0_holder_baseCertId(const X509_ACERT *x); +const OSSL_OBJECT_DIGEST_INFO * X509_ACERT_get0_holder_digest(const X509_ACERT *x); +const X509_NAME *X509_ACERT_get0_issuerName(const X509_ACERT *x); +long X509_ACERT_get_version(const X509_ACERT *x); +void X509_ACERT_get0_signature(const X509_ACERT *x, + const ASN1_BIT_STRING **psig, + const X509_ALGOR **palg); +int X509_ACERT_get_signature_nid(const X509_ACERT *x); +const X509_ALGOR *X509_ACERT_get0_info_sigalg(const X509_ACERT *x); +const ASN1_INTEGER *X509_ACERT_get0_serialNumber(const X509_ACERT *x); +const ASN1_TIME *X509_ACERT_get0_notBefore(const X509_ACERT *x); +const ASN1_TIME *X509_ACERT_get0_notAfter(const X509_ACERT *x); +const ASN1_BIT_STRING *X509_ACERT_get0_issuerUID(const X509_ACERT *x); + +int X509_ACERT_print(BIO *bp, X509_ACERT *x); +int X509_ACERT_print_ex(BIO *bp, X509_ACERT *x, unsigned long nmflags, + unsigned long cflag); + +int X509_ACERT_get_attr_count(const X509_ACERT *x); +int X509_ACERT_get_attr_by_NID(const X509_ACERT *x, int nid, int lastpos); +int X509_ACERT_get_attr_by_OBJ(const X509_ACERT *x, const ASN1_OBJECT *obj, + int lastpos); +X509_ATTRIBUTE *X509_ACERT_get_attr(const X509_ACERT *x, int loc); +X509_ATTRIBUTE *X509_ACERT_delete_attr(X509_ACERT *x, int loc); + +void *X509_ACERT_get_ext_d2i(const X509_ACERT *x, int nid, int *crit, int *idx); +int X509_ACERT_add1_ext_i2d(X509_ACERT *x, int nid, void *value, int crit, + unsigned long flags); +const STACK_OF(X509_EXTENSION) *X509_ACERT_get0_extensions(const X509_ACERT *x); + +# define OSSL_OBJECT_DIGEST_INFO_PUBLIC_KEY 0 +# define OSSL_OBJECT_DIGEST_INFO_PUBLIC_KEY_CERT 1 +# define OSSL_OBJECT_DIGEST_INFO_OTHER 2 /* must not be used in RFC 5755 profile */ +int X509_ACERT_set_version(X509_ACERT *x, long version); +void X509_ACERT_set0_holder_entityName(X509_ACERT *x, GENERAL_NAMES *name); +void X509_ACERT_set0_holder_baseCertId(X509_ACERT *x, OSSL_ISSUER_SERIAL *isss); +void X509_ACERT_set0_holder_digest(X509_ACERT *x, + OSSL_OBJECT_DIGEST_INFO *dinfo); + +int X509_ACERT_add1_attr(X509_ACERT *x, X509_ATTRIBUTE *attr); +int X509_ACERT_add1_attr_by_OBJ(X509_ACERT *x, const ASN1_OBJECT *obj, + int type, const void *bytes, int len); +int X509_ACERT_add1_attr_by_NID(X509_ACERT *x, int nid, int type, + const void *bytes, int len); +int X509_ACERT_add1_attr_by_txt(X509_ACERT *x, const char *attrname, int type, + const unsigned char *bytes, int len); +int X509_ACERT_add_attr_nconf(CONF *conf, const char *section, + X509_ACERT *acert); + +int X509_ACERT_set1_issuerName(X509_ACERT *x, const X509_NAME *name); +int X509_ACERT_set1_serialNumber(X509_ACERT *x, const ASN1_INTEGER *serial); +int X509_ACERT_set1_notBefore(X509_ACERT *x, const ASN1_GENERALIZEDTIME *time); +int X509_ACERT_set1_notAfter(X509_ACERT *x, const ASN1_GENERALIZEDTIME *time); + +void OSSL_OBJECT_DIGEST_INFO_get0_digest(const OSSL_OBJECT_DIGEST_INFO *o, + int *digestedObjectType, + const X509_ALGOR **digestAlgorithm, + const ASN1_BIT_STRING **digest); + +int OSSL_OBJECT_DIGEST_INFO_set1_digest(OSSL_OBJECT_DIGEST_INFO *o, + int digestedObjectType, + X509_ALGOR *digestAlgorithm, + ASN1_BIT_STRING *digest); + +const X509_NAME *OSSL_ISSUER_SERIAL_get0_issuer(const OSSL_ISSUER_SERIAL *isss); +const ASN1_INTEGER *OSSL_ISSUER_SERIAL_get0_serial(const OSSL_ISSUER_SERIAL *isss); +const ASN1_BIT_STRING *OSSL_ISSUER_SERIAL_get0_issuerUID(const OSSL_ISSUER_SERIAL *isss); + +int OSSL_ISSUER_SERIAL_set1_issuer(OSSL_ISSUER_SERIAL *isss, + const X509_NAME *issuer); +int OSSL_ISSUER_SERIAL_set1_serial(OSSL_ISSUER_SERIAL *isss, + const ASN1_INTEGER *serial); +int OSSL_ISSUER_SERIAL_set1_issuerUID(OSSL_ISSUER_SERIAL *isss, + const ASN1_BIT_STRING *uid); + +# define OSSL_IETFAS_OCTETS 0 +# define OSSL_IETFAS_OID 1 +# define OSSL_IETFAS_STRING 2 + +typedef struct OSSL_IETF_ATTR_SYNTAX_VALUE_st OSSL_IETF_ATTR_SYNTAX_VALUE; +typedef struct OSSL_IETF_ATTR_SYNTAX_st OSSL_IETF_ATTR_SYNTAX; +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_IETF_ATTR_SYNTAX_VALUE, OSSL_IETF_ATTR_SYNTAX_VALUE, OSSL_IETF_ATTR_SYNTAX_VALUE) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_value(sk, idx) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_value(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), (idx))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_new(cmp) ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_new(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_compfunc_type(cmp))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_new_null() ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_new_null()) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_new_reserve(cmp, n) ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_compfunc_type(cmp), (n))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), (n)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_free(sk) OPENSSL_sk_free(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_delete(sk, i) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_delete(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), (i))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_delete_ptr(sk, ptr) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_pop(sk) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_pop(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_shift(sk) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_shift(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk),ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_freefunc_type(freefunc)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr), (idx)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_set(sk, idx, ptr) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_set(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), (idx), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr), pnum) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_dup(sk) ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_dup(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_copyfunc_type(copyfunc), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_freefunc_type(freefunc))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_set_cmp_func(sk, cmp) ((sk_OSSL_IETF_ATTR_SYNTAX_VALUE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_compfunc_type(cmp))) + + +DECLARE_ASN1_ITEM(OSSL_IETF_ATTR_SYNTAX_VALUE) +DECLARE_ASN1_ALLOC_FUNCTIONS(OSSL_IETF_ATTR_SYNTAX_VALUE) +DECLARE_ASN1_FUNCTIONS(OSSL_IETF_ATTR_SYNTAX) + +const GENERAL_NAMES * +OSSL_IETF_ATTR_SYNTAX_get0_policyAuthority(const OSSL_IETF_ATTR_SYNTAX *a); +void OSSL_IETF_ATTR_SYNTAX_set0_policyAuthority(OSSL_IETF_ATTR_SYNTAX *a, + GENERAL_NAMES *names); + +int OSSL_IETF_ATTR_SYNTAX_get_value_num(const OSSL_IETF_ATTR_SYNTAX *a); +void *OSSL_IETF_ATTR_SYNTAX_get0_value(const OSSL_IETF_ATTR_SYNTAX *a, + int ind, int *type); +int OSSL_IETF_ATTR_SYNTAX_add1_value(OSSL_IETF_ATTR_SYNTAX *a, int type, + void *data); +int OSSL_IETF_ATTR_SYNTAX_print(BIO *bp, OSSL_IETF_ATTR_SYNTAX *a, int indent); + +struct TARGET_CERT_st { + OSSL_ISSUER_SERIAL *targetCertificate; + GENERAL_NAME *targetName; + OSSL_OBJECT_DIGEST_INFO *certDigestInfo; +}; + +typedef struct TARGET_CERT_st OSSL_TARGET_CERT; + +# define OSSL_TGT_TARGET_NAME 0 +# define OSSL_TGT_TARGET_GROUP 1 +# define OSSL_TGT_TARGET_CERT 2 + +typedef struct TARGET_st { + int type; + union { + GENERAL_NAME *targetName; + GENERAL_NAME *targetGroup; + OSSL_TARGET_CERT *targetCert; + } choice; +} OSSL_TARGET; + +typedef STACK_OF(OSSL_TARGET) OSSL_TARGETS; +typedef STACK_OF(OSSL_TARGETS) OSSL_TARGETING_INFORMATION; + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_TARGET, OSSL_TARGET, OSSL_TARGET) +#define sk_OSSL_TARGET_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_value(sk, idx) ((OSSL_TARGET *)OPENSSL_sk_value(ossl_check_const_OSSL_TARGET_sk_type(sk), (idx))) +#define sk_OSSL_TARGET_new(cmp) ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_new(ossl_check_OSSL_TARGET_compfunc_type(cmp))) +#define sk_OSSL_TARGET_new_null() ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_new_null()) +#define sk_OSSL_TARGET_new_reserve(cmp, n) ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_TARGET_compfunc_type(cmp), (n))) +#define sk_OSSL_TARGET_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_TARGET_sk_type(sk), (n)) +#define sk_OSSL_TARGET_free(sk) OPENSSL_sk_free(ossl_check_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_delete(sk, i) ((OSSL_TARGET *)OPENSSL_sk_delete(ossl_check_OSSL_TARGET_sk_type(sk), (i))) +#define sk_OSSL_TARGET_delete_ptr(sk, ptr) ((OSSL_TARGET *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr))) +#define sk_OSSL_TARGET_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr)) +#define sk_OSSL_TARGET_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr)) +#define sk_OSSL_TARGET_pop(sk) ((OSSL_TARGET *)OPENSSL_sk_pop(ossl_check_OSSL_TARGET_sk_type(sk))) +#define sk_OSSL_TARGET_shift(sk) ((OSSL_TARGET *)OPENSSL_sk_shift(ossl_check_OSSL_TARGET_sk_type(sk))) +#define sk_OSSL_TARGET_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_TARGET_sk_type(sk),ossl_check_OSSL_TARGET_freefunc_type(freefunc)) +#define sk_OSSL_TARGET_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr), (idx)) +#define sk_OSSL_TARGET_set(sk, idx, ptr) ((OSSL_TARGET *)OPENSSL_sk_set(ossl_check_OSSL_TARGET_sk_type(sk), (idx), ossl_check_OSSL_TARGET_type(ptr))) +#define sk_OSSL_TARGET_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr)) +#define sk_OSSL_TARGET_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr)) +#define sk_OSSL_TARGET_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr), pnum) +#define sk_OSSL_TARGET_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_dup(sk) ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_dup(ossl_check_const_OSSL_TARGET_sk_type(sk))) +#define sk_OSSL_TARGET_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_copyfunc_type(copyfunc), ossl_check_OSSL_TARGET_freefunc_type(freefunc))) +#define sk_OSSL_TARGET_set_cmp_func(sk, cmp) ((sk_OSSL_TARGET_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_compfunc_type(cmp))) + + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_TARGETS, OSSL_TARGETS, OSSL_TARGETS) +#define sk_OSSL_TARGETS_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_value(sk, idx) ((OSSL_TARGETS *)OPENSSL_sk_value(ossl_check_const_OSSL_TARGETS_sk_type(sk), (idx))) +#define sk_OSSL_TARGETS_new(cmp) ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_new(ossl_check_OSSL_TARGETS_compfunc_type(cmp))) +#define sk_OSSL_TARGETS_new_null() ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_new_null()) +#define sk_OSSL_TARGETS_new_reserve(cmp, n) ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_TARGETS_compfunc_type(cmp), (n))) +#define sk_OSSL_TARGETS_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_TARGETS_sk_type(sk), (n)) +#define sk_OSSL_TARGETS_free(sk) OPENSSL_sk_free(ossl_check_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_delete(sk, i) ((OSSL_TARGETS *)OPENSSL_sk_delete(ossl_check_OSSL_TARGETS_sk_type(sk), (i))) +#define sk_OSSL_TARGETS_delete_ptr(sk, ptr) ((OSSL_TARGETS *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr))) +#define sk_OSSL_TARGETS_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr)) +#define sk_OSSL_TARGETS_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr)) +#define sk_OSSL_TARGETS_pop(sk) ((OSSL_TARGETS *)OPENSSL_sk_pop(ossl_check_OSSL_TARGETS_sk_type(sk))) +#define sk_OSSL_TARGETS_shift(sk) ((OSSL_TARGETS *)OPENSSL_sk_shift(ossl_check_OSSL_TARGETS_sk_type(sk))) +#define sk_OSSL_TARGETS_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_TARGETS_sk_type(sk),ossl_check_OSSL_TARGETS_freefunc_type(freefunc)) +#define sk_OSSL_TARGETS_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr), (idx)) +#define sk_OSSL_TARGETS_set(sk, idx, ptr) ((OSSL_TARGETS *)OPENSSL_sk_set(ossl_check_OSSL_TARGETS_sk_type(sk), (idx), ossl_check_OSSL_TARGETS_type(ptr))) +#define sk_OSSL_TARGETS_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr)) +#define sk_OSSL_TARGETS_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr)) +#define sk_OSSL_TARGETS_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr), pnum) +#define sk_OSSL_TARGETS_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_dup(sk) ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_dup(ossl_check_const_OSSL_TARGETS_sk_type(sk))) +#define sk_OSSL_TARGETS_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_copyfunc_type(copyfunc), ossl_check_OSSL_TARGETS_freefunc_type(freefunc))) +#define sk_OSSL_TARGETS_set_cmp_func(sk, cmp) ((sk_OSSL_TARGETS_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_compfunc_type(cmp))) + + +DECLARE_ASN1_FUNCTIONS(OSSL_TARGET) +DECLARE_ASN1_FUNCTIONS(OSSL_TARGETS) +DECLARE_ASN1_FUNCTIONS(OSSL_TARGETING_INFORMATION) + +typedef STACK_OF(OSSL_ISSUER_SERIAL) OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX; +DECLARE_ASN1_FUNCTIONS(OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ISSUER_SERIAL, OSSL_ISSUER_SERIAL, OSSL_ISSUER_SERIAL) +#define sk_OSSL_ISSUER_SERIAL_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_value(sk, idx) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_value(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk), (idx))) +#define sk_OSSL_ISSUER_SERIAL_new(cmp) ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_new(ossl_check_OSSL_ISSUER_SERIAL_compfunc_type(cmp))) +#define sk_OSSL_ISSUER_SERIAL_new_null() ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ISSUER_SERIAL_new_reserve(cmp, n) ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ISSUER_SERIAL_compfunc_type(cmp), (n))) +#define sk_OSSL_ISSUER_SERIAL_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), (n)) +#define sk_OSSL_ISSUER_SERIAL_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_delete(sk, i) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_delete(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), (i))) +#define sk_OSSL_ISSUER_SERIAL_delete_ptr(sk, ptr) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr))) +#define sk_OSSL_ISSUER_SERIAL_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr)) +#define sk_OSSL_ISSUER_SERIAL_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr)) +#define sk_OSSL_ISSUER_SERIAL_pop(sk) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_pop(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk))) +#define sk_OSSL_ISSUER_SERIAL_shift(sk) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_shift(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk))) +#define sk_OSSL_ISSUER_SERIAL_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk),ossl_check_OSSL_ISSUER_SERIAL_freefunc_type(freefunc)) +#define sk_OSSL_ISSUER_SERIAL_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr), (idx)) +#define sk_OSSL_ISSUER_SERIAL_set(sk, idx, ptr) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_set(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), (idx), ossl_check_OSSL_ISSUER_SERIAL_type(ptr))) +#define sk_OSSL_ISSUER_SERIAL_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr)) +#define sk_OSSL_ISSUER_SERIAL_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr)) +#define sk_OSSL_ISSUER_SERIAL_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr), pnum) +#define sk_OSSL_ISSUER_SERIAL_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_dup(sk) ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk))) +#define sk_OSSL_ISSUER_SERIAL_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_copyfunc_type(copyfunc), ossl_check_OSSL_ISSUER_SERIAL_freefunc_type(freefunc))) +#define sk_OSSL_ISSUER_SERIAL_set_cmp_func(sk, cmp) ((sk_OSSL_ISSUER_SERIAL_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_compfunc_type(cmp))) + + +#endif diff --git a/deps/openssl/config/archs/linux-armv4/asm_avx2/include/openssl/x509_vfy.h b/deps/openssl/config/archs/linux-armv4/asm_avx2/include/openssl/x509_vfy.h index 29b0e147adcab1..c9bdc3b39d685d 100644 --- a/deps/openssl/config/archs/linux-armv4/asm_avx2/include/openssl/x509_vfy.h +++ b/deps/openssl/config/archs/linux-armv4/asm_avx2/include/openssl/x509_vfy.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/x509_vfy.h.in * - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -411,6 +411,7 @@ X509_LOOKUP_ctrl_ex((x), X509_L_ADD_STORE, (name), 0, NULL, \ # define X509_V_ERR_CA_CERT_MISSING_KEY_USAGE 92 # define X509_V_ERR_EXTENSIONS_REQUIRE_VERSION_3 93 # define X509_V_ERR_EC_KEY_EXPLICIT_PARAMS 94 +# define X509_V_ERR_RPK_UNTRUSTED 95 /* Certificate verify flags */ # ifndef OPENSSL_NO_DEPRECATED_1_1_0 @@ -491,71 +492,72 @@ int X509_OBJECT_set1_X509(X509_OBJECT *a, X509 *obj); X509_CRL *X509_OBJECT_get0_X509_CRL(const X509_OBJECT *a); int X509_OBJECT_set1_X509_CRL(X509_OBJECT *a, X509_CRL *obj); X509_STORE *X509_STORE_new(void); -void X509_STORE_free(X509_STORE *v); -int X509_STORE_lock(X509_STORE *ctx); -int X509_STORE_unlock(X509_STORE *ctx); -int X509_STORE_up_ref(X509_STORE *v); -STACK_OF(X509_OBJECT) *X509_STORE_get0_objects(const X509_STORE *v); -STACK_OF(X509) *X509_STORE_get1_all_certs(X509_STORE *st); -STACK_OF(X509) *X509_STORE_CTX_get1_certs(X509_STORE_CTX *st, +void X509_STORE_free(X509_STORE *xs); +int X509_STORE_lock(X509_STORE *xs); +int X509_STORE_unlock(X509_STORE *xs); +int X509_STORE_up_ref(X509_STORE *xs); +STACK_OF(X509_OBJECT) *X509_STORE_get0_objects(const X509_STORE *xs); +STACK_OF(X509_OBJECT) *X509_STORE_get1_objects(X509_STORE *xs); +STACK_OF(X509) *X509_STORE_get1_all_certs(X509_STORE *xs); +STACK_OF(X509) *X509_STORE_CTX_get1_certs(X509_STORE_CTX *xs, const X509_NAME *nm); STACK_OF(X509_CRL) *X509_STORE_CTX_get1_crls(const X509_STORE_CTX *st, const X509_NAME *nm); -int X509_STORE_set_flags(X509_STORE *ctx, unsigned long flags); -int X509_STORE_set_purpose(X509_STORE *ctx, int purpose); -int X509_STORE_set_trust(X509_STORE *ctx, int trust); -int X509_STORE_set1_param(X509_STORE *ctx, const X509_VERIFY_PARAM *pm); -X509_VERIFY_PARAM *X509_STORE_get0_param(const X509_STORE *ctx); +int X509_STORE_set_flags(X509_STORE *xs, unsigned long flags); +int X509_STORE_set_purpose(X509_STORE *xs, int purpose); +int X509_STORE_set_trust(X509_STORE *xs, int trust); +int X509_STORE_set1_param(X509_STORE *xs, const X509_VERIFY_PARAM *pm); +X509_VERIFY_PARAM *X509_STORE_get0_param(const X509_STORE *xs); -void X509_STORE_set_verify(X509_STORE *ctx, X509_STORE_CTX_verify_fn verify); +void X509_STORE_set_verify(X509_STORE *xs, X509_STORE_CTX_verify_fn verify); #define X509_STORE_set_verify_func(ctx, func) \ X509_STORE_set_verify((ctx),(func)) void X509_STORE_CTX_set_verify(X509_STORE_CTX *ctx, X509_STORE_CTX_verify_fn verify); -X509_STORE_CTX_verify_fn X509_STORE_get_verify(const X509_STORE *ctx); -void X509_STORE_set_verify_cb(X509_STORE *ctx, +X509_STORE_CTX_verify_fn X509_STORE_get_verify(const X509_STORE *xs); +void X509_STORE_set_verify_cb(X509_STORE *xs, X509_STORE_CTX_verify_cb verify_cb); # define X509_STORE_set_verify_cb_func(ctx,func) \ X509_STORE_set_verify_cb((ctx),(func)) -X509_STORE_CTX_verify_cb X509_STORE_get_verify_cb(const X509_STORE *ctx); -void X509_STORE_set_get_issuer(X509_STORE *ctx, +X509_STORE_CTX_verify_cb X509_STORE_get_verify_cb(const X509_STORE *xs); +void X509_STORE_set_get_issuer(X509_STORE *xs, X509_STORE_CTX_get_issuer_fn get_issuer); -X509_STORE_CTX_get_issuer_fn X509_STORE_get_get_issuer(const X509_STORE *ctx); -void X509_STORE_set_check_issued(X509_STORE *ctx, +X509_STORE_CTX_get_issuer_fn X509_STORE_get_get_issuer(const X509_STORE *xs); +void X509_STORE_set_check_issued(X509_STORE *xs, X509_STORE_CTX_check_issued_fn check_issued); -X509_STORE_CTX_check_issued_fn X509_STORE_get_check_issued(const X509_STORE *ctx); -void X509_STORE_set_check_revocation(X509_STORE *ctx, +X509_STORE_CTX_check_issued_fn X509_STORE_get_check_issued(const X509_STORE *s); +void X509_STORE_set_check_revocation(X509_STORE *xs, X509_STORE_CTX_check_revocation_fn check_revocation); X509_STORE_CTX_check_revocation_fn - X509_STORE_get_check_revocation(const X509_STORE *ctx); -void X509_STORE_set_get_crl(X509_STORE *ctx, + X509_STORE_get_check_revocation(const X509_STORE *xs); +void X509_STORE_set_get_crl(X509_STORE *xs, X509_STORE_CTX_get_crl_fn get_crl); -X509_STORE_CTX_get_crl_fn X509_STORE_get_get_crl(const X509_STORE *ctx); -void X509_STORE_set_check_crl(X509_STORE *ctx, +X509_STORE_CTX_get_crl_fn X509_STORE_get_get_crl(const X509_STORE *xs); +void X509_STORE_set_check_crl(X509_STORE *xs, X509_STORE_CTX_check_crl_fn check_crl); -X509_STORE_CTX_check_crl_fn X509_STORE_get_check_crl(const X509_STORE *ctx); -void X509_STORE_set_cert_crl(X509_STORE *ctx, +X509_STORE_CTX_check_crl_fn X509_STORE_get_check_crl(const X509_STORE *xs); +void X509_STORE_set_cert_crl(X509_STORE *xs, X509_STORE_CTX_cert_crl_fn cert_crl); -X509_STORE_CTX_cert_crl_fn X509_STORE_get_cert_crl(const X509_STORE *ctx); -void X509_STORE_set_check_policy(X509_STORE *ctx, +X509_STORE_CTX_cert_crl_fn X509_STORE_get_cert_crl(const X509_STORE *xs); +void X509_STORE_set_check_policy(X509_STORE *xs, X509_STORE_CTX_check_policy_fn check_policy); -X509_STORE_CTX_check_policy_fn X509_STORE_get_check_policy(const X509_STORE *ctx); -void X509_STORE_set_lookup_certs(X509_STORE *ctx, +X509_STORE_CTX_check_policy_fn X509_STORE_get_check_policy(const X509_STORE *s); +void X509_STORE_set_lookup_certs(X509_STORE *xs, X509_STORE_CTX_lookup_certs_fn lookup_certs); -X509_STORE_CTX_lookup_certs_fn X509_STORE_get_lookup_certs(const X509_STORE *ctx); -void X509_STORE_set_lookup_crls(X509_STORE *ctx, +X509_STORE_CTX_lookup_certs_fn X509_STORE_get_lookup_certs(const X509_STORE *s); +void X509_STORE_set_lookup_crls(X509_STORE *xs, X509_STORE_CTX_lookup_crls_fn lookup_crls); #define X509_STORE_set_lookup_crls_cb(ctx, func) \ X509_STORE_set_lookup_crls((ctx), (func)) -X509_STORE_CTX_lookup_crls_fn X509_STORE_get_lookup_crls(const X509_STORE *ctx); -void X509_STORE_set_cleanup(X509_STORE *ctx, +X509_STORE_CTX_lookup_crls_fn X509_STORE_get_lookup_crls(const X509_STORE *xs); +void X509_STORE_set_cleanup(X509_STORE *xs, X509_STORE_CTX_cleanup_fn cleanup); -X509_STORE_CTX_cleanup_fn X509_STORE_get_cleanup(const X509_STORE *ctx); +X509_STORE_CTX_cleanup_fn X509_STORE_get_cleanup(const X509_STORE *xs); #define X509_STORE_get_ex_new_index(l, p, newf, dupf, freef) \ CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_X509_STORE, l, p, newf, dupf, freef) -int X509_STORE_set_ex_data(X509_STORE *ctx, int idx, void *data); -void *X509_STORE_get_ex_data(const X509_STORE *ctx, int idx); +int X509_STORE_set_ex_data(X509_STORE *xs, int idx, void *data); +void *X509_STORE_get_ex_data(const X509_STORE *xs, int idx); X509_STORE_CTX *X509_STORE_CTX_new_ex(OSSL_LIB_CTX *libctx, const char *propq); X509_STORE_CTX *X509_STORE_CTX_new(void); @@ -565,11 +567,14 @@ int X509_STORE_CTX_get1_issuer(X509 **issuer, X509_STORE_CTX *ctx, X509 *x); void X509_STORE_CTX_free(X509_STORE_CTX *ctx); int X509_STORE_CTX_init(X509_STORE_CTX *ctx, X509_STORE *trust_store, X509 *target, STACK_OF(X509) *untrusted); +int X509_STORE_CTX_init_rpk(X509_STORE_CTX *ctx, X509_STORE *trust_store, + EVP_PKEY* rpk); void X509_STORE_CTX_set0_trusted_stack(X509_STORE_CTX *ctx, STACK_OF(X509) *sk); void X509_STORE_CTX_cleanup(X509_STORE_CTX *ctx); X509_STORE *X509_STORE_CTX_get0_store(const X509_STORE_CTX *ctx); X509 *X509_STORE_CTX_get0_cert(const X509_STORE_CTX *ctx); +EVP_PKEY *X509_STORE_CTX_get0_rpk(const X509_STORE_CTX *ctx); STACK_OF(X509)* X509_STORE_CTX_get0_untrusted(const X509_STORE_CTX *ctx); void X509_STORE_CTX_set0_untrusted(X509_STORE_CTX *ctx, STACK_OF(X509) *sk); void X509_STORE_CTX_set_verify_cb(X509_STORE_CTX *ctx, @@ -579,6 +584,8 @@ X509_STORE_CTX_verify_fn X509_STORE_CTX_get_verify(const X509_STORE_CTX *ctx); X509_STORE_CTX_get_issuer_fn X509_STORE_CTX_get_get_issuer(const X509_STORE_CTX *ctx); X509_STORE_CTX_check_issued_fn X509_STORE_CTX_get_check_issued(const X509_STORE_CTX *ctx); X509_STORE_CTX_check_revocation_fn X509_STORE_CTX_get_check_revocation(const X509_STORE_CTX *ctx); +void X509_STORE_CTX_set_get_crl(X509_STORE_CTX *ctx, + X509_STORE_CTX_get_crl_fn get_crl); X509_STORE_CTX_get_crl_fn X509_STORE_CTX_get_get_crl(const X509_STORE_CTX *ctx); X509_STORE_CTX_check_crl_fn X509_STORE_CTX_get_check_crl(const X509_STORE_CTX *ctx); X509_STORE_CTX_cert_crl_fn X509_STORE_CTX_get_cert_crl(const X509_STORE_CTX *ctx); @@ -600,7 +607,7 @@ X509_STORE_CTX_cleanup_fn X509_STORE_CTX_get_cleanup(const X509_STORE_CTX *ctx); # define X509_STORE_get1_crl X509_STORE_CTX_get1_crls #endif -X509_LOOKUP *X509_STORE_add_lookup(X509_STORE *v, X509_LOOKUP_METHOD *m); +X509_LOOKUP *X509_STORE_add_lookup(X509_STORE *xs, X509_LOOKUP_METHOD *m); X509_LOOKUP_METHOD *X509_LOOKUP_hash_dir(void); X509_LOOKUP_METHOD *X509_LOOKUP_file(void); X509_LOOKUP_METHOD *X509_LOOKUP_store(void); @@ -685,8 +692,8 @@ X509_LOOKUP_get_by_alias_fn X509_LOOKUP_meth_get_get_by_alias( const X509_LOOKUP_METHOD *method); -int X509_STORE_add_cert(X509_STORE *ctx, X509 *x); -int X509_STORE_add_crl(X509_STORE *ctx, X509_CRL *x); +int X509_STORE_add_cert(X509_STORE *xs, X509 *x); +int X509_STORE_add_crl(X509_STORE *xs, X509_CRL *x); int X509_STORE_CTX_get_by_subject(const X509_STORE_CTX *vs, X509_LOOKUP_TYPE type, @@ -730,23 +737,21 @@ void *X509_LOOKUP_get_method_data(const X509_LOOKUP *ctx); X509_STORE *X509_LOOKUP_get_store(const X509_LOOKUP *ctx); int X509_LOOKUP_shutdown(X509_LOOKUP *ctx); -int X509_STORE_load_file(X509_STORE *ctx, const char *file); -int X509_STORE_load_path(X509_STORE *ctx, const char *path); -int X509_STORE_load_store(X509_STORE *ctx, const char *store); -int X509_STORE_load_locations(X509_STORE *ctx, - const char *file, - const char *dir); -int X509_STORE_set_default_paths(X509_STORE *ctx); +int X509_STORE_load_file(X509_STORE *xs, const char *file); +int X509_STORE_load_path(X509_STORE *xs, const char *path); +int X509_STORE_load_store(X509_STORE *xs, const char *store); +int X509_STORE_load_locations(X509_STORE *s, const char *file, const char *dir); +int X509_STORE_set_default_paths(X509_STORE *xs); -int X509_STORE_load_file_ex(X509_STORE *ctx, const char *file, +int X509_STORE_load_file_ex(X509_STORE *xs, const char *file, OSSL_LIB_CTX *libctx, const char *propq); -int X509_STORE_load_store_ex(X509_STORE *ctx, const char *store, +int X509_STORE_load_store_ex(X509_STORE *xs, const char *store, OSSL_LIB_CTX *libctx, const char *propq); -int X509_STORE_load_locations_ex(X509_STORE *ctx, const char *file, - const char *dir, OSSL_LIB_CTX *libctx, - const char *propq); -int X509_STORE_set_default_paths_ex(X509_STORE *ctx, OSSL_LIB_CTX *libctx, - const char *propq); +int X509_STORE_load_locations_ex(X509_STORE *xs, + const char *file, const char *dir, + OSSL_LIB_CTX *libctx, const char *propq); +int X509_STORE_set_default_paths_ex(X509_STORE *xs, + OSSL_LIB_CTX *libctx, const char *propq); #define X509_STORE_CTX_get_ex_new_index(l, p, newf, dupf, freef) \ CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_X509_STORE_CTX, l, p, newf, dupf, freef) @@ -764,6 +769,7 @@ X509_STORE_CTX *X509_STORE_CTX_get0_parent_ctx(const X509_STORE_CTX *ctx); STACK_OF(X509) *X509_STORE_CTX_get0_chain(const X509_STORE_CTX *ctx); STACK_OF(X509) *X509_STORE_CTX_get1_chain(const X509_STORE_CTX *ctx); void X509_STORE_CTX_set_cert(X509_STORE_CTX *ctx, X509 *target); +void X509_STORE_CTX_set0_rpk(X509_STORE_CTX *ctx, EVP_PKEY *target); void X509_STORE_CTX_set0_verified_chain(X509_STORE_CTX *c, STACK_OF(X509) *sk); void X509_STORE_CTX_set0_crls(X509_STORE_CTX *ctx, STACK_OF(X509_CRL) *sk); int X509_STORE_CTX_set_purpose(X509_STORE_CTX *ctx, int purpose); @@ -773,6 +779,8 @@ int X509_STORE_CTX_purpose_inherit(X509_STORE_CTX *ctx, int def_purpose, void X509_STORE_CTX_set_flags(X509_STORE_CTX *ctx, unsigned long flags); void X509_STORE_CTX_set_time(X509_STORE_CTX *ctx, unsigned long flags, time_t t); +void X509_STORE_CTX_set_current_reasons(X509_STORE_CTX *ctx, + unsigned int current_reasons); X509_POLICY_TREE *X509_STORE_CTX_get0_policy_tree(const X509_STORE_CTX *ctx); int X509_STORE_CTX_get_explicit_policy(const X509_STORE_CTX *ctx); @@ -804,6 +812,7 @@ int X509_VERIFY_PARAM_clear_flags(X509_VERIFY_PARAM *param, unsigned long flags); unsigned long X509_VERIFY_PARAM_get_flags(const X509_VERIFY_PARAM *param); int X509_VERIFY_PARAM_set_purpose(X509_VERIFY_PARAM *param, int purpose); +int X509_VERIFY_PARAM_get_purpose(const X509_VERIFY_PARAM *param); int X509_VERIFY_PARAM_set_trust(X509_VERIFY_PARAM *param, int trust); void X509_VERIFY_PARAM_set_depth(X509_VERIFY_PARAM *param, int depth); void X509_VERIFY_PARAM_set_auth_level(X509_VERIFY_PARAM *param, int auth_level); diff --git a/deps/openssl/config/archs/linux-armv4/asm_avx2/include/openssl/x509v3.h b/deps/openssl/config/archs/linux-armv4/asm_avx2/include/openssl/x509v3.h index 20b67455f2061d..b8dabac35a4915 100644 --- a/deps/openssl/config/archs/linux-armv4/asm_avx2/include/openssl/x509v3.h +++ b/deps/openssl/config/archs/linux-armv4/asm_avx2/include/openssl/x509v3.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/x509v3.h.in * - * Copyright 1999-2023 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1999-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -25,6 +25,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -146,6 +149,11 @@ typedef struct BASIC_CONSTRAINTS_st { ASN1_INTEGER *pathlen; } BASIC_CONSTRAINTS; +typedef struct OSSL_BASIC_ATTR_CONSTRAINTS_st { + int authority; + ASN1_INTEGER *pathlen; +} OSSL_BASIC_ATTR_CONSTRAINTS; + typedef struct PKEY_USAGE_PERIOD_st { ASN1_GENERALIZEDTIME *notBefore; ASN1_GENERALIZEDTIME *notAfter; @@ -198,6 +206,8 @@ typedef struct ACCESS_DESCRIPTION_st { GENERAL_NAME *location; } ACCESS_DESCRIPTION; +int GENERAL_NAME_set1_X509_NAME(GENERAL_NAME **tgt, const X509_NAME *src); + SKM_DEFINE_STACK_OF_INTERNAL(ACCESS_DESCRIPTION, ACCESS_DESCRIPTION, ACCESS_DESCRIPTION) #define sk_ACCESS_DESCRIPTION_num(sk) OPENSSL_sk_num(ossl_check_const_ACCESS_DESCRIPTION_sk_type(sk)) #define sk_ACCESS_DESCRIPTION_value(sk, idx) ((ACCESS_DESCRIPTION *)OPENSSL_sk_value(ossl_check_const_ACCESS_DESCRIPTION_sk_type(sk), (idx))) @@ -294,6 +304,7 @@ typedef struct DIST_POINT_NAME_st { /* If relativename then this contains the full distribution point name */ X509_NAME *dpname; } DIST_POINT_NAME; +DECLARE_ASN1_DUP_FUNCTION(DIST_POINT_NAME) /* All existing reasons */ # define CRLDP_ALL_REASONS 0x807f @@ -659,15 +670,16 @@ struct ISSUING_DIST_POINT_st { # define EXFLAG_SAN_CRITICAL 0x80000 # define EXFLAG_NO_FINGERPRINT 0x100000 -# define KU_DIGITAL_SIGNATURE 0x0080 -# define KU_NON_REPUDIATION 0x0040 -# define KU_KEY_ENCIPHERMENT 0x0020 -# define KU_DATA_ENCIPHERMENT 0x0010 -# define KU_KEY_AGREEMENT 0x0008 -# define KU_KEY_CERT_SIGN 0x0004 -# define KU_CRL_SIGN 0x0002 -# define KU_ENCIPHER_ONLY 0x0001 -# define KU_DECIPHER_ONLY 0x8000 +/* https://datatracker.ietf.org/doc/html/rfc5280#section-4.2.1.3 */ +# define KU_DIGITAL_SIGNATURE X509v3_KU_DIGITAL_SIGNATURE +# define KU_NON_REPUDIATION X509v3_KU_NON_REPUDIATION +# define KU_KEY_ENCIPHERMENT X509v3_KU_KEY_ENCIPHERMENT +# define KU_DATA_ENCIPHERMENT X509v3_KU_DATA_ENCIPHERMENT +# define KU_KEY_AGREEMENT X509v3_KU_KEY_AGREEMENT +# define KU_KEY_CERT_SIGN X509v3_KU_KEY_CERT_SIGN +# define KU_CRL_SIGN X509v3_KU_CRL_SIGN +# define KU_ENCIPHER_ONLY X509v3_KU_ENCIPHER_ONLY +# define KU_DECIPHER_ONLY X509v3_KU_DECIPHER_ONLY # define NS_SSL_CLIENT 0x80 # define NS_SSL_SERVER 0x40 @@ -729,7 +741,7 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_PURPOSE, X509_PURPOSE, X509_PURPOSE) #define sk_X509_PURPOSE_set_cmp_func(sk, cmp) ((sk_X509_PURPOSE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_X509_PURPOSE_sk_type(sk), ossl_check_X509_PURPOSE_compfunc_type(cmp))) - +# define X509_PURPOSE_DEFAULT_ANY 0 # define X509_PURPOSE_SSL_CLIENT 1 # define X509_PURPOSE_SSL_SERVER 2 # define X509_PURPOSE_NS_SSL_SERVER 3 @@ -739,9 +751,10 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_PURPOSE, X509_PURPOSE, X509_PURPOSE) # define X509_PURPOSE_ANY 7 # define X509_PURPOSE_OCSP_HELPER 8 # define X509_PURPOSE_TIMESTAMP_SIGN 9 +# define X509_PURPOSE_CODE_SIGN 10 # define X509_PURPOSE_MIN 1 -# define X509_PURPOSE_MAX 9 +# define X509_PURPOSE_MAX 10 /* Flags for X509V3_EXT_print() */ @@ -767,6 +780,7 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_PURPOSE, X509_PURPOSE, X509_PURPOSE) # define X509V3_ADD_SILENT 0x10 DECLARE_ASN1_FUNCTIONS(BASIC_CONSTRAINTS) +DECLARE_ASN1_FUNCTIONS(OSSL_BASIC_ATTR_CONSTRAINTS) DECLARE_ASN1_FUNCTIONS(SXNET) DECLARE_ASN1_FUNCTIONS(SXNETID) @@ -976,7 +990,6 @@ int X509V3_extensions_print(BIO *out, const char *title, int X509_check_ca(X509 *x); int X509_check_purpose(X509 *x, int id, int ca); int X509_supported_extension(X509_EXTENSION *ex); -int X509_PURPOSE_set(int *p, int purpose); int X509_check_issued(X509 *issuer, X509 *subject); int X509_check_akid(const X509 *issuer, const AUTHORITY_KEYID *akid); void X509_set_proxy_flag(X509 *x); @@ -992,22 +1005,26 @@ const GENERAL_NAMES *X509_get0_authority_issuer(X509 *x); const ASN1_INTEGER *X509_get0_authority_serial(X509 *x); int X509_PURPOSE_get_count(void); -X509_PURPOSE *X509_PURPOSE_get0(int idx); +int X509_PURPOSE_get_unused_id(OSSL_LIB_CTX *libctx); int X509_PURPOSE_get_by_sname(const char *sname); int X509_PURPOSE_get_by_id(int id); int X509_PURPOSE_add(int id, int trust, int flags, int (*ck) (const X509_PURPOSE *, const X509 *, int), const char *name, const char *sname, void *arg); +void X509_PURPOSE_cleanup(void); + +X509_PURPOSE *X509_PURPOSE_get0(int idx); +int X509_PURPOSE_get_id(const X509_PURPOSE *); char *X509_PURPOSE_get0_name(const X509_PURPOSE *xp); char *X509_PURPOSE_get0_sname(const X509_PURPOSE *xp); int X509_PURPOSE_get_trust(const X509_PURPOSE *xp); -void X509_PURPOSE_cleanup(void); -int X509_PURPOSE_get_id(const X509_PURPOSE *); +int X509_PURPOSE_set(int *p, int purpose); STACK_OF(OPENSSL_STRING) *X509_get1_email(X509 *x); STACK_OF(OPENSSL_STRING) *X509_REQ_get1_email(X509_REQ *x); void X509_email_free(STACK_OF(OPENSSL_STRING) *sk); STACK_OF(OPENSSL_STRING) *X509_get1_ocsp(X509 *x); + /* Flags for X509_check_* functions */ /* @@ -1444,6 +1461,507 @@ const ASN1_PRINTABLESTRING *PROFESSION_INFO_get0_registrationNumber( void PROFESSION_INFO_set0_registrationNumber( PROFESSION_INFO *pi, ASN1_PRINTABLESTRING *rn); +int OSSL_GENERAL_NAMES_print(BIO *out, GENERAL_NAMES *gens, int indent); + +typedef STACK_OF(X509_ATTRIBUTE) OSSL_ATTRIBUTES_SYNTAX; +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTES_SYNTAX) + +typedef STACK_OF(USERNOTICE) OSSL_USER_NOTICE_SYNTAX; +DECLARE_ASN1_FUNCTIONS(OSSL_USER_NOTICE_SYNTAX) + +SKM_DEFINE_STACK_OF_INTERNAL(USERNOTICE, USERNOTICE, USERNOTICE) +#define sk_USERNOTICE_num(sk) OPENSSL_sk_num(ossl_check_const_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_value(sk, idx) ((USERNOTICE *)OPENSSL_sk_value(ossl_check_const_USERNOTICE_sk_type(sk), (idx))) +#define sk_USERNOTICE_new(cmp) ((STACK_OF(USERNOTICE) *)OPENSSL_sk_new(ossl_check_USERNOTICE_compfunc_type(cmp))) +#define sk_USERNOTICE_new_null() ((STACK_OF(USERNOTICE) *)OPENSSL_sk_new_null()) +#define sk_USERNOTICE_new_reserve(cmp, n) ((STACK_OF(USERNOTICE) *)OPENSSL_sk_new_reserve(ossl_check_USERNOTICE_compfunc_type(cmp), (n))) +#define sk_USERNOTICE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_USERNOTICE_sk_type(sk), (n)) +#define sk_USERNOTICE_free(sk) OPENSSL_sk_free(ossl_check_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_zero(sk) OPENSSL_sk_zero(ossl_check_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_delete(sk, i) ((USERNOTICE *)OPENSSL_sk_delete(ossl_check_USERNOTICE_sk_type(sk), (i))) +#define sk_USERNOTICE_delete_ptr(sk, ptr) ((USERNOTICE *)OPENSSL_sk_delete_ptr(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr))) +#define sk_USERNOTICE_push(sk, ptr) OPENSSL_sk_push(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr)) +#define sk_USERNOTICE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr)) +#define sk_USERNOTICE_pop(sk) ((USERNOTICE *)OPENSSL_sk_pop(ossl_check_USERNOTICE_sk_type(sk))) +#define sk_USERNOTICE_shift(sk) ((USERNOTICE *)OPENSSL_sk_shift(ossl_check_USERNOTICE_sk_type(sk))) +#define sk_USERNOTICE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_USERNOTICE_sk_type(sk),ossl_check_USERNOTICE_freefunc_type(freefunc)) +#define sk_USERNOTICE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr), (idx)) +#define sk_USERNOTICE_set(sk, idx, ptr) ((USERNOTICE *)OPENSSL_sk_set(ossl_check_USERNOTICE_sk_type(sk), (idx), ossl_check_USERNOTICE_type(ptr))) +#define sk_USERNOTICE_find(sk, ptr) OPENSSL_sk_find(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr)) +#define sk_USERNOTICE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr)) +#define sk_USERNOTICE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr), pnum) +#define sk_USERNOTICE_sort(sk) OPENSSL_sk_sort(ossl_check_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_dup(sk) ((STACK_OF(USERNOTICE) *)OPENSSL_sk_dup(ossl_check_const_USERNOTICE_sk_type(sk))) +#define sk_USERNOTICE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(USERNOTICE) *)OPENSSL_sk_deep_copy(ossl_check_const_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_copyfunc_type(copyfunc), ossl_check_USERNOTICE_freefunc_type(freefunc))) +#define sk_USERNOTICE_set_cmp_func(sk, cmp) ((sk_USERNOTICE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_compfunc_type(cmp))) + + +typedef struct OSSL_ROLE_SPEC_CERT_ID_st { + GENERAL_NAME *roleName; + GENERAL_NAME *roleCertIssuer; + ASN1_INTEGER *roleCertSerialNumber; + GENERAL_NAMES *roleCertLocator; +} OSSL_ROLE_SPEC_CERT_ID; + +DECLARE_ASN1_FUNCTIONS(OSSL_ROLE_SPEC_CERT_ID) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ROLE_SPEC_CERT_ID, OSSL_ROLE_SPEC_CERT_ID, OSSL_ROLE_SPEC_CERT_ID) +#define sk_OSSL_ROLE_SPEC_CERT_ID_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_value(sk, idx) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_value(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), (idx))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_new(cmp) ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_new(ossl_check_OSSL_ROLE_SPEC_CERT_ID_compfunc_type(cmp))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_new_null() ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ROLE_SPEC_CERT_ID_new_reserve(cmp, n) ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ROLE_SPEC_CERT_ID_compfunc_type(cmp), (n))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), (n)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_delete(sk, i) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_delete(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), (i))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_delete_ptr(sk, ptr) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_pop(sk) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_pop(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_shift(sk) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_shift(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk),ossl_check_OSSL_ROLE_SPEC_CERT_ID_freefunc_type(freefunc)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr), (idx)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_set(sk, idx, ptr) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_set(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), (idx), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr), pnum) +#define sk_OSSL_ROLE_SPEC_CERT_ID_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_dup(sk) ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_copyfunc_type(copyfunc), ossl_check_OSSL_ROLE_SPEC_CERT_ID_freefunc_type(freefunc))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_set_cmp_func(sk, cmp) ((sk_OSSL_ROLE_SPEC_CERT_ID_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_compfunc_type(cmp))) + + +typedef STACK_OF(OSSL_ROLE_SPEC_CERT_ID) OSSL_ROLE_SPEC_CERT_ID_SYNTAX; + +DECLARE_ASN1_FUNCTIONS(OSSL_ROLE_SPEC_CERT_ID_SYNTAX) +typedef struct OSSL_HASH_st { + X509_ALGOR *algorithmIdentifier; + ASN1_BIT_STRING *hashValue; +} OSSL_HASH; + +typedef struct OSSL_INFO_SYNTAX_POINTER_st { + GENERAL_NAMES *name; + OSSL_HASH *hash; +} OSSL_INFO_SYNTAX_POINTER; + +# define OSSL_INFO_SYNTAX_TYPE_CONTENT 0 +# define OSSL_INFO_SYNTAX_TYPE_POINTER 1 + +typedef struct OSSL_INFO_SYNTAX_st { + int type; + union { + ASN1_STRING *content; + OSSL_INFO_SYNTAX_POINTER *pointer; + } choice; +} OSSL_INFO_SYNTAX; + +typedef struct OSSL_PRIVILEGE_POLICY_ID_st { + ASN1_OBJECT *privilegePolicy; + OSSL_INFO_SYNTAX *privPolSyntax; +} OSSL_PRIVILEGE_POLICY_ID; + +typedef struct OSSL_ATTRIBUTE_DESCRIPTOR_st { + ASN1_OBJECT *identifier; + ASN1_STRING *attributeSyntax; + ASN1_UTF8STRING *name; + ASN1_UTF8STRING *description; + OSSL_PRIVILEGE_POLICY_ID *dominationRule; +} OSSL_ATTRIBUTE_DESCRIPTOR; + +DECLARE_ASN1_FUNCTIONS(OSSL_HASH) +DECLARE_ASN1_FUNCTIONS(OSSL_INFO_SYNTAX) +DECLARE_ASN1_FUNCTIONS(OSSL_INFO_SYNTAX_POINTER) +DECLARE_ASN1_FUNCTIONS(OSSL_PRIVILEGE_POLICY_ID) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_DESCRIPTOR) + +typedef struct OSSL_TIME_SPEC_ABSOLUTE_st { + ASN1_GENERALIZEDTIME *startTime; + ASN1_GENERALIZEDTIME *endTime; +} OSSL_TIME_SPEC_ABSOLUTE; + +typedef struct OSSL_DAY_TIME_st { + ASN1_INTEGER *hour; + ASN1_INTEGER *minute; + ASN1_INTEGER *second; +} OSSL_DAY_TIME; + +typedef struct OSSL_DAY_TIME_BAND_st { + OSSL_DAY_TIME *startDayTime; + OSSL_DAY_TIME *endDayTime; +} OSSL_DAY_TIME_BAND; + +# define OSSL_NAMED_DAY_TYPE_INT 0 +# define OSSL_NAMED_DAY_TYPE_BIT 1 +# define OSSL_NAMED_DAY_INT_SUN 1 +# define OSSL_NAMED_DAY_INT_MON 2 +# define OSSL_NAMED_DAY_INT_TUE 3 +# define OSSL_NAMED_DAY_INT_WED 4 +# define OSSL_NAMED_DAY_INT_THU 5 +# define OSSL_NAMED_DAY_INT_FRI 6 +# define OSSL_NAMED_DAY_INT_SAT 7 +# define OSSL_NAMED_DAY_BIT_SUN 0 +# define OSSL_NAMED_DAY_BIT_MON 1 +# define OSSL_NAMED_DAY_BIT_TUE 2 +# define OSSL_NAMED_DAY_BIT_WED 3 +# define OSSL_NAMED_DAY_BIT_THU 4 +# define OSSL_NAMED_DAY_BIT_FRI 5 +# define OSSL_NAMED_DAY_BIT_SAT 6 + +typedef struct OSSL_NAMED_DAY_st { + int type; + union { + ASN1_INTEGER *intNamedDays; + ASN1_BIT_STRING *bitNamedDays; + } choice; +} OSSL_NAMED_DAY; + +# define OSSL_TIME_SPEC_X_DAY_OF_FIRST 0 +# define OSSL_TIME_SPEC_X_DAY_OF_SECOND 1 +# define OSSL_TIME_SPEC_X_DAY_OF_THIRD 2 +# define OSSL_TIME_SPEC_X_DAY_OF_FOURTH 3 +# define OSSL_TIME_SPEC_X_DAY_OF_FIFTH 4 + +typedef struct OSSL_TIME_SPEC_X_DAY_OF_st { + int type; + union { + OSSL_NAMED_DAY *first; + OSSL_NAMED_DAY *second; + OSSL_NAMED_DAY *third; + OSSL_NAMED_DAY *fourth; + OSSL_NAMED_DAY *fifth; + } choice; +} OSSL_TIME_SPEC_X_DAY_OF; + +# define OSSL_TIME_SPEC_DAY_TYPE_INT 0 +# define OSSL_TIME_SPEC_DAY_TYPE_BIT 1 +# define OSSL_TIME_SPEC_DAY_TYPE_DAY_OF 2 +# define OSSL_TIME_SPEC_DAY_BIT_SUN 0 +# define OSSL_TIME_SPEC_DAY_BIT_MON 1 +# define OSSL_TIME_SPEC_DAY_BIT_TUE 2 +# define OSSL_TIME_SPEC_DAY_BIT_WED 3 +# define OSSL_TIME_SPEC_DAY_BIT_THU 4 +# define OSSL_TIME_SPEC_DAY_BIT_FRI 5 +# define OSSL_TIME_SPEC_DAY_BIT_SAT 6 +# define OSSL_TIME_SPEC_DAY_INT_SUN 1 +# define OSSL_TIME_SPEC_DAY_INT_MON 2 +# define OSSL_TIME_SPEC_DAY_INT_TUE 3 +# define OSSL_TIME_SPEC_DAY_INT_WED 4 +# define OSSL_TIME_SPEC_DAY_INT_THU 5 +# define OSSL_TIME_SPEC_DAY_INT_FRI 6 +# define OSSL_TIME_SPEC_DAY_INT_SAT 7 + +typedef struct OSSL_TIME_SPEC_DAY_st { + int type; + union { + STACK_OF(ASN1_INTEGER) *intDay; + ASN1_BIT_STRING *bitDay; + OSSL_TIME_SPEC_X_DAY_OF *dayOf; + } choice; +} OSSL_TIME_SPEC_DAY; + +# define OSSL_TIME_SPEC_WEEKS_TYPE_ALL 0 +# define OSSL_TIME_SPEC_WEEKS_TYPE_INT 1 +# define OSSL_TIME_SPEC_WEEKS_TYPE_BIT 2 +# define OSSL_TIME_SPEC_BIT_WEEKS_1 0 +# define OSSL_TIME_SPEC_BIT_WEEKS_2 1 +# define OSSL_TIME_SPEC_BIT_WEEKS_3 2 +# define OSSL_TIME_SPEC_BIT_WEEKS_4 3 +# define OSSL_TIME_SPEC_BIT_WEEKS_5 4 + +typedef struct OSSL_TIME_SPEC_WEEKS_st { + int type; + union { + ASN1_NULL *allWeeks; + STACK_OF(ASN1_INTEGER) *intWeek; + ASN1_BIT_STRING *bitWeek; + } choice; +} OSSL_TIME_SPEC_WEEKS; + +# define OSSL_TIME_SPEC_MONTH_TYPE_ALL 0 +# define OSSL_TIME_SPEC_MONTH_TYPE_INT 1 +# define OSSL_TIME_SPEC_MONTH_TYPE_BIT 2 +# define OSSL_TIME_SPEC_INT_MONTH_JAN 1 +# define OSSL_TIME_SPEC_INT_MONTH_FEB 2 +# define OSSL_TIME_SPEC_INT_MONTH_MAR 3 +# define OSSL_TIME_SPEC_INT_MONTH_APR 4 +# define OSSL_TIME_SPEC_INT_MONTH_MAY 5 +# define OSSL_TIME_SPEC_INT_MONTH_JUN 6 +# define OSSL_TIME_SPEC_INT_MONTH_JUL 7 +# define OSSL_TIME_SPEC_INT_MONTH_AUG 8 +# define OSSL_TIME_SPEC_INT_MONTH_SEP 9 +# define OSSL_TIME_SPEC_INT_MONTH_OCT 10 +# define OSSL_TIME_SPEC_INT_MONTH_NOV 11 +# define OSSL_TIME_SPEC_INT_MONTH_DEC 12 +# define OSSL_TIME_SPEC_BIT_MONTH_JAN 0 +# define OSSL_TIME_SPEC_BIT_MONTH_FEB 1 +# define OSSL_TIME_SPEC_BIT_MONTH_MAR 2 +# define OSSL_TIME_SPEC_BIT_MONTH_APR 3 +# define OSSL_TIME_SPEC_BIT_MONTH_MAY 4 +# define OSSL_TIME_SPEC_BIT_MONTH_JUN 5 +# define OSSL_TIME_SPEC_BIT_MONTH_JUL 6 +# define OSSL_TIME_SPEC_BIT_MONTH_AUG 7 +# define OSSL_TIME_SPEC_BIT_MONTH_SEP 8 +# define OSSL_TIME_SPEC_BIT_MONTH_OCT 9 +# define OSSL_TIME_SPEC_BIT_MONTH_NOV 10 +# define OSSL_TIME_SPEC_BIT_MONTH_DEC 11 + +typedef struct OSSL_TIME_SPEC_MONTH_st { + int type; + union { + ASN1_NULL *allMonths; + STACK_OF(ASN1_INTEGER) *intMonth; + ASN1_BIT_STRING *bitMonth; + } choice; +} OSSL_TIME_SPEC_MONTH; + +typedef struct OSSL_TIME_PERIOD_st { + STACK_OF(OSSL_DAY_TIME_BAND) *timesOfDay; + OSSL_TIME_SPEC_DAY *days; + OSSL_TIME_SPEC_WEEKS *weeks; + OSSL_TIME_SPEC_MONTH *months; + STACK_OF(ASN1_INTEGER) *years; +} OSSL_TIME_PERIOD; + +# define OSSL_TIME_SPEC_TIME_TYPE_ABSOLUTE 0 +# define OSSL_TIME_SPEC_TIME_TYPE_PERIODIC 1 + +typedef struct OSSL_TIME_SPEC_TIME_st { + int type; + union { + OSSL_TIME_SPEC_ABSOLUTE *absolute; + STACK_OF(OSSL_TIME_PERIOD) *periodic; + } choice; +} OSSL_TIME_SPEC_TIME; + +typedef struct OSSL_TIME_SPEC_st { + OSSL_TIME_SPEC_TIME *time; + ASN1_BOOLEAN notThisTime; + ASN1_INTEGER *timeZone; +} OSSL_TIME_SPEC; + +DECLARE_ASN1_FUNCTIONS(OSSL_DAY_TIME) +DECLARE_ASN1_FUNCTIONS(OSSL_DAY_TIME_BAND) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_DAY) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_WEEKS) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_MONTH) +DECLARE_ASN1_FUNCTIONS(OSSL_NAMED_DAY) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_X_DAY_OF) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_ABSOLUTE) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_TIME) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_PERIOD) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_TIME_PERIOD, OSSL_TIME_PERIOD, OSSL_TIME_PERIOD) +#define sk_OSSL_TIME_PERIOD_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_value(sk, idx) ((OSSL_TIME_PERIOD *)OPENSSL_sk_value(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk), (idx))) +#define sk_OSSL_TIME_PERIOD_new(cmp) ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_new(ossl_check_OSSL_TIME_PERIOD_compfunc_type(cmp))) +#define sk_OSSL_TIME_PERIOD_new_null() ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_new_null()) +#define sk_OSSL_TIME_PERIOD_new_reserve(cmp, n) ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_TIME_PERIOD_compfunc_type(cmp), (n))) +#define sk_OSSL_TIME_PERIOD_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), (n)) +#define sk_OSSL_TIME_PERIOD_free(sk) OPENSSL_sk_free(ossl_check_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_delete(sk, i) ((OSSL_TIME_PERIOD *)OPENSSL_sk_delete(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), (i))) +#define sk_OSSL_TIME_PERIOD_delete_ptr(sk, ptr) ((OSSL_TIME_PERIOD *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr))) +#define sk_OSSL_TIME_PERIOD_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr)) +#define sk_OSSL_TIME_PERIOD_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr)) +#define sk_OSSL_TIME_PERIOD_pop(sk) ((OSSL_TIME_PERIOD *)OPENSSL_sk_pop(ossl_check_OSSL_TIME_PERIOD_sk_type(sk))) +#define sk_OSSL_TIME_PERIOD_shift(sk) ((OSSL_TIME_PERIOD *)OPENSSL_sk_shift(ossl_check_OSSL_TIME_PERIOD_sk_type(sk))) +#define sk_OSSL_TIME_PERIOD_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_TIME_PERIOD_sk_type(sk),ossl_check_OSSL_TIME_PERIOD_freefunc_type(freefunc)) +#define sk_OSSL_TIME_PERIOD_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr), (idx)) +#define sk_OSSL_TIME_PERIOD_set(sk, idx, ptr) ((OSSL_TIME_PERIOD *)OPENSSL_sk_set(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), (idx), ossl_check_OSSL_TIME_PERIOD_type(ptr))) +#define sk_OSSL_TIME_PERIOD_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr)) +#define sk_OSSL_TIME_PERIOD_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr)) +#define sk_OSSL_TIME_PERIOD_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr), pnum) +#define sk_OSSL_TIME_PERIOD_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_dup(sk) ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_dup(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk))) +#define sk_OSSL_TIME_PERIOD_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_copyfunc_type(copyfunc), ossl_check_OSSL_TIME_PERIOD_freefunc_type(freefunc))) +#define sk_OSSL_TIME_PERIOD_set_cmp_func(sk, cmp) ((sk_OSSL_TIME_PERIOD_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_compfunc_type(cmp))) + + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_DAY_TIME_BAND, OSSL_DAY_TIME_BAND, OSSL_DAY_TIME_BAND) +#define sk_OSSL_DAY_TIME_BAND_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_value(sk, idx) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_value(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk), (idx))) +#define sk_OSSL_DAY_TIME_BAND_new(cmp) ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_new(ossl_check_OSSL_DAY_TIME_BAND_compfunc_type(cmp))) +#define sk_OSSL_DAY_TIME_BAND_new_null() ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_new_null()) +#define sk_OSSL_DAY_TIME_BAND_new_reserve(cmp, n) ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_DAY_TIME_BAND_compfunc_type(cmp), (n))) +#define sk_OSSL_DAY_TIME_BAND_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), (n)) +#define sk_OSSL_DAY_TIME_BAND_free(sk) OPENSSL_sk_free(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_delete(sk, i) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_delete(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), (i))) +#define sk_OSSL_DAY_TIME_BAND_delete_ptr(sk, ptr) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr))) +#define sk_OSSL_DAY_TIME_BAND_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr)) +#define sk_OSSL_DAY_TIME_BAND_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr)) +#define sk_OSSL_DAY_TIME_BAND_pop(sk) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_pop(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk))) +#define sk_OSSL_DAY_TIME_BAND_shift(sk) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_shift(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk))) +#define sk_OSSL_DAY_TIME_BAND_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk),ossl_check_OSSL_DAY_TIME_BAND_freefunc_type(freefunc)) +#define sk_OSSL_DAY_TIME_BAND_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr), (idx)) +#define sk_OSSL_DAY_TIME_BAND_set(sk, idx, ptr) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_set(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), (idx), ossl_check_OSSL_DAY_TIME_BAND_type(ptr))) +#define sk_OSSL_DAY_TIME_BAND_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr)) +#define sk_OSSL_DAY_TIME_BAND_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr)) +#define sk_OSSL_DAY_TIME_BAND_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr), pnum) +#define sk_OSSL_DAY_TIME_BAND_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_dup(sk) ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_dup(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk))) +#define sk_OSSL_DAY_TIME_BAND_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_copyfunc_type(copyfunc), ossl_check_OSSL_DAY_TIME_BAND_freefunc_type(freefunc))) +#define sk_OSSL_DAY_TIME_BAND_set_cmp_func(sk, cmp) ((sk_OSSL_DAY_TIME_BAND_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_compfunc_type(cmp))) + + +/* Attribute Type and Value */ +typedef struct atav_st { + ASN1_OBJECT *type; + ASN1_TYPE *value; +} OSSL_ATAV; + +typedef struct ATTRIBUTE_TYPE_MAPPING_st { + ASN1_OBJECT *local; + ASN1_OBJECT *remote; +} OSSL_ATTRIBUTE_TYPE_MAPPING; + +typedef struct ATTRIBUTE_VALUE_MAPPING_st { + OSSL_ATAV *local; + OSSL_ATAV *remote; +} OSSL_ATTRIBUTE_VALUE_MAPPING; + +# define OSSL_ATTR_MAP_TYPE 0 +# define OSSL_ATTR_MAP_VALUE 1 + +typedef struct ATTRIBUTE_MAPPING_st { + int type; + union { + OSSL_ATTRIBUTE_TYPE_MAPPING *typeMappings; + OSSL_ATTRIBUTE_VALUE_MAPPING *typeValueMappings; + } choice; +} OSSL_ATTRIBUTE_MAPPING; + +typedef STACK_OF(OSSL_ATTRIBUTE_MAPPING) OSSL_ATTRIBUTE_MAPPINGS; +DECLARE_ASN1_FUNCTIONS(OSSL_ATAV) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_TYPE_MAPPING) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_VALUE_MAPPING) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_MAPPING) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_MAPPINGS) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ATTRIBUTE_MAPPING, OSSL_ATTRIBUTE_MAPPING, OSSL_ATTRIBUTE_MAPPING) +#define sk_OSSL_ATTRIBUTE_MAPPING_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_value(sk, idx) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_value(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), (idx))) +#define sk_OSSL_ATTRIBUTE_MAPPING_new(cmp) ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_new(ossl_check_OSSL_ATTRIBUTE_MAPPING_compfunc_type(cmp))) +#define sk_OSSL_ATTRIBUTE_MAPPING_new_null() ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ATTRIBUTE_MAPPING_new_reserve(cmp, n) ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ATTRIBUTE_MAPPING_compfunc_type(cmp), (n))) +#define sk_OSSL_ATTRIBUTE_MAPPING_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), (n)) +#define sk_OSSL_ATTRIBUTE_MAPPING_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_delete(sk, i) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_delete(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), (i))) +#define sk_OSSL_ATTRIBUTE_MAPPING_delete_ptr(sk, ptr) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr))) +#define sk_OSSL_ATTRIBUTE_MAPPING_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr)) +#define sk_OSSL_ATTRIBUTE_MAPPING_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr)) +#define sk_OSSL_ATTRIBUTE_MAPPING_pop(sk) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_pop(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk))) +#define sk_OSSL_ATTRIBUTE_MAPPING_shift(sk) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_shift(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk))) +#define sk_OSSL_ATTRIBUTE_MAPPING_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk),ossl_check_OSSL_ATTRIBUTE_MAPPING_freefunc_type(freefunc)) +#define sk_OSSL_ATTRIBUTE_MAPPING_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr), (idx)) +#define sk_OSSL_ATTRIBUTE_MAPPING_set(sk, idx, ptr) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_set(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), (idx), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr))) +#define sk_OSSL_ATTRIBUTE_MAPPING_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr)) +#define sk_OSSL_ATTRIBUTE_MAPPING_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr)) +#define sk_OSSL_ATTRIBUTE_MAPPING_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr), pnum) +#define sk_OSSL_ATTRIBUTE_MAPPING_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_dup(sk) ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk))) +#define sk_OSSL_ATTRIBUTE_MAPPING_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_copyfunc_type(copyfunc), ossl_check_OSSL_ATTRIBUTE_MAPPING_freefunc_type(freefunc))) +#define sk_OSSL_ATTRIBUTE_MAPPING_set_cmp_func(sk, cmp) ((sk_OSSL_ATTRIBUTE_MAPPING_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_compfunc_type(cmp))) + + +# define OSSL_AAA_ATTRIBUTE_TYPE 0 +# define OSSL_AAA_ATTRIBUTE_VALUES 1 + +typedef struct ALLOWED_ATTRIBUTES_CHOICE_st { + int type; + union { + ASN1_OBJECT *attributeType; + X509_ATTRIBUTE *attributeTypeandValues; + } choice; +} OSSL_ALLOWED_ATTRIBUTES_CHOICE; + +typedef struct ALLOWED_ATTRIBUTES_ITEM_st { + STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *attributes; + GENERAL_NAME *holderDomain; +} OSSL_ALLOWED_ATTRIBUTES_ITEM; + +typedef STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) OSSL_ALLOWED_ATTRIBUTES_SYNTAX; + +DECLARE_ASN1_FUNCTIONS(OSSL_ALLOWED_ATTRIBUTES_CHOICE) +DECLARE_ASN1_FUNCTIONS(OSSL_ALLOWED_ATTRIBUTES_ITEM) +DECLARE_ASN1_FUNCTIONS(OSSL_ALLOWED_ATTRIBUTES_SYNTAX) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ALLOWED_ATTRIBUTES_CHOICE, OSSL_ALLOWED_ATTRIBUTES_CHOICE, OSSL_ALLOWED_ATTRIBUTES_CHOICE) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_value(sk, idx) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_value(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), (idx))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_new(cmp) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_new(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_compfunc_type(cmp))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_new_null() ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_new_reserve(cmp, n) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_compfunc_type(cmp), (n))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), (n)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_delete(sk, i) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_delete(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), (i))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_delete_ptr(sk, ptr) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_pop(sk) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_pop(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_shift(sk) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_shift(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk),ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_freefunc_type(freefunc)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr), (idx)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_set(sk, idx, ptr) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_set(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), (idx), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr), pnum) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_dup(sk) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_copyfunc_type(copyfunc), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_freefunc_type(freefunc))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_set_cmp_func(sk, cmp) ((sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_compfunc_type(cmp))) + + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ALLOWED_ATTRIBUTES_ITEM, OSSL_ALLOWED_ATTRIBUTES_ITEM, OSSL_ALLOWED_ATTRIBUTES_ITEM) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_value(sk, idx) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_value(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), (idx))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_new(cmp) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_new(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_compfunc_type(cmp))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_new_null() ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_new_reserve(cmp, n) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_compfunc_type(cmp), (n))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), (n)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_delete(sk, i) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_delete(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), (i))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_delete_ptr(sk, ptr) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_pop(sk) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_pop(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_shift(sk) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_shift(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk),ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_freefunc_type(freefunc)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr), (idx)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_set(sk, idx, ptr) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_set(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), (idx), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr), pnum) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_dup(sk) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_copyfunc_type(copyfunc), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_freefunc_type(freefunc))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_set_cmp_func(sk, cmp) ((sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_compfunc_type(cmp))) + + +typedef struct AA_DIST_POINT_st { + DIST_POINT_NAME *distpoint; + ASN1_BIT_STRING *reasons; + int dp_reasons; + ASN1_BOOLEAN indirectCRL; + ASN1_BOOLEAN containsUserAttributeCerts; + ASN1_BOOLEAN containsAACerts; + ASN1_BOOLEAN containsSOAPublicKeyCerts; +} OSSL_AA_DIST_POINT; + +DECLARE_ASN1_FUNCTIONS(OSSL_AA_DIST_POINT) + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/linux-armv4/asm_avx2/include/progs.h b/deps/openssl/config/archs/linux-armv4/asm_avx2/include/progs.h index be55f61503d405..1b62ec37dec130 100644 --- a/deps/openssl/config/archs/linux-armv4/asm_avx2/include/progs.h +++ b/deps/openssl/config/archs/linux-armv4/asm_avx2/include/progs.h @@ -56,6 +56,7 @@ extern int s_client_main(int argc, char *argv[]); extern int s_server_main(int argc, char *argv[]); extern int s_time_main(int argc, char *argv[]); extern int sess_id_main(int argc, char *argv[]); +extern int skeyutl_main(int argc, char *argv[]); extern int smime_main(int argc, char *argv[]); extern int speed_main(int argc, char *argv[]); extern int spkac_main(int argc, char *argv[]); @@ -110,6 +111,7 @@ extern const OPTIONS s_client_options[]; extern const OPTIONS s_server_options[]; extern const OPTIONS s_time_options[]; extern const OPTIONS sess_id_options[]; +extern const OPTIONS skeyutl_options[]; extern const OPTIONS smime_options[]; extern const OPTIONS speed_options[]; extern const OPTIONS spkac_options[]; diff --git a/deps/openssl/config/archs/linux-armv4/asm_avx2/openssl-cl.gypi b/deps/openssl/config/archs/linux-armv4/asm_avx2/openssl-cl.gypi index 34e8366d4270e6..b75143f55774af 100644 --- a/deps/openssl/config/archs/linux-armv4/asm_avx2/openssl-cl.gypi +++ b/deps/openssl/config/archs/linux-armv4/asm_avx2/openssl-cl.gypi @@ -74,6 +74,7 @@ 'openssl/apps/s_server.c', 'openssl/apps/s_time.c', 'openssl/apps/sess_id.c', + 'openssl/apps/skeyutl.c', 'openssl/apps/smime.c', 'openssl/apps/speed.c', 'openssl/apps/spkac.c', @@ -89,12 +90,14 @@ 'openssl/apps/lib/app_rand.c', 'openssl/apps/lib/app_x509.c', 'openssl/apps/lib/apps.c', + 'openssl/apps/lib/apps_opt_printf.c', 'openssl/apps/lib/apps_ui.c', 'openssl/apps/lib/columns.c', 'openssl/apps/lib/engine.c', 'openssl/apps/lib/engine_loader.c', 'openssl/apps/lib/fmt.c', 'openssl/apps/lib/http_server.c', + 'openssl/apps/lib/log.c', 'openssl/apps/lib/names.c', 'openssl/apps/lib/opt.c', 'openssl/apps/lib/s_cb.c', diff --git a/deps/openssl/config/archs/linux-armv4/asm_avx2/openssl-fips.gypi b/deps/openssl/config/archs/linux-armv4/asm_avx2/openssl-fips.gypi index 6a72c2a7f4b090..81458de554dfbf 100644 --- a/deps/openssl/config/archs/linux-armv4/asm_avx2/openssl-fips.gypi +++ b/deps/openssl/config/archs/linux-armv4/asm_avx2/openssl-fips.gypi @@ -100,14 +100,15 @@ 'openssl/crypto/evp/kem.c', 'openssl/crypto/evp/keymgmt_lib.c', 'openssl/crypto/evp/keymgmt_meth.c', - 'openssl/crypto/evp/m_sigver.c', 'openssl/crypto/evp/mac_lib.c', 'openssl/crypto/evp/mac_meth.c', 'openssl/crypto/evp/p_lib.c', 'openssl/crypto/evp/pmeth_check.c', 'openssl/crypto/evp/pmeth_gn.c', 'openssl/crypto/evp/pmeth_lib.c', + 'openssl/crypto/evp/s_lib.c', 'openssl/crypto/evp/signature.c', + 'openssl/crypto/evp/skeymgmt_meth.c', 'openssl/crypto/ffc/ffc_backend.c', 'openssl/crypto/ffc/ffc_dh.c', 'openssl/crypto/ffc/ffc_key_generate.c', @@ -115,6 +116,8 @@ 'openssl/crypto/ffc/ffc_params.c', 'openssl/crypto/ffc/ffc_params_generate.c', 'openssl/crypto/ffc/ffc_params_validate.c', + 'openssl/crypto/hashtable/hashfunc.c', + 'openssl/crypto/hashtable/hashtable.c', 'openssl/crypto/hmac/hmac.c', 'openssl/crypto/lhash/lhash.c', 'openssl/crypto/armcap.c', @@ -145,6 +148,16 @@ 'openssl/crypto/threads_none.c', 'openssl/crypto/threads_pthread.c', 'openssl/crypto/threads_win.c', + 'openssl/crypto/time.c', + 'openssl/crypto/ml_dsa/ml_dsa_encoders.c', + 'openssl/crypto/ml_dsa/ml_dsa_key.c', + 'openssl/crypto/ml_dsa/ml_dsa_key_compress.c', + 'openssl/crypto/ml_dsa/ml_dsa_matrix.c', + 'openssl/crypto/ml_dsa/ml_dsa_ntt.c', + 'openssl/crypto/ml_dsa/ml_dsa_params.c', + 'openssl/crypto/ml_dsa/ml_dsa_sample.c', + 'openssl/crypto/ml_dsa/ml_dsa_sign.c', + 'openssl/crypto/ml_kem/ml_kem.c', 'openssl/crypto/modes/cbc128.c', 'openssl/crypto/modes/ccm128.c', 'openssl/crypto/modes/cfb128.c', @@ -153,6 +166,7 @@ 'openssl/crypto/modes/ofb128.c', 'openssl/crypto/modes/wrap128.c', 'openssl/crypto/modes/xts128.c', + 'openssl/crypto/modes/xts128gb.c', 'openssl/crypto/property/defn_cache.c', 'openssl/crypto/property/property.c', 'openssl/crypto/property/property_parse.c', @@ -180,7 +194,23 @@ 'openssl/crypto/sha/sha256.c', 'openssl/crypto/sha/sha3.c', 'openssl/crypto/sha/sha512.c', + 'openssl/crypto/slh_dsa/slh_adrs.c', + 'openssl/crypto/slh_dsa/slh_dsa.c', + 'openssl/crypto/slh_dsa/slh_dsa_hash_ctx.c', + 'openssl/crypto/slh_dsa/slh_dsa_key.c', + 'openssl/crypto/slh_dsa/slh_fors.c', + 'openssl/crypto/slh_dsa/slh_hash.c', + 'openssl/crypto/slh_dsa/slh_hypertree.c', + 'openssl/crypto/slh_dsa/slh_params.c', + 'openssl/crypto/slh_dsa/slh_wots.c', + 'openssl/crypto/slh_dsa/slh_xmss.c', 'openssl/crypto/stack/stack.c', + 'openssl/crypto/thread/arch/thread_none.c', + 'openssl/crypto/thread/arch/thread_posix.c', + 'openssl/crypto/thread/arch/thread_win.c', + 'openssl/crypto/thread/api.c', + 'openssl/crypto/thread/arch.c', + 'openssl/crypto/thread/internal.c', 'openssl/providers/common/der/der_rsa_sig.c', 'openssl/providers/common/bio_prov.c', 'openssl/providers/common/capabilities.c', @@ -189,6 +219,7 @@ 'openssl/providers/common/provider_util.c', 'openssl/providers/common/securitycheck.c', 'openssl/providers/common/securitycheck_fips.c', + 'openssl/providers/fips/fipsindicator.c', 'openssl/providers/fips/fipsprov.c', 'openssl/providers/fips/self_test.c', 'openssl/providers/fips/self_test_kats.c', @@ -226,6 +257,8 @@ 'openssl/providers/implementations/kdfs/sskdf.c', 'openssl/providers/implementations/kdfs/tls1_prf.c', 'openssl/providers/implementations/kdfs/x942kdf.c', + 'openssl/providers/implementations/kem/ml_kem_kem.c', + 'openssl/providers/implementations/kem/mlx_kem.c', 'openssl/providers/implementations/kem/rsa_kem.c', 'openssl/providers/implementations/keymgmt/dh_kmgmt.c', 'openssl/providers/implementations/keymgmt/dsa_kmgmt.c', @@ -233,29 +266,39 @@ 'openssl/providers/implementations/keymgmt/ecx_kmgmt.c', 'openssl/providers/implementations/keymgmt/kdf_legacy_kmgmt.c', 'openssl/providers/implementations/keymgmt/mac_legacy_kmgmt.c', + 'openssl/providers/implementations/keymgmt/ml_dsa_kmgmt.c', + 'openssl/providers/implementations/keymgmt/ml_kem_kmgmt.c', + 'openssl/providers/implementations/keymgmt/mlx_kmgmt.c', 'openssl/providers/implementations/keymgmt/rsa_kmgmt.c', + 'openssl/providers/implementations/keymgmt/slh_dsa_kmgmt.c', 'openssl/providers/implementations/macs/cmac_prov.c', 'openssl/providers/implementations/macs/gmac_prov.c', 'openssl/providers/implementations/macs/hmac_prov.c', 'openssl/providers/implementations/macs/kmac_prov.c', - 'openssl/providers/implementations/rands/crngt.c', 'openssl/providers/implementations/rands/drbg.c', 'openssl/providers/implementations/rands/drbg_ctr.c', 'openssl/providers/implementations/rands/drbg_hash.c', 'openssl/providers/implementations/rands/drbg_hmac.c', + 'openssl/providers/implementations/rands/fips_crng_test.c', 'openssl/providers/implementations/rands/test_rng.c', 'openssl/providers/implementations/signature/dsa_sig.c', 'openssl/providers/implementations/signature/ecdsa_sig.c', 'openssl/providers/implementations/signature/eddsa_sig.c', 'openssl/providers/implementations/signature/mac_legacy_sig.c', + 'openssl/providers/implementations/signature/ml_dsa_sig.c', 'openssl/providers/implementations/signature/rsa_sig.c', - 'openssl/ssl/s3_cbc.c', + 'openssl/providers/implementations/signature/slh_dsa_sig.c', + 'openssl/providers/implementations/skeymgmt/aes_skmgmt.c', + 'openssl/providers/implementations/skeymgmt/generic.c', + 'openssl/ssl/record/methods/ssl3_cbc.c', 'openssl/providers/common/der/der_dsa_key.c', 'openssl/providers/common/der/der_dsa_sig.c', 'openssl/providers/common/der/der_ec_key.c', 'openssl/providers/common/der/der_ec_sig.c', 'openssl/providers/common/der/der_ecx_key.c', + 'openssl/providers/common/der/der_ml_dsa_key.c', 'openssl/providers/common/der/der_rsa_key.c', + 'openssl/providers/common/der/der_slh_dsa_key.c', 'openssl/providers/common/provider_ctx.c', 'openssl/providers/common/provider_err.c', 'openssl/providers/implementations/ciphers/ciphercommon.c', @@ -266,7 +309,7 @@ 'openssl/providers/implementations/ciphers/ciphercommon_gcm_hw.c', 'openssl/providers/implementations/ciphers/ciphercommon_hw.c', 'openssl/providers/implementations/digests/digestcommon.c', - 'openssl/ssl/record/tls_pad.c', + 'openssl/ssl/record/methods/tls_pad.c', 'openssl/providers/fips/fips_entry.c', ], @@ -279,6 +322,7 @@ './config/archs/linux-armv4/asm_avx2/crypto/chacha/chacha-armv4.S', './config/archs/linux-armv4/asm_avx2/crypto/ec/ecp_nistz256-armv4.S', './config/archs/linux-armv4/asm_avx2/crypto/armv4cpuid.S', + './config/archs/linux-armv4/asm_avx2/crypto/params_idx.c', './config/archs/linux-armv4/asm_avx2/crypto/modes/ghash-armv4.S', './config/archs/linux-armv4/asm_avx2/crypto/modes/ghashv8-armx.S', './config/archs/linux-armv4/asm_avx2/crypto/poly1305/poly1305-armv4.S', @@ -291,7 +335,9 @@ './config/archs/linux-armv4/asm_avx2/providers/common/der/der_dsa_gen.c', './config/archs/linux-armv4/asm_avx2/providers/common/der/der_ec_gen.c', './config/archs/linux-armv4/asm_avx2/providers/common/der/der_ecx_gen.c', + './config/archs/linux-armv4/asm_avx2/providers/common/der/der_ml_dsa_gen.c', './config/archs/linux-armv4/asm_avx2/providers/common/der/der_rsa_gen.c', + './config/archs/linux-armv4/asm_avx2/providers/common/der/der_slh_dsa_gen.c', './config/archs/linux-armv4/asm_avx2/providers/common/der/der_wrap_gen.c', './config/archs/linux-armv4/asm_avx2/providers/legacy.ld', './config/archs/linux-armv4/asm_avx2/providers/fips.ld', diff --git a/deps/openssl/config/archs/linux-armv4/asm_avx2/openssl.gypi b/deps/openssl/config/archs/linux-armv4/asm_avx2/openssl.gypi index 76181e218d83dd..87400e0c816132 100644 --- a/deps/openssl/config/archs/linux-armv4/asm_avx2/openssl.gypi +++ b/deps/openssl/config/archs/linux-armv4/asm_avx2/openssl.gypi @@ -7,14 +7,15 @@ 'openssl/ssl/d1_srtp.c', 'openssl/ssl/methods.c', 'openssl/ssl/pqueue.c', + 'openssl/ssl/priority_queue.c', 'openssl/ssl/s3_enc.c', 'openssl/ssl/s3_lib.c', 'openssl/ssl/s3_msg.c', 'openssl/ssl/ssl_asn1.c', 'openssl/ssl/ssl_cert.c', + 'openssl/ssl/ssl_cert_comp.c', 'openssl/ssl/ssl_ciph.c', 'openssl/ssl/ssl_conf.c', - 'openssl/ssl/ssl_err.c', 'openssl/ssl/ssl_err_legacy.c', 'openssl/ssl/ssl_init.c', 'openssl/ssl/ssl_lib.c', @@ -31,12 +32,60 @@ 'openssl/ssl/tls13_enc.c', 'openssl/ssl/tls_depr.c', 'openssl/ssl/tls_srp.c', - 'openssl/ssl/record/dtls1_bitmap.c', + 'openssl/ssl/quic/cc_newreno.c', + 'openssl/ssl/quic/json_enc.c', + 'openssl/ssl/quic/qlog.c', + 'openssl/ssl/quic/qlog_event_helpers.c', + 'openssl/ssl/quic/quic_ackm.c', + 'openssl/ssl/quic/quic_cfq.c', + 'openssl/ssl/quic/quic_channel.c', + 'openssl/ssl/quic/quic_demux.c', + 'openssl/ssl/quic/quic_engine.c', + 'openssl/ssl/quic/quic_fc.c', + 'openssl/ssl/quic/quic_fifd.c', + 'openssl/ssl/quic/quic_impl.c', + 'openssl/ssl/quic/quic_lcidm.c', + 'openssl/ssl/quic/quic_method.c', + 'openssl/ssl/quic/quic_obj.c', + 'openssl/ssl/quic/quic_port.c', + 'openssl/ssl/quic/quic_rcidm.c', + 'openssl/ssl/quic/quic_reactor.c', + 'openssl/ssl/quic/quic_reactor_wait_ctx.c', + 'openssl/ssl/quic/quic_record_rx.c', + 'openssl/ssl/quic/quic_record_shared.c', + 'openssl/ssl/quic/quic_record_tx.c', + 'openssl/ssl/quic/quic_record_util.c', + 'openssl/ssl/quic/quic_rstream.c', + 'openssl/ssl/quic/quic_rx_depack.c', + 'openssl/ssl/quic/quic_sf_list.c', + 'openssl/ssl/quic/quic_srt_gen.c', + 'openssl/ssl/quic/quic_srtm.c', + 'openssl/ssl/quic/quic_sstream.c', + 'openssl/ssl/quic/quic_statm.c', + 'openssl/ssl/quic/quic_stream_map.c', + 'openssl/ssl/quic/quic_thread_assist.c', + 'openssl/ssl/quic/quic_tls.c', + 'openssl/ssl/quic/quic_tls_api.c', + 'openssl/ssl/quic/quic_trace.c', + 'openssl/ssl/quic/quic_tserver.c', + 'openssl/ssl/quic/quic_txp.c', + 'openssl/ssl/quic/quic_txpim.c', + 'openssl/ssl/quic/quic_types.c', + 'openssl/ssl/quic/quic_wire.c', + 'openssl/ssl/quic/quic_wire_pkt.c', + 'openssl/ssl/quic/uint_set.c', 'openssl/ssl/record/rec_layer_d1.c', 'openssl/ssl/record/rec_layer_s3.c', - 'openssl/ssl/record/ssl3_buffer.c', - 'openssl/ssl/record/ssl3_record.c', - 'openssl/ssl/record/ssl3_record_tls13.c', + 'openssl/ssl/record/methods/dtls_meth.c', + 'openssl/ssl/record/methods/ssl3_meth.c', + 'openssl/ssl/record/methods/tls13_meth.c', + 'openssl/ssl/record/methods/tls1_meth.c', + 'openssl/ssl/record/methods/tls_common.c', + 'openssl/ssl/record/methods/tls_multib.c', + 'openssl/ssl/record/methods/tlsany_meth.c', + 'openssl/ssl/rio/poll_builder.c', + 'openssl/ssl/rio/poll_immediate.c', + 'openssl/ssl/rio/rio_notifier.c', 'openssl/ssl/statem/extensions.c', 'openssl/ssl/statem/extensions_clnt.c', 'openssl/ssl/statem/extensions_cust.c', @@ -149,6 +198,7 @@ 'openssl/crypto/bio/bss_conn.c', 'openssl/crypto/bio/bss_core.c', 'openssl/crypto/bio/bss_dgram.c', + 'openssl/crypto/bio/bss_dgram_pair.c', 'openssl/crypto/bio/bss_fd.c', 'openssl/crypto/bio/bss_file.c', 'openssl/crypto/bio/bss_log.c', @@ -208,6 +258,7 @@ 'openssl/crypto/cmp/cmp_client.c', 'openssl/crypto/cmp/cmp_ctx.c', 'openssl/crypto/cmp/cmp_err.c', + 'openssl/crypto/cmp/cmp_genm.c', 'openssl/crypto/cmp/cmp_hdr.c', 'openssl/crypto/cmp/cmp_http.c', 'openssl/crypto/cmp/cmp_msg.c', @@ -384,7 +435,9 @@ 'openssl/crypto/err/err_all.c', 'openssl/crypto/err/err_all_legacy.c', 'openssl/crypto/err/err_blocks.c', + 'openssl/crypto/err/err_mark.c', 'openssl/crypto/err/err_prn.c', + 'openssl/crypto/err/err_save.c', 'openssl/crypto/ess/ess_asn1.c', 'openssl/crypto/ess/ess_err.c', 'openssl/crypto/ess/ess_lib.c', @@ -467,7 +520,9 @@ 'openssl/crypto/evp/pmeth_check.c', 'openssl/crypto/evp/pmeth_gn.c', 'openssl/crypto/evp/pmeth_lib.c', + 'openssl/crypto/evp/s_lib.c', 'openssl/crypto/evp/signature.c', + 'openssl/crypto/evp/skeymgmt_meth.c', 'openssl/crypto/ffc/ffc_backend.c', 'openssl/crypto/ffc/ffc_dh.c', 'openssl/crypto/ffc/ffc_key_generate.c', @@ -475,7 +530,11 @@ 'openssl/crypto/ffc/ffc_params.c', 'openssl/crypto/ffc/ffc_params_generate.c', 'openssl/crypto/ffc/ffc_params_validate.c', + 'openssl/crypto/hashtable/hashfunc.c', + 'openssl/crypto/hashtable/hashtable.c', 'openssl/crypto/hmac/hmac.c', + 'openssl/crypto/hpke/hpke.c', + 'openssl/crypto/hpke/hpke_util.c', 'openssl/crypto/http/http_client.c', 'openssl/crypto/http/http_err.c', 'openssl/crypto/http/http_lib.c', @@ -490,6 +549,7 @@ 'openssl/crypto/armcap.c', 'openssl/crypto/asn1_dsa.c', 'openssl/crypto/bsearch.c', + 'openssl/crypto/comp_methods.c', 'openssl/crypto/context.c', 'openssl/crypto/core_algorithm.c', 'openssl/crypto/core_fetch.c', @@ -499,10 +559,13 @@ 'openssl/crypto/cryptlib.c', 'openssl/crypto/ctype.c', 'openssl/crypto/cversion.c', + 'openssl/crypto/defaults.c', 'openssl/crypto/der_writer.c', + 'openssl/crypto/deterministic_nonce.c', 'openssl/crypto/ebcdic.c', 'openssl/crypto/ex_data.c', 'openssl/crypto/getenv.c', + 'openssl/crypto/indicator_core.c', 'openssl/crypto/info.c', 'openssl/crypto/init.c', 'openssl/crypto/initthread.c', @@ -526,12 +589,16 @@ 'openssl/crypto/provider_core.c', 'openssl/crypto/provider_predefined.c', 'openssl/crypto/punycode.c', + 'openssl/crypto/quic_vlint.c', 'openssl/crypto/self_test_core.c', + 'openssl/crypto/sleep.c', 'openssl/crypto/sparse_array.c', + 'openssl/crypto/ssl_err.c', 'openssl/crypto/threads_lib.c', 'openssl/crypto/threads_none.c', 'openssl/crypto/threads_pthread.c', 'openssl/crypto/threads_win.c', + 'openssl/crypto/time.c', 'openssl/crypto/trace.c', 'openssl/crypto/uid.c', 'openssl/crypto/md4/md4_dgst.c', @@ -541,6 +608,15 @@ 'openssl/crypto/md5/md5_sha1.c', 'openssl/crypto/mdc2/mdc2_one.c', 'openssl/crypto/mdc2/mdc2dgst.c', + 'openssl/crypto/ml_dsa/ml_dsa_encoders.c', + 'openssl/crypto/ml_dsa/ml_dsa_key.c', + 'openssl/crypto/ml_dsa/ml_dsa_key_compress.c', + 'openssl/crypto/ml_dsa/ml_dsa_matrix.c', + 'openssl/crypto/ml_dsa/ml_dsa_ntt.c', + 'openssl/crypto/ml_dsa/ml_dsa_params.c', + 'openssl/crypto/ml_dsa/ml_dsa_sample.c', + 'openssl/crypto/ml_dsa/ml_dsa_sign.c', + 'openssl/crypto/ml_kem/ml_kem.c', 'openssl/crypto/modes/cbc128.c', 'openssl/crypto/modes/ccm128.c', 'openssl/crypto/modes/cfb128.c', @@ -552,6 +628,7 @@ 'openssl/crypto/modes/siv128.c', 'openssl/crypto/modes/wrap128.c', 'openssl/crypto/modes/xts128.c', + 'openssl/crypto/modes/xts128gb.c', 'openssl/crypto/objects/o_names.c', 'openssl/crypto/objects/obj_dat.c', 'openssl/crypto/objects/obj_err.c', @@ -615,6 +692,7 @@ 'openssl/crypto/rand/rand_lib.c', 'openssl/crypto/rand/rand_meth.c', 'openssl/crypto/rand/rand_pool.c', + 'openssl/crypto/rand/rand_uniform.c', 'openssl/crypto/rand/randfile.c', 'openssl/crypto/rc2/rc2_cbc.c', 'openssl/crypto/rc2/rc2_ecb.c', @@ -662,6 +740,16 @@ 'openssl/crypto/sha/sha3.c', 'openssl/crypto/sha/sha512.c', 'openssl/crypto/siphash/siphash.c', + 'openssl/crypto/slh_dsa/slh_adrs.c', + 'openssl/crypto/slh_dsa/slh_dsa.c', + 'openssl/crypto/slh_dsa/slh_dsa_hash_ctx.c', + 'openssl/crypto/slh_dsa/slh_dsa_key.c', + 'openssl/crypto/slh_dsa/slh_fors.c', + 'openssl/crypto/slh_dsa/slh_hash.c', + 'openssl/crypto/slh_dsa/slh_hypertree.c', + 'openssl/crypto/slh_dsa/slh_params.c', + 'openssl/crypto/slh_dsa/slh_wots.c', + 'openssl/crypto/slh_dsa/slh_xmss.c', 'openssl/crypto/sm2/sm2_crypt.c', 'openssl/crypto/sm2/sm2_err.c', 'openssl/crypto/sm2/sm2_key.c', @@ -679,6 +767,12 @@ 'openssl/crypto/store/store_register.c', 'openssl/crypto/store/store_result.c', 'openssl/crypto/store/store_strings.c', + 'openssl/crypto/thread/arch/thread_none.c', + 'openssl/crypto/thread/arch/thread_posix.c', + 'openssl/crypto/thread/arch/thread_win.c', + 'openssl/crypto/thread/api.c', + 'openssl/crypto/thread/arch.c', + 'openssl/crypto/thread/internal.c', 'openssl/crypto/ts/ts_asn1.c', 'openssl/crypto/ts/ts_conf.c', 'openssl/crypto/ts/ts_err.c', @@ -707,14 +801,22 @@ 'openssl/crypto/x509/pcy_map.c', 'openssl/crypto/x509/pcy_node.c', 'openssl/crypto/x509/pcy_tree.c', + 'openssl/crypto/x509/t_acert.c', 'openssl/crypto/x509/t_crl.c', 'openssl/crypto/x509/t_req.c', 'openssl/crypto/x509/t_x509.c', + 'openssl/crypto/x509/v3_aaa.c', + 'openssl/crypto/x509/v3_ac_tgt.c', 'openssl/crypto/x509/v3_addr.c', 'openssl/crypto/x509/v3_admis.c', 'openssl/crypto/x509/v3_akeya.c', 'openssl/crypto/x509/v3_akid.c', 'openssl/crypto/x509/v3_asid.c', + 'openssl/crypto/x509/v3_attrdesc.c', + 'openssl/crypto/x509/v3_attrmap.c', + 'openssl/crypto/x509/v3_audit_id.c', + 'openssl/crypto/x509/v3_authattid.c', + 'openssl/crypto/x509/v3_battcons.c', 'openssl/crypto/x509/v3_bcons.c', 'openssl/crypto/x509/v3_bitst.c', 'openssl/crypto/x509/v3_conf.c', @@ -723,12 +825,17 @@ 'openssl/crypto/x509/v3_enum.c', 'openssl/crypto/x509/v3_extku.c', 'openssl/crypto/x509/v3_genn.c', + 'openssl/crypto/x509/v3_group_ac.c', 'openssl/crypto/x509/v3_ia5.c', + 'openssl/crypto/x509/v3_ind_iss.c', 'openssl/crypto/x509/v3_info.c', 'openssl/crypto/x509/v3_int.c', + 'openssl/crypto/x509/v3_iobo.c', 'openssl/crypto/x509/v3_ist.c', 'openssl/crypto/x509/v3_lib.c', 'openssl/crypto/x509/v3_ncons.c', + 'openssl/crypto/x509/v3_no_ass.c', + 'openssl/crypto/x509/v3_no_rev_avail.c', 'openssl/crypto/x509/v3_pci.c', 'openssl/crypto/x509/v3_pcia.c', 'openssl/crypto/x509/v3_pcons.c', @@ -736,13 +843,20 @@ 'openssl/crypto/x509/v3_pmaps.c', 'openssl/crypto/x509/v3_prn.c', 'openssl/crypto/x509/v3_purp.c', + 'openssl/crypto/x509/v3_rolespec.c', 'openssl/crypto/x509/v3_san.c', + 'openssl/crypto/x509/v3_sda.c', + 'openssl/crypto/x509/v3_single_use.c', 'openssl/crypto/x509/v3_skid.c', + 'openssl/crypto/x509/v3_soa_id.c', 'openssl/crypto/x509/v3_sxnet.c', + 'openssl/crypto/x509/v3_timespec.c', 'openssl/crypto/x509/v3_tlsf.c', + 'openssl/crypto/x509/v3_usernotice.c', 'openssl/crypto/x509/v3_utf8.c', 'openssl/crypto/x509/v3_utl.c', 'openssl/crypto/x509/v3err.c', + 'openssl/crypto/x509/x509_acert.c', 'openssl/crypto/x509/x509_att.c', 'openssl/crypto/x509/x509_cmp.c', 'openssl/crypto/x509/x509_d2.c', @@ -760,6 +874,7 @@ 'openssl/crypto/x509/x509_v3.c', 'openssl/crypto/x509/x509_vfy.c', 'openssl/crypto/x509/x509_vpm.c', + 'openssl/crypto/x509/x509aset.c', 'openssl/crypto/x509/x509cset.c', 'openssl/crypto/x509/x509name.c', 'openssl/crypto/x509/x509rset.c', @@ -769,6 +884,7 @@ 'openssl/crypto/x509/x_attrib.c', 'openssl/crypto/x509/x_crl.c', 'openssl/crypto/x509/x_exten.c', + 'openssl/crypto/x509/x_ietfatt.c', 'openssl/crypto/x509/x_name.c', 'openssl/crypto/x509/x_pubkey.c', 'openssl/crypto/x509/x_req.c', @@ -800,6 +916,9 @@ 'openssl/providers/implementations/ciphers/cipher_aes_ccm_hw.c', 'openssl/providers/implementations/ciphers/cipher_aes_gcm.c', 'openssl/providers/implementations/ciphers/cipher_aes_gcm_hw.c', + 'openssl/providers/implementations/ciphers/cipher_aes_gcm_siv.c', + 'openssl/providers/implementations/ciphers/cipher_aes_gcm_siv_hw.c', + 'openssl/providers/implementations/ciphers/cipher_aes_gcm_siv_polyval.c', 'openssl/providers/implementations/ciphers/cipher_aes_hw.c', 'openssl/providers/implementations/ciphers/cipher_aes_ocb.c', 'openssl/providers/implementations/ciphers/cipher_aes_ocb_hw.c', @@ -824,7 +943,13 @@ 'openssl/providers/implementations/ciphers/cipher_cts.c', 'openssl/providers/implementations/ciphers/cipher_null.c', 'openssl/providers/implementations/ciphers/cipher_sm4.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_ccm.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_ccm_hw.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_gcm.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_gcm_hw.c', 'openssl/providers/implementations/ciphers/cipher_sm4_hw.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_xts.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_xts_hw.c', 'openssl/providers/implementations/ciphers/cipher_tdes.c', 'openssl/providers/implementations/ciphers/cipher_tdes_common.c', 'openssl/providers/implementations/ciphers/cipher_tdes_default.c', @@ -853,11 +978,16 @@ 'openssl/providers/implementations/encode_decode/encode_key2ms.c', 'openssl/providers/implementations/encode_decode/encode_key2text.c', 'openssl/providers/implementations/encode_decode/endecoder_common.c', + 'openssl/providers/implementations/encode_decode/ml_common_codecs.c', + 'openssl/providers/implementations/encode_decode/ml_dsa_codecs.c', + 'openssl/providers/implementations/encode_decode/ml_kem_codecs.c', 'openssl/providers/implementations/exchange/dh_exch.c', 'openssl/providers/implementations/exchange/ecdh_exch.c', 'openssl/providers/implementations/exchange/ecx_exch.c', 'openssl/providers/implementations/exchange/kdf_exch.c', + 'openssl/providers/implementations/kdfs/argon2.c', 'openssl/providers/implementations/kdfs/hkdf.c', + 'openssl/providers/implementations/kdfs/hmacdrbg_kdf.c', 'openssl/providers/implementations/kdfs/kbkdf.c', 'openssl/providers/implementations/kdfs/krb5kdf.c', 'openssl/providers/implementations/kdfs/pbkdf2.c', @@ -868,6 +998,11 @@ 'openssl/providers/implementations/kdfs/sskdf.c', 'openssl/providers/implementations/kdfs/tls1_prf.c', 'openssl/providers/implementations/kdfs/x942kdf.c', + 'openssl/providers/implementations/kem/ec_kem.c', + 'openssl/providers/implementations/kem/ecx_kem.c', + 'openssl/providers/implementations/kem/kem_util.c', + 'openssl/providers/implementations/kem/ml_kem_kem.c', + 'openssl/providers/implementations/kem/mlx_kem.c', 'openssl/providers/implementations/kem/rsa_kem.c', 'openssl/providers/implementations/keymgmt/dh_kmgmt.c', 'openssl/providers/implementations/keymgmt/dsa_kmgmt.c', @@ -875,7 +1010,11 @@ 'openssl/providers/implementations/keymgmt/ecx_kmgmt.c', 'openssl/providers/implementations/keymgmt/kdf_legacy_kmgmt.c', 'openssl/providers/implementations/keymgmt/mac_legacy_kmgmt.c', + 'openssl/providers/implementations/keymgmt/ml_dsa_kmgmt.c', + 'openssl/providers/implementations/keymgmt/ml_kem_kmgmt.c', + 'openssl/providers/implementations/keymgmt/mlx_kmgmt.c', 'openssl/providers/implementations/keymgmt/rsa_kmgmt.c', + 'openssl/providers/implementations/keymgmt/slh_dsa_kmgmt.c', 'openssl/providers/implementations/macs/blake2b_mac.c', 'openssl/providers/implementations/macs/blake2s_mac.c', 'openssl/providers/implementations/macs/cmac_prov.c', @@ -884,12 +1023,12 @@ 'openssl/providers/implementations/macs/kmac_prov.c', 'openssl/providers/implementations/macs/poly1305_prov.c', 'openssl/providers/implementations/macs/siphash_prov.c', - 'openssl/providers/implementations/rands/crngt.c', 'openssl/providers/implementations/rands/drbg.c', 'openssl/providers/implementations/rands/drbg_ctr.c', 'openssl/providers/implementations/rands/drbg_hash.c', 'openssl/providers/implementations/rands/drbg_hmac.c', 'openssl/providers/implementations/rands/seed_src.c', + 'openssl/providers/implementations/rands/seed_src_jitter.c', 'openssl/providers/implementations/rands/test_rng.c', 'openssl/providers/implementations/rands/seeding/rand_cpu_x86.c', 'openssl/providers/implementations/rands/seeding/rand_tsc.c', @@ -899,17 +1038,23 @@ 'openssl/providers/implementations/signature/ecdsa_sig.c', 'openssl/providers/implementations/signature/eddsa_sig.c', 'openssl/providers/implementations/signature/mac_legacy_sig.c', + 'openssl/providers/implementations/signature/ml_dsa_sig.c', 'openssl/providers/implementations/signature/rsa_sig.c', + 'openssl/providers/implementations/signature/slh_dsa_sig.c', 'openssl/providers/implementations/signature/sm2_sig.c', + 'openssl/providers/implementations/skeymgmt/aes_skmgmt.c', + 'openssl/providers/implementations/skeymgmt/generic.c', 'openssl/providers/implementations/storemgmt/file_store.c', 'openssl/providers/implementations/storemgmt/file_store_any2obj.c', - 'openssl/ssl/s3_cbc.c', + 'openssl/ssl/record/methods/ssl3_cbc.c', 'openssl/providers/common/der/der_dsa_key.c', 'openssl/providers/common/der/der_dsa_sig.c', 'openssl/providers/common/der/der_ec_key.c', 'openssl/providers/common/der/der_ec_sig.c', 'openssl/providers/common/der/der_ecx_key.c', + 'openssl/providers/common/der/der_ml_dsa_key.c', 'openssl/providers/common/der/der_rsa_key.c', + 'openssl/providers/common/der/der_slh_dsa_key.c', 'openssl/providers/common/provider_ctx.c', 'openssl/providers/common/provider_err.c', 'openssl/providers/implementations/ciphers/ciphercommon.c', @@ -920,7 +1065,7 @@ 'openssl/providers/implementations/ciphers/ciphercommon_gcm_hw.c', 'openssl/providers/implementations/ciphers/ciphercommon_hw.c', 'openssl/providers/implementations/digests/digestcommon.c', - 'openssl/ssl/record/tls_pad.c', + 'openssl/ssl/record/methods/tls_pad.c', 'openssl/providers/implementations/ciphers/cipher_blowfish.c', 'openssl/providers/implementations/ciphers/cipher_blowfish_hw.c', 'openssl/providers/implementations/ciphers/cipher_cast5.c', @@ -945,6 +1090,7 @@ 'openssl/providers/implementations/digests/ripemd_prov.c', 'openssl/providers/implementations/digests/wp_prov.c', 'openssl/providers/implementations/kdfs/pbkdf1.c', + 'openssl/providers/implementations/kdfs/pvkkdf.c', 'openssl/providers/prov_running.c', 'openssl/providers/legacyprov.c', ], @@ -957,6 +1103,7 @@ './config/archs/linux-armv4/asm_avx2/crypto/chacha/chacha-armv4.S', './config/archs/linux-armv4/asm_avx2/crypto/ec/ecp_nistz256-armv4.S', './config/archs/linux-armv4/asm_avx2/crypto/armv4cpuid.S', + './config/archs/linux-armv4/asm_avx2/crypto/params_idx.c', './config/archs/linux-armv4/asm_avx2/crypto/modes/ghash-armv4.S', './config/archs/linux-armv4/asm_avx2/crypto/modes/ghashv8-armx.S', './config/archs/linux-armv4/asm_avx2/crypto/poly1305/poly1305-armv4.S', @@ -969,7 +1116,9 @@ './config/archs/linux-armv4/asm_avx2/providers/common/der/der_dsa_gen.c', './config/archs/linux-armv4/asm_avx2/providers/common/der/der_ec_gen.c', './config/archs/linux-armv4/asm_avx2/providers/common/der/der_ecx_gen.c', + './config/archs/linux-armv4/asm_avx2/providers/common/der/der_ml_dsa_gen.c', './config/archs/linux-armv4/asm_avx2/providers/common/der/der_rsa_gen.c', + './config/archs/linux-armv4/asm_avx2/providers/common/der/der_slh_dsa_gen.c', './config/archs/linux-armv4/asm_avx2/providers/common/der/der_wrap_gen.c', './config/archs/linux-armv4/asm_avx2/providers/legacy.ld', './config/archs/linux-armv4/asm_avx2/providers/fips.ld', diff --git a/deps/openssl/config/archs/linux-armv4/asm_avx2/providers/common/der/der_ml_dsa_gen.c b/deps/openssl/config/archs/linux-armv4/asm_avx2/providers/common/der/der_ml_dsa_gen.c new file mode 100644 index 00000000000000..4a8a113a268578 --- /dev/null +++ b/deps/openssl/config/archs/linux-armv4/asm_avx2/providers/common/der/der_ml_dsa_gen.c @@ -0,0 +1,37 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from providers/common/der/der_ml_dsa_gen.c.in + * + * Copyright 2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include "prov/der_ml_dsa.h" + +/* Well known OIDs precompiled */ + +/* + * id-ml-dsa-44 OBJECT IDENTIFIER ::= { sigAlgs 17 } + */ +const unsigned char ossl_der_oid_id_ml_dsa_44[DER_OID_SZ_id_ml_dsa_44] = { + DER_OID_V_id_ml_dsa_44 +}; + +/* + * id-ml-dsa-65 OBJECT IDENTIFIER ::= { sigAlgs 18 } + */ +const unsigned char ossl_der_oid_id_ml_dsa_65[DER_OID_SZ_id_ml_dsa_65] = { + DER_OID_V_id_ml_dsa_65 +}; + +/* + * id-ml-dsa-87 OBJECT IDENTIFIER ::= { sigAlgs 19 } + */ +const unsigned char ossl_der_oid_id_ml_dsa_87[DER_OID_SZ_id_ml_dsa_87] = { + DER_OID_V_id_ml_dsa_87 +}; + diff --git a/deps/openssl/config/archs/linux-armv4/asm_avx2/providers/common/der/der_slh_dsa_gen.c b/deps/openssl/config/archs/linux-armv4/asm_avx2/providers/common/der/der_slh_dsa_gen.c new file mode 100644 index 00000000000000..1419a9515097dd --- /dev/null +++ b/deps/openssl/config/archs/linux-armv4/asm_avx2/providers/common/der/der_slh_dsa_gen.c @@ -0,0 +1,100 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from providers/common/der/der_slh_dsa_gen.c.in + * + * Copyright 2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include "prov/der_slh_dsa.h" + +/* Well known OIDs precompiled */ + +/* + * id-slh-dsa-sha2-128s OBJECT IDENTIFIER ::= { sigAlgs 20 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_128s[DER_OID_SZ_id_slh_dsa_sha2_128s] = { + DER_OID_V_id_slh_dsa_sha2_128s +}; + +/* + * id-slh-dsa-sha2-128f OBJECT IDENTIFIER ::= { sigAlgs 21 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_128f[DER_OID_SZ_id_slh_dsa_sha2_128f] = { + DER_OID_V_id_slh_dsa_sha2_128f +}; + +/* + * id-slh-dsa-sha2-192s OBJECT IDENTIFIER ::= { sigAlgs 22 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_192s[DER_OID_SZ_id_slh_dsa_sha2_192s] = { + DER_OID_V_id_slh_dsa_sha2_192s +}; + +/* + * id-slh-dsa-sha2-192f OBJECT IDENTIFIER ::= { sigAlgs 23 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_192f[DER_OID_SZ_id_slh_dsa_sha2_192f] = { + DER_OID_V_id_slh_dsa_sha2_192f +}; + +/* + * id-slh-dsa-sha2-256s OBJECT IDENTIFIER ::= { sigAlgs 24 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_256s[DER_OID_SZ_id_slh_dsa_sha2_256s] = { + DER_OID_V_id_slh_dsa_sha2_256s +}; + +/* + * id-slh-dsa-sha2-256f OBJECT IDENTIFIER ::= { sigAlgs 25 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_256f[DER_OID_SZ_id_slh_dsa_sha2_256f] = { + DER_OID_V_id_slh_dsa_sha2_256f +}; + +/* + * id-slh-dsa-shake-128s OBJECT IDENTIFIER ::= { sigAlgs 26 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_128s[DER_OID_SZ_id_slh_dsa_shake_128s] = { + DER_OID_V_id_slh_dsa_shake_128s +}; + +/* + * id-slh-dsa-shake-128f OBJECT IDENTIFIER ::= { sigAlgs 27 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_128f[DER_OID_SZ_id_slh_dsa_shake_128f] = { + DER_OID_V_id_slh_dsa_shake_128f +}; + +/* + * id-slh-dsa-shake-192s OBJECT IDENTIFIER ::= { sigAlgs 28 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_192s[DER_OID_SZ_id_slh_dsa_shake_192s] = { + DER_OID_V_id_slh_dsa_shake_192s +}; + +/* + * id-slh-dsa-shake-192f OBJECT IDENTIFIER ::= { sigAlgs 29 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_192f[DER_OID_SZ_id_slh_dsa_shake_192f] = { + DER_OID_V_id_slh_dsa_shake_192f +}; + +/* + * id-slh-dsa-shake-256s OBJECT IDENTIFIER ::= { sigAlgs 30 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_256s[DER_OID_SZ_id_slh_dsa_shake_256s] = { + DER_OID_V_id_slh_dsa_shake_256s +}; + +/* + * id-slh-dsa-shake-256f OBJECT IDENTIFIER ::= { sigAlgs 31 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_256f[DER_OID_SZ_id_slh_dsa_shake_256f] = { + DER_OID_V_id_slh_dsa_shake_256f +}; + diff --git a/deps/openssl/config/archs/linux-armv4/asm_avx2/providers/common/include/prov/der_ml_dsa.h b/deps/openssl/config/archs/linux-armv4/asm_avx2/providers/common/include/prov/der_ml_dsa.h new file mode 100644 index 00000000000000..c55f780ab4527c --- /dev/null +++ b/deps/openssl/config/archs/linux-armv4/asm_avx2/providers/common/include/prov/der_ml_dsa.h @@ -0,0 +1,40 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from providers/common/include/prov/der_ml_dsa.h.in + * + * Copyright 2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include "internal/der.h" +#include "crypto/ml_dsa.h" + +/* Well known OIDs precompiled */ + +/* + * id-ml-dsa-44 OBJECT IDENTIFIER ::= { sigAlgs 17 } + */ +#define DER_OID_V_id_ml_dsa_44 DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x11 +#define DER_OID_SZ_id_ml_dsa_44 11 +extern const unsigned char ossl_der_oid_id_ml_dsa_44[DER_OID_SZ_id_ml_dsa_44]; + +/* + * id-ml-dsa-65 OBJECT IDENTIFIER ::= { sigAlgs 18 } + */ +#define DER_OID_V_id_ml_dsa_65 DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x12 +#define DER_OID_SZ_id_ml_dsa_65 11 +extern const unsigned char ossl_der_oid_id_ml_dsa_65[DER_OID_SZ_id_ml_dsa_65]; + +/* + * id-ml-dsa-87 OBJECT IDENTIFIER ::= { sigAlgs 19 } + */ +#define DER_OID_V_id_ml_dsa_87 DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x13 +#define DER_OID_SZ_id_ml_dsa_87 11 +extern const unsigned char ossl_der_oid_id_ml_dsa_87[DER_OID_SZ_id_ml_dsa_87]; + + +int ossl_DER_w_algorithmIdentifier_ML_DSA(WPACKET *pkt, int tag, ML_DSA_KEY *key); diff --git a/deps/openssl/config/archs/linux-armv4/asm_avx2/providers/common/include/prov/der_slh_dsa.h b/deps/openssl/config/archs/linux-armv4/asm_avx2/providers/common/include/prov/der_slh_dsa.h new file mode 100644 index 00000000000000..760f8e7699be72 --- /dev/null +++ b/deps/openssl/config/archs/linux-armv4/asm_avx2/providers/common/include/prov/der_slh_dsa.h @@ -0,0 +1,103 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from providers/common/include/prov/der_slh_dsa.h.in + * + * Copyright 2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include "internal/der.h" +#include "crypto/slh_dsa.h" + +/* Well known OIDs precompiled */ + +/* + * id-slh-dsa-sha2-128s OBJECT IDENTIFIER ::= { sigAlgs 20 } + */ +#define DER_OID_V_id_slh_dsa_sha2_128s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x14 +#define DER_OID_SZ_id_slh_dsa_sha2_128s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_128s[DER_OID_SZ_id_slh_dsa_sha2_128s]; + +/* + * id-slh-dsa-sha2-128f OBJECT IDENTIFIER ::= { sigAlgs 21 } + */ +#define DER_OID_V_id_slh_dsa_sha2_128f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x15 +#define DER_OID_SZ_id_slh_dsa_sha2_128f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_128f[DER_OID_SZ_id_slh_dsa_sha2_128f]; + +/* + * id-slh-dsa-sha2-192s OBJECT IDENTIFIER ::= { sigAlgs 22 } + */ +#define DER_OID_V_id_slh_dsa_sha2_192s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x16 +#define DER_OID_SZ_id_slh_dsa_sha2_192s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_192s[DER_OID_SZ_id_slh_dsa_sha2_192s]; + +/* + * id-slh-dsa-sha2-192f OBJECT IDENTIFIER ::= { sigAlgs 23 } + */ +#define DER_OID_V_id_slh_dsa_sha2_192f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x17 +#define DER_OID_SZ_id_slh_dsa_sha2_192f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_192f[DER_OID_SZ_id_slh_dsa_sha2_192f]; + +/* + * id-slh-dsa-sha2-256s OBJECT IDENTIFIER ::= { sigAlgs 24 } + */ +#define DER_OID_V_id_slh_dsa_sha2_256s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x18 +#define DER_OID_SZ_id_slh_dsa_sha2_256s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_256s[DER_OID_SZ_id_slh_dsa_sha2_256s]; + +/* + * id-slh-dsa-sha2-256f OBJECT IDENTIFIER ::= { sigAlgs 25 } + */ +#define DER_OID_V_id_slh_dsa_sha2_256f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x19 +#define DER_OID_SZ_id_slh_dsa_sha2_256f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_256f[DER_OID_SZ_id_slh_dsa_sha2_256f]; + +/* + * id-slh-dsa-shake-128s OBJECT IDENTIFIER ::= { sigAlgs 26 } + */ +#define DER_OID_V_id_slh_dsa_shake_128s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1A +#define DER_OID_SZ_id_slh_dsa_shake_128s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_128s[DER_OID_SZ_id_slh_dsa_shake_128s]; + +/* + * id-slh-dsa-shake-128f OBJECT IDENTIFIER ::= { sigAlgs 27 } + */ +#define DER_OID_V_id_slh_dsa_shake_128f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1B +#define DER_OID_SZ_id_slh_dsa_shake_128f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_128f[DER_OID_SZ_id_slh_dsa_shake_128f]; + +/* + * id-slh-dsa-shake-192s OBJECT IDENTIFIER ::= { sigAlgs 28 } + */ +#define DER_OID_V_id_slh_dsa_shake_192s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1C +#define DER_OID_SZ_id_slh_dsa_shake_192s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_192s[DER_OID_SZ_id_slh_dsa_shake_192s]; + +/* + * id-slh-dsa-shake-192f OBJECT IDENTIFIER ::= { sigAlgs 29 } + */ +#define DER_OID_V_id_slh_dsa_shake_192f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1D +#define DER_OID_SZ_id_slh_dsa_shake_192f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_192f[DER_OID_SZ_id_slh_dsa_shake_192f]; + +/* + * id-slh-dsa-shake-256s OBJECT IDENTIFIER ::= { sigAlgs 30 } + */ +#define DER_OID_V_id_slh_dsa_shake_256s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1E +#define DER_OID_SZ_id_slh_dsa_shake_256s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_256s[DER_OID_SZ_id_slh_dsa_shake_256s]; + +/* + * id-slh-dsa-shake-256f OBJECT IDENTIFIER ::= { sigAlgs 31 } + */ +#define DER_OID_V_id_slh_dsa_shake_256f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1F +#define DER_OID_SZ_id_slh_dsa_shake_256f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_256f[DER_OID_SZ_id_slh_dsa_shake_256f]; + + +int ossl_DER_w_algorithmIdentifier_SLH_DSA(WPACKET *pkt, int tag, SLH_DSA_KEY *key); diff --git a/deps/openssl/config/archs/linux-armv4/no-asm/apps/progs.c b/deps/openssl/config/archs/linux-armv4/no-asm/apps/progs.c index 43cef00799b86e..acc204a3e6e781 100644 --- a/deps/openssl/config/archs/linux-armv4/no-asm/apps/progs.c +++ b/deps/openssl/config/archs/linux-armv4/no-asm/apps/progs.c @@ -89,6 +89,7 @@ FUNCTION functions[] = { {FT_general, "s_time", s_time_main, s_time_options, NULL, NULL}, #endif {FT_general, "sess_id", sess_id_main, sess_id_options, NULL, NULL}, + {FT_general, "skeyutl", skeyutl_main, skeyutl_options, NULL, NULL}, {FT_general, "smime", smime_main, smime_options, NULL, NULL}, {FT_general, "speed", speed_main, speed_options, NULL, NULL}, {FT_general, "spkac", spkac_main, spkac_options, NULL, NULL}, @@ -225,9 +226,15 @@ FUNCTION functions[] = { {FT_cipher, "camellia-256-ecb", enc_main, enc_options, NULL}, #endif {FT_cipher, "base64", enc_main, enc_options, NULL}, -#ifdef ZLIB +#ifndef OPENSSL_NO_ZLIB {FT_cipher, "zlib", enc_main, enc_options, NULL}, #endif +#ifndef OPENSSL_NO_BROTLI + {FT_cipher, "brotli", enc_main, enc_options, NULL}, +#endif +#ifndef OPENSSL_NO_ZSTD + {FT_cipher, "zstd", enc_main, enc_options, NULL}, +#endif #ifndef OPENSSL_NO_DES {FT_cipher, "des", enc_main, enc_options, NULL}, #endif diff --git a/deps/openssl/config/archs/linux-armv4/no-asm/configdata.pm b/deps/openssl/config/archs/linux-armv4/no-asm/configdata.pm index 6c5136f149b6b7..40a0701e383aa9 100644 --- a/deps/openssl/config/archs/linux-armv4/no-asm/configdata.pm +++ b/deps/openssl/config/archs/linux-armv4/no-asm/configdata.pm @@ -18,6 +18,7 @@ our %config = ( "ARFLAGS" => [ "qc" ], + "ASFLAGS" => [], "CC" => "gcc", "CFLAGS" => [ "-Wall -O3" @@ -30,14 +31,16 @@ our %config = ( "-Wall -O3" ], "FIPSKEY" => "f4556650ac31d35461610bac4ed81b1a181b2d8a43ea2854cbae22ca74560813", + "FIPS_VENDOR" => "OpenSSL FIPS Provider", "HASHBANGPERL" => "/usr/bin/env perl", "LDFLAGS" => [], "LDLIBS" => [], + "OBJCOPY" => "objcopy", "PERL" => "/usr/bin/perl", "RANLIB" => "ranlib", "RC" => "windres", "RCFLAGS" => [], - "api" => "30000", + "api" => "30500", "b32" => "1", "b64" => "0", "b64l" => "0", @@ -59,11 +62,13 @@ our %config = ( "doc/build.info", "test/build.info", "engines/build.info", + "exporters/build.info", "crypto/objects/build.info", "crypto/buffer/build.info", "crypto/bio/build.info", "crypto/stack/build.info", "crypto/lhash/build.info", + "crypto/hashtable/build.info", "crypto/rand/build.info", "crypto/evp/build.info", "crypto/asn1/build.info", @@ -81,6 +86,7 @@ our %config = ( "crypto/md5/build.info", "crypto/sha/build.info", "crypto/mdc2/build.info", + "crypto/ml_kem/build.info", "crypto/hmac/build.info", "crypto/ripemd/build.info", "crypto/whrlpool/build.info", @@ -122,11 +128,19 @@ our %config = ( "crypto/cmp/build.info", "crypto/encode_decode/build.info", "crypto/ffc/build.info", + "crypto/hpke/build.info", + "crypto/thread/build.info", + "crypto/ml_dsa/build.info", + "crypto/slh_dsa/build.info", + "ssl/record/build.info", + "ssl/rio/build.info", + "ssl/quic/build.info", "apps/lib/build.info", "providers/common/build.info", "providers/implementations/build.info", "providers/fips/build.info", "doc/man1/build.info", + "ssl/record/methods/build.info", "providers/common/der/build.info", "providers/implementations/digests/build.info", "providers/implementations/ciphers/build.info", @@ -140,6 +154,7 @@ our %config = ( "providers/implementations/encode_decode/build.info", "providers/implementations/storemgmt/build.info", "providers/implementations/kem/build.info", + "providers/implementations/skeymgmt/build.info", "providers/implementations/rands/seeding/build.info" ], "build_metadata" => "", @@ -157,7 +172,7 @@ our %config = ( ], "dynamic_engines" => "0", "ex_libs" => [], - "full_version" => "3.0.17", + "full_version" => "3.5.1", "includes" => [], "lflags" => [], "lib_defines" => [ @@ -166,9 +181,9 @@ our %config = ( "libdir" => "", "major" => "3", "makedep_scheme" => "gcc", - "minor" => "0", + "minor" => "5", "openssl_api_defines" => [ - "OPENSSL_CONFIGURED_API=30000" + "OPENSSL_CONFIGURED_API=30500" ], "openssl_feature_defines" => [ "OPENSSL_RAND_SEED_OS", @@ -176,28 +191,43 @@ our %config = ( "OPENSSL_NO_AFALGENG", "OPENSSL_NO_ASAN", "OPENSSL_NO_ASM", + "OPENSSL_NO_BROTLI", + "OPENSSL_NO_BROTLI_DYNAMIC", "OPENSSL_NO_COMP", "OPENSSL_NO_CRYPTO_MDEBUG", "OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE", + "OPENSSL_NO_DEMOS", "OPENSSL_NO_DEVCRYPTOENG", "OPENSSL_NO_EC_NISTP_64_GCC_128", "OPENSSL_NO_EGD", "OPENSSL_NO_EXTERNAL_TESTS", + "OPENSSL_NO_FIPS_JITTER", "OPENSSL_NO_FUZZ_AFL", "OPENSSL_NO_FUZZ_LIBFUZZER", + "OPENSSL_NO_H3DEMO", + "OPENSSL_NO_HQINTEROP", + "OPENSSL_NO_JITTER", "OPENSSL_NO_KTLS", "OPENSSL_NO_LOADERENG", "OPENSSL_NO_MD2", "OPENSSL_NO_MSAN", + "OPENSSL_NO_PIE", "OPENSSL_NO_RC5", "OPENSSL_NO_SCTP", "OPENSSL_NO_SSL3", "OPENSSL_NO_SSL3_METHOD", + "OPENSSL_NO_SSLKEYLOG", + "OPENSSL_NO_TFO", "OPENSSL_NO_TRACE", "OPENSSL_NO_UBSAN", "OPENSSL_NO_UNIT_TEST", "OPENSSL_NO_UPLINK", "OPENSSL_NO_WEAK_SSL_CIPHERS", + "OPENSSL_NO_WINSTORE", + "OPENSSL_NO_ZLIB", + "OPENSSL_NO_ZLIB_DYNAMIC", + "OPENSSL_NO_ZSTD", + "OPENSSL_NO_ZSTD_DYNAMIC", "OPENSSL_NO_DYNAMIC_ENGINE" ], "openssl_other_defines" => [ @@ -205,11 +235,11 @@ our %config = ( ], "openssl_sys_defines" => [], "openssldir" => "", - "options" => "enable-ssl-trace enable-fips no-afalgeng no-asan no-asm no-buildtest-c++ no-comp no-crypto-mdebug no-crypto-mdebug-backtrace no-devcryptoeng no-dynamic-engine no-ec_nistp_64_gcc_128 no-egd no-external-tests no-fuzz-afl no-fuzz-libfuzzer no-ktls no-loadereng no-md2 no-msan no-rc5 no-sctp no-shared no-ssl3 no-ssl3-method no-trace no-ubsan no-unit-test no-uplink no-weak-ssl-ciphers no-zlib no-zlib-dynamic", - "patch" => "17", + "options" => "enable-ssl-trace enable-fips no-afalgeng no-asan no-asm no-brotli no-brotli-dynamic no-buildtest-c++ no-comp no-crypto-mdebug no-crypto-mdebug-backtrace no-demos no-devcryptoeng no-dynamic-engine no-ec_nistp_64_gcc_128 no-egd no-external-tests no-fips-jitter no-fuzz-afl no-fuzz-libfuzzer no-h3demo no-hqinterop no-jitter no-ktls no-loadereng no-md2 no-msan no-pie no-rc5 no-sctp no-shared no-ssl3 no-ssl3-method no-sslkeylog no-tfo no-trace no-ubsan no-unit-test no-uplink no-weak-ssl-ciphers no-winstore no-zlib no-zlib-dynamic no-zstd no-zstd-dynamic", + "patch" => "1", "perl_archname" => "x86_64-linux-gnu-thread-multi", "perl_cmd" => "/usr/bin/perl", - "perl_version" => "5.38.2", + "perl_version" => "5.34.0", "perlargv" => [ "no-comp", "no-shared", @@ -240,6 +270,7 @@ our %config = ( "LDLIBS" => undef, "MT" => undef, "MTFLAGS" => undef, + "OBJCOPY" => undef, "OPENSSL_LOCAL_CONFIG_DIR" => undef, "PERL" => undef, "RANLIB" => undef, @@ -263,7 +294,7 @@ our %config = ( "shlib_version" => "3", "sourcedir" => ".", "target" => "linux-armv4", - "version" => "3.0.17" + "version" => "3.5.1" ); our %target = ( "AR" => "ar", @@ -273,6 +304,7 @@ our %target = ( "CXX" => "g++", "CXXFLAGS" => "-Wall -O3", "HASHBANGPERL" => "/usr/bin/env perl", + "OBJCOPY" => "objcopy", "RANLIB" => "ranlib", "RC" => "windres", "_conf_fname_int" => [ @@ -284,6 +316,8 @@ our %target = ( "Configurations/shared-info.pl" ], "asm_arch" => "armv4", + "bin_cflags" => "", + "bin_lflags" => "", "bn_ops" => "BN_LLONG RC4_CHAR", "build_file" => "Makefile", "build_scheme" => [ @@ -328,6 +362,8 @@ our %target = ( our @disablables = ( "acvp-tests", "afalgeng", + "apps", + "argon2", "aria", "asan", "asm", @@ -338,11 +374,14 @@ our @disablables = ( "autoload-config", "bf", "blake2", + "brotli", + "brotli-dynamic", "buildtest-c++", "bulk", "cached-fetch", "camellia", "capieng", + "winstore", "cast", "chacha", "cmac", @@ -351,11 +390,16 @@ our @disablables = ( "comp", "crypto-mdebug", "ct", + "default-thread-pool", + "demos", + "h3demo", + "hqinterop", "deprecated", "des", "devcryptoeng", "dgram", "dh", + "docs", "dsa", "dso", "dtls", @@ -365,6 +409,7 @@ our @disablables = ( "ec_nistp_64_gcc_128", "ecdh", "ecdsa", + "ecx", "egd", "engine", "err", @@ -372,10 +417,15 @@ our @disablables = ( "filenames", "fips", "fips-securitychecks", + "fips-post", + "fips-jitter", "fuzz-afl", "fuzz-libfuzzer", "gost", + "http", "idea", + "integrity-only-ciphers", + "jitter", "ktls", "legacy", "loadereng", @@ -383,6 +433,8 @@ our @disablables = ( "md2", "md4", "mdc2", + "ml-dsa", + "ml-kem", "module", "msan", "multiblock", @@ -391,10 +443,13 @@ our @disablables = ( "ocsp", "padlockeng", "pic", + "pie", "pinshared", "poly1305", "posix-io", "psk", + "quic", + "unstable-qlog", "rc2", "rc4", "rc5", @@ -408,7 +463,9 @@ our @disablables = ( "shared", "siphash", "siv", + "slh-dsa", "sm2", + "sm2-precomp", "sm3", "sm4", "sock", @@ -419,9 +476,13 @@ our @disablables = ( "ssl-trace", "static-engine", "stdio", + "sslkeylog", "tests", + "tfo", + "thread-pool", "threads", "tls", + "tls-deprecated-ec", "trace", "ts", "ubsan", @@ -432,6 +493,8 @@ our @disablables = ( "whirlpool", "zlib", "zlib-dynamic", + "zstd", + "zstd-dynamic", "ssl3", "ssl3-method", "tls1", @@ -453,33 +516,46 @@ our %disabled = ( "afalgeng" => "option", "asan" => "default", "asm" => "option", + "brotli" => "default", + "brotli-dynamic" => "default", "buildtest-c++" => "default", "comp" => "option", "crypto-mdebug" => "default", "crypto-mdebug-backtrace" => "default", + "demos" => "default", "devcryptoeng" => "default", "dynamic-engine" => "cascade", "ec_nistp_64_gcc_128" => "default", "egd" => "default", "external-tests" => "default", + "fips-jitter" => "default", "fuzz-afl" => "default", "fuzz-libfuzzer" => "default", + "h3demo" => "default", + "hqinterop" => "default", + "jitter" => "default", "ktls" => "default", "loadereng" => "cascade", "md2" => "default", "msan" => "default", + "pie" => "default", "rc5" => "default", "sctp" => "default", "shared" => "option", "ssl3" => "default", "ssl3-method" => "default", + "sslkeylog" => "default", + "tfo" => "default", "trace" => "default", "ubsan" => "default", "unit-test" => "default", "uplink" => "no uplink_arch", "weak-ssl-ciphers" => "default", + "winstore" => "not-windows", "zlib" => "default", - "zlib-dynamic" => "default" + "zlib-dynamic" => "default", + "zstd" => "default", + "zstd-dynamic" => "default" ); our %withargs = (); our %unified_info = ( @@ -705,6 +781,11 @@ our %unified_info = ( "pod" => "1" } }, + "doc/man1/openssl-skeyutl.pod" => { + "doc/man1/openssl-skeyutl.pod.in" => { + "pod" => "1" + } + }, "doc/man1/openssl-smime.pod" => { "doc/man1/openssl-smime.pod.in" => { "pod" => "1" @@ -762,6 +843,21 @@ our %unified_info = ( } }, "generate" => { + "exporters/OpenSSLConfig.cmake" => { + "exporter" => "cmake" + }, + "exporters/OpenSSLConfigVersion.cmake" => { + "exporter" => "cmake" + }, + "exporters/libcrypto.pc" => { + "exporter" => "pkg-config" + }, + "exporters/libssl.pc" => { + "exporter" => "pkg-config" + }, + "exporters/openssl.pc" => { + "exporter" => "pkg-config" + }, "include/openssl/configuration.h" => { "skip" => "1" } @@ -782,6 +878,9 @@ our %unified_info = ( "providers/liblegacy.a" => { "noinst" => "1" }, + "providers/libtemplate.a" => { + "noinst" => "1" + }, "test/libtestutil.a" => { "has_main" => "1", "noinst" => "1" @@ -799,6 +898,9 @@ our %unified_info = ( } }, "programs" => { + "fuzz/acert-test" => { + "noinst" => "1" + }, "fuzz/asn1-test" => { "noinst" => "1" }, @@ -829,9 +931,60 @@ our %unified_info = ( "fuzz/ct-test" => { "noinst" => "1" }, + "fuzz/decoder-test" => { + "noinst" => "1" + }, + "fuzz/dtlsclient-test" => { + "noinst" => "1" + }, + "fuzz/dtlsserver-test" => { + "noinst" => "1" + }, + "fuzz/hashtable-test" => { + "noinst" => "1" + }, + "fuzz/ml-dsa-test" => { + "noinst" => "1" + }, + "fuzz/ml-kem-test" => { + "noinst" => "1" + }, + "fuzz/pem-test" => { + "noinst" => "1" + }, + "fuzz/provider-test" => { + "noinst" => "1" + }, + "fuzz/punycode-test" => { + "noinst" => "1" + }, + "fuzz/quic-client-test" => { + "noinst" => "1" + }, + "fuzz/quic-lcidm-test" => { + "noinst" => "1" + }, + "fuzz/quic-rcidm-test" => { + "noinst" => "1" + }, + "fuzz/quic-server-test" => { + "noinst" => "1" + }, + "fuzz/quic-srtm-test" => { + "noinst" => "1" + }, "fuzz/server-test" => { "noinst" => "1" }, + "fuzz/slh-dsa-test" => { + "noinst" => "1" + }, + "fuzz/smime-test" => { + "noinst" => "1" + }, + "fuzz/v3name-test" => { + "noinst" => "1" + }, "fuzz/x509-test" => { "noinst" => "1" }, @@ -883,18 +1036,30 @@ our %unified_info = ( "test/bftest" => { "noinst" => "1" }, + "test/bio_addr_test" => { + "noinst" => "1" + }, + "test/bio_base64_test" => { + "noinst" => "1" + }, "test/bio_callback_test" => { "noinst" => "1" }, "test/bio_core_test" => { "noinst" => "1" }, + "test/bio_dgram_test" => { + "noinst" => "1" + }, "test/bio_enc_test" => { "noinst" => "1" }, "test/bio_memleak_test" => { "noinst" => "1" }, + "test/bio_meth_test" => { + "noinst" => "1" + }, "test/bio_prefix_text" => { "noinst" => "1" }, @@ -904,6 +1069,9 @@ our %unified_info = ( "test/bio_readbuffer_test" => { "noinst" => "1" }, + "test/bio_tfo_test" => { + "noinst" => "1" + }, "test/bioprinttest" => { "noinst" => "1" }, @@ -913,6 +1081,9 @@ our %unified_info = ( "test/bntest" => { "noinst" => "1" }, + "test/build_wincrypt_test" => { + "noinst" => "1" + }, "test/buildtest_c_aes" => { "noinst" => "1" }, @@ -928,6 +1099,9 @@ our %unified_info = ( "test/buildtest_c_buffer" => { "noinst" => "1" }, + "test/buildtest_c_byteorder" => { + "noinst" => "1" + }, "test/buildtest_c_camellia" => { "noinst" => "1" }, @@ -952,9 +1126,6 @@ our %unified_info = ( "test/buildtest_c_core_dispatch" => { "noinst" => "1" }, - "test/buildtest_c_core_names" => { - "noinst" => "1" - }, "test/buildtest_c_core_object" => { "noinst" => "1" }, @@ -979,6 +1150,9 @@ our %unified_info = ( "test/buildtest_c_e_os2" => { "noinst" => "1" }, + "test/buildtest_c_e_ostime" => { + "noinst" => "1" + }, "test/buildtest_c_ebcdic" => { "noinst" => "1" }, @@ -1006,12 +1180,18 @@ our %unified_info = ( "test/buildtest_c_hmac" => { "noinst" => "1" }, + "test/buildtest_c_hpke" => { + "noinst" => "1" + }, "test/buildtest_c_http" => { "noinst" => "1" }, "test/buildtest_c_idea" => { "noinst" => "1" }, + "test/buildtest_c_indicator" => { + "noinst" => "1" + }, "test/buildtest_c_kdf" => { "noinst" => "1" }, @@ -1027,6 +1207,9 @@ our %unified_info = ( "test/buildtest_c_mdc2" => { "noinst" => "1" }, + "test/buildtest_c_ml_kem" => { + "noinst" => "1" + }, "test/buildtest_c_modes" => { "noinst" => "1" }, @@ -1057,6 +1240,9 @@ our %unified_info = ( "test/buildtest_c_provider" => { "noinst" => "1" }, + "test/buildtest_c_quic" => { + "noinst" => "1" + }, "test/buildtest_c_rand" => { "noinst" => "1" }, @@ -1099,6 +1285,9 @@ our %unified_info = ( "test/buildtest_c_symhacks" => { "noinst" => "1" }, + "test/buildtest_c_thread" => { + "noinst" => "1" + }, "test/buildtest_c_tls1" => { "noinst" => "1" }, @@ -1114,6 +1303,12 @@ our %unified_info = ( "test/buildtest_c_whrlpool" => { "noinst" => "1" }, + "test/byteorder_test" => { + "noinst" => "1" + }, + "test/ca_internals_test" => { + "noinst" => "1" + }, "test/casttest" => { "noinst" => "1" }, @@ -1198,6 +1393,9 @@ our %unified_info = ( "test/danetest" => { "noinst" => "1" }, + "test/decoder_propq_test" => { + "noinst" => "1" + }, "test/defltfips_test" => { "noinst" => "1" }, @@ -1270,15 +1468,24 @@ our %unified_info = ( "test/evp_pkey_ctx_new_from_name" => { "noinst" => "1" }, + "test/evp_pkey_dhkem_test" => { + "noinst" => "1" + }, "test/evp_pkey_dparams_test" => { "noinst" => "1" }, "test/evp_pkey_provided_test" => { "noinst" => "1" }, + "test/evp_skey_test" => { + "noinst" => "1" + }, "test/evp_test" => { "noinst" => "1" }, + "test/evp_xof_test" => { + "noinst" => "1" + }, "test/exdatatest" => { "noinst" => "1" }, @@ -1306,6 +1513,9 @@ our %unified_info = ( "test/hmactest" => { "noinst" => "1" }, + "test/hpke_test" => { + "noinst" => "1" + }, "test/http_test" => { "noinst" => "1" }, @@ -1315,12 +1525,18 @@ our %unified_info = ( "test/igetest" => { "noinst" => "1" }, + "test/json_test" => { + "noinst" => "1" + }, "test/keymgmt_internal_test" => { "noinst" => "1" }, "test/lhash_test" => { "noinst" => "1" }, + "test/list_test" => { + "noinst" => "1" + }, "test/localetest" => { "noinst" => "1" }, @@ -1330,9 +1546,21 @@ our %unified_info = ( "test/mdc2test" => { "noinst" => "1" }, + "test/membio_test" => { + "noinst" => "1" + }, "test/memleaktest" => { "noinst" => "1" }, + "test/ml_dsa_test" => { + "noinst" => "1" + }, + "test/ml_kem_evp_extra_test" => { + "noinst" => "1" + }, + "test/ml_kem_internal_test" => { + "noinst" => "1" + }, "test/modes_internal_test" => { "noinst" => "1" }, @@ -1351,6 +1579,9 @@ our %unified_info = ( "test/packettest" => { "noinst" => "1" }, + "test/pairwise_fail_test" => { + "noinst" => "1" + }, "test/param_build_test" => { "noinst" => "1" }, @@ -1375,6 +1606,9 @@ our %unified_info = ( "test/pemtest" => { "noinst" => "1" }, + "test/pkcs12_api_test" => { + "noinst" => "1" + }, "test/pkcs12_format_test" => { "noinst" => "1" }, @@ -1390,6 +1624,9 @@ our %unified_info = ( "test/poly1305_internal_test" => { "noinst" => "1" }, + "test/priority_queue_test" => { + "noinst" => "1" + }, "test/property_test" => { "noinst" => "1" }, @@ -1399,6 +1636,9 @@ our %unified_info = ( "test/provfetchtest" => { "noinst" => "1" }, + "test/provider_default_search_path_test" => { + "noinst" => "1" + }, "test/provider_fallback_test" => { "noinst" => "1" }, @@ -1417,6 +1657,72 @@ our %unified_info = ( "test/punycode_test" => { "noinst" => "1" }, + "test/quic_ackm_test" => { + "noinst" => "1" + }, + "test/quic_cc_test" => { + "noinst" => "1" + }, + "test/quic_cfq_test" => { + "noinst" => "1" + }, + "test/quic_client_test" => { + "noinst" => "1" + }, + "test/quic_fc_test" => { + "noinst" => "1" + }, + "test/quic_fifd_test" => { + "noinst" => "1" + }, + "test/quic_lcidm_test" => { + "noinst" => "1" + }, + "test/quic_multistream_test" => { + "noinst" => "1" + }, + "test/quic_newcid_test" => { + "noinst" => "1" + }, + "test/quic_qlog_test" => { + "noinst" => "1" + }, + "test/quic_radix_test" => { + "noinst" => "1" + }, + "test/quic_rcidm_test" => { + "noinst" => "1" + }, + "test/quic_record_test" => { + "noinst" => "1" + }, + "test/quic_srt_gen_test" => { + "noinst" => "1" + }, + "test/quic_srtm_test" => { + "noinst" => "1" + }, + "test/quic_stream_test" => { + "noinst" => "1" + }, + "test/quic_tserver_test" => { + "noinst" => "1" + }, + "test/quic_txp_test" => { + "noinst" => "1" + }, + "test/quic_txpim_test" => { + "noinst" => "1" + }, + "test/quic_wire_test" => { + "noinst" => "1" + }, + "test/quicapitest" => { + "noinst" => "1" + }, + "test/quicfaultstest" => { + "noinst" => "1" + }, "test/rand_status_test" => { "noinst" => "1" }, @@ -1432,12 +1738,15 @@ our %unified_info = ( "test/rc5test" => { "noinst" => "1" }, - "test/rdrand_sanitytest" => { + "test/rdcpu_sanitytest" => { "noinst" => "1" }, "test/recordlentest" => { "noinst" => "1" }, + "test/rpktest" => { + "noinst" => "1" + }, "test/rsa_complex" => { "noinst" => "1" }, @@ -1450,6 +1759,12 @@ our %unified_info = ( "test/rsa_test" => { "noinst" => "1" }, + "test/rsa_x931_test" => { + "noinst" => "1" + }, + "test/safe_math_test" => { + "noinst" => "1" + }, "test/sanitytest" => { "noinst" => "1" }, @@ -1465,6 +1780,9 @@ our %unified_info = ( "test/siphash_internal_test" => { "noinst" => "1" }, + "test/slh_dsa_test" => { + "noinst" => "1" + }, "test/sm2_internal_test" => { "noinst" => "1" }, @@ -1486,6 +1804,9 @@ our %unified_info = ( "test/ssl_ctx_test" => { "noinst" => "1" }, + "test/ssl_handshake_rtt_test" => { + "noinst" => "1" + }, "test/ssl_old_test" => { "noinst" => "1" }, @@ -1507,12 +1828,18 @@ our %unified_info = ( "test/stack_test" => { "noinst" => "1" }, + "test/strtoultest" => { + "noinst" => "1" + }, "test/sysdefaulttest" => { "noinst" => "1" }, "test/test_test" => { "noinst" => "1" }, + "test/threadpool_test" => { + "noinst" => "1" + }, "test/threadstest" => { "noinst" => "1" }, @@ -1522,12 +1849,18 @@ our %unified_info = ( "test/time_offset_test" => { "noinst" => "1" }, + "test/time_test" => { + "noinst" => "1" + }, "test/tls13ccstest" => { "noinst" => "1" }, "test/tls13encryptiontest" => { "noinst" => "1" }, + "test/tls13groupselection_test" => { + "noinst" => "1" + }, "test/trace_api_test" => { "noinst" => "1" }, @@ -1555,6 +1888,9 @@ our %unified_info = ( "test/wpackettest" => { "noinst" => "1" }, + "test/x509_acert_test" => { + "noinst" => "1" + }, "test/x509_check_cert_pkey_test" => { "noinst" => "1" }, @@ -1564,6 +1900,15 @@ our %unified_info = ( "test/x509_internal_test" => { "noinst" => "1" }, + "test/x509_load_cert_file_test" => { + "noinst" => "1" + }, + "test/x509_req_test" => { + "noinst" => "1" + }, + "test/x509_test" => { + "noinst" => "1" + }, "test/x509_time_test" => { "noinst" => "1" }, @@ -1607,6 +1952,9 @@ our %unified_info = ( "providers/libfips.a" => [ "FIPS_MODULE" ], + "test/endecode_test" => [ + "STATIC_LEGACY" + ], "test/evp_extra_test" => [ "STATIC_LEGACY" ], @@ -1619,14 +1967,21 @@ our %unified_info = ( }, "depends" => { "" => [ + "OpenSSLConfigVersion.cmake", + "crypto/params_idx.c", + "exporters/OpenSSLConfigVersion.cmake", + "exporters/openssl.pc", "include/crypto/bn_conf.h", "include/crypto/dso_conf.h", + "include/internal/param_names.h", "include/openssl/asn1.h", "include/openssl/asn1t.h", "include/openssl/bio.h", "include/openssl/cmp.h", "include/openssl/cms.h", + "include/openssl/comp.h", "include/openssl/conf.h", + "include/openssl/core_names.h", "include/openssl/crmf.h", "include/openssl/crypto.h", "include/openssl/ct.h", @@ -1643,10 +1998,22 @@ our %unified_info = ( "include/openssl/ssl.h", "include/openssl/ui.h", "include/openssl/x509.h", + "include/openssl/x509_acert.h", "include/openssl/x509_vfy.h", "include/openssl/x509v3.h", + "openssl.pc", "test/provider_internal_test.cnf" ], + "OpenSSLConfig.cmake" => [ + "builddata.pm" + ], + "OpenSSLConfigVersion.cmake" => [ + "OpenSSLConfig.cmake", + "builddata.pm" + ], + "apps/ca_internals_test-bin-ca.o" => [ + "apps/progs.h" + ], "apps/lib/cmp_client_test-bin-cmp_mock_srv.o" => [ "apps/progs.h" ], @@ -1792,6 +2159,9 @@ our %unified_info = ( "apps/openssl-bin-sess_id.o" => [ "apps/progs.h" ], + "apps/openssl-bin-skeyutl.o" => [ + "apps/progs.h" + ], "apps/openssl-bin-smime.o" => [ "apps/progs.h" ], @@ -1880,6 +2250,9 @@ our %unified_info = ( "crypto/libcrypto-lib-info.o" => [ "crypto/buildinf.h" ], + "crypto/params_idx.c" => [ + "util/perl|OpenSSL/paramnames.pm" + ], "crypto/rc4/rc4-586.S" => [ "crypto/perlasm/x86asm.pl" ], @@ -2045,6 +2418,9 @@ our %unified_info = ( "doc/html/man1/openssl-sess_id.html" => [ "doc/man1/openssl-sess_id.pod" ], + "doc/html/man1/openssl-skeyutl.html" => [ + "doc/man1/openssl-skeyutl.pod" + ], "doc/html/man1/openssl-smime.html" => [ "doc/man1/openssl-smime.pod" ], @@ -2186,6 +2562,9 @@ our %unified_info = ( "doc/html/man3/BIO_get_ex_new_index.html" => [ "doc/man3/BIO_get_ex_new_index.pod" ], + "doc/html/man3/BIO_get_rpoll_descriptor.html" => [ + "doc/man3/BIO_get_rpoll_descriptor.pod" + ], "doc/html/man3/BIO_meth_new.html" => [ "doc/man3/BIO_meth_new.pod" ], @@ -2222,6 +2601,9 @@ our %unified_info = ( "doc/html/man3/BIO_s_datagram.html" => [ "doc/man3/BIO_s_datagram.pod" ], + "doc/html/man3/BIO_s_dgram_pair.html" => [ + "doc/man3/BIO_s_dgram_pair.pod" + ], "doc/html/man3/BIO_s_fd.html" => [ "doc/man3/BIO_s_fd.pod" ], @@ -2237,6 +2619,9 @@ our %unified_info = ( "doc/html/man3/BIO_s_socket.html" => [ "doc/man3/BIO_s_socket.pod" ], + "doc/html/man3/BIO_sendmmsg.html" => [ + "doc/man3/BIO_sendmmsg.pod" + ], "doc/html/man3/BIO_set_callback.html" => [ "doc/man3/BIO_set_callback.pod" ], @@ -2309,6 +2694,9 @@ our %unified_info = ( "doc/html/man3/BUF_MEM_new.html" => [ "doc/man3/BUF_MEM_new.pod" ], + "doc/html/man3/CMAC_CTX.html" => [ + "doc/man3/CMAC_CTX.pod" + ], "doc/html/man3/CMS_EncryptedData_decrypt.html" => [ "doc/man3/CMS_EncryptedData_decrypt.pod" ], @@ -2375,6 +2763,9 @@ our %unified_info = ( "doc/html/man3/CMS_verify_receipt.html" => [ "doc/man3/CMS_verify_receipt.pod" ], + "doc/html/man3/COMP_CTX_new.html" => [ + "doc/man3/COMP_CTX_new.pod" + ], "doc/html/man3/CONF_modules_free.html" => [ "doc/man3/CONF_modules_free.pod" ], @@ -2474,6 +2865,12 @@ our %unified_info = ( "doc/html/man3/DTLS_set_timer_cb.html" => [ "doc/man3/DTLS_set_timer_cb.pod" ], + "doc/html/man3/DTLSv1_get_timeout.html" => [ + "doc/man3/DTLSv1_get_timeout.pod" + ], + "doc/html/man3/DTLSv1_handle_timeout.html" => [ + "doc/man3/DTLSv1_handle_timeout.pod" + ], "doc/html/man3/DTLSv1_listen.html" => [ "doc/man3/DTLSv1_listen.pod" ], @@ -2612,6 +3009,9 @@ our %unified_info = ( "doc/html/man3/EVP_PKEY_CTX_get0_pkey.html" => [ "doc/man3/EVP_PKEY_CTX_get0_pkey.pod" ], + "doc/html/man3/EVP_PKEY_CTX_get_algor.html" => [ + "doc/man3/EVP_PKEY_CTX_get_algor.pod" + ], "doc/html/man3/EVP_PKEY_CTX_new.html" => [ "doc/man3/EVP_PKEY_CTX_new.pod" ], @@ -2729,6 +3129,12 @@ our %unified_info = ( "doc/html/man3/EVP_SIGNATURE.html" => [ "doc/man3/EVP_SIGNATURE.pod" ], + "doc/html/man3/EVP_SKEY.html" => [ + "doc/man3/EVP_SKEY.pod" + ], + "doc/html/man3/EVP_SKEYMGMT.html" => [ + "doc/man3/EVP_SKEYMGMT.pod" + ], "doc/html/man3/EVP_SealInit.html" => [ "doc/man3/EVP_SealInit.pod" ], @@ -2816,6 +3222,9 @@ our %unified_info = ( "doc/html/man3/EVP_whirlpool.html" => [ "doc/man3/EVP_whirlpool.pod" ], + "doc/html/man3/GENERAL_NAME.html" => [ + "doc/man3/GENERAL_NAME.pod" + ], "doc/html/man3/HMAC.html" => [ "doc/man3/HMAC.pod" ], @@ -2888,9 +3297,15 @@ our %unified_info = ( "doc/html/man3/OPENSSL_load_builtin_modules.html" => [ "doc/man3/OPENSSL_load_builtin_modules.pod" ], + "doc/html/man3/OPENSSL_load_u16_le.html" => [ + "doc/man3/OPENSSL_load_u16_le.pod" + ], "doc/html/man3/OPENSSL_malloc.html" => [ "doc/man3/OPENSSL_malloc.pod" ], + "doc/html/man3/OPENSSL_riscvcap.html" => [ + "doc/man3/OPENSSL_riscvcap.pod" + ], "doc/html/man3/OPENSSL_s390xcap.html" => [ "doc/man3/OPENSSL_s390xcap.pod" ], @@ -2906,12 +3321,18 @@ our %unified_info = ( "doc/html/man3/OSSL_CALLBACK.html" => [ "doc/man3/OSSL_CALLBACK.pod" ], + "doc/html/man3/OSSL_CMP_ATAV_set0.html" => [ + "doc/man3/OSSL_CMP_ATAV_set0.pod" + ], "doc/html/man3/OSSL_CMP_CTX_new.html" => [ "doc/man3/OSSL_CMP_CTX_new.pod" ], "doc/html/man3/OSSL_CMP_HDR_get0_transactionID.html" => [ "doc/man3/OSSL_CMP_HDR_get0_transactionID.pod" ], + "doc/html/man3/OSSL_CMP_ITAV_new_caCerts.html" => [ + "doc/man3/OSSL_CMP_ITAV_new_caCerts.pod" + ], "doc/html/man3/OSSL_CMP_ITAV_set0.html" => [ "doc/man3/OSSL_CMP_ITAV_set0.pod" ], @@ -2981,9 +3402,18 @@ our %unified_info = ( "doc/html/man3/OSSL_ENCODER_to_bio.html" => [ "doc/man3/OSSL_ENCODER_to_bio.pod" ], + "doc/html/man3/OSSL_ERR_STATE_save.html" => [ + "doc/man3/OSSL_ERR_STATE_save.pod" + ], "doc/html/man3/OSSL_ESS_check_signing_certs.html" => [ "doc/man3/OSSL_ESS_check_signing_certs.pod" ], + "doc/html/man3/OSSL_GENERAL_NAMES_print.html" => [ + "doc/man3/OSSL_GENERAL_NAMES_print.pod" + ], + "doc/html/man3/OSSL_HPKE_CTX_new.html" => [ + "doc/man3/OSSL_HPKE_CTX_new.pod" + ], "doc/html/man3/OSSL_HTTP_REQ_CTX.html" => [ "doc/man3/OSSL_HTTP_REQ_CTX.pod" ], @@ -2993,12 +3423,24 @@ our %unified_info = ( "doc/html/man3/OSSL_HTTP_transfer.html" => [ "doc/man3/OSSL_HTTP_transfer.pod" ], + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX.html" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX.pod" + ], + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX_print.html" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX_print.pod" + ], + "doc/html/man3/OSSL_INDICATOR_set_callback.html" => [ + "doc/man3/OSSL_INDICATOR_set_callback.pod" + ], "doc/html/man3/OSSL_ITEM.html" => [ "doc/man3/OSSL_ITEM.pod" ], "doc/html/man3/OSSL_LIB_CTX.html" => [ "doc/man3/OSSL_LIB_CTX.pod" ], + "doc/html/man3/OSSL_LIB_CTX_set_conf_diagnostics.html" => [ + "doc/man3/OSSL_LIB_CTX_set_conf_diagnostics.pod" + ], "doc/html/man3/OSSL_PARAM.html" => [ "doc/man3/OSSL_PARAM.pod" ], @@ -3014,9 +3456,15 @@ our %unified_info = ( "doc/html/man3/OSSL_PARAM_int.html" => [ "doc/man3/OSSL_PARAM_int.pod" ], + "doc/html/man3/OSSL_PARAM_print_to_bio.html" => [ + "doc/man3/OSSL_PARAM_print_to_bio.pod" + ], "doc/html/man3/OSSL_PROVIDER.html" => [ "doc/man3/OSSL_PROVIDER.pod" ], + "doc/html/man3/OSSL_QUIC_client_method.html" => [ + "doc/man3/OSSL_QUIC_client_method.pod" + ], "doc/html/man3/OSSL_SELF_TEST_new.html" => [ "doc/man3/OSSL_SELF_TEST_new.pod" ], @@ -3041,6 +3489,9 @@ our %unified_info = ( "doc/html/man3/OSSL_STORE_open.html" => [ "doc/man3/OSSL_STORE_open.pod" ], + "doc/html/man3/OSSL_sleep.html" => [ + "doc/man3/OSSL_sleep.pod" + ], "doc/html/man3/OSSL_trace_enabled.html" => [ "doc/man3/OSSL_trace_enabled.pod" ], @@ -3056,6 +3507,9 @@ our %unified_info = ( "doc/html/man3/OpenSSL_version.html" => [ "doc/man3/OpenSSL_version.pod" ], + "doc/html/man3/PBMAC1_get1_pbkdf2_param.html" => [ + "doc/man3/PBMAC1_get1_pbkdf2_param.pod" + ], "doc/html/man3/PEM_X509_INFO_read_bio_ex.html" => [ "doc/man3/PEM_X509_INFO_read_bio_ex.pod" ], @@ -3092,6 +3546,9 @@ our %unified_info = ( "doc/html/man3/PKCS12_SAFEBAG_get1_cert.html" => [ "doc/man3/PKCS12_SAFEBAG_get1_cert.pod" ], + "doc/html/man3/PKCS12_SAFEBAG_set0_attrs.html" => [ + "doc/man3/PKCS12_SAFEBAG_set0_attrs.pod" + ], "doc/html/man3/PKCS12_add1_attr_by_NID.html" => [ "doc/man3/PKCS12_add1_attr_by_NID.pod" ], @@ -3365,6 +3822,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set0_CA_list.html" => [ "doc/man3/SSL_CTX_set0_CA_list.pod" ], + "doc/html/man3/SSL_CTX_set1_cert_comp_preference.html" => [ + "doc/man3/SSL_CTX_set1_cert_comp_preference.pod" + ], "doc/html/man3/SSL_CTX_set1_curves.html" => [ "doc/man3/SSL_CTX_set1_curves.pod" ], @@ -3404,6 +3864,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_default_passwd_cb.html" => [ "doc/man3/SSL_CTX_set_default_passwd_cb.pod" ], + "doc/html/man3/SSL_CTX_set_domain_flags.html" => [ + "doc/man3/SSL_CTX_set_domain_flags.pod" + ], "doc/html/man3/SSL_CTX_set_generate_session_id.html" => [ "doc/man3/SSL_CTX_set_generate_session_id.pod" ], @@ -3425,6 +3888,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_msg_callback.html" => [ "doc/man3/SSL_CTX_set_msg_callback.pod" ], + "doc/html/man3/SSL_CTX_set_new_pending_conn_cb.html" => [ + "doc/man3/SSL_CTX_set_new_pending_conn_cb.pod" + ], "doc/html/man3/SSL_CTX_set_num_tickets.html" => [ "doc/man3/SSL_CTX_set_num_tickets.pod" ], @@ -3539,6 +4005,9 @@ our %unified_info = ( "doc/html/man3/SSL_accept.html" => [ "doc/man3/SSL_accept.pod" ], + "doc/html/man3/SSL_accept_stream.html" => [ + "doc/man3/SSL_accept_stream.pod" + ], "doc/html/man3/SSL_alert_type_string.html" => [ "doc/man3/SSL_alert_type_string.pod" ], @@ -3566,9 +4035,21 @@ our %unified_info = ( "doc/html/man3/SSL_free.html" => [ "doc/man3/SSL_free.pod" ], + "doc/html/man3/SSL_get0_connection.html" => [ + "doc/man3/SSL_get0_connection.pod" + ], + "doc/html/man3/SSL_get0_group_name.html" => [ + "doc/man3/SSL_get0_group_name.pod" + ], + "doc/html/man3/SSL_get0_peer_rpk.html" => [ + "doc/man3/SSL_get0_peer_rpk.pod" + ], "doc/html/man3/SSL_get0_peer_scts.html" => [ "doc/man3/SSL_get0_peer_scts.pod" ], + "doc/html/man3/SSL_get1_builtin_sigalgs.html" => [ + "doc/man3/SSL_get1_builtin_sigalgs.pod" + ], "doc/html/man3/SSL_get_SSL_CTX.html" => [ "doc/man3/SSL_get_SSL_CTX.pod" ], @@ -3584,6 +4065,9 @@ our %unified_info = ( "doc/html/man3/SSL_get_client_random.html" => [ "doc/man3/SSL_get_client_random.pod" ], + "doc/html/man3/SSL_get_conn_close_info.html" => [ + "doc/man3/SSL_get_conn_close_info.pod" + ], "doc/html/man3/SSL_get_current_cipher.html" => [ "doc/man3/SSL_get_current_cipher.pod" ], @@ -3593,12 +4077,18 @@ our %unified_info = ( "doc/html/man3/SSL_get_error.html" => [ "doc/man3/SSL_get_error.pod" ], + "doc/html/man3/SSL_get_event_timeout.html" => [ + "doc/man3/SSL_get_event_timeout.pod" + ], "doc/html/man3/SSL_get_extms_support.html" => [ "doc/man3/SSL_get_extms_support.pod" ], "doc/html/man3/SSL_get_fd.html" => [ "doc/man3/SSL_get_fd.pod" ], + "doc/html/man3/SSL_get_handshake_rtt.html" => [ + "doc/man3/SSL_get_handshake_rtt.pod" + ], "doc/html/man3/SSL_get_peer_cert_chain.html" => [ "doc/man3/SSL_get_peer_cert_chain.pod" ], @@ -3617,12 +4107,24 @@ our %unified_info = ( "doc/html/man3/SSL_get_rbio.html" => [ "doc/man3/SSL_get_rbio.pod" ], + "doc/html/man3/SSL_get_rpoll_descriptor.html" => [ + "doc/man3/SSL_get_rpoll_descriptor.pod" + ], "doc/html/man3/SSL_get_session.html" => [ "doc/man3/SSL_get_session.pod" ], "doc/html/man3/SSL_get_shared_sigalgs.html" => [ "doc/man3/SSL_get_shared_sigalgs.pod" ], + "doc/html/man3/SSL_get_stream_id.html" => [ + "doc/man3/SSL_get_stream_id.pod" + ], + "doc/html/man3/SSL_get_stream_read_state.html" => [ + "doc/man3/SSL_get_stream_read_state.pod" + ], + "doc/html/man3/SSL_get_value_uint.html" => [ + "doc/man3/SSL_get_value_uint.pod" + ], "doc/html/man3/SSL_get_verify_result.html" => [ "doc/man3/SSL_get_verify_result.pod" ], @@ -3632,9 +4134,15 @@ our %unified_info = ( "doc/html/man3/SSL_group_to_name.html" => [ "doc/man3/SSL_group_to_name.pod" ], + "doc/html/man3/SSL_handle_events.html" => [ + "doc/man3/SSL_handle_events.pod" + ], "doc/html/man3/SSL_in_init.html" => [ "doc/man3/SSL_in_init.pod" ], + "doc/html/man3/SSL_inject_net_dgram.html" => [ + "doc/man3/SSL_inject_net_dgram.pod" + ], "doc/html/man3/SSL_key_update.html" => [ "doc/man3/SSL_key_update.pod" ], @@ -3647,9 +4155,21 @@ our %unified_info = ( "doc/html/man3/SSL_new.html" => [ "doc/man3/SSL_new.pod" ], + "doc/html/man3/SSL_new_domain.html" => [ + "doc/man3/SSL_new_domain.pod" + ], + "doc/html/man3/SSL_new_listener.html" => [ + "doc/man3/SSL_new_listener.pod" + ], + "doc/html/man3/SSL_new_stream.html" => [ + "doc/man3/SSL_new_stream.pod" + ], "doc/html/man3/SSL_pending.html" => [ "doc/man3/SSL_pending.pod" ], + "doc/html/man3/SSL_poll.html" => [ + "doc/man3/SSL_poll.pod" + ], "doc/html/man3/SSL_read.html" => [ "doc/man3/SSL_read.pod" ], @@ -3665,24 +4185,45 @@ our %unified_info = ( "doc/html/man3/SSL_set1_host.html" => [ "doc/man3/SSL_set1_host.pod" ], + "doc/html/man3/SSL_set1_initial_peer_addr.html" => [ + "doc/man3/SSL_set1_initial_peer_addr.pod" + ], + "doc/html/man3/SSL_set1_server_cert_type.html" => [ + "doc/man3/SSL_set1_server_cert_type.pod" + ], "doc/html/man3/SSL_set_async_callback.html" => [ "doc/man3/SSL_set_async_callback.pod" ], "doc/html/man3/SSL_set_bio.html" => [ "doc/man3/SSL_set_bio.pod" ], + "doc/html/man3/SSL_set_blocking_mode.html" => [ + "doc/man3/SSL_set_blocking_mode.pod" + ], "doc/html/man3/SSL_set_connect_state.html" => [ "doc/man3/SSL_set_connect_state.pod" ], + "doc/html/man3/SSL_set_default_stream_mode.html" => [ + "doc/man3/SSL_set_default_stream_mode.pod" + ], "doc/html/man3/SSL_set_fd.html" => [ "doc/man3/SSL_set_fd.pod" ], + "doc/html/man3/SSL_set_incoming_stream_policy.html" => [ + "doc/man3/SSL_set_incoming_stream_policy.pod" + ], + "doc/html/man3/SSL_set_quic_tls_cbs.html" => [ + "doc/man3/SSL_set_quic_tls_cbs.pod" + ], "doc/html/man3/SSL_set_retry_verify.html" => [ "doc/man3/SSL_set_retry_verify.pod" ], "doc/html/man3/SSL_set_session.html" => [ "doc/man3/SSL_set_session.pod" ], + "doc/html/man3/SSL_set_session_secret_cb.html" => [ + "doc/man3/SSL_set_session_secret_cb.pod" + ], "doc/html/man3/SSL_set_shutdown.html" => [ "doc/man3/SSL_set_shutdown.pod" ], @@ -3695,6 +4236,12 @@ our %unified_info = ( "doc/html/man3/SSL_state_string.html" => [ "doc/man3/SSL_state_string.pod" ], + "doc/html/man3/SSL_stream_conclude.html" => [ + "doc/man3/SSL_stream_conclude.pod" + ], + "doc/html/man3/SSL_stream_reset.html" => [ + "doc/man3/SSL_stream_reset.pod" + ], "doc/html/man3/SSL_want.html" => [ "doc/man3/SSL_want.pod" ], @@ -3704,8 +4251,8 @@ our %unified_info = ( "doc/html/man3/TS_RESP_CTX_new.html" => [ "doc/man3/TS_RESP_CTX_new.pod" ], - "doc/html/man3/TS_VERIFY_CTX_set_certs.html" => [ - "doc/man3/TS_VERIFY_CTX_set_certs.pod" + "doc/html/man3/TS_VERIFY_CTX.html" => [ + "doc/man3/TS_VERIFY_CTX.pod" ], "doc/html/man3/UI_STRING.html" => [ "doc/man3/UI_STRING.pod" @@ -3725,6 +4272,21 @@ our %unified_info = ( "doc/html/man3/X509V3_set_ctx.html" => [ "doc/man3/X509V3_set_ctx.pod" ], + "doc/html/man3/X509_ACERT_add1_attr.html" => [ + "doc/man3/X509_ACERT_add1_attr.pod" + ], + "doc/html/man3/X509_ACERT_add_attr_nconf.html" => [ + "doc/man3/X509_ACERT_add_attr_nconf.pod" + ], + "doc/html/man3/X509_ACERT_get0_holder_baseCertId.html" => [ + "doc/man3/X509_ACERT_get0_holder_baseCertId.pod" + ], + "doc/html/man3/X509_ACERT_get_attr.html" => [ + "doc/man3/X509_ACERT_get_attr.pod" + ], + "doc/html/man3/X509_ACERT_print_ex.html" => [ + "doc/man3/X509_ACERT_print_ex.pod" + ], "doc/html/man3/X509_ALGOR_dup.html" => [ "doc/man3/X509_ALGOR_dup.pod" ], @@ -3773,6 +4335,9 @@ our %unified_info = ( "doc/html/man3/X509_SIG_get0.html" => [ "doc/man3/X509_SIG_get0.pod" ], + "doc/html/man3/X509_STORE_CTX_get_by_subject.html" => [ + "doc/man3/X509_STORE_CTX_get_by_subject.pod" + ], "doc/html/man3/X509_STORE_CTX_get_error.html" => [ "doc/man3/X509_STORE_CTX_get_error.pod" ], @@ -3839,6 +4404,9 @@ our %unified_info = ( "doc/html/man3/X509_get0_uids.html" => [ "doc/man3/X509_get0_uids.pod" ], + "doc/html/man3/X509_get_default_cert_file.html" => [ + "doc/man3/X509_get_default_cert_file.pod" + ], "doc/html/man3/X509_get_extension_flags.html" => [ "doc/man3/X509_get_extension_flags.pod" ], @@ -3962,9 +4530,15 @@ our %unified_info = ( "doc/html/man7/EVP_CIPHER-SM4.html" => [ "doc/man7/EVP_CIPHER-SM4.pod" ], + "doc/html/man7/EVP_KDF-ARGON2.html" => [ + "doc/man7/EVP_KDF-ARGON2.pod" + ], "doc/html/man7/EVP_KDF-HKDF.html" => [ "doc/man7/EVP_KDF-HKDF.pod" ], + "doc/html/man7/EVP_KDF-HMAC-DRBG.html" => [ + "doc/man7/EVP_KDF-HMAC-DRBG.pod" + ], "doc/html/man7/EVP_KDF-KB.html" => [ "doc/man7/EVP_KDF-KB.pod" ], @@ -3980,6 +4554,9 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-PKCS12KDF.html" => [ "doc/man7/EVP_KDF-PKCS12KDF.pod" ], + "doc/html/man7/EVP_KDF-PVKKDF.html" => [ + "doc/man7/EVP_KDF-PVKKDF.pod" + ], "doc/html/man7/EVP_KDF-SCRYPT.html" => [ "doc/man7/EVP_KDF-SCRYPT.pod" ], @@ -4004,9 +4581,18 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-X963.html" => [ "doc/man7/EVP_KDF-X963.pod" ], + "doc/html/man7/EVP_KEM-EC.html" => [ + "doc/man7/EVP_KEM-EC.pod" + ], + "doc/html/man7/EVP_KEM-ML-KEM.html" => [ + "doc/man7/EVP_KEM-ML-KEM.pod" + ], "doc/html/man7/EVP_KEM-RSA.html" => [ "doc/man7/EVP_KEM-RSA.pod" ], + "doc/html/man7/EVP_KEM-X25519.html" => [ + "doc/man7/EVP_KEM-X25519.pod" + ], "doc/html/man7/EVP_KEYEXCH-DH.html" => [ "doc/man7/EVP_KEYEXCH-DH.pod" ], @@ -4040,6 +4626,9 @@ our %unified_info = ( "doc/html/man7/EVP_MD-BLAKE2.html" => [ "doc/man7/EVP_MD-BLAKE2.pod" ], + "doc/html/man7/EVP_MD-KECCAK.html" => [ + "doc/man7/EVP_MD-KECCAK.pod" + ], "doc/html/man7/EVP_MD-MD2.html" => [ "doc/man7/EVP_MD-MD2.pod" ], @@ -4097,15 +4686,27 @@ our %unified_info = ( "doc/html/man7/EVP_PKEY-HMAC.html" => [ "doc/man7/EVP_PKEY-HMAC.pod" ], + "doc/html/man7/EVP_PKEY-ML-DSA.html" => [ + "doc/man7/EVP_PKEY-ML-DSA.pod" + ], + "doc/html/man7/EVP_PKEY-ML-KEM.html" => [ + "doc/man7/EVP_PKEY-ML-KEM.pod" + ], "doc/html/man7/EVP_PKEY-RSA.html" => [ "doc/man7/EVP_PKEY-RSA.pod" ], + "doc/html/man7/EVP_PKEY-SLH-DSA.html" => [ + "doc/man7/EVP_PKEY-SLH-DSA.pod" + ], "doc/html/man7/EVP_PKEY-SM2.html" => [ "doc/man7/EVP_PKEY-SM2.pod" ], "doc/html/man7/EVP_PKEY-X25519.html" => [ "doc/man7/EVP_PKEY-X25519.pod" ], + "doc/html/man7/EVP_RAND-CRNG-TEST.html" => [ + "doc/man7/EVP_RAND-CRNG-TEST.pod" + ], "doc/html/man7/EVP_RAND-CTR-DRBG.html" => [ "doc/man7/EVP_RAND-CTR-DRBG.pod" ], @@ -4115,6 +4716,9 @@ our %unified_info = ( "doc/html/man7/EVP_RAND-HMAC-DRBG.html" => [ "doc/man7/EVP_RAND-HMAC-DRBG.pod" ], + "doc/html/man7/EVP_RAND-JITTER.html" => [ + "doc/man7/EVP_RAND-JITTER.pod" + ], "doc/html/man7/EVP_RAND-SEED-SRC.html" => [ "doc/man7/EVP_RAND-SEED-SRC.pod" ], @@ -4136,9 +4740,15 @@ our %unified_info = ( "doc/html/man7/EVP_SIGNATURE-HMAC.html" => [ "doc/man7/EVP_SIGNATURE-HMAC.pod" ], + "doc/html/man7/EVP_SIGNATURE-ML-DSA.html" => [ + "doc/man7/EVP_SIGNATURE-ML-DSA.pod" + ], "doc/html/man7/EVP_SIGNATURE-RSA.html" => [ "doc/man7/EVP_SIGNATURE-RSA.pod" ], + "doc/html/man7/EVP_SIGNATURE-SLH-DSA.html" => [ + "doc/man7/EVP_SIGNATURE-SLH-DSA.pod" + ], "doc/html/man7/OSSL_PROVIDER-FIPS.html" => [ "doc/man7/OSSL_PROVIDER-FIPS.pod" ], @@ -4154,6 +4764,9 @@ our %unified_info = ( "doc/html/man7/OSSL_PROVIDER-null.html" => [ "doc/man7/OSSL_PROVIDER-null.pod" ], + "doc/html/man7/OSSL_STORE-winstore.html" => [ + "doc/man7/OSSL_STORE-winstore.pod" + ], "doc/html/man7/RAND.html" => [ "doc/man7/RAND.pod" ], @@ -4166,9 +4779,6 @@ our %unified_info = ( "doc/html/man7/bio.html" => [ "doc/man7/bio.pod" ], - "doc/html/man7/crypto.html" => [ - "doc/man7/crypto.pod" - ], "doc/html/man7/ct.html" => [ "doc/man7/ct.pod" ], @@ -4199,9 +4809,6 @@ our %unified_info = ( "doc/html/man7/life_cycle-rand.html" => [ "doc/man7/life_cycle-rand.pod" ], - "doc/html/man7/migration_guide.html" => [ - "doc/man7/migration_guide.pod" - ], "doc/html/man7/openssl-core.h.html" => [ "doc/man7/openssl-core.h.pod" ], @@ -4217,12 +4824,66 @@ our %unified_info = ( "doc/html/man7/openssl-glossary.html" => [ "doc/man7/openssl-glossary.pod" ], + "doc/html/man7/openssl-qlog.html" => [ + "doc/man7/openssl-qlog.pod" + ], + "doc/html/man7/openssl-quic-concurrency.html" => [ + "doc/man7/openssl-quic-concurrency.pod" + ], + "doc/html/man7/openssl-quic.html" => [ + "doc/man7/openssl-quic.pod" + ], "doc/html/man7/openssl-threads.html" => [ "doc/man7/openssl-threads.pod" ], "doc/html/man7/openssl_user_macros.html" => [ "doc/man7/openssl_user_macros.pod" ], + "doc/html/man7/ossl-guide-introduction.html" => [ + "doc/man7/ossl-guide-introduction.pod" + ], + "doc/html/man7/ossl-guide-libcrypto-introduction.html" => [ + "doc/man7/ossl-guide-libcrypto-introduction.pod" + ], + "doc/html/man7/ossl-guide-libraries-introduction.html" => [ + "doc/man7/ossl-guide-libraries-introduction.pod" + ], + "doc/html/man7/ossl-guide-libssl-introduction.html" => [ + "doc/man7/ossl-guide-libssl-introduction.pod" + ], + "doc/html/man7/ossl-guide-migration.html" => [ + "doc/man7/ossl-guide-migration.pod" + ], + "doc/html/man7/ossl-guide-quic-client-block.html" => [ + "doc/man7/ossl-guide-quic-client-block.pod" + ], + "doc/html/man7/ossl-guide-quic-client-non-block.html" => [ + "doc/man7/ossl-guide-quic-client-non-block.pod" + ], + "doc/html/man7/ossl-guide-quic-introduction.html" => [ + "doc/man7/ossl-guide-quic-introduction.pod" + ], + "doc/html/man7/ossl-guide-quic-multi-stream.html" => [ + "doc/man7/ossl-guide-quic-multi-stream.pod" + ], + "doc/html/man7/ossl-guide-quic-server-block.html" => [ + "doc/man7/ossl-guide-quic-server-block.pod" + ], + "doc/html/man7/ossl-guide-quic-server-non-block.html" => [ + "doc/man7/ossl-guide-quic-server-non-block.pod" + ], + "doc/html/man7/ossl-guide-tls-client-block.html" => [ + "doc/man7/ossl-guide-tls-client-block.pod" + ], + "doc/html/man7/ossl-guide-tls-client-non-block.html" => [ + "doc/man7/ossl-guide-tls-client-non-block.pod" + ], + "doc/html/man7/ossl-guide-tls-introduction.html" => [ + "doc/man7/ossl-guide-tls-introduction.pod" + ], + "doc/html/man7/ossl-guide-tls-server-block.html" => [ + "doc/man7/ossl-guide-tls-server-block.pod" + ], "doc/html/man7/ossl_store-file.html" => [ "doc/man7/ossl_store-file.pod" ], @@ -4277,6 +4938,9 @@ our %unified_info = ( "doc/html/man7/provider-signature.html" => [ "doc/man7/provider-signature.pod" ], + "doc/html/man7/provider-skeymgmt.html" => [ + "doc/man7/provider-skeymgmt.pod" + ], "doc/html/man7/provider-storemgmt.html" => [ "doc/man7/provider-storemgmt.pod" ], @@ -4286,9 +4950,6 @@ our %unified_info = ( "doc/html/man7/proxy-certificates.html" => [ "doc/man7/proxy-certificates.pod" ], - "doc/html/man7/ssl.html" => [ - "doc/man7/ssl.pod" - ], "doc/html/man7/x509.html" => [ "doc/man7/x509.pod" ], @@ -4436,6 +5097,9 @@ our %unified_info = ( "doc/man/man1/openssl-sess_id.1" => [ "doc/man1/openssl-sess_id.pod" ], + "doc/man/man1/openssl-skeyutl.1" => [ + "doc/man1/openssl-skeyutl.pod" + ], "doc/man/man1/openssl-smime.1" => [ "doc/man1/openssl-smime.pod" ], @@ -4577,6 +5241,9 @@ our %unified_info = ( "doc/man/man3/BIO_get_ex_new_index.3" => [ "doc/man3/BIO_get_ex_new_index.pod" ], + "doc/man/man3/BIO_get_rpoll_descriptor.3" => [ + "doc/man3/BIO_get_rpoll_descriptor.pod" + ], "doc/man/man3/BIO_meth_new.3" => [ "doc/man3/BIO_meth_new.pod" ], @@ -4613,6 +5280,9 @@ our %unified_info = ( "doc/man/man3/BIO_s_datagram.3" => [ "doc/man3/BIO_s_datagram.pod" ], + "doc/man/man3/BIO_s_dgram_pair.3" => [ + "doc/man3/BIO_s_dgram_pair.pod" + ], "doc/man/man3/BIO_s_fd.3" => [ "doc/man3/BIO_s_fd.pod" ], @@ -4628,6 +5298,9 @@ our %unified_info = ( "doc/man/man3/BIO_s_socket.3" => [ "doc/man3/BIO_s_socket.pod" ], + "doc/man/man3/BIO_sendmmsg.3" => [ + "doc/man3/BIO_sendmmsg.pod" + ], "doc/man/man3/BIO_set_callback.3" => [ "doc/man3/BIO_set_callback.pod" ], @@ -4700,6 +5373,9 @@ our %unified_info = ( "doc/man/man3/BUF_MEM_new.3" => [ "doc/man3/BUF_MEM_new.pod" ], + "doc/man/man3/CMAC_CTX.3" => [ + "doc/man3/CMAC_CTX.pod" + ], "doc/man/man3/CMS_EncryptedData_decrypt.3" => [ "doc/man3/CMS_EncryptedData_decrypt.pod" ], @@ -4766,6 +5442,9 @@ our %unified_info = ( "doc/man/man3/CMS_verify_receipt.3" => [ "doc/man3/CMS_verify_receipt.pod" ], + "doc/man/man3/COMP_CTX_new.3" => [ + "doc/man3/COMP_CTX_new.pod" + ], "doc/man/man3/CONF_modules_free.3" => [ "doc/man3/CONF_modules_free.pod" ], @@ -4865,6 +5544,12 @@ our %unified_info = ( "doc/man/man3/DTLS_set_timer_cb.3" => [ "doc/man3/DTLS_set_timer_cb.pod" ], + "doc/man/man3/DTLSv1_get_timeout.3" => [ + "doc/man3/DTLSv1_get_timeout.pod" + ], + "doc/man/man3/DTLSv1_handle_timeout.3" => [ + "doc/man3/DTLSv1_handle_timeout.pod" + ], "doc/man/man3/DTLSv1_listen.3" => [ "doc/man3/DTLSv1_listen.pod" ], @@ -5003,6 +5688,9 @@ our %unified_info = ( "doc/man/man3/EVP_PKEY_CTX_get0_pkey.3" => [ "doc/man3/EVP_PKEY_CTX_get0_pkey.pod" ], + "doc/man/man3/EVP_PKEY_CTX_get_algor.3" => [ + "doc/man3/EVP_PKEY_CTX_get_algor.pod" + ], "doc/man/man3/EVP_PKEY_CTX_new.3" => [ "doc/man3/EVP_PKEY_CTX_new.pod" ], @@ -5120,6 +5808,12 @@ our %unified_info = ( "doc/man/man3/EVP_SIGNATURE.3" => [ "doc/man3/EVP_SIGNATURE.pod" ], + "doc/man/man3/EVP_SKEY.3" => [ + "doc/man3/EVP_SKEY.pod" + ], + "doc/man/man3/EVP_SKEYMGMT.3" => [ + "doc/man3/EVP_SKEYMGMT.pod" + ], "doc/man/man3/EVP_SealInit.3" => [ "doc/man3/EVP_SealInit.pod" ], @@ -5207,6 +5901,9 @@ our %unified_info = ( "doc/man/man3/EVP_whirlpool.3" => [ "doc/man3/EVP_whirlpool.pod" ], + "doc/man/man3/GENERAL_NAME.3" => [ + "doc/man3/GENERAL_NAME.pod" + ], "doc/man/man3/HMAC.3" => [ "doc/man3/HMAC.pod" ], @@ -5279,9 +5976,15 @@ our %unified_info = ( "doc/man/man3/OPENSSL_load_builtin_modules.3" => [ "doc/man3/OPENSSL_load_builtin_modules.pod" ], + "doc/man/man3/OPENSSL_load_u16_le.3" => [ + "doc/man3/OPENSSL_load_u16_le.pod" + ], "doc/man/man3/OPENSSL_malloc.3" => [ "doc/man3/OPENSSL_malloc.pod" ], + "doc/man/man3/OPENSSL_riscvcap.3" => [ + "doc/man3/OPENSSL_riscvcap.pod" + ], "doc/man/man3/OPENSSL_s390xcap.3" => [ "doc/man3/OPENSSL_s390xcap.pod" ], @@ -5297,12 +6000,18 @@ our %unified_info = ( "doc/man/man3/OSSL_CALLBACK.3" => [ "doc/man3/OSSL_CALLBACK.pod" ], + "doc/man/man3/OSSL_CMP_ATAV_set0.3" => [ + "doc/man3/OSSL_CMP_ATAV_set0.pod" + ], "doc/man/man3/OSSL_CMP_CTX_new.3" => [ "doc/man3/OSSL_CMP_CTX_new.pod" ], "doc/man/man3/OSSL_CMP_HDR_get0_transactionID.3" => [ "doc/man3/OSSL_CMP_HDR_get0_transactionID.pod" ], + "doc/man/man3/OSSL_CMP_ITAV_new_caCerts.3" => [ + "doc/man3/OSSL_CMP_ITAV_new_caCerts.pod" + ], "doc/man/man3/OSSL_CMP_ITAV_set0.3" => [ "doc/man3/OSSL_CMP_ITAV_set0.pod" ], @@ -5372,9 +6081,18 @@ our %unified_info = ( "doc/man/man3/OSSL_ENCODER_to_bio.3" => [ "doc/man3/OSSL_ENCODER_to_bio.pod" ], + "doc/man/man3/OSSL_ERR_STATE_save.3" => [ + "doc/man3/OSSL_ERR_STATE_save.pod" + ], "doc/man/man3/OSSL_ESS_check_signing_certs.3" => [ "doc/man3/OSSL_ESS_check_signing_certs.pod" ], + "doc/man/man3/OSSL_GENERAL_NAMES_print.3" => [ + "doc/man3/OSSL_GENERAL_NAMES_print.pod" + ], + "doc/man/man3/OSSL_HPKE_CTX_new.3" => [ + "doc/man3/OSSL_HPKE_CTX_new.pod" + ], "doc/man/man3/OSSL_HTTP_REQ_CTX.3" => [ "doc/man3/OSSL_HTTP_REQ_CTX.pod" ], @@ -5384,12 +6102,24 @@ our %unified_info = ( "doc/man/man3/OSSL_HTTP_transfer.3" => [ "doc/man3/OSSL_HTTP_transfer.pod" ], + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX.3" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX.pod" + ], + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX_print.3" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX_print.pod" + ], + "doc/man/man3/OSSL_INDICATOR_set_callback.3" => [ + "doc/man3/OSSL_INDICATOR_set_callback.pod" + ], "doc/man/man3/OSSL_ITEM.3" => [ "doc/man3/OSSL_ITEM.pod" ], "doc/man/man3/OSSL_LIB_CTX.3" => [ "doc/man3/OSSL_LIB_CTX.pod" ], + "doc/man/man3/OSSL_LIB_CTX_set_conf_diagnostics.3" => [ + "doc/man3/OSSL_LIB_CTX_set_conf_diagnostics.pod" + ], "doc/man/man3/OSSL_PARAM.3" => [ "doc/man3/OSSL_PARAM.pod" ], @@ -5405,9 +6135,15 @@ our %unified_info = ( "doc/man/man3/OSSL_PARAM_int.3" => [ "doc/man3/OSSL_PARAM_int.pod" ], + "doc/man/man3/OSSL_PARAM_print_to_bio.3" => [ + "doc/man3/OSSL_PARAM_print_to_bio.pod" + ], "doc/man/man3/OSSL_PROVIDER.3" => [ "doc/man3/OSSL_PROVIDER.pod" ], + "doc/man/man3/OSSL_QUIC_client_method.3" => [ + "doc/man3/OSSL_QUIC_client_method.pod" + ], "doc/man/man3/OSSL_SELF_TEST_new.3" => [ "doc/man3/OSSL_SELF_TEST_new.pod" ], @@ -5432,6 +6168,9 @@ our %unified_info = ( "doc/man/man3/OSSL_STORE_open.3" => [ "doc/man3/OSSL_STORE_open.pod" ], + "doc/man/man3/OSSL_sleep.3" => [ + "doc/man3/OSSL_sleep.pod" + ], "doc/man/man3/OSSL_trace_enabled.3" => [ "doc/man3/OSSL_trace_enabled.pod" ], @@ -5447,6 +6186,9 @@ our %unified_info = ( "doc/man/man3/OpenSSL_version.3" => [ "doc/man3/OpenSSL_version.pod" ], + "doc/man/man3/PBMAC1_get1_pbkdf2_param.3" => [ + "doc/man3/PBMAC1_get1_pbkdf2_param.pod" + ], "doc/man/man3/PEM_X509_INFO_read_bio_ex.3" => [ "doc/man3/PEM_X509_INFO_read_bio_ex.pod" ], @@ -5483,6 +6225,9 @@ our %unified_info = ( "doc/man/man3/PKCS12_SAFEBAG_get1_cert.3" => [ "doc/man3/PKCS12_SAFEBAG_get1_cert.pod" ], + "doc/man/man3/PKCS12_SAFEBAG_set0_attrs.3" => [ + "doc/man3/PKCS12_SAFEBAG_set0_attrs.pod" + ], "doc/man/man3/PKCS12_add1_attr_by_NID.3" => [ "doc/man3/PKCS12_add1_attr_by_NID.pod" ], @@ -5756,6 +6501,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set0_CA_list.3" => [ "doc/man3/SSL_CTX_set0_CA_list.pod" ], + "doc/man/man3/SSL_CTX_set1_cert_comp_preference.3" => [ + "doc/man3/SSL_CTX_set1_cert_comp_preference.pod" + ], "doc/man/man3/SSL_CTX_set1_curves.3" => [ "doc/man3/SSL_CTX_set1_curves.pod" ], @@ -5795,6 +6543,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_default_passwd_cb.3" => [ "doc/man3/SSL_CTX_set_default_passwd_cb.pod" ], + "doc/man/man3/SSL_CTX_set_domain_flags.3" => [ + "doc/man3/SSL_CTX_set_domain_flags.pod" + ], "doc/man/man3/SSL_CTX_set_generate_session_id.3" => [ "doc/man3/SSL_CTX_set_generate_session_id.pod" ], @@ -5816,6 +6567,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_msg_callback.3" => [ "doc/man3/SSL_CTX_set_msg_callback.pod" ], + "doc/man/man3/SSL_CTX_set_new_pending_conn_cb.3" => [ + "doc/man3/SSL_CTX_set_new_pending_conn_cb.pod" + ], "doc/man/man3/SSL_CTX_set_num_tickets.3" => [ "doc/man3/SSL_CTX_set_num_tickets.pod" ], @@ -5930,6 +6684,9 @@ our %unified_info = ( "doc/man/man3/SSL_accept.3" => [ "doc/man3/SSL_accept.pod" ], + "doc/man/man3/SSL_accept_stream.3" => [ + "doc/man3/SSL_accept_stream.pod" + ], "doc/man/man3/SSL_alert_type_string.3" => [ "doc/man3/SSL_alert_type_string.pod" ], @@ -5957,9 +6714,21 @@ our %unified_info = ( "doc/man/man3/SSL_free.3" => [ "doc/man3/SSL_free.pod" ], + "doc/man/man3/SSL_get0_connection.3" => [ + "doc/man3/SSL_get0_connection.pod" + ], + "doc/man/man3/SSL_get0_group_name.3" => [ + "doc/man3/SSL_get0_group_name.pod" + ], + "doc/man/man3/SSL_get0_peer_rpk.3" => [ + "doc/man3/SSL_get0_peer_rpk.pod" + ], "doc/man/man3/SSL_get0_peer_scts.3" => [ "doc/man3/SSL_get0_peer_scts.pod" ], + "doc/man/man3/SSL_get1_builtin_sigalgs.3" => [ + "doc/man3/SSL_get1_builtin_sigalgs.pod" + ], "doc/man/man3/SSL_get_SSL_CTX.3" => [ "doc/man3/SSL_get_SSL_CTX.pod" ], @@ -5975,6 +6744,9 @@ our %unified_info = ( "doc/man/man3/SSL_get_client_random.3" => [ "doc/man3/SSL_get_client_random.pod" ], + "doc/man/man3/SSL_get_conn_close_info.3" => [ + "doc/man3/SSL_get_conn_close_info.pod" + ], "doc/man/man3/SSL_get_current_cipher.3" => [ "doc/man3/SSL_get_current_cipher.pod" ], @@ -5984,12 +6756,18 @@ our %unified_info = ( "doc/man/man3/SSL_get_error.3" => [ "doc/man3/SSL_get_error.pod" ], + "doc/man/man3/SSL_get_event_timeout.3" => [ + "doc/man3/SSL_get_event_timeout.pod" + ], "doc/man/man3/SSL_get_extms_support.3" => [ "doc/man3/SSL_get_extms_support.pod" ], "doc/man/man3/SSL_get_fd.3" => [ "doc/man3/SSL_get_fd.pod" ], + "doc/man/man3/SSL_get_handshake_rtt.3" => [ + "doc/man3/SSL_get_handshake_rtt.pod" + ], "doc/man/man3/SSL_get_peer_cert_chain.3" => [ "doc/man3/SSL_get_peer_cert_chain.pod" ], @@ -6008,12 +6786,24 @@ our %unified_info = ( "doc/man/man3/SSL_get_rbio.3" => [ "doc/man3/SSL_get_rbio.pod" ], + "doc/man/man3/SSL_get_rpoll_descriptor.3" => [ + "doc/man3/SSL_get_rpoll_descriptor.pod" + ], "doc/man/man3/SSL_get_session.3" => [ "doc/man3/SSL_get_session.pod" ], "doc/man/man3/SSL_get_shared_sigalgs.3" => [ "doc/man3/SSL_get_shared_sigalgs.pod" ], + "doc/man/man3/SSL_get_stream_id.3" => [ + "doc/man3/SSL_get_stream_id.pod" + ], + "doc/man/man3/SSL_get_stream_read_state.3" => [ + "doc/man3/SSL_get_stream_read_state.pod" + ], + "doc/man/man3/SSL_get_value_uint.3" => [ + "doc/man3/SSL_get_value_uint.pod" + ], "doc/man/man3/SSL_get_verify_result.3" => [ "doc/man3/SSL_get_verify_result.pod" ], @@ -6023,9 +6813,15 @@ our %unified_info = ( "doc/man/man3/SSL_group_to_name.3" => [ "doc/man3/SSL_group_to_name.pod" ], + "doc/man/man3/SSL_handle_events.3" => [ + "doc/man3/SSL_handle_events.pod" + ], "doc/man/man3/SSL_in_init.3" => [ "doc/man3/SSL_in_init.pod" ], + "doc/man/man3/SSL_inject_net_dgram.3" => [ + "doc/man3/SSL_inject_net_dgram.pod" + ], "doc/man/man3/SSL_key_update.3" => [ "doc/man3/SSL_key_update.pod" ], @@ -6038,9 +6834,21 @@ our %unified_info = ( "doc/man/man3/SSL_new.3" => [ "doc/man3/SSL_new.pod" ], + "doc/man/man3/SSL_new_domain.3" => [ + "doc/man3/SSL_new_domain.pod" + ], + "doc/man/man3/SSL_new_listener.3" => [ + "doc/man3/SSL_new_listener.pod" + ], + "doc/man/man3/SSL_new_stream.3" => [ + "doc/man3/SSL_new_stream.pod" + ], "doc/man/man3/SSL_pending.3" => [ "doc/man3/SSL_pending.pod" ], + "doc/man/man3/SSL_poll.3" => [ + "doc/man3/SSL_poll.pod" + ], "doc/man/man3/SSL_read.3" => [ "doc/man3/SSL_read.pod" ], @@ -6056,24 +6864,45 @@ our %unified_info = ( "doc/man/man3/SSL_set1_host.3" => [ "doc/man3/SSL_set1_host.pod" ], + "doc/man/man3/SSL_set1_initial_peer_addr.3" => [ + "doc/man3/SSL_set1_initial_peer_addr.pod" + ], + "doc/man/man3/SSL_set1_server_cert_type.3" => [ + "doc/man3/SSL_set1_server_cert_type.pod" + ], "doc/man/man3/SSL_set_async_callback.3" => [ "doc/man3/SSL_set_async_callback.pod" ], "doc/man/man3/SSL_set_bio.3" => [ "doc/man3/SSL_set_bio.pod" ], + "doc/man/man3/SSL_set_blocking_mode.3" => [ + "doc/man3/SSL_set_blocking_mode.pod" + ], "doc/man/man3/SSL_set_connect_state.3" => [ "doc/man3/SSL_set_connect_state.pod" ], + "doc/man/man3/SSL_set_default_stream_mode.3" => [ + "doc/man3/SSL_set_default_stream_mode.pod" + ], "doc/man/man3/SSL_set_fd.3" => [ "doc/man3/SSL_set_fd.pod" ], + "doc/man/man3/SSL_set_incoming_stream_policy.3" => [ + "doc/man3/SSL_set_incoming_stream_policy.pod" + ], + "doc/man/man3/SSL_set_quic_tls_cbs.3" => [ + "doc/man3/SSL_set_quic_tls_cbs.pod" + ], "doc/man/man3/SSL_set_retry_verify.3" => [ "doc/man3/SSL_set_retry_verify.pod" ], "doc/man/man3/SSL_set_session.3" => [ "doc/man3/SSL_set_session.pod" ], + "doc/man/man3/SSL_set_session_secret_cb.3" => [ + "doc/man3/SSL_set_session_secret_cb.pod" + ], "doc/man/man3/SSL_set_shutdown.3" => [ "doc/man3/SSL_set_shutdown.pod" ], @@ -6086,6 +6915,12 @@ our %unified_info = ( "doc/man/man3/SSL_state_string.3" => [ "doc/man3/SSL_state_string.pod" ], + "doc/man/man3/SSL_stream_conclude.3" => [ + "doc/man3/SSL_stream_conclude.pod" + ], + "doc/man/man3/SSL_stream_reset.3" => [ + "doc/man3/SSL_stream_reset.pod" + ], "doc/man/man3/SSL_want.3" => [ "doc/man3/SSL_want.pod" ], @@ -6095,8 +6930,8 @@ our %unified_info = ( "doc/man/man3/TS_RESP_CTX_new.3" => [ "doc/man3/TS_RESP_CTX_new.pod" ], - "doc/man/man3/TS_VERIFY_CTX_set_certs.3" => [ - "doc/man3/TS_VERIFY_CTX_set_certs.pod" + "doc/man/man3/TS_VERIFY_CTX.3" => [ + "doc/man3/TS_VERIFY_CTX.pod" ], "doc/man/man3/UI_STRING.3" => [ "doc/man3/UI_STRING.pod" @@ -6116,6 +6951,21 @@ our %unified_info = ( "doc/man/man3/X509V3_set_ctx.3" => [ "doc/man3/X509V3_set_ctx.pod" ], + "doc/man/man3/X509_ACERT_add1_attr.3" => [ + "doc/man3/X509_ACERT_add1_attr.pod" + ], + "doc/man/man3/X509_ACERT_add_attr_nconf.3" => [ + "doc/man3/X509_ACERT_add_attr_nconf.pod" + ], + "doc/man/man3/X509_ACERT_get0_holder_baseCertId.3" => [ + "doc/man3/X509_ACERT_get0_holder_baseCertId.pod" + ], + "doc/man/man3/X509_ACERT_get_attr.3" => [ + "doc/man3/X509_ACERT_get_attr.pod" + ], + "doc/man/man3/X509_ACERT_print_ex.3" => [ + "doc/man3/X509_ACERT_print_ex.pod" + ], "doc/man/man3/X509_ALGOR_dup.3" => [ "doc/man3/X509_ALGOR_dup.pod" ], @@ -6164,6 +7014,9 @@ our %unified_info = ( "doc/man/man3/X509_SIG_get0.3" => [ "doc/man3/X509_SIG_get0.pod" ], + "doc/man/man3/X509_STORE_CTX_get_by_subject.3" => [ + "doc/man3/X509_STORE_CTX_get_by_subject.pod" + ], "doc/man/man3/X509_STORE_CTX_get_error.3" => [ "doc/man3/X509_STORE_CTX_get_error.pod" ], @@ -6230,6 +7083,9 @@ our %unified_info = ( "doc/man/man3/X509_get0_uids.3" => [ "doc/man3/X509_get0_uids.pod" ], + "doc/man/man3/X509_get_default_cert_file.3" => [ + "doc/man3/X509_get_default_cert_file.pod" + ], "doc/man/man3/X509_get_extension_flags.3" => [ "doc/man3/X509_get_extension_flags.pod" ], @@ -6353,9 +7209,15 @@ our %unified_info = ( "doc/man/man7/EVP_CIPHER-SM4.7" => [ "doc/man7/EVP_CIPHER-SM4.pod" ], + "doc/man/man7/EVP_KDF-ARGON2.7" => [ + "doc/man7/EVP_KDF-ARGON2.pod" + ], "doc/man/man7/EVP_KDF-HKDF.7" => [ "doc/man7/EVP_KDF-HKDF.pod" ], + "doc/man/man7/EVP_KDF-HMAC-DRBG.7" => [ + "doc/man7/EVP_KDF-HMAC-DRBG.pod" + ], "doc/man/man7/EVP_KDF-KB.7" => [ "doc/man7/EVP_KDF-KB.pod" ], @@ -6371,6 +7233,9 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-PKCS12KDF.7" => [ "doc/man7/EVP_KDF-PKCS12KDF.pod" ], + "doc/man/man7/EVP_KDF-PVKKDF.7" => [ + "doc/man7/EVP_KDF-PVKKDF.pod" + ], "doc/man/man7/EVP_KDF-SCRYPT.7" => [ "doc/man7/EVP_KDF-SCRYPT.pod" ], @@ -6395,9 +7260,18 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-X963.7" => [ "doc/man7/EVP_KDF-X963.pod" ], + "doc/man/man7/EVP_KEM-EC.7" => [ + "doc/man7/EVP_KEM-EC.pod" + ], + "doc/man/man7/EVP_KEM-ML-KEM.7" => [ + "doc/man7/EVP_KEM-ML-KEM.pod" + ], "doc/man/man7/EVP_KEM-RSA.7" => [ "doc/man7/EVP_KEM-RSA.pod" ], + "doc/man/man7/EVP_KEM-X25519.7" => [ + "doc/man7/EVP_KEM-X25519.pod" + ], "doc/man/man7/EVP_KEYEXCH-DH.7" => [ "doc/man7/EVP_KEYEXCH-DH.pod" ], @@ -6431,6 +7305,9 @@ our %unified_info = ( "doc/man/man7/EVP_MD-BLAKE2.7" => [ "doc/man7/EVP_MD-BLAKE2.pod" ], + "doc/man/man7/EVP_MD-KECCAK.7" => [ + "doc/man7/EVP_MD-KECCAK.pod" + ], "doc/man/man7/EVP_MD-MD2.7" => [ "doc/man7/EVP_MD-MD2.pod" ], @@ -6488,15 +7365,27 @@ our %unified_info = ( "doc/man/man7/EVP_PKEY-HMAC.7" => [ "doc/man7/EVP_PKEY-HMAC.pod" ], + "doc/man/man7/EVP_PKEY-ML-DSA.7" => [ + "doc/man7/EVP_PKEY-ML-DSA.pod" + ], + "doc/man/man7/EVP_PKEY-ML-KEM.7" => [ + "doc/man7/EVP_PKEY-ML-KEM.pod" + ], "doc/man/man7/EVP_PKEY-RSA.7" => [ "doc/man7/EVP_PKEY-RSA.pod" ], + "doc/man/man7/EVP_PKEY-SLH-DSA.7" => [ + "doc/man7/EVP_PKEY-SLH-DSA.pod" + ], "doc/man/man7/EVP_PKEY-SM2.7" => [ "doc/man7/EVP_PKEY-SM2.pod" ], "doc/man/man7/EVP_PKEY-X25519.7" => [ "doc/man7/EVP_PKEY-X25519.pod" ], + "doc/man/man7/EVP_RAND-CRNG-TEST.7" => [ + "doc/man7/EVP_RAND-CRNG-TEST.pod" + ], "doc/man/man7/EVP_RAND-CTR-DRBG.7" => [ "doc/man7/EVP_RAND-CTR-DRBG.pod" ], @@ -6506,6 +7395,9 @@ our %unified_info = ( "doc/man/man7/EVP_RAND-HMAC-DRBG.7" => [ "doc/man7/EVP_RAND-HMAC-DRBG.pod" ], + "doc/man/man7/EVP_RAND-JITTER.7" => [ + "doc/man7/EVP_RAND-JITTER.pod" + ], "doc/man/man7/EVP_RAND-SEED-SRC.7" => [ "doc/man7/EVP_RAND-SEED-SRC.pod" ], @@ -6527,9 +7419,15 @@ our %unified_info = ( "doc/man/man7/EVP_SIGNATURE-HMAC.7" => [ "doc/man7/EVP_SIGNATURE-HMAC.pod" ], + "doc/man/man7/EVP_SIGNATURE-ML-DSA.7" => [ + "doc/man7/EVP_SIGNATURE-ML-DSA.pod" + ], "doc/man/man7/EVP_SIGNATURE-RSA.7" => [ "doc/man7/EVP_SIGNATURE-RSA.pod" ], + "doc/man/man7/EVP_SIGNATURE-SLH-DSA.7" => [ + "doc/man7/EVP_SIGNATURE-SLH-DSA.pod" + ], "doc/man/man7/OSSL_PROVIDER-FIPS.7" => [ "doc/man7/OSSL_PROVIDER-FIPS.pod" ], @@ -6545,6 +7443,9 @@ our %unified_info = ( "doc/man/man7/OSSL_PROVIDER-null.7" => [ "doc/man7/OSSL_PROVIDER-null.pod" ], + "doc/man/man7/OSSL_STORE-winstore.7" => [ + "doc/man7/OSSL_STORE-winstore.pod" + ], "doc/man/man7/RAND.7" => [ "doc/man7/RAND.pod" ], @@ -6557,9 +7458,6 @@ our %unified_info = ( "doc/man/man7/bio.7" => [ "doc/man7/bio.pod" ], - "doc/man/man7/crypto.7" => [ - "doc/man7/crypto.pod" - ], "doc/man/man7/ct.7" => [ "doc/man7/ct.pod" ], @@ -6590,9 +7488,6 @@ our %unified_info = ( "doc/man/man7/life_cycle-rand.7" => [ "doc/man7/life_cycle-rand.pod" ], - "doc/man/man7/migration_guide.7" => [ - "doc/man7/migration_guide.pod" - ], "doc/man/man7/openssl-core.h.7" => [ "doc/man7/openssl-core.h.pod" ], @@ -6608,12 +7503,66 @@ our %unified_info = ( "doc/man/man7/openssl-glossary.7" => [ "doc/man7/openssl-glossary.pod" ], + "doc/man/man7/openssl-qlog.7" => [ + "doc/man7/openssl-qlog.pod" + ], + "doc/man/man7/openssl-quic-concurrency.7" => [ + "doc/man7/openssl-quic-concurrency.pod" + ], + "doc/man/man7/openssl-quic.7" => [ + "doc/man7/openssl-quic.pod" + ], "doc/man/man7/openssl-threads.7" => [ "doc/man7/openssl-threads.pod" ], "doc/man/man7/openssl_user_macros.7" => [ "doc/man7/openssl_user_macros.pod" ], + "doc/man/man7/ossl-guide-introduction.7" => [ + "doc/man7/ossl-guide-introduction.pod" + ], + "doc/man/man7/ossl-guide-libcrypto-introduction.7" => [ + "doc/man7/ossl-guide-libcrypto-introduction.pod" + ], + "doc/man/man7/ossl-guide-libraries-introduction.7" => [ + "doc/man7/ossl-guide-libraries-introduction.pod" + ], + "doc/man/man7/ossl-guide-libssl-introduction.7" => [ + "doc/man7/ossl-guide-libssl-introduction.pod" + ], + "doc/man/man7/ossl-guide-migration.7" => [ + "doc/man7/ossl-guide-migration.pod" + ], + "doc/man/man7/ossl-guide-quic-client-block.7" => [ + "doc/man7/ossl-guide-quic-client-block.pod" + ], + "doc/man/man7/ossl-guide-quic-client-non-block.7" => [ + "doc/man7/ossl-guide-quic-client-non-block.pod" + ], + "doc/man/man7/ossl-guide-quic-introduction.7" => [ + "doc/man7/ossl-guide-quic-introduction.pod" + ], + "doc/man/man7/ossl-guide-quic-multi-stream.7" => [ + "doc/man7/ossl-guide-quic-multi-stream.pod" + ], + "doc/man/man7/ossl-guide-quic-server-block.7" => [ + "doc/man7/ossl-guide-quic-server-block.pod" + ], + "doc/man/man7/ossl-guide-quic-server-non-block.7" => [ + "doc/man7/ossl-guide-quic-server-non-block.pod" + ], + "doc/man/man7/ossl-guide-tls-client-block.7" => [ + "doc/man7/ossl-guide-tls-client-block.pod" + ], + "doc/man/man7/ossl-guide-tls-client-non-block.7" => [ + "doc/man7/ossl-guide-tls-client-non-block.pod" + ], + "doc/man/man7/ossl-guide-tls-introduction.7" => [ + "doc/man7/ossl-guide-tls-introduction.pod" + ], + "doc/man/man7/ossl-guide-tls-server-block.7" => [ + "doc/man7/ossl-guide-tls-server-block.pod" + ], "doc/man/man7/ossl_store-file.7" => [ "doc/man7/ossl_store-file.pod" ], @@ -6668,6 +7617,9 @@ our %unified_info = ( "doc/man/man7/provider-signature.7" => [ "doc/man7/provider-signature.pod" ], + "doc/man/man7/provider-skeymgmt.7" => [ + "doc/man7/provider-skeymgmt.pod" + ], "doc/man/man7/provider-storemgmt.7" => [ "doc/man7/provider-storemgmt.pod" ], @@ -6677,9 +7629,6 @@ our %unified_info = ( "doc/man/man7/proxy-certificates.7" => [ "doc/man7/proxy-certificates.pod" ], - "doc/man/man7/ssl.7" => [ - "doc/man7/ssl.pod" - ], "doc/man/man7/x509.7" => [ "doc/man7/x509.pod" ], @@ -6859,6 +7808,10 @@ our %unified_info = ( "doc/man1/openssl-sess_id.pod.in", "doc/perlvars.pm" ], + "doc/man1/openssl-skeyutl.pod" => [ + "doc/man1/openssl-skeyutl.pod.in", + "doc/perlvars.pm" + ], "doc/man1/openssl-smime.pod" => [ "doc/man1/openssl-smime.pod.in", "doc/perlvars.pm" @@ -6898,6 +7851,27 @@ our %unified_info = ( "doc/man7/openssl_user_macros.pod" => [ "doc/man7/openssl_user_macros.pod.in" ], + "exporters/OpenSSLConfig.cmake" => [ + "installdata.pm" + ], + "exporters/OpenSSLConfigVersion.cmake" => [ + "exporters/OpenSSLConfig.cmake", + "installdata.pm" + ], + "exporters/libcrypto.pc" => [ + "installdata.pm" + ], + "exporters/libssl.pc" => [ + "installdata.pm" + ], + "exporters/openssl.pc" => [ + "exporters/libcrypto.pc", + "exporters/libssl.pc", + "installdata.pm" + ], + "fuzz/acert-test" => [ + "libcrypto" + ], "fuzz/asn1-test" => [ "libcrypto", "libssl" @@ -6930,17 +7904,85 @@ our %unified_info = ( "fuzz/ct-test" => [ "libcrypto" ], + "fuzz/decoder-test" => [ + "libcrypto" + ], + "fuzz/dtlsclient-test" => [ + "libcrypto", + "libssl" + ], + "fuzz/dtlsserver-test" => [ + "libcrypto", + "libssl" + ], + "fuzz/hashtable-test" => [ + "libcrypto.a" + ], + "fuzz/ml-dsa-test" => [ + "libcrypto.a" + ], + "fuzz/ml-kem-test" => [ + "libcrypto.a" + ], + "fuzz/pem-test" => [ + "libcrypto.a" + ], + "fuzz/provider-test" => [ + "libcrypto" + ], + "fuzz/punycode-test" => [ + "libcrypto.a" + ], + "fuzz/quic-client-test" => [ + "libcrypto.a", + "libssl.a" + ], + "fuzz/quic-lcidm-test" => [ + "libcrypto.a", + "libssl.a" + ], + "fuzz/quic-rcidm-test" => [ + "libcrypto.a", + "libssl.a" + ], + "fuzz/quic-server-test" => [ + "libcrypto.a", + "libssl.a" + ], + "fuzz/quic-srtm-test" => [ + "libcrypto.a", + "libssl.a" + ], "fuzz/server-test" => [ "libcrypto", "libssl" ], + "fuzz/slh-dsa-test" => [ + "libcrypto.a" + ], + "fuzz/smime-test" => [ + "libcrypto", + "libssl" + ], + "fuzz/v3name-test" => [ + "libcrypto.a" + ], "fuzz/x509-test" => [ "libcrypto" ], + "include/internal/param_names.h" => [ + "util/perl|OpenSSL/paramnames.pm" + ], + "include/openssl/core_names.h" => [ + "util/perl|OpenSSL/paramnames.pm" + ], "libcrypto.ld" => [ "configdata.pm", "util/perl/OpenSSL/Ordinals.pm" ], + "libcrypto.pc" => [ + "builddata.pm" + ], "libssl" => [ "libcrypto" ], @@ -6948,6 +7990,14 @@ our %unified_info = ( "configdata.pm", "util/perl/OpenSSL/Ordinals.pm" ], + "libssl.pc" => [ + "builddata.pm" + ], + "openssl.pc" => [ + "builddata.pm", + "libcrypto.pc", + "libssl.pc" + ], "providers/common/der/der_digests_gen.c" => [ "providers/common/der/DIGESTS.asn1", "providers/common/der/NIST.asn1", @@ -6965,11 +8015,19 @@ our %unified_info = ( "providers/common/der/ECX.asn1", "providers/common/der/oids_to_c.pm" ], + "providers/common/der/der_ml_dsa_gen.c" => [ + "providers/common/der/ML_DSA.asn1", + "providers/common/der/oids_to_c.pm" + ], "providers/common/der/der_rsa_gen.c" => [ "providers/common/der/NIST.asn1", "providers/common/der/RSA.asn1", "providers/common/der/oids_to_c.pm" ], + "providers/common/der/der_slh_dsa_gen.c" => [ + "providers/common/der/SLH_DSA.asn1", + "providers/common/der/oids_to_c.pm" + ], "providers/common/der/der_sm2_gen.c" => [ "providers/common/der/SM2.asn1", "providers/common/der/oids_to_c.pm" @@ -7009,6 +8067,12 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ecx_key.o" => [ "providers/common/include/prov/der_ecx.h" ], + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o" => [ + "providers/common/include/prov/der_ml_dsa.h" + ], + "providers/common/der/libcommon-lib-der_ml_dsa_key.o" => [ + "providers/common/include/prov/der_ml_dsa.h" + ], "providers/common/der/libcommon-lib-der_rsa_gen.o" => [ "providers/common/include/prov/der_rsa.h" ], @@ -7016,6 +8080,12 @@ our %unified_info = ( "providers/common/include/prov/der_digests.h", "providers/common/include/prov/der_rsa.h" ], + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o" => [ + "providers/common/include/prov/der_slh_dsa.h" + ], + "providers/common/der/libcommon-lib-der_slh_dsa_key.o" => [ + "providers/common/include/prov/der_slh_dsa.h" + ], "providers/common/der/libcommon-lib-der_wrap_gen.o" => [ "providers/common/include/prov/der_wrap.h" ], @@ -7055,11 +8125,19 @@ our %unified_info = ( "providers/common/der/ECX.asn1", "providers/common/der/oids_to_c.pm" ], + "providers/common/include/prov/der_ml_dsa.h" => [ + "providers/common/der/ML_DSA.asn1", + "providers/common/der/oids_to_c.pm" + ], "providers/common/include/prov/der_rsa.h" => [ "providers/common/der/NIST.asn1", "providers/common/der/RSA.asn1", "providers/common/der/oids_to_c.pm" ], + "providers/common/include/prov/der_slh_dsa.h" => [ + "providers/common/der/SLH_DSA.asn1", + "providers/common/der/oids_to_c.pm" + ], "providers/common/include/prov/der_sm2.h" => [ "providers/common/der/SM2.asn1", "providers/common/der/oids_to_c.pm" @@ -7092,9 +8170,15 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-eddsa_sig.o" => [ "providers/common/include/prov/der_ecx.h" ], + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o" => [ + "providers/common/include/prov/der_ml_dsa.h" + ], "providers/implementations/signature/libdefault-lib-rsa_sig.o" => [ "providers/common/include/prov/der_rsa.h" ], + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o" => [ + "providers/common/include/prov/der_slh_dsa.h" + ], "providers/implementations/signature/libdefault-lib-sm2_sig.o" => [ "providers/common/include/prov/der_sm2.h" ], @@ -7107,9 +8191,15 @@ our %unified_info = ( "providers/implementations/signature/libfips-lib-eddsa_sig.o" => [ "providers/common/include/prov/der_ecx.h" ], + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o" => [ + "providers/common/include/prov/der_ml_dsa.h" + ], "providers/implementations/signature/libfips-lib-rsa_sig.o" => [ "providers/common/include/prov/der_rsa.h" ], + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o" => [ + "providers/common/include/prov/der_slh_dsa.h" + ], "providers/legacy" => [ "libcrypto", "providers/liblegacy.a" @@ -7187,6 +8277,14 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/bio_addr_test" => [ + "libcrypto", + "test/libtestutil.a" + ], + "test/bio_base64_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/bio_callback_test" => [ "libcrypto", "test/libtestutil.a" @@ -7195,6 +8293,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/bio_dgram_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/bio_enc_test" => [ "libcrypto", "test/libtestutil.a" @@ -7203,6 +8305,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/bio_meth_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/bio_prefix_text" => [ "libcrypto", "test/libtestutil.a" @@ -7215,6 +8321,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/bio_tfo_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/bioprinttest" => [ "libcrypto", "test/libtestutil.a" @@ -7227,6 +8337,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/build_wincrypt_test" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_aes" => [ "libcrypto", "libssl" @@ -7247,6 +8361,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_byteorder" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_camellia" => [ "libcrypto", "libssl" @@ -7279,10 +8397,6 @@ our %unified_info = ( "libcrypto", "libssl" ], - "test/buildtest_c_core_names" => [ - "libcrypto", - "libssl" - ], "test/buildtest_c_core_object" => [ "libcrypto", "libssl" @@ -7315,6 +8429,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_e_ostime" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_ebcdic" => [ "libcrypto", "libssl" @@ -7351,6 +8469,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_hpke" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_http" => [ "libcrypto", "libssl" @@ -7359,6 +8481,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_indicator" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_kdf" => [ "libcrypto", "libssl" @@ -7379,6 +8505,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_ml_kem" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_modes" => [ "libcrypto", "libssl" @@ -7419,6 +8549,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_quic" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_rand" => [ "libcrypto", "libssl" @@ -7475,6 +8609,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_thread" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_tls1" => [ "libcrypto", "libssl" @@ -7495,10 +8633,23 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/byteorder_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], + "test/ca_internals_test" => [ + "libssl", + "test/libtestutil.a" + ], "test/casttest" => [ "libcrypto", "test/libtestutil.a" ], + "test/cert_comp_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], "test/chacha_internal_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -7612,7 +8763,11 @@ our %unified_info = ( "libssl", "test/libtestutil.a" ], - "test/defltfips_test" => [ + "test/decoder_propq_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], + "test/defltfips_test" => [ "libcrypto", "test/libtestutil.a" ], @@ -7668,6 +8823,8 @@ our %unified_info = ( ], "test/endecode_test" => [ "libcrypto.a", + "providers/libcommon.a", + "providers/liblegacy.a", "test/libtestutil.a" ], "test/endecoder_legacy_test" => [ @@ -7711,6 +8868,10 @@ our %unified_info = ( "test/evp_pkey_ctx_new_from_name" => [ "libcrypto" ], + "test/evp_pkey_dhkem_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/evp_pkey_dparams_test" => [ "libcrypto", "test/libtestutil.a" @@ -7719,10 +8880,18 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/evp_skey_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/evp_test" => [ "libcrypto", "test/libtestutil.a" ], + "test/evp_xof_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/exdatatest" => [ "libcrypto", "test/libtestutil.a" @@ -7761,6 +8930,10 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/hpke_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/http_test" => [ "libcrypto", "test/libtestutil.a" @@ -7773,17 +8946,25 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/json_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], "test/keymgmt_internal_test" => [ "libcrypto.a", "test/libtestutil.a" ], "test/lhash_test" => [ - "libcrypto", + "libcrypto.a", "test/libtestutil.a" ], "test/libtestutil.a" => [ "libcrypto" ], + "test/list_test" => [ + "test/libtestutil.a" + ], "test/localetest" => [ "libcrypto", "test/libtestutil.a" @@ -7796,10 +8977,26 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/membio_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/memleaktest" => [ "libcrypto", "test/libtestutil.a" ], + "test/ml_dsa_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], + "test/ml_kem_evp_extra_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], + "test/ml_kem_internal_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/modes_internal_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -7824,6 +9021,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/pairwise_fail_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/param_build_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -7856,6 +9057,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/pkcs12_api_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/pkcs12_format_test" => [ "libcrypto", "test/libtestutil.a" @@ -7876,6 +9081,11 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/priority_queue_test" => [ + "libcrypto", + "libssl.a", + "test/libtestutil.a" + ], "test/property_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -7888,6 +9098,10 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/provider_default_search_path_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/provider_fallback_test" => [ "libcrypto", "test/libtestutil.a" @@ -7912,12 +9126,122 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/quic_ackm_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_cc_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_cfq_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_client_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_fc_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_fifd_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_lcidm_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_multistream_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_newcid_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_qlog_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_radix_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_rcidm_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_record_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_srt_gen_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_srtm_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_stream_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_tserver_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_txp_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_txpim_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_wire_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quicapitest" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quicfaultstest" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], "test/rand_status_test" => [ "libcrypto", "test/libtestutil.a" ], "test/rand_test" => [ - "libcrypto", + "libcrypto.a", "test/libtestutil.a" ], "test/rc2test" => [ @@ -7932,7 +9256,7 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], - "test/rdrand_sanitytest" => [ + "test/rdcpu_sanitytest" => [ "libcrypto.a", "test/libtestutil.a" ], @@ -7941,6 +9265,11 @@ our %unified_info = ( "libssl", "test/libtestutil.a" ], + "test/rpktest" => [ + "libcrypto", + "libssl", + "test/libtestutil.a" + ], "test/rsa_mp_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -7953,10 +9282,18 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], - "test/sanitytest" => [ + "test/rsa_x931_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], + "test/safe_math_test" => [ "libcrypto", "test/libtestutil.a" ], + "test/sanitytest" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/secmemtest" => [ "libcrypto", "test/libtestutil.a" @@ -7974,6 +9311,10 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/slh_dsa_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/sm2_internal_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -8003,6 +9344,11 @@ our %unified_info = ( "libssl", "test/libtestutil.a" ], + "test/ssl_handshake_rtt_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], "test/ssl_old_test" => [ "libcrypto.a", "libssl.a", @@ -8019,8 +9365,8 @@ our %unified_info = ( "test/libtestutil.a" ], "test/sslapitest" => [ - "libcrypto", - "libssl", + "libcrypto.a", + "libssl.a", "test/libtestutil.a" ], "test/sslbuffertest" => [ @@ -8037,6 +9383,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/strtoultest" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/sysdefaulttest" => [ "libcrypto", "libssl", @@ -8046,8 +9396,12 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/threadpool_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/threadstest" => [ - "libcrypto", + "libcrypto.a", "test/libtestutil.a" ], "test/threadstest_fips" => [ @@ -8058,6 +9412,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/time_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/tls13ccstest" => [ "libcrypto", "libssl", @@ -8068,6 +9426,11 @@ our %unified_info = ( "libssl.a", "test/libtestutil.a" ], + "test/tls13groupselection_test" => [ + "libcrypto", + "libssl", + "test/libtestutil.a" + ], "test/trace_api_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -8105,6 +9468,10 @@ our %unified_info = ( "libssl.a", "test/libtestutil.a" ], + "test/x509_acert_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/x509_check_cert_pkey_test" => [ "libcrypto", "test/libtestutil.a" @@ -8117,6 +9484,18 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/x509_load_cert_file_test" => [ + "libcrypto", + "test/libtestutil.a" + ], + "test/x509_req_test" => [ + "libcrypto", + "test/libtestutil.a" + ], + "test/x509_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/x509_time_test" => [ "libcrypto", "test/libtestutil.a" @@ -8131,9 +9510,13 @@ our %unified_info = ( }, "dirinfo" => { "apps" => { + "deps" => [ + "apps/ca_internals_test-bin-ca.o" + ], "products" => { "bin" => [ - "apps/openssl" + "apps/openssl", + "test/ca_internals_test" ], "script" => [ "apps/CA.pl", @@ -8144,6 +9527,14 @@ our %unified_info = ( "apps/lib" => { "deps" => [ "apps/lib/openssl-bin-cmp_mock_srv.o", + "apps/lib/ca_internals_test-bin-app_libctx.o", + "apps/lib/ca_internals_test-bin-app_provider.o", + "apps/lib/ca_internals_test-bin-app_rand.o", + "apps/lib/ca_internals_test-bin-app_x509.o", + "apps/lib/ca_internals_test-bin-apps.o", + "apps/lib/ca_internals_test-bin-apps_ui.o", + "apps/lib/ca_internals_test-bin-engine.o", + "apps/lib/ca_internals_test-bin-fmt.o", "apps/lib/cmp_client_test-bin-cmp_mock_srv.o", "apps/lib/uitest-bin-apps_ui.o", "apps/lib/libapps-lib-app_libctx.o", @@ -8152,12 +9543,14 @@ our %unified_info = ( "apps/lib/libapps-lib-app_rand.o", "apps/lib/libapps-lib-app_x509.o", "apps/lib/libapps-lib-apps.o", + "apps/lib/libapps-lib-apps_opt_printf.o", "apps/lib/libapps-lib-apps_ui.o", "apps/lib/libapps-lib-columns.o", "apps/lib/libapps-lib-engine.o", "apps/lib/libapps-lib-engine_loader.o", "apps/lib/libapps-lib-fmt.o", "apps/lib/libapps-lib-http_server.o", + "apps/lib/libapps-lib-log.o", "apps/lib/libapps-lib-names.o", "apps/lib/libapps-lib-opt.o", "apps/lib/libapps-lib-s_cb.o", @@ -8168,6 +9561,7 @@ our %unified_info = ( "products" => { "bin" => [ "apps/openssl", + "test/ca_internals_test", "test/cmp_client_test", "test/uitest" ], @@ -8179,8 +9573,12 @@ our %unified_info = ( }, "crypto" => { "deps" => [ + "crypto/asn1_time_test-bin-ctype.o", + "crypto/ca_internals_test-bin-ctype.o", + "crypto/packettest-bin-quic_vlint.o", "crypto/libcrypto-lib-asn1_dsa.o", "crypto/libcrypto-lib-bsearch.o", + "crypto/libcrypto-lib-comp_methods.o", "crypto/libcrypto-lib-context.o", "crypto/libcrypto-lib-core_algorithm.o", "crypto/libcrypto-lib-core_fetch.o", @@ -8190,10 +9588,13 @@ our %unified_info = ( "crypto/libcrypto-lib-cryptlib.o", "crypto/libcrypto-lib-ctype.o", "crypto/libcrypto-lib-cversion.o", + "crypto/libcrypto-lib-defaults.o", "crypto/libcrypto-lib-der_writer.o", + "crypto/libcrypto-lib-deterministic_nonce.o", "crypto/libcrypto-lib-ebcdic.o", "crypto/libcrypto-lib-ex_data.o", "crypto/libcrypto-lib-getenv.o", + "crypto/libcrypto-lib-indicator_core.o", "crypto/libcrypto-lib-info.o", "crypto/libcrypto-lib-init.o", "crypto/libcrypto-lib-initthread.o", @@ -8211,6 +9612,7 @@ our %unified_info = ( "crypto/libcrypto-lib-params.o", "crypto/libcrypto-lib-params_dup.o", "crypto/libcrypto-lib-params_from_text.o", + "crypto/libcrypto-lib-params_idx.o", "crypto/libcrypto-lib-passphrase.o", "crypto/libcrypto-lib-provider.o", "crypto/libcrypto-lib-provider_child.o", @@ -8218,12 +9620,16 @@ our %unified_info = ( "crypto/libcrypto-lib-provider_core.o", "crypto/libcrypto-lib-provider_predefined.o", "crypto/libcrypto-lib-punycode.o", + "crypto/libcrypto-lib-quic_vlint.o", "crypto/libcrypto-lib-self_test_core.o", + "crypto/libcrypto-lib-sleep.o", "crypto/libcrypto-lib-sparse_array.o", + "crypto/libcrypto-lib-ssl_err.o", "crypto/libcrypto-lib-threads_lib.o", "crypto/libcrypto-lib-threads_none.o", "crypto/libcrypto-lib-threads_pthread.o", "crypto/libcrypto-lib-threads_win.o", + "crypto/libcrypto-lib-time.o", "crypto/libcrypto-lib-trace.o", "crypto/libcrypto-lib-uid.o", "crypto/libfips-lib-asn1_dsa.o", @@ -8246,6 +9652,7 @@ our %unified_info = ( "crypto/libfips-lib-params.o", "crypto/libfips-lib-params_dup.o", "crypto/libfips-lib-params_from_text.o", + "crypto/libfips-lib-params_idx.o", "crypto/libfips-lib-provider_core.o", "crypto/libfips-lib-provider_predefined.o", "crypto/libfips-lib-self_test_core.o", @@ -8253,9 +9660,15 @@ our %unified_info = ( "crypto/libfips-lib-threads_lib.o", "crypto/libfips-lib-threads_none.o", "crypto/libfips-lib-threads_pthread.o", - "crypto/libfips-lib-threads_win.o" + "crypto/libfips-lib-threads_win.o", + "crypto/libfips-lib-time.o" ], "products" => { + "bin" => [ + "test/asn1_time_test", + "test/ca_internals_test", + "test/packettest" + ], "lib" => [ "libcrypto", "providers/libfips.a" @@ -8296,6 +9709,8 @@ our %unified_info = ( }, "crypto/asn1" => { "deps" => [ + "crypto/asn1/asn1_time_test-bin-a_time.o", + "crypto/asn1/ca_internals_test-bin-a_time.o", "crypto/asn1/libcrypto-lib-a_bitstr.o", "crypto/asn1/libcrypto-lib-a_d2i_fp.o", "crypto/asn1/libcrypto-lib-a_digest.o", @@ -8362,6 +9777,10 @@ our %unified_info = ( "crypto/asn1/libcrypto-lib-x_val.o" ], "products" => { + "bin" => [ + "test/asn1_time_test", + "test/ca_internals_test" + ], "lib" => [ "libcrypto" ] @@ -8427,6 +9846,7 @@ our %unified_info = ( "crypto/bio/libcrypto-lib-bss_conn.o", "crypto/bio/libcrypto-lib-bss_core.o", "crypto/bio/libcrypto-lib-bss_dgram.o", + "crypto/bio/libcrypto-lib-bss_dgram_pair.o", "crypto/bio/libcrypto-lib-bss_fd.o", "crypto/bio/libcrypto-lib-bss_file.o", "crypto/bio/libcrypto-lib-bss_log.o", @@ -8583,6 +10003,7 @@ our %unified_info = ( "crypto/cmp/libcrypto-lib-cmp_client.o", "crypto/cmp/libcrypto-lib-cmp_ctx.o", "crypto/cmp/libcrypto-lib-cmp_err.o", + "crypto/cmp/libcrypto-lib-cmp_genm.o", "crypto/cmp/libcrypto-lib-cmp_hdr.o", "crypto/cmp/libcrypto-lib-cmp_http.o", "crypto/cmp/libcrypto-lib-cmp_msg.o", @@ -8950,7 +10371,9 @@ our %unified_info = ( "crypto/err/libcrypto-lib-err_all.o", "crypto/err/libcrypto-lib-err_all_legacy.o", "crypto/err/libcrypto-lib-err_blocks.o", - "crypto/err/libcrypto-lib-err_prn.o" + "crypto/err/libcrypto-lib-err_mark.o", + "crypto/err/libcrypto-lib-err_prn.o", + "crypto/err/libcrypto-lib-err_save.o" ], "products" => { "lib" => [ @@ -9051,7 +10474,9 @@ our %unified_info = ( "crypto/evp/libcrypto-lib-pmeth_check.o", "crypto/evp/libcrypto-lib-pmeth_gn.o", "crypto/evp/libcrypto-lib-pmeth_lib.o", + "crypto/evp/libcrypto-lib-s_lib.o", "crypto/evp/libcrypto-lib-signature.o", + "crypto/evp/libcrypto-lib-skeymgmt_meth.o", "crypto/evp/libfips-lib-asymcipher.o", "crypto/evp/libfips-lib-dh_support.o", "crypto/evp/libfips-lib-digest.o", @@ -9067,14 +10492,15 @@ our %unified_info = ( "crypto/evp/libfips-lib-kem.o", "crypto/evp/libfips-lib-keymgmt_lib.o", "crypto/evp/libfips-lib-keymgmt_meth.o", - "crypto/evp/libfips-lib-m_sigver.o", "crypto/evp/libfips-lib-mac_lib.o", "crypto/evp/libfips-lib-mac_meth.o", "crypto/evp/libfips-lib-p_lib.o", "crypto/evp/libfips-lib-pmeth_check.o", "crypto/evp/libfips-lib-pmeth_gn.o", "crypto/evp/libfips-lib-pmeth_lib.o", - "crypto/evp/libfips-lib-signature.o" + "crypto/evp/libfips-lib-s_lib.o", + "crypto/evp/libfips-lib-signature.o", + "crypto/evp/libfips-lib-skeymgmt_meth.o" ], "products" => { "lib" => [ @@ -9107,6 +10533,20 @@ our %unified_info = ( ] } }, + "crypto/hashtable" => { + "deps" => [ + "crypto/hashtable/libcrypto-lib-hashfunc.o", + "crypto/hashtable/libcrypto-lib-hashtable.o", + "crypto/hashtable/libfips-lib-hashfunc.o", + "crypto/hashtable/libfips-lib-hashtable.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, "crypto/hmac" => { "deps" => [ "crypto/hmac/libcrypto-lib-hmac.o", @@ -9119,6 +10559,17 @@ our %unified_info = ( ] } }, + "crypto/hpke" => { + "deps" => [ + "crypto/hpke/libcrypto-lib-hpke.o", + "crypto/hpke/libcrypto-lib-hpke_util.o" + ], + "products" => { + "lib" => [ + "libcrypto" + ] + } + }, "crypto/http" => { "deps" => [ "crypto/http/libcrypto-lib-http_client.o", @@ -9202,6 +10653,44 @@ our %unified_info = ( ] } }, + "crypto/ml_dsa" => { + "deps" => [ + "crypto/ml_dsa/libcrypto-lib-ml_dsa_encoders.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key_compress.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_matrix.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_ntt.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_params.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sample.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sign.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_encoders.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_key.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_key_compress.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_matrix.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_ntt.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_params.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_sample.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_sign.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, + "crypto/ml_kem" => { + "deps" => [ + "crypto/ml_kem/libcrypto-lib-ml_kem.o", + "crypto/ml_kem/libfips-lib-ml_kem.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, "crypto/modes" => { "deps" => [ "crypto/modes/libcrypto-lib-cbc128.o", @@ -9215,6 +10704,7 @@ our %unified_info = ( "crypto/modes/libcrypto-lib-siv128.o", "crypto/modes/libcrypto-lib-wrap128.o", "crypto/modes/libcrypto-lib-xts128.o", + "crypto/modes/libcrypto-lib-xts128gb.o", "crypto/modes/libfips-lib-cbc128.o", "crypto/modes/libfips-lib-ccm128.o", "crypto/modes/libfips-lib-cfb128.o", @@ -9222,7 +10712,8 @@ our %unified_info = ( "crypto/modes/libfips-lib-gcm128.o", "crypto/modes/libfips-lib-ofb128.o", "crypto/modes/libfips-lib-wrap128.o", - "crypto/modes/libfips-lib-xts128.o" + "crypto/modes/libfips-lib-xts128.o", + "crypto/modes/libfips-lib-xts128gb.o" ], "products" => { "lib" => [ @@ -9365,6 +10856,7 @@ our %unified_info = ( "crypto/rand/libcrypto-lib-rand_lib.o", "crypto/rand/libcrypto-lib-rand_meth.o", "crypto/rand/libcrypto-lib-rand_pool.o", + "crypto/rand/libcrypto-lib-rand_uniform.o", "crypto/rand/libcrypto-lib-randfile.o", "crypto/rand/libfips-lib-rand_lib.o" ], @@ -9509,6 +11001,36 @@ our %unified_info = ( ] } }, + "crypto/slh_dsa" => { + "deps" => [ + "crypto/slh_dsa/libcrypto-lib-slh_adrs.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa_hash_ctx.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa_key.o", + "crypto/slh_dsa/libcrypto-lib-slh_fors.o", + "crypto/slh_dsa/libcrypto-lib-slh_hash.o", + "crypto/slh_dsa/libcrypto-lib-slh_hypertree.o", + "crypto/slh_dsa/libcrypto-lib-slh_params.o", + "crypto/slh_dsa/libcrypto-lib-slh_wots.o", + "crypto/slh_dsa/libcrypto-lib-slh_xmss.o", + "crypto/slh_dsa/libfips-lib-slh_adrs.o", + "crypto/slh_dsa/libfips-lib-slh_dsa.o", + "crypto/slh_dsa/libfips-lib-slh_dsa_hash_ctx.o", + "crypto/slh_dsa/libfips-lib-slh_dsa_key.o", + "crypto/slh_dsa/libfips-lib-slh_fors.o", + "crypto/slh_dsa/libfips-lib-slh_hash.o", + "crypto/slh_dsa/libfips-lib-slh_hypertree.o", + "crypto/slh_dsa/libfips-lib-slh_params.o", + "crypto/slh_dsa/libfips-lib-slh_wots.o", + "crypto/slh_dsa/libfips-lib-slh_xmss.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, "crypto/sm2" => { "deps" => [ "crypto/sm2/libcrypto-lib-sm2_crypt.o", @@ -9582,6 +11104,38 @@ our %unified_info = ( ] } }, + "crypto/thread" => { + "deps" => [ + "crypto/thread/libcrypto-lib-api.o", + "crypto/thread/libcrypto-lib-arch.o", + "crypto/thread/libcrypto-lib-internal.o", + "crypto/thread/libfips-lib-api.o", + "crypto/thread/libfips-lib-arch.o", + "crypto/thread/libfips-lib-internal.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, + "crypto/thread/arch" => { + "deps" => [ + "crypto/thread/arch/libcrypto-lib-thread_none.o", + "crypto/thread/arch/libcrypto-lib-thread_posix.o", + "crypto/thread/arch/libcrypto-lib-thread_win.o", + "crypto/thread/arch/libfips-lib-thread_none.o", + "crypto/thread/arch/libfips-lib-thread_posix.o", + "crypto/thread/arch/libfips-lib-thread_win.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, "crypto/ts" => { "deps" => [ "crypto/ts/libcrypto-lib-ts_asn1.o", @@ -9648,14 +11202,22 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-pcy_map.o", "crypto/x509/libcrypto-lib-pcy_node.o", "crypto/x509/libcrypto-lib-pcy_tree.o", + "crypto/x509/libcrypto-lib-t_acert.o", "crypto/x509/libcrypto-lib-t_crl.o", "crypto/x509/libcrypto-lib-t_req.o", "crypto/x509/libcrypto-lib-t_x509.o", + "crypto/x509/libcrypto-lib-v3_aaa.o", + "crypto/x509/libcrypto-lib-v3_ac_tgt.o", "crypto/x509/libcrypto-lib-v3_addr.o", "crypto/x509/libcrypto-lib-v3_admis.o", "crypto/x509/libcrypto-lib-v3_akeya.o", "crypto/x509/libcrypto-lib-v3_akid.o", "crypto/x509/libcrypto-lib-v3_asid.o", + "crypto/x509/libcrypto-lib-v3_attrdesc.o", + "crypto/x509/libcrypto-lib-v3_attrmap.o", + "crypto/x509/libcrypto-lib-v3_audit_id.o", + "crypto/x509/libcrypto-lib-v3_authattid.o", + "crypto/x509/libcrypto-lib-v3_battcons.o", "crypto/x509/libcrypto-lib-v3_bcons.o", "crypto/x509/libcrypto-lib-v3_bitst.o", "crypto/x509/libcrypto-lib-v3_conf.o", @@ -9664,12 +11226,17 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_enum.o", "crypto/x509/libcrypto-lib-v3_extku.o", "crypto/x509/libcrypto-lib-v3_genn.o", + "crypto/x509/libcrypto-lib-v3_group_ac.o", "crypto/x509/libcrypto-lib-v3_ia5.o", + "crypto/x509/libcrypto-lib-v3_ind_iss.o", "crypto/x509/libcrypto-lib-v3_info.o", "crypto/x509/libcrypto-lib-v3_int.o", + "crypto/x509/libcrypto-lib-v3_iobo.o", "crypto/x509/libcrypto-lib-v3_ist.o", "crypto/x509/libcrypto-lib-v3_lib.o", "crypto/x509/libcrypto-lib-v3_ncons.o", + "crypto/x509/libcrypto-lib-v3_no_ass.o", + "crypto/x509/libcrypto-lib-v3_no_rev_avail.o", "crypto/x509/libcrypto-lib-v3_pci.o", "crypto/x509/libcrypto-lib-v3_pcia.o", "crypto/x509/libcrypto-lib-v3_pcons.o", @@ -9677,13 +11244,20 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_pmaps.o", "crypto/x509/libcrypto-lib-v3_prn.o", "crypto/x509/libcrypto-lib-v3_purp.o", + "crypto/x509/libcrypto-lib-v3_rolespec.o", "crypto/x509/libcrypto-lib-v3_san.o", + "crypto/x509/libcrypto-lib-v3_sda.o", + "crypto/x509/libcrypto-lib-v3_single_use.o", "crypto/x509/libcrypto-lib-v3_skid.o", + "crypto/x509/libcrypto-lib-v3_soa_id.o", "crypto/x509/libcrypto-lib-v3_sxnet.o", + "crypto/x509/libcrypto-lib-v3_timespec.o", "crypto/x509/libcrypto-lib-v3_tlsf.o", + "crypto/x509/libcrypto-lib-v3_usernotice.o", "crypto/x509/libcrypto-lib-v3_utf8.o", "crypto/x509/libcrypto-lib-v3_utl.o", "crypto/x509/libcrypto-lib-v3err.o", + "crypto/x509/libcrypto-lib-x509_acert.o", "crypto/x509/libcrypto-lib-x509_att.o", "crypto/x509/libcrypto-lib-x509_cmp.o", "crypto/x509/libcrypto-lib-x509_d2.o", @@ -9701,6 +11275,7 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x509_v3.o", "crypto/x509/libcrypto-lib-x509_vfy.o", "crypto/x509/libcrypto-lib-x509_vpm.o", + "crypto/x509/libcrypto-lib-x509aset.o", "crypto/x509/libcrypto-lib-x509cset.o", "crypto/x509/libcrypto-lib-x509name.o", "crypto/x509/libcrypto-lib-x509rset.o", @@ -9710,6 +11285,7 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x_attrib.o", "crypto/x509/libcrypto-lib-x_crl.o", "crypto/x509/libcrypto-lib-x_exten.o", + "crypto/x509/libcrypto-lib-x_ietfatt.o", "crypto/x509/libcrypto-lib-x_name.o", "crypto/x509/libcrypto-lib-x_pubkey.o", "crypto/x509/libcrypto-lib-x_req.o", @@ -9736,6 +11312,7 @@ our %unified_info = ( "fuzz" => { "products" => { "bin" => [ + "fuzz/acert-test", "fuzz/asn1-test", "fuzz/asn1parse-test", "fuzz/bignum-test", @@ -9746,13 +11323,31 @@ our %unified_info = ( "fuzz/conf-test", "fuzz/crl-test", "fuzz/ct-test", + "fuzz/decoder-test", + "fuzz/dtlsclient-test", + "fuzz/dtlsserver-test", + "fuzz/hashtable-test", + "fuzz/ml-dsa-test", + "fuzz/ml-kem-test", + "fuzz/pem-test", + "fuzz/provider-test", + "fuzz/punycode-test", + "fuzz/quic-client-test", + "fuzz/quic-lcidm-test", + "fuzz/quic-rcidm-test", + "fuzz/quic-server-test", + "fuzz/quic-srtm-test", "fuzz/server-test", + "fuzz/slh-dsa-test", + "fuzz/smime-test", + "fuzz/v3name-test", "fuzz/x509-test" ] } }, "providers" => { "deps" => [ + "providers/endecode_test-bin-legacyprov.o", "providers/evp_extra_test-bin-legacyprov.o", "providers/libcrypto-lib-baseprov.o", "providers/libcrypto-lib-defltprov.o", @@ -9762,6 +11357,7 @@ our %unified_info = ( ], "products" => { "bin" => [ + "test/endecode_test", "test/evp_extra_test" ], "dso" => [ @@ -9813,8 +11409,12 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ec_sig.o", "providers/common/der/libcommon-lib-der_ecx_gen.o", "providers/common/der/libcommon-lib-der_ecx_key.o", + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o", + "providers/common/der/libcommon-lib-der_ml_dsa_key.o", "providers/common/der/libcommon-lib-der_rsa_gen.o", "providers/common/der/libcommon-lib-der_rsa_key.o", + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o", + "providers/common/der/libcommon-lib-der_slh_dsa_key.o", "providers/common/der/libcommon-lib-der_wrap_gen.o", "providers/common/der/libdefault-lib-der_rsa_sig.o", "providers/common/der/libdefault-lib-der_sm2_gen.o", @@ -9833,6 +11433,7 @@ our %unified_info = ( "providers/fips" => { "deps" => [ "providers/fips/fips-dso-fips_entry.o", + "providers/fips/libfips-lib-fipsindicator.o", "providers/fips/libfips-lib-fipsprov.o", "providers/fips/libfips-lib-self_test.o", "providers/fips/libfips-lib-self_test_kats.o" @@ -9876,6 +11477,9 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_aes_ccm_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_polyval.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_ocb.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_ocb_hw.o", @@ -9900,7 +11504,13 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_cts.o", "providers/implementations/ciphers/libdefault-lib-cipher_null.o", "providers/implementations/ciphers/libdefault-lib-cipher_sm4.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_sm4_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes_common.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes_default.o", @@ -9997,7 +11607,10 @@ our %unified_info = ( "providers/implementations/encode_decode/libdefault-lib-encode_key2blob.o", "providers/implementations/encode_decode/libdefault-lib-encode_key2ms.o", "providers/implementations/encode_decode/libdefault-lib-encode_key2text.o", - "providers/implementations/encode_decode/libdefault-lib-endecoder_common.o" + "providers/implementations/encode_decode/libdefault-lib-endecoder_common.o", + "providers/implementations/encode_decode/libdefault-lib-ml_common_codecs.o", + "providers/implementations/encode_decode/libdefault-lib-ml_dsa_codecs.o", + "providers/implementations/encode_decode/libdefault-lib-ml_kem_codecs.o" ], "products" => { "lib" => [ @@ -10025,7 +11638,9 @@ our %unified_info = ( }, "providers/implementations/kdfs" => { "deps" => [ + "providers/implementations/kdfs/libdefault-lib-argon2.o", "providers/implementations/kdfs/libdefault-lib-hkdf.o", + "providers/implementations/kdfs/libdefault-lib-hmacdrbg_kdf.o", "providers/implementations/kdfs/libdefault-lib-kbkdf.o", "providers/implementations/kdfs/libdefault-lib-krb5kdf.o", "providers/implementations/kdfs/libdefault-lib-pbkdf2.o", @@ -10044,7 +11659,8 @@ our %unified_info = ( "providers/implementations/kdfs/libfips-lib-sskdf.o", "providers/implementations/kdfs/libfips-lib-tls1_prf.o", "providers/implementations/kdfs/libfips-lib-x942kdf.o", - "providers/implementations/kdfs/liblegacy-lib-pbkdf1.o" + "providers/implementations/kdfs/liblegacy-lib-pbkdf1.o", + "providers/implementations/kdfs/liblegacy-lib-pvkkdf.o" ], "products" => { "lib" => [ @@ -10056,13 +11672,22 @@ our %unified_info = ( }, "providers/implementations/kem" => { "deps" => [ + "providers/implementations/kem/libdefault-lib-ec_kem.o", + "providers/implementations/kem/libdefault-lib-ecx_kem.o", + "providers/implementations/kem/libdefault-lib-kem_util.o", + "providers/implementations/kem/libdefault-lib-ml_kem_kem.o", + "providers/implementations/kem/libdefault-lib-mlx_kem.o", "providers/implementations/kem/libdefault-lib-rsa_kem.o", - "providers/implementations/kem/libfips-lib-rsa_kem.o" + "providers/implementations/kem/libfips-lib-ml_kem_kem.o", + "providers/implementations/kem/libfips-lib-mlx_kem.o", + "providers/implementations/kem/libfips-lib-rsa_kem.o", + "providers/implementations/kem/libtemplate-lib-template_kem.o" ], "products" => { "lib" => [ "providers/libdefault.a", - "providers/libfips.a" + "providers/libfips.a", + "providers/libtemplate.a" ] } }, @@ -10074,19 +11699,29 @@ our %unified_info = ( "providers/implementations/keymgmt/libdefault-lib-ecx_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-kdf_legacy_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-mac_legacy_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-ml_dsa_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-ml_kem_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-mlx_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-rsa_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-slh_dsa_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-dh_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-dsa_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-ec_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-ecx_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-kdf_legacy_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-mac_legacy_kmgmt.o", - "providers/implementations/keymgmt/libfips-lib-rsa_kmgmt.o" + "providers/implementations/keymgmt/libfips-lib-ml_dsa_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-ml_kem_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-mlx_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-rsa_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-slh_dsa_kmgmt.o", + "providers/implementations/keymgmt/libtemplate-lib-template_kmgmt.o" ], "products" => { "lib" => [ "providers/libdefault.a", - "providers/libfips.a" + "providers/libfips.a", + "providers/libtemplate.a" ] } }, @@ -10114,18 +11749,18 @@ our %unified_info = ( }, "providers/implementations/rands" => { "deps" => [ - "providers/implementations/rands/libdefault-lib-crngt.o", "providers/implementations/rands/libdefault-lib-drbg.o", "providers/implementations/rands/libdefault-lib-drbg_ctr.o", "providers/implementations/rands/libdefault-lib-drbg_hash.o", "providers/implementations/rands/libdefault-lib-drbg_hmac.o", "providers/implementations/rands/libdefault-lib-seed_src.o", + "providers/implementations/rands/libdefault-lib-seed_src_jitter.o", "providers/implementations/rands/libdefault-lib-test_rng.o", - "providers/implementations/rands/libfips-lib-crngt.o", "providers/implementations/rands/libfips-lib-drbg.o", "providers/implementations/rands/libfips-lib-drbg_ctr.o", "providers/implementations/rands/libfips-lib-drbg_hash.o", "providers/implementations/rands/libfips-lib-drbg_hmac.o", + "providers/implementations/rands/libfips-lib-fips_crng_test.o", "providers/implementations/rands/libfips-lib-test_rng.o" ], "products" => { @@ -10154,13 +11789,31 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-ecdsa_sig.o", "providers/implementations/signature/libdefault-lib-eddsa_sig.o", "providers/implementations/signature/libdefault-lib-mac_legacy_sig.o", + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o", "providers/implementations/signature/libdefault-lib-rsa_sig.o", + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o", "providers/implementations/signature/libdefault-lib-sm2_sig.o", "providers/implementations/signature/libfips-lib-dsa_sig.o", "providers/implementations/signature/libfips-lib-ecdsa_sig.o", "providers/implementations/signature/libfips-lib-eddsa_sig.o", "providers/implementations/signature/libfips-lib-mac_legacy_sig.o", - "providers/implementations/signature/libfips-lib-rsa_sig.o" + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o", + "providers/implementations/signature/libfips-lib-rsa_sig.o", + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o" + ], + "products" => { + "lib" => [ + "providers/libdefault.a", + "providers/libfips.a" + ] + } + }, + "providers/implementations/skeymgmt" => { + "deps" => [ + "providers/implementations/skeymgmt/libdefault-lib-aes_skmgmt.o", + "providers/implementations/skeymgmt/libdefault-lib-generic.o", + "providers/implementations/skeymgmt/libfips-lib-aes_skmgmt.o", + "providers/implementations/skeymgmt/libfips-lib-generic.o" ], "products" => { "lib" => [ @@ -10188,14 +11841,15 @@ our %unified_info = ( "ssl/libssl-lib-d1_srtp.o", "ssl/libssl-lib-methods.o", "ssl/libssl-lib-pqueue.o", + "ssl/libssl-lib-priority_queue.o", "ssl/libssl-lib-s3_enc.o", "ssl/libssl-lib-s3_lib.o", "ssl/libssl-lib-s3_msg.o", "ssl/libssl-lib-ssl_asn1.o", "ssl/libssl-lib-ssl_cert.o", + "ssl/libssl-lib-ssl_cert_comp.o", "ssl/libssl-lib-ssl_ciph.o", "ssl/libssl-lib-ssl_conf.o", - "ssl/libssl-lib-ssl_err.o", "ssl/libssl-lib-ssl_err_legacy.o", "ssl/libssl-lib-ssl_init.o", "ssl/libssl-lib-ssl_lib.o", @@ -10211,32 +11865,107 @@ our %unified_info = ( "ssl/libssl-lib-t1_trce.o", "ssl/libssl-lib-tls13_enc.o", "ssl/libssl-lib-tls_depr.o", - "ssl/libssl-lib-tls_srp.o", - "ssl/libdefault-lib-s3_cbc.o", - "ssl/libfips-lib-s3_cbc.o" + "ssl/libssl-lib-tls_srp.o" ], "products" => { "lib" => [ - "libssl", - "providers/libdefault.a", - "providers/libfips.a" + "libssl" + ] + } + }, + "ssl/quic" => { + "deps" => [ + "ssl/quic/libssl-lib-cc_newreno.o", + "ssl/quic/libssl-lib-json_enc.o", + "ssl/quic/libssl-lib-qlog.o", + "ssl/quic/libssl-lib-qlog_event_helpers.o", + "ssl/quic/libssl-lib-quic_ackm.o", + "ssl/quic/libssl-lib-quic_cfq.o", + "ssl/quic/libssl-lib-quic_channel.o", + "ssl/quic/libssl-lib-quic_demux.o", + "ssl/quic/libssl-lib-quic_engine.o", + "ssl/quic/libssl-lib-quic_fc.o", + "ssl/quic/libssl-lib-quic_fifd.o", + "ssl/quic/libssl-lib-quic_impl.o", + "ssl/quic/libssl-lib-quic_lcidm.o", + "ssl/quic/libssl-lib-quic_method.o", + "ssl/quic/libssl-lib-quic_obj.o", + "ssl/quic/libssl-lib-quic_port.o", + "ssl/quic/libssl-lib-quic_rcidm.o", + "ssl/quic/libssl-lib-quic_reactor.o", + "ssl/quic/libssl-lib-quic_reactor_wait_ctx.o", + "ssl/quic/libssl-lib-quic_record_rx.o", + "ssl/quic/libssl-lib-quic_record_shared.o", + "ssl/quic/libssl-lib-quic_record_tx.o", + "ssl/quic/libssl-lib-quic_record_util.o", + "ssl/quic/libssl-lib-quic_rstream.o", + "ssl/quic/libssl-lib-quic_rx_depack.o", + "ssl/quic/libssl-lib-quic_sf_list.o", + "ssl/quic/libssl-lib-quic_srt_gen.o", + "ssl/quic/libssl-lib-quic_srtm.o", + "ssl/quic/libssl-lib-quic_sstream.o", + "ssl/quic/libssl-lib-quic_statm.o", + "ssl/quic/libssl-lib-quic_stream_map.o", + "ssl/quic/libssl-lib-quic_thread_assist.o", + "ssl/quic/libssl-lib-quic_tls.o", + "ssl/quic/libssl-lib-quic_tls_api.o", + "ssl/quic/libssl-lib-quic_trace.o", + "ssl/quic/libssl-lib-quic_tserver.o", + "ssl/quic/libssl-lib-quic_txp.o", + "ssl/quic/libssl-lib-quic_txpim.o", + "ssl/quic/libssl-lib-quic_types.o", + "ssl/quic/libssl-lib-quic_wire.o", + "ssl/quic/libssl-lib-quic_wire_pkt.o", + "ssl/quic/libssl-lib-uint_set.o" + ], + "products" => { + "lib" => [ + "libssl" ] } }, "ssl/record" => { "deps" => [ - "ssl/record/libssl-lib-dtls1_bitmap.o", "ssl/record/libssl-lib-rec_layer_d1.o", - "ssl/record/libssl-lib-rec_layer_s3.o", - "ssl/record/libssl-lib-ssl3_buffer.o", - "ssl/record/libssl-lib-ssl3_record.o", - "ssl/record/libssl-lib-ssl3_record_tls13.o", - "ssl/record/libcommon-lib-tls_pad.o" + "ssl/record/libssl-lib-rec_layer_s3.o" + ], + "products" => { + "lib" => [ + "libssl" + ] + } + }, + "ssl/record/methods" => { + "deps" => [ + "ssl/record/methods/libssl-lib-dtls_meth.o", + "ssl/record/methods/libssl-lib-ssl3_meth.o", + "ssl/record/methods/libssl-lib-tls13_meth.o", + "ssl/record/methods/libssl-lib-tls1_meth.o", + "ssl/record/methods/libssl-lib-tls_common.o", + "ssl/record/methods/libssl-lib-tls_multib.o", + "ssl/record/methods/libssl-lib-tlsany_meth.o", + "ssl/record/methods/libcommon-lib-tls_pad.o", + "ssl/record/methods/libdefault-lib-ssl3_cbc.o", + "ssl/record/methods/libfips-lib-ssl3_cbc.o" ], "products" => { "lib" => [ "libssl", - "providers/libcommon.a" + "providers/libcommon.a", + "providers/libdefault.a", + "providers/libfips.a" + ] + } + }, + "ssl/rio" => { + "deps" => [ + "ssl/rio/libssl-lib-poll_builder.o", + "ssl/rio/libssl-lib-poll_immediate.o", + "ssl/rio/libssl-lib-rio_notifier.o" + ], + "products" => { + "lib" => [ + "libssl" ] } }, @@ -10274,9 +12003,40 @@ our %unified_info = ( "test/helpers/dtlstest-bin-ssltestlib.o", "test/helpers/endecode_test-bin-predefined_dhparams.o", "test/helpers/fatalerrtest-bin-ssltestlib.o", + "test/helpers/json_test-bin-noisydgrambio.o", + "test/helpers/json_test-bin-pktsplitbio.o", + "test/helpers/json_test-bin-quictestlib.o", + "test/helpers/json_test-bin-ssltestlib.o", + "test/helpers/pkcs12_api_test-bin-pkcs12.o", "test/helpers/pkcs12_format_test-bin-pkcs12.o", + "test/helpers/quic_multistream_test-bin-noisydgrambio.o", + "test/helpers/quic_multistream_test-bin-pktsplitbio.o", + "test/helpers/quic_multistream_test-bin-quictestlib.o", + "test/helpers/quic_multistream_test-bin-ssltestlib.o", + "test/helpers/quic_newcid_test-bin-noisydgrambio.o", + "test/helpers/quic_newcid_test-bin-pktsplitbio.o", + "test/helpers/quic_newcid_test-bin-quictestlib.o", + "test/helpers/quic_newcid_test-bin-ssltestlib.o", + "test/helpers/quic_radix_test-bin-noisydgrambio.o", + "test/helpers/quic_radix_test-bin-pktsplitbio.o", + "test/helpers/quic_radix_test-bin-quictestlib.o", + "test/helpers/quic_radix_test-bin-ssltestlib.o", + "test/helpers/quic_srt_gen_test-bin-noisydgrambio.o", + "test/helpers/quic_srt_gen_test-bin-pktsplitbio.o", + "test/helpers/quic_srt_gen_test-bin-quictestlib.o", + "test/helpers/quic_srt_gen_test-bin-ssltestlib.o", + "test/helpers/quicapitest-bin-noisydgrambio.o", + "test/helpers/quicapitest-bin-pktsplitbio.o", + "test/helpers/quicapitest-bin-quictestlib.o", + "test/helpers/quicapitest-bin-ssltestlib.o", + "test/helpers/quicfaultstest-bin-noisydgrambio.o", + "test/helpers/quicfaultstest-bin-pktsplitbio.o", + "test/helpers/quicfaultstest-bin-quictestlib.o", + "test/helpers/quicfaultstest-bin-ssltestlib.o", "test/helpers/recordlentest-bin-ssltestlib.o", + "test/helpers/rpktest-bin-ssltestlib.o", "test/helpers/servername_test-bin-ssltestlib.o", + "test/helpers/ssl_handshake_rtt_test-bin-ssltestlib.o", "test/helpers/ssl_old_test-bin-predefined_dhparams.o", "test/helpers/ssl_test-bin-handshake.o", "test/helpers/ssl_test-bin-handshake_srp.o", @@ -10285,7 +12045,8 @@ our %unified_info = ( "test/helpers/sslapitest-bin-ssltestlib.o", "test/helpers/sslbuffertest-bin-ssltestlib.o", "test/helpers/sslcorrupttest-bin-ssltestlib.o", - "test/helpers/tls13ccstest-bin-ssltestlib.o" + "test/helpers/tls13ccstest-bin-ssltestlib.o", + "test/helpers/tls13groupselection_test-bin-ssltestlib.o" ], "products" => { "bin" => [ @@ -10303,16 +12064,37 @@ our %unified_info = ( "test/dtlstest", "test/endecode_test", "test/fatalerrtest", + "test/json_test", + "test/pkcs12_api_test", "test/pkcs12_format_test", + "test/quic_multistream_test", + "test/quic_newcid_test", + "test/quic_radix_test", + "test/quic_srt_gen_test", + "test/quicapitest", + "test/quicfaultstest", "test/recordlentest", + "test/rpktest", "test/servername_test", + "test/ssl_handshake_rtt_test", "test/ssl_old_test", "test/ssl_test", "test/ssl_test_ctx_test", "test/sslapitest", "test/sslbuffertest", "test/sslcorrupttest", - "test/tls13ccstest" + "test/tls13ccstest", + "test/tls13groupselection_test" + ] + } + }, + "test/radix" => { + "deps" => [ + "test/radix/quic_radix_test-bin-quic_radix.o" + ], + "products" => { + "bin" => [ + "test/quic_radix_test" ] } }, @@ -10324,6 +12106,7 @@ our %unified_info = ( "test/testutil/libtestutil-lib-driver.o", "test/testutil/libtestutil-lib-fake_random.o", "test/testutil/libtestutil-lib-format_output.o", + "test/testutil/libtestutil-lib-helper.o", "test/testutil/libtestutil-lib-load.o", "test/testutil/libtestutil-lib-main.o", "test/testutil/libtestutil-lib-options.o", @@ -10359,6 +12142,12 @@ our %unified_info = ( } }, "generate" => { + "OpenSSLConfig.cmake" => [ + "exporters/cmake/OpenSSLConfig.cmake.in" + ], + "OpenSSLConfigVersion.cmake" => [ + "exporters/cmake/OpenSSLConfigVersion.cmake.in" + ], "apps/progs.c" => [ "apps/progs.pl", "\"-C\"", @@ -10369,6 +12158,19 @@ our %unified_info = ( "\"-H\"", "\$(APPS_OPENSSL)" ], + "builddata.pm" => [ + "util/mkinstallvars.pl", + "PREFIX=.", + "BINDIR=apps", + "APPLINKDIR=ms", + "LIBDIR=", + "INCLUDEDIR=include", + "\"INCLUDEDIR=\$(SRCDIR)/include\"", + "ENGINESDIR=engines", + "MODULESDIR=providers", + "\"VERSION=\$(VERSION)\"", + "\"LDLIBS=\$(LIB_EX_LIBS)\"" + ], "crypto/aes/aes-586.S" => [ "crypto/aes/asm/aes-586.pl" ], @@ -10390,6 +12192,24 @@ our %unified_info = ( "crypto/aes/aes-ppc.s" => [ "crypto/aes/asm/aes-ppc.pl" ], + "crypto/aes/aes-riscv32-zkn.s" => [ + "crypto/aes/asm/aes-riscv32-zkn.pl" + ], + "crypto/aes/aes-riscv64-zkn.s" => [ + "crypto/aes/asm/aes-riscv64-zkn.pl" + ], + "crypto/aes/aes-riscv64-zvbb-zvkg-zvkned.s" => [ + "crypto/aes/asm/aes-riscv64-zvbb-zvkg-zvkned.pl" + ], + "crypto/aes/aes-riscv64-zvkb-zvkned.s" => [ + "crypto/aes/asm/aes-riscv64-zvkb-zvkned.pl" + ], + "crypto/aes/aes-riscv64-zvkned.s" => [ + "crypto/aes/asm/aes-riscv64-zvkned.pl" + ], + "crypto/aes/aes-riscv64.s" => [ + "crypto/aes/asm/aes-riscv64.pl" + ], "crypto/aes/aes-s390x.S" => [ "crypto/aes/asm/aes-s390x.pl" ], @@ -10417,6 +12237,9 @@ our %unified_info = ( "crypto/aes/aesni-x86_64.s" => [ "crypto/aes/asm/aesni-x86_64.pl" ], + "crypto/aes/aesni-xts-avx512.s" => [ + "crypto/aes/asm/aesni-xts-avx512.pl" + ], "crypto/aes/aesp8-ppc.s" => [ "crypto/aes/asm/aesp8-ppc.pl" ], @@ -10429,12 +12252,18 @@ our %unified_info = ( "crypto/aes/bsaes-armv7.S" => [ "crypto/aes/asm/bsaes-armv7.pl" ], + "crypto/aes/bsaes-armv8.S" => [ + "crypto/aes/asm/bsaes-armv8.pl" + ], "crypto/aes/bsaes-x86_64.s" => [ "crypto/aes/asm/bsaes-x86_64.pl" ], "crypto/aes/vpaes-armv8.S" => [ "crypto/aes/asm/vpaes-armv8.pl" ], + "crypto/aes/vpaes-loongarch64.S" => [ + "crypto/aes/asm/vpaes-loongarch64.pl" + ], "crypto/aes/vpaes-ppc.s" => [ "crypto/aes/asm/vpaes-ppc.pl" ], @@ -10495,15 +12324,33 @@ our %unified_info = ( "crypto/bn/ppc-mont.s" => [ "crypto/bn/asm/ppc-mont.pl" ], + "crypto/bn/ppc64-mont-fixed.s" => [ + "crypto/bn/asm/ppc64-mont-fixed.pl" + ], "crypto/bn/ppc64-mont.s" => [ "crypto/bn/asm/ppc64-mont.pl" ], + "crypto/bn/rsaz-2k-avx512.s" => [ + "crypto/bn/asm/rsaz-2k-avx512.pl" + ], + "crypto/bn/rsaz-2k-avxifma.s" => [ + "crypto/bn/asm/rsaz-2k-avxifma.pl" + ], + "crypto/bn/rsaz-3k-avx512.s" => [ + "crypto/bn/asm/rsaz-3k-avx512.pl" + ], + "crypto/bn/rsaz-3k-avxifma.s" => [ + "crypto/bn/asm/rsaz-3k-avxifma.pl" + ], + "crypto/bn/rsaz-4k-avx512.s" => [ + "crypto/bn/asm/rsaz-4k-avx512.pl" + ], + "crypto/bn/rsaz-4k-avxifma.s" => [ + "crypto/bn/asm/rsaz-4k-avxifma.pl" + ], "crypto/bn/rsaz-avx2.s" => [ "crypto/bn/asm/rsaz-avx2.pl" ], - "crypto/bn/rsaz-avx512.s" => [ - "crypto/bn/asm/rsaz-avx512.pl" - ], "crypto/bn/rsaz-x86_64.s" => [ "crypto/bn/asm/rsaz-x86_64.pl" ], @@ -10565,6 +12412,9 @@ our %unified_info = ( "crypto/chacha/chacha-armv4.S" => [ "crypto/chacha/asm/chacha-armv4.pl" ], + "crypto/chacha/chacha-armv8-sve.S" => [ + "crypto/chacha/asm/chacha-armv8-sve.pl" + ], "crypto/chacha/chacha-armv8.S" => [ "crypto/chacha/asm/chacha-armv8.pl" ], @@ -10577,9 +12427,19 @@ our %unified_info = ( "crypto/chacha/chacha-ia64.s" => [ "crypto/chacha/chacha-ia64.S" ], + "crypto/chacha/chacha-loongarch64.S" => [ + "crypto/chacha/asm/chacha-loongarch64.pl" + ], "crypto/chacha/chacha-ppc.s" => [ "crypto/chacha/asm/chacha-ppc.pl" ], + "crypto/chacha/chacha-riscv64-v-zbb-zvkb.s" => [ + "crypto/chacha/asm/chacha-riscv64-v-zbb.pl", + "zvkb" + ], + "crypto/chacha/chacha-riscv64-v-zbb.s" => [ + "crypto/chacha/asm/chacha-riscv64-v-zbb.pl" + ], "crypto/chacha/chacha-s390x.S" => [ "crypto/chacha/asm/chacha-s390x.pl" ], @@ -10589,6 +12449,9 @@ our %unified_info = ( "crypto/chacha/chacha-x86_64.s" => [ "crypto/chacha/asm/chacha-x86_64.pl" ], + "crypto/chacha/chachap10-ppc.s" => [ + "crypto/chacha/asm/chachap10-ppc.pl" + ], "crypto/des/crypt586.S" => [ "crypto/des/asm/crypt586.pl" ], @@ -10601,6 +12464,9 @@ our %unified_info = ( "crypto/des/dest4-sparcv9.S" => [ "crypto/des/asm/dest4-sparcv9.pl" ], + "crypto/ec/ecp_nistp384-ppc64.s" => [ + "crypto/ec/asm/ecp_nistp384-ppc64.pl" + ], "crypto/ec/ecp_nistp521-ppc64.s" => [ "crypto/ec/asm/ecp_nistp521-ppc64.pl" ], @@ -10625,6 +12491,9 @@ our %unified_info = ( "crypto/ec/ecp_nistz256-x86_64.s" => [ "crypto/ec/asm/ecp_nistz256-x86_64.pl" ], + "crypto/ec/ecp_sm2p256-armv8.S" => [ + "crypto/ec/asm/ecp_sm2p256-armv8.pl" + ], "crypto/ec/x25519-ppc64.s" => [ "crypto/ec/asm/x25519-ppc64.pl" ], @@ -10634,18 +12503,39 @@ our %unified_info = ( "crypto/ia64cpuid.s" => [ "crypto/ia64cpuid.S" ], + "crypto/loongarch64cpuid.s" => [ + "crypto/loongarch64cpuid.pl" + ], "crypto/md5/md5-586.S" => [ "crypto/md5/asm/md5-586.pl" ], + "crypto/md5/md5-aarch64.S" => [ + "crypto/md5/asm/md5-aarch64.pl" + ], + "crypto/md5/md5-loongarch64.S" => [ + "crypto/md5/asm/md5-loongarch64.pl" + ], "crypto/md5/md5-sparcv9.S" => [ "crypto/md5/asm/md5-sparcv9.pl" ], "crypto/md5/md5-x86_64.s" => [ "crypto/md5/asm/md5-x86_64.pl" ], + "crypto/modes/aes-gcm-armv8-unroll8_64.S" => [ + "crypto/modes/asm/aes-gcm-armv8-unroll8_64.pl" + ], "crypto/modes/aes-gcm-armv8_64.S" => [ "crypto/modes/asm/aes-gcm-armv8_64.pl" ], + "crypto/modes/aes-gcm-avx512.s" => [ + "crypto/modes/asm/aes-gcm-avx512.pl" + ], + "crypto/modes/aes-gcm-ppc.s" => [ + "crypto/modes/asm/aes-gcm-ppc.pl" + ], + "crypto/modes/aes-gcm-riscv64-zvkb-zvkg-zvkned.s" => [ + "crypto/modes/asm/aes-gcm-riscv64-zvkb-zvkg-zvkned.pl" + ], "crypto/modes/aesni-gcm-x86_64.s" => [ "crypto/modes/asm/aesni-gcm-x86_64.pl" ], @@ -10664,6 +12554,15 @@ our %unified_info = ( "crypto/modes/ghash-parisc.s" => [ "crypto/modes/asm/ghash-parisc.pl" ], + "crypto/modes/ghash-riscv64-zvkb-zvbc.s" => [ + "crypto/modes/asm/ghash-riscv64-zvkb-zvbc.pl" + ], + "crypto/modes/ghash-riscv64-zvkg.s" => [ + "crypto/modes/asm/ghash-riscv64-zvkg.pl" + ], + "crypto/modes/ghash-riscv64.s" => [ + "crypto/modes/asm/ghash-riscv64.pl" + ], "crypto/modes/ghash-s390x.S" => [ "crypto/modes/asm/ghash-s390x.pl" ], @@ -10682,6 +12581,9 @@ our %unified_info = ( "crypto/modes/ghashv8-armx.S" => [ "crypto/modes/asm/ghashv8-armx.pl" ], + "crypto/params_idx.c" => [ + "crypto/params_idx.c.in" + ], "crypto/pariscid.s" => [ "crypto/pariscid.pl" ], @@ -10742,6 +12644,12 @@ our %unified_info = ( "crypto/ripemd/rmd-586.S" => [ "crypto/ripemd/asm/rmd-586.pl" ], + "crypto/riscv32cpuid.s" => [ + "crypto/riscv32cpuid.pl" + ], + "crypto/riscv64cpuid.s" => [ + "crypto/riscv64cpuid.pl" + ], "crypto/s390xcpuid.S" => [ "crypto/s390xcpuid.pl" ], @@ -10850,6 +12758,9 @@ our %unified_info = ( "crypto/sha/sha256-ppc.s" => [ "crypto/sha/asm/sha512-ppc.pl" ], + "crypto/sha/sha256-riscv64-zvkb-zvknha_or_zvknhb.S" => [ + "crypto/sha/asm/sha256-riscv64-zvkb-zvknha_or_zvknhb.pl" + ], "crypto/sha/sha256-s390x.S" => [ "crypto/sha/asm/sha512-s390x.pl" ], @@ -10886,6 +12797,9 @@ our %unified_info = ( "crypto/sha/sha512-ppc.s" => [ "crypto/sha/asm/sha512-ppc.pl" ], + "crypto/sha/sha512-riscv64-zvkb-zvknhb.S" => [ + "crypto/sha/asm/sha512-riscv64-zvkb-zvknhb.pl" + ], "crypto/sha/sha512-s390x.S" => [ "crypto/sha/asm/sha512-s390x.pl" ], @@ -10898,6 +12812,24 @@ our %unified_info = ( "crypto/sha/sha512p8-ppc.s" => [ "crypto/sha/asm/sha512p8-ppc.pl" ], + "crypto/sm3/sm3-armv8.S" => [ + "crypto/sm3/asm/sm3-armv8.pl" + ], + "crypto/sm3/sm3-riscv64-zvksh.S" => [ + "crypto/sm3/asm/sm3-riscv64-zvksh.pl" + ], + "crypto/sm4/sm4-armv8.S" => [ + "crypto/sm4/asm/sm4-armv8.pl" + ], + "crypto/sm4/sm4-riscv64-zvksed.s" => [ + "crypto/sm4/asm/sm4-riscv64-zvksed.pl" + ], + "crypto/sm4/vpsm4-armv8.S" => [ + "crypto/sm4/asm/vpsm4-armv8.pl" + ], + "crypto/sm4/vpsm4_ex-armv8.S" => [ + "crypto/sm4/asm/vpsm4_ex-armv8.pl" + ], "crypto/uplink-ia64.s" => [ "ms/uplink-ia64.pl" ], @@ -11063,6 +12995,9 @@ our %unified_info = ( "doc/html/man1/openssl-sess_id.html" => [ "doc/man1/openssl-sess_id.pod" ], + "doc/html/man1/openssl-skeyutl.html" => [ + "doc/man1/openssl-skeyutl.pod" + ], "doc/html/man1/openssl-smime.html" => [ "doc/man1/openssl-smime.pod" ], @@ -11204,6 +13139,9 @@ our %unified_info = ( "doc/html/man3/BIO_get_ex_new_index.html" => [ "doc/man3/BIO_get_ex_new_index.pod" ], + "doc/html/man3/BIO_get_rpoll_descriptor.html" => [ + "doc/man3/BIO_get_rpoll_descriptor.pod" + ], "doc/html/man3/BIO_meth_new.html" => [ "doc/man3/BIO_meth_new.pod" ], @@ -11240,6 +13178,9 @@ our %unified_info = ( "doc/html/man3/BIO_s_datagram.html" => [ "doc/man3/BIO_s_datagram.pod" ], + "doc/html/man3/BIO_s_dgram_pair.html" => [ + "doc/man3/BIO_s_dgram_pair.pod" + ], "doc/html/man3/BIO_s_fd.html" => [ "doc/man3/BIO_s_fd.pod" ], @@ -11255,6 +13196,9 @@ our %unified_info = ( "doc/html/man3/BIO_s_socket.html" => [ "doc/man3/BIO_s_socket.pod" ], + "doc/html/man3/BIO_sendmmsg.html" => [ + "doc/man3/BIO_sendmmsg.pod" + ], "doc/html/man3/BIO_set_callback.html" => [ "doc/man3/BIO_set_callback.pod" ], @@ -11327,6 +13271,9 @@ our %unified_info = ( "doc/html/man3/BUF_MEM_new.html" => [ "doc/man3/BUF_MEM_new.pod" ], + "doc/html/man3/CMAC_CTX.html" => [ + "doc/man3/CMAC_CTX.pod" + ], "doc/html/man3/CMS_EncryptedData_decrypt.html" => [ "doc/man3/CMS_EncryptedData_decrypt.pod" ], @@ -11393,6 +13340,9 @@ our %unified_info = ( "doc/html/man3/CMS_verify_receipt.html" => [ "doc/man3/CMS_verify_receipt.pod" ], + "doc/html/man3/COMP_CTX_new.html" => [ + "doc/man3/COMP_CTX_new.pod" + ], "doc/html/man3/CONF_modules_free.html" => [ "doc/man3/CONF_modules_free.pod" ], @@ -11492,6 +13442,12 @@ our %unified_info = ( "doc/html/man3/DTLS_set_timer_cb.html" => [ "doc/man3/DTLS_set_timer_cb.pod" ], + "doc/html/man3/DTLSv1_get_timeout.html" => [ + "doc/man3/DTLSv1_get_timeout.pod" + ], + "doc/html/man3/DTLSv1_handle_timeout.html" => [ + "doc/man3/DTLSv1_handle_timeout.pod" + ], "doc/html/man3/DTLSv1_listen.html" => [ "doc/man3/DTLSv1_listen.pod" ], @@ -11630,6 +13586,9 @@ our %unified_info = ( "doc/html/man3/EVP_PKEY_CTX_get0_pkey.html" => [ "doc/man3/EVP_PKEY_CTX_get0_pkey.pod" ], + "doc/html/man3/EVP_PKEY_CTX_get_algor.html" => [ + "doc/man3/EVP_PKEY_CTX_get_algor.pod" + ], "doc/html/man3/EVP_PKEY_CTX_new.html" => [ "doc/man3/EVP_PKEY_CTX_new.pod" ], @@ -11747,6 +13706,12 @@ our %unified_info = ( "doc/html/man3/EVP_SIGNATURE.html" => [ "doc/man3/EVP_SIGNATURE.pod" ], + "doc/html/man3/EVP_SKEY.html" => [ + "doc/man3/EVP_SKEY.pod" + ], + "doc/html/man3/EVP_SKEYMGMT.html" => [ + "doc/man3/EVP_SKEYMGMT.pod" + ], "doc/html/man3/EVP_SealInit.html" => [ "doc/man3/EVP_SealInit.pod" ], @@ -11834,6 +13799,9 @@ our %unified_info = ( "doc/html/man3/EVP_whirlpool.html" => [ "doc/man3/EVP_whirlpool.pod" ], + "doc/html/man3/GENERAL_NAME.html" => [ + "doc/man3/GENERAL_NAME.pod" + ], "doc/html/man3/HMAC.html" => [ "doc/man3/HMAC.pod" ], @@ -11906,9 +13874,15 @@ our %unified_info = ( "doc/html/man3/OPENSSL_load_builtin_modules.html" => [ "doc/man3/OPENSSL_load_builtin_modules.pod" ], + "doc/html/man3/OPENSSL_load_u16_le.html" => [ + "doc/man3/OPENSSL_load_u16_le.pod" + ], "doc/html/man3/OPENSSL_malloc.html" => [ "doc/man3/OPENSSL_malloc.pod" ], + "doc/html/man3/OPENSSL_riscvcap.html" => [ + "doc/man3/OPENSSL_riscvcap.pod" + ], "doc/html/man3/OPENSSL_s390xcap.html" => [ "doc/man3/OPENSSL_s390xcap.pod" ], @@ -11924,12 +13898,18 @@ our %unified_info = ( "doc/html/man3/OSSL_CALLBACK.html" => [ "doc/man3/OSSL_CALLBACK.pod" ], + "doc/html/man3/OSSL_CMP_ATAV_set0.html" => [ + "doc/man3/OSSL_CMP_ATAV_set0.pod" + ], "doc/html/man3/OSSL_CMP_CTX_new.html" => [ "doc/man3/OSSL_CMP_CTX_new.pod" ], "doc/html/man3/OSSL_CMP_HDR_get0_transactionID.html" => [ "doc/man3/OSSL_CMP_HDR_get0_transactionID.pod" ], + "doc/html/man3/OSSL_CMP_ITAV_new_caCerts.html" => [ + "doc/man3/OSSL_CMP_ITAV_new_caCerts.pod" + ], "doc/html/man3/OSSL_CMP_ITAV_set0.html" => [ "doc/man3/OSSL_CMP_ITAV_set0.pod" ], @@ -11999,9 +13979,18 @@ our %unified_info = ( "doc/html/man3/OSSL_ENCODER_to_bio.html" => [ "doc/man3/OSSL_ENCODER_to_bio.pod" ], + "doc/html/man3/OSSL_ERR_STATE_save.html" => [ + "doc/man3/OSSL_ERR_STATE_save.pod" + ], "doc/html/man3/OSSL_ESS_check_signing_certs.html" => [ "doc/man3/OSSL_ESS_check_signing_certs.pod" ], + "doc/html/man3/OSSL_GENERAL_NAMES_print.html" => [ + "doc/man3/OSSL_GENERAL_NAMES_print.pod" + ], + "doc/html/man3/OSSL_HPKE_CTX_new.html" => [ + "doc/man3/OSSL_HPKE_CTX_new.pod" + ], "doc/html/man3/OSSL_HTTP_REQ_CTX.html" => [ "doc/man3/OSSL_HTTP_REQ_CTX.pod" ], @@ -12011,12 +14000,24 @@ our %unified_info = ( "doc/html/man3/OSSL_HTTP_transfer.html" => [ "doc/man3/OSSL_HTTP_transfer.pod" ], + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX.html" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX.pod" + ], + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX_print.html" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX_print.pod" + ], + "doc/html/man3/OSSL_INDICATOR_set_callback.html" => [ + "doc/man3/OSSL_INDICATOR_set_callback.pod" + ], "doc/html/man3/OSSL_ITEM.html" => [ "doc/man3/OSSL_ITEM.pod" ], "doc/html/man3/OSSL_LIB_CTX.html" => [ "doc/man3/OSSL_LIB_CTX.pod" ], + "doc/html/man3/OSSL_LIB_CTX_set_conf_diagnostics.html" => [ + "doc/man3/OSSL_LIB_CTX_set_conf_diagnostics.pod" + ], "doc/html/man3/OSSL_PARAM.html" => [ "doc/man3/OSSL_PARAM.pod" ], @@ -12032,9 +14033,15 @@ our %unified_info = ( "doc/html/man3/OSSL_PARAM_int.html" => [ "doc/man3/OSSL_PARAM_int.pod" ], + "doc/html/man3/OSSL_PARAM_print_to_bio.html" => [ + "doc/man3/OSSL_PARAM_print_to_bio.pod" + ], "doc/html/man3/OSSL_PROVIDER.html" => [ "doc/man3/OSSL_PROVIDER.pod" ], + "doc/html/man3/OSSL_QUIC_client_method.html" => [ + "doc/man3/OSSL_QUIC_client_method.pod" + ], "doc/html/man3/OSSL_SELF_TEST_new.html" => [ "doc/man3/OSSL_SELF_TEST_new.pod" ], @@ -12059,6 +14066,9 @@ our %unified_info = ( "doc/html/man3/OSSL_STORE_open.html" => [ "doc/man3/OSSL_STORE_open.pod" ], + "doc/html/man3/OSSL_sleep.html" => [ + "doc/man3/OSSL_sleep.pod" + ], "doc/html/man3/OSSL_trace_enabled.html" => [ "doc/man3/OSSL_trace_enabled.pod" ], @@ -12074,6 +14084,9 @@ our %unified_info = ( "doc/html/man3/OpenSSL_version.html" => [ "doc/man3/OpenSSL_version.pod" ], + "doc/html/man3/PBMAC1_get1_pbkdf2_param.html" => [ + "doc/man3/PBMAC1_get1_pbkdf2_param.pod" + ], "doc/html/man3/PEM_X509_INFO_read_bio_ex.html" => [ "doc/man3/PEM_X509_INFO_read_bio_ex.pod" ], @@ -12110,6 +14123,9 @@ our %unified_info = ( "doc/html/man3/PKCS12_SAFEBAG_get1_cert.html" => [ "doc/man3/PKCS12_SAFEBAG_get1_cert.pod" ], + "doc/html/man3/PKCS12_SAFEBAG_set0_attrs.html" => [ + "doc/man3/PKCS12_SAFEBAG_set0_attrs.pod" + ], "doc/html/man3/PKCS12_add1_attr_by_NID.html" => [ "doc/man3/PKCS12_add1_attr_by_NID.pod" ], @@ -12383,6 +14399,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set0_CA_list.html" => [ "doc/man3/SSL_CTX_set0_CA_list.pod" ], + "doc/html/man3/SSL_CTX_set1_cert_comp_preference.html" => [ + "doc/man3/SSL_CTX_set1_cert_comp_preference.pod" + ], "doc/html/man3/SSL_CTX_set1_curves.html" => [ "doc/man3/SSL_CTX_set1_curves.pod" ], @@ -12422,6 +14441,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_default_passwd_cb.html" => [ "doc/man3/SSL_CTX_set_default_passwd_cb.pod" ], + "doc/html/man3/SSL_CTX_set_domain_flags.html" => [ + "doc/man3/SSL_CTX_set_domain_flags.pod" + ], "doc/html/man3/SSL_CTX_set_generate_session_id.html" => [ "doc/man3/SSL_CTX_set_generate_session_id.pod" ], @@ -12443,6 +14465,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_msg_callback.html" => [ "doc/man3/SSL_CTX_set_msg_callback.pod" ], + "doc/html/man3/SSL_CTX_set_new_pending_conn_cb.html" => [ + "doc/man3/SSL_CTX_set_new_pending_conn_cb.pod" + ], "doc/html/man3/SSL_CTX_set_num_tickets.html" => [ "doc/man3/SSL_CTX_set_num_tickets.pod" ], @@ -12557,6 +14582,9 @@ our %unified_info = ( "doc/html/man3/SSL_accept.html" => [ "doc/man3/SSL_accept.pod" ], + "doc/html/man3/SSL_accept_stream.html" => [ + "doc/man3/SSL_accept_stream.pod" + ], "doc/html/man3/SSL_alert_type_string.html" => [ "doc/man3/SSL_alert_type_string.pod" ], @@ -12584,9 +14612,21 @@ our %unified_info = ( "doc/html/man3/SSL_free.html" => [ "doc/man3/SSL_free.pod" ], + "doc/html/man3/SSL_get0_connection.html" => [ + "doc/man3/SSL_get0_connection.pod" + ], + "doc/html/man3/SSL_get0_group_name.html" => [ + "doc/man3/SSL_get0_group_name.pod" + ], + "doc/html/man3/SSL_get0_peer_rpk.html" => [ + "doc/man3/SSL_get0_peer_rpk.pod" + ], "doc/html/man3/SSL_get0_peer_scts.html" => [ "doc/man3/SSL_get0_peer_scts.pod" ], + "doc/html/man3/SSL_get1_builtin_sigalgs.html" => [ + "doc/man3/SSL_get1_builtin_sigalgs.pod" + ], "doc/html/man3/SSL_get_SSL_CTX.html" => [ "doc/man3/SSL_get_SSL_CTX.pod" ], @@ -12602,6 +14642,9 @@ our %unified_info = ( "doc/html/man3/SSL_get_client_random.html" => [ "doc/man3/SSL_get_client_random.pod" ], + "doc/html/man3/SSL_get_conn_close_info.html" => [ + "doc/man3/SSL_get_conn_close_info.pod" + ], "doc/html/man3/SSL_get_current_cipher.html" => [ "doc/man3/SSL_get_current_cipher.pod" ], @@ -12611,12 +14654,18 @@ our %unified_info = ( "doc/html/man3/SSL_get_error.html" => [ "doc/man3/SSL_get_error.pod" ], + "doc/html/man3/SSL_get_event_timeout.html" => [ + "doc/man3/SSL_get_event_timeout.pod" + ], "doc/html/man3/SSL_get_extms_support.html" => [ "doc/man3/SSL_get_extms_support.pod" ], "doc/html/man3/SSL_get_fd.html" => [ "doc/man3/SSL_get_fd.pod" ], + "doc/html/man3/SSL_get_handshake_rtt.html" => [ + "doc/man3/SSL_get_handshake_rtt.pod" + ], "doc/html/man3/SSL_get_peer_cert_chain.html" => [ "doc/man3/SSL_get_peer_cert_chain.pod" ], @@ -12635,12 +14684,24 @@ our %unified_info = ( "doc/html/man3/SSL_get_rbio.html" => [ "doc/man3/SSL_get_rbio.pod" ], + "doc/html/man3/SSL_get_rpoll_descriptor.html" => [ + "doc/man3/SSL_get_rpoll_descriptor.pod" + ], "doc/html/man3/SSL_get_session.html" => [ "doc/man3/SSL_get_session.pod" ], "doc/html/man3/SSL_get_shared_sigalgs.html" => [ "doc/man3/SSL_get_shared_sigalgs.pod" ], + "doc/html/man3/SSL_get_stream_id.html" => [ + "doc/man3/SSL_get_stream_id.pod" + ], + "doc/html/man3/SSL_get_stream_read_state.html" => [ + "doc/man3/SSL_get_stream_read_state.pod" + ], + "doc/html/man3/SSL_get_value_uint.html" => [ + "doc/man3/SSL_get_value_uint.pod" + ], "doc/html/man3/SSL_get_verify_result.html" => [ "doc/man3/SSL_get_verify_result.pod" ], @@ -12650,9 +14711,15 @@ our %unified_info = ( "doc/html/man3/SSL_group_to_name.html" => [ "doc/man3/SSL_group_to_name.pod" ], + "doc/html/man3/SSL_handle_events.html" => [ + "doc/man3/SSL_handle_events.pod" + ], "doc/html/man3/SSL_in_init.html" => [ "doc/man3/SSL_in_init.pod" ], + "doc/html/man3/SSL_inject_net_dgram.html" => [ + "doc/man3/SSL_inject_net_dgram.pod" + ], "doc/html/man3/SSL_key_update.html" => [ "doc/man3/SSL_key_update.pod" ], @@ -12665,9 +14732,21 @@ our %unified_info = ( "doc/html/man3/SSL_new.html" => [ "doc/man3/SSL_new.pod" ], + "doc/html/man3/SSL_new_domain.html" => [ + "doc/man3/SSL_new_domain.pod" + ], + "doc/html/man3/SSL_new_listener.html" => [ + "doc/man3/SSL_new_listener.pod" + ], + "doc/html/man3/SSL_new_stream.html" => [ + "doc/man3/SSL_new_stream.pod" + ], "doc/html/man3/SSL_pending.html" => [ "doc/man3/SSL_pending.pod" ], + "doc/html/man3/SSL_poll.html" => [ + "doc/man3/SSL_poll.pod" + ], "doc/html/man3/SSL_read.html" => [ "doc/man3/SSL_read.pod" ], @@ -12683,24 +14762,45 @@ our %unified_info = ( "doc/html/man3/SSL_set1_host.html" => [ "doc/man3/SSL_set1_host.pod" ], + "doc/html/man3/SSL_set1_initial_peer_addr.html" => [ + "doc/man3/SSL_set1_initial_peer_addr.pod" + ], + "doc/html/man3/SSL_set1_server_cert_type.html" => [ + "doc/man3/SSL_set1_server_cert_type.pod" + ], "doc/html/man3/SSL_set_async_callback.html" => [ "doc/man3/SSL_set_async_callback.pod" ], "doc/html/man3/SSL_set_bio.html" => [ "doc/man3/SSL_set_bio.pod" ], + "doc/html/man3/SSL_set_blocking_mode.html" => [ + "doc/man3/SSL_set_blocking_mode.pod" + ], "doc/html/man3/SSL_set_connect_state.html" => [ "doc/man3/SSL_set_connect_state.pod" ], + "doc/html/man3/SSL_set_default_stream_mode.html" => [ + "doc/man3/SSL_set_default_stream_mode.pod" + ], "doc/html/man3/SSL_set_fd.html" => [ "doc/man3/SSL_set_fd.pod" ], + "doc/html/man3/SSL_set_incoming_stream_policy.html" => [ + "doc/man3/SSL_set_incoming_stream_policy.pod" + ], + "doc/html/man3/SSL_set_quic_tls_cbs.html" => [ + "doc/man3/SSL_set_quic_tls_cbs.pod" + ], "doc/html/man3/SSL_set_retry_verify.html" => [ "doc/man3/SSL_set_retry_verify.pod" ], "doc/html/man3/SSL_set_session.html" => [ "doc/man3/SSL_set_session.pod" ], + "doc/html/man3/SSL_set_session_secret_cb.html" => [ + "doc/man3/SSL_set_session_secret_cb.pod" + ], "doc/html/man3/SSL_set_shutdown.html" => [ "doc/man3/SSL_set_shutdown.pod" ], @@ -12713,6 +14813,12 @@ our %unified_info = ( "doc/html/man3/SSL_state_string.html" => [ "doc/man3/SSL_state_string.pod" ], + "doc/html/man3/SSL_stream_conclude.html" => [ + "doc/man3/SSL_stream_conclude.pod" + ], + "doc/html/man3/SSL_stream_reset.html" => [ + "doc/man3/SSL_stream_reset.pod" + ], "doc/html/man3/SSL_want.html" => [ "doc/man3/SSL_want.pod" ], @@ -12722,8 +14828,8 @@ our %unified_info = ( "doc/html/man3/TS_RESP_CTX_new.html" => [ "doc/man3/TS_RESP_CTX_new.pod" ], - "doc/html/man3/TS_VERIFY_CTX_set_certs.html" => [ - "doc/man3/TS_VERIFY_CTX_set_certs.pod" + "doc/html/man3/TS_VERIFY_CTX.html" => [ + "doc/man3/TS_VERIFY_CTX.pod" ], "doc/html/man3/UI_STRING.html" => [ "doc/man3/UI_STRING.pod" @@ -12743,6 +14849,21 @@ our %unified_info = ( "doc/html/man3/X509V3_set_ctx.html" => [ "doc/man3/X509V3_set_ctx.pod" ], + "doc/html/man3/X509_ACERT_add1_attr.html" => [ + "doc/man3/X509_ACERT_add1_attr.pod" + ], + "doc/html/man3/X509_ACERT_add_attr_nconf.html" => [ + "doc/man3/X509_ACERT_add_attr_nconf.pod" + ], + "doc/html/man3/X509_ACERT_get0_holder_baseCertId.html" => [ + "doc/man3/X509_ACERT_get0_holder_baseCertId.pod" + ], + "doc/html/man3/X509_ACERT_get_attr.html" => [ + "doc/man3/X509_ACERT_get_attr.pod" + ], + "doc/html/man3/X509_ACERT_print_ex.html" => [ + "doc/man3/X509_ACERT_print_ex.pod" + ], "doc/html/man3/X509_ALGOR_dup.html" => [ "doc/man3/X509_ALGOR_dup.pod" ], @@ -12791,6 +14912,9 @@ our %unified_info = ( "doc/html/man3/X509_SIG_get0.html" => [ "doc/man3/X509_SIG_get0.pod" ], + "doc/html/man3/X509_STORE_CTX_get_by_subject.html" => [ + "doc/man3/X509_STORE_CTX_get_by_subject.pod" + ], "doc/html/man3/X509_STORE_CTX_get_error.html" => [ "doc/man3/X509_STORE_CTX_get_error.pod" ], @@ -12857,6 +14981,9 @@ our %unified_info = ( "doc/html/man3/X509_get0_uids.html" => [ "doc/man3/X509_get0_uids.pod" ], + "doc/html/man3/X509_get_default_cert_file.html" => [ + "doc/man3/X509_get_default_cert_file.pod" + ], "doc/html/man3/X509_get_extension_flags.html" => [ "doc/man3/X509_get_extension_flags.pod" ], @@ -12980,9 +15107,15 @@ our %unified_info = ( "doc/html/man7/EVP_CIPHER-SM4.html" => [ "doc/man7/EVP_CIPHER-SM4.pod" ], + "doc/html/man7/EVP_KDF-ARGON2.html" => [ + "doc/man7/EVP_KDF-ARGON2.pod" + ], "doc/html/man7/EVP_KDF-HKDF.html" => [ "doc/man7/EVP_KDF-HKDF.pod" ], + "doc/html/man7/EVP_KDF-HMAC-DRBG.html" => [ + "doc/man7/EVP_KDF-HMAC-DRBG.pod" + ], "doc/html/man7/EVP_KDF-KB.html" => [ "doc/man7/EVP_KDF-KB.pod" ], @@ -12998,6 +15131,9 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-PKCS12KDF.html" => [ "doc/man7/EVP_KDF-PKCS12KDF.pod" ], + "doc/html/man7/EVP_KDF-PVKKDF.html" => [ + "doc/man7/EVP_KDF-PVKKDF.pod" + ], "doc/html/man7/EVP_KDF-SCRYPT.html" => [ "doc/man7/EVP_KDF-SCRYPT.pod" ], @@ -13022,9 +15158,18 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-X963.html" => [ "doc/man7/EVP_KDF-X963.pod" ], + "doc/html/man7/EVP_KEM-EC.html" => [ + "doc/man7/EVP_KEM-EC.pod" + ], + "doc/html/man7/EVP_KEM-ML-KEM.html" => [ + "doc/man7/EVP_KEM-ML-KEM.pod" + ], "doc/html/man7/EVP_KEM-RSA.html" => [ "doc/man7/EVP_KEM-RSA.pod" ], + "doc/html/man7/EVP_KEM-X25519.html" => [ + "doc/man7/EVP_KEM-X25519.pod" + ], "doc/html/man7/EVP_KEYEXCH-DH.html" => [ "doc/man7/EVP_KEYEXCH-DH.pod" ], @@ -13058,6 +15203,9 @@ our %unified_info = ( "doc/html/man7/EVP_MD-BLAKE2.html" => [ "doc/man7/EVP_MD-BLAKE2.pod" ], + "doc/html/man7/EVP_MD-KECCAK.html" => [ + "doc/man7/EVP_MD-KECCAK.pod" + ], "doc/html/man7/EVP_MD-MD2.html" => [ "doc/man7/EVP_MD-MD2.pod" ], @@ -13115,15 +15263,27 @@ our %unified_info = ( "doc/html/man7/EVP_PKEY-HMAC.html" => [ "doc/man7/EVP_PKEY-HMAC.pod" ], + "doc/html/man7/EVP_PKEY-ML-DSA.html" => [ + "doc/man7/EVP_PKEY-ML-DSA.pod" + ], + "doc/html/man7/EVP_PKEY-ML-KEM.html" => [ + "doc/man7/EVP_PKEY-ML-KEM.pod" + ], "doc/html/man7/EVP_PKEY-RSA.html" => [ "doc/man7/EVP_PKEY-RSA.pod" ], + "doc/html/man7/EVP_PKEY-SLH-DSA.html" => [ + "doc/man7/EVP_PKEY-SLH-DSA.pod" + ], "doc/html/man7/EVP_PKEY-SM2.html" => [ "doc/man7/EVP_PKEY-SM2.pod" ], "doc/html/man7/EVP_PKEY-X25519.html" => [ "doc/man7/EVP_PKEY-X25519.pod" ], + "doc/html/man7/EVP_RAND-CRNG-TEST.html" => [ + "doc/man7/EVP_RAND-CRNG-TEST.pod" + ], "doc/html/man7/EVP_RAND-CTR-DRBG.html" => [ "doc/man7/EVP_RAND-CTR-DRBG.pod" ], @@ -13133,6 +15293,9 @@ our %unified_info = ( "doc/html/man7/EVP_RAND-HMAC-DRBG.html" => [ "doc/man7/EVP_RAND-HMAC-DRBG.pod" ], + "doc/html/man7/EVP_RAND-JITTER.html" => [ + "doc/man7/EVP_RAND-JITTER.pod" + ], "doc/html/man7/EVP_RAND-SEED-SRC.html" => [ "doc/man7/EVP_RAND-SEED-SRC.pod" ], @@ -13154,9 +15317,15 @@ our %unified_info = ( "doc/html/man7/EVP_SIGNATURE-HMAC.html" => [ "doc/man7/EVP_SIGNATURE-HMAC.pod" ], + "doc/html/man7/EVP_SIGNATURE-ML-DSA.html" => [ + "doc/man7/EVP_SIGNATURE-ML-DSA.pod" + ], "doc/html/man7/EVP_SIGNATURE-RSA.html" => [ "doc/man7/EVP_SIGNATURE-RSA.pod" ], + "doc/html/man7/EVP_SIGNATURE-SLH-DSA.html" => [ + "doc/man7/EVP_SIGNATURE-SLH-DSA.pod" + ], "doc/html/man7/OSSL_PROVIDER-FIPS.html" => [ "doc/man7/OSSL_PROVIDER-FIPS.pod" ], @@ -13172,6 +15341,9 @@ our %unified_info = ( "doc/html/man7/OSSL_PROVIDER-null.html" => [ "doc/man7/OSSL_PROVIDER-null.pod" ], + "doc/html/man7/OSSL_STORE-winstore.html" => [ + "doc/man7/OSSL_STORE-winstore.pod" + ], "doc/html/man7/RAND.html" => [ "doc/man7/RAND.pod" ], @@ -13184,9 +15356,6 @@ our %unified_info = ( "doc/html/man7/bio.html" => [ "doc/man7/bio.pod" ], - "doc/html/man7/crypto.html" => [ - "doc/man7/crypto.pod" - ], "doc/html/man7/ct.html" => [ "doc/man7/ct.pod" ], @@ -13217,9 +15386,6 @@ our %unified_info = ( "doc/html/man7/life_cycle-rand.html" => [ "doc/man7/life_cycle-rand.pod" ], - "doc/html/man7/migration_guide.html" => [ - "doc/man7/migration_guide.pod" - ], "doc/html/man7/openssl-core.h.html" => [ "doc/man7/openssl-core.h.pod" ], @@ -13235,12 +15401,66 @@ our %unified_info = ( "doc/html/man7/openssl-glossary.html" => [ "doc/man7/openssl-glossary.pod" ], + "doc/html/man7/openssl-qlog.html" => [ + "doc/man7/openssl-qlog.pod" + ], + "doc/html/man7/openssl-quic-concurrency.html" => [ + "doc/man7/openssl-quic-concurrency.pod" + ], + "doc/html/man7/openssl-quic.html" => [ + "doc/man7/openssl-quic.pod" + ], "doc/html/man7/openssl-threads.html" => [ "doc/man7/openssl-threads.pod" ], "doc/html/man7/openssl_user_macros.html" => [ "doc/man7/openssl_user_macros.pod" ], + "doc/html/man7/ossl-guide-introduction.html" => [ + "doc/man7/ossl-guide-introduction.pod" + ], + "doc/html/man7/ossl-guide-libcrypto-introduction.html" => [ + "doc/man7/ossl-guide-libcrypto-introduction.pod" + ], + "doc/html/man7/ossl-guide-libraries-introduction.html" => [ + "doc/man7/ossl-guide-libraries-introduction.pod" + ], + "doc/html/man7/ossl-guide-libssl-introduction.html" => [ + "doc/man7/ossl-guide-libssl-introduction.pod" + ], + "doc/html/man7/ossl-guide-migration.html" => [ + "doc/man7/ossl-guide-migration.pod" + ], + "doc/html/man7/ossl-guide-quic-client-block.html" => [ + "doc/man7/ossl-guide-quic-client-block.pod" + ], + "doc/html/man7/ossl-guide-quic-client-non-block.html" => [ + "doc/man7/ossl-guide-quic-client-non-block.pod" + ], + "doc/html/man7/ossl-guide-quic-introduction.html" => [ + "doc/man7/ossl-guide-quic-introduction.pod" + ], + "doc/html/man7/ossl-guide-quic-multi-stream.html" => [ + "doc/man7/ossl-guide-quic-multi-stream.pod" + ], + "doc/html/man7/ossl-guide-quic-server-block.html" => [ + "doc/man7/ossl-guide-quic-server-block.pod" + ], + "doc/html/man7/ossl-guide-quic-server-non-block.html" => [ + "doc/man7/ossl-guide-quic-server-non-block.pod" + ], + "doc/html/man7/ossl-guide-tls-client-block.html" => [ + "doc/man7/ossl-guide-tls-client-block.pod" + ], + "doc/html/man7/ossl-guide-tls-client-non-block.html" => [ + "doc/man7/ossl-guide-tls-client-non-block.pod" + ], + "doc/html/man7/ossl-guide-tls-introduction.html" => [ + "doc/man7/ossl-guide-tls-introduction.pod" + ], + "doc/html/man7/ossl-guide-tls-server-block.html" => [ + "doc/man7/ossl-guide-tls-server-block.pod" + ], "doc/html/man7/ossl_store-file.html" => [ "doc/man7/ossl_store-file.pod" ], @@ -13295,6 +15515,9 @@ our %unified_info = ( "doc/html/man7/provider-signature.html" => [ "doc/man7/provider-signature.pod" ], + "doc/html/man7/provider-skeymgmt.html" => [ + "doc/man7/provider-skeymgmt.pod" + ], "doc/html/man7/provider-storemgmt.html" => [ "doc/man7/provider-storemgmt.pod" ], @@ -13304,9 +15527,6 @@ our %unified_info = ( "doc/html/man7/proxy-certificates.html" => [ "doc/man7/proxy-certificates.pod" ], - "doc/html/man7/ssl.html" => [ - "doc/man7/ssl.pod" - ], "doc/html/man7/x509.html" => [ "doc/man7/x509.pod" ], @@ -13454,6 +15674,9 @@ our %unified_info = ( "doc/man/man1/openssl-sess_id.1" => [ "doc/man1/openssl-sess_id.pod" ], + "doc/man/man1/openssl-skeyutl.1" => [ + "doc/man1/openssl-skeyutl.pod" + ], "doc/man/man1/openssl-smime.1" => [ "doc/man1/openssl-smime.pod" ], @@ -13595,6 +15818,9 @@ our %unified_info = ( "doc/man/man3/BIO_get_ex_new_index.3" => [ "doc/man3/BIO_get_ex_new_index.pod" ], + "doc/man/man3/BIO_get_rpoll_descriptor.3" => [ + "doc/man3/BIO_get_rpoll_descriptor.pod" + ], "doc/man/man3/BIO_meth_new.3" => [ "doc/man3/BIO_meth_new.pod" ], @@ -13631,6 +15857,9 @@ our %unified_info = ( "doc/man/man3/BIO_s_datagram.3" => [ "doc/man3/BIO_s_datagram.pod" ], + "doc/man/man3/BIO_s_dgram_pair.3" => [ + "doc/man3/BIO_s_dgram_pair.pod" + ], "doc/man/man3/BIO_s_fd.3" => [ "doc/man3/BIO_s_fd.pod" ], @@ -13646,6 +15875,9 @@ our %unified_info = ( "doc/man/man3/BIO_s_socket.3" => [ "doc/man3/BIO_s_socket.pod" ], + "doc/man/man3/BIO_sendmmsg.3" => [ + "doc/man3/BIO_sendmmsg.pod" + ], "doc/man/man3/BIO_set_callback.3" => [ "doc/man3/BIO_set_callback.pod" ], @@ -13718,6 +15950,9 @@ our %unified_info = ( "doc/man/man3/BUF_MEM_new.3" => [ "doc/man3/BUF_MEM_new.pod" ], + "doc/man/man3/CMAC_CTX.3" => [ + "doc/man3/CMAC_CTX.pod" + ], "doc/man/man3/CMS_EncryptedData_decrypt.3" => [ "doc/man3/CMS_EncryptedData_decrypt.pod" ], @@ -13784,6 +16019,9 @@ our %unified_info = ( "doc/man/man3/CMS_verify_receipt.3" => [ "doc/man3/CMS_verify_receipt.pod" ], + "doc/man/man3/COMP_CTX_new.3" => [ + "doc/man3/COMP_CTX_new.pod" + ], "doc/man/man3/CONF_modules_free.3" => [ "doc/man3/CONF_modules_free.pod" ], @@ -13883,6 +16121,12 @@ our %unified_info = ( "doc/man/man3/DTLS_set_timer_cb.3" => [ "doc/man3/DTLS_set_timer_cb.pod" ], + "doc/man/man3/DTLSv1_get_timeout.3" => [ + "doc/man3/DTLSv1_get_timeout.pod" + ], + "doc/man/man3/DTLSv1_handle_timeout.3" => [ + "doc/man3/DTLSv1_handle_timeout.pod" + ], "doc/man/man3/DTLSv1_listen.3" => [ "doc/man3/DTLSv1_listen.pod" ], @@ -14021,6 +16265,9 @@ our %unified_info = ( "doc/man/man3/EVP_PKEY_CTX_get0_pkey.3" => [ "doc/man3/EVP_PKEY_CTX_get0_pkey.pod" ], + "doc/man/man3/EVP_PKEY_CTX_get_algor.3" => [ + "doc/man3/EVP_PKEY_CTX_get_algor.pod" + ], "doc/man/man3/EVP_PKEY_CTX_new.3" => [ "doc/man3/EVP_PKEY_CTX_new.pod" ], @@ -14138,6 +16385,12 @@ our %unified_info = ( "doc/man/man3/EVP_SIGNATURE.3" => [ "doc/man3/EVP_SIGNATURE.pod" ], + "doc/man/man3/EVP_SKEY.3" => [ + "doc/man3/EVP_SKEY.pod" + ], + "doc/man/man3/EVP_SKEYMGMT.3" => [ + "doc/man3/EVP_SKEYMGMT.pod" + ], "doc/man/man3/EVP_SealInit.3" => [ "doc/man3/EVP_SealInit.pod" ], @@ -14225,6 +16478,9 @@ our %unified_info = ( "doc/man/man3/EVP_whirlpool.3" => [ "doc/man3/EVP_whirlpool.pod" ], + "doc/man/man3/GENERAL_NAME.3" => [ + "doc/man3/GENERAL_NAME.pod" + ], "doc/man/man3/HMAC.3" => [ "doc/man3/HMAC.pod" ], @@ -14297,9 +16553,15 @@ our %unified_info = ( "doc/man/man3/OPENSSL_load_builtin_modules.3" => [ "doc/man3/OPENSSL_load_builtin_modules.pod" ], + "doc/man/man3/OPENSSL_load_u16_le.3" => [ + "doc/man3/OPENSSL_load_u16_le.pod" + ], "doc/man/man3/OPENSSL_malloc.3" => [ "doc/man3/OPENSSL_malloc.pod" ], + "doc/man/man3/OPENSSL_riscvcap.3" => [ + "doc/man3/OPENSSL_riscvcap.pod" + ], "doc/man/man3/OPENSSL_s390xcap.3" => [ "doc/man3/OPENSSL_s390xcap.pod" ], @@ -14315,12 +16577,18 @@ our %unified_info = ( "doc/man/man3/OSSL_CALLBACK.3" => [ "doc/man3/OSSL_CALLBACK.pod" ], + "doc/man/man3/OSSL_CMP_ATAV_set0.3" => [ + "doc/man3/OSSL_CMP_ATAV_set0.pod" + ], "doc/man/man3/OSSL_CMP_CTX_new.3" => [ "doc/man3/OSSL_CMP_CTX_new.pod" ], "doc/man/man3/OSSL_CMP_HDR_get0_transactionID.3" => [ "doc/man3/OSSL_CMP_HDR_get0_transactionID.pod" ], + "doc/man/man3/OSSL_CMP_ITAV_new_caCerts.3" => [ + "doc/man3/OSSL_CMP_ITAV_new_caCerts.pod" + ], "doc/man/man3/OSSL_CMP_ITAV_set0.3" => [ "doc/man3/OSSL_CMP_ITAV_set0.pod" ], @@ -14390,9 +16658,18 @@ our %unified_info = ( "doc/man/man3/OSSL_ENCODER_to_bio.3" => [ "doc/man3/OSSL_ENCODER_to_bio.pod" ], + "doc/man/man3/OSSL_ERR_STATE_save.3" => [ + "doc/man3/OSSL_ERR_STATE_save.pod" + ], "doc/man/man3/OSSL_ESS_check_signing_certs.3" => [ "doc/man3/OSSL_ESS_check_signing_certs.pod" ], + "doc/man/man3/OSSL_GENERAL_NAMES_print.3" => [ + "doc/man3/OSSL_GENERAL_NAMES_print.pod" + ], + "doc/man/man3/OSSL_HPKE_CTX_new.3" => [ + "doc/man3/OSSL_HPKE_CTX_new.pod" + ], "doc/man/man3/OSSL_HTTP_REQ_CTX.3" => [ "doc/man3/OSSL_HTTP_REQ_CTX.pod" ], @@ -14402,12 +16679,24 @@ our %unified_info = ( "doc/man/man3/OSSL_HTTP_transfer.3" => [ "doc/man3/OSSL_HTTP_transfer.pod" ], + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX.3" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX.pod" + ], + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX_print.3" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX_print.pod" + ], + "doc/man/man3/OSSL_INDICATOR_set_callback.3" => [ + "doc/man3/OSSL_INDICATOR_set_callback.pod" + ], "doc/man/man3/OSSL_ITEM.3" => [ "doc/man3/OSSL_ITEM.pod" ], "doc/man/man3/OSSL_LIB_CTX.3" => [ "doc/man3/OSSL_LIB_CTX.pod" ], + "doc/man/man3/OSSL_LIB_CTX_set_conf_diagnostics.3" => [ + "doc/man3/OSSL_LIB_CTX_set_conf_diagnostics.pod" + ], "doc/man/man3/OSSL_PARAM.3" => [ "doc/man3/OSSL_PARAM.pod" ], @@ -14423,9 +16712,15 @@ our %unified_info = ( "doc/man/man3/OSSL_PARAM_int.3" => [ "doc/man3/OSSL_PARAM_int.pod" ], + "doc/man/man3/OSSL_PARAM_print_to_bio.3" => [ + "doc/man3/OSSL_PARAM_print_to_bio.pod" + ], "doc/man/man3/OSSL_PROVIDER.3" => [ "doc/man3/OSSL_PROVIDER.pod" ], + "doc/man/man3/OSSL_QUIC_client_method.3" => [ + "doc/man3/OSSL_QUIC_client_method.pod" + ], "doc/man/man3/OSSL_SELF_TEST_new.3" => [ "doc/man3/OSSL_SELF_TEST_new.pod" ], @@ -14450,6 +16745,9 @@ our %unified_info = ( "doc/man/man3/OSSL_STORE_open.3" => [ "doc/man3/OSSL_STORE_open.pod" ], + "doc/man/man3/OSSL_sleep.3" => [ + "doc/man3/OSSL_sleep.pod" + ], "doc/man/man3/OSSL_trace_enabled.3" => [ "doc/man3/OSSL_trace_enabled.pod" ], @@ -14465,6 +16763,9 @@ our %unified_info = ( "doc/man/man3/OpenSSL_version.3" => [ "doc/man3/OpenSSL_version.pod" ], + "doc/man/man3/PBMAC1_get1_pbkdf2_param.3" => [ + "doc/man3/PBMAC1_get1_pbkdf2_param.pod" + ], "doc/man/man3/PEM_X509_INFO_read_bio_ex.3" => [ "doc/man3/PEM_X509_INFO_read_bio_ex.pod" ], @@ -14501,6 +16802,9 @@ our %unified_info = ( "doc/man/man3/PKCS12_SAFEBAG_get1_cert.3" => [ "doc/man3/PKCS12_SAFEBAG_get1_cert.pod" ], + "doc/man/man3/PKCS12_SAFEBAG_set0_attrs.3" => [ + "doc/man3/PKCS12_SAFEBAG_set0_attrs.pod" + ], "doc/man/man3/PKCS12_add1_attr_by_NID.3" => [ "doc/man3/PKCS12_add1_attr_by_NID.pod" ], @@ -14774,6 +17078,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set0_CA_list.3" => [ "doc/man3/SSL_CTX_set0_CA_list.pod" ], + "doc/man/man3/SSL_CTX_set1_cert_comp_preference.3" => [ + "doc/man3/SSL_CTX_set1_cert_comp_preference.pod" + ], "doc/man/man3/SSL_CTX_set1_curves.3" => [ "doc/man3/SSL_CTX_set1_curves.pod" ], @@ -14813,6 +17120,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_default_passwd_cb.3" => [ "doc/man3/SSL_CTX_set_default_passwd_cb.pod" ], + "doc/man/man3/SSL_CTX_set_domain_flags.3" => [ + "doc/man3/SSL_CTX_set_domain_flags.pod" + ], "doc/man/man3/SSL_CTX_set_generate_session_id.3" => [ "doc/man3/SSL_CTX_set_generate_session_id.pod" ], @@ -14834,6 +17144,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_msg_callback.3" => [ "doc/man3/SSL_CTX_set_msg_callback.pod" ], + "doc/man/man3/SSL_CTX_set_new_pending_conn_cb.3" => [ + "doc/man3/SSL_CTX_set_new_pending_conn_cb.pod" + ], "doc/man/man3/SSL_CTX_set_num_tickets.3" => [ "doc/man3/SSL_CTX_set_num_tickets.pod" ], @@ -14948,6 +17261,9 @@ our %unified_info = ( "doc/man/man3/SSL_accept.3" => [ "doc/man3/SSL_accept.pod" ], + "doc/man/man3/SSL_accept_stream.3" => [ + "doc/man3/SSL_accept_stream.pod" + ], "doc/man/man3/SSL_alert_type_string.3" => [ "doc/man3/SSL_alert_type_string.pod" ], @@ -14975,9 +17291,21 @@ our %unified_info = ( "doc/man/man3/SSL_free.3" => [ "doc/man3/SSL_free.pod" ], + "doc/man/man3/SSL_get0_connection.3" => [ + "doc/man3/SSL_get0_connection.pod" + ], + "doc/man/man3/SSL_get0_group_name.3" => [ + "doc/man3/SSL_get0_group_name.pod" + ], + "doc/man/man3/SSL_get0_peer_rpk.3" => [ + "doc/man3/SSL_get0_peer_rpk.pod" + ], "doc/man/man3/SSL_get0_peer_scts.3" => [ "doc/man3/SSL_get0_peer_scts.pod" ], + "doc/man/man3/SSL_get1_builtin_sigalgs.3" => [ + "doc/man3/SSL_get1_builtin_sigalgs.pod" + ], "doc/man/man3/SSL_get_SSL_CTX.3" => [ "doc/man3/SSL_get_SSL_CTX.pod" ], @@ -14993,6 +17321,9 @@ our %unified_info = ( "doc/man/man3/SSL_get_client_random.3" => [ "doc/man3/SSL_get_client_random.pod" ], + "doc/man/man3/SSL_get_conn_close_info.3" => [ + "doc/man3/SSL_get_conn_close_info.pod" + ], "doc/man/man3/SSL_get_current_cipher.3" => [ "doc/man3/SSL_get_current_cipher.pod" ], @@ -15002,12 +17333,18 @@ our %unified_info = ( "doc/man/man3/SSL_get_error.3" => [ "doc/man3/SSL_get_error.pod" ], + "doc/man/man3/SSL_get_event_timeout.3" => [ + "doc/man3/SSL_get_event_timeout.pod" + ], "doc/man/man3/SSL_get_extms_support.3" => [ "doc/man3/SSL_get_extms_support.pod" ], "doc/man/man3/SSL_get_fd.3" => [ "doc/man3/SSL_get_fd.pod" ], + "doc/man/man3/SSL_get_handshake_rtt.3" => [ + "doc/man3/SSL_get_handshake_rtt.pod" + ], "doc/man/man3/SSL_get_peer_cert_chain.3" => [ "doc/man3/SSL_get_peer_cert_chain.pod" ], @@ -15026,11 +17363,23 @@ our %unified_info = ( "doc/man/man3/SSL_get_rbio.3" => [ "doc/man3/SSL_get_rbio.pod" ], + "doc/man/man3/SSL_get_rpoll_descriptor.3" => [ + "doc/man3/SSL_get_rpoll_descriptor.pod" + ], "doc/man/man3/SSL_get_session.3" => [ "doc/man3/SSL_get_session.pod" ], - "doc/man/man3/SSL_get_shared_sigalgs.3" => [ - "doc/man3/SSL_get_shared_sigalgs.pod" + "doc/man/man3/SSL_get_shared_sigalgs.3" => [ + "doc/man3/SSL_get_shared_sigalgs.pod" + ], + "doc/man/man3/SSL_get_stream_id.3" => [ + "doc/man3/SSL_get_stream_id.pod" + ], + "doc/man/man3/SSL_get_stream_read_state.3" => [ + "doc/man3/SSL_get_stream_read_state.pod" + ], + "doc/man/man3/SSL_get_value_uint.3" => [ + "doc/man3/SSL_get_value_uint.pod" ], "doc/man/man3/SSL_get_verify_result.3" => [ "doc/man3/SSL_get_verify_result.pod" @@ -15041,9 +17390,15 @@ our %unified_info = ( "doc/man/man3/SSL_group_to_name.3" => [ "doc/man3/SSL_group_to_name.pod" ], + "doc/man/man3/SSL_handle_events.3" => [ + "doc/man3/SSL_handle_events.pod" + ], "doc/man/man3/SSL_in_init.3" => [ "doc/man3/SSL_in_init.pod" ], + "doc/man/man3/SSL_inject_net_dgram.3" => [ + "doc/man3/SSL_inject_net_dgram.pod" + ], "doc/man/man3/SSL_key_update.3" => [ "doc/man3/SSL_key_update.pod" ], @@ -15056,9 +17411,21 @@ our %unified_info = ( "doc/man/man3/SSL_new.3" => [ "doc/man3/SSL_new.pod" ], + "doc/man/man3/SSL_new_domain.3" => [ + "doc/man3/SSL_new_domain.pod" + ], + "doc/man/man3/SSL_new_listener.3" => [ + "doc/man3/SSL_new_listener.pod" + ], + "doc/man/man3/SSL_new_stream.3" => [ + "doc/man3/SSL_new_stream.pod" + ], "doc/man/man3/SSL_pending.3" => [ "doc/man3/SSL_pending.pod" ], + "doc/man/man3/SSL_poll.3" => [ + "doc/man3/SSL_poll.pod" + ], "doc/man/man3/SSL_read.3" => [ "doc/man3/SSL_read.pod" ], @@ -15074,24 +17441,45 @@ our %unified_info = ( "doc/man/man3/SSL_set1_host.3" => [ "doc/man3/SSL_set1_host.pod" ], + "doc/man/man3/SSL_set1_initial_peer_addr.3" => [ + "doc/man3/SSL_set1_initial_peer_addr.pod" + ], + "doc/man/man3/SSL_set1_server_cert_type.3" => [ + "doc/man3/SSL_set1_server_cert_type.pod" + ], "doc/man/man3/SSL_set_async_callback.3" => [ "doc/man3/SSL_set_async_callback.pod" ], "doc/man/man3/SSL_set_bio.3" => [ "doc/man3/SSL_set_bio.pod" ], + "doc/man/man3/SSL_set_blocking_mode.3" => [ + "doc/man3/SSL_set_blocking_mode.pod" + ], "doc/man/man3/SSL_set_connect_state.3" => [ "doc/man3/SSL_set_connect_state.pod" ], + "doc/man/man3/SSL_set_default_stream_mode.3" => [ + "doc/man3/SSL_set_default_stream_mode.pod" + ], "doc/man/man3/SSL_set_fd.3" => [ "doc/man3/SSL_set_fd.pod" ], + "doc/man/man3/SSL_set_incoming_stream_policy.3" => [ + "doc/man3/SSL_set_incoming_stream_policy.pod" + ], + "doc/man/man3/SSL_set_quic_tls_cbs.3" => [ + "doc/man3/SSL_set_quic_tls_cbs.pod" + ], "doc/man/man3/SSL_set_retry_verify.3" => [ "doc/man3/SSL_set_retry_verify.pod" ], "doc/man/man3/SSL_set_session.3" => [ "doc/man3/SSL_set_session.pod" ], + "doc/man/man3/SSL_set_session_secret_cb.3" => [ + "doc/man3/SSL_set_session_secret_cb.pod" + ], "doc/man/man3/SSL_set_shutdown.3" => [ "doc/man3/SSL_set_shutdown.pod" ], @@ -15104,6 +17492,12 @@ our %unified_info = ( "doc/man/man3/SSL_state_string.3" => [ "doc/man3/SSL_state_string.pod" ], + "doc/man/man3/SSL_stream_conclude.3" => [ + "doc/man3/SSL_stream_conclude.pod" + ], + "doc/man/man3/SSL_stream_reset.3" => [ + "doc/man3/SSL_stream_reset.pod" + ], "doc/man/man3/SSL_want.3" => [ "doc/man3/SSL_want.pod" ], @@ -15113,8 +17507,8 @@ our %unified_info = ( "doc/man/man3/TS_RESP_CTX_new.3" => [ "doc/man3/TS_RESP_CTX_new.pod" ], - "doc/man/man3/TS_VERIFY_CTX_set_certs.3" => [ - "doc/man3/TS_VERIFY_CTX_set_certs.pod" + "doc/man/man3/TS_VERIFY_CTX.3" => [ + "doc/man3/TS_VERIFY_CTX.pod" ], "doc/man/man3/UI_STRING.3" => [ "doc/man3/UI_STRING.pod" @@ -15134,6 +17528,21 @@ our %unified_info = ( "doc/man/man3/X509V3_set_ctx.3" => [ "doc/man3/X509V3_set_ctx.pod" ], + "doc/man/man3/X509_ACERT_add1_attr.3" => [ + "doc/man3/X509_ACERT_add1_attr.pod" + ], + "doc/man/man3/X509_ACERT_add_attr_nconf.3" => [ + "doc/man3/X509_ACERT_add_attr_nconf.pod" + ], + "doc/man/man3/X509_ACERT_get0_holder_baseCertId.3" => [ + "doc/man3/X509_ACERT_get0_holder_baseCertId.pod" + ], + "doc/man/man3/X509_ACERT_get_attr.3" => [ + "doc/man3/X509_ACERT_get_attr.pod" + ], + "doc/man/man3/X509_ACERT_print_ex.3" => [ + "doc/man3/X509_ACERT_print_ex.pod" + ], "doc/man/man3/X509_ALGOR_dup.3" => [ "doc/man3/X509_ALGOR_dup.pod" ], @@ -15182,6 +17591,9 @@ our %unified_info = ( "doc/man/man3/X509_SIG_get0.3" => [ "doc/man3/X509_SIG_get0.pod" ], + "doc/man/man3/X509_STORE_CTX_get_by_subject.3" => [ + "doc/man3/X509_STORE_CTX_get_by_subject.pod" + ], "doc/man/man3/X509_STORE_CTX_get_error.3" => [ "doc/man3/X509_STORE_CTX_get_error.pod" ], @@ -15248,6 +17660,9 @@ our %unified_info = ( "doc/man/man3/X509_get0_uids.3" => [ "doc/man3/X509_get0_uids.pod" ], + "doc/man/man3/X509_get_default_cert_file.3" => [ + "doc/man3/X509_get_default_cert_file.pod" + ], "doc/man/man3/X509_get_extension_flags.3" => [ "doc/man3/X509_get_extension_flags.pod" ], @@ -15371,9 +17786,15 @@ our %unified_info = ( "doc/man/man7/EVP_CIPHER-SM4.7" => [ "doc/man7/EVP_CIPHER-SM4.pod" ], + "doc/man/man7/EVP_KDF-ARGON2.7" => [ + "doc/man7/EVP_KDF-ARGON2.pod" + ], "doc/man/man7/EVP_KDF-HKDF.7" => [ "doc/man7/EVP_KDF-HKDF.pod" ], + "doc/man/man7/EVP_KDF-HMAC-DRBG.7" => [ + "doc/man7/EVP_KDF-HMAC-DRBG.pod" + ], "doc/man/man7/EVP_KDF-KB.7" => [ "doc/man7/EVP_KDF-KB.pod" ], @@ -15389,6 +17810,9 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-PKCS12KDF.7" => [ "doc/man7/EVP_KDF-PKCS12KDF.pod" ], + "doc/man/man7/EVP_KDF-PVKKDF.7" => [ + "doc/man7/EVP_KDF-PVKKDF.pod" + ], "doc/man/man7/EVP_KDF-SCRYPT.7" => [ "doc/man7/EVP_KDF-SCRYPT.pod" ], @@ -15413,9 +17837,18 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-X963.7" => [ "doc/man7/EVP_KDF-X963.pod" ], + "doc/man/man7/EVP_KEM-EC.7" => [ + "doc/man7/EVP_KEM-EC.pod" + ], + "doc/man/man7/EVP_KEM-ML-KEM.7" => [ + "doc/man7/EVP_KEM-ML-KEM.pod" + ], "doc/man/man7/EVP_KEM-RSA.7" => [ "doc/man7/EVP_KEM-RSA.pod" ], + "doc/man/man7/EVP_KEM-X25519.7" => [ + "doc/man7/EVP_KEM-X25519.pod" + ], "doc/man/man7/EVP_KEYEXCH-DH.7" => [ "doc/man7/EVP_KEYEXCH-DH.pod" ], @@ -15449,6 +17882,9 @@ our %unified_info = ( "doc/man/man7/EVP_MD-BLAKE2.7" => [ "doc/man7/EVP_MD-BLAKE2.pod" ], + "doc/man/man7/EVP_MD-KECCAK.7" => [ + "doc/man7/EVP_MD-KECCAK.pod" + ], "doc/man/man7/EVP_MD-MD2.7" => [ "doc/man7/EVP_MD-MD2.pod" ], @@ -15506,15 +17942,27 @@ our %unified_info = ( "doc/man/man7/EVP_PKEY-HMAC.7" => [ "doc/man7/EVP_PKEY-HMAC.pod" ], + "doc/man/man7/EVP_PKEY-ML-DSA.7" => [ + "doc/man7/EVP_PKEY-ML-DSA.pod" + ], + "doc/man/man7/EVP_PKEY-ML-KEM.7" => [ + "doc/man7/EVP_PKEY-ML-KEM.pod" + ], "doc/man/man7/EVP_PKEY-RSA.7" => [ "doc/man7/EVP_PKEY-RSA.pod" ], + "doc/man/man7/EVP_PKEY-SLH-DSA.7" => [ + "doc/man7/EVP_PKEY-SLH-DSA.pod" + ], "doc/man/man7/EVP_PKEY-SM2.7" => [ "doc/man7/EVP_PKEY-SM2.pod" ], "doc/man/man7/EVP_PKEY-X25519.7" => [ "doc/man7/EVP_PKEY-X25519.pod" ], + "doc/man/man7/EVP_RAND-CRNG-TEST.7" => [ + "doc/man7/EVP_RAND-CRNG-TEST.pod" + ], "doc/man/man7/EVP_RAND-CTR-DRBG.7" => [ "doc/man7/EVP_RAND-CTR-DRBG.pod" ], @@ -15524,6 +17972,9 @@ our %unified_info = ( "doc/man/man7/EVP_RAND-HMAC-DRBG.7" => [ "doc/man7/EVP_RAND-HMAC-DRBG.pod" ], + "doc/man/man7/EVP_RAND-JITTER.7" => [ + "doc/man7/EVP_RAND-JITTER.pod" + ], "doc/man/man7/EVP_RAND-SEED-SRC.7" => [ "doc/man7/EVP_RAND-SEED-SRC.pod" ], @@ -15545,9 +17996,15 @@ our %unified_info = ( "doc/man/man7/EVP_SIGNATURE-HMAC.7" => [ "doc/man7/EVP_SIGNATURE-HMAC.pod" ], + "doc/man/man7/EVP_SIGNATURE-ML-DSA.7" => [ + "doc/man7/EVP_SIGNATURE-ML-DSA.pod" + ], "doc/man/man7/EVP_SIGNATURE-RSA.7" => [ "doc/man7/EVP_SIGNATURE-RSA.pod" ], + "doc/man/man7/EVP_SIGNATURE-SLH-DSA.7" => [ + "doc/man7/EVP_SIGNATURE-SLH-DSA.pod" + ], "doc/man/man7/OSSL_PROVIDER-FIPS.7" => [ "doc/man7/OSSL_PROVIDER-FIPS.pod" ], @@ -15563,6 +18020,9 @@ our %unified_info = ( "doc/man/man7/OSSL_PROVIDER-null.7" => [ "doc/man7/OSSL_PROVIDER-null.pod" ], + "doc/man/man7/OSSL_STORE-winstore.7" => [ + "doc/man7/OSSL_STORE-winstore.pod" + ], "doc/man/man7/RAND.7" => [ "doc/man7/RAND.pod" ], @@ -15575,9 +18035,6 @@ our %unified_info = ( "doc/man/man7/bio.7" => [ "doc/man7/bio.pod" ], - "doc/man/man7/crypto.7" => [ - "doc/man7/crypto.pod" - ], "doc/man/man7/ct.7" => [ "doc/man7/ct.pod" ], @@ -15608,9 +18065,6 @@ our %unified_info = ( "doc/man/man7/life_cycle-rand.7" => [ "doc/man7/life_cycle-rand.pod" ], - "doc/man/man7/migration_guide.7" => [ - "doc/man7/migration_guide.pod" - ], "doc/man/man7/openssl-core.h.7" => [ "doc/man7/openssl-core.h.pod" ], @@ -15626,12 +18080,66 @@ our %unified_info = ( "doc/man/man7/openssl-glossary.7" => [ "doc/man7/openssl-glossary.pod" ], + "doc/man/man7/openssl-qlog.7" => [ + "doc/man7/openssl-qlog.pod" + ], + "doc/man/man7/openssl-quic-concurrency.7" => [ + "doc/man7/openssl-quic-concurrency.pod" + ], + "doc/man/man7/openssl-quic.7" => [ + "doc/man7/openssl-quic.pod" + ], "doc/man/man7/openssl-threads.7" => [ "doc/man7/openssl-threads.pod" ], "doc/man/man7/openssl_user_macros.7" => [ "doc/man7/openssl_user_macros.pod" ], + "doc/man/man7/ossl-guide-introduction.7" => [ + "doc/man7/ossl-guide-introduction.pod" + ], + "doc/man/man7/ossl-guide-libcrypto-introduction.7" => [ + "doc/man7/ossl-guide-libcrypto-introduction.pod" + ], + "doc/man/man7/ossl-guide-libraries-introduction.7" => [ + "doc/man7/ossl-guide-libraries-introduction.pod" + ], + "doc/man/man7/ossl-guide-libssl-introduction.7" => [ + "doc/man7/ossl-guide-libssl-introduction.pod" + ], + "doc/man/man7/ossl-guide-migration.7" => [ + "doc/man7/ossl-guide-migration.pod" + ], + "doc/man/man7/ossl-guide-quic-client-block.7" => [ + "doc/man7/ossl-guide-quic-client-block.pod" + ], + "doc/man/man7/ossl-guide-quic-client-non-block.7" => [ + "doc/man7/ossl-guide-quic-client-non-block.pod" + ], + "doc/man/man7/ossl-guide-quic-introduction.7" => [ + "doc/man7/ossl-guide-quic-introduction.pod" + ], + "doc/man/man7/ossl-guide-quic-multi-stream.7" => [ + "doc/man7/ossl-guide-quic-multi-stream.pod" + ], + "doc/man/man7/ossl-guide-quic-server-block.7" => [ + "doc/man7/ossl-guide-quic-server-block.pod" + ], + "doc/man/man7/ossl-guide-quic-server-non-block.7" => [ + "doc/man7/ossl-guide-quic-server-non-block.pod" + ], + "doc/man/man7/ossl-guide-tls-client-block.7" => [ + "doc/man7/ossl-guide-tls-client-block.pod" + ], + "doc/man/man7/ossl-guide-tls-client-non-block.7" => [ + "doc/man7/ossl-guide-tls-client-non-block.pod" + ], + "doc/man/man7/ossl-guide-tls-introduction.7" => [ + "doc/man7/ossl-guide-tls-introduction.pod" + ], + "doc/man/man7/ossl-guide-tls-server-block.7" => [ + "doc/man7/ossl-guide-tls-server-block.pod" + ], "doc/man/man7/ossl_store-file.7" => [ "doc/man7/ossl_store-file.pod" ], @@ -15686,6 +18194,9 @@ our %unified_info = ( "doc/man/man7/provider-signature.7" => [ "doc/man7/provider-signature.pod" ], + "doc/man/man7/provider-skeymgmt.7" => [ + "doc/man7/provider-skeymgmt.pod" + ], "doc/man/man7/provider-storemgmt.7" => [ "doc/man7/provider-storemgmt.pod" ], @@ -15695,9 +18206,6 @@ our %unified_info = ( "doc/man/man7/proxy-certificates.7" => [ "doc/man7/proxy-certificates.pod" ], - "doc/man/man7/ssl.7" => [ - "doc/man7/ssl.pod" - ], "doc/man/man7/x509.7" => [ "doc/man7/x509.pod" ], @@ -15833,6 +18341,9 @@ our %unified_info = ( "doc/man1/openssl-sess_id.pod" => [ "doc/man1/openssl-sess_id.pod.in" ], + "doc/man1/openssl-skeyutl.pod" => [ + "doc/man1/openssl-skeyutl.pod.in" + ], "doc/man1/openssl-smime.pod" => [ "doc/man1/openssl-smime.pod.in" ], @@ -15869,12 +18380,30 @@ our %unified_info = ( "engines/e_padlock-x86_64.s" => [ "engines/asm/e_padlock-x86_64.pl" ], + "exporters/OpenSSLConfig.cmake" => [ + "exporters/cmake/OpenSSLConfig.cmake.in" + ], + "exporters/OpenSSLConfigVersion.cmake" => [ + "exporters/cmake/OpenSSLConfigVersion.cmake.in" + ], + "exporters/libcrypto.pc" => [ + "exporters/pkg-config/libcrypto.pc.in" + ], + "exporters/libssl.pc" => [ + "exporters/pkg-config/libssl.pc.in" + ], + "exporters/openssl.pc" => [ + "exporters/pkg-config/openssl.pc.in" + ], "include/crypto/bn_conf.h" => [ "include/crypto/bn_conf.h.in" ], "include/crypto/dso_conf.h" => [ "include/crypto/dso_conf.h.in" ], + "include/internal/param_names.h" => [ + "include/internal/param_names.h.in" + ], "include/openssl/asn1.h" => [ "include/openssl/asn1.h.in" ], @@ -15890,12 +18419,18 @@ our %unified_info = ( "include/openssl/cms.h" => [ "include/openssl/cms.h.in" ], + "include/openssl/comp.h" => [ + "include/openssl/comp.h.in" + ], "include/openssl/conf.h" => [ "include/openssl/conf.h.in" ], "include/openssl/configuration.h" => [ "include/openssl/configuration.h.in" ], + "include/openssl/core_names.h" => [ + "include/openssl/core_names.h.in" + ], "include/openssl/crmf.h" => [ "include/openssl/crmf.h.in" ], @@ -15944,20 +18479,47 @@ our %unified_info = ( "include/openssl/x509.h" => [ "include/openssl/x509.h.in" ], + "include/openssl/x509_acert.h" => [ + "include/openssl/x509_acert.h.in" + ], "include/openssl/x509_vfy.h" => [ "include/openssl/x509_vfy.h.in" ], "include/openssl/x509v3.h" => [ "include/openssl/x509v3.h.in" ], + "installdata.pm" => [ + "util/mkinstallvars.pl", + "\"PREFIX=\$(INSTALLTOP)\"", + "BINDIR=bin", + "\"LIBDIR=\$(LIBDIR)\"", + "\"libdir=\$(libdir)\"", + "INCLUDEDIR=include", + "APPLINKDIR=include/openssl", + "\"ENGINESDIR=\$(ENGINESDIR)\"", + "\"MODULESDIR=\$(MODULESDIR)\"", + "\"PKGCONFIGDIR=\$(PKGCONFIGDIR)\"", + "\"CMAKECONFIGDIR=\$(CMAKECONFIGDIR)\"", + "\"LDLIBS=\$(LIB_EX_LIBS)\"", + "\"VERSION=\$(VERSION)\"" + ], "libcrypto.ld" => [ "util/libcrypto.num", "libcrypto" ], + "libcrypto.pc" => [ + "exporters/pkg-config/libcrypto.pc.in" + ], "libssl.ld" => [ "util/libssl.num", "libssl" ], + "libssl.pc" => [ + "exporters/pkg-config/libssl.pc.in" + ], + "openssl.pc" => [ + "exporters/pkg-config/openssl.pc.in" + ], "providers/common/der/der_digests_gen.c" => [ "providers/common/der/der_digests_gen.c.in" ], @@ -15970,9 +18532,15 @@ our %unified_info = ( "providers/common/der/der_ecx_gen.c" => [ "providers/common/der/der_ecx_gen.c.in" ], + "providers/common/der/der_ml_dsa_gen.c" => [ + "providers/common/der/der_ml_dsa_gen.c.in" + ], "providers/common/der/der_rsa_gen.c" => [ "providers/common/der/der_rsa_gen.c.in" ], + "providers/common/der/der_slh_dsa_gen.c" => [ + "providers/common/der/der_slh_dsa_gen.c.in" + ], "providers/common/der/der_sm2_gen.c" => [ "providers/common/der/der_sm2_gen.c.in" ], @@ -15991,9 +18559,15 @@ our %unified_info = ( "providers/common/include/prov/der_ecx.h" => [ "providers/common/include/prov/der_ecx.h.in" ], + "providers/common/include/prov/der_ml_dsa.h" => [ + "providers/common/include/prov/der_ml_dsa.h.in" + ], "providers/common/include/prov/der_rsa.h" => [ "providers/common/include/prov/der_rsa.h.in" ], + "providers/common/include/prov/der_slh_dsa.h" => [ + "providers/common/include/prov/der_slh_dsa.h.in" + ], "providers/common/include/prov/der_sm2.h" => [ "providers/common/include/prov/der_sm2.h.in" ], @@ -16035,6 +18609,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "buffer" ], + "test/buildtest_byteorder.c" => [ + "test/generate_buildtest.pl", + "byteorder" + ], "test/buildtest_camellia.c" => [ "test/generate_buildtest.pl", "camellia" @@ -16067,10 +18645,6 @@ our %unified_info = ( "test/generate_buildtest.pl", "core_dispatch" ], - "test/buildtest_core_names.c" => [ - "test/generate_buildtest.pl", - "core_names" - ], "test/buildtest_core_object.c" => [ "test/generate_buildtest.pl", "core_object" @@ -16103,6 +18677,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "e_os2" ], + "test/buildtest_e_ostime.c" => [ + "test/generate_buildtest.pl", + "e_ostime" + ], "test/buildtest_ebcdic.c" => [ "test/generate_buildtest.pl", "ebcdic" @@ -16139,6 +18717,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "hmac" ], + "test/buildtest_hpke.c" => [ + "test/generate_buildtest.pl", + "hpke" + ], "test/buildtest_http.c" => [ "test/generate_buildtest.pl", "http" @@ -16147,6 +18729,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "idea" ], + "test/buildtest_indicator.c" => [ + "test/generate_buildtest.pl", + "indicator" + ], "test/buildtest_kdf.c" => [ "test/generate_buildtest.pl", "kdf" @@ -16167,6 +18753,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "mdc2" ], + "test/buildtest_ml_kem.c" => [ + "test/generate_buildtest.pl", + "ml_kem" + ], "test/buildtest_modes.c" => [ "test/generate_buildtest.pl", "modes" @@ -16207,6 +18797,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "provider" ], + "test/buildtest_quic.c" => [ + "test/generate_buildtest.pl", + "quic" + ], "test/buildtest_rand.c" => [ "test/generate_buildtest.pl", "rand" @@ -16263,6 +18857,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "symhacks" ], + "test/buildtest_thread.c" => [ + "test/generate_buildtest.pl", + "thread" + ], "test/buildtest_tls1.c" => [ "test/generate_buildtest.pl", "tls1" @@ -16343,6 +18941,7 @@ our %unified_info = ( "doc/html/man1/openssl-s_server.html", "doc/html/man1/openssl-s_time.html", "doc/html/man1/openssl-sess_id.html", + "doc/html/man1/openssl-skeyutl.html", "doc/html/man1/openssl-smime.html", "doc/html/man1/openssl-speed.html", "doc/html/man1/openssl-spkac.html", @@ -16392,6 +18991,7 @@ our %unified_info = ( "doc/html/man3/BIO_find_type.html", "doc/html/man3/BIO_get_data.html", "doc/html/man3/BIO_get_ex_new_index.html", + "doc/html/man3/BIO_get_rpoll_descriptor.html", "doc/html/man3/BIO_meth_new.html", "doc/html/man3/BIO_new.html", "doc/html/man3/BIO_new_CMS.html", @@ -16404,11 +19004,13 @@ our %unified_info = ( "doc/html/man3/BIO_s_connect.html", "doc/html/man3/BIO_s_core.html", "doc/html/man3/BIO_s_datagram.html", + "doc/html/man3/BIO_s_dgram_pair.html", "doc/html/man3/BIO_s_fd.html", "doc/html/man3/BIO_s_file.html", "doc/html/man3/BIO_s_mem.html", "doc/html/man3/BIO_s_null.html", "doc/html/man3/BIO_s_socket.html", + "doc/html/man3/BIO_sendmmsg.html", "doc/html/man3/BIO_set_callback.html", "doc/html/man3/BIO_should_retry.html", "doc/html/man3/BIO_socket_wait.html", @@ -16433,6 +19035,7 @@ our %unified_info = ( "doc/html/man3/BN_swap.html", "doc/html/man3/BN_zero.html", "doc/html/man3/BUF_MEM_new.html", + "doc/html/man3/CMAC_CTX.html", "doc/html/man3/CMS_EncryptedData_decrypt.html", "doc/html/man3/CMS_EncryptedData_encrypt.html", "doc/html/man3/CMS_EnvelopedData_create.html", @@ -16455,6 +19058,7 @@ our %unified_info = ( "doc/html/man3/CMS_uncompress.html", "doc/html/man3/CMS_verify.html", "doc/html/man3/CMS_verify_receipt.html", + "doc/html/man3/COMP_CTX_new.html", "doc/html/man3/CONF_modules_free.html", "doc/html/man3/CONF_modules_load_file.html", "doc/html/man3/CRYPTO_THREAD_run_once.html", @@ -16488,6 +19092,8 @@ our %unified_info = ( "doc/html/man3/DSA_size.html", "doc/html/man3/DTLS_get_data_mtu.html", "doc/html/man3/DTLS_set_timer_cb.html", + "doc/html/man3/DTLSv1_get_timeout.html", + "doc/html/man3/DTLSv1_handle_timeout.html", "doc/html/man3/DTLSv1_listen.html", "doc/html/man3/ECDSA_SIG_new.html", "doc/html/man3/ECDSA_sign.html", @@ -16534,6 +19140,7 @@ our %unified_info = ( "doc/html/man3/EVP_PKEY_CTX_ctrl.html", "doc/html/man3/EVP_PKEY_CTX_get0_libctx.html", "doc/html/man3/EVP_PKEY_CTX_get0_pkey.html", + "doc/html/man3/EVP_PKEY_CTX_get_algor.html", "doc/html/man3/EVP_PKEY_CTX_new.html", "doc/html/man3/EVP_PKEY_CTX_set1_pbe_pass.html", "doc/html/man3/EVP_PKEY_CTX_set_hkdf_md.html", @@ -16573,6 +19180,8 @@ our %unified_info = ( "doc/html/man3/EVP_PKEY_verify_recover.html", "doc/html/man3/EVP_RAND.html", "doc/html/man3/EVP_SIGNATURE.html", + "doc/html/man3/EVP_SKEY.html", + "doc/html/man3/EVP_SKEYMGMT.html", "doc/html/man3/EVP_SealInit.html", "doc/html/man3/EVP_SignInit.html", "doc/html/man3/EVP_VerifyInit.html", @@ -16602,6 +19211,7 @@ our %unified_info = ( "doc/html/man3/EVP_sm3.html", "doc/html/man3/EVP_sm4_cbc.html", "doc/html/man3/EVP_whirlpool.html", + "doc/html/man3/GENERAL_NAME.html", "doc/html/man3/HMAC.html", "doc/html/man3/MD5.html", "doc/html/man3/MDC2_Init.html", @@ -16626,14 +19236,18 @@ our %unified_info = ( "doc/html/man3/OPENSSL_init_ssl.html", "doc/html/man3/OPENSSL_instrument_bus.html", "doc/html/man3/OPENSSL_load_builtin_modules.html", + "doc/html/man3/OPENSSL_load_u16_le.html", "doc/html/man3/OPENSSL_malloc.html", + "doc/html/man3/OPENSSL_riscvcap.html", "doc/html/man3/OPENSSL_s390xcap.html", "doc/html/man3/OPENSSL_secure_malloc.html", "doc/html/man3/OPENSSL_strcasecmp.html", "doc/html/man3/OSSL_ALGORITHM.html", "doc/html/man3/OSSL_CALLBACK.html", + "doc/html/man3/OSSL_CMP_ATAV_set0.html", "doc/html/man3/OSSL_CMP_CTX_new.html", "doc/html/man3/OSSL_CMP_HDR_get0_transactionID.html", + "doc/html/man3/OSSL_CMP_ITAV_new_caCerts.html", "doc/html/man3/OSSL_CMP_ITAV_set0.html", "doc/html/man3/OSSL_CMP_MSG_get0_header.html", "doc/html/man3/OSSL_CMP_MSG_http_perform.html", @@ -16657,18 +19271,27 @@ our %unified_info = ( "doc/html/man3/OSSL_ENCODER_CTX.html", "doc/html/man3/OSSL_ENCODER_CTX_new_for_pkey.html", "doc/html/man3/OSSL_ENCODER_to_bio.html", + "doc/html/man3/OSSL_ERR_STATE_save.html", "doc/html/man3/OSSL_ESS_check_signing_certs.html", + "doc/html/man3/OSSL_GENERAL_NAMES_print.html", + "doc/html/man3/OSSL_HPKE_CTX_new.html", "doc/html/man3/OSSL_HTTP_REQ_CTX.html", "doc/html/man3/OSSL_HTTP_parse_url.html", "doc/html/man3/OSSL_HTTP_transfer.html", + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX.html", + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX_print.html", + "doc/html/man3/OSSL_INDICATOR_set_callback.html", "doc/html/man3/OSSL_ITEM.html", "doc/html/man3/OSSL_LIB_CTX.html", + "doc/html/man3/OSSL_LIB_CTX_set_conf_diagnostics.html", "doc/html/man3/OSSL_PARAM.html", "doc/html/man3/OSSL_PARAM_BLD.html", "doc/html/man3/OSSL_PARAM_allocate_from_text.html", "doc/html/man3/OSSL_PARAM_dup.html", "doc/html/man3/OSSL_PARAM_int.html", + "doc/html/man3/OSSL_PARAM_print_to_bio.html", "doc/html/man3/OSSL_PROVIDER.html", + "doc/html/man3/OSSL_QUIC_client_method.html", "doc/html/man3/OSSL_SELF_TEST_new.html", "doc/html/man3/OSSL_SELF_TEST_set_callback.html", "doc/html/man3/OSSL_STORE_INFO.html", @@ -16677,11 +19300,13 @@ our %unified_info = ( "doc/html/man3/OSSL_STORE_attach.html", "doc/html/man3/OSSL_STORE_expect.html", "doc/html/man3/OSSL_STORE_open.html", + "doc/html/man3/OSSL_sleep.html", "doc/html/man3/OSSL_trace_enabled.html", "doc/html/man3/OSSL_trace_get_category_num.html", "doc/html/man3/OSSL_trace_set_channel.html", "doc/html/man3/OpenSSL_add_all_algorithms.html", "doc/html/man3/OpenSSL_version.html", + "doc/html/man3/PBMAC1_get1_pbkdf2_param.html", "doc/html/man3/PEM_X509_INFO_read_bio_ex.html", "doc/html/man3/PEM_bytes_read_bio.html", "doc/html/man3/PEM_read.html", @@ -16694,6 +19319,7 @@ our %unified_info = ( "doc/html/man3/PKCS12_SAFEBAG_create_cert.html", "doc/html/man3/PKCS12_SAFEBAG_get0_attrs.html", "doc/html/man3/PKCS12_SAFEBAG_get1_cert.html", + "doc/html/man3/PKCS12_SAFEBAG_set0_attrs.html", "doc/html/man3/PKCS12_add1_attr_by_NID.html", "doc/html/man3/PKCS12_add_CSPName_asc.html", "doc/html/man3/PKCS12_add_cert.html", @@ -16785,6 +19411,7 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_sess_set_get_cb.html", "doc/html/man3/SSL_CTX_sessions.html", "doc/html/man3/SSL_CTX_set0_CA_list.html", + "doc/html/man3/SSL_CTX_set1_cert_comp_preference.html", "doc/html/man3/SSL_CTX_set1_curves.html", "doc/html/man3/SSL_CTX_set1_sigalgs.html", "doc/html/man3/SSL_CTX_set1_verify_cert_store.html", @@ -16798,6 +19425,7 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_ct_validation_callback.html", "doc/html/man3/SSL_CTX_set_ctlog_list_file.html", "doc/html/man3/SSL_CTX_set_default_passwd_cb.html", + "doc/html/man3/SSL_CTX_set_domain_flags.html", "doc/html/man3/SSL_CTX_set_generate_session_id.html", "doc/html/man3/SSL_CTX_set_info_callback.html", "doc/html/man3/SSL_CTX_set_keylog_callback.html", @@ -16805,6 +19433,7 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_min_proto_version.html", "doc/html/man3/SSL_CTX_set_mode.html", "doc/html/man3/SSL_CTX_set_msg_callback.html", + "doc/html/man3/SSL_CTX_set_new_pending_conn_cb.html", "doc/html/man3/SSL_CTX_set_num_tickets.html", "doc/html/man3/SSL_CTX_set_options.html", "doc/html/man3/SSL_CTX_set_psk_client_callback.html", @@ -16843,6 +19472,7 @@ our %unified_info = ( "doc/html/man3/SSL_SESSION_print.html", "doc/html/man3/SSL_SESSION_set1_id.html", "doc/html/man3/SSL_accept.html", + "doc/html/man3/SSL_accept_stream.html", "doc/html/man3/SSL_alert_type_string.html", "doc/html/man3/SSL_alloc_buffers.html", "doc/html/man3/SSL_check_chain.html", @@ -16852,59 +19482,90 @@ our %unified_info = ( "doc/html/man3/SSL_export_keying_material.html", "doc/html/man3/SSL_extension_supported.html", "doc/html/man3/SSL_free.html", + "doc/html/man3/SSL_get0_connection.html", + "doc/html/man3/SSL_get0_group_name.html", + "doc/html/man3/SSL_get0_peer_rpk.html", "doc/html/man3/SSL_get0_peer_scts.html", + "doc/html/man3/SSL_get1_builtin_sigalgs.html", "doc/html/man3/SSL_get_SSL_CTX.html", "doc/html/man3/SSL_get_all_async_fds.html", "doc/html/man3/SSL_get_certificate.html", "doc/html/man3/SSL_get_ciphers.html", "doc/html/man3/SSL_get_client_random.html", + "doc/html/man3/SSL_get_conn_close_info.html", "doc/html/man3/SSL_get_current_cipher.html", "doc/html/man3/SSL_get_default_timeout.html", "doc/html/man3/SSL_get_error.html", + "doc/html/man3/SSL_get_event_timeout.html", "doc/html/man3/SSL_get_extms_support.html", "doc/html/man3/SSL_get_fd.html", + "doc/html/man3/SSL_get_handshake_rtt.html", "doc/html/man3/SSL_get_peer_cert_chain.html", "doc/html/man3/SSL_get_peer_certificate.html", "doc/html/man3/SSL_get_peer_signature_nid.html", "doc/html/man3/SSL_get_peer_tmp_key.html", "doc/html/man3/SSL_get_psk_identity.html", "doc/html/man3/SSL_get_rbio.html", + "doc/html/man3/SSL_get_rpoll_descriptor.html", "doc/html/man3/SSL_get_session.html", "doc/html/man3/SSL_get_shared_sigalgs.html", + "doc/html/man3/SSL_get_stream_id.html", + "doc/html/man3/SSL_get_stream_read_state.html", + "doc/html/man3/SSL_get_value_uint.html", "doc/html/man3/SSL_get_verify_result.html", "doc/html/man3/SSL_get_version.html", "doc/html/man3/SSL_group_to_name.html", + "doc/html/man3/SSL_handle_events.html", "doc/html/man3/SSL_in_init.html", + "doc/html/man3/SSL_inject_net_dgram.html", "doc/html/man3/SSL_key_update.html", "doc/html/man3/SSL_library_init.html", "doc/html/man3/SSL_load_client_CA_file.html", "doc/html/man3/SSL_new.html", + "doc/html/man3/SSL_new_domain.html", + "doc/html/man3/SSL_new_listener.html", + "doc/html/man3/SSL_new_stream.html", "doc/html/man3/SSL_pending.html", + "doc/html/man3/SSL_poll.html", "doc/html/man3/SSL_read.html", "doc/html/man3/SSL_read_early_data.html", "doc/html/man3/SSL_rstate_string.html", "doc/html/man3/SSL_session_reused.html", "doc/html/man3/SSL_set1_host.html", + "doc/html/man3/SSL_set1_initial_peer_addr.html", + "doc/html/man3/SSL_set1_server_cert_type.html", "doc/html/man3/SSL_set_async_callback.html", "doc/html/man3/SSL_set_bio.html", + "doc/html/man3/SSL_set_blocking_mode.html", "doc/html/man3/SSL_set_connect_state.html", + "doc/html/man3/SSL_set_default_stream_mode.html", "doc/html/man3/SSL_set_fd.html", + "doc/html/man3/SSL_set_incoming_stream_policy.html", + "doc/html/man3/SSL_set_quic_tls_cbs.html", "doc/html/man3/SSL_set_retry_verify.html", "doc/html/man3/SSL_set_session.html", + "doc/html/man3/SSL_set_session_secret_cb.html", "doc/html/man3/SSL_set_shutdown.html", "doc/html/man3/SSL_set_verify_result.html", "doc/html/man3/SSL_shutdown.html", "doc/html/man3/SSL_state_string.html", + "doc/html/man3/SSL_stream_conclude.html", + "doc/html/man3/SSL_stream_reset.html", "doc/html/man3/SSL_want.html", "doc/html/man3/SSL_write.html", "doc/html/man3/TS_RESP_CTX_new.html", - "doc/html/man3/TS_VERIFY_CTX_set_certs.html", + "doc/html/man3/TS_VERIFY_CTX.html", "doc/html/man3/UI_STRING.html", "doc/html/man3/UI_UTIL_read_pw.html", "doc/html/man3/UI_create_method.html", "doc/html/man3/UI_new.html", "doc/html/man3/X509V3_get_d2i.html", "doc/html/man3/X509V3_set_ctx.html", + "doc/html/man3/X509_ACERT_add1_attr.html", + "doc/html/man3/X509_ACERT_add_attr_nconf.html", + "doc/html/man3/X509_ACERT_get0_holder_baseCertId.html", + "doc/html/man3/X509_ACERT_get_attr.html", + "doc/html/man3/X509_ACERT_print_ex.html", "doc/html/man3/X509_ALGOR_dup.html", "doc/html/man3/X509_ATTRIBUTE.html", "doc/html/man3/X509_CRL_get0_by_serial.html", @@ -16921,6 +19582,7 @@ our %unified_info = ( "doc/html/man3/X509_REQ_get_attr.html", "doc/html/man3/X509_REQ_get_extensions.html", "doc/html/man3/X509_SIG_get0.html", + "doc/html/man3/X509_STORE_CTX_get_by_subject.html", "doc/html/man3/X509_STORE_CTX_get_error.html", "doc/html/man3/X509_STORE_CTX_new.html", "doc/html/man3/X509_STORE_CTX_set_verify_cb.html", @@ -16943,6 +19605,7 @@ our %unified_info = ( "doc/html/man3/X509_get0_notBefore.html", "doc/html/man3/X509_get0_signature.html", "doc/html/man3/X509_get0_uids.html", + "doc/html/man3/X509_get_default_cert_file.html", "doc/html/man3/X509_get_extension_flags.html", "doc/html/man3/X509_get_pubkey.html", "doc/html/man3/X509_get_serialNumber.html", @@ -16988,12 +19651,15 @@ our %unified_info = ( "doc/html/man7/EVP_CIPHER-RC5.html", "doc/html/man7/EVP_CIPHER-SEED.html", "doc/html/man7/EVP_CIPHER-SM4.html", + "doc/html/man7/EVP_KDF-ARGON2.html", "doc/html/man7/EVP_KDF-HKDF.html", + "doc/html/man7/EVP_KDF-HMAC-DRBG.html", "doc/html/man7/EVP_KDF-KB.html", "doc/html/man7/EVP_KDF-KRB5KDF.html", "doc/html/man7/EVP_KDF-PBKDF1.html", "doc/html/man7/EVP_KDF-PBKDF2.html", "doc/html/man7/EVP_KDF-PKCS12KDF.html", + "doc/html/man7/EVP_KDF-PVKKDF.html", "doc/html/man7/EVP_KDF-SCRYPT.html", "doc/html/man7/EVP_KDF-SS.html", "doc/html/man7/EVP_KDF-SSHKDF.html", @@ -17002,7 +19668,10 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-X942-ASN1.html", "doc/html/man7/EVP_KDF-X942-CONCAT.html", "doc/html/man7/EVP_KDF-X963.html", + "doc/html/man7/EVP_KEM-EC.html", + "doc/html/man7/EVP_KEM-ML-KEM.html", "doc/html/man7/EVP_KEM-RSA.html", + "doc/html/man7/EVP_KEM-X25519.html", "doc/html/man7/EVP_KEYEXCH-DH.html", "doc/html/man7/EVP_KEYEXCH-ECDH.html", "doc/html/man7/EVP_KEYEXCH-X25519.html", @@ -17014,6 +19683,7 @@ our %unified_info = ( "doc/html/man7/EVP_MAC-Poly1305.html", "doc/html/man7/EVP_MAC-Siphash.html", "doc/html/man7/EVP_MD-BLAKE2.html", + "doc/html/man7/EVP_MD-KECCAK.html", "doc/html/man7/EVP_MD-MD2.html", "doc/html/man7/EVP_MD-MD4.html", "doc/html/man7/EVP_MD-MD5-SHA1.html", @@ -17033,12 +19703,17 @@ our %unified_info = ( "doc/html/man7/EVP_PKEY-EC.html", "doc/html/man7/EVP_PKEY-FFC.html", "doc/html/man7/EVP_PKEY-HMAC.html", + "doc/html/man7/EVP_PKEY-ML-DSA.html", + "doc/html/man7/EVP_PKEY-ML-KEM.html", "doc/html/man7/EVP_PKEY-RSA.html", + "doc/html/man7/EVP_PKEY-SLH-DSA.html", "doc/html/man7/EVP_PKEY-SM2.html", "doc/html/man7/EVP_PKEY-X25519.html", + "doc/html/man7/EVP_RAND-CRNG-TEST.html", "doc/html/man7/EVP_RAND-CTR-DRBG.html", "doc/html/man7/EVP_RAND-HASH-DRBG.html", "doc/html/man7/EVP_RAND-HMAC-DRBG.html", + "doc/html/man7/EVP_RAND-JITTER.html", "doc/html/man7/EVP_RAND-SEED-SRC.html", "doc/html/man7/EVP_RAND-TEST-RAND.html", "doc/html/man7/EVP_RAND.html", @@ -17046,17 +19721,19 @@ our %unified_info = ( "doc/html/man7/EVP_SIGNATURE-ECDSA.html", "doc/html/man7/EVP_SIGNATURE-ED25519.html", "doc/html/man7/EVP_SIGNATURE-HMAC.html", + "doc/html/man7/EVP_SIGNATURE-ML-DSA.html", "doc/html/man7/EVP_SIGNATURE-RSA.html", + "doc/html/man7/EVP_SIGNATURE-SLH-DSA.html", "doc/html/man7/OSSL_PROVIDER-FIPS.html", "doc/html/man7/OSSL_PROVIDER-base.html", "doc/html/man7/OSSL_PROVIDER-default.html", "doc/html/man7/OSSL_PROVIDER-legacy.html", "doc/html/man7/OSSL_PROVIDER-null.html", + "doc/html/man7/OSSL_STORE-winstore.html", "doc/html/man7/RAND.html", "doc/html/man7/RSA-PSS.html", "doc/html/man7/X25519.html", "doc/html/man7/bio.html", - "doc/html/man7/crypto.html", "doc/html/man7/ct.html", "doc/html/man7/des_modes.html", "doc/html/man7/evp.html", @@ -17067,14 +19744,31 @@ our %unified_info = ( "doc/html/man7/life_cycle-mac.html", "doc/html/man7/life_cycle-pkey.html", "doc/html/man7/life_cycle-rand.html", - "doc/html/man7/migration_guide.html", "doc/html/man7/openssl-core.h.html", "doc/html/man7/openssl-core_dispatch.h.html", "doc/html/man7/openssl-core_names.h.html", "doc/html/man7/openssl-env.html", "doc/html/man7/openssl-glossary.html", + "doc/html/man7/openssl-qlog.html", + "doc/html/man7/openssl-quic-concurrency.html", + "doc/html/man7/openssl-quic.html", "doc/html/man7/openssl-threads.html", "doc/html/man7/openssl_user_macros.html", + "doc/html/man7/ossl-guide-introduction.html", + "doc/html/man7/ossl-guide-libcrypto-introduction.html", + "doc/html/man7/ossl-guide-libraries-introduction.html", + "doc/html/man7/ossl-guide-libssl-introduction.html", + "doc/html/man7/ossl-guide-migration.html", + "doc/html/man7/ossl-guide-quic-client-block.html", + "doc/html/man7/ossl-guide-quic-client-non-block.html", + "doc/html/man7/ossl-guide-quic-introduction.html", + "doc/html/man7/ossl-guide-quic-multi-stream.html", + "doc/html/man7/ossl-guide-quic-server-block.html", + "doc/html/man7/ossl-guide-quic-server-non-block.html", + "doc/html/man7/ossl-guide-tls-client-block.html", + "doc/html/man7/ossl-guide-tls-client-non-block.html", + "doc/html/man7/ossl-guide-tls-introduction.html", + "doc/html/man7/ossl-guide-tls-server-block.html", "doc/html/man7/ossl_store-file.html", "doc/html/man7/ossl_store.html", "doc/html/man7/passphrase-encoding.html", @@ -17093,10 +19787,10 @@ our %unified_info = ( "doc/html/man7/provider-object.html", "doc/html/man7/provider-rand.html", "doc/html/man7/provider-signature.html", + "doc/html/man7/provider-skeymgmt.html", "doc/html/man7/provider-storemgmt.html", "doc/html/man7/provider.html", "doc/html/man7/proxy-certificates.html", - "doc/html/man7/ssl.html", "doc/html/man7/x509.html" ] }, @@ -17111,12 +19805,21 @@ our %unified_info = ( ] }, "includes" => { + "OpenSSLConfig.cmake" => [ + "." + ], + "OpenSSLConfigVersion.cmake" => [ + "." + ], "apps/asn1parse.o" => [ "apps" ], "apps/ca.o" => [ "apps" ], + "apps/ca_internals_test-bin-ca.o" => [ + "apps" + ], "apps/ciphers.o" => [ "apps" ], @@ -17343,6 +20046,9 @@ our %unified_info = ( "apps/openssl-bin-sess_id.o" => [ "apps" ], + "apps/openssl-bin-skeyutl.o" => [ + "apps" + ], "apps/openssl-bin-smime.o" => [ "apps" ], @@ -17430,6 +20136,9 @@ our %unified_info = ( "apps/sess_id.o" => [ "apps" ], + "apps/skeyutl.o" => [ + "apps" + ], "apps/smime.o" => [ "apps" ], @@ -17481,6 +20190,12 @@ our %unified_info = ( "crypto/aes/bsaes-armv7.o" => [ "crypto" ], + "crypto/aes/vpaes-armv8.o" => [ + "crypto" + ], + "crypto/aes/vpaes-loongarch64.o" => [ + "crypto" + ], "crypto/arm64cpuid.o" => [ "crypto" ], @@ -17532,9 +20247,15 @@ our %unified_info = ( "crypto/chacha/chacha-armv4.o" => [ "crypto" ], + "crypto/chacha/chacha-armv8-sve.o" => [ + "crypto" + ], "crypto/chacha/chacha-armv8.o" => [ "crypto" ], + "crypto/chacha/chacha-loongarch64.o" => [ + "crypto" + ], "crypto/chacha/chacha-s390x.o" => [ "crypto" ], @@ -17559,15 +20280,24 @@ our %unified_info = ( "crypto/ec/ecp_s390x_nistp.o" => [ "crypto" ], + "crypto/ec/ecp_sm2p256-armv8.o" => [ + "crypto" + ], + "crypto/ec/ecx_key.o" => [ + "crypto" + ], "crypto/ec/ecx_meth.o" => [ "crypto" ], - "crypto/ec/ecx_s390x.o" => [ + "crypto/ec/libcrypto-lib-ecx_key.o" => [ "crypto" ], "crypto/ec/libcrypto-lib-ecx_meth.o" => [ "crypto" ], + "crypto/ec/libfips-lib-ecx_key.o" => [ + "crypto" + ], "crypto/evp/e_aes.o" => [ "crypto", "crypto/modes" @@ -17639,9 +20369,18 @@ our %unified_info = ( "crypto/libfips-lib-cpuid.o" => [ "." ], + "crypto/md5/md5-aarch64.o" => [ + "crypto" + ], + "crypto/md5/md5-loongarch64.o" => [ + "crypto" + ], "crypto/md5/md5-sparcv9.o" => [ "crypto" ], + "crypto/modes/aes-gcm-armv8-unroll8_64.o" => [ + "crypto" + ], "crypto/modes/aes-gcm-armv8_64.o" => [ "crypto" ], @@ -17666,6 +20405,9 @@ our %unified_info = ( "crypto/modes/libfips-lib-gcm128.o" => [ "crypto" ], + "crypto/params_idx.c" => [ + "util/perl" + ], "crypto/poly1305/poly1305-armv4.o" => [ "crypto" ], @@ -17687,6 +20429,9 @@ our %unified_info = ( "crypto/sha/keccak1600-armv4.o" => [ "crypto" ], + "crypto/sha/keccak1600-armv8.o" => [ + "crypto" + ], "crypto/sha/sha1-armv4-large.o" => [ "crypto" ], @@ -17732,6 +20477,18 @@ our %unified_info = ( "crypto/sha/sha512-sparcv9.o" => [ "crypto" ], + "crypto/sm3/sm3-armv8.o" => [ + "crypto" + ], + "crypto/sm4/sm4-armv8.o" => [ + "crypto" + ], + "crypto/sm4/vpsm4-armv8.o" => [ + "crypto" + ], + "crypto/sm4/vpsm4_ex-armv8.o" => [ + "crypto" + ], "doc/man1/openssl-asn1parse.pod" => [ "doc" ], @@ -17864,6 +20621,9 @@ our %unified_info = ( "doc/man1/openssl-sess_id.pod" => [ "doc" ], + "doc/man1/openssl-skeyutl.pod" => [ + "doc" + ], "doc/man1/openssl-smime.pod" => [ "doc" ], @@ -17891,6 +20651,24 @@ our %unified_info = ( "doc/man1/openssl-x509.pod" => [ "doc" ], + "exporters/OpenSSLConfig.cmake" => [ + "." + ], + "exporters/OpenSSLConfigVersion.cmake" => [ + "." + ], + "exporters/libcrypto.pc" => [ + "." + ], + "exporters/libssl.pc" => [ + "." + ], + "exporters/openssl.pc" => [ + "." + ], + "fuzz/acert-test" => [ + "include" + ], "fuzz/asn1-test" => [ "include" ], @@ -17921,12 +20699,69 @@ our %unified_info = ( "fuzz/ct-test" => [ "include" ], + "fuzz/decoder-test" => [ + "include" + ], + "fuzz/dtlsclient-test" => [ + "include" + ], + "fuzz/dtlsserver-test" => [ + "include" + ], + "fuzz/hashtable-test" => [ + "include" + ], + "fuzz/ml-dsa-test" => [ + "include" + ], + "fuzz/ml-kem-test" => [ + "include" + ], + "fuzz/pem-test" => [ + "include" + ], + "fuzz/provider-test" => [ + "include" + ], + "fuzz/punycode-test" => [ + "include" + ], + "fuzz/quic-client-test" => [ + "include" + ], + "fuzz/quic-lcidm-test" => [ + "include" + ], + "fuzz/quic-rcidm-test" => [ + "include" + ], + "fuzz/quic-server-test" => [ + "include" + ], + "fuzz/quic-srtm-test" => [ + "include" + ], "fuzz/server-test" => [ "include" ], + "fuzz/slh-dsa-test" => [ + "include" + ], + "fuzz/smime-test" => [ + "include" + ], + "fuzz/v3name-test" => [ + "include" + ], "fuzz/x509-test" => [ "include" ], + "include/internal/param_names.h" => [ + "util/perl" + ], + "include/openssl/core_names.h" => [ + "util/perl" + ], "libcrypto" => [ ".", "include", @@ -17937,6 +20772,9 @@ our %unified_info = ( ".", "util/perl/OpenSSL" ], + "libcrypto.pc" => [ + "." + ], "libssl" => [ ".", "include" @@ -17945,6 +20783,12 @@ our %unified_info = ( ".", "util/perl/OpenSSL" ], + "libssl.pc" => [ + "." + ], + "openssl.pc" => [ + "." + ], "providers/common/der/der_digests_gen.c" => [ "providers/common/der" ], @@ -17984,6 +20828,15 @@ our %unified_info = ( "providers/common/der/der_ecx_key.o" => [ "providers/common/include/prov" ], + "providers/common/der/der_ml_dsa_gen.c" => [ + "providers/common/der" + ], + "providers/common/der/der_ml_dsa_gen.o" => [ + "providers/common/include/prov" + ], + "providers/common/der/der_ml_dsa_key.o" => [ + "providers/common/include/prov" + ], "providers/common/der/der_rsa_gen.c" => [ "providers/common/der" ], @@ -17996,6 +20849,15 @@ our %unified_info = ( "providers/common/der/der_rsa_sig.o" => [ "providers/common/include/prov" ], + "providers/common/der/der_slh_dsa_gen.c" => [ + "providers/common/der" + ], + "providers/common/der/der_slh_dsa_gen.o" => [ + "providers/common/include/prov" + ], + "providers/common/der/der_slh_dsa_key.o" => [ + "providers/common/include/prov" + ], "providers/common/der/der_sm2_gen.c" => [ "providers/common/der" ], @@ -18041,12 +20903,24 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ecx_key.o" => [ "providers/common/include/prov" ], + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o" => [ + "providers/common/include/prov" + ], + "providers/common/der/libcommon-lib-der_ml_dsa_key.o" => [ + "providers/common/include/prov" + ], "providers/common/der/libcommon-lib-der_rsa_gen.o" => [ "providers/common/include/prov" ], "providers/common/der/libcommon-lib-der_rsa_key.o" => [ "providers/common/include/prov" ], + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o" => [ + "providers/common/include/prov" + ], + "providers/common/der/libcommon-lib-der_slh_dsa_key.o" => [ + "providers/common/include/prov" + ], "providers/common/der/libcommon-lib-der_wrap_gen.o" => [ "providers/common/include/prov" ], @@ -18077,9 +20951,15 @@ our %unified_info = ( "providers/common/include/prov/der_ecx.h" => [ "providers/common/der" ], + "providers/common/include/prov/der_ml_dsa.h" => [ + "providers/common/der" + ], "providers/common/include/prov/der_rsa.h" => [ "providers/common/der" ], + "providers/common/include/prov/der_slh_dsa.h" => [ + "providers/common/der" + ], "providers/common/include/prov/der_sm2.h" => [ "providers/common/der" ], @@ -18122,9 +21002,15 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-eddsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/libdefault-lib-rsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/libdefault-lib-sm2_sig.o" => [ "providers/common/include/prov" ], @@ -18137,12 +21023,24 @@ our %unified_info = ( "providers/implementations/signature/libfips-lib-eddsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/libfips-lib-rsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o" => [ + "providers/common/include/prov" + ], + "providers/implementations/signature/ml_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/rsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/slh_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/sm2_sig.o" => [ "providers/common/include/prov" ], @@ -18155,28 +21053,39 @@ our %unified_info = ( "crypto", "include", "providers/implementations/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" ], "providers/libdefault.a" => [ ".", "crypto", "include", "providers/implementations/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" ], "providers/libfips.a" => [ ".", "crypto", "include", "providers/implementations/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" ], "providers/liblegacy.a" => [ ".", "crypto", "include", "providers/implementations/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" + ], + "providers/libtemplate.a" => [ + "crypto", + "include", + "providers/implementations/include", + "providers/common/include", + "providers/fips/include" ], "test/aborttest" => [ "include", @@ -18245,6 +21154,14 @@ our %unified_info = ( "include", "apps/include" ], + "test/bio_addr_test" => [ + "include", + "apps/include" + ], + "test/bio_base64_test" => [ + "include", + "apps/include" + ], "test/bio_callback_test" => [ "include", "apps/include" @@ -18253,11 +21170,20 @@ our %unified_info = ( "include", "apps/include" ], + "test/bio_dgram_test" => [ + "include", + "apps/include", + "." + ], "test/bio_enc_test" => [ "include", "apps/include" ], - "test/bio_memleak_test" => [ + "test/bio_memleak_test" => [ + "include", + "apps/include" + ], + "test/bio_meth_test" => [ "include", "apps/include" ], @@ -18274,6 +21200,11 @@ our %unified_info = ( "include", "apps/include" ], + "test/bio_tfo_test" => [ + "include", + "apps/include", + "." + ], "test/bioprinttest" => [ "include", "apps/include" @@ -18288,6 +21219,9 @@ our %unified_info = ( "include", "apps/include" ], + "test/build_wincrypt_test" => [ + "include" + ], "test/buildtest_c_aes" => [ "include" ], @@ -18303,6 +21237,9 @@ our %unified_info = ( "test/buildtest_c_buffer" => [ "include" ], + "test/buildtest_c_byteorder" => [ + "include" + ], "test/buildtest_c_camellia" => [ "include" ], @@ -18327,9 +21264,6 @@ our %unified_info = ( "test/buildtest_c_core_dispatch" => [ "include" ], - "test/buildtest_c_core_names" => [ - "include" - ], "test/buildtest_c_core_object" => [ "include" ], @@ -18354,6 +21288,9 @@ our %unified_info = ( "test/buildtest_c_e_os2" => [ "include" ], + "test/buildtest_c_e_ostime" => [ + "include" + ], "test/buildtest_c_ebcdic" => [ "include" ], @@ -18381,12 +21318,18 @@ our %unified_info = ( "test/buildtest_c_hmac" => [ "include" ], + "test/buildtest_c_hpke" => [ + "include" + ], "test/buildtest_c_http" => [ "include" ], "test/buildtest_c_idea" => [ "include" ], + "test/buildtest_c_indicator" => [ + "include" + ], "test/buildtest_c_kdf" => [ "include" ], @@ -18402,6 +21345,9 @@ our %unified_info = ( "test/buildtest_c_mdc2" => [ "include" ], + "test/buildtest_c_ml_kem" => [ + "include" + ], "test/buildtest_c_modes" => [ "include" ], @@ -18432,6 +21378,9 @@ our %unified_info = ( "test/buildtest_c_provider" => [ "include" ], + "test/buildtest_c_quic" => [ + "include" + ], "test/buildtest_c_rand" => [ "include" ], @@ -18474,6 +21423,9 @@ our %unified_info = ( "test/buildtest_c_symhacks" => [ "include" ], + "test/buildtest_c_thread" => [ + "include" + ], "test/buildtest_c_tls1" => [ "include" ], @@ -18489,10 +21441,24 @@ our %unified_info = ( "test/buildtest_c_whrlpool" => [ "include" ], + "test/byteorder_test" => [ + "include", + "apps/include" + ], + "test/ca_internals_test" => [ + ".", + "include", + "apps/include" + ], "test/casttest" => [ "include", "apps/include" ], + "test/cert_comp_test" => [ + "include", + "apps/include", + "." + ], "test/chacha_internal_test" => [ ".", "include", @@ -18616,6 +21582,11 @@ our %unified_info = ( "include", "apps/include" ], + "test/decoder_propq_test" => [ + ".", + "include", + "apps/include" + ], "test/defltfips_test" => [ "include", "apps/include" @@ -18631,7 +21602,8 @@ our %unified_info = ( "test/drbgtest" => [ "include", "apps/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" ], "test/dsa_no_digest_size_test" => [ "include", @@ -18674,7 +21646,9 @@ our %unified_info = ( "test/endecode_test" => [ ".", "include", - "apps/include" + "apps/include", + "providers/common/include", + "providers/implementations/include" ], "test/endecoder_legacy_test" => [ ".", @@ -18719,6 +21693,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/evp_pkey_dhkem_test" => [ + "include", + "apps/include" + ], "test/evp_pkey_dparams_test" => [ "include", "apps/include" @@ -18727,10 +21705,18 @@ our %unified_info = ( "include", "apps/include" ], + "test/evp_skey_test" => [ + "include", + "apps/include" + ], "test/evp_test" => [ "include", "apps/include" ], + "test/evp_xof_test" => [ + "include", + "apps/include" + ], "test/exdatatest" => [ "include", "apps/include" @@ -18831,22 +21817,62 @@ our %unified_info = ( ".", "include" ], + "test/helpers/json_test-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/helpers/pkcs12.o" => [ ".", "include" ], + "test/helpers/pkcs12_api_test-bin-pkcs12.o" => [ + ".", + "include" + ], "test/helpers/pkcs12_format_test-bin-pkcs12.o" => [ ".", "include" ], + "test/helpers/quic_multistream_test-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quic_newcid_test-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quic_radix_test-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quic_srt_gen_test-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quicapitest-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quicfaultstest-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/helpers/recordlentest-bin-ssltestlib.o" => [ ".", "include" ], + "test/helpers/rpktest-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/helpers/servername_test-bin-ssltestlib.o" => [ ".", "include" ], + "test/helpers/ssl_handshake_rtt_test-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/helpers/ssl_test-bin-handshake.o" => [ ".", "include" @@ -18880,6 +21906,10 @@ our %unified_info = ( ".", "include" ], + "test/helpers/tls13groupselection_test-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/hexstr_test" => [ ".", "include", @@ -18889,6 +21919,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/hpke_test" => [ + "include", + "apps/include" + ], "test/http_test" => [ "include", "apps/include" @@ -18901,6 +21935,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/json_test" => [ + "include", + "apps/include" + ], "test/keymgmt_internal_test" => [ ".", "include", @@ -18915,6 +21953,10 @@ our %unified_info = ( "apps/include", "." ], + "test/list_test" => [ + "include", + "apps/include" + ], "test/localetest" => [ "include", "apps/include" @@ -18928,10 +21970,27 @@ our %unified_info = ( "include", "apps/include" ], + "test/membio_test" => [ + "include", + "apps/include", + "." + ], "test/memleaktest" => [ "include", "apps/include" ], + "test/ml_dsa_test" => [ + "include", + "apps/include" + ], + "test/ml_kem_evp_extra_test" => [ + "include", + "apps/include" + ], + "test/ml_kem_internal_test" => [ + "include", + "apps/include" + ], "test/modes_internal_test" => [ ".", "include", @@ -18966,6 +22025,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/pairwise_fail_test" => [ + "include", + "apps/include" + ], "test/param_build_test" => [ "include", "apps/include" @@ -18999,6 +22062,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/pkcs12_api_test" => [ + "include", + "apps/include" + ], "test/pkcs12_format_test" => [ "include", "apps/include" @@ -19020,6 +22087,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/priority_queue_test" => [ + "include", + "apps/include" + ], "test/property_test" => [ ".", "include", @@ -19033,6 +22104,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/provider_default_search_path_test" => [ + "include", + "apps/include" + ], "test/provider_fallback_test" => [ "include", "apps/include" @@ -19059,6 +22134,97 @@ our %unified_info = ( "include", "apps/include" ], + "test/quic_ackm_test" => [ + "include", + "apps/include" + ], + "test/quic_cc_test" => [ + "include", + "apps/include" + ], + "test/quic_cfq_test" => [ + "include", + "apps/include" + ], + "test/quic_client_test" => [ + "include", + "apps/include" + ], + "test/quic_fc_test" => [ + "include", + "apps/include" + ], + "test/quic_fifd_test" => [ + "include", + "apps/include" + ], + "test/quic_lcidm_test" => [ + "include", + "apps/include" + ], + "test/quic_multistream_test" => [ + "include", + "apps/include" + ], + "test/quic_newcid_test" => [ + "include", + "apps/include", + "." + ], + "test/quic_qlog_test" => [ + "include", + "apps/include" + ], + "test/quic_radix_test" => [ + "include", + "apps/include" + ], + "test/quic_rcidm_test" => [ + "include", + "apps/include" + ], + "test/quic_record_test" => [ + "include", + "apps/include" + ], + "test/quic_srt_gen_test" => [ + "include", + "apps/include", + "." + ], + "test/quic_srtm_test" => [ + "include", + "apps/include" + ], + "test/quic_stream_test" => [ + "include", + "apps/include" + ], + "test/quic_tserver_test" => [ + "include", + "apps/include" + ], + "test/quic_txp_test" => [ + "include", + "apps/include" + ], + "test/quic_txpim_test" => [ + "include", + "apps/include" + ], + "test/quic_wire_test" => [ + "include", + "apps/include" + ], + "test/quicapitest" => [ + "include", + "apps/include" + ], + "test/quicfaultstest" => [ + "include", + "apps/include", + "." + ], "test/rand_status_test" => [ "include", "apps/include" @@ -19079,14 +22245,20 @@ our %unified_info = ( "include", "apps/include" ], - "test/rdrand_sanitytest" => [ + "test/rdcpu_sanitytest" => [ "include", - "apps/include" + "apps/include", + "crypto" ], "test/recordlentest" => [ "include", "apps/include" ], + "test/rpktest" => [ + "include", + "apps/include", + "." + ], "test/rsa_complex" => [ "include", "apps/include" @@ -19105,6 +22277,15 @@ our %unified_info = ( "include", "apps/include" ], + "test/rsa_x931_test" => [ + ".", + "include", + "apps/include" + ], + "test/safe_math_test" => [ + "include", + "apps/include" + ], "test/sanitytest" => [ "include", "apps/include" @@ -19126,6 +22307,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/slh_dsa_test" => [ + "include", + "apps/include" + ], "test/sm2_internal_test" => [ "include", "apps/include" @@ -19156,6 +22341,11 @@ our %unified_info = ( "include", "apps/include" ], + "test/ssl_handshake_rtt_test" => [ + "include", + "apps/include", + "." + ], "test/ssl_old_test" => [ ".", "include", @@ -19172,6 +22362,7 @@ our %unified_info = ( "test/sslapitest" => [ "include", "apps/include", + "providers/common/include", "." ], "test/sslbuffertest" => [ @@ -19186,6 +22377,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/strtoultest" => [ + "include", + "apps/include" + ], "test/sysdefaulttest" => [ "include", "apps/include" @@ -19194,7 +22389,13 @@ our %unified_info = ( "include", "apps/include" ], + "test/threadpool_test" => [ + ".", + "include", + "apps/include" + ], "test/threadstest" => [ + ".", "include", "apps/include" ], @@ -19206,6 +22407,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/time_test" => [ + "include", + "apps/include" + ], "test/tls13ccstest" => [ "include", "apps/include" @@ -19215,6 +22420,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/tls13groupselection_test" => [ + "include", + "apps/include" + ], "test/trace_api_test" => [ ".", "include", @@ -19253,6 +22462,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/x509_acert_test" => [ + "include", + "apps/include" + ], "test/x509_check_cert_pkey_test" => [ "include", "apps/include" @@ -19266,6 +22479,18 @@ our %unified_info = ( "include", "apps/include" ], + "test/x509_load_cert_file_test" => [ + "include", + "apps/include" + ], + "test/x509_req_test" => [ + "include", + "apps/include" + ], + "test/x509_test" => [ + "include", + "apps/include" + ], "test/x509_time_test" => [ "include", "apps/include" @@ -19287,6 +22512,7 @@ our %unified_info = ( "providers/libdefault.a", "providers/libfips.a", "providers/liblegacy.a", + "providers/libtemplate.a", "test/libtestutil.a" ], "mandocs" => { @@ -19339,6 +22565,7 @@ our %unified_info = ( "doc/man/man1/openssl-s_server.1", "doc/man/man1/openssl-s_time.1", "doc/man/man1/openssl-sess_id.1", + "doc/man/man1/openssl-skeyutl.1", "doc/man/man1/openssl-smime.1", "doc/man/man1/openssl-speed.1", "doc/man/man1/openssl-spkac.1", @@ -19388,6 +22615,7 @@ our %unified_info = ( "doc/man/man3/BIO_find_type.3", "doc/man/man3/BIO_get_data.3", "doc/man/man3/BIO_get_ex_new_index.3", + "doc/man/man3/BIO_get_rpoll_descriptor.3", "doc/man/man3/BIO_meth_new.3", "doc/man/man3/BIO_new.3", "doc/man/man3/BIO_new_CMS.3", @@ -19400,11 +22628,13 @@ our %unified_info = ( "doc/man/man3/BIO_s_connect.3", "doc/man/man3/BIO_s_core.3", "doc/man/man3/BIO_s_datagram.3", + "doc/man/man3/BIO_s_dgram_pair.3", "doc/man/man3/BIO_s_fd.3", "doc/man/man3/BIO_s_file.3", "doc/man/man3/BIO_s_mem.3", "doc/man/man3/BIO_s_null.3", "doc/man/man3/BIO_s_socket.3", + "doc/man/man3/BIO_sendmmsg.3", "doc/man/man3/BIO_set_callback.3", "doc/man/man3/BIO_should_retry.3", "doc/man/man3/BIO_socket_wait.3", @@ -19429,6 +22659,7 @@ our %unified_info = ( "doc/man/man3/BN_swap.3", "doc/man/man3/BN_zero.3", "doc/man/man3/BUF_MEM_new.3", + "doc/man/man3/CMAC_CTX.3", "doc/man/man3/CMS_EncryptedData_decrypt.3", "doc/man/man3/CMS_EncryptedData_encrypt.3", "doc/man/man3/CMS_EnvelopedData_create.3", @@ -19451,6 +22682,7 @@ our %unified_info = ( "doc/man/man3/CMS_uncompress.3", "doc/man/man3/CMS_verify.3", "doc/man/man3/CMS_verify_receipt.3", + "doc/man/man3/COMP_CTX_new.3", "doc/man/man3/CONF_modules_free.3", "doc/man/man3/CONF_modules_load_file.3", "doc/man/man3/CRYPTO_THREAD_run_once.3", @@ -19484,6 +22716,8 @@ our %unified_info = ( "doc/man/man3/DSA_size.3", "doc/man/man3/DTLS_get_data_mtu.3", "doc/man/man3/DTLS_set_timer_cb.3", + "doc/man/man3/DTLSv1_get_timeout.3", + "doc/man/man3/DTLSv1_handle_timeout.3", "doc/man/man3/DTLSv1_listen.3", "doc/man/man3/ECDSA_SIG_new.3", "doc/man/man3/ECDSA_sign.3", @@ -19530,6 +22764,7 @@ our %unified_info = ( "doc/man/man3/EVP_PKEY_CTX_ctrl.3", "doc/man/man3/EVP_PKEY_CTX_get0_libctx.3", "doc/man/man3/EVP_PKEY_CTX_get0_pkey.3", + "doc/man/man3/EVP_PKEY_CTX_get_algor.3", "doc/man/man3/EVP_PKEY_CTX_new.3", "doc/man/man3/EVP_PKEY_CTX_set1_pbe_pass.3", "doc/man/man3/EVP_PKEY_CTX_set_hkdf_md.3", @@ -19569,6 +22804,8 @@ our %unified_info = ( "doc/man/man3/EVP_PKEY_verify_recover.3", "doc/man/man3/EVP_RAND.3", "doc/man/man3/EVP_SIGNATURE.3", + "doc/man/man3/EVP_SKEY.3", + "doc/man/man3/EVP_SKEYMGMT.3", "doc/man/man3/EVP_SealInit.3", "doc/man/man3/EVP_SignInit.3", "doc/man/man3/EVP_VerifyInit.3", @@ -19598,6 +22835,7 @@ our %unified_info = ( "doc/man/man3/EVP_sm3.3", "doc/man/man3/EVP_sm4_cbc.3", "doc/man/man3/EVP_whirlpool.3", + "doc/man/man3/GENERAL_NAME.3", "doc/man/man3/HMAC.3", "doc/man/man3/MD5.3", "doc/man/man3/MDC2_Init.3", @@ -19622,14 +22860,18 @@ our %unified_info = ( "doc/man/man3/OPENSSL_init_ssl.3", "doc/man/man3/OPENSSL_instrument_bus.3", "doc/man/man3/OPENSSL_load_builtin_modules.3", + "doc/man/man3/OPENSSL_load_u16_le.3", "doc/man/man3/OPENSSL_malloc.3", + "doc/man/man3/OPENSSL_riscvcap.3", "doc/man/man3/OPENSSL_s390xcap.3", "doc/man/man3/OPENSSL_secure_malloc.3", "doc/man/man3/OPENSSL_strcasecmp.3", "doc/man/man3/OSSL_ALGORITHM.3", "doc/man/man3/OSSL_CALLBACK.3", + "doc/man/man3/OSSL_CMP_ATAV_set0.3", "doc/man/man3/OSSL_CMP_CTX_new.3", "doc/man/man3/OSSL_CMP_HDR_get0_transactionID.3", + "doc/man/man3/OSSL_CMP_ITAV_new_caCerts.3", "doc/man/man3/OSSL_CMP_ITAV_set0.3", "doc/man/man3/OSSL_CMP_MSG_get0_header.3", "doc/man/man3/OSSL_CMP_MSG_http_perform.3", @@ -19653,18 +22895,27 @@ our %unified_info = ( "doc/man/man3/OSSL_ENCODER_CTX.3", "doc/man/man3/OSSL_ENCODER_CTX_new_for_pkey.3", "doc/man/man3/OSSL_ENCODER_to_bio.3", + "doc/man/man3/OSSL_ERR_STATE_save.3", "doc/man/man3/OSSL_ESS_check_signing_certs.3", + "doc/man/man3/OSSL_GENERAL_NAMES_print.3", + "doc/man/man3/OSSL_HPKE_CTX_new.3", "doc/man/man3/OSSL_HTTP_REQ_CTX.3", "doc/man/man3/OSSL_HTTP_parse_url.3", "doc/man/man3/OSSL_HTTP_transfer.3", + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX.3", + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX_print.3", + "doc/man/man3/OSSL_INDICATOR_set_callback.3", "doc/man/man3/OSSL_ITEM.3", "doc/man/man3/OSSL_LIB_CTX.3", + "doc/man/man3/OSSL_LIB_CTX_set_conf_diagnostics.3", "doc/man/man3/OSSL_PARAM.3", "doc/man/man3/OSSL_PARAM_BLD.3", "doc/man/man3/OSSL_PARAM_allocate_from_text.3", "doc/man/man3/OSSL_PARAM_dup.3", "doc/man/man3/OSSL_PARAM_int.3", + "doc/man/man3/OSSL_PARAM_print_to_bio.3", "doc/man/man3/OSSL_PROVIDER.3", + "doc/man/man3/OSSL_QUIC_client_method.3", "doc/man/man3/OSSL_SELF_TEST_new.3", "doc/man/man3/OSSL_SELF_TEST_set_callback.3", "doc/man/man3/OSSL_STORE_INFO.3", @@ -19673,11 +22924,13 @@ our %unified_info = ( "doc/man/man3/OSSL_STORE_attach.3", "doc/man/man3/OSSL_STORE_expect.3", "doc/man/man3/OSSL_STORE_open.3", + "doc/man/man3/OSSL_sleep.3", "doc/man/man3/OSSL_trace_enabled.3", "doc/man/man3/OSSL_trace_get_category_num.3", "doc/man/man3/OSSL_trace_set_channel.3", "doc/man/man3/OpenSSL_add_all_algorithms.3", "doc/man/man3/OpenSSL_version.3", + "doc/man/man3/PBMAC1_get1_pbkdf2_param.3", "doc/man/man3/PEM_X509_INFO_read_bio_ex.3", "doc/man/man3/PEM_bytes_read_bio.3", "doc/man/man3/PEM_read.3", @@ -19690,6 +22943,7 @@ our %unified_info = ( "doc/man/man3/PKCS12_SAFEBAG_create_cert.3", "doc/man/man3/PKCS12_SAFEBAG_get0_attrs.3", "doc/man/man3/PKCS12_SAFEBAG_get1_cert.3", + "doc/man/man3/PKCS12_SAFEBAG_set0_attrs.3", "doc/man/man3/PKCS12_add1_attr_by_NID.3", "doc/man/man3/PKCS12_add_CSPName_asc.3", "doc/man/man3/PKCS12_add_cert.3", @@ -19781,6 +23035,7 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_sess_set_get_cb.3", "doc/man/man3/SSL_CTX_sessions.3", "doc/man/man3/SSL_CTX_set0_CA_list.3", + "doc/man/man3/SSL_CTX_set1_cert_comp_preference.3", "doc/man/man3/SSL_CTX_set1_curves.3", "doc/man/man3/SSL_CTX_set1_sigalgs.3", "doc/man/man3/SSL_CTX_set1_verify_cert_store.3", @@ -19794,6 +23049,7 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_ct_validation_callback.3", "doc/man/man3/SSL_CTX_set_ctlog_list_file.3", "doc/man/man3/SSL_CTX_set_default_passwd_cb.3", + "doc/man/man3/SSL_CTX_set_domain_flags.3", "doc/man/man3/SSL_CTX_set_generate_session_id.3", "doc/man/man3/SSL_CTX_set_info_callback.3", "doc/man/man3/SSL_CTX_set_keylog_callback.3", @@ -19801,6 +23057,7 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_min_proto_version.3", "doc/man/man3/SSL_CTX_set_mode.3", "doc/man/man3/SSL_CTX_set_msg_callback.3", + "doc/man/man3/SSL_CTX_set_new_pending_conn_cb.3", "doc/man/man3/SSL_CTX_set_num_tickets.3", "doc/man/man3/SSL_CTX_set_options.3", "doc/man/man3/SSL_CTX_set_psk_client_callback.3", @@ -19839,6 +23096,7 @@ our %unified_info = ( "doc/man/man3/SSL_SESSION_print.3", "doc/man/man3/SSL_SESSION_set1_id.3", "doc/man/man3/SSL_accept.3", + "doc/man/man3/SSL_accept_stream.3", "doc/man/man3/SSL_alert_type_string.3", "doc/man/man3/SSL_alloc_buffers.3", "doc/man/man3/SSL_check_chain.3", @@ -19848,59 +23106,90 @@ our %unified_info = ( "doc/man/man3/SSL_export_keying_material.3", "doc/man/man3/SSL_extension_supported.3", "doc/man/man3/SSL_free.3", + "doc/man/man3/SSL_get0_connection.3", + "doc/man/man3/SSL_get0_group_name.3", + "doc/man/man3/SSL_get0_peer_rpk.3", "doc/man/man3/SSL_get0_peer_scts.3", + "doc/man/man3/SSL_get1_builtin_sigalgs.3", "doc/man/man3/SSL_get_SSL_CTX.3", "doc/man/man3/SSL_get_all_async_fds.3", "doc/man/man3/SSL_get_certificate.3", "doc/man/man3/SSL_get_ciphers.3", "doc/man/man3/SSL_get_client_random.3", + "doc/man/man3/SSL_get_conn_close_info.3", "doc/man/man3/SSL_get_current_cipher.3", "doc/man/man3/SSL_get_default_timeout.3", "doc/man/man3/SSL_get_error.3", + "doc/man/man3/SSL_get_event_timeout.3", "doc/man/man3/SSL_get_extms_support.3", "doc/man/man3/SSL_get_fd.3", + "doc/man/man3/SSL_get_handshake_rtt.3", "doc/man/man3/SSL_get_peer_cert_chain.3", "doc/man/man3/SSL_get_peer_certificate.3", "doc/man/man3/SSL_get_peer_signature_nid.3", "doc/man/man3/SSL_get_peer_tmp_key.3", "doc/man/man3/SSL_get_psk_identity.3", "doc/man/man3/SSL_get_rbio.3", + "doc/man/man3/SSL_get_rpoll_descriptor.3", "doc/man/man3/SSL_get_session.3", "doc/man/man3/SSL_get_shared_sigalgs.3", + "doc/man/man3/SSL_get_stream_id.3", + "doc/man/man3/SSL_get_stream_read_state.3", + "doc/man/man3/SSL_get_value_uint.3", "doc/man/man3/SSL_get_verify_result.3", "doc/man/man3/SSL_get_version.3", "doc/man/man3/SSL_group_to_name.3", + "doc/man/man3/SSL_handle_events.3", "doc/man/man3/SSL_in_init.3", + "doc/man/man3/SSL_inject_net_dgram.3", "doc/man/man3/SSL_key_update.3", "doc/man/man3/SSL_library_init.3", "doc/man/man3/SSL_load_client_CA_file.3", "doc/man/man3/SSL_new.3", + "doc/man/man3/SSL_new_domain.3", + "doc/man/man3/SSL_new_listener.3", + "doc/man/man3/SSL_new_stream.3", "doc/man/man3/SSL_pending.3", + "doc/man/man3/SSL_poll.3", "doc/man/man3/SSL_read.3", "doc/man/man3/SSL_read_early_data.3", "doc/man/man3/SSL_rstate_string.3", "doc/man/man3/SSL_session_reused.3", "doc/man/man3/SSL_set1_host.3", + "doc/man/man3/SSL_set1_initial_peer_addr.3", + "doc/man/man3/SSL_set1_server_cert_type.3", "doc/man/man3/SSL_set_async_callback.3", "doc/man/man3/SSL_set_bio.3", + "doc/man/man3/SSL_set_blocking_mode.3", "doc/man/man3/SSL_set_connect_state.3", + "doc/man/man3/SSL_set_default_stream_mode.3", "doc/man/man3/SSL_set_fd.3", + "doc/man/man3/SSL_set_incoming_stream_policy.3", + "doc/man/man3/SSL_set_quic_tls_cbs.3", "doc/man/man3/SSL_set_retry_verify.3", "doc/man/man3/SSL_set_session.3", + "doc/man/man3/SSL_set_session_secret_cb.3", "doc/man/man3/SSL_set_shutdown.3", "doc/man/man3/SSL_set_verify_result.3", "doc/man/man3/SSL_shutdown.3", "doc/man/man3/SSL_state_string.3", + "doc/man/man3/SSL_stream_conclude.3", + "doc/man/man3/SSL_stream_reset.3", "doc/man/man3/SSL_want.3", "doc/man/man3/SSL_write.3", "doc/man/man3/TS_RESP_CTX_new.3", - "doc/man/man3/TS_VERIFY_CTX_set_certs.3", + "doc/man/man3/TS_VERIFY_CTX.3", "doc/man/man3/UI_STRING.3", "doc/man/man3/UI_UTIL_read_pw.3", "doc/man/man3/UI_create_method.3", "doc/man/man3/UI_new.3", "doc/man/man3/X509V3_get_d2i.3", "doc/man/man3/X509V3_set_ctx.3", + "doc/man/man3/X509_ACERT_add1_attr.3", + "doc/man/man3/X509_ACERT_add_attr_nconf.3", + "doc/man/man3/X509_ACERT_get0_holder_baseCertId.3", + "doc/man/man3/X509_ACERT_get_attr.3", + "doc/man/man3/X509_ACERT_print_ex.3", "doc/man/man3/X509_ALGOR_dup.3", "doc/man/man3/X509_ATTRIBUTE.3", "doc/man/man3/X509_CRL_get0_by_serial.3", @@ -19917,6 +23206,7 @@ our %unified_info = ( "doc/man/man3/X509_REQ_get_attr.3", "doc/man/man3/X509_REQ_get_extensions.3", "doc/man/man3/X509_SIG_get0.3", + "doc/man/man3/X509_STORE_CTX_get_by_subject.3", "doc/man/man3/X509_STORE_CTX_get_error.3", "doc/man/man3/X509_STORE_CTX_new.3", "doc/man/man3/X509_STORE_CTX_set_verify_cb.3", @@ -19939,6 +23229,7 @@ our %unified_info = ( "doc/man/man3/X509_get0_notBefore.3", "doc/man/man3/X509_get0_signature.3", "doc/man/man3/X509_get0_uids.3", + "doc/man/man3/X509_get_default_cert_file.3", "doc/man/man3/X509_get_extension_flags.3", "doc/man/man3/X509_get_pubkey.3", "doc/man/man3/X509_get_serialNumber.3", @@ -19984,12 +23275,15 @@ our %unified_info = ( "doc/man/man7/EVP_CIPHER-RC5.7", "doc/man/man7/EVP_CIPHER-SEED.7", "doc/man/man7/EVP_CIPHER-SM4.7", + "doc/man/man7/EVP_KDF-ARGON2.7", "doc/man/man7/EVP_KDF-HKDF.7", + "doc/man/man7/EVP_KDF-HMAC-DRBG.7", "doc/man/man7/EVP_KDF-KB.7", "doc/man/man7/EVP_KDF-KRB5KDF.7", "doc/man/man7/EVP_KDF-PBKDF1.7", "doc/man/man7/EVP_KDF-PBKDF2.7", "doc/man/man7/EVP_KDF-PKCS12KDF.7", + "doc/man/man7/EVP_KDF-PVKKDF.7", "doc/man/man7/EVP_KDF-SCRYPT.7", "doc/man/man7/EVP_KDF-SS.7", "doc/man/man7/EVP_KDF-SSHKDF.7", @@ -19998,7 +23292,10 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-X942-ASN1.7", "doc/man/man7/EVP_KDF-X942-CONCAT.7", "doc/man/man7/EVP_KDF-X963.7", + "doc/man/man7/EVP_KEM-EC.7", + "doc/man/man7/EVP_KEM-ML-KEM.7", "doc/man/man7/EVP_KEM-RSA.7", + "doc/man/man7/EVP_KEM-X25519.7", "doc/man/man7/EVP_KEYEXCH-DH.7", "doc/man/man7/EVP_KEYEXCH-ECDH.7", "doc/man/man7/EVP_KEYEXCH-X25519.7", @@ -20010,6 +23307,7 @@ our %unified_info = ( "doc/man/man7/EVP_MAC-Poly1305.7", "doc/man/man7/EVP_MAC-Siphash.7", "doc/man/man7/EVP_MD-BLAKE2.7", + "doc/man/man7/EVP_MD-KECCAK.7", "doc/man/man7/EVP_MD-MD2.7", "doc/man/man7/EVP_MD-MD4.7", "doc/man/man7/EVP_MD-MD5-SHA1.7", @@ -20029,12 +23327,17 @@ our %unified_info = ( "doc/man/man7/EVP_PKEY-EC.7", "doc/man/man7/EVP_PKEY-FFC.7", "doc/man/man7/EVP_PKEY-HMAC.7", + "doc/man/man7/EVP_PKEY-ML-DSA.7", + "doc/man/man7/EVP_PKEY-ML-KEM.7", "doc/man/man7/EVP_PKEY-RSA.7", + "doc/man/man7/EVP_PKEY-SLH-DSA.7", "doc/man/man7/EVP_PKEY-SM2.7", "doc/man/man7/EVP_PKEY-X25519.7", + "doc/man/man7/EVP_RAND-CRNG-TEST.7", "doc/man/man7/EVP_RAND-CTR-DRBG.7", "doc/man/man7/EVP_RAND-HASH-DRBG.7", "doc/man/man7/EVP_RAND-HMAC-DRBG.7", + "doc/man/man7/EVP_RAND-JITTER.7", "doc/man/man7/EVP_RAND-SEED-SRC.7", "doc/man/man7/EVP_RAND-TEST-RAND.7", "doc/man/man7/EVP_RAND.7", @@ -20042,17 +23345,19 @@ our %unified_info = ( "doc/man/man7/EVP_SIGNATURE-ECDSA.7", "doc/man/man7/EVP_SIGNATURE-ED25519.7", "doc/man/man7/EVP_SIGNATURE-HMAC.7", + "doc/man/man7/EVP_SIGNATURE-ML-DSA.7", "doc/man/man7/EVP_SIGNATURE-RSA.7", + "doc/man/man7/EVP_SIGNATURE-SLH-DSA.7", "doc/man/man7/OSSL_PROVIDER-FIPS.7", "doc/man/man7/OSSL_PROVIDER-base.7", "doc/man/man7/OSSL_PROVIDER-default.7", "doc/man/man7/OSSL_PROVIDER-legacy.7", "doc/man/man7/OSSL_PROVIDER-null.7", + "doc/man/man7/OSSL_STORE-winstore.7", "doc/man/man7/RAND.7", "doc/man/man7/RSA-PSS.7", "doc/man/man7/X25519.7", "doc/man/man7/bio.7", - "doc/man/man7/crypto.7", "doc/man/man7/ct.7", "doc/man/man7/des_modes.7", "doc/man/man7/evp.7", @@ -20063,14 +23368,31 @@ our %unified_info = ( "doc/man/man7/life_cycle-mac.7", "doc/man/man7/life_cycle-pkey.7", "doc/man/man7/life_cycle-rand.7", - "doc/man/man7/migration_guide.7", "doc/man/man7/openssl-core.h.7", "doc/man/man7/openssl-core_dispatch.h.7", "doc/man/man7/openssl-core_names.h.7", "doc/man/man7/openssl-env.7", "doc/man/man7/openssl-glossary.7", + "doc/man/man7/openssl-qlog.7", + "doc/man/man7/openssl-quic-concurrency.7", + "doc/man/man7/openssl-quic.7", "doc/man/man7/openssl-threads.7", "doc/man/man7/openssl_user_macros.7", + "doc/man/man7/ossl-guide-introduction.7", + "doc/man/man7/ossl-guide-libcrypto-introduction.7", + "doc/man/man7/ossl-guide-libraries-introduction.7", + "doc/man/man7/ossl-guide-libssl-introduction.7", + "doc/man/man7/ossl-guide-migration.7", + "doc/man/man7/ossl-guide-quic-client-block.7", + "doc/man/man7/ossl-guide-quic-client-non-block.7", + "doc/man/man7/ossl-guide-quic-introduction.7", + "doc/man/man7/ossl-guide-quic-multi-stream.7", + "doc/man/man7/ossl-guide-quic-server-block.7", + "doc/man/man7/ossl-guide-quic-server-non-block.7", + "doc/man/man7/ossl-guide-tls-client-block.7", + "doc/man/man7/ossl-guide-tls-client-non-block.7", + "doc/man/man7/ossl-guide-tls-introduction.7", + "doc/man/man7/ossl-guide-tls-server-block.7", "doc/man/man7/ossl_store-file.7", "doc/man/man7/ossl_store.7", "doc/man/man7/passphrase-encoding.7", @@ -20089,10 +23411,10 @@ our %unified_info = ( "doc/man/man7/provider-object.7", "doc/man/man7/provider-rand.7", "doc/man/man7/provider-signature.7", + "doc/man/man7/provider-skeymgmt.7", "doc/man/man7/provider-storemgmt.7", "doc/man/man7/provider.7", "doc/man/man7/proxy-certificates.7", - "doc/man/man7/ssl.7", "doc/man/man7/x509.7" ] }, @@ -20104,6 +23426,7 @@ our %unified_info = ( ], "programs" => [ "apps/openssl", + "fuzz/acert-test", "fuzz/asn1-test", "fuzz/asn1parse-test", "fuzz/bignum-test", @@ -20114,7 +23437,24 @@ our %unified_info = ( "fuzz/conf-test", "fuzz/crl-test", "fuzz/ct-test", + "fuzz/decoder-test", + "fuzz/dtlsclient-test", + "fuzz/dtlsserver-test", + "fuzz/hashtable-test", + "fuzz/ml-dsa-test", + "fuzz/ml-kem-test", + "fuzz/pem-test", + "fuzz/provider-test", + "fuzz/punycode-test", + "fuzz/quic-client-test", + "fuzz/quic-lcidm-test", + "fuzz/quic-rcidm-test", + "fuzz/quic-server-test", + "fuzz/quic-srtm-test", "fuzz/server-test", + "fuzz/slh-dsa-test", + "fuzz/smime-test", + "fuzz/v3name-test", "fuzz/x509-test", "test/aborttest", "test/acvp_test", @@ -20132,21 +23472,28 @@ our %unified_info = ( "test/asynctest", "test/bad_dtls_test", "test/bftest", + "test/bio_addr_test", + "test/bio_base64_test", "test/bio_callback_test", "test/bio_core_test", + "test/bio_dgram_test", "test/bio_enc_test", "test/bio_memleak_test", + "test/bio_meth_test", "test/bio_prefix_text", "test/bio_pw_callback_test", "test/bio_readbuffer_test", + "test/bio_tfo_test", "test/bioprinttest", "test/bn_internal_test", "test/bntest", + "test/build_wincrypt_test", "test/buildtest_c_aes", "test/buildtest_c_async", "test/buildtest_c_blowfish", "test/buildtest_c_bn", "test/buildtest_c_buffer", + "test/buildtest_c_byteorder", "test/buildtest_c_camellia", "test/buildtest_c_cast", "test/buildtest_c_cmac", @@ -20155,7 +23502,6 @@ our %unified_info = ( "test/buildtest_c_conftypes", "test/buildtest_c_core", "test/buildtest_c_core_dispatch", - "test/buildtest_c_core_names", "test/buildtest_c_core_object", "test/buildtest_c_cryptoerr_legacy", "test/buildtest_c_decoder", @@ -20164,6 +23510,7 @@ our %unified_info = ( "test/buildtest_c_dsa", "test/buildtest_c_dtls1", "test/buildtest_c_e_os2", + "test/buildtest_c_e_ostime", "test/buildtest_c_ebcdic", "test/buildtest_c_ec", "test/buildtest_c_ecdh", @@ -20173,13 +23520,16 @@ our %unified_info = ( "test/buildtest_c_evp", "test/buildtest_c_fips_names", "test/buildtest_c_hmac", + "test/buildtest_c_hpke", "test/buildtest_c_http", "test/buildtest_c_idea", + "test/buildtest_c_indicator", "test/buildtest_c_kdf", "test/buildtest_c_macros", "test/buildtest_c_md4", "test/buildtest_c_md5", "test/buildtest_c_mdc2", + "test/buildtest_c_ml_kem", "test/buildtest_c_modes", "test/buildtest_c_obj_mac", "test/buildtest_c_objects", @@ -20190,6 +23540,7 @@ our %unified_info = ( "test/buildtest_c_pem2", "test/buildtest_c_prov_ssl", "test/buildtest_c_provider", + "test/buildtest_c_quic", "test/buildtest_c_rand", "test/buildtest_c_rc2", "test/buildtest_c_rc4", @@ -20204,11 +23555,14 @@ our %unified_info = ( "test/buildtest_c_stack", "test/buildtest_c_store", "test/buildtest_c_symhacks", + "test/buildtest_c_thread", "test/buildtest_c_tls1", "test/buildtest_c_ts", "test/buildtest_c_txt_db", "test/buildtest_c_types", "test/buildtest_c_whrlpool", + "test/byteorder_test", + "test/ca_internals_test", "test/casttest", "test/chacha_internal_test", "test/cipher_overhead_test", @@ -20237,6 +23591,7 @@ our %unified_info = ( "test/curve448_internal_test", "test/d2i_test", "test/danetest", + "test/decoder_propq_test", "test/defltfips_test", "test/destest", "test/dhtest", @@ -20261,9 +23616,12 @@ our %unified_info = ( "test/evp_kdf_test", "test/evp_libctx_test", "test/evp_pkey_ctx_new_from_name", + "test/evp_pkey_dhkem_test", "test/evp_pkey_dparams_test", "test/evp_pkey_provided_test", + "test/evp_skey_test", "test/evp_test", + "test/evp_xof_test", "test/exdatatest", "test/exptest", "test/ext_internal_test", @@ -20273,21 +23631,29 @@ our %unified_info = ( "test/gmdifftest", "test/hexstr_test", "test/hmactest", + "test/hpke_test", "test/http_test", "test/ideatest", "test/igetest", + "test/json_test", "test/keymgmt_internal_test", "test/lhash_test", + "test/list_test", "test/localetest", "test/mdc2_internal_test", "test/mdc2test", + "test/membio_test", "test/memleaktest", + "test/ml_dsa_test", + "test/ml_kem_evp_extra_test", + "test/ml_kem_internal_test", "test/modes_internal_test", "test/namemap_internal_test", "test/nodefltctxtest", "test/ocspapitest", "test/ossl_store_test", "test/packettest", + "test/pairwise_fail_test", "test/param_build_test", "test/params_api_test", "test/params_conversion_test", @@ -20296,36 +23662,65 @@ our %unified_info = ( "test/pbetest", "test/pem_read_depr_test", "test/pemtest", + "test/pkcs12_api_test", "test/pkcs12_format_test", "test/pkcs7_test", "test/pkey_meth_kdf_test", "test/pkey_meth_test", "test/poly1305_internal_test", + "test/priority_queue_test", "test/property_test", "test/prov_config_test", "test/provfetchtest", + "test/provider_default_search_path_test", "test/provider_fallback_test", "test/provider_internal_test", "test/provider_pkey_test", "test/provider_status_test", "test/provider_test", "test/punycode_test", + "test/quic_ackm_test", + "test/quic_cc_test", + "test/quic_cfq_test", + "test/quic_client_test", + "test/quic_fc_test", + "test/quic_fifd_test", + "test/quic_lcidm_test", + "test/quic_multistream_test", + "test/quic_newcid_test", + "test/quic_qlog_test", + "test/quic_radix_test", + "test/quic_rcidm_test", + "test/quic_record_test", + "test/quic_srt_gen_test", + "test/quic_srtm_test", + "test/quic_stream_test", + "test/quic_tserver_test", + "test/quic_txp_test", + "test/quic_txpim_test", + "test/quic_wire_test", + "test/quicapitest", + "test/quicfaultstest", "test/rand_status_test", "test/rand_test", "test/rc2test", "test/rc4test", "test/rc5test", - "test/rdrand_sanitytest", + "test/rdcpu_sanitytest", "test/recordlentest", + "test/rpktest", "test/rsa_complex", "test/rsa_mp_test", "test/rsa_sp800_56b_test", "test/rsa_test", + "test/rsa_x931_test", + "test/safe_math_test", "test/sanitytest", "test/secmemtest", "test/servername_test", "test/sha_test", "test/siphash_internal_test", + "test/slh_dsa_test", "test/sm2_internal_test", "test/sm3_internal_test", "test/sm4_internal_test", @@ -20333,6 +23728,7 @@ our %unified_info = ( "test/srptest", "test/ssl_cert_table_internal_test", "test/ssl_ctx_test", + "test/ssl_handshake_rtt_test", "test/ssl_old_test", "test/ssl_test", "test/ssl_test_ctx_test", @@ -20340,13 +23736,17 @@ our %unified_info = ( "test/sslbuffertest", "test/sslcorrupttest", "test/stack_test", + "test/strtoultest", "test/sysdefaulttest", "test/test_test", + "test/threadpool_test", "test/threadstest", "test/threadstest_fips", "test/time_offset_test", + "test/time_test", "test/tls13ccstest", "test/tls13encryptiontest", + "test/tls13groupselection_test", "test/trace_api_test", "test/uitest", "test/upcallstest", @@ -20356,9 +23756,13 @@ our %unified_info = ( "test/verify_extra_test", "test/versions", "test/wpackettest", + "test/x509_acert_test", "test/x509_check_cert_pkey_test", "test/x509_dup_cert_test", "test/x509_internal_test", + "test/x509_load_cert_file_test", + "test/x509_req_test", + "test/x509_test", "test/x509_time_test", "test/x509aux" ], @@ -20374,6 +23778,33 @@ our %unified_info = ( "apps/CA.pl" => [ "apps/CA.pl.in" ], + "apps/ca_internals_test-bin-ca.o" => [ + "apps/ca.c" + ], + "apps/lib/ca_internals_test-bin-app_libctx.o" => [ + "apps/lib/app_libctx.c" + ], + "apps/lib/ca_internals_test-bin-app_provider.o" => [ + "apps/lib/app_provider.c" + ], + "apps/lib/ca_internals_test-bin-app_rand.o" => [ + "apps/lib/app_rand.c" + ], + "apps/lib/ca_internals_test-bin-app_x509.o" => [ + "apps/lib/app_x509.c" + ], + "apps/lib/ca_internals_test-bin-apps.o" => [ + "apps/lib/apps.c" + ], + "apps/lib/ca_internals_test-bin-apps_ui.o" => [ + "apps/lib/apps_ui.c" + ], + "apps/lib/ca_internals_test-bin-engine.o" => [ + "apps/lib/engine.c" + ], + "apps/lib/ca_internals_test-bin-fmt.o" => [ + "apps/lib/fmt.c" + ], "apps/lib/cmp_client_test-bin-cmp_mock_srv.o" => [ "apps/lib/cmp_mock_srv.c" ], @@ -20395,6 +23826,9 @@ our %unified_info = ( "apps/lib/libapps-lib-apps.o" => [ "apps/lib/apps.c" ], + "apps/lib/libapps-lib-apps_opt_printf.o" => [ + "apps/lib/apps_opt_printf.c" + ], "apps/lib/libapps-lib-apps_ui.o" => [ "apps/lib/apps_ui.c" ], @@ -20413,6 +23847,9 @@ our %unified_info = ( "apps/lib/libapps-lib-http_server.o" => [ "apps/lib/http_server.c" ], + "apps/lib/libapps-lib-log.o" => [ + "apps/lib/log.c" + ], "apps/lib/libapps-lib-names.o" => [ "apps/lib/names.c" ], @@ -20444,12 +23881,14 @@ our %unified_info = ( "apps/lib/libapps-lib-app_rand.o", "apps/lib/libapps-lib-app_x509.o", "apps/lib/libapps-lib-apps.o", + "apps/lib/libapps-lib-apps_opt_printf.o", "apps/lib/libapps-lib-apps_ui.o", "apps/lib/libapps-lib-columns.o", "apps/lib/libapps-lib-engine.o", "apps/lib/libapps-lib-engine_loader.o", "apps/lib/libapps-lib-fmt.o", "apps/lib/libapps-lib-http_server.o", + "apps/lib/libapps-lib-log.o", "apps/lib/libapps-lib-names.o", "apps/lib/libapps-lib-opt.o", "apps/lib/libapps-lib-s_cb.o", @@ -20503,6 +23942,7 @@ our %unified_info = ( "apps/openssl-bin-s_server.o", "apps/openssl-bin-s_time.o", "apps/openssl-bin-sess_id.o", + "apps/openssl-bin-skeyutl.o", "apps/openssl-bin-smime.o", "apps/openssl-bin-speed.o", "apps/openssl-bin-spkac.o", @@ -20648,6 +24088,9 @@ our %unified_info = ( "apps/openssl-bin-sess_id.o" => [ "apps/sess_id.c" ], + "apps/openssl-bin-skeyutl.o" => [ + "apps/skeyutl.c" + ], "apps/openssl-bin-smime.o" => [ "apps/smime.c" ], @@ -20717,6 +24160,12 @@ our %unified_info = ( "crypto/aria/libcrypto-lib-aria.o" => [ "crypto/aria/aria.c" ], + "crypto/asn1/asn1_time_test-bin-a_time.o" => [ + "crypto/asn1/a_time.c" + ], + "crypto/asn1/ca_internals_test-bin-a_time.o" => [ + "crypto/asn1/a_time.c" + ], "crypto/asn1/libcrypto-lib-a_bitstr.o" => [ "crypto/asn1/a_bitstr.c" ], @@ -20909,6 +24358,9 @@ our %unified_info = ( "crypto/asn1/libcrypto-lib-x_val.o" => [ "crypto/asn1/x_val.c" ], + "crypto/asn1_time_test-bin-ctype.o" => [ + "crypto/ctype.c" + ], "crypto/async/arch/libcrypto-lib-async_null.o" => [ "crypto/async/arch/async_null.c" ], @@ -21002,6 +24454,9 @@ our %unified_info = ( "crypto/bio/libcrypto-lib-bss_dgram.o" => [ "crypto/bio/bss_dgram.c" ], + "crypto/bio/libcrypto-lib-bss_dgram_pair.o" => [ + "crypto/bio/bss_dgram_pair.c" + ], "crypto/bio/libcrypto-lib-bss_fd.o" => [ "crypto/bio/bss_fd.c" ], @@ -21215,6 +24670,9 @@ our %unified_info = ( "crypto/buffer/libfips-lib-buffer.o" => [ "crypto/buffer/buffer.c" ], + "crypto/ca_internals_test-bin-ctype.o" => [ + "crypto/ctype.c" + ], "crypto/camellia/libcrypto-lib-camellia.o" => [ "crypto/camellia/camellia.c" ], @@ -21272,6 +24730,9 @@ our %unified_info = ( "crypto/cmp/libcrypto-lib-cmp_err.o" => [ "crypto/cmp/cmp_err.c" ], + "crypto/cmp/libcrypto-lib-cmp_genm.o" => [ + "crypto/cmp/cmp_genm.c" + ], "crypto/cmp/libcrypto-lib-cmp_hdr.o" => [ "crypto/cmp/cmp_hdr.c" ], @@ -21947,9 +25408,15 @@ our %unified_info = ( "crypto/err/libcrypto-lib-err_blocks.o" => [ "crypto/err/err_blocks.c" ], + "crypto/err/libcrypto-lib-err_mark.o" => [ + "crypto/err/err_mark.c" + ], "crypto/err/libcrypto-lib-err_prn.o" => [ "crypto/err/err_prn.c" ], + "crypto/err/libcrypto-lib-err_save.o" => [ + "crypto/err/err_save.c" + ], "crypto/ess/libcrypto-lib-ess_asn1.o" => [ "crypto/ess/ess_asn1.c" ], @@ -22196,9 +25663,15 @@ our %unified_info = ( "crypto/evp/libcrypto-lib-pmeth_lib.o" => [ "crypto/evp/pmeth_lib.c" ], + "crypto/evp/libcrypto-lib-s_lib.o" => [ + "crypto/evp/s_lib.c" + ], "crypto/evp/libcrypto-lib-signature.o" => [ "crypto/evp/signature.c" ], + "crypto/evp/libcrypto-lib-skeymgmt_meth.o" => [ + "crypto/evp/skeymgmt_meth.c" + ], "crypto/evp/libfips-lib-asymcipher.o" => [ "crypto/evp/asymcipher.c" ], @@ -22244,9 +25717,6 @@ our %unified_info = ( "crypto/evp/libfips-lib-keymgmt_meth.o" => [ "crypto/evp/keymgmt_meth.c" ], - "crypto/evp/libfips-lib-m_sigver.o" => [ - "crypto/evp/m_sigver.c" - ], "crypto/evp/libfips-lib-mac_lib.o" => [ "crypto/evp/mac_lib.c" ], @@ -22265,9 +25735,15 @@ our %unified_info = ( "crypto/evp/libfips-lib-pmeth_lib.o" => [ "crypto/evp/pmeth_lib.c" ], + "crypto/evp/libfips-lib-s_lib.o" => [ + "crypto/evp/s_lib.c" + ], "crypto/evp/libfips-lib-signature.o" => [ "crypto/evp/signature.c" ], + "crypto/evp/libfips-lib-skeymgmt_meth.o" => [ + "crypto/evp/skeymgmt_meth.c" + ], "crypto/ffc/libcrypto-lib-ffc_backend.o" => [ "crypto/ffc/ffc_backend.c" ], @@ -22310,12 +25786,30 @@ our %unified_info = ( "crypto/ffc/libfips-lib-ffc_params_validate.o" => [ "crypto/ffc/ffc_params_validate.c" ], + "crypto/hashtable/libcrypto-lib-hashfunc.o" => [ + "crypto/hashtable/hashfunc.c" + ], + "crypto/hashtable/libcrypto-lib-hashtable.o" => [ + "crypto/hashtable/hashtable.c" + ], + "crypto/hashtable/libfips-lib-hashfunc.o" => [ + "crypto/hashtable/hashfunc.c" + ], + "crypto/hashtable/libfips-lib-hashtable.o" => [ + "crypto/hashtable/hashtable.c" + ], "crypto/hmac/libcrypto-lib-hmac.o" => [ "crypto/hmac/hmac.c" ], "crypto/hmac/libfips-lib-hmac.o" => [ "crypto/hmac/hmac.c" ], + "crypto/hpke/libcrypto-lib-hpke.o" => [ + "crypto/hpke/hpke.c" + ], + "crypto/hpke/libcrypto-lib-hpke_util.o" => [ + "crypto/hpke/hpke_util.c" + ], "crypto/http/libcrypto-lib-http_client.o" => [ "crypto/http/http_client.c" ], @@ -22358,6 +25852,9 @@ our %unified_info = ( "crypto/libcrypto-lib-bsearch.o" => [ "crypto/bsearch.c" ], + "crypto/libcrypto-lib-comp_methods.o" => [ + "crypto/comp_methods.c" + ], "crypto/libcrypto-lib-context.o" => [ "crypto/context.c" ], @@ -22385,9 +25882,15 @@ our %unified_info = ( "crypto/libcrypto-lib-cversion.o" => [ "crypto/cversion.c" ], + "crypto/libcrypto-lib-defaults.o" => [ + "crypto/defaults.c" + ], "crypto/libcrypto-lib-der_writer.o" => [ "crypto/der_writer.c" ], + "crypto/libcrypto-lib-deterministic_nonce.o" => [ + "crypto/deterministic_nonce.c" + ], "crypto/libcrypto-lib-ebcdic.o" => [ "crypto/ebcdic.c" ], @@ -22397,6 +25900,9 @@ our %unified_info = ( "crypto/libcrypto-lib-getenv.o" => [ "crypto/getenv.c" ], + "crypto/libcrypto-lib-indicator_core.o" => [ + "crypto/indicator_core.c" + ], "crypto/libcrypto-lib-info.o" => [ "crypto/info.c" ], @@ -22448,6 +25954,9 @@ our %unified_info = ( "crypto/libcrypto-lib-params_from_text.o" => [ "crypto/params_from_text.c" ], + "crypto/libcrypto-lib-params_idx.o" => [ + "crypto/params_idx.c" + ], "crypto/libcrypto-lib-passphrase.o" => [ "crypto/passphrase.c" ], @@ -22469,12 +25978,21 @@ our %unified_info = ( "crypto/libcrypto-lib-punycode.o" => [ "crypto/punycode.c" ], + "crypto/libcrypto-lib-quic_vlint.o" => [ + "crypto/quic_vlint.c" + ], "crypto/libcrypto-lib-self_test_core.o" => [ "crypto/self_test_core.c" ], + "crypto/libcrypto-lib-sleep.o" => [ + "crypto/sleep.c" + ], "crypto/libcrypto-lib-sparse_array.o" => [ "crypto/sparse_array.c" ], + "crypto/libcrypto-lib-ssl_err.o" => [ + "crypto/ssl_err.c" + ], "crypto/libcrypto-lib-threads_lib.o" => [ "crypto/threads_lib.c" ], @@ -22487,6 +26005,9 @@ our %unified_info = ( "crypto/libcrypto-lib-threads_win.o" => [ "crypto/threads_win.c" ], + "crypto/libcrypto-lib-time.o" => [ + "crypto/time.c" + ], "crypto/libcrypto-lib-trace.o" => [ "crypto/trace.c" ], @@ -22553,6 +26074,9 @@ our %unified_info = ( "crypto/libfips-lib-params_from_text.o" => [ "crypto/params_from_text.c" ], + "crypto/libfips-lib-params_idx.o" => [ + "crypto/params_idx.c" + ], "crypto/libfips-lib-provider_core.o" => [ "crypto/provider_core.c" ], @@ -22577,6 +26101,9 @@ our %unified_info = ( "crypto/libfips-lib-threads_win.o" => [ "crypto/threads_win.c" ], + "crypto/libfips-lib-time.o" => [ + "crypto/time.c" + ], "crypto/md4/libcrypto-lib-md4_dgst.o" => [ "crypto/md4/md4_dgst.c" ], @@ -22598,6 +26125,60 @@ our %unified_info = ( "crypto/mdc2/libcrypto-lib-mdc2dgst.o" => [ "crypto/mdc2/mdc2dgst.c" ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_encoders.o" => [ + "crypto/ml_dsa/ml_dsa_encoders.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key.o" => [ + "crypto/ml_dsa/ml_dsa_key.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key_compress.o" => [ + "crypto/ml_dsa/ml_dsa_key_compress.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_matrix.o" => [ + "crypto/ml_dsa/ml_dsa_matrix.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_ntt.o" => [ + "crypto/ml_dsa/ml_dsa_ntt.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_params.o" => [ + "crypto/ml_dsa/ml_dsa_params.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sample.o" => [ + "crypto/ml_dsa/ml_dsa_sample.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sign.o" => [ + "crypto/ml_dsa/ml_dsa_sign.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_encoders.o" => [ + "crypto/ml_dsa/ml_dsa_encoders.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_key.o" => [ + "crypto/ml_dsa/ml_dsa_key.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_key_compress.o" => [ + "crypto/ml_dsa/ml_dsa_key_compress.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_matrix.o" => [ + "crypto/ml_dsa/ml_dsa_matrix.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_ntt.o" => [ + "crypto/ml_dsa/ml_dsa_ntt.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_params.o" => [ + "crypto/ml_dsa/ml_dsa_params.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_sample.o" => [ + "crypto/ml_dsa/ml_dsa_sample.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_sign.o" => [ + "crypto/ml_dsa/ml_dsa_sign.c" + ], + "crypto/ml_kem/libcrypto-lib-ml_kem.o" => [ + "crypto/ml_kem/ml_kem.c" + ], + "crypto/ml_kem/libfips-lib-ml_kem.o" => [ + "crypto/ml_kem/ml_kem.c" + ], "crypto/modes/libcrypto-lib-cbc128.o" => [ "crypto/modes/cbc128.c" ], @@ -22631,6 +26212,9 @@ our %unified_info = ( "crypto/modes/libcrypto-lib-xts128.o" => [ "crypto/modes/xts128.c" ], + "crypto/modes/libcrypto-lib-xts128gb.o" => [ + "crypto/modes/xts128gb.c" + ], "crypto/modes/libfips-lib-cbc128.o" => [ "crypto/modes/cbc128.c" ], @@ -22655,6 +26239,9 @@ our %unified_info = ( "crypto/modes/libfips-lib-xts128.o" => [ "crypto/modes/xts128.c" ], + "crypto/modes/libfips-lib-xts128gb.o" => [ + "crypto/modes/xts128gb.c" + ], "crypto/objects/libcrypto-lib-o_names.o" => [ "crypto/objects/o_names.c" ], @@ -22700,6 +26287,9 @@ our %unified_info = ( "crypto/ocsp/libcrypto-lib-v3_ocsp.o" => [ "crypto/ocsp/v3_ocsp.c" ], + "crypto/packettest-bin-quic_vlint.o" => [ + "crypto/quic_vlint.c" + ], "crypto/pem/libcrypto-lib-pem_all.o" => [ "crypto/pem/pem_all.c" ], @@ -22859,6 +26449,9 @@ our %unified_info = ( "crypto/rand/libcrypto-lib-rand_pool.o" => [ "crypto/rand/rand_pool.c" ], + "crypto/rand/libcrypto-lib-rand_uniform.o" => [ + "crypto/rand/rand_uniform.c" + ], "crypto/rand/libcrypto-lib-randfile.o" => [ "crypto/rand/randfile.c" ], @@ -23072,6 +26665,66 @@ our %unified_info = ( "crypto/siphash/libcrypto-lib-siphash.o" => [ "crypto/siphash/siphash.c" ], + "crypto/slh_dsa/libcrypto-lib-slh_adrs.o" => [ + "crypto/slh_dsa/slh_adrs.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_dsa.o" => [ + "crypto/slh_dsa/slh_dsa.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_dsa_hash_ctx.o" => [ + "crypto/slh_dsa/slh_dsa_hash_ctx.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_dsa_key.o" => [ + "crypto/slh_dsa/slh_dsa_key.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_fors.o" => [ + "crypto/slh_dsa/slh_fors.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_hash.o" => [ + "crypto/slh_dsa/slh_hash.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_hypertree.o" => [ + "crypto/slh_dsa/slh_hypertree.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_params.o" => [ + "crypto/slh_dsa/slh_params.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_wots.o" => [ + "crypto/slh_dsa/slh_wots.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_xmss.o" => [ + "crypto/slh_dsa/slh_xmss.c" + ], + "crypto/slh_dsa/libfips-lib-slh_adrs.o" => [ + "crypto/slh_dsa/slh_adrs.c" + ], + "crypto/slh_dsa/libfips-lib-slh_dsa.o" => [ + "crypto/slh_dsa/slh_dsa.c" + ], + "crypto/slh_dsa/libfips-lib-slh_dsa_hash_ctx.o" => [ + "crypto/slh_dsa/slh_dsa_hash_ctx.c" + ], + "crypto/slh_dsa/libfips-lib-slh_dsa_key.o" => [ + "crypto/slh_dsa/slh_dsa_key.c" + ], + "crypto/slh_dsa/libfips-lib-slh_fors.o" => [ + "crypto/slh_dsa/slh_fors.c" + ], + "crypto/slh_dsa/libfips-lib-slh_hash.o" => [ + "crypto/slh_dsa/slh_hash.c" + ], + "crypto/slh_dsa/libfips-lib-slh_hypertree.o" => [ + "crypto/slh_dsa/slh_hypertree.c" + ], + "crypto/slh_dsa/libfips-lib-slh_params.o" => [ + "crypto/slh_dsa/slh_params.c" + ], + "crypto/slh_dsa/libfips-lib-slh_wots.o" => [ + "crypto/slh_dsa/slh_wots.c" + ], + "crypto/slh_dsa/libfips-lib-slh_xmss.o" => [ + "crypto/slh_dsa/slh_xmss.c" + ], "crypto/sm2/libcrypto-lib-sm2_crypt.o" => [ "crypto/sm2/sm2_crypt.c" ], @@ -23126,6 +26779,42 @@ our %unified_info = ( "crypto/store/libcrypto-lib-store_strings.o" => [ "crypto/store/store_strings.c" ], + "crypto/thread/arch/libcrypto-lib-thread_none.o" => [ + "crypto/thread/arch/thread_none.c" + ], + "crypto/thread/arch/libcrypto-lib-thread_posix.o" => [ + "crypto/thread/arch/thread_posix.c" + ], + "crypto/thread/arch/libcrypto-lib-thread_win.o" => [ + "crypto/thread/arch/thread_win.c" + ], + "crypto/thread/arch/libfips-lib-thread_none.o" => [ + "crypto/thread/arch/thread_none.c" + ], + "crypto/thread/arch/libfips-lib-thread_posix.o" => [ + "crypto/thread/arch/thread_posix.c" + ], + "crypto/thread/arch/libfips-lib-thread_win.o" => [ + "crypto/thread/arch/thread_win.c" + ], + "crypto/thread/libcrypto-lib-api.o" => [ + "crypto/thread/api.c" + ], + "crypto/thread/libcrypto-lib-arch.o" => [ + "crypto/thread/arch.c" + ], + "crypto/thread/libcrypto-lib-internal.o" => [ + "crypto/thread/internal.c" + ], + "crypto/thread/libfips-lib-api.o" => [ + "crypto/thread/api.c" + ], + "crypto/thread/libfips-lib-arch.o" => [ + "crypto/thread/arch.c" + ], + "crypto/thread/libfips-lib-internal.o" => [ + "crypto/thread/internal.c" + ], "crypto/ts/libcrypto-lib-ts_asn1.o" => [ "crypto/ts/ts_asn1.c" ], @@ -23210,6 +26899,9 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-pcy_tree.o" => [ "crypto/x509/pcy_tree.c" ], + "crypto/x509/libcrypto-lib-t_acert.o" => [ + "crypto/x509/t_acert.c" + ], "crypto/x509/libcrypto-lib-t_crl.o" => [ "crypto/x509/t_crl.c" ], @@ -23219,6 +26911,12 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-t_x509.o" => [ "crypto/x509/t_x509.c" ], + "crypto/x509/libcrypto-lib-v3_aaa.o" => [ + "crypto/x509/v3_aaa.c" + ], + "crypto/x509/libcrypto-lib-v3_ac_tgt.o" => [ + "crypto/x509/v3_ac_tgt.c" + ], "crypto/x509/libcrypto-lib-v3_addr.o" => [ "crypto/x509/v3_addr.c" ], @@ -23234,6 +26932,21 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_asid.o" => [ "crypto/x509/v3_asid.c" ], + "crypto/x509/libcrypto-lib-v3_attrdesc.o" => [ + "crypto/x509/v3_attrdesc.c" + ], + "crypto/x509/libcrypto-lib-v3_attrmap.o" => [ + "crypto/x509/v3_attrmap.c" + ], + "crypto/x509/libcrypto-lib-v3_audit_id.o" => [ + "crypto/x509/v3_audit_id.c" + ], + "crypto/x509/libcrypto-lib-v3_authattid.o" => [ + "crypto/x509/v3_authattid.c" + ], + "crypto/x509/libcrypto-lib-v3_battcons.o" => [ + "crypto/x509/v3_battcons.c" + ], "crypto/x509/libcrypto-lib-v3_bcons.o" => [ "crypto/x509/v3_bcons.c" ], @@ -23258,15 +26971,24 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_genn.o" => [ "crypto/x509/v3_genn.c" ], + "crypto/x509/libcrypto-lib-v3_group_ac.o" => [ + "crypto/x509/v3_group_ac.c" + ], "crypto/x509/libcrypto-lib-v3_ia5.o" => [ "crypto/x509/v3_ia5.c" ], + "crypto/x509/libcrypto-lib-v3_ind_iss.o" => [ + "crypto/x509/v3_ind_iss.c" + ], "crypto/x509/libcrypto-lib-v3_info.o" => [ "crypto/x509/v3_info.c" ], "crypto/x509/libcrypto-lib-v3_int.o" => [ "crypto/x509/v3_int.c" ], + "crypto/x509/libcrypto-lib-v3_iobo.o" => [ + "crypto/x509/v3_iobo.c" + ], "crypto/x509/libcrypto-lib-v3_ist.o" => [ "crypto/x509/v3_ist.c" ], @@ -23276,6 +26998,12 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_ncons.o" => [ "crypto/x509/v3_ncons.c" ], + "crypto/x509/libcrypto-lib-v3_no_ass.o" => [ + "crypto/x509/v3_no_ass.c" + ], + "crypto/x509/libcrypto-lib-v3_no_rev_avail.o" => [ + "crypto/x509/v3_no_rev_avail.c" + ], "crypto/x509/libcrypto-lib-v3_pci.o" => [ "crypto/x509/v3_pci.c" ], @@ -23297,18 +27025,36 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_purp.o" => [ "crypto/x509/v3_purp.c" ], + "crypto/x509/libcrypto-lib-v3_rolespec.o" => [ + "crypto/x509/v3_rolespec.c" + ], "crypto/x509/libcrypto-lib-v3_san.o" => [ "crypto/x509/v3_san.c" ], + "crypto/x509/libcrypto-lib-v3_sda.o" => [ + "crypto/x509/v3_sda.c" + ], + "crypto/x509/libcrypto-lib-v3_single_use.o" => [ + "crypto/x509/v3_single_use.c" + ], "crypto/x509/libcrypto-lib-v3_skid.o" => [ "crypto/x509/v3_skid.c" ], + "crypto/x509/libcrypto-lib-v3_soa_id.o" => [ + "crypto/x509/v3_soa_id.c" + ], "crypto/x509/libcrypto-lib-v3_sxnet.o" => [ "crypto/x509/v3_sxnet.c" ], + "crypto/x509/libcrypto-lib-v3_timespec.o" => [ + "crypto/x509/v3_timespec.c" + ], "crypto/x509/libcrypto-lib-v3_tlsf.o" => [ "crypto/x509/v3_tlsf.c" ], + "crypto/x509/libcrypto-lib-v3_usernotice.o" => [ + "crypto/x509/v3_usernotice.c" + ], "crypto/x509/libcrypto-lib-v3_utf8.o" => [ "crypto/x509/v3_utf8.c" ], @@ -23318,6 +27064,9 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3err.o" => [ "crypto/x509/v3err.c" ], + "crypto/x509/libcrypto-lib-x509_acert.o" => [ + "crypto/x509/x509_acert.c" + ], "crypto/x509/libcrypto-lib-x509_att.o" => [ "crypto/x509/x509_att.c" ], @@ -23369,6 +27118,9 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x509_vpm.o" => [ "crypto/x509/x509_vpm.c" ], + "crypto/x509/libcrypto-lib-x509aset.o" => [ + "crypto/x509/x509aset.c" + ], "crypto/x509/libcrypto-lib-x509cset.o" => [ "crypto/x509/x509cset.c" ], @@ -23396,6 +27148,9 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x_exten.o" => [ "crypto/x509/x_exten.c" ], + "crypto/x509/libcrypto-lib-x_ietfatt.o" => [ + "crypto/x509/x_ietfatt.c" + ], "crypto/x509/libcrypto-lib-x_name.o" => [ "crypto/x509/x_name.c" ], @@ -23417,6 +27172,16 @@ our %unified_info = ( "engines/libcrypto-lib-e_padlock.o" => [ "engines/e_padlock.c" ], + "fuzz/acert-test" => [ + "fuzz/acert-test-bin-acert.o", + "fuzz/acert-test-bin-test-corpus.o" + ], + "fuzz/acert-test-bin-acert.o" => [ + "fuzz/acert.c" + ], + "fuzz/acert-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], "fuzz/asn1-test" => [ "fuzz/asn1-test-bin-asn1.o", "fuzz/asn1-test-bin-fuzz_rand.o", @@ -23529,6 +27294,190 @@ our %unified_info = ( "fuzz/ct-test-bin-test-corpus.o" => [ "fuzz/test-corpus.c" ], + "fuzz/decoder-test" => [ + "fuzz/decoder-test-bin-decoder.o", + "fuzz/decoder-test-bin-fuzz_rand.o", + "fuzz/decoder-test-bin-test-corpus.o" + ], + "fuzz/decoder-test-bin-decoder.o" => [ + "fuzz/decoder.c" + ], + "fuzz/decoder-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/decoder-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/dtlsclient-test" => [ + "fuzz/dtlsclient-test-bin-dtlsclient.o", + "fuzz/dtlsclient-test-bin-fuzz_rand.o", + "fuzz/dtlsclient-test-bin-test-corpus.o" + ], + "fuzz/dtlsclient-test-bin-dtlsclient.o" => [ + "fuzz/dtlsclient.c" + ], + "fuzz/dtlsclient-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/dtlsclient-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/dtlsserver-test" => [ + "fuzz/dtlsserver-test-bin-dtlsserver.o", + "fuzz/dtlsserver-test-bin-fuzz_rand.o", + "fuzz/dtlsserver-test-bin-test-corpus.o" + ], + "fuzz/dtlsserver-test-bin-dtlsserver.o" => [ + "fuzz/dtlsserver.c" + ], + "fuzz/dtlsserver-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/dtlsserver-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/hashtable-test" => [ + "fuzz/hashtable-test-bin-fuzz_rand.o", + "fuzz/hashtable-test-bin-hashtable.o", + "fuzz/hashtable-test-bin-test-corpus.o" + ], + "fuzz/hashtable-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/hashtable-test-bin-hashtable.o" => [ + "fuzz/hashtable.c" + ], + "fuzz/hashtable-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/ml-dsa-test" => [ + "fuzz/ml-dsa-test-bin-fuzz_rand.o", + "fuzz/ml-dsa-test-bin-ml-dsa.o", + "fuzz/ml-dsa-test-bin-test-corpus.o" + ], + "fuzz/ml-dsa-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/ml-dsa-test-bin-ml-dsa.o" => [ + "fuzz/ml-dsa.c" + ], + "fuzz/ml-dsa-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/ml-kem-test" => [ + "fuzz/ml-kem-test-bin-fuzz_rand.o", + "fuzz/ml-kem-test-bin-ml-kem.o", + "fuzz/ml-kem-test-bin-test-corpus.o" + ], + "fuzz/ml-kem-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/ml-kem-test-bin-ml-kem.o" => [ + "fuzz/ml-kem.c" + ], + "fuzz/ml-kem-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/pem-test" => [ + "fuzz/pem-test-bin-pem.o", + "fuzz/pem-test-bin-test-corpus.o" + ], + "fuzz/pem-test-bin-pem.o" => [ + "fuzz/pem.c" + ], + "fuzz/pem-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/provider-test" => [ + "fuzz/provider-test-bin-provider.o", + "fuzz/provider-test-bin-test-corpus.o" + ], + "fuzz/provider-test-bin-provider.o" => [ + "fuzz/provider.c" + ], + "fuzz/provider-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/punycode-test" => [ + "fuzz/punycode-test-bin-punycode.o", + "fuzz/punycode-test-bin-test-corpus.o" + ], + "fuzz/punycode-test-bin-punycode.o" => [ + "fuzz/punycode.c" + ], + "fuzz/punycode-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-client-test" => [ + "fuzz/quic-client-test-bin-fuzz_rand.o", + "fuzz/quic-client-test-bin-quic-client.o", + "fuzz/quic-client-test-bin-test-corpus.o" + ], + "fuzz/quic-client-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-client-test-bin-quic-client.o" => [ + "fuzz/quic-client.c" + ], + "fuzz/quic-client-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-lcidm-test" => [ + "fuzz/quic-lcidm-test-bin-fuzz_rand.o", + "fuzz/quic-lcidm-test-bin-quic-lcidm.o", + "fuzz/quic-lcidm-test-bin-test-corpus.o" + ], + "fuzz/quic-lcidm-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-lcidm-test-bin-quic-lcidm.o" => [ + "fuzz/quic-lcidm.c" + ], + "fuzz/quic-lcidm-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-rcidm-test" => [ + "fuzz/quic-rcidm-test-bin-fuzz_rand.o", + "fuzz/quic-rcidm-test-bin-quic-rcidm.o", + "fuzz/quic-rcidm-test-bin-test-corpus.o" + ], + "fuzz/quic-rcidm-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-rcidm-test-bin-quic-rcidm.o" => [ + "fuzz/quic-rcidm.c" + ], + "fuzz/quic-rcidm-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-server-test" => [ + "fuzz/quic-server-test-bin-fuzz_rand.o", + "fuzz/quic-server-test-bin-quic-server.o", + "fuzz/quic-server-test-bin-test-corpus.o" + ], + "fuzz/quic-server-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-server-test-bin-quic-server.o" => [ + "fuzz/quic-server.c" + ], + "fuzz/quic-server-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-srtm-test" => [ + "fuzz/quic-srtm-test-bin-fuzz_rand.o", + "fuzz/quic-srtm-test-bin-quic-srtm.o", + "fuzz/quic-srtm-test-bin-test-corpus.o" + ], + "fuzz/quic-srtm-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-srtm-test-bin-quic-srtm.o" => [ + "fuzz/quic-srtm.c" + ], + "fuzz/quic-srtm-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], "fuzz/server-test" => [ "fuzz/server-test-bin-fuzz_rand.o", "fuzz/server-test-bin-server.o", @@ -23543,6 +27492,40 @@ our %unified_info = ( "fuzz/server-test-bin-test-corpus.o" => [ "fuzz/test-corpus.c" ], + "fuzz/slh-dsa-test" => [ + "fuzz/slh-dsa-test-bin-fuzz_rand.o", + "fuzz/slh-dsa-test-bin-slh-dsa.o", + "fuzz/slh-dsa-test-bin-test-corpus.o" + ], + "fuzz/slh-dsa-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/slh-dsa-test-bin-slh-dsa.o" => [ + "fuzz/slh-dsa.c" + ], + "fuzz/slh-dsa-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/smime-test" => [ + "fuzz/smime-test-bin-smime.o", + "fuzz/smime-test-bin-test-corpus.o" + ], + "fuzz/smime-test-bin-smime.o" => [ + "fuzz/smime.c" + ], + "fuzz/smime-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/v3name-test" => [ + "fuzz/v3name-test-bin-test-corpus.o", + "fuzz/v3name-test-bin-v3name.o" + ], + "fuzz/v3name-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/v3name-test-bin-v3name.o" => [ + "fuzz/v3name.c" + ], "fuzz/x509-test" => [ "fuzz/x509-test-bin-fuzz_rand.o", "fuzz/x509-test-bin-test-corpus.o", @@ -23662,6 +27645,7 @@ our %unified_info = ( "crypto/bio/libcrypto-lib-bss_conn.o", "crypto/bio/libcrypto-lib-bss_core.o", "crypto/bio/libcrypto-lib-bss_dgram.o", + "crypto/bio/libcrypto-lib-bss_dgram_pair.o", "crypto/bio/libcrypto-lib-bss_fd.o", "crypto/bio/libcrypto-lib-bss_file.o", "crypto/bio/libcrypto-lib-bss_log.o", @@ -23722,6 +27706,7 @@ our %unified_info = ( "crypto/cmp/libcrypto-lib-cmp_client.o", "crypto/cmp/libcrypto-lib-cmp_ctx.o", "crypto/cmp/libcrypto-lib-cmp_err.o", + "crypto/cmp/libcrypto-lib-cmp_genm.o", "crypto/cmp/libcrypto-lib-cmp_hdr.o", "crypto/cmp/libcrypto-lib-cmp_http.o", "crypto/cmp/libcrypto-lib-cmp_msg.o", @@ -23897,7 +27882,9 @@ our %unified_info = ( "crypto/err/libcrypto-lib-err_all.o", "crypto/err/libcrypto-lib-err_all_legacy.o", "crypto/err/libcrypto-lib-err_blocks.o", + "crypto/err/libcrypto-lib-err_mark.o", "crypto/err/libcrypto-lib-err_prn.o", + "crypto/err/libcrypto-lib-err_save.o", "crypto/ess/libcrypto-lib-ess_asn1.o", "crypto/ess/libcrypto-lib-ess_err.o", "crypto/ess/libcrypto-lib-ess_lib.o", @@ -23980,7 +27967,9 @@ our %unified_info = ( "crypto/evp/libcrypto-lib-pmeth_check.o", "crypto/evp/libcrypto-lib-pmeth_gn.o", "crypto/evp/libcrypto-lib-pmeth_lib.o", + "crypto/evp/libcrypto-lib-s_lib.o", "crypto/evp/libcrypto-lib-signature.o", + "crypto/evp/libcrypto-lib-skeymgmt_meth.o", "crypto/ffc/libcrypto-lib-ffc_backend.o", "crypto/ffc/libcrypto-lib-ffc_dh.o", "crypto/ffc/libcrypto-lib-ffc_key_generate.o", @@ -23988,7 +27977,11 @@ our %unified_info = ( "crypto/ffc/libcrypto-lib-ffc_params.o", "crypto/ffc/libcrypto-lib-ffc_params_generate.o", "crypto/ffc/libcrypto-lib-ffc_params_validate.o", + "crypto/hashtable/libcrypto-lib-hashfunc.o", + "crypto/hashtable/libcrypto-lib-hashtable.o", "crypto/hmac/libcrypto-lib-hmac.o", + "crypto/hpke/libcrypto-lib-hpke.o", + "crypto/hpke/libcrypto-lib-hpke_util.o", "crypto/http/libcrypto-lib-http_client.o", "crypto/http/libcrypto-lib-http_err.o", "crypto/http/libcrypto-lib-http_lib.o", @@ -24002,6 +27995,7 @@ our %unified_info = ( "crypto/lhash/libcrypto-lib-lhash.o", "crypto/libcrypto-lib-asn1_dsa.o", "crypto/libcrypto-lib-bsearch.o", + "crypto/libcrypto-lib-comp_methods.o", "crypto/libcrypto-lib-context.o", "crypto/libcrypto-lib-core_algorithm.o", "crypto/libcrypto-lib-core_fetch.o", @@ -24011,10 +28005,13 @@ our %unified_info = ( "crypto/libcrypto-lib-cryptlib.o", "crypto/libcrypto-lib-ctype.o", "crypto/libcrypto-lib-cversion.o", + "crypto/libcrypto-lib-defaults.o", "crypto/libcrypto-lib-der_writer.o", + "crypto/libcrypto-lib-deterministic_nonce.o", "crypto/libcrypto-lib-ebcdic.o", "crypto/libcrypto-lib-ex_data.o", "crypto/libcrypto-lib-getenv.o", + "crypto/libcrypto-lib-indicator_core.o", "crypto/libcrypto-lib-info.o", "crypto/libcrypto-lib-init.o", "crypto/libcrypto-lib-initthread.o", @@ -24032,6 +28029,7 @@ our %unified_info = ( "crypto/libcrypto-lib-params.o", "crypto/libcrypto-lib-params_dup.o", "crypto/libcrypto-lib-params_from_text.o", + "crypto/libcrypto-lib-params_idx.o", "crypto/libcrypto-lib-passphrase.o", "crypto/libcrypto-lib-provider.o", "crypto/libcrypto-lib-provider_child.o", @@ -24039,12 +28037,16 @@ our %unified_info = ( "crypto/libcrypto-lib-provider_core.o", "crypto/libcrypto-lib-provider_predefined.o", "crypto/libcrypto-lib-punycode.o", + "crypto/libcrypto-lib-quic_vlint.o", "crypto/libcrypto-lib-self_test_core.o", + "crypto/libcrypto-lib-sleep.o", "crypto/libcrypto-lib-sparse_array.o", + "crypto/libcrypto-lib-ssl_err.o", "crypto/libcrypto-lib-threads_lib.o", "crypto/libcrypto-lib-threads_none.o", "crypto/libcrypto-lib-threads_pthread.o", "crypto/libcrypto-lib-threads_win.o", + "crypto/libcrypto-lib-time.o", "crypto/libcrypto-lib-trace.o", "crypto/libcrypto-lib-uid.o", "crypto/md4/libcrypto-lib-md4_dgst.o", @@ -24054,6 +28056,15 @@ our %unified_info = ( "crypto/md5/libcrypto-lib-md5_sha1.o", "crypto/mdc2/libcrypto-lib-mdc2_one.o", "crypto/mdc2/libcrypto-lib-mdc2dgst.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_encoders.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key_compress.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_matrix.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_ntt.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_params.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sample.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sign.o", + "crypto/ml_kem/libcrypto-lib-ml_kem.o", "crypto/modes/libcrypto-lib-cbc128.o", "crypto/modes/libcrypto-lib-ccm128.o", "crypto/modes/libcrypto-lib-cfb128.o", @@ -24065,6 +28076,7 @@ our %unified_info = ( "crypto/modes/libcrypto-lib-siv128.o", "crypto/modes/libcrypto-lib-wrap128.o", "crypto/modes/libcrypto-lib-xts128.o", + "crypto/modes/libcrypto-lib-xts128gb.o", "crypto/objects/libcrypto-lib-o_names.o", "crypto/objects/libcrypto-lib-obj_dat.o", "crypto/objects/libcrypto-lib-obj_err.o", @@ -24128,6 +28140,7 @@ our %unified_info = ( "crypto/rand/libcrypto-lib-rand_lib.o", "crypto/rand/libcrypto-lib-rand_meth.o", "crypto/rand/libcrypto-lib-rand_pool.o", + "crypto/rand/libcrypto-lib-rand_uniform.o", "crypto/rand/libcrypto-lib-randfile.o", "crypto/rc2/libcrypto-lib-rc2_cbc.o", "crypto/rc2/libcrypto-lib-rc2_ecb.o", @@ -24176,6 +28189,16 @@ our %unified_info = ( "crypto/sha/libcrypto-lib-sha3.o", "crypto/sha/libcrypto-lib-sha512.o", "crypto/siphash/libcrypto-lib-siphash.o", + "crypto/slh_dsa/libcrypto-lib-slh_adrs.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa_hash_ctx.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa_key.o", + "crypto/slh_dsa/libcrypto-lib-slh_fors.o", + "crypto/slh_dsa/libcrypto-lib-slh_hash.o", + "crypto/slh_dsa/libcrypto-lib-slh_hypertree.o", + "crypto/slh_dsa/libcrypto-lib-slh_params.o", + "crypto/slh_dsa/libcrypto-lib-slh_wots.o", + "crypto/slh_dsa/libcrypto-lib-slh_xmss.o", "crypto/sm2/libcrypto-lib-sm2_crypt.o", "crypto/sm2/libcrypto-lib-sm2_err.o", "crypto/sm2/libcrypto-lib-sm2_key.o", @@ -24193,6 +28216,12 @@ our %unified_info = ( "crypto/store/libcrypto-lib-store_register.o", "crypto/store/libcrypto-lib-store_result.o", "crypto/store/libcrypto-lib-store_strings.o", + "crypto/thread/arch/libcrypto-lib-thread_none.o", + "crypto/thread/arch/libcrypto-lib-thread_posix.o", + "crypto/thread/arch/libcrypto-lib-thread_win.o", + "crypto/thread/libcrypto-lib-api.o", + "crypto/thread/libcrypto-lib-arch.o", + "crypto/thread/libcrypto-lib-internal.o", "crypto/ts/libcrypto-lib-ts_asn1.o", "crypto/ts/libcrypto-lib-ts_conf.o", "crypto/ts/libcrypto-lib-ts_err.o", @@ -24221,14 +28250,22 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-pcy_map.o", "crypto/x509/libcrypto-lib-pcy_node.o", "crypto/x509/libcrypto-lib-pcy_tree.o", + "crypto/x509/libcrypto-lib-t_acert.o", "crypto/x509/libcrypto-lib-t_crl.o", "crypto/x509/libcrypto-lib-t_req.o", "crypto/x509/libcrypto-lib-t_x509.o", + "crypto/x509/libcrypto-lib-v3_aaa.o", + "crypto/x509/libcrypto-lib-v3_ac_tgt.o", "crypto/x509/libcrypto-lib-v3_addr.o", "crypto/x509/libcrypto-lib-v3_admis.o", "crypto/x509/libcrypto-lib-v3_akeya.o", "crypto/x509/libcrypto-lib-v3_akid.o", "crypto/x509/libcrypto-lib-v3_asid.o", + "crypto/x509/libcrypto-lib-v3_attrdesc.o", + "crypto/x509/libcrypto-lib-v3_attrmap.o", + "crypto/x509/libcrypto-lib-v3_audit_id.o", + "crypto/x509/libcrypto-lib-v3_authattid.o", + "crypto/x509/libcrypto-lib-v3_battcons.o", "crypto/x509/libcrypto-lib-v3_bcons.o", "crypto/x509/libcrypto-lib-v3_bitst.o", "crypto/x509/libcrypto-lib-v3_conf.o", @@ -24237,12 +28274,17 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_enum.o", "crypto/x509/libcrypto-lib-v3_extku.o", "crypto/x509/libcrypto-lib-v3_genn.o", + "crypto/x509/libcrypto-lib-v3_group_ac.o", "crypto/x509/libcrypto-lib-v3_ia5.o", + "crypto/x509/libcrypto-lib-v3_ind_iss.o", "crypto/x509/libcrypto-lib-v3_info.o", "crypto/x509/libcrypto-lib-v3_int.o", + "crypto/x509/libcrypto-lib-v3_iobo.o", "crypto/x509/libcrypto-lib-v3_ist.o", "crypto/x509/libcrypto-lib-v3_lib.o", "crypto/x509/libcrypto-lib-v3_ncons.o", + "crypto/x509/libcrypto-lib-v3_no_ass.o", + "crypto/x509/libcrypto-lib-v3_no_rev_avail.o", "crypto/x509/libcrypto-lib-v3_pci.o", "crypto/x509/libcrypto-lib-v3_pcia.o", "crypto/x509/libcrypto-lib-v3_pcons.o", @@ -24250,13 +28292,20 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_pmaps.o", "crypto/x509/libcrypto-lib-v3_prn.o", "crypto/x509/libcrypto-lib-v3_purp.o", + "crypto/x509/libcrypto-lib-v3_rolespec.o", "crypto/x509/libcrypto-lib-v3_san.o", + "crypto/x509/libcrypto-lib-v3_sda.o", + "crypto/x509/libcrypto-lib-v3_single_use.o", "crypto/x509/libcrypto-lib-v3_skid.o", + "crypto/x509/libcrypto-lib-v3_soa_id.o", "crypto/x509/libcrypto-lib-v3_sxnet.o", + "crypto/x509/libcrypto-lib-v3_timespec.o", "crypto/x509/libcrypto-lib-v3_tlsf.o", + "crypto/x509/libcrypto-lib-v3_usernotice.o", "crypto/x509/libcrypto-lib-v3_utf8.o", "crypto/x509/libcrypto-lib-v3_utl.o", "crypto/x509/libcrypto-lib-v3err.o", + "crypto/x509/libcrypto-lib-x509_acert.o", "crypto/x509/libcrypto-lib-x509_att.o", "crypto/x509/libcrypto-lib-x509_cmp.o", "crypto/x509/libcrypto-lib-x509_d2.o", @@ -24274,6 +28323,7 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x509_v3.o", "crypto/x509/libcrypto-lib-x509_vfy.o", "crypto/x509/libcrypto-lib-x509_vpm.o", + "crypto/x509/libcrypto-lib-x509aset.o", "crypto/x509/libcrypto-lib-x509cset.o", "crypto/x509/libcrypto-lib-x509name.o", "crypto/x509/libcrypto-lib-x509rset.o", @@ -24283,6 +28333,7 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x_attrib.o", "crypto/x509/libcrypto-lib-x_crl.o", "crypto/x509/libcrypto-lib-x_exten.o", + "crypto/x509/libcrypto-lib-x_ietfatt.o", "crypto/x509/libcrypto-lib-x_name.o", "crypto/x509/libcrypto-lib-x_pubkey.o", "crypto/x509/libcrypto-lib-x_req.o", @@ -24303,14 +28354,15 @@ our %unified_info = ( "ssl/libssl-lib-d1_srtp.o", "ssl/libssl-lib-methods.o", "ssl/libssl-lib-pqueue.o", + "ssl/libssl-lib-priority_queue.o", "ssl/libssl-lib-s3_enc.o", "ssl/libssl-lib-s3_lib.o", "ssl/libssl-lib-s3_msg.o", "ssl/libssl-lib-ssl_asn1.o", "ssl/libssl-lib-ssl_cert.o", + "ssl/libssl-lib-ssl_cert_comp.o", "ssl/libssl-lib-ssl_ciph.o", "ssl/libssl-lib-ssl_conf.o", - "ssl/libssl-lib-ssl_err.o", "ssl/libssl-lib-ssl_err_legacy.o", "ssl/libssl-lib-ssl_init.o", "ssl/libssl-lib-ssl_lib.o", @@ -24327,12 +28379,60 @@ our %unified_info = ( "ssl/libssl-lib-tls13_enc.o", "ssl/libssl-lib-tls_depr.o", "ssl/libssl-lib-tls_srp.o", - "ssl/record/libssl-lib-dtls1_bitmap.o", + "ssl/quic/libssl-lib-cc_newreno.o", + "ssl/quic/libssl-lib-json_enc.o", + "ssl/quic/libssl-lib-qlog.o", + "ssl/quic/libssl-lib-qlog_event_helpers.o", + "ssl/quic/libssl-lib-quic_ackm.o", + "ssl/quic/libssl-lib-quic_cfq.o", + "ssl/quic/libssl-lib-quic_channel.o", + "ssl/quic/libssl-lib-quic_demux.o", + "ssl/quic/libssl-lib-quic_engine.o", + "ssl/quic/libssl-lib-quic_fc.o", + "ssl/quic/libssl-lib-quic_fifd.o", + "ssl/quic/libssl-lib-quic_impl.o", + "ssl/quic/libssl-lib-quic_lcidm.o", + "ssl/quic/libssl-lib-quic_method.o", + "ssl/quic/libssl-lib-quic_obj.o", + "ssl/quic/libssl-lib-quic_port.o", + "ssl/quic/libssl-lib-quic_rcidm.o", + "ssl/quic/libssl-lib-quic_reactor.o", + "ssl/quic/libssl-lib-quic_reactor_wait_ctx.o", + "ssl/quic/libssl-lib-quic_record_rx.o", + "ssl/quic/libssl-lib-quic_record_shared.o", + "ssl/quic/libssl-lib-quic_record_tx.o", + "ssl/quic/libssl-lib-quic_record_util.o", + "ssl/quic/libssl-lib-quic_rstream.o", + "ssl/quic/libssl-lib-quic_rx_depack.o", + "ssl/quic/libssl-lib-quic_sf_list.o", + "ssl/quic/libssl-lib-quic_srt_gen.o", + "ssl/quic/libssl-lib-quic_srtm.o", + "ssl/quic/libssl-lib-quic_sstream.o", + "ssl/quic/libssl-lib-quic_statm.o", + "ssl/quic/libssl-lib-quic_stream_map.o", + "ssl/quic/libssl-lib-quic_thread_assist.o", + "ssl/quic/libssl-lib-quic_tls.o", + "ssl/quic/libssl-lib-quic_tls_api.o", + "ssl/quic/libssl-lib-quic_trace.o", + "ssl/quic/libssl-lib-quic_tserver.o", + "ssl/quic/libssl-lib-quic_txp.o", + "ssl/quic/libssl-lib-quic_txpim.o", + "ssl/quic/libssl-lib-quic_types.o", + "ssl/quic/libssl-lib-quic_wire.o", + "ssl/quic/libssl-lib-quic_wire_pkt.o", + "ssl/quic/libssl-lib-uint_set.o", "ssl/record/libssl-lib-rec_layer_d1.o", "ssl/record/libssl-lib-rec_layer_s3.o", - "ssl/record/libssl-lib-ssl3_buffer.o", - "ssl/record/libssl-lib-ssl3_record.o", - "ssl/record/libssl-lib-ssl3_record_tls13.o", + "ssl/record/methods/libssl-lib-dtls_meth.o", + "ssl/record/methods/libssl-lib-ssl3_meth.o", + "ssl/record/methods/libssl-lib-tls13_meth.o", + "ssl/record/methods/libssl-lib-tls1_meth.o", + "ssl/record/methods/libssl-lib-tls_common.o", + "ssl/record/methods/libssl-lib-tls_multib.o", + "ssl/record/methods/libssl-lib-tlsany_meth.o", + "ssl/rio/libssl-lib-poll_builder.o", + "ssl/rio/libssl-lib-poll_immediate.o", + "ssl/rio/libssl-lib-rio_notifier.o", "ssl/statem/libssl-lib-extensions.o", "ssl/statem/libssl-lib-extensions_clnt.o", "ssl/statem/libssl-lib-extensions_cust.o", @@ -24370,12 +28470,24 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ecx_key.o" => [ "providers/common/der/der_ecx_key.c" ], + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o" => [ + "providers/common/der/der_ml_dsa_gen.c" + ], + "providers/common/der/libcommon-lib-der_ml_dsa_key.o" => [ + "providers/common/der/der_ml_dsa_key.c" + ], "providers/common/der/libcommon-lib-der_rsa_gen.o" => [ "providers/common/der/der_rsa_gen.c" ], "providers/common/der/libcommon-lib-der_rsa_key.o" => [ "providers/common/der/der_rsa_key.c" ], + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o" => [ + "providers/common/der/der_slh_dsa_gen.c" + ], + "providers/common/der/libcommon-lib-der_slh_dsa_key.o" => [ + "providers/common/der/der_slh_dsa_key.c" + ], "providers/common/der/libcommon-lib-der_wrap_gen.o" => [ "providers/common/der/der_wrap_gen.c" ], @@ -24442,6 +28554,9 @@ our %unified_info = ( "providers/common/libfips-lib-securitycheck_fips.o" => [ "providers/common/securitycheck_fips.c" ], + "providers/endecode_test-bin-legacyprov.o" => [ + "providers/legacyprov.c" + ], "providers/evp_extra_test-bin-legacyprov.o" => [ "providers/legacyprov.c" ], @@ -24452,6 +28567,9 @@ our %unified_info = ( "providers/fips/fips-dso-fips_entry.o" => [ "providers/fips/fips_entry.c" ], + "providers/fips/libfips-lib-fipsindicator.o" => [ + "providers/fips/fipsindicator.c" + ], "providers/fips/libfips-lib-fipsprov.o" => [ "providers/fips/fipsprov.c" ], @@ -24515,6 +28633,15 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_hw.o" => [ "providers/implementations/ciphers/cipher_aes_gcm_hw.c" ], + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv.o" => [ + "providers/implementations/ciphers/cipher_aes_gcm_siv.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_hw.o" => [ + "providers/implementations/ciphers/cipher_aes_gcm_siv_hw.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_polyval.o" => [ + "providers/implementations/ciphers/cipher_aes_gcm_siv_polyval.c" + ], "providers/implementations/ciphers/libdefault-lib-cipher_aes_hw.o" => [ "providers/implementations/ciphers/cipher_aes_hw.c" ], @@ -24587,9 +28714,27 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_sm4.o" => [ "providers/implementations/ciphers/cipher_sm4.c" ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm.o" => [ + "providers/implementations/ciphers/cipher_sm4_ccm.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm_hw.o" => [ + "providers/implementations/ciphers/cipher_sm4_ccm_hw.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm.o" => [ + "providers/implementations/ciphers/cipher_sm4_gcm.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm_hw.o" => [ + "providers/implementations/ciphers/cipher_sm4_gcm_hw.c" + ], "providers/implementations/ciphers/libdefault-lib-cipher_sm4_hw.o" => [ "providers/implementations/ciphers/cipher_sm4_hw.c" ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts.o" => [ + "providers/implementations/ciphers/cipher_sm4_xts.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts_hw.o" => [ + "providers/implementations/ciphers/cipher_sm4_xts_hw.c" + ], "providers/implementations/ciphers/libdefault-lib-cipher_tdes.o" => [ "providers/implementations/ciphers/cipher_tdes.c" ], @@ -24809,6 +28954,15 @@ our %unified_info = ( "providers/implementations/encode_decode/libdefault-lib-endecoder_common.o" => [ "providers/implementations/encode_decode/endecoder_common.c" ], + "providers/implementations/encode_decode/libdefault-lib-ml_common_codecs.o" => [ + "providers/implementations/encode_decode/ml_common_codecs.c" + ], + "providers/implementations/encode_decode/libdefault-lib-ml_dsa_codecs.o" => [ + "providers/implementations/encode_decode/ml_dsa_codecs.c" + ], + "providers/implementations/encode_decode/libdefault-lib-ml_kem_codecs.o" => [ + "providers/implementations/encode_decode/ml_kem_codecs.c" + ], "providers/implementations/exchange/libdefault-lib-dh_exch.o" => [ "providers/implementations/exchange/dh_exch.c" ], @@ -24833,9 +28987,15 @@ our %unified_info = ( "providers/implementations/exchange/libfips-lib-kdf_exch.o" => [ "providers/implementations/exchange/kdf_exch.c" ], + "providers/implementations/kdfs/libdefault-lib-argon2.o" => [ + "providers/implementations/kdfs/argon2.c" + ], "providers/implementations/kdfs/libdefault-lib-hkdf.o" => [ "providers/implementations/kdfs/hkdf.c" ], + "providers/implementations/kdfs/libdefault-lib-hmacdrbg_kdf.o" => [ + "providers/implementations/kdfs/hmacdrbg_kdf.c" + ], "providers/implementations/kdfs/libdefault-lib-kbkdf.o" => [ "providers/implementations/kdfs/kbkdf.c" ], @@ -24893,12 +29053,39 @@ our %unified_info = ( "providers/implementations/kdfs/liblegacy-lib-pbkdf1.o" => [ "providers/implementations/kdfs/pbkdf1.c" ], + "providers/implementations/kdfs/liblegacy-lib-pvkkdf.o" => [ + "providers/implementations/kdfs/pvkkdf.c" + ], + "providers/implementations/kem/libdefault-lib-ec_kem.o" => [ + "providers/implementations/kem/ec_kem.c" + ], + "providers/implementations/kem/libdefault-lib-ecx_kem.o" => [ + "providers/implementations/kem/ecx_kem.c" + ], + "providers/implementations/kem/libdefault-lib-kem_util.o" => [ + "providers/implementations/kem/kem_util.c" + ], + "providers/implementations/kem/libdefault-lib-ml_kem_kem.o" => [ + "providers/implementations/kem/ml_kem_kem.c" + ], + "providers/implementations/kem/libdefault-lib-mlx_kem.o" => [ + "providers/implementations/kem/mlx_kem.c" + ], "providers/implementations/kem/libdefault-lib-rsa_kem.o" => [ "providers/implementations/kem/rsa_kem.c" ], + "providers/implementations/kem/libfips-lib-ml_kem_kem.o" => [ + "providers/implementations/kem/ml_kem_kem.c" + ], + "providers/implementations/kem/libfips-lib-mlx_kem.o" => [ + "providers/implementations/kem/mlx_kem.c" + ], "providers/implementations/kem/libfips-lib-rsa_kem.o" => [ "providers/implementations/kem/rsa_kem.c" ], + "providers/implementations/kem/libtemplate-lib-template_kem.o" => [ + "providers/implementations/kem/template_kem.c" + ], "providers/implementations/keymgmt/libdefault-lib-dh_kmgmt.o" => [ "providers/implementations/keymgmt/dh_kmgmt.c" ], @@ -24917,9 +29104,21 @@ our %unified_info = ( "providers/implementations/keymgmt/libdefault-lib-mac_legacy_kmgmt.o" => [ "providers/implementations/keymgmt/mac_legacy_kmgmt.c" ], + "providers/implementations/keymgmt/libdefault-lib-ml_dsa_kmgmt.o" => [ + "providers/implementations/keymgmt/ml_dsa_kmgmt.c" + ], + "providers/implementations/keymgmt/libdefault-lib-ml_kem_kmgmt.o" => [ + "providers/implementations/keymgmt/ml_kem_kmgmt.c" + ], + "providers/implementations/keymgmt/libdefault-lib-mlx_kmgmt.o" => [ + "providers/implementations/keymgmt/mlx_kmgmt.c" + ], "providers/implementations/keymgmt/libdefault-lib-rsa_kmgmt.o" => [ "providers/implementations/keymgmt/rsa_kmgmt.c" ], + "providers/implementations/keymgmt/libdefault-lib-slh_dsa_kmgmt.o" => [ + "providers/implementations/keymgmt/slh_dsa_kmgmt.c" + ], "providers/implementations/keymgmt/libfips-lib-dh_kmgmt.o" => [ "providers/implementations/keymgmt/dh_kmgmt.c" ], @@ -24938,9 +29137,24 @@ our %unified_info = ( "providers/implementations/keymgmt/libfips-lib-mac_legacy_kmgmt.o" => [ "providers/implementations/keymgmt/mac_legacy_kmgmt.c" ], + "providers/implementations/keymgmt/libfips-lib-ml_dsa_kmgmt.o" => [ + "providers/implementations/keymgmt/ml_dsa_kmgmt.c" + ], + "providers/implementations/keymgmt/libfips-lib-ml_kem_kmgmt.o" => [ + "providers/implementations/keymgmt/ml_kem_kmgmt.c" + ], + "providers/implementations/keymgmt/libfips-lib-mlx_kmgmt.o" => [ + "providers/implementations/keymgmt/mlx_kmgmt.c" + ], "providers/implementations/keymgmt/libfips-lib-rsa_kmgmt.o" => [ "providers/implementations/keymgmt/rsa_kmgmt.c" ], + "providers/implementations/keymgmt/libfips-lib-slh_dsa_kmgmt.o" => [ + "providers/implementations/keymgmt/slh_dsa_kmgmt.c" + ], + "providers/implementations/keymgmt/libtemplate-lib-template_kmgmt.o" => [ + "providers/implementations/keymgmt/template_kmgmt.c" + ], "providers/implementations/macs/libdefault-lib-blake2b_mac.o" => [ "providers/implementations/macs/blake2b_mac.c" ], @@ -24977,9 +29191,6 @@ our %unified_info = ( "providers/implementations/macs/libfips-lib-kmac_prov.o" => [ "providers/implementations/macs/kmac_prov.c" ], - "providers/implementations/rands/libdefault-lib-crngt.o" => [ - "providers/implementations/rands/crngt.c" - ], "providers/implementations/rands/libdefault-lib-drbg.o" => [ "providers/implementations/rands/drbg.c" ], @@ -24995,12 +29206,12 @@ our %unified_info = ( "providers/implementations/rands/libdefault-lib-seed_src.o" => [ "providers/implementations/rands/seed_src.c" ], + "providers/implementations/rands/libdefault-lib-seed_src_jitter.o" => [ + "providers/implementations/rands/seed_src_jitter.c" + ], "providers/implementations/rands/libdefault-lib-test_rng.o" => [ "providers/implementations/rands/test_rng.c" ], - "providers/implementations/rands/libfips-lib-crngt.o" => [ - "providers/implementations/rands/crngt.c" - ], "providers/implementations/rands/libfips-lib-drbg.o" => [ "providers/implementations/rands/drbg.c" ], @@ -25013,6 +29224,9 @@ our %unified_info = ( "providers/implementations/rands/libfips-lib-drbg_hmac.o" => [ "providers/implementations/rands/drbg_hmac.c" ], + "providers/implementations/rands/libfips-lib-fips_crng_test.o" => [ + "providers/implementations/rands/fips_crng_test.c" + ], "providers/implementations/rands/libfips-lib-test_rng.o" => [ "providers/implementations/rands/test_rng.c" ], @@ -25040,9 +29254,15 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-mac_legacy_sig.o" => [ "providers/implementations/signature/mac_legacy_sig.c" ], + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o" => [ + "providers/implementations/signature/ml_dsa_sig.c" + ], "providers/implementations/signature/libdefault-lib-rsa_sig.o" => [ "providers/implementations/signature/rsa_sig.c" ], + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o" => [ + "providers/implementations/signature/slh_dsa_sig.c" + ], "providers/implementations/signature/libdefault-lib-sm2_sig.o" => [ "providers/implementations/signature/sm2_sig.c" ], @@ -25058,9 +29278,27 @@ our %unified_info = ( "providers/implementations/signature/libfips-lib-mac_legacy_sig.o" => [ "providers/implementations/signature/mac_legacy_sig.c" ], + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o" => [ + "providers/implementations/signature/ml_dsa_sig.c" + ], "providers/implementations/signature/libfips-lib-rsa_sig.o" => [ "providers/implementations/signature/rsa_sig.c" ], + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o" => [ + "providers/implementations/signature/slh_dsa_sig.c" + ], + "providers/implementations/skeymgmt/libdefault-lib-aes_skmgmt.o" => [ + "providers/implementations/skeymgmt/aes_skmgmt.c" + ], + "providers/implementations/skeymgmt/libdefault-lib-generic.o" => [ + "providers/implementations/skeymgmt/generic.c" + ], + "providers/implementations/skeymgmt/libfips-lib-aes_skmgmt.o" => [ + "providers/implementations/skeymgmt/aes_skmgmt.c" + ], + "providers/implementations/skeymgmt/libfips-lib-generic.o" => [ + "providers/implementations/skeymgmt/generic.c" + ], "providers/implementations/storemgmt/libdefault-lib-file_store.o" => [ "providers/implementations/storemgmt/file_store.c" ], @@ -25084,8 +29322,12 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ec_sig.o", "providers/common/der/libcommon-lib-der_ecx_gen.o", "providers/common/der/libcommon-lib-der_ecx_key.o", + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o", + "providers/common/der/libcommon-lib-der_ml_dsa_key.o", "providers/common/der/libcommon-lib-der_rsa_gen.o", "providers/common/der/libcommon-lib-der_rsa_key.o", + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o", + "providers/common/der/libcommon-lib-der_slh_dsa_key.o", "providers/common/der/libcommon-lib-der_wrap_gen.o", "providers/common/libcommon-lib-provider_ctx.o", "providers/common/libcommon-lib-provider_err.o", @@ -25097,7 +29339,7 @@ our %unified_info = ( "providers/implementations/ciphers/libcommon-lib-ciphercommon_gcm_hw.o", "providers/implementations/ciphers/libcommon-lib-ciphercommon_hw.o", "providers/implementations/digests/libcommon-lib-digestcommon.o", - "ssl/record/libcommon-lib-tls_pad.o" + "ssl/record/methods/libcommon-lib-tls_pad.o" ], "providers/libcrypto-lib-baseprov.o" => [ "providers/baseprov.c" @@ -25133,6 +29375,9 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_aes_ccm_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_polyval.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_ocb.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_ocb_hw.o", @@ -25157,7 +29402,13 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_cts.o", "providers/implementations/ciphers/libdefault-lib-cipher_null.o", "providers/implementations/ciphers/libdefault-lib-cipher_sm4.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_sm4_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes_common.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes_default.o", @@ -25186,11 +29437,16 @@ our %unified_info = ( "providers/implementations/encode_decode/libdefault-lib-encode_key2ms.o", "providers/implementations/encode_decode/libdefault-lib-encode_key2text.o", "providers/implementations/encode_decode/libdefault-lib-endecoder_common.o", + "providers/implementations/encode_decode/libdefault-lib-ml_common_codecs.o", + "providers/implementations/encode_decode/libdefault-lib-ml_dsa_codecs.o", + "providers/implementations/encode_decode/libdefault-lib-ml_kem_codecs.o", "providers/implementations/exchange/libdefault-lib-dh_exch.o", "providers/implementations/exchange/libdefault-lib-ecdh_exch.o", "providers/implementations/exchange/libdefault-lib-ecx_exch.o", "providers/implementations/exchange/libdefault-lib-kdf_exch.o", + "providers/implementations/kdfs/libdefault-lib-argon2.o", "providers/implementations/kdfs/libdefault-lib-hkdf.o", + "providers/implementations/kdfs/libdefault-lib-hmacdrbg_kdf.o", "providers/implementations/kdfs/libdefault-lib-kbkdf.o", "providers/implementations/kdfs/libdefault-lib-krb5kdf.o", "providers/implementations/kdfs/libdefault-lib-pbkdf2.o", @@ -25201,6 +29457,11 @@ our %unified_info = ( "providers/implementations/kdfs/libdefault-lib-sskdf.o", "providers/implementations/kdfs/libdefault-lib-tls1_prf.o", "providers/implementations/kdfs/libdefault-lib-x942kdf.o", + "providers/implementations/kem/libdefault-lib-ec_kem.o", + "providers/implementations/kem/libdefault-lib-ecx_kem.o", + "providers/implementations/kem/libdefault-lib-kem_util.o", + "providers/implementations/kem/libdefault-lib-ml_kem_kem.o", + "providers/implementations/kem/libdefault-lib-mlx_kem.o", "providers/implementations/kem/libdefault-lib-rsa_kem.o", "providers/implementations/keymgmt/libdefault-lib-dh_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-dsa_kmgmt.o", @@ -25208,7 +29469,11 @@ our %unified_info = ( "providers/implementations/keymgmt/libdefault-lib-ecx_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-kdf_legacy_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-mac_legacy_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-ml_dsa_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-ml_kem_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-mlx_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-rsa_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-slh_dsa_kmgmt.o", "providers/implementations/macs/libdefault-lib-blake2b_mac.o", "providers/implementations/macs/libdefault-lib-blake2s_mac.o", "providers/implementations/macs/libdefault-lib-cmac_prov.o", @@ -25217,12 +29482,12 @@ our %unified_info = ( "providers/implementations/macs/libdefault-lib-kmac_prov.o", "providers/implementations/macs/libdefault-lib-poly1305_prov.o", "providers/implementations/macs/libdefault-lib-siphash_prov.o", - "providers/implementations/rands/libdefault-lib-crngt.o", "providers/implementations/rands/libdefault-lib-drbg.o", "providers/implementations/rands/libdefault-lib-drbg_ctr.o", "providers/implementations/rands/libdefault-lib-drbg_hash.o", "providers/implementations/rands/libdefault-lib-drbg_hmac.o", "providers/implementations/rands/libdefault-lib-seed_src.o", + "providers/implementations/rands/libdefault-lib-seed_src_jitter.o", "providers/implementations/rands/libdefault-lib-test_rng.o", "providers/implementations/rands/seeding/libdefault-lib-rand_cpu_x86.o", "providers/implementations/rands/seeding/libdefault-lib-rand_tsc.o", @@ -25232,11 +29497,15 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-ecdsa_sig.o", "providers/implementations/signature/libdefault-lib-eddsa_sig.o", "providers/implementations/signature/libdefault-lib-mac_legacy_sig.o", + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o", "providers/implementations/signature/libdefault-lib-rsa_sig.o", + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o", "providers/implementations/signature/libdefault-lib-sm2_sig.o", + "providers/implementations/skeymgmt/libdefault-lib-aes_skmgmt.o", + "providers/implementations/skeymgmt/libdefault-lib-generic.o", "providers/implementations/storemgmt/libdefault-lib-file_store.o", "providers/implementations/storemgmt/libdefault-lib-file_store_any2obj.o", - "ssl/libdefault-lib-s3_cbc.o" + "ssl/record/methods/libdefault-lib-ssl3_cbc.o" ], "providers/libfips.a" => [ "crypto/aes/libfips-lib-aes_cbc.o", @@ -25338,14 +29607,15 @@ our %unified_info = ( "crypto/evp/libfips-lib-kem.o", "crypto/evp/libfips-lib-keymgmt_lib.o", "crypto/evp/libfips-lib-keymgmt_meth.o", - "crypto/evp/libfips-lib-m_sigver.o", "crypto/evp/libfips-lib-mac_lib.o", "crypto/evp/libfips-lib-mac_meth.o", "crypto/evp/libfips-lib-p_lib.o", "crypto/evp/libfips-lib-pmeth_check.o", "crypto/evp/libfips-lib-pmeth_gn.o", "crypto/evp/libfips-lib-pmeth_lib.o", + "crypto/evp/libfips-lib-s_lib.o", "crypto/evp/libfips-lib-signature.o", + "crypto/evp/libfips-lib-skeymgmt_meth.o", "crypto/ffc/libfips-lib-ffc_backend.o", "crypto/ffc/libfips-lib-ffc_dh.o", "crypto/ffc/libfips-lib-ffc_key_generate.o", @@ -25353,6 +29623,8 @@ our %unified_info = ( "crypto/ffc/libfips-lib-ffc_params.o", "crypto/ffc/libfips-lib-ffc_params_generate.o", "crypto/ffc/libfips-lib-ffc_params_validate.o", + "crypto/hashtable/libfips-lib-hashfunc.o", + "crypto/hashtable/libfips-lib-hashtable.o", "crypto/hmac/libfips-lib-hmac.o", "crypto/lhash/libfips-lib-lhash.o", "crypto/libfips-lib-asn1_dsa.o", @@ -25375,6 +29647,7 @@ our %unified_info = ( "crypto/libfips-lib-params.o", "crypto/libfips-lib-params_dup.o", "crypto/libfips-lib-params_from_text.o", + "crypto/libfips-lib-params_idx.o", "crypto/libfips-lib-provider_core.o", "crypto/libfips-lib-provider_predefined.o", "crypto/libfips-lib-self_test_core.o", @@ -25383,6 +29656,16 @@ our %unified_info = ( "crypto/libfips-lib-threads_none.o", "crypto/libfips-lib-threads_pthread.o", "crypto/libfips-lib-threads_win.o", + "crypto/libfips-lib-time.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_encoders.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_key.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_key_compress.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_matrix.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_ntt.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_params.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_sample.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_sign.o", + "crypto/ml_kem/libfips-lib-ml_kem.o", "crypto/modes/libfips-lib-cbc128.o", "crypto/modes/libfips-lib-ccm128.o", "crypto/modes/libfips-lib-cfb128.o", @@ -25391,6 +29674,7 @@ our %unified_info = ( "crypto/modes/libfips-lib-ofb128.o", "crypto/modes/libfips-lib-wrap128.o", "crypto/modes/libfips-lib-xts128.o", + "crypto/modes/libfips-lib-xts128gb.o", "crypto/property/libfips-lib-defn_cache.o", "crypto/property/libfips-lib-property.o", "crypto/property/libfips-lib-property_parse.o", @@ -25419,7 +29703,23 @@ our %unified_info = ( "crypto/sha/libfips-lib-sha256.o", "crypto/sha/libfips-lib-sha3.o", "crypto/sha/libfips-lib-sha512.o", + "crypto/slh_dsa/libfips-lib-slh_adrs.o", + "crypto/slh_dsa/libfips-lib-slh_dsa.o", + "crypto/slh_dsa/libfips-lib-slh_dsa_hash_ctx.o", + "crypto/slh_dsa/libfips-lib-slh_dsa_key.o", + "crypto/slh_dsa/libfips-lib-slh_fors.o", + "crypto/slh_dsa/libfips-lib-slh_hash.o", + "crypto/slh_dsa/libfips-lib-slh_hypertree.o", + "crypto/slh_dsa/libfips-lib-slh_params.o", + "crypto/slh_dsa/libfips-lib-slh_wots.o", + "crypto/slh_dsa/libfips-lib-slh_xmss.o", "crypto/stack/libfips-lib-stack.o", + "crypto/thread/arch/libfips-lib-thread_none.o", + "crypto/thread/arch/libfips-lib-thread_posix.o", + "crypto/thread/arch/libfips-lib-thread_win.o", + "crypto/thread/libfips-lib-api.o", + "crypto/thread/libfips-lib-arch.o", + "crypto/thread/libfips-lib-internal.o", "providers/common/der/libfips-lib-der_rsa_sig.o", "providers/common/libfips-lib-bio_prov.o", "providers/common/libfips-lib-capabilities.o", @@ -25428,6 +29728,7 @@ our %unified_info = ( "providers/common/libfips-lib-provider_util.o", "providers/common/libfips-lib-securitycheck.o", "providers/common/libfips-lib-securitycheck_fips.o", + "providers/fips/libfips-lib-fipsindicator.o", "providers/fips/libfips-lib-fipsprov.o", "providers/fips/libfips-lib-self_test.o", "providers/fips/libfips-lib-self_test_kats.o", @@ -25465,6 +29766,8 @@ our %unified_info = ( "providers/implementations/kdfs/libfips-lib-sskdf.o", "providers/implementations/kdfs/libfips-lib-tls1_prf.o", "providers/implementations/kdfs/libfips-lib-x942kdf.o", + "providers/implementations/kem/libfips-lib-ml_kem_kem.o", + "providers/implementations/kem/libfips-lib-mlx_kem.o", "providers/implementations/kem/libfips-lib-rsa_kem.o", "providers/implementations/keymgmt/libfips-lib-dh_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-dsa_kmgmt.o", @@ -25472,24 +29775,32 @@ our %unified_info = ( "providers/implementations/keymgmt/libfips-lib-ecx_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-kdf_legacy_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-mac_legacy_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-ml_dsa_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-ml_kem_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-mlx_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-rsa_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-slh_dsa_kmgmt.o", "providers/implementations/macs/libfips-lib-cmac_prov.o", "providers/implementations/macs/libfips-lib-gmac_prov.o", "providers/implementations/macs/libfips-lib-hmac_prov.o", "providers/implementations/macs/libfips-lib-kmac_prov.o", - "providers/implementations/rands/libfips-lib-crngt.o", "providers/implementations/rands/libfips-lib-drbg.o", "providers/implementations/rands/libfips-lib-drbg_ctr.o", "providers/implementations/rands/libfips-lib-drbg_hash.o", "providers/implementations/rands/libfips-lib-drbg_hmac.o", + "providers/implementations/rands/libfips-lib-fips_crng_test.o", "providers/implementations/rands/libfips-lib-test_rng.o", "providers/implementations/signature/libfips-lib-dsa_sig.o", "providers/implementations/signature/libfips-lib-ecdsa_sig.o", "providers/implementations/signature/libfips-lib-eddsa_sig.o", "providers/implementations/signature/libfips-lib-mac_legacy_sig.o", + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o", "providers/implementations/signature/libfips-lib-rsa_sig.o", + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o", + "providers/implementations/skeymgmt/libfips-lib-aes_skmgmt.o", + "providers/implementations/skeymgmt/libfips-lib-generic.o", "providers/libcommon.a", - "ssl/libfips-lib-s3_cbc.o" + "ssl/record/methods/libfips-lib-ssl3_cbc.o" ], "providers/liblegacy-lib-prov_running.o" => [ "providers/prov_running.c" @@ -25519,13 +29830,12 @@ our %unified_info = ( "providers/implementations/digests/liblegacy-lib-ripemd_prov.o", "providers/implementations/digests/liblegacy-lib-wp_prov.o", "providers/implementations/kdfs/liblegacy-lib-pbkdf1.o", + "providers/implementations/kdfs/liblegacy-lib-pvkkdf.o", "providers/liblegacy-lib-prov_running.o" ], - "ssl/libdefault-lib-s3_cbc.o" => [ - "ssl/s3_cbc.c" - ], - "ssl/libfips-lib-s3_cbc.o" => [ - "ssl/s3_cbc.c" + "providers/libtemplate.a" => [ + "providers/implementations/kem/libtemplate-lib-template_kem.o", + "providers/implementations/keymgmt/libtemplate-lib-template_kmgmt.o" ], "ssl/libssl-lib-bio_ssl.o" => [ "ssl/bio_ssl.c" @@ -25545,6 +29855,9 @@ our %unified_info = ( "ssl/libssl-lib-pqueue.o" => [ "ssl/pqueue.c" ], + "ssl/libssl-lib-priority_queue.o" => [ + "ssl/priority_queue.c" + ], "ssl/libssl-lib-s3_enc.o" => [ "ssl/s3_enc.c" ], @@ -25560,15 +29873,15 @@ our %unified_info = ( "ssl/libssl-lib-ssl_cert.o" => [ "ssl/ssl_cert.c" ], + "ssl/libssl-lib-ssl_cert_comp.o" => [ + "ssl/ssl_cert_comp.c" + ], "ssl/libssl-lib-ssl_ciph.o" => [ "ssl/ssl_ciph.c" ], "ssl/libssl-lib-ssl_conf.o" => [ "ssl/ssl_conf.c" ], - "ssl/libssl-lib-ssl_err.o" => [ - "ssl/ssl_err.c" - ], "ssl/libssl-lib-ssl_err_legacy.o" => [ "ssl/ssl_err_legacy.c" ], @@ -25617,11 +29930,131 @@ our %unified_info = ( "ssl/libssl-lib-tls_srp.o" => [ "ssl/tls_srp.c" ], - "ssl/record/libcommon-lib-tls_pad.o" => [ - "ssl/record/tls_pad.c" + "ssl/quic/libssl-lib-cc_newreno.o" => [ + "ssl/quic/cc_newreno.c" + ], + "ssl/quic/libssl-lib-json_enc.o" => [ + "ssl/quic/json_enc.c" + ], + "ssl/quic/libssl-lib-qlog.o" => [ + "ssl/quic/qlog.c" + ], + "ssl/quic/libssl-lib-qlog_event_helpers.o" => [ + "ssl/quic/qlog_event_helpers.c" + ], + "ssl/quic/libssl-lib-quic_ackm.o" => [ + "ssl/quic/quic_ackm.c" + ], + "ssl/quic/libssl-lib-quic_cfq.o" => [ + "ssl/quic/quic_cfq.c" + ], + "ssl/quic/libssl-lib-quic_channel.o" => [ + "ssl/quic/quic_channel.c" + ], + "ssl/quic/libssl-lib-quic_demux.o" => [ + "ssl/quic/quic_demux.c" + ], + "ssl/quic/libssl-lib-quic_engine.o" => [ + "ssl/quic/quic_engine.c" + ], + "ssl/quic/libssl-lib-quic_fc.o" => [ + "ssl/quic/quic_fc.c" + ], + "ssl/quic/libssl-lib-quic_fifd.o" => [ + "ssl/quic/quic_fifd.c" + ], + "ssl/quic/libssl-lib-quic_impl.o" => [ + "ssl/quic/quic_impl.c" + ], + "ssl/quic/libssl-lib-quic_lcidm.o" => [ + "ssl/quic/quic_lcidm.c" + ], + "ssl/quic/libssl-lib-quic_method.o" => [ + "ssl/quic/quic_method.c" + ], + "ssl/quic/libssl-lib-quic_obj.o" => [ + "ssl/quic/quic_obj.c" + ], + "ssl/quic/libssl-lib-quic_port.o" => [ + "ssl/quic/quic_port.c" + ], + "ssl/quic/libssl-lib-quic_rcidm.o" => [ + "ssl/quic/quic_rcidm.c" + ], + "ssl/quic/libssl-lib-quic_reactor.o" => [ + "ssl/quic/quic_reactor.c" + ], + "ssl/quic/libssl-lib-quic_reactor_wait_ctx.o" => [ + "ssl/quic/quic_reactor_wait_ctx.c" + ], + "ssl/quic/libssl-lib-quic_record_rx.o" => [ + "ssl/quic/quic_record_rx.c" + ], + "ssl/quic/libssl-lib-quic_record_shared.o" => [ + "ssl/quic/quic_record_shared.c" + ], + "ssl/quic/libssl-lib-quic_record_tx.o" => [ + "ssl/quic/quic_record_tx.c" + ], + "ssl/quic/libssl-lib-quic_record_util.o" => [ + "ssl/quic/quic_record_util.c" + ], + "ssl/quic/libssl-lib-quic_rstream.o" => [ + "ssl/quic/quic_rstream.c" ], - "ssl/record/libssl-lib-dtls1_bitmap.o" => [ - "ssl/record/dtls1_bitmap.c" + "ssl/quic/libssl-lib-quic_rx_depack.o" => [ + "ssl/quic/quic_rx_depack.c" + ], + "ssl/quic/libssl-lib-quic_sf_list.o" => [ + "ssl/quic/quic_sf_list.c" + ], + "ssl/quic/libssl-lib-quic_srt_gen.o" => [ + "ssl/quic/quic_srt_gen.c" + ], + "ssl/quic/libssl-lib-quic_srtm.o" => [ + "ssl/quic/quic_srtm.c" + ], + "ssl/quic/libssl-lib-quic_sstream.o" => [ + "ssl/quic/quic_sstream.c" + ], + "ssl/quic/libssl-lib-quic_statm.o" => [ + "ssl/quic/quic_statm.c" + ], + "ssl/quic/libssl-lib-quic_stream_map.o" => [ + "ssl/quic/quic_stream_map.c" + ], + "ssl/quic/libssl-lib-quic_thread_assist.o" => [ + "ssl/quic/quic_thread_assist.c" + ], + "ssl/quic/libssl-lib-quic_tls.o" => [ + "ssl/quic/quic_tls.c" + ], + "ssl/quic/libssl-lib-quic_tls_api.o" => [ + "ssl/quic/quic_tls_api.c" + ], + "ssl/quic/libssl-lib-quic_trace.o" => [ + "ssl/quic/quic_trace.c" + ], + "ssl/quic/libssl-lib-quic_tserver.o" => [ + "ssl/quic/quic_tserver.c" + ], + "ssl/quic/libssl-lib-quic_txp.o" => [ + "ssl/quic/quic_txp.c" + ], + "ssl/quic/libssl-lib-quic_txpim.o" => [ + "ssl/quic/quic_txpim.c" + ], + "ssl/quic/libssl-lib-quic_types.o" => [ + "ssl/quic/quic_types.c" + ], + "ssl/quic/libssl-lib-quic_wire.o" => [ + "ssl/quic/quic_wire.c" + ], + "ssl/quic/libssl-lib-quic_wire_pkt.o" => [ + "ssl/quic/quic_wire_pkt.c" + ], + "ssl/quic/libssl-lib-uint_set.o" => [ + "ssl/quic/uint_set.c" ], "ssl/record/libssl-lib-rec_layer_d1.o" => [ "ssl/record/rec_layer_d1.c" @@ -25629,14 +30062,44 @@ our %unified_info = ( "ssl/record/libssl-lib-rec_layer_s3.o" => [ "ssl/record/rec_layer_s3.c" ], - "ssl/record/libssl-lib-ssl3_buffer.o" => [ - "ssl/record/ssl3_buffer.c" + "ssl/record/methods/libcommon-lib-tls_pad.o" => [ + "ssl/record/methods/tls_pad.c" + ], + "ssl/record/methods/libdefault-lib-ssl3_cbc.o" => [ + "ssl/record/methods/ssl3_cbc.c" + ], + "ssl/record/methods/libfips-lib-ssl3_cbc.o" => [ + "ssl/record/methods/ssl3_cbc.c" + ], + "ssl/record/methods/libssl-lib-dtls_meth.o" => [ + "ssl/record/methods/dtls_meth.c" + ], + "ssl/record/methods/libssl-lib-ssl3_meth.o" => [ + "ssl/record/methods/ssl3_meth.c" + ], + "ssl/record/methods/libssl-lib-tls13_meth.o" => [ + "ssl/record/methods/tls13_meth.c" + ], + "ssl/record/methods/libssl-lib-tls1_meth.o" => [ + "ssl/record/methods/tls1_meth.c" + ], + "ssl/record/methods/libssl-lib-tls_common.o" => [ + "ssl/record/methods/tls_common.c" ], - "ssl/record/libssl-lib-ssl3_record.o" => [ - "ssl/record/ssl3_record.c" + "ssl/record/methods/libssl-lib-tls_multib.o" => [ + "ssl/record/methods/tls_multib.c" ], - "ssl/record/libssl-lib-ssl3_record_tls13.o" => [ - "ssl/record/ssl3_record_tls13.c" + "ssl/record/methods/libssl-lib-tlsany_meth.o" => [ + "ssl/record/methods/tlsany_meth.c" + ], + "ssl/rio/libssl-lib-poll_builder.o" => [ + "ssl/rio/poll_builder.c" + ], + "ssl/rio/libssl-lib-poll_immediate.o" => [ + "ssl/rio/poll_immediate.c" + ], + "ssl/rio/libssl-lib-rio_notifier.o" => [ + "ssl/rio/rio_notifier.c" ], "ssl/statem/libssl-lib-extensions.o" => [ "ssl/statem/extensions.c" @@ -25732,6 +30195,8 @@ our %unified_info = ( "test/asn1_string_table_test.c" ], "test/asn1_time_test" => [ + "crypto/asn1/asn1_time_test-bin-a_time.o", + "crypto/asn1_time_test-bin-ctype.o", "test/asn1_time_test-bin-asn1_time_test.o" ], "test/asn1_time_test-bin-asn1_time_test.o" => [ @@ -25762,6 +30227,18 @@ our %unified_info = ( "test/bftest-bin-bftest.o" => [ "test/bftest.c" ], + "test/bio_addr_test" => [ + "test/bio_addr_test-bin-bio_addr_test.o" + ], + "test/bio_addr_test-bin-bio_addr_test.o" => [ + "test/bio_addr_test.c" + ], + "test/bio_base64_test" => [ + "test/bio_base64_test-bin-bio_base64_test.o" + ], + "test/bio_base64_test-bin-bio_base64_test.o" => [ + "test/bio_base64_test.c" + ], "test/bio_callback_test" => [ "test/bio_callback_test-bin-bio_callback_test.o" ], @@ -25774,6 +30251,12 @@ our %unified_info = ( "test/bio_core_test-bin-bio_core_test.o" => [ "test/bio_core_test.c" ], + "test/bio_dgram_test" => [ + "test/bio_dgram_test-bin-bio_dgram_test.o" + ], + "test/bio_dgram_test-bin-bio_dgram_test.o" => [ + "test/bio_dgram_test.c" + ], "test/bio_enc_test" => [ "test/bio_enc_test-bin-bio_enc_test.o" ], @@ -25786,6 +30269,12 @@ our %unified_info = ( "test/bio_memleak_test-bin-bio_memleak_test.o" => [ "test/bio_memleak_test.c" ], + "test/bio_meth_test" => [ + "test/bio_meth_test-bin-bio_meth_test.o" + ], + "test/bio_meth_test-bin-bio_meth_test.o" => [ + "test/bio_meth_test.c" + ], "test/bio_prefix_text" => [ "test/bio_prefix_text-bin-bio_prefix_text.o" ], @@ -25804,6 +30293,12 @@ our %unified_info = ( "test/bio_readbuffer_test-bin-bio_readbuffer_test.o" => [ "test/bio_readbuffer_test.c" ], + "test/bio_tfo_test" => [ + "test/bio_tfo_test-bin-bio_tfo_test.o" + ], + "test/bio_tfo_test-bin-bio_tfo_test.o" => [ + "test/bio_tfo_test.c" + ], "test/bioprinttest" => [ "test/bioprinttest-bin-bioprinttest.o" ], @@ -25822,6 +30317,12 @@ our %unified_info = ( "test/bntest-bin-bntest.o" => [ "test/bntest.c" ], + "test/build_wincrypt_test" => [ + "test/build_wincrypt_test-bin-build_wincrypt_test.o" + ], + "test/build_wincrypt_test-bin-build_wincrypt_test.o" => [ + "test/build_wincrypt_test.c" + ], "test/buildtest_c_aes" => [ "test/buildtest_c_aes-bin-buildtest_aes.o" ], @@ -25852,6 +30353,12 @@ our %unified_info = ( "test/buildtest_c_buffer-bin-buildtest_buffer.o" => [ "test/buildtest_buffer.c" ], + "test/buildtest_c_byteorder" => [ + "test/buildtest_c_byteorder-bin-buildtest_byteorder.o" + ], + "test/buildtest_c_byteorder-bin-buildtest_byteorder.o" => [ + "test/buildtest_byteorder.c" + ], "test/buildtest_c_camellia" => [ "test/buildtest_c_camellia-bin-buildtest_camellia.o" ], @@ -25900,12 +30407,6 @@ our %unified_info = ( "test/buildtest_c_core_dispatch-bin-buildtest_core_dispatch.o" => [ "test/buildtest_core_dispatch.c" ], - "test/buildtest_c_core_names" => [ - "test/buildtest_c_core_names-bin-buildtest_core_names.o" - ], - "test/buildtest_c_core_names-bin-buildtest_core_names.o" => [ - "test/buildtest_core_names.c" - ], "test/buildtest_c_core_object" => [ "test/buildtest_c_core_object-bin-buildtest_core_object.o" ], @@ -25954,6 +30455,12 @@ our %unified_info = ( "test/buildtest_c_e_os2-bin-buildtest_e_os2.o" => [ "test/buildtest_e_os2.c" ], + "test/buildtest_c_e_ostime" => [ + "test/buildtest_c_e_ostime-bin-buildtest_e_ostime.o" + ], + "test/buildtest_c_e_ostime-bin-buildtest_e_ostime.o" => [ + "test/buildtest_e_ostime.c" + ], "test/buildtest_c_ebcdic" => [ "test/buildtest_c_ebcdic-bin-buildtest_ebcdic.o" ], @@ -26008,6 +30515,12 @@ our %unified_info = ( "test/buildtest_c_hmac-bin-buildtest_hmac.o" => [ "test/buildtest_hmac.c" ], + "test/buildtest_c_hpke" => [ + "test/buildtest_c_hpke-bin-buildtest_hpke.o" + ], + "test/buildtest_c_hpke-bin-buildtest_hpke.o" => [ + "test/buildtest_hpke.c" + ], "test/buildtest_c_http" => [ "test/buildtest_c_http-bin-buildtest_http.o" ], @@ -26020,6 +30533,12 @@ our %unified_info = ( "test/buildtest_c_idea-bin-buildtest_idea.o" => [ "test/buildtest_idea.c" ], + "test/buildtest_c_indicator" => [ + "test/buildtest_c_indicator-bin-buildtest_indicator.o" + ], + "test/buildtest_c_indicator-bin-buildtest_indicator.o" => [ + "test/buildtest_indicator.c" + ], "test/buildtest_c_kdf" => [ "test/buildtest_c_kdf-bin-buildtest_kdf.o" ], @@ -26050,6 +30569,12 @@ our %unified_info = ( "test/buildtest_c_mdc2-bin-buildtest_mdc2.o" => [ "test/buildtest_mdc2.c" ], + "test/buildtest_c_ml_kem" => [ + "test/buildtest_c_ml_kem-bin-buildtest_ml_kem.o" + ], + "test/buildtest_c_ml_kem-bin-buildtest_ml_kem.o" => [ + "test/buildtest_ml_kem.c" + ], "test/buildtest_c_modes" => [ "test/buildtest_c_modes-bin-buildtest_modes.o" ], @@ -26110,6 +30635,12 @@ our %unified_info = ( "test/buildtest_c_provider-bin-buildtest_provider.o" => [ "test/buildtest_provider.c" ], + "test/buildtest_c_quic" => [ + "test/buildtest_c_quic-bin-buildtest_quic.o" + ], + "test/buildtest_c_quic-bin-buildtest_quic.o" => [ + "test/buildtest_quic.c" + ], "test/buildtest_c_rand" => [ "test/buildtest_c_rand-bin-buildtest_rand.o" ], @@ -26194,6 +30725,12 @@ our %unified_info = ( "test/buildtest_c_symhacks-bin-buildtest_symhacks.o" => [ "test/buildtest_symhacks.c" ], + "test/buildtest_c_thread" => [ + "test/buildtest_c_thread-bin-buildtest_thread.o" + ], + "test/buildtest_c_thread-bin-buildtest_thread.o" => [ + "test/buildtest_thread.c" + ], "test/buildtest_c_tls1" => [ "test/buildtest_c_tls1-bin-buildtest_tls1.o" ], @@ -26224,6 +30761,29 @@ our %unified_info = ( "test/buildtest_c_whrlpool-bin-buildtest_whrlpool.o" => [ "test/buildtest_whrlpool.c" ], + "test/byteorder_test" => [ + "test/byteorder_test-bin-byteorder_test.o" + ], + "test/byteorder_test-bin-byteorder_test.o" => [ + "test/byteorder_test.c" + ], + "test/ca_internals_test" => [ + "apps/ca_internals_test-bin-ca.o", + "apps/lib/ca_internals_test-bin-app_libctx.o", + "apps/lib/ca_internals_test-bin-app_provider.o", + "apps/lib/ca_internals_test-bin-app_rand.o", + "apps/lib/ca_internals_test-bin-app_x509.o", + "apps/lib/ca_internals_test-bin-apps.o", + "apps/lib/ca_internals_test-bin-apps_ui.o", + "apps/lib/ca_internals_test-bin-engine.o", + "apps/lib/ca_internals_test-bin-fmt.o", + "crypto/asn1/ca_internals_test-bin-a_time.o", + "crypto/ca_internals_test-bin-ctype.o", + "test/ca_internals_test-bin-ca_internals_test.o" + ], + "test/ca_internals_test-bin-ca_internals_test.o" => [ + "test/ca_internals_test.c" + ], "test/casttest" => [ "test/casttest-bin-casttest.o" ], @@ -26402,6 +30962,12 @@ our %unified_info = ( "test/danetest-bin-danetest.o" => [ "test/danetest.c" ], + "test/decoder_propq_test" => [ + "test/decoder_propq_test-bin-decoder_propq_test.o" + ], + "test/decoder_propq_test-bin-decoder_propq_test.o" => [ + "test/decoder_propq_test.c" + ], "test/defltfips_test" => [ "test/defltfips_test-bin-defltfips_test.o" ], @@ -26483,6 +31049,7 @@ our %unified_info = ( "test/ectest.c" ], "test/endecode_test" => [ + "providers/endecode_test-bin-legacyprov.o", "test/endecode_test-bin-endecode_test.o", "test/helpers/endecode_test-bin-predefined_dhparams.o" ], @@ -26515,17 +31082,29 @@ our %unified_info = ( ], "test/evp_extra_test" => [ "providers/evp_extra_test-bin-legacyprov.o", - "test/evp_extra_test-bin-evp_extra_test.o" + "test/evp_extra_test-bin-evp_extra_test.o", + "test/evp_extra_test-bin-fake_pipelineprov.o", + "test/evp_extra_test-bin-fake_rsaprov.o" ], "test/evp_extra_test-bin-evp_extra_test.o" => [ "test/evp_extra_test.c" ], + "test/evp_extra_test-bin-fake_pipelineprov.o" => [ + "test/fake_pipelineprov.c" + ], + "test/evp_extra_test-bin-fake_rsaprov.o" => [ + "test/fake_rsaprov.c" + ], "test/evp_extra_test2" => [ - "test/evp_extra_test2-bin-evp_extra_test2.o" + "test/evp_extra_test2-bin-evp_extra_test2.o", + "test/evp_extra_test2-bin-tls-provider.o" ], "test/evp_extra_test2-bin-evp_extra_test2.o" => [ "test/evp_extra_test2.c" ], + "test/evp_extra_test2-bin-tls-provider.o" => [ + "test/tls-provider.c" + ], "test/evp_fetch_prov_test" => [ "test/evp_fetch_prov_test-bin-evp_fetch_prov_test.o" ], @@ -26550,6 +31129,12 @@ our %unified_info = ( "test/evp_pkey_ctx_new_from_name-bin-evp_pkey_ctx_new_from_name.o" => [ "test/evp_pkey_ctx_new_from_name.c" ], + "test/evp_pkey_dhkem_test" => [ + "test/evp_pkey_dhkem_test-bin-evp_pkey_dhkem_test.o" + ], + "test/evp_pkey_dhkem_test-bin-evp_pkey_dhkem_test.o" => [ + "test/evp_pkey_dhkem_test.c" + ], "test/evp_pkey_dparams_test" => [ "test/evp_pkey_dparams_test-bin-evp_pkey_dparams_test.o" ], @@ -26562,12 +31147,28 @@ our %unified_info = ( "test/evp_pkey_provided_test-bin-evp_pkey_provided_test.o" => [ "test/evp_pkey_provided_test.c" ], + "test/evp_skey_test" => [ + "test/evp_skey_test-bin-evp_skey_test.o", + "test/evp_skey_test-bin-fake_cipherprov.o" + ], + "test/evp_skey_test-bin-evp_skey_test.o" => [ + "test/evp_skey_test.c" + ], + "test/evp_skey_test-bin-fake_cipherprov.o" => [ + "test/fake_cipherprov.c" + ], "test/evp_test" => [ "test/evp_test-bin-evp_test.o" ], "test/evp_test-bin-evp_test.o" => [ "test/evp_test.c" ], + "test/evp_xof_test" => [ + "test/evp_xof_test-bin-evp_xof_test.o" + ], + "test/evp_xof_test-bin-evp_xof_test.o" => [ + "test/evp_xof_test.c" + ], "test/exdatatest" => [ "test/exdatatest-bin-exdatatest.o" ], @@ -26653,15 +31254,108 @@ our %unified_info = ( "test/helpers/fatalerrtest-bin-ssltestlib.o" => [ "test/helpers/ssltestlib.c" ], + "test/helpers/json_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/json_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/json_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/json_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/pkcs12_api_test-bin-pkcs12.o" => [ + "test/helpers/pkcs12.c" + ], "test/helpers/pkcs12_format_test-bin-pkcs12.o" => [ "test/helpers/pkcs12.c" ], + "test/helpers/quic_multistream_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quic_multistream_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quic_multistream_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quic_multistream_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quic_newcid_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quic_newcid_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quic_newcid_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quic_newcid_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quic_radix_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quic_radix_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quic_radix_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quic_radix_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quic_srt_gen_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quic_srt_gen_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quic_srt_gen_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quic_srt_gen_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quicapitest-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quicapitest-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quicapitest-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quicapitest-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quicfaultstest-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quicfaultstest-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quicfaultstest-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quicfaultstest-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], "test/helpers/recordlentest-bin-ssltestlib.o" => [ "test/helpers/ssltestlib.c" ], + "test/helpers/rpktest-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], "test/helpers/servername_test-bin-ssltestlib.o" => [ "test/helpers/ssltestlib.c" ], + "test/helpers/ssl_handshake_rtt_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], "test/helpers/ssl_old_test-bin-predefined_dhparams.o" => [ "test/helpers/predefined_dhparams.c" ], @@ -26689,6 +31383,9 @@ our %unified_info = ( "test/helpers/tls13ccstest-bin-ssltestlib.o" => [ "test/helpers/ssltestlib.c" ], + "test/helpers/tls13groupselection_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], "test/hexstr_test" => [ "test/hexstr_test-bin-hexstr_test.o" ], @@ -26701,6 +31398,12 @@ our %unified_info = ( "test/hmactest-bin-hmactest.o" => [ "test/hmactest.c" ], + "test/hpke_test" => [ + "test/hpke_test-bin-hpke_test.o" + ], + "test/hpke_test-bin-hpke_test.o" => [ + "test/hpke_test.c" + ], "test/http_test" => [ "test/http_test-bin-http_test.o" ], @@ -26719,6 +31422,16 @@ our %unified_info = ( "test/igetest-bin-igetest.o" => [ "test/igetest.c" ], + "test/json_test" => [ + "test/helpers/json_test-bin-noisydgrambio.o", + "test/helpers/json_test-bin-pktsplitbio.o", + "test/helpers/json_test-bin-quictestlib.o", + "test/helpers/json_test-bin-ssltestlib.o", + "test/json_test-bin-json_test.o" + ], + "test/json_test-bin-json_test.o" => [ + "test/json_test.c" + ], "test/keymgmt_internal_test" => [ "test/keymgmt_internal_test-bin-keymgmt_internal_test.o" ], @@ -26739,6 +31452,7 @@ our %unified_info = ( "test/testutil/libtestutil-lib-driver.o", "test/testutil/libtestutil-lib-fake_random.o", "test/testutil/libtestutil-lib-format_output.o", + "test/testutil/libtestutil-lib-helper.o", "test/testutil/libtestutil-lib-load.o", "test/testutil/libtestutil-lib-main.o", "test/testutil/libtestutil-lib-options.o", @@ -26751,6 +31465,12 @@ our %unified_info = ( "test/testutil/libtestutil-lib-tests.o", "test/testutil/libtestutil-lib-testutil_init.o" ], + "test/list_test" => [ + "test/list_test-bin-list_test.o" + ], + "test/list_test-bin-list_test.o" => [ + "test/list_test.c" + ], "test/localetest" => [ "test/localetest-bin-localetest.o" ], @@ -26769,12 +31489,36 @@ our %unified_info = ( "test/mdc2test-bin-mdc2test.o" => [ "test/mdc2test.c" ], + "test/membio_test" => [ + "test/membio_test-bin-membio_test.o" + ], + "test/membio_test-bin-membio_test.o" => [ + "test/membio_test.c" + ], "test/memleaktest" => [ "test/memleaktest-bin-memleaktest.o" ], "test/memleaktest-bin-memleaktest.o" => [ "test/memleaktest.c" ], + "test/ml_dsa_test" => [ + "test/ml_dsa_test-bin-ml_dsa_test.o" + ], + "test/ml_dsa_test-bin-ml_dsa_test.o" => [ + "test/ml_dsa_test.c" + ], + "test/ml_kem_evp_extra_test" => [ + "test/ml_kem_evp_extra_test-bin-ml_kem_evp_extra_test.o" + ], + "test/ml_kem_evp_extra_test-bin-ml_kem_evp_extra_test.o" => [ + "test/ml_kem_evp_extra_test.c" + ], + "test/ml_kem_internal_test" => [ + "test/ml_kem_internal_test-bin-ml_kem_internal_test.o" + ], + "test/ml_kem_internal_test-bin-ml_kem_internal_test.o" => [ + "test/ml_kem_internal_test.c" + ], "test/modes_internal_test" => [ "test/modes_internal_test-bin-modes_internal_test.o" ], @@ -26820,11 +31564,18 @@ our %unified_info = ( "test/p_test.c" ], "test/packettest" => [ + "crypto/packettest-bin-quic_vlint.o", "test/packettest-bin-packettest.o" ], "test/packettest-bin-packettest.o" => [ "test/packettest.c" ], + "test/pairwise_fail_test" => [ + "test/pairwise_fail_test-bin-pairwise_fail_test.o" + ], + "test/pairwise_fail_test-bin-pairwise_fail_test.o" => [ + "test/pairwise_fail_test.c" + ], "test/param_build_test" => [ "test/param_build_test-bin-param_build_test.o" ], @@ -26873,6 +31624,13 @@ our %unified_info = ( "test/pemtest-bin-pemtest.o" => [ "test/pemtest.c" ], + "test/pkcs12_api_test" => [ + "test/helpers/pkcs12_api_test-bin-pkcs12.o", + "test/pkcs12_api_test-bin-pkcs12_api_test.o" + ], + "test/pkcs12_api_test-bin-pkcs12_api_test.o" => [ + "test/pkcs12_api_test.c" + ], "test/pkcs12_format_test" => [ "test/helpers/pkcs12_format_test-bin-pkcs12.o", "test/pkcs12_format_test-bin-pkcs12_format_test.o" @@ -26904,6 +31662,12 @@ our %unified_info = ( "test/poly1305_internal_test-bin-poly1305_internal_test.o" => [ "test/poly1305_internal_test.c" ], + "test/priority_queue_test" => [ + "test/priority_queue_test-bin-priority_queue_test.o" + ], + "test/priority_queue_test-bin-priority_queue_test.o" => [ + "test/priority_queue_test.c" + ], "test/property_test" => [ "test/property_test-bin-property_test.o" ], @@ -26922,6 +31686,12 @@ our %unified_info = ( "test/provfetchtest-bin-provfetchtest.o" => [ "test/provfetchtest.c" ], + "test/provider_default_search_path_test" => [ + "test/provider_default_search_path_test-bin-provider_default_search_path_test.o" + ], + "test/provider_default_search_path_test-bin-provider_default_search_path_test.o" => [ + "test/provider_default_search_path_test.c" + ], "test/provider_fallback_test" => [ "test/provider_fallback_test-bin-provider_fallback_test.o" ], @@ -26970,6 +31740,174 @@ our %unified_info = ( "test/punycode_test-bin-punycode_test.o" => [ "test/punycode_test.c" ], + "test/quic_ackm_test" => [ + "test/quic_ackm_test-bin-cc_dummy.o", + "test/quic_ackm_test-bin-quic_ackm_test.o" + ], + "test/quic_ackm_test-bin-cc_dummy.o" => [ + "test/cc_dummy.c" + ], + "test/quic_ackm_test-bin-quic_ackm_test.o" => [ + "test/quic_ackm_test.c" + ], + "test/quic_cc_test" => [ + "test/quic_cc_test-bin-quic_cc_test.o" + ], + "test/quic_cc_test-bin-quic_cc_test.o" => [ + "test/quic_cc_test.c" + ], + "test/quic_cfq_test" => [ + "test/quic_cfq_test-bin-quic_cfq_test.o" + ], + "test/quic_cfq_test-bin-quic_cfq_test.o" => [ + "test/quic_cfq_test.c" + ], + "test/quic_client_test" => [ + "test/quic_client_test-bin-quic_client_test.o" + ], + "test/quic_client_test-bin-quic_client_test.o" => [ + "test/quic_client_test.c" + ], + "test/quic_fc_test" => [ + "test/quic_fc_test-bin-quic_fc_test.o" + ], + "test/quic_fc_test-bin-quic_fc_test.o" => [ + "test/quic_fc_test.c" + ], + "test/quic_fifd_test" => [ + "test/quic_fifd_test-bin-cc_dummy.o", + "test/quic_fifd_test-bin-quic_fifd_test.o" + ], + "test/quic_fifd_test-bin-cc_dummy.o" => [ + "test/cc_dummy.c" + ], + "test/quic_fifd_test-bin-quic_fifd_test.o" => [ + "test/quic_fifd_test.c" + ], + "test/quic_lcidm_test" => [ + "test/quic_lcidm_test-bin-quic_lcidm_test.o" + ], + "test/quic_lcidm_test-bin-quic_lcidm_test.o" => [ + "test/quic_lcidm_test.c" + ], + "test/quic_multistream_test" => [ + "test/helpers/quic_multistream_test-bin-noisydgrambio.o", + "test/helpers/quic_multistream_test-bin-pktsplitbio.o", + "test/helpers/quic_multistream_test-bin-quictestlib.o", + "test/helpers/quic_multistream_test-bin-ssltestlib.o", + "test/quic_multistream_test-bin-quic_multistream_test.o" + ], + "test/quic_multistream_test-bin-quic_multistream_test.o" => [ + "test/quic_multistream_test.c" + ], + "test/quic_newcid_test" => [ + "test/helpers/quic_newcid_test-bin-noisydgrambio.o", + "test/helpers/quic_newcid_test-bin-pktsplitbio.o", + "test/helpers/quic_newcid_test-bin-quictestlib.o", + "test/helpers/quic_newcid_test-bin-ssltestlib.o", + "test/quic_newcid_test-bin-quic_newcid_test.o" + ], + "test/quic_newcid_test-bin-quic_newcid_test.o" => [ + "test/quic_newcid_test.c" + ], + "test/quic_qlog_test" => [ + "test/quic_qlog_test-bin-quic_qlog_test.o" + ], + "test/quic_qlog_test-bin-quic_qlog_test.o" => [ + "test/quic_qlog_test.c" + ], + "test/quic_radix_test" => [ + "test/helpers/quic_radix_test-bin-noisydgrambio.o", + "test/helpers/quic_radix_test-bin-pktsplitbio.o", + "test/helpers/quic_radix_test-bin-quictestlib.o", + "test/helpers/quic_radix_test-bin-ssltestlib.o", + "test/radix/quic_radix_test-bin-quic_radix.o" + ], + "test/quic_rcidm_test" => [ + "test/quic_rcidm_test-bin-quic_rcidm_test.o" + ], + "test/quic_rcidm_test-bin-quic_rcidm_test.o" => [ + "test/quic_rcidm_test.c" + ], + "test/quic_record_test" => [ + "test/quic_record_test-bin-quic_record_test.o" + ], + "test/quic_record_test-bin-quic_record_test.o" => [ + "test/quic_record_test.c" + ], + "test/quic_srt_gen_test" => [ + "test/helpers/quic_srt_gen_test-bin-noisydgrambio.o", + "test/helpers/quic_srt_gen_test-bin-pktsplitbio.o", + "test/helpers/quic_srt_gen_test-bin-quictestlib.o", + "test/helpers/quic_srt_gen_test-bin-ssltestlib.o", + "test/quic_srt_gen_test-bin-quic_srt_gen_test.o" + ], + "test/quic_srt_gen_test-bin-quic_srt_gen_test.o" => [ + "test/quic_srt_gen_test.c" + ], + "test/quic_srtm_test" => [ + "test/quic_srtm_test-bin-quic_srtm_test.o" + ], + "test/quic_srtm_test-bin-quic_srtm_test.o" => [ + "test/quic_srtm_test.c" + ], + "test/quic_stream_test" => [ + "test/quic_stream_test-bin-quic_stream_test.o" + ], + "test/quic_stream_test-bin-quic_stream_test.o" => [ + "test/quic_stream_test.c" + ], + "test/quic_tserver_test" => [ + "test/quic_tserver_test-bin-quic_tserver_test.o" + ], + "test/quic_tserver_test-bin-quic_tserver_test.o" => [ + "test/quic_tserver_test.c" + ], + "test/quic_txp_test" => [ + "test/quic_txp_test-bin-cc_dummy.o", + "test/quic_txp_test-bin-quic_txp_test.o" + ], + "test/quic_txp_test-bin-cc_dummy.o" => [ + "test/cc_dummy.c" + ], + "test/quic_txp_test-bin-quic_txp_test.o" => [ + "test/quic_txp_test.c" + ], + "test/quic_txpim_test" => [ + "test/quic_txpim_test-bin-quic_txpim_test.o" + ], + "test/quic_txpim_test-bin-quic_txpim_test.o" => [ + "test/quic_txpim_test.c" + ], + "test/quic_wire_test" => [ + "test/quic_wire_test-bin-quic_wire_test.o" + ], + "test/quic_wire_test-bin-quic_wire_test.o" => [ + "test/quic_wire_test.c" + ], + "test/quicapitest" => [ + "test/helpers/quicapitest-bin-noisydgrambio.o", + "test/helpers/quicapitest-bin-pktsplitbio.o", + "test/helpers/quicapitest-bin-quictestlib.o", + "test/helpers/quicapitest-bin-ssltestlib.o", + "test/quicapitest-bin-quicapitest.o" + ], + "test/quicapitest-bin-quicapitest.o" => [ + "test/quicapitest.c" + ], + "test/quicfaultstest" => [ + "test/helpers/quicfaultstest-bin-noisydgrambio.o", + "test/helpers/quicfaultstest-bin-pktsplitbio.o", + "test/helpers/quicfaultstest-bin-quictestlib.o", + "test/helpers/quicfaultstest-bin-ssltestlib.o", + "test/quicfaultstest-bin-quicfaultstest.o" + ], + "test/quicfaultstest-bin-quicfaultstest.o" => [ + "test/quicfaultstest.c" + ], + "test/radix/quic_radix_test-bin-quic_radix.o" => [ + "test/radix/quic_radix.c" + ], "test/rand_status_test" => [ "test/rand_status_test-bin-rand_status_test.o" ], @@ -27000,11 +31938,11 @@ our %unified_info = ( "test/rc5test-bin-rc5test.o" => [ "test/rc5test.c" ], - "test/rdrand_sanitytest" => [ - "test/rdrand_sanitytest-bin-rdrand_sanitytest.o" + "test/rdcpu_sanitytest" => [ + "test/rdcpu_sanitytest-bin-rdcpu_sanitytest.o" ], - "test/rdrand_sanitytest-bin-rdrand_sanitytest.o" => [ - "test/rdrand_sanitytest.c" + "test/rdcpu_sanitytest-bin-rdcpu_sanitytest.o" => [ + "test/rdcpu_sanitytest.c" ], "test/recordlentest" => [ "test/helpers/recordlentest-bin-ssltestlib.o", @@ -27013,6 +31951,13 @@ our %unified_info = ( "test/recordlentest-bin-recordlentest.o" => [ "test/recordlentest.c" ], + "test/rpktest" => [ + "test/helpers/rpktest-bin-ssltestlib.o", + "test/rpktest-bin-rpktest.o" + ], + "test/rpktest-bin-rpktest.o" => [ + "test/rpktest.c" + ], "test/rsa_complex" => [ "test/rsa_complex-bin-rsa_complex.o" ], @@ -27037,6 +31982,18 @@ our %unified_info = ( "test/rsa_test-bin-rsa_test.o" => [ "test/rsa_test.c" ], + "test/rsa_x931_test" => [ + "test/rsa_x931_test-bin-rsa_x931_test.o" + ], + "test/rsa_x931_test-bin-rsa_x931_test.o" => [ + "test/rsa_x931_test.c" + ], + "test/safe_math_test" => [ + "test/safe_math_test-bin-safe_math_test.o" + ], + "test/safe_math_test-bin-safe_math_test.o" => [ + "test/safe_math_test.c" + ], "test/sanitytest" => [ "test/sanitytest-bin-sanitytest.o" ], @@ -27068,6 +32025,12 @@ our %unified_info = ( "test/siphash_internal_test-bin-siphash_internal_test.o" => [ "test/siphash_internal_test.c" ], + "test/slh_dsa_test" => [ + "test/slh_dsa_test-bin-slh_dsa_test.o" + ], + "test/slh_dsa_test-bin-slh_dsa_test.o" => [ + "test/slh_dsa_test.c" + ], "test/sm2_internal_test" => [ "test/sm2_internal_test-bin-sm2_internal_test.o" ], @@ -27110,6 +32073,13 @@ our %unified_info = ( "test/ssl_ctx_test-bin-ssl_ctx_test.o" => [ "test/ssl_ctx_test.c" ], + "test/ssl_handshake_rtt_test" => [ + "test/helpers/ssl_handshake_rtt_test-bin-ssltestlib.o", + "test/ssl_handshake_rtt_test-bin-ssl_handshake_rtt_test.o" + ], + "test/ssl_handshake_rtt_test-bin-ssl_handshake_rtt_test.o" => [ + "test/ssl_handshake_rtt_test.c" + ], "test/ssl_old_test" => [ "test/helpers/ssl_old_test-bin-predefined_dhparams.o", "test/ssl_old_test-bin-ssl_old_test.o" @@ -27168,6 +32138,12 @@ our %unified_info = ( "test/stack_test-bin-stack_test.o" => [ "test/stack_test.c" ], + "test/strtoultest" => [ + "test/strtoultest-bin-strtoultest.o" + ], + "test/strtoultest-bin-strtoultest.o" => [ + "test/strtoultest.c" + ], "test/sysdefaulttest" => [ "test/sysdefaulttest-bin-sysdefaulttest.o" ], @@ -27198,6 +32174,9 @@ our %unified_info = ( "test/testutil/libtestutil-lib-format_output.o" => [ "test/testutil/format_output.c" ], + "test/testutil/libtestutil-lib-helper.o" => [ + "test/testutil/helper.c" + ], "test/testutil/libtestutil-lib-load.o" => [ "test/testutil/load.c" ], @@ -27231,6 +32210,12 @@ our %unified_info = ( "test/testutil/libtestutil-lib-testutil_init.o" => [ "test/testutil/testutil_init.c" ], + "test/threadpool_test" => [ + "test/threadpool_test-bin-threadpool_test.o" + ], + "test/threadpool_test-bin-threadpool_test.o" => [ + "test/threadpool_test.c" + ], "test/threadstest" => [ "test/threadstest-bin-threadstest.o" ], @@ -27249,6 +32234,12 @@ our %unified_info = ( "test/time_offset_test-bin-time_offset_test.o" => [ "test/time_offset_test.c" ], + "test/time_test" => [ + "test/time_test-bin-time_test.o" + ], + "test/time_test-bin-time_test.o" => [ + "test/time_test.c" + ], "test/tls13ccstest" => [ "test/helpers/tls13ccstest-bin-ssltestlib.o", "test/tls13ccstest-bin-tls13ccstest.o" @@ -27262,6 +32253,13 @@ our %unified_info = ( "test/tls13encryptiontest-bin-tls13encryptiontest.o" => [ "test/tls13encryptiontest.c" ], + "test/tls13groupselection_test" => [ + "test/helpers/tls13groupselection_test-bin-ssltestlib.o", + "test/tls13groupselection_test-bin-tls13groupselection_test.o" + ], + "test/tls13groupselection_test-bin-tls13groupselection_test.o" => [ + "test/tls13groupselection_test.c" + ], "test/trace_api_test" => [ "test/trace_api_test-bin-trace_api_test.o" ], @@ -27317,6 +32315,12 @@ our %unified_info = ( "test/wpackettest-bin-wpackettest.o" => [ "test/wpackettest.c" ], + "test/x509_acert_test" => [ + "test/x509_acert_test-bin-x509_acert_test.o" + ], + "test/x509_acert_test-bin-x509_acert_test.o" => [ + "test/x509_acert_test.c" + ], "test/x509_check_cert_pkey_test" => [ "test/x509_check_cert_pkey_test-bin-x509_check_cert_pkey_test.o" ], @@ -27335,6 +32339,24 @@ our %unified_info = ( "test/x509_internal_test-bin-x509_internal_test.o" => [ "test/x509_internal_test.c" ], + "test/x509_load_cert_file_test" => [ + "test/x509_load_cert_file_test-bin-x509_load_cert_file_test.o" + ], + "test/x509_load_cert_file_test-bin-x509_load_cert_file_test.o" => [ + "test/x509_load_cert_file_test.c" + ], + "test/x509_req_test" => [ + "test/x509_req_test-bin-x509_req_test.o" + ], + "test/x509_req_test-bin-x509_req_test.o" => [ + "test/x509_req_test.c" + ], + "test/x509_test" => [ + "test/x509_test-bin-x509_test.o" + ], + "test/x509_test-bin-x509_test.o" => [ + "test/x509_test.c" + ], "test/x509_time_test" => [ "test/x509_time_test-bin-x509_time_test.o" ], @@ -27398,6 +32420,7 @@ my @makevars = ( "LDLIBS", "MT", "MTFLAGS", + "OBJCOPY", "PERL", "RANLIB", "RC", @@ -27414,6 +32437,12 @@ my %disabled_info = ( "asm" => { "macro" => "OPENSSL_NO_ASM" }, + "brotli" => { + "macro" => "OPENSSL_NO_BROTLI" + }, + "brotli-dynamic" => { + "macro" => "OPENSSL_NO_BROTLI_DYNAMIC" + }, "comp" => { "macro" => "OPENSSL_NO_COMP", "skipped" => [ @@ -27426,6 +32455,9 @@ my %disabled_info = ( "crypto-mdebug-backtrace" => { "macro" => "OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE" }, + "demos" => { + "macro" => "OPENSSL_NO_DEMOS" + }, "devcryptoeng" => { "macro" => "OPENSSL_NO_DEVCRYPTOENG" }, @@ -27438,12 +32470,24 @@ my %disabled_info = ( "external-tests" => { "macro" => "OPENSSL_NO_EXTERNAL_TESTS" }, + "fips-jitter" => { + "macro" => "OPENSSL_NO_FIPS_JITTER" + }, "fuzz-afl" => { "macro" => "OPENSSL_NO_FUZZ_AFL" }, "fuzz-libfuzzer" => { "macro" => "OPENSSL_NO_FUZZ_LIBFUZZER" }, + "h3demo" => { + "macro" => "OPENSSL_NO_H3DEMO" + }, + "hqinterop" => { + "macro" => "OPENSSL_NO_HQINTEROP" + }, + "jitter" => { + "macro" => "OPENSSL_NO_JITTER" + }, "ktls" => { "macro" => "OPENSSL_NO_KTLS" }, @@ -27459,6 +32503,9 @@ my %disabled_info = ( "msan" => { "macro" => "OPENSSL_NO_MSAN" }, + "pie" => { + "macro" => "OPENSSL_NO_PIE" + }, "rc5" => { "macro" => "OPENSSL_NO_RC5", "skipped" => [ @@ -27474,6 +32521,12 @@ my %disabled_info = ( "ssl3-method" => { "macro" => "OPENSSL_NO_SSL3_METHOD" }, + "sslkeylog" => { + "macro" => "OPENSSL_NO_SSLKEYLOG" + }, + "tfo" => { + "macro" => "OPENSSL_NO_TFO" + }, "trace" => { "macro" => "OPENSSL_NO_TRACE" }, @@ -27488,6 +32541,21 @@ my %disabled_info = ( }, "weak-ssl-ciphers" => { "macro" => "OPENSSL_NO_WEAK_SSL_CIPHERS" + }, + "winstore" => { + "macro" => "OPENSSL_NO_WINSTORE" + }, + "zlib" => { + "macro" => "OPENSSL_NO_ZLIB" + }, + "zlib-dynamic" => { + "macro" => "OPENSSL_NO_ZLIB_DYNAMIC" + }, + "zstd" => { + "macro" => "OPENSSL_NO_ZSTD" + }, + "zstd-dynamic" => { + "macro" => "OPENSSL_NO_ZSTD_DYNAMIC" } ); my @user_crossable = qw( AR AS CC CXX CPP LD MT RANLIB RC ); @@ -27501,15 +32569,15 @@ unless (caller) { use File::Copy; use Pod::Usage; - use lib '/home/runner/work/node/node/deps/openssl/openssl/util/perl'; - use OpenSSL::fallback '/home/runner/work/node/node/deps/openssl/openssl/external/perl/MODULES.txt'; + use lib '/node/deps/openssl/openssl/util/perl'; + use OpenSSL::fallback '/node/deps/openssl/openssl/external/perl/MODULES.txt'; my $here = dirname($0); if (scalar @ARGV == 0) { # With no arguments, re-create the build file # We do that in two steps, where the first step emits perl - # snipets. + # snippets. my $buildfile = $config{build_file}; my $buildfile_template = "$buildfile.in"; @@ -27529,7 +32597,7 @@ unless (caller) { ); use lib '.'; - use lib '/home/runner/work/node/node/deps/openssl/openssl/Configurations'; + use lib '/node/deps/openssl/openssl/Configurations'; use gentemplate; open my $buildfile_template_fh, ">$buildfile_template" @@ -27546,8 +32614,8 @@ unless (caller) { my $prepend = <<'_____'; use File::Spec::Functions; -use lib '/home/runner/work/node/node/deps/openssl/openssl/util/perl'; -use lib '/home/runner/work/node/node/deps/openssl/openssl/Configurations'; +use lib '/node/deps/openssl/openssl/util/perl'; +use lib '/node/deps/openssl/openssl/Configurations'; use lib '.'; use platform; _____ diff --git a/deps/openssl/config/archs/linux-armv4/no-asm/crypto/buildinf.h b/deps/openssl/config/archs/linux-armv4/no-asm/crypto/buildinf.h index 119e00a73ff241..75a3b2ac3ddc7a 100644 --- a/deps/openssl/config/archs/linux-armv4/no-asm/crypto/buildinf.h +++ b/deps/openssl/config/archs/linux-armv4/no-asm/crypto/buildinf.h @@ -11,7 +11,7 @@ */ #define PLATFORM "platform: linux-armv4" -#define DATE "built on: Sun Jul 20 00:49:55 2025 UTC" +#define DATE "built on: Sun Jul 27 00:51:32 2025 UTC" /* * Generate compiler_flags as an array of individual characters. This is a diff --git a/deps/openssl/config/archs/linux-armv4/no-asm/crypto/params_idx.c b/deps/openssl/config/archs/linux-armv4/no-asm/crypto/params_idx.c new file mode 100644 index 00000000000000..9d76ffededc24c --- /dev/null +++ b/deps/openssl/config/archs/linux-armv4/no-asm/crypto/params_idx.c @@ -0,0 +1,3366 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from crypto/params_idx.c.in + * + * Copyright 2023 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + +#include "internal/e_os.h" +#include "internal/param_names.h" +#include + +/* Machine generated TRIE -- generated by util/perl/OpenSSL/paramnames.pm */ +int ossl_param_find_pidx(const char *s) +{ + switch(s[0]) { + default: + break; + case 'a': + switch(s[1]) { + default: + break; + case 'c': + if (strcmp("vp-info", s + 2) == 0) + return PIDX_KDF_PARAM_X942_ACVPINFO; + break; + case 'd': + switch(s[2]) { + default: + break; + case 'd': + if (strcmp("itional-random", s + 3) == 0) + return PIDX_SIGNATURE_PARAM_ADD_RANDOM; + break; + case '\0': + return PIDX_KDF_PARAM_ARGON2_AD; + } + break; + case 'e': + if (strcmp("ad", s + 2) == 0) + return PIDX_CIPHER_PARAM_AEAD; + break; + case 'l': + switch(s[2]) { + default: + break; + case 'g': + switch(s[3]) { + default: + break; + case '_': + if (strcmp("id_param", s + 4) == 0) + return PIDX_CIPHER_PARAM_ALGORITHM_ID_PARAMS_OLD; + break; + case 'i': + if (strcmp("d-absent", s + 4) == 0) + return PIDX_DIGEST_PARAM_ALGID_ABSENT; + break; + case 'o': + switch(s[4]) { + default: + break; + case 'r': + switch(s[5]) { + default: + break; + case 'i': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case 'h': + switch(s[8]) { + default: + break; + case 'm': + switch(s[9]) { + default: + break; + case '-': + switch(s[10]) { + default: + break; + case 'i': + switch(s[11]) { + default: + break; + case 'd': + switch(s[12]) { + default: + break; + case '-': + if (strcmp("params", s + 13) == 0) + return PIDX_ALG_PARAM_ALGORITHM_ID_PARAMS; + break; + case '\0': + return PIDX_ALG_PARAM_ALGORITHM_ID; + } + } + } + } + } + } + } + } + } + } + break; + case 'i': + if (strcmp("as", s + 3) == 0) + return PIDX_STORE_PARAM_ALIAS; + } + break; + case '\0': + return PIDX_PKEY_PARAM_EC_A; + } + break; + case 'b': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("sis-type", s + 2) == 0) + return PIDX_PKEY_PARAM_EC_CHAR2_TYPE; + break; + case 'i': + if (strcmp("ts", s + 2) == 0) + return PIDX_PKEY_PARAM_BITS; + break; + case 'l': + switch(s[2]) { + default: + break; + case 'o': + switch(s[3]) { + default: + break; + case 'c': + switch(s[4]) { + default: + break; + case 'k': + switch(s[5]) { + default: + break; + case '-': + if (strcmp("size", s + 6) == 0) + return PIDX_MAC_PARAM_BLOCK_SIZE; + break; + case '_': + if (strcmp("padding", s + 6) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_BLOCK_PADDING; + break; + case 's': + if (strcmp("ize", s + 6) == 0) + return PIDX_DIGEST_PARAM_BLOCK_SIZE; + } + } + } + } + break; + case 'u': + if (strcmp("ildinfo", s + 2) == 0) + return PIDX_PROV_PARAM_BUILDINFO; + break; + case '\0': + return PIDX_PKEY_PARAM_EC_B; + } + break; + case 'c': + switch(s[1]) { + default: + break; + case '-': + if (strcmp("rounds", s + 2) == 0) + return PIDX_MAC_PARAM_C_ROUNDS; + break; + case 'e': + if (strcmp("kalg", s + 2) == 0) + return PIDX_KDF_PARAM_CEK_ALG; + break; + case 'i': + if (strcmp("pher", s + 2) == 0) + return PIDX_ALG_PARAM_CIPHER; + break; + case 'o': + switch(s[2]) { + default: + break; + case 'f': + if (strcmp("actor", s + 3) == 0) + return PIDX_PKEY_PARAM_EC_COFACTOR; + break; + case 'n': + switch(s[3]) { + default: + break; + case 's': + if (strcmp("tant", s + 4) == 0) + return PIDX_KDF_PARAM_CONSTANT; + break; + case 't': + if (strcmp("ext-string", s + 4) == 0) + return PIDX_SIGNATURE_PARAM_CONTEXT_STRING; + } + } + break; + case 't': + switch(s[2]) { + default: + break; + case 's': + switch(s[3]) { + default: + break; + case '_': + if (strcmp("mode", s + 4) == 0) + return PIDX_CIPHER_PARAM_CTS_MODE; + break; + case '\0': + return PIDX_CIPHER_PARAM_CTS; + } + } + break; + case 'u': + switch(s[2]) { + default: + break; + case 's': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case 'o': + switch(s[5]) { + default: + break; + case 'm': + switch(s[6]) { + default: + break; + case '-': + if (strcmp("iv", s + 7) == 0) + return PIDX_CIPHER_PARAM_CUSTOM_IV; + break; + case '\0': + return PIDX_MAC_PARAM_CUSTOM; + } + } + } + } + } + } + break; + case 'd': + switch(s[1]) { + default: + break; + case '-': + if (strcmp("rounds", s + 2) == 0) + return PIDX_MAC_PARAM_D_ROUNDS; + break; + case 'a': + switch(s[2]) { + default: + break; + case 't': + switch(s[3]) { + default: + break; + case 'a': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 's': + if (strcmp("tructure", s + 6) == 0) + return PIDX_OBJECT_PARAM_DATA_STRUCTURE; + break; + case 't': + if (strcmp("ype", s + 6) == 0) + return PIDX_OBJECT_PARAM_DATA_TYPE; + } + break; + case '\0': + return PIDX_OBJECT_PARAM_DATA; + } + } + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'c': + switch(s[3]) { + default: + break; + case 'o': + if (strcmp("ded-from-explicit", s + 4) == 0) + return PIDX_PKEY_PARAM_EC_DECODED_FROM_EXPLICIT_PARAMS; + break; + case 'r': + if (strcmp("ypt-only", s + 4) == 0) + return PIDX_CIPHER_PARAM_DECRYPT_ONLY; + } + break; + case 'f': + if (strcmp("ault-digest", s + 3) == 0) + return PIDX_PKEY_PARAM_DEFAULT_DIGEST; + break; + case 's': + if (strcmp("c", s + 3) == 0) + return PIDX_OBJECT_PARAM_DESC; + break; + case 't': + if (strcmp("erministic", s + 3) == 0) + return PIDX_SIGNATURE_PARAM_DETERMINISTIC; + } + break; + case 'h': + if (strcmp("kem-ikm", s + 2) == 0) + return PIDX_PKEY_PARAM_DHKEM_IKM; + break; + case 'i': + switch(s[2]) { + default: + break; + case 'g': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case 's': + switch(s[5]) { + default: + break; + case 't': + switch(s[6]) { + default: + break; + case '-': + switch(s[7]) { + default: + break; + case 'c': + if (strcmp("heck", s + 8) == 0) + return PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK; + break; + case 'n': + if (strcmp("oinit", s + 8) == 0) + return PIDX_MAC_PARAM_DIGEST_NOINIT; + break; + case 'o': + if (strcmp("neshot", s + 8) == 0) + return PIDX_MAC_PARAM_DIGEST_ONESHOT; + break; + case 'p': + if (strcmp("rops", s + 8) == 0) + return PIDX_ASYM_CIPHER_PARAM_OAEP_DIGEST_PROPS; + break; + case 's': + if (strcmp("ize", s + 8) == 0) + return PIDX_PKEY_PARAM_DIGEST_SIZE; + } + break; + case '\0': + return PIDX_STORE_PARAM_DIGEST; + } + } + } + } + break; + case 's': + if (strcmp("tid", s + 3) == 0) + return PIDX_PKEY_PARAM_DIST_ID; + } + break; + case 'r': + if (strcmp("bg-no-trunc-md", s + 2) == 0) + return PIDX_PROV_PARAM_DRBG_TRUNC_DIGEST; + break; + case 's': + if (strcmp("a-sign-disabled", s + 2) == 0) + return PIDX_PROV_PARAM_DSA_SIGN_DISABLED; + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_D; + } + break; + case 'e': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("rly_clean", s + 2) == 0) + return PIDX_KDF_PARAM_EARLY_CLEAN; + break; + case 'c': + switch(s[2]) { + default: + break; + case 'd': + switch(s[3]) { + default: + break; + case 'h': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'c': + switch(s[6]) { + default: + break; + case 'o': + switch(s[7]) { + default: + break; + case 'f': + switch(s[8]) { + default: + break; + case 'a': + switch(s[9]) { + default: + break; + case 'c': + switch(s[10]) { + default: + break; + case 't': + switch(s[11]) { + default: + break; + case 'o': + switch(s[12]) { + default: + break; + case 'r': + switch(s[13]) { + default: + break; + case '-': + switch(s[14]) { + default: + break; + case 'c': + if (strcmp("heck", s + 15) == 0) + return PIDX_PROV_PARAM_ECDH_COFACTOR_CHECK; + break; + case 'm': + if (strcmp("ode", s + 15) == 0) + return PIDX_EXCHANGE_PARAM_EC_ECDH_COFACTOR_MODE; + } + } + } + } + } + } + } + } + } + } + } + } + } + break; + case 'm': + if (strcmp("s_check", s + 2) == 0) + return PIDX_KDF_PARAM_FIPS_EMS_CHECK; + break; + case 'n': + switch(s[2]) { + default: + break; + case 'c': + switch(s[3]) { + default: + break; + case 'o': + switch(s[4]) { + default: + break; + case 'd': + switch(s[5]) { + default: + break; + case 'e': + if (strcmp("d-pub-key", s + 6) == 0) + return PIDX_PKEY_PARAM_ENCODED_PUBLIC_KEY; + break; + case 'i': + if (strcmp("ng", s + 6) == 0) + return PIDX_PKEY_PARAM_EC_ENCODING; + } + } + break; + case 'r': + switch(s[4]) { + default: + break; + case 'y': + switch(s[5]) { + default: + break; + case 'p': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case '-': + switch(s[8]) { + default: + break; + case 'c': + if (strcmp("heck", s + 9) == 0) + return PIDX_CIPHER_PARAM_FIPS_ENCRYPT_CHECK; + break; + case 'l': + if (strcmp("evel", s + 9) == 0) + return PIDX_ENCODER_PARAM_ENCRYPT_LEVEL; + } + } + } + } + } + } + break; + case 'g': + if (strcmp("ine", s + 3) == 0) + return PIDX_ALG_PARAM_ENGINE; + break; + case 't': + switch(s[3]) { + default: + break; + case 'r': + switch(s[4]) { + default: + break; + case 'o': + switch(s[5]) { + default: + break; + case 'p': + switch(s[6]) { + default: + break; + case 'y': + switch(s[7]) { + default: + break; + case '_': + if (strcmp("required", s + 8) == 0) + return PIDX_DRBG_PARAM_ENTROPY_REQUIRED; + break; + case '\0': + return PIDX_KDF_PARAM_HMACDRBG_ENTROPY; + } + } + } + } + } + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_E; + break; + case 'x': + if (strcmp("pect", s + 2) == 0) + return PIDX_STORE_PARAM_EXPECT; + } + break; + case 'f': + switch(s[1]) { + default: + break; + case 'i': + switch(s[2]) { + default: + break; + case 'e': + if (strcmp("ld-type", s + 3) == 0) + return PIDX_PKEY_PARAM_EC_FIELD_TYPE; + break; + case 'n': + if (strcmp("gerprint", s + 3) == 0) + return PIDX_STORE_PARAM_FINGERPRINT; + break; + case 'p': + if (strcmp("s-indicator", s + 3) == 0) + return PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR; + } + } + break; + case 'g': + switch(s[1]) { + default: + break; + case 'e': + switch(s[2]) { + default: + break; + case 'n': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case 'r': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case 'e': + switch(s[8]) { + default: + break; + case '\0': + return PIDX_RAND_PARAM_GENERATE; + } + break; + case 'o': + if (strcmp("r", s + 8) == 0) + return PIDX_PKEY_PARAM_EC_GENERATOR; + } + } + } + } + } + } + break; + case 'i': + if (strcmp("ndex", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_GINDEX; + break; + case 'r': + switch(s[2]) { + default: + break; + case 'o': + switch(s[3]) { + default: + break; + case 'u': + switch(s[4]) { + default: + break; + case 'p': + switch(s[5]) { + default: + break; + case '-': + if (strcmp("check", s + 6) == 0) + return PIDX_PKEY_PARAM_EC_GROUP_CHECK_TYPE; + break; + case '\0': + return PIDX_PKEY_PARAM_GROUP_NAME; + } + } + } + } + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_G; + } + break; + case 'h': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("s-randkey", s + 2) == 0) + return PIDX_CIPHER_PARAM_HAS_RAND_KEY; + break; + case 'i': + if (strcmp("ndex", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_H; + break; + case 'k': + switch(s[2]) { + default: + break; + case 'd': + switch(s[3]) { + default: + break; + case 'f': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 6) == 0) + return PIDX_PROV_PARAM_HKDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 6) == 0) + return PIDX_PROV_PARAM_HKDF_KEY_CHECK; + } + } + } + } + break; + case 'm': + if (strcmp("ac-key-check", s + 2) == 0) + return PIDX_PROV_PARAM_HMAC_KEY_CHECK; + break; + case 's': + if (strcmp("_padding", s + 2) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_HS_PADDING; + } + break; + case 'i': + switch(s[1]) { + default: + break; + case 'd': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_KDF_PARAM_PKCS12_ID; + } + break; + case 'k': + if (strcmp("me", s + 2) == 0) + return PIDX_KEM_PARAM_IKME; + break; + case 'm': + if (strcmp("plicit-rejection", s + 2) == 0) + return PIDX_PKEY_PARAM_IMPLICIT_REJECTION; + break; + case 'n': + switch(s[2]) { + default: + break; + case 'c': + if (strcmp("lude-public", s + 3) == 0) + return PIDX_PKEY_PARAM_EC_INCLUDE_PUBLIC; + break; + case 'f': + if (strcmp("o", s + 3) == 0) + return PIDX_PASSPHRASE_PARAM_INFO; + break; + case 'p': + if (strcmp("ut-type", s + 3) == 0) + return PIDX_STORE_PARAM_INPUT_TYPE; + break; + case 's': + if (strcmp("tance", s + 3) == 0) + return PIDX_SIGNATURE_PARAM_INSTANCE; + } + break; + case 't': + switch(s[2]) { + default: + break; + case 'e': + switch(s[3]) { + default: + break; + case 'r': + switch(s[4]) { + default: + break; + case 'a': + if (strcmp("tion", s + 5) == 0) + return PIDX_GEN_PARAM_ITERATION; + break; + case '\0': + return PIDX_KDF_PARAM_ITER; + } + } + } + break; + case 'v': + switch(s[2]) { + default: + break; + case '-': + if (strcmp("generated", s + 3) == 0) + return PIDX_CIPHER_PARAM_AEAD_IV_GENERATED; + break; + case 'l': + if (strcmp("en", s + 3) == 0) + return PIDX_CIPHER_PARAM_IVLEN; + break; + case '\0': + return PIDX_MAC_PARAM_IV; + } + } + break; + case 'j': + switch(s[1]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_COFACTOR; + } + break; + case 'k': + switch(s[1]) { + default: + break; + case '1': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_PP_K1; + } + break; + case '2': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_PP_K2; + } + break; + case '3': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_PP_K3; + } + break; + case 'a': + if (strcmp("t", s + 2) == 0) + return PIDX_SIGNATURE_PARAM_KAT; + break; + case 'b': + if (strcmp("kdf-key-check", s + 2) == 0) + return PIDX_PROV_PARAM_KBKDF_KEY_CHECK; + break; + case 'd': + switch(s[2]) { + default: + break; + case 'f': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'd': + switch(s[5]) { + default: + break; + case 'i': + switch(s[6]) { + default: + break; + case 'g': + switch(s[7]) { + default: + break; + case 'e': + switch(s[8]) { + default: + break; + case 's': + switch(s[9]) { + default: + break; + case 't': + switch(s[10]) { + default: + break; + case '-': + if (strcmp("props", s + 11) == 0) + return PIDX_EXCHANGE_PARAM_KDF_DIGEST_PROPS; + break; + case '\0': + return PIDX_EXCHANGE_PARAM_KDF_DIGEST; + } + } + } + } + } + } + break; + case 'o': + if (strcmp("utlen", s + 5) == 0) + return PIDX_EXCHANGE_PARAM_KDF_OUTLEN; + break; + case 't': + if (strcmp("ype", s + 5) == 0) + return PIDX_EXCHANGE_PARAM_KDF_TYPE; + break; + case 'u': + if (strcmp("km", s + 5) == 0) + return PIDX_EXCHANGE_PARAM_KDF_UKM; + } + } + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'y': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'c': + if (strcmp("heck", s + 5) == 0) + return PIDX_PKEY_PARAM_FIPS_KEY_CHECK; + break; + case 'l': + if (strcmp("ength", s + 5) == 0) + return PIDX_SKEY_PARAM_KEY_LENGTH; + } + break; + case 'b': + if (strcmp("its", s + 4) == 0) + return PIDX_CIPHER_PARAM_RC2_KEYBITS; + break; + case 'l': + if (strcmp("en", s + 4) == 0) + return PIDX_CIPHER_PARAM_KEYLEN; + break; + case '\0': + return PIDX_MAC_PARAM_KEY; + } + } + break; + case 'm': + if (strcmp("ac-key-check", s + 2) == 0) + return PIDX_PROV_PARAM_KMAC_KEY_CHECK; + } + break; + case 'l': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'b': + if (strcmp("el", s + 3) == 0) + return PIDX_KDF_PARAM_LABEL; + break; + case 'n': + if (strcmp("es", s + 3) == 0) + return PIDX_KDF_PARAM_ARGON2_LANES; + } + } + break; + case 'm': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'c': + switch(s[3]) { + default: + break; + case 'k': + if (strcmp("ey", s + 4) == 0) + return PIDX_CIPHER_PARAM_AEAD_MAC_KEY; + break; + case 'l': + if (strcmp("en", s + 4) == 0) + return PIDX_KDF_PARAM_MAC_SIZE; + break; + case '\0': + return PIDX_ALG_PARAM_MAC; + } + break; + case 'n': + if (strcmp("datory-digest", s + 3) == 0) + return PIDX_PKEY_PARAM_MANDATORY_DIGEST; + break; + case 'x': + switch(s[3]) { + default: + break; + case '-': + if (strcmp("size", s + 4) == 0) + return PIDX_PKEY_PARAM_MAX_SIZE; + break; + case '_': + switch(s[4]) { + default: + break; + case 'a': + if (strcmp("dinlen", s + 5) == 0) + return PIDX_DRBG_PARAM_MAX_ADINLEN; + break; + case 'e': + switch(s[5]) { + default: + break; + case 'a': + if (strcmp("rly_data", s + 6) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_MAX_EARLY_DATA; + break; + case 'n': + if (strcmp("tropylen", s + 6) == 0) + return PIDX_DRBG_PARAM_MAX_ENTROPYLEN; + } + break; + case 'f': + if (strcmp("rag_len", s + 5) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_MAX_FRAG_LEN; + break; + case 'n': + if (strcmp("oncelen", s + 5) == 0) + return PIDX_DRBG_PARAM_MAX_NONCELEN; + break; + case 'p': + if (strcmp("erslen", s + 5) == 0) + return PIDX_DRBG_PARAM_MAX_PERSLEN; + break; + case 'r': + if (strcmp("equest", s + 5) == 0) + return PIDX_RAND_PARAM_MAX_REQUEST; + } + break; + case 'i': + if (strcmp("um_length", s + 4) == 0) + return PIDX_DRBG_PARAM_MAX_LENGTH; + break; + case 'm': + if (strcmp("em_bytes", s + 4) == 0) + return PIDX_KDF_PARAM_SCRYPT_MAXMEM; + } + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'm': + if (strcmp("cost", s + 3) == 0) + return PIDX_KDF_PARAM_ARGON2_MEMCOST; + break; + case 's': + if (strcmp("sage-encoding", s + 3) == 0) + return PIDX_SIGNATURE_PARAM_MESSAGE_ENCODING; + } + break; + case 'g': + switch(s[2]) { + default: + break; + case 'f': + switch(s[3]) { + default: + break; + case '1': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'd': + if (strcmp("igest", s + 6) == 0) + return PIDX_PKEY_PARAM_MGF1_DIGEST; + break; + case 'p': + if (strcmp("roperties", s + 6) == 0) + return PIDX_PKEY_PARAM_MGF1_PROPERTIES; + } + } + break; + case '\0': + return PIDX_PKEY_PARAM_MASKGENFUNC; + } + } + break; + case 'i': + switch(s[2]) { + default: + break; + case 'c': + if (strcmp("alg", s + 3) == 0) + return PIDX_DIGEST_PARAM_MICALG; + break; + case 'n': + switch(s[3]) { + default: + break; + case '_': + switch(s[4]) { + default: + break; + case 'e': + if (strcmp("ntropylen", s + 5) == 0) + return PIDX_DRBG_PARAM_MIN_ENTROPYLEN; + break; + case 'n': + if (strcmp("oncelen", s + 5) == 0) + return PIDX_DRBG_PARAM_MIN_NONCELEN; + } + break; + case 'i': + if (strcmp("um_length", s + 4) == 0) + return PIDX_DRBG_PARAM_MIN_LENGTH; + } + } + break; + case 'l': + switch(s[2]) { + default: + break; + case '-': + switch(s[3]) { + default: + break; + case 'd': + switch(s[4]) { + default: + break; + case 's': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case '.': + switch(s[7]) { + default: + break; + case 'i': + if (strcmp("nput_formats", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_DSA_INPUT_FORMATS; + break; + case 'o': + if (strcmp("utput_formats", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_DSA_OUTPUT_FORMATS; + break; + case 'p': + if (strcmp("refer_seed", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_DSA_PREFER_SEED; + break; + case 'r': + if (strcmp("etain_seed", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_DSA_RETAIN_SEED; + } + } + } + } + break; + case 'k': + switch(s[4]) { + default: + break; + case 'e': + switch(s[5]) { + default: + break; + case 'm': + switch(s[6]) { + default: + break; + case '.': + switch(s[7]) { + default: + break; + case 'i': + switch(s[8]) { + default: + break; + case 'm': + if (strcmp("port_pct_type", s + 9) == 0) + return PIDX_PKEY_PARAM_ML_KEM_IMPORT_PCT_TYPE; + break; + case 'n': + if (strcmp("put_formats", s + 9) == 0) + return PIDX_PKEY_PARAM_ML_KEM_INPUT_FORMATS; + } + break; + case 'o': + if (strcmp("utput_formats", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_KEM_OUTPUT_FORMATS; + break; + case 'p': + if (strcmp("refer_seed", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_KEM_PREFER_SEED; + break; + case 'r': + if (strcmp("etain_seed", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_KEM_RETAIN_SEED; + } + } + } + } + } + } + break; + case 'o': + switch(s[2]) { + default: + break; + case 'd': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case '\0': + return PIDX_LIBSSL_RECORD_LAYER_PARAM_MODE; + } + break; + case 'u': + if (strcmp("le-filename", s + 4) == 0) + return PIDX_PROV_PARAM_CORE_MODULE_FILENAME; + } + } + break; + case 'u': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_SIGNATURE_PARAM_MU; + } + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_M; + } + break; + case 'n': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("me", s + 2) == 0) + return PIDX_STORE_PARAM_ISSUER; + break; + case 'o': + switch(s[2]) { + default: + break; + case '-': + if (strcmp("short-mac", s + 3) == 0) + return PIDX_PROV_PARAM_NO_SHORT_MAC; + break; + case 'n': + switch(s[3]) { + default: + break; + case 'c': + switch(s[4]) { + default: + break; + case 'e': + switch(s[5]) { + default: + break; + case '-': + if (strcmp("type", s + 6) == 0) + return PIDX_SIGNATURE_PARAM_NONCE_TYPE; + break; + case '\0': + return PIDX_KDF_PARAM_HMACDRBG_NONCE; + } + } + } + } + break; + case 'u': + if (strcmp("m", s + 2) == 0) + return PIDX_CIPHER_PARAM_NUM; + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_N; + } + break; + case 'o': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("ep-label", s + 2) == 0) + return PIDX_ASYM_CIPHER_PARAM_OAEP_LABEL; + break; + case 'p': + switch(s[2]) { + default: + break; + case 'e': + switch(s[3]) { + default: + break; + case 'n': + if (strcmp("ssl-version", s + 4) == 0) + return PIDX_PROV_PARAM_CORE_VERSION; + break; + case 'r': + if (strcmp("ation", s + 4) == 0) + return PIDX_KEM_PARAM_OPERATION; + } + break; + case 't': + if (strcmp("ions", s + 3) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_OPTIONS; + } + break; + case 'r': + if (strcmp("der", s + 2) == 0) + return PIDX_PKEY_PARAM_EC_ORDER; + } + break; + case 'p': + switch(s[1]) { + default: + break; + case '1': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_P1; + } + break; + case '2': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_P2; + } + break; + case 'a': + switch(s[2]) { + default: + break; + case 'd': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'm': + if (strcmp("ode", s + 5) == 0) + return PIDX_PKEY_PARAM_PAD_MODE; + break; + case 't': + if (strcmp("ype", s + 5) == 0) + return PIDX_DIGEST_PARAM_PAD_TYPE; + } + break; + case 'd': + if (strcmp("ing", s + 4) == 0) + return PIDX_CIPHER_PARAM_PADDING; + break; + case '\0': + return PIDX_EXCHANGE_PARAM_PAD; + } + break; + case 'r': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case 'y': + switch(s[5]) { + default: + break; + case 'u': + if (strcmp("-info", s + 6) == 0) + return PIDX_KDF_PARAM_X942_PARTYUINFO; + break; + case 'v': + if (strcmp("-info", s + 6) == 0) + return PIDX_KDF_PARAM_X942_PARTYVINFO; + } + } + } + break; + case 's': + if (strcmp("s", s + 3) == 0) + return PIDX_KDF_PARAM_PASSWORD; + } + break; + case 'b': + switch(s[2]) { + default: + break; + case 'i': + if (strcmp("ts", s + 3) == 0) + return PIDX_PKEY_PARAM_FFC_PBITS; + break; + case 'k': + if (strcmp("df2-lower-bound-check", s + 3) == 0) + return PIDX_PROV_PARAM_PBKDF2_LOWER_BOUND_CHECK; + } + break; + case 'c': + if (strcmp("ounter", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_PCOUNTER; + break; + case 'i': + if (strcmp("peline-tag", s + 2) == 0) + return PIDX_CIPHER_PARAM_PIPELINE_AEAD_TAG; + break; + case 'k': + if (strcmp("cs5", s + 2) == 0) + return PIDX_KDF_PARAM_PKCS5; + break; + case 'o': + switch(s[2]) { + default: + break; + case 'i': + if (strcmp("nt-format", s + 3) == 0) + return PIDX_PKEY_PARAM_EC_POINT_CONVERSION_FORMAT; + break; + case 't': + if (strcmp("ential", s + 3) == 0) + return PIDX_GEN_PARAM_POTENTIAL; + } + break; + case 'r': + switch(s[2]) { + default: + break; + case 'e': + switch(s[3]) { + default: + break; + case 'd': + if (strcmp("iction_resistance", s + 4) == 0) + return PIDX_DRBG_PARAM_PREDICTION_RESISTANCE; + break; + case 'f': + if (strcmp("ix", s + 4) == 0) + return PIDX_KDF_PARAM_PREFIX; + } + break; + case 'i': + switch(s[3]) { + default: + break; + case 'm': + if (strcmp("es", s + 4) == 0) + return PIDX_PKEY_PARAM_RSA_PRIMES; + break; + case 'v': + switch(s[4]) { + default: + break; + case '_': + if (strcmp("len", s + 5) == 0) + return PIDX_PKEY_PARAM_DH_PRIV_LEN; + break; + case '\0': + return PIDX_PKEY_PARAM_PRIV_KEY; + } + } + break; + case 'o': + switch(s[3]) { + default: + break; + case 'p': + if (strcmp("erties", s + 4) == 0) + return PIDX_STORE_PARAM_PROPERTIES; + break; + case 'v': + if (strcmp("ider-name", s + 4) == 0) + return PIDX_PROV_PARAM_CORE_PROV_NAME; + } + } + break; + case 'u': + if (strcmp("b", s + 2) == 0) + return PIDX_PKEY_PARAM_PUB_KEY; + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_P; + } + break; + case 'q': + switch(s[1]) { + default: + break; + case '1': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_Q1; + } + break; + case '2': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_Q2; + } + break; + case 'b': + if (strcmp("its", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_QBITS; + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_Q; + break; + case 'x': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_PUB_X; + } + break; + case 'y': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_PUB_Y; + } + } + break; + case 'r': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'n': + switch(s[3]) { + default: + break; + case 'd': + switch(s[4]) { + default: + break; + case 'k': + if (strcmp("ey", s + 5) == 0) + return PIDX_CIPHER_PARAM_RANDOM_KEY; + break; + case 'o': + if (strcmp("m_data", s + 5) == 0) + return PIDX_DRBG_PARAM_RANDOM_DATA; + } + } + break; + case 'w': + if (strcmp("-bytes", s + 3) == 0) + return PIDX_SKEY_PARAM_RAW_BYTES; + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'a': + switch(s[3]) { + default: + break; + case 'd': + switch(s[4]) { + default: + break; + case '_': + switch(s[5]) { + default: + break; + case 'a': + if (strcmp("head", s + 6) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_READ_AHEAD; + break; + case 'b': + if (strcmp("uffer_len", s + 6) == 0) + return PIDX_LIBSSL_RECORD_LAYER_READ_BUFFER_LEN; + } + } + } + break; + case 'f': + if (strcmp("erence", s + 3) == 0) + return PIDX_OBJECT_PARAM_REFERENCE; + break; + case 's': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case 'e': + switch(s[5]) { + default: + break; + case 'd': + switch(s[6]) { + default: + break; + case '_': + switch(s[7]) { + default: + break; + case 'c': + if (strcmp("ounter", s + 8) == 0) + return PIDX_DRBG_PARAM_RESEED_COUNTER; + break; + case 'r': + if (strcmp("equests", s + 8) == 0) + return PIDX_DRBG_PARAM_RESEED_REQUESTS; + break; + case 't': + switch(s[8]) { + default: + break; + case 'i': + switch(s[9]) { + default: + break; + case 'm': + switch(s[10]) { + default: + break; + case 'e': + switch(s[11]) { + default: + break; + case '_': + if (strcmp("interval", s + 12) == 0) + return PIDX_DRBG_PARAM_RESEED_TIME_INTERVAL; + break; + case '\0': + return PIDX_DRBG_PARAM_RESEED_TIME; + } + } + } + } + } + } + } + } + } + } + break; + case 'o': + if (strcmp("unds", s + 2) == 0) + return PIDX_CIPHER_PARAM_ROUNDS; + break; + case 's': + switch(s[2]) { + default: + break; + case 'a': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'c': + switch(s[5]) { + default: + break; + case 'o': + switch(s[6]) { + default: + break; + case 'e': + switch(s[7]) { + default: + break; + case 'f': + switch(s[8]) { + default: + break; + case 'f': + switch(s[9]) { + default: + break; + case 'i': + switch(s[10]) { + default: + break; + case 'c': + switch(s[11]) { + default: + break; + case 'i': + switch(s[12]) { + default: + break; + case 'e': + switch(s[13]) { + default: + break; + case 'n': + switch(s[14]) { + default: + break; + case 't': + switch(s[15]) { + default: + break; + case '1': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT1; + } + break; + case '2': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT2; + } + break; + case '3': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT3; + } + break; + case '4': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT4; + } + break; + case '5': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT5; + } + break; + case '6': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT6; + } + break; + case '7': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT7; + } + break; + case '8': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT8; + } + break; + case '9': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT9; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT; + } + } + } + } + } + } + } + } + } + } + } + break; + case 'd': + if (strcmp("erive-from-pq", s + 5) == 0) + return PIDX_PKEY_PARAM_RSA_DERIVE_FROM_PQ; + break; + case 'e': + switch(s[5]) { + default: + break; + case 'x': + switch(s[6]) { + default: + break; + case 'p': + switch(s[7]) { + default: + break; + case 'o': + switch(s[8]) { + default: + break; + case 'n': + switch(s[9]) { + default: + break; + case 'e': + switch(s[10]) { + default: + break; + case 'n': + switch(s[11]) { + default: + break; + case 't': + switch(s[12]) { + default: + break; + case '1': + switch(s[13]) { + default: + break; + case '0': + switch(s[14]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT10; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT1; + } + break; + case '2': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT2; + } + break; + case '3': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT3; + } + break; + case '4': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT4; + } + break; + case '5': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT5; + } + break; + case '6': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT6; + } + break; + case '7': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT7; + } + break; + case '8': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT8; + } + break; + case '9': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT9; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT; + } + } + } + } + } + } + } + } + break; + case 'f': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case 'c': + switch(s[7]) { + default: + break; + case 't': + switch(s[8]) { + default: + break; + case 'o': + switch(s[9]) { + default: + break; + case 'r': + switch(s[10]) { + default: + break; + case '1': + switch(s[11]) { + default: + break; + case '0': + switch(s[12]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR10; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR1; + } + break; + case '2': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR2; + } + break; + case '3': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR3; + } + break; + case '4': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR4; + } + break; + case '5': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR5; + } + break; + case '6': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR6; + } + break; + case '7': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR7; + } + break; + case '8': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR8; + } + break; + case '9': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR9; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR; + } + } + } + } + } + } + break; + case 'p': + switch(s[5]) { + default: + break; + case 'k': + if (strcmp("cs15-pad-disabled", s + 6) == 0) + return PIDX_PROV_PARAM_RSA_PKCS15_PAD_DISABLED; + break; + case 's': + if (strcmp("s-saltlen-check", s + 6) == 0) + return PIDX_SIGNATURE_PARAM_FIPS_RSA_PSS_SALTLEN_CHECK; + } + break; + case 's': + if (strcmp("ign-x931-pad-disabled", s + 5) == 0) + return PIDX_PROV_PARAM_RSA_SIGN_X931_PAD_DISABLED; + } + } + } + break; + case '\0': + return PIDX_KDF_PARAM_SCRYPT_R; + } + break; + case 's': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'f': + if (strcmp("eprime-generator", s + 3) == 0) + return PIDX_PKEY_PARAM_DH_GENERATOR; + break; + case 'l': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case 'l': + if (strcmp("en", s + 5) == 0) + return PIDX_SIGNATURE_PARAM_PSS_SALTLEN; + break; + case '\0': + return PIDX_MAC_PARAM_SALT; + } + } + break; + case 'v': + if (strcmp("e-parameters", s + 3) == 0) + return PIDX_ENCODER_PARAM_SAVE_PARAMETERS; + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'c': + switch(s[3]) { + default: + break; + case 'r': + if (strcmp("et", s + 4) == 0) + return PIDX_KDF_PARAM_SECRET; + break; + case 'u': + switch(s[4]) { + default: + break; + case 'r': + switch(s[5]) { + default: + break; + case 'i': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case 'y': + switch(s[8]) { + default: + break; + case '-': + switch(s[9]) { + default: + break; + case 'b': + if (strcmp("its", s + 10) == 0) + return PIDX_PKEY_PARAM_SECURITY_BITS; + break; + case 'c': + if (strcmp("hecks", s + 10) == 0) + return PIDX_PROV_PARAM_SECURITY_CHECKS; + } + } + } + } + } + } + } + break; + case 'e': + if (strcmp("d", s + 3) == 0) + return PIDX_PKEY_PARAM_SLH_DSA_SEED; + break; + case 'r': + if (strcmp("ial", s + 3) == 0) + return PIDX_STORE_PARAM_SERIAL; + break; + case 's': + if (strcmp("sion_id", s + 3) == 0) + return PIDX_KDF_PARAM_SSHKDF_SESSION_ID; + } + break; + case 'i': + switch(s[2]) { + default: + break; + case 'g': + switch(s[3]) { + default: + break; + case 'n': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'c': + if (strcmp("heck", s + 6) == 0) + return PIDX_PKEY_PARAM_FIPS_SIGN_CHECK; + break; + case 'x': + if (strcmp("931-pad-check", s + 6) == 0) + return PIDX_SIGNATURE_PARAM_FIPS_SIGN_X931_PAD_CHECK; + } + break; + case 'a': + switch(s[5]) { + default: + break; + case 't': + switch(s[6]) { + default: + break; + case 'u': + switch(s[7]) { + default: + break; + case 'r': + switch(s[8]) { + default: + break; + case 'e': + switch(s[9]) { + default: + break; + case '-': + if (strcmp("digest-check", s + 10) == 0) + return PIDX_PROV_PARAM_SIGNATURE_DIGEST_CHECK; + break; + case '\0': + return PIDX_SIGNATURE_PARAM_SIGNATURE; + } + } + } + } + } + } + } + break; + case 'z': + if (strcmp("e", s + 3) == 0) + return PIDX_MAC_PARAM_SIZE; + } + break; + case 'p': + if (strcmp("eed", s + 2) == 0) + return PIDX_CIPHER_PARAM_SPEED; + break; + case 's': + switch(s[2]) { + default: + break; + case 'h': + switch(s[3]) { + default: + break; + case 'k': + switch(s[4]) { + default: + break; + case 'd': + switch(s[5]) { + default: + break; + case 'f': + switch(s[6]) { + default: + break; + case '-': + switch(s[7]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 8) == 0) + return PIDX_PROV_PARAM_SSHKDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 8) == 0) + return PIDX_PROV_PARAM_SSHKDF_KEY_CHECK; + } + } + } + } + } + break; + case 'k': + switch(s[3]) { + default: + break; + case 'd': + switch(s[4]) { + default: + break; + case 'f': + switch(s[5]) { + default: + break; + case '-': + switch(s[6]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 7) == 0) + return PIDX_PROV_PARAM_SSKDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 7) == 0) + return PIDX_PROV_PARAM_SSKDF_KEY_CHECK; + } + } + } + } + break; + case 'l': + if (strcmp("3-ms", s + 3) == 0) + return PIDX_DIGEST_PARAM_SSL3_MS; + } + break; + case 't': + switch(s[2]) { + default: + break; + case '-': + switch(s[3]) { + default: + break; + case 'd': + if (strcmp("esc", s + 4) == 0) + return PIDX_PROV_PARAM_SELF_TEST_DESC; + break; + case 'p': + if (strcmp("hase", s + 4) == 0) + return PIDX_PROV_PARAM_SELF_TEST_PHASE; + break; + case 't': + if (strcmp("ype", s + 4) == 0) + return PIDX_PROV_PARAM_SELF_TEST_TYPE; + } + break; + case 'a': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case 'e': + switch(s[5]) { + default: + break; + case '\0': + return PIDX_RAND_PARAM_STATE; + } + break; + case 'u': + if (strcmp("s", s + 5) == 0) + return PIDX_PROV_PARAM_STATUS; + } + } + break; + case 'r': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case 'a': + if (strcmp("m_mac", s + 5) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_STREAM_MAC; + break; + case 'n': + if (strcmp("gth", s + 5) == 0) + return PIDX_RAND_PARAM_STRENGTH; + } + } + } + break; + case 'u': + switch(s[2]) { + default: + break; + case 'b': + if (strcmp("ject", s + 3) == 0) + return PIDX_STORE_PARAM_SUBJECT; + break; + case 'p': + switch(s[3]) { + default: + break; + case 'p': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'p': + switch(s[6]) { + default: + break; + case 'r': + if (strcmp("ivinfo", s + 7) == 0) + return PIDX_KDF_PARAM_X942_SUPP_PRIVINFO; + break; + case 'u': + if (strcmp("binfo", s + 7) == 0) + return PIDX_KDF_PARAM_X942_SUPP_PUBINFO; + } + } + } + } + } + } + break; + case 't': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'g': + switch(s[3]) { + default: + break; + case 'l': + if (strcmp("en", s + 4) == 0) + return PIDX_CIPHER_PARAM_AEAD_TAGLEN; + break; + case '\0': + return PIDX_CIPHER_PARAM_AEAD_TAG; + } + } + break; + case 'd': + if (strcmp("es-encrypt-disabled", s + 2) == 0) + return PIDX_PROV_PARAM_TDES_ENCRYPT_DISABLED; + break; + case 'e': + switch(s[2]) { + default: + break; + case 's': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case '-': + if (strcmp("entropy", s + 5) == 0) + return PIDX_SIGNATURE_PARAM_TEST_ENTROPY; + break; + case '_': + switch(s[5]) { + default: + break; + case 'e': + if (strcmp("ntropy", s + 6) == 0) + return PIDX_RAND_PARAM_TEST_ENTROPY; + break; + case 'n': + if (strcmp("once", s + 6) == 0) + return PIDX_RAND_PARAM_TEST_NONCE; + } + } + } + } + break; + case 'h': + if (strcmp("reads", s + 2) == 0) + return PIDX_KDF_PARAM_THREADS; + break; + case 'l': + switch(s[2]) { + default: + break; + case 's': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'c': + if (strcmp("lient-version", s + 5) == 0) + return PIDX_ASYM_CIPHER_PARAM_TLS_CLIENT_VERSION; + break; + case 'd': + if (strcmp("ata-size", s + 5) == 0) + return PIDX_MAC_PARAM_TLS_DATA_SIZE; + break; + case 'g': + switch(s[5]) { + default: + break; + case 'r': + switch(s[6]) { + default: + break; + case 'o': + switch(s[7]) { + default: + break; + case 'u': + switch(s[8]) { + default: + break; + case 'p': + switch(s[9]) { + default: + break; + case '-': + switch(s[10]) { + default: + break; + case 'a': + if (strcmp("lg", s + 11) == 0) + return PIDX_CAPABILITY_TLS_GROUP_ALG; + break; + case 'i': + switch(s[11]) { + default: + break; + case 'd': + switch(s[12]) { + default: + break; + case '\0': + return PIDX_CAPABILITY_TLS_GROUP_ID; + } + break; + case 's': + if (strcmp("-kem", s + 12) == 0) + return PIDX_CAPABILITY_TLS_GROUP_IS_KEM; + } + break; + case 'n': + switch(s[11]) { + default: + break; + case 'a': + switch(s[12]) { + default: + break; + case 'm': + switch(s[13]) { + default: + break; + case 'e': + switch(s[14]) { + default: + break; + case '-': + if (strcmp("internal", s + 15) == 0) + return PIDX_CAPABILITY_TLS_GROUP_NAME_INTERNAL; + break; + case '\0': + return PIDX_CAPABILITY_TLS_GROUP_NAME; + } + } + } + } + break; + case 's': + if (strcmp("ec-bits", s + 11) == 0) + return PIDX_CAPABILITY_TLS_GROUP_SECURITY_BITS; + } + } + } + } + } + } + break; + case 'm': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case 'c': + switch(s[7]) { + default: + break; + case '-': + if (strcmp("size", s + 8) == 0) + return PIDX_CIPHER_PARAM_TLS_MAC_SIZE; + break; + case '\0': + return PIDX_CIPHER_PARAM_TLS_MAC; + } + break; + case 'x': + switch(s[7]) { + default: + break; + case '-': + switch(s[8]) { + default: + break; + case 'd': + if (strcmp("tls", s + 9) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_MAX_DTLS; + break; + case 't': + if (strcmp("ls", s + 9) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_MAX_TLS; + } + } + } + break; + case 'i': + switch(s[6]) { + default: + break; + case 'n': + switch(s[7]) { + default: + break; + case '-': + switch(s[8]) { + default: + break; + case 'd': + if (strcmp("tls", s + 9) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_MIN_DTLS; + break; + case 't': + if (strcmp("ls", s + 9) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_MIN_TLS; + } + } + } + break; + case 'u': + if (strcmp("lti", s + 6) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK; + } + break; + case 'n': + if (strcmp("egotiated-version", s + 5) == 0) + return PIDX_ASYM_CIPHER_PARAM_TLS_NEGOTIATED_VERSION; + break; + case 's': + switch(s[5]) { + default: + break; + case 'i': + switch(s[6]) { + default: + break; + case 'g': + switch(s[7]) { + default: + break; + case 'a': + switch(s[8]) { + default: + break; + case 'l': + switch(s[9]) { + default: + break; + case 'g': + switch(s[10]) { + default: + break; + case '-': + switch(s[11]) { + default: + break; + case 'c': + if (strcmp("ode-point", s + 12) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_CODE_POINT; + break; + case 'h': + switch(s[12]) { + default: + break; + case 'a': + switch(s[13]) { + default: + break; + case 's': + switch(s[14]) { + default: + break; + case 'h': + switch(s[15]) { + default: + break; + case '-': + switch(s[16]) { + default: + break; + case 'n': + if (strcmp("ame", s + 17) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_HASH_NAME; + break; + case 'o': + if (strcmp("id", s + 17) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_HASH_OID; + } + } + } + } + } + break; + case 'i': + if (strcmp("ana-name", s + 12) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_IANA_NAME; + break; + case 'k': + switch(s[12]) { + default: + break; + case 'e': + switch(s[13]) { + default: + break; + case 'y': + switch(s[14]) { + default: + break; + case 't': + switch(s[15]) { + default: + break; + case 'y': + switch(s[16]) { + default: + break; + case 'p': + switch(s[17]) { + default: + break; + case 'e': + switch(s[18]) { + default: + break; + case '-': + if (strcmp("oid", s + 19) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_KEYTYPE_OID; + break; + case '\0': + return PIDX_CAPABILITY_TLS_SIGALG_KEYTYPE; + } + } + } + } + } + } + } + break; + case 'n': + if (strcmp("ame", s + 12) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_NAME; + break; + case 'o': + if (strcmp("id", s + 12) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_OID; + break; + case 's': + switch(s[12]) { + default: + break; + case 'e': + if (strcmp("c-bits", s + 13) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_SECURITY_BITS; + break; + case 'i': + switch(s[13]) { + default: + break; + case 'g': + switch(s[14]) { + default: + break; + case '-': + switch(s[15]) { + default: + break; + case 'n': + if (strcmp("ame", s + 16) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_SIG_NAME; + break; + case 'o': + if (strcmp("id", s + 16) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_SIG_OID; + } + } + } + } + } + } + } + } + } + } + } + break; + case 'v': + if (strcmp("ersion", s + 5) == 0) + return PIDX_CIPHER_PARAM_TLS_VERSION; + } + break; + case '1': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'p': + switch(s[6]) { + default: + break; + case 'r': + switch(s[7]) { + default: + break; + case 'f': + switch(s[8]) { + default: + break; + case '-': + switch(s[9]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 10) == 0) + return PIDX_PROV_PARAM_TLS1_PRF_DIGEST_CHECK; + break; + case 'e': + if (strcmp("ms-check", s + 10) == 0) + return PIDX_PROV_PARAM_TLS1_PRF_EMS_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 10) == 0) + return PIDX_PROV_PARAM_TLS1_PRF_KEY_CHECK; + } + } + } + } + } + break; + case '3': + switch(s[5]) { + default: + break; + case '-': + switch(s[6]) { + default: + break; + case 'k': + switch(s[7]) { + default: + break; + case 'd': + switch(s[8]) { + default: + break; + case 'f': + switch(s[9]) { + default: + break; + case '-': + switch(s[10]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 11) == 0) + return PIDX_PROV_PARAM_TLS13_KDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 11) == 0) + return PIDX_PROV_PARAM_TLS13_KDF_KEY_CHECK; + } + } + } + } + } + } + break; + case 'm': + switch(s[5]) { + default: + break; + case 'u': + switch(s[6]) { + default: + break; + case 'l': + switch(s[7]) { + default: + break; + case 't': + switch(s[8]) { + default: + break; + case 'i': + switch(s[9]) { + default: + break; + case '_': + switch(s[10]) { + default: + break; + case 'a': + switch(s[11]) { + default: + break; + case 'a': + switch(s[12]) { + default: + break; + case 'd': + switch(s[13]) { + default: + break; + case 'p': + if (strcmp("acklen", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD_PACKLEN; + break; + case '\0': + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD; + } + } + } + break; + case 'e': + switch(s[11]) { + default: + break; + case 'n': + switch(s[12]) { + default: + break; + case 'c': + switch(s[13]) { + default: + break; + case 'i': + if (strcmp("n", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_IN; + break; + case 'l': + if (strcmp("en", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_LEN; + break; + case '\0': + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC; + } + } + } + break; + case 'i': + if (strcmp("nterleave", s + 11) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_INTERLEAVE; + break; + case 'm': + switch(s[11]) { + default: + break; + case 'a': + switch(s[12]) { + default: + break; + case 'x': + switch(s[13]) { + default: + break; + case 'b': + if (strcmp("ufsz", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_BUFSIZE; + break; + case 's': + if (strcmp("ndfrag", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_SEND_FRAGMENT; + } + } + } + } + } + } + } + } + } + } + break; + case 'a': + switch(s[4]) { + default: + break; + case 'a': + switch(s[5]) { + default: + break; + case 'd': + switch(s[6]) { + default: + break; + case 'p': + if (strcmp("ad", s + 7) == 0) + return PIDX_CIPHER_PARAM_AEAD_TLS1_AAD_PAD; + break; + case '\0': + return PIDX_CIPHER_PARAM_AEAD_TLS1_AAD; + } + } + } + break; + case 'i': + switch(s[4]) { + default: + break; + case 'v': + switch(s[5]) { + default: + break; + case 'f': + if (strcmp("ixed", s + 6) == 0) + return PIDX_CIPHER_PARAM_AEAD_TLS1_IV_FIXED; + break; + case 'g': + if (strcmp("en", s + 6) == 0) + return PIDX_CIPHER_PARAM_AEAD_TLS1_GET_IV_GEN; + break; + case 'i': + if (strcmp("nv", s + 6) == 0) + return PIDX_CIPHER_PARAM_AEAD_TLS1_SET_IV_INV; + } + } + break; + case 't': + if (strcmp("ree", s + 4) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_TLSTREE; + } + } + break; + case 'p': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_TP_BASIS; + } + break; + case 'y': + if (strcmp("pe", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_TYPE; + } + break; + case 'u': + switch(s[1]) { + default: + break; + case 'k': + if (strcmp("m", s + 2) == 0) + return PIDX_KDF_PARAM_UKM; + break; + case 'p': + if (strcmp("dated-iv", s + 2) == 0) + return PIDX_CIPHER_PARAM_UPDATED_IV; + break; + case 's': + switch(s[2]) { + default: + break; + case 'e': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'b': + if (strcmp("its", s + 5) == 0) + return PIDX_CIPHER_PARAM_USE_BITS; + break; + case 'c': + if (strcmp("ofactor-flag", s + 5) == 0) + return PIDX_PKEY_PARAM_USE_COFACTOR_FLAG; + break; + case 'k': + if (strcmp("eybits", s + 5) == 0) + return PIDX_KDF_PARAM_X942_USE_KEYBITS; + break; + case 'l': + switch(s[5]) { + default: + break; + case '\0': + return PIDX_KDF_PARAM_KBKDF_USE_L; + } + break; + case 's': + if (strcmp("eparator", s + 5) == 0) + return PIDX_KDF_PARAM_KBKDF_USE_SEPARATOR; + } + break; + case '_': + switch(s[4]) { + default: + break; + case 'd': + if (strcmp("erivation_function", s + 5) == 0) + return PIDX_DRBG_PARAM_USE_DF; + break; + case 'e': + if (strcmp("tm", s + 5) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_USE_ETM; + } + } + } + } + break; + case 'v': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'l': + switch(s[3]) { + default: + break; + case 'i': + switch(s[4]) { + default: + break; + case 'd': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case 'e': + switch(s[8]) { + default: + break; + case '-': + switch(s[9]) { + default: + break; + case 'g': + switch(s[10]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_VALIDATE_G; + } + break; + case 'l': + if (strcmp("egacy", s + 10) == 0) + return PIDX_PKEY_PARAM_FFC_VALIDATE_LEGACY; + break; + case 'p': + if (strcmp("q", s + 10) == 0) + return PIDX_PKEY_PARAM_FFC_VALIDATE_PQ; + } + } + } + } + } + } + } + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'r': + switch(s[3]) { + default: + break; + case 'i': + if (strcmp("fy-message", s + 4) == 0) + return PIDX_SIGNATURE_PARAM_FIPS_VERIFY_MESSAGE; + break; + case 's': + if (strcmp("ion", s + 4) == 0) + return PIDX_PROV_PARAM_VERSION; + } + } + } + break; + case 'x': + switch(s[1]) { + default: + break; + case '9': + switch(s[2]) { + default: + break; + case '4': + if (strcmp("2kdf-key-check", s + 3) == 0) + return PIDX_PROV_PARAM_X942KDF_KEY_CHECK; + break; + case '6': + switch(s[3]) { + default: + break; + case '3': + switch(s[4]) { + default: + break; + case 'k': + switch(s[5]) { + default: + break; + case 'd': + switch(s[6]) { + default: + break; + case 'f': + switch(s[7]) { + default: + break; + case '-': + switch(s[8]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 9) == 0) + return PIDX_PROV_PARAM_X963KDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 9) == 0) + return PIDX_PROV_PARAM_X963KDF_KEY_CHECK; + } + } + } + } + } + } + } + break; + case 'c': + if (strcmp("ghash", s + 2) == 0) + return PIDX_KDF_PARAM_SSHKDF_XCGHASH; + break; + case 'o': + switch(s[2]) { + default: + break; + case 'f': + switch(s[3]) { + default: + break; + case 'l': + if (strcmp("en", s + 4) == 0) + return PIDX_DIGEST_PARAM_XOFLEN; + break; + case '\0': + return PIDX_MAC_PARAM_XOF; + } + } + break; + case 'p': + switch(s[2]) { + default: + break; + case '1': + switch(s[3]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XP1; + } + break; + case '2': + switch(s[3]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XP2; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XP; + } + break; + case 'q': + switch(s[2]) { + default: + break; + case '1': + switch(s[3]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XQ1; + } + break; + case '2': + switch(s[3]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XQ2; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XQ; + } + break; + case 't': + if (strcmp("s_standard", s + 2) == 0) + return PIDX_CIPHER_PARAM_XTS_STANDARD; + } + } + return -1; +} + +/* End of TRIE */ diff --git a/deps/openssl/config/archs/linux-armv4/no-asm/include/internal/param_names.h b/deps/openssl/config/archs/linux-armv4/no-asm/include/internal/param_names.h new file mode 100644 index 00000000000000..0a0404a57e82b9 --- /dev/null +++ b/deps/openssl/config/archs/linux-armv4/no-asm/include/internal/param_names.h @@ -0,0 +1,469 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from include/internal/param_names.h.in + * + * Copyright 2023 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + +int ossl_param_find_pidx(const char *s); + +/* Parameter name definitions - generated by util/perl/OpenSSL/paramnames.pm */ +#define NUM_PIDX 346 + +#define PIDX_ALG_PARAM_ALGORITHM_ID 0 +#define PIDX_ALG_PARAM_ALGORITHM_ID_PARAMS 1 +#define PIDX_ALG_PARAM_CIPHER 2 +#define PIDX_ALG_PARAM_DIGEST 3 +#define PIDX_ALG_PARAM_ENGINE 4 +#define PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR 5 +#define PIDX_ALG_PARAM_MAC 6 +#define PIDX_ALG_PARAM_PROPERTIES 7 +#define PIDX_ASYM_CIPHER_PARAM_DIGEST PIDX_PKEY_PARAM_DIGEST +#define PIDX_ASYM_CIPHER_PARAM_ENGINE PIDX_PKEY_PARAM_ENGINE +#define PIDX_ASYM_CIPHER_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_ASYM_CIPHER_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_ASYM_CIPHER_PARAM_FIPS_RSA_PKCS15_PAD_DISABLED PIDX_PROV_PARAM_RSA_PKCS15_PAD_DISABLED +#define PIDX_ASYM_CIPHER_PARAM_IMPLICIT_REJECTION 8 +#define PIDX_ASYM_CIPHER_PARAM_MGF1_DIGEST PIDX_PKEY_PARAM_MGF1_DIGEST +#define PIDX_ASYM_CIPHER_PARAM_MGF1_DIGEST_PROPS PIDX_PKEY_PARAM_MGF1_PROPERTIES +#define PIDX_ASYM_CIPHER_PARAM_OAEP_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_ASYM_CIPHER_PARAM_OAEP_DIGEST_PROPS 9 +#define PIDX_ASYM_CIPHER_PARAM_OAEP_LABEL 10 +#define PIDX_ASYM_CIPHER_PARAM_PAD_MODE PIDX_PKEY_PARAM_PAD_MODE +#define PIDX_ASYM_CIPHER_PARAM_PROPERTIES PIDX_PKEY_PARAM_PROPERTIES +#define PIDX_ASYM_CIPHER_PARAM_TLS_CLIENT_VERSION 11 +#define PIDX_ASYM_CIPHER_PARAM_TLS_NEGOTIATED_VERSION 12 +#define PIDX_CAPABILITY_TLS_GROUP_ALG 13 +#define PIDX_CAPABILITY_TLS_GROUP_ID 14 +#define PIDX_CAPABILITY_TLS_GROUP_IS_KEM 15 +#define PIDX_CAPABILITY_TLS_GROUP_MAX_DTLS 16 +#define PIDX_CAPABILITY_TLS_GROUP_MAX_TLS 17 +#define PIDX_CAPABILITY_TLS_GROUP_MIN_DTLS 18 +#define PIDX_CAPABILITY_TLS_GROUP_MIN_TLS 19 +#define PIDX_CAPABILITY_TLS_GROUP_NAME 20 +#define PIDX_CAPABILITY_TLS_GROUP_NAME_INTERNAL 21 +#define PIDX_CAPABILITY_TLS_GROUP_SECURITY_BITS 22 +#define PIDX_CAPABILITY_TLS_SIGALG_CODE_POINT 23 +#define PIDX_CAPABILITY_TLS_SIGALG_HASH_NAME 24 +#define PIDX_CAPABILITY_TLS_SIGALG_HASH_OID 25 +#define PIDX_CAPABILITY_TLS_SIGALG_IANA_NAME 26 +#define PIDX_CAPABILITY_TLS_SIGALG_KEYTYPE 27 +#define PIDX_CAPABILITY_TLS_SIGALG_KEYTYPE_OID 28 +#define PIDX_CAPABILITY_TLS_SIGALG_MAX_DTLS 16 +#define PIDX_CAPABILITY_TLS_SIGALG_MAX_TLS 17 +#define PIDX_CAPABILITY_TLS_SIGALG_MIN_DTLS 18 +#define PIDX_CAPABILITY_TLS_SIGALG_MIN_TLS 19 +#define PIDX_CAPABILITY_TLS_SIGALG_NAME 29 +#define PIDX_CAPABILITY_TLS_SIGALG_OID 30 +#define PIDX_CAPABILITY_TLS_SIGALG_SECURITY_BITS 31 +#define PIDX_CAPABILITY_TLS_SIGALG_SIG_NAME 32 +#define PIDX_CAPABILITY_TLS_SIGALG_SIG_OID 33 +#define PIDX_CIPHER_PARAM_AEAD 34 +#define PIDX_CIPHER_PARAM_AEAD_IVLEN PIDX_CIPHER_PARAM_IVLEN +#define PIDX_CIPHER_PARAM_AEAD_IV_GENERATED 35 +#define PIDX_CIPHER_PARAM_AEAD_MAC_KEY 36 +#define PIDX_CIPHER_PARAM_AEAD_TAG 37 +#define PIDX_CIPHER_PARAM_AEAD_TAGLEN 38 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_AAD 39 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_AAD_PAD 40 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_GET_IV_GEN 41 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_IV_FIXED 42 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_SET_IV_INV 43 +#define PIDX_CIPHER_PARAM_ALGORITHM_ID PIDX_ALG_PARAM_ALGORITHM_ID +#define PIDX_CIPHER_PARAM_ALGORITHM_ID_PARAMS PIDX_ALG_PARAM_ALGORITHM_ID_PARAMS +#define PIDX_CIPHER_PARAM_ALGORITHM_ID_PARAMS_OLD 44 +#define PIDX_CIPHER_PARAM_BLOCK_SIZE 45 +#define PIDX_CIPHER_PARAM_CTS 46 +#define PIDX_CIPHER_PARAM_CTS_MODE 47 +#define PIDX_CIPHER_PARAM_CUSTOM_IV 48 +#define PIDX_CIPHER_PARAM_DECRYPT_ONLY 49 +#define PIDX_CIPHER_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_CIPHER_PARAM_FIPS_ENCRYPT_CHECK 50 +#define PIDX_CIPHER_PARAM_HAS_RAND_KEY 51 +#define PIDX_CIPHER_PARAM_IV 52 +#define PIDX_CIPHER_PARAM_IVLEN 53 +#define PIDX_CIPHER_PARAM_KEYLEN 54 +#define PIDX_CIPHER_PARAM_MODE 55 +#define PIDX_CIPHER_PARAM_NUM 56 +#define PIDX_CIPHER_PARAM_PADDING 57 +#define PIDX_CIPHER_PARAM_PIPELINE_AEAD_TAG 58 +#define PIDX_CIPHER_PARAM_RANDOM_KEY 59 +#define PIDX_CIPHER_PARAM_RC2_KEYBITS 60 +#define PIDX_CIPHER_PARAM_ROUNDS 61 +#define PIDX_CIPHER_PARAM_SPEED 62 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK 63 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD 64 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD_PACKLEN 65 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC 66 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_IN 67 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_LEN 68 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_INTERLEAVE 69 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_BUFSIZE 70 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_SEND_FRAGMENT 71 +#define PIDX_CIPHER_PARAM_TLS_MAC 72 +#define PIDX_CIPHER_PARAM_TLS_MAC_SIZE 73 +#define PIDX_CIPHER_PARAM_TLS_VERSION 74 +#define PIDX_CIPHER_PARAM_UPDATED_IV 75 +#define PIDX_CIPHER_PARAM_USE_BITS 76 +#define PIDX_CIPHER_PARAM_XTS_STANDARD 77 +#define PIDX_DECODER_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_DIGEST_PARAM_ALGID_ABSENT 78 +#define PIDX_DIGEST_PARAM_BLOCK_SIZE 45 +#define PIDX_DIGEST_PARAM_MICALG 79 +#define PIDX_DIGEST_PARAM_PAD_TYPE 80 +#define PIDX_DIGEST_PARAM_SIZE 81 +#define PIDX_DIGEST_PARAM_SSL3_MS 82 +#define PIDX_DIGEST_PARAM_XOF 83 +#define PIDX_DIGEST_PARAM_XOFLEN 84 +#define PIDX_DRBG_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_DRBG_PARAM_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_DRBG_PARAM_ENTROPY_REQUIRED 85 +#define PIDX_DRBG_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_DRBG_PARAM_FIPS_DIGEST_CHECK PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK +#define PIDX_DRBG_PARAM_MAC PIDX_ALG_PARAM_MAC +#define PIDX_DRBG_PARAM_MAX_ADINLEN 86 +#define PIDX_DRBG_PARAM_MAX_ENTROPYLEN 87 +#define PIDX_DRBG_PARAM_MAX_LENGTH 88 +#define PIDX_DRBG_PARAM_MAX_NONCELEN 89 +#define PIDX_DRBG_PARAM_MAX_PERSLEN 90 +#define PIDX_DRBG_PARAM_MIN_ENTROPYLEN 91 +#define PIDX_DRBG_PARAM_MIN_LENGTH 92 +#define PIDX_DRBG_PARAM_MIN_NONCELEN 93 +#define PIDX_DRBG_PARAM_PREDICTION_RESISTANCE 94 +#define PIDX_DRBG_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_DRBG_PARAM_RANDOM_DATA 95 +#define PIDX_DRBG_PARAM_RESEED_COUNTER 96 +#define PIDX_DRBG_PARAM_RESEED_REQUESTS 97 +#define PIDX_DRBG_PARAM_RESEED_TIME 98 +#define PIDX_DRBG_PARAM_RESEED_TIME_INTERVAL 99 +#define PIDX_DRBG_PARAM_SIZE 81 +#define PIDX_DRBG_PARAM_USE_DF 100 +#define PIDX_ENCODER_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_ENCODER_PARAM_ENCRYPT_LEVEL 101 +#define PIDX_ENCODER_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_ENCODER_PARAM_SAVE_PARAMETERS 102 +#define PIDX_EXCHANGE_PARAM_EC_ECDH_COFACTOR_MODE 103 +#define PIDX_EXCHANGE_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_EXCHANGE_PARAM_FIPS_DIGEST_CHECK PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK +#define PIDX_EXCHANGE_PARAM_FIPS_ECDH_COFACTOR_CHECK PIDX_PROV_PARAM_ECDH_COFACTOR_CHECK +#define PIDX_EXCHANGE_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_EXCHANGE_PARAM_KDF_DIGEST 104 +#define PIDX_EXCHANGE_PARAM_KDF_DIGEST_PROPS 105 +#define PIDX_EXCHANGE_PARAM_KDF_OUTLEN 106 +#define PIDX_EXCHANGE_PARAM_KDF_TYPE 107 +#define PIDX_EXCHANGE_PARAM_KDF_UKM 108 +#define PIDX_EXCHANGE_PARAM_PAD 109 +#define PIDX_GEN_PARAM_ITERATION 110 +#define PIDX_GEN_PARAM_POTENTIAL 111 +#define PIDX_KDF_PARAM_ARGON2_AD 112 +#define PIDX_KDF_PARAM_ARGON2_LANES 113 +#define PIDX_KDF_PARAM_ARGON2_MEMCOST 114 +#define PIDX_KDF_PARAM_ARGON2_VERSION 115 +#define PIDX_KDF_PARAM_CEK_ALG 116 +#define PIDX_KDF_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_KDF_PARAM_CONSTANT 117 +#define PIDX_KDF_PARAM_DATA 118 +#define PIDX_KDF_PARAM_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_KDF_PARAM_EARLY_CLEAN 119 +#define PIDX_KDF_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_KDF_PARAM_FIPS_DIGEST_CHECK PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK +#define PIDX_KDF_PARAM_FIPS_EMS_CHECK 120 +#define PIDX_KDF_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_KDF_PARAM_HMACDRBG_ENTROPY 121 +#define PIDX_KDF_PARAM_HMACDRBG_NONCE 122 +#define PIDX_KDF_PARAM_INFO 123 +#define PIDX_KDF_PARAM_ITER 124 +#define PIDX_KDF_PARAM_KBKDF_R 125 +#define PIDX_KDF_PARAM_KBKDF_USE_L 126 +#define PIDX_KDF_PARAM_KBKDF_USE_SEPARATOR 127 +#define PIDX_KDF_PARAM_KEY 128 +#define PIDX_KDF_PARAM_LABEL 129 +#define PIDX_KDF_PARAM_MAC PIDX_ALG_PARAM_MAC +#define PIDX_KDF_PARAM_MAC_SIZE 130 +#define PIDX_KDF_PARAM_MODE 55 +#define PIDX_KDF_PARAM_PASSWORD 131 +#define PIDX_KDF_PARAM_PKCS12_ID 132 +#define PIDX_KDF_PARAM_PKCS5 133 +#define PIDX_KDF_PARAM_PREFIX 134 +#define PIDX_KDF_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_KDF_PARAM_SALT 135 +#define PIDX_KDF_PARAM_SCRYPT_MAXMEM 136 +#define PIDX_KDF_PARAM_SCRYPT_N 137 +#define PIDX_KDF_PARAM_SCRYPT_P 138 +#define PIDX_KDF_PARAM_SCRYPT_R 125 +#define PIDX_KDF_PARAM_SECRET 139 +#define PIDX_KDF_PARAM_SEED 140 +#define PIDX_KDF_PARAM_SIZE 81 +#define PIDX_KDF_PARAM_SSHKDF_SESSION_ID 141 +#define PIDX_KDF_PARAM_SSHKDF_TYPE 142 +#define PIDX_KDF_PARAM_SSHKDF_XCGHASH 143 +#define PIDX_KDF_PARAM_THREADS 144 +#define PIDX_KDF_PARAM_UKM 145 +#define PIDX_KDF_PARAM_X942_ACVPINFO 146 +#define PIDX_KDF_PARAM_X942_PARTYUINFO 147 +#define PIDX_KDF_PARAM_X942_PARTYVINFO 148 +#define PIDX_KDF_PARAM_X942_SUPP_PRIVINFO 149 +#define PIDX_KDF_PARAM_X942_SUPP_PUBINFO 150 +#define PIDX_KDF_PARAM_X942_USE_KEYBITS 151 +#define PIDX_KEM_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_KEM_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_KEM_PARAM_IKME 152 +#define PIDX_KEM_PARAM_OPERATION 153 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_BLOCK_PADDING 154 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_HS_PADDING 155 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_MAX_EARLY_DATA 156 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_MAX_FRAG_LEN 157 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_MODE 55 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_OPTIONS 158 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_READ_AHEAD 159 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_STREAM_MAC 160 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_TLSTREE 161 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_USE_ETM 162 +#define PIDX_LIBSSL_RECORD_LAYER_READ_BUFFER_LEN 163 +#define PIDX_MAC_PARAM_BLOCK_SIZE 164 +#define PIDX_MAC_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_MAC_PARAM_CUSTOM 165 +#define PIDX_MAC_PARAM_C_ROUNDS 166 +#define PIDX_MAC_PARAM_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_MAC_PARAM_DIGEST_NOINIT 167 +#define PIDX_MAC_PARAM_DIGEST_ONESHOT 168 +#define PIDX_MAC_PARAM_D_ROUNDS 169 +#define PIDX_MAC_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_MAC_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_MAC_PARAM_FIPS_NO_SHORT_MAC PIDX_PROV_PARAM_NO_SHORT_MAC +#define PIDX_MAC_PARAM_IV 52 +#define PIDX_MAC_PARAM_KEY 128 +#define PIDX_MAC_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_MAC_PARAM_SALT 135 +#define PIDX_MAC_PARAM_SIZE 81 +#define PIDX_MAC_PARAM_TLS_DATA_SIZE 170 +#define PIDX_MAC_PARAM_XOF 83 +#define PIDX_OBJECT_PARAM_DATA 118 +#define PIDX_OBJECT_PARAM_DATA_STRUCTURE 171 +#define PIDX_OBJECT_PARAM_DATA_TYPE 172 +#define PIDX_OBJECT_PARAM_DESC 173 +#define PIDX_OBJECT_PARAM_INPUT_TYPE 174 +#define PIDX_OBJECT_PARAM_REFERENCE 175 +#define PIDX_OBJECT_PARAM_TYPE 142 +#define PIDX_PASSPHRASE_PARAM_INFO 123 +#define PIDX_PKEY_PARAM_ALGORITHM_ID PIDX_ALG_PARAM_ALGORITHM_ID +#define PIDX_PKEY_PARAM_ALGORITHM_ID_PARAMS PIDX_ALG_PARAM_ALGORITHM_ID_PARAMS +#define PIDX_PKEY_PARAM_BITS 176 +#define PIDX_PKEY_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_PKEY_PARAM_DEFAULT_DIGEST 177 +#define PIDX_PKEY_PARAM_DHKEM_IKM 178 +#define PIDX_PKEY_PARAM_DH_GENERATOR 179 +#define PIDX_PKEY_PARAM_DH_PRIV_LEN 180 +#define PIDX_PKEY_PARAM_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_PKEY_PARAM_DIGEST_SIZE 181 +#define PIDX_PKEY_PARAM_DIST_ID 182 +#define PIDX_PKEY_PARAM_EC_A 183 +#define PIDX_PKEY_PARAM_EC_B 184 +#define PIDX_PKEY_PARAM_EC_CHAR2_M 185 +#define PIDX_PKEY_PARAM_EC_CHAR2_PP_K1 186 +#define PIDX_PKEY_PARAM_EC_CHAR2_PP_K2 187 +#define PIDX_PKEY_PARAM_EC_CHAR2_PP_K3 188 +#define PIDX_PKEY_PARAM_EC_CHAR2_TP_BASIS 189 +#define PIDX_PKEY_PARAM_EC_CHAR2_TYPE 190 +#define PIDX_PKEY_PARAM_EC_COFACTOR 191 +#define PIDX_PKEY_PARAM_EC_DECODED_FROM_EXPLICIT_PARAMS 192 +#define PIDX_PKEY_PARAM_EC_ENCODING 193 +#define PIDX_PKEY_PARAM_EC_FIELD_TYPE 194 +#define PIDX_PKEY_PARAM_EC_GENERATOR 195 +#define PIDX_PKEY_PARAM_EC_GROUP_CHECK_TYPE 196 +#define PIDX_PKEY_PARAM_EC_INCLUDE_PUBLIC 197 +#define PIDX_PKEY_PARAM_EC_ORDER 198 +#define PIDX_PKEY_PARAM_EC_P 138 +#define PIDX_PKEY_PARAM_EC_POINT_CONVERSION_FORMAT 199 +#define PIDX_PKEY_PARAM_EC_PUB_X 200 +#define PIDX_PKEY_PARAM_EC_PUB_Y 201 +#define PIDX_PKEY_PARAM_EC_SEED 140 +#define PIDX_PKEY_PARAM_ENCODED_PUBLIC_KEY 202 +#define PIDX_PKEY_PARAM_ENGINE PIDX_ALG_PARAM_ENGINE +#define PIDX_PKEY_PARAM_FFC_COFACTOR 203 +#define PIDX_PKEY_PARAM_FFC_DIGEST PIDX_PKEY_PARAM_DIGEST +#define PIDX_PKEY_PARAM_FFC_DIGEST_PROPS PIDX_PKEY_PARAM_PROPERTIES +#define PIDX_PKEY_PARAM_FFC_G 204 +#define PIDX_PKEY_PARAM_FFC_GINDEX 205 +#define PIDX_PKEY_PARAM_FFC_H 206 +#define PIDX_PKEY_PARAM_FFC_P 138 +#define PIDX_PKEY_PARAM_FFC_PBITS 207 +#define PIDX_PKEY_PARAM_FFC_PCOUNTER 208 +#define PIDX_PKEY_PARAM_FFC_Q 209 +#define PIDX_PKEY_PARAM_FFC_QBITS 210 +#define PIDX_PKEY_PARAM_FFC_SEED 140 +#define PIDX_PKEY_PARAM_FFC_TYPE 142 +#define PIDX_PKEY_PARAM_FFC_VALIDATE_G 211 +#define PIDX_PKEY_PARAM_FFC_VALIDATE_LEGACY 212 +#define PIDX_PKEY_PARAM_FFC_VALIDATE_PQ 213 +#define PIDX_PKEY_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK 214 +#define PIDX_PKEY_PARAM_FIPS_KEY_CHECK 215 +#define PIDX_PKEY_PARAM_FIPS_SIGN_CHECK 216 +#define PIDX_PKEY_PARAM_GROUP_NAME 217 +#define PIDX_PKEY_PARAM_IMPLICIT_REJECTION 8 +#define PIDX_PKEY_PARAM_MANDATORY_DIGEST 218 +#define PIDX_PKEY_PARAM_MASKGENFUNC 219 +#define PIDX_PKEY_PARAM_MAX_SIZE 220 +#define PIDX_PKEY_PARAM_MGF1_DIGEST 221 +#define PIDX_PKEY_PARAM_MGF1_PROPERTIES 222 +#define PIDX_PKEY_PARAM_ML_DSA_INPUT_FORMATS 223 +#define PIDX_PKEY_PARAM_ML_DSA_OUTPUT_FORMATS 224 +#define PIDX_PKEY_PARAM_ML_DSA_PREFER_SEED 225 +#define PIDX_PKEY_PARAM_ML_DSA_RETAIN_SEED 226 +#define PIDX_PKEY_PARAM_ML_DSA_SEED 140 +#define PIDX_PKEY_PARAM_ML_KEM_IMPORT_PCT_TYPE 227 +#define PIDX_PKEY_PARAM_ML_KEM_INPUT_FORMATS 228 +#define PIDX_PKEY_PARAM_ML_KEM_OUTPUT_FORMATS 229 +#define PIDX_PKEY_PARAM_ML_KEM_PREFER_SEED 230 +#define PIDX_PKEY_PARAM_ML_KEM_RETAIN_SEED 231 +#define PIDX_PKEY_PARAM_ML_KEM_SEED 140 +#define PIDX_PKEY_PARAM_PAD_MODE 232 +#define PIDX_PKEY_PARAM_PRIV_KEY 233 +#define PIDX_PKEY_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_PKEY_PARAM_PUB_KEY 234 +#define PIDX_PKEY_PARAM_RSA_BITS PIDX_PKEY_PARAM_BITS +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT 235 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT1 236 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT2 237 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT3 238 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT4 239 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT5 240 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT6 241 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT7 242 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT8 243 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT9 244 +#define PIDX_PKEY_PARAM_RSA_D 245 +#define PIDX_PKEY_PARAM_RSA_DERIVE_FROM_PQ 246 +#define PIDX_PKEY_PARAM_RSA_DIGEST PIDX_PKEY_PARAM_DIGEST +#define PIDX_PKEY_PARAM_RSA_DIGEST_PROPS PIDX_PKEY_PARAM_PROPERTIES +#define PIDX_PKEY_PARAM_RSA_E 247 +#define PIDX_PKEY_PARAM_RSA_EXPONENT 248 +#define PIDX_PKEY_PARAM_RSA_EXPONENT1 249 +#define PIDX_PKEY_PARAM_RSA_EXPONENT10 250 +#define PIDX_PKEY_PARAM_RSA_EXPONENT2 251 +#define PIDX_PKEY_PARAM_RSA_EXPONENT3 252 +#define PIDX_PKEY_PARAM_RSA_EXPONENT4 253 +#define PIDX_PKEY_PARAM_RSA_EXPONENT5 254 +#define PIDX_PKEY_PARAM_RSA_EXPONENT6 255 +#define PIDX_PKEY_PARAM_RSA_EXPONENT7 256 +#define PIDX_PKEY_PARAM_RSA_EXPONENT8 257 +#define PIDX_PKEY_PARAM_RSA_EXPONENT9 258 +#define PIDX_PKEY_PARAM_RSA_FACTOR 259 +#define PIDX_PKEY_PARAM_RSA_FACTOR1 260 +#define PIDX_PKEY_PARAM_RSA_FACTOR10 261 +#define PIDX_PKEY_PARAM_RSA_FACTOR2 262 +#define PIDX_PKEY_PARAM_RSA_FACTOR3 263 +#define PIDX_PKEY_PARAM_RSA_FACTOR4 264 +#define PIDX_PKEY_PARAM_RSA_FACTOR5 265 +#define PIDX_PKEY_PARAM_RSA_FACTOR6 266 +#define PIDX_PKEY_PARAM_RSA_FACTOR7 267 +#define PIDX_PKEY_PARAM_RSA_FACTOR8 268 +#define PIDX_PKEY_PARAM_RSA_FACTOR9 269 +#define PIDX_PKEY_PARAM_RSA_MASKGENFUNC PIDX_PKEY_PARAM_MASKGENFUNC +#define PIDX_PKEY_PARAM_RSA_MGF1_DIGEST PIDX_PKEY_PARAM_MGF1_DIGEST +#define PIDX_PKEY_PARAM_RSA_N 137 +#define PIDX_PKEY_PARAM_RSA_PRIMES 270 +#define PIDX_PKEY_PARAM_RSA_PSS_SALTLEN 271 +#define PIDX_PKEY_PARAM_RSA_TEST_P1 272 +#define PIDX_PKEY_PARAM_RSA_TEST_P2 273 +#define PIDX_PKEY_PARAM_RSA_TEST_Q1 274 +#define PIDX_PKEY_PARAM_RSA_TEST_Q2 275 +#define PIDX_PKEY_PARAM_RSA_TEST_XP 276 +#define PIDX_PKEY_PARAM_RSA_TEST_XP1 277 +#define PIDX_PKEY_PARAM_RSA_TEST_XP2 278 +#define PIDX_PKEY_PARAM_RSA_TEST_XQ 279 +#define PIDX_PKEY_PARAM_RSA_TEST_XQ1 280 +#define PIDX_PKEY_PARAM_RSA_TEST_XQ2 281 +#define PIDX_PKEY_PARAM_SECURITY_BITS 282 +#define PIDX_PKEY_PARAM_SLH_DSA_SEED 140 +#define PIDX_PKEY_PARAM_USE_COFACTOR_ECDH PIDX_PKEY_PARAM_USE_COFACTOR_FLAG +#define PIDX_PKEY_PARAM_USE_COFACTOR_FLAG 283 +#define PIDX_PROV_PARAM_BUILDINFO 284 +#define PIDX_PROV_PARAM_CORE_MODULE_FILENAME 285 +#define PIDX_PROV_PARAM_CORE_PROV_NAME 286 +#define PIDX_PROV_PARAM_CORE_VERSION 287 +#define PIDX_PROV_PARAM_DRBG_TRUNC_DIGEST 288 +#define PIDX_PROV_PARAM_DSA_SIGN_DISABLED 289 +#define PIDX_PROV_PARAM_ECDH_COFACTOR_CHECK 290 +#define PIDX_PROV_PARAM_HKDF_DIGEST_CHECK 291 +#define PIDX_PROV_PARAM_HKDF_KEY_CHECK 292 +#define PIDX_PROV_PARAM_HMAC_KEY_CHECK 293 +#define PIDX_PROV_PARAM_KBKDF_KEY_CHECK 294 +#define PIDX_PROV_PARAM_KMAC_KEY_CHECK 295 +#define PIDX_PROV_PARAM_NAME 296 +#define PIDX_PROV_PARAM_NO_SHORT_MAC 297 +#define PIDX_PROV_PARAM_PBKDF2_LOWER_BOUND_CHECK 298 +#define PIDX_PROV_PARAM_RSA_PKCS15_PAD_DISABLED 299 +#define PIDX_PROV_PARAM_RSA_PSS_SALTLEN_CHECK 300 +#define PIDX_PROV_PARAM_RSA_SIGN_X931_PAD_DISABLED 301 +#define PIDX_PROV_PARAM_SECURITY_CHECKS 302 +#define PIDX_PROV_PARAM_SELF_TEST_DESC 303 +#define PIDX_PROV_PARAM_SELF_TEST_PHASE 304 +#define PIDX_PROV_PARAM_SELF_TEST_TYPE 305 +#define PIDX_PROV_PARAM_SIGNATURE_DIGEST_CHECK 306 +#define PIDX_PROV_PARAM_SSHKDF_DIGEST_CHECK 307 +#define PIDX_PROV_PARAM_SSHKDF_KEY_CHECK 308 +#define PIDX_PROV_PARAM_SSKDF_DIGEST_CHECK 309 +#define PIDX_PROV_PARAM_SSKDF_KEY_CHECK 310 +#define PIDX_PROV_PARAM_STATUS 311 +#define PIDX_PROV_PARAM_TDES_ENCRYPT_DISABLED 312 +#define PIDX_PROV_PARAM_TLS13_KDF_DIGEST_CHECK 313 +#define PIDX_PROV_PARAM_TLS13_KDF_KEY_CHECK 314 +#define PIDX_PROV_PARAM_TLS1_PRF_DIGEST_CHECK 315 +#define PIDX_PROV_PARAM_TLS1_PRF_EMS_CHECK 316 +#define PIDX_PROV_PARAM_TLS1_PRF_KEY_CHECK 317 +#define PIDX_PROV_PARAM_VERSION 115 +#define PIDX_PROV_PARAM_X942KDF_KEY_CHECK 318 +#define PIDX_PROV_PARAM_X963KDF_DIGEST_CHECK 319 +#define PIDX_PROV_PARAM_X963KDF_KEY_CHECK 320 +#define PIDX_RAND_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_RAND_PARAM_GENERATE 321 +#define PIDX_RAND_PARAM_MAX_REQUEST 322 +#define PIDX_RAND_PARAM_STATE 323 +#define PIDX_RAND_PARAM_STRENGTH 324 +#define PIDX_RAND_PARAM_TEST_ENTROPY 325 +#define PIDX_RAND_PARAM_TEST_NONCE 326 +#define PIDX_SIGNATURE_PARAM_ADD_RANDOM 327 +#define PIDX_SIGNATURE_PARAM_ALGORITHM_ID PIDX_PKEY_PARAM_ALGORITHM_ID +#define PIDX_SIGNATURE_PARAM_ALGORITHM_ID_PARAMS PIDX_PKEY_PARAM_ALGORITHM_ID_PARAMS +#define PIDX_SIGNATURE_PARAM_CONTEXT_STRING 328 +#define PIDX_SIGNATURE_PARAM_DETERMINISTIC 329 +#define PIDX_SIGNATURE_PARAM_DIGEST PIDX_PKEY_PARAM_DIGEST +#define PIDX_SIGNATURE_PARAM_DIGEST_SIZE PIDX_PKEY_PARAM_DIGEST_SIZE +#define PIDX_SIGNATURE_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_SIGNATURE_PARAM_FIPS_DIGEST_CHECK PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK +#define PIDX_SIGNATURE_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_SIGNATURE_PARAM_FIPS_RSA_PSS_SALTLEN_CHECK 300 +#define PIDX_SIGNATURE_PARAM_FIPS_SIGN_CHECK PIDX_PKEY_PARAM_FIPS_SIGN_CHECK +#define PIDX_SIGNATURE_PARAM_FIPS_SIGN_X931_PAD_CHECK 330 +#define PIDX_SIGNATURE_PARAM_FIPS_VERIFY_MESSAGE 331 +#define PIDX_SIGNATURE_PARAM_INSTANCE 332 +#define PIDX_SIGNATURE_PARAM_KAT 333 +#define PIDX_SIGNATURE_PARAM_MESSAGE_ENCODING 334 +#define PIDX_SIGNATURE_PARAM_MGF1_DIGEST PIDX_PKEY_PARAM_MGF1_DIGEST +#define PIDX_SIGNATURE_PARAM_MGF1_PROPERTIES PIDX_PKEY_PARAM_MGF1_PROPERTIES +#define PIDX_SIGNATURE_PARAM_MU 335 +#define PIDX_SIGNATURE_PARAM_NONCE_TYPE 336 +#define PIDX_SIGNATURE_PARAM_PAD_MODE PIDX_PKEY_PARAM_PAD_MODE +#define PIDX_SIGNATURE_PARAM_PROPERTIES PIDX_PKEY_PARAM_PROPERTIES +#define PIDX_SIGNATURE_PARAM_PSS_SALTLEN 271 +#define PIDX_SIGNATURE_PARAM_SIGNATURE 337 +#define PIDX_SIGNATURE_PARAM_TEST_ENTROPY 338 +#define PIDX_SKEY_PARAM_KEY_LENGTH 339 +#define PIDX_SKEY_PARAM_RAW_BYTES 340 +#define PIDX_STORE_PARAM_ALIAS 341 +#define PIDX_STORE_PARAM_DIGEST 3 +#define PIDX_STORE_PARAM_EXPECT 342 +#define PIDX_STORE_PARAM_FINGERPRINT 343 +#define PIDX_STORE_PARAM_INPUT_TYPE 174 +#define PIDX_STORE_PARAM_ISSUER 296 +#define PIDX_STORE_PARAM_PROPERTIES 7 +#define PIDX_STORE_PARAM_SERIAL 344 +#define PIDX_STORE_PARAM_SUBJECT 345 diff --git a/deps/openssl/config/archs/linux-armv4/no-asm/include/openssl/asn1.h b/deps/openssl/config/archs/linux-armv4/no-asm/include/openssl/asn1.h index 21ff58e3d803d4..15e9e44674b0f3 100644 --- a/deps/openssl/config/archs/linux-armv4/no-asm/include/openssl/asn1.h +++ b/deps/openssl/config/archs/linux-armv4/no-asm/include/openssl/asn1.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/asn1.h.in * - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -21,6 +21,9 @@ # define HEADER_ASN1_H # endif +# ifndef OPENSSL_NO_STDIO +# include +# endif # include # include # include @@ -50,14 +53,14 @@ extern "C" { # define V_ASN1_PRIMITIVE_TAG 0x1f # define V_ASN1_PRIMATIVE_TAG /*compat*/ V_ASN1_PRIMITIVE_TAG -# define V_ASN1_APP_CHOOSE -2/* let the recipient choose */ -# define V_ASN1_OTHER -3/* used in ASN1_TYPE */ -# define V_ASN1_ANY -4/* used in ASN1 template code */ +# define V_ASN1_APP_CHOOSE -2 /* let the recipient choose */ +# define V_ASN1_OTHER -3 /* used in ASN1_TYPE */ +# define V_ASN1_ANY -4 /* used in ASN1 template code */ # define V_ASN1_UNDEF -1 /* ASN.1 tag values */ # define V_ASN1_EOC 0 -# define V_ASN1_BOOLEAN 1 /**/ +# define V_ASN1_BOOLEAN 1 # define V_ASN1_INTEGER 2 # define V_ASN1_BIT_STRING 3 # define V_ASN1_OCTET_STRING 4 @@ -70,19 +73,19 @@ extern "C" { # define V_ASN1_UTF8STRING 12 # define V_ASN1_SEQUENCE 16 # define V_ASN1_SET 17 -# define V_ASN1_NUMERICSTRING 18 /**/ +# define V_ASN1_NUMERICSTRING 18 # define V_ASN1_PRINTABLESTRING 19 # define V_ASN1_T61STRING 20 -# define V_ASN1_TELETEXSTRING 20/* alias */ -# define V_ASN1_VIDEOTEXSTRING 21 /**/ +# define V_ASN1_TELETEXSTRING 20 /* alias */ +# define V_ASN1_VIDEOTEXSTRING 21 # define V_ASN1_IA5STRING 22 # define V_ASN1_UTCTIME 23 -# define V_ASN1_GENERALIZEDTIME 24 /**/ -# define V_ASN1_GRAPHICSTRING 25 /**/ -# define V_ASN1_ISO64STRING 26 /**/ -# define V_ASN1_VISIBLESTRING 26/* alias */ -# define V_ASN1_GENERALSTRING 27 /**/ -# define V_ASN1_UNIVERSALSTRING 28 /**/ +# define V_ASN1_GENERALIZEDTIME 24 +# define V_ASN1_GRAPHICSTRING 25 +# define V_ASN1_ISO64STRING 26 +# define V_ASN1_VISIBLESTRING 26 /* alias */ +# define V_ASN1_GENERALSTRING 27 +# define V_ASN1_UNIVERSALSTRING 28 # define V_ASN1_BMPSTRING 30 /* @@ -155,7 +158,7 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_ALGOR, X509_ALGOR, X509_ALGOR) -# define ASN1_STRING_FLAG_BITS_LEFT 0x08/* Set if 0x07 has bits left value */ +# define ASN1_STRING_FLAG_BITS_LEFT 0x08 /* Set if 0x07 has bits left value */ /* * This indicates that the ASN1_STRING is not a real value but just a place * holder for the location where indefinite length constructed data should be @@ -275,7 +278,7 @@ typedef struct ASN1_TLC_st ASN1_TLC; /* This is just an opaque pointer */ typedef struct ASN1_VALUE_st ASN1_VALUE; -/* Declare ASN1 functions: the implement macro in in asn1t.h */ +/* Declare ASN1 functions: the implement macro is in asn1t.h */ /* * The mysterious 'extern' that's passed to some macros is innocuous, @@ -368,6 +371,7 @@ typedef struct ASN1_VALUE_st ASN1_VALUE; typedef void *d2i_of_void(void **, const unsigned char **, long); typedef int i2d_of_void(const void *, unsigned char **); +typedef int OSSL_i2d_of_void_ctx(const void *, unsigned char **, void *vctx); /*- * The following macros and typedefs allow an ASN1_ITEM @@ -996,6 +1000,8 @@ int ASN1_TYPE_get_int_octetstring(const ASN1_TYPE *a, long *num, unsigned char *data, int max_len); void *ASN1_item_unpack(const ASN1_STRING *oct, const ASN1_ITEM *it); +void *ASN1_item_unpack_ex(const ASN1_STRING *oct, const ASN1_ITEM *it, + OSSL_LIB_CTX *libctx, const char *propq); ASN1_STRING *ASN1_item_pack(void *obj, const ASN1_ITEM *it, ASN1_OCTET_STRING **oct); diff --git a/deps/openssl/config/archs/linux-armv4/no-asm/include/openssl/bio.h b/deps/openssl/config/archs/linux-armv4/no-asm/include/openssl/bio.h index f9aa74731c833c..e02f867beb0ec0 100644 --- a/deps/openssl/config/archs/linux-armv4/no-asm/include/openssl/bio.h +++ b/deps/openssl/config/archs/linux-armv4/no-asm/include/openssl/bio.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/bio.h.in * - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -67,8 +67,13 @@ extern "C" { # define BIO_TYPE_DGRAM_SCTP (24|BIO_TYPE_SOURCE_SINK|BIO_TYPE_DESCRIPTOR) # endif # define BIO_TYPE_CORE_TO_PROV (25|BIO_TYPE_SOURCE_SINK) +# define BIO_TYPE_DGRAM_PAIR (26|BIO_TYPE_SOURCE_SINK) +# define BIO_TYPE_DGRAM_MEM (27|BIO_TYPE_SOURCE_SINK) +/* Custom type starting index returned by BIO_get_new_index() */ #define BIO_TYPE_START 128 +/* Custom type maximum index that can be returned by BIO_get_new_index() */ +#define BIO_TYPE_MASK 0xFF /* * BIO_FILENAME_READ|BIO_CLOSE to open or close on free. @@ -171,6 +176,31 @@ extern "C" { # define BIO_CTRL_SET_INDENT 80 # define BIO_CTRL_GET_INDENT 81 +# define BIO_CTRL_DGRAM_GET_LOCAL_ADDR_CAP 82 +# define BIO_CTRL_DGRAM_GET_LOCAL_ADDR_ENABLE 83 +# define BIO_CTRL_DGRAM_SET_LOCAL_ADDR_ENABLE 84 +# define BIO_CTRL_DGRAM_GET_EFFECTIVE_CAPS 85 +# define BIO_CTRL_DGRAM_GET_CAPS 86 +# define BIO_CTRL_DGRAM_SET_CAPS 87 +# define BIO_CTRL_DGRAM_GET_NO_TRUNC 88 +# define BIO_CTRL_DGRAM_SET_NO_TRUNC 89 + +/* + * internal BIO: + * # define BIO_CTRL_SET_KTLS_TX_ZEROCOPY_SENDFILE 90 + */ + +# define BIO_CTRL_GET_RPOLL_DESCRIPTOR 91 +# define BIO_CTRL_GET_WPOLL_DESCRIPTOR 92 +# define BIO_CTRL_DGRAM_DETECT_PEER_ADDR 93 +# define BIO_CTRL_DGRAM_SET0_LOCAL_ADDR 94 + +# define BIO_DGRAM_CAP_NONE 0U +# define BIO_DGRAM_CAP_HANDLES_SRC_ADDR (1U << 0) +# define BIO_DGRAM_CAP_HANDLES_DST_ADDR (1U << 1) +# define BIO_DGRAM_CAP_PROVIDES_SRC_ADDR (1U << 2) +# define BIO_DGRAM_CAP_PROVIDES_DST_ADDR (1U << 3) + # ifndef OPENSSL_NO_KTLS # define BIO_get_ktls_send(b) \ (BIO_ctrl(b, BIO_CTRL_GET_KTLS_SEND, 0, NULL) > 0) @@ -208,7 +238,7 @@ extern "C" { # define BIO_FLAGS_NONCLEAR_RST 0x400 # define BIO_FLAGS_IN_EOF 0x800 -/* the BIO FLAGS values 0x1000 to 0x4000 are reserved for internal KTLS flags */ +/* the BIO FLAGS values 0x1000 to 0x8000 are reserved for internal KTLS flags */ typedef union bio_addr_st BIO_ADDR; typedef struct bio_addrinfo_st BIO_ADDRINFO; @@ -256,12 +286,14 @@ void BIO_clear_flags(BIO *b, int flags); # define BIO_RR_ACCEPT 0x03 /* These are passed by the BIO callback */ -# define BIO_CB_FREE 0x01 -# define BIO_CB_READ 0x02 -# define BIO_CB_WRITE 0x03 -# define BIO_CB_PUTS 0x04 -# define BIO_CB_GETS 0x05 -# define BIO_CB_CTRL 0x06 +# define BIO_CB_FREE 0x01 +# define BIO_CB_READ 0x02 +# define BIO_CB_WRITE 0x03 +# define BIO_CB_PUTS 0x04 +# define BIO_CB_GETS 0x05 +# define BIO_CB_CTRL 0x06 +# define BIO_CB_RECVMMSG 0x07 +# define BIO_CB_SENDMMSG 0x08 /* * The callback is called before and after the underling operation, The @@ -362,6 +394,36 @@ struct bio_dgram_sctp_prinfo { }; # endif +/* BIO_sendmmsg/BIO_recvmmsg-related definitions */ +typedef struct bio_msg_st { + void *data; + size_t data_len; + BIO_ADDR *peer, *local; + uint64_t flags; +} BIO_MSG; + +typedef struct bio_mmsg_cb_args_st { + BIO_MSG *msg; + size_t stride, num_msg; + uint64_t flags; + size_t *msgs_processed; +} BIO_MMSG_CB_ARGS; + +#define BIO_POLL_DESCRIPTOR_TYPE_NONE 0 +#define BIO_POLL_DESCRIPTOR_TYPE_SOCK_FD 1 +#define BIO_POLL_DESCRIPTOR_TYPE_SSL 2 +#define BIO_POLL_DESCRIPTOR_CUSTOM_START 8192 + +typedef struct bio_poll_descriptor_st { + uint32_t type; + union { + int fd; + void *custom; + uintptr_t custom_ui; + SSL *ssl; + } value; +} BIO_POLL_DESCRIPTOR; + /* * #define BIO_CONN_get_param_hostname BIO_ctrl */ @@ -428,10 +490,17 @@ struct bio_dgram_sctp_prinfo { # define BIO_C_SET_CONNECT_MODE 155 +# define BIO_C_SET_TFO 156 /* like BIO_C_SET_NBIO */ + +# define BIO_C_SET_SOCK_TYPE 157 +# define BIO_C_GET_SOCK_TYPE 158 +# define BIO_C_GET_DGRAM_BIO 159 + # define BIO_set_app_data(s,arg) BIO_set_ex_data(s,0,arg) # define BIO_get_app_data(s) BIO_get_ex_data(s,0) -# define BIO_set_nbio(b,n) BIO_ctrl(b,BIO_C_SET_NBIO,(n),NULL) +# define BIO_set_nbio(b,n) BIO_ctrl(b,BIO_C_SET_NBIO,(n),NULL) +# define BIO_set_tfo(b,n) BIO_ctrl(b,BIO_C_SET_TFO,(n),NULL) # ifndef OPENSSL_NO_SOCK /* IP families we support, for BIO_s_connect() and BIO_s_accept() */ @@ -452,7 +521,11 @@ struct bio_dgram_sctp_prinfo { # define BIO_get_conn_port(b) ((const char *)BIO_ptr_ctrl(b,BIO_C_GET_CONNECT,1)) # define BIO_get_conn_address(b) ((const BIO_ADDR *)BIO_ptr_ctrl(b,BIO_C_GET_CONNECT,2)) # define BIO_get_conn_ip_family(b) BIO_ctrl(b,BIO_C_GET_CONNECT,3,NULL) +# define BIO_get_conn_mode(b) BIO_ctrl(b,BIO_C_GET_CONNECT,4,NULL) # define BIO_set_conn_mode(b,n) BIO_ctrl(b,BIO_C_SET_CONNECT_MODE,(n),NULL) +# define BIO_set_sock_type(b,t) BIO_ctrl(b,BIO_C_SET_SOCK_TYPE,(t),NULL) +# define BIO_get_sock_type(b) BIO_ctrl(b,BIO_C_GET_SOCK_TYPE,0,NULL) +# define BIO_get0_dgram_bio(b, p) BIO_ctrl(b,BIO_C_GET_DGRAM_BIO,0,(void *)(BIO **)(p)) /* BIO_s_accept() */ # define BIO_set_accept_name(b,name) BIO_ctrl(b,BIO_C_SET_ACCEPT,0, \ @@ -469,6 +542,7 @@ struct bio_dgram_sctp_prinfo { (char *)(bio)) # define BIO_set_accept_ip_family(b,f) BIO_int_ctrl(b,BIO_C_SET_ACCEPT,4,f) # define BIO_get_accept_ip_family(b) BIO_ctrl(b,BIO_C_GET_ACCEPT,4,NULL) +# define BIO_set_tfo_accept(b,n) BIO_ctrl(b,BIO_C_SET_ACCEPT,5,(n)?(void *)"a":NULL) /* Aliases kept for backward compatibility */ # define BIO_BIND_NORMAL 0 @@ -596,8 +670,32 @@ int BIO_ctrl_reset_read_request(BIO *b); (int)BIO_ctrl(b, BIO_CTRL_DGRAM_GET_PEER, 0, (char *)(peer)) # define BIO_dgram_set_peer(b,peer) \ (int)BIO_ctrl(b, BIO_CTRL_DGRAM_SET_PEER, 0, (char *)(peer)) +# define BIO_dgram_detect_peer_addr(b,peer) \ + (int)BIO_ctrl(b, BIO_CTRL_DGRAM_DETECT_PEER_ADDR, 0, (char *)(peer)) # define BIO_dgram_get_mtu_overhead(b) \ (unsigned int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_MTU_OVERHEAD, 0, NULL) +# define BIO_dgram_get_local_addr_cap(b) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_LOCAL_ADDR_CAP, 0, NULL) +# define BIO_dgram_get_local_addr_enable(b, penable) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_LOCAL_ADDR_ENABLE, 0, (char *)(penable)) +# define BIO_dgram_set_local_addr_enable(b, enable) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET_LOCAL_ADDR_ENABLE, (enable), NULL) +# define BIO_dgram_get_effective_caps(b) \ + (uint32_t)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_EFFECTIVE_CAPS, 0, NULL) +# define BIO_dgram_get_caps(b) \ + (uint32_t)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_CAPS, 0, NULL) +# define BIO_dgram_set_caps(b, caps) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET_CAPS, (long)(caps), NULL) +# define BIO_dgram_get_no_trunc(b) \ + (unsigned int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_NO_TRUNC, 0, NULL) +# define BIO_dgram_set_no_trunc(b, enable) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET_NO_TRUNC, (enable), NULL) +# define BIO_dgram_get_mtu(b) \ + (unsigned int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_MTU, 0, NULL) +# define BIO_dgram_set_mtu(b, mtu) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET_MTU, (mtu), NULL) +# define BIO_dgram_set0_local_addr(b, addr) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET0_LOCAL_ADDR, 0, (addr)) /* ctrl macros for BIO_f_prefix */ # define BIO_set_prefix(b,p) BIO_ctrl((b), BIO_CTRL_SET_PREFIX, 0, (void *)(p)) @@ -640,10 +738,18 @@ void BIO_vfree(BIO *a); int BIO_up_ref(BIO *a); int BIO_read(BIO *b, void *data, int dlen); int BIO_read_ex(BIO *b, void *data, size_t dlen, size_t *readbytes); +__owur int BIO_recvmmsg(BIO *b, BIO_MSG *msg, + size_t stride, size_t num_msg, uint64_t flags, + size_t *msgs_processed); int BIO_gets(BIO *bp, char *buf, int size); int BIO_get_line(BIO *bio, char *buf, int size); int BIO_write(BIO *b, const void *data, int dlen); int BIO_write_ex(BIO *b, const void *data, size_t dlen, size_t *written); +__owur int BIO_sendmmsg(BIO *b, BIO_MSG *msg, + size_t stride, size_t num_msg, uint64_t flags, + size_t *msgs_processed); +__owur int BIO_get_rpoll_descriptor(BIO *b, BIO_POLL_DESCRIPTOR *desc); +__owur int BIO_get_wpoll_descriptor(BIO *b, BIO_POLL_DESCRIPTOR *desc); int BIO_puts(BIO *bp, const char *buf); int BIO_indent(BIO *b, int indent, int max); long BIO_ctrl(BIO *bp, int cmd, long larg, void *parg); @@ -667,6 +773,9 @@ int BIO_nwrite0(BIO *bio, char **buf); int BIO_nwrite(BIO *bio, char **buf, int num); const BIO_METHOD *BIO_s_mem(void); +# ifndef OPENSSL_NO_DGRAM +const BIO_METHOD *BIO_s_dgram_mem(void); +# endif const BIO_METHOD *BIO_s_secmem(void); BIO *BIO_new_mem_buf(const void *buf, int len); # ifndef OPENSSL_NO_SOCK @@ -686,6 +795,7 @@ const BIO_METHOD *BIO_f_nbio_test(void); const BIO_METHOD *BIO_f_prefix(void); const BIO_METHOD *BIO_s_core(void); # ifndef OPENSSL_NO_DGRAM +const BIO_METHOD *BIO_s_dgram_pair(void); const BIO_METHOD *BIO_s_datagram(void); int BIO_dgram_non_fatal_error(int error); BIO *BIO_new_dgram(int fd, int close_flag); @@ -704,6 +814,7 @@ int BIO_dgram_sctp_msg_waiting(BIO *b); # ifndef OPENSSL_NO_SOCK int BIO_sock_should_retry(int i); int BIO_sock_non_fatal_error(int error); +int BIO_err_is_non_fatal(unsigned int errcode); int BIO_socket_wait(int fd, int for_read, time_t max_time); # endif int BIO_wait(BIO *bio, time_t max_time, unsigned int nap_milliseconds); @@ -726,6 +837,8 @@ int BIO_hex_string(BIO *out, int indent, int width, const void *data, # ifndef OPENSSL_NO_SOCK BIO_ADDR *BIO_ADDR_new(void); +int BIO_ADDR_copy(BIO_ADDR *dst, const BIO_ADDR *src); +BIO_ADDR *BIO_ADDR_dup(const BIO_ADDR *ap); int BIO_ADDR_rawmake(BIO_ADDR *ap, int family, const void *where, size_t wherelen, unsigned short port); void BIO_ADDR_free(BIO_ADDR *); @@ -788,6 +901,7 @@ int BIO_sock_info(int sock, # define BIO_SOCK_KEEPALIVE 0x04 # define BIO_SOCK_NONBLOCK 0x08 # define BIO_SOCK_NODELAY 0x10 +# define BIO_SOCK_TFO 0x20 int BIO_socket(int domain, int socktype, int protocol, int options); int BIO_connect(int sock, const BIO_ADDR *addr, int options); @@ -805,6 +919,11 @@ BIO *BIO_new_fd(int fd, int close_flag); int BIO_new_bio_pair(BIO **bio1, size_t writebuf1, BIO **bio2, size_t writebuf2); +# ifndef OPENSSL_NO_DGRAM +int BIO_new_bio_dgram_pair(BIO **bio1, size_t writebuf1, + BIO **bio2, size_t writebuf2); +# endif + /* * If successful, returns 1 and in *bio1, *bio2 two BIO pair endpoints. * Otherwise returns 0 and sets *bio1 and *bio2 to NULL. Size 0 uses default @@ -849,38 +968,54 @@ ossl_bio__attr__((__format__(ossl_bio__printf__, 3, 0))); BIO_METHOD *BIO_meth_new(int type, const char *name); void BIO_meth_free(BIO_METHOD *biom); -int (*BIO_meth_get_write(const BIO_METHOD *biom)) (BIO *, const char *, int); -int (*BIO_meth_get_write_ex(const BIO_METHOD *biom)) (BIO *, const char *, size_t, - size_t *); int BIO_meth_set_write(BIO_METHOD *biom, int (*write) (BIO *, const char *, int)); int BIO_meth_set_write_ex(BIO_METHOD *biom, int (*bwrite) (BIO *, const char *, size_t, size_t *)); -int (*BIO_meth_get_read(const BIO_METHOD *biom)) (BIO *, char *, int); -int (*BIO_meth_get_read_ex(const BIO_METHOD *biom)) (BIO *, char *, size_t, size_t *); +int BIO_meth_set_sendmmsg(BIO_METHOD *biom, + int (*f) (BIO *, BIO_MSG *, size_t, size_t, + uint64_t, size_t *)); int BIO_meth_set_read(BIO_METHOD *biom, int (*read) (BIO *, char *, int)); int BIO_meth_set_read_ex(BIO_METHOD *biom, int (*bread) (BIO *, char *, size_t, size_t *)); -int (*BIO_meth_get_puts(const BIO_METHOD *biom)) (BIO *, const char *); +int BIO_meth_set_recvmmsg(BIO_METHOD *biom, + int (*f) (BIO *, BIO_MSG *, size_t, size_t, + uint64_t, size_t *)); int BIO_meth_set_puts(BIO_METHOD *biom, int (*puts) (BIO *, const char *)); -int (*BIO_meth_get_gets(const BIO_METHOD *biom)) (BIO *, char *, int); int BIO_meth_set_gets(BIO_METHOD *biom, int (*ossl_gets) (BIO *, char *, int)); -long (*BIO_meth_get_ctrl(const BIO_METHOD *biom)) (BIO *, int, long, void *); int BIO_meth_set_ctrl(BIO_METHOD *biom, long (*ctrl) (BIO *, int, long, void *)); -int (*BIO_meth_get_create(const BIO_METHOD *bion)) (BIO *); int BIO_meth_set_create(BIO_METHOD *biom, int (*create) (BIO *)); -int (*BIO_meth_get_destroy(const BIO_METHOD *biom)) (BIO *); int BIO_meth_set_destroy(BIO_METHOD *biom, int (*destroy) (BIO *)); -long (*BIO_meth_get_callback_ctrl(const BIO_METHOD *biom)) - (BIO *, int, BIO_info_cb *); int BIO_meth_set_callback_ctrl(BIO_METHOD *biom, long (*callback_ctrl) (BIO *, int, BIO_info_cb *)); - +# ifndef OPENSSL_NO_DEPRECATED_3_5 +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_write(const BIO_METHOD *biom)) (BIO *, const char *, + int); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_write_ex(const BIO_METHOD *biom)) (BIO *, const char *, + size_t, size_t *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_sendmmsg(const BIO_METHOD *biom))(BIO *, BIO_MSG *, + size_t, size_t, + uint64_t, size_t *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_read(const BIO_METHOD *biom)) (BIO *, char *, int); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_read_ex(const BIO_METHOD *biom)) (BIO *, char *, + size_t, size_t *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_recvmmsg(const BIO_METHOD *biom))(BIO *, BIO_MSG *, + size_t, size_t, + uint64_t, size_t *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_puts(const BIO_METHOD *biom)) (BIO *, const char *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_gets(const BIO_METHOD *biom)) (BIO *, char *, int); +OSSL_DEPRECATEDIN_3_5 long (*BIO_meth_get_ctrl(const BIO_METHOD *biom)) (BIO *, int, + long, void *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_create(const BIO_METHOD *bion)) (BIO *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_destroy(const BIO_METHOD *biom)) (BIO *); +OSSL_DEPRECATEDIN_3_5 long (*BIO_meth_get_callback_ctrl(const BIO_METHOD *biom)) (BIO *, int, + BIO_info_cb *); +# endif # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/linux-armv4/no-asm/include/openssl/cmp.h b/deps/openssl/config/archs/linux-armv4/no-asm/include/openssl/cmp.h index 49825570d8c303..05aed3029d594c 100644 --- a/deps/openssl/config/archs/linux-armv4/no-asm/include/openssl/cmp.h +++ b/deps/openssl/config/archs/linux-armv4/no-asm/include/openssl/cmp.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/cmp.h.in * - * Copyright 2007-2023 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2007-2024 The OpenSSL Project Authors. All Rights Reserved. * Copyright Nokia 2007-2019 * Copyright Siemens AG 2015-2019 * @@ -35,7 +35,9 @@ extern "C" { # endif -# define OSSL_CMP_PVNO 2 +# define OSSL_CMP_PVNO_2 2 +# define OSSL_CMP_PVNO_3 3 +# define OSSL_CMP_PVNO OSSL_CMP_PVNO_2 /* v2 is the default */ /*- * PKIFailureInfo ::= BIT STRING { @@ -137,7 +139,6 @@ extern "C" { # if OSSL_CMP_PKIFAILUREINFO_MAX_BIT_PATTERN > INT_MAX # error CMP_PKIFAILUREINFO_MAX bit pattern does not fit in type int # endif - typedef ASN1_BIT_STRING OSSL_CMP_PKIFAILUREINFO; # define OSSL_CMP_CTX_FAILINFO_badAlg (1 << 0) @@ -203,8 +204,8 @@ typedef ASN1_BIT_STRING OSSL_CMP_PKIFAILUREINFO; # define OSSL_CMP_PKISTATUS_revocationWarning 4 # define OSSL_CMP_PKISTATUS_revocationNotification 5 # define OSSL_CMP_PKISTATUS_keyUpdateWarning 6 - typedef ASN1_INTEGER OSSL_CMP_PKISTATUS; + DECLARE_ASN1_ITEM(OSSL_CMP_PKISTATUS) # define OSSL_CMP_CERTORENCCERT_CERTIFICATE 0 @@ -274,6 +275,46 @@ SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CMP_ITAV, OSSL_CMP_ITAV, OSSL_CMP_ITAV) #define sk_OSSL_CMP_ITAV_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_CMP_ITAV) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_CMP_ITAV_sk_type(sk), ossl_check_OSSL_CMP_ITAV_copyfunc_type(copyfunc), ossl_check_OSSL_CMP_ITAV_freefunc_type(freefunc))) #define sk_OSSL_CMP_ITAV_set_cmp_func(sk, cmp) ((sk_OSSL_CMP_ITAV_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CMP_ITAV_sk_type(sk), ossl_check_OSSL_CMP_ITAV_compfunc_type(cmp))) + +typedef struct ossl_cmp_crlstatus_st OSSL_CMP_CRLSTATUS; +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CMP_CRLSTATUS, OSSL_CMP_CRLSTATUS, OSSL_CMP_CRLSTATUS) +#define sk_OSSL_CMP_CRLSTATUS_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_value(sk, idx) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_value(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk), (idx))) +#define sk_OSSL_CMP_CRLSTATUS_new(cmp) ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_new(ossl_check_OSSL_CMP_CRLSTATUS_compfunc_type(cmp))) +#define sk_OSSL_CMP_CRLSTATUS_new_null() ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_new_null()) +#define sk_OSSL_CMP_CRLSTATUS_new_reserve(cmp, n) ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_CMP_CRLSTATUS_compfunc_type(cmp), (n))) +#define sk_OSSL_CMP_CRLSTATUS_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), (n)) +#define sk_OSSL_CMP_CRLSTATUS_free(sk) OPENSSL_sk_free(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_delete(sk, i) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_delete(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), (i))) +#define sk_OSSL_CMP_CRLSTATUS_delete_ptr(sk, ptr) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr))) +#define sk_OSSL_CMP_CRLSTATUS_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr)) +#define sk_OSSL_CMP_CRLSTATUS_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr)) +#define sk_OSSL_CMP_CRLSTATUS_pop(sk) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_pop(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk))) +#define sk_OSSL_CMP_CRLSTATUS_shift(sk) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_shift(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk))) +#define sk_OSSL_CMP_CRLSTATUS_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk),ossl_check_OSSL_CMP_CRLSTATUS_freefunc_type(freefunc)) +#define sk_OSSL_CMP_CRLSTATUS_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr), (idx)) +#define sk_OSSL_CMP_CRLSTATUS_set(sk, idx, ptr) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_set(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), (idx), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr))) +#define sk_OSSL_CMP_CRLSTATUS_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr)) +#define sk_OSSL_CMP_CRLSTATUS_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr)) +#define sk_OSSL_CMP_CRLSTATUS_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr), pnum) +#define sk_OSSL_CMP_CRLSTATUS_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_dup(sk) ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_dup(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk))) +#define sk_OSSL_CMP_CRLSTATUS_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_copyfunc_type(copyfunc), ossl_check_OSSL_CMP_CRLSTATUS_freefunc_type(freefunc))) +#define sk_OSSL_CMP_CRLSTATUS_set_cmp_func(sk, cmp) ((sk_OSSL_CMP_CRLSTATUS_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_compfunc_type(cmp))) + + +typedef OSSL_CRMF_ATTRIBUTETYPEANDVALUE OSSL_CMP_ATAV; +# define OSSL_CMP_ATAV_free OSSL_CRMF_ATTRIBUTETYPEANDVALUE_free +typedef STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) OSSL_CMP_ATAVS; +DECLARE_ASN1_FUNCTIONS(OSSL_CMP_ATAVS) +# define stack_st_OSSL_CMP_ATAV stack_st_OSSL_CRMF_ATTRIBUTETYPEANDVALUE +# define sk_OSSL_CMP_ATAV_num sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_num +# define sk_OSSL_CMP_ATAV_value sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_value +# define sk_OSSL_CMP_ATAV_push sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_push +# define sk_OSSL_CMP_ATAV_pop_free sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_pop_free + typedef struct ossl_cmp_revrepcontent_st OSSL_CMP_REVREPCONTENT; typedef struct ossl_cmp_pkisi_st OSSL_CMP_PKISI; DECLARE_ASN1_FUNCTIONS(OSSL_CMP_PKISI) @@ -375,21 +416,75 @@ void OSSL_CMP_ITAV_set0(OSSL_CMP_ITAV *itav, ASN1_OBJECT *type, ASN1_TYPE *value); ASN1_OBJECT *OSSL_CMP_ITAV_get0_type(const OSSL_CMP_ITAV *itav); ASN1_TYPE *OSSL_CMP_ITAV_get0_value(const OSSL_CMP_ITAV *itav); -int OSSL_CMP_ITAV_push0_stack_item(STACK_OF(OSSL_CMP_ITAV) **itav_sk_p, +int OSSL_CMP_ITAV_push0_stack_item(STACK_OF(OSSL_CMP_ITAV) **sk_p, OSSL_CMP_ITAV *itav); void OSSL_CMP_ITAV_free(OSSL_CMP_ITAV *itav); + +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new0_certProfile(STACK_OF(ASN1_UTF8STRING) + *certProfile); +int OSSL_CMP_ITAV_get0_certProfile(const OSSL_CMP_ITAV *itav, + STACK_OF(ASN1_UTF8STRING) **out); +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new_caCerts(const STACK_OF(X509) *caCerts); +int OSSL_CMP_ITAV_get0_caCerts(const OSSL_CMP_ITAV *itav, STACK_OF(X509) **out); + +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new_rootCaCert(const X509 *rootCaCert); +int OSSL_CMP_ITAV_get0_rootCaCert(const OSSL_CMP_ITAV *itav, X509 **out); +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new_rootCaKeyUpdate(const X509 *newWithNew, + const X509 *newWithOld, + const X509 *oldWithNew); +int OSSL_CMP_ITAV_get0_rootCaKeyUpdate(const OSSL_CMP_ITAV *itav, + X509 **newWithNew, + X509 **newWithOld, + X509 **oldWithNew); + +OSSL_CMP_CRLSTATUS *OSSL_CMP_CRLSTATUS_create(const X509_CRL *crl, + const X509 *cert, int only_DN); +OSSL_CMP_CRLSTATUS *OSSL_CMP_CRLSTATUS_new1(const DIST_POINT_NAME *dpn, + const GENERAL_NAMES *issuer, + const ASN1_TIME *thisUpdate); +int OSSL_CMP_CRLSTATUS_get0(const OSSL_CMP_CRLSTATUS *crlstatus, + DIST_POINT_NAME **dpn, GENERAL_NAMES **issuer, + ASN1_TIME **thisUpdate); +void OSSL_CMP_CRLSTATUS_free(OSSL_CMP_CRLSTATUS *crlstatus); +OSSL_CMP_ITAV +*OSSL_CMP_ITAV_new0_crlStatusList(STACK_OF(OSSL_CMP_CRLSTATUS) *crlStatusList); +int OSSL_CMP_ITAV_get0_crlStatusList(const OSSL_CMP_ITAV *itav, + STACK_OF(OSSL_CMP_CRLSTATUS) **out); +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new_crls(const X509_CRL *crls); +int OSSL_CMP_ITAV_get0_crls(const OSSL_CMP_ITAV *it, STACK_OF(X509_CRL) **out); +OSSL_CMP_ITAV +*OSSL_CMP_ITAV_new0_certReqTemplate(OSSL_CRMF_CERTTEMPLATE *certTemplate, + OSSL_CMP_ATAVS *keySpec); +int OSSL_CMP_ITAV_get1_certReqTemplate(const OSSL_CMP_ITAV *itav, + OSSL_CRMF_CERTTEMPLATE **certTemplate, + OSSL_CMP_ATAVS **keySpec); + +OSSL_CMP_ATAV *OSSL_CMP_ATAV_create(ASN1_OBJECT *type, ASN1_TYPE *value); +void OSSL_CMP_ATAV_set0(OSSL_CMP_ATAV *itav, ASN1_OBJECT *type, + ASN1_TYPE *value); +ASN1_OBJECT *OSSL_CMP_ATAV_get0_type(const OSSL_CMP_ATAV *itav); +ASN1_TYPE *OSSL_CMP_ATAV_get0_value(const OSSL_CMP_ATAV *itav); +OSSL_CMP_ATAV *OSSL_CMP_ATAV_new_algId(const X509_ALGOR *alg); +X509_ALGOR *OSSL_CMP_ATAV_get0_algId(const OSSL_CMP_ATAV *atav); +OSSL_CMP_ATAV *OSSL_CMP_ATAV_new_rsaKeyLen(int len); +int OSSL_CMP_ATAV_get_rsaKeyLen(const OSSL_CMP_ATAV *atav); +int OSSL_CMP_ATAV_push1(OSSL_CMP_ATAVS **sk_p, const OSSL_CMP_ATAV *atav); + void OSSL_CMP_MSG_free(OSSL_CMP_MSG *msg); /* from cmp_ctx.c */ OSSL_CMP_CTX *OSSL_CMP_CTX_new(OSSL_LIB_CTX *libctx, const char *propq); void OSSL_CMP_CTX_free(OSSL_CMP_CTX *ctx); int OSSL_CMP_CTX_reinit(OSSL_CMP_CTX *ctx); +OSSL_LIB_CTX *OSSL_CMP_CTX_get0_libctx(const OSSL_CMP_CTX *ctx); +const char *OSSL_CMP_CTX_get0_propq(const OSSL_CMP_CTX *ctx); /* CMP general options: */ # define OSSL_CMP_OPT_LOG_VERBOSITY 0 /* CMP transfer options: */ -# define OSSL_CMP_OPT_KEEP_ALIVE 10 -# define OSSL_CMP_OPT_MSG_TIMEOUT 11 +# define OSSL_CMP_OPT_KEEP_ALIVE 10 +# define OSSL_CMP_OPT_MSG_TIMEOUT 11 # define OSSL_CMP_OPT_TOTAL_TIMEOUT 12 +# define OSSL_CMP_OPT_USE_TLS 13 /* CMP request options: */ # define OSSL_CMP_OPT_VALIDITY_DAYS 20 # define OSSL_CMP_OPT_SUBJECTALTNAME_NODEFAULT 21 @@ -407,6 +502,7 @@ int OSSL_CMP_CTX_reinit(OSSL_CMP_CTX *ctx); # define OSSL_CMP_OPT_DIGEST_ALGNID 34 # define OSSL_CMP_OPT_IGNORE_KEYUSAGE 35 # define OSSL_CMP_OPT_PERMIT_TA_IN_EXTRACERTS_FOR_IR 36 +# define OSSL_CMP_OPT_NO_CACHE_EXTRACERTS 37 int OSSL_CMP_CTX_set_option(OSSL_CMP_CTX *ctx, int opt, int val); int OSSL_CMP_CTX_get_option(const OSSL_CMP_CTX *ctx, int opt); /* CMP-specific callback for logging and outputting the error queue: */ @@ -420,9 +516,11 @@ int OSSL_CMP_CTX_set1_server(OSSL_CMP_CTX *ctx, const char *address); int OSSL_CMP_CTX_set_serverPort(OSSL_CMP_CTX *ctx, int port); int OSSL_CMP_CTX_set1_proxy(OSSL_CMP_CTX *ctx, const char *name); int OSSL_CMP_CTX_set1_no_proxy(OSSL_CMP_CTX *ctx, const char *names); +# ifndef OPENSSL_NO_HTTP int OSSL_CMP_CTX_set_http_cb(OSSL_CMP_CTX *ctx, OSSL_HTTP_bio_cb_t cb); int OSSL_CMP_CTX_set_http_cb_arg(OSSL_CMP_CTX *ctx, void *arg); void *OSSL_CMP_CTX_get_http_cb_arg(const OSSL_CMP_CTX *ctx); +# endif typedef OSSL_CMP_MSG *(*OSSL_CMP_transfer_cb_t) (OSSL_CMP_CTX *ctx, const OSSL_CMP_MSG *req); int OSSL_CMP_CTX_set_transfer_cb(OSSL_CMP_CTX *ctx, OSSL_CMP_transfer_cb_t cb); @@ -432,7 +530,9 @@ void *OSSL_CMP_CTX_get_transfer_cb_arg(const OSSL_CMP_CTX *ctx); int OSSL_CMP_CTX_set1_srvCert(OSSL_CMP_CTX *ctx, X509 *cert); int OSSL_CMP_CTX_set1_expected_sender(OSSL_CMP_CTX *ctx, const X509_NAME *name); int OSSL_CMP_CTX_set0_trustedStore(OSSL_CMP_CTX *ctx, X509_STORE *store); +# define OSSL_CMP_CTX_set0_trusted OSSL_CMP_CTX_set0_trustedStore X509_STORE *OSSL_CMP_CTX_get0_trustedStore(const OSSL_CMP_CTX *ctx); +# define OSSL_CMP_CTX_get0_trusted OSSL_CMP_CTX_get0_trustedStore int OSSL_CMP_CTX_set1_untrusted(OSSL_CMP_CTX *ctx, STACK_OF(X509) *certs); STACK_OF(X509) *OSSL_CMP_CTX_get0_untrusted(const OSSL_CMP_CTX *ctx); /* client authentication: */ @@ -448,12 +548,15 @@ int OSSL_CMP_CTX_set1_secretValue(OSSL_CMP_CTX *ctx, int OSSL_CMP_CTX_set1_recipient(OSSL_CMP_CTX *ctx, const X509_NAME *name); int OSSL_CMP_CTX_push0_geninfo_ITAV(OSSL_CMP_CTX *ctx, OSSL_CMP_ITAV *itav); int OSSL_CMP_CTX_reset_geninfo_ITAVs(OSSL_CMP_CTX *ctx); +STACK_OF(OSSL_CMP_ITAV) + *OSSL_CMP_CTX_get0_geninfo_ITAVs(const OSSL_CMP_CTX *ctx); int OSSL_CMP_CTX_set1_extraCertsOut(OSSL_CMP_CTX *ctx, STACK_OF(X509) *extraCertsOut); /* certificate template: */ int OSSL_CMP_CTX_set0_newPkey(OSSL_CMP_CTX *ctx, int priv, EVP_PKEY *pkey); EVP_PKEY *OSSL_CMP_CTX_get0_newPkey(const OSSL_CMP_CTX *ctx, int priv); int OSSL_CMP_CTX_set1_issuer(OSSL_CMP_CTX *ctx, const X509_NAME *name); +int OSSL_CMP_CTX_set1_serialNumber(OSSL_CMP_CTX *ctx, const ASN1_INTEGER *sn); int OSSL_CMP_CTX_set1_subjectName(OSSL_CMP_CTX *ctx, const X509_NAME *name); int OSSL_CMP_CTX_push1_subjectAltName(OSSL_CMP_CTX *ctx, const GENERAL_NAME *name); @@ -477,6 +580,7 @@ int OSSL_CMP_CTX_get_status(const OSSL_CMP_CTX *ctx); OSSL_CMP_PKIFREETEXT *OSSL_CMP_CTX_get0_statusString(const OSSL_CMP_CTX *ctx); int OSSL_CMP_CTX_get_failInfoCode(const OSSL_CMP_CTX *ctx); # define OSSL_CMP_PKISI_BUFLEN 1024 +X509 *OSSL_CMP_CTX_get0_validatedSrvCert(const OSSL_CMP_CTX *ctx); X509 *OSSL_CMP_CTX_get0_newCert(const OSSL_CMP_CTX *ctx); STACK_OF(X509) *OSSL_CMP_CTX_get1_newChain(const OSSL_CMP_CTX *ctx); STACK_OF(X509) *OSSL_CMP_CTX_get1_caPubs(const OSSL_CMP_CTX *ctx); @@ -498,10 +602,13 @@ OSSL_CMP_STATUSINFO_new(int status, int fail_info, const char *text); ASN1_OCTET_STRING *OSSL_CMP_HDR_get0_transactionID(const OSSL_CMP_PKIHEADER *hdr); ASN1_OCTET_STRING *OSSL_CMP_HDR_get0_recipNonce(const OSSL_CMP_PKIHEADER *hdr); +STACK_OF(OSSL_CMP_ITAV) + *OSSL_CMP_HDR_get0_geninfo_ITAVs(const OSSL_CMP_PKIHEADER *hdr); /* from cmp_msg.c */ OSSL_CMP_PKIHEADER *OSSL_CMP_MSG_get0_header(const OSSL_CMP_MSG *msg); int OSSL_CMP_MSG_get_bodytype(const OSSL_CMP_MSG *msg); +X509_PUBKEY *OSSL_CMP_MSG_get0_certreq_publickey(const OSSL_CMP_MSG *msg); int OSSL_CMP_MSG_update_transactionID(OSSL_CMP_CTX *ctx, OSSL_CMP_MSG *msg); int OSSL_CMP_MSG_update_recipNonce(OSSL_CMP_CTX *ctx, OSSL_CMP_MSG *msg); OSSL_CRMF_MSG *OSSL_CMP_CTX_setup_CRM(OSSL_CMP_CTX *ctx, int for_KUR, int rid); @@ -517,8 +624,10 @@ int OSSL_CMP_validate_cert_path(const OSSL_CMP_CTX *ctx, X509_STORE *trusted_store, X509 *cert); /* from cmp_http.c */ +# ifndef OPENSSL_NO_HTTP OSSL_CMP_MSG *OSSL_CMP_MSG_http_perform(OSSL_CMP_CTX *ctx, const OSSL_CMP_MSG *req); +# endif /* from cmp_server.c */ typedef struct ossl_cmp_srv_ctx_st OSSL_CMP_SRV_CTX; @@ -561,6 +670,13 @@ int OSSL_CMP_SRV_CTX_init(OSSL_CMP_SRV_CTX *srv_ctx, void *custom_ctx, OSSL_CMP_SRV_error_cb_t process_error, OSSL_CMP_SRV_certConf_cb_t process_certConf, OSSL_CMP_SRV_pollReq_cb_t process_pollReq); +typedef int (*OSSL_CMP_SRV_delayed_delivery_cb_t)(OSSL_CMP_SRV_CTX *srv_ctx, + const OSSL_CMP_MSG *req); +typedef int (*OSSL_CMP_SRV_clean_transaction_cb_t)(OSSL_CMP_SRV_CTX *srv_ctx, + const ASN1_OCTET_STRING *id); +int OSSL_CMP_SRV_CTX_init_trans(OSSL_CMP_SRV_CTX *srv_ctx, + OSSL_CMP_SRV_delayed_delivery_cb_t delay, + OSSL_CMP_SRV_clean_transaction_cb_t clean); OSSL_CMP_CTX *OSSL_CMP_SRV_CTX_get0_cmp_ctx(const OSSL_CMP_SRV_CTX *srv_ctx); void *OSSL_CMP_SRV_CTX_get0_custom_ctx(const OSSL_CMP_SRV_CTX *srv_ctx); int OSSL_CMP_SRV_CTX_set_send_unprotected_errors(OSSL_CMP_SRV_CTX *srv_ctx, @@ -577,6 +693,8 @@ X509 *OSSL_CMP_exec_certreq(OSSL_CMP_CTX *ctx, int req_type, # define OSSL_CMP_CR 2 # define OSSL_CMP_P10CR 4 # define OSSL_CMP_KUR 7 +# define OSSL_CMP_GENM 21 +# define OSSL_CMP_ERROR 23 # define OSSL_CMP_exec_IR_ses(ctx) \ OSSL_CMP_exec_certreq(ctx, OSSL_CMP_IR, NULL) # define OSSL_CMP_exec_CR_ses(ctx) \ @@ -590,6 +708,18 @@ int OSSL_CMP_try_certreq(OSSL_CMP_CTX *ctx, int req_type, int OSSL_CMP_exec_RR_ses(OSSL_CMP_CTX *ctx); STACK_OF(OSSL_CMP_ITAV) *OSSL_CMP_exec_GENM_ses(OSSL_CMP_CTX *ctx); +/* from cmp_genm.c */ +int OSSL_CMP_get1_caCerts(OSSL_CMP_CTX *ctx, STACK_OF(X509) **out); +int OSSL_CMP_get1_rootCaKeyUpdate(OSSL_CMP_CTX *ctx, + const X509 *oldWithOld, X509 **newWithNew, + X509 **newWithOld, X509 **oldWithNew); +int OSSL_CMP_get1_crlUpdate(OSSL_CMP_CTX *ctx, const X509 *crlcert, + const X509_CRL *last_crl, + X509_CRL **crl); +int OSSL_CMP_get1_certReqTemplate(OSSL_CMP_CTX *ctx, + OSSL_CRMF_CERTTEMPLATE **certTemplate, + OSSL_CMP_ATAVS **keySpec); + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/linux-armv4/no-asm/include/openssl/cms.h b/deps/openssl/config/archs/linux-armv4/no-asm/include/openssl/cms.h index 3b453e6a2187a2..63afab563557b0 100644 --- a/deps/openssl/config/archs/linux-armv4/no-asm/include/openssl/cms.h +++ b/deps/openssl/config/archs/linux-armv4/no-asm/include/openssl/cms.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/cms.h.in * - * Copyright 2008-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2008-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -31,8 +31,10 @@ extern "C" { # endif +typedef struct CMS_EnvelopedData_st CMS_EnvelopedData; typedef struct CMS_ContentInfo_st CMS_ContentInfo; typedef struct CMS_SignerInfo_st CMS_SignerInfo; +typedef struct CMS_SignedData_st CMS_SignedData; typedef struct CMS_CertificateChoices CMS_CertificateChoices; typedef struct CMS_RevocationInfoChoice_st CMS_RevocationInfoChoice; typedef struct CMS_RecipientInfo_st CMS_RecipientInfo; @@ -147,10 +149,14 @@ SKM_DEFINE_STACK_OF_INTERNAL(CMS_RevocationInfoChoice, CMS_RevocationInfoChoice, #define sk_CMS_RevocationInfoChoice_set_cmp_func(sk, cmp) ((sk_CMS_RevocationInfoChoice_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_CMS_RevocationInfoChoice_sk_type(sk), ossl_check_CMS_RevocationInfoChoice_compfunc_type(cmp))) +DECLARE_ASN1_ITEM(CMS_EnvelopedData) +DECLARE_ASN1_ALLOC_FUNCTIONS(CMS_SignedData) DECLARE_ASN1_FUNCTIONS(CMS_ContentInfo) DECLARE_ASN1_FUNCTIONS(CMS_ReceiptRequest) DECLARE_ASN1_PRINT_FUNCTION(CMS_ContentInfo) +DECLARE_ASN1_DUP_FUNCTION(CMS_EnvelopedData) + CMS_ContentInfo *CMS_ContentInfo_new_ex(OSSL_LIB_CTX *libctx, const char *propq); # define CMS_SIGNERINFO_ISSUER_SERIAL 0 @@ -190,6 +196,7 @@ CMS_ContentInfo *CMS_ContentInfo_new_ex(OSSL_LIB_CTX *libctx, const char *propq) # define CMS_ASCIICRLF 0x80000 # define CMS_CADES 0x100000 # define CMS_USE_ORIGINATOR_KEYID 0x200000 +# define CMS_NO_SIGNING_TIME 0x400000 const ASN1_OBJECT *CMS_get0_type(const CMS_ContentInfo *cms); @@ -217,13 +224,16 @@ int SMIME_write_CMS(BIO *bio, CMS_ContentInfo *cms, BIO *data, int flags); int CMS_final(CMS_ContentInfo *cms, BIO *data, BIO *dcont, unsigned int flags); +int CMS_final_digest(CMS_ContentInfo *cms, + const unsigned char *md, unsigned int mdlen, BIO *dcont, + unsigned int flags); CMS_ContentInfo *CMS_sign(X509 *signcert, EVP_PKEY *pkey, STACK_OF(X509) *certs, BIO *data, unsigned int flags); CMS_ContentInfo *CMS_sign_ex(X509 *signcert, EVP_PKEY *pkey, STACK_OF(X509) *certs, BIO *data, - unsigned int flags, OSSL_LIB_CTX *ctx, + unsigned int flags, OSSL_LIB_CTX *libctx, const char *propq); CMS_ContentInfo *CMS_sign_receipt(CMS_SignerInfo *si, @@ -233,27 +243,26 @@ CMS_ContentInfo *CMS_sign_receipt(CMS_SignerInfo *si, int CMS_data(CMS_ContentInfo *cms, BIO *out, unsigned int flags); CMS_ContentInfo *CMS_data_create(BIO *in, unsigned int flags); CMS_ContentInfo *CMS_data_create_ex(BIO *in, unsigned int flags, - OSSL_LIB_CTX *ctx, const char *propq); + OSSL_LIB_CTX *libctx, const char *propq); int CMS_digest_verify(CMS_ContentInfo *cms, BIO *dcont, BIO *out, unsigned int flags); CMS_ContentInfo *CMS_digest_create(BIO *in, const EVP_MD *md, unsigned int flags); CMS_ContentInfo *CMS_digest_create_ex(BIO *in, const EVP_MD *md, - unsigned int flags, OSSL_LIB_CTX *ctx, + unsigned int flags, OSSL_LIB_CTX *libctx, const char *propq); int CMS_EncryptedData_decrypt(CMS_ContentInfo *cms, const unsigned char *key, size_t keylen, BIO *dcont, BIO *out, unsigned int flags); - CMS_ContentInfo *CMS_EncryptedData_encrypt(BIO *in, const EVP_CIPHER *cipher, const unsigned char *key, size_t keylen, unsigned int flags); CMS_ContentInfo *CMS_EncryptedData_encrypt_ex(BIO *in, const EVP_CIPHER *cipher, const unsigned char *key, size_t keylen, unsigned int flags, - OSSL_LIB_CTX *ctx, + OSSL_LIB_CTX *libctx, const char *propq); int CMS_EncryptedData_set1_key(CMS_ContentInfo *cms, const EVP_CIPHER *ciph, @@ -272,7 +281,7 @@ CMS_ContentInfo *CMS_encrypt(STACK_OF(X509) *certs, BIO *in, const EVP_CIPHER *cipher, unsigned int flags); CMS_ContentInfo *CMS_encrypt_ex(STACK_OF(X509) *certs, BIO *in, const EVP_CIPHER *cipher, unsigned int flags, - OSSL_LIB_CTX *ctx, const char *propq); + OSSL_LIB_CTX *libctx, const char *propq); int CMS_decrypt(CMS_ContentInfo *cms, EVP_PKEY *pkey, X509 *cert, BIO *dcont, BIO *out, unsigned int flags); @@ -291,12 +300,16 @@ int CMS_RecipientInfo_type(CMS_RecipientInfo *ri); EVP_PKEY_CTX *CMS_RecipientInfo_get0_pkey_ctx(CMS_RecipientInfo *ri); CMS_ContentInfo *CMS_AuthEnvelopedData_create(const EVP_CIPHER *cipher); CMS_ContentInfo * -CMS_AuthEnvelopedData_create_ex(const EVP_CIPHER *cipher, OSSL_LIB_CTX *ctx, +CMS_AuthEnvelopedData_create_ex(const EVP_CIPHER *cipher, OSSL_LIB_CTX *libctx, const char *propq); CMS_ContentInfo *CMS_EnvelopedData_create(const EVP_CIPHER *cipher); CMS_ContentInfo *CMS_EnvelopedData_create_ex(const EVP_CIPHER *cipher, - OSSL_LIB_CTX *ctx, + OSSL_LIB_CTX *libctx, const char *propq); +BIO *CMS_EnvelopedData_decrypt(CMS_EnvelopedData *env, BIO *detached_data, + EVP_PKEY *pkey, X509 *cert, + ASN1_OCTET_STRING *secret, unsigned int flags, + OSSL_LIB_CTX *libctx, const char *propq); CMS_RecipientInfo *CMS_add1_recipient_cert(CMS_ContentInfo *cms, X509 *recip, unsigned int flags); @@ -385,6 +398,11 @@ ASN1_OCTET_STRING *CMS_SignerInfo_get0_signature(CMS_SignerInfo *si); int CMS_SignerInfo_sign(CMS_SignerInfo *si); int CMS_SignerInfo_verify(CMS_SignerInfo *si); int CMS_SignerInfo_verify_content(CMS_SignerInfo *si, BIO *chain); +BIO *CMS_SignedData_verify(CMS_SignedData *sd, BIO *detached_data, + STACK_OF(X509) *scerts, X509_STORE *store, + STACK_OF(X509) *extra, STACK_OF(X509_CRL) *crls, + unsigned int flags, + OSSL_LIB_CTX *libctx, const char *propq); int CMS_add_smimecap(CMS_SignerInfo *si, STACK_OF(X509_ALGOR) *algs); int CMS_add_simple_smimecap(STACK_OF(X509_ALGOR) **algs, @@ -441,7 +459,7 @@ CMS_ReceiptRequest *CMS_ReceiptRequest_create0_ex( unsigned char *id, int idlen, int allorfirst, STACK_OF(GENERAL_NAMES) *receiptList, STACK_OF(GENERAL_NAMES) *receiptsTo, - OSSL_LIB_CTX *ctx); + OSSL_LIB_CTX *libctx); int CMS_add1_ReceiptRequest(CMS_SignerInfo *si, CMS_ReceiptRequest *rr); void CMS_ReceiptRequest_get0_values(CMS_ReceiptRequest *rr, diff --git a/deps/openssl/config/archs/linux-armv4/no-asm/include/openssl/comp.h b/deps/openssl/config/archs/linux-armv4/no-asm/include/openssl/comp.h new file mode 100644 index 00000000000000..90e39511fe8d28 --- /dev/null +++ b/deps/openssl/config/archs/linux-armv4/no-asm/include/openssl/comp.h @@ -0,0 +1,98 @@ +/* + * Copyright 2015-2024 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + + +#ifndef OPENSSL_COMP_H +# define OPENSSL_COMP_H +# pragma once + +# include +# ifndef OPENSSL_NO_DEPRECATED_3_0 +# define HEADER_COMP_H +# endif + +# include + +# include +# include +# ifdef __cplusplus +extern "C" { +# endif + + + +# ifndef OPENSSL_NO_COMP + +COMP_CTX *COMP_CTX_new(COMP_METHOD *meth); +const COMP_METHOD *COMP_CTX_get_method(const COMP_CTX *ctx); +int COMP_CTX_get_type(const COMP_CTX* comp); +int COMP_get_type(const COMP_METHOD *meth); +const char *COMP_get_name(const COMP_METHOD *meth); +void COMP_CTX_free(COMP_CTX *ctx); + +int COMP_compress_block(COMP_CTX *ctx, unsigned char *out, int olen, + unsigned char *in, int ilen); +int COMP_expand_block(COMP_CTX *ctx, unsigned char *out, int olen, + unsigned char *in, int ilen); + +COMP_METHOD *COMP_zlib(void); +COMP_METHOD *COMP_zlib_oneshot(void); +COMP_METHOD *COMP_brotli(void); +COMP_METHOD *COMP_brotli_oneshot(void); +COMP_METHOD *COMP_zstd(void); +COMP_METHOD *COMP_zstd_oneshot(void); + +# ifndef OPENSSL_NO_DEPRECATED_1_1_0 +# define COMP_zlib_cleanup() while(0) continue +# endif + +# ifdef OPENSSL_BIO_H +const BIO_METHOD *BIO_f_zlib(void); +const BIO_METHOD *BIO_f_brotli(void); +const BIO_METHOD *BIO_f_zstd(void); +# endif + +# endif + +typedef struct ssl_comp_st SSL_COMP; + +SKM_DEFINE_STACK_OF_INTERNAL(SSL_COMP, SSL_COMP, SSL_COMP) +#define sk_SSL_COMP_num(sk) OPENSSL_sk_num(ossl_check_const_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_value(sk, idx) ((SSL_COMP *)OPENSSL_sk_value(ossl_check_const_SSL_COMP_sk_type(sk), (idx))) +#define sk_SSL_COMP_new(cmp) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new(ossl_check_SSL_COMP_compfunc_type(cmp))) +#define sk_SSL_COMP_new_null() ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new_null()) +#define sk_SSL_COMP_new_reserve(cmp, n) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new_reserve(ossl_check_SSL_COMP_compfunc_type(cmp), (n))) +#define sk_SSL_COMP_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_SSL_COMP_sk_type(sk), (n)) +#define sk_SSL_COMP_free(sk) OPENSSL_sk_free(ossl_check_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_zero(sk) OPENSSL_sk_zero(ossl_check_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_delete(sk, i) ((SSL_COMP *)OPENSSL_sk_delete(ossl_check_SSL_COMP_sk_type(sk), (i))) +#define sk_SSL_COMP_delete_ptr(sk, ptr) ((SSL_COMP *)OPENSSL_sk_delete_ptr(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr))) +#define sk_SSL_COMP_push(sk, ptr) OPENSSL_sk_push(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) +#define sk_SSL_COMP_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) +#define sk_SSL_COMP_pop(sk) ((SSL_COMP *)OPENSSL_sk_pop(ossl_check_SSL_COMP_sk_type(sk))) +#define sk_SSL_COMP_shift(sk) ((SSL_COMP *)OPENSSL_sk_shift(ossl_check_SSL_COMP_sk_type(sk))) +#define sk_SSL_COMP_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_SSL_COMP_sk_type(sk),ossl_check_SSL_COMP_freefunc_type(freefunc)) +#define sk_SSL_COMP_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr), (idx)) +#define sk_SSL_COMP_set(sk, idx, ptr) ((SSL_COMP *)OPENSSL_sk_set(ossl_check_SSL_COMP_sk_type(sk), (idx), ossl_check_SSL_COMP_type(ptr))) +#define sk_SSL_COMP_find(sk, ptr) OPENSSL_sk_find(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) +#define sk_SSL_COMP_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) +#define sk_SSL_COMP_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr), pnum) +#define sk_SSL_COMP_sort(sk) OPENSSL_sk_sort(ossl_check_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_dup(sk) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_dup(ossl_check_const_SSL_COMP_sk_type(sk))) +#define sk_SSL_COMP_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_deep_copy(ossl_check_const_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_copyfunc_type(copyfunc), ossl_check_SSL_COMP_freefunc_type(freefunc))) +#define sk_SSL_COMP_set_cmp_func(sk, cmp) ((sk_SSL_COMP_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_compfunc_type(cmp))) + + + +# ifdef __cplusplus +} +# endif +#endif diff --git a/deps/openssl/config/archs/linux-armv4/no-asm/include/openssl/conf.h b/deps/openssl/config/archs/linux-armv4/no-asm/include/openssl/conf.h index 44989929f6c84a..38576290bf641b 100644 --- a/deps/openssl/config/archs/linux-armv4/no-asm/include/openssl/conf.h +++ b/deps/openssl/config/archs/linux-armv4/no-asm/include/openssl/conf.h @@ -27,6 +27,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -65,7 +68,7 @@ SKM_DEFINE_STACK_OF_INTERNAL(CONF_VALUE, CONF_VALUE, CONF_VALUE) #define sk_CONF_VALUE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(CONF_VALUE) *)OPENSSL_sk_deep_copy(ossl_check_const_CONF_VALUE_sk_type(sk), ossl_check_CONF_VALUE_copyfunc_type(copyfunc), ossl_check_CONF_VALUE_freefunc_type(freefunc))) #define sk_CONF_VALUE_set_cmp_func(sk, cmp) ((sk_CONF_VALUE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_CONF_VALUE_sk_type(sk), ossl_check_CONF_VALUE_compfunc_type(cmp))) DEFINE_LHASH_OF_INTERNAL(CONF_VALUE); -#define lh_CONF_VALUE_new(hfn, cmp) ((LHASH_OF(CONF_VALUE) *)OPENSSL_LH_new(ossl_check_CONF_VALUE_lh_hashfunc_type(hfn), ossl_check_CONF_VALUE_lh_compfunc_type(cmp))) +#define lh_CONF_VALUE_new(hfn, cmp) ((LHASH_OF(CONF_VALUE) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new(ossl_check_CONF_VALUE_lh_hashfunc_type(hfn), ossl_check_CONF_VALUE_lh_compfunc_type(cmp)), lh_CONF_VALUE_hash_thunk, lh_CONF_VALUE_comp_thunk, lh_CONF_VALUE_doall_thunk, lh_CONF_VALUE_doall_arg_thunk)) #define lh_CONF_VALUE_free(lh) OPENSSL_LH_free(ossl_check_CONF_VALUE_lh_type(lh)) #define lh_CONF_VALUE_flush(lh) OPENSSL_LH_flush(ossl_check_CONF_VALUE_lh_type(lh)) #define lh_CONF_VALUE_insert(lh, ptr) ((CONF_VALUE *)OPENSSL_LH_insert(ossl_check_CONF_VALUE_lh_type(lh), ossl_check_CONF_VALUE_lh_plain_type(ptr))) diff --git a/deps/openssl/config/archs/linux-armv4/no-asm/include/openssl/configuration.h b/deps/openssl/config/archs/linux-armv4/no-asm/include/openssl/configuration.h index 5aa5b60a0e1f12..788ba3719c5dad 100644 --- a/deps/openssl/config/archs/linux-armv4/no-asm/include/openssl/configuration.h +++ b/deps/openssl/config/archs/linux-armv4/no-asm/include/openssl/configuration.h @@ -27,7 +27,7 @@ extern "C" { * OpenSSL was configured with the following options: */ -# define OPENSSL_CONFIGURED_API 30000 +# define OPENSSL_CONFIGURED_API 30500 # ifndef OPENSSL_RAND_SEED_OS # define OPENSSL_RAND_SEED_OS # endif @@ -43,6 +43,12 @@ extern "C" { # ifndef OPENSSL_NO_ASM # define OPENSSL_NO_ASM # endif +# ifndef OPENSSL_NO_BROTLI +# define OPENSSL_NO_BROTLI +# endif +# ifndef OPENSSL_NO_BROTLI_DYNAMIC +# define OPENSSL_NO_BROTLI_DYNAMIC +# endif # ifndef OPENSSL_NO_COMP # define OPENSSL_NO_COMP # endif @@ -52,6 +58,9 @@ extern "C" { # ifndef OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE # define OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE # endif +# ifndef OPENSSL_NO_DEMOS +# define OPENSSL_NO_DEMOS +# endif # ifndef OPENSSL_NO_DEVCRYPTOENG # define OPENSSL_NO_DEVCRYPTOENG # endif @@ -64,12 +73,24 @@ extern "C" { # ifndef OPENSSL_NO_EXTERNAL_TESTS # define OPENSSL_NO_EXTERNAL_TESTS # endif +# ifndef OPENSSL_NO_FIPS_JITTER +# define OPENSSL_NO_FIPS_JITTER +# endif # ifndef OPENSSL_NO_FUZZ_AFL # define OPENSSL_NO_FUZZ_AFL # endif # ifndef OPENSSL_NO_FUZZ_LIBFUZZER # define OPENSSL_NO_FUZZ_LIBFUZZER # endif +# ifndef OPENSSL_NO_H3DEMO +# define OPENSSL_NO_H3DEMO +# endif +# ifndef OPENSSL_NO_HQINTEROP +# define OPENSSL_NO_HQINTEROP +# endif +# ifndef OPENSSL_NO_JITTER +# define OPENSSL_NO_JITTER +# endif # ifndef OPENSSL_NO_KTLS # define OPENSSL_NO_KTLS # endif @@ -82,6 +103,9 @@ extern "C" { # ifndef OPENSSL_NO_MSAN # define OPENSSL_NO_MSAN # endif +# ifndef OPENSSL_NO_PIE +# define OPENSSL_NO_PIE +# endif # ifndef OPENSSL_NO_RC5 # define OPENSSL_NO_RC5 # endif @@ -94,6 +118,12 @@ extern "C" { # ifndef OPENSSL_NO_SSL3_METHOD # define OPENSSL_NO_SSL3_METHOD # endif +# ifndef OPENSSL_NO_SSLKEYLOG +# define OPENSSL_NO_SSLKEYLOG +# endif +# ifndef OPENSSL_NO_TFO +# define OPENSSL_NO_TFO +# endif # ifndef OPENSSL_NO_TRACE # define OPENSSL_NO_TRACE # endif @@ -109,6 +139,21 @@ extern "C" { # ifndef OPENSSL_NO_WEAK_SSL_CIPHERS # define OPENSSL_NO_WEAK_SSL_CIPHERS # endif +# ifndef OPENSSL_NO_WINSTORE +# define OPENSSL_NO_WINSTORE +# endif +# ifndef OPENSSL_NO_ZLIB +# define OPENSSL_NO_ZLIB +# endif +# ifndef OPENSSL_NO_ZLIB_DYNAMIC +# define OPENSSL_NO_ZLIB_DYNAMIC +# endif +# ifndef OPENSSL_NO_ZSTD +# define OPENSSL_NO_ZSTD +# endif +# ifndef OPENSSL_NO_ZSTD_DYNAMIC +# define OPENSSL_NO_ZSTD_DYNAMIC +# endif # ifndef OPENSSL_NO_DYNAMIC_ENGINE # define OPENSSL_NO_DYNAMIC_ENGINE # endif @@ -130,6 +175,12 @@ extern "C" { # define RC4_INT unsigned char +# if defined(OPENSSL_NO_COMP) || (defined(OPENSSL_NO_BROTLI) && defined(OPENSSL_NO_ZSTD) && defined(OPENSSL_NO_ZLIB)) +# define OPENSSL_NO_COMP_ALG +# else +# undef OPENSSL_NO_COMP_ALG +# endif + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/linux-armv4/no-asm/include/openssl/core_names.h b/deps/openssl/config/archs/linux-armv4/no-asm/include/openssl/core_names.h new file mode 100644 index 00000000000000..e93e79a52bc910 --- /dev/null +++ b/deps/openssl/config/archs/linux-armv4/no-asm/include/openssl/core_names.h @@ -0,0 +1,575 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from include/openssl/core_names.h.in + * + * Copyright 2019-2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + +#ifndef OPENSSL_CORE_NAMES_H +# define OPENSSL_CORE_NAMES_H +# pragma once + +# ifdef __cplusplus +extern "C" { +# endif + +/* OSSL_CIPHER_PARAM_CTS_MODE Values */ +# define OSSL_CIPHER_CTS_MODE_CS1 "CS1" +# define OSSL_CIPHER_CTS_MODE_CS2 "CS2" +# define OSSL_CIPHER_CTS_MODE_CS3 "CS3" + +/* Known CIPHER names (not a complete list) */ +# define OSSL_CIPHER_NAME_AES_128_GCM_SIV "AES-128-GCM-SIV" +# define OSSL_CIPHER_NAME_AES_192_GCM_SIV "AES-192-GCM-SIV" +# define OSSL_CIPHER_NAME_AES_256_GCM_SIV "AES-256-GCM-SIV" + +/* Known DIGEST names (not a complete list) */ +# define OSSL_DIGEST_NAME_MD5 "MD5" +# define OSSL_DIGEST_NAME_MD5_SHA1 "MD5-SHA1" +# define OSSL_DIGEST_NAME_SHA1 "SHA1" +# define OSSL_DIGEST_NAME_SHA2_224 "SHA2-224" +# define OSSL_DIGEST_NAME_SHA2_256 "SHA2-256" +# define OSSL_DIGEST_NAME_SHA2_256_192 "SHA2-256/192" +# define OSSL_DIGEST_NAME_SHA2_384 "SHA2-384" +# define OSSL_DIGEST_NAME_SHA2_512 "SHA2-512" +# define OSSL_DIGEST_NAME_SHA2_512_224 "SHA2-512/224" +# define OSSL_DIGEST_NAME_SHA2_512_256 "SHA2-512/256" +# define OSSL_DIGEST_NAME_MD2 "MD2" +# define OSSL_DIGEST_NAME_MD4 "MD4" +# define OSSL_DIGEST_NAME_MDC2 "MDC2" +# define OSSL_DIGEST_NAME_RIPEMD160 "RIPEMD160" +# define OSSL_DIGEST_NAME_SHA3_224 "SHA3-224" +# define OSSL_DIGEST_NAME_SHA3_256 "SHA3-256" +# define OSSL_DIGEST_NAME_SHA3_384 "SHA3-384" +# define OSSL_DIGEST_NAME_SHA3_512 "SHA3-512" +# define OSSL_DIGEST_NAME_KECCAK_KMAC128 "KECCAK-KMAC-128" +# define OSSL_DIGEST_NAME_KECCAK_KMAC256 "KECCAK-KMAC-256" +# define OSSL_DIGEST_NAME_SM3 "SM3" + +/* Known MAC names */ +# define OSSL_MAC_NAME_BLAKE2BMAC "BLAKE2BMAC" +# define OSSL_MAC_NAME_BLAKE2SMAC "BLAKE2SMAC" +# define OSSL_MAC_NAME_CMAC "CMAC" +# define OSSL_MAC_NAME_GMAC "GMAC" +# define OSSL_MAC_NAME_HMAC "HMAC" +# define OSSL_MAC_NAME_KMAC128 "KMAC128" +# define OSSL_MAC_NAME_KMAC256 "KMAC256" +# define OSSL_MAC_NAME_POLY1305 "POLY1305" +# define OSSL_MAC_NAME_SIPHASH "SIPHASH" + +/* Known KDF names */ +# define OSSL_KDF_NAME_HKDF "HKDF" +# define OSSL_KDF_NAME_TLS1_3_KDF "TLS13-KDF" +# define OSSL_KDF_NAME_PBKDF1 "PBKDF1" +# define OSSL_KDF_NAME_PBKDF2 "PBKDF2" +# define OSSL_KDF_NAME_SCRYPT "SCRYPT" +# define OSSL_KDF_NAME_SSHKDF "SSHKDF" +# define OSSL_KDF_NAME_SSKDF "SSKDF" +# define OSSL_KDF_NAME_TLS1_PRF "TLS1-PRF" +# define OSSL_KDF_NAME_X942KDF_ASN1 "X942KDF-ASN1" +# define OSSL_KDF_NAME_X942KDF_CONCAT "X942KDF-CONCAT" +# define OSSL_KDF_NAME_X963KDF "X963KDF" +# define OSSL_KDF_NAME_KBKDF "KBKDF" +# define OSSL_KDF_NAME_KRB5KDF "KRB5KDF" +# define OSSL_KDF_NAME_HMACDRBGKDF "HMAC-DRBG-KDF" + +/* RSA padding modes */ +# define OSSL_PKEY_RSA_PAD_MODE_NONE "none" +# define OSSL_PKEY_RSA_PAD_MODE_PKCSV15 "pkcs1" +# define OSSL_PKEY_RSA_PAD_MODE_OAEP "oaep" +# define OSSL_PKEY_RSA_PAD_MODE_X931 "x931" +# define OSSL_PKEY_RSA_PAD_MODE_PSS "pss" + +/* RSA pss padding salt length */ +# define OSSL_PKEY_RSA_PSS_SALT_LEN_DIGEST "digest" +# define OSSL_PKEY_RSA_PSS_SALT_LEN_MAX "max" +# define OSSL_PKEY_RSA_PSS_SALT_LEN_AUTO "auto" +# define OSSL_PKEY_RSA_PSS_SALT_LEN_AUTO_DIGEST_MAX "auto-digestmax" + +/* OSSL_PKEY_PARAM_EC_ENCODING values */ +# define OSSL_PKEY_EC_ENCODING_EXPLICIT "explicit" +# define OSSL_PKEY_EC_ENCODING_GROUP "named_curve" + +# define OSSL_PKEY_EC_POINT_CONVERSION_FORMAT_UNCOMPRESSED "uncompressed" +# define OSSL_PKEY_EC_POINT_CONVERSION_FORMAT_COMPRESSED "compressed" +# define OSSL_PKEY_EC_POINT_CONVERSION_FORMAT_HYBRID "hybrid" + +# define OSSL_PKEY_EC_GROUP_CHECK_DEFAULT "default" +# define OSSL_PKEY_EC_GROUP_CHECK_NAMED "named" +# define OSSL_PKEY_EC_GROUP_CHECK_NAMED_NIST "named-nist" + +/* PROV_SKEY well known key types */ +# define OSSL_SKEY_TYPE_GENERIC "GENERIC-SECRET" +# define OSSL_SKEY_TYPE_AES "AES" + +/* OSSL_KEM_PARAM_OPERATION values */ +#define OSSL_KEM_PARAM_OPERATION_RSASVE "RSASVE" +#define OSSL_KEM_PARAM_OPERATION_DHKEM "DHKEM" + +/* Provider configuration variables */ +#define OSSL_PKEY_RETAIN_SEED "pkey_retain_seed" + +/* Parameter name definitions - generated by util/perl/OpenSSL/paramnames.pm */ +# define OSSL_ALG_PARAM_ALGORITHM_ID "algorithm-id" +# define OSSL_ALG_PARAM_ALGORITHM_ID_PARAMS "algorithm-id-params" +# define OSSL_ALG_PARAM_CIPHER "cipher" +# define OSSL_ALG_PARAM_DIGEST "digest" +# define OSSL_ALG_PARAM_ENGINE "engine" +# define OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR "fips-indicator" +# define OSSL_ALG_PARAM_MAC "mac" +# define OSSL_ALG_PARAM_PROPERTIES "properties" +# define OSSL_ASYM_CIPHER_PARAM_DIGEST OSSL_PKEY_PARAM_DIGEST +# define OSSL_ASYM_CIPHER_PARAM_ENGINE OSSL_PKEY_PARAM_ENGINE +# define OSSL_ASYM_CIPHER_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_ASYM_CIPHER_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_ASYM_CIPHER_PARAM_FIPS_RSA_PKCS15_PAD_DISABLED OSSL_PROV_PARAM_RSA_PKCS15_PAD_DISABLED +# define OSSL_ASYM_CIPHER_PARAM_IMPLICIT_REJECTION "implicit-rejection" +# define OSSL_ASYM_CIPHER_PARAM_MGF1_DIGEST OSSL_PKEY_PARAM_MGF1_DIGEST +# define OSSL_ASYM_CIPHER_PARAM_MGF1_DIGEST_PROPS OSSL_PKEY_PARAM_MGF1_PROPERTIES +# define OSSL_ASYM_CIPHER_PARAM_OAEP_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_ASYM_CIPHER_PARAM_OAEP_DIGEST_PROPS "digest-props" +# define OSSL_ASYM_CIPHER_PARAM_OAEP_LABEL "oaep-label" +# define OSSL_ASYM_CIPHER_PARAM_PAD_MODE OSSL_PKEY_PARAM_PAD_MODE +# define OSSL_ASYM_CIPHER_PARAM_PROPERTIES OSSL_PKEY_PARAM_PROPERTIES +# define OSSL_ASYM_CIPHER_PARAM_TLS_CLIENT_VERSION "tls-client-version" +# define OSSL_ASYM_CIPHER_PARAM_TLS_NEGOTIATED_VERSION "tls-negotiated-version" +# define OSSL_CAPABILITY_TLS_GROUP_ALG "tls-group-alg" +# define OSSL_CAPABILITY_TLS_GROUP_ID "tls-group-id" +# define OSSL_CAPABILITY_TLS_GROUP_IS_KEM "tls-group-is-kem" +# define OSSL_CAPABILITY_TLS_GROUP_MAX_DTLS "tls-max-dtls" +# define OSSL_CAPABILITY_TLS_GROUP_MAX_TLS "tls-max-tls" +# define OSSL_CAPABILITY_TLS_GROUP_MIN_DTLS "tls-min-dtls" +# define OSSL_CAPABILITY_TLS_GROUP_MIN_TLS "tls-min-tls" +# define OSSL_CAPABILITY_TLS_GROUP_NAME "tls-group-name" +# define OSSL_CAPABILITY_TLS_GROUP_NAME_INTERNAL "tls-group-name-internal" +# define OSSL_CAPABILITY_TLS_GROUP_SECURITY_BITS "tls-group-sec-bits" +# define OSSL_CAPABILITY_TLS_SIGALG_CODE_POINT "tls-sigalg-code-point" +# define OSSL_CAPABILITY_TLS_SIGALG_HASH_NAME "tls-sigalg-hash-name" +# define OSSL_CAPABILITY_TLS_SIGALG_HASH_OID "tls-sigalg-hash-oid" +# define OSSL_CAPABILITY_TLS_SIGALG_IANA_NAME "tls-sigalg-iana-name" +# define OSSL_CAPABILITY_TLS_SIGALG_KEYTYPE "tls-sigalg-keytype" +# define OSSL_CAPABILITY_TLS_SIGALG_KEYTYPE_OID "tls-sigalg-keytype-oid" +# define OSSL_CAPABILITY_TLS_SIGALG_MAX_DTLS "tls-max-dtls" +# define OSSL_CAPABILITY_TLS_SIGALG_MAX_TLS "tls-max-tls" +# define OSSL_CAPABILITY_TLS_SIGALG_MIN_DTLS "tls-min-dtls" +# define OSSL_CAPABILITY_TLS_SIGALG_MIN_TLS "tls-min-tls" +# define OSSL_CAPABILITY_TLS_SIGALG_NAME "tls-sigalg-name" +# define OSSL_CAPABILITY_TLS_SIGALG_OID "tls-sigalg-oid" +# define OSSL_CAPABILITY_TLS_SIGALG_SECURITY_BITS "tls-sigalg-sec-bits" +# define OSSL_CAPABILITY_TLS_SIGALG_SIG_NAME "tls-sigalg-sig-name" +# define OSSL_CAPABILITY_TLS_SIGALG_SIG_OID "tls-sigalg-sig-oid" +# define OSSL_CIPHER_PARAM_AEAD "aead" +# define OSSL_CIPHER_PARAM_AEAD_IVLEN OSSL_CIPHER_PARAM_IVLEN +# define OSSL_CIPHER_PARAM_AEAD_IV_GENERATED "iv-generated" +# define OSSL_CIPHER_PARAM_AEAD_MAC_KEY "mackey" +# define OSSL_CIPHER_PARAM_AEAD_TAG "tag" +# define OSSL_CIPHER_PARAM_AEAD_TAGLEN "taglen" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_AAD "tlsaad" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_AAD_PAD "tlsaadpad" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_GET_IV_GEN "tlsivgen" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_IV_FIXED "tlsivfixed" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_SET_IV_INV "tlsivinv" +# define OSSL_CIPHER_PARAM_ALGORITHM_ID OSSL_ALG_PARAM_ALGORITHM_ID +# define OSSL_CIPHER_PARAM_ALGORITHM_ID_PARAMS OSSL_ALG_PARAM_ALGORITHM_ID_PARAMS +# define OSSL_CIPHER_PARAM_ALGORITHM_ID_PARAMS_OLD "alg_id_param" +# define OSSL_CIPHER_PARAM_BLOCK_SIZE "blocksize" +# define OSSL_CIPHER_PARAM_CTS "cts" +# define OSSL_CIPHER_PARAM_CTS_MODE "cts_mode" +# define OSSL_CIPHER_PARAM_CUSTOM_IV "custom-iv" +# define OSSL_CIPHER_PARAM_DECRYPT_ONLY "decrypt-only" +# define OSSL_CIPHER_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_CIPHER_PARAM_FIPS_ENCRYPT_CHECK "encrypt-check" +# define OSSL_CIPHER_PARAM_HAS_RAND_KEY "has-randkey" +# define OSSL_CIPHER_PARAM_IV "iv" +# define OSSL_CIPHER_PARAM_IVLEN "ivlen" +# define OSSL_CIPHER_PARAM_KEYLEN "keylen" +# define OSSL_CIPHER_PARAM_MODE "mode" +# define OSSL_CIPHER_PARAM_NUM "num" +# define OSSL_CIPHER_PARAM_PADDING "padding" +# define OSSL_CIPHER_PARAM_PIPELINE_AEAD_TAG "pipeline-tag" +# define OSSL_CIPHER_PARAM_RANDOM_KEY "randkey" +# define OSSL_CIPHER_PARAM_RC2_KEYBITS "keybits" +# define OSSL_CIPHER_PARAM_ROUNDS "rounds" +# define OSSL_CIPHER_PARAM_SPEED "speed" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK "tls-multi" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD "tls1multi_aad" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD_PACKLEN "tls1multi_aadpacklen" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC "tls1multi_enc" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_IN "tls1multi_encin" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_LEN "tls1multi_enclen" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_INTERLEAVE "tls1multi_interleave" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_BUFSIZE "tls1multi_maxbufsz" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_SEND_FRAGMENT "tls1multi_maxsndfrag" +# define OSSL_CIPHER_PARAM_TLS_MAC "tls-mac" +# define OSSL_CIPHER_PARAM_TLS_MAC_SIZE "tls-mac-size" +# define OSSL_CIPHER_PARAM_TLS_VERSION "tls-version" +# define OSSL_CIPHER_PARAM_UPDATED_IV "updated-iv" +# define OSSL_CIPHER_PARAM_USE_BITS "use-bits" +# define OSSL_CIPHER_PARAM_XTS_STANDARD "xts_standard" +# define OSSL_DECODER_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_DIGEST_PARAM_ALGID_ABSENT "algid-absent" +# define OSSL_DIGEST_PARAM_BLOCK_SIZE "blocksize" +# define OSSL_DIGEST_PARAM_MICALG "micalg" +# define OSSL_DIGEST_PARAM_PAD_TYPE "pad-type" +# define OSSL_DIGEST_PARAM_SIZE "size" +# define OSSL_DIGEST_PARAM_SSL3_MS "ssl3-ms" +# define OSSL_DIGEST_PARAM_XOF "xof" +# define OSSL_DIGEST_PARAM_XOFLEN "xoflen" +# define OSSL_DRBG_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_DRBG_PARAM_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_DRBG_PARAM_ENTROPY_REQUIRED "entropy_required" +# define OSSL_DRBG_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_DRBG_PARAM_FIPS_DIGEST_CHECK OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK +# define OSSL_DRBG_PARAM_MAC OSSL_ALG_PARAM_MAC +# define OSSL_DRBG_PARAM_MAX_ADINLEN "max_adinlen" +# define OSSL_DRBG_PARAM_MAX_ENTROPYLEN "max_entropylen" +# define OSSL_DRBG_PARAM_MAX_LENGTH "maxium_length" +# define OSSL_DRBG_PARAM_MAX_NONCELEN "max_noncelen" +# define OSSL_DRBG_PARAM_MAX_PERSLEN "max_perslen" +# define OSSL_DRBG_PARAM_MIN_ENTROPYLEN "min_entropylen" +# define OSSL_DRBG_PARAM_MIN_LENGTH "minium_length" +# define OSSL_DRBG_PARAM_MIN_NONCELEN "min_noncelen" +# define OSSL_DRBG_PARAM_PREDICTION_RESISTANCE "prediction_resistance" +# define OSSL_DRBG_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_DRBG_PARAM_RANDOM_DATA "random_data" +# define OSSL_DRBG_PARAM_RESEED_COUNTER "reseed_counter" +# define OSSL_DRBG_PARAM_RESEED_REQUESTS "reseed_requests" +# define OSSL_DRBG_PARAM_RESEED_TIME "reseed_time" +# define OSSL_DRBG_PARAM_RESEED_TIME_INTERVAL "reseed_time_interval" +# define OSSL_DRBG_PARAM_SIZE "size" +# define OSSL_DRBG_PARAM_USE_DF "use_derivation_function" +# define OSSL_ENCODER_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_ENCODER_PARAM_ENCRYPT_LEVEL "encrypt-level" +# define OSSL_ENCODER_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_ENCODER_PARAM_SAVE_PARAMETERS "save-parameters" +# define OSSL_EXCHANGE_PARAM_EC_ECDH_COFACTOR_MODE "ecdh-cofactor-mode" +# define OSSL_EXCHANGE_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_EXCHANGE_PARAM_FIPS_DIGEST_CHECK OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK +# define OSSL_EXCHANGE_PARAM_FIPS_ECDH_COFACTOR_CHECK OSSL_PROV_PARAM_ECDH_COFACTOR_CHECK +# define OSSL_EXCHANGE_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_EXCHANGE_PARAM_KDF_DIGEST "kdf-digest" +# define OSSL_EXCHANGE_PARAM_KDF_DIGEST_PROPS "kdf-digest-props" +# define OSSL_EXCHANGE_PARAM_KDF_OUTLEN "kdf-outlen" +# define OSSL_EXCHANGE_PARAM_KDF_TYPE "kdf-type" +# define OSSL_EXCHANGE_PARAM_KDF_UKM "kdf-ukm" +# define OSSL_EXCHANGE_PARAM_PAD "pad" +# define OSSL_GEN_PARAM_ITERATION "iteration" +# define OSSL_GEN_PARAM_POTENTIAL "potential" +# define OSSL_KDF_PARAM_ARGON2_AD "ad" +# define OSSL_KDF_PARAM_ARGON2_LANES "lanes" +# define OSSL_KDF_PARAM_ARGON2_MEMCOST "memcost" +# define OSSL_KDF_PARAM_ARGON2_VERSION "version" +# define OSSL_KDF_PARAM_CEK_ALG "cekalg" +# define OSSL_KDF_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_KDF_PARAM_CONSTANT "constant" +# define OSSL_KDF_PARAM_DATA "data" +# define OSSL_KDF_PARAM_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_KDF_PARAM_EARLY_CLEAN "early_clean" +# define OSSL_KDF_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_KDF_PARAM_FIPS_DIGEST_CHECK OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK +# define OSSL_KDF_PARAM_FIPS_EMS_CHECK "ems_check" +# define OSSL_KDF_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_KDF_PARAM_HMACDRBG_ENTROPY "entropy" +# define OSSL_KDF_PARAM_HMACDRBG_NONCE "nonce" +# define OSSL_KDF_PARAM_INFO "info" +# define OSSL_KDF_PARAM_ITER "iter" +# define OSSL_KDF_PARAM_KBKDF_R "r" +# define OSSL_KDF_PARAM_KBKDF_USE_L "use-l" +# define OSSL_KDF_PARAM_KBKDF_USE_SEPARATOR "use-separator" +# define OSSL_KDF_PARAM_KEY "key" +# define OSSL_KDF_PARAM_LABEL "label" +# define OSSL_KDF_PARAM_MAC OSSL_ALG_PARAM_MAC +# define OSSL_KDF_PARAM_MAC_SIZE "maclen" +# define OSSL_KDF_PARAM_MODE "mode" +# define OSSL_KDF_PARAM_PASSWORD "pass" +# define OSSL_KDF_PARAM_PKCS12_ID "id" +# define OSSL_KDF_PARAM_PKCS5 "pkcs5" +# define OSSL_KDF_PARAM_PREFIX "prefix" +# define OSSL_KDF_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_KDF_PARAM_SALT "salt" +# define OSSL_KDF_PARAM_SCRYPT_MAXMEM "maxmem_bytes" +# define OSSL_KDF_PARAM_SCRYPT_N "n" +# define OSSL_KDF_PARAM_SCRYPT_P "p" +# define OSSL_KDF_PARAM_SCRYPT_R "r" +# define OSSL_KDF_PARAM_SECRET "secret" +# define OSSL_KDF_PARAM_SEED "seed" +# define OSSL_KDF_PARAM_SIZE "size" +# define OSSL_KDF_PARAM_SSHKDF_SESSION_ID "session_id" +# define OSSL_KDF_PARAM_SSHKDF_TYPE "type" +# define OSSL_KDF_PARAM_SSHKDF_XCGHASH "xcghash" +# define OSSL_KDF_PARAM_THREADS "threads" +# define OSSL_KDF_PARAM_UKM "ukm" +# define OSSL_KDF_PARAM_X942_ACVPINFO "acvp-info" +# define OSSL_KDF_PARAM_X942_PARTYUINFO "partyu-info" +# define OSSL_KDF_PARAM_X942_PARTYVINFO "partyv-info" +# define OSSL_KDF_PARAM_X942_SUPP_PRIVINFO "supp-privinfo" +# define OSSL_KDF_PARAM_X942_SUPP_PUBINFO "supp-pubinfo" +# define OSSL_KDF_PARAM_X942_USE_KEYBITS "use-keybits" +# define OSSL_KEM_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_KEM_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_KEM_PARAM_IKME "ikme" +# define OSSL_KEM_PARAM_OPERATION "operation" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_BLOCK_PADDING "block_padding" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_HS_PADDING "hs_padding" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_MAX_EARLY_DATA "max_early_data" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_MAX_FRAG_LEN "max_frag_len" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_MODE "mode" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_OPTIONS "options" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_READ_AHEAD "read_ahead" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_STREAM_MAC "stream_mac" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_TLSTREE "tlstree" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_USE_ETM "use_etm" +# define OSSL_LIBSSL_RECORD_LAYER_READ_BUFFER_LEN "read_buffer_len" +# define OSSL_MAC_PARAM_BLOCK_SIZE "block-size" +# define OSSL_MAC_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_MAC_PARAM_CUSTOM "custom" +# define OSSL_MAC_PARAM_C_ROUNDS "c-rounds" +# define OSSL_MAC_PARAM_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_MAC_PARAM_DIGEST_NOINIT "digest-noinit" +# define OSSL_MAC_PARAM_DIGEST_ONESHOT "digest-oneshot" +# define OSSL_MAC_PARAM_D_ROUNDS "d-rounds" +# define OSSL_MAC_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_MAC_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_MAC_PARAM_FIPS_NO_SHORT_MAC OSSL_PROV_PARAM_NO_SHORT_MAC +# define OSSL_MAC_PARAM_IV "iv" +# define OSSL_MAC_PARAM_KEY "key" +# define OSSL_MAC_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_MAC_PARAM_SALT "salt" +# define OSSL_MAC_PARAM_SIZE "size" +# define OSSL_MAC_PARAM_TLS_DATA_SIZE "tls-data-size" +# define OSSL_MAC_PARAM_XOF "xof" +# define OSSL_OBJECT_PARAM_DATA "data" +# define OSSL_OBJECT_PARAM_DATA_STRUCTURE "data-structure" +# define OSSL_OBJECT_PARAM_DATA_TYPE "data-type" +# define OSSL_OBJECT_PARAM_DESC "desc" +# define OSSL_OBJECT_PARAM_INPUT_TYPE "input-type" +# define OSSL_OBJECT_PARAM_REFERENCE "reference" +# define OSSL_OBJECT_PARAM_TYPE "type" +# define OSSL_PASSPHRASE_PARAM_INFO "info" +# define OSSL_PKEY_PARAM_ALGORITHM_ID OSSL_ALG_PARAM_ALGORITHM_ID +# define OSSL_PKEY_PARAM_ALGORITHM_ID_PARAMS OSSL_ALG_PARAM_ALGORITHM_ID_PARAMS +# define OSSL_PKEY_PARAM_BITS "bits" +# define OSSL_PKEY_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_PKEY_PARAM_DEFAULT_DIGEST "default-digest" +# define OSSL_PKEY_PARAM_DHKEM_IKM "dhkem-ikm" +# define OSSL_PKEY_PARAM_DH_GENERATOR "safeprime-generator" +# define OSSL_PKEY_PARAM_DH_PRIV_LEN "priv_len" +# define OSSL_PKEY_PARAM_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_PKEY_PARAM_DIGEST_SIZE "digest-size" +# define OSSL_PKEY_PARAM_DIST_ID "distid" +# define OSSL_PKEY_PARAM_EC_A "a" +# define OSSL_PKEY_PARAM_EC_B "b" +# define OSSL_PKEY_PARAM_EC_CHAR2_M "m" +# define OSSL_PKEY_PARAM_EC_CHAR2_PP_K1 "k1" +# define OSSL_PKEY_PARAM_EC_CHAR2_PP_K2 "k2" +# define OSSL_PKEY_PARAM_EC_CHAR2_PP_K3 "k3" +# define OSSL_PKEY_PARAM_EC_CHAR2_TP_BASIS "tp" +# define OSSL_PKEY_PARAM_EC_CHAR2_TYPE "basis-type" +# define OSSL_PKEY_PARAM_EC_COFACTOR "cofactor" +# define OSSL_PKEY_PARAM_EC_DECODED_FROM_EXPLICIT_PARAMS "decoded-from-explicit" +# define OSSL_PKEY_PARAM_EC_ENCODING "encoding" +# define OSSL_PKEY_PARAM_EC_FIELD_TYPE "field-type" +# define OSSL_PKEY_PARAM_EC_GENERATOR "generator" +# define OSSL_PKEY_PARAM_EC_GROUP_CHECK_TYPE "group-check" +# define OSSL_PKEY_PARAM_EC_INCLUDE_PUBLIC "include-public" +# define OSSL_PKEY_PARAM_EC_ORDER "order" +# define OSSL_PKEY_PARAM_EC_P "p" +# define OSSL_PKEY_PARAM_EC_POINT_CONVERSION_FORMAT "point-format" +# define OSSL_PKEY_PARAM_EC_PUB_X "qx" +# define OSSL_PKEY_PARAM_EC_PUB_Y "qy" +# define OSSL_PKEY_PARAM_EC_SEED "seed" +# define OSSL_PKEY_PARAM_ENCODED_PUBLIC_KEY "encoded-pub-key" +# define OSSL_PKEY_PARAM_ENGINE OSSL_ALG_PARAM_ENGINE +# define OSSL_PKEY_PARAM_FFC_COFACTOR "j" +# define OSSL_PKEY_PARAM_FFC_DIGEST OSSL_PKEY_PARAM_DIGEST +# define OSSL_PKEY_PARAM_FFC_DIGEST_PROPS OSSL_PKEY_PARAM_PROPERTIES +# define OSSL_PKEY_PARAM_FFC_G "g" +# define OSSL_PKEY_PARAM_FFC_GINDEX "gindex" +# define OSSL_PKEY_PARAM_FFC_H "hindex" +# define OSSL_PKEY_PARAM_FFC_P "p" +# define OSSL_PKEY_PARAM_FFC_PBITS "pbits" +# define OSSL_PKEY_PARAM_FFC_PCOUNTER "pcounter" +# define OSSL_PKEY_PARAM_FFC_Q "q" +# define OSSL_PKEY_PARAM_FFC_QBITS "qbits" +# define OSSL_PKEY_PARAM_FFC_SEED "seed" +# define OSSL_PKEY_PARAM_FFC_TYPE "type" +# define OSSL_PKEY_PARAM_FFC_VALIDATE_G "validate-g" +# define OSSL_PKEY_PARAM_FFC_VALIDATE_LEGACY "validate-legacy" +# define OSSL_PKEY_PARAM_FFC_VALIDATE_PQ "validate-pq" +# define OSSL_PKEY_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK "digest-check" +# define OSSL_PKEY_PARAM_FIPS_KEY_CHECK "key-check" +# define OSSL_PKEY_PARAM_FIPS_SIGN_CHECK "sign-check" +# define OSSL_PKEY_PARAM_GROUP_NAME "group" +# define OSSL_PKEY_PARAM_IMPLICIT_REJECTION "implicit-rejection" +# define OSSL_PKEY_PARAM_MANDATORY_DIGEST "mandatory-digest" +# define OSSL_PKEY_PARAM_MASKGENFUNC "mgf" +# define OSSL_PKEY_PARAM_MAX_SIZE "max-size" +# define OSSL_PKEY_PARAM_MGF1_DIGEST "mgf1-digest" +# define OSSL_PKEY_PARAM_MGF1_PROPERTIES "mgf1-properties" +# define OSSL_PKEY_PARAM_ML_DSA_INPUT_FORMATS "ml-dsa.input_formats" +# define OSSL_PKEY_PARAM_ML_DSA_OUTPUT_FORMATS "ml-dsa.output_formats" +# define OSSL_PKEY_PARAM_ML_DSA_PREFER_SEED "ml-dsa.prefer_seed" +# define OSSL_PKEY_PARAM_ML_DSA_RETAIN_SEED "ml-dsa.retain_seed" +# define OSSL_PKEY_PARAM_ML_DSA_SEED "seed" +# define OSSL_PKEY_PARAM_ML_KEM_IMPORT_PCT_TYPE "ml-kem.import_pct_type" +# define OSSL_PKEY_PARAM_ML_KEM_INPUT_FORMATS "ml-kem.input_formats" +# define OSSL_PKEY_PARAM_ML_KEM_OUTPUT_FORMATS "ml-kem.output_formats" +# define OSSL_PKEY_PARAM_ML_KEM_PREFER_SEED "ml-kem.prefer_seed" +# define OSSL_PKEY_PARAM_ML_KEM_RETAIN_SEED "ml-kem.retain_seed" +# define OSSL_PKEY_PARAM_ML_KEM_SEED "seed" +# define OSSL_PKEY_PARAM_PAD_MODE "pad-mode" +# define OSSL_PKEY_PARAM_PRIV_KEY "priv" +# define OSSL_PKEY_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_PKEY_PARAM_PUB_KEY "pub" +# define OSSL_PKEY_PARAM_RSA_BITS OSSL_PKEY_PARAM_BITS +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT "rsa-coefficient" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT1 "rsa-coefficient1" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT2 "rsa-coefficient2" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT3 "rsa-coefficient3" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT4 "rsa-coefficient4" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT5 "rsa-coefficient5" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT6 "rsa-coefficient6" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT7 "rsa-coefficient7" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT8 "rsa-coefficient8" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT9 "rsa-coefficient9" +# define OSSL_PKEY_PARAM_RSA_D "d" +# define OSSL_PKEY_PARAM_RSA_DERIVE_FROM_PQ "rsa-derive-from-pq" +# define OSSL_PKEY_PARAM_RSA_DIGEST OSSL_PKEY_PARAM_DIGEST +# define OSSL_PKEY_PARAM_RSA_DIGEST_PROPS OSSL_PKEY_PARAM_PROPERTIES +# define OSSL_PKEY_PARAM_RSA_E "e" +# define OSSL_PKEY_PARAM_RSA_EXPONENT "rsa-exponent" +# define OSSL_PKEY_PARAM_RSA_EXPONENT1 "rsa-exponent1" +# define OSSL_PKEY_PARAM_RSA_EXPONENT10 "rsa-exponent10" +# define OSSL_PKEY_PARAM_RSA_EXPONENT2 "rsa-exponent2" +# define OSSL_PKEY_PARAM_RSA_EXPONENT3 "rsa-exponent3" +# define OSSL_PKEY_PARAM_RSA_EXPONENT4 "rsa-exponent4" +# define OSSL_PKEY_PARAM_RSA_EXPONENT5 "rsa-exponent5" +# define OSSL_PKEY_PARAM_RSA_EXPONENT6 "rsa-exponent6" +# define OSSL_PKEY_PARAM_RSA_EXPONENT7 "rsa-exponent7" +# define OSSL_PKEY_PARAM_RSA_EXPONENT8 "rsa-exponent8" +# define OSSL_PKEY_PARAM_RSA_EXPONENT9 "rsa-exponent9" +# define OSSL_PKEY_PARAM_RSA_FACTOR "rsa-factor" +# define OSSL_PKEY_PARAM_RSA_FACTOR1 "rsa-factor1" +# define OSSL_PKEY_PARAM_RSA_FACTOR10 "rsa-factor10" +# define OSSL_PKEY_PARAM_RSA_FACTOR2 "rsa-factor2" +# define OSSL_PKEY_PARAM_RSA_FACTOR3 "rsa-factor3" +# define OSSL_PKEY_PARAM_RSA_FACTOR4 "rsa-factor4" +# define OSSL_PKEY_PARAM_RSA_FACTOR5 "rsa-factor5" +# define OSSL_PKEY_PARAM_RSA_FACTOR6 "rsa-factor6" +# define OSSL_PKEY_PARAM_RSA_FACTOR7 "rsa-factor7" +# define OSSL_PKEY_PARAM_RSA_FACTOR8 "rsa-factor8" +# define OSSL_PKEY_PARAM_RSA_FACTOR9 "rsa-factor9" +# define OSSL_PKEY_PARAM_RSA_MASKGENFUNC OSSL_PKEY_PARAM_MASKGENFUNC +# define OSSL_PKEY_PARAM_RSA_MGF1_DIGEST OSSL_PKEY_PARAM_MGF1_DIGEST +# define OSSL_PKEY_PARAM_RSA_N "n" +# define OSSL_PKEY_PARAM_RSA_PRIMES "primes" +# define OSSL_PKEY_PARAM_RSA_PSS_SALTLEN "saltlen" +# define OSSL_PKEY_PARAM_RSA_TEST_P1 "p1" +# define OSSL_PKEY_PARAM_RSA_TEST_P2 "p2" +# define OSSL_PKEY_PARAM_RSA_TEST_Q1 "q1" +# define OSSL_PKEY_PARAM_RSA_TEST_Q2 "q2" +# define OSSL_PKEY_PARAM_RSA_TEST_XP "xp" +# define OSSL_PKEY_PARAM_RSA_TEST_XP1 "xp1" +# define OSSL_PKEY_PARAM_RSA_TEST_XP2 "xp2" +# define OSSL_PKEY_PARAM_RSA_TEST_XQ "xq" +# define OSSL_PKEY_PARAM_RSA_TEST_XQ1 "xq1" +# define OSSL_PKEY_PARAM_RSA_TEST_XQ2 "xq2" +# define OSSL_PKEY_PARAM_SECURITY_BITS "security-bits" +# define OSSL_PKEY_PARAM_SLH_DSA_SEED "seed" +# define OSSL_PKEY_PARAM_USE_COFACTOR_ECDH OSSL_PKEY_PARAM_USE_COFACTOR_FLAG +# define OSSL_PKEY_PARAM_USE_COFACTOR_FLAG "use-cofactor-flag" +# define OSSL_PROV_PARAM_BUILDINFO "buildinfo" +# define OSSL_PROV_PARAM_CORE_MODULE_FILENAME "module-filename" +# define OSSL_PROV_PARAM_CORE_PROV_NAME "provider-name" +# define OSSL_PROV_PARAM_CORE_VERSION "openssl-version" +# define OSSL_PROV_PARAM_DRBG_TRUNC_DIGEST "drbg-no-trunc-md" +# define OSSL_PROV_PARAM_DSA_SIGN_DISABLED "dsa-sign-disabled" +# define OSSL_PROV_PARAM_ECDH_COFACTOR_CHECK "ecdh-cofactor-check" +# define OSSL_PROV_PARAM_HKDF_DIGEST_CHECK "hkdf-digest-check" +# define OSSL_PROV_PARAM_HKDF_KEY_CHECK "hkdf-key-check" +# define OSSL_PROV_PARAM_HMAC_KEY_CHECK "hmac-key-check" +# define OSSL_PROV_PARAM_KBKDF_KEY_CHECK "kbkdf-key-check" +# define OSSL_PROV_PARAM_KMAC_KEY_CHECK "kmac-key-check" +# define OSSL_PROV_PARAM_NAME "name" +# define OSSL_PROV_PARAM_NO_SHORT_MAC "no-short-mac" +# define OSSL_PROV_PARAM_PBKDF2_LOWER_BOUND_CHECK "pbkdf2-lower-bound-check" +# define OSSL_PROV_PARAM_RSA_PKCS15_PAD_DISABLED "rsa-pkcs15-pad-disabled" +# define OSSL_PROV_PARAM_RSA_PSS_SALTLEN_CHECK "rsa-pss-saltlen-check" +# define OSSL_PROV_PARAM_RSA_SIGN_X931_PAD_DISABLED "rsa-sign-x931-pad-disabled" +# define OSSL_PROV_PARAM_SECURITY_CHECKS "security-checks" +# define OSSL_PROV_PARAM_SELF_TEST_DESC "st-desc" +# define OSSL_PROV_PARAM_SELF_TEST_PHASE "st-phase" +# define OSSL_PROV_PARAM_SELF_TEST_TYPE "st-type" +# define OSSL_PROV_PARAM_SIGNATURE_DIGEST_CHECK "signature-digest-check" +# define OSSL_PROV_PARAM_SSHKDF_DIGEST_CHECK "sshkdf-digest-check" +# define OSSL_PROV_PARAM_SSHKDF_KEY_CHECK "sshkdf-key-check" +# define OSSL_PROV_PARAM_SSKDF_DIGEST_CHECK "sskdf-digest-check" +# define OSSL_PROV_PARAM_SSKDF_KEY_CHECK "sskdf-key-check" +# define OSSL_PROV_PARAM_STATUS "status" +# define OSSL_PROV_PARAM_TDES_ENCRYPT_DISABLED "tdes-encrypt-disabled" +# define OSSL_PROV_PARAM_TLS13_KDF_DIGEST_CHECK "tls13-kdf-digest-check" +# define OSSL_PROV_PARAM_TLS13_KDF_KEY_CHECK "tls13-kdf-key-check" +# define OSSL_PROV_PARAM_TLS1_PRF_DIGEST_CHECK "tls1-prf-digest-check" +# define OSSL_PROV_PARAM_TLS1_PRF_EMS_CHECK "tls1-prf-ems-check" +# define OSSL_PROV_PARAM_TLS1_PRF_KEY_CHECK "tls1-prf-key-check" +# define OSSL_PROV_PARAM_VERSION "version" +# define OSSL_PROV_PARAM_X942KDF_KEY_CHECK "x942kdf-key-check" +# define OSSL_PROV_PARAM_X963KDF_DIGEST_CHECK "x963kdf-digest-check" +# define OSSL_PROV_PARAM_X963KDF_KEY_CHECK "x963kdf-key-check" +# define OSSL_RAND_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_RAND_PARAM_GENERATE "generate" +# define OSSL_RAND_PARAM_MAX_REQUEST "max_request" +# define OSSL_RAND_PARAM_STATE "state" +# define OSSL_RAND_PARAM_STRENGTH "strength" +# define OSSL_RAND_PARAM_TEST_ENTROPY "test_entropy" +# define OSSL_RAND_PARAM_TEST_NONCE "test_nonce" +# define OSSL_SIGNATURE_PARAM_ADD_RANDOM "additional-random" +# define OSSL_SIGNATURE_PARAM_ALGORITHM_ID OSSL_PKEY_PARAM_ALGORITHM_ID +# define OSSL_SIGNATURE_PARAM_ALGORITHM_ID_PARAMS OSSL_PKEY_PARAM_ALGORITHM_ID_PARAMS +# define OSSL_SIGNATURE_PARAM_CONTEXT_STRING "context-string" +# define OSSL_SIGNATURE_PARAM_DETERMINISTIC "deterministic" +# define OSSL_SIGNATURE_PARAM_DIGEST OSSL_PKEY_PARAM_DIGEST +# define OSSL_SIGNATURE_PARAM_DIGEST_SIZE OSSL_PKEY_PARAM_DIGEST_SIZE +# define OSSL_SIGNATURE_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_SIGNATURE_PARAM_FIPS_DIGEST_CHECK OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK +# define OSSL_SIGNATURE_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_SIGNATURE_PARAM_FIPS_RSA_PSS_SALTLEN_CHECK "rsa-pss-saltlen-check" +# define OSSL_SIGNATURE_PARAM_FIPS_SIGN_CHECK OSSL_PKEY_PARAM_FIPS_SIGN_CHECK +# define OSSL_SIGNATURE_PARAM_FIPS_SIGN_X931_PAD_CHECK "sign-x931-pad-check" +# define OSSL_SIGNATURE_PARAM_FIPS_VERIFY_MESSAGE "verify-message" +# define OSSL_SIGNATURE_PARAM_INSTANCE "instance" +# define OSSL_SIGNATURE_PARAM_KAT "kat" +# define OSSL_SIGNATURE_PARAM_MESSAGE_ENCODING "message-encoding" +# define OSSL_SIGNATURE_PARAM_MGF1_DIGEST OSSL_PKEY_PARAM_MGF1_DIGEST +# define OSSL_SIGNATURE_PARAM_MGF1_PROPERTIES OSSL_PKEY_PARAM_MGF1_PROPERTIES +# define OSSL_SIGNATURE_PARAM_MU "mu" +# define OSSL_SIGNATURE_PARAM_NONCE_TYPE "nonce-type" +# define OSSL_SIGNATURE_PARAM_PAD_MODE OSSL_PKEY_PARAM_PAD_MODE +# define OSSL_SIGNATURE_PARAM_PROPERTIES OSSL_PKEY_PARAM_PROPERTIES +# define OSSL_SIGNATURE_PARAM_PSS_SALTLEN "saltlen" +# define OSSL_SIGNATURE_PARAM_SIGNATURE "signature" +# define OSSL_SIGNATURE_PARAM_TEST_ENTROPY "test-entropy" +# define OSSL_SKEY_PARAM_KEY_LENGTH "key-length" +# define OSSL_SKEY_PARAM_RAW_BYTES "raw-bytes" +# define OSSL_STORE_PARAM_ALIAS "alias" +# define OSSL_STORE_PARAM_DIGEST "digest" +# define OSSL_STORE_PARAM_EXPECT "expect" +# define OSSL_STORE_PARAM_FINGERPRINT "fingerprint" +# define OSSL_STORE_PARAM_INPUT_TYPE "input-type" +# define OSSL_STORE_PARAM_ISSUER "name" +# define OSSL_STORE_PARAM_PROPERTIES "properties" +# define OSSL_STORE_PARAM_SERIAL "serial" +# define OSSL_STORE_PARAM_SUBJECT "subject" + +# ifdef __cplusplus +} +# endif + +#endif diff --git a/deps/openssl/config/archs/linux-armv4/no-asm/include/openssl/crmf.h b/deps/openssl/config/archs/linux-armv4/no-asm/include/openssl/crmf.h index 71b747ed33d239..4bf550fd47daa9 100644 --- a/deps/openssl/config/archs/linux-armv4/no-asm/include/openssl/crmf.h +++ b/deps/openssl/config/archs/linux-armv4/no-asm/include/openssl/crmf.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/crmf.h.in * - * Copyright 2007-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2007-2025 The OpenSSL Project Authors. All Rights Reserved. * Copyright Nokia 2007-2019 * Copyright Siemens AG 2015-2019 * @@ -26,6 +26,7 @@ # include # include # include /* for GENERAL_NAME etc. */ +# include /* explicit #includes not strictly needed since implied by the above: */ # include @@ -43,9 +44,12 @@ extern "C" { # define OSSL_CRMF_SUBSEQUENTMESSAGE_ENCRCERT 0 # define OSSL_CRMF_SUBSEQUENTMESSAGE_CHALLENGERESP 1 - typedef struct ossl_crmf_encryptedvalue_st OSSL_CRMF_ENCRYPTEDVALUE; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_ENCRYPTEDVALUE) + +typedef struct ossl_crmf_encryptedkey_st OSSL_CRMF_ENCRYPTEDKEY; +DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_ENCRYPTEDKEY) + typedef struct ossl_crmf_msg_st OSSL_CRMF_MSG; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_MSG) DECLARE_ASN1_DUP_FUNCTION(OSSL_CRMF_MSG) @@ -77,6 +81,36 @@ SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CRMF_MSG, OSSL_CRMF_MSG, OSSL_CRMF_MSG) #define sk_OSSL_CRMF_MSG_set_cmp_func(sk, cmp) ((sk_OSSL_CRMF_MSG_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CRMF_MSG_sk_type(sk), ossl_check_OSSL_CRMF_MSG_compfunc_type(cmp))) typedef struct ossl_crmf_attributetypeandvalue_st OSSL_CRMF_ATTRIBUTETYPEANDVALUE; +void OSSL_CRMF_ATTRIBUTETYPEANDVALUE_free(OSSL_CRMF_ATTRIBUTETYPEANDVALUE *v); +DECLARE_ASN1_DUP_FUNCTION(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CRMF_ATTRIBUTETYPEANDVALUE, OSSL_CRMF_ATTRIBUTETYPEANDVALUE, OSSL_CRMF_ATTRIBUTETYPEANDVALUE) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_value(sk, idx) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_value(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), (idx))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_new(cmp) ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_new(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_compfunc_type(cmp))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_new_null() ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_new_null()) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_new_reserve(cmp, n) ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_compfunc_type(cmp), (n))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), (n)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_free(sk) OPENSSL_sk_free(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_delete(sk, i) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_delete(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), (i))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_delete_ptr(sk, ptr) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_pop(sk) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_pop(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_shift(sk) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_shift(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk),ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_freefunc_type(freefunc)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr), (idx)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_set(sk, idx, ptr) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_set(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), (idx), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr), pnum) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_dup(sk) ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_dup(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_copyfunc_type(copyfunc), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_freefunc_type(freefunc))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_set_cmp_func(sk, cmp) ((sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_compfunc_type(cmp))) + + typedef struct ossl_crmf_pbmparameter_st OSSL_CRMF_PBMPARAMETER; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_PBMPARAMETER) typedef struct ossl_crmf_poposigningkey_st OSSL_CRMF_POPOSIGNINGKEY; @@ -118,6 +152,7 @@ typedef struct ossl_crmf_singlepubinfo_st OSSL_CRMF_SINGLEPUBINFO; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_SINGLEPUBINFO) typedef struct ossl_crmf_certtemplate_st OSSL_CRMF_CERTTEMPLATE; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_CERTTEMPLATE) +DECLARE_ASN1_DUP_FUNCTION(OSSL_CRMF_CERTTEMPLATE) typedef STACK_OF(OSSL_CRMF_MSG) OSSL_CRMF_MSGS; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_MSGS) @@ -198,12 +233,14 @@ int OSSL_CRMF_MSGS_verify_popo(const OSSL_CRMF_MSGS *reqs, int rid, int acceptRAVerified, OSSL_LIB_CTX *libctx, const char *propq); OSSL_CRMF_CERTTEMPLATE *OSSL_CRMF_MSG_get0_tmpl(const OSSL_CRMF_MSG *crm); -const ASN1_INTEGER -*OSSL_CRMF_CERTTEMPLATE_get0_serialNumber(const OSSL_CRMF_CERTTEMPLATE *tmpl); +X509_PUBKEY +*OSSL_CRMF_CERTTEMPLATE_get0_publicKey(const OSSL_CRMF_CERTTEMPLATE *tmpl); const X509_NAME *OSSL_CRMF_CERTTEMPLATE_get0_subject(const OSSL_CRMF_CERTTEMPLATE *tmpl); const X509_NAME *OSSL_CRMF_CERTTEMPLATE_get0_issuer(const OSSL_CRMF_CERTTEMPLATE *tmpl); +const ASN1_INTEGER +*OSSL_CRMF_CERTTEMPLATE_get0_serialNumber(const OSSL_CRMF_CERTTEMPLATE *tmpl); X509_EXTENSIONS *OSSL_CRMF_CERTTEMPLATE_get0_extensions(const OSSL_CRMF_CERTTEMPLATE *tmpl); const X509_NAME @@ -215,10 +252,24 @@ int OSSL_CRMF_CERTTEMPLATE_fill(OSSL_CRMF_CERTTEMPLATE *tmpl, const X509_NAME *subject, const X509_NAME *issuer, const ASN1_INTEGER *serial); -X509 -*OSSL_CRMF_ENCRYPTEDVALUE_get1_encCert(const OSSL_CRMF_ENCRYPTEDVALUE *ecert, - OSSL_LIB_CTX *libctx, const char *propq, - EVP_PKEY *pkey); +X509 *OSSL_CRMF_ENCRYPTEDVALUE_get1_encCert(const OSSL_CRMF_ENCRYPTEDVALUE *ecert, + OSSL_LIB_CTX *libctx, const char *propq, + EVP_PKEY *pkey); +X509 *OSSL_CRMF_ENCRYPTEDKEY_get1_encCert(const OSSL_CRMF_ENCRYPTEDKEY *ecert, + OSSL_LIB_CTX *libctx, const char *propq, + EVP_PKEY *pkey, unsigned int flags); +unsigned char +*OSSL_CRMF_ENCRYPTEDVALUE_decrypt(const OSSL_CRMF_ENCRYPTEDVALUE *enc, + OSSL_LIB_CTX *libctx, const char *propq, + EVP_PKEY *pkey, int *outlen); +EVP_PKEY *OSSL_CRMF_ENCRYPTEDKEY_get1_pkey(const OSSL_CRMF_ENCRYPTEDKEY *encryptedKey, + X509_STORE *ts, STACK_OF(X509) *extra, EVP_PKEY *pkey, + X509 *cert, ASN1_OCTET_STRING *secret, + OSSL_LIB_CTX *libctx, const char *propq); +int OSSL_CRMF_MSG_centralkeygen_requested(const OSSL_CRMF_MSG *crm, const X509_REQ *p10cr); +# ifndef OPENSSL_NO_CMS +OSSL_CRMF_ENCRYPTEDKEY *OSSL_CRMF_ENCRYPTEDKEY_init_envdata(CMS_EnvelopedData *envdata); +# endif # ifdef __cplusplus } diff --git a/deps/openssl/config/archs/linux-armv4/no-asm/include/openssl/crypto.h b/deps/openssl/config/archs/linux-armv4/no-asm/include/openssl/crypto.h index 3f40be6d8c61d5..fd2cfd3e5a9ac4 100644 --- a/deps/openssl/config/archs/linux-armv4/no-asm/include/openssl/crypto.h +++ b/deps/openssl/config/archs/linux-armv4/no-asm/include/openssl/crypto.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/crypto.h.in * - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2024 The OpenSSL Project Authors. All Rights Reserved. * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved * * Licensed under the Apache License 2.0 (the "License"). You may not use @@ -85,9 +85,15 @@ int CRYPTO_THREAD_unlock(CRYPTO_RWLOCK *lock); void CRYPTO_THREAD_lock_free(CRYPTO_RWLOCK *lock); int CRYPTO_atomic_add(int *val, int amount, int *ret, CRYPTO_RWLOCK *lock); +int CRYPTO_atomic_add64(uint64_t *val, uint64_t op, uint64_t *ret, + CRYPTO_RWLOCK *lock); +int CRYPTO_atomic_and(uint64_t *val, uint64_t op, uint64_t *ret, + CRYPTO_RWLOCK *lock); int CRYPTO_atomic_or(uint64_t *val, uint64_t op, uint64_t *ret, CRYPTO_RWLOCK *lock); int CRYPTO_atomic_load(uint64_t *val, uint64_t *ret, CRYPTO_RWLOCK *lock); +int CRYPTO_atomic_load_int(int *val, int *ret, CRYPTO_RWLOCK *lock); +int CRYPTO_atomic_store(uint64_t *dst, uint64_t val, CRYPTO_RWLOCK *lock); /* No longer needed, so this is a no-op */ #define OPENSSL_malloc_init() while(0) continue @@ -96,6 +102,9 @@ int CRYPTO_atomic_load(uint64_t *val, uint64_t *ret, CRYPTO_RWLOCK *lock); CRYPTO_malloc(num, OPENSSL_FILE, OPENSSL_LINE) # define OPENSSL_zalloc(num) \ CRYPTO_zalloc(num, OPENSSL_FILE, OPENSSL_LINE) +# define OPENSSL_aligned_alloc(num, alignment, freeptr) \ + CRYPTO_aligned_alloc(num, alignment, freeptr, \ + OPENSSL_FILE, OPENSSL_LINE) # define OPENSSL_realloc(addr, num) \ CRYPTO_realloc(addr, num, OPENSSL_FILE, OPENSSL_LINE) # define OPENSSL_clear_realloc(addr, old_num, num) \ @@ -124,6 +133,7 @@ int CRYPTO_atomic_load(uint64_t *val, uint64_t *ret, CRYPTO_RWLOCK *lock); size_t OPENSSL_strlcpy(char *dst, const char *src, size_t siz); size_t OPENSSL_strlcat(char *dst, const char *src, size_t siz); size_t OPENSSL_strnlen(const char *str, size_t maxlen); +int OPENSSL_strtoul(const char *str, char **endptr, int base, unsigned long *num); int OPENSSL_buf2hexstr_ex(char *str, size_t str_n, size_t *strlength, const unsigned char *buf, size_t buflen, const char sep); @@ -160,6 +170,7 @@ const char *OpenSSL_version(int type); # define OPENSSL_FULL_VERSION_STRING 7 # define OPENSSL_MODULES_DIR 8 # define OPENSSL_CPU_INFO 9 +# define OPENSSL_WINCTX 10 const char *OPENSSL_info(int type); /* @@ -174,6 +185,7 @@ const char *OPENSSL_info(int type); # define OPENSSL_INFO_LIST_SEPARATOR 1006 # define OPENSSL_INFO_SEED_SOURCE 1007 # define OPENSSL_INFO_CPU_SETTINGS 1008 +# define OPENSSL_INFO_WINDOWS_CONTEXT 1009 int OPENSSL_issetugid(void); @@ -341,11 +353,14 @@ void CRYPTO_get_mem_functions(CRYPTO_malloc_fn *malloc_fn, CRYPTO_realloc_fn *realloc_fn, CRYPTO_free_fn *free_fn); -void *CRYPTO_malloc(size_t num, const char *file, int line); -void *CRYPTO_zalloc(size_t num, const char *file, int line); -void *CRYPTO_memdup(const void *str, size_t siz, const char *file, int line); -char *CRYPTO_strdup(const char *str, const char *file, int line); -char *CRYPTO_strndup(const char *str, size_t s, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_malloc(size_t num, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_zalloc(size_t num, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_aligned_alloc(size_t num, size_t align, + void **freeptr, const char *file, + int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_memdup(const void *str, size_t siz, const char *file, int line); +OSSL_CRYPTO_ALLOC char *CRYPTO_strdup(const char *str, const char *file, int line); +OSSL_CRYPTO_ALLOC char *CRYPTO_strndup(const char *str, size_t s, const char *file, int line); void CRYPTO_free(void *ptr, const char *file, int line); void CRYPTO_clear_free(void *ptr, size_t num, const char *file, int line); void *CRYPTO_realloc(void *addr, size_t num, const char *file, int line); @@ -354,8 +369,8 @@ void *CRYPTO_clear_realloc(void *addr, size_t old_num, size_t num, int CRYPTO_secure_malloc_init(size_t sz, size_t minsize); int CRYPTO_secure_malloc_done(void); -void *CRYPTO_secure_malloc(size_t num, const char *file, int line); -void *CRYPTO_secure_zalloc(size_t num, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_secure_malloc(size_t num, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_secure_zalloc(size_t num, const char *file, int line); void CRYPTO_secure_free(void *ptr, const char *file, int line); void CRYPTO_secure_clear_free(void *ptr, size_t num, const char *file, int line); @@ -376,6 +391,9 @@ void OPENSSL_cleanse(void *ptr, size_t len); # define CRYPTO_MEM_CHECK_ENABLE 0x2 /* Control and mode bit */ # define CRYPTO_MEM_CHECK_DISABLE 0x3 /* Control only */ +/* max allowed length for value of OPENSSL_MALLOC_FAILURES env var. */ +# define CRYPTO_MEM_CHECK_MAX_FS 256 + void CRYPTO_get_alloc_counts(int *mcount, int *rcount, int *fcount); # ifndef OPENSSL_NO_DEPRECATED_3_0 # define OPENSSL_mem_debug_push(info) \ @@ -551,6 +569,13 @@ int OSSL_LIB_CTX_load_config(OSSL_LIB_CTX *ctx, const char *config_file); void OSSL_LIB_CTX_free(OSSL_LIB_CTX *); OSSL_LIB_CTX *OSSL_LIB_CTX_get0_global_default(void); OSSL_LIB_CTX *OSSL_LIB_CTX_set0_default(OSSL_LIB_CTX *libctx); +int OSSL_LIB_CTX_get_conf_diagnostics(OSSL_LIB_CTX *ctx); +void OSSL_LIB_CTX_set_conf_diagnostics(OSSL_LIB_CTX *ctx, int value); + +void OSSL_sleep(uint64_t millis); + + +void *OSSL_LIB_CTX_get_data(OSSL_LIB_CTX *ctx, int index); # ifdef __cplusplus } diff --git a/deps/openssl/config/archs/linux-armv4/no-asm/include/openssl/ct.h b/deps/openssl/config/archs/linux-armv4/no-asm/include/openssl/ct.h index b6dd8c3547710a..e6dd1192a4e0b3 100644 --- a/deps/openssl/config/archs/linux-armv4/no-asm/include/openssl/ct.h +++ b/deps/openssl/config/archs/linux-armv4/no-asm/include/openssl/ct.h @@ -133,7 +133,7 @@ typedef enum { */ CT_POLICY_EVAL_CTX *CT_POLICY_EVAL_CTX_new_ex(OSSL_LIB_CTX *libctx, const char *propq); - + /* * The same as CT_POLICY_EVAL_CTX_new_ex() but the default library * context and property query string is used. diff --git a/deps/openssl/config/archs/linux-armv4/no-asm/include/openssl/err.h b/deps/openssl/config/archs/linux-armv4/no-asm/include/openssl/err.h index 2abf2483488181..daca18e7b757b0 100644 --- a/deps/openssl/config/archs/linux-armv4/no-asm/include/openssl/err.h +++ b/deps/openssl/config/archs/linux-armv4/no-asm/include/openssl/err.h @@ -1,5 +1,5 @@ /* - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -372,7 +372,7 @@ typedef struct ERR_string_data_st { } ERR_STRING_DATA; DEFINE_LHASH_OF_INTERNAL(ERR_STRING_DATA); -#define lh_ERR_STRING_DATA_new(hfn, cmp) ((LHASH_OF(ERR_STRING_DATA) *)OPENSSL_LH_new(ossl_check_ERR_STRING_DATA_lh_hashfunc_type(hfn), ossl_check_ERR_STRING_DATA_lh_compfunc_type(cmp))) +#define lh_ERR_STRING_DATA_new(hfn, cmp) ((LHASH_OF(ERR_STRING_DATA) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new(ossl_check_ERR_STRING_DATA_lh_hashfunc_type(hfn), ossl_check_ERR_STRING_DATA_lh_compfunc_type(cmp)), lh_ERR_STRING_DATA_hash_thunk, lh_ERR_STRING_DATA_comp_thunk, lh_ERR_STRING_DATA_doall_thunk, lh_ERR_STRING_DATA_doall_arg_thunk)) #define lh_ERR_STRING_DATA_free(lh) OPENSSL_LH_free(ossl_check_ERR_STRING_DATA_lh_type(lh)) #define lh_ERR_STRING_DATA_flush(lh) OPENSSL_LH_flush(ossl_check_ERR_STRING_DATA_lh_type(lh)) #define lh_ERR_STRING_DATA_insert(lh, ptr) ((ERR_STRING_DATA *)OPENSSL_LH_insert(ossl_check_ERR_STRING_DATA_lh_type(lh), ossl_check_ERR_STRING_DATA_lh_plain_type(ptr))) @@ -496,6 +496,14 @@ int ERR_get_next_error_library(void); int ERR_set_mark(void); int ERR_pop_to_mark(void); int ERR_clear_last_mark(void); +int ERR_count_to_mark(void); +int ERR_pop(void); + +ERR_STATE *OSSL_ERR_STATE_new(void); +void OSSL_ERR_STATE_save(ERR_STATE *es); +void OSSL_ERR_STATE_save_to_mark(ERR_STATE *es); +void OSSL_ERR_STATE_restore(const ERR_STATE *es); +void OSSL_ERR_STATE_free(ERR_STATE *es); #ifdef __cplusplus } diff --git a/deps/openssl/config/archs/linux-armv4/no-asm/include/openssl/fipskey.h b/deps/openssl/config/archs/linux-armv4/no-asm/include/openssl/fipskey.h index 42ba014b313ba8..929db18c678364 100644 --- a/deps/openssl/config/archs/linux-armv4/no-asm/include/openssl/fipskey.h +++ b/deps/openssl/config/archs/linux-armv4/no-asm/include/openssl/fipskey.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/fipskey.h.in * - * Copyright 2020-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2020-2024 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -29,6 +29,11 @@ extern "C" { */ #define FIPS_KEY_STRING "f4556650ac31d35461610bac4ed81b1a181b2d8a43ea2854cbae22ca74560813" +/* + * The FIPS provider vendor name, as a string. + */ +#define FIPS_VENDOR "OpenSSL FIPS Provider" + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/linux-armv4/no-asm/include/openssl/lhash.h b/deps/openssl/config/archs/linux-armv4/no-asm/include/openssl/lhash.h index 39dd6254acdeb6..62c55b20fd9716 100644 --- a/deps/openssl/config/archs/linux-armv4/no-asm/include/openssl/lhash.h +++ b/deps/openssl/config/archs/linux-armv4/no-asm/include/openssl/lhash.h @@ -1,5 +1,5 @@ /* - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2024 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -24,6 +24,9 @@ # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -31,9 +34,13 @@ extern "C" { typedef struct lhash_node_st OPENSSL_LH_NODE; typedef int (*OPENSSL_LH_COMPFUNC) (const void *, const void *); +typedef int (*OPENSSL_LH_COMPFUNCTHUNK) (const void *, const void *, OPENSSL_LH_COMPFUNC cfn); typedef unsigned long (*OPENSSL_LH_HASHFUNC) (const void *); +typedef unsigned long (*OPENSSL_LH_HASHFUNCTHUNK) (const void *, OPENSSL_LH_HASHFUNC hfn); typedef void (*OPENSSL_LH_DOALL_FUNC) (void *); +typedef void (*OPENSSL_LH_DOALL_FUNC_THUNK) (void *, OPENSSL_LH_DOALL_FUNC doall); typedef void (*OPENSSL_LH_DOALL_FUNCARG) (void *, void *); +typedef void (*OPENSSL_LH_DOALL_FUNCARG_THUNK) (void *, void *, OPENSSL_LH_DOALL_FUNCARG doall); typedef struct lhash_st OPENSSL_LHASH; /* @@ -79,26 +86,40 @@ typedef struct lhash_st OPENSSL_LHASH; int OPENSSL_LH_error(OPENSSL_LHASH *lh); OPENSSL_LHASH *OPENSSL_LH_new(OPENSSL_LH_HASHFUNC h, OPENSSL_LH_COMPFUNC c); +OPENSSL_LHASH *OPENSSL_LH_set_thunks(OPENSSL_LHASH *lh, + OPENSSL_LH_HASHFUNCTHUNK hw, + OPENSSL_LH_COMPFUNCTHUNK cw, + OPENSSL_LH_DOALL_FUNC_THUNK daw, + OPENSSL_LH_DOALL_FUNCARG_THUNK daaw); void OPENSSL_LH_free(OPENSSL_LHASH *lh); void OPENSSL_LH_flush(OPENSSL_LHASH *lh); void *OPENSSL_LH_insert(OPENSSL_LHASH *lh, void *data); void *OPENSSL_LH_delete(OPENSSL_LHASH *lh, const void *data); void *OPENSSL_LH_retrieve(OPENSSL_LHASH *lh, const void *data); void OPENSSL_LH_doall(OPENSSL_LHASH *lh, OPENSSL_LH_DOALL_FUNC func); -void OPENSSL_LH_doall_arg(OPENSSL_LHASH *lh, OPENSSL_LH_DOALL_FUNCARG func, void *arg); +void OPENSSL_LH_doall_arg(OPENSSL_LHASH *lh, + OPENSSL_LH_DOALL_FUNCARG func, void *arg); +void OPENSSL_LH_doall_arg_thunk(OPENSSL_LHASH *lh, + OPENSSL_LH_DOALL_FUNCARG_THUNK daaw, + OPENSSL_LH_DOALL_FUNCARG fn, void *arg); + unsigned long OPENSSL_LH_strhash(const char *c); unsigned long OPENSSL_LH_num_items(const OPENSSL_LHASH *lh); unsigned long OPENSSL_LH_get_down_load(const OPENSSL_LHASH *lh); void OPENSSL_LH_set_down_load(OPENSSL_LHASH *lh, unsigned long down_load); # ifndef OPENSSL_NO_STDIO -void OPENSSL_LH_stats(const OPENSSL_LHASH *lh, FILE *fp); -void OPENSSL_LH_node_stats(const OPENSSL_LHASH *lh, FILE *fp); -void OPENSSL_LH_node_usage_stats(const OPENSSL_LHASH *lh, FILE *fp); +# ifndef OPENSSL_NO_DEPRECATED_3_1 +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_stats(const OPENSSL_LHASH *lh, FILE *fp); +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_node_stats(const OPENSSL_LHASH *lh, FILE *fp); +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_node_usage_stats(const OPENSSL_LHASH *lh, FILE *fp); +# endif +# endif +# ifndef OPENSSL_NO_DEPRECATED_3_1 +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_stats_bio(const OPENSSL_LHASH *lh, BIO *out); +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_node_stats_bio(const OPENSSL_LHASH *lh, BIO *out); +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_node_usage_stats_bio(const OPENSSL_LHASH *lh, BIO *out); # endif -void OPENSSL_LH_stats_bio(const OPENSSL_LHASH *lh, BIO *out); -void OPENSSL_LH_node_stats_bio(const OPENSSL_LHASH *lh, BIO *out); -void OPENSSL_LH_node_usage_stats_bio(const OPENSSL_LHASH *lh, BIO *out); # ifndef OPENSSL_NO_DEPRECATED_1_1_0 # define _LHASH OPENSSL_LHASH @@ -129,110 +150,190 @@ void OPENSSL_LH_node_usage_stats_bio(const OPENSSL_LHASH *lh, BIO *out); /* Helper macro for internal use */ # define DEFINE_LHASH_OF_INTERNAL(type) \ - LHASH_OF(type) { union lh_##type##_dummy { void* d1; unsigned long d2; int d3; } dummy; }; \ + LHASH_OF(type) { \ + union lh_##type##_dummy { void* d1; unsigned long d2; int d3; } dummy; \ + }; \ typedef int (*lh_##type##_compfunc)(const type *a, const type *b); \ typedef unsigned long (*lh_##type##_hashfunc)(const type *a); \ typedef void (*lh_##type##_doallfunc)(type *a); \ - static ossl_unused ossl_inline type *ossl_check_##type##_lh_plain_type(type *ptr) \ + static ossl_inline unsigned long lh_##type##_hash_thunk(const void *data, OPENSSL_LH_HASHFUNC hfn) \ + { \ + unsigned long (*hfn_conv)(const type *) = (unsigned long (*)(const type *))hfn; \ + return hfn_conv((const type *)data); \ + } \ + static ossl_inline int lh_##type##_comp_thunk(const void *da, const void *db, OPENSSL_LH_COMPFUNC cfn) \ + { \ + int (*cfn_conv)(const type *, const type *) = (int (*)(const type *, const type *))cfn; \ + return cfn_conv((const type *)da, (const type *)db); \ + } \ + static ossl_inline void lh_##type##_doall_thunk(void *node, OPENSSL_LH_DOALL_FUNC doall) \ + { \ + void (*doall_conv)(type *) = (void (*)(type *))doall; \ + doall_conv((type *)node); \ + } \ + static ossl_inline void lh_##type##_doall_arg_thunk(void *node, void *arg, OPENSSL_LH_DOALL_FUNCARG doall) \ + { \ + void (*doall_conv)(type *, void *) = (void (*)(type *, void *))doall; \ + doall_conv((type *)node, arg); \ + } \ + static ossl_unused ossl_inline type *\ + ossl_check_##type##_lh_plain_type(type *ptr) \ { \ return ptr; \ } \ - static ossl_unused ossl_inline const type *ossl_check_const_##type##_lh_plain_type(const type *ptr) \ + static ossl_unused ossl_inline const type * \ + ossl_check_const_##type##_lh_plain_type(const type *ptr) \ { \ return ptr; \ } \ - static ossl_unused ossl_inline const OPENSSL_LHASH *ossl_check_const_##type##_lh_type(const LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline const OPENSSL_LHASH * \ + ossl_check_const_##type##_lh_type(const LHASH_OF(type) *lh) \ { \ return (const OPENSSL_LHASH *)lh; \ } \ - static ossl_unused ossl_inline OPENSSL_LHASH *ossl_check_##type##_lh_type(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline OPENSSL_LHASH * \ + ossl_check_##type##_lh_type(LHASH_OF(type) *lh) \ { \ return (OPENSSL_LHASH *)lh; \ } \ - static ossl_unused ossl_inline OPENSSL_LH_COMPFUNC ossl_check_##type##_lh_compfunc_type(lh_##type##_compfunc cmp) \ + static ossl_unused ossl_inline OPENSSL_LH_COMPFUNC \ + ossl_check_##type##_lh_compfunc_type(lh_##type##_compfunc cmp) \ { \ return (OPENSSL_LH_COMPFUNC)cmp; \ } \ - static ossl_unused ossl_inline OPENSSL_LH_HASHFUNC ossl_check_##type##_lh_hashfunc_type(lh_##type##_hashfunc hfn) \ + static ossl_unused ossl_inline OPENSSL_LH_HASHFUNC \ + ossl_check_##type##_lh_hashfunc_type(lh_##type##_hashfunc hfn) \ { \ return (OPENSSL_LH_HASHFUNC)hfn; \ } \ - static ossl_unused ossl_inline OPENSSL_LH_DOALL_FUNC ossl_check_##type##_lh_doallfunc_type(lh_##type##_doallfunc dfn) \ + static ossl_unused ossl_inline OPENSSL_LH_DOALL_FUNC \ + ossl_check_##type##_lh_doallfunc_type(lh_##type##_doallfunc dfn) \ { \ return (OPENSSL_LH_DOALL_FUNC)dfn; \ } \ LHASH_OF(type) -# define DEFINE_LHASH_OF(type) \ - LHASH_OF(type) { union lh_##type##_dummy { void* d1; unsigned long d2; int d3; } dummy; }; \ - static ossl_unused ossl_inline LHASH_OF(type) *lh_##type##_new(unsigned long (*hfn)(const type *), \ - int (*cfn)(const type *, const type *)) \ +# ifndef OPENSSL_NO_DEPRECATED_3_1 +# define DEFINE_LHASH_OF_DEPRECATED(type) \ + static ossl_unused ossl_inline void \ + lh_##type##_node_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ { \ - return (LHASH_OF(type) *) \ - OPENSSL_LH_new((OPENSSL_LH_HASHFUNC)hfn, (OPENSSL_LH_COMPFUNC)cfn); \ + OPENSSL_LH_node_stats_bio((const OPENSSL_LHASH *)lh, out); \ } \ - static ossl_unused ossl_inline void lh_##type##_free(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline void \ + lh_##type##_node_usage_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + { \ + OPENSSL_LH_node_usage_stats_bio((const OPENSSL_LHASH *)lh, out); \ + } \ + static ossl_unused ossl_inline void \ + lh_##type##_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + { \ + OPENSSL_LH_stats_bio((const OPENSSL_LHASH *)lh, out); \ + } +# else +# define DEFINE_LHASH_OF_DEPRECATED(type) +# endif + +# define DEFINE_LHASH_OF_EX(type) \ + LHASH_OF(type) { \ + union lh_##type##_dummy { void* d1; unsigned long d2; int d3; } dummy; \ + }; \ + static unsigned long \ + lh_##type##_hfn_thunk(const void *data, OPENSSL_LH_HASHFUNC hfn) \ + { \ + unsigned long (*hfn_conv)(const type *) = (unsigned long (*)(const type *))hfn; \ + return hfn_conv((const type *)data); \ + } \ + static int lh_##type##_cfn_thunk(const void *da, const void *db, OPENSSL_LH_COMPFUNC cfn) \ + { \ + int (*cfn_conv)(const type *, const type *) = (int (*)(const type *, const type *))cfn; \ + return cfn_conv((const type *)da, (const type *)db); \ + } \ + static ossl_unused ossl_inline void \ + lh_##type##_free(LHASH_OF(type) *lh) \ { \ OPENSSL_LH_free((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline void lh_##type##_flush(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline void \ + lh_##type##_flush(LHASH_OF(type) *lh) \ { \ OPENSSL_LH_flush((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline type *lh_##type##_insert(LHASH_OF(type) *lh, type *d) \ + static ossl_unused ossl_inline type * \ + lh_##type##_insert(LHASH_OF(type) *lh, type *d) \ { \ return (type *)OPENSSL_LH_insert((OPENSSL_LHASH *)lh, d); \ } \ - static ossl_unused ossl_inline type *lh_##type##_delete(LHASH_OF(type) *lh, const type *d) \ + static ossl_unused ossl_inline type * \ + lh_##type##_delete(LHASH_OF(type) *lh, const type *d) \ { \ return (type *)OPENSSL_LH_delete((OPENSSL_LHASH *)lh, d); \ } \ - static ossl_unused ossl_inline type *lh_##type##_retrieve(LHASH_OF(type) *lh, const type *d) \ + static ossl_unused ossl_inline type * \ + lh_##type##_retrieve(LHASH_OF(type) *lh, const type *d) \ { \ return (type *)OPENSSL_LH_retrieve((OPENSSL_LHASH *)lh, d); \ } \ - static ossl_unused ossl_inline int lh_##type##_error(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline int \ + lh_##type##_error(LHASH_OF(type) *lh) \ { \ return OPENSSL_LH_error((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline unsigned long lh_##type##_num_items(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline unsigned long \ + lh_##type##_num_items(LHASH_OF(type) *lh) \ { \ return OPENSSL_LH_num_items((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline void lh_##type##_node_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + static ossl_unused ossl_inline unsigned long \ + lh_##type##_get_down_load(LHASH_OF(type) *lh) \ { \ - OPENSSL_LH_node_stats_bio((const OPENSSL_LHASH *)lh, out); \ + return OPENSSL_LH_get_down_load((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline void lh_##type##_node_usage_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + static ossl_unused ossl_inline void \ + lh_##type##_set_down_load(LHASH_OF(type) *lh, unsigned long dl) \ { \ - OPENSSL_LH_node_usage_stats_bio((const OPENSSL_LHASH *)lh, out); \ + OPENSSL_LH_set_down_load((OPENSSL_LHASH *)lh, dl); \ } \ - static ossl_unused ossl_inline void lh_##type##_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall_thunk(void *node, OPENSSL_LH_DOALL_FUNC doall) \ { \ - OPENSSL_LH_stats_bio((const OPENSSL_LHASH *)lh, out); \ + void (*doall_conv)(type *) = (void (*)(type *))doall; \ + doall_conv((type *)node); \ } \ - static ossl_unused ossl_inline unsigned long lh_##type##_get_down_load(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall_arg_thunk(void *node, void *arg, OPENSSL_LH_DOALL_FUNCARG doall) \ { \ - return OPENSSL_LH_get_down_load((OPENSSL_LHASH *)lh); \ + void (*doall_conv)(type *, void *) = (void (*)(type *, void *))doall; \ + doall_conv((type *)node, arg); \ } \ - static ossl_unused ossl_inline void lh_##type##_set_down_load(LHASH_OF(type) *lh, unsigned long dl) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall(LHASH_OF(type) *lh, void (*doall)(type *)) \ { \ - OPENSSL_LH_set_down_load((OPENSSL_LHASH *)lh, dl); \ + OPENSSL_LH_doall((OPENSSL_LHASH *)lh, (OPENSSL_LH_DOALL_FUNC)doall); \ } \ - static ossl_unused ossl_inline void lh_##type##_doall(LHASH_OF(type) *lh, \ - void (*doall)(type *)) \ + static ossl_unused ossl_inline LHASH_OF(type) * \ + lh_##type##_new(unsigned long (*hfn)(const type *), \ + int (*cfn)(const type *, const type *)) \ { \ - OPENSSL_LH_doall((OPENSSL_LHASH *)lh, (OPENSSL_LH_DOALL_FUNC)doall); \ + return (LHASH_OF(type) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new((OPENSSL_LH_HASHFUNC)hfn, (OPENSSL_LH_COMPFUNC)cfn), \ + lh_##type##_hfn_thunk, lh_##type##_cfn_thunk, \ + lh_##type##_doall_thunk, \ + lh_##type##_doall_arg_thunk); \ } \ - static ossl_unused ossl_inline void lh_##type##_doall_arg(LHASH_OF(type) *lh, \ - void (*doallarg)(type *, void *), \ - void *arg) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall_arg(LHASH_OF(type) *lh, \ + void (*doallarg)(type *, void *), void *arg) \ { \ OPENSSL_LH_doall_arg((OPENSSL_LHASH *)lh, \ (OPENSSL_LH_DOALL_FUNCARG)doallarg, arg); \ } \ LHASH_OF(type) +# define DEFINE_LHASH_OF(type) \ + DEFINE_LHASH_OF_EX(type); \ + DEFINE_LHASH_OF_DEPRECATED(type) \ + LHASH_OF(type) + #define IMPLEMENT_LHASH_DOALL_ARG_CONST(type, argtype) \ int_implement_lhash_doall(type, argtype, const type) @@ -240,17 +341,26 @@ void OPENSSL_LH_node_usage_stats_bio(const OPENSSL_LHASH *lh, BIO *out); int_implement_lhash_doall(type, argtype, type) #define int_implement_lhash_doall(type, argtype, cbargtype) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall_##argtype##_thunk(void *node, void *arg, OPENSSL_LH_DOALL_FUNCARG fn) \ + { \ + void (*fn_conv)(cbargtype *, argtype *) = (void (*)(cbargtype *, argtype *))fn; \ + fn_conv((cbargtype *)node, (argtype *)arg); \ + } \ static ossl_unused ossl_inline void \ lh_##type##_doall_##argtype(LHASH_OF(type) *lh, \ void (*fn)(cbargtype *, argtype *), \ argtype *arg) \ { \ - OPENSSL_LH_doall_arg((OPENSSL_LHASH *)lh, (OPENSSL_LH_DOALL_FUNCARG)fn, (void *)arg); \ + OPENSSL_LH_doall_arg_thunk((OPENSSL_LHASH *)lh, \ + lh_##type##_doall_##argtype##_thunk, \ + (OPENSSL_LH_DOALL_FUNCARG)fn, \ + (void *)arg); \ } \ LHASH_OF(type) DEFINE_LHASH_OF_INTERNAL(OPENSSL_STRING); -#define lh_OPENSSL_STRING_new(hfn, cmp) ((LHASH_OF(OPENSSL_STRING) *)OPENSSL_LH_new(ossl_check_OPENSSL_STRING_lh_hashfunc_type(hfn), ossl_check_OPENSSL_STRING_lh_compfunc_type(cmp))) +#define lh_OPENSSL_STRING_new(hfn, cmp) ((LHASH_OF(OPENSSL_STRING) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new(ossl_check_OPENSSL_STRING_lh_hashfunc_type(hfn), ossl_check_OPENSSL_STRING_lh_compfunc_type(cmp)), lh_OPENSSL_STRING_hash_thunk, lh_OPENSSL_STRING_comp_thunk, lh_OPENSSL_STRING_doall_thunk, lh_OPENSSL_STRING_doall_arg_thunk)) #define lh_OPENSSL_STRING_free(lh) OPENSSL_LH_free(ossl_check_OPENSSL_STRING_lh_type(lh)) #define lh_OPENSSL_STRING_flush(lh) OPENSSL_LH_flush(ossl_check_OPENSSL_STRING_lh_type(lh)) #define lh_OPENSSL_STRING_insert(lh, ptr) ((OPENSSL_STRING *)OPENSSL_LH_insert(ossl_check_OPENSSL_STRING_lh_type(lh), ossl_check_OPENSSL_STRING_lh_plain_type(ptr))) @@ -265,7 +375,7 @@ DEFINE_LHASH_OF_INTERNAL(OPENSSL_STRING); #define lh_OPENSSL_STRING_set_down_load(lh, dl) OPENSSL_LH_set_down_load(ossl_check_OPENSSL_STRING_lh_type(lh), dl) #define lh_OPENSSL_STRING_doall(lh, dfn) OPENSSL_LH_doall(ossl_check_OPENSSL_STRING_lh_type(lh), ossl_check_OPENSSL_STRING_lh_doallfunc_type(dfn)) DEFINE_LHASH_OF_INTERNAL(OPENSSL_CSTRING); -#define lh_OPENSSL_CSTRING_new(hfn, cmp) ((LHASH_OF(OPENSSL_CSTRING) *)OPENSSL_LH_new(ossl_check_OPENSSL_CSTRING_lh_hashfunc_type(hfn), ossl_check_OPENSSL_CSTRING_lh_compfunc_type(cmp))) +#define lh_OPENSSL_CSTRING_new(hfn, cmp) ((LHASH_OF(OPENSSL_CSTRING) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new(ossl_check_OPENSSL_CSTRING_lh_hashfunc_type(hfn), ossl_check_OPENSSL_CSTRING_lh_compfunc_type(cmp)), lh_OPENSSL_CSTRING_hash_thunk, lh_OPENSSL_CSTRING_comp_thunk, lh_OPENSSL_CSTRING_doall_thunk, lh_OPENSSL_CSTRING_doall_arg_thunk)) #define lh_OPENSSL_CSTRING_free(lh) OPENSSL_LH_free(ossl_check_OPENSSL_CSTRING_lh_type(lh)) #define lh_OPENSSL_CSTRING_flush(lh) OPENSSL_LH_flush(ossl_check_OPENSSL_CSTRING_lh_type(lh)) #define lh_OPENSSL_CSTRING_insert(lh, ptr) ((OPENSSL_CSTRING *)OPENSSL_LH_insert(ossl_check_OPENSSL_CSTRING_lh_type(lh), ossl_check_OPENSSL_CSTRING_lh_plain_type(ptr))) diff --git a/deps/openssl/config/archs/linux-armv4/no-asm/include/openssl/opensslv.h b/deps/openssl/config/archs/linux-armv4/no-asm/include/openssl/opensslv.h index 5fb5bc63056fe0..dd50d89cb9982d 100644 --- a/deps/openssl/config/archs/linux-armv4/no-asm/include/openssl/opensslv.h +++ b/deps/openssl/config/archs/linux-armv4/no-asm/include/openssl/opensslv.h @@ -28,8 +28,8 @@ extern "C" { * These macros express version number MAJOR.MINOR.PATCH exactly */ # define OPENSSL_VERSION_MAJOR 3 -# define OPENSSL_VERSION_MINOR 0 -# define OPENSSL_VERSION_PATCH 17 +# define OPENSSL_VERSION_MINOR 5 +# define OPENSSL_VERSION_PATCH 1 /* * Additional version information @@ -74,8 +74,8 @@ extern "C" { * longer variant with OPENSSL_VERSION_PRE_RELEASE_STR and * OPENSSL_VERSION_BUILD_METADATA_STR appended. */ -# define OPENSSL_VERSION_STR "3.0.17" -# define OPENSSL_FULL_VERSION_STR "3.0.17" +# define OPENSSL_VERSION_STR "3.5.1" +# define OPENSSL_FULL_VERSION_STR "3.5.1" /* * SECTION 3: ADDITIONAL METADATA @@ -88,7 +88,7 @@ extern "C" { * SECTION 4: BACKWARD COMPATIBILITY */ -# define OPENSSL_VERSION_TEXT "OpenSSL 3.0.17 1 Jul 2025" +# define OPENSSL_VERSION_TEXT "OpenSSL 3.5.1 1 Jul 2025" /* Synthesize OPENSSL_VERSION_NUMBER with the layout 0xMNN00PPSL */ # ifdef OPENSSL_VERSION_PRE_RELEASE diff --git a/deps/openssl/config/archs/linux-armv4/no-asm/include/openssl/pkcs12.h b/deps/openssl/config/archs/linux-armv4/no-asm/include/openssl/pkcs12.h index c5e0cab06491ec..0809645dad0bbf 100644 --- a/deps/openssl/config/archs/linux-armv4/no-asm/include/openssl/pkcs12.h +++ b/deps/openssl/config/archs/linux-armv4/no-asm/include/openssl/pkcs12.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/pkcs12.h.in * - * Copyright 1999-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1999-2024 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -25,6 +25,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -41,6 +44,7 @@ extern "C" { # define PKCS12_MAC_KEY_LENGTH 20 +/* The macro is expected to be used only internally. Kept for backwards compatibility. */ # define PKCS12_SALT_LEN 8 /* It's not clear if these are actually needed... */ @@ -130,7 +134,9 @@ int PKCS12_SAFEBAG_get_bag_nid(const PKCS12_SAFEBAG *bag); const ASN1_TYPE *PKCS12_SAFEBAG_get0_bag_obj(const PKCS12_SAFEBAG *bag); const ASN1_OBJECT *PKCS12_SAFEBAG_get0_bag_type(const PKCS12_SAFEBAG *bag); +X509 *PKCS12_SAFEBAG_get1_cert_ex(const PKCS12_SAFEBAG *bag, OSSL_LIB_CTX *libctx, const char *propq); X509 *PKCS12_SAFEBAG_get1_cert(const PKCS12_SAFEBAG *bag); +X509_CRL *PKCS12_SAFEBAG_get1_crl_ex(const PKCS12_SAFEBAG *bag, OSSL_LIB_CTX *libctx, const char *propq); X509_CRL *PKCS12_SAFEBAG_get1_crl(const PKCS12_SAFEBAG *bag); const STACK_OF(PKCS12_SAFEBAG) * PKCS12_SAFEBAG_get0_safes(const PKCS12_SAFEBAG *bag); @@ -218,6 +224,7 @@ ASN1_TYPE *PKCS12_get_attr_gen(const STACK_OF(X509_ATTRIBUTE) *attrs, char *PKCS12_get_friendlyname(PKCS12_SAFEBAG *bag); const STACK_OF(X509_ATTRIBUTE) * PKCS12_SAFEBAG_get0_attrs(const PKCS12_SAFEBAG *bag); +void PKCS12_SAFEBAG_set0_attrs(PKCS12_SAFEBAG *bag, STACK_OF(X509_ATTRIBUTE) *attrs); unsigned char *PKCS12_pbe_crypt(const X509_ALGOR *algor, const char *pass, int passlen, const unsigned char *in, int inlen, @@ -285,6 +292,9 @@ int PKCS12_verify_mac(PKCS12 *p12, const char *pass, int passlen); int PKCS12_set_mac(PKCS12 *p12, const char *pass, int passlen, unsigned char *salt, int saltlen, int iter, const EVP_MD *md_type); +int PKCS12_set_pbmac1_pbkdf2(PKCS12 *p12, const char *pass, int passlen, + unsigned char *salt, int saltlen, int iter, + const EVP_MD *md_type, const char *prf_md_name); int PKCS12_setup_mac(PKCS12 *p12, int iter, unsigned char *salt, int saltlen, const EVP_MD *md_type); unsigned char *OPENSSL_asc2uni(const char *asc, int asclen, @@ -305,6 +315,7 @@ DECLARE_ASN1_ITEM(PKCS12_AUTHSAFES) void PKCS12_PBE_add(void); int PKCS12_parse(PKCS12 *p12, const char *pass, EVP_PKEY **pkey, X509 **cert, STACK_OF(X509) **ca); +typedef int PKCS12_create_cb(PKCS12_SAFEBAG *bag, void *cbarg); PKCS12 *PKCS12_create(const char *pass, const char *name, EVP_PKEY *pkey, X509 *cert, STACK_OF(X509) *ca, int nid_key, int nid_cert, int iter, int mac_iter, int keytype); @@ -312,6 +323,11 @@ PKCS12 *PKCS12_create_ex(const char *pass, const char *name, EVP_PKEY *pkey, X509 *cert, STACK_OF(X509) *ca, int nid_key, int nid_cert, int iter, int mac_iter, int keytype, OSSL_LIB_CTX *ctx, const char *propq); +PKCS12 *PKCS12_create_ex2(const char *pass, const char *name, EVP_PKEY *pkey, + X509 *cert, STACK_OF(X509) *ca, int nid_key, int nid_cert, + int iter, int mac_iter, int keytype, + OSSL_LIB_CTX *ctx, const char *propq, + PKCS12_create_cb *cb, void *cbarg); PKCS12_SAFEBAG *PKCS12_add_cert(STACK_OF(PKCS12_SAFEBAG) **pbags, X509 *cert); PKCS12_SAFEBAG *PKCS12_add_key(STACK_OF(PKCS12_SAFEBAG) **pbags, diff --git a/deps/openssl/config/archs/linux-armv4/no-asm/include/openssl/pkcs7.h b/deps/openssl/config/archs/linux-armv4/no-asm/include/openssl/pkcs7.h index 0ce79bf4fa160e..fa68462aff973b 100644 --- a/deps/openssl/config/archs/linux-armv4/no-asm/include/openssl/pkcs7.h +++ b/deps/openssl/config/archs/linux-armv4/no-asm/include/openssl/pkcs7.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/pkcs7.h.in * - * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -28,6 +28,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -131,8 +134,8 @@ SKM_DEFINE_STACK_OF_INTERNAL(PKCS7_RECIP_INFO, PKCS7_RECIP_INFO, PKCS7_RECIP_INF typedef struct pkcs7_signed_st { ASN1_INTEGER *version; /* version 1 */ STACK_OF(X509_ALGOR) *md_algs; /* md used */ - STACK_OF(X509) *cert; /* [ 0 ] */ - STACK_OF(X509_CRL) *crl; /* [ 1 ] */ + STACK_OF(X509) *cert; /* [ 0 ] */ /* name should be 'certificates' */ + STACK_OF(X509_CRL) *crl; /* [ 1 ] */ /* name should be 'crls' */ STACK_OF(PKCS7_SIGNER_INFO) *signer_info; struct pkcs7_st *contents; } PKCS7_SIGNED; @@ -158,8 +161,8 @@ typedef struct pkcs7_enveloped_st { typedef struct pkcs7_signedandenveloped_st { ASN1_INTEGER *version; /* version 1 */ STACK_OF(X509_ALGOR) *md_algs; /* md used */ - STACK_OF(X509) *cert; /* [ 0 ] */ - STACK_OF(X509_CRL) *crl; /* [ 1 ] */ + STACK_OF(X509) *cert; /* [ 0 ] */ /* name should be 'certificates' */ + STACK_OF(X509_CRL) *crl; /* [ 1 ] */ /* name should be 'crls' */ STACK_OF(PKCS7_SIGNER_INFO) *signer_info; PKCS7_ENC_CONTENT *enc_data; STACK_OF(PKCS7_RECIP_INFO) *recipientinfo; @@ -200,7 +203,7 @@ typedef struct pkcs7_st { /* NID_pkcs7_data */ ASN1_OCTET_STRING *data; /* NID_pkcs7_signed */ - PKCS7_SIGNED *sign; + PKCS7_SIGNED *sign; /* field name 'signed' would clash with C keyword */ /* NID_pkcs7_enveloped */ PKCS7_ENVELOPE *enveloped; /* NID_pkcs7_signedAndEnveloped */ @@ -341,13 +344,13 @@ int PKCS7_SIGNER_INFO_set(PKCS7_SIGNER_INFO *p7i, X509 *x509, EVP_PKEY *pkey, const EVP_MD *dgst); int PKCS7_SIGNER_INFO_sign(PKCS7_SIGNER_INFO *si); int PKCS7_add_signer(PKCS7 *p7, PKCS7_SIGNER_INFO *p7i); -int PKCS7_add_certificate(PKCS7 *p7, X509 *x509); -int PKCS7_add_crl(PKCS7 *p7, X509_CRL *x509); +int PKCS7_add_certificate(PKCS7 *p7, X509 *cert); +int PKCS7_add_crl(PKCS7 *p7, X509_CRL *crl); int PKCS7_content_new(PKCS7 *p7, int nid); int PKCS7_dataVerify(X509_STORE *cert_store, X509_STORE_CTX *ctx, BIO *bio, PKCS7 *p7, PKCS7_SIGNER_INFO *si); int PKCS7_signatureVerify(BIO *bio, PKCS7 *p7, PKCS7_SIGNER_INFO *si, - X509 *x509); + X509 *signer); BIO *PKCS7_dataInit(PKCS7 *p7, BIO *bio); int PKCS7_dataFinal(PKCS7 *p7, BIO *bio); diff --git a/deps/openssl/config/archs/linux-armv4/no-asm/include/openssl/ssl.h b/deps/openssl/config/archs/linux-armv4/no-asm/include/openssl/ssl.h index 3df725c56d6c5e..7e3d89c7ef3dc9 100644 --- a/deps/openssl/config/archs/linux-armv4/no-asm/include/openssl/ssl.h +++ b/deps/openssl/config/archs/linux-armv4/no-asm/include/openssl/ssl.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/ssl.h.in * - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved * Copyright 2005 Nokia. All rights reserved. * @@ -24,6 +24,7 @@ # endif # include +# include # include # include # include @@ -42,6 +43,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -231,10 +235,8 @@ typedef struct ssl_cipher_st SSL_CIPHER; typedef struct ssl_session_st SSL_SESSION; typedef struct tls_sigalgs_st TLS_SIGALGS; typedef struct ssl_conf_ctx_st SSL_CONF_CTX; -typedef struct ssl_comp_st SSL_COMP; STACK_OF(SSL_CIPHER); -STACK_OF(SSL_COMP); /* SRTP protection profiles for use with the use_srtp extension (RFC 5764)*/ typedef struct srtp_protection_profile_st { @@ -278,28 +280,31 @@ typedef int (*tls_session_secret_cb_fn)(SSL *s, void *secret, int *secret_len, /* Extension context codes */ /* This extension is only allowed in TLS */ -#define SSL_EXT_TLS_ONLY 0x0001 +#define SSL_EXT_TLS_ONLY 0x00001 /* This extension is only allowed in DTLS */ -#define SSL_EXT_DTLS_ONLY 0x0002 +#define SSL_EXT_DTLS_ONLY 0x00002 /* Some extensions may be allowed in DTLS but we don't implement them for it */ -#define SSL_EXT_TLS_IMPLEMENTATION_ONLY 0x0004 +#define SSL_EXT_TLS_IMPLEMENTATION_ONLY 0x00004 /* Most extensions are not defined for SSLv3 but EXT_TYPE_renegotiate is */ -#define SSL_EXT_SSL3_ALLOWED 0x0008 +#define SSL_EXT_SSL3_ALLOWED 0x00008 /* Extension is only defined for TLS1.2 and below */ -#define SSL_EXT_TLS1_2_AND_BELOW_ONLY 0x0010 +#define SSL_EXT_TLS1_2_AND_BELOW_ONLY 0x00010 /* Extension is only defined for TLS1.3 and above */ -#define SSL_EXT_TLS1_3_ONLY 0x0020 +#define SSL_EXT_TLS1_3_ONLY 0x00020 /* Ignore this extension during parsing if we are resuming */ -#define SSL_EXT_IGNORE_ON_RESUMPTION 0x0040 -#define SSL_EXT_CLIENT_HELLO 0x0080 +#define SSL_EXT_IGNORE_ON_RESUMPTION 0x00040 +#define SSL_EXT_CLIENT_HELLO 0x00080 /* Really means TLS1.2 or below */ -#define SSL_EXT_TLS1_2_SERVER_HELLO 0x0100 -#define SSL_EXT_TLS1_3_SERVER_HELLO 0x0200 -#define SSL_EXT_TLS1_3_ENCRYPTED_EXTENSIONS 0x0400 -#define SSL_EXT_TLS1_3_HELLO_RETRY_REQUEST 0x0800 -#define SSL_EXT_TLS1_3_CERTIFICATE 0x1000 -#define SSL_EXT_TLS1_3_NEW_SESSION_TICKET 0x2000 -#define SSL_EXT_TLS1_3_CERTIFICATE_REQUEST 0x4000 +#define SSL_EXT_TLS1_2_SERVER_HELLO 0x00100 +#define SSL_EXT_TLS1_3_SERVER_HELLO 0x00200 +#define SSL_EXT_TLS1_3_ENCRYPTED_EXTENSIONS 0x00400 +#define SSL_EXT_TLS1_3_HELLO_RETRY_REQUEST 0x00800 +#define SSL_EXT_TLS1_3_CERTIFICATE 0x01000 +#define SSL_EXT_TLS1_3_NEW_SESSION_TICKET 0x02000 +#define SSL_EXT_TLS1_3_CERTIFICATE_REQUEST 0x04000 +#define SSL_EXT_TLS1_3_CERTIFICATE_COMPRESSION 0x08000 +/* When sending a raw public key in a certificate message */ +#define SSL_EXT_TLS1_3_RAW_PUBLIC_KEY 0x10000 /* Typedefs for handling custom extensions */ @@ -404,7 +409,7 @@ typedef int (*SSL_async_callback_fn)(SSL *s, void *arg); */ # define SSL_OP_CIPHER_SERVER_PREFERENCE SSL_OP_BIT(22) /* - * If set, a server will allow a client to issue a SSLv3.0 version + * If set, a server will allow a client to issue an SSLv3.0 version * number as latest version supported in the premaster secret, even when * TLSv1.0 (version 3.1) was announced in the client hello. Normally * this is forbidden to prevent version rollback attacks. @@ -430,6 +435,19 @@ typedef int (*SSL_async_callback_fn)(SSL *s, void *arg); * interoperability with CryptoPro CSP 3.x */ # define SSL_OP_CRYPTOPRO_TLSEXT_BUG SSL_OP_BIT(31) +/* + * Disable RFC8879 certificate compression + * SSL_OP_NO_TX_CERTIFICATE_COMPRESSION: don't send compressed certificates, + * and ignore the extension when received. + * SSL_OP_NO_RX_CERTIFICATE_COMPRESSION: don't send the extension, and + * subsequently indicating that receiving is not supported + */ +# define SSL_OP_NO_TX_CERTIFICATE_COMPRESSION SSL_OP_BIT(32) +# define SSL_OP_NO_RX_CERTIFICATE_COMPRESSION SSL_OP_BIT(33) + /* Enable KTLS TX zerocopy on Linux */ +# define SSL_OP_ENABLE_KTLS_TX_ZEROCOPY_SENDFILE SSL_OP_BIT(34) + +#define SSL_OP_PREFER_NO_DHE_KEX SSL_OP_BIT(35) /* * Option "collections." @@ -574,6 +592,8 @@ typedef int (*SSL_async_callback_fn)(SSL *s, void *arg); # define CERT_PKEY_CERT_TYPE 0x400 /* Cert chain suitable to Suite B */ # define CERT_PKEY_SUITEB 0x800 +/* Cert pkey valid for raw public key use */ +# define CERT_PKEY_RPK 0x1000 # define SSL_CONF_FLAG_CMDLINE 0x1 # define SSL_CONF_FLAG_FILE 0x2 @@ -965,6 +985,7 @@ uint32_t SSL_get_recv_max_early_data(const SSL *s); # include /* This is mostly sslv3 with a few tweaks */ # include /* Datagram TLS */ # include /* Support for the use_srtp extension */ +# include #ifdef __cplusplus extern "C" { @@ -1000,32 +1021,6 @@ SKM_DEFINE_STACK_OF_INTERNAL(SSL_CIPHER, const SSL_CIPHER, SSL_CIPHER) #define sk_SSL_CIPHER_dup(sk) ((STACK_OF(SSL_CIPHER) *)OPENSSL_sk_dup(ossl_check_const_SSL_CIPHER_sk_type(sk))) #define sk_SSL_CIPHER_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(SSL_CIPHER) *)OPENSSL_sk_deep_copy(ossl_check_const_SSL_CIPHER_sk_type(sk), ossl_check_SSL_CIPHER_copyfunc_type(copyfunc), ossl_check_SSL_CIPHER_freefunc_type(freefunc))) #define sk_SSL_CIPHER_set_cmp_func(sk, cmp) ((sk_SSL_CIPHER_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_SSL_CIPHER_sk_type(sk), ossl_check_SSL_CIPHER_compfunc_type(cmp))) -SKM_DEFINE_STACK_OF_INTERNAL(SSL_COMP, SSL_COMP, SSL_COMP) -#define sk_SSL_COMP_num(sk) OPENSSL_sk_num(ossl_check_const_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_value(sk, idx) ((SSL_COMP *)OPENSSL_sk_value(ossl_check_const_SSL_COMP_sk_type(sk), (idx))) -#define sk_SSL_COMP_new(cmp) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new(ossl_check_SSL_COMP_compfunc_type(cmp))) -#define sk_SSL_COMP_new_null() ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new_null()) -#define sk_SSL_COMP_new_reserve(cmp, n) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new_reserve(ossl_check_SSL_COMP_compfunc_type(cmp), (n))) -#define sk_SSL_COMP_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_SSL_COMP_sk_type(sk), (n)) -#define sk_SSL_COMP_free(sk) OPENSSL_sk_free(ossl_check_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_zero(sk) OPENSSL_sk_zero(ossl_check_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_delete(sk, i) ((SSL_COMP *)OPENSSL_sk_delete(ossl_check_SSL_COMP_sk_type(sk), (i))) -#define sk_SSL_COMP_delete_ptr(sk, ptr) ((SSL_COMP *)OPENSSL_sk_delete_ptr(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr))) -#define sk_SSL_COMP_push(sk, ptr) OPENSSL_sk_push(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) -#define sk_SSL_COMP_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) -#define sk_SSL_COMP_pop(sk) ((SSL_COMP *)OPENSSL_sk_pop(ossl_check_SSL_COMP_sk_type(sk))) -#define sk_SSL_COMP_shift(sk) ((SSL_COMP *)OPENSSL_sk_shift(ossl_check_SSL_COMP_sk_type(sk))) -#define sk_SSL_COMP_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_SSL_COMP_sk_type(sk),ossl_check_SSL_COMP_freefunc_type(freefunc)) -#define sk_SSL_COMP_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr), (idx)) -#define sk_SSL_COMP_set(sk, idx, ptr) ((SSL_COMP *)OPENSSL_sk_set(ossl_check_SSL_COMP_sk_type(sk), (idx), ossl_check_SSL_COMP_type(ptr))) -#define sk_SSL_COMP_find(sk, ptr) OPENSSL_sk_find(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) -#define sk_SSL_COMP_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) -#define sk_SSL_COMP_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr), pnum) -#define sk_SSL_COMP_sort(sk) OPENSSL_sk_sort(ossl_check_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_dup(sk) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_dup(ossl_check_const_SSL_COMP_sk_type(sk))) -#define sk_SSL_COMP_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_deep_copy(ossl_check_const_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_copyfunc_type(copyfunc), ossl_check_SSL_COMP_freefunc_type(freefunc))) -#define sk_SSL_COMP_set_cmp_func(sk, cmp) ((sk_SSL_COMP_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_compfunc_type(cmp))) /* compatibility */ @@ -1066,6 +1061,7 @@ typedef enum { DTLS_ST_CR_HELLO_VERIFY_REQUEST, TLS_ST_CR_SRVR_HELLO, TLS_ST_CR_CERT, + TLS_ST_CR_COMP_CERT, TLS_ST_CR_CERT_STATUS, TLS_ST_CR_KEY_EXCH, TLS_ST_CR_CERT_REQ, @@ -1075,6 +1071,7 @@ typedef enum { TLS_ST_CR_FINISHED, TLS_ST_CW_CLNT_HELLO, TLS_ST_CW_CERT, + TLS_ST_CW_COMP_CERT, TLS_ST_CW_KEY_EXCH, TLS_ST_CW_CERT_VRFY, TLS_ST_CW_CHANGE, @@ -1085,10 +1082,12 @@ typedef enum { DTLS_ST_SW_HELLO_VERIFY_REQUEST, TLS_ST_SW_SRVR_HELLO, TLS_ST_SW_CERT, + TLS_ST_SW_COMP_CERT, TLS_ST_SW_KEY_EXCH, TLS_ST_SW_CERT_REQ, TLS_ST_SW_SRVR_DONE, TLS_ST_SR_CERT, + TLS_ST_SR_COMP_CERT, TLS_ST_SR_KEY_EXCH, TLS_ST_SR_CERT_VRFY, TLS_ST_SR_NEXT_PROTO, @@ -1380,9 +1379,13 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) # define SSL_CTRL_GET_SIGNATURE_NID 132 # define SSL_CTRL_GET_TMP_KEY 133 # define SSL_CTRL_GET_NEGOTIATED_GROUP 134 +# define SSL_CTRL_GET_IANA_GROUPS 135 # define SSL_CTRL_SET_RETRY_VERIFY 136 # define SSL_CTRL_GET_VERIFY_CERT_STORE 137 # define SSL_CTRL_GET_CHAIN_CERT_STORE 138 +# define SSL_CTRL_GET0_IMPLEMENTED_GROUPS 139 +# define SSL_CTRL_GET_SIGNATURE_NAME 140 +# define SSL_CTRL_GET_PEER_SIGNATURE_NAME 141 # define SSL_CERT_SET_FIRST 1 # define SSL_CERT_SET_NEXT 2 # define SSL_CERT_SET_SERVER 3 @@ -1485,10 +1488,15 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) # define SSL_get1_groups(s, glist) \ SSL_ctrl(s,SSL_CTRL_GET_GROUPS,0,(int*)(glist)) +# define SSL_get0_iana_groups(s, plst) \ + SSL_ctrl(s,SSL_CTRL_GET_IANA_GROUPS,0,(uint16_t **)(plst)) # define SSL_CTX_set1_groups(ctx, glist, glistlen) \ SSL_CTX_ctrl(ctx,SSL_CTRL_SET_GROUPS,glistlen,(int *)(glist)) # define SSL_CTX_set1_groups_list(ctx, s) \ SSL_CTX_ctrl(ctx,SSL_CTRL_SET_GROUPS_LIST,0,(char *)(s)) +# define SSL_CTX_get0_implemented_groups(ctx, all, out) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_GET0_IMPLEMENTED_GROUPS, all, \ + (STACK_OF(OPENSSL_CSTRING) *)(out)) # define SSL_set1_groups(s, glist, glistlen) \ SSL_ctrl(s,SSL_CTRL_SET_GROUPS,glistlen,(char *)(glist)) # define SSL_set1_groups_list(s, str) \ @@ -1520,8 +1528,12 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) (char *)(clist)) # define SSL_set1_client_certificate_types(s, clist, clistlen) \ SSL_ctrl(s,SSL_CTRL_SET_CLIENT_CERT_TYPES,clistlen,(char *)(clist)) +# define SSL_get0_signature_name(s, str) \ + SSL_ctrl(s,SSL_CTRL_GET_SIGNATURE_NAME,0,(1?(str):(const char **)NULL)) # define SSL_get_signature_nid(s, pn) \ SSL_ctrl(s,SSL_CTRL_GET_SIGNATURE_NID,0,pn) +# define SSL_get0_peer_signature_name(s, str) \ + SSL_ctrl(s,SSL_CTRL_GET_PEER_SIGNATURE_NAME,0,(1?(str):(const char **)NULL)) # define SSL_get_peer_signature_nid(s, pn) \ SSL_ctrl(s,SSL_CTRL_GET_PEER_SIGNATURE_NID,0,pn) # define SSL_get_peer_tmp_key(s, pk) \ @@ -1549,6 +1561,7 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) # define SSL_get_max_proto_version(s) \ SSL_ctrl(s, SSL_CTRL_GET_MAX_PROTO_VERSION, 0, NULL) +const char *SSL_get0_group_name(SSL *s); const char *SSL_group_to_name(SSL *s, int id); /* Backwards compatibility, original 1.1.0 names */ @@ -1613,7 +1626,11 @@ void SSL_CTX_set1_cert_store(SSL_CTX *, X509_STORE *); __owur int SSL_want(const SSL *s); __owur int SSL_clear(SSL *s); +#ifndef OPENSSL_NO_DEPRECATED_3_4 +OSSL_DEPRECATEDIN_3_4_FOR("not Y2038-safe, replace with SSL_CTX_flush_sessions_ex()") void SSL_CTX_flush_sessions(SSL_CTX *ctx, long tm); +#endif +void SSL_CTX_flush_sessions_ex(SSL_CTX *ctx, time_t tm); __owur const SSL_CIPHER *SSL_get_current_cipher(const SSL *s); __owur const SSL_CIPHER *SSL_get_pending_cipher(const SSL *s); @@ -1725,13 +1742,21 @@ __owur const char *SSL_state_string(const SSL *s); __owur const char *SSL_rstate_string(const SSL *s); __owur const char *SSL_state_string_long(const SSL *s); __owur const char *SSL_rstate_string_long(const SSL *s); + +#ifndef OPENSSL_NO_DEPRECATED_3_4 +OSSL_DEPRECATEDIN_3_4_FOR("not Y2038-safe, replace with SSL_SESSION_get_time_ex()") __owur long SSL_SESSION_get_time(const SSL_SESSION *s); +OSSL_DEPRECATEDIN_3_4_FOR("not Y2038-safe, replace with SSL_SESSION_set_time_ex()") __owur long SSL_SESSION_set_time(SSL_SESSION *s, long t); +#endif __owur long SSL_SESSION_get_timeout(const SSL_SESSION *s); __owur long SSL_SESSION_set_timeout(SSL_SESSION *s, long t); __owur int SSL_SESSION_get_protocol_version(const SSL_SESSION *s); __owur int SSL_SESSION_set_protocol_version(SSL_SESSION *s, int version); +__owur time_t SSL_SESSION_get_time_ex(const SSL_SESSION *s); +__owur time_t SSL_SESSION_set_time_ex(SSL_SESSION *s, time_t t); + __owur const char *SSL_SESSION_get0_hostname(const SSL_SESSION *s); __owur int SSL_SESSION_set1_hostname(SSL_SESSION *s, const char *hostname); void SSL_SESSION_get0_alpn_selected(const SSL_SESSION *s, @@ -1783,6 +1808,9 @@ __owur int SSL_has_matching_session_id(const SSL *s, unsigned int id_len); SSL_SESSION *d2i_SSL_SESSION(SSL_SESSION **a, const unsigned char **pp, long length); +SSL_SESSION *d2i_SSL_SESSION_ex(SSL_SESSION **a, const unsigned char **pp, + long length, OSSL_LIB_CTX *libctx, + const char *propq); # ifdef OPENSSL_X509_H __owur X509 *SSL_get0_peer_certificate(const SSL *s); @@ -1840,6 +1868,8 @@ __owur int SSL_CTX_set_session_id_context(SSL_CTX *ctx, SSL *SSL_new(SSL_CTX *ctx); int SSL_up_ref(SSL *s); int SSL_is_dtls(const SSL *s); +int SSL_is_tls(const SSL *s); +int SSL_is_quic(const SSL *s); __owur int SSL_set_session_id_context(SSL *ssl, const unsigned char *sid_ctx, unsigned int sid_ctx_len); @@ -1848,8 +1878,8 @@ __owur int SSL_set_purpose(SSL *ssl, int purpose); __owur int SSL_CTX_set_trust(SSL_CTX *ctx, int trust); __owur int SSL_set_trust(SSL *ssl, int trust); -__owur int SSL_set1_host(SSL *s, const char *hostname); -__owur int SSL_add1_host(SSL *s, const char *hostname); +__owur int SSL_set1_host(SSL *s, const char *host); +__owur int SSL_add1_host(SSL *s, const char *host); __owur const char *SSL_get0_peername(SSL *s); void SSL_set_hostflags(SSL *s, unsigned int flags); @@ -1924,6 +1954,11 @@ OSSL_DEPRECATEDIN_3_0 __owur char *SSL_get_srp_userinfo(SSL *s); typedef int (*SSL_client_hello_cb_fn) (SSL *s, int *al, void *arg); void SSL_CTX_set_client_hello_cb(SSL_CTX *c, SSL_client_hello_cb_fn cb, void *arg); +typedef int (*SSL_new_pending_conn_cb_fn) (SSL_CTX *ctx, SSL *new_ssl, + void *arg); +void SSL_CTX_set_new_pending_conn_cb(SSL_CTX *c, SSL_new_pending_conn_cb_fn cb, + void *arg); + int SSL_client_hello_isv2(SSL *s); unsigned int SSL_client_hello_get0_legacy_version(SSL *s); size_t SSL_client_hello_get0_random(SSL *s, const unsigned char **out); @@ -1932,6 +1967,8 @@ size_t SSL_client_hello_get0_ciphers(SSL *s, const unsigned char **out); size_t SSL_client_hello_get0_compression_methods(SSL *s, const unsigned char **out); int SSL_client_hello_get1_extensions_present(SSL *s, int **out, size_t *outlen); +int SSL_client_hello_get_extension_order(SSL *s, uint16_t *exts, + size_t *num_exts); int SSL_client_hello_get0_ext(SSL *s, unsigned int type, const unsigned char **out, size_t *outlen); @@ -1978,6 +2015,12 @@ long SSL_callback_ctrl(SSL *, int, void (*)(void)); long SSL_CTX_ctrl(SSL_CTX *ctx, int cmd, long larg, void *parg); long SSL_CTX_callback_ctrl(SSL_CTX *, int, void (*)(void)); +# define SSL_WRITE_FLAG_CONCLUDE (1U << 0) + +__owur int SSL_write_ex2(SSL *s, const void *buf, size_t num, + uint64_t flags, + size_t *written); + # define SSL_EARLY_DATA_NOT_SENT 0 # define SSL_EARLY_DATA_REJECTED 1 # define SSL_EARLY_DATA_ACCEPTED 2 @@ -1986,6 +2029,7 @@ __owur int SSL_get_early_data_status(const SSL *s); __owur int SSL_get_error(const SSL *s, int ret_code); __owur const char *SSL_get_version(const SSL *s); +__owur int SSL_get_handshake_rtt(const SSL *s, uint64_t *rtt); /* This sets the 'default' SSL version that SSL_new() will create */ # ifndef OPENSSL_NO_DEPRECATED_3_0 @@ -2281,6 +2325,8 @@ void SSL_CTX_set_record_padding_callback(SSL_CTX *ctx, void SSL_CTX_set_record_padding_callback_arg(SSL_CTX *ctx, void *arg); void *SSL_CTX_get_record_padding_callback_arg(const SSL_CTX *ctx); int SSL_CTX_set_block_padding(SSL_CTX *ctx, size_t block_size); +int SSL_CTX_set_block_padding_ex(SSL_CTX *ctx, size_t app_block_size, + size_t hs_block_size); int SSL_set_record_padding_callback(SSL *ssl, size_t (*cb) (SSL *ssl, int type, @@ -2288,12 +2334,255 @@ int SSL_set_record_padding_callback(SSL *ssl, void SSL_set_record_padding_callback_arg(SSL *ssl, void *arg); void *SSL_get_record_padding_callback_arg(const SSL *ssl); int SSL_set_block_padding(SSL *ssl, size_t block_size); - +int SSL_set_block_padding_ex(SSL *ssl, size_t app_block_size, + size_t hs_block_size); int SSL_set_num_tickets(SSL *s, size_t num_tickets); size_t SSL_get_num_tickets(const SSL *s); int SSL_CTX_set_num_tickets(SSL_CTX *ctx, size_t num_tickets); size_t SSL_CTX_get_num_tickets(const SSL_CTX *ctx); +/* QUIC support */ +int SSL_handle_events(SSL *s); +__owur int SSL_get_event_timeout(SSL *s, struct timeval *tv, int *is_infinite); +__owur int SSL_get_rpoll_descriptor(SSL *s, BIO_POLL_DESCRIPTOR *desc); +__owur int SSL_get_wpoll_descriptor(SSL *s, BIO_POLL_DESCRIPTOR *desc); +__owur int SSL_net_read_desired(SSL *s); +__owur int SSL_net_write_desired(SSL *s); +__owur int SSL_set_blocking_mode(SSL *s, int blocking); +__owur int SSL_get_blocking_mode(SSL *s); +__owur int SSL_set1_initial_peer_addr(SSL *s, const BIO_ADDR *peer_addr); +__owur SSL *SSL_get0_connection(SSL *s); +__owur int SSL_is_connection(SSL *s); + +__owur int SSL_is_listener(SSL *ssl); +__owur SSL *SSL_get0_listener(SSL *s); +#define SSL_LISTENER_FLAG_NO_VALIDATE (1UL << 1) +__owur SSL *SSL_new_listener(SSL_CTX *ctx, uint64_t flags); +__owur SSL *SSL_new_listener_from(SSL *ssl, uint64_t flags); +__owur SSL *SSL_new_from_listener(SSL *ssl, uint64_t flags); +#define SSL_ACCEPT_CONNECTION_NO_BLOCK (1UL << 0) +__owur SSL *SSL_accept_connection(SSL *ssl, uint64_t flags); +__owur size_t SSL_get_accept_connection_queue_len(SSL *ssl); +__owur int SSL_listen(SSL *ssl); + +__owur int SSL_is_domain(SSL *s); +__owur SSL *SSL_get0_domain(SSL *s); +__owur SSL *SSL_new_domain(SSL_CTX *ctx, uint64_t flags); + +#define SSL_DOMAIN_FLAG_SINGLE_THREAD (1U << 0) +#define SSL_DOMAIN_FLAG_MULTI_THREAD (1U << 1) +#define SSL_DOMAIN_FLAG_THREAD_ASSISTED (1U << 2) +#define SSL_DOMAIN_FLAG_BLOCKING (1U << 3) +#define SSL_DOMAIN_FLAG_LEGACY_BLOCKING (1U << 4) + +__owur int SSL_CTX_set_domain_flags(SSL_CTX *ctx, uint64_t domain_flags); +__owur int SSL_CTX_get_domain_flags(const SSL_CTX *ctx, uint64_t *domain_flags); +__owur int SSL_get_domain_flags(const SSL *ssl, uint64_t *domain_flags); + +#define SSL_STREAM_TYPE_NONE 0 +#define SSL_STREAM_TYPE_READ (1U << 0) +#define SSL_STREAM_TYPE_WRITE (1U << 1) +#define SSL_STREAM_TYPE_BIDI (SSL_STREAM_TYPE_READ | SSL_STREAM_TYPE_WRITE) +__owur int SSL_get_stream_type(SSL *s); + +__owur uint64_t SSL_get_stream_id(SSL *s); +__owur int SSL_is_stream_local(SSL *s); + +#define SSL_DEFAULT_STREAM_MODE_NONE 0 +#define SSL_DEFAULT_STREAM_MODE_AUTO_BIDI 1 +#define SSL_DEFAULT_STREAM_MODE_AUTO_UNI 2 +__owur int SSL_set_default_stream_mode(SSL *s, uint32_t mode); + +#define SSL_STREAM_FLAG_UNI (1U << 0) +#define SSL_STREAM_FLAG_NO_BLOCK (1U << 1) +#define SSL_STREAM_FLAG_ADVANCE (1U << 2) +__owur SSL *SSL_new_stream(SSL *s, uint64_t flags); + +#define SSL_INCOMING_STREAM_POLICY_AUTO 0 +#define SSL_INCOMING_STREAM_POLICY_ACCEPT 1 +#define SSL_INCOMING_STREAM_POLICY_REJECT 2 +__owur int SSL_set_incoming_stream_policy(SSL *s, int policy, uint64_t aec); + +#define SSL_ACCEPT_STREAM_NO_BLOCK (1U << 0) +__owur SSL *SSL_accept_stream(SSL *s, uint64_t flags); +__owur size_t SSL_get_accept_stream_queue_len(SSL *s); + +# ifndef OPENSSL_NO_QUIC +__owur int SSL_inject_net_dgram(SSL *s, const unsigned char *buf, + size_t buf_len, + const BIO_ADDR *peer, + const BIO_ADDR *local); +# endif + +typedef struct ssl_shutdown_ex_args_st { + uint64_t quic_error_code; + const char *quic_reason; +} SSL_SHUTDOWN_EX_ARGS; + +#define SSL_SHUTDOWN_FLAG_RAPID (1U << 0) +#define SSL_SHUTDOWN_FLAG_NO_STREAM_FLUSH (1U << 1) +#define SSL_SHUTDOWN_FLAG_NO_BLOCK (1U << 2) +#define SSL_SHUTDOWN_FLAG_WAIT_PEER (1U << 3) + +__owur int SSL_shutdown_ex(SSL *ssl, uint64_t flags, + const SSL_SHUTDOWN_EX_ARGS *args, + size_t args_len); + +__owur int SSL_stream_conclude(SSL *ssl, uint64_t flags); + +typedef struct ssl_stream_reset_args_st { + uint64_t quic_error_code; +} SSL_STREAM_RESET_ARGS; + +__owur int SSL_stream_reset(SSL *ssl, + const SSL_STREAM_RESET_ARGS *args, + size_t args_len); + +#define SSL_STREAM_STATE_NONE 0 +#define SSL_STREAM_STATE_OK 1 +#define SSL_STREAM_STATE_WRONG_DIR 2 +#define SSL_STREAM_STATE_FINISHED 3 +#define SSL_STREAM_STATE_RESET_LOCAL 4 +#define SSL_STREAM_STATE_RESET_REMOTE 5 +#define SSL_STREAM_STATE_CONN_CLOSED 6 +__owur int SSL_get_stream_read_state(SSL *ssl); +__owur int SSL_get_stream_write_state(SSL *ssl); + +__owur int SSL_get_stream_read_error_code(SSL *ssl, uint64_t *app_error_code); +__owur int SSL_get_stream_write_error_code(SSL *ssl, uint64_t *app_error_code); + +#define SSL_CONN_CLOSE_FLAG_LOCAL (1U << 0) +#define SSL_CONN_CLOSE_FLAG_TRANSPORT (1U << 1) + +typedef struct ssl_conn_close_info_st { + uint64_t error_code, frame_type; + const char *reason; + size_t reason_len; + uint32_t flags; +} SSL_CONN_CLOSE_INFO; + +__owur int SSL_get_conn_close_info(SSL *ssl, + SSL_CONN_CLOSE_INFO *info, + size_t info_len); + +# define SSL_VALUE_CLASS_GENERIC 0 +# define SSL_VALUE_CLASS_FEATURE_REQUEST 1 +# define SSL_VALUE_CLASS_FEATURE_PEER_REQUEST 2 +# define SSL_VALUE_CLASS_FEATURE_NEGOTIATED 3 + +# define SSL_VALUE_NONE 0 +# define SSL_VALUE_QUIC_STREAM_BIDI_LOCAL_AVAIL 1 +# define SSL_VALUE_QUIC_STREAM_BIDI_REMOTE_AVAIL 2 +# define SSL_VALUE_QUIC_STREAM_UNI_LOCAL_AVAIL 3 +# define SSL_VALUE_QUIC_STREAM_UNI_REMOTE_AVAIL 4 +# define SSL_VALUE_QUIC_IDLE_TIMEOUT 5 +# define SSL_VALUE_EVENT_HANDLING_MODE 6 +# define SSL_VALUE_STREAM_WRITE_BUF_SIZE 7 +# define SSL_VALUE_STREAM_WRITE_BUF_USED 8 +# define SSL_VALUE_STREAM_WRITE_BUF_AVAIL 9 + +# define SSL_VALUE_EVENT_HANDLING_MODE_INHERIT 0 +# define SSL_VALUE_EVENT_HANDLING_MODE_IMPLICIT 1 +# define SSL_VALUE_EVENT_HANDLING_MODE_EXPLICIT 2 + +int SSL_get_value_uint(SSL *s, uint32_t class_, uint32_t id, uint64_t *v); +int SSL_set_value_uint(SSL *s, uint32_t class_, uint32_t id, uint64_t v); + +# define SSL_get_generic_value_uint(ssl, id, v) \ + SSL_get_value_uint((ssl), SSL_VALUE_CLASS_GENERIC, (id), (v)) +# define SSL_set_generic_value_uint(ssl, id, v) \ + SSL_set_value_uint((ssl), SSL_VALUE_CLASS_GENERIC, (id), (v)) +# define SSL_get_feature_request_uint(ssl, id, v) \ + SSL_get_value_uint((ssl), SSL_VALUE_CLASS_FEATURE_REQUEST, (id), (v)) +# define SSL_set_feature_request_uint(ssl, id, v) \ + SSL_set_value_uint((ssl), SSL_VALUE_CLASS_FEATURE_REQUEST, (id), (v)) +# define SSL_get_feature_peer_request_uint(ssl, id, v) \ + SSL_get_value_uint((ssl), SSL_VALUE_CLASS_FEATURE_PEER_REQUEST, (id), (v)) +# define SSL_get_feature_negotiated_uint(ssl, id, v) \ + SSL_get_value_uint((ssl), SSL_VALUE_CLASS_FEATURE_NEGOTIATED, (id), (v)) + +# define SSL_get_quic_stream_bidi_local_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_QUIC_STREAM_BIDI_LOCAL_AVAIL, \ + (value)) +# define SSL_get_quic_stream_bidi_remote_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_QUIC_STREAM_BIDI_REMOTE_AVAIL, \ + (value)) +# define SSL_get_quic_stream_uni_local_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_QUIC_STREAM_UNI_LOCAL_AVAIL, \ + (value)) +# define SSL_get_quic_stream_uni_remote_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_QUIC_STREAM_UNI_REMOTE_AVAIL, \ + (value)) + +# define SSL_get_event_handling_mode(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_EVENT_HANDLING_MODE, \ + (value)) +# define SSL_set_event_handling_mode(ssl, value) \ + SSL_set_generic_value_uint((ssl), SSL_VALUE_EVENT_HANDLING_MODE, \ + (value)) + +# define SSL_get_stream_write_buf_size(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_STREAM_WRITE_BUF_SIZE, \ + (value)) +# define SSL_get_stream_write_buf_used(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_STREAM_WRITE_BUF_USED, \ + (value)) +# define SSL_get_stream_write_buf_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_STREAM_WRITE_BUF_AVAIL, \ + (value)) + +# define SSL_POLL_EVENT_NONE 0 + +# define SSL_POLL_EVENT_F (1U << 0) /* F (Failure) */ +# define SSL_POLL_EVENT_EL (1U << 1) /* EL (Exception on Listener) */ +# define SSL_POLL_EVENT_EC (1U << 2) /* EC (Exception on Conn) */ +# define SSL_POLL_EVENT_ECD (1U << 3) /* ECD (Exception on Conn Drained) */ +# define SSL_POLL_EVENT_ER (1U << 4) /* ER (Exception on Read) */ +# define SSL_POLL_EVENT_EW (1U << 5) /* EW (Exception on Write) */ +# define SSL_POLL_EVENT_R (1U << 6) /* R (Readable) */ +# define SSL_POLL_EVENT_W (1U << 7) /* W (Writable) */ +# define SSL_POLL_EVENT_IC (1U << 8) /* IC (Incoming Connection) */ +# define SSL_POLL_EVENT_ISB (1U << 9) /* ISB (Incoming Stream: Bidi) */ +# define SSL_POLL_EVENT_ISU (1U << 10) /* ISU (Incoming Stream: Uni) */ +# define SSL_POLL_EVENT_OSB (1U << 11) /* OSB (Outgoing Stream: Bidi) */ +# define SSL_POLL_EVENT_OSU (1U << 12) /* OSU (Outgoing Stream: Uni) */ + +# define SSL_POLL_EVENT_RW (SSL_POLL_EVENT_R | SSL_POLL_EVENT_W) +# define SSL_POLL_EVENT_RE (SSL_POLL_EVENT_R | SSL_POLL_EVENT_ER) +# define SSL_POLL_EVENT_WE (SSL_POLL_EVENT_W | SSL_POLL_EVENT_EW) +# define SSL_POLL_EVENT_RWE (SSL_POLL_EVENT_RE | SSL_POLL_EVENT_WE) +# define SSL_POLL_EVENT_E (SSL_POLL_EVENT_EL | SSL_POLL_EVENT_EC \ + | SSL_POLL_EVENT_ER | SSL_POLL_EVENT_EW) +# define SSL_POLL_EVENT_IS (SSL_POLL_EVENT_ISB | SSL_POLL_EVENT_ISU) +# define SSL_POLL_EVENT_ISE (SSL_POLL_EVENT_IS | SSL_POLL_EVENT_EC) +# define SSL_POLL_EVENT_I (SSL_POLL_EVENT_IS | SSL_POLL_EVENT_IC) +# define SSL_POLL_EVENT_OS (SSL_POLL_EVENT_OSB | SSL_POLL_EVENT_OSU) +# define SSL_POLL_EVENT_OSE (SSL_POLL_EVENT_OS | SSL_POLL_EVENT_EC) + +typedef struct ssl_poll_item_st { + BIO_POLL_DESCRIPTOR desc; + uint64_t events, revents; +} SSL_POLL_ITEM; + +# define SSL_POLL_FLAG_NO_HANDLE_EVENTS (1U << 0) + +__owur int SSL_poll(SSL_POLL_ITEM *items, + size_t num_items, + size_t stride, + const struct timeval *timeout, + uint64_t flags, + size_t *result_count); + +static ossl_inline ossl_unused BIO_POLL_DESCRIPTOR +SSL_as_poll_descriptor(SSL *s) +{ + BIO_POLL_DESCRIPTOR d; + + d.type = BIO_POLL_DESCRIPTOR_TYPE_SSL; + d.value.ssl = s; + return d; +} + # ifndef OPENSSL_NO_DEPRECATED_1_1_0 # define SSL_cache_hit(s) SSL_session_reused(s) # endif @@ -2593,6 +2882,51 @@ void SSL_set_allow_early_data_cb(SSL *s, const char *OSSL_default_cipher_list(void); const char *OSSL_default_ciphersuites(void); +/* RFC8879 Certificate compression APIs */ + +int SSL_CTX_compress_certs(SSL_CTX *ctx, int alg); +int SSL_compress_certs(SSL *ssl, int alg); + +int SSL_CTX_set1_cert_comp_preference(SSL_CTX *ctx, int *algs, size_t len); +int SSL_set1_cert_comp_preference(SSL *ssl, int *algs, size_t len); + +int SSL_CTX_set1_compressed_cert(SSL_CTX *ctx, int algorithm, unsigned char *comp_data, + size_t comp_length, size_t orig_length); +int SSL_set1_compressed_cert(SSL *ssl, int algorithm, unsigned char *comp_data, + size_t comp_length, size_t orig_length); +size_t SSL_CTX_get1_compressed_cert(SSL_CTX *ctx, int alg, unsigned char **data, size_t *orig_len); +size_t SSL_get1_compressed_cert(SSL *ssl, int alg, unsigned char **data, size_t *orig_len); + +__owur int SSL_add_expected_rpk(SSL *s, EVP_PKEY *rpk); +__owur EVP_PKEY *SSL_get0_peer_rpk(const SSL *s); +__owur EVP_PKEY *SSL_SESSION_get0_peer_rpk(SSL_SESSION *s); +__owur int SSL_get_negotiated_client_cert_type(const SSL *s); +__owur int SSL_get_negotiated_server_cert_type(const SSL *s); + +__owur int SSL_set1_client_cert_type(SSL *s, const unsigned char *val, size_t len); +__owur int SSL_set1_server_cert_type(SSL *s, const unsigned char *val, size_t len); +__owur int SSL_CTX_set1_client_cert_type(SSL_CTX *ctx, const unsigned char *val, size_t len); +__owur int SSL_CTX_set1_server_cert_type(SSL_CTX *ctx, const unsigned char *val, size_t len); +__owur int SSL_get0_client_cert_type(const SSL *s, unsigned char **t, size_t *len); +__owur int SSL_get0_server_cert_type(const SSL *s, unsigned char **t, size_t *len); +__owur int SSL_CTX_get0_client_cert_type(const SSL_CTX *ctx, unsigned char **t, size_t *len); +__owur int SSL_CTX_get0_server_cert_type(const SSL_CTX *s, unsigned char **t, size_t *len); + +/* + * Protection level. For <= TLSv1.2 only "NONE" and "APPLICATION" are used. + */ +# define OSSL_RECORD_PROTECTION_LEVEL_NONE 0 +# define OSSL_RECORD_PROTECTION_LEVEL_EARLY 1 +# define OSSL_RECORD_PROTECTION_LEVEL_HANDSHAKE 2 +# define OSSL_RECORD_PROTECTION_LEVEL_APPLICATION 3 + +int SSL_set_quic_tls_cbs(SSL *s, const OSSL_DISPATCH *qtdis, void *arg); +int SSL_set_quic_tls_transport_params(SSL *s, + const unsigned char *params, + size_t params_len); + +int SSL_set_quic_tls_early_data_enabled(SSL *s, int enabled); + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/linux-armv4/no-asm/include/openssl/x509.h b/deps/openssl/config/archs/linux-armv4/no-asm/include/openssl/x509.h index 1f7755e5b69c75..d013458c226461 100644 --- a/deps/openssl/config/archs/linux-armv4/no-asm/include/openssl/x509.h +++ b/deps/openssl/config/archs/linux-armv4/no-asm/include/openssl/x509.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/x509.h.in * - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2024 The OpenSSL Project Authors. All Rights Reserved. * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved * * Licensed under the Apache License 2.0 (the "License"). You may not use @@ -40,6 +40,9 @@ # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -162,16 +165,24 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_CRL, X509_CRL, X509_CRL) # define X509_FILETYPE_ASN1 2 # define X509_FILETYPE_DEFAULT 3 -# define X509v3_KU_DIGITAL_SIGNATURE 0x0080 -# define X509v3_KU_NON_REPUDIATION 0x0040 -# define X509v3_KU_KEY_ENCIPHERMENT 0x0020 -# define X509v3_KU_DATA_ENCIPHERMENT 0x0010 -# define X509v3_KU_KEY_AGREEMENT 0x0008 -# define X509v3_KU_KEY_CERT_SIGN 0x0004 -# define X509v3_KU_CRL_SIGN 0x0002 -# define X509v3_KU_ENCIPHER_ONLY 0x0001 -# define X509v3_KU_DECIPHER_ONLY 0x8000 -# define X509v3_KU_UNDEF 0xffff +/*- + * : + * The KeyUsage BITSTRING is treated as a little-endian integer, hence bit `0` + * is 0x80, while bit `7` is 0x01 (the LSB of the integer value), bit `8` is + * then the MSB of the second octet, or 0x8000. + */ +# define X509v3_KU_DIGITAL_SIGNATURE 0x0080 /* (0) */ +# define X509v3_KU_NON_REPUDIATION 0x0040 /* (1) */ +# define X509v3_KU_KEY_ENCIPHERMENT 0x0020 /* (2) */ +# define X509v3_KU_DATA_ENCIPHERMENT 0x0010 /* (3) */ +# define X509v3_KU_KEY_AGREEMENT 0x0008 /* (4) */ +# define X509v3_KU_KEY_CERT_SIGN 0x0004 /* (5) */ +# define X509v3_KU_CRL_SIGN 0x0002 /* (6) */ +# define X509v3_KU_ENCIPHER_ONLY 0x0001 /* (7) */ +# define X509v3_KU_DECIPHER_ONLY 0x8000 /* (8) */ +# ifndef OPENSSL_NO_DEPRECATED_3_4 +# define X509v3_KU_UNDEF 0xffff /* vestigial, not used */ +# endif struct X509_algor_st { ASN1_OBJECT *algorithm; @@ -462,7 +473,12 @@ typedef struct PBKDF2PARAM_st { X509_ALGOR *prf; } PBKDF2PARAM; -#ifndef OPENSSL_NO_SCRYPT +typedef struct { + X509_ALGOR *keyDerivationFunc; + X509_ALGOR *messageAuthScheme; +} PBMAC1PARAM; + +# ifndef OPENSSL_NO_SCRYPT typedef struct SCRYPT_PARAMS_st { ASN1_OCTET_STRING *salt; ASN1_INTEGER *costParameter; @@ -470,7 +486,7 @@ typedef struct SCRYPT_PARAMS_st { ASN1_INTEGER *parallelizationParameter; ASN1_INTEGER *keyLength; } SCRYPT_PARAMS; -#endif +# endif #ifdef __cplusplus } @@ -603,6 +619,8 @@ EVP_PKEY *d2i_PrivateKey_ex_fp(FILE *fp, EVP_PKEY **a, OSSL_LIB_CTX *libctx, const char *propq); EVP_PKEY *d2i_PrivateKey_fp(FILE *fp, EVP_PKEY **a); int i2d_PUBKEY_fp(FILE *fp, const EVP_PKEY *pkey); +EVP_PKEY *d2i_PUBKEY_ex_fp(FILE *fp, EVP_PKEY **a, OSSL_LIB_CTX *libctx, + const char *propq); EVP_PKEY *d2i_PUBKEY_fp(FILE *fp, EVP_PKEY **a); # endif @@ -651,6 +669,8 @@ EVP_PKEY *d2i_PrivateKey_ex_bio(BIO *bp, EVP_PKEY **a, OSSL_LIB_CTX *libctx, const char *propq); EVP_PKEY *d2i_PrivateKey_bio(BIO *bp, EVP_PKEY **a); int i2d_PUBKEY_bio(BIO *bp, const EVP_PKEY *pkey); +EVP_PKEY *d2i_PUBKEY_ex_bio(BIO *bp, EVP_PKEY **a, OSSL_LIB_CTX *libctx, + const char *propq); EVP_PKEY *d2i_PUBKEY_bio(BIO *bp, EVP_PKEY **a); DECLARE_ASN1_DUP_FUNCTION(X509) @@ -884,12 +904,12 @@ int X509_REQ_get_signature_nid(const X509_REQ *req); int i2d_re_X509_REQ_tbs(X509_REQ *req, unsigned char **pp); int X509_REQ_set_pubkey(X509_REQ *x, EVP_PKEY *pkey); EVP_PKEY *X509_REQ_get_pubkey(X509_REQ *req); -EVP_PKEY *X509_REQ_get0_pubkey(X509_REQ *req); +EVP_PKEY *X509_REQ_get0_pubkey(const X509_REQ *req); X509_PUBKEY *X509_REQ_get_X509_PUBKEY(X509_REQ *req); int X509_REQ_extension_nid(int nid); int *X509_REQ_get_extension_nids(void); void X509_REQ_set_extension_nids(int *nids); -STACK_OF(X509_EXTENSION) *X509_REQ_get_extensions(X509_REQ *req); +STACK_OF(X509_EXTENSION) *X509_REQ_get_extensions(OSSL_FUTURE_CONST X509_REQ *req); int X509_REQ_add_extensions_nid(X509_REQ *req, const STACK_OF(X509_EXTENSION) *exts, int nid); int X509_REQ_add_extensions(X509_REQ *req, const STACK_OF(X509_EXTENSION) *ext); @@ -950,13 +970,14 @@ X509_REVOKED_get0_extensions(const X509_REVOKED *r); X509_CRL *X509_CRL_diff(X509_CRL *base, X509_CRL *newer, EVP_PKEY *skey, const EVP_MD *md, unsigned int flags); -int X509_REQ_check_private_key(X509_REQ *x509, EVP_PKEY *pkey); +int X509_REQ_check_private_key(const X509_REQ *req, EVP_PKEY *pkey); -int X509_check_private_key(const X509 *x509, const EVP_PKEY *pkey); +int X509_check_private_key(const X509 *cert, const EVP_PKEY *pkey); int X509_chain_check_suiteb(int *perror_depth, X509 *x, STACK_OF(X509) *chain, unsigned long flags); int X509_CRL_check_suiteb(X509_CRL *crl, EVP_PKEY *pk, unsigned long flags); +void OSSL_STACK_OF_X509_free(STACK_OF(X509) *certs); STACK_OF(X509) *X509_chain_up_ref(STACK_OF(X509) *chain); int X509_issuer_and_serial_cmp(const X509 *a, const X509 *b); @@ -1077,6 +1098,8 @@ X509_EXTENSION *X509v3_get_ext(const STACK_OF(X509_EXTENSION) *x, int loc); X509_EXTENSION *X509v3_delete_ext(STACK_OF(X509_EXTENSION) *x, int loc); STACK_OF(X509_EXTENSION) *X509v3_add_ext(STACK_OF(X509_EXTENSION) **x, X509_EXTENSION *ex, int loc); +STACK_OF(X509_EXTENSION) *X509v3_add_extensions(STACK_OF(X509_EXTENSION) **target, + const STACK_OF(X509_EXTENSION) *exts); int X509_get_ext_count(const X509 *x); int X509_get_ext_by_NID(const X509 *x, int nid, int lastpos); @@ -1198,9 +1221,10 @@ X509 *X509_find_by_subject(STACK_OF(X509) *sk, const X509_NAME *name); DECLARE_ASN1_FUNCTIONS(PBEPARAM) DECLARE_ASN1_FUNCTIONS(PBE2PARAM) DECLARE_ASN1_FUNCTIONS(PBKDF2PARAM) -#ifndef OPENSSL_NO_SCRYPT +DECLARE_ASN1_FUNCTIONS(PBMAC1PARAM) +# ifndef OPENSSL_NO_SCRYPT DECLARE_ASN1_FUNCTIONS(SCRYPT_PARAMS) -#endif +# endif int PKCS5_pbe_set0_algor(X509_ALGOR *algor, int alg, int iter, const unsigned char *salt, int saltlen); @@ -1237,6 +1261,7 @@ X509_ALGOR *PKCS5_pbkdf2_set_ex(int iter, unsigned char *salt, int saltlen, int prf_nid, int keylen, OSSL_LIB_CTX *libctx); +PBKDF2PARAM *PBMAC1_get1_pbkdf2_param(const X509_ALGOR *macalg); /* PKCS#8 utilities */ DECLARE_ASN1_FUNCTIONS(PKCS8_PRIV_KEY_INFO) @@ -1262,6 +1287,8 @@ int PKCS8_pkey_add1_attr_by_OBJ(PKCS8_PRIV_KEY_INFO *p8, const ASN1_OBJECT *obj, int type, const unsigned char *bytes, int len); +void X509_PUBKEY_set0_public_key(X509_PUBKEY *pub, + unsigned char *penc, int penclen); int X509_PUBKEY_set0_param(X509_PUBKEY *pub, ASN1_OBJECT *aobj, int ptype, void *pval, unsigned char *penc, int penclen); diff --git a/deps/openssl/config/archs/linux-armv4/no-asm/include/openssl/x509_acert.h b/deps/openssl/config/archs/linux-armv4/no-asm/include/openssl/x509_acert.h new file mode 100644 index 00000000000000..9dde625677f9a9 --- /dev/null +++ b/deps/openssl/config/archs/linux-armv4/no-asm/include/openssl/x509_acert.h @@ -0,0 +1,294 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from include/openssl/x509_acert.h.in + * + * Copyright 2022-2024 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + + +#ifndef OPENSSL_X509_ACERT_H +# define OPENSSL_X509_ACERT_H +# pragma once + +# include +# include +# include + +typedef struct X509_acert_st X509_ACERT; +typedef struct X509_acert_info_st X509_ACERT_INFO; +typedef struct ossl_object_digest_info_st OSSL_OBJECT_DIGEST_INFO; +typedef struct ossl_issuer_serial_st OSSL_ISSUER_SERIAL; +typedef struct X509_acert_issuer_v2form_st X509_ACERT_ISSUER_V2FORM; + +DECLARE_ASN1_FUNCTIONS(X509_ACERT) +DECLARE_ASN1_DUP_FUNCTION(X509_ACERT) +DECLARE_ASN1_ITEM(X509_ACERT_INFO) +DECLARE_ASN1_ALLOC_FUNCTIONS(X509_ACERT_INFO) +DECLARE_ASN1_ALLOC_FUNCTIONS(OSSL_OBJECT_DIGEST_INFO) +DECLARE_ASN1_ALLOC_FUNCTIONS(OSSL_ISSUER_SERIAL) +DECLARE_ASN1_ALLOC_FUNCTIONS(X509_ACERT_ISSUER_V2FORM) + +# ifndef OPENSSL_NO_STDIO +X509_ACERT *d2i_X509_ACERT_fp(FILE *fp, X509_ACERT **acert); +int i2d_X509_ACERT_fp(FILE *fp, const X509_ACERT *acert); +# endif + +DECLARE_PEM_rw(X509_ACERT, X509_ACERT) + +X509_ACERT *d2i_X509_ACERT_bio(BIO *bp, X509_ACERT **acert); +int i2d_X509_ACERT_bio(BIO *bp, const X509_ACERT *acert); + +int X509_ACERT_sign(X509_ACERT *x, EVP_PKEY *pkey, const EVP_MD *md); +int X509_ACERT_sign_ctx(X509_ACERT *x, EVP_MD_CTX *ctx); +int X509_ACERT_verify(X509_ACERT *a, EVP_PKEY *r); + +# define X509_ACERT_VERSION_2 1 + +const GENERAL_NAMES *X509_ACERT_get0_holder_entityName(const X509_ACERT *x); +const OSSL_ISSUER_SERIAL *X509_ACERT_get0_holder_baseCertId(const X509_ACERT *x); +const OSSL_OBJECT_DIGEST_INFO * X509_ACERT_get0_holder_digest(const X509_ACERT *x); +const X509_NAME *X509_ACERT_get0_issuerName(const X509_ACERT *x); +long X509_ACERT_get_version(const X509_ACERT *x); +void X509_ACERT_get0_signature(const X509_ACERT *x, + const ASN1_BIT_STRING **psig, + const X509_ALGOR **palg); +int X509_ACERT_get_signature_nid(const X509_ACERT *x); +const X509_ALGOR *X509_ACERT_get0_info_sigalg(const X509_ACERT *x); +const ASN1_INTEGER *X509_ACERT_get0_serialNumber(const X509_ACERT *x); +const ASN1_TIME *X509_ACERT_get0_notBefore(const X509_ACERT *x); +const ASN1_TIME *X509_ACERT_get0_notAfter(const X509_ACERT *x); +const ASN1_BIT_STRING *X509_ACERT_get0_issuerUID(const X509_ACERT *x); + +int X509_ACERT_print(BIO *bp, X509_ACERT *x); +int X509_ACERT_print_ex(BIO *bp, X509_ACERT *x, unsigned long nmflags, + unsigned long cflag); + +int X509_ACERT_get_attr_count(const X509_ACERT *x); +int X509_ACERT_get_attr_by_NID(const X509_ACERT *x, int nid, int lastpos); +int X509_ACERT_get_attr_by_OBJ(const X509_ACERT *x, const ASN1_OBJECT *obj, + int lastpos); +X509_ATTRIBUTE *X509_ACERT_get_attr(const X509_ACERT *x, int loc); +X509_ATTRIBUTE *X509_ACERT_delete_attr(X509_ACERT *x, int loc); + +void *X509_ACERT_get_ext_d2i(const X509_ACERT *x, int nid, int *crit, int *idx); +int X509_ACERT_add1_ext_i2d(X509_ACERT *x, int nid, void *value, int crit, + unsigned long flags); +const STACK_OF(X509_EXTENSION) *X509_ACERT_get0_extensions(const X509_ACERT *x); + +# define OSSL_OBJECT_DIGEST_INFO_PUBLIC_KEY 0 +# define OSSL_OBJECT_DIGEST_INFO_PUBLIC_KEY_CERT 1 +# define OSSL_OBJECT_DIGEST_INFO_OTHER 2 /* must not be used in RFC 5755 profile */ +int X509_ACERT_set_version(X509_ACERT *x, long version); +void X509_ACERT_set0_holder_entityName(X509_ACERT *x, GENERAL_NAMES *name); +void X509_ACERT_set0_holder_baseCertId(X509_ACERT *x, OSSL_ISSUER_SERIAL *isss); +void X509_ACERT_set0_holder_digest(X509_ACERT *x, + OSSL_OBJECT_DIGEST_INFO *dinfo); + +int X509_ACERT_add1_attr(X509_ACERT *x, X509_ATTRIBUTE *attr); +int X509_ACERT_add1_attr_by_OBJ(X509_ACERT *x, const ASN1_OBJECT *obj, + int type, const void *bytes, int len); +int X509_ACERT_add1_attr_by_NID(X509_ACERT *x, int nid, int type, + const void *bytes, int len); +int X509_ACERT_add1_attr_by_txt(X509_ACERT *x, const char *attrname, int type, + const unsigned char *bytes, int len); +int X509_ACERT_add_attr_nconf(CONF *conf, const char *section, + X509_ACERT *acert); + +int X509_ACERT_set1_issuerName(X509_ACERT *x, const X509_NAME *name); +int X509_ACERT_set1_serialNumber(X509_ACERT *x, const ASN1_INTEGER *serial); +int X509_ACERT_set1_notBefore(X509_ACERT *x, const ASN1_GENERALIZEDTIME *time); +int X509_ACERT_set1_notAfter(X509_ACERT *x, const ASN1_GENERALIZEDTIME *time); + +void OSSL_OBJECT_DIGEST_INFO_get0_digest(const OSSL_OBJECT_DIGEST_INFO *o, + int *digestedObjectType, + const X509_ALGOR **digestAlgorithm, + const ASN1_BIT_STRING **digest); + +int OSSL_OBJECT_DIGEST_INFO_set1_digest(OSSL_OBJECT_DIGEST_INFO *o, + int digestedObjectType, + X509_ALGOR *digestAlgorithm, + ASN1_BIT_STRING *digest); + +const X509_NAME *OSSL_ISSUER_SERIAL_get0_issuer(const OSSL_ISSUER_SERIAL *isss); +const ASN1_INTEGER *OSSL_ISSUER_SERIAL_get0_serial(const OSSL_ISSUER_SERIAL *isss); +const ASN1_BIT_STRING *OSSL_ISSUER_SERIAL_get0_issuerUID(const OSSL_ISSUER_SERIAL *isss); + +int OSSL_ISSUER_SERIAL_set1_issuer(OSSL_ISSUER_SERIAL *isss, + const X509_NAME *issuer); +int OSSL_ISSUER_SERIAL_set1_serial(OSSL_ISSUER_SERIAL *isss, + const ASN1_INTEGER *serial); +int OSSL_ISSUER_SERIAL_set1_issuerUID(OSSL_ISSUER_SERIAL *isss, + const ASN1_BIT_STRING *uid); + +# define OSSL_IETFAS_OCTETS 0 +# define OSSL_IETFAS_OID 1 +# define OSSL_IETFAS_STRING 2 + +typedef struct OSSL_IETF_ATTR_SYNTAX_VALUE_st OSSL_IETF_ATTR_SYNTAX_VALUE; +typedef struct OSSL_IETF_ATTR_SYNTAX_st OSSL_IETF_ATTR_SYNTAX; +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_IETF_ATTR_SYNTAX_VALUE, OSSL_IETF_ATTR_SYNTAX_VALUE, OSSL_IETF_ATTR_SYNTAX_VALUE) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_value(sk, idx) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_value(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), (idx))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_new(cmp) ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_new(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_compfunc_type(cmp))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_new_null() ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_new_null()) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_new_reserve(cmp, n) ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_compfunc_type(cmp), (n))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), (n)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_free(sk) OPENSSL_sk_free(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_delete(sk, i) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_delete(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), (i))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_delete_ptr(sk, ptr) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_pop(sk) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_pop(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_shift(sk) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_shift(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk),ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_freefunc_type(freefunc)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr), (idx)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_set(sk, idx, ptr) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_set(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), (idx), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr), pnum) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_dup(sk) ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_dup(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_copyfunc_type(copyfunc), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_freefunc_type(freefunc))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_set_cmp_func(sk, cmp) ((sk_OSSL_IETF_ATTR_SYNTAX_VALUE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_compfunc_type(cmp))) + + +DECLARE_ASN1_ITEM(OSSL_IETF_ATTR_SYNTAX_VALUE) +DECLARE_ASN1_ALLOC_FUNCTIONS(OSSL_IETF_ATTR_SYNTAX_VALUE) +DECLARE_ASN1_FUNCTIONS(OSSL_IETF_ATTR_SYNTAX) + +const GENERAL_NAMES * +OSSL_IETF_ATTR_SYNTAX_get0_policyAuthority(const OSSL_IETF_ATTR_SYNTAX *a); +void OSSL_IETF_ATTR_SYNTAX_set0_policyAuthority(OSSL_IETF_ATTR_SYNTAX *a, + GENERAL_NAMES *names); + +int OSSL_IETF_ATTR_SYNTAX_get_value_num(const OSSL_IETF_ATTR_SYNTAX *a); +void *OSSL_IETF_ATTR_SYNTAX_get0_value(const OSSL_IETF_ATTR_SYNTAX *a, + int ind, int *type); +int OSSL_IETF_ATTR_SYNTAX_add1_value(OSSL_IETF_ATTR_SYNTAX *a, int type, + void *data); +int OSSL_IETF_ATTR_SYNTAX_print(BIO *bp, OSSL_IETF_ATTR_SYNTAX *a, int indent); + +struct TARGET_CERT_st { + OSSL_ISSUER_SERIAL *targetCertificate; + GENERAL_NAME *targetName; + OSSL_OBJECT_DIGEST_INFO *certDigestInfo; +}; + +typedef struct TARGET_CERT_st OSSL_TARGET_CERT; + +# define OSSL_TGT_TARGET_NAME 0 +# define OSSL_TGT_TARGET_GROUP 1 +# define OSSL_TGT_TARGET_CERT 2 + +typedef struct TARGET_st { + int type; + union { + GENERAL_NAME *targetName; + GENERAL_NAME *targetGroup; + OSSL_TARGET_CERT *targetCert; + } choice; +} OSSL_TARGET; + +typedef STACK_OF(OSSL_TARGET) OSSL_TARGETS; +typedef STACK_OF(OSSL_TARGETS) OSSL_TARGETING_INFORMATION; + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_TARGET, OSSL_TARGET, OSSL_TARGET) +#define sk_OSSL_TARGET_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_value(sk, idx) ((OSSL_TARGET *)OPENSSL_sk_value(ossl_check_const_OSSL_TARGET_sk_type(sk), (idx))) +#define sk_OSSL_TARGET_new(cmp) ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_new(ossl_check_OSSL_TARGET_compfunc_type(cmp))) +#define sk_OSSL_TARGET_new_null() ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_new_null()) +#define sk_OSSL_TARGET_new_reserve(cmp, n) ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_TARGET_compfunc_type(cmp), (n))) +#define sk_OSSL_TARGET_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_TARGET_sk_type(sk), (n)) +#define sk_OSSL_TARGET_free(sk) OPENSSL_sk_free(ossl_check_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_delete(sk, i) ((OSSL_TARGET *)OPENSSL_sk_delete(ossl_check_OSSL_TARGET_sk_type(sk), (i))) +#define sk_OSSL_TARGET_delete_ptr(sk, ptr) ((OSSL_TARGET *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr))) +#define sk_OSSL_TARGET_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr)) +#define sk_OSSL_TARGET_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr)) +#define sk_OSSL_TARGET_pop(sk) ((OSSL_TARGET *)OPENSSL_sk_pop(ossl_check_OSSL_TARGET_sk_type(sk))) +#define sk_OSSL_TARGET_shift(sk) ((OSSL_TARGET *)OPENSSL_sk_shift(ossl_check_OSSL_TARGET_sk_type(sk))) +#define sk_OSSL_TARGET_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_TARGET_sk_type(sk),ossl_check_OSSL_TARGET_freefunc_type(freefunc)) +#define sk_OSSL_TARGET_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr), (idx)) +#define sk_OSSL_TARGET_set(sk, idx, ptr) ((OSSL_TARGET *)OPENSSL_sk_set(ossl_check_OSSL_TARGET_sk_type(sk), (idx), ossl_check_OSSL_TARGET_type(ptr))) +#define sk_OSSL_TARGET_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr)) +#define sk_OSSL_TARGET_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr)) +#define sk_OSSL_TARGET_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr), pnum) +#define sk_OSSL_TARGET_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_dup(sk) ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_dup(ossl_check_const_OSSL_TARGET_sk_type(sk))) +#define sk_OSSL_TARGET_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_copyfunc_type(copyfunc), ossl_check_OSSL_TARGET_freefunc_type(freefunc))) +#define sk_OSSL_TARGET_set_cmp_func(sk, cmp) ((sk_OSSL_TARGET_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_compfunc_type(cmp))) + + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_TARGETS, OSSL_TARGETS, OSSL_TARGETS) +#define sk_OSSL_TARGETS_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_value(sk, idx) ((OSSL_TARGETS *)OPENSSL_sk_value(ossl_check_const_OSSL_TARGETS_sk_type(sk), (idx))) +#define sk_OSSL_TARGETS_new(cmp) ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_new(ossl_check_OSSL_TARGETS_compfunc_type(cmp))) +#define sk_OSSL_TARGETS_new_null() ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_new_null()) +#define sk_OSSL_TARGETS_new_reserve(cmp, n) ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_TARGETS_compfunc_type(cmp), (n))) +#define sk_OSSL_TARGETS_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_TARGETS_sk_type(sk), (n)) +#define sk_OSSL_TARGETS_free(sk) OPENSSL_sk_free(ossl_check_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_delete(sk, i) ((OSSL_TARGETS *)OPENSSL_sk_delete(ossl_check_OSSL_TARGETS_sk_type(sk), (i))) +#define sk_OSSL_TARGETS_delete_ptr(sk, ptr) ((OSSL_TARGETS *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr))) +#define sk_OSSL_TARGETS_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr)) +#define sk_OSSL_TARGETS_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr)) +#define sk_OSSL_TARGETS_pop(sk) ((OSSL_TARGETS *)OPENSSL_sk_pop(ossl_check_OSSL_TARGETS_sk_type(sk))) +#define sk_OSSL_TARGETS_shift(sk) ((OSSL_TARGETS *)OPENSSL_sk_shift(ossl_check_OSSL_TARGETS_sk_type(sk))) +#define sk_OSSL_TARGETS_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_TARGETS_sk_type(sk),ossl_check_OSSL_TARGETS_freefunc_type(freefunc)) +#define sk_OSSL_TARGETS_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr), (idx)) +#define sk_OSSL_TARGETS_set(sk, idx, ptr) ((OSSL_TARGETS *)OPENSSL_sk_set(ossl_check_OSSL_TARGETS_sk_type(sk), (idx), ossl_check_OSSL_TARGETS_type(ptr))) +#define sk_OSSL_TARGETS_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr)) +#define sk_OSSL_TARGETS_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr)) +#define sk_OSSL_TARGETS_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr), pnum) +#define sk_OSSL_TARGETS_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_dup(sk) ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_dup(ossl_check_const_OSSL_TARGETS_sk_type(sk))) +#define sk_OSSL_TARGETS_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_copyfunc_type(copyfunc), ossl_check_OSSL_TARGETS_freefunc_type(freefunc))) +#define sk_OSSL_TARGETS_set_cmp_func(sk, cmp) ((sk_OSSL_TARGETS_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_compfunc_type(cmp))) + + +DECLARE_ASN1_FUNCTIONS(OSSL_TARGET) +DECLARE_ASN1_FUNCTIONS(OSSL_TARGETS) +DECLARE_ASN1_FUNCTIONS(OSSL_TARGETING_INFORMATION) + +typedef STACK_OF(OSSL_ISSUER_SERIAL) OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX; +DECLARE_ASN1_FUNCTIONS(OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ISSUER_SERIAL, OSSL_ISSUER_SERIAL, OSSL_ISSUER_SERIAL) +#define sk_OSSL_ISSUER_SERIAL_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_value(sk, idx) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_value(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk), (idx))) +#define sk_OSSL_ISSUER_SERIAL_new(cmp) ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_new(ossl_check_OSSL_ISSUER_SERIAL_compfunc_type(cmp))) +#define sk_OSSL_ISSUER_SERIAL_new_null() ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ISSUER_SERIAL_new_reserve(cmp, n) ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ISSUER_SERIAL_compfunc_type(cmp), (n))) +#define sk_OSSL_ISSUER_SERIAL_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), (n)) +#define sk_OSSL_ISSUER_SERIAL_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_delete(sk, i) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_delete(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), (i))) +#define sk_OSSL_ISSUER_SERIAL_delete_ptr(sk, ptr) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr))) +#define sk_OSSL_ISSUER_SERIAL_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr)) +#define sk_OSSL_ISSUER_SERIAL_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr)) +#define sk_OSSL_ISSUER_SERIAL_pop(sk) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_pop(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk))) +#define sk_OSSL_ISSUER_SERIAL_shift(sk) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_shift(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk))) +#define sk_OSSL_ISSUER_SERIAL_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk),ossl_check_OSSL_ISSUER_SERIAL_freefunc_type(freefunc)) +#define sk_OSSL_ISSUER_SERIAL_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr), (idx)) +#define sk_OSSL_ISSUER_SERIAL_set(sk, idx, ptr) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_set(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), (idx), ossl_check_OSSL_ISSUER_SERIAL_type(ptr))) +#define sk_OSSL_ISSUER_SERIAL_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr)) +#define sk_OSSL_ISSUER_SERIAL_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr)) +#define sk_OSSL_ISSUER_SERIAL_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr), pnum) +#define sk_OSSL_ISSUER_SERIAL_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_dup(sk) ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk))) +#define sk_OSSL_ISSUER_SERIAL_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_copyfunc_type(copyfunc), ossl_check_OSSL_ISSUER_SERIAL_freefunc_type(freefunc))) +#define sk_OSSL_ISSUER_SERIAL_set_cmp_func(sk, cmp) ((sk_OSSL_ISSUER_SERIAL_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_compfunc_type(cmp))) + + +#endif diff --git a/deps/openssl/config/archs/linux-armv4/no-asm/include/openssl/x509_vfy.h b/deps/openssl/config/archs/linux-armv4/no-asm/include/openssl/x509_vfy.h index 29b0e147adcab1..c9bdc3b39d685d 100644 --- a/deps/openssl/config/archs/linux-armv4/no-asm/include/openssl/x509_vfy.h +++ b/deps/openssl/config/archs/linux-armv4/no-asm/include/openssl/x509_vfy.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/x509_vfy.h.in * - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -411,6 +411,7 @@ X509_LOOKUP_ctrl_ex((x), X509_L_ADD_STORE, (name), 0, NULL, \ # define X509_V_ERR_CA_CERT_MISSING_KEY_USAGE 92 # define X509_V_ERR_EXTENSIONS_REQUIRE_VERSION_3 93 # define X509_V_ERR_EC_KEY_EXPLICIT_PARAMS 94 +# define X509_V_ERR_RPK_UNTRUSTED 95 /* Certificate verify flags */ # ifndef OPENSSL_NO_DEPRECATED_1_1_0 @@ -491,71 +492,72 @@ int X509_OBJECT_set1_X509(X509_OBJECT *a, X509 *obj); X509_CRL *X509_OBJECT_get0_X509_CRL(const X509_OBJECT *a); int X509_OBJECT_set1_X509_CRL(X509_OBJECT *a, X509_CRL *obj); X509_STORE *X509_STORE_new(void); -void X509_STORE_free(X509_STORE *v); -int X509_STORE_lock(X509_STORE *ctx); -int X509_STORE_unlock(X509_STORE *ctx); -int X509_STORE_up_ref(X509_STORE *v); -STACK_OF(X509_OBJECT) *X509_STORE_get0_objects(const X509_STORE *v); -STACK_OF(X509) *X509_STORE_get1_all_certs(X509_STORE *st); -STACK_OF(X509) *X509_STORE_CTX_get1_certs(X509_STORE_CTX *st, +void X509_STORE_free(X509_STORE *xs); +int X509_STORE_lock(X509_STORE *xs); +int X509_STORE_unlock(X509_STORE *xs); +int X509_STORE_up_ref(X509_STORE *xs); +STACK_OF(X509_OBJECT) *X509_STORE_get0_objects(const X509_STORE *xs); +STACK_OF(X509_OBJECT) *X509_STORE_get1_objects(X509_STORE *xs); +STACK_OF(X509) *X509_STORE_get1_all_certs(X509_STORE *xs); +STACK_OF(X509) *X509_STORE_CTX_get1_certs(X509_STORE_CTX *xs, const X509_NAME *nm); STACK_OF(X509_CRL) *X509_STORE_CTX_get1_crls(const X509_STORE_CTX *st, const X509_NAME *nm); -int X509_STORE_set_flags(X509_STORE *ctx, unsigned long flags); -int X509_STORE_set_purpose(X509_STORE *ctx, int purpose); -int X509_STORE_set_trust(X509_STORE *ctx, int trust); -int X509_STORE_set1_param(X509_STORE *ctx, const X509_VERIFY_PARAM *pm); -X509_VERIFY_PARAM *X509_STORE_get0_param(const X509_STORE *ctx); +int X509_STORE_set_flags(X509_STORE *xs, unsigned long flags); +int X509_STORE_set_purpose(X509_STORE *xs, int purpose); +int X509_STORE_set_trust(X509_STORE *xs, int trust); +int X509_STORE_set1_param(X509_STORE *xs, const X509_VERIFY_PARAM *pm); +X509_VERIFY_PARAM *X509_STORE_get0_param(const X509_STORE *xs); -void X509_STORE_set_verify(X509_STORE *ctx, X509_STORE_CTX_verify_fn verify); +void X509_STORE_set_verify(X509_STORE *xs, X509_STORE_CTX_verify_fn verify); #define X509_STORE_set_verify_func(ctx, func) \ X509_STORE_set_verify((ctx),(func)) void X509_STORE_CTX_set_verify(X509_STORE_CTX *ctx, X509_STORE_CTX_verify_fn verify); -X509_STORE_CTX_verify_fn X509_STORE_get_verify(const X509_STORE *ctx); -void X509_STORE_set_verify_cb(X509_STORE *ctx, +X509_STORE_CTX_verify_fn X509_STORE_get_verify(const X509_STORE *xs); +void X509_STORE_set_verify_cb(X509_STORE *xs, X509_STORE_CTX_verify_cb verify_cb); # define X509_STORE_set_verify_cb_func(ctx,func) \ X509_STORE_set_verify_cb((ctx),(func)) -X509_STORE_CTX_verify_cb X509_STORE_get_verify_cb(const X509_STORE *ctx); -void X509_STORE_set_get_issuer(X509_STORE *ctx, +X509_STORE_CTX_verify_cb X509_STORE_get_verify_cb(const X509_STORE *xs); +void X509_STORE_set_get_issuer(X509_STORE *xs, X509_STORE_CTX_get_issuer_fn get_issuer); -X509_STORE_CTX_get_issuer_fn X509_STORE_get_get_issuer(const X509_STORE *ctx); -void X509_STORE_set_check_issued(X509_STORE *ctx, +X509_STORE_CTX_get_issuer_fn X509_STORE_get_get_issuer(const X509_STORE *xs); +void X509_STORE_set_check_issued(X509_STORE *xs, X509_STORE_CTX_check_issued_fn check_issued); -X509_STORE_CTX_check_issued_fn X509_STORE_get_check_issued(const X509_STORE *ctx); -void X509_STORE_set_check_revocation(X509_STORE *ctx, +X509_STORE_CTX_check_issued_fn X509_STORE_get_check_issued(const X509_STORE *s); +void X509_STORE_set_check_revocation(X509_STORE *xs, X509_STORE_CTX_check_revocation_fn check_revocation); X509_STORE_CTX_check_revocation_fn - X509_STORE_get_check_revocation(const X509_STORE *ctx); -void X509_STORE_set_get_crl(X509_STORE *ctx, + X509_STORE_get_check_revocation(const X509_STORE *xs); +void X509_STORE_set_get_crl(X509_STORE *xs, X509_STORE_CTX_get_crl_fn get_crl); -X509_STORE_CTX_get_crl_fn X509_STORE_get_get_crl(const X509_STORE *ctx); -void X509_STORE_set_check_crl(X509_STORE *ctx, +X509_STORE_CTX_get_crl_fn X509_STORE_get_get_crl(const X509_STORE *xs); +void X509_STORE_set_check_crl(X509_STORE *xs, X509_STORE_CTX_check_crl_fn check_crl); -X509_STORE_CTX_check_crl_fn X509_STORE_get_check_crl(const X509_STORE *ctx); -void X509_STORE_set_cert_crl(X509_STORE *ctx, +X509_STORE_CTX_check_crl_fn X509_STORE_get_check_crl(const X509_STORE *xs); +void X509_STORE_set_cert_crl(X509_STORE *xs, X509_STORE_CTX_cert_crl_fn cert_crl); -X509_STORE_CTX_cert_crl_fn X509_STORE_get_cert_crl(const X509_STORE *ctx); -void X509_STORE_set_check_policy(X509_STORE *ctx, +X509_STORE_CTX_cert_crl_fn X509_STORE_get_cert_crl(const X509_STORE *xs); +void X509_STORE_set_check_policy(X509_STORE *xs, X509_STORE_CTX_check_policy_fn check_policy); -X509_STORE_CTX_check_policy_fn X509_STORE_get_check_policy(const X509_STORE *ctx); -void X509_STORE_set_lookup_certs(X509_STORE *ctx, +X509_STORE_CTX_check_policy_fn X509_STORE_get_check_policy(const X509_STORE *s); +void X509_STORE_set_lookup_certs(X509_STORE *xs, X509_STORE_CTX_lookup_certs_fn lookup_certs); -X509_STORE_CTX_lookup_certs_fn X509_STORE_get_lookup_certs(const X509_STORE *ctx); -void X509_STORE_set_lookup_crls(X509_STORE *ctx, +X509_STORE_CTX_lookup_certs_fn X509_STORE_get_lookup_certs(const X509_STORE *s); +void X509_STORE_set_lookup_crls(X509_STORE *xs, X509_STORE_CTX_lookup_crls_fn lookup_crls); #define X509_STORE_set_lookup_crls_cb(ctx, func) \ X509_STORE_set_lookup_crls((ctx), (func)) -X509_STORE_CTX_lookup_crls_fn X509_STORE_get_lookup_crls(const X509_STORE *ctx); -void X509_STORE_set_cleanup(X509_STORE *ctx, +X509_STORE_CTX_lookup_crls_fn X509_STORE_get_lookup_crls(const X509_STORE *xs); +void X509_STORE_set_cleanup(X509_STORE *xs, X509_STORE_CTX_cleanup_fn cleanup); -X509_STORE_CTX_cleanup_fn X509_STORE_get_cleanup(const X509_STORE *ctx); +X509_STORE_CTX_cleanup_fn X509_STORE_get_cleanup(const X509_STORE *xs); #define X509_STORE_get_ex_new_index(l, p, newf, dupf, freef) \ CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_X509_STORE, l, p, newf, dupf, freef) -int X509_STORE_set_ex_data(X509_STORE *ctx, int idx, void *data); -void *X509_STORE_get_ex_data(const X509_STORE *ctx, int idx); +int X509_STORE_set_ex_data(X509_STORE *xs, int idx, void *data); +void *X509_STORE_get_ex_data(const X509_STORE *xs, int idx); X509_STORE_CTX *X509_STORE_CTX_new_ex(OSSL_LIB_CTX *libctx, const char *propq); X509_STORE_CTX *X509_STORE_CTX_new(void); @@ -565,11 +567,14 @@ int X509_STORE_CTX_get1_issuer(X509 **issuer, X509_STORE_CTX *ctx, X509 *x); void X509_STORE_CTX_free(X509_STORE_CTX *ctx); int X509_STORE_CTX_init(X509_STORE_CTX *ctx, X509_STORE *trust_store, X509 *target, STACK_OF(X509) *untrusted); +int X509_STORE_CTX_init_rpk(X509_STORE_CTX *ctx, X509_STORE *trust_store, + EVP_PKEY* rpk); void X509_STORE_CTX_set0_trusted_stack(X509_STORE_CTX *ctx, STACK_OF(X509) *sk); void X509_STORE_CTX_cleanup(X509_STORE_CTX *ctx); X509_STORE *X509_STORE_CTX_get0_store(const X509_STORE_CTX *ctx); X509 *X509_STORE_CTX_get0_cert(const X509_STORE_CTX *ctx); +EVP_PKEY *X509_STORE_CTX_get0_rpk(const X509_STORE_CTX *ctx); STACK_OF(X509)* X509_STORE_CTX_get0_untrusted(const X509_STORE_CTX *ctx); void X509_STORE_CTX_set0_untrusted(X509_STORE_CTX *ctx, STACK_OF(X509) *sk); void X509_STORE_CTX_set_verify_cb(X509_STORE_CTX *ctx, @@ -579,6 +584,8 @@ X509_STORE_CTX_verify_fn X509_STORE_CTX_get_verify(const X509_STORE_CTX *ctx); X509_STORE_CTX_get_issuer_fn X509_STORE_CTX_get_get_issuer(const X509_STORE_CTX *ctx); X509_STORE_CTX_check_issued_fn X509_STORE_CTX_get_check_issued(const X509_STORE_CTX *ctx); X509_STORE_CTX_check_revocation_fn X509_STORE_CTX_get_check_revocation(const X509_STORE_CTX *ctx); +void X509_STORE_CTX_set_get_crl(X509_STORE_CTX *ctx, + X509_STORE_CTX_get_crl_fn get_crl); X509_STORE_CTX_get_crl_fn X509_STORE_CTX_get_get_crl(const X509_STORE_CTX *ctx); X509_STORE_CTX_check_crl_fn X509_STORE_CTX_get_check_crl(const X509_STORE_CTX *ctx); X509_STORE_CTX_cert_crl_fn X509_STORE_CTX_get_cert_crl(const X509_STORE_CTX *ctx); @@ -600,7 +607,7 @@ X509_STORE_CTX_cleanup_fn X509_STORE_CTX_get_cleanup(const X509_STORE_CTX *ctx); # define X509_STORE_get1_crl X509_STORE_CTX_get1_crls #endif -X509_LOOKUP *X509_STORE_add_lookup(X509_STORE *v, X509_LOOKUP_METHOD *m); +X509_LOOKUP *X509_STORE_add_lookup(X509_STORE *xs, X509_LOOKUP_METHOD *m); X509_LOOKUP_METHOD *X509_LOOKUP_hash_dir(void); X509_LOOKUP_METHOD *X509_LOOKUP_file(void); X509_LOOKUP_METHOD *X509_LOOKUP_store(void); @@ -685,8 +692,8 @@ X509_LOOKUP_get_by_alias_fn X509_LOOKUP_meth_get_get_by_alias( const X509_LOOKUP_METHOD *method); -int X509_STORE_add_cert(X509_STORE *ctx, X509 *x); -int X509_STORE_add_crl(X509_STORE *ctx, X509_CRL *x); +int X509_STORE_add_cert(X509_STORE *xs, X509 *x); +int X509_STORE_add_crl(X509_STORE *xs, X509_CRL *x); int X509_STORE_CTX_get_by_subject(const X509_STORE_CTX *vs, X509_LOOKUP_TYPE type, @@ -730,23 +737,21 @@ void *X509_LOOKUP_get_method_data(const X509_LOOKUP *ctx); X509_STORE *X509_LOOKUP_get_store(const X509_LOOKUP *ctx); int X509_LOOKUP_shutdown(X509_LOOKUP *ctx); -int X509_STORE_load_file(X509_STORE *ctx, const char *file); -int X509_STORE_load_path(X509_STORE *ctx, const char *path); -int X509_STORE_load_store(X509_STORE *ctx, const char *store); -int X509_STORE_load_locations(X509_STORE *ctx, - const char *file, - const char *dir); -int X509_STORE_set_default_paths(X509_STORE *ctx); +int X509_STORE_load_file(X509_STORE *xs, const char *file); +int X509_STORE_load_path(X509_STORE *xs, const char *path); +int X509_STORE_load_store(X509_STORE *xs, const char *store); +int X509_STORE_load_locations(X509_STORE *s, const char *file, const char *dir); +int X509_STORE_set_default_paths(X509_STORE *xs); -int X509_STORE_load_file_ex(X509_STORE *ctx, const char *file, +int X509_STORE_load_file_ex(X509_STORE *xs, const char *file, OSSL_LIB_CTX *libctx, const char *propq); -int X509_STORE_load_store_ex(X509_STORE *ctx, const char *store, +int X509_STORE_load_store_ex(X509_STORE *xs, const char *store, OSSL_LIB_CTX *libctx, const char *propq); -int X509_STORE_load_locations_ex(X509_STORE *ctx, const char *file, - const char *dir, OSSL_LIB_CTX *libctx, - const char *propq); -int X509_STORE_set_default_paths_ex(X509_STORE *ctx, OSSL_LIB_CTX *libctx, - const char *propq); +int X509_STORE_load_locations_ex(X509_STORE *xs, + const char *file, const char *dir, + OSSL_LIB_CTX *libctx, const char *propq); +int X509_STORE_set_default_paths_ex(X509_STORE *xs, + OSSL_LIB_CTX *libctx, const char *propq); #define X509_STORE_CTX_get_ex_new_index(l, p, newf, dupf, freef) \ CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_X509_STORE_CTX, l, p, newf, dupf, freef) @@ -764,6 +769,7 @@ X509_STORE_CTX *X509_STORE_CTX_get0_parent_ctx(const X509_STORE_CTX *ctx); STACK_OF(X509) *X509_STORE_CTX_get0_chain(const X509_STORE_CTX *ctx); STACK_OF(X509) *X509_STORE_CTX_get1_chain(const X509_STORE_CTX *ctx); void X509_STORE_CTX_set_cert(X509_STORE_CTX *ctx, X509 *target); +void X509_STORE_CTX_set0_rpk(X509_STORE_CTX *ctx, EVP_PKEY *target); void X509_STORE_CTX_set0_verified_chain(X509_STORE_CTX *c, STACK_OF(X509) *sk); void X509_STORE_CTX_set0_crls(X509_STORE_CTX *ctx, STACK_OF(X509_CRL) *sk); int X509_STORE_CTX_set_purpose(X509_STORE_CTX *ctx, int purpose); @@ -773,6 +779,8 @@ int X509_STORE_CTX_purpose_inherit(X509_STORE_CTX *ctx, int def_purpose, void X509_STORE_CTX_set_flags(X509_STORE_CTX *ctx, unsigned long flags); void X509_STORE_CTX_set_time(X509_STORE_CTX *ctx, unsigned long flags, time_t t); +void X509_STORE_CTX_set_current_reasons(X509_STORE_CTX *ctx, + unsigned int current_reasons); X509_POLICY_TREE *X509_STORE_CTX_get0_policy_tree(const X509_STORE_CTX *ctx); int X509_STORE_CTX_get_explicit_policy(const X509_STORE_CTX *ctx); @@ -804,6 +812,7 @@ int X509_VERIFY_PARAM_clear_flags(X509_VERIFY_PARAM *param, unsigned long flags); unsigned long X509_VERIFY_PARAM_get_flags(const X509_VERIFY_PARAM *param); int X509_VERIFY_PARAM_set_purpose(X509_VERIFY_PARAM *param, int purpose); +int X509_VERIFY_PARAM_get_purpose(const X509_VERIFY_PARAM *param); int X509_VERIFY_PARAM_set_trust(X509_VERIFY_PARAM *param, int trust); void X509_VERIFY_PARAM_set_depth(X509_VERIFY_PARAM *param, int depth); void X509_VERIFY_PARAM_set_auth_level(X509_VERIFY_PARAM *param, int auth_level); diff --git a/deps/openssl/config/archs/linux-armv4/no-asm/include/openssl/x509v3.h b/deps/openssl/config/archs/linux-armv4/no-asm/include/openssl/x509v3.h index 20b67455f2061d..b8dabac35a4915 100644 --- a/deps/openssl/config/archs/linux-armv4/no-asm/include/openssl/x509v3.h +++ b/deps/openssl/config/archs/linux-armv4/no-asm/include/openssl/x509v3.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/x509v3.h.in * - * Copyright 1999-2023 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1999-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -25,6 +25,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -146,6 +149,11 @@ typedef struct BASIC_CONSTRAINTS_st { ASN1_INTEGER *pathlen; } BASIC_CONSTRAINTS; +typedef struct OSSL_BASIC_ATTR_CONSTRAINTS_st { + int authority; + ASN1_INTEGER *pathlen; +} OSSL_BASIC_ATTR_CONSTRAINTS; + typedef struct PKEY_USAGE_PERIOD_st { ASN1_GENERALIZEDTIME *notBefore; ASN1_GENERALIZEDTIME *notAfter; @@ -198,6 +206,8 @@ typedef struct ACCESS_DESCRIPTION_st { GENERAL_NAME *location; } ACCESS_DESCRIPTION; +int GENERAL_NAME_set1_X509_NAME(GENERAL_NAME **tgt, const X509_NAME *src); + SKM_DEFINE_STACK_OF_INTERNAL(ACCESS_DESCRIPTION, ACCESS_DESCRIPTION, ACCESS_DESCRIPTION) #define sk_ACCESS_DESCRIPTION_num(sk) OPENSSL_sk_num(ossl_check_const_ACCESS_DESCRIPTION_sk_type(sk)) #define sk_ACCESS_DESCRIPTION_value(sk, idx) ((ACCESS_DESCRIPTION *)OPENSSL_sk_value(ossl_check_const_ACCESS_DESCRIPTION_sk_type(sk), (idx))) @@ -294,6 +304,7 @@ typedef struct DIST_POINT_NAME_st { /* If relativename then this contains the full distribution point name */ X509_NAME *dpname; } DIST_POINT_NAME; +DECLARE_ASN1_DUP_FUNCTION(DIST_POINT_NAME) /* All existing reasons */ # define CRLDP_ALL_REASONS 0x807f @@ -659,15 +670,16 @@ struct ISSUING_DIST_POINT_st { # define EXFLAG_SAN_CRITICAL 0x80000 # define EXFLAG_NO_FINGERPRINT 0x100000 -# define KU_DIGITAL_SIGNATURE 0x0080 -# define KU_NON_REPUDIATION 0x0040 -# define KU_KEY_ENCIPHERMENT 0x0020 -# define KU_DATA_ENCIPHERMENT 0x0010 -# define KU_KEY_AGREEMENT 0x0008 -# define KU_KEY_CERT_SIGN 0x0004 -# define KU_CRL_SIGN 0x0002 -# define KU_ENCIPHER_ONLY 0x0001 -# define KU_DECIPHER_ONLY 0x8000 +/* https://datatracker.ietf.org/doc/html/rfc5280#section-4.2.1.3 */ +# define KU_DIGITAL_SIGNATURE X509v3_KU_DIGITAL_SIGNATURE +# define KU_NON_REPUDIATION X509v3_KU_NON_REPUDIATION +# define KU_KEY_ENCIPHERMENT X509v3_KU_KEY_ENCIPHERMENT +# define KU_DATA_ENCIPHERMENT X509v3_KU_DATA_ENCIPHERMENT +# define KU_KEY_AGREEMENT X509v3_KU_KEY_AGREEMENT +# define KU_KEY_CERT_SIGN X509v3_KU_KEY_CERT_SIGN +# define KU_CRL_SIGN X509v3_KU_CRL_SIGN +# define KU_ENCIPHER_ONLY X509v3_KU_ENCIPHER_ONLY +# define KU_DECIPHER_ONLY X509v3_KU_DECIPHER_ONLY # define NS_SSL_CLIENT 0x80 # define NS_SSL_SERVER 0x40 @@ -729,7 +741,7 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_PURPOSE, X509_PURPOSE, X509_PURPOSE) #define sk_X509_PURPOSE_set_cmp_func(sk, cmp) ((sk_X509_PURPOSE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_X509_PURPOSE_sk_type(sk), ossl_check_X509_PURPOSE_compfunc_type(cmp))) - +# define X509_PURPOSE_DEFAULT_ANY 0 # define X509_PURPOSE_SSL_CLIENT 1 # define X509_PURPOSE_SSL_SERVER 2 # define X509_PURPOSE_NS_SSL_SERVER 3 @@ -739,9 +751,10 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_PURPOSE, X509_PURPOSE, X509_PURPOSE) # define X509_PURPOSE_ANY 7 # define X509_PURPOSE_OCSP_HELPER 8 # define X509_PURPOSE_TIMESTAMP_SIGN 9 +# define X509_PURPOSE_CODE_SIGN 10 # define X509_PURPOSE_MIN 1 -# define X509_PURPOSE_MAX 9 +# define X509_PURPOSE_MAX 10 /* Flags for X509V3_EXT_print() */ @@ -767,6 +780,7 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_PURPOSE, X509_PURPOSE, X509_PURPOSE) # define X509V3_ADD_SILENT 0x10 DECLARE_ASN1_FUNCTIONS(BASIC_CONSTRAINTS) +DECLARE_ASN1_FUNCTIONS(OSSL_BASIC_ATTR_CONSTRAINTS) DECLARE_ASN1_FUNCTIONS(SXNET) DECLARE_ASN1_FUNCTIONS(SXNETID) @@ -976,7 +990,6 @@ int X509V3_extensions_print(BIO *out, const char *title, int X509_check_ca(X509 *x); int X509_check_purpose(X509 *x, int id, int ca); int X509_supported_extension(X509_EXTENSION *ex); -int X509_PURPOSE_set(int *p, int purpose); int X509_check_issued(X509 *issuer, X509 *subject); int X509_check_akid(const X509 *issuer, const AUTHORITY_KEYID *akid); void X509_set_proxy_flag(X509 *x); @@ -992,22 +1005,26 @@ const GENERAL_NAMES *X509_get0_authority_issuer(X509 *x); const ASN1_INTEGER *X509_get0_authority_serial(X509 *x); int X509_PURPOSE_get_count(void); -X509_PURPOSE *X509_PURPOSE_get0(int idx); +int X509_PURPOSE_get_unused_id(OSSL_LIB_CTX *libctx); int X509_PURPOSE_get_by_sname(const char *sname); int X509_PURPOSE_get_by_id(int id); int X509_PURPOSE_add(int id, int trust, int flags, int (*ck) (const X509_PURPOSE *, const X509 *, int), const char *name, const char *sname, void *arg); +void X509_PURPOSE_cleanup(void); + +X509_PURPOSE *X509_PURPOSE_get0(int idx); +int X509_PURPOSE_get_id(const X509_PURPOSE *); char *X509_PURPOSE_get0_name(const X509_PURPOSE *xp); char *X509_PURPOSE_get0_sname(const X509_PURPOSE *xp); int X509_PURPOSE_get_trust(const X509_PURPOSE *xp); -void X509_PURPOSE_cleanup(void); -int X509_PURPOSE_get_id(const X509_PURPOSE *); +int X509_PURPOSE_set(int *p, int purpose); STACK_OF(OPENSSL_STRING) *X509_get1_email(X509 *x); STACK_OF(OPENSSL_STRING) *X509_REQ_get1_email(X509_REQ *x); void X509_email_free(STACK_OF(OPENSSL_STRING) *sk); STACK_OF(OPENSSL_STRING) *X509_get1_ocsp(X509 *x); + /* Flags for X509_check_* functions */ /* @@ -1444,6 +1461,507 @@ const ASN1_PRINTABLESTRING *PROFESSION_INFO_get0_registrationNumber( void PROFESSION_INFO_set0_registrationNumber( PROFESSION_INFO *pi, ASN1_PRINTABLESTRING *rn); +int OSSL_GENERAL_NAMES_print(BIO *out, GENERAL_NAMES *gens, int indent); + +typedef STACK_OF(X509_ATTRIBUTE) OSSL_ATTRIBUTES_SYNTAX; +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTES_SYNTAX) + +typedef STACK_OF(USERNOTICE) OSSL_USER_NOTICE_SYNTAX; +DECLARE_ASN1_FUNCTIONS(OSSL_USER_NOTICE_SYNTAX) + +SKM_DEFINE_STACK_OF_INTERNAL(USERNOTICE, USERNOTICE, USERNOTICE) +#define sk_USERNOTICE_num(sk) OPENSSL_sk_num(ossl_check_const_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_value(sk, idx) ((USERNOTICE *)OPENSSL_sk_value(ossl_check_const_USERNOTICE_sk_type(sk), (idx))) +#define sk_USERNOTICE_new(cmp) ((STACK_OF(USERNOTICE) *)OPENSSL_sk_new(ossl_check_USERNOTICE_compfunc_type(cmp))) +#define sk_USERNOTICE_new_null() ((STACK_OF(USERNOTICE) *)OPENSSL_sk_new_null()) +#define sk_USERNOTICE_new_reserve(cmp, n) ((STACK_OF(USERNOTICE) *)OPENSSL_sk_new_reserve(ossl_check_USERNOTICE_compfunc_type(cmp), (n))) +#define sk_USERNOTICE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_USERNOTICE_sk_type(sk), (n)) +#define sk_USERNOTICE_free(sk) OPENSSL_sk_free(ossl_check_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_zero(sk) OPENSSL_sk_zero(ossl_check_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_delete(sk, i) ((USERNOTICE *)OPENSSL_sk_delete(ossl_check_USERNOTICE_sk_type(sk), (i))) +#define sk_USERNOTICE_delete_ptr(sk, ptr) ((USERNOTICE *)OPENSSL_sk_delete_ptr(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr))) +#define sk_USERNOTICE_push(sk, ptr) OPENSSL_sk_push(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr)) +#define sk_USERNOTICE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr)) +#define sk_USERNOTICE_pop(sk) ((USERNOTICE *)OPENSSL_sk_pop(ossl_check_USERNOTICE_sk_type(sk))) +#define sk_USERNOTICE_shift(sk) ((USERNOTICE *)OPENSSL_sk_shift(ossl_check_USERNOTICE_sk_type(sk))) +#define sk_USERNOTICE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_USERNOTICE_sk_type(sk),ossl_check_USERNOTICE_freefunc_type(freefunc)) +#define sk_USERNOTICE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr), (idx)) +#define sk_USERNOTICE_set(sk, idx, ptr) ((USERNOTICE *)OPENSSL_sk_set(ossl_check_USERNOTICE_sk_type(sk), (idx), ossl_check_USERNOTICE_type(ptr))) +#define sk_USERNOTICE_find(sk, ptr) OPENSSL_sk_find(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr)) +#define sk_USERNOTICE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr)) +#define sk_USERNOTICE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr), pnum) +#define sk_USERNOTICE_sort(sk) OPENSSL_sk_sort(ossl_check_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_dup(sk) ((STACK_OF(USERNOTICE) *)OPENSSL_sk_dup(ossl_check_const_USERNOTICE_sk_type(sk))) +#define sk_USERNOTICE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(USERNOTICE) *)OPENSSL_sk_deep_copy(ossl_check_const_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_copyfunc_type(copyfunc), ossl_check_USERNOTICE_freefunc_type(freefunc))) +#define sk_USERNOTICE_set_cmp_func(sk, cmp) ((sk_USERNOTICE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_compfunc_type(cmp))) + + +typedef struct OSSL_ROLE_SPEC_CERT_ID_st { + GENERAL_NAME *roleName; + GENERAL_NAME *roleCertIssuer; + ASN1_INTEGER *roleCertSerialNumber; + GENERAL_NAMES *roleCertLocator; +} OSSL_ROLE_SPEC_CERT_ID; + +DECLARE_ASN1_FUNCTIONS(OSSL_ROLE_SPEC_CERT_ID) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ROLE_SPEC_CERT_ID, OSSL_ROLE_SPEC_CERT_ID, OSSL_ROLE_SPEC_CERT_ID) +#define sk_OSSL_ROLE_SPEC_CERT_ID_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_value(sk, idx) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_value(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), (idx))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_new(cmp) ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_new(ossl_check_OSSL_ROLE_SPEC_CERT_ID_compfunc_type(cmp))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_new_null() ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ROLE_SPEC_CERT_ID_new_reserve(cmp, n) ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ROLE_SPEC_CERT_ID_compfunc_type(cmp), (n))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), (n)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_delete(sk, i) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_delete(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), (i))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_delete_ptr(sk, ptr) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_pop(sk) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_pop(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_shift(sk) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_shift(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk),ossl_check_OSSL_ROLE_SPEC_CERT_ID_freefunc_type(freefunc)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr), (idx)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_set(sk, idx, ptr) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_set(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), (idx), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr), pnum) +#define sk_OSSL_ROLE_SPEC_CERT_ID_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_dup(sk) ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_copyfunc_type(copyfunc), ossl_check_OSSL_ROLE_SPEC_CERT_ID_freefunc_type(freefunc))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_set_cmp_func(sk, cmp) ((sk_OSSL_ROLE_SPEC_CERT_ID_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_compfunc_type(cmp))) + + +typedef STACK_OF(OSSL_ROLE_SPEC_CERT_ID) OSSL_ROLE_SPEC_CERT_ID_SYNTAX; + +DECLARE_ASN1_FUNCTIONS(OSSL_ROLE_SPEC_CERT_ID_SYNTAX) +typedef struct OSSL_HASH_st { + X509_ALGOR *algorithmIdentifier; + ASN1_BIT_STRING *hashValue; +} OSSL_HASH; + +typedef struct OSSL_INFO_SYNTAX_POINTER_st { + GENERAL_NAMES *name; + OSSL_HASH *hash; +} OSSL_INFO_SYNTAX_POINTER; + +# define OSSL_INFO_SYNTAX_TYPE_CONTENT 0 +# define OSSL_INFO_SYNTAX_TYPE_POINTER 1 + +typedef struct OSSL_INFO_SYNTAX_st { + int type; + union { + ASN1_STRING *content; + OSSL_INFO_SYNTAX_POINTER *pointer; + } choice; +} OSSL_INFO_SYNTAX; + +typedef struct OSSL_PRIVILEGE_POLICY_ID_st { + ASN1_OBJECT *privilegePolicy; + OSSL_INFO_SYNTAX *privPolSyntax; +} OSSL_PRIVILEGE_POLICY_ID; + +typedef struct OSSL_ATTRIBUTE_DESCRIPTOR_st { + ASN1_OBJECT *identifier; + ASN1_STRING *attributeSyntax; + ASN1_UTF8STRING *name; + ASN1_UTF8STRING *description; + OSSL_PRIVILEGE_POLICY_ID *dominationRule; +} OSSL_ATTRIBUTE_DESCRIPTOR; + +DECLARE_ASN1_FUNCTIONS(OSSL_HASH) +DECLARE_ASN1_FUNCTIONS(OSSL_INFO_SYNTAX) +DECLARE_ASN1_FUNCTIONS(OSSL_INFO_SYNTAX_POINTER) +DECLARE_ASN1_FUNCTIONS(OSSL_PRIVILEGE_POLICY_ID) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_DESCRIPTOR) + +typedef struct OSSL_TIME_SPEC_ABSOLUTE_st { + ASN1_GENERALIZEDTIME *startTime; + ASN1_GENERALIZEDTIME *endTime; +} OSSL_TIME_SPEC_ABSOLUTE; + +typedef struct OSSL_DAY_TIME_st { + ASN1_INTEGER *hour; + ASN1_INTEGER *minute; + ASN1_INTEGER *second; +} OSSL_DAY_TIME; + +typedef struct OSSL_DAY_TIME_BAND_st { + OSSL_DAY_TIME *startDayTime; + OSSL_DAY_TIME *endDayTime; +} OSSL_DAY_TIME_BAND; + +# define OSSL_NAMED_DAY_TYPE_INT 0 +# define OSSL_NAMED_DAY_TYPE_BIT 1 +# define OSSL_NAMED_DAY_INT_SUN 1 +# define OSSL_NAMED_DAY_INT_MON 2 +# define OSSL_NAMED_DAY_INT_TUE 3 +# define OSSL_NAMED_DAY_INT_WED 4 +# define OSSL_NAMED_DAY_INT_THU 5 +# define OSSL_NAMED_DAY_INT_FRI 6 +# define OSSL_NAMED_DAY_INT_SAT 7 +# define OSSL_NAMED_DAY_BIT_SUN 0 +# define OSSL_NAMED_DAY_BIT_MON 1 +# define OSSL_NAMED_DAY_BIT_TUE 2 +# define OSSL_NAMED_DAY_BIT_WED 3 +# define OSSL_NAMED_DAY_BIT_THU 4 +# define OSSL_NAMED_DAY_BIT_FRI 5 +# define OSSL_NAMED_DAY_BIT_SAT 6 + +typedef struct OSSL_NAMED_DAY_st { + int type; + union { + ASN1_INTEGER *intNamedDays; + ASN1_BIT_STRING *bitNamedDays; + } choice; +} OSSL_NAMED_DAY; + +# define OSSL_TIME_SPEC_X_DAY_OF_FIRST 0 +# define OSSL_TIME_SPEC_X_DAY_OF_SECOND 1 +# define OSSL_TIME_SPEC_X_DAY_OF_THIRD 2 +# define OSSL_TIME_SPEC_X_DAY_OF_FOURTH 3 +# define OSSL_TIME_SPEC_X_DAY_OF_FIFTH 4 + +typedef struct OSSL_TIME_SPEC_X_DAY_OF_st { + int type; + union { + OSSL_NAMED_DAY *first; + OSSL_NAMED_DAY *second; + OSSL_NAMED_DAY *third; + OSSL_NAMED_DAY *fourth; + OSSL_NAMED_DAY *fifth; + } choice; +} OSSL_TIME_SPEC_X_DAY_OF; + +# define OSSL_TIME_SPEC_DAY_TYPE_INT 0 +# define OSSL_TIME_SPEC_DAY_TYPE_BIT 1 +# define OSSL_TIME_SPEC_DAY_TYPE_DAY_OF 2 +# define OSSL_TIME_SPEC_DAY_BIT_SUN 0 +# define OSSL_TIME_SPEC_DAY_BIT_MON 1 +# define OSSL_TIME_SPEC_DAY_BIT_TUE 2 +# define OSSL_TIME_SPEC_DAY_BIT_WED 3 +# define OSSL_TIME_SPEC_DAY_BIT_THU 4 +# define OSSL_TIME_SPEC_DAY_BIT_FRI 5 +# define OSSL_TIME_SPEC_DAY_BIT_SAT 6 +# define OSSL_TIME_SPEC_DAY_INT_SUN 1 +# define OSSL_TIME_SPEC_DAY_INT_MON 2 +# define OSSL_TIME_SPEC_DAY_INT_TUE 3 +# define OSSL_TIME_SPEC_DAY_INT_WED 4 +# define OSSL_TIME_SPEC_DAY_INT_THU 5 +# define OSSL_TIME_SPEC_DAY_INT_FRI 6 +# define OSSL_TIME_SPEC_DAY_INT_SAT 7 + +typedef struct OSSL_TIME_SPEC_DAY_st { + int type; + union { + STACK_OF(ASN1_INTEGER) *intDay; + ASN1_BIT_STRING *bitDay; + OSSL_TIME_SPEC_X_DAY_OF *dayOf; + } choice; +} OSSL_TIME_SPEC_DAY; + +# define OSSL_TIME_SPEC_WEEKS_TYPE_ALL 0 +# define OSSL_TIME_SPEC_WEEKS_TYPE_INT 1 +# define OSSL_TIME_SPEC_WEEKS_TYPE_BIT 2 +# define OSSL_TIME_SPEC_BIT_WEEKS_1 0 +# define OSSL_TIME_SPEC_BIT_WEEKS_2 1 +# define OSSL_TIME_SPEC_BIT_WEEKS_3 2 +# define OSSL_TIME_SPEC_BIT_WEEKS_4 3 +# define OSSL_TIME_SPEC_BIT_WEEKS_5 4 + +typedef struct OSSL_TIME_SPEC_WEEKS_st { + int type; + union { + ASN1_NULL *allWeeks; + STACK_OF(ASN1_INTEGER) *intWeek; + ASN1_BIT_STRING *bitWeek; + } choice; +} OSSL_TIME_SPEC_WEEKS; + +# define OSSL_TIME_SPEC_MONTH_TYPE_ALL 0 +# define OSSL_TIME_SPEC_MONTH_TYPE_INT 1 +# define OSSL_TIME_SPEC_MONTH_TYPE_BIT 2 +# define OSSL_TIME_SPEC_INT_MONTH_JAN 1 +# define OSSL_TIME_SPEC_INT_MONTH_FEB 2 +# define OSSL_TIME_SPEC_INT_MONTH_MAR 3 +# define OSSL_TIME_SPEC_INT_MONTH_APR 4 +# define OSSL_TIME_SPEC_INT_MONTH_MAY 5 +# define OSSL_TIME_SPEC_INT_MONTH_JUN 6 +# define OSSL_TIME_SPEC_INT_MONTH_JUL 7 +# define OSSL_TIME_SPEC_INT_MONTH_AUG 8 +# define OSSL_TIME_SPEC_INT_MONTH_SEP 9 +# define OSSL_TIME_SPEC_INT_MONTH_OCT 10 +# define OSSL_TIME_SPEC_INT_MONTH_NOV 11 +# define OSSL_TIME_SPEC_INT_MONTH_DEC 12 +# define OSSL_TIME_SPEC_BIT_MONTH_JAN 0 +# define OSSL_TIME_SPEC_BIT_MONTH_FEB 1 +# define OSSL_TIME_SPEC_BIT_MONTH_MAR 2 +# define OSSL_TIME_SPEC_BIT_MONTH_APR 3 +# define OSSL_TIME_SPEC_BIT_MONTH_MAY 4 +# define OSSL_TIME_SPEC_BIT_MONTH_JUN 5 +# define OSSL_TIME_SPEC_BIT_MONTH_JUL 6 +# define OSSL_TIME_SPEC_BIT_MONTH_AUG 7 +# define OSSL_TIME_SPEC_BIT_MONTH_SEP 8 +# define OSSL_TIME_SPEC_BIT_MONTH_OCT 9 +# define OSSL_TIME_SPEC_BIT_MONTH_NOV 10 +# define OSSL_TIME_SPEC_BIT_MONTH_DEC 11 + +typedef struct OSSL_TIME_SPEC_MONTH_st { + int type; + union { + ASN1_NULL *allMonths; + STACK_OF(ASN1_INTEGER) *intMonth; + ASN1_BIT_STRING *bitMonth; + } choice; +} OSSL_TIME_SPEC_MONTH; + +typedef struct OSSL_TIME_PERIOD_st { + STACK_OF(OSSL_DAY_TIME_BAND) *timesOfDay; + OSSL_TIME_SPEC_DAY *days; + OSSL_TIME_SPEC_WEEKS *weeks; + OSSL_TIME_SPEC_MONTH *months; + STACK_OF(ASN1_INTEGER) *years; +} OSSL_TIME_PERIOD; + +# define OSSL_TIME_SPEC_TIME_TYPE_ABSOLUTE 0 +# define OSSL_TIME_SPEC_TIME_TYPE_PERIODIC 1 + +typedef struct OSSL_TIME_SPEC_TIME_st { + int type; + union { + OSSL_TIME_SPEC_ABSOLUTE *absolute; + STACK_OF(OSSL_TIME_PERIOD) *periodic; + } choice; +} OSSL_TIME_SPEC_TIME; + +typedef struct OSSL_TIME_SPEC_st { + OSSL_TIME_SPEC_TIME *time; + ASN1_BOOLEAN notThisTime; + ASN1_INTEGER *timeZone; +} OSSL_TIME_SPEC; + +DECLARE_ASN1_FUNCTIONS(OSSL_DAY_TIME) +DECLARE_ASN1_FUNCTIONS(OSSL_DAY_TIME_BAND) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_DAY) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_WEEKS) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_MONTH) +DECLARE_ASN1_FUNCTIONS(OSSL_NAMED_DAY) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_X_DAY_OF) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_ABSOLUTE) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_TIME) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_PERIOD) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_TIME_PERIOD, OSSL_TIME_PERIOD, OSSL_TIME_PERIOD) +#define sk_OSSL_TIME_PERIOD_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_value(sk, idx) ((OSSL_TIME_PERIOD *)OPENSSL_sk_value(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk), (idx))) +#define sk_OSSL_TIME_PERIOD_new(cmp) ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_new(ossl_check_OSSL_TIME_PERIOD_compfunc_type(cmp))) +#define sk_OSSL_TIME_PERIOD_new_null() ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_new_null()) +#define sk_OSSL_TIME_PERIOD_new_reserve(cmp, n) ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_TIME_PERIOD_compfunc_type(cmp), (n))) +#define sk_OSSL_TIME_PERIOD_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), (n)) +#define sk_OSSL_TIME_PERIOD_free(sk) OPENSSL_sk_free(ossl_check_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_delete(sk, i) ((OSSL_TIME_PERIOD *)OPENSSL_sk_delete(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), (i))) +#define sk_OSSL_TIME_PERIOD_delete_ptr(sk, ptr) ((OSSL_TIME_PERIOD *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr))) +#define sk_OSSL_TIME_PERIOD_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr)) +#define sk_OSSL_TIME_PERIOD_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr)) +#define sk_OSSL_TIME_PERIOD_pop(sk) ((OSSL_TIME_PERIOD *)OPENSSL_sk_pop(ossl_check_OSSL_TIME_PERIOD_sk_type(sk))) +#define sk_OSSL_TIME_PERIOD_shift(sk) ((OSSL_TIME_PERIOD *)OPENSSL_sk_shift(ossl_check_OSSL_TIME_PERIOD_sk_type(sk))) +#define sk_OSSL_TIME_PERIOD_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_TIME_PERIOD_sk_type(sk),ossl_check_OSSL_TIME_PERIOD_freefunc_type(freefunc)) +#define sk_OSSL_TIME_PERIOD_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr), (idx)) +#define sk_OSSL_TIME_PERIOD_set(sk, idx, ptr) ((OSSL_TIME_PERIOD *)OPENSSL_sk_set(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), (idx), ossl_check_OSSL_TIME_PERIOD_type(ptr))) +#define sk_OSSL_TIME_PERIOD_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr)) +#define sk_OSSL_TIME_PERIOD_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr)) +#define sk_OSSL_TIME_PERIOD_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr), pnum) +#define sk_OSSL_TIME_PERIOD_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_dup(sk) ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_dup(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk))) +#define sk_OSSL_TIME_PERIOD_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_copyfunc_type(copyfunc), ossl_check_OSSL_TIME_PERIOD_freefunc_type(freefunc))) +#define sk_OSSL_TIME_PERIOD_set_cmp_func(sk, cmp) ((sk_OSSL_TIME_PERIOD_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_compfunc_type(cmp))) + + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_DAY_TIME_BAND, OSSL_DAY_TIME_BAND, OSSL_DAY_TIME_BAND) +#define sk_OSSL_DAY_TIME_BAND_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_value(sk, idx) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_value(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk), (idx))) +#define sk_OSSL_DAY_TIME_BAND_new(cmp) ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_new(ossl_check_OSSL_DAY_TIME_BAND_compfunc_type(cmp))) +#define sk_OSSL_DAY_TIME_BAND_new_null() ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_new_null()) +#define sk_OSSL_DAY_TIME_BAND_new_reserve(cmp, n) ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_DAY_TIME_BAND_compfunc_type(cmp), (n))) +#define sk_OSSL_DAY_TIME_BAND_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), (n)) +#define sk_OSSL_DAY_TIME_BAND_free(sk) OPENSSL_sk_free(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_delete(sk, i) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_delete(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), (i))) +#define sk_OSSL_DAY_TIME_BAND_delete_ptr(sk, ptr) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr))) +#define sk_OSSL_DAY_TIME_BAND_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr)) +#define sk_OSSL_DAY_TIME_BAND_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr)) +#define sk_OSSL_DAY_TIME_BAND_pop(sk) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_pop(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk))) +#define sk_OSSL_DAY_TIME_BAND_shift(sk) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_shift(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk))) +#define sk_OSSL_DAY_TIME_BAND_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk),ossl_check_OSSL_DAY_TIME_BAND_freefunc_type(freefunc)) +#define sk_OSSL_DAY_TIME_BAND_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr), (idx)) +#define sk_OSSL_DAY_TIME_BAND_set(sk, idx, ptr) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_set(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), (idx), ossl_check_OSSL_DAY_TIME_BAND_type(ptr))) +#define sk_OSSL_DAY_TIME_BAND_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr)) +#define sk_OSSL_DAY_TIME_BAND_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr)) +#define sk_OSSL_DAY_TIME_BAND_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr), pnum) +#define sk_OSSL_DAY_TIME_BAND_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_dup(sk) ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_dup(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk))) +#define sk_OSSL_DAY_TIME_BAND_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_copyfunc_type(copyfunc), ossl_check_OSSL_DAY_TIME_BAND_freefunc_type(freefunc))) +#define sk_OSSL_DAY_TIME_BAND_set_cmp_func(sk, cmp) ((sk_OSSL_DAY_TIME_BAND_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_compfunc_type(cmp))) + + +/* Attribute Type and Value */ +typedef struct atav_st { + ASN1_OBJECT *type; + ASN1_TYPE *value; +} OSSL_ATAV; + +typedef struct ATTRIBUTE_TYPE_MAPPING_st { + ASN1_OBJECT *local; + ASN1_OBJECT *remote; +} OSSL_ATTRIBUTE_TYPE_MAPPING; + +typedef struct ATTRIBUTE_VALUE_MAPPING_st { + OSSL_ATAV *local; + OSSL_ATAV *remote; +} OSSL_ATTRIBUTE_VALUE_MAPPING; + +# define OSSL_ATTR_MAP_TYPE 0 +# define OSSL_ATTR_MAP_VALUE 1 + +typedef struct ATTRIBUTE_MAPPING_st { + int type; + union { + OSSL_ATTRIBUTE_TYPE_MAPPING *typeMappings; + OSSL_ATTRIBUTE_VALUE_MAPPING *typeValueMappings; + } choice; +} OSSL_ATTRIBUTE_MAPPING; + +typedef STACK_OF(OSSL_ATTRIBUTE_MAPPING) OSSL_ATTRIBUTE_MAPPINGS; +DECLARE_ASN1_FUNCTIONS(OSSL_ATAV) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_TYPE_MAPPING) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_VALUE_MAPPING) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_MAPPING) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_MAPPINGS) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ATTRIBUTE_MAPPING, OSSL_ATTRIBUTE_MAPPING, OSSL_ATTRIBUTE_MAPPING) +#define sk_OSSL_ATTRIBUTE_MAPPING_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_value(sk, idx) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_value(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), (idx))) +#define sk_OSSL_ATTRIBUTE_MAPPING_new(cmp) ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_new(ossl_check_OSSL_ATTRIBUTE_MAPPING_compfunc_type(cmp))) +#define sk_OSSL_ATTRIBUTE_MAPPING_new_null() ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ATTRIBUTE_MAPPING_new_reserve(cmp, n) ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ATTRIBUTE_MAPPING_compfunc_type(cmp), (n))) +#define sk_OSSL_ATTRIBUTE_MAPPING_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), (n)) +#define sk_OSSL_ATTRIBUTE_MAPPING_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_delete(sk, i) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_delete(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), (i))) +#define sk_OSSL_ATTRIBUTE_MAPPING_delete_ptr(sk, ptr) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr))) +#define sk_OSSL_ATTRIBUTE_MAPPING_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr)) +#define sk_OSSL_ATTRIBUTE_MAPPING_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr)) +#define sk_OSSL_ATTRIBUTE_MAPPING_pop(sk) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_pop(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk))) +#define sk_OSSL_ATTRIBUTE_MAPPING_shift(sk) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_shift(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk))) +#define sk_OSSL_ATTRIBUTE_MAPPING_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk),ossl_check_OSSL_ATTRIBUTE_MAPPING_freefunc_type(freefunc)) +#define sk_OSSL_ATTRIBUTE_MAPPING_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr), (idx)) +#define sk_OSSL_ATTRIBUTE_MAPPING_set(sk, idx, ptr) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_set(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), (idx), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr))) +#define sk_OSSL_ATTRIBUTE_MAPPING_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr)) +#define sk_OSSL_ATTRIBUTE_MAPPING_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr)) +#define sk_OSSL_ATTRIBUTE_MAPPING_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr), pnum) +#define sk_OSSL_ATTRIBUTE_MAPPING_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_dup(sk) ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk))) +#define sk_OSSL_ATTRIBUTE_MAPPING_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_copyfunc_type(copyfunc), ossl_check_OSSL_ATTRIBUTE_MAPPING_freefunc_type(freefunc))) +#define sk_OSSL_ATTRIBUTE_MAPPING_set_cmp_func(sk, cmp) ((sk_OSSL_ATTRIBUTE_MAPPING_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_compfunc_type(cmp))) + + +# define OSSL_AAA_ATTRIBUTE_TYPE 0 +# define OSSL_AAA_ATTRIBUTE_VALUES 1 + +typedef struct ALLOWED_ATTRIBUTES_CHOICE_st { + int type; + union { + ASN1_OBJECT *attributeType; + X509_ATTRIBUTE *attributeTypeandValues; + } choice; +} OSSL_ALLOWED_ATTRIBUTES_CHOICE; + +typedef struct ALLOWED_ATTRIBUTES_ITEM_st { + STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *attributes; + GENERAL_NAME *holderDomain; +} OSSL_ALLOWED_ATTRIBUTES_ITEM; + +typedef STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) OSSL_ALLOWED_ATTRIBUTES_SYNTAX; + +DECLARE_ASN1_FUNCTIONS(OSSL_ALLOWED_ATTRIBUTES_CHOICE) +DECLARE_ASN1_FUNCTIONS(OSSL_ALLOWED_ATTRIBUTES_ITEM) +DECLARE_ASN1_FUNCTIONS(OSSL_ALLOWED_ATTRIBUTES_SYNTAX) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ALLOWED_ATTRIBUTES_CHOICE, OSSL_ALLOWED_ATTRIBUTES_CHOICE, OSSL_ALLOWED_ATTRIBUTES_CHOICE) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_value(sk, idx) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_value(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), (idx))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_new(cmp) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_new(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_compfunc_type(cmp))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_new_null() ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_new_reserve(cmp, n) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_compfunc_type(cmp), (n))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), (n)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_delete(sk, i) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_delete(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), (i))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_delete_ptr(sk, ptr) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_pop(sk) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_pop(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_shift(sk) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_shift(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk),ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_freefunc_type(freefunc)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr), (idx)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_set(sk, idx, ptr) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_set(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), (idx), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr), pnum) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_dup(sk) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_copyfunc_type(copyfunc), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_freefunc_type(freefunc))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_set_cmp_func(sk, cmp) ((sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_compfunc_type(cmp))) + + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ALLOWED_ATTRIBUTES_ITEM, OSSL_ALLOWED_ATTRIBUTES_ITEM, OSSL_ALLOWED_ATTRIBUTES_ITEM) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_value(sk, idx) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_value(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), (idx))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_new(cmp) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_new(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_compfunc_type(cmp))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_new_null() ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_new_reserve(cmp, n) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_compfunc_type(cmp), (n))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), (n)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_delete(sk, i) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_delete(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), (i))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_delete_ptr(sk, ptr) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_pop(sk) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_pop(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_shift(sk) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_shift(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk),ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_freefunc_type(freefunc)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr), (idx)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_set(sk, idx, ptr) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_set(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), (idx), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr), pnum) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_dup(sk) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_copyfunc_type(copyfunc), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_freefunc_type(freefunc))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_set_cmp_func(sk, cmp) ((sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_compfunc_type(cmp))) + + +typedef struct AA_DIST_POINT_st { + DIST_POINT_NAME *distpoint; + ASN1_BIT_STRING *reasons; + int dp_reasons; + ASN1_BOOLEAN indirectCRL; + ASN1_BOOLEAN containsUserAttributeCerts; + ASN1_BOOLEAN containsAACerts; + ASN1_BOOLEAN containsSOAPublicKeyCerts; +} OSSL_AA_DIST_POINT; + +DECLARE_ASN1_FUNCTIONS(OSSL_AA_DIST_POINT) + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/linux-armv4/no-asm/include/progs.h b/deps/openssl/config/archs/linux-armv4/no-asm/include/progs.h index be55f61503d405..1b62ec37dec130 100644 --- a/deps/openssl/config/archs/linux-armv4/no-asm/include/progs.h +++ b/deps/openssl/config/archs/linux-armv4/no-asm/include/progs.h @@ -56,6 +56,7 @@ extern int s_client_main(int argc, char *argv[]); extern int s_server_main(int argc, char *argv[]); extern int s_time_main(int argc, char *argv[]); extern int sess_id_main(int argc, char *argv[]); +extern int skeyutl_main(int argc, char *argv[]); extern int smime_main(int argc, char *argv[]); extern int speed_main(int argc, char *argv[]); extern int spkac_main(int argc, char *argv[]); @@ -110,6 +111,7 @@ extern const OPTIONS s_client_options[]; extern const OPTIONS s_server_options[]; extern const OPTIONS s_time_options[]; extern const OPTIONS sess_id_options[]; +extern const OPTIONS skeyutl_options[]; extern const OPTIONS smime_options[]; extern const OPTIONS speed_options[]; extern const OPTIONS spkac_options[]; diff --git a/deps/openssl/config/archs/linux-armv4/no-asm/openssl-cl.gypi b/deps/openssl/config/archs/linux-armv4/no-asm/openssl-cl.gypi index b683cb33db9ee0..c7dd26e3512cf7 100644 --- a/deps/openssl/config/archs/linux-armv4/no-asm/openssl-cl.gypi +++ b/deps/openssl/config/archs/linux-armv4/no-asm/openssl-cl.gypi @@ -61,6 +61,7 @@ 'openssl/apps/s_server.c', 'openssl/apps/s_time.c', 'openssl/apps/sess_id.c', + 'openssl/apps/skeyutl.c', 'openssl/apps/smime.c', 'openssl/apps/speed.c', 'openssl/apps/spkac.c', @@ -76,12 +77,14 @@ 'openssl/apps/lib/app_rand.c', 'openssl/apps/lib/app_x509.c', 'openssl/apps/lib/apps.c', + 'openssl/apps/lib/apps_opt_printf.c', 'openssl/apps/lib/apps_ui.c', 'openssl/apps/lib/columns.c', 'openssl/apps/lib/engine.c', 'openssl/apps/lib/engine_loader.c', 'openssl/apps/lib/fmt.c', 'openssl/apps/lib/http_server.c', + 'openssl/apps/lib/log.c', 'openssl/apps/lib/names.c', 'openssl/apps/lib/opt.c', 'openssl/apps/lib/s_cb.c', diff --git a/deps/openssl/config/archs/linux-armv4/no-asm/openssl-fips.gypi b/deps/openssl/config/archs/linux-armv4/no-asm/openssl-fips.gypi index 1c35efba7565fa..a0b929afc151e7 100644 --- a/deps/openssl/config/archs/linux-armv4/no-asm/openssl-fips.gypi +++ b/deps/openssl/config/archs/linux-armv4/no-asm/openssl-fips.gypi @@ -100,14 +100,15 @@ 'openssl/crypto/evp/kem.c', 'openssl/crypto/evp/keymgmt_lib.c', 'openssl/crypto/evp/keymgmt_meth.c', - 'openssl/crypto/evp/m_sigver.c', 'openssl/crypto/evp/mac_lib.c', 'openssl/crypto/evp/mac_meth.c', 'openssl/crypto/evp/p_lib.c', 'openssl/crypto/evp/pmeth_check.c', 'openssl/crypto/evp/pmeth_gn.c', 'openssl/crypto/evp/pmeth_lib.c', + 'openssl/crypto/evp/s_lib.c', 'openssl/crypto/evp/signature.c', + 'openssl/crypto/evp/skeymgmt_meth.c', 'openssl/crypto/ffc/ffc_backend.c', 'openssl/crypto/ffc/ffc_dh.c', 'openssl/crypto/ffc/ffc_key_generate.c', @@ -115,6 +116,8 @@ 'openssl/crypto/ffc/ffc_params.c', 'openssl/crypto/ffc/ffc_params_generate.c', 'openssl/crypto/ffc/ffc_params_validate.c', + 'openssl/crypto/hashtable/hashfunc.c', + 'openssl/crypto/hashtable/hashtable.c', 'openssl/crypto/hmac/hmac.c', 'openssl/crypto/lhash/lhash.c', 'openssl/crypto/asn1_dsa.c', @@ -145,6 +148,16 @@ 'openssl/crypto/threads_none.c', 'openssl/crypto/threads_pthread.c', 'openssl/crypto/threads_win.c', + 'openssl/crypto/time.c', + 'openssl/crypto/ml_dsa/ml_dsa_encoders.c', + 'openssl/crypto/ml_dsa/ml_dsa_key.c', + 'openssl/crypto/ml_dsa/ml_dsa_key_compress.c', + 'openssl/crypto/ml_dsa/ml_dsa_matrix.c', + 'openssl/crypto/ml_dsa/ml_dsa_ntt.c', + 'openssl/crypto/ml_dsa/ml_dsa_params.c', + 'openssl/crypto/ml_dsa/ml_dsa_sample.c', + 'openssl/crypto/ml_dsa/ml_dsa_sign.c', + 'openssl/crypto/ml_kem/ml_kem.c', 'openssl/crypto/modes/cbc128.c', 'openssl/crypto/modes/ccm128.c', 'openssl/crypto/modes/cfb128.c', @@ -153,6 +166,7 @@ 'openssl/crypto/modes/ofb128.c', 'openssl/crypto/modes/wrap128.c', 'openssl/crypto/modes/xts128.c', + 'openssl/crypto/modes/xts128gb.c', 'openssl/crypto/property/defn_cache.c', 'openssl/crypto/property/property.c', 'openssl/crypto/property/property_parse.c', @@ -181,7 +195,23 @@ 'openssl/crypto/sha/sha256.c', 'openssl/crypto/sha/sha3.c', 'openssl/crypto/sha/sha512.c', + 'openssl/crypto/slh_dsa/slh_adrs.c', + 'openssl/crypto/slh_dsa/slh_dsa.c', + 'openssl/crypto/slh_dsa/slh_dsa_hash_ctx.c', + 'openssl/crypto/slh_dsa/slh_dsa_key.c', + 'openssl/crypto/slh_dsa/slh_fors.c', + 'openssl/crypto/slh_dsa/slh_hash.c', + 'openssl/crypto/slh_dsa/slh_hypertree.c', + 'openssl/crypto/slh_dsa/slh_params.c', + 'openssl/crypto/slh_dsa/slh_wots.c', + 'openssl/crypto/slh_dsa/slh_xmss.c', 'openssl/crypto/stack/stack.c', + 'openssl/crypto/thread/arch/thread_none.c', + 'openssl/crypto/thread/arch/thread_posix.c', + 'openssl/crypto/thread/arch/thread_win.c', + 'openssl/crypto/thread/api.c', + 'openssl/crypto/thread/arch.c', + 'openssl/crypto/thread/internal.c', 'openssl/providers/common/der/der_rsa_sig.c', 'openssl/providers/common/bio_prov.c', 'openssl/providers/common/capabilities.c', @@ -190,6 +220,7 @@ 'openssl/providers/common/provider_util.c', 'openssl/providers/common/securitycheck.c', 'openssl/providers/common/securitycheck_fips.c', + 'openssl/providers/fips/fipsindicator.c', 'openssl/providers/fips/fipsprov.c', 'openssl/providers/fips/self_test.c', 'openssl/providers/fips/self_test_kats.c', @@ -227,6 +258,8 @@ 'openssl/providers/implementations/kdfs/sskdf.c', 'openssl/providers/implementations/kdfs/tls1_prf.c', 'openssl/providers/implementations/kdfs/x942kdf.c', + 'openssl/providers/implementations/kem/ml_kem_kem.c', + 'openssl/providers/implementations/kem/mlx_kem.c', 'openssl/providers/implementations/kem/rsa_kem.c', 'openssl/providers/implementations/keymgmt/dh_kmgmt.c', 'openssl/providers/implementations/keymgmt/dsa_kmgmt.c', @@ -234,29 +267,39 @@ 'openssl/providers/implementations/keymgmt/ecx_kmgmt.c', 'openssl/providers/implementations/keymgmt/kdf_legacy_kmgmt.c', 'openssl/providers/implementations/keymgmt/mac_legacy_kmgmt.c', + 'openssl/providers/implementations/keymgmt/ml_dsa_kmgmt.c', + 'openssl/providers/implementations/keymgmt/ml_kem_kmgmt.c', + 'openssl/providers/implementations/keymgmt/mlx_kmgmt.c', 'openssl/providers/implementations/keymgmt/rsa_kmgmt.c', + 'openssl/providers/implementations/keymgmt/slh_dsa_kmgmt.c', 'openssl/providers/implementations/macs/cmac_prov.c', 'openssl/providers/implementations/macs/gmac_prov.c', 'openssl/providers/implementations/macs/hmac_prov.c', 'openssl/providers/implementations/macs/kmac_prov.c', - 'openssl/providers/implementations/rands/crngt.c', 'openssl/providers/implementations/rands/drbg.c', 'openssl/providers/implementations/rands/drbg_ctr.c', 'openssl/providers/implementations/rands/drbg_hash.c', 'openssl/providers/implementations/rands/drbg_hmac.c', + 'openssl/providers/implementations/rands/fips_crng_test.c', 'openssl/providers/implementations/rands/test_rng.c', 'openssl/providers/implementations/signature/dsa_sig.c', 'openssl/providers/implementations/signature/ecdsa_sig.c', 'openssl/providers/implementations/signature/eddsa_sig.c', 'openssl/providers/implementations/signature/mac_legacy_sig.c', + 'openssl/providers/implementations/signature/ml_dsa_sig.c', 'openssl/providers/implementations/signature/rsa_sig.c', - 'openssl/ssl/s3_cbc.c', + 'openssl/providers/implementations/signature/slh_dsa_sig.c', + 'openssl/providers/implementations/skeymgmt/aes_skmgmt.c', + 'openssl/providers/implementations/skeymgmt/generic.c', + 'openssl/ssl/record/methods/ssl3_cbc.c', 'openssl/providers/common/der/der_dsa_key.c', 'openssl/providers/common/der/der_dsa_sig.c', 'openssl/providers/common/der/der_ec_key.c', 'openssl/providers/common/der/der_ec_sig.c', 'openssl/providers/common/der/der_ecx_key.c', + 'openssl/providers/common/der/der_ml_dsa_key.c', 'openssl/providers/common/der/der_rsa_key.c', + 'openssl/providers/common/der/der_slh_dsa_key.c', 'openssl/providers/common/provider_ctx.c', 'openssl/providers/common/provider_err.c', 'openssl/providers/implementations/ciphers/ciphercommon.c', @@ -267,17 +310,20 @@ 'openssl/providers/implementations/ciphers/ciphercommon_gcm_hw.c', 'openssl/providers/implementations/ciphers/ciphercommon_hw.c', 'openssl/providers/implementations/digests/digestcommon.c', - 'openssl/ssl/record/tls_pad.c', + 'openssl/ssl/record/methods/tls_pad.c', 'openssl/providers/fips/fips_entry.c', ], 'openssl_sources_linux-armv4': [ + './config/archs/linux-armv4/no-asm/crypto/params_idx.c', './config/archs/linux-armv4/no-asm/providers/common/der/der_sm2_gen.c', './config/archs/linux-armv4/no-asm/providers/common/der/der_digests_gen.c', './config/archs/linux-armv4/no-asm/providers/common/der/der_dsa_gen.c', './config/archs/linux-armv4/no-asm/providers/common/der/der_ec_gen.c', './config/archs/linux-armv4/no-asm/providers/common/der/der_ecx_gen.c', + './config/archs/linux-armv4/no-asm/providers/common/der/der_ml_dsa_gen.c', './config/archs/linux-armv4/no-asm/providers/common/der/der_rsa_gen.c', + './config/archs/linux-armv4/no-asm/providers/common/der/der_slh_dsa_gen.c', './config/archs/linux-armv4/no-asm/providers/common/der/der_wrap_gen.c', './config/archs/linux-armv4/no-asm/providers/legacy.ld', './config/archs/linux-armv4/no-asm/providers/fips.ld', diff --git a/deps/openssl/config/archs/linux-armv4/no-asm/openssl.gypi b/deps/openssl/config/archs/linux-armv4/no-asm/openssl.gypi index 6ad73f4142da8c..f2dc7f57872519 100644 --- a/deps/openssl/config/archs/linux-armv4/no-asm/openssl.gypi +++ b/deps/openssl/config/archs/linux-armv4/no-asm/openssl.gypi @@ -7,14 +7,15 @@ 'openssl/ssl/d1_srtp.c', 'openssl/ssl/methods.c', 'openssl/ssl/pqueue.c', + 'openssl/ssl/priority_queue.c', 'openssl/ssl/s3_enc.c', 'openssl/ssl/s3_lib.c', 'openssl/ssl/s3_msg.c', 'openssl/ssl/ssl_asn1.c', 'openssl/ssl/ssl_cert.c', + 'openssl/ssl/ssl_cert_comp.c', 'openssl/ssl/ssl_ciph.c', 'openssl/ssl/ssl_conf.c', - 'openssl/ssl/ssl_err.c', 'openssl/ssl/ssl_err_legacy.c', 'openssl/ssl/ssl_init.c', 'openssl/ssl/ssl_lib.c', @@ -31,12 +32,60 @@ 'openssl/ssl/tls13_enc.c', 'openssl/ssl/tls_depr.c', 'openssl/ssl/tls_srp.c', - 'openssl/ssl/record/dtls1_bitmap.c', + 'openssl/ssl/quic/cc_newreno.c', + 'openssl/ssl/quic/json_enc.c', + 'openssl/ssl/quic/qlog.c', + 'openssl/ssl/quic/qlog_event_helpers.c', + 'openssl/ssl/quic/quic_ackm.c', + 'openssl/ssl/quic/quic_cfq.c', + 'openssl/ssl/quic/quic_channel.c', + 'openssl/ssl/quic/quic_demux.c', + 'openssl/ssl/quic/quic_engine.c', + 'openssl/ssl/quic/quic_fc.c', + 'openssl/ssl/quic/quic_fifd.c', + 'openssl/ssl/quic/quic_impl.c', + 'openssl/ssl/quic/quic_lcidm.c', + 'openssl/ssl/quic/quic_method.c', + 'openssl/ssl/quic/quic_obj.c', + 'openssl/ssl/quic/quic_port.c', + 'openssl/ssl/quic/quic_rcidm.c', + 'openssl/ssl/quic/quic_reactor.c', + 'openssl/ssl/quic/quic_reactor_wait_ctx.c', + 'openssl/ssl/quic/quic_record_rx.c', + 'openssl/ssl/quic/quic_record_shared.c', + 'openssl/ssl/quic/quic_record_tx.c', + 'openssl/ssl/quic/quic_record_util.c', + 'openssl/ssl/quic/quic_rstream.c', + 'openssl/ssl/quic/quic_rx_depack.c', + 'openssl/ssl/quic/quic_sf_list.c', + 'openssl/ssl/quic/quic_srt_gen.c', + 'openssl/ssl/quic/quic_srtm.c', + 'openssl/ssl/quic/quic_sstream.c', + 'openssl/ssl/quic/quic_statm.c', + 'openssl/ssl/quic/quic_stream_map.c', + 'openssl/ssl/quic/quic_thread_assist.c', + 'openssl/ssl/quic/quic_tls.c', + 'openssl/ssl/quic/quic_tls_api.c', + 'openssl/ssl/quic/quic_trace.c', + 'openssl/ssl/quic/quic_tserver.c', + 'openssl/ssl/quic/quic_txp.c', + 'openssl/ssl/quic/quic_txpim.c', + 'openssl/ssl/quic/quic_types.c', + 'openssl/ssl/quic/quic_wire.c', + 'openssl/ssl/quic/quic_wire_pkt.c', + 'openssl/ssl/quic/uint_set.c', 'openssl/ssl/record/rec_layer_d1.c', 'openssl/ssl/record/rec_layer_s3.c', - 'openssl/ssl/record/ssl3_buffer.c', - 'openssl/ssl/record/ssl3_record.c', - 'openssl/ssl/record/ssl3_record_tls13.c', + 'openssl/ssl/record/methods/dtls_meth.c', + 'openssl/ssl/record/methods/ssl3_meth.c', + 'openssl/ssl/record/methods/tls13_meth.c', + 'openssl/ssl/record/methods/tls1_meth.c', + 'openssl/ssl/record/methods/tls_common.c', + 'openssl/ssl/record/methods/tls_multib.c', + 'openssl/ssl/record/methods/tlsany_meth.c', + 'openssl/ssl/rio/poll_builder.c', + 'openssl/ssl/rio/poll_immediate.c', + 'openssl/ssl/rio/rio_notifier.c', 'openssl/ssl/statem/extensions.c', 'openssl/ssl/statem/extensions_clnt.c', 'openssl/ssl/statem/extensions_cust.c', @@ -150,6 +199,7 @@ 'openssl/crypto/bio/bss_conn.c', 'openssl/crypto/bio/bss_core.c', 'openssl/crypto/bio/bss_dgram.c', + 'openssl/crypto/bio/bss_dgram_pair.c', 'openssl/crypto/bio/bss_fd.c', 'openssl/crypto/bio/bss_file.c', 'openssl/crypto/bio/bss_log.c', @@ -210,6 +260,7 @@ 'openssl/crypto/cmp/cmp_client.c', 'openssl/crypto/cmp/cmp_ctx.c', 'openssl/crypto/cmp/cmp_err.c', + 'openssl/crypto/cmp/cmp_genm.c', 'openssl/crypto/cmp/cmp_hdr.c', 'openssl/crypto/cmp/cmp_http.c', 'openssl/crypto/cmp/cmp_msg.c', @@ -385,7 +436,9 @@ 'openssl/crypto/err/err_all.c', 'openssl/crypto/err/err_all_legacy.c', 'openssl/crypto/err/err_blocks.c', + 'openssl/crypto/err/err_mark.c', 'openssl/crypto/err/err_prn.c', + 'openssl/crypto/err/err_save.c', 'openssl/crypto/ess/ess_asn1.c', 'openssl/crypto/ess/ess_err.c', 'openssl/crypto/ess/ess_lib.c', @@ -468,7 +521,9 @@ 'openssl/crypto/evp/pmeth_check.c', 'openssl/crypto/evp/pmeth_gn.c', 'openssl/crypto/evp/pmeth_lib.c', + 'openssl/crypto/evp/s_lib.c', 'openssl/crypto/evp/signature.c', + 'openssl/crypto/evp/skeymgmt_meth.c', 'openssl/crypto/ffc/ffc_backend.c', 'openssl/crypto/ffc/ffc_dh.c', 'openssl/crypto/ffc/ffc_key_generate.c', @@ -476,7 +531,11 @@ 'openssl/crypto/ffc/ffc_params.c', 'openssl/crypto/ffc/ffc_params_generate.c', 'openssl/crypto/ffc/ffc_params_validate.c', + 'openssl/crypto/hashtable/hashfunc.c', + 'openssl/crypto/hashtable/hashtable.c', 'openssl/crypto/hmac/hmac.c', + 'openssl/crypto/hpke/hpke.c', + 'openssl/crypto/hpke/hpke_util.c', 'openssl/crypto/http/http_client.c', 'openssl/crypto/http/http_err.c', 'openssl/crypto/http/http_lib.c', @@ -490,6 +549,7 @@ 'openssl/crypto/lhash/lhash.c', 'openssl/crypto/asn1_dsa.c', 'openssl/crypto/bsearch.c', + 'openssl/crypto/comp_methods.c', 'openssl/crypto/context.c', 'openssl/crypto/core_algorithm.c', 'openssl/crypto/core_fetch.c', @@ -499,10 +559,13 @@ 'openssl/crypto/cryptlib.c', 'openssl/crypto/ctype.c', 'openssl/crypto/cversion.c', + 'openssl/crypto/defaults.c', 'openssl/crypto/der_writer.c', + 'openssl/crypto/deterministic_nonce.c', 'openssl/crypto/ebcdic.c', 'openssl/crypto/ex_data.c', 'openssl/crypto/getenv.c', + 'openssl/crypto/indicator_core.c', 'openssl/crypto/info.c', 'openssl/crypto/init.c', 'openssl/crypto/initthread.c', @@ -527,12 +590,16 @@ 'openssl/crypto/provider_core.c', 'openssl/crypto/provider_predefined.c', 'openssl/crypto/punycode.c', + 'openssl/crypto/quic_vlint.c', 'openssl/crypto/self_test_core.c', + 'openssl/crypto/sleep.c', 'openssl/crypto/sparse_array.c', + 'openssl/crypto/ssl_err.c', 'openssl/crypto/threads_lib.c', 'openssl/crypto/threads_none.c', 'openssl/crypto/threads_pthread.c', 'openssl/crypto/threads_win.c', + 'openssl/crypto/time.c', 'openssl/crypto/trace.c', 'openssl/crypto/uid.c', 'openssl/crypto/md4/md4_dgst.c', @@ -542,6 +609,15 @@ 'openssl/crypto/md5/md5_sha1.c', 'openssl/crypto/mdc2/mdc2_one.c', 'openssl/crypto/mdc2/mdc2dgst.c', + 'openssl/crypto/ml_dsa/ml_dsa_encoders.c', + 'openssl/crypto/ml_dsa/ml_dsa_key.c', + 'openssl/crypto/ml_dsa/ml_dsa_key_compress.c', + 'openssl/crypto/ml_dsa/ml_dsa_matrix.c', + 'openssl/crypto/ml_dsa/ml_dsa_ntt.c', + 'openssl/crypto/ml_dsa/ml_dsa_params.c', + 'openssl/crypto/ml_dsa/ml_dsa_sample.c', + 'openssl/crypto/ml_dsa/ml_dsa_sign.c', + 'openssl/crypto/ml_kem/ml_kem.c', 'openssl/crypto/modes/cbc128.c', 'openssl/crypto/modes/ccm128.c', 'openssl/crypto/modes/cfb128.c', @@ -553,6 +629,7 @@ 'openssl/crypto/modes/siv128.c', 'openssl/crypto/modes/wrap128.c', 'openssl/crypto/modes/xts128.c', + 'openssl/crypto/modes/xts128gb.c', 'openssl/crypto/objects/o_names.c', 'openssl/crypto/objects/obj_dat.c', 'openssl/crypto/objects/obj_err.c', @@ -616,6 +693,7 @@ 'openssl/crypto/rand/rand_lib.c', 'openssl/crypto/rand/rand_meth.c', 'openssl/crypto/rand/rand_pool.c', + 'openssl/crypto/rand/rand_uniform.c', 'openssl/crypto/rand/randfile.c', 'openssl/crypto/rc2/rc2_cbc.c', 'openssl/crypto/rc2/rc2_ecb.c', @@ -664,6 +742,16 @@ 'openssl/crypto/sha/sha3.c', 'openssl/crypto/sha/sha512.c', 'openssl/crypto/siphash/siphash.c', + 'openssl/crypto/slh_dsa/slh_adrs.c', + 'openssl/crypto/slh_dsa/slh_dsa.c', + 'openssl/crypto/slh_dsa/slh_dsa_hash_ctx.c', + 'openssl/crypto/slh_dsa/slh_dsa_key.c', + 'openssl/crypto/slh_dsa/slh_fors.c', + 'openssl/crypto/slh_dsa/slh_hash.c', + 'openssl/crypto/slh_dsa/slh_hypertree.c', + 'openssl/crypto/slh_dsa/slh_params.c', + 'openssl/crypto/slh_dsa/slh_wots.c', + 'openssl/crypto/slh_dsa/slh_xmss.c', 'openssl/crypto/sm2/sm2_crypt.c', 'openssl/crypto/sm2/sm2_err.c', 'openssl/crypto/sm2/sm2_key.c', @@ -681,6 +769,12 @@ 'openssl/crypto/store/store_register.c', 'openssl/crypto/store/store_result.c', 'openssl/crypto/store/store_strings.c', + 'openssl/crypto/thread/arch/thread_none.c', + 'openssl/crypto/thread/arch/thread_posix.c', + 'openssl/crypto/thread/arch/thread_win.c', + 'openssl/crypto/thread/api.c', + 'openssl/crypto/thread/arch.c', + 'openssl/crypto/thread/internal.c', 'openssl/crypto/ts/ts_asn1.c', 'openssl/crypto/ts/ts_conf.c', 'openssl/crypto/ts/ts_err.c', @@ -709,14 +803,22 @@ 'openssl/crypto/x509/pcy_map.c', 'openssl/crypto/x509/pcy_node.c', 'openssl/crypto/x509/pcy_tree.c', + 'openssl/crypto/x509/t_acert.c', 'openssl/crypto/x509/t_crl.c', 'openssl/crypto/x509/t_req.c', 'openssl/crypto/x509/t_x509.c', + 'openssl/crypto/x509/v3_aaa.c', + 'openssl/crypto/x509/v3_ac_tgt.c', 'openssl/crypto/x509/v3_addr.c', 'openssl/crypto/x509/v3_admis.c', 'openssl/crypto/x509/v3_akeya.c', 'openssl/crypto/x509/v3_akid.c', 'openssl/crypto/x509/v3_asid.c', + 'openssl/crypto/x509/v3_attrdesc.c', + 'openssl/crypto/x509/v3_attrmap.c', + 'openssl/crypto/x509/v3_audit_id.c', + 'openssl/crypto/x509/v3_authattid.c', + 'openssl/crypto/x509/v3_battcons.c', 'openssl/crypto/x509/v3_bcons.c', 'openssl/crypto/x509/v3_bitst.c', 'openssl/crypto/x509/v3_conf.c', @@ -725,12 +827,17 @@ 'openssl/crypto/x509/v3_enum.c', 'openssl/crypto/x509/v3_extku.c', 'openssl/crypto/x509/v3_genn.c', + 'openssl/crypto/x509/v3_group_ac.c', 'openssl/crypto/x509/v3_ia5.c', + 'openssl/crypto/x509/v3_ind_iss.c', 'openssl/crypto/x509/v3_info.c', 'openssl/crypto/x509/v3_int.c', + 'openssl/crypto/x509/v3_iobo.c', 'openssl/crypto/x509/v3_ist.c', 'openssl/crypto/x509/v3_lib.c', 'openssl/crypto/x509/v3_ncons.c', + 'openssl/crypto/x509/v3_no_ass.c', + 'openssl/crypto/x509/v3_no_rev_avail.c', 'openssl/crypto/x509/v3_pci.c', 'openssl/crypto/x509/v3_pcia.c', 'openssl/crypto/x509/v3_pcons.c', @@ -738,13 +845,20 @@ 'openssl/crypto/x509/v3_pmaps.c', 'openssl/crypto/x509/v3_prn.c', 'openssl/crypto/x509/v3_purp.c', + 'openssl/crypto/x509/v3_rolespec.c', 'openssl/crypto/x509/v3_san.c', + 'openssl/crypto/x509/v3_sda.c', + 'openssl/crypto/x509/v3_single_use.c', 'openssl/crypto/x509/v3_skid.c', + 'openssl/crypto/x509/v3_soa_id.c', 'openssl/crypto/x509/v3_sxnet.c', + 'openssl/crypto/x509/v3_timespec.c', 'openssl/crypto/x509/v3_tlsf.c', + 'openssl/crypto/x509/v3_usernotice.c', 'openssl/crypto/x509/v3_utf8.c', 'openssl/crypto/x509/v3_utl.c', 'openssl/crypto/x509/v3err.c', + 'openssl/crypto/x509/x509_acert.c', 'openssl/crypto/x509/x509_att.c', 'openssl/crypto/x509/x509_cmp.c', 'openssl/crypto/x509/x509_d2.c', @@ -762,6 +876,7 @@ 'openssl/crypto/x509/x509_v3.c', 'openssl/crypto/x509/x509_vfy.c', 'openssl/crypto/x509/x509_vpm.c', + 'openssl/crypto/x509/x509aset.c', 'openssl/crypto/x509/x509cset.c', 'openssl/crypto/x509/x509name.c', 'openssl/crypto/x509/x509rset.c', @@ -771,6 +886,7 @@ 'openssl/crypto/x509/x_attrib.c', 'openssl/crypto/x509/x_crl.c', 'openssl/crypto/x509/x_exten.c', + 'openssl/crypto/x509/x_ietfatt.c', 'openssl/crypto/x509/x_name.c', 'openssl/crypto/x509/x_pubkey.c', 'openssl/crypto/x509/x_req.c', @@ -802,6 +918,9 @@ 'openssl/providers/implementations/ciphers/cipher_aes_ccm_hw.c', 'openssl/providers/implementations/ciphers/cipher_aes_gcm.c', 'openssl/providers/implementations/ciphers/cipher_aes_gcm_hw.c', + 'openssl/providers/implementations/ciphers/cipher_aes_gcm_siv.c', + 'openssl/providers/implementations/ciphers/cipher_aes_gcm_siv_hw.c', + 'openssl/providers/implementations/ciphers/cipher_aes_gcm_siv_polyval.c', 'openssl/providers/implementations/ciphers/cipher_aes_hw.c', 'openssl/providers/implementations/ciphers/cipher_aes_ocb.c', 'openssl/providers/implementations/ciphers/cipher_aes_ocb_hw.c', @@ -826,7 +945,13 @@ 'openssl/providers/implementations/ciphers/cipher_cts.c', 'openssl/providers/implementations/ciphers/cipher_null.c', 'openssl/providers/implementations/ciphers/cipher_sm4.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_ccm.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_ccm_hw.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_gcm.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_gcm_hw.c', 'openssl/providers/implementations/ciphers/cipher_sm4_hw.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_xts.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_xts_hw.c', 'openssl/providers/implementations/ciphers/cipher_tdes.c', 'openssl/providers/implementations/ciphers/cipher_tdes_common.c', 'openssl/providers/implementations/ciphers/cipher_tdes_default.c', @@ -855,11 +980,16 @@ 'openssl/providers/implementations/encode_decode/encode_key2ms.c', 'openssl/providers/implementations/encode_decode/encode_key2text.c', 'openssl/providers/implementations/encode_decode/endecoder_common.c', + 'openssl/providers/implementations/encode_decode/ml_common_codecs.c', + 'openssl/providers/implementations/encode_decode/ml_dsa_codecs.c', + 'openssl/providers/implementations/encode_decode/ml_kem_codecs.c', 'openssl/providers/implementations/exchange/dh_exch.c', 'openssl/providers/implementations/exchange/ecdh_exch.c', 'openssl/providers/implementations/exchange/ecx_exch.c', 'openssl/providers/implementations/exchange/kdf_exch.c', + 'openssl/providers/implementations/kdfs/argon2.c', 'openssl/providers/implementations/kdfs/hkdf.c', + 'openssl/providers/implementations/kdfs/hmacdrbg_kdf.c', 'openssl/providers/implementations/kdfs/kbkdf.c', 'openssl/providers/implementations/kdfs/krb5kdf.c', 'openssl/providers/implementations/kdfs/pbkdf2.c', @@ -870,6 +1000,11 @@ 'openssl/providers/implementations/kdfs/sskdf.c', 'openssl/providers/implementations/kdfs/tls1_prf.c', 'openssl/providers/implementations/kdfs/x942kdf.c', + 'openssl/providers/implementations/kem/ec_kem.c', + 'openssl/providers/implementations/kem/ecx_kem.c', + 'openssl/providers/implementations/kem/kem_util.c', + 'openssl/providers/implementations/kem/ml_kem_kem.c', + 'openssl/providers/implementations/kem/mlx_kem.c', 'openssl/providers/implementations/kem/rsa_kem.c', 'openssl/providers/implementations/keymgmt/dh_kmgmt.c', 'openssl/providers/implementations/keymgmt/dsa_kmgmt.c', @@ -877,7 +1012,11 @@ 'openssl/providers/implementations/keymgmt/ecx_kmgmt.c', 'openssl/providers/implementations/keymgmt/kdf_legacy_kmgmt.c', 'openssl/providers/implementations/keymgmt/mac_legacy_kmgmt.c', + 'openssl/providers/implementations/keymgmt/ml_dsa_kmgmt.c', + 'openssl/providers/implementations/keymgmt/ml_kem_kmgmt.c', + 'openssl/providers/implementations/keymgmt/mlx_kmgmt.c', 'openssl/providers/implementations/keymgmt/rsa_kmgmt.c', + 'openssl/providers/implementations/keymgmt/slh_dsa_kmgmt.c', 'openssl/providers/implementations/macs/blake2b_mac.c', 'openssl/providers/implementations/macs/blake2s_mac.c', 'openssl/providers/implementations/macs/cmac_prov.c', @@ -886,12 +1025,12 @@ 'openssl/providers/implementations/macs/kmac_prov.c', 'openssl/providers/implementations/macs/poly1305_prov.c', 'openssl/providers/implementations/macs/siphash_prov.c', - 'openssl/providers/implementations/rands/crngt.c', 'openssl/providers/implementations/rands/drbg.c', 'openssl/providers/implementations/rands/drbg_ctr.c', 'openssl/providers/implementations/rands/drbg_hash.c', 'openssl/providers/implementations/rands/drbg_hmac.c', 'openssl/providers/implementations/rands/seed_src.c', + 'openssl/providers/implementations/rands/seed_src_jitter.c', 'openssl/providers/implementations/rands/test_rng.c', 'openssl/providers/implementations/rands/seeding/rand_cpu_x86.c', 'openssl/providers/implementations/rands/seeding/rand_tsc.c', @@ -901,17 +1040,23 @@ 'openssl/providers/implementations/signature/ecdsa_sig.c', 'openssl/providers/implementations/signature/eddsa_sig.c', 'openssl/providers/implementations/signature/mac_legacy_sig.c', + 'openssl/providers/implementations/signature/ml_dsa_sig.c', 'openssl/providers/implementations/signature/rsa_sig.c', + 'openssl/providers/implementations/signature/slh_dsa_sig.c', 'openssl/providers/implementations/signature/sm2_sig.c', + 'openssl/providers/implementations/skeymgmt/aes_skmgmt.c', + 'openssl/providers/implementations/skeymgmt/generic.c', 'openssl/providers/implementations/storemgmt/file_store.c', 'openssl/providers/implementations/storemgmt/file_store_any2obj.c', - 'openssl/ssl/s3_cbc.c', + 'openssl/ssl/record/methods/ssl3_cbc.c', 'openssl/providers/common/der/der_dsa_key.c', 'openssl/providers/common/der/der_dsa_sig.c', 'openssl/providers/common/der/der_ec_key.c', 'openssl/providers/common/der/der_ec_sig.c', 'openssl/providers/common/der/der_ecx_key.c', + 'openssl/providers/common/der/der_ml_dsa_key.c', 'openssl/providers/common/der/der_rsa_key.c', + 'openssl/providers/common/der/der_slh_dsa_key.c', 'openssl/providers/common/provider_ctx.c', 'openssl/providers/common/provider_err.c', 'openssl/providers/implementations/ciphers/ciphercommon.c', @@ -922,7 +1067,7 @@ 'openssl/providers/implementations/ciphers/ciphercommon_gcm_hw.c', 'openssl/providers/implementations/ciphers/ciphercommon_hw.c', 'openssl/providers/implementations/digests/digestcommon.c', - 'openssl/ssl/record/tls_pad.c', + 'openssl/ssl/record/methods/tls_pad.c', 'openssl/providers/implementations/ciphers/cipher_blowfish.c', 'openssl/providers/implementations/ciphers/cipher_blowfish_hw.c', 'openssl/providers/implementations/ciphers/cipher_cast5.c', @@ -947,16 +1092,20 @@ 'openssl/providers/implementations/digests/ripemd_prov.c', 'openssl/providers/implementations/digests/wp_prov.c', 'openssl/providers/implementations/kdfs/pbkdf1.c', + 'openssl/providers/implementations/kdfs/pvkkdf.c', 'openssl/providers/prov_running.c', 'openssl/providers/legacyprov.c', ], 'openssl_sources_linux-armv4': [ + './config/archs/linux-armv4/no-asm/crypto/params_idx.c', './config/archs/linux-armv4/no-asm/providers/common/der/der_sm2_gen.c', './config/archs/linux-armv4/no-asm/providers/common/der/der_digests_gen.c', './config/archs/linux-armv4/no-asm/providers/common/der/der_dsa_gen.c', './config/archs/linux-armv4/no-asm/providers/common/der/der_ec_gen.c', './config/archs/linux-armv4/no-asm/providers/common/der/der_ecx_gen.c', + './config/archs/linux-armv4/no-asm/providers/common/der/der_ml_dsa_gen.c', './config/archs/linux-armv4/no-asm/providers/common/der/der_rsa_gen.c', + './config/archs/linux-armv4/no-asm/providers/common/der/der_slh_dsa_gen.c', './config/archs/linux-armv4/no-asm/providers/common/der/der_wrap_gen.c', './config/archs/linux-armv4/no-asm/providers/legacy.ld', './config/archs/linux-armv4/no-asm/providers/fips.ld', diff --git a/deps/openssl/config/archs/linux-armv4/no-asm/providers/common/der/der_ml_dsa_gen.c b/deps/openssl/config/archs/linux-armv4/no-asm/providers/common/der/der_ml_dsa_gen.c new file mode 100644 index 00000000000000..4a8a113a268578 --- /dev/null +++ b/deps/openssl/config/archs/linux-armv4/no-asm/providers/common/der/der_ml_dsa_gen.c @@ -0,0 +1,37 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from providers/common/der/der_ml_dsa_gen.c.in + * + * Copyright 2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include "prov/der_ml_dsa.h" + +/* Well known OIDs precompiled */ + +/* + * id-ml-dsa-44 OBJECT IDENTIFIER ::= { sigAlgs 17 } + */ +const unsigned char ossl_der_oid_id_ml_dsa_44[DER_OID_SZ_id_ml_dsa_44] = { + DER_OID_V_id_ml_dsa_44 +}; + +/* + * id-ml-dsa-65 OBJECT IDENTIFIER ::= { sigAlgs 18 } + */ +const unsigned char ossl_der_oid_id_ml_dsa_65[DER_OID_SZ_id_ml_dsa_65] = { + DER_OID_V_id_ml_dsa_65 +}; + +/* + * id-ml-dsa-87 OBJECT IDENTIFIER ::= { sigAlgs 19 } + */ +const unsigned char ossl_der_oid_id_ml_dsa_87[DER_OID_SZ_id_ml_dsa_87] = { + DER_OID_V_id_ml_dsa_87 +}; + diff --git a/deps/openssl/config/archs/linux-armv4/no-asm/providers/common/der/der_slh_dsa_gen.c b/deps/openssl/config/archs/linux-armv4/no-asm/providers/common/der/der_slh_dsa_gen.c new file mode 100644 index 00000000000000..1419a9515097dd --- /dev/null +++ b/deps/openssl/config/archs/linux-armv4/no-asm/providers/common/der/der_slh_dsa_gen.c @@ -0,0 +1,100 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from providers/common/der/der_slh_dsa_gen.c.in + * + * Copyright 2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include "prov/der_slh_dsa.h" + +/* Well known OIDs precompiled */ + +/* + * id-slh-dsa-sha2-128s OBJECT IDENTIFIER ::= { sigAlgs 20 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_128s[DER_OID_SZ_id_slh_dsa_sha2_128s] = { + DER_OID_V_id_slh_dsa_sha2_128s +}; + +/* + * id-slh-dsa-sha2-128f OBJECT IDENTIFIER ::= { sigAlgs 21 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_128f[DER_OID_SZ_id_slh_dsa_sha2_128f] = { + DER_OID_V_id_slh_dsa_sha2_128f +}; + +/* + * id-slh-dsa-sha2-192s OBJECT IDENTIFIER ::= { sigAlgs 22 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_192s[DER_OID_SZ_id_slh_dsa_sha2_192s] = { + DER_OID_V_id_slh_dsa_sha2_192s +}; + +/* + * id-slh-dsa-sha2-192f OBJECT IDENTIFIER ::= { sigAlgs 23 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_192f[DER_OID_SZ_id_slh_dsa_sha2_192f] = { + DER_OID_V_id_slh_dsa_sha2_192f +}; + +/* + * id-slh-dsa-sha2-256s OBJECT IDENTIFIER ::= { sigAlgs 24 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_256s[DER_OID_SZ_id_slh_dsa_sha2_256s] = { + DER_OID_V_id_slh_dsa_sha2_256s +}; + +/* + * id-slh-dsa-sha2-256f OBJECT IDENTIFIER ::= { sigAlgs 25 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_256f[DER_OID_SZ_id_slh_dsa_sha2_256f] = { + DER_OID_V_id_slh_dsa_sha2_256f +}; + +/* + * id-slh-dsa-shake-128s OBJECT IDENTIFIER ::= { sigAlgs 26 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_128s[DER_OID_SZ_id_slh_dsa_shake_128s] = { + DER_OID_V_id_slh_dsa_shake_128s +}; + +/* + * id-slh-dsa-shake-128f OBJECT IDENTIFIER ::= { sigAlgs 27 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_128f[DER_OID_SZ_id_slh_dsa_shake_128f] = { + DER_OID_V_id_slh_dsa_shake_128f +}; + +/* + * id-slh-dsa-shake-192s OBJECT IDENTIFIER ::= { sigAlgs 28 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_192s[DER_OID_SZ_id_slh_dsa_shake_192s] = { + DER_OID_V_id_slh_dsa_shake_192s +}; + +/* + * id-slh-dsa-shake-192f OBJECT IDENTIFIER ::= { sigAlgs 29 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_192f[DER_OID_SZ_id_slh_dsa_shake_192f] = { + DER_OID_V_id_slh_dsa_shake_192f +}; + +/* + * id-slh-dsa-shake-256s OBJECT IDENTIFIER ::= { sigAlgs 30 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_256s[DER_OID_SZ_id_slh_dsa_shake_256s] = { + DER_OID_V_id_slh_dsa_shake_256s +}; + +/* + * id-slh-dsa-shake-256f OBJECT IDENTIFIER ::= { sigAlgs 31 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_256f[DER_OID_SZ_id_slh_dsa_shake_256f] = { + DER_OID_V_id_slh_dsa_shake_256f +}; + diff --git a/deps/openssl/config/archs/linux-armv4/no-asm/providers/common/include/prov/der_ml_dsa.h b/deps/openssl/config/archs/linux-armv4/no-asm/providers/common/include/prov/der_ml_dsa.h new file mode 100644 index 00000000000000..c55f780ab4527c --- /dev/null +++ b/deps/openssl/config/archs/linux-armv4/no-asm/providers/common/include/prov/der_ml_dsa.h @@ -0,0 +1,40 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from providers/common/include/prov/der_ml_dsa.h.in + * + * Copyright 2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include "internal/der.h" +#include "crypto/ml_dsa.h" + +/* Well known OIDs precompiled */ + +/* + * id-ml-dsa-44 OBJECT IDENTIFIER ::= { sigAlgs 17 } + */ +#define DER_OID_V_id_ml_dsa_44 DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x11 +#define DER_OID_SZ_id_ml_dsa_44 11 +extern const unsigned char ossl_der_oid_id_ml_dsa_44[DER_OID_SZ_id_ml_dsa_44]; + +/* + * id-ml-dsa-65 OBJECT IDENTIFIER ::= { sigAlgs 18 } + */ +#define DER_OID_V_id_ml_dsa_65 DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x12 +#define DER_OID_SZ_id_ml_dsa_65 11 +extern const unsigned char ossl_der_oid_id_ml_dsa_65[DER_OID_SZ_id_ml_dsa_65]; + +/* + * id-ml-dsa-87 OBJECT IDENTIFIER ::= { sigAlgs 19 } + */ +#define DER_OID_V_id_ml_dsa_87 DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x13 +#define DER_OID_SZ_id_ml_dsa_87 11 +extern const unsigned char ossl_der_oid_id_ml_dsa_87[DER_OID_SZ_id_ml_dsa_87]; + + +int ossl_DER_w_algorithmIdentifier_ML_DSA(WPACKET *pkt, int tag, ML_DSA_KEY *key); diff --git a/deps/openssl/config/archs/linux-armv4/no-asm/providers/common/include/prov/der_slh_dsa.h b/deps/openssl/config/archs/linux-armv4/no-asm/providers/common/include/prov/der_slh_dsa.h new file mode 100644 index 00000000000000..760f8e7699be72 --- /dev/null +++ b/deps/openssl/config/archs/linux-armv4/no-asm/providers/common/include/prov/der_slh_dsa.h @@ -0,0 +1,103 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from providers/common/include/prov/der_slh_dsa.h.in + * + * Copyright 2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include "internal/der.h" +#include "crypto/slh_dsa.h" + +/* Well known OIDs precompiled */ + +/* + * id-slh-dsa-sha2-128s OBJECT IDENTIFIER ::= { sigAlgs 20 } + */ +#define DER_OID_V_id_slh_dsa_sha2_128s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x14 +#define DER_OID_SZ_id_slh_dsa_sha2_128s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_128s[DER_OID_SZ_id_slh_dsa_sha2_128s]; + +/* + * id-slh-dsa-sha2-128f OBJECT IDENTIFIER ::= { sigAlgs 21 } + */ +#define DER_OID_V_id_slh_dsa_sha2_128f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x15 +#define DER_OID_SZ_id_slh_dsa_sha2_128f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_128f[DER_OID_SZ_id_slh_dsa_sha2_128f]; + +/* + * id-slh-dsa-sha2-192s OBJECT IDENTIFIER ::= { sigAlgs 22 } + */ +#define DER_OID_V_id_slh_dsa_sha2_192s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x16 +#define DER_OID_SZ_id_slh_dsa_sha2_192s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_192s[DER_OID_SZ_id_slh_dsa_sha2_192s]; + +/* + * id-slh-dsa-sha2-192f OBJECT IDENTIFIER ::= { sigAlgs 23 } + */ +#define DER_OID_V_id_slh_dsa_sha2_192f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x17 +#define DER_OID_SZ_id_slh_dsa_sha2_192f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_192f[DER_OID_SZ_id_slh_dsa_sha2_192f]; + +/* + * id-slh-dsa-sha2-256s OBJECT IDENTIFIER ::= { sigAlgs 24 } + */ +#define DER_OID_V_id_slh_dsa_sha2_256s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x18 +#define DER_OID_SZ_id_slh_dsa_sha2_256s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_256s[DER_OID_SZ_id_slh_dsa_sha2_256s]; + +/* + * id-slh-dsa-sha2-256f OBJECT IDENTIFIER ::= { sigAlgs 25 } + */ +#define DER_OID_V_id_slh_dsa_sha2_256f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x19 +#define DER_OID_SZ_id_slh_dsa_sha2_256f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_256f[DER_OID_SZ_id_slh_dsa_sha2_256f]; + +/* + * id-slh-dsa-shake-128s OBJECT IDENTIFIER ::= { sigAlgs 26 } + */ +#define DER_OID_V_id_slh_dsa_shake_128s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1A +#define DER_OID_SZ_id_slh_dsa_shake_128s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_128s[DER_OID_SZ_id_slh_dsa_shake_128s]; + +/* + * id-slh-dsa-shake-128f OBJECT IDENTIFIER ::= { sigAlgs 27 } + */ +#define DER_OID_V_id_slh_dsa_shake_128f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1B +#define DER_OID_SZ_id_slh_dsa_shake_128f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_128f[DER_OID_SZ_id_slh_dsa_shake_128f]; + +/* + * id-slh-dsa-shake-192s OBJECT IDENTIFIER ::= { sigAlgs 28 } + */ +#define DER_OID_V_id_slh_dsa_shake_192s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1C +#define DER_OID_SZ_id_slh_dsa_shake_192s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_192s[DER_OID_SZ_id_slh_dsa_shake_192s]; + +/* + * id-slh-dsa-shake-192f OBJECT IDENTIFIER ::= { sigAlgs 29 } + */ +#define DER_OID_V_id_slh_dsa_shake_192f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1D +#define DER_OID_SZ_id_slh_dsa_shake_192f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_192f[DER_OID_SZ_id_slh_dsa_shake_192f]; + +/* + * id-slh-dsa-shake-256s OBJECT IDENTIFIER ::= { sigAlgs 30 } + */ +#define DER_OID_V_id_slh_dsa_shake_256s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1E +#define DER_OID_SZ_id_slh_dsa_shake_256s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_256s[DER_OID_SZ_id_slh_dsa_shake_256s]; + +/* + * id-slh-dsa-shake-256f OBJECT IDENTIFIER ::= { sigAlgs 31 } + */ +#define DER_OID_V_id_slh_dsa_shake_256f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1F +#define DER_OID_SZ_id_slh_dsa_shake_256f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_256f[DER_OID_SZ_id_slh_dsa_shake_256f]; + + +int ossl_DER_w_algorithmIdentifier_SLH_DSA(WPACKET *pkt, int tag, SLH_DSA_KEY *key); diff --git a/deps/openssl/config/archs/linux-elf/asm/apps/progs.c b/deps/openssl/config/archs/linux-elf/asm/apps/progs.c index 43cef00799b86e..acc204a3e6e781 100644 --- a/deps/openssl/config/archs/linux-elf/asm/apps/progs.c +++ b/deps/openssl/config/archs/linux-elf/asm/apps/progs.c @@ -89,6 +89,7 @@ FUNCTION functions[] = { {FT_general, "s_time", s_time_main, s_time_options, NULL, NULL}, #endif {FT_general, "sess_id", sess_id_main, sess_id_options, NULL, NULL}, + {FT_general, "skeyutl", skeyutl_main, skeyutl_options, NULL, NULL}, {FT_general, "smime", smime_main, smime_options, NULL, NULL}, {FT_general, "speed", speed_main, speed_options, NULL, NULL}, {FT_general, "spkac", spkac_main, spkac_options, NULL, NULL}, @@ -225,9 +226,15 @@ FUNCTION functions[] = { {FT_cipher, "camellia-256-ecb", enc_main, enc_options, NULL}, #endif {FT_cipher, "base64", enc_main, enc_options, NULL}, -#ifdef ZLIB +#ifndef OPENSSL_NO_ZLIB {FT_cipher, "zlib", enc_main, enc_options, NULL}, #endif +#ifndef OPENSSL_NO_BROTLI + {FT_cipher, "brotli", enc_main, enc_options, NULL}, +#endif +#ifndef OPENSSL_NO_ZSTD + {FT_cipher, "zstd", enc_main, enc_options, NULL}, +#endif #ifndef OPENSSL_NO_DES {FT_cipher, "des", enc_main, enc_options, NULL}, #endif diff --git a/deps/openssl/config/archs/linux-elf/asm/configdata.pm b/deps/openssl/config/archs/linux-elf/asm/configdata.pm index a196f0e94c9c57..c586c364833c07 100644 --- a/deps/openssl/config/archs/linux-elf/asm/configdata.pm +++ b/deps/openssl/config/archs/linux-elf/asm/configdata.pm @@ -18,6 +18,7 @@ our %config = ( "ARFLAGS" => [ "qc" ], + "ASFLAGS" => [], "CC" => "gcc", "CFLAGS" => [ "-Wall -O3 -fomit-frame-pointer" @@ -30,14 +31,16 @@ our %config = ( "-Wall -O3" ], "FIPSKEY" => "f4556650ac31d35461610bac4ed81b1a181b2d8a43ea2854cbae22ca74560813", + "FIPS_VENDOR" => "OpenSSL FIPS Provider", "HASHBANGPERL" => "/usr/bin/env perl", "LDFLAGS" => [], "LDLIBS" => [], + "OBJCOPY" => "objcopy", "PERL" => "/usr/bin/perl", "RANLIB" => "ranlib", "RC" => "windres", "RCFLAGS" => [], - "api" => "30000", + "api" => "30500", "b32" => "1", "b64" => "0", "b64l" => "0", @@ -59,11 +62,13 @@ our %config = ( "doc/build.info", "test/build.info", "engines/build.info", + "exporters/build.info", "crypto/objects/build.info", "crypto/buffer/build.info", "crypto/bio/build.info", "crypto/stack/build.info", "crypto/lhash/build.info", + "crypto/hashtable/build.info", "crypto/rand/build.info", "crypto/evp/build.info", "crypto/asn1/build.info", @@ -81,6 +86,7 @@ our %config = ( "crypto/md5/build.info", "crypto/sha/build.info", "crypto/mdc2/build.info", + "crypto/ml_kem/build.info", "crypto/hmac/build.info", "crypto/ripemd/build.info", "crypto/whrlpool/build.info", @@ -122,11 +128,19 @@ our %config = ( "crypto/cmp/build.info", "crypto/encode_decode/build.info", "crypto/ffc/build.info", + "crypto/hpke/build.info", + "crypto/thread/build.info", + "crypto/ml_dsa/build.info", + "crypto/slh_dsa/build.info", + "ssl/record/build.info", + "ssl/rio/build.info", + "ssl/quic/build.info", "apps/lib/build.info", "providers/common/build.info", "providers/implementations/build.info", "providers/fips/build.info", "doc/man1/build.info", + "ssl/record/methods/build.info", "providers/common/der/build.info", "providers/implementations/digests/build.info", "providers/implementations/ciphers/build.info", @@ -140,6 +154,7 @@ our %config = ( "providers/implementations/encode_decode/build.info", "providers/implementations/storemgmt/build.info", "providers/implementations/kem/build.info", + "providers/implementations/skeymgmt/build.info", "providers/implementations/rands/seeding/build.info" ], "build_metadata" => "", @@ -159,7 +174,7 @@ our %config = ( ], "dynamic_engines" => "0", "ex_libs" => [], - "full_version" => "3.0.17", + "full_version" => "3.5.1", "includes" => [], "lflags" => [], "lib_defines" => [ @@ -168,37 +183,52 @@ our %config = ( "libdir" => "", "major" => "3", "makedep_scheme" => "gcc", - "minor" => "0", + "minor" => "5", "openssl_api_defines" => [ - "OPENSSL_CONFIGURED_API=30000" + "OPENSSL_CONFIGURED_API=30500" ], "openssl_feature_defines" => [ "OPENSSL_RAND_SEED_OS", "OPENSSL_THREADS", "OPENSSL_NO_AFALGENG", "OPENSSL_NO_ASAN", + "OPENSSL_NO_BROTLI", + "OPENSSL_NO_BROTLI_DYNAMIC", "OPENSSL_NO_COMP", "OPENSSL_NO_CRYPTO_MDEBUG", "OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE", + "OPENSSL_NO_DEMOS", "OPENSSL_NO_DEVCRYPTOENG", "OPENSSL_NO_EC_NISTP_64_GCC_128", "OPENSSL_NO_EGD", "OPENSSL_NO_EXTERNAL_TESTS", + "OPENSSL_NO_FIPS_JITTER", "OPENSSL_NO_FUZZ_AFL", "OPENSSL_NO_FUZZ_LIBFUZZER", + "OPENSSL_NO_H3DEMO", + "OPENSSL_NO_HQINTEROP", + "OPENSSL_NO_JITTER", "OPENSSL_NO_KTLS", "OPENSSL_NO_LOADERENG", "OPENSSL_NO_MD2", "OPENSSL_NO_MSAN", + "OPENSSL_NO_PIE", "OPENSSL_NO_RC5", "OPENSSL_NO_SCTP", "OPENSSL_NO_SSL3", "OPENSSL_NO_SSL3_METHOD", + "OPENSSL_NO_SSLKEYLOG", + "OPENSSL_NO_TFO", "OPENSSL_NO_TRACE", "OPENSSL_NO_UBSAN", "OPENSSL_NO_UNIT_TEST", "OPENSSL_NO_UPLINK", "OPENSSL_NO_WEAK_SSL_CIPHERS", + "OPENSSL_NO_WINSTORE", + "OPENSSL_NO_ZLIB", + "OPENSSL_NO_ZLIB_DYNAMIC", + "OPENSSL_NO_ZSTD", + "OPENSSL_NO_ZSTD_DYNAMIC", "OPENSSL_NO_DYNAMIC_ENGINE" ], "openssl_other_defines" => [ @@ -206,11 +236,11 @@ our %config = ( ], "openssl_sys_defines" => [], "openssldir" => "", - "options" => "enable-ssl-trace enable-fips no-afalgeng no-asan no-buildtest-c++ no-comp no-crypto-mdebug no-crypto-mdebug-backtrace no-devcryptoeng no-dynamic-engine no-ec_nistp_64_gcc_128 no-egd no-external-tests no-fuzz-afl no-fuzz-libfuzzer no-ktls no-loadereng no-md2 no-msan no-rc5 no-sctp no-shared no-ssl3 no-ssl3-method no-trace no-ubsan no-unit-test no-uplink no-weak-ssl-ciphers no-zlib no-zlib-dynamic", - "patch" => "17", + "options" => "enable-ssl-trace enable-fips no-afalgeng no-asan no-brotli no-brotli-dynamic no-buildtest-c++ no-comp no-crypto-mdebug no-crypto-mdebug-backtrace no-demos no-devcryptoeng no-dynamic-engine no-ec_nistp_64_gcc_128 no-egd no-external-tests no-fips-jitter no-fuzz-afl no-fuzz-libfuzzer no-h3demo no-hqinterop no-jitter no-ktls no-loadereng no-md2 no-msan no-pie no-rc5 no-sctp no-shared no-ssl3 no-ssl3-method no-sslkeylog no-tfo no-trace no-ubsan no-unit-test no-uplink no-weak-ssl-ciphers no-winstore no-zlib no-zlib-dynamic no-zstd no-zstd-dynamic", + "patch" => "1", "perl_archname" => "x86_64-linux-gnu-thread-multi", "perl_cmd" => "/usr/bin/perl", - "perl_version" => "5.38.2", + "perl_version" => "5.34.0", "perlargv" => [ "no-comp", "no-shared", @@ -240,6 +270,7 @@ our %config = ( "LDLIBS" => undef, "MT" => undef, "MTFLAGS" => undef, + "OBJCOPY" => undef, "OPENSSL_LOCAL_CONFIG_DIR" => undef, "PERL" => undef, "RANLIB" => undef, @@ -263,7 +294,7 @@ our %config = ( "shlib_version" => "3", "sourcedir" => ".", "target" => "linux-elf", - "version" => "3.0.17" + "version" => "3.5.1" ); our %target = ( "AR" => "ar", @@ -273,6 +304,7 @@ our %target = ( "CXX" => "g++", "CXXFLAGS" => "-Wall -O3", "HASHBANGPERL" => "/usr/bin/env perl", + "OBJCOPY" => "objcopy", "RANLIB" => "ranlib", "RC" => "windres", "_conf_fname_int" => [ @@ -283,6 +315,8 @@ our %target = ( "Configurations/shared-info.pl" ], "asm_arch" => "x86", + "bin_cflags" => "", + "bin_lflags" => "", "bn_ops" => "BN_LLONG", "build_file" => "Makefile", "build_scheme" => [ @@ -327,6 +361,8 @@ our %target = ( our @disablables = ( "acvp-tests", "afalgeng", + "apps", + "argon2", "aria", "asan", "asm", @@ -337,11 +373,14 @@ our @disablables = ( "autoload-config", "bf", "blake2", + "brotli", + "brotli-dynamic", "buildtest-c++", "bulk", "cached-fetch", "camellia", "capieng", + "winstore", "cast", "chacha", "cmac", @@ -350,11 +389,16 @@ our @disablables = ( "comp", "crypto-mdebug", "ct", + "default-thread-pool", + "demos", + "h3demo", + "hqinterop", "deprecated", "des", "devcryptoeng", "dgram", "dh", + "docs", "dsa", "dso", "dtls", @@ -364,6 +408,7 @@ our @disablables = ( "ec_nistp_64_gcc_128", "ecdh", "ecdsa", + "ecx", "egd", "engine", "err", @@ -371,10 +416,15 @@ our @disablables = ( "filenames", "fips", "fips-securitychecks", + "fips-post", + "fips-jitter", "fuzz-afl", "fuzz-libfuzzer", "gost", + "http", "idea", + "integrity-only-ciphers", + "jitter", "ktls", "legacy", "loadereng", @@ -382,6 +432,8 @@ our @disablables = ( "md2", "md4", "mdc2", + "ml-dsa", + "ml-kem", "module", "msan", "multiblock", @@ -390,10 +442,13 @@ our @disablables = ( "ocsp", "padlockeng", "pic", + "pie", "pinshared", "poly1305", "posix-io", "psk", + "quic", + "unstable-qlog", "rc2", "rc4", "rc5", @@ -407,7 +462,9 @@ our @disablables = ( "shared", "siphash", "siv", + "slh-dsa", "sm2", + "sm2-precomp", "sm3", "sm4", "sock", @@ -418,9 +475,13 @@ our @disablables = ( "ssl-trace", "static-engine", "stdio", + "sslkeylog", "tests", + "tfo", + "thread-pool", "threads", "tls", + "tls-deprecated-ec", "trace", "ts", "ubsan", @@ -431,6 +492,8 @@ our @disablables = ( "whirlpool", "zlib", "zlib-dynamic", + "zstd", + "zstd-dynamic", "ssl3", "ssl3-method", "tls1", @@ -451,33 +514,46 @@ our @disablables_int = ( our %disabled = ( "afalgeng" => "option", "asan" => "default", + "brotli" => "default", + "brotli-dynamic" => "default", "buildtest-c++" => "default", "comp" => "option", "crypto-mdebug" => "default", "crypto-mdebug-backtrace" => "default", + "demos" => "default", "devcryptoeng" => "default", "dynamic-engine" => "cascade", "ec_nistp_64_gcc_128" => "default", "egd" => "default", "external-tests" => "default", + "fips-jitter" => "default", "fuzz-afl" => "default", "fuzz-libfuzzer" => "default", + "h3demo" => "default", + "hqinterop" => "default", + "jitter" => "default", "ktls" => "default", "loadereng" => "cascade", "md2" => "default", "msan" => "default", + "pie" => "default", "rc5" => "default", "sctp" => "default", "shared" => "option", "ssl3" => "default", "ssl3-method" => "default", + "sslkeylog" => "default", + "tfo" => "default", "trace" => "default", "ubsan" => "default", "unit-test" => "default", "uplink" => "no uplink_arch", "weak-ssl-ciphers" => "default", + "winstore" => "not-windows", "zlib" => "default", - "zlib-dynamic" => "default" + "zlib-dynamic" => "default", + "zstd" => "default", + "zstd-dynamic" => "default" ); our %withargs = (); our %unified_info = ( @@ -703,6 +779,11 @@ our %unified_info = ( "pod" => "1" } }, + "doc/man1/openssl-skeyutl.pod" => { + "doc/man1/openssl-skeyutl.pod.in" => { + "pod" => "1" + } + }, "doc/man1/openssl-smime.pod" => { "doc/man1/openssl-smime.pod.in" => { "pod" => "1" @@ -760,6 +841,21 @@ our %unified_info = ( } }, "generate" => { + "exporters/OpenSSLConfig.cmake" => { + "exporter" => "cmake" + }, + "exporters/OpenSSLConfigVersion.cmake" => { + "exporter" => "cmake" + }, + "exporters/libcrypto.pc" => { + "exporter" => "pkg-config" + }, + "exporters/libssl.pc" => { + "exporter" => "pkg-config" + }, + "exporters/openssl.pc" => { + "exporter" => "pkg-config" + }, "include/openssl/configuration.h" => { "skip" => "1" } @@ -780,6 +876,9 @@ our %unified_info = ( "providers/liblegacy.a" => { "noinst" => "1" }, + "providers/libtemplate.a" => { + "noinst" => "1" + }, "test/libtestutil.a" => { "has_main" => "1", "noinst" => "1" @@ -797,6 +896,9 @@ our %unified_info = ( } }, "programs" => { + "fuzz/acert-test" => { + "noinst" => "1" + }, "fuzz/asn1-test" => { "noinst" => "1" }, @@ -827,9 +929,60 @@ our %unified_info = ( "fuzz/ct-test" => { "noinst" => "1" }, + "fuzz/decoder-test" => { + "noinst" => "1" + }, + "fuzz/dtlsclient-test" => { + "noinst" => "1" + }, + "fuzz/dtlsserver-test" => { + "noinst" => "1" + }, + "fuzz/hashtable-test" => { + "noinst" => "1" + }, + "fuzz/ml-dsa-test" => { + "noinst" => "1" + }, + "fuzz/ml-kem-test" => { + "noinst" => "1" + }, + "fuzz/pem-test" => { + "noinst" => "1" + }, + "fuzz/provider-test" => { + "noinst" => "1" + }, + "fuzz/punycode-test" => { + "noinst" => "1" + }, + "fuzz/quic-client-test" => { + "noinst" => "1" + }, + "fuzz/quic-lcidm-test" => { + "noinst" => "1" + }, + "fuzz/quic-rcidm-test" => { + "noinst" => "1" + }, + "fuzz/quic-server-test" => { + "noinst" => "1" + }, + "fuzz/quic-srtm-test" => { + "noinst" => "1" + }, "fuzz/server-test" => { "noinst" => "1" }, + "fuzz/slh-dsa-test" => { + "noinst" => "1" + }, + "fuzz/smime-test" => { + "noinst" => "1" + }, + "fuzz/v3name-test" => { + "noinst" => "1" + }, "fuzz/x509-test" => { "noinst" => "1" }, @@ -881,18 +1034,30 @@ our %unified_info = ( "test/bftest" => { "noinst" => "1" }, + "test/bio_addr_test" => { + "noinst" => "1" + }, + "test/bio_base64_test" => { + "noinst" => "1" + }, "test/bio_callback_test" => { "noinst" => "1" }, "test/bio_core_test" => { "noinst" => "1" }, + "test/bio_dgram_test" => { + "noinst" => "1" + }, "test/bio_enc_test" => { "noinst" => "1" }, "test/bio_memleak_test" => { "noinst" => "1" }, + "test/bio_meth_test" => { + "noinst" => "1" + }, "test/bio_prefix_text" => { "noinst" => "1" }, @@ -902,6 +1067,9 @@ our %unified_info = ( "test/bio_readbuffer_test" => { "noinst" => "1" }, + "test/bio_tfo_test" => { + "noinst" => "1" + }, "test/bioprinttest" => { "noinst" => "1" }, @@ -911,6 +1079,9 @@ our %unified_info = ( "test/bntest" => { "noinst" => "1" }, + "test/build_wincrypt_test" => { + "noinst" => "1" + }, "test/buildtest_c_aes" => { "noinst" => "1" }, @@ -926,6 +1097,9 @@ our %unified_info = ( "test/buildtest_c_buffer" => { "noinst" => "1" }, + "test/buildtest_c_byteorder" => { + "noinst" => "1" + }, "test/buildtest_c_camellia" => { "noinst" => "1" }, @@ -950,9 +1124,6 @@ our %unified_info = ( "test/buildtest_c_core_dispatch" => { "noinst" => "1" }, - "test/buildtest_c_core_names" => { - "noinst" => "1" - }, "test/buildtest_c_core_object" => { "noinst" => "1" }, @@ -977,6 +1148,9 @@ our %unified_info = ( "test/buildtest_c_e_os2" => { "noinst" => "1" }, + "test/buildtest_c_e_ostime" => { + "noinst" => "1" + }, "test/buildtest_c_ebcdic" => { "noinst" => "1" }, @@ -1004,12 +1178,18 @@ our %unified_info = ( "test/buildtest_c_hmac" => { "noinst" => "1" }, + "test/buildtest_c_hpke" => { + "noinst" => "1" + }, "test/buildtest_c_http" => { "noinst" => "1" }, "test/buildtest_c_idea" => { "noinst" => "1" }, + "test/buildtest_c_indicator" => { + "noinst" => "1" + }, "test/buildtest_c_kdf" => { "noinst" => "1" }, @@ -1025,6 +1205,9 @@ our %unified_info = ( "test/buildtest_c_mdc2" => { "noinst" => "1" }, + "test/buildtest_c_ml_kem" => { + "noinst" => "1" + }, "test/buildtest_c_modes" => { "noinst" => "1" }, @@ -1055,6 +1238,9 @@ our %unified_info = ( "test/buildtest_c_provider" => { "noinst" => "1" }, + "test/buildtest_c_quic" => { + "noinst" => "1" + }, "test/buildtest_c_rand" => { "noinst" => "1" }, @@ -1097,6 +1283,9 @@ our %unified_info = ( "test/buildtest_c_symhacks" => { "noinst" => "1" }, + "test/buildtest_c_thread" => { + "noinst" => "1" + }, "test/buildtest_c_tls1" => { "noinst" => "1" }, @@ -1112,6 +1301,12 @@ our %unified_info = ( "test/buildtest_c_whrlpool" => { "noinst" => "1" }, + "test/byteorder_test" => { + "noinst" => "1" + }, + "test/ca_internals_test" => { + "noinst" => "1" + }, "test/casttest" => { "noinst" => "1" }, @@ -1196,6 +1391,9 @@ our %unified_info = ( "test/danetest" => { "noinst" => "1" }, + "test/decoder_propq_test" => { + "noinst" => "1" + }, "test/defltfips_test" => { "noinst" => "1" }, @@ -1268,15 +1466,24 @@ our %unified_info = ( "test/evp_pkey_ctx_new_from_name" => { "noinst" => "1" }, + "test/evp_pkey_dhkem_test" => { + "noinst" => "1" + }, "test/evp_pkey_dparams_test" => { "noinst" => "1" }, "test/evp_pkey_provided_test" => { "noinst" => "1" }, + "test/evp_skey_test" => { + "noinst" => "1" + }, "test/evp_test" => { "noinst" => "1" }, + "test/evp_xof_test" => { + "noinst" => "1" + }, "test/exdatatest" => { "noinst" => "1" }, @@ -1304,6 +1511,9 @@ our %unified_info = ( "test/hmactest" => { "noinst" => "1" }, + "test/hpke_test" => { + "noinst" => "1" + }, "test/http_test" => { "noinst" => "1" }, @@ -1313,12 +1523,18 @@ our %unified_info = ( "test/igetest" => { "noinst" => "1" }, + "test/json_test" => { + "noinst" => "1" + }, "test/keymgmt_internal_test" => { "noinst" => "1" }, "test/lhash_test" => { "noinst" => "1" }, + "test/list_test" => { + "noinst" => "1" + }, "test/localetest" => { "noinst" => "1" }, @@ -1328,9 +1544,21 @@ our %unified_info = ( "test/mdc2test" => { "noinst" => "1" }, + "test/membio_test" => { + "noinst" => "1" + }, "test/memleaktest" => { "noinst" => "1" }, + "test/ml_dsa_test" => { + "noinst" => "1" + }, + "test/ml_kem_evp_extra_test" => { + "noinst" => "1" + }, + "test/ml_kem_internal_test" => { + "noinst" => "1" + }, "test/modes_internal_test" => { "noinst" => "1" }, @@ -1349,6 +1577,9 @@ our %unified_info = ( "test/packettest" => { "noinst" => "1" }, + "test/pairwise_fail_test" => { + "noinst" => "1" + }, "test/param_build_test" => { "noinst" => "1" }, @@ -1373,6 +1604,9 @@ our %unified_info = ( "test/pemtest" => { "noinst" => "1" }, + "test/pkcs12_api_test" => { + "noinst" => "1" + }, "test/pkcs12_format_test" => { "noinst" => "1" }, @@ -1388,6 +1622,9 @@ our %unified_info = ( "test/poly1305_internal_test" => { "noinst" => "1" }, + "test/priority_queue_test" => { + "noinst" => "1" + }, "test/property_test" => { "noinst" => "1" }, @@ -1397,6 +1634,9 @@ our %unified_info = ( "test/provfetchtest" => { "noinst" => "1" }, + "test/provider_default_search_path_test" => { + "noinst" => "1" + }, "test/provider_fallback_test" => { "noinst" => "1" }, @@ -1415,6 +1655,72 @@ our %unified_info = ( "test/punycode_test" => { "noinst" => "1" }, + "test/quic_ackm_test" => { + "noinst" => "1" + }, + "test/quic_cc_test" => { + "noinst" => "1" + }, + "test/quic_cfq_test" => { + "noinst" => "1" + }, + "test/quic_client_test" => { + "noinst" => "1" + }, + "test/quic_fc_test" => { + "noinst" => "1" + }, + "test/quic_fifd_test" => { + "noinst" => "1" + }, + "test/quic_lcidm_test" => { + "noinst" => "1" + }, + "test/quic_multistream_test" => { + "noinst" => "1" + }, + "test/quic_newcid_test" => { + "noinst" => "1" + }, + "test/quic_qlog_test" => { + "noinst" => "1" + }, + "test/quic_radix_test" => { + "noinst" => "1" + }, + "test/quic_rcidm_test" => { + "noinst" => "1" + }, + "test/quic_record_test" => { + "noinst" => "1" + }, + "test/quic_srt_gen_test" => { + "noinst" => "1" + }, + "test/quic_srtm_test" => { + "noinst" => "1" + }, + "test/quic_stream_test" => { + "noinst" => "1" + }, + "test/quic_tserver_test" => { + "noinst" => "1" + }, + "test/quic_txp_test" => { + "noinst" => "1" + }, + "test/quic_txpim_test" => { + "noinst" => "1" + }, + "test/quic_wire_test" => { + "noinst" => "1" + }, + "test/quicapitest" => { + "noinst" => "1" + }, + "test/quicfaultstest" => { + "noinst" => "1" + }, "test/rand_status_test" => { "noinst" => "1" }, @@ -1430,12 +1736,15 @@ our %unified_info = ( "test/rc5test" => { "noinst" => "1" }, - "test/rdrand_sanitytest" => { + "test/rdcpu_sanitytest" => { "noinst" => "1" }, "test/recordlentest" => { "noinst" => "1" }, + "test/rpktest" => { + "noinst" => "1" + }, "test/rsa_complex" => { "noinst" => "1" }, @@ -1448,6 +1757,12 @@ our %unified_info = ( "test/rsa_test" => { "noinst" => "1" }, + "test/rsa_x931_test" => { + "noinst" => "1" + }, + "test/safe_math_test" => { + "noinst" => "1" + }, "test/sanitytest" => { "noinst" => "1" }, @@ -1463,6 +1778,9 @@ our %unified_info = ( "test/siphash_internal_test" => { "noinst" => "1" }, + "test/slh_dsa_test" => { + "noinst" => "1" + }, "test/sm2_internal_test" => { "noinst" => "1" }, @@ -1484,6 +1802,9 @@ our %unified_info = ( "test/ssl_ctx_test" => { "noinst" => "1" }, + "test/ssl_handshake_rtt_test" => { + "noinst" => "1" + }, "test/ssl_old_test" => { "noinst" => "1" }, @@ -1505,12 +1826,18 @@ our %unified_info = ( "test/stack_test" => { "noinst" => "1" }, + "test/strtoultest" => { + "noinst" => "1" + }, "test/sysdefaulttest" => { "noinst" => "1" }, "test/test_test" => { "noinst" => "1" }, + "test/threadpool_test" => { + "noinst" => "1" + }, "test/threadstest" => { "noinst" => "1" }, @@ -1520,12 +1847,18 @@ our %unified_info = ( "test/time_offset_test" => { "noinst" => "1" }, + "test/time_test" => { + "noinst" => "1" + }, "test/tls13ccstest" => { "noinst" => "1" }, "test/tls13encryptiontest" => { "noinst" => "1" }, + "test/tls13groupselection_test" => { + "noinst" => "1" + }, "test/trace_api_test" => { "noinst" => "1" }, @@ -1553,6 +1886,9 @@ our %unified_info = ( "test/wpackettest" => { "noinst" => "1" }, + "test/x509_acert_test" => { + "noinst" => "1" + }, "test/x509_check_cert_pkey_test" => { "noinst" => "1" }, @@ -1562,6 +1898,15 @@ our %unified_info = ( "test/x509_internal_test" => { "noinst" => "1" }, + "test/x509_load_cert_file_test" => { + "noinst" => "1" + }, + "test/x509_req_test" => { + "noinst" => "1" + }, + "test/x509_test" => { + "noinst" => "1" + }, "test/x509_time_test" => { "noinst" => "1" }, @@ -1664,6 +2009,9 @@ our %unified_info = ( "MD5_ASM", "RC4_ASM" ], + "test/endecode_test" => [ + "STATIC_LEGACY" + ], "test/evp_extra_test" => [ "STATIC_LEGACY" ], @@ -1676,14 +2024,21 @@ our %unified_info = ( }, "depends" => { "" => [ + "OpenSSLConfigVersion.cmake", + "crypto/params_idx.c", + "exporters/OpenSSLConfigVersion.cmake", + "exporters/openssl.pc", "include/crypto/bn_conf.h", "include/crypto/dso_conf.h", + "include/internal/param_names.h", "include/openssl/asn1.h", "include/openssl/asn1t.h", "include/openssl/bio.h", "include/openssl/cmp.h", "include/openssl/cms.h", + "include/openssl/comp.h", "include/openssl/conf.h", + "include/openssl/core_names.h", "include/openssl/crmf.h", "include/openssl/crypto.h", "include/openssl/ct.h", @@ -1700,10 +2055,22 @@ our %unified_info = ( "include/openssl/ssl.h", "include/openssl/ui.h", "include/openssl/x509.h", + "include/openssl/x509_acert.h", "include/openssl/x509_vfy.h", "include/openssl/x509v3.h", + "openssl.pc", "test/provider_internal_test.cnf" ], + "OpenSSLConfig.cmake" => [ + "builddata.pm" + ], + "OpenSSLConfigVersion.cmake" => [ + "OpenSSLConfig.cmake", + "builddata.pm" + ], + "apps/ca_internals_test-bin-ca.o" => [ + "apps/progs.h" + ], "apps/lib/cmp_client_test-bin-cmp_mock_srv.o" => [ "apps/progs.h" ], @@ -1849,6 +2216,9 @@ our %unified_info = ( "apps/openssl-bin-sess_id.o" => [ "apps/progs.h" ], + "apps/openssl-bin-skeyutl.o" => [ + "apps/progs.h" + ], "apps/openssl-bin-smime.o" => [ "apps/progs.h" ], @@ -1937,6 +2307,9 @@ our %unified_info = ( "crypto/libcrypto-lib-info.o" => [ "crypto/buildinf.h" ], + "crypto/params_idx.c" => [ + "util/perl|OpenSSL/paramnames.pm" + ], "crypto/rc4/rc4-586.S" => [ "crypto/perlasm/x86asm.pl" ], @@ -2102,6 +2475,9 @@ our %unified_info = ( "doc/html/man1/openssl-sess_id.html" => [ "doc/man1/openssl-sess_id.pod" ], + "doc/html/man1/openssl-skeyutl.html" => [ + "doc/man1/openssl-skeyutl.pod" + ], "doc/html/man1/openssl-smime.html" => [ "doc/man1/openssl-smime.pod" ], @@ -2243,6 +2619,9 @@ our %unified_info = ( "doc/html/man3/BIO_get_ex_new_index.html" => [ "doc/man3/BIO_get_ex_new_index.pod" ], + "doc/html/man3/BIO_get_rpoll_descriptor.html" => [ + "doc/man3/BIO_get_rpoll_descriptor.pod" + ], "doc/html/man3/BIO_meth_new.html" => [ "doc/man3/BIO_meth_new.pod" ], @@ -2279,6 +2658,9 @@ our %unified_info = ( "doc/html/man3/BIO_s_datagram.html" => [ "doc/man3/BIO_s_datagram.pod" ], + "doc/html/man3/BIO_s_dgram_pair.html" => [ + "doc/man3/BIO_s_dgram_pair.pod" + ], "doc/html/man3/BIO_s_fd.html" => [ "doc/man3/BIO_s_fd.pod" ], @@ -2294,6 +2676,9 @@ our %unified_info = ( "doc/html/man3/BIO_s_socket.html" => [ "doc/man3/BIO_s_socket.pod" ], + "doc/html/man3/BIO_sendmmsg.html" => [ + "doc/man3/BIO_sendmmsg.pod" + ], "doc/html/man3/BIO_set_callback.html" => [ "doc/man3/BIO_set_callback.pod" ], @@ -2366,6 +2751,9 @@ our %unified_info = ( "doc/html/man3/BUF_MEM_new.html" => [ "doc/man3/BUF_MEM_new.pod" ], + "doc/html/man3/CMAC_CTX.html" => [ + "doc/man3/CMAC_CTX.pod" + ], "doc/html/man3/CMS_EncryptedData_decrypt.html" => [ "doc/man3/CMS_EncryptedData_decrypt.pod" ], @@ -2432,6 +2820,9 @@ our %unified_info = ( "doc/html/man3/CMS_verify_receipt.html" => [ "doc/man3/CMS_verify_receipt.pod" ], + "doc/html/man3/COMP_CTX_new.html" => [ + "doc/man3/COMP_CTX_new.pod" + ], "doc/html/man3/CONF_modules_free.html" => [ "doc/man3/CONF_modules_free.pod" ], @@ -2531,6 +2922,12 @@ our %unified_info = ( "doc/html/man3/DTLS_set_timer_cb.html" => [ "doc/man3/DTLS_set_timer_cb.pod" ], + "doc/html/man3/DTLSv1_get_timeout.html" => [ + "doc/man3/DTLSv1_get_timeout.pod" + ], + "doc/html/man3/DTLSv1_handle_timeout.html" => [ + "doc/man3/DTLSv1_handle_timeout.pod" + ], "doc/html/man3/DTLSv1_listen.html" => [ "doc/man3/DTLSv1_listen.pod" ], @@ -2669,6 +3066,9 @@ our %unified_info = ( "doc/html/man3/EVP_PKEY_CTX_get0_pkey.html" => [ "doc/man3/EVP_PKEY_CTX_get0_pkey.pod" ], + "doc/html/man3/EVP_PKEY_CTX_get_algor.html" => [ + "doc/man3/EVP_PKEY_CTX_get_algor.pod" + ], "doc/html/man3/EVP_PKEY_CTX_new.html" => [ "doc/man3/EVP_PKEY_CTX_new.pod" ], @@ -2786,6 +3186,12 @@ our %unified_info = ( "doc/html/man3/EVP_SIGNATURE.html" => [ "doc/man3/EVP_SIGNATURE.pod" ], + "doc/html/man3/EVP_SKEY.html" => [ + "doc/man3/EVP_SKEY.pod" + ], + "doc/html/man3/EVP_SKEYMGMT.html" => [ + "doc/man3/EVP_SKEYMGMT.pod" + ], "doc/html/man3/EVP_SealInit.html" => [ "doc/man3/EVP_SealInit.pod" ], @@ -2873,6 +3279,9 @@ our %unified_info = ( "doc/html/man3/EVP_whirlpool.html" => [ "doc/man3/EVP_whirlpool.pod" ], + "doc/html/man3/GENERAL_NAME.html" => [ + "doc/man3/GENERAL_NAME.pod" + ], "doc/html/man3/HMAC.html" => [ "doc/man3/HMAC.pod" ], @@ -2945,9 +3354,15 @@ our %unified_info = ( "doc/html/man3/OPENSSL_load_builtin_modules.html" => [ "doc/man3/OPENSSL_load_builtin_modules.pod" ], + "doc/html/man3/OPENSSL_load_u16_le.html" => [ + "doc/man3/OPENSSL_load_u16_le.pod" + ], "doc/html/man3/OPENSSL_malloc.html" => [ "doc/man3/OPENSSL_malloc.pod" ], + "doc/html/man3/OPENSSL_riscvcap.html" => [ + "doc/man3/OPENSSL_riscvcap.pod" + ], "doc/html/man3/OPENSSL_s390xcap.html" => [ "doc/man3/OPENSSL_s390xcap.pod" ], @@ -2963,12 +3378,18 @@ our %unified_info = ( "doc/html/man3/OSSL_CALLBACK.html" => [ "doc/man3/OSSL_CALLBACK.pod" ], + "doc/html/man3/OSSL_CMP_ATAV_set0.html" => [ + "doc/man3/OSSL_CMP_ATAV_set0.pod" + ], "doc/html/man3/OSSL_CMP_CTX_new.html" => [ "doc/man3/OSSL_CMP_CTX_new.pod" ], "doc/html/man3/OSSL_CMP_HDR_get0_transactionID.html" => [ "doc/man3/OSSL_CMP_HDR_get0_transactionID.pod" ], + "doc/html/man3/OSSL_CMP_ITAV_new_caCerts.html" => [ + "doc/man3/OSSL_CMP_ITAV_new_caCerts.pod" + ], "doc/html/man3/OSSL_CMP_ITAV_set0.html" => [ "doc/man3/OSSL_CMP_ITAV_set0.pod" ], @@ -3038,9 +3459,18 @@ our %unified_info = ( "doc/html/man3/OSSL_ENCODER_to_bio.html" => [ "doc/man3/OSSL_ENCODER_to_bio.pod" ], + "doc/html/man3/OSSL_ERR_STATE_save.html" => [ + "doc/man3/OSSL_ERR_STATE_save.pod" + ], "doc/html/man3/OSSL_ESS_check_signing_certs.html" => [ "doc/man3/OSSL_ESS_check_signing_certs.pod" ], + "doc/html/man3/OSSL_GENERAL_NAMES_print.html" => [ + "doc/man3/OSSL_GENERAL_NAMES_print.pod" + ], + "doc/html/man3/OSSL_HPKE_CTX_new.html" => [ + "doc/man3/OSSL_HPKE_CTX_new.pod" + ], "doc/html/man3/OSSL_HTTP_REQ_CTX.html" => [ "doc/man3/OSSL_HTTP_REQ_CTX.pod" ], @@ -3050,12 +3480,24 @@ our %unified_info = ( "doc/html/man3/OSSL_HTTP_transfer.html" => [ "doc/man3/OSSL_HTTP_transfer.pod" ], + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX.html" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX.pod" + ], + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX_print.html" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX_print.pod" + ], + "doc/html/man3/OSSL_INDICATOR_set_callback.html" => [ + "doc/man3/OSSL_INDICATOR_set_callback.pod" + ], "doc/html/man3/OSSL_ITEM.html" => [ "doc/man3/OSSL_ITEM.pod" ], "doc/html/man3/OSSL_LIB_CTX.html" => [ "doc/man3/OSSL_LIB_CTX.pod" ], + "doc/html/man3/OSSL_LIB_CTX_set_conf_diagnostics.html" => [ + "doc/man3/OSSL_LIB_CTX_set_conf_diagnostics.pod" + ], "doc/html/man3/OSSL_PARAM.html" => [ "doc/man3/OSSL_PARAM.pod" ], @@ -3071,9 +3513,15 @@ our %unified_info = ( "doc/html/man3/OSSL_PARAM_int.html" => [ "doc/man3/OSSL_PARAM_int.pod" ], + "doc/html/man3/OSSL_PARAM_print_to_bio.html" => [ + "doc/man3/OSSL_PARAM_print_to_bio.pod" + ], "doc/html/man3/OSSL_PROVIDER.html" => [ "doc/man3/OSSL_PROVIDER.pod" ], + "doc/html/man3/OSSL_QUIC_client_method.html" => [ + "doc/man3/OSSL_QUIC_client_method.pod" + ], "doc/html/man3/OSSL_SELF_TEST_new.html" => [ "doc/man3/OSSL_SELF_TEST_new.pod" ], @@ -3098,6 +3546,9 @@ our %unified_info = ( "doc/html/man3/OSSL_STORE_open.html" => [ "doc/man3/OSSL_STORE_open.pod" ], + "doc/html/man3/OSSL_sleep.html" => [ + "doc/man3/OSSL_sleep.pod" + ], "doc/html/man3/OSSL_trace_enabled.html" => [ "doc/man3/OSSL_trace_enabled.pod" ], @@ -3113,6 +3564,9 @@ our %unified_info = ( "doc/html/man3/OpenSSL_version.html" => [ "doc/man3/OpenSSL_version.pod" ], + "doc/html/man3/PBMAC1_get1_pbkdf2_param.html" => [ + "doc/man3/PBMAC1_get1_pbkdf2_param.pod" + ], "doc/html/man3/PEM_X509_INFO_read_bio_ex.html" => [ "doc/man3/PEM_X509_INFO_read_bio_ex.pod" ], @@ -3149,6 +3603,9 @@ our %unified_info = ( "doc/html/man3/PKCS12_SAFEBAG_get1_cert.html" => [ "doc/man3/PKCS12_SAFEBAG_get1_cert.pod" ], + "doc/html/man3/PKCS12_SAFEBAG_set0_attrs.html" => [ + "doc/man3/PKCS12_SAFEBAG_set0_attrs.pod" + ], "doc/html/man3/PKCS12_add1_attr_by_NID.html" => [ "doc/man3/PKCS12_add1_attr_by_NID.pod" ], @@ -3422,6 +3879,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set0_CA_list.html" => [ "doc/man3/SSL_CTX_set0_CA_list.pod" ], + "doc/html/man3/SSL_CTX_set1_cert_comp_preference.html" => [ + "doc/man3/SSL_CTX_set1_cert_comp_preference.pod" + ], "doc/html/man3/SSL_CTX_set1_curves.html" => [ "doc/man3/SSL_CTX_set1_curves.pod" ], @@ -3461,6 +3921,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_default_passwd_cb.html" => [ "doc/man3/SSL_CTX_set_default_passwd_cb.pod" ], + "doc/html/man3/SSL_CTX_set_domain_flags.html" => [ + "doc/man3/SSL_CTX_set_domain_flags.pod" + ], "doc/html/man3/SSL_CTX_set_generate_session_id.html" => [ "doc/man3/SSL_CTX_set_generate_session_id.pod" ], @@ -3482,6 +3945,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_msg_callback.html" => [ "doc/man3/SSL_CTX_set_msg_callback.pod" ], + "doc/html/man3/SSL_CTX_set_new_pending_conn_cb.html" => [ + "doc/man3/SSL_CTX_set_new_pending_conn_cb.pod" + ], "doc/html/man3/SSL_CTX_set_num_tickets.html" => [ "doc/man3/SSL_CTX_set_num_tickets.pod" ], @@ -3596,6 +4062,9 @@ our %unified_info = ( "doc/html/man3/SSL_accept.html" => [ "doc/man3/SSL_accept.pod" ], + "doc/html/man3/SSL_accept_stream.html" => [ + "doc/man3/SSL_accept_stream.pod" + ], "doc/html/man3/SSL_alert_type_string.html" => [ "doc/man3/SSL_alert_type_string.pod" ], @@ -3623,9 +4092,21 @@ our %unified_info = ( "doc/html/man3/SSL_free.html" => [ "doc/man3/SSL_free.pod" ], + "doc/html/man3/SSL_get0_connection.html" => [ + "doc/man3/SSL_get0_connection.pod" + ], + "doc/html/man3/SSL_get0_group_name.html" => [ + "doc/man3/SSL_get0_group_name.pod" + ], + "doc/html/man3/SSL_get0_peer_rpk.html" => [ + "doc/man3/SSL_get0_peer_rpk.pod" + ], "doc/html/man3/SSL_get0_peer_scts.html" => [ "doc/man3/SSL_get0_peer_scts.pod" ], + "doc/html/man3/SSL_get1_builtin_sigalgs.html" => [ + "doc/man3/SSL_get1_builtin_sigalgs.pod" + ], "doc/html/man3/SSL_get_SSL_CTX.html" => [ "doc/man3/SSL_get_SSL_CTX.pod" ], @@ -3641,6 +4122,9 @@ our %unified_info = ( "doc/html/man3/SSL_get_client_random.html" => [ "doc/man3/SSL_get_client_random.pod" ], + "doc/html/man3/SSL_get_conn_close_info.html" => [ + "doc/man3/SSL_get_conn_close_info.pod" + ], "doc/html/man3/SSL_get_current_cipher.html" => [ "doc/man3/SSL_get_current_cipher.pod" ], @@ -3650,12 +4134,18 @@ our %unified_info = ( "doc/html/man3/SSL_get_error.html" => [ "doc/man3/SSL_get_error.pod" ], + "doc/html/man3/SSL_get_event_timeout.html" => [ + "doc/man3/SSL_get_event_timeout.pod" + ], "doc/html/man3/SSL_get_extms_support.html" => [ "doc/man3/SSL_get_extms_support.pod" ], "doc/html/man3/SSL_get_fd.html" => [ "doc/man3/SSL_get_fd.pod" ], + "doc/html/man3/SSL_get_handshake_rtt.html" => [ + "doc/man3/SSL_get_handshake_rtt.pod" + ], "doc/html/man3/SSL_get_peer_cert_chain.html" => [ "doc/man3/SSL_get_peer_cert_chain.pod" ], @@ -3674,12 +4164,24 @@ our %unified_info = ( "doc/html/man3/SSL_get_rbio.html" => [ "doc/man3/SSL_get_rbio.pod" ], + "doc/html/man3/SSL_get_rpoll_descriptor.html" => [ + "doc/man3/SSL_get_rpoll_descriptor.pod" + ], "doc/html/man3/SSL_get_session.html" => [ "doc/man3/SSL_get_session.pod" ], "doc/html/man3/SSL_get_shared_sigalgs.html" => [ "doc/man3/SSL_get_shared_sigalgs.pod" ], + "doc/html/man3/SSL_get_stream_id.html" => [ + "doc/man3/SSL_get_stream_id.pod" + ], + "doc/html/man3/SSL_get_stream_read_state.html" => [ + "doc/man3/SSL_get_stream_read_state.pod" + ], + "doc/html/man3/SSL_get_value_uint.html" => [ + "doc/man3/SSL_get_value_uint.pod" + ], "doc/html/man3/SSL_get_verify_result.html" => [ "doc/man3/SSL_get_verify_result.pod" ], @@ -3689,9 +4191,15 @@ our %unified_info = ( "doc/html/man3/SSL_group_to_name.html" => [ "doc/man3/SSL_group_to_name.pod" ], + "doc/html/man3/SSL_handle_events.html" => [ + "doc/man3/SSL_handle_events.pod" + ], "doc/html/man3/SSL_in_init.html" => [ "doc/man3/SSL_in_init.pod" ], + "doc/html/man3/SSL_inject_net_dgram.html" => [ + "doc/man3/SSL_inject_net_dgram.pod" + ], "doc/html/man3/SSL_key_update.html" => [ "doc/man3/SSL_key_update.pod" ], @@ -3704,9 +4212,21 @@ our %unified_info = ( "doc/html/man3/SSL_new.html" => [ "doc/man3/SSL_new.pod" ], + "doc/html/man3/SSL_new_domain.html" => [ + "doc/man3/SSL_new_domain.pod" + ], + "doc/html/man3/SSL_new_listener.html" => [ + "doc/man3/SSL_new_listener.pod" + ], + "doc/html/man3/SSL_new_stream.html" => [ + "doc/man3/SSL_new_stream.pod" + ], "doc/html/man3/SSL_pending.html" => [ "doc/man3/SSL_pending.pod" ], + "doc/html/man3/SSL_poll.html" => [ + "doc/man3/SSL_poll.pod" + ], "doc/html/man3/SSL_read.html" => [ "doc/man3/SSL_read.pod" ], @@ -3722,24 +4242,45 @@ our %unified_info = ( "doc/html/man3/SSL_set1_host.html" => [ "doc/man3/SSL_set1_host.pod" ], + "doc/html/man3/SSL_set1_initial_peer_addr.html" => [ + "doc/man3/SSL_set1_initial_peer_addr.pod" + ], + "doc/html/man3/SSL_set1_server_cert_type.html" => [ + "doc/man3/SSL_set1_server_cert_type.pod" + ], "doc/html/man3/SSL_set_async_callback.html" => [ "doc/man3/SSL_set_async_callback.pod" ], "doc/html/man3/SSL_set_bio.html" => [ "doc/man3/SSL_set_bio.pod" ], + "doc/html/man3/SSL_set_blocking_mode.html" => [ + "doc/man3/SSL_set_blocking_mode.pod" + ], "doc/html/man3/SSL_set_connect_state.html" => [ "doc/man3/SSL_set_connect_state.pod" ], + "doc/html/man3/SSL_set_default_stream_mode.html" => [ + "doc/man3/SSL_set_default_stream_mode.pod" + ], "doc/html/man3/SSL_set_fd.html" => [ "doc/man3/SSL_set_fd.pod" ], + "doc/html/man3/SSL_set_incoming_stream_policy.html" => [ + "doc/man3/SSL_set_incoming_stream_policy.pod" + ], + "doc/html/man3/SSL_set_quic_tls_cbs.html" => [ + "doc/man3/SSL_set_quic_tls_cbs.pod" + ], "doc/html/man3/SSL_set_retry_verify.html" => [ "doc/man3/SSL_set_retry_verify.pod" ], "doc/html/man3/SSL_set_session.html" => [ "doc/man3/SSL_set_session.pod" ], + "doc/html/man3/SSL_set_session_secret_cb.html" => [ + "doc/man3/SSL_set_session_secret_cb.pod" + ], "doc/html/man3/SSL_set_shutdown.html" => [ "doc/man3/SSL_set_shutdown.pod" ], @@ -3752,6 +4293,12 @@ our %unified_info = ( "doc/html/man3/SSL_state_string.html" => [ "doc/man3/SSL_state_string.pod" ], + "doc/html/man3/SSL_stream_conclude.html" => [ + "doc/man3/SSL_stream_conclude.pod" + ], + "doc/html/man3/SSL_stream_reset.html" => [ + "doc/man3/SSL_stream_reset.pod" + ], "doc/html/man3/SSL_want.html" => [ "doc/man3/SSL_want.pod" ], @@ -3761,8 +4308,8 @@ our %unified_info = ( "doc/html/man3/TS_RESP_CTX_new.html" => [ "doc/man3/TS_RESP_CTX_new.pod" ], - "doc/html/man3/TS_VERIFY_CTX_set_certs.html" => [ - "doc/man3/TS_VERIFY_CTX_set_certs.pod" + "doc/html/man3/TS_VERIFY_CTX.html" => [ + "doc/man3/TS_VERIFY_CTX.pod" ], "doc/html/man3/UI_STRING.html" => [ "doc/man3/UI_STRING.pod" @@ -3782,6 +4329,21 @@ our %unified_info = ( "doc/html/man3/X509V3_set_ctx.html" => [ "doc/man3/X509V3_set_ctx.pod" ], + "doc/html/man3/X509_ACERT_add1_attr.html" => [ + "doc/man3/X509_ACERT_add1_attr.pod" + ], + "doc/html/man3/X509_ACERT_add_attr_nconf.html" => [ + "doc/man3/X509_ACERT_add_attr_nconf.pod" + ], + "doc/html/man3/X509_ACERT_get0_holder_baseCertId.html" => [ + "doc/man3/X509_ACERT_get0_holder_baseCertId.pod" + ], + "doc/html/man3/X509_ACERT_get_attr.html" => [ + "doc/man3/X509_ACERT_get_attr.pod" + ], + "doc/html/man3/X509_ACERT_print_ex.html" => [ + "doc/man3/X509_ACERT_print_ex.pod" + ], "doc/html/man3/X509_ALGOR_dup.html" => [ "doc/man3/X509_ALGOR_dup.pod" ], @@ -3830,6 +4392,9 @@ our %unified_info = ( "doc/html/man3/X509_SIG_get0.html" => [ "doc/man3/X509_SIG_get0.pod" ], + "doc/html/man3/X509_STORE_CTX_get_by_subject.html" => [ + "doc/man3/X509_STORE_CTX_get_by_subject.pod" + ], "doc/html/man3/X509_STORE_CTX_get_error.html" => [ "doc/man3/X509_STORE_CTX_get_error.pod" ], @@ -3896,6 +4461,9 @@ our %unified_info = ( "doc/html/man3/X509_get0_uids.html" => [ "doc/man3/X509_get0_uids.pod" ], + "doc/html/man3/X509_get_default_cert_file.html" => [ + "doc/man3/X509_get_default_cert_file.pod" + ], "doc/html/man3/X509_get_extension_flags.html" => [ "doc/man3/X509_get_extension_flags.pod" ], @@ -4019,9 +4587,15 @@ our %unified_info = ( "doc/html/man7/EVP_CIPHER-SM4.html" => [ "doc/man7/EVP_CIPHER-SM4.pod" ], + "doc/html/man7/EVP_KDF-ARGON2.html" => [ + "doc/man7/EVP_KDF-ARGON2.pod" + ], "doc/html/man7/EVP_KDF-HKDF.html" => [ "doc/man7/EVP_KDF-HKDF.pod" ], + "doc/html/man7/EVP_KDF-HMAC-DRBG.html" => [ + "doc/man7/EVP_KDF-HMAC-DRBG.pod" + ], "doc/html/man7/EVP_KDF-KB.html" => [ "doc/man7/EVP_KDF-KB.pod" ], @@ -4037,6 +4611,9 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-PKCS12KDF.html" => [ "doc/man7/EVP_KDF-PKCS12KDF.pod" ], + "doc/html/man7/EVP_KDF-PVKKDF.html" => [ + "doc/man7/EVP_KDF-PVKKDF.pod" + ], "doc/html/man7/EVP_KDF-SCRYPT.html" => [ "doc/man7/EVP_KDF-SCRYPT.pod" ], @@ -4061,9 +4638,18 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-X963.html" => [ "doc/man7/EVP_KDF-X963.pod" ], + "doc/html/man7/EVP_KEM-EC.html" => [ + "doc/man7/EVP_KEM-EC.pod" + ], + "doc/html/man7/EVP_KEM-ML-KEM.html" => [ + "doc/man7/EVP_KEM-ML-KEM.pod" + ], "doc/html/man7/EVP_KEM-RSA.html" => [ "doc/man7/EVP_KEM-RSA.pod" ], + "doc/html/man7/EVP_KEM-X25519.html" => [ + "doc/man7/EVP_KEM-X25519.pod" + ], "doc/html/man7/EVP_KEYEXCH-DH.html" => [ "doc/man7/EVP_KEYEXCH-DH.pod" ], @@ -4097,6 +4683,9 @@ our %unified_info = ( "doc/html/man7/EVP_MD-BLAKE2.html" => [ "doc/man7/EVP_MD-BLAKE2.pod" ], + "doc/html/man7/EVP_MD-KECCAK.html" => [ + "doc/man7/EVP_MD-KECCAK.pod" + ], "doc/html/man7/EVP_MD-MD2.html" => [ "doc/man7/EVP_MD-MD2.pod" ], @@ -4154,15 +4743,27 @@ our %unified_info = ( "doc/html/man7/EVP_PKEY-HMAC.html" => [ "doc/man7/EVP_PKEY-HMAC.pod" ], + "doc/html/man7/EVP_PKEY-ML-DSA.html" => [ + "doc/man7/EVP_PKEY-ML-DSA.pod" + ], + "doc/html/man7/EVP_PKEY-ML-KEM.html" => [ + "doc/man7/EVP_PKEY-ML-KEM.pod" + ], "doc/html/man7/EVP_PKEY-RSA.html" => [ "doc/man7/EVP_PKEY-RSA.pod" ], + "doc/html/man7/EVP_PKEY-SLH-DSA.html" => [ + "doc/man7/EVP_PKEY-SLH-DSA.pod" + ], "doc/html/man7/EVP_PKEY-SM2.html" => [ "doc/man7/EVP_PKEY-SM2.pod" ], "doc/html/man7/EVP_PKEY-X25519.html" => [ "doc/man7/EVP_PKEY-X25519.pod" ], + "doc/html/man7/EVP_RAND-CRNG-TEST.html" => [ + "doc/man7/EVP_RAND-CRNG-TEST.pod" + ], "doc/html/man7/EVP_RAND-CTR-DRBG.html" => [ "doc/man7/EVP_RAND-CTR-DRBG.pod" ], @@ -4172,6 +4773,9 @@ our %unified_info = ( "doc/html/man7/EVP_RAND-HMAC-DRBG.html" => [ "doc/man7/EVP_RAND-HMAC-DRBG.pod" ], + "doc/html/man7/EVP_RAND-JITTER.html" => [ + "doc/man7/EVP_RAND-JITTER.pod" + ], "doc/html/man7/EVP_RAND-SEED-SRC.html" => [ "doc/man7/EVP_RAND-SEED-SRC.pod" ], @@ -4193,9 +4797,15 @@ our %unified_info = ( "doc/html/man7/EVP_SIGNATURE-HMAC.html" => [ "doc/man7/EVP_SIGNATURE-HMAC.pod" ], + "doc/html/man7/EVP_SIGNATURE-ML-DSA.html" => [ + "doc/man7/EVP_SIGNATURE-ML-DSA.pod" + ], "doc/html/man7/EVP_SIGNATURE-RSA.html" => [ "doc/man7/EVP_SIGNATURE-RSA.pod" ], + "doc/html/man7/EVP_SIGNATURE-SLH-DSA.html" => [ + "doc/man7/EVP_SIGNATURE-SLH-DSA.pod" + ], "doc/html/man7/OSSL_PROVIDER-FIPS.html" => [ "doc/man7/OSSL_PROVIDER-FIPS.pod" ], @@ -4211,6 +4821,9 @@ our %unified_info = ( "doc/html/man7/OSSL_PROVIDER-null.html" => [ "doc/man7/OSSL_PROVIDER-null.pod" ], + "doc/html/man7/OSSL_STORE-winstore.html" => [ + "doc/man7/OSSL_STORE-winstore.pod" + ], "doc/html/man7/RAND.html" => [ "doc/man7/RAND.pod" ], @@ -4223,9 +4836,6 @@ our %unified_info = ( "doc/html/man7/bio.html" => [ "doc/man7/bio.pod" ], - "doc/html/man7/crypto.html" => [ - "doc/man7/crypto.pod" - ], "doc/html/man7/ct.html" => [ "doc/man7/ct.pod" ], @@ -4256,9 +4866,6 @@ our %unified_info = ( "doc/html/man7/life_cycle-rand.html" => [ "doc/man7/life_cycle-rand.pod" ], - "doc/html/man7/migration_guide.html" => [ - "doc/man7/migration_guide.pod" - ], "doc/html/man7/openssl-core.h.html" => [ "doc/man7/openssl-core.h.pod" ], @@ -4274,12 +4881,66 @@ our %unified_info = ( "doc/html/man7/openssl-glossary.html" => [ "doc/man7/openssl-glossary.pod" ], + "doc/html/man7/openssl-qlog.html" => [ + "doc/man7/openssl-qlog.pod" + ], + "doc/html/man7/openssl-quic-concurrency.html" => [ + "doc/man7/openssl-quic-concurrency.pod" + ], + "doc/html/man7/openssl-quic.html" => [ + "doc/man7/openssl-quic.pod" + ], "doc/html/man7/openssl-threads.html" => [ "doc/man7/openssl-threads.pod" ], "doc/html/man7/openssl_user_macros.html" => [ "doc/man7/openssl_user_macros.pod" ], + "doc/html/man7/ossl-guide-introduction.html" => [ + "doc/man7/ossl-guide-introduction.pod" + ], + "doc/html/man7/ossl-guide-libcrypto-introduction.html" => [ + "doc/man7/ossl-guide-libcrypto-introduction.pod" + ], + "doc/html/man7/ossl-guide-libraries-introduction.html" => [ + "doc/man7/ossl-guide-libraries-introduction.pod" + ], + "doc/html/man7/ossl-guide-libssl-introduction.html" => [ + "doc/man7/ossl-guide-libssl-introduction.pod" + ], + "doc/html/man7/ossl-guide-migration.html" => [ + "doc/man7/ossl-guide-migration.pod" + ], + "doc/html/man7/ossl-guide-quic-client-block.html" => [ + "doc/man7/ossl-guide-quic-client-block.pod" + ], + "doc/html/man7/ossl-guide-quic-client-non-block.html" => [ + "doc/man7/ossl-guide-quic-client-non-block.pod" + ], + "doc/html/man7/ossl-guide-quic-introduction.html" => [ + "doc/man7/ossl-guide-quic-introduction.pod" + ], + "doc/html/man7/ossl-guide-quic-multi-stream.html" => [ + "doc/man7/ossl-guide-quic-multi-stream.pod" + ], + "doc/html/man7/ossl-guide-quic-server-block.html" => [ + "doc/man7/ossl-guide-quic-server-block.pod" + ], + "doc/html/man7/ossl-guide-quic-server-non-block.html" => [ + "doc/man7/ossl-guide-quic-server-non-block.pod" + ], + "doc/html/man7/ossl-guide-tls-client-block.html" => [ + "doc/man7/ossl-guide-tls-client-block.pod" + ], + "doc/html/man7/ossl-guide-tls-client-non-block.html" => [ + "doc/man7/ossl-guide-tls-client-non-block.pod" + ], + "doc/html/man7/ossl-guide-tls-introduction.html" => [ + "doc/man7/ossl-guide-tls-introduction.pod" + ], + "doc/html/man7/ossl-guide-tls-server-block.html" => [ + "doc/man7/ossl-guide-tls-server-block.pod" + ], "doc/html/man7/ossl_store-file.html" => [ "doc/man7/ossl_store-file.pod" ], @@ -4334,6 +4995,9 @@ our %unified_info = ( "doc/html/man7/provider-signature.html" => [ "doc/man7/provider-signature.pod" ], + "doc/html/man7/provider-skeymgmt.html" => [ + "doc/man7/provider-skeymgmt.pod" + ], "doc/html/man7/provider-storemgmt.html" => [ "doc/man7/provider-storemgmt.pod" ], @@ -4343,9 +5007,6 @@ our %unified_info = ( "doc/html/man7/proxy-certificates.html" => [ "doc/man7/proxy-certificates.pod" ], - "doc/html/man7/ssl.html" => [ - "doc/man7/ssl.pod" - ], "doc/html/man7/x509.html" => [ "doc/man7/x509.pod" ], @@ -4493,6 +5154,9 @@ our %unified_info = ( "doc/man/man1/openssl-sess_id.1" => [ "doc/man1/openssl-sess_id.pod" ], + "doc/man/man1/openssl-skeyutl.1" => [ + "doc/man1/openssl-skeyutl.pod" + ], "doc/man/man1/openssl-smime.1" => [ "doc/man1/openssl-smime.pod" ], @@ -4634,6 +5298,9 @@ our %unified_info = ( "doc/man/man3/BIO_get_ex_new_index.3" => [ "doc/man3/BIO_get_ex_new_index.pod" ], + "doc/man/man3/BIO_get_rpoll_descriptor.3" => [ + "doc/man3/BIO_get_rpoll_descriptor.pod" + ], "doc/man/man3/BIO_meth_new.3" => [ "doc/man3/BIO_meth_new.pod" ], @@ -4670,6 +5337,9 @@ our %unified_info = ( "doc/man/man3/BIO_s_datagram.3" => [ "doc/man3/BIO_s_datagram.pod" ], + "doc/man/man3/BIO_s_dgram_pair.3" => [ + "doc/man3/BIO_s_dgram_pair.pod" + ], "doc/man/man3/BIO_s_fd.3" => [ "doc/man3/BIO_s_fd.pod" ], @@ -4685,6 +5355,9 @@ our %unified_info = ( "doc/man/man3/BIO_s_socket.3" => [ "doc/man3/BIO_s_socket.pod" ], + "doc/man/man3/BIO_sendmmsg.3" => [ + "doc/man3/BIO_sendmmsg.pod" + ], "doc/man/man3/BIO_set_callback.3" => [ "doc/man3/BIO_set_callback.pod" ], @@ -4757,6 +5430,9 @@ our %unified_info = ( "doc/man/man3/BUF_MEM_new.3" => [ "doc/man3/BUF_MEM_new.pod" ], + "doc/man/man3/CMAC_CTX.3" => [ + "doc/man3/CMAC_CTX.pod" + ], "doc/man/man3/CMS_EncryptedData_decrypt.3" => [ "doc/man3/CMS_EncryptedData_decrypt.pod" ], @@ -4823,6 +5499,9 @@ our %unified_info = ( "doc/man/man3/CMS_verify_receipt.3" => [ "doc/man3/CMS_verify_receipt.pod" ], + "doc/man/man3/COMP_CTX_new.3" => [ + "doc/man3/COMP_CTX_new.pod" + ], "doc/man/man3/CONF_modules_free.3" => [ "doc/man3/CONF_modules_free.pod" ], @@ -4922,6 +5601,12 @@ our %unified_info = ( "doc/man/man3/DTLS_set_timer_cb.3" => [ "doc/man3/DTLS_set_timer_cb.pod" ], + "doc/man/man3/DTLSv1_get_timeout.3" => [ + "doc/man3/DTLSv1_get_timeout.pod" + ], + "doc/man/man3/DTLSv1_handle_timeout.3" => [ + "doc/man3/DTLSv1_handle_timeout.pod" + ], "doc/man/man3/DTLSv1_listen.3" => [ "doc/man3/DTLSv1_listen.pod" ], @@ -5060,6 +5745,9 @@ our %unified_info = ( "doc/man/man3/EVP_PKEY_CTX_get0_pkey.3" => [ "doc/man3/EVP_PKEY_CTX_get0_pkey.pod" ], + "doc/man/man3/EVP_PKEY_CTX_get_algor.3" => [ + "doc/man3/EVP_PKEY_CTX_get_algor.pod" + ], "doc/man/man3/EVP_PKEY_CTX_new.3" => [ "doc/man3/EVP_PKEY_CTX_new.pod" ], @@ -5177,6 +5865,12 @@ our %unified_info = ( "doc/man/man3/EVP_SIGNATURE.3" => [ "doc/man3/EVP_SIGNATURE.pod" ], + "doc/man/man3/EVP_SKEY.3" => [ + "doc/man3/EVP_SKEY.pod" + ], + "doc/man/man3/EVP_SKEYMGMT.3" => [ + "doc/man3/EVP_SKEYMGMT.pod" + ], "doc/man/man3/EVP_SealInit.3" => [ "doc/man3/EVP_SealInit.pod" ], @@ -5264,6 +5958,9 @@ our %unified_info = ( "doc/man/man3/EVP_whirlpool.3" => [ "doc/man3/EVP_whirlpool.pod" ], + "doc/man/man3/GENERAL_NAME.3" => [ + "doc/man3/GENERAL_NAME.pod" + ], "doc/man/man3/HMAC.3" => [ "doc/man3/HMAC.pod" ], @@ -5336,9 +6033,15 @@ our %unified_info = ( "doc/man/man3/OPENSSL_load_builtin_modules.3" => [ "doc/man3/OPENSSL_load_builtin_modules.pod" ], + "doc/man/man3/OPENSSL_load_u16_le.3" => [ + "doc/man3/OPENSSL_load_u16_le.pod" + ], "doc/man/man3/OPENSSL_malloc.3" => [ "doc/man3/OPENSSL_malloc.pod" ], + "doc/man/man3/OPENSSL_riscvcap.3" => [ + "doc/man3/OPENSSL_riscvcap.pod" + ], "doc/man/man3/OPENSSL_s390xcap.3" => [ "doc/man3/OPENSSL_s390xcap.pod" ], @@ -5354,12 +6057,18 @@ our %unified_info = ( "doc/man/man3/OSSL_CALLBACK.3" => [ "doc/man3/OSSL_CALLBACK.pod" ], + "doc/man/man3/OSSL_CMP_ATAV_set0.3" => [ + "doc/man3/OSSL_CMP_ATAV_set0.pod" + ], "doc/man/man3/OSSL_CMP_CTX_new.3" => [ "doc/man3/OSSL_CMP_CTX_new.pod" ], "doc/man/man3/OSSL_CMP_HDR_get0_transactionID.3" => [ "doc/man3/OSSL_CMP_HDR_get0_transactionID.pod" ], + "doc/man/man3/OSSL_CMP_ITAV_new_caCerts.3" => [ + "doc/man3/OSSL_CMP_ITAV_new_caCerts.pod" + ], "doc/man/man3/OSSL_CMP_ITAV_set0.3" => [ "doc/man3/OSSL_CMP_ITAV_set0.pod" ], @@ -5429,9 +6138,18 @@ our %unified_info = ( "doc/man/man3/OSSL_ENCODER_to_bio.3" => [ "doc/man3/OSSL_ENCODER_to_bio.pod" ], + "doc/man/man3/OSSL_ERR_STATE_save.3" => [ + "doc/man3/OSSL_ERR_STATE_save.pod" + ], "doc/man/man3/OSSL_ESS_check_signing_certs.3" => [ "doc/man3/OSSL_ESS_check_signing_certs.pod" ], + "doc/man/man3/OSSL_GENERAL_NAMES_print.3" => [ + "doc/man3/OSSL_GENERAL_NAMES_print.pod" + ], + "doc/man/man3/OSSL_HPKE_CTX_new.3" => [ + "doc/man3/OSSL_HPKE_CTX_new.pod" + ], "doc/man/man3/OSSL_HTTP_REQ_CTX.3" => [ "doc/man3/OSSL_HTTP_REQ_CTX.pod" ], @@ -5441,12 +6159,24 @@ our %unified_info = ( "doc/man/man3/OSSL_HTTP_transfer.3" => [ "doc/man3/OSSL_HTTP_transfer.pod" ], + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX.3" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX.pod" + ], + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX_print.3" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX_print.pod" + ], + "doc/man/man3/OSSL_INDICATOR_set_callback.3" => [ + "doc/man3/OSSL_INDICATOR_set_callback.pod" + ], "doc/man/man3/OSSL_ITEM.3" => [ "doc/man3/OSSL_ITEM.pod" ], "doc/man/man3/OSSL_LIB_CTX.3" => [ "doc/man3/OSSL_LIB_CTX.pod" ], + "doc/man/man3/OSSL_LIB_CTX_set_conf_diagnostics.3" => [ + "doc/man3/OSSL_LIB_CTX_set_conf_diagnostics.pod" + ], "doc/man/man3/OSSL_PARAM.3" => [ "doc/man3/OSSL_PARAM.pod" ], @@ -5462,9 +6192,15 @@ our %unified_info = ( "doc/man/man3/OSSL_PARAM_int.3" => [ "doc/man3/OSSL_PARAM_int.pod" ], + "doc/man/man3/OSSL_PARAM_print_to_bio.3" => [ + "doc/man3/OSSL_PARAM_print_to_bio.pod" + ], "doc/man/man3/OSSL_PROVIDER.3" => [ "doc/man3/OSSL_PROVIDER.pod" ], + "doc/man/man3/OSSL_QUIC_client_method.3" => [ + "doc/man3/OSSL_QUIC_client_method.pod" + ], "doc/man/man3/OSSL_SELF_TEST_new.3" => [ "doc/man3/OSSL_SELF_TEST_new.pod" ], @@ -5489,6 +6225,9 @@ our %unified_info = ( "doc/man/man3/OSSL_STORE_open.3" => [ "doc/man3/OSSL_STORE_open.pod" ], + "doc/man/man3/OSSL_sleep.3" => [ + "doc/man3/OSSL_sleep.pod" + ], "doc/man/man3/OSSL_trace_enabled.3" => [ "doc/man3/OSSL_trace_enabled.pod" ], @@ -5504,6 +6243,9 @@ our %unified_info = ( "doc/man/man3/OpenSSL_version.3" => [ "doc/man3/OpenSSL_version.pod" ], + "doc/man/man3/PBMAC1_get1_pbkdf2_param.3" => [ + "doc/man3/PBMAC1_get1_pbkdf2_param.pod" + ], "doc/man/man3/PEM_X509_INFO_read_bio_ex.3" => [ "doc/man3/PEM_X509_INFO_read_bio_ex.pod" ], @@ -5540,6 +6282,9 @@ our %unified_info = ( "doc/man/man3/PKCS12_SAFEBAG_get1_cert.3" => [ "doc/man3/PKCS12_SAFEBAG_get1_cert.pod" ], + "doc/man/man3/PKCS12_SAFEBAG_set0_attrs.3" => [ + "doc/man3/PKCS12_SAFEBAG_set0_attrs.pod" + ], "doc/man/man3/PKCS12_add1_attr_by_NID.3" => [ "doc/man3/PKCS12_add1_attr_by_NID.pod" ], @@ -5813,6 +6558,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set0_CA_list.3" => [ "doc/man3/SSL_CTX_set0_CA_list.pod" ], + "doc/man/man3/SSL_CTX_set1_cert_comp_preference.3" => [ + "doc/man3/SSL_CTX_set1_cert_comp_preference.pod" + ], "doc/man/man3/SSL_CTX_set1_curves.3" => [ "doc/man3/SSL_CTX_set1_curves.pod" ], @@ -5852,6 +6600,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_default_passwd_cb.3" => [ "doc/man3/SSL_CTX_set_default_passwd_cb.pod" ], + "doc/man/man3/SSL_CTX_set_domain_flags.3" => [ + "doc/man3/SSL_CTX_set_domain_flags.pod" + ], "doc/man/man3/SSL_CTX_set_generate_session_id.3" => [ "doc/man3/SSL_CTX_set_generate_session_id.pod" ], @@ -5873,6 +6624,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_msg_callback.3" => [ "doc/man3/SSL_CTX_set_msg_callback.pod" ], + "doc/man/man3/SSL_CTX_set_new_pending_conn_cb.3" => [ + "doc/man3/SSL_CTX_set_new_pending_conn_cb.pod" + ], "doc/man/man3/SSL_CTX_set_num_tickets.3" => [ "doc/man3/SSL_CTX_set_num_tickets.pod" ], @@ -5987,6 +6741,9 @@ our %unified_info = ( "doc/man/man3/SSL_accept.3" => [ "doc/man3/SSL_accept.pod" ], + "doc/man/man3/SSL_accept_stream.3" => [ + "doc/man3/SSL_accept_stream.pod" + ], "doc/man/man3/SSL_alert_type_string.3" => [ "doc/man3/SSL_alert_type_string.pod" ], @@ -6014,9 +6771,21 @@ our %unified_info = ( "doc/man/man3/SSL_free.3" => [ "doc/man3/SSL_free.pod" ], + "doc/man/man3/SSL_get0_connection.3" => [ + "doc/man3/SSL_get0_connection.pod" + ], + "doc/man/man3/SSL_get0_group_name.3" => [ + "doc/man3/SSL_get0_group_name.pod" + ], + "doc/man/man3/SSL_get0_peer_rpk.3" => [ + "doc/man3/SSL_get0_peer_rpk.pod" + ], "doc/man/man3/SSL_get0_peer_scts.3" => [ "doc/man3/SSL_get0_peer_scts.pod" ], + "doc/man/man3/SSL_get1_builtin_sigalgs.3" => [ + "doc/man3/SSL_get1_builtin_sigalgs.pod" + ], "doc/man/man3/SSL_get_SSL_CTX.3" => [ "doc/man3/SSL_get_SSL_CTX.pod" ], @@ -6032,6 +6801,9 @@ our %unified_info = ( "doc/man/man3/SSL_get_client_random.3" => [ "doc/man3/SSL_get_client_random.pod" ], + "doc/man/man3/SSL_get_conn_close_info.3" => [ + "doc/man3/SSL_get_conn_close_info.pod" + ], "doc/man/man3/SSL_get_current_cipher.3" => [ "doc/man3/SSL_get_current_cipher.pod" ], @@ -6041,12 +6813,18 @@ our %unified_info = ( "doc/man/man3/SSL_get_error.3" => [ "doc/man3/SSL_get_error.pod" ], + "doc/man/man3/SSL_get_event_timeout.3" => [ + "doc/man3/SSL_get_event_timeout.pod" + ], "doc/man/man3/SSL_get_extms_support.3" => [ "doc/man3/SSL_get_extms_support.pod" ], "doc/man/man3/SSL_get_fd.3" => [ "doc/man3/SSL_get_fd.pod" ], + "doc/man/man3/SSL_get_handshake_rtt.3" => [ + "doc/man3/SSL_get_handshake_rtt.pod" + ], "doc/man/man3/SSL_get_peer_cert_chain.3" => [ "doc/man3/SSL_get_peer_cert_chain.pod" ], @@ -6065,12 +6843,24 @@ our %unified_info = ( "doc/man/man3/SSL_get_rbio.3" => [ "doc/man3/SSL_get_rbio.pod" ], + "doc/man/man3/SSL_get_rpoll_descriptor.3" => [ + "doc/man3/SSL_get_rpoll_descriptor.pod" + ], "doc/man/man3/SSL_get_session.3" => [ "doc/man3/SSL_get_session.pod" ], "doc/man/man3/SSL_get_shared_sigalgs.3" => [ "doc/man3/SSL_get_shared_sigalgs.pod" ], + "doc/man/man3/SSL_get_stream_id.3" => [ + "doc/man3/SSL_get_stream_id.pod" + ], + "doc/man/man3/SSL_get_stream_read_state.3" => [ + "doc/man3/SSL_get_stream_read_state.pod" + ], + "doc/man/man3/SSL_get_value_uint.3" => [ + "doc/man3/SSL_get_value_uint.pod" + ], "doc/man/man3/SSL_get_verify_result.3" => [ "doc/man3/SSL_get_verify_result.pod" ], @@ -6080,9 +6870,15 @@ our %unified_info = ( "doc/man/man3/SSL_group_to_name.3" => [ "doc/man3/SSL_group_to_name.pod" ], + "doc/man/man3/SSL_handle_events.3" => [ + "doc/man3/SSL_handle_events.pod" + ], "doc/man/man3/SSL_in_init.3" => [ "doc/man3/SSL_in_init.pod" ], + "doc/man/man3/SSL_inject_net_dgram.3" => [ + "doc/man3/SSL_inject_net_dgram.pod" + ], "doc/man/man3/SSL_key_update.3" => [ "doc/man3/SSL_key_update.pod" ], @@ -6095,9 +6891,21 @@ our %unified_info = ( "doc/man/man3/SSL_new.3" => [ "doc/man3/SSL_new.pod" ], + "doc/man/man3/SSL_new_domain.3" => [ + "doc/man3/SSL_new_domain.pod" + ], + "doc/man/man3/SSL_new_listener.3" => [ + "doc/man3/SSL_new_listener.pod" + ], + "doc/man/man3/SSL_new_stream.3" => [ + "doc/man3/SSL_new_stream.pod" + ], "doc/man/man3/SSL_pending.3" => [ "doc/man3/SSL_pending.pod" ], + "doc/man/man3/SSL_poll.3" => [ + "doc/man3/SSL_poll.pod" + ], "doc/man/man3/SSL_read.3" => [ "doc/man3/SSL_read.pod" ], @@ -6113,24 +6921,45 @@ our %unified_info = ( "doc/man/man3/SSL_set1_host.3" => [ "doc/man3/SSL_set1_host.pod" ], + "doc/man/man3/SSL_set1_initial_peer_addr.3" => [ + "doc/man3/SSL_set1_initial_peer_addr.pod" + ], + "doc/man/man3/SSL_set1_server_cert_type.3" => [ + "doc/man3/SSL_set1_server_cert_type.pod" + ], "doc/man/man3/SSL_set_async_callback.3" => [ "doc/man3/SSL_set_async_callback.pod" ], "doc/man/man3/SSL_set_bio.3" => [ "doc/man3/SSL_set_bio.pod" ], + "doc/man/man3/SSL_set_blocking_mode.3" => [ + "doc/man3/SSL_set_blocking_mode.pod" + ], "doc/man/man3/SSL_set_connect_state.3" => [ "doc/man3/SSL_set_connect_state.pod" ], + "doc/man/man3/SSL_set_default_stream_mode.3" => [ + "doc/man3/SSL_set_default_stream_mode.pod" + ], "doc/man/man3/SSL_set_fd.3" => [ "doc/man3/SSL_set_fd.pod" ], + "doc/man/man3/SSL_set_incoming_stream_policy.3" => [ + "doc/man3/SSL_set_incoming_stream_policy.pod" + ], + "doc/man/man3/SSL_set_quic_tls_cbs.3" => [ + "doc/man3/SSL_set_quic_tls_cbs.pod" + ], "doc/man/man3/SSL_set_retry_verify.3" => [ "doc/man3/SSL_set_retry_verify.pod" ], "doc/man/man3/SSL_set_session.3" => [ "doc/man3/SSL_set_session.pod" ], + "doc/man/man3/SSL_set_session_secret_cb.3" => [ + "doc/man3/SSL_set_session_secret_cb.pod" + ], "doc/man/man3/SSL_set_shutdown.3" => [ "doc/man3/SSL_set_shutdown.pod" ], @@ -6143,6 +6972,12 @@ our %unified_info = ( "doc/man/man3/SSL_state_string.3" => [ "doc/man3/SSL_state_string.pod" ], + "doc/man/man3/SSL_stream_conclude.3" => [ + "doc/man3/SSL_stream_conclude.pod" + ], + "doc/man/man3/SSL_stream_reset.3" => [ + "doc/man3/SSL_stream_reset.pod" + ], "doc/man/man3/SSL_want.3" => [ "doc/man3/SSL_want.pod" ], @@ -6152,8 +6987,8 @@ our %unified_info = ( "doc/man/man3/TS_RESP_CTX_new.3" => [ "doc/man3/TS_RESP_CTX_new.pod" ], - "doc/man/man3/TS_VERIFY_CTX_set_certs.3" => [ - "doc/man3/TS_VERIFY_CTX_set_certs.pod" + "doc/man/man3/TS_VERIFY_CTX.3" => [ + "doc/man3/TS_VERIFY_CTX.pod" ], "doc/man/man3/UI_STRING.3" => [ "doc/man3/UI_STRING.pod" @@ -6173,6 +7008,21 @@ our %unified_info = ( "doc/man/man3/X509V3_set_ctx.3" => [ "doc/man3/X509V3_set_ctx.pod" ], + "doc/man/man3/X509_ACERT_add1_attr.3" => [ + "doc/man3/X509_ACERT_add1_attr.pod" + ], + "doc/man/man3/X509_ACERT_add_attr_nconf.3" => [ + "doc/man3/X509_ACERT_add_attr_nconf.pod" + ], + "doc/man/man3/X509_ACERT_get0_holder_baseCertId.3" => [ + "doc/man3/X509_ACERT_get0_holder_baseCertId.pod" + ], + "doc/man/man3/X509_ACERT_get_attr.3" => [ + "doc/man3/X509_ACERT_get_attr.pod" + ], + "doc/man/man3/X509_ACERT_print_ex.3" => [ + "doc/man3/X509_ACERT_print_ex.pod" + ], "doc/man/man3/X509_ALGOR_dup.3" => [ "doc/man3/X509_ALGOR_dup.pod" ], @@ -6221,6 +7071,9 @@ our %unified_info = ( "doc/man/man3/X509_SIG_get0.3" => [ "doc/man3/X509_SIG_get0.pod" ], + "doc/man/man3/X509_STORE_CTX_get_by_subject.3" => [ + "doc/man3/X509_STORE_CTX_get_by_subject.pod" + ], "doc/man/man3/X509_STORE_CTX_get_error.3" => [ "doc/man3/X509_STORE_CTX_get_error.pod" ], @@ -6287,6 +7140,9 @@ our %unified_info = ( "doc/man/man3/X509_get0_uids.3" => [ "doc/man3/X509_get0_uids.pod" ], + "doc/man/man3/X509_get_default_cert_file.3" => [ + "doc/man3/X509_get_default_cert_file.pod" + ], "doc/man/man3/X509_get_extension_flags.3" => [ "doc/man3/X509_get_extension_flags.pod" ], @@ -6410,9 +7266,15 @@ our %unified_info = ( "doc/man/man7/EVP_CIPHER-SM4.7" => [ "doc/man7/EVP_CIPHER-SM4.pod" ], + "doc/man/man7/EVP_KDF-ARGON2.7" => [ + "doc/man7/EVP_KDF-ARGON2.pod" + ], "doc/man/man7/EVP_KDF-HKDF.7" => [ "doc/man7/EVP_KDF-HKDF.pod" ], + "doc/man/man7/EVP_KDF-HMAC-DRBG.7" => [ + "doc/man7/EVP_KDF-HMAC-DRBG.pod" + ], "doc/man/man7/EVP_KDF-KB.7" => [ "doc/man7/EVP_KDF-KB.pod" ], @@ -6428,6 +7290,9 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-PKCS12KDF.7" => [ "doc/man7/EVP_KDF-PKCS12KDF.pod" ], + "doc/man/man7/EVP_KDF-PVKKDF.7" => [ + "doc/man7/EVP_KDF-PVKKDF.pod" + ], "doc/man/man7/EVP_KDF-SCRYPT.7" => [ "doc/man7/EVP_KDF-SCRYPT.pod" ], @@ -6452,9 +7317,18 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-X963.7" => [ "doc/man7/EVP_KDF-X963.pod" ], + "doc/man/man7/EVP_KEM-EC.7" => [ + "doc/man7/EVP_KEM-EC.pod" + ], + "doc/man/man7/EVP_KEM-ML-KEM.7" => [ + "doc/man7/EVP_KEM-ML-KEM.pod" + ], "doc/man/man7/EVP_KEM-RSA.7" => [ "doc/man7/EVP_KEM-RSA.pod" ], + "doc/man/man7/EVP_KEM-X25519.7" => [ + "doc/man7/EVP_KEM-X25519.pod" + ], "doc/man/man7/EVP_KEYEXCH-DH.7" => [ "doc/man7/EVP_KEYEXCH-DH.pod" ], @@ -6488,6 +7362,9 @@ our %unified_info = ( "doc/man/man7/EVP_MD-BLAKE2.7" => [ "doc/man7/EVP_MD-BLAKE2.pod" ], + "doc/man/man7/EVP_MD-KECCAK.7" => [ + "doc/man7/EVP_MD-KECCAK.pod" + ], "doc/man/man7/EVP_MD-MD2.7" => [ "doc/man7/EVP_MD-MD2.pod" ], @@ -6545,15 +7422,27 @@ our %unified_info = ( "doc/man/man7/EVP_PKEY-HMAC.7" => [ "doc/man7/EVP_PKEY-HMAC.pod" ], + "doc/man/man7/EVP_PKEY-ML-DSA.7" => [ + "doc/man7/EVP_PKEY-ML-DSA.pod" + ], + "doc/man/man7/EVP_PKEY-ML-KEM.7" => [ + "doc/man7/EVP_PKEY-ML-KEM.pod" + ], "doc/man/man7/EVP_PKEY-RSA.7" => [ "doc/man7/EVP_PKEY-RSA.pod" ], + "doc/man/man7/EVP_PKEY-SLH-DSA.7" => [ + "doc/man7/EVP_PKEY-SLH-DSA.pod" + ], "doc/man/man7/EVP_PKEY-SM2.7" => [ "doc/man7/EVP_PKEY-SM2.pod" ], "doc/man/man7/EVP_PKEY-X25519.7" => [ "doc/man7/EVP_PKEY-X25519.pod" ], + "doc/man/man7/EVP_RAND-CRNG-TEST.7" => [ + "doc/man7/EVP_RAND-CRNG-TEST.pod" + ], "doc/man/man7/EVP_RAND-CTR-DRBG.7" => [ "doc/man7/EVP_RAND-CTR-DRBG.pod" ], @@ -6563,6 +7452,9 @@ our %unified_info = ( "doc/man/man7/EVP_RAND-HMAC-DRBG.7" => [ "doc/man7/EVP_RAND-HMAC-DRBG.pod" ], + "doc/man/man7/EVP_RAND-JITTER.7" => [ + "doc/man7/EVP_RAND-JITTER.pod" + ], "doc/man/man7/EVP_RAND-SEED-SRC.7" => [ "doc/man7/EVP_RAND-SEED-SRC.pod" ], @@ -6584,9 +7476,15 @@ our %unified_info = ( "doc/man/man7/EVP_SIGNATURE-HMAC.7" => [ "doc/man7/EVP_SIGNATURE-HMAC.pod" ], + "doc/man/man7/EVP_SIGNATURE-ML-DSA.7" => [ + "doc/man7/EVP_SIGNATURE-ML-DSA.pod" + ], "doc/man/man7/EVP_SIGNATURE-RSA.7" => [ "doc/man7/EVP_SIGNATURE-RSA.pod" ], + "doc/man/man7/EVP_SIGNATURE-SLH-DSA.7" => [ + "doc/man7/EVP_SIGNATURE-SLH-DSA.pod" + ], "doc/man/man7/OSSL_PROVIDER-FIPS.7" => [ "doc/man7/OSSL_PROVIDER-FIPS.pod" ], @@ -6602,6 +7500,9 @@ our %unified_info = ( "doc/man/man7/OSSL_PROVIDER-null.7" => [ "doc/man7/OSSL_PROVIDER-null.pod" ], + "doc/man/man7/OSSL_STORE-winstore.7" => [ + "doc/man7/OSSL_STORE-winstore.pod" + ], "doc/man/man7/RAND.7" => [ "doc/man7/RAND.pod" ], @@ -6614,9 +7515,6 @@ our %unified_info = ( "doc/man/man7/bio.7" => [ "doc/man7/bio.pod" ], - "doc/man/man7/crypto.7" => [ - "doc/man7/crypto.pod" - ], "doc/man/man7/ct.7" => [ "doc/man7/ct.pod" ], @@ -6647,9 +7545,6 @@ our %unified_info = ( "doc/man/man7/life_cycle-rand.7" => [ "doc/man7/life_cycle-rand.pod" ], - "doc/man/man7/migration_guide.7" => [ - "doc/man7/migration_guide.pod" - ], "doc/man/man7/openssl-core.h.7" => [ "doc/man7/openssl-core.h.pod" ], @@ -6665,12 +7560,66 @@ our %unified_info = ( "doc/man/man7/openssl-glossary.7" => [ "doc/man7/openssl-glossary.pod" ], + "doc/man/man7/openssl-qlog.7" => [ + "doc/man7/openssl-qlog.pod" + ], + "doc/man/man7/openssl-quic-concurrency.7" => [ + "doc/man7/openssl-quic-concurrency.pod" + ], + "doc/man/man7/openssl-quic.7" => [ + "doc/man7/openssl-quic.pod" + ], "doc/man/man7/openssl-threads.7" => [ "doc/man7/openssl-threads.pod" ], "doc/man/man7/openssl_user_macros.7" => [ "doc/man7/openssl_user_macros.pod" ], + "doc/man/man7/ossl-guide-introduction.7" => [ + "doc/man7/ossl-guide-introduction.pod" + ], + "doc/man/man7/ossl-guide-libcrypto-introduction.7" => [ + "doc/man7/ossl-guide-libcrypto-introduction.pod" + ], + "doc/man/man7/ossl-guide-libraries-introduction.7" => [ + "doc/man7/ossl-guide-libraries-introduction.pod" + ], + "doc/man/man7/ossl-guide-libssl-introduction.7" => [ + "doc/man7/ossl-guide-libssl-introduction.pod" + ], + "doc/man/man7/ossl-guide-migration.7" => [ + "doc/man7/ossl-guide-migration.pod" + ], + "doc/man/man7/ossl-guide-quic-client-block.7" => [ + "doc/man7/ossl-guide-quic-client-block.pod" + ], + "doc/man/man7/ossl-guide-quic-client-non-block.7" => [ + "doc/man7/ossl-guide-quic-client-non-block.pod" + ], + "doc/man/man7/ossl-guide-quic-introduction.7" => [ + "doc/man7/ossl-guide-quic-introduction.pod" + ], + "doc/man/man7/ossl-guide-quic-multi-stream.7" => [ + "doc/man7/ossl-guide-quic-multi-stream.pod" + ], + "doc/man/man7/ossl-guide-quic-server-block.7" => [ + "doc/man7/ossl-guide-quic-server-block.pod" + ], + "doc/man/man7/ossl-guide-quic-server-non-block.7" => [ + "doc/man7/ossl-guide-quic-server-non-block.pod" + ], + "doc/man/man7/ossl-guide-tls-client-block.7" => [ + "doc/man7/ossl-guide-tls-client-block.pod" + ], + "doc/man/man7/ossl-guide-tls-client-non-block.7" => [ + "doc/man7/ossl-guide-tls-client-non-block.pod" + ], + "doc/man/man7/ossl-guide-tls-introduction.7" => [ + "doc/man7/ossl-guide-tls-introduction.pod" + ], + "doc/man/man7/ossl-guide-tls-server-block.7" => [ + "doc/man7/ossl-guide-tls-server-block.pod" + ], "doc/man/man7/ossl_store-file.7" => [ "doc/man7/ossl_store-file.pod" ], @@ -6725,6 +7674,9 @@ our %unified_info = ( "doc/man/man7/provider-signature.7" => [ "doc/man7/provider-signature.pod" ], + "doc/man/man7/provider-skeymgmt.7" => [ + "doc/man7/provider-skeymgmt.pod" + ], "doc/man/man7/provider-storemgmt.7" => [ "doc/man7/provider-storemgmt.pod" ], @@ -6734,9 +7686,6 @@ our %unified_info = ( "doc/man/man7/proxy-certificates.7" => [ "doc/man7/proxy-certificates.pod" ], - "doc/man/man7/ssl.7" => [ - "doc/man7/ssl.pod" - ], "doc/man/man7/x509.7" => [ "doc/man7/x509.pod" ], @@ -6916,6 +7865,10 @@ our %unified_info = ( "doc/man1/openssl-sess_id.pod.in", "doc/perlvars.pm" ], + "doc/man1/openssl-skeyutl.pod" => [ + "doc/man1/openssl-skeyutl.pod.in", + "doc/perlvars.pm" + ], "doc/man1/openssl-smime.pod" => [ "doc/man1/openssl-smime.pod.in", "doc/perlvars.pm" @@ -6955,6 +7908,27 @@ our %unified_info = ( "doc/man7/openssl_user_macros.pod" => [ "doc/man7/openssl_user_macros.pod.in" ], + "exporters/OpenSSLConfig.cmake" => [ + "installdata.pm" + ], + "exporters/OpenSSLConfigVersion.cmake" => [ + "exporters/OpenSSLConfig.cmake", + "installdata.pm" + ], + "exporters/libcrypto.pc" => [ + "installdata.pm" + ], + "exporters/libssl.pc" => [ + "installdata.pm" + ], + "exporters/openssl.pc" => [ + "exporters/libcrypto.pc", + "exporters/libssl.pc", + "installdata.pm" + ], + "fuzz/acert-test" => [ + "libcrypto" + ], "fuzz/asn1-test" => [ "libcrypto", "libssl" @@ -6987,17 +7961,85 @@ our %unified_info = ( "fuzz/ct-test" => [ "libcrypto" ], + "fuzz/decoder-test" => [ + "libcrypto" + ], + "fuzz/dtlsclient-test" => [ + "libcrypto", + "libssl" + ], + "fuzz/dtlsserver-test" => [ + "libcrypto", + "libssl" + ], + "fuzz/hashtable-test" => [ + "libcrypto.a" + ], + "fuzz/ml-dsa-test" => [ + "libcrypto.a" + ], + "fuzz/ml-kem-test" => [ + "libcrypto.a" + ], + "fuzz/pem-test" => [ + "libcrypto.a" + ], + "fuzz/provider-test" => [ + "libcrypto" + ], + "fuzz/punycode-test" => [ + "libcrypto.a" + ], + "fuzz/quic-client-test" => [ + "libcrypto.a", + "libssl.a" + ], + "fuzz/quic-lcidm-test" => [ + "libcrypto.a", + "libssl.a" + ], + "fuzz/quic-rcidm-test" => [ + "libcrypto.a", + "libssl.a" + ], + "fuzz/quic-server-test" => [ + "libcrypto.a", + "libssl.a" + ], + "fuzz/quic-srtm-test" => [ + "libcrypto.a", + "libssl.a" + ], "fuzz/server-test" => [ "libcrypto", "libssl" ], + "fuzz/slh-dsa-test" => [ + "libcrypto.a" + ], + "fuzz/smime-test" => [ + "libcrypto", + "libssl" + ], + "fuzz/v3name-test" => [ + "libcrypto.a" + ], "fuzz/x509-test" => [ "libcrypto" ], + "include/internal/param_names.h" => [ + "util/perl|OpenSSL/paramnames.pm" + ], + "include/openssl/core_names.h" => [ + "util/perl|OpenSSL/paramnames.pm" + ], "libcrypto.ld" => [ "configdata.pm", "util/perl/OpenSSL/Ordinals.pm" ], + "libcrypto.pc" => [ + "builddata.pm" + ], "libssl" => [ "libcrypto" ], @@ -7005,6 +8047,14 @@ our %unified_info = ( "configdata.pm", "util/perl/OpenSSL/Ordinals.pm" ], + "libssl.pc" => [ + "builddata.pm" + ], + "openssl.pc" => [ + "builddata.pm", + "libcrypto.pc", + "libssl.pc" + ], "providers/common/der/der_digests_gen.c" => [ "providers/common/der/DIGESTS.asn1", "providers/common/der/NIST.asn1", @@ -7022,11 +8072,19 @@ our %unified_info = ( "providers/common/der/ECX.asn1", "providers/common/der/oids_to_c.pm" ], + "providers/common/der/der_ml_dsa_gen.c" => [ + "providers/common/der/ML_DSA.asn1", + "providers/common/der/oids_to_c.pm" + ], "providers/common/der/der_rsa_gen.c" => [ "providers/common/der/NIST.asn1", "providers/common/der/RSA.asn1", "providers/common/der/oids_to_c.pm" ], + "providers/common/der/der_slh_dsa_gen.c" => [ + "providers/common/der/SLH_DSA.asn1", + "providers/common/der/oids_to_c.pm" + ], "providers/common/der/der_sm2_gen.c" => [ "providers/common/der/SM2.asn1", "providers/common/der/oids_to_c.pm" @@ -7066,6 +8124,12 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ecx_key.o" => [ "providers/common/include/prov/der_ecx.h" ], + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o" => [ + "providers/common/include/prov/der_ml_dsa.h" + ], + "providers/common/der/libcommon-lib-der_ml_dsa_key.o" => [ + "providers/common/include/prov/der_ml_dsa.h" + ], "providers/common/der/libcommon-lib-der_rsa_gen.o" => [ "providers/common/include/prov/der_rsa.h" ], @@ -7073,6 +8137,12 @@ our %unified_info = ( "providers/common/include/prov/der_digests.h", "providers/common/include/prov/der_rsa.h" ], + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o" => [ + "providers/common/include/prov/der_slh_dsa.h" + ], + "providers/common/der/libcommon-lib-der_slh_dsa_key.o" => [ + "providers/common/include/prov/der_slh_dsa.h" + ], "providers/common/der/libcommon-lib-der_wrap_gen.o" => [ "providers/common/include/prov/der_wrap.h" ], @@ -7112,11 +8182,19 @@ our %unified_info = ( "providers/common/der/ECX.asn1", "providers/common/der/oids_to_c.pm" ], + "providers/common/include/prov/der_ml_dsa.h" => [ + "providers/common/der/ML_DSA.asn1", + "providers/common/der/oids_to_c.pm" + ], "providers/common/include/prov/der_rsa.h" => [ "providers/common/der/NIST.asn1", "providers/common/der/RSA.asn1", "providers/common/der/oids_to_c.pm" ], + "providers/common/include/prov/der_slh_dsa.h" => [ + "providers/common/der/SLH_DSA.asn1", + "providers/common/der/oids_to_c.pm" + ], "providers/common/include/prov/der_sm2.h" => [ "providers/common/der/SM2.asn1", "providers/common/der/oids_to_c.pm" @@ -7149,9 +8227,15 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-eddsa_sig.o" => [ "providers/common/include/prov/der_ecx.h" ], + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o" => [ + "providers/common/include/prov/der_ml_dsa.h" + ], "providers/implementations/signature/libdefault-lib-rsa_sig.o" => [ "providers/common/include/prov/der_rsa.h" ], + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o" => [ + "providers/common/include/prov/der_slh_dsa.h" + ], "providers/implementations/signature/libdefault-lib-sm2_sig.o" => [ "providers/common/include/prov/der_sm2.h" ], @@ -7164,9 +8248,15 @@ our %unified_info = ( "providers/implementations/signature/libfips-lib-eddsa_sig.o" => [ "providers/common/include/prov/der_ecx.h" ], + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o" => [ + "providers/common/include/prov/der_ml_dsa.h" + ], "providers/implementations/signature/libfips-lib-rsa_sig.o" => [ "providers/common/include/prov/der_rsa.h" ], + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o" => [ + "providers/common/include/prov/der_slh_dsa.h" + ], "providers/legacy" => [ "libcrypto", "providers/liblegacy.a" @@ -7244,6 +8334,14 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/bio_addr_test" => [ + "libcrypto", + "test/libtestutil.a" + ], + "test/bio_base64_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/bio_callback_test" => [ "libcrypto", "test/libtestutil.a" @@ -7252,6 +8350,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/bio_dgram_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/bio_enc_test" => [ "libcrypto", "test/libtestutil.a" @@ -7260,6 +8362,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/bio_meth_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/bio_prefix_text" => [ "libcrypto", "test/libtestutil.a" @@ -7272,6 +8378,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/bio_tfo_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/bioprinttest" => [ "libcrypto", "test/libtestutil.a" @@ -7284,6 +8394,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/build_wincrypt_test" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_aes" => [ "libcrypto", "libssl" @@ -7304,6 +8418,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_byteorder" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_camellia" => [ "libcrypto", "libssl" @@ -7336,10 +8454,6 @@ our %unified_info = ( "libcrypto", "libssl" ], - "test/buildtest_c_core_names" => [ - "libcrypto", - "libssl" - ], "test/buildtest_c_core_object" => [ "libcrypto", "libssl" @@ -7372,6 +8486,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_e_ostime" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_ebcdic" => [ "libcrypto", "libssl" @@ -7408,6 +8526,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_hpke" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_http" => [ "libcrypto", "libssl" @@ -7416,6 +8538,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_indicator" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_kdf" => [ "libcrypto", "libssl" @@ -7436,6 +8562,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_ml_kem" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_modes" => [ "libcrypto", "libssl" @@ -7476,6 +8606,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_quic" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_rand" => [ "libcrypto", "libssl" @@ -7532,6 +8666,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_thread" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_tls1" => [ "libcrypto", "libssl" @@ -7552,10 +8690,23 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/byteorder_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], + "test/ca_internals_test" => [ + "libssl", + "test/libtestutil.a" + ], "test/casttest" => [ "libcrypto", "test/libtestutil.a" ], + "test/cert_comp_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], "test/chacha_internal_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -7669,7 +8820,11 @@ our %unified_info = ( "libssl", "test/libtestutil.a" ], - "test/defltfips_test" => [ + "test/decoder_propq_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], + "test/defltfips_test" => [ "libcrypto", "test/libtestutil.a" ], @@ -7725,6 +8880,8 @@ our %unified_info = ( ], "test/endecode_test" => [ "libcrypto.a", + "providers/libcommon.a", + "providers/liblegacy.a", "test/libtestutil.a" ], "test/endecoder_legacy_test" => [ @@ -7768,6 +8925,10 @@ our %unified_info = ( "test/evp_pkey_ctx_new_from_name" => [ "libcrypto" ], + "test/evp_pkey_dhkem_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/evp_pkey_dparams_test" => [ "libcrypto", "test/libtestutil.a" @@ -7776,10 +8937,18 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/evp_skey_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/evp_test" => [ "libcrypto", "test/libtestutil.a" ], + "test/evp_xof_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/exdatatest" => [ "libcrypto", "test/libtestutil.a" @@ -7818,6 +8987,10 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/hpke_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/http_test" => [ "libcrypto", "test/libtestutil.a" @@ -7830,17 +9003,25 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/json_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], "test/keymgmt_internal_test" => [ "libcrypto.a", "test/libtestutil.a" ], "test/lhash_test" => [ - "libcrypto", + "libcrypto.a", "test/libtestutil.a" ], "test/libtestutil.a" => [ "libcrypto" ], + "test/list_test" => [ + "test/libtestutil.a" + ], "test/localetest" => [ "libcrypto", "test/libtestutil.a" @@ -7853,10 +9034,26 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/membio_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/memleaktest" => [ "libcrypto", "test/libtestutil.a" ], + "test/ml_dsa_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], + "test/ml_kem_evp_extra_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], + "test/ml_kem_internal_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/modes_internal_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -7881,6 +9078,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/pairwise_fail_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/param_build_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -7913,6 +9114,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/pkcs12_api_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/pkcs12_format_test" => [ "libcrypto", "test/libtestutil.a" @@ -7933,6 +9138,11 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/priority_queue_test" => [ + "libcrypto", + "libssl.a", + "test/libtestutil.a" + ], "test/property_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -7945,6 +9155,10 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/provider_default_search_path_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/provider_fallback_test" => [ "libcrypto", "test/libtestutil.a" @@ -7969,12 +9183,122 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/quic_ackm_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_cc_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_cfq_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_client_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_fc_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_fifd_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_lcidm_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_multistream_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_newcid_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_qlog_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_radix_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_rcidm_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_record_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_srt_gen_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_srtm_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_stream_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_tserver_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_txp_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_txpim_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_wire_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quicapitest" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quicfaultstest" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], "test/rand_status_test" => [ "libcrypto", "test/libtestutil.a" ], "test/rand_test" => [ - "libcrypto", + "libcrypto.a", "test/libtestutil.a" ], "test/rc2test" => [ @@ -7989,7 +9313,7 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], - "test/rdrand_sanitytest" => [ + "test/rdcpu_sanitytest" => [ "libcrypto.a", "test/libtestutil.a" ], @@ -7998,6 +9322,11 @@ our %unified_info = ( "libssl", "test/libtestutil.a" ], + "test/rpktest" => [ + "libcrypto", + "libssl", + "test/libtestutil.a" + ], "test/rsa_mp_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -8010,10 +9339,18 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], - "test/sanitytest" => [ + "test/rsa_x931_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], + "test/safe_math_test" => [ "libcrypto", "test/libtestutil.a" ], + "test/sanitytest" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/secmemtest" => [ "libcrypto", "test/libtestutil.a" @@ -8031,6 +9368,10 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/slh_dsa_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/sm2_internal_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -8060,6 +9401,11 @@ our %unified_info = ( "libssl", "test/libtestutil.a" ], + "test/ssl_handshake_rtt_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], "test/ssl_old_test" => [ "libcrypto.a", "libssl.a", @@ -8076,8 +9422,8 @@ our %unified_info = ( "test/libtestutil.a" ], "test/sslapitest" => [ - "libcrypto", - "libssl", + "libcrypto.a", + "libssl.a", "test/libtestutil.a" ], "test/sslbuffertest" => [ @@ -8094,6 +9440,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/strtoultest" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/sysdefaulttest" => [ "libcrypto", "libssl", @@ -8103,8 +9453,12 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/threadpool_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/threadstest" => [ - "libcrypto", + "libcrypto.a", "test/libtestutil.a" ], "test/threadstest_fips" => [ @@ -8115,6 +9469,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/time_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/tls13ccstest" => [ "libcrypto", "libssl", @@ -8125,6 +9483,11 @@ our %unified_info = ( "libssl.a", "test/libtestutil.a" ], + "test/tls13groupselection_test" => [ + "libcrypto", + "libssl", + "test/libtestutil.a" + ], "test/trace_api_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -8162,6 +9525,10 @@ our %unified_info = ( "libssl.a", "test/libtestutil.a" ], + "test/x509_acert_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/x509_check_cert_pkey_test" => [ "libcrypto", "test/libtestutil.a" @@ -8174,6 +9541,18 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/x509_load_cert_file_test" => [ + "libcrypto", + "test/libtestutil.a" + ], + "test/x509_req_test" => [ + "libcrypto", + "test/libtestutil.a" + ], + "test/x509_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/x509_time_test" => [ "libcrypto", "test/libtestutil.a" @@ -8188,9 +9567,13 @@ our %unified_info = ( }, "dirinfo" => { "apps" => { + "deps" => [ + "apps/ca_internals_test-bin-ca.o" + ], "products" => { "bin" => [ - "apps/openssl" + "apps/openssl", + "test/ca_internals_test" ], "script" => [ "apps/CA.pl", @@ -8201,6 +9584,14 @@ our %unified_info = ( "apps/lib" => { "deps" => [ "apps/lib/openssl-bin-cmp_mock_srv.o", + "apps/lib/ca_internals_test-bin-app_libctx.o", + "apps/lib/ca_internals_test-bin-app_provider.o", + "apps/lib/ca_internals_test-bin-app_rand.o", + "apps/lib/ca_internals_test-bin-app_x509.o", + "apps/lib/ca_internals_test-bin-apps.o", + "apps/lib/ca_internals_test-bin-apps_ui.o", + "apps/lib/ca_internals_test-bin-engine.o", + "apps/lib/ca_internals_test-bin-fmt.o", "apps/lib/cmp_client_test-bin-cmp_mock_srv.o", "apps/lib/uitest-bin-apps_ui.o", "apps/lib/libapps-lib-app_libctx.o", @@ -8209,12 +9600,14 @@ our %unified_info = ( "apps/lib/libapps-lib-app_rand.o", "apps/lib/libapps-lib-app_x509.o", "apps/lib/libapps-lib-apps.o", + "apps/lib/libapps-lib-apps_opt_printf.o", "apps/lib/libapps-lib-apps_ui.o", "apps/lib/libapps-lib-columns.o", "apps/lib/libapps-lib-engine.o", "apps/lib/libapps-lib-engine_loader.o", "apps/lib/libapps-lib-fmt.o", "apps/lib/libapps-lib-http_server.o", + "apps/lib/libapps-lib-log.o", "apps/lib/libapps-lib-names.o", "apps/lib/libapps-lib-opt.o", "apps/lib/libapps-lib-s_cb.o", @@ -8225,6 +9618,7 @@ our %unified_info = ( "products" => { "bin" => [ "apps/openssl", + "test/ca_internals_test", "test/cmp_client_test", "test/uitest" ], @@ -8236,8 +9630,12 @@ our %unified_info = ( }, "crypto" => { "deps" => [ + "crypto/asn1_time_test-bin-ctype.o", + "crypto/ca_internals_test-bin-ctype.o", + "crypto/packettest-bin-quic_vlint.o", "crypto/libcrypto-lib-asn1_dsa.o", "crypto/libcrypto-lib-bsearch.o", + "crypto/libcrypto-lib-comp_methods.o", "crypto/libcrypto-lib-context.o", "crypto/libcrypto-lib-core_algorithm.o", "crypto/libcrypto-lib-core_fetch.o", @@ -8247,10 +9645,13 @@ our %unified_info = ( "crypto/libcrypto-lib-cryptlib.o", "crypto/libcrypto-lib-ctype.o", "crypto/libcrypto-lib-cversion.o", + "crypto/libcrypto-lib-defaults.o", "crypto/libcrypto-lib-der_writer.o", + "crypto/libcrypto-lib-deterministic_nonce.o", "crypto/libcrypto-lib-ebcdic.o", "crypto/libcrypto-lib-ex_data.o", "crypto/libcrypto-lib-getenv.o", + "crypto/libcrypto-lib-indicator_core.o", "crypto/libcrypto-lib-info.o", "crypto/libcrypto-lib-init.o", "crypto/libcrypto-lib-initthread.o", @@ -8267,6 +9668,7 @@ our %unified_info = ( "crypto/libcrypto-lib-params.o", "crypto/libcrypto-lib-params_dup.o", "crypto/libcrypto-lib-params_from_text.o", + "crypto/libcrypto-lib-params_idx.o", "crypto/libcrypto-lib-passphrase.o", "crypto/libcrypto-lib-provider.o", "crypto/libcrypto-lib-provider_child.o", @@ -8274,12 +9676,16 @@ our %unified_info = ( "crypto/libcrypto-lib-provider_core.o", "crypto/libcrypto-lib-provider_predefined.o", "crypto/libcrypto-lib-punycode.o", + "crypto/libcrypto-lib-quic_vlint.o", "crypto/libcrypto-lib-self_test_core.o", + "crypto/libcrypto-lib-sleep.o", "crypto/libcrypto-lib-sparse_array.o", + "crypto/libcrypto-lib-ssl_err.o", "crypto/libcrypto-lib-threads_lib.o", "crypto/libcrypto-lib-threads_none.o", "crypto/libcrypto-lib-threads_pthread.o", "crypto/libcrypto-lib-threads_win.o", + "crypto/libcrypto-lib-time.o", "crypto/libcrypto-lib-trace.o", "crypto/libcrypto-lib-uid.o", "crypto/libcrypto-lib-x86cpuid.o", @@ -8302,6 +9708,7 @@ our %unified_info = ( "crypto/libfips-lib-params.o", "crypto/libfips-lib-params_dup.o", "crypto/libfips-lib-params_from_text.o", + "crypto/libfips-lib-params_idx.o", "crypto/libfips-lib-provider_core.o", "crypto/libfips-lib-provider_predefined.o", "crypto/libfips-lib-self_test_core.o", @@ -8310,9 +9717,15 @@ our %unified_info = ( "crypto/libfips-lib-threads_none.o", "crypto/libfips-lib-threads_pthread.o", "crypto/libfips-lib-threads_win.o", + "crypto/libfips-lib-time.o", "crypto/libfips-lib-x86cpuid.o" ], "products" => { + "bin" => [ + "test/asn1_time_test", + "test/ca_internals_test", + "test/packettest" + ], "lib" => [ "libcrypto", "providers/libfips.a" @@ -8355,6 +9768,8 @@ our %unified_info = ( }, "crypto/asn1" => { "deps" => [ + "crypto/asn1/asn1_time_test-bin-a_time.o", + "crypto/asn1/ca_internals_test-bin-a_time.o", "crypto/asn1/libcrypto-lib-a_bitstr.o", "crypto/asn1/libcrypto-lib-a_d2i_fp.o", "crypto/asn1/libcrypto-lib-a_digest.o", @@ -8421,6 +9836,10 @@ our %unified_info = ( "crypto/asn1/libcrypto-lib-x_val.o" ], "products" => { + "bin" => [ + "test/asn1_time_test", + "test/ca_internals_test" + ], "lib" => [ "libcrypto" ] @@ -8486,6 +9905,7 @@ our %unified_info = ( "crypto/bio/libcrypto-lib-bss_conn.o", "crypto/bio/libcrypto-lib-bss_core.o", "crypto/bio/libcrypto-lib-bss_dgram.o", + "crypto/bio/libcrypto-lib-bss_dgram_pair.o", "crypto/bio/libcrypto-lib-bss_fd.o", "crypto/bio/libcrypto-lib-bss_file.o", "crypto/bio/libcrypto-lib-bss_log.o", @@ -8646,6 +10066,7 @@ our %unified_info = ( "crypto/cmp/libcrypto-lib-cmp_client.o", "crypto/cmp/libcrypto-lib-cmp_ctx.o", "crypto/cmp/libcrypto-lib-cmp_err.o", + "crypto/cmp/libcrypto-lib-cmp_genm.o", "crypto/cmp/libcrypto-lib-cmp_hdr.o", "crypto/cmp/libcrypto-lib-cmp_http.o", "crypto/cmp/libcrypto-lib-cmp_msg.o", @@ -9017,7 +10438,9 @@ our %unified_info = ( "crypto/err/libcrypto-lib-err_all.o", "crypto/err/libcrypto-lib-err_all_legacy.o", "crypto/err/libcrypto-lib-err_blocks.o", - "crypto/err/libcrypto-lib-err_prn.o" + "crypto/err/libcrypto-lib-err_mark.o", + "crypto/err/libcrypto-lib-err_prn.o", + "crypto/err/libcrypto-lib-err_save.o" ], "products" => { "lib" => [ @@ -9118,7 +10541,9 @@ our %unified_info = ( "crypto/evp/libcrypto-lib-pmeth_check.o", "crypto/evp/libcrypto-lib-pmeth_gn.o", "crypto/evp/libcrypto-lib-pmeth_lib.o", + "crypto/evp/libcrypto-lib-s_lib.o", "crypto/evp/libcrypto-lib-signature.o", + "crypto/evp/libcrypto-lib-skeymgmt_meth.o", "crypto/evp/libfips-lib-asymcipher.o", "crypto/evp/libfips-lib-dh_support.o", "crypto/evp/libfips-lib-digest.o", @@ -9134,14 +10559,15 @@ our %unified_info = ( "crypto/evp/libfips-lib-kem.o", "crypto/evp/libfips-lib-keymgmt_lib.o", "crypto/evp/libfips-lib-keymgmt_meth.o", - "crypto/evp/libfips-lib-m_sigver.o", "crypto/evp/libfips-lib-mac_lib.o", "crypto/evp/libfips-lib-mac_meth.o", "crypto/evp/libfips-lib-p_lib.o", "crypto/evp/libfips-lib-pmeth_check.o", "crypto/evp/libfips-lib-pmeth_gn.o", "crypto/evp/libfips-lib-pmeth_lib.o", - "crypto/evp/libfips-lib-signature.o" + "crypto/evp/libfips-lib-s_lib.o", + "crypto/evp/libfips-lib-signature.o", + "crypto/evp/libfips-lib-skeymgmt_meth.o" ], "products" => { "lib" => [ @@ -9174,6 +10600,20 @@ our %unified_info = ( ] } }, + "crypto/hashtable" => { + "deps" => [ + "crypto/hashtable/libcrypto-lib-hashfunc.o", + "crypto/hashtable/libcrypto-lib-hashtable.o", + "crypto/hashtable/libfips-lib-hashfunc.o", + "crypto/hashtable/libfips-lib-hashtable.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, "crypto/hmac" => { "deps" => [ "crypto/hmac/libcrypto-lib-hmac.o", @@ -9186,6 +10626,17 @@ our %unified_info = ( ] } }, + "crypto/hpke" => { + "deps" => [ + "crypto/hpke/libcrypto-lib-hpke.o", + "crypto/hpke/libcrypto-lib-hpke_util.o" + ], + "products" => { + "lib" => [ + "libcrypto" + ] + } + }, "crypto/http" => { "deps" => [ "crypto/http/libcrypto-lib-http_client.o", @@ -9270,6 +10721,44 @@ our %unified_info = ( ] } }, + "crypto/ml_dsa" => { + "deps" => [ + "crypto/ml_dsa/libcrypto-lib-ml_dsa_encoders.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key_compress.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_matrix.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_ntt.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_params.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sample.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sign.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_encoders.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_key.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_key_compress.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_matrix.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_ntt.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_params.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_sample.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_sign.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, + "crypto/ml_kem" => { + "deps" => [ + "crypto/ml_kem/libcrypto-lib-ml_kem.o", + "crypto/ml_kem/libfips-lib-ml_kem.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, "crypto/modes" => { "deps" => [ "crypto/modes/libcrypto-lib-cbc128.o", @@ -9284,6 +10773,7 @@ our %unified_info = ( "crypto/modes/libcrypto-lib-siv128.o", "crypto/modes/libcrypto-lib-wrap128.o", "crypto/modes/libcrypto-lib-xts128.o", + "crypto/modes/libcrypto-lib-xts128gb.o", "crypto/modes/libfips-lib-cbc128.o", "crypto/modes/libfips-lib-ccm128.o", "crypto/modes/libfips-lib-cfb128.o", @@ -9292,7 +10782,8 @@ our %unified_info = ( "crypto/modes/libfips-lib-ghash-x86.o", "crypto/modes/libfips-lib-ofb128.o", "crypto/modes/libfips-lib-wrap128.o", - "crypto/modes/libfips-lib-xts128.o" + "crypto/modes/libfips-lib-xts128.o", + "crypto/modes/libfips-lib-xts128gb.o" ], "products" => { "lib" => [ @@ -9436,6 +10927,7 @@ our %unified_info = ( "crypto/rand/libcrypto-lib-rand_lib.o", "crypto/rand/libcrypto-lib-rand_meth.o", "crypto/rand/libcrypto-lib-rand_pool.o", + "crypto/rand/libcrypto-lib-rand_uniform.o", "crypto/rand/libcrypto-lib-randfile.o", "crypto/rand/libfips-lib-rand_lib.o" ], @@ -9586,6 +11078,36 @@ our %unified_info = ( ] } }, + "crypto/slh_dsa" => { + "deps" => [ + "crypto/slh_dsa/libcrypto-lib-slh_adrs.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa_hash_ctx.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa_key.o", + "crypto/slh_dsa/libcrypto-lib-slh_fors.o", + "crypto/slh_dsa/libcrypto-lib-slh_hash.o", + "crypto/slh_dsa/libcrypto-lib-slh_hypertree.o", + "crypto/slh_dsa/libcrypto-lib-slh_params.o", + "crypto/slh_dsa/libcrypto-lib-slh_wots.o", + "crypto/slh_dsa/libcrypto-lib-slh_xmss.o", + "crypto/slh_dsa/libfips-lib-slh_adrs.o", + "crypto/slh_dsa/libfips-lib-slh_dsa.o", + "crypto/slh_dsa/libfips-lib-slh_dsa_hash_ctx.o", + "crypto/slh_dsa/libfips-lib-slh_dsa_key.o", + "crypto/slh_dsa/libfips-lib-slh_fors.o", + "crypto/slh_dsa/libfips-lib-slh_hash.o", + "crypto/slh_dsa/libfips-lib-slh_hypertree.o", + "crypto/slh_dsa/libfips-lib-slh_params.o", + "crypto/slh_dsa/libfips-lib-slh_wots.o", + "crypto/slh_dsa/libfips-lib-slh_xmss.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, "crypto/sm2" => { "deps" => [ "crypto/sm2/libcrypto-lib-sm2_crypt.o", @@ -9659,6 +11181,38 @@ our %unified_info = ( ] } }, + "crypto/thread" => { + "deps" => [ + "crypto/thread/libcrypto-lib-api.o", + "crypto/thread/libcrypto-lib-arch.o", + "crypto/thread/libcrypto-lib-internal.o", + "crypto/thread/libfips-lib-api.o", + "crypto/thread/libfips-lib-arch.o", + "crypto/thread/libfips-lib-internal.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, + "crypto/thread/arch" => { + "deps" => [ + "crypto/thread/arch/libcrypto-lib-thread_none.o", + "crypto/thread/arch/libcrypto-lib-thread_posix.o", + "crypto/thread/arch/libcrypto-lib-thread_win.o", + "crypto/thread/arch/libfips-lib-thread_none.o", + "crypto/thread/arch/libfips-lib-thread_posix.o", + "crypto/thread/arch/libfips-lib-thread_win.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, "crypto/ts" => { "deps" => [ "crypto/ts/libcrypto-lib-ts_asn1.o", @@ -9726,14 +11280,22 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-pcy_map.o", "crypto/x509/libcrypto-lib-pcy_node.o", "crypto/x509/libcrypto-lib-pcy_tree.o", + "crypto/x509/libcrypto-lib-t_acert.o", "crypto/x509/libcrypto-lib-t_crl.o", "crypto/x509/libcrypto-lib-t_req.o", "crypto/x509/libcrypto-lib-t_x509.o", + "crypto/x509/libcrypto-lib-v3_aaa.o", + "crypto/x509/libcrypto-lib-v3_ac_tgt.o", "crypto/x509/libcrypto-lib-v3_addr.o", "crypto/x509/libcrypto-lib-v3_admis.o", "crypto/x509/libcrypto-lib-v3_akeya.o", "crypto/x509/libcrypto-lib-v3_akid.o", "crypto/x509/libcrypto-lib-v3_asid.o", + "crypto/x509/libcrypto-lib-v3_attrdesc.o", + "crypto/x509/libcrypto-lib-v3_attrmap.o", + "crypto/x509/libcrypto-lib-v3_audit_id.o", + "crypto/x509/libcrypto-lib-v3_authattid.o", + "crypto/x509/libcrypto-lib-v3_battcons.o", "crypto/x509/libcrypto-lib-v3_bcons.o", "crypto/x509/libcrypto-lib-v3_bitst.o", "crypto/x509/libcrypto-lib-v3_conf.o", @@ -9742,12 +11304,17 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_enum.o", "crypto/x509/libcrypto-lib-v3_extku.o", "crypto/x509/libcrypto-lib-v3_genn.o", + "crypto/x509/libcrypto-lib-v3_group_ac.o", "crypto/x509/libcrypto-lib-v3_ia5.o", + "crypto/x509/libcrypto-lib-v3_ind_iss.o", "crypto/x509/libcrypto-lib-v3_info.o", "crypto/x509/libcrypto-lib-v3_int.o", + "crypto/x509/libcrypto-lib-v3_iobo.o", "crypto/x509/libcrypto-lib-v3_ist.o", "crypto/x509/libcrypto-lib-v3_lib.o", "crypto/x509/libcrypto-lib-v3_ncons.o", + "crypto/x509/libcrypto-lib-v3_no_ass.o", + "crypto/x509/libcrypto-lib-v3_no_rev_avail.o", "crypto/x509/libcrypto-lib-v3_pci.o", "crypto/x509/libcrypto-lib-v3_pcia.o", "crypto/x509/libcrypto-lib-v3_pcons.o", @@ -9755,13 +11322,20 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_pmaps.o", "crypto/x509/libcrypto-lib-v3_prn.o", "crypto/x509/libcrypto-lib-v3_purp.o", + "crypto/x509/libcrypto-lib-v3_rolespec.o", "crypto/x509/libcrypto-lib-v3_san.o", + "crypto/x509/libcrypto-lib-v3_sda.o", + "crypto/x509/libcrypto-lib-v3_single_use.o", "crypto/x509/libcrypto-lib-v3_skid.o", + "crypto/x509/libcrypto-lib-v3_soa_id.o", "crypto/x509/libcrypto-lib-v3_sxnet.o", + "crypto/x509/libcrypto-lib-v3_timespec.o", "crypto/x509/libcrypto-lib-v3_tlsf.o", + "crypto/x509/libcrypto-lib-v3_usernotice.o", "crypto/x509/libcrypto-lib-v3_utf8.o", "crypto/x509/libcrypto-lib-v3_utl.o", "crypto/x509/libcrypto-lib-v3err.o", + "crypto/x509/libcrypto-lib-x509_acert.o", "crypto/x509/libcrypto-lib-x509_att.o", "crypto/x509/libcrypto-lib-x509_cmp.o", "crypto/x509/libcrypto-lib-x509_d2.o", @@ -9779,6 +11353,7 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x509_v3.o", "crypto/x509/libcrypto-lib-x509_vfy.o", "crypto/x509/libcrypto-lib-x509_vpm.o", + "crypto/x509/libcrypto-lib-x509aset.o", "crypto/x509/libcrypto-lib-x509cset.o", "crypto/x509/libcrypto-lib-x509name.o", "crypto/x509/libcrypto-lib-x509rset.o", @@ -9788,6 +11363,7 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x_attrib.o", "crypto/x509/libcrypto-lib-x_crl.o", "crypto/x509/libcrypto-lib-x_exten.o", + "crypto/x509/libcrypto-lib-x_ietfatt.o", "crypto/x509/libcrypto-lib-x_name.o", "crypto/x509/libcrypto-lib-x_pubkey.o", "crypto/x509/libcrypto-lib-x_req.o", @@ -9815,6 +11391,7 @@ our %unified_info = ( "fuzz" => { "products" => { "bin" => [ + "fuzz/acert-test", "fuzz/asn1-test", "fuzz/asn1parse-test", "fuzz/bignum-test", @@ -9825,13 +11402,31 @@ our %unified_info = ( "fuzz/conf-test", "fuzz/crl-test", "fuzz/ct-test", + "fuzz/decoder-test", + "fuzz/dtlsclient-test", + "fuzz/dtlsserver-test", + "fuzz/hashtable-test", + "fuzz/ml-dsa-test", + "fuzz/ml-kem-test", + "fuzz/pem-test", + "fuzz/provider-test", + "fuzz/punycode-test", + "fuzz/quic-client-test", + "fuzz/quic-lcidm-test", + "fuzz/quic-rcidm-test", + "fuzz/quic-server-test", + "fuzz/quic-srtm-test", "fuzz/server-test", + "fuzz/slh-dsa-test", + "fuzz/smime-test", + "fuzz/v3name-test", "fuzz/x509-test" ] } }, "providers" => { "deps" => [ + "providers/endecode_test-bin-legacyprov.o", "providers/evp_extra_test-bin-legacyprov.o", "providers/libcrypto-lib-baseprov.o", "providers/libcrypto-lib-defltprov.o", @@ -9841,6 +11436,7 @@ our %unified_info = ( ], "products" => { "bin" => [ + "test/endecode_test", "test/evp_extra_test" ], "dso" => [ @@ -9892,8 +11488,12 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ec_sig.o", "providers/common/der/libcommon-lib-der_ecx_gen.o", "providers/common/der/libcommon-lib-der_ecx_key.o", + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o", + "providers/common/der/libcommon-lib-der_ml_dsa_key.o", "providers/common/der/libcommon-lib-der_rsa_gen.o", "providers/common/der/libcommon-lib-der_rsa_key.o", + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o", + "providers/common/der/libcommon-lib-der_slh_dsa_key.o", "providers/common/der/libcommon-lib-der_wrap_gen.o", "providers/common/der/libdefault-lib-der_rsa_sig.o", "providers/common/der/libdefault-lib-der_sm2_gen.o", @@ -9912,6 +11512,7 @@ our %unified_info = ( "providers/fips" => { "deps" => [ "providers/fips/fips-dso-fips_entry.o", + "providers/fips/libfips-lib-fipsindicator.o", "providers/fips/libfips-lib-fipsprov.o", "providers/fips/libfips-lib-self_test.o", "providers/fips/libfips-lib-self_test_kats.o" @@ -9955,6 +11556,9 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_aes_ccm_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_polyval.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_ocb.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_ocb_hw.o", @@ -9979,7 +11583,13 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_cts.o", "providers/implementations/ciphers/libdefault-lib-cipher_null.o", "providers/implementations/ciphers/libdefault-lib-cipher_sm4.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_sm4_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes_common.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes_default.o", @@ -10076,7 +11686,10 @@ our %unified_info = ( "providers/implementations/encode_decode/libdefault-lib-encode_key2blob.o", "providers/implementations/encode_decode/libdefault-lib-encode_key2ms.o", "providers/implementations/encode_decode/libdefault-lib-encode_key2text.o", - "providers/implementations/encode_decode/libdefault-lib-endecoder_common.o" + "providers/implementations/encode_decode/libdefault-lib-endecoder_common.o", + "providers/implementations/encode_decode/libdefault-lib-ml_common_codecs.o", + "providers/implementations/encode_decode/libdefault-lib-ml_dsa_codecs.o", + "providers/implementations/encode_decode/libdefault-lib-ml_kem_codecs.o" ], "products" => { "lib" => [ @@ -10104,7 +11717,9 @@ our %unified_info = ( }, "providers/implementations/kdfs" => { "deps" => [ + "providers/implementations/kdfs/libdefault-lib-argon2.o", "providers/implementations/kdfs/libdefault-lib-hkdf.o", + "providers/implementations/kdfs/libdefault-lib-hmacdrbg_kdf.o", "providers/implementations/kdfs/libdefault-lib-kbkdf.o", "providers/implementations/kdfs/libdefault-lib-krb5kdf.o", "providers/implementations/kdfs/libdefault-lib-pbkdf2.o", @@ -10123,7 +11738,8 @@ our %unified_info = ( "providers/implementations/kdfs/libfips-lib-sskdf.o", "providers/implementations/kdfs/libfips-lib-tls1_prf.o", "providers/implementations/kdfs/libfips-lib-x942kdf.o", - "providers/implementations/kdfs/liblegacy-lib-pbkdf1.o" + "providers/implementations/kdfs/liblegacy-lib-pbkdf1.o", + "providers/implementations/kdfs/liblegacy-lib-pvkkdf.o" ], "products" => { "lib" => [ @@ -10135,13 +11751,22 @@ our %unified_info = ( }, "providers/implementations/kem" => { "deps" => [ + "providers/implementations/kem/libdefault-lib-ec_kem.o", + "providers/implementations/kem/libdefault-lib-ecx_kem.o", + "providers/implementations/kem/libdefault-lib-kem_util.o", + "providers/implementations/kem/libdefault-lib-ml_kem_kem.o", + "providers/implementations/kem/libdefault-lib-mlx_kem.o", "providers/implementations/kem/libdefault-lib-rsa_kem.o", - "providers/implementations/kem/libfips-lib-rsa_kem.o" + "providers/implementations/kem/libfips-lib-ml_kem_kem.o", + "providers/implementations/kem/libfips-lib-mlx_kem.o", + "providers/implementations/kem/libfips-lib-rsa_kem.o", + "providers/implementations/kem/libtemplate-lib-template_kem.o" ], "products" => { "lib" => [ "providers/libdefault.a", - "providers/libfips.a" + "providers/libfips.a", + "providers/libtemplate.a" ] } }, @@ -10153,19 +11778,29 @@ our %unified_info = ( "providers/implementations/keymgmt/libdefault-lib-ecx_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-kdf_legacy_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-mac_legacy_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-ml_dsa_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-ml_kem_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-mlx_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-rsa_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-slh_dsa_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-dh_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-dsa_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-ec_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-ecx_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-kdf_legacy_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-mac_legacy_kmgmt.o", - "providers/implementations/keymgmt/libfips-lib-rsa_kmgmt.o" + "providers/implementations/keymgmt/libfips-lib-ml_dsa_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-ml_kem_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-mlx_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-rsa_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-slh_dsa_kmgmt.o", + "providers/implementations/keymgmt/libtemplate-lib-template_kmgmt.o" ], "products" => { "lib" => [ "providers/libdefault.a", - "providers/libfips.a" + "providers/libfips.a", + "providers/libtemplate.a" ] } }, @@ -10193,18 +11828,18 @@ our %unified_info = ( }, "providers/implementations/rands" => { "deps" => [ - "providers/implementations/rands/libdefault-lib-crngt.o", "providers/implementations/rands/libdefault-lib-drbg.o", "providers/implementations/rands/libdefault-lib-drbg_ctr.o", "providers/implementations/rands/libdefault-lib-drbg_hash.o", "providers/implementations/rands/libdefault-lib-drbg_hmac.o", "providers/implementations/rands/libdefault-lib-seed_src.o", + "providers/implementations/rands/libdefault-lib-seed_src_jitter.o", "providers/implementations/rands/libdefault-lib-test_rng.o", - "providers/implementations/rands/libfips-lib-crngt.o", "providers/implementations/rands/libfips-lib-drbg.o", "providers/implementations/rands/libfips-lib-drbg_ctr.o", "providers/implementations/rands/libfips-lib-drbg_hash.o", "providers/implementations/rands/libfips-lib-drbg_hmac.o", + "providers/implementations/rands/libfips-lib-fips_crng_test.o", "providers/implementations/rands/libfips-lib-test_rng.o" ], "products" => { @@ -10233,13 +11868,31 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-ecdsa_sig.o", "providers/implementations/signature/libdefault-lib-eddsa_sig.o", "providers/implementations/signature/libdefault-lib-mac_legacy_sig.o", + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o", "providers/implementations/signature/libdefault-lib-rsa_sig.o", + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o", "providers/implementations/signature/libdefault-lib-sm2_sig.o", "providers/implementations/signature/libfips-lib-dsa_sig.o", "providers/implementations/signature/libfips-lib-ecdsa_sig.o", "providers/implementations/signature/libfips-lib-eddsa_sig.o", "providers/implementations/signature/libfips-lib-mac_legacy_sig.o", - "providers/implementations/signature/libfips-lib-rsa_sig.o" + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o", + "providers/implementations/signature/libfips-lib-rsa_sig.o", + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o" + ], + "products" => { + "lib" => [ + "providers/libdefault.a", + "providers/libfips.a" + ] + } + }, + "providers/implementations/skeymgmt" => { + "deps" => [ + "providers/implementations/skeymgmt/libdefault-lib-aes_skmgmt.o", + "providers/implementations/skeymgmt/libdefault-lib-generic.o", + "providers/implementations/skeymgmt/libfips-lib-aes_skmgmt.o", + "providers/implementations/skeymgmt/libfips-lib-generic.o" ], "products" => { "lib" => [ @@ -10267,14 +11920,15 @@ our %unified_info = ( "ssl/libssl-lib-d1_srtp.o", "ssl/libssl-lib-methods.o", "ssl/libssl-lib-pqueue.o", + "ssl/libssl-lib-priority_queue.o", "ssl/libssl-lib-s3_enc.o", "ssl/libssl-lib-s3_lib.o", "ssl/libssl-lib-s3_msg.o", "ssl/libssl-lib-ssl_asn1.o", "ssl/libssl-lib-ssl_cert.o", + "ssl/libssl-lib-ssl_cert_comp.o", "ssl/libssl-lib-ssl_ciph.o", "ssl/libssl-lib-ssl_conf.o", - "ssl/libssl-lib-ssl_err.o", "ssl/libssl-lib-ssl_err_legacy.o", "ssl/libssl-lib-ssl_init.o", "ssl/libssl-lib-ssl_lib.o", @@ -10290,32 +11944,107 @@ our %unified_info = ( "ssl/libssl-lib-t1_trce.o", "ssl/libssl-lib-tls13_enc.o", "ssl/libssl-lib-tls_depr.o", - "ssl/libssl-lib-tls_srp.o", - "ssl/libdefault-lib-s3_cbc.o", - "ssl/libfips-lib-s3_cbc.o" + "ssl/libssl-lib-tls_srp.o" ], "products" => { "lib" => [ - "libssl", - "providers/libdefault.a", - "providers/libfips.a" + "libssl" + ] + } + }, + "ssl/quic" => { + "deps" => [ + "ssl/quic/libssl-lib-cc_newreno.o", + "ssl/quic/libssl-lib-json_enc.o", + "ssl/quic/libssl-lib-qlog.o", + "ssl/quic/libssl-lib-qlog_event_helpers.o", + "ssl/quic/libssl-lib-quic_ackm.o", + "ssl/quic/libssl-lib-quic_cfq.o", + "ssl/quic/libssl-lib-quic_channel.o", + "ssl/quic/libssl-lib-quic_demux.o", + "ssl/quic/libssl-lib-quic_engine.o", + "ssl/quic/libssl-lib-quic_fc.o", + "ssl/quic/libssl-lib-quic_fifd.o", + "ssl/quic/libssl-lib-quic_impl.o", + "ssl/quic/libssl-lib-quic_lcidm.o", + "ssl/quic/libssl-lib-quic_method.o", + "ssl/quic/libssl-lib-quic_obj.o", + "ssl/quic/libssl-lib-quic_port.o", + "ssl/quic/libssl-lib-quic_rcidm.o", + "ssl/quic/libssl-lib-quic_reactor.o", + "ssl/quic/libssl-lib-quic_reactor_wait_ctx.o", + "ssl/quic/libssl-lib-quic_record_rx.o", + "ssl/quic/libssl-lib-quic_record_shared.o", + "ssl/quic/libssl-lib-quic_record_tx.o", + "ssl/quic/libssl-lib-quic_record_util.o", + "ssl/quic/libssl-lib-quic_rstream.o", + "ssl/quic/libssl-lib-quic_rx_depack.o", + "ssl/quic/libssl-lib-quic_sf_list.o", + "ssl/quic/libssl-lib-quic_srt_gen.o", + "ssl/quic/libssl-lib-quic_srtm.o", + "ssl/quic/libssl-lib-quic_sstream.o", + "ssl/quic/libssl-lib-quic_statm.o", + "ssl/quic/libssl-lib-quic_stream_map.o", + "ssl/quic/libssl-lib-quic_thread_assist.o", + "ssl/quic/libssl-lib-quic_tls.o", + "ssl/quic/libssl-lib-quic_tls_api.o", + "ssl/quic/libssl-lib-quic_trace.o", + "ssl/quic/libssl-lib-quic_tserver.o", + "ssl/quic/libssl-lib-quic_txp.o", + "ssl/quic/libssl-lib-quic_txpim.o", + "ssl/quic/libssl-lib-quic_types.o", + "ssl/quic/libssl-lib-quic_wire.o", + "ssl/quic/libssl-lib-quic_wire_pkt.o", + "ssl/quic/libssl-lib-uint_set.o" + ], + "products" => { + "lib" => [ + "libssl" ] } }, "ssl/record" => { "deps" => [ - "ssl/record/libssl-lib-dtls1_bitmap.o", "ssl/record/libssl-lib-rec_layer_d1.o", - "ssl/record/libssl-lib-rec_layer_s3.o", - "ssl/record/libssl-lib-ssl3_buffer.o", - "ssl/record/libssl-lib-ssl3_record.o", - "ssl/record/libssl-lib-ssl3_record_tls13.o", - "ssl/record/libcommon-lib-tls_pad.o" + "ssl/record/libssl-lib-rec_layer_s3.o" + ], + "products" => { + "lib" => [ + "libssl" + ] + } + }, + "ssl/record/methods" => { + "deps" => [ + "ssl/record/methods/libssl-lib-dtls_meth.o", + "ssl/record/methods/libssl-lib-ssl3_meth.o", + "ssl/record/methods/libssl-lib-tls13_meth.o", + "ssl/record/methods/libssl-lib-tls1_meth.o", + "ssl/record/methods/libssl-lib-tls_common.o", + "ssl/record/methods/libssl-lib-tls_multib.o", + "ssl/record/methods/libssl-lib-tlsany_meth.o", + "ssl/record/methods/libcommon-lib-tls_pad.o", + "ssl/record/methods/libdefault-lib-ssl3_cbc.o", + "ssl/record/methods/libfips-lib-ssl3_cbc.o" ], "products" => { "lib" => [ "libssl", - "providers/libcommon.a" + "providers/libcommon.a", + "providers/libdefault.a", + "providers/libfips.a" + ] + } + }, + "ssl/rio" => { + "deps" => [ + "ssl/rio/libssl-lib-poll_builder.o", + "ssl/rio/libssl-lib-poll_immediate.o", + "ssl/rio/libssl-lib-rio_notifier.o" + ], + "products" => { + "lib" => [ + "libssl" ] } }, @@ -10353,9 +12082,40 @@ our %unified_info = ( "test/helpers/dtlstest-bin-ssltestlib.o", "test/helpers/endecode_test-bin-predefined_dhparams.o", "test/helpers/fatalerrtest-bin-ssltestlib.o", + "test/helpers/json_test-bin-noisydgrambio.o", + "test/helpers/json_test-bin-pktsplitbio.o", + "test/helpers/json_test-bin-quictestlib.o", + "test/helpers/json_test-bin-ssltestlib.o", + "test/helpers/pkcs12_api_test-bin-pkcs12.o", "test/helpers/pkcs12_format_test-bin-pkcs12.o", + "test/helpers/quic_multistream_test-bin-noisydgrambio.o", + "test/helpers/quic_multistream_test-bin-pktsplitbio.o", + "test/helpers/quic_multistream_test-bin-quictestlib.o", + "test/helpers/quic_multistream_test-bin-ssltestlib.o", + "test/helpers/quic_newcid_test-bin-noisydgrambio.o", + "test/helpers/quic_newcid_test-bin-pktsplitbio.o", + "test/helpers/quic_newcid_test-bin-quictestlib.o", + "test/helpers/quic_newcid_test-bin-ssltestlib.o", + "test/helpers/quic_radix_test-bin-noisydgrambio.o", + "test/helpers/quic_radix_test-bin-pktsplitbio.o", + "test/helpers/quic_radix_test-bin-quictestlib.o", + "test/helpers/quic_radix_test-bin-ssltestlib.o", + "test/helpers/quic_srt_gen_test-bin-noisydgrambio.o", + "test/helpers/quic_srt_gen_test-bin-pktsplitbio.o", + "test/helpers/quic_srt_gen_test-bin-quictestlib.o", + "test/helpers/quic_srt_gen_test-bin-ssltestlib.o", + "test/helpers/quicapitest-bin-noisydgrambio.o", + "test/helpers/quicapitest-bin-pktsplitbio.o", + "test/helpers/quicapitest-bin-quictestlib.o", + "test/helpers/quicapitest-bin-ssltestlib.o", + "test/helpers/quicfaultstest-bin-noisydgrambio.o", + "test/helpers/quicfaultstest-bin-pktsplitbio.o", + "test/helpers/quicfaultstest-bin-quictestlib.o", + "test/helpers/quicfaultstest-bin-ssltestlib.o", "test/helpers/recordlentest-bin-ssltestlib.o", + "test/helpers/rpktest-bin-ssltestlib.o", "test/helpers/servername_test-bin-ssltestlib.o", + "test/helpers/ssl_handshake_rtt_test-bin-ssltestlib.o", "test/helpers/ssl_old_test-bin-predefined_dhparams.o", "test/helpers/ssl_test-bin-handshake.o", "test/helpers/ssl_test-bin-handshake_srp.o", @@ -10364,7 +12124,8 @@ our %unified_info = ( "test/helpers/sslapitest-bin-ssltestlib.o", "test/helpers/sslbuffertest-bin-ssltestlib.o", "test/helpers/sslcorrupttest-bin-ssltestlib.o", - "test/helpers/tls13ccstest-bin-ssltestlib.o" + "test/helpers/tls13ccstest-bin-ssltestlib.o", + "test/helpers/tls13groupselection_test-bin-ssltestlib.o" ], "products" => { "bin" => [ @@ -10382,16 +12143,37 @@ our %unified_info = ( "test/dtlstest", "test/endecode_test", "test/fatalerrtest", + "test/json_test", + "test/pkcs12_api_test", "test/pkcs12_format_test", + "test/quic_multistream_test", + "test/quic_newcid_test", + "test/quic_radix_test", + "test/quic_srt_gen_test", + "test/quicapitest", + "test/quicfaultstest", "test/recordlentest", + "test/rpktest", "test/servername_test", + "test/ssl_handshake_rtt_test", "test/ssl_old_test", "test/ssl_test", "test/ssl_test_ctx_test", "test/sslapitest", "test/sslbuffertest", "test/sslcorrupttest", - "test/tls13ccstest" + "test/tls13ccstest", + "test/tls13groupselection_test" + ] + } + }, + "test/radix" => { + "deps" => [ + "test/radix/quic_radix_test-bin-quic_radix.o" + ], + "products" => { + "bin" => [ + "test/quic_radix_test" ] } }, @@ -10403,6 +12185,7 @@ our %unified_info = ( "test/testutil/libtestutil-lib-driver.o", "test/testutil/libtestutil-lib-fake_random.o", "test/testutil/libtestutil-lib-format_output.o", + "test/testutil/libtestutil-lib-helper.o", "test/testutil/libtestutil-lib-load.o", "test/testutil/libtestutil-lib-main.o", "test/testutil/libtestutil-lib-options.o", @@ -10438,6 +12221,12 @@ our %unified_info = ( } }, "generate" => { + "OpenSSLConfig.cmake" => [ + "exporters/cmake/OpenSSLConfig.cmake.in" + ], + "OpenSSLConfigVersion.cmake" => [ + "exporters/cmake/OpenSSLConfigVersion.cmake.in" + ], "apps/progs.c" => [ "apps/progs.pl", "\"-C\"", @@ -10448,6 +12237,19 @@ our %unified_info = ( "\"-H\"", "\$(APPS_OPENSSL)" ], + "builddata.pm" => [ + "util/mkinstallvars.pl", + "PREFIX=.", + "BINDIR=apps", + "APPLINKDIR=ms", + "LIBDIR=", + "INCLUDEDIR=include", + "\"INCLUDEDIR=\$(SRCDIR)/include\"", + "ENGINESDIR=engines", + "MODULESDIR=providers", + "\"VERSION=\$(VERSION)\"", + "\"LDLIBS=\$(LIB_EX_LIBS)\"" + ], "crypto/aes/aes-586.S" => [ "crypto/aes/asm/aes-586.pl" ], @@ -10469,6 +12271,24 @@ our %unified_info = ( "crypto/aes/aes-ppc.s" => [ "crypto/aes/asm/aes-ppc.pl" ], + "crypto/aes/aes-riscv32-zkn.s" => [ + "crypto/aes/asm/aes-riscv32-zkn.pl" + ], + "crypto/aes/aes-riscv64-zkn.s" => [ + "crypto/aes/asm/aes-riscv64-zkn.pl" + ], + "crypto/aes/aes-riscv64-zvbb-zvkg-zvkned.s" => [ + "crypto/aes/asm/aes-riscv64-zvbb-zvkg-zvkned.pl" + ], + "crypto/aes/aes-riscv64-zvkb-zvkned.s" => [ + "crypto/aes/asm/aes-riscv64-zvkb-zvkned.pl" + ], + "crypto/aes/aes-riscv64-zvkned.s" => [ + "crypto/aes/asm/aes-riscv64-zvkned.pl" + ], + "crypto/aes/aes-riscv64.s" => [ + "crypto/aes/asm/aes-riscv64.pl" + ], "crypto/aes/aes-s390x.S" => [ "crypto/aes/asm/aes-s390x.pl" ], @@ -10496,6 +12316,9 @@ our %unified_info = ( "crypto/aes/aesni-x86_64.s" => [ "crypto/aes/asm/aesni-x86_64.pl" ], + "crypto/aes/aesni-xts-avx512.s" => [ + "crypto/aes/asm/aesni-xts-avx512.pl" + ], "crypto/aes/aesp8-ppc.s" => [ "crypto/aes/asm/aesp8-ppc.pl" ], @@ -10508,12 +12331,18 @@ our %unified_info = ( "crypto/aes/bsaes-armv7.S" => [ "crypto/aes/asm/bsaes-armv7.pl" ], + "crypto/aes/bsaes-armv8.S" => [ + "crypto/aes/asm/bsaes-armv8.pl" + ], "crypto/aes/bsaes-x86_64.s" => [ "crypto/aes/asm/bsaes-x86_64.pl" ], "crypto/aes/vpaes-armv8.S" => [ "crypto/aes/asm/vpaes-armv8.pl" ], + "crypto/aes/vpaes-loongarch64.S" => [ + "crypto/aes/asm/vpaes-loongarch64.pl" + ], "crypto/aes/vpaes-ppc.s" => [ "crypto/aes/asm/vpaes-ppc.pl" ], @@ -10574,15 +12403,33 @@ our %unified_info = ( "crypto/bn/ppc-mont.s" => [ "crypto/bn/asm/ppc-mont.pl" ], + "crypto/bn/ppc64-mont-fixed.s" => [ + "crypto/bn/asm/ppc64-mont-fixed.pl" + ], "crypto/bn/ppc64-mont.s" => [ "crypto/bn/asm/ppc64-mont.pl" ], + "crypto/bn/rsaz-2k-avx512.s" => [ + "crypto/bn/asm/rsaz-2k-avx512.pl" + ], + "crypto/bn/rsaz-2k-avxifma.s" => [ + "crypto/bn/asm/rsaz-2k-avxifma.pl" + ], + "crypto/bn/rsaz-3k-avx512.s" => [ + "crypto/bn/asm/rsaz-3k-avx512.pl" + ], + "crypto/bn/rsaz-3k-avxifma.s" => [ + "crypto/bn/asm/rsaz-3k-avxifma.pl" + ], + "crypto/bn/rsaz-4k-avx512.s" => [ + "crypto/bn/asm/rsaz-4k-avx512.pl" + ], + "crypto/bn/rsaz-4k-avxifma.s" => [ + "crypto/bn/asm/rsaz-4k-avxifma.pl" + ], "crypto/bn/rsaz-avx2.s" => [ "crypto/bn/asm/rsaz-avx2.pl" ], - "crypto/bn/rsaz-avx512.s" => [ - "crypto/bn/asm/rsaz-avx512.pl" - ], "crypto/bn/rsaz-x86_64.s" => [ "crypto/bn/asm/rsaz-x86_64.pl" ], @@ -10644,6 +12491,9 @@ our %unified_info = ( "crypto/chacha/chacha-armv4.S" => [ "crypto/chacha/asm/chacha-armv4.pl" ], + "crypto/chacha/chacha-armv8-sve.S" => [ + "crypto/chacha/asm/chacha-armv8-sve.pl" + ], "crypto/chacha/chacha-armv8.S" => [ "crypto/chacha/asm/chacha-armv8.pl" ], @@ -10656,9 +12506,19 @@ our %unified_info = ( "crypto/chacha/chacha-ia64.s" => [ "crypto/chacha/chacha-ia64.S" ], + "crypto/chacha/chacha-loongarch64.S" => [ + "crypto/chacha/asm/chacha-loongarch64.pl" + ], "crypto/chacha/chacha-ppc.s" => [ "crypto/chacha/asm/chacha-ppc.pl" ], + "crypto/chacha/chacha-riscv64-v-zbb-zvkb.s" => [ + "crypto/chacha/asm/chacha-riscv64-v-zbb.pl", + "zvkb" + ], + "crypto/chacha/chacha-riscv64-v-zbb.s" => [ + "crypto/chacha/asm/chacha-riscv64-v-zbb.pl" + ], "crypto/chacha/chacha-s390x.S" => [ "crypto/chacha/asm/chacha-s390x.pl" ], @@ -10668,6 +12528,9 @@ our %unified_info = ( "crypto/chacha/chacha-x86_64.s" => [ "crypto/chacha/asm/chacha-x86_64.pl" ], + "crypto/chacha/chachap10-ppc.s" => [ + "crypto/chacha/asm/chachap10-ppc.pl" + ], "crypto/des/crypt586.S" => [ "crypto/des/asm/crypt586.pl" ], @@ -10680,6 +12543,9 @@ our %unified_info = ( "crypto/des/dest4-sparcv9.S" => [ "crypto/des/asm/dest4-sparcv9.pl" ], + "crypto/ec/ecp_nistp384-ppc64.s" => [ + "crypto/ec/asm/ecp_nistp384-ppc64.pl" + ], "crypto/ec/ecp_nistp521-ppc64.s" => [ "crypto/ec/asm/ecp_nistp521-ppc64.pl" ], @@ -10704,6 +12570,9 @@ our %unified_info = ( "crypto/ec/ecp_nistz256-x86_64.s" => [ "crypto/ec/asm/ecp_nistz256-x86_64.pl" ], + "crypto/ec/ecp_sm2p256-armv8.S" => [ + "crypto/ec/asm/ecp_sm2p256-armv8.pl" + ], "crypto/ec/x25519-ppc64.s" => [ "crypto/ec/asm/x25519-ppc64.pl" ], @@ -10713,18 +12582,39 @@ our %unified_info = ( "crypto/ia64cpuid.s" => [ "crypto/ia64cpuid.S" ], + "crypto/loongarch64cpuid.s" => [ + "crypto/loongarch64cpuid.pl" + ], "crypto/md5/md5-586.S" => [ "crypto/md5/asm/md5-586.pl" ], + "crypto/md5/md5-aarch64.S" => [ + "crypto/md5/asm/md5-aarch64.pl" + ], + "crypto/md5/md5-loongarch64.S" => [ + "crypto/md5/asm/md5-loongarch64.pl" + ], "crypto/md5/md5-sparcv9.S" => [ "crypto/md5/asm/md5-sparcv9.pl" ], "crypto/md5/md5-x86_64.s" => [ "crypto/md5/asm/md5-x86_64.pl" ], + "crypto/modes/aes-gcm-armv8-unroll8_64.S" => [ + "crypto/modes/asm/aes-gcm-armv8-unroll8_64.pl" + ], "crypto/modes/aes-gcm-armv8_64.S" => [ "crypto/modes/asm/aes-gcm-armv8_64.pl" ], + "crypto/modes/aes-gcm-avx512.s" => [ + "crypto/modes/asm/aes-gcm-avx512.pl" + ], + "crypto/modes/aes-gcm-ppc.s" => [ + "crypto/modes/asm/aes-gcm-ppc.pl" + ], + "crypto/modes/aes-gcm-riscv64-zvkb-zvkg-zvkned.s" => [ + "crypto/modes/asm/aes-gcm-riscv64-zvkb-zvkg-zvkned.pl" + ], "crypto/modes/aesni-gcm-x86_64.s" => [ "crypto/modes/asm/aesni-gcm-x86_64.pl" ], @@ -10743,6 +12633,15 @@ our %unified_info = ( "crypto/modes/ghash-parisc.s" => [ "crypto/modes/asm/ghash-parisc.pl" ], + "crypto/modes/ghash-riscv64-zvkb-zvbc.s" => [ + "crypto/modes/asm/ghash-riscv64-zvkb-zvbc.pl" + ], + "crypto/modes/ghash-riscv64-zvkg.s" => [ + "crypto/modes/asm/ghash-riscv64-zvkg.pl" + ], + "crypto/modes/ghash-riscv64.s" => [ + "crypto/modes/asm/ghash-riscv64.pl" + ], "crypto/modes/ghash-s390x.S" => [ "crypto/modes/asm/ghash-s390x.pl" ], @@ -10761,6 +12660,9 @@ our %unified_info = ( "crypto/modes/ghashv8-armx.S" => [ "crypto/modes/asm/ghashv8-armx.pl" ], + "crypto/params_idx.c" => [ + "crypto/params_idx.c.in" + ], "crypto/pariscid.s" => [ "crypto/pariscid.pl" ], @@ -10821,6 +12723,12 @@ our %unified_info = ( "crypto/ripemd/rmd-586.S" => [ "crypto/ripemd/asm/rmd-586.pl" ], + "crypto/riscv32cpuid.s" => [ + "crypto/riscv32cpuid.pl" + ], + "crypto/riscv64cpuid.s" => [ + "crypto/riscv64cpuid.pl" + ], "crypto/s390xcpuid.S" => [ "crypto/s390xcpuid.pl" ], @@ -10929,6 +12837,9 @@ our %unified_info = ( "crypto/sha/sha256-ppc.s" => [ "crypto/sha/asm/sha512-ppc.pl" ], + "crypto/sha/sha256-riscv64-zvkb-zvknha_or_zvknhb.S" => [ + "crypto/sha/asm/sha256-riscv64-zvkb-zvknha_or_zvknhb.pl" + ], "crypto/sha/sha256-s390x.S" => [ "crypto/sha/asm/sha512-s390x.pl" ], @@ -10965,6 +12876,9 @@ our %unified_info = ( "crypto/sha/sha512-ppc.s" => [ "crypto/sha/asm/sha512-ppc.pl" ], + "crypto/sha/sha512-riscv64-zvkb-zvknhb.S" => [ + "crypto/sha/asm/sha512-riscv64-zvkb-zvknhb.pl" + ], "crypto/sha/sha512-s390x.S" => [ "crypto/sha/asm/sha512-s390x.pl" ], @@ -10977,6 +12891,24 @@ our %unified_info = ( "crypto/sha/sha512p8-ppc.s" => [ "crypto/sha/asm/sha512p8-ppc.pl" ], + "crypto/sm3/sm3-armv8.S" => [ + "crypto/sm3/asm/sm3-armv8.pl" + ], + "crypto/sm3/sm3-riscv64-zvksh.S" => [ + "crypto/sm3/asm/sm3-riscv64-zvksh.pl" + ], + "crypto/sm4/sm4-armv8.S" => [ + "crypto/sm4/asm/sm4-armv8.pl" + ], + "crypto/sm4/sm4-riscv64-zvksed.s" => [ + "crypto/sm4/asm/sm4-riscv64-zvksed.pl" + ], + "crypto/sm4/vpsm4-armv8.S" => [ + "crypto/sm4/asm/vpsm4-armv8.pl" + ], + "crypto/sm4/vpsm4_ex-armv8.S" => [ + "crypto/sm4/asm/vpsm4_ex-armv8.pl" + ], "crypto/uplink-ia64.s" => [ "ms/uplink-ia64.pl" ], @@ -11142,6 +13074,9 @@ our %unified_info = ( "doc/html/man1/openssl-sess_id.html" => [ "doc/man1/openssl-sess_id.pod" ], + "doc/html/man1/openssl-skeyutl.html" => [ + "doc/man1/openssl-skeyutl.pod" + ], "doc/html/man1/openssl-smime.html" => [ "doc/man1/openssl-smime.pod" ], @@ -11283,6 +13218,9 @@ our %unified_info = ( "doc/html/man3/BIO_get_ex_new_index.html" => [ "doc/man3/BIO_get_ex_new_index.pod" ], + "doc/html/man3/BIO_get_rpoll_descriptor.html" => [ + "doc/man3/BIO_get_rpoll_descriptor.pod" + ], "doc/html/man3/BIO_meth_new.html" => [ "doc/man3/BIO_meth_new.pod" ], @@ -11319,6 +13257,9 @@ our %unified_info = ( "doc/html/man3/BIO_s_datagram.html" => [ "doc/man3/BIO_s_datagram.pod" ], + "doc/html/man3/BIO_s_dgram_pair.html" => [ + "doc/man3/BIO_s_dgram_pair.pod" + ], "doc/html/man3/BIO_s_fd.html" => [ "doc/man3/BIO_s_fd.pod" ], @@ -11334,6 +13275,9 @@ our %unified_info = ( "doc/html/man3/BIO_s_socket.html" => [ "doc/man3/BIO_s_socket.pod" ], + "doc/html/man3/BIO_sendmmsg.html" => [ + "doc/man3/BIO_sendmmsg.pod" + ], "doc/html/man3/BIO_set_callback.html" => [ "doc/man3/BIO_set_callback.pod" ], @@ -11406,6 +13350,9 @@ our %unified_info = ( "doc/html/man3/BUF_MEM_new.html" => [ "doc/man3/BUF_MEM_new.pod" ], + "doc/html/man3/CMAC_CTX.html" => [ + "doc/man3/CMAC_CTX.pod" + ], "doc/html/man3/CMS_EncryptedData_decrypt.html" => [ "doc/man3/CMS_EncryptedData_decrypt.pod" ], @@ -11472,6 +13419,9 @@ our %unified_info = ( "doc/html/man3/CMS_verify_receipt.html" => [ "doc/man3/CMS_verify_receipt.pod" ], + "doc/html/man3/COMP_CTX_new.html" => [ + "doc/man3/COMP_CTX_new.pod" + ], "doc/html/man3/CONF_modules_free.html" => [ "doc/man3/CONF_modules_free.pod" ], @@ -11571,6 +13521,12 @@ our %unified_info = ( "doc/html/man3/DTLS_set_timer_cb.html" => [ "doc/man3/DTLS_set_timer_cb.pod" ], + "doc/html/man3/DTLSv1_get_timeout.html" => [ + "doc/man3/DTLSv1_get_timeout.pod" + ], + "doc/html/man3/DTLSv1_handle_timeout.html" => [ + "doc/man3/DTLSv1_handle_timeout.pod" + ], "doc/html/man3/DTLSv1_listen.html" => [ "doc/man3/DTLSv1_listen.pod" ], @@ -11709,6 +13665,9 @@ our %unified_info = ( "doc/html/man3/EVP_PKEY_CTX_get0_pkey.html" => [ "doc/man3/EVP_PKEY_CTX_get0_pkey.pod" ], + "doc/html/man3/EVP_PKEY_CTX_get_algor.html" => [ + "doc/man3/EVP_PKEY_CTX_get_algor.pod" + ], "doc/html/man3/EVP_PKEY_CTX_new.html" => [ "doc/man3/EVP_PKEY_CTX_new.pod" ], @@ -11826,6 +13785,12 @@ our %unified_info = ( "doc/html/man3/EVP_SIGNATURE.html" => [ "doc/man3/EVP_SIGNATURE.pod" ], + "doc/html/man3/EVP_SKEY.html" => [ + "doc/man3/EVP_SKEY.pod" + ], + "doc/html/man3/EVP_SKEYMGMT.html" => [ + "doc/man3/EVP_SKEYMGMT.pod" + ], "doc/html/man3/EVP_SealInit.html" => [ "doc/man3/EVP_SealInit.pod" ], @@ -11913,6 +13878,9 @@ our %unified_info = ( "doc/html/man3/EVP_whirlpool.html" => [ "doc/man3/EVP_whirlpool.pod" ], + "doc/html/man3/GENERAL_NAME.html" => [ + "doc/man3/GENERAL_NAME.pod" + ], "doc/html/man3/HMAC.html" => [ "doc/man3/HMAC.pod" ], @@ -11985,9 +13953,15 @@ our %unified_info = ( "doc/html/man3/OPENSSL_load_builtin_modules.html" => [ "doc/man3/OPENSSL_load_builtin_modules.pod" ], + "doc/html/man3/OPENSSL_load_u16_le.html" => [ + "doc/man3/OPENSSL_load_u16_le.pod" + ], "doc/html/man3/OPENSSL_malloc.html" => [ "doc/man3/OPENSSL_malloc.pod" ], + "doc/html/man3/OPENSSL_riscvcap.html" => [ + "doc/man3/OPENSSL_riscvcap.pod" + ], "doc/html/man3/OPENSSL_s390xcap.html" => [ "doc/man3/OPENSSL_s390xcap.pod" ], @@ -12003,12 +13977,18 @@ our %unified_info = ( "doc/html/man3/OSSL_CALLBACK.html" => [ "doc/man3/OSSL_CALLBACK.pod" ], + "doc/html/man3/OSSL_CMP_ATAV_set0.html" => [ + "doc/man3/OSSL_CMP_ATAV_set0.pod" + ], "doc/html/man3/OSSL_CMP_CTX_new.html" => [ "doc/man3/OSSL_CMP_CTX_new.pod" ], "doc/html/man3/OSSL_CMP_HDR_get0_transactionID.html" => [ "doc/man3/OSSL_CMP_HDR_get0_transactionID.pod" ], + "doc/html/man3/OSSL_CMP_ITAV_new_caCerts.html" => [ + "doc/man3/OSSL_CMP_ITAV_new_caCerts.pod" + ], "doc/html/man3/OSSL_CMP_ITAV_set0.html" => [ "doc/man3/OSSL_CMP_ITAV_set0.pod" ], @@ -12078,9 +14058,18 @@ our %unified_info = ( "doc/html/man3/OSSL_ENCODER_to_bio.html" => [ "doc/man3/OSSL_ENCODER_to_bio.pod" ], + "doc/html/man3/OSSL_ERR_STATE_save.html" => [ + "doc/man3/OSSL_ERR_STATE_save.pod" + ], "doc/html/man3/OSSL_ESS_check_signing_certs.html" => [ "doc/man3/OSSL_ESS_check_signing_certs.pod" ], + "doc/html/man3/OSSL_GENERAL_NAMES_print.html" => [ + "doc/man3/OSSL_GENERAL_NAMES_print.pod" + ], + "doc/html/man3/OSSL_HPKE_CTX_new.html" => [ + "doc/man3/OSSL_HPKE_CTX_new.pod" + ], "doc/html/man3/OSSL_HTTP_REQ_CTX.html" => [ "doc/man3/OSSL_HTTP_REQ_CTX.pod" ], @@ -12090,12 +14079,24 @@ our %unified_info = ( "doc/html/man3/OSSL_HTTP_transfer.html" => [ "doc/man3/OSSL_HTTP_transfer.pod" ], + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX.html" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX.pod" + ], + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX_print.html" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX_print.pod" + ], + "doc/html/man3/OSSL_INDICATOR_set_callback.html" => [ + "doc/man3/OSSL_INDICATOR_set_callback.pod" + ], "doc/html/man3/OSSL_ITEM.html" => [ "doc/man3/OSSL_ITEM.pod" ], "doc/html/man3/OSSL_LIB_CTX.html" => [ "doc/man3/OSSL_LIB_CTX.pod" ], + "doc/html/man3/OSSL_LIB_CTX_set_conf_diagnostics.html" => [ + "doc/man3/OSSL_LIB_CTX_set_conf_diagnostics.pod" + ], "doc/html/man3/OSSL_PARAM.html" => [ "doc/man3/OSSL_PARAM.pod" ], @@ -12111,9 +14112,15 @@ our %unified_info = ( "doc/html/man3/OSSL_PARAM_int.html" => [ "doc/man3/OSSL_PARAM_int.pod" ], + "doc/html/man3/OSSL_PARAM_print_to_bio.html" => [ + "doc/man3/OSSL_PARAM_print_to_bio.pod" + ], "doc/html/man3/OSSL_PROVIDER.html" => [ "doc/man3/OSSL_PROVIDER.pod" ], + "doc/html/man3/OSSL_QUIC_client_method.html" => [ + "doc/man3/OSSL_QUIC_client_method.pod" + ], "doc/html/man3/OSSL_SELF_TEST_new.html" => [ "doc/man3/OSSL_SELF_TEST_new.pod" ], @@ -12138,6 +14145,9 @@ our %unified_info = ( "doc/html/man3/OSSL_STORE_open.html" => [ "doc/man3/OSSL_STORE_open.pod" ], + "doc/html/man3/OSSL_sleep.html" => [ + "doc/man3/OSSL_sleep.pod" + ], "doc/html/man3/OSSL_trace_enabled.html" => [ "doc/man3/OSSL_trace_enabled.pod" ], @@ -12153,6 +14163,9 @@ our %unified_info = ( "doc/html/man3/OpenSSL_version.html" => [ "doc/man3/OpenSSL_version.pod" ], + "doc/html/man3/PBMAC1_get1_pbkdf2_param.html" => [ + "doc/man3/PBMAC1_get1_pbkdf2_param.pod" + ], "doc/html/man3/PEM_X509_INFO_read_bio_ex.html" => [ "doc/man3/PEM_X509_INFO_read_bio_ex.pod" ], @@ -12189,6 +14202,9 @@ our %unified_info = ( "doc/html/man3/PKCS12_SAFEBAG_get1_cert.html" => [ "doc/man3/PKCS12_SAFEBAG_get1_cert.pod" ], + "doc/html/man3/PKCS12_SAFEBAG_set0_attrs.html" => [ + "doc/man3/PKCS12_SAFEBAG_set0_attrs.pod" + ], "doc/html/man3/PKCS12_add1_attr_by_NID.html" => [ "doc/man3/PKCS12_add1_attr_by_NID.pod" ], @@ -12462,6 +14478,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set0_CA_list.html" => [ "doc/man3/SSL_CTX_set0_CA_list.pod" ], + "doc/html/man3/SSL_CTX_set1_cert_comp_preference.html" => [ + "doc/man3/SSL_CTX_set1_cert_comp_preference.pod" + ], "doc/html/man3/SSL_CTX_set1_curves.html" => [ "doc/man3/SSL_CTX_set1_curves.pod" ], @@ -12501,6 +14520,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_default_passwd_cb.html" => [ "doc/man3/SSL_CTX_set_default_passwd_cb.pod" ], + "doc/html/man3/SSL_CTX_set_domain_flags.html" => [ + "doc/man3/SSL_CTX_set_domain_flags.pod" + ], "doc/html/man3/SSL_CTX_set_generate_session_id.html" => [ "doc/man3/SSL_CTX_set_generate_session_id.pod" ], @@ -12522,6 +14544,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_msg_callback.html" => [ "doc/man3/SSL_CTX_set_msg_callback.pod" ], + "doc/html/man3/SSL_CTX_set_new_pending_conn_cb.html" => [ + "doc/man3/SSL_CTX_set_new_pending_conn_cb.pod" + ], "doc/html/man3/SSL_CTX_set_num_tickets.html" => [ "doc/man3/SSL_CTX_set_num_tickets.pod" ], @@ -12636,6 +14661,9 @@ our %unified_info = ( "doc/html/man3/SSL_accept.html" => [ "doc/man3/SSL_accept.pod" ], + "doc/html/man3/SSL_accept_stream.html" => [ + "doc/man3/SSL_accept_stream.pod" + ], "doc/html/man3/SSL_alert_type_string.html" => [ "doc/man3/SSL_alert_type_string.pod" ], @@ -12663,9 +14691,21 @@ our %unified_info = ( "doc/html/man3/SSL_free.html" => [ "doc/man3/SSL_free.pod" ], + "doc/html/man3/SSL_get0_connection.html" => [ + "doc/man3/SSL_get0_connection.pod" + ], + "doc/html/man3/SSL_get0_group_name.html" => [ + "doc/man3/SSL_get0_group_name.pod" + ], + "doc/html/man3/SSL_get0_peer_rpk.html" => [ + "doc/man3/SSL_get0_peer_rpk.pod" + ], "doc/html/man3/SSL_get0_peer_scts.html" => [ "doc/man3/SSL_get0_peer_scts.pod" ], + "doc/html/man3/SSL_get1_builtin_sigalgs.html" => [ + "doc/man3/SSL_get1_builtin_sigalgs.pod" + ], "doc/html/man3/SSL_get_SSL_CTX.html" => [ "doc/man3/SSL_get_SSL_CTX.pod" ], @@ -12681,6 +14721,9 @@ our %unified_info = ( "doc/html/man3/SSL_get_client_random.html" => [ "doc/man3/SSL_get_client_random.pod" ], + "doc/html/man3/SSL_get_conn_close_info.html" => [ + "doc/man3/SSL_get_conn_close_info.pod" + ], "doc/html/man3/SSL_get_current_cipher.html" => [ "doc/man3/SSL_get_current_cipher.pod" ], @@ -12690,12 +14733,18 @@ our %unified_info = ( "doc/html/man3/SSL_get_error.html" => [ "doc/man3/SSL_get_error.pod" ], + "doc/html/man3/SSL_get_event_timeout.html" => [ + "doc/man3/SSL_get_event_timeout.pod" + ], "doc/html/man3/SSL_get_extms_support.html" => [ "doc/man3/SSL_get_extms_support.pod" ], "doc/html/man3/SSL_get_fd.html" => [ "doc/man3/SSL_get_fd.pod" ], + "doc/html/man3/SSL_get_handshake_rtt.html" => [ + "doc/man3/SSL_get_handshake_rtt.pod" + ], "doc/html/man3/SSL_get_peer_cert_chain.html" => [ "doc/man3/SSL_get_peer_cert_chain.pod" ], @@ -12714,12 +14763,24 @@ our %unified_info = ( "doc/html/man3/SSL_get_rbio.html" => [ "doc/man3/SSL_get_rbio.pod" ], + "doc/html/man3/SSL_get_rpoll_descriptor.html" => [ + "doc/man3/SSL_get_rpoll_descriptor.pod" + ], "doc/html/man3/SSL_get_session.html" => [ "doc/man3/SSL_get_session.pod" ], "doc/html/man3/SSL_get_shared_sigalgs.html" => [ "doc/man3/SSL_get_shared_sigalgs.pod" ], + "doc/html/man3/SSL_get_stream_id.html" => [ + "doc/man3/SSL_get_stream_id.pod" + ], + "doc/html/man3/SSL_get_stream_read_state.html" => [ + "doc/man3/SSL_get_stream_read_state.pod" + ], + "doc/html/man3/SSL_get_value_uint.html" => [ + "doc/man3/SSL_get_value_uint.pod" + ], "doc/html/man3/SSL_get_verify_result.html" => [ "doc/man3/SSL_get_verify_result.pod" ], @@ -12729,9 +14790,15 @@ our %unified_info = ( "doc/html/man3/SSL_group_to_name.html" => [ "doc/man3/SSL_group_to_name.pod" ], + "doc/html/man3/SSL_handle_events.html" => [ + "doc/man3/SSL_handle_events.pod" + ], "doc/html/man3/SSL_in_init.html" => [ "doc/man3/SSL_in_init.pod" ], + "doc/html/man3/SSL_inject_net_dgram.html" => [ + "doc/man3/SSL_inject_net_dgram.pod" + ], "doc/html/man3/SSL_key_update.html" => [ "doc/man3/SSL_key_update.pod" ], @@ -12744,9 +14811,21 @@ our %unified_info = ( "doc/html/man3/SSL_new.html" => [ "doc/man3/SSL_new.pod" ], + "doc/html/man3/SSL_new_domain.html" => [ + "doc/man3/SSL_new_domain.pod" + ], + "doc/html/man3/SSL_new_listener.html" => [ + "doc/man3/SSL_new_listener.pod" + ], + "doc/html/man3/SSL_new_stream.html" => [ + "doc/man3/SSL_new_stream.pod" + ], "doc/html/man3/SSL_pending.html" => [ "doc/man3/SSL_pending.pod" ], + "doc/html/man3/SSL_poll.html" => [ + "doc/man3/SSL_poll.pod" + ], "doc/html/man3/SSL_read.html" => [ "doc/man3/SSL_read.pod" ], @@ -12762,24 +14841,45 @@ our %unified_info = ( "doc/html/man3/SSL_set1_host.html" => [ "doc/man3/SSL_set1_host.pod" ], + "doc/html/man3/SSL_set1_initial_peer_addr.html" => [ + "doc/man3/SSL_set1_initial_peer_addr.pod" + ], + "doc/html/man3/SSL_set1_server_cert_type.html" => [ + "doc/man3/SSL_set1_server_cert_type.pod" + ], "doc/html/man3/SSL_set_async_callback.html" => [ "doc/man3/SSL_set_async_callback.pod" ], "doc/html/man3/SSL_set_bio.html" => [ "doc/man3/SSL_set_bio.pod" ], + "doc/html/man3/SSL_set_blocking_mode.html" => [ + "doc/man3/SSL_set_blocking_mode.pod" + ], "doc/html/man3/SSL_set_connect_state.html" => [ "doc/man3/SSL_set_connect_state.pod" ], + "doc/html/man3/SSL_set_default_stream_mode.html" => [ + "doc/man3/SSL_set_default_stream_mode.pod" + ], "doc/html/man3/SSL_set_fd.html" => [ "doc/man3/SSL_set_fd.pod" ], + "doc/html/man3/SSL_set_incoming_stream_policy.html" => [ + "doc/man3/SSL_set_incoming_stream_policy.pod" + ], + "doc/html/man3/SSL_set_quic_tls_cbs.html" => [ + "doc/man3/SSL_set_quic_tls_cbs.pod" + ], "doc/html/man3/SSL_set_retry_verify.html" => [ "doc/man3/SSL_set_retry_verify.pod" ], "doc/html/man3/SSL_set_session.html" => [ "doc/man3/SSL_set_session.pod" ], + "doc/html/man3/SSL_set_session_secret_cb.html" => [ + "doc/man3/SSL_set_session_secret_cb.pod" + ], "doc/html/man3/SSL_set_shutdown.html" => [ "doc/man3/SSL_set_shutdown.pod" ], @@ -12792,6 +14892,12 @@ our %unified_info = ( "doc/html/man3/SSL_state_string.html" => [ "doc/man3/SSL_state_string.pod" ], + "doc/html/man3/SSL_stream_conclude.html" => [ + "doc/man3/SSL_stream_conclude.pod" + ], + "doc/html/man3/SSL_stream_reset.html" => [ + "doc/man3/SSL_stream_reset.pod" + ], "doc/html/man3/SSL_want.html" => [ "doc/man3/SSL_want.pod" ], @@ -12801,8 +14907,8 @@ our %unified_info = ( "doc/html/man3/TS_RESP_CTX_new.html" => [ "doc/man3/TS_RESP_CTX_new.pod" ], - "doc/html/man3/TS_VERIFY_CTX_set_certs.html" => [ - "doc/man3/TS_VERIFY_CTX_set_certs.pod" + "doc/html/man3/TS_VERIFY_CTX.html" => [ + "doc/man3/TS_VERIFY_CTX.pod" ], "doc/html/man3/UI_STRING.html" => [ "doc/man3/UI_STRING.pod" @@ -12822,6 +14928,21 @@ our %unified_info = ( "doc/html/man3/X509V3_set_ctx.html" => [ "doc/man3/X509V3_set_ctx.pod" ], + "doc/html/man3/X509_ACERT_add1_attr.html" => [ + "doc/man3/X509_ACERT_add1_attr.pod" + ], + "doc/html/man3/X509_ACERT_add_attr_nconf.html" => [ + "doc/man3/X509_ACERT_add_attr_nconf.pod" + ], + "doc/html/man3/X509_ACERT_get0_holder_baseCertId.html" => [ + "doc/man3/X509_ACERT_get0_holder_baseCertId.pod" + ], + "doc/html/man3/X509_ACERT_get_attr.html" => [ + "doc/man3/X509_ACERT_get_attr.pod" + ], + "doc/html/man3/X509_ACERT_print_ex.html" => [ + "doc/man3/X509_ACERT_print_ex.pod" + ], "doc/html/man3/X509_ALGOR_dup.html" => [ "doc/man3/X509_ALGOR_dup.pod" ], @@ -12870,6 +14991,9 @@ our %unified_info = ( "doc/html/man3/X509_SIG_get0.html" => [ "doc/man3/X509_SIG_get0.pod" ], + "doc/html/man3/X509_STORE_CTX_get_by_subject.html" => [ + "doc/man3/X509_STORE_CTX_get_by_subject.pod" + ], "doc/html/man3/X509_STORE_CTX_get_error.html" => [ "doc/man3/X509_STORE_CTX_get_error.pod" ], @@ -12936,6 +15060,9 @@ our %unified_info = ( "doc/html/man3/X509_get0_uids.html" => [ "doc/man3/X509_get0_uids.pod" ], + "doc/html/man3/X509_get_default_cert_file.html" => [ + "doc/man3/X509_get_default_cert_file.pod" + ], "doc/html/man3/X509_get_extension_flags.html" => [ "doc/man3/X509_get_extension_flags.pod" ], @@ -13059,9 +15186,15 @@ our %unified_info = ( "doc/html/man7/EVP_CIPHER-SM4.html" => [ "doc/man7/EVP_CIPHER-SM4.pod" ], + "doc/html/man7/EVP_KDF-ARGON2.html" => [ + "doc/man7/EVP_KDF-ARGON2.pod" + ], "doc/html/man7/EVP_KDF-HKDF.html" => [ "doc/man7/EVP_KDF-HKDF.pod" ], + "doc/html/man7/EVP_KDF-HMAC-DRBG.html" => [ + "doc/man7/EVP_KDF-HMAC-DRBG.pod" + ], "doc/html/man7/EVP_KDF-KB.html" => [ "doc/man7/EVP_KDF-KB.pod" ], @@ -13077,6 +15210,9 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-PKCS12KDF.html" => [ "doc/man7/EVP_KDF-PKCS12KDF.pod" ], + "doc/html/man7/EVP_KDF-PVKKDF.html" => [ + "doc/man7/EVP_KDF-PVKKDF.pod" + ], "doc/html/man7/EVP_KDF-SCRYPT.html" => [ "doc/man7/EVP_KDF-SCRYPT.pod" ], @@ -13101,9 +15237,18 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-X963.html" => [ "doc/man7/EVP_KDF-X963.pod" ], + "doc/html/man7/EVP_KEM-EC.html" => [ + "doc/man7/EVP_KEM-EC.pod" + ], + "doc/html/man7/EVP_KEM-ML-KEM.html" => [ + "doc/man7/EVP_KEM-ML-KEM.pod" + ], "doc/html/man7/EVP_KEM-RSA.html" => [ "doc/man7/EVP_KEM-RSA.pod" ], + "doc/html/man7/EVP_KEM-X25519.html" => [ + "doc/man7/EVP_KEM-X25519.pod" + ], "doc/html/man7/EVP_KEYEXCH-DH.html" => [ "doc/man7/EVP_KEYEXCH-DH.pod" ], @@ -13137,6 +15282,9 @@ our %unified_info = ( "doc/html/man7/EVP_MD-BLAKE2.html" => [ "doc/man7/EVP_MD-BLAKE2.pod" ], + "doc/html/man7/EVP_MD-KECCAK.html" => [ + "doc/man7/EVP_MD-KECCAK.pod" + ], "doc/html/man7/EVP_MD-MD2.html" => [ "doc/man7/EVP_MD-MD2.pod" ], @@ -13194,15 +15342,27 @@ our %unified_info = ( "doc/html/man7/EVP_PKEY-HMAC.html" => [ "doc/man7/EVP_PKEY-HMAC.pod" ], + "doc/html/man7/EVP_PKEY-ML-DSA.html" => [ + "doc/man7/EVP_PKEY-ML-DSA.pod" + ], + "doc/html/man7/EVP_PKEY-ML-KEM.html" => [ + "doc/man7/EVP_PKEY-ML-KEM.pod" + ], "doc/html/man7/EVP_PKEY-RSA.html" => [ "doc/man7/EVP_PKEY-RSA.pod" ], + "doc/html/man7/EVP_PKEY-SLH-DSA.html" => [ + "doc/man7/EVP_PKEY-SLH-DSA.pod" + ], "doc/html/man7/EVP_PKEY-SM2.html" => [ "doc/man7/EVP_PKEY-SM2.pod" ], "doc/html/man7/EVP_PKEY-X25519.html" => [ "doc/man7/EVP_PKEY-X25519.pod" ], + "doc/html/man7/EVP_RAND-CRNG-TEST.html" => [ + "doc/man7/EVP_RAND-CRNG-TEST.pod" + ], "doc/html/man7/EVP_RAND-CTR-DRBG.html" => [ "doc/man7/EVP_RAND-CTR-DRBG.pod" ], @@ -13212,6 +15372,9 @@ our %unified_info = ( "doc/html/man7/EVP_RAND-HMAC-DRBG.html" => [ "doc/man7/EVP_RAND-HMAC-DRBG.pod" ], + "doc/html/man7/EVP_RAND-JITTER.html" => [ + "doc/man7/EVP_RAND-JITTER.pod" + ], "doc/html/man7/EVP_RAND-SEED-SRC.html" => [ "doc/man7/EVP_RAND-SEED-SRC.pod" ], @@ -13233,9 +15396,15 @@ our %unified_info = ( "doc/html/man7/EVP_SIGNATURE-HMAC.html" => [ "doc/man7/EVP_SIGNATURE-HMAC.pod" ], + "doc/html/man7/EVP_SIGNATURE-ML-DSA.html" => [ + "doc/man7/EVP_SIGNATURE-ML-DSA.pod" + ], "doc/html/man7/EVP_SIGNATURE-RSA.html" => [ "doc/man7/EVP_SIGNATURE-RSA.pod" ], + "doc/html/man7/EVP_SIGNATURE-SLH-DSA.html" => [ + "doc/man7/EVP_SIGNATURE-SLH-DSA.pod" + ], "doc/html/man7/OSSL_PROVIDER-FIPS.html" => [ "doc/man7/OSSL_PROVIDER-FIPS.pod" ], @@ -13251,6 +15420,9 @@ our %unified_info = ( "doc/html/man7/OSSL_PROVIDER-null.html" => [ "doc/man7/OSSL_PROVIDER-null.pod" ], + "doc/html/man7/OSSL_STORE-winstore.html" => [ + "doc/man7/OSSL_STORE-winstore.pod" + ], "doc/html/man7/RAND.html" => [ "doc/man7/RAND.pod" ], @@ -13263,9 +15435,6 @@ our %unified_info = ( "doc/html/man7/bio.html" => [ "doc/man7/bio.pod" ], - "doc/html/man7/crypto.html" => [ - "doc/man7/crypto.pod" - ], "doc/html/man7/ct.html" => [ "doc/man7/ct.pod" ], @@ -13296,9 +15465,6 @@ our %unified_info = ( "doc/html/man7/life_cycle-rand.html" => [ "doc/man7/life_cycle-rand.pod" ], - "doc/html/man7/migration_guide.html" => [ - "doc/man7/migration_guide.pod" - ], "doc/html/man7/openssl-core.h.html" => [ "doc/man7/openssl-core.h.pod" ], @@ -13314,12 +15480,66 @@ our %unified_info = ( "doc/html/man7/openssl-glossary.html" => [ "doc/man7/openssl-glossary.pod" ], + "doc/html/man7/openssl-qlog.html" => [ + "doc/man7/openssl-qlog.pod" + ], + "doc/html/man7/openssl-quic-concurrency.html" => [ + "doc/man7/openssl-quic-concurrency.pod" + ], + "doc/html/man7/openssl-quic.html" => [ + "doc/man7/openssl-quic.pod" + ], "doc/html/man7/openssl-threads.html" => [ "doc/man7/openssl-threads.pod" ], "doc/html/man7/openssl_user_macros.html" => [ "doc/man7/openssl_user_macros.pod" ], + "doc/html/man7/ossl-guide-introduction.html" => [ + "doc/man7/ossl-guide-introduction.pod" + ], + "doc/html/man7/ossl-guide-libcrypto-introduction.html" => [ + "doc/man7/ossl-guide-libcrypto-introduction.pod" + ], + "doc/html/man7/ossl-guide-libraries-introduction.html" => [ + "doc/man7/ossl-guide-libraries-introduction.pod" + ], + "doc/html/man7/ossl-guide-libssl-introduction.html" => [ + "doc/man7/ossl-guide-libssl-introduction.pod" + ], + "doc/html/man7/ossl-guide-migration.html" => [ + "doc/man7/ossl-guide-migration.pod" + ], + "doc/html/man7/ossl-guide-quic-client-block.html" => [ + "doc/man7/ossl-guide-quic-client-block.pod" + ], + "doc/html/man7/ossl-guide-quic-client-non-block.html" => [ + "doc/man7/ossl-guide-quic-client-non-block.pod" + ], + "doc/html/man7/ossl-guide-quic-introduction.html" => [ + "doc/man7/ossl-guide-quic-introduction.pod" + ], + "doc/html/man7/ossl-guide-quic-multi-stream.html" => [ + "doc/man7/ossl-guide-quic-multi-stream.pod" + ], + "doc/html/man7/ossl-guide-quic-server-block.html" => [ + "doc/man7/ossl-guide-quic-server-block.pod" + ], + "doc/html/man7/ossl-guide-quic-server-non-block.html" => [ + "doc/man7/ossl-guide-quic-server-non-block.pod" + ], + "doc/html/man7/ossl-guide-tls-client-block.html" => [ + "doc/man7/ossl-guide-tls-client-block.pod" + ], + "doc/html/man7/ossl-guide-tls-client-non-block.html" => [ + "doc/man7/ossl-guide-tls-client-non-block.pod" + ], + "doc/html/man7/ossl-guide-tls-introduction.html" => [ + "doc/man7/ossl-guide-tls-introduction.pod" + ], + "doc/html/man7/ossl-guide-tls-server-block.html" => [ + "doc/man7/ossl-guide-tls-server-block.pod" + ], "doc/html/man7/ossl_store-file.html" => [ "doc/man7/ossl_store-file.pod" ], @@ -13374,6 +15594,9 @@ our %unified_info = ( "doc/html/man7/provider-signature.html" => [ "doc/man7/provider-signature.pod" ], + "doc/html/man7/provider-skeymgmt.html" => [ + "doc/man7/provider-skeymgmt.pod" + ], "doc/html/man7/provider-storemgmt.html" => [ "doc/man7/provider-storemgmt.pod" ], @@ -13383,9 +15606,6 @@ our %unified_info = ( "doc/html/man7/proxy-certificates.html" => [ "doc/man7/proxy-certificates.pod" ], - "doc/html/man7/ssl.html" => [ - "doc/man7/ssl.pod" - ], "doc/html/man7/x509.html" => [ "doc/man7/x509.pod" ], @@ -13533,6 +15753,9 @@ our %unified_info = ( "doc/man/man1/openssl-sess_id.1" => [ "doc/man1/openssl-sess_id.pod" ], + "doc/man/man1/openssl-skeyutl.1" => [ + "doc/man1/openssl-skeyutl.pod" + ], "doc/man/man1/openssl-smime.1" => [ "doc/man1/openssl-smime.pod" ], @@ -13674,6 +15897,9 @@ our %unified_info = ( "doc/man/man3/BIO_get_ex_new_index.3" => [ "doc/man3/BIO_get_ex_new_index.pod" ], + "doc/man/man3/BIO_get_rpoll_descriptor.3" => [ + "doc/man3/BIO_get_rpoll_descriptor.pod" + ], "doc/man/man3/BIO_meth_new.3" => [ "doc/man3/BIO_meth_new.pod" ], @@ -13710,6 +15936,9 @@ our %unified_info = ( "doc/man/man3/BIO_s_datagram.3" => [ "doc/man3/BIO_s_datagram.pod" ], + "doc/man/man3/BIO_s_dgram_pair.3" => [ + "doc/man3/BIO_s_dgram_pair.pod" + ], "doc/man/man3/BIO_s_fd.3" => [ "doc/man3/BIO_s_fd.pod" ], @@ -13725,6 +15954,9 @@ our %unified_info = ( "doc/man/man3/BIO_s_socket.3" => [ "doc/man3/BIO_s_socket.pod" ], + "doc/man/man3/BIO_sendmmsg.3" => [ + "doc/man3/BIO_sendmmsg.pod" + ], "doc/man/man3/BIO_set_callback.3" => [ "doc/man3/BIO_set_callback.pod" ], @@ -13797,6 +16029,9 @@ our %unified_info = ( "doc/man/man3/BUF_MEM_new.3" => [ "doc/man3/BUF_MEM_new.pod" ], + "doc/man/man3/CMAC_CTX.3" => [ + "doc/man3/CMAC_CTX.pod" + ], "doc/man/man3/CMS_EncryptedData_decrypt.3" => [ "doc/man3/CMS_EncryptedData_decrypt.pod" ], @@ -13863,6 +16098,9 @@ our %unified_info = ( "doc/man/man3/CMS_verify_receipt.3" => [ "doc/man3/CMS_verify_receipt.pod" ], + "doc/man/man3/COMP_CTX_new.3" => [ + "doc/man3/COMP_CTX_new.pod" + ], "doc/man/man3/CONF_modules_free.3" => [ "doc/man3/CONF_modules_free.pod" ], @@ -13962,6 +16200,12 @@ our %unified_info = ( "doc/man/man3/DTLS_set_timer_cb.3" => [ "doc/man3/DTLS_set_timer_cb.pod" ], + "doc/man/man3/DTLSv1_get_timeout.3" => [ + "doc/man3/DTLSv1_get_timeout.pod" + ], + "doc/man/man3/DTLSv1_handle_timeout.3" => [ + "doc/man3/DTLSv1_handle_timeout.pod" + ], "doc/man/man3/DTLSv1_listen.3" => [ "doc/man3/DTLSv1_listen.pod" ], @@ -14100,6 +16344,9 @@ our %unified_info = ( "doc/man/man3/EVP_PKEY_CTX_get0_pkey.3" => [ "doc/man3/EVP_PKEY_CTX_get0_pkey.pod" ], + "doc/man/man3/EVP_PKEY_CTX_get_algor.3" => [ + "doc/man3/EVP_PKEY_CTX_get_algor.pod" + ], "doc/man/man3/EVP_PKEY_CTX_new.3" => [ "doc/man3/EVP_PKEY_CTX_new.pod" ], @@ -14217,6 +16464,12 @@ our %unified_info = ( "doc/man/man3/EVP_SIGNATURE.3" => [ "doc/man3/EVP_SIGNATURE.pod" ], + "doc/man/man3/EVP_SKEY.3" => [ + "doc/man3/EVP_SKEY.pod" + ], + "doc/man/man3/EVP_SKEYMGMT.3" => [ + "doc/man3/EVP_SKEYMGMT.pod" + ], "doc/man/man3/EVP_SealInit.3" => [ "doc/man3/EVP_SealInit.pod" ], @@ -14304,6 +16557,9 @@ our %unified_info = ( "doc/man/man3/EVP_whirlpool.3" => [ "doc/man3/EVP_whirlpool.pod" ], + "doc/man/man3/GENERAL_NAME.3" => [ + "doc/man3/GENERAL_NAME.pod" + ], "doc/man/man3/HMAC.3" => [ "doc/man3/HMAC.pod" ], @@ -14376,9 +16632,15 @@ our %unified_info = ( "doc/man/man3/OPENSSL_load_builtin_modules.3" => [ "doc/man3/OPENSSL_load_builtin_modules.pod" ], + "doc/man/man3/OPENSSL_load_u16_le.3" => [ + "doc/man3/OPENSSL_load_u16_le.pod" + ], "doc/man/man3/OPENSSL_malloc.3" => [ "doc/man3/OPENSSL_malloc.pod" ], + "doc/man/man3/OPENSSL_riscvcap.3" => [ + "doc/man3/OPENSSL_riscvcap.pod" + ], "doc/man/man3/OPENSSL_s390xcap.3" => [ "doc/man3/OPENSSL_s390xcap.pod" ], @@ -14394,12 +16656,18 @@ our %unified_info = ( "doc/man/man3/OSSL_CALLBACK.3" => [ "doc/man3/OSSL_CALLBACK.pod" ], + "doc/man/man3/OSSL_CMP_ATAV_set0.3" => [ + "doc/man3/OSSL_CMP_ATAV_set0.pod" + ], "doc/man/man3/OSSL_CMP_CTX_new.3" => [ "doc/man3/OSSL_CMP_CTX_new.pod" ], "doc/man/man3/OSSL_CMP_HDR_get0_transactionID.3" => [ "doc/man3/OSSL_CMP_HDR_get0_transactionID.pod" ], + "doc/man/man3/OSSL_CMP_ITAV_new_caCerts.3" => [ + "doc/man3/OSSL_CMP_ITAV_new_caCerts.pod" + ], "doc/man/man3/OSSL_CMP_ITAV_set0.3" => [ "doc/man3/OSSL_CMP_ITAV_set0.pod" ], @@ -14469,9 +16737,18 @@ our %unified_info = ( "doc/man/man3/OSSL_ENCODER_to_bio.3" => [ "doc/man3/OSSL_ENCODER_to_bio.pod" ], + "doc/man/man3/OSSL_ERR_STATE_save.3" => [ + "doc/man3/OSSL_ERR_STATE_save.pod" + ], "doc/man/man3/OSSL_ESS_check_signing_certs.3" => [ "doc/man3/OSSL_ESS_check_signing_certs.pod" ], + "doc/man/man3/OSSL_GENERAL_NAMES_print.3" => [ + "doc/man3/OSSL_GENERAL_NAMES_print.pod" + ], + "doc/man/man3/OSSL_HPKE_CTX_new.3" => [ + "doc/man3/OSSL_HPKE_CTX_new.pod" + ], "doc/man/man3/OSSL_HTTP_REQ_CTX.3" => [ "doc/man3/OSSL_HTTP_REQ_CTX.pod" ], @@ -14481,12 +16758,24 @@ our %unified_info = ( "doc/man/man3/OSSL_HTTP_transfer.3" => [ "doc/man3/OSSL_HTTP_transfer.pod" ], + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX.3" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX.pod" + ], + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX_print.3" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX_print.pod" + ], + "doc/man/man3/OSSL_INDICATOR_set_callback.3" => [ + "doc/man3/OSSL_INDICATOR_set_callback.pod" + ], "doc/man/man3/OSSL_ITEM.3" => [ "doc/man3/OSSL_ITEM.pod" ], "doc/man/man3/OSSL_LIB_CTX.3" => [ "doc/man3/OSSL_LIB_CTX.pod" ], + "doc/man/man3/OSSL_LIB_CTX_set_conf_diagnostics.3" => [ + "doc/man3/OSSL_LIB_CTX_set_conf_diagnostics.pod" + ], "doc/man/man3/OSSL_PARAM.3" => [ "doc/man3/OSSL_PARAM.pod" ], @@ -14502,9 +16791,15 @@ our %unified_info = ( "doc/man/man3/OSSL_PARAM_int.3" => [ "doc/man3/OSSL_PARAM_int.pod" ], + "doc/man/man3/OSSL_PARAM_print_to_bio.3" => [ + "doc/man3/OSSL_PARAM_print_to_bio.pod" + ], "doc/man/man3/OSSL_PROVIDER.3" => [ "doc/man3/OSSL_PROVIDER.pod" ], + "doc/man/man3/OSSL_QUIC_client_method.3" => [ + "doc/man3/OSSL_QUIC_client_method.pod" + ], "doc/man/man3/OSSL_SELF_TEST_new.3" => [ "doc/man3/OSSL_SELF_TEST_new.pod" ], @@ -14529,6 +16824,9 @@ our %unified_info = ( "doc/man/man3/OSSL_STORE_open.3" => [ "doc/man3/OSSL_STORE_open.pod" ], + "doc/man/man3/OSSL_sleep.3" => [ + "doc/man3/OSSL_sleep.pod" + ], "doc/man/man3/OSSL_trace_enabled.3" => [ "doc/man3/OSSL_trace_enabled.pod" ], @@ -14544,6 +16842,9 @@ our %unified_info = ( "doc/man/man3/OpenSSL_version.3" => [ "doc/man3/OpenSSL_version.pod" ], + "doc/man/man3/PBMAC1_get1_pbkdf2_param.3" => [ + "doc/man3/PBMAC1_get1_pbkdf2_param.pod" + ], "doc/man/man3/PEM_X509_INFO_read_bio_ex.3" => [ "doc/man3/PEM_X509_INFO_read_bio_ex.pod" ], @@ -14580,6 +16881,9 @@ our %unified_info = ( "doc/man/man3/PKCS12_SAFEBAG_get1_cert.3" => [ "doc/man3/PKCS12_SAFEBAG_get1_cert.pod" ], + "doc/man/man3/PKCS12_SAFEBAG_set0_attrs.3" => [ + "doc/man3/PKCS12_SAFEBAG_set0_attrs.pod" + ], "doc/man/man3/PKCS12_add1_attr_by_NID.3" => [ "doc/man3/PKCS12_add1_attr_by_NID.pod" ], @@ -14853,6 +17157,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set0_CA_list.3" => [ "doc/man3/SSL_CTX_set0_CA_list.pod" ], + "doc/man/man3/SSL_CTX_set1_cert_comp_preference.3" => [ + "doc/man3/SSL_CTX_set1_cert_comp_preference.pod" + ], "doc/man/man3/SSL_CTX_set1_curves.3" => [ "doc/man3/SSL_CTX_set1_curves.pod" ], @@ -14892,6 +17199,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_default_passwd_cb.3" => [ "doc/man3/SSL_CTX_set_default_passwd_cb.pod" ], + "doc/man/man3/SSL_CTX_set_domain_flags.3" => [ + "doc/man3/SSL_CTX_set_domain_flags.pod" + ], "doc/man/man3/SSL_CTX_set_generate_session_id.3" => [ "doc/man3/SSL_CTX_set_generate_session_id.pod" ], @@ -14913,6 +17223,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_msg_callback.3" => [ "doc/man3/SSL_CTX_set_msg_callback.pod" ], + "doc/man/man3/SSL_CTX_set_new_pending_conn_cb.3" => [ + "doc/man3/SSL_CTX_set_new_pending_conn_cb.pod" + ], "doc/man/man3/SSL_CTX_set_num_tickets.3" => [ "doc/man3/SSL_CTX_set_num_tickets.pod" ], @@ -15027,6 +17340,9 @@ our %unified_info = ( "doc/man/man3/SSL_accept.3" => [ "doc/man3/SSL_accept.pod" ], + "doc/man/man3/SSL_accept_stream.3" => [ + "doc/man3/SSL_accept_stream.pod" + ], "doc/man/man3/SSL_alert_type_string.3" => [ "doc/man3/SSL_alert_type_string.pod" ], @@ -15054,9 +17370,21 @@ our %unified_info = ( "doc/man/man3/SSL_free.3" => [ "doc/man3/SSL_free.pod" ], + "doc/man/man3/SSL_get0_connection.3" => [ + "doc/man3/SSL_get0_connection.pod" + ], + "doc/man/man3/SSL_get0_group_name.3" => [ + "doc/man3/SSL_get0_group_name.pod" + ], + "doc/man/man3/SSL_get0_peer_rpk.3" => [ + "doc/man3/SSL_get0_peer_rpk.pod" + ], "doc/man/man3/SSL_get0_peer_scts.3" => [ "doc/man3/SSL_get0_peer_scts.pod" ], + "doc/man/man3/SSL_get1_builtin_sigalgs.3" => [ + "doc/man3/SSL_get1_builtin_sigalgs.pod" + ], "doc/man/man3/SSL_get_SSL_CTX.3" => [ "doc/man3/SSL_get_SSL_CTX.pod" ], @@ -15072,6 +17400,9 @@ our %unified_info = ( "doc/man/man3/SSL_get_client_random.3" => [ "doc/man3/SSL_get_client_random.pod" ], + "doc/man/man3/SSL_get_conn_close_info.3" => [ + "doc/man3/SSL_get_conn_close_info.pod" + ], "doc/man/man3/SSL_get_current_cipher.3" => [ "doc/man3/SSL_get_current_cipher.pod" ], @@ -15081,12 +17412,18 @@ our %unified_info = ( "doc/man/man3/SSL_get_error.3" => [ "doc/man3/SSL_get_error.pod" ], + "doc/man/man3/SSL_get_event_timeout.3" => [ + "doc/man3/SSL_get_event_timeout.pod" + ], "doc/man/man3/SSL_get_extms_support.3" => [ "doc/man3/SSL_get_extms_support.pod" ], "doc/man/man3/SSL_get_fd.3" => [ "doc/man3/SSL_get_fd.pod" ], + "doc/man/man3/SSL_get_handshake_rtt.3" => [ + "doc/man3/SSL_get_handshake_rtt.pod" + ], "doc/man/man3/SSL_get_peer_cert_chain.3" => [ "doc/man3/SSL_get_peer_cert_chain.pod" ], @@ -15105,12 +17442,24 @@ our %unified_info = ( "doc/man/man3/SSL_get_rbio.3" => [ "doc/man3/SSL_get_rbio.pod" ], + "doc/man/man3/SSL_get_rpoll_descriptor.3" => [ + "doc/man3/SSL_get_rpoll_descriptor.pod" + ], "doc/man/man3/SSL_get_session.3" => [ "doc/man3/SSL_get_session.pod" ], "doc/man/man3/SSL_get_shared_sigalgs.3" => [ "doc/man3/SSL_get_shared_sigalgs.pod" ], + "doc/man/man3/SSL_get_stream_id.3" => [ + "doc/man3/SSL_get_stream_id.pod" + ], + "doc/man/man3/SSL_get_stream_read_state.3" => [ + "doc/man3/SSL_get_stream_read_state.pod" + ], + "doc/man/man3/SSL_get_value_uint.3" => [ + "doc/man3/SSL_get_value_uint.pod" + ], "doc/man/man3/SSL_get_verify_result.3" => [ "doc/man3/SSL_get_verify_result.pod" ], @@ -15120,9 +17469,15 @@ our %unified_info = ( "doc/man/man3/SSL_group_to_name.3" => [ "doc/man3/SSL_group_to_name.pod" ], + "doc/man/man3/SSL_handle_events.3" => [ + "doc/man3/SSL_handle_events.pod" + ], "doc/man/man3/SSL_in_init.3" => [ "doc/man3/SSL_in_init.pod" ], + "doc/man/man3/SSL_inject_net_dgram.3" => [ + "doc/man3/SSL_inject_net_dgram.pod" + ], "doc/man/man3/SSL_key_update.3" => [ "doc/man3/SSL_key_update.pod" ], @@ -15135,9 +17490,21 @@ our %unified_info = ( "doc/man/man3/SSL_new.3" => [ "doc/man3/SSL_new.pod" ], + "doc/man/man3/SSL_new_domain.3" => [ + "doc/man3/SSL_new_domain.pod" + ], + "doc/man/man3/SSL_new_listener.3" => [ + "doc/man3/SSL_new_listener.pod" + ], + "doc/man/man3/SSL_new_stream.3" => [ + "doc/man3/SSL_new_stream.pod" + ], "doc/man/man3/SSL_pending.3" => [ "doc/man3/SSL_pending.pod" ], + "doc/man/man3/SSL_poll.3" => [ + "doc/man3/SSL_poll.pod" + ], "doc/man/man3/SSL_read.3" => [ "doc/man3/SSL_read.pod" ], @@ -15153,24 +17520,45 @@ our %unified_info = ( "doc/man/man3/SSL_set1_host.3" => [ "doc/man3/SSL_set1_host.pod" ], + "doc/man/man3/SSL_set1_initial_peer_addr.3" => [ + "doc/man3/SSL_set1_initial_peer_addr.pod" + ], + "doc/man/man3/SSL_set1_server_cert_type.3" => [ + "doc/man3/SSL_set1_server_cert_type.pod" + ], "doc/man/man3/SSL_set_async_callback.3" => [ "doc/man3/SSL_set_async_callback.pod" ], "doc/man/man3/SSL_set_bio.3" => [ "doc/man3/SSL_set_bio.pod" ], + "doc/man/man3/SSL_set_blocking_mode.3" => [ + "doc/man3/SSL_set_blocking_mode.pod" + ], "doc/man/man3/SSL_set_connect_state.3" => [ "doc/man3/SSL_set_connect_state.pod" ], + "doc/man/man3/SSL_set_default_stream_mode.3" => [ + "doc/man3/SSL_set_default_stream_mode.pod" + ], "doc/man/man3/SSL_set_fd.3" => [ "doc/man3/SSL_set_fd.pod" ], + "doc/man/man3/SSL_set_incoming_stream_policy.3" => [ + "doc/man3/SSL_set_incoming_stream_policy.pod" + ], + "doc/man/man3/SSL_set_quic_tls_cbs.3" => [ + "doc/man3/SSL_set_quic_tls_cbs.pod" + ], "doc/man/man3/SSL_set_retry_verify.3" => [ "doc/man3/SSL_set_retry_verify.pod" ], "doc/man/man3/SSL_set_session.3" => [ "doc/man3/SSL_set_session.pod" ], + "doc/man/man3/SSL_set_session_secret_cb.3" => [ + "doc/man3/SSL_set_session_secret_cb.pod" + ], "doc/man/man3/SSL_set_shutdown.3" => [ "doc/man3/SSL_set_shutdown.pod" ], @@ -15183,6 +17571,12 @@ our %unified_info = ( "doc/man/man3/SSL_state_string.3" => [ "doc/man3/SSL_state_string.pod" ], + "doc/man/man3/SSL_stream_conclude.3" => [ + "doc/man3/SSL_stream_conclude.pod" + ], + "doc/man/man3/SSL_stream_reset.3" => [ + "doc/man3/SSL_stream_reset.pod" + ], "doc/man/man3/SSL_want.3" => [ "doc/man3/SSL_want.pod" ], @@ -15192,8 +17586,8 @@ our %unified_info = ( "doc/man/man3/TS_RESP_CTX_new.3" => [ "doc/man3/TS_RESP_CTX_new.pod" ], - "doc/man/man3/TS_VERIFY_CTX_set_certs.3" => [ - "doc/man3/TS_VERIFY_CTX_set_certs.pod" + "doc/man/man3/TS_VERIFY_CTX.3" => [ + "doc/man3/TS_VERIFY_CTX.pod" ], "doc/man/man3/UI_STRING.3" => [ "doc/man3/UI_STRING.pod" @@ -15213,6 +17607,21 @@ our %unified_info = ( "doc/man/man3/X509V3_set_ctx.3" => [ "doc/man3/X509V3_set_ctx.pod" ], + "doc/man/man3/X509_ACERT_add1_attr.3" => [ + "doc/man3/X509_ACERT_add1_attr.pod" + ], + "doc/man/man3/X509_ACERT_add_attr_nconf.3" => [ + "doc/man3/X509_ACERT_add_attr_nconf.pod" + ], + "doc/man/man3/X509_ACERT_get0_holder_baseCertId.3" => [ + "doc/man3/X509_ACERT_get0_holder_baseCertId.pod" + ], + "doc/man/man3/X509_ACERT_get_attr.3" => [ + "doc/man3/X509_ACERT_get_attr.pod" + ], + "doc/man/man3/X509_ACERT_print_ex.3" => [ + "doc/man3/X509_ACERT_print_ex.pod" + ], "doc/man/man3/X509_ALGOR_dup.3" => [ "doc/man3/X509_ALGOR_dup.pod" ], @@ -15261,6 +17670,9 @@ our %unified_info = ( "doc/man/man3/X509_SIG_get0.3" => [ "doc/man3/X509_SIG_get0.pod" ], + "doc/man/man3/X509_STORE_CTX_get_by_subject.3" => [ + "doc/man3/X509_STORE_CTX_get_by_subject.pod" + ], "doc/man/man3/X509_STORE_CTX_get_error.3" => [ "doc/man3/X509_STORE_CTX_get_error.pod" ], @@ -15327,6 +17739,9 @@ our %unified_info = ( "doc/man/man3/X509_get0_uids.3" => [ "doc/man3/X509_get0_uids.pod" ], + "doc/man/man3/X509_get_default_cert_file.3" => [ + "doc/man3/X509_get_default_cert_file.pod" + ], "doc/man/man3/X509_get_extension_flags.3" => [ "doc/man3/X509_get_extension_flags.pod" ], @@ -15450,9 +17865,15 @@ our %unified_info = ( "doc/man/man7/EVP_CIPHER-SM4.7" => [ "doc/man7/EVP_CIPHER-SM4.pod" ], + "doc/man/man7/EVP_KDF-ARGON2.7" => [ + "doc/man7/EVP_KDF-ARGON2.pod" + ], "doc/man/man7/EVP_KDF-HKDF.7" => [ "doc/man7/EVP_KDF-HKDF.pod" ], + "doc/man/man7/EVP_KDF-HMAC-DRBG.7" => [ + "doc/man7/EVP_KDF-HMAC-DRBG.pod" + ], "doc/man/man7/EVP_KDF-KB.7" => [ "doc/man7/EVP_KDF-KB.pod" ], @@ -15468,6 +17889,9 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-PKCS12KDF.7" => [ "doc/man7/EVP_KDF-PKCS12KDF.pod" ], + "doc/man/man7/EVP_KDF-PVKKDF.7" => [ + "doc/man7/EVP_KDF-PVKKDF.pod" + ], "doc/man/man7/EVP_KDF-SCRYPT.7" => [ "doc/man7/EVP_KDF-SCRYPT.pod" ], @@ -15492,9 +17916,18 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-X963.7" => [ "doc/man7/EVP_KDF-X963.pod" ], + "doc/man/man7/EVP_KEM-EC.7" => [ + "doc/man7/EVP_KEM-EC.pod" + ], + "doc/man/man7/EVP_KEM-ML-KEM.7" => [ + "doc/man7/EVP_KEM-ML-KEM.pod" + ], "doc/man/man7/EVP_KEM-RSA.7" => [ "doc/man7/EVP_KEM-RSA.pod" ], + "doc/man/man7/EVP_KEM-X25519.7" => [ + "doc/man7/EVP_KEM-X25519.pod" + ], "doc/man/man7/EVP_KEYEXCH-DH.7" => [ "doc/man7/EVP_KEYEXCH-DH.pod" ], @@ -15528,6 +17961,9 @@ our %unified_info = ( "doc/man/man7/EVP_MD-BLAKE2.7" => [ "doc/man7/EVP_MD-BLAKE2.pod" ], + "doc/man/man7/EVP_MD-KECCAK.7" => [ + "doc/man7/EVP_MD-KECCAK.pod" + ], "doc/man/man7/EVP_MD-MD2.7" => [ "doc/man7/EVP_MD-MD2.pod" ], @@ -15585,15 +18021,27 @@ our %unified_info = ( "doc/man/man7/EVP_PKEY-HMAC.7" => [ "doc/man7/EVP_PKEY-HMAC.pod" ], + "doc/man/man7/EVP_PKEY-ML-DSA.7" => [ + "doc/man7/EVP_PKEY-ML-DSA.pod" + ], + "doc/man/man7/EVP_PKEY-ML-KEM.7" => [ + "doc/man7/EVP_PKEY-ML-KEM.pod" + ], "doc/man/man7/EVP_PKEY-RSA.7" => [ "doc/man7/EVP_PKEY-RSA.pod" ], + "doc/man/man7/EVP_PKEY-SLH-DSA.7" => [ + "doc/man7/EVP_PKEY-SLH-DSA.pod" + ], "doc/man/man7/EVP_PKEY-SM2.7" => [ "doc/man7/EVP_PKEY-SM2.pod" ], "doc/man/man7/EVP_PKEY-X25519.7" => [ "doc/man7/EVP_PKEY-X25519.pod" ], + "doc/man/man7/EVP_RAND-CRNG-TEST.7" => [ + "doc/man7/EVP_RAND-CRNG-TEST.pod" + ], "doc/man/man7/EVP_RAND-CTR-DRBG.7" => [ "doc/man7/EVP_RAND-CTR-DRBG.pod" ], @@ -15603,6 +18051,9 @@ our %unified_info = ( "doc/man/man7/EVP_RAND-HMAC-DRBG.7" => [ "doc/man7/EVP_RAND-HMAC-DRBG.pod" ], + "doc/man/man7/EVP_RAND-JITTER.7" => [ + "doc/man7/EVP_RAND-JITTER.pod" + ], "doc/man/man7/EVP_RAND-SEED-SRC.7" => [ "doc/man7/EVP_RAND-SEED-SRC.pod" ], @@ -15624,9 +18075,15 @@ our %unified_info = ( "doc/man/man7/EVP_SIGNATURE-HMAC.7" => [ "doc/man7/EVP_SIGNATURE-HMAC.pod" ], + "doc/man/man7/EVP_SIGNATURE-ML-DSA.7" => [ + "doc/man7/EVP_SIGNATURE-ML-DSA.pod" + ], "doc/man/man7/EVP_SIGNATURE-RSA.7" => [ "doc/man7/EVP_SIGNATURE-RSA.pod" ], + "doc/man/man7/EVP_SIGNATURE-SLH-DSA.7" => [ + "doc/man7/EVP_SIGNATURE-SLH-DSA.pod" + ], "doc/man/man7/OSSL_PROVIDER-FIPS.7" => [ "doc/man7/OSSL_PROVIDER-FIPS.pod" ], @@ -15642,6 +18099,9 @@ our %unified_info = ( "doc/man/man7/OSSL_PROVIDER-null.7" => [ "doc/man7/OSSL_PROVIDER-null.pod" ], + "doc/man/man7/OSSL_STORE-winstore.7" => [ + "doc/man7/OSSL_STORE-winstore.pod" + ], "doc/man/man7/RAND.7" => [ "doc/man7/RAND.pod" ], @@ -15654,9 +18114,6 @@ our %unified_info = ( "doc/man/man7/bio.7" => [ "doc/man7/bio.pod" ], - "doc/man/man7/crypto.7" => [ - "doc/man7/crypto.pod" - ], "doc/man/man7/ct.7" => [ "doc/man7/ct.pod" ], @@ -15687,9 +18144,6 @@ our %unified_info = ( "doc/man/man7/life_cycle-rand.7" => [ "doc/man7/life_cycle-rand.pod" ], - "doc/man/man7/migration_guide.7" => [ - "doc/man7/migration_guide.pod" - ], "doc/man/man7/openssl-core.h.7" => [ "doc/man7/openssl-core.h.pod" ], @@ -15705,12 +18159,66 @@ our %unified_info = ( "doc/man/man7/openssl-glossary.7" => [ "doc/man7/openssl-glossary.pod" ], + "doc/man/man7/openssl-qlog.7" => [ + "doc/man7/openssl-qlog.pod" + ], + "doc/man/man7/openssl-quic-concurrency.7" => [ + "doc/man7/openssl-quic-concurrency.pod" + ], + "doc/man/man7/openssl-quic.7" => [ + "doc/man7/openssl-quic.pod" + ], "doc/man/man7/openssl-threads.7" => [ "doc/man7/openssl-threads.pod" ], "doc/man/man7/openssl_user_macros.7" => [ "doc/man7/openssl_user_macros.pod" ], + "doc/man/man7/ossl-guide-introduction.7" => [ + "doc/man7/ossl-guide-introduction.pod" + ], + "doc/man/man7/ossl-guide-libcrypto-introduction.7" => [ + "doc/man7/ossl-guide-libcrypto-introduction.pod" + ], + "doc/man/man7/ossl-guide-libraries-introduction.7" => [ + "doc/man7/ossl-guide-libraries-introduction.pod" + ], + "doc/man/man7/ossl-guide-libssl-introduction.7" => [ + "doc/man7/ossl-guide-libssl-introduction.pod" + ], + "doc/man/man7/ossl-guide-migration.7" => [ + "doc/man7/ossl-guide-migration.pod" + ], + "doc/man/man7/ossl-guide-quic-client-block.7" => [ + "doc/man7/ossl-guide-quic-client-block.pod" + ], + "doc/man/man7/ossl-guide-quic-client-non-block.7" => [ + "doc/man7/ossl-guide-quic-client-non-block.pod" + ], + "doc/man/man7/ossl-guide-quic-introduction.7" => [ + "doc/man7/ossl-guide-quic-introduction.pod" + ], + "doc/man/man7/ossl-guide-quic-multi-stream.7" => [ + "doc/man7/ossl-guide-quic-multi-stream.pod" + ], + "doc/man/man7/ossl-guide-quic-server-block.7" => [ + "doc/man7/ossl-guide-quic-server-block.pod" + ], + "doc/man/man7/ossl-guide-quic-server-non-block.7" => [ + "doc/man7/ossl-guide-quic-server-non-block.pod" + ], + "doc/man/man7/ossl-guide-tls-client-block.7" => [ + "doc/man7/ossl-guide-tls-client-block.pod" + ], + "doc/man/man7/ossl-guide-tls-client-non-block.7" => [ + "doc/man7/ossl-guide-tls-client-non-block.pod" + ], + "doc/man/man7/ossl-guide-tls-introduction.7" => [ + "doc/man7/ossl-guide-tls-introduction.pod" + ], + "doc/man/man7/ossl-guide-tls-server-block.7" => [ + "doc/man7/ossl-guide-tls-server-block.pod" + ], "doc/man/man7/ossl_store-file.7" => [ "doc/man7/ossl_store-file.pod" ], @@ -15765,6 +18273,9 @@ our %unified_info = ( "doc/man/man7/provider-signature.7" => [ "doc/man7/provider-signature.pod" ], + "doc/man/man7/provider-skeymgmt.7" => [ + "doc/man7/provider-skeymgmt.pod" + ], "doc/man/man7/provider-storemgmt.7" => [ "doc/man7/provider-storemgmt.pod" ], @@ -15774,9 +18285,6 @@ our %unified_info = ( "doc/man/man7/proxy-certificates.7" => [ "doc/man7/proxy-certificates.pod" ], - "doc/man/man7/ssl.7" => [ - "doc/man7/ssl.pod" - ], "doc/man/man7/x509.7" => [ "doc/man7/x509.pod" ], @@ -15912,6 +18420,9 @@ our %unified_info = ( "doc/man1/openssl-sess_id.pod" => [ "doc/man1/openssl-sess_id.pod.in" ], + "doc/man1/openssl-skeyutl.pod" => [ + "doc/man1/openssl-skeyutl.pod.in" + ], "doc/man1/openssl-smime.pod" => [ "doc/man1/openssl-smime.pod.in" ], @@ -15948,12 +18459,30 @@ our %unified_info = ( "engines/e_padlock-x86_64.s" => [ "engines/asm/e_padlock-x86_64.pl" ], + "exporters/OpenSSLConfig.cmake" => [ + "exporters/cmake/OpenSSLConfig.cmake.in" + ], + "exporters/OpenSSLConfigVersion.cmake" => [ + "exporters/cmake/OpenSSLConfigVersion.cmake.in" + ], + "exporters/libcrypto.pc" => [ + "exporters/pkg-config/libcrypto.pc.in" + ], + "exporters/libssl.pc" => [ + "exporters/pkg-config/libssl.pc.in" + ], + "exporters/openssl.pc" => [ + "exporters/pkg-config/openssl.pc.in" + ], "include/crypto/bn_conf.h" => [ "include/crypto/bn_conf.h.in" ], "include/crypto/dso_conf.h" => [ "include/crypto/dso_conf.h.in" ], + "include/internal/param_names.h" => [ + "include/internal/param_names.h.in" + ], "include/openssl/asn1.h" => [ "include/openssl/asn1.h.in" ], @@ -15969,12 +18498,18 @@ our %unified_info = ( "include/openssl/cms.h" => [ "include/openssl/cms.h.in" ], + "include/openssl/comp.h" => [ + "include/openssl/comp.h.in" + ], "include/openssl/conf.h" => [ "include/openssl/conf.h.in" ], "include/openssl/configuration.h" => [ "include/openssl/configuration.h.in" ], + "include/openssl/core_names.h" => [ + "include/openssl/core_names.h.in" + ], "include/openssl/crmf.h" => [ "include/openssl/crmf.h.in" ], @@ -16023,20 +18558,47 @@ our %unified_info = ( "include/openssl/x509.h" => [ "include/openssl/x509.h.in" ], + "include/openssl/x509_acert.h" => [ + "include/openssl/x509_acert.h.in" + ], "include/openssl/x509_vfy.h" => [ "include/openssl/x509_vfy.h.in" ], "include/openssl/x509v3.h" => [ "include/openssl/x509v3.h.in" ], + "installdata.pm" => [ + "util/mkinstallvars.pl", + "\"PREFIX=\$(INSTALLTOP)\"", + "BINDIR=bin", + "\"LIBDIR=\$(LIBDIR)\"", + "\"libdir=\$(libdir)\"", + "INCLUDEDIR=include", + "APPLINKDIR=include/openssl", + "\"ENGINESDIR=\$(ENGINESDIR)\"", + "\"MODULESDIR=\$(MODULESDIR)\"", + "\"PKGCONFIGDIR=\$(PKGCONFIGDIR)\"", + "\"CMAKECONFIGDIR=\$(CMAKECONFIGDIR)\"", + "\"LDLIBS=\$(LIB_EX_LIBS)\"", + "\"VERSION=\$(VERSION)\"" + ], "libcrypto.ld" => [ "util/libcrypto.num", "libcrypto" ], + "libcrypto.pc" => [ + "exporters/pkg-config/libcrypto.pc.in" + ], "libssl.ld" => [ "util/libssl.num", "libssl" ], + "libssl.pc" => [ + "exporters/pkg-config/libssl.pc.in" + ], + "openssl.pc" => [ + "exporters/pkg-config/openssl.pc.in" + ], "providers/common/der/der_digests_gen.c" => [ "providers/common/der/der_digests_gen.c.in" ], @@ -16049,9 +18611,15 @@ our %unified_info = ( "providers/common/der/der_ecx_gen.c" => [ "providers/common/der/der_ecx_gen.c.in" ], + "providers/common/der/der_ml_dsa_gen.c" => [ + "providers/common/der/der_ml_dsa_gen.c.in" + ], "providers/common/der/der_rsa_gen.c" => [ "providers/common/der/der_rsa_gen.c.in" ], + "providers/common/der/der_slh_dsa_gen.c" => [ + "providers/common/der/der_slh_dsa_gen.c.in" + ], "providers/common/der/der_sm2_gen.c" => [ "providers/common/der/der_sm2_gen.c.in" ], @@ -16070,9 +18638,15 @@ our %unified_info = ( "providers/common/include/prov/der_ecx.h" => [ "providers/common/include/prov/der_ecx.h.in" ], + "providers/common/include/prov/der_ml_dsa.h" => [ + "providers/common/include/prov/der_ml_dsa.h.in" + ], "providers/common/include/prov/der_rsa.h" => [ "providers/common/include/prov/der_rsa.h.in" ], + "providers/common/include/prov/der_slh_dsa.h" => [ + "providers/common/include/prov/der_slh_dsa.h.in" + ], "providers/common/include/prov/der_sm2.h" => [ "providers/common/include/prov/der_sm2.h.in" ], @@ -16114,6 +18688,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "buffer" ], + "test/buildtest_byteorder.c" => [ + "test/generate_buildtest.pl", + "byteorder" + ], "test/buildtest_camellia.c" => [ "test/generate_buildtest.pl", "camellia" @@ -16146,10 +18724,6 @@ our %unified_info = ( "test/generate_buildtest.pl", "core_dispatch" ], - "test/buildtest_core_names.c" => [ - "test/generate_buildtest.pl", - "core_names" - ], "test/buildtest_core_object.c" => [ "test/generate_buildtest.pl", "core_object" @@ -16182,6 +18756,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "e_os2" ], + "test/buildtest_e_ostime.c" => [ + "test/generate_buildtest.pl", + "e_ostime" + ], "test/buildtest_ebcdic.c" => [ "test/generate_buildtest.pl", "ebcdic" @@ -16218,6 +18796,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "hmac" ], + "test/buildtest_hpke.c" => [ + "test/generate_buildtest.pl", + "hpke" + ], "test/buildtest_http.c" => [ "test/generate_buildtest.pl", "http" @@ -16226,6 +18808,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "idea" ], + "test/buildtest_indicator.c" => [ + "test/generate_buildtest.pl", + "indicator" + ], "test/buildtest_kdf.c" => [ "test/generate_buildtest.pl", "kdf" @@ -16246,6 +18832,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "mdc2" ], + "test/buildtest_ml_kem.c" => [ + "test/generate_buildtest.pl", + "ml_kem" + ], "test/buildtest_modes.c" => [ "test/generate_buildtest.pl", "modes" @@ -16286,6 +18876,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "provider" ], + "test/buildtest_quic.c" => [ + "test/generate_buildtest.pl", + "quic" + ], "test/buildtest_rand.c" => [ "test/generate_buildtest.pl", "rand" @@ -16342,6 +18936,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "symhacks" ], + "test/buildtest_thread.c" => [ + "test/generate_buildtest.pl", + "thread" + ], "test/buildtest_tls1.c" => [ "test/generate_buildtest.pl", "tls1" @@ -16422,6 +19020,7 @@ our %unified_info = ( "doc/html/man1/openssl-s_server.html", "doc/html/man1/openssl-s_time.html", "doc/html/man1/openssl-sess_id.html", + "doc/html/man1/openssl-skeyutl.html", "doc/html/man1/openssl-smime.html", "doc/html/man1/openssl-speed.html", "doc/html/man1/openssl-spkac.html", @@ -16471,6 +19070,7 @@ our %unified_info = ( "doc/html/man3/BIO_find_type.html", "doc/html/man3/BIO_get_data.html", "doc/html/man3/BIO_get_ex_new_index.html", + "doc/html/man3/BIO_get_rpoll_descriptor.html", "doc/html/man3/BIO_meth_new.html", "doc/html/man3/BIO_new.html", "doc/html/man3/BIO_new_CMS.html", @@ -16483,11 +19083,13 @@ our %unified_info = ( "doc/html/man3/BIO_s_connect.html", "doc/html/man3/BIO_s_core.html", "doc/html/man3/BIO_s_datagram.html", + "doc/html/man3/BIO_s_dgram_pair.html", "doc/html/man3/BIO_s_fd.html", "doc/html/man3/BIO_s_file.html", "doc/html/man3/BIO_s_mem.html", "doc/html/man3/BIO_s_null.html", "doc/html/man3/BIO_s_socket.html", + "doc/html/man3/BIO_sendmmsg.html", "doc/html/man3/BIO_set_callback.html", "doc/html/man3/BIO_should_retry.html", "doc/html/man3/BIO_socket_wait.html", @@ -16512,6 +19114,7 @@ our %unified_info = ( "doc/html/man3/BN_swap.html", "doc/html/man3/BN_zero.html", "doc/html/man3/BUF_MEM_new.html", + "doc/html/man3/CMAC_CTX.html", "doc/html/man3/CMS_EncryptedData_decrypt.html", "doc/html/man3/CMS_EncryptedData_encrypt.html", "doc/html/man3/CMS_EnvelopedData_create.html", @@ -16534,6 +19137,7 @@ our %unified_info = ( "doc/html/man3/CMS_uncompress.html", "doc/html/man3/CMS_verify.html", "doc/html/man3/CMS_verify_receipt.html", + "doc/html/man3/COMP_CTX_new.html", "doc/html/man3/CONF_modules_free.html", "doc/html/man3/CONF_modules_load_file.html", "doc/html/man3/CRYPTO_THREAD_run_once.html", @@ -16567,6 +19171,8 @@ our %unified_info = ( "doc/html/man3/DSA_size.html", "doc/html/man3/DTLS_get_data_mtu.html", "doc/html/man3/DTLS_set_timer_cb.html", + "doc/html/man3/DTLSv1_get_timeout.html", + "doc/html/man3/DTLSv1_handle_timeout.html", "doc/html/man3/DTLSv1_listen.html", "doc/html/man3/ECDSA_SIG_new.html", "doc/html/man3/ECDSA_sign.html", @@ -16613,6 +19219,7 @@ our %unified_info = ( "doc/html/man3/EVP_PKEY_CTX_ctrl.html", "doc/html/man3/EVP_PKEY_CTX_get0_libctx.html", "doc/html/man3/EVP_PKEY_CTX_get0_pkey.html", + "doc/html/man3/EVP_PKEY_CTX_get_algor.html", "doc/html/man3/EVP_PKEY_CTX_new.html", "doc/html/man3/EVP_PKEY_CTX_set1_pbe_pass.html", "doc/html/man3/EVP_PKEY_CTX_set_hkdf_md.html", @@ -16652,6 +19259,8 @@ our %unified_info = ( "doc/html/man3/EVP_PKEY_verify_recover.html", "doc/html/man3/EVP_RAND.html", "doc/html/man3/EVP_SIGNATURE.html", + "doc/html/man3/EVP_SKEY.html", + "doc/html/man3/EVP_SKEYMGMT.html", "doc/html/man3/EVP_SealInit.html", "doc/html/man3/EVP_SignInit.html", "doc/html/man3/EVP_VerifyInit.html", @@ -16681,6 +19290,7 @@ our %unified_info = ( "doc/html/man3/EVP_sm3.html", "doc/html/man3/EVP_sm4_cbc.html", "doc/html/man3/EVP_whirlpool.html", + "doc/html/man3/GENERAL_NAME.html", "doc/html/man3/HMAC.html", "doc/html/man3/MD5.html", "doc/html/man3/MDC2_Init.html", @@ -16705,14 +19315,18 @@ our %unified_info = ( "doc/html/man3/OPENSSL_init_ssl.html", "doc/html/man3/OPENSSL_instrument_bus.html", "doc/html/man3/OPENSSL_load_builtin_modules.html", + "doc/html/man3/OPENSSL_load_u16_le.html", "doc/html/man3/OPENSSL_malloc.html", + "doc/html/man3/OPENSSL_riscvcap.html", "doc/html/man3/OPENSSL_s390xcap.html", "doc/html/man3/OPENSSL_secure_malloc.html", "doc/html/man3/OPENSSL_strcasecmp.html", "doc/html/man3/OSSL_ALGORITHM.html", "doc/html/man3/OSSL_CALLBACK.html", + "doc/html/man3/OSSL_CMP_ATAV_set0.html", "doc/html/man3/OSSL_CMP_CTX_new.html", "doc/html/man3/OSSL_CMP_HDR_get0_transactionID.html", + "doc/html/man3/OSSL_CMP_ITAV_new_caCerts.html", "doc/html/man3/OSSL_CMP_ITAV_set0.html", "doc/html/man3/OSSL_CMP_MSG_get0_header.html", "doc/html/man3/OSSL_CMP_MSG_http_perform.html", @@ -16736,18 +19350,27 @@ our %unified_info = ( "doc/html/man3/OSSL_ENCODER_CTX.html", "doc/html/man3/OSSL_ENCODER_CTX_new_for_pkey.html", "doc/html/man3/OSSL_ENCODER_to_bio.html", + "doc/html/man3/OSSL_ERR_STATE_save.html", "doc/html/man3/OSSL_ESS_check_signing_certs.html", + "doc/html/man3/OSSL_GENERAL_NAMES_print.html", + "doc/html/man3/OSSL_HPKE_CTX_new.html", "doc/html/man3/OSSL_HTTP_REQ_CTX.html", "doc/html/man3/OSSL_HTTP_parse_url.html", "doc/html/man3/OSSL_HTTP_transfer.html", + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX.html", + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX_print.html", + "doc/html/man3/OSSL_INDICATOR_set_callback.html", "doc/html/man3/OSSL_ITEM.html", "doc/html/man3/OSSL_LIB_CTX.html", + "doc/html/man3/OSSL_LIB_CTX_set_conf_diagnostics.html", "doc/html/man3/OSSL_PARAM.html", "doc/html/man3/OSSL_PARAM_BLD.html", "doc/html/man3/OSSL_PARAM_allocate_from_text.html", "doc/html/man3/OSSL_PARAM_dup.html", "doc/html/man3/OSSL_PARAM_int.html", + "doc/html/man3/OSSL_PARAM_print_to_bio.html", "doc/html/man3/OSSL_PROVIDER.html", + "doc/html/man3/OSSL_QUIC_client_method.html", "doc/html/man3/OSSL_SELF_TEST_new.html", "doc/html/man3/OSSL_SELF_TEST_set_callback.html", "doc/html/man3/OSSL_STORE_INFO.html", @@ -16756,11 +19379,13 @@ our %unified_info = ( "doc/html/man3/OSSL_STORE_attach.html", "doc/html/man3/OSSL_STORE_expect.html", "doc/html/man3/OSSL_STORE_open.html", + "doc/html/man3/OSSL_sleep.html", "doc/html/man3/OSSL_trace_enabled.html", "doc/html/man3/OSSL_trace_get_category_num.html", "doc/html/man3/OSSL_trace_set_channel.html", "doc/html/man3/OpenSSL_add_all_algorithms.html", "doc/html/man3/OpenSSL_version.html", + "doc/html/man3/PBMAC1_get1_pbkdf2_param.html", "doc/html/man3/PEM_X509_INFO_read_bio_ex.html", "doc/html/man3/PEM_bytes_read_bio.html", "doc/html/man3/PEM_read.html", @@ -16773,6 +19398,7 @@ our %unified_info = ( "doc/html/man3/PKCS12_SAFEBAG_create_cert.html", "doc/html/man3/PKCS12_SAFEBAG_get0_attrs.html", "doc/html/man3/PKCS12_SAFEBAG_get1_cert.html", + "doc/html/man3/PKCS12_SAFEBAG_set0_attrs.html", "doc/html/man3/PKCS12_add1_attr_by_NID.html", "doc/html/man3/PKCS12_add_CSPName_asc.html", "doc/html/man3/PKCS12_add_cert.html", @@ -16864,6 +19490,7 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_sess_set_get_cb.html", "doc/html/man3/SSL_CTX_sessions.html", "doc/html/man3/SSL_CTX_set0_CA_list.html", + "doc/html/man3/SSL_CTX_set1_cert_comp_preference.html", "doc/html/man3/SSL_CTX_set1_curves.html", "doc/html/man3/SSL_CTX_set1_sigalgs.html", "doc/html/man3/SSL_CTX_set1_verify_cert_store.html", @@ -16877,6 +19504,7 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_ct_validation_callback.html", "doc/html/man3/SSL_CTX_set_ctlog_list_file.html", "doc/html/man3/SSL_CTX_set_default_passwd_cb.html", + "doc/html/man3/SSL_CTX_set_domain_flags.html", "doc/html/man3/SSL_CTX_set_generate_session_id.html", "doc/html/man3/SSL_CTX_set_info_callback.html", "doc/html/man3/SSL_CTX_set_keylog_callback.html", @@ -16884,6 +19512,7 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_min_proto_version.html", "doc/html/man3/SSL_CTX_set_mode.html", "doc/html/man3/SSL_CTX_set_msg_callback.html", + "doc/html/man3/SSL_CTX_set_new_pending_conn_cb.html", "doc/html/man3/SSL_CTX_set_num_tickets.html", "doc/html/man3/SSL_CTX_set_options.html", "doc/html/man3/SSL_CTX_set_psk_client_callback.html", @@ -16922,6 +19551,7 @@ our %unified_info = ( "doc/html/man3/SSL_SESSION_print.html", "doc/html/man3/SSL_SESSION_set1_id.html", "doc/html/man3/SSL_accept.html", + "doc/html/man3/SSL_accept_stream.html", "doc/html/man3/SSL_alert_type_string.html", "doc/html/man3/SSL_alloc_buffers.html", "doc/html/man3/SSL_check_chain.html", @@ -16931,59 +19561,90 @@ our %unified_info = ( "doc/html/man3/SSL_export_keying_material.html", "doc/html/man3/SSL_extension_supported.html", "doc/html/man3/SSL_free.html", + "doc/html/man3/SSL_get0_connection.html", + "doc/html/man3/SSL_get0_group_name.html", + "doc/html/man3/SSL_get0_peer_rpk.html", "doc/html/man3/SSL_get0_peer_scts.html", + "doc/html/man3/SSL_get1_builtin_sigalgs.html", "doc/html/man3/SSL_get_SSL_CTX.html", "doc/html/man3/SSL_get_all_async_fds.html", "doc/html/man3/SSL_get_certificate.html", "doc/html/man3/SSL_get_ciphers.html", "doc/html/man3/SSL_get_client_random.html", + "doc/html/man3/SSL_get_conn_close_info.html", "doc/html/man3/SSL_get_current_cipher.html", "doc/html/man3/SSL_get_default_timeout.html", "doc/html/man3/SSL_get_error.html", + "doc/html/man3/SSL_get_event_timeout.html", "doc/html/man3/SSL_get_extms_support.html", "doc/html/man3/SSL_get_fd.html", + "doc/html/man3/SSL_get_handshake_rtt.html", "doc/html/man3/SSL_get_peer_cert_chain.html", "doc/html/man3/SSL_get_peer_certificate.html", "doc/html/man3/SSL_get_peer_signature_nid.html", "doc/html/man3/SSL_get_peer_tmp_key.html", "doc/html/man3/SSL_get_psk_identity.html", "doc/html/man3/SSL_get_rbio.html", + "doc/html/man3/SSL_get_rpoll_descriptor.html", "doc/html/man3/SSL_get_session.html", "doc/html/man3/SSL_get_shared_sigalgs.html", + "doc/html/man3/SSL_get_stream_id.html", + "doc/html/man3/SSL_get_stream_read_state.html", + "doc/html/man3/SSL_get_value_uint.html", "doc/html/man3/SSL_get_verify_result.html", "doc/html/man3/SSL_get_version.html", "doc/html/man3/SSL_group_to_name.html", + "doc/html/man3/SSL_handle_events.html", "doc/html/man3/SSL_in_init.html", + "doc/html/man3/SSL_inject_net_dgram.html", "doc/html/man3/SSL_key_update.html", "doc/html/man3/SSL_library_init.html", "doc/html/man3/SSL_load_client_CA_file.html", "doc/html/man3/SSL_new.html", + "doc/html/man3/SSL_new_domain.html", + "doc/html/man3/SSL_new_listener.html", + "doc/html/man3/SSL_new_stream.html", "doc/html/man3/SSL_pending.html", + "doc/html/man3/SSL_poll.html", "doc/html/man3/SSL_read.html", "doc/html/man3/SSL_read_early_data.html", "doc/html/man3/SSL_rstate_string.html", "doc/html/man3/SSL_session_reused.html", "doc/html/man3/SSL_set1_host.html", + "doc/html/man3/SSL_set1_initial_peer_addr.html", + "doc/html/man3/SSL_set1_server_cert_type.html", "doc/html/man3/SSL_set_async_callback.html", "doc/html/man3/SSL_set_bio.html", + "doc/html/man3/SSL_set_blocking_mode.html", "doc/html/man3/SSL_set_connect_state.html", + "doc/html/man3/SSL_set_default_stream_mode.html", "doc/html/man3/SSL_set_fd.html", + "doc/html/man3/SSL_set_incoming_stream_policy.html", + "doc/html/man3/SSL_set_quic_tls_cbs.html", "doc/html/man3/SSL_set_retry_verify.html", "doc/html/man3/SSL_set_session.html", + "doc/html/man3/SSL_set_session_secret_cb.html", "doc/html/man3/SSL_set_shutdown.html", "doc/html/man3/SSL_set_verify_result.html", "doc/html/man3/SSL_shutdown.html", "doc/html/man3/SSL_state_string.html", + "doc/html/man3/SSL_stream_conclude.html", + "doc/html/man3/SSL_stream_reset.html", "doc/html/man3/SSL_want.html", "doc/html/man3/SSL_write.html", "doc/html/man3/TS_RESP_CTX_new.html", - "doc/html/man3/TS_VERIFY_CTX_set_certs.html", + "doc/html/man3/TS_VERIFY_CTX.html", "doc/html/man3/UI_STRING.html", "doc/html/man3/UI_UTIL_read_pw.html", "doc/html/man3/UI_create_method.html", "doc/html/man3/UI_new.html", "doc/html/man3/X509V3_get_d2i.html", "doc/html/man3/X509V3_set_ctx.html", + "doc/html/man3/X509_ACERT_add1_attr.html", + "doc/html/man3/X509_ACERT_add_attr_nconf.html", + "doc/html/man3/X509_ACERT_get0_holder_baseCertId.html", + "doc/html/man3/X509_ACERT_get_attr.html", + "doc/html/man3/X509_ACERT_print_ex.html", "doc/html/man3/X509_ALGOR_dup.html", "doc/html/man3/X509_ATTRIBUTE.html", "doc/html/man3/X509_CRL_get0_by_serial.html", @@ -17000,6 +19661,7 @@ our %unified_info = ( "doc/html/man3/X509_REQ_get_attr.html", "doc/html/man3/X509_REQ_get_extensions.html", "doc/html/man3/X509_SIG_get0.html", + "doc/html/man3/X509_STORE_CTX_get_by_subject.html", "doc/html/man3/X509_STORE_CTX_get_error.html", "doc/html/man3/X509_STORE_CTX_new.html", "doc/html/man3/X509_STORE_CTX_set_verify_cb.html", @@ -17022,6 +19684,7 @@ our %unified_info = ( "doc/html/man3/X509_get0_notBefore.html", "doc/html/man3/X509_get0_signature.html", "doc/html/man3/X509_get0_uids.html", + "doc/html/man3/X509_get_default_cert_file.html", "doc/html/man3/X509_get_extension_flags.html", "doc/html/man3/X509_get_pubkey.html", "doc/html/man3/X509_get_serialNumber.html", @@ -17067,12 +19730,15 @@ our %unified_info = ( "doc/html/man7/EVP_CIPHER-RC5.html", "doc/html/man7/EVP_CIPHER-SEED.html", "doc/html/man7/EVP_CIPHER-SM4.html", + "doc/html/man7/EVP_KDF-ARGON2.html", "doc/html/man7/EVP_KDF-HKDF.html", + "doc/html/man7/EVP_KDF-HMAC-DRBG.html", "doc/html/man7/EVP_KDF-KB.html", "doc/html/man7/EVP_KDF-KRB5KDF.html", "doc/html/man7/EVP_KDF-PBKDF1.html", "doc/html/man7/EVP_KDF-PBKDF2.html", "doc/html/man7/EVP_KDF-PKCS12KDF.html", + "doc/html/man7/EVP_KDF-PVKKDF.html", "doc/html/man7/EVP_KDF-SCRYPT.html", "doc/html/man7/EVP_KDF-SS.html", "doc/html/man7/EVP_KDF-SSHKDF.html", @@ -17081,7 +19747,10 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-X942-ASN1.html", "doc/html/man7/EVP_KDF-X942-CONCAT.html", "doc/html/man7/EVP_KDF-X963.html", + "doc/html/man7/EVP_KEM-EC.html", + "doc/html/man7/EVP_KEM-ML-KEM.html", "doc/html/man7/EVP_KEM-RSA.html", + "doc/html/man7/EVP_KEM-X25519.html", "doc/html/man7/EVP_KEYEXCH-DH.html", "doc/html/man7/EVP_KEYEXCH-ECDH.html", "doc/html/man7/EVP_KEYEXCH-X25519.html", @@ -17093,6 +19762,7 @@ our %unified_info = ( "doc/html/man7/EVP_MAC-Poly1305.html", "doc/html/man7/EVP_MAC-Siphash.html", "doc/html/man7/EVP_MD-BLAKE2.html", + "doc/html/man7/EVP_MD-KECCAK.html", "doc/html/man7/EVP_MD-MD2.html", "doc/html/man7/EVP_MD-MD4.html", "doc/html/man7/EVP_MD-MD5-SHA1.html", @@ -17112,12 +19782,17 @@ our %unified_info = ( "doc/html/man7/EVP_PKEY-EC.html", "doc/html/man7/EVP_PKEY-FFC.html", "doc/html/man7/EVP_PKEY-HMAC.html", + "doc/html/man7/EVP_PKEY-ML-DSA.html", + "doc/html/man7/EVP_PKEY-ML-KEM.html", "doc/html/man7/EVP_PKEY-RSA.html", + "doc/html/man7/EVP_PKEY-SLH-DSA.html", "doc/html/man7/EVP_PKEY-SM2.html", "doc/html/man7/EVP_PKEY-X25519.html", + "doc/html/man7/EVP_RAND-CRNG-TEST.html", "doc/html/man7/EVP_RAND-CTR-DRBG.html", "doc/html/man7/EVP_RAND-HASH-DRBG.html", "doc/html/man7/EVP_RAND-HMAC-DRBG.html", + "doc/html/man7/EVP_RAND-JITTER.html", "doc/html/man7/EVP_RAND-SEED-SRC.html", "doc/html/man7/EVP_RAND-TEST-RAND.html", "doc/html/man7/EVP_RAND.html", @@ -17125,17 +19800,19 @@ our %unified_info = ( "doc/html/man7/EVP_SIGNATURE-ECDSA.html", "doc/html/man7/EVP_SIGNATURE-ED25519.html", "doc/html/man7/EVP_SIGNATURE-HMAC.html", + "doc/html/man7/EVP_SIGNATURE-ML-DSA.html", "doc/html/man7/EVP_SIGNATURE-RSA.html", + "doc/html/man7/EVP_SIGNATURE-SLH-DSA.html", "doc/html/man7/OSSL_PROVIDER-FIPS.html", "doc/html/man7/OSSL_PROVIDER-base.html", "doc/html/man7/OSSL_PROVIDER-default.html", "doc/html/man7/OSSL_PROVIDER-legacy.html", "doc/html/man7/OSSL_PROVIDER-null.html", + "doc/html/man7/OSSL_STORE-winstore.html", "doc/html/man7/RAND.html", "doc/html/man7/RSA-PSS.html", "doc/html/man7/X25519.html", "doc/html/man7/bio.html", - "doc/html/man7/crypto.html", "doc/html/man7/ct.html", "doc/html/man7/des_modes.html", "doc/html/man7/evp.html", @@ -17146,14 +19823,31 @@ our %unified_info = ( "doc/html/man7/life_cycle-mac.html", "doc/html/man7/life_cycle-pkey.html", "doc/html/man7/life_cycle-rand.html", - "doc/html/man7/migration_guide.html", "doc/html/man7/openssl-core.h.html", "doc/html/man7/openssl-core_dispatch.h.html", "doc/html/man7/openssl-core_names.h.html", "doc/html/man7/openssl-env.html", "doc/html/man7/openssl-glossary.html", + "doc/html/man7/openssl-qlog.html", + "doc/html/man7/openssl-quic-concurrency.html", + "doc/html/man7/openssl-quic.html", "doc/html/man7/openssl-threads.html", "doc/html/man7/openssl_user_macros.html", + "doc/html/man7/ossl-guide-introduction.html", + "doc/html/man7/ossl-guide-libcrypto-introduction.html", + "doc/html/man7/ossl-guide-libraries-introduction.html", + "doc/html/man7/ossl-guide-libssl-introduction.html", + "doc/html/man7/ossl-guide-migration.html", + "doc/html/man7/ossl-guide-quic-client-block.html", + "doc/html/man7/ossl-guide-quic-client-non-block.html", + "doc/html/man7/ossl-guide-quic-introduction.html", + "doc/html/man7/ossl-guide-quic-multi-stream.html", + "doc/html/man7/ossl-guide-quic-server-block.html", + "doc/html/man7/ossl-guide-quic-server-non-block.html", + "doc/html/man7/ossl-guide-tls-client-block.html", + "doc/html/man7/ossl-guide-tls-client-non-block.html", + "doc/html/man7/ossl-guide-tls-introduction.html", + "doc/html/man7/ossl-guide-tls-server-block.html", "doc/html/man7/ossl_store-file.html", "doc/html/man7/ossl_store.html", "doc/html/man7/passphrase-encoding.html", @@ -17172,10 +19866,10 @@ our %unified_info = ( "doc/html/man7/provider-object.html", "doc/html/man7/provider-rand.html", "doc/html/man7/provider-signature.html", + "doc/html/man7/provider-skeymgmt.html", "doc/html/man7/provider-storemgmt.html", "doc/html/man7/provider.html", "doc/html/man7/proxy-certificates.html", - "doc/html/man7/ssl.html", "doc/html/man7/x509.html" ] }, @@ -17190,12 +19884,21 @@ our %unified_info = ( ] }, "includes" => { + "OpenSSLConfig.cmake" => [ + "." + ], + "OpenSSLConfigVersion.cmake" => [ + "." + ], "apps/asn1parse.o" => [ "apps" ], "apps/ca.o" => [ "apps" ], + "apps/ca_internals_test-bin-ca.o" => [ + "apps" + ], "apps/ciphers.o" => [ "apps" ], @@ -17422,6 +20125,9 @@ our %unified_info = ( "apps/openssl-bin-sess_id.o" => [ "apps" ], + "apps/openssl-bin-skeyutl.o" => [ + "apps" + ], "apps/openssl-bin-smime.o" => [ "apps" ], @@ -17509,6 +20215,9 @@ our %unified_info = ( "apps/sess_id.o" => [ "apps" ], + "apps/skeyutl.o" => [ + "apps" + ], "apps/smime.o" => [ "apps" ], @@ -17560,6 +20269,12 @@ our %unified_info = ( "crypto/aes/bsaes-armv7.o" => [ "crypto" ], + "crypto/aes/vpaes-armv8.o" => [ + "crypto" + ], + "crypto/aes/vpaes-loongarch64.o" => [ + "crypto" + ], "crypto/arm64cpuid.o" => [ "crypto" ], @@ -17611,9 +20326,15 @@ our %unified_info = ( "crypto/chacha/chacha-armv4.o" => [ "crypto" ], + "crypto/chacha/chacha-armv8-sve.o" => [ + "crypto" + ], "crypto/chacha/chacha-armv8.o" => [ "crypto" ], + "crypto/chacha/chacha-loongarch64.o" => [ + "crypto" + ], "crypto/chacha/chacha-s390x.o" => [ "crypto" ], @@ -17638,15 +20359,27 @@ our %unified_info = ( "crypto/ec/ecp_s390x_nistp.o" => [ "crypto" ], + "crypto/ec/ecp_sm2p256-armv8.o" => [ + "crypto" + ], + "crypto/ec/ecx_key.o" => [ + "crypto" + ], "crypto/ec/ecx_meth.o" => [ "crypto" ], "crypto/ec/ecx_s390x.o" => [ "crypto" ], + "crypto/ec/libcrypto-lib-ecx_key.o" => [ + "crypto" + ], "crypto/ec/libcrypto-lib-ecx_meth.o" => [ "crypto" ], + "crypto/ec/libfips-lib-ecx_key.o" => [ + "crypto" + ], "crypto/evp/e_aes.o" => [ "crypto", "crypto/modes" @@ -17718,9 +20451,18 @@ our %unified_info = ( "crypto/libfips-lib-cpuid.o" => [ "." ], + "crypto/md5/md5-aarch64.o" => [ + "crypto" + ], + "crypto/md5/md5-loongarch64.o" => [ + "crypto" + ], "crypto/md5/md5-sparcv9.o" => [ "crypto" ], + "crypto/modes/aes-gcm-armv8-unroll8_64.o" => [ + "crypto" + ], "crypto/modes/aes-gcm-armv8_64.o" => [ "crypto" ], @@ -17745,6 +20487,9 @@ our %unified_info = ( "crypto/modes/libfips-lib-gcm128.o" => [ "crypto" ], + "crypto/params_idx.c" => [ + "util/perl" + ], "crypto/poly1305/poly1305-armv4.o" => [ "crypto" ], @@ -17766,6 +20511,9 @@ our %unified_info = ( "crypto/sha/keccak1600-armv4.o" => [ "crypto" ], + "crypto/sha/keccak1600-armv8.o" => [ + "crypto" + ], "crypto/sha/sha1-armv4-large.o" => [ "crypto" ], @@ -17811,6 +20559,18 @@ our %unified_info = ( "crypto/sha/sha512-sparcv9.o" => [ "crypto" ], + "crypto/sm3/sm3-armv8.o" => [ + "crypto" + ], + "crypto/sm4/sm4-armv8.o" => [ + "crypto" + ], + "crypto/sm4/vpsm4-armv8.o" => [ + "crypto" + ], + "crypto/sm4/vpsm4_ex-armv8.o" => [ + "crypto" + ], "doc/man1/openssl-asn1parse.pod" => [ "doc" ], @@ -17943,6 +20703,9 @@ our %unified_info = ( "doc/man1/openssl-sess_id.pod" => [ "doc" ], + "doc/man1/openssl-skeyutl.pod" => [ + "doc" + ], "doc/man1/openssl-smime.pod" => [ "doc" ], @@ -17970,6 +20733,24 @@ our %unified_info = ( "doc/man1/openssl-x509.pod" => [ "doc" ], + "exporters/OpenSSLConfig.cmake" => [ + "." + ], + "exporters/OpenSSLConfigVersion.cmake" => [ + "." + ], + "exporters/libcrypto.pc" => [ + "." + ], + "exporters/libssl.pc" => [ + "." + ], + "exporters/openssl.pc" => [ + "." + ], + "fuzz/acert-test" => [ + "include" + ], "fuzz/asn1-test" => [ "include" ], @@ -18000,12 +20781,69 @@ our %unified_info = ( "fuzz/ct-test" => [ "include" ], + "fuzz/decoder-test" => [ + "include" + ], + "fuzz/dtlsclient-test" => [ + "include" + ], + "fuzz/dtlsserver-test" => [ + "include" + ], + "fuzz/hashtable-test" => [ + "include" + ], + "fuzz/ml-dsa-test" => [ + "include" + ], + "fuzz/ml-kem-test" => [ + "include" + ], + "fuzz/pem-test" => [ + "include" + ], + "fuzz/provider-test" => [ + "include" + ], + "fuzz/punycode-test" => [ + "include" + ], + "fuzz/quic-client-test" => [ + "include" + ], + "fuzz/quic-lcidm-test" => [ + "include" + ], + "fuzz/quic-rcidm-test" => [ + "include" + ], + "fuzz/quic-server-test" => [ + "include" + ], + "fuzz/quic-srtm-test" => [ + "include" + ], "fuzz/server-test" => [ "include" ], + "fuzz/slh-dsa-test" => [ + "include" + ], + "fuzz/smime-test" => [ + "include" + ], + "fuzz/v3name-test" => [ + "include" + ], "fuzz/x509-test" => [ "include" ], + "include/internal/param_names.h" => [ + "util/perl" + ], + "include/openssl/core_names.h" => [ + "util/perl" + ], "libcrypto" => [ ".", "include", @@ -18016,6 +20854,9 @@ our %unified_info = ( ".", "util/perl/OpenSSL" ], + "libcrypto.pc" => [ + "." + ], "libssl" => [ ".", "include" @@ -18024,6 +20865,12 @@ our %unified_info = ( ".", "util/perl/OpenSSL" ], + "libssl.pc" => [ + "." + ], + "openssl.pc" => [ + "." + ], "providers/common/der/der_digests_gen.c" => [ "providers/common/der" ], @@ -18063,6 +20910,15 @@ our %unified_info = ( "providers/common/der/der_ecx_key.o" => [ "providers/common/include/prov" ], + "providers/common/der/der_ml_dsa_gen.c" => [ + "providers/common/der" + ], + "providers/common/der/der_ml_dsa_gen.o" => [ + "providers/common/include/prov" + ], + "providers/common/der/der_ml_dsa_key.o" => [ + "providers/common/include/prov" + ], "providers/common/der/der_rsa_gen.c" => [ "providers/common/der" ], @@ -18075,6 +20931,15 @@ our %unified_info = ( "providers/common/der/der_rsa_sig.o" => [ "providers/common/include/prov" ], + "providers/common/der/der_slh_dsa_gen.c" => [ + "providers/common/der" + ], + "providers/common/der/der_slh_dsa_gen.o" => [ + "providers/common/include/prov" + ], + "providers/common/der/der_slh_dsa_key.o" => [ + "providers/common/include/prov" + ], "providers/common/der/der_sm2_gen.c" => [ "providers/common/der" ], @@ -18120,12 +20985,24 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ecx_key.o" => [ "providers/common/include/prov" ], + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o" => [ + "providers/common/include/prov" + ], + "providers/common/der/libcommon-lib-der_ml_dsa_key.o" => [ + "providers/common/include/prov" + ], "providers/common/der/libcommon-lib-der_rsa_gen.o" => [ "providers/common/include/prov" ], "providers/common/der/libcommon-lib-der_rsa_key.o" => [ "providers/common/include/prov" ], + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o" => [ + "providers/common/include/prov" + ], + "providers/common/der/libcommon-lib-der_slh_dsa_key.o" => [ + "providers/common/include/prov" + ], "providers/common/der/libcommon-lib-der_wrap_gen.o" => [ "providers/common/include/prov" ], @@ -18156,9 +21033,15 @@ our %unified_info = ( "providers/common/include/prov/der_ecx.h" => [ "providers/common/der" ], + "providers/common/include/prov/der_ml_dsa.h" => [ + "providers/common/der" + ], "providers/common/include/prov/der_rsa.h" => [ "providers/common/der" ], + "providers/common/include/prov/der_slh_dsa.h" => [ + "providers/common/der" + ], "providers/common/include/prov/der_sm2.h" => [ "providers/common/der" ], @@ -18201,9 +21084,15 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-eddsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/libdefault-lib-rsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/libdefault-lib-sm2_sig.o" => [ "providers/common/include/prov" ], @@ -18216,12 +21105,24 @@ our %unified_info = ( "providers/implementations/signature/libfips-lib-eddsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/libfips-lib-rsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o" => [ + "providers/common/include/prov" + ], + "providers/implementations/signature/ml_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/rsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/slh_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/sm2_sig.o" => [ "providers/common/include/prov" ], @@ -18234,28 +21135,39 @@ our %unified_info = ( "crypto", "include", "providers/implementations/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" ], "providers/libdefault.a" => [ ".", "crypto", "include", "providers/implementations/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" ], "providers/libfips.a" => [ ".", "crypto", "include", "providers/implementations/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" ], "providers/liblegacy.a" => [ ".", "crypto", "include", "providers/implementations/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" + ], + "providers/libtemplate.a" => [ + "crypto", + "include", + "providers/implementations/include", + "providers/common/include", + "providers/fips/include" ], "test/aborttest" => [ "include", @@ -18324,6 +21236,14 @@ our %unified_info = ( "include", "apps/include" ], + "test/bio_addr_test" => [ + "include", + "apps/include" + ], + "test/bio_base64_test" => [ + "include", + "apps/include" + ], "test/bio_callback_test" => [ "include", "apps/include" @@ -18332,11 +21252,20 @@ our %unified_info = ( "include", "apps/include" ], + "test/bio_dgram_test" => [ + "include", + "apps/include", + "." + ], "test/bio_enc_test" => [ "include", "apps/include" ], - "test/bio_memleak_test" => [ + "test/bio_memleak_test" => [ + "include", + "apps/include" + ], + "test/bio_meth_test" => [ "include", "apps/include" ], @@ -18353,6 +21282,11 @@ our %unified_info = ( "include", "apps/include" ], + "test/bio_tfo_test" => [ + "include", + "apps/include", + "." + ], "test/bioprinttest" => [ "include", "apps/include" @@ -18367,6 +21301,9 @@ our %unified_info = ( "include", "apps/include" ], + "test/build_wincrypt_test" => [ + "include" + ], "test/buildtest_c_aes" => [ "include" ], @@ -18382,6 +21319,9 @@ our %unified_info = ( "test/buildtest_c_buffer" => [ "include" ], + "test/buildtest_c_byteorder" => [ + "include" + ], "test/buildtest_c_camellia" => [ "include" ], @@ -18406,9 +21346,6 @@ our %unified_info = ( "test/buildtest_c_core_dispatch" => [ "include" ], - "test/buildtest_c_core_names" => [ - "include" - ], "test/buildtest_c_core_object" => [ "include" ], @@ -18433,6 +21370,9 @@ our %unified_info = ( "test/buildtest_c_e_os2" => [ "include" ], + "test/buildtest_c_e_ostime" => [ + "include" + ], "test/buildtest_c_ebcdic" => [ "include" ], @@ -18460,12 +21400,18 @@ our %unified_info = ( "test/buildtest_c_hmac" => [ "include" ], + "test/buildtest_c_hpke" => [ + "include" + ], "test/buildtest_c_http" => [ "include" ], "test/buildtest_c_idea" => [ "include" ], + "test/buildtest_c_indicator" => [ + "include" + ], "test/buildtest_c_kdf" => [ "include" ], @@ -18481,6 +21427,9 @@ our %unified_info = ( "test/buildtest_c_mdc2" => [ "include" ], + "test/buildtest_c_ml_kem" => [ + "include" + ], "test/buildtest_c_modes" => [ "include" ], @@ -18511,6 +21460,9 @@ our %unified_info = ( "test/buildtest_c_provider" => [ "include" ], + "test/buildtest_c_quic" => [ + "include" + ], "test/buildtest_c_rand" => [ "include" ], @@ -18553,6 +21505,9 @@ our %unified_info = ( "test/buildtest_c_symhacks" => [ "include" ], + "test/buildtest_c_thread" => [ + "include" + ], "test/buildtest_c_tls1" => [ "include" ], @@ -18568,10 +21523,24 @@ our %unified_info = ( "test/buildtest_c_whrlpool" => [ "include" ], + "test/byteorder_test" => [ + "include", + "apps/include" + ], + "test/ca_internals_test" => [ + ".", + "include", + "apps/include" + ], "test/casttest" => [ "include", "apps/include" ], + "test/cert_comp_test" => [ + "include", + "apps/include", + "." + ], "test/chacha_internal_test" => [ ".", "include", @@ -18695,6 +21664,11 @@ our %unified_info = ( "include", "apps/include" ], + "test/decoder_propq_test" => [ + ".", + "include", + "apps/include" + ], "test/defltfips_test" => [ "include", "apps/include" @@ -18710,7 +21684,8 @@ our %unified_info = ( "test/drbgtest" => [ "include", "apps/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" ], "test/dsa_no_digest_size_test" => [ "include", @@ -18753,7 +21728,9 @@ our %unified_info = ( "test/endecode_test" => [ ".", "include", - "apps/include" + "apps/include", + "providers/common/include", + "providers/implementations/include" ], "test/endecoder_legacy_test" => [ ".", @@ -18798,6 +21775,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/evp_pkey_dhkem_test" => [ + "include", + "apps/include" + ], "test/evp_pkey_dparams_test" => [ "include", "apps/include" @@ -18806,10 +21787,18 @@ our %unified_info = ( "include", "apps/include" ], + "test/evp_skey_test" => [ + "include", + "apps/include" + ], "test/evp_test" => [ "include", "apps/include" ], + "test/evp_xof_test" => [ + "include", + "apps/include" + ], "test/exdatatest" => [ "include", "apps/include" @@ -18910,22 +21899,62 @@ our %unified_info = ( ".", "include" ], + "test/helpers/json_test-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/helpers/pkcs12.o" => [ ".", "include" ], + "test/helpers/pkcs12_api_test-bin-pkcs12.o" => [ + ".", + "include" + ], "test/helpers/pkcs12_format_test-bin-pkcs12.o" => [ ".", "include" ], + "test/helpers/quic_multistream_test-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quic_newcid_test-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quic_radix_test-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quic_srt_gen_test-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quicapitest-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quicfaultstest-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/helpers/recordlentest-bin-ssltestlib.o" => [ ".", "include" ], + "test/helpers/rpktest-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/helpers/servername_test-bin-ssltestlib.o" => [ ".", "include" ], + "test/helpers/ssl_handshake_rtt_test-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/helpers/ssl_test-bin-handshake.o" => [ ".", "include" @@ -18959,6 +21988,10 @@ our %unified_info = ( ".", "include" ], + "test/helpers/tls13groupselection_test-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/hexstr_test" => [ ".", "include", @@ -18968,6 +22001,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/hpke_test" => [ + "include", + "apps/include" + ], "test/http_test" => [ "include", "apps/include" @@ -18980,6 +22017,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/json_test" => [ + "include", + "apps/include" + ], "test/keymgmt_internal_test" => [ ".", "include", @@ -18994,6 +22035,10 @@ our %unified_info = ( "apps/include", "." ], + "test/list_test" => [ + "include", + "apps/include" + ], "test/localetest" => [ "include", "apps/include" @@ -19007,10 +22052,27 @@ our %unified_info = ( "include", "apps/include" ], + "test/membio_test" => [ + "include", + "apps/include", + "." + ], "test/memleaktest" => [ "include", "apps/include" ], + "test/ml_dsa_test" => [ + "include", + "apps/include" + ], + "test/ml_kem_evp_extra_test" => [ + "include", + "apps/include" + ], + "test/ml_kem_internal_test" => [ + "include", + "apps/include" + ], "test/modes_internal_test" => [ ".", "include", @@ -19045,6 +22107,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/pairwise_fail_test" => [ + "include", + "apps/include" + ], "test/param_build_test" => [ "include", "apps/include" @@ -19078,6 +22144,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/pkcs12_api_test" => [ + "include", + "apps/include" + ], "test/pkcs12_format_test" => [ "include", "apps/include" @@ -19099,6 +22169,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/priority_queue_test" => [ + "include", + "apps/include" + ], "test/property_test" => [ ".", "include", @@ -19112,6 +22186,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/provider_default_search_path_test" => [ + "include", + "apps/include" + ], "test/provider_fallback_test" => [ "include", "apps/include" @@ -19138,6 +22216,97 @@ our %unified_info = ( "include", "apps/include" ], + "test/quic_ackm_test" => [ + "include", + "apps/include" + ], + "test/quic_cc_test" => [ + "include", + "apps/include" + ], + "test/quic_cfq_test" => [ + "include", + "apps/include" + ], + "test/quic_client_test" => [ + "include", + "apps/include" + ], + "test/quic_fc_test" => [ + "include", + "apps/include" + ], + "test/quic_fifd_test" => [ + "include", + "apps/include" + ], + "test/quic_lcidm_test" => [ + "include", + "apps/include" + ], + "test/quic_multistream_test" => [ + "include", + "apps/include" + ], + "test/quic_newcid_test" => [ + "include", + "apps/include", + "." + ], + "test/quic_qlog_test" => [ + "include", + "apps/include" + ], + "test/quic_radix_test" => [ + "include", + "apps/include" + ], + "test/quic_rcidm_test" => [ + "include", + "apps/include" + ], + "test/quic_record_test" => [ + "include", + "apps/include" + ], + "test/quic_srt_gen_test" => [ + "include", + "apps/include", + "." + ], + "test/quic_srtm_test" => [ + "include", + "apps/include" + ], + "test/quic_stream_test" => [ + "include", + "apps/include" + ], + "test/quic_tserver_test" => [ + "include", + "apps/include" + ], + "test/quic_txp_test" => [ + "include", + "apps/include" + ], + "test/quic_txpim_test" => [ + "include", + "apps/include" + ], + "test/quic_wire_test" => [ + "include", + "apps/include" + ], + "test/quicapitest" => [ + "include", + "apps/include" + ], + "test/quicfaultstest" => [ + "include", + "apps/include", + "." + ], "test/rand_status_test" => [ "include", "apps/include" @@ -19158,14 +22327,20 @@ our %unified_info = ( "include", "apps/include" ], - "test/rdrand_sanitytest" => [ + "test/rdcpu_sanitytest" => [ "include", - "apps/include" + "apps/include", + "crypto" ], "test/recordlentest" => [ "include", "apps/include" ], + "test/rpktest" => [ + "include", + "apps/include", + "." + ], "test/rsa_complex" => [ "include", "apps/include" @@ -19184,6 +22359,15 @@ our %unified_info = ( "include", "apps/include" ], + "test/rsa_x931_test" => [ + ".", + "include", + "apps/include" + ], + "test/safe_math_test" => [ + "include", + "apps/include" + ], "test/sanitytest" => [ "include", "apps/include" @@ -19205,6 +22389,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/slh_dsa_test" => [ + "include", + "apps/include" + ], "test/sm2_internal_test" => [ "include", "apps/include" @@ -19235,6 +22423,11 @@ our %unified_info = ( "include", "apps/include" ], + "test/ssl_handshake_rtt_test" => [ + "include", + "apps/include", + "." + ], "test/ssl_old_test" => [ ".", "include", @@ -19251,6 +22444,7 @@ our %unified_info = ( "test/sslapitest" => [ "include", "apps/include", + "providers/common/include", "." ], "test/sslbuffertest" => [ @@ -19265,6 +22459,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/strtoultest" => [ + "include", + "apps/include" + ], "test/sysdefaulttest" => [ "include", "apps/include" @@ -19273,7 +22471,13 @@ our %unified_info = ( "include", "apps/include" ], + "test/threadpool_test" => [ + ".", + "include", + "apps/include" + ], "test/threadstest" => [ + ".", "include", "apps/include" ], @@ -19285,6 +22489,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/time_test" => [ + "include", + "apps/include" + ], "test/tls13ccstest" => [ "include", "apps/include" @@ -19294,6 +22502,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/tls13groupselection_test" => [ + "include", + "apps/include" + ], "test/trace_api_test" => [ ".", "include", @@ -19332,6 +22544,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/x509_acert_test" => [ + "include", + "apps/include" + ], "test/x509_check_cert_pkey_test" => [ "include", "apps/include" @@ -19345,6 +22561,18 @@ our %unified_info = ( "include", "apps/include" ], + "test/x509_load_cert_file_test" => [ + "include", + "apps/include" + ], + "test/x509_req_test" => [ + "include", + "apps/include" + ], + "test/x509_test" => [ + "include", + "apps/include" + ], "test/x509_time_test" => [ "include", "apps/include" @@ -19366,6 +22594,7 @@ our %unified_info = ( "providers/libdefault.a", "providers/libfips.a", "providers/liblegacy.a", + "providers/libtemplate.a", "test/libtestutil.a" ], "mandocs" => { @@ -19418,6 +22647,7 @@ our %unified_info = ( "doc/man/man1/openssl-s_server.1", "doc/man/man1/openssl-s_time.1", "doc/man/man1/openssl-sess_id.1", + "doc/man/man1/openssl-skeyutl.1", "doc/man/man1/openssl-smime.1", "doc/man/man1/openssl-speed.1", "doc/man/man1/openssl-spkac.1", @@ -19467,6 +22697,7 @@ our %unified_info = ( "doc/man/man3/BIO_find_type.3", "doc/man/man3/BIO_get_data.3", "doc/man/man3/BIO_get_ex_new_index.3", + "doc/man/man3/BIO_get_rpoll_descriptor.3", "doc/man/man3/BIO_meth_new.3", "doc/man/man3/BIO_new.3", "doc/man/man3/BIO_new_CMS.3", @@ -19479,11 +22710,13 @@ our %unified_info = ( "doc/man/man3/BIO_s_connect.3", "doc/man/man3/BIO_s_core.3", "doc/man/man3/BIO_s_datagram.3", + "doc/man/man3/BIO_s_dgram_pair.3", "doc/man/man3/BIO_s_fd.3", "doc/man/man3/BIO_s_file.3", "doc/man/man3/BIO_s_mem.3", "doc/man/man3/BIO_s_null.3", "doc/man/man3/BIO_s_socket.3", + "doc/man/man3/BIO_sendmmsg.3", "doc/man/man3/BIO_set_callback.3", "doc/man/man3/BIO_should_retry.3", "doc/man/man3/BIO_socket_wait.3", @@ -19508,6 +22741,7 @@ our %unified_info = ( "doc/man/man3/BN_swap.3", "doc/man/man3/BN_zero.3", "doc/man/man3/BUF_MEM_new.3", + "doc/man/man3/CMAC_CTX.3", "doc/man/man3/CMS_EncryptedData_decrypt.3", "doc/man/man3/CMS_EncryptedData_encrypt.3", "doc/man/man3/CMS_EnvelopedData_create.3", @@ -19530,6 +22764,7 @@ our %unified_info = ( "doc/man/man3/CMS_uncompress.3", "doc/man/man3/CMS_verify.3", "doc/man/man3/CMS_verify_receipt.3", + "doc/man/man3/COMP_CTX_new.3", "doc/man/man3/CONF_modules_free.3", "doc/man/man3/CONF_modules_load_file.3", "doc/man/man3/CRYPTO_THREAD_run_once.3", @@ -19563,6 +22798,8 @@ our %unified_info = ( "doc/man/man3/DSA_size.3", "doc/man/man3/DTLS_get_data_mtu.3", "doc/man/man3/DTLS_set_timer_cb.3", + "doc/man/man3/DTLSv1_get_timeout.3", + "doc/man/man3/DTLSv1_handle_timeout.3", "doc/man/man3/DTLSv1_listen.3", "doc/man/man3/ECDSA_SIG_new.3", "doc/man/man3/ECDSA_sign.3", @@ -19609,6 +22846,7 @@ our %unified_info = ( "doc/man/man3/EVP_PKEY_CTX_ctrl.3", "doc/man/man3/EVP_PKEY_CTX_get0_libctx.3", "doc/man/man3/EVP_PKEY_CTX_get0_pkey.3", + "doc/man/man3/EVP_PKEY_CTX_get_algor.3", "doc/man/man3/EVP_PKEY_CTX_new.3", "doc/man/man3/EVP_PKEY_CTX_set1_pbe_pass.3", "doc/man/man3/EVP_PKEY_CTX_set_hkdf_md.3", @@ -19648,6 +22886,8 @@ our %unified_info = ( "doc/man/man3/EVP_PKEY_verify_recover.3", "doc/man/man3/EVP_RAND.3", "doc/man/man3/EVP_SIGNATURE.3", + "doc/man/man3/EVP_SKEY.3", + "doc/man/man3/EVP_SKEYMGMT.3", "doc/man/man3/EVP_SealInit.3", "doc/man/man3/EVP_SignInit.3", "doc/man/man3/EVP_VerifyInit.3", @@ -19677,6 +22917,7 @@ our %unified_info = ( "doc/man/man3/EVP_sm3.3", "doc/man/man3/EVP_sm4_cbc.3", "doc/man/man3/EVP_whirlpool.3", + "doc/man/man3/GENERAL_NAME.3", "doc/man/man3/HMAC.3", "doc/man/man3/MD5.3", "doc/man/man3/MDC2_Init.3", @@ -19701,14 +22942,18 @@ our %unified_info = ( "doc/man/man3/OPENSSL_init_ssl.3", "doc/man/man3/OPENSSL_instrument_bus.3", "doc/man/man3/OPENSSL_load_builtin_modules.3", + "doc/man/man3/OPENSSL_load_u16_le.3", "doc/man/man3/OPENSSL_malloc.3", + "doc/man/man3/OPENSSL_riscvcap.3", "doc/man/man3/OPENSSL_s390xcap.3", "doc/man/man3/OPENSSL_secure_malloc.3", "doc/man/man3/OPENSSL_strcasecmp.3", "doc/man/man3/OSSL_ALGORITHM.3", "doc/man/man3/OSSL_CALLBACK.3", + "doc/man/man3/OSSL_CMP_ATAV_set0.3", "doc/man/man3/OSSL_CMP_CTX_new.3", "doc/man/man3/OSSL_CMP_HDR_get0_transactionID.3", + "doc/man/man3/OSSL_CMP_ITAV_new_caCerts.3", "doc/man/man3/OSSL_CMP_ITAV_set0.3", "doc/man/man3/OSSL_CMP_MSG_get0_header.3", "doc/man/man3/OSSL_CMP_MSG_http_perform.3", @@ -19732,18 +22977,27 @@ our %unified_info = ( "doc/man/man3/OSSL_ENCODER_CTX.3", "doc/man/man3/OSSL_ENCODER_CTX_new_for_pkey.3", "doc/man/man3/OSSL_ENCODER_to_bio.3", + "doc/man/man3/OSSL_ERR_STATE_save.3", "doc/man/man3/OSSL_ESS_check_signing_certs.3", + "doc/man/man3/OSSL_GENERAL_NAMES_print.3", + "doc/man/man3/OSSL_HPKE_CTX_new.3", "doc/man/man3/OSSL_HTTP_REQ_CTX.3", "doc/man/man3/OSSL_HTTP_parse_url.3", "doc/man/man3/OSSL_HTTP_transfer.3", + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX.3", + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX_print.3", + "doc/man/man3/OSSL_INDICATOR_set_callback.3", "doc/man/man3/OSSL_ITEM.3", "doc/man/man3/OSSL_LIB_CTX.3", + "doc/man/man3/OSSL_LIB_CTX_set_conf_diagnostics.3", "doc/man/man3/OSSL_PARAM.3", "doc/man/man3/OSSL_PARAM_BLD.3", "doc/man/man3/OSSL_PARAM_allocate_from_text.3", "doc/man/man3/OSSL_PARAM_dup.3", "doc/man/man3/OSSL_PARAM_int.3", + "doc/man/man3/OSSL_PARAM_print_to_bio.3", "doc/man/man3/OSSL_PROVIDER.3", + "doc/man/man3/OSSL_QUIC_client_method.3", "doc/man/man3/OSSL_SELF_TEST_new.3", "doc/man/man3/OSSL_SELF_TEST_set_callback.3", "doc/man/man3/OSSL_STORE_INFO.3", @@ -19752,11 +23006,13 @@ our %unified_info = ( "doc/man/man3/OSSL_STORE_attach.3", "doc/man/man3/OSSL_STORE_expect.3", "doc/man/man3/OSSL_STORE_open.3", + "doc/man/man3/OSSL_sleep.3", "doc/man/man3/OSSL_trace_enabled.3", "doc/man/man3/OSSL_trace_get_category_num.3", "doc/man/man3/OSSL_trace_set_channel.3", "doc/man/man3/OpenSSL_add_all_algorithms.3", "doc/man/man3/OpenSSL_version.3", + "doc/man/man3/PBMAC1_get1_pbkdf2_param.3", "doc/man/man3/PEM_X509_INFO_read_bio_ex.3", "doc/man/man3/PEM_bytes_read_bio.3", "doc/man/man3/PEM_read.3", @@ -19769,6 +23025,7 @@ our %unified_info = ( "doc/man/man3/PKCS12_SAFEBAG_create_cert.3", "doc/man/man3/PKCS12_SAFEBAG_get0_attrs.3", "doc/man/man3/PKCS12_SAFEBAG_get1_cert.3", + "doc/man/man3/PKCS12_SAFEBAG_set0_attrs.3", "doc/man/man3/PKCS12_add1_attr_by_NID.3", "doc/man/man3/PKCS12_add_CSPName_asc.3", "doc/man/man3/PKCS12_add_cert.3", @@ -19860,6 +23117,7 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_sess_set_get_cb.3", "doc/man/man3/SSL_CTX_sessions.3", "doc/man/man3/SSL_CTX_set0_CA_list.3", + "doc/man/man3/SSL_CTX_set1_cert_comp_preference.3", "doc/man/man3/SSL_CTX_set1_curves.3", "doc/man/man3/SSL_CTX_set1_sigalgs.3", "doc/man/man3/SSL_CTX_set1_verify_cert_store.3", @@ -19873,6 +23131,7 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_ct_validation_callback.3", "doc/man/man3/SSL_CTX_set_ctlog_list_file.3", "doc/man/man3/SSL_CTX_set_default_passwd_cb.3", + "doc/man/man3/SSL_CTX_set_domain_flags.3", "doc/man/man3/SSL_CTX_set_generate_session_id.3", "doc/man/man3/SSL_CTX_set_info_callback.3", "doc/man/man3/SSL_CTX_set_keylog_callback.3", @@ -19880,6 +23139,7 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_min_proto_version.3", "doc/man/man3/SSL_CTX_set_mode.3", "doc/man/man3/SSL_CTX_set_msg_callback.3", + "doc/man/man3/SSL_CTX_set_new_pending_conn_cb.3", "doc/man/man3/SSL_CTX_set_num_tickets.3", "doc/man/man3/SSL_CTX_set_options.3", "doc/man/man3/SSL_CTX_set_psk_client_callback.3", @@ -19918,6 +23178,7 @@ our %unified_info = ( "doc/man/man3/SSL_SESSION_print.3", "doc/man/man3/SSL_SESSION_set1_id.3", "doc/man/man3/SSL_accept.3", + "doc/man/man3/SSL_accept_stream.3", "doc/man/man3/SSL_alert_type_string.3", "doc/man/man3/SSL_alloc_buffers.3", "doc/man/man3/SSL_check_chain.3", @@ -19927,59 +23188,90 @@ our %unified_info = ( "doc/man/man3/SSL_export_keying_material.3", "doc/man/man3/SSL_extension_supported.3", "doc/man/man3/SSL_free.3", + "doc/man/man3/SSL_get0_connection.3", + "doc/man/man3/SSL_get0_group_name.3", + "doc/man/man3/SSL_get0_peer_rpk.3", "doc/man/man3/SSL_get0_peer_scts.3", + "doc/man/man3/SSL_get1_builtin_sigalgs.3", "doc/man/man3/SSL_get_SSL_CTX.3", "doc/man/man3/SSL_get_all_async_fds.3", "doc/man/man3/SSL_get_certificate.3", "doc/man/man3/SSL_get_ciphers.3", "doc/man/man3/SSL_get_client_random.3", + "doc/man/man3/SSL_get_conn_close_info.3", "doc/man/man3/SSL_get_current_cipher.3", "doc/man/man3/SSL_get_default_timeout.3", "doc/man/man3/SSL_get_error.3", + "doc/man/man3/SSL_get_event_timeout.3", "doc/man/man3/SSL_get_extms_support.3", "doc/man/man3/SSL_get_fd.3", + "doc/man/man3/SSL_get_handshake_rtt.3", "doc/man/man3/SSL_get_peer_cert_chain.3", "doc/man/man3/SSL_get_peer_certificate.3", "doc/man/man3/SSL_get_peer_signature_nid.3", "doc/man/man3/SSL_get_peer_tmp_key.3", "doc/man/man3/SSL_get_psk_identity.3", "doc/man/man3/SSL_get_rbio.3", + "doc/man/man3/SSL_get_rpoll_descriptor.3", "doc/man/man3/SSL_get_session.3", "doc/man/man3/SSL_get_shared_sigalgs.3", + "doc/man/man3/SSL_get_stream_id.3", + "doc/man/man3/SSL_get_stream_read_state.3", + "doc/man/man3/SSL_get_value_uint.3", "doc/man/man3/SSL_get_verify_result.3", "doc/man/man3/SSL_get_version.3", "doc/man/man3/SSL_group_to_name.3", + "doc/man/man3/SSL_handle_events.3", "doc/man/man3/SSL_in_init.3", + "doc/man/man3/SSL_inject_net_dgram.3", "doc/man/man3/SSL_key_update.3", "doc/man/man3/SSL_library_init.3", "doc/man/man3/SSL_load_client_CA_file.3", "doc/man/man3/SSL_new.3", + "doc/man/man3/SSL_new_domain.3", + "doc/man/man3/SSL_new_listener.3", + "doc/man/man3/SSL_new_stream.3", "doc/man/man3/SSL_pending.3", + "doc/man/man3/SSL_poll.3", "doc/man/man3/SSL_read.3", "doc/man/man3/SSL_read_early_data.3", "doc/man/man3/SSL_rstate_string.3", "doc/man/man3/SSL_session_reused.3", "doc/man/man3/SSL_set1_host.3", + "doc/man/man3/SSL_set1_initial_peer_addr.3", + "doc/man/man3/SSL_set1_server_cert_type.3", "doc/man/man3/SSL_set_async_callback.3", "doc/man/man3/SSL_set_bio.3", + "doc/man/man3/SSL_set_blocking_mode.3", "doc/man/man3/SSL_set_connect_state.3", + "doc/man/man3/SSL_set_default_stream_mode.3", "doc/man/man3/SSL_set_fd.3", + "doc/man/man3/SSL_set_incoming_stream_policy.3", + "doc/man/man3/SSL_set_quic_tls_cbs.3", "doc/man/man3/SSL_set_retry_verify.3", "doc/man/man3/SSL_set_session.3", + "doc/man/man3/SSL_set_session_secret_cb.3", "doc/man/man3/SSL_set_shutdown.3", "doc/man/man3/SSL_set_verify_result.3", "doc/man/man3/SSL_shutdown.3", "doc/man/man3/SSL_state_string.3", + "doc/man/man3/SSL_stream_conclude.3", + "doc/man/man3/SSL_stream_reset.3", "doc/man/man3/SSL_want.3", "doc/man/man3/SSL_write.3", "doc/man/man3/TS_RESP_CTX_new.3", - "doc/man/man3/TS_VERIFY_CTX_set_certs.3", + "doc/man/man3/TS_VERIFY_CTX.3", "doc/man/man3/UI_STRING.3", "doc/man/man3/UI_UTIL_read_pw.3", "doc/man/man3/UI_create_method.3", "doc/man/man3/UI_new.3", "doc/man/man3/X509V3_get_d2i.3", "doc/man/man3/X509V3_set_ctx.3", + "doc/man/man3/X509_ACERT_add1_attr.3", + "doc/man/man3/X509_ACERT_add_attr_nconf.3", + "doc/man/man3/X509_ACERT_get0_holder_baseCertId.3", + "doc/man/man3/X509_ACERT_get_attr.3", + "doc/man/man3/X509_ACERT_print_ex.3", "doc/man/man3/X509_ALGOR_dup.3", "doc/man/man3/X509_ATTRIBUTE.3", "doc/man/man3/X509_CRL_get0_by_serial.3", @@ -19996,6 +23288,7 @@ our %unified_info = ( "doc/man/man3/X509_REQ_get_attr.3", "doc/man/man3/X509_REQ_get_extensions.3", "doc/man/man3/X509_SIG_get0.3", + "doc/man/man3/X509_STORE_CTX_get_by_subject.3", "doc/man/man3/X509_STORE_CTX_get_error.3", "doc/man/man3/X509_STORE_CTX_new.3", "doc/man/man3/X509_STORE_CTX_set_verify_cb.3", @@ -20018,6 +23311,7 @@ our %unified_info = ( "doc/man/man3/X509_get0_notBefore.3", "doc/man/man3/X509_get0_signature.3", "doc/man/man3/X509_get0_uids.3", + "doc/man/man3/X509_get_default_cert_file.3", "doc/man/man3/X509_get_extension_flags.3", "doc/man/man3/X509_get_pubkey.3", "doc/man/man3/X509_get_serialNumber.3", @@ -20063,12 +23357,15 @@ our %unified_info = ( "doc/man/man7/EVP_CIPHER-RC5.7", "doc/man/man7/EVP_CIPHER-SEED.7", "doc/man/man7/EVP_CIPHER-SM4.7", + "doc/man/man7/EVP_KDF-ARGON2.7", "doc/man/man7/EVP_KDF-HKDF.7", + "doc/man/man7/EVP_KDF-HMAC-DRBG.7", "doc/man/man7/EVP_KDF-KB.7", "doc/man/man7/EVP_KDF-KRB5KDF.7", "doc/man/man7/EVP_KDF-PBKDF1.7", "doc/man/man7/EVP_KDF-PBKDF2.7", "doc/man/man7/EVP_KDF-PKCS12KDF.7", + "doc/man/man7/EVP_KDF-PVKKDF.7", "doc/man/man7/EVP_KDF-SCRYPT.7", "doc/man/man7/EVP_KDF-SS.7", "doc/man/man7/EVP_KDF-SSHKDF.7", @@ -20077,7 +23374,10 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-X942-ASN1.7", "doc/man/man7/EVP_KDF-X942-CONCAT.7", "doc/man/man7/EVP_KDF-X963.7", + "doc/man/man7/EVP_KEM-EC.7", + "doc/man/man7/EVP_KEM-ML-KEM.7", "doc/man/man7/EVP_KEM-RSA.7", + "doc/man/man7/EVP_KEM-X25519.7", "doc/man/man7/EVP_KEYEXCH-DH.7", "doc/man/man7/EVP_KEYEXCH-ECDH.7", "doc/man/man7/EVP_KEYEXCH-X25519.7", @@ -20089,6 +23389,7 @@ our %unified_info = ( "doc/man/man7/EVP_MAC-Poly1305.7", "doc/man/man7/EVP_MAC-Siphash.7", "doc/man/man7/EVP_MD-BLAKE2.7", + "doc/man/man7/EVP_MD-KECCAK.7", "doc/man/man7/EVP_MD-MD2.7", "doc/man/man7/EVP_MD-MD4.7", "doc/man/man7/EVP_MD-MD5-SHA1.7", @@ -20108,12 +23409,17 @@ our %unified_info = ( "doc/man/man7/EVP_PKEY-EC.7", "doc/man/man7/EVP_PKEY-FFC.7", "doc/man/man7/EVP_PKEY-HMAC.7", + "doc/man/man7/EVP_PKEY-ML-DSA.7", + "doc/man/man7/EVP_PKEY-ML-KEM.7", "doc/man/man7/EVP_PKEY-RSA.7", + "doc/man/man7/EVP_PKEY-SLH-DSA.7", "doc/man/man7/EVP_PKEY-SM2.7", "doc/man/man7/EVP_PKEY-X25519.7", + "doc/man/man7/EVP_RAND-CRNG-TEST.7", "doc/man/man7/EVP_RAND-CTR-DRBG.7", "doc/man/man7/EVP_RAND-HASH-DRBG.7", "doc/man/man7/EVP_RAND-HMAC-DRBG.7", + "doc/man/man7/EVP_RAND-JITTER.7", "doc/man/man7/EVP_RAND-SEED-SRC.7", "doc/man/man7/EVP_RAND-TEST-RAND.7", "doc/man/man7/EVP_RAND.7", @@ -20121,17 +23427,19 @@ our %unified_info = ( "doc/man/man7/EVP_SIGNATURE-ECDSA.7", "doc/man/man7/EVP_SIGNATURE-ED25519.7", "doc/man/man7/EVP_SIGNATURE-HMAC.7", + "doc/man/man7/EVP_SIGNATURE-ML-DSA.7", "doc/man/man7/EVP_SIGNATURE-RSA.7", + "doc/man/man7/EVP_SIGNATURE-SLH-DSA.7", "doc/man/man7/OSSL_PROVIDER-FIPS.7", "doc/man/man7/OSSL_PROVIDER-base.7", "doc/man/man7/OSSL_PROVIDER-default.7", "doc/man/man7/OSSL_PROVIDER-legacy.7", "doc/man/man7/OSSL_PROVIDER-null.7", + "doc/man/man7/OSSL_STORE-winstore.7", "doc/man/man7/RAND.7", "doc/man/man7/RSA-PSS.7", "doc/man/man7/X25519.7", "doc/man/man7/bio.7", - "doc/man/man7/crypto.7", "doc/man/man7/ct.7", "doc/man/man7/des_modes.7", "doc/man/man7/evp.7", @@ -20142,14 +23450,31 @@ our %unified_info = ( "doc/man/man7/life_cycle-mac.7", "doc/man/man7/life_cycle-pkey.7", "doc/man/man7/life_cycle-rand.7", - "doc/man/man7/migration_guide.7", "doc/man/man7/openssl-core.h.7", "doc/man/man7/openssl-core_dispatch.h.7", "doc/man/man7/openssl-core_names.h.7", "doc/man/man7/openssl-env.7", "doc/man/man7/openssl-glossary.7", + "doc/man/man7/openssl-qlog.7", + "doc/man/man7/openssl-quic-concurrency.7", + "doc/man/man7/openssl-quic.7", "doc/man/man7/openssl-threads.7", "doc/man/man7/openssl_user_macros.7", + "doc/man/man7/ossl-guide-introduction.7", + "doc/man/man7/ossl-guide-libcrypto-introduction.7", + "doc/man/man7/ossl-guide-libraries-introduction.7", + "doc/man/man7/ossl-guide-libssl-introduction.7", + "doc/man/man7/ossl-guide-migration.7", + "doc/man/man7/ossl-guide-quic-client-block.7", + "doc/man/man7/ossl-guide-quic-client-non-block.7", + "doc/man/man7/ossl-guide-quic-introduction.7", + "doc/man/man7/ossl-guide-quic-multi-stream.7", + "doc/man/man7/ossl-guide-quic-server-block.7", + "doc/man/man7/ossl-guide-quic-server-non-block.7", + "doc/man/man7/ossl-guide-tls-client-block.7", + "doc/man/man7/ossl-guide-tls-client-non-block.7", + "doc/man/man7/ossl-guide-tls-introduction.7", + "doc/man/man7/ossl-guide-tls-server-block.7", "doc/man/man7/ossl_store-file.7", "doc/man/man7/ossl_store.7", "doc/man/man7/passphrase-encoding.7", @@ -20168,10 +23493,10 @@ our %unified_info = ( "doc/man/man7/provider-object.7", "doc/man/man7/provider-rand.7", "doc/man/man7/provider-signature.7", + "doc/man/man7/provider-skeymgmt.7", "doc/man/man7/provider-storemgmt.7", "doc/man/man7/provider.7", "doc/man/man7/proxy-certificates.7", - "doc/man/man7/ssl.7", "doc/man/man7/x509.7" ] }, @@ -20183,6 +23508,7 @@ our %unified_info = ( ], "programs" => [ "apps/openssl", + "fuzz/acert-test", "fuzz/asn1-test", "fuzz/asn1parse-test", "fuzz/bignum-test", @@ -20193,7 +23519,24 @@ our %unified_info = ( "fuzz/conf-test", "fuzz/crl-test", "fuzz/ct-test", + "fuzz/decoder-test", + "fuzz/dtlsclient-test", + "fuzz/dtlsserver-test", + "fuzz/hashtable-test", + "fuzz/ml-dsa-test", + "fuzz/ml-kem-test", + "fuzz/pem-test", + "fuzz/provider-test", + "fuzz/punycode-test", + "fuzz/quic-client-test", + "fuzz/quic-lcidm-test", + "fuzz/quic-rcidm-test", + "fuzz/quic-server-test", + "fuzz/quic-srtm-test", "fuzz/server-test", + "fuzz/slh-dsa-test", + "fuzz/smime-test", + "fuzz/v3name-test", "fuzz/x509-test", "test/aborttest", "test/acvp_test", @@ -20211,21 +23554,28 @@ our %unified_info = ( "test/asynctest", "test/bad_dtls_test", "test/bftest", + "test/bio_addr_test", + "test/bio_base64_test", "test/bio_callback_test", "test/bio_core_test", + "test/bio_dgram_test", "test/bio_enc_test", "test/bio_memleak_test", + "test/bio_meth_test", "test/bio_prefix_text", "test/bio_pw_callback_test", "test/bio_readbuffer_test", + "test/bio_tfo_test", "test/bioprinttest", "test/bn_internal_test", "test/bntest", + "test/build_wincrypt_test", "test/buildtest_c_aes", "test/buildtest_c_async", "test/buildtest_c_blowfish", "test/buildtest_c_bn", "test/buildtest_c_buffer", + "test/buildtest_c_byteorder", "test/buildtest_c_camellia", "test/buildtest_c_cast", "test/buildtest_c_cmac", @@ -20234,7 +23584,6 @@ our %unified_info = ( "test/buildtest_c_conftypes", "test/buildtest_c_core", "test/buildtest_c_core_dispatch", - "test/buildtest_c_core_names", "test/buildtest_c_core_object", "test/buildtest_c_cryptoerr_legacy", "test/buildtest_c_decoder", @@ -20243,6 +23592,7 @@ our %unified_info = ( "test/buildtest_c_dsa", "test/buildtest_c_dtls1", "test/buildtest_c_e_os2", + "test/buildtest_c_e_ostime", "test/buildtest_c_ebcdic", "test/buildtest_c_ec", "test/buildtest_c_ecdh", @@ -20252,13 +23602,16 @@ our %unified_info = ( "test/buildtest_c_evp", "test/buildtest_c_fips_names", "test/buildtest_c_hmac", + "test/buildtest_c_hpke", "test/buildtest_c_http", "test/buildtest_c_idea", + "test/buildtest_c_indicator", "test/buildtest_c_kdf", "test/buildtest_c_macros", "test/buildtest_c_md4", "test/buildtest_c_md5", "test/buildtest_c_mdc2", + "test/buildtest_c_ml_kem", "test/buildtest_c_modes", "test/buildtest_c_obj_mac", "test/buildtest_c_objects", @@ -20269,6 +23622,7 @@ our %unified_info = ( "test/buildtest_c_pem2", "test/buildtest_c_prov_ssl", "test/buildtest_c_provider", + "test/buildtest_c_quic", "test/buildtest_c_rand", "test/buildtest_c_rc2", "test/buildtest_c_rc4", @@ -20283,11 +23637,14 @@ our %unified_info = ( "test/buildtest_c_stack", "test/buildtest_c_store", "test/buildtest_c_symhacks", + "test/buildtest_c_thread", "test/buildtest_c_tls1", "test/buildtest_c_ts", "test/buildtest_c_txt_db", "test/buildtest_c_types", "test/buildtest_c_whrlpool", + "test/byteorder_test", + "test/ca_internals_test", "test/casttest", "test/chacha_internal_test", "test/cipher_overhead_test", @@ -20316,6 +23673,7 @@ our %unified_info = ( "test/curve448_internal_test", "test/d2i_test", "test/danetest", + "test/decoder_propq_test", "test/defltfips_test", "test/destest", "test/dhtest", @@ -20340,9 +23698,12 @@ our %unified_info = ( "test/evp_kdf_test", "test/evp_libctx_test", "test/evp_pkey_ctx_new_from_name", + "test/evp_pkey_dhkem_test", "test/evp_pkey_dparams_test", "test/evp_pkey_provided_test", + "test/evp_skey_test", "test/evp_test", + "test/evp_xof_test", "test/exdatatest", "test/exptest", "test/ext_internal_test", @@ -20352,21 +23713,29 @@ our %unified_info = ( "test/gmdifftest", "test/hexstr_test", "test/hmactest", + "test/hpke_test", "test/http_test", "test/ideatest", "test/igetest", + "test/json_test", "test/keymgmt_internal_test", "test/lhash_test", + "test/list_test", "test/localetest", "test/mdc2_internal_test", "test/mdc2test", + "test/membio_test", "test/memleaktest", + "test/ml_dsa_test", + "test/ml_kem_evp_extra_test", + "test/ml_kem_internal_test", "test/modes_internal_test", "test/namemap_internal_test", "test/nodefltctxtest", "test/ocspapitest", "test/ossl_store_test", "test/packettest", + "test/pairwise_fail_test", "test/param_build_test", "test/params_api_test", "test/params_conversion_test", @@ -20375,36 +23744,65 @@ our %unified_info = ( "test/pbetest", "test/pem_read_depr_test", "test/pemtest", + "test/pkcs12_api_test", "test/pkcs12_format_test", "test/pkcs7_test", "test/pkey_meth_kdf_test", "test/pkey_meth_test", "test/poly1305_internal_test", + "test/priority_queue_test", "test/property_test", "test/prov_config_test", "test/provfetchtest", + "test/provider_default_search_path_test", "test/provider_fallback_test", "test/provider_internal_test", "test/provider_pkey_test", "test/provider_status_test", "test/provider_test", "test/punycode_test", + "test/quic_ackm_test", + "test/quic_cc_test", + "test/quic_cfq_test", + "test/quic_client_test", + "test/quic_fc_test", + "test/quic_fifd_test", + "test/quic_lcidm_test", + "test/quic_multistream_test", + "test/quic_newcid_test", + "test/quic_qlog_test", + "test/quic_radix_test", + "test/quic_rcidm_test", + "test/quic_record_test", + "test/quic_srt_gen_test", + "test/quic_srtm_test", + "test/quic_stream_test", + "test/quic_tserver_test", + "test/quic_txp_test", + "test/quic_txpim_test", + "test/quic_wire_test", + "test/quicapitest", + "test/quicfaultstest", "test/rand_status_test", "test/rand_test", "test/rc2test", "test/rc4test", "test/rc5test", - "test/rdrand_sanitytest", + "test/rdcpu_sanitytest", "test/recordlentest", + "test/rpktest", "test/rsa_complex", "test/rsa_mp_test", "test/rsa_sp800_56b_test", "test/rsa_test", + "test/rsa_x931_test", + "test/safe_math_test", "test/sanitytest", "test/secmemtest", "test/servername_test", "test/sha_test", "test/siphash_internal_test", + "test/slh_dsa_test", "test/sm2_internal_test", "test/sm3_internal_test", "test/sm4_internal_test", @@ -20412,6 +23810,7 @@ our %unified_info = ( "test/srptest", "test/ssl_cert_table_internal_test", "test/ssl_ctx_test", + "test/ssl_handshake_rtt_test", "test/ssl_old_test", "test/ssl_test", "test/ssl_test_ctx_test", @@ -20419,13 +23818,17 @@ our %unified_info = ( "test/sslbuffertest", "test/sslcorrupttest", "test/stack_test", + "test/strtoultest", "test/sysdefaulttest", "test/test_test", + "test/threadpool_test", "test/threadstest", "test/threadstest_fips", "test/time_offset_test", + "test/time_test", "test/tls13ccstest", "test/tls13encryptiontest", + "test/tls13groupselection_test", "test/trace_api_test", "test/uitest", "test/upcallstest", @@ -20435,9 +23838,13 @@ our %unified_info = ( "test/verify_extra_test", "test/versions", "test/wpackettest", + "test/x509_acert_test", "test/x509_check_cert_pkey_test", "test/x509_dup_cert_test", "test/x509_internal_test", + "test/x509_load_cert_file_test", + "test/x509_req_test", + "test/x509_test", "test/x509_time_test", "test/x509aux" ], @@ -20453,6 +23860,33 @@ our %unified_info = ( "apps/CA.pl" => [ "apps/CA.pl.in" ], + "apps/ca_internals_test-bin-ca.o" => [ + "apps/ca.c" + ], + "apps/lib/ca_internals_test-bin-app_libctx.o" => [ + "apps/lib/app_libctx.c" + ], + "apps/lib/ca_internals_test-bin-app_provider.o" => [ + "apps/lib/app_provider.c" + ], + "apps/lib/ca_internals_test-bin-app_rand.o" => [ + "apps/lib/app_rand.c" + ], + "apps/lib/ca_internals_test-bin-app_x509.o" => [ + "apps/lib/app_x509.c" + ], + "apps/lib/ca_internals_test-bin-apps.o" => [ + "apps/lib/apps.c" + ], + "apps/lib/ca_internals_test-bin-apps_ui.o" => [ + "apps/lib/apps_ui.c" + ], + "apps/lib/ca_internals_test-bin-engine.o" => [ + "apps/lib/engine.c" + ], + "apps/lib/ca_internals_test-bin-fmt.o" => [ + "apps/lib/fmt.c" + ], "apps/lib/cmp_client_test-bin-cmp_mock_srv.o" => [ "apps/lib/cmp_mock_srv.c" ], @@ -20474,6 +23908,9 @@ our %unified_info = ( "apps/lib/libapps-lib-apps.o" => [ "apps/lib/apps.c" ], + "apps/lib/libapps-lib-apps_opt_printf.o" => [ + "apps/lib/apps_opt_printf.c" + ], "apps/lib/libapps-lib-apps_ui.o" => [ "apps/lib/apps_ui.c" ], @@ -20492,6 +23929,9 @@ our %unified_info = ( "apps/lib/libapps-lib-http_server.o" => [ "apps/lib/http_server.c" ], + "apps/lib/libapps-lib-log.o" => [ + "apps/lib/log.c" + ], "apps/lib/libapps-lib-names.o" => [ "apps/lib/names.c" ], @@ -20523,12 +23963,14 @@ our %unified_info = ( "apps/lib/libapps-lib-app_rand.o", "apps/lib/libapps-lib-app_x509.o", "apps/lib/libapps-lib-apps.o", + "apps/lib/libapps-lib-apps_opt_printf.o", "apps/lib/libapps-lib-apps_ui.o", "apps/lib/libapps-lib-columns.o", "apps/lib/libapps-lib-engine.o", "apps/lib/libapps-lib-engine_loader.o", "apps/lib/libapps-lib-fmt.o", "apps/lib/libapps-lib-http_server.o", + "apps/lib/libapps-lib-log.o", "apps/lib/libapps-lib-names.o", "apps/lib/libapps-lib-opt.o", "apps/lib/libapps-lib-s_cb.o", @@ -20582,6 +24024,7 @@ our %unified_info = ( "apps/openssl-bin-s_server.o", "apps/openssl-bin-s_time.o", "apps/openssl-bin-sess_id.o", + "apps/openssl-bin-skeyutl.o", "apps/openssl-bin-smime.o", "apps/openssl-bin-speed.o", "apps/openssl-bin-spkac.o", @@ -20727,6 +24170,9 @@ our %unified_info = ( "apps/openssl-bin-sess_id.o" => [ "apps/sess_id.c" ], + "apps/openssl-bin-skeyutl.o" => [ + "apps/skeyutl.c" + ], "apps/openssl-bin-smime.o" => [ "apps/smime.c" ], @@ -20802,6 +24248,12 @@ our %unified_info = ( "crypto/aria/libcrypto-lib-aria.o" => [ "crypto/aria/aria.c" ], + "crypto/asn1/asn1_time_test-bin-a_time.o" => [ + "crypto/asn1/a_time.c" + ], + "crypto/asn1/ca_internals_test-bin-a_time.o" => [ + "crypto/asn1/a_time.c" + ], "crypto/asn1/libcrypto-lib-a_bitstr.o" => [ "crypto/asn1/a_bitstr.c" ], @@ -20994,6 +24446,9 @@ our %unified_info = ( "crypto/asn1/libcrypto-lib-x_val.o" => [ "crypto/asn1/x_val.c" ], + "crypto/asn1_time_test-bin-ctype.o" => [ + "crypto/ctype.c" + ], "crypto/async/arch/libcrypto-lib-async_null.o" => [ "crypto/async/arch/async_null.c" ], @@ -21087,6 +24542,9 @@ our %unified_info = ( "crypto/bio/libcrypto-lib-bss_dgram.o" => [ "crypto/bio/bss_dgram.c" ], + "crypto/bio/libcrypto-lib-bss_dgram_pair.o" => [ + "crypto/bio/bss_dgram_pair.c" + ], "crypto/bio/libcrypto-lib-bss_fd.o" => [ "crypto/bio/bss_fd.c" ], @@ -21318,6 +24776,9 @@ our %unified_info = ( "crypto/buffer/libfips-lib-buffer.o" => [ "crypto/buffer/buffer.c" ], + "crypto/ca_internals_test-bin-ctype.o" => [ + "crypto/ctype.c" + ], "crypto/camellia/libcrypto-lib-cmll-x86.o" => [ "crypto/camellia/cmll-x86.S" ], @@ -21369,6 +24830,9 @@ our %unified_info = ( "crypto/cmp/libcrypto-lib-cmp_err.o" => [ "crypto/cmp/cmp_err.c" ], + "crypto/cmp/libcrypto-lib-cmp_genm.o" => [ + "crypto/cmp/cmp_genm.c" + ], "crypto/cmp/libcrypto-lib-cmp_hdr.o" => [ "crypto/cmp/cmp_hdr.c" ], @@ -22056,9 +25520,15 @@ our %unified_info = ( "crypto/err/libcrypto-lib-err_blocks.o" => [ "crypto/err/err_blocks.c" ], + "crypto/err/libcrypto-lib-err_mark.o" => [ + "crypto/err/err_mark.c" + ], "crypto/err/libcrypto-lib-err_prn.o" => [ "crypto/err/err_prn.c" ], + "crypto/err/libcrypto-lib-err_save.o" => [ + "crypto/err/err_save.c" + ], "crypto/ess/libcrypto-lib-ess_asn1.o" => [ "crypto/ess/ess_asn1.c" ], @@ -22305,9 +25775,15 @@ our %unified_info = ( "crypto/evp/libcrypto-lib-pmeth_lib.o" => [ "crypto/evp/pmeth_lib.c" ], + "crypto/evp/libcrypto-lib-s_lib.o" => [ + "crypto/evp/s_lib.c" + ], "crypto/evp/libcrypto-lib-signature.o" => [ "crypto/evp/signature.c" ], + "crypto/evp/libcrypto-lib-skeymgmt_meth.o" => [ + "crypto/evp/skeymgmt_meth.c" + ], "crypto/evp/libfips-lib-asymcipher.o" => [ "crypto/evp/asymcipher.c" ], @@ -22353,9 +25829,6 @@ our %unified_info = ( "crypto/evp/libfips-lib-keymgmt_meth.o" => [ "crypto/evp/keymgmt_meth.c" ], - "crypto/evp/libfips-lib-m_sigver.o" => [ - "crypto/evp/m_sigver.c" - ], "crypto/evp/libfips-lib-mac_lib.o" => [ "crypto/evp/mac_lib.c" ], @@ -22374,9 +25847,15 @@ our %unified_info = ( "crypto/evp/libfips-lib-pmeth_lib.o" => [ "crypto/evp/pmeth_lib.c" ], + "crypto/evp/libfips-lib-s_lib.o" => [ + "crypto/evp/s_lib.c" + ], "crypto/evp/libfips-lib-signature.o" => [ "crypto/evp/signature.c" ], + "crypto/evp/libfips-lib-skeymgmt_meth.o" => [ + "crypto/evp/skeymgmt_meth.c" + ], "crypto/ffc/libcrypto-lib-ffc_backend.o" => [ "crypto/ffc/ffc_backend.c" ], @@ -22419,12 +25898,30 @@ our %unified_info = ( "crypto/ffc/libfips-lib-ffc_params_validate.o" => [ "crypto/ffc/ffc_params_validate.c" ], + "crypto/hashtable/libcrypto-lib-hashfunc.o" => [ + "crypto/hashtable/hashfunc.c" + ], + "crypto/hashtable/libcrypto-lib-hashtable.o" => [ + "crypto/hashtable/hashtable.c" + ], + "crypto/hashtable/libfips-lib-hashfunc.o" => [ + "crypto/hashtable/hashfunc.c" + ], + "crypto/hashtable/libfips-lib-hashtable.o" => [ + "crypto/hashtable/hashtable.c" + ], "crypto/hmac/libcrypto-lib-hmac.o" => [ "crypto/hmac/hmac.c" ], "crypto/hmac/libfips-lib-hmac.o" => [ "crypto/hmac/hmac.c" ], + "crypto/hpke/libcrypto-lib-hpke.o" => [ + "crypto/hpke/hpke.c" + ], + "crypto/hpke/libcrypto-lib-hpke_util.o" => [ + "crypto/hpke/hpke_util.c" + ], "crypto/http/libcrypto-lib-http_client.o" => [ "crypto/http/http_client.c" ], @@ -22467,6 +25964,9 @@ our %unified_info = ( "crypto/libcrypto-lib-bsearch.o" => [ "crypto/bsearch.c" ], + "crypto/libcrypto-lib-comp_methods.o" => [ + "crypto/comp_methods.c" + ], "crypto/libcrypto-lib-context.o" => [ "crypto/context.c" ], @@ -22494,9 +25994,15 @@ our %unified_info = ( "crypto/libcrypto-lib-cversion.o" => [ "crypto/cversion.c" ], + "crypto/libcrypto-lib-defaults.o" => [ + "crypto/defaults.c" + ], "crypto/libcrypto-lib-der_writer.o" => [ "crypto/der_writer.c" ], + "crypto/libcrypto-lib-deterministic_nonce.o" => [ + "crypto/deterministic_nonce.c" + ], "crypto/libcrypto-lib-ebcdic.o" => [ "crypto/ebcdic.c" ], @@ -22506,6 +26012,9 @@ our %unified_info = ( "crypto/libcrypto-lib-getenv.o" => [ "crypto/getenv.c" ], + "crypto/libcrypto-lib-indicator_core.o" => [ + "crypto/indicator_core.c" + ], "crypto/libcrypto-lib-info.o" => [ "crypto/info.c" ], @@ -22554,6 +26063,9 @@ our %unified_info = ( "crypto/libcrypto-lib-params_from_text.o" => [ "crypto/params_from_text.c" ], + "crypto/libcrypto-lib-params_idx.o" => [ + "crypto/params_idx.c" + ], "crypto/libcrypto-lib-passphrase.o" => [ "crypto/passphrase.c" ], @@ -22575,12 +26087,21 @@ our %unified_info = ( "crypto/libcrypto-lib-punycode.o" => [ "crypto/punycode.c" ], + "crypto/libcrypto-lib-quic_vlint.o" => [ + "crypto/quic_vlint.c" + ], "crypto/libcrypto-lib-self_test_core.o" => [ "crypto/self_test_core.c" ], + "crypto/libcrypto-lib-sleep.o" => [ + "crypto/sleep.c" + ], "crypto/libcrypto-lib-sparse_array.o" => [ "crypto/sparse_array.c" ], + "crypto/libcrypto-lib-ssl_err.o" => [ + "crypto/ssl_err.c" + ], "crypto/libcrypto-lib-threads_lib.o" => [ "crypto/threads_lib.c" ], @@ -22593,6 +26114,9 @@ our %unified_info = ( "crypto/libcrypto-lib-threads_win.o" => [ "crypto/threads_win.c" ], + "crypto/libcrypto-lib-time.o" => [ + "crypto/time.c" + ], "crypto/libcrypto-lib-trace.o" => [ "crypto/trace.c" ], @@ -22659,6 +26183,9 @@ our %unified_info = ( "crypto/libfips-lib-params_from_text.o" => [ "crypto/params_from_text.c" ], + "crypto/libfips-lib-params_idx.o" => [ + "crypto/params_idx.c" + ], "crypto/libfips-lib-provider_core.o" => [ "crypto/provider_core.c" ], @@ -22683,6 +26210,9 @@ our %unified_info = ( "crypto/libfips-lib-threads_win.o" => [ "crypto/threads_win.c" ], + "crypto/libfips-lib-time.o" => [ + "crypto/time.c" + ], "crypto/libfips-lib-x86cpuid.o" => [ "crypto/x86cpuid.S" ], @@ -22710,6 +26240,60 @@ our %unified_info = ( "crypto/mdc2/libcrypto-lib-mdc2dgst.o" => [ "crypto/mdc2/mdc2dgst.c" ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_encoders.o" => [ + "crypto/ml_dsa/ml_dsa_encoders.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key.o" => [ + "crypto/ml_dsa/ml_dsa_key.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key_compress.o" => [ + "crypto/ml_dsa/ml_dsa_key_compress.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_matrix.o" => [ + "crypto/ml_dsa/ml_dsa_matrix.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_ntt.o" => [ + "crypto/ml_dsa/ml_dsa_ntt.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_params.o" => [ + "crypto/ml_dsa/ml_dsa_params.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sample.o" => [ + "crypto/ml_dsa/ml_dsa_sample.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sign.o" => [ + "crypto/ml_dsa/ml_dsa_sign.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_encoders.o" => [ + "crypto/ml_dsa/ml_dsa_encoders.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_key.o" => [ + "crypto/ml_dsa/ml_dsa_key.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_key_compress.o" => [ + "crypto/ml_dsa/ml_dsa_key_compress.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_matrix.o" => [ + "crypto/ml_dsa/ml_dsa_matrix.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_ntt.o" => [ + "crypto/ml_dsa/ml_dsa_ntt.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_params.o" => [ + "crypto/ml_dsa/ml_dsa_params.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_sample.o" => [ + "crypto/ml_dsa/ml_dsa_sample.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_sign.o" => [ + "crypto/ml_dsa/ml_dsa_sign.c" + ], + "crypto/ml_kem/libcrypto-lib-ml_kem.o" => [ + "crypto/ml_kem/ml_kem.c" + ], + "crypto/ml_kem/libfips-lib-ml_kem.o" => [ + "crypto/ml_kem/ml_kem.c" + ], "crypto/modes/libcrypto-lib-cbc128.o" => [ "crypto/modes/cbc128.c" ], @@ -22746,6 +26330,9 @@ our %unified_info = ( "crypto/modes/libcrypto-lib-xts128.o" => [ "crypto/modes/xts128.c" ], + "crypto/modes/libcrypto-lib-xts128gb.o" => [ + "crypto/modes/xts128gb.c" + ], "crypto/modes/libfips-lib-cbc128.o" => [ "crypto/modes/cbc128.c" ], @@ -22773,6 +26360,9 @@ our %unified_info = ( "crypto/modes/libfips-lib-xts128.o" => [ "crypto/modes/xts128.c" ], + "crypto/modes/libfips-lib-xts128gb.o" => [ + "crypto/modes/xts128gb.c" + ], "crypto/objects/libcrypto-lib-o_names.o" => [ "crypto/objects/o_names.c" ], @@ -22818,6 +26408,9 @@ our %unified_info = ( "crypto/ocsp/libcrypto-lib-v3_ocsp.o" => [ "crypto/ocsp/v3_ocsp.c" ], + "crypto/packettest-bin-quic_vlint.o" => [ + "crypto/quic_vlint.c" + ], "crypto/pem/libcrypto-lib-pem_all.o" => [ "crypto/pem/pem_all.c" ], @@ -22980,6 +26573,9 @@ our %unified_info = ( "crypto/rand/libcrypto-lib-rand_pool.o" => [ "crypto/rand/rand_pool.c" ], + "crypto/rand/libcrypto-lib-rand_uniform.o" => [ + "crypto/rand/rand_uniform.c" + ], "crypto/rand/libcrypto-lib-randfile.o" => [ "crypto/rand/randfile.c" ], @@ -23211,6 +26807,66 @@ our %unified_info = ( "crypto/siphash/libcrypto-lib-siphash.o" => [ "crypto/siphash/siphash.c" ], + "crypto/slh_dsa/libcrypto-lib-slh_adrs.o" => [ + "crypto/slh_dsa/slh_adrs.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_dsa.o" => [ + "crypto/slh_dsa/slh_dsa.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_dsa_hash_ctx.o" => [ + "crypto/slh_dsa/slh_dsa_hash_ctx.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_dsa_key.o" => [ + "crypto/slh_dsa/slh_dsa_key.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_fors.o" => [ + "crypto/slh_dsa/slh_fors.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_hash.o" => [ + "crypto/slh_dsa/slh_hash.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_hypertree.o" => [ + "crypto/slh_dsa/slh_hypertree.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_params.o" => [ + "crypto/slh_dsa/slh_params.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_wots.o" => [ + "crypto/slh_dsa/slh_wots.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_xmss.o" => [ + "crypto/slh_dsa/slh_xmss.c" + ], + "crypto/slh_dsa/libfips-lib-slh_adrs.o" => [ + "crypto/slh_dsa/slh_adrs.c" + ], + "crypto/slh_dsa/libfips-lib-slh_dsa.o" => [ + "crypto/slh_dsa/slh_dsa.c" + ], + "crypto/slh_dsa/libfips-lib-slh_dsa_hash_ctx.o" => [ + "crypto/slh_dsa/slh_dsa_hash_ctx.c" + ], + "crypto/slh_dsa/libfips-lib-slh_dsa_key.o" => [ + "crypto/slh_dsa/slh_dsa_key.c" + ], + "crypto/slh_dsa/libfips-lib-slh_fors.o" => [ + "crypto/slh_dsa/slh_fors.c" + ], + "crypto/slh_dsa/libfips-lib-slh_hash.o" => [ + "crypto/slh_dsa/slh_hash.c" + ], + "crypto/slh_dsa/libfips-lib-slh_hypertree.o" => [ + "crypto/slh_dsa/slh_hypertree.c" + ], + "crypto/slh_dsa/libfips-lib-slh_params.o" => [ + "crypto/slh_dsa/slh_params.c" + ], + "crypto/slh_dsa/libfips-lib-slh_wots.o" => [ + "crypto/slh_dsa/slh_wots.c" + ], + "crypto/slh_dsa/libfips-lib-slh_xmss.o" => [ + "crypto/slh_dsa/slh_xmss.c" + ], "crypto/sm2/libcrypto-lib-sm2_crypt.o" => [ "crypto/sm2/sm2_crypt.c" ], @@ -23265,6 +26921,42 @@ our %unified_info = ( "crypto/store/libcrypto-lib-store_strings.o" => [ "crypto/store/store_strings.c" ], + "crypto/thread/arch/libcrypto-lib-thread_none.o" => [ + "crypto/thread/arch/thread_none.c" + ], + "crypto/thread/arch/libcrypto-lib-thread_posix.o" => [ + "crypto/thread/arch/thread_posix.c" + ], + "crypto/thread/arch/libcrypto-lib-thread_win.o" => [ + "crypto/thread/arch/thread_win.c" + ], + "crypto/thread/arch/libfips-lib-thread_none.o" => [ + "crypto/thread/arch/thread_none.c" + ], + "crypto/thread/arch/libfips-lib-thread_posix.o" => [ + "crypto/thread/arch/thread_posix.c" + ], + "crypto/thread/arch/libfips-lib-thread_win.o" => [ + "crypto/thread/arch/thread_win.c" + ], + "crypto/thread/libcrypto-lib-api.o" => [ + "crypto/thread/api.c" + ], + "crypto/thread/libcrypto-lib-arch.o" => [ + "crypto/thread/arch.c" + ], + "crypto/thread/libcrypto-lib-internal.o" => [ + "crypto/thread/internal.c" + ], + "crypto/thread/libfips-lib-api.o" => [ + "crypto/thread/api.c" + ], + "crypto/thread/libfips-lib-arch.o" => [ + "crypto/thread/arch.c" + ], + "crypto/thread/libfips-lib-internal.o" => [ + "crypto/thread/internal.c" + ], "crypto/ts/libcrypto-lib-ts_asn1.o" => [ "crypto/ts/ts_asn1.c" ], @@ -23352,6 +27044,9 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-pcy_tree.o" => [ "crypto/x509/pcy_tree.c" ], + "crypto/x509/libcrypto-lib-t_acert.o" => [ + "crypto/x509/t_acert.c" + ], "crypto/x509/libcrypto-lib-t_crl.o" => [ "crypto/x509/t_crl.c" ], @@ -23361,6 +27056,12 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-t_x509.o" => [ "crypto/x509/t_x509.c" ], + "crypto/x509/libcrypto-lib-v3_aaa.o" => [ + "crypto/x509/v3_aaa.c" + ], + "crypto/x509/libcrypto-lib-v3_ac_tgt.o" => [ + "crypto/x509/v3_ac_tgt.c" + ], "crypto/x509/libcrypto-lib-v3_addr.o" => [ "crypto/x509/v3_addr.c" ], @@ -23376,6 +27077,21 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_asid.o" => [ "crypto/x509/v3_asid.c" ], + "crypto/x509/libcrypto-lib-v3_attrdesc.o" => [ + "crypto/x509/v3_attrdesc.c" + ], + "crypto/x509/libcrypto-lib-v3_attrmap.o" => [ + "crypto/x509/v3_attrmap.c" + ], + "crypto/x509/libcrypto-lib-v3_audit_id.o" => [ + "crypto/x509/v3_audit_id.c" + ], + "crypto/x509/libcrypto-lib-v3_authattid.o" => [ + "crypto/x509/v3_authattid.c" + ], + "crypto/x509/libcrypto-lib-v3_battcons.o" => [ + "crypto/x509/v3_battcons.c" + ], "crypto/x509/libcrypto-lib-v3_bcons.o" => [ "crypto/x509/v3_bcons.c" ], @@ -23400,15 +27116,24 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_genn.o" => [ "crypto/x509/v3_genn.c" ], + "crypto/x509/libcrypto-lib-v3_group_ac.o" => [ + "crypto/x509/v3_group_ac.c" + ], "crypto/x509/libcrypto-lib-v3_ia5.o" => [ "crypto/x509/v3_ia5.c" ], + "crypto/x509/libcrypto-lib-v3_ind_iss.o" => [ + "crypto/x509/v3_ind_iss.c" + ], "crypto/x509/libcrypto-lib-v3_info.o" => [ "crypto/x509/v3_info.c" ], "crypto/x509/libcrypto-lib-v3_int.o" => [ "crypto/x509/v3_int.c" ], + "crypto/x509/libcrypto-lib-v3_iobo.o" => [ + "crypto/x509/v3_iobo.c" + ], "crypto/x509/libcrypto-lib-v3_ist.o" => [ "crypto/x509/v3_ist.c" ], @@ -23418,6 +27143,12 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_ncons.o" => [ "crypto/x509/v3_ncons.c" ], + "crypto/x509/libcrypto-lib-v3_no_ass.o" => [ + "crypto/x509/v3_no_ass.c" + ], + "crypto/x509/libcrypto-lib-v3_no_rev_avail.o" => [ + "crypto/x509/v3_no_rev_avail.c" + ], "crypto/x509/libcrypto-lib-v3_pci.o" => [ "crypto/x509/v3_pci.c" ], @@ -23439,18 +27170,36 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_purp.o" => [ "crypto/x509/v3_purp.c" ], + "crypto/x509/libcrypto-lib-v3_rolespec.o" => [ + "crypto/x509/v3_rolespec.c" + ], "crypto/x509/libcrypto-lib-v3_san.o" => [ "crypto/x509/v3_san.c" ], + "crypto/x509/libcrypto-lib-v3_sda.o" => [ + "crypto/x509/v3_sda.c" + ], + "crypto/x509/libcrypto-lib-v3_single_use.o" => [ + "crypto/x509/v3_single_use.c" + ], "crypto/x509/libcrypto-lib-v3_skid.o" => [ "crypto/x509/v3_skid.c" ], + "crypto/x509/libcrypto-lib-v3_soa_id.o" => [ + "crypto/x509/v3_soa_id.c" + ], "crypto/x509/libcrypto-lib-v3_sxnet.o" => [ "crypto/x509/v3_sxnet.c" ], + "crypto/x509/libcrypto-lib-v3_timespec.o" => [ + "crypto/x509/v3_timespec.c" + ], "crypto/x509/libcrypto-lib-v3_tlsf.o" => [ "crypto/x509/v3_tlsf.c" ], + "crypto/x509/libcrypto-lib-v3_usernotice.o" => [ + "crypto/x509/v3_usernotice.c" + ], "crypto/x509/libcrypto-lib-v3_utf8.o" => [ "crypto/x509/v3_utf8.c" ], @@ -23460,6 +27209,9 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3err.o" => [ "crypto/x509/v3err.c" ], + "crypto/x509/libcrypto-lib-x509_acert.o" => [ + "crypto/x509/x509_acert.c" + ], "crypto/x509/libcrypto-lib-x509_att.o" => [ "crypto/x509/x509_att.c" ], @@ -23511,6 +27263,9 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x509_vpm.o" => [ "crypto/x509/x509_vpm.c" ], + "crypto/x509/libcrypto-lib-x509aset.o" => [ + "crypto/x509/x509aset.c" + ], "crypto/x509/libcrypto-lib-x509cset.o" => [ "crypto/x509/x509cset.c" ], @@ -23538,6 +27293,9 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x_exten.o" => [ "crypto/x509/x_exten.c" ], + "crypto/x509/libcrypto-lib-x_ietfatt.o" => [ + "crypto/x509/x_ietfatt.c" + ], "crypto/x509/libcrypto-lib-x_name.o" => [ "crypto/x509/x_name.c" ], @@ -23562,6 +27320,16 @@ our %unified_info = ( "engines/libcrypto-lib-e_padlock.o" => [ "engines/e_padlock.c" ], + "fuzz/acert-test" => [ + "fuzz/acert-test-bin-acert.o", + "fuzz/acert-test-bin-test-corpus.o" + ], + "fuzz/acert-test-bin-acert.o" => [ + "fuzz/acert.c" + ], + "fuzz/acert-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], "fuzz/asn1-test" => [ "fuzz/asn1-test-bin-asn1.o", "fuzz/asn1-test-bin-fuzz_rand.o", @@ -23674,6 +27442,190 @@ our %unified_info = ( "fuzz/ct-test-bin-test-corpus.o" => [ "fuzz/test-corpus.c" ], + "fuzz/decoder-test" => [ + "fuzz/decoder-test-bin-decoder.o", + "fuzz/decoder-test-bin-fuzz_rand.o", + "fuzz/decoder-test-bin-test-corpus.o" + ], + "fuzz/decoder-test-bin-decoder.o" => [ + "fuzz/decoder.c" + ], + "fuzz/decoder-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/decoder-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/dtlsclient-test" => [ + "fuzz/dtlsclient-test-bin-dtlsclient.o", + "fuzz/dtlsclient-test-bin-fuzz_rand.o", + "fuzz/dtlsclient-test-bin-test-corpus.o" + ], + "fuzz/dtlsclient-test-bin-dtlsclient.o" => [ + "fuzz/dtlsclient.c" + ], + "fuzz/dtlsclient-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/dtlsclient-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/dtlsserver-test" => [ + "fuzz/dtlsserver-test-bin-dtlsserver.o", + "fuzz/dtlsserver-test-bin-fuzz_rand.o", + "fuzz/dtlsserver-test-bin-test-corpus.o" + ], + "fuzz/dtlsserver-test-bin-dtlsserver.o" => [ + "fuzz/dtlsserver.c" + ], + "fuzz/dtlsserver-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/dtlsserver-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/hashtable-test" => [ + "fuzz/hashtable-test-bin-fuzz_rand.o", + "fuzz/hashtable-test-bin-hashtable.o", + "fuzz/hashtable-test-bin-test-corpus.o" + ], + "fuzz/hashtable-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/hashtable-test-bin-hashtable.o" => [ + "fuzz/hashtable.c" + ], + "fuzz/hashtable-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/ml-dsa-test" => [ + "fuzz/ml-dsa-test-bin-fuzz_rand.o", + "fuzz/ml-dsa-test-bin-ml-dsa.o", + "fuzz/ml-dsa-test-bin-test-corpus.o" + ], + "fuzz/ml-dsa-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/ml-dsa-test-bin-ml-dsa.o" => [ + "fuzz/ml-dsa.c" + ], + "fuzz/ml-dsa-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/ml-kem-test" => [ + "fuzz/ml-kem-test-bin-fuzz_rand.o", + "fuzz/ml-kem-test-bin-ml-kem.o", + "fuzz/ml-kem-test-bin-test-corpus.o" + ], + "fuzz/ml-kem-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/ml-kem-test-bin-ml-kem.o" => [ + "fuzz/ml-kem.c" + ], + "fuzz/ml-kem-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/pem-test" => [ + "fuzz/pem-test-bin-pem.o", + "fuzz/pem-test-bin-test-corpus.o" + ], + "fuzz/pem-test-bin-pem.o" => [ + "fuzz/pem.c" + ], + "fuzz/pem-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/provider-test" => [ + "fuzz/provider-test-bin-provider.o", + "fuzz/provider-test-bin-test-corpus.o" + ], + "fuzz/provider-test-bin-provider.o" => [ + "fuzz/provider.c" + ], + "fuzz/provider-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/punycode-test" => [ + "fuzz/punycode-test-bin-punycode.o", + "fuzz/punycode-test-bin-test-corpus.o" + ], + "fuzz/punycode-test-bin-punycode.o" => [ + "fuzz/punycode.c" + ], + "fuzz/punycode-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-client-test" => [ + "fuzz/quic-client-test-bin-fuzz_rand.o", + "fuzz/quic-client-test-bin-quic-client.o", + "fuzz/quic-client-test-bin-test-corpus.o" + ], + "fuzz/quic-client-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-client-test-bin-quic-client.o" => [ + "fuzz/quic-client.c" + ], + "fuzz/quic-client-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-lcidm-test" => [ + "fuzz/quic-lcidm-test-bin-fuzz_rand.o", + "fuzz/quic-lcidm-test-bin-quic-lcidm.o", + "fuzz/quic-lcidm-test-bin-test-corpus.o" + ], + "fuzz/quic-lcidm-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-lcidm-test-bin-quic-lcidm.o" => [ + "fuzz/quic-lcidm.c" + ], + "fuzz/quic-lcidm-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-rcidm-test" => [ + "fuzz/quic-rcidm-test-bin-fuzz_rand.o", + "fuzz/quic-rcidm-test-bin-quic-rcidm.o", + "fuzz/quic-rcidm-test-bin-test-corpus.o" + ], + "fuzz/quic-rcidm-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-rcidm-test-bin-quic-rcidm.o" => [ + "fuzz/quic-rcidm.c" + ], + "fuzz/quic-rcidm-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-server-test" => [ + "fuzz/quic-server-test-bin-fuzz_rand.o", + "fuzz/quic-server-test-bin-quic-server.o", + "fuzz/quic-server-test-bin-test-corpus.o" + ], + "fuzz/quic-server-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-server-test-bin-quic-server.o" => [ + "fuzz/quic-server.c" + ], + "fuzz/quic-server-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-srtm-test" => [ + "fuzz/quic-srtm-test-bin-fuzz_rand.o", + "fuzz/quic-srtm-test-bin-quic-srtm.o", + "fuzz/quic-srtm-test-bin-test-corpus.o" + ], + "fuzz/quic-srtm-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-srtm-test-bin-quic-srtm.o" => [ + "fuzz/quic-srtm.c" + ], + "fuzz/quic-srtm-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], "fuzz/server-test" => [ "fuzz/server-test-bin-fuzz_rand.o", "fuzz/server-test-bin-server.o", @@ -23688,6 +27640,40 @@ our %unified_info = ( "fuzz/server-test-bin-test-corpus.o" => [ "fuzz/test-corpus.c" ], + "fuzz/slh-dsa-test" => [ + "fuzz/slh-dsa-test-bin-fuzz_rand.o", + "fuzz/slh-dsa-test-bin-slh-dsa.o", + "fuzz/slh-dsa-test-bin-test-corpus.o" + ], + "fuzz/slh-dsa-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/slh-dsa-test-bin-slh-dsa.o" => [ + "fuzz/slh-dsa.c" + ], + "fuzz/slh-dsa-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/smime-test" => [ + "fuzz/smime-test-bin-smime.o", + "fuzz/smime-test-bin-test-corpus.o" + ], + "fuzz/smime-test-bin-smime.o" => [ + "fuzz/smime.c" + ], + "fuzz/smime-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/v3name-test" => [ + "fuzz/v3name-test-bin-test-corpus.o", + "fuzz/v3name-test-bin-v3name.o" + ], + "fuzz/v3name-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/v3name-test-bin-v3name.o" => [ + "fuzz/v3name.c" + ], "fuzz/x509-test" => [ "fuzz/x509-test-bin-fuzz_rand.o", "fuzz/x509-test-bin-test-corpus.o", @@ -23808,6 +27794,7 @@ our %unified_info = ( "crypto/bio/libcrypto-lib-bss_conn.o", "crypto/bio/libcrypto-lib-bss_core.o", "crypto/bio/libcrypto-lib-bss_dgram.o", + "crypto/bio/libcrypto-lib-bss_dgram_pair.o", "crypto/bio/libcrypto-lib-bss_fd.o", "crypto/bio/libcrypto-lib-bss_file.o", "crypto/bio/libcrypto-lib-bss_log.o", @@ -23869,6 +27856,7 @@ our %unified_info = ( "crypto/cmp/libcrypto-lib-cmp_client.o", "crypto/cmp/libcrypto-lib-cmp_ctx.o", "crypto/cmp/libcrypto-lib-cmp_err.o", + "crypto/cmp/libcrypto-lib-cmp_genm.o", "crypto/cmp/libcrypto-lib-cmp_hdr.o", "crypto/cmp/libcrypto-lib-cmp_http.o", "crypto/cmp/libcrypto-lib-cmp_msg.o", @@ -24046,7 +28034,9 @@ our %unified_info = ( "crypto/err/libcrypto-lib-err_all.o", "crypto/err/libcrypto-lib-err_all_legacy.o", "crypto/err/libcrypto-lib-err_blocks.o", + "crypto/err/libcrypto-lib-err_mark.o", "crypto/err/libcrypto-lib-err_prn.o", + "crypto/err/libcrypto-lib-err_save.o", "crypto/ess/libcrypto-lib-ess_asn1.o", "crypto/ess/libcrypto-lib-ess_err.o", "crypto/ess/libcrypto-lib-ess_lib.o", @@ -24129,7 +28119,9 @@ our %unified_info = ( "crypto/evp/libcrypto-lib-pmeth_check.o", "crypto/evp/libcrypto-lib-pmeth_gn.o", "crypto/evp/libcrypto-lib-pmeth_lib.o", + "crypto/evp/libcrypto-lib-s_lib.o", "crypto/evp/libcrypto-lib-signature.o", + "crypto/evp/libcrypto-lib-skeymgmt_meth.o", "crypto/ffc/libcrypto-lib-ffc_backend.o", "crypto/ffc/libcrypto-lib-ffc_dh.o", "crypto/ffc/libcrypto-lib-ffc_key_generate.o", @@ -24137,7 +28129,11 @@ our %unified_info = ( "crypto/ffc/libcrypto-lib-ffc_params.o", "crypto/ffc/libcrypto-lib-ffc_params_generate.o", "crypto/ffc/libcrypto-lib-ffc_params_validate.o", + "crypto/hashtable/libcrypto-lib-hashfunc.o", + "crypto/hashtable/libcrypto-lib-hashtable.o", "crypto/hmac/libcrypto-lib-hmac.o", + "crypto/hpke/libcrypto-lib-hpke.o", + "crypto/hpke/libcrypto-lib-hpke_util.o", "crypto/http/libcrypto-lib-http_client.o", "crypto/http/libcrypto-lib-http_err.o", "crypto/http/libcrypto-lib-http_lib.o", @@ -24151,6 +28147,7 @@ our %unified_info = ( "crypto/lhash/libcrypto-lib-lhash.o", "crypto/libcrypto-lib-asn1_dsa.o", "crypto/libcrypto-lib-bsearch.o", + "crypto/libcrypto-lib-comp_methods.o", "crypto/libcrypto-lib-context.o", "crypto/libcrypto-lib-core_algorithm.o", "crypto/libcrypto-lib-core_fetch.o", @@ -24160,10 +28157,13 @@ our %unified_info = ( "crypto/libcrypto-lib-cryptlib.o", "crypto/libcrypto-lib-ctype.o", "crypto/libcrypto-lib-cversion.o", + "crypto/libcrypto-lib-defaults.o", "crypto/libcrypto-lib-der_writer.o", + "crypto/libcrypto-lib-deterministic_nonce.o", "crypto/libcrypto-lib-ebcdic.o", "crypto/libcrypto-lib-ex_data.o", "crypto/libcrypto-lib-getenv.o", + "crypto/libcrypto-lib-indicator_core.o", "crypto/libcrypto-lib-info.o", "crypto/libcrypto-lib-init.o", "crypto/libcrypto-lib-initthread.o", @@ -24180,6 +28180,7 @@ our %unified_info = ( "crypto/libcrypto-lib-params.o", "crypto/libcrypto-lib-params_dup.o", "crypto/libcrypto-lib-params_from_text.o", + "crypto/libcrypto-lib-params_idx.o", "crypto/libcrypto-lib-passphrase.o", "crypto/libcrypto-lib-provider.o", "crypto/libcrypto-lib-provider_child.o", @@ -24187,12 +28188,16 @@ our %unified_info = ( "crypto/libcrypto-lib-provider_core.o", "crypto/libcrypto-lib-provider_predefined.o", "crypto/libcrypto-lib-punycode.o", + "crypto/libcrypto-lib-quic_vlint.o", "crypto/libcrypto-lib-self_test_core.o", + "crypto/libcrypto-lib-sleep.o", "crypto/libcrypto-lib-sparse_array.o", + "crypto/libcrypto-lib-ssl_err.o", "crypto/libcrypto-lib-threads_lib.o", "crypto/libcrypto-lib-threads_none.o", "crypto/libcrypto-lib-threads_pthread.o", "crypto/libcrypto-lib-threads_win.o", + "crypto/libcrypto-lib-time.o", "crypto/libcrypto-lib-trace.o", "crypto/libcrypto-lib-uid.o", "crypto/libcrypto-lib-x86cpuid.o", @@ -24204,6 +28209,15 @@ our %unified_info = ( "crypto/md5/libcrypto-lib-md5_sha1.o", "crypto/mdc2/libcrypto-lib-mdc2_one.o", "crypto/mdc2/libcrypto-lib-mdc2dgst.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_encoders.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key_compress.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_matrix.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_ntt.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_params.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sample.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sign.o", + "crypto/ml_kem/libcrypto-lib-ml_kem.o", "crypto/modes/libcrypto-lib-cbc128.o", "crypto/modes/libcrypto-lib-ccm128.o", "crypto/modes/libcrypto-lib-cfb128.o", @@ -24216,6 +28230,7 @@ our %unified_info = ( "crypto/modes/libcrypto-lib-siv128.o", "crypto/modes/libcrypto-lib-wrap128.o", "crypto/modes/libcrypto-lib-xts128.o", + "crypto/modes/libcrypto-lib-xts128gb.o", "crypto/objects/libcrypto-lib-o_names.o", "crypto/objects/libcrypto-lib-obj_dat.o", "crypto/objects/libcrypto-lib-obj_err.o", @@ -24280,6 +28295,7 @@ our %unified_info = ( "crypto/rand/libcrypto-lib-rand_lib.o", "crypto/rand/libcrypto-lib-rand_meth.o", "crypto/rand/libcrypto-lib-rand_pool.o", + "crypto/rand/libcrypto-lib-rand_uniform.o", "crypto/rand/libcrypto-lib-randfile.o", "crypto/rc2/libcrypto-lib-rc2_cbc.o", "crypto/rc2/libcrypto-lib-rc2_ecb.o", @@ -24331,6 +28347,16 @@ our %unified_info = ( "crypto/sha/libcrypto-lib-sha512-586.o", "crypto/sha/libcrypto-lib-sha512.o", "crypto/siphash/libcrypto-lib-siphash.o", + "crypto/slh_dsa/libcrypto-lib-slh_adrs.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa_hash_ctx.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa_key.o", + "crypto/slh_dsa/libcrypto-lib-slh_fors.o", + "crypto/slh_dsa/libcrypto-lib-slh_hash.o", + "crypto/slh_dsa/libcrypto-lib-slh_hypertree.o", + "crypto/slh_dsa/libcrypto-lib-slh_params.o", + "crypto/slh_dsa/libcrypto-lib-slh_wots.o", + "crypto/slh_dsa/libcrypto-lib-slh_xmss.o", "crypto/sm2/libcrypto-lib-sm2_crypt.o", "crypto/sm2/libcrypto-lib-sm2_err.o", "crypto/sm2/libcrypto-lib-sm2_key.o", @@ -24348,6 +28374,12 @@ our %unified_info = ( "crypto/store/libcrypto-lib-store_register.o", "crypto/store/libcrypto-lib-store_result.o", "crypto/store/libcrypto-lib-store_strings.o", + "crypto/thread/arch/libcrypto-lib-thread_none.o", + "crypto/thread/arch/libcrypto-lib-thread_posix.o", + "crypto/thread/arch/libcrypto-lib-thread_win.o", + "crypto/thread/libcrypto-lib-api.o", + "crypto/thread/libcrypto-lib-arch.o", + "crypto/thread/libcrypto-lib-internal.o", "crypto/ts/libcrypto-lib-ts_asn1.o", "crypto/ts/libcrypto-lib-ts_conf.o", "crypto/ts/libcrypto-lib-ts_err.o", @@ -24377,14 +28409,22 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-pcy_map.o", "crypto/x509/libcrypto-lib-pcy_node.o", "crypto/x509/libcrypto-lib-pcy_tree.o", + "crypto/x509/libcrypto-lib-t_acert.o", "crypto/x509/libcrypto-lib-t_crl.o", "crypto/x509/libcrypto-lib-t_req.o", "crypto/x509/libcrypto-lib-t_x509.o", + "crypto/x509/libcrypto-lib-v3_aaa.o", + "crypto/x509/libcrypto-lib-v3_ac_tgt.o", "crypto/x509/libcrypto-lib-v3_addr.o", "crypto/x509/libcrypto-lib-v3_admis.o", "crypto/x509/libcrypto-lib-v3_akeya.o", "crypto/x509/libcrypto-lib-v3_akid.o", "crypto/x509/libcrypto-lib-v3_asid.o", + "crypto/x509/libcrypto-lib-v3_attrdesc.o", + "crypto/x509/libcrypto-lib-v3_attrmap.o", + "crypto/x509/libcrypto-lib-v3_audit_id.o", + "crypto/x509/libcrypto-lib-v3_authattid.o", + "crypto/x509/libcrypto-lib-v3_battcons.o", "crypto/x509/libcrypto-lib-v3_bcons.o", "crypto/x509/libcrypto-lib-v3_bitst.o", "crypto/x509/libcrypto-lib-v3_conf.o", @@ -24393,12 +28433,17 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_enum.o", "crypto/x509/libcrypto-lib-v3_extku.o", "crypto/x509/libcrypto-lib-v3_genn.o", + "crypto/x509/libcrypto-lib-v3_group_ac.o", "crypto/x509/libcrypto-lib-v3_ia5.o", + "crypto/x509/libcrypto-lib-v3_ind_iss.o", "crypto/x509/libcrypto-lib-v3_info.o", "crypto/x509/libcrypto-lib-v3_int.o", + "crypto/x509/libcrypto-lib-v3_iobo.o", "crypto/x509/libcrypto-lib-v3_ist.o", "crypto/x509/libcrypto-lib-v3_lib.o", "crypto/x509/libcrypto-lib-v3_ncons.o", + "crypto/x509/libcrypto-lib-v3_no_ass.o", + "crypto/x509/libcrypto-lib-v3_no_rev_avail.o", "crypto/x509/libcrypto-lib-v3_pci.o", "crypto/x509/libcrypto-lib-v3_pcia.o", "crypto/x509/libcrypto-lib-v3_pcons.o", @@ -24406,13 +28451,20 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_pmaps.o", "crypto/x509/libcrypto-lib-v3_prn.o", "crypto/x509/libcrypto-lib-v3_purp.o", + "crypto/x509/libcrypto-lib-v3_rolespec.o", "crypto/x509/libcrypto-lib-v3_san.o", + "crypto/x509/libcrypto-lib-v3_sda.o", + "crypto/x509/libcrypto-lib-v3_single_use.o", "crypto/x509/libcrypto-lib-v3_skid.o", + "crypto/x509/libcrypto-lib-v3_soa_id.o", "crypto/x509/libcrypto-lib-v3_sxnet.o", + "crypto/x509/libcrypto-lib-v3_timespec.o", "crypto/x509/libcrypto-lib-v3_tlsf.o", + "crypto/x509/libcrypto-lib-v3_usernotice.o", "crypto/x509/libcrypto-lib-v3_utf8.o", "crypto/x509/libcrypto-lib-v3_utl.o", "crypto/x509/libcrypto-lib-v3err.o", + "crypto/x509/libcrypto-lib-x509_acert.o", "crypto/x509/libcrypto-lib-x509_att.o", "crypto/x509/libcrypto-lib-x509_cmp.o", "crypto/x509/libcrypto-lib-x509_d2.o", @@ -24430,6 +28482,7 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x509_v3.o", "crypto/x509/libcrypto-lib-x509_vfy.o", "crypto/x509/libcrypto-lib-x509_vpm.o", + "crypto/x509/libcrypto-lib-x509aset.o", "crypto/x509/libcrypto-lib-x509cset.o", "crypto/x509/libcrypto-lib-x509name.o", "crypto/x509/libcrypto-lib-x509rset.o", @@ -24439,6 +28492,7 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x_attrib.o", "crypto/x509/libcrypto-lib-x_crl.o", "crypto/x509/libcrypto-lib-x_exten.o", + "crypto/x509/libcrypto-lib-x_ietfatt.o", "crypto/x509/libcrypto-lib-x_name.o", "crypto/x509/libcrypto-lib-x_pubkey.o", "crypto/x509/libcrypto-lib-x_req.o", @@ -24460,14 +28514,15 @@ our %unified_info = ( "ssl/libssl-lib-d1_srtp.o", "ssl/libssl-lib-methods.o", "ssl/libssl-lib-pqueue.o", + "ssl/libssl-lib-priority_queue.o", "ssl/libssl-lib-s3_enc.o", "ssl/libssl-lib-s3_lib.o", "ssl/libssl-lib-s3_msg.o", "ssl/libssl-lib-ssl_asn1.o", "ssl/libssl-lib-ssl_cert.o", + "ssl/libssl-lib-ssl_cert_comp.o", "ssl/libssl-lib-ssl_ciph.o", "ssl/libssl-lib-ssl_conf.o", - "ssl/libssl-lib-ssl_err.o", "ssl/libssl-lib-ssl_err_legacy.o", "ssl/libssl-lib-ssl_init.o", "ssl/libssl-lib-ssl_lib.o", @@ -24484,12 +28539,60 @@ our %unified_info = ( "ssl/libssl-lib-tls13_enc.o", "ssl/libssl-lib-tls_depr.o", "ssl/libssl-lib-tls_srp.o", - "ssl/record/libssl-lib-dtls1_bitmap.o", + "ssl/quic/libssl-lib-cc_newreno.o", + "ssl/quic/libssl-lib-json_enc.o", + "ssl/quic/libssl-lib-qlog.o", + "ssl/quic/libssl-lib-qlog_event_helpers.o", + "ssl/quic/libssl-lib-quic_ackm.o", + "ssl/quic/libssl-lib-quic_cfq.o", + "ssl/quic/libssl-lib-quic_channel.o", + "ssl/quic/libssl-lib-quic_demux.o", + "ssl/quic/libssl-lib-quic_engine.o", + "ssl/quic/libssl-lib-quic_fc.o", + "ssl/quic/libssl-lib-quic_fifd.o", + "ssl/quic/libssl-lib-quic_impl.o", + "ssl/quic/libssl-lib-quic_lcidm.o", + "ssl/quic/libssl-lib-quic_method.o", + "ssl/quic/libssl-lib-quic_obj.o", + "ssl/quic/libssl-lib-quic_port.o", + "ssl/quic/libssl-lib-quic_rcidm.o", + "ssl/quic/libssl-lib-quic_reactor.o", + "ssl/quic/libssl-lib-quic_reactor_wait_ctx.o", + "ssl/quic/libssl-lib-quic_record_rx.o", + "ssl/quic/libssl-lib-quic_record_shared.o", + "ssl/quic/libssl-lib-quic_record_tx.o", + "ssl/quic/libssl-lib-quic_record_util.o", + "ssl/quic/libssl-lib-quic_rstream.o", + "ssl/quic/libssl-lib-quic_rx_depack.o", + "ssl/quic/libssl-lib-quic_sf_list.o", + "ssl/quic/libssl-lib-quic_srt_gen.o", + "ssl/quic/libssl-lib-quic_srtm.o", + "ssl/quic/libssl-lib-quic_sstream.o", + "ssl/quic/libssl-lib-quic_statm.o", + "ssl/quic/libssl-lib-quic_stream_map.o", + "ssl/quic/libssl-lib-quic_thread_assist.o", + "ssl/quic/libssl-lib-quic_tls.o", + "ssl/quic/libssl-lib-quic_tls_api.o", + "ssl/quic/libssl-lib-quic_trace.o", + "ssl/quic/libssl-lib-quic_tserver.o", + "ssl/quic/libssl-lib-quic_txp.o", + "ssl/quic/libssl-lib-quic_txpim.o", + "ssl/quic/libssl-lib-quic_types.o", + "ssl/quic/libssl-lib-quic_wire.o", + "ssl/quic/libssl-lib-quic_wire_pkt.o", + "ssl/quic/libssl-lib-uint_set.o", "ssl/record/libssl-lib-rec_layer_d1.o", "ssl/record/libssl-lib-rec_layer_s3.o", - "ssl/record/libssl-lib-ssl3_buffer.o", - "ssl/record/libssl-lib-ssl3_record.o", - "ssl/record/libssl-lib-ssl3_record_tls13.o", + "ssl/record/methods/libssl-lib-dtls_meth.o", + "ssl/record/methods/libssl-lib-ssl3_meth.o", + "ssl/record/methods/libssl-lib-tls13_meth.o", + "ssl/record/methods/libssl-lib-tls1_meth.o", + "ssl/record/methods/libssl-lib-tls_common.o", + "ssl/record/methods/libssl-lib-tls_multib.o", + "ssl/record/methods/libssl-lib-tlsany_meth.o", + "ssl/rio/libssl-lib-poll_builder.o", + "ssl/rio/libssl-lib-poll_immediate.o", + "ssl/rio/libssl-lib-rio_notifier.o", "ssl/statem/libssl-lib-extensions.o", "ssl/statem/libssl-lib-extensions_clnt.o", "ssl/statem/libssl-lib-extensions_cust.o", @@ -24527,12 +28630,24 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ecx_key.o" => [ "providers/common/der/der_ecx_key.c" ], + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o" => [ + "providers/common/der/der_ml_dsa_gen.c" + ], + "providers/common/der/libcommon-lib-der_ml_dsa_key.o" => [ + "providers/common/der/der_ml_dsa_key.c" + ], "providers/common/der/libcommon-lib-der_rsa_gen.o" => [ "providers/common/der/der_rsa_gen.c" ], "providers/common/der/libcommon-lib-der_rsa_key.o" => [ "providers/common/der/der_rsa_key.c" ], + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o" => [ + "providers/common/der/der_slh_dsa_gen.c" + ], + "providers/common/der/libcommon-lib-der_slh_dsa_key.o" => [ + "providers/common/der/der_slh_dsa_key.c" + ], "providers/common/der/libcommon-lib-der_wrap_gen.o" => [ "providers/common/der/der_wrap_gen.c" ], @@ -24599,6 +28714,9 @@ our %unified_info = ( "providers/common/libfips-lib-securitycheck_fips.o" => [ "providers/common/securitycheck_fips.c" ], + "providers/endecode_test-bin-legacyprov.o" => [ + "providers/legacyprov.c" + ], "providers/evp_extra_test-bin-legacyprov.o" => [ "providers/legacyprov.c" ], @@ -24609,6 +28727,9 @@ our %unified_info = ( "providers/fips/fips-dso-fips_entry.o" => [ "providers/fips/fips_entry.c" ], + "providers/fips/libfips-lib-fipsindicator.o" => [ + "providers/fips/fipsindicator.c" + ], "providers/fips/libfips-lib-fipsprov.o" => [ "providers/fips/fipsprov.c" ], @@ -24672,6 +28793,15 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_hw.o" => [ "providers/implementations/ciphers/cipher_aes_gcm_hw.c" ], + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv.o" => [ + "providers/implementations/ciphers/cipher_aes_gcm_siv.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_hw.o" => [ + "providers/implementations/ciphers/cipher_aes_gcm_siv_hw.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_polyval.o" => [ + "providers/implementations/ciphers/cipher_aes_gcm_siv_polyval.c" + ], "providers/implementations/ciphers/libdefault-lib-cipher_aes_hw.o" => [ "providers/implementations/ciphers/cipher_aes_hw.c" ], @@ -24744,9 +28874,27 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_sm4.o" => [ "providers/implementations/ciphers/cipher_sm4.c" ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm.o" => [ + "providers/implementations/ciphers/cipher_sm4_ccm.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm_hw.o" => [ + "providers/implementations/ciphers/cipher_sm4_ccm_hw.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm.o" => [ + "providers/implementations/ciphers/cipher_sm4_gcm.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm_hw.o" => [ + "providers/implementations/ciphers/cipher_sm4_gcm_hw.c" + ], "providers/implementations/ciphers/libdefault-lib-cipher_sm4_hw.o" => [ "providers/implementations/ciphers/cipher_sm4_hw.c" ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts.o" => [ + "providers/implementations/ciphers/cipher_sm4_xts.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts_hw.o" => [ + "providers/implementations/ciphers/cipher_sm4_xts_hw.c" + ], "providers/implementations/ciphers/libdefault-lib-cipher_tdes.o" => [ "providers/implementations/ciphers/cipher_tdes.c" ], @@ -24966,6 +29114,15 @@ our %unified_info = ( "providers/implementations/encode_decode/libdefault-lib-endecoder_common.o" => [ "providers/implementations/encode_decode/endecoder_common.c" ], + "providers/implementations/encode_decode/libdefault-lib-ml_common_codecs.o" => [ + "providers/implementations/encode_decode/ml_common_codecs.c" + ], + "providers/implementations/encode_decode/libdefault-lib-ml_dsa_codecs.o" => [ + "providers/implementations/encode_decode/ml_dsa_codecs.c" + ], + "providers/implementations/encode_decode/libdefault-lib-ml_kem_codecs.o" => [ + "providers/implementations/encode_decode/ml_kem_codecs.c" + ], "providers/implementations/exchange/libdefault-lib-dh_exch.o" => [ "providers/implementations/exchange/dh_exch.c" ], @@ -24990,9 +29147,15 @@ our %unified_info = ( "providers/implementations/exchange/libfips-lib-kdf_exch.o" => [ "providers/implementations/exchange/kdf_exch.c" ], + "providers/implementations/kdfs/libdefault-lib-argon2.o" => [ + "providers/implementations/kdfs/argon2.c" + ], "providers/implementations/kdfs/libdefault-lib-hkdf.o" => [ "providers/implementations/kdfs/hkdf.c" ], + "providers/implementations/kdfs/libdefault-lib-hmacdrbg_kdf.o" => [ + "providers/implementations/kdfs/hmacdrbg_kdf.c" + ], "providers/implementations/kdfs/libdefault-lib-kbkdf.o" => [ "providers/implementations/kdfs/kbkdf.c" ], @@ -25050,12 +29213,39 @@ our %unified_info = ( "providers/implementations/kdfs/liblegacy-lib-pbkdf1.o" => [ "providers/implementations/kdfs/pbkdf1.c" ], + "providers/implementations/kdfs/liblegacy-lib-pvkkdf.o" => [ + "providers/implementations/kdfs/pvkkdf.c" + ], + "providers/implementations/kem/libdefault-lib-ec_kem.o" => [ + "providers/implementations/kem/ec_kem.c" + ], + "providers/implementations/kem/libdefault-lib-ecx_kem.o" => [ + "providers/implementations/kem/ecx_kem.c" + ], + "providers/implementations/kem/libdefault-lib-kem_util.o" => [ + "providers/implementations/kem/kem_util.c" + ], + "providers/implementations/kem/libdefault-lib-ml_kem_kem.o" => [ + "providers/implementations/kem/ml_kem_kem.c" + ], + "providers/implementations/kem/libdefault-lib-mlx_kem.o" => [ + "providers/implementations/kem/mlx_kem.c" + ], "providers/implementations/kem/libdefault-lib-rsa_kem.o" => [ "providers/implementations/kem/rsa_kem.c" ], + "providers/implementations/kem/libfips-lib-ml_kem_kem.o" => [ + "providers/implementations/kem/ml_kem_kem.c" + ], + "providers/implementations/kem/libfips-lib-mlx_kem.o" => [ + "providers/implementations/kem/mlx_kem.c" + ], "providers/implementations/kem/libfips-lib-rsa_kem.o" => [ "providers/implementations/kem/rsa_kem.c" ], + "providers/implementations/kem/libtemplate-lib-template_kem.o" => [ + "providers/implementations/kem/template_kem.c" + ], "providers/implementations/keymgmt/libdefault-lib-dh_kmgmt.o" => [ "providers/implementations/keymgmt/dh_kmgmt.c" ], @@ -25074,9 +29264,21 @@ our %unified_info = ( "providers/implementations/keymgmt/libdefault-lib-mac_legacy_kmgmt.o" => [ "providers/implementations/keymgmt/mac_legacy_kmgmt.c" ], + "providers/implementations/keymgmt/libdefault-lib-ml_dsa_kmgmt.o" => [ + "providers/implementations/keymgmt/ml_dsa_kmgmt.c" + ], + "providers/implementations/keymgmt/libdefault-lib-ml_kem_kmgmt.o" => [ + "providers/implementations/keymgmt/ml_kem_kmgmt.c" + ], + "providers/implementations/keymgmt/libdefault-lib-mlx_kmgmt.o" => [ + "providers/implementations/keymgmt/mlx_kmgmt.c" + ], "providers/implementations/keymgmt/libdefault-lib-rsa_kmgmt.o" => [ "providers/implementations/keymgmt/rsa_kmgmt.c" ], + "providers/implementations/keymgmt/libdefault-lib-slh_dsa_kmgmt.o" => [ + "providers/implementations/keymgmt/slh_dsa_kmgmt.c" + ], "providers/implementations/keymgmt/libfips-lib-dh_kmgmt.o" => [ "providers/implementations/keymgmt/dh_kmgmt.c" ], @@ -25095,9 +29297,24 @@ our %unified_info = ( "providers/implementations/keymgmt/libfips-lib-mac_legacy_kmgmt.o" => [ "providers/implementations/keymgmt/mac_legacy_kmgmt.c" ], + "providers/implementations/keymgmt/libfips-lib-ml_dsa_kmgmt.o" => [ + "providers/implementations/keymgmt/ml_dsa_kmgmt.c" + ], + "providers/implementations/keymgmt/libfips-lib-ml_kem_kmgmt.o" => [ + "providers/implementations/keymgmt/ml_kem_kmgmt.c" + ], + "providers/implementations/keymgmt/libfips-lib-mlx_kmgmt.o" => [ + "providers/implementations/keymgmt/mlx_kmgmt.c" + ], "providers/implementations/keymgmt/libfips-lib-rsa_kmgmt.o" => [ "providers/implementations/keymgmt/rsa_kmgmt.c" ], + "providers/implementations/keymgmt/libfips-lib-slh_dsa_kmgmt.o" => [ + "providers/implementations/keymgmt/slh_dsa_kmgmt.c" + ], + "providers/implementations/keymgmt/libtemplate-lib-template_kmgmt.o" => [ + "providers/implementations/keymgmt/template_kmgmt.c" + ], "providers/implementations/macs/libdefault-lib-blake2b_mac.o" => [ "providers/implementations/macs/blake2b_mac.c" ], @@ -25134,9 +29351,6 @@ our %unified_info = ( "providers/implementations/macs/libfips-lib-kmac_prov.o" => [ "providers/implementations/macs/kmac_prov.c" ], - "providers/implementations/rands/libdefault-lib-crngt.o" => [ - "providers/implementations/rands/crngt.c" - ], "providers/implementations/rands/libdefault-lib-drbg.o" => [ "providers/implementations/rands/drbg.c" ], @@ -25152,12 +29366,12 @@ our %unified_info = ( "providers/implementations/rands/libdefault-lib-seed_src.o" => [ "providers/implementations/rands/seed_src.c" ], + "providers/implementations/rands/libdefault-lib-seed_src_jitter.o" => [ + "providers/implementations/rands/seed_src_jitter.c" + ], "providers/implementations/rands/libdefault-lib-test_rng.o" => [ "providers/implementations/rands/test_rng.c" ], - "providers/implementations/rands/libfips-lib-crngt.o" => [ - "providers/implementations/rands/crngt.c" - ], "providers/implementations/rands/libfips-lib-drbg.o" => [ "providers/implementations/rands/drbg.c" ], @@ -25170,6 +29384,9 @@ our %unified_info = ( "providers/implementations/rands/libfips-lib-drbg_hmac.o" => [ "providers/implementations/rands/drbg_hmac.c" ], + "providers/implementations/rands/libfips-lib-fips_crng_test.o" => [ + "providers/implementations/rands/fips_crng_test.c" + ], "providers/implementations/rands/libfips-lib-test_rng.o" => [ "providers/implementations/rands/test_rng.c" ], @@ -25197,9 +29414,15 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-mac_legacy_sig.o" => [ "providers/implementations/signature/mac_legacy_sig.c" ], + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o" => [ + "providers/implementations/signature/ml_dsa_sig.c" + ], "providers/implementations/signature/libdefault-lib-rsa_sig.o" => [ "providers/implementations/signature/rsa_sig.c" ], + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o" => [ + "providers/implementations/signature/slh_dsa_sig.c" + ], "providers/implementations/signature/libdefault-lib-sm2_sig.o" => [ "providers/implementations/signature/sm2_sig.c" ], @@ -25215,9 +29438,27 @@ our %unified_info = ( "providers/implementations/signature/libfips-lib-mac_legacy_sig.o" => [ "providers/implementations/signature/mac_legacy_sig.c" ], + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o" => [ + "providers/implementations/signature/ml_dsa_sig.c" + ], "providers/implementations/signature/libfips-lib-rsa_sig.o" => [ "providers/implementations/signature/rsa_sig.c" ], + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o" => [ + "providers/implementations/signature/slh_dsa_sig.c" + ], + "providers/implementations/skeymgmt/libdefault-lib-aes_skmgmt.o" => [ + "providers/implementations/skeymgmt/aes_skmgmt.c" + ], + "providers/implementations/skeymgmt/libdefault-lib-generic.o" => [ + "providers/implementations/skeymgmt/generic.c" + ], + "providers/implementations/skeymgmt/libfips-lib-aes_skmgmt.o" => [ + "providers/implementations/skeymgmt/aes_skmgmt.c" + ], + "providers/implementations/skeymgmt/libfips-lib-generic.o" => [ + "providers/implementations/skeymgmt/generic.c" + ], "providers/implementations/storemgmt/libdefault-lib-file_store.o" => [ "providers/implementations/storemgmt/file_store.c" ], @@ -25241,8 +29482,12 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ec_sig.o", "providers/common/der/libcommon-lib-der_ecx_gen.o", "providers/common/der/libcommon-lib-der_ecx_key.o", + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o", + "providers/common/der/libcommon-lib-der_ml_dsa_key.o", "providers/common/der/libcommon-lib-der_rsa_gen.o", "providers/common/der/libcommon-lib-der_rsa_key.o", + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o", + "providers/common/der/libcommon-lib-der_slh_dsa_key.o", "providers/common/der/libcommon-lib-der_wrap_gen.o", "providers/common/libcommon-lib-provider_ctx.o", "providers/common/libcommon-lib-provider_err.o", @@ -25254,7 +29499,7 @@ our %unified_info = ( "providers/implementations/ciphers/libcommon-lib-ciphercommon_gcm_hw.o", "providers/implementations/ciphers/libcommon-lib-ciphercommon_hw.o", "providers/implementations/digests/libcommon-lib-digestcommon.o", - "ssl/record/libcommon-lib-tls_pad.o" + "ssl/record/methods/libcommon-lib-tls_pad.o" ], "providers/libcrypto-lib-baseprov.o" => [ "providers/baseprov.c" @@ -25290,6 +29535,9 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_aes_ccm_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_polyval.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_ocb.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_ocb_hw.o", @@ -25314,7 +29562,13 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_cts.o", "providers/implementations/ciphers/libdefault-lib-cipher_null.o", "providers/implementations/ciphers/libdefault-lib-cipher_sm4.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_sm4_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes_common.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes_default.o", @@ -25343,11 +29597,16 @@ our %unified_info = ( "providers/implementations/encode_decode/libdefault-lib-encode_key2ms.o", "providers/implementations/encode_decode/libdefault-lib-encode_key2text.o", "providers/implementations/encode_decode/libdefault-lib-endecoder_common.o", + "providers/implementations/encode_decode/libdefault-lib-ml_common_codecs.o", + "providers/implementations/encode_decode/libdefault-lib-ml_dsa_codecs.o", + "providers/implementations/encode_decode/libdefault-lib-ml_kem_codecs.o", "providers/implementations/exchange/libdefault-lib-dh_exch.o", "providers/implementations/exchange/libdefault-lib-ecdh_exch.o", "providers/implementations/exchange/libdefault-lib-ecx_exch.o", "providers/implementations/exchange/libdefault-lib-kdf_exch.o", + "providers/implementations/kdfs/libdefault-lib-argon2.o", "providers/implementations/kdfs/libdefault-lib-hkdf.o", + "providers/implementations/kdfs/libdefault-lib-hmacdrbg_kdf.o", "providers/implementations/kdfs/libdefault-lib-kbkdf.o", "providers/implementations/kdfs/libdefault-lib-krb5kdf.o", "providers/implementations/kdfs/libdefault-lib-pbkdf2.o", @@ -25358,6 +29617,11 @@ our %unified_info = ( "providers/implementations/kdfs/libdefault-lib-sskdf.o", "providers/implementations/kdfs/libdefault-lib-tls1_prf.o", "providers/implementations/kdfs/libdefault-lib-x942kdf.o", + "providers/implementations/kem/libdefault-lib-ec_kem.o", + "providers/implementations/kem/libdefault-lib-ecx_kem.o", + "providers/implementations/kem/libdefault-lib-kem_util.o", + "providers/implementations/kem/libdefault-lib-ml_kem_kem.o", + "providers/implementations/kem/libdefault-lib-mlx_kem.o", "providers/implementations/kem/libdefault-lib-rsa_kem.o", "providers/implementations/keymgmt/libdefault-lib-dh_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-dsa_kmgmt.o", @@ -25365,7 +29629,11 @@ our %unified_info = ( "providers/implementations/keymgmt/libdefault-lib-ecx_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-kdf_legacy_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-mac_legacy_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-ml_dsa_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-ml_kem_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-mlx_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-rsa_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-slh_dsa_kmgmt.o", "providers/implementations/macs/libdefault-lib-blake2b_mac.o", "providers/implementations/macs/libdefault-lib-blake2s_mac.o", "providers/implementations/macs/libdefault-lib-cmac_prov.o", @@ -25374,12 +29642,12 @@ our %unified_info = ( "providers/implementations/macs/libdefault-lib-kmac_prov.o", "providers/implementations/macs/libdefault-lib-poly1305_prov.o", "providers/implementations/macs/libdefault-lib-siphash_prov.o", - "providers/implementations/rands/libdefault-lib-crngt.o", "providers/implementations/rands/libdefault-lib-drbg.o", "providers/implementations/rands/libdefault-lib-drbg_ctr.o", "providers/implementations/rands/libdefault-lib-drbg_hash.o", "providers/implementations/rands/libdefault-lib-drbg_hmac.o", "providers/implementations/rands/libdefault-lib-seed_src.o", + "providers/implementations/rands/libdefault-lib-seed_src_jitter.o", "providers/implementations/rands/libdefault-lib-test_rng.o", "providers/implementations/rands/seeding/libdefault-lib-rand_cpu_x86.o", "providers/implementations/rands/seeding/libdefault-lib-rand_tsc.o", @@ -25389,11 +29657,15 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-ecdsa_sig.o", "providers/implementations/signature/libdefault-lib-eddsa_sig.o", "providers/implementations/signature/libdefault-lib-mac_legacy_sig.o", + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o", "providers/implementations/signature/libdefault-lib-rsa_sig.o", + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o", "providers/implementations/signature/libdefault-lib-sm2_sig.o", + "providers/implementations/skeymgmt/libdefault-lib-aes_skmgmt.o", + "providers/implementations/skeymgmt/libdefault-lib-generic.o", "providers/implementations/storemgmt/libdefault-lib-file_store.o", "providers/implementations/storemgmt/libdefault-lib-file_store_any2obj.o", - "ssl/libdefault-lib-s3_cbc.o" + "ssl/record/methods/libdefault-lib-ssl3_cbc.o" ], "providers/libfips.a" => [ "crypto/aes/libfips-lib-aes-586.o", @@ -25501,14 +29773,15 @@ our %unified_info = ( "crypto/evp/libfips-lib-kem.o", "crypto/evp/libfips-lib-keymgmt_lib.o", "crypto/evp/libfips-lib-keymgmt_meth.o", - "crypto/evp/libfips-lib-m_sigver.o", "crypto/evp/libfips-lib-mac_lib.o", "crypto/evp/libfips-lib-mac_meth.o", "crypto/evp/libfips-lib-p_lib.o", "crypto/evp/libfips-lib-pmeth_check.o", "crypto/evp/libfips-lib-pmeth_gn.o", "crypto/evp/libfips-lib-pmeth_lib.o", + "crypto/evp/libfips-lib-s_lib.o", "crypto/evp/libfips-lib-signature.o", + "crypto/evp/libfips-lib-skeymgmt_meth.o", "crypto/ffc/libfips-lib-ffc_backend.o", "crypto/ffc/libfips-lib-ffc_dh.o", "crypto/ffc/libfips-lib-ffc_key_generate.o", @@ -25516,6 +29789,8 @@ our %unified_info = ( "crypto/ffc/libfips-lib-ffc_params.o", "crypto/ffc/libfips-lib-ffc_params_generate.o", "crypto/ffc/libfips-lib-ffc_params_validate.o", + "crypto/hashtable/libfips-lib-hashfunc.o", + "crypto/hashtable/libfips-lib-hashtable.o", "crypto/hmac/libfips-lib-hmac.o", "crypto/lhash/libfips-lib-lhash.o", "crypto/libfips-lib-asn1_dsa.o", @@ -25537,6 +29812,7 @@ our %unified_info = ( "crypto/libfips-lib-params.o", "crypto/libfips-lib-params_dup.o", "crypto/libfips-lib-params_from_text.o", + "crypto/libfips-lib-params_idx.o", "crypto/libfips-lib-provider_core.o", "crypto/libfips-lib-provider_predefined.o", "crypto/libfips-lib-self_test_core.o", @@ -25545,7 +29821,17 @@ our %unified_info = ( "crypto/libfips-lib-threads_none.o", "crypto/libfips-lib-threads_pthread.o", "crypto/libfips-lib-threads_win.o", + "crypto/libfips-lib-time.o", "crypto/libfips-lib-x86cpuid.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_encoders.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_key.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_key_compress.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_matrix.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_ntt.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_params.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_sample.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_sign.o", + "crypto/ml_kem/libfips-lib-ml_kem.o", "crypto/modes/libfips-lib-cbc128.o", "crypto/modes/libfips-lib-ccm128.o", "crypto/modes/libfips-lib-cfb128.o", @@ -25555,6 +29841,7 @@ our %unified_info = ( "crypto/modes/libfips-lib-ofb128.o", "crypto/modes/libfips-lib-wrap128.o", "crypto/modes/libfips-lib-xts128.o", + "crypto/modes/libfips-lib-xts128gb.o", "crypto/property/libfips-lib-defn_cache.o", "crypto/property/libfips-lib-property.o", "crypto/property/libfips-lib-property_parse.o", @@ -25586,7 +29873,23 @@ our %unified_info = ( "crypto/sha/libfips-lib-sha3.o", "crypto/sha/libfips-lib-sha512-586.o", "crypto/sha/libfips-lib-sha512.o", + "crypto/slh_dsa/libfips-lib-slh_adrs.o", + "crypto/slh_dsa/libfips-lib-slh_dsa.o", + "crypto/slh_dsa/libfips-lib-slh_dsa_hash_ctx.o", + "crypto/slh_dsa/libfips-lib-slh_dsa_key.o", + "crypto/slh_dsa/libfips-lib-slh_fors.o", + "crypto/slh_dsa/libfips-lib-slh_hash.o", + "crypto/slh_dsa/libfips-lib-slh_hypertree.o", + "crypto/slh_dsa/libfips-lib-slh_params.o", + "crypto/slh_dsa/libfips-lib-slh_wots.o", + "crypto/slh_dsa/libfips-lib-slh_xmss.o", "crypto/stack/libfips-lib-stack.o", + "crypto/thread/arch/libfips-lib-thread_none.o", + "crypto/thread/arch/libfips-lib-thread_posix.o", + "crypto/thread/arch/libfips-lib-thread_win.o", + "crypto/thread/libfips-lib-api.o", + "crypto/thread/libfips-lib-arch.o", + "crypto/thread/libfips-lib-internal.o", "providers/common/der/libfips-lib-der_rsa_sig.o", "providers/common/libfips-lib-bio_prov.o", "providers/common/libfips-lib-capabilities.o", @@ -25595,6 +29898,7 @@ our %unified_info = ( "providers/common/libfips-lib-provider_util.o", "providers/common/libfips-lib-securitycheck.o", "providers/common/libfips-lib-securitycheck_fips.o", + "providers/fips/libfips-lib-fipsindicator.o", "providers/fips/libfips-lib-fipsprov.o", "providers/fips/libfips-lib-self_test.o", "providers/fips/libfips-lib-self_test_kats.o", @@ -25632,6 +29936,8 @@ our %unified_info = ( "providers/implementations/kdfs/libfips-lib-sskdf.o", "providers/implementations/kdfs/libfips-lib-tls1_prf.o", "providers/implementations/kdfs/libfips-lib-x942kdf.o", + "providers/implementations/kem/libfips-lib-ml_kem_kem.o", + "providers/implementations/kem/libfips-lib-mlx_kem.o", "providers/implementations/kem/libfips-lib-rsa_kem.o", "providers/implementations/keymgmt/libfips-lib-dh_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-dsa_kmgmt.o", @@ -25639,24 +29945,32 @@ our %unified_info = ( "providers/implementations/keymgmt/libfips-lib-ecx_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-kdf_legacy_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-mac_legacy_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-ml_dsa_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-ml_kem_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-mlx_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-rsa_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-slh_dsa_kmgmt.o", "providers/implementations/macs/libfips-lib-cmac_prov.o", "providers/implementations/macs/libfips-lib-gmac_prov.o", "providers/implementations/macs/libfips-lib-hmac_prov.o", "providers/implementations/macs/libfips-lib-kmac_prov.o", - "providers/implementations/rands/libfips-lib-crngt.o", "providers/implementations/rands/libfips-lib-drbg.o", "providers/implementations/rands/libfips-lib-drbg_ctr.o", "providers/implementations/rands/libfips-lib-drbg_hash.o", "providers/implementations/rands/libfips-lib-drbg_hmac.o", + "providers/implementations/rands/libfips-lib-fips_crng_test.o", "providers/implementations/rands/libfips-lib-test_rng.o", "providers/implementations/signature/libfips-lib-dsa_sig.o", "providers/implementations/signature/libfips-lib-ecdsa_sig.o", "providers/implementations/signature/libfips-lib-eddsa_sig.o", "providers/implementations/signature/libfips-lib-mac_legacy_sig.o", + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o", "providers/implementations/signature/libfips-lib-rsa_sig.o", + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o", + "providers/implementations/skeymgmt/libfips-lib-aes_skmgmt.o", + "providers/implementations/skeymgmt/libfips-lib-generic.o", "providers/libcommon.a", - "ssl/libfips-lib-s3_cbc.o" + "ssl/record/methods/libfips-lib-ssl3_cbc.o" ], "providers/liblegacy-lib-prov_running.o" => [ "providers/prov_running.c" @@ -25686,13 +30000,12 @@ our %unified_info = ( "providers/implementations/digests/liblegacy-lib-ripemd_prov.o", "providers/implementations/digests/liblegacy-lib-wp_prov.o", "providers/implementations/kdfs/liblegacy-lib-pbkdf1.o", + "providers/implementations/kdfs/liblegacy-lib-pvkkdf.o", "providers/liblegacy-lib-prov_running.o" ], - "ssl/libdefault-lib-s3_cbc.o" => [ - "ssl/s3_cbc.c" - ], - "ssl/libfips-lib-s3_cbc.o" => [ - "ssl/s3_cbc.c" + "providers/libtemplate.a" => [ + "providers/implementations/kem/libtemplate-lib-template_kem.o", + "providers/implementations/keymgmt/libtemplate-lib-template_kmgmt.o" ], "ssl/libssl-lib-bio_ssl.o" => [ "ssl/bio_ssl.c" @@ -25712,6 +30025,9 @@ our %unified_info = ( "ssl/libssl-lib-pqueue.o" => [ "ssl/pqueue.c" ], + "ssl/libssl-lib-priority_queue.o" => [ + "ssl/priority_queue.c" + ], "ssl/libssl-lib-s3_enc.o" => [ "ssl/s3_enc.c" ], @@ -25727,15 +30043,15 @@ our %unified_info = ( "ssl/libssl-lib-ssl_cert.o" => [ "ssl/ssl_cert.c" ], + "ssl/libssl-lib-ssl_cert_comp.o" => [ + "ssl/ssl_cert_comp.c" + ], "ssl/libssl-lib-ssl_ciph.o" => [ "ssl/ssl_ciph.c" ], "ssl/libssl-lib-ssl_conf.o" => [ "ssl/ssl_conf.c" ], - "ssl/libssl-lib-ssl_err.o" => [ - "ssl/ssl_err.c" - ], "ssl/libssl-lib-ssl_err_legacy.o" => [ "ssl/ssl_err_legacy.c" ], @@ -25784,11 +30100,131 @@ our %unified_info = ( "ssl/libssl-lib-tls_srp.o" => [ "ssl/tls_srp.c" ], - "ssl/record/libcommon-lib-tls_pad.o" => [ - "ssl/record/tls_pad.c" + "ssl/quic/libssl-lib-cc_newreno.o" => [ + "ssl/quic/cc_newreno.c" + ], + "ssl/quic/libssl-lib-json_enc.o" => [ + "ssl/quic/json_enc.c" + ], + "ssl/quic/libssl-lib-qlog.o" => [ + "ssl/quic/qlog.c" + ], + "ssl/quic/libssl-lib-qlog_event_helpers.o" => [ + "ssl/quic/qlog_event_helpers.c" + ], + "ssl/quic/libssl-lib-quic_ackm.o" => [ + "ssl/quic/quic_ackm.c" + ], + "ssl/quic/libssl-lib-quic_cfq.o" => [ + "ssl/quic/quic_cfq.c" + ], + "ssl/quic/libssl-lib-quic_channel.o" => [ + "ssl/quic/quic_channel.c" + ], + "ssl/quic/libssl-lib-quic_demux.o" => [ + "ssl/quic/quic_demux.c" + ], + "ssl/quic/libssl-lib-quic_engine.o" => [ + "ssl/quic/quic_engine.c" + ], + "ssl/quic/libssl-lib-quic_fc.o" => [ + "ssl/quic/quic_fc.c" + ], + "ssl/quic/libssl-lib-quic_fifd.o" => [ + "ssl/quic/quic_fifd.c" + ], + "ssl/quic/libssl-lib-quic_impl.o" => [ + "ssl/quic/quic_impl.c" + ], + "ssl/quic/libssl-lib-quic_lcidm.o" => [ + "ssl/quic/quic_lcidm.c" + ], + "ssl/quic/libssl-lib-quic_method.o" => [ + "ssl/quic/quic_method.c" + ], + "ssl/quic/libssl-lib-quic_obj.o" => [ + "ssl/quic/quic_obj.c" + ], + "ssl/quic/libssl-lib-quic_port.o" => [ + "ssl/quic/quic_port.c" + ], + "ssl/quic/libssl-lib-quic_rcidm.o" => [ + "ssl/quic/quic_rcidm.c" + ], + "ssl/quic/libssl-lib-quic_reactor.o" => [ + "ssl/quic/quic_reactor.c" + ], + "ssl/quic/libssl-lib-quic_reactor_wait_ctx.o" => [ + "ssl/quic/quic_reactor_wait_ctx.c" + ], + "ssl/quic/libssl-lib-quic_record_rx.o" => [ + "ssl/quic/quic_record_rx.c" + ], + "ssl/quic/libssl-lib-quic_record_shared.o" => [ + "ssl/quic/quic_record_shared.c" + ], + "ssl/quic/libssl-lib-quic_record_tx.o" => [ + "ssl/quic/quic_record_tx.c" + ], + "ssl/quic/libssl-lib-quic_record_util.o" => [ + "ssl/quic/quic_record_util.c" + ], + "ssl/quic/libssl-lib-quic_rstream.o" => [ + "ssl/quic/quic_rstream.c" ], - "ssl/record/libssl-lib-dtls1_bitmap.o" => [ - "ssl/record/dtls1_bitmap.c" + "ssl/quic/libssl-lib-quic_rx_depack.o" => [ + "ssl/quic/quic_rx_depack.c" + ], + "ssl/quic/libssl-lib-quic_sf_list.o" => [ + "ssl/quic/quic_sf_list.c" + ], + "ssl/quic/libssl-lib-quic_srt_gen.o" => [ + "ssl/quic/quic_srt_gen.c" + ], + "ssl/quic/libssl-lib-quic_srtm.o" => [ + "ssl/quic/quic_srtm.c" + ], + "ssl/quic/libssl-lib-quic_sstream.o" => [ + "ssl/quic/quic_sstream.c" + ], + "ssl/quic/libssl-lib-quic_statm.o" => [ + "ssl/quic/quic_statm.c" + ], + "ssl/quic/libssl-lib-quic_stream_map.o" => [ + "ssl/quic/quic_stream_map.c" + ], + "ssl/quic/libssl-lib-quic_thread_assist.o" => [ + "ssl/quic/quic_thread_assist.c" + ], + "ssl/quic/libssl-lib-quic_tls.o" => [ + "ssl/quic/quic_tls.c" + ], + "ssl/quic/libssl-lib-quic_tls_api.o" => [ + "ssl/quic/quic_tls_api.c" + ], + "ssl/quic/libssl-lib-quic_trace.o" => [ + "ssl/quic/quic_trace.c" + ], + "ssl/quic/libssl-lib-quic_tserver.o" => [ + "ssl/quic/quic_tserver.c" + ], + "ssl/quic/libssl-lib-quic_txp.o" => [ + "ssl/quic/quic_txp.c" + ], + "ssl/quic/libssl-lib-quic_txpim.o" => [ + "ssl/quic/quic_txpim.c" + ], + "ssl/quic/libssl-lib-quic_types.o" => [ + "ssl/quic/quic_types.c" + ], + "ssl/quic/libssl-lib-quic_wire.o" => [ + "ssl/quic/quic_wire.c" + ], + "ssl/quic/libssl-lib-quic_wire_pkt.o" => [ + "ssl/quic/quic_wire_pkt.c" + ], + "ssl/quic/libssl-lib-uint_set.o" => [ + "ssl/quic/uint_set.c" ], "ssl/record/libssl-lib-rec_layer_d1.o" => [ "ssl/record/rec_layer_d1.c" @@ -25796,14 +30232,44 @@ our %unified_info = ( "ssl/record/libssl-lib-rec_layer_s3.o" => [ "ssl/record/rec_layer_s3.c" ], - "ssl/record/libssl-lib-ssl3_buffer.o" => [ - "ssl/record/ssl3_buffer.c" + "ssl/record/methods/libcommon-lib-tls_pad.o" => [ + "ssl/record/methods/tls_pad.c" + ], + "ssl/record/methods/libdefault-lib-ssl3_cbc.o" => [ + "ssl/record/methods/ssl3_cbc.c" + ], + "ssl/record/methods/libfips-lib-ssl3_cbc.o" => [ + "ssl/record/methods/ssl3_cbc.c" + ], + "ssl/record/methods/libssl-lib-dtls_meth.o" => [ + "ssl/record/methods/dtls_meth.c" + ], + "ssl/record/methods/libssl-lib-ssl3_meth.o" => [ + "ssl/record/methods/ssl3_meth.c" + ], + "ssl/record/methods/libssl-lib-tls13_meth.o" => [ + "ssl/record/methods/tls13_meth.c" + ], + "ssl/record/methods/libssl-lib-tls1_meth.o" => [ + "ssl/record/methods/tls1_meth.c" + ], + "ssl/record/methods/libssl-lib-tls_common.o" => [ + "ssl/record/methods/tls_common.c" ], - "ssl/record/libssl-lib-ssl3_record.o" => [ - "ssl/record/ssl3_record.c" + "ssl/record/methods/libssl-lib-tls_multib.o" => [ + "ssl/record/methods/tls_multib.c" ], - "ssl/record/libssl-lib-ssl3_record_tls13.o" => [ - "ssl/record/ssl3_record_tls13.c" + "ssl/record/methods/libssl-lib-tlsany_meth.o" => [ + "ssl/record/methods/tlsany_meth.c" + ], + "ssl/rio/libssl-lib-poll_builder.o" => [ + "ssl/rio/poll_builder.c" + ], + "ssl/rio/libssl-lib-poll_immediate.o" => [ + "ssl/rio/poll_immediate.c" + ], + "ssl/rio/libssl-lib-rio_notifier.o" => [ + "ssl/rio/rio_notifier.c" ], "ssl/statem/libssl-lib-extensions.o" => [ "ssl/statem/extensions.c" @@ -25899,6 +30365,8 @@ our %unified_info = ( "test/asn1_string_table_test.c" ], "test/asn1_time_test" => [ + "crypto/asn1/asn1_time_test-bin-a_time.o", + "crypto/asn1_time_test-bin-ctype.o", "test/asn1_time_test-bin-asn1_time_test.o" ], "test/asn1_time_test-bin-asn1_time_test.o" => [ @@ -25929,6 +30397,18 @@ our %unified_info = ( "test/bftest-bin-bftest.o" => [ "test/bftest.c" ], + "test/bio_addr_test" => [ + "test/bio_addr_test-bin-bio_addr_test.o" + ], + "test/bio_addr_test-bin-bio_addr_test.o" => [ + "test/bio_addr_test.c" + ], + "test/bio_base64_test" => [ + "test/bio_base64_test-bin-bio_base64_test.o" + ], + "test/bio_base64_test-bin-bio_base64_test.o" => [ + "test/bio_base64_test.c" + ], "test/bio_callback_test" => [ "test/bio_callback_test-bin-bio_callback_test.o" ], @@ -25941,6 +30421,12 @@ our %unified_info = ( "test/bio_core_test-bin-bio_core_test.o" => [ "test/bio_core_test.c" ], + "test/bio_dgram_test" => [ + "test/bio_dgram_test-bin-bio_dgram_test.o" + ], + "test/bio_dgram_test-bin-bio_dgram_test.o" => [ + "test/bio_dgram_test.c" + ], "test/bio_enc_test" => [ "test/bio_enc_test-bin-bio_enc_test.o" ], @@ -25953,6 +30439,12 @@ our %unified_info = ( "test/bio_memleak_test-bin-bio_memleak_test.o" => [ "test/bio_memleak_test.c" ], + "test/bio_meth_test" => [ + "test/bio_meth_test-bin-bio_meth_test.o" + ], + "test/bio_meth_test-bin-bio_meth_test.o" => [ + "test/bio_meth_test.c" + ], "test/bio_prefix_text" => [ "test/bio_prefix_text-bin-bio_prefix_text.o" ], @@ -25971,6 +30463,12 @@ our %unified_info = ( "test/bio_readbuffer_test-bin-bio_readbuffer_test.o" => [ "test/bio_readbuffer_test.c" ], + "test/bio_tfo_test" => [ + "test/bio_tfo_test-bin-bio_tfo_test.o" + ], + "test/bio_tfo_test-bin-bio_tfo_test.o" => [ + "test/bio_tfo_test.c" + ], "test/bioprinttest" => [ "test/bioprinttest-bin-bioprinttest.o" ], @@ -25989,6 +30487,12 @@ our %unified_info = ( "test/bntest-bin-bntest.o" => [ "test/bntest.c" ], + "test/build_wincrypt_test" => [ + "test/build_wincrypt_test-bin-build_wincrypt_test.o" + ], + "test/build_wincrypt_test-bin-build_wincrypt_test.o" => [ + "test/build_wincrypt_test.c" + ], "test/buildtest_c_aes" => [ "test/buildtest_c_aes-bin-buildtest_aes.o" ], @@ -26019,6 +30523,12 @@ our %unified_info = ( "test/buildtest_c_buffer-bin-buildtest_buffer.o" => [ "test/buildtest_buffer.c" ], + "test/buildtest_c_byteorder" => [ + "test/buildtest_c_byteorder-bin-buildtest_byteorder.o" + ], + "test/buildtest_c_byteorder-bin-buildtest_byteorder.o" => [ + "test/buildtest_byteorder.c" + ], "test/buildtest_c_camellia" => [ "test/buildtest_c_camellia-bin-buildtest_camellia.o" ], @@ -26067,12 +30577,6 @@ our %unified_info = ( "test/buildtest_c_core_dispatch-bin-buildtest_core_dispatch.o" => [ "test/buildtest_core_dispatch.c" ], - "test/buildtest_c_core_names" => [ - "test/buildtest_c_core_names-bin-buildtest_core_names.o" - ], - "test/buildtest_c_core_names-bin-buildtest_core_names.o" => [ - "test/buildtest_core_names.c" - ], "test/buildtest_c_core_object" => [ "test/buildtest_c_core_object-bin-buildtest_core_object.o" ], @@ -26121,6 +30625,12 @@ our %unified_info = ( "test/buildtest_c_e_os2-bin-buildtest_e_os2.o" => [ "test/buildtest_e_os2.c" ], + "test/buildtest_c_e_ostime" => [ + "test/buildtest_c_e_ostime-bin-buildtest_e_ostime.o" + ], + "test/buildtest_c_e_ostime-bin-buildtest_e_ostime.o" => [ + "test/buildtest_e_ostime.c" + ], "test/buildtest_c_ebcdic" => [ "test/buildtest_c_ebcdic-bin-buildtest_ebcdic.o" ], @@ -26175,6 +30685,12 @@ our %unified_info = ( "test/buildtest_c_hmac-bin-buildtest_hmac.o" => [ "test/buildtest_hmac.c" ], + "test/buildtest_c_hpke" => [ + "test/buildtest_c_hpke-bin-buildtest_hpke.o" + ], + "test/buildtest_c_hpke-bin-buildtest_hpke.o" => [ + "test/buildtest_hpke.c" + ], "test/buildtest_c_http" => [ "test/buildtest_c_http-bin-buildtest_http.o" ], @@ -26187,6 +30703,12 @@ our %unified_info = ( "test/buildtest_c_idea-bin-buildtest_idea.o" => [ "test/buildtest_idea.c" ], + "test/buildtest_c_indicator" => [ + "test/buildtest_c_indicator-bin-buildtest_indicator.o" + ], + "test/buildtest_c_indicator-bin-buildtest_indicator.o" => [ + "test/buildtest_indicator.c" + ], "test/buildtest_c_kdf" => [ "test/buildtest_c_kdf-bin-buildtest_kdf.o" ], @@ -26217,6 +30739,12 @@ our %unified_info = ( "test/buildtest_c_mdc2-bin-buildtest_mdc2.o" => [ "test/buildtest_mdc2.c" ], + "test/buildtest_c_ml_kem" => [ + "test/buildtest_c_ml_kem-bin-buildtest_ml_kem.o" + ], + "test/buildtest_c_ml_kem-bin-buildtest_ml_kem.o" => [ + "test/buildtest_ml_kem.c" + ], "test/buildtest_c_modes" => [ "test/buildtest_c_modes-bin-buildtest_modes.o" ], @@ -26277,6 +30805,12 @@ our %unified_info = ( "test/buildtest_c_provider-bin-buildtest_provider.o" => [ "test/buildtest_provider.c" ], + "test/buildtest_c_quic" => [ + "test/buildtest_c_quic-bin-buildtest_quic.o" + ], + "test/buildtest_c_quic-bin-buildtest_quic.o" => [ + "test/buildtest_quic.c" + ], "test/buildtest_c_rand" => [ "test/buildtest_c_rand-bin-buildtest_rand.o" ], @@ -26361,6 +30895,12 @@ our %unified_info = ( "test/buildtest_c_symhacks-bin-buildtest_symhacks.o" => [ "test/buildtest_symhacks.c" ], + "test/buildtest_c_thread" => [ + "test/buildtest_c_thread-bin-buildtest_thread.o" + ], + "test/buildtest_c_thread-bin-buildtest_thread.o" => [ + "test/buildtest_thread.c" + ], "test/buildtest_c_tls1" => [ "test/buildtest_c_tls1-bin-buildtest_tls1.o" ], @@ -26391,6 +30931,29 @@ our %unified_info = ( "test/buildtest_c_whrlpool-bin-buildtest_whrlpool.o" => [ "test/buildtest_whrlpool.c" ], + "test/byteorder_test" => [ + "test/byteorder_test-bin-byteorder_test.o" + ], + "test/byteorder_test-bin-byteorder_test.o" => [ + "test/byteorder_test.c" + ], + "test/ca_internals_test" => [ + "apps/ca_internals_test-bin-ca.o", + "apps/lib/ca_internals_test-bin-app_libctx.o", + "apps/lib/ca_internals_test-bin-app_provider.o", + "apps/lib/ca_internals_test-bin-app_rand.o", + "apps/lib/ca_internals_test-bin-app_x509.o", + "apps/lib/ca_internals_test-bin-apps.o", + "apps/lib/ca_internals_test-bin-apps_ui.o", + "apps/lib/ca_internals_test-bin-engine.o", + "apps/lib/ca_internals_test-bin-fmt.o", + "crypto/asn1/ca_internals_test-bin-a_time.o", + "crypto/ca_internals_test-bin-ctype.o", + "test/ca_internals_test-bin-ca_internals_test.o" + ], + "test/ca_internals_test-bin-ca_internals_test.o" => [ + "test/ca_internals_test.c" + ], "test/casttest" => [ "test/casttest-bin-casttest.o" ], @@ -26569,6 +31132,12 @@ our %unified_info = ( "test/danetest-bin-danetest.o" => [ "test/danetest.c" ], + "test/decoder_propq_test" => [ + "test/decoder_propq_test-bin-decoder_propq_test.o" + ], + "test/decoder_propq_test-bin-decoder_propq_test.o" => [ + "test/decoder_propq_test.c" + ], "test/defltfips_test" => [ "test/defltfips_test-bin-defltfips_test.o" ], @@ -26650,6 +31219,7 @@ our %unified_info = ( "test/ectest.c" ], "test/endecode_test" => [ + "providers/endecode_test-bin-legacyprov.o", "test/endecode_test-bin-endecode_test.o", "test/helpers/endecode_test-bin-predefined_dhparams.o" ], @@ -26682,17 +31252,29 @@ our %unified_info = ( ], "test/evp_extra_test" => [ "providers/evp_extra_test-bin-legacyprov.o", - "test/evp_extra_test-bin-evp_extra_test.o" + "test/evp_extra_test-bin-evp_extra_test.o", + "test/evp_extra_test-bin-fake_pipelineprov.o", + "test/evp_extra_test-bin-fake_rsaprov.o" ], "test/evp_extra_test-bin-evp_extra_test.o" => [ "test/evp_extra_test.c" ], + "test/evp_extra_test-bin-fake_pipelineprov.o" => [ + "test/fake_pipelineprov.c" + ], + "test/evp_extra_test-bin-fake_rsaprov.o" => [ + "test/fake_rsaprov.c" + ], "test/evp_extra_test2" => [ - "test/evp_extra_test2-bin-evp_extra_test2.o" + "test/evp_extra_test2-bin-evp_extra_test2.o", + "test/evp_extra_test2-bin-tls-provider.o" ], "test/evp_extra_test2-bin-evp_extra_test2.o" => [ "test/evp_extra_test2.c" ], + "test/evp_extra_test2-bin-tls-provider.o" => [ + "test/tls-provider.c" + ], "test/evp_fetch_prov_test" => [ "test/evp_fetch_prov_test-bin-evp_fetch_prov_test.o" ], @@ -26717,6 +31299,12 @@ our %unified_info = ( "test/evp_pkey_ctx_new_from_name-bin-evp_pkey_ctx_new_from_name.o" => [ "test/evp_pkey_ctx_new_from_name.c" ], + "test/evp_pkey_dhkem_test" => [ + "test/evp_pkey_dhkem_test-bin-evp_pkey_dhkem_test.o" + ], + "test/evp_pkey_dhkem_test-bin-evp_pkey_dhkem_test.o" => [ + "test/evp_pkey_dhkem_test.c" + ], "test/evp_pkey_dparams_test" => [ "test/evp_pkey_dparams_test-bin-evp_pkey_dparams_test.o" ], @@ -26729,12 +31317,28 @@ our %unified_info = ( "test/evp_pkey_provided_test-bin-evp_pkey_provided_test.o" => [ "test/evp_pkey_provided_test.c" ], + "test/evp_skey_test" => [ + "test/evp_skey_test-bin-evp_skey_test.o", + "test/evp_skey_test-bin-fake_cipherprov.o" + ], + "test/evp_skey_test-bin-evp_skey_test.o" => [ + "test/evp_skey_test.c" + ], + "test/evp_skey_test-bin-fake_cipherprov.o" => [ + "test/fake_cipherprov.c" + ], "test/evp_test" => [ "test/evp_test-bin-evp_test.o" ], "test/evp_test-bin-evp_test.o" => [ "test/evp_test.c" ], + "test/evp_xof_test" => [ + "test/evp_xof_test-bin-evp_xof_test.o" + ], + "test/evp_xof_test-bin-evp_xof_test.o" => [ + "test/evp_xof_test.c" + ], "test/exdatatest" => [ "test/exdatatest-bin-exdatatest.o" ], @@ -26820,15 +31424,108 @@ our %unified_info = ( "test/helpers/fatalerrtest-bin-ssltestlib.o" => [ "test/helpers/ssltestlib.c" ], + "test/helpers/json_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/json_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/json_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/json_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/pkcs12_api_test-bin-pkcs12.o" => [ + "test/helpers/pkcs12.c" + ], "test/helpers/pkcs12_format_test-bin-pkcs12.o" => [ "test/helpers/pkcs12.c" ], + "test/helpers/quic_multistream_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quic_multistream_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quic_multistream_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quic_multistream_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quic_newcid_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quic_newcid_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quic_newcid_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quic_newcid_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quic_radix_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quic_radix_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quic_radix_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quic_radix_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quic_srt_gen_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quic_srt_gen_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quic_srt_gen_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quic_srt_gen_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quicapitest-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quicapitest-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quicapitest-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quicapitest-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quicfaultstest-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quicfaultstest-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quicfaultstest-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quicfaultstest-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], "test/helpers/recordlentest-bin-ssltestlib.o" => [ "test/helpers/ssltestlib.c" ], + "test/helpers/rpktest-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], "test/helpers/servername_test-bin-ssltestlib.o" => [ "test/helpers/ssltestlib.c" ], + "test/helpers/ssl_handshake_rtt_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], "test/helpers/ssl_old_test-bin-predefined_dhparams.o" => [ "test/helpers/predefined_dhparams.c" ], @@ -26856,6 +31553,9 @@ our %unified_info = ( "test/helpers/tls13ccstest-bin-ssltestlib.o" => [ "test/helpers/ssltestlib.c" ], + "test/helpers/tls13groupselection_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], "test/hexstr_test" => [ "test/hexstr_test-bin-hexstr_test.o" ], @@ -26868,6 +31568,12 @@ our %unified_info = ( "test/hmactest-bin-hmactest.o" => [ "test/hmactest.c" ], + "test/hpke_test" => [ + "test/hpke_test-bin-hpke_test.o" + ], + "test/hpke_test-bin-hpke_test.o" => [ + "test/hpke_test.c" + ], "test/http_test" => [ "test/http_test-bin-http_test.o" ], @@ -26886,6 +31592,16 @@ our %unified_info = ( "test/igetest-bin-igetest.o" => [ "test/igetest.c" ], + "test/json_test" => [ + "test/helpers/json_test-bin-noisydgrambio.o", + "test/helpers/json_test-bin-pktsplitbio.o", + "test/helpers/json_test-bin-quictestlib.o", + "test/helpers/json_test-bin-ssltestlib.o", + "test/json_test-bin-json_test.o" + ], + "test/json_test-bin-json_test.o" => [ + "test/json_test.c" + ], "test/keymgmt_internal_test" => [ "test/keymgmt_internal_test-bin-keymgmt_internal_test.o" ], @@ -26906,6 +31622,7 @@ our %unified_info = ( "test/testutil/libtestutil-lib-driver.o", "test/testutil/libtestutil-lib-fake_random.o", "test/testutil/libtestutil-lib-format_output.o", + "test/testutil/libtestutil-lib-helper.o", "test/testutil/libtestutil-lib-load.o", "test/testutil/libtestutil-lib-main.o", "test/testutil/libtestutil-lib-options.o", @@ -26918,6 +31635,12 @@ our %unified_info = ( "test/testutil/libtestutil-lib-tests.o", "test/testutil/libtestutil-lib-testutil_init.o" ], + "test/list_test" => [ + "test/list_test-bin-list_test.o" + ], + "test/list_test-bin-list_test.o" => [ + "test/list_test.c" + ], "test/localetest" => [ "test/localetest-bin-localetest.o" ], @@ -26936,12 +31659,36 @@ our %unified_info = ( "test/mdc2test-bin-mdc2test.o" => [ "test/mdc2test.c" ], + "test/membio_test" => [ + "test/membio_test-bin-membio_test.o" + ], + "test/membio_test-bin-membio_test.o" => [ + "test/membio_test.c" + ], "test/memleaktest" => [ "test/memleaktest-bin-memleaktest.o" ], "test/memleaktest-bin-memleaktest.o" => [ "test/memleaktest.c" ], + "test/ml_dsa_test" => [ + "test/ml_dsa_test-bin-ml_dsa_test.o" + ], + "test/ml_dsa_test-bin-ml_dsa_test.o" => [ + "test/ml_dsa_test.c" + ], + "test/ml_kem_evp_extra_test" => [ + "test/ml_kem_evp_extra_test-bin-ml_kem_evp_extra_test.o" + ], + "test/ml_kem_evp_extra_test-bin-ml_kem_evp_extra_test.o" => [ + "test/ml_kem_evp_extra_test.c" + ], + "test/ml_kem_internal_test" => [ + "test/ml_kem_internal_test-bin-ml_kem_internal_test.o" + ], + "test/ml_kem_internal_test-bin-ml_kem_internal_test.o" => [ + "test/ml_kem_internal_test.c" + ], "test/modes_internal_test" => [ "test/modes_internal_test-bin-modes_internal_test.o" ], @@ -26987,11 +31734,18 @@ our %unified_info = ( "test/p_test.c" ], "test/packettest" => [ + "crypto/packettest-bin-quic_vlint.o", "test/packettest-bin-packettest.o" ], "test/packettest-bin-packettest.o" => [ "test/packettest.c" ], + "test/pairwise_fail_test" => [ + "test/pairwise_fail_test-bin-pairwise_fail_test.o" + ], + "test/pairwise_fail_test-bin-pairwise_fail_test.o" => [ + "test/pairwise_fail_test.c" + ], "test/param_build_test" => [ "test/param_build_test-bin-param_build_test.o" ], @@ -27040,6 +31794,13 @@ our %unified_info = ( "test/pemtest-bin-pemtest.o" => [ "test/pemtest.c" ], + "test/pkcs12_api_test" => [ + "test/helpers/pkcs12_api_test-bin-pkcs12.o", + "test/pkcs12_api_test-bin-pkcs12_api_test.o" + ], + "test/pkcs12_api_test-bin-pkcs12_api_test.o" => [ + "test/pkcs12_api_test.c" + ], "test/pkcs12_format_test" => [ "test/helpers/pkcs12_format_test-bin-pkcs12.o", "test/pkcs12_format_test-bin-pkcs12_format_test.o" @@ -27071,6 +31832,12 @@ our %unified_info = ( "test/poly1305_internal_test-bin-poly1305_internal_test.o" => [ "test/poly1305_internal_test.c" ], + "test/priority_queue_test" => [ + "test/priority_queue_test-bin-priority_queue_test.o" + ], + "test/priority_queue_test-bin-priority_queue_test.o" => [ + "test/priority_queue_test.c" + ], "test/property_test" => [ "test/property_test-bin-property_test.o" ], @@ -27089,6 +31856,12 @@ our %unified_info = ( "test/provfetchtest-bin-provfetchtest.o" => [ "test/provfetchtest.c" ], + "test/provider_default_search_path_test" => [ + "test/provider_default_search_path_test-bin-provider_default_search_path_test.o" + ], + "test/provider_default_search_path_test-bin-provider_default_search_path_test.o" => [ + "test/provider_default_search_path_test.c" + ], "test/provider_fallback_test" => [ "test/provider_fallback_test-bin-provider_fallback_test.o" ], @@ -27137,6 +31910,174 @@ our %unified_info = ( "test/punycode_test-bin-punycode_test.o" => [ "test/punycode_test.c" ], + "test/quic_ackm_test" => [ + "test/quic_ackm_test-bin-cc_dummy.o", + "test/quic_ackm_test-bin-quic_ackm_test.o" + ], + "test/quic_ackm_test-bin-cc_dummy.o" => [ + "test/cc_dummy.c" + ], + "test/quic_ackm_test-bin-quic_ackm_test.o" => [ + "test/quic_ackm_test.c" + ], + "test/quic_cc_test" => [ + "test/quic_cc_test-bin-quic_cc_test.o" + ], + "test/quic_cc_test-bin-quic_cc_test.o" => [ + "test/quic_cc_test.c" + ], + "test/quic_cfq_test" => [ + "test/quic_cfq_test-bin-quic_cfq_test.o" + ], + "test/quic_cfq_test-bin-quic_cfq_test.o" => [ + "test/quic_cfq_test.c" + ], + "test/quic_client_test" => [ + "test/quic_client_test-bin-quic_client_test.o" + ], + "test/quic_client_test-bin-quic_client_test.o" => [ + "test/quic_client_test.c" + ], + "test/quic_fc_test" => [ + "test/quic_fc_test-bin-quic_fc_test.o" + ], + "test/quic_fc_test-bin-quic_fc_test.o" => [ + "test/quic_fc_test.c" + ], + "test/quic_fifd_test" => [ + "test/quic_fifd_test-bin-cc_dummy.o", + "test/quic_fifd_test-bin-quic_fifd_test.o" + ], + "test/quic_fifd_test-bin-cc_dummy.o" => [ + "test/cc_dummy.c" + ], + "test/quic_fifd_test-bin-quic_fifd_test.o" => [ + "test/quic_fifd_test.c" + ], + "test/quic_lcidm_test" => [ + "test/quic_lcidm_test-bin-quic_lcidm_test.o" + ], + "test/quic_lcidm_test-bin-quic_lcidm_test.o" => [ + "test/quic_lcidm_test.c" + ], + "test/quic_multistream_test" => [ + "test/helpers/quic_multistream_test-bin-noisydgrambio.o", + "test/helpers/quic_multistream_test-bin-pktsplitbio.o", + "test/helpers/quic_multistream_test-bin-quictestlib.o", + "test/helpers/quic_multistream_test-bin-ssltestlib.o", + "test/quic_multistream_test-bin-quic_multistream_test.o" + ], + "test/quic_multistream_test-bin-quic_multistream_test.o" => [ + "test/quic_multistream_test.c" + ], + "test/quic_newcid_test" => [ + "test/helpers/quic_newcid_test-bin-noisydgrambio.o", + "test/helpers/quic_newcid_test-bin-pktsplitbio.o", + "test/helpers/quic_newcid_test-bin-quictestlib.o", + "test/helpers/quic_newcid_test-bin-ssltestlib.o", + "test/quic_newcid_test-bin-quic_newcid_test.o" + ], + "test/quic_newcid_test-bin-quic_newcid_test.o" => [ + "test/quic_newcid_test.c" + ], + "test/quic_qlog_test" => [ + "test/quic_qlog_test-bin-quic_qlog_test.o" + ], + "test/quic_qlog_test-bin-quic_qlog_test.o" => [ + "test/quic_qlog_test.c" + ], + "test/quic_radix_test" => [ + "test/helpers/quic_radix_test-bin-noisydgrambio.o", + "test/helpers/quic_radix_test-bin-pktsplitbio.o", + "test/helpers/quic_radix_test-bin-quictestlib.o", + "test/helpers/quic_radix_test-bin-ssltestlib.o", + "test/radix/quic_radix_test-bin-quic_radix.o" + ], + "test/quic_rcidm_test" => [ + "test/quic_rcidm_test-bin-quic_rcidm_test.o" + ], + "test/quic_rcidm_test-bin-quic_rcidm_test.o" => [ + "test/quic_rcidm_test.c" + ], + "test/quic_record_test" => [ + "test/quic_record_test-bin-quic_record_test.o" + ], + "test/quic_record_test-bin-quic_record_test.o" => [ + "test/quic_record_test.c" + ], + "test/quic_srt_gen_test" => [ + "test/helpers/quic_srt_gen_test-bin-noisydgrambio.o", + "test/helpers/quic_srt_gen_test-bin-pktsplitbio.o", + "test/helpers/quic_srt_gen_test-bin-quictestlib.o", + "test/helpers/quic_srt_gen_test-bin-ssltestlib.o", + "test/quic_srt_gen_test-bin-quic_srt_gen_test.o" + ], + "test/quic_srt_gen_test-bin-quic_srt_gen_test.o" => [ + "test/quic_srt_gen_test.c" + ], + "test/quic_srtm_test" => [ + "test/quic_srtm_test-bin-quic_srtm_test.o" + ], + "test/quic_srtm_test-bin-quic_srtm_test.o" => [ + "test/quic_srtm_test.c" + ], + "test/quic_stream_test" => [ + "test/quic_stream_test-bin-quic_stream_test.o" + ], + "test/quic_stream_test-bin-quic_stream_test.o" => [ + "test/quic_stream_test.c" + ], + "test/quic_tserver_test" => [ + "test/quic_tserver_test-bin-quic_tserver_test.o" + ], + "test/quic_tserver_test-bin-quic_tserver_test.o" => [ + "test/quic_tserver_test.c" + ], + "test/quic_txp_test" => [ + "test/quic_txp_test-bin-cc_dummy.o", + "test/quic_txp_test-bin-quic_txp_test.o" + ], + "test/quic_txp_test-bin-cc_dummy.o" => [ + "test/cc_dummy.c" + ], + "test/quic_txp_test-bin-quic_txp_test.o" => [ + "test/quic_txp_test.c" + ], + "test/quic_txpim_test" => [ + "test/quic_txpim_test-bin-quic_txpim_test.o" + ], + "test/quic_txpim_test-bin-quic_txpim_test.o" => [ + "test/quic_txpim_test.c" + ], + "test/quic_wire_test" => [ + "test/quic_wire_test-bin-quic_wire_test.o" + ], + "test/quic_wire_test-bin-quic_wire_test.o" => [ + "test/quic_wire_test.c" + ], + "test/quicapitest" => [ + "test/helpers/quicapitest-bin-noisydgrambio.o", + "test/helpers/quicapitest-bin-pktsplitbio.o", + "test/helpers/quicapitest-bin-quictestlib.o", + "test/helpers/quicapitest-bin-ssltestlib.o", + "test/quicapitest-bin-quicapitest.o" + ], + "test/quicapitest-bin-quicapitest.o" => [ + "test/quicapitest.c" + ], + "test/quicfaultstest" => [ + "test/helpers/quicfaultstest-bin-noisydgrambio.o", + "test/helpers/quicfaultstest-bin-pktsplitbio.o", + "test/helpers/quicfaultstest-bin-quictestlib.o", + "test/helpers/quicfaultstest-bin-ssltestlib.o", + "test/quicfaultstest-bin-quicfaultstest.o" + ], + "test/quicfaultstest-bin-quicfaultstest.o" => [ + "test/quicfaultstest.c" + ], + "test/radix/quic_radix_test-bin-quic_radix.o" => [ + "test/radix/quic_radix.c" + ], "test/rand_status_test" => [ "test/rand_status_test-bin-rand_status_test.o" ], @@ -27167,11 +32108,11 @@ our %unified_info = ( "test/rc5test-bin-rc5test.o" => [ "test/rc5test.c" ], - "test/rdrand_sanitytest" => [ - "test/rdrand_sanitytest-bin-rdrand_sanitytest.o" + "test/rdcpu_sanitytest" => [ + "test/rdcpu_sanitytest-bin-rdcpu_sanitytest.o" ], - "test/rdrand_sanitytest-bin-rdrand_sanitytest.o" => [ - "test/rdrand_sanitytest.c" + "test/rdcpu_sanitytest-bin-rdcpu_sanitytest.o" => [ + "test/rdcpu_sanitytest.c" ], "test/recordlentest" => [ "test/helpers/recordlentest-bin-ssltestlib.o", @@ -27180,6 +32121,13 @@ our %unified_info = ( "test/recordlentest-bin-recordlentest.o" => [ "test/recordlentest.c" ], + "test/rpktest" => [ + "test/helpers/rpktest-bin-ssltestlib.o", + "test/rpktest-bin-rpktest.o" + ], + "test/rpktest-bin-rpktest.o" => [ + "test/rpktest.c" + ], "test/rsa_complex" => [ "test/rsa_complex-bin-rsa_complex.o" ], @@ -27204,6 +32152,18 @@ our %unified_info = ( "test/rsa_test-bin-rsa_test.o" => [ "test/rsa_test.c" ], + "test/rsa_x931_test" => [ + "test/rsa_x931_test-bin-rsa_x931_test.o" + ], + "test/rsa_x931_test-bin-rsa_x931_test.o" => [ + "test/rsa_x931_test.c" + ], + "test/safe_math_test" => [ + "test/safe_math_test-bin-safe_math_test.o" + ], + "test/safe_math_test-bin-safe_math_test.o" => [ + "test/safe_math_test.c" + ], "test/sanitytest" => [ "test/sanitytest-bin-sanitytest.o" ], @@ -27235,6 +32195,12 @@ our %unified_info = ( "test/siphash_internal_test-bin-siphash_internal_test.o" => [ "test/siphash_internal_test.c" ], + "test/slh_dsa_test" => [ + "test/slh_dsa_test-bin-slh_dsa_test.o" + ], + "test/slh_dsa_test-bin-slh_dsa_test.o" => [ + "test/slh_dsa_test.c" + ], "test/sm2_internal_test" => [ "test/sm2_internal_test-bin-sm2_internal_test.o" ], @@ -27277,6 +32243,13 @@ our %unified_info = ( "test/ssl_ctx_test-bin-ssl_ctx_test.o" => [ "test/ssl_ctx_test.c" ], + "test/ssl_handshake_rtt_test" => [ + "test/helpers/ssl_handshake_rtt_test-bin-ssltestlib.o", + "test/ssl_handshake_rtt_test-bin-ssl_handshake_rtt_test.o" + ], + "test/ssl_handshake_rtt_test-bin-ssl_handshake_rtt_test.o" => [ + "test/ssl_handshake_rtt_test.c" + ], "test/ssl_old_test" => [ "test/helpers/ssl_old_test-bin-predefined_dhparams.o", "test/ssl_old_test-bin-ssl_old_test.o" @@ -27335,6 +32308,12 @@ our %unified_info = ( "test/stack_test-bin-stack_test.o" => [ "test/stack_test.c" ], + "test/strtoultest" => [ + "test/strtoultest-bin-strtoultest.o" + ], + "test/strtoultest-bin-strtoultest.o" => [ + "test/strtoultest.c" + ], "test/sysdefaulttest" => [ "test/sysdefaulttest-bin-sysdefaulttest.o" ], @@ -27365,6 +32344,9 @@ our %unified_info = ( "test/testutil/libtestutil-lib-format_output.o" => [ "test/testutil/format_output.c" ], + "test/testutil/libtestutil-lib-helper.o" => [ + "test/testutil/helper.c" + ], "test/testutil/libtestutil-lib-load.o" => [ "test/testutil/load.c" ], @@ -27398,6 +32380,12 @@ our %unified_info = ( "test/testutil/libtestutil-lib-testutil_init.o" => [ "test/testutil/testutil_init.c" ], + "test/threadpool_test" => [ + "test/threadpool_test-bin-threadpool_test.o" + ], + "test/threadpool_test-bin-threadpool_test.o" => [ + "test/threadpool_test.c" + ], "test/threadstest" => [ "test/threadstest-bin-threadstest.o" ], @@ -27416,6 +32404,12 @@ our %unified_info = ( "test/time_offset_test-bin-time_offset_test.o" => [ "test/time_offset_test.c" ], + "test/time_test" => [ + "test/time_test-bin-time_test.o" + ], + "test/time_test-bin-time_test.o" => [ + "test/time_test.c" + ], "test/tls13ccstest" => [ "test/helpers/tls13ccstest-bin-ssltestlib.o", "test/tls13ccstest-bin-tls13ccstest.o" @@ -27429,6 +32423,13 @@ our %unified_info = ( "test/tls13encryptiontest-bin-tls13encryptiontest.o" => [ "test/tls13encryptiontest.c" ], + "test/tls13groupselection_test" => [ + "test/helpers/tls13groupselection_test-bin-ssltestlib.o", + "test/tls13groupselection_test-bin-tls13groupselection_test.o" + ], + "test/tls13groupselection_test-bin-tls13groupselection_test.o" => [ + "test/tls13groupselection_test.c" + ], "test/trace_api_test" => [ "test/trace_api_test-bin-trace_api_test.o" ], @@ -27484,6 +32485,12 @@ our %unified_info = ( "test/wpackettest-bin-wpackettest.o" => [ "test/wpackettest.c" ], + "test/x509_acert_test" => [ + "test/x509_acert_test-bin-x509_acert_test.o" + ], + "test/x509_acert_test-bin-x509_acert_test.o" => [ + "test/x509_acert_test.c" + ], "test/x509_check_cert_pkey_test" => [ "test/x509_check_cert_pkey_test-bin-x509_check_cert_pkey_test.o" ], @@ -27502,6 +32509,24 @@ our %unified_info = ( "test/x509_internal_test-bin-x509_internal_test.o" => [ "test/x509_internal_test.c" ], + "test/x509_load_cert_file_test" => [ + "test/x509_load_cert_file_test-bin-x509_load_cert_file_test.o" + ], + "test/x509_load_cert_file_test-bin-x509_load_cert_file_test.o" => [ + "test/x509_load_cert_file_test.c" + ], + "test/x509_req_test" => [ + "test/x509_req_test-bin-x509_req_test.o" + ], + "test/x509_req_test-bin-x509_req_test.o" => [ + "test/x509_req_test.c" + ], + "test/x509_test" => [ + "test/x509_test-bin-x509_test.o" + ], + "test/x509_test-bin-x509_test.o" => [ + "test/x509_test.c" + ], "test/x509_time_test" => [ "test/x509_time_test-bin-x509_time_test.o" ], @@ -27565,6 +32590,7 @@ my @makevars = ( "LDLIBS", "MT", "MTFLAGS", + "OBJCOPY", "PERL", "RANLIB", "RC", @@ -27578,6 +32604,12 @@ my %disabled_info = ( "asan" => { "macro" => "OPENSSL_NO_ASAN" }, + "brotli" => { + "macro" => "OPENSSL_NO_BROTLI" + }, + "brotli-dynamic" => { + "macro" => "OPENSSL_NO_BROTLI_DYNAMIC" + }, "comp" => { "macro" => "OPENSSL_NO_COMP", "skipped" => [ @@ -27590,6 +32622,9 @@ my %disabled_info = ( "crypto-mdebug-backtrace" => { "macro" => "OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE" }, + "demos" => { + "macro" => "OPENSSL_NO_DEMOS" + }, "devcryptoeng" => { "macro" => "OPENSSL_NO_DEVCRYPTOENG" }, @@ -27602,12 +32637,24 @@ my %disabled_info = ( "external-tests" => { "macro" => "OPENSSL_NO_EXTERNAL_TESTS" }, + "fips-jitter" => { + "macro" => "OPENSSL_NO_FIPS_JITTER" + }, "fuzz-afl" => { "macro" => "OPENSSL_NO_FUZZ_AFL" }, "fuzz-libfuzzer" => { "macro" => "OPENSSL_NO_FUZZ_LIBFUZZER" }, + "h3demo" => { + "macro" => "OPENSSL_NO_H3DEMO" + }, + "hqinterop" => { + "macro" => "OPENSSL_NO_HQINTEROP" + }, + "jitter" => { + "macro" => "OPENSSL_NO_JITTER" + }, "ktls" => { "macro" => "OPENSSL_NO_KTLS" }, @@ -27623,6 +32670,9 @@ my %disabled_info = ( "msan" => { "macro" => "OPENSSL_NO_MSAN" }, + "pie" => { + "macro" => "OPENSSL_NO_PIE" + }, "rc5" => { "macro" => "OPENSSL_NO_RC5", "skipped" => [ @@ -27638,6 +32688,12 @@ my %disabled_info = ( "ssl3-method" => { "macro" => "OPENSSL_NO_SSL3_METHOD" }, + "sslkeylog" => { + "macro" => "OPENSSL_NO_SSLKEYLOG" + }, + "tfo" => { + "macro" => "OPENSSL_NO_TFO" + }, "trace" => { "macro" => "OPENSSL_NO_TRACE" }, @@ -27652,6 +32708,21 @@ my %disabled_info = ( }, "weak-ssl-ciphers" => { "macro" => "OPENSSL_NO_WEAK_SSL_CIPHERS" + }, + "winstore" => { + "macro" => "OPENSSL_NO_WINSTORE" + }, + "zlib" => { + "macro" => "OPENSSL_NO_ZLIB" + }, + "zlib-dynamic" => { + "macro" => "OPENSSL_NO_ZLIB_DYNAMIC" + }, + "zstd" => { + "macro" => "OPENSSL_NO_ZSTD" + }, + "zstd-dynamic" => { + "macro" => "OPENSSL_NO_ZSTD_DYNAMIC" } ); my @user_crossable = qw( AR AS CC CXX CPP LD MT RANLIB RC ); @@ -27665,15 +32736,15 @@ unless (caller) { use File::Copy; use Pod::Usage; - use lib '/home/runner/work/node/node/deps/openssl/openssl/util/perl'; - use OpenSSL::fallback '/home/runner/work/node/node/deps/openssl/openssl/external/perl/MODULES.txt'; + use lib '/node/deps/openssl/openssl/util/perl'; + use OpenSSL::fallback '/node/deps/openssl/openssl/external/perl/MODULES.txt'; my $here = dirname($0); if (scalar @ARGV == 0) { # With no arguments, re-create the build file # We do that in two steps, where the first step emits perl - # snipets. + # snippets. my $buildfile = $config{build_file}; my $buildfile_template = "$buildfile.in"; @@ -27693,7 +32764,7 @@ unless (caller) { ); use lib '.'; - use lib '/home/runner/work/node/node/deps/openssl/openssl/Configurations'; + use lib '/node/deps/openssl/openssl/Configurations'; use gentemplate; open my $buildfile_template_fh, ">$buildfile_template" @@ -27710,8 +32781,8 @@ unless (caller) { my $prepend = <<'_____'; use File::Spec::Functions; -use lib '/home/runner/work/node/node/deps/openssl/openssl/util/perl'; -use lib '/home/runner/work/node/node/deps/openssl/openssl/Configurations'; +use lib '/node/deps/openssl/openssl/util/perl'; +use lib '/node/deps/openssl/openssl/Configurations'; use lib '.'; use platform; _____ diff --git a/deps/openssl/config/archs/linux-elf/asm/crypto/aes/aes-586.S b/deps/openssl/config/archs/linux-elf/asm/crypto/aes/aes-586.S index 628a3b6333e9d3..836db826ab2e81 100644 --- a/deps/openssl/config/archs/linux-elf/asm/crypto/aes/aes-586.S +++ b/deps/openssl/config/archs/linux-elf/asm/crypto/aes/aes-586.S @@ -3300,7 +3300,7 @@ AES_set_decrypt_key: .byte 65,69,83,32,102,111,114,32,120,56,54,44,32,67,82,89 .byte 80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114 .byte 111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 -.comm OPENSSL_ia32cap_P,16,4 +.comm OPENSSL_ia32cap_P,40,4 .section ".note.gnu.property", "a" .p2align 2 diff --git a/deps/openssl/config/archs/linux-elf/asm/crypto/aes/aesni-x86.S b/deps/openssl/config/archs/linux-elf/asm/crypto/aes/aesni-x86.S index 9191466ee47a31..72839d7825f4d3 100644 --- a/deps/openssl/config/archs/linux-elf/asm/crypto/aes/aesni-x86.S +++ b/deps/openssl/config/archs/linux-elf/asm/crypto/aes/aesni-x86.S @@ -3344,7 +3344,7 @@ aesni_set_decrypt_key: .byte 83,45,78,73,44,32,67,82,89,80,84,79,71,65,77,83 .byte 32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115 .byte 115,108,46,111,114,103,62,0 -.comm OPENSSL_ia32cap_P,16,4 +.comm OPENSSL_ia32cap_P,40,4 .section ".note.gnu.property", "a" .p2align 2 diff --git a/deps/openssl/config/archs/linux-elf/asm/crypto/bn/bn-586.S b/deps/openssl/config/archs/linux-elf/asm/crypto/bn/bn-586.S index 2495ae69451647..01b7ea4be98593 100644 --- a/deps/openssl/config/archs/linux-elf/asm/crypto/bn/bn-586.S +++ b/deps/openssl/config/archs/linux-elf/asm/crypto/bn/bn-586.S @@ -1561,7 +1561,7 @@ bn_sub_part_words: popl %ebp ret .size bn_sub_part_words,.-.L_bn_sub_part_words_begin -.comm OPENSSL_ia32cap_P,16,4 +.comm OPENSSL_ia32cap_P,40,4 .section ".note.gnu.property", "a" .p2align 2 diff --git a/deps/openssl/config/archs/linux-elf/asm/crypto/bn/x86-gf2m.S b/deps/openssl/config/archs/linux-elf/asm/crypto/bn/x86-gf2m.S index fcb54e967b4cbc..69a58ef7729a7d 100644 --- a/deps/openssl/config/archs/linux-elf/asm/crypto/bn/x86-gf2m.S +++ b/deps/openssl/config/archs/linux-elf/asm/crypto/bn/x86-gf2m.S @@ -357,7 +357,7 @@ bn_GF2m_mul_2x2: .byte 67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97 .byte 112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103 .byte 62,0 -.comm OPENSSL_ia32cap_P,16,4 +.comm OPENSSL_ia32cap_P,40,4 .section ".note.gnu.property", "a" .p2align 2 diff --git a/deps/openssl/config/archs/linux-elf/asm/crypto/bn/x86-mont.S b/deps/openssl/config/archs/linux-elf/asm/crypto/bn/x86-mont.S index 7dddbf7d87f1d8..4bc1ef9eb59055 100644 --- a/deps/openssl/config/archs/linux-elf/asm/crypto/bn/x86-mont.S +++ b/deps/openssl/config/archs/linux-elf/asm/crypto/bn/x86-mont.S @@ -477,7 +477,7 @@ bn_mul_mont: .byte 54,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121 .byte 32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46 .byte 111,114,103,62,0 -.comm OPENSSL_ia32cap_P,16,4 +.comm OPENSSL_ia32cap_P,40,4 .section ".note.gnu.property", "a" .p2align 2 diff --git a/deps/openssl/config/archs/linux-elf/asm/crypto/buildinf.h b/deps/openssl/config/archs/linux-elf/asm/crypto/buildinf.h index 09d8c51fd6634b..788e690f96db7f 100644 --- a/deps/openssl/config/archs/linux-elf/asm/crypto/buildinf.h +++ b/deps/openssl/config/archs/linux-elf/asm/crypto/buildinf.h @@ -11,7 +11,7 @@ */ #define PLATFORM "platform: linux-elf" -#define DATE "built on: Sun Jul 20 00:50:06 2025 UTC" +#define DATE "built on: Sun Jul 27 00:51:47 2025 UTC" /* * Generate compiler_flags as an array of individual characters. This is a diff --git a/deps/openssl/config/archs/linux-elf/asm/crypto/chacha/chacha-x86.S b/deps/openssl/config/archs/linux-elf/asm/crypto/chacha/chacha-x86.S index 9cc4027c738002..f5d43cfee8da81 100644 --- a/deps/openssl/config/archs/linux-elf/asm/crypto/chacha/chacha-x86.S +++ b/deps/openssl/config/archs/linux-elf/asm/crypto/chacha/chacha-x86.S @@ -1457,7 +1457,7 @@ ChaCha20_xop: popl %ebp ret .size ChaCha20_xop,.-.L_ChaCha20_xop_begin -.comm OPENSSL_ia32cap_P,16,4 +.comm OPENSSL_ia32cap_P,40,4 .section ".note.gnu.property", "a" .p2align 2 diff --git a/deps/openssl/config/archs/linux-elf/asm/crypto/ec/ecp_nistz256-x86.S b/deps/openssl/config/archs/linux-elf/asm/crypto/ec/ecp_nistz256-x86.S index 4e17d5eb877efc..53a17f5783cc29 100644 --- a/deps/openssl/config/archs/linux-elf/asm/crypto/ec/ecp_nistz256-x86.S +++ b/deps/openssl/config/archs/linux-elf/asm/crypto/ec/ecp_nistz256-x86.S @@ -5270,7 +5270,7 @@ ecp_nistz256_point_add_affine: popl %ebp ret .size ecp_nistz256_point_add_affine,.-.L_ecp_nistz256_point_add_affine_begin -.comm OPENSSL_ia32cap_P,16,4 +.comm OPENSSL_ia32cap_P,40,4 .section ".note.gnu.property", "a" .p2align 2 diff --git a/deps/openssl/config/archs/linux-elf/asm/crypto/params_idx.c b/deps/openssl/config/archs/linux-elf/asm/crypto/params_idx.c new file mode 100644 index 00000000000000..9d76ffededc24c --- /dev/null +++ b/deps/openssl/config/archs/linux-elf/asm/crypto/params_idx.c @@ -0,0 +1,3366 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from crypto/params_idx.c.in + * + * Copyright 2023 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + +#include "internal/e_os.h" +#include "internal/param_names.h" +#include + +/* Machine generated TRIE -- generated by util/perl/OpenSSL/paramnames.pm */ +int ossl_param_find_pidx(const char *s) +{ + switch(s[0]) { + default: + break; + case 'a': + switch(s[1]) { + default: + break; + case 'c': + if (strcmp("vp-info", s + 2) == 0) + return PIDX_KDF_PARAM_X942_ACVPINFO; + break; + case 'd': + switch(s[2]) { + default: + break; + case 'd': + if (strcmp("itional-random", s + 3) == 0) + return PIDX_SIGNATURE_PARAM_ADD_RANDOM; + break; + case '\0': + return PIDX_KDF_PARAM_ARGON2_AD; + } + break; + case 'e': + if (strcmp("ad", s + 2) == 0) + return PIDX_CIPHER_PARAM_AEAD; + break; + case 'l': + switch(s[2]) { + default: + break; + case 'g': + switch(s[3]) { + default: + break; + case '_': + if (strcmp("id_param", s + 4) == 0) + return PIDX_CIPHER_PARAM_ALGORITHM_ID_PARAMS_OLD; + break; + case 'i': + if (strcmp("d-absent", s + 4) == 0) + return PIDX_DIGEST_PARAM_ALGID_ABSENT; + break; + case 'o': + switch(s[4]) { + default: + break; + case 'r': + switch(s[5]) { + default: + break; + case 'i': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case 'h': + switch(s[8]) { + default: + break; + case 'm': + switch(s[9]) { + default: + break; + case '-': + switch(s[10]) { + default: + break; + case 'i': + switch(s[11]) { + default: + break; + case 'd': + switch(s[12]) { + default: + break; + case '-': + if (strcmp("params", s + 13) == 0) + return PIDX_ALG_PARAM_ALGORITHM_ID_PARAMS; + break; + case '\0': + return PIDX_ALG_PARAM_ALGORITHM_ID; + } + } + } + } + } + } + } + } + } + } + break; + case 'i': + if (strcmp("as", s + 3) == 0) + return PIDX_STORE_PARAM_ALIAS; + } + break; + case '\0': + return PIDX_PKEY_PARAM_EC_A; + } + break; + case 'b': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("sis-type", s + 2) == 0) + return PIDX_PKEY_PARAM_EC_CHAR2_TYPE; + break; + case 'i': + if (strcmp("ts", s + 2) == 0) + return PIDX_PKEY_PARAM_BITS; + break; + case 'l': + switch(s[2]) { + default: + break; + case 'o': + switch(s[3]) { + default: + break; + case 'c': + switch(s[4]) { + default: + break; + case 'k': + switch(s[5]) { + default: + break; + case '-': + if (strcmp("size", s + 6) == 0) + return PIDX_MAC_PARAM_BLOCK_SIZE; + break; + case '_': + if (strcmp("padding", s + 6) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_BLOCK_PADDING; + break; + case 's': + if (strcmp("ize", s + 6) == 0) + return PIDX_DIGEST_PARAM_BLOCK_SIZE; + } + } + } + } + break; + case 'u': + if (strcmp("ildinfo", s + 2) == 0) + return PIDX_PROV_PARAM_BUILDINFO; + break; + case '\0': + return PIDX_PKEY_PARAM_EC_B; + } + break; + case 'c': + switch(s[1]) { + default: + break; + case '-': + if (strcmp("rounds", s + 2) == 0) + return PIDX_MAC_PARAM_C_ROUNDS; + break; + case 'e': + if (strcmp("kalg", s + 2) == 0) + return PIDX_KDF_PARAM_CEK_ALG; + break; + case 'i': + if (strcmp("pher", s + 2) == 0) + return PIDX_ALG_PARAM_CIPHER; + break; + case 'o': + switch(s[2]) { + default: + break; + case 'f': + if (strcmp("actor", s + 3) == 0) + return PIDX_PKEY_PARAM_EC_COFACTOR; + break; + case 'n': + switch(s[3]) { + default: + break; + case 's': + if (strcmp("tant", s + 4) == 0) + return PIDX_KDF_PARAM_CONSTANT; + break; + case 't': + if (strcmp("ext-string", s + 4) == 0) + return PIDX_SIGNATURE_PARAM_CONTEXT_STRING; + } + } + break; + case 't': + switch(s[2]) { + default: + break; + case 's': + switch(s[3]) { + default: + break; + case '_': + if (strcmp("mode", s + 4) == 0) + return PIDX_CIPHER_PARAM_CTS_MODE; + break; + case '\0': + return PIDX_CIPHER_PARAM_CTS; + } + } + break; + case 'u': + switch(s[2]) { + default: + break; + case 's': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case 'o': + switch(s[5]) { + default: + break; + case 'm': + switch(s[6]) { + default: + break; + case '-': + if (strcmp("iv", s + 7) == 0) + return PIDX_CIPHER_PARAM_CUSTOM_IV; + break; + case '\0': + return PIDX_MAC_PARAM_CUSTOM; + } + } + } + } + } + } + break; + case 'd': + switch(s[1]) { + default: + break; + case '-': + if (strcmp("rounds", s + 2) == 0) + return PIDX_MAC_PARAM_D_ROUNDS; + break; + case 'a': + switch(s[2]) { + default: + break; + case 't': + switch(s[3]) { + default: + break; + case 'a': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 's': + if (strcmp("tructure", s + 6) == 0) + return PIDX_OBJECT_PARAM_DATA_STRUCTURE; + break; + case 't': + if (strcmp("ype", s + 6) == 0) + return PIDX_OBJECT_PARAM_DATA_TYPE; + } + break; + case '\0': + return PIDX_OBJECT_PARAM_DATA; + } + } + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'c': + switch(s[3]) { + default: + break; + case 'o': + if (strcmp("ded-from-explicit", s + 4) == 0) + return PIDX_PKEY_PARAM_EC_DECODED_FROM_EXPLICIT_PARAMS; + break; + case 'r': + if (strcmp("ypt-only", s + 4) == 0) + return PIDX_CIPHER_PARAM_DECRYPT_ONLY; + } + break; + case 'f': + if (strcmp("ault-digest", s + 3) == 0) + return PIDX_PKEY_PARAM_DEFAULT_DIGEST; + break; + case 's': + if (strcmp("c", s + 3) == 0) + return PIDX_OBJECT_PARAM_DESC; + break; + case 't': + if (strcmp("erministic", s + 3) == 0) + return PIDX_SIGNATURE_PARAM_DETERMINISTIC; + } + break; + case 'h': + if (strcmp("kem-ikm", s + 2) == 0) + return PIDX_PKEY_PARAM_DHKEM_IKM; + break; + case 'i': + switch(s[2]) { + default: + break; + case 'g': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case 's': + switch(s[5]) { + default: + break; + case 't': + switch(s[6]) { + default: + break; + case '-': + switch(s[7]) { + default: + break; + case 'c': + if (strcmp("heck", s + 8) == 0) + return PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK; + break; + case 'n': + if (strcmp("oinit", s + 8) == 0) + return PIDX_MAC_PARAM_DIGEST_NOINIT; + break; + case 'o': + if (strcmp("neshot", s + 8) == 0) + return PIDX_MAC_PARAM_DIGEST_ONESHOT; + break; + case 'p': + if (strcmp("rops", s + 8) == 0) + return PIDX_ASYM_CIPHER_PARAM_OAEP_DIGEST_PROPS; + break; + case 's': + if (strcmp("ize", s + 8) == 0) + return PIDX_PKEY_PARAM_DIGEST_SIZE; + } + break; + case '\0': + return PIDX_STORE_PARAM_DIGEST; + } + } + } + } + break; + case 's': + if (strcmp("tid", s + 3) == 0) + return PIDX_PKEY_PARAM_DIST_ID; + } + break; + case 'r': + if (strcmp("bg-no-trunc-md", s + 2) == 0) + return PIDX_PROV_PARAM_DRBG_TRUNC_DIGEST; + break; + case 's': + if (strcmp("a-sign-disabled", s + 2) == 0) + return PIDX_PROV_PARAM_DSA_SIGN_DISABLED; + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_D; + } + break; + case 'e': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("rly_clean", s + 2) == 0) + return PIDX_KDF_PARAM_EARLY_CLEAN; + break; + case 'c': + switch(s[2]) { + default: + break; + case 'd': + switch(s[3]) { + default: + break; + case 'h': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'c': + switch(s[6]) { + default: + break; + case 'o': + switch(s[7]) { + default: + break; + case 'f': + switch(s[8]) { + default: + break; + case 'a': + switch(s[9]) { + default: + break; + case 'c': + switch(s[10]) { + default: + break; + case 't': + switch(s[11]) { + default: + break; + case 'o': + switch(s[12]) { + default: + break; + case 'r': + switch(s[13]) { + default: + break; + case '-': + switch(s[14]) { + default: + break; + case 'c': + if (strcmp("heck", s + 15) == 0) + return PIDX_PROV_PARAM_ECDH_COFACTOR_CHECK; + break; + case 'm': + if (strcmp("ode", s + 15) == 0) + return PIDX_EXCHANGE_PARAM_EC_ECDH_COFACTOR_MODE; + } + } + } + } + } + } + } + } + } + } + } + } + } + break; + case 'm': + if (strcmp("s_check", s + 2) == 0) + return PIDX_KDF_PARAM_FIPS_EMS_CHECK; + break; + case 'n': + switch(s[2]) { + default: + break; + case 'c': + switch(s[3]) { + default: + break; + case 'o': + switch(s[4]) { + default: + break; + case 'd': + switch(s[5]) { + default: + break; + case 'e': + if (strcmp("d-pub-key", s + 6) == 0) + return PIDX_PKEY_PARAM_ENCODED_PUBLIC_KEY; + break; + case 'i': + if (strcmp("ng", s + 6) == 0) + return PIDX_PKEY_PARAM_EC_ENCODING; + } + } + break; + case 'r': + switch(s[4]) { + default: + break; + case 'y': + switch(s[5]) { + default: + break; + case 'p': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case '-': + switch(s[8]) { + default: + break; + case 'c': + if (strcmp("heck", s + 9) == 0) + return PIDX_CIPHER_PARAM_FIPS_ENCRYPT_CHECK; + break; + case 'l': + if (strcmp("evel", s + 9) == 0) + return PIDX_ENCODER_PARAM_ENCRYPT_LEVEL; + } + } + } + } + } + } + break; + case 'g': + if (strcmp("ine", s + 3) == 0) + return PIDX_ALG_PARAM_ENGINE; + break; + case 't': + switch(s[3]) { + default: + break; + case 'r': + switch(s[4]) { + default: + break; + case 'o': + switch(s[5]) { + default: + break; + case 'p': + switch(s[6]) { + default: + break; + case 'y': + switch(s[7]) { + default: + break; + case '_': + if (strcmp("required", s + 8) == 0) + return PIDX_DRBG_PARAM_ENTROPY_REQUIRED; + break; + case '\0': + return PIDX_KDF_PARAM_HMACDRBG_ENTROPY; + } + } + } + } + } + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_E; + break; + case 'x': + if (strcmp("pect", s + 2) == 0) + return PIDX_STORE_PARAM_EXPECT; + } + break; + case 'f': + switch(s[1]) { + default: + break; + case 'i': + switch(s[2]) { + default: + break; + case 'e': + if (strcmp("ld-type", s + 3) == 0) + return PIDX_PKEY_PARAM_EC_FIELD_TYPE; + break; + case 'n': + if (strcmp("gerprint", s + 3) == 0) + return PIDX_STORE_PARAM_FINGERPRINT; + break; + case 'p': + if (strcmp("s-indicator", s + 3) == 0) + return PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR; + } + } + break; + case 'g': + switch(s[1]) { + default: + break; + case 'e': + switch(s[2]) { + default: + break; + case 'n': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case 'r': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case 'e': + switch(s[8]) { + default: + break; + case '\0': + return PIDX_RAND_PARAM_GENERATE; + } + break; + case 'o': + if (strcmp("r", s + 8) == 0) + return PIDX_PKEY_PARAM_EC_GENERATOR; + } + } + } + } + } + } + break; + case 'i': + if (strcmp("ndex", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_GINDEX; + break; + case 'r': + switch(s[2]) { + default: + break; + case 'o': + switch(s[3]) { + default: + break; + case 'u': + switch(s[4]) { + default: + break; + case 'p': + switch(s[5]) { + default: + break; + case '-': + if (strcmp("check", s + 6) == 0) + return PIDX_PKEY_PARAM_EC_GROUP_CHECK_TYPE; + break; + case '\0': + return PIDX_PKEY_PARAM_GROUP_NAME; + } + } + } + } + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_G; + } + break; + case 'h': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("s-randkey", s + 2) == 0) + return PIDX_CIPHER_PARAM_HAS_RAND_KEY; + break; + case 'i': + if (strcmp("ndex", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_H; + break; + case 'k': + switch(s[2]) { + default: + break; + case 'd': + switch(s[3]) { + default: + break; + case 'f': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 6) == 0) + return PIDX_PROV_PARAM_HKDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 6) == 0) + return PIDX_PROV_PARAM_HKDF_KEY_CHECK; + } + } + } + } + break; + case 'm': + if (strcmp("ac-key-check", s + 2) == 0) + return PIDX_PROV_PARAM_HMAC_KEY_CHECK; + break; + case 's': + if (strcmp("_padding", s + 2) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_HS_PADDING; + } + break; + case 'i': + switch(s[1]) { + default: + break; + case 'd': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_KDF_PARAM_PKCS12_ID; + } + break; + case 'k': + if (strcmp("me", s + 2) == 0) + return PIDX_KEM_PARAM_IKME; + break; + case 'm': + if (strcmp("plicit-rejection", s + 2) == 0) + return PIDX_PKEY_PARAM_IMPLICIT_REJECTION; + break; + case 'n': + switch(s[2]) { + default: + break; + case 'c': + if (strcmp("lude-public", s + 3) == 0) + return PIDX_PKEY_PARAM_EC_INCLUDE_PUBLIC; + break; + case 'f': + if (strcmp("o", s + 3) == 0) + return PIDX_PASSPHRASE_PARAM_INFO; + break; + case 'p': + if (strcmp("ut-type", s + 3) == 0) + return PIDX_STORE_PARAM_INPUT_TYPE; + break; + case 's': + if (strcmp("tance", s + 3) == 0) + return PIDX_SIGNATURE_PARAM_INSTANCE; + } + break; + case 't': + switch(s[2]) { + default: + break; + case 'e': + switch(s[3]) { + default: + break; + case 'r': + switch(s[4]) { + default: + break; + case 'a': + if (strcmp("tion", s + 5) == 0) + return PIDX_GEN_PARAM_ITERATION; + break; + case '\0': + return PIDX_KDF_PARAM_ITER; + } + } + } + break; + case 'v': + switch(s[2]) { + default: + break; + case '-': + if (strcmp("generated", s + 3) == 0) + return PIDX_CIPHER_PARAM_AEAD_IV_GENERATED; + break; + case 'l': + if (strcmp("en", s + 3) == 0) + return PIDX_CIPHER_PARAM_IVLEN; + break; + case '\0': + return PIDX_MAC_PARAM_IV; + } + } + break; + case 'j': + switch(s[1]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_COFACTOR; + } + break; + case 'k': + switch(s[1]) { + default: + break; + case '1': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_PP_K1; + } + break; + case '2': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_PP_K2; + } + break; + case '3': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_PP_K3; + } + break; + case 'a': + if (strcmp("t", s + 2) == 0) + return PIDX_SIGNATURE_PARAM_KAT; + break; + case 'b': + if (strcmp("kdf-key-check", s + 2) == 0) + return PIDX_PROV_PARAM_KBKDF_KEY_CHECK; + break; + case 'd': + switch(s[2]) { + default: + break; + case 'f': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'd': + switch(s[5]) { + default: + break; + case 'i': + switch(s[6]) { + default: + break; + case 'g': + switch(s[7]) { + default: + break; + case 'e': + switch(s[8]) { + default: + break; + case 's': + switch(s[9]) { + default: + break; + case 't': + switch(s[10]) { + default: + break; + case '-': + if (strcmp("props", s + 11) == 0) + return PIDX_EXCHANGE_PARAM_KDF_DIGEST_PROPS; + break; + case '\0': + return PIDX_EXCHANGE_PARAM_KDF_DIGEST; + } + } + } + } + } + } + break; + case 'o': + if (strcmp("utlen", s + 5) == 0) + return PIDX_EXCHANGE_PARAM_KDF_OUTLEN; + break; + case 't': + if (strcmp("ype", s + 5) == 0) + return PIDX_EXCHANGE_PARAM_KDF_TYPE; + break; + case 'u': + if (strcmp("km", s + 5) == 0) + return PIDX_EXCHANGE_PARAM_KDF_UKM; + } + } + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'y': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'c': + if (strcmp("heck", s + 5) == 0) + return PIDX_PKEY_PARAM_FIPS_KEY_CHECK; + break; + case 'l': + if (strcmp("ength", s + 5) == 0) + return PIDX_SKEY_PARAM_KEY_LENGTH; + } + break; + case 'b': + if (strcmp("its", s + 4) == 0) + return PIDX_CIPHER_PARAM_RC2_KEYBITS; + break; + case 'l': + if (strcmp("en", s + 4) == 0) + return PIDX_CIPHER_PARAM_KEYLEN; + break; + case '\0': + return PIDX_MAC_PARAM_KEY; + } + } + break; + case 'm': + if (strcmp("ac-key-check", s + 2) == 0) + return PIDX_PROV_PARAM_KMAC_KEY_CHECK; + } + break; + case 'l': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'b': + if (strcmp("el", s + 3) == 0) + return PIDX_KDF_PARAM_LABEL; + break; + case 'n': + if (strcmp("es", s + 3) == 0) + return PIDX_KDF_PARAM_ARGON2_LANES; + } + } + break; + case 'm': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'c': + switch(s[3]) { + default: + break; + case 'k': + if (strcmp("ey", s + 4) == 0) + return PIDX_CIPHER_PARAM_AEAD_MAC_KEY; + break; + case 'l': + if (strcmp("en", s + 4) == 0) + return PIDX_KDF_PARAM_MAC_SIZE; + break; + case '\0': + return PIDX_ALG_PARAM_MAC; + } + break; + case 'n': + if (strcmp("datory-digest", s + 3) == 0) + return PIDX_PKEY_PARAM_MANDATORY_DIGEST; + break; + case 'x': + switch(s[3]) { + default: + break; + case '-': + if (strcmp("size", s + 4) == 0) + return PIDX_PKEY_PARAM_MAX_SIZE; + break; + case '_': + switch(s[4]) { + default: + break; + case 'a': + if (strcmp("dinlen", s + 5) == 0) + return PIDX_DRBG_PARAM_MAX_ADINLEN; + break; + case 'e': + switch(s[5]) { + default: + break; + case 'a': + if (strcmp("rly_data", s + 6) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_MAX_EARLY_DATA; + break; + case 'n': + if (strcmp("tropylen", s + 6) == 0) + return PIDX_DRBG_PARAM_MAX_ENTROPYLEN; + } + break; + case 'f': + if (strcmp("rag_len", s + 5) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_MAX_FRAG_LEN; + break; + case 'n': + if (strcmp("oncelen", s + 5) == 0) + return PIDX_DRBG_PARAM_MAX_NONCELEN; + break; + case 'p': + if (strcmp("erslen", s + 5) == 0) + return PIDX_DRBG_PARAM_MAX_PERSLEN; + break; + case 'r': + if (strcmp("equest", s + 5) == 0) + return PIDX_RAND_PARAM_MAX_REQUEST; + } + break; + case 'i': + if (strcmp("um_length", s + 4) == 0) + return PIDX_DRBG_PARAM_MAX_LENGTH; + break; + case 'm': + if (strcmp("em_bytes", s + 4) == 0) + return PIDX_KDF_PARAM_SCRYPT_MAXMEM; + } + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'm': + if (strcmp("cost", s + 3) == 0) + return PIDX_KDF_PARAM_ARGON2_MEMCOST; + break; + case 's': + if (strcmp("sage-encoding", s + 3) == 0) + return PIDX_SIGNATURE_PARAM_MESSAGE_ENCODING; + } + break; + case 'g': + switch(s[2]) { + default: + break; + case 'f': + switch(s[3]) { + default: + break; + case '1': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'd': + if (strcmp("igest", s + 6) == 0) + return PIDX_PKEY_PARAM_MGF1_DIGEST; + break; + case 'p': + if (strcmp("roperties", s + 6) == 0) + return PIDX_PKEY_PARAM_MGF1_PROPERTIES; + } + } + break; + case '\0': + return PIDX_PKEY_PARAM_MASKGENFUNC; + } + } + break; + case 'i': + switch(s[2]) { + default: + break; + case 'c': + if (strcmp("alg", s + 3) == 0) + return PIDX_DIGEST_PARAM_MICALG; + break; + case 'n': + switch(s[3]) { + default: + break; + case '_': + switch(s[4]) { + default: + break; + case 'e': + if (strcmp("ntropylen", s + 5) == 0) + return PIDX_DRBG_PARAM_MIN_ENTROPYLEN; + break; + case 'n': + if (strcmp("oncelen", s + 5) == 0) + return PIDX_DRBG_PARAM_MIN_NONCELEN; + } + break; + case 'i': + if (strcmp("um_length", s + 4) == 0) + return PIDX_DRBG_PARAM_MIN_LENGTH; + } + } + break; + case 'l': + switch(s[2]) { + default: + break; + case '-': + switch(s[3]) { + default: + break; + case 'd': + switch(s[4]) { + default: + break; + case 's': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case '.': + switch(s[7]) { + default: + break; + case 'i': + if (strcmp("nput_formats", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_DSA_INPUT_FORMATS; + break; + case 'o': + if (strcmp("utput_formats", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_DSA_OUTPUT_FORMATS; + break; + case 'p': + if (strcmp("refer_seed", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_DSA_PREFER_SEED; + break; + case 'r': + if (strcmp("etain_seed", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_DSA_RETAIN_SEED; + } + } + } + } + break; + case 'k': + switch(s[4]) { + default: + break; + case 'e': + switch(s[5]) { + default: + break; + case 'm': + switch(s[6]) { + default: + break; + case '.': + switch(s[7]) { + default: + break; + case 'i': + switch(s[8]) { + default: + break; + case 'm': + if (strcmp("port_pct_type", s + 9) == 0) + return PIDX_PKEY_PARAM_ML_KEM_IMPORT_PCT_TYPE; + break; + case 'n': + if (strcmp("put_formats", s + 9) == 0) + return PIDX_PKEY_PARAM_ML_KEM_INPUT_FORMATS; + } + break; + case 'o': + if (strcmp("utput_formats", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_KEM_OUTPUT_FORMATS; + break; + case 'p': + if (strcmp("refer_seed", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_KEM_PREFER_SEED; + break; + case 'r': + if (strcmp("etain_seed", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_KEM_RETAIN_SEED; + } + } + } + } + } + } + break; + case 'o': + switch(s[2]) { + default: + break; + case 'd': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case '\0': + return PIDX_LIBSSL_RECORD_LAYER_PARAM_MODE; + } + break; + case 'u': + if (strcmp("le-filename", s + 4) == 0) + return PIDX_PROV_PARAM_CORE_MODULE_FILENAME; + } + } + break; + case 'u': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_SIGNATURE_PARAM_MU; + } + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_M; + } + break; + case 'n': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("me", s + 2) == 0) + return PIDX_STORE_PARAM_ISSUER; + break; + case 'o': + switch(s[2]) { + default: + break; + case '-': + if (strcmp("short-mac", s + 3) == 0) + return PIDX_PROV_PARAM_NO_SHORT_MAC; + break; + case 'n': + switch(s[3]) { + default: + break; + case 'c': + switch(s[4]) { + default: + break; + case 'e': + switch(s[5]) { + default: + break; + case '-': + if (strcmp("type", s + 6) == 0) + return PIDX_SIGNATURE_PARAM_NONCE_TYPE; + break; + case '\0': + return PIDX_KDF_PARAM_HMACDRBG_NONCE; + } + } + } + } + break; + case 'u': + if (strcmp("m", s + 2) == 0) + return PIDX_CIPHER_PARAM_NUM; + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_N; + } + break; + case 'o': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("ep-label", s + 2) == 0) + return PIDX_ASYM_CIPHER_PARAM_OAEP_LABEL; + break; + case 'p': + switch(s[2]) { + default: + break; + case 'e': + switch(s[3]) { + default: + break; + case 'n': + if (strcmp("ssl-version", s + 4) == 0) + return PIDX_PROV_PARAM_CORE_VERSION; + break; + case 'r': + if (strcmp("ation", s + 4) == 0) + return PIDX_KEM_PARAM_OPERATION; + } + break; + case 't': + if (strcmp("ions", s + 3) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_OPTIONS; + } + break; + case 'r': + if (strcmp("der", s + 2) == 0) + return PIDX_PKEY_PARAM_EC_ORDER; + } + break; + case 'p': + switch(s[1]) { + default: + break; + case '1': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_P1; + } + break; + case '2': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_P2; + } + break; + case 'a': + switch(s[2]) { + default: + break; + case 'd': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'm': + if (strcmp("ode", s + 5) == 0) + return PIDX_PKEY_PARAM_PAD_MODE; + break; + case 't': + if (strcmp("ype", s + 5) == 0) + return PIDX_DIGEST_PARAM_PAD_TYPE; + } + break; + case 'd': + if (strcmp("ing", s + 4) == 0) + return PIDX_CIPHER_PARAM_PADDING; + break; + case '\0': + return PIDX_EXCHANGE_PARAM_PAD; + } + break; + case 'r': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case 'y': + switch(s[5]) { + default: + break; + case 'u': + if (strcmp("-info", s + 6) == 0) + return PIDX_KDF_PARAM_X942_PARTYUINFO; + break; + case 'v': + if (strcmp("-info", s + 6) == 0) + return PIDX_KDF_PARAM_X942_PARTYVINFO; + } + } + } + break; + case 's': + if (strcmp("s", s + 3) == 0) + return PIDX_KDF_PARAM_PASSWORD; + } + break; + case 'b': + switch(s[2]) { + default: + break; + case 'i': + if (strcmp("ts", s + 3) == 0) + return PIDX_PKEY_PARAM_FFC_PBITS; + break; + case 'k': + if (strcmp("df2-lower-bound-check", s + 3) == 0) + return PIDX_PROV_PARAM_PBKDF2_LOWER_BOUND_CHECK; + } + break; + case 'c': + if (strcmp("ounter", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_PCOUNTER; + break; + case 'i': + if (strcmp("peline-tag", s + 2) == 0) + return PIDX_CIPHER_PARAM_PIPELINE_AEAD_TAG; + break; + case 'k': + if (strcmp("cs5", s + 2) == 0) + return PIDX_KDF_PARAM_PKCS5; + break; + case 'o': + switch(s[2]) { + default: + break; + case 'i': + if (strcmp("nt-format", s + 3) == 0) + return PIDX_PKEY_PARAM_EC_POINT_CONVERSION_FORMAT; + break; + case 't': + if (strcmp("ential", s + 3) == 0) + return PIDX_GEN_PARAM_POTENTIAL; + } + break; + case 'r': + switch(s[2]) { + default: + break; + case 'e': + switch(s[3]) { + default: + break; + case 'd': + if (strcmp("iction_resistance", s + 4) == 0) + return PIDX_DRBG_PARAM_PREDICTION_RESISTANCE; + break; + case 'f': + if (strcmp("ix", s + 4) == 0) + return PIDX_KDF_PARAM_PREFIX; + } + break; + case 'i': + switch(s[3]) { + default: + break; + case 'm': + if (strcmp("es", s + 4) == 0) + return PIDX_PKEY_PARAM_RSA_PRIMES; + break; + case 'v': + switch(s[4]) { + default: + break; + case '_': + if (strcmp("len", s + 5) == 0) + return PIDX_PKEY_PARAM_DH_PRIV_LEN; + break; + case '\0': + return PIDX_PKEY_PARAM_PRIV_KEY; + } + } + break; + case 'o': + switch(s[3]) { + default: + break; + case 'p': + if (strcmp("erties", s + 4) == 0) + return PIDX_STORE_PARAM_PROPERTIES; + break; + case 'v': + if (strcmp("ider-name", s + 4) == 0) + return PIDX_PROV_PARAM_CORE_PROV_NAME; + } + } + break; + case 'u': + if (strcmp("b", s + 2) == 0) + return PIDX_PKEY_PARAM_PUB_KEY; + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_P; + } + break; + case 'q': + switch(s[1]) { + default: + break; + case '1': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_Q1; + } + break; + case '2': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_Q2; + } + break; + case 'b': + if (strcmp("its", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_QBITS; + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_Q; + break; + case 'x': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_PUB_X; + } + break; + case 'y': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_PUB_Y; + } + } + break; + case 'r': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'n': + switch(s[3]) { + default: + break; + case 'd': + switch(s[4]) { + default: + break; + case 'k': + if (strcmp("ey", s + 5) == 0) + return PIDX_CIPHER_PARAM_RANDOM_KEY; + break; + case 'o': + if (strcmp("m_data", s + 5) == 0) + return PIDX_DRBG_PARAM_RANDOM_DATA; + } + } + break; + case 'w': + if (strcmp("-bytes", s + 3) == 0) + return PIDX_SKEY_PARAM_RAW_BYTES; + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'a': + switch(s[3]) { + default: + break; + case 'd': + switch(s[4]) { + default: + break; + case '_': + switch(s[5]) { + default: + break; + case 'a': + if (strcmp("head", s + 6) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_READ_AHEAD; + break; + case 'b': + if (strcmp("uffer_len", s + 6) == 0) + return PIDX_LIBSSL_RECORD_LAYER_READ_BUFFER_LEN; + } + } + } + break; + case 'f': + if (strcmp("erence", s + 3) == 0) + return PIDX_OBJECT_PARAM_REFERENCE; + break; + case 's': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case 'e': + switch(s[5]) { + default: + break; + case 'd': + switch(s[6]) { + default: + break; + case '_': + switch(s[7]) { + default: + break; + case 'c': + if (strcmp("ounter", s + 8) == 0) + return PIDX_DRBG_PARAM_RESEED_COUNTER; + break; + case 'r': + if (strcmp("equests", s + 8) == 0) + return PIDX_DRBG_PARAM_RESEED_REQUESTS; + break; + case 't': + switch(s[8]) { + default: + break; + case 'i': + switch(s[9]) { + default: + break; + case 'm': + switch(s[10]) { + default: + break; + case 'e': + switch(s[11]) { + default: + break; + case '_': + if (strcmp("interval", s + 12) == 0) + return PIDX_DRBG_PARAM_RESEED_TIME_INTERVAL; + break; + case '\0': + return PIDX_DRBG_PARAM_RESEED_TIME; + } + } + } + } + } + } + } + } + } + } + break; + case 'o': + if (strcmp("unds", s + 2) == 0) + return PIDX_CIPHER_PARAM_ROUNDS; + break; + case 's': + switch(s[2]) { + default: + break; + case 'a': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'c': + switch(s[5]) { + default: + break; + case 'o': + switch(s[6]) { + default: + break; + case 'e': + switch(s[7]) { + default: + break; + case 'f': + switch(s[8]) { + default: + break; + case 'f': + switch(s[9]) { + default: + break; + case 'i': + switch(s[10]) { + default: + break; + case 'c': + switch(s[11]) { + default: + break; + case 'i': + switch(s[12]) { + default: + break; + case 'e': + switch(s[13]) { + default: + break; + case 'n': + switch(s[14]) { + default: + break; + case 't': + switch(s[15]) { + default: + break; + case '1': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT1; + } + break; + case '2': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT2; + } + break; + case '3': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT3; + } + break; + case '4': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT4; + } + break; + case '5': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT5; + } + break; + case '6': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT6; + } + break; + case '7': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT7; + } + break; + case '8': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT8; + } + break; + case '9': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT9; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT; + } + } + } + } + } + } + } + } + } + } + } + break; + case 'd': + if (strcmp("erive-from-pq", s + 5) == 0) + return PIDX_PKEY_PARAM_RSA_DERIVE_FROM_PQ; + break; + case 'e': + switch(s[5]) { + default: + break; + case 'x': + switch(s[6]) { + default: + break; + case 'p': + switch(s[7]) { + default: + break; + case 'o': + switch(s[8]) { + default: + break; + case 'n': + switch(s[9]) { + default: + break; + case 'e': + switch(s[10]) { + default: + break; + case 'n': + switch(s[11]) { + default: + break; + case 't': + switch(s[12]) { + default: + break; + case '1': + switch(s[13]) { + default: + break; + case '0': + switch(s[14]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT10; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT1; + } + break; + case '2': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT2; + } + break; + case '3': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT3; + } + break; + case '4': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT4; + } + break; + case '5': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT5; + } + break; + case '6': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT6; + } + break; + case '7': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT7; + } + break; + case '8': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT8; + } + break; + case '9': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT9; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT; + } + } + } + } + } + } + } + } + break; + case 'f': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case 'c': + switch(s[7]) { + default: + break; + case 't': + switch(s[8]) { + default: + break; + case 'o': + switch(s[9]) { + default: + break; + case 'r': + switch(s[10]) { + default: + break; + case '1': + switch(s[11]) { + default: + break; + case '0': + switch(s[12]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR10; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR1; + } + break; + case '2': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR2; + } + break; + case '3': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR3; + } + break; + case '4': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR4; + } + break; + case '5': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR5; + } + break; + case '6': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR6; + } + break; + case '7': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR7; + } + break; + case '8': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR8; + } + break; + case '9': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR9; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR; + } + } + } + } + } + } + break; + case 'p': + switch(s[5]) { + default: + break; + case 'k': + if (strcmp("cs15-pad-disabled", s + 6) == 0) + return PIDX_PROV_PARAM_RSA_PKCS15_PAD_DISABLED; + break; + case 's': + if (strcmp("s-saltlen-check", s + 6) == 0) + return PIDX_SIGNATURE_PARAM_FIPS_RSA_PSS_SALTLEN_CHECK; + } + break; + case 's': + if (strcmp("ign-x931-pad-disabled", s + 5) == 0) + return PIDX_PROV_PARAM_RSA_SIGN_X931_PAD_DISABLED; + } + } + } + break; + case '\0': + return PIDX_KDF_PARAM_SCRYPT_R; + } + break; + case 's': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'f': + if (strcmp("eprime-generator", s + 3) == 0) + return PIDX_PKEY_PARAM_DH_GENERATOR; + break; + case 'l': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case 'l': + if (strcmp("en", s + 5) == 0) + return PIDX_SIGNATURE_PARAM_PSS_SALTLEN; + break; + case '\0': + return PIDX_MAC_PARAM_SALT; + } + } + break; + case 'v': + if (strcmp("e-parameters", s + 3) == 0) + return PIDX_ENCODER_PARAM_SAVE_PARAMETERS; + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'c': + switch(s[3]) { + default: + break; + case 'r': + if (strcmp("et", s + 4) == 0) + return PIDX_KDF_PARAM_SECRET; + break; + case 'u': + switch(s[4]) { + default: + break; + case 'r': + switch(s[5]) { + default: + break; + case 'i': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case 'y': + switch(s[8]) { + default: + break; + case '-': + switch(s[9]) { + default: + break; + case 'b': + if (strcmp("its", s + 10) == 0) + return PIDX_PKEY_PARAM_SECURITY_BITS; + break; + case 'c': + if (strcmp("hecks", s + 10) == 0) + return PIDX_PROV_PARAM_SECURITY_CHECKS; + } + } + } + } + } + } + } + break; + case 'e': + if (strcmp("d", s + 3) == 0) + return PIDX_PKEY_PARAM_SLH_DSA_SEED; + break; + case 'r': + if (strcmp("ial", s + 3) == 0) + return PIDX_STORE_PARAM_SERIAL; + break; + case 's': + if (strcmp("sion_id", s + 3) == 0) + return PIDX_KDF_PARAM_SSHKDF_SESSION_ID; + } + break; + case 'i': + switch(s[2]) { + default: + break; + case 'g': + switch(s[3]) { + default: + break; + case 'n': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'c': + if (strcmp("heck", s + 6) == 0) + return PIDX_PKEY_PARAM_FIPS_SIGN_CHECK; + break; + case 'x': + if (strcmp("931-pad-check", s + 6) == 0) + return PIDX_SIGNATURE_PARAM_FIPS_SIGN_X931_PAD_CHECK; + } + break; + case 'a': + switch(s[5]) { + default: + break; + case 't': + switch(s[6]) { + default: + break; + case 'u': + switch(s[7]) { + default: + break; + case 'r': + switch(s[8]) { + default: + break; + case 'e': + switch(s[9]) { + default: + break; + case '-': + if (strcmp("digest-check", s + 10) == 0) + return PIDX_PROV_PARAM_SIGNATURE_DIGEST_CHECK; + break; + case '\0': + return PIDX_SIGNATURE_PARAM_SIGNATURE; + } + } + } + } + } + } + } + break; + case 'z': + if (strcmp("e", s + 3) == 0) + return PIDX_MAC_PARAM_SIZE; + } + break; + case 'p': + if (strcmp("eed", s + 2) == 0) + return PIDX_CIPHER_PARAM_SPEED; + break; + case 's': + switch(s[2]) { + default: + break; + case 'h': + switch(s[3]) { + default: + break; + case 'k': + switch(s[4]) { + default: + break; + case 'd': + switch(s[5]) { + default: + break; + case 'f': + switch(s[6]) { + default: + break; + case '-': + switch(s[7]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 8) == 0) + return PIDX_PROV_PARAM_SSHKDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 8) == 0) + return PIDX_PROV_PARAM_SSHKDF_KEY_CHECK; + } + } + } + } + } + break; + case 'k': + switch(s[3]) { + default: + break; + case 'd': + switch(s[4]) { + default: + break; + case 'f': + switch(s[5]) { + default: + break; + case '-': + switch(s[6]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 7) == 0) + return PIDX_PROV_PARAM_SSKDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 7) == 0) + return PIDX_PROV_PARAM_SSKDF_KEY_CHECK; + } + } + } + } + break; + case 'l': + if (strcmp("3-ms", s + 3) == 0) + return PIDX_DIGEST_PARAM_SSL3_MS; + } + break; + case 't': + switch(s[2]) { + default: + break; + case '-': + switch(s[3]) { + default: + break; + case 'd': + if (strcmp("esc", s + 4) == 0) + return PIDX_PROV_PARAM_SELF_TEST_DESC; + break; + case 'p': + if (strcmp("hase", s + 4) == 0) + return PIDX_PROV_PARAM_SELF_TEST_PHASE; + break; + case 't': + if (strcmp("ype", s + 4) == 0) + return PIDX_PROV_PARAM_SELF_TEST_TYPE; + } + break; + case 'a': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case 'e': + switch(s[5]) { + default: + break; + case '\0': + return PIDX_RAND_PARAM_STATE; + } + break; + case 'u': + if (strcmp("s", s + 5) == 0) + return PIDX_PROV_PARAM_STATUS; + } + } + break; + case 'r': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case 'a': + if (strcmp("m_mac", s + 5) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_STREAM_MAC; + break; + case 'n': + if (strcmp("gth", s + 5) == 0) + return PIDX_RAND_PARAM_STRENGTH; + } + } + } + break; + case 'u': + switch(s[2]) { + default: + break; + case 'b': + if (strcmp("ject", s + 3) == 0) + return PIDX_STORE_PARAM_SUBJECT; + break; + case 'p': + switch(s[3]) { + default: + break; + case 'p': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'p': + switch(s[6]) { + default: + break; + case 'r': + if (strcmp("ivinfo", s + 7) == 0) + return PIDX_KDF_PARAM_X942_SUPP_PRIVINFO; + break; + case 'u': + if (strcmp("binfo", s + 7) == 0) + return PIDX_KDF_PARAM_X942_SUPP_PUBINFO; + } + } + } + } + } + } + break; + case 't': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'g': + switch(s[3]) { + default: + break; + case 'l': + if (strcmp("en", s + 4) == 0) + return PIDX_CIPHER_PARAM_AEAD_TAGLEN; + break; + case '\0': + return PIDX_CIPHER_PARAM_AEAD_TAG; + } + } + break; + case 'd': + if (strcmp("es-encrypt-disabled", s + 2) == 0) + return PIDX_PROV_PARAM_TDES_ENCRYPT_DISABLED; + break; + case 'e': + switch(s[2]) { + default: + break; + case 's': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case '-': + if (strcmp("entropy", s + 5) == 0) + return PIDX_SIGNATURE_PARAM_TEST_ENTROPY; + break; + case '_': + switch(s[5]) { + default: + break; + case 'e': + if (strcmp("ntropy", s + 6) == 0) + return PIDX_RAND_PARAM_TEST_ENTROPY; + break; + case 'n': + if (strcmp("once", s + 6) == 0) + return PIDX_RAND_PARAM_TEST_NONCE; + } + } + } + } + break; + case 'h': + if (strcmp("reads", s + 2) == 0) + return PIDX_KDF_PARAM_THREADS; + break; + case 'l': + switch(s[2]) { + default: + break; + case 's': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'c': + if (strcmp("lient-version", s + 5) == 0) + return PIDX_ASYM_CIPHER_PARAM_TLS_CLIENT_VERSION; + break; + case 'd': + if (strcmp("ata-size", s + 5) == 0) + return PIDX_MAC_PARAM_TLS_DATA_SIZE; + break; + case 'g': + switch(s[5]) { + default: + break; + case 'r': + switch(s[6]) { + default: + break; + case 'o': + switch(s[7]) { + default: + break; + case 'u': + switch(s[8]) { + default: + break; + case 'p': + switch(s[9]) { + default: + break; + case '-': + switch(s[10]) { + default: + break; + case 'a': + if (strcmp("lg", s + 11) == 0) + return PIDX_CAPABILITY_TLS_GROUP_ALG; + break; + case 'i': + switch(s[11]) { + default: + break; + case 'd': + switch(s[12]) { + default: + break; + case '\0': + return PIDX_CAPABILITY_TLS_GROUP_ID; + } + break; + case 's': + if (strcmp("-kem", s + 12) == 0) + return PIDX_CAPABILITY_TLS_GROUP_IS_KEM; + } + break; + case 'n': + switch(s[11]) { + default: + break; + case 'a': + switch(s[12]) { + default: + break; + case 'm': + switch(s[13]) { + default: + break; + case 'e': + switch(s[14]) { + default: + break; + case '-': + if (strcmp("internal", s + 15) == 0) + return PIDX_CAPABILITY_TLS_GROUP_NAME_INTERNAL; + break; + case '\0': + return PIDX_CAPABILITY_TLS_GROUP_NAME; + } + } + } + } + break; + case 's': + if (strcmp("ec-bits", s + 11) == 0) + return PIDX_CAPABILITY_TLS_GROUP_SECURITY_BITS; + } + } + } + } + } + } + break; + case 'm': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case 'c': + switch(s[7]) { + default: + break; + case '-': + if (strcmp("size", s + 8) == 0) + return PIDX_CIPHER_PARAM_TLS_MAC_SIZE; + break; + case '\0': + return PIDX_CIPHER_PARAM_TLS_MAC; + } + break; + case 'x': + switch(s[7]) { + default: + break; + case '-': + switch(s[8]) { + default: + break; + case 'd': + if (strcmp("tls", s + 9) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_MAX_DTLS; + break; + case 't': + if (strcmp("ls", s + 9) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_MAX_TLS; + } + } + } + break; + case 'i': + switch(s[6]) { + default: + break; + case 'n': + switch(s[7]) { + default: + break; + case '-': + switch(s[8]) { + default: + break; + case 'd': + if (strcmp("tls", s + 9) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_MIN_DTLS; + break; + case 't': + if (strcmp("ls", s + 9) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_MIN_TLS; + } + } + } + break; + case 'u': + if (strcmp("lti", s + 6) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK; + } + break; + case 'n': + if (strcmp("egotiated-version", s + 5) == 0) + return PIDX_ASYM_CIPHER_PARAM_TLS_NEGOTIATED_VERSION; + break; + case 's': + switch(s[5]) { + default: + break; + case 'i': + switch(s[6]) { + default: + break; + case 'g': + switch(s[7]) { + default: + break; + case 'a': + switch(s[8]) { + default: + break; + case 'l': + switch(s[9]) { + default: + break; + case 'g': + switch(s[10]) { + default: + break; + case '-': + switch(s[11]) { + default: + break; + case 'c': + if (strcmp("ode-point", s + 12) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_CODE_POINT; + break; + case 'h': + switch(s[12]) { + default: + break; + case 'a': + switch(s[13]) { + default: + break; + case 's': + switch(s[14]) { + default: + break; + case 'h': + switch(s[15]) { + default: + break; + case '-': + switch(s[16]) { + default: + break; + case 'n': + if (strcmp("ame", s + 17) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_HASH_NAME; + break; + case 'o': + if (strcmp("id", s + 17) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_HASH_OID; + } + } + } + } + } + break; + case 'i': + if (strcmp("ana-name", s + 12) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_IANA_NAME; + break; + case 'k': + switch(s[12]) { + default: + break; + case 'e': + switch(s[13]) { + default: + break; + case 'y': + switch(s[14]) { + default: + break; + case 't': + switch(s[15]) { + default: + break; + case 'y': + switch(s[16]) { + default: + break; + case 'p': + switch(s[17]) { + default: + break; + case 'e': + switch(s[18]) { + default: + break; + case '-': + if (strcmp("oid", s + 19) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_KEYTYPE_OID; + break; + case '\0': + return PIDX_CAPABILITY_TLS_SIGALG_KEYTYPE; + } + } + } + } + } + } + } + break; + case 'n': + if (strcmp("ame", s + 12) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_NAME; + break; + case 'o': + if (strcmp("id", s + 12) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_OID; + break; + case 's': + switch(s[12]) { + default: + break; + case 'e': + if (strcmp("c-bits", s + 13) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_SECURITY_BITS; + break; + case 'i': + switch(s[13]) { + default: + break; + case 'g': + switch(s[14]) { + default: + break; + case '-': + switch(s[15]) { + default: + break; + case 'n': + if (strcmp("ame", s + 16) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_SIG_NAME; + break; + case 'o': + if (strcmp("id", s + 16) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_SIG_OID; + } + } + } + } + } + } + } + } + } + } + } + break; + case 'v': + if (strcmp("ersion", s + 5) == 0) + return PIDX_CIPHER_PARAM_TLS_VERSION; + } + break; + case '1': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'p': + switch(s[6]) { + default: + break; + case 'r': + switch(s[7]) { + default: + break; + case 'f': + switch(s[8]) { + default: + break; + case '-': + switch(s[9]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 10) == 0) + return PIDX_PROV_PARAM_TLS1_PRF_DIGEST_CHECK; + break; + case 'e': + if (strcmp("ms-check", s + 10) == 0) + return PIDX_PROV_PARAM_TLS1_PRF_EMS_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 10) == 0) + return PIDX_PROV_PARAM_TLS1_PRF_KEY_CHECK; + } + } + } + } + } + break; + case '3': + switch(s[5]) { + default: + break; + case '-': + switch(s[6]) { + default: + break; + case 'k': + switch(s[7]) { + default: + break; + case 'd': + switch(s[8]) { + default: + break; + case 'f': + switch(s[9]) { + default: + break; + case '-': + switch(s[10]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 11) == 0) + return PIDX_PROV_PARAM_TLS13_KDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 11) == 0) + return PIDX_PROV_PARAM_TLS13_KDF_KEY_CHECK; + } + } + } + } + } + } + break; + case 'm': + switch(s[5]) { + default: + break; + case 'u': + switch(s[6]) { + default: + break; + case 'l': + switch(s[7]) { + default: + break; + case 't': + switch(s[8]) { + default: + break; + case 'i': + switch(s[9]) { + default: + break; + case '_': + switch(s[10]) { + default: + break; + case 'a': + switch(s[11]) { + default: + break; + case 'a': + switch(s[12]) { + default: + break; + case 'd': + switch(s[13]) { + default: + break; + case 'p': + if (strcmp("acklen", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD_PACKLEN; + break; + case '\0': + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD; + } + } + } + break; + case 'e': + switch(s[11]) { + default: + break; + case 'n': + switch(s[12]) { + default: + break; + case 'c': + switch(s[13]) { + default: + break; + case 'i': + if (strcmp("n", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_IN; + break; + case 'l': + if (strcmp("en", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_LEN; + break; + case '\0': + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC; + } + } + } + break; + case 'i': + if (strcmp("nterleave", s + 11) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_INTERLEAVE; + break; + case 'm': + switch(s[11]) { + default: + break; + case 'a': + switch(s[12]) { + default: + break; + case 'x': + switch(s[13]) { + default: + break; + case 'b': + if (strcmp("ufsz", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_BUFSIZE; + break; + case 's': + if (strcmp("ndfrag", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_SEND_FRAGMENT; + } + } + } + } + } + } + } + } + } + } + break; + case 'a': + switch(s[4]) { + default: + break; + case 'a': + switch(s[5]) { + default: + break; + case 'd': + switch(s[6]) { + default: + break; + case 'p': + if (strcmp("ad", s + 7) == 0) + return PIDX_CIPHER_PARAM_AEAD_TLS1_AAD_PAD; + break; + case '\0': + return PIDX_CIPHER_PARAM_AEAD_TLS1_AAD; + } + } + } + break; + case 'i': + switch(s[4]) { + default: + break; + case 'v': + switch(s[5]) { + default: + break; + case 'f': + if (strcmp("ixed", s + 6) == 0) + return PIDX_CIPHER_PARAM_AEAD_TLS1_IV_FIXED; + break; + case 'g': + if (strcmp("en", s + 6) == 0) + return PIDX_CIPHER_PARAM_AEAD_TLS1_GET_IV_GEN; + break; + case 'i': + if (strcmp("nv", s + 6) == 0) + return PIDX_CIPHER_PARAM_AEAD_TLS1_SET_IV_INV; + } + } + break; + case 't': + if (strcmp("ree", s + 4) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_TLSTREE; + } + } + break; + case 'p': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_TP_BASIS; + } + break; + case 'y': + if (strcmp("pe", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_TYPE; + } + break; + case 'u': + switch(s[1]) { + default: + break; + case 'k': + if (strcmp("m", s + 2) == 0) + return PIDX_KDF_PARAM_UKM; + break; + case 'p': + if (strcmp("dated-iv", s + 2) == 0) + return PIDX_CIPHER_PARAM_UPDATED_IV; + break; + case 's': + switch(s[2]) { + default: + break; + case 'e': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'b': + if (strcmp("its", s + 5) == 0) + return PIDX_CIPHER_PARAM_USE_BITS; + break; + case 'c': + if (strcmp("ofactor-flag", s + 5) == 0) + return PIDX_PKEY_PARAM_USE_COFACTOR_FLAG; + break; + case 'k': + if (strcmp("eybits", s + 5) == 0) + return PIDX_KDF_PARAM_X942_USE_KEYBITS; + break; + case 'l': + switch(s[5]) { + default: + break; + case '\0': + return PIDX_KDF_PARAM_KBKDF_USE_L; + } + break; + case 's': + if (strcmp("eparator", s + 5) == 0) + return PIDX_KDF_PARAM_KBKDF_USE_SEPARATOR; + } + break; + case '_': + switch(s[4]) { + default: + break; + case 'd': + if (strcmp("erivation_function", s + 5) == 0) + return PIDX_DRBG_PARAM_USE_DF; + break; + case 'e': + if (strcmp("tm", s + 5) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_USE_ETM; + } + } + } + } + break; + case 'v': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'l': + switch(s[3]) { + default: + break; + case 'i': + switch(s[4]) { + default: + break; + case 'd': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case 'e': + switch(s[8]) { + default: + break; + case '-': + switch(s[9]) { + default: + break; + case 'g': + switch(s[10]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_VALIDATE_G; + } + break; + case 'l': + if (strcmp("egacy", s + 10) == 0) + return PIDX_PKEY_PARAM_FFC_VALIDATE_LEGACY; + break; + case 'p': + if (strcmp("q", s + 10) == 0) + return PIDX_PKEY_PARAM_FFC_VALIDATE_PQ; + } + } + } + } + } + } + } + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'r': + switch(s[3]) { + default: + break; + case 'i': + if (strcmp("fy-message", s + 4) == 0) + return PIDX_SIGNATURE_PARAM_FIPS_VERIFY_MESSAGE; + break; + case 's': + if (strcmp("ion", s + 4) == 0) + return PIDX_PROV_PARAM_VERSION; + } + } + } + break; + case 'x': + switch(s[1]) { + default: + break; + case '9': + switch(s[2]) { + default: + break; + case '4': + if (strcmp("2kdf-key-check", s + 3) == 0) + return PIDX_PROV_PARAM_X942KDF_KEY_CHECK; + break; + case '6': + switch(s[3]) { + default: + break; + case '3': + switch(s[4]) { + default: + break; + case 'k': + switch(s[5]) { + default: + break; + case 'd': + switch(s[6]) { + default: + break; + case 'f': + switch(s[7]) { + default: + break; + case '-': + switch(s[8]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 9) == 0) + return PIDX_PROV_PARAM_X963KDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 9) == 0) + return PIDX_PROV_PARAM_X963KDF_KEY_CHECK; + } + } + } + } + } + } + } + break; + case 'c': + if (strcmp("ghash", s + 2) == 0) + return PIDX_KDF_PARAM_SSHKDF_XCGHASH; + break; + case 'o': + switch(s[2]) { + default: + break; + case 'f': + switch(s[3]) { + default: + break; + case 'l': + if (strcmp("en", s + 4) == 0) + return PIDX_DIGEST_PARAM_XOFLEN; + break; + case '\0': + return PIDX_MAC_PARAM_XOF; + } + } + break; + case 'p': + switch(s[2]) { + default: + break; + case '1': + switch(s[3]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XP1; + } + break; + case '2': + switch(s[3]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XP2; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XP; + } + break; + case 'q': + switch(s[2]) { + default: + break; + case '1': + switch(s[3]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XQ1; + } + break; + case '2': + switch(s[3]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XQ2; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XQ; + } + break; + case 't': + if (strcmp("s_standard", s + 2) == 0) + return PIDX_CIPHER_PARAM_XTS_STANDARD; + } + } + return -1; +} + +/* End of TRIE */ diff --git a/deps/openssl/config/archs/linux-elf/asm/crypto/poly1305/poly1305-x86.S b/deps/openssl/config/archs/linux-elf/asm/crypto/poly1305/poly1305-x86.S index f95649faed3710..1449728032fc35 100644 --- a/deps/openssl/config/archs/linux-elf/asm/crypto/poly1305/poly1305-x86.S +++ b/deps/openssl/config/archs/linux-elf/asm/crypto/poly1305/poly1305-x86.S @@ -1947,7 +1947,7 @@ _poly1305_blocks_avx2: .byte 60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111 .byte 114,103,62,0 .align 4 -.comm OPENSSL_ia32cap_P,16,4 +.comm OPENSSL_ia32cap_P,40,4 .section ".note.gnu.property", "a" .p2align 2 diff --git a/deps/openssl/config/archs/linux-elf/asm/crypto/rc4/rc4-586.S b/deps/openssl/config/archs/linux-elf/asm/crypto/rc4/rc4-586.S index da909a31e73010..5850f1527e7fb0 100644 --- a/deps/openssl/config/archs/linux-elf/asm/crypto/rc4/rc4-586.S +++ b/deps/openssl/config/archs/linux-elf/asm/crypto/rc4/rc4-586.S @@ -392,7 +392,7 @@ RC4_options: .byte 111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 .align 64 .size RC4_options,.-.L_RC4_options_begin -.comm OPENSSL_ia32cap_P,16,4 +.comm OPENSSL_ia32cap_P,40,4 .section ".note.gnu.property", "a" .p2align 2 diff --git a/deps/openssl/config/archs/linux-elf/asm/crypto/sha/sha1-586.S b/deps/openssl/config/archs/linux-elf/asm/crypto/sha/sha1-586.S index ddc85b3d82df65..bd0e99fc527b82 100644 --- a/deps/openssl/config/archs/linux-elf/asm/crypto/sha/sha1-586.S +++ b/deps/openssl/config/archs/linux-elf/asm/crypto/sha/sha1-586.S @@ -3986,7 +3986,7 @@ _sha1_block_data_order_avx: .byte 102,111,114,109,32,102,111,114,32,120,56,54,44,32,67,82 .byte 89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112 .byte 114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 -.comm OPENSSL_ia32cap_P,16,4 +.comm OPENSSL_ia32cap_P,40,4 .section ".note.gnu.property", "a" .p2align 2 diff --git a/deps/openssl/config/archs/linux-elf/asm/crypto/sha/sha256-586.S b/deps/openssl/config/archs/linux-elf/asm/crypto/sha/sha256-586.S index 9436ca5e1d8c92..738fc8e65772f8 100644 --- a/deps/openssl/config/archs/linux-elf/asm/crypto/sha/sha256-586.S +++ b/deps/openssl/config/archs/linux-elf/asm/crypto/sha/sha256-586.S @@ -6784,7 +6784,7 @@ sha256_block_data_order: popl %ebp ret .size sha256_block_data_order,.-.L_sha256_block_data_order_begin -.comm OPENSSL_ia32cap_P,16,4 +.comm OPENSSL_ia32cap_P,40,4 .section ".note.gnu.property", "a" .p2align 2 diff --git a/deps/openssl/config/archs/linux-elf/asm/crypto/sha/sha512-586.S b/deps/openssl/config/archs/linux-elf/asm/crypto/sha/sha512-586.S index c7cf815b4e052e..b0558cd5ae24ca 100644 --- a/deps/openssl/config/archs/linux-elf/asm/crypto/sha/sha512-586.S +++ b/deps/openssl/config/archs/linux-elf/asm/crypto/sha/sha512-586.S @@ -2830,7 +2830,7 @@ sha512_block_data_order: .byte 67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97 .byte 112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103 .byte 62,0 -.comm OPENSSL_ia32cap_P,16,4 +.comm OPENSSL_ia32cap_P,40,4 .section ".note.gnu.property", "a" .p2align 2 diff --git a/deps/openssl/config/archs/linux-elf/asm/crypto/x86cpuid.S b/deps/openssl/config/archs/linux-elf/asm/crypto/x86cpuid.S index eedacacfea8676..84e58cbdd18a00 100644 --- a/deps/openssl/config/archs/linux-elf/asm/crypto/x86cpuid.S +++ b/deps/openssl/config/archs/linux-elf/asm/crypto/x86cpuid.S @@ -122,6 +122,24 @@ OPENSSL_ia32_cpuid: xorl %ecx,%ecx .byte 0x0f,0xa2 movl %ebx,8(%edi) + movl %ecx,12(%edi) + movl %edx,16(%edi) + cmpl $1,%eax + jb .L005no_extended_info + movl $7,%eax + movl $1,%ecx + .byte 0x0f,0xa2 + movl %eax,20(%edi) + movl %edx,24(%edi) + movl %ebx,28(%edi) + movl %ecx,32(%edi) + andl $524288,%edx + cmpl $0,%edx + je .L005no_extended_info + movl $36,%eax + movl $0,%ecx + .byte 0x0f,0xa2 + movl %ebx,36(%edi) .L005no_extended_info: btl $27,%ebp jnc .L006clear_avx @@ -137,6 +155,7 @@ OPENSSL_ia32_cpuid: andl $4278190079,%esi .L006clear_avx: andl $4026525695,%ebp + andl $4286578687,20(%edi) andl $4294967263,8(%edi) .L007done: movl %esi,%eax @@ -592,7 +611,7 @@ OPENSSL_ia32_rdseed_bytes: .size OPENSSL_ia32_rdseed_bytes,.-.L_OPENSSL_ia32_rdseed_bytes_begin .hidden OPENSSL_cpuid_setup .hidden OPENSSL_ia32cap_P -.comm OPENSSL_ia32cap_P,16,4 +.comm OPENSSL_ia32cap_P,40,4 .section .init call OPENSSL_cpuid_setup diff --git a/deps/openssl/config/archs/linux-elf/asm/include/internal/param_names.h b/deps/openssl/config/archs/linux-elf/asm/include/internal/param_names.h new file mode 100644 index 00000000000000..0a0404a57e82b9 --- /dev/null +++ b/deps/openssl/config/archs/linux-elf/asm/include/internal/param_names.h @@ -0,0 +1,469 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from include/internal/param_names.h.in + * + * Copyright 2023 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + +int ossl_param_find_pidx(const char *s); + +/* Parameter name definitions - generated by util/perl/OpenSSL/paramnames.pm */ +#define NUM_PIDX 346 + +#define PIDX_ALG_PARAM_ALGORITHM_ID 0 +#define PIDX_ALG_PARAM_ALGORITHM_ID_PARAMS 1 +#define PIDX_ALG_PARAM_CIPHER 2 +#define PIDX_ALG_PARAM_DIGEST 3 +#define PIDX_ALG_PARAM_ENGINE 4 +#define PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR 5 +#define PIDX_ALG_PARAM_MAC 6 +#define PIDX_ALG_PARAM_PROPERTIES 7 +#define PIDX_ASYM_CIPHER_PARAM_DIGEST PIDX_PKEY_PARAM_DIGEST +#define PIDX_ASYM_CIPHER_PARAM_ENGINE PIDX_PKEY_PARAM_ENGINE +#define PIDX_ASYM_CIPHER_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_ASYM_CIPHER_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_ASYM_CIPHER_PARAM_FIPS_RSA_PKCS15_PAD_DISABLED PIDX_PROV_PARAM_RSA_PKCS15_PAD_DISABLED +#define PIDX_ASYM_CIPHER_PARAM_IMPLICIT_REJECTION 8 +#define PIDX_ASYM_CIPHER_PARAM_MGF1_DIGEST PIDX_PKEY_PARAM_MGF1_DIGEST +#define PIDX_ASYM_CIPHER_PARAM_MGF1_DIGEST_PROPS PIDX_PKEY_PARAM_MGF1_PROPERTIES +#define PIDX_ASYM_CIPHER_PARAM_OAEP_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_ASYM_CIPHER_PARAM_OAEP_DIGEST_PROPS 9 +#define PIDX_ASYM_CIPHER_PARAM_OAEP_LABEL 10 +#define PIDX_ASYM_CIPHER_PARAM_PAD_MODE PIDX_PKEY_PARAM_PAD_MODE +#define PIDX_ASYM_CIPHER_PARAM_PROPERTIES PIDX_PKEY_PARAM_PROPERTIES +#define PIDX_ASYM_CIPHER_PARAM_TLS_CLIENT_VERSION 11 +#define PIDX_ASYM_CIPHER_PARAM_TLS_NEGOTIATED_VERSION 12 +#define PIDX_CAPABILITY_TLS_GROUP_ALG 13 +#define PIDX_CAPABILITY_TLS_GROUP_ID 14 +#define PIDX_CAPABILITY_TLS_GROUP_IS_KEM 15 +#define PIDX_CAPABILITY_TLS_GROUP_MAX_DTLS 16 +#define PIDX_CAPABILITY_TLS_GROUP_MAX_TLS 17 +#define PIDX_CAPABILITY_TLS_GROUP_MIN_DTLS 18 +#define PIDX_CAPABILITY_TLS_GROUP_MIN_TLS 19 +#define PIDX_CAPABILITY_TLS_GROUP_NAME 20 +#define PIDX_CAPABILITY_TLS_GROUP_NAME_INTERNAL 21 +#define PIDX_CAPABILITY_TLS_GROUP_SECURITY_BITS 22 +#define PIDX_CAPABILITY_TLS_SIGALG_CODE_POINT 23 +#define PIDX_CAPABILITY_TLS_SIGALG_HASH_NAME 24 +#define PIDX_CAPABILITY_TLS_SIGALG_HASH_OID 25 +#define PIDX_CAPABILITY_TLS_SIGALG_IANA_NAME 26 +#define PIDX_CAPABILITY_TLS_SIGALG_KEYTYPE 27 +#define PIDX_CAPABILITY_TLS_SIGALG_KEYTYPE_OID 28 +#define PIDX_CAPABILITY_TLS_SIGALG_MAX_DTLS 16 +#define PIDX_CAPABILITY_TLS_SIGALG_MAX_TLS 17 +#define PIDX_CAPABILITY_TLS_SIGALG_MIN_DTLS 18 +#define PIDX_CAPABILITY_TLS_SIGALG_MIN_TLS 19 +#define PIDX_CAPABILITY_TLS_SIGALG_NAME 29 +#define PIDX_CAPABILITY_TLS_SIGALG_OID 30 +#define PIDX_CAPABILITY_TLS_SIGALG_SECURITY_BITS 31 +#define PIDX_CAPABILITY_TLS_SIGALG_SIG_NAME 32 +#define PIDX_CAPABILITY_TLS_SIGALG_SIG_OID 33 +#define PIDX_CIPHER_PARAM_AEAD 34 +#define PIDX_CIPHER_PARAM_AEAD_IVLEN PIDX_CIPHER_PARAM_IVLEN +#define PIDX_CIPHER_PARAM_AEAD_IV_GENERATED 35 +#define PIDX_CIPHER_PARAM_AEAD_MAC_KEY 36 +#define PIDX_CIPHER_PARAM_AEAD_TAG 37 +#define PIDX_CIPHER_PARAM_AEAD_TAGLEN 38 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_AAD 39 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_AAD_PAD 40 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_GET_IV_GEN 41 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_IV_FIXED 42 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_SET_IV_INV 43 +#define PIDX_CIPHER_PARAM_ALGORITHM_ID PIDX_ALG_PARAM_ALGORITHM_ID +#define PIDX_CIPHER_PARAM_ALGORITHM_ID_PARAMS PIDX_ALG_PARAM_ALGORITHM_ID_PARAMS +#define PIDX_CIPHER_PARAM_ALGORITHM_ID_PARAMS_OLD 44 +#define PIDX_CIPHER_PARAM_BLOCK_SIZE 45 +#define PIDX_CIPHER_PARAM_CTS 46 +#define PIDX_CIPHER_PARAM_CTS_MODE 47 +#define PIDX_CIPHER_PARAM_CUSTOM_IV 48 +#define PIDX_CIPHER_PARAM_DECRYPT_ONLY 49 +#define PIDX_CIPHER_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_CIPHER_PARAM_FIPS_ENCRYPT_CHECK 50 +#define PIDX_CIPHER_PARAM_HAS_RAND_KEY 51 +#define PIDX_CIPHER_PARAM_IV 52 +#define PIDX_CIPHER_PARAM_IVLEN 53 +#define PIDX_CIPHER_PARAM_KEYLEN 54 +#define PIDX_CIPHER_PARAM_MODE 55 +#define PIDX_CIPHER_PARAM_NUM 56 +#define PIDX_CIPHER_PARAM_PADDING 57 +#define PIDX_CIPHER_PARAM_PIPELINE_AEAD_TAG 58 +#define PIDX_CIPHER_PARAM_RANDOM_KEY 59 +#define PIDX_CIPHER_PARAM_RC2_KEYBITS 60 +#define PIDX_CIPHER_PARAM_ROUNDS 61 +#define PIDX_CIPHER_PARAM_SPEED 62 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK 63 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD 64 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD_PACKLEN 65 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC 66 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_IN 67 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_LEN 68 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_INTERLEAVE 69 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_BUFSIZE 70 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_SEND_FRAGMENT 71 +#define PIDX_CIPHER_PARAM_TLS_MAC 72 +#define PIDX_CIPHER_PARAM_TLS_MAC_SIZE 73 +#define PIDX_CIPHER_PARAM_TLS_VERSION 74 +#define PIDX_CIPHER_PARAM_UPDATED_IV 75 +#define PIDX_CIPHER_PARAM_USE_BITS 76 +#define PIDX_CIPHER_PARAM_XTS_STANDARD 77 +#define PIDX_DECODER_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_DIGEST_PARAM_ALGID_ABSENT 78 +#define PIDX_DIGEST_PARAM_BLOCK_SIZE 45 +#define PIDX_DIGEST_PARAM_MICALG 79 +#define PIDX_DIGEST_PARAM_PAD_TYPE 80 +#define PIDX_DIGEST_PARAM_SIZE 81 +#define PIDX_DIGEST_PARAM_SSL3_MS 82 +#define PIDX_DIGEST_PARAM_XOF 83 +#define PIDX_DIGEST_PARAM_XOFLEN 84 +#define PIDX_DRBG_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_DRBG_PARAM_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_DRBG_PARAM_ENTROPY_REQUIRED 85 +#define PIDX_DRBG_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_DRBG_PARAM_FIPS_DIGEST_CHECK PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK +#define PIDX_DRBG_PARAM_MAC PIDX_ALG_PARAM_MAC +#define PIDX_DRBG_PARAM_MAX_ADINLEN 86 +#define PIDX_DRBG_PARAM_MAX_ENTROPYLEN 87 +#define PIDX_DRBG_PARAM_MAX_LENGTH 88 +#define PIDX_DRBG_PARAM_MAX_NONCELEN 89 +#define PIDX_DRBG_PARAM_MAX_PERSLEN 90 +#define PIDX_DRBG_PARAM_MIN_ENTROPYLEN 91 +#define PIDX_DRBG_PARAM_MIN_LENGTH 92 +#define PIDX_DRBG_PARAM_MIN_NONCELEN 93 +#define PIDX_DRBG_PARAM_PREDICTION_RESISTANCE 94 +#define PIDX_DRBG_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_DRBG_PARAM_RANDOM_DATA 95 +#define PIDX_DRBG_PARAM_RESEED_COUNTER 96 +#define PIDX_DRBG_PARAM_RESEED_REQUESTS 97 +#define PIDX_DRBG_PARAM_RESEED_TIME 98 +#define PIDX_DRBG_PARAM_RESEED_TIME_INTERVAL 99 +#define PIDX_DRBG_PARAM_SIZE 81 +#define PIDX_DRBG_PARAM_USE_DF 100 +#define PIDX_ENCODER_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_ENCODER_PARAM_ENCRYPT_LEVEL 101 +#define PIDX_ENCODER_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_ENCODER_PARAM_SAVE_PARAMETERS 102 +#define PIDX_EXCHANGE_PARAM_EC_ECDH_COFACTOR_MODE 103 +#define PIDX_EXCHANGE_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_EXCHANGE_PARAM_FIPS_DIGEST_CHECK PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK +#define PIDX_EXCHANGE_PARAM_FIPS_ECDH_COFACTOR_CHECK PIDX_PROV_PARAM_ECDH_COFACTOR_CHECK +#define PIDX_EXCHANGE_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_EXCHANGE_PARAM_KDF_DIGEST 104 +#define PIDX_EXCHANGE_PARAM_KDF_DIGEST_PROPS 105 +#define PIDX_EXCHANGE_PARAM_KDF_OUTLEN 106 +#define PIDX_EXCHANGE_PARAM_KDF_TYPE 107 +#define PIDX_EXCHANGE_PARAM_KDF_UKM 108 +#define PIDX_EXCHANGE_PARAM_PAD 109 +#define PIDX_GEN_PARAM_ITERATION 110 +#define PIDX_GEN_PARAM_POTENTIAL 111 +#define PIDX_KDF_PARAM_ARGON2_AD 112 +#define PIDX_KDF_PARAM_ARGON2_LANES 113 +#define PIDX_KDF_PARAM_ARGON2_MEMCOST 114 +#define PIDX_KDF_PARAM_ARGON2_VERSION 115 +#define PIDX_KDF_PARAM_CEK_ALG 116 +#define PIDX_KDF_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_KDF_PARAM_CONSTANT 117 +#define PIDX_KDF_PARAM_DATA 118 +#define PIDX_KDF_PARAM_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_KDF_PARAM_EARLY_CLEAN 119 +#define PIDX_KDF_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_KDF_PARAM_FIPS_DIGEST_CHECK PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK +#define PIDX_KDF_PARAM_FIPS_EMS_CHECK 120 +#define PIDX_KDF_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_KDF_PARAM_HMACDRBG_ENTROPY 121 +#define PIDX_KDF_PARAM_HMACDRBG_NONCE 122 +#define PIDX_KDF_PARAM_INFO 123 +#define PIDX_KDF_PARAM_ITER 124 +#define PIDX_KDF_PARAM_KBKDF_R 125 +#define PIDX_KDF_PARAM_KBKDF_USE_L 126 +#define PIDX_KDF_PARAM_KBKDF_USE_SEPARATOR 127 +#define PIDX_KDF_PARAM_KEY 128 +#define PIDX_KDF_PARAM_LABEL 129 +#define PIDX_KDF_PARAM_MAC PIDX_ALG_PARAM_MAC +#define PIDX_KDF_PARAM_MAC_SIZE 130 +#define PIDX_KDF_PARAM_MODE 55 +#define PIDX_KDF_PARAM_PASSWORD 131 +#define PIDX_KDF_PARAM_PKCS12_ID 132 +#define PIDX_KDF_PARAM_PKCS5 133 +#define PIDX_KDF_PARAM_PREFIX 134 +#define PIDX_KDF_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_KDF_PARAM_SALT 135 +#define PIDX_KDF_PARAM_SCRYPT_MAXMEM 136 +#define PIDX_KDF_PARAM_SCRYPT_N 137 +#define PIDX_KDF_PARAM_SCRYPT_P 138 +#define PIDX_KDF_PARAM_SCRYPT_R 125 +#define PIDX_KDF_PARAM_SECRET 139 +#define PIDX_KDF_PARAM_SEED 140 +#define PIDX_KDF_PARAM_SIZE 81 +#define PIDX_KDF_PARAM_SSHKDF_SESSION_ID 141 +#define PIDX_KDF_PARAM_SSHKDF_TYPE 142 +#define PIDX_KDF_PARAM_SSHKDF_XCGHASH 143 +#define PIDX_KDF_PARAM_THREADS 144 +#define PIDX_KDF_PARAM_UKM 145 +#define PIDX_KDF_PARAM_X942_ACVPINFO 146 +#define PIDX_KDF_PARAM_X942_PARTYUINFO 147 +#define PIDX_KDF_PARAM_X942_PARTYVINFO 148 +#define PIDX_KDF_PARAM_X942_SUPP_PRIVINFO 149 +#define PIDX_KDF_PARAM_X942_SUPP_PUBINFO 150 +#define PIDX_KDF_PARAM_X942_USE_KEYBITS 151 +#define PIDX_KEM_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_KEM_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_KEM_PARAM_IKME 152 +#define PIDX_KEM_PARAM_OPERATION 153 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_BLOCK_PADDING 154 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_HS_PADDING 155 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_MAX_EARLY_DATA 156 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_MAX_FRAG_LEN 157 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_MODE 55 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_OPTIONS 158 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_READ_AHEAD 159 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_STREAM_MAC 160 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_TLSTREE 161 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_USE_ETM 162 +#define PIDX_LIBSSL_RECORD_LAYER_READ_BUFFER_LEN 163 +#define PIDX_MAC_PARAM_BLOCK_SIZE 164 +#define PIDX_MAC_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_MAC_PARAM_CUSTOM 165 +#define PIDX_MAC_PARAM_C_ROUNDS 166 +#define PIDX_MAC_PARAM_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_MAC_PARAM_DIGEST_NOINIT 167 +#define PIDX_MAC_PARAM_DIGEST_ONESHOT 168 +#define PIDX_MAC_PARAM_D_ROUNDS 169 +#define PIDX_MAC_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_MAC_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_MAC_PARAM_FIPS_NO_SHORT_MAC PIDX_PROV_PARAM_NO_SHORT_MAC +#define PIDX_MAC_PARAM_IV 52 +#define PIDX_MAC_PARAM_KEY 128 +#define PIDX_MAC_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_MAC_PARAM_SALT 135 +#define PIDX_MAC_PARAM_SIZE 81 +#define PIDX_MAC_PARAM_TLS_DATA_SIZE 170 +#define PIDX_MAC_PARAM_XOF 83 +#define PIDX_OBJECT_PARAM_DATA 118 +#define PIDX_OBJECT_PARAM_DATA_STRUCTURE 171 +#define PIDX_OBJECT_PARAM_DATA_TYPE 172 +#define PIDX_OBJECT_PARAM_DESC 173 +#define PIDX_OBJECT_PARAM_INPUT_TYPE 174 +#define PIDX_OBJECT_PARAM_REFERENCE 175 +#define PIDX_OBJECT_PARAM_TYPE 142 +#define PIDX_PASSPHRASE_PARAM_INFO 123 +#define PIDX_PKEY_PARAM_ALGORITHM_ID PIDX_ALG_PARAM_ALGORITHM_ID +#define PIDX_PKEY_PARAM_ALGORITHM_ID_PARAMS PIDX_ALG_PARAM_ALGORITHM_ID_PARAMS +#define PIDX_PKEY_PARAM_BITS 176 +#define PIDX_PKEY_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_PKEY_PARAM_DEFAULT_DIGEST 177 +#define PIDX_PKEY_PARAM_DHKEM_IKM 178 +#define PIDX_PKEY_PARAM_DH_GENERATOR 179 +#define PIDX_PKEY_PARAM_DH_PRIV_LEN 180 +#define PIDX_PKEY_PARAM_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_PKEY_PARAM_DIGEST_SIZE 181 +#define PIDX_PKEY_PARAM_DIST_ID 182 +#define PIDX_PKEY_PARAM_EC_A 183 +#define PIDX_PKEY_PARAM_EC_B 184 +#define PIDX_PKEY_PARAM_EC_CHAR2_M 185 +#define PIDX_PKEY_PARAM_EC_CHAR2_PP_K1 186 +#define PIDX_PKEY_PARAM_EC_CHAR2_PP_K2 187 +#define PIDX_PKEY_PARAM_EC_CHAR2_PP_K3 188 +#define PIDX_PKEY_PARAM_EC_CHAR2_TP_BASIS 189 +#define PIDX_PKEY_PARAM_EC_CHAR2_TYPE 190 +#define PIDX_PKEY_PARAM_EC_COFACTOR 191 +#define PIDX_PKEY_PARAM_EC_DECODED_FROM_EXPLICIT_PARAMS 192 +#define PIDX_PKEY_PARAM_EC_ENCODING 193 +#define PIDX_PKEY_PARAM_EC_FIELD_TYPE 194 +#define PIDX_PKEY_PARAM_EC_GENERATOR 195 +#define PIDX_PKEY_PARAM_EC_GROUP_CHECK_TYPE 196 +#define PIDX_PKEY_PARAM_EC_INCLUDE_PUBLIC 197 +#define PIDX_PKEY_PARAM_EC_ORDER 198 +#define PIDX_PKEY_PARAM_EC_P 138 +#define PIDX_PKEY_PARAM_EC_POINT_CONVERSION_FORMAT 199 +#define PIDX_PKEY_PARAM_EC_PUB_X 200 +#define PIDX_PKEY_PARAM_EC_PUB_Y 201 +#define PIDX_PKEY_PARAM_EC_SEED 140 +#define PIDX_PKEY_PARAM_ENCODED_PUBLIC_KEY 202 +#define PIDX_PKEY_PARAM_ENGINE PIDX_ALG_PARAM_ENGINE +#define PIDX_PKEY_PARAM_FFC_COFACTOR 203 +#define PIDX_PKEY_PARAM_FFC_DIGEST PIDX_PKEY_PARAM_DIGEST +#define PIDX_PKEY_PARAM_FFC_DIGEST_PROPS PIDX_PKEY_PARAM_PROPERTIES +#define PIDX_PKEY_PARAM_FFC_G 204 +#define PIDX_PKEY_PARAM_FFC_GINDEX 205 +#define PIDX_PKEY_PARAM_FFC_H 206 +#define PIDX_PKEY_PARAM_FFC_P 138 +#define PIDX_PKEY_PARAM_FFC_PBITS 207 +#define PIDX_PKEY_PARAM_FFC_PCOUNTER 208 +#define PIDX_PKEY_PARAM_FFC_Q 209 +#define PIDX_PKEY_PARAM_FFC_QBITS 210 +#define PIDX_PKEY_PARAM_FFC_SEED 140 +#define PIDX_PKEY_PARAM_FFC_TYPE 142 +#define PIDX_PKEY_PARAM_FFC_VALIDATE_G 211 +#define PIDX_PKEY_PARAM_FFC_VALIDATE_LEGACY 212 +#define PIDX_PKEY_PARAM_FFC_VALIDATE_PQ 213 +#define PIDX_PKEY_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK 214 +#define PIDX_PKEY_PARAM_FIPS_KEY_CHECK 215 +#define PIDX_PKEY_PARAM_FIPS_SIGN_CHECK 216 +#define PIDX_PKEY_PARAM_GROUP_NAME 217 +#define PIDX_PKEY_PARAM_IMPLICIT_REJECTION 8 +#define PIDX_PKEY_PARAM_MANDATORY_DIGEST 218 +#define PIDX_PKEY_PARAM_MASKGENFUNC 219 +#define PIDX_PKEY_PARAM_MAX_SIZE 220 +#define PIDX_PKEY_PARAM_MGF1_DIGEST 221 +#define PIDX_PKEY_PARAM_MGF1_PROPERTIES 222 +#define PIDX_PKEY_PARAM_ML_DSA_INPUT_FORMATS 223 +#define PIDX_PKEY_PARAM_ML_DSA_OUTPUT_FORMATS 224 +#define PIDX_PKEY_PARAM_ML_DSA_PREFER_SEED 225 +#define PIDX_PKEY_PARAM_ML_DSA_RETAIN_SEED 226 +#define PIDX_PKEY_PARAM_ML_DSA_SEED 140 +#define PIDX_PKEY_PARAM_ML_KEM_IMPORT_PCT_TYPE 227 +#define PIDX_PKEY_PARAM_ML_KEM_INPUT_FORMATS 228 +#define PIDX_PKEY_PARAM_ML_KEM_OUTPUT_FORMATS 229 +#define PIDX_PKEY_PARAM_ML_KEM_PREFER_SEED 230 +#define PIDX_PKEY_PARAM_ML_KEM_RETAIN_SEED 231 +#define PIDX_PKEY_PARAM_ML_KEM_SEED 140 +#define PIDX_PKEY_PARAM_PAD_MODE 232 +#define PIDX_PKEY_PARAM_PRIV_KEY 233 +#define PIDX_PKEY_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_PKEY_PARAM_PUB_KEY 234 +#define PIDX_PKEY_PARAM_RSA_BITS PIDX_PKEY_PARAM_BITS +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT 235 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT1 236 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT2 237 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT3 238 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT4 239 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT5 240 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT6 241 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT7 242 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT8 243 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT9 244 +#define PIDX_PKEY_PARAM_RSA_D 245 +#define PIDX_PKEY_PARAM_RSA_DERIVE_FROM_PQ 246 +#define PIDX_PKEY_PARAM_RSA_DIGEST PIDX_PKEY_PARAM_DIGEST +#define PIDX_PKEY_PARAM_RSA_DIGEST_PROPS PIDX_PKEY_PARAM_PROPERTIES +#define PIDX_PKEY_PARAM_RSA_E 247 +#define PIDX_PKEY_PARAM_RSA_EXPONENT 248 +#define PIDX_PKEY_PARAM_RSA_EXPONENT1 249 +#define PIDX_PKEY_PARAM_RSA_EXPONENT10 250 +#define PIDX_PKEY_PARAM_RSA_EXPONENT2 251 +#define PIDX_PKEY_PARAM_RSA_EXPONENT3 252 +#define PIDX_PKEY_PARAM_RSA_EXPONENT4 253 +#define PIDX_PKEY_PARAM_RSA_EXPONENT5 254 +#define PIDX_PKEY_PARAM_RSA_EXPONENT6 255 +#define PIDX_PKEY_PARAM_RSA_EXPONENT7 256 +#define PIDX_PKEY_PARAM_RSA_EXPONENT8 257 +#define PIDX_PKEY_PARAM_RSA_EXPONENT9 258 +#define PIDX_PKEY_PARAM_RSA_FACTOR 259 +#define PIDX_PKEY_PARAM_RSA_FACTOR1 260 +#define PIDX_PKEY_PARAM_RSA_FACTOR10 261 +#define PIDX_PKEY_PARAM_RSA_FACTOR2 262 +#define PIDX_PKEY_PARAM_RSA_FACTOR3 263 +#define PIDX_PKEY_PARAM_RSA_FACTOR4 264 +#define PIDX_PKEY_PARAM_RSA_FACTOR5 265 +#define PIDX_PKEY_PARAM_RSA_FACTOR6 266 +#define PIDX_PKEY_PARAM_RSA_FACTOR7 267 +#define PIDX_PKEY_PARAM_RSA_FACTOR8 268 +#define PIDX_PKEY_PARAM_RSA_FACTOR9 269 +#define PIDX_PKEY_PARAM_RSA_MASKGENFUNC PIDX_PKEY_PARAM_MASKGENFUNC +#define PIDX_PKEY_PARAM_RSA_MGF1_DIGEST PIDX_PKEY_PARAM_MGF1_DIGEST +#define PIDX_PKEY_PARAM_RSA_N 137 +#define PIDX_PKEY_PARAM_RSA_PRIMES 270 +#define PIDX_PKEY_PARAM_RSA_PSS_SALTLEN 271 +#define PIDX_PKEY_PARAM_RSA_TEST_P1 272 +#define PIDX_PKEY_PARAM_RSA_TEST_P2 273 +#define PIDX_PKEY_PARAM_RSA_TEST_Q1 274 +#define PIDX_PKEY_PARAM_RSA_TEST_Q2 275 +#define PIDX_PKEY_PARAM_RSA_TEST_XP 276 +#define PIDX_PKEY_PARAM_RSA_TEST_XP1 277 +#define PIDX_PKEY_PARAM_RSA_TEST_XP2 278 +#define PIDX_PKEY_PARAM_RSA_TEST_XQ 279 +#define PIDX_PKEY_PARAM_RSA_TEST_XQ1 280 +#define PIDX_PKEY_PARAM_RSA_TEST_XQ2 281 +#define PIDX_PKEY_PARAM_SECURITY_BITS 282 +#define PIDX_PKEY_PARAM_SLH_DSA_SEED 140 +#define PIDX_PKEY_PARAM_USE_COFACTOR_ECDH PIDX_PKEY_PARAM_USE_COFACTOR_FLAG +#define PIDX_PKEY_PARAM_USE_COFACTOR_FLAG 283 +#define PIDX_PROV_PARAM_BUILDINFO 284 +#define PIDX_PROV_PARAM_CORE_MODULE_FILENAME 285 +#define PIDX_PROV_PARAM_CORE_PROV_NAME 286 +#define PIDX_PROV_PARAM_CORE_VERSION 287 +#define PIDX_PROV_PARAM_DRBG_TRUNC_DIGEST 288 +#define PIDX_PROV_PARAM_DSA_SIGN_DISABLED 289 +#define PIDX_PROV_PARAM_ECDH_COFACTOR_CHECK 290 +#define PIDX_PROV_PARAM_HKDF_DIGEST_CHECK 291 +#define PIDX_PROV_PARAM_HKDF_KEY_CHECK 292 +#define PIDX_PROV_PARAM_HMAC_KEY_CHECK 293 +#define PIDX_PROV_PARAM_KBKDF_KEY_CHECK 294 +#define PIDX_PROV_PARAM_KMAC_KEY_CHECK 295 +#define PIDX_PROV_PARAM_NAME 296 +#define PIDX_PROV_PARAM_NO_SHORT_MAC 297 +#define PIDX_PROV_PARAM_PBKDF2_LOWER_BOUND_CHECK 298 +#define PIDX_PROV_PARAM_RSA_PKCS15_PAD_DISABLED 299 +#define PIDX_PROV_PARAM_RSA_PSS_SALTLEN_CHECK 300 +#define PIDX_PROV_PARAM_RSA_SIGN_X931_PAD_DISABLED 301 +#define PIDX_PROV_PARAM_SECURITY_CHECKS 302 +#define PIDX_PROV_PARAM_SELF_TEST_DESC 303 +#define PIDX_PROV_PARAM_SELF_TEST_PHASE 304 +#define PIDX_PROV_PARAM_SELF_TEST_TYPE 305 +#define PIDX_PROV_PARAM_SIGNATURE_DIGEST_CHECK 306 +#define PIDX_PROV_PARAM_SSHKDF_DIGEST_CHECK 307 +#define PIDX_PROV_PARAM_SSHKDF_KEY_CHECK 308 +#define PIDX_PROV_PARAM_SSKDF_DIGEST_CHECK 309 +#define PIDX_PROV_PARAM_SSKDF_KEY_CHECK 310 +#define PIDX_PROV_PARAM_STATUS 311 +#define PIDX_PROV_PARAM_TDES_ENCRYPT_DISABLED 312 +#define PIDX_PROV_PARAM_TLS13_KDF_DIGEST_CHECK 313 +#define PIDX_PROV_PARAM_TLS13_KDF_KEY_CHECK 314 +#define PIDX_PROV_PARAM_TLS1_PRF_DIGEST_CHECK 315 +#define PIDX_PROV_PARAM_TLS1_PRF_EMS_CHECK 316 +#define PIDX_PROV_PARAM_TLS1_PRF_KEY_CHECK 317 +#define PIDX_PROV_PARAM_VERSION 115 +#define PIDX_PROV_PARAM_X942KDF_KEY_CHECK 318 +#define PIDX_PROV_PARAM_X963KDF_DIGEST_CHECK 319 +#define PIDX_PROV_PARAM_X963KDF_KEY_CHECK 320 +#define PIDX_RAND_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_RAND_PARAM_GENERATE 321 +#define PIDX_RAND_PARAM_MAX_REQUEST 322 +#define PIDX_RAND_PARAM_STATE 323 +#define PIDX_RAND_PARAM_STRENGTH 324 +#define PIDX_RAND_PARAM_TEST_ENTROPY 325 +#define PIDX_RAND_PARAM_TEST_NONCE 326 +#define PIDX_SIGNATURE_PARAM_ADD_RANDOM 327 +#define PIDX_SIGNATURE_PARAM_ALGORITHM_ID PIDX_PKEY_PARAM_ALGORITHM_ID +#define PIDX_SIGNATURE_PARAM_ALGORITHM_ID_PARAMS PIDX_PKEY_PARAM_ALGORITHM_ID_PARAMS +#define PIDX_SIGNATURE_PARAM_CONTEXT_STRING 328 +#define PIDX_SIGNATURE_PARAM_DETERMINISTIC 329 +#define PIDX_SIGNATURE_PARAM_DIGEST PIDX_PKEY_PARAM_DIGEST +#define PIDX_SIGNATURE_PARAM_DIGEST_SIZE PIDX_PKEY_PARAM_DIGEST_SIZE +#define PIDX_SIGNATURE_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_SIGNATURE_PARAM_FIPS_DIGEST_CHECK PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK +#define PIDX_SIGNATURE_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_SIGNATURE_PARAM_FIPS_RSA_PSS_SALTLEN_CHECK 300 +#define PIDX_SIGNATURE_PARAM_FIPS_SIGN_CHECK PIDX_PKEY_PARAM_FIPS_SIGN_CHECK +#define PIDX_SIGNATURE_PARAM_FIPS_SIGN_X931_PAD_CHECK 330 +#define PIDX_SIGNATURE_PARAM_FIPS_VERIFY_MESSAGE 331 +#define PIDX_SIGNATURE_PARAM_INSTANCE 332 +#define PIDX_SIGNATURE_PARAM_KAT 333 +#define PIDX_SIGNATURE_PARAM_MESSAGE_ENCODING 334 +#define PIDX_SIGNATURE_PARAM_MGF1_DIGEST PIDX_PKEY_PARAM_MGF1_DIGEST +#define PIDX_SIGNATURE_PARAM_MGF1_PROPERTIES PIDX_PKEY_PARAM_MGF1_PROPERTIES +#define PIDX_SIGNATURE_PARAM_MU 335 +#define PIDX_SIGNATURE_PARAM_NONCE_TYPE 336 +#define PIDX_SIGNATURE_PARAM_PAD_MODE PIDX_PKEY_PARAM_PAD_MODE +#define PIDX_SIGNATURE_PARAM_PROPERTIES PIDX_PKEY_PARAM_PROPERTIES +#define PIDX_SIGNATURE_PARAM_PSS_SALTLEN 271 +#define PIDX_SIGNATURE_PARAM_SIGNATURE 337 +#define PIDX_SIGNATURE_PARAM_TEST_ENTROPY 338 +#define PIDX_SKEY_PARAM_KEY_LENGTH 339 +#define PIDX_SKEY_PARAM_RAW_BYTES 340 +#define PIDX_STORE_PARAM_ALIAS 341 +#define PIDX_STORE_PARAM_DIGEST 3 +#define PIDX_STORE_PARAM_EXPECT 342 +#define PIDX_STORE_PARAM_FINGERPRINT 343 +#define PIDX_STORE_PARAM_INPUT_TYPE 174 +#define PIDX_STORE_PARAM_ISSUER 296 +#define PIDX_STORE_PARAM_PROPERTIES 7 +#define PIDX_STORE_PARAM_SERIAL 344 +#define PIDX_STORE_PARAM_SUBJECT 345 diff --git a/deps/openssl/config/archs/linux-elf/asm/include/openssl/asn1.h b/deps/openssl/config/archs/linux-elf/asm/include/openssl/asn1.h index 21ff58e3d803d4..15e9e44674b0f3 100644 --- a/deps/openssl/config/archs/linux-elf/asm/include/openssl/asn1.h +++ b/deps/openssl/config/archs/linux-elf/asm/include/openssl/asn1.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/asn1.h.in * - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -21,6 +21,9 @@ # define HEADER_ASN1_H # endif +# ifndef OPENSSL_NO_STDIO +# include +# endif # include # include # include @@ -50,14 +53,14 @@ extern "C" { # define V_ASN1_PRIMITIVE_TAG 0x1f # define V_ASN1_PRIMATIVE_TAG /*compat*/ V_ASN1_PRIMITIVE_TAG -# define V_ASN1_APP_CHOOSE -2/* let the recipient choose */ -# define V_ASN1_OTHER -3/* used in ASN1_TYPE */ -# define V_ASN1_ANY -4/* used in ASN1 template code */ +# define V_ASN1_APP_CHOOSE -2 /* let the recipient choose */ +# define V_ASN1_OTHER -3 /* used in ASN1_TYPE */ +# define V_ASN1_ANY -4 /* used in ASN1 template code */ # define V_ASN1_UNDEF -1 /* ASN.1 tag values */ # define V_ASN1_EOC 0 -# define V_ASN1_BOOLEAN 1 /**/ +# define V_ASN1_BOOLEAN 1 # define V_ASN1_INTEGER 2 # define V_ASN1_BIT_STRING 3 # define V_ASN1_OCTET_STRING 4 @@ -70,19 +73,19 @@ extern "C" { # define V_ASN1_UTF8STRING 12 # define V_ASN1_SEQUENCE 16 # define V_ASN1_SET 17 -# define V_ASN1_NUMERICSTRING 18 /**/ +# define V_ASN1_NUMERICSTRING 18 # define V_ASN1_PRINTABLESTRING 19 # define V_ASN1_T61STRING 20 -# define V_ASN1_TELETEXSTRING 20/* alias */ -# define V_ASN1_VIDEOTEXSTRING 21 /**/ +# define V_ASN1_TELETEXSTRING 20 /* alias */ +# define V_ASN1_VIDEOTEXSTRING 21 # define V_ASN1_IA5STRING 22 # define V_ASN1_UTCTIME 23 -# define V_ASN1_GENERALIZEDTIME 24 /**/ -# define V_ASN1_GRAPHICSTRING 25 /**/ -# define V_ASN1_ISO64STRING 26 /**/ -# define V_ASN1_VISIBLESTRING 26/* alias */ -# define V_ASN1_GENERALSTRING 27 /**/ -# define V_ASN1_UNIVERSALSTRING 28 /**/ +# define V_ASN1_GENERALIZEDTIME 24 +# define V_ASN1_GRAPHICSTRING 25 +# define V_ASN1_ISO64STRING 26 +# define V_ASN1_VISIBLESTRING 26 /* alias */ +# define V_ASN1_GENERALSTRING 27 +# define V_ASN1_UNIVERSALSTRING 28 # define V_ASN1_BMPSTRING 30 /* @@ -155,7 +158,7 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_ALGOR, X509_ALGOR, X509_ALGOR) -# define ASN1_STRING_FLAG_BITS_LEFT 0x08/* Set if 0x07 has bits left value */ +# define ASN1_STRING_FLAG_BITS_LEFT 0x08 /* Set if 0x07 has bits left value */ /* * This indicates that the ASN1_STRING is not a real value but just a place * holder for the location where indefinite length constructed data should be @@ -275,7 +278,7 @@ typedef struct ASN1_TLC_st ASN1_TLC; /* This is just an opaque pointer */ typedef struct ASN1_VALUE_st ASN1_VALUE; -/* Declare ASN1 functions: the implement macro in in asn1t.h */ +/* Declare ASN1 functions: the implement macro is in asn1t.h */ /* * The mysterious 'extern' that's passed to some macros is innocuous, @@ -368,6 +371,7 @@ typedef struct ASN1_VALUE_st ASN1_VALUE; typedef void *d2i_of_void(void **, const unsigned char **, long); typedef int i2d_of_void(const void *, unsigned char **); +typedef int OSSL_i2d_of_void_ctx(const void *, unsigned char **, void *vctx); /*- * The following macros and typedefs allow an ASN1_ITEM @@ -996,6 +1000,8 @@ int ASN1_TYPE_get_int_octetstring(const ASN1_TYPE *a, long *num, unsigned char *data, int max_len); void *ASN1_item_unpack(const ASN1_STRING *oct, const ASN1_ITEM *it); +void *ASN1_item_unpack_ex(const ASN1_STRING *oct, const ASN1_ITEM *it, + OSSL_LIB_CTX *libctx, const char *propq); ASN1_STRING *ASN1_item_pack(void *obj, const ASN1_ITEM *it, ASN1_OCTET_STRING **oct); diff --git a/deps/openssl/config/archs/linux-elf/asm/include/openssl/bio.h b/deps/openssl/config/archs/linux-elf/asm/include/openssl/bio.h index f9aa74731c833c..e02f867beb0ec0 100644 --- a/deps/openssl/config/archs/linux-elf/asm/include/openssl/bio.h +++ b/deps/openssl/config/archs/linux-elf/asm/include/openssl/bio.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/bio.h.in * - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -67,8 +67,13 @@ extern "C" { # define BIO_TYPE_DGRAM_SCTP (24|BIO_TYPE_SOURCE_SINK|BIO_TYPE_DESCRIPTOR) # endif # define BIO_TYPE_CORE_TO_PROV (25|BIO_TYPE_SOURCE_SINK) +# define BIO_TYPE_DGRAM_PAIR (26|BIO_TYPE_SOURCE_SINK) +# define BIO_TYPE_DGRAM_MEM (27|BIO_TYPE_SOURCE_SINK) +/* Custom type starting index returned by BIO_get_new_index() */ #define BIO_TYPE_START 128 +/* Custom type maximum index that can be returned by BIO_get_new_index() */ +#define BIO_TYPE_MASK 0xFF /* * BIO_FILENAME_READ|BIO_CLOSE to open or close on free. @@ -171,6 +176,31 @@ extern "C" { # define BIO_CTRL_SET_INDENT 80 # define BIO_CTRL_GET_INDENT 81 +# define BIO_CTRL_DGRAM_GET_LOCAL_ADDR_CAP 82 +# define BIO_CTRL_DGRAM_GET_LOCAL_ADDR_ENABLE 83 +# define BIO_CTRL_DGRAM_SET_LOCAL_ADDR_ENABLE 84 +# define BIO_CTRL_DGRAM_GET_EFFECTIVE_CAPS 85 +# define BIO_CTRL_DGRAM_GET_CAPS 86 +# define BIO_CTRL_DGRAM_SET_CAPS 87 +# define BIO_CTRL_DGRAM_GET_NO_TRUNC 88 +# define BIO_CTRL_DGRAM_SET_NO_TRUNC 89 + +/* + * internal BIO: + * # define BIO_CTRL_SET_KTLS_TX_ZEROCOPY_SENDFILE 90 + */ + +# define BIO_CTRL_GET_RPOLL_DESCRIPTOR 91 +# define BIO_CTRL_GET_WPOLL_DESCRIPTOR 92 +# define BIO_CTRL_DGRAM_DETECT_PEER_ADDR 93 +# define BIO_CTRL_DGRAM_SET0_LOCAL_ADDR 94 + +# define BIO_DGRAM_CAP_NONE 0U +# define BIO_DGRAM_CAP_HANDLES_SRC_ADDR (1U << 0) +# define BIO_DGRAM_CAP_HANDLES_DST_ADDR (1U << 1) +# define BIO_DGRAM_CAP_PROVIDES_SRC_ADDR (1U << 2) +# define BIO_DGRAM_CAP_PROVIDES_DST_ADDR (1U << 3) + # ifndef OPENSSL_NO_KTLS # define BIO_get_ktls_send(b) \ (BIO_ctrl(b, BIO_CTRL_GET_KTLS_SEND, 0, NULL) > 0) @@ -208,7 +238,7 @@ extern "C" { # define BIO_FLAGS_NONCLEAR_RST 0x400 # define BIO_FLAGS_IN_EOF 0x800 -/* the BIO FLAGS values 0x1000 to 0x4000 are reserved for internal KTLS flags */ +/* the BIO FLAGS values 0x1000 to 0x8000 are reserved for internal KTLS flags */ typedef union bio_addr_st BIO_ADDR; typedef struct bio_addrinfo_st BIO_ADDRINFO; @@ -256,12 +286,14 @@ void BIO_clear_flags(BIO *b, int flags); # define BIO_RR_ACCEPT 0x03 /* These are passed by the BIO callback */ -# define BIO_CB_FREE 0x01 -# define BIO_CB_READ 0x02 -# define BIO_CB_WRITE 0x03 -# define BIO_CB_PUTS 0x04 -# define BIO_CB_GETS 0x05 -# define BIO_CB_CTRL 0x06 +# define BIO_CB_FREE 0x01 +# define BIO_CB_READ 0x02 +# define BIO_CB_WRITE 0x03 +# define BIO_CB_PUTS 0x04 +# define BIO_CB_GETS 0x05 +# define BIO_CB_CTRL 0x06 +# define BIO_CB_RECVMMSG 0x07 +# define BIO_CB_SENDMMSG 0x08 /* * The callback is called before and after the underling operation, The @@ -362,6 +394,36 @@ struct bio_dgram_sctp_prinfo { }; # endif +/* BIO_sendmmsg/BIO_recvmmsg-related definitions */ +typedef struct bio_msg_st { + void *data; + size_t data_len; + BIO_ADDR *peer, *local; + uint64_t flags; +} BIO_MSG; + +typedef struct bio_mmsg_cb_args_st { + BIO_MSG *msg; + size_t stride, num_msg; + uint64_t flags; + size_t *msgs_processed; +} BIO_MMSG_CB_ARGS; + +#define BIO_POLL_DESCRIPTOR_TYPE_NONE 0 +#define BIO_POLL_DESCRIPTOR_TYPE_SOCK_FD 1 +#define BIO_POLL_DESCRIPTOR_TYPE_SSL 2 +#define BIO_POLL_DESCRIPTOR_CUSTOM_START 8192 + +typedef struct bio_poll_descriptor_st { + uint32_t type; + union { + int fd; + void *custom; + uintptr_t custom_ui; + SSL *ssl; + } value; +} BIO_POLL_DESCRIPTOR; + /* * #define BIO_CONN_get_param_hostname BIO_ctrl */ @@ -428,10 +490,17 @@ struct bio_dgram_sctp_prinfo { # define BIO_C_SET_CONNECT_MODE 155 +# define BIO_C_SET_TFO 156 /* like BIO_C_SET_NBIO */ + +# define BIO_C_SET_SOCK_TYPE 157 +# define BIO_C_GET_SOCK_TYPE 158 +# define BIO_C_GET_DGRAM_BIO 159 + # define BIO_set_app_data(s,arg) BIO_set_ex_data(s,0,arg) # define BIO_get_app_data(s) BIO_get_ex_data(s,0) -# define BIO_set_nbio(b,n) BIO_ctrl(b,BIO_C_SET_NBIO,(n),NULL) +# define BIO_set_nbio(b,n) BIO_ctrl(b,BIO_C_SET_NBIO,(n),NULL) +# define BIO_set_tfo(b,n) BIO_ctrl(b,BIO_C_SET_TFO,(n),NULL) # ifndef OPENSSL_NO_SOCK /* IP families we support, for BIO_s_connect() and BIO_s_accept() */ @@ -452,7 +521,11 @@ struct bio_dgram_sctp_prinfo { # define BIO_get_conn_port(b) ((const char *)BIO_ptr_ctrl(b,BIO_C_GET_CONNECT,1)) # define BIO_get_conn_address(b) ((const BIO_ADDR *)BIO_ptr_ctrl(b,BIO_C_GET_CONNECT,2)) # define BIO_get_conn_ip_family(b) BIO_ctrl(b,BIO_C_GET_CONNECT,3,NULL) +# define BIO_get_conn_mode(b) BIO_ctrl(b,BIO_C_GET_CONNECT,4,NULL) # define BIO_set_conn_mode(b,n) BIO_ctrl(b,BIO_C_SET_CONNECT_MODE,(n),NULL) +# define BIO_set_sock_type(b,t) BIO_ctrl(b,BIO_C_SET_SOCK_TYPE,(t),NULL) +# define BIO_get_sock_type(b) BIO_ctrl(b,BIO_C_GET_SOCK_TYPE,0,NULL) +# define BIO_get0_dgram_bio(b, p) BIO_ctrl(b,BIO_C_GET_DGRAM_BIO,0,(void *)(BIO **)(p)) /* BIO_s_accept() */ # define BIO_set_accept_name(b,name) BIO_ctrl(b,BIO_C_SET_ACCEPT,0, \ @@ -469,6 +542,7 @@ struct bio_dgram_sctp_prinfo { (char *)(bio)) # define BIO_set_accept_ip_family(b,f) BIO_int_ctrl(b,BIO_C_SET_ACCEPT,4,f) # define BIO_get_accept_ip_family(b) BIO_ctrl(b,BIO_C_GET_ACCEPT,4,NULL) +# define BIO_set_tfo_accept(b,n) BIO_ctrl(b,BIO_C_SET_ACCEPT,5,(n)?(void *)"a":NULL) /* Aliases kept for backward compatibility */ # define BIO_BIND_NORMAL 0 @@ -596,8 +670,32 @@ int BIO_ctrl_reset_read_request(BIO *b); (int)BIO_ctrl(b, BIO_CTRL_DGRAM_GET_PEER, 0, (char *)(peer)) # define BIO_dgram_set_peer(b,peer) \ (int)BIO_ctrl(b, BIO_CTRL_DGRAM_SET_PEER, 0, (char *)(peer)) +# define BIO_dgram_detect_peer_addr(b,peer) \ + (int)BIO_ctrl(b, BIO_CTRL_DGRAM_DETECT_PEER_ADDR, 0, (char *)(peer)) # define BIO_dgram_get_mtu_overhead(b) \ (unsigned int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_MTU_OVERHEAD, 0, NULL) +# define BIO_dgram_get_local_addr_cap(b) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_LOCAL_ADDR_CAP, 0, NULL) +# define BIO_dgram_get_local_addr_enable(b, penable) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_LOCAL_ADDR_ENABLE, 0, (char *)(penable)) +# define BIO_dgram_set_local_addr_enable(b, enable) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET_LOCAL_ADDR_ENABLE, (enable), NULL) +# define BIO_dgram_get_effective_caps(b) \ + (uint32_t)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_EFFECTIVE_CAPS, 0, NULL) +# define BIO_dgram_get_caps(b) \ + (uint32_t)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_CAPS, 0, NULL) +# define BIO_dgram_set_caps(b, caps) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET_CAPS, (long)(caps), NULL) +# define BIO_dgram_get_no_trunc(b) \ + (unsigned int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_NO_TRUNC, 0, NULL) +# define BIO_dgram_set_no_trunc(b, enable) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET_NO_TRUNC, (enable), NULL) +# define BIO_dgram_get_mtu(b) \ + (unsigned int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_MTU, 0, NULL) +# define BIO_dgram_set_mtu(b, mtu) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET_MTU, (mtu), NULL) +# define BIO_dgram_set0_local_addr(b, addr) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET0_LOCAL_ADDR, 0, (addr)) /* ctrl macros for BIO_f_prefix */ # define BIO_set_prefix(b,p) BIO_ctrl((b), BIO_CTRL_SET_PREFIX, 0, (void *)(p)) @@ -640,10 +738,18 @@ void BIO_vfree(BIO *a); int BIO_up_ref(BIO *a); int BIO_read(BIO *b, void *data, int dlen); int BIO_read_ex(BIO *b, void *data, size_t dlen, size_t *readbytes); +__owur int BIO_recvmmsg(BIO *b, BIO_MSG *msg, + size_t stride, size_t num_msg, uint64_t flags, + size_t *msgs_processed); int BIO_gets(BIO *bp, char *buf, int size); int BIO_get_line(BIO *bio, char *buf, int size); int BIO_write(BIO *b, const void *data, int dlen); int BIO_write_ex(BIO *b, const void *data, size_t dlen, size_t *written); +__owur int BIO_sendmmsg(BIO *b, BIO_MSG *msg, + size_t stride, size_t num_msg, uint64_t flags, + size_t *msgs_processed); +__owur int BIO_get_rpoll_descriptor(BIO *b, BIO_POLL_DESCRIPTOR *desc); +__owur int BIO_get_wpoll_descriptor(BIO *b, BIO_POLL_DESCRIPTOR *desc); int BIO_puts(BIO *bp, const char *buf); int BIO_indent(BIO *b, int indent, int max); long BIO_ctrl(BIO *bp, int cmd, long larg, void *parg); @@ -667,6 +773,9 @@ int BIO_nwrite0(BIO *bio, char **buf); int BIO_nwrite(BIO *bio, char **buf, int num); const BIO_METHOD *BIO_s_mem(void); +# ifndef OPENSSL_NO_DGRAM +const BIO_METHOD *BIO_s_dgram_mem(void); +# endif const BIO_METHOD *BIO_s_secmem(void); BIO *BIO_new_mem_buf(const void *buf, int len); # ifndef OPENSSL_NO_SOCK @@ -686,6 +795,7 @@ const BIO_METHOD *BIO_f_nbio_test(void); const BIO_METHOD *BIO_f_prefix(void); const BIO_METHOD *BIO_s_core(void); # ifndef OPENSSL_NO_DGRAM +const BIO_METHOD *BIO_s_dgram_pair(void); const BIO_METHOD *BIO_s_datagram(void); int BIO_dgram_non_fatal_error(int error); BIO *BIO_new_dgram(int fd, int close_flag); @@ -704,6 +814,7 @@ int BIO_dgram_sctp_msg_waiting(BIO *b); # ifndef OPENSSL_NO_SOCK int BIO_sock_should_retry(int i); int BIO_sock_non_fatal_error(int error); +int BIO_err_is_non_fatal(unsigned int errcode); int BIO_socket_wait(int fd, int for_read, time_t max_time); # endif int BIO_wait(BIO *bio, time_t max_time, unsigned int nap_milliseconds); @@ -726,6 +837,8 @@ int BIO_hex_string(BIO *out, int indent, int width, const void *data, # ifndef OPENSSL_NO_SOCK BIO_ADDR *BIO_ADDR_new(void); +int BIO_ADDR_copy(BIO_ADDR *dst, const BIO_ADDR *src); +BIO_ADDR *BIO_ADDR_dup(const BIO_ADDR *ap); int BIO_ADDR_rawmake(BIO_ADDR *ap, int family, const void *where, size_t wherelen, unsigned short port); void BIO_ADDR_free(BIO_ADDR *); @@ -788,6 +901,7 @@ int BIO_sock_info(int sock, # define BIO_SOCK_KEEPALIVE 0x04 # define BIO_SOCK_NONBLOCK 0x08 # define BIO_SOCK_NODELAY 0x10 +# define BIO_SOCK_TFO 0x20 int BIO_socket(int domain, int socktype, int protocol, int options); int BIO_connect(int sock, const BIO_ADDR *addr, int options); @@ -805,6 +919,11 @@ BIO *BIO_new_fd(int fd, int close_flag); int BIO_new_bio_pair(BIO **bio1, size_t writebuf1, BIO **bio2, size_t writebuf2); +# ifndef OPENSSL_NO_DGRAM +int BIO_new_bio_dgram_pair(BIO **bio1, size_t writebuf1, + BIO **bio2, size_t writebuf2); +# endif + /* * If successful, returns 1 and in *bio1, *bio2 two BIO pair endpoints. * Otherwise returns 0 and sets *bio1 and *bio2 to NULL. Size 0 uses default @@ -849,38 +968,54 @@ ossl_bio__attr__((__format__(ossl_bio__printf__, 3, 0))); BIO_METHOD *BIO_meth_new(int type, const char *name); void BIO_meth_free(BIO_METHOD *biom); -int (*BIO_meth_get_write(const BIO_METHOD *biom)) (BIO *, const char *, int); -int (*BIO_meth_get_write_ex(const BIO_METHOD *biom)) (BIO *, const char *, size_t, - size_t *); int BIO_meth_set_write(BIO_METHOD *biom, int (*write) (BIO *, const char *, int)); int BIO_meth_set_write_ex(BIO_METHOD *biom, int (*bwrite) (BIO *, const char *, size_t, size_t *)); -int (*BIO_meth_get_read(const BIO_METHOD *biom)) (BIO *, char *, int); -int (*BIO_meth_get_read_ex(const BIO_METHOD *biom)) (BIO *, char *, size_t, size_t *); +int BIO_meth_set_sendmmsg(BIO_METHOD *biom, + int (*f) (BIO *, BIO_MSG *, size_t, size_t, + uint64_t, size_t *)); int BIO_meth_set_read(BIO_METHOD *biom, int (*read) (BIO *, char *, int)); int BIO_meth_set_read_ex(BIO_METHOD *biom, int (*bread) (BIO *, char *, size_t, size_t *)); -int (*BIO_meth_get_puts(const BIO_METHOD *biom)) (BIO *, const char *); +int BIO_meth_set_recvmmsg(BIO_METHOD *biom, + int (*f) (BIO *, BIO_MSG *, size_t, size_t, + uint64_t, size_t *)); int BIO_meth_set_puts(BIO_METHOD *biom, int (*puts) (BIO *, const char *)); -int (*BIO_meth_get_gets(const BIO_METHOD *biom)) (BIO *, char *, int); int BIO_meth_set_gets(BIO_METHOD *biom, int (*ossl_gets) (BIO *, char *, int)); -long (*BIO_meth_get_ctrl(const BIO_METHOD *biom)) (BIO *, int, long, void *); int BIO_meth_set_ctrl(BIO_METHOD *biom, long (*ctrl) (BIO *, int, long, void *)); -int (*BIO_meth_get_create(const BIO_METHOD *bion)) (BIO *); int BIO_meth_set_create(BIO_METHOD *biom, int (*create) (BIO *)); -int (*BIO_meth_get_destroy(const BIO_METHOD *biom)) (BIO *); int BIO_meth_set_destroy(BIO_METHOD *biom, int (*destroy) (BIO *)); -long (*BIO_meth_get_callback_ctrl(const BIO_METHOD *biom)) - (BIO *, int, BIO_info_cb *); int BIO_meth_set_callback_ctrl(BIO_METHOD *biom, long (*callback_ctrl) (BIO *, int, BIO_info_cb *)); - +# ifndef OPENSSL_NO_DEPRECATED_3_5 +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_write(const BIO_METHOD *biom)) (BIO *, const char *, + int); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_write_ex(const BIO_METHOD *biom)) (BIO *, const char *, + size_t, size_t *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_sendmmsg(const BIO_METHOD *biom))(BIO *, BIO_MSG *, + size_t, size_t, + uint64_t, size_t *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_read(const BIO_METHOD *biom)) (BIO *, char *, int); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_read_ex(const BIO_METHOD *biom)) (BIO *, char *, + size_t, size_t *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_recvmmsg(const BIO_METHOD *biom))(BIO *, BIO_MSG *, + size_t, size_t, + uint64_t, size_t *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_puts(const BIO_METHOD *biom)) (BIO *, const char *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_gets(const BIO_METHOD *biom)) (BIO *, char *, int); +OSSL_DEPRECATEDIN_3_5 long (*BIO_meth_get_ctrl(const BIO_METHOD *biom)) (BIO *, int, + long, void *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_create(const BIO_METHOD *bion)) (BIO *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_destroy(const BIO_METHOD *biom)) (BIO *); +OSSL_DEPRECATEDIN_3_5 long (*BIO_meth_get_callback_ctrl(const BIO_METHOD *biom)) (BIO *, int, + BIO_info_cb *); +# endif # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/linux-elf/asm/include/openssl/cmp.h b/deps/openssl/config/archs/linux-elf/asm/include/openssl/cmp.h index 49825570d8c303..05aed3029d594c 100644 --- a/deps/openssl/config/archs/linux-elf/asm/include/openssl/cmp.h +++ b/deps/openssl/config/archs/linux-elf/asm/include/openssl/cmp.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/cmp.h.in * - * Copyright 2007-2023 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2007-2024 The OpenSSL Project Authors. All Rights Reserved. * Copyright Nokia 2007-2019 * Copyright Siemens AG 2015-2019 * @@ -35,7 +35,9 @@ extern "C" { # endif -# define OSSL_CMP_PVNO 2 +# define OSSL_CMP_PVNO_2 2 +# define OSSL_CMP_PVNO_3 3 +# define OSSL_CMP_PVNO OSSL_CMP_PVNO_2 /* v2 is the default */ /*- * PKIFailureInfo ::= BIT STRING { @@ -137,7 +139,6 @@ extern "C" { # if OSSL_CMP_PKIFAILUREINFO_MAX_BIT_PATTERN > INT_MAX # error CMP_PKIFAILUREINFO_MAX bit pattern does not fit in type int # endif - typedef ASN1_BIT_STRING OSSL_CMP_PKIFAILUREINFO; # define OSSL_CMP_CTX_FAILINFO_badAlg (1 << 0) @@ -203,8 +204,8 @@ typedef ASN1_BIT_STRING OSSL_CMP_PKIFAILUREINFO; # define OSSL_CMP_PKISTATUS_revocationWarning 4 # define OSSL_CMP_PKISTATUS_revocationNotification 5 # define OSSL_CMP_PKISTATUS_keyUpdateWarning 6 - typedef ASN1_INTEGER OSSL_CMP_PKISTATUS; + DECLARE_ASN1_ITEM(OSSL_CMP_PKISTATUS) # define OSSL_CMP_CERTORENCCERT_CERTIFICATE 0 @@ -274,6 +275,46 @@ SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CMP_ITAV, OSSL_CMP_ITAV, OSSL_CMP_ITAV) #define sk_OSSL_CMP_ITAV_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_CMP_ITAV) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_CMP_ITAV_sk_type(sk), ossl_check_OSSL_CMP_ITAV_copyfunc_type(copyfunc), ossl_check_OSSL_CMP_ITAV_freefunc_type(freefunc))) #define sk_OSSL_CMP_ITAV_set_cmp_func(sk, cmp) ((sk_OSSL_CMP_ITAV_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CMP_ITAV_sk_type(sk), ossl_check_OSSL_CMP_ITAV_compfunc_type(cmp))) + +typedef struct ossl_cmp_crlstatus_st OSSL_CMP_CRLSTATUS; +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CMP_CRLSTATUS, OSSL_CMP_CRLSTATUS, OSSL_CMP_CRLSTATUS) +#define sk_OSSL_CMP_CRLSTATUS_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_value(sk, idx) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_value(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk), (idx))) +#define sk_OSSL_CMP_CRLSTATUS_new(cmp) ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_new(ossl_check_OSSL_CMP_CRLSTATUS_compfunc_type(cmp))) +#define sk_OSSL_CMP_CRLSTATUS_new_null() ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_new_null()) +#define sk_OSSL_CMP_CRLSTATUS_new_reserve(cmp, n) ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_CMP_CRLSTATUS_compfunc_type(cmp), (n))) +#define sk_OSSL_CMP_CRLSTATUS_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), (n)) +#define sk_OSSL_CMP_CRLSTATUS_free(sk) OPENSSL_sk_free(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_delete(sk, i) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_delete(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), (i))) +#define sk_OSSL_CMP_CRLSTATUS_delete_ptr(sk, ptr) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr))) +#define sk_OSSL_CMP_CRLSTATUS_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr)) +#define sk_OSSL_CMP_CRLSTATUS_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr)) +#define sk_OSSL_CMP_CRLSTATUS_pop(sk) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_pop(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk))) +#define sk_OSSL_CMP_CRLSTATUS_shift(sk) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_shift(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk))) +#define sk_OSSL_CMP_CRLSTATUS_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk),ossl_check_OSSL_CMP_CRLSTATUS_freefunc_type(freefunc)) +#define sk_OSSL_CMP_CRLSTATUS_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr), (idx)) +#define sk_OSSL_CMP_CRLSTATUS_set(sk, idx, ptr) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_set(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), (idx), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr))) +#define sk_OSSL_CMP_CRLSTATUS_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr)) +#define sk_OSSL_CMP_CRLSTATUS_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr)) +#define sk_OSSL_CMP_CRLSTATUS_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr), pnum) +#define sk_OSSL_CMP_CRLSTATUS_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_dup(sk) ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_dup(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk))) +#define sk_OSSL_CMP_CRLSTATUS_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_copyfunc_type(copyfunc), ossl_check_OSSL_CMP_CRLSTATUS_freefunc_type(freefunc))) +#define sk_OSSL_CMP_CRLSTATUS_set_cmp_func(sk, cmp) ((sk_OSSL_CMP_CRLSTATUS_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_compfunc_type(cmp))) + + +typedef OSSL_CRMF_ATTRIBUTETYPEANDVALUE OSSL_CMP_ATAV; +# define OSSL_CMP_ATAV_free OSSL_CRMF_ATTRIBUTETYPEANDVALUE_free +typedef STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) OSSL_CMP_ATAVS; +DECLARE_ASN1_FUNCTIONS(OSSL_CMP_ATAVS) +# define stack_st_OSSL_CMP_ATAV stack_st_OSSL_CRMF_ATTRIBUTETYPEANDVALUE +# define sk_OSSL_CMP_ATAV_num sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_num +# define sk_OSSL_CMP_ATAV_value sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_value +# define sk_OSSL_CMP_ATAV_push sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_push +# define sk_OSSL_CMP_ATAV_pop_free sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_pop_free + typedef struct ossl_cmp_revrepcontent_st OSSL_CMP_REVREPCONTENT; typedef struct ossl_cmp_pkisi_st OSSL_CMP_PKISI; DECLARE_ASN1_FUNCTIONS(OSSL_CMP_PKISI) @@ -375,21 +416,75 @@ void OSSL_CMP_ITAV_set0(OSSL_CMP_ITAV *itav, ASN1_OBJECT *type, ASN1_TYPE *value); ASN1_OBJECT *OSSL_CMP_ITAV_get0_type(const OSSL_CMP_ITAV *itav); ASN1_TYPE *OSSL_CMP_ITAV_get0_value(const OSSL_CMP_ITAV *itav); -int OSSL_CMP_ITAV_push0_stack_item(STACK_OF(OSSL_CMP_ITAV) **itav_sk_p, +int OSSL_CMP_ITAV_push0_stack_item(STACK_OF(OSSL_CMP_ITAV) **sk_p, OSSL_CMP_ITAV *itav); void OSSL_CMP_ITAV_free(OSSL_CMP_ITAV *itav); + +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new0_certProfile(STACK_OF(ASN1_UTF8STRING) + *certProfile); +int OSSL_CMP_ITAV_get0_certProfile(const OSSL_CMP_ITAV *itav, + STACK_OF(ASN1_UTF8STRING) **out); +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new_caCerts(const STACK_OF(X509) *caCerts); +int OSSL_CMP_ITAV_get0_caCerts(const OSSL_CMP_ITAV *itav, STACK_OF(X509) **out); + +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new_rootCaCert(const X509 *rootCaCert); +int OSSL_CMP_ITAV_get0_rootCaCert(const OSSL_CMP_ITAV *itav, X509 **out); +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new_rootCaKeyUpdate(const X509 *newWithNew, + const X509 *newWithOld, + const X509 *oldWithNew); +int OSSL_CMP_ITAV_get0_rootCaKeyUpdate(const OSSL_CMP_ITAV *itav, + X509 **newWithNew, + X509 **newWithOld, + X509 **oldWithNew); + +OSSL_CMP_CRLSTATUS *OSSL_CMP_CRLSTATUS_create(const X509_CRL *crl, + const X509 *cert, int only_DN); +OSSL_CMP_CRLSTATUS *OSSL_CMP_CRLSTATUS_new1(const DIST_POINT_NAME *dpn, + const GENERAL_NAMES *issuer, + const ASN1_TIME *thisUpdate); +int OSSL_CMP_CRLSTATUS_get0(const OSSL_CMP_CRLSTATUS *crlstatus, + DIST_POINT_NAME **dpn, GENERAL_NAMES **issuer, + ASN1_TIME **thisUpdate); +void OSSL_CMP_CRLSTATUS_free(OSSL_CMP_CRLSTATUS *crlstatus); +OSSL_CMP_ITAV +*OSSL_CMP_ITAV_new0_crlStatusList(STACK_OF(OSSL_CMP_CRLSTATUS) *crlStatusList); +int OSSL_CMP_ITAV_get0_crlStatusList(const OSSL_CMP_ITAV *itav, + STACK_OF(OSSL_CMP_CRLSTATUS) **out); +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new_crls(const X509_CRL *crls); +int OSSL_CMP_ITAV_get0_crls(const OSSL_CMP_ITAV *it, STACK_OF(X509_CRL) **out); +OSSL_CMP_ITAV +*OSSL_CMP_ITAV_new0_certReqTemplate(OSSL_CRMF_CERTTEMPLATE *certTemplate, + OSSL_CMP_ATAVS *keySpec); +int OSSL_CMP_ITAV_get1_certReqTemplate(const OSSL_CMP_ITAV *itav, + OSSL_CRMF_CERTTEMPLATE **certTemplate, + OSSL_CMP_ATAVS **keySpec); + +OSSL_CMP_ATAV *OSSL_CMP_ATAV_create(ASN1_OBJECT *type, ASN1_TYPE *value); +void OSSL_CMP_ATAV_set0(OSSL_CMP_ATAV *itav, ASN1_OBJECT *type, + ASN1_TYPE *value); +ASN1_OBJECT *OSSL_CMP_ATAV_get0_type(const OSSL_CMP_ATAV *itav); +ASN1_TYPE *OSSL_CMP_ATAV_get0_value(const OSSL_CMP_ATAV *itav); +OSSL_CMP_ATAV *OSSL_CMP_ATAV_new_algId(const X509_ALGOR *alg); +X509_ALGOR *OSSL_CMP_ATAV_get0_algId(const OSSL_CMP_ATAV *atav); +OSSL_CMP_ATAV *OSSL_CMP_ATAV_new_rsaKeyLen(int len); +int OSSL_CMP_ATAV_get_rsaKeyLen(const OSSL_CMP_ATAV *atav); +int OSSL_CMP_ATAV_push1(OSSL_CMP_ATAVS **sk_p, const OSSL_CMP_ATAV *atav); + void OSSL_CMP_MSG_free(OSSL_CMP_MSG *msg); /* from cmp_ctx.c */ OSSL_CMP_CTX *OSSL_CMP_CTX_new(OSSL_LIB_CTX *libctx, const char *propq); void OSSL_CMP_CTX_free(OSSL_CMP_CTX *ctx); int OSSL_CMP_CTX_reinit(OSSL_CMP_CTX *ctx); +OSSL_LIB_CTX *OSSL_CMP_CTX_get0_libctx(const OSSL_CMP_CTX *ctx); +const char *OSSL_CMP_CTX_get0_propq(const OSSL_CMP_CTX *ctx); /* CMP general options: */ # define OSSL_CMP_OPT_LOG_VERBOSITY 0 /* CMP transfer options: */ -# define OSSL_CMP_OPT_KEEP_ALIVE 10 -# define OSSL_CMP_OPT_MSG_TIMEOUT 11 +# define OSSL_CMP_OPT_KEEP_ALIVE 10 +# define OSSL_CMP_OPT_MSG_TIMEOUT 11 # define OSSL_CMP_OPT_TOTAL_TIMEOUT 12 +# define OSSL_CMP_OPT_USE_TLS 13 /* CMP request options: */ # define OSSL_CMP_OPT_VALIDITY_DAYS 20 # define OSSL_CMP_OPT_SUBJECTALTNAME_NODEFAULT 21 @@ -407,6 +502,7 @@ int OSSL_CMP_CTX_reinit(OSSL_CMP_CTX *ctx); # define OSSL_CMP_OPT_DIGEST_ALGNID 34 # define OSSL_CMP_OPT_IGNORE_KEYUSAGE 35 # define OSSL_CMP_OPT_PERMIT_TA_IN_EXTRACERTS_FOR_IR 36 +# define OSSL_CMP_OPT_NO_CACHE_EXTRACERTS 37 int OSSL_CMP_CTX_set_option(OSSL_CMP_CTX *ctx, int opt, int val); int OSSL_CMP_CTX_get_option(const OSSL_CMP_CTX *ctx, int opt); /* CMP-specific callback for logging and outputting the error queue: */ @@ -420,9 +516,11 @@ int OSSL_CMP_CTX_set1_server(OSSL_CMP_CTX *ctx, const char *address); int OSSL_CMP_CTX_set_serverPort(OSSL_CMP_CTX *ctx, int port); int OSSL_CMP_CTX_set1_proxy(OSSL_CMP_CTX *ctx, const char *name); int OSSL_CMP_CTX_set1_no_proxy(OSSL_CMP_CTX *ctx, const char *names); +# ifndef OPENSSL_NO_HTTP int OSSL_CMP_CTX_set_http_cb(OSSL_CMP_CTX *ctx, OSSL_HTTP_bio_cb_t cb); int OSSL_CMP_CTX_set_http_cb_arg(OSSL_CMP_CTX *ctx, void *arg); void *OSSL_CMP_CTX_get_http_cb_arg(const OSSL_CMP_CTX *ctx); +# endif typedef OSSL_CMP_MSG *(*OSSL_CMP_transfer_cb_t) (OSSL_CMP_CTX *ctx, const OSSL_CMP_MSG *req); int OSSL_CMP_CTX_set_transfer_cb(OSSL_CMP_CTX *ctx, OSSL_CMP_transfer_cb_t cb); @@ -432,7 +530,9 @@ void *OSSL_CMP_CTX_get_transfer_cb_arg(const OSSL_CMP_CTX *ctx); int OSSL_CMP_CTX_set1_srvCert(OSSL_CMP_CTX *ctx, X509 *cert); int OSSL_CMP_CTX_set1_expected_sender(OSSL_CMP_CTX *ctx, const X509_NAME *name); int OSSL_CMP_CTX_set0_trustedStore(OSSL_CMP_CTX *ctx, X509_STORE *store); +# define OSSL_CMP_CTX_set0_trusted OSSL_CMP_CTX_set0_trustedStore X509_STORE *OSSL_CMP_CTX_get0_trustedStore(const OSSL_CMP_CTX *ctx); +# define OSSL_CMP_CTX_get0_trusted OSSL_CMP_CTX_get0_trustedStore int OSSL_CMP_CTX_set1_untrusted(OSSL_CMP_CTX *ctx, STACK_OF(X509) *certs); STACK_OF(X509) *OSSL_CMP_CTX_get0_untrusted(const OSSL_CMP_CTX *ctx); /* client authentication: */ @@ -448,12 +548,15 @@ int OSSL_CMP_CTX_set1_secretValue(OSSL_CMP_CTX *ctx, int OSSL_CMP_CTX_set1_recipient(OSSL_CMP_CTX *ctx, const X509_NAME *name); int OSSL_CMP_CTX_push0_geninfo_ITAV(OSSL_CMP_CTX *ctx, OSSL_CMP_ITAV *itav); int OSSL_CMP_CTX_reset_geninfo_ITAVs(OSSL_CMP_CTX *ctx); +STACK_OF(OSSL_CMP_ITAV) + *OSSL_CMP_CTX_get0_geninfo_ITAVs(const OSSL_CMP_CTX *ctx); int OSSL_CMP_CTX_set1_extraCertsOut(OSSL_CMP_CTX *ctx, STACK_OF(X509) *extraCertsOut); /* certificate template: */ int OSSL_CMP_CTX_set0_newPkey(OSSL_CMP_CTX *ctx, int priv, EVP_PKEY *pkey); EVP_PKEY *OSSL_CMP_CTX_get0_newPkey(const OSSL_CMP_CTX *ctx, int priv); int OSSL_CMP_CTX_set1_issuer(OSSL_CMP_CTX *ctx, const X509_NAME *name); +int OSSL_CMP_CTX_set1_serialNumber(OSSL_CMP_CTX *ctx, const ASN1_INTEGER *sn); int OSSL_CMP_CTX_set1_subjectName(OSSL_CMP_CTX *ctx, const X509_NAME *name); int OSSL_CMP_CTX_push1_subjectAltName(OSSL_CMP_CTX *ctx, const GENERAL_NAME *name); @@ -477,6 +580,7 @@ int OSSL_CMP_CTX_get_status(const OSSL_CMP_CTX *ctx); OSSL_CMP_PKIFREETEXT *OSSL_CMP_CTX_get0_statusString(const OSSL_CMP_CTX *ctx); int OSSL_CMP_CTX_get_failInfoCode(const OSSL_CMP_CTX *ctx); # define OSSL_CMP_PKISI_BUFLEN 1024 +X509 *OSSL_CMP_CTX_get0_validatedSrvCert(const OSSL_CMP_CTX *ctx); X509 *OSSL_CMP_CTX_get0_newCert(const OSSL_CMP_CTX *ctx); STACK_OF(X509) *OSSL_CMP_CTX_get1_newChain(const OSSL_CMP_CTX *ctx); STACK_OF(X509) *OSSL_CMP_CTX_get1_caPubs(const OSSL_CMP_CTX *ctx); @@ -498,10 +602,13 @@ OSSL_CMP_STATUSINFO_new(int status, int fail_info, const char *text); ASN1_OCTET_STRING *OSSL_CMP_HDR_get0_transactionID(const OSSL_CMP_PKIHEADER *hdr); ASN1_OCTET_STRING *OSSL_CMP_HDR_get0_recipNonce(const OSSL_CMP_PKIHEADER *hdr); +STACK_OF(OSSL_CMP_ITAV) + *OSSL_CMP_HDR_get0_geninfo_ITAVs(const OSSL_CMP_PKIHEADER *hdr); /* from cmp_msg.c */ OSSL_CMP_PKIHEADER *OSSL_CMP_MSG_get0_header(const OSSL_CMP_MSG *msg); int OSSL_CMP_MSG_get_bodytype(const OSSL_CMP_MSG *msg); +X509_PUBKEY *OSSL_CMP_MSG_get0_certreq_publickey(const OSSL_CMP_MSG *msg); int OSSL_CMP_MSG_update_transactionID(OSSL_CMP_CTX *ctx, OSSL_CMP_MSG *msg); int OSSL_CMP_MSG_update_recipNonce(OSSL_CMP_CTX *ctx, OSSL_CMP_MSG *msg); OSSL_CRMF_MSG *OSSL_CMP_CTX_setup_CRM(OSSL_CMP_CTX *ctx, int for_KUR, int rid); @@ -517,8 +624,10 @@ int OSSL_CMP_validate_cert_path(const OSSL_CMP_CTX *ctx, X509_STORE *trusted_store, X509 *cert); /* from cmp_http.c */ +# ifndef OPENSSL_NO_HTTP OSSL_CMP_MSG *OSSL_CMP_MSG_http_perform(OSSL_CMP_CTX *ctx, const OSSL_CMP_MSG *req); +# endif /* from cmp_server.c */ typedef struct ossl_cmp_srv_ctx_st OSSL_CMP_SRV_CTX; @@ -561,6 +670,13 @@ int OSSL_CMP_SRV_CTX_init(OSSL_CMP_SRV_CTX *srv_ctx, void *custom_ctx, OSSL_CMP_SRV_error_cb_t process_error, OSSL_CMP_SRV_certConf_cb_t process_certConf, OSSL_CMP_SRV_pollReq_cb_t process_pollReq); +typedef int (*OSSL_CMP_SRV_delayed_delivery_cb_t)(OSSL_CMP_SRV_CTX *srv_ctx, + const OSSL_CMP_MSG *req); +typedef int (*OSSL_CMP_SRV_clean_transaction_cb_t)(OSSL_CMP_SRV_CTX *srv_ctx, + const ASN1_OCTET_STRING *id); +int OSSL_CMP_SRV_CTX_init_trans(OSSL_CMP_SRV_CTX *srv_ctx, + OSSL_CMP_SRV_delayed_delivery_cb_t delay, + OSSL_CMP_SRV_clean_transaction_cb_t clean); OSSL_CMP_CTX *OSSL_CMP_SRV_CTX_get0_cmp_ctx(const OSSL_CMP_SRV_CTX *srv_ctx); void *OSSL_CMP_SRV_CTX_get0_custom_ctx(const OSSL_CMP_SRV_CTX *srv_ctx); int OSSL_CMP_SRV_CTX_set_send_unprotected_errors(OSSL_CMP_SRV_CTX *srv_ctx, @@ -577,6 +693,8 @@ X509 *OSSL_CMP_exec_certreq(OSSL_CMP_CTX *ctx, int req_type, # define OSSL_CMP_CR 2 # define OSSL_CMP_P10CR 4 # define OSSL_CMP_KUR 7 +# define OSSL_CMP_GENM 21 +# define OSSL_CMP_ERROR 23 # define OSSL_CMP_exec_IR_ses(ctx) \ OSSL_CMP_exec_certreq(ctx, OSSL_CMP_IR, NULL) # define OSSL_CMP_exec_CR_ses(ctx) \ @@ -590,6 +708,18 @@ int OSSL_CMP_try_certreq(OSSL_CMP_CTX *ctx, int req_type, int OSSL_CMP_exec_RR_ses(OSSL_CMP_CTX *ctx); STACK_OF(OSSL_CMP_ITAV) *OSSL_CMP_exec_GENM_ses(OSSL_CMP_CTX *ctx); +/* from cmp_genm.c */ +int OSSL_CMP_get1_caCerts(OSSL_CMP_CTX *ctx, STACK_OF(X509) **out); +int OSSL_CMP_get1_rootCaKeyUpdate(OSSL_CMP_CTX *ctx, + const X509 *oldWithOld, X509 **newWithNew, + X509 **newWithOld, X509 **oldWithNew); +int OSSL_CMP_get1_crlUpdate(OSSL_CMP_CTX *ctx, const X509 *crlcert, + const X509_CRL *last_crl, + X509_CRL **crl); +int OSSL_CMP_get1_certReqTemplate(OSSL_CMP_CTX *ctx, + OSSL_CRMF_CERTTEMPLATE **certTemplate, + OSSL_CMP_ATAVS **keySpec); + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/linux-elf/asm/include/openssl/cms.h b/deps/openssl/config/archs/linux-elf/asm/include/openssl/cms.h index 3b453e6a2187a2..63afab563557b0 100644 --- a/deps/openssl/config/archs/linux-elf/asm/include/openssl/cms.h +++ b/deps/openssl/config/archs/linux-elf/asm/include/openssl/cms.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/cms.h.in * - * Copyright 2008-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2008-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -31,8 +31,10 @@ extern "C" { # endif +typedef struct CMS_EnvelopedData_st CMS_EnvelopedData; typedef struct CMS_ContentInfo_st CMS_ContentInfo; typedef struct CMS_SignerInfo_st CMS_SignerInfo; +typedef struct CMS_SignedData_st CMS_SignedData; typedef struct CMS_CertificateChoices CMS_CertificateChoices; typedef struct CMS_RevocationInfoChoice_st CMS_RevocationInfoChoice; typedef struct CMS_RecipientInfo_st CMS_RecipientInfo; @@ -147,10 +149,14 @@ SKM_DEFINE_STACK_OF_INTERNAL(CMS_RevocationInfoChoice, CMS_RevocationInfoChoice, #define sk_CMS_RevocationInfoChoice_set_cmp_func(sk, cmp) ((sk_CMS_RevocationInfoChoice_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_CMS_RevocationInfoChoice_sk_type(sk), ossl_check_CMS_RevocationInfoChoice_compfunc_type(cmp))) +DECLARE_ASN1_ITEM(CMS_EnvelopedData) +DECLARE_ASN1_ALLOC_FUNCTIONS(CMS_SignedData) DECLARE_ASN1_FUNCTIONS(CMS_ContentInfo) DECLARE_ASN1_FUNCTIONS(CMS_ReceiptRequest) DECLARE_ASN1_PRINT_FUNCTION(CMS_ContentInfo) +DECLARE_ASN1_DUP_FUNCTION(CMS_EnvelopedData) + CMS_ContentInfo *CMS_ContentInfo_new_ex(OSSL_LIB_CTX *libctx, const char *propq); # define CMS_SIGNERINFO_ISSUER_SERIAL 0 @@ -190,6 +196,7 @@ CMS_ContentInfo *CMS_ContentInfo_new_ex(OSSL_LIB_CTX *libctx, const char *propq) # define CMS_ASCIICRLF 0x80000 # define CMS_CADES 0x100000 # define CMS_USE_ORIGINATOR_KEYID 0x200000 +# define CMS_NO_SIGNING_TIME 0x400000 const ASN1_OBJECT *CMS_get0_type(const CMS_ContentInfo *cms); @@ -217,13 +224,16 @@ int SMIME_write_CMS(BIO *bio, CMS_ContentInfo *cms, BIO *data, int flags); int CMS_final(CMS_ContentInfo *cms, BIO *data, BIO *dcont, unsigned int flags); +int CMS_final_digest(CMS_ContentInfo *cms, + const unsigned char *md, unsigned int mdlen, BIO *dcont, + unsigned int flags); CMS_ContentInfo *CMS_sign(X509 *signcert, EVP_PKEY *pkey, STACK_OF(X509) *certs, BIO *data, unsigned int flags); CMS_ContentInfo *CMS_sign_ex(X509 *signcert, EVP_PKEY *pkey, STACK_OF(X509) *certs, BIO *data, - unsigned int flags, OSSL_LIB_CTX *ctx, + unsigned int flags, OSSL_LIB_CTX *libctx, const char *propq); CMS_ContentInfo *CMS_sign_receipt(CMS_SignerInfo *si, @@ -233,27 +243,26 @@ CMS_ContentInfo *CMS_sign_receipt(CMS_SignerInfo *si, int CMS_data(CMS_ContentInfo *cms, BIO *out, unsigned int flags); CMS_ContentInfo *CMS_data_create(BIO *in, unsigned int flags); CMS_ContentInfo *CMS_data_create_ex(BIO *in, unsigned int flags, - OSSL_LIB_CTX *ctx, const char *propq); + OSSL_LIB_CTX *libctx, const char *propq); int CMS_digest_verify(CMS_ContentInfo *cms, BIO *dcont, BIO *out, unsigned int flags); CMS_ContentInfo *CMS_digest_create(BIO *in, const EVP_MD *md, unsigned int flags); CMS_ContentInfo *CMS_digest_create_ex(BIO *in, const EVP_MD *md, - unsigned int flags, OSSL_LIB_CTX *ctx, + unsigned int flags, OSSL_LIB_CTX *libctx, const char *propq); int CMS_EncryptedData_decrypt(CMS_ContentInfo *cms, const unsigned char *key, size_t keylen, BIO *dcont, BIO *out, unsigned int flags); - CMS_ContentInfo *CMS_EncryptedData_encrypt(BIO *in, const EVP_CIPHER *cipher, const unsigned char *key, size_t keylen, unsigned int flags); CMS_ContentInfo *CMS_EncryptedData_encrypt_ex(BIO *in, const EVP_CIPHER *cipher, const unsigned char *key, size_t keylen, unsigned int flags, - OSSL_LIB_CTX *ctx, + OSSL_LIB_CTX *libctx, const char *propq); int CMS_EncryptedData_set1_key(CMS_ContentInfo *cms, const EVP_CIPHER *ciph, @@ -272,7 +281,7 @@ CMS_ContentInfo *CMS_encrypt(STACK_OF(X509) *certs, BIO *in, const EVP_CIPHER *cipher, unsigned int flags); CMS_ContentInfo *CMS_encrypt_ex(STACK_OF(X509) *certs, BIO *in, const EVP_CIPHER *cipher, unsigned int flags, - OSSL_LIB_CTX *ctx, const char *propq); + OSSL_LIB_CTX *libctx, const char *propq); int CMS_decrypt(CMS_ContentInfo *cms, EVP_PKEY *pkey, X509 *cert, BIO *dcont, BIO *out, unsigned int flags); @@ -291,12 +300,16 @@ int CMS_RecipientInfo_type(CMS_RecipientInfo *ri); EVP_PKEY_CTX *CMS_RecipientInfo_get0_pkey_ctx(CMS_RecipientInfo *ri); CMS_ContentInfo *CMS_AuthEnvelopedData_create(const EVP_CIPHER *cipher); CMS_ContentInfo * -CMS_AuthEnvelopedData_create_ex(const EVP_CIPHER *cipher, OSSL_LIB_CTX *ctx, +CMS_AuthEnvelopedData_create_ex(const EVP_CIPHER *cipher, OSSL_LIB_CTX *libctx, const char *propq); CMS_ContentInfo *CMS_EnvelopedData_create(const EVP_CIPHER *cipher); CMS_ContentInfo *CMS_EnvelopedData_create_ex(const EVP_CIPHER *cipher, - OSSL_LIB_CTX *ctx, + OSSL_LIB_CTX *libctx, const char *propq); +BIO *CMS_EnvelopedData_decrypt(CMS_EnvelopedData *env, BIO *detached_data, + EVP_PKEY *pkey, X509 *cert, + ASN1_OCTET_STRING *secret, unsigned int flags, + OSSL_LIB_CTX *libctx, const char *propq); CMS_RecipientInfo *CMS_add1_recipient_cert(CMS_ContentInfo *cms, X509 *recip, unsigned int flags); @@ -385,6 +398,11 @@ ASN1_OCTET_STRING *CMS_SignerInfo_get0_signature(CMS_SignerInfo *si); int CMS_SignerInfo_sign(CMS_SignerInfo *si); int CMS_SignerInfo_verify(CMS_SignerInfo *si); int CMS_SignerInfo_verify_content(CMS_SignerInfo *si, BIO *chain); +BIO *CMS_SignedData_verify(CMS_SignedData *sd, BIO *detached_data, + STACK_OF(X509) *scerts, X509_STORE *store, + STACK_OF(X509) *extra, STACK_OF(X509_CRL) *crls, + unsigned int flags, + OSSL_LIB_CTX *libctx, const char *propq); int CMS_add_smimecap(CMS_SignerInfo *si, STACK_OF(X509_ALGOR) *algs); int CMS_add_simple_smimecap(STACK_OF(X509_ALGOR) **algs, @@ -441,7 +459,7 @@ CMS_ReceiptRequest *CMS_ReceiptRequest_create0_ex( unsigned char *id, int idlen, int allorfirst, STACK_OF(GENERAL_NAMES) *receiptList, STACK_OF(GENERAL_NAMES) *receiptsTo, - OSSL_LIB_CTX *ctx); + OSSL_LIB_CTX *libctx); int CMS_add1_ReceiptRequest(CMS_SignerInfo *si, CMS_ReceiptRequest *rr); void CMS_ReceiptRequest_get0_values(CMS_ReceiptRequest *rr, diff --git a/deps/openssl/config/archs/linux-elf/asm/include/openssl/comp.h b/deps/openssl/config/archs/linux-elf/asm/include/openssl/comp.h new file mode 100644 index 00000000000000..90e39511fe8d28 --- /dev/null +++ b/deps/openssl/config/archs/linux-elf/asm/include/openssl/comp.h @@ -0,0 +1,98 @@ +/* + * Copyright 2015-2024 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + + +#ifndef OPENSSL_COMP_H +# define OPENSSL_COMP_H +# pragma once + +# include +# ifndef OPENSSL_NO_DEPRECATED_3_0 +# define HEADER_COMP_H +# endif + +# include + +# include +# include +# ifdef __cplusplus +extern "C" { +# endif + + + +# ifndef OPENSSL_NO_COMP + +COMP_CTX *COMP_CTX_new(COMP_METHOD *meth); +const COMP_METHOD *COMP_CTX_get_method(const COMP_CTX *ctx); +int COMP_CTX_get_type(const COMP_CTX* comp); +int COMP_get_type(const COMP_METHOD *meth); +const char *COMP_get_name(const COMP_METHOD *meth); +void COMP_CTX_free(COMP_CTX *ctx); + +int COMP_compress_block(COMP_CTX *ctx, unsigned char *out, int olen, + unsigned char *in, int ilen); +int COMP_expand_block(COMP_CTX *ctx, unsigned char *out, int olen, + unsigned char *in, int ilen); + +COMP_METHOD *COMP_zlib(void); +COMP_METHOD *COMP_zlib_oneshot(void); +COMP_METHOD *COMP_brotli(void); +COMP_METHOD *COMP_brotli_oneshot(void); +COMP_METHOD *COMP_zstd(void); +COMP_METHOD *COMP_zstd_oneshot(void); + +# ifndef OPENSSL_NO_DEPRECATED_1_1_0 +# define COMP_zlib_cleanup() while(0) continue +# endif + +# ifdef OPENSSL_BIO_H +const BIO_METHOD *BIO_f_zlib(void); +const BIO_METHOD *BIO_f_brotli(void); +const BIO_METHOD *BIO_f_zstd(void); +# endif + +# endif + +typedef struct ssl_comp_st SSL_COMP; + +SKM_DEFINE_STACK_OF_INTERNAL(SSL_COMP, SSL_COMP, SSL_COMP) +#define sk_SSL_COMP_num(sk) OPENSSL_sk_num(ossl_check_const_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_value(sk, idx) ((SSL_COMP *)OPENSSL_sk_value(ossl_check_const_SSL_COMP_sk_type(sk), (idx))) +#define sk_SSL_COMP_new(cmp) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new(ossl_check_SSL_COMP_compfunc_type(cmp))) +#define sk_SSL_COMP_new_null() ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new_null()) +#define sk_SSL_COMP_new_reserve(cmp, n) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new_reserve(ossl_check_SSL_COMP_compfunc_type(cmp), (n))) +#define sk_SSL_COMP_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_SSL_COMP_sk_type(sk), (n)) +#define sk_SSL_COMP_free(sk) OPENSSL_sk_free(ossl_check_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_zero(sk) OPENSSL_sk_zero(ossl_check_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_delete(sk, i) ((SSL_COMP *)OPENSSL_sk_delete(ossl_check_SSL_COMP_sk_type(sk), (i))) +#define sk_SSL_COMP_delete_ptr(sk, ptr) ((SSL_COMP *)OPENSSL_sk_delete_ptr(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr))) +#define sk_SSL_COMP_push(sk, ptr) OPENSSL_sk_push(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) +#define sk_SSL_COMP_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) +#define sk_SSL_COMP_pop(sk) ((SSL_COMP *)OPENSSL_sk_pop(ossl_check_SSL_COMP_sk_type(sk))) +#define sk_SSL_COMP_shift(sk) ((SSL_COMP *)OPENSSL_sk_shift(ossl_check_SSL_COMP_sk_type(sk))) +#define sk_SSL_COMP_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_SSL_COMP_sk_type(sk),ossl_check_SSL_COMP_freefunc_type(freefunc)) +#define sk_SSL_COMP_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr), (idx)) +#define sk_SSL_COMP_set(sk, idx, ptr) ((SSL_COMP *)OPENSSL_sk_set(ossl_check_SSL_COMP_sk_type(sk), (idx), ossl_check_SSL_COMP_type(ptr))) +#define sk_SSL_COMP_find(sk, ptr) OPENSSL_sk_find(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) +#define sk_SSL_COMP_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) +#define sk_SSL_COMP_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr), pnum) +#define sk_SSL_COMP_sort(sk) OPENSSL_sk_sort(ossl_check_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_dup(sk) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_dup(ossl_check_const_SSL_COMP_sk_type(sk))) +#define sk_SSL_COMP_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_deep_copy(ossl_check_const_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_copyfunc_type(copyfunc), ossl_check_SSL_COMP_freefunc_type(freefunc))) +#define sk_SSL_COMP_set_cmp_func(sk, cmp) ((sk_SSL_COMP_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_compfunc_type(cmp))) + + + +# ifdef __cplusplus +} +# endif +#endif diff --git a/deps/openssl/config/archs/linux-elf/asm/include/openssl/conf.h b/deps/openssl/config/archs/linux-elf/asm/include/openssl/conf.h index 44989929f6c84a..38576290bf641b 100644 --- a/deps/openssl/config/archs/linux-elf/asm/include/openssl/conf.h +++ b/deps/openssl/config/archs/linux-elf/asm/include/openssl/conf.h @@ -27,6 +27,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -65,7 +68,7 @@ SKM_DEFINE_STACK_OF_INTERNAL(CONF_VALUE, CONF_VALUE, CONF_VALUE) #define sk_CONF_VALUE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(CONF_VALUE) *)OPENSSL_sk_deep_copy(ossl_check_const_CONF_VALUE_sk_type(sk), ossl_check_CONF_VALUE_copyfunc_type(copyfunc), ossl_check_CONF_VALUE_freefunc_type(freefunc))) #define sk_CONF_VALUE_set_cmp_func(sk, cmp) ((sk_CONF_VALUE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_CONF_VALUE_sk_type(sk), ossl_check_CONF_VALUE_compfunc_type(cmp))) DEFINE_LHASH_OF_INTERNAL(CONF_VALUE); -#define lh_CONF_VALUE_new(hfn, cmp) ((LHASH_OF(CONF_VALUE) *)OPENSSL_LH_new(ossl_check_CONF_VALUE_lh_hashfunc_type(hfn), ossl_check_CONF_VALUE_lh_compfunc_type(cmp))) +#define lh_CONF_VALUE_new(hfn, cmp) ((LHASH_OF(CONF_VALUE) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new(ossl_check_CONF_VALUE_lh_hashfunc_type(hfn), ossl_check_CONF_VALUE_lh_compfunc_type(cmp)), lh_CONF_VALUE_hash_thunk, lh_CONF_VALUE_comp_thunk, lh_CONF_VALUE_doall_thunk, lh_CONF_VALUE_doall_arg_thunk)) #define lh_CONF_VALUE_free(lh) OPENSSL_LH_free(ossl_check_CONF_VALUE_lh_type(lh)) #define lh_CONF_VALUE_flush(lh) OPENSSL_LH_flush(ossl_check_CONF_VALUE_lh_type(lh)) #define lh_CONF_VALUE_insert(lh, ptr) ((CONF_VALUE *)OPENSSL_LH_insert(ossl_check_CONF_VALUE_lh_type(lh), ossl_check_CONF_VALUE_lh_plain_type(ptr))) diff --git a/deps/openssl/config/archs/linux-elf/asm/include/openssl/configuration.h b/deps/openssl/config/archs/linux-elf/asm/include/openssl/configuration.h index 037bcb97508fec..d6b003eeb66b01 100644 --- a/deps/openssl/config/archs/linux-elf/asm/include/openssl/configuration.h +++ b/deps/openssl/config/archs/linux-elf/asm/include/openssl/configuration.h @@ -27,7 +27,7 @@ extern "C" { * OpenSSL was configured with the following options: */ -# define OPENSSL_CONFIGURED_API 30000 +# define OPENSSL_CONFIGURED_API 30500 # ifndef OPENSSL_RAND_SEED_OS # define OPENSSL_RAND_SEED_OS # endif @@ -40,6 +40,12 @@ extern "C" { # ifndef OPENSSL_NO_ASAN # define OPENSSL_NO_ASAN # endif +# ifndef OPENSSL_NO_BROTLI +# define OPENSSL_NO_BROTLI +# endif +# ifndef OPENSSL_NO_BROTLI_DYNAMIC +# define OPENSSL_NO_BROTLI_DYNAMIC +# endif # ifndef OPENSSL_NO_COMP # define OPENSSL_NO_COMP # endif @@ -49,6 +55,9 @@ extern "C" { # ifndef OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE # define OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE # endif +# ifndef OPENSSL_NO_DEMOS +# define OPENSSL_NO_DEMOS +# endif # ifndef OPENSSL_NO_DEVCRYPTOENG # define OPENSSL_NO_DEVCRYPTOENG # endif @@ -61,12 +70,24 @@ extern "C" { # ifndef OPENSSL_NO_EXTERNAL_TESTS # define OPENSSL_NO_EXTERNAL_TESTS # endif +# ifndef OPENSSL_NO_FIPS_JITTER +# define OPENSSL_NO_FIPS_JITTER +# endif # ifndef OPENSSL_NO_FUZZ_AFL # define OPENSSL_NO_FUZZ_AFL # endif # ifndef OPENSSL_NO_FUZZ_LIBFUZZER # define OPENSSL_NO_FUZZ_LIBFUZZER # endif +# ifndef OPENSSL_NO_H3DEMO +# define OPENSSL_NO_H3DEMO +# endif +# ifndef OPENSSL_NO_HQINTEROP +# define OPENSSL_NO_HQINTEROP +# endif +# ifndef OPENSSL_NO_JITTER +# define OPENSSL_NO_JITTER +# endif # ifndef OPENSSL_NO_KTLS # define OPENSSL_NO_KTLS # endif @@ -79,6 +100,9 @@ extern "C" { # ifndef OPENSSL_NO_MSAN # define OPENSSL_NO_MSAN # endif +# ifndef OPENSSL_NO_PIE +# define OPENSSL_NO_PIE +# endif # ifndef OPENSSL_NO_RC5 # define OPENSSL_NO_RC5 # endif @@ -91,6 +115,12 @@ extern "C" { # ifndef OPENSSL_NO_SSL3_METHOD # define OPENSSL_NO_SSL3_METHOD # endif +# ifndef OPENSSL_NO_SSLKEYLOG +# define OPENSSL_NO_SSLKEYLOG +# endif +# ifndef OPENSSL_NO_TFO +# define OPENSSL_NO_TFO +# endif # ifndef OPENSSL_NO_TRACE # define OPENSSL_NO_TRACE # endif @@ -106,6 +136,21 @@ extern "C" { # ifndef OPENSSL_NO_WEAK_SSL_CIPHERS # define OPENSSL_NO_WEAK_SSL_CIPHERS # endif +# ifndef OPENSSL_NO_WINSTORE +# define OPENSSL_NO_WINSTORE +# endif +# ifndef OPENSSL_NO_ZLIB +# define OPENSSL_NO_ZLIB +# endif +# ifndef OPENSSL_NO_ZLIB_DYNAMIC +# define OPENSSL_NO_ZLIB_DYNAMIC +# endif +# ifndef OPENSSL_NO_ZSTD +# define OPENSSL_NO_ZSTD +# endif +# ifndef OPENSSL_NO_ZSTD_DYNAMIC +# define OPENSSL_NO_ZSTD_DYNAMIC +# endif # ifndef OPENSSL_NO_DYNAMIC_ENGINE # define OPENSSL_NO_DYNAMIC_ENGINE # endif @@ -127,6 +172,12 @@ extern "C" { # define RC4_INT unsigned int +# if defined(OPENSSL_NO_COMP) || (defined(OPENSSL_NO_BROTLI) && defined(OPENSSL_NO_ZSTD) && defined(OPENSSL_NO_ZLIB)) +# define OPENSSL_NO_COMP_ALG +# else +# undef OPENSSL_NO_COMP_ALG +# endif + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/linux-elf/asm/include/openssl/core_names.h b/deps/openssl/config/archs/linux-elf/asm/include/openssl/core_names.h new file mode 100644 index 00000000000000..e93e79a52bc910 --- /dev/null +++ b/deps/openssl/config/archs/linux-elf/asm/include/openssl/core_names.h @@ -0,0 +1,575 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from include/openssl/core_names.h.in + * + * Copyright 2019-2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + +#ifndef OPENSSL_CORE_NAMES_H +# define OPENSSL_CORE_NAMES_H +# pragma once + +# ifdef __cplusplus +extern "C" { +# endif + +/* OSSL_CIPHER_PARAM_CTS_MODE Values */ +# define OSSL_CIPHER_CTS_MODE_CS1 "CS1" +# define OSSL_CIPHER_CTS_MODE_CS2 "CS2" +# define OSSL_CIPHER_CTS_MODE_CS3 "CS3" + +/* Known CIPHER names (not a complete list) */ +# define OSSL_CIPHER_NAME_AES_128_GCM_SIV "AES-128-GCM-SIV" +# define OSSL_CIPHER_NAME_AES_192_GCM_SIV "AES-192-GCM-SIV" +# define OSSL_CIPHER_NAME_AES_256_GCM_SIV "AES-256-GCM-SIV" + +/* Known DIGEST names (not a complete list) */ +# define OSSL_DIGEST_NAME_MD5 "MD5" +# define OSSL_DIGEST_NAME_MD5_SHA1 "MD5-SHA1" +# define OSSL_DIGEST_NAME_SHA1 "SHA1" +# define OSSL_DIGEST_NAME_SHA2_224 "SHA2-224" +# define OSSL_DIGEST_NAME_SHA2_256 "SHA2-256" +# define OSSL_DIGEST_NAME_SHA2_256_192 "SHA2-256/192" +# define OSSL_DIGEST_NAME_SHA2_384 "SHA2-384" +# define OSSL_DIGEST_NAME_SHA2_512 "SHA2-512" +# define OSSL_DIGEST_NAME_SHA2_512_224 "SHA2-512/224" +# define OSSL_DIGEST_NAME_SHA2_512_256 "SHA2-512/256" +# define OSSL_DIGEST_NAME_MD2 "MD2" +# define OSSL_DIGEST_NAME_MD4 "MD4" +# define OSSL_DIGEST_NAME_MDC2 "MDC2" +# define OSSL_DIGEST_NAME_RIPEMD160 "RIPEMD160" +# define OSSL_DIGEST_NAME_SHA3_224 "SHA3-224" +# define OSSL_DIGEST_NAME_SHA3_256 "SHA3-256" +# define OSSL_DIGEST_NAME_SHA3_384 "SHA3-384" +# define OSSL_DIGEST_NAME_SHA3_512 "SHA3-512" +# define OSSL_DIGEST_NAME_KECCAK_KMAC128 "KECCAK-KMAC-128" +# define OSSL_DIGEST_NAME_KECCAK_KMAC256 "KECCAK-KMAC-256" +# define OSSL_DIGEST_NAME_SM3 "SM3" + +/* Known MAC names */ +# define OSSL_MAC_NAME_BLAKE2BMAC "BLAKE2BMAC" +# define OSSL_MAC_NAME_BLAKE2SMAC "BLAKE2SMAC" +# define OSSL_MAC_NAME_CMAC "CMAC" +# define OSSL_MAC_NAME_GMAC "GMAC" +# define OSSL_MAC_NAME_HMAC "HMAC" +# define OSSL_MAC_NAME_KMAC128 "KMAC128" +# define OSSL_MAC_NAME_KMAC256 "KMAC256" +# define OSSL_MAC_NAME_POLY1305 "POLY1305" +# define OSSL_MAC_NAME_SIPHASH "SIPHASH" + +/* Known KDF names */ +# define OSSL_KDF_NAME_HKDF "HKDF" +# define OSSL_KDF_NAME_TLS1_3_KDF "TLS13-KDF" +# define OSSL_KDF_NAME_PBKDF1 "PBKDF1" +# define OSSL_KDF_NAME_PBKDF2 "PBKDF2" +# define OSSL_KDF_NAME_SCRYPT "SCRYPT" +# define OSSL_KDF_NAME_SSHKDF "SSHKDF" +# define OSSL_KDF_NAME_SSKDF "SSKDF" +# define OSSL_KDF_NAME_TLS1_PRF "TLS1-PRF" +# define OSSL_KDF_NAME_X942KDF_ASN1 "X942KDF-ASN1" +# define OSSL_KDF_NAME_X942KDF_CONCAT "X942KDF-CONCAT" +# define OSSL_KDF_NAME_X963KDF "X963KDF" +# define OSSL_KDF_NAME_KBKDF "KBKDF" +# define OSSL_KDF_NAME_KRB5KDF "KRB5KDF" +# define OSSL_KDF_NAME_HMACDRBGKDF "HMAC-DRBG-KDF" + +/* RSA padding modes */ +# define OSSL_PKEY_RSA_PAD_MODE_NONE "none" +# define OSSL_PKEY_RSA_PAD_MODE_PKCSV15 "pkcs1" +# define OSSL_PKEY_RSA_PAD_MODE_OAEP "oaep" +# define OSSL_PKEY_RSA_PAD_MODE_X931 "x931" +# define OSSL_PKEY_RSA_PAD_MODE_PSS "pss" + +/* RSA pss padding salt length */ +# define OSSL_PKEY_RSA_PSS_SALT_LEN_DIGEST "digest" +# define OSSL_PKEY_RSA_PSS_SALT_LEN_MAX "max" +# define OSSL_PKEY_RSA_PSS_SALT_LEN_AUTO "auto" +# define OSSL_PKEY_RSA_PSS_SALT_LEN_AUTO_DIGEST_MAX "auto-digestmax" + +/* OSSL_PKEY_PARAM_EC_ENCODING values */ +# define OSSL_PKEY_EC_ENCODING_EXPLICIT "explicit" +# define OSSL_PKEY_EC_ENCODING_GROUP "named_curve" + +# define OSSL_PKEY_EC_POINT_CONVERSION_FORMAT_UNCOMPRESSED "uncompressed" +# define OSSL_PKEY_EC_POINT_CONVERSION_FORMAT_COMPRESSED "compressed" +# define OSSL_PKEY_EC_POINT_CONVERSION_FORMAT_HYBRID "hybrid" + +# define OSSL_PKEY_EC_GROUP_CHECK_DEFAULT "default" +# define OSSL_PKEY_EC_GROUP_CHECK_NAMED "named" +# define OSSL_PKEY_EC_GROUP_CHECK_NAMED_NIST "named-nist" + +/* PROV_SKEY well known key types */ +# define OSSL_SKEY_TYPE_GENERIC "GENERIC-SECRET" +# define OSSL_SKEY_TYPE_AES "AES" + +/* OSSL_KEM_PARAM_OPERATION values */ +#define OSSL_KEM_PARAM_OPERATION_RSASVE "RSASVE" +#define OSSL_KEM_PARAM_OPERATION_DHKEM "DHKEM" + +/* Provider configuration variables */ +#define OSSL_PKEY_RETAIN_SEED "pkey_retain_seed" + +/* Parameter name definitions - generated by util/perl/OpenSSL/paramnames.pm */ +# define OSSL_ALG_PARAM_ALGORITHM_ID "algorithm-id" +# define OSSL_ALG_PARAM_ALGORITHM_ID_PARAMS "algorithm-id-params" +# define OSSL_ALG_PARAM_CIPHER "cipher" +# define OSSL_ALG_PARAM_DIGEST "digest" +# define OSSL_ALG_PARAM_ENGINE "engine" +# define OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR "fips-indicator" +# define OSSL_ALG_PARAM_MAC "mac" +# define OSSL_ALG_PARAM_PROPERTIES "properties" +# define OSSL_ASYM_CIPHER_PARAM_DIGEST OSSL_PKEY_PARAM_DIGEST +# define OSSL_ASYM_CIPHER_PARAM_ENGINE OSSL_PKEY_PARAM_ENGINE +# define OSSL_ASYM_CIPHER_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_ASYM_CIPHER_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_ASYM_CIPHER_PARAM_FIPS_RSA_PKCS15_PAD_DISABLED OSSL_PROV_PARAM_RSA_PKCS15_PAD_DISABLED +# define OSSL_ASYM_CIPHER_PARAM_IMPLICIT_REJECTION "implicit-rejection" +# define OSSL_ASYM_CIPHER_PARAM_MGF1_DIGEST OSSL_PKEY_PARAM_MGF1_DIGEST +# define OSSL_ASYM_CIPHER_PARAM_MGF1_DIGEST_PROPS OSSL_PKEY_PARAM_MGF1_PROPERTIES +# define OSSL_ASYM_CIPHER_PARAM_OAEP_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_ASYM_CIPHER_PARAM_OAEP_DIGEST_PROPS "digest-props" +# define OSSL_ASYM_CIPHER_PARAM_OAEP_LABEL "oaep-label" +# define OSSL_ASYM_CIPHER_PARAM_PAD_MODE OSSL_PKEY_PARAM_PAD_MODE +# define OSSL_ASYM_CIPHER_PARAM_PROPERTIES OSSL_PKEY_PARAM_PROPERTIES +# define OSSL_ASYM_CIPHER_PARAM_TLS_CLIENT_VERSION "tls-client-version" +# define OSSL_ASYM_CIPHER_PARAM_TLS_NEGOTIATED_VERSION "tls-negotiated-version" +# define OSSL_CAPABILITY_TLS_GROUP_ALG "tls-group-alg" +# define OSSL_CAPABILITY_TLS_GROUP_ID "tls-group-id" +# define OSSL_CAPABILITY_TLS_GROUP_IS_KEM "tls-group-is-kem" +# define OSSL_CAPABILITY_TLS_GROUP_MAX_DTLS "tls-max-dtls" +# define OSSL_CAPABILITY_TLS_GROUP_MAX_TLS "tls-max-tls" +# define OSSL_CAPABILITY_TLS_GROUP_MIN_DTLS "tls-min-dtls" +# define OSSL_CAPABILITY_TLS_GROUP_MIN_TLS "tls-min-tls" +# define OSSL_CAPABILITY_TLS_GROUP_NAME "tls-group-name" +# define OSSL_CAPABILITY_TLS_GROUP_NAME_INTERNAL "tls-group-name-internal" +# define OSSL_CAPABILITY_TLS_GROUP_SECURITY_BITS "tls-group-sec-bits" +# define OSSL_CAPABILITY_TLS_SIGALG_CODE_POINT "tls-sigalg-code-point" +# define OSSL_CAPABILITY_TLS_SIGALG_HASH_NAME "tls-sigalg-hash-name" +# define OSSL_CAPABILITY_TLS_SIGALG_HASH_OID "tls-sigalg-hash-oid" +# define OSSL_CAPABILITY_TLS_SIGALG_IANA_NAME "tls-sigalg-iana-name" +# define OSSL_CAPABILITY_TLS_SIGALG_KEYTYPE "tls-sigalg-keytype" +# define OSSL_CAPABILITY_TLS_SIGALG_KEYTYPE_OID "tls-sigalg-keytype-oid" +# define OSSL_CAPABILITY_TLS_SIGALG_MAX_DTLS "tls-max-dtls" +# define OSSL_CAPABILITY_TLS_SIGALG_MAX_TLS "tls-max-tls" +# define OSSL_CAPABILITY_TLS_SIGALG_MIN_DTLS "tls-min-dtls" +# define OSSL_CAPABILITY_TLS_SIGALG_MIN_TLS "tls-min-tls" +# define OSSL_CAPABILITY_TLS_SIGALG_NAME "tls-sigalg-name" +# define OSSL_CAPABILITY_TLS_SIGALG_OID "tls-sigalg-oid" +# define OSSL_CAPABILITY_TLS_SIGALG_SECURITY_BITS "tls-sigalg-sec-bits" +# define OSSL_CAPABILITY_TLS_SIGALG_SIG_NAME "tls-sigalg-sig-name" +# define OSSL_CAPABILITY_TLS_SIGALG_SIG_OID "tls-sigalg-sig-oid" +# define OSSL_CIPHER_PARAM_AEAD "aead" +# define OSSL_CIPHER_PARAM_AEAD_IVLEN OSSL_CIPHER_PARAM_IVLEN +# define OSSL_CIPHER_PARAM_AEAD_IV_GENERATED "iv-generated" +# define OSSL_CIPHER_PARAM_AEAD_MAC_KEY "mackey" +# define OSSL_CIPHER_PARAM_AEAD_TAG "tag" +# define OSSL_CIPHER_PARAM_AEAD_TAGLEN "taglen" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_AAD "tlsaad" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_AAD_PAD "tlsaadpad" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_GET_IV_GEN "tlsivgen" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_IV_FIXED "tlsivfixed" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_SET_IV_INV "tlsivinv" +# define OSSL_CIPHER_PARAM_ALGORITHM_ID OSSL_ALG_PARAM_ALGORITHM_ID +# define OSSL_CIPHER_PARAM_ALGORITHM_ID_PARAMS OSSL_ALG_PARAM_ALGORITHM_ID_PARAMS +# define OSSL_CIPHER_PARAM_ALGORITHM_ID_PARAMS_OLD "alg_id_param" +# define OSSL_CIPHER_PARAM_BLOCK_SIZE "blocksize" +# define OSSL_CIPHER_PARAM_CTS "cts" +# define OSSL_CIPHER_PARAM_CTS_MODE "cts_mode" +# define OSSL_CIPHER_PARAM_CUSTOM_IV "custom-iv" +# define OSSL_CIPHER_PARAM_DECRYPT_ONLY "decrypt-only" +# define OSSL_CIPHER_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_CIPHER_PARAM_FIPS_ENCRYPT_CHECK "encrypt-check" +# define OSSL_CIPHER_PARAM_HAS_RAND_KEY "has-randkey" +# define OSSL_CIPHER_PARAM_IV "iv" +# define OSSL_CIPHER_PARAM_IVLEN "ivlen" +# define OSSL_CIPHER_PARAM_KEYLEN "keylen" +# define OSSL_CIPHER_PARAM_MODE "mode" +# define OSSL_CIPHER_PARAM_NUM "num" +# define OSSL_CIPHER_PARAM_PADDING "padding" +# define OSSL_CIPHER_PARAM_PIPELINE_AEAD_TAG "pipeline-tag" +# define OSSL_CIPHER_PARAM_RANDOM_KEY "randkey" +# define OSSL_CIPHER_PARAM_RC2_KEYBITS "keybits" +# define OSSL_CIPHER_PARAM_ROUNDS "rounds" +# define OSSL_CIPHER_PARAM_SPEED "speed" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK "tls-multi" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD "tls1multi_aad" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD_PACKLEN "tls1multi_aadpacklen" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC "tls1multi_enc" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_IN "tls1multi_encin" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_LEN "tls1multi_enclen" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_INTERLEAVE "tls1multi_interleave" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_BUFSIZE "tls1multi_maxbufsz" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_SEND_FRAGMENT "tls1multi_maxsndfrag" +# define OSSL_CIPHER_PARAM_TLS_MAC "tls-mac" +# define OSSL_CIPHER_PARAM_TLS_MAC_SIZE "tls-mac-size" +# define OSSL_CIPHER_PARAM_TLS_VERSION "tls-version" +# define OSSL_CIPHER_PARAM_UPDATED_IV "updated-iv" +# define OSSL_CIPHER_PARAM_USE_BITS "use-bits" +# define OSSL_CIPHER_PARAM_XTS_STANDARD "xts_standard" +# define OSSL_DECODER_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_DIGEST_PARAM_ALGID_ABSENT "algid-absent" +# define OSSL_DIGEST_PARAM_BLOCK_SIZE "blocksize" +# define OSSL_DIGEST_PARAM_MICALG "micalg" +# define OSSL_DIGEST_PARAM_PAD_TYPE "pad-type" +# define OSSL_DIGEST_PARAM_SIZE "size" +# define OSSL_DIGEST_PARAM_SSL3_MS "ssl3-ms" +# define OSSL_DIGEST_PARAM_XOF "xof" +# define OSSL_DIGEST_PARAM_XOFLEN "xoflen" +# define OSSL_DRBG_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_DRBG_PARAM_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_DRBG_PARAM_ENTROPY_REQUIRED "entropy_required" +# define OSSL_DRBG_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_DRBG_PARAM_FIPS_DIGEST_CHECK OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK +# define OSSL_DRBG_PARAM_MAC OSSL_ALG_PARAM_MAC +# define OSSL_DRBG_PARAM_MAX_ADINLEN "max_adinlen" +# define OSSL_DRBG_PARAM_MAX_ENTROPYLEN "max_entropylen" +# define OSSL_DRBG_PARAM_MAX_LENGTH "maxium_length" +# define OSSL_DRBG_PARAM_MAX_NONCELEN "max_noncelen" +# define OSSL_DRBG_PARAM_MAX_PERSLEN "max_perslen" +# define OSSL_DRBG_PARAM_MIN_ENTROPYLEN "min_entropylen" +# define OSSL_DRBG_PARAM_MIN_LENGTH "minium_length" +# define OSSL_DRBG_PARAM_MIN_NONCELEN "min_noncelen" +# define OSSL_DRBG_PARAM_PREDICTION_RESISTANCE "prediction_resistance" +# define OSSL_DRBG_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_DRBG_PARAM_RANDOM_DATA "random_data" +# define OSSL_DRBG_PARAM_RESEED_COUNTER "reseed_counter" +# define OSSL_DRBG_PARAM_RESEED_REQUESTS "reseed_requests" +# define OSSL_DRBG_PARAM_RESEED_TIME "reseed_time" +# define OSSL_DRBG_PARAM_RESEED_TIME_INTERVAL "reseed_time_interval" +# define OSSL_DRBG_PARAM_SIZE "size" +# define OSSL_DRBG_PARAM_USE_DF "use_derivation_function" +# define OSSL_ENCODER_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_ENCODER_PARAM_ENCRYPT_LEVEL "encrypt-level" +# define OSSL_ENCODER_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_ENCODER_PARAM_SAVE_PARAMETERS "save-parameters" +# define OSSL_EXCHANGE_PARAM_EC_ECDH_COFACTOR_MODE "ecdh-cofactor-mode" +# define OSSL_EXCHANGE_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_EXCHANGE_PARAM_FIPS_DIGEST_CHECK OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK +# define OSSL_EXCHANGE_PARAM_FIPS_ECDH_COFACTOR_CHECK OSSL_PROV_PARAM_ECDH_COFACTOR_CHECK +# define OSSL_EXCHANGE_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_EXCHANGE_PARAM_KDF_DIGEST "kdf-digest" +# define OSSL_EXCHANGE_PARAM_KDF_DIGEST_PROPS "kdf-digest-props" +# define OSSL_EXCHANGE_PARAM_KDF_OUTLEN "kdf-outlen" +# define OSSL_EXCHANGE_PARAM_KDF_TYPE "kdf-type" +# define OSSL_EXCHANGE_PARAM_KDF_UKM "kdf-ukm" +# define OSSL_EXCHANGE_PARAM_PAD "pad" +# define OSSL_GEN_PARAM_ITERATION "iteration" +# define OSSL_GEN_PARAM_POTENTIAL "potential" +# define OSSL_KDF_PARAM_ARGON2_AD "ad" +# define OSSL_KDF_PARAM_ARGON2_LANES "lanes" +# define OSSL_KDF_PARAM_ARGON2_MEMCOST "memcost" +# define OSSL_KDF_PARAM_ARGON2_VERSION "version" +# define OSSL_KDF_PARAM_CEK_ALG "cekalg" +# define OSSL_KDF_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_KDF_PARAM_CONSTANT "constant" +# define OSSL_KDF_PARAM_DATA "data" +# define OSSL_KDF_PARAM_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_KDF_PARAM_EARLY_CLEAN "early_clean" +# define OSSL_KDF_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_KDF_PARAM_FIPS_DIGEST_CHECK OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK +# define OSSL_KDF_PARAM_FIPS_EMS_CHECK "ems_check" +# define OSSL_KDF_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_KDF_PARAM_HMACDRBG_ENTROPY "entropy" +# define OSSL_KDF_PARAM_HMACDRBG_NONCE "nonce" +# define OSSL_KDF_PARAM_INFO "info" +# define OSSL_KDF_PARAM_ITER "iter" +# define OSSL_KDF_PARAM_KBKDF_R "r" +# define OSSL_KDF_PARAM_KBKDF_USE_L "use-l" +# define OSSL_KDF_PARAM_KBKDF_USE_SEPARATOR "use-separator" +# define OSSL_KDF_PARAM_KEY "key" +# define OSSL_KDF_PARAM_LABEL "label" +# define OSSL_KDF_PARAM_MAC OSSL_ALG_PARAM_MAC +# define OSSL_KDF_PARAM_MAC_SIZE "maclen" +# define OSSL_KDF_PARAM_MODE "mode" +# define OSSL_KDF_PARAM_PASSWORD "pass" +# define OSSL_KDF_PARAM_PKCS12_ID "id" +# define OSSL_KDF_PARAM_PKCS5 "pkcs5" +# define OSSL_KDF_PARAM_PREFIX "prefix" +# define OSSL_KDF_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_KDF_PARAM_SALT "salt" +# define OSSL_KDF_PARAM_SCRYPT_MAXMEM "maxmem_bytes" +# define OSSL_KDF_PARAM_SCRYPT_N "n" +# define OSSL_KDF_PARAM_SCRYPT_P "p" +# define OSSL_KDF_PARAM_SCRYPT_R "r" +# define OSSL_KDF_PARAM_SECRET "secret" +# define OSSL_KDF_PARAM_SEED "seed" +# define OSSL_KDF_PARAM_SIZE "size" +# define OSSL_KDF_PARAM_SSHKDF_SESSION_ID "session_id" +# define OSSL_KDF_PARAM_SSHKDF_TYPE "type" +# define OSSL_KDF_PARAM_SSHKDF_XCGHASH "xcghash" +# define OSSL_KDF_PARAM_THREADS "threads" +# define OSSL_KDF_PARAM_UKM "ukm" +# define OSSL_KDF_PARAM_X942_ACVPINFO "acvp-info" +# define OSSL_KDF_PARAM_X942_PARTYUINFO "partyu-info" +# define OSSL_KDF_PARAM_X942_PARTYVINFO "partyv-info" +# define OSSL_KDF_PARAM_X942_SUPP_PRIVINFO "supp-privinfo" +# define OSSL_KDF_PARAM_X942_SUPP_PUBINFO "supp-pubinfo" +# define OSSL_KDF_PARAM_X942_USE_KEYBITS "use-keybits" +# define OSSL_KEM_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_KEM_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_KEM_PARAM_IKME "ikme" +# define OSSL_KEM_PARAM_OPERATION "operation" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_BLOCK_PADDING "block_padding" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_HS_PADDING "hs_padding" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_MAX_EARLY_DATA "max_early_data" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_MAX_FRAG_LEN "max_frag_len" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_MODE "mode" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_OPTIONS "options" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_READ_AHEAD "read_ahead" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_STREAM_MAC "stream_mac" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_TLSTREE "tlstree" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_USE_ETM "use_etm" +# define OSSL_LIBSSL_RECORD_LAYER_READ_BUFFER_LEN "read_buffer_len" +# define OSSL_MAC_PARAM_BLOCK_SIZE "block-size" +# define OSSL_MAC_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_MAC_PARAM_CUSTOM "custom" +# define OSSL_MAC_PARAM_C_ROUNDS "c-rounds" +# define OSSL_MAC_PARAM_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_MAC_PARAM_DIGEST_NOINIT "digest-noinit" +# define OSSL_MAC_PARAM_DIGEST_ONESHOT "digest-oneshot" +# define OSSL_MAC_PARAM_D_ROUNDS "d-rounds" +# define OSSL_MAC_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_MAC_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_MAC_PARAM_FIPS_NO_SHORT_MAC OSSL_PROV_PARAM_NO_SHORT_MAC +# define OSSL_MAC_PARAM_IV "iv" +# define OSSL_MAC_PARAM_KEY "key" +# define OSSL_MAC_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_MAC_PARAM_SALT "salt" +# define OSSL_MAC_PARAM_SIZE "size" +# define OSSL_MAC_PARAM_TLS_DATA_SIZE "tls-data-size" +# define OSSL_MAC_PARAM_XOF "xof" +# define OSSL_OBJECT_PARAM_DATA "data" +# define OSSL_OBJECT_PARAM_DATA_STRUCTURE "data-structure" +# define OSSL_OBJECT_PARAM_DATA_TYPE "data-type" +# define OSSL_OBJECT_PARAM_DESC "desc" +# define OSSL_OBJECT_PARAM_INPUT_TYPE "input-type" +# define OSSL_OBJECT_PARAM_REFERENCE "reference" +# define OSSL_OBJECT_PARAM_TYPE "type" +# define OSSL_PASSPHRASE_PARAM_INFO "info" +# define OSSL_PKEY_PARAM_ALGORITHM_ID OSSL_ALG_PARAM_ALGORITHM_ID +# define OSSL_PKEY_PARAM_ALGORITHM_ID_PARAMS OSSL_ALG_PARAM_ALGORITHM_ID_PARAMS +# define OSSL_PKEY_PARAM_BITS "bits" +# define OSSL_PKEY_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_PKEY_PARAM_DEFAULT_DIGEST "default-digest" +# define OSSL_PKEY_PARAM_DHKEM_IKM "dhkem-ikm" +# define OSSL_PKEY_PARAM_DH_GENERATOR "safeprime-generator" +# define OSSL_PKEY_PARAM_DH_PRIV_LEN "priv_len" +# define OSSL_PKEY_PARAM_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_PKEY_PARAM_DIGEST_SIZE "digest-size" +# define OSSL_PKEY_PARAM_DIST_ID "distid" +# define OSSL_PKEY_PARAM_EC_A "a" +# define OSSL_PKEY_PARAM_EC_B "b" +# define OSSL_PKEY_PARAM_EC_CHAR2_M "m" +# define OSSL_PKEY_PARAM_EC_CHAR2_PP_K1 "k1" +# define OSSL_PKEY_PARAM_EC_CHAR2_PP_K2 "k2" +# define OSSL_PKEY_PARAM_EC_CHAR2_PP_K3 "k3" +# define OSSL_PKEY_PARAM_EC_CHAR2_TP_BASIS "tp" +# define OSSL_PKEY_PARAM_EC_CHAR2_TYPE "basis-type" +# define OSSL_PKEY_PARAM_EC_COFACTOR "cofactor" +# define OSSL_PKEY_PARAM_EC_DECODED_FROM_EXPLICIT_PARAMS "decoded-from-explicit" +# define OSSL_PKEY_PARAM_EC_ENCODING "encoding" +# define OSSL_PKEY_PARAM_EC_FIELD_TYPE "field-type" +# define OSSL_PKEY_PARAM_EC_GENERATOR "generator" +# define OSSL_PKEY_PARAM_EC_GROUP_CHECK_TYPE "group-check" +# define OSSL_PKEY_PARAM_EC_INCLUDE_PUBLIC "include-public" +# define OSSL_PKEY_PARAM_EC_ORDER "order" +# define OSSL_PKEY_PARAM_EC_P "p" +# define OSSL_PKEY_PARAM_EC_POINT_CONVERSION_FORMAT "point-format" +# define OSSL_PKEY_PARAM_EC_PUB_X "qx" +# define OSSL_PKEY_PARAM_EC_PUB_Y "qy" +# define OSSL_PKEY_PARAM_EC_SEED "seed" +# define OSSL_PKEY_PARAM_ENCODED_PUBLIC_KEY "encoded-pub-key" +# define OSSL_PKEY_PARAM_ENGINE OSSL_ALG_PARAM_ENGINE +# define OSSL_PKEY_PARAM_FFC_COFACTOR "j" +# define OSSL_PKEY_PARAM_FFC_DIGEST OSSL_PKEY_PARAM_DIGEST +# define OSSL_PKEY_PARAM_FFC_DIGEST_PROPS OSSL_PKEY_PARAM_PROPERTIES +# define OSSL_PKEY_PARAM_FFC_G "g" +# define OSSL_PKEY_PARAM_FFC_GINDEX "gindex" +# define OSSL_PKEY_PARAM_FFC_H "hindex" +# define OSSL_PKEY_PARAM_FFC_P "p" +# define OSSL_PKEY_PARAM_FFC_PBITS "pbits" +# define OSSL_PKEY_PARAM_FFC_PCOUNTER "pcounter" +# define OSSL_PKEY_PARAM_FFC_Q "q" +# define OSSL_PKEY_PARAM_FFC_QBITS "qbits" +# define OSSL_PKEY_PARAM_FFC_SEED "seed" +# define OSSL_PKEY_PARAM_FFC_TYPE "type" +# define OSSL_PKEY_PARAM_FFC_VALIDATE_G "validate-g" +# define OSSL_PKEY_PARAM_FFC_VALIDATE_LEGACY "validate-legacy" +# define OSSL_PKEY_PARAM_FFC_VALIDATE_PQ "validate-pq" +# define OSSL_PKEY_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK "digest-check" +# define OSSL_PKEY_PARAM_FIPS_KEY_CHECK "key-check" +# define OSSL_PKEY_PARAM_FIPS_SIGN_CHECK "sign-check" +# define OSSL_PKEY_PARAM_GROUP_NAME "group" +# define OSSL_PKEY_PARAM_IMPLICIT_REJECTION "implicit-rejection" +# define OSSL_PKEY_PARAM_MANDATORY_DIGEST "mandatory-digest" +# define OSSL_PKEY_PARAM_MASKGENFUNC "mgf" +# define OSSL_PKEY_PARAM_MAX_SIZE "max-size" +# define OSSL_PKEY_PARAM_MGF1_DIGEST "mgf1-digest" +# define OSSL_PKEY_PARAM_MGF1_PROPERTIES "mgf1-properties" +# define OSSL_PKEY_PARAM_ML_DSA_INPUT_FORMATS "ml-dsa.input_formats" +# define OSSL_PKEY_PARAM_ML_DSA_OUTPUT_FORMATS "ml-dsa.output_formats" +# define OSSL_PKEY_PARAM_ML_DSA_PREFER_SEED "ml-dsa.prefer_seed" +# define OSSL_PKEY_PARAM_ML_DSA_RETAIN_SEED "ml-dsa.retain_seed" +# define OSSL_PKEY_PARAM_ML_DSA_SEED "seed" +# define OSSL_PKEY_PARAM_ML_KEM_IMPORT_PCT_TYPE "ml-kem.import_pct_type" +# define OSSL_PKEY_PARAM_ML_KEM_INPUT_FORMATS "ml-kem.input_formats" +# define OSSL_PKEY_PARAM_ML_KEM_OUTPUT_FORMATS "ml-kem.output_formats" +# define OSSL_PKEY_PARAM_ML_KEM_PREFER_SEED "ml-kem.prefer_seed" +# define OSSL_PKEY_PARAM_ML_KEM_RETAIN_SEED "ml-kem.retain_seed" +# define OSSL_PKEY_PARAM_ML_KEM_SEED "seed" +# define OSSL_PKEY_PARAM_PAD_MODE "pad-mode" +# define OSSL_PKEY_PARAM_PRIV_KEY "priv" +# define OSSL_PKEY_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_PKEY_PARAM_PUB_KEY "pub" +# define OSSL_PKEY_PARAM_RSA_BITS OSSL_PKEY_PARAM_BITS +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT "rsa-coefficient" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT1 "rsa-coefficient1" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT2 "rsa-coefficient2" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT3 "rsa-coefficient3" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT4 "rsa-coefficient4" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT5 "rsa-coefficient5" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT6 "rsa-coefficient6" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT7 "rsa-coefficient7" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT8 "rsa-coefficient8" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT9 "rsa-coefficient9" +# define OSSL_PKEY_PARAM_RSA_D "d" +# define OSSL_PKEY_PARAM_RSA_DERIVE_FROM_PQ "rsa-derive-from-pq" +# define OSSL_PKEY_PARAM_RSA_DIGEST OSSL_PKEY_PARAM_DIGEST +# define OSSL_PKEY_PARAM_RSA_DIGEST_PROPS OSSL_PKEY_PARAM_PROPERTIES +# define OSSL_PKEY_PARAM_RSA_E "e" +# define OSSL_PKEY_PARAM_RSA_EXPONENT "rsa-exponent" +# define OSSL_PKEY_PARAM_RSA_EXPONENT1 "rsa-exponent1" +# define OSSL_PKEY_PARAM_RSA_EXPONENT10 "rsa-exponent10" +# define OSSL_PKEY_PARAM_RSA_EXPONENT2 "rsa-exponent2" +# define OSSL_PKEY_PARAM_RSA_EXPONENT3 "rsa-exponent3" +# define OSSL_PKEY_PARAM_RSA_EXPONENT4 "rsa-exponent4" +# define OSSL_PKEY_PARAM_RSA_EXPONENT5 "rsa-exponent5" +# define OSSL_PKEY_PARAM_RSA_EXPONENT6 "rsa-exponent6" +# define OSSL_PKEY_PARAM_RSA_EXPONENT7 "rsa-exponent7" +# define OSSL_PKEY_PARAM_RSA_EXPONENT8 "rsa-exponent8" +# define OSSL_PKEY_PARAM_RSA_EXPONENT9 "rsa-exponent9" +# define OSSL_PKEY_PARAM_RSA_FACTOR "rsa-factor" +# define OSSL_PKEY_PARAM_RSA_FACTOR1 "rsa-factor1" +# define OSSL_PKEY_PARAM_RSA_FACTOR10 "rsa-factor10" +# define OSSL_PKEY_PARAM_RSA_FACTOR2 "rsa-factor2" +# define OSSL_PKEY_PARAM_RSA_FACTOR3 "rsa-factor3" +# define OSSL_PKEY_PARAM_RSA_FACTOR4 "rsa-factor4" +# define OSSL_PKEY_PARAM_RSA_FACTOR5 "rsa-factor5" +# define OSSL_PKEY_PARAM_RSA_FACTOR6 "rsa-factor6" +# define OSSL_PKEY_PARAM_RSA_FACTOR7 "rsa-factor7" +# define OSSL_PKEY_PARAM_RSA_FACTOR8 "rsa-factor8" +# define OSSL_PKEY_PARAM_RSA_FACTOR9 "rsa-factor9" +# define OSSL_PKEY_PARAM_RSA_MASKGENFUNC OSSL_PKEY_PARAM_MASKGENFUNC +# define OSSL_PKEY_PARAM_RSA_MGF1_DIGEST OSSL_PKEY_PARAM_MGF1_DIGEST +# define OSSL_PKEY_PARAM_RSA_N "n" +# define OSSL_PKEY_PARAM_RSA_PRIMES "primes" +# define OSSL_PKEY_PARAM_RSA_PSS_SALTLEN "saltlen" +# define OSSL_PKEY_PARAM_RSA_TEST_P1 "p1" +# define OSSL_PKEY_PARAM_RSA_TEST_P2 "p2" +# define OSSL_PKEY_PARAM_RSA_TEST_Q1 "q1" +# define OSSL_PKEY_PARAM_RSA_TEST_Q2 "q2" +# define OSSL_PKEY_PARAM_RSA_TEST_XP "xp" +# define OSSL_PKEY_PARAM_RSA_TEST_XP1 "xp1" +# define OSSL_PKEY_PARAM_RSA_TEST_XP2 "xp2" +# define OSSL_PKEY_PARAM_RSA_TEST_XQ "xq" +# define OSSL_PKEY_PARAM_RSA_TEST_XQ1 "xq1" +# define OSSL_PKEY_PARAM_RSA_TEST_XQ2 "xq2" +# define OSSL_PKEY_PARAM_SECURITY_BITS "security-bits" +# define OSSL_PKEY_PARAM_SLH_DSA_SEED "seed" +# define OSSL_PKEY_PARAM_USE_COFACTOR_ECDH OSSL_PKEY_PARAM_USE_COFACTOR_FLAG +# define OSSL_PKEY_PARAM_USE_COFACTOR_FLAG "use-cofactor-flag" +# define OSSL_PROV_PARAM_BUILDINFO "buildinfo" +# define OSSL_PROV_PARAM_CORE_MODULE_FILENAME "module-filename" +# define OSSL_PROV_PARAM_CORE_PROV_NAME "provider-name" +# define OSSL_PROV_PARAM_CORE_VERSION "openssl-version" +# define OSSL_PROV_PARAM_DRBG_TRUNC_DIGEST "drbg-no-trunc-md" +# define OSSL_PROV_PARAM_DSA_SIGN_DISABLED "dsa-sign-disabled" +# define OSSL_PROV_PARAM_ECDH_COFACTOR_CHECK "ecdh-cofactor-check" +# define OSSL_PROV_PARAM_HKDF_DIGEST_CHECK "hkdf-digest-check" +# define OSSL_PROV_PARAM_HKDF_KEY_CHECK "hkdf-key-check" +# define OSSL_PROV_PARAM_HMAC_KEY_CHECK "hmac-key-check" +# define OSSL_PROV_PARAM_KBKDF_KEY_CHECK "kbkdf-key-check" +# define OSSL_PROV_PARAM_KMAC_KEY_CHECK "kmac-key-check" +# define OSSL_PROV_PARAM_NAME "name" +# define OSSL_PROV_PARAM_NO_SHORT_MAC "no-short-mac" +# define OSSL_PROV_PARAM_PBKDF2_LOWER_BOUND_CHECK "pbkdf2-lower-bound-check" +# define OSSL_PROV_PARAM_RSA_PKCS15_PAD_DISABLED "rsa-pkcs15-pad-disabled" +# define OSSL_PROV_PARAM_RSA_PSS_SALTLEN_CHECK "rsa-pss-saltlen-check" +# define OSSL_PROV_PARAM_RSA_SIGN_X931_PAD_DISABLED "rsa-sign-x931-pad-disabled" +# define OSSL_PROV_PARAM_SECURITY_CHECKS "security-checks" +# define OSSL_PROV_PARAM_SELF_TEST_DESC "st-desc" +# define OSSL_PROV_PARAM_SELF_TEST_PHASE "st-phase" +# define OSSL_PROV_PARAM_SELF_TEST_TYPE "st-type" +# define OSSL_PROV_PARAM_SIGNATURE_DIGEST_CHECK "signature-digest-check" +# define OSSL_PROV_PARAM_SSHKDF_DIGEST_CHECK "sshkdf-digest-check" +# define OSSL_PROV_PARAM_SSHKDF_KEY_CHECK "sshkdf-key-check" +# define OSSL_PROV_PARAM_SSKDF_DIGEST_CHECK "sskdf-digest-check" +# define OSSL_PROV_PARAM_SSKDF_KEY_CHECK "sskdf-key-check" +# define OSSL_PROV_PARAM_STATUS "status" +# define OSSL_PROV_PARAM_TDES_ENCRYPT_DISABLED "tdes-encrypt-disabled" +# define OSSL_PROV_PARAM_TLS13_KDF_DIGEST_CHECK "tls13-kdf-digest-check" +# define OSSL_PROV_PARAM_TLS13_KDF_KEY_CHECK "tls13-kdf-key-check" +# define OSSL_PROV_PARAM_TLS1_PRF_DIGEST_CHECK "tls1-prf-digest-check" +# define OSSL_PROV_PARAM_TLS1_PRF_EMS_CHECK "tls1-prf-ems-check" +# define OSSL_PROV_PARAM_TLS1_PRF_KEY_CHECK "tls1-prf-key-check" +# define OSSL_PROV_PARAM_VERSION "version" +# define OSSL_PROV_PARAM_X942KDF_KEY_CHECK "x942kdf-key-check" +# define OSSL_PROV_PARAM_X963KDF_DIGEST_CHECK "x963kdf-digest-check" +# define OSSL_PROV_PARAM_X963KDF_KEY_CHECK "x963kdf-key-check" +# define OSSL_RAND_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_RAND_PARAM_GENERATE "generate" +# define OSSL_RAND_PARAM_MAX_REQUEST "max_request" +# define OSSL_RAND_PARAM_STATE "state" +# define OSSL_RAND_PARAM_STRENGTH "strength" +# define OSSL_RAND_PARAM_TEST_ENTROPY "test_entropy" +# define OSSL_RAND_PARAM_TEST_NONCE "test_nonce" +# define OSSL_SIGNATURE_PARAM_ADD_RANDOM "additional-random" +# define OSSL_SIGNATURE_PARAM_ALGORITHM_ID OSSL_PKEY_PARAM_ALGORITHM_ID +# define OSSL_SIGNATURE_PARAM_ALGORITHM_ID_PARAMS OSSL_PKEY_PARAM_ALGORITHM_ID_PARAMS +# define OSSL_SIGNATURE_PARAM_CONTEXT_STRING "context-string" +# define OSSL_SIGNATURE_PARAM_DETERMINISTIC "deterministic" +# define OSSL_SIGNATURE_PARAM_DIGEST OSSL_PKEY_PARAM_DIGEST +# define OSSL_SIGNATURE_PARAM_DIGEST_SIZE OSSL_PKEY_PARAM_DIGEST_SIZE +# define OSSL_SIGNATURE_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_SIGNATURE_PARAM_FIPS_DIGEST_CHECK OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK +# define OSSL_SIGNATURE_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_SIGNATURE_PARAM_FIPS_RSA_PSS_SALTLEN_CHECK "rsa-pss-saltlen-check" +# define OSSL_SIGNATURE_PARAM_FIPS_SIGN_CHECK OSSL_PKEY_PARAM_FIPS_SIGN_CHECK +# define OSSL_SIGNATURE_PARAM_FIPS_SIGN_X931_PAD_CHECK "sign-x931-pad-check" +# define OSSL_SIGNATURE_PARAM_FIPS_VERIFY_MESSAGE "verify-message" +# define OSSL_SIGNATURE_PARAM_INSTANCE "instance" +# define OSSL_SIGNATURE_PARAM_KAT "kat" +# define OSSL_SIGNATURE_PARAM_MESSAGE_ENCODING "message-encoding" +# define OSSL_SIGNATURE_PARAM_MGF1_DIGEST OSSL_PKEY_PARAM_MGF1_DIGEST +# define OSSL_SIGNATURE_PARAM_MGF1_PROPERTIES OSSL_PKEY_PARAM_MGF1_PROPERTIES +# define OSSL_SIGNATURE_PARAM_MU "mu" +# define OSSL_SIGNATURE_PARAM_NONCE_TYPE "nonce-type" +# define OSSL_SIGNATURE_PARAM_PAD_MODE OSSL_PKEY_PARAM_PAD_MODE +# define OSSL_SIGNATURE_PARAM_PROPERTIES OSSL_PKEY_PARAM_PROPERTIES +# define OSSL_SIGNATURE_PARAM_PSS_SALTLEN "saltlen" +# define OSSL_SIGNATURE_PARAM_SIGNATURE "signature" +# define OSSL_SIGNATURE_PARAM_TEST_ENTROPY "test-entropy" +# define OSSL_SKEY_PARAM_KEY_LENGTH "key-length" +# define OSSL_SKEY_PARAM_RAW_BYTES "raw-bytes" +# define OSSL_STORE_PARAM_ALIAS "alias" +# define OSSL_STORE_PARAM_DIGEST "digest" +# define OSSL_STORE_PARAM_EXPECT "expect" +# define OSSL_STORE_PARAM_FINGERPRINT "fingerprint" +# define OSSL_STORE_PARAM_INPUT_TYPE "input-type" +# define OSSL_STORE_PARAM_ISSUER "name" +# define OSSL_STORE_PARAM_PROPERTIES "properties" +# define OSSL_STORE_PARAM_SERIAL "serial" +# define OSSL_STORE_PARAM_SUBJECT "subject" + +# ifdef __cplusplus +} +# endif + +#endif diff --git a/deps/openssl/config/archs/linux-elf/asm/include/openssl/crmf.h b/deps/openssl/config/archs/linux-elf/asm/include/openssl/crmf.h index 71b747ed33d239..4bf550fd47daa9 100644 --- a/deps/openssl/config/archs/linux-elf/asm/include/openssl/crmf.h +++ b/deps/openssl/config/archs/linux-elf/asm/include/openssl/crmf.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/crmf.h.in * - * Copyright 2007-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2007-2025 The OpenSSL Project Authors. All Rights Reserved. * Copyright Nokia 2007-2019 * Copyright Siemens AG 2015-2019 * @@ -26,6 +26,7 @@ # include # include # include /* for GENERAL_NAME etc. */ +# include /* explicit #includes not strictly needed since implied by the above: */ # include @@ -43,9 +44,12 @@ extern "C" { # define OSSL_CRMF_SUBSEQUENTMESSAGE_ENCRCERT 0 # define OSSL_CRMF_SUBSEQUENTMESSAGE_CHALLENGERESP 1 - typedef struct ossl_crmf_encryptedvalue_st OSSL_CRMF_ENCRYPTEDVALUE; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_ENCRYPTEDVALUE) + +typedef struct ossl_crmf_encryptedkey_st OSSL_CRMF_ENCRYPTEDKEY; +DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_ENCRYPTEDKEY) + typedef struct ossl_crmf_msg_st OSSL_CRMF_MSG; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_MSG) DECLARE_ASN1_DUP_FUNCTION(OSSL_CRMF_MSG) @@ -77,6 +81,36 @@ SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CRMF_MSG, OSSL_CRMF_MSG, OSSL_CRMF_MSG) #define sk_OSSL_CRMF_MSG_set_cmp_func(sk, cmp) ((sk_OSSL_CRMF_MSG_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CRMF_MSG_sk_type(sk), ossl_check_OSSL_CRMF_MSG_compfunc_type(cmp))) typedef struct ossl_crmf_attributetypeandvalue_st OSSL_CRMF_ATTRIBUTETYPEANDVALUE; +void OSSL_CRMF_ATTRIBUTETYPEANDVALUE_free(OSSL_CRMF_ATTRIBUTETYPEANDVALUE *v); +DECLARE_ASN1_DUP_FUNCTION(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CRMF_ATTRIBUTETYPEANDVALUE, OSSL_CRMF_ATTRIBUTETYPEANDVALUE, OSSL_CRMF_ATTRIBUTETYPEANDVALUE) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_value(sk, idx) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_value(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), (idx))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_new(cmp) ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_new(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_compfunc_type(cmp))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_new_null() ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_new_null()) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_new_reserve(cmp, n) ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_compfunc_type(cmp), (n))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), (n)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_free(sk) OPENSSL_sk_free(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_delete(sk, i) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_delete(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), (i))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_delete_ptr(sk, ptr) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_pop(sk) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_pop(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_shift(sk) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_shift(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk),ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_freefunc_type(freefunc)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr), (idx)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_set(sk, idx, ptr) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_set(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), (idx), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr), pnum) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_dup(sk) ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_dup(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_copyfunc_type(copyfunc), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_freefunc_type(freefunc))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_set_cmp_func(sk, cmp) ((sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_compfunc_type(cmp))) + + typedef struct ossl_crmf_pbmparameter_st OSSL_CRMF_PBMPARAMETER; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_PBMPARAMETER) typedef struct ossl_crmf_poposigningkey_st OSSL_CRMF_POPOSIGNINGKEY; @@ -118,6 +152,7 @@ typedef struct ossl_crmf_singlepubinfo_st OSSL_CRMF_SINGLEPUBINFO; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_SINGLEPUBINFO) typedef struct ossl_crmf_certtemplate_st OSSL_CRMF_CERTTEMPLATE; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_CERTTEMPLATE) +DECLARE_ASN1_DUP_FUNCTION(OSSL_CRMF_CERTTEMPLATE) typedef STACK_OF(OSSL_CRMF_MSG) OSSL_CRMF_MSGS; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_MSGS) @@ -198,12 +233,14 @@ int OSSL_CRMF_MSGS_verify_popo(const OSSL_CRMF_MSGS *reqs, int rid, int acceptRAVerified, OSSL_LIB_CTX *libctx, const char *propq); OSSL_CRMF_CERTTEMPLATE *OSSL_CRMF_MSG_get0_tmpl(const OSSL_CRMF_MSG *crm); -const ASN1_INTEGER -*OSSL_CRMF_CERTTEMPLATE_get0_serialNumber(const OSSL_CRMF_CERTTEMPLATE *tmpl); +X509_PUBKEY +*OSSL_CRMF_CERTTEMPLATE_get0_publicKey(const OSSL_CRMF_CERTTEMPLATE *tmpl); const X509_NAME *OSSL_CRMF_CERTTEMPLATE_get0_subject(const OSSL_CRMF_CERTTEMPLATE *tmpl); const X509_NAME *OSSL_CRMF_CERTTEMPLATE_get0_issuer(const OSSL_CRMF_CERTTEMPLATE *tmpl); +const ASN1_INTEGER +*OSSL_CRMF_CERTTEMPLATE_get0_serialNumber(const OSSL_CRMF_CERTTEMPLATE *tmpl); X509_EXTENSIONS *OSSL_CRMF_CERTTEMPLATE_get0_extensions(const OSSL_CRMF_CERTTEMPLATE *tmpl); const X509_NAME @@ -215,10 +252,24 @@ int OSSL_CRMF_CERTTEMPLATE_fill(OSSL_CRMF_CERTTEMPLATE *tmpl, const X509_NAME *subject, const X509_NAME *issuer, const ASN1_INTEGER *serial); -X509 -*OSSL_CRMF_ENCRYPTEDVALUE_get1_encCert(const OSSL_CRMF_ENCRYPTEDVALUE *ecert, - OSSL_LIB_CTX *libctx, const char *propq, - EVP_PKEY *pkey); +X509 *OSSL_CRMF_ENCRYPTEDVALUE_get1_encCert(const OSSL_CRMF_ENCRYPTEDVALUE *ecert, + OSSL_LIB_CTX *libctx, const char *propq, + EVP_PKEY *pkey); +X509 *OSSL_CRMF_ENCRYPTEDKEY_get1_encCert(const OSSL_CRMF_ENCRYPTEDKEY *ecert, + OSSL_LIB_CTX *libctx, const char *propq, + EVP_PKEY *pkey, unsigned int flags); +unsigned char +*OSSL_CRMF_ENCRYPTEDVALUE_decrypt(const OSSL_CRMF_ENCRYPTEDVALUE *enc, + OSSL_LIB_CTX *libctx, const char *propq, + EVP_PKEY *pkey, int *outlen); +EVP_PKEY *OSSL_CRMF_ENCRYPTEDKEY_get1_pkey(const OSSL_CRMF_ENCRYPTEDKEY *encryptedKey, + X509_STORE *ts, STACK_OF(X509) *extra, EVP_PKEY *pkey, + X509 *cert, ASN1_OCTET_STRING *secret, + OSSL_LIB_CTX *libctx, const char *propq); +int OSSL_CRMF_MSG_centralkeygen_requested(const OSSL_CRMF_MSG *crm, const X509_REQ *p10cr); +# ifndef OPENSSL_NO_CMS +OSSL_CRMF_ENCRYPTEDKEY *OSSL_CRMF_ENCRYPTEDKEY_init_envdata(CMS_EnvelopedData *envdata); +# endif # ifdef __cplusplus } diff --git a/deps/openssl/config/archs/linux-elf/asm/include/openssl/crypto.h b/deps/openssl/config/archs/linux-elf/asm/include/openssl/crypto.h index 3f40be6d8c61d5..fd2cfd3e5a9ac4 100644 --- a/deps/openssl/config/archs/linux-elf/asm/include/openssl/crypto.h +++ b/deps/openssl/config/archs/linux-elf/asm/include/openssl/crypto.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/crypto.h.in * - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2024 The OpenSSL Project Authors. All Rights Reserved. * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved * * Licensed under the Apache License 2.0 (the "License"). You may not use @@ -85,9 +85,15 @@ int CRYPTO_THREAD_unlock(CRYPTO_RWLOCK *lock); void CRYPTO_THREAD_lock_free(CRYPTO_RWLOCK *lock); int CRYPTO_atomic_add(int *val, int amount, int *ret, CRYPTO_RWLOCK *lock); +int CRYPTO_atomic_add64(uint64_t *val, uint64_t op, uint64_t *ret, + CRYPTO_RWLOCK *lock); +int CRYPTO_atomic_and(uint64_t *val, uint64_t op, uint64_t *ret, + CRYPTO_RWLOCK *lock); int CRYPTO_atomic_or(uint64_t *val, uint64_t op, uint64_t *ret, CRYPTO_RWLOCK *lock); int CRYPTO_atomic_load(uint64_t *val, uint64_t *ret, CRYPTO_RWLOCK *lock); +int CRYPTO_atomic_load_int(int *val, int *ret, CRYPTO_RWLOCK *lock); +int CRYPTO_atomic_store(uint64_t *dst, uint64_t val, CRYPTO_RWLOCK *lock); /* No longer needed, so this is a no-op */ #define OPENSSL_malloc_init() while(0) continue @@ -96,6 +102,9 @@ int CRYPTO_atomic_load(uint64_t *val, uint64_t *ret, CRYPTO_RWLOCK *lock); CRYPTO_malloc(num, OPENSSL_FILE, OPENSSL_LINE) # define OPENSSL_zalloc(num) \ CRYPTO_zalloc(num, OPENSSL_FILE, OPENSSL_LINE) +# define OPENSSL_aligned_alloc(num, alignment, freeptr) \ + CRYPTO_aligned_alloc(num, alignment, freeptr, \ + OPENSSL_FILE, OPENSSL_LINE) # define OPENSSL_realloc(addr, num) \ CRYPTO_realloc(addr, num, OPENSSL_FILE, OPENSSL_LINE) # define OPENSSL_clear_realloc(addr, old_num, num) \ @@ -124,6 +133,7 @@ int CRYPTO_atomic_load(uint64_t *val, uint64_t *ret, CRYPTO_RWLOCK *lock); size_t OPENSSL_strlcpy(char *dst, const char *src, size_t siz); size_t OPENSSL_strlcat(char *dst, const char *src, size_t siz); size_t OPENSSL_strnlen(const char *str, size_t maxlen); +int OPENSSL_strtoul(const char *str, char **endptr, int base, unsigned long *num); int OPENSSL_buf2hexstr_ex(char *str, size_t str_n, size_t *strlength, const unsigned char *buf, size_t buflen, const char sep); @@ -160,6 +170,7 @@ const char *OpenSSL_version(int type); # define OPENSSL_FULL_VERSION_STRING 7 # define OPENSSL_MODULES_DIR 8 # define OPENSSL_CPU_INFO 9 +# define OPENSSL_WINCTX 10 const char *OPENSSL_info(int type); /* @@ -174,6 +185,7 @@ const char *OPENSSL_info(int type); # define OPENSSL_INFO_LIST_SEPARATOR 1006 # define OPENSSL_INFO_SEED_SOURCE 1007 # define OPENSSL_INFO_CPU_SETTINGS 1008 +# define OPENSSL_INFO_WINDOWS_CONTEXT 1009 int OPENSSL_issetugid(void); @@ -341,11 +353,14 @@ void CRYPTO_get_mem_functions(CRYPTO_malloc_fn *malloc_fn, CRYPTO_realloc_fn *realloc_fn, CRYPTO_free_fn *free_fn); -void *CRYPTO_malloc(size_t num, const char *file, int line); -void *CRYPTO_zalloc(size_t num, const char *file, int line); -void *CRYPTO_memdup(const void *str, size_t siz, const char *file, int line); -char *CRYPTO_strdup(const char *str, const char *file, int line); -char *CRYPTO_strndup(const char *str, size_t s, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_malloc(size_t num, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_zalloc(size_t num, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_aligned_alloc(size_t num, size_t align, + void **freeptr, const char *file, + int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_memdup(const void *str, size_t siz, const char *file, int line); +OSSL_CRYPTO_ALLOC char *CRYPTO_strdup(const char *str, const char *file, int line); +OSSL_CRYPTO_ALLOC char *CRYPTO_strndup(const char *str, size_t s, const char *file, int line); void CRYPTO_free(void *ptr, const char *file, int line); void CRYPTO_clear_free(void *ptr, size_t num, const char *file, int line); void *CRYPTO_realloc(void *addr, size_t num, const char *file, int line); @@ -354,8 +369,8 @@ void *CRYPTO_clear_realloc(void *addr, size_t old_num, size_t num, int CRYPTO_secure_malloc_init(size_t sz, size_t minsize); int CRYPTO_secure_malloc_done(void); -void *CRYPTO_secure_malloc(size_t num, const char *file, int line); -void *CRYPTO_secure_zalloc(size_t num, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_secure_malloc(size_t num, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_secure_zalloc(size_t num, const char *file, int line); void CRYPTO_secure_free(void *ptr, const char *file, int line); void CRYPTO_secure_clear_free(void *ptr, size_t num, const char *file, int line); @@ -376,6 +391,9 @@ void OPENSSL_cleanse(void *ptr, size_t len); # define CRYPTO_MEM_CHECK_ENABLE 0x2 /* Control and mode bit */ # define CRYPTO_MEM_CHECK_DISABLE 0x3 /* Control only */ +/* max allowed length for value of OPENSSL_MALLOC_FAILURES env var. */ +# define CRYPTO_MEM_CHECK_MAX_FS 256 + void CRYPTO_get_alloc_counts(int *mcount, int *rcount, int *fcount); # ifndef OPENSSL_NO_DEPRECATED_3_0 # define OPENSSL_mem_debug_push(info) \ @@ -551,6 +569,13 @@ int OSSL_LIB_CTX_load_config(OSSL_LIB_CTX *ctx, const char *config_file); void OSSL_LIB_CTX_free(OSSL_LIB_CTX *); OSSL_LIB_CTX *OSSL_LIB_CTX_get0_global_default(void); OSSL_LIB_CTX *OSSL_LIB_CTX_set0_default(OSSL_LIB_CTX *libctx); +int OSSL_LIB_CTX_get_conf_diagnostics(OSSL_LIB_CTX *ctx); +void OSSL_LIB_CTX_set_conf_diagnostics(OSSL_LIB_CTX *ctx, int value); + +void OSSL_sleep(uint64_t millis); + + +void *OSSL_LIB_CTX_get_data(OSSL_LIB_CTX *ctx, int index); # ifdef __cplusplus } diff --git a/deps/openssl/config/archs/linux-elf/asm/include/openssl/ct.h b/deps/openssl/config/archs/linux-elf/asm/include/openssl/ct.h index b6dd8c3547710a..e6dd1192a4e0b3 100644 --- a/deps/openssl/config/archs/linux-elf/asm/include/openssl/ct.h +++ b/deps/openssl/config/archs/linux-elf/asm/include/openssl/ct.h @@ -133,7 +133,7 @@ typedef enum { */ CT_POLICY_EVAL_CTX *CT_POLICY_EVAL_CTX_new_ex(OSSL_LIB_CTX *libctx, const char *propq); - + /* * The same as CT_POLICY_EVAL_CTX_new_ex() but the default library * context and property query string is used. diff --git a/deps/openssl/config/archs/linux-elf/asm/include/openssl/err.h b/deps/openssl/config/archs/linux-elf/asm/include/openssl/err.h index 2abf2483488181..daca18e7b757b0 100644 --- a/deps/openssl/config/archs/linux-elf/asm/include/openssl/err.h +++ b/deps/openssl/config/archs/linux-elf/asm/include/openssl/err.h @@ -1,5 +1,5 @@ /* - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -372,7 +372,7 @@ typedef struct ERR_string_data_st { } ERR_STRING_DATA; DEFINE_LHASH_OF_INTERNAL(ERR_STRING_DATA); -#define lh_ERR_STRING_DATA_new(hfn, cmp) ((LHASH_OF(ERR_STRING_DATA) *)OPENSSL_LH_new(ossl_check_ERR_STRING_DATA_lh_hashfunc_type(hfn), ossl_check_ERR_STRING_DATA_lh_compfunc_type(cmp))) +#define lh_ERR_STRING_DATA_new(hfn, cmp) ((LHASH_OF(ERR_STRING_DATA) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new(ossl_check_ERR_STRING_DATA_lh_hashfunc_type(hfn), ossl_check_ERR_STRING_DATA_lh_compfunc_type(cmp)), lh_ERR_STRING_DATA_hash_thunk, lh_ERR_STRING_DATA_comp_thunk, lh_ERR_STRING_DATA_doall_thunk, lh_ERR_STRING_DATA_doall_arg_thunk)) #define lh_ERR_STRING_DATA_free(lh) OPENSSL_LH_free(ossl_check_ERR_STRING_DATA_lh_type(lh)) #define lh_ERR_STRING_DATA_flush(lh) OPENSSL_LH_flush(ossl_check_ERR_STRING_DATA_lh_type(lh)) #define lh_ERR_STRING_DATA_insert(lh, ptr) ((ERR_STRING_DATA *)OPENSSL_LH_insert(ossl_check_ERR_STRING_DATA_lh_type(lh), ossl_check_ERR_STRING_DATA_lh_plain_type(ptr))) @@ -496,6 +496,14 @@ int ERR_get_next_error_library(void); int ERR_set_mark(void); int ERR_pop_to_mark(void); int ERR_clear_last_mark(void); +int ERR_count_to_mark(void); +int ERR_pop(void); + +ERR_STATE *OSSL_ERR_STATE_new(void); +void OSSL_ERR_STATE_save(ERR_STATE *es); +void OSSL_ERR_STATE_save_to_mark(ERR_STATE *es); +void OSSL_ERR_STATE_restore(const ERR_STATE *es); +void OSSL_ERR_STATE_free(ERR_STATE *es); #ifdef __cplusplus } diff --git a/deps/openssl/config/archs/linux-elf/asm/include/openssl/fipskey.h b/deps/openssl/config/archs/linux-elf/asm/include/openssl/fipskey.h index 42ba014b313ba8..929db18c678364 100644 --- a/deps/openssl/config/archs/linux-elf/asm/include/openssl/fipskey.h +++ b/deps/openssl/config/archs/linux-elf/asm/include/openssl/fipskey.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/fipskey.h.in * - * Copyright 2020-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2020-2024 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -29,6 +29,11 @@ extern "C" { */ #define FIPS_KEY_STRING "f4556650ac31d35461610bac4ed81b1a181b2d8a43ea2854cbae22ca74560813" +/* + * The FIPS provider vendor name, as a string. + */ +#define FIPS_VENDOR "OpenSSL FIPS Provider" + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/linux-elf/asm/include/openssl/lhash.h b/deps/openssl/config/archs/linux-elf/asm/include/openssl/lhash.h index 39dd6254acdeb6..62c55b20fd9716 100644 --- a/deps/openssl/config/archs/linux-elf/asm/include/openssl/lhash.h +++ b/deps/openssl/config/archs/linux-elf/asm/include/openssl/lhash.h @@ -1,5 +1,5 @@ /* - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2024 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -24,6 +24,9 @@ # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -31,9 +34,13 @@ extern "C" { typedef struct lhash_node_st OPENSSL_LH_NODE; typedef int (*OPENSSL_LH_COMPFUNC) (const void *, const void *); +typedef int (*OPENSSL_LH_COMPFUNCTHUNK) (const void *, const void *, OPENSSL_LH_COMPFUNC cfn); typedef unsigned long (*OPENSSL_LH_HASHFUNC) (const void *); +typedef unsigned long (*OPENSSL_LH_HASHFUNCTHUNK) (const void *, OPENSSL_LH_HASHFUNC hfn); typedef void (*OPENSSL_LH_DOALL_FUNC) (void *); +typedef void (*OPENSSL_LH_DOALL_FUNC_THUNK) (void *, OPENSSL_LH_DOALL_FUNC doall); typedef void (*OPENSSL_LH_DOALL_FUNCARG) (void *, void *); +typedef void (*OPENSSL_LH_DOALL_FUNCARG_THUNK) (void *, void *, OPENSSL_LH_DOALL_FUNCARG doall); typedef struct lhash_st OPENSSL_LHASH; /* @@ -79,26 +86,40 @@ typedef struct lhash_st OPENSSL_LHASH; int OPENSSL_LH_error(OPENSSL_LHASH *lh); OPENSSL_LHASH *OPENSSL_LH_new(OPENSSL_LH_HASHFUNC h, OPENSSL_LH_COMPFUNC c); +OPENSSL_LHASH *OPENSSL_LH_set_thunks(OPENSSL_LHASH *lh, + OPENSSL_LH_HASHFUNCTHUNK hw, + OPENSSL_LH_COMPFUNCTHUNK cw, + OPENSSL_LH_DOALL_FUNC_THUNK daw, + OPENSSL_LH_DOALL_FUNCARG_THUNK daaw); void OPENSSL_LH_free(OPENSSL_LHASH *lh); void OPENSSL_LH_flush(OPENSSL_LHASH *lh); void *OPENSSL_LH_insert(OPENSSL_LHASH *lh, void *data); void *OPENSSL_LH_delete(OPENSSL_LHASH *lh, const void *data); void *OPENSSL_LH_retrieve(OPENSSL_LHASH *lh, const void *data); void OPENSSL_LH_doall(OPENSSL_LHASH *lh, OPENSSL_LH_DOALL_FUNC func); -void OPENSSL_LH_doall_arg(OPENSSL_LHASH *lh, OPENSSL_LH_DOALL_FUNCARG func, void *arg); +void OPENSSL_LH_doall_arg(OPENSSL_LHASH *lh, + OPENSSL_LH_DOALL_FUNCARG func, void *arg); +void OPENSSL_LH_doall_arg_thunk(OPENSSL_LHASH *lh, + OPENSSL_LH_DOALL_FUNCARG_THUNK daaw, + OPENSSL_LH_DOALL_FUNCARG fn, void *arg); + unsigned long OPENSSL_LH_strhash(const char *c); unsigned long OPENSSL_LH_num_items(const OPENSSL_LHASH *lh); unsigned long OPENSSL_LH_get_down_load(const OPENSSL_LHASH *lh); void OPENSSL_LH_set_down_load(OPENSSL_LHASH *lh, unsigned long down_load); # ifndef OPENSSL_NO_STDIO -void OPENSSL_LH_stats(const OPENSSL_LHASH *lh, FILE *fp); -void OPENSSL_LH_node_stats(const OPENSSL_LHASH *lh, FILE *fp); -void OPENSSL_LH_node_usage_stats(const OPENSSL_LHASH *lh, FILE *fp); +# ifndef OPENSSL_NO_DEPRECATED_3_1 +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_stats(const OPENSSL_LHASH *lh, FILE *fp); +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_node_stats(const OPENSSL_LHASH *lh, FILE *fp); +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_node_usage_stats(const OPENSSL_LHASH *lh, FILE *fp); +# endif +# endif +# ifndef OPENSSL_NO_DEPRECATED_3_1 +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_stats_bio(const OPENSSL_LHASH *lh, BIO *out); +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_node_stats_bio(const OPENSSL_LHASH *lh, BIO *out); +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_node_usage_stats_bio(const OPENSSL_LHASH *lh, BIO *out); # endif -void OPENSSL_LH_stats_bio(const OPENSSL_LHASH *lh, BIO *out); -void OPENSSL_LH_node_stats_bio(const OPENSSL_LHASH *lh, BIO *out); -void OPENSSL_LH_node_usage_stats_bio(const OPENSSL_LHASH *lh, BIO *out); # ifndef OPENSSL_NO_DEPRECATED_1_1_0 # define _LHASH OPENSSL_LHASH @@ -129,110 +150,190 @@ void OPENSSL_LH_node_usage_stats_bio(const OPENSSL_LHASH *lh, BIO *out); /* Helper macro for internal use */ # define DEFINE_LHASH_OF_INTERNAL(type) \ - LHASH_OF(type) { union lh_##type##_dummy { void* d1; unsigned long d2; int d3; } dummy; }; \ + LHASH_OF(type) { \ + union lh_##type##_dummy { void* d1; unsigned long d2; int d3; } dummy; \ + }; \ typedef int (*lh_##type##_compfunc)(const type *a, const type *b); \ typedef unsigned long (*lh_##type##_hashfunc)(const type *a); \ typedef void (*lh_##type##_doallfunc)(type *a); \ - static ossl_unused ossl_inline type *ossl_check_##type##_lh_plain_type(type *ptr) \ + static ossl_inline unsigned long lh_##type##_hash_thunk(const void *data, OPENSSL_LH_HASHFUNC hfn) \ + { \ + unsigned long (*hfn_conv)(const type *) = (unsigned long (*)(const type *))hfn; \ + return hfn_conv((const type *)data); \ + } \ + static ossl_inline int lh_##type##_comp_thunk(const void *da, const void *db, OPENSSL_LH_COMPFUNC cfn) \ + { \ + int (*cfn_conv)(const type *, const type *) = (int (*)(const type *, const type *))cfn; \ + return cfn_conv((const type *)da, (const type *)db); \ + } \ + static ossl_inline void lh_##type##_doall_thunk(void *node, OPENSSL_LH_DOALL_FUNC doall) \ + { \ + void (*doall_conv)(type *) = (void (*)(type *))doall; \ + doall_conv((type *)node); \ + } \ + static ossl_inline void lh_##type##_doall_arg_thunk(void *node, void *arg, OPENSSL_LH_DOALL_FUNCARG doall) \ + { \ + void (*doall_conv)(type *, void *) = (void (*)(type *, void *))doall; \ + doall_conv((type *)node, arg); \ + } \ + static ossl_unused ossl_inline type *\ + ossl_check_##type##_lh_plain_type(type *ptr) \ { \ return ptr; \ } \ - static ossl_unused ossl_inline const type *ossl_check_const_##type##_lh_plain_type(const type *ptr) \ + static ossl_unused ossl_inline const type * \ + ossl_check_const_##type##_lh_plain_type(const type *ptr) \ { \ return ptr; \ } \ - static ossl_unused ossl_inline const OPENSSL_LHASH *ossl_check_const_##type##_lh_type(const LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline const OPENSSL_LHASH * \ + ossl_check_const_##type##_lh_type(const LHASH_OF(type) *lh) \ { \ return (const OPENSSL_LHASH *)lh; \ } \ - static ossl_unused ossl_inline OPENSSL_LHASH *ossl_check_##type##_lh_type(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline OPENSSL_LHASH * \ + ossl_check_##type##_lh_type(LHASH_OF(type) *lh) \ { \ return (OPENSSL_LHASH *)lh; \ } \ - static ossl_unused ossl_inline OPENSSL_LH_COMPFUNC ossl_check_##type##_lh_compfunc_type(lh_##type##_compfunc cmp) \ + static ossl_unused ossl_inline OPENSSL_LH_COMPFUNC \ + ossl_check_##type##_lh_compfunc_type(lh_##type##_compfunc cmp) \ { \ return (OPENSSL_LH_COMPFUNC)cmp; \ } \ - static ossl_unused ossl_inline OPENSSL_LH_HASHFUNC ossl_check_##type##_lh_hashfunc_type(lh_##type##_hashfunc hfn) \ + static ossl_unused ossl_inline OPENSSL_LH_HASHFUNC \ + ossl_check_##type##_lh_hashfunc_type(lh_##type##_hashfunc hfn) \ { \ return (OPENSSL_LH_HASHFUNC)hfn; \ } \ - static ossl_unused ossl_inline OPENSSL_LH_DOALL_FUNC ossl_check_##type##_lh_doallfunc_type(lh_##type##_doallfunc dfn) \ + static ossl_unused ossl_inline OPENSSL_LH_DOALL_FUNC \ + ossl_check_##type##_lh_doallfunc_type(lh_##type##_doallfunc dfn) \ { \ return (OPENSSL_LH_DOALL_FUNC)dfn; \ } \ LHASH_OF(type) -# define DEFINE_LHASH_OF(type) \ - LHASH_OF(type) { union lh_##type##_dummy { void* d1; unsigned long d2; int d3; } dummy; }; \ - static ossl_unused ossl_inline LHASH_OF(type) *lh_##type##_new(unsigned long (*hfn)(const type *), \ - int (*cfn)(const type *, const type *)) \ +# ifndef OPENSSL_NO_DEPRECATED_3_1 +# define DEFINE_LHASH_OF_DEPRECATED(type) \ + static ossl_unused ossl_inline void \ + lh_##type##_node_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ { \ - return (LHASH_OF(type) *) \ - OPENSSL_LH_new((OPENSSL_LH_HASHFUNC)hfn, (OPENSSL_LH_COMPFUNC)cfn); \ + OPENSSL_LH_node_stats_bio((const OPENSSL_LHASH *)lh, out); \ } \ - static ossl_unused ossl_inline void lh_##type##_free(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline void \ + lh_##type##_node_usage_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + { \ + OPENSSL_LH_node_usage_stats_bio((const OPENSSL_LHASH *)lh, out); \ + } \ + static ossl_unused ossl_inline void \ + lh_##type##_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + { \ + OPENSSL_LH_stats_bio((const OPENSSL_LHASH *)lh, out); \ + } +# else +# define DEFINE_LHASH_OF_DEPRECATED(type) +# endif + +# define DEFINE_LHASH_OF_EX(type) \ + LHASH_OF(type) { \ + union lh_##type##_dummy { void* d1; unsigned long d2; int d3; } dummy; \ + }; \ + static unsigned long \ + lh_##type##_hfn_thunk(const void *data, OPENSSL_LH_HASHFUNC hfn) \ + { \ + unsigned long (*hfn_conv)(const type *) = (unsigned long (*)(const type *))hfn; \ + return hfn_conv((const type *)data); \ + } \ + static int lh_##type##_cfn_thunk(const void *da, const void *db, OPENSSL_LH_COMPFUNC cfn) \ + { \ + int (*cfn_conv)(const type *, const type *) = (int (*)(const type *, const type *))cfn; \ + return cfn_conv((const type *)da, (const type *)db); \ + } \ + static ossl_unused ossl_inline void \ + lh_##type##_free(LHASH_OF(type) *lh) \ { \ OPENSSL_LH_free((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline void lh_##type##_flush(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline void \ + lh_##type##_flush(LHASH_OF(type) *lh) \ { \ OPENSSL_LH_flush((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline type *lh_##type##_insert(LHASH_OF(type) *lh, type *d) \ + static ossl_unused ossl_inline type * \ + lh_##type##_insert(LHASH_OF(type) *lh, type *d) \ { \ return (type *)OPENSSL_LH_insert((OPENSSL_LHASH *)lh, d); \ } \ - static ossl_unused ossl_inline type *lh_##type##_delete(LHASH_OF(type) *lh, const type *d) \ + static ossl_unused ossl_inline type * \ + lh_##type##_delete(LHASH_OF(type) *lh, const type *d) \ { \ return (type *)OPENSSL_LH_delete((OPENSSL_LHASH *)lh, d); \ } \ - static ossl_unused ossl_inline type *lh_##type##_retrieve(LHASH_OF(type) *lh, const type *d) \ + static ossl_unused ossl_inline type * \ + lh_##type##_retrieve(LHASH_OF(type) *lh, const type *d) \ { \ return (type *)OPENSSL_LH_retrieve((OPENSSL_LHASH *)lh, d); \ } \ - static ossl_unused ossl_inline int lh_##type##_error(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline int \ + lh_##type##_error(LHASH_OF(type) *lh) \ { \ return OPENSSL_LH_error((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline unsigned long lh_##type##_num_items(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline unsigned long \ + lh_##type##_num_items(LHASH_OF(type) *lh) \ { \ return OPENSSL_LH_num_items((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline void lh_##type##_node_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + static ossl_unused ossl_inline unsigned long \ + lh_##type##_get_down_load(LHASH_OF(type) *lh) \ { \ - OPENSSL_LH_node_stats_bio((const OPENSSL_LHASH *)lh, out); \ + return OPENSSL_LH_get_down_load((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline void lh_##type##_node_usage_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + static ossl_unused ossl_inline void \ + lh_##type##_set_down_load(LHASH_OF(type) *lh, unsigned long dl) \ { \ - OPENSSL_LH_node_usage_stats_bio((const OPENSSL_LHASH *)lh, out); \ + OPENSSL_LH_set_down_load((OPENSSL_LHASH *)lh, dl); \ } \ - static ossl_unused ossl_inline void lh_##type##_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall_thunk(void *node, OPENSSL_LH_DOALL_FUNC doall) \ { \ - OPENSSL_LH_stats_bio((const OPENSSL_LHASH *)lh, out); \ + void (*doall_conv)(type *) = (void (*)(type *))doall; \ + doall_conv((type *)node); \ } \ - static ossl_unused ossl_inline unsigned long lh_##type##_get_down_load(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall_arg_thunk(void *node, void *arg, OPENSSL_LH_DOALL_FUNCARG doall) \ { \ - return OPENSSL_LH_get_down_load((OPENSSL_LHASH *)lh); \ + void (*doall_conv)(type *, void *) = (void (*)(type *, void *))doall; \ + doall_conv((type *)node, arg); \ } \ - static ossl_unused ossl_inline void lh_##type##_set_down_load(LHASH_OF(type) *lh, unsigned long dl) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall(LHASH_OF(type) *lh, void (*doall)(type *)) \ { \ - OPENSSL_LH_set_down_load((OPENSSL_LHASH *)lh, dl); \ + OPENSSL_LH_doall((OPENSSL_LHASH *)lh, (OPENSSL_LH_DOALL_FUNC)doall); \ } \ - static ossl_unused ossl_inline void lh_##type##_doall(LHASH_OF(type) *lh, \ - void (*doall)(type *)) \ + static ossl_unused ossl_inline LHASH_OF(type) * \ + lh_##type##_new(unsigned long (*hfn)(const type *), \ + int (*cfn)(const type *, const type *)) \ { \ - OPENSSL_LH_doall((OPENSSL_LHASH *)lh, (OPENSSL_LH_DOALL_FUNC)doall); \ + return (LHASH_OF(type) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new((OPENSSL_LH_HASHFUNC)hfn, (OPENSSL_LH_COMPFUNC)cfn), \ + lh_##type##_hfn_thunk, lh_##type##_cfn_thunk, \ + lh_##type##_doall_thunk, \ + lh_##type##_doall_arg_thunk); \ } \ - static ossl_unused ossl_inline void lh_##type##_doall_arg(LHASH_OF(type) *lh, \ - void (*doallarg)(type *, void *), \ - void *arg) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall_arg(LHASH_OF(type) *lh, \ + void (*doallarg)(type *, void *), void *arg) \ { \ OPENSSL_LH_doall_arg((OPENSSL_LHASH *)lh, \ (OPENSSL_LH_DOALL_FUNCARG)doallarg, arg); \ } \ LHASH_OF(type) +# define DEFINE_LHASH_OF(type) \ + DEFINE_LHASH_OF_EX(type); \ + DEFINE_LHASH_OF_DEPRECATED(type) \ + LHASH_OF(type) + #define IMPLEMENT_LHASH_DOALL_ARG_CONST(type, argtype) \ int_implement_lhash_doall(type, argtype, const type) @@ -240,17 +341,26 @@ void OPENSSL_LH_node_usage_stats_bio(const OPENSSL_LHASH *lh, BIO *out); int_implement_lhash_doall(type, argtype, type) #define int_implement_lhash_doall(type, argtype, cbargtype) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall_##argtype##_thunk(void *node, void *arg, OPENSSL_LH_DOALL_FUNCARG fn) \ + { \ + void (*fn_conv)(cbargtype *, argtype *) = (void (*)(cbargtype *, argtype *))fn; \ + fn_conv((cbargtype *)node, (argtype *)arg); \ + } \ static ossl_unused ossl_inline void \ lh_##type##_doall_##argtype(LHASH_OF(type) *lh, \ void (*fn)(cbargtype *, argtype *), \ argtype *arg) \ { \ - OPENSSL_LH_doall_arg((OPENSSL_LHASH *)lh, (OPENSSL_LH_DOALL_FUNCARG)fn, (void *)arg); \ + OPENSSL_LH_doall_arg_thunk((OPENSSL_LHASH *)lh, \ + lh_##type##_doall_##argtype##_thunk, \ + (OPENSSL_LH_DOALL_FUNCARG)fn, \ + (void *)arg); \ } \ LHASH_OF(type) DEFINE_LHASH_OF_INTERNAL(OPENSSL_STRING); -#define lh_OPENSSL_STRING_new(hfn, cmp) ((LHASH_OF(OPENSSL_STRING) *)OPENSSL_LH_new(ossl_check_OPENSSL_STRING_lh_hashfunc_type(hfn), ossl_check_OPENSSL_STRING_lh_compfunc_type(cmp))) +#define lh_OPENSSL_STRING_new(hfn, cmp) ((LHASH_OF(OPENSSL_STRING) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new(ossl_check_OPENSSL_STRING_lh_hashfunc_type(hfn), ossl_check_OPENSSL_STRING_lh_compfunc_type(cmp)), lh_OPENSSL_STRING_hash_thunk, lh_OPENSSL_STRING_comp_thunk, lh_OPENSSL_STRING_doall_thunk, lh_OPENSSL_STRING_doall_arg_thunk)) #define lh_OPENSSL_STRING_free(lh) OPENSSL_LH_free(ossl_check_OPENSSL_STRING_lh_type(lh)) #define lh_OPENSSL_STRING_flush(lh) OPENSSL_LH_flush(ossl_check_OPENSSL_STRING_lh_type(lh)) #define lh_OPENSSL_STRING_insert(lh, ptr) ((OPENSSL_STRING *)OPENSSL_LH_insert(ossl_check_OPENSSL_STRING_lh_type(lh), ossl_check_OPENSSL_STRING_lh_plain_type(ptr))) @@ -265,7 +375,7 @@ DEFINE_LHASH_OF_INTERNAL(OPENSSL_STRING); #define lh_OPENSSL_STRING_set_down_load(lh, dl) OPENSSL_LH_set_down_load(ossl_check_OPENSSL_STRING_lh_type(lh), dl) #define lh_OPENSSL_STRING_doall(lh, dfn) OPENSSL_LH_doall(ossl_check_OPENSSL_STRING_lh_type(lh), ossl_check_OPENSSL_STRING_lh_doallfunc_type(dfn)) DEFINE_LHASH_OF_INTERNAL(OPENSSL_CSTRING); -#define lh_OPENSSL_CSTRING_new(hfn, cmp) ((LHASH_OF(OPENSSL_CSTRING) *)OPENSSL_LH_new(ossl_check_OPENSSL_CSTRING_lh_hashfunc_type(hfn), ossl_check_OPENSSL_CSTRING_lh_compfunc_type(cmp))) +#define lh_OPENSSL_CSTRING_new(hfn, cmp) ((LHASH_OF(OPENSSL_CSTRING) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new(ossl_check_OPENSSL_CSTRING_lh_hashfunc_type(hfn), ossl_check_OPENSSL_CSTRING_lh_compfunc_type(cmp)), lh_OPENSSL_CSTRING_hash_thunk, lh_OPENSSL_CSTRING_comp_thunk, lh_OPENSSL_CSTRING_doall_thunk, lh_OPENSSL_CSTRING_doall_arg_thunk)) #define lh_OPENSSL_CSTRING_free(lh) OPENSSL_LH_free(ossl_check_OPENSSL_CSTRING_lh_type(lh)) #define lh_OPENSSL_CSTRING_flush(lh) OPENSSL_LH_flush(ossl_check_OPENSSL_CSTRING_lh_type(lh)) #define lh_OPENSSL_CSTRING_insert(lh, ptr) ((OPENSSL_CSTRING *)OPENSSL_LH_insert(ossl_check_OPENSSL_CSTRING_lh_type(lh), ossl_check_OPENSSL_CSTRING_lh_plain_type(ptr))) diff --git a/deps/openssl/config/archs/linux-elf/asm/include/openssl/opensslv.h b/deps/openssl/config/archs/linux-elf/asm/include/openssl/opensslv.h index 5fb5bc63056fe0..dd50d89cb9982d 100644 --- a/deps/openssl/config/archs/linux-elf/asm/include/openssl/opensslv.h +++ b/deps/openssl/config/archs/linux-elf/asm/include/openssl/opensslv.h @@ -28,8 +28,8 @@ extern "C" { * These macros express version number MAJOR.MINOR.PATCH exactly */ # define OPENSSL_VERSION_MAJOR 3 -# define OPENSSL_VERSION_MINOR 0 -# define OPENSSL_VERSION_PATCH 17 +# define OPENSSL_VERSION_MINOR 5 +# define OPENSSL_VERSION_PATCH 1 /* * Additional version information @@ -74,8 +74,8 @@ extern "C" { * longer variant with OPENSSL_VERSION_PRE_RELEASE_STR and * OPENSSL_VERSION_BUILD_METADATA_STR appended. */ -# define OPENSSL_VERSION_STR "3.0.17" -# define OPENSSL_FULL_VERSION_STR "3.0.17" +# define OPENSSL_VERSION_STR "3.5.1" +# define OPENSSL_FULL_VERSION_STR "3.5.1" /* * SECTION 3: ADDITIONAL METADATA @@ -88,7 +88,7 @@ extern "C" { * SECTION 4: BACKWARD COMPATIBILITY */ -# define OPENSSL_VERSION_TEXT "OpenSSL 3.0.17 1 Jul 2025" +# define OPENSSL_VERSION_TEXT "OpenSSL 3.5.1 1 Jul 2025" /* Synthesize OPENSSL_VERSION_NUMBER with the layout 0xMNN00PPSL */ # ifdef OPENSSL_VERSION_PRE_RELEASE diff --git a/deps/openssl/config/archs/linux-elf/asm/include/openssl/pkcs12.h b/deps/openssl/config/archs/linux-elf/asm/include/openssl/pkcs12.h index c5e0cab06491ec..0809645dad0bbf 100644 --- a/deps/openssl/config/archs/linux-elf/asm/include/openssl/pkcs12.h +++ b/deps/openssl/config/archs/linux-elf/asm/include/openssl/pkcs12.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/pkcs12.h.in * - * Copyright 1999-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1999-2024 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -25,6 +25,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -41,6 +44,7 @@ extern "C" { # define PKCS12_MAC_KEY_LENGTH 20 +/* The macro is expected to be used only internally. Kept for backwards compatibility. */ # define PKCS12_SALT_LEN 8 /* It's not clear if these are actually needed... */ @@ -130,7 +134,9 @@ int PKCS12_SAFEBAG_get_bag_nid(const PKCS12_SAFEBAG *bag); const ASN1_TYPE *PKCS12_SAFEBAG_get0_bag_obj(const PKCS12_SAFEBAG *bag); const ASN1_OBJECT *PKCS12_SAFEBAG_get0_bag_type(const PKCS12_SAFEBAG *bag); +X509 *PKCS12_SAFEBAG_get1_cert_ex(const PKCS12_SAFEBAG *bag, OSSL_LIB_CTX *libctx, const char *propq); X509 *PKCS12_SAFEBAG_get1_cert(const PKCS12_SAFEBAG *bag); +X509_CRL *PKCS12_SAFEBAG_get1_crl_ex(const PKCS12_SAFEBAG *bag, OSSL_LIB_CTX *libctx, const char *propq); X509_CRL *PKCS12_SAFEBAG_get1_crl(const PKCS12_SAFEBAG *bag); const STACK_OF(PKCS12_SAFEBAG) * PKCS12_SAFEBAG_get0_safes(const PKCS12_SAFEBAG *bag); @@ -218,6 +224,7 @@ ASN1_TYPE *PKCS12_get_attr_gen(const STACK_OF(X509_ATTRIBUTE) *attrs, char *PKCS12_get_friendlyname(PKCS12_SAFEBAG *bag); const STACK_OF(X509_ATTRIBUTE) * PKCS12_SAFEBAG_get0_attrs(const PKCS12_SAFEBAG *bag); +void PKCS12_SAFEBAG_set0_attrs(PKCS12_SAFEBAG *bag, STACK_OF(X509_ATTRIBUTE) *attrs); unsigned char *PKCS12_pbe_crypt(const X509_ALGOR *algor, const char *pass, int passlen, const unsigned char *in, int inlen, @@ -285,6 +292,9 @@ int PKCS12_verify_mac(PKCS12 *p12, const char *pass, int passlen); int PKCS12_set_mac(PKCS12 *p12, const char *pass, int passlen, unsigned char *salt, int saltlen, int iter, const EVP_MD *md_type); +int PKCS12_set_pbmac1_pbkdf2(PKCS12 *p12, const char *pass, int passlen, + unsigned char *salt, int saltlen, int iter, + const EVP_MD *md_type, const char *prf_md_name); int PKCS12_setup_mac(PKCS12 *p12, int iter, unsigned char *salt, int saltlen, const EVP_MD *md_type); unsigned char *OPENSSL_asc2uni(const char *asc, int asclen, @@ -305,6 +315,7 @@ DECLARE_ASN1_ITEM(PKCS12_AUTHSAFES) void PKCS12_PBE_add(void); int PKCS12_parse(PKCS12 *p12, const char *pass, EVP_PKEY **pkey, X509 **cert, STACK_OF(X509) **ca); +typedef int PKCS12_create_cb(PKCS12_SAFEBAG *bag, void *cbarg); PKCS12 *PKCS12_create(const char *pass, const char *name, EVP_PKEY *pkey, X509 *cert, STACK_OF(X509) *ca, int nid_key, int nid_cert, int iter, int mac_iter, int keytype); @@ -312,6 +323,11 @@ PKCS12 *PKCS12_create_ex(const char *pass, const char *name, EVP_PKEY *pkey, X509 *cert, STACK_OF(X509) *ca, int nid_key, int nid_cert, int iter, int mac_iter, int keytype, OSSL_LIB_CTX *ctx, const char *propq); +PKCS12 *PKCS12_create_ex2(const char *pass, const char *name, EVP_PKEY *pkey, + X509 *cert, STACK_OF(X509) *ca, int nid_key, int nid_cert, + int iter, int mac_iter, int keytype, + OSSL_LIB_CTX *ctx, const char *propq, + PKCS12_create_cb *cb, void *cbarg); PKCS12_SAFEBAG *PKCS12_add_cert(STACK_OF(PKCS12_SAFEBAG) **pbags, X509 *cert); PKCS12_SAFEBAG *PKCS12_add_key(STACK_OF(PKCS12_SAFEBAG) **pbags, diff --git a/deps/openssl/config/archs/linux-elf/asm/include/openssl/pkcs7.h b/deps/openssl/config/archs/linux-elf/asm/include/openssl/pkcs7.h index 0ce79bf4fa160e..fa68462aff973b 100644 --- a/deps/openssl/config/archs/linux-elf/asm/include/openssl/pkcs7.h +++ b/deps/openssl/config/archs/linux-elf/asm/include/openssl/pkcs7.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/pkcs7.h.in * - * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -28,6 +28,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -131,8 +134,8 @@ SKM_DEFINE_STACK_OF_INTERNAL(PKCS7_RECIP_INFO, PKCS7_RECIP_INFO, PKCS7_RECIP_INF typedef struct pkcs7_signed_st { ASN1_INTEGER *version; /* version 1 */ STACK_OF(X509_ALGOR) *md_algs; /* md used */ - STACK_OF(X509) *cert; /* [ 0 ] */ - STACK_OF(X509_CRL) *crl; /* [ 1 ] */ + STACK_OF(X509) *cert; /* [ 0 ] */ /* name should be 'certificates' */ + STACK_OF(X509_CRL) *crl; /* [ 1 ] */ /* name should be 'crls' */ STACK_OF(PKCS7_SIGNER_INFO) *signer_info; struct pkcs7_st *contents; } PKCS7_SIGNED; @@ -158,8 +161,8 @@ typedef struct pkcs7_enveloped_st { typedef struct pkcs7_signedandenveloped_st { ASN1_INTEGER *version; /* version 1 */ STACK_OF(X509_ALGOR) *md_algs; /* md used */ - STACK_OF(X509) *cert; /* [ 0 ] */ - STACK_OF(X509_CRL) *crl; /* [ 1 ] */ + STACK_OF(X509) *cert; /* [ 0 ] */ /* name should be 'certificates' */ + STACK_OF(X509_CRL) *crl; /* [ 1 ] */ /* name should be 'crls' */ STACK_OF(PKCS7_SIGNER_INFO) *signer_info; PKCS7_ENC_CONTENT *enc_data; STACK_OF(PKCS7_RECIP_INFO) *recipientinfo; @@ -200,7 +203,7 @@ typedef struct pkcs7_st { /* NID_pkcs7_data */ ASN1_OCTET_STRING *data; /* NID_pkcs7_signed */ - PKCS7_SIGNED *sign; + PKCS7_SIGNED *sign; /* field name 'signed' would clash with C keyword */ /* NID_pkcs7_enveloped */ PKCS7_ENVELOPE *enveloped; /* NID_pkcs7_signedAndEnveloped */ @@ -341,13 +344,13 @@ int PKCS7_SIGNER_INFO_set(PKCS7_SIGNER_INFO *p7i, X509 *x509, EVP_PKEY *pkey, const EVP_MD *dgst); int PKCS7_SIGNER_INFO_sign(PKCS7_SIGNER_INFO *si); int PKCS7_add_signer(PKCS7 *p7, PKCS7_SIGNER_INFO *p7i); -int PKCS7_add_certificate(PKCS7 *p7, X509 *x509); -int PKCS7_add_crl(PKCS7 *p7, X509_CRL *x509); +int PKCS7_add_certificate(PKCS7 *p7, X509 *cert); +int PKCS7_add_crl(PKCS7 *p7, X509_CRL *crl); int PKCS7_content_new(PKCS7 *p7, int nid); int PKCS7_dataVerify(X509_STORE *cert_store, X509_STORE_CTX *ctx, BIO *bio, PKCS7 *p7, PKCS7_SIGNER_INFO *si); int PKCS7_signatureVerify(BIO *bio, PKCS7 *p7, PKCS7_SIGNER_INFO *si, - X509 *x509); + X509 *signer); BIO *PKCS7_dataInit(PKCS7 *p7, BIO *bio); int PKCS7_dataFinal(PKCS7 *p7, BIO *bio); diff --git a/deps/openssl/config/archs/linux-elf/asm/include/openssl/ssl.h b/deps/openssl/config/archs/linux-elf/asm/include/openssl/ssl.h index 3df725c56d6c5e..7e3d89c7ef3dc9 100644 --- a/deps/openssl/config/archs/linux-elf/asm/include/openssl/ssl.h +++ b/deps/openssl/config/archs/linux-elf/asm/include/openssl/ssl.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/ssl.h.in * - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved * Copyright 2005 Nokia. All rights reserved. * @@ -24,6 +24,7 @@ # endif # include +# include # include # include # include @@ -42,6 +43,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -231,10 +235,8 @@ typedef struct ssl_cipher_st SSL_CIPHER; typedef struct ssl_session_st SSL_SESSION; typedef struct tls_sigalgs_st TLS_SIGALGS; typedef struct ssl_conf_ctx_st SSL_CONF_CTX; -typedef struct ssl_comp_st SSL_COMP; STACK_OF(SSL_CIPHER); -STACK_OF(SSL_COMP); /* SRTP protection profiles for use with the use_srtp extension (RFC 5764)*/ typedef struct srtp_protection_profile_st { @@ -278,28 +280,31 @@ typedef int (*tls_session_secret_cb_fn)(SSL *s, void *secret, int *secret_len, /* Extension context codes */ /* This extension is only allowed in TLS */ -#define SSL_EXT_TLS_ONLY 0x0001 +#define SSL_EXT_TLS_ONLY 0x00001 /* This extension is only allowed in DTLS */ -#define SSL_EXT_DTLS_ONLY 0x0002 +#define SSL_EXT_DTLS_ONLY 0x00002 /* Some extensions may be allowed in DTLS but we don't implement them for it */ -#define SSL_EXT_TLS_IMPLEMENTATION_ONLY 0x0004 +#define SSL_EXT_TLS_IMPLEMENTATION_ONLY 0x00004 /* Most extensions are not defined for SSLv3 but EXT_TYPE_renegotiate is */ -#define SSL_EXT_SSL3_ALLOWED 0x0008 +#define SSL_EXT_SSL3_ALLOWED 0x00008 /* Extension is only defined for TLS1.2 and below */ -#define SSL_EXT_TLS1_2_AND_BELOW_ONLY 0x0010 +#define SSL_EXT_TLS1_2_AND_BELOW_ONLY 0x00010 /* Extension is only defined for TLS1.3 and above */ -#define SSL_EXT_TLS1_3_ONLY 0x0020 +#define SSL_EXT_TLS1_3_ONLY 0x00020 /* Ignore this extension during parsing if we are resuming */ -#define SSL_EXT_IGNORE_ON_RESUMPTION 0x0040 -#define SSL_EXT_CLIENT_HELLO 0x0080 +#define SSL_EXT_IGNORE_ON_RESUMPTION 0x00040 +#define SSL_EXT_CLIENT_HELLO 0x00080 /* Really means TLS1.2 or below */ -#define SSL_EXT_TLS1_2_SERVER_HELLO 0x0100 -#define SSL_EXT_TLS1_3_SERVER_HELLO 0x0200 -#define SSL_EXT_TLS1_3_ENCRYPTED_EXTENSIONS 0x0400 -#define SSL_EXT_TLS1_3_HELLO_RETRY_REQUEST 0x0800 -#define SSL_EXT_TLS1_3_CERTIFICATE 0x1000 -#define SSL_EXT_TLS1_3_NEW_SESSION_TICKET 0x2000 -#define SSL_EXT_TLS1_3_CERTIFICATE_REQUEST 0x4000 +#define SSL_EXT_TLS1_2_SERVER_HELLO 0x00100 +#define SSL_EXT_TLS1_3_SERVER_HELLO 0x00200 +#define SSL_EXT_TLS1_3_ENCRYPTED_EXTENSIONS 0x00400 +#define SSL_EXT_TLS1_3_HELLO_RETRY_REQUEST 0x00800 +#define SSL_EXT_TLS1_3_CERTIFICATE 0x01000 +#define SSL_EXT_TLS1_3_NEW_SESSION_TICKET 0x02000 +#define SSL_EXT_TLS1_3_CERTIFICATE_REQUEST 0x04000 +#define SSL_EXT_TLS1_3_CERTIFICATE_COMPRESSION 0x08000 +/* When sending a raw public key in a certificate message */ +#define SSL_EXT_TLS1_3_RAW_PUBLIC_KEY 0x10000 /* Typedefs for handling custom extensions */ @@ -404,7 +409,7 @@ typedef int (*SSL_async_callback_fn)(SSL *s, void *arg); */ # define SSL_OP_CIPHER_SERVER_PREFERENCE SSL_OP_BIT(22) /* - * If set, a server will allow a client to issue a SSLv3.0 version + * If set, a server will allow a client to issue an SSLv3.0 version * number as latest version supported in the premaster secret, even when * TLSv1.0 (version 3.1) was announced in the client hello. Normally * this is forbidden to prevent version rollback attacks. @@ -430,6 +435,19 @@ typedef int (*SSL_async_callback_fn)(SSL *s, void *arg); * interoperability with CryptoPro CSP 3.x */ # define SSL_OP_CRYPTOPRO_TLSEXT_BUG SSL_OP_BIT(31) +/* + * Disable RFC8879 certificate compression + * SSL_OP_NO_TX_CERTIFICATE_COMPRESSION: don't send compressed certificates, + * and ignore the extension when received. + * SSL_OP_NO_RX_CERTIFICATE_COMPRESSION: don't send the extension, and + * subsequently indicating that receiving is not supported + */ +# define SSL_OP_NO_TX_CERTIFICATE_COMPRESSION SSL_OP_BIT(32) +# define SSL_OP_NO_RX_CERTIFICATE_COMPRESSION SSL_OP_BIT(33) + /* Enable KTLS TX zerocopy on Linux */ +# define SSL_OP_ENABLE_KTLS_TX_ZEROCOPY_SENDFILE SSL_OP_BIT(34) + +#define SSL_OP_PREFER_NO_DHE_KEX SSL_OP_BIT(35) /* * Option "collections." @@ -574,6 +592,8 @@ typedef int (*SSL_async_callback_fn)(SSL *s, void *arg); # define CERT_PKEY_CERT_TYPE 0x400 /* Cert chain suitable to Suite B */ # define CERT_PKEY_SUITEB 0x800 +/* Cert pkey valid for raw public key use */ +# define CERT_PKEY_RPK 0x1000 # define SSL_CONF_FLAG_CMDLINE 0x1 # define SSL_CONF_FLAG_FILE 0x2 @@ -965,6 +985,7 @@ uint32_t SSL_get_recv_max_early_data(const SSL *s); # include /* This is mostly sslv3 with a few tweaks */ # include /* Datagram TLS */ # include /* Support for the use_srtp extension */ +# include #ifdef __cplusplus extern "C" { @@ -1000,32 +1021,6 @@ SKM_DEFINE_STACK_OF_INTERNAL(SSL_CIPHER, const SSL_CIPHER, SSL_CIPHER) #define sk_SSL_CIPHER_dup(sk) ((STACK_OF(SSL_CIPHER) *)OPENSSL_sk_dup(ossl_check_const_SSL_CIPHER_sk_type(sk))) #define sk_SSL_CIPHER_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(SSL_CIPHER) *)OPENSSL_sk_deep_copy(ossl_check_const_SSL_CIPHER_sk_type(sk), ossl_check_SSL_CIPHER_copyfunc_type(copyfunc), ossl_check_SSL_CIPHER_freefunc_type(freefunc))) #define sk_SSL_CIPHER_set_cmp_func(sk, cmp) ((sk_SSL_CIPHER_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_SSL_CIPHER_sk_type(sk), ossl_check_SSL_CIPHER_compfunc_type(cmp))) -SKM_DEFINE_STACK_OF_INTERNAL(SSL_COMP, SSL_COMP, SSL_COMP) -#define sk_SSL_COMP_num(sk) OPENSSL_sk_num(ossl_check_const_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_value(sk, idx) ((SSL_COMP *)OPENSSL_sk_value(ossl_check_const_SSL_COMP_sk_type(sk), (idx))) -#define sk_SSL_COMP_new(cmp) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new(ossl_check_SSL_COMP_compfunc_type(cmp))) -#define sk_SSL_COMP_new_null() ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new_null()) -#define sk_SSL_COMP_new_reserve(cmp, n) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new_reserve(ossl_check_SSL_COMP_compfunc_type(cmp), (n))) -#define sk_SSL_COMP_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_SSL_COMP_sk_type(sk), (n)) -#define sk_SSL_COMP_free(sk) OPENSSL_sk_free(ossl_check_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_zero(sk) OPENSSL_sk_zero(ossl_check_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_delete(sk, i) ((SSL_COMP *)OPENSSL_sk_delete(ossl_check_SSL_COMP_sk_type(sk), (i))) -#define sk_SSL_COMP_delete_ptr(sk, ptr) ((SSL_COMP *)OPENSSL_sk_delete_ptr(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr))) -#define sk_SSL_COMP_push(sk, ptr) OPENSSL_sk_push(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) -#define sk_SSL_COMP_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) -#define sk_SSL_COMP_pop(sk) ((SSL_COMP *)OPENSSL_sk_pop(ossl_check_SSL_COMP_sk_type(sk))) -#define sk_SSL_COMP_shift(sk) ((SSL_COMP *)OPENSSL_sk_shift(ossl_check_SSL_COMP_sk_type(sk))) -#define sk_SSL_COMP_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_SSL_COMP_sk_type(sk),ossl_check_SSL_COMP_freefunc_type(freefunc)) -#define sk_SSL_COMP_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr), (idx)) -#define sk_SSL_COMP_set(sk, idx, ptr) ((SSL_COMP *)OPENSSL_sk_set(ossl_check_SSL_COMP_sk_type(sk), (idx), ossl_check_SSL_COMP_type(ptr))) -#define sk_SSL_COMP_find(sk, ptr) OPENSSL_sk_find(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) -#define sk_SSL_COMP_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) -#define sk_SSL_COMP_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr), pnum) -#define sk_SSL_COMP_sort(sk) OPENSSL_sk_sort(ossl_check_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_dup(sk) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_dup(ossl_check_const_SSL_COMP_sk_type(sk))) -#define sk_SSL_COMP_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_deep_copy(ossl_check_const_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_copyfunc_type(copyfunc), ossl_check_SSL_COMP_freefunc_type(freefunc))) -#define sk_SSL_COMP_set_cmp_func(sk, cmp) ((sk_SSL_COMP_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_compfunc_type(cmp))) /* compatibility */ @@ -1066,6 +1061,7 @@ typedef enum { DTLS_ST_CR_HELLO_VERIFY_REQUEST, TLS_ST_CR_SRVR_HELLO, TLS_ST_CR_CERT, + TLS_ST_CR_COMP_CERT, TLS_ST_CR_CERT_STATUS, TLS_ST_CR_KEY_EXCH, TLS_ST_CR_CERT_REQ, @@ -1075,6 +1071,7 @@ typedef enum { TLS_ST_CR_FINISHED, TLS_ST_CW_CLNT_HELLO, TLS_ST_CW_CERT, + TLS_ST_CW_COMP_CERT, TLS_ST_CW_KEY_EXCH, TLS_ST_CW_CERT_VRFY, TLS_ST_CW_CHANGE, @@ -1085,10 +1082,12 @@ typedef enum { DTLS_ST_SW_HELLO_VERIFY_REQUEST, TLS_ST_SW_SRVR_HELLO, TLS_ST_SW_CERT, + TLS_ST_SW_COMP_CERT, TLS_ST_SW_KEY_EXCH, TLS_ST_SW_CERT_REQ, TLS_ST_SW_SRVR_DONE, TLS_ST_SR_CERT, + TLS_ST_SR_COMP_CERT, TLS_ST_SR_KEY_EXCH, TLS_ST_SR_CERT_VRFY, TLS_ST_SR_NEXT_PROTO, @@ -1380,9 +1379,13 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) # define SSL_CTRL_GET_SIGNATURE_NID 132 # define SSL_CTRL_GET_TMP_KEY 133 # define SSL_CTRL_GET_NEGOTIATED_GROUP 134 +# define SSL_CTRL_GET_IANA_GROUPS 135 # define SSL_CTRL_SET_RETRY_VERIFY 136 # define SSL_CTRL_GET_VERIFY_CERT_STORE 137 # define SSL_CTRL_GET_CHAIN_CERT_STORE 138 +# define SSL_CTRL_GET0_IMPLEMENTED_GROUPS 139 +# define SSL_CTRL_GET_SIGNATURE_NAME 140 +# define SSL_CTRL_GET_PEER_SIGNATURE_NAME 141 # define SSL_CERT_SET_FIRST 1 # define SSL_CERT_SET_NEXT 2 # define SSL_CERT_SET_SERVER 3 @@ -1485,10 +1488,15 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) # define SSL_get1_groups(s, glist) \ SSL_ctrl(s,SSL_CTRL_GET_GROUPS,0,(int*)(glist)) +# define SSL_get0_iana_groups(s, plst) \ + SSL_ctrl(s,SSL_CTRL_GET_IANA_GROUPS,0,(uint16_t **)(plst)) # define SSL_CTX_set1_groups(ctx, glist, glistlen) \ SSL_CTX_ctrl(ctx,SSL_CTRL_SET_GROUPS,glistlen,(int *)(glist)) # define SSL_CTX_set1_groups_list(ctx, s) \ SSL_CTX_ctrl(ctx,SSL_CTRL_SET_GROUPS_LIST,0,(char *)(s)) +# define SSL_CTX_get0_implemented_groups(ctx, all, out) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_GET0_IMPLEMENTED_GROUPS, all, \ + (STACK_OF(OPENSSL_CSTRING) *)(out)) # define SSL_set1_groups(s, glist, glistlen) \ SSL_ctrl(s,SSL_CTRL_SET_GROUPS,glistlen,(char *)(glist)) # define SSL_set1_groups_list(s, str) \ @@ -1520,8 +1528,12 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) (char *)(clist)) # define SSL_set1_client_certificate_types(s, clist, clistlen) \ SSL_ctrl(s,SSL_CTRL_SET_CLIENT_CERT_TYPES,clistlen,(char *)(clist)) +# define SSL_get0_signature_name(s, str) \ + SSL_ctrl(s,SSL_CTRL_GET_SIGNATURE_NAME,0,(1?(str):(const char **)NULL)) # define SSL_get_signature_nid(s, pn) \ SSL_ctrl(s,SSL_CTRL_GET_SIGNATURE_NID,0,pn) +# define SSL_get0_peer_signature_name(s, str) \ + SSL_ctrl(s,SSL_CTRL_GET_PEER_SIGNATURE_NAME,0,(1?(str):(const char **)NULL)) # define SSL_get_peer_signature_nid(s, pn) \ SSL_ctrl(s,SSL_CTRL_GET_PEER_SIGNATURE_NID,0,pn) # define SSL_get_peer_tmp_key(s, pk) \ @@ -1549,6 +1561,7 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) # define SSL_get_max_proto_version(s) \ SSL_ctrl(s, SSL_CTRL_GET_MAX_PROTO_VERSION, 0, NULL) +const char *SSL_get0_group_name(SSL *s); const char *SSL_group_to_name(SSL *s, int id); /* Backwards compatibility, original 1.1.0 names */ @@ -1613,7 +1626,11 @@ void SSL_CTX_set1_cert_store(SSL_CTX *, X509_STORE *); __owur int SSL_want(const SSL *s); __owur int SSL_clear(SSL *s); +#ifndef OPENSSL_NO_DEPRECATED_3_4 +OSSL_DEPRECATEDIN_3_4_FOR("not Y2038-safe, replace with SSL_CTX_flush_sessions_ex()") void SSL_CTX_flush_sessions(SSL_CTX *ctx, long tm); +#endif +void SSL_CTX_flush_sessions_ex(SSL_CTX *ctx, time_t tm); __owur const SSL_CIPHER *SSL_get_current_cipher(const SSL *s); __owur const SSL_CIPHER *SSL_get_pending_cipher(const SSL *s); @@ -1725,13 +1742,21 @@ __owur const char *SSL_state_string(const SSL *s); __owur const char *SSL_rstate_string(const SSL *s); __owur const char *SSL_state_string_long(const SSL *s); __owur const char *SSL_rstate_string_long(const SSL *s); + +#ifndef OPENSSL_NO_DEPRECATED_3_4 +OSSL_DEPRECATEDIN_3_4_FOR("not Y2038-safe, replace with SSL_SESSION_get_time_ex()") __owur long SSL_SESSION_get_time(const SSL_SESSION *s); +OSSL_DEPRECATEDIN_3_4_FOR("not Y2038-safe, replace with SSL_SESSION_set_time_ex()") __owur long SSL_SESSION_set_time(SSL_SESSION *s, long t); +#endif __owur long SSL_SESSION_get_timeout(const SSL_SESSION *s); __owur long SSL_SESSION_set_timeout(SSL_SESSION *s, long t); __owur int SSL_SESSION_get_protocol_version(const SSL_SESSION *s); __owur int SSL_SESSION_set_protocol_version(SSL_SESSION *s, int version); +__owur time_t SSL_SESSION_get_time_ex(const SSL_SESSION *s); +__owur time_t SSL_SESSION_set_time_ex(SSL_SESSION *s, time_t t); + __owur const char *SSL_SESSION_get0_hostname(const SSL_SESSION *s); __owur int SSL_SESSION_set1_hostname(SSL_SESSION *s, const char *hostname); void SSL_SESSION_get0_alpn_selected(const SSL_SESSION *s, @@ -1783,6 +1808,9 @@ __owur int SSL_has_matching_session_id(const SSL *s, unsigned int id_len); SSL_SESSION *d2i_SSL_SESSION(SSL_SESSION **a, const unsigned char **pp, long length); +SSL_SESSION *d2i_SSL_SESSION_ex(SSL_SESSION **a, const unsigned char **pp, + long length, OSSL_LIB_CTX *libctx, + const char *propq); # ifdef OPENSSL_X509_H __owur X509 *SSL_get0_peer_certificate(const SSL *s); @@ -1840,6 +1868,8 @@ __owur int SSL_CTX_set_session_id_context(SSL_CTX *ctx, SSL *SSL_new(SSL_CTX *ctx); int SSL_up_ref(SSL *s); int SSL_is_dtls(const SSL *s); +int SSL_is_tls(const SSL *s); +int SSL_is_quic(const SSL *s); __owur int SSL_set_session_id_context(SSL *ssl, const unsigned char *sid_ctx, unsigned int sid_ctx_len); @@ -1848,8 +1878,8 @@ __owur int SSL_set_purpose(SSL *ssl, int purpose); __owur int SSL_CTX_set_trust(SSL_CTX *ctx, int trust); __owur int SSL_set_trust(SSL *ssl, int trust); -__owur int SSL_set1_host(SSL *s, const char *hostname); -__owur int SSL_add1_host(SSL *s, const char *hostname); +__owur int SSL_set1_host(SSL *s, const char *host); +__owur int SSL_add1_host(SSL *s, const char *host); __owur const char *SSL_get0_peername(SSL *s); void SSL_set_hostflags(SSL *s, unsigned int flags); @@ -1924,6 +1954,11 @@ OSSL_DEPRECATEDIN_3_0 __owur char *SSL_get_srp_userinfo(SSL *s); typedef int (*SSL_client_hello_cb_fn) (SSL *s, int *al, void *arg); void SSL_CTX_set_client_hello_cb(SSL_CTX *c, SSL_client_hello_cb_fn cb, void *arg); +typedef int (*SSL_new_pending_conn_cb_fn) (SSL_CTX *ctx, SSL *new_ssl, + void *arg); +void SSL_CTX_set_new_pending_conn_cb(SSL_CTX *c, SSL_new_pending_conn_cb_fn cb, + void *arg); + int SSL_client_hello_isv2(SSL *s); unsigned int SSL_client_hello_get0_legacy_version(SSL *s); size_t SSL_client_hello_get0_random(SSL *s, const unsigned char **out); @@ -1932,6 +1967,8 @@ size_t SSL_client_hello_get0_ciphers(SSL *s, const unsigned char **out); size_t SSL_client_hello_get0_compression_methods(SSL *s, const unsigned char **out); int SSL_client_hello_get1_extensions_present(SSL *s, int **out, size_t *outlen); +int SSL_client_hello_get_extension_order(SSL *s, uint16_t *exts, + size_t *num_exts); int SSL_client_hello_get0_ext(SSL *s, unsigned int type, const unsigned char **out, size_t *outlen); @@ -1978,6 +2015,12 @@ long SSL_callback_ctrl(SSL *, int, void (*)(void)); long SSL_CTX_ctrl(SSL_CTX *ctx, int cmd, long larg, void *parg); long SSL_CTX_callback_ctrl(SSL_CTX *, int, void (*)(void)); +# define SSL_WRITE_FLAG_CONCLUDE (1U << 0) + +__owur int SSL_write_ex2(SSL *s, const void *buf, size_t num, + uint64_t flags, + size_t *written); + # define SSL_EARLY_DATA_NOT_SENT 0 # define SSL_EARLY_DATA_REJECTED 1 # define SSL_EARLY_DATA_ACCEPTED 2 @@ -1986,6 +2029,7 @@ __owur int SSL_get_early_data_status(const SSL *s); __owur int SSL_get_error(const SSL *s, int ret_code); __owur const char *SSL_get_version(const SSL *s); +__owur int SSL_get_handshake_rtt(const SSL *s, uint64_t *rtt); /* This sets the 'default' SSL version that SSL_new() will create */ # ifndef OPENSSL_NO_DEPRECATED_3_0 @@ -2281,6 +2325,8 @@ void SSL_CTX_set_record_padding_callback(SSL_CTX *ctx, void SSL_CTX_set_record_padding_callback_arg(SSL_CTX *ctx, void *arg); void *SSL_CTX_get_record_padding_callback_arg(const SSL_CTX *ctx); int SSL_CTX_set_block_padding(SSL_CTX *ctx, size_t block_size); +int SSL_CTX_set_block_padding_ex(SSL_CTX *ctx, size_t app_block_size, + size_t hs_block_size); int SSL_set_record_padding_callback(SSL *ssl, size_t (*cb) (SSL *ssl, int type, @@ -2288,12 +2334,255 @@ int SSL_set_record_padding_callback(SSL *ssl, void SSL_set_record_padding_callback_arg(SSL *ssl, void *arg); void *SSL_get_record_padding_callback_arg(const SSL *ssl); int SSL_set_block_padding(SSL *ssl, size_t block_size); - +int SSL_set_block_padding_ex(SSL *ssl, size_t app_block_size, + size_t hs_block_size); int SSL_set_num_tickets(SSL *s, size_t num_tickets); size_t SSL_get_num_tickets(const SSL *s); int SSL_CTX_set_num_tickets(SSL_CTX *ctx, size_t num_tickets); size_t SSL_CTX_get_num_tickets(const SSL_CTX *ctx); +/* QUIC support */ +int SSL_handle_events(SSL *s); +__owur int SSL_get_event_timeout(SSL *s, struct timeval *tv, int *is_infinite); +__owur int SSL_get_rpoll_descriptor(SSL *s, BIO_POLL_DESCRIPTOR *desc); +__owur int SSL_get_wpoll_descriptor(SSL *s, BIO_POLL_DESCRIPTOR *desc); +__owur int SSL_net_read_desired(SSL *s); +__owur int SSL_net_write_desired(SSL *s); +__owur int SSL_set_blocking_mode(SSL *s, int blocking); +__owur int SSL_get_blocking_mode(SSL *s); +__owur int SSL_set1_initial_peer_addr(SSL *s, const BIO_ADDR *peer_addr); +__owur SSL *SSL_get0_connection(SSL *s); +__owur int SSL_is_connection(SSL *s); + +__owur int SSL_is_listener(SSL *ssl); +__owur SSL *SSL_get0_listener(SSL *s); +#define SSL_LISTENER_FLAG_NO_VALIDATE (1UL << 1) +__owur SSL *SSL_new_listener(SSL_CTX *ctx, uint64_t flags); +__owur SSL *SSL_new_listener_from(SSL *ssl, uint64_t flags); +__owur SSL *SSL_new_from_listener(SSL *ssl, uint64_t flags); +#define SSL_ACCEPT_CONNECTION_NO_BLOCK (1UL << 0) +__owur SSL *SSL_accept_connection(SSL *ssl, uint64_t flags); +__owur size_t SSL_get_accept_connection_queue_len(SSL *ssl); +__owur int SSL_listen(SSL *ssl); + +__owur int SSL_is_domain(SSL *s); +__owur SSL *SSL_get0_domain(SSL *s); +__owur SSL *SSL_new_domain(SSL_CTX *ctx, uint64_t flags); + +#define SSL_DOMAIN_FLAG_SINGLE_THREAD (1U << 0) +#define SSL_DOMAIN_FLAG_MULTI_THREAD (1U << 1) +#define SSL_DOMAIN_FLAG_THREAD_ASSISTED (1U << 2) +#define SSL_DOMAIN_FLAG_BLOCKING (1U << 3) +#define SSL_DOMAIN_FLAG_LEGACY_BLOCKING (1U << 4) + +__owur int SSL_CTX_set_domain_flags(SSL_CTX *ctx, uint64_t domain_flags); +__owur int SSL_CTX_get_domain_flags(const SSL_CTX *ctx, uint64_t *domain_flags); +__owur int SSL_get_domain_flags(const SSL *ssl, uint64_t *domain_flags); + +#define SSL_STREAM_TYPE_NONE 0 +#define SSL_STREAM_TYPE_READ (1U << 0) +#define SSL_STREAM_TYPE_WRITE (1U << 1) +#define SSL_STREAM_TYPE_BIDI (SSL_STREAM_TYPE_READ | SSL_STREAM_TYPE_WRITE) +__owur int SSL_get_stream_type(SSL *s); + +__owur uint64_t SSL_get_stream_id(SSL *s); +__owur int SSL_is_stream_local(SSL *s); + +#define SSL_DEFAULT_STREAM_MODE_NONE 0 +#define SSL_DEFAULT_STREAM_MODE_AUTO_BIDI 1 +#define SSL_DEFAULT_STREAM_MODE_AUTO_UNI 2 +__owur int SSL_set_default_stream_mode(SSL *s, uint32_t mode); + +#define SSL_STREAM_FLAG_UNI (1U << 0) +#define SSL_STREAM_FLAG_NO_BLOCK (1U << 1) +#define SSL_STREAM_FLAG_ADVANCE (1U << 2) +__owur SSL *SSL_new_stream(SSL *s, uint64_t flags); + +#define SSL_INCOMING_STREAM_POLICY_AUTO 0 +#define SSL_INCOMING_STREAM_POLICY_ACCEPT 1 +#define SSL_INCOMING_STREAM_POLICY_REJECT 2 +__owur int SSL_set_incoming_stream_policy(SSL *s, int policy, uint64_t aec); + +#define SSL_ACCEPT_STREAM_NO_BLOCK (1U << 0) +__owur SSL *SSL_accept_stream(SSL *s, uint64_t flags); +__owur size_t SSL_get_accept_stream_queue_len(SSL *s); + +# ifndef OPENSSL_NO_QUIC +__owur int SSL_inject_net_dgram(SSL *s, const unsigned char *buf, + size_t buf_len, + const BIO_ADDR *peer, + const BIO_ADDR *local); +# endif + +typedef struct ssl_shutdown_ex_args_st { + uint64_t quic_error_code; + const char *quic_reason; +} SSL_SHUTDOWN_EX_ARGS; + +#define SSL_SHUTDOWN_FLAG_RAPID (1U << 0) +#define SSL_SHUTDOWN_FLAG_NO_STREAM_FLUSH (1U << 1) +#define SSL_SHUTDOWN_FLAG_NO_BLOCK (1U << 2) +#define SSL_SHUTDOWN_FLAG_WAIT_PEER (1U << 3) + +__owur int SSL_shutdown_ex(SSL *ssl, uint64_t flags, + const SSL_SHUTDOWN_EX_ARGS *args, + size_t args_len); + +__owur int SSL_stream_conclude(SSL *ssl, uint64_t flags); + +typedef struct ssl_stream_reset_args_st { + uint64_t quic_error_code; +} SSL_STREAM_RESET_ARGS; + +__owur int SSL_stream_reset(SSL *ssl, + const SSL_STREAM_RESET_ARGS *args, + size_t args_len); + +#define SSL_STREAM_STATE_NONE 0 +#define SSL_STREAM_STATE_OK 1 +#define SSL_STREAM_STATE_WRONG_DIR 2 +#define SSL_STREAM_STATE_FINISHED 3 +#define SSL_STREAM_STATE_RESET_LOCAL 4 +#define SSL_STREAM_STATE_RESET_REMOTE 5 +#define SSL_STREAM_STATE_CONN_CLOSED 6 +__owur int SSL_get_stream_read_state(SSL *ssl); +__owur int SSL_get_stream_write_state(SSL *ssl); + +__owur int SSL_get_stream_read_error_code(SSL *ssl, uint64_t *app_error_code); +__owur int SSL_get_stream_write_error_code(SSL *ssl, uint64_t *app_error_code); + +#define SSL_CONN_CLOSE_FLAG_LOCAL (1U << 0) +#define SSL_CONN_CLOSE_FLAG_TRANSPORT (1U << 1) + +typedef struct ssl_conn_close_info_st { + uint64_t error_code, frame_type; + const char *reason; + size_t reason_len; + uint32_t flags; +} SSL_CONN_CLOSE_INFO; + +__owur int SSL_get_conn_close_info(SSL *ssl, + SSL_CONN_CLOSE_INFO *info, + size_t info_len); + +# define SSL_VALUE_CLASS_GENERIC 0 +# define SSL_VALUE_CLASS_FEATURE_REQUEST 1 +# define SSL_VALUE_CLASS_FEATURE_PEER_REQUEST 2 +# define SSL_VALUE_CLASS_FEATURE_NEGOTIATED 3 + +# define SSL_VALUE_NONE 0 +# define SSL_VALUE_QUIC_STREAM_BIDI_LOCAL_AVAIL 1 +# define SSL_VALUE_QUIC_STREAM_BIDI_REMOTE_AVAIL 2 +# define SSL_VALUE_QUIC_STREAM_UNI_LOCAL_AVAIL 3 +# define SSL_VALUE_QUIC_STREAM_UNI_REMOTE_AVAIL 4 +# define SSL_VALUE_QUIC_IDLE_TIMEOUT 5 +# define SSL_VALUE_EVENT_HANDLING_MODE 6 +# define SSL_VALUE_STREAM_WRITE_BUF_SIZE 7 +# define SSL_VALUE_STREAM_WRITE_BUF_USED 8 +# define SSL_VALUE_STREAM_WRITE_BUF_AVAIL 9 + +# define SSL_VALUE_EVENT_HANDLING_MODE_INHERIT 0 +# define SSL_VALUE_EVENT_HANDLING_MODE_IMPLICIT 1 +# define SSL_VALUE_EVENT_HANDLING_MODE_EXPLICIT 2 + +int SSL_get_value_uint(SSL *s, uint32_t class_, uint32_t id, uint64_t *v); +int SSL_set_value_uint(SSL *s, uint32_t class_, uint32_t id, uint64_t v); + +# define SSL_get_generic_value_uint(ssl, id, v) \ + SSL_get_value_uint((ssl), SSL_VALUE_CLASS_GENERIC, (id), (v)) +# define SSL_set_generic_value_uint(ssl, id, v) \ + SSL_set_value_uint((ssl), SSL_VALUE_CLASS_GENERIC, (id), (v)) +# define SSL_get_feature_request_uint(ssl, id, v) \ + SSL_get_value_uint((ssl), SSL_VALUE_CLASS_FEATURE_REQUEST, (id), (v)) +# define SSL_set_feature_request_uint(ssl, id, v) \ + SSL_set_value_uint((ssl), SSL_VALUE_CLASS_FEATURE_REQUEST, (id), (v)) +# define SSL_get_feature_peer_request_uint(ssl, id, v) \ + SSL_get_value_uint((ssl), SSL_VALUE_CLASS_FEATURE_PEER_REQUEST, (id), (v)) +# define SSL_get_feature_negotiated_uint(ssl, id, v) \ + SSL_get_value_uint((ssl), SSL_VALUE_CLASS_FEATURE_NEGOTIATED, (id), (v)) + +# define SSL_get_quic_stream_bidi_local_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_QUIC_STREAM_BIDI_LOCAL_AVAIL, \ + (value)) +# define SSL_get_quic_stream_bidi_remote_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_QUIC_STREAM_BIDI_REMOTE_AVAIL, \ + (value)) +# define SSL_get_quic_stream_uni_local_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_QUIC_STREAM_UNI_LOCAL_AVAIL, \ + (value)) +# define SSL_get_quic_stream_uni_remote_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_QUIC_STREAM_UNI_REMOTE_AVAIL, \ + (value)) + +# define SSL_get_event_handling_mode(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_EVENT_HANDLING_MODE, \ + (value)) +# define SSL_set_event_handling_mode(ssl, value) \ + SSL_set_generic_value_uint((ssl), SSL_VALUE_EVENT_HANDLING_MODE, \ + (value)) + +# define SSL_get_stream_write_buf_size(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_STREAM_WRITE_BUF_SIZE, \ + (value)) +# define SSL_get_stream_write_buf_used(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_STREAM_WRITE_BUF_USED, \ + (value)) +# define SSL_get_stream_write_buf_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_STREAM_WRITE_BUF_AVAIL, \ + (value)) + +# define SSL_POLL_EVENT_NONE 0 + +# define SSL_POLL_EVENT_F (1U << 0) /* F (Failure) */ +# define SSL_POLL_EVENT_EL (1U << 1) /* EL (Exception on Listener) */ +# define SSL_POLL_EVENT_EC (1U << 2) /* EC (Exception on Conn) */ +# define SSL_POLL_EVENT_ECD (1U << 3) /* ECD (Exception on Conn Drained) */ +# define SSL_POLL_EVENT_ER (1U << 4) /* ER (Exception on Read) */ +# define SSL_POLL_EVENT_EW (1U << 5) /* EW (Exception on Write) */ +# define SSL_POLL_EVENT_R (1U << 6) /* R (Readable) */ +# define SSL_POLL_EVENT_W (1U << 7) /* W (Writable) */ +# define SSL_POLL_EVENT_IC (1U << 8) /* IC (Incoming Connection) */ +# define SSL_POLL_EVENT_ISB (1U << 9) /* ISB (Incoming Stream: Bidi) */ +# define SSL_POLL_EVENT_ISU (1U << 10) /* ISU (Incoming Stream: Uni) */ +# define SSL_POLL_EVENT_OSB (1U << 11) /* OSB (Outgoing Stream: Bidi) */ +# define SSL_POLL_EVENT_OSU (1U << 12) /* OSU (Outgoing Stream: Uni) */ + +# define SSL_POLL_EVENT_RW (SSL_POLL_EVENT_R | SSL_POLL_EVENT_W) +# define SSL_POLL_EVENT_RE (SSL_POLL_EVENT_R | SSL_POLL_EVENT_ER) +# define SSL_POLL_EVENT_WE (SSL_POLL_EVENT_W | SSL_POLL_EVENT_EW) +# define SSL_POLL_EVENT_RWE (SSL_POLL_EVENT_RE | SSL_POLL_EVENT_WE) +# define SSL_POLL_EVENT_E (SSL_POLL_EVENT_EL | SSL_POLL_EVENT_EC \ + | SSL_POLL_EVENT_ER | SSL_POLL_EVENT_EW) +# define SSL_POLL_EVENT_IS (SSL_POLL_EVENT_ISB | SSL_POLL_EVENT_ISU) +# define SSL_POLL_EVENT_ISE (SSL_POLL_EVENT_IS | SSL_POLL_EVENT_EC) +# define SSL_POLL_EVENT_I (SSL_POLL_EVENT_IS | SSL_POLL_EVENT_IC) +# define SSL_POLL_EVENT_OS (SSL_POLL_EVENT_OSB | SSL_POLL_EVENT_OSU) +# define SSL_POLL_EVENT_OSE (SSL_POLL_EVENT_OS | SSL_POLL_EVENT_EC) + +typedef struct ssl_poll_item_st { + BIO_POLL_DESCRIPTOR desc; + uint64_t events, revents; +} SSL_POLL_ITEM; + +# define SSL_POLL_FLAG_NO_HANDLE_EVENTS (1U << 0) + +__owur int SSL_poll(SSL_POLL_ITEM *items, + size_t num_items, + size_t stride, + const struct timeval *timeout, + uint64_t flags, + size_t *result_count); + +static ossl_inline ossl_unused BIO_POLL_DESCRIPTOR +SSL_as_poll_descriptor(SSL *s) +{ + BIO_POLL_DESCRIPTOR d; + + d.type = BIO_POLL_DESCRIPTOR_TYPE_SSL; + d.value.ssl = s; + return d; +} + # ifndef OPENSSL_NO_DEPRECATED_1_1_0 # define SSL_cache_hit(s) SSL_session_reused(s) # endif @@ -2593,6 +2882,51 @@ void SSL_set_allow_early_data_cb(SSL *s, const char *OSSL_default_cipher_list(void); const char *OSSL_default_ciphersuites(void); +/* RFC8879 Certificate compression APIs */ + +int SSL_CTX_compress_certs(SSL_CTX *ctx, int alg); +int SSL_compress_certs(SSL *ssl, int alg); + +int SSL_CTX_set1_cert_comp_preference(SSL_CTX *ctx, int *algs, size_t len); +int SSL_set1_cert_comp_preference(SSL *ssl, int *algs, size_t len); + +int SSL_CTX_set1_compressed_cert(SSL_CTX *ctx, int algorithm, unsigned char *comp_data, + size_t comp_length, size_t orig_length); +int SSL_set1_compressed_cert(SSL *ssl, int algorithm, unsigned char *comp_data, + size_t comp_length, size_t orig_length); +size_t SSL_CTX_get1_compressed_cert(SSL_CTX *ctx, int alg, unsigned char **data, size_t *orig_len); +size_t SSL_get1_compressed_cert(SSL *ssl, int alg, unsigned char **data, size_t *orig_len); + +__owur int SSL_add_expected_rpk(SSL *s, EVP_PKEY *rpk); +__owur EVP_PKEY *SSL_get0_peer_rpk(const SSL *s); +__owur EVP_PKEY *SSL_SESSION_get0_peer_rpk(SSL_SESSION *s); +__owur int SSL_get_negotiated_client_cert_type(const SSL *s); +__owur int SSL_get_negotiated_server_cert_type(const SSL *s); + +__owur int SSL_set1_client_cert_type(SSL *s, const unsigned char *val, size_t len); +__owur int SSL_set1_server_cert_type(SSL *s, const unsigned char *val, size_t len); +__owur int SSL_CTX_set1_client_cert_type(SSL_CTX *ctx, const unsigned char *val, size_t len); +__owur int SSL_CTX_set1_server_cert_type(SSL_CTX *ctx, const unsigned char *val, size_t len); +__owur int SSL_get0_client_cert_type(const SSL *s, unsigned char **t, size_t *len); +__owur int SSL_get0_server_cert_type(const SSL *s, unsigned char **t, size_t *len); +__owur int SSL_CTX_get0_client_cert_type(const SSL_CTX *ctx, unsigned char **t, size_t *len); +__owur int SSL_CTX_get0_server_cert_type(const SSL_CTX *s, unsigned char **t, size_t *len); + +/* + * Protection level. For <= TLSv1.2 only "NONE" and "APPLICATION" are used. + */ +# define OSSL_RECORD_PROTECTION_LEVEL_NONE 0 +# define OSSL_RECORD_PROTECTION_LEVEL_EARLY 1 +# define OSSL_RECORD_PROTECTION_LEVEL_HANDSHAKE 2 +# define OSSL_RECORD_PROTECTION_LEVEL_APPLICATION 3 + +int SSL_set_quic_tls_cbs(SSL *s, const OSSL_DISPATCH *qtdis, void *arg); +int SSL_set_quic_tls_transport_params(SSL *s, + const unsigned char *params, + size_t params_len); + +int SSL_set_quic_tls_early_data_enabled(SSL *s, int enabled); + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/linux-elf/asm/include/openssl/x509.h b/deps/openssl/config/archs/linux-elf/asm/include/openssl/x509.h index 1f7755e5b69c75..d013458c226461 100644 --- a/deps/openssl/config/archs/linux-elf/asm/include/openssl/x509.h +++ b/deps/openssl/config/archs/linux-elf/asm/include/openssl/x509.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/x509.h.in * - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2024 The OpenSSL Project Authors. All Rights Reserved. * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved * * Licensed under the Apache License 2.0 (the "License"). You may not use @@ -40,6 +40,9 @@ # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -162,16 +165,24 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_CRL, X509_CRL, X509_CRL) # define X509_FILETYPE_ASN1 2 # define X509_FILETYPE_DEFAULT 3 -# define X509v3_KU_DIGITAL_SIGNATURE 0x0080 -# define X509v3_KU_NON_REPUDIATION 0x0040 -# define X509v3_KU_KEY_ENCIPHERMENT 0x0020 -# define X509v3_KU_DATA_ENCIPHERMENT 0x0010 -# define X509v3_KU_KEY_AGREEMENT 0x0008 -# define X509v3_KU_KEY_CERT_SIGN 0x0004 -# define X509v3_KU_CRL_SIGN 0x0002 -# define X509v3_KU_ENCIPHER_ONLY 0x0001 -# define X509v3_KU_DECIPHER_ONLY 0x8000 -# define X509v3_KU_UNDEF 0xffff +/*- + * : + * The KeyUsage BITSTRING is treated as a little-endian integer, hence bit `0` + * is 0x80, while bit `7` is 0x01 (the LSB of the integer value), bit `8` is + * then the MSB of the second octet, or 0x8000. + */ +# define X509v3_KU_DIGITAL_SIGNATURE 0x0080 /* (0) */ +# define X509v3_KU_NON_REPUDIATION 0x0040 /* (1) */ +# define X509v3_KU_KEY_ENCIPHERMENT 0x0020 /* (2) */ +# define X509v3_KU_DATA_ENCIPHERMENT 0x0010 /* (3) */ +# define X509v3_KU_KEY_AGREEMENT 0x0008 /* (4) */ +# define X509v3_KU_KEY_CERT_SIGN 0x0004 /* (5) */ +# define X509v3_KU_CRL_SIGN 0x0002 /* (6) */ +# define X509v3_KU_ENCIPHER_ONLY 0x0001 /* (7) */ +# define X509v3_KU_DECIPHER_ONLY 0x8000 /* (8) */ +# ifndef OPENSSL_NO_DEPRECATED_3_4 +# define X509v3_KU_UNDEF 0xffff /* vestigial, not used */ +# endif struct X509_algor_st { ASN1_OBJECT *algorithm; @@ -462,7 +473,12 @@ typedef struct PBKDF2PARAM_st { X509_ALGOR *prf; } PBKDF2PARAM; -#ifndef OPENSSL_NO_SCRYPT +typedef struct { + X509_ALGOR *keyDerivationFunc; + X509_ALGOR *messageAuthScheme; +} PBMAC1PARAM; + +# ifndef OPENSSL_NO_SCRYPT typedef struct SCRYPT_PARAMS_st { ASN1_OCTET_STRING *salt; ASN1_INTEGER *costParameter; @@ -470,7 +486,7 @@ typedef struct SCRYPT_PARAMS_st { ASN1_INTEGER *parallelizationParameter; ASN1_INTEGER *keyLength; } SCRYPT_PARAMS; -#endif +# endif #ifdef __cplusplus } @@ -603,6 +619,8 @@ EVP_PKEY *d2i_PrivateKey_ex_fp(FILE *fp, EVP_PKEY **a, OSSL_LIB_CTX *libctx, const char *propq); EVP_PKEY *d2i_PrivateKey_fp(FILE *fp, EVP_PKEY **a); int i2d_PUBKEY_fp(FILE *fp, const EVP_PKEY *pkey); +EVP_PKEY *d2i_PUBKEY_ex_fp(FILE *fp, EVP_PKEY **a, OSSL_LIB_CTX *libctx, + const char *propq); EVP_PKEY *d2i_PUBKEY_fp(FILE *fp, EVP_PKEY **a); # endif @@ -651,6 +669,8 @@ EVP_PKEY *d2i_PrivateKey_ex_bio(BIO *bp, EVP_PKEY **a, OSSL_LIB_CTX *libctx, const char *propq); EVP_PKEY *d2i_PrivateKey_bio(BIO *bp, EVP_PKEY **a); int i2d_PUBKEY_bio(BIO *bp, const EVP_PKEY *pkey); +EVP_PKEY *d2i_PUBKEY_ex_bio(BIO *bp, EVP_PKEY **a, OSSL_LIB_CTX *libctx, + const char *propq); EVP_PKEY *d2i_PUBKEY_bio(BIO *bp, EVP_PKEY **a); DECLARE_ASN1_DUP_FUNCTION(X509) @@ -884,12 +904,12 @@ int X509_REQ_get_signature_nid(const X509_REQ *req); int i2d_re_X509_REQ_tbs(X509_REQ *req, unsigned char **pp); int X509_REQ_set_pubkey(X509_REQ *x, EVP_PKEY *pkey); EVP_PKEY *X509_REQ_get_pubkey(X509_REQ *req); -EVP_PKEY *X509_REQ_get0_pubkey(X509_REQ *req); +EVP_PKEY *X509_REQ_get0_pubkey(const X509_REQ *req); X509_PUBKEY *X509_REQ_get_X509_PUBKEY(X509_REQ *req); int X509_REQ_extension_nid(int nid); int *X509_REQ_get_extension_nids(void); void X509_REQ_set_extension_nids(int *nids); -STACK_OF(X509_EXTENSION) *X509_REQ_get_extensions(X509_REQ *req); +STACK_OF(X509_EXTENSION) *X509_REQ_get_extensions(OSSL_FUTURE_CONST X509_REQ *req); int X509_REQ_add_extensions_nid(X509_REQ *req, const STACK_OF(X509_EXTENSION) *exts, int nid); int X509_REQ_add_extensions(X509_REQ *req, const STACK_OF(X509_EXTENSION) *ext); @@ -950,13 +970,14 @@ X509_REVOKED_get0_extensions(const X509_REVOKED *r); X509_CRL *X509_CRL_diff(X509_CRL *base, X509_CRL *newer, EVP_PKEY *skey, const EVP_MD *md, unsigned int flags); -int X509_REQ_check_private_key(X509_REQ *x509, EVP_PKEY *pkey); +int X509_REQ_check_private_key(const X509_REQ *req, EVP_PKEY *pkey); -int X509_check_private_key(const X509 *x509, const EVP_PKEY *pkey); +int X509_check_private_key(const X509 *cert, const EVP_PKEY *pkey); int X509_chain_check_suiteb(int *perror_depth, X509 *x, STACK_OF(X509) *chain, unsigned long flags); int X509_CRL_check_suiteb(X509_CRL *crl, EVP_PKEY *pk, unsigned long flags); +void OSSL_STACK_OF_X509_free(STACK_OF(X509) *certs); STACK_OF(X509) *X509_chain_up_ref(STACK_OF(X509) *chain); int X509_issuer_and_serial_cmp(const X509 *a, const X509 *b); @@ -1077,6 +1098,8 @@ X509_EXTENSION *X509v3_get_ext(const STACK_OF(X509_EXTENSION) *x, int loc); X509_EXTENSION *X509v3_delete_ext(STACK_OF(X509_EXTENSION) *x, int loc); STACK_OF(X509_EXTENSION) *X509v3_add_ext(STACK_OF(X509_EXTENSION) **x, X509_EXTENSION *ex, int loc); +STACK_OF(X509_EXTENSION) *X509v3_add_extensions(STACK_OF(X509_EXTENSION) **target, + const STACK_OF(X509_EXTENSION) *exts); int X509_get_ext_count(const X509 *x); int X509_get_ext_by_NID(const X509 *x, int nid, int lastpos); @@ -1198,9 +1221,10 @@ X509 *X509_find_by_subject(STACK_OF(X509) *sk, const X509_NAME *name); DECLARE_ASN1_FUNCTIONS(PBEPARAM) DECLARE_ASN1_FUNCTIONS(PBE2PARAM) DECLARE_ASN1_FUNCTIONS(PBKDF2PARAM) -#ifndef OPENSSL_NO_SCRYPT +DECLARE_ASN1_FUNCTIONS(PBMAC1PARAM) +# ifndef OPENSSL_NO_SCRYPT DECLARE_ASN1_FUNCTIONS(SCRYPT_PARAMS) -#endif +# endif int PKCS5_pbe_set0_algor(X509_ALGOR *algor, int alg, int iter, const unsigned char *salt, int saltlen); @@ -1237,6 +1261,7 @@ X509_ALGOR *PKCS5_pbkdf2_set_ex(int iter, unsigned char *salt, int saltlen, int prf_nid, int keylen, OSSL_LIB_CTX *libctx); +PBKDF2PARAM *PBMAC1_get1_pbkdf2_param(const X509_ALGOR *macalg); /* PKCS#8 utilities */ DECLARE_ASN1_FUNCTIONS(PKCS8_PRIV_KEY_INFO) @@ -1262,6 +1287,8 @@ int PKCS8_pkey_add1_attr_by_OBJ(PKCS8_PRIV_KEY_INFO *p8, const ASN1_OBJECT *obj, int type, const unsigned char *bytes, int len); +void X509_PUBKEY_set0_public_key(X509_PUBKEY *pub, + unsigned char *penc, int penclen); int X509_PUBKEY_set0_param(X509_PUBKEY *pub, ASN1_OBJECT *aobj, int ptype, void *pval, unsigned char *penc, int penclen); diff --git a/deps/openssl/config/archs/linux-elf/asm/include/openssl/x509_acert.h b/deps/openssl/config/archs/linux-elf/asm/include/openssl/x509_acert.h new file mode 100644 index 00000000000000..9dde625677f9a9 --- /dev/null +++ b/deps/openssl/config/archs/linux-elf/asm/include/openssl/x509_acert.h @@ -0,0 +1,294 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from include/openssl/x509_acert.h.in + * + * Copyright 2022-2024 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + + +#ifndef OPENSSL_X509_ACERT_H +# define OPENSSL_X509_ACERT_H +# pragma once + +# include +# include +# include + +typedef struct X509_acert_st X509_ACERT; +typedef struct X509_acert_info_st X509_ACERT_INFO; +typedef struct ossl_object_digest_info_st OSSL_OBJECT_DIGEST_INFO; +typedef struct ossl_issuer_serial_st OSSL_ISSUER_SERIAL; +typedef struct X509_acert_issuer_v2form_st X509_ACERT_ISSUER_V2FORM; + +DECLARE_ASN1_FUNCTIONS(X509_ACERT) +DECLARE_ASN1_DUP_FUNCTION(X509_ACERT) +DECLARE_ASN1_ITEM(X509_ACERT_INFO) +DECLARE_ASN1_ALLOC_FUNCTIONS(X509_ACERT_INFO) +DECLARE_ASN1_ALLOC_FUNCTIONS(OSSL_OBJECT_DIGEST_INFO) +DECLARE_ASN1_ALLOC_FUNCTIONS(OSSL_ISSUER_SERIAL) +DECLARE_ASN1_ALLOC_FUNCTIONS(X509_ACERT_ISSUER_V2FORM) + +# ifndef OPENSSL_NO_STDIO +X509_ACERT *d2i_X509_ACERT_fp(FILE *fp, X509_ACERT **acert); +int i2d_X509_ACERT_fp(FILE *fp, const X509_ACERT *acert); +# endif + +DECLARE_PEM_rw(X509_ACERT, X509_ACERT) + +X509_ACERT *d2i_X509_ACERT_bio(BIO *bp, X509_ACERT **acert); +int i2d_X509_ACERT_bio(BIO *bp, const X509_ACERT *acert); + +int X509_ACERT_sign(X509_ACERT *x, EVP_PKEY *pkey, const EVP_MD *md); +int X509_ACERT_sign_ctx(X509_ACERT *x, EVP_MD_CTX *ctx); +int X509_ACERT_verify(X509_ACERT *a, EVP_PKEY *r); + +# define X509_ACERT_VERSION_2 1 + +const GENERAL_NAMES *X509_ACERT_get0_holder_entityName(const X509_ACERT *x); +const OSSL_ISSUER_SERIAL *X509_ACERT_get0_holder_baseCertId(const X509_ACERT *x); +const OSSL_OBJECT_DIGEST_INFO * X509_ACERT_get0_holder_digest(const X509_ACERT *x); +const X509_NAME *X509_ACERT_get0_issuerName(const X509_ACERT *x); +long X509_ACERT_get_version(const X509_ACERT *x); +void X509_ACERT_get0_signature(const X509_ACERT *x, + const ASN1_BIT_STRING **psig, + const X509_ALGOR **palg); +int X509_ACERT_get_signature_nid(const X509_ACERT *x); +const X509_ALGOR *X509_ACERT_get0_info_sigalg(const X509_ACERT *x); +const ASN1_INTEGER *X509_ACERT_get0_serialNumber(const X509_ACERT *x); +const ASN1_TIME *X509_ACERT_get0_notBefore(const X509_ACERT *x); +const ASN1_TIME *X509_ACERT_get0_notAfter(const X509_ACERT *x); +const ASN1_BIT_STRING *X509_ACERT_get0_issuerUID(const X509_ACERT *x); + +int X509_ACERT_print(BIO *bp, X509_ACERT *x); +int X509_ACERT_print_ex(BIO *bp, X509_ACERT *x, unsigned long nmflags, + unsigned long cflag); + +int X509_ACERT_get_attr_count(const X509_ACERT *x); +int X509_ACERT_get_attr_by_NID(const X509_ACERT *x, int nid, int lastpos); +int X509_ACERT_get_attr_by_OBJ(const X509_ACERT *x, const ASN1_OBJECT *obj, + int lastpos); +X509_ATTRIBUTE *X509_ACERT_get_attr(const X509_ACERT *x, int loc); +X509_ATTRIBUTE *X509_ACERT_delete_attr(X509_ACERT *x, int loc); + +void *X509_ACERT_get_ext_d2i(const X509_ACERT *x, int nid, int *crit, int *idx); +int X509_ACERT_add1_ext_i2d(X509_ACERT *x, int nid, void *value, int crit, + unsigned long flags); +const STACK_OF(X509_EXTENSION) *X509_ACERT_get0_extensions(const X509_ACERT *x); + +# define OSSL_OBJECT_DIGEST_INFO_PUBLIC_KEY 0 +# define OSSL_OBJECT_DIGEST_INFO_PUBLIC_KEY_CERT 1 +# define OSSL_OBJECT_DIGEST_INFO_OTHER 2 /* must not be used in RFC 5755 profile */ +int X509_ACERT_set_version(X509_ACERT *x, long version); +void X509_ACERT_set0_holder_entityName(X509_ACERT *x, GENERAL_NAMES *name); +void X509_ACERT_set0_holder_baseCertId(X509_ACERT *x, OSSL_ISSUER_SERIAL *isss); +void X509_ACERT_set0_holder_digest(X509_ACERT *x, + OSSL_OBJECT_DIGEST_INFO *dinfo); + +int X509_ACERT_add1_attr(X509_ACERT *x, X509_ATTRIBUTE *attr); +int X509_ACERT_add1_attr_by_OBJ(X509_ACERT *x, const ASN1_OBJECT *obj, + int type, const void *bytes, int len); +int X509_ACERT_add1_attr_by_NID(X509_ACERT *x, int nid, int type, + const void *bytes, int len); +int X509_ACERT_add1_attr_by_txt(X509_ACERT *x, const char *attrname, int type, + const unsigned char *bytes, int len); +int X509_ACERT_add_attr_nconf(CONF *conf, const char *section, + X509_ACERT *acert); + +int X509_ACERT_set1_issuerName(X509_ACERT *x, const X509_NAME *name); +int X509_ACERT_set1_serialNumber(X509_ACERT *x, const ASN1_INTEGER *serial); +int X509_ACERT_set1_notBefore(X509_ACERT *x, const ASN1_GENERALIZEDTIME *time); +int X509_ACERT_set1_notAfter(X509_ACERT *x, const ASN1_GENERALIZEDTIME *time); + +void OSSL_OBJECT_DIGEST_INFO_get0_digest(const OSSL_OBJECT_DIGEST_INFO *o, + int *digestedObjectType, + const X509_ALGOR **digestAlgorithm, + const ASN1_BIT_STRING **digest); + +int OSSL_OBJECT_DIGEST_INFO_set1_digest(OSSL_OBJECT_DIGEST_INFO *o, + int digestedObjectType, + X509_ALGOR *digestAlgorithm, + ASN1_BIT_STRING *digest); + +const X509_NAME *OSSL_ISSUER_SERIAL_get0_issuer(const OSSL_ISSUER_SERIAL *isss); +const ASN1_INTEGER *OSSL_ISSUER_SERIAL_get0_serial(const OSSL_ISSUER_SERIAL *isss); +const ASN1_BIT_STRING *OSSL_ISSUER_SERIAL_get0_issuerUID(const OSSL_ISSUER_SERIAL *isss); + +int OSSL_ISSUER_SERIAL_set1_issuer(OSSL_ISSUER_SERIAL *isss, + const X509_NAME *issuer); +int OSSL_ISSUER_SERIAL_set1_serial(OSSL_ISSUER_SERIAL *isss, + const ASN1_INTEGER *serial); +int OSSL_ISSUER_SERIAL_set1_issuerUID(OSSL_ISSUER_SERIAL *isss, + const ASN1_BIT_STRING *uid); + +# define OSSL_IETFAS_OCTETS 0 +# define OSSL_IETFAS_OID 1 +# define OSSL_IETFAS_STRING 2 + +typedef struct OSSL_IETF_ATTR_SYNTAX_VALUE_st OSSL_IETF_ATTR_SYNTAX_VALUE; +typedef struct OSSL_IETF_ATTR_SYNTAX_st OSSL_IETF_ATTR_SYNTAX; +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_IETF_ATTR_SYNTAX_VALUE, OSSL_IETF_ATTR_SYNTAX_VALUE, OSSL_IETF_ATTR_SYNTAX_VALUE) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_value(sk, idx) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_value(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), (idx))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_new(cmp) ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_new(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_compfunc_type(cmp))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_new_null() ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_new_null()) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_new_reserve(cmp, n) ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_compfunc_type(cmp), (n))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), (n)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_free(sk) OPENSSL_sk_free(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_delete(sk, i) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_delete(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), (i))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_delete_ptr(sk, ptr) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_pop(sk) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_pop(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_shift(sk) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_shift(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk),ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_freefunc_type(freefunc)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr), (idx)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_set(sk, idx, ptr) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_set(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), (idx), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr), pnum) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_dup(sk) ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_dup(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_copyfunc_type(copyfunc), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_freefunc_type(freefunc))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_set_cmp_func(sk, cmp) ((sk_OSSL_IETF_ATTR_SYNTAX_VALUE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_compfunc_type(cmp))) + + +DECLARE_ASN1_ITEM(OSSL_IETF_ATTR_SYNTAX_VALUE) +DECLARE_ASN1_ALLOC_FUNCTIONS(OSSL_IETF_ATTR_SYNTAX_VALUE) +DECLARE_ASN1_FUNCTIONS(OSSL_IETF_ATTR_SYNTAX) + +const GENERAL_NAMES * +OSSL_IETF_ATTR_SYNTAX_get0_policyAuthority(const OSSL_IETF_ATTR_SYNTAX *a); +void OSSL_IETF_ATTR_SYNTAX_set0_policyAuthority(OSSL_IETF_ATTR_SYNTAX *a, + GENERAL_NAMES *names); + +int OSSL_IETF_ATTR_SYNTAX_get_value_num(const OSSL_IETF_ATTR_SYNTAX *a); +void *OSSL_IETF_ATTR_SYNTAX_get0_value(const OSSL_IETF_ATTR_SYNTAX *a, + int ind, int *type); +int OSSL_IETF_ATTR_SYNTAX_add1_value(OSSL_IETF_ATTR_SYNTAX *a, int type, + void *data); +int OSSL_IETF_ATTR_SYNTAX_print(BIO *bp, OSSL_IETF_ATTR_SYNTAX *a, int indent); + +struct TARGET_CERT_st { + OSSL_ISSUER_SERIAL *targetCertificate; + GENERAL_NAME *targetName; + OSSL_OBJECT_DIGEST_INFO *certDigestInfo; +}; + +typedef struct TARGET_CERT_st OSSL_TARGET_CERT; + +# define OSSL_TGT_TARGET_NAME 0 +# define OSSL_TGT_TARGET_GROUP 1 +# define OSSL_TGT_TARGET_CERT 2 + +typedef struct TARGET_st { + int type; + union { + GENERAL_NAME *targetName; + GENERAL_NAME *targetGroup; + OSSL_TARGET_CERT *targetCert; + } choice; +} OSSL_TARGET; + +typedef STACK_OF(OSSL_TARGET) OSSL_TARGETS; +typedef STACK_OF(OSSL_TARGETS) OSSL_TARGETING_INFORMATION; + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_TARGET, OSSL_TARGET, OSSL_TARGET) +#define sk_OSSL_TARGET_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_value(sk, idx) ((OSSL_TARGET *)OPENSSL_sk_value(ossl_check_const_OSSL_TARGET_sk_type(sk), (idx))) +#define sk_OSSL_TARGET_new(cmp) ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_new(ossl_check_OSSL_TARGET_compfunc_type(cmp))) +#define sk_OSSL_TARGET_new_null() ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_new_null()) +#define sk_OSSL_TARGET_new_reserve(cmp, n) ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_TARGET_compfunc_type(cmp), (n))) +#define sk_OSSL_TARGET_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_TARGET_sk_type(sk), (n)) +#define sk_OSSL_TARGET_free(sk) OPENSSL_sk_free(ossl_check_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_delete(sk, i) ((OSSL_TARGET *)OPENSSL_sk_delete(ossl_check_OSSL_TARGET_sk_type(sk), (i))) +#define sk_OSSL_TARGET_delete_ptr(sk, ptr) ((OSSL_TARGET *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr))) +#define sk_OSSL_TARGET_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr)) +#define sk_OSSL_TARGET_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr)) +#define sk_OSSL_TARGET_pop(sk) ((OSSL_TARGET *)OPENSSL_sk_pop(ossl_check_OSSL_TARGET_sk_type(sk))) +#define sk_OSSL_TARGET_shift(sk) ((OSSL_TARGET *)OPENSSL_sk_shift(ossl_check_OSSL_TARGET_sk_type(sk))) +#define sk_OSSL_TARGET_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_TARGET_sk_type(sk),ossl_check_OSSL_TARGET_freefunc_type(freefunc)) +#define sk_OSSL_TARGET_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr), (idx)) +#define sk_OSSL_TARGET_set(sk, idx, ptr) ((OSSL_TARGET *)OPENSSL_sk_set(ossl_check_OSSL_TARGET_sk_type(sk), (idx), ossl_check_OSSL_TARGET_type(ptr))) +#define sk_OSSL_TARGET_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr)) +#define sk_OSSL_TARGET_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr)) +#define sk_OSSL_TARGET_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr), pnum) +#define sk_OSSL_TARGET_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_dup(sk) ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_dup(ossl_check_const_OSSL_TARGET_sk_type(sk))) +#define sk_OSSL_TARGET_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_copyfunc_type(copyfunc), ossl_check_OSSL_TARGET_freefunc_type(freefunc))) +#define sk_OSSL_TARGET_set_cmp_func(sk, cmp) ((sk_OSSL_TARGET_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_compfunc_type(cmp))) + + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_TARGETS, OSSL_TARGETS, OSSL_TARGETS) +#define sk_OSSL_TARGETS_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_value(sk, idx) ((OSSL_TARGETS *)OPENSSL_sk_value(ossl_check_const_OSSL_TARGETS_sk_type(sk), (idx))) +#define sk_OSSL_TARGETS_new(cmp) ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_new(ossl_check_OSSL_TARGETS_compfunc_type(cmp))) +#define sk_OSSL_TARGETS_new_null() ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_new_null()) +#define sk_OSSL_TARGETS_new_reserve(cmp, n) ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_TARGETS_compfunc_type(cmp), (n))) +#define sk_OSSL_TARGETS_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_TARGETS_sk_type(sk), (n)) +#define sk_OSSL_TARGETS_free(sk) OPENSSL_sk_free(ossl_check_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_delete(sk, i) ((OSSL_TARGETS *)OPENSSL_sk_delete(ossl_check_OSSL_TARGETS_sk_type(sk), (i))) +#define sk_OSSL_TARGETS_delete_ptr(sk, ptr) ((OSSL_TARGETS *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr))) +#define sk_OSSL_TARGETS_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr)) +#define sk_OSSL_TARGETS_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr)) +#define sk_OSSL_TARGETS_pop(sk) ((OSSL_TARGETS *)OPENSSL_sk_pop(ossl_check_OSSL_TARGETS_sk_type(sk))) +#define sk_OSSL_TARGETS_shift(sk) ((OSSL_TARGETS *)OPENSSL_sk_shift(ossl_check_OSSL_TARGETS_sk_type(sk))) +#define sk_OSSL_TARGETS_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_TARGETS_sk_type(sk),ossl_check_OSSL_TARGETS_freefunc_type(freefunc)) +#define sk_OSSL_TARGETS_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr), (idx)) +#define sk_OSSL_TARGETS_set(sk, idx, ptr) ((OSSL_TARGETS *)OPENSSL_sk_set(ossl_check_OSSL_TARGETS_sk_type(sk), (idx), ossl_check_OSSL_TARGETS_type(ptr))) +#define sk_OSSL_TARGETS_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr)) +#define sk_OSSL_TARGETS_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr)) +#define sk_OSSL_TARGETS_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr), pnum) +#define sk_OSSL_TARGETS_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_dup(sk) ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_dup(ossl_check_const_OSSL_TARGETS_sk_type(sk))) +#define sk_OSSL_TARGETS_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_copyfunc_type(copyfunc), ossl_check_OSSL_TARGETS_freefunc_type(freefunc))) +#define sk_OSSL_TARGETS_set_cmp_func(sk, cmp) ((sk_OSSL_TARGETS_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_compfunc_type(cmp))) + + +DECLARE_ASN1_FUNCTIONS(OSSL_TARGET) +DECLARE_ASN1_FUNCTIONS(OSSL_TARGETS) +DECLARE_ASN1_FUNCTIONS(OSSL_TARGETING_INFORMATION) + +typedef STACK_OF(OSSL_ISSUER_SERIAL) OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX; +DECLARE_ASN1_FUNCTIONS(OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ISSUER_SERIAL, OSSL_ISSUER_SERIAL, OSSL_ISSUER_SERIAL) +#define sk_OSSL_ISSUER_SERIAL_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_value(sk, idx) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_value(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk), (idx))) +#define sk_OSSL_ISSUER_SERIAL_new(cmp) ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_new(ossl_check_OSSL_ISSUER_SERIAL_compfunc_type(cmp))) +#define sk_OSSL_ISSUER_SERIAL_new_null() ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ISSUER_SERIAL_new_reserve(cmp, n) ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ISSUER_SERIAL_compfunc_type(cmp), (n))) +#define sk_OSSL_ISSUER_SERIAL_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), (n)) +#define sk_OSSL_ISSUER_SERIAL_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_delete(sk, i) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_delete(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), (i))) +#define sk_OSSL_ISSUER_SERIAL_delete_ptr(sk, ptr) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr))) +#define sk_OSSL_ISSUER_SERIAL_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr)) +#define sk_OSSL_ISSUER_SERIAL_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr)) +#define sk_OSSL_ISSUER_SERIAL_pop(sk) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_pop(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk))) +#define sk_OSSL_ISSUER_SERIAL_shift(sk) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_shift(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk))) +#define sk_OSSL_ISSUER_SERIAL_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk),ossl_check_OSSL_ISSUER_SERIAL_freefunc_type(freefunc)) +#define sk_OSSL_ISSUER_SERIAL_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr), (idx)) +#define sk_OSSL_ISSUER_SERIAL_set(sk, idx, ptr) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_set(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), (idx), ossl_check_OSSL_ISSUER_SERIAL_type(ptr))) +#define sk_OSSL_ISSUER_SERIAL_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr)) +#define sk_OSSL_ISSUER_SERIAL_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr)) +#define sk_OSSL_ISSUER_SERIAL_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr), pnum) +#define sk_OSSL_ISSUER_SERIAL_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_dup(sk) ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk))) +#define sk_OSSL_ISSUER_SERIAL_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_copyfunc_type(copyfunc), ossl_check_OSSL_ISSUER_SERIAL_freefunc_type(freefunc))) +#define sk_OSSL_ISSUER_SERIAL_set_cmp_func(sk, cmp) ((sk_OSSL_ISSUER_SERIAL_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_compfunc_type(cmp))) + + +#endif diff --git a/deps/openssl/config/archs/linux-elf/asm/include/openssl/x509_vfy.h b/deps/openssl/config/archs/linux-elf/asm/include/openssl/x509_vfy.h index 29b0e147adcab1..c9bdc3b39d685d 100644 --- a/deps/openssl/config/archs/linux-elf/asm/include/openssl/x509_vfy.h +++ b/deps/openssl/config/archs/linux-elf/asm/include/openssl/x509_vfy.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/x509_vfy.h.in * - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -411,6 +411,7 @@ X509_LOOKUP_ctrl_ex((x), X509_L_ADD_STORE, (name), 0, NULL, \ # define X509_V_ERR_CA_CERT_MISSING_KEY_USAGE 92 # define X509_V_ERR_EXTENSIONS_REQUIRE_VERSION_3 93 # define X509_V_ERR_EC_KEY_EXPLICIT_PARAMS 94 +# define X509_V_ERR_RPK_UNTRUSTED 95 /* Certificate verify flags */ # ifndef OPENSSL_NO_DEPRECATED_1_1_0 @@ -491,71 +492,72 @@ int X509_OBJECT_set1_X509(X509_OBJECT *a, X509 *obj); X509_CRL *X509_OBJECT_get0_X509_CRL(const X509_OBJECT *a); int X509_OBJECT_set1_X509_CRL(X509_OBJECT *a, X509_CRL *obj); X509_STORE *X509_STORE_new(void); -void X509_STORE_free(X509_STORE *v); -int X509_STORE_lock(X509_STORE *ctx); -int X509_STORE_unlock(X509_STORE *ctx); -int X509_STORE_up_ref(X509_STORE *v); -STACK_OF(X509_OBJECT) *X509_STORE_get0_objects(const X509_STORE *v); -STACK_OF(X509) *X509_STORE_get1_all_certs(X509_STORE *st); -STACK_OF(X509) *X509_STORE_CTX_get1_certs(X509_STORE_CTX *st, +void X509_STORE_free(X509_STORE *xs); +int X509_STORE_lock(X509_STORE *xs); +int X509_STORE_unlock(X509_STORE *xs); +int X509_STORE_up_ref(X509_STORE *xs); +STACK_OF(X509_OBJECT) *X509_STORE_get0_objects(const X509_STORE *xs); +STACK_OF(X509_OBJECT) *X509_STORE_get1_objects(X509_STORE *xs); +STACK_OF(X509) *X509_STORE_get1_all_certs(X509_STORE *xs); +STACK_OF(X509) *X509_STORE_CTX_get1_certs(X509_STORE_CTX *xs, const X509_NAME *nm); STACK_OF(X509_CRL) *X509_STORE_CTX_get1_crls(const X509_STORE_CTX *st, const X509_NAME *nm); -int X509_STORE_set_flags(X509_STORE *ctx, unsigned long flags); -int X509_STORE_set_purpose(X509_STORE *ctx, int purpose); -int X509_STORE_set_trust(X509_STORE *ctx, int trust); -int X509_STORE_set1_param(X509_STORE *ctx, const X509_VERIFY_PARAM *pm); -X509_VERIFY_PARAM *X509_STORE_get0_param(const X509_STORE *ctx); +int X509_STORE_set_flags(X509_STORE *xs, unsigned long flags); +int X509_STORE_set_purpose(X509_STORE *xs, int purpose); +int X509_STORE_set_trust(X509_STORE *xs, int trust); +int X509_STORE_set1_param(X509_STORE *xs, const X509_VERIFY_PARAM *pm); +X509_VERIFY_PARAM *X509_STORE_get0_param(const X509_STORE *xs); -void X509_STORE_set_verify(X509_STORE *ctx, X509_STORE_CTX_verify_fn verify); +void X509_STORE_set_verify(X509_STORE *xs, X509_STORE_CTX_verify_fn verify); #define X509_STORE_set_verify_func(ctx, func) \ X509_STORE_set_verify((ctx),(func)) void X509_STORE_CTX_set_verify(X509_STORE_CTX *ctx, X509_STORE_CTX_verify_fn verify); -X509_STORE_CTX_verify_fn X509_STORE_get_verify(const X509_STORE *ctx); -void X509_STORE_set_verify_cb(X509_STORE *ctx, +X509_STORE_CTX_verify_fn X509_STORE_get_verify(const X509_STORE *xs); +void X509_STORE_set_verify_cb(X509_STORE *xs, X509_STORE_CTX_verify_cb verify_cb); # define X509_STORE_set_verify_cb_func(ctx,func) \ X509_STORE_set_verify_cb((ctx),(func)) -X509_STORE_CTX_verify_cb X509_STORE_get_verify_cb(const X509_STORE *ctx); -void X509_STORE_set_get_issuer(X509_STORE *ctx, +X509_STORE_CTX_verify_cb X509_STORE_get_verify_cb(const X509_STORE *xs); +void X509_STORE_set_get_issuer(X509_STORE *xs, X509_STORE_CTX_get_issuer_fn get_issuer); -X509_STORE_CTX_get_issuer_fn X509_STORE_get_get_issuer(const X509_STORE *ctx); -void X509_STORE_set_check_issued(X509_STORE *ctx, +X509_STORE_CTX_get_issuer_fn X509_STORE_get_get_issuer(const X509_STORE *xs); +void X509_STORE_set_check_issued(X509_STORE *xs, X509_STORE_CTX_check_issued_fn check_issued); -X509_STORE_CTX_check_issued_fn X509_STORE_get_check_issued(const X509_STORE *ctx); -void X509_STORE_set_check_revocation(X509_STORE *ctx, +X509_STORE_CTX_check_issued_fn X509_STORE_get_check_issued(const X509_STORE *s); +void X509_STORE_set_check_revocation(X509_STORE *xs, X509_STORE_CTX_check_revocation_fn check_revocation); X509_STORE_CTX_check_revocation_fn - X509_STORE_get_check_revocation(const X509_STORE *ctx); -void X509_STORE_set_get_crl(X509_STORE *ctx, + X509_STORE_get_check_revocation(const X509_STORE *xs); +void X509_STORE_set_get_crl(X509_STORE *xs, X509_STORE_CTX_get_crl_fn get_crl); -X509_STORE_CTX_get_crl_fn X509_STORE_get_get_crl(const X509_STORE *ctx); -void X509_STORE_set_check_crl(X509_STORE *ctx, +X509_STORE_CTX_get_crl_fn X509_STORE_get_get_crl(const X509_STORE *xs); +void X509_STORE_set_check_crl(X509_STORE *xs, X509_STORE_CTX_check_crl_fn check_crl); -X509_STORE_CTX_check_crl_fn X509_STORE_get_check_crl(const X509_STORE *ctx); -void X509_STORE_set_cert_crl(X509_STORE *ctx, +X509_STORE_CTX_check_crl_fn X509_STORE_get_check_crl(const X509_STORE *xs); +void X509_STORE_set_cert_crl(X509_STORE *xs, X509_STORE_CTX_cert_crl_fn cert_crl); -X509_STORE_CTX_cert_crl_fn X509_STORE_get_cert_crl(const X509_STORE *ctx); -void X509_STORE_set_check_policy(X509_STORE *ctx, +X509_STORE_CTX_cert_crl_fn X509_STORE_get_cert_crl(const X509_STORE *xs); +void X509_STORE_set_check_policy(X509_STORE *xs, X509_STORE_CTX_check_policy_fn check_policy); -X509_STORE_CTX_check_policy_fn X509_STORE_get_check_policy(const X509_STORE *ctx); -void X509_STORE_set_lookup_certs(X509_STORE *ctx, +X509_STORE_CTX_check_policy_fn X509_STORE_get_check_policy(const X509_STORE *s); +void X509_STORE_set_lookup_certs(X509_STORE *xs, X509_STORE_CTX_lookup_certs_fn lookup_certs); -X509_STORE_CTX_lookup_certs_fn X509_STORE_get_lookup_certs(const X509_STORE *ctx); -void X509_STORE_set_lookup_crls(X509_STORE *ctx, +X509_STORE_CTX_lookup_certs_fn X509_STORE_get_lookup_certs(const X509_STORE *s); +void X509_STORE_set_lookup_crls(X509_STORE *xs, X509_STORE_CTX_lookup_crls_fn lookup_crls); #define X509_STORE_set_lookup_crls_cb(ctx, func) \ X509_STORE_set_lookup_crls((ctx), (func)) -X509_STORE_CTX_lookup_crls_fn X509_STORE_get_lookup_crls(const X509_STORE *ctx); -void X509_STORE_set_cleanup(X509_STORE *ctx, +X509_STORE_CTX_lookup_crls_fn X509_STORE_get_lookup_crls(const X509_STORE *xs); +void X509_STORE_set_cleanup(X509_STORE *xs, X509_STORE_CTX_cleanup_fn cleanup); -X509_STORE_CTX_cleanup_fn X509_STORE_get_cleanup(const X509_STORE *ctx); +X509_STORE_CTX_cleanup_fn X509_STORE_get_cleanup(const X509_STORE *xs); #define X509_STORE_get_ex_new_index(l, p, newf, dupf, freef) \ CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_X509_STORE, l, p, newf, dupf, freef) -int X509_STORE_set_ex_data(X509_STORE *ctx, int idx, void *data); -void *X509_STORE_get_ex_data(const X509_STORE *ctx, int idx); +int X509_STORE_set_ex_data(X509_STORE *xs, int idx, void *data); +void *X509_STORE_get_ex_data(const X509_STORE *xs, int idx); X509_STORE_CTX *X509_STORE_CTX_new_ex(OSSL_LIB_CTX *libctx, const char *propq); X509_STORE_CTX *X509_STORE_CTX_new(void); @@ -565,11 +567,14 @@ int X509_STORE_CTX_get1_issuer(X509 **issuer, X509_STORE_CTX *ctx, X509 *x); void X509_STORE_CTX_free(X509_STORE_CTX *ctx); int X509_STORE_CTX_init(X509_STORE_CTX *ctx, X509_STORE *trust_store, X509 *target, STACK_OF(X509) *untrusted); +int X509_STORE_CTX_init_rpk(X509_STORE_CTX *ctx, X509_STORE *trust_store, + EVP_PKEY* rpk); void X509_STORE_CTX_set0_trusted_stack(X509_STORE_CTX *ctx, STACK_OF(X509) *sk); void X509_STORE_CTX_cleanup(X509_STORE_CTX *ctx); X509_STORE *X509_STORE_CTX_get0_store(const X509_STORE_CTX *ctx); X509 *X509_STORE_CTX_get0_cert(const X509_STORE_CTX *ctx); +EVP_PKEY *X509_STORE_CTX_get0_rpk(const X509_STORE_CTX *ctx); STACK_OF(X509)* X509_STORE_CTX_get0_untrusted(const X509_STORE_CTX *ctx); void X509_STORE_CTX_set0_untrusted(X509_STORE_CTX *ctx, STACK_OF(X509) *sk); void X509_STORE_CTX_set_verify_cb(X509_STORE_CTX *ctx, @@ -579,6 +584,8 @@ X509_STORE_CTX_verify_fn X509_STORE_CTX_get_verify(const X509_STORE_CTX *ctx); X509_STORE_CTX_get_issuer_fn X509_STORE_CTX_get_get_issuer(const X509_STORE_CTX *ctx); X509_STORE_CTX_check_issued_fn X509_STORE_CTX_get_check_issued(const X509_STORE_CTX *ctx); X509_STORE_CTX_check_revocation_fn X509_STORE_CTX_get_check_revocation(const X509_STORE_CTX *ctx); +void X509_STORE_CTX_set_get_crl(X509_STORE_CTX *ctx, + X509_STORE_CTX_get_crl_fn get_crl); X509_STORE_CTX_get_crl_fn X509_STORE_CTX_get_get_crl(const X509_STORE_CTX *ctx); X509_STORE_CTX_check_crl_fn X509_STORE_CTX_get_check_crl(const X509_STORE_CTX *ctx); X509_STORE_CTX_cert_crl_fn X509_STORE_CTX_get_cert_crl(const X509_STORE_CTX *ctx); @@ -600,7 +607,7 @@ X509_STORE_CTX_cleanup_fn X509_STORE_CTX_get_cleanup(const X509_STORE_CTX *ctx); # define X509_STORE_get1_crl X509_STORE_CTX_get1_crls #endif -X509_LOOKUP *X509_STORE_add_lookup(X509_STORE *v, X509_LOOKUP_METHOD *m); +X509_LOOKUP *X509_STORE_add_lookup(X509_STORE *xs, X509_LOOKUP_METHOD *m); X509_LOOKUP_METHOD *X509_LOOKUP_hash_dir(void); X509_LOOKUP_METHOD *X509_LOOKUP_file(void); X509_LOOKUP_METHOD *X509_LOOKUP_store(void); @@ -685,8 +692,8 @@ X509_LOOKUP_get_by_alias_fn X509_LOOKUP_meth_get_get_by_alias( const X509_LOOKUP_METHOD *method); -int X509_STORE_add_cert(X509_STORE *ctx, X509 *x); -int X509_STORE_add_crl(X509_STORE *ctx, X509_CRL *x); +int X509_STORE_add_cert(X509_STORE *xs, X509 *x); +int X509_STORE_add_crl(X509_STORE *xs, X509_CRL *x); int X509_STORE_CTX_get_by_subject(const X509_STORE_CTX *vs, X509_LOOKUP_TYPE type, @@ -730,23 +737,21 @@ void *X509_LOOKUP_get_method_data(const X509_LOOKUP *ctx); X509_STORE *X509_LOOKUP_get_store(const X509_LOOKUP *ctx); int X509_LOOKUP_shutdown(X509_LOOKUP *ctx); -int X509_STORE_load_file(X509_STORE *ctx, const char *file); -int X509_STORE_load_path(X509_STORE *ctx, const char *path); -int X509_STORE_load_store(X509_STORE *ctx, const char *store); -int X509_STORE_load_locations(X509_STORE *ctx, - const char *file, - const char *dir); -int X509_STORE_set_default_paths(X509_STORE *ctx); +int X509_STORE_load_file(X509_STORE *xs, const char *file); +int X509_STORE_load_path(X509_STORE *xs, const char *path); +int X509_STORE_load_store(X509_STORE *xs, const char *store); +int X509_STORE_load_locations(X509_STORE *s, const char *file, const char *dir); +int X509_STORE_set_default_paths(X509_STORE *xs); -int X509_STORE_load_file_ex(X509_STORE *ctx, const char *file, +int X509_STORE_load_file_ex(X509_STORE *xs, const char *file, OSSL_LIB_CTX *libctx, const char *propq); -int X509_STORE_load_store_ex(X509_STORE *ctx, const char *store, +int X509_STORE_load_store_ex(X509_STORE *xs, const char *store, OSSL_LIB_CTX *libctx, const char *propq); -int X509_STORE_load_locations_ex(X509_STORE *ctx, const char *file, - const char *dir, OSSL_LIB_CTX *libctx, - const char *propq); -int X509_STORE_set_default_paths_ex(X509_STORE *ctx, OSSL_LIB_CTX *libctx, - const char *propq); +int X509_STORE_load_locations_ex(X509_STORE *xs, + const char *file, const char *dir, + OSSL_LIB_CTX *libctx, const char *propq); +int X509_STORE_set_default_paths_ex(X509_STORE *xs, + OSSL_LIB_CTX *libctx, const char *propq); #define X509_STORE_CTX_get_ex_new_index(l, p, newf, dupf, freef) \ CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_X509_STORE_CTX, l, p, newf, dupf, freef) @@ -764,6 +769,7 @@ X509_STORE_CTX *X509_STORE_CTX_get0_parent_ctx(const X509_STORE_CTX *ctx); STACK_OF(X509) *X509_STORE_CTX_get0_chain(const X509_STORE_CTX *ctx); STACK_OF(X509) *X509_STORE_CTX_get1_chain(const X509_STORE_CTX *ctx); void X509_STORE_CTX_set_cert(X509_STORE_CTX *ctx, X509 *target); +void X509_STORE_CTX_set0_rpk(X509_STORE_CTX *ctx, EVP_PKEY *target); void X509_STORE_CTX_set0_verified_chain(X509_STORE_CTX *c, STACK_OF(X509) *sk); void X509_STORE_CTX_set0_crls(X509_STORE_CTX *ctx, STACK_OF(X509_CRL) *sk); int X509_STORE_CTX_set_purpose(X509_STORE_CTX *ctx, int purpose); @@ -773,6 +779,8 @@ int X509_STORE_CTX_purpose_inherit(X509_STORE_CTX *ctx, int def_purpose, void X509_STORE_CTX_set_flags(X509_STORE_CTX *ctx, unsigned long flags); void X509_STORE_CTX_set_time(X509_STORE_CTX *ctx, unsigned long flags, time_t t); +void X509_STORE_CTX_set_current_reasons(X509_STORE_CTX *ctx, + unsigned int current_reasons); X509_POLICY_TREE *X509_STORE_CTX_get0_policy_tree(const X509_STORE_CTX *ctx); int X509_STORE_CTX_get_explicit_policy(const X509_STORE_CTX *ctx); @@ -804,6 +812,7 @@ int X509_VERIFY_PARAM_clear_flags(X509_VERIFY_PARAM *param, unsigned long flags); unsigned long X509_VERIFY_PARAM_get_flags(const X509_VERIFY_PARAM *param); int X509_VERIFY_PARAM_set_purpose(X509_VERIFY_PARAM *param, int purpose); +int X509_VERIFY_PARAM_get_purpose(const X509_VERIFY_PARAM *param); int X509_VERIFY_PARAM_set_trust(X509_VERIFY_PARAM *param, int trust); void X509_VERIFY_PARAM_set_depth(X509_VERIFY_PARAM *param, int depth); void X509_VERIFY_PARAM_set_auth_level(X509_VERIFY_PARAM *param, int auth_level); diff --git a/deps/openssl/config/archs/linux-elf/asm/include/openssl/x509v3.h b/deps/openssl/config/archs/linux-elf/asm/include/openssl/x509v3.h index 20b67455f2061d..b8dabac35a4915 100644 --- a/deps/openssl/config/archs/linux-elf/asm/include/openssl/x509v3.h +++ b/deps/openssl/config/archs/linux-elf/asm/include/openssl/x509v3.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/x509v3.h.in * - * Copyright 1999-2023 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1999-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -25,6 +25,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -146,6 +149,11 @@ typedef struct BASIC_CONSTRAINTS_st { ASN1_INTEGER *pathlen; } BASIC_CONSTRAINTS; +typedef struct OSSL_BASIC_ATTR_CONSTRAINTS_st { + int authority; + ASN1_INTEGER *pathlen; +} OSSL_BASIC_ATTR_CONSTRAINTS; + typedef struct PKEY_USAGE_PERIOD_st { ASN1_GENERALIZEDTIME *notBefore; ASN1_GENERALIZEDTIME *notAfter; @@ -198,6 +206,8 @@ typedef struct ACCESS_DESCRIPTION_st { GENERAL_NAME *location; } ACCESS_DESCRIPTION; +int GENERAL_NAME_set1_X509_NAME(GENERAL_NAME **tgt, const X509_NAME *src); + SKM_DEFINE_STACK_OF_INTERNAL(ACCESS_DESCRIPTION, ACCESS_DESCRIPTION, ACCESS_DESCRIPTION) #define sk_ACCESS_DESCRIPTION_num(sk) OPENSSL_sk_num(ossl_check_const_ACCESS_DESCRIPTION_sk_type(sk)) #define sk_ACCESS_DESCRIPTION_value(sk, idx) ((ACCESS_DESCRIPTION *)OPENSSL_sk_value(ossl_check_const_ACCESS_DESCRIPTION_sk_type(sk), (idx))) @@ -294,6 +304,7 @@ typedef struct DIST_POINT_NAME_st { /* If relativename then this contains the full distribution point name */ X509_NAME *dpname; } DIST_POINT_NAME; +DECLARE_ASN1_DUP_FUNCTION(DIST_POINT_NAME) /* All existing reasons */ # define CRLDP_ALL_REASONS 0x807f @@ -659,15 +670,16 @@ struct ISSUING_DIST_POINT_st { # define EXFLAG_SAN_CRITICAL 0x80000 # define EXFLAG_NO_FINGERPRINT 0x100000 -# define KU_DIGITAL_SIGNATURE 0x0080 -# define KU_NON_REPUDIATION 0x0040 -# define KU_KEY_ENCIPHERMENT 0x0020 -# define KU_DATA_ENCIPHERMENT 0x0010 -# define KU_KEY_AGREEMENT 0x0008 -# define KU_KEY_CERT_SIGN 0x0004 -# define KU_CRL_SIGN 0x0002 -# define KU_ENCIPHER_ONLY 0x0001 -# define KU_DECIPHER_ONLY 0x8000 +/* https://datatracker.ietf.org/doc/html/rfc5280#section-4.2.1.3 */ +# define KU_DIGITAL_SIGNATURE X509v3_KU_DIGITAL_SIGNATURE +# define KU_NON_REPUDIATION X509v3_KU_NON_REPUDIATION +# define KU_KEY_ENCIPHERMENT X509v3_KU_KEY_ENCIPHERMENT +# define KU_DATA_ENCIPHERMENT X509v3_KU_DATA_ENCIPHERMENT +# define KU_KEY_AGREEMENT X509v3_KU_KEY_AGREEMENT +# define KU_KEY_CERT_SIGN X509v3_KU_KEY_CERT_SIGN +# define KU_CRL_SIGN X509v3_KU_CRL_SIGN +# define KU_ENCIPHER_ONLY X509v3_KU_ENCIPHER_ONLY +# define KU_DECIPHER_ONLY X509v3_KU_DECIPHER_ONLY # define NS_SSL_CLIENT 0x80 # define NS_SSL_SERVER 0x40 @@ -729,7 +741,7 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_PURPOSE, X509_PURPOSE, X509_PURPOSE) #define sk_X509_PURPOSE_set_cmp_func(sk, cmp) ((sk_X509_PURPOSE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_X509_PURPOSE_sk_type(sk), ossl_check_X509_PURPOSE_compfunc_type(cmp))) - +# define X509_PURPOSE_DEFAULT_ANY 0 # define X509_PURPOSE_SSL_CLIENT 1 # define X509_PURPOSE_SSL_SERVER 2 # define X509_PURPOSE_NS_SSL_SERVER 3 @@ -739,9 +751,10 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_PURPOSE, X509_PURPOSE, X509_PURPOSE) # define X509_PURPOSE_ANY 7 # define X509_PURPOSE_OCSP_HELPER 8 # define X509_PURPOSE_TIMESTAMP_SIGN 9 +# define X509_PURPOSE_CODE_SIGN 10 # define X509_PURPOSE_MIN 1 -# define X509_PURPOSE_MAX 9 +# define X509_PURPOSE_MAX 10 /* Flags for X509V3_EXT_print() */ @@ -767,6 +780,7 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_PURPOSE, X509_PURPOSE, X509_PURPOSE) # define X509V3_ADD_SILENT 0x10 DECLARE_ASN1_FUNCTIONS(BASIC_CONSTRAINTS) +DECLARE_ASN1_FUNCTIONS(OSSL_BASIC_ATTR_CONSTRAINTS) DECLARE_ASN1_FUNCTIONS(SXNET) DECLARE_ASN1_FUNCTIONS(SXNETID) @@ -976,7 +990,6 @@ int X509V3_extensions_print(BIO *out, const char *title, int X509_check_ca(X509 *x); int X509_check_purpose(X509 *x, int id, int ca); int X509_supported_extension(X509_EXTENSION *ex); -int X509_PURPOSE_set(int *p, int purpose); int X509_check_issued(X509 *issuer, X509 *subject); int X509_check_akid(const X509 *issuer, const AUTHORITY_KEYID *akid); void X509_set_proxy_flag(X509 *x); @@ -992,22 +1005,26 @@ const GENERAL_NAMES *X509_get0_authority_issuer(X509 *x); const ASN1_INTEGER *X509_get0_authority_serial(X509 *x); int X509_PURPOSE_get_count(void); -X509_PURPOSE *X509_PURPOSE_get0(int idx); +int X509_PURPOSE_get_unused_id(OSSL_LIB_CTX *libctx); int X509_PURPOSE_get_by_sname(const char *sname); int X509_PURPOSE_get_by_id(int id); int X509_PURPOSE_add(int id, int trust, int flags, int (*ck) (const X509_PURPOSE *, const X509 *, int), const char *name, const char *sname, void *arg); +void X509_PURPOSE_cleanup(void); + +X509_PURPOSE *X509_PURPOSE_get0(int idx); +int X509_PURPOSE_get_id(const X509_PURPOSE *); char *X509_PURPOSE_get0_name(const X509_PURPOSE *xp); char *X509_PURPOSE_get0_sname(const X509_PURPOSE *xp); int X509_PURPOSE_get_trust(const X509_PURPOSE *xp); -void X509_PURPOSE_cleanup(void); -int X509_PURPOSE_get_id(const X509_PURPOSE *); +int X509_PURPOSE_set(int *p, int purpose); STACK_OF(OPENSSL_STRING) *X509_get1_email(X509 *x); STACK_OF(OPENSSL_STRING) *X509_REQ_get1_email(X509_REQ *x); void X509_email_free(STACK_OF(OPENSSL_STRING) *sk); STACK_OF(OPENSSL_STRING) *X509_get1_ocsp(X509 *x); + /* Flags for X509_check_* functions */ /* @@ -1444,6 +1461,507 @@ const ASN1_PRINTABLESTRING *PROFESSION_INFO_get0_registrationNumber( void PROFESSION_INFO_set0_registrationNumber( PROFESSION_INFO *pi, ASN1_PRINTABLESTRING *rn); +int OSSL_GENERAL_NAMES_print(BIO *out, GENERAL_NAMES *gens, int indent); + +typedef STACK_OF(X509_ATTRIBUTE) OSSL_ATTRIBUTES_SYNTAX; +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTES_SYNTAX) + +typedef STACK_OF(USERNOTICE) OSSL_USER_NOTICE_SYNTAX; +DECLARE_ASN1_FUNCTIONS(OSSL_USER_NOTICE_SYNTAX) + +SKM_DEFINE_STACK_OF_INTERNAL(USERNOTICE, USERNOTICE, USERNOTICE) +#define sk_USERNOTICE_num(sk) OPENSSL_sk_num(ossl_check_const_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_value(sk, idx) ((USERNOTICE *)OPENSSL_sk_value(ossl_check_const_USERNOTICE_sk_type(sk), (idx))) +#define sk_USERNOTICE_new(cmp) ((STACK_OF(USERNOTICE) *)OPENSSL_sk_new(ossl_check_USERNOTICE_compfunc_type(cmp))) +#define sk_USERNOTICE_new_null() ((STACK_OF(USERNOTICE) *)OPENSSL_sk_new_null()) +#define sk_USERNOTICE_new_reserve(cmp, n) ((STACK_OF(USERNOTICE) *)OPENSSL_sk_new_reserve(ossl_check_USERNOTICE_compfunc_type(cmp), (n))) +#define sk_USERNOTICE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_USERNOTICE_sk_type(sk), (n)) +#define sk_USERNOTICE_free(sk) OPENSSL_sk_free(ossl_check_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_zero(sk) OPENSSL_sk_zero(ossl_check_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_delete(sk, i) ((USERNOTICE *)OPENSSL_sk_delete(ossl_check_USERNOTICE_sk_type(sk), (i))) +#define sk_USERNOTICE_delete_ptr(sk, ptr) ((USERNOTICE *)OPENSSL_sk_delete_ptr(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr))) +#define sk_USERNOTICE_push(sk, ptr) OPENSSL_sk_push(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr)) +#define sk_USERNOTICE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr)) +#define sk_USERNOTICE_pop(sk) ((USERNOTICE *)OPENSSL_sk_pop(ossl_check_USERNOTICE_sk_type(sk))) +#define sk_USERNOTICE_shift(sk) ((USERNOTICE *)OPENSSL_sk_shift(ossl_check_USERNOTICE_sk_type(sk))) +#define sk_USERNOTICE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_USERNOTICE_sk_type(sk),ossl_check_USERNOTICE_freefunc_type(freefunc)) +#define sk_USERNOTICE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr), (idx)) +#define sk_USERNOTICE_set(sk, idx, ptr) ((USERNOTICE *)OPENSSL_sk_set(ossl_check_USERNOTICE_sk_type(sk), (idx), ossl_check_USERNOTICE_type(ptr))) +#define sk_USERNOTICE_find(sk, ptr) OPENSSL_sk_find(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr)) +#define sk_USERNOTICE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr)) +#define sk_USERNOTICE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr), pnum) +#define sk_USERNOTICE_sort(sk) OPENSSL_sk_sort(ossl_check_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_dup(sk) ((STACK_OF(USERNOTICE) *)OPENSSL_sk_dup(ossl_check_const_USERNOTICE_sk_type(sk))) +#define sk_USERNOTICE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(USERNOTICE) *)OPENSSL_sk_deep_copy(ossl_check_const_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_copyfunc_type(copyfunc), ossl_check_USERNOTICE_freefunc_type(freefunc))) +#define sk_USERNOTICE_set_cmp_func(sk, cmp) ((sk_USERNOTICE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_compfunc_type(cmp))) + + +typedef struct OSSL_ROLE_SPEC_CERT_ID_st { + GENERAL_NAME *roleName; + GENERAL_NAME *roleCertIssuer; + ASN1_INTEGER *roleCertSerialNumber; + GENERAL_NAMES *roleCertLocator; +} OSSL_ROLE_SPEC_CERT_ID; + +DECLARE_ASN1_FUNCTIONS(OSSL_ROLE_SPEC_CERT_ID) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ROLE_SPEC_CERT_ID, OSSL_ROLE_SPEC_CERT_ID, OSSL_ROLE_SPEC_CERT_ID) +#define sk_OSSL_ROLE_SPEC_CERT_ID_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_value(sk, idx) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_value(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), (idx))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_new(cmp) ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_new(ossl_check_OSSL_ROLE_SPEC_CERT_ID_compfunc_type(cmp))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_new_null() ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ROLE_SPEC_CERT_ID_new_reserve(cmp, n) ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ROLE_SPEC_CERT_ID_compfunc_type(cmp), (n))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), (n)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_delete(sk, i) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_delete(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), (i))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_delete_ptr(sk, ptr) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_pop(sk) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_pop(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_shift(sk) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_shift(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk),ossl_check_OSSL_ROLE_SPEC_CERT_ID_freefunc_type(freefunc)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr), (idx)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_set(sk, idx, ptr) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_set(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), (idx), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr), pnum) +#define sk_OSSL_ROLE_SPEC_CERT_ID_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_dup(sk) ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_copyfunc_type(copyfunc), ossl_check_OSSL_ROLE_SPEC_CERT_ID_freefunc_type(freefunc))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_set_cmp_func(sk, cmp) ((sk_OSSL_ROLE_SPEC_CERT_ID_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_compfunc_type(cmp))) + + +typedef STACK_OF(OSSL_ROLE_SPEC_CERT_ID) OSSL_ROLE_SPEC_CERT_ID_SYNTAX; + +DECLARE_ASN1_FUNCTIONS(OSSL_ROLE_SPEC_CERT_ID_SYNTAX) +typedef struct OSSL_HASH_st { + X509_ALGOR *algorithmIdentifier; + ASN1_BIT_STRING *hashValue; +} OSSL_HASH; + +typedef struct OSSL_INFO_SYNTAX_POINTER_st { + GENERAL_NAMES *name; + OSSL_HASH *hash; +} OSSL_INFO_SYNTAX_POINTER; + +# define OSSL_INFO_SYNTAX_TYPE_CONTENT 0 +# define OSSL_INFO_SYNTAX_TYPE_POINTER 1 + +typedef struct OSSL_INFO_SYNTAX_st { + int type; + union { + ASN1_STRING *content; + OSSL_INFO_SYNTAX_POINTER *pointer; + } choice; +} OSSL_INFO_SYNTAX; + +typedef struct OSSL_PRIVILEGE_POLICY_ID_st { + ASN1_OBJECT *privilegePolicy; + OSSL_INFO_SYNTAX *privPolSyntax; +} OSSL_PRIVILEGE_POLICY_ID; + +typedef struct OSSL_ATTRIBUTE_DESCRIPTOR_st { + ASN1_OBJECT *identifier; + ASN1_STRING *attributeSyntax; + ASN1_UTF8STRING *name; + ASN1_UTF8STRING *description; + OSSL_PRIVILEGE_POLICY_ID *dominationRule; +} OSSL_ATTRIBUTE_DESCRIPTOR; + +DECLARE_ASN1_FUNCTIONS(OSSL_HASH) +DECLARE_ASN1_FUNCTIONS(OSSL_INFO_SYNTAX) +DECLARE_ASN1_FUNCTIONS(OSSL_INFO_SYNTAX_POINTER) +DECLARE_ASN1_FUNCTIONS(OSSL_PRIVILEGE_POLICY_ID) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_DESCRIPTOR) + +typedef struct OSSL_TIME_SPEC_ABSOLUTE_st { + ASN1_GENERALIZEDTIME *startTime; + ASN1_GENERALIZEDTIME *endTime; +} OSSL_TIME_SPEC_ABSOLUTE; + +typedef struct OSSL_DAY_TIME_st { + ASN1_INTEGER *hour; + ASN1_INTEGER *minute; + ASN1_INTEGER *second; +} OSSL_DAY_TIME; + +typedef struct OSSL_DAY_TIME_BAND_st { + OSSL_DAY_TIME *startDayTime; + OSSL_DAY_TIME *endDayTime; +} OSSL_DAY_TIME_BAND; + +# define OSSL_NAMED_DAY_TYPE_INT 0 +# define OSSL_NAMED_DAY_TYPE_BIT 1 +# define OSSL_NAMED_DAY_INT_SUN 1 +# define OSSL_NAMED_DAY_INT_MON 2 +# define OSSL_NAMED_DAY_INT_TUE 3 +# define OSSL_NAMED_DAY_INT_WED 4 +# define OSSL_NAMED_DAY_INT_THU 5 +# define OSSL_NAMED_DAY_INT_FRI 6 +# define OSSL_NAMED_DAY_INT_SAT 7 +# define OSSL_NAMED_DAY_BIT_SUN 0 +# define OSSL_NAMED_DAY_BIT_MON 1 +# define OSSL_NAMED_DAY_BIT_TUE 2 +# define OSSL_NAMED_DAY_BIT_WED 3 +# define OSSL_NAMED_DAY_BIT_THU 4 +# define OSSL_NAMED_DAY_BIT_FRI 5 +# define OSSL_NAMED_DAY_BIT_SAT 6 + +typedef struct OSSL_NAMED_DAY_st { + int type; + union { + ASN1_INTEGER *intNamedDays; + ASN1_BIT_STRING *bitNamedDays; + } choice; +} OSSL_NAMED_DAY; + +# define OSSL_TIME_SPEC_X_DAY_OF_FIRST 0 +# define OSSL_TIME_SPEC_X_DAY_OF_SECOND 1 +# define OSSL_TIME_SPEC_X_DAY_OF_THIRD 2 +# define OSSL_TIME_SPEC_X_DAY_OF_FOURTH 3 +# define OSSL_TIME_SPEC_X_DAY_OF_FIFTH 4 + +typedef struct OSSL_TIME_SPEC_X_DAY_OF_st { + int type; + union { + OSSL_NAMED_DAY *first; + OSSL_NAMED_DAY *second; + OSSL_NAMED_DAY *third; + OSSL_NAMED_DAY *fourth; + OSSL_NAMED_DAY *fifth; + } choice; +} OSSL_TIME_SPEC_X_DAY_OF; + +# define OSSL_TIME_SPEC_DAY_TYPE_INT 0 +# define OSSL_TIME_SPEC_DAY_TYPE_BIT 1 +# define OSSL_TIME_SPEC_DAY_TYPE_DAY_OF 2 +# define OSSL_TIME_SPEC_DAY_BIT_SUN 0 +# define OSSL_TIME_SPEC_DAY_BIT_MON 1 +# define OSSL_TIME_SPEC_DAY_BIT_TUE 2 +# define OSSL_TIME_SPEC_DAY_BIT_WED 3 +# define OSSL_TIME_SPEC_DAY_BIT_THU 4 +# define OSSL_TIME_SPEC_DAY_BIT_FRI 5 +# define OSSL_TIME_SPEC_DAY_BIT_SAT 6 +# define OSSL_TIME_SPEC_DAY_INT_SUN 1 +# define OSSL_TIME_SPEC_DAY_INT_MON 2 +# define OSSL_TIME_SPEC_DAY_INT_TUE 3 +# define OSSL_TIME_SPEC_DAY_INT_WED 4 +# define OSSL_TIME_SPEC_DAY_INT_THU 5 +# define OSSL_TIME_SPEC_DAY_INT_FRI 6 +# define OSSL_TIME_SPEC_DAY_INT_SAT 7 + +typedef struct OSSL_TIME_SPEC_DAY_st { + int type; + union { + STACK_OF(ASN1_INTEGER) *intDay; + ASN1_BIT_STRING *bitDay; + OSSL_TIME_SPEC_X_DAY_OF *dayOf; + } choice; +} OSSL_TIME_SPEC_DAY; + +# define OSSL_TIME_SPEC_WEEKS_TYPE_ALL 0 +# define OSSL_TIME_SPEC_WEEKS_TYPE_INT 1 +# define OSSL_TIME_SPEC_WEEKS_TYPE_BIT 2 +# define OSSL_TIME_SPEC_BIT_WEEKS_1 0 +# define OSSL_TIME_SPEC_BIT_WEEKS_2 1 +# define OSSL_TIME_SPEC_BIT_WEEKS_3 2 +# define OSSL_TIME_SPEC_BIT_WEEKS_4 3 +# define OSSL_TIME_SPEC_BIT_WEEKS_5 4 + +typedef struct OSSL_TIME_SPEC_WEEKS_st { + int type; + union { + ASN1_NULL *allWeeks; + STACK_OF(ASN1_INTEGER) *intWeek; + ASN1_BIT_STRING *bitWeek; + } choice; +} OSSL_TIME_SPEC_WEEKS; + +# define OSSL_TIME_SPEC_MONTH_TYPE_ALL 0 +# define OSSL_TIME_SPEC_MONTH_TYPE_INT 1 +# define OSSL_TIME_SPEC_MONTH_TYPE_BIT 2 +# define OSSL_TIME_SPEC_INT_MONTH_JAN 1 +# define OSSL_TIME_SPEC_INT_MONTH_FEB 2 +# define OSSL_TIME_SPEC_INT_MONTH_MAR 3 +# define OSSL_TIME_SPEC_INT_MONTH_APR 4 +# define OSSL_TIME_SPEC_INT_MONTH_MAY 5 +# define OSSL_TIME_SPEC_INT_MONTH_JUN 6 +# define OSSL_TIME_SPEC_INT_MONTH_JUL 7 +# define OSSL_TIME_SPEC_INT_MONTH_AUG 8 +# define OSSL_TIME_SPEC_INT_MONTH_SEP 9 +# define OSSL_TIME_SPEC_INT_MONTH_OCT 10 +# define OSSL_TIME_SPEC_INT_MONTH_NOV 11 +# define OSSL_TIME_SPEC_INT_MONTH_DEC 12 +# define OSSL_TIME_SPEC_BIT_MONTH_JAN 0 +# define OSSL_TIME_SPEC_BIT_MONTH_FEB 1 +# define OSSL_TIME_SPEC_BIT_MONTH_MAR 2 +# define OSSL_TIME_SPEC_BIT_MONTH_APR 3 +# define OSSL_TIME_SPEC_BIT_MONTH_MAY 4 +# define OSSL_TIME_SPEC_BIT_MONTH_JUN 5 +# define OSSL_TIME_SPEC_BIT_MONTH_JUL 6 +# define OSSL_TIME_SPEC_BIT_MONTH_AUG 7 +# define OSSL_TIME_SPEC_BIT_MONTH_SEP 8 +# define OSSL_TIME_SPEC_BIT_MONTH_OCT 9 +# define OSSL_TIME_SPEC_BIT_MONTH_NOV 10 +# define OSSL_TIME_SPEC_BIT_MONTH_DEC 11 + +typedef struct OSSL_TIME_SPEC_MONTH_st { + int type; + union { + ASN1_NULL *allMonths; + STACK_OF(ASN1_INTEGER) *intMonth; + ASN1_BIT_STRING *bitMonth; + } choice; +} OSSL_TIME_SPEC_MONTH; + +typedef struct OSSL_TIME_PERIOD_st { + STACK_OF(OSSL_DAY_TIME_BAND) *timesOfDay; + OSSL_TIME_SPEC_DAY *days; + OSSL_TIME_SPEC_WEEKS *weeks; + OSSL_TIME_SPEC_MONTH *months; + STACK_OF(ASN1_INTEGER) *years; +} OSSL_TIME_PERIOD; + +# define OSSL_TIME_SPEC_TIME_TYPE_ABSOLUTE 0 +# define OSSL_TIME_SPEC_TIME_TYPE_PERIODIC 1 + +typedef struct OSSL_TIME_SPEC_TIME_st { + int type; + union { + OSSL_TIME_SPEC_ABSOLUTE *absolute; + STACK_OF(OSSL_TIME_PERIOD) *periodic; + } choice; +} OSSL_TIME_SPEC_TIME; + +typedef struct OSSL_TIME_SPEC_st { + OSSL_TIME_SPEC_TIME *time; + ASN1_BOOLEAN notThisTime; + ASN1_INTEGER *timeZone; +} OSSL_TIME_SPEC; + +DECLARE_ASN1_FUNCTIONS(OSSL_DAY_TIME) +DECLARE_ASN1_FUNCTIONS(OSSL_DAY_TIME_BAND) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_DAY) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_WEEKS) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_MONTH) +DECLARE_ASN1_FUNCTIONS(OSSL_NAMED_DAY) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_X_DAY_OF) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_ABSOLUTE) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_TIME) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_PERIOD) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_TIME_PERIOD, OSSL_TIME_PERIOD, OSSL_TIME_PERIOD) +#define sk_OSSL_TIME_PERIOD_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_value(sk, idx) ((OSSL_TIME_PERIOD *)OPENSSL_sk_value(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk), (idx))) +#define sk_OSSL_TIME_PERIOD_new(cmp) ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_new(ossl_check_OSSL_TIME_PERIOD_compfunc_type(cmp))) +#define sk_OSSL_TIME_PERIOD_new_null() ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_new_null()) +#define sk_OSSL_TIME_PERIOD_new_reserve(cmp, n) ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_TIME_PERIOD_compfunc_type(cmp), (n))) +#define sk_OSSL_TIME_PERIOD_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), (n)) +#define sk_OSSL_TIME_PERIOD_free(sk) OPENSSL_sk_free(ossl_check_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_delete(sk, i) ((OSSL_TIME_PERIOD *)OPENSSL_sk_delete(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), (i))) +#define sk_OSSL_TIME_PERIOD_delete_ptr(sk, ptr) ((OSSL_TIME_PERIOD *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr))) +#define sk_OSSL_TIME_PERIOD_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr)) +#define sk_OSSL_TIME_PERIOD_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr)) +#define sk_OSSL_TIME_PERIOD_pop(sk) ((OSSL_TIME_PERIOD *)OPENSSL_sk_pop(ossl_check_OSSL_TIME_PERIOD_sk_type(sk))) +#define sk_OSSL_TIME_PERIOD_shift(sk) ((OSSL_TIME_PERIOD *)OPENSSL_sk_shift(ossl_check_OSSL_TIME_PERIOD_sk_type(sk))) +#define sk_OSSL_TIME_PERIOD_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_TIME_PERIOD_sk_type(sk),ossl_check_OSSL_TIME_PERIOD_freefunc_type(freefunc)) +#define sk_OSSL_TIME_PERIOD_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr), (idx)) +#define sk_OSSL_TIME_PERIOD_set(sk, idx, ptr) ((OSSL_TIME_PERIOD *)OPENSSL_sk_set(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), (idx), ossl_check_OSSL_TIME_PERIOD_type(ptr))) +#define sk_OSSL_TIME_PERIOD_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr)) +#define sk_OSSL_TIME_PERIOD_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr)) +#define sk_OSSL_TIME_PERIOD_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr), pnum) +#define sk_OSSL_TIME_PERIOD_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_dup(sk) ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_dup(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk))) +#define sk_OSSL_TIME_PERIOD_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_copyfunc_type(copyfunc), ossl_check_OSSL_TIME_PERIOD_freefunc_type(freefunc))) +#define sk_OSSL_TIME_PERIOD_set_cmp_func(sk, cmp) ((sk_OSSL_TIME_PERIOD_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_compfunc_type(cmp))) + + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_DAY_TIME_BAND, OSSL_DAY_TIME_BAND, OSSL_DAY_TIME_BAND) +#define sk_OSSL_DAY_TIME_BAND_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_value(sk, idx) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_value(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk), (idx))) +#define sk_OSSL_DAY_TIME_BAND_new(cmp) ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_new(ossl_check_OSSL_DAY_TIME_BAND_compfunc_type(cmp))) +#define sk_OSSL_DAY_TIME_BAND_new_null() ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_new_null()) +#define sk_OSSL_DAY_TIME_BAND_new_reserve(cmp, n) ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_DAY_TIME_BAND_compfunc_type(cmp), (n))) +#define sk_OSSL_DAY_TIME_BAND_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), (n)) +#define sk_OSSL_DAY_TIME_BAND_free(sk) OPENSSL_sk_free(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_delete(sk, i) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_delete(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), (i))) +#define sk_OSSL_DAY_TIME_BAND_delete_ptr(sk, ptr) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr))) +#define sk_OSSL_DAY_TIME_BAND_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr)) +#define sk_OSSL_DAY_TIME_BAND_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr)) +#define sk_OSSL_DAY_TIME_BAND_pop(sk) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_pop(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk))) +#define sk_OSSL_DAY_TIME_BAND_shift(sk) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_shift(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk))) +#define sk_OSSL_DAY_TIME_BAND_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk),ossl_check_OSSL_DAY_TIME_BAND_freefunc_type(freefunc)) +#define sk_OSSL_DAY_TIME_BAND_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr), (idx)) +#define sk_OSSL_DAY_TIME_BAND_set(sk, idx, ptr) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_set(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), (idx), ossl_check_OSSL_DAY_TIME_BAND_type(ptr))) +#define sk_OSSL_DAY_TIME_BAND_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr)) +#define sk_OSSL_DAY_TIME_BAND_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr)) +#define sk_OSSL_DAY_TIME_BAND_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr), pnum) +#define sk_OSSL_DAY_TIME_BAND_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_dup(sk) ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_dup(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk))) +#define sk_OSSL_DAY_TIME_BAND_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_copyfunc_type(copyfunc), ossl_check_OSSL_DAY_TIME_BAND_freefunc_type(freefunc))) +#define sk_OSSL_DAY_TIME_BAND_set_cmp_func(sk, cmp) ((sk_OSSL_DAY_TIME_BAND_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_compfunc_type(cmp))) + + +/* Attribute Type and Value */ +typedef struct atav_st { + ASN1_OBJECT *type; + ASN1_TYPE *value; +} OSSL_ATAV; + +typedef struct ATTRIBUTE_TYPE_MAPPING_st { + ASN1_OBJECT *local; + ASN1_OBJECT *remote; +} OSSL_ATTRIBUTE_TYPE_MAPPING; + +typedef struct ATTRIBUTE_VALUE_MAPPING_st { + OSSL_ATAV *local; + OSSL_ATAV *remote; +} OSSL_ATTRIBUTE_VALUE_MAPPING; + +# define OSSL_ATTR_MAP_TYPE 0 +# define OSSL_ATTR_MAP_VALUE 1 + +typedef struct ATTRIBUTE_MAPPING_st { + int type; + union { + OSSL_ATTRIBUTE_TYPE_MAPPING *typeMappings; + OSSL_ATTRIBUTE_VALUE_MAPPING *typeValueMappings; + } choice; +} OSSL_ATTRIBUTE_MAPPING; + +typedef STACK_OF(OSSL_ATTRIBUTE_MAPPING) OSSL_ATTRIBUTE_MAPPINGS; +DECLARE_ASN1_FUNCTIONS(OSSL_ATAV) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_TYPE_MAPPING) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_VALUE_MAPPING) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_MAPPING) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_MAPPINGS) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ATTRIBUTE_MAPPING, OSSL_ATTRIBUTE_MAPPING, OSSL_ATTRIBUTE_MAPPING) +#define sk_OSSL_ATTRIBUTE_MAPPING_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_value(sk, idx) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_value(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), (idx))) +#define sk_OSSL_ATTRIBUTE_MAPPING_new(cmp) ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_new(ossl_check_OSSL_ATTRIBUTE_MAPPING_compfunc_type(cmp))) +#define sk_OSSL_ATTRIBUTE_MAPPING_new_null() ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ATTRIBUTE_MAPPING_new_reserve(cmp, n) ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ATTRIBUTE_MAPPING_compfunc_type(cmp), (n))) +#define sk_OSSL_ATTRIBUTE_MAPPING_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), (n)) +#define sk_OSSL_ATTRIBUTE_MAPPING_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_delete(sk, i) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_delete(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), (i))) +#define sk_OSSL_ATTRIBUTE_MAPPING_delete_ptr(sk, ptr) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr))) +#define sk_OSSL_ATTRIBUTE_MAPPING_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr)) +#define sk_OSSL_ATTRIBUTE_MAPPING_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr)) +#define sk_OSSL_ATTRIBUTE_MAPPING_pop(sk) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_pop(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk))) +#define sk_OSSL_ATTRIBUTE_MAPPING_shift(sk) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_shift(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk))) +#define sk_OSSL_ATTRIBUTE_MAPPING_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk),ossl_check_OSSL_ATTRIBUTE_MAPPING_freefunc_type(freefunc)) +#define sk_OSSL_ATTRIBUTE_MAPPING_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr), (idx)) +#define sk_OSSL_ATTRIBUTE_MAPPING_set(sk, idx, ptr) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_set(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), (idx), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr))) +#define sk_OSSL_ATTRIBUTE_MAPPING_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr)) +#define sk_OSSL_ATTRIBUTE_MAPPING_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr)) +#define sk_OSSL_ATTRIBUTE_MAPPING_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr), pnum) +#define sk_OSSL_ATTRIBUTE_MAPPING_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_dup(sk) ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk))) +#define sk_OSSL_ATTRIBUTE_MAPPING_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_copyfunc_type(copyfunc), ossl_check_OSSL_ATTRIBUTE_MAPPING_freefunc_type(freefunc))) +#define sk_OSSL_ATTRIBUTE_MAPPING_set_cmp_func(sk, cmp) ((sk_OSSL_ATTRIBUTE_MAPPING_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_compfunc_type(cmp))) + + +# define OSSL_AAA_ATTRIBUTE_TYPE 0 +# define OSSL_AAA_ATTRIBUTE_VALUES 1 + +typedef struct ALLOWED_ATTRIBUTES_CHOICE_st { + int type; + union { + ASN1_OBJECT *attributeType; + X509_ATTRIBUTE *attributeTypeandValues; + } choice; +} OSSL_ALLOWED_ATTRIBUTES_CHOICE; + +typedef struct ALLOWED_ATTRIBUTES_ITEM_st { + STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *attributes; + GENERAL_NAME *holderDomain; +} OSSL_ALLOWED_ATTRIBUTES_ITEM; + +typedef STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) OSSL_ALLOWED_ATTRIBUTES_SYNTAX; + +DECLARE_ASN1_FUNCTIONS(OSSL_ALLOWED_ATTRIBUTES_CHOICE) +DECLARE_ASN1_FUNCTIONS(OSSL_ALLOWED_ATTRIBUTES_ITEM) +DECLARE_ASN1_FUNCTIONS(OSSL_ALLOWED_ATTRIBUTES_SYNTAX) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ALLOWED_ATTRIBUTES_CHOICE, OSSL_ALLOWED_ATTRIBUTES_CHOICE, OSSL_ALLOWED_ATTRIBUTES_CHOICE) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_value(sk, idx) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_value(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), (idx))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_new(cmp) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_new(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_compfunc_type(cmp))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_new_null() ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_new_reserve(cmp, n) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_compfunc_type(cmp), (n))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), (n)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_delete(sk, i) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_delete(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), (i))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_delete_ptr(sk, ptr) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_pop(sk) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_pop(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_shift(sk) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_shift(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk),ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_freefunc_type(freefunc)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr), (idx)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_set(sk, idx, ptr) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_set(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), (idx), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr), pnum) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_dup(sk) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_copyfunc_type(copyfunc), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_freefunc_type(freefunc))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_set_cmp_func(sk, cmp) ((sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_compfunc_type(cmp))) + + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ALLOWED_ATTRIBUTES_ITEM, OSSL_ALLOWED_ATTRIBUTES_ITEM, OSSL_ALLOWED_ATTRIBUTES_ITEM) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_value(sk, idx) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_value(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), (idx))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_new(cmp) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_new(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_compfunc_type(cmp))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_new_null() ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_new_reserve(cmp, n) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_compfunc_type(cmp), (n))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), (n)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_delete(sk, i) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_delete(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), (i))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_delete_ptr(sk, ptr) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_pop(sk) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_pop(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_shift(sk) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_shift(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk),ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_freefunc_type(freefunc)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr), (idx)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_set(sk, idx, ptr) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_set(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), (idx), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr), pnum) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_dup(sk) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_copyfunc_type(copyfunc), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_freefunc_type(freefunc))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_set_cmp_func(sk, cmp) ((sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_compfunc_type(cmp))) + + +typedef struct AA_DIST_POINT_st { + DIST_POINT_NAME *distpoint; + ASN1_BIT_STRING *reasons; + int dp_reasons; + ASN1_BOOLEAN indirectCRL; + ASN1_BOOLEAN containsUserAttributeCerts; + ASN1_BOOLEAN containsAACerts; + ASN1_BOOLEAN containsSOAPublicKeyCerts; +} OSSL_AA_DIST_POINT; + +DECLARE_ASN1_FUNCTIONS(OSSL_AA_DIST_POINT) + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/linux-elf/asm/include/progs.h b/deps/openssl/config/archs/linux-elf/asm/include/progs.h index be55f61503d405..1b62ec37dec130 100644 --- a/deps/openssl/config/archs/linux-elf/asm/include/progs.h +++ b/deps/openssl/config/archs/linux-elf/asm/include/progs.h @@ -56,6 +56,7 @@ extern int s_client_main(int argc, char *argv[]); extern int s_server_main(int argc, char *argv[]); extern int s_time_main(int argc, char *argv[]); extern int sess_id_main(int argc, char *argv[]); +extern int skeyutl_main(int argc, char *argv[]); extern int smime_main(int argc, char *argv[]); extern int speed_main(int argc, char *argv[]); extern int spkac_main(int argc, char *argv[]); @@ -110,6 +111,7 @@ extern const OPTIONS s_client_options[]; extern const OPTIONS s_server_options[]; extern const OPTIONS s_time_options[]; extern const OPTIONS sess_id_options[]; +extern const OPTIONS skeyutl_options[]; extern const OPTIONS smime_options[]; extern const OPTIONS speed_options[]; extern const OPTIONS spkac_options[]; diff --git a/deps/openssl/config/archs/linux-elf/asm/openssl-cl.gypi b/deps/openssl/config/archs/linux-elf/asm/openssl-cl.gypi index 8f021d5c21263e..7a0bd76c374682 100644 --- a/deps/openssl/config/archs/linux-elf/asm/openssl-cl.gypi +++ b/deps/openssl/config/archs/linux-elf/asm/openssl-cl.gypi @@ -83,6 +83,7 @@ 'openssl/apps/s_server.c', 'openssl/apps/s_time.c', 'openssl/apps/sess_id.c', + 'openssl/apps/skeyutl.c', 'openssl/apps/smime.c', 'openssl/apps/speed.c', 'openssl/apps/spkac.c', @@ -98,12 +99,14 @@ 'openssl/apps/lib/app_rand.c', 'openssl/apps/lib/app_x509.c', 'openssl/apps/lib/apps.c', + 'openssl/apps/lib/apps_opt_printf.c', 'openssl/apps/lib/apps_ui.c', 'openssl/apps/lib/columns.c', 'openssl/apps/lib/engine.c', 'openssl/apps/lib/engine_loader.c', 'openssl/apps/lib/fmt.c', 'openssl/apps/lib/http_server.c', + 'openssl/apps/lib/log.c', 'openssl/apps/lib/names.c', 'openssl/apps/lib/opt.c', 'openssl/apps/lib/s_cb.c', diff --git a/deps/openssl/config/archs/linux-elf/asm/openssl-fips.gypi b/deps/openssl/config/archs/linux-elf/asm/openssl-fips.gypi index dc1432627615a1..45a0cc5134c474 100644 --- a/deps/openssl/config/archs/linux-elf/asm/openssl-fips.gypi +++ b/deps/openssl/config/archs/linux-elf/asm/openssl-fips.gypi @@ -96,14 +96,15 @@ 'openssl/crypto/evp/kem.c', 'openssl/crypto/evp/keymgmt_lib.c', 'openssl/crypto/evp/keymgmt_meth.c', - 'openssl/crypto/evp/m_sigver.c', 'openssl/crypto/evp/mac_lib.c', 'openssl/crypto/evp/mac_meth.c', 'openssl/crypto/evp/p_lib.c', 'openssl/crypto/evp/pmeth_check.c', 'openssl/crypto/evp/pmeth_gn.c', 'openssl/crypto/evp/pmeth_lib.c', + 'openssl/crypto/evp/s_lib.c', 'openssl/crypto/evp/signature.c', + 'openssl/crypto/evp/skeymgmt_meth.c', 'openssl/crypto/ffc/ffc_backend.c', 'openssl/crypto/ffc/ffc_dh.c', 'openssl/crypto/ffc/ffc_key_generate.c', @@ -111,6 +112,8 @@ 'openssl/crypto/ffc/ffc_params.c', 'openssl/crypto/ffc/ffc_params_generate.c', 'openssl/crypto/ffc/ffc_params_validate.c', + 'openssl/crypto/hashtable/hashfunc.c', + 'openssl/crypto/hashtable/hashtable.c', 'openssl/crypto/hmac/hmac.c', 'openssl/crypto/lhash/lhash.c', 'openssl/crypto/asn1_dsa.c', @@ -140,6 +143,16 @@ 'openssl/crypto/threads_none.c', 'openssl/crypto/threads_pthread.c', 'openssl/crypto/threads_win.c', + 'openssl/crypto/time.c', + 'openssl/crypto/ml_dsa/ml_dsa_encoders.c', + 'openssl/crypto/ml_dsa/ml_dsa_key.c', + 'openssl/crypto/ml_dsa/ml_dsa_key_compress.c', + 'openssl/crypto/ml_dsa/ml_dsa_matrix.c', + 'openssl/crypto/ml_dsa/ml_dsa_ntt.c', + 'openssl/crypto/ml_dsa/ml_dsa_params.c', + 'openssl/crypto/ml_dsa/ml_dsa_sample.c', + 'openssl/crypto/ml_dsa/ml_dsa_sign.c', + 'openssl/crypto/ml_kem/ml_kem.c', 'openssl/crypto/modes/cbc128.c', 'openssl/crypto/modes/ccm128.c', 'openssl/crypto/modes/cfb128.c', @@ -148,6 +161,7 @@ 'openssl/crypto/modes/ofb128.c', 'openssl/crypto/modes/wrap128.c', 'openssl/crypto/modes/xts128.c', + 'openssl/crypto/modes/xts128gb.c', 'openssl/crypto/property/defn_cache.c', 'openssl/crypto/property/property.c', 'openssl/crypto/property/property_parse.c', @@ -176,7 +190,23 @@ 'openssl/crypto/sha/sha256.c', 'openssl/crypto/sha/sha3.c', 'openssl/crypto/sha/sha512.c', + 'openssl/crypto/slh_dsa/slh_adrs.c', + 'openssl/crypto/slh_dsa/slh_dsa.c', + 'openssl/crypto/slh_dsa/slh_dsa_hash_ctx.c', + 'openssl/crypto/slh_dsa/slh_dsa_key.c', + 'openssl/crypto/slh_dsa/slh_fors.c', + 'openssl/crypto/slh_dsa/slh_hash.c', + 'openssl/crypto/slh_dsa/slh_hypertree.c', + 'openssl/crypto/slh_dsa/slh_params.c', + 'openssl/crypto/slh_dsa/slh_wots.c', + 'openssl/crypto/slh_dsa/slh_xmss.c', 'openssl/crypto/stack/stack.c', + 'openssl/crypto/thread/arch/thread_none.c', + 'openssl/crypto/thread/arch/thread_posix.c', + 'openssl/crypto/thread/arch/thread_win.c', + 'openssl/crypto/thread/api.c', + 'openssl/crypto/thread/arch.c', + 'openssl/crypto/thread/internal.c', 'openssl/providers/common/der/der_rsa_sig.c', 'openssl/providers/common/bio_prov.c', 'openssl/providers/common/capabilities.c', @@ -185,6 +215,7 @@ 'openssl/providers/common/provider_util.c', 'openssl/providers/common/securitycheck.c', 'openssl/providers/common/securitycheck_fips.c', + 'openssl/providers/fips/fipsindicator.c', 'openssl/providers/fips/fipsprov.c', 'openssl/providers/fips/self_test.c', 'openssl/providers/fips/self_test_kats.c', @@ -222,6 +253,8 @@ 'openssl/providers/implementations/kdfs/sskdf.c', 'openssl/providers/implementations/kdfs/tls1_prf.c', 'openssl/providers/implementations/kdfs/x942kdf.c', + 'openssl/providers/implementations/kem/ml_kem_kem.c', + 'openssl/providers/implementations/kem/mlx_kem.c', 'openssl/providers/implementations/kem/rsa_kem.c', 'openssl/providers/implementations/keymgmt/dh_kmgmt.c', 'openssl/providers/implementations/keymgmt/dsa_kmgmt.c', @@ -229,29 +262,39 @@ 'openssl/providers/implementations/keymgmt/ecx_kmgmt.c', 'openssl/providers/implementations/keymgmt/kdf_legacy_kmgmt.c', 'openssl/providers/implementations/keymgmt/mac_legacy_kmgmt.c', + 'openssl/providers/implementations/keymgmt/ml_dsa_kmgmt.c', + 'openssl/providers/implementations/keymgmt/ml_kem_kmgmt.c', + 'openssl/providers/implementations/keymgmt/mlx_kmgmt.c', 'openssl/providers/implementations/keymgmt/rsa_kmgmt.c', + 'openssl/providers/implementations/keymgmt/slh_dsa_kmgmt.c', 'openssl/providers/implementations/macs/cmac_prov.c', 'openssl/providers/implementations/macs/gmac_prov.c', 'openssl/providers/implementations/macs/hmac_prov.c', 'openssl/providers/implementations/macs/kmac_prov.c', - 'openssl/providers/implementations/rands/crngt.c', 'openssl/providers/implementations/rands/drbg.c', 'openssl/providers/implementations/rands/drbg_ctr.c', 'openssl/providers/implementations/rands/drbg_hash.c', 'openssl/providers/implementations/rands/drbg_hmac.c', + 'openssl/providers/implementations/rands/fips_crng_test.c', 'openssl/providers/implementations/rands/test_rng.c', 'openssl/providers/implementations/signature/dsa_sig.c', 'openssl/providers/implementations/signature/ecdsa_sig.c', 'openssl/providers/implementations/signature/eddsa_sig.c', 'openssl/providers/implementations/signature/mac_legacy_sig.c', + 'openssl/providers/implementations/signature/ml_dsa_sig.c', 'openssl/providers/implementations/signature/rsa_sig.c', - 'openssl/ssl/s3_cbc.c', + 'openssl/providers/implementations/signature/slh_dsa_sig.c', + 'openssl/providers/implementations/skeymgmt/aes_skmgmt.c', + 'openssl/providers/implementations/skeymgmt/generic.c', + 'openssl/ssl/record/methods/ssl3_cbc.c', 'openssl/providers/common/der/der_dsa_key.c', 'openssl/providers/common/der/der_dsa_sig.c', 'openssl/providers/common/der/der_ec_key.c', 'openssl/providers/common/der/der_ec_sig.c', 'openssl/providers/common/der/der_ecx_key.c', + 'openssl/providers/common/der/der_ml_dsa_key.c', 'openssl/providers/common/der/der_rsa_key.c', + 'openssl/providers/common/der/der_slh_dsa_key.c', 'openssl/providers/common/provider_ctx.c', 'openssl/providers/common/provider_err.c', 'openssl/providers/implementations/ciphers/ciphercommon.c', @@ -262,7 +305,7 @@ 'openssl/providers/implementations/ciphers/ciphercommon_gcm_hw.c', 'openssl/providers/implementations/ciphers/ciphercommon_hw.c', 'openssl/providers/implementations/digests/digestcommon.c', - 'openssl/ssl/record/tls_pad.c', + 'openssl/ssl/record/methods/tls_pad.c', 'openssl/providers/fips/fips_entry.c', ], @@ -280,6 +323,7 @@ './config/archs/linux-elf/asm/crypto/des/crypt586.S', './config/archs/linux-elf/asm/crypto/des/des-586.S', './config/archs/linux-elf/asm/crypto/ec/ecp_nistz256-x86.S', + './config/archs/linux-elf/asm/crypto/params_idx.c', './config/archs/linux-elf/asm/crypto/x86cpuid.S', './config/archs/linux-elf/asm/crypto/md5/md5-586.S', './config/archs/linux-elf/asm/crypto/modes/ghash-x86.S', @@ -296,7 +340,9 @@ './config/archs/linux-elf/asm/providers/common/der/der_dsa_gen.c', './config/archs/linux-elf/asm/providers/common/der/der_ec_gen.c', './config/archs/linux-elf/asm/providers/common/der/der_ecx_gen.c', + './config/archs/linux-elf/asm/providers/common/der/der_ml_dsa_gen.c', './config/archs/linux-elf/asm/providers/common/der/der_rsa_gen.c', + './config/archs/linux-elf/asm/providers/common/der/der_slh_dsa_gen.c', './config/archs/linux-elf/asm/providers/common/der/der_wrap_gen.c', './config/archs/linux-elf/asm/providers/legacy.ld', './config/archs/linux-elf/asm/providers/fips.ld', diff --git a/deps/openssl/config/archs/linux-elf/asm/openssl.gypi b/deps/openssl/config/archs/linux-elf/asm/openssl.gypi index c782453da24f90..b3f4737899ee99 100644 --- a/deps/openssl/config/archs/linux-elf/asm/openssl.gypi +++ b/deps/openssl/config/archs/linux-elf/asm/openssl.gypi @@ -7,14 +7,15 @@ 'openssl/ssl/d1_srtp.c', 'openssl/ssl/methods.c', 'openssl/ssl/pqueue.c', + 'openssl/ssl/priority_queue.c', 'openssl/ssl/s3_enc.c', 'openssl/ssl/s3_lib.c', 'openssl/ssl/s3_msg.c', 'openssl/ssl/ssl_asn1.c', 'openssl/ssl/ssl_cert.c', + 'openssl/ssl/ssl_cert_comp.c', 'openssl/ssl/ssl_ciph.c', 'openssl/ssl/ssl_conf.c', - 'openssl/ssl/ssl_err.c', 'openssl/ssl/ssl_err_legacy.c', 'openssl/ssl/ssl_init.c', 'openssl/ssl/ssl_lib.c', @@ -31,12 +32,60 @@ 'openssl/ssl/tls13_enc.c', 'openssl/ssl/tls_depr.c', 'openssl/ssl/tls_srp.c', - 'openssl/ssl/record/dtls1_bitmap.c', + 'openssl/ssl/quic/cc_newreno.c', + 'openssl/ssl/quic/json_enc.c', + 'openssl/ssl/quic/qlog.c', + 'openssl/ssl/quic/qlog_event_helpers.c', + 'openssl/ssl/quic/quic_ackm.c', + 'openssl/ssl/quic/quic_cfq.c', + 'openssl/ssl/quic/quic_channel.c', + 'openssl/ssl/quic/quic_demux.c', + 'openssl/ssl/quic/quic_engine.c', + 'openssl/ssl/quic/quic_fc.c', + 'openssl/ssl/quic/quic_fifd.c', + 'openssl/ssl/quic/quic_impl.c', + 'openssl/ssl/quic/quic_lcidm.c', + 'openssl/ssl/quic/quic_method.c', + 'openssl/ssl/quic/quic_obj.c', + 'openssl/ssl/quic/quic_port.c', + 'openssl/ssl/quic/quic_rcidm.c', + 'openssl/ssl/quic/quic_reactor.c', + 'openssl/ssl/quic/quic_reactor_wait_ctx.c', + 'openssl/ssl/quic/quic_record_rx.c', + 'openssl/ssl/quic/quic_record_shared.c', + 'openssl/ssl/quic/quic_record_tx.c', + 'openssl/ssl/quic/quic_record_util.c', + 'openssl/ssl/quic/quic_rstream.c', + 'openssl/ssl/quic/quic_rx_depack.c', + 'openssl/ssl/quic/quic_sf_list.c', + 'openssl/ssl/quic/quic_srt_gen.c', + 'openssl/ssl/quic/quic_srtm.c', + 'openssl/ssl/quic/quic_sstream.c', + 'openssl/ssl/quic/quic_statm.c', + 'openssl/ssl/quic/quic_stream_map.c', + 'openssl/ssl/quic/quic_thread_assist.c', + 'openssl/ssl/quic/quic_tls.c', + 'openssl/ssl/quic/quic_tls_api.c', + 'openssl/ssl/quic/quic_trace.c', + 'openssl/ssl/quic/quic_tserver.c', + 'openssl/ssl/quic/quic_txp.c', + 'openssl/ssl/quic/quic_txpim.c', + 'openssl/ssl/quic/quic_types.c', + 'openssl/ssl/quic/quic_wire.c', + 'openssl/ssl/quic/quic_wire_pkt.c', + 'openssl/ssl/quic/uint_set.c', 'openssl/ssl/record/rec_layer_d1.c', 'openssl/ssl/record/rec_layer_s3.c', - 'openssl/ssl/record/ssl3_buffer.c', - 'openssl/ssl/record/ssl3_record.c', - 'openssl/ssl/record/ssl3_record_tls13.c', + 'openssl/ssl/record/methods/dtls_meth.c', + 'openssl/ssl/record/methods/ssl3_meth.c', + 'openssl/ssl/record/methods/tls13_meth.c', + 'openssl/ssl/record/methods/tls1_meth.c', + 'openssl/ssl/record/methods/tls_common.c', + 'openssl/ssl/record/methods/tls_multib.c', + 'openssl/ssl/record/methods/tlsany_meth.c', + 'openssl/ssl/rio/poll_builder.c', + 'openssl/ssl/rio/poll_immediate.c', + 'openssl/ssl/rio/rio_notifier.c', 'openssl/ssl/statem/extensions.c', 'openssl/ssl/statem/extensions_clnt.c', 'openssl/ssl/statem/extensions_cust.c', @@ -147,6 +196,7 @@ 'openssl/crypto/bio/bss_conn.c', 'openssl/crypto/bio/bss_core.c', 'openssl/crypto/bio/bss_dgram.c', + 'openssl/crypto/bio/bss_dgram_pair.c', 'openssl/crypto/bio/bss_fd.c', 'openssl/crypto/bio/bss_file.c', 'openssl/crypto/bio/bss_log.c', @@ -202,6 +252,7 @@ 'openssl/crypto/cmp/cmp_client.c', 'openssl/crypto/cmp/cmp_ctx.c', 'openssl/crypto/cmp/cmp_err.c', + 'openssl/crypto/cmp/cmp_genm.c', 'openssl/crypto/cmp/cmp_hdr.c', 'openssl/crypto/cmp/cmp_http.c', 'openssl/crypto/cmp/cmp_msg.c', @@ -376,7 +427,9 @@ 'openssl/crypto/err/err_all.c', 'openssl/crypto/err/err_all_legacy.c', 'openssl/crypto/err/err_blocks.c', + 'openssl/crypto/err/err_mark.c', 'openssl/crypto/err/err_prn.c', + 'openssl/crypto/err/err_save.c', 'openssl/crypto/ess/ess_asn1.c', 'openssl/crypto/ess/ess_err.c', 'openssl/crypto/ess/ess_lib.c', @@ -459,7 +512,9 @@ 'openssl/crypto/evp/pmeth_check.c', 'openssl/crypto/evp/pmeth_gn.c', 'openssl/crypto/evp/pmeth_lib.c', + 'openssl/crypto/evp/s_lib.c', 'openssl/crypto/evp/signature.c', + 'openssl/crypto/evp/skeymgmt_meth.c', 'openssl/crypto/ffc/ffc_backend.c', 'openssl/crypto/ffc/ffc_dh.c', 'openssl/crypto/ffc/ffc_key_generate.c', @@ -467,7 +522,11 @@ 'openssl/crypto/ffc/ffc_params.c', 'openssl/crypto/ffc/ffc_params_generate.c', 'openssl/crypto/ffc/ffc_params_validate.c', + 'openssl/crypto/hashtable/hashfunc.c', + 'openssl/crypto/hashtable/hashtable.c', 'openssl/crypto/hmac/hmac.c', + 'openssl/crypto/hpke/hpke.c', + 'openssl/crypto/hpke/hpke_util.c', 'openssl/crypto/http/http_client.c', 'openssl/crypto/http/http_err.c', 'openssl/crypto/http/http_lib.c', @@ -481,6 +540,7 @@ 'openssl/crypto/lhash/lhash.c', 'openssl/crypto/asn1_dsa.c', 'openssl/crypto/bsearch.c', + 'openssl/crypto/comp_methods.c', 'openssl/crypto/context.c', 'openssl/crypto/core_algorithm.c', 'openssl/crypto/core_fetch.c', @@ -490,10 +550,13 @@ 'openssl/crypto/cryptlib.c', 'openssl/crypto/ctype.c', 'openssl/crypto/cversion.c', + 'openssl/crypto/defaults.c', 'openssl/crypto/der_writer.c', + 'openssl/crypto/deterministic_nonce.c', 'openssl/crypto/ebcdic.c', 'openssl/crypto/ex_data.c', 'openssl/crypto/getenv.c', + 'openssl/crypto/indicator_core.c', 'openssl/crypto/info.c', 'openssl/crypto/init.c', 'openssl/crypto/initthread.c', @@ -517,12 +580,16 @@ 'openssl/crypto/provider_core.c', 'openssl/crypto/provider_predefined.c', 'openssl/crypto/punycode.c', + 'openssl/crypto/quic_vlint.c', 'openssl/crypto/self_test_core.c', + 'openssl/crypto/sleep.c', 'openssl/crypto/sparse_array.c', + 'openssl/crypto/ssl_err.c', 'openssl/crypto/threads_lib.c', 'openssl/crypto/threads_none.c', 'openssl/crypto/threads_pthread.c', 'openssl/crypto/threads_win.c', + 'openssl/crypto/time.c', 'openssl/crypto/trace.c', 'openssl/crypto/uid.c', 'openssl/crypto/md4/md4_dgst.c', @@ -532,6 +599,15 @@ 'openssl/crypto/md5/md5_sha1.c', 'openssl/crypto/mdc2/mdc2_one.c', 'openssl/crypto/mdc2/mdc2dgst.c', + 'openssl/crypto/ml_dsa/ml_dsa_encoders.c', + 'openssl/crypto/ml_dsa/ml_dsa_key.c', + 'openssl/crypto/ml_dsa/ml_dsa_key_compress.c', + 'openssl/crypto/ml_dsa/ml_dsa_matrix.c', + 'openssl/crypto/ml_dsa/ml_dsa_ntt.c', + 'openssl/crypto/ml_dsa/ml_dsa_params.c', + 'openssl/crypto/ml_dsa/ml_dsa_sample.c', + 'openssl/crypto/ml_dsa/ml_dsa_sign.c', + 'openssl/crypto/ml_kem/ml_kem.c', 'openssl/crypto/modes/cbc128.c', 'openssl/crypto/modes/ccm128.c', 'openssl/crypto/modes/cfb128.c', @@ -543,6 +619,7 @@ 'openssl/crypto/modes/siv128.c', 'openssl/crypto/modes/wrap128.c', 'openssl/crypto/modes/xts128.c', + 'openssl/crypto/modes/xts128gb.c', 'openssl/crypto/objects/o_names.c', 'openssl/crypto/objects/obj_dat.c', 'openssl/crypto/objects/obj_err.c', @@ -606,6 +683,7 @@ 'openssl/crypto/rand/rand_lib.c', 'openssl/crypto/rand/rand_meth.c', 'openssl/crypto/rand/rand_pool.c', + 'openssl/crypto/rand/rand_uniform.c', 'openssl/crypto/rand/randfile.c', 'openssl/crypto/rc2/rc2_cbc.c', 'openssl/crypto/rc2/rc2_ecb.c', @@ -652,6 +730,16 @@ 'openssl/crypto/sha/sha3.c', 'openssl/crypto/sha/sha512.c', 'openssl/crypto/siphash/siphash.c', + 'openssl/crypto/slh_dsa/slh_adrs.c', + 'openssl/crypto/slh_dsa/slh_dsa.c', + 'openssl/crypto/slh_dsa/slh_dsa_hash_ctx.c', + 'openssl/crypto/slh_dsa/slh_dsa_key.c', + 'openssl/crypto/slh_dsa/slh_fors.c', + 'openssl/crypto/slh_dsa/slh_hash.c', + 'openssl/crypto/slh_dsa/slh_hypertree.c', + 'openssl/crypto/slh_dsa/slh_params.c', + 'openssl/crypto/slh_dsa/slh_wots.c', + 'openssl/crypto/slh_dsa/slh_xmss.c', 'openssl/crypto/sm2/sm2_crypt.c', 'openssl/crypto/sm2/sm2_err.c', 'openssl/crypto/sm2/sm2_key.c', @@ -669,6 +757,12 @@ 'openssl/crypto/store/store_register.c', 'openssl/crypto/store/store_result.c', 'openssl/crypto/store/store_strings.c', + 'openssl/crypto/thread/arch/thread_none.c', + 'openssl/crypto/thread/arch/thread_posix.c', + 'openssl/crypto/thread/arch/thread_win.c', + 'openssl/crypto/thread/api.c', + 'openssl/crypto/thread/arch.c', + 'openssl/crypto/thread/internal.c', 'openssl/crypto/ts/ts_asn1.c', 'openssl/crypto/ts/ts_conf.c', 'openssl/crypto/ts/ts_err.c', @@ -697,14 +791,22 @@ 'openssl/crypto/x509/pcy_map.c', 'openssl/crypto/x509/pcy_node.c', 'openssl/crypto/x509/pcy_tree.c', + 'openssl/crypto/x509/t_acert.c', 'openssl/crypto/x509/t_crl.c', 'openssl/crypto/x509/t_req.c', 'openssl/crypto/x509/t_x509.c', + 'openssl/crypto/x509/v3_aaa.c', + 'openssl/crypto/x509/v3_ac_tgt.c', 'openssl/crypto/x509/v3_addr.c', 'openssl/crypto/x509/v3_admis.c', 'openssl/crypto/x509/v3_akeya.c', 'openssl/crypto/x509/v3_akid.c', 'openssl/crypto/x509/v3_asid.c', + 'openssl/crypto/x509/v3_attrdesc.c', + 'openssl/crypto/x509/v3_attrmap.c', + 'openssl/crypto/x509/v3_audit_id.c', + 'openssl/crypto/x509/v3_authattid.c', + 'openssl/crypto/x509/v3_battcons.c', 'openssl/crypto/x509/v3_bcons.c', 'openssl/crypto/x509/v3_bitst.c', 'openssl/crypto/x509/v3_conf.c', @@ -713,12 +815,17 @@ 'openssl/crypto/x509/v3_enum.c', 'openssl/crypto/x509/v3_extku.c', 'openssl/crypto/x509/v3_genn.c', + 'openssl/crypto/x509/v3_group_ac.c', 'openssl/crypto/x509/v3_ia5.c', + 'openssl/crypto/x509/v3_ind_iss.c', 'openssl/crypto/x509/v3_info.c', 'openssl/crypto/x509/v3_int.c', + 'openssl/crypto/x509/v3_iobo.c', 'openssl/crypto/x509/v3_ist.c', 'openssl/crypto/x509/v3_lib.c', 'openssl/crypto/x509/v3_ncons.c', + 'openssl/crypto/x509/v3_no_ass.c', + 'openssl/crypto/x509/v3_no_rev_avail.c', 'openssl/crypto/x509/v3_pci.c', 'openssl/crypto/x509/v3_pcia.c', 'openssl/crypto/x509/v3_pcons.c', @@ -726,13 +833,20 @@ 'openssl/crypto/x509/v3_pmaps.c', 'openssl/crypto/x509/v3_prn.c', 'openssl/crypto/x509/v3_purp.c', + 'openssl/crypto/x509/v3_rolespec.c', 'openssl/crypto/x509/v3_san.c', + 'openssl/crypto/x509/v3_sda.c', + 'openssl/crypto/x509/v3_single_use.c', 'openssl/crypto/x509/v3_skid.c', + 'openssl/crypto/x509/v3_soa_id.c', 'openssl/crypto/x509/v3_sxnet.c', + 'openssl/crypto/x509/v3_timespec.c', 'openssl/crypto/x509/v3_tlsf.c', + 'openssl/crypto/x509/v3_usernotice.c', 'openssl/crypto/x509/v3_utf8.c', 'openssl/crypto/x509/v3_utl.c', 'openssl/crypto/x509/v3err.c', + 'openssl/crypto/x509/x509_acert.c', 'openssl/crypto/x509/x509_att.c', 'openssl/crypto/x509/x509_cmp.c', 'openssl/crypto/x509/x509_d2.c', @@ -750,6 +864,7 @@ 'openssl/crypto/x509/x509_v3.c', 'openssl/crypto/x509/x509_vfy.c', 'openssl/crypto/x509/x509_vpm.c', + 'openssl/crypto/x509/x509aset.c', 'openssl/crypto/x509/x509cset.c', 'openssl/crypto/x509/x509name.c', 'openssl/crypto/x509/x509rset.c', @@ -759,6 +874,7 @@ 'openssl/crypto/x509/x_attrib.c', 'openssl/crypto/x509/x_crl.c', 'openssl/crypto/x509/x_exten.c', + 'openssl/crypto/x509/x_ietfatt.c', 'openssl/crypto/x509/x_name.c', 'openssl/crypto/x509/x_pubkey.c', 'openssl/crypto/x509/x_req.c', @@ -790,6 +906,9 @@ 'openssl/providers/implementations/ciphers/cipher_aes_ccm_hw.c', 'openssl/providers/implementations/ciphers/cipher_aes_gcm.c', 'openssl/providers/implementations/ciphers/cipher_aes_gcm_hw.c', + 'openssl/providers/implementations/ciphers/cipher_aes_gcm_siv.c', + 'openssl/providers/implementations/ciphers/cipher_aes_gcm_siv_hw.c', + 'openssl/providers/implementations/ciphers/cipher_aes_gcm_siv_polyval.c', 'openssl/providers/implementations/ciphers/cipher_aes_hw.c', 'openssl/providers/implementations/ciphers/cipher_aes_ocb.c', 'openssl/providers/implementations/ciphers/cipher_aes_ocb_hw.c', @@ -814,7 +933,13 @@ 'openssl/providers/implementations/ciphers/cipher_cts.c', 'openssl/providers/implementations/ciphers/cipher_null.c', 'openssl/providers/implementations/ciphers/cipher_sm4.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_ccm.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_ccm_hw.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_gcm.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_gcm_hw.c', 'openssl/providers/implementations/ciphers/cipher_sm4_hw.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_xts.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_xts_hw.c', 'openssl/providers/implementations/ciphers/cipher_tdes.c', 'openssl/providers/implementations/ciphers/cipher_tdes_common.c', 'openssl/providers/implementations/ciphers/cipher_tdes_default.c', @@ -843,11 +968,16 @@ 'openssl/providers/implementations/encode_decode/encode_key2ms.c', 'openssl/providers/implementations/encode_decode/encode_key2text.c', 'openssl/providers/implementations/encode_decode/endecoder_common.c', + 'openssl/providers/implementations/encode_decode/ml_common_codecs.c', + 'openssl/providers/implementations/encode_decode/ml_dsa_codecs.c', + 'openssl/providers/implementations/encode_decode/ml_kem_codecs.c', 'openssl/providers/implementations/exchange/dh_exch.c', 'openssl/providers/implementations/exchange/ecdh_exch.c', 'openssl/providers/implementations/exchange/ecx_exch.c', 'openssl/providers/implementations/exchange/kdf_exch.c', + 'openssl/providers/implementations/kdfs/argon2.c', 'openssl/providers/implementations/kdfs/hkdf.c', + 'openssl/providers/implementations/kdfs/hmacdrbg_kdf.c', 'openssl/providers/implementations/kdfs/kbkdf.c', 'openssl/providers/implementations/kdfs/krb5kdf.c', 'openssl/providers/implementations/kdfs/pbkdf2.c', @@ -858,6 +988,11 @@ 'openssl/providers/implementations/kdfs/sskdf.c', 'openssl/providers/implementations/kdfs/tls1_prf.c', 'openssl/providers/implementations/kdfs/x942kdf.c', + 'openssl/providers/implementations/kem/ec_kem.c', + 'openssl/providers/implementations/kem/ecx_kem.c', + 'openssl/providers/implementations/kem/kem_util.c', + 'openssl/providers/implementations/kem/ml_kem_kem.c', + 'openssl/providers/implementations/kem/mlx_kem.c', 'openssl/providers/implementations/kem/rsa_kem.c', 'openssl/providers/implementations/keymgmt/dh_kmgmt.c', 'openssl/providers/implementations/keymgmt/dsa_kmgmt.c', @@ -865,7 +1000,11 @@ 'openssl/providers/implementations/keymgmt/ecx_kmgmt.c', 'openssl/providers/implementations/keymgmt/kdf_legacy_kmgmt.c', 'openssl/providers/implementations/keymgmt/mac_legacy_kmgmt.c', + 'openssl/providers/implementations/keymgmt/ml_dsa_kmgmt.c', + 'openssl/providers/implementations/keymgmt/ml_kem_kmgmt.c', + 'openssl/providers/implementations/keymgmt/mlx_kmgmt.c', 'openssl/providers/implementations/keymgmt/rsa_kmgmt.c', + 'openssl/providers/implementations/keymgmt/slh_dsa_kmgmt.c', 'openssl/providers/implementations/macs/blake2b_mac.c', 'openssl/providers/implementations/macs/blake2s_mac.c', 'openssl/providers/implementations/macs/cmac_prov.c', @@ -874,12 +1013,12 @@ 'openssl/providers/implementations/macs/kmac_prov.c', 'openssl/providers/implementations/macs/poly1305_prov.c', 'openssl/providers/implementations/macs/siphash_prov.c', - 'openssl/providers/implementations/rands/crngt.c', 'openssl/providers/implementations/rands/drbg.c', 'openssl/providers/implementations/rands/drbg_ctr.c', 'openssl/providers/implementations/rands/drbg_hash.c', 'openssl/providers/implementations/rands/drbg_hmac.c', 'openssl/providers/implementations/rands/seed_src.c', + 'openssl/providers/implementations/rands/seed_src_jitter.c', 'openssl/providers/implementations/rands/test_rng.c', 'openssl/providers/implementations/rands/seeding/rand_cpu_x86.c', 'openssl/providers/implementations/rands/seeding/rand_tsc.c', @@ -889,17 +1028,23 @@ 'openssl/providers/implementations/signature/ecdsa_sig.c', 'openssl/providers/implementations/signature/eddsa_sig.c', 'openssl/providers/implementations/signature/mac_legacy_sig.c', + 'openssl/providers/implementations/signature/ml_dsa_sig.c', 'openssl/providers/implementations/signature/rsa_sig.c', + 'openssl/providers/implementations/signature/slh_dsa_sig.c', 'openssl/providers/implementations/signature/sm2_sig.c', + 'openssl/providers/implementations/skeymgmt/aes_skmgmt.c', + 'openssl/providers/implementations/skeymgmt/generic.c', 'openssl/providers/implementations/storemgmt/file_store.c', 'openssl/providers/implementations/storemgmt/file_store_any2obj.c', - 'openssl/ssl/s3_cbc.c', + 'openssl/ssl/record/methods/ssl3_cbc.c', 'openssl/providers/common/der/der_dsa_key.c', 'openssl/providers/common/der/der_dsa_sig.c', 'openssl/providers/common/der/der_ec_key.c', 'openssl/providers/common/der/der_ec_sig.c', 'openssl/providers/common/der/der_ecx_key.c', + 'openssl/providers/common/der/der_ml_dsa_key.c', 'openssl/providers/common/der/der_rsa_key.c', + 'openssl/providers/common/der/der_slh_dsa_key.c', 'openssl/providers/common/provider_ctx.c', 'openssl/providers/common/provider_err.c', 'openssl/providers/implementations/ciphers/ciphercommon.c', @@ -910,7 +1055,7 @@ 'openssl/providers/implementations/ciphers/ciphercommon_gcm_hw.c', 'openssl/providers/implementations/ciphers/ciphercommon_hw.c', 'openssl/providers/implementations/digests/digestcommon.c', - 'openssl/ssl/record/tls_pad.c', + 'openssl/ssl/record/methods/tls_pad.c', 'openssl/providers/implementations/ciphers/cipher_blowfish.c', 'openssl/providers/implementations/ciphers/cipher_blowfish_hw.c', 'openssl/providers/implementations/ciphers/cipher_cast5.c', @@ -935,6 +1080,7 @@ 'openssl/providers/implementations/digests/ripemd_prov.c', 'openssl/providers/implementations/digests/wp_prov.c', 'openssl/providers/implementations/kdfs/pbkdf1.c', + 'openssl/providers/implementations/kdfs/pvkkdf.c', 'openssl/providers/prov_running.c', 'openssl/providers/legacyprov.c', ], @@ -952,6 +1098,7 @@ './config/archs/linux-elf/asm/crypto/des/crypt586.S', './config/archs/linux-elf/asm/crypto/des/des-586.S', './config/archs/linux-elf/asm/crypto/ec/ecp_nistz256-x86.S', + './config/archs/linux-elf/asm/crypto/params_idx.c', './config/archs/linux-elf/asm/crypto/x86cpuid.S', './config/archs/linux-elf/asm/crypto/md5/md5-586.S', './config/archs/linux-elf/asm/crypto/modes/ghash-x86.S', @@ -968,7 +1115,9 @@ './config/archs/linux-elf/asm/providers/common/der/der_dsa_gen.c', './config/archs/linux-elf/asm/providers/common/der/der_ec_gen.c', './config/archs/linux-elf/asm/providers/common/der/der_ecx_gen.c', + './config/archs/linux-elf/asm/providers/common/der/der_ml_dsa_gen.c', './config/archs/linux-elf/asm/providers/common/der/der_rsa_gen.c', + './config/archs/linux-elf/asm/providers/common/der/der_slh_dsa_gen.c', './config/archs/linux-elf/asm/providers/common/der/der_wrap_gen.c', './config/archs/linux-elf/asm/providers/legacy.ld', './config/archs/linux-elf/asm/providers/fips.ld', diff --git a/deps/openssl/config/archs/linux-elf/asm/providers/common/der/der_ml_dsa_gen.c b/deps/openssl/config/archs/linux-elf/asm/providers/common/der/der_ml_dsa_gen.c new file mode 100644 index 00000000000000..4a8a113a268578 --- /dev/null +++ b/deps/openssl/config/archs/linux-elf/asm/providers/common/der/der_ml_dsa_gen.c @@ -0,0 +1,37 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from providers/common/der/der_ml_dsa_gen.c.in + * + * Copyright 2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include "prov/der_ml_dsa.h" + +/* Well known OIDs precompiled */ + +/* + * id-ml-dsa-44 OBJECT IDENTIFIER ::= { sigAlgs 17 } + */ +const unsigned char ossl_der_oid_id_ml_dsa_44[DER_OID_SZ_id_ml_dsa_44] = { + DER_OID_V_id_ml_dsa_44 +}; + +/* + * id-ml-dsa-65 OBJECT IDENTIFIER ::= { sigAlgs 18 } + */ +const unsigned char ossl_der_oid_id_ml_dsa_65[DER_OID_SZ_id_ml_dsa_65] = { + DER_OID_V_id_ml_dsa_65 +}; + +/* + * id-ml-dsa-87 OBJECT IDENTIFIER ::= { sigAlgs 19 } + */ +const unsigned char ossl_der_oid_id_ml_dsa_87[DER_OID_SZ_id_ml_dsa_87] = { + DER_OID_V_id_ml_dsa_87 +}; + diff --git a/deps/openssl/config/archs/linux-elf/asm/providers/common/der/der_slh_dsa_gen.c b/deps/openssl/config/archs/linux-elf/asm/providers/common/der/der_slh_dsa_gen.c new file mode 100644 index 00000000000000..1419a9515097dd --- /dev/null +++ b/deps/openssl/config/archs/linux-elf/asm/providers/common/der/der_slh_dsa_gen.c @@ -0,0 +1,100 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from providers/common/der/der_slh_dsa_gen.c.in + * + * Copyright 2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include "prov/der_slh_dsa.h" + +/* Well known OIDs precompiled */ + +/* + * id-slh-dsa-sha2-128s OBJECT IDENTIFIER ::= { sigAlgs 20 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_128s[DER_OID_SZ_id_slh_dsa_sha2_128s] = { + DER_OID_V_id_slh_dsa_sha2_128s +}; + +/* + * id-slh-dsa-sha2-128f OBJECT IDENTIFIER ::= { sigAlgs 21 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_128f[DER_OID_SZ_id_slh_dsa_sha2_128f] = { + DER_OID_V_id_slh_dsa_sha2_128f +}; + +/* + * id-slh-dsa-sha2-192s OBJECT IDENTIFIER ::= { sigAlgs 22 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_192s[DER_OID_SZ_id_slh_dsa_sha2_192s] = { + DER_OID_V_id_slh_dsa_sha2_192s +}; + +/* + * id-slh-dsa-sha2-192f OBJECT IDENTIFIER ::= { sigAlgs 23 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_192f[DER_OID_SZ_id_slh_dsa_sha2_192f] = { + DER_OID_V_id_slh_dsa_sha2_192f +}; + +/* + * id-slh-dsa-sha2-256s OBJECT IDENTIFIER ::= { sigAlgs 24 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_256s[DER_OID_SZ_id_slh_dsa_sha2_256s] = { + DER_OID_V_id_slh_dsa_sha2_256s +}; + +/* + * id-slh-dsa-sha2-256f OBJECT IDENTIFIER ::= { sigAlgs 25 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_256f[DER_OID_SZ_id_slh_dsa_sha2_256f] = { + DER_OID_V_id_slh_dsa_sha2_256f +}; + +/* + * id-slh-dsa-shake-128s OBJECT IDENTIFIER ::= { sigAlgs 26 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_128s[DER_OID_SZ_id_slh_dsa_shake_128s] = { + DER_OID_V_id_slh_dsa_shake_128s +}; + +/* + * id-slh-dsa-shake-128f OBJECT IDENTIFIER ::= { sigAlgs 27 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_128f[DER_OID_SZ_id_slh_dsa_shake_128f] = { + DER_OID_V_id_slh_dsa_shake_128f +}; + +/* + * id-slh-dsa-shake-192s OBJECT IDENTIFIER ::= { sigAlgs 28 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_192s[DER_OID_SZ_id_slh_dsa_shake_192s] = { + DER_OID_V_id_slh_dsa_shake_192s +}; + +/* + * id-slh-dsa-shake-192f OBJECT IDENTIFIER ::= { sigAlgs 29 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_192f[DER_OID_SZ_id_slh_dsa_shake_192f] = { + DER_OID_V_id_slh_dsa_shake_192f +}; + +/* + * id-slh-dsa-shake-256s OBJECT IDENTIFIER ::= { sigAlgs 30 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_256s[DER_OID_SZ_id_slh_dsa_shake_256s] = { + DER_OID_V_id_slh_dsa_shake_256s +}; + +/* + * id-slh-dsa-shake-256f OBJECT IDENTIFIER ::= { sigAlgs 31 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_256f[DER_OID_SZ_id_slh_dsa_shake_256f] = { + DER_OID_V_id_slh_dsa_shake_256f +}; + diff --git a/deps/openssl/config/archs/linux-elf/asm/providers/common/include/prov/der_ml_dsa.h b/deps/openssl/config/archs/linux-elf/asm/providers/common/include/prov/der_ml_dsa.h new file mode 100644 index 00000000000000..c55f780ab4527c --- /dev/null +++ b/deps/openssl/config/archs/linux-elf/asm/providers/common/include/prov/der_ml_dsa.h @@ -0,0 +1,40 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from providers/common/include/prov/der_ml_dsa.h.in + * + * Copyright 2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include "internal/der.h" +#include "crypto/ml_dsa.h" + +/* Well known OIDs precompiled */ + +/* + * id-ml-dsa-44 OBJECT IDENTIFIER ::= { sigAlgs 17 } + */ +#define DER_OID_V_id_ml_dsa_44 DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x11 +#define DER_OID_SZ_id_ml_dsa_44 11 +extern const unsigned char ossl_der_oid_id_ml_dsa_44[DER_OID_SZ_id_ml_dsa_44]; + +/* + * id-ml-dsa-65 OBJECT IDENTIFIER ::= { sigAlgs 18 } + */ +#define DER_OID_V_id_ml_dsa_65 DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x12 +#define DER_OID_SZ_id_ml_dsa_65 11 +extern const unsigned char ossl_der_oid_id_ml_dsa_65[DER_OID_SZ_id_ml_dsa_65]; + +/* + * id-ml-dsa-87 OBJECT IDENTIFIER ::= { sigAlgs 19 } + */ +#define DER_OID_V_id_ml_dsa_87 DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x13 +#define DER_OID_SZ_id_ml_dsa_87 11 +extern const unsigned char ossl_der_oid_id_ml_dsa_87[DER_OID_SZ_id_ml_dsa_87]; + + +int ossl_DER_w_algorithmIdentifier_ML_DSA(WPACKET *pkt, int tag, ML_DSA_KEY *key); diff --git a/deps/openssl/config/archs/linux-elf/asm/providers/common/include/prov/der_slh_dsa.h b/deps/openssl/config/archs/linux-elf/asm/providers/common/include/prov/der_slh_dsa.h new file mode 100644 index 00000000000000..760f8e7699be72 --- /dev/null +++ b/deps/openssl/config/archs/linux-elf/asm/providers/common/include/prov/der_slh_dsa.h @@ -0,0 +1,103 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from providers/common/include/prov/der_slh_dsa.h.in + * + * Copyright 2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include "internal/der.h" +#include "crypto/slh_dsa.h" + +/* Well known OIDs precompiled */ + +/* + * id-slh-dsa-sha2-128s OBJECT IDENTIFIER ::= { sigAlgs 20 } + */ +#define DER_OID_V_id_slh_dsa_sha2_128s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x14 +#define DER_OID_SZ_id_slh_dsa_sha2_128s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_128s[DER_OID_SZ_id_slh_dsa_sha2_128s]; + +/* + * id-slh-dsa-sha2-128f OBJECT IDENTIFIER ::= { sigAlgs 21 } + */ +#define DER_OID_V_id_slh_dsa_sha2_128f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x15 +#define DER_OID_SZ_id_slh_dsa_sha2_128f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_128f[DER_OID_SZ_id_slh_dsa_sha2_128f]; + +/* + * id-slh-dsa-sha2-192s OBJECT IDENTIFIER ::= { sigAlgs 22 } + */ +#define DER_OID_V_id_slh_dsa_sha2_192s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x16 +#define DER_OID_SZ_id_slh_dsa_sha2_192s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_192s[DER_OID_SZ_id_slh_dsa_sha2_192s]; + +/* + * id-slh-dsa-sha2-192f OBJECT IDENTIFIER ::= { sigAlgs 23 } + */ +#define DER_OID_V_id_slh_dsa_sha2_192f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x17 +#define DER_OID_SZ_id_slh_dsa_sha2_192f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_192f[DER_OID_SZ_id_slh_dsa_sha2_192f]; + +/* + * id-slh-dsa-sha2-256s OBJECT IDENTIFIER ::= { sigAlgs 24 } + */ +#define DER_OID_V_id_slh_dsa_sha2_256s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x18 +#define DER_OID_SZ_id_slh_dsa_sha2_256s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_256s[DER_OID_SZ_id_slh_dsa_sha2_256s]; + +/* + * id-slh-dsa-sha2-256f OBJECT IDENTIFIER ::= { sigAlgs 25 } + */ +#define DER_OID_V_id_slh_dsa_sha2_256f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x19 +#define DER_OID_SZ_id_slh_dsa_sha2_256f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_256f[DER_OID_SZ_id_slh_dsa_sha2_256f]; + +/* + * id-slh-dsa-shake-128s OBJECT IDENTIFIER ::= { sigAlgs 26 } + */ +#define DER_OID_V_id_slh_dsa_shake_128s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1A +#define DER_OID_SZ_id_slh_dsa_shake_128s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_128s[DER_OID_SZ_id_slh_dsa_shake_128s]; + +/* + * id-slh-dsa-shake-128f OBJECT IDENTIFIER ::= { sigAlgs 27 } + */ +#define DER_OID_V_id_slh_dsa_shake_128f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1B +#define DER_OID_SZ_id_slh_dsa_shake_128f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_128f[DER_OID_SZ_id_slh_dsa_shake_128f]; + +/* + * id-slh-dsa-shake-192s OBJECT IDENTIFIER ::= { sigAlgs 28 } + */ +#define DER_OID_V_id_slh_dsa_shake_192s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1C +#define DER_OID_SZ_id_slh_dsa_shake_192s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_192s[DER_OID_SZ_id_slh_dsa_shake_192s]; + +/* + * id-slh-dsa-shake-192f OBJECT IDENTIFIER ::= { sigAlgs 29 } + */ +#define DER_OID_V_id_slh_dsa_shake_192f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1D +#define DER_OID_SZ_id_slh_dsa_shake_192f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_192f[DER_OID_SZ_id_slh_dsa_shake_192f]; + +/* + * id-slh-dsa-shake-256s OBJECT IDENTIFIER ::= { sigAlgs 30 } + */ +#define DER_OID_V_id_slh_dsa_shake_256s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1E +#define DER_OID_SZ_id_slh_dsa_shake_256s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_256s[DER_OID_SZ_id_slh_dsa_shake_256s]; + +/* + * id-slh-dsa-shake-256f OBJECT IDENTIFIER ::= { sigAlgs 31 } + */ +#define DER_OID_V_id_slh_dsa_shake_256f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1F +#define DER_OID_SZ_id_slh_dsa_shake_256f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_256f[DER_OID_SZ_id_slh_dsa_shake_256f]; + + +int ossl_DER_w_algorithmIdentifier_SLH_DSA(WPACKET *pkt, int tag, SLH_DSA_KEY *key); diff --git a/deps/openssl/config/archs/linux-elf/asm_avx2/apps/progs.c b/deps/openssl/config/archs/linux-elf/asm_avx2/apps/progs.c index 43cef00799b86e..acc204a3e6e781 100644 --- a/deps/openssl/config/archs/linux-elf/asm_avx2/apps/progs.c +++ b/deps/openssl/config/archs/linux-elf/asm_avx2/apps/progs.c @@ -89,6 +89,7 @@ FUNCTION functions[] = { {FT_general, "s_time", s_time_main, s_time_options, NULL, NULL}, #endif {FT_general, "sess_id", sess_id_main, sess_id_options, NULL, NULL}, + {FT_general, "skeyutl", skeyutl_main, skeyutl_options, NULL, NULL}, {FT_general, "smime", smime_main, smime_options, NULL, NULL}, {FT_general, "speed", speed_main, speed_options, NULL, NULL}, {FT_general, "spkac", spkac_main, spkac_options, NULL, NULL}, @@ -225,9 +226,15 @@ FUNCTION functions[] = { {FT_cipher, "camellia-256-ecb", enc_main, enc_options, NULL}, #endif {FT_cipher, "base64", enc_main, enc_options, NULL}, -#ifdef ZLIB +#ifndef OPENSSL_NO_ZLIB {FT_cipher, "zlib", enc_main, enc_options, NULL}, #endif +#ifndef OPENSSL_NO_BROTLI + {FT_cipher, "brotli", enc_main, enc_options, NULL}, +#endif +#ifndef OPENSSL_NO_ZSTD + {FT_cipher, "zstd", enc_main, enc_options, NULL}, +#endif #ifndef OPENSSL_NO_DES {FT_cipher, "des", enc_main, enc_options, NULL}, #endif diff --git a/deps/openssl/config/archs/linux-elf/asm_avx2/configdata.pm b/deps/openssl/config/archs/linux-elf/asm_avx2/configdata.pm index d471b0f12c6e0c..0060eeb6a74ac4 100644 --- a/deps/openssl/config/archs/linux-elf/asm_avx2/configdata.pm +++ b/deps/openssl/config/archs/linux-elf/asm_avx2/configdata.pm @@ -18,6 +18,7 @@ our %config = ( "ARFLAGS" => [ "qc" ], + "ASFLAGS" => [], "CC" => "../config/fake_gcc.pl", "CFLAGS" => [ "-Wall -O3 -fomit-frame-pointer" @@ -30,14 +31,16 @@ our %config = ( "-Wall -O3" ], "FIPSKEY" => "f4556650ac31d35461610bac4ed81b1a181b2d8a43ea2854cbae22ca74560813", + "FIPS_VENDOR" => "OpenSSL FIPS Provider", "HASHBANGPERL" => "/usr/bin/env perl", "LDFLAGS" => [], "LDLIBS" => [], + "OBJCOPY" => "objcopy", "PERL" => "/usr/bin/perl", "RANLIB" => "ranlib", "RC" => "windres", "RCFLAGS" => [], - "api" => "30000", + "api" => "30500", "b32" => "1", "b64" => "0", "b64l" => "0", @@ -59,11 +62,13 @@ our %config = ( "doc/build.info", "test/build.info", "engines/build.info", + "exporters/build.info", "crypto/objects/build.info", "crypto/buffer/build.info", "crypto/bio/build.info", "crypto/stack/build.info", "crypto/lhash/build.info", + "crypto/hashtable/build.info", "crypto/rand/build.info", "crypto/evp/build.info", "crypto/asn1/build.info", @@ -81,6 +86,7 @@ our %config = ( "crypto/md5/build.info", "crypto/sha/build.info", "crypto/mdc2/build.info", + "crypto/ml_kem/build.info", "crypto/hmac/build.info", "crypto/ripemd/build.info", "crypto/whrlpool/build.info", @@ -122,11 +128,19 @@ our %config = ( "crypto/cmp/build.info", "crypto/encode_decode/build.info", "crypto/ffc/build.info", + "crypto/hpke/build.info", + "crypto/thread/build.info", + "crypto/ml_dsa/build.info", + "crypto/slh_dsa/build.info", + "ssl/record/build.info", + "ssl/rio/build.info", + "ssl/quic/build.info", "apps/lib/build.info", "providers/common/build.info", "providers/implementations/build.info", "providers/fips/build.info", "doc/man1/build.info", + "ssl/record/methods/build.info", "providers/common/der/build.info", "providers/implementations/digests/build.info", "providers/implementations/ciphers/build.info", @@ -140,6 +154,7 @@ our %config = ( "providers/implementations/encode_decode/build.info", "providers/implementations/storemgmt/build.info", "providers/implementations/kem/build.info", + "providers/implementations/skeymgmt/build.info", "providers/implementations/rands/seeding/build.info" ], "build_metadata" => "", @@ -159,7 +174,7 @@ our %config = ( ], "dynamic_engines" => "0", "ex_libs" => [], - "full_version" => "3.0.17", + "full_version" => "3.5.1", "includes" => [], "lflags" => [], "lib_defines" => [ @@ -168,37 +183,52 @@ our %config = ( "libdir" => "", "major" => "3", "makedep_scheme" => "gcc", - "minor" => "0", + "minor" => "5", "openssl_api_defines" => [ - "OPENSSL_CONFIGURED_API=30000" + "OPENSSL_CONFIGURED_API=30500" ], "openssl_feature_defines" => [ "OPENSSL_RAND_SEED_OS", "OPENSSL_THREADS", "OPENSSL_NO_AFALGENG", "OPENSSL_NO_ASAN", + "OPENSSL_NO_BROTLI", + "OPENSSL_NO_BROTLI_DYNAMIC", "OPENSSL_NO_COMP", "OPENSSL_NO_CRYPTO_MDEBUG", "OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE", + "OPENSSL_NO_DEMOS", "OPENSSL_NO_DEVCRYPTOENG", "OPENSSL_NO_EC_NISTP_64_GCC_128", "OPENSSL_NO_EGD", "OPENSSL_NO_EXTERNAL_TESTS", + "OPENSSL_NO_FIPS_JITTER", "OPENSSL_NO_FUZZ_AFL", "OPENSSL_NO_FUZZ_LIBFUZZER", + "OPENSSL_NO_H3DEMO", + "OPENSSL_NO_HQINTEROP", + "OPENSSL_NO_JITTER", "OPENSSL_NO_KTLS", "OPENSSL_NO_LOADERENG", "OPENSSL_NO_MD2", "OPENSSL_NO_MSAN", + "OPENSSL_NO_PIE", "OPENSSL_NO_RC5", "OPENSSL_NO_SCTP", "OPENSSL_NO_SSL3", "OPENSSL_NO_SSL3_METHOD", + "OPENSSL_NO_SSLKEYLOG", + "OPENSSL_NO_TFO", "OPENSSL_NO_TRACE", "OPENSSL_NO_UBSAN", "OPENSSL_NO_UNIT_TEST", "OPENSSL_NO_UPLINK", "OPENSSL_NO_WEAK_SSL_CIPHERS", + "OPENSSL_NO_WINSTORE", + "OPENSSL_NO_ZLIB", + "OPENSSL_NO_ZLIB_DYNAMIC", + "OPENSSL_NO_ZSTD", + "OPENSSL_NO_ZSTD_DYNAMIC", "OPENSSL_NO_DYNAMIC_ENGINE" ], "openssl_other_defines" => [ @@ -206,11 +236,11 @@ our %config = ( ], "openssl_sys_defines" => [], "openssldir" => "", - "options" => "enable-ssl-trace enable-fips no-afalgeng no-asan no-buildtest-c++ no-comp no-crypto-mdebug no-crypto-mdebug-backtrace no-devcryptoeng no-dynamic-engine no-ec_nistp_64_gcc_128 no-egd no-external-tests no-fuzz-afl no-fuzz-libfuzzer no-ktls no-loadereng no-md2 no-msan no-rc5 no-sctp no-shared no-ssl3 no-ssl3-method no-trace no-ubsan no-unit-test no-uplink no-weak-ssl-ciphers no-zlib no-zlib-dynamic", - "patch" => "17", + "options" => "enable-ssl-trace enable-fips no-afalgeng no-asan no-brotli no-brotli-dynamic no-buildtest-c++ no-comp no-crypto-mdebug no-crypto-mdebug-backtrace no-demos no-devcryptoeng no-dynamic-engine no-ec_nistp_64_gcc_128 no-egd no-external-tests no-fips-jitter no-fuzz-afl no-fuzz-libfuzzer no-h3demo no-hqinterop no-jitter no-ktls no-loadereng no-md2 no-msan no-pie no-rc5 no-sctp no-shared no-ssl3 no-ssl3-method no-sslkeylog no-tfo no-trace no-ubsan no-unit-test no-uplink no-weak-ssl-ciphers no-winstore no-zlib no-zlib-dynamic no-zstd no-zstd-dynamic", + "patch" => "1", "perl_archname" => "x86_64-linux-gnu-thread-multi", "perl_cmd" => "/usr/bin/perl", - "perl_version" => "5.38.2", + "perl_version" => "5.34.0", "perlargv" => [ "no-comp", "no-shared", @@ -240,6 +270,7 @@ our %config = ( "LDLIBS" => undef, "MT" => undef, "MTFLAGS" => undef, + "OBJCOPY" => undef, "OPENSSL_LOCAL_CONFIG_DIR" => undef, "PERL" => undef, "RANLIB" => undef, @@ -263,7 +294,7 @@ our %config = ( "shlib_version" => "3", "sourcedir" => ".", "target" => "linux-elf", - "version" => "3.0.17" + "version" => "3.5.1" ); our %target = ( "AR" => "ar", @@ -273,6 +304,7 @@ our %target = ( "CXX" => "g++", "CXXFLAGS" => "-Wall -O3", "HASHBANGPERL" => "/usr/bin/env perl", + "OBJCOPY" => "objcopy", "RANLIB" => "ranlib", "RC" => "windres", "_conf_fname_int" => [ @@ -283,6 +315,8 @@ our %target = ( "Configurations/shared-info.pl" ], "asm_arch" => "x86", + "bin_cflags" => "", + "bin_lflags" => "", "bn_ops" => "BN_LLONG", "build_file" => "Makefile", "build_scheme" => [ @@ -327,6 +361,8 @@ our %target = ( our @disablables = ( "acvp-tests", "afalgeng", + "apps", + "argon2", "aria", "asan", "asm", @@ -337,11 +373,14 @@ our @disablables = ( "autoload-config", "bf", "blake2", + "brotli", + "brotli-dynamic", "buildtest-c++", "bulk", "cached-fetch", "camellia", "capieng", + "winstore", "cast", "chacha", "cmac", @@ -350,11 +389,16 @@ our @disablables = ( "comp", "crypto-mdebug", "ct", + "default-thread-pool", + "demos", + "h3demo", + "hqinterop", "deprecated", "des", "devcryptoeng", "dgram", "dh", + "docs", "dsa", "dso", "dtls", @@ -364,6 +408,7 @@ our @disablables = ( "ec_nistp_64_gcc_128", "ecdh", "ecdsa", + "ecx", "egd", "engine", "err", @@ -371,10 +416,15 @@ our @disablables = ( "filenames", "fips", "fips-securitychecks", + "fips-post", + "fips-jitter", "fuzz-afl", "fuzz-libfuzzer", "gost", + "http", "idea", + "integrity-only-ciphers", + "jitter", "ktls", "legacy", "loadereng", @@ -382,6 +432,8 @@ our @disablables = ( "md2", "md4", "mdc2", + "ml-dsa", + "ml-kem", "module", "msan", "multiblock", @@ -390,10 +442,13 @@ our @disablables = ( "ocsp", "padlockeng", "pic", + "pie", "pinshared", "poly1305", "posix-io", "psk", + "quic", + "unstable-qlog", "rc2", "rc4", "rc5", @@ -407,7 +462,9 @@ our @disablables = ( "shared", "siphash", "siv", + "slh-dsa", "sm2", + "sm2-precomp", "sm3", "sm4", "sock", @@ -418,9 +475,13 @@ our @disablables = ( "ssl-trace", "static-engine", "stdio", + "sslkeylog", "tests", + "tfo", + "thread-pool", "threads", "tls", + "tls-deprecated-ec", "trace", "ts", "ubsan", @@ -431,6 +492,8 @@ our @disablables = ( "whirlpool", "zlib", "zlib-dynamic", + "zstd", + "zstd-dynamic", "ssl3", "ssl3-method", "tls1", @@ -451,33 +514,46 @@ our @disablables_int = ( our %disabled = ( "afalgeng" => "option", "asan" => "default", + "brotli" => "default", + "brotli-dynamic" => "default", "buildtest-c++" => "default", "comp" => "option", "crypto-mdebug" => "default", "crypto-mdebug-backtrace" => "default", + "demos" => "default", "devcryptoeng" => "default", "dynamic-engine" => "cascade", "ec_nistp_64_gcc_128" => "default", "egd" => "default", "external-tests" => "default", + "fips-jitter" => "default", "fuzz-afl" => "default", "fuzz-libfuzzer" => "default", + "h3demo" => "default", + "hqinterop" => "default", + "jitter" => "default", "ktls" => "default", "loadereng" => "cascade", "md2" => "default", "msan" => "default", + "pie" => "default", "rc5" => "default", "sctp" => "default", "shared" => "option", "ssl3" => "default", "ssl3-method" => "default", + "sslkeylog" => "default", + "tfo" => "default", "trace" => "default", "ubsan" => "default", "unit-test" => "default", "uplink" => "no uplink_arch", "weak-ssl-ciphers" => "default", + "winstore" => "not-windows", "zlib" => "default", - "zlib-dynamic" => "default" + "zlib-dynamic" => "default", + "zstd" => "default", + "zstd-dynamic" => "default" ); our %withargs = (); our %unified_info = ( @@ -703,6 +779,11 @@ our %unified_info = ( "pod" => "1" } }, + "doc/man1/openssl-skeyutl.pod" => { + "doc/man1/openssl-skeyutl.pod.in" => { + "pod" => "1" + } + }, "doc/man1/openssl-smime.pod" => { "doc/man1/openssl-smime.pod.in" => { "pod" => "1" @@ -760,6 +841,21 @@ our %unified_info = ( } }, "generate" => { + "exporters/OpenSSLConfig.cmake" => { + "exporter" => "cmake" + }, + "exporters/OpenSSLConfigVersion.cmake" => { + "exporter" => "cmake" + }, + "exporters/libcrypto.pc" => { + "exporter" => "pkg-config" + }, + "exporters/libssl.pc" => { + "exporter" => "pkg-config" + }, + "exporters/openssl.pc" => { + "exporter" => "pkg-config" + }, "include/openssl/configuration.h" => { "skip" => "1" } @@ -780,6 +876,9 @@ our %unified_info = ( "providers/liblegacy.a" => { "noinst" => "1" }, + "providers/libtemplate.a" => { + "noinst" => "1" + }, "test/libtestutil.a" => { "has_main" => "1", "noinst" => "1" @@ -797,6 +896,9 @@ our %unified_info = ( } }, "programs" => { + "fuzz/acert-test" => { + "noinst" => "1" + }, "fuzz/asn1-test" => { "noinst" => "1" }, @@ -827,9 +929,60 @@ our %unified_info = ( "fuzz/ct-test" => { "noinst" => "1" }, + "fuzz/decoder-test" => { + "noinst" => "1" + }, + "fuzz/dtlsclient-test" => { + "noinst" => "1" + }, + "fuzz/dtlsserver-test" => { + "noinst" => "1" + }, + "fuzz/hashtable-test" => { + "noinst" => "1" + }, + "fuzz/ml-dsa-test" => { + "noinst" => "1" + }, + "fuzz/ml-kem-test" => { + "noinst" => "1" + }, + "fuzz/pem-test" => { + "noinst" => "1" + }, + "fuzz/provider-test" => { + "noinst" => "1" + }, + "fuzz/punycode-test" => { + "noinst" => "1" + }, + "fuzz/quic-client-test" => { + "noinst" => "1" + }, + "fuzz/quic-lcidm-test" => { + "noinst" => "1" + }, + "fuzz/quic-rcidm-test" => { + "noinst" => "1" + }, + "fuzz/quic-server-test" => { + "noinst" => "1" + }, + "fuzz/quic-srtm-test" => { + "noinst" => "1" + }, "fuzz/server-test" => { "noinst" => "1" }, + "fuzz/slh-dsa-test" => { + "noinst" => "1" + }, + "fuzz/smime-test" => { + "noinst" => "1" + }, + "fuzz/v3name-test" => { + "noinst" => "1" + }, "fuzz/x509-test" => { "noinst" => "1" }, @@ -881,18 +1034,30 @@ our %unified_info = ( "test/bftest" => { "noinst" => "1" }, + "test/bio_addr_test" => { + "noinst" => "1" + }, + "test/bio_base64_test" => { + "noinst" => "1" + }, "test/bio_callback_test" => { "noinst" => "1" }, "test/bio_core_test" => { "noinst" => "1" }, + "test/bio_dgram_test" => { + "noinst" => "1" + }, "test/bio_enc_test" => { "noinst" => "1" }, "test/bio_memleak_test" => { "noinst" => "1" }, + "test/bio_meth_test" => { + "noinst" => "1" + }, "test/bio_prefix_text" => { "noinst" => "1" }, @@ -902,6 +1067,9 @@ our %unified_info = ( "test/bio_readbuffer_test" => { "noinst" => "1" }, + "test/bio_tfo_test" => { + "noinst" => "1" + }, "test/bioprinttest" => { "noinst" => "1" }, @@ -911,6 +1079,9 @@ our %unified_info = ( "test/bntest" => { "noinst" => "1" }, + "test/build_wincrypt_test" => { + "noinst" => "1" + }, "test/buildtest_c_aes" => { "noinst" => "1" }, @@ -926,6 +1097,9 @@ our %unified_info = ( "test/buildtest_c_buffer" => { "noinst" => "1" }, + "test/buildtest_c_byteorder" => { + "noinst" => "1" + }, "test/buildtest_c_camellia" => { "noinst" => "1" }, @@ -950,9 +1124,6 @@ our %unified_info = ( "test/buildtest_c_core_dispatch" => { "noinst" => "1" }, - "test/buildtest_c_core_names" => { - "noinst" => "1" - }, "test/buildtest_c_core_object" => { "noinst" => "1" }, @@ -977,6 +1148,9 @@ our %unified_info = ( "test/buildtest_c_e_os2" => { "noinst" => "1" }, + "test/buildtest_c_e_ostime" => { + "noinst" => "1" + }, "test/buildtest_c_ebcdic" => { "noinst" => "1" }, @@ -1004,12 +1178,18 @@ our %unified_info = ( "test/buildtest_c_hmac" => { "noinst" => "1" }, + "test/buildtest_c_hpke" => { + "noinst" => "1" + }, "test/buildtest_c_http" => { "noinst" => "1" }, "test/buildtest_c_idea" => { "noinst" => "1" }, + "test/buildtest_c_indicator" => { + "noinst" => "1" + }, "test/buildtest_c_kdf" => { "noinst" => "1" }, @@ -1025,6 +1205,9 @@ our %unified_info = ( "test/buildtest_c_mdc2" => { "noinst" => "1" }, + "test/buildtest_c_ml_kem" => { + "noinst" => "1" + }, "test/buildtest_c_modes" => { "noinst" => "1" }, @@ -1055,6 +1238,9 @@ our %unified_info = ( "test/buildtest_c_provider" => { "noinst" => "1" }, + "test/buildtest_c_quic" => { + "noinst" => "1" + }, "test/buildtest_c_rand" => { "noinst" => "1" }, @@ -1097,6 +1283,9 @@ our %unified_info = ( "test/buildtest_c_symhacks" => { "noinst" => "1" }, + "test/buildtest_c_thread" => { + "noinst" => "1" + }, "test/buildtest_c_tls1" => { "noinst" => "1" }, @@ -1112,6 +1301,12 @@ our %unified_info = ( "test/buildtest_c_whrlpool" => { "noinst" => "1" }, + "test/byteorder_test" => { + "noinst" => "1" + }, + "test/ca_internals_test" => { + "noinst" => "1" + }, "test/casttest" => { "noinst" => "1" }, @@ -1196,6 +1391,9 @@ our %unified_info = ( "test/danetest" => { "noinst" => "1" }, + "test/decoder_propq_test" => { + "noinst" => "1" + }, "test/defltfips_test" => { "noinst" => "1" }, @@ -1268,15 +1466,24 @@ our %unified_info = ( "test/evp_pkey_ctx_new_from_name" => { "noinst" => "1" }, + "test/evp_pkey_dhkem_test" => { + "noinst" => "1" + }, "test/evp_pkey_dparams_test" => { "noinst" => "1" }, "test/evp_pkey_provided_test" => { "noinst" => "1" }, + "test/evp_skey_test" => { + "noinst" => "1" + }, "test/evp_test" => { "noinst" => "1" }, + "test/evp_xof_test" => { + "noinst" => "1" + }, "test/exdatatest" => { "noinst" => "1" }, @@ -1304,6 +1511,9 @@ our %unified_info = ( "test/hmactest" => { "noinst" => "1" }, + "test/hpke_test" => { + "noinst" => "1" + }, "test/http_test" => { "noinst" => "1" }, @@ -1313,12 +1523,18 @@ our %unified_info = ( "test/igetest" => { "noinst" => "1" }, + "test/json_test" => { + "noinst" => "1" + }, "test/keymgmt_internal_test" => { "noinst" => "1" }, "test/lhash_test" => { "noinst" => "1" }, + "test/list_test" => { + "noinst" => "1" + }, "test/localetest" => { "noinst" => "1" }, @@ -1328,9 +1544,21 @@ our %unified_info = ( "test/mdc2test" => { "noinst" => "1" }, + "test/membio_test" => { + "noinst" => "1" + }, "test/memleaktest" => { "noinst" => "1" }, + "test/ml_dsa_test" => { + "noinst" => "1" + }, + "test/ml_kem_evp_extra_test" => { + "noinst" => "1" + }, + "test/ml_kem_internal_test" => { + "noinst" => "1" + }, "test/modes_internal_test" => { "noinst" => "1" }, @@ -1349,6 +1577,9 @@ our %unified_info = ( "test/packettest" => { "noinst" => "1" }, + "test/pairwise_fail_test" => { + "noinst" => "1" + }, "test/param_build_test" => { "noinst" => "1" }, @@ -1373,6 +1604,9 @@ our %unified_info = ( "test/pemtest" => { "noinst" => "1" }, + "test/pkcs12_api_test" => { + "noinst" => "1" + }, "test/pkcs12_format_test" => { "noinst" => "1" }, @@ -1388,6 +1622,9 @@ our %unified_info = ( "test/poly1305_internal_test" => { "noinst" => "1" }, + "test/priority_queue_test" => { + "noinst" => "1" + }, "test/property_test" => { "noinst" => "1" }, @@ -1397,6 +1634,9 @@ our %unified_info = ( "test/provfetchtest" => { "noinst" => "1" }, + "test/provider_default_search_path_test" => { + "noinst" => "1" + }, "test/provider_fallback_test" => { "noinst" => "1" }, @@ -1415,6 +1655,72 @@ our %unified_info = ( "test/punycode_test" => { "noinst" => "1" }, + "test/quic_ackm_test" => { + "noinst" => "1" + }, + "test/quic_cc_test" => { + "noinst" => "1" + }, + "test/quic_cfq_test" => { + "noinst" => "1" + }, + "test/quic_client_test" => { + "noinst" => "1" + }, + "test/quic_fc_test" => { + "noinst" => "1" + }, + "test/quic_fifd_test" => { + "noinst" => "1" + }, + "test/quic_lcidm_test" => { + "noinst" => "1" + }, + "test/quic_multistream_test" => { + "noinst" => "1" + }, + "test/quic_newcid_test" => { + "noinst" => "1" + }, + "test/quic_qlog_test" => { + "noinst" => "1" + }, + "test/quic_radix_test" => { + "noinst" => "1" + }, + "test/quic_rcidm_test" => { + "noinst" => "1" + }, + "test/quic_record_test" => { + "noinst" => "1" + }, + "test/quic_srt_gen_test" => { + "noinst" => "1" + }, + "test/quic_srtm_test" => { + "noinst" => "1" + }, + "test/quic_stream_test" => { + "noinst" => "1" + }, + "test/quic_tserver_test" => { + "noinst" => "1" + }, + "test/quic_txp_test" => { + "noinst" => "1" + }, + "test/quic_txpim_test" => { + "noinst" => "1" + }, + "test/quic_wire_test" => { + "noinst" => "1" + }, + "test/quicapitest" => { + "noinst" => "1" + }, + "test/quicfaultstest" => { + "noinst" => "1" + }, "test/rand_status_test" => { "noinst" => "1" }, @@ -1430,12 +1736,15 @@ our %unified_info = ( "test/rc5test" => { "noinst" => "1" }, - "test/rdrand_sanitytest" => { + "test/rdcpu_sanitytest" => { "noinst" => "1" }, "test/recordlentest" => { "noinst" => "1" }, + "test/rpktest" => { + "noinst" => "1" + }, "test/rsa_complex" => { "noinst" => "1" }, @@ -1448,6 +1757,12 @@ our %unified_info = ( "test/rsa_test" => { "noinst" => "1" }, + "test/rsa_x931_test" => { + "noinst" => "1" + }, + "test/safe_math_test" => { + "noinst" => "1" + }, "test/sanitytest" => { "noinst" => "1" }, @@ -1463,6 +1778,9 @@ our %unified_info = ( "test/siphash_internal_test" => { "noinst" => "1" }, + "test/slh_dsa_test" => { + "noinst" => "1" + }, "test/sm2_internal_test" => { "noinst" => "1" }, @@ -1484,6 +1802,9 @@ our %unified_info = ( "test/ssl_ctx_test" => { "noinst" => "1" }, + "test/ssl_handshake_rtt_test" => { + "noinst" => "1" + }, "test/ssl_old_test" => { "noinst" => "1" }, @@ -1505,12 +1826,18 @@ our %unified_info = ( "test/stack_test" => { "noinst" => "1" }, + "test/strtoultest" => { + "noinst" => "1" + }, "test/sysdefaulttest" => { "noinst" => "1" }, "test/test_test" => { "noinst" => "1" }, + "test/threadpool_test" => { + "noinst" => "1" + }, "test/threadstest" => { "noinst" => "1" }, @@ -1520,12 +1847,18 @@ our %unified_info = ( "test/time_offset_test" => { "noinst" => "1" }, + "test/time_test" => { + "noinst" => "1" + }, "test/tls13ccstest" => { "noinst" => "1" }, "test/tls13encryptiontest" => { "noinst" => "1" }, + "test/tls13groupselection_test" => { + "noinst" => "1" + }, "test/trace_api_test" => { "noinst" => "1" }, @@ -1553,6 +1886,9 @@ our %unified_info = ( "test/wpackettest" => { "noinst" => "1" }, + "test/x509_acert_test" => { + "noinst" => "1" + }, "test/x509_check_cert_pkey_test" => { "noinst" => "1" }, @@ -1562,6 +1898,15 @@ our %unified_info = ( "test/x509_internal_test" => { "noinst" => "1" }, + "test/x509_load_cert_file_test" => { + "noinst" => "1" + }, + "test/x509_req_test" => { + "noinst" => "1" + }, + "test/x509_test" => { + "noinst" => "1" + }, "test/x509_time_test" => { "noinst" => "1" }, @@ -1664,6 +2009,9 @@ our %unified_info = ( "MD5_ASM", "RC4_ASM" ], + "test/endecode_test" => [ + "STATIC_LEGACY" + ], "test/evp_extra_test" => [ "STATIC_LEGACY" ], @@ -1676,14 +2024,21 @@ our %unified_info = ( }, "depends" => { "" => [ + "OpenSSLConfigVersion.cmake", + "crypto/params_idx.c", + "exporters/OpenSSLConfigVersion.cmake", + "exporters/openssl.pc", "include/crypto/bn_conf.h", "include/crypto/dso_conf.h", + "include/internal/param_names.h", "include/openssl/asn1.h", "include/openssl/asn1t.h", "include/openssl/bio.h", "include/openssl/cmp.h", "include/openssl/cms.h", + "include/openssl/comp.h", "include/openssl/conf.h", + "include/openssl/core_names.h", "include/openssl/crmf.h", "include/openssl/crypto.h", "include/openssl/ct.h", @@ -1700,10 +2055,22 @@ our %unified_info = ( "include/openssl/ssl.h", "include/openssl/ui.h", "include/openssl/x509.h", + "include/openssl/x509_acert.h", "include/openssl/x509_vfy.h", "include/openssl/x509v3.h", + "openssl.pc", "test/provider_internal_test.cnf" ], + "OpenSSLConfig.cmake" => [ + "builddata.pm" + ], + "OpenSSLConfigVersion.cmake" => [ + "OpenSSLConfig.cmake", + "builddata.pm" + ], + "apps/ca_internals_test-bin-ca.o" => [ + "apps/progs.h" + ], "apps/lib/cmp_client_test-bin-cmp_mock_srv.o" => [ "apps/progs.h" ], @@ -1849,6 +2216,9 @@ our %unified_info = ( "apps/openssl-bin-sess_id.o" => [ "apps/progs.h" ], + "apps/openssl-bin-skeyutl.o" => [ + "apps/progs.h" + ], "apps/openssl-bin-smime.o" => [ "apps/progs.h" ], @@ -1937,6 +2307,9 @@ our %unified_info = ( "crypto/libcrypto-lib-info.o" => [ "crypto/buildinf.h" ], + "crypto/params_idx.c" => [ + "util/perl|OpenSSL/paramnames.pm" + ], "crypto/rc4/rc4-586.S" => [ "crypto/perlasm/x86asm.pl" ], @@ -2102,6 +2475,9 @@ our %unified_info = ( "doc/html/man1/openssl-sess_id.html" => [ "doc/man1/openssl-sess_id.pod" ], + "doc/html/man1/openssl-skeyutl.html" => [ + "doc/man1/openssl-skeyutl.pod" + ], "doc/html/man1/openssl-smime.html" => [ "doc/man1/openssl-smime.pod" ], @@ -2243,6 +2619,9 @@ our %unified_info = ( "doc/html/man3/BIO_get_ex_new_index.html" => [ "doc/man3/BIO_get_ex_new_index.pod" ], + "doc/html/man3/BIO_get_rpoll_descriptor.html" => [ + "doc/man3/BIO_get_rpoll_descriptor.pod" + ], "doc/html/man3/BIO_meth_new.html" => [ "doc/man3/BIO_meth_new.pod" ], @@ -2279,6 +2658,9 @@ our %unified_info = ( "doc/html/man3/BIO_s_datagram.html" => [ "doc/man3/BIO_s_datagram.pod" ], + "doc/html/man3/BIO_s_dgram_pair.html" => [ + "doc/man3/BIO_s_dgram_pair.pod" + ], "doc/html/man3/BIO_s_fd.html" => [ "doc/man3/BIO_s_fd.pod" ], @@ -2294,6 +2676,9 @@ our %unified_info = ( "doc/html/man3/BIO_s_socket.html" => [ "doc/man3/BIO_s_socket.pod" ], + "doc/html/man3/BIO_sendmmsg.html" => [ + "doc/man3/BIO_sendmmsg.pod" + ], "doc/html/man3/BIO_set_callback.html" => [ "doc/man3/BIO_set_callback.pod" ], @@ -2366,6 +2751,9 @@ our %unified_info = ( "doc/html/man3/BUF_MEM_new.html" => [ "doc/man3/BUF_MEM_new.pod" ], + "doc/html/man3/CMAC_CTX.html" => [ + "doc/man3/CMAC_CTX.pod" + ], "doc/html/man3/CMS_EncryptedData_decrypt.html" => [ "doc/man3/CMS_EncryptedData_decrypt.pod" ], @@ -2432,6 +2820,9 @@ our %unified_info = ( "doc/html/man3/CMS_verify_receipt.html" => [ "doc/man3/CMS_verify_receipt.pod" ], + "doc/html/man3/COMP_CTX_new.html" => [ + "doc/man3/COMP_CTX_new.pod" + ], "doc/html/man3/CONF_modules_free.html" => [ "doc/man3/CONF_modules_free.pod" ], @@ -2531,6 +2922,12 @@ our %unified_info = ( "doc/html/man3/DTLS_set_timer_cb.html" => [ "doc/man3/DTLS_set_timer_cb.pod" ], + "doc/html/man3/DTLSv1_get_timeout.html" => [ + "doc/man3/DTLSv1_get_timeout.pod" + ], + "doc/html/man3/DTLSv1_handle_timeout.html" => [ + "doc/man3/DTLSv1_handle_timeout.pod" + ], "doc/html/man3/DTLSv1_listen.html" => [ "doc/man3/DTLSv1_listen.pod" ], @@ -2669,6 +3066,9 @@ our %unified_info = ( "doc/html/man3/EVP_PKEY_CTX_get0_pkey.html" => [ "doc/man3/EVP_PKEY_CTX_get0_pkey.pod" ], + "doc/html/man3/EVP_PKEY_CTX_get_algor.html" => [ + "doc/man3/EVP_PKEY_CTX_get_algor.pod" + ], "doc/html/man3/EVP_PKEY_CTX_new.html" => [ "doc/man3/EVP_PKEY_CTX_new.pod" ], @@ -2786,6 +3186,12 @@ our %unified_info = ( "doc/html/man3/EVP_SIGNATURE.html" => [ "doc/man3/EVP_SIGNATURE.pod" ], + "doc/html/man3/EVP_SKEY.html" => [ + "doc/man3/EVP_SKEY.pod" + ], + "doc/html/man3/EVP_SKEYMGMT.html" => [ + "doc/man3/EVP_SKEYMGMT.pod" + ], "doc/html/man3/EVP_SealInit.html" => [ "doc/man3/EVP_SealInit.pod" ], @@ -2873,6 +3279,9 @@ our %unified_info = ( "doc/html/man3/EVP_whirlpool.html" => [ "doc/man3/EVP_whirlpool.pod" ], + "doc/html/man3/GENERAL_NAME.html" => [ + "doc/man3/GENERAL_NAME.pod" + ], "doc/html/man3/HMAC.html" => [ "doc/man3/HMAC.pod" ], @@ -2945,9 +3354,15 @@ our %unified_info = ( "doc/html/man3/OPENSSL_load_builtin_modules.html" => [ "doc/man3/OPENSSL_load_builtin_modules.pod" ], + "doc/html/man3/OPENSSL_load_u16_le.html" => [ + "doc/man3/OPENSSL_load_u16_le.pod" + ], "doc/html/man3/OPENSSL_malloc.html" => [ "doc/man3/OPENSSL_malloc.pod" ], + "doc/html/man3/OPENSSL_riscvcap.html" => [ + "doc/man3/OPENSSL_riscvcap.pod" + ], "doc/html/man3/OPENSSL_s390xcap.html" => [ "doc/man3/OPENSSL_s390xcap.pod" ], @@ -2963,12 +3378,18 @@ our %unified_info = ( "doc/html/man3/OSSL_CALLBACK.html" => [ "doc/man3/OSSL_CALLBACK.pod" ], + "doc/html/man3/OSSL_CMP_ATAV_set0.html" => [ + "doc/man3/OSSL_CMP_ATAV_set0.pod" + ], "doc/html/man3/OSSL_CMP_CTX_new.html" => [ "doc/man3/OSSL_CMP_CTX_new.pod" ], "doc/html/man3/OSSL_CMP_HDR_get0_transactionID.html" => [ "doc/man3/OSSL_CMP_HDR_get0_transactionID.pod" ], + "doc/html/man3/OSSL_CMP_ITAV_new_caCerts.html" => [ + "doc/man3/OSSL_CMP_ITAV_new_caCerts.pod" + ], "doc/html/man3/OSSL_CMP_ITAV_set0.html" => [ "doc/man3/OSSL_CMP_ITAV_set0.pod" ], @@ -3038,9 +3459,18 @@ our %unified_info = ( "doc/html/man3/OSSL_ENCODER_to_bio.html" => [ "doc/man3/OSSL_ENCODER_to_bio.pod" ], + "doc/html/man3/OSSL_ERR_STATE_save.html" => [ + "doc/man3/OSSL_ERR_STATE_save.pod" + ], "doc/html/man3/OSSL_ESS_check_signing_certs.html" => [ "doc/man3/OSSL_ESS_check_signing_certs.pod" ], + "doc/html/man3/OSSL_GENERAL_NAMES_print.html" => [ + "doc/man3/OSSL_GENERAL_NAMES_print.pod" + ], + "doc/html/man3/OSSL_HPKE_CTX_new.html" => [ + "doc/man3/OSSL_HPKE_CTX_new.pod" + ], "doc/html/man3/OSSL_HTTP_REQ_CTX.html" => [ "doc/man3/OSSL_HTTP_REQ_CTX.pod" ], @@ -3050,12 +3480,24 @@ our %unified_info = ( "doc/html/man3/OSSL_HTTP_transfer.html" => [ "doc/man3/OSSL_HTTP_transfer.pod" ], + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX.html" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX.pod" + ], + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX_print.html" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX_print.pod" + ], + "doc/html/man3/OSSL_INDICATOR_set_callback.html" => [ + "doc/man3/OSSL_INDICATOR_set_callback.pod" + ], "doc/html/man3/OSSL_ITEM.html" => [ "doc/man3/OSSL_ITEM.pod" ], "doc/html/man3/OSSL_LIB_CTX.html" => [ "doc/man3/OSSL_LIB_CTX.pod" ], + "doc/html/man3/OSSL_LIB_CTX_set_conf_diagnostics.html" => [ + "doc/man3/OSSL_LIB_CTX_set_conf_diagnostics.pod" + ], "doc/html/man3/OSSL_PARAM.html" => [ "doc/man3/OSSL_PARAM.pod" ], @@ -3071,9 +3513,15 @@ our %unified_info = ( "doc/html/man3/OSSL_PARAM_int.html" => [ "doc/man3/OSSL_PARAM_int.pod" ], + "doc/html/man3/OSSL_PARAM_print_to_bio.html" => [ + "doc/man3/OSSL_PARAM_print_to_bio.pod" + ], "doc/html/man3/OSSL_PROVIDER.html" => [ "doc/man3/OSSL_PROVIDER.pod" ], + "doc/html/man3/OSSL_QUIC_client_method.html" => [ + "doc/man3/OSSL_QUIC_client_method.pod" + ], "doc/html/man3/OSSL_SELF_TEST_new.html" => [ "doc/man3/OSSL_SELF_TEST_new.pod" ], @@ -3098,6 +3546,9 @@ our %unified_info = ( "doc/html/man3/OSSL_STORE_open.html" => [ "doc/man3/OSSL_STORE_open.pod" ], + "doc/html/man3/OSSL_sleep.html" => [ + "doc/man3/OSSL_sleep.pod" + ], "doc/html/man3/OSSL_trace_enabled.html" => [ "doc/man3/OSSL_trace_enabled.pod" ], @@ -3113,6 +3564,9 @@ our %unified_info = ( "doc/html/man3/OpenSSL_version.html" => [ "doc/man3/OpenSSL_version.pod" ], + "doc/html/man3/PBMAC1_get1_pbkdf2_param.html" => [ + "doc/man3/PBMAC1_get1_pbkdf2_param.pod" + ], "doc/html/man3/PEM_X509_INFO_read_bio_ex.html" => [ "doc/man3/PEM_X509_INFO_read_bio_ex.pod" ], @@ -3149,6 +3603,9 @@ our %unified_info = ( "doc/html/man3/PKCS12_SAFEBAG_get1_cert.html" => [ "doc/man3/PKCS12_SAFEBAG_get1_cert.pod" ], + "doc/html/man3/PKCS12_SAFEBAG_set0_attrs.html" => [ + "doc/man3/PKCS12_SAFEBAG_set0_attrs.pod" + ], "doc/html/man3/PKCS12_add1_attr_by_NID.html" => [ "doc/man3/PKCS12_add1_attr_by_NID.pod" ], @@ -3422,6 +3879,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set0_CA_list.html" => [ "doc/man3/SSL_CTX_set0_CA_list.pod" ], + "doc/html/man3/SSL_CTX_set1_cert_comp_preference.html" => [ + "doc/man3/SSL_CTX_set1_cert_comp_preference.pod" + ], "doc/html/man3/SSL_CTX_set1_curves.html" => [ "doc/man3/SSL_CTX_set1_curves.pod" ], @@ -3461,6 +3921,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_default_passwd_cb.html" => [ "doc/man3/SSL_CTX_set_default_passwd_cb.pod" ], + "doc/html/man3/SSL_CTX_set_domain_flags.html" => [ + "doc/man3/SSL_CTX_set_domain_flags.pod" + ], "doc/html/man3/SSL_CTX_set_generate_session_id.html" => [ "doc/man3/SSL_CTX_set_generate_session_id.pod" ], @@ -3482,6 +3945,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_msg_callback.html" => [ "doc/man3/SSL_CTX_set_msg_callback.pod" ], + "doc/html/man3/SSL_CTX_set_new_pending_conn_cb.html" => [ + "doc/man3/SSL_CTX_set_new_pending_conn_cb.pod" + ], "doc/html/man3/SSL_CTX_set_num_tickets.html" => [ "doc/man3/SSL_CTX_set_num_tickets.pod" ], @@ -3596,6 +4062,9 @@ our %unified_info = ( "doc/html/man3/SSL_accept.html" => [ "doc/man3/SSL_accept.pod" ], + "doc/html/man3/SSL_accept_stream.html" => [ + "doc/man3/SSL_accept_stream.pod" + ], "doc/html/man3/SSL_alert_type_string.html" => [ "doc/man3/SSL_alert_type_string.pod" ], @@ -3623,9 +4092,21 @@ our %unified_info = ( "doc/html/man3/SSL_free.html" => [ "doc/man3/SSL_free.pod" ], + "doc/html/man3/SSL_get0_connection.html" => [ + "doc/man3/SSL_get0_connection.pod" + ], + "doc/html/man3/SSL_get0_group_name.html" => [ + "doc/man3/SSL_get0_group_name.pod" + ], + "doc/html/man3/SSL_get0_peer_rpk.html" => [ + "doc/man3/SSL_get0_peer_rpk.pod" + ], "doc/html/man3/SSL_get0_peer_scts.html" => [ "doc/man3/SSL_get0_peer_scts.pod" ], + "doc/html/man3/SSL_get1_builtin_sigalgs.html" => [ + "doc/man3/SSL_get1_builtin_sigalgs.pod" + ], "doc/html/man3/SSL_get_SSL_CTX.html" => [ "doc/man3/SSL_get_SSL_CTX.pod" ], @@ -3641,6 +4122,9 @@ our %unified_info = ( "doc/html/man3/SSL_get_client_random.html" => [ "doc/man3/SSL_get_client_random.pod" ], + "doc/html/man3/SSL_get_conn_close_info.html" => [ + "doc/man3/SSL_get_conn_close_info.pod" + ], "doc/html/man3/SSL_get_current_cipher.html" => [ "doc/man3/SSL_get_current_cipher.pod" ], @@ -3650,12 +4134,18 @@ our %unified_info = ( "doc/html/man3/SSL_get_error.html" => [ "doc/man3/SSL_get_error.pod" ], + "doc/html/man3/SSL_get_event_timeout.html" => [ + "doc/man3/SSL_get_event_timeout.pod" + ], "doc/html/man3/SSL_get_extms_support.html" => [ "doc/man3/SSL_get_extms_support.pod" ], "doc/html/man3/SSL_get_fd.html" => [ "doc/man3/SSL_get_fd.pod" ], + "doc/html/man3/SSL_get_handshake_rtt.html" => [ + "doc/man3/SSL_get_handshake_rtt.pod" + ], "doc/html/man3/SSL_get_peer_cert_chain.html" => [ "doc/man3/SSL_get_peer_cert_chain.pod" ], @@ -3674,12 +4164,24 @@ our %unified_info = ( "doc/html/man3/SSL_get_rbio.html" => [ "doc/man3/SSL_get_rbio.pod" ], + "doc/html/man3/SSL_get_rpoll_descriptor.html" => [ + "doc/man3/SSL_get_rpoll_descriptor.pod" + ], "doc/html/man3/SSL_get_session.html" => [ "doc/man3/SSL_get_session.pod" ], "doc/html/man3/SSL_get_shared_sigalgs.html" => [ "doc/man3/SSL_get_shared_sigalgs.pod" ], + "doc/html/man3/SSL_get_stream_id.html" => [ + "doc/man3/SSL_get_stream_id.pod" + ], + "doc/html/man3/SSL_get_stream_read_state.html" => [ + "doc/man3/SSL_get_stream_read_state.pod" + ], + "doc/html/man3/SSL_get_value_uint.html" => [ + "doc/man3/SSL_get_value_uint.pod" + ], "doc/html/man3/SSL_get_verify_result.html" => [ "doc/man3/SSL_get_verify_result.pod" ], @@ -3689,9 +4191,15 @@ our %unified_info = ( "doc/html/man3/SSL_group_to_name.html" => [ "doc/man3/SSL_group_to_name.pod" ], + "doc/html/man3/SSL_handle_events.html" => [ + "doc/man3/SSL_handle_events.pod" + ], "doc/html/man3/SSL_in_init.html" => [ "doc/man3/SSL_in_init.pod" ], + "doc/html/man3/SSL_inject_net_dgram.html" => [ + "doc/man3/SSL_inject_net_dgram.pod" + ], "doc/html/man3/SSL_key_update.html" => [ "doc/man3/SSL_key_update.pod" ], @@ -3704,9 +4212,21 @@ our %unified_info = ( "doc/html/man3/SSL_new.html" => [ "doc/man3/SSL_new.pod" ], + "doc/html/man3/SSL_new_domain.html" => [ + "doc/man3/SSL_new_domain.pod" + ], + "doc/html/man3/SSL_new_listener.html" => [ + "doc/man3/SSL_new_listener.pod" + ], + "doc/html/man3/SSL_new_stream.html" => [ + "doc/man3/SSL_new_stream.pod" + ], "doc/html/man3/SSL_pending.html" => [ "doc/man3/SSL_pending.pod" ], + "doc/html/man3/SSL_poll.html" => [ + "doc/man3/SSL_poll.pod" + ], "doc/html/man3/SSL_read.html" => [ "doc/man3/SSL_read.pod" ], @@ -3722,24 +4242,45 @@ our %unified_info = ( "doc/html/man3/SSL_set1_host.html" => [ "doc/man3/SSL_set1_host.pod" ], + "doc/html/man3/SSL_set1_initial_peer_addr.html" => [ + "doc/man3/SSL_set1_initial_peer_addr.pod" + ], + "doc/html/man3/SSL_set1_server_cert_type.html" => [ + "doc/man3/SSL_set1_server_cert_type.pod" + ], "doc/html/man3/SSL_set_async_callback.html" => [ "doc/man3/SSL_set_async_callback.pod" ], "doc/html/man3/SSL_set_bio.html" => [ "doc/man3/SSL_set_bio.pod" ], + "doc/html/man3/SSL_set_blocking_mode.html" => [ + "doc/man3/SSL_set_blocking_mode.pod" + ], "doc/html/man3/SSL_set_connect_state.html" => [ "doc/man3/SSL_set_connect_state.pod" ], + "doc/html/man3/SSL_set_default_stream_mode.html" => [ + "doc/man3/SSL_set_default_stream_mode.pod" + ], "doc/html/man3/SSL_set_fd.html" => [ "doc/man3/SSL_set_fd.pod" ], + "doc/html/man3/SSL_set_incoming_stream_policy.html" => [ + "doc/man3/SSL_set_incoming_stream_policy.pod" + ], + "doc/html/man3/SSL_set_quic_tls_cbs.html" => [ + "doc/man3/SSL_set_quic_tls_cbs.pod" + ], "doc/html/man3/SSL_set_retry_verify.html" => [ "doc/man3/SSL_set_retry_verify.pod" ], "doc/html/man3/SSL_set_session.html" => [ "doc/man3/SSL_set_session.pod" ], + "doc/html/man3/SSL_set_session_secret_cb.html" => [ + "doc/man3/SSL_set_session_secret_cb.pod" + ], "doc/html/man3/SSL_set_shutdown.html" => [ "doc/man3/SSL_set_shutdown.pod" ], @@ -3752,6 +4293,12 @@ our %unified_info = ( "doc/html/man3/SSL_state_string.html" => [ "doc/man3/SSL_state_string.pod" ], + "doc/html/man3/SSL_stream_conclude.html" => [ + "doc/man3/SSL_stream_conclude.pod" + ], + "doc/html/man3/SSL_stream_reset.html" => [ + "doc/man3/SSL_stream_reset.pod" + ], "doc/html/man3/SSL_want.html" => [ "doc/man3/SSL_want.pod" ], @@ -3761,8 +4308,8 @@ our %unified_info = ( "doc/html/man3/TS_RESP_CTX_new.html" => [ "doc/man3/TS_RESP_CTX_new.pod" ], - "doc/html/man3/TS_VERIFY_CTX_set_certs.html" => [ - "doc/man3/TS_VERIFY_CTX_set_certs.pod" + "doc/html/man3/TS_VERIFY_CTX.html" => [ + "doc/man3/TS_VERIFY_CTX.pod" ], "doc/html/man3/UI_STRING.html" => [ "doc/man3/UI_STRING.pod" @@ -3782,6 +4329,21 @@ our %unified_info = ( "doc/html/man3/X509V3_set_ctx.html" => [ "doc/man3/X509V3_set_ctx.pod" ], + "doc/html/man3/X509_ACERT_add1_attr.html" => [ + "doc/man3/X509_ACERT_add1_attr.pod" + ], + "doc/html/man3/X509_ACERT_add_attr_nconf.html" => [ + "doc/man3/X509_ACERT_add_attr_nconf.pod" + ], + "doc/html/man3/X509_ACERT_get0_holder_baseCertId.html" => [ + "doc/man3/X509_ACERT_get0_holder_baseCertId.pod" + ], + "doc/html/man3/X509_ACERT_get_attr.html" => [ + "doc/man3/X509_ACERT_get_attr.pod" + ], + "doc/html/man3/X509_ACERT_print_ex.html" => [ + "doc/man3/X509_ACERT_print_ex.pod" + ], "doc/html/man3/X509_ALGOR_dup.html" => [ "doc/man3/X509_ALGOR_dup.pod" ], @@ -3830,6 +4392,9 @@ our %unified_info = ( "doc/html/man3/X509_SIG_get0.html" => [ "doc/man3/X509_SIG_get0.pod" ], + "doc/html/man3/X509_STORE_CTX_get_by_subject.html" => [ + "doc/man3/X509_STORE_CTX_get_by_subject.pod" + ], "doc/html/man3/X509_STORE_CTX_get_error.html" => [ "doc/man3/X509_STORE_CTX_get_error.pod" ], @@ -3896,6 +4461,9 @@ our %unified_info = ( "doc/html/man3/X509_get0_uids.html" => [ "doc/man3/X509_get0_uids.pod" ], + "doc/html/man3/X509_get_default_cert_file.html" => [ + "doc/man3/X509_get_default_cert_file.pod" + ], "doc/html/man3/X509_get_extension_flags.html" => [ "doc/man3/X509_get_extension_flags.pod" ], @@ -4019,9 +4587,15 @@ our %unified_info = ( "doc/html/man7/EVP_CIPHER-SM4.html" => [ "doc/man7/EVP_CIPHER-SM4.pod" ], + "doc/html/man7/EVP_KDF-ARGON2.html" => [ + "doc/man7/EVP_KDF-ARGON2.pod" + ], "doc/html/man7/EVP_KDF-HKDF.html" => [ "doc/man7/EVP_KDF-HKDF.pod" ], + "doc/html/man7/EVP_KDF-HMAC-DRBG.html" => [ + "doc/man7/EVP_KDF-HMAC-DRBG.pod" + ], "doc/html/man7/EVP_KDF-KB.html" => [ "doc/man7/EVP_KDF-KB.pod" ], @@ -4037,6 +4611,9 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-PKCS12KDF.html" => [ "doc/man7/EVP_KDF-PKCS12KDF.pod" ], + "doc/html/man7/EVP_KDF-PVKKDF.html" => [ + "doc/man7/EVP_KDF-PVKKDF.pod" + ], "doc/html/man7/EVP_KDF-SCRYPT.html" => [ "doc/man7/EVP_KDF-SCRYPT.pod" ], @@ -4061,9 +4638,18 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-X963.html" => [ "doc/man7/EVP_KDF-X963.pod" ], + "doc/html/man7/EVP_KEM-EC.html" => [ + "doc/man7/EVP_KEM-EC.pod" + ], + "doc/html/man7/EVP_KEM-ML-KEM.html" => [ + "doc/man7/EVP_KEM-ML-KEM.pod" + ], "doc/html/man7/EVP_KEM-RSA.html" => [ "doc/man7/EVP_KEM-RSA.pod" ], + "doc/html/man7/EVP_KEM-X25519.html" => [ + "doc/man7/EVP_KEM-X25519.pod" + ], "doc/html/man7/EVP_KEYEXCH-DH.html" => [ "doc/man7/EVP_KEYEXCH-DH.pod" ], @@ -4097,6 +4683,9 @@ our %unified_info = ( "doc/html/man7/EVP_MD-BLAKE2.html" => [ "doc/man7/EVP_MD-BLAKE2.pod" ], + "doc/html/man7/EVP_MD-KECCAK.html" => [ + "doc/man7/EVP_MD-KECCAK.pod" + ], "doc/html/man7/EVP_MD-MD2.html" => [ "doc/man7/EVP_MD-MD2.pod" ], @@ -4154,15 +4743,27 @@ our %unified_info = ( "doc/html/man7/EVP_PKEY-HMAC.html" => [ "doc/man7/EVP_PKEY-HMAC.pod" ], + "doc/html/man7/EVP_PKEY-ML-DSA.html" => [ + "doc/man7/EVP_PKEY-ML-DSA.pod" + ], + "doc/html/man7/EVP_PKEY-ML-KEM.html" => [ + "doc/man7/EVP_PKEY-ML-KEM.pod" + ], "doc/html/man7/EVP_PKEY-RSA.html" => [ "doc/man7/EVP_PKEY-RSA.pod" ], + "doc/html/man7/EVP_PKEY-SLH-DSA.html" => [ + "doc/man7/EVP_PKEY-SLH-DSA.pod" + ], "doc/html/man7/EVP_PKEY-SM2.html" => [ "doc/man7/EVP_PKEY-SM2.pod" ], "doc/html/man7/EVP_PKEY-X25519.html" => [ "doc/man7/EVP_PKEY-X25519.pod" ], + "doc/html/man7/EVP_RAND-CRNG-TEST.html" => [ + "doc/man7/EVP_RAND-CRNG-TEST.pod" + ], "doc/html/man7/EVP_RAND-CTR-DRBG.html" => [ "doc/man7/EVP_RAND-CTR-DRBG.pod" ], @@ -4172,6 +4773,9 @@ our %unified_info = ( "doc/html/man7/EVP_RAND-HMAC-DRBG.html" => [ "doc/man7/EVP_RAND-HMAC-DRBG.pod" ], + "doc/html/man7/EVP_RAND-JITTER.html" => [ + "doc/man7/EVP_RAND-JITTER.pod" + ], "doc/html/man7/EVP_RAND-SEED-SRC.html" => [ "doc/man7/EVP_RAND-SEED-SRC.pod" ], @@ -4193,9 +4797,15 @@ our %unified_info = ( "doc/html/man7/EVP_SIGNATURE-HMAC.html" => [ "doc/man7/EVP_SIGNATURE-HMAC.pod" ], + "doc/html/man7/EVP_SIGNATURE-ML-DSA.html" => [ + "doc/man7/EVP_SIGNATURE-ML-DSA.pod" + ], "doc/html/man7/EVP_SIGNATURE-RSA.html" => [ "doc/man7/EVP_SIGNATURE-RSA.pod" ], + "doc/html/man7/EVP_SIGNATURE-SLH-DSA.html" => [ + "doc/man7/EVP_SIGNATURE-SLH-DSA.pod" + ], "doc/html/man7/OSSL_PROVIDER-FIPS.html" => [ "doc/man7/OSSL_PROVIDER-FIPS.pod" ], @@ -4211,6 +4821,9 @@ our %unified_info = ( "doc/html/man7/OSSL_PROVIDER-null.html" => [ "doc/man7/OSSL_PROVIDER-null.pod" ], + "doc/html/man7/OSSL_STORE-winstore.html" => [ + "doc/man7/OSSL_STORE-winstore.pod" + ], "doc/html/man7/RAND.html" => [ "doc/man7/RAND.pod" ], @@ -4223,9 +4836,6 @@ our %unified_info = ( "doc/html/man7/bio.html" => [ "doc/man7/bio.pod" ], - "doc/html/man7/crypto.html" => [ - "doc/man7/crypto.pod" - ], "doc/html/man7/ct.html" => [ "doc/man7/ct.pod" ], @@ -4256,9 +4866,6 @@ our %unified_info = ( "doc/html/man7/life_cycle-rand.html" => [ "doc/man7/life_cycle-rand.pod" ], - "doc/html/man7/migration_guide.html" => [ - "doc/man7/migration_guide.pod" - ], "doc/html/man7/openssl-core.h.html" => [ "doc/man7/openssl-core.h.pod" ], @@ -4274,12 +4881,66 @@ our %unified_info = ( "doc/html/man7/openssl-glossary.html" => [ "doc/man7/openssl-glossary.pod" ], + "doc/html/man7/openssl-qlog.html" => [ + "doc/man7/openssl-qlog.pod" + ], + "doc/html/man7/openssl-quic-concurrency.html" => [ + "doc/man7/openssl-quic-concurrency.pod" + ], + "doc/html/man7/openssl-quic.html" => [ + "doc/man7/openssl-quic.pod" + ], "doc/html/man7/openssl-threads.html" => [ "doc/man7/openssl-threads.pod" ], "doc/html/man7/openssl_user_macros.html" => [ "doc/man7/openssl_user_macros.pod" ], + "doc/html/man7/ossl-guide-introduction.html" => [ + "doc/man7/ossl-guide-introduction.pod" + ], + "doc/html/man7/ossl-guide-libcrypto-introduction.html" => [ + "doc/man7/ossl-guide-libcrypto-introduction.pod" + ], + "doc/html/man7/ossl-guide-libraries-introduction.html" => [ + "doc/man7/ossl-guide-libraries-introduction.pod" + ], + "doc/html/man7/ossl-guide-libssl-introduction.html" => [ + "doc/man7/ossl-guide-libssl-introduction.pod" + ], + "doc/html/man7/ossl-guide-migration.html" => [ + "doc/man7/ossl-guide-migration.pod" + ], + "doc/html/man7/ossl-guide-quic-client-block.html" => [ + "doc/man7/ossl-guide-quic-client-block.pod" + ], + "doc/html/man7/ossl-guide-quic-client-non-block.html" => [ + "doc/man7/ossl-guide-quic-client-non-block.pod" + ], + "doc/html/man7/ossl-guide-quic-introduction.html" => [ + "doc/man7/ossl-guide-quic-introduction.pod" + ], + "doc/html/man7/ossl-guide-quic-multi-stream.html" => [ + "doc/man7/ossl-guide-quic-multi-stream.pod" + ], + "doc/html/man7/ossl-guide-quic-server-block.html" => [ + "doc/man7/ossl-guide-quic-server-block.pod" + ], + "doc/html/man7/ossl-guide-quic-server-non-block.html" => [ + "doc/man7/ossl-guide-quic-server-non-block.pod" + ], + "doc/html/man7/ossl-guide-tls-client-block.html" => [ + "doc/man7/ossl-guide-tls-client-block.pod" + ], + "doc/html/man7/ossl-guide-tls-client-non-block.html" => [ + "doc/man7/ossl-guide-tls-client-non-block.pod" + ], + "doc/html/man7/ossl-guide-tls-introduction.html" => [ + "doc/man7/ossl-guide-tls-introduction.pod" + ], + "doc/html/man7/ossl-guide-tls-server-block.html" => [ + "doc/man7/ossl-guide-tls-server-block.pod" + ], "doc/html/man7/ossl_store-file.html" => [ "doc/man7/ossl_store-file.pod" ], @@ -4334,6 +4995,9 @@ our %unified_info = ( "doc/html/man7/provider-signature.html" => [ "doc/man7/provider-signature.pod" ], + "doc/html/man7/provider-skeymgmt.html" => [ + "doc/man7/provider-skeymgmt.pod" + ], "doc/html/man7/provider-storemgmt.html" => [ "doc/man7/provider-storemgmt.pod" ], @@ -4343,9 +5007,6 @@ our %unified_info = ( "doc/html/man7/proxy-certificates.html" => [ "doc/man7/proxy-certificates.pod" ], - "doc/html/man7/ssl.html" => [ - "doc/man7/ssl.pod" - ], "doc/html/man7/x509.html" => [ "doc/man7/x509.pod" ], @@ -4493,6 +5154,9 @@ our %unified_info = ( "doc/man/man1/openssl-sess_id.1" => [ "doc/man1/openssl-sess_id.pod" ], + "doc/man/man1/openssl-skeyutl.1" => [ + "doc/man1/openssl-skeyutl.pod" + ], "doc/man/man1/openssl-smime.1" => [ "doc/man1/openssl-smime.pod" ], @@ -4634,6 +5298,9 @@ our %unified_info = ( "doc/man/man3/BIO_get_ex_new_index.3" => [ "doc/man3/BIO_get_ex_new_index.pod" ], + "doc/man/man3/BIO_get_rpoll_descriptor.3" => [ + "doc/man3/BIO_get_rpoll_descriptor.pod" + ], "doc/man/man3/BIO_meth_new.3" => [ "doc/man3/BIO_meth_new.pod" ], @@ -4670,6 +5337,9 @@ our %unified_info = ( "doc/man/man3/BIO_s_datagram.3" => [ "doc/man3/BIO_s_datagram.pod" ], + "doc/man/man3/BIO_s_dgram_pair.3" => [ + "doc/man3/BIO_s_dgram_pair.pod" + ], "doc/man/man3/BIO_s_fd.3" => [ "doc/man3/BIO_s_fd.pod" ], @@ -4685,6 +5355,9 @@ our %unified_info = ( "doc/man/man3/BIO_s_socket.3" => [ "doc/man3/BIO_s_socket.pod" ], + "doc/man/man3/BIO_sendmmsg.3" => [ + "doc/man3/BIO_sendmmsg.pod" + ], "doc/man/man3/BIO_set_callback.3" => [ "doc/man3/BIO_set_callback.pod" ], @@ -4757,6 +5430,9 @@ our %unified_info = ( "doc/man/man3/BUF_MEM_new.3" => [ "doc/man3/BUF_MEM_new.pod" ], + "doc/man/man3/CMAC_CTX.3" => [ + "doc/man3/CMAC_CTX.pod" + ], "doc/man/man3/CMS_EncryptedData_decrypt.3" => [ "doc/man3/CMS_EncryptedData_decrypt.pod" ], @@ -4823,6 +5499,9 @@ our %unified_info = ( "doc/man/man3/CMS_verify_receipt.3" => [ "doc/man3/CMS_verify_receipt.pod" ], + "doc/man/man3/COMP_CTX_new.3" => [ + "doc/man3/COMP_CTX_new.pod" + ], "doc/man/man3/CONF_modules_free.3" => [ "doc/man3/CONF_modules_free.pod" ], @@ -4922,6 +5601,12 @@ our %unified_info = ( "doc/man/man3/DTLS_set_timer_cb.3" => [ "doc/man3/DTLS_set_timer_cb.pod" ], + "doc/man/man3/DTLSv1_get_timeout.3" => [ + "doc/man3/DTLSv1_get_timeout.pod" + ], + "doc/man/man3/DTLSv1_handle_timeout.3" => [ + "doc/man3/DTLSv1_handle_timeout.pod" + ], "doc/man/man3/DTLSv1_listen.3" => [ "doc/man3/DTLSv1_listen.pod" ], @@ -5060,6 +5745,9 @@ our %unified_info = ( "doc/man/man3/EVP_PKEY_CTX_get0_pkey.3" => [ "doc/man3/EVP_PKEY_CTX_get0_pkey.pod" ], + "doc/man/man3/EVP_PKEY_CTX_get_algor.3" => [ + "doc/man3/EVP_PKEY_CTX_get_algor.pod" + ], "doc/man/man3/EVP_PKEY_CTX_new.3" => [ "doc/man3/EVP_PKEY_CTX_new.pod" ], @@ -5177,6 +5865,12 @@ our %unified_info = ( "doc/man/man3/EVP_SIGNATURE.3" => [ "doc/man3/EVP_SIGNATURE.pod" ], + "doc/man/man3/EVP_SKEY.3" => [ + "doc/man3/EVP_SKEY.pod" + ], + "doc/man/man3/EVP_SKEYMGMT.3" => [ + "doc/man3/EVP_SKEYMGMT.pod" + ], "doc/man/man3/EVP_SealInit.3" => [ "doc/man3/EVP_SealInit.pod" ], @@ -5264,6 +5958,9 @@ our %unified_info = ( "doc/man/man3/EVP_whirlpool.3" => [ "doc/man3/EVP_whirlpool.pod" ], + "doc/man/man3/GENERAL_NAME.3" => [ + "doc/man3/GENERAL_NAME.pod" + ], "doc/man/man3/HMAC.3" => [ "doc/man3/HMAC.pod" ], @@ -5336,9 +6033,15 @@ our %unified_info = ( "doc/man/man3/OPENSSL_load_builtin_modules.3" => [ "doc/man3/OPENSSL_load_builtin_modules.pod" ], + "doc/man/man3/OPENSSL_load_u16_le.3" => [ + "doc/man3/OPENSSL_load_u16_le.pod" + ], "doc/man/man3/OPENSSL_malloc.3" => [ "doc/man3/OPENSSL_malloc.pod" ], + "doc/man/man3/OPENSSL_riscvcap.3" => [ + "doc/man3/OPENSSL_riscvcap.pod" + ], "doc/man/man3/OPENSSL_s390xcap.3" => [ "doc/man3/OPENSSL_s390xcap.pod" ], @@ -5354,12 +6057,18 @@ our %unified_info = ( "doc/man/man3/OSSL_CALLBACK.3" => [ "doc/man3/OSSL_CALLBACK.pod" ], + "doc/man/man3/OSSL_CMP_ATAV_set0.3" => [ + "doc/man3/OSSL_CMP_ATAV_set0.pod" + ], "doc/man/man3/OSSL_CMP_CTX_new.3" => [ "doc/man3/OSSL_CMP_CTX_new.pod" ], "doc/man/man3/OSSL_CMP_HDR_get0_transactionID.3" => [ "doc/man3/OSSL_CMP_HDR_get0_transactionID.pod" ], + "doc/man/man3/OSSL_CMP_ITAV_new_caCerts.3" => [ + "doc/man3/OSSL_CMP_ITAV_new_caCerts.pod" + ], "doc/man/man3/OSSL_CMP_ITAV_set0.3" => [ "doc/man3/OSSL_CMP_ITAV_set0.pod" ], @@ -5429,9 +6138,18 @@ our %unified_info = ( "doc/man/man3/OSSL_ENCODER_to_bio.3" => [ "doc/man3/OSSL_ENCODER_to_bio.pod" ], + "doc/man/man3/OSSL_ERR_STATE_save.3" => [ + "doc/man3/OSSL_ERR_STATE_save.pod" + ], "doc/man/man3/OSSL_ESS_check_signing_certs.3" => [ "doc/man3/OSSL_ESS_check_signing_certs.pod" ], + "doc/man/man3/OSSL_GENERAL_NAMES_print.3" => [ + "doc/man3/OSSL_GENERAL_NAMES_print.pod" + ], + "doc/man/man3/OSSL_HPKE_CTX_new.3" => [ + "doc/man3/OSSL_HPKE_CTX_new.pod" + ], "doc/man/man3/OSSL_HTTP_REQ_CTX.3" => [ "doc/man3/OSSL_HTTP_REQ_CTX.pod" ], @@ -5441,12 +6159,24 @@ our %unified_info = ( "doc/man/man3/OSSL_HTTP_transfer.3" => [ "doc/man3/OSSL_HTTP_transfer.pod" ], + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX.3" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX.pod" + ], + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX_print.3" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX_print.pod" + ], + "doc/man/man3/OSSL_INDICATOR_set_callback.3" => [ + "doc/man3/OSSL_INDICATOR_set_callback.pod" + ], "doc/man/man3/OSSL_ITEM.3" => [ "doc/man3/OSSL_ITEM.pod" ], "doc/man/man3/OSSL_LIB_CTX.3" => [ "doc/man3/OSSL_LIB_CTX.pod" ], + "doc/man/man3/OSSL_LIB_CTX_set_conf_diagnostics.3" => [ + "doc/man3/OSSL_LIB_CTX_set_conf_diagnostics.pod" + ], "doc/man/man3/OSSL_PARAM.3" => [ "doc/man3/OSSL_PARAM.pod" ], @@ -5462,9 +6192,15 @@ our %unified_info = ( "doc/man/man3/OSSL_PARAM_int.3" => [ "doc/man3/OSSL_PARAM_int.pod" ], + "doc/man/man3/OSSL_PARAM_print_to_bio.3" => [ + "doc/man3/OSSL_PARAM_print_to_bio.pod" + ], "doc/man/man3/OSSL_PROVIDER.3" => [ "doc/man3/OSSL_PROVIDER.pod" ], + "doc/man/man3/OSSL_QUIC_client_method.3" => [ + "doc/man3/OSSL_QUIC_client_method.pod" + ], "doc/man/man3/OSSL_SELF_TEST_new.3" => [ "doc/man3/OSSL_SELF_TEST_new.pod" ], @@ -5489,6 +6225,9 @@ our %unified_info = ( "doc/man/man3/OSSL_STORE_open.3" => [ "doc/man3/OSSL_STORE_open.pod" ], + "doc/man/man3/OSSL_sleep.3" => [ + "doc/man3/OSSL_sleep.pod" + ], "doc/man/man3/OSSL_trace_enabled.3" => [ "doc/man3/OSSL_trace_enabled.pod" ], @@ -5504,6 +6243,9 @@ our %unified_info = ( "doc/man/man3/OpenSSL_version.3" => [ "doc/man3/OpenSSL_version.pod" ], + "doc/man/man3/PBMAC1_get1_pbkdf2_param.3" => [ + "doc/man3/PBMAC1_get1_pbkdf2_param.pod" + ], "doc/man/man3/PEM_X509_INFO_read_bio_ex.3" => [ "doc/man3/PEM_X509_INFO_read_bio_ex.pod" ], @@ -5540,6 +6282,9 @@ our %unified_info = ( "doc/man/man3/PKCS12_SAFEBAG_get1_cert.3" => [ "doc/man3/PKCS12_SAFEBAG_get1_cert.pod" ], + "doc/man/man3/PKCS12_SAFEBAG_set0_attrs.3" => [ + "doc/man3/PKCS12_SAFEBAG_set0_attrs.pod" + ], "doc/man/man3/PKCS12_add1_attr_by_NID.3" => [ "doc/man3/PKCS12_add1_attr_by_NID.pod" ], @@ -5813,6 +6558,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set0_CA_list.3" => [ "doc/man3/SSL_CTX_set0_CA_list.pod" ], + "doc/man/man3/SSL_CTX_set1_cert_comp_preference.3" => [ + "doc/man3/SSL_CTX_set1_cert_comp_preference.pod" + ], "doc/man/man3/SSL_CTX_set1_curves.3" => [ "doc/man3/SSL_CTX_set1_curves.pod" ], @@ -5852,6 +6600,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_default_passwd_cb.3" => [ "doc/man3/SSL_CTX_set_default_passwd_cb.pod" ], + "doc/man/man3/SSL_CTX_set_domain_flags.3" => [ + "doc/man3/SSL_CTX_set_domain_flags.pod" + ], "doc/man/man3/SSL_CTX_set_generate_session_id.3" => [ "doc/man3/SSL_CTX_set_generate_session_id.pod" ], @@ -5873,6 +6624,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_msg_callback.3" => [ "doc/man3/SSL_CTX_set_msg_callback.pod" ], + "doc/man/man3/SSL_CTX_set_new_pending_conn_cb.3" => [ + "doc/man3/SSL_CTX_set_new_pending_conn_cb.pod" + ], "doc/man/man3/SSL_CTX_set_num_tickets.3" => [ "doc/man3/SSL_CTX_set_num_tickets.pod" ], @@ -5987,6 +6741,9 @@ our %unified_info = ( "doc/man/man3/SSL_accept.3" => [ "doc/man3/SSL_accept.pod" ], + "doc/man/man3/SSL_accept_stream.3" => [ + "doc/man3/SSL_accept_stream.pod" + ], "doc/man/man3/SSL_alert_type_string.3" => [ "doc/man3/SSL_alert_type_string.pod" ], @@ -6014,9 +6771,21 @@ our %unified_info = ( "doc/man/man3/SSL_free.3" => [ "doc/man3/SSL_free.pod" ], + "doc/man/man3/SSL_get0_connection.3" => [ + "doc/man3/SSL_get0_connection.pod" + ], + "doc/man/man3/SSL_get0_group_name.3" => [ + "doc/man3/SSL_get0_group_name.pod" + ], + "doc/man/man3/SSL_get0_peer_rpk.3" => [ + "doc/man3/SSL_get0_peer_rpk.pod" + ], "doc/man/man3/SSL_get0_peer_scts.3" => [ "doc/man3/SSL_get0_peer_scts.pod" ], + "doc/man/man3/SSL_get1_builtin_sigalgs.3" => [ + "doc/man3/SSL_get1_builtin_sigalgs.pod" + ], "doc/man/man3/SSL_get_SSL_CTX.3" => [ "doc/man3/SSL_get_SSL_CTX.pod" ], @@ -6032,6 +6801,9 @@ our %unified_info = ( "doc/man/man3/SSL_get_client_random.3" => [ "doc/man3/SSL_get_client_random.pod" ], + "doc/man/man3/SSL_get_conn_close_info.3" => [ + "doc/man3/SSL_get_conn_close_info.pod" + ], "doc/man/man3/SSL_get_current_cipher.3" => [ "doc/man3/SSL_get_current_cipher.pod" ], @@ -6041,12 +6813,18 @@ our %unified_info = ( "doc/man/man3/SSL_get_error.3" => [ "doc/man3/SSL_get_error.pod" ], + "doc/man/man3/SSL_get_event_timeout.3" => [ + "doc/man3/SSL_get_event_timeout.pod" + ], "doc/man/man3/SSL_get_extms_support.3" => [ "doc/man3/SSL_get_extms_support.pod" ], "doc/man/man3/SSL_get_fd.3" => [ "doc/man3/SSL_get_fd.pod" ], + "doc/man/man3/SSL_get_handshake_rtt.3" => [ + "doc/man3/SSL_get_handshake_rtt.pod" + ], "doc/man/man3/SSL_get_peer_cert_chain.3" => [ "doc/man3/SSL_get_peer_cert_chain.pod" ], @@ -6065,12 +6843,24 @@ our %unified_info = ( "doc/man/man3/SSL_get_rbio.3" => [ "doc/man3/SSL_get_rbio.pod" ], + "doc/man/man3/SSL_get_rpoll_descriptor.3" => [ + "doc/man3/SSL_get_rpoll_descriptor.pod" + ], "doc/man/man3/SSL_get_session.3" => [ "doc/man3/SSL_get_session.pod" ], "doc/man/man3/SSL_get_shared_sigalgs.3" => [ "doc/man3/SSL_get_shared_sigalgs.pod" ], + "doc/man/man3/SSL_get_stream_id.3" => [ + "doc/man3/SSL_get_stream_id.pod" + ], + "doc/man/man3/SSL_get_stream_read_state.3" => [ + "doc/man3/SSL_get_stream_read_state.pod" + ], + "doc/man/man3/SSL_get_value_uint.3" => [ + "doc/man3/SSL_get_value_uint.pod" + ], "doc/man/man3/SSL_get_verify_result.3" => [ "doc/man3/SSL_get_verify_result.pod" ], @@ -6080,9 +6870,15 @@ our %unified_info = ( "doc/man/man3/SSL_group_to_name.3" => [ "doc/man3/SSL_group_to_name.pod" ], + "doc/man/man3/SSL_handle_events.3" => [ + "doc/man3/SSL_handle_events.pod" + ], "doc/man/man3/SSL_in_init.3" => [ "doc/man3/SSL_in_init.pod" ], + "doc/man/man3/SSL_inject_net_dgram.3" => [ + "doc/man3/SSL_inject_net_dgram.pod" + ], "doc/man/man3/SSL_key_update.3" => [ "doc/man3/SSL_key_update.pod" ], @@ -6095,9 +6891,21 @@ our %unified_info = ( "doc/man/man3/SSL_new.3" => [ "doc/man3/SSL_new.pod" ], + "doc/man/man3/SSL_new_domain.3" => [ + "doc/man3/SSL_new_domain.pod" + ], + "doc/man/man3/SSL_new_listener.3" => [ + "doc/man3/SSL_new_listener.pod" + ], + "doc/man/man3/SSL_new_stream.3" => [ + "doc/man3/SSL_new_stream.pod" + ], "doc/man/man3/SSL_pending.3" => [ "doc/man3/SSL_pending.pod" ], + "doc/man/man3/SSL_poll.3" => [ + "doc/man3/SSL_poll.pod" + ], "doc/man/man3/SSL_read.3" => [ "doc/man3/SSL_read.pod" ], @@ -6113,24 +6921,45 @@ our %unified_info = ( "doc/man/man3/SSL_set1_host.3" => [ "doc/man3/SSL_set1_host.pod" ], + "doc/man/man3/SSL_set1_initial_peer_addr.3" => [ + "doc/man3/SSL_set1_initial_peer_addr.pod" + ], + "doc/man/man3/SSL_set1_server_cert_type.3" => [ + "doc/man3/SSL_set1_server_cert_type.pod" + ], "doc/man/man3/SSL_set_async_callback.3" => [ "doc/man3/SSL_set_async_callback.pod" ], "doc/man/man3/SSL_set_bio.3" => [ "doc/man3/SSL_set_bio.pod" ], + "doc/man/man3/SSL_set_blocking_mode.3" => [ + "doc/man3/SSL_set_blocking_mode.pod" + ], "doc/man/man3/SSL_set_connect_state.3" => [ "doc/man3/SSL_set_connect_state.pod" ], + "doc/man/man3/SSL_set_default_stream_mode.3" => [ + "doc/man3/SSL_set_default_stream_mode.pod" + ], "doc/man/man3/SSL_set_fd.3" => [ "doc/man3/SSL_set_fd.pod" ], + "doc/man/man3/SSL_set_incoming_stream_policy.3" => [ + "doc/man3/SSL_set_incoming_stream_policy.pod" + ], + "doc/man/man3/SSL_set_quic_tls_cbs.3" => [ + "doc/man3/SSL_set_quic_tls_cbs.pod" + ], "doc/man/man3/SSL_set_retry_verify.3" => [ "doc/man3/SSL_set_retry_verify.pod" ], "doc/man/man3/SSL_set_session.3" => [ "doc/man3/SSL_set_session.pod" ], + "doc/man/man3/SSL_set_session_secret_cb.3" => [ + "doc/man3/SSL_set_session_secret_cb.pod" + ], "doc/man/man3/SSL_set_shutdown.3" => [ "doc/man3/SSL_set_shutdown.pod" ], @@ -6143,6 +6972,12 @@ our %unified_info = ( "doc/man/man3/SSL_state_string.3" => [ "doc/man3/SSL_state_string.pod" ], + "doc/man/man3/SSL_stream_conclude.3" => [ + "doc/man3/SSL_stream_conclude.pod" + ], + "doc/man/man3/SSL_stream_reset.3" => [ + "doc/man3/SSL_stream_reset.pod" + ], "doc/man/man3/SSL_want.3" => [ "doc/man3/SSL_want.pod" ], @@ -6152,8 +6987,8 @@ our %unified_info = ( "doc/man/man3/TS_RESP_CTX_new.3" => [ "doc/man3/TS_RESP_CTX_new.pod" ], - "doc/man/man3/TS_VERIFY_CTX_set_certs.3" => [ - "doc/man3/TS_VERIFY_CTX_set_certs.pod" + "doc/man/man3/TS_VERIFY_CTX.3" => [ + "doc/man3/TS_VERIFY_CTX.pod" ], "doc/man/man3/UI_STRING.3" => [ "doc/man3/UI_STRING.pod" @@ -6173,6 +7008,21 @@ our %unified_info = ( "doc/man/man3/X509V3_set_ctx.3" => [ "doc/man3/X509V3_set_ctx.pod" ], + "doc/man/man3/X509_ACERT_add1_attr.3" => [ + "doc/man3/X509_ACERT_add1_attr.pod" + ], + "doc/man/man3/X509_ACERT_add_attr_nconf.3" => [ + "doc/man3/X509_ACERT_add_attr_nconf.pod" + ], + "doc/man/man3/X509_ACERT_get0_holder_baseCertId.3" => [ + "doc/man3/X509_ACERT_get0_holder_baseCertId.pod" + ], + "doc/man/man3/X509_ACERT_get_attr.3" => [ + "doc/man3/X509_ACERT_get_attr.pod" + ], + "doc/man/man3/X509_ACERT_print_ex.3" => [ + "doc/man3/X509_ACERT_print_ex.pod" + ], "doc/man/man3/X509_ALGOR_dup.3" => [ "doc/man3/X509_ALGOR_dup.pod" ], @@ -6221,6 +7071,9 @@ our %unified_info = ( "doc/man/man3/X509_SIG_get0.3" => [ "doc/man3/X509_SIG_get0.pod" ], + "doc/man/man3/X509_STORE_CTX_get_by_subject.3" => [ + "doc/man3/X509_STORE_CTX_get_by_subject.pod" + ], "doc/man/man3/X509_STORE_CTX_get_error.3" => [ "doc/man3/X509_STORE_CTX_get_error.pod" ], @@ -6287,6 +7140,9 @@ our %unified_info = ( "doc/man/man3/X509_get0_uids.3" => [ "doc/man3/X509_get0_uids.pod" ], + "doc/man/man3/X509_get_default_cert_file.3" => [ + "doc/man3/X509_get_default_cert_file.pod" + ], "doc/man/man3/X509_get_extension_flags.3" => [ "doc/man3/X509_get_extension_flags.pod" ], @@ -6410,9 +7266,15 @@ our %unified_info = ( "doc/man/man7/EVP_CIPHER-SM4.7" => [ "doc/man7/EVP_CIPHER-SM4.pod" ], + "doc/man/man7/EVP_KDF-ARGON2.7" => [ + "doc/man7/EVP_KDF-ARGON2.pod" + ], "doc/man/man7/EVP_KDF-HKDF.7" => [ "doc/man7/EVP_KDF-HKDF.pod" ], + "doc/man/man7/EVP_KDF-HMAC-DRBG.7" => [ + "doc/man7/EVP_KDF-HMAC-DRBG.pod" + ], "doc/man/man7/EVP_KDF-KB.7" => [ "doc/man7/EVP_KDF-KB.pod" ], @@ -6428,6 +7290,9 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-PKCS12KDF.7" => [ "doc/man7/EVP_KDF-PKCS12KDF.pod" ], + "doc/man/man7/EVP_KDF-PVKKDF.7" => [ + "doc/man7/EVP_KDF-PVKKDF.pod" + ], "doc/man/man7/EVP_KDF-SCRYPT.7" => [ "doc/man7/EVP_KDF-SCRYPT.pod" ], @@ -6452,9 +7317,18 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-X963.7" => [ "doc/man7/EVP_KDF-X963.pod" ], + "doc/man/man7/EVP_KEM-EC.7" => [ + "doc/man7/EVP_KEM-EC.pod" + ], + "doc/man/man7/EVP_KEM-ML-KEM.7" => [ + "doc/man7/EVP_KEM-ML-KEM.pod" + ], "doc/man/man7/EVP_KEM-RSA.7" => [ "doc/man7/EVP_KEM-RSA.pod" ], + "doc/man/man7/EVP_KEM-X25519.7" => [ + "doc/man7/EVP_KEM-X25519.pod" + ], "doc/man/man7/EVP_KEYEXCH-DH.7" => [ "doc/man7/EVP_KEYEXCH-DH.pod" ], @@ -6488,6 +7362,9 @@ our %unified_info = ( "doc/man/man7/EVP_MD-BLAKE2.7" => [ "doc/man7/EVP_MD-BLAKE2.pod" ], + "doc/man/man7/EVP_MD-KECCAK.7" => [ + "doc/man7/EVP_MD-KECCAK.pod" + ], "doc/man/man7/EVP_MD-MD2.7" => [ "doc/man7/EVP_MD-MD2.pod" ], @@ -6545,15 +7422,27 @@ our %unified_info = ( "doc/man/man7/EVP_PKEY-HMAC.7" => [ "doc/man7/EVP_PKEY-HMAC.pod" ], + "doc/man/man7/EVP_PKEY-ML-DSA.7" => [ + "doc/man7/EVP_PKEY-ML-DSA.pod" + ], + "doc/man/man7/EVP_PKEY-ML-KEM.7" => [ + "doc/man7/EVP_PKEY-ML-KEM.pod" + ], "doc/man/man7/EVP_PKEY-RSA.7" => [ "doc/man7/EVP_PKEY-RSA.pod" ], + "doc/man/man7/EVP_PKEY-SLH-DSA.7" => [ + "doc/man7/EVP_PKEY-SLH-DSA.pod" + ], "doc/man/man7/EVP_PKEY-SM2.7" => [ "doc/man7/EVP_PKEY-SM2.pod" ], "doc/man/man7/EVP_PKEY-X25519.7" => [ "doc/man7/EVP_PKEY-X25519.pod" ], + "doc/man/man7/EVP_RAND-CRNG-TEST.7" => [ + "doc/man7/EVP_RAND-CRNG-TEST.pod" + ], "doc/man/man7/EVP_RAND-CTR-DRBG.7" => [ "doc/man7/EVP_RAND-CTR-DRBG.pod" ], @@ -6563,6 +7452,9 @@ our %unified_info = ( "doc/man/man7/EVP_RAND-HMAC-DRBG.7" => [ "doc/man7/EVP_RAND-HMAC-DRBG.pod" ], + "doc/man/man7/EVP_RAND-JITTER.7" => [ + "doc/man7/EVP_RAND-JITTER.pod" + ], "doc/man/man7/EVP_RAND-SEED-SRC.7" => [ "doc/man7/EVP_RAND-SEED-SRC.pod" ], @@ -6584,9 +7476,15 @@ our %unified_info = ( "doc/man/man7/EVP_SIGNATURE-HMAC.7" => [ "doc/man7/EVP_SIGNATURE-HMAC.pod" ], + "doc/man/man7/EVP_SIGNATURE-ML-DSA.7" => [ + "doc/man7/EVP_SIGNATURE-ML-DSA.pod" + ], "doc/man/man7/EVP_SIGNATURE-RSA.7" => [ "doc/man7/EVP_SIGNATURE-RSA.pod" ], + "doc/man/man7/EVP_SIGNATURE-SLH-DSA.7" => [ + "doc/man7/EVP_SIGNATURE-SLH-DSA.pod" + ], "doc/man/man7/OSSL_PROVIDER-FIPS.7" => [ "doc/man7/OSSL_PROVIDER-FIPS.pod" ], @@ -6602,6 +7500,9 @@ our %unified_info = ( "doc/man/man7/OSSL_PROVIDER-null.7" => [ "doc/man7/OSSL_PROVIDER-null.pod" ], + "doc/man/man7/OSSL_STORE-winstore.7" => [ + "doc/man7/OSSL_STORE-winstore.pod" + ], "doc/man/man7/RAND.7" => [ "doc/man7/RAND.pod" ], @@ -6614,9 +7515,6 @@ our %unified_info = ( "doc/man/man7/bio.7" => [ "doc/man7/bio.pod" ], - "doc/man/man7/crypto.7" => [ - "doc/man7/crypto.pod" - ], "doc/man/man7/ct.7" => [ "doc/man7/ct.pod" ], @@ -6647,9 +7545,6 @@ our %unified_info = ( "doc/man/man7/life_cycle-rand.7" => [ "doc/man7/life_cycle-rand.pod" ], - "doc/man/man7/migration_guide.7" => [ - "doc/man7/migration_guide.pod" - ], "doc/man/man7/openssl-core.h.7" => [ "doc/man7/openssl-core.h.pod" ], @@ -6665,12 +7560,66 @@ our %unified_info = ( "doc/man/man7/openssl-glossary.7" => [ "doc/man7/openssl-glossary.pod" ], + "doc/man/man7/openssl-qlog.7" => [ + "doc/man7/openssl-qlog.pod" + ], + "doc/man/man7/openssl-quic-concurrency.7" => [ + "doc/man7/openssl-quic-concurrency.pod" + ], + "doc/man/man7/openssl-quic.7" => [ + "doc/man7/openssl-quic.pod" + ], "doc/man/man7/openssl-threads.7" => [ "doc/man7/openssl-threads.pod" ], "doc/man/man7/openssl_user_macros.7" => [ "doc/man7/openssl_user_macros.pod" ], + "doc/man/man7/ossl-guide-introduction.7" => [ + "doc/man7/ossl-guide-introduction.pod" + ], + "doc/man/man7/ossl-guide-libcrypto-introduction.7" => [ + "doc/man7/ossl-guide-libcrypto-introduction.pod" + ], + "doc/man/man7/ossl-guide-libraries-introduction.7" => [ + "doc/man7/ossl-guide-libraries-introduction.pod" + ], + "doc/man/man7/ossl-guide-libssl-introduction.7" => [ + "doc/man7/ossl-guide-libssl-introduction.pod" + ], + "doc/man/man7/ossl-guide-migration.7" => [ + "doc/man7/ossl-guide-migration.pod" + ], + "doc/man/man7/ossl-guide-quic-client-block.7" => [ + "doc/man7/ossl-guide-quic-client-block.pod" + ], + "doc/man/man7/ossl-guide-quic-client-non-block.7" => [ + "doc/man7/ossl-guide-quic-client-non-block.pod" + ], + "doc/man/man7/ossl-guide-quic-introduction.7" => [ + "doc/man7/ossl-guide-quic-introduction.pod" + ], + "doc/man/man7/ossl-guide-quic-multi-stream.7" => [ + "doc/man7/ossl-guide-quic-multi-stream.pod" + ], + "doc/man/man7/ossl-guide-quic-server-block.7" => [ + "doc/man7/ossl-guide-quic-server-block.pod" + ], + "doc/man/man7/ossl-guide-quic-server-non-block.7" => [ + "doc/man7/ossl-guide-quic-server-non-block.pod" + ], + "doc/man/man7/ossl-guide-tls-client-block.7" => [ + "doc/man7/ossl-guide-tls-client-block.pod" + ], + "doc/man/man7/ossl-guide-tls-client-non-block.7" => [ + "doc/man7/ossl-guide-tls-client-non-block.pod" + ], + "doc/man/man7/ossl-guide-tls-introduction.7" => [ + "doc/man7/ossl-guide-tls-introduction.pod" + ], + "doc/man/man7/ossl-guide-tls-server-block.7" => [ + "doc/man7/ossl-guide-tls-server-block.pod" + ], "doc/man/man7/ossl_store-file.7" => [ "doc/man7/ossl_store-file.pod" ], @@ -6725,6 +7674,9 @@ our %unified_info = ( "doc/man/man7/provider-signature.7" => [ "doc/man7/provider-signature.pod" ], + "doc/man/man7/provider-skeymgmt.7" => [ + "doc/man7/provider-skeymgmt.pod" + ], "doc/man/man7/provider-storemgmt.7" => [ "doc/man7/provider-storemgmt.pod" ], @@ -6734,9 +7686,6 @@ our %unified_info = ( "doc/man/man7/proxy-certificates.7" => [ "doc/man7/proxy-certificates.pod" ], - "doc/man/man7/ssl.7" => [ - "doc/man7/ssl.pod" - ], "doc/man/man7/x509.7" => [ "doc/man7/x509.pod" ], @@ -6916,6 +7865,10 @@ our %unified_info = ( "doc/man1/openssl-sess_id.pod.in", "doc/perlvars.pm" ], + "doc/man1/openssl-skeyutl.pod" => [ + "doc/man1/openssl-skeyutl.pod.in", + "doc/perlvars.pm" + ], "doc/man1/openssl-smime.pod" => [ "doc/man1/openssl-smime.pod.in", "doc/perlvars.pm" @@ -6955,6 +7908,27 @@ our %unified_info = ( "doc/man7/openssl_user_macros.pod" => [ "doc/man7/openssl_user_macros.pod.in" ], + "exporters/OpenSSLConfig.cmake" => [ + "installdata.pm" + ], + "exporters/OpenSSLConfigVersion.cmake" => [ + "exporters/OpenSSLConfig.cmake", + "installdata.pm" + ], + "exporters/libcrypto.pc" => [ + "installdata.pm" + ], + "exporters/libssl.pc" => [ + "installdata.pm" + ], + "exporters/openssl.pc" => [ + "exporters/libcrypto.pc", + "exporters/libssl.pc", + "installdata.pm" + ], + "fuzz/acert-test" => [ + "libcrypto" + ], "fuzz/asn1-test" => [ "libcrypto", "libssl" @@ -6987,17 +7961,85 @@ our %unified_info = ( "fuzz/ct-test" => [ "libcrypto" ], + "fuzz/decoder-test" => [ + "libcrypto" + ], + "fuzz/dtlsclient-test" => [ + "libcrypto", + "libssl" + ], + "fuzz/dtlsserver-test" => [ + "libcrypto", + "libssl" + ], + "fuzz/hashtable-test" => [ + "libcrypto.a" + ], + "fuzz/ml-dsa-test" => [ + "libcrypto.a" + ], + "fuzz/ml-kem-test" => [ + "libcrypto.a" + ], + "fuzz/pem-test" => [ + "libcrypto.a" + ], + "fuzz/provider-test" => [ + "libcrypto" + ], + "fuzz/punycode-test" => [ + "libcrypto.a" + ], + "fuzz/quic-client-test" => [ + "libcrypto.a", + "libssl.a" + ], + "fuzz/quic-lcidm-test" => [ + "libcrypto.a", + "libssl.a" + ], + "fuzz/quic-rcidm-test" => [ + "libcrypto.a", + "libssl.a" + ], + "fuzz/quic-server-test" => [ + "libcrypto.a", + "libssl.a" + ], + "fuzz/quic-srtm-test" => [ + "libcrypto.a", + "libssl.a" + ], "fuzz/server-test" => [ "libcrypto", "libssl" ], + "fuzz/slh-dsa-test" => [ + "libcrypto.a" + ], + "fuzz/smime-test" => [ + "libcrypto", + "libssl" + ], + "fuzz/v3name-test" => [ + "libcrypto.a" + ], "fuzz/x509-test" => [ "libcrypto" ], + "include/internal/param_names.h" => [ + "util/perl|OpenSSL/paramnames.pm" + ], + "include/openssl/core_names.h" => [ + "util/perl|OpenSSL/paramnames.pm" + ], "libcrypto.ld" => [ "configdata.pm", "util/perl/OpenSSL/Ordinals.pm" ], + "libcrypto.pc" => [ + "builddata.pm" + ], "libssl" => [ "libcrypto" ], @@ -7005,6 +8047,14 @@ our %unified_info = ( "configdata.pm", "util/perl/OpenSSL/Ordinals.pm" ], + "libssl.pc" => [ + "builddata.pm" + ], + "openssl.pc" => [ + "builddata.pm", + "libcrypto.pc", + "libssl.pc" + ], "providers/common/der/der_digests_gen.c" => [ "providers/common/der/DIGESTS.asn1", "providers/common/der/NIST.asn1", @@ -7022,11 +8072,19 @@ our %unified_info = ( "providers/common/der/ECX.asn1", "providers/common/der/oids_to_c.pm" ], + "providers/common/der/der_ml_dsa_gen.c" => [ + "providers/common/der/ML_DSA.asn1", + "providers/common/der/oids_to_c.pm" + ], "providers/common/der/der_rsa_gen.c" => [ "providers/common/der/NIST.asn1", "providers/common/der/RSA.asn1", "providers/common/der/oids_to_c.pm" ], + "providers/common/der/der_slh_dsa_gen.c" => [ + "providers/common/der/SLH_DSA.asn1", + "providers/common/der/oids_to_c.pm" + ], "providers/common/der/der_sm2_gen.c" => [ "providers/common/der/SM2.asn1", "providers/common/der/oids_to_c.pm" @@ -7066,6 +8124,12 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ecx_key.o" => [ "providers/common/include/prov/der_ecx.h" ], + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o" => [ + "providers/common/include/prov/der_ml_dsa.h" + ], + "providers/common/der/libcommon-lib-der_ml_dsa_key.o" => [ + "providers/common/include/prov/der_ml_dsa.h" + ], "providers/common/der/libcommon-lib-der_rsa_gen.o" => [ "providers/common/include/prov/der_rsa.h" ], @@ -7073,6 +8137,12 @@ our %unified_info = ( "providers/common/include/prov/der_digests.h", "providers/common/include/prov/der_rsa.h" ], + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o" => [ + "providers/common/include/prov/der_slh_dsa.h" + ], + "providers/common/der/libcommon-lib-der_slh_dsa_key.o" => [ + "providers/common/include/prov/der_slh_dsa.h" + ], "providers/common/der/libcommon-lib-der_wrap_gen.o" => [ "providers/common/include/prov/der_wrap.h" ], @@ -7112,11 +8182,19 @@ our %unified_info = ( "providers/common/der/ECX.asn1", "providers/common/der/oids_to_c.pm" ], + "providers/common/include/prov/der_ml_dsa.h" => [ + "providers/common/der/ML_DSA.asn1", + "providers/common/der/oids_to_c.pm" + ], "providers/common/include/prov/der_rsa.h" => [ "providers/common/der/NIST.asn1", "providers/common/der/RSA.asn1", "providers/common/der/oids_to_c.pm" ], + "providers/common/include/prov/der_slh_dsa.h" => [ + "providers/common/der/SLH_DSA.asn1", + "providers/common/der/oids_to_c.pm" + ], "providers/common/include/prov/der_sm2.h" => [ "providers/common/der/SM2.asn1", "providers/common/der/oids_to_c.pm" @@ -7149,9 +8227,15 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-eddsa_sig.o" => [ "providers/common/include/prov/der_ecx.h" ], + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o" => [ + "providers/common/include/prov/der_ml_dsa.h" + ], "providers/implementations/signature/libdefault-lib-rsa_sig.o" => [ "providers/common/include/prov/der_rsa.h" ], + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o" => [ + "providers/common/include/prov/der_slh_dsa.h" + ], "providers/implementations/signature/libdefault-lib-sm2_sig.o" => [ "providers/common/include/prov/der_sm2.h" ], @@ -7164,9 +8248,15 @@ our %unified_info = ( "providers/implementations/signature/libfips-lib-eddsa_sig.o" => [ "providers/common/include/prov/der_ecx.h" ], + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o" => [ + "providers/common/include/prov/der_ml_dsa.h" + ], "providers/implementations/signature/libfips-lib-rsa_sig.o" => [ "providers/common/include/prov/der_rsa.h" ], + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o" => [ + "providers/common/include/prov/der_slh_dsa.h" + ], "providers/legacy" => [ "libcrypto", "providers/liblegacy.a" @@ -7244,6 +8334,14 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/bio_addr_test" => [ + "libcrypto", + "test/libtestutil.a" + ], + "test/bio_base64_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/bio_callback_test" => [ "libcrypto", "test/libtestutil.a" @@ -7252,6 +8350,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/bio_dgram_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/bio_enc_test" => [ "libcrypto", "test/libtestutil.a" @@ -7260,6 +8362,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/bio_meth_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/bio_prefix_text" => [ "libcrypto", "test/libtestutil.a" @@ -7272,6 +8378,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/bio_tfo_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/bioprinttest" => [ "libcrypto", "test/libtestutil.a" @@ -7284,6 +8394,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/build_wincrypt_test" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_aes" => [ "libcrypto", "libssl" @@ -7304,6 +8418,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_byteorder" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_camellia" => [ "libcrypto", "libssl" @@ -7336,10 +8454,6 @@ our %unified_info = ( "libcrypto", "libssl" ], - "test/buildtest_c_core_names" => [ - "libcrypto", - "libssl" - ], "test/buildtest_c_core_object" => [ "libcrypto", "libssl" @@ -7372,6 +8486,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_e_ostime" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_ebcdic" => [ "libcrypto", "libssl" @@ -7408,6 +8526,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_hpke" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_http" => [ "libcrypto", "libssl" @@ -7416,6 +8538,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_indicator" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_kdf" => [ "libcrypto", "libssl" @@ -7436,6 +8562,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_ml_kem" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_modes" => [ "libcrypto", "libssl" @@ -7476,6 +8606,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_quic" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_rand" => [ "libcrypto", "libssl" @@ -7532,6 +8666,10 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/buildtest_c_thread" => [ + "libcrypto", + "libssl" + ], "test/buildtest_c_tls1" => [ "libcrypto", "libssl" @@ -7552,10 +8690,23 @@ our %unified_info = ( "libcrypto", "libssl" ], + "test/byteorder_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], + "test/ca_internals_test" => [ + "libssl", + "test/libtestutil.a" + ], "test/casttest" => [ "libcrypto", "test/libtestutil.a" ], + "test/cert_comp_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], "test/chacha_internal_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -7669,7 +8820,11 @@ our %unified_info = ( "libssl", "test/libtestutil.a" ], - "test/defltfips_test" => [ + "test/decoder_propq_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], + "test/defltfips_test" => [ "libcrypto", "test/libtestutil.a" ], @@ -7725,6 +8880,8 @@ our %unified_info = ( ], "test/endecode_test" => [ "libcrypto.a", + "providers/libcommon.a", + "providers/liblegacy.a", "test/libtestutil.a" ], "test/endecoder_legacy_test" => [ @@ -7768,6 +8925,10 @@ our %unified_info = ( "test/evp_pkey_ctx_new_from_name" => [ "libcrypto" ], + "test/evp_pkey_dhkem_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/evp_pkey_dparams_test" => [ "libcrypto", "test/libtestutil.a" @@ -7776,10 +8937,18 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/evp_skey_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/evp_test" => [ "libcrypto", "test/libtestutil.a" ], + "test/evp_xof_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/exdatatest" => [ "libcrypto", "test/libtestutil.a" @@ -7818,6 +8987,10 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/hpke_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/http_test" => [ "libcrypto", "test/libtestutil.a" @@ -7830,17 +9003,25 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/json_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], "test/keymgmt_internal_test" => [ "libcrypto.a", "test/libtestutil.a" ], "test/lhash_test" => [ - "libcrypto", + "libcrypto.a", "test/libtestutil.a" ], "test/libtestutil.a" => [ "libcrypto" ], + "test/list_test" => [ + "test/libtestutil.a" + ], "test/localetest" => [ "libcrypto", "test/libtestutil.a" @@ -7853,10 +9034,26 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/membio_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/memleaktest" => [ "libcrypto", "test/libtestutil.a" ], + "test/ml_dsa_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], + "test/ml_kem_evp_extra_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], + "test/ml_kem_internal_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/modes_internal_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -7881,6 +9078,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/pairwise_fail_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/param_build_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -7913,6 +9114,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/pkcs12_api_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/pkcs12_format_test" => [ "libcrypto", "test/libtestutil.a" @@ -7933,6 +9138,11 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/priority_queue_test" => [ + "libcrypto", + "libssl.a", + "test/libtestutil.a" + ], "test/property_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -7945,6 +9155,10 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/provider_default_search_path_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/provider_fallback_test" => [ "libcrypto", "test/libtestutil.a" @@ -7969,12 +9183,122 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/quic_ackm_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_cc_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_cfq_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_client_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_fc_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_fifd_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_lcidm_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_multistream_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_newcid_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_qlog_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_radix_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_rcidm_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_record_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_srt_gen_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_srtm_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_stream_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_tserver_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_txp_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_txpim_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quic_wire_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quicapitest" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], + "test/quicfaultstest" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], "test/rand_status_test" => [ "libcrypto", "test/libtestutil.a" ], "test/rand_test" => [ - "libcrypto", + "libcrypto.a", "test/libtestutil.a" ], "test/rc2test" => [ @@ -7989,7 +9313,7 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], - "test/rdrand_sanitytest" => [ + "test/rdcpu_sanitytest" => [ "libcrypto.a", "test/libtestutil.a" ], @@ -7998,6 +9322,11 @@ our %unified_info = ( "libssl", "test/libtestutil.a" ], + "test/rpktest" => [ + "libcrypto", + "libssl", + "test/libtestutil.a" + ], "test/rsa_mp_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -8010,10 +9339,18 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], - "test/sanitytest" => [ + "test/rsa_x931_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], + "test/safe_math_test" => [ "libcrypto", "test/libtestutil.a" ], + "test/sanitytest" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/secmemtest" => [ "libcrypto", "test/libtestutil.a" @@ -8031,6 +9368,10 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/slh_dsa_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/sm2_internal_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -8060,6 +9401,11 @@ our %unified_info = ( "libssl", "test/libtestutil.a" ], + "test/ssl_handshake_rtt_test" => [ + "libcrypto.a", + "libssl.a", + "test/libtestutil.a" + ], "test/ssl_old_test" => [ "libcrypto.a", "libssl.a", @@ -8076,8 +9422,8 @@ our %unified_info = ( "test/libtestutil.a" ], "test/sslapitest" => [ - "libcrypto", - "libssl", + "libcrypto.a", + "libssl.a", "test/libtestutil.a" ], "test/sslbuffertest" => [ @@ -8094,6 +9440,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/strtoultest" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/sysdefaulttest" => [ "libcrypto", "libssl", @@ -8103,8 +9453,12 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/threadpool_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/threadstest" => [ - "libcrypto", + "libcrypto.a", "test/libtestutil.a" ], "test/threadstest_fips" => [ @@ -8115,6 +9469,10 @@ our %unified_info = ( "libcrypto", "test/libtestutil.a" ], + "test/time_test" => [ + "libcrypto.a", + "test/libtestutil.a" + ], "test/tls13ccstest" => [ "libcrypto", "libssl", @@ -8125,6 +9483,11 @@ our %unified_info = ( "libssl.a", "test/libtestutil.a" ], + "test/tls13groupselection_test" => [ + "libcrypto", + "libssl", + "test/libtestutil.a" + ], "test/trace_api_test" => [ "libcrypto.a", "test/libtestutil.a" @@ -8162,6 +9525,10 @@ our %unified_info = ( "libssl.a", "test/libtestutil.a" ], + "test/x509_acert_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/x509_check_cert_pkey_test" => [ "libcrypto", "test/libtestutil.a" @@ -8174,6 +9541,18 @@ our %unified_info = ( "libcrypto.a", "test/libtestutil.a" ], + "test/x509_load_cert_file_test" => [ + "libcrypto", + "test/libtestutil.a" + ], + "test/x509_req_test" => [ + "libcrypto", + "test/libtestutil.a" + ], + "test/x509_test" => [ + "libcrypto", + "test/libtestutil.a" + ], "test/x509_time_test" => [ "libcrypto", "test/libtestutil.a" @@ -8188,9 +9567,13 @@ our %unified_info = ( }, "dirinfo" => { "apps" => { + "deps" => [ + "apps/ca_internals_test-bin-ca.o" + ], "products" => { "bin" => [ - "apps/openssl" + "apps/openssl", + "test/ca_internals_test" ], "script" => [ "apps/CA.pl", @@ -8201,6 +9584,14 @@ our %unified_info = ( "apps/lib" => { "deps" => [ "apps/lib/openssl-bin-cmp_mock_srv.o", + "apps/lib/ca_internals_test-bin-app_libctx.o", + "apps/lib/ca_internals_test-bin-app_provider.o", + "apps/lib/ca_internals_test-bin-app_rand.o", + "apps/lib/ca_internals_test-bin-app_x509.o", + "apps/lib/ca_internals_test-bin-apps.o", + "apps/lib/ca_internals_test-bin-apps_ui.o", + "apps/lib/ca_internals_test-bin-engine.o", + "apps/lib/ca_internals_test-bin-fmt.o", "apps/lib/cmp_client_test-bin-cmp_mock_srv.o", "apps/lib/uitest-bin-apps_ui.o", "apps/lib/libapps-lib-app_libctx.o", @@ -8209,12 +9600,14 @@ our %unified_info = ( "apps/lib/libapps-lib-app_rand.o", "apps/lib/libapps-lib-app_x509.o", "apps/lib/libapps-lib-apps.o", + "apps/lib/libapps-lib-apps_opt_printf.o", "apps/lib/libapps-lib-apps_ui.o", "apps/lib/libapps-lib-columns.o", "apps/lib/libapps-lib-engine.o", "apps/lib/libapps-lib-engine_loader.o", "apps/lib/libapps-lib-fmt.o", "apps/lib/libapps-lib-http_server.o", + "apps/lib/libapps-lib-log.o", "apps/lib/libapps-lib-names.o", "apps/lib/libapps-lib-opt.o", "apps/lib/libapps-lib-s_cb.o", @@ -8225,6 +9618,7 @@ our %unified_info = ( "products" => { "bin" => [ "apps/openssl", + "test/ca_internals_test", "test/cmp_client_test", "test/uitest" ], @@ -8236,8 +9630,12 @@ our %unified_info = ( }, "crypto" => { "deps" => [ + "crypto/asn1_time_test-bin-ctype.o", + "crypto/ca_internals_test-bin-ctype.o", + "crypto/packettest-bin-quic_vlint.o", "crypto/libcrypto-lib-asn1_dsa.o", "crypto/libcrypto-lib-bsearch.o", + "crypto/libcrypto-lib-comp_methods.o", "crypto/libcrypto-lib-context.o", "crypto/libcrypto-lib-core_algorithm.o", "crypto/libcrypto-lib-core_fetch.o", @@ -8247,10 +9645,13 @@ our %unified_info = ( "crypto/libcrypto-lib-cryptlib.o", "crypto/libcrypto-lib-ctype.o", "crypto/libcrypto-lib-cversion.o", + "crypto/libcrypto-lib-defaults.o", "crypto/libcrypto-lib-der_writer.o", + "crypto/libcrypto-lib-deterministic_nonce.o", "crypto/libcrypto-lib-ebcdic.o", "crypto/libcrypto-lib-ex_data.o", "crypto/libcrypto-lib-getenv.o", + "crypto/libcrypto-lib-indicator_core.o", "crypto/libcrypto-lib-info.o", "crypto/libcrypto-lib-init.o", "crypto/libcrypto-lib-initthread.o", @@ -8267,6 +9668,7 @@ our %unified_info = ( "crypto/libcrypto-lib-params.o", "crypto/libcrypto-lib-params_dup.o", "crypto/libcrypto-lib-params_from_text.o", + "crypto/libcrypto-lib-params_idx.o", "crypto/libcrypto-lib-passphrase.o", "crypto/libcrypto-lib-provider.o", "crypto/libcrypto-lib-provider_child.o", @@ -8274,12 +9676,16 @@ our %unified_info = ( "crypto/libcrypto-lib-provider_core.o", "crypto/libcrypto-lib-provider_predefined.o", "crypto/libcrypto-lib-punycode.o", + "crypto/libcrypto-lib-quic_vlint.o", "crypto/libcrypto-lib-self_test_core.o", + "crypto/libcrypto-lib-sleep.o", "crypto/libcrypto-lib-sparse_array.o", + "crypto/libcrypto-lib-ssl_err.o", "crypto/libcrypto-lib-threads_lib.o", "crypto/libcrypto-lib-threads_none.o", "crypto/libcrypto-lib-threads_pthread.o", "crypto/libcrypto-lib-threads_win.o", + "crypto/libcrypto-lib-time.o", "crypto/libcrypto-lib-trace.o", "crypto/libcrypto-lib-uid.o", "crypto/libcrypto-lib-x86cpuid.o", @@ -8302,6 +9708,7 @@ our %unified_info = ( "crypto/libfips-lib-params.o", "crypto/libfips-lib-params_dup.o", "crypto/libfips-lib-params_from_text.o", + "crypto/libfips-lib-params_idx.o", "crypto/libfips-lib-provider_core.o", "crypto/libfips-lib-provider_predefined.o", "crypto/libfips-lib-self_test_core.o", @@ -8310,9 +9717,15 @@ our %unified_info = ( "crypto/libfips-lib-threads_none.o", "crypto/libfips-lib-threads_pthread.o", "crypto/libfips-lib-threads_win.o", + "crypto/libfips-lib-time.o", "crypto/libfips-lib-x86cpuid.o" ], "products" => { + "bin" => [ + "test/asn1_time_test", + "test/ca_internals_test", + "test/packettest" + ], "lib" => [ "libcrypto", "providers/libfips.a" @@ -8355,6 +9768,8 @@ our %unified_info = ( }, "crypto/asn1" => { "deps" => [ + "crypto/asn1/asn1_time_test-bin-a_time.o", + "crypto/asn1/ca_internals_test-bin-a_time.o", "crypto/asn1/libcrypto-lib-a_bitstr.o", "crypto/asn1/libcrypto-lib-a_d2i_fp.o", "crypto/asn1/libcrypto-lib-a_digest.o", @@ -8421,6 +9836,10 @@ our %unified_info = ( "crypto/asn1/libcrypto-lib-x_val.o" ], "products" => { + "bin" => [ + "test/asn1_time_test", + "test/ca_internals_test" + ], "lib" => [ "libcrypto" ] @@ -8486,6 +9905,7 @@ our %unified_info = ( "crypto/bio/libcrypto-lib-bss_conn.o", "crypto/bio/libcrypto-lib-bss_core.o", "crypto/bio/libcrypto-lib-bss_dgram.o", + "crypto/bio/libcrypto-lib-bss_dgram_pair.o", "crypto/bio/libcrypto-lib-bss_fd.o", "crypto/bio/libcrypto-lib-bss_file.o", "crypto/bio/libcrypto-lib-bss_log.o", @@ -8646,6 +10066,7 @@ our %unified_info = ( "crypto/cmp/libcrypto-lib-cmp_client.o", "crypto/cmp/libcrypto-lib-cmp_ctx.o", "crypto/cmp/libcrypto-lib-cmp_err.o", + "crypto/cmp/libcrypto-lib-cmp_genm.o", "crypto/cmp/libcrypto-lib-cmp_hdr.o", "crypto/cmp/libcrypto-lib-cmp_http.o", "crypto/cmp/libcrypto-lib-cmp_msg.o", @@ -9017,7 +10438,9 @@ our %unified_info = ( "crypto/err/libcrypto-lib-err_all.o", "crypto/err/libcrypto-lib-err_all_legacy.o", "crypto/err/libcrypto-lib-err_blocks.o", - "crypto/err/libcrypto-lib-err_prn.o" + "crypto/err/libcrypto-lib-err_mark.o", + "crypto/err/libcrypto-lib-err_prn.o", + "crypto/err/libcrypto-lib-err_save.o" ], "products" => { "lib" => [ @@ -9118,7 +10541,9 @@ our %unified_info = ( "crypto/evp/libcrypto-lib-pmeth_check.o", "crypto/evp/libcrypto-lib-pmeth_gn.o", "crypto/evp/libcrypto-lib-pmeth_lib.o", + "crypto/evp/libcrypto-lib-s_lib.o", "crypto/evp/libcrypto-lib-signature.o", + "crypto/evp/libcrypto-lib-skeymgmt_meth.o", "crypto/evp/libfips-lib-asymcipher.o", "crypto/evp/libfips-lib-dh_support.o", "crypto/evp/libfips-lib-digest.o", @@ -9134,14 +10559,15 @@ our %unified_info = ( "crypto/evp/libfips-lib-kem.o", "crypto/evp/libfips-lib-keymgmt_lib.o", "crypto/evp/libfips-lib-keymgmt_meth.o", - "crypto/evp/libfips-lib-m_sigver.o", "crypto/evp/libfips-lib-mac_lib.o", "crypto/evp/libfips-lib-mac_meth.o", "crypto/evp/libfips-lib-p_lib.o", "crypto/evp/libfips-lib-pmeth_check.o", "crypto/evp/libfips-lib-pmeth_gn.o", "crypto/evp/libfips-lib-pmeth_lib.o", - "crypto/evp/libfips-lib-signature.o" + "crypto/evp/libfips-lib-s_lib.o", + "crypto/evp/libfips-lib-signature.o", + "crypto/evp/libfips-lib-skeymgmt_meth.o" ], "products" => { "lib" => [ @@ -9174,6 +10600,20 @@ our %unified_info = ( ] } }, + "crypto/hashtable" => { + "deps" => [ + "crypto/hashtable/libcrypto-lib-hashfunc.o", + "crypto/hashtable/libcrypto-lib-hashtable.o", + "crypto/hashtable/libfips-lib-hashfunc.o", + "crypto/hashtable/libfips-lib-hashtable.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, "crypto/hmac" => { "deps" => [ "crypto/hmac/libcrypto-lib-hmac.o", @@ -9186,6 +10626,17 @@ our %unified_info = ( ] } }, + "crypto/hpke" => { + "deps" => [ + "crypto/hpke/libcrypto-lib-hpke.o", + "crypto/hpke/libcrypto-lib-hpke_util.o" + ], + "products" => { + "lib" => [ + "libcrypto" + ] + } + }, "crypto/http" => { "deps" => [ "crypto/http/libcrypto-lib-http_client.o", @@ -9270,6 +10721,44 @@ our %unified_info = ( ] } }, + "crypto/ml_dsa" => { + "deps" => [ + "crypto/ml_dsa/libcrypto-lib-ml_dsa_encoders.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key_compress.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_matrix.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_ntt.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_params.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sample.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sign.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_encoders.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_key.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_key_compress.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_matrix.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_ntt.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_params.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_sample.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_sign.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, + "crypto/ml_kem" => { + "deps" => [ + "crypto/ml_kem/libcrypto-lib-ml_kem.o", + "crypto/ml_kem/libfips-lib-ml_kem.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, "crypto/modes" => { "deps" => [ "crypto/modes/libcrypto-lib-cbc128.o", @@ -9284,6 +10773,7 @@ our %unified_info = ( "crypto/modes/libcrypto-lib-siv128.o", "crypto/modes/libcrypto-lib-wrap128.o", "crypto/modes/libcrypto-lib-xts128.o", + "crypto/modes/libcrypto-lib-xts128gb.o", "crypto/modes/libfips-lib-cbc128.o", "crypto/modes/libfips-lib-ccm128.o", "crypto/modes/libfips-lib-cfb128.o", @@ -9292,7 +10782,8 @@ our %unified_info = ( "crypto/modes/libfips-lib-ghash-x86.o", "crypto/modes/libfips-lib-ofb128.o", "crypto/modes/libfips-lib-wrap128.o", - "crypto/modes/libfips-lib-xts128.o" + "crypto/modes/libfips-lib-xts128.o", + "crypto/modes/libfips-lib-xts128gb.o" ], "products" => { "lib" => [ @@ -9436,6 +10927,7 @@ our %unified_info = ( "crypto/rand/libcrypto-lib-rand_lib.o", "crypto/rand/libcrypto-lib-rand_meth.o", "crypto/rand/libcrypto-lib-rand_pool.o", + "crypto/rand/libcrypto-lib-rand_uniform.o", "crypto/rand/libcrypto-lib-randfile.o", "crypto/rand/libfips-lib-rand_lib.o" ], @@ -9586,6 +11078,36 @@ our %unified_info = ( ] } }, + "crypto/slh_dsa" => { + "deps" => [ + "crypto/slh_dsa/libcrypto-lib-slh_adrs.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa_hash_ctx.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa_key.o", + "crypto/slh_dsa/libcrypto-lib-slh_fors.o", + "crypto/slh_dsa/libcrypto-lib-slh_hash.o", + "crypto/slh_dsa/libcrypto-lib-slh_hypertree.o", + "crypto/slh_dsa/libcrypto-lib-slh_params.o", + "crypto/slh_dsa/libcrypto-lib-slh_wots.o", + "crypto/slh_dsa/libcrypto-lib-slh_xmss.o", + "crypto/slh_dsa/libfips-lib-slh_adrs.o", + "crypto/slh_dsa/libfips-lib-slh_dsa.o", + "crypto/slh_dsa/libfips-lib-slh_dsa_hash_ctx.o", + "crypto/slh_dsa/libfips-lib-slh_dsa_key.o", + "crypto/slh_dsa/libfips-lib-slh_fors.o", + "crypto/slh_dsa/libfips-lib-slh_hash.o", + "crypto/slh_dsa/libfips-lib-slh_hypertree.o", + "crypto/slh_dsa/libfips-lib-slh_params.o", + "crypto/slh_dsa/libfips-lib-slh_wots.o", + "crypto/slh_dsa/libfips-lib-slh_xmss.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, "crypto/sm2" => { "deps" => [ "crypto/sm2/libcrypto-lib-sm2_crypt.o", @@ -9659,6 +11181,38 @@ our %unified_info = ( ] } }, + "crypto/thread" => { + "deps" => [ + "crypto/thread/libcrypto-lib-api.o", + "crypto/thread/libcrypto-lib-arch.o", + "crypto/thread/libcrypto-lib-internal.o", + "crypto/thread/libfips-lib-api.o", + "crypto/thread/libfips-lib-arch.o", + "crypto/thread/libfips-lib-internal.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, + "crypto/thread/arch" => { + "deps" => [ + "crypto/thread/arch/libcrypto-lib-thread_none.o", + "crypto/thread/arch/libcrypto-lib-thread_posix.o", + "crypto/thread/arch/libcrypto-lib-thread_win.o", + "crypto/thread/arch/libfips-lib-thread_none.o", + "crypto/thread/arch/libfips-lib-thread_posix.o", + "crypto/thread/arch/libfips-lib-thread_win.o" + ], + "products" => { + "lib" => [ + "libcrypto", + "providers/libfips.a" + ] + } + }, "crypto/ts" => { "deps" => [ "crypto/ts/libcrypto-lib-ts_asn1.o", @@ -9726,14 +11280,22 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-pcy_map.o", "crypto/x509/libcrypto-lib-pcy_node.o", "crypto/x509/libcrypto-lib-pcy_tree.o", + "crypto/x509/libcrypto-lib-t_acert.o", "crypto/x509/libcrypto-lib-t_crl.o", "crypto/x509/libcrypto-lib-t_req.o", "crypto/x509/libcrypto-lib-t_x509.o", + "crypto/x509/libcrypto-lib-v3_aaa.o", + "crypto/x509/libcrypto-lib-v3_ac_tgt.o", "crypto/x509/libcrypto-lib-v3_addr.o", "crypto/x509/libcrypto-lib-v3_admis.o", "crypto/x509/libcrypto-lib-v3_akeya.o", "crypto/x509/libcrypto-lib-v3_akid.o", "crypto/x509/libcrypto-lib-v3_asid.o", + "crypto/x509/libcrypto-lib-v3_attrdesc.o", + "crypto/x509/libcrypto-lib-v3_attrmap.o", + "crypto/x509/libcrypto-lib-v3_audit_id.o", + "crypto/x509/libcrypto-lib-v3_authattid.o", + "crypto/x509/libcrypto-lib-v3_battcons.o", "crypto/x509/libcrypto-lib-v3_bcons.o", "crypto/x509/libcrypto-lib-v3_bitst.o", "crypto/x509/libcrypto-lib-v3_conf.o", @@ -9742,12 +11304,17 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_enum.o", "crypto/x509/libcrypto-lib-v3_extku.o", "crypto/x509/libcrypto-lib-v3_genn.o", + "crypto/x509/libcrypto-lib-v3_group_ac.o", "crypto/x509/libcrypto-lib-v3_ia5.o", + "crypto/x509/libcrypto-lib-v3_ind_iss.o", "crypto/x509/libcrypto-lib-v3_info.o", "crypto/x509/libcrypto-lib-v3_int.o", + "crypto/x509/libcrypto-lib-v3_iobo.o", "crypto/x509/libcrypto-lib-v3_ist.o", "crypto/x509/libcrypto-lib-v3_lib.o", "crypto/x509/libcrypto-lib-v3_ncons.o", + "crypto/x509/libcrypto-lib-v3_no_ass.o", + "crypto/x509/libcrypto-lib-v3_no_rev_avail.o", "crypto/x509/libcrypto-lib-v3_pci.o", "crypto/x509/libcrypto-lib-v3_pcia.o", "crypto/x509/libcrypto-lib-v3_pcons.o", @@ -9755,13 +11322,20 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_pmaps.o", "crypto/x509/libcrypto-lib-v3_prn.o", "crypto/x509/libcrypto-lib-v3_purp.o", + "crypto/x509/libcrypto-lib-v3_rolespec.o", "crypto/x509/libcrypto-lib-v3_san.o", + "crypto/x509/libcrypto-lib-v3_sda.o", + "crypto/x509/libcrypto-lib-v3_single_use.o", "crypto/x509/libcrypto-lib-v3_skid.o", + "crypto/x509/libcrypto-lib-v3_soa_id.o", "crypto/x509/libcrypto-lib-v3_sxnet.o", + "crypto/x509/libcrypto-lib-v3_timespec.o", "crypto/x509/libcrypto-lib-v3_tlsf.o", + "crypto/x509/libcrypto-lib-v3_usernotice.o", "crypto/x509/libcrypto-lib-v3_utf8.o", "crypto/x509/libcrypto-lib-v3_utl.o", "crypto/x509/libcrypto-lib-v3err.o", + "crypto/x509/libcrypto-lib-x509_acert.o", "crypto/x509/libcrypto-lib-x509_att.o", "crypto/x509/libcrypto-lib-x509_cmp.o", "crypto/x509/libcrypto-lib-x509_d2.o", @@ -9779,6 +11353,7 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x509_v3.o", "crypto/x509/libcrypto-lib-x509_vfy.o", "crypto/x509/libcrypto-lib-x509_vpm.o", + "crypto/x509/libcrypto-lib-x509aset.o", "crypto/x509/libcrypto-lib-x509cset.o", "crypto/x509/libcrypto-lib-x509name.o", "crypto/x509/libcrypto-lib-x509rset.o", @@ -9788,6 +11363,7 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x_attrib.o", "crypto/x509/libcrypto-lib-x_crl.o", "crypto/x509/libcrypto-lib-x_exten.o", + "crypto/x509/libcrypto-lib-x_ietfatt.o", "crypto/x509/libcrypto-lib-x_name.o", "crypto/x509/libcrypto-lib-x_pubkey.o", "crypto/x509/libcrypto-lib-x_req.o", @@ -9815,6 +11391,7 @@ our %unified_info = ( "fuzz" => { "products" => { "bin" => [ + "fuzz/acert-test", "fuzz/asn1-test", "fuzz/asn1parse-test", "fuzz/bignum-test", @@ -9825,13 +11402,31 @@ our %unified_info = ( "fuzz/conf-test", "fuzz/crl-test", "fuzz/ct-test", + "fuzz/decoder-test", + "fuzz/dtlsclient-test", + "fuzz/dtlsserver-test", + "fuzz/hashtable-test", + "fuzz/ml-dsa-test", + "fuzz/ml-kem-test", + "fuzz/pem-test", + "fuzz/provider-test", + "fuzz/punycode-test", + "fuzz/quic-client-test", + "fuzz/quic-lcidm-test", + "fuzz/quic-rcidm-test", + "fuzz/quic-server-test", + "fuzz/quic-srtm-test", "fuzz/server-test", + "fuzz/slh-dsa-test", + "fuzz/smime-test", + "fuzz/v3name-test", "fuzz/x509-test" ] } }, "providers" => { "deps" => [ + "providers/endecode_test-bin-legacyprov.o", "providers/evp_extra_test-bin-legacyprov.o", "providers/libcrypto-lib-baseprov.o", "providers/libcrypto-lib-defltprov.o", @@ -9841,6 +11436,7 @@ our %unified_info = ( ], "products" => { "bin" => [ + "test/endecode_test", "test/evp_extra_test" ], "dso" => [ @@ -9892,8 +11488,12 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ec_sig.o", "providers/common/der/libcommon-lib-der_ecx_gen.o", "providers/common/der/libcommon-lib-der_ecx_key.o", + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o", + "providers/common/der/libcommon-lib-der_ml_dsa_key.o", "providers/common/der/libcommon-lib-der_rsa_gen.o", "providers/common/der/libcommon-lib-der_rsa_key.o", + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o", + "providers/common/der/libcommon-lib-der_slh_dsa_key.o", "providers/common/der/libcommon-lib-der_wrap_gen.o", "providers/common/der/libdefault-lib-der_rsa_sig.o", "providers/common/der/libdefault-lib-der_sm2_gen.o", @@ -9912,6 +11512,7 @@ our %unified_info = ( "providers/fips" => { "deps" => [ "providers/fips/fips-dso-fips_entry.o", + "providers/fips/libfips-lib-fipsindicator.o", "providers/fips/libfips-lib-fipsprov.o", "providers/fips/libfips-lib-self_test.o", "providers/fips/libfips-lib-self_test_kats.o" @@ -9955,6 +11556,9 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_aes_ccm_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_polyval.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_ocb.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_ocb_hw.o", @@ -9979,7 +11583,13 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_cts.o", "providers/implementations/ciphers/libdefault-lib-cipher_null.o", "providers/implementations/ciphers/libdefault-lib-cipher_sm4.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_sm4_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes_common.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes_default.o", @@ -10076,7 +11686,10 @@ our %unified_info = ( "providers/implementations/encode_decode/libdefault-lib-encode_key2blob.o", "providers/implementations/encode_decode/libdefault-lib-encode_key2ms.o", "providers/implementations/encode_decode/libdefault-lib-encode_key2text.o", - "providers/implementations/encode_decode/libdefault-lib-endecoder_common.o" + "providers/implementations/encode_decode/libdefault-lib-endecoder_common.o", + "providers/implementations/encode_decode/libdefault-lib-ml_common_codecs.o", + "providers/implementations/encode_decode/libdefault-lib-ml_dsa_codecs.o", + "providers/implementations/encode_decode/libdefault-lib-ml_kem_codecs.o" ], "products" => { "lib" => [ @@ -10104,7 +11717,9 @@ our %unified_info = ( }, "providers/implementations/kdfs" => { "deps" => [ + "providers/implementations/kdfs/libdefault-lib-argon2.o", "providers/implementations/kdfs/libdefault-lib-hkdf.o", + "providers/implementations/kdfs/libdefault-lib-hmacdrbg_kdf.o", "providers/implementations/kdfs/libdefault-lib-kbkdf.o", "providers/implementations/kdfs/libdefault-lib-krb5kdf.o", "providers/implementations/kdfs/libdefault-lib-pbkdf2.o", @@ -10123,7 +11738,8 @@ our %unified_info = ( "providers/implementations/kdfs/libfips-lib-sskdf.o", "providers/implementations/kdfs/libfips-lib-tls1_prf.o", "providers/implementations/kdfs/libfips-lib-x942kdf.o", - "providers/implementations/kdfs/liblegacy-lib-pbkdf1.o" + "providers/implementations/kdfs/liblegacy-lib-pbkdf1.o", + "providers/implementations/kdfs/liblegacy-lib-pvkkdf.o" ], "products" => { "lib" => [ @@ -10135,13 +11751,22 @@ our %unified_info = ( }, "providers/implementations/kem" => { "deps" => [ + "providers/implementations/kem/libdefault-lib-ec_kem.o", + "providers/implementations/kem/libdefault-lib-ecx_kem.o", + "providers/implementations/kem/libdefault-lib-kem_util.o", + "providers/implementations/kem/libdefault-lib-ml_kem_kem.o", + "providers/implementations/kem/libdefault-lib-mlx_kem.o", "providers/implementations/kem/libdefault-lib-rsa_kem.o", - "providers/implementations/kem/libfips-lib-rsa_kem.o" + "providers/implementations/kem/libfips-lib-ml_kem_kem.o", + "providers/implementations/kem/libfips-lib-mlx_kem.o", + "providers/implementations/kem/libfips-lib-rsa_kem.o", + "providers/implementations/kem/libtemplate-lib-template_kem.o" ], "products" => { "lib" => [ "providers/libdefault.a", - "providers/libfips.a" + "providers/libfips.a", + "providers/libtemplate.a" ] } }, @@ -10153,19 +11778,29 @@ our %unified_info = ( "providers/implementations/keymgmt/libdefault-lib-ecx_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-kdf_legacy_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-mac_legacy_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-ml_dsa_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-ml_kem_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-mlx_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-rsa_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-slh_dsa_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-dh_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-dsa_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-ec_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-ecx_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-kdf_legacy_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-mac_legacy_kmgmt.o", - "providers/implementations/keymgmt/libfips-lib-rsa_kmgmt.o" + "providers/implementations/keymgmt/libfips-lib-ml_dsa_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-ml_kem_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-mlx_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-rsa_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-slh_dsa_kmgmt.o", + "providers/implementations/keymgmt/libtemplate-lib-template_kmgmt.o" ], "products" => { "lib" => [ "providers/libdefault.a", - "providers/libfips.a" + "providers/libfips.a", + "providers/libtemplate.a" ] } }, @@ -10193,18 +11828,18 @@ our %unified_info = ( }, "providers/implementations/rands" => { "deps" => [ - "providers/implementations/rands/libdefault-lib-crngt.o", "providers/implementations/rands/libdefault-lib-drbg.o", "providers/implementations/rands/libdefault-lib-drbg_ctr.o", "providers/implementations/rands/libdefault-lib-drbg_hash.o", "providers/implementations/rands/libdefault-lib-drbg_hmac.o", "providers/implementations/rands/libdefault-lib-seed_src.o", + "providers/implementations/rands/libdefault-lib-seed_src_jitter.o", "providers/implementations/rands/libdefault-lib-test_rng.o", - "providers/implementations/rands/libfips-lib-crngt.o", "providers/implementations/rands/libfips-lib-drbg.o", "providers/implementations/rands/libfips-lib-drbg_ctr.o", "providers/implementations/rands/libfips-lib-drbg_hash.o", "providers/implementations/rands/libfips-lib-drbg_hmac.o", + "providers/implementations/rands/libfips-lib-fips_crng_test.o", "providers/implementations/rands/libfips-lib-test_rng.o" ], "products" => { @@ -10233,13 +11868,31 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-ecdsa_sig.o", "providers/implementations/signature/libdefault-lib-eddsa_sig.o", "providers/implementations/signature/libdefault-lib-mac_legacy_sig.o", + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o", "providers/implementations/signature/libdefault-lib-rsa_sig.o", + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o", "providers/implementations/signature/libdefault-lib-sm2_sig.o", "providers/implementations/signature/libfips-lib-dsa_sig.o", "providers/implementations/signature/libfips-lib-ecdsa_sig.o", "providers/implementations/signature/libfips-lib-eddsa_sig.o", "providers/implementations/signature/libfips-lib-mac_legacy_sig.o", - "providers/implementations/signature/libfips-lib-rsa_sig.o" + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o", + "providers/implementations/signature/libfips-lib-rsa_sig.o", + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o" + ], + "products" => { + "lib" => [ + "providers/libdefault.a", + "providers/libfips.a" + ] + } + }, + "providers/implementations/skeymgmt" => { + "deps" => [ + "providers/implementations/skeymgmt/libdefault-lib-aes_skmgmt.o", + "providers/implementations/skeymgmt/libdefault-lib-generic.o", + "providers/implementations/skeymgmt/libfips-lib-aes_skmgmt.o", + "providers/implementations/skeymgmt/libfips-lib-generic.o" ], "products" => { "lib" => [ @@ -10267,14 +11920,15 @@ our %unified_info = ( "ssl/libssl-lib-d1_srtp.o", "ssl/libssl-lib-methods.o", "ssl/libssl-lib-pqueue.o", + "ssl/libssl-lib-priority_queue.o", "ssl/libssl-lib-s3_enc.o", "ssl/libssl-lib-s3_lib.o", "ssl/libssl-lib-s3_msg.o", "ssl/libssl-lib-ssl_asn1.o", "ssl/libssl-lib-ssl_cert.o", + "ssl/libssl-lib-ssl_cert_comp.o", "ssl/libssl-lib-ssl_ciph.o", "ssl/libssl-lib-ssl_conf.o", - "ssl/libssl-lib-ssl_err.o", "ssl/libssl-lib-ssl_err_legacy.o", "ssl/libssl-lib-ssl_init.o", "ssl/libssl-lib-ssl_lib.o", @@ -10290,32 +11944,107 @@ our %unified_info = ( "ssl/libssl-lib-t1_trce.o", "ssl/libssl-lib-tls13_enc.o", "ssl/libssl-lib-tls_depr.o", - "ssl/libssl-lib-tls_srp.o", - "ssl/libdefault-lib-s3_cbc.o", - "ssl/libfips-lib-s3_cbc.o" + "ssl/libssl-lib-tls_srp.o" ], "products" => { "lib" => [ - "libssl", - "providers/libdefault.a", - "providers/libfips.a" + "libssl" + ] + } + }, + "ssl/quic" => { + "deps" => [ + "ssl/quic/libssl-lib-cc_newreno.o", + "ssl/quic/libssl-lib-json_enc.o", + "ssl/quic/libssl-lib-qlog.o", + "ssl/quic/libssl-lib-qlog_event_helpers.o", + "ssl/quic/libssl-lib-quic_ackm.o", + "ssl/quic/libssl-lib-quic_cfq.o", + "ssl/quic/libssl-lib-quic_channel.o", + "ssl/quic/libssl-lib-quic_demux.o", + "ssl/quic/libssl-lib-quic_engine.o", + "ssl/quic/libssl-lib-quic_fc.o", + "ssl/quic/libssl-lib-quic_fifd.o", + "ssl/quic/libssl-lib-quic_impl.o", + "ssl/quic/libssl-lib-quic_lcidm.o", + "ssl/quic/libssl-lib-quic_method.o", + "ssl/quic/libssl-lib-quic_obj.o", + "ssl/quic/libssl-lib-quic_port.o", + "ssl/quic/libssl-lib-quic_rcidm.o", + "ssl/quic/libssl-lib-quic_reactor.o", + "ssl/quic/libssl-lib-quic_reactor_wait_ctx.o", + "ssl/quic/libssl-lib-quic_record_rx.o", + "ssl/quic/libssl-lib-quic_record_shared.o", + "ssl/quic/libssl-lib-quic_record_tx.o", + "ssl/quic/libssl-lib-quic_record_util.o", + "ssl/quic/libssl-lib-quic_rstream.o", + "ssl/quic/libssl-lib-quic_rx_depack.o", + "ssl/quic/libssl-lib-quic_sf_list.o", + "ssl/quic/libssl-lib-quic_srt_gen.o", + "ssl/quic/libssl-lib-quic_srtm.o", + "ssl/quic/libssl-lib-quic_sstream.o", + "ssl/quic/libssl-lib-quic_statm.o", + "ssl/quic/libssl-lib-quic_stream_map.o", + "ssl/quic/libssl-lib-quic_thread_assist.o", + "ssl/quic/libssl-lib-quic_tls.o", + "ssl/quic/libssl-lib-quic_tls_api.o", + "ssl/quic/libssl-lib-quic_trace.o", + "ssl/quic/libssl-lib-quic_tserver.o", + "ssl/quic/libssl-lib-quic_txp.o", + "ssl/quic/libssl-lib-quic_txpim.o", + "ssl/quic/libssl-lib-quic_types.o", + "ssl/quic/libssl-lib-quic_wire.o", + "ssl/quic/libssl-lib-quic_wire_pkt.o", + "ssl/quic/libssl-lib-uint_set.o" + ], + "products" => { + "lib" => [ + "libssl" ] } }, "ssl/record" => { "deps" => [ - "ssl/record/libssl-lib-dtls1_bitmap.o", "ssl/record/libssl-lib-rec_layer_d1.o", - "ssl/record/libssl-lib-rec_layer_s3.o", - "ssl/record/libssl-lib-ssl3_buffer.o", - "ssl/record/libssl-lib-ssl3_record.o", - "ssl/record/libssl-lib-ssl3_record_tls13.o", - "ssl/record/libcommon-lib-tls_pad.o" + "ssl/record/libssl-lib-rec_layer_s3.o" + ], + "products" => { + "lib" => [ + "libssl" + ] + } + }, + "ssl/record/methods" => { + "deps" => [ + "ssl/record/methods/libssl-lib-dtls_meth.o", + "ssl/record/methods/libssl-lib-ssl3_meth.o", + "ssl/record/methods/libssl-lib-tls13_meth.o", + "ssl/record/methods/libssl-lib-tls1_meth.o", + "ssl/record/methods/libssl-lib-tls_common.o", + "ssl/record/methods/libssl-lib-tls_multib.o", + "ssl/record/methods/libssl-lib-tlsany_meth.o", + "ssl/record/methods/libcommon-lib-tls_pad.o", + "ssl/record/methods/libdefault-lib-ssl3_cbc.o", + "ssl/record/methods/libfips-lib-ssl3_cbc.o" ], "products" => { "lib" => [ "libssl", - "providers/libcommon.a" + "providers/libcommon.a", + "providers/libdefault.a", + "providers/libfips.a" + ] + } + }, + "ssl/rio" => { + "deps" => [ + "ssl/rio/libssl-lib-poll_builder.o", + "ssl/rio/libssl-lib-poll_immediate.o", + "ssl/rio/libssl-lib-rio_notifier.o" + ], + "products" => { + "lib" => [ + "libssl" ] } }, @@ -10353,9 +12082,40 @@ our %unified_info = ( "test/helpers/dtlstest-bin-ssltestlib.o", "test/helpers/endecode_test-bin-predefined_dhparams.o", "test/helpers/fatalerrtest-bin-ssltestlib.o", + "test/helpers/json_test-bin-noisydgrambio.o", + "test/helpers/json_test-bin-pktsplitbio.o", + "test/helpers/json_test-bin-quictestlib.o", + "test/helpers/json_test-bin-ssltestlib.o", + "test/helpers/pkcs12_api_test-bin-pkcs12.o", "test/helpers/pkcs12_format_test-bin-pkcs12.o", + "test/helpers/quic_multistream_test-bin-noisydgrambio.o", + "test/helpers/quic_multistream_test-bin-pktsplitbio.o", + "test/helpers/quic_multistream_test-bin-quictestlib.o", + "test/helpers/quic_multistream_test-bin-ssltestlib.o", + "test/helpers/quic_newcid_test-bin-noisydgrambio.o", + "test/helpers/quic_newcid_test-bin-pktsplitbio.o", + "test/helpers/quic_newcid_test-bin-quictestlib.o", + "test/helpers/quic_newcid_test-bin-ssltestlib.o", + "test/helpers/quic_radix_test-bin-noisydgrambio.o", + "test/helpers/quic_radix_test-bin-pktsplitbio.o", + "test/helpers/quic_radix_test-bin-quictestlib.o", + "test/helpers/quic_radix_test-bin-ssltestlib.o", + "test/helpers/quic_srt_gen_test-bin-noisydgrambio.o", + "test/helpers/quic_srt_gen_test-bin-pktsplitbio.o", + "test/helpers/quic_srt_gen_test-bin-quictestlib.o", + "test/helpers/quic_srt_gen_test-bin-ssltestlib.o", + "test/helpers/quicapitest-bin-noisydgrambio.o", + "test/helpers/quicapitest-bin-pktsplitbio.o", + "test/helpers/quicapitest-bin-quictestlib.o", + "test/helpers/quicapitest-bin-ssltestlib.o", + "test/helpers/quicfaultstest-bin-noisydgrambio.o", + "test/helpers/quicfaultstest-bin-pktsplitbio.o", + "test/helpers/quicfaultstest-bin-quictestlib.o", + "test/helpers/quicfaultstest-bin-ssltestlib.o", "test/helpers/recordlentest-bin-ssltestlib.o", + "test/helpers/rpktest-bin-ssltestlib.o", "test/helpers/servername_test-bin-ssltestlib.o", + "test/helpers/ssl_handshake_rtt_test-bin-ssltestlib.o", "test/helpers/ssl_old_test-bin-predefined_dhparams.o", "test/helpers/ssl_test-bin-handshake.o", "test/helpers/ssl_test-bin-handshake_srp.o", @@ -10364,7 +12124,8 @@ our %unified_info = ( "test/helpers/sslapitest-bin-ssltestlib.o", "test/helpers/sslbuffertest-bin-ssltestlib.o", "test/helpers/sslcorrupttest-bin-ssltestlib.o", - "test/helpers/tls13ccstest-bin-ssltestlib.o" + "test/helpers/tls13ccstest-bin-ssltestlib.o", + "test/helpers/tls13groupselection_test-bin-ssltestlib.o" ], "products" => { "bin" => [ @@ -10382,16 +12143,37 @@ our %unified_info = ( "test/dtlstest", "test/endecode_test", "test/fatalerrtest", + "test/json_test", + "test/pkcs12_api_test", "test/pkcs12_format_test", + "test/quic_multistream_test", + "test/quic_newcid_test", + "test/quic_radix_test", + "test/quic_srt_gen_test", + "test/quicapitest", + "test/quicfaultstest", "test/recordlentest", + "test/rpktest", "test/servername_test", + "test/ssl_handshake_rtt_test", "test/ssl_old_test", "test/ssl_test", "test/ssl_test_ctx_test", "test/sslapitest", "test/sslbuffertest", "test/sslcorrupttest", - "test/tls13ccstest" + "test/tls13ccstest", + "test/tls13groupselection_test" + ] + } + }, + "test/radix" => { + "deps" => [ + "test/radix/quic_radix_test-bin-quic_radix.o" + ], + "products" => { + "bin" => [ + "test/quic_radix_test" ] } }, @@ -10403,6 +12185,7 @@ our %unified_info = ( "test/testutil/libtestutil-lib-driver.o", "test/testutil/libtestutil-lib-fake_random.o", "test/testutil/libtestutil-lib-format_output.o", + "test/testutil/libtestutil-lib-helper.o", "test/testutil/libtestutil-lib-load.o", "test/testutil/libtestutil-lib-main.o", "test/testutil/libtestutil-lib-options.o", @@ -10438,6 +12221,12 @@ our %unified_info = ( } }, "generate" => { + "OpenSSLConfig.cmake" => [ + "exporters/cmake/OpenSSLConfig.cmake.in" + ], + "OpenSSLConfigVersion.cmake" => [ + "exporters/cmake/OpenSSLConfigVersion.cmake.in" + ], "apps/progs.c" => [ "apps/progs.pl", "\"-C\"", @@ -10448,6 +12237,19 @@ our %unified_info = ( "\"-H\"", "\$(APPS_OPENSSL)" ], + "builddata.pm" => [ + "util/mkinstallvars.pl", + "PREFIX=.", + "BINDIR=apps", + "APPLINKDIR=ms", + "LIBDIR=", + "INCLUDEDIR=include", + "\"INCLUDEDIR=\$(SRCDIR)/include\"", + "ENGINESDIR=engines", + "MODULESDIR=providers", + "\"VERSION=\$(VERSION)\"", + "\"LDLIBS=\$(LIB_EX_LIBS)\"" + ], "crypto/aes/aes-586.S" => [ "crypto/aes/asm/aes-586.pl" ], @@ -10469,6 +12271,24 @@ our %unified_info = ( "crypto/aes/aes-ppc.s" => [ "crypto/aes/asm/aes-ppc.pl" ], + "crypto/aes/aes-riscv32-zkn.s" => [ + "crypto/aes/asm/aes-riscv32-zkn.pl" + ], + "crypto/aes/aes-riscv64-zkn.s" => [ + "crypto/aes/asm/aes-riscv64-zkn.pl" + ], + "crypto/aes/aes-riscv64-zvbb-zvkg-zvkned.s" => [ + "crypto/aes/asm/aes-riscv64-zvbb-zvkg-zvkned.pl" + ], + "crypto/aes/aes-riscv64-zvkb-zvkned.s" => [ + "crypto/aes/asm/aes-riscv64-zvkb-zvkned.pl" + ], + "crypto/aes/aes-riscv64-zvkned.s" => [ + "crypto/aes/asm/aes-riscv64-zvkned.pl" + ], + "crypto/aes/aes-riscv64.s" => [ + "crypto/aes/asm/aes-riscv64.pl" + ], "crypto/aes/aes-s390x.S" => [ "crypto/aes/asm/aes-s390x.pl" ], @@ -10496,6 +12316,9 @@ our %unified_info = ( "crypto/aes/aesni-x86_64.s" => [ "crypto/aes/asm/aesni-x86_64.pl" ], + "crypto/aes/aesni-xts-avx512.s" => [ + "crypto/aes/asm/aesni-xts-avx512.pl" + ], "crypto/aes/aesp8-ppc.s" => [ "crypto/aes/asm/aesp8-ppc.pl" ], @@ -10508,12 +12331,18 @@ our %unified_info = ( "crypto/aes/bsaes-armv7.S" => [ "crypto/aes/asm/bsaes-armv7.pl" ], + "crypto/aes/bsaes-armv8.S" => [ + "crypto/aes/asm/bsaes-armv8.pl" + ], "crypto/aes/bsaes-x86_64.s" => [ "crypto/aes/asm/bsaes-x86_64.pl" ], "crypto/aes/vpaes-armv8.S" => [ "crypto/aes/asm/vpaes-armv8.pl" ], + "crypto/aes/vpaes-loongarch64.S" => [ + "crypto/aes/asm/vpaes-loongarch64.pl" + ], "crypto/aes/vpaes-ppc.s" => [ "crypto/aes/asm/vpaes-ppc.pl" ], @@ -10574,15 +12403,33 @@ our %unified_info = ( "crypto/bn/ppc-mont.s" => [ "crypto/bn/asm/ppc-mont.pl" ], + "crypto/bn/ppc64-mont-fixed.s" => [ + "crypto/bn/asm/ppc64-mont-fixed.pl" + ], "crypto/bn/ppc64-mont.s" => [ "crypto/bn/asm/ppc64-mont.pl" ], + "crypto/bn/rsaz-2k-avx512.s" => [ + "crypto/bn/asm/rsaz-2k-avx512.pl" + ], + "crypto/bn/rsaz-2k-avxifma.s" => [ + "crypto/bn/asm/rsaz-2k-avxifma.pl" + ], + "crypto/bn/rsaz-3k-avx512.s" => [ + "crypto/bn/asm/rsaz-3k-avx512.pl" + ], + "crypto/bn/rsaz-3k-avxifma.s" => [ + "crypto/bn/asm/rsaz-3k-avxifma.pl" + ], + "crypto/bn/rsaz-4k-avx512.s" => [ + "crypto/bn/asm/rsaz-4k-avx512.pl" + ], + "crypto/bn/rsaz-4k-avxifma.s" => [ + "crypto/bn/asm/rsaz-4k-avxifma.pl" + ], "crypto/bn/rsaz-avx2.s" => [ "crypto/bn/asm/rsaz-avx2.pl" ], - "crypto/bn/rsaz-avx512.s" => [ - "crypto/bn/asm/rsaz-avx512.pl" - ], "crypto/bn/rsaz-x86_64.s" => [ "crypto/bn/asm/rsaz-x86_64.pl" ], @@ -10644,6 +12491,9 @@ our %unified_info = ( "crypto/chacha/chacha-armv4.S" => [ "crypto/chacha/asm/chacha-armv4.pl" ], + "crypto/chacha/chacha-armv8-sve.S" => [ + "crypto/chacha/asm/chacha-armv8-sve.pl" + ], "crypto/chacha/chacha-armv8.S" => [ "crypto/chacha/asm/chacha-armv8.pl" ], @@ -10656,9 +12506,19 @@ our %unified_info = ( "crypto/chacha/chacha-ia64.s" => [ "crypto/chacha/chacha-ia64.S" ], + "crypto/chacha/chacha-loongarch64.S" => [ + "crypto/chacha/asm/chacha-loongarch64.pl" + ], "crypto/chacha/chacha-ppc.s" => [ "crypto/chacha/asm/chacha-ppc.pl" ], + "crypto/chacha/chacha-riscv64-v-zbb-zvkb.s" => [ + "crypto/chacha/asm/chacha-riscv64-v-zbb.pl", + "zvkb" + ], + "crypto/chacha/chacha-riscv64-v-zbb.s" => [ + "crypto/chacha/asm/chacha-riscv64-v-zbb.pl" + ], "crypto/chacha/chacha-s390x.S" => [ "crypto/chacha/asm/chacha-s390x.pl" ], @@ -10668,6 +12528,9 @@ our %unified_info = ( "crypto/chacha/chacha-x86_64.s" => [ "crypto/chacha/asm/chacha-x86_64.pl" ], + "crypto/chacha/chachap10-ppc.s" => [ + "crypto/chacha/asm/chachap10-ppc.pl" + ], "crypto/des/crypt586.S" => [ "crypto/des/asm/crypt586.pl" ], @@ -10680,6 +12543,9 @@ our %unified_info = ( "crypto/des/dest4-sparcv9.S" => [ "crypto/des/asm/dest4-sparcv9.pl" ], + "crypto/ec/ecp_nistp384-ppc64.s" => [ + "crypto/ec/asm/ecp_nistp384-ppc64.pl" + ], "crypto/ec/ecp_nistp521-ppc64.s" => [ "crypto/ec/asm/ecp_nistp521-ppc64.pl" ], @@ -10704,6 +12570,9 @@ our %unified_info = ( "crypto/ec/ecp_nistz256-x86_64.s" => [ "crypto/ec/asm/ecp_nistz256-x86_64.pl" ], + "crypto/ec/ecp_sm2p256-armv8.S" => [ + "crypto/ec/asm/ecp_sm2p256-armv8.pl" + ], "crypto/ec/x25519-ppc64.s" => [ "crypto/ec/asm/x25519-ppc64.pl" ], @@ -10713,18 +12582,39 @@ our %unified_info = ( "crypto/ia64cpuid.s" => [ "crypto/ia64cpuid.S" ], + "crypto/loongarch64cpuid.s" => [ + "crypto/loongarch64cpuid.pl" + ], "crypto/md5/md5-586.S" => [ "crypto/md5/asm/md5-586.pl" ], + "crypto/md5/md5-aarch64.S" => [ + "crypto/md5/asm/md5-aarch64.pl" + ], + "crypto/md5/md5-loongarch64.S" => [ + "crypto/md5/asm/md5-loongarch64.pl" + ], "crypto/md5/md5-sparcv9.S" => [ "crypto/md5/asm/md5-sparcv9.pl" ], "crypto/md5/md5-x86_64.s" => [ "crypto/md5/asm/md5-x86_64.pl" ], + "crypto/modes/aes-gcm-armv8-unroll8_64.S" => [ + "crypto/modes/asm/aes-gcm-armv8-unroll8_64.pl" + ], "crypto/modes/aes-gcm-armv8_64.S" => [ "crypto/modes/asm/aes-gcm-armv8_64.pl" ], + "crypto/modes/aes-gcm-avx512.s" => [ + "crypto/modes/asm/aes-gcm-avx512.pl" + ], + "crypto/modes/aes-gcm-ppc.s" => [ + "crypto/modes/asm/aes-gcm-ppc.pl" + ], + "crypto/modes/aes-gcm-riscv64-zvkb-zvkg-zvkned.s" => [ + "crypto/modes/asm/aes-gcm-riscv64-zvkb-zvkg-zvkned.pl" + ], "crypto/modes/aesni-gcm-x86_64.s" => [ "crypto/modes/asm/aesni-gcm-x86_64.pl" ], @@ -10743,6 +12633,15 @@ our %unified_info = ( "crypto/modes/ghash-parisc.s" => [ "crypto/modes/asm/ghash-parisc.pl" ], + "crypto/modes/ghash-riscv64-zvkb-zvbc.s" => [ + "crypto/modes/asm/ghash-riscv64-zvkb-zvbc.pl" + ], + "crypto/modes/ghash-riscv64-zvkg.s" => [ + "crypto/modes/asm/ghash-riscv64-zvkg.pl" + ], + "crypto/modes/ghash-riscv64.s" => [ + "crypto/modes/asm/ghash-riscv64.pl" + ], "crypto/modes/ghash-s390x.S" => [ "crypto/modes/asm/ghash-s390x.pl" ], @@ -10761,6 +12660,9 @@ our %unified_info = ( "crypto/modes/ghashv8-armx.S" => [ "crypto/modes/asm/ghashv8-armx.pl" ], + "crypto/params_idx.c" => [ + "crypto/params_idx.c.in" + ], "crypto/pariscid.s" => [ "crypto/pariscid.pl" ], @@ -10821,6 +12723,12 @@ our %unified_info = ( "crypto/ripemd/rmd-586.S" => [ "crypto/ripemd/asm/rmd-586.pl" ], + "crypto/riscv32cpuid.s" => [ + "crypto/riscv32cpuid.pl" + ], + "crypto/riscv64cpuid.s" => [ + "crypto/riscv64cpuid.pl" + ], "crypto/s390xcpuid.S" => [ "crypto/s390xcpuid.pl" ], @@ -10929,6 +12837,9 @@ our %unified_info = ( "crypto/sha/sha256-ppc.s" => [ "crypto/sha/asm/sha512-ppc.pl" ], + "crypto/sha/sha256-riscv64-zvkb-zvknha_or_zvknhb.S" => [ + "crypto/sha/asm/sha256-riscv64-zvkb-zvknha_or_zvknhb.pl" + ], "crypto/sha/sha256-s390x.S" => [ "crypto/sha/asm/sha512-s390x.pl" ], @@ -10965,6 +12876,9 @@ our %unified_info = ( "crypto/sha/sha512-ppc.s" => [ "crypto/sha/asm/sha512-ppc.pl" ], + "crypto/sha/sha512-riscv64-zvkb-zvknhb.S" => [ + "crypto/sha/asm/sha512-riscv64-zvkb-zvknhb.pl" + ], "crypto/sha/sha512-s390x.S" => [ "crypto/sha/asm/sha512-s390x.pl" ], @@ -10977,6 +12891,24 @@ our %unified_info = ( "crypto/sha/sha512p8-ppc.s" => [ "crypto/sha/asm/sha512p8-ppc.pl" ], + "crypto/sm3/sm3-armv8.S" => [ + "crypto/sm3/asm/sm3-armv8.pl" + ], + "crypto/sm3/sm3-riscv64-zvksh.S" => [ + "crypto/sm3/asm/sm3-riscv64-zvksh.pl" + ], + "crypto/sm4/sm4-armv8.S" => [ + "crypto/sm4/asm/sm4-armv8.pl" + ], + "crypto/sm4/sm4-riscv64-zvksed.s" => [ + "crypto/sm4/asm/sm4-riscv64-zvksed.pl" + ], + "crypto/sm4/vpsm4-armv8.S" => [ + "crypto/sm4/asm/vpsm4-armv8.pl" + ], + "crypto/sm4/vpsm4_ex-armv8.S" => [ + "crypto/sm4/asm/vpsm4_ex-armv8.pl" + ], "crypto/uplink-ia64.s" => [ "ms/uplink-ia64.pl" ], @@ -11142,6 +13074,9 @@ our %unified_info = ( "doc/html/man1/openssl-sess_id.html" => [ "doc/man1/openssl-sess_id.pod" ], + "doc/html/man1/openssl-skeyutl.html" => [ + "doc/man1/openssl-skeyutl.pod" + ], "doc/html/man1/openssl-smime.html" => [ "doc/man1/openssl-smime.pod" ], @@ -11283,6 +13218,9 @@ our %unified_info = ( "doc/html/man3/BIO_get_ex_new_index.html" => [ "doc/man3/BIO_get_ex_new_index.pod" ], + "doc/html/man3/BIO_get_rpoll_descriptor.html" => [ + "doc/man3/BIO_get_rpoll_descriptor.pod" + ], "doc/html/man3/BIO_meth_new.html" => [ "doc/man3/BIO_meth_new.pod" ], @@ -11319,6 +13257,9 @@ our %unified_info = ( "doc/html/man3/BIO_s_datagram.html" => [ "doc/man3/BIO_s_datagram.pod" ], + "doc/html/man3/BIO_s_dgram_pair.html" => [ + "doc/man3/BIO_s_dgram_pair.pod" + ], "doc/html/man3/BIO_s_fd.html" => [ "doc/man3/BIO_s_fd.pod" ], @@ -11334,6 +13275,9 @@ our %unified_info = ( "doc/html/man3/BIO_s_socket.html" => [ "doc/man3/BIO_s_socket.pod" ], + "doc/html/man3/BIO_sendmmsg.html" => [ + "doc/man3/BIO_sendmmsg.pod" + ], "doc/html/man3/BIO_set_callback.html" => [ "doc/man3/BIO_set_callback.pod" ], @@ -11406,6 +13350,9 @@ our %unified_info = ( "doc/html/man3/BUF_MEM_new.html" => [ "doc/man3/BUF_MEM_new.pod" ], + "doc/html/man3/CMAC_CTX.html" => [ + "doc/man3/CMAC_CTX.pod" + ], "doc/html/man3/CMS_EncryptedData_decrypt.html" => [ "doc/man3/CMS_EncryptedData_decrypt.pod" ], @@ -11472,6 +13419,9 @@ our %unified_info = ( "doc/html/man3/CMS_verify_receipt.html" => [ "doc/man3/CMS_verify_receipt.pod" ], + "doc/html/man3/COMP_CTX_new.html" => [ + "doc/man3/COMP_CTX_new.pod" + ], "doc/html/man3/CONF_modules_free.html" => [ "doc/man3/CONF_modules_free.pod" ], @@ -11571,6 +13521,12 @@ our %unified_info = ( "doc/html/man3/DTLS_set_timer_cb.html" => [ "doc/man3/DTLS_set_timer_cb.pod" ], + "doc/html/man3/DTLSv1_get_timeout.html" => [ + "doc/man3/DTLSv1_get_timeout.pod" + ], + "doc/html/man3/DTLSv1_handle_timeout.html" => [ + "doc/man3/DTLSv1_handle_timeout.pod" + ], "doc/html/man3/DTLSv1_listen.html" => [ "doc/man3/DTLSv1_listen.pod" ], @@ -11709,6 +13665,9 @@ our %unified_info = ( "doc/html/man3/EVP_PKEY_CTX_get0_pkey.html" => [ "doc/man3/EVP_PKEY_CTX_get0_pkey.pod" ], + "doc/html/man3/EVP_PKEY_CTX_get_algor.html" => [ + "doc/man3/EVP_PKEY_CTX_get_algor.pod" + ], "doc/html/man3/EVP_PKEY_CTX_new.html" => [ "doc/man3/EVP_PKEY_CTX_new.pod" ], @@ -11826,6 +13785,12 @@ our %unified_info = ( "doc/html/man3/EVP_SIGNATURE.html" => [ "doc/man3/EVP_SIGNATURE.pod" ], + "doc/html/man3/EVP_SKEY.html" => [ + "doc/man3/EVP_SKEY.pod" + ], + "doc/html/man3/EVP_SKEYMGMT.html" => [ + "doc/man3/EVP_SKEYMGMT.pod" + ], "doc/html/man3/EVP_SealInit.html" => [ "doc/man3/EVP_SealInit.pod" ], @@ -11913,6 +13878,9 @@ our %unified_info = ( "doc/html/man3/EVP_whirlpool.html" => [ "doc/man3/EVP_whirlpool.pod" ], + "doc/html/man3/GENERAL_NAME.html" => [ + "doc/man3/GENERAL_NAME.pod" + ], "doc/html/man3/HMAC.html" => [ "doc/man3/HMAC.pod" ], @@ -11985,9 +13953,15 @@ our %unified_info = ( "doc/html/man3/OPENSSL_load_builtin_modules.html" => [ "doc/man3/OPENSSL_load_builtin_modules.pod" ], + "doc/html/man3/OPENSSL_load_u16_le.html" => [ + "doc/man3/OPENSSL_load_u16_le.pod" + ], "doc/html/man3/OPENSSL_malloc.html" => [ "doc/man3/OPENSSL_malloc.pod" ], + "doc/html/man3/OPENSSL_riscvcap.html" => [ + "doc/man3/OPENSSL_riscvcap.pod" + ], "doc/html/man3/OPENSSL_s390xcap.html" => [ "doc/man3/OPENSSL_s390xcap.pod" ], @@ -12003,12 +13977,18 @@ our %unified_info = ( "doc/html/man3/OSSL_CALLBACK.html" => [ "doc/man3/OSSL_CALLBACK.pod" ], + "doc/html/man3/OSSL_CMP_ATAV_set0.html" => [ + "doc/man3/OSSL_CMP_ATAV_set0.pod" + ], "doc/html/man3/OSSL_CMP_CTX_new.html" => [ "doc/man3/OSSL_CMP_CTX_new.pod" ], "doc/html/man3/OSSL_CMP_HDR_get0_transactionID.html" => [ "doc/man3/OSSL_CMP_HDR_get0_transactionID.pod" ], + "doc/html/man3/OSSL_CMP_ITAV_new_caCerts.html" => [ + "doc/man3/OSSL_CMP_ITAV_new_caCerts.pod" + ], "doc/html/man3/OSSL_CMP_ITAV_set0.html" => [ "doc/man3/OSSL_CMP_ITAV_set0.pod" ], @@ -12078,9 +14058,18 @@ our %unified_info = ( "doc/html/man3/OSSL_ENCODER_to_bio.html" => [ "doc/man3/OSSL_ENCODER_to_bio.pod" ], + "doc/html/man3/OSSL_ERR_STATE_save.html" => [ + "doc/man3/OSSL_ERR_STATE_save.pod" + ], "doc/html/man3/OSSL_ESS_check_signing_certs.html" => [ "doc/man3/OSSL_ESS_check_signing_certs.pod" ], + "doc/html/man3/OSSL_GENERAL_NAMES_print.html" => [ + "doc/man3/OSSL_GENERAL_NAMES_print.pod" + ], + "doc/html/man3/OSSL_HPKE_CTX_new.html" => [ + "doc/man3/OSSL_HPKE_CTX_new.pod" + ], "doc/html/man3/OSSL_HTTP_REQ_CTX.html" => [ "doc/man3/OSSL_HTTP_REQ_CTX.pod" ], @@ -12090,12 +14079,24 @@ our %unified_info = ( "doc/html/man3/OSSL_HTTP_transfer.html" => [ "doc/man3/OSSL_HTTP_transfer.pod" ], + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX.html" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX.pod" + ], + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX_print.html" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX_print.pod" + ], + "doc/html/man3/OSSL_INDICATOR_set_callback.html" => [ + "doc/man3/OSSL_INDICATOR_set_callback.pod" + ], "doc/html/man3/OSSL_ITEM.html" => [ "doc/man3/OSSL_ITEM.pod" ], "doc/html/man3/OSSL_LIB_CTX.html" => [ "doc/man3/OSSL_LIB_CTX.pod" ], + "doc/html/man3/OSSL_LIB_CTX_set_conf_diagnostics.html" => [ + "doc/man3/OSSL_LIB_CTX_set_conf_diagnostics.pod" + ], "doc/html/man3/OSSL_PARAM.html" => [ "doc/man3/OSSL_PARAM.pod" ], @@ -12111,9 +14112,15 @@ our %unified_info = ( "doc/html/man3/OSSL_PARAM_int.html" => [ "doc/man3/OSSL_PARAM_int.pod" ], + "doc/html/man3/OSSL_PARAM_print_to_bio.html" => [ + "doc/man3/OSSL_PARAM_print_to_bio.pod" + ], "doc/html/man3/OSSL_PROVIDER.html" => [ "doc/man3/OSSL_PROVIDER.pod" ], + "doc/html/man3/OSSL_QUIC_client_method.html" => [ + "doc/man3/OSSL_QUIC_client_method.pod" + ], "doc/html/man3/OSSL_SELF_TEST_new.html" => [ "doc/man3/OSSL_SELF_TEST_new.pod" ], @@ -12138,6 +14145,9 @@ our %unified_info = ( "doc/html/man3/OSSL_STORE_open.html" => [ "doc/man3/OSSL_STORE_open.pod" ], + "doc/html/man3/OSSL_sleep.html" => [ + "doc/man3/OSSL_sleep.pod" + ], "doc/html/man3/OSSL_trace_enabled.html" => [ "doc/man3/OSSL_trace_enabled.pod" ], @@ -12153,6 +14163,9 @@ our %unified_info = ( "doc/html/man3/OpenSSL_version.html" => [ "doc/man3/OpenSSL_version.pod" ], + "doc/html/man3/PBMAC1_get1_pbkdf2_param.html" => [ + "doc/man3/PBMAC1_get1_pbkdf2_param.pod" + ], "doc/html/man3/PEM_X509_INFO_read_bio_ex.html" => [ "doc/man3/PEM_X509_INFO_read_bio_ex.pod" ], @@ -12189,6 +14202,9 @@ our %unified_info = ( "doc/html/man3/PKCS12_SAFEBAG_get1_cert.html" => [ "doc/man3/PKCS12_SAFEBAG_get1_cert.pod" ], + "doc/html/man3/PKCS12_SAFEBAG_set0_attrs.html" => [ + "doc/man3/PKCS12_SAFEBAG_set0_attrs.pod" + ], "doc/html/man3/PKCS12_add1_attr_by_NID.html" => [ "doc/man3/PKCS12_add1_attr_by_NID.pod" ], @@ -12462,6 +14478,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set0_CA_list.html" => [ "doc/man3/SSL_CTX_set0_CA_list.pod" ], + "doc/html/man3/SSL_CTX_set1_cert_comp_preference.html" => [ + "doc/man3/SSL_CTX_set1_cert_comp_preference.pod" + ], "doc/html/man3/SSL_CTX_set1_curves.html" => [ "doc/man3/SSL_CTX_set1_curves.pod" ], @@ -12501,6 +14520,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_default_passwd_cb.html" => [ "doc/man3/SSL_CTX_set_default_passwd_cb.pod" ], + "doc/html/man3/SSL_CTX_set_domain_flags.html" => [ + "doc/man3/SSL_CTX_set_domain_flags.pod" + ], "doc/html/man3/SSL_CTX_set_generate_session_id.html" => [ "doc/man3/SSL_CTX_set_generate_session_id.pod" ], @@ -12522,6 +14544,9 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_msg_callback.html" => [ "doc/man3/SSL_CTX_set_msg_callback.pod" ], + "doc/html/man3/SSL_CTX_set_new_pending_conn_cb.html" => [ + "doc/man3/SSL_CTX_set_new_pending_conn_cb.pod" + ], "doc/html/man3/SSL_CTX_set_num_tickets.html" => [ "doc/man3/SSL_CTX_set_num_tickets.pod" ], @@ -12636,6 +14661,9 @@ our %unified_info = ( "doc/html/man3/SSL_accept.html" => [ "doc/man3/SSL_accept.pod" ], + "doc/html/man3/SSL_accept_stream.html" => [ + "doc/man3/SSL_accept_stream.pod" + ], "doc/html/man3/SSL_alert_type_string.html" => [ "doc/man3/SSL_alert_type_string.pod" ], @@ -12663,9 +14691,21 @@ our %unified_info = ( "doc/html/man3/SSL_free.html" => [ "doc/man3/SSL_free.pod" ], + "doc/html/man3/SSL_get0_connection.html" => [ + "doc/man3/SSL_get0_connection.pod" + ], + "doc/html/man3/SSL_get0_group_name.html" => [ + "doc/man3/SSL_get0_group_name.pod" + ], + "doc/html/man3/SSL_get0_peer_rpk.html" => [ + "doc/man3/SSL_get0_peer_rpk.pod" + ], "doc/html/man3/SSL_get0_peer_scts.html" => [ "doc/man3/SSL_get0_peer_scts.pod" ], + "doc/html/man3/SSL_get1_builtin_sigalgs.html" => [ + "doc/man3/SSL_get1_builtin_sigalgs.pod" + ], "doc/html/man3/SSL_get_SSL_CTX.html" => [ "doc/man3/SSL_get_SSL_CTX.pod" ], @@ -12681,6 +14721,9 @@ our %unified_info = ( "doc/html/man3/SSL_get_client_random.html" => [ "doc/man3/SSL_get_client_random.pod" ], + "doc/html/man3/SSL_get_conn_close_info.html" => [ + "doc/man3/SSL_get_conn_close_info.pod" + ], "doc/html/man3/SSL_get_current_cipher.html" => [ "doc/man3/SSL_get_current_cipher.pod" ], @@ -12690,12 +14733,18 @@ our %unified_info = ( "doc/html/man3/SSL_get_error.html" => [ "doc/man3/SSL_get_error.pod" ], + "doc/html/man3/SSL_get_event_timeout.html" => [ + "doc/man3/SSL_get_event_timeout.pod" + ], "doc/html/man3/SSL_get_extms_support.html" => [ "doc/man3/SSL_get_extms_support.pod" ], "doc/html/man3/SSL_get_fd.html" => [ "doc/man3/SSL_get_fd.pod" ], + "doc/html/man3/SSL_get_handshake_rtt.html" => [ + "doc/man3/SSL_get_handshake_rtt.pod" + ], "doc/html/man3/SSL_get_peer_cert_chain.html" => [ "doc/man3/SSL_get_peer_cert_chain.pod" ], @@ -12714,12 +14763,24 @@ our %unified_info = ( "doc/html/man3/SSL_get_rbio.html" => [ "doc/man3/SSL_get_rbio.pod" ], + "doc/html/man3/SSL_get_rpoll_descriptor.html" => [ + "doc/man3/SSL_get_rpoll_descriptor.pod" + ], "doc/html/man3/SSL_get_session.html" => [ "doc/man3/SSL_get_session.pod" ], "doc/html/man3/SSL_get_shared_sigalgs.html" => [ "doc/man3/SSL_get_shared_sigalgs.pod" ], + "doc/html/man3/SSL_get_stream_id.html" => [ + "doc/man3/SSL_get_stream_id.pod" + ], + "doc/html/man3/SSL_get_stream_read_state.html" => [ + "doc/man3/SSL_get_stream_read_state.pod" + ], + "doc/html/man3/SSL_get_value_uint.html" => [ + "doc/man3/SSL_get_value_uint.pod" + ], "doc/html/man3/SSL_get_verify_result.html" => [ "doc/man3/SSL_get_verify_result.pod" ], @@ -12729,9 +14790,15 @@ our %unified_info = ( "doc/html/man3/SSL_group_to_name.html" => [ "doc/man3/SSL_group_to_name.pod" ], + "doc/html/man3/SSL_handle_events.html" => [ + "doc/man3/SSL_handle_events.pod" + ], "doc/html/man3/SSL_in_init.html" => [ "doc/man3/SSL_in_init.pod" ], + "doc/html/man3/SSL_inject_net_dgram.html" => [ + "doc/man3/SSL_inject_net_dgram.pod" + ], "doc/html/man3/SSL_key_update.html" => [ "doc/man3/SSL_key_update.pod" ], @@ -12744,9 +14811,21 @@ our %unified_info = ( "doc/html/man3/SSL_new.html" => [ "doc/man3/SSL_new.pod" ], + "doc/html/man3/SSL_new_domain.html" => [ + "doc/man3/SSL_new_domain.pod" + ], + "doc/html/man3/SSL_new_listener.html" => [ + "doc/man3/SSL_new_listener.pod" + ], + "doc/html/man3/SSL_new_stream.html" => [ + "doc/man3/SSL_new_stream.pod" + ], "doc/html/man3/SSL_pending.html" => [ "doc/man3/SSL_pending.pod" ], + "doc/html/man3/SSL_poll.html" => [ + "doc/man3/SSL_poll.pod" + ], "doc/html/man3/SSL_read.html" => [ "doc/man3/SSL_read.pod" ], @@ -12762,24 +14841,45 @@ our %unified_info = ( "doc/html/man3/SSL_set1_host.html" => [ "doc/man3/SSL_set1_host.pod" ], + "doc/html/man3/SSL_set1_initial_peer_addr.html" => [ + "doc/man3/SSL_set1_initial_peer_addr.pod" + ], + "doc/html/man3/SSL_set1_server_cert_type.html" => [ + "doc/man3/SSL_set1_server_cert_type.pod" + ], "doc/html/man3/SSL_set_async_callback.html" => [ "doc/man3/SSL_set_async_callback.pod" ], "doc/html/man3/SSL_set_bio.html" => [ "doc/man3/SSL_set_bio.pod" ], + "doc/html/man3/SSL_set_blocking_mode.html" => [ + "doc/man3/SSL_set_blocking_mode.pod" + ], "doc/html/man3/SSL_set_connect_state.html" => [ "doc/man3/SSL_set_connect_state.pod" ], + "doc/html/man3/SSL_set_default_stream_mode.html" => [ + "doc/man3/SSL_set_default_stream_mode.pod" + ], "doc/html/man3/SSL_set_fd.html" => [ "doc/man3/SSL_set_fd.pod" ], + "doc/html/man3/SSL_set_incoming_stream_policy.html" => [ + "doc/man3/SSL_set_incoming_stream_policy.pod" + ], + "doc/html/man3/SSL_set_quic_tls_cbs.html" => [ + "doc/man3/SSL_set_quic_tls_cbs.pod" + ], "doc/html/man3/SSL_set_retry_verify.html" => [ "doc/man3/SSL_set_retry_verify.pod" ], "doc/html/man3/SSL_set_session.html" => [ "doc/man3/SSL_set_session.pod" ], + "doc/html/man3/SSL_set_session_secret_cb.html" => [ + "doc/man3/SSL_set_session_secret_cb.pod" + ], "doc/html/man3/SSL_set_shutdown.html" => [ "doc/man3/SSL_set_shutdown.pod" ], @@ -12792,6 +14892,12 @@ our %unified_info = ( "doc/html/man3/SSL_state_string.html" => [ "doc/man3/SSL_state_string.pod" ], + "doc/html/man3/SSL_stream_conclude.html" => [ + "doc/man3/SSL_stream_conclude.pod" + ], + "doc/html/man3/SSL_stream_reset.html" => [ + "doc/man3/SSL_stream_reset.pod" + ], "doc/html/man3/SSL_want.html" => [ "doc/man3/SSL_want.pod" ], @@ -12801,8 +14907,8 @@ our %unified_info = ( "doc/html/man3/TS_RESP_CTX_new.html" => [ "doc/man3/TS_RESP_CTX_new.pod" ], - "doc/html/man3/TS_VERIFY_CTX_set_certs.html" => [ - "doc/man3/TS_VERIFY_CTX_set_certs.pod" + "doc/html/man3/TS_VERIFY_CTX.html" => [ + "doc/man3/TS_VERIFY_CTX.pod" ], "doc/html/man3/UI_STRING.html" => [ "doc/man3/UI_STRING.pod" @@ -12822,6 +14928,21 @@ our %unified_info = ( "doc/html/man3/X509V3_set_ctx.html" => [ "doc/man3/X509V3_set_ctx.pod" ], + "doc/html/man3/X509_ACERT_add1_attr.html" => [ + "doc/man3/X509_ACERT_add1_attr.pod" + ], + "doc/html/man3/X509_ACERT_add_attr_nconf.html" => [ + "doc/man3/X509_ACERT_add_attr_nconf.pod" + ], + "doc/html/man3/X509_ACERT_get0_holder_baseCertId.html" => [ + "doc/man3/X509_ACERT_get0_holder_baseCertId.pod" + ], + "doc/html/man3/X509_ACERT_get_attr.html" => [ + "doc/man3/X509_ACERT_get_attr.pod" + ], + "doc/html/man3/X509_ACERT_print_ex.html" => [ + "doc/man3/X509_ACERT_print_ex.pod" + ], "doc/html/man3/X509_ALGOR_dup.html" => [ "doc/man3/X509_ALGOR_dup.pod" ], @@ -12870,6 +14991,9 @@ our %unified_info = ( "doc/html/man3/X509_SIG_get0.html" => [ "doc/man3/X509_SIG_get0.pod" ], + "doc/html/man3/X509_STORE_CTX_get_by_subject.html" => [ + "doc/man3/X509_STORE_CTX_get_by_subject.pod" + ], "doc/html/man3/X509_STORE_CTX_get_error.html" => [ "doc/man3/X509_STORE_CTX_get_error.pod" ], @@ -12936,6 +15060,9 @@ our %unified_info = ( "doc/html/man3/X509_get0_uids.html" => [ "doc/man3/X509_get0_uids.pod" ], + "doc/html/man3/X509_get_default_cert_file.html" => [ + "doc/man3/X509_get_default_cert_file.pod" + ], "doc/html/man3/X509_get_extension_flags.html" => [ "doc/man3/X509_get_extension_flags.pod" ], @@ -13059,9 +15186,15 @@ our %unified_info = ( "doc/html/man7/EVP_CIPHER-SM4.html" => [ "doc/man7/EVP_CIPHER-SM4.pod" ], + "doc/html/man7/EVP_KDF-ARGON2.html" => [ + "doc/man7/EVP_KDF-ARGON2.pod" + ], "doc/html/man7/EVP_KDF-HKDF.html" => [ "doc/man7/EVP_KDF-HKDF.pod" ], + "doc/html/man7/EVP_KDF-HMAC-DRBG.html" => [ + "doc/man7/EVP_KDF-HMAC-DRBG.pod" + ], "doc/html/man7/EVP_KDF-KB.html" => [ "doc/man7/EVP_KDF-KB.pod" ], @@ -13077,6 +15210,9 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-PKCS12KDF.html" => [ "doc/man7/EVP_KDF-PKCS12KDF.pod" ], + "doc/html/man7/EVP_KDF-PVKKDF.html" => [ + "doc/man7/EVP_KDF-PVKKDF.pod" + ], "doc/html/man7/EVP_KDF-SCRYPT.html" => [ "doc/man7/EVP_KDF-SCRYPT.pod" ], @@ -13101,9 +15237,18 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-X963.html" => [ "doc/man7/EVP_KDF-X963.pod" ], + "doc/html/man7/EVP_KEM-EC.html" => [ + "doc/man7/EVP_KEM-EC.pod" + ], + "doc/html/man7/EVP_KEM-ML-KEM.html" => [ + "doc/man7/EVP_KEM-ML-KEM.pod" + ], "doc/html/man7/EVP_KEM-RSA.html" => [ "doc/man7/EVP_KEM-RSA.pod" ], + "doc/html/man7/EVP_KEM-X25519.html" => [ + "doc/man7/EVP_KEM-X25519.pod" + ], "doc/html/man7/EVP_KEYEXCH-DH.html" => [ "doc/man7/EVP_KEYEXCH-DH.pod" ], @@ -13137,6 +15282,9 @@ our %unified_info = ( "doc/html/man7/EVP_MD-BLAKE2.html" => [ "doc/man7/EVP_MD-BLAKE2.pod" ], + "doc/html/man7/EVP_MD-KECCAK.html" => [ + "doc/man7/EVP_MD-KECCAK.pod" + ], "doc/html/man7/EVP_MD-MD2.html" => [ "doc/man7/EVP_MD-MD2.pod" ], @@ -13194,15 +15342,27 @@ our %unified_info = ( "doc/html/man7/EVP_PKEY-HMAC.html" => [ "doc/man7/EVP_PKEY-HMAC.pod" ], + "doc/html/man7/EVP_PKEY-ML-DSA.html" => [ + "doc/man7/EVP_PKEY-ML-DSA.pod" + ], + "doc/html/man7/EVP_PKEY-ML-KEM.html" => [ + "doc/man7/EVP_PKEY-ML-KEM.pod" + ], "doc/html/man7/EVP_PKEY-RSA.html" => [ "doc/man7/EVP_PKEY-RSA.pod" ], + "doc/html/man7/EVP_PKEY-SLH-DSA.html" => [ + "doc/man7/EVP_PKEY-SLH-DSA.pod" + ], "doc/html/man7/EVP_PKEY-SM2.html" => [ "doc/man7/EVP_PKEY-SM2.pod" ], "doc/html/man7/EVP_PKEY-X25519.html" => [ "doc/man7/EVP_PKEY-X25519.pod" ], + "doc/html/man7/EVP_RAND-CRNG-TEST.html" => [ + "doc/man7/EVP_RAND-CRNG-TEST.pod" + ], "doc/html/man7/EVP_RAND-CTR-DRBG.html" => [ "doc/man7/EVP_RAND-CTR-DRBG.pod" ], @@ -13212,6 +15372,9 @@ our %unified_info = ( "doc/html/man7/EVP_RAND-HMAC-DRBG.html" => [ "doc/man7/EVP_RAND-HMAC-DRBG.pod" ], + "doc/html/man7/EVP_RAND-JITTER.html" => [ + "doc/man7/EVP_RAND-JITTER.pod" + ], "doc/html/man7/EVP_RAND-SEED-SRC.html" => [ "doc/man7/EVP_RAND-SEED-SRC.pod" ], @@ -13233,9 +15396,15 @@ our %unified_info = ( "doc/html/man7/EVP_SIGNATURE-HMAC.html" => [ "doc/man7/EVP_SIGNATURE-HMAC.pod" ], + "doc/html/man7/EVP_SIGNATURE-ML-DSA.html" => [ + "doc/man7/EVP_SIGNATURE-ML-DSA.pod" + ], "doc/html/man7/EVP_SIGNATURE-RSA.html" => [ "doc/man7/EVP_SIGNATURE-RSA.pod" ], + "doc/html/man7/EVP_SIGNATURE-SLH-DSA.html" => [ + "doc/man7/EVP_SIGNATURE-SLH-DSA.pod" + ], "doc/html/man7/OSSL_PROVIDER-FIPS.html" => [ "doc/man7/OSSL_PROVIDER-FIPS.pod" ], @@ -13251,6 +15420,9 @@ our %unified_info = ( "doc/html/man7/OSSL_PROVIDER-null.html" => [ "doc/man7/OSSL_PROVIDER-null.pod" ], + "doc/html/man7/OSSL_STORE-winstore.html" => [ + "doc/man7/OSSL_STORE-winstore.pod" + ], "doc/html/man7/RAND.html" => [ "doc/man7/RAND.pod" ], @@ -13263,9 +15435,6 @@ our %unified_info = ( "doc/html/man7/bio.html" => [ "doc/man7/bio.pod" ], - "doc/html/man7/crypto.html" => [ - "doc/man7/crypto.pod" - ], "doc/html/man7/ct.html" => [ "doc/man7/ct.pod" ], @@ -13296,9 +15465,6 @@ our %unified_info = ( "doc/html/man7/life_cycle-rand.html" => [ "doc/man7/life_cycle-rand.pod" ], - "doc/html/man7/migration_guide.html" => [ - "doc/man7/migration_guide.pod" - ], "doc/html/man7/openssl-core.h.html" => [ "doc/man7/openssl-core.h.pod" ], @@ -13314,12 +15480,66 @@ our %unified_info = ( "doc/html/man7/openssl-glossary.html" => [ "doc/man7/openssl-glossary.pod" ], + "doc/html/man7/openssl-qlog.html" => [ + "doc/man7/openssl-qlog.pod" + ], + "doc/html/man7/openssl-quic-concurrency.html" => [ + "doc/man7/openssl-quic-concurrency.pod" + ], + "doc/html/man7/openssl-quic.html" => [ + "doc/man7/openssl-quic.pod" + ], "doc/html/man7/openssl-threads.html" => [ "doc/man7/openssl-threads.pod" ], "doc/html/man7/openssl_user_macros.html" => [ "doc/man7/openssl_user_macros.pod" ], + "doc/html/man7/ossl-guide-introduction.html" => [ + "doc/man7/ossl-guide-introduction.pod" + ], + "doc/html/man7/ossl-guide-libcrypto-introduction.html" => [ + "doc/man7/ossl-guide-libcrypto-introduction.pod" + ], + "doc/html/man7/ossl-guide-libraries-introduction.html" => [ + "doc/man7/ossl-guide-libraries-introduction.pod" + ], + "doc/html/man7/ossl-guide-libssl-introduction.html" => [ + "doc/man7/ossl-guide-libssl-introduction.pod" + ], + "doc/html/man7/ossl-guide-migration.html" => [ + "doc/man7/ossl-guide-migration.pod" + ], + "doc/html/man7/ossl-guide-quic-client-block.html" => [ + "doc/man7/ossl-guide-quic-client-block.pod" + ], + "doc/html/man7/ossl-guide-quic-client-non-block.html" => [ + "doc/man7/ossl-guide-quic-client-non-block.pod" + ], + "doc/html/man7/ossl-guide-quic-introduction.html" => [ + "doc/man7/ossl-guide-quic-introduction.pod" + ], + "doc/html/man7/ossl-guide-quic-multi-stream.html" => [ + "doc/man7/ossl-guide-quic-multi-stream.pod" + ], + "doc/html/man7/ossl-guide-quic-server-block.html" => [ + "doc/man7/ossl-guide-quic-server-block.pod" + ], + "doc/html/man7/ossl-guide-quic-server-non-block.html" => [ + "doc/man7/ossl-guide-quic-server-non-block.pod" + ], + "doc/html/man7/ossl-guide-tls-client-block.html" => [ + "doc/man7/ossl-guide-tls-client-block.pod" + ], + "doc/html/man7/ossl-guide-tls-client-non-block.html" => [ + "doc/man7/ossl-guide-tls-client-non-block.pod" + ], + "doc/html/man7/ossl-guide-tls-introduction.html" => [ + "doc/man7/ossl-guide-tls-introduction.pod" + ], + "doc/html/man7/ossl-guide-tls-server-block.html" => [ + "doc/man7/ossl-guide-tls-server-block.pod" + ], "doc/html/man7/ossl_store-file.html" => [ "doc/man7/ossl_store-file.pod" ], @@ -13374,6 +15594,9 @@ our %unified_info = ( "doc/html/man7/provider-signature.html" => [ "doc/man7/provider-signature.pod" ], + "doc/html/man7/provider-skeymgmt.html" => [ + "doc/man7/provider-skeymgmt.pod" + ], "doc/html/man7/provider-storemgmt.html" => [ "doc/man7/provider-storemgmt.pod" ], @@ -13383,9 +15606,6 @@ our %unified_info = ( "doc/html/man7/proxy-certificates.html" => [ "doc/man7/proxy-certificates.pod" ], - "doc/html/man7/ssl.html" => [ - "doc/man7/ssl.pod" - ], "doc/html/man7/x509.html" => [ "doc/man7/x509.pod" ], @@ -13533,6 +15753,9 @@ our %unified_info = ( "doc/man/man1/openssl-sess_id.1" => [ "doc/man1/openssl-sess_id.pod" ], + "doc/man/man1/openssl-skeyutl.1" => [ + "doc/man1/openssl-skeyutl.pod" + ], "doc/man/man1/openssl-smime.1" => [ "doc/man1/openssl-smime.pod" ], @@ -13674,6 +15897,9 @@ our %unified_info = ( "doc/man/man3/BIO_get_ex_new_index.3" => [ "doc/man3/BIO_get_ex_new_index.pod" ], + "doc/man/man3/BIO_get_rpoll_descriptor.3" => [ + "doc/man3/BIO_get_rpoll_descriptor.pod" + ], "doc/man/man3/BIO_meth_new.3" => [ "doc/man3/BIO_meth_new.pod" ], @@ -13710,6 +15936,9 @@ our %unified_info = ( "doc/man/man3/BIO_s_datagram.3" => [ "doc/man3/BIO_s_datagram.pod" ], + "doc/man/man3/BIO_s_dgram_pair.3" => [ + "doc/man3/BIO_s_dgram_pair.pod" + ], "doc/man/man3/BIO_s_fd.3" => [ "doc/man3/BIO_s_fd.pod" ], @@ -13725,6 +15954,9 @@ our %unified_info = ( "doc/man/man3/BIO_s_socket.3" => [ "doc/man3/BIO_s_socket.pod" ], + "doc/man/man3/BIO_sendmmsg.3" => [ + "doc/man3/BIO_sendmmsg.pod" + ], "doc/man/man3/BIO_set_callback.3" => [ "doc/man3/BIO_set_callback.pod" ], @@ -13797,6 +16029,9 @@ our %unified_info = ( "doc/man/man3/BUF_MEM_new.3" => [ "doc/man3/BUF_MEM_new.pod" ], + "doc/man/man3/CMAC_CTX.3" => [ + "doc/man3/CMAC_CTX.pod" + ], "doc/man/man3/CMS_EncryptedData_decrypt.3" => [ "doc/man3/CMS_EncryptedData_decrypt.pod" ], @@ -13863,6 +16098,9 @@ our %unified_info = ( "doc/man/man3/CMS_verify_receipt.3" => [ "doc/man3/CMS_verify_receipt.pod" ], + "doc/man/man3/COMP_CTX_new.3" => [ + "doc/man3/COMP_CTX_new.pod" + ], "doc/man/man3/CONF_modules_free.3" => [ "doc/man3/CONF_modules_free.pod" ], @@ -13962,6 +16200,12 @@ our %unified_info = ( "doc/man/man3/DTLS_set_timer_cb.3" => [ "doc/man3/DTLS_set_timer_cb.pod" ], + "doc/man/man3/DTLSv1_get_timeout.3" => [ + "doc/man3/DTLSv1_get_timeout.pod" + ], + "doc/man/man3/DTLSv1_handle_timeout.3" => [ + "doc/man3/DTLSv1_handle_timeout.pod" + ], "doc/man/man3/DTLSv1_listen.3" => [ "doc/man3/DTLSv1_listen.pod" ], @@ -14100,6 +16344,9 @@ our %unified_info = ( "doc/man/man3/EVP_PKEY_CTX_get0_pkey.3" => [ "doc/man3/EVP_PKEY_CTX_get0_pkey.pod" ], + "doc/man/man3/EVP_PKEY_CTX_get_algor.3" => [ + "doc/man3/EVP_PKEY_CTX_get_algor.pod" + ], "doc/man/man3/EVP_PKEY_CTX_new.3" => [ "doc/man3/EVP_PKEY_CTX_new.pod" ], @@ -14217,6 +16464,12 @@ our %unified_info = ( "doc/man/man3/EVP_SIGNATURE.3" => [ "doc/man3/EVP_SIGNATURE.pod" ], + "doc/man/man3/EVP_SKEY.3" => [ + "doc/man3/EVP_SKEY.pod" + ], + "doc/man/man3/EVP_SKEYMGMT.3" => [ + "doc/man3/EVP_SKEYMGMT.pod" + ], "doc/man/man3/EVP_SealInit.3" => [ "doc/man3/EVP_SealInit.pod" ], @@ -14304,6 +16557,9 @@ our %unified_info = ( "doc/man/man3/EVP_whirlpool.3" => [ "doc/man3/EVP_whirlpool.pod" ], + "doc/man/man3/GENERAL_NAME.3" => [ + "doc/man3/GENERAL_NAME.pod" + ], "doc/man/man3/HMAC.3" => [ "doc/man3/HMAC.pod" ], @@ -14376,9 +16632,15 @@ our %unified_info = ( "doc/man/man3/OPENSSL_load_builtin_modules.3" => [ "doc/man3/OPENSSL_load_builtin_modules.pod" ], + "doc/man/man3/OPENSSL_load_u16_le.3" => [ + "doc/man3/OPENSSL_load_u16_le.pod" + ], "doc/man/man3/OPENSSL_malloc.3" => [ "doc/man3/OPENSSL_malloc.pod" ], + "doc/man/man3/OPENSSL_riscvcap.3" => [ + "doc/man3/OPENSSL_riscvcap.pod" + ], "doc/man/man3/OPENSSL_s390xcap.3" => [ "doc/man3/OPENSSL_s390xcap.pod" ], @@ -14394,12 +16656,18 @@ our %unified_info = ( "doc/man/man3/OSSL_CALLBACK.3" => [ "doc/man3/OSSL_CALLBACK.pod" ], + "doc/man/man3/OSSL_CMP_ATAV_set0.3" => [ + "doc/man3/OSSL_CMP_ATAV_set0.pod" + ], "doc/man/man3/OSSL_CMP_CTX_new.3" => [ "doc/man3/OSSL_CMP_CTX_new.pod" ], "doc/man/man3/OSSL_CMP_HDR_get0_transactionID.3" => [ "doc/man3/OSSL_CMP_HDR_get0_transactionID.pod" ], + "doc/man/man3/OSSL_CMP_ITAV_new_caCerts.3" => [ + "doc/man3/OSSL_CMP_ITAV_new_caCerts.pod" + ], "doc/man/man3/OSSL_CMP_ITAV_set0.3" => [ "doc/man3/OSSL_CMP_ITAV_set0.pod" ], @@ -14469,9 +16737,18 @@ our %unified_info = ( "doc/man/man3/OSSL_ENCODER_to_bio.3" => [ "doc/man3/OSSL_ENCODER_to_bio.pod" ], + "doc/man/man3/OSSL_ERR_STATE_save.3" => [ + "doc/man3/OSSL_ERR_STATE_save.pod" + ], "doc/man/man3/OSSL_ESS_check_signing_certs.3" => [ "doc/man3/OSSL_ESS_check_signing_certs.pod" ], + "doc/man/man3/OSSL_GENERAL_NAMES_print.3" => [ + "doc/man3/OSSL_GENERAL_NAMES_print.pod" + ], + "doc/man/man3/OSSL_HPKE_CTX_new.3" => [ + "doc/man3/OSSL_HPKE_CTX_new.pod" + ], "doc/man/man3/OSSL_HTTP_REQ_CTX.3" => [ "doc/man3/OSSL_HTTP_REQ_CTX.pod" ], @@ -14481,12 +16758,24 @@ our %unified_info = ( "doc/man/man3/OSSL_HTTP_transfer.3" => [ "doc/man3/OSSL_HTTP_transfer.pod" ], + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX.3" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX.pod" + ], + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX_print.3" => [ + "doc/man3/OSSL_IETF_ATTR_SYNTAX_print.pod" + ], + "doc/man/man3/OSSL_INDICATOR_set_callback.3" => [ + "doc/man3/OSSL_INDICATOR_set_callback.pod" + ], "doc/man/man3/OSSL_ITEM.3" => [ "doc/man3/OSSL_ITEM.pod" ], "doc/man/man3/OSSL_LIB_CTX.3" => [ "doc/man3/OSSL_LIB_CTX.pod" ], + "doc/man/man3/OSSL_LIB_CTX_set_conf_diagnostics.3" => [ + "doc/man3/OSSL_LIB_CTX_set_conf_diagnostics.pod" + ], "doc/man/man3/OSSL_PARAM.3" => [ "doc/man3/OSSL_PARAM.pod" ], @@ -14502,9 +16791,15 @@ our %unified_info = ( "doc/man/man3/OSSL_PARAM_int.3" => [ "doc/man3/OSSL_PARAM_int.pod" ], + "doc/man/man3/OSSL_PARAM_print_to_bio.3" => [ + "doc/man3/OSSL_PARAM_print_to_bio.pod" + ], "doc/man/man3/OSSL_PROVIDER.3" => [ "doc/man3/OSSL_PROVIDER.pod" ], + "doc/man/man3/OSSL_QUIC_client_method.3" => [ + "doc/man3/OSSL_QUIC_client_method.pod" + ], "doc/man/man3/OSSL_SELF_TEST_new.3" => [ "doc/man3/OSSL_SELF_TEST_new.pod" ], @@ -14529,6 +16824,9 @@ our %unified_info = ( "doc/man/man3/OSSL_STORE_open.3" => [ "doc/man3/OSSL_STORE_open.pod" ], + "doc/man/man3/OSSL_sleep.3" => [ + "doc/man3/OSSL_sleep.pod" + ], "doc/man/man3/OSSL_trace_enabled.3" => [ "doc/man3/OSSL_trace_enabled.pod" ], @@ -14544,6 +16842,9 @@ our %unified_info = ( "doc/man/man3/OpenSSL_version.3" => [ "doc/man3/OpenSSL_version.pod" ], + "doc/man/man3/PBMAC1_get1_pbkdf2_param.3" => [ + "doc/man3/PBMAC1_get1_pbkdf2_param.pod" + ], "doc/man/man3/PEM_X509_INFO_read_bio_ex.3" => [ "doc/man3/PEM_X509_INFO_read_bio_ex.pod" ], @@ -14580,6 +16881,9 @@ our %unified_info = ( "doc/man/man3/PKCS12_SAFEBAG_get1_cert.3" => [ "doc/man3/PKCS12_SAFEBAG_get1_cert.pod" ], + "doc/man/man3/PKCS12_SAFEBAG_set0_attrs.3" => [ + "doc/man3/PKCS12_SAFEBAG_set0_attrs.pod" + ], "doc/man/man3/PKCS12_add1_attr_by_NID.3" => [ "doc/man3/PKCS12_add1_attr_by_NID.pod" ], @@ -14853,6 +17157,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set0_CA_list.3" => [ "doc/man3/SSL_CTX_set0_CA_list.pod" ], + "doc/man/man3/SSL_CTX_set1_cert_comp_preference.3" => [ + "doc/man3/SSL_CTX_set1_cert_comp_preference.pod" + ], "doc/man/man3/SSL_CTX_set1_curves.3" => [ "doc/man3/SSL_CTX_set1_curves.pod" ], @@ -14892,6 +17199,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_default_passwd_cb.3" => [ "doc/man3/SSL_CTX_set_default_passwd_cb.pod" ], + "doc/man/man3/SSL_CTX_set_domain_flags.3" => [ + "doc/man3/SSL_CTX_set_domain_flags.pod" + ], "doc/man/man3/SSL_CTX_set_generate_session_id.3" => [ "doc/man3/SSL_CTX_set_generate_session_id.pod" ], @@ -14913,6 +17223,9 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_msg_callback.3" => [ "doc/man3/SSL_CTX_set_msg_callback.pod" ], + "doc/man/man3/SSL_CTX_set_new_pending_conn_cb.3" => [ + "doc/man3/SSL_CTX_set_new_pending_conn_cb.pod" + ], "doc/man/man3/SSL_CTX_set_num_tickets.3" => [ "doc/man3/SSL_CTX_set_num_tickets.pod" ], @@ -15027,6 +17340,9 @@ our %unified_info = ( "doc/man/man3/SSL_accept.3" => [ "doc/man3/SSL_accept.pod" ], + "doc/man/man3/SSL_accept_stream.3" => [ + "doc/man3/SSL_accept_stream.pod" + ], "doc/man/man3/SSL_alert_type_string.3" => [ "doc/man3/SSL_alert_type_string.pod" ], @@ -15054,9 +17370,21 @@ our %unified_info = ( "doc/man/man3/SSL_free.3" => [ "doc/man3/SSL_free.pod" ], + "doc/man/man3/SSL_get0_connection.3" => [ + "doc/man3/SSL_get0_connection.pod" + ], + "doc/man/man3/SSL_get0_group_name.3" => [ + "doc/man3/SSL_get0_group_name.pod" + ], + "doc/man/man3/SSL_get0_peer_rpk.3" => [ + "doc/man3/SSL_get0_peer_rpk.pod" + ], "doc/man/man3/SSL_get0_peer_scts.3" => [ "doc/man3/SSL_get0_peer_scts.pod" ], + "doc/man/man3/SSL_get1_builtin_sigalgs.3" => [ + "doc/man3/SSL_get1_builtin_sigalgs.pod" + ], "doc/man/man3/SSL_get_SSL_CTX.3" => [ "doc/man3/SSL_get_SSL_CTX.pod" ], @@ -15072,6 +17400,9 @@ our %unified_info = ( "doc/man/man3/SSL_get_client_random.3" => [ "doc/man3/SSL_get_client_random.pod" ], + "doc/man/man3/SSL_get_conn_close_info.3" => [ + "doc/man3/SSL_get_conn_close_info.pod" + ], "doc/man/man3/SSL_get_current_cipher.3" => [ "doc/man3/SSL_get_current_cipher.pod" ], @@ -15081,12 +17412,18 @@ our %unified_info = ( "doc/man/man3/SSL_get_error.3" => [ "doc/man3/SSL_get_error.pod" ], + "doc/man/man3/SSL_get_event_timeout.3" => [ + "doc/man3/SSL_get_event_timeout.pod" + ], "doc/man/man3/SSL_get_extms_support.3" => [ "doc/man3/SSL_get_extms_support.pod" ], "doc/man/man3/SSL_get_fd.3" => [ "doc/man3/SSL_get_fd.pod" ], + "doc/man/man3/SSL_get_handshake_rtt.3" => [ + "doc/man3/SSL_get_handshake_rtt.pod" + ], "doc/man/man3/SSL_get_peer_cert_chain.3" => [ "doc/man3/SSL_get_peer_cert_chain.pod" ], @@ -15105,12 +17442,24 @@ our %unified_info = ( "doc/man/man3/SSL_get_rbio.3" => [ "doc/man3/SSL_get_rbio.pod" ], + "doc/man/man3/SSL_get_rpoll_descriptor.3" => [ + "doc/man3/SSL_get_rpoll_descriptor.pod" + ], "doc/man/man3/SSL_get_session.3" => [ "doc/man3/SSL_get_session.pod" ], "doc/man/man3/SSL_get_shared_sigalgs.3" => [ "doc/man3/SSL_get_shared_sigalgs.pod" ], + "doc/man/man3/SSL_get_stream_id.3" => [ + "doc/man3/SSL_get_stream_id.pod" + ], + "doc/man/man3/SSL_get_stream_read_state.3" => [ + "doc/man3/SSL_get_stream_read_state.pod" + ], + "doc/man/man3/SSL_get_value_uint.3" => [ + "doc/man3/SSL_get_value_uint.pod" + ], "doc/man/man3/SSL_get_verify_result.3" => [ "doc/man3/SSL_get_verify_result.pod" ], @@ -15120,9 +17469,15 @@ our %unified_info = ( "doc/man/man3/SSL_group_to_name.3" => [ "doc/man3/SSL_group_to_name.pod" ], + "doc/man/man3/SSL_handle_events.3" => [ + "doc/man3/SSL_handle_events.pod" + ], "doc/man/man3/SSL_in_init.3" => [ "doc/man3/SSL_in_init.pod" ], + "doc/man/man3/SSL_inject_net_dgram.3" => [ + "doc/man3/SSL_inject_net_dgram.pod" + ], "doc/man/man3/SSL_key_update.3" => [ "doc/man3/SSL_key_update.pod" ], @@ -15135,9 +17490,21 @@ our %unified_info = ( "doc/man/man3/SSL_new.3" => [ "doc/man3/SSL_new.pod" ], + "doc/man/man3/SSL_new_domain.3" => [ + "doc/man3/SSL_new_domain.pod" + ], + "doc/man/man3/SSL_new_listener.3" => [ + "doc/man3/SSL_new_listener.pod" + ], + "doc/man/man3/SSL_new_stream.3" => [ + "doc/man3/SSL_new_stream.pod" + ], "doc/man/man3/SSL_pending.3" => [ "doc/man3/SSL_pending.pod" ], + "doc/man/man3/SSL_poll.3" => [ + "doc/man3/SSL_poll.pod" + ], "doc/man/man3/SSL_read.3" => [ "doc/man3/SSL_read.pod" ], @@ -15153,24 +17520,45 @@ our %unified_info = ( "doc/man/man3/SSL_set1_host.3" => [ "doc/man3/SSL_set1_host.pod" ], + "doc/man/man3/SSL_set1_initial_peer_addr.3" => [ + "doc/man3/SSL_set1_initial_peer_addr.pod" + ], + "doc/man/man3/SSL_set1_server_cert_type.3" => [ + "doc/man3/SSL_set1_server_cert_type.pod" + ], "doc/man/man3/SSL_set_async_callback.3" => [ "doc/man3/SSL_set_async_callback.pod" ], "doc/man/man3/SSL_set_bio.3" => [ "doc/man3/SSL_set_bio.pod" ], + "doc/man/man3/SSL_set_blocking_mode.3" => [ + "doc/man3/SSL_set_blocking_mode.pod" + ], "doc/man/man3/SSL_set_connect_state.3" => [ "doc/man3/SSL_set_connect_state.pod" ], + "doc/man/man3/SSL_set_default_stream_mode.3" => [ + "doc/man3/SSL_set_default_stream_mode.pod" + ], "doc/man/man3/SSL_set_fd.3" => [ "doc/man3/SSL_set_fd.pod" ], + "doc/man/man3/SSL_set_incoming_stream_policy.3" => [ + "doc/man3/SSL_set_incoming_stream_policy.pod" + ], + "doc/man/man3/SSL_set_quic_tls_cbs.3" => [ + "doc/man3/SSL_set_quic_tls_cbs.pod" + ], "doc/man/man3/SSL_set_retry_verify.3" => [ "doc/man3/SSL_set_retry_verify.pod" ], "doc/man/man3/SSL_set_session.3" => [ "doc/man3/SSL_set_session.pod" ], + "doc/man/man3/SSL_set_session_secret_cb.3" => [ + "doc/man3/SSL_set_session_secret_cb.pod" + ], "doc/man/man3/SSL_set_shutdown.3" => [ "doc/man3/SSL_set_shutdown.pod" ], @@ -15183,6 +17571,12 @@ our %unified_info = ( "doc/man/man3/SSL_state_string.3" => [ "doc/man3/SSL_state_string.pod" ], + "doc/man/man3/SSL_stream_conclude.3" => [ + "doc/man3/SSL_stream_conclude.pod" + ], + "doc/man/man3/SSL_stream_reset.3" => [ + "doc/man3/SSL_stream_reset.pod" + ], "doc/man/man3/SSL_want.3" => [ "doc/man3/SSL_want.pod" ], @@ -15192,8 +17586,8 @@ our %unified_info = ( "doc/man/man3/TS_RESP_CTX_new.3" => [ "doc/man3/TS_RESP_CTX_new.pod" ], - "doc/man/man3/TS_VERIFY_CTX_set_certs.3" => [ - "doc/man3/TS_VERIFY_CTX_set_certs.pod" + "doc/man/man3/TS_VERIFY_CTX.3" => [ + "doc/man3/TS_VERIFY_CTX.pod" ], "doc/man/man3/UI_STRING.3" => [ "doc/man3/UI_STRING.pod" @@ -15213,6 +17607,21 @@ our %unified_info = ( "doc/man/man3/X509V3_set_ctx.3" => [ "doc/man3/X509V3_set_ctx.pod" ], + "doc/man/man3/X509_ACERT_add1_attr.3" => [ + "doc/man3/X509_ACERT_add1_attr.pod" + ], + "doc/man/man3/X509_ACERT_add_attr_nconf.3" => [ + "doc/man3/X509_ACERT_add_attr_nconf.pod" + ], + "doc/man/man3/X509_ACERT_get0_holder_baseCertId.3" => [ + "doc/man3/X509_ACERT_get0_holder_baseCertId.pod" + ], + "doc/man/man3/X509_ACERT_get_attr.3" => [ + "doc/man3/X509_ACERT_get_attr.pod" + ], + "doc/man/man3/X509_ACERT_print_ex.3" => [ + "doc/man3/X509_ACERT_print_ex.pod" + ], "doc/man/man3/X509_ALGOR_dup.3" => [ "doc/man3/X509_ALGOR_dup.pod" ], @@ -15261,6 +17670,9 @@ our %unified_info = ( "doc/man/man3/X509_SIG_get0.3" => [ "doc/man3/X509_SIG_get0.pod" ], + "doc/man/man3/X509_STORE_CTX_get_by_subject.3" => [ + "doc/man3/X509_STORE_CTX_get_by_subject.pod" + ], "doc/man/man3/X509_STORE_CTX_get_error.3" => [ "doc/man3/X509_STORE_CTX_get_error.pod" ], @@ -15327,6 +17739,9 @@ our %unified_info = ( "doc/man/man3/X509_get0_uids.3" => [ "doc/man3/X509_get0_uids.pod" ], + "doc/man/man3/X509_get_default_cert_file.3" => [ + "doc/man3/X509_get_default_cert_file.pod" + ], "doc/man/man3/X509_get_extension_flags.3" => [ "doc/man3/X509_get_extension_flags.pod" ], @@ -15450,9 +17865,15 @@ our %unified_info = ( "doc/man/man7/EVP_CIPHER-SM4.7" => [ "doc/man7/EVP_CIPHER-SM4.pod" ], + "doc/man/man7/EVP_KDF-ARGON2.7" => [ + "doc/man7/EVP_KDF-ARGON2.pod" + ], "doc/man/man7/EVP_KDF-HKDF.7" => [ "doc/man7/EVP_KDF-HKDF.pod" ], + "doc/man/man7/EVP_KDF-HMAC-DRBG.7" => [ + "doc/man7/EVP_KDF-HMAC-DRBG.pod" + ], "doc/man/man7/EVP_KDF-KB.7" => [ "doc/man7/EVP_KDF-KB.pod" ], @@ -15468,6 +17889,9 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-PKCS12KDF.7" => [ "doc/man7/EVP_KDF-PKCS12KDF.pod" ], + "doc/man/man7/EVP_KDF-PVKKDF.7" => [ + "doc/man7/EVP_KDF-PVKKDF.pod" + ], "doc/man/man7/EVP_KDF-SCRYPT.7" => [ "doc/man7/EVP_KDF-SCRYPT.pod" ], @@ -15492,9 +17916,18 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-X963.7" => [ "doc/man7/EVP_KDF-X963.pod" ], + "doc/man/man7/EVP_KEM-EC.7" => [ + "doc/man7/EVP_KEM-EC.pod" + ], + "doc/man/man7/EVP_KEM-ML-KEM.7" => [ + "doc/man7/EVP_KEM-ML-KEM.pod" + ], "doc/man/man7/EVP_KEM-RSA.7" => [ "doc/man7/EVP_KEM-RSA.pod" ], + "doc/man/man7/EVP_KEM-X25519.7" => [ + "doc/man7/EVP_KEM-X25519.pod" + ], "doc/man/man7/EVP_KEYEXCH-DH.7" => [ "doc/man7/EVP_KEYEXCH-DH.pod" ], @@ -15528,6 +17961,9 @@ our %unified_info = ( "doc/man/man7/EVP_MD-BLAKE2.7" => [ "doc/man7/EVP_MD-BLAKE2.pod" ], + "doc/man/man7/EVP_MD-KECCAK.7" => [ + "doc/man7/EVP_MD-KECCAK.pod" + ], "doc/man/man7/EVP_MD-MD2.7" => [ "doc/man7/EVP_MD-MD2.pod" ], @@ -15585,15 +18021,27 @@ our %unified_info = ( "doc/man/man7/EVP_PKEY-HMAC.7" => [ "doc/man7/EVP_PKEY-HMAC.pod" ], + "doc/man/man7/EVP_PKEY-ML-DSA.7" => [ + "doc/man7/EVP_PKEY-ML-DSA.pod" + ], + "doc/man/man7/EVP_PKEY-ML-KEM.7" => [ + "doc/man7/EVP_PKEY-ML-KEM.pod" + ], "doc/man/man7/EVP_PKEY-RSA.7" => [ "doc/man7/EVP_PKEY-RSA.pod" ], + "doc/man/man7/EVP_PKEY-SLH-DSA.7" => [ + "doc/man7/EVP_PKEY-SLH-DSA.pod" + ], "doc/man/man7/EVP_PKEY-SM2.7" => [ "doc/man7/EVP_PKEY-SM2.pod" ], "doc/man/man7/EVP_PKEY-X25519.7" => [ "doc/man7/EVP_PKEY-X25519.pod" ], + "doc/man/man7/EVP_RAND-CRNG-TEST.7" => [ + "doc/man7/EVP_RAND-CRNG-TEST.pod" + ], "doc/man/man7/EVP_RAND-CTR-DRBG.7" => [ "doc/man7/EVP_RAND-CTR-DRBG.pod" ], @@ -15603,6 +18051,9 @@ our %unified_info = ( "doc/man/man7/EVP_RAND-HMAC-DRBG.7" => [ "doc/man7/EVP_RAND-HMAC-DRBG.pod" ], + "doc/man/man7/EVP_RAND-JITTER.7" => [ + "doc/man7/EVP_RAND-JITTER.pod" + ], "doc/man/man7/EVP_RAND-SEED-SRC.7" => [ "doc/man7/EVP_RAND-SEED-SRC.pod" ], @@ -15624,9 +18075,15 @@ our %unified_info = ( "doc/man/man7/EVP_SIGNATURE-HMAC.7" => [ "doc/man7/EVP_SIGNATURE-HMAC.pod" ], + "doc/man/man7/EVP_SIGNATURE-ML-DSA.7" => [ + "doc/man7/EVP_SIGNATURE-ML-DSA.pod" + ], "doc/man/man7/EVP_SIGNATURE-RSA.7" => [ "doc/man7/EVP_SIGNATURE-RSA.pod" ], + "doc/man/man7/EVP_SIGNATURE-SLH-DSA.7" => [ + "doc/man7/EVP_SIGNATURE-SLH-DSA.pod" + ], "doc/man/man7/OSSL_PROVIDER-FIPS.7" => [ "doc/man7/OSSL_PROVIDER-FIPS.pod" ], @@ -15642,6 +18099,9 @@ our %unified_info = ( "doc/man/man7/OSSL_PROVIDER-null.7" => [ "doc/man7/OSSL_PROVIDER-null.pod" ], + "doc/man/man7/OSSL_STORE-winstore.7" => [ + "doc/man7/OSSL_STORE-winstore.pod" + ], "doc/man/man7/RAND.7" => [ "doc/man7/RAND.pod" ], @@ -15654,9 +18114,6 @@ our %unified_info = ( "doc/man/man7/bio.7" => [ "doc/man7/bio.pod" ], - "doc/man/man7/crypto.7" => [ - "doc/man7/crypto.pod" - ], "doc/man/man7/ct.7" => [ "doc/man7/ct.pod" ], @@ -15687,9 +18144,6 @@ our %unified_info = ( "doc/man/man7/life_cycle-rand.7" => [ "doc/man7/life_cycle-rand.pod" ], - "doc/man/man7/migration_guide.7" => [ - "doc/man7/migration_guide.pod" - ], "doc/man/man7/openssl-core.h.7" => [ "doc/man7/openssl-core.h.pod" ], @@ -15705,12 +18159,66 @@ our %unified_info = ( "doc/man/man7/openssl-glossary.7" => [ "doc/man7/openssl-glossary.pod" ], + "doc/man/man7/openssl-qlog.7" => [ + "doc/man7/openssl-qlog.pod" + ], + "doc/man/man7/openssl-quic-concurrency.7" => [ + "doc/man7/openssl-quic-concurrency.pod" + ], + "doc/man/man7/openssl-quic.7" => [ + "doc/man7/openssl-quic.pod" + ], "doc/man/man7/openssl-threads.7" => [ "doc/man7/openssl-threads.pod" ], "doc/man/man7/openssl_user_macros.7" => [ "doc/man7/openssl_user_macros.pod" ], + "doc/man/man7/ossl-guide-introduction.7" => [ + "doc/man7/ossl-guide-introduction.pod" + ], + "doc/man/man7/ossl-guide-libcrypto-introduction.7" => [ + "doc/man7/ossl-guide-libcrypto-introduction.pod" + ], + "doc/man/man7/ossl-guide-libraries-introduction.7" => [ + "doc/man7/ossl-guide-libraries-introduction.pod" + ], + "doc/man/man7/ossl-guide-libssl-introduction.7" => [ + "doc/man7/ossl-guide-libssl-introduction.pod" + ], + "doc/man/man7/ossl-guide-migration.7" => [ + "doc/man7/ossl-guide-migration.pod" + ], + "doc/man/man7/ossl-guide-quic-client-block.7" => [ + "doc/man7/ossl-guide-quic-client-block.pod" + ], + "doc/man/man7/ossl-guide-quic-client-non-block.7" => [ + "doc/man7/ossl-guide-quic-client-non-block.pod" + ], + "doc/man/man7/ossl-guide-quic-introduction.7" => [ + "doc/man7/ossl-guide-quic-introduction.pod" + ], + "doc/man/man7/ossl-guide-quic-multi-stream.7" => [ + "doc/man7/ossl-guide-quic-multi-stream.pod" + ], + "doc/man/man7/ossl-guide-quic-server-block.7" => [ + "doc/man7/ossl-guide-quic-server-block.pod" + ], + "doc/man/man7/ossl-guide-quic-server-non-block.7" => [ + "doc/man7/ossl-guide-quic-server-non-block.pod" + ], + "doc/man/man7/ossl-guide-tls-client-block.7" => [ + "doc/man7/ossl-guide-tls-client-block.pod" + ], + "doc/man/man7/ossl-guide-tls-client-non-block.7" => [ + "doc/man7/ossl-guide-tls-client-non-block.pod" + ], + "doc/man/man7/ossl-guide-tls-introduction.7" => [ + "doc/man7/ossl-guide-tls-introduction.pod" + ], + "doc/man/man7/ossl-guide-tls-server-block.7" => [ + "doc/man7/ossl-guide-tls-server-block.pod" + ], "doc/man/man7/ossl_store-file.7" => [ "doc/man7/ossl_store-file.pod" ], @@ -15765,6 +18273,9 @@ our %unified_info = ( "doc/man/man7/provider-signature.7" => [ "doc/man7/provider-signature.pod" ], + "doc/man/man7/provider-skeymgmt.7" => [ + "doc/man7/provider-skeymgmt.pod" + ], "doc/man/man7/provider-storemgmt.7" => [ "doc/man7/provider-storemgmt.pod" ], @@ -15774,9 +18285,6 @@ our %unified_info = ( "doc/man/man7/proxy-certificates.7" => [ "doc/man7/proxy-certificates.pod" ], - "doc/man/man7/ssl.7" => [ - "doc/man7/ssl.pod" - ], "doc/man/man7/x509.7" => [ "doc/man7/x509.pod" ], @@ -15912,6 +18420,9 @@ our %unified_info = ( "doc/man1/openssl-sess_id.pod" => [ "doc/man1/openssl-sess_id.pod.in" ], + "doc/man1/openssl-skeyutl.pod" => [ + "doc/man1/openssl-skeyutl.pod.in" + ], "doc/man1/openssl-smime.pod" => [ "doc/man1/openssl-smime.pod.in" ], @@ -15948,12 +18459,30 @@ our %unified_info = ( "engines/e_padlock-x86_64.s" => [ "engines/asm/e_padlock-x86_64.pl" ], + "exporters/OpenSSLConfig.cmake" => [ + "exporters/cmake/OpenSSLConfig.cmake.in" + ], + "exporters/OpenSSLConfigVersion.cmake" => [ + "exporters/cmake/OpenSSLConfigVersion.cmake.in" + ], + "exporters/libcrypto.pc" => [ + "exporters/pkg-config/libcrypto.pc.in" + ], + "exporters/libssl.pc" => [ + "exporters/pkg-config/libssl.pc.in" + ], + "exporters/openssl.pc" => [ + "exporters/pkg-config/openssl.pc.in" + ], "include/crypto/bn_conf.h" => [ "include/crypto/bn_conf.h.in" ], "include/crypto/dso_conf.h" => [ "include/crypto/dso_conf.h.in" ], + "include/internal/param_names.h" => [ + "include/internal/param_names.h.in" + ], "include/openssl/asn1.h" => [ "include/openssl/asn1.h.in" ], @@ -15969,12 +18498,18 @@ our %unified_info = ( "include/openssl/cms.h" => [ "include/openssl/cms.h.in" ], + "include/openssl/comp.h" => [ + "include/openssl/comp.h.in" + ], "include/openssl/conf.h" => [ "include/openssl/conf.h.in" ], "include/openssl/configuration.h" => [ "include/openssl/configuration.h.in" ], + "include/openssl/core_names.h" => [ + "include/openssl/core_names.h.in" + ], "include/openssl/crmf.h" => [ "include/openssl/crmf.h.in" ], @@ -16023,20 +18558,47 @@ our %unified_info = ( "include/openssl/x509.h" => [ "include/openssl/x509.h.in" ], + "include/openssl/x509_acert.h" => [ + "include/openssl/x509_acert.h.in" + ], "include/openssl/x509_vfy.h" => [ "include/openssl/x509_vfy.h.in" ], "include/openssl/x509v3.h" => [ "include/openssl/x509v3.h.in" ], + "installdata.pm" => [ + "util/mkinstallvars.pl", + "\"PREFIX=\$(INSTALLTOP)\"", + "BINDIR=bin", + "\"LIBDIR=\$(LIBDIR)\"", + "\"libdir=\$(libdir)\"", + "INCLUDEDIR=include", + "APPLINKDIR=include/openssl", + "\"ENGINESDIR=\$(ENGINESDIR)\"", + "\"MODULESDIR=\$(MODULESDIR)\"", + "\"PKGCONFIGDIR=\$(PKGCONFIGDIR)\"", + "\"CMAKECONFIGDIR=\$(CMAKECONFIGDIR)\"", + "\"LDLIBS=\$(LIB_EX_LIBS)\"", + "\"VERSION=\$(VERSION)\"" + ], "libcrypto.ld" => [ "util/libcrypto.num", "libcrypto" ], + "libcrypto.pc" => [ + "exporters/pkg-config/libcrypto.pc.in" + ], "libssl.ld" => [ "util/libssl.num", "libssl" ], + "libssl.pc" => [ + "exporters/pkg-config/libssl.pc.in" + ], + "openssl.pc" => [ + "exporters/pkg-config/openssl.pc.in" + ], "providers/common/der/der_digests_gen.c" => [ "providers/common/der/der_digests_gen.c.in" ], @@ -16049,9 +18611,15 @@ our %unified_info = ( "providers/common/der/der_ecx_gen.c" => [ "providers/common/der/der_ecx_gen.c.in" ], + "providers/common/der/der_ml_dsa_gen.c" => [ + "providers/common/der/der_ml_dsa_gen.c.in" + ], "providers/common/der/der_rsa_gen.c" => [ "providers/common/der/der_rsa_gen.c.in" ], + "providers/common/der/der_slh_dsa_gen.c" => [ + "providers/common/der/der_slh_dsa_gen.c.in" + ], "providers/common/der/der_sm2_gen.c" => [ "providers/common/der/der_sm2_gen.c.in" ], @@ -16070,9 +18638,15 @@ our %unified_info = ( "providers/common/include/prov/der_ecx.h" => [ "providers/common/include/prov/der_ecx.h.in" ], + "providers/common/include/prov/der_ml_dsa.h" => [ + "providers/common/include/prov/der_ml_dsa.h.in" + ], "providers/common/include/prov/der_rsa.h" => [ "providers/common/include/prov/der_rsa.h.in" ], + "providers/common/include/prov/der_slh_dsa.h" => [ + "providers/common/include/prov/der_slh_dsa.h.in" + ], "providers/common/include/prov/der_sm2.h" => [ "providers/common/include/prov/der_sm2.h.in" ], @@ -16114,6 +18688,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "buffer" ], + "test/buildtest_byteorder.c" => [ + "test/generate_buildtest.pl", + "byteorder" + ], "test/buildtest_camellia.c" => [ "test/generate_buildtest.pl", "camellia" @@ -16146,10 +18724,6 @@ our %unified_info = ( "test/generate_buildtest.pl", "core_dispatch" ], - "test/buildtest_core_names.c" => [ - "test/generate_buildtest.pl", - "core_names" - ], "test/buildtest_core_object.c" => [ "test/generate_buildtest.pl", "core_object" @@ -16182,6 +18756,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "e_os2" ], + "test/buildtest_e_ostime.c" => [ + "test/generate_buildtest.pl", + "e_ostime" + ], "test/buildtest_ebcdic.c" => [ "test/generate_buildtest.pl", "ebcdic" @@ -16218,6 +18796,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "hmac" ], + "test/buildtest_hpke.c" => [ + "test/generate_buildtest.pl", + "hpke" + ], "test/buildtest_http.c" => [ "test/generate_buildtest.pl", "http" @@ -16226,6 +18808,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "idea" ], + "test/buildtest_indicator.c" => [ + "test/generate_buildtest.pl", + "indicator" + ], "test/buildtest_kdf.c" => [ "test/generate_buildtest.pl", "kdf" @@ -16246,6 +18832,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "mdc2" ], + "test/buildtest_ml_kem.c" => [ + "test/generate_buildtest.pl", + "ml_kem" + ], "test/buildtest_modes.c" => [ "test/generate_buildtest.pl", "modes" @@ -16286,6 +18876,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "provider" ], + "test/buildtest_quic.c" => [ + "test/generate_buildtest.pl", + "quic" + ], "test/buildtest_rand.c" => [ "test/generate_buildtest.pl", "rand" @@ -16342,6 +18936,10 @@ our %unified_info = ( "test/generate_buildtest.pl", "symhacks" ], + "test/buildtest_thread.c" => [ + "test/generate_buildtest.pl", + "thread" + ], "test/buildtest_tls1.c" => [ "test/generate_buildtest.pl", "tls1" @@ -16422,6 +19020,7 @@ our %unified_info = ( "doc/html/man1/openssl-s_server.html", "doc/html/man1/openssl-s_time.html", "doc/html/man1/openssl-sess_id.html", + "doc/html/man1/openssl-skeyutl.html", "doc/html/man1/openssl-smime.html", "doc/html/man1/openssl-speed.html", "doc/html/man1/openssl-spkac.html", @@ -16471,6 +19070,7 @@ our %unified_info = ( "doc/html/man3/BIO_find_type.html", "doc/html/man3/BIO_get_data.html", "doc/html/man3/BIO_get_ex_new_index.html", + "doc/html/man3/BIO_get_rpoll_descriptor.html", "doc/html/man3/BIO_meth_new.html", "doc/html/man3/BIO_new.html", "doc/html/man3/BIO_new_CMS.html", @@ -16483,11 +19083,13 @@ our %unified_info = ( "doc/html/man3/BIO_s_connect.html", "doc/html/man3/BIO_s_core.html", "doc/html/man3/BIO_s_datagram.html", + "doc/html/man3/BIO_s_dgram_pair.html", "doc/html/man3/BIO_s_fd.html", "doc/html/man3/BIO_s_file.html", "doc/html/man3/BIO_s_mem.html", "doc/html/man3/BIO_s_null.html", "doc/html/man3/BIO_s_socket.html", + "doc/html/man3/BIO_sendmmsg.html", "doc/html/man3/BIO_set_callback.html", "doc/html/man3/BIO_should_retry.html", "doc/html/man3/BIO_socket_wait.html", @@ -16512,6 +19114,7 @@ our %unified_info = ( "doc/html/man3/BN_swap.html", "doc/html/man3/BN_zero.html", "doc/html/man3/BUF_MEM_new.html", + "doc/html/man3/CMAC_CTX.html", "doc/html/man3/CMS_EncryptedData_decrypt.html", "doc/html/man3/CMS_EncryptedData_encrypt.html", "doc/html/man3/CMS_EnvelopedData_create.html", @@ -16534,6 +19137,7 @@ our %unified_info = ( "doc/html/man3/CMS_uncompress.html", "doc/html/man3/CMS_verify.html", "doc/html/man3/CMS_verify_receipt.html", + "doc/html/man3/COMP_CTX_new.html", "doc/html/man3/CONF_modules_free.html", "doc/html/man3/CONF_modules_load_file.html", "doc/html/man3/CRYPTO_THREAD_run_once.html", @@ -16567,6 +19171,8 @@ our %unified_info = ( "doc/html/man3/DSA_size.html", "doc/html/man3/DTLS_get_data_mtu.html", "doc/html/man3/DTLS_set_timer_cb.html", + "doc/html/man3/DTLSv1_get_timeout.html", + "doc/html/man3/DTLSv1_handle_timeout.html", "doc/html/man3/DTLSv1_listen.html", "doc/html/man3/ECDSA_SIG_new.html", "doc/html/man3/ECDSA_sign.html", @@ -16613,6 +19219,7 @@ our %unified_info = ( "doc/html/man3/EVP_PKEY_CTX_ctrl.html", "doc/html/man3/EVP_PKEY_CTX_get0_libctx.html", "doc/html/man3/EVP_PKEY_CTX_get0_pkey.html", + "doc/html/man3/EVP_PKEY_CTX_get_algor.html", "doc/html/man3/EVP_PKEY_CTX_new.html", "doc/html/man3/EVP_PKEY_CTX_set1_pbe_pass.html", "doc/html/man3/EVP_PKEY_CTX_set_hkdf_md.html", @@ -16652,6 +19259,8 @@ our %unified_info = ( "doc/html/man3/EVP_PKEY_verify_recover.html", "doc/html/man3/EVP_RAND.html", "doc/html/man3/EVP_SIGNATURE.html", + "doc/html/man3/EVP_SKEY.html", + "doc/html/man3/EVP_SKEYMGMT.html", "doc/html/man3/EVP_SealInit.html", "doc/html/man3/EVP_SignInit.html", "doc/html/man3/EVP_VerifyInit.html", @@ -16681,6 +19290,7 @@ our %unified_info = ( "doc/html/man3/EVP_sm3.html", "doc/html/man3/EVP_sm4_cbc.html", "doc/html/man3/EVP_whirlpool.html", + "doc/html/man3/GENERAL_NAME.html", "doc/html/man3/HMAC.html", "doc/html/man3/MD5.html", "doc/html/man3/MDC2_Init.html", @@ -16705,14 +19315,18 @@ our %unified_info = ( "doc/html/man3/OPENSSL_init_ssl.html", "doc/html/man3/OPENSSL_instrument_bus.html", "doc/html/man3/OPENSSL_load_builtin_modules.html", + "doc/html/man3/OPENSSL_load_u16_le.html", "doc/html/man3/OPENSSL_malloc.html", + "doc/html/man3/OPENSSL_riscvcap.html", "doc/html/man3/OPENSSL_s390xcap.html", "doc/html/man3/OPENSSL_secure_malloc.html", "doc/html/man3/OPENSSL_strcasecmp.html", "doc/html/man3/OSSL_ALGORITHM.html", "doc/html/man3/OSSL_CALLBACK.html", + "doc/html/man3/OSSL_CMP_ATAV_set0.html", "doc/html/man3/OSSL_CMP_CTX_new.html", "doc/html/man3/OSSL_CMP_HDR_get0_transactionID.html", + "doc/html/man3/OSSL_CMP_ITAV_new_caCerts.html", "doc/html/man3/OSSL_CMP_ITAV_set0.html", "doc/html/man3/OSSL_CMP_MSG_get0_header.html", "doc/html/man3/OSSL_CMP_MSG_http_perform.html", @@ -16736,18 +19350,27 @@ our %unified_info = ( "doc/html/man3/OSSL_ENCODER_CTX.html", "doc/html/man3/OSSL_ENCODER_CTX_new_for_pkey.html", "doc/html/man3/OSSL_ENCODER_to_bio.html", + "doc/html/man3/OSSL_ERR_STATE_save.html", "doc/html/man3/OSSL_ESS_check_signing_certs.html", + "doc/html/man3/OSSL_GENERAL_NAMES_print.html", + "doc/html/man3/OSSL_HPKE_CTX_new.html", "doc/html/man3/OSSL_HTTP_REQ_CTX.html", "doc/html/man3/OSSL_HTTP_parse_url.html", "doc/html/man3/OSSL_HTTP_transfer.html", + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX.html", + "doc/html/man3/OSSL_IETF_ATTR_SYNTAX_print.html", + "doc/html/man3/OSSL_INDICATOR_set_callback.html", "doc/html/man3/OSSL_ITEM.html", "doc/html/man3/OSSL_LIB_CTX.html", + "doc/html/man3/OSSL_LIB_CTX_set_conf_diagnostics.html", "doc/html/man3/OSSL_PARAM.html", "doc/html/man3/OSSL_PARAM_BLD.html", "doc/html/man3/OSSL_PARAM_allocate_from_text.html", "doc/html/man3/OSSL_PARAM_dup.html", "doc/html/man3/OSSL_PARAM_int.html", + "doc/html/man3/OSSL_PARAM_print_to_bio.html", "doc/html/man3/OSSL_PROVIDER.html", + "doc/html/man3/OSSL_QUIC_client_method.html", "doc/html/man3/OSSL_SELF_TEST_new.html", "doc/html/man3/OSSL_SELF_TEST_set_callback.html", "doc/html/man3/OSSL_STORE_INFO.html", @@ -16756,11 +19379,13 @@ our %unified_info = ( "doc/html/man3/OSSL_STORE_attach.html", "doc/html/man3/OSSL_STORE_expect.html", "doc/html/man3/OSSL_STORE_open.html", + "doc/html/man3/OSSL_sleep.html", "doc/html/man3/OSSL_trace_enabled.html", "doc/html/man3/OSSL_trace_get_category_num.html", "doc/html/man3/OSSL_trace_set_channel.html", "doc/html/man3/OpenSSL_add_all_algorithms.html", "doc/html/man3/OpenSSL_version.html", + "doc/html/man3/PBMAC1_get1_pbkdf2_param.html", "doc/html/man3/PEM_X509_INFO_read_bio_ex.html", "doc/html/man3/PEM_bytes_read_bio.html", "doc/html/man3/PEM_read.html", @@ -16773,6 +19398,7 @@ our %unified_info = ( "doc/html/man3/PKCS12_SAFEBAG_create_cert.html", "doc/html/man3/PKCS12_SAFEBAG_get0_attrs.html", "doc/html/man3/PKCS12_SAFEBAG_get1_cert.html", + "doc/html/man3/PKCS12_SAFEBAG_set0_attrs.html", "doc/html/man3/PKCS12_add1_attr_by_NID.html", "doc/html/man3/PKCS12_add_CSPName_asc.html", "doc/html/man3/PKCS12_add_cert.html", @@ -16864,6 +19490,7 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_sess_set_get_cb.html", "doc/html/man3/SSL_CTX_sessions.html", "doc/html/man3/SSL_CTX_set0_CA_list.html", + "doc/html/man3/SSL_CTX_set1_cert_comp_preference.html", "doc/html/man3/SSL_CTX_set1_curves.html", "doc/html/man3/SSL_CTX_set1_sigalgs.html", "doc/html/man3/SSL_CTX_set1_verify_cert_store.html", @@ -16877,6 +19504,7 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_ct_validation_callback.html", "doc/html/man3/SSL_CTX_set_ctlog_list_file.html", "doc/html/man3/SSL_CTX_set_default_passwd_cb.html", + "doc/html/man3/SSL_CTX_set_domain_flags.html", "doc/html/man3/SSL_CTX_set_generate_session_id.html", "doc/html/man3/SSL_CTX_set_info_callback.html", "doc/html/man3/SSL_CTX_set_keylog_callback.html", @@ -16884,6 +19512,7 @@ our %unified_info = ( "doc/html/man3/SSL_CTX_set_min_proto_version.html", "doc/html/man3/SSL_CTX_set_mode.html", "doc/html/man3/SSL_CTX_set_msg_callback.html", + "doc/html/man3/SSL_CTX_set_new_pending_conn_cb.html", "doc/html/man3/SSL_CTX_set_num_tickets.html", "doc/html/man3/SSL_CTX_set_options.html", "doc/html/man3/SSL_CTX_set_psk_client_callback.html", @@ -16922,6 +19551,7 @@ our %unified_info = ( "doc/html/man3/SSL_SESSION_print.html", "doc/html/man3/SSL_SESSION_set1_id.html", "doc/html/man3/SSL_accept.html", + "doc/html/man3/SSL_accept_stream.html", "doc/html/man3/SSL_alert_type_string.html", "doc/html/man3/SSL_alloc_buffers.html", "doc/html/man3/SSL_check_chain.html", @@ -16931,59 +19561,90 @@ our %unified_info = ( "doc/html/man3/SSL_export_keying_material.html", "doc/html/man3/SSL_extension_supported.html", "doc/html/man3/SSL_free.html", + "doc/html/man3/SSL_get0_connection.html", + "doc/html/man3/SSL_get0_group_name.html", + "doc/html/man3/SSL_get0_peer_rpk.html", "doc/html/man3/SSL_get0_peer_scts.html", + "doc/html/man3/SSL_get1_builtin_sigalgs.html", "doc/html/man3/SSL_get_SSL_CTX.html", "doc/html/man3/SSL_get_all_async_fds.html", "doc/html/man3/SSL_get_certificate.html", "doc/html/man3/SSL_get_ciphers.html", "doc/html/man3/SSL_get_client_random.html", + "doc/html/man3/SSL_get_conn_close_info.html", "doc/html/man3/SSL_get_current_cipher.html", "doc/html/man3/SSL_get_default_timeout.html", "doc/html/man3/SSL_get_error.html", + "doc/html/man3/SSL_get_event_timeout.html", "doc/html/man3/SSL_get_extms_support.html", "doc/html/man3/SSL_get_fd.html", + "doc/html/man3/SSL_get_handshake_rtt.html", "doc/html/man3/SSL_get_peer_cert_chain.html", "doc/html/man3/SSL_get_peer_certificate.html", "doc/html/man3/SSL_get_peer_signature_nid.html", "doc/html/man3/SSL_get_peer_tmp_key.html", "doc/html/man3/SSL_get_psk_identity.html", "doc/html/man3/SSL_get_rbio.html", + "doc/html/man3/SSL_get_rpoll_descriptor.html", "doc/html/man3/SSL_get_session.html", "doc/html/man3/SSL_get_shared_sigalgs.html", + "doc/html/man3/SSL_get_stream_id.html", + "doc/html/man3/SSL_get_stream_read_state.html", + "doc/html/man3/SSL_get_value_uint.html", "doc/html/man3/SSL_get_verify_result.html", "doc/html/man3/SSL_get_version.html", "doc/html/man3/SSL_group_to_name.html", + "doc/html/man3/SSL_handle_events.html", "doc/html/man3/SSL_in_init.html", + "doc/html/man3/SSL_inject_net_dgram.html", "doc/html/man3/SSL_key_update.html", "doc/html/man3/SSL_library_init.html", "doc/html/man3/SSL_load_client_CA_file.html", "doc/html/man3/SSL_new.html", + "doc/html/man3/SSL_new_domain.html", + "doc/html/man3/SSL_new_listener.html", + "doc/html/man3/SSL_new_stream.html", "doc/html/man3/SSL_pending.html", + "doc/html/man3/SSL_poll.html", "doc/html/man3/SSL_read.html", "doc/html/man3/SSL_read_early_data.html", "doc/html/man3/SSL_rstate_string.html", "doc/html/man3/SSL_session_reused.html", "doc/html/man3/SSL_set1_host.html", + "doc/html/man3/SSL_set1_initial_peer_addr.html", + "doc/html/man3/SSL_set1_server_cert_type.html", "doc/html/man3/SSL_set_async_callback.html", "doc/html/man3/SSL_set_bio.html", + "doc/html/man3/SSL_set_blocking_mode.html", "doc/html/man3/SSL_set_connect_state.html", + "doc/html/man3/SSL_set_default_stream_mode.html", "doc/html/man3/SSL_set_fd.html", + "doc/html/man3/SSL_set_incoming_stream_policy.html", + "doc/html/man3/SSL_set_quic_tls_cbs.html", "doc/html/man3/SSL_set_retry_verify.html", "doc/html/man3/SSL_set_session.html", + "doc/html/man3/SSL_set_session_secret_cb.html", "doc/html/man3/SSL_set_shutdown.html", "doc/html/man3/SSL_set_verify_result.html", "doc/html/man3/SSL_shutdown.html", "doc/html/man3/SSL_state_string.html", + "doc/html/man3/SSL_stream_conclude.html", + "doc/html/man3/SSL_stream_reset.html", "doc/html/man3/SSL_want.html", "doc/html/man3/SSL_write.html", "doc/html/man3/TS_RESP_CTX_new.html", - "doc/html/man3/TS_VERIFY_CTX_set_certs.html", + "doc/html/man3/TS_VERIFY_CTX.html", "doc/html/man3/UI_STRING.html", "doc/html/man3/UI_UTIL_read_pw.html", "doc/html/man3/UI_create_method.html", "doc/html/man3/UI_new.html", "doc/html/man3/X509V3_get_d2i.html", "doc/html/man3/X509V3_set_ctx.html", + "doc/html/man3/X509_ACERT_add1_attr.html", + "doc/html/man3/X509_ACERT_add_attr_nconf.html", + "doc/html/man3/X509_ACERT_get0_holder_baseCertId.html", + "doc/html/man3/X509_ACERT_get_attr.html", + "doc/html/man3/X509_ACERT_print_ex.html", "doc/html/man3/X509_ALGOR_dup.html", "doc/html/man3/X509_ATTRIBUTE.html", "doc/html/man3/X509_CRL_get0_by_serial.html", @@ -17000,6 +19661,7 @@ our %unified_info = ( "doc/html/man3/X509_REQ_get_attr.html", "doc/html/man3/X509_REQ_get_extensions.html", "doc/html/man3/X509_SIG_get0.html", + "doc/html/man3/X509_STORE_CTX_get_by_subject.html", "doc/html/man3/X509_STORE_CTX_get_error.html", "doc/html/man3/X509_STORE_CTX_new.html", "doc/html/man3/X509_STORE_CTX_set_verify_cb.html", @@ -17022,6 +19684,7 @@ our %unified_info = ( "doc/html/man3/X509_get0_notBefore.html", "doc/html/man3/X509_get0_signature.html", "doc/html/man3/X509_get0_uids.html", + "doc/html/man3/X509_get_default_cert_file.html", "doc/html/man3/X509_get_extension_flags.html", "doc/html/man3/X509_get_pubkey.html", "doc/html/man3/X509_get_serialNumber.html", @@ -17067,12 +19730,15 @@ our %unified_info = ( "doc/html/man7/EVP_CIPHER-RC5.html", "doc/html/man7/EVP_CIPHER-SEED.html", "doc/html/man7/EVP_CIPHER-SM4.html", + "doc/html/man7/EVP_KDF-ARGON2.html", "doc/html/man7/EVP_KDF-HKDF.html", + "doc/html/man7/EVP_KDF-HMAC-DRBG.html", "doc/html/man7/EVP_KDF-KB.html", "doc/html/man7/EVP_KDF-KRB5KDF.html", "doc/html/man7/EVP_KDF-PBKDF1.html", "doc/html/man7/EVP_KDF-PBKDF2.html", "doc/html/man7/EVP_KDF-PKCS12KDF.html", + "doc/html/man7/EVP_KDF-PVKKDF.html", "doc/html/man7/EVP_KDF-SCRYPT.html", "doc/html/man7/EVP_KDF-SS.html", "doc/html/man7/EVP_KDF-SSHKDF.html", @@ -17081,7 +19747,10 @@ our %unified_info = ( "doc/html/man7/EVP_KDF-X942-ASN1.html", "doc/html/man7/EVP_KDF-X942-CONCAT.html", "doc/html/man7/EVP_KDF-X963.html", + "doc/html/man7/EVP_KEM-EC.html", + "doc/html/man7/EVP_KEM-ML-KEM.html", "doc/html/man7/EVP_KEM-RSA.html", + "doc/html/man7/EVP_KEM-X25519.html", "doc/html/man7/EVP_KEYEXCH-DH.html", "doc/html/man7/EVP_KEYEXCH-ECDH.html", "doc/html/man7/EVP_KEYEXCH-X25519.html", @@ -17093,6 +19762,7 @@ our %unified_info = ( "doc/html/man7/EVP_MAC-Poly1305.html", "doc/html/man7/EVP_MAC-Siphash.html", "doc/html/man7/EVP_MD-BLAKE2.html", + "doc/html/man7/EVP_MD-KECCAK.html", "doc/html/man7/EVP_MD-MD2.html", "doc/html/man7/EVP_MD-MD4.html", "doc/html/man7/EVP_MD-MD5-SHA1.html", @@ -17112,12 +19782,17 @@ our %unified_info = ( "doc/html/man7/EVP_PKEY-EC.html", "doc/html/man7/EVP_PKEY-FFC.html", "doc/html/man7/EVP_PKEY-HMAC.html", + "doc/html/man7/EVP_PKEY-ML-DSA.html", + "doc/html/man7/EVP_PKEY-ML-KEM.html", "doc/html/man7/EVP_PKEY-RSA.html", + "doc/html/man7/EVP_PKEY-SLH-DSA.html", "doc/html/man7/EVP_PKEY-SM2.html", "doc/html/man7/EVP_PKEY-X25519.html", + "doc/html/man7/EVP_RAND-CRNG-TEST.html", "doc/html/man7/EVP_RAND-CTR-DRBG.html", "doc/html/man7/EVP_RAND-HASH-DRBG.html", "doc/html/man7/EVP_RAND-HMAC-DRBG.html", + "doc/html/man7/EVP_RAND-JITTER.html", "doc/html/man7/EVP_RAND-SEED-SRC.html", "doc/html/man7/EVP_RAND-TEST-RAND.html", "doc/html/man7/EVP_RAND.html", @@ -17125,17 +19800,19 @@ our %unified_info = ( "doc/html/man7/EVP_SIGNATURE-ECDSA.html", "doc/html/man7/EVP_SIGNATURE-ED25519.html", "doc/html/man7/EVP_SIGNATURE-HMAC.html", + "doc/html/man7/EVP_SIGNATURE-ML-DSA.html", "doc/html/man7/EVP_SIGNATURE-RSA.html", + "doc/html/man7/EVP_SIGNATURE-SLH-DSA.html", "doc/html/man7/OSSL_PROVIDER-FIPS.html", "doc/html/man7/OSSL_PROVIDER-base.html", "doc/html/man7/OSSL_PROVIDER-default.html", "doc/html/man7/OSSL_PROVIDER-legacy.html", "doc/html/man7/OSSL_PROVIDER-null.html", + "doc/html/man7/OSSL_STORE-winstore.html", "doc/html/man7/RAND.html", "doc/html/man7/RSA-PSS.html", "doc/html/man7/X25519.html", "doc/html/man7/bio.html", - "doc/html/man7/crypto.html", "doc/html/man7/ct.html", "doc/html/man7/des_modes.html", "doc/html/man7/evp.html", @@ -17146,14 +19823,31 @@ our %unified_info = ( "doc/html/man7/life_cycle-mac.html", "doc/html/man7/life_cycle-pkey.html", "doc/html/man7/life_cycle-rand.html", - "doc/html/man7/migration_guide.html", "doc/html/man7/openssl-core.h.html", "doc/html/man7/openssl-core_dispatch.h.html", "doc/html/man7/openssl-core_names.h.html", "doc/html/man7/openssl-env.html", "doc/html/man7/openssl-glossary.html", + "doc/html/man7/openssl-qlog.html", + "doc/html/man7/openssl-quic-concurrency.html", + "doc/html/man7/openssl-quic.html", "doc/html/man7/openssl-threads.html", "doc/html/man7/openssl_user_macros.html", + "doc/html/man7/ossl-guide-introduction.html", + "doc/html/man7/ossl-guide-libcrypto-introduction.html", + "doc/html/man7/ossl-guide-libraries-introduction.html", + "doc/html/man7/ossl-guide-libssl-introduction.html", + "doc/html/man7/ossl-guide-migration.html", + "doc/html/man7/ossl-guide-quic-client-block.html", + "doc/html/man7/ossl-guide-quic-client-non-block.html", + "doc/html/man7/ossl-guide-quic-introduction.html", + "doc/html/man7/ossl-guide-quic-multi-stream.html", + "doc/html/man7/ossl-guide-quic-server-block.html", + "doc/html/man7/ossl-guide-quic-server-non-block.html", + "doc/html/man7/ossl-guide-tls-client-block.html", + "doc/html/man7/ossl-guide-tls-client-non-block.html", + "doc/html/man7/ossl-guide-tls-introduction.html", + "doc/html/man7/ossl-guide-tls-server-block.html", "doc/html/man7/ossl_store-file.html", "doc/html/man7/ossl_store.html", "doc/html/man7/passphrase-encoding.html", @@ -17172,10 +19866,10 @@ our %unified_info = ( "doc/html/man7/provider-object.html", "doc/html/man7/provider-rand.html", "doc/html/man7/provider-signature.html", + "doc/html/man7/provider-skeymgmt.html", "doc/html/man7/provider-storemgmt.html", "doc/html/man7/provider.html", "doc/html/man7/proxy-certificates.html", - "doc/html/man7/ssl.html", "doc/html/man7/x509.html" ] }, @@ -17190,12 +19884,21 @@ our %unified_info = ( ] }, "includes" => { + "OpenSSLConfig.cmake" => [ + "." + ], + "OpenSSLConfigVersion.cmake" => [ + "." + ], "apps/asn1parse.o" => [ "apps" ], "apps/ca.o" => [ "apps" ], + "apps/ca_internals_test-bin-ca.o" => [ + "apps" + ], "apps/ciphers.o" => [ "apps" ], @@ -17422,6 +20125,9 @@ our %unified_info = ( "apps/openssl-bin-sess_id.o" => [ "apps" ], + "apps/openssl-bin-skeyutl.o" => [ + "apps" + ], "apps/openssl-bin-smime.o" => [ "apps" ], @@ -17509,6 +20215,9 @@ our %unified_info = ( "apps/sess_id.o" => [ "apps" ], + "apps/skeyutl.o" => [ + "apps" + ], "apps/smime.o" => [ "apps" ], @@ -17560,6 +20269,12 @@ our %unified_info = ( "crypto/aes/bsaes-armv7.o" => [ "crypto" ], + "crypto/aes/vpaes-armv8.o" => [ + "crypto" + ], + "crypto/aes/vpaes-loongarch64.o" => [ + "crypto" + ], "crypto/arm64cpuid.o" => [ "crypto" ], @@ -17611,9 +20326,15 @@ our %unified_info = ( "crypto/chacha/chacha-armv4.o" => [ "crypto" ], + "crypto/chacha/chacha-armv8-sve.o" => [ + "crypto" + ], "crypto/chacha/chacha-armv8.o" => [ "crypto" ], + "crypto/chacha/chacha-loongarch64.o" => [ + "crypto" + ], "crypto/chacha/chacha-s390x.o" => [ "crypto" ], @@ -17638,15 +20359,27 @@ our %unified_info = ( "crypto/ec/ecp_s390x_nistp.o" => [ "crypto" ], + "crypto/ec/ecp_sm2p256-armv8.o" => [ + "crypto" + ], + "crypto/ec/ecx_key.o" => [ + "crypto" + ], "crypto/ec/ecx_meth.o" => [ "crypto" ], "crypto/ec/ecx_s390x.o" => [ "crypto" ], + "crypto/ec/libcrypto-lib-ecx_key.o" => [ + "crypto" + ], "crypto/ec/libcrypto-lib-ecx_meth.o" => [ "crypto" ], + "crypto/ec/libfips-lib-ecx_key.o" => [ + "crypto" + ], "crypto/evp/e_aes.o" => [ "crypto", "crypto/modes" @@ -17718,9 +20451,18 @@ our %unified_info = ( "crypto/libfips-lib-cpuid.o" => [ "." ], + "crypto/md5/md5-aarch64.o" => [ + "crypto" + ], + "crypto/md5/md5-loongarch64.o" => [ + "crypto" + ], "crypto/md5/md5-sparcv9.o" => [ "crypto" ], + "crypto/modes/aes-gcm-armv8-unroll8_64.o" => [ + "crypto" + ], "crypto/modes/aes-gcm-armv8_64.o" => [ "crypto" ], @@ -17745,6 +20487,9 @@ our %unified_info = ( "crypto/modes/libfips-lib-gcm128.o" => [ "crypto" ], + "crypto/params_idx.c" => [ + "util/perl" + ], "crypto/poly1305/poly1305-armv4.o" => [ "crypto" ], @@ -17766,6 +20511,9 @@ our %unified_info = ( "crypto/sha/keccak1600-armv4.o" => [ "crypto" ], + "crypto/sha/keccak1600-armv8.o" => [ + "crypto" + ], "crypto/sha/sha1-armv4-large.o" => [ "crypto" ], @@ -17811,6 +20559,18 @@ our %unified_info = ( "crypto/sha/sha512-sparcv9.o" => [ "crypto" ], + "crypto/sm3/sm3-armv8.o" => [ + "crypto" + ], + "crypto/sm4/sm4-armv8.o" => [ + "crypto" + ], + "crypto/sm4/vpsm4-armv8.o" => [ + "crypto" + ], + "crypto/sm4/vpsm4_ex-armv8.o" => [ + "crypto" + ], "doc/man1/openssl-asn1parse.pod" => [ "doc" ], @@ -17943,6 +20703,9 @@ our %unified_info = ( "doc/man1/openssl-sess_id.pod" => [ "doc" ], + "doc/man1/openssl-skeyutl.pod" => [ + "doc" + ], "doc/man1/openssl-smime.pod" => [ "doc" ], @@ -17970,6 +20733,24 @@ our %unified_info = ( "doc/man1/openssl-x509.pod" => [ "doc" ], + "exporters/OpenSSLConfig.cmake" => [ + "." + ], + "exporters/OpenSSLConfigVersion.cmake" => [ + "." + ], + "exporters/libcrypto.pc" => [ + "." + ], + "exporters/libssl.pc" => [ + "." + ], + "exporters/openssl.pc" => [ + "." + ], + "fuzz/acert-test" => [ + "include" + ], "fuzz/asn1-test" => [ "include" ], @@ -18000,12 +20781,69 @@ our %unified_info = ( "fuzz/ct-test" => [ "include" ], + "fuzz/decoder-test" => [ + "include" + ], + "fuzz/dtlsclient-test" => [ + "include" + ], + "fuzz/dtlsserver-test" => [ + "include" + ], + "fuzz/hashtable-test" => [ + "include" + ], + "fuzz/ml-dsa-test" => [ + "include" + ], + "fuzz/ml-kem-test" => [ + "include" + ], + "fuzz/pem-test" => [ + "include" + ], + "fuzz/provider-test" => [ + "include" + ], + "fuzz/punycode-test" => [ + "include" + ], + "fuzz/quic-client-test" => [ + "include" + ], + "fuzz/quic-lcidm-test" => [ + "include" + ], + "fuzz/quic-rcidm-test" => [ + "include" + ], + "fuzz/quic-server-test" => [ + "include" + ], + "fuzz/quic-srtm-test" => [ + "include" + ], "fuzz/server-test" => [ "include" ], + "fuzz/slh-dsa-test" => [ + "include" + ], + "fuzz/smime-test" => [ + "include" + ], + "fuzz/v3name-test" => [ + "include" + ], "fuzz/x509-test" => [ "include" ], + "include/internal/param_names.h" => [ + "util/perl" + ], + "include/openssl/core_names.h" => [ + "util/perl" + ], "libcrypto" => [ ".", "include", @@ -18016,6 +20854,9 @@ our %unified_info = ( ".", "util/perl/OpenSSL" ], + "libcrypto.pc" => [ + "." + ], "libssl" => [ ".", "include" @@ -18024,6 +20865,12 @@ our %unified_info = ( ".", "util/perl/OpenSSL" ], + "libssl.pc" => [ + "." + ], + "openssl.pc" => [ + "." + ], "providers/common/der/der_digests_gen.c" => [ "providers/common/der" ], @@ -18063,6 +20910,15 @@ our %unified_info = ( "providers/common/der/der_ecx_key.o" => [ "providers/common/include/prov" ], + "providers/common/der/der_ml_dsa_gen.c" => [ + "providers/common/der" + ], + "providers/common/der/der_ml_dsa_gen.o" => [ + "providers/common/include/prov" + ], + "providers/common/der/der_ml_dsa_key.o" => [ + "providers/common/include/prov" + ], "providers/common/der/der_rsa_gen.c" => [ "providers/common/der" ], @@ -18075,6 +20931,15 @@ our %unified_info = ( "providers/common/der/der_rsa_sig.o" => [ "providers/common/include/prov" ], + "providers/common/der/der_slh_dsa_gen.c" => [ + "providers/common/der" + ], + "providers/common/der/der_slh_dsa_gen.o" => [ + "providers/common/include/prov" + ], + "providers/common/der/der_slh_dsa_key.o" => [ + "providers/common/include/prov" + ], "providers/common/der/der_sm2_gen.c" => [ "providers/common/der" ], @@ -18120,12 +20985,24 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ecx_key.o" => [ "providers/common/include/prov" ], + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o" => [ + "providers/common/include/prov" + ], + "providers/common/der/libcommon-lib-der_ml_dsa_key.o" => [ + "providers/common/include/prov" + ], "providers/common/der/libcommon-lib-der_rsa_gen.o" => [ "providers/common/include/prov" ], "providers/common/der/libcommon-lib-der_rsa_key.o" => [ "providers/common/include/prov" ], + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o" => [ + "providers/common/include/prov" + ], + "providers/common/der/libcommon-lib-der_slh_dsa_key.o" => [ + "providers/common/include/prov" + ], "providers/common/der/libcommon-lib-der_wrap_gen.o" => [ "providers/common/include/prov" ], @@ -18156,9 +21033,15 @@ our %unified_info = ( "providers/common/include/prov/der_ecx.h" => [ "providers/common/der" ], + "providers/common/include/prov/der_ml_dsa.h" => [ + "providers/common/der" + ], "providers/common/include/prov/der_rsa.h" => [ "providers/common/der" ], + "providers/common/include/prov/der_slh_dsa.h" => [ + "providers/common/der" + ], "providers/common/include/prov/der_sm2.h" => [ "providers/common/der" ], @@ -18201,9 +21084,15 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-eddsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/libdefault-lib-rsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/libdefault-lib-sm2_sig.o" => [ "providers/common/include/prov" ], @@ -18216,12 +21105,24 @@ our %unified_info = ( "providers/implementations/signature/libfips-lib-eddsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/libfips-lib-rsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o" => [ + "providers/common/include/prov" + ], + "providers/implementations/signature/ml_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/rsa_sig.o" => [ "providers/common/include/prov" ], + "providers/implementations/signature/slh_dsa_sig.o" => [ + "providers/common/include/prov" + ], "providers/implementations/signature/sm2_sig.o" => [ "providers/common/include/prov" ], @@ -18234,28 +21135,39 @@ our %unified_info = ( "crypto", "include", "providers/implementations/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" ], "providers/libdefault.a" => [ ".", "crypto", "include", "providers/implementations/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" ], "providers/libfips.a" => [ ".", "crypto", "include", "providers/implementations/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" ], "providers/liblegacy.a" => [ ".", "crypto", "include", "providers/implementations/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" + ], + "providers/libtemplate.a" => [ + "crypto", + "include", + "providers/implementations/include", + "providers/common/include", + "providers/fips/include" ], "test/aborttest" => [ "include", @@ -18324,6 +21236,14 @@ our %unified_info = ( "include", "apps/include" ], + "test/bio_addr_test" => [ + "include", + "apps/include" + ], + "test/bio_base64_test" => [ + "include", + "apps/include" + ], "test/bio_callback_test" => [ "include", "apps/include" @@ -18332,11 +21252,20 @@ our %unified_info = ( "include", "apps/include" ], + "test/bio_dgram_test" => [ + "include", + "apps/include", + "." + ], "test/bio_enc_test" => [ "include", "apps/include" ], - "test/bio_memleak_test" => [ + "test/bio_memleak_test" => [ + "include", + "apps/include" + ], + "test/bio_meth_test" => [ "include", "apps/include" ], @@ -18353,6 +21282,11 @@ our %unified_info = ( "include", "apps/include" ], + "test/bio_tfo_test" => [ + "include", + "apps/include", + "." + ], "test/bioprinttest" => [ "include", "apps/include" @@ -18367,6 +21301,9 @@ our %unified_info = ( "include", "apps/include" ], + "test/build_wincrypt_test" => [ + "include" + ], "test/buildtest_c_aes" => [ "include" ], @@ -18382,6 +21319,9 @@ our %unified_info = ( "test/buildtest_c_buffer" => [ "include" ], + "test/buildtest_c_byteorder" => [ + "include" + ], "test/buildtest_c_camellia" => [ "include" ], @@ -18406,9 +21346,6 @@ our %unified_info = ( "test/buildtest_c_core_dispatch" => [ "include" ], - "test/buildtest_c_core_names" => [ - "include" - ], "test/buildtest_c_core_object" => [ "include" ], @@ -18433,6 +21370,9 @@ our %unified_info = ( "test/buildtest_c_e_os2" => [ "include" ], + "test/buildtest_c_e_ostime" => [ + "include" + ], "test/buildtest_c_ebcdic" => [ "include" ], @@ -18460,12 +21400,18 @@ our %unified_info = ( "test/buildtest_c_hmac" => [ "include" ], + "test/buildtest_c_hpke" => [ + "include" + ], "test/buildtest_c_http" => [ "include" ], "test/buildtest_c_idea" => [ "include" ], + "test/buildtest_c_indicator" => [ + "include" + ], "test/buildtest_c_kdf" => [ "include" ], @@ -18481,6 +21427,9 @@ our %unified_info = ( "test/buildtest_c_mdc2" => [ "include" ], + "test/buildtest_c_ml_kem" => [ + "include" + ], "test/buildtest_c_modes" => [ "include" ], @@ -18511,6 +21460,9 @@ our %unified_info = ( "test/buildtest_c_provider" => [ "include" ], + "test/buildtest_c_quic" => [ + "include" + ], "test/buildtest_c_rand" => [ "include" ], @@ -18553,6 +21505,9 @@ our %unified_info = ( "test/buildtest_c_symhacks" => [ "include" ], + "test/buildtest_c_thread" => [ + "include" + ], "test/buildtest_c_tls1" => [ "include" ], @@ -18568,10 +21523,24 @@ our %unified_info = ( "test/buildtest_c_whrlpool" => [ "include" ], + "test/byteorder_test" => [ + "include", + "apps/include" + ], + "test/ca_internals_test" => [ + ".", + "include", + "apps/include" + ], "test/casttest" => [ "include", "apps/include" ], + "test/cert_comp_test" => [ + "include", + "apps/include", + "." + ], "test/chacha_internal_test" => [ ".", "include", @@ -18695,6 +21664,11 @@ our %unified_info = ( "include", "apps/include" ], + "test/decoder_propq_test" => [ + ".", + "include", + "apps/include" + ], "test/defltfips_test" => [ "include", "apps/include" @@ -18710,7 +21684,8 @@ our %unified_info = ( "test/drbgtest" => [ "include", "apps/include", - "providers/common/include" + "providers/common/include", + "providers/fips/include" ], "test/dsa_no_digest_size_test" => [ "include", @@ -18753,7 +21728,9 @@ our %unified_info = ( "test/endecode_test" => [ ".", "include", - "apps/include" + "apps/include", + "providers/common/include", + "providers/implementations/include" ], "test/endecoder_legacy_test" => [ ".", @@ -18798,6 +21775,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/evp_pkey_dhkem_test" => [ + "include", + "apps/include" + ], "test/evp_pkey_dparams_test" => [ "include", "apps/include" @@ -18806,10 +21787,18 @@ our %unified_info = ( "include", "apps/include" ], + "test/evp_skey_test" => [ + "include", + "apps/include" + ], "test/evp_test" => [ "include", "apps/include" ], + "test/evp_xof_test" => [ + "include", + "apps/include" + ], "test/exdatatest" => [ "include", "apps/include" @@ -18910,22 +21899,62 @@ our %unified_info = ( ".", "include" ], + "test/helpers/json_test-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/helpers/pkcs12.o" => [ ".", "include" ], + "test/helpers/pkcs12_api_test-bin-pkcs12.o" => [ + ".", + "include" + ], "test/helpers/pkcs12_format_test-bin-pkcs12.o" => [ ".", "include" ], + "test/helpers/quic_multistream_test-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quic_newcid_test-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quic_radix_test-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quic_srt_gen_test-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quicapitest-bin-ssltestlib.o" => [ + ".", + "include" + ], + "test/helpers/quicfaultstest-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/helpers/recordlentest-bin-ssltestlib.o" => [ ".", "include" ], + "test/helpers/rpktest-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/helpers/servername_test-bin-ssltestlib.o" => [ ".", "include" ], + "test/helpers/ssl_handshake_rtt_test-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/helpers/ssl_test-bin-handshake.o" => [ ".", "include" @@ -18959,6 +21988,10 @@ our %unified_info = ( ".", "include" ], + "test/helpers/tls13groupselection_test-bin-ssltestlib.o" => [ + ".", + "include" + ], "test/hexstr_test" => [ ".", "include", @@ -18968,6 +22001,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/hpke_test" => [ + "include", + "apps/include" + ], "test/http_test" => [ "include", "apps/include" @@ -18980,6 +22017,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/json_test" => [ + "include", + "apps/include" + ], "test/keymgmt_internal_test" => [ ".", "include", @@ -18994,6 +22035,10 @@ our %unified_info = ( "apps/include", "." ], + "test/list_test" => [ + "include", + "apps/include" + ], "test/localetest" => [ "include", "apps/include" @@ -19007,10 +22052,27 @@ our %unified_info = ( "include", "apps/include" ], + "test/membio_test" => [ + "include", + "apps/include", + "." + ], "test/memleaktest" => [ "include", "apps/include" ], + "test/ml_dsa_test" => [ + "include", + "apps/include" + ], + "test/ml_kem_evp_extra_test" => [ + "include", + "apps/include" + ], + "test/ml_kem_internal_test" => [ + "include", + "apps/include" + ], "test/modes_internal_test" => [ ".", "include", @@ -19045,6 +22107,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/pairwise_fail_test" => [ + "include", + "apps/include" + ], "test/param_build_test" => [ "include", "apps/include" @@ -19078,6 +22144,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/pkcs12_api_test" => [ + "include", + "apps/include" + ], "test/pkcs12_format_test" => [ "include", "apps/include" @@ -19099,6 +22169,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/priority_queue_test" => [ + "include", + "apps/include" + ], "test/property_test" => [ ".", "include", @@ -19112,6 +22186,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/provider_default_search_path_test" => [ + "include", + "apps/include" + ], "test/provider_fallback_test" => [ "include", "apps/include" @@ -19138,6 +22216,97 @@ our %unified_info = ( "include", "apps/include" ], + "test/quic_ackm_test" => [ + "include", + "apps/include" + ], + "test/quic_cc_test" => [ + "include", + "apps/include" + ], + "test/quic_cfq_test" => [ + "include", + "apps/include" + ], + "test/quic_client_test" => [ + "include", + "apps/include" + ], + "test/quic_fc_test" => [ + "include", + "apps/include" + ], + "test/quic_fifd_test" => [ + "include", + "apps/include" + ], + "test/quic_lcidm_test" => [ + "include", + "apps/include" + ], + "test/quic_multistream_test" => [ + "include", + "apps/include" + ], + "test/quic_newcid_test" => [ + "include", + "apps/include", + "." + ], + "test/quic_qlog_test" => [ + "include", + "apps/include" + ], + "test/quic_radix_test" => [ + "include", + "apps/include" + ], + "test/quic_rcidm_test" => [ + "include", + "apps/include" + ], + "test/quic_record_test" => [ + "include", + "apps/include" + ], + "test/quic_srt_gen_test" => [ + "include", + "apps/include", + "." + ], + "test/quic_srtm_test" => [ + "include", + "apps/include" + ], + "test/quic_stream_test" => [ + "include", + "apps/include" + ], + "test/quic_tserver_test" => [ + "include", + "apps/include" + ], + "test/quic_txp_test" => [ + "include", + "apps/include" + ], + "test/quic_txpim_test" => [ + "include", + "apps/include" + ], + "test/quic_wire_test" => [ + "include", + "apps/include" + ], + "test/quicapitest" => [ + "include", + "apps/include" + ], + "test/quicfaultstest" => [ + "include", + "apps/include", + "." + ], "test/rand_status_test" => [ "include", "apps/include" @@ -19158,14 +22327,20 @@ our %unified_info = ( "include", "apps/include" ], - "test/rdrand_sanitytest" => [ + "test/rdcpu_sanitytest" => [ "include", - "apps/include" + "apps/include", + "crypto" ], "test/recordlentest" => [ "include", "apps/include" ], + "test/rpktest" => [ + "include", + "apps/include", + "." + ], "test/rsa_complex" => [ "include", "apps/include" @@ -19184,6 +22359,15 @@ our %unified_info = ( "include", "apps/include" ], + "test/rsa_x931_test" => [ + ".", + "include", + "apps/include" + ], + "test/safe_math_test" => [ + "include", + "apps/include" + ], "test/sanitytest" => [ "include", "apps/include" @@ -19205,6 +22389,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/slh_dsa_test" => [ + "include", + "apps/include" + ], "test/sm2_internal_test" => [ "include", "apps/include" @@ -19235,6 +22423,11 @@ our %unified_info = ( "include", "apps/include" ], + "test/ssl_handshake_rtt_test" => [ + "include", + "apps/include", + "." + ], "test/ssl_old_test" => [ ".", "include", @@ -19251,6 +22444,7 @@ our %unified_info = ( "test/sslapitest" => [ "include", "apps/include", + "providers/common/include", "." ], "test/sslbuffertest" => [ @@ -19265,6 +22459,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/strtoultest" => [ + "include", + "apps/include" + ], "test/sysdefaulttest" => [ "include", "apps/include" @@ -19273,7 +22471,13 @@ our %unified_info = ( "include", "apps/include" ], + "test/threadpool_test" => [ + ".", + "include", + "apps/include" + ], "test/threadstest" => [ + ".", "include", "apps/include" ], @@ -19285,6 +22489,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/time_test" => [ + "include", + "apps/include" + ], "test/tls13ccstest" => [ "include", "apps/include" @@ -19294,6 +22502,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/tls13groupselection_test" => [ + "include", + "apps/include" + ], "test/trace_api_test" => [ ".", "include", @@ -19332,6 +22544,10 @@ our %unified_info = ( "include", "apps/include" ], + "test/x509_acert_test" => [ + "include", + "apps/include" + ], "test/x509_check_cert_pkey_test" => [ "include", "apps/include" @@ -19345,6 +22561,18 @@ our %unified_info = ( "include", "apps/include" ], + "test/x509_load_cert_file_test" => [ + "include", + "apps/include" + ], + "test/x509_req_test" => [ + "include", + "apps/include" + ], + "test/x509_test" => [ + "include", + "apps/include" + ], "test/x509_time_test" => [ "include", "apps/include" @@ -19366,6 +22594,7 @@ our %unified_info = ( "providers/libdefault.a", "providers/libfips.a", "providers/liblegacy.a", + "providers/libtemplate.a", "test/libtestutil.a" ], "mandocs" => { @@ -19418,6 +22647,7 @@ our %unified_info = ( "doc/man/man1/openssl-s_server.1", "doc/man/man1/openssl-s_time.1", "doc/man/man1/openssl-sess_id.1", + "doc/man/man1/openssl-skeyutl.1", "doc/man/man1/openssl-smime.1", "doc/man/man1/openssl-speed.1", "doc/man/man1/openssl-spkac.1", @@ -19467,6 +22697,7 @@ our %unified_info = ( "doc/man/man3/BIO_find_type.3", "doc/man/man3/BIO_get_data.3", "doc/man/man3/BIO_get_ex_new_index.3", + "doc/man/man3/BIO_get_rpoll_descriptor.3", "doc/man/man3/BIO_meth_new.3", "doc/man/man3/BIO_new.3", "doc/man/man3/BIO_new_CMS.3", @@ -19479,11 +22710,13 @@ our %unified_info = ( "doc/man/man3/BIO_s_connect.3", "doc/man/man3/BIO_s_core.3", "doc/man/man3/BIO_s_datagram.3", + "doc/man/man3/BIO_s_dgram_pair.3", "doc/man/man3/BIO_s_fd.3", "doc/man/man3/BIO_s_file.3", "doc/man/man3/BIO_s_mem.3", "doc/man/man3/BIO_s_null.3", "doc/man/man3/BIO_s_socket.3", + "doc/man/man3/BIO_sendmmsg.3", "doc/man/man3/BIO_set_callback.3", "doc/man/man3/BIO_should_retry.3", "doc/man/man3/BIO_socket_wait.3", @@ -19508,6 +22741,7 @@ our %unified_info = ( "doc/man/man3/BN_swap.3", "doc/man/man3/BN_zero.3", "doc/man/man3/BUF_MEM_new.3", + "doc/man/man3/CMAC_CTX.3", "doc/man/man3/CMS_EncryptedData_decrypt.3", "doc/man/man3/CMS_EncryptedData_encrypt.3", "doc/man/man3/CMS_EnvelopedData_create.3", @@ -19530,6 +22764,7 @@ our %unified_info = ( "doc/man/man3/CMS_uncompress.3", "doc/man/man3/CMS_verify.3", "doc/man/man3/CMS_verify_receipt.3", + "doc/man/man3/COMP_CTX_new.3", "doc/man/man3/CONF_modules_free.3", "doc/man/man3/CONF_modules_load_file.3", "doc/man/man3/CRYPTO_THREAD_run_once.3", @@ -19563,6 +22798,8 @@ our %unified_info = ( "doc/man/man3/DSA_size.3", "doc/man/man3/DTLS_get_data_mtu.3", "doc/man/man3/DTLS_set_timer_cb.3", + "doc/man/man3/DTLSv1_get_timeout.3", + "doc/man/man3/DTLSv1_handle_timeout.3", "doc/man/man3/DTLSv1_listen.3", "doc/man/man3/ECDSA_SIG_new.3", "doc/man/man3/ECDSA_sign.3", @@ -19609,6 +22846,7 @@ our %unified_info = ( "doc/man/man3/EVP_PKEY_CTX_ctrl.3", "doc/man/man3/EVP_PKEY_CTX_get0_libctx.3", "doc/man/man3/EVP_PKEY_CTX_get0_pkey.3", + "doc/man/man3/EVP_PKEY_CTX_get_algor.3", "doc/man/man3/EVP_PKEY_CTX_new.3", "doc/man/man3/EVP_PKEY_CTX_set1_pbe_pass.3", "doc/man/man3/EVP_PKEY_CTX_set_hkdf_md.3", @@ -19648,6 +22886,8 @@ our %unified_info = ( "doc/man/man3/EVP_PKEY_verify_recover.3", "doc/man/man3/EVP_RAND.3", "doc/man/man3/EVP_SIGNATURE.3", + "doc/man/man3/EVP_SKEY.3", + "doc/man/man3/EVP_SKEYMGMT.3", "doc/man/man3/EVP_SealInit.3", "doc/man/man3/EVP_SignInit.3", "doc/man/man3/EVP_VerifyInit.3", @@ -19677,6 +22917,7 @@ our %unified_info = ( "doc/man/man3/EVP_sm3.3", "doc/man/man3/EVP_sm4_cbc.3", "doc/man/man3/EVP_whirlpool.3", + "doc/man/man3/GENERAL_NAME.3", "doc/man/man3/HMAC.3", "doc/man/man3/MD5.3", "doc/man/man3/MDC2_Init.3", @@ -19701,14 +22942,18 @@ our %unified_info = ( "doc/man/man3/OPENSSL_init_ssl.3", "doc/man/man3/OPENSSL_instrument_bus.3", "doc/man/man3/OPENSSL_load_builtin_modules.3", + "doc/man/man3/OPENSSL_load_u16_le.3", "doc/man/man3/OPENSSL_malloc.3", + "doc/man/man3/OPENSSL_riscvcap.3", "doc/man/man3/OPENSSL_s390xcap.3", "doc/man/man3/OPENSSL_secure_malloc.3", "doc/man/man3/OPENSSL_strcasecmp.3", "doc/man/man3/OSSL_ALGORITHM.3", "doc/man/man3/OSSL_CALLBACK.3", + "doc/man/man3/OSSL_CMP_ATAV_set0.3", "doc/man/man3/OSSL_CMP_CTX_new.3", "doc/man/man3/OSSL_CMP_HDR_get0_transactionID.3", + "doc/man/man3/OSSL_CMP_ITAV_new_caCerts.3", "doc/man/man3/OSSL_CMP_ITAV_set0.3", "doc/man/man3/OSSL_CMP_MSG_get0_header.3", "doc/man/man3/OSSL_CMP_MSG_http_perform.3", @@ -19732,18 +22977,27 @@ our %unified_info = ( "doc/man/man3/OSSL_ENCODER_CTX.3", "doc/man/man3/OSSL_ENCODER_CTX_new_for_pkey.3", "doc/man/man3/OSSL_ENCODER_to_bio.3", + "doc/man/man3/OSSL_ERR_STATE_save.3", "doc/man/man3/OSSL_ESS_check_signing_certs.3", + "doc/man/man3/OSSL_GENERAL_NAMES_print.3", + "doc/man/man3/OSSL_HPKE_CTX_new.3", "doc/man/man3/OSSL_HTTP_REQ_CTX.3", "doc/man/man3/OSSL_HTTP_parse_url.3", "doc/man/man3/OSSL_HTTP_transfer.3", + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX.3", + "doc/man/man3/OSSL_IETF_ATTR_SYNTAX_print.3", + "doc/man/man3/OSSL_INDICATOR_set_callback.3", "doc/man/man3/OSSL_ITEM.3", "doc/man/man3/OSSL_LIB_CTX.3", + "doc/man/man3/OSSL_LIB_CTX_set_conf_diagnostics.3", "doc/man/man3/OSSL_PARAM.3", "doc/man/man3/OSSL_PARAM_BLD.3", "doc/man/man3/OSSL_PARAM_allocate_from_text.3", "doc/man/man3/OSSL_PARAM_dup.3", "doc/man/man3/OSSL_PARAM_int.3", + "doc/man/man3/OSSL_PARAM_print_to_bio.3", "doc/man/man3/OSSL_PROVIDER.3", + "doc/man/man3/OSSL_QUIC_client_method.3", "doc/man/man3/OSSL_SELF_TEST_new.3", "doc/man/man3/OSSL_SELF_TEST_set_callback.3", "doc/man/man3/OSSL_STORE_INFO.3", @@ -19752,11 +23006,13 @@ our %unified_info = ( "doc/man/man3/OSSL_STORE_attach.3", "doc/man/man3/OSSL_STORE_expect.3", "doc/man/man3/OSSL_STORE_open.3", + "doc/man/man3/OSSL_sleep.3", "doc/man/man3/OSSL_trace_enabled.3", "doc/man/man3/OSSL_trace_get_category_num.3", "doc/man/man3/OSSL_trace_set_channel.3", "doc/man/man3/OpenSSL_add_all_algorithms.3", "doc/man/man3/OpenSSL_version.3", + "doc/man/man3/PBMAC1_get1_pbkdf2_param.3", "doc/man/man3/PEM_X509_INFO_read_bio_ex.3", "doc/man/man3/PEM_bytes_read_bio.3", "doc/man/man3/PEM_read.3", @@ -19769,6 +23025,7 @@ our %unified_info = ( "doc/man/man3/PKCS12_SAFEBAG_create_cert.3", "doc/man/man3/PKCS12_SAFEBAG_get0_attrs.3", "doc/man/man3/PKCS12_SAFEBAG_get1_cert.3", + "doc/man/man3/PKCS12_SAFEBAG_set0_attrs.3", "doc/man/man3/PKCS12_add1_attr_by_NID.3", "doc/man/man3/PKCS12_add_CSPName_asc.3", "doc/man/man3/PKCS12_add_cert.3", @@ -19860,6 +23117,7 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_sess_set_get_cb.3", "doc/man/man3/SSL_CTX_sessions.3", "doc/man/man3/SSL_CTX_set0_CA_list.3", + "doc/man/man3/SSL_CTX_set1_cert_comp_preference.3", "doc/man/man3/SSL_CTX_set1_curves.3", "doc/man/man3/SSL_CTX_set1_sigalgs.3", "doc/man/man3/SSL_CTX_set1_verify_cert_store.3", @@ -19873,6 +23131,7 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_ct_validation_callback.3", "doc/man/man3/SSL_CTX_set_ctlog_list_file.3", "doc/man/man3/SSL_CTX_set_default_passwd_cb.3", + "doc/man/man3/SSL_CTX_set_domain_flags.3", "doc/man/man3/SSL_CTX_set_generate_session_id.3", "doc/man/man3/SSL_CTX_set_info_callback.3", "doc/man/man3/SSL_CTX_set_keylog_callback.3", @@ -19880,6 +23139,7 @@ our %unified_info = ( "doc/man/man3/SSL_CTX_set_min_proto_version.3", "doc/man/man3/SSL_CTX_set_mode.3", "doc/man/man3/SSL_CTX_set_msg_callback.3", + "doc/man/man3/SSL_CTX_set_new_pending_conn_cb.3", "doc/man/man3/SSL_CTX_set_num_tickets.3", "doc/man/man3/SSL_CTX_set_options.3", "doc/man/man3/SSL_CTX_set_psk_client_callback.3", @@ -19918,6 +23178,7 @@ our %unified_info = ( "doc/man/man3/SSL_SESSION_print.3", "doc/man/man3/SSL_SESSION_set1_id.3", "doc/man/man3/SSL_accept.3", + "doc/man/man3/SSL_accept_stream.3", "doc/man/man3/SSL_alert_type_string.3", "doc/man/man3/SSL_alloc_buffers.3", "doc/man/man3/SSL_check_chain.3", @@ -19927,59 +23188,90 @@ our %unified_info = ( "doc/man/man3/SSL_export_keying_material.3", "doc/man/man3/SSL_extension_supported.3", "doc/man/man3/SSL_free.3", + "doc/man/man3/SSL_get0_connection.3", + "doc/man/man3/SSL_get0_group_name.3", + "doc/man/man3/SSL_get0_peer_rpk.3", "doc/man/man3/SSL_get0_peer_scts.3", + "doc/man/man3/SSL_get1_builtin_sigalgs.3", "doc/man/man3/SSL_get_SSL_CTX.3", "doc/man/man3/SSL_get_all_async_fds.3", "doc/man/man3/SSL_get_certificate.3", "doc/man/man3/SSL_get_ciphers.3", "doc/man/man3/SSL_get_client_random.3", + "doc/man/man3/SSL_get_conn_close_info.3", "doc/man/man3/SSL_get_current_cipher.3", "doc/man/man3/SSL_get_default_timeout.3", "doc/man/man3/SSL_get_error.3", + "doc/man/man3/SSL_get_event_timeout.3", "doc/man/man3/SSL_get_extms_support.3", "doc/man/man3/SSL_get_fd.3", + "doc/man/man3/SSL_get_handshake_rtt.3", "doc/man/man3/SSL_get_peer_cert_chain.3", "doc/man/man3/SSL_get_peer_certificate.3", "doc/man/man3/SSL_get_peer_signature_nid.3", "doc/man/man3/SSL_get_peer_tmp_key.3", "doc/man/man3/SSL_get_psk_identity.3", "doc/man/man3/SSL_get_rbio.3", + "doc/man/man3/SSL_get_rpoll_descriptor.3", "doc/man/man3/SSL_get_session.3", "doc/man/man3/SSL_get_shared_sigalgs.3", + "doc/man/man3/SSL_get_stream_id.3", + "doc/man/man3/SSL_get_stream_read_state.3", + "doc/man/man3/SSL_get_value_uint.3", "doc/man/man3/SSL_get_verify_result.3", "doc/man/man3/SSL_get_version.3", "doc/man/man3/SSL_group_to_name.3", + "doc/man/man3/SSL_handle_events.3", "doc/man/man3/SSL_in_init.3", + "doc/man/man3/SSL_inject_net_dgram.3", "doc/man/man3/SSL_key_update.3", "doc/man/man3/SSL_library_init.3", "doc/man/man3/SSL_load_client_CA_file.3", "doc/man/man3/SSL_new.3", + "doc/man/man3/SSL_new_domain.3", + "doc/man/man3/SSL_new_listener.3", + "doc/man/man3/SSL_new_stream.3", "doc/man/man3/SSL_pending.3", + "doc/man/man3/SSL_poll.3", "doc/man/man3/SSL_read.3", "doc/man/man3/SSL_read_early_data.3", "doc/man/man3/SSL_rstate_string.3", "doc/man/man3/SSL_session_reused.3", "doc/man/man3/SSL_set1_host.3", + "doc/man/man3/SSL_set1_initial_peer_addr.3", + "doc/man/man3/SSL_set1_server_cert_type.3", "doc/man/man3/SSL_set_async_callback.3", "doc/man/man3/SSL_set_bio.3", + "doc/man/man3/SSL_set_blocking_mode.3", "doc/man/man3/SSL_set_connect_state.3", + "doc/man/man3/SSL_set_default_stream_mode.3", "doc/man/man3/SSL_set_fd.3", + "doc/man/man3/SSL_set_incoming_stream_policy.3", + "doc/man/man3/SSL_set_quic_tls_cbs.3", "doc/man/man3/SSL_set_retry_verify.3", "doc/man/man3/SSL_set_session.3", + "doc/man/man3/SSL_set_session_secret_cb.3", "doc/man/man3/SSL_set_shutdown.3", "doc/man/man3/SSL_set_verify_result.3", "doc/man/man3/SSL_shutdown.3", "doc/man/man3/SSL_state_string.3", + "doc/man/man3/SSL_stream_conclude.3", + "doc/man/man3/SSL_stream_reset.3", "doc/man/man3/SSL_want.3", "doc/man/man3/SSL_write.3", "doc/man/man3/TS_RESP_CTX_new.3", - "doc/man/man3/TS_VERIFY_CTX_set_certs.3", + "doc/man/man3/TS_VERIFY_CTX.3", "doc/man/man3/UI_STRING.3", "doc/man/man3/UI_UTIL_read_pw.3", "doc/man/man3/UI_create_method.3", "doc/man/man3/UI_new.3", "doc/man/man3/X509V3_get_d2i.3", "doc/man/man3/X509V3_set_ctx.3", + "doc/man/man3/X509_ACERT_add1_attr.3", + "doc/man/man3/X509_ACERT_add_attr_nconf.3", + "doc/man/man3/X509_ACERT_get0_holder_baseCertId.3", + "doc/man/man3/X509_ACERT_get_attr.3", + "doc/man/man3/X509_ACERT_print_ex.3", "doc/man/man3/X509_ALGOR_dup.3", "doc/man/man3/X509_ATTRIBUTE.3", "doc/man/man3/X509_CRL_get0_by_serial.3", @@ -19996,6 +23288,7 @@ our %unified_info = ( "doc/man/man3/X509_REQ_get_attr.3", "doc/man/man3/X509_REQ_get_extensions.3", "doc/man/man3/X509_SIG_get0.3", + "doc/man/man3/X509_STORE_CTX_get_by_subject.3", "doc/man/man3/X509_STORE_CTX_get_error.3", "doc/man/man3/X509_STORE_CTX_new.3", "doc/man/man3/X509_STORE_CTX_set_verify_cb.3", @@ -20018,6 +23311,7 @@ our %unified_info = ( "doc/man/man3/X509_get0_notBefore.3", "doc/man/man3/X509_get0_signature.3", "doc/man/man3/X509_get0_uids.3", + "doc/man/man3/X509_get_default_cert_file.3", "doc/man/man3/X509_get_extension_flags.3", "doc/man/man3/X509_get_pubkey.3", "doc/man/man3/X509_get_serialNumber.3", @@ -20063,12 +23357,15 @@ our %unified_info = ( "doc/man/man7/EVP_CIPHER-RC5.7", "doc/man/man7/EVP_CIPHER-SEED.7", "doc/man/man7/EVP_CIPHER-SM4.7", + "doc/man/man7/EVP_KDF-ARGON2.7", "doc/man/man7/EVP_KDF-HKDF.7", + "doc/man/man7/EVP_KDF-HMAC-DRBG.7", "doc/man/man7/EVP_KDF-KB.7", "doc/man/man7/EVP_KDF-KRB5KDF.7", "doc/man/man7/EVP_KDF-PBKDF1.7", "doc/man/man7/EVP_KDF-PBKDF2.7", "doc/man/man7/EVP_KDF-PKCS12KDF.7", + "doc/man/man7/EVP_KDF-PVKKDF.7", "doc/man/man7/EVP_KDF-SCRYPT.7", "doc/man/man7/EVP_KDF-SS.7", "doc/man/man7/EVP_KDF-SSHKDF.7", @@ -20077,7 +23374,10 @@ our %unified_info = ( "doc/man/man7/EVP_KDF-X942-ASN1.7", "doc/man/man7/EVP_KDF-X942-CONCAT.7", "doc/man/man7/EVP_KDF-X963.7", + "doc/man/man7/EVP_KEM-EC.7", + "doc/man/man7/EVP_KEM-ML-KEM.7", "doc/man/man7/EVP_KEM-RSA.7", + "doc/man/man7/EVP_KEM-X25519.7", "doc/man/man7/EVP_KEYEXCH-DH.7", "doc/man/man7/EVP_KEYEXCH-ECDH.7", "doc/man/man7/EVP_KEYEXCH-X25519.7", @@ -20089,6 +23389,7 @@ our %unified_info = ( "doc/man/man7/EVP_MAC-Poly1305.7", "doc/man/man7/EVP_MAC-Siphash.7", "doc/man/man7/EVP_MD-BLAKE2.7", + "doc/man/man7/EVP_MD-KECCAK.7", "doc/man/man7/EVP_MD-MD2.7", "doc/man/man7/EVP_MD-MD4.7", "doc/man/man7/EVP_MD-MD5-SHA1.7", @@ -20108,12 +23409,17 @@ our %unified_info = ( "doc/man/man7/EVP_PKEY-EC.7", "doc/man/man7/EVP_PKEY-FFC.7", "doc/man/man7/EVP_PKEY-HMAC.7", + "doc/man/man7/EVP_PKEY-ML-DSA.7", + "doc/man/man7/EVP_PKEY-ML-KEM.7", "doc/man/man7/EVP_PKEY-RSA.7", + "doc/man/man7/EVP_PKEY-SLH-DSA.7", "doc/man/man7/EVP_PKEY-SM2.7", "doc/man/man7/EVP_PKEY-X25519.7", + "doc/man/man7/EVP_RAND-CRNG-TEST.7", "doc/man/man7/EVP_RAND-CTR-DRBG.7", "doc/man/man7/EVP_RAND-HASH-DRBG.7", "doc/man/man7/EVP_RAND-HMAC-DRBG.7", + "doc/man/man7/EVP_RAND-JITTER.7", "doc/man/man7/EVP_RAND-SEED-SRC.7", "doc/man/man7/EVP_RAND-TEST-RAND.7", "doc/man/man7/EVP_RAND.7", @@ -20121,17 +23427,19 @@ our %unified_info = ( "doc/man/man7/EVP_SIGNATURE-ECDSA.7", "doc/man/man7/EVP_SIGNATURE-ED25519.7", "doc/man/man7/EVP_SIGNATURE-HMAC.7", + "doc/man/man7/EVP_SIGNATURE-ML-DSA.7", "doc/man/man7/EVP_SIGNATURE-RSA.7", + "doc/man/man7/EVP_SIGNATURE-SLH-DSA.7", "doc/man/man7/OSSL_PROVIDER-FIPS.7", "doc/man/man7/OSSL_PROVIDER-base.7", "doc/man/man7/OSSL_PROVIDER-default.7", "doc/man/man7/OSSL_PROVIDER-legacy.7", "doc/man/man7/OSSL_PROVIDER-null.7", + "doc/man/man7/OSSL_STORE-winstore.7", "doc/man/man7/RAND.7", "doc/man/man7/RSA-PSS.7", "doc/man/man7/X25519.7", "doc/man/man7/bio.7", - "doc/man/man7/crypto.7", "doc/man/man7/ct.7", "doc/man/man7/des_modes.7", "doc/man/man7/evp.7", @@ -20142,14 +23450,31 @@ our %unified_info = ( "doc/man/man7/life_cycle-mac.7", "doc/man/man7/life_cycle-pkey.7", "doc/man/man7/life_cycle-rand.7", - "doc/man/man7/migration_guide.7", "doc/man/man7/openssl-core.h.7", "doc/man/man7/openssl-core_dispatch.h.7", "doc/man/man7/openssl-core_names.h.7", "doc/man/man7/openssl-env.7", "doc/man/man7/openssl-glossary.7", + "doc/man/man7/openssl-qlog.7", + "doc/man/man7/openssl-quic-concurrency.7", + "doc/man/man7/openssl-quic.7", "doc/man/man7/openssl-threads.7", "doc/man/man7/openssl_user_macros.7", + "doc/man/man7/ossl-guide-introduction.7", + "doc/man/man7/ossl-guide-libcrypto-introduction.7", + "doc/man/man7/ossl-guide-libraries-introduction.7", + "doc/man/man7/ossl-guide-libssl-introduction.7", + "doc/man/man7/ossl-guide-migration.7", + "doc/man/man7/ossl-guide-quic-client-block.7", + "doc/man/man7/ossl-guide-quic-client-non-block.7", + "doc/man/man7/ossl-guide-quic-introduction.7", + "doc/man/man7/ossl-guide-quic-multi-stream.7", + "doc/man/man7/ossl-guide-quic-server-block.7", + "doc/man/man7/ossl-guide-quic-server-non-block.7", + "doc/man/man7/ossl-guide-tls-client-block.7", + "doc/man/man7/ossl-guide-tls-client-non-block.7", + "doc/man/man7/ossl-guide-tls-introduction.7", + "doc/man/man7/ossl-guide-tls-server-block.7", "doc/man/man7/ossl_store-file.7", "doc/man/man7/ossl_store.7", "doc/man/man7/passphrase-encoding.7", @@ -20168,10 +23493,10 @@ our %unified_info = ( "doc/man/man7/provider-object.7", "doc/man/man7/provider-rand.7", "doc/man/man7/provider-signature.7", + "doc/man/man7/provider-skeymgmt.7", "doc/man/man7/provider-storemgmt.7", "doc/man/man7/provider.7", "doc/man/man7/proxy-certificates.7", - "doc/man/man7/ssl.7", "doc/man/man7/x509.7" ] }, @@ -20183,6 +23508,7 @@ our %unified_info = ( ], "programs" => [ "apps/openssl", + "fuzz/acert-test", "fuzz/asn1-test", "fuzz/asn1parse-test", "fuzz/bignum-test", @@ -20193,7 +23519,24 @@ our %unified_info = ( "fuzz/conf-test", "fuzz/crl-test", "fuzz/ct-test", + "fuzz/decoder-test", + "fuzz/dtlsclient-test", + "fuzz/dtlsserver-test", + "fuzz/hashtable-test", + "fuzz/ml-dsa-test", + "fuzz/ml-kem-test", + "fuzz/pem-test", + "fuzz/provider-test", + "fuzz/punycode-test", + "fuzz/quic-client-test", + "fuzz/quic-lcidm-test", + "fuzz/quic-rcidm-test", + "fuzz/quic-server-test", + "fuzz/quic-srtm-test", "fuzz/server-test", + "fuzz/slh-dsa-test", + "fuzz/smime-test", + "fuzz/v3name-test", "fuzz/x509-test", "test/aborttest", "test/acvp_test", @@ -20211,21 +23554,28 @@ our %unified_info = ( "test/asynctest", "test/bad_dtls_test", "test/bftest", + "test/bio_addr_test", + "test/bio_base64_test", "test/bio_callback_test", "test/bio_core_test", + "test/bio_dgram_test", "test/bio_enc_test", "test/bio_memleak_test", + "test/bio_meth_test", "test/bio_prefix_text", "test/bio_pw_callback_test", "test/bio_readbuffer_test", + "test/bio_tfo_test", "test/bioprinttest", "test/bn_internal_test", "test/bntest", + "test/build_wincrypt_test", "test/buildtest_c_aes", "test/buildtest_c_async", "test/buildtest_c_blowfish", "test/buildtest_c_bn", "test/buildtest_c_buffer", + "test/buildtest_c_byteorder", "test/buildtest_c_camellia", "test/buildtest_c_cast", "test/buildtest_c_cmac", @@ -20234,7 +23584,6 @@ our %unified_info = ( "test/buildtest_c_conftypes", "test/buildtest_c_core", "test/buildtest_c_core_dispatch", - "test/buildtest_c_core_names", "test/buildtest_c_core_object", "test/buildtest_c_cryptoerr_legacy", "test/buildtest_c_decoder", @@ -20243,6 +23592,7 @@ our %unified_info = ( "test/buildtest_c_dsa", "test/buildtest_c_dtls1", "test/buildtest_c_e_os2", + "test/buildtest_c_e_ostime", "test/buildtest_c_ebcdic", "test/buildtest_c_ec", "test/buildtest_c_ecdh", @@ -20252,13 +23602,16 @@ our %unified_info = ( "test/buildtest_c_evp", "test/buildtest_c_fips_names", "test/buildtest_c_hmac", + "test/buildtest_c_hpke", "test/buildtest_c_http", "test/buildtest_c_idea", + "test/buildtest_c_indicator", "test/buildtest_c_kdf", "test/buildtest_c_macros", "test/buildtest_c_md4", "test/buildtest_c_md5", "test/buildtest_c_mdc2", + "test/buildtest_c_ml_kem", "test/buildtest_c_modes", "test/buildtest_c_obj_mac", "test/buildtest_c_objects", @@ -20269,6 +23622,7 @@ our %unified_info = ( "test/buildtest_c_pem2", "test/buildtest_c_prov_ssl", "test/buildtest_c_provider", + "test/buildtest_c_quic", "test/buildtest_c_rand", "test/buildtest_c_rc2", "test/buildtest_c_rc4", @@ -20283,11 +23637,14 @@ our %unified_info = ( "test/buildtest_c_stack", "test/buildtest_c_store", "test/buildtest_c_symhacks", + "test/buildtest_c_thread", "test/buildtest_c_tls1", "test/buildtest_c_ts", "test/buildtest_c_txt_db", "test/buildtest_c_types", "test/buildtest_c_whrlpool", + "test/byteorder_test", + "test/ca_internals_test", "test/casttest", "test/chacha_internal_test", "test/cipher_overhead_test", @@ -20316,6 +23673,7 @@ our %unified_info = ( "test/curve448_internal_test", "test/d2i_test", "test/danetest", + "test/decoder_propq_test", "test/defltfips_test", "test/destest", "test/dhtest", @@ -20340,9 +23698,12 @@ our %unified_info = ( "test/evp_kdf_test", "test/evp_libctx_test", "test/evp_pkey_ctx_new_from_name", + "test/evp_pkey_dhkem_test", "test/evp_pkey_dparams_test", "test/evp_pkey_provided_test", + "test/evp_skey_test", "test/evp_test", + "test/evp_xof_test", "test/exdatatest", "test/exptest", "test/ext_internal_test", @@ -20352,21 +23713,29 @@ our %unified_info = ( "test/gmdifftest", "test/hexstr_test", "test/hmactest", + "test/hpke_test", "test/http_test", "test/ideatest", "test/igetest", + "test/json_test", "test/keymgmt_internal_test", "test/lhash_test", + "test/list_test", "test/localetest", "test/mdc2_internal_test", "test/mdc2test", + "test/membio_test", "test/memleaktest", + "test/ml_dsa_test", + "test/ml_kem_evp_extra_test", + "test/ml_kem_internal_test", "test/modes_internal_test", "test/namemap_internal_test", "test/nodefltctxtest", "test/ocspapitest", "test/ossl_store_test", "test/packettest", + "test/pairwise_fail_test", "test/param_build_test", "test/params_api_test", "test/params_conversion_test", @@ -20375,36 +23744,65 @@ our %unified_info = ( "test/pbetest", "test/pem_read_depr_test", "test/pemtest", + "test/pkcs12_api_test", "test/pkcs12_format_test", "test/pkcs7_test", "test/pkey_meth_kdf_test", "test/pkey_meth_test", "test/poly1305_internal_test", + "test/priority_queue_test", "test/property_test", "test/prov_config_test", "test/provfetchtest", + "test/provider_default_search_path_test", "test/provider_fallback_test", "test/provider_internal_test", "test/provider_pkey_test", "test/provider_status_test", "test/provider_test", "test/punycode_test", + "test/quic_ackm_test", + "test/quic_cc_test", + "test/quic_cfq_test", + "test/quic_client_test", + "test/quic_fc_test", + "test/quic_fifd_test", + "test/quic_lcidm_test", + "test/quic_multistream_test", + "test/quic_newcid_test", + "test/quic_qlog_test", + "test/quic_radix_test", + "test/quic_rcidm_test", + "test/quic_record_test", + "test/quic_srt_gen_test", + "test/quic_srtm_test", + "test/quic_stream_test", + "test/quic_tserver_test", + "test/quic_txp_test", + "test/quic_txpim_test", + "test/quic_wire_test", + "test/quicapitest", + "test/quicfaultstest", "test/rand_status_test", "test/rand_test", "test/rc2test", "test/rc4test", "test/rc5test", - "test/rdrand_sanitytest", + "test/rdcpu_sanitytest", "test/recordlentest", + "test/rpktest", "test/rsa_complex", "test/rsa_mp_test", "test/rsa_sp800_56b_test", "test/rsa_test", + "test/rsa_x931_test", + "test/safe_math_test", "test/sanitytest", "test/secmemtest", "test/servername_test", "test/sha_test", "test/siphash_internal_test", + "test/slh_dsa_test", "test/sm2_internal_test", "test/sm3_internal_test", "test/sm4_internal_test", @@ -20412,6 +23810,7 @@ our %unified_info = ( "test/srptest", "test/ssl_cert_table_internal_test", "test/ssl_ctx_test", + "test/ssl_handshake_rtt_test", "test/ssl_old_test", "test/ssl_test", "test/ssl_test_ctx_test", @@ -20419,13 +23818,17 @@ our %unified_info = ( "test/sslbuffertest", "test/sslcorrupttest", "test/stack_test", + "test/strtoultest", "test/sysdefaulttest", "test/test_test", + "test/threadpool_test", "test/threadstest", "test/threadstest_fips", "test/time_offset_test", + "test/time_test", "test/tls13ccstest", "test/tls13encryptiontest", + "test/tls13groupselection_test", "test/trace_api_test", "test/uitest", "test/upcallstest", @@ -20435,9 +23838,13 @@ our %unified_info = ( "test/verify_extra_test", "test/versions", "test/wpackettest", + "test/x509_acert_test", "test/x509_check_cert_pkey_test", "test/x509_dup_cert_test", "test/x509_internal_test", + "test/x509_load_cert_file_test", + "test/x509_req_test", + "test/x509_test", "test/x509_time_test", "test/x509aux" ], @@ -20453,6 +23860,33 @@ our %unified_info = ( "apps/CA.pl" => [ "apps/CA.pl.in" ], + "apps/ca_internals_test-bin-ca.o" => [ + "apps/ca.c" + ], + "apps/lib/ca_internals_test-bin-app_libctx.o" => [ + "apps/lib/app_libctx.c" + ], + "apps/lib/ca_internals_test-bin-app_provider.o" => [ + "apps/lib/app_provider.c" + ], + "apps/lib/ca_internals_test-bin-app_rand.o" => [ + "apps/lib/app_rand.c" + ], + "apps/lib/ca_internals_test-bin-app_x509.o" => [ + "apps/lib/app_x509.c" + ], + "apps/lib/ca_internals_test-bin-apps.o" => [ + "apps/lib/apps.c" + ], + "apps/lib/ca_internals_test-bin-apps_ui.o" => [ + "apps/lib/apps_ui.c" + ], + "apps/lib/ca_internals_test-bin-engine.o" => [ + "apps/lib/engine.c" + ], + "apps/lib/ca_internals_test-bin-fmt.o" => [ + "apps/lib/fmt.c" + ], "apps/lib/cmp_client_test-bin-cmp_mock_srv.o" => [ "apps/lib/cmp_mock_srv.c" ], @@ -20474,6 +23908,9 @@ our %unified_info = ( "apps/lib/libapps-lib-apps.o" => [ "apps/lib/apps.c" ], + "apps/lib/libapps-lib-apps_opt_printf.o" => [ + "apps/lib/apps_opt_printf.c" + ], "apps/lib/libapps-lib-apps_ui.o" => [ "apps/lib/apps_ui.c" ], @@ -20492,6 +23929,9 @@ our %unified_info = ( "apps/lib/libapps-lib-http_server.o" => [ "apps/lib/http_server.c" ], + "apps/lib/libapps-lib-log.o" => [ + "apps/lib/log.c" + ], "apps/lib/libapps-lib-names.o" => [ "apps/lib/names.c" ], @@ -20523,12 +23963,14 @@ our %unified_info = ( "apps/lib/libapps-lib-app_rand.o", "apps/lib/libapps-lib-app_x509.o", "apps/lib/libapps-lib-apps.o", + "apps/lib/libapps-lib-apps_opt_printf.o", "apps/lib/libapps-lib-apps_ui.o", "apps/lib/libapps-lib-columns.o", "apps/lib/libapps-lib-engine.o", "apps/lib/libapps-lib-engine_loader.o", "apps/lib/libapps-lib-fmt.o", "apps/lib/libapps-lib-http_server.o", + "apps/lib/libapps-lib-log.o", "apps/lib/libapps-lib-names.o", "apps/lib/libapps-lib-opt.o", "apps/lib/libapps-lib-s_cb.o", @@ -20582,6 +24024,7 @@ our %unified_info = ( "apps/openssl-bin-s_server.o", "apps/openssl-bin-s_time.o", "apps/openssl-bin-sess_id.o", + "apps/openssl-bin-skeyutl.o", "apps/openssl-bin-smime.o", "apps/openssl-bin-speed.o", "apps/openssl-bin-spkac.o", @@ -20727,6 +24170,9 @@ our %unified_info = ( "apps/openssl-bin-sess_id.o" => [ "apps/sess_id.c" ], + "apps/openssl-bin-skeyutl.o" => [ + "apps/skeyutl.c" + ], "apps/openssl-bin-smime.o" => [ "apps/smime.c" ], @@ -20802,6 +24248,12 @@ our %unified_info = ( "crypto/aria/libcrypto-lib-aria.o" => [ "crypto/aria/aria.c" ], + "crypto/asn1/asn1_time_test-bin-a_time.o" => [ + "crypto/asn1/a_time.c" + ], + "crypto/asn1/ca_internals_test-bin-a_time.o" => [ + "crypto/asn1/a_time.c" + ], "crypto/asn1/libcrypto-lib-a_bitstr.o" => [ "crypto/asn1/a_bitstr.c" ], @@ -20994,6 +24446,9 @@ our %unified_info = ( "crypto/asn1/libcrypto-lib-x_val.o" => [ "crypto/asn1/x_val.c" ], + "crypto/asn1_time_test-bin-ctype.o" => [ + "crypto/ctype.c" + ], "crypto/async/arch/libcrypto-lib-async_null.o" => [ "crypto/async/arch/async_null.c" ], @@ -21087,6 +24542,9 @@ our %unified_info = ( "crypto/bio/libcrypto-lib-bss_dgram.o" => [ "crypto/bio/bss_dgram.c" ], + "crypto/bio/libcrypto-lib-bss_dgram_pair.o" => [ + "crypto/bio/bss_dgram_pair.c" + ], "crypto/bio/libcrypto-lib-bss_fd.o" => [ "crypto/bio/bss_fd.c" ], @@ -21318,6 +24776,9 @@ our %unified_info = ( "crypto/buffer/libfips-lib-buffer.o" => [ "crypto/buffer/buffer.c" ], + "crypto/ca_internals_test-bin-ctype.o" => [ + "crypto/ctype.c" + ], "crypto/camellia/libcrypto-lib-cmll-x86.o" => [ "crypto/camellia/cmll-x86.S" ], @@ -21369,6 +24830,9 @@ our %unified_info = ( "crypto/cmp/libcrypto-lib-cmp_err.o" => [ "crypto/cmp/cmp_err.c" ], + "crypto/cmp/libcrypto-lib-cmp_genm.o" => [ + "crypto/cmp/cmp_genm.c" + ], "crypto/cmp/libcrypto-lib-cmp_hdr.o" => [ "crypto/cmp/cmp_hdr.c" ], @@ -22056,9 +25520,15 @@ our %unified_info = ( "crypto/err/libcrypto-lib-err_blocks.o" => [ "crypto/err/err_blocks.c" ], + "crypto/err/libcrypto-lib-err_mark.o" => [ + "crypto/err/err_mark.c" + ], "crypto/err/libcrypto-lib-err_prn.o" => [ "crypto/err/err_prn.c" ], + "crypto/err/libcrypto-lib-err_save.o" => [ + "crypto/err/err_save.c" + ], "crypto/ess/libcrypto-lib-ess_asn1.o" => [ "crypto/ess/ess_asn1.c" ], @@ -22305,9 +25775,15 @@ our %unified_info = ( "crypto/evp/libcrypto-lib-pmeth_lib.o" => [ "crypto/evp/pmeth_lib.c" ], + "crypto/evp/libcrypto-lib-s_lib.o" => [ + "crypto/evp/s_lib.c" + ], "crypto/evp/libcrypto-lib-signature.o" => [ "crypto/evp/signature.c" ], + "crypto/evp/libcrypto-lib-skeymgmt_meth.o" => [ + "crypto/evp/skeymgmt_meth.c" + ], "crypto/evp/libfips-lib-asymcipher.o" => [ "crypto/evp/asymcipher.c" ], @@ -22353,9 +25829,6 @@ our %unified_info = ( "crypto/evp/libfips-lib-keymgmt_meth.o" => [ "crypto/evp/keymgmt_meth.c" ], - "crypto/evp/libfips-lib-m_sigver.o" => [ - "crypto/evp/m_sigver.c" - ], "crypto/evp/libfips-lib-mac_lib.o" => [ "crypto/evp/mac_lib.c" ], @@ -22374,9 +25847,15 @@ our %unified_info = ( "crypto/evp/libfips-lib-pmeth_lib.o" => [ "crypto/evp/pmeth_lib.c" ], + "crypto/evp/libfips-lib-s_lib.o" => [ + "crypto/evp/s_lib.c" + ], "crypto/evp/libfips-lib-signature.o" => [ "crypto/evp/signature.c" ], + "crypto/evp/libfips-lib-skeymgmt_meth.o" => [ + "crypto/evp/skeymgmt_meth.c" + ], "crypto/ffc/libcrypto-lib-ffc_backend.o" => [ "crypto/ffc/ffc_backend.c" ], @@ -22419,12 +25898,30 @@ our %unified_info = ( "crypto/ffc/libfips-lib-ffc_params_validate.o" => [ "crypto/ffc/ffc_params_validate.c" ], + "crypto/hashtable/libcrypto-lib-hashfunc.o" => [ + "crypto/hashtable/hashfunc.c" + ], + "crypto/hashtable/libcrypto-lib-hashtable.o" => [ + "crypto/hashtable/hashtable.c" + ], + "crypto/hashtable/libfips-lib-hashfunc.o" => [ + "crypto/hashtable/hashfunc.c" + ], + "crypto/hashtable/libfips-lib-hashtable.o" => [ + "crypto/hashtable/hashtable.c" + ], "crypto/hmac/libcrypto-lib-hmac.o" => [ "crypto/hmac/hmac.c" ], "crypto/hmac/libfips-lib-hmac.o" => [ "crypto/hmac/hmac.c" ], + "crypto/hpke/libcrypto-lib-hpke.o" => [ + "crypto/hpke/hpke.c" + ], + "crypto/hpke/libcrypto-lib-hpke_util.o" => [ + "crypto/hpke/hpke_util.c" + ], "crypto/http/libcrypto-lib-http_client.o" => [ "crypto/http/http_client.c" ], @@ -22467,6 +25964,9 @@ our %unified_info = ( "crypto/libcrypto-lib-bsearch.o" => [ "crypto/bsearch.c" ], + "crypto/libcrypto-lib-comp_methods.o" => [ + "crypto/comp_methods.c" + ], "crypto/libcrypto-lib-context.o" => [ "crypto/context.c" ], @@ -22494,9 +25994,15 @@ our %unified_info = ( "crypto/libcrypto-lib-cversion.o" => [ "crypto/cversion.c" ], + "crypto/libcrypto-lib-defaults.o" => [ + "crypto/defaults.c" + ], "crypto/libcrypto-lib-der_writer.o" => [ "crypto/der_writer.c" ], + "crypto/libcrypto-lib-deterministic_nonce.o" => [ + "crypto/deterministic_nonce.c" + ], "crypto/libcrypto-lib-ebcdic.o" => [ "crypto/ebcdic.c" ], @@ -22506,6 +26012,9 @@ our %unified_info = ( "crypto/libcrypto-lib-getenv.o" => [ "crypto/getenv.c" ], + "crypto/libcrypto-lib-indicator_core.o" => [ + "crypto/indicator_core.c" + ], "crypto/libcrypto-lib-info.o" => [ "crypto/info.c" ], @@ -22554,6 +26063,9 @@ our %unified_info = ( "crypto/libcrypto-lib-params_from_text.o" => [ "crypto/params_from_text.c" ], + "crypto/libcrypto-lib-params_idx.o" => [ + "crypto/params_idx.c" + ], "crypto/libcrypto-lib-passphrase.o" => [ "crypto/passphrase.c" ], @@ -22575,12 +26087,21 @@ our %unified_info = ( "crypto/libcrypto-lib-punycode.o" => [ "crypto/punycode.c" ], + "crypto/libcrypto-lib-quic_vlint.o" => [ + "crypto/quic_vlint.c" + ], "crypto/libcrypto-lib-self_test_core.o" => [ "crypto/self_test_core.c" ], + "crypto/libcrypto-lib-sleep.o" => [ + "crypto/sleep.c" + ], "crypto/libcrypto-lib-sparse_array.o" => [ "crypto/sparse_array.c" ], + "crypto/libcrypto-lib-ssl_err.o" => [ + "crypto/ssl_err.c" + ], "crypto/libcrypto-lib-threads_lib.o" => [ "crypto/threads_lib.c" ], @@ -22593,6 +26114,9 @@ our %unified_info = ( "crypto/libcrypto-lib-threads_win.o" => [ "crypto/threads_win.c" ], + "crypto/libcrypto-lib-time.o" => [ + "crypto/time.c" + ], "crypto/libcrypto-lib-trace.o" => [ "crypto/trace.c" ], @@ -22659,6 +26183,9 @@ our %unified_info = ( "crypto/libfips-lib-params_from_text.o" => [ "crypto/params_from_text.c" ], + "crypto/libfips-lib-params_idx.o" => [ + "crypto/params_idx.c" + ], "crypto/libfips-lib-provider_core.o" => [ "crypto/provider_core.c" ], @@ -22683,6 +26210,9 @@ our %unified_info = ( "crypto/libfips-lib-threads_win.o" => [ "crypto/threads_win.c" ], + "crypto/libfips-lib-time.o" => [ + "crypto/time.c" + ], "crypto/libfips-lib-x86cpuid.o" => [ "crypto/x86cpuid.S" ], @@ -22710,6 +26240,60 @@ our %unified_info = ( "crypto/mdc2/libcrypto-lib-mdc2dgst.o" => [ "crypto/mdc2/mdc2dgst.c" ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_encoders.o" => [ + "crypto/ml_dsa/ml_dsa_encoders.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key.o" => [ + "crypto/ml_dsa/ml_dsa_key.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key_compress.o" => [ + "crypto/ml_dsa/ml_dsa_key_compress.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_matrix.o" => [ + "crypto/ml_dsa/ml_dsa_matrix.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_ntt.o" => [ + "crypto/ml_dsa/ml_dsa_ntt.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_params.o" => [ + "crypto/ml_dsa/ml_dsa_params.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sample.o" => [ + "crypto/ml_dsa/ml_dsa_sample.c" + ], + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sign.o" => [ + "crypto/ml_dsa/ml_dsa_sign.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_encoders.o" => [ + "crypto/ml_dsa/ml_dsa_encoders.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_key.o" => [ + "crypto/ml_dsa/ml_dsa_key.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_key_compress.o" => [ + "crypto/ml_dsa/ml_dsa_key_compress.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_matrix.o" => [ + "crypto/ml_dsa/ml_dsa_matrix.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_ntt.o" => [ + "crypto/ml_dsa/ml_dsa_ntt.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_params.o" => [ + "crypto/ml_dsa/ml_dsa_params.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_sample.o" => [ + "crypto/ml_dsa/ml_dsa_sample.c" + ], + "crypto/ml_dsa/libfips-lib-ml_dsa_sign.o" => [ + "crypto/ml_dsa/ml_dsa_sign.c" + ], + "crypto/ml_kem/libcrypto-lib-ml_kem.o" => [ + "crypto/ml_kem/ml_kem.c" + ], + "crypto/ml_kem/libfips-lib-ml_kem.o" => [ + "crypto/ml_kem/ml_kem.c" + ], "crypto/modes/libcrypto-lib-cbc128.o" => [ "crypto/modes/cbc128.c" ], @@ -22746,6 +26330,9 @@ our %unified_info = ( "crypto/modes/libcrypto-lib-xts128.o" => [ "crypto/modes/xts128.c" ], + "crypto/modes/libcrypto-lib-xts128gb.o" => [ + "crypto/modes/xts128gb.c" + ], "crypto/modes/libfips-lib-cbc128.o" => [ "crypto/modes/cbc128.c" ], @@ -22773,6 +26360,9 @@ our %unified_info = ( "crypto/modes/libfips-lib-xts128.o" => [ "crypto/modes/xts128.c" ], + "crypto/modes/libfips-lib-xts128gb.o" => [ + "crypto/modes/xts128gb.c" + ], "crypto/objects/libcrypto-lib-o_names.o" => [ "crypto/objects/o_names.c" ], @@ -22818,6 +26408,9 @@ our %unified_info = ( "crypto/ocsp/libcrypto-lib-v3_ocsp.o" => [ "crypto/ocsp/v3_ocsp.c" ], + "crypto/packettest-bin-quic_vlint.o" => [ + "crypto/quic_vlint.c" + ], "crypto/pem/libcrypto-lib-pem_all.o" => [ "crypto/pem/pem_all.c" ], @@ -22980,6 +26573,9 @@ our %unified_info = ( "crypto/rand/libcrypto-lib-rand_pool.o" => [ "crypto/rand/rand_pool.c" ], + "crypto/rand/libcrypto-lib-rand_uniform.o" => [ + "crypto/rand/rand_uniform.c" + ], "crypto/rand/libcrypto-lib-randfile.o" => [ "crypto/rand/randfile.c" ], @@ -23211,6 +26807,66 @@ our %unified_info = ( "crypto/siphash/libcrypto-lib-siphash.o" => [ "crypto/siphash/siphash.c" ], + "crypto/slh_dsa/libcrypto-lib-slh_adrs.o" => [ + "crypto/slh_dsa/slh_adrs.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_dsa.o" => [ + "crypto/slh_dsa/slh_dsa.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_dsa_hash_ctx.o" => [ + "crypto/slh_dsa/slh_dsa_hash_ctx.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_dsa_key.o" => [ + "crypto/slh_dsa/slh_dsa_key.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_fors.o" => [ + "crypto/slh_dsa/slh_fors.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_hash.o" => [ + "crypto/slh_dsa/slh_hash.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_hypertree.o" => [ + "crypto/slh_dsa/slh_hypertree.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_params.o" => [ + "crypto/slh_dsa/slh_params.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_wots.o" => [ + "crypto/slh_dsa/slh_wots.c" + ], + "crypto/slh_dsa/libcrypto-lib-slh_xmss.o" => [ + "crypto/slh_dsa/slh_xmss.c" + ], + "crypto/slh_dsa/libfips-lib-slh_adrs.o" => [ + "crypto/slh_dsa/slh_adrs.c" + ], + "crypto/slh_dsa/libfips-lib-slh_dsa.o" => [ + "crypto/slh_dsa/slh_dsa.c" + ], + "crypto/slh_dsa/libfips-lib-slh_dsa_hash_ctx.o" => [ + "crypto/slh_dsa/slh_dsa_hash_ctx.c" + ], + "crypto/slh_dsa/libfips-lib-slh_dsa_key.o" => [ + "crypto/slh_dsa/slh_dsa_key.c" + ], + "crypto/slh_dsa/libfips-lib-slh_fors.o" => [ + "crypto/slh_dsa/slh_fors.c" + ], + "crypto/slh_dsa/libfips-lib-slh_hash.o" => [ + "crypto/slh_dsa/slh_hash.c" + ], + "crypto/slh_dsa/libfips-lib-slh_hypertree.o" => [ + "crypto/slh_dsa/slh_hypertree.c" + ], + "crypto/slh_dsa/libfips-lib-slh_params.o" => [ + "crypto/slh_dsa/slh_params.c" + ], + "crypto/slh_dsa/libfips-lib-slh_wots.o" => [ + "crypto/slh_dsa/slh_wots.c" + ], + "crypto/slh_dsa/libfips-lib-slh_xmss.o" => [ + "crypto/slh_dsa/slh_xmss.c" + ], "crypto/sm2/libcrypto-lib-sm2_crypt.o" => [ "crypto/sm2/sm2_crypt.c" ], @@ -23265,6 +26921,42 @@ our %unified_info = ( "crypto/store/libcrypto-lib-store_strings.o" => [ "crypto/store/store_strings.c" ], + "crypto/thread/arch/libcrypto-lib-thread_none.o" => [ + "crypto/thread/arch/thread_none.c" + ], + "crypto/thread/arch/libcrypto-lib-thread_posix.o" => [ + "crypto/thread/arch/thread_posix.c" + ], + "crypto/thread/arch/libcrypto-lib-thread_win.o" => [ + "crypto/thread/arch/thread_win.c" + ], + "crypto/thread/arch/libfips-lib-thread_none.o" => [ + "crypto/thread/arch/thread_none.c" + ], + "crypto/thread/arch/libfips-lib-thread_posix.o" => [ + "crypto/thread/arch/thread_posix.c" + ], + "crypto/thread/arch/libfips-lib-thread_win.o" => [ + "crypto/thread/arch/thread_win.c" + ], + "crypto/thread/libcrypto-lib-api.o" => [ + "crypto/thread/api.c" + ], + "crypto/thread/libcrypto-lib-arch.o" => [ + "crypto/thread/arch.c" + ], + "crypto/thread/libcrypto-lib-internal.o" => [ + "crypto/thread/internal.c" + ], + "crypto/thread/libfips-lib-api.o" => [ + "crypto/thread/api.c" + ], + "crypto/thread/libfips-lib-arch.o" => [ + "crypto/thread/arch.c" + ], + "crypto/thread/libfips-lib-internal.o" => [ + "crypto/thread/internal.c" + ], "crypto/ts/libcrypto-lib-ts_asn1.o" => [ "crypto/ts/ts_asn1.c" ], @@ -23352,6 +27044,9 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-pcy_tree.o" => [ "crypto/x509/pcy_tree.c" ], + "crypto/x509/libcrypto-lib-t_acert.o" => [ + "crypto/x509/t_acert.c" + ], "crypto/x509/libcrypto-lib-t_crl.o" => [ "crypto/x509/t_crl.c" ], @@ -23361,6 +27056,12 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-t_x509.o" => [ "crypto/x509/t_x509.c" ], + "crypto/x509/libcrypto-lib-v3_aaa.o" => [ + "crypto/x509/v3_aaa.c" + ], + "crypto/x509/libcrypto-lib-v3_ac_tgt.o" => [ + "crypto/x509/v3_ac_tgt.c" + ], "crypto/x509/libcrypto-lib-v3_addr.o" => [ "crypto/x509/v3_addr.c" ], @@ -23376,6 +27077,21 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_asid.o" => [ "crypto/x509/v3_asid.c" ], + "crypto/x509/libcrypto-lib-v3_attrdesc.o" => [ + "crypto/x509/v3_attrdesc.c" + ], + "crypto/x509/libcrypto-lib-v3_attrmap.o" => [ + "crypto/x509/v3_attrmap.c" + ], + "crypto/x509/libcrypto-lib-v3_audit_id.o" => [ + "crypto/x509/v3_audit_id.c" + ], + "crypto/x509/libcrypto-lib-v3_authattid.o" => [ + "crypto/x509/v3_authattid.c" + ], + "crypto/x509/libcrypto-lib-v3_battcons.o" => [ + "crypto/x509/v3_battcons.c" + ], "crypto/x509/libcrypto-lib-v3_bcons.o" => [ "crypto/x509/v3_bcons.c" ], @@ -23400,15 +27116,24 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_genn.o" => [ "crypto/x509/v3_genn.c" ], + "crypto/x509/libcrypto-lib-v3_group_ac.o" => [ + "crypto/x509/v3_group_ac.c" + ], "crypto/x509/libcrypto-lib-v3_ia5.o" => [ "crypto/x509/v3_ia5.c" ], + "crypto/x509/libcrypto-lib-v3_ind_iss.o" => [ + "crypto/x509/v3_ind_iss.c" + ], "crypto/x509/libcrypto-lib-v3_info.o" => [ "crypto/x509/v3_info.c" ], "crypto/x509/libcrypto-lib-v3_int.o" => [ "crypto/x509/v3_int.c" ], + "crypto/x509/libcrypto-lib-v3_iobo.o" => [ + "crypto/x509/v3_iobo.c" + ], "crypto/x509/libcrypto-lib-v3_ist.o" => [ "crypto/x509/v3_ist.c" ], @@ -23418,6 +27143,12 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_ncons.o" => [ "crypto/x509/v3_ncons.c" ], + "crypto/x509/libcrypto-lib-v3_no_ass.o" => [ + "crypto/x509/v3_no_ass.c" + ], + "crypto/x509/libcrypto-lib-v3_no_rev_avail.o" => [ + "crypto/x509/v3_no_rev_avail.c" + ], "crypto/x509/libcrypto-lib-v3_pci.o" => [ "crypto/x509/v3_pci.c" ], @@ -23439,18 +27170,36 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_purp.o" => [ "crypto/x509/v3_purp.c" ], + "crypto/x509/libcrypto-lib-v3_rolespec.o" => [ + "crypto/x509/v3_rolespec.c" + ], "crypto/x509/libcrypto-lib-v3_san.o" => [ "crypto/x509/v3_san.c" ], + "crypto/x509/libcrypto-lib-v3_sda.o" => [ + "crypto/x509/v3_sda.c" + ], + "crypto/x509/libcrypto-lib-v3_single_use.o" => [ + "crypto/x509/v3_single_use.c" + ], "crypto/x509/libcrypto-lib-v3_skid.o" => [ "crypto/x509/v3_skid.c" ], + "crypto/x509/libcrypto-lib-v3_soa_id.o" => [ + "crypto/x509/v3_soa_id.c" + ], "crypto/x509/libcrypto-lib-v3_sxnet.o" => [ "crypto/x509/v3_sxnet.c" ], + "crypto/x509/libcrypto-lib-v3_timespec.o" => [ + "crypto/x509/v3_timespec.c" + ], "crypto/x509/libcrypto-lib-v3_tlsf.o" => [ "crypto/x509/v3_tlsf.c" ], + "crypto/x509/libcrypto-lib-v3_usernotice.o" => [ + "crypto/x509/v3_usernotice.c" + ], "crypto/x509/libcrypto-lib-v3_utf8.o" => [ "crypto/x509/v3_utf8.c" ], @@ -23460,6 +27209,9 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3err.o" => [ "crypto/x509/v3err.c" ], + "crypto/x509/libcrypto-lib-x509_acert.o" => [ + "crypto/x509/x509_acert.c" + ], "crypto/x509/libcrypto-lib-x509_att.o" => [ "crypto/x509/x509_att.c" ], @@ -23511,6 +27263,9 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x509_vpm.o" => [ "crypto/x509/x509_vpm.c" ], + "crypto/x509/libcrypto-lib-x509aset.o" => [ + "crypto/x509/x509aset.c" + ], "crypto/x509/libcrypto-lib-x509cset.o" => [ "crypto/x509/x509cset.c" ], @@ -23538,6 +27293,9 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x_exten.o" => [ "crypto/x509/x_exten.c" ], + "crypto/x509/libcrypto-lib-x_ietfatt.o" => [ + "crypto/x509/x_ietfatt.c" + ], "crypto/x509/libcrypto-lib-x_name.o" => [ "crypto/x509/x_name.c" ], @@ -23562,6 +27320,16 @@ our %unified_info = ( "engines/libcrypto-lib-e_padlock.o" => [ "engines/e_padlock.c" ], + "fuzz/acert-test" => [ + "fuzz/acert-test-bin-acert.o", + "fuzz/acert-test-bin-test-corpus.o" + ], + "fuzz/acert-test-bin-acert.o" => [ + "fuzz/acert.c" + ], + "fuzz/acert-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], "fuzz/asn1-test" => [ "fuzz/asn1-test-bin-asn1.o", "fuzz/asn1-test-bin-fuzz_rand.o", @@ -23674,6 +27442,190 @@ our %unified_info = ( "fuzz/ct-test-bin-test-corpus.o" => [ "fuzz/test-corpus.c" ], + "fuzz/decoder-test" => [ + "fuzz/decoder-test-bin-decoder.o", + "fuzz/decoder-test-bin-fuzz_rand.o", + "fuzz/decoder-test-bin-test-corpus.o" + ], + "fuzz/decoder-test-bin-decoder.o" => [ + "fuzz/decoder.c" + ], + "fuzz/decoder-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/decoder-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/dtlsclient-test" => [ + "fuzz/dtlsclient-test-bin-dtlsclient.o", + "fuzz/dtlsclient-test-bin-fuzz_rand.o", + "fuzz/dtlsclient-test-bin-test-corpus.o" + ], + "fuzz/dtlsclient-test-bin-dtlsclient.o" => [ + "fuzz/dtlsclient.c" + ], + "fuzz/dtlsclient-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/dtlsclient-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/dtlsserver-test" => [ + "fuzz/dtlsserver-test-bin-dtlsserver.o", + "fuzz/dtlsserver-test-bin-fuzz_rand.o", + "fuzz/dtlsserver-test-bin-test-corpus.o" + ], + "fuzz/dtlsserver-test-bin-dtlsserver.o" => [ + "fuzz/dtlsserver.c" + ], + "fuzz/dtlsserver-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/dtlsserver-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/hashtable-test" => [ + "fuzz/hashtable-test-bin-fuzz_rand.o", + "fuzz/hashtable-test-bin-hashtable.o", + "fuzz/hashtable-test-bin-test-corpus.o" + ], + "fuzz/hashtable-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/hashtable-test-bin-hashtable.o" => [ + "fuzz/hashtable.c" + ], + "fuzz/hashtable-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/ml-dsa-test" => [ + "fuzz/ml-dsa-test-bin-fuzz_rand.o", + "fuzz/ml-dsa-test-bin-ml-dsa.o", + "fuzz/ml-dsa-test-bin-test-corpus.o" + ], + "fuzz/ml-dsa-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/ml-dsa-test-bin-ml-dsa.o" => [ + "fuzz/ml-dsa.c" + ], + "fuzz/ml-dsa-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/ml-kem-test" => [ + "fuzz/ml-kem-test-bin-fuzz_rand.o", + "fuzz/ml-kem-test-bin-ml-kem.o", + "fuzz/ml-kem-test-bin-test-corpus.o" + ], + "fuzz/ml-kem-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/ml-kem-test-bin-ml-kem.o" => [ + "fuzz/ml-kem.c" + ], + "fuzz/ml-kem-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/pem-test" => [ + "fuzz/pem-test-bin-pem.o", + "fuzz/pem-test-bin-test-corpus.o" + ], + "fuzz/pem-test-bin-pem.o" => [ + "fuzz/pem.c" + ], + "fuzz/pem-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/provider-test" => [ + "fuzz/provider-test-bin-provider.o", + "fuzz/provider-test-bin-test-corpus.o" + ], + "fuzz/provider-test-bin-provider.o" => [ + "fuzz/provider.c" + ], + "fuzz/provider-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/punycode-test" => [ + "fuzz/punycode-test-bin-punycode.o", + "fuzz/punycode-test-bin-test-corpus.o" + ], + "fuzz/punycode-test-bin-punycode.o" => [ + "fuzz/punycode.c" + ], + "fuzz/punycode-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-client-test" => [ + "fuzz/quic-client-test-bin-fuzz_rand.o", + "fuzz/quic-client-test-bin-quic-client.o", + "fuzz/quic-client-test-bin-test-corpus.o" + ], + "fuzz/quic-client-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-client-test-bin-quic-client.o" => [ + "fuzz/quic-client.c" + ], + "fuzz/quic-client-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-lcidm-test" => [ + "fuzz/quic-lcidm-test-bin-fuzz_rand.o", + "fuzz/quic-lcidm-test-bin-quic-lcidm.o", + "fuzz/quic-lcidm-test-bin-test-corpus.o" + ], + "fuzz/quic-lcidm-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-lcidm-test-bin-quic-lcidm.o" => [ + "fuzz/quic-lcidm.c" + ], + "fuzz/quic-lcidm-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-rcidm-test" => [ + "fuzz/quic-rcidm-test-bin-fuzz_rand.o", + "fuzz/quic-rcidm-test-bin-quic-rcidm.o", + "fuzz/quic-rcidm-test-bin-test-corpus.o" + ], + "fuzz/quic-rcidm-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-rcidm-test-bin-quic-rcidm.o" => [ + "fuzz/quic-rcidm.c" + ], + "fuzz/quic-rcidm-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-server-test" => [ + "fuzz/quic-server-test-bin-fuzz_rand.o", + "fuzz/quic-server-test-bin-quic-server.o", + "fuzz/quic-server-test-bin-test-corpus.o" + ], + "fuzz/quic-server-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-server-test-bin-quic-server.o" => [ + "fuzz/quic-server.c" + ], + "fuzz/quic-server-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/quic-srtm-test" => [ + "fuzz/quic-srtm-test-bin-fuzz_rand.o", + "fuzz/quic-srtm-test-bin-quic-srtm.o", + "fuzz/quic-srtm-test-bin-test-corpus.o" + ], + "fuzz/quic-srtm-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/quic-srtm-test-bin-quic-srtm.o" => [ + "fuzz/quic-srtm.c" + ], + "fuzz/quic-srtm-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], "fuzz/server-test" => [ "fuzz/server-test-bin-fuzz_rand.o", "fuzz/server-test-bin-server.o", @@ -23688,6 +27640,40 @@ our %unified_info = ( "fuzz/server-test-bin-test-corpus.o" => [ "fuzz/test-corpus.c" ], + "fuzz/slh-dsa-test" => [ + "fuzz/slh-dsa-test-bin-fuzz_rand.o", + "fuzz/slh-dsa-test-bin-slh-dsa.o", + "fuzz/slh-dsa-test-bin-test-corpus.o" + ], + "fuzz/slh-dsa-test-bin-fuzz_rand.o" => [ + "fuzz/fuzz_rand.c" + ], + "fuzz/slh-dsa-test-bin-slh-dsa.o" => [ + "fuzz/slh-dsa.c" + ], + "fuzz/slh-dsa-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/smime-test" => [ + "fuzz/smime-test-bin-smime.o", + "fuzz/smime-test-bin-test-corpus.o" + ], + "fuzz/smime-test-bin-smime.o" => [ + "fuzz/smime.c" + ], + "fuzz/smime-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/v3name-test" => [ + "fuzz/v3name-test-bin-test-corpus.o", + "fuzz/v3name-test-bin-v3name.o" + ], + "fuzz/v3name-test-bin-test-corpus.o" => [ + "fuzz/test-corpus.c" + ], + "fuzz/v3name-test-bin-v3name.o" => [ + "fuzz/v3name.c" + ], "fuzz/x509-test" => [ "fuzz/x509-test-bin-fuzz_rand.o", "fuzz/x509-test-bin-test-corpus.o", @@ -23808,6 +27794,7 @@ our %unified_info = ( "crypto/bio/libcrypto-lib-bss_conn.o", "crypto/bio/libcrypto-lib-bss_core.o", "crypto/bio/libcrypto-lib-bss_dgram.o", + "crypto/bio/libcrypto-lib-bss_dgram_pair.o", "crypto/bio/libcrypto-lib-bss_fd.o", "crypto/bio/libcrypto-lib-bss_file.o", "crypto/bio/libcrypto-lib-bss_log.o", @@ -23869,6 +27856,7 @@ our %unified_info = ( "crypto/cmp/libcrypto-lib-cmp_client.o", "crypto/cmp/libcrypto-lib-cmp_ctx.o", "crypto/cmp/libcrypto-lib-cmp_err.o", + "crypto/cmp/libcrypto-lib-cmp_genm.o", "crypto/cmp/libcrypto-lib-cmp_hdr.o", "crypto/cmp/libcrypto-lib-cmp_http.o", "crypto/cmp/libcrypto-lib-cmp_msg.o", @@ -24046,7 +28034,9 @@ our %unified_info = ( "crypto/err/libcrypto-lib-err_all.o", "crypto/err/libcrypto-lib-err_all_legacy.o", "crypto/err/libcrypto-lib-err_blocks.o", + "crypto/err/libcrypto-lib-err_mark.o", "crypto/err/libcrypto-lib-err_prn.o", + "crypto/err/libcrypto-lib-err_save.o", "crypto/ess/libcrypto-lib-ess_asn1.o", "crypto/ess/libcrypto-lib-ess_err.o", "crypto/ess/libcrypto-lib-ess_lib.o", @@ -24129,7 +28119,9 @@ our %unified_info = ( "crypto/evp/libcrypto-lib-pmeth_check.o", "crypto/evp/libcrypto-lib-pmeth_gn.o", "crypto/evp/libcrypto-lib-pmeth_lib.o", + "crypto/evp/libcrypto-lib-s_lib.o", "crypto/evp/libcrypto-lib-signature.o", + "crypto/evp/libcrypto-lib-skeymgmt_meth.o", "crypto/ffc/libcrypto-lib-ffc_backend.o", "crypto/ffc/libcrypto-lib-ffc_dh.o", "crypto/ffc/libcrypto-lib-ffc_key_generate.o", @@ -24137,7 +28129,11 @@ our %unified_info = ( "crypto/ffc/libcrypto-lib-ffc_params.o", "crypto/ffc/libcrypto-lib-ffc_params_generate.o", "crypto/ffc/libcrypto-lib-ffc_params_validate.o", + "crypto/hashtable/libcrypto-lib-hashfunc.o", + "crypto/hashtable/libcrypto-lib-hashtable.o", "crypto/hmac/libcrypto-lib-hmac.o", + "crypto/hpke/libcrypto-lib-hpke.o", + "crypto/hpke/libcrypto-lib-hpke_util.o", "crypto/http/libcrypto-lib-http_client.o", "crypto/http/libcrypto-lib-http_err.o", "crypto/http/libcrypto-lib-http_lib.o", @@ -24151,6 +28147,7 @@ our %unified_info = ( "crypto/lhash/libcrypto-lib-lhash.o", "crypto/libcrypto-lib-asn1_dsa.o", "crypto/libcrypto-lib-bsearch.o", + "crypto/libcrypto-lib-comp_methods.o", "crypto/libcrypto-lib-context.o", "crypto/libcrypto-lib-core_algorithm.o", "crypto/libcrypto-lib-core_fetch.o", @@ -24160,10 +28157,13 @@ our %unified_info = ( "crypto/libcrypto-lib-cryptlib.o", "crypto/libcrypto-lib-ctype.o", "crypto/libcrypto-lib-cversion.o", + "crypto/libcrypto-lib-defaults.o", "crypto/libcrypto-lib-der_writer.o", + "crypto/libcrypto-lib-deterministic_nonce.o", "crypto/libcrypto-lib-ebcdic.o", "crypto/libcrypto-lib-ex_data.o", "crypto/libcrypto-lib-getenv.o", + "crypto/libcrypto-lib-indicator_core.o", "crypto/libcrypto-lib-info.o", "crypto/libcrypto-lib-init.o", "crypto/libcrypto-lib-initthread.o", @@ -24180,6 +28180,7 @@ our %unified_info = ( "crypto/libcrypto-lib-params.o", "crypto/libcrypto-lib-params_dup.o", "crypto/libcrypto-lib-params_from_text.o", + "crypto/libcrypto-lib-params_idx.o", "crypto/libcrypto-lib-passphrase.o", "crypto/libcrypto-lib-provider.o", "crypto/libcrypto-lib-provider_child.o", @@ -24187,12 +28188,16 @@ our %unified_info = ( "crypto/libcrypto-lib-provider_core.o", "crypto/libcrypto-lib-provider_predefined.o", "crypto/libcrypto-lib-punycode.o", + "crypto/libcrypto-lib-quic_vlint.o", "crypto/libcrypto-lib-self_test_core.o", + "crypto/libcrypto-lib-sleep.o", "crypto/libcrypto-lib-sparse_array.o", + "crypto/libcrypto-lib-ssl_err.o", "crypto/libcrypto-lib-threads_lib.o", "crypto/libcrypto-lib-threads_none.o", "crypto/libcrypto-lib-threads_pthread.o", "crypto/libcrypto-lib-threads_win.o", + "crypto/libcrypto-lib-time.o", "crypto/libcrypto-lib-trace.o", "crypto/libcrypto-lib-uid.o", "crypto/libcrypto-lib-x86cpuid.o", @@ -24204,6 +28209,15 @@ our %unified_info = ( "crypto/md5/libcrypto-lib-md5_sha1.o", "crypto/mdc2/libcrypto-lib-mdc2_one.o", "crypto/mdc2/libcrypto-lib-mdc2dgst.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_encoders.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_key_compress.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_matrix.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_ntt.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_params.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sample.o", + "crypto/ml_dsa/libcrypto-lib-ml_dsa_sign.o", + "crypto/ml_kem/libcrypto-lib-ml_kem.o", "crypto/modes/libcrypto-lib-cbc128.o", "crypto/modes/libcrypto-lib-ccm128.o", "crypto/modes/libcrypto-lib-cfb128.o", @@ -24216,6 +28230,7 @@ our %unified_info = ( "crypto/modes/libcrypto-lib-siv128.o", "crypto/modes/libcrypto-lib-wrap128.o", "crypto/modes/libcrypto-lib-xts128.o", + "crypto/modes/libcrypto-lib-xts128gb.o", "crypto/objects/libcrypto-lib-o_names.o", "crypto/objects/libcrypto-lib-obj_dat.o", "crypto/objects/libcrypto-lib-obj_err.o", @@ -24280,6 +28295,7 @@ our %unified_info = ( "crypto/rand/libcrypto-lib-rand_lib.o", "crypto/rand/libcrypto-lib-rand_meth.o", "crypto/rand/libcrypto-lib-rand_pool.o", + "crypto/rand/libcrypto-lib-rand_uniform.o", "crypto/rand/libcrypto-lib-randfile.o", "crypto/rc2/libcrypto-lib-rc2_cbc.o", "crypto/rc2/libcrypto-lib-rc2_ecb.o", @@ -24331,6 +28347,16 @@ our %unified_info = ( "crypto/sha/libcrypto-lib-sha512-586.o", "crypto/sha/libcrypto-lib-sha512.o", "crypto/siphash/libcrypto-lib-siphash.o", + "crypto/slh_dsa/libcrypto-lib-slh_adrs.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa_hash_ctx.o", + "crypto/slh_dsa/libcrypto-lib-slh_dsa_key.o", + "crypto/slh_dsa/libcrypto-lib-slh_fors.o", + "crypto/slh_dsa/libcrypto-lib-slh_hash.o", + "crypto/slh_dsa/libcrypto-lib-slh_hypertree.o", + "crypto/slh_dsa/libcrypto-lib-slh_params.o", + "crypto/slh_dsa/libcrypto-lib-slh_wots.o", + "crypto/slh_dsa/libcrypto-lib-slh_xmss.o", "crypto/sm2/libcrypto-lib-sm2_crypt.o", "crypto/sm2/libcrypto-lib-sm2_err.o", "crypto/sm2/libcrypto-lib-sm2_key.o", @@ -24348,6 +28374,12 @@ our %unified_info = ( "crypto/store/libcrypto-lib-store_register.o", "crypto/store/libcrypto-lib-store_result.o", "crypto/store/libcrypto-lib-store_strings.o", + "crypto/thread/arch/libcrypto-lib-thread_none.o", + "crypto/thread/arch/libcrypto-lib-thread_posix.o", + "crypto/thread/arch/libcrypto-lib-thread_win.o", + "crypto/thread/libcrypto-lib-api.o", + "crypto/thread/libcrypto-lib-arch.o", + "crypto/thread/libcrypto-lib-internal.o", "crypto/ts/libcrypto-lib-ts_asn1.o", "crypto/ts/libcrypto-lib-ts_conf.o", "crypto/ts/libcrypto-lib-ts_err.o", @@ -24377,14 +28409,22 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-pcy_map.o", "crypto/x509/libcrypto-lib-pcy_node.o", "crypto/x509/libcrypto-lib-pcy_tree.o", + "crypto/x509/libcrypto-lib-t_acert.o", "crypto/x509/libcrypto-lib-t_crl.o", "crypto/x509/libcrypto-lib-t_req.o", "crypto/x509/libcrypto-lib-t_x509.o", + "crypto/x509/libcrypto-lib-v3_aaa.o", + "crypto/x509/libcrypto-lib-v3_ac_tgt.o", "crypto/x509/libcrypto-lib-v3_addr.o", "crypto/x509/libcrypto-lib-v3_admis.o", "crypto/x509/libcrypto-lib-v3_akeya.o", "crypto/x509/libcrypto-lib-v3_akid.o", "crypto/x509/libcrypto-lib-v3_asid.o", + "crypto/x509/libcrypto-lib-v3_attrdesc.o", + "crypto/x509/libcrypto-lib-v3_attrmap.o", + "crypto/x509/libcrypto-lib-v3_audit_id.o", + "crypto/x509/libcrypto-lib-v3_authattid.o", + "crypto/x509/libcrypto-lib-v3_battcons.o", "crypto/x509/libcrypto-lib-v3_bcons.o", "crypto/x509/libcrypto-lib-v3_bitst.o", "crypto/x509/libcrypto-lib-v3_conf.o", @@ -24393,12 +28433,17 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_enum.o", "crypto/x509/libcrypto-lib-v3_extku.o", "crypto/x509/libcrypto-lib-v3_genn.o", + "crypto/x509/libcrypto-lib-v3_group_ac.o", "crypto/x509/libcrypto-lib-v3_ia5.o", + "crypto/x509/libcrypto-lib-v3_ind_iss.o", "crypto/x509/libcrypto-lib-v3_info.o", "crypto/x509/libcrypto-lib-v3_int.o", + "crypto/x509/libcrypto-lib-v3_iobo.o", "crypto/x509/libcrypto-lib-v3_ist.o", "crypto/x509/libcrypto-lib-v3_lib.o", "crypto/x509/libcrypto-lib-v3_ncons.o", + "crypto/x509/libcrypto-lib-v3_no_ass.o", + "crypto/x509/libcrypto-lib-v3_no_rev_avail.o", "crypto/x509/libcrypto-lib-v3_pci.o", "crypto/x509/libcrypto-lib-v3_pcia.o", "crypto/x509/libcrypto-lib-v3_pcons.o", @@ -24406,13 +28451,20 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-v3_pmaps.o", "crypto/x509/libcrypto-lib-v3_prn.o", "crypto/x509/libcrypto-lib-v3_purp.o", + "crypto/x509/libcrypto-lib-v3_rolespec.o", "crypto/x509/libcrypto-lib-v3_san.o", + "crypto/x509/libcrypto-lib-v3_sda.o", + "crypto/x509/libcrypto-lib-v3_single_use.o", "crypto/x509/libcrypto-lib-v3_skid.o", + "crypto/x509/libcrypto-lib-v3_soa_id.o", "crypto/x509/libcrypto-lib-v3_sxnet.o", + "crypto/x509/libcrypto-lib-v3_timespec.o", "crypto/x509/libcrypto-lib-v3_tlsf.o", + "crypto/x509/libcrypto-lib-v3_usernotice.o", "crypto/x509/libcrypto-lib-v3_utf8.o", "crypto/x509/libcrypto-lib-v3_utl.o", "crypto/x509/libcrypto-lib-v3err.o", + "crypto/x509/libcrypto-lib-x509_acert.o", "crypto/x509/libcrypto-lib-x509_att.o", "crypto/x509/libcrypto-lib-x509_cmp.o", "crypto/x509/libcrypto-lib-x509_d2.o", @@ -24430,6 +28482,7 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x509_v3.o", "crypto/x509/libcrypto-lib-x509_vfy.o", "crypto/x509/libcrypto-lib-x509_vpm.o", + "crypto/x509/libcrypto-lib-x509aset.o", "crypto/x509/libcrypto-lib-x509cset.o", "crypto/x509/libcrypto-lib-x509name.o", "crypto/x509/libcrypto-lib-x509rset.o", @@ -24439,6 +28492,7 @@ our %unified_info = ( "crypto/x509/libcrypto-lib-x_attrib.o", "crypto/x509/libcrypto-lib-x_crl.o", "crypto/x509/libcrypto-lib-x_exten.o", + "crypto/x509/libcrypto-lib-x_ietfatt.o", "crypto/x509/libcrypto-lib-x_name.o", "crypto/x509/libcrypto-lib-x_pubkey.o", "crypto/x509/libcrypto-lib-x_req.o", @@ -24460,14 +28514,15 @@ our %unified_info = ( "ssl/libssl-lib-d1_srtp.o", "ssl/libssl-lib-methods.o", "ssl/libssl-lib-pqueue.o", + "ssl/libssl-lib-priority_queue.o", "ssl/libssl-lib-s3_enc.o", "ssl/libssl-lib-s3_lib.o", "ssl/libssl-lib-s3_msg.o", "ssl/libssl-lib-ssl_asn1.o", "ssl/libssl-lib-ssl_cert.o", + "ssl/libssl-lib-ssl_cert_comp.o", "ssl/libssl-lib-ssl_ciph.o", "ssl/libssl-lib-ssl_conf.o", - "ssl/libssl-lib-ssl_err.o", "ssl/libssl-lib-ssl_err_legacy.o", "ssl/libssl-lib-ssl_init.o", "ssl/libssl-lib-ssl_lib.o", @@ -24484,12 +28539,60 @@ our %unified_info = ( "ssl/libssl-lib-tls13_enc.o", "ssl/libssl-lib-tls_depr.o", "ssl/libssl-lib-tls_srp.o", - "ssl/record/libssl-lib-dtls1_bitmap.o", + "ssl/quic/libssl-lib-cc_newreno.o", + "ssl/quic/libssl-lib-json_enc.o", + "ssl/quic/libssl-lib-qlog.o", + "ssl/quic/libssl-lib-qlog_event_helpers.o", + "ssl/quic/libssl-lib-quic_ackm.o", + "ssl/quic/libssl-lib-quic_cfq.o", + "ssl/quic/libssl-lib-quic_channel.o", + "ssl/quic/libssl-lib-quic_demux.o", + "ssl/quic/libssl-lib-quic_engine.o", + "ssl/quic/libssl-lib-quic_fc.o", + "ssl/quic/libssl-lib-quic_fifd.o", + "ssl/quic/libssl-lib-quic_impl.o", + "ssl/quic/libssl-lib-quic_lcidm.o", + "ssl/quic/libssl-lib-quic_method.o", + "ssl/quic/libssl-lib-quic_obj.o", + "ssl/quic/libssl-lib-quic_port.o", + "ssl/quic/libssl-lib-quic_rcidm.o", + "ssl/quic/libssl-lib-quic_reactor.o", + "ssl/quic/libssl-lib-quic_reactor_wait_ctx.o", + "ssl/quic/libssl-lib-quic_record_rx.o", + "ssl/quic/libssl-lib-quic_record_shared.o", + "ssl/quic/libssl-lib-quic_record_tx.o", + "ssl/quic/libssl-lib-quic_record_util.o", + "ssl/quic/libssl-lib-quic_rstream.o", + "ssl/quic/libssl-lib-quic_rx_depack.o", + "ssl/quic/libssl-lib-quic_sf_list.o", + "ssl/quic/libssl-lib-quic_srt_gen.o", + "ssl/quic/libssl-lib-quic_srtm.o", + "ssl/quic/libssl-lib-quic_sstream.o", + "ssl/quic/libssl-lib-quic_statm.o", + "ssl/quic/libssl-lib-quic_stream_map.o", + "ssl/quic/libssl-lib-quic_thread_assist.o", + "ssl/quic/libssl-lib-quic_tls.o", + "ssl/quic/libssl-lib-quic_tls_api.o", + "ssl/quic/libssl-lib-quic_trace.o", + "ssl/quic/libssl-lib-quic_tserver.o", + "ssl/quic/libssl-lib-quic_txp.o", + "ssl/quic/libssl-lib-quic_txpim.o", + "ssl/quic/libssl-lib-quic_types.o", + "ssl/quic/libssl-lib-quic_wire.o", + "ssl/quic/libssl-lib-quic_wire_pkt.o", + "ssl/quic/libssl-lib-uint_set.o", "ssl/record/libssl-lib-rec_layer_d1.o", "ssl/record/libssl-lib-rec_layer_s3.o", - "ssl/record/libssl-lib-ssl3_buffer.o", - "ssl/record/libssl-lib-ssl3_record.o", - "ssl/record/libssl-lib-ssl3_record_tls13.o", + "ssl/record/methods/libssl-lib-dtls_meth.o", + "ssl/record/methods/libssl-lib-ssl3_meth.o", + "ssl/record/methods/libssl-lib-tls13_meth.o", + "ssl/record/methods/libssl-lib-tls1_meth.o", + "ssl/record/methods/libssl-lib-tls_common.o", + "ssl/record/methods/libssl-lib-tls_multib.o", + "ssl/record/methods/libssl-lib-tlsany_meth.o", + "ssl/rio/libssl-lib-poll_builder.o", + "ssl/rio/libssl-lib-poll_immediate.o", + "ssl/rio/libssl-lib-rio_notifier.o", "ssl/statem/libssl-lib-extensions.o", "ssl/statem/libssl-lib-extensions_clnt.o", "ssl/statem/libssl-lib-extensions_cust.o", @@ -24527,12 +28630,24 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ecx_key.o" => [ "providers/common/der/der_ecx_key.c" ], + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o" => [ + "providers/common/der/der_ml_dsa_gen.c" + ], + "providers/common/der/libcommon-lib-der_ml_dsa_key.o" => [ + "providers/common/der/der_ml_dsa_key.c" + ], "providers/common/der/libcommon-lib-der_rsa_gen.o" => [ "providers/common/der/der_rsa_gen.c" ], "providers/common/der/libcommon-lib-der_rsa_key.o" => [ "providers/common/der/der_rsa_key.c" ], + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o" => [ + "providers/common/der/der_slh_dsa_gen.c" + ], + "providers/common/der/libcommon-lib-der_slh_dsa_key.o" => [ + "providers/common/der/der_slh_dsa_key.c" + ], "providers/common/der/libcommon-lib-der_wrap_gen.o" => [ "providers/common/der/der_wrap_gen.c" ], @@ -24599,6 +28714,9 @@ our %unified_info = ( "providers/common/libfips-lib-securitycheck_fips.o" => [ "providers/common/securitycheck_fips.c" ], + "providers/endecode_test-bin-legacyprov.o" => [ + "providers/legacyprov.c" + ], "providers/evp_extra_test-bin-legacyprov.o" => [ "providers/legacyprov.c" ], @@ -24609,6 +28727,9 @@ our %unified_info = ( "providers/fips/fips-dso-fips_entry.o" => [ "providers/fips/fips_entry.c" ], + "providers/fips/libfips-lib-fipsindicator.o" => [ + "providers/fips/fipsindicator.c" + ], "providers/fips/libfips-lib-fipsprov.o" => [ "providers/fips/fipsprov.c" ], @@ -24672,6 +28793,15 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_hw.o" => [ "providers/implementations/ciphers/cipher_aes_gcm_hw.c" ], + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv.o" => [ + "providers/implementations/ciphers/cipher_aes_gcm_siv.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_hw.o" => [ + "providers/implementations/ciphers/cipher_aes_gcm_siv_hw.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_polyval.o" => [ + "providers/implementations/ciphers/cipher_aes_gcm_siv_polyval.c" + ], "providers/implementations/ciphers/libdefault-lib-cipher_aes_hw.o" => [ "providers/implementations/ciphers/cipher_aes_hw.c" ], @@ -24744,9 +28874,27 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_sm4.o" => [ "providers/implementations/ciphers/cipher_sm4.c" ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm.o" => [ + "providers/implementations/ciphers/cipher_sm4_ccm.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm_hw.o" => [ + "providers/implementations/ciphers/cipher_sm4_ccm_hw.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm.o" => [ + "providers/implementations/ciphers/cipher_sm4_gcm.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm_hw.o" => [ + "providers/implementations/ciphers/cipher_sm4_gcm_hw.c" + ], "providers/implementations/ciphers/libdefault-lib-cipher_sm4_hw.o" => [ "providers/implementations/ciphers/cipher_sm4_hw.c" ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts.o" => [ + "providers/implementations/ciphers/cipher_sm4_xts.c" + ], + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts_hw.o" => [ + "providers/implementations/ciphers/cipher_sm4_xts_hw.c" + ], "providers/implementations/ciphers/libdefault-lib-cipher_tdes.o" => [ "providers/implementations/ciphers/cipher_tdes.c" ], @@ -24966,6 +29114,15 @@ our %unified_info = ( "providers/implementations/encode_decode/libdefault-lib-endecoder_common.o" => [ "providers/implementations/encode_decode/endecoder_common.c" ], + "providers/implementations/encode_decode/libdefault-lib-ml_common_codecs.o" => [ + "providers/implementations/encode_decode/ml_common_codecs.c" + ], + "providers/implementations/encode_decode/libdefault-lib-ml_dsa_codecs.o" => [ + "providers/implementations/encode_decode/ml_dsa_codecs.c" + ], + "providers/implementations/encode_decode/libdefault-lib-ml_kem_codecs.o" => [ + "providers/implementations/encode_decode/ml_kem_codecs.c" + ], "providers/implementations/exchange/libdefault-lib-dh_exch.o" => [ "providers/implementations/exchange/dh_exch.c" ], @@ -24990,9 +29147,15 @@ our %unified_info = ( "providers/implementations/exchange/libfips-lib-kdf_exch.o" => [ "providers/implementations/exchange/kdf_exch.c" ], + "providers/implementations/kdfs/libdefault-lib-argon2.o" => [ + "providers/implementations/kdfs/argon2.c" + ], "providers/implementations/kdfs/libdefault-lib-hkdf.o" => [ "providers/implementations/kdfs/hkdf.c" ], + "providers/implementations/kdfs/libdefault-lib-hmacdrbg_kdf.o" => [ + "providers/implementations/kdfs/hmacdrbg_kdf.c" + ], "providers/implementations/kdfs/libdefault-lib-kbkdf.o" => [ "providers/implementations/kdfs/kbkdf.c" ], @@ -25050,12 +29213,39 @@ our %unified_info = ( "providers/implementations/kdfs/liblegacy-lib-pbkdf1.o" => [ "providers/implementations/kdfs/pbkdf1.c" ], + "providers/implementations/kdfs/liblegacy-lib-pvkkdf.o" => [ + "providers/implementations/kdfs/pvkkdf.c" + ], + "providers/implementations/kem/libdefault-lib-ec_kem.o" => [ + "providers/implementations/kem/ec_kem.c" + ], + "providers/implementations/kem/libdefault-lib-ecx_kem.o" => [ + "providers/implementations/kem/ecx_kem.c" + ], + "providers/implementations/kem/libdefault-lib-kem_util.o" => [ + "providers/implementations/kem/kem_util.c" + ], + "providers/implementations/kem/libdefault-lib-ml_kem_kem.o" => [ + "providers/implementations/kem/ml_kem_kem.c" + ], + "providers/implementations/kem/libdefault-lib-mlx_kem.o" => [ + "providers/implementations/kem/mlx_kem.c" + ], "providers/implementations/kem/libdefault-lib-rsa_kem.o" => [ "providers/implementations/kem/rsa_kem.c" ], + "providers/implementations/kem/libfips-lib-ml_kem_kem.o" => [ + "providers/implementations/kem/ml_kem_kem.c" + ], + "providers/implementations/kem/libfips-lib-mlx_kem.o" => [ + "providers/implementations/kem/mlx_kem.c" + ], "providers/implementations/kem/libfips-lib-rsa_kem.o" => [ "providers/implementations/kem/rsa_kem.c" ], + "providers/implementations/kem/libtemplate-lib-template_kem.o" => [ + "providers/implementations/kem/template_kem.c" + ], "providers/implementations/keymgmt/libdefault-lib-dh_kmgmt.o" => [ "providers/implementations/keymgmt/dh_kmgmt.c" ], @@ -25074,9 +29264,21 @@ our %unified_info = ( "providers/implementations/keymgmt/libdefault-lib-mac_legacy_kmgmt.o" => [ "providers/implementations/keymgmt/mac_legacy_kmgmt.c" ], + "providers/implementations/keymgmt/libdefault-lib-ml_dsa_kmgmt.o" => [ + "providers/implementations/keymgmt/ml_dsa_kmgmt.c" + ], + "providers/implementations/keymgmt/libdefault-lib-ml_kem_kmgmt.o" => [ + "providers/implementations/keymgmt/ml_kem_kmgmt.c" + ], + "providers/implementations/keymgmt/libdefault-lib-mlx_kmgmt.o" => [ + "providers/implementations/keymgmt/mlx_kmgmt.c" + ], "providers/implementations/keymgmt/libdefault-lib-rsa_kmgmt.o" => [ "providers/implementations/keymgmt/rsa_kmgmt.c" ], + "providers/implementations/keymgmt/libdefault-lib-slh_dsa_kmgmt.o" => [ + "providers/implementations/keymgmt/slh_dsa_kmgmt.c" + ], "providers/implementations/keymgmt/libfips-lib-dh_kmgmt.o" => [ "providers/implementations/keymgmt/dh_kmgmt.c" ], @@ -25095,9 +29297,24 @@ our %unified_info = ( "providers/implementations/keymgmt/libfips-lib-mac_legacy_kmgmt.o" => [ "providers/implementations/keymgmt/mac_legacy_kmgmt.c" ], + "providers/implementations/keymgmt/libfips-lib-ml_dsa_kmgmt.o" => [ + "providers/implementations/keymgmt/ml_dsa_kmgmt.c" + ], + "providers/implementations/keymgmt/libfips-lib-ml_kem_kmgmt.o" => [ + "providers/implementations/keymgmt/ml_kem_kmgmt.c" + ], + "providers/implementations/keymgmt/libfips-lib-mlx_kmgmt.o" => [ + "providers/implementations/keymgmt/mlx_kmgmt.c" + ], "providers/implementations/keymgmt/libfips-lib-rsa_kmgmt.o" => [ "providers/implementations/keymgmt/rsa_kmgmt.c" ], + "providers/implementations/keymgmt/libfips-lib-slh_dsa_kmgmt.o" => [ + "providers/implementations/keymgmt/slh_dsa_kmgmt.c" + ], + "providers/implementations/keymgmt/libtemplate-lib-template_kmgmt.o" => [ + "providers/implementations/keymgmt/template_kmgmt.c" + ], "providers/implementations/macs/libdefault-lib-blake2b_mac.o" => [ "providers/implementations/macs/blake2b_mac.c" ], @@ -25134,9 +29351,6 @@ our %unified_info = ( "providers/implementations/macs/libfips-lib-kmac_prov.o" => [ "providers/implementations/macs/kmac_prov.c" ], - "providers/implementations/rands/libdefault-lib-crngt.o" => [ - "providers/implementations/rands/crngt.c" - ], "providers/implementations/rands/libdefault-lib-drbg.o" => [ "providers/implementations/rands/drbg.c" ], @@ -25152,12 +29366,12 @@ our %unified_info = ( "providers/implementations/rands/libdefault-lib-seed_src.o" => [ "providers/implementations/rands/seed_src.c" ], + "providers/implementations/rands/libdefault-lib-seed_src_jitter.o" => [ + "providers/implementations/rands/seed_src_jitter.c" + ], "providers/implementations/rands/libdefault-lib-test_rng.o" => [ "providers/implementations/rands/test_rng.c" ], - "providers/implementations/rands/libfips-lib-crngt.o" => [ - "providers/implementations/rands/crngt.c" - ], "providers/implementations/rands/libfips-lib-drbg.o" => [ "providers/implementations/rands/drbg.c" ], @@ -25170,6 +29384,9 @@ our %unified_info = ( "providers/implementations/rands/libfips-lib-drbg_hmac.o" => [ "providers/implementations/rands/drbg_hmac.c" ], + "providers/implementations/rands/libfips-lib-fips_crng_test.o" => [ + "providers/implementations/rands/fips_crng_test.c" + ], "providers/implementations/rands/libfips-lib-test_rng.o" => [ "providers/implementations/rands/test_rng.c" ], @@ -25197,9 +29414,15 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-mac_legacy_sig.o" => [ "providers/implementations/signature/mac_legacy_sig.c" ], + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o" => [ + "providers/implementations/signature/ml_dsa_sig.c" + ], "providers/implementations/signature/libdefault-lib-rsa_sig.o" => [ "providers/implementations/signature/rsa_sig.c" ], + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o" => [ + "providers/implementations/signature/slh_dsa_sig.c" + ], "providers/implementations/signature/libdefault-lib-sm2_sig.o" => [ "providers/implementations/signature/sm2_sig.c" ], @@ -25215,9 +29438,27 @@ our %unified_info = ( "providers/implementations/signature/libfips-lib-mac_legacy_sig.o" => [ "providers/implementations/signature/mac_legacy_sig.c" ], + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o" => [ + "providers/implementations/signature/ml_dsa_sig.c" + ], "providers/implementations/signature/libfips-lib-rsa_sig.o" => [ "providers/implementations/signature/rsa_sig.c" ], + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o" => [ + "providers/implementations/signature/slh_dsa_sig.c" + ], + "providers/implementations/skeymgmt/libdefault-lib-aes_skmgmt.o" => [ + "providers/implementations/skeymgmt/aes_skmgmt.c" + ], + "providers/implementations/skeymgmt/libdefault-lib-generic.o" => [ + "providers/implementations/skeymgmt/generic.c" + ], + "providers/implementations/skeymgmt/libfips-lib-aes_skmgmt.o" => [ + "providers/implementations/skeymgmt/aes_skmgmt.c" + ], + "providers/implementations/skeymgmt/libfips-lib-generic.o" => [ + "providers/implementations/skeymgmt/generic.c" + ], "providers/implementations/storemgmt/libdefault-lib-file_store.o" => [ "providers/implementations/storemgmt/file_store.c" ], @@ -25241,8 +29482,12 @@ our %unified_info = ( "providers/common/der/libcommon-lib-der_ec_sig.o", "providers/common/der/libcommon-lib-der_ecx_gen.o", "providers/common/der/libcommon-lib-der_ecx_key.o", + "providers/common/der/libcommon-lib-der_ml_dsa_gen.o", + "providers/common/der/libcommon-lib-der_ml_dsa_key.o", "providers/common/der/libcommon-lib-der_rsa_gen.o", "providers/common/der/libcommon-lib-der_rsa_key.o", + "providers/common/der/libcommon-lib-der_slh_dsa_gen.o", + "providers/common/der/libcommon-lib-der_slh_dsa_key.o", "providers/common/der/libcommon-lib-der_wrap_gen.o", "providers/common/libcommon-lib-provider_ctx.o", "providers/common/libcommon-lib-provider_err.o", @@ -25254,7 +29499,7 @@ our %unified_info = ( "providers/implementations/ciphers/libcommon-lib-ciphercommon_gcm_hw.o", "providers/implementations/ciphers/libcommon-lib-ciphercommon_hw.o", "providers/implementations/digests/libcommon-lib-digestcommon.o", - "ssl/record/libcommon-lib-tls_pad.o" + "ssl/record/methods/libcommon-lib-tls_pad.o" ], "providers/libcrypto-lib-baseprov.o" => [ "providers/baseprov.c" @@ -25290,6 +29535,9 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_aes_ccm_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_aes_gcm_siv_polyval.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_ocb.o", "providers/implementations/ciphers/libdefault-lib-cipher_aes_ocb_hw.o", @@ -25314,7 +29562,13 @@ our %unified_info = ( "providers/implementations/ciphers/libdefault-lib-cipher_cts.o", "providers/implementations/ciphers/libdefault-lib-cipher_null.o", "providers/implementations/ciphers/libdefault-lib-cipher_sm4.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_ccm_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_gcm_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_sm4_hw.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts.o", + "providers/implementations/ciphers/libdefault-lib-cipher_sm4_xts_hw.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes_common.o", "providers/implementations/ciphers/libdefault-lib-cipher_tdes_default.o", @@ -25343,11 +29597,16 @@ our %unified_info = ( "providers/implementations/encode_decode/libdefault-lib-encode_key2ms.o", "providers/implementations/encode_decode/libdefault-lib-encode_key2text.o", "providers/implementations/encode_decode/libdefault-lib-endecoder_common.o", + "providers/implementations/encode_decode/libdefault-lib-ml_common_codecs.o", + "providers/implementations/encode_decode/libdefault-lib-ml_dsa_codecs.o", + "providers/implementations/encode_decode/libdefault-lib-ml_kem_codecs.o", "providers/implementations/exchange/libdefault-lib-dh_exch.o", "providers/implementations/exchange/libdefault-lib-ecdh_exch.o", "providers/implementations/exchange/libdefault-lib-ecx_exch.o", "providers/implementations/exchange/libdefault-lib-kdf_exch.o", + "providers/implementations/kdfs/libdefault-lib-argon2.o", "providers/implementations/kdfs/libdefault-lib-hkdf.o", + "providers/implementations/kdfs/libdefault-lib-hmacdrbg_kdf.o", "providers/implementations/kdfs/libdefault-lib-kbkdf.o", "providers/implementations/kdfs/libdefault-lib-krb5kdf.o", "providers/implementations/kdfs/libdefault-lib-pbkdf2.o", @@ -25358,6 +29617,11 @@ our %unified_info = ( "providers/implementations/kdfs/libdefault-lib-sskdf.o", "providers/implementations/kdfs/libdefault-lib-tls1_prf.o", "providers/implementations/kdfs/libdefault-lib-x942kdf.o", + "providers/implementations/kem/libdefault-lib-ec_kem.o", + "providers/implementations/kem/libdefault-lib-ecx_kem.o", + "providers/implementations/kem/libdefault-lib-kem_util.o", + "providers/implementations/kem/libdefault-lib-ml_kem_kem.o", + "providers/implementations/kem/libdefault-lib-mlx_kem.o", "providers/implementations/kem/libdefault-lib-rsa_kem.o", "providers/implementations/keymgmt/libdefault-lib-dh_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-dsa_kmgmt.o", @@ -25365,7 +29629,11 @@ our %unified_info = ( "providers/implementations/keymgmt/libdefault-lib-ecx_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-kdf_legacy_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-mac_legacy_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-ml_dsa_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-ml_kem_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-mlx_kmgmt.o", "providers/implementations/keymgmt/libdefault-lib-rsa_kmgmt.o", + "providers/implementations/keymgmt/libdefault-lib-slh_dsa_kmgmt.o", "providers/implementations/macs/libdefault-lib-blake2b_mac.o", "providers/implementations/macs/libdefault-lib-blake2s_mac.o", "providers/implementations/macs/libdefault-lib-cmac_prov.o", @@ -25374,12 +29642,12 @@ our %unified_info = ( "providers/implementations/macs/libdefault-lib-kmac_prov.o", "providers/implementations/macs/libdefault-lib-poly1305_prov.o", "providers/implementations/macs/libdefault-lib-siphash_prov.o", - "providers/implementations/rands/libdefault-lib-crngt.o", "providers/implementations/rands/libdefault-lib-drbg.o", "providers/implementations/rands/libdefault-lib-drbg_ctr.o", "providers/implementations/rands/libdefault-lib-drbg_hash.o", "providers/implementations/rands/libdefault-lib-drbg_hmac.o", "providers/implementations/rands/libdefault-lib-seed_src.o", + "providers/implementations/rands/libdefault-lib-seed_src_jitter.o", "providers/implementations/rands/libdefault-lib-test_rng.o", "providers/implementations/rands/seeding/libdefault-lib-rand_cpu_x86.o", "providers/implementations/rands/seeding/libdefault-lib-rand_tsc.o", @@ -25389,11 +29657,15 @@ our %unified_info = ( "providers/implementations/signature/libdefault-lib-ecdsa_sig.o", "providers/implementations/signature/libdefault-lib-eddsa_sig.o", "providers/implementations/signature/libdefault-lib-mac_legacy_sig.o", + "providers/implementations/signature/libdefault-lib-ml_dsa_sig.o", "providers/implementations/signature/libdefault-lib-rsa_sig.o", + "providers/implementations/signature/libdefault-lib-slh_dsa_sig.o", "providers/implementations/signature/libdefault-lib-sm2_sig.o", + "providers/implementations/skeymgmt/libdefault-lib-aes_skmgmt.o", + "providers/implementations/skeymgmt/libdefault-lib-generic.o", "providers/implementations/storemgmt/libdefault-lib-file_store.o", "providers/implementations/storemgmt/libdefault-lib-file_store_any2obj.o", - "ssl/libdefault-lib-s3_cbc.o" + "ssl/record/methods/libdefault-lib-ssl3_cbc.o" ], "providers/libfips.a" => [ "crypto/aes/libfips-lib-aes-586.o", @@ -25501,14 +29773,15 @@ our %unified_info = ( "crypto/evp/libfips-lib-kem.o", "crypto/evp/libfips-lib-keymgmt_lib.o", "crypto/evp/libfips-lib-keymgmt_meth.o", - "crypto/evp/libfips-lib-m_sigver.o", "crypto/evp/libfips-lib-mac_lib.o", "crypto/evp/libfips-lib-mac_meth.o", "crypto/evp/libfips-lib-p_lib.o", "crypto/evp/libfips-lib-pmeth_check.o", "crypto/evp/libfips-lib-pmeth_gn.o", "crypto/evp/libfips-lib-pmeth_lib.o", + "crypto/evp/libfips-lib-s_lib.o", "crypto/evp/libfips-lib-signature.o", + "crypto/evp/libfips-lib-skeymgmt_meth.o", "crypto/ffc/libfips-lib-ffc_backend.o", "crypto/ffc/libfips-lib-ffc_dh.o", "crypto/ffc/libfips-lib-ffc_key_generate.o", @@ -25516,6 +29789,8 @@ our %unified_info = ( "crypto/ffc/libfips-lib-ffc_params.o", "crypto/ffc/libfips-lib-ffc_params_generate.o", "crypto/ffc/libfips-lib-ffc_params_validate.o", + "crypto/hashtable/libfips-lib-hashfunc.o", + "crypto/hashtable/libfips-lib-hashtable.o", "crypto/hmac/libfips-lib-hmac.o", "crypto/lhash/libfips-lib-lhash.o", "crypto/libfips-lib-asn1_dsa.o", @@ -25537,6 +29812,7 @@ our %unified_info = ( "crypto/libfips-lib-params.o", "crypto/libfips-lib-params_dup.o", "crypto/libfips-lib-params_from_text.o", + "crypto/libfips-lib-params_idx.o", "crypto/libfips-lib-provider_core.o", "crypto/libfips-lib-provider_predefined.o", "crypto/libfips-lib-self_test_core.o", @@ -25545,7 +29821,17 @@ our %unified_info = ( "crypto/libfips-lib-threads_none.o", "crypto/libfips-lib-threads_pthread.o", "crypto/libfips-lib-threads_win.o", + "crypto/libfips-lib-time.o", "crypto/libfips-lib-x86cpuid.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_encoders.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_key.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_key_compress.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_matrix.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_ntt.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_params.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_sample.o", + "crypto/ml_dsa/libfips-lib-ml_dsa_sign.o", + "crypto/ml_kem/libfips-lib-ml_kem.o", "crypto/modes/libfips-lib-cbc128.o", "crypto/modes/libfips-lib-ccm128.o", "crypto/modes/libfips-lib-cfb128.o", @@ -25555,6 +29841,7 @@ our %unified_info = ( "crypto/modes/libfips-lib-ofb128.o", "crypto/modes/libfips-lib-wrap128.o", "crypto/modes/libfips-lib-xts128.o", + "crypto/modes/libfips-lib-xts128gb.o", "crypto/property/libfips-lib-defn_cache.o", "crypto/property/libfips-lib-property.o", "crypto/property/libfips-lib-property_parse.o", @@ -25586,7 +29873,23 @@ our %unified_info = ( "crypto/sha/libfips-lib-sha3.o", "crypto/sha/libfips-lib-sha512-586.o", "crypto/sha/libfips-lib-sha512.o", + "crypto/slh_dsa/libfips-lib-slh_adrs.o", + "crypto/slh_dsa/libfips-lib-slh_dsa.o", + "crypto/slh_dsa/libfips-lib-slh_dsa_hash_ctx.o", + "crypto/slh_dsa/libfips-lib-slh_dsa_key.o", + "crypto/slh_dsa/libfips-lib-slh_fors.o", + "crypto/slh_dsa/libfips-lib-slh_hash.o", + "crypto/slh_dsa/libfips-lib-slh_hypertree.o", + "crypto/slh_dsa/libfips-lib-slh_params.o", + "crypto/slh_dsa/libfips-lib-slh_wots.o", + "crypto/slh_dsa/libfips-lib-slh_xmss.o", "crypto/stack/libfips-lib-stack.o", + "crypto/thread/arch/libfips-lib-thread_none.o", + "crypto/thread/arch/libfips-lib-thread_posix.o", + "crypto/thread/arch/libfips-lib-thread_win.o", + "crypto/thread/libfips-lib-api.o", + "crypto/thread/libfips-lib-arch.o", + "crypto/thread/libfips-lib-internal.o", "providers/common/der/libfips-lib-der_rsa_sig.o", "providers/common/libfips-lib-bio_prov.o", "providers/common/libfips-lib-capabilities.o", @@ -25595,6 +29898,7 @@ our %unified_info = ( "providers/common/libfips-lib-provider_util.o", "providers/common/libfips-lib-securitycheck.o", "providers/common/libfips-lib-securitycheck_fips.o", + "providers/fips/libfips-lib-fipsindicator.o", "providers/fips/libfips-lib-fipsprov.o", "providers/fips/libfips-lib-self_test.o", "providers/fips/libfips-lib-self_test_kats.o", @@ -25632,6 +29936,8 @@ our %unified_info = ( "providers/implementations/kdfs/libfips-lib-sskdf.o", "providers/implementations/kdfs/libfips-lib-tls1_prf.o", "providers/implementations/kdfs/libfips-lib-x942kdf.o", + "providers/implementations/kem/libfips-lib-ml_kem_kem.o", + "providers/implementations/kem/libfips-lib-mlx_kem.o", "providers/implementations/kem/libfips-lib-rsa_kem.o", "providers/implementations/keymgmt/libfips-lib-dh_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-dsa_kmgmt.o", @@ -25639,24 +29945,32 @@ our %unified_info = ( "providers/implementations/keymgmt/libfips-lib-ecx_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-kdf_legacy_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-mac_legacy_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-ml_dsa_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-ml_kem_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-mlx_kmgmt.o", "providers/implementations/keymgmt/libfips-lib-rsa_kmgmt.o", + "providers/implementations/keymgmt/libfips-lib-slh_dsa_kmgmt.o", "providers/implementations/macs/libfips-lib-cmac_prov.o", "providers/implementations/macs/libfips-lib-gmac_prov.o", "providers/implementations/macs/libfips-lib-hmac_prov.o", "providers/implementations/macs/libfips-lib-kmac_prov.o", - "providers/implementations/rands/libfips-lib-crngt.o", "providers/implementations/rands/libfips-lib-drbg.o", "providers/implementations/rands/libfips-lib-drbg_ctr.o", "providers/implementations/rands/libfips-lib-drbg_hash.o", "providers/implementations/rands/libfips-lib-drbg_hmac.o", + "providers/implementations/rands/libfips-lib-fips_crng_test.o", "providers/implementations/rands/libfips-lib-test_rng.o", "providers/implementations/signature/libfips-lib-dsa_sig.o", "providers/implementations/signature/libfips-lib-ecdsa_sig.o", "providers/implementations/signature/libfips-lib-eddsa_sig.o", "providers/implementations/signature/libfips-lib-mac_legacy_sig.o", + "providers/implementations/signature/libfips-lib-ml_dsa_sig.o", "providers/implementations/signature/libfips-lib-rsa_sig.o", + "providers/implementations/signature/libfips-lib-slh_dsa_sig.o", + "providers/implementations/skeymgmt/libfips-lib-aes_skmgmt.o", + "providers/implementations/skeymgmt/libfips-lib-generic.o", "providers/libcommon.a", - "ssl/libfips-lib-s3_cbc.o" + "ssl/record/methods/libfips-lib-ssl3_cbc.o" ], "providers/liblegacy-lib-prov_running.o" => [ "providers/prov_running.c" @@ -25686,13 +30000,12 @@ our %unified_info = ( "providers/implementations/digests/liblegacy-lib-ripemd_prov.o", "providers/implementations/digests/liblegacy-lib-wp_prov.o", "providers/implementations/kdfs/liblegacy-lib-pbkdf1.o", + "providers/implementations/kdfs/liblegacy-lib-pvkkdf.o", "providers/liblegacy-lib-prov_running.o" ], - "ssl/libdefault-lib-s3_cbc.o" => [ - "ssl/s3_cbc.c" - ], - "ssl/libfips-lib-s3_cbc.o" => [ - "ssl/s3_cbc.c" + "providers/libtemplate.a" => [ + "providers/implementations/kem/libtemplate-lib-template_kem.o", + "providers/implementations/keymgmt/libtemplate-lib-template_kmgmt.o" ], "ssl/libssl-lib-bio_ssl.o" => [ "ssl/bio_ssl.c" @@ -25712,6 +30025,9 @@ our %unified_info = ( "ssl/libssl-lib-pqueue.o" => [ "ssl/pqueue.c" ], + "ssl/libssl-lib-priority_queue.o" => [ + "ssl/priority_queue.c" + ], "ssl/libssl-lib-s3_enc.o" => [ "ssl/s3_enc.c" ], @@ -25727,15 +30043,15 @@ our %unified_info = ( "ssl/libssl-lib-ssl_cert.o" => [ "ssl/ssl_cert.c" ], + "ssl/libssl-lib-ssl_cert_comp.o" => [ + "ssl/ssl_cert_comp.c" + ], "ssl/libssl-lib-ssl_ciph.o" => [ "ssl/ssl_ciph.c" ], "ssl/libssl-lib-ssl_conf.o" => [ "ssl/ssl_conf.c" ], - "ssl/libssl-lib-ssl_err.o" => [ - "ssl/ssl_err.c" - ], "ssl/libssl-lib-ssl_err_legacy.o" => [ "ssl/ssl_err_legacy.c" ], @@ -25784,11 +30100,131 @@ our %unified_info = ( "ssl/libssl-lib-tls_srp.o" => [ "ssl/tls_srp.c" ], - "ssl/record/libcommon-lib-tls_pad.o" => [ - "ssl/record/tls_pad.c" + "ssl/quic/libssl-lib-cc_newreno.o" => [ + "ssl/quic/cc_newreno.c" + ], + "ssl/quic/libssl-lib-json_enc.o" => [ + "ssl/quic/json_enc.c" + ], + "ssl/quic/libssl-lib-qlog.o" => [ + "ssl/quic/qlog.c" + ], + "ssl/quic/libssl-lib-qlog_event_helpers.o" => [ + "ssl/quic/qlog_event_helpers.c" + ], + "ssl/quic/libssl-lib-quic_ackm.o" => [ + "ssl/quic/quic_ackm.c" + ], + "ssl/quic/libssl-lib-quic_cfq.o" => [ + "ssl/quic/quic_cfq.c" + ], + "ssl/quic/libssl-lib-quic_channel.o" => [ + "ssl/quic/quic_channel.c" + ], + "ssl/quic/libssl-lib-quic_demux.o" => [ + "ssl/quic/quic_demux.c" + ], + "ssl/quic/libssl-lib-quic_engine.o" => [ + "ssl/quic/quic_engine.c" + ], + "ssl/quic/libssl-lib-quic_fc.o" => [ + "ssl/quic/quic_fc.c" + ], + "ssl/quic/libssl-lib-quic_fifd.o" => [ + "ssl/quic/quic_fifd.c" + ], + "ssl/quic/libssl-lib-quic_impl.o" => [ + "ssl/quic/quic_impl.c" + ], + "ssl/quic/libssl-lib-quic_lcidm.o" => [ + "ssl/quic/quic_lcidm.c" + ], + "ssl/quic/libssl-lib-quic_method.o" => [ + "ssl/quic/quic_method.c" + ], + "ssl/quic/libssl-lib-quic_obj.o" => [ + "ssl/quic/quic_obj.c" + ], + "ssl/quic/libssl-lib-quic_port.o" => [ + "ssl/quic/quic_port.c" + ], + "ssl/quic/libssl-lib-quic_rcidm.o" => [ + "ssl/quic/quic_rcidm.c" + ], + "ssl/quic/libssl-lib-quic_reactor.o" => [ + "ssl/quic/quic_reactor.c" + ], + "ssl/quic/libssl-lib-quic_reactor_wait_ctx.o" => [ + "ssl/quic/quic_reactor_wait_ctx.c" + ], + "ssl/quic/libssl-lib-quic_record_rx.o" => [ + "ssl/quic/quic_record_rx.c" + ], + "ssl/quic/libssl-lib-quic_record_shared.o" => [ + "ssl/quic/quic_record_shared.c" + ], + "ssl/quic/libssl-lib-quic_record_tx.o" => [ + "ssl/quic/quic_record_tx.c" + ], + "ssl/quic/libssl-lib-quic_record_util.o" => [ + "ssl/quic/quic_record_util.c" + ], + "ssl/quic/libssl-lib-quic_rstream.o" => [ + "ssl/quic/quic_rstream.c" ], - "ssl/record/libssl-lib-dtls1_bitmap.o" => [ - "ssl/record/dtls1_bitmap.c" + "ssl/quic/libssl-lib-quic_rx_depack.o" => [ + "ssl/quic/quic_rx_depack.c" + ], + "ssl/quic/libssl-lib-quic_sf_list.o" => [ + "ssl/quic/quic_sf_list.c" + ], + "ssl/quic/libssl-lib-quic_srt_gen.o" => [ + "ssl/quic/quic_srt_gen.c" + ], + "ssl/quic/libssl-lib-quic_srtm.o" => [ + "ssl/quic/quic_srtm.c" + ], + "ssl/quic/libssl-lib-quic_sstream.o" => [ + "ssl/quic/quic_sstream.c" + ], + "ssl/quic/libssl-lib-quic_statm.o" => [ + "ssl/quic/quic_statm.c" + ], + "ssl/quic/libssl-lib-quic_stream_map.o" => [ + "ssl/quic/quic_stream_map.c" + ], + "ssl/quic/libssl-lib-quic_thread_assist.o" => [ + "ssl/quic/quic_thread_assist.c" + ], + "ssl/quic/libssl-lib-quic_tls.o" => [ + "ssl/quic/quic_tls.c" + ], + "ssl/quic/libssl-lib-quic_tls_api.o" => [ + "ssl/quic/quic_tls_api.c" + ], + "ssl/quic/libssl-lib-quic_trace.o" => [ + "ssl/quic/quic_trace.c" + ], + "ssl/quic/libssl-lib-quic_tserver.o" => [ + "ssl/quic/quic_tserver.c" + ], + "ssl/quic/libssl-lib-quic_txp.o" => [ + "ssl/quic/quic_txp.c" + ], + "ssl/quic/libssl-lib-quic_txpim.o" => [ + "ssl/quic/quic_txpim.c" + ], + "ssl/quic/libssl-lib-quic_types.o" => [ + "ssl/quic/quic_types.c" + ], + "ssl/quic/libssl-lib-quic_wire.o" => [ + "ssl/quic/quic_wire.c" + ], + "ssl/quic/libssl-lib-quic_wire_pkt.o" => [ + "ssl/quic/quic_wire_pkt.c" + ], + "ssl/quic/libssl-lib-uint_set.o" => [ + "ssl/quic/uint_set.c" ], "ssl/record/libssl-lib-rec_layer_d1.o" => [ "ssl/record/rec_layer_d1.c" @@ -25796,14 +30232,44 @@ our %unified_info = ( "ssl/record/libssl-lib-rec_layer_s3.o" => [ "ssl/record/rec_layer_s3.c" ], - "ssl/record/libssl-lib-ssl3_buffer.o" => [ - "ssl/record/ssl3_buffer.c" + "ssl/record/methods/libcommon-lib-tls_pad.o" => [ + "ssl/record/methods/tls_pad.c" + ], + "ssl/record/methods/libdefault-lib-ssl3_cbc.o" => [ + "ssl/record/methods/ssl3_cbc.c" + ], + "ssl/record/methods/libfips-lib-ssl3_cbc.o" => [ + "ssl/record/methods/ssl3_cbc.c" + ], + "ssl/record/methods/libssl-lib-dtls_meth.o" => [ + "ssl/record/methods/dtls_meth.c" + ], + "ssl/record/methods/libssl-lib-ssl3_meth.o" => [ + "ssl/record/methods/ssl3_meth.c" + ], + "ssl/record/methods/libssl-lib-tls13_meth.o" => [ + "ssl/record/methods/tls13_meth.c" + ], + "ssl/record/methods/libssl-lib-tls1_meth.o" => [ + "ssl/record/methods/tls1_meth.c" + ], + "ssl/record/methods/libssl-lib-tls_common.o" => [ + "ssl/record/methods/tls_common.c" ], - "ssl/record/libssl-lib-ssl3_record.o" => [ - "ssl/record/ssl3_record.c" + "ssl/record/methods/libssl-lib-tls_multib.o" => [ + "ssl/record/methods/tls_multib.c" ], - "ssl/record/libssl-lib-ssl3_record_tls13.o" => [ - "ssl/record/ssl3_record_tls13.c" + "ssl/record/methods/libssl-lib-tlsany_meth.o" => [ + "ssl/record/methods/tlsany_meth.c" + ], + "ssl/rio/libssl-lib-poll_builder.o" => [ + "ssl/rio/poll_builder.c" + ], + "ssl/rio/libssl-lib-poll_immediate.o" => [ + "ssl/rio/poll_immediate.c" + ], + "ssl/rio/libssl-lib-rio_notifier.o" => [ + "ssl/rio/rio_notifier.c" ], "ssl/statem/libssl-lib-extensions.o" => [ "ssl/statem/extensions.c" @@ -25899,6 +30365,8 @@ our %unified_info = ( "test/asn1_string_table_test.c" ], "test/asn1_time_test" => [ + "crypto/asn1/asn1_time_test-bin-a_time.o", + "crypto/asn1_time_test-bin-ctype.o", "test/asn1_time_test-bin-asn1_time_test.o" ], "test/asn1_time_test-bin-asn1_time_test.o" => [ @@ -25929,6 +30397,18 @@ our %unified_info = ( "test/bftest-bin-bftest.o" => [ "test/bftest.c" ], + "test/bio_addr_test" => [ + "test/bio_addr_test-bin-bio_addr_test.o" + ], + "test/bio_addr_test-bin-bio_addr_test.o" => [ + "test/bio_addr_test.c" + ], + "test/bio_base64_test" => [ + "test/bio_base64_test-bin-bio_base64_test.o" + ], + "test/bio_base64_test-bin-bio_base64_test.o" => [ + "test/bio_base64_test.c" + ], "test/bio_callback_test" => [ "test/bio_callback_test-bin-bio_callback_test.o" ], @@ -25941,6 +30421,12 @@ our %unified_info = ( "test/bio_core_test-bin-bio_core_test.o" => [ "test/bio_core_test.c" ], + "test/bio_dgram_test" => [ + "test/bio_dgram_test-bin-bio_dgram_test.o" + ], + "test/bio_dgram_test-bin-bio_dgram_test.o" => [ + "test/bio_dgram_test.c" + ], "test/bio_enc_test" => [ "test/bio_enc_test-bin-bio_enc_test.o" ], @@ -25953,6 +30439,12 @@ our %unified_info = ( "test/bio_memleak_test-bin-bio_memleak_test.o" => [ "test/bio_memleak_test.c" ], + "test/bio_meth_test" => [ + "test/bio_meth_test-bin-bio_meth_test.o" + ], + "test/bio_meth_test-bin-bio_meth_test.o" => [ + "test/bio_meth_test.c" + ], "test/bio_prefix_text" => [ "test/bio_prefix_text-bin-bio_prefix_text.o" ], @@ -25971,6 +30463,12 @@ our %unified_info = ( "test/bio_readbuffer_test-bin-bio_readbuffer_test.o" => [ "test/bio_readbuffer_test.c" ], + "test/bio_tfo_test" => [ + "test/bio_tfo_test-bin-bio_tfo_test.o" + ], + "test/bio_tfo_test-bin-bio_tfo_test.o" => [ + "test/bio_tfo_test.c" + ], "test/bioprinttest" => [ "test/bioprinttest-bin-bioprinttest.o" ], @@ -25989,6 +30487,12 @@ our %unified_info = ( "test/bntest-bin-bntest.o" => [ "test/bntest.c" ], + "test/build_wincrypt_test" => [ + "test/build_wincrypt_test-bin-build_wincrypt_test.o" + ], + "test/build_wincrypt_test-bin-build_wincrypt_test.o" => [ + "test/build_wincrypt_test.c" + ], "test/buildtest_c_aes" => [ "test/buildtest_c_aes-bin-buildtest_aes.o" ], @@ -26019,6 +30523,12 @@ our %unified_info = ( "test/buildtest_c_buffer-bin-buildtest_buffer.o" => [ "test/buildtest_buffer.c" ], + "test/buildtest_c_byteorder" => [ + "test/buildtest_c_byteorder-bin-buildtest_byteorder.o" + ], + "test/buildtest_c_byteorder-bin-buildtest_byteorder.o" => [ + "test/buildtest_byteorder.c" + ], "test/buildtest_c_camellia" => [ "test/buildtest_c_camellia-bin-buildtest_camellia.o" ], @@ -26067,12 +30577,6 @@ our %unified_info = ( "test/buildtest_c_core_dispatch-bin-buildtest_core_dispatch.o" => [ "test/buildtest_core_dispatch.c" ], - "test/buildtest_c_core_names" => [ - "test/buildtest_c_core_names-bin-buildtest_core_names.o" - ], - "test/buildtest_c_core_names-bin-buildtest_core_names.o" => [ - "test/buildtest_core_names.c" - ], "test/buildtest_c_core_object" => [ "test/buildtest_c_core_object-bin-buildtest_core_object.o" ], @@ -26121,6 +30625,12 @@ our %unified_info = ( "test/buildtest_c_e_os2-bin-buildtest_e_os2.o" => [ "test/buildtest_e_os2.c" ], + "test/buildtest_c_e_ostime" => [ + "test/buildtest_c_e_ostime-bin-buildtest_e_ostime.o" + ], + "test/buildtest_c_e_ostime-bin-buildtest_e_ostime.o" => [ + "test/buildtest_e_ostime.c" + ], "test/buildtest_c_ebcdic" => [ "test/buildtest_c_ebcdic-bin-buildtest_ebcdic.o" ], @@ -26175,6 +30685,12 @@ our %unified_info = ( "test/buildtest_c_hmac-bin-buildtest_hmac.o" => [ "test/buildtest_hmac.c" ], + "test/buildtest_c_hpke" => [ + "test/buildtest_c_hpke-bin-buildtest_hpke.o" + ], + "test/buildtest_c_hpke-bin-buildtest_hpke.o" => [ + "test/buildtest_hpke.c" + ], "test/buildtest_c_http" => [ "test/buildtest_c_http-bin-buildtest_http.o" ], @@ -26187,6 +30703,12 @@ our %unified_info = ( "test/buildtest_c_idea-bin-buildtest_idea.o" => [ "test/buildtest_idea.c" ], + "test/buildtest_c_indicator" => [ + "test/buildtest_c_indicator-bin-buildtest_indicator.o" + ], + "test/buildtest_c_indicator-bin-buildtest_indicator.o" => [ + "test/buildtest_indicator.c" + ], "test/buildtest_c_kdf" => [ "test/buildtest_c_kdf-bin-buildtest_kdf.o" ], @@ -26217,6 +30739,12 @@ our %unified_info = ( "test/buildtest_c_mdc2-bin-buildtest_mdc2.o" => [ "test/buildtest_mdc2.c" ], + "test/buildtest_c_ml_kem" => [ + "test/buildtest_c_ml_kem-bin-buildtest_ml_kem.o" + ], + "test/buildtest_c_ml_kem-bin-buildtest_ml_kem.o" => [ + "test/buildtest_ml_kem.c" + ], "test/buildtest_c_modes" => [ "test/buildtest_c_modes-bin-buildtest_modes.o" ], @@ -26277,6 +30805,12 @@ our %unified_info = ( "test/buildtest_c_provider-bin-buildtest_provider.o" => [ "test/buildtest_provider.c" ], + "test/buildtest_c_quic" => [ + "test/buildtest_c_quic-bin-buildtest_quic.o" + ], + "test/buildtest_c_quic-bin-buildtest_quic.o" => [ + "test/buildtest_quic.c" + ], "test/buildtest_c_rand" => [ "test/buildtest_c_rand-bin-buildtest_rand.o" ], @@ -26361,6 +30895,12 @@ our %unified_info = ( "test/buildtest_c_symhacks-bin-buildtest_symhacks.o" => [ "test/buildtest_symhacks.c" ], + "test/buildtest_c_thread" => [ + "test/buildtest_c_thread-bin-buildtest_thread.o" + ], + "test/buildtest_c_thread-bin-buildtest_thread.o" => [ + "test/buildtest_thread.c" + ], "test/buildtest_c_tls1" => [ "test/buildtest_c_tls1-bin-buildtest_tls1.o" ], @@ -26391,6 +30931,29 @@ our %unified_info = ( "test/buildtest_c_whrlpool-bin-buildtest_whrlpool.o" => [ "test/buildtest_whrlpool.c" ], + "test/byteorder_test" => [ + "test/byteorder_test-bin-byteorder_test.o" + ], + "test/byteorder_test-bin-byteorder_test.o" => [ + "test/byteorder_test.c" + ], + "test/ca_internals_test" => [ + "apps/ca_internals_test-bin-ca.o", + "apps/lib/ca_internals_test-bin-app_libctx.o", + "apps/lib/ca_internals_test-bin-app_provider.o", + "apps/lib/ca_internals_test-bin-app_rand.o", + "apps/lib/ca_internals_test-bin-app_x509.o", + "apps/lib/ca_internals_test-bin-apps.o", + "apps/lib/ca_internals_test-bin-apps_ui.o", + "apps/lib/ca_internals_test-bin-engine.o", + "apps/lib/ca_internals_test-bin-fmt.o", + "crypto/asn1/ca_internals_test-bin-a_time.o", + "crypto/ca_internals_test-bin-ctype.o", + "test/ca_internals_test-bin-ca_internals_test.o" + ], + "test/ca_internals_test-bin-ca_internals_test.o" => [ + "test/ca_internals_test.c" + ], "test/casttest" => [ "test/casttest-bin-casttest.o" ], @@ -26569,6 +31132,12 @@ our %unified_info = ( "test/danetest-bin-danetest.o" => [ "test/danetest.c" ], + "test/decoder_propq_test" => [ + "test/decoder_propq_test-bin-decoder_propq_test.o" + ], + "test/decoder_propq_test-bin-decoder_propq_test.o" => [ + "test/decoder_propq_test.c" + ], "test/defltfips_test" => [ "test/defltfips_test-bin-defltfips_test.o" ], @@ -26650,6 +31219,7 @@ our %unified_info = ( "test/ectest.c" ], "test/endecode_test" => [ + "providers/endecode_test-bin-legacyprov.o", "test/endecode_test-bin-endecode_test.o", "test/helpers/endecode_test-bin-predefined_dhparams.o" ], @@ -26682,17 +31252,29 @@ our %unified_info = ( ], "test/evp_extra_test" => [ "providers/evp_extra_test-bin-legacyprov.o", - "test/evp_extra_test-bin-evp_extra_test.o" + "test/evp_extra_test-bin-evp_extra_test.o", + "test/evp_extra_test-bin-fake_pipelineprov.o", + "test/evp_extra_test-bin-fake_rsaprov.o" ], "test/evp_extra_test-bin-evp_extra_test.o" => [ "test/evp_extra_test.c" ], + "test/evp_extra_test-bin-fake_pipelineprov.o" => [ + "test/fake_pipelineprov.c" + ], + "test/evp_extra_test-bin-fake_rsaprov.o" => [ + "test/fake_rsaprov.c" + ], "test/evp_extra_test2" => [ - "test/evp_extra_test2-bin-evp_extra_test2.o" + "test/evp_extra_test2-bin-evp_extra_test2.o", + "test/evp_extra_test2-bin-tls-provider.o" ], "test/evp_extra_test2-bin-evp_extra_test2.o" => [ "test/evp_extra_test2.c" ], + "test/evp_extra_test2-bin-tls-provider.o" => [ + "test/tls-provider.c" + ], "test/evp_fetch_prov_test" => [ "test/evp_fetch_prov_test-bin-evp_fetch_prov_test.o" ], @@ -26717,6 +31299,12 @@ our %unified_info = ( "test/evp_pkey_ctx_new_from_name-bin-evp_pkey_ctx_new_from_name.o" => [ "test/evp_pkey_ctx_new_from_name.c" ], + "test/evp_pkey_dhkem_test" => [ + "test/evp_pkey_dhkem_test-bin-evp_pkey_dhkem_test.o" + ], + "test/evp_pkey_dhkem_test-bin-evp_pkey_dhkem_test.o" => [ + "test/evp_pkey_dhkem_test.c" + ], "test/evp_pkey_dparams_test" => [ "test/evp_pkey_dparams_test-bin-evp_pkey_dparams_test.o" ], @@ -26729,12 +31317,28 @@ our %unified_info = ( "test/evp_pkey_provided_test-bin-evp_pkey_provided_test.o" => [ "test/evp_pkey_provided_test.c" ], + "test/evp_skey_test" => [ + "test/evp_skey_test-bin-evp_skey_test.o", + "test/evp_skey_test-bin-fake_cipherprov.o" + ], + "test/evp_skey_test-bin-evp_skey_test.o" => [ + "test/evp_skey_test.c" + ], + "test/evp_skey_test-bin-fake_cipherprov.o" => [ + "test/fake_cipherprov.c" + ], "test/evp_test" => [ "test/evp_test-bin-evp_test.o" ], "test/evp_test-bin-evp_test.o" => [ "test/evp_test.c" ], + "test/evp_xof_test" => [ + "test/evp_xof_test-bin-evp_xof_test.o" + ], + "test/evp_xof_test-bin-evp_xof_test.o" => [ + "test/evp_xof_test.c" + ], "test/exdatatest" => [ "test/exdatatest-bin-exdatatest.o" ], @@ -26820,15 +31424,108 @@ our %unified_info = ( "test/helpers/fatalerrtest-bin-ssltestlib.o" => [ "test/helpers/ssltestlib.c" ], + "test/helpers/json_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/json_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/json_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/json_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/pkcs12_api_test-bin-pkcs12.o" => [ + "test/helpers/pkcs12.c" + ], "test/helpers/pkcs12_format_test-bin-pkcs12.o" => [ "test/helpers/pkcs12.c" ], + "test/helpers/quic_multistream_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quic_multistream_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quic_multistream_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quic_multistream_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quic_newcid_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quic_newcid_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quic_newcid_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quic_newcid_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quic_radix_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quic_radix_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quic_radix_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quic_radix_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quic_srt_gen_test-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quic_srt_gen_test-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quic_srt_gen_test-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quic_srt_gen_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quicapitest-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quicapitest-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quicapitest-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quicapitest-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], + "test/helpers/quicfaultstest-bin-noisydgrambio.o" => [ + "test/helpers/noisydgrambio.c" + ], + "test/helpers/quicfaultstest-bin-pktsplitbio.o" => [ + "test/helpers/pktsplitbio.c" + ], + "test/helpers/quicfaultstest-bin-quictestlib.o" => [ + "test/helpers/quictestlib.c" + ], + "test/helpers/quicfaultstest-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], "test/helpers/recordlentest-bin-ssltestlib.o" => [ "test/helpers/ssltestlib.c" ], + "test/helpers/rpktest-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], "test/helpers/servername_test-bin-ssltestlib.o" => [ "test/helpers/ssltestlib.c" ], + "test/helpers/ssl_handshake_rtt_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], "test/helpers/ssl_old_test-bin-predefined_dhparams.o" => [ "test/helpers/predefined_dhparams.c" ], @@ -26856,6 +31553,9 @@ our %unified_info = ( "test/helpers/tls13ccstest-bin-ssltestlib.o" => [ "test/helpers/ssltestlib.c" ], + "test/helpers/tls13groupselection_test-bin-ssltestlib.o" => [ + "test/helpers/ssltestlib.c" + ], "test/hexstr_test" => [ "test/hexstr_test-bin-hexstr_test.o" ], @@ -26868,6 +31568,12 @@ our %unified_info = ( "test/hmactest-bin-hmactest.o" => [ "test/hmactest.c" ], + "test/hpke_test" => [ + "test/hpke_test-bin-hpke_test.o" + ], + "test/hpke_test-bin-hpke_test.o" => [ + "test/hpke_test.c" + ], "test/http_test" => [ "test/http_test-bin-http_test.o" ], @@ -26886,6 +31592,16 @@ our %unified_info = ( "test/igetest-bin-igetest.o" => [ "test/igetest.c" ], + "test/json_test" => [ + "test/helpers/json_test-bin-noisydgrambio.o", + "test/helpers/json_test-bin-pktsplitbio.o", + "test/helpers/json_test-bin-quictestlib.o", + "test/helpers/json_test-bin-ssltestlib.o", + "test/json_test-bin-json_test.o" + ], + "test/json_test-bin-json_test.o" => [ + "test/json_test.c" + ], "test/keymgmt_internal_test" => [ "test/keymgmt_internal_test-bin-keymgmt_internal_test.o" ], @@ -26906,6 +31622,7 @@ our %unified_info = ( "test/testutil/libtestutil-lib-driver.o", "test/testutil/libtestutil-lib-fake_random.o", "test/testutil/libtestutil-lib-format_output.o", + "test/testutil/libtestutil-lib-helper.o", "test/testutil/libtestutil-lib-load.o", "test/testutil/libtestutil-lib-main.o", "test/testutil/libtestutil-lib-options.o", @@ -26918,6 +31635,12 @@ our %unified_info = ( "test/testutil/libtestutil-lib-tests.o", "test/testutil/libtestutil-lib-testutil_init.o" ], + "test/list_test" => [ + "test/list_test-bin-list_test.o" + ], + "test/list_test-bin-list_test.o" => [ + "test/list_test.c" + ], "test/localetest" => [ "test/localetest-bin-localetest.o" ], @@ -26936,12 +31659,36 @@ our %unified_info = ( "test/mdc2test-bin-mdc2test.o" => [ "test/mdc2test.c" ], + "test/membio_test" => [ + "test/membio_test-bin-membio_test.o" + ], + "test/membio_test-bin-membio_test.o" => [ + "test/membio_test.c" + ], "test/memleaktest" => [ "test/memleaktest-bin-memleaktest.o" ], "test/memleaktest-bin-memleaktest.o" => [ "test/memleaktest.c" ], + "test/ml_dsa_test" => [ + "test/ml_dsa_test-bin-ml_dsa_test.o" + ], + "test/ml_dsa_test-bin-ml_dsa_test.o" => [ + "test/ml_dsa_test.c" + ], + "test/ml_kem_evp_extra_test" => [ + "test/ml_kem_evp_extra_test-bin-ml_kem_evp_extra_test.o" + ], + "test/ml_kem_evp_extra_test-bin-ml_kem_evp_extra_test.o" => [ + "test/ml_kem_evp_extra_test.c" + ], + "test/ml_kem_internal_test" => [ + "test/ml_kem_internal_test-bin-ml_kem_internal_test.o" + ], + "test/ml_kem_internal_test-bin-ml_kem_internal_test.o" => [ + "test/ml_kem_internal_test.c" + ], "test/modes_internal_test" => [ "test/modes_internal_test-bin-modes_internal_test.o" ], @@ -26987,11 +31734,18 @@ our %unified_info = ( "test/p_test.c" ], "test/packettest" => [ + "crypto/packettest-bin-quic_vlint.o", "test/packettest-bin-packettest.o" ], "test/packettest-bin-packettest.o" => [ "test/packettest.c" ], + "test/pairwise_fail_test" => [ + "test/pairwise_fail_test-bin-pairwise_fail_test.o" + ], + "test/pairwise_fail_test-bin-pairwise_fail_test.o" => [ + "test/pairwise_fail_test.c" + ], "test/param_build_test" => [ "test/param_build_test-bin-param_build_test.o" ], @@ -27040,6 +31794,13 @@ our %unified_info = ( "test/pemtest-bin-pemtest.o" => [ "test/pemtest.c" ], + "test/pkcs12_api_test" => [ + "test/helpers/pkcs12_api_test-bin-pkcs12.o", + "test/pkcs12_api_test-bin-pkcs12_api_test.o" + ], + "test/pkcs12_api_test-bin-pkcs12_api_test.o" => [ + "test/pkcs12_api_test.c" + ], "test/pkcs12_format_test" => [ "test/helpers/pkcs12_format_test-bin-pkcs12.o", "test/pkcs12_format_test-bin-pkcs12_format_test.o" @@ -27071,6 +31832,12 @@ our %unified_info = ( "test/poly1305_internal_test-bin-poly1305_internal_test.o" => [ "test/poly1305_internal_test.c" ], + "test/priority_queue_test" => [ + "test/priority_queue_test-bin-priority_queue_test.o" + ], + "test/priority_queue_test-bin-priority_queue_test.o" => [ + "test/priority_queue_test.c" + ], "test/property_test" => [ "test/property_test-bin-property_test.o" ], @@ -27089,6 +31856,12 @@ our %unified_info = ( "test/provfetchtest-bin-provfetchtest.o" => [ "test/provfetchtest.c" ], + "test/provider_default_search_path_test" => [ + "test/provider_default_search_path_test-bin-provider_default_search_path_test.o" + ], + "test/provider_default_search_path_test-bin-provider_default_search_path_test.o" => [ + "test/provider_default_search_path_test.c" + ], "test/provider_fallback_test" => [ "test/provider_fallback_test-bin-provider_fallback_test.o" ], @@ -27137,6 +31910,174 @@ our %unified_info = ( "test/punycode_test-bin-punycode_test.o" => [ "test/punycode_test.c" ], + "test/quic_ackm_test" => [ + "test/quic_ackm_test-bin-cc_dummy.o", + "test/quic_ackm_test-bin-quic_ackm_test.o" + ], + "test/quic_ackm_test-bin-cc_dummy.o" => [ + "test/cc_dummy.c" + ], + "test/quic_ackm_test-bin-quic_ackm_test.o" => [ + "test/quic_ackm_test.c" + ], + "test/quic_cc_test" => [ + "test/quic_cc_test-bin-quic_cc_test.o" + ], + "test/quic_cc_test-bin-quic_cc_test.o" => [ + "test/quic_cc_test.c" + ], + "test/quic_cfq_test" => [ + "test/quic_cfq_test-bin-quic_cfq_test.o" + ], + "test/quic_cfq_test-bin-quic_cfq_test.o" => [ + "test/quic_cfq_test.c" + ], + "test/quic_client_test" => [ + "test/quic_client_test-bin-quic_client_test.o" + ], + "test/quic_client_test-bin-quic_client_test.o" => [ + "test/quic_client_test.c" + ], + "test/quic_fc_test" => [ + "test/quic_fc_test-bin-quic_fc_test.o" + ], + "test/quic_fc_test-bin-quic_fc_test.o" => [ + "test/quic_fc_test.c" + ], + "test/quic_fifd_test" => [ + "test/quic_fifd_test-bin-cc_dummy.o", + "test/quic_fifd_test-bin-quic_fifd_test.o" + ], + "test/quic_fifd_test-bin-cc_dummy.o" => [ + "test/cc_dummy.c" + ], + "test/quic_fifd_test-bin-quic_fifd_test.o" => [ + "test/quic_fifd_test.c" + ], + "test/quic_lcidm_test" => [ + "test/quic_lcidm_test-bin-quic_lcidm_test.o" + ], + "test/quic_lcidm_test-bin-quic_lcidm_test.o" => [ + "test/quic_lcidm_test.c" + ], + "test/quic_multistream_test" => [ + "test/helpers/quic_multistream_test-bin-noisydgrambio.o", + "test/helpers/quic_multistream_test-bin-pktsplitbio.o", + "test/helpers/quic_multistream_test-bin-quictestlib.o", + "test/helpers/quic_multistream_test-bin-ssltestlib.o", + "test/quic_multistream_test-bin-quic_multistream_test.o" + ], + "test/quic_multistream_test-bin-quic_multistream_test.o" => [ + "test/quic_multistream_test.c" + ], + "test/quic_newcid_test" => [ + "test/helpers/quic_newcid_test-bin-noisydgrambio.o", + "test/helpers/quic_newcid_test-bin-pktsplitbio.o", + "test/helpers/quic_newcid_test-bin-quictestlib.o", + "test/helpers/quic_newcid_test-bin-ssltestlib.o", + "test/quic_newcid_test-bin-quic_newcid_test.o" + ], + "test/quic_newcid_test-bin-quic_newcid_test.o" => [ + "test/quic_newcid_test.c" + ], + "test/quic_qlog_test" => [ + "test/quic_qlog_test-bin-quic_qlog_test.o" + ], + "test/quic_qlog_test-bin-quic_qlog_test.o" => [ + "test/quic_qlog_test.c" + ], + "test/quic_radix_test" => [ + "test/helpers/quic_radix_test-bin-noisydgrambio.o", + "test/helpers/quic_radix_test-bin-pktsplitbio.o", + "test/helpers/quic_radix_test-bin-quictestlib.o", + "test/helpers/quic_radix_test-bin-ssltestlib.o", + "test/radix/quic_radix_test-bin-quic_radix.o" + ], + "test/quic_rcidm_test" => [ + "test/quic_rcidm_test-bin-quic_rcidm_test.o" + ], + "test/quic_rcidm_test-bin-quic_rcidm_test.o" => [ + "test/quic_rcidm_test.c" + ], + "test/quic_record_test" => [ + "test/quic_record_test-bin-quic_record_test.o" + ], + "test/quic_record_test-bin-quic_record_test.o" => [ + "test/quic_record_test.c" + ], + "test/quic_srt_gen_test" => [ + "test/helpers/quic_srt_gen_test-bin-noisydgrambio.o", + "test/helpers/quic_srt_gen_test-bin-pktsplitbio.o", + "test/helpers/quic_srt_gen_test-bin-quictestlib.o", + "test/helpers/quic_srt_gen_test-bin-ssltestlib.o", + "test/quic_srt_gen_test-bin-quic_srt_gen_test.o" + ], + "test/quic_srt_gen_test-bin-quic_srt_gen_test.o" => [ + "test/quic_srt_gen_test.c" + ], + "test/quic_srtm_test" => [ + "test/quic_srtm_test-bin-quic_srtm_test.o" + ], + "test/quic_srtm_test-bin-quic_srtm_test.o" => [ + "test/quic_srtm_test.c" + ], + "test/quic_stream_test" => [ + "test/quic_stream_test-bin-quic_stream_test.o" + ], + "test/quic_stream_test-bin-quic_stream_test.o" => [ + "test/quic_stream_test.c" + ], + "test/quic_tserver_test" => [ + "test/quic_tserver_test-bin-quic_tserver_test.o" + ], + "test/quic_tserver_test-bin-quic_tserver_test.o" => [ + "test/quic_tserver_test.c" + ], + "test/quic_txp_test" => [ + "test/quic_txp_test-bin-cc_dummy.o", + "test/quic_txp_test-bin-quic_txp_test.o" + ], + "test/quic_txp_test-bin-cc_dummy.o" => [ + "test/cc_dummy.c" + ], + "test/quic_txp_test-bin-quic_txp_test.o" => [ + "test/quic_txp_test.c" + ], + "test/quic_txpim_test" => [ + "test/quic_txpim_test-bin-quic_txpim_test.o" + ], + "test/quic_txpim_test-bin-quic_txpim_test.o" => [ + "test/quic_txpim_test.c" + ], + "test/quic_wire_test" => [ + "test/quic_wire_test-bin-quic_wire_test.o" + ], + "test/quic_wire_test-bin-quic_wire_test.o" => [ + "test/quic_wire_test.c" + ], + "test/quicapitest" => [ + "test/helpers/quicapitest-bin-noisydgrambio.o", + "test/helpers/quicapitest-bin-pktsplitbio.o", + "test/helpers/quicapitest-bin-quictestlib.o", + "test/helpers/quicapitest-bin-ssltestlib.o", + "test/quicapitest-bin-quicapitest.o" + ], + "test/quicapitest-bin-quicapitest.o" => [ + "test/quicapitest.c" + ], + "test/quicfaultstest" => [ + "test/helpers/quicfaultstest-bin-noisydgrambio.o", + "test/helpers/quicfaultstest-bin-pktsplitbio.o", + "test/helpers/quicfaultstest-bin-quictestlib.o", + "test/helpers/quicfaultstest-bin-ssltestlib.o", + "test/quicfaultstest-bin-quicfaultstest.o" + ], + "test/quicfaultstest-bin-quicfaultstest.o" => [ + "test/quicfaultstest.c" + ], + "test/radix/quic_radix_test-bin-quic_radix.o" => [ + "test/radix/quic_radix.c" + ], "test/rand_status_test" => [ "test/rand_status_test-bin-rand_status_test.o" ], @@ -27167,11 +32108,11 @@ our %unified_info = ( "test/rc5test-bin-rc5test.o" => [ "test/rc5test.c" ], - "test/rdrand_sanitytest" => [ - "test/rdrand_sanitytest-bin-rdrand_sanitytest.o" + "test/rdcpu_sanitytest" => [ + "test/rdcpu_sanitytest-bin-rdcpu_sanitytest.o" ], - "test/rdrand_sanitytest-bin-rdrand_sanitytest.o" => [ - "test/rdrand_sanitytest.c" + "test/rdcpu_sanitytest-bin-rdcpu_sanitytest.o" => [ + "test/rdcpu_sanitytest.c" ], "test/recordlentest" => [ "test/helpers/recordlentest-bin-ssltestlib.o", @@ -27180,6 +32121,13 @@ our %unified_info = ( "test/recordlentest-bin-recordlentest.o" => [ "test/recordlentest.c" ], + "test/rpktest" => [ + "test/helpers/rpktest-bin-ssltestlib.o", + "test/rpktest-bin-rpktest.o" + ], + "test/rpktest-bin-rpktest.o" => [ + "test/rpktest.c" + ], "test/rsa_complex" => [ "test/rsa_complex-bin-rsa_complex.o" ], @@ -27204,6 +32152,18 @@ our %unified_info = ( "test/rsa_test-bin-rsa_test.o" => [ "test/rsa_test.c" ], + "test/rsa_x931_test" => [ + "test/rsa_x931_test-bin-rsa_x931_test.o" + ], + "test/rsa_x931_test-bin-rsa_x931_test.o" => [ + "test/rsa_x931_test.c" + ], + "test/safe_math_test" => [ + "test/safe_math_test-bin-safe_math_test.o" + ], + "test/safe_math_test-bin-safe_math_test.o" => [ + "test/safe_math_test.c" + ], "test/sanitytest" => [ "test/sanitytest-bin-sanitytest.o" ], @@ -27235,6 +32195,12 @@ our %unified_info = ( "test/siphash_internal_test-bin-siphash_internal_test.o" => [ "test/siphash_internal_test.c" ], + "test/slh_dsa_test" => [ + "test/slh_dsa_test-bin-slh_dsa_test.o" + ], + "test/slh_dsa_test-bin-slh_dsa_test.o" => [ + "test/slh_dsa_test.c" + ], "test/sm2_internal_test" => [ "test/sm2_internal_test-bin-sm2_internal_test.o" ], @@ -27277,6 +32243,13 @@ our %unified_info = ( "test/ssl_ctx_test-bin-ssl_ctx_test.o" => [ "test/ssl_ctx_test.c" ], + "test/ssl_handshake_rtt_test" => [ + "test/helpers/ssl_handshake_rtt_test-bin-ssltestlib.o", + "test/ssl_handshake_rtt_test-bin-ssl_handshake_rtt_test.o" + ], + "test/ssl_handshake_rtt_test-bin-ssl_handshake_rtt_test.o" => [ + "test/ssl_handshake_rtt_test.c" + ], "test/ssl_old_test" => [ "test/helpers/ssl_old_test-bin-predefined_dhparams.o", "test/ssl_old_test-bin-ssl_old_test.o" @@ -27335,6 +32308,12 @@ our %unified_info = ( "test/stack_test-bin-stack_test.o" => [ "test/stack_test.c" ], + "test/strtoultest" => [ + "test/strtoultest-bin-strtoultest.o" + ], + "test/strtoultest-bin-strtoultest.o" => [ + "test/strtoultest.c" + ], "test/sysdefaulttest" => [ "test/sysdefaulttest-bin-sysdefaulttest.o" ], @@ -27365,6 +32344,9 @@ our %unified_info = ( "test/testutil/libtestutil-lib-format_output.o" => [ "test/testutil/format_output.c" ], + "test/testutil/libtestutil-lib-helper.o" => [ + "test/testutil/helper.c" + ], "test/testutil/libtestutil-lib-load.o" => [ "test/testutil/load.c" ], @@ -27398,6 +32380,12 @@ our %unified_info = ( "test/testutil/libtestutil-lib-testutil_init.o" => [ "test/testutil/testutil_init.c" ], + "test/threadpool_test" => [ + "test/threadpool_test-bin-threadpool_test.o" + ], + "test/threadpool_test-bin-threadpool_test.o" => [ + "test/threadpool_test.c" + ], "test/threadstest" => [ "test/threadstest-bin-threadstest.o" ], @@ -27416,6 +32404,12 @@ our %unified_info = ( "test/time_offset_test-bin-time_offset_test.o" => [ "test/time_offset_test.c" ], + "test/time_test" => [ + "test/time_test-bin-time_test.o" + ], + "test/time_test-bin-time_test.o" => [ + "test/time_test.c" + ], "test/tls13ccstest" => [ "test/helpers/tls13ccstest-bin-ssltestlib.o", "test/tls13ccstest-bin-tls13ccstest.o" @@ -27429,6 +32423,13 @@ our %unified_info = ( "test/tls13encryptiontest-bin-tls13encryptiontest.o" => [ "test/tls13encryptiontest.c" ], + "test/tls13groupselection_test" => [ + "test/helpers/tls13groupselection_test-bin-ssltestlib.o", + "test/tls13groupselection_test-bin-tls13groupselection_test.o" + ], + "test/tls13groupselection_test-bin-tls13groupselection_test.o" => [ + "test/tls13groupselection_test.c" + ], "test/trace_api_test" => [ "test/trace_api_test-bin-trace_api_test.o" ], @@ -27484,6 +32485,12 @@ our %unified_info = ( "test/wpackettest-bin-wpackettest.o" => [ "test/wpackettest.c" ], + "test/x509_acert_test" => [ + "test/x509_acert_test-bin-x509_acert_test.o" + ], + "test/x509_acert_test-bin-x509_acert_test.o" => [ + "test/x509_acert_test.c" + ], "test/x509_check_cert_pkey_test" => [ "test/x509_check_cert_pkey_test-bin-x509_check_cert_pkey_test.o" ], @@ -27502,6 +32509,24 @@ our %unified_info = ( "test/x509_internal_test-bin-x509_internal_test.o" => [ "test/x509_internal_test.c" ], + "test/x509_load_cert_file_test" => [ + "test/x509_load_cert_file_test-bin-x509_load_cert_file_test.o" + ], + "test/x509_load_cert_file_test-bin-x509_load_cert_file_test.o" => [ + "test/x509_load_cert_file_test.c" + ], + "test/x509_req_test" => [ + "test/x509_req_test-bin-x509_req_test.o" + ], + "test/x509_req_test-bin-x509_req_test.o" => [ + "test/x509_req_test.c" + ], + "test/x509_test" => [ + "test/x509_test-bin-x509_test.o" + ], + "test/x509_test-bin-x509_test.o" => [ + "test/x509_test.c" + ], "test/x509_time_test" => [ "test/x509_time_test-bin-x509_time_test.o" ], @@ -27565,6 +32590,7 @@ my @makevars = ( "LDLIBS", "MT", "MTFLAGS", + "OBJCOPY", "PERL", "RANLIB", "RC", @@ -27578,6 +32604,12 @@ my %disabled_info = ( "asan" => { "macro" => "OPENSSL_NO_ASAN" }, + "brotli" => { + "macro" => "OPENSSL_NO_BROTLI" + }, + "brotli-dynamic" => { + "macro" => "OPENSSL_NO_BROTLI_DYNAMIC" + }, "comp" => { "macro" => "OPENSSL_NO_COMP", "skipped" => [ @@ -27590,6 +32622,9 @@ my %disabled_info = ( "crypto-mdebug-backtrace" => { "macro" => "OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE" }, + "demos" => { + "macro" => "OPENSSL_NO_DEMOS" + }, "devcryptoeng" => { "macro" => "OPENSSL_NO_DEVCRYPTOENG" }, @@ -27602,12 +32637,24 @@ my %disabled_info = ( "external-tests" => { "macro" => "OPENSSL_NO_EXTERNAL_TESTS" }, + "fips-jitter" => { + "macro" => "OPENSSL_NO_FIPS_JITTER" + }, "fuzz-afl" => { "macro" => "OPENSSL_NO_FUZZ_AFL" }, "fuzz-libfuzzer" => { "macro" => "OPENSSL_NO_FUZZ_LIBFUZZER" }, + "h3demo" => { + "macro" => "OPENSSL_NO_H3DEMO" + }, + "hqinterop" => { + "macro" => "OPENSSL_NO_HQINTEROP" + }, + "jitter" => { + "macro" => "OPENSSL_NO_JITTER" + }, "ktls" => { "macro" => "OPENSSL_NO_KTLS" }, @@ -27623,6 +32670,9 @@ my %disabled_info = ( "msan" => { "macro" => "OPENSSL_NO_MSAN" }, + "pie" => { + "macro" => "OPENSSL_NO_PIE" + }, "rc5" => { "macro" => "OPENSSL_NO_RC5", "skipped" => [ @@ -27638,6 +32688,12 @@ my %disabled_info = ( "ssl3-method" => { "macro" => "OPENSSL_NO_SSL3_METHOD" }, + "sslkeylog" => { + "macro" => "OPENSSL_NO_SSLKEYLOG" + }, + "tfo" => { + "macro" => "OPENSSL_NO_TFO" + }, "trace" => { "macro" => "OPENSSL_NO_TRACE" }, @@ -27652,6 +32708,21 @@ my %disabled_info = ( }, "weak-ssl-ciphers" => { "macro" => "OPENSSL_NO_WEAK_SSL_CIPHERS" + }, + "winstore" => { + "macro" => "OPENSSL_NO_WINSTORE" + }, + "zlib" => { + "macro" => "OPENSSL_NO_ZLIB" + }, + "zlib-dynamic" => { + "macro" => "OPENSSL_NO_ZLIB_DYNAMIC" + }, + "zstd" => { + "macro" => "OPENSSL_NO_ZSTD" + }, + "zstd-dynamic" => { + "macro" => "OPENSSL_NO_ZSTD_DYNAMIC" } ); my @user_crossable = qw( AR AS CC CXX CPP LD MT RANLIB RC ); @@ -27665,15 +32736,15 @@ unless (caller) { use File::Copy; use Pod::Usage; - use lib '/home/runner/work/node/node/deps/openssl/openssl/util/perl'; - use OpenSSL::fallback '/home/runner/work/node/node/deps/openssl/openssl/external/perl/MODULES.txt'; + use lib '/node/deps/openssl/openssl/util/perl'; + use OpenSSL::fallback '/node/deps/openssl/openssl/external/perl/MODULES.txt'; my $here = dirname($0); if (scalar @ARGV == 0) { # With no arguments, re-create the build file # We do that in two steps, where the first step emits perl - # snipets. + # snippets. my $buildfile = $config{build_file}; my $buildfile_template = "$buildfile.in"; @@ -27693,7 +32764,7 @@ unless (caller) { ); use lib '.'; - use lib '/home/runner/work/node/node/deps/openssl/openssl/Configurations'; + use lib '/node/deps/openssl/openssl/Configurations'; use gentemplate; open my $buildfile_template_fh, ">$buildfile_template" @@ -27710,8 +32781,8 @@ unless (caller) { my $prepend = <<'_____'; use File::Spec::Functions; -use lib '/home/runner/work/node/node/deps/openssl/openssl/util/perl'; -use lib '/home/runner/work/node/node/deps/openssl/openssl/Configurations'; +use lib '/node/deps/openssl/openssl/util/perl'; +use lib '/node/deps/openssl/openssl/Configurations'; use lib '.'; use platform; _____ diff --git a/deps/openssl/config/archs/linux-elf/asm_avx2/crypto/aes/aes-586.S b/deps/openssl/config/archs/linux-elf/asm_avx2/crypto/aes/aes-586.S index 628a3b6333e9d3..836db826ab2e81 100644 --- a/deps/openssl/config/archs/linux-elf/asm_avx2/crypto/aes/aes-586.S +++ b/deps/openssl/config/archs/linux-elf/asm_avx2/crypto/aes/aes-586.S @@ -3300,7 +3300,7 @@ AES_set_decrypt_key: .byte 65,69,83,32,102,111,114,32,120,56,54,44,32,67,82,89 .byte 80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114 .byte 111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 -.comm OPENSSL_ia32cap_P,16,4 +.comm OPENSSL_ia32cap_P,40,4 .section ".note.gnu.property", "a" .p2align 2 diff --git a/deps/openssl/config/archs/linux-elf/asm_avx2/crypto/aes/aesni-x86.S b/deps/openssl/config/archs/linux-elf/asm_avx2/crypto/aes/aesni-x86.S index 9191466ee47a31..72839d7825f4d3 100644 --- a/deps/openssl/config/archs/linux-elf/asm_avx2/crypto/aes/aesni-x86.S +++ b/deps/openssl/config/archs/linux-elf/asm_avx2/crypto/aes/aesni-x86.S @@ -3344,7 +3344,7 @@ aesni_set_decrypt_key: .byte 83,45,78,73,44,32,67,82,89,80,84,79,71,65,77,83 .byte 32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115 .byte 115,108,46,111,114,103,62,0 -.comm OPENSSL_ia32cap_P,16,4 +.comm OPENSSL_ia32cap_P,40,4 .section ".note.gnu.property", "a" .p2align 2 diff --git a/deps/openssl/config/archs/linux-elf/asm_avx2/crypto/bn/bn-586.S b/deps/openssl/config/archs/linux-elf/asm_avx2/crypto/bn/bn-586.S index 2495ae69451647..01b7ea4be98593 100644 --- a/deps/openssl/config/archs/linux-elf/asm_avx2/crypto/bn/bn-586.S +++ b/deps/openssl/config/archs/linux-elf/asm_avx2/crypto/bn/bn-586.S @@ -1561,7 +1561,7 @@ bn_sub_part_words: popl %ebp ret .size bn_sub_part_words,.-.L_bn_sub_part_words_begin -.comm OPENSSL_ia32cap_P,16,4 +.comm OPENSSL_ia32cap_P,40,4 .section ".note.gnu.property", "a" .p2align 2 diff --git a/deps/openssl/config/archs/linux-elf/asm_avx2/crypto/bn/x86-gf2m.S b/deps/openssl/config/archs/linux-elf/asm_avx2/crypto/bn/x86-gf2m.S index fcb54e967b4cbc..69a58ef7729a7d 100644 --- a/deps/openssl/config/archs/linux-elf/asm_avx2/crypto/bn/x86-gf2m.S +++ b/deps/openssl/config/archs/linux-elf/asm_avx2/crypto/bn/x86-gf2m.S @@ -357,7 +357,7 @@ bn_GF2m_mul_2x2: .byte 67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97 .byte 112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103 .byte 62,0 -.comm OPENSSL_ia32cap_P,16,4 +.comm OPENSSL_ia32cap_P,40,4 .section ".note.gnu.property", "a" .p2align 2 diff --git a/deps/openssl/config/archs/linux-elf/asm_avx2/crypto/bn/x86-mont.S b/deps/openssl/config/archs/linux-elf/asm_avx2/crypto/bn/x86-mont.S index 7dddbf7d87f1d8..4bc1ef9eb59055 100644 --- a/deps/openssl/config/archs/linux-elf/asm_avx2/crypto/bn/x86-mont.S +++ b/deps/openssl/config/archs/linux-elf/asm_avx2/crypto/bn/x86-mont.S @@ -477,7 +477,7 @@ bn_mul_mont: .byte 54,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121 .byte 32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46 .byte 111,114,103,62,0 -.comm OPENSSL_ia32cap_P,16,4 +.comm OPENSSL_ia32cap_P,40,4 .section ".note.gnu.property", "a" .p2align 2 diff --git a/deps/openssl/config/archs/linux-elf/asm_avx2/crypto/buildinf.h b/deps/openssl/config/archs/linux-elf/asm_avx2/crypto/buildinf.h index 2beeed686ee37d..9f2fe9bd334f9c 100644 --- a/deps/openssl/config/archs/linux-elf/asm_avx2/crypto/buildinf.h +++ b/deps/openssl/config/archs/linux-elf/asm_avx2/crypto/buildinf.h @@ -11,7 +11,7 @@ */ #define PLATFORM "platform: linux-elf" -#define DATE "built on: Sun Jul 20 00:50:19 2025 UTC" +#define DATE "built on: Sun Jul 27 00:52:04 2025 UTC" /* * Generate compiler_flags as an array of individual characters. This is a diff --git a/deps/openssl/config/archs/linux-elf/asm_avx2/crypto/chacha/chacha-x86.S b/deps/openssl/config/archs/linux-elf/asm_avx2/crypto/chacha/chacha-x86.S index 9cc4027c738002..f5d43cfee8da81 100644 --- a/deps/openssl/config/archs/linux-elf/asm_avx2/crypto/chacha/chacha-x86.S +++ b/deps/openssl/config/archs/linux-elf/asm_avx2/crypto/chacha/chacha-x86.S @@ -1457,7 +1457,7 @@ ChaCha20_xop: popl %ebp ret .size ChaCha20_xop,.-.L_ChaCha20_xop_begin -.comm OPENSSL_ia32cap_P,16,4 +.comm OPENSSL_ia32cap_P,40,4 .section ".note.gnu.property", "a" .p2align 2 diff --git a/deps/openssl/config/archs/linux-elf/asm_avx2/crypto/ec/ecp_nistz256-x86.S b/deps/openssl/config/archs/linux-elf/asm_avx2/crypto/ec/ecp_nistz256-x86.S index 4e17d5eb877efc..53a17f5783cc29 100644 --- a/deps/openssl/config/archs/linux-elf/asm_avx2/crypto/ec/ecp_nistz256-x86.S +++ b/deps/openssl/config/archs/linux-elf/asm_avx2/crypto/ec/ecp_nistz256-x86.S @@ -5270,7 +5270,7 @@ ecp_nistz256_point_add_affine: popl %ebp ret .size ecp_nistz256_point_add_affine,.-.L_ecp_nistz256_point_add_affine_begin -.comm OPENSSL_ia32cap_P,16,4 +.comm OPENSSL_ia32cap_P,40,4 .section ".note.gnu.property", "a" .p2align 2 diff --git a/deps/openssl/config/archs/linux-elf/asm_avx2/crypto/params_idx.c b/deps/openssl/config/archs/linux-elf/asm_avx2/crypto/params_idx.c new file mode 100644 index 00000000000000..9d76ffededc24c --- /dev/null +++ b/deps/openssl/config/archs/linux-elf/asm_avx2/crypto/params_idx.c @@ -0,0 +1,3366 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from crypto/params_idx.c.in + * + * Copyright 2023 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + +#include "internal/e_os.h" +#include "internal/param_names.h" +#include + +/* Machine generated TRIE -- generated by util/perl/OpenSSL/paramnames.pm */ +int ossl_param_find_pidx(const char *s) +{ + switch(s[0]) { + default: + break; + case 'a': + switch(s[1]) { + default: + break; + case 'c': + if (strcmp("vp-info", s + 2) == 0) + return PIDX_KDF_PARAM_X942_ACVPINFO; + break; + case 'd': + switch(s[2]) { + default: + break; + case 'd': + if (strcmp("itional-random", s + 3) == 0) + return PIDX_SIGNATURE_PARAM_ADD_RANDOM; + break; + case '\0': + return PIDX_KDF_PARAM_ARGON2_AD; + } + break; + case 'e': + if (strcmp("ad", s + 2) == 0) + return PIDX_CIPHER_PARAM_AEAD; + break; + case 'l': + switch(s[2]) { + default: + break; + case 'g': + switch(s[3]) { + default: + break; + case '_': + if (strcmp("id_param", s + 4) == 0) + return PIDX_CIPHER_PARAM_ALGORITHM_ID_PARAMS_OLD; + break; + case 'i': + if (strcmp("d-absent", s + 4) == 0) + return PIDX_DIGEST_PARAM_ALGID_ABSENT; + break; + case 'o': + switch(s[4]) { + default: + break; + case 'r': + switch(s[5]) { + default: + break; + case 'i': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case 'h': + switch(s[8]) { + default: + break; + case 'm': + switch(s[9]) { + default: + break; + case '-': + switch(s[10]) { + default: + break; + case 'i': + switch(s[11]) { + default: + break; + case 'd': + switch(s[12]) { + default: + break; + case '-': + if (strcmp("params", s + 13) == 0) + return PIDX_ALG_PARAM_ALGORITHM_ID_PARAMS; + break; + case '\0': + return PIDX_ALG_PARAM_ALGORITHM_ID; + } + } + } + } + } + } + } + } + } + } + break; + case 'i': + if (strcmp("as", s + 3) == 0) + return PIDX_STORE_PARAM_ALIAS; + } + break; + case '\0': + return PIDX_PKEY_PARAM_EC_A; + } + break; + case 'b': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("sis-type", s + 2) == 0) + return PIDX_PKEY_PARAM_EC_CHAR2_TYPE; + break; + case 'i': + if (strcmp("ts", s + 2) == 0) + return PIDX_PKEY_PARAM_BITS; + break; + case 'l': + switch(s[2]) { + default: + break; + case 'o': + switch(s[3]) { + default: + break; + case 'c': + switch(s[4]) { + default: + break; + case 'k': + switch(s[5]) { + default: + break; + case '-': + if (strcmp("size", s + 6) == 0) + return PIDX_MAC_PARAM_BLOCK_SIZE; + break; + case '_': + if (strcmp("padding", s + 6) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_BLOCK_PADDING; + break; + case 's': + if (strcmp("ize", s + 6) == 0) + return PIDX_DIGEST_PARAM_BLOCK_SIZE; + } + } + } + } + break; + case 'u': + if (strcmp("ildinfo", s + 2) == 0) + return PIDX_PROV_PARAM_BUILDINFO; + break; + case '\0': + return PIDX_PKEY_PARAM_EC_B; + } + break; + case 'c': + switch(s[1]) { + default: + break; + case '-': + if (strcmp("rounds", s + 2) == 0) + return PIDX_MAC_PARAM_C_ROUNDS; + break; + case 'e': + if (strcmp("kalg", s + 2) == 0) + return PIDX_KDF_PARAM_CEK_ALG; + break; + case 'i': + if (strcmp("pher", s + 2) == 0) + return PIDX_ALG_PARAM_CIPHER; + break; + case 'o': + switch(s[2]) { + default: + break; + case 'f': + if (strcmp("actor", s + 3) == 0) + return PIDX_PKEY_PARAM_EC_COFACTOR; + break; + case 'n': + switch(s[3]) { + default: + break; + case 's': + if (strcmp("tant", s + 4) == 0) + return PIDX_KDF_PARAM_CONSTANT; + break; + case 't': + if (strcmp("ext-string", s + 4) == 0) + return PIDX_SIGNATURE_PARAM_CONTEXT_STRING; + } + } + break; + case 't': + switch(s[2]) { + default: + break; + case 's': + switch(s[3]) { + default: + break; + case '_': + if (strcmp("mode", s + 4) == 0) + return PIDX_CIPHER_PARAM_CTS_MODE; + break; + case '\0': + return PIDX_CIPHER_PARAM_CTS; + } + } + break; + case 'u': + switch(s[2]) { + default: + break; + case 's': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case 'o': + switch(s[5]) { + default: + break; + case 'm': + switch(s[6]) { + default: + break; + case '-': + if (strcmp("iv", s + 7) == 0) + return PIDX_CIPHER_PARAM_CUSTOM_IV; + break; + case '\0': + return PIDX_MAC_PARAM_CUSTOM; + } + } + } + } + } + } + break; + case 'd': + switch(s[1]) { + default: + break; + case '-': + if (strcmp("rounds", s + 2) == 0) + return PIDX_MAC_PARAM_D_ROUNDS; + break; + case 'a': + switch(s[2]) { + default: + break; + case 't': + switch(s[3]) { + default: + break; + case 'a': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 's': + if (strcmp("tructure", s + 6) == 0) + return PIDX_OBJECT_PARAM_DATA_STRUCTURE; + break; + case 't': + if (strcmp("ype", s + 6) == 0) + return PIDX_OBJECT_PARAM_DATA_TYPE; + } + break; + case '\0': + return PIDX_OBJECT_PARAM_DATA; + } + } + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'c': + switch(s[3]) { + default: + break; + case 'o': + if (strcmp("ded-from-explicit", s + 4) == 0) + return PIDX_PKEY_PARAM_EC_DECODED_FROM_EXPLICIT_PARAMS; + break; + case 'r': + if (strcmp("ypt-only", s + 4) == 0) + return PIDX_CIPHER_PARAM_DECRYPT_ONLY; + } + break; + case 'f': + if (strcmp("ault-digest", s + 3) == 0) + return PIDX_PKEY_PARAM_DEFAULT_DIGEST; + break; + case 's': + if (strcmp("c", s + 3) == 0) + return PIDX_OBJECT_PARAM_DESC; + break; + case 't': + if (strcmp("erministic", s + 3) == 0) + return PIDX_SIGNATURE_PARAM_DETERMINISTIC; + } + break; + case 'h': + if (strcmp("kem-ikm", s + 2) == 0) + return PIDX_PKEY_PARAM_DHKEM_IKM; + break; + case 'i': + switch(s[2]) { + default: + break; + case 'g': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case 's': + switch(s[5]) { + default: + break; + case 't': + switch(s[6]) { + default: + break; + case '-': + switch(s[7]) { + default: + break; + case 'c': + if (strcmp("heck", s + 8) == 0) + return PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK; + break; + case 'n': + if (strcmp("oinit", s + 8) == 0) + return PIDX_MAC_PARAM_DIGEST_NOINIT; + break; + case 'o': + if (strcmp("neshot", s + 8) == 0) + return PIDX_MAC_PARAM_DIGEST_ONESHOT; + break; + case 'p': + if (strcmp("rops", s + 8) == 0) + return PIDX_ASYM_CIPHER_PARAM_OAEP_DIGEST_PROPS; + break; + case 's': + if (strcmp("ize", s + 8) == 0) + return PIDX_PKEY_PARAM_DIGEST_SIZE; + } + break; + case '\0': + return PIDX_STORE_PARAM_DIGEST; + } + } + } + } + break; + case 's': + if (strcmp("tid", s + 3) == 0) + return PIDX_PKEY_PARAM_DIST_ID; + } + break; + case 'r': + if (strcmp("bg-no-trunc-md", s + 2) == 0) + return PIDX_PROV_PARAM_DRBG_TRUNC_DIGEST; + break; + case 's': + if (strcmp("a-sign-disabled", s + 2) == 0) + return PIDX_PROV_PARAM_DSA_SIGN_DISABLED; + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_D; + } + break; + case 'e': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("rly_clean", s + 2) == 0) + return PIDX_KDF_PARAM_EARLY_CLEAN; + break; + case 'c': + switch(s[2]) { + default: + break; + case 'd': + switch(s[3]) { + default: + break; + case 'h': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'c': + switch(s[6]) { + default: + break; + case 'o': + switch(s[7]) { + default: + break; + case 'f': + switch(s[8]) { + default: + break; + case 'a': + switch(s[9]) { + default: + break; + case 'c': + switch(s[10]) { + default: + break; + case 't': + switch(s[11]) { + default: + break; + case 'o': + switch(s[12]) { + default: + break; + case 'r': + switch(s[13]) { + default: + break; + case '-': + switch(s[14]) { + default: + break; + case 'c': + if (strcmp("heck", s + 15) == 0) + return PIDX_PROV_PARAM_ECDH_COFACTOR_CHECK; + break; + case 'm': + if (strcmp("ode", s + 15) == 0) + return PIDX_EXCHANGE_PARAM_EC_ECDH_COFACTOR_MODE; + } + } + } + } + } + } + } + } + } + } + } + } + } + break; + case 'm': + if (strcmp("s_check", s + 2) == 0) + return PIDX_KDF_PARAM_FIPS_EMS_CHECK; + break; + case 'n': + switch(s[2]) { + default: + break; + case 'c': + switch(s[3]) { + default: + break; + case 'o': + switch(s[4]) { + default: + break; + case 'd': + switch(s[5]) { + default: + break; + case 'e': + if (strcmp("d-pub-key", s + 6) == 0) + return PIDX_PKEY_PARAM_ENCODED_PUBLIC_KEY; + break; + case 'i': + if (strcmp("ng", s + 6) == 0) + return PIDX_PKEY_PARAM_EC_ENCODING; + } + } + break; + case 'r': + switch(s[4]) { + default: + break; + case 'y': + switch(s[5]) { + default: + break; + case 'p': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case '-': + switch(s[8]) { + default: + break; + case 'c': + if (strcmp("heck", s + 9) == 0) + return PIDX_CIPHER_PARAM_FIPS_ENCRYPT_CHECK; + break; + case 'l': + if (strcmp("evel", s + 9) == 0) + return PIDX_ENCODER_PARAM_ENCRYPT_LEVEL; + } + } + } + } + } + } + break; + case 'g': + if (strcmp("ine", s + 3) == 0) + return PIDX_ALG_PARAM_ENGINE; + break; + case 't': + switch(s[3]) { + default: + break; + case 'r': + switch(s[4]) { + default: + break; + case 'o': + switch(s[5]) { + default: + break; + case 'p': + switch(s[6]) { + default: + break; + case 'y': + switch(s[7]) { + default: + break; + case '_': + if (strcmp("required", s + 8) == 0) + return PIDX_DRBG_PARAM_ENTROPY_REQUIRED; + break; + case '\0': + return PIDX_KDF_PARAM_HMACDRBG_ENTROPY; + } + } + } + } + } + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_E; + break; + case 'x': + if (strcmp("pect", s + 2) == 0) + return PIDX_STORE_PARAM_EXPECT; + } + break; + case 'f': + switch(s[1]) { + default: + break; + case 'i': + switch(s[2]) { + default: + break; + case 'e': + if (strcmp("ld-type", s + 3) == 0) + return PIDX_PKEY_PARAM_EC_FIELD_TYPE; + break; + case 'n': + if (strcmp("gerprint", s + 3) == 0) + return PIDX_STORE_PARAM_FINGERPRINT; + break; + case 'p': + if (strcmp("s-indicator", s + 3) == 0) + return PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR; + } + } + break; + case 'g': + switch(s[1]) { + default: + break; + case 'e': + switch(s[2]) { + default: + break; + case 'n': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case 'r': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case 'e': + switch(s[8]) { + default: + break; + case '\0': + return PIDX_RAND_PARAM_GENERATE; + } + break; + case 'o': + if (strcmp("r", s + 8) == 0) + return PIDX_PKEY_PARAM_EC_GENERATOR; + } + } + } + } + } + } + break; + case 'i': + if (strcmp("ndex", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_GINDEX; + break; + case 'r': + switch(s[2]) { + default: + break; + case 'o': + switch(s[3]) { + default: + break; + case 'u': + switch(s[4]) { + default: + break; + case 'p': + switch(s[5]) { + default: + break; + case '-': + if (strcmp("check", s + 6) == 0) + return PIDX_PKEY_PARAM_EC_GROUP_CHECK_TYPE; + break; + case '\0': + return PIDX_PKEY_PARAM_GROUP_NAME; + } + } + } + } + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_G; + } + break; + case 'h': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("s-randkey", s + 2) == 0) + return PIDX_CIPHER_PARAM_HAS_RAND_KEY; + break; + case 'i': + if (strcmp("ndex", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_H; + break; + case 'k': + switch(s[2]) { + default: + break; + case 'd': + switch(s[3]) { + default: + break; + case 'f': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 6) == 0) + return PIDX_PROV_PARAM_HKDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 6) == 0) + return PIDX_PROV_PARAM_HKDF_KEY_CHECK; + } + } + } + } + break; + case 'm': + if (strcmp("ac-key-check", s + 2) == 0) + return PIDX_PROV_PARAM_HMAC_KEY_CHECK; + break; + case 's': + if (strcmp("_padding", s + 2) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_HS_PADDING; + } + break; + case 'i': + switch(s[1]) { + default: + break; + case 'd': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_KDF_PARAM_PKCS12_ID; + } + break; + case 'k': + if (strcmp("me", s + 2) == 0) + return PIDX_KEM_PARAM_IKME; + break; + case 'm': + if (strcmp("plicit-rejection", s + 2) == 0) + return PIDX_PKEY_PARAM_IMPLICIT_REJECTION; + break; + case 'n': + switch(s[2]) { + default: + break; + case 'c': + if (strcmp("lude-public", s + 3) == 0) + return PIDX_PKEY_PARAM_EC_INCLUDE_PUBLIC; + break; + case 'f': + if (strcmp("o", s + 3) == 0) + return PIDX_PASSPHRASE_PARAM_INFO; + break; + case 'p': + if (strcmp("ut-type", s + 3) == 0) + return PIDX_STORE_PARAM_INPUT_TYPE; + break; + case 's': + if (strcmp("tance", s + 3) == 0) + return PIDX_SIGNATURE_PARAM_INSTANCE; + } + break; + case 't': + switch(s[2]) { + default: + break; + case 'e': + switch(s[3]) { + default: + break; + case 'r': + switch(s[4]) { + default: + break; + case 'a': + if (strcmp("tion", s + 5) == 0) + return PIDX_GEN_PARAM_ITERATION; + break; + case '\0': + return PIDX_KDF_PARAM_ITER; + } + } + } + break; + case 'v': + switch(s[2]) { + default: + break; + case '-': + if (strcmp("generated", s + 3) == 0) + return PIDX_CIPHER_PARAM_AEAD_IV_GENERATED; + break; + case 'l': + if (strcmp("en", s + 3) == 0) + return PIDX_CIPHER_PARAM_IVLEN; + break; + case '\0': + return PIDX_MAC_PARAM_IV; + } + } + break; + case 'j': + switch(s[1]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_COFACTOR; + } + break; + case 'k': + switch(s[1]) { + default: + break; + case '1': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_PP_K1; + } + break; + case '2': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_PP_K2; + } + break; + case '3': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_PP_K3; + } + break; + case 'a': + if (strcmp("t", s + 2) == 0) + return PIDX_SIGNATURE_PARAM_KAT; + break; + case 'b': + if (strcmp("kdf-key-check", s + 2) == 0) + return PIDX_PROV_PARAM_KBKDF_KEY_CHECK; + break; + case 'd': + switch(s[2]) { + default: + break; + case 'f': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'd': + switch(s[5]) { + default: + break; + case 'i': + switch(s[6]) { + default: + break; + case 'g': + switch(s[7]) { + default: + break; + case 'e': + switch(s[8]) { + default: + break; + case 's': + switch(s[9]) { + default: + break; + case 't': + switch(s[10]) { + default: + break; + case '-': + if (strcmp("props", s + 11) == 0) + return PIDX_EXCHANGE_PARAM_KDF_DIGEST_PROPS; + break; + case '\0': + return PIDX_EXCHANGE_PARAM_KDF_DIGEST; + } + } + } + } + } + } + break; + case 'o': + if (strcmp("utlen", s + 5) == 0) + return PIDX_EXCHANGE_PARAM_KDF_OUTLEN; + break; + case 't': + if (strcmp("ype", s + 5) == 0) + return PIDX_EXCHANGE_PARAM_KDF_TYPE; + break; + case 'u': + if (strcmp("km", s + 5) == 0) + return PIDX_EXCHANGE_PARAM_KDF_UKM; + } + } + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'y': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'c': + if (strcmp("heck", s + 5) == 0) + return PIDX_PKEY_PARAM_FIPS_KEY_CHECK; + break; + case 'l': + if (strcmp("ength", s + 5) == 0) + return PIDX_SKEY_PARAM_KEY_LENGTH; + } + break; + case 'b': + if (strcmp("its", s + 4) == 0) + return PIDX_CIPHER_PARAM_RC2_KEYBITS; + break; + case 'l': + if (strcmp("en", s + 4) == 0) + return PIDX_CIPHER_PARAM_KEYLEN; + break; + case '\0': + return PIDX_MAC_PARAM_KEY; + } + } + break; + case 'm': + if (strcmp("ac-key-check", s + 2) == 0) + return PIDX_PROV_PARAM_KMAC_KEY_CHECK; + } + break; + case 'l': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'b': + if (strcmp("el", s + 3) == 0) + return PIDX_KDF_PARAM_LABEL; + break; + case 'n': + if (strcmp("es", s + 3) == 0) + return PIDX_KDF_PARAM_ARGON2_LANES; + } + } + break; + case 'm': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'c': + switch(s[3]) { + default: + break; + case 'k': + if (strcmp("ey", s + 4) == 0) + return PIDX_CIPHER_PARAM_AEAD_MAC_KEY; + break; + case 'l': + if (strcmp("en", s + 4) == 0) + return PIDX_KDF_PARAM_MAC_SIZE; + break; + case '\0': + return PIDX_ALG_PARAM_MAC; + } + break; + case 'n': + if (strcmp("datory-digest", s + 3) == 0) + return PIDX_PKEY_PARAM_MANDATORY_DIGEST; + break; + case 'x': + switch(s[3]) { + default: + break; + case '-': + if (strcmp("size", s + 4) == 0) + return PIDX_PKEY_PARAM_MAX_SIZE; + break; + case '_': + switch(s[4]) { + default: + break; + case 'a': + if (strcmp("dinlen", s + 5) == 0) + return PIDX_DRBG_PARAM_MAX_ADINLEN; + break; + case 'e': + switch(s[5]) { + default: + break; + case 'a': + if (strcmp("rly_data", s + 6) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_MAX_EARLY_DATA; + break; + case 'n': + if (strcmp("tropylen", s + 6) == 0) + return PIDX_DRBG_PARAM_MAX_ENTROPYLEN; + } + break; + case 'f': + if (strcmp("rag_len", s + 5) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_MAX_FRAG_LEN; + break; + case 'n': + if (strcmp("oncelen", s + 5) == 0) + return PIDX_DRBG_PARAM_MAX_NONCELEN; + break; + case 'p': + if (strcmp("erslen", s + 5) == 0) + return PIDX_DRBG_PARAM_MAX_PERSLEN; + break; + case 'r': + if (strcmp("equest", s + 5) == 0) + return PIDX_RAND_PARAM_MAX_REQUEST; + } + break; + case 'i': + if (strcmp("um_length", s + 4) == 0) + return PIDX_DRBG_PARAM_MAX_LENGTH; + break; + case 'm': + if (strcmp("em_bytes", s + 4) == 0) + return PIDX_KDF_PARAM_SCRYPT_MAXMEM; + } + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'm': + if (strcmp("cost", s + 3) == 0) + return PIDX_KDF_PARAM_ARGON2_MEMCOST; + break; + case 's': + if (strcmp("sage-encoding", s + 3) == 0) + return PIDX_SIGNATURE_PARAM_MESSAGE_ENCODING; + } + break; + case 'g': + switch(s[2]) { + default: + break; + case 'f': + switch(s[3]) { + default: + break; + case '1': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'd': + if (strcmp("igest", s + 6) == 0) + return PIDX_PKEY_PARAM_MGF1_DIGEST; + break; + case 'p': + if (strcmp("roperties", s + 6) == 0) + return PIDX_PKEY_PARAM_MGF1_PROPERTIES; + } + } + break; + case '\0': + return PIDX_PKEY_PARAM_MASKGENFUNC; + } + } + break; + case 'i': + switch(s[2]) { + default: + break; + case 'c': + if (strcmp("alg", s + 3) == 0) + return PIDX_DIGEST_PARAM_MICALG; + break; + case 'n': + switch(s[3]) { + default: + break; + case '_': + switch(s[4]) { + default: + break; + case 'e': + if (strcmp("ntropylen", s + 5) == 0) + return PIDX_DRBG_PARAM_MIN_ENTROPYLEN; + break; + case 'n': + if (strcmp("oncelen", s + 5) == 0) + return PIDX_DRBG_PARAM_MIN_NONCELEN; + } + break; + case 'i': + if (strcmp("um_length", s + 4) == 0) + return PIDX_DRBG_PARAM_MIN_LENGTH; + } + } + break; + case 'l': + switch(s[2]) { + default: + break; + case '-': + switch(s[3]) { + default: + break; + case 'd': + switch(s[4]) { + default: + break; + case 's': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case '.': + switch(s[7]) { + default: + break; + case 'i': + if (strcmp("nput_formats", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_DSA_INPUT_FORMATS; + break; + case 'o': + if (strcmp("utput_formats", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_DSA_OUTPUT_FORMATS; + break; + case 'p': + if (strcmp("refer_seed", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_DSA_PREFER_SEED; + break; + case 'r': + if (strcmp("etain_seed", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_DSA_RETAIN_SEED; + } + } + } + } + break; + case 'k': + switch(s[4]) { + default: + break; + case 'e': + switch(s[5]) { + default: + break; + case 'm': + switch(s[6]) { + default: + break; + case '.': + switch(s[7]) { + default: + break; + case 'i': + switch(s[8]) { + default: + break; + case 'm': + if (strcmp("port_pct_type", s + 9) == 0) + return PIDX_PKEY_PARAM_ML_KEM_IMPORT_PCT_TYPE; + break; + case 'n': + if (strcmp("put_formats", s + 9) == 0) + return PIDX_PKEY_PARAM_ML_KEM_INPUT_FORMATS; + } + break; + case 'o': + if (strcmp("utput_formats", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_KEM_OUTPUT_FORMATS; + break; + case 'p': + if (strcmp("refer_seed", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_KEM_PREFER_SEED; + break; + case 'r': + if (strcmp("etain_seed", s + 8) == 0) + return PIDX_PKEY_PARAM_ML_KEM_RETAIN_SEED; + } + } + } + } + } + } + break; + case 'o': + switch(s[2]) { + default: + break; + case 'd': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case '\0': + return PIDX_LIBSSL_RECORD_LAYER_PARAM_MODE; + } + break; + case 'u': + if (strcmp("le-filename", s + 4) == 0) + return PIDX_PROV_PARAM_CORE_MODULE_FILENAME; + } + } + break; + case 'u': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_SIGNATURE_PARAM_MU; + } + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_M; + } + break; + case 'n': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("me", s + 2) == 0) + return PIDX_STORE_PARAM_ISSUER; + break; + case 'o': + switch(s[2]) { + default: + break; + case '-': + if (strcmp("short-mac", s + 3) == 0) + return PIDX_PROV_PARAM_NO_SHORT_MAC; + break; + case 'n': + switch(s[3]) { + default: + break; + case 'c': + switch(s[4]) { + default: + break; + case 'e': + switch(s[5]) { + default: + break; + case '-': + if (strcmp("type", s + 6) == 0) + return PIDX_SIGNATURE_PARAM_NONCE_TYPE; + break; + case '\0': + return PIDX_KDF_PARAM_HMACDRBG_NONCE; + } + } + } + } + break; + case 'u': + if (strcmp("m", s + 2) == 0) + return PIDX_CIPHER_PARAM_NUM; + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_N; + } + break; + case 'o': + switch(s[1]) { + default: + break; + case 'a': + if (strcmp("ep-label", s + 2) == 0) + return PIDX_ASYM_CIPHER_PARAM_OAEP_LABEL; + break; + case 'p': + switch(s[2]) { + default: + break; + case 'e': + switch(s[3]) { + default: + break; + case 'n': + if (strcmp("ssl-version", s + 4) == 0) + return PIDX_PROV_PARAM_CORE_VERSION; + break; + case 'r': + if (strcmp("ation", s + 4) == 0) + return PIDX_KEM_PARAM_OPERATION; + } + break; + case 't': + if (strcmp("ions", s + 3) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_OPTIONS; + } + break; + case 'r': + if (strcmp("der", s + 2) == 0) + return PIDX_PKEY_PARAM_EC_ORDER; + } + break; + case 'p': + switch(s[1]) { + default: + break; + case '1': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_P1; + } + break; + case '2': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_P2; + } + break; + case 'a': + switch(s[2]) { + default: + break; + case 'd': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'm': + if (strcmp("ode", s + 5) == 0) + return PIDX_PKEY_PARAM_PAD_MODE; + break; + case 't': + if (strcmp("ype", s + 5) == 0) + return PIDX_DIGEST_PARAM_PAD_TYPE; + } + break; + case 'd': + if (strcmp("ing", s + 4) == 0) + return PIDX_CIPHER_PARAM_PADDING; + break; + case '\0': + return PIDX_EXCHANGE_PARAM_PAD; + } + break; + case 'r': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case 'y': + switch(s[5]) { + default: + break; + case 'u': + if (strcmp("-info", s + 6) == 0) + return PIDX_KDF_PARAM_X942_PARTYUINFO; + break; + case 'v': + if (strcmp("-info", s + 6) == 0) + return PIDX_KDF_PARAM_X942_PARTYVINFO; + } + } + } + break; + case 's': + if (strcmp("s", s + 3) == 0) + return PIDX_KDF_PARAM_PASSWORD; + } + break; + case 'b': + switch(s[2]) { + default: + break; + case 'i': + if (strcmp("ts", s + 3) == 0) + return PIDX_PKEY_PARAM_FFC_PBITS; + break; + case 'k': + if (strcmp("df2-lower-bound-check", s + 3) == 0) + return PIDX_PROV_PARAM_PBKDF2_LOWER_BOUND_CHECK; + } + break; + case 'c': + if (strcmp("ounter", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_PCOUNTER; + break; + case 'i': + if (strcmp("peline-tag", s + 2) == 0) + return PIDX_CIPHER_PARAM_PIPELINE_AEAD_TAG; + break; + case 'k': + if (strcmp("cs5", s + 2) == 0) + return PIDX_KDF_PARAM_PKCS5; + break; + case 'o': + switch(s[2]) { + default: + break; + case 'i': + if (strcmp("nt-format", s + 3) == 0) + return PIDX_PKEY_PARAM_EC_POINT_CONVERSION_FORMAT; + break; + case 't': + if (strcmp("ential", s + 3) == 0) + return PIDX_GEN_PARAM_POTENTIAL; + } + break; + case 'r': + switch(s[2]) { + default: + break; + case 'e': + switch(s[3]) { + default: + break; + case 'd': + if (strcmp("iction_resistance", s + 4) == 0) + return PIDX_DRBG_PARAM_PREDICTION_RESISTANCE; + break; + case 'f': + if (strcmp("ix", s + 4) == 0) + return PIDX_KDF_PARAM_PREFIX; + } + break; + case 'i': + switch(s[3]) { + default: + break; + case 'm': + if (strcmp("es", s + 4) == 0) + return PIDX_PKEY_PARAM_RSA_PRIMES; + break; + case 'v': + switch(s[4]) { + default: + break; + case '_': + if (strcmp("len", s + 5) == 0) + return PIDX_PKEY_PARAM_DH_PRIV_LEN; + break; + case '\0': + return PIDX_PKEY_PARAM_PRIV_KEY; + } + } + break; + case 'o': + switch(s[3]) { + default: + break; + case 'p': + if (strcmp("erties", s + 4) == 0) + return PIDX_STORE_PARAM_PROPERTIES; + break; + case 'v': + if (strcmp("ider-name", s + 4) == 0) + return PIDX_PROV_PARAM_CORE_PROV_NAME; + } + } + break; + case 'u': + if (strcmp("b", s + 2) == 0) + return PIDX_PKEY_PARAM_PUB_KEY; + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_P; + } + break; + case 'q': + switch(s[1]) { + default: + break; + case '1': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_Q1; + } + break; + case '2': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_Q2; + } + break; + case 'b': + if (strcmp("its", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_QBITS; + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_Q; + break; + case 'x': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_PUB_X; + } + break; + case 'y': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_PUB_Y; + } + } + break; + case 'r': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'n': + switch(s[3]) { + default: + break; + case 'd': + switch(s[4]) { + default: + break; + case 'k': + if (strcmp("ey", s + 5) == 0) + return PIDX_CIPHER_PARAM_RANDOM_KEY; + break; + case 'o': + if (strcmp("m_data", s + 5) == 0) + return PIDX_DRBG_PARAM_RANDOM_DATA; + } + } + break; + case 'w': + if (strcmp("-bytes", s + 3) == 0) + return PIDX_SKEY_PARAM_RAW_BYTES; + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'a': + switch(s[3]) { + default: + break; + case 'd': + switch(s[4]) { + default: + break; + case '_': + switch(s[5]) { + default: + break; + case 'a': + if (strcmp("head", s + 6) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_READ_AHEAD; + break; + case 'b': + if (strcmp("uffer_len", s + 6) == 0) + return PIDX_LIBSSL_RECORD_LAYER_READ_BUFFER_LEN; + } + } + } + break; + case 'f': + if (strcmp("erence", s + 3) == 0) + return PIDX_OBJECT_PARAM_REFERENCE; + break; + case 's': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case 'e': + switch(s[5]) { + default: + break; + case 'd': + switch(s[6]) { + default: + break; + case '_': + switch(s[7]) { + default: + break; + case 'c': + if (strcmp("ounter", s + 8) == 0) + return PIDX_DRBG_PARAM_RESEED_COUNTER; + break; + case 'r': + if (strcmp("equests", s + 8) == 0) + return PIDX_DRBG_PARAM_RESEED_REQUESTS; + break; + case 't': + switch(s[8]) { + default: + break; + case 'i': + switch(s[9]) { + default: + break; + case 'm': + switch(s[10]) { + default: + break; + case 'e': + switch(s[11]) { + default: + break; + case '_': + if (strcmp("interval", s + 12) == 0) + return PIDX_DRBG_PARAM_RESEED_TIME_INTERVAL; + break; + case '\0': + return PIDX_DRBG_PARAM_RESEED_TIME; + } + } + } + } + } + } + } + } + } + } + break; + case 'o': + if (strcmp("unds", s + 2) == 0) + return PIDX_CIPHER_PARAM_ROUNDS; + break; + case 's': + switch(s[2]) { + default: + break; + case 'a': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'c': + switch(s[5]) { + default: + break; + case 'o': + switch(s[6]) { + default: + break; + case 'e': + switch(s[7]) { + default: + break; + case 'f': + switch(s[8]) { + default: + break; + case 'f': + switch(s[9]) { + default: + break; + case 'i': + switch(s[10]) { + default: + break; + case 'c': + switch(s[11]) { + default: + break; + case 'i': + switch(s[12]) { + default: + break; + case 'e': + switch(s[13]) { + default: + break; + case 'n': + switch(s[14]) { + default: + break; + case 't': + switch(s[15]) { + default: + break; + case '1': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT1; + } + break; + case '2': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT2; + } + break; + case '3': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT3; + } + break; + case '4': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT4; + } + break; + case '5': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT5; + } + break; + case '6': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT6; + } + break; + case '7': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT7; + } + break; + case '8': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT8; + } + break; + case '9': + switch(s[16]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT9; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_COEFFICIENT; + } + } + } + } + } + } + } + } + } + } + } + break; + case 'd': + if (strcmp("erive-from-pq", s + 5) == 0) + return PIDX_PKEY_PARAM_RSA_DERIVE_FROM_PQ; + break; + case 'e': + switch(s[5]) { + default: + break; + case 'x': + switch(s[6]) { + default: + break; + case 'p': + switch(s[7]) { + default: + break; + case 'o': + switch(s[8]) { + default: + break; + case 'n': + switch(s[9]) { + default: + break; + case 'e': + switch(s[10]) { + default: + break; + case 'n': + switch(s[11]) { + default: + break; + case 't': + switch(s[12]) { + default: + break; + case '1': + switch(s[13]) { + default: + break; + case '0': + switch(s[14]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT10; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT1; + } + break; + case '2': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT2; + } + break; + case '3': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT3; + } + break; + case '4': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT4; + } + break; + case '5': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT5; + } + break; + case '6': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT6; + } + break; + case '7': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT7; + } + break; + case '8': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT8; + } + break; + case '9': + switch(s[13]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT9; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_EXPONENT; + } + } + } + } + } + } + } + } + break; + case 'f': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case 'c': + switch(s[7]) { + default: + break; + case 't': + switch(s[8]) { + default: + break; + case 'o': + switch(s[9]) { + default: + break; + case 'r': + switch(s[10]) { + default: + break; + case '1': + switch(s[11]) { + default: + break; + case '0': + switch(s[12]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR10; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR1; + } + break; + case '2': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR2; + } + break; + case '3': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR3; + } + break; + case '4': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR4; + } + break; + case '5': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR5; + } + break; + case '6': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR6; + } + break; + case '7': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR7; + } + break; + case '8': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR8; + } + break; + case '9': + switch(s[11]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR9; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_FACTOR; + } + } + } + } + } + } + break; + case 'p': + switch(s[5]) { + default: + break; + case 'k': + if (strcmp("cs15-pad-disabled", s + 6) == 0) + return PIDX_PROV_PARAM_RSA_PKCS15_PAD_DISABLED; + break; + case 's': + if (strcmp("s-saltlen-check", s + 6) == 0) + return PIDX_SIGNATURE_PARAM_FIPS_RSA_PSS_SALTLEN_CHECK; + } + break; + case 's': + if (strcmp("ign-x931-pad-disabled", s + 5) == 0) + return PIDX_PROV_PARAM_RSA_SIGN_X931_PAD_DISABLED; + } + } + } + break; + case '\0': + return PIDX_KDF_PARAM_SCRYPT_R; + } + break; + case 's': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'f': + if (strcmp("eprime-generator", s + 3) == 0) + return PIDX_PKEY_PARAM_DH_GENERATOR; + break; + case 'l': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case 'l': + if (strcmp("en", s + 5) == 0) + return PIDX_SIGNATURE_PARAM_PSS_SALTLEN; + break; + case '\0': + return PIDX_MAC_PARAM_SALT; + } + } + break; + case 'v': + if (strcmp("e-parameters", s + 3) == 0) + return PIDX_ENCODER_PARAM_SAVE_PARAMETERS; + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'c': + switch(s[3]) { + default: + break; + case 'r': + if (strcmp("et", s + 4) == 0) + return PIDX_KDF_PARAM_SECRET; + break; + case 'u': + switch(s[4]) { + default: + break; + case 'r': + switch(s[5]) { + default: + break; + case 'i': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case 'y': + switch(s[8]) { + default: + break; + case '-': + switch(s[9]) { + default: + break; + case 'b': + if (strcmp("its", s + 10) == 0) + return PIDX_PKEY_PARAM_SECURITY_BITS; + break; + case 'c': + if (strcmp("hecks", s + 10) == 0) + return PIDX_PROV_PARAM_SECURITY_CHECKS; + } + } + } + } + } + } + } + break; + case 'e': + if (strcmp("d", s + 3) == 0) + return PIDX_PKEY_PARAM_SLH_DSA_SEED; + break; + case 'r': + if (strcmp("ial", s + 3) == 0) + return PIDX_STORE_PARAM_SERIAL; + break; + case 's': + if (strcmp("sion_id", s + 3) == 0) + return PIDX_KDF_PARAM_SSHKDF_SESSION_ID; + } + break; + case 'i': + switch(s[2]) { + default: + break; + case 'g': + switch(s[3]) { + default: + break; + case 'n': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'c': + if (strcmp("heck", s + 6) == 0) + return PIDX_PKEY_PARAM_FIPS_SIGN_CHECK; + break; + case 'x': + if (strcmp("931-pad-check", s + 6) == 0) + return PIDX_SIGNATURE_PARAM_FIPS_SIGN_X931_PAD_CHECK; + } + break; + case 'a': + switch(s[5]) { + default: + break; + case 't': + switch(s[6]) { + default: + break; + case 'u': + switch(s[7]) { + default: + break; + case 'r': + switch(s[8]) { + default: + break; + case 'e': + switch(s[9]) { + default: + break; + case '-': + if (strcmp("digest-check", s + 10) == 0) + return PIDX_PROV_PARAM_SIGNATURE_DIGEST_CHECK; + break; + case '\0': + return PIDX_SIGNATURE_PARAM_SIGNATURE; + } + } + } + } + } + } + } + break; + case 'z': + if (strcmp("e", s + 3) == 0) + return PIDX_MAC_PARAM_SIZE; + } + break; + case 'p': + if (strcmp("eed", s + 2) == 0) + return PIDX_CIPHER_PARAM_SPEED; + break; + case 's': + switch(s[2]) { + default: + break; + case 'h': + switch(s[3]) { + default: + break; + case 'k': + switch(s[4]) { + default: + break; + case 'd': + switch(s[5]) { + default: + break; + case 'f': + switch(s[6]) { + default: + break; + case '-': + switch(s[7]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 8) == 0) + return PIDX_PROV_PARAM_SSHKDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 8) == 0) + return PIDX_PROV_PARAM_SSHKDF_KEY_CHECK; + } + } + } + } + } + break; + case 'k': + switch(s[3]) { + default: + break; + case 'd': + switch(s[4]) { + default: + break; + case 'f': + switch(s[5]) { + default: + break; + case '-': + switch(s[6]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 7) == 0) + return PIDX_PROV_PARAM_SSKDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 7) == 0) + return PIDX_PROV_PARAM_SSKDF_KEY_CHECK; + } + } + } + } + break; + case 'l': + if (strcmp("3-ms", s + 3) == 0) + return PIDX_DIGEST_PARAM_SSL3_MS; + } + break; + case 't': + switch(s[2]) { + default: + break; + case '-': + switch(s[3]) { + default: + break; + case 'd': + if (strcmp("esc", s + 4) == 0) + return PIDX_PROV_PARAM_SELF_TEST_DESC; + break; + case 'p': + if (strcmp("hase", s + 4) == 0) + return PIDX_PROV_PARAM_SELF_TEST_PHASE; + break; + case 't': + if (strcmp("ype", s + 4) == 0) + return PIDX_PROV_PARAM_SELF_TEST_TYPE; + } + break; + case 'a': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case 'e': + switch(s[5]) { + default: + break; + case '\0': + return PIDX_RAND_PARAM_STATE; + } + break; + case 'u': + if (strcmp("s", s + 5) == 0) + return PIDX_PROV_PARAM_STATUS; + } + } + break; + case 'r': + switch(s[3]) { + default: + break; + case 'e': + switch(s[4]) { + default: + break; + case 'a': + if (strcmp("m_mac", s + 5) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_STREAM_MAC; + break; + case 'n': + if (strcmp("gth", s + 5) == 0) + return PIDX_RAND_PARAM_STRENGTH; + } + } + } + break; + case 'u': + switch(s[2]) { + default: + break; + case 'b': + if (strcmp("ject", s + 3) == 0) + return PIDX_STORE_PARAM_SUBJECT; + break; + case 'p': + switch(s[3]) { + default: + break; + case 'p': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'p': + switch(s[6]) { + default: + break; + case 'r': + if (strcmp("ivinfo", s + 7) == 0) + return PIDX_KDF_PARAM_X942_SUPP_PRIVINFO; + break; + case 'u': + if (strcmp("binfo", s + 7) == 0) + return PIDX_KDF_PARAM_X942_SUPP_PUBINFO; + } + } + } + } + } + } + break; + case 't': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'g': + switch(s[3]) { + default: + break; + case 'l': + if (strcmp("en", s + 4) == 0) + return PIDX_CIPHER_PARAM_AEAD_TAGLEN; + break; + case '\0': + return PIDX_CIPHER_PARAM_AEAD_TAG; + } + } + break; + case 'd': + if (strcmp("es-encrypt-disabled", s + 2) == 0) + return PIDX_PROV_PARAM_TDES_ENCRYPT_DISABLED; + break; + case 'e': + switch(s[2]) { + default: + break; + case 's': + switch(s[3]) { + default: + break; + case 't': + switch(s[4]) { + default: + break; + case '-': + if (strcmp("entropy", s + 5) == 0) + return PIDX_SIGNATURE_PARAM_TEST_ENTROPY; + break; + case '_': + switch(s[5]) { + default: + break; + case 'e': + if (strcmp("ntropy", s + 6) == 0) + return PIDX_RAND_PARAM_TEST_ENTROPY; + break; + case 'n': + if (strcmp("once", s + 6) == 0) + return PIDX_RAND_PARAM_TEST_NONCE; + } + } + } + } + break; + case 'h': + if (strcmp("reads", s + 2) == 0) + return PIDX_KDF_PARAM_THREADS; + break; + case 'l': + switch(s[2]) { + default: + break; + case 's': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'c': + if (strcmp("lient-version", s + 5) == 0) + return PIDX_ASYM_CIPHER_PARAM_TLS_CLIENT_VERSION; + break; + case 'd': + if (strcmp("ata-size", s + 5) == 0) + return PIDX_MAC_PARAM_TLS_DATA_SIZE; + break; + case 'g': + switch(s[5]) { + default: + break; + case 'r': + switch(s[6]) { + default: + break; + case 'o': + switch(s[7]) { + default: + break; + case 'u': + switch(s[8]) { + default: + break; + case 'p': + switch(s[9]) { + default: + break; + case '-': + switch(s[10]) { + default: + break; + case 'a': + if (strcmp("lg", s + 11) == 0) + return PIDX_CAPABILITY_TLS_GROUP_ALG; + break; + case 'i': + switch(s[11]) { + default: + break; + case 'd': + switch(s[12]) { + default: + break; + case '\0': + return PIDX_CAPABILITY_TLS_GROUP_ID; + } + break; + case 's': + if (strcmp("-kem", s + 12) == 0) + return PIDX_CAPABILITY_TLS_GROUP_IS_KEM; + } + break; + case 'n': + switch(s[11]) { + default: + break; + case 'a': + switch(s[12]) { + default: + break; + case 'm': + switch(s[13]) { + default: + break; + case 'e': + switch(s[14]) { + default: + break; + case '-': + if (strcmp("internal", s + 15) == 0) + return PIDX_CAPABILITY_TLS_GROUP_NAME_INTERNAL; + break; + case '\0': + return PIDX_CAPABILITY_TLS_GROUP_NAME; + } + } + } + } + break; + case 's': + if (strcmp("ec-bits", s + 11) == 0) + return PIDX_CAPABILITY_TLS_GROUP_SECURITY_BITS; + } + } + } + } + } + } + break; + case 'm': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case 'c': + switch(s[7]) { + default: + break; + case '-': + if (strcmp("size", s + 8) == 0) + return PIDX_CIPHER_PARAM_TLS_MAC_SIZE; + break; + case '\0': + return PIDX_CIPHER_PARAM_TLS_MAC; + } + break; + case 'x': + switch(s[7]) { + default: + break; + case '-': + switch(s[8]) { + default: + break; + case 'd': + if (strcmp("tls", s + 9) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_MAX_DTLS; + break; + case 't': + if (strcmp("ls", s + 9) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_MAX_TLS; + } + } + } + break; + case 'i': + switch(s[6]) { + default: + break; + case 'n': + switch(s[7]) { + default: + break; + case '-': + switch(s[8]) { + default: + break; + case 'd': + if (strcmp("tls", s + 9) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_MIN_DTLS; + break; + case 't': + if (strcmp("ls", s + 9) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_MIN_TLS; + } + } + } + break; + case 'u': + if (strcmp("lti", s + 6) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK; + } + break; + case 'n': + if (strcmp("egotiated-version", s + 5) == 0) + return PIDX_ASYM_CIPHER_PARAM_TLS_NEGOTIATED_VERSION; + break; + case 's': + switch(s[5]) { + default: + break; + case 'i': + switch(s[6]) { + default: + break; + case 'g': + switch(s[7]) { + default: + break; + case 'a': + switch(s[8]) { + default: + break; + case 'l': + switch(s[9]) { + default: + break; + case 'g': + switch(s[10]) { + default: + break; + case '-': + switch(s[11]) { + default: + break; + case 'c': + if (strcmp("ode-point", s + 12) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_CODE_POINT; + break; + case 'h': + switch(s[12]) { + default: + break; + case 'a': + switch(s[13]) { + default: + break; + case 's': + switch(s[14]) { + default: + break; + case 'h': + switch(s[15]) { + default: + break; + case '-': + switch(s[16]) { + default: + break; + case 'n': + if (strcmp("ame", s + 17) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_HASH_NAME; + break; + case 'o': + if (strcmp("id", s + 17) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_HASH_OID; + } + } + } + } + } + break; + case 'i': + if (strcmp("ana-name", s + 12) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_IANA_NAME; + break; + case 'k': + switch(s[12]) { + default: + break; + case 'e': + switch(s[13]) { + default: + break; + case 'y': + switch(s[14]) { + default: + break; + case 't': + switch(s[15]) { + default: + break; + case 'y': + switch(s[16]) { + default: + break; + case 'p': + switch(s[17]) { + default: + break; + case 'e': + switch(s[18]) { + default: + break; + case '-': + if (strcmp("oid", s + 19) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_KEYTYPE_OID; + break; + case '\0': + return PIDX_CAPABILITY_TLS_SIGALG_KEYTYPE; + } + } + } + } + } + } + } + break; + case 'n': + if (strcmp("ame", s + 12) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_NAME; + break; + case 'o': + if (strcmp("id", s + 12) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_OID; + break; + case 's': + switch(s[12]) { + default: + break; + case 'e': + if (strcmp("c-bits", s + 13) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_SECURITY_BITS; + break; + case 'i': + switch(s[13]) { + default: + break; + case 'g': + switch(s[14]) { + default: + break; + case '-': + switch(s[15]) { + default: + break; + case 'n': + if (strcmp("ame", s + 16) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_SIG_NAME; + break; + case 'o': + if (strcmp("id", s + 16) == 0) + return PIDX_CAPABILITY_TLS_SIGALG_SIG_OID; + } + } + } + } + } + } + } + } + } + } + } + break; + case 'v': + if (strcmp("ersion", s + 5) == 0) + return PIDX_CIPHER_PARAM_TLS_VERSION; + } + break; + case '1': + switch(s[4]) { + default: + break; + case '-': + switch(s[5]) { + default: + break; + case 'p': + switch(s[6]) { + default: + break; + case 'r': + switch(s[7]) { + default: + break; + case 'f': + switch(s[8]) { + default: + break; + case '-': + switch(s[9]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 10) == 0) + return PIDX_PROV_PARAM_TLS1_PRF_DIGEST_CHECK; + break; + case 'e': + if (strcmp("ms-check", s + 10) == 0) + return PIDX_PROV_PARAM_TLS1_PRF_EMS_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 10) == 0) + return PIDX_PROV_PARAM_TLS1_PRF_KEY_CHECK; + } + } + } + } + } + break; + case '3': + switch(s[5]) { + default: + break; + case '-': + switch(s[6]) { + default: + break; + case 'k': + switch(s[7]) { + default: + break; + case 'd': + switch(s[8]) { + default: + break; + case 'f': + switch(s[9]) { + default: + break; + case '-': + switch(s[10]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 11) == 0) + return PIDX_PROV_PARAM_TLS13_KDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 11) == 0) + return PIDX_PROV_PARAM_TLS13_KDF_KEY_CHECK; + } + } + } + } + } + } + break; + case 'm': + switch(s[5]) { + default: + break; + case 'u': + switch(s[6]) { + default: + break; + case 'l': + switch(s[7]) { + default: + break; + case 't': + switch(s[8]) { + default: + break; + case 'i': + switch(s[9]) { + default: + break; + case '_': + switch(s[10]) { + default: + break; + case 'a': + switch(s[11]) { + default: + break; + case 'a': + switch(s[12]) { + default: + break; + case 'd': + switch(s[13]) { + default: + break; + case 'p': + if (strcmp("acklen", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD_PACKLEN; + break; + case '\0': + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD; + } + } + } + break; + case 'e': + switch(s[11]) { + default: + break; + case 'n': + switch(s[12]) { + default: + break; + case 'c': + switch(s[13]) { + default: + break; + case 'i': + if (strcmp("n", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_IN; + break; + case 'l': + if (strcmp("en", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_LEN; + break; + case '\0': + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC; + } + } + } + break; + case 'i': + if (strcmp("nterleave", s + 11) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_INTERLEAVE; + break; + case 'm': + switch(s[11]) { + default: + break; + case 'a': + switch(s[12]) { + default: + break; + case 'x': + switch(s[13]) { + default: + break; + case 'b': + if (strcmp("ufsz", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_BUFSIZE; + break; + case 's': + if (strcmp("ndfrag", s + 14) == 0) + return PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_SEND_FRAGMENT; + } + } + } + } + } + } + } + } + } + } + break; + case 'a': + switch(s[4]) { + default: + break; + case 'a': + switch(s[5]) { + default: + break; + case 'd': + switch(s[6]) { + default: + break; + case 'p': + if (strcmp("ad", s + 7) == 0) + return PIDX_CIPHER_PARAM_AEAD_TLS1_AAD_PAD; + break; + case '\0': + return PIDX_CIPHER_PARAM_AEAD_TLS1_AAD; + } + } + } + break; + case 'i': + switch(s[4]) { + default: + break; + case 'v': + switch(s[5]) { + default: + break; + case 'f': + if (strcmp("ixed", s + 6) == 0) + return PIDX_CIPHER_PARAM_AEAD_TLS1_IV_FIXED; + break; + case 'g': + if (strcmp("en", s + 6) == 0) + return PIDX_CIPHER_PARAM_AEAD_TLS1_GET_IV_GEN; + break; + case 'i': + if (strcmp("nv", s + 6) == 0) + return PIDX_CIPHER_PARAM_AEAD_TLS1_SET_IV_INV; + } + } + break; + case 't': + if (strcmp("ree", s + 4) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_TLSTREE; + } + } + break; + case 'p': + switch(s[2]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_EC_CHAR2_TP_BASIS; + } + break; + case 'y': + if (strcmp("pe", s + 2) == 0) + return PIDX_PKEY_PARAM_FFC_TYPE; + } + break; + case 'u': + switch(s[1]) { + default: + break; + case 'k': + if (strcmp("m", s + 2) == 0) + return PIDX_KDF_PARAM_UKM; + break; + case 'p': + if (strcmp("dated-iv", s + 2) == 0) + return PIDX_CIPHER_PARAM_UPDATED_IV; + break; + case 's': + switch(s[2]) { + default: + break; + case 'e': + switch(s[3]) { + default: + break; + case '-': + switch(s[4]) { + default: + break; + case 'b': + if (strcmp("its", s + 5) == 0) + return PIDX_CIPHER_PARAM_USE_BITS; + break; + case 'c': + if (strcmp("ofactor-flag", s + 5) == 0) + return PIDX_PKEY_PARAM_USE_COFACTOR_FLAG; + break; + case 'k': + if (strcmp("eybits", s + 5) == 0) + return PIDX_KDF_PARAM_X942_USE_KEYBITS; + break; + case 'l': + switch(s[5]) { + default: + break; + case '\0': + return PIDX_KDF_PARAM_KBKDF_USE_L; + } + break; + case 's': + if (strcmp("eparator", s + 5) == 0) + return PIDX_KDF_PARAM_KBKDF_USE_SEPARATOR; + } + break; + case '_': + switch(s[4]) { + default: + break; + case 'd': + if (strcmp("erivation_function", s + 5) == 0) + return PIDX_DRBG_PARAM_USE_DF; + break; + case 'e': + if (strcmp("tm", s + 5) == 0) + return PIDX_LIBSSL_RECORD_LAYER_PARAM_USE_ETM; + } + } + } + } + break; + case 'v': + switch(s[1]) { + default: + break; + case 'a': + switch(s[2]) { + default: + break; + case 'l': + switch(s[3]) { + default: + break; + case 'i': + switch(s[4]) { + default: + break; + case 'd': + switch(s[5]) { + default: + break; + case 'a': + switch(s[6]) { + default: + break; + case 't': + switch(s[7]) { + default: + break; + case 'e': + switch(s[8]) { + default: + break; + case '-': + switch(s[9]) { + default: + break; + case 'g': + switch(s[10]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_FFC_VALIDATE_G; + } + break; + case 'l': + if (strcmp("egacy", s + 10) == 0) + return PIDX_PKEY_PARAM_FFC_VALIDATE_LEGACY; + break; + case 'p': + if (strcmp("q", s + 10) == 0) + return PIDX_PKEY_PARAM_FFC_VALIDATE_PQ; + } + } + } + } + } + } + } + } + break; + case 'e': + switch(s[2]) { + default: + break; + case 'r': + switch(s[3]) { + default: + break; + case 'i': + if (strcmp("fy-message", s + 4) == 0) + return PIDX_SIGNATURE_PARAM_FIPS_VERIFY_MESSAGE; + break; + case 's': + if (strcmp("ion", s + 4) == 0) + return PIDX_PROV_PARAM_VERSION; + } + } + } + break; + case 'x': + switch(s[1]) { + default: + break; + case '9': + switch(s[2]) { + default: + break; + case '4': + if (strcmp("2kdf-key-check", s + 3) == 0) + return PIDX_PROV_PARAM_X942KDF_KEY_CHECK; + break; + case '6': + switch(s[3]) { + default: + break; + case '3': + switch(s[4]) { + default: + break; + case 'k': + switch(s[5]) { + default: + break; + case 'd': + switch(s[6]) { + default: + break; + case 'f': + switch(s[7]) { + default: + break; + case '-': + switch(s[8]) { + default: + break; + case 'd': + if (strcmp("igest-check", s + 9) == 0) + return PIDX_PROV_PARAM_X963KDF_DIGEST_CHECK; + break; + case 'k': + if (strcmp("ey-check", s + 9) == 0) + return PIDX_PROV_PARAM_X963KDF_KEY_CHECK; + } + } + } + } + } + } + } + break; + case 'c': + if (strcmp("ghash", s + 2) == 0) + return PIDX_KDF_PARAM_SSHKDF_XCGHASH; + break; + case 'o': + switch(s[2]) { + default: + break; + case 'f': + switch(s[3]) { + default: + break; + case 'l': + if (strcmp("en", s + 4) == 0) + return PIDX_DIGEST_PARAM_XOFLEN; + break; + case '\0': + return PIDX_MAC_PARAM_XOF; + } + } + break; + case 'p': + switch(s[2]) { + default: + break; + case '1': + switch(s[3]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XP1; + } + break; + case '2': + switch(s[3]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XP2; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XP; + } + break; + case 'q': + switch(s[2]) { + default: + break; + case '1': + switch(s[3]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XQ1; + } + break; + case '2': + switch(s[3]) { + default: + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XQ2; + } + break; + case '\0': + return PIDX_PKEY_PARAM_RSA_TEST_XQ; + } + break; + case 't': + if (strcmp("s_standard", s + 2) == 0) + return PIDX_CIPHER_PARAM_XTS_STANDARD; + } + } + return -1; +} + +/* End of TRIE */ diff --git a/deps/openssl/config/archs/linux-elf/asm_avx2/crypto/poly1305/poly1305-x86.S b/deps/openssl/config/archs/linux-elf/asm_avx2/crypto/poly1305/poly1305-x86.S index f95649faed3710..1449728032fc35 100644 --- a/deps/openssl/config/archs/linux-elf/asm_avx2/crypto/poly1305/poly1305-x86.S +++ b/deps/openssl/config/archs/linux-elf/asm_avx2/crypto/poly1305/poly1305-x86.S @@ -1947,7 +1947,7 @@ _poly1305_blocks_avx2: .byte 60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111 .byte 114,103,62,0 .align 4 -.comm OPENSSL_ia32cap_P,16,4 +.comm OPENSSL_ia32cap_P,40,4 .section ".note.gnu.property", "a" .p2align 2 diff --git a/deps/openssl/config/archs/linux-elf/asm_avx2/crypto/rc4/rc4-586.S b/deps/openssl/config/archs/linux-elf/asm_avx2/crypto/rc4/rc4-586.S index da909a31e73010..5850f1527e7fb0 100644 --- a/deps/openssl/config/archs/linux-elf/asm_avx2/crypto/rc4/rc4-586.S +++ b/deps/openssl/config/archs/linux-elf/asm_avx2/crypto/rc4/rc4-586.S @@ -392,7 +392,7 @@ RC4_options: .byte 111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 .align 64 .size RC4_options,.-.L_RC4_options_begin -.comm OPENSSL_ia32cap_P,16,4 +.comm OPENSSL_ia32cap_P,40,4 .section ".note.gnu.property", "a" .p2align 2 diff --git a/deps/openssl/config/archs/linux-elf/asm_avx2/crypto/sha/sha1-586.S b/deps/openssl/config/archs/linux-elf/asm_avx2/crypto/sha/sha1-586.S index ddc85b3d82df65..bd0e99fc527b82 100644 --- a/deps/openssl/config/archs/linux-elf/asm_avx2/crypto/sha/sha1-586.S +++ b/deps/openssl/config/archs/linux-elf/asm_avx2/crypto/sha/sha1-586.S @@ -3986,7 +3986,7 @@ _sha1_block_data_order_avx: .byte 102,111,114,109,32,102,111,114,32,120,56,54,44,32,67,82 .byte 89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112 .byte 114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 -.comm OPENSSL_ia32cap_P,16,4 +.comm OPENSSL_ia32cap_P,40,4 .section ".note.gnu.property", "a" .p2align 2 diff --git a/deps/openssl/config/archs/linux-elf/asm_avx2/crypto/sha/sha256-586.S b/deps/openssl/config/archs/linux-elf/asm_avx2/crypto/sha/sha256-586.S index 9436ca5e1d8c92..738fc8e65772f8 100644 --- a/deps/openssl/config/archs/linux-elf/asm_avx2/crypto/sha/sha256-586.S +++ b/deps/openssl/config/archs/linux-elf/asm_avx2/crypto/sha/sha256-586.S @@ -6784,7 +6784,7 @@ sha256_block_data_order: popl %ebp ret .size sha256_block_data_order,.-.L_sha256_block_data_order_begin -.comm OPENSSL_ia32cap_P,16,4 +.comm OPENSSL_ia32cap_P,40,4 .section ".note.gnu.property", "a" .p2align 2 diff --git a/deps/openssl/config/archs/linux-elf/asm_avx2/crypto/sha/sha512-586.S b/deps/openssl/config/archs/linux-elf/asm_avx2/crypto/sha/sha512-586.S index c7cf815b4e052e..b0558cd5ae24ca 100644 --- a/deps/openssl/config/archs/linux-elf/asm_avx2/crypto/sha/sha512-586.S +++ b/deps/openssl/config/archs/linux-elf/asm_avx2/crypto/sha/sha512-586.S @@ -2830,7 +2830,7 @@ sha512_block_data_order: .byte 67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97 .byte 112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103 .byte 62,0 -.comm OPENSSL_ia32cap_P,16,4 +.comm OPENSSL_ia32cap_P,40,4 .section ".note.gnu.property", "a" .p2align 2 diff --git a/deps/openssl/config/archs/linux-elf/asm_avx2/crypto/x86cpuid.S b/deps/openssl/config/archs/linux-elf/asm_avx2/crypto/x86cpuid.S index eedacacfea8676..84e58cbdd18a00 100644 --- a/deps/openssl/config/archs/linux-elf/asm_avx2/crypto/x86cpuid.S +++ b/deps/openssl/config/archs/linux-elf/asm_avx2/crypto/x86cpuid.S @@ -122,6 +122,24 @@ OPENSSL_ia32_cpuid: xorl %ecx,%ecx .byte 0x0f,0xa2 movl %ebx,8(%edi) + movl %ecx,12(%edi) + movl %edx,16(%edi) + cmpl $1,%eax + jb .L005no_extended_info + movl $7,%eax + movl $1,%ecx + .byte 0x0f,0xa2 + movl %eax,20(%edi) + movl %edx,24(%edi) + movl %ebx,28(%edi) + movl %ecx,32(%edi) + andl $524288,%edx + cmpl $0,%edx + je .L005no_extended_info + movl $36,%eax + movl $0,%ecx + .byte 0x0f,0xa2 + movl %ebx,36(%edi) .L005no_extended_info: btl $27,%ebp jnc .L006clear_avx @@ -137,6 +155,7 @@ OPENSSL_ia32_cpuid: andl $4278190079,%esi .L006clear_avx: andl $4026525695,%ebp + andl $4286578687,20(%edi) andl $4294967263,8(%edi) .L007done: movl %esi,%eax @@ -592,7 +611,7 @@ OPENSSL_ia32_rdseed_bytes: .size OPENSSL_ia32_rdseed_bytes,.-.L_OPENSSL_ia32_rdseed_bytes_begin .hidden OPENSSL_cpuid_setup .hidden OPENSSL_ia32cap_P -.comm OPENSSL_ia32cap_P,16,4 +.comm OPENSSL_ia32cap_P,40,4 .section .init call OPENSSL_cpuid_setup diff --git a/deps/openssl/config/archs/linux-elf/asm_avx2/include/internal/param_names.h b/deps/openssl/config/archs/linux-elf/asm_avx2/include/internal/param_names.h new file mode 100644 index 00000000000000..0a0404a57e82b9 --- /dev/null +++ b/deps/openssl/config/archs/linux-elf/asm_avx2/include/internal/param_names.h @@ -0,0 +1,469 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from include/internal/param_names.h.in + * + * Copyright 2023 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + +int ossl_param_find_pidx(const char *s); + +/* Parameter name definitions - generated by util/perl/OpenSSL/paramnames.pm */ +#define NUM_PIDX 346 + +#define PIDX_ALG_PARAM_ALGORITHM_ID 0 +#define PIDX_ALG_PARAM_ALGORITHM_ID_PARAMS 1 +#define PIDX_ALG_PARAM_CIPHER 2 +#define PIDX_ALG_PARAM_DIGEST 3 +#define PIDX_ALG_PARAM_ENGINE 4 +#define PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR 5 +#define PIDX_ALG_PARAM_MAC 6 +#define PIDX_ALG_PARAM_PROPERTIES 7 +#define PIDX_ASYM_CIPHER_PARAM_DIGEST PIDX_PKEY_PARAM_DIGEST +#define PIDX_ASYM_CIPHER_PARAM_ENGINE PIDX_PKEY_PARAM_ENGINE +#define PIDX_ASYM_CIPHER_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_ASYM_CIPHER_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_ASYM_CIPHER_PARAM_FIPS_RSA_PKCS15_PAD_DISABLED PIDX_PROV_PARAM_RSA_PKCS15_PAD_DISABLED +#define PIDX_ASYM_CIPHER_PARAM_IMPLICIT_REJECTION 8 +#define PIDX_ASYM_CIPHER_PARAM_MGF1_DIGEST PIDX_PKEY_PARAM_MGF1_DIGEST +#define PIDX_ASYM_CIPHER_PARAM_MGF1_DIGEST_PROPS PIDX_PKEY_PARAM_MGF1_PROPERTIES +#define PIDX_ASYM_CIPHER_PARAM_OAEP_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_ASYM_CIPHER_PARAM_OAEP_DIGEST_PROPS 9 +#define PIDX_ASYM_CIPHER_PARAM_OAEP_LABEL 10 +#define PIDX_ASYM_CIPHER_PARAM_PAD_MODE PIDX_PKEY_PARAM_PAD_MODE +#define PIDX_ASYM_CIPHER_PARAM_PROPERTIES PIDX_PKEY_PARAM_PROPERTIES +#define PIDX_ASYM_CIPHER_PARAM_TLS_CLIENT_VERSION 11 +#define PIDX_ASYM_CIPHER_PARAM_TLS_NEGOTIATED_VERSION 12 +#define PIDX_CAPABILITY_TLS_GROUP_ALG 13 +#define PIDX_CAPABILITY_TLS_GROUP_ID 14 +#define PIDX_CAPABILITY_TLS_GROUP_IS_KEM 15 +#define PIDX_CAPABILITY_TLS_GROUP_MAX_DTLS 16 +#define PIDX_CAPABILITY_TLS_GROUP_MAX_TLS 17 +#define PIDX_CAPABILITY_TLS_GROUP_MIN_DTLS 18 +#define PIDX_CAPABILITY_TLS_GROUP_MIN_TLS 19 +#define PIDX_CAPABILITY_TLS_GROUP_NAME 20 +#define PIDX_CAPABILITY_TLS_GROUP_NAME_INTERNAL 21 +#define PIDX_CAPABILITY_TLS_GROUP_SECURITY_BITS 22 +#define PIDX_CAPABILITY_TLS_SIGALG_CODE_POINT 23 +#define PIDX_CAPABILITY_TLS_SIGALG_HASH_NAME 24 +#define PIDX_CAPABILITY_TLS_SIGALG_HASH_OID 25 +#define PIDX_CAPABILITY_TLS_SIGALG_IANA_NAME 26 +#define PIDX_CAPABILITY_TLS_SIGALG_KEYTYPE 27 +#define PIDX_CAPABILITY_TLS_SIGALG_KEYTYPE_OID 28 +#define PIDX_CAPABILITY_TLS_SIGALG_MAX_DTLS 16 +#define PIDX_CAPABILITY_TLS_SIGALG_MAX_TLS 17 +#define PIDX_CAPABILITY_TLS_SIGALG_MIN_DTLS 18 +#define PIDX_CAPABILITY_TLS_SIGALG_MIN_TLS 19 +#define PIDX_CAPABILITY_TLS_SIGALG_NAME 29 +#define PIDX_CAPABILITY_TLS_SIGALG_OID 30 +#define PIDX_CAPABILITY_TLS_SIGALG_SECURITY_BITS 31 +#define PIDX_CAPABILITY_TLS_SIGALG_SIG_NAME 32 +#define PIDX_CAPABILITY_TLS_SIGALG_SIG_OID 33 +#define PIDX_CIPHER_PARAM_AEAD 34 +#define PIDX_CIPHER_PARAM_AEAD_IVLEN PIDX_CIPHER_PARAM_IVLEN +#define PIDX_CIPHER_PARAM_AEAD_IV_GENERATED 35 +#define PIDX_CIPHER_PARAM_AEAD_MAC_KEY 36 +#define PIDX_CIPHER_PARAM_AEAD_TAG 37 +#define PIDX_CIPHER_PARAM_AEAD_TAGLEN 38 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_AAD 39 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_AAD_PAD 40 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_GET_IV_GEN 41 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_IV_FIXED 42 +#define PIDX_CIPHER_PARAM_AEAD_TLS1_SET_IV_INV 43 +#define PIDX_CIPHER_PARAM_ALGORITHM_ID PIDX_ALG_PARAM_ALGORITHM_ID +#define PIDX_CIPHER_PARAM_ALGORITHM_ID_PARAMS PIDX_ALG_PARAM_ALGORITHM_ID_PARAMS +#define PIDX_CIPHER_PARAM_ALGORITHM_ID_PARAMS_OLD 44 +#define PIDX_CIPHER_PARAM_BLOCK_SIZE 45 +#define PIDX_CIPHER_PARAM_CTS 46 +#define PIDX_CIPHER_PARAM_CTS_MODE 47 +#define PIDX_CIPHER_PARAM_CUSTOM_IV 48 +#define PIDX_CIPHER_PARAM_DECRYPT_ONLY 49 +#define PIDX_CIPHER_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_CIPHER_PARAM_FIPS_ENCRYPT_CHECK 50 +#define PIDX_CIPHER_PARAM_HAS_RAND_KEY 51 +#define PIDX_CIPHER_PARAM_IV 52 +#define PIDX_CIPHER_PARAM_IVLEN 53 +#define PIDX_CIPHER_PARAM_KEYLEN 54 +#define PIDX_CIPHER_PARAM_MODE 55 +#define PIDX_CIPHER_PARAM_NUM 56 +#define PIDX_CIPHER_PARAM_PADDING 57 +#define PIDX_CIPHER_PARAM_PIPELINE_AEAD_TAG 58 +#define PIDX_CIPHER_PARAM_RANDOM_KEY 59 +#define PIDX_CIPHER_PARAM_RC2_KEYBITS 60 +#define PIDX_CIPHER_PARAM_ROUNDS 61 +#define PIDX_CIPHER_PARAM_SPEED 62 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK 63 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD 64 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD_PACKLEN 65 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC 66 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_IN 67 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_LEN 68 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_INTERLEAVE 69 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_BUFSIZE 70 +#define PIDX_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_SEND_FRAGMENT 71 +#define PIDX_CIPHER_PARAM_TLS_MAC 72 +#define PIDX_CIPHER_PARAM_TLS_MAC_SIZE 73 +#define PIDX_CIPHER_PARAM_TLS_VERSION 74 +#define PIDX_CIPHER_PARAM_UPDATED_IV 75 +#define PIDX_CIPHER_PARAM_USE_BITS 76 +#define PIDX_CIPHER_PARAM_XTS_STANDARD 77 +#define PIDX_DECODER_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_DIGEST_PARAM_ALGID_ABSENT 78 +#define PIDX_DIGEST_PARAM_BLOCK_SIZE 45 +#define PIDX_DIGEST_PARAM_MICALG 79 +#define PIDX_DIGEST_PARAM_PAD_TYPE 80 +#define PIDX_DIGEST_PARAM_SIZE 81 +#define PIDX_DIGEST_PARAM_SSL3_MS 82 +#define PIDX_DIGEST_PARAM_XOF 83 +#define PIDX_DIGEST_PARAM_XOFLEN 84 +#define PIDX_DRBG_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_DRBG_PARAM_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_DRBG_PARAM_ENTROPY_REQUIRED 85 +#define PIDX_DRBG_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_DRBG_PARAM_FIPS_DIGEST_CHECK PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK +#define PIDX_DRBG_PARAM_MAC PIDX_ALG_PARAM_MAC +#define PIDX_DRBG_PARAM_MAX_ADINLEN 86 +#define PIDX_DRBG_PARAM_MAX_ENTROPYLEN 87 +#define PIDX_DRBG_PARAM_MAX_LENGTH 88 +#define PIDX_DRBG_PARAM_MAX_NONCELEN 89 +#define PIDX_DRBG_PARAM_MAX_PERSLEN 90 +#define PIDX_DRBG_PARAM_MIN_ENTROPYLEN 91 +#define PIDX_DRBG_PARAM_MIN_LENGTH 92 +#define PIDX_DRBG_PARAM_MIN_NONCELEN 93 +#define PIDX_DRBG_PARAM_PREDICTION_RESISTANCE 94 +#define PIDX_DRBG_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_DRBG_PARAM_RANDOM_DATA 95 +#define PIDX_DRBG_PARAM_RESEED_COUNTER 96 +#define PIDX_DRBG_PARAM_RESEED_REQUESTS 97 +#define PIDX_DRBG_PARAM_RESEED_TIME 98 +#define PIDX_DRBG_PARAM_RESEED_TIME_INTERVAL 99 +#define PIDX_DRBG_PARAM_SIZE 81 +#define PIDX_DRBG_PARAM_USE_DF 100 +#define PIDX_ENCODER_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_ENCODER_PARAM_ENCRYPT_LEVEL 101 +#define PIDX_ENCODER_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_ENCODER_PARAM_SAVE_PARAMETERS 102 +#define PIDX_EXCHANGE_PARAM_EC_ECDH_COFACTOR_MODE 103 +#define PIDX_EXCHANGE_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_EXCHANGE_PARAM_FIPS_DIGEST_CHECK PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK +#define PIDX_EXCHANGE_PARAM_FIPS_ECDH_COFACTOR_CHECK PIDX_PROV_PARAM_ECDH_COFACTOR_CHECK +#define PIDX_EXCHANGE_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_EXCHANGE_PARAM_KDF_DIGEST 104 +#define PIDX_EXCHANGE_PARAM_KDF_DIGEST_PROPS 105 +#define PIDX_EXCHANGE_PARAM_KDF_OUTLEN 106 +#define PIDX_EXCHANGE_PARAM_KDF_TYPE 107 +#define PIDX_EXCHANGE_PARAM_KDF_UKM 108 +#define PIDX_EXCHANGE_PARAM_PAD 109 +#define PIDX_GEN_PARAM_ITERATION 110 +#define PIDX_GEN_PARAM_POTENTIAL 111 +#define PIDX_KDF_PARAM_ARGON2_AD 112 +#define PIDX_KDF_PARAM_ARGON2_LANES 113 +#define PIDX_KDF_PARAM_ARGON2_MEMCOST 114 +#define PIDX_KDF_PARAM_ARGON2_VERSION 115 +#define PIDX_KDF_PARAM_CEK_ALG 116 +#define PIDX_KDF_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_KDF_PARAM_CONSTANT 117 +#define PIDX_KDF_PARAM_DATA 118 +#define PIDX_KDF_PARAM_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_KDF_PARAM_EARLY_CLEAN 119 +#define PIDX_KDF_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_KDF_PARAM_FIPS_DIGEST_CHECK PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK +#define PIDX_KDF_PARAM_FIPS_EMS_CHECK 120 +#define PIDX_KDF_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_KDF_PARAM_HMACDRBG_ENTROPY 121 +#define PIDX_KDF_PARAM_HMACDRBG_NONCE 122 +#define PIDX_KDF_PARAM_INFO 123 +#define PIDX_KDF_PARAM_ITER 124 +#define PIDX_KDF_PARAM_KBKDF_R 125 +#define PIDX_KDF_PARAM_KBKDF_USE_L 126 +#define PIDX_KDF_PARAM_KBKDF_USE_SEPARATOR 127 +#define PIDX_KDF_PARAM_KEY 128 +#define PIDX_KDF_PARAM_LABEL 129 +#define PIDX_KDF_PARAM_MAC PIDX_ALG_PARAM_MAC +#define PIDX_KDF_PARAM_MAC_SIZE 130 +#define PIDX_KDF_PARAM_MODE 55 +#define PIDX_KDF_PARAM_PASSWORD 131 +#define PIDX_KDF_PARAM_PKCS12_ID 132 +#define PIDX_KDF_PARAM_PKCS5 133 +#define PIDX_KDF_PARAM_PREFIX 134 +#define PIDX_KDF_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_KDF_PARAM_SALT 135 +#define PIDX_KDF_PARAM_SCRYPT_MAXMEM 136 +#define PIDX_KDF_PARAM_SCRYPT_N 137 +#define PIDX_KDF_PARAM_SCRYPT_P 138 +#define PIDX_KDF_PARAM_SCRYPT_R 125 +#define PIDX_KDF_PARAM_SECRET 139 +#define PIDX_KDF_PARAM_SEED 140 +#define PIDX_KDF_PARAM_SIZE 81 +#define PIDX_KDF_PARAM_SSHKDF_SESSION_ID 141 +#define PIDX_KDF_PARAM_SSHKDF_TYPE 142 +#define PIDX_KDF_PARAM_SSHKDF_XCGHASH 143 +#define PIDX_KDF_PARAM_THREADS 144 +#define PIDX_KDF_PARAM_UKM 145 +#define PIDX_KDF_PARAM_X942_ACVPINFO 146 +#define PIDX_KDF_PARAM_X942_PARTYUINFO 147 +#define PIDX_KDF_PARAM_X942_PARTYVINFO 148 +#define PIDX_KDF_PARAM_X942_SUPP_PRIVINFO 149 +#define PIDX_KDF_PARAM_X942_SUPP_PUBINFO 150 +#define PIDX_KDF_PARAM_X942_USE_KEYBITS 151 +#define PIDX_KEM_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_KEM_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_KEM_PARAM_IKME 152 +#define PIDX_KEM_PARAM_OPERATION 153 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_BLOCK_PADDING 154 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_HS_PADDING 155 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_MAX_EARLY_DATA 156 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_MAX_FRAG_LEN 157 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_MODE 55 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_OPTIONS 158 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_READ_AHEAD 159 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_STREAM_MAC 160 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_TLSTREE 161 +#define PIDX_LIBSSL_RECORD_LAYER_PARAM_USE_ETM 162 +#define PIDX_LIBSSL_RECORD_LAYER_READ_BUFFER_LEN 163 +#define PIDX_MAC_PARAM_BLOCK_SIZE 164 +#define PIDX_MAC_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_MAC_PARAM_CUSTOM 165 +#define PIDX_MAC_PARAM_C_ROUNDS 166 +#define PIDX_MAC_PARAM_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_MAC_PARAM_DIGEST_NOINIT 167 +#define PIDX_MAC_PARAM_DIGEST_ONESHOT 168 +#define PIDX_MAC_PARAM_D_ROUNDS 169 +#define PIDX_MAC_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_MAC_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_MAC_PARAM_FIPS_NO_SHORT_MAC PIDX_PROV_PARAM_NO_SHORT_MAC +#define PIDX_MAC_PARAM_IV 52 +#define PIDX_MAC_PARAM_KEY 128 +#define PIDX_MAC_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_MAC_PARAM_SALT 135 +#define PIDX_MAC_PARAM_SIZE 81 +#define PIDX_MAC_PARAM_TLS_DATA_SIZE 170 +#define PIDX_MAC_PARAM_XOF 83 +#define PIDX_OBJECT_PARAM_DATA 118 +#define PIDX_OBJECT_PARAM_DATA_STRUCTURE 171 +#define PIDX_OBJECT_PARAM_DATA_TYPE 172 +#define PIDX_OBJECT_PARAM_DESC 173 +#define PIDX_OBJECT_PARAM_INPUT_TYPE 174 +#define PIDX_OBJECT_PARAM_REFERENCE 175 +#define PIDX_OBJECT_PARAM_TYPE 142 +#define PIDX_PASSPHRASE_PARAM_INFO 123 +#define PIDX_PKEY_PARAM_ALGORITHM_ID PIDX_ALG_PARAM_ALGORITHM_ID +#define PIDX_PKEY_PARAM_ALGORITHM_ID_PARAMS PIDX_ALG_PARAM_ALGORITHM_ID_PARAMS +#define PIDX_PKEY_PARAM_BITS 176 +#define PIDX_PKEY_PARAM_CIPHER PIDX_ALG_PARAM_CIPHER +#define PIDX_PKEY_PARAM_DEFAULT_DIGEST 177 +#define PIDX_PKEY_PARAM_DHKEM_IKM 178 +#define PIDX_PKEY_PARAM_DH_GENERATOR 179 +#define PIDX_PKEY_PARAM_DH_PRIV_LEN 180 +#define PIDX_PKEY_PARAM_DIGEST PIDX_ALG_PARAM_DIGEST +#define PIDX_PKEY_PARAM_DIGEST_SIZE 181 +#define PIDX_PKEY_PARAM_DIST_ID 182 +#define PIDX_PKEY_PARAM_EC_A 183 +#define PIDX_PKEY_PARAM_EC_B 184 +#define PIDX_PKEY_PARAM_EC_CHAR2_M 185 +#define PIDX_PKEY_PARAM_EC_CHAR2_PP_K1 186 +#define PIDX_PKEY_PARAM_EC_CHAR2_PP_K2 187 +#define PIDX_PKEY_PARAM_EC_CHAR2_PP_K3 188 +#define PIDX_PKEY_PARAM_EC_CHAR2_TP_BASIS 189 +#define PIDX_PKEY_PARAM_EC_CHAR2_TYPE 190 +#define PIDX_PKEY_PARAM_EC_COFACTOR 191 +#define PIDX_PKEY_PARAM_EC_DECODED_FROM_EXPLICIT_PARAMS 192 +#define PIDX_PKEY_PARAM_EC_ENCODING 193 +#define PIDX_PKEY_PARAM_EC_FIELD_TYPE 194 +#define PIDX_PKEY_PARAM_EC_GENERATOR 195 +#define PIDX_PKEY_PARAM_EC_GROUP_CHECK_TYPE 196 +#define PIDX_PKEY_PARAM_EC_INCLUDE_PUBLIC 197 +#define PIDX_PKEY_PARAM_EC_ORDER 198 +#define PIDX_PKEY_PARAM_EC_P 138 +#define PIDX_PKEY_PARAM_EC_POINT_CONVERSION_FORMAT 199 +#define PIDX_PKEY_PARAM_EC_PUB_X 200 +#define PIDX_PKEY_PARAM_EC_PUB_Y 201 +#define PIDX_PKEY_PARAM_EC_SEED 140 +#define PIDX_PKEY_PARAM_ENCODED_PUBLIC_KEY 202 +#define PIDX_PKEY_PARAM_ENGINE PIDX_ALG_PARAM_ENGINE +#define PIDX_PKEY_PARAM_FFC_COFACTOR 203 +#define PIDX_PKEY_PARAM_FFC_DIGEST PIDX_PKEY_PARAM_DIGEST +#define PIDX_PKEY_PARAM_FFC_DIGEST_PROPS PIDX_PKEY_PARAM_PROPERTIES +#define PIDX_PKEY_PARAM_FFC_G 204 +#define PIDX_PKEY_PARAM_FFC_GINDEX 205 +#define PIDX_PKEY_PARAM_FFC_H 206 +#define PIDX_PKEY_PARAM_FFC_P 138 +#define PIDX_PKEY_PARAM_FFC_PBITS 207 +#define PIDX_PKEY_PARAM_FFC_PCOUNTER 208 +#define PIDX_PKEY_PARAM_FFC_Q 209 +#define PIDX_PKEY_PARAM_FFC_QBITS 210 +#define PIDX_PKEY_PARAM_FFC_SEED 140 +#define PIDX_PKEY_PARAM_FFC_TYPE 142 +#define PIDX_PKEY_PARAM_FFC_VALIDATE_G 211 +#define PIDX_PKEY_PARAM_FFC_VALIDATE_LEGACY 212 +#define PIDX_PKEY_PARAM_FFC_VALIDATE_PQ 213 +#define PIDX_PKEY_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK 214 +#define PIDX_PKEY_PARAM_FIPS_KEY_CHECK 215 +#define PIDX_PKEY_PARAM_FIPS_SIGN_CHECK 216 +#define PIDX_PKEY_PARAM_GROUP_NAME 217 +#define PIDX_PKEY_PARAM_IMPLICIT_REJECTION 8 +#define PIDX_PKEY_PARAM_MANDATORY_DIGEST 218 +#define PIDX_PKEY_PARAM_MASKGENFUNC 219 +#define PIDX_PKEY_PARAM_MAX_SIZE 220 +#define PIDX_PKEY_PARAM_MGF1_DIGEST 221 +#define PIDX_PKEY_PARAM_MGF1_PROPERTIES 222 +#define PIDX_PKEY_PARAM_ML_DSA_INPUT_FORMATS 223 +#define PIDX_PKEY_PARAM_ML_DSA_OUTPUT_FORMATS 224 +#define PIDX_PKEY_PARAM_ML_DSA_PREFER_SEED 225 +#define PIDX_PKEY_PARAM_ML_DSA_RETAIN_SEED 226 +#define PIDX_PKEY_PARAM_ML_DSA_SEED 140 +#define PIDX_PKEY_PARAM_ML_KEM_IMPORT_PCT_TYPE 227 +#define PIDX_PKEY_PARAM_ML_KEM_INPUT_FORMATS 228 +#define PIDX_PKEY_PARAM_ML_KEM_OUTPUT_FORMATS 229 +#define PIDX_PKEY_PARAM_ML_KEM_PREFER_SEED 230 +#define PIDX_PKEY_PARAM_ML_KEM_RETAIN_SEED 231 +#define PIDX_PKEY_PARAM_ML_KEM_SEED 140 +#define PIDX_PKEY_PARAM_PAD_MODE 232 +#define PIDX_PKEY_PARAM_PRIV_KEY 233 +#define PIDX_PKEY_PARAM_PROPERTIES PIDX_ALG_PARAM_PROPERTIES +#define PIDX_PKEY_PARAM_PUB_KEY 234 +#define PIDX_PKEY_PARAM_RSA_BITS PIDX_PKEY_PARAM_BITS +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT 235 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT1 236 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT2 237 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT3 238 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT4 239 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT5 240 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT6 241 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT7 242 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT8 243 +#define PIDX_PKEY_PARAM_RSA_COEFFICIENT9 244 +#define PIDX_PKEY_PARAM_RSA_D 245 +#define PIDX_PKEY_PARAM_RSA_DERIVE_FROM_PQ 246 +#define PIDX_PKEY_PARAM_RSA_DIGEST PIDX_PKEY_PARAM_DIGEST +#define PIDX_PKEY_PARAM_RSA_DIGEST_PROPS PIDX_PKEY_PARAM_PROPERTIES +#define PIDX_PKEY_PARAM_RSA_E 247 +#define PIDX_PKEY_PARAM_RSA_EXPONENT 248 +#define PIDX_PKEY_PARAM_RSA_EXPONENT1 249 +#define PIDX_PKEY_PARAM_RSA_EXPONENT10 250 +#define PIDX_PKEY_PARAM_RSA_EXPONENT2 251 +#define PIDX_PKEY_PARAM_RSA_EXPONENT3 252 +#define PIDX_PKEY_PARAM_RSA_EXPONENT4 253 +#define PIDX_PKEY_PARAM_RSA_EXPONENT5 254 +#define PIDX_PKEY_PARAM_RSA_EXPONENT6 255 +#define PIDX_PKEY_PARAM_RSA_EXPONENT7 256 +#define PIDX_PKEY_PARAM_RSA_EXPONENT8 257 +#define PIDX_PKEY_PARAM_RSA_EXPONENT9 258 +#define PIDX_PKEY_PARAM_RSA_FACTOR 259 +#define PIDX_PKEY_PARAM_RSA_FACTOR1 260 +#define PIDX_PKEY_PARAM_RSA_FACTOR10 261 +#define PIDX_PKEY_PARAM_RSA_FACTOR2 262 +#define PIDX_PKEY_PARAM_RSA_FACTOR3 263 +#define PIDX_PKEY_PARAM_RSA_FACTOR4 264 +#define PIDX_PKEY_PARAM_RSA_FACTOR5 265 +#define PIDX_PKEY_PARAM_RSA_FACTOR6 266 +#define PIDX_PKEY_PARAM_RSA_FACTOR7 267 +#define PIDX_PKEY_PARAM_RSA_FACTOR8 268 +#define PIDX_PKEY_PARAM_RSA_FACTOR9 269 +#define PIDX_PKEY_PARAM_RSA_MASKGENFUNC PIDX_PKEY_PARAM_MASKGENFUNC +#define PIDX_PKEY_PARAM_RSA_MGF1_DIGEST PIDX_PKEY_PARAM_MGF1_DIGEST +#define PIDX_PKEY_PARAM_RSA_N 137 +#define PIDX_PKEY_PARAM_RSA_PRIMES 270 +#define PIDX_PKEY_PARAM_RSA_PSS_SALTLEN 271 +#define PIDX_PKEY_PARAM_RSA_TEST_P1 272 +#define PIDX_PKEY_PARAM_RSA_TEST_P2 273 +#define PIDX_PKEY_PARAM_RSA_TEST_Q1 274 +#define PIDX_PKEY_PARAM_RSA_TEST_Q2 275 +#define PIDX_PKEY_PARAM_RSA_TEST_XP 276 +#define PIDX_PKEY_PARAM_RSA_TEST_XP1 277 +#define PIDX_PKEY_PARAM_RSA_TEST_XP2 278 +#define PIDX_PKEY_PARAM_RSA_TEST_XQ 279 +#define PIDX_PKEY_PARAM_RSA_TEST_XQ1 280 +#define PIDX_PKEY_PARAM_RSA_TEST_XQ2 281 +#define PIDX_PKEY_PARAM_SECURITY_BITS 282 +#define PIDX_PKEY_PARAM_SLH_DSA_SEED 140 +#define PIDX_PKEY_PARAM_USE_COFACTOR_ECDH PIDX_PKEY_PARAM_USE_COFACTOR_FLAG +#define PIDX_PKEY_PARAM_USE_COFACTOR_FLAG 283 +#define PIDX_PROV_PARAM_BUILDINFO 284 +#define PIDX_PROV_PARAM_CORE_MODULE_FILENAME 285 +#define PIDX_PROV_PARAM_CORE_PROV_NAME 286 +#define PIDX_PROV_PARAM_CORE_VERSION 287 +#define PIDX_PROV_PARAM_DRBG_TRUNC_DIGEST 288 +#define PIDX_PROV_PARAM_DSA_SIGN_DISABLED 289 +#define PIDX_PROV_PARAM_ECDH_COFACTOR_CHECK 290 +#define PIDX_PROV_PARAM_HKDF_DIGEST_CHECK 291 +#define PIDX_PROV_PARAM_HKDF_KEY_CHECK 292 +#define PIDX_PROV_PARAM_HMAC_KEY_CHECK 293 +#define PIDX_PROV_PARAM_KBKDF_KEY_CHECK 294 +#define PIDX_PROV_PARAM_KMAC_KEY_CHECK 295 +#define PIDX_PROV_PARAM_NAME 296 +#define PIDX_PROV_PARAM_NO_SHORT_MAC 297 +#define PIDX_PROV_PARAM_PBKDF2_LOWER_BOUND_CHECK 298 +#define PIDX_PROV_PARAM_RSA_PKCS15_PAD_DISABLED 299 +#define PIDX_PROV_PARAM_RSA_PSS_SALTLEN_CHECK 300 +#define PIDX_PROV_PARAM_RSA_SIGN_X931_PAD_DISABLED 301 +#define PIDX_PROV_PARAM_SECURITY_CHECKS 302 +#define PIDX_PROV_PARAM_SELF_TEST_DESC 303 +#define PIDX_PROV_PARAM_SELF_TEST_PHASE 304 +#define PIDX_PROV_PARAM_SELF_TEST_TYPE 305 +#define PIDX_PROV_PARAM_SIGNATURE_DIGEST_CHECK 306 +#define PIDX_PROV_PARAM_SSHKDF_DIGEST_CHECK 307 +#define PIDX_PROV_PARAM_SSHKDF_KEY_CHECK 308 +#define PIDX_PROV_PARAM_SSKDF_DIGEST_CHECK 309 +#define PIDX_PROV_PARAM_SSKDF_KEY_CHECK 310 +#define PIDX_PROV_PARAM_STATUS 311 +#define PIDX_PROV_PARAM_TDES_ENCRYPT_DISABLED 312 +#define PIDX_PROV_PARAM_TLS13_KDF_DIGEST_CHECK 313 +#define PIDX_PROV_PARAM_TLS13_KDF_KEY_CHECK 314 +#define PIDX_PROV_PARAM_TLS1_PRF_DIGEST_CHECK 315 +#define PIDX_PROV_PARAM_TLS1_PRF_EMS_CHECK 316 +#define PIDX_PROV_PARAM_TLS1_PRF_KEY_CHECK 317 +#define PIDX_PROV_PARAM_VERSION 115 +#define PIDX_PROV_PARAM_X942KDF_KEY_CHECK 318 +#define PIDX_PROV_PARAM_X963KDF_DIGEST_CHECK 319 +#define PIDX_PROV_PARAM_X963KDF_KEY_CHECK 320 +#define PIDX_RAND_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_RAND_PARAM_GENERATE 321 +#define PIDX_RAND_PARAM_MAX_REQUEST 322 +#define PIDX_RAND_PARAM_STATE 323 +#define PIDX_RAND_PARAM_STRENGTH 324 +#define PIDX_RAND_PARAM_TEST_ENTROPY 325 +#define PIDX_RAND_PARAM_TEST_NONCE 326 +#define PIDX_SIGNATURE_PARAM_ADD_RANDOM 327 +#define PIDX_SIGNATURE_PARAM_ALGORITHM_ID PIDX_PKEY_PARAM_ALGORITHM_ID +#define PIDX_SIGNATURE_PARAM_ALGORITHM_ID_PARAMS PIDX_PKEY_PARAM_ALGORITHM_ID_PARAMS +#define PIDX_SIGNATURE_PARAM_CONTEXT_STRING 328 +#define PIDX_SIGNATURE_PARAM_DETERMINISTIC 329 +#define PIDX_SIGNATURE_PARAM_DIGEST PIDX_PKEY_PARAM_DIGEST +#define PIDX_SIGNATURE_PARAM_DIGEST_SIZE PIDX_PKEY_PARAM_DIGEST_SIZE +#define PIDX_SIGNATURE_PARAM_FIPS_APPROVED_INDICATOR PIDX_ALG_PARAM_FIPS_APPROVED_INDICATOR +#define PIDX_SIGNATURE_PARAM_FIPS_DIGEST_CHECK PIDX_PKEY_PARAM_FIPS_DIGEST_CHECK +#define PIDX_SIGNATURE_PARAM_FIPS_KEY_CHECK PIDX_PKEY_PARAM_FIPS_KEY_CHECK +#define PIDX_SIGNATURE_PARAM_FIPS_RSA_PSS_SALTLEN_CHECK 300 +#define PIDX_SIGNATURE_PARAM_FIPS_SIGN_CHECK PIDX_PKEY_PARAM_FIPS_SIGN_CHECK +#define PIDX_SIGNATURE_PARAM_FIPS_SIGN_X931_PAD_CHECK 330 +#define PIDX_SIGNATURE_PARAM_FIPS_VERIFY_MESSAGE 331 +#define PIDX_SIGNATURE_PARAM_INSTANCE 332 +#define PIDX_SIGNATURE_PARAM_KAT 333 +#define PIDX_SIGNATURE_PARAM_MESSAGE_ENCODING 334 +#define PIDX_SIGNATURE_PARAM_MGF1_DIGEST PIDX_PKEY_PARAM_MGF1_DIGEST +#define PIDX_SIGNATURE_PARAM_MGF1_PROPERTIES PIDX_PKEY_PARAM_MGF1_PROPERTIES +#define PIDX_SIGNATURE_PARAM_MU 335 +#define PIDX_SIGNATURE_PARAM_NONCE_TYPE 336 +#define PIDX_SIGNATURE_PARAM_PAD_MODE PIDX_PKEY_PARAM_PAD_MODE +#define PIDX_SIGNATURE_PARAM_PROPERTIES PIDX_PKEY_PARAM_PROPERTIES +#define PIDX_SIGNATURE_PARAM_PSS_SALTLEN 271 +#define PIDX_SIGNATURE_PARAM_SIGNATURE 337 +#define PIDX_SIGNATURE_PARAM_TEST_ENTROPY 338 +#define PIDX_SKEY_PARAM_KEY_LENGTH 339 +#define PIDX_SKEY_PARAM_RAW_BYTES 340 +#define PIDX_STORE_PARAM_ALIAS 341 +#define PIDX_STORE_PARAM_DIGEST 3 +#define PIDX_STORE_PARAM_EXPECT 342 +#define PIDX_STORE_PARAM_FINGERPRINT 343 +#define PIDX_STORE_PARAM_INPUT_TYPE 174 +#define PIDX_STORE_PARAM_ISSUER 296 +#define PIDX_STORE_PARAM_PROPERTIES 7 +#define PIDX_STORE_PARAM_SERIAL 344 +#define PIDX_STORE_PARAM_SUBJECT 345 diff --git a/deps/openssl/config/archs/linux-elf/asm_avx2/include/openssl/asn1.h b/deps/openssl/config/archs/linux-elf/asm_avx2/include/openssl/asn1.h index 21ff58e3d803d4..15e9e44674b0f3 100644 --- a/deps/openssl/config/archs/linux-elf/asm_avx2/include/openssl/asn1.h +++ b/deps/openssl/config/archs/linux-elf/asm_avx2/include/openssl/asn1.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/asn1.h.in * - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -21,6 +21,9 @@ # define HEADER_ASN1_H # endif +# ifndef OPENSSL_NO_STDIO +# include +# endif # include # include # include @@ -50,14 +53,14 @@ extern "C" { # define V_ASN1_PRIMITIVE_TAG 0x1f # define V_ASN1_PRIMATIVE_TAG /*compat*/ V_ASN1_PRIMITIVE_TAG -# define V_ASN1_APP_CHOOSE -2/* let the recipient choose */ -# define V_ASN1_OTHER -3/* used in ASN1_TYPE */ -# define V_ASN1_ANY -4/* used in ASN1 template code */ +# define V_ASN1_APP_CHOOSE -2 /* let the recipient choose */ +# define V_ASN1_OTHER -3 /* used in ASN1_TYPE */ +# define V_ASN1_ANY -4 /* used in ASN1 template code */ # define V_ASN1_UNDEF -1 /* ASN.1 tag values */ # define V_ASN1_EOC 0 -# define V_ASN1_BOOLEAN 1 /**/ +# define V_ASN1_BOOLEAN 1 # define V_ASN1_INTEGER 2 # define V_ASN1_BIT_STRING 3 # define V_ASN1_OCTET_STRING 4 @@ -70,19 +73,19 @@ extern "C" { # define V_ASN1_UTF8STRING 12 # define V_ASN1_SEQUENCE 16 # define V_ASN1_SET 17 -# define V_ASN1_NUMERICSTRING 18 /**/ +# define V_ASN1_NUMERICSTRING 18 # define V_ASN1_PRINTABLESTRING 19 # define V_ASN1_T61STRING 20 -# define V_ASN1_TELETEXSTRING 20/* alias */ -# define V_ASN1_VIDEOTEXSTRING 21 /**/ +# define V_ASN1_TELETEXSTRING 20 /* alias */ +# define V_ASN1_VIDEOTEXSTRING 21 # define V_ASN1_IA5STRING 22 # define V_ASN1_UTCTIME 23 -# define V_ASN1_GENERALIZEDTIME 24 /**/ -# define V_ASN1_GRAPHICSTRING 25 /**/ -# define V_ASN1_ISO64STRING 26 /**/ -# define V_ASN1_VISIBLESTRING 26/* alias */ -# define V_ASN1_GENERALSTRING 27 /**/ -# define V_ASN1_UNIVERSALSTRING 28 /**/ +# define V_ASN1_GENERALIZEDTIME 24 +# define V_ASN1_GRAPHICSTRING 25 +# define V_ASN1_ISO64STRING 26 +# define V_ASN1_VISIBLESTRING 26 /* alias */ +# define V_ASN1_GENERALSTRING 27 +# define V_ASN1_UNIVERSALSTRING 28 # define V_ASN1_BMPSTRING 30 /* @@ -155,7 +158,7 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_ALGOR, X509_ALGOR, X509_ALGOR) -# define ASN1_STRING_FLAG_BITS_LEFT 0x08/* Set if 0x07 has bits left value */ +# define ASN1_STRING_FLAG_BITS_LEFT 0x08 /* Set if 0x07 has bits left value */ /* * This indicates that the ASN1_STRING is not a real value but just a place * holder for the location where indefinite length constructed data should be @@ -275,7 +278,7 @@ typedef struct ASN1_TLC_st ASN1_TLC; /* This is just an opaque pointer */ typedef struct ASN1_VALUE_st ASN1_VALUE; -/* Declare ASN1 functions: the implement macro in in asn1t.h */ +/* Declare ASN1 functions: the implement macro is in asn1t.h */ /* * The mysterious 'extern' that's passed to some macros is innocuous, @@ -368,6 +371,7 @@ typedef struct ASN1_VALUE_st ASN1_VALUE; typedef void *d2i_of_void(void **, const unsigned char **, long); typedef int i2d_of_void(const void *, unsigned char **); +typedef int OSSL_i2d_of_void_ctx(const void *, unsigned char **, void *vctx); /*- * The following macros and typedefs allow an ASN1_ITEM @@ -996,6 +1000,8 @@ int ASN1_TYPE_get_int_octetstring(const ASN1_TYPE *a, long *num, unsigned char *data, int max_len); void *ASN1_item_unpack(const ASN1_STRING *oct, const ASN1_ITEM *it); +void *ASN1_item_unpack_ex(const ASN1_STRING *oct, const ASN1_ITEM *it, + OSSL_LIB_CTX *libctx, const char *propq); ASN1_STRING *ASN1_item_pack(void *obj, const ASN1_ITEM *it, ASN1_OCTET_STRING **oct); diff --git a/deps/openssl/config/archs/linux-elf/asm_avx2/include/openssl/bio.h b/deps/openssl/config/archs/linux-elf/asm_avx2/include/openssl/bio.h index f9aa74731c833c..e02f867beb0ec0 100644 --- a/deps/openssl/config/archs/linux-elf/asm_avx2/include/openssl/bio.h +++ b/deps/openssl/config/archs/linux-elf/asm_avx2/include/openssl/bio.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/bio.h.in * - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -67,8 +67,13 @@ extern "C" { # define BIO_TYPE_DGRAM_SCTP (24|BIO_TYPE_SOURCE_SINK|BIO_TYPE_DESCRIPTOR) # endif # define BIO_TYPE_CORE_TO_PROV (25|BIO_TYPE_SOURCE_SINK) +# define BIO_TYPE_DGRAM_PAIR (26|BIO_TYPE_SOURCE_SINK) +# define BIO_TYPE_DGRAM_MEM (27|BIO_TYPE_SOURCE_SINK) +/* Custom type starting index returned by BIO_get_new_index() */ #define BIO_TYPE_START 128 +/* Custom type maximum index that can be returned by BIO_get_new_index() */ +#define BIO_TYPE_MASK 0xFF /* * BIO_FILENAME_READ|BIO_CLOSE to open or close on free. @@ -171,6 +176,31 @@ extern "C" { # define BIO_CTRL_SET_INDENT 80 # define BIO_CTRL_GET_INDENT 81 +# define BIO_CTRL_DGRAM_GET_LOCAL_ADDR_CAP 82 +# define BIO_CTRL_DGRAM_GET_LOCAL_ADDR_ENABLE 83 +# define BIO_CTRL_DGRAM_SET_LOCAL_ADDR_ENABLE 84 +# define BIO_CTRL_DGRAM_GET_EFFECTIVE_CAPS 85 +# define BIO_CTRL_DGRAM_GET_CAPS 86 +# define BIO_CTRL_DGRAM_SET_CAPS 87 +# define BIO_CTRL_DGRAM_GET_NO_TRUNC 88 +# define BIO_CTRL_DGRAM_SET_NO_TRUNC 89 + +/* + * internal BIO: + * # define BIO_CTRL_SET_KTLS_TX_ZEROCOPY_SENDFILE 90 + */ + +# define BIO_CTRL_GET_RPOLL_DESCRIPTOR 91 +# define BIO_CTRL_GET_WPOLL_DESCRIPTOR 92 +# define BIO_CTRL_DGRAM_DETECT_PEER_ADDR 93 +# define BIO_CTRL_DGRAM_SET0_LOCAL_ADDR 94 + +# define BIO_DGRAM_CAP_NONE 0U +# define BIO_DGRAM_CAP_HANDLES_SRC_ADDR (1U << 0) +# define BIO_DGRAM_CAP_HANDLES_DST_ADDR (1U << 1) +# define BIO_DGRAM_CAP_PROVIDES_SRC_ADDR (1U << 2) +# define BIO_DGRAM_CAP_PROVIDES_DST_ADDR (1U << 3) + # ifndef OPENSSL_NO_KTLS # define BIO_get_ktls_send(b) \ (BIO_ctrl(b, BIO_CTRL_GET_KTLS_SEND, 0, NULL) > 0) @@ -208,7 +238,7 @@ extern "C" { # define BIO_FLAGS_NONCLEAR_RST 0x400 # define BIO_FLAGS_IN_EOF 0x800 -/* the BIO FLAGS values 0x1000 to 0x4000 are reserved for internal KTLS flags */ +/* the BIO FLAGS values 0x1000 to 0x8000 are reserved for internal KTLS flags */ typedef union bio_addr_st BIO_ADDR; typedef struct bio_addrinfo_st BIO_ADDRINFO; @@ -256,12 +286,14 @@ void BIO_clear_flags(BIO *b, int flags); # define BIO_RR_ACCEPT 0x03 /* These are passed by the BIO callback */ -# define BIO_CB_FREE 0x01 -# define BIO_CB_READ 0x02 -# define BIO_CB_WRITE 0x03 -# define BIO_CB_PUTS 0x04 -# define BIO_CB_GETS 0x05 -# define BIO_CB_CTRL 0x06 +# define BIO_CB_FREE 0x01 +# define BIO_CB_READ 0x02 +# define BIO_CB_WRITE 0x03 +# define BIO_CB_PUTS 0x04 +# define BIO_CB_GETS 0x05 +# define BIO_CB_CTRL 0x06 +# define BIO_CB_RECVMMSG 0x07 +# define BIO_CB_SENDMMSG 0x08 /* * The callback is called before and after the underling operation, The @@ -362,6 +394,36 @@ struct bio_dgram_sctp_prinfo { }; # endif +/* BIO_sendmmsg/BIO_recvmmsg-related definitions */ +typedef struct bio_msg_st { + void *data; + size_t data_len; + BIO_ADDR *peer, *local; + uint64_t flags; +} BIO_MSG; + +typedef struct bio_mmsg_cb_args_st { + BIO_MSG *msg; + size_t stride, num_msg; + uint64_t flags; + size_t *msgs_processed; +} BIO_MMSG_CB_ARGS; + +#define BIO_POLL_DESCRIPTOR_TYPE_NONE 0 +#define BIO_POLL_DESCRIPTOR_TYPE_SOCK_FD 1 +#define BIO_POLL_DESCRIPTOR_TYPE_SSL 2 +#define BIO_POLL_DESCRIPTOR_CUSTOM_START 8192 + +typedef struct bio_poll_descriptor_st { + uint32_t type; + union { + int fd; + void *custom; + uintptr_t custom_ui; + SSL *ssl; + } value; +} BIO_POLL_DESCRIPTOR; + /* * #define BIO_CONN_get_param_hostname BIO_ctrl */ @@ -428,10 +490,17 @@ struct bio_dgram_sctp_prinfo { # define BIO_C_SET_CONNECT_MODE 155 +# define BIO_C_SET_TFO 156 /* like BIO_C_SET_NBIO */ + +# define BIO_C_SET_SOCK_TYPE 157 +# define BIO_C_GET_SOCK_TYPE 158 +# define BIO_C_GET_DGRAM_BIO 159 + # define BIO_set_app_data(s,arg) BIO_set_ex_data(s,0,arg) # define BIO_get_app_data(s) BIO_get_ex_data(s,0) -# define BIO_set_nbio(b,n) BIO_ctrl(b,BIO_C_SET_NBIO,(n),NULL) +# define BIO_set_nbio(b,n) BIO_ctrl(b,BIO_C_SET_NBIO,(n),NULL) +# define BIO_set_tfo(b,n) BIO_ctrl(b,BIO_C_SET_TFO,(n),NULL) # ifndef OPENSSL_NO_SOCK /* IP families we support, for BIO_s_connect() and BIO_s_accept() */ @@ -452,7 +521,11 @@ struct bio_dgram_sctp_prinfo { # define BIO_get_conn_port(b) ((const char *)BIO_ptr_ctrl(b,BIO_C_GET_CONNECT,1)) # define BIO_get_conn_address(b) ((const BIO_ADDR *)BIO_ptr_ctrl(b,BIO_C_GET_CONNECT,2)) # define BIO_get_conn_ip_family(b) BIO_ctrl(b,BIO_C_GET_CONNECT,3,NULL) +# define BIO_get_conn_mode(b) BIO_ctrl(b,BIO_C_GET_CONNECT,4,NULL) # define BIO_set_conn_mode(b,n) BIO_ctrl(b,BIO_C_SET_CONNECT_MODE,(n),NULL) +# define BIO_set_sock_type(b,t) BIO_ctrl(b,BIO_C_SET_SOCK_TYPE,(t),NULL) +# define BIO_get_sock_type(b) BIO_ctrl(b,BIO_C_GET_SOCK_TYPE,0,NULL) +# define BIO_get0_dgram_bio(b, p) BIO_ctrl(b,BIO_C_GET_DGRAM_BIO,0,(void *)(BIO **)(p)) /* BIO_s_accept() */ # define BIO_set_accept_name(b,name) BIO_ctrl(b,BIO_C_SET_ACCEPT,0, \ @@ -469,6 +542,7 @@ struct bio_dgram_sctp_prinfo { (char *)(bio)) # define BIO_set_accept_ip_family(b,f) BIO_int_ctrl(b,BIO_C_SET_ACCEPT,4,f) # define BIO_get_accept_ip_family(b) BIO_ctrl(b,BIO_C_GET_ACCEPT,4,NULL) +# define BIO_set_tfo_accept(b,n) BIO_ctrl(b,BIO_C_SET_ACCEPT,5,(n)?(void *)"a":NULL) /* Aliases kept for backward compatibility */ # define BIO_BIND_NORMAL 0 @@ -596,8 +670,32 @@ int BIO_ctrl_reset_read_request(BIO *b); (int)BIO_ctrl(b, BIO_CTRL_DGRAM_GET_PEER, 0, (char *)(peer)) # define BIO_dgram_set_peer(b,peer) \ (int)BIO_ctrl(b, BIO_CTRL_DGRAM_SET_PEER, 0, (char *)(peer)) +# define BIO_dgram_detect_peer_addr(b,peer) \ + (int)BIO_ctrl(b, BIO_CTRL_DGRAM_DETECT_PEER_ADDR, 0, (char *)(peer)) # define BIO_dgram_get_mtu_overhead(b) \ (unsigned int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_MTU_OVERHEAD, 0, NULL) +# define BIO_dgram_get_local_addr_cap(b) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_LOCAL_ADDR_CAP, 0, NULL) +# define BIO_dgram_get_local_addr_enable(b, penable) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_LOCAL_ADDR_ENABLE, 0, (char *)(penable)) +# define BIO_dgram_set_local_addr_enable(b, enable) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET_LOCAL_ADDR_ENABLE, (enable), NULL) +# define BIO_dgram_get_effective_caps(b) \ + (uint32_t)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_EFFECTIVE_CAPS, 0, NULL) +# define BIO_dgram_get_caps(b) \ + (uint32_t)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_CAPS, 0, NULL) +# define BIO_dgram_set_caps(b, caps) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET_CAPS, (long)(caps), NULL) +# define BIO_dgram_get_no_trunc(b) \ + (unsigned int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_NO_TRUNC, 0, NULL) +# define BIO_dgram_set_no_trunc(b, enable) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET_NO_TRUNC, (enable), NULL) +# define BIO_dgram_get_mtu(b) \ + (unsigned int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_MTU, 0, NULL) +# define BIO_dgram_set_mtu(b, mtu) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET_MTU, (mtu), NULL) +# define BIO_dgram_set0_local_addr(b, addr) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET0_LOCAL_ADDR, 0, (addr)) /* ctrl macros for BIO_f_prefix */ # define BIO_set_prefix(b,p) BIO_ctrl((b), BIO_CTRL_SET_PREFIX, 0, (void *)(p)) @@ -640,10 +738,18 @@ void BIO_vfree(BIO *a); int BIO_up_ref(BIO *a); int BIO_read(BIO *b, void *data, int dlen); int BIO_read_ex(BIO *b, void *data, size_t dlen, size_t *readbytes); +__owur int BIO_recvmmsg(BIO *b, BIO_MSG *msg, + size_t stride, size_t num_msg, uint64_t flags, + size_t *msgs_processed); int BIO_gets(BIO *bp, char *buf, int size); int BIO_get_line(BIO *bio, char *buf, int size); int BIO_write(BIO *b, const void *data, int dlen); int BIO_write_ex(BIO *b, const void *data, size_t dlen, size_t *written); +__owur int BIO_sendmmsg(BIO *b, BIO_MSG *msg, + size_t stride, size_t num_msg, uint64_t flags, + size_t *msgs_processed); +__owur int BIO_get_rpoll_descriptor(BIO *b, BIO_POLL_DESCRIPTOR *desc); +__owur int BIO_get_wpoll_descriptor(BIO *b, BIO_POLL_DESCRIPTOR *desc); int BIO_puts(BIO *bp, const char *buf); int BIO_indent(BIO *b, int indent, int max); long BIO_ctrl(BIO *bp, int cmd, long larg, void *parg); @@ -667,6 +773,9 @@ int BIO_nwrite0(BIO *bio, char **buf); int BIO_nwrite(BIO *bio, char **buf, int num); const BIO_METHOD *BIO_s_mem(void); +# ifndef OPENSSL_NO_DGRAM +const BIO_METHOD *BIO_s_dgram_mem(void); +# endif const BIO_METHOD *BIO_s_secmem(void); BIO *BIO_new_mem_buf(const void *buf, int len); # ifndef OPENSSL_NO_SOCK @@ -686,6 +795,7 @@ const BIO_METHOD *BIO_f_nbio_test(void); const BIO_METHOD *BIO_f_prefix(void); const BIO_METHOD *BIO_s_core(void); # ifndef OPENSSL_NO_DGRAM +const BIO_METHOD *BIO_s_dgram_pair(void); const BIO_METHOD *BIO_s_datagram(void); int BIO_dgram_non_fatal_error(int error); BIO *BIO_new_dgram(int fd, int close_flag); @@ -704,6 +814,7 @@ int BIO_dgram_sctp_msg_waiting(BIO *b); # ifndef OPENSSL_NO_SOCK int BIO_sock_should_retry(int i); int BIO_sock_non_fatal_error(int error); +int BIO_err_is_non_fatal(unsigned int errcode); int BIO_socket_wait(int fd, int for_read, time_t max_time); # endif int BIO_wait(BIO *bio, time_t max_time, unsigned int nap_milliseconds); @@ -726,6 +837,8 @@ int BIO_hex_string(BIO *out, int indent, int width, const void *data, # ifndef OPENSSL_NO_SOCK BIO_ADDR *BIO_ADDR_new(void); +int BIO_ADDR_copy(BIO_ADDR *dst, const BIO_ADDR *src); +BIO_ADDR *BIO_ADDR_dup(const BIO_ADDR *ap); int BIO_ADDR_rawmake(BIO_ADDR *ap, int family, const void *where, size_t wherelen, unsigned short port); void BIO_ADDR_free(BIO_ADDR *); @@ -788,6 +901,7 @@ int BIO_sock_info(int sock, # define BIO_SOCK_KEEPALIVE 0x04 # define BIO_SOCK_NONBLOCK 0x08 # define BIO_SOCK_NODELAY 0x10 +# define BIO_SOCK_TFO 0x20 int BIO_socket(int domain, int socktype, int protocol, int options); int BIO_connect(int sock, const BIO_ADDR *addr, int options); @@ -805,6 +919,11 @@ BIO *BIO_new_fd(int fd, int close_flag); int BIO_new_bio_pair(BIO **bio1, size_t writebuf1, BIO **bio2, size_t writebuf2); +# ifndef OPENSSL_NO_DGRAM +int BIO_new_bio_dgram_pair(BIO **bio1, size_t writebuf1, + BIO **bio2, size_t writebuf2); +# endif + /* * If successful, returns 1 and in *bio1, *bio2 two BIO pair endpoints. * Otherwise returns 0 and sets *bio1 and *bio2 to NULL. Size 0 uses default @@ -849,38 +968,54 @@ ossl_bio__attr__((__format__(ossl_bio__printf__, 3, 0))); BIO_METHOD *BIO_meth_new(int type, const char *name); void BIO_meth_free(BIO_METHOD *biom); -int (*BIO_meth_get_write(const BIO_METHOD *biom)) (BIO *, const char *, int); -int (*BIO_meth_get_write_ex(const BIO_METHOD *biom)) (BIO *, const char *, size_t, - size_t *); int BIO_meth_set_write(BIO_METHOD *biom, int (*write) (BIO *, const char *, int)); int BIO_meth_set_write_ex(BIO_METHOD *biom, int (*bwrite) (BIO *, const char *, size_t, size_t *)); -int (*BIO_meth_get_read(const BIO_METHOD *biom)) (BIO *, char *, int); -int (*BIO_meth_get_read_ex(const BIO_METHOD *biom)) (BIO *, char *, size_t, size_t *); +int BIO_meth_set_sendmmsg(BIO_METHOD *biom, + int (*f) (BIO *, BIO_MSG *, size_t, size_t, + uint64_t, size_t *)); int BIO_meth_set_read(BIO_METHOD *biom, int (*read) (BIO *, char *, int)); int BIO_meth_set_read_ex(BIO_METHOD *biom, int (*bread) (BIO *, char *, size_t, size_t *)); -int (*BIO_meth_get_puts(const BIO_METHOD *biom)) (BIO *, const char *); +int BIO_meth_set_recvmmsg(BIO_METHOD *biom, + int (*f) (BIO *, BIO_MSG *, size_t, size_t, + uint64_t, size_t *)); int BIO_meth_set_puts(BIO_METHOD *biom, int (*puts) (BIO *, const char *)); -int (*BIO_meth_get_gets(const BIO_METHOD *biom)) (BIO *, char *, int); int BIO_meth_set_gets(BIO_METHOD *biom, int (*ossl_gets) (BIO *, char *, int)); -long (*BIO_meth_get_ctrl(const BIO_METHOD *biom)) (BIO *, int, long, void *); int BIO_meth_set_ctrl(BIO_METHOD *biom, long (*ctrl) (BIO *, int, long, void *)); -int (*BIO_meth_get_create(const BIO_METHOD *bion)) (BIO *); int BIO_meth_set_create(BIO_METHOD *biom, int (*create) (BIO *)); -int (*BIO_meth_get_destroy(const BIO_METHOD *biom)) (BIO *); int BIO_meth_set_destroy(BIO_METHOD *biom, int (*destroy) (BIO *)); -long (*BIO_meth_get_callback_ctrl(const BIO_METHOD *biom)) - (BIO *, int, BIO_info_cb *); int BIO_meth_set_callback_ctrl(BIO_METHOD *biom, long (*callback_ctrl) (BIO *, int, BIO_info_cb *)); - +# ifndef OPENSSL_NO_DEPRECATED_3_5 +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_write(const BIO_METHOD *biom)) (BIO *, const char *, + int); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_write_ex(const BIO_METHOD *biom)) (BIO *, const char *, + size_t, size_t *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_sendmmsg(const BIO_METHOD *biom))(BIO *, BIO_MSG *, + size_t, size_t, + uint64_t, size_t *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_read(const BIO_METHOD *biom)) (BIO *, char *, int); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_read_ex(const BIO_METHOD *biom)) (BIO *, char *, + size_t, size_t *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_recvmmsg(const BIO_METHOD *biom))(BIO *, BIO_MSG *, + size_t, size_t, + uint64_t, size_t *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_puts(const BIO_METHOD *biom)) (BIO *, const char *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_gets(const BIO_METHOD *biom)) (BIO *, char *, int); +OSSL_DEPRECATEDIN_3_5 long (*BIO_meth_get_ctrl(const BIO_METHOD *biom)) (BIO *, int, + long, void *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_create(const BIO_METHOD *bion)) (BIO *); +OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_destroy(const BIO_METHOD *biom)) (BIO *); +OSSL_DEPRECATEDIN_3_5 long (*BIO_meth_get_callback_ctrl(const BIO_METHOD *biom)) (BIO *, int, + BIO_info_cb *); +# endif # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/linux-elf/asm_avx2/include/openssl/cmp.h b/deps/openssl/config/archs/linux-elf/asm_avx2/include/openssl/cmp.h index 49825570d8c303..05aed3029d594c 100644 --- a/deps/openssl/config/archs/linux-elf/asm_avx2/include/openssl/cmp.h +++ b/deps/openssl/config/archs/linux-elf/asm_avx2/include/openssl/cmp.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/cmp.h.in * - * Copyright 2007-2023 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2007-2024 The OpenSSL Project Authors. All Rights Reserved. * Copyright Nokia 2007-2019 * Copyright Siemens AG 2015-2019 * @@ -35,7 +35,9 @@ extern "C" { # endif -# define OSSL_CMP_PVNO 2 +# define OSSL_CMP_PVNO_2 2 +# define OSSL_CMP_PVNO_3 3 +# define OSSL_CMP_PVNO OSSL_CMP_PVNO_2 /* v2 is the default */ /*- * PKIFailureInfo ::= BIT STRING { @@ -137,7 +139,6 @@ extern "C" { # if OSSL_CMP_PKIFAILUREINFO_MAX_BIT_PATTERN > INT_MAX # error CMP_PKIFAILUREINFO_MAX bit pattern does not fit in type int # endif - typedef ASN1_BIT_STRING OSSL_CMP_PKIFAILUREINFO; # define OSSL_CMP_CTX_FAILINFO_badAlg (1 << 0) @@ -203,8 +204,8 @@ typedef ASN1_BIT_STRING OSSL_CMP_PKIFAILUREINFO; # define OSSL_CMP_PKISTATUS_revocationWarning 4 # define OSSL_CMP_PKISTATUS_revocationNotification 5 # define OSSL_CMP_PKISTATUS_keyUpdateWarning 6 - typedef ASN1_INTEGER OSSL_CMP_PKISTATUS; + DECLARE_ASN1_ITEM(OSSL_CMP_PKISTATUS) # define OSSL_CMP_CERTORENCCERT_CERTIFICATE 0 @@ -274,6 +275,46 @@ SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CMP_ITAV, OSSL_CMP_ITAV, OSSL_CMP_ITAV) #define sk_OSSL_CMP_ITAV_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_CMP_ITAV) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_CMP_ITAV_sk_type(sk), ossl_check_OSSL_CMP_ITAV_copyfunc_type(copyfunc), ossl_check_OSSL_CMP_ITAV_freefunc_type(freefunc))) #define sk_OSSL_CMP_ITAV_set_cmp_func(sk, cmp) ((sk_OSSL_CMP_ITAV_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CMP_ITAV_sk_type(sk), ossl_check_OSSL_CMP_ITAV_compfunc_type(cmp))) + +typedef struct ossl_cmp_crlstatus_st OSSL_CMP_CRLSTATUS; +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CMP_CRLSTATUS, OSSL_CMP_CRLSTATUS, OSSL_CMP_CRLSTATUS) +#define sk_OSSL_CMP_CRLSTATUS_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_value(sk, idx) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_value(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk), (idx))) +#define sk_OSSL_CMP_CRLSTATUS_new(cmp) ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_new(ossl_check_OSSL_CMP_CRLSTATUS_compfunc_type(cmp))) +#define sk_OSSL_CMP_CRLSTATUS_new_null() ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_new_null()) +#define sk_OSSL_CMP_CRLSTATUS_new_reserve(cmp, n) ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_CMP_CRLSTATUS_compfunc_type(cmp), (n))) +#define sk_OSSL_CMP_CRLSTATUS_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), (n)) +#define sk_OSSL_CMP_CRLSTATUS_free(sk) OPENSSL_sk_free(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_delete(sk, i) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_delete(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), (i))) +#define sk_OSSL_CMP_CRLSTATUS_delete_ptr(sk, ptr) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr))) +#define sk_OSSL_CMP_CRLSTATUS_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr)) +#define sk_OSSL_CMP_CRLSTATUS_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr)) +#define sk_OSSL_CMP_CRLSTATUS_pop(sk) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_pop(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk))) +#define sk_OSSL_CMP_CRLSTATUS_shift(sk) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_shift(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk))) +#define sk_OSSL_CMP_CRLSTATUS_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk),ossl_check_OSSL_CMP_CRLSTATUS_freefunc_type(freefunc)) +#define sk_OSSL_CMP_CRLSTATUS_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr), (idx)) +#define sk_OSSL_CMP_CRLSTATUS_set(sk, idx, ptr) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_set(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), (idx), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr))) +#define sk_OSSL_CMP_CRLSTATUS_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr)) +#define sk_OSSL_CMP_CRLSTATUS_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr)) +#define sk_OSSL_CMP_CRLSTATUS_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr), pnum) +#define sk_OSSL_CMP_CRLSTATUS_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CRLSTATUS_dup(sk) ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_dup(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk))) +#define sk_OSSL_CMP_CRLSTATUS_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_copyfunc_type(copyfunc), ossl_check_OSSL_CMP_CRLSTATUS_freefunc_type(freefunc))) +#define sk_OSSL_CMP_CRLSTATUS_set_cmp_func(sk, cmp) ((sk_OSSL_CMP_CRLSTATUS_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_compfunc_type(cmp))) + + +typedef OSSL_CRMF_ATTRIBUTETYPEANDVALUE OSSL_CMP_ATAV; +# define OSSL_CMP_ATAV_free OSSL_CRMF_ATTRIBUTETYPEANDVALUE_free +typedef STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) OSSL_CMP_ATAVS; +DECLARE_ASN1_FUNCTIONS(OSSL_CMP_ATAVS) +# define stack_st_OSSL_CMP_ATAV stack_st_OSSL_CRMF_ATTRIBUTETYPEANDVALUE +# define sk_OSSL_CMP_ATAV_num sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_num +# define sk_OSSL_CMP_ATAV_value sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_value +# define sk_OSSL_CMP_ATAV_push sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_push +# define sk_OSSL_CMP_ATAV_pop_free sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_pop_free + typedef struct ossl_cmp_revrepcontent_st OSSL_CMP_REVREPCONTENT; typedef struct ossl_cmp_pkisi_st OSSL_CMP_PKISI; DECLARE_ASN1_FUNCTIONS(OSSL_CMP_PKISI) @@ -375,21 +416,75 @@ void OSSL_CMP_ITAV_set0(OSSL_CMP_ITAV *itav, ASN1_OBJECT *type, ASN1_TYPE *value); ASN1_OBJECT *OSSL_CMP_ITAV_get0_type(const OSSL_CMP_ITAV *itav); ASN1_TYPE *OSSL_CMP_ITAV_get0_value(const OSSL_CMP_ITAV *itav); -int OSSL_CMP_ITAV_push0_stack_item(STACK_OF(OSSL_CMP_ITAV) **itav_sk_p, +int OSSL_CMP_ITAV_push0_stack_item(STACK_OF(OSSL_CMP_ITAV) **sk_p, OSSL_CMP_ITAV *itav); void OSSL_CMP_ITAV_free(OSSL_CMP_ITAV *itav); + +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new0_certProfile(STACK_OF(ASN1_UTF8STRING) + *certProfile); +int OSSL_CMP_ITAV_get0_certProfile(const OSSL_CMP_ITAV *itav, + STACK_OF(ASN1_UTF8STRING) **out); +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new_caCerts(const STACK_OF(X509) *caCerts); +int OSSL_CMP_ITAV_get0_caCerts(const OSSL_CMP_ITAV *itav, STACK_OF(X509) **out); + +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new_rootCaCert(const X509 *rootCaCert); +int OSSL_CMP_ITAV_get0_rootCaCert(const OSSL_CMP_ITAV *itav, X509 **out); +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new_rootCaKeyUpdate(const X509 *newWithNew, + const X509 *newWithOld, + const X509 *oldWithNew); +int OSSL_CMP_ITAV_get0_rootCaKeyUpdate(const OSSL_CMP_ITAV *itav, + X509 **newWithNew, + X509 **newWithOld, + X509 **oldWithNew); + +OSSL_CMP_CRLSTATUS *OSSL_CMP_CRLSTATUS_create(const X509_CRL *crl, + const X509 *cert, int only_DN); +OSSL_CMP_CRLSTATUS *OSSL_CMP_CRLSTATUS_new1(const DIST_POINT_NAME *dpn, + const GENERAL_NAMES *issuer, + const ASN1_TIME *thisUpdate); +int OSSL_CMP_CRLSTATUS_get0(const OSSL_CMP_CRLSTATUS *crlstatus, + DIST_POINT_NAME **dpn, GENERAL_NAMES **issuer, + ASN1_TIME **thisUpdate); +void OSSL_CMP_CRLSTATUS_free(OSSL_CMP_CRLSTATUS *crlstatus); +OSSL_CMP_ITAV +*OSSL_CMP_ITAV_new0_crlStatusList(STACK_OF(OSSL_CMP_CRLSTATUS) *crlStatusList); +int OSSL_CMP_ITAV_get0_crlStatusList(const OSSL_CMP_ITAV *itav, + STACK_OF(OSSL_CMP_CRLSTATUS) **out); +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new_crls(const X509_CRL *crls); +int OSSL_CMP_ITAV_get0_crls(const OSSL_CMP_ITAV *it, STACK_OF(X509_CRL) **out); +OSSL_CMP_ITAV +*OSSL_CMP_ITAV_new0_certReqTemplate(OSSL_CRMF_CERTTEMPLATE *certTemplate, + OSSL_CMP_ATAVS *keySpec); +int OSSL_CMP_ITAV_get1_certReqTemplate(const OSSL_CMP_ITAV *itav, + OSSL_CRMF_CERTTEMPLATE **certTemplate, + OSSL_CMP_ATAVS **keySpec); + +OSSL_CMP_ATAV *OSSL_CMP_ATAV_create(ASN1_OBJECT *type, ASN1_TYPE *value); +void OSSL_CMP_ATAV_set0(OSSL_CMP_ATAV *itav, ASN1_OBJECT *type, + ASN1_TYPE *value); +ASN1_OBJECT *OSSL_CMP_ATAV_get0_type(const OSSL_CMP_ATAV *itav); +ASN1_TYPE *OSSL_CMP_ATAV_get0_value(const OSSL_CMP_ATAV *itav); +OSSL_CMP_ATAV *OSSL_CMP_ATAV_new_algId(const X509_ALGOR *alg); +X509_ALGOR *OSSL_CMP_ATAV_get0_algId(const OSSL_CMP_ATAV *atav); +OSSL_CMP_ATAV *OSSL_CMP_ATAV_new_rsaKeyLen(int len); +int OSSL_CMP_ATAV_get_rsaKeyLen(const OSSL_CMP_ATAV *atav); +int OSSL_CMP_ATAV_push1(OSSL_CMP_ATAVS **sk_p, const OSSL_CMP_ATAV *atav); + void OSSL_CMP_MSG_free(OSSL_CMP_MSG *msg); /* from cmp_ctx.c */ OSSL_CMP_CTX *OSSL_CMP_CTX_new(OSSL_LIB_CTX *libctx, const char *propq); void OSSL_CMP_CTX_free(OSSL_CMP_CTX *ctx); int OSSL_CMP_CTX_reinit(OSSL_CMP_CTX *ctx); +OSSL_LIB_CTX *OSSL_CMP_CTX_get0_libctx(const OSSL_CMP_CTX *ctx); +const char *OSSL_CMP_CTX_get0_propq(const OSSL_CMP_CTX *ctx); /* CMP general options: */ # define OSSL_CMP_OPT_LOG_VERBOSITY 0 /* CMP transfer options: */ -# define OSSL_CMP_OPT_KEEP_ALIVE 10 -# define OSSL_CMP_OPT_MSG_TIMEOUT 11 +# define OSSL_CMP_OPT_KEEP_ALIVE 10 +# define OSSL_CMP_OPT_MSG_TIMEOUT 11 # define OSSL_CMP_OPT_TOTAL_TIMEOUT 12 +# define OSSL_CMP_OPT_USE_TLS 13 /* CMP request options: */ # define OSSL_CMP_OPT_VALIDITY_DAYS 20 # define OSSL_CMP_OPT_SUBJECTALTNAME_NODEFAULT 21 @@ -407,6 +502,7 @@ int OSSL_CMP_CTX_reinit(OSSL_CMP_CTX *ctx); # define OSSL_CMP_OPT_DIGEST_ALGNID 34 # define OSSL_CMP_OPT_IGNORE_KEYUSAGE 35 # define OSSL_CMP_OPT_PERMIT_TA_IN_EXTRACERTS_FOR_IR 36 +# define OSSL_CMP_OPT_NO_CACHE_EXTRACERTS 37 int OSSL_CMP_CTX_set_option(OSSL_CMP_CTX *ctx, int opt, int val); int OSSL_CMP_CTX_get_option(const OSSL_CMP_CTX *ctx, int opt); /* CMP-specific callback for logging and outputting the error queue: */ @@ -420,9 +516,11 @@ int OSSL_CMP_CTX_set1_server(OSSL_CMP_CTX *ctx, const char *address); int OSSL_CMP_CTX_set_serverPort(OSSL_CMP_CTX *ctx, int port); int OSSL_CMP_CTX_set1_proxy(OSSL_CMP_CTX *ctx, const char *name); int OSSL_CMP_CTX_set1_no_proxy(OSSL_CMP_CTX *ctx, const char *names); +# ifndef OPENSSL_NO_HTTP int OSSL_CMP_CTX_set_http_cb(OSSL_CMP_CTX *ctx, OSSL_HTTP_bio_cb_t cb); int OSSL_CMP_CTX_set_http_cb_arg(OSSL_CMP_CTX *ctx, void *arg); void *OSSL_CMP_CTX_get_http_cb_arg(const OSSL_CMP_CTX *ctx); +# endif typedef OSSL_CMP_MSG *(*OSSL_CMP_transfer_cb_t) (OSSL_CMP_CTX *ctx, const OSSL_CMP_MSG *req); int OSSL_CMP_CTX_set_transfer_cb(OSSL_CMP_CTX *ctx, OSSL_CMP_transfer_cb_t cb); @@ -432,7 +530,9 @@ void *OSSL_CMP_CTX_get_transfer_cb_arg(const OSSL_CMP_CTX *ctx); int OSSL_CMP_CTX_set1_srvCert(OSSL_CMP_CTX *ctx, X509 *cert); int OSSL_CMP_CTX_set1_expected_sender(OSSL_CMP_CTX *ctx, const X509_NAME *name); int OSSL_CMP_CTX_set0_trustedStore(OSSL_CMP_CTX *ctx, X509_STORE *store); +# define OSSL_CMP_CTX_set0_trusted OSSL_CMP_CTX_set0_trustedStore X509_STORE *OSSL_CMP_CTX_get0_trustedStore(const OSSL_CMP_CTX *ctx); +# define OSSL_CMP_CTX_get0_trusted OSSL_CMP_CTX_get0_trustedStore int OSSL_CMP_CTX_set1_untrusted(OSSL_CMP_CTX *ctx, STACK_OF(X509) *certs); STACK_OF(X509) *OSSL_CMP_CTX_get0_untrusted(const OSSL_CMP_CTX *ctx); /* client authentication: */ @@ -448,12 +548,15 @@ int OSSL_CMP_CTX_set1_secretValue(OSSL_CMP_CTX *ctx, int OSSL_CMP_CTX_set1_recipient(OSSL_CMP_CTX *ctx, const X509_NAME *name); int OSSL_CMP_CTX_push0_geninfo_ITAV(OSSL_CMP_CTX *ctx, OSSL_CMP_ITAV *itav); int OSSL_CMP_CTX_reset_geninfo_ITAVs(OSSL_CMP_CTX *ctx); +STACK_OF(OSSL_CMP_ITAV) + *OSSL_CMP_CTX_get0_geninfo_ITAVs(const OSSL_CMP_CTX *ctx); int OSSL_CMP_CTX_set1_extraCertsOut(OSSL_CMP_CTX *ctx, STACK_OF(X509) *extraCertsOut); /* certificate template: */ int OSSL_CMP_CTX_set0_newPkey(OSSL_CMP_CTX *ctx, int priv, EVP_PKEY *pkey); EVP_PKEY *OSSL_CMP_CTX_get0_newPkey(const OSSL_CMP_CTX *ctx, int priv); int OSSL_CMP_CTX_set1_issuer(OSSL_CMP_CTX *ctx, const X509_NAME *name); +int OSSL_CMP_CTX_set1_serialNumber(OSSL_CMP_CTX *ctx, const ASN1_INTEGER *sn); int OSSL_CMP_CTX_set1_subjectName(OSSL_CMP_CTX *ctx, const X509_NAME *name); int OSSL_CMP_CTX_push1_subjectAltName(OSSL_CMP_CTX *ctx, const GENERAL_NAME *name); @@ -477,6 +580,7 @@ int OSSL_CMP_CTX_get_status(const OSSL_CMP_CTX *ctx); OSSL_CMP_PKIFREETEXT *OSSL_CMP_CTX_get0_statusString(const OSSL_CMP_CTX *ctx); int OSSL_CMP_CTX_get_failInfoCode(const OSSL_CMP_CTX *ctx); # define OSSL_CMP_PKISI_BUFLEN 1024 +X509 *OSSL_CMP_CTX_get0_validatedSrvCert(const OSSL_CMP_CTX *ctx); X509 *OSSL_CMP_CTX_get0_newCert(const OSSL_CMP_CTX *ctx); STACK_OF(X509) *OSSL_CMP_CTX_get1_newChain(const OSSL_CMP_CTX *ctx); STACK_OF(X509) *OSSL_CMP_CTX_get1_caPubs(const OSSL_CMP_CTX *ctx); @@ -498,10 +602,13 @@ OSSL_CMP_STATUSINFO_new(int status, int fail_info, const char *text); ASN1_OCTET_STRING *OSSL_CMP_HDR_get0_transactionID(const OSSL_CMP_PKIHEADER *hdr); ASN1_OCTET_STRING *OSSL_CMP_HDR_get0_recipNonce(const OSSL_CMP_PKIHEADER *hdr); +STACK_OF(OSSL_CMP_ITAV) + *OSSL_CMP_HDR_get0_geninfo_ITAVs(const OSSL_CMP_PKIHEADER *hdr); /* from cmp_msg.c */ OSSL_CMP_PKIHEADER *OSSL_CMP_MSG_get0_header(const OSSL_CMP_MSG *msg); int OSSL_CMP_MSG_get_bodytype(const OSSL_CMP_MSG *msg); +X509_PUBKEY *OSSL_CMP_MSG_get0_certreq_publickey(const OSSL_CMP_MSG *msg); int OSSL_CMP_MSG_update_transactionID(OSSL_CMP_CTX *ctx, OSSL_CMP_MSG *msg); int OSSL_CMP_MSG_update_recipNonce(OSSL_CMP_CTX *ctx, OSSL_CMP_MSG *msg); OSSL_CRMF_MSG *OSSL_CMP_CTX_setup_CRM(OSSL_CMP_CTX *ctx, int for_KUR, int rid); @@ -517,8 +624,10 @@ int OSSL_CMP_validate_cert_path(const OSSL_CMP_CTX *ctx, X509_STORE *trusted_store, X509 *cert); /* from cmp_http.c */ +# ifndef OPENSSL_NO_HTTP OSSL_CMP_MSG *OSSL_CMP_MSG_http_perform(OSSL_CMP_CTX *ctx, const OSSL_CMP_MSG *req); +# endif /* from cmp_server.c */ typedef struct ossl_cmp_srv_ctx_st OSSL_CMP_SRV_CTX; @@ -561,6 +670,13 @@ int OSSL_CMP_SRV_CTX_init(OSSL_CMP_SRV_CTX *srv_ctx, void *custom_ctx, OSSL_CMP_SRV_error_cb_t process_error, OSSL_CMP_SRV_certConf_cb_t process_certConf, OSSL_CMP_SRV_pollReq_cb_t process_pollReq); +typedef int (*OSSL_CMP_SRV_delayed_delivery_cb_t)(OSSL_CMP_SRV_CTX *srv_ctx, + const OSSL_CMP_MSG *req); +typedef int (*OSSL_CMP_SRV_clean_transaction_cb_t)(OSSL_CMP_SRV_CTX *srv_ctx, + const ASN1_OCTET_STRING *id); +int OSSL_CMP_SRV_CTX_init_trans(OSSL_CMP_SRV_CTX *srv_ctx, + OSSL_CMP_SRV_delayed_delivery_cb_t delay, + OSSL_CMP_SRV_clean_transaction_cb_t clean); OSSL_CMP_CTX *OSSL_CMP_SRV_CTX_get0_cmp_ctx(const OSSL_CMP_SRV_CTX *srv_ctx); void *OSSL_CMP_SRV_CTX_get0_custom_ctx(const OSSL_CMP_SRV_CTX *srv_ctx); int OSSL_CMP_SRV_CTX_set_send_unprotected_errors(OSSL_CMP_SRV_CTX *srv_ctx, @@ -577,6 +693,8 @@ X509 *OSSL_CMP_exec_certreq(OSSL_CMP_CTX *ctx, int req_type, # define OSSL_CMP_CR 2 # define OSSL_CMP_P10CR 4 # define OSSL_CMP_KUR 7 +# define OSSL_CMP_GENM 21 +# define OSSL_CMP_ERROR 23 # define OSSL_CMP_exec_IR_ses(ctx) \ OSSL_CMP_exec_certreq(ctx, OSSL_CMP_IR, NULL) # define OSSL_CMP_exec_CR_ses(ctx) \ @@ -590,6 +708,18 @@ int OSSL_CMP_try_certreq(OSSL_CMP_CTX *ctx, int req_type, int OSSL_CMP_exec_RR_ses(OSSL_CMP_CTX *ctx); STACK_OF(OSSL_CMP_ITAV) *OSSL_CMP_exec_GENM_ses(OSSL_CMP_CTX *ctx); +/* from cmp_genm.c */ +int OSSL_CMP_get1_caCerts(OSSL_CMP_CTX *ctx, STACK_OF(X509) **out); +int OSSL_CMP_get1_rootCaKeyUpdate(OSSL_CMP_CTX *ctx, + const X509 *oldWithOld, X509 **newWithNew, + X509 **newWithOld, X509 **oldWithNew); +int OSSL_CMP_get1_crlUpdate(OSSL_CMP_CTX *ctx, const X509 *crlcert, + const X509_CRL *last_crl, + X509_CRL **crl); +int OSSL_CMP_get1_certReqTemplate(OSSL_CMP_CTX *ctx, + OSSL_CRMF_CERTTEMPLATE **certTemplate, + OSSL_CMP_ATAVS **keySpec); + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/linux-elf/asm_avx2/include/openssl/cms.h b/deps/openssl/config/archs/linux-elf/asm_avx2/include/openssl/cms.h index 3b453e6a2187a2..63afab563557b0 100644 --- a/deps/openssl/config/archs/linux-elf/asm_avx2/include/openssl/cms.h +++ b/deps/openssl/config/archs/linux-elf/asm_avx2/include/openssl/cms.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/cms.h.in * - * Copyright 2008-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2008-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -31,8 +31,10 @@ extern "C" { # endif +typedef struct CMS_EnvelopedData_st CMS_EnvelopedData; typedef struct CMS_ContentInfo_st CMS_ContentInfo; typedef struct CMS_SignerInfo_st CMS_SignerInfo; +typedef struct CMS_SignedData_st CMS_SignedData; typedef struct CMS_CertificateChoices CMS_CertificateChoices; typedef struct CMS_RevocationInfoChoice_st CMS_RevocationInfoChoice; typedef struct CMS_RecipientInfo_st CMS_RecipientInfo; @@ -147,10 +149,14 @@ SKM_DEFINE_STACK_OF_INTERNAL(CMS_RevocationInfoChoice, CMS_RevocationInfoChoice, #define sk_CMS_RevocationInfoChoice_set_cmp_func(sk, cmp) ((sk_CMS_RevocationInfoChoice_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_CMS_RevocationInfoChoice_sk_type(sk), ossl_check_CMS_RevocationInfoChoice_compfunc_type(cmp))) +DECLARE_ASN1_ITEM(CMS_EnvelopedData) +DECLARE_ASN1_ALLOC_FUNCTIONS(CMS_SignedData) DECLARE_ASN1_FUNCTIONS(CMS_ContentInfo) DECLARE_ASN1_FUNCTIONS(CMS_ReceiptRequest) DECLARE_ASN1_PRINT_FUNCTION(CMS_ContentInfo) +DECLARE_ASN1_DUP_FUNCTION(CMS_EnvelopedData) + CMS_ContentInfo *CMS_ContentInfo_new_ex(OSSL_LIB_CTX *libctx, const char *propq); # define CMS_SIGNERINFO_ISSUER_SERIAL 0 @@ -190,6 +196,7 @@ CMS_ContentInfo *CMS_ContentInfo_new_ex(OSSL_LIB_CTX *libctx, const char *propq) # define CMS_ASCIICRLF 0x80000 # define CMS_CADES 0x100000 # define CMS_USE_ORIGINATOR_KEYID 0x200000 +# define CMS_NO_SIGNING_TIME 0x400000 const ASN1_OBJECT *CMS_get0_type(const CMS_ContentInfo *cms); @@ -217,13 +224,16 @@ int SMIME_write_CMS(BIO *bio, CMS_ContentInfo *cms, BIO *data, int flags); int CMS_final(CMS_ContentInfo *cms, BIO *data, BIO *dcont, unsigned int flags); +int CMS_final_digest(CMS_ContentInfo *cms, + const unsigned char *md, unsigned int mdlen, BIO *dcont, + unsigned int flags); CMS_ContentInfo *CMS_sign(X509 *signcert, EVP_PKEY *pkey, STACK_OF(X509) *certs, BIO *data, unsigned int flags); CMS_ContentInfo *CMS_sign_ex(X509 *signcert, EVP_PKEY *pkey, STACK_OF(X509) *certs, BIO *data, - unsigned int flags, OSSL_LIB_CTX *ctx, + unsigned int flags, OSSL_LIB_CTX *libctx, const char *propq); CMS_ContentInfo *CMS_sign_receipt(CMS_SignerInfo *si, @@ -233,27 +243,26 @@ CMS_ContentInfo *CMS_sign_receipt(CMS_SignerInfo *si, int CMS_data(CMS_ContentInfo *cms, BIO *out, unsigned int flags); CMS_ContentInfo *CMS_data_create(BIO *in, unsigned int flags); CMS_ContentInfo *CMS_data_create_ex(BIO *in, unsigned int flags, - OSSL_LIB_CTX *ctx, const char *propq); + OSSL_LIB_CTX *libctx, const char *propq); int CMS_digest_verify(CMS_ContentInfo *cms, BIO *dcont, BIO *out, unsigned int flags); CMS_ContentInfo *CMS_digest_create(BIO *in, const EVP_MD *md, unsigned int flags); CMS_ContentInfo *CMS_digest_create_ex(BIO *in, const EVP_MD *md, - unsigned int flags, OSSL_LIB_CTX *ctx, + unsigned int flags, OSSL_LIB_CTX *libctx, const char *propq); int CMS_EncryptedData_decrypt(CMS_ContentInfo *cms, const unsigned char *key, size_t keylen, BIO *dcont, BIO *out, unsigned int flags); - CMS_ContentInfo *CMS_EncryptedData_encrypt(BIO *in, const EVP_CIPHER *cipher, const unsigned char *key, size_t keylen, unsigned int flags); CMS_ContentInfo *CMS_EncryptedData_encrypt_ex(BIO *in, const EVP_CIPHER *cipher, const unsigned char *key, size_t keylen, unsigned int flags, - OSSL_LIB_CTX *ctx, + OSSL_LIB_CTX *libctx, const char *propq); int CMS_EncryptedData_set1_key(CMS_ContentInfo *cms, const EVP_CIPHER *ciph, @@ -272,7 +281,7 @@ CMS_ContentInfo *CMS_encrypt(STACK_OF(X509) *certs, BIO *in, const EVP_CIPHER *cipher, unsigned int flags); CMS_ContentInfo *CMS_encrypt_ex(STACK_OF(X509) *certs, BIO *in, const EVP_CIPHER *cipher, unsigned int flags, - OSSL_LIB_CTX *ctx, const char *propq); + OSSL_LIB_CTX *libctx, const char *propq); int CMS_decrypt(CMS_ContentInfo *cms, EVP_PKEY *pkey, X509 *cert, BIO *dcont, BIO *out, unsigned int flags); @@ -291,12 +300,16 @@ int CMS_RecipientInfo_type(CMS_RecipientInfo *ri); EVP_PKEY_CTX *CMS_RecipientInfo_get0_pkey_ctx(CMS_RecipientInfo *ri); CMS_ContentInfo *CMS_AuthEnvelopedData_create(const EVP_CIPHER *cipher); CMS_ContentInfo * -CMS_AuthEnvelopedData_create_ex(const EVP_CIPHER *cipher, OSSL_LIB_CTX *ctx, +CMS_AuthEnvelopedData_create_ex(const EVP_CIPHER *cipher, OSSL_LIB_CTX *libctx, const char *propq); CMS_ContentInfo *CMS_EnvelopedData_create(const EVP_CIPHER *cipher); CMS_ContentInfo *CMS_EnvelopedData_create_ex(const EVP_CIPHER *cipher, - OSSL_LIB_CTX *ctx, + OSSL_LIB_CTX *libctx, const char *propq); +BIO *CMS_EnvelopedData_decrypt(CMS_EnvelopedData *env, BIO *detached_data, + EVP_PKEY *pkey, X509 *cert, + ASN1_OCTET_STRING *secret, unsigned int flags, + OSSL_LIB_CTX *libctx, const char *propq); CMS_RecipientInfo *CMS_add1_recipient_cert(CMS_ContentInfo *cms, X509 *recip, unsigned int flags); @@ -385,6 +398,11 @@ ASN1_OCTET_STRING *CMS_SignerInfo_get0_signature(CMS_SignerInfo *si); int CMS_SignerInfo_sign(CMS_SignerInfo *si); int CMS_SignerInfo_verify(CMS_SignerInfo *si); int CMS_SignerInfo_verify_content(CMS_SignerInfo *si, BIO *chain); +BIO *CMS_SignedData_verify(CMS_SignedData *sd, BIO *detached_data, + STACK_OF(X509) *scerts, X509_STORE *store, + STACK_OF(X509) *extra, STACK_OF(X509_CRL) *crls, + unsigned int flags, + OSSL_LIB_CTX *libctx, const char *propq); int CMS_add_smimecap(CMS_SignerInfo *si, STACK_OF(X509_ALGOR) *algs); int CMS_add_simple_smimecap(STACK_OF(X509_ALGOR) **algs, @@ -441,7 +459,7 @@ CMS_ReceiptRequest *CMS_ReceiptRequest_create0_ex( unsigned char *id, int idlen, int allorfirst, STACK_OF(GENERAL_NAMES) *receiptList, STACK_OF(GENERAL_NAMES) *receiptsTo, - OSSL_LIB_CTX *ctx); + OSSL_LIB_CTX *libctx); int CMS_add1_ReceiptRequest(CMS_SignerInfo *si, CMS_ReceiptRequest *rr); void CMS_ReceiptRequest_get0_values(CMS_ReceiptRequest *rr, diff --git a/deps/openssl/config/archs/linux-elf/asm_avx2/include/openssl/comp.h b/deps/openssl/config/archs/linux-elf/asm_avx2/include/openssl/comp.h new file mode 100644 index 00000000000000..90e39511fe8d28 --- /dev/null +++ b/deps/openssl/config/archs/linux-elf/asm_avx2/include/openssl/comp.h @@ -0,0 +1,98 @@ +/* + * Copyright 2015-2024 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + + +#ifndef OPENSSL_COMP_H +# define OPENSSL_COMP_H +# pragma once + +# include +# ifndef OPENSSL_NO_DEPRECATED_3_0 +# define HEADER_COMP_H +# endif + +# include + +# include +# include +# ifdef __cplusplus +extern "C" { +# endif + + + +# ifndef OPENSSL_NO_COMP + +COMP_CTX *COMP_CTX_new(COMP_METHOD *meth); +const COMP_METHOD *COMP_CTX_get_method(const COMP_CTX *ctx); +int COMP_CTX_get_type(const COMP_CTX* comp); +int COMP_get_type(const COMP_METHOD *meth); +const char *COMP_get_name(const COMP_METHOD *meth); +void COMP_CTX_free(COMP_CTX *ctx); + +int COMP_compress_block(COMP_CTX *ctx, unsigned char *out, int olen, + unsigned char *in, int ilen); +int COMP_expand_block(COMP_CTX *ctx, unsigned char *out, int olen, + unsigned char *in, int ilen); + +COMP_METHOD *COMP_zlib(void); +COMP_METHOD *COMP_zlib_oneshot(void); +COMP_METHOD *COMP_brotli(void); +COMP_METHOD *COMP_brotli_oneshot(void); +COMP_METHOD *COMP_zstd(void); +COMP_METHOD *COMP_zstd_oneshot(void); + +# ifndef OPENSSL_NO_DEPRECATED_1_1_0 +# define COMP_zlib_cleanup() while(0) continue +# endif + +# ifdef OPENSSL_BIO_H +const BIO_METHOD *BIO_f_zlib(void); +const BIO_METHOD *BIO_f_brotli(void); +const BIO_METHOD *BIO_f_zstd(void); +# endif + +# endif + +typedef struct ssl_comp_st SSL_COMP; + +SKM_DEFINE_STACK_OF_INTERNAL(SSL_COMP, SSL_COMP, SSL_COMP) +#define sk_SSL_COMP_num(sk) OPENSSL_sk_num(ossl_check_const_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_value(sk, idx) ((SSL_COMP *)OPENSSL_sk_value(ossl_check_const_SSL_COMP_sk_type(sk), (idx))) +#define sk_SSL_COMP_new(cmp) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new(ossl_check_SSL_COMP_compfunc_type(cmp))) +#define sk_SSL_COMP_new_null() ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new_null()) +#define sk_SSL_COMP_new_reserve(cmp, n) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new_reserve(ossl_check_SSL_COMP_compfunc_type(cmp), (n))) +#define sk_SSL_COMP_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_SSL_COMP_sk_type(sk), (n)) +#define sk_SSL_COMP_free(sk) OPENSSL_sk_free(ossl_check_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_zero(sk) OPENSSL_sk_zero(ossl_check_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_delete(sk, i) ((SSL_COMP *)OPENSSL_sk_delete(ossl_check_SSL_COMP_sk_type(sk), (i))) +#define sk_SSL_COMP_delete_ptr(sk, ptr) ((SSL_COMP *)OPENSSL_sk_delete_ptr(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr))) +#define sk_SSL_COMP_push(sk, ptr) OPENSSL_sk_push(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) +#define sk_SSL_COMP_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) +#define sk_SSL_COMP_pop(sk) ((SSL_COMP *)OPENSSL_sk_pop(ossl_check_SSL_COMP_sk_type(sk))) +#define sk_SSL_COMP_shift(sk) ((SSL_COMP *)OPENSSL_sk_shift(ossl_check_SSL_COMP_sk_type(sk))) +#define sk_SSL_COMP_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_SSL_COMP_sk_type(sk),ossl_check_SSL_COMP_freefunc_type(freefunc)) +#define sk_SSL_COMP_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr), (idx)) +#define sk_SSL_COMP_set(sk, idx, ptr) ((SSL_COMP *)OPENSSL_sk_set(ossl_check_SSL_COMP_sk_type(sk), (idx), ossl_check_SSL_COMP_type(ptr))) +#define sk_SSL_COMP_find(sk, ptr) OPENSSL_sk_find(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) +#define sk_SSL_COMP_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) +#define sk_SSL_COMP_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr), pnum) +#define sk_SSL_COMP_sort(sk) OPENSSL_sk_sort(ossl_check_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_dup(sk) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_dup(ossl_check_const_SSL_COMP_sk_type(sk))) +#define sk_SSL_COMP_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_deep_copy(ossl_check_const_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_copyfunc_type(copyfunc), ossl_check_SSL_COMP_freefunc_type(freefunc))) +#define sk_SSL_COMP_set_cmp_func(sk, cmp) ((sk_SSL_COMP_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_compfunc_type(cmp))) + + + +# ifdef __cplusplus +} +# endif +#endif diff --git a/deps/openssl/config/archs/linux-elf/asm_avx2/include/openssl/conf.h b/deps/openssl/config/archs/linux-elf/asm_avx2/include/openssl/conf.h index 44989929f6c84a..38576290bf641b 100644 --- a/deps/openssl/config/archs/linux-elf/asm_avx2/include/openssl/conf.h +++ b/deps/openssl/config/archs/linux-elf/asm_avx2/include/openssl/conf.h @@ -27,6 +27,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -65,7 +68,7 @@ SKM_DEFINE_STACK_OF_INTERNAL(CONF_VALUE, CONF_VALUE, CONF_VALUE) #define sk_CONF_VALUE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(CONF_VALUE) *)OPENSSL_sk_deep_copy(ossl_check_const_CONF_VALUE_sk_type(sk), ossl_check_CONF_VALUE_copyfunc_type(copyfunc), ossl_check_CONF_VALUE_freefunc_type(freefunc))) #define sk_CONF_VALUE_set_cmp_func(sk, cmp) ((sk_CONF_VALUE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_CONF_VALUE_sk_type(sk), ossl_check_CONF_VALUE_compfunc_type(cmp))) DEFINE_LHASH_OF_INTERNAL(CONF_VALUE); -#define lh_CONF_VALUE_new(hfn, cmp) ((LHASH_OF(CONF_VALUE) *)OPENSSL_LH_new(ossl_check_CONF_VALUE_lh_hashfunc_type(hfn), ossl_check_CONF_VALUE_lh_compfunc_type(cmp))) +#define lh_CONF_VALUE_new(hfn, cmp) ((LHASH_OF(CONF_VALUE) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new(ossl_check_CONF_VALUE_lh_hashfunc_type(hfn), ossl_check_CONF_VALUE_lh_compfunc_type(cmp)), lh_CONF_VALUE_hash_thunk, lh_CONF_VALUE_comp_thunk, lh_CONF_VALUE_doall_thunk, lh_CONF_VALUE_doall_arg_thunk)) #define lh_CONF_VALUE_free(lh) OPENSSL_LH_free(ossl_check_CONF_VALUE_lh_type(lh)) #define lh_CONF_VALUE_flush(lh) OPENSSL_LH_flush(ossl_check_CONF_VALUE_lh_type(lh)) #define lh_CONF_VALUE_insert(lh, ptr) ((CONF_VALUE *)OPENSSL_LH_insert(ossl_check_CONF_VALUE_lh_type(lh), ossl_check_CONF_VALUE_lh_plain_type(ptr))) diff --git a/deps/openssl/config/archs/linux-elf/asm_avx2/include/openssl/configuration.h b/deps/openssl/config/archs/linux-elf/asm_avx2/include/openssl/configuration.h index 037bcb97508fec..d6b003eeb66b01 100644 --- a/deps/openssl/config/archs/linux-elf/asm_avx2/include/openssl/configuration.h +++ b/deps/openssl/config/archs/linux-elf/asm_avx2/include/openssl/configuration.h @@ -27,7 +27,7 @@ extern "C" { * OpenSSL was configured with the following options: */ -# define OPENSSL_CONFIGURED_API 30000 +# define OPENSSL_CONFIGURED_API 30500 # ifndef OPENSSL_RAND_SEED_OS # define OPENSSL_RAND_SEED_OS # endif @@ -40,6 +40,12 @@ extern "C" { # ifndef OPENSSL_NO_ASAN # define OPENSSL_NO_ASAN # endif +# ifndef OPENSSL_NO_BROTLI +# define OPENSSL_NO_BROTLI +# endif +# ifndef OPENSSL_NO_BROTLI_DYNAMIC +# define OPENSSL_NO_BROTLI_DYNAMIC +# endif # ifndef OPENSSL_NO_COMP # define OPENSSL_NO_COMP # endif @@ -49,6 +55,9 @@ extern "C" { # ifndef OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE # define OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE # endif +# ifndef OPENSSL_NO_DEMOS +# define OPENSSL_NO_DEMOS +# endif # ifndef OPENSSL_NO_DEVCRYPTOENG # define OPENSSL_NO_DEVCRYPTOENG # endif @@ -61,12 +70,24 @@ extern "C" { # ifndef OPENSSL_NO_EXTERNAL_TESTS # define OPENSSL_NO_EXTERNAL_TESTS # endif +# ifndef OPENSSL_NO_FIPS_JITTER +# define OPENSSL_NO_FIPS_JITTER +# endif # ifndef OPENSSL_NO_FUZZ_AFL # define OPENSSL_NO_FUZZ_AFL # endif # ifndef OPENSSL_NO_FUZZ_LIBFUZZER # define OPENSSL_NO_FUZZ_LIBFUZZER # endif +# ifndef OPENSSL_NO_H3DEMO +# define OPENSSL_NO_H3DEMO +# endif +# ifndef OPENSSL_NO_HQINTEROP +# define OPENSSL_NO_HQINTEROP +# endif +# ifndef OPENSSL_NO_JITTER +# define OPENSSL_NO_JITTER +# endif # ifndef OPENSSL_NO_KTLS # define OPENSSL_NO_KTLS # endif @@ -79,6 +100,9 @@ extern "C" { # ifndef OPENSSL_NO_MSAN # define OPENSSL_NO_MSAN # endif +# ifndef OPENSSL_NO_PIE +# define OPENSSL_NO_PIE +# endif # ifndef OPENSSL_NO_RC5 # define OPENSSL_NO_RC5 # endif @@ -91,6 +115,12 @@ extern "C" { # ifndef OPENSSL_NO_SSL3_METHOD # define OPENSSL_NO_SSL3_METHOD # endif +# ifndef OPENSSL_NO_SSLKEYLOG +# define OPENSSL_NO_SSLKEYLOG +# endif +# ifndef OPENSSL_NO_TFO +# define OPENSSL_NO_TFO +# endif # ifndef OPENSSL_NO_TRACE # define OPENSSL_NO_TRACE # endif @@ -106,6 +136,21 @@ extern "C" { # ifndef OPENSSL_NO_WEAK_SSL_CIPHERS # define OPENSSL_NO_WEAK_SSL_CIPHERS # endif +# ifndef OPENSSL_NO_WINSTORE +# define OPENSSL_NO_WINSTORE +# endif +# ifndef OPENSSL_NO_ZLIB +# define OPENSSL_NO_ZLIB +# endif +# ifndef OPENSSL_NO_ZLIB_DYNAMIC +# define OPENSSL_NO_ZLIB_DYNAMIC +# endif +# ifndef OPENSSL_NO_ZSTD +# define OPENSSL_NO_ZSTD +# endif +# ifndef OPENSSL_NO_ZSTD_DYNAMIC +# define OPENSSL_NO_ZSTD_DYNAMIC +# endif # ifndef OPENSSL_NO_DYNAMIC_ENGINE # define OPENSSL_NO_DYNAMIC_ENGINE # endif @@ -127,6 +172,12 @@ extern "C" { # define RC4_INT unsigned int +# if defined(OPENSSL_NO_COMP) || (defined(OPENSSL_NO_BROTLI) && defined(OPENSSL_NO_ZSTD) && defined(OPENSSL_NO_ZLIB)) +# define OPENSSL_NO_COMP_ALG +# else +# undef OPENSSL_NO_COMP_ALG +# endif + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/linux-elf/asm_avx2/include/openssl/core_names.h b/deps/openssl/config/archs/linux-elf/asm_avx2/include/openssl/core_names.h new file mode 100644 index 00000000000000..e93e79a52bc910 --- /dev/null +++ b/deps/openssl/config/archs/linux-elf/asm_avx2/include/openssl/core_names.h @@ -0,0 +1,575 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from include/openssl/core_names.h.in + * + * Copyright 2019-2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + +#ifndef OPENSSL_CORE_NAMES_H +# define OPENSSL_CORE_NAMES_H +# pragma once + +# ifdef __cplusplus +extern "C" { +# endif + +/* OSSL_CIPHER_PARAM_CTS_MODE Values */ +# define OSSL_CIPHER_CTS_MODE_CS1 "CS1" +# define OSSL_CIPHER_CTS_MODE_CS2 "CS2" +# define OSSL_CIPHER_CTS_MODE_CS3 "CS3" + +/* Known CIPHER names (not a complete list) */ +# define OSSL_CIPHER_NAME_AES_128_GCM_SIV "AES-128-GCM-SIV" +# define OSSL_CIPHER_NAME_AES_192_GCM_SIV "AES-192-GCM-SIV" +# define OSSL_CIPHER_NAME_AES_256_GCM_SIV "AES-256-GCM-SIV" + +/* Known DIGEST names (not a complete list) */ +# define OSSL_DIGEST_NAME_MD5 "MD5" +# define OSSL_DIGEST_NAME_MD5_SHA1 "MD5-SHA1" +# define OSSL_DIGEST_NAME_SHA1 "SHA1" +# define OSSL_DIGEST_NAME_SHA2_224 "SHA2-224" +# define OSSL_DIGEST_NAME_SHA2_256 "SHA2-256" +# define OSSL_DIGEST_NAME_SHA2_256_192 "SHA2-256/192" +# define OSSL_DIGEST_NAME_SHA2_384 "SHA2-384" +# define OSSL_DIGEST_NAME_SHA2_512 "SHA2-512" +# define OSSL_DIGEST_NAME_SHA2_512_224 "SHA2-512/224" +# define OSSL_DIGEST_NAME_SHA2_512_256 "SHA2-512/256" +# define OSSL_DIGEST_NAME_MD2 "MD2" +# define OSSL_DIGEST_NAME_MD4 "MD4" +# define OSSL_DIGEST_NAME_MDC2 "MDC2" +# define OSSL_DIGEST_NAME_RIPEMD160 "RIPEMD160" +# define OSSL_DIGEST_NAME_SHA3_224 "SHA3-224" +# define OSSL_DIGEST_NAME_SHA3_256 "SHA3-256" +# define OSSL_DIGEST_NAME_SHA3_384 "SHA3-384" +# define OSSL_DIGEST_NAME_SHA3_512 "SHA3-512" +# define OSSL_DIGEST_NAME_KECCAK_KMAC128 "KECCAK-KMAC-128" +# define OSSL_DIGEST_NAME_KECCAK_KMAC256 "KECCAK-KMAC-256" +# define OSSL_DIGEST_NAME_SM3 "SM3" + +/* Known MAC names */ +# define OSSL_MAC_NAME_BLAKE2BMAC "BLAKE2BMAC" +# define OSSL_MAC_NAME_BLAKE2SMAC "BLAKE2SMAC" +# define OSSL_MAC_NAME_CMAC "CMAC" +# define OSSL_MAC_NAME_GMAC "GMAC" +# define OSSL_MAC_NAME_HMAC "HMAC" +# define OSSL_MAC_NAME_KMAC128 "KMAC128" +# define OSSL_MAC_NAME_KMAC256 "KMAC256" +# define OSSL_MAC_NAME_POLY1305 "POLY1305" +# define OSSL_MAC_NAME_SIPHASH "SIPHASH" + +/* Known KDF names */ +# define OSSL_KDF_NAME_HKDF "HKDF" +# define OSSL_KDF_NAME_TLS1_3_KDF "TLS13-KDF" +# define OSSL_KDF_NAME_PBKDF1 "PBKDF1" +# define OSSL_KDF_NAME_PBKDF2 "PBKDF2" +# define OSSL_KDF_NAME_SCRYPT "SCRYPT" +# define OSSL_KDF_NAME_SSHKDF "SSHKDF" +# define OSSL_KDF_NAME_SSKDF "SSKDF" +# define OSSL_KDF_NAME_TLS1_PRF "TLS1-PRF" +# define OSSL_KDF_NAME_X942KDF_ASN1 "X942KDF-ASN1" +# define OSSL_KDF_NAME_X942KDF_CONCAT "X942KDF-CONCAT" +# define OSSL_KDF_NAME_X963KDF "X963KDF" +# define OSSL_KDF_NAME_KBKDF "KBKDF" +# define OSSL_KDF_NAME_KRB5KDF "KRB5KDF" +# define OSSL_KDF_NAME_HMACDRBGKDF "HMAC-DRBG-KDF" + +/* RSA padding modes */ +# define OSSL_PKEY_RSA_PAD_MODE_NONE "none" +# define OSSL_PKEY_RSA_PAD_MODE_PKCSV15 "pkcs1" +# define OSSL_PKEY_RSA_PAD_MODE_OAEP "oaep" +# define OSSL_PKEY_RSA_PAD_MODE_X931 "x931" +# define OSSL_PKEY_RSA_PAD_MODE_PSS "pss" + +/* RSA pss padding salt length */ +# define OSSL_PKEY_RSA_PSS_SALT_LEN_DIGEST "digest" +# define OSSL_PKEY_RSA_PSS_SALT_LEN_MAX "max" +# define OSSL_PKEY_RSA_PSS_SALT_LEN_AUTO "auto" +# define OSSL_PKEY_RSA_PSS_SALT_LEN_AUTO_DIGEST_MAX "auto-digestmax" + +/* OSSL_PKEY_PARAM_EC_ENCODING values */ +# define OSSL_PKEY_EC_ENCODING_EXPLICIT "explicit" +# define OSSL_PKEY_EC_ENCODING_GROUP "named_curve" + +# define OSSL_PKEY_EC_POINT_CONVERSION_FORMAT_UNCOMPRESSED "uncompressed" +# define OSSL_PKEY_EC_POINT_CONVERSION_FORMAT_COMPRESSED "compressed" +# define OSSL_PKEY_EC_POINT_CONVERSION_FORMAT_HYBRID "hybrid" + +# define OSSL_PKEY_EC_GROUP_CHECK_DEFAULT "default" +# define OSSL_PKEY_EC_GROUP_CHECK_NAMED "named" +# define OSSL_PKEY_EC_GROUP_CHECK_NAMED_NIST "named-nist" + +/* PROV_SKEY well known key types */ +# define OSSL_SKEY_TYPE_GENERIC "GENERIC-SECRET" +# define OSSL_SKEY_TYPE_AES "AES" + +/* OSSL_KEM_PARAM_OPERATION values */ +#define OSSL_KEM_PARAM_OPERATION_RSASVE "RSASVE" +#define OSSL_KEM_PARAM_OPERATION_DHKEM "DHKEM" + +/* Provider configuration variables */ +#define OSSL_PKEY_RETAIN_SEED "pkey_retain_seed" + +/* Parameter name definitions - generated by util/perl/OpenSSL/paramnames.pm */ +# define OSSL_ALG_PARAM_ALGORITHM_ID "algorithm-id" +# define OSSL_ALG_PARAM_ALGORITHM_ID_PARAMS "algorithm-id-params" +# define OSSL_ALG_PARAM_CIPHER "cipher" +# define OSSL_ALG_PARAM_DIGEST "digest" +# define OSSL_ALG_PARAM_ENGINE "engine" +# define OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR "fips-indicator" +# define OSSL_ALG_PARAM_MAC "mac" +# define OSSL_ALG_PARAM_PROPERTIES "properties" +# define OSSL_ASYM_CIPHER_PARAM_DIGEST OSSL_PKEY_PARAM_DIGEST +# define OSSL_ASYM_CIPHER_PARAM_ENGINE OSSL_PKEY_PARAM_ENGINE +# define OSSL_ASYM_CIPHER_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_ASYM_CIPHER_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_ASYM_CIPHER_PARAM_FIPS_RSA_PKCS15_PAD_DISABLED OSSL_PROV_PARAM_RSA_PKCS15_PAD_DISABLED +# define OSSL_ASYM_CIPHER_PARAM_IMPLICIT_REJECTION "implicit-rejection" +# define OSSL_ASYM_CIPHER_PARAM_MGF1_DIGEST OSSL_PKEY_PARAM_MGF1_DIGEST +# define OSSL_ASYM_CIPHER_PARAM_MGF1_DIGEST_PROPS OSSL_PKEY_PARAM_MGF1_PROPERTIES +# define OSSL_ASYM_CIPHER_PARAM_OAEP_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_ASYM_CIPHER_PARAM_OAEP_DIGEST_PROPS "digest-props" +# define OSSL_ASYM_CIPHER_PARAM_OAEP_LABEL "oaep-label" +# define OSSL_ASYM_CIPHER_PARAM_PAD_MODE OSSL_PKEY_PARAM_PAD_MODE +# define OSSL_ASYM_CIPHER_PARAM_PROPERTIES OSSL_PKEY_PARAM_PROPERTIES +# define OSSL_ASYM_CIPHER_PARAM_TLS_CLIENT_VERSION "tls-client-version" +# define OSSL_ASYM_CIPHER_PARAM_TLS_NEGOTIATED_VERSION "tls-negotiated-version" +# define OSSL_CAPABILITY_TLS_GROUP_ALG "tls-group-alg" +# define OSSL_CAPABILITY_TLS_GROUP_ID "tls-group-id" +# define OSSL_CAPABILITY_TLS_GROUP_IS_KEM "tls-group-is-kem" +# define OSSL_CAPABILITY_TLS_GROUP_MAX_DTLS "tls-max-dtls" +# define OSSL_CAPABILITY_TLS_GROUP_MAX_TLS "tls-max-tls" +# define OSSL_CAPABILITY_TLS_GROUP_MIN_DTLS "tls-min-dtls" +# define OSSL_CAPABILITY_TLS_GROUP_MIN_TLS "tls-min-tls" +# define OSSL_CAPABILITY_TLS_GROUP_NAME "tls-group-name" +# define OSSL_CAPABILITY_TLS_GROUP_NAME_INTERNAL "tls-group-name-internal" +# define OSSL_CAPABILITY_TLS_GROUP_SECURITY_BITS "tls-group-sec-bits" +# define OSSL_CAPABILITY_TLS_SIGALG_CODE_POINT "tls-sigalg-code-point" +# define OSSL_CAPABILITY_TLS_SIGALG_HASH_NAME "tls-sigalg-hash-name" +# define OSSL_CAPABILITY_TLS_SIGALG_HASH_OID "tls-sigalg-hash-oid" +# define OSSL_CAPABILITY_TLS_SIGALG_IANA_NAME "tls-sigalg-iana-name" +# define OSSL_CAPABILITY_TLS_SIGALG_KEYTYPE "tls-sigalg-keytype" +# define OSSL_CAPABILITY_TLS_SIGALG_KEYTYPE_OID "tls-sigalg-keytype-oid" +# define OSSL_CAPABILITY_TLS_SIGALG_MAX_DTLS "tls-max-dtls" +# define OSSL_CAPABILITY_TLS_SIGALG_MAX_TLS "tls-max-tls" +# define OSSL_CAPABILITY_TLS_SIGALG_MIN_DTLS "tls-min-dtls" +# define OSSL_CAPABILITY_TLS_SIGALG_MIN_TLS "tls-min-tls" +# define OSSL_CAPABILITY_TLS_SIGALG_NAME "tls-sigalg-name" +# define OSSL_CAPABILITY_TLS_SIGALG_OID "tls-sigalg-oid" +# define OSSL_CAPABILITY_TLS_SIGALG_SECURITY_BITS "tls-sigalg-sec-bits" +# define OSSL_CAPABILITY_TLS_SIGALG_SIG_NAME "tls-sigalg-sig-name" +# define OSSL_CAPABILITY_TLS_SIGALG_SIG_OID "tls-sigalg-sig-oid" +# define OSSL_CIPHER_PARAM_AEAD "aead" +# define OSSL_CIPHER_PARAM_AEAD_IVLEN OSSL_CIPHER_PARAM_IVLEN +# define OSSL_CIPHER_PARAM_AEAD_IV_GENERATED "iv-generated" +# define OSSL_CIPHER_PARAM_AEAD_MAC_KEY "mackey" +# define OSSL_CIPHER_PARAM_AEAD_TAG "tag" +# define OSSL_CIPHER_PARAM_AEAD_TAGLEN "taglen" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_AAD "tlsaad" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_AAD_PAD "tlsaadpad" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_GET_IV_GEN "tlsivgen" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_IV_FIXED "tlsivfixed" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_SET_IV_INV "tlsivinv" +# define OSSL_CIPHER_PARAM_ALGORITHM_ID OSSL_ALG_PARAM_ALGORITHM_ID +# define OSSL_CIPHER_PARAM_ALGORITHM_ID_PARAMS OSSL_ALG_PARAM_ALGORITHM_ID_PARAMS +# define OSSL_CIPHER_PARAM_ALGORITHM_ID_PARAMS_OLD "alg_id_param" +# define OSSL_CIPHER_PARAM_BLOCK_SIZE "blocksize" +# define OSSL_CIPHER_PARAM_CTS "cts" +# define OSSL_CIPHER_PARAM_CTS_MODE "cts_mode" +# define OSSL_CIPHER_PARAM_CUSTOM_IV "custom-iv" +# define OSSL_CIPHER_PARAM_DECRYPT_ONLY "decrypt-only" +# define OSSL_CIPHER_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_CIPHER_PARAM_FIPS_ENCRYPT_CHECK "encrypt-check" +# define OSSL_CIPHER_PARAM_HAS_RAND_KEY "has-randkey" +# define OSSL_CIPHER_PARAM_IV "iv" +# define OSSL_CIPHER_PARAM_IVLEN "ivlen" +# define OSSL_CIPHER_PARAM_KEYLEN "keylen" +# define OSSL_CIPHER_PARAM_MODE "mode" +# define OSSL_CIPHER_PARAM_NUM "num" +# define OSSL_CIPHER_PARAM_PADDING "padding" +# define OSSL_CIPHER_PARAM_PIPELINE_AEAD_TAG "pipeline-tag" +# define OSSL_CIPHER_PARAM_RANDOM_KEY "randkey" +# define OSSL_CIPHER_PARAM_RC2_KEYBITS "keybits" +# define OSSL_CIPHER_PARAM_ROUNDS "rounds" +# define OSSL_CIPHER_PARAM_SPEED "speed" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK "tls-multi" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD "tls1multi_aad" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD_PACKLEN "tls1multi_aadpacklen" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC "tls1multi_enc" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_IN "tls1multi_encin" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_LEN "tls1multi_enclen" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_INTERLEAVE "tls1multi_interleave" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_BUFSIZE "tls1multi_maxbufsz" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_SEND_FRAGMENT "tls1multi_maxsndfrag" +# define OSSL_CIPHER_PARAM_TLS_MAC "tls-mac" +# define OSSL_CIPHER_PARAM_TLS_MAC_SIZE "tls-mac-size" +# define OSSL_CIPHER_PARAM_TLS_VERSION "tls-version" +# define OSSL_CIPHER_PARAM_UPDATED_IV "updated-iv" +# define OSSL_CIPHER_PARAM_USE_BITS "use-bits" +# define OSSL_CIPHER_PARAM_XTS_STANDARD "xts_standard" +# define OSSL_DECODER_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_DIGEST_PARAM_ALGID_ABSENT "algid-absent" +# define OSSL_DIGEST_PARAM_BLOCK_SIZE "blocksize" +# define OSSL_DIGEST_PARAM_MICALG "micalg" +# define OSSL_DIGEST_PARAM_PAD_TYPE "pad-type" +# define OSSL_DIGEST_PARAM_SIZE "size" +# define OSSL_DIGEST_PARAM_SSL3_MS "ssl3-ms" +# define OSSL_DIGEST_PARAM_XOF "xof" +# define OSSL_DIGEST_PARAM_XOFLEN "xoflen" +# define OSSL_DRBG_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_DRBG_PARAM_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_DRBG_PARAM_ENTROPY_REQUIRED "entropy_required" +# define OSSL_DRBG_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_DRBG_PARAM_FIPS_DIGEST_CHECK OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK +# define OSSL_DRBG_PARAM_MAC OSSL_ALG_PARAM_MAC +# define OSSL_DRBG_PARAM_MAX_ADINLEN "max_adinlen" +# define OSSL_DRBG_PARAM_MAX_ENTROPYLEN "max_entropylen" +# define OSSL_DRBG_PARAM_MAX_LENGTH "maxium_length" +# define OSSL_DRBG_PARAM_MAX_NONCELEN "max_noncelen" +# define OSSL_DRBG_PARAM_MAX_PERSLEN "max_perslen" +# define OSSL_DRBG_PARAM_MIN_ENTROPYLEN "min_entropylen" +# define OSSL_DRBG_PARAM_MIN_LENGTH "minium_length" +# define OSSL_DRBG_PARAM_MIN_NONCELEN "min_noncelen" +# define OSSL_DRBG_PARAM_PREDICTION_RESISTANCE "prediction_resistance" +# define OSSL_DRBG_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_DRBG_PARAM_RANDOM_DATA "random_data" +# define OSSL_DRBG_PARAM_RESEED_COUNTER "reseed_counter" +# define OSSL_DRBG_PARAM_RESEED_REQUESTS "reseed_requests" +# define OSSL_DRBG_PARAM_RESEED_TIME "reseed_time" +# define OSSL_DRBG_PARAM_RESEED_TIME_INTERVAL "reseed_time_interval" +# define OSSL_DRBG_PARAM_SIZE "size" +# define OSSL_DRBG_PARAM_USE_DF "use_derivation_function" +# define OSSL_ENCODER_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_ENCODER_PARAM_ENCRYPT_LEVEL "encrypt-level" +# define OSSL_ENCODER_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_ENCODER_PARAM_SAVE_PARAMETERS "save-parameters" +# define OSSL_EXCHANGE_PARAM_EC_ECDH_COFACTOR_MODE "ecdh-cofactor-mode" +# define OSSL_EXCHANGE_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_EXCHANGE_PARAM_FIPS_DIGEST_CHECK OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK +# define OSSL_EXCHANGE_PARAM_FIPS_ECDH_COFACTOR_CHECK OSSL_PROV_PARAM_ECDH_COFACTOR_CHECK +# define OSSL_EXCHANGE_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_EXCHANGE_PARAM_KDF_DIGEST "kdf-digest" +# define OSSL_EXCHANGE_PARAM_KDF_DIGEST_PROPS "kdf-digest-props" +# define OSSL_EXCHANGE_PARAM_KDF_OUTLEN "kdf-outlen" +# define OSSL_EXCHANGE_PARAM_KDF_TYPE "kdf-type" +# define OSSL_EXCHANGE_PARAM_KDF_UKM "kdf-ukm" +# define OSSL_EXCHANGE_PARAM_PAD "pad" +# define OSSL_GEN_PARAM_ITERATION "iteration" +# define OSSL_GEN_PARAM_POTENTIAL "potential" +# define OSSL_KDF_PARAM_ARGON2_AD "ad" +# define OSSL_KDF_PARAM_ARGON2_LANES "lanes" +# define OSSL_KDF_PARAM_ARGON2_MEMCOST "memcost" +# define OSSL_KDF_PARAM_ARGON2_VERSION "version" +# define OSSL_KDF_PARAM_CEK_ALG "cekalg" +# define OSSL_KDF_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_KDF_PARAM_CONSTANT "constant" +# define OSSL_KDF_PARAM_DATA "data" +# define OSSL_KDF_PARAM_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_KDF_PARAM_EARLY_CLEAN "early_clean" +# define OSSL_KDF_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_KDF_PARAM_FIPS_DIGEST_CHECK OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK +# define OSSL_KDF_PARAM_FIPS_EMS_CHECK "ems_check" +# define OSSL_KDF_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_KDF_PARAM_HMACDRBG_ENTROPY "entropy" +# define OSSL_KDF_PARAM_HMACDRBG_NONCE "nonce" +# define OSSL_KDF_PARAM_INFO "info" +# define OSSL_KDF_PARAM_ITER "iter" +# define OSSL_KDF_PARAM_KBKDF_R "r" +# define OSSL_KDF_PARAM_KBKDF_USE_L "use-l" +# define OSSL_KDF_PARAM_KBKDF_USE_SEPARATOR "use-separator" +# define OSSL_KDF_PARAM_KEY "key" +# define OSSL_KDF_PARAM_LABEL "label" +# define OSSL_KDF_PARAM_MAC OSSL_ALG_PARAM_MAC +# define OSSL_KDF_PARAM_MAC_SIZE "maclen" +# define OSSL_KDF_PARAM_MODE "mode" +# define OSSL_KDF_PARAM_PASSWORD "pass" +# define OSSL_KDF_PARAM_PKCS12_ID "id" +# define OSSL_KDF_PARAM_PKCS5 "pkcs5" +# define OSSL_KDF_PARAM_PREFIX "prefix" +# define OSSL_KDF_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_KDF_PARAM_SALT "salt" +# define OSSL_KDF_PARAM_SCRYPT_MAXMEM "maxmem_bytes" +# define OSSL_KDF_PARAM_SCRYPT_N "n" +# define OSSL_KDF_PARAM_SCRYPT_P "p" +# define OSSL_KDF_PARAM_SCRYPT_R "r" +# define OSSL_KDF_PARAM_SECRET "secret" +# define OSSL_KDF_PARAM_SEED "seed" +# define OSSL_KDF_PARAM_SIZE "size" +# define OSSL_KDF_PARAM_SSHKDF_SESSION_ID "session_id" +# define OSSL_KDF_PARAM_SSHKDF_TYPE "type" +# define OSSL_KDF_PARAM_SSHKDF_XCGHASH "xcghash" +# define OSSL_KDF_PARAM_THREADS "threads" +# define OSSL_KDF_PARAM_UKM "ukm" +# define OSSL_KDF_PARAM_X942_ACVPINFO "acvp-info" +# define OSSL_KDF_PARAM_X942_PARTYUINFO "partyu-info" +# define OSSL_KDF_PARAM_X942_PARTYVINFO "partyv-info" +# define OSSL_KDF_PARAM_X942_SUPP_PRIVINFO "supp-privinfo" +# define OSSL_KDF_PARAM_X942_SUPP_PUBINFO "supp-pubinfo" +# define OSSL_KDF_PARAM_X942_USE_KEYBITS "use-keybits" +# define OSSL_KEM_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_KEM_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_KEM_PARAM_IKME "ikme" +# define OSSL_KEM_PARAM_OPERATION "operation" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_BLOCK_PADDING "block_padding" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_HS_PADDING "hs_padding" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_MAX_EARLY_DATA "max_early_data" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_MAX_FRAG_LEN "max_frag_len" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_MODE "mode" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_OPTIONS "options" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_READ_AHEAD "read_ahead" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_STREAM_MAC "stream_mac" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_TLSTREE "tlstree" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_USE_ETM "use_etm" +# define OSSL_LIBSSL_RECORD_LAYER_READ_BUFFER_LEN "read_buffer_len" +# define OSSL_MAC_PARAM_BLOCK_SIZE "block-size" +# define OSSL_MAC_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_MAC_PARAM_CUSTOM "custom" +# define OSSL_MAC_PARAM_C_ROUNDS "c-rounds" +# define OSSL_MAC_PARAM_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_MAC_PARAM_DIGEST_NOINIT "digest-noinit" +# define OSSL_MAC_PARAM_DIGEST_ONESHOT "digest-oneshot" +# define OSSL_MAC_PARAM_D_ROUNDS "d-rounds" +# define OSSL_MAC_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_MAC_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_MAC_PARAM_FIPS_NO_SHORT_MAC OSSL_PROV_PARAM_NO_SHORT_MAC +# define OSSL_MAC_PARAM_IV "iv" +# define OSSL_MAC_PARAM_KEY "key" +# define OSSL_MAC_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_MAC_PARAM_SALT "salt" +# define OSSL_MAC_PARAM_SIZE "size" +# define OSSL_MAC_PARAM_TLS_DATA_SIZE "tls-data-size" +# define OSSL_MAC_PARAM_XOF "xof" +# define OSSL_OBJECT_PARAM_DATA "data" +# define OSSL_OBJECT_PARAM_DATA_STRUCTURE "data-structure" +# define OSSL_OBJECT_PARAM_DATA_TYPE "data-type" +# define OSSL_OBJECT_PARAM_DESC "desc" +# define OSSL_OBJECT_PARAM_INPUT_TYPE "input-type" +# define OSSL_OBJECT_PARAM_REFERENCE "reference" +# define OSSL_OBJECT_PARAM_TYPE "type" +# define OSSL_PASSPHRASE_PARAM_INFO "info" +# define OSSL_PKEY_PARAM_ALGORITHM_ID OSSL_ALG_PARAM_ALGORITHM_ID +# define OSSL_PKEY_PARAM_ALGORITHM_ID_PARAMS OSSL_ALG_PARAM_ALGORITHM_ID_PARAMS +# define OSSL_PKEY_PARAM_BITS "bits" +# define OSSL_PKEY_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_PKEY_PARAM_DEFAULT_DIGEST "default-digest" +# define OSSL_PKEY_PARAM_DHKEM_IKM "dhkem-ikm" +# define OSSL_PKEY_PARAM_DH_GENERATOR "safeprime-generator" +# define OSSL_PKEY_PARAM_DH_PRIV_LEN "priv_len" +# define OSSL_PKEY_PARAM_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_PKEY_PARAM_DIGEST_SIZE "digest-size" +# define OSSL_PKEY_PARAM_DIST_ID "distid" +# define OSSL_PKEY_PARAM_EC_A "a" +# define OSSL_PKEY_PARAM_EC_B "b" +# define OSSL_PKEY_PARAM_EC_CHAR2_M "m" +# define OSSL_PKEY_PARAM_EC_CHAR2_PP_K1 "k1" +# define OSSL_PKEY_PARAM_EC_CHAR2_PP_K2 "k2" +# define OSSL_PKEY_PARAM_EC_CHAR2_PP_K3 "k3" +# define OSSL_PKEY_PARAM_EC_CHAR2_TP_BASIS "tp" +# define OSSL_PKEY_PARAM_EC_CHAR2_TYPE "basis-type" +# define OSSL_PKEY_PARAM_EC_COFACTOR "cofactor" +# define OSSL_PKEY_PARAM_EC_DECODED_FROM_EXPLICIT_PARAMS "decoded-from-explicit" +# define OSSL_PKEY_PARAM_EC_ENCODING "encoding" +# define OSSL_PKEY_PARAM_EC_FIELD_TYPE "field-type" +# define OSSL_PKEY_PARAM_EC_GENERATOR "generator" +# define OSSL_PKEY_PARAM_EC_GROUP_CHECK_TYPE "group-check" +# define OSSL_PKEY_PARAM_EC_INCLUDE_PUBLIC "include-public" +# define OSSL_PKEY_PARAM_EC_ORDER "order" +# define OSSL_PKEY_PARAM_EC_P "p" +# define OSSL_PKEY_PARAM_EC_POINT_CONVERSION_FORMAT "point-format" +# define OSSL_PKEY_PARAM_EC_PUB_X "qx" +# define OSSL_PKEY_PARAM_EC_PUB_Y "qy" +# define OSSL_PKEY_PARAM_EC_SEED "seed" +# define OSSL_PKEY_PARAM_ENCODED_PUBLIC_KEY "encoded-pub-key" +# define OSSL_PKEY_PARAM_ENGINE OSSL_ALG_PARAM_ENGINE +# define OSSL_PKEY_PARAM_FFC_COFACTOR "j" +# define OSSL_PKEY_PARAM_FFC_DIGEST OSSL_PKEY_PARAM_DIGEST +# define OSSL_PKEY_PARAM_FFC_DIGEST_PROPS OSSL_PKEY_PARAM_PROPERTIES +# define OSSL_PKEY_PARAM_FFC_G "g" +# define OSSL_PKEY_PARAM_FFC_GINDEX "gindex" +# define OSSL_PKEY_PARAM_FFC_H "hindex" +# define OSSL_PKEY_PARAM_FFC_P "p" +# define OSSL_PKEY_PARAM_FFC_PBITS "pbits" +# define OSSL_PKEY_PARAM_FFC_PCOUNTER "pcounter" +# define OSSL_PKEY_PARAM_FFC_Q "q" +# define OSSL_PKEY_PARAM_FFC_QBITS "qbits" +# define OSSL_PKEY_PARAM_FFC_SEED "seed" +# define OSSL_PKEY_PARAM_FFC_TYPE "type" +# define OSSL_PKEY_PARAM_FFC_VALIDATE_G "validate-g" +# define OSSL_PKEY_PARAM_FFC_VALIDATE_LEGACY "validate-legacy" +# define OSSL_PKEY_PARAM_FFC_VALIDATE_PQ "validate-pq" +# define OSSL_PKEY_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK "digest-check" +# define OSSL_PKEY_PARAM_FIPS_KEY_CHECK "key-check" +# define OSSL_PKEY_PARAM_FIPS_SIGN_CHECK "sign-check" +# define OSSL_PKEY_PARAM_GROUP_NAME "group" +# define OSSL_PKEY_PARAM_IMPLICIT_REJECTION "implicit-rejection" +# define OSSL_PKEY_PARAM_MANDATORY_DIGEST "mandatory-digest" +# define OSSL_PKEY_PARAM_MASKGENFUNC "mgf" +# define OSSL_PKEY_PARAM_MAX_SIZE "max-size" +# define OSSL_PKEY_PARAM_MGF1_DIGEST "mgf1-digest" +# define OSSL_PKEY_PARAM_MGF1_PROPERTIES "mgf1-properties" +# define OSSL_PKEY_PARAM_ML_DSA_INPUT_FORMATS "ml-dsa.input_formats" +# define OSSL_PKEY_PARAM_ML_DSA_OUTPUT_FORMATS "ml-dsa.output_formats" +# define OSSL_PKEY_PARAM_ML_DSA_PREFER_SEED "ml-dsa.prefer_seed" +# define OSSL_PKEY_PARAM_ML_DSA_RETAIN_SEED "ml-dsa.retain_seed" +# define OSSL_PKEY_PARAM_ML_DSA_SEED "seed" +# define OSSL_PKEY_PARAM_ML_KEM_IMPORT_PCT_TYPE "ml-kem.import_pct_type" +# define OSSL_PKEY_PARAM_ML_KEM_INPUT_FORMATS "ml-kem.input_formats" +# define OSSL_PKEY_PARAM_ML_KEM_OUTPUT_FORMATS "ml-kem.output_formats" +# define OSSL_PKEY_PARAM_ML_KEM_PREFER_SEED "ml-kem.prefer_seed" +# define OSSL_PKEY_PARAM_ML_KEM_RETAIN_SEED "ml-kem.retain_seed" +# define OSSL_PKEY_PARAM_ML_KEM_SEED "seed" +# define OSSL_PKEY_PARAM_PAD_MODE "pad-mode" +# define OSSL_PKEY_PARAM_PRIV_KEY "priv" +# define OSSL_PKEY_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_PKEY_PARAM_PUB_KEY "pub" +# define OSSL_PKEY_PARAM_RSA_BITS OSSL_PKEY_PARAM_BITS +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT "rsa-coefficient" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT1 "rsa-coefficient1" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT2 "rsa-coefficient2" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT3 "rsa-coefficient3" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT4 "rsa-coefficient4" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT5 "rsa-coefficient5" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT6 "rsa-coefficient6" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT7 "rsa-coefficient7" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT8 "rsa-coefficient8" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT9 "rsa-coefficient9" +# define OSSL_PKEY_PARAM_RSA_D "d" +# define OSSL_PKEY_PARAM_RSA_DERIVE_FROM_PQ "rsa-derive-from-pq" +# define OSSL_PKEY_PARAM_RSA_DIGEST OSSL_PKEY_PARAM_DIGEST +# define OSSL_PKEY_PARAM_RSA_DIGEST_PROPS OSSL_PKEY_PARAM_PROPERTIES +# define OSSL_PKEY_PARAM_RSA_E "e" +# define OSSL_PKEY_PARAM_RSA_EXPONENT "rsa-exponent" +# define OSSL_PKEY_PARAM_RSA_EXPONENT1 "rsa-exponent1" +# define OSSL_PKEY_PARAM_RSA_EXPONENT10 "rsa-exponent10" +# define OSSL_PKEY_PARAM_RSA_EXPONENT2 "rsa-exponent2" +# define OSSL_PKEY_PARAM_RSA_EXPONENT3 "rsa-exponent3" +# define OSSL_PKEY_PARAM_RSA_EXPONENT4 "rsa-exponent4" +# define OSSL_PKEY_PARAM_RSA_EXPONENT5 "rsa-exponent5" +# define OSSL_PKEY_PARAM_RSA_EXPONENT6 "rsa-exponent6" +# define OSSL_PKEY_PARAM_RSA_EXPONENT7 "rsa-exponent7" +# define OSSL_PKEY_PARAM_RSA_EXPONENT8 "rsa-exponent8" +# define OSSL_PKEY_PARAM_RSA_EXPONENT9 "rsa-exponent9" +# define OSSL_PKEY_PARAM_RSA_FACTOR "rsa-factor" +# define OSSL_PKEY_PARAM_RSA_FACTOR1 "rsa-factor1" +# define OSSL_PKEY_PARAM_RSA_FACTOR10 "rsa-factor10" +# define OSSL_PKEY_PARAM_RSA_FACTOR2 "rsa-factor2" +# define OSSL_PKEY_PARAM_RSA_FACTOR3 "rsa-factor3" +# define OSSL_PKEY_PARAM_RSA_FACTOR4 "rsa-factor4" +# define OSSL_PKEY_PARAM_RSA_FACTOR5 "rsa-factor5" +# define OSSL_PKEY_PARAM_RSA_FACTOR6 "rsa-factor6" +# define OSSL_PKEY_PARAM_RSA_FACTOR7 "rsa-factor7" +# define OSSL_PKEY_PARAM_RSA_FACTOR8 "rsa-factor8" +# define OSSL_PKEY_PARAM_RSA_FACTOR9 "rsa-factor9" +# define OSSL_PKEY_PARAM_RSA_MASKGENFUNC OSSL_PKEY_PARAM_MASKGENFUNC +# define OSSL_PKEY_PARAM_RSA_MGF1_DIGEST OSSL_PKEY_PARAM_MGF1_DIGEST +# define OSSL_PKEY_PARAM_RSA_N "n" +# define OSSL_PKEY_PARAM_RSA_PRIMES "primes" +# define OSSL_PKEY_PARAM_RSA_PSS_SALTLEN "saltlen" +# define OSSL_PKEY_PARAM_RSA_TEST_P1 "p1" +# define OSSL_PKEY_PARAM_RSA_TEST_P2 "p2" +# define OSSL_PKEY_PARAM_RSA_TEST_Q1 "q1" +# define OSSL_PKEY_PARAM_RSA_TEST_Q2 "q2" +# define OSSL_PKEY_PARAM_RSA_TEST_XP "xp" +# define OSSL_PKEY_PARAM_RSA_TEST_XP1 "xp1" +# define OSSL_PKEY_PARAM_RSA_TEST_XP2 "xp2" +# define OSSL_PKEY_PARAM_RSA_TEST_XQ "xq" +# define OSSL_PKEY_PARAM_RSA_TEST_XQ1 "xq1" +# define OSSL_PKEY_PARAM_RSA_TEST_XQ2 "xq2" +# define OSSL_PKEY_PARAM_SECURITY_BITS "security-bits" +# define OSSL_PKEY_PARAM_SLH_DSA_SEED "seed" +# define OSSL_PKEY_PARAM_USE_COFACTOR_ECDH OSSL_PKEY_PARAM_USE_COFACTOR_FLAG +# define OSSL_PKEY_PARAM_USE_COFACTOR_FLAG "use-cofactor-flag" +# define OSSL_PROV_PARAM_BUILDINFO "buildinfo" +# define OSSL_PROV_PARAM_CORE_MODULE_FILENAME "module-filename" +# define OSSL_PROV_PARAM_CORE_PROV_NAME "provider-name" +# define OSSL_PROV_PARAM_CORE_VERSION "openssl-version" +# define OSSL_PROV_PARAM_DRBG_TRUNC_DIGEST "drbg-no-trunc-md" +# define OSSL_PROV_PARAM_DSA_SIGN_DISABLED "dsa-sign-disabled" +# define OSSL_PROV_PARAM_ECDH_COFACTOR_CHECK "ecdh-cofactor-check" +# define OSSL_PROV_PARAM_HKDF_DIGEST_CHECK "hkdf-digest-check" +# define OSSL_PROV_PARAM_HKDF_KEY_CHECK "hkdf-key-check" +# define OSSL_PROV_PARAM_HMAC_KEY_CHECK "hmac-key-check" +# define OSSL_PROV_PARAM_KBKDF_KEY_CHECK "kbkdf-key-check" +# define OSSL_PROV_PARAM_KMAC_KEY_CHECK "kmac-key-check" +# define OSSL_PROV_PARAM_NAME "name" +# define OSSL_PROV_PARAM_NO_SHORT_MAC "no-short-mac" +# define OSSL_PROV_PARAM_PBKDF2_LOWER_BOUND_CHECK "pbkdf2-lower-bound-check" +# define OSSL_PROV_PARAM_RSA_PKCS15_PAD_DISABLED "rsa-pkcs15-pad-disabled" +# define OSSL_PROV_PARAM_RSA_PSS_SALTLEN_CHECK "rsa-pss-saltlen-check" +# define OSSL_PROV_PARAM_RSA_SIGN_X931_PAD_DISABLED "rsa-sign-x931-pad-disabled" +# define OSSL_PROV_PARAM_SECURITY_CHECKS "security-checks" +# define OSSL_PROV_PARAM_SELF_TEST_DESC "st-desc" +# define OSSL_PROV_PARAM_SELF_TEST_PHASE "st-phase" +# define OSSL_PROV_PARAM_SELF_TEST_TYPE "st-type" +# define OSSL_PROV_PARAM_SIGNATURE_DIGEST_CHECK "signature-digest-check" +# define OSSL_PROV_PARAM_SSHKDF_DIGEST_CHECK "sshkdf-digest-check" +# define OSSL_PROV_PARAM_SSHKDF_KEY_CHECK "sshkdf-key-check" +# define OSSL_PROV_PARAM_SSKDF_DIGEST_CHECK "sskdf-digest-check" +# define OSSL_PROV_PARAM_SSKDF_KEY_CHECK "sskdf-key-check" +# define OSSL_PROV_PARAM_STATUS "status" +# define OSSL_PROV_PARAM_TDES_ENCRYPT_DISABLED "tdes-encrypt-disabled" +# define OSSL_PROV_PARAM_TLS13_KDF_DIGEST_CHECK "tls13-kdf-digest-check" +# define OSSL_PROV_PARAM_TLS13_KDF_KEY_CHECK "tls13-kdf-key-check" +# define OSSL_PROV_PARAM_TLS1_PRF_DIGEST_CHECK "tls1-prf-digest-check" +# define OSSL_PROV_PARAM_TLS1_PRF_EMS_CHECK "tls1-prf-ems-check" +# define OSSL_PROV_PARAM_TLS1_PRF_KEY_CHECK "tls1-prf-key-check" +# define OSSL_PROV_PARAM_VERSION "version" +# define OSSL_PROV_PARAM_X942KDF_KEY_CHECK "x942kdf-key-check" +# define OSSL_PROV_PARAM_X963KDF_DIGEST_CHECK "x963kdf-digest-check" +# define OSSL_PROV_PARAM_X963KDF_KEY_CHECK "x963kdf-key-check" +# define OSSL_RAND_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_RAND_PARAM_GENERATE "generate" +# define OSSL_RAND_PARAM_MAX_REQUEST "max_request" +# define OSSL_RAND_PARAM_STATE "state" +# define OSSL_RAND_PARAM_STRENGTH "strength" +# define OSSL_RAND_PARAM_TEST_ENTROPY "test_entropy" +# define OSSL_RAND_PARAM_TEST_NONCE "test_nonce" +# define OSSL_SIGNATURE_PARAM_ADD_RANDOM "additional-random" +# define OSSL_SIGNATURE_PARAM_ALGORITHM_ID OSSL_PKEY_PARAM_ALGORITHM_ID +# define OSSL_SIGNATURE_PARAM_ALGORITHM_ID_PARAMS OSSL_PKEY_PARAM_ALGORITHM_ID_PARAMS +# define OSSL_SIGNATURE_PARAM_CONTEXT_STRING "context-string" +# define OSSL_SIGNATURE_PARAM_DETERMINISTIC "deterministic" +# define OSSL_SIGNATURE_PARAM_DIGEST OSSL_PKEY_PARAM_DIGEST +# define OSSL_SIGNATURE_PARAM_DIGEST_SIZE OSSL_PKEY_PARAM_DIGEST_SIZE +# define OSSL_SIGNATURE_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR +# define OSSL_SIGNATURE_PARAM_FIPS_DIGEST_CHECK OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK +# define OSSL_SIGNATURE_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK +# define OSSL_SIGNATURE_PARAM_FIPS_RSA_PSS_SALTLEN_CHECK "rsa-pss-saltlen-check" +# define OSSL_SIGNATURE_PARAM_FIPS_SIGN_CHECK OSSL_PKEY_PARAM_FIPS_SIGN_CHECK +# define OSSL_SIGNATURE_PARAM_FIPS_SIGN_X931_PAD_CHECK "sign-x931-pad-check" +# define OSSL_SIGNATURE_PARAM_FIPS_VERIFY_MESSAGE "verify-message" +# define OSSL_SIGNATURE_PARAM_INSTANCE "instance" +# define OSSL_SIGNATURE_PARAM_KAT "kat" +# define OSSL_SIGNATURE_PARAM_MESSAGE_ENCODING "message-encoding" +# define OSSL_SIGNATURE_PARAM_MGF1_DIGEST OSSL_PKEY_PARAM_MGF1_DIGEST +# define OSSL_SIGNATURE_PARAM_MGF1_PROPERTIES OSSL_PKEY_PARAM_MGF1_PROPERTIES +# define OSSL_SIGNATURE_PARAM_MU "mu" +# define OSSL_SIGNATURE_PARAM_NONCE_TYPE "nonce-type" +# define OSSL_SIGNATURE_PARAM_PAD_MODE OSSL_PKEY_PARAM_PAD_MODE +# define OSSL_SIGNATURE_PARAM_PROPERTIES OSSL_PKEY_PARAM_PROPERTIES +# define OSSL_SIGNATURE_PARAM_PSS_SALTLEN "saltlen" +# define OSSL_SIGNATURE_PARAM_SIGNATURE "signature" +# define OSSL_SIGNATURE_PARAM_TEST_ENTROPY "test-entropy" +# define OSSL_SKEY_PARAM_KEY_LENGTH "key-length" +# define OSSL_SKEY_PARAM_RAW_BYTES "raw-bytes" +# define OSSL_STORE_PARAM_ALIAS "alias" +# define OSSL_STORE_PARAM_DIGEST "digest" +# define OSSL_STORE_PARAM_EXPECT "expect" +# define OSSL_STORE_PARAM_FINGERPRINT "fingerprint" +# define OSSL_STORE_PARAM_INPUT_TYPE "input-type" +# define OSSL_STORE_PARAM_ISSUER "name" +# define OSSL_STORE_PARAM_PROPERTIES "properties" +# define OSSL_STORE_PARAM_SERIAL "serial" +# define OSSL_STORE_PARAM_SUBJECT "subject" + +# ifdef __cplusplus +} +# endif + +#endif diff --git a/deps/openssl/config/archs/linux-elf/asm_avx2/include/openssl/crmf.h b/deps/openssl/config/archs/linux-elf/asm_avx2/include/openssl/crmf.h index 71b747ed33d239..4bf550fd47daa9 100644 --- a/deps/openssl/config/archs/linux-elf/asm_avx2/include/openssl/crmf.h +++ b/deps/openssl/config/archs/linux-elf/asm_avx2/include/openssl/crmf.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/crmf.h.in * - * Copyright 2007-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2007-2025 The OpenSSL Project Authors. All Rights Reserved. * Copyright Nokia 2007-2019 * Copyright Siemens AG 2015-2019 * @@ -26,6 +26,7 @@ # include # include # include /* for GENERAL_NAME etc. */ +# include /* explicit #includes not strictly needed since implied by the above: */ # include @@ -43,9 +44,12 @@ extern "C" { # define OSSL_CRMF_SUBSEQUENTMESSAGE_ENCRCERT 0 # define OSSL_CRMF_SUBSEQUENTMESSAGE_CHALLENGERESP 1 - typedef struct ossl_crmf_encryptedvalue_st OSSL_CRMF_ENCRYPTEDVALUE; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_ENCRYPTEDVALUE) + +typedef struct ossl_crmf_encryptedkey_st OSSL_CRMF_ENCRYPTEDKEY; +DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_ENCRYPTEDKEY) + typedef struct ossl_crmf_msg_st OSSL_CRMF_MSG; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_MSG) DECLARE_ASN1_DUP_FUNCTION(OSSL_CRMF_MSG) @@ -77,6 +81,36 @@ SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CRMF_MSG, OSSL_CRMF_MSG, OSSL_CRMF_MSG) #define sk_OSSL_CRMF_MSG_set_cmp_func(sk, cmp) ((sk_OSSL_CRMF_MSG_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CRMF_MSG_sk_type(sk), ossl_check_OSSL_CRMF_MSG_compfunc_type(cmp))) typedef struct ossl_crmf_attributetypeandvalue_st OSSL_CRMF_ATTRIBUTETYPEANDVALUE; +void OSSL_CRMF_ATTRIBUTETYPEANDVALUE_free(OSSL_CRMF_ATTRIBUTETYPEANDVALUE *v); +DECLARE_ASN1_DUP_FUNCTION(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CRMF_ATTRIBUTETYPEANDVALUE, OSSL_CRMF_ATTRIBUTETYPEANDVALUE, OSSL_CRMF_ATTRIBUTETYPEANDVALUE) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_value(sk, idx) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_value(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), (idx))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_new(cmp) ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_new(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_compfunc_type(cmp))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_new_null() ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_new_null()) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_new_reserve(cmp, n) ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_compfunc_type(cmp), (n))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), (n)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_free(sk) OPENSSL_sk_free(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_delete(sk, i) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_delete(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), (i))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_delete_ptr(sk, ptr) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_pop(sk) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_pop(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_shift(sk) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_shift(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk),ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_freefunc_type(freefunc)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr), (idx)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_set(sk, idx, ptr) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_set(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), (idx), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr), pnum) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_dup(sk) ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_dup(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_copyfunc_type(copyfunc), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_freefunc_type(freefunc))) +#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_set_cmp_func(sk, cmp) ((sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_compfunc_type(cmp))) + + typedef struct ossl_crmf_pbmparameter_st OSSL_CRMF_PBMPARAMETER; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_PBMPARAMETER) typedef struct ossl_crmf_poposigningkey_st OSSL_CRMF_POPOSIGNINGKEY; @@ -118,6 +152,7 @@ typedef struct ossl_crmf_singlepubinfo_st OSSL_CRMF_SINGLEPUBINFO; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_SINGLEPUBINFO) typedef struct ossl_crmf_certtemplate_st OSSL_CRMF_CERTTEMPLATE; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_CERTTEMPLATE) +DECLARE_ASN1_DUP_FUNCTION(OSSL_CRMF_CERTTEMPLATE) typedef STACK_OF(OSSL_CRMF_MSG) OSSL_CRMF_MSGS; DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_MSGS) @@ -198,12 +233,14 @@ int OSSL_CRMF_MSGS_verify_popo(const OSSL_CRMF_MSGS *reqs, int rid, int acceptRAVerified, OSSL_LIB_CTX *libctx, const char *propq); OSSL_CRMF_CERTTEMPLATE *OSSL_CRMF_MSG_get0_tmpl(const OSSL_CRMF_MSG *crm); -const ASN1_INTEGER -*OSSL_CRMF_CERTTEMPLATE_get0_serialNumber(const OSSL_CRMF_CERTTEMPLATE *tmpl); +X509_PUBKEY +*OSSL_CRMF_CERTTEMPLATE_get0_publicKey(const OSSL_CRMF_CERTTEMPLATE *tmpl); const X509_NAME *OSSL_CRMF_CERTTEMPLATE_get0_subject(const OSSL_CRMF_CERTTEMPLATE *tmpl); const X509_NAME *OSSL_CRMF_CERTTEMPLATE_get0_issuer(const OSSL_CRMF_CERTTEMPLATE *tmpl); +const ASN1_INTEGER +*OSSL_CRMF_CERTTEMPLATE_get0_serialNumber(const OSSL_CRMF_CERTTEMPLATE *tmpl); X509_EXTENSIONS *OSSL_CRMF_CERTTEMPLATE_get0_extensions(const OSSL_CRMF_CERTTEMPLATE *tmpl); const X509_NAME @@ -215,10 +252,24 @@ int OSSL_CRMF_CERTTEMPLATE_fill(OSSL_CRMF_CERTTEMPLATE *tmpl, const X509_NAME *subject, const X509_NAME *issuer, const ASN1_INTEGER *serial); -X509 -*OSSL_CRMF_ENCRYPTEDVALUE_get1_encCert(const OSSL_CRMF_ENCRYPTEDVALUE *ecert, - OSSL_LIB_CTX *libctx, const char *propq, - EVP_PKEY *pkey); +X509 *OSSL_CRMF_ENCRYPTEDVALUE_get1_encCert(const OSSL_CRMF_ENCRYPTEDVALUE *ecert, + OSSL_LIB_CTX *libctx, const char *propq, + EVP_PKEY *pkey); +X509 *OSSL_CRMF_ENCRYPTEDKEY_get1_encCert(const OSSL_CRMF_ENCRYPTEDKEY *ecert, + OSSL_LIB_CTX *libctx, const char *propq, + EVP_PKEY *pkey, unsigned int flags); +unsigned char +*OSSL_CRMF_ENCRYPTEDVALUE_decrypt(const OSSL_CRMF_ENCRYPTEDVALUE *enc, + OSSL_LIB_CTX *libctx, const char *propq, + EVP_PKEY *pkey, int *outlen); +EVP_PKEY *OSSL_CRMF_ENCRYPTEDKEY_get1_pkey(const OSSL_CRMF_ENCRYPTEDKEY *encryptedKey, + X509_STORE *ts, STACK_OF(X509) *extra, EVP_PKEY *pkey, + X509 *cert, ASN1_OCTET_STRING *secret, + OSSL_LIB_CTX *libctx, const char *propq); +int OSSL_CRMF_MSG_centralkeygen_requested(const OSSL_CRMF_MSG *crm, const X509_REQ *p10cr); +# ifndef OPENSSL_NO_CMS +OSSL_CRMF_ENCRYPTEDKEY *OSSL_CRMF_ENCRYPTEDKEY_init_envdata(CMS_EnvelopedData *envdata); +# endif # ifdef __cplusplus } diff --git a/deps/openssl/config/archs/linux-elf/asm_avx2/include/openssl/crypto.h b/deps/openssl/config/archs/linux-elf/asm_avx2/include/openssl/crypto.h index 3f40be6d8c61d5..fd2cfd3e5a9ac4 100644 --- a/deps/openssl/config/archs/linux-elf/asm_avx2/include/openssl/crypto.h +++ b/deps/openssl/config/archs/linux-elf/asm_avx2/include/openssl/crypto.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/crypto.h.in * - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2024 The OpenSSL Project Authors. All Rights Reserved. * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved * * Licensed under the Apache License 2.0 (the "License"). You may not use @@ -85,9 +85,15 @@ int CRYPTO_THREAD_unlock(CRYPTO_RWLOCK *lock); void CRYPTO_THREAD_lock_free(CRYPTO_RWLOCK *lock); int CRYPTO_atomic_add(int *val, int amount, int *ret, CRYPTO_RWLOCK *lock); +int CRYPTO_atomic_add64(uint64_t *val, uint64_t op, uint64_t *ret, + CRYPTO_RWLOCK *lock); +int CRYPTO_atomic_and(uint64_t *val, uint64_t op, uint64_t *ret, + CRYPTO_RWLOCK *lock); int CRYPTO_atomic_or(uint64_t *val, uint64_t op, uint64_t *ret, CRYPTO_RWLOCK *lock); int CRYPTO_atomic_load(uint64_t *val, uint64_t *ret, CRYPTO_RWLOCK *lock); +int CRYPTO_atomic_load_int(int *val, int *ret, CRYPTO_RWLOCK *lock); +int CRYPTO_atomic_store(uint64_t *dst, uint64_t val, CRYPTO_RWLOCK *lock); /* No longer needed, so this is a no-op */ #define OPENSSL_malloc_init() while(0) continue @@ -96,6 +102,9 @@ int CRYPTO_atomic_load(uint64_t *val, uint64_t *ret, CRYPTO_RWLOCK *lock); CRYPTO_malloc(num, OPENSSL_FILE, OPENSSL_LINE) # define OPENSSL_zalloc(num) \ CRYPTO_zalloc(num, OPENSSL_FILE, OPENSSL_LINE) +# define OPENSSL_aligned_alloc(num, alignment, freeptr) \ + CRYPTO_aligned_alloc(num, alignment, freeptr, \ + OPENSSL_FILE, OPENSSL_LINE) # define OPENSSL_realloc(addr, num) \ CRYPTO_realloc(addr, num, OPENSSL_FILE, OPENSSL_LINE) # define OPENSSL_clear_realloc(addr, old_num, num) \ @@ -124,6 +133,7 @@ int CRYPTO_atomic_load(uint64_t *val, uint64_t *ret, CRYPTO_RWLOCK *lock); size_t OPENSSL_strlcpy(char *dst, const char *src, size_t siz); size_t OPENSSL_strlcat(char *dst, const char *src, size_t siz); size_t OPENSSL_strnlen(const char *str, size_t maxlen); +int OPENSSL_strtoul(const char *str, char **endptr, int base, unsigned long *num); int OPENSSL_buf2hexstr_ex(char *str, size_t str_n, size_t *strlength, const unsigned char *buf, size_t buflen, const char sep); @@ -160,6 +170,7 @@ const char *OpenSSL_version(int type); # define OPENSSL_FULL_VERSION_STRING 7 # define OPENSSL_MODULES_DIR 8 # define OPENSSL_CPU_INFO 9 +# define OPENSSL_WINCTX 10 const char *OPENSSL_info(int type); /* @@ -174,6 +185,7 @@ const char *OPENSSL_info(int type); # define OPENSSL_INFO_LIST_SEPARATOR 1006 # define OPENSSL_INFO_SEED_SOURCE 1007 # define OPENSSL_INFO_CPU_SETTINGS 1008 +# define OPENSSL_INFO_WINDOWS_CONTEXT 1009 int OPENSSL_issetugid(void); @@ -341,11 +353,14 @@ void CRYPTO_get_mem_functions(CRYPTO_malloc_fn *malloc_fn, CRYPTO_realloc_fn *realloc_fn, CRYPTO_free_fn *free_fn); -void *CRYPTO_malloc(size_t num, const char *file, int line); -void *CRYPTO_zalloc(size_t num, const char *file, int line); -void *CRYPTO_memdup(const void *str, size_t siz, const char *file, int line); -char *CRYPTO_strdup(const char *str, const char *file, int line); -char *CRYPTO_strndup(const char *str, size_t s, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_malloc(size_t num, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_zalloc(size_t num, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_aligned_alloc(size_t num, size_t align, + void **freeptr, const char *file, + int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_memdup(const void *str, size_t siz, const char *file, int line); +OSSL_CRYPTO_ALLOC char *CRYPTO_strdup(const char *str, const char *file, int line); +OSSL_CRYPTO_ALLOC char *CRYPTO_strndup(const char *str, size_t s, const char *file, int line); void CRYPTO_free(void *ptr, const char *file, int line); void CRYPTO_clear_free(void *ptr, size_t num, const char *file, int line); void *CRYPTO_realloc(void *addr, size_t num, const char *file, int line); @@ -354,8 +369,8 @@ void *CRYPTO_clear_realloc(void *addr, size_t old_num, size_t num, int CRYPTO_secure_malloc_init(size_t sz, size_t minsize); int CRYPTO_secure_malloc_done(void); -void *CRYPTO_secure_malloc(size_t num, const char *file, int line); -void *CRYPTO_secure_zalloc(size_t num, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_secure_malloc(size_t num, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_secure_zalloc(size_t num, const char *file, int line); void CRYPTO_secure_free(void *ptr, const char *file, int line); void CRYPTO_secure_clear_free(void *ptr, size_t num, const char *file, int line); @@ -376,6 +391,9 @@ void OPENSSL_cleanse(void *ptr, size_t len); # define CRYPTO_MEM_CHECK_ENABLE 0x2 /* Control and mode bit */ # define CRYPTO_MEM_CHECK_DISABLE 0x3 /* Control only */ +/* max allowed length for value of OPENSSL_MALLOC_FAILURES env var. */ +# define CRYPTO_MEM_CHECK_MAX_FS 256 + void CRYPTO_get_alloc_counts(int *mcount, int *rcount, int *fcount); # ifndef OPENSSL_NO_DEPRECATED_3_0 # define OPENSSL_mem_debug_push(info) \ @@ -551,6 +569,13 @@ int OSSL_LIB_CTX_load_config(OSSL_LIB_CTX *ctx, const char *config_file); void OSSL_LIB_CTX_free(OSSL_LIB_CTX *); OSSL_LIB_CTX *OSSL_LIB_CTX_get0_global_default(void); OSSL_LIB_CTX *OSSL_LIB_CTX_set0_default(OSSL_LIB_CTX *libctx); +int OSSL_LIB_CTX_get_conf_diagnostics(OSSL_LIB_CTX *ctx); +void OSSL_LIB_CTX_set_conf_diagnostics(OSSL_LIB_CTX *ctx, int value); + +void OSSL_sleep(uint64_t millis); + + +void *OSSL_LIB_CTX_get_data(OSSL_LIB_CTX *ctx, int index); # ifdef __cplusplus } diff --git a/deps/openssl/config/archs/linux-elf/asm_avx2/include/openssl/ct.h b/deps/openssl/config/archs/linux-elf/asm_avx2/include/openssl/ct.h index b6dd8c3547710a..e6dd1192a4e0b3 100644 --- a/deps/openssl/config/archs/linux-elf/asm_avx2/include/openssl/ct.h +++ b/deps/openssl/config/archs/linux-elf/asm_avx2/include/openssl/ct.h @@ -133,7 +133,7 @@ typedef enum { */ CT_POLICY_EVAL_CTX *CT_POLICY_EVAL_CTX_new_ex(OSSL_LIB_CTX *libctx, const char *propq); - + /* * The same as CT_POLICY_EVAL_CTX_new_ex() but the default library * context and property query string is used. diff --git a/deps/openssl/config/archs/linux-elf/asm_avx2/include/openssl/err.h b/deps/openssl/config/archs/linux-elf/asm_avx2/include/openssl/err.h index 2abf2483488181..daca18e7b757b0 100644 --- a/deps/openssl/config/archs/linux-elf/asm_avx2/include/openssl/err.h +++ b/deps/openssl/config/archs/linux-elf/asm_avx2/include/openssl/err.h @@ -1,5 +1,5 @@ /* - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -372,7 +372,7 @@ typedef struct ERR_string_data_st { } ERR_STRING_DATA; DEFINE_LHASH_OF_INTERNAL(ERR_STRING_DATA); -#define lh_ERR_STRING_DATA_new(hfn, cmp) ((LHASH_OF(ERR_STRING_DATA) *)OPENSSL_LH_new(ossl_check_ERR_STRING_DATA_lh_hashfunc_type(hfn), ossl_check_ERR_STRING_DATA_lh_compfunc_type(cmp))) +#define lh_ERR_STRING_DATA_new(hfn, cmp) ((LHASH_OF(ERR_STRING_DATA) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new(ossl_check_ERR_STRING_DATA_lh_hashfunc_type(hfn), ossl_check_ERR_STRING_DATA_lh_compfunc_type(cmp)), lh_ERR_STRING_DATA_hash_thunk, lh_ERR_STRING_DATA_comp_thunk, lh_ERR_STRING_DATA_doall_thunk, lh_ERR_STRING_DATA_doall_arg_thunk)) #define lh_ERR_STRING_DATA_free(lh) OPENSSL_LH_free(ossl_check_ERR_STRING_DATA_lh_type(lh)) #define lh_ERR_STRING_DATA_flush(lh) OPENSSL_LH_flush(ossl_check_ERR_STRING_DATA_lh_type(lh)) #define lh_ERR_STRING_DATA_insert(lh, ptr) ((ERR_STRING_DATA *)OPENSSL_LH_insert(ossl_check_ERR_STRING_DATA_lh_type(lh), ossl_check_ERR_STRING_DATA_lh_plain_type(ptr))) @@ -496,6 +496,14 @@ int ERR_get_next_error_library(void); int ERR_set_mark(void); int ERR_pop_to_mark(void); int ERR_clear_last_mark(void); +int ERR_count_to_mark(void); +int ERR_pop(void); + +ERR_STATE *OSSL_ERR_STATE_new(void); +void OSSL_ERR_STATE_save(ERR_STATE *es); +void OSSL_ERR_STATE_save_to_mark(ERR_STATE *es); +void OSSL_ERR_STATE_restore(const ERR_STATE *es); +void OSSL_ERR_STATE_free(ERR_STATE *es); #ifdef __cplusplus } diff --git a/deps/openssl/config/archs/linux-elf/asm_avx2/include/openssl/fipskey.h b/deps/openssl/config/archs/linux-elf/asm_avx2/include/openssl/fipskey.h index 42ba014b313ba8..929db18c678364 100644 --- a/deps/openssl/config/archs/linux-elf/asm_avx2/include/openssl/fipskey.h +++ b/deps/openssl/config/archs/linux-elf/asm_avx2/include/openssl/fipskey.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/fipskey.h.in * - * Copyright 2020-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2020-2024 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -29,6 +29,11 @@ extern "C" { */ #define FIPS_KEY_STRING "f4556650ac31d35461610bac4ed81b1a181b2d8a43ea2854cbae22ca74560813" +/* + * The FIPS provider vendor name, as a string. + */ +#define FIPS_VENDOR "OpenSSL FIPS Provider" + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/linux-elf/asm_avx2/include/openssl/lhash.h b/deps/openssl/config/archs/linux-elf/asm_avx2/include/openssl/lhash.h index 39dd6254acdeb6..62c55b20fd9716 100644 --- a/deps/openssl/config/archs/linux-elf/asm_avx2/include/openssl/lhash.h +++ b/deps/openssl/config/archs/linux-elf/asm_avx2/include/openssl/lhash.h @@ -1,5 +1,5 @@ /* - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2024 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -24,6 +24,9 @@ # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -31,9 +34,13 @@ extern "C" { typedef struct lhash_node_st OPENSSL_LH_NODE; typedef int (*OPENSSL_LH_COMPFUNC) (const void *, const void *); +typedef int (*OPENSSL_LH_COMPFUNCTHUNK) (const void *, const void *, OPENSSL_LH_COMPFUNC cfn); typedef unsigned long (*OPENSSL_LH_HASHFUNC) (const void *); +typedef unsigned long (*OPENSSL_LH_HASHFUNCTHUNK) (const void *, OPENSSL_LH_HASHFUNC hfn); typedef void (*OPENSSL_LH_DOALL_FUNC) (void *); +typedef void (*OPENSSL_LH_DOALL_FUNC_THUNK) (void *, OPENSSL_LH_DOALL_FUNC doall); typedef void (*OPENSSL_LH_DOALL_FUNCARG) (void *, void *); +typedef void (*OPENSSL_LH_DOALL_FUNCARG_THUNK) (void *, void *, OPENSSL_LH_DOALL_FUNCARG doall); typedef struct lhash_st OPENSSL_LHASH; /* @@ -79,26 +86,40 @@ typedef struct lhash_st OPENSSL_LHASH; int OPENSSL_LH_error(OPENSSL_LHASH *lh); OPENSSL_LHASH *OPENSSL_LH_new(OPENSSL_LH_HASHFUNC h, OPENSSL_LH_COMPFUNC c); +OPENSSL_LHASH *OPENSSL_LH_set_thunks(OPENSSL_LHASH *lh, + OPENSSL_LH_HASHFUNCTHUNK hw, + OPENSSL_LH_COMPFUNCTHUNK cw, + OPENSSL_LH_DOALL_FUNC_THUNK daw, + OPENSSL_LH_DOALL_FUNCARG_THUNK daaw); void OPENSSL_LH_free(OPENSSL_LHASH *lh); void OPENSSL_LH_flush(OPENSSL_LHASH *lh); void *OPENSSL_LH_insert(OPENSSL_LHASH *lh, void *data); void *OPENSSL_LH_delete(OPENSSL_LHASH *lh, const void *data); void *OPENSSL_LH_retrieve(OPENSSL_LHASH *lh, const void *data); void OPENSSL_LH_doall(OPENSSL_LHASH *lh, OPENSSL_LH_DOALL_FUNC func); -void OPENSSL_LH_doall_arg(OPENSSL_LHASH *lh, OPENSSL_LH_DOALL_FUNCARG func, void *arg); +void OPENSSL_LH_doall_arg(OPENSSL_LHASH *lh, + OPENSSL_LH_DOALL_FUNCARG func, void *arg); +void OPENSSL_LH_doall_arg_thunk(OPENSSL_LHASH *lh, + OPENSSL_LH_DOALL_FUNCARG_THUNK daaw, + OPENSSL_LH_DOALL_FUNCARG fn, void *arg); + unsigned long OPENSSL_LH_strhash(const char *c); unsigned long OPENSSL_LH_num_items(const OPENSSL_LHASH *lh); unsigned long OPENSSL_LH_get_down_load(const OPENSSL_LHASH *lh); void OPENSSL_LH_set_down_load(OPENSSL_LHASH *lh, unsigned long down_load); # ifndef OPENSSL_NO_STDIO -void OPENSSL_LH_stats(const OPENSSL_LHASH *lh, FILE *fp); -void OPENSSL_LH_node_stats(const OPENSSL_LHASH *lh, FILE *fp); -void OPENSSL_LH_node_usage_stats(const OPENSSL_LHASH *lh, FILE *fp); +# ifndef OPENSSL_NO_DEPRECATED_3_1 +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_stats(const OPENSSL_LHASH *lh, FILE *fp); +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_node_stats(const OPENSSL_LHASH *lh, FILE *fp); +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_node_usage_stats(const OPENSSL_LHASH *lh, FILE *fp); +# endif +# endif +# ifndef OPENSSL_NO_DEPRECATED_3_1 +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_stats_bio(const OPENSSL_LHASH *lh, BIO *out); +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_node_stats_bio(const OPENSSL_LHASH *lh, BIO *out); +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_node_usage_stats_bio(const OPENSSL_LHASH *lh, BIO *out); # endif -void OPENSSL_LH_stats_bio(const OPENSSL_LHASH *lh, BIO *out); -void OPENSSL_LH_node_stats_bio(const OPENSSL_LHASH *lh, BIO *out); -void OPENSSL_LH_node_usage_stats_bio(const OPENSSL_LHASH *lh, BIO *out); # ifndef OPENSSL_NO_DEPRECATED_1_1_0 # define _LHASH OPENSSL_LHASH @@ -129,110 +150,190 @@ void OPENSSL_LH_node_usage_stats_bio(const OPENSSL_LHASH *lh, BIO *out); /* Helper macro for internal use */ # define DEFINE_LHASH_OF_INTERNAL(type) \ - LHASH_OF(type) { union lh_##type##_dummy { void* d1; unsigned long d2; int d3; } dummy; }; \ + LHASH_OF(type) { \ + union lh_##type##_dummy { void* d1; unsigned long d2; int d3; } dummy; \ + }; \ typedef int (*lh_##type##_compfunc)(const type *a, const type *b); \ typedef unsigned long (*lh_##type##_hashfunc)(const type *a); \ typedef void (*lh_##type##_doallfunc)(type *a); \ - static ossl_unused ossl_inline type *ossl_check_##type##_lh_plain_type(type *ptr) \ + static ossl_inline unsigned long lh_##type##_hash_thunk(const void *data, OPENSSL_LH_HASHFUNC hfn) \ + { \ + unsigned long (*hfn_conv)(const type *) = (unsigned long (*)(const type *))hfn; \ + return hfn_conv((const type *)data); \ + } \ + static ossl_inline int lh_##type##_comp_thunk(const void *da, const void *db, OPENSSL_LH_COMPFUNC cfn) \ + { \ + int (*cfn_conv)(const type *, const type *) = (int (*)(const type *, const type *))cfn; \ + return cfn_conv((const type *)da, (const type *)db); \ + } \ + static ossl_inline void lh_##type##_doall_thunk(void *node, OPENSSL_LH_DOALL_FUNC doall) \ + { \ + void (*doall_conv)(type *) = (void (*)(type *))doall; \ + doall_conv((type *)node); \ + } \ + static ossl_inline void lh_##type##_doall_arg_thunk(void *node, void *arg, OPENSSL_LH_DOALL_FUNCARG doall) \ + { \ + void (*doall_conv)(type *, void *) = (void (*)(type *, void *))doall; \ + doall_conv((type *)node, arg); \ + } \ + static ossl_unused ossl_inline type *\ + ossl_check_##type##_lh_plain_type(type *ptr) \ { \ return ptr; \ } \ - static ossl_unused ossl_inline const type *ossl_check_const_##type##_lh_plain_type(const type *ptr) \ + static ossl_unused ossl_inline const type * \ + ossl_check_const_##type##_lh_plain_type(const type *ptr) \ { \ return ptr; \ } \ - static ossl_unused ossl_inline const OPENSSL_LHASH *ossl_check_const_##type##_lh_type(const LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline const OPENSSL_LHASH * \ + ossl_check_const_##type##_lh_type(const LHASH_OF(type) *lh) \ { \ return (const OPENSSL_LHASH *)lh; \ } \ - static ossl_unused ossl_inline OPENSSL_LHASH *ossl_check_##type##_lh_type(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline OPENSSL_LHASH * \ + ossl_check_##type##_lh_type(LHASH_OF(type) *lh) \ { \ return (OPENSSL_LHASH *)lh; \ } \ - static ossl_unused ossl_inline OPENSSL_LH_COMPFUNC ossl_check_##type##_lh_compfunc_type(lh_##type##_compfunc cmp) \ + static ossl_unused ossl_inline OPENSSL_LH_COMPFUNC \ + ossl_check_##type##_lh_compfunc_type(lh_##type##_compfunc cmp) \ { \ return (OPENSSL_LH_COMPFUNC)cmp; \ } \ - static ossl_unused ossl_inline OPENSSL_LH_HASHFUNC ossl_check_##type##_lh_hashfunc_type(lh_##type##_hashfunc hfn) \ + static ossl_unused ossl_inline OPENSSL_LH_HASHFUNC \ + ossl_check_##type##_lh_hashfunc_type(lh_##type##_hashfunc hfn) \ { \ return (OPENSSL_LH_HASHFUNC)hfn; \ } \ - static ossl_unused ossl_inline OPENSSL_LH_DOALL_FUNC ossl_check_##type##_lh_doallfunc_type(lh_##type##_doallfunc dfn) \ + static ossl_unused ossl_inline OPENSSL_LH_DOALL_FUNC \ + ossl_check_##type##_lh_doallfunc_type(lh_##type##_doallfunc dfn) \ { \ return (OPENSSL_LH_DOALL_FUNC)dfn; \ } \ LHASH_OF(type) -# define DEFINE_LHASH_OF(type) \ - LHASH_OF(type) { union lh_##type##_dummy { void* d1; unsigned long d2; int d3; } dummy; }; \ - static ossl_unused ossl_inline LHASH_OF(type) *lh_##type##_new(unsigned long (*hfn)(const type *), \ - int (*cfn)(const type *, const type *)) \ +# ifndef OPENSSL_NO_DEPRECATED_3_1 +# define DEFINE_LHASH_OF_DEPRECATED(type) \ + static ossl_unused ossl_inline void \ + lh_##type##_node_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ { \ - return (LHASH_OF(type) *) \ - OPENSSL_LH_new((OPENSSL_LH_HASHFUNC)hfn, (OPENSSL_LH_COMPFUNC)cfn); \ + OPENSSL_LH_node_stats_bio((const OPENSSL_LHASH *)lh, out); \ } \ - static ossl_unused ossl_inline void lh_##type##_free(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline void \ + lh_##type##_node_usage_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + { \ + OPENSSL_LH_node_usage_stats_bio((const OPENSSL_LHASH *)lh, out); \ + } \ + static ossl_unused ossl_inline void \ + lh_##type##_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + { \ + OPENSSL_LH_stats_bio((const OPENSSL_LHASH *)lh, out); \ + } +# else +# define DEFINE_LHASH_OF_DEPRECATED(type) +# endif + +# define DEFINE_LHASH_OF_EX(type) \ + LHASH_OF(type) { \ + union lh_##type##_dummy { void* d1; unsigned long d2; int d3; } dummy; \ + }; \ + static unsigned long \ + lh_##type##_hfn_thunk(const void *data, OPENSSL_LH_HASHFUNC hfn) \ + { \ + unsigned long (*hfn_conv)(const type *) = (unsigned long (*)(const type *))hfn; \ + return hfn_conv((const type *)data); \ + } \ + static int lh_##type##_cfn_thunk(const void *da, const void *db, OPENSSL_LH_COMPFUNC cfn) \ + { \ + int (*cfn_conv)(const type *, const type *) = (int (*)(const type *, const type *))cfn; \ + return cfn_conv((const type *)da, (const type *)db); \ + } \ + static ossl_unused ossl_inline void \ + lh_##type##_free(LHASH_OF(type) *lh) \ { \ OPENSSL_LH_free((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline void lh_##type##_flush(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline void \ + lh_##type##_flush(LHASH_OF(type) *lh) \ { \ OPENSSL_LH_flush((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline type *lh_##type##_insert(LHASH_OF(type) *lh, type *d) \ + static ossl_unused ossl_inline type * \ + lh_##type##_insert(LHASH_OF(type) *lh, type *d) \ { \ return (type *)OPENSSL_LH_insert((OPENSSL_LHASH *)lh, d); \ } \ - static ossl_unused ossl_inline type *lh_##type##_delete(LHASH_OF(type) *lh, const type *d) \ + static ossl_unused ossl_inline type * \ + lh_##type##_delete(LHASH_OF(type) *lh, const type *d) \ { \ return (type *)OPENSSL_LH_delete((OPENSSL_LHASH *)lh, d); \ } \ - static ossl_unused ossl_inline type *lh_##type##_retrieve(LHASH_OF(type) *lh, const type *d) \ + static ossl_unused ossl_inline type * \ + lh_##type##_retrieve(LHASH_OF(type) *lh, const type *d) \ { \ return (type *)OPENSSL_LH_retrieve((OPENSSL_LHASH *)lh, d); \ } \ - static ossl_unused ossl_inline int lh_##type##_error(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline int \ + lh_##type##_error(LHASH_OF(type) *lh) \ { \ return OPENSSL_LH_error((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline unsigned long lh_##type##_num_items(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline unsigned long \ + lh_##type##_num_items(LHASH_OF(type) *lh) \ { \ return OPENSSL_LH_num_items((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline void lh_##type##_node_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + static ossl_unused ossl_inline unsigned long \ + lh_##type##_get_down_load(LHASH_OF(type) *lh) \ { \ - OPENSSL_LH_node_stats_bio((const OPENSSL_LHASH *)lh, out); \ + return OPENSSL_LH_get_down_load((OPENSSL_LHASH *)lh); \ } \ - static ossl_unused ossl_inline void lh_##type##_node_usage_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + static ossl_unused ossl_inline void \ + lh_##type##_set_down_load(LHASH_OF(type) *lh, unsigned long dl) \ { \ - OPENSSL_LH_node_usage_stats_bio((const OPENSSL_LHASH *)lh, out); \ + OPENSSL_LH_set_down_load((OPENSSL_LHASH *)lh, dl); \ } \ - static ossl_unused ossl_inline void lh_##type##_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall_thunk(void *node, OPENSSL_LH_DOALL_FUNC doall) \ { \ - OPENSSL_LH_stats_bio((const OPENSSL_LHASH *)lh, out); \ + void (*doall_conv)(type *) = (void (*)(type *))doall; \ + doall_conv((type *)node); \ } \ - static ossl_unused ossl_inline unsigned long lh_##type##_get_down_load(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall_arg_thunk(void *node, void *arg, OPENSSL_LH_DOALL_FUNCARG doall) \ { \ - return OPENSSL_LH_get_down_load((OPENSSL_LHASH *)lh); \ + void (*doall_conv)(type *, void *) = (void (*)(type *, void *))doall; \ + doall_conv((type *)node, arg); \ } \ - static ossl_unused ossl_inline void lh_##type##_set_down_load(LHASH_OF(type) *lh, unsigned long dl) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall(LHASH_OF(type) *lh, void (*doall)(type *)) \ { \ - OPENSSL_LH_set_down_load((OPENSSL_LHASH *)lh, dl); \ + OPENSSL_LH_doall((OPENSSL_LHASH *)lh, (OPENSSL_LH_DOALL_FUNC)doall); \ } \ - static ossl_unused ossl_inline void lh_##type##_doall(LHASH_OF(type) *lh, \ - void (*doall)(type *)) \ + static ossl_unused ossl_inline LHASH_OF(type) * \ + lh_##type##_new(unsigned long (*hfn)(const type *), \ + int (*cfn)(const type *, const type *)) \ { \ - OPENSSL_LH_doall((OPENSSL_LHASH *)lh, (OPENSSL_LH_DOALL_FUNC)doall); \ + return (LHASH_OF(type) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new((OPENSSL_LH_HASHFUNC)hfn, (OPENSSL_LH_COMPFUNC)cfn), \ + lh_##type##_hfn_thunk, lh_##type##_cfn_thunk, \ + lh_##type##_doall_thunk, \ + lh_##type##_doall_arg_thunk); \ } \ - static ossl_unused ossl_inline void lh_##type##_doall_arg(LHASH_OF(type) *lh, \ - void (*doallarg)(type *, void *), \ - void *arg) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall_arg(LHASH_OF(type) *lh, \ + void (*doallarg)(type *, void *), void *arg) \ { \ OPENSSL_LH_doall_arg((OPENSSL_LHASH *)lh, \ (OPENSSL_LH_DOALL_FUNCARG)doallarg, arg); \ } \ LHASH_OF(type) +# define DEFINE_LHASH_OF(type) \ + DEFINE_LHASH_OF_EX(type); \ + DEFINE_LHASH_OF_DEPRECATED(type) \ + LHASH_OF(type) + #define IMPLEMENT_LHASH_DOALL_ARG_CONST(type, argtype) \ int_implement_lhash_doall(type, argtype, const type) @@ -240,17 +341,26 @@ void OPENSSL_LH_node_usage_stats_bio(const OPENSSL_LHASH *lh, BIO *out); int_implement_lhash_doall(type, argtype, type) #define int_implement_lhash_doall(type, argtype, cbargtype) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall_##argtype##_thunk(void *node, void *arg, OPENSSL_LH_DOALL_FUNCARG fn) \ + { \ + void (*fn_conv)(cbargtype *, argtype *) = (void (*)(cbargtype *, argtype *))fn; \ + fn_conv((cbargtype *)node, (argtype *)arg); \ + } \ static ossl_unused ossl_inline void \ lh_##type##_doall_##argtype(LHASH_OF(type) *lh, \ void (*fn)(cbargtype *, argtype *), \ argtype *arg) \ { \ - OPENSSL_LH_doall_arg((OPENSSL_LHASH *)lh, (OPENSSL_LH_DOALL_FUNCARG)fn, (void *)arg); \ + OPENSSL_LH_doall_arg_thunk((OPENSSL_LHASH *)lh, \ + lh_##type##_doall_##argtype##_thunk, \ + (OPENSSL_LH_DOALL_FUNCARG)fn, \ + (void *)arg); \ } \ LHASH_OF(type) DEFINE_LHASH_OF_INTERNAL(OPENSSL_STRING); -#define lh_OPENSSL_STRING_new(hfn, cmp) ((LHASH_OF(OPENSSL_STRING) *)OPENSSL_LH_new(ossl_check_OPENSSL_STRING_lh_hashfunc_type(hfn), ossl_check_OPENSSL_STRING_lh_compfunc_type(cmp))) +#define lh_OPENSSL_STRING_new(hfn, cmp) ((LHASH_OF(OPENSSL_STRING) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new(ossl_check_OPENSSL_STRING_lh_hashfunc_type(hfn), ossl_check_OPENSSL_STRING_lh_compfunc_type(cmp)), lh_OPENSSL_STRING_hash_thunk, lh_OPENSSL_STRING_comp_thunk, lh_OPENSSL_STRING_doall_thunk, lh_OPENSSL_STRING_doall_arg_thunk)) #define lh_OPENSSL_STRING_free(lh) OPENSSL_LH_free(ossl_check_OPENSSL_STRING_lh_type(lh)) #define lh_OPENSSL_STRING_flush(lh) OPENSSL_LH_flush(ossl_check_OPENSSL_STRING_lh_type(lh)) #define lh_OPENSSL_STRING_insert(lh, ptr) ((OPENSSL_STRING *)OPENSSL_LH_insert(ossl_check_OPENSSL_STRING_lh_type(lh), ossl_check_OPENSSL_STRING_lh_plain_type(ptr))) @@ -265,7 +375,7 @@ DEFINE_LHASH_OF_INTERNAL(OPENSSL_STRING); #define lh_OPENSSL_STRING_set_down_load(lh, dl) OPENSSL_LH_set_down_load(ossl_check_OPENSSL_STRING_lh_type(lh), dl) #define lh_OPENSSL_STRING_doall(lh, dfn) OPENSSL_LH_doall(ossl_check_OPENSSL_STRING_lh_type(lh), ossl_check_OPENSSL_STRING_lh_doallfunc_type(dfn)) DEFINE_LHASH_OF_INTERNAL(OPENSSL_CSTRING); -#define lh_OPENSSL_CSTRING_new(hfn, cmp) ((LHASH_OF(OPENSSL_CSTRING) *)OPENSSL_LH_new(ossl_check_OPENSSL_CSTRING_lh_hashfunc_type(hfn), ossl_check_OPENSSL_CSTRING_lh_compfunc_type(cmp))) +#define lh_OPENSSL_CSTRING_new(hfn, cmp) ((LHASH_OF(OPENSSL_CSTRING) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new(ossl_check_OPENSSL_CSTRING_lh_hashfunc_type(hfn), ossl_check_OPENSSL_CSTRING_lh_compfunc_type(cmp)), lh_OPENSSL_CSTRING_hash_thunk, lh_OPENSSL_CSTRING_comp_thunk, lh_OPENSSL_CSTRING_doall_thunk, lh_OPENSSL_CSTRING_doall_arg_thunk)) #define lh_OPENSSL_CSTRING_free(lh) OPENSSL_LH_free(ossl_check_OPENSSL_CSTRING_lh_type(lh)) #define lh_OPENSSL_CSTRING_flush(lh) OPENSSL_LH_flush(ossl_check_OPENSSL_CSTRING_lh_type(lh)) #define lh_OPENSSL_CSTRING_insert(lh, ptr) ((OPENSSL_CSTRING *)OPENSSL_LH_insert(ossl_check_OPENSSL_CSTRING_lh_type(lh), ossl_check_OPENSSL_CSTRING_lh_plain_type(ptr))) diff --git a/deps/openssl/config/archs/linux-elf/asm_avx2/include/openssl/opensslv.h b/deps/openssl/config/archs/linux-elf/asm_avx2/include/openssl/opensslv.h index 5fb5bc63056fe0..dd50d89cb9982d 100644 --- a/deps/openssl/config/archs/linux-elf/asm_avx2/include/openssl/opensslv.h +++ b/deps/openssl/config/archs/linux-elf/asm_avx2/include/openssl/opensslv.h @@ -28,8 +28,8 @@ extern "C" { * These macros express version number MAJOR.MINOR.PATCH exactly */ # define OPENSSL_VERSION_MAJOR 3 -# define OPENSSL_VERSION_MINOR 0 -# define OPENSSL_VERSION_PATCH 17 +# define OPENSSL_VERSION_MINOR 5 +# define OPENSSL_VERSION_PATCH 1 /* * Additional version information @@ -74,8 +74,8 @@ extern "C" { * longer variant with OPENSSL_VERSION_PRE_RELEASE_STR and * OPENSSL_VERSION_BUILD_METADATA_STR appended. */ -# define OPENSSL_VERSION_STR "3.0.17" -# define OPENSSL_FULL_VERSION_STR "3.0.17" +# define OPENSSL_VERSION_STR "3.5.1" +# define OPENSSL_FULL_VERSION_STR "3.5.1" /* * SECTION 3: ADDITIONAL METADATA @@ -88,7 +88,7 @@ extern "C" { * SECTION 4: BACKWARD COMPATIBILITY */ -# define OPENSSL_VERSION_TEXT "OpenSSL 3.0.17 1 Jul 2025" +# define OPENSSL_VERSION_TEXT "OpenSSL 3.5.1 1 Jul 2025" /* Synthesize OPENSSL_VERSION_NUMBER with the layout 0xMNN00PPSL */ # ifdef OPENSSL_VERSION_PRE_RELEASE diff --git a/deps/openssl/config/archs/linux-elf/asm_avx2/include/openssl/pkcs12.h b/deps/openssl/config/archs/linux-elf/asm_avx2/include/openssl/pkcs12.h index c5e0cab06491ec..0809645dad0bbf 100644 --- a/deps/openssl/config/archs/linux-elf/asm_avx2/include/openssl/pkcs12.h +++ b/deps/openssl/config/archs/linux-elf/asm_avx2/include/openssl/pkcs12.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/pkcs12.h.in * - * Copyright 1999-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1999-2024 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -25,6 +25,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -41,6 +44,7 @@ extern "C" { # define PKCS12_MAC_KEY_LENGTH 20 +/* The macro is expected to be used only internally. Kept for backwards compatibility. */ # define PKCS12_SALT_LEN 8 /* It's not clear if these are actually needed... */ @@ -130,7 +134,9 @@ int PKCS12_SAFEBAG_get_bag_nid(const PKCS12_SAFEBAG *bag); const ASN1_TYPE *PKCS12_SAFEBAG_get0_bag_obj(const PKCS12_SAFEBAG *bag); const ASN1_OBJECT *PKCS12_SAFEBAG_get0_bag_type(const PKCS12_SAFEBAG *bag); +X509 *PKCS12_SAFEBAG_get1_cert_ex(const PKCS12_SAFEBAG *bag, OSSL_LIB_CTX *libctx, const char *propq); X509 *PKCS12_SAFEBAG_get1_cert(const PKCS12_SAFEBAG *bag); +X509_CRL *PKCS12_SAFEBAG_get1_crl_ex(const PKCS12_SAFEBAG *bag, OSSL_LIB_CTX *libctx, const char *propq); X509_CRL *PKCS12_SAFEBAG_get1_crl(const PKCS12_SAFEBAG *bag); const STACK_OF(PKCS12_SAFEBAG) * PKCS12_SAFEBAG_get0_safes(const PKCS12_SAFEBAG *bag); @@ -218,6 +224,7 @@ ASN1_TYPE *PKCS12_get_attr_gen(const STACK_OF(X509_ATTRIBUTE) *attrs, char *PKCS12_get_friendlyname(PKCS12_SAFEBAG *bag); const STACK_OF(X509_ATTRIBUTE) * PKCS12_SAFEBAG_get0_attrs(const PKCS12_SAFEBAG *bag); +void PKCS12_SAFEBAG_set0_attrs(PKCS12_SAFEBAG *bag, STACK_OF(X509_ATTRIBUTE) *attrs); unsigned char *PKCS12_pbe_crypt(const X509_ALGOR *algor, const char *pass, int passlen, const unsigned char *in, int inlen, @@ -285,6 +292,9 @@ int PKCS12_verify_mac(PKCS12 *p12, const char *pass, int passlen); int PKCS12_set_mac(PKCS12 *p12, const char *pass, int passlen, unsigned char *salt, int saltlen, int iter, const EVP_MD *md_type); +int PKCS12_set_pbmac1_pbkdf2(PKCS12 *p12, const char *pass, int passlen, + unsigned char *salt, int saltlen, int iter, + const EVP_MD *md_type, const char *prf_md_name); int PKCS12_setup_mac(PKCS12 *p12, int iter, unsigned char *salt, int saltlen, const EVP_MD *md_type); unsigned char *OPENSSL_asc2uni(const char *asc, int asclen, @@ -305,6 +315,7 @@ DECLARE_ASN1_ITEM(PKCS12_AUTHSAFES) void PKCS12_PBE_add(void); int PKCS12_parse(PKCS12 *p12, const char *pass, EVP_PKEY **pkey, X509 **cert, STACK_OF(X509) **ca); +typedef int PKCS12_create_cb(PKCS12_SAFEBAG *bag, void *cbarg); PKCS12 *PKCS12_create(const char *pass, const char *name, EVP_PKEY *pkey, X509 *cert, STACK_OF(X509) *ca, int nid_key, int nid_cert, int iter, int mac_iter, int keytype); @@ -312,6 +323,11 @@ PKCS12 *PKCS12_create_ex(const char *pass, const char *name, EVP_PKEY *pkey, X509 *cert, STACK_OF(X509) *ca, int nid_key, int nid_cert, int iter, int mac_iter, int keytype, OSSL_LIB_CTX *ctx, const char *propq); +PKCS12 *PKCS12_create_ex2(const char *pass, const char *name, EVP_PKEY *pkey, + X509 *cert, STACK_OF(X509) *ca, int nid_key, int nid_cert, + int iter, int mac_iter, int keytype, + OSSL_LIB_CTX *ctx, const char *propq, + PKCS12_create_cb *cb, void *cbarg); PKCS12_SAFEBAG *PKCS12_add_cert(STACK_OF(PKCS12_SAFEBAG) **pbags, X509 *cert); PKCS12_SAFEBAG *PKCS12_add_key(STACK_OF(PKCS12_SAFEBAG) **pbags, diff --git a/deps/openssl/config/archs/linux-elf/asm_avx2/include/openssl/pkcs7.h b/deps/openssl/config/archs/linux-elf/asm_avx2/include/openssl/pkcs7.h index 0ce79bf4fa160e..fa68462aff973b 100644 --- a/deps/openssl/config/archs/linux-elf/asm_avx2/include/openssl/pkcs7.h +++ b/deps/openssl/config/archs/linux-elf/asm_avx2/include/openssl/pkcs7.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/pkcs7.h.in * - * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -28,6 +28,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -131,8 +134,8 @@ SKM_DEFINE_STACK_OF_INTERNAL(PKCS7_RECIP_INFO, PKCS7_RECIP_INFO, PKCS7_RECIP_INF typedef struct pkcs7_signed_st { ASN1_INTEGER *version; /* version 1 */ STACK_OF(X509_ALGOR) *md_algs; /* md used */ - STACK_OF(X509) *cert; /* [ 0 ] */ - STACK_OF(X509_CRL) *crl; /* [ 1 ] */ + STACK_OF(X509) *cert; /* [ 0 ] */ /* name should be 'certificates' */ + STACK_OF(X509_CRL) *crl; /* [ 1 ] */ /* name should be 'crls' */ STACK_OF(PKCS7_SIGNER_INFO) *signer_info; struct pkcs7_st *contents; } PKCS7_SIGNED; @@ -158,8 +161,8 @@ typedef struct pkcs7_enveloped_st { typedef struct pkcs7_signedandenveloped_st { ASN1_INTEGER *version; /* version 1 */ STACK_OF(X509_ALGOR) *md_algs; /* md used */ - STACK_OF(X509) *cert; /* [ 0 ] */ - STACK_OF(X509_CRL) *crl; /* [ 1 ] */ + STACK_OF(X509) *cert; /* [ 0 ] */ /* name should be 'certificates' */ + STACK_OF(X509_CRL) *crl; /* [ 1 ] */ /* name should be 'crls' */ STACK_OF(PKCS7_SIGNER_INFO) *signer_info; PKCS7_ENC_CONTENT *enc_data; STACK_OF(PKCS7_RECIP_INFO) *recipientinfo; @@ -200,7 +203,7 @@ typedef struct pkcs7_st { /* NID_pkcs7_data */ ASN1_OCTET_STRING *data; /* NID_pkcs7_signed */ - PKCS7_SIGNED *sign; + PKCS7_SIGNED *sign; /* field name 'signed' would clash with C keyword */ /* NID_pkcs7_enveloped */ PKCS7_ENVELOPE *enveloped; /* NID_pkcs7_signedAndEnveloped */ @@ -341,13 +344,13 @@ int PKCS7_SIGNER_INFO_set(PKCS7_SIGNER_INFO *p7i, X509 *x509, EVP_PKEY *pkey, const EVP_MD *dgst); int PKCS7_SIGNER_INFO_sign(PKCS7_SIGNER_INFO *si); int PKCS7_add_signer(PKCS7 *p7, PKCS7_SIGNER_INFO *p7i); -int PKCS7_add_certificate(PKCS7 *p7, X509 *x509); -int PKCS7_add_crl(PKCS7 *p7, X509_CRL *x509); +int PKCS7_add_certificate(PKCS7 *p7, X509 *cert); +int PKCS7_add_crl(PKCS7 *p7, X509_CRL *crl); int PKCS7_content_new(PKCS7 *p7, int nid); int PKCS7_dataVerify(X509_STORE *cert_store, X509_STORE_CTX *ctx, BIO *bio, PKCS7 *p7, PKCS7_SIGNER_INFO *si); int PKCS7_signatureVerify(BIO *bio, PKCS7 *p7, PKCS7_SIGNER_INFO *si, - X509 *x509); + X509 *signer); BIO *PKCS7_dataInit(PKCS7 *p7, BIO *bio); int PKCS7_dataFinal(PKCS7 *p7, BIO *bio); diff --git a/deps/openssl/config/archs/linux-elf/asm_avx2/include/openssl/ssl.h b/deps/openssl/config/archs/linux-elf/asm_avx2/include/openssl/ssl.h index 3df725c56d6c5e..7e3d89c7ef3dc9 100644 --- a/deps/openssl/config/archs/linux-elf/asm_avx2/include/openssl/ssl.h +++ b/deps/openssl/config/archs/linux-elf/asm_avx2/include/openssl/ssl.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/ssl.h.in * - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved * Copyright 2005 Nokia. All rights reserved. * @@ -24,6 +24,7 @@ # endif # include +# include # include # include # include @@ -42,6 +43,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -231,10 +235,8 @@ typedef struct ssl_cipher_st SSL_CIPHER; typedef struct ssl_session_st SSL_SESSION; typedef struct tls_sigalgs_st TLS_SIGALGS; typedef struct ssl_conf_ctx_st SSL_CONF_CTX; -typedef struct ssl_comp_st SSL_COMP; STACK_OF(SSL_CIPHER); -STACK_OF(SSL_COMP); /* SRTP protection profiles for use with the use_srtp extension (RFC 5764)*/ typedef struct srtp_protection_profile_st { @@ -278,28 +280,31 @@ typedef int (*tls_session_secret_cb_fn)(SSL *s, void *secret, int *secret_len, /* Extension context codes */ /* This extension is only allowed in TLS */ -#define SSL_EXT_TLS_ONLY 0x0001 +#define SSL_EXT_TLS_ONLY 0x00001 /* This extension is only allowed in DTLS */ -#define SSL_EXT_DTLS_ONLY 0x0002 +#define SSL_EXT_DTLS_ONLY 0x00002 /* Some extensions may be allowed in DTLS but we don't implement them for it */ -#define SSL_EXT_TLS_IMPLEMENTATION_ONLY 0x0004 +#define SSL_EXT_TLS_IMPLEMENTATION_ONLY 0x00004 /* Most extensions are not defined for SSLv3 but EXT_TYPE_renegotiate is */ -#define SSL_EXT_SSL3_ALLOWED 0x0008 +#define SSL_EXT_SSL3_ALLOWED 0x00008 /* Extension is only defined for TLS1.2 and below */ -#define SSL_EXT_TLS1_2_AND_BELOW_ONLY 0x0010 +#define SSL_EXT_TLS1_2_AND_BELOW_ONLY 0x00010 /* Extension is only defined for TLS1.3 and above */ -#define SSL_EXT_TLS1_3_ONLY 0x0020 +#define SSL_EXT_TLS1_3_ONLY 0x00020 /* Ignore this extension during parsing if we are resuming */ -#define SSL_EXT_IGNORE_ON_RESUMPTION 0x0040 -#define SSL_EXT_CLIENT_HELLO 0x0080 +#define SSL_EXT_IGNORE_ON_RESUMPTION 0x00040 +#define SSL_EXT_CLIENT_HELLO 0x00080 /* Really means TLS1.2 or below */ -#define SSL_EXT_TLS1_2_SERVER_HELLO 0x0100 -#define SSL_EXT_TLS1_3_SERVER_HELLO 0x0200 -#define SSL_EXT_TLS1_3_ENCRYPTED_EXTENSIONS 0x0400 -#define SSL_EXT_TLS1_3_HELLO_RETRY_REQUEST 0x0800 -#define SSL_EXT_TLS1_3_CERTIFICATE 0x1000 -#define SSL_EXT_TLS1_3_NEW_SESSION_TICKET 0x2000 -#define SSL_EXT_TLS1_3_CERTIFICATE_REQUEST 0x4000 +#define SSL_EXT_TLS1_2_SERVER_HELLO 0x00100 +#define SSL_EXT_TLS1_3_SERVER_HELLO 0x00200 +#define SSL_EXT_TLS1_3_ENCRYPTED_EXTENSIONS 0x00400 +#define SSL_EXT_TLS1_3_HELLO_RETRY_REQUEST 0x00800 +#define SSL_EXT_TLS1_3_CERTIFICATE 0x01000 +#define SSL_EXT_TLS1_3_NEW_SESSION_TICKET 0x02000 +#define SSL_EXT_TLS1_3_CERTIFICATE_REQUEST 0x04000 +#define SSL_EXT_TLS1_3_CERTIFICATE_COMPRESSION 0x08000 +/* When sending a raw public key in a certificate message */ +#define SSL_EXT_TLS1_3_RAW_PUBLIC_KEY 0x10000 /* Typedefs for handling custom extensions */ @@ -404,7 +409,7 @@ typedef int (*SSL_async_callback_fn)(SSL *s, void *arg); */ # define SSL_OP_CIPHER_SERVER_PREFERENCE SSL_OP_BIT(22) /* - * If set, a server will allow a client to issue a SSLv3.0 version + * If set, a server will allow a client to issue an SSLv3.0 version * number as latest version supported in the premaster secret, even when * TLSv1.0 (version 3.1) was announced in the client hello. Normally * this is forbidden to prevent version rollback attacks. @@ -430,6 +435,19 @@ typedef int (*SSL_async_callback_fn)(SSL *s, void *arg); * interoperability with CryptoPro CSP 3.x */ # define SSL_OP_CRYPTOPRO_TLSEXT_BUG SSL_OP_BIT(31) +/* + * Disable RFC8879 certificate compression + * SSL_OP_NO_TX_CERTIFICATE_COMPRESSION: don't send compressed certificates, + * and ignore the extension when received. + * SSL_OP_NO_RX_CERTIFICATE_COMPRESSION: don't send the extension, and + * subsequently indicating that receiving is not supported + */ +# define SSL_OP_NO_TX_CERTIFICATE_COMPRESSION SSL_OP_BIT(32) +# define SSL_OP_NO_RX_CERTIFICATE_COMPRESSION SSL_OP_BIT(33) + /* Enable KTLS TX zerocopy on Linux */ +# define SSL_OP_ENABLE_KTLS_TX_ZEROCOPY_SENDFILE SSL_OP_BIT(34) + +#define SSL_OP_PREFER_NO_DHE_KEX SSL_OP_BIT(35) /* * Option "collections." @@ -574,6 +592,8 @@ typedef int (*SSL_async_callback_fn)(SSL *s, void *arg); # define CERT_PKEY_CERT_TYPE 0x400 /* Cert chain suitable to Suite B */ # define CERT_PKEY_SUITEB 0x800 +/* Cert pkey valid for raw public key use */ +# define CERT_PKEY_RPK 0x1000 # define SSL_CONF_FLAG_CMDLINE 0x1 # define SSL_CONF_FLAG_FILE 0x2 @@ -965,6 +985,7 @@ uint32_t SSL_get_recv_max_early_data(const SSL *s); # include /* This is mostly sslv3 with a few tweaks */ # include /* Datagram TLS */ # include /* Support for the use_srtp extension */ +# include #ifdef __cplusplus extern "C" { @@ -1000,32 +1021,6 @@ SKM_DEFINE_STACK_OF_INTERNAL(SSL_CIPHER, const SSL_CIPHER, SSL_CIPHER) #define sk_SSL_CIPHER_dup(sk) ((STACK_OF(SSL_CIPHER) *)OPENSSL_sk_dup(ossl_check_const_SSL_CIPHER_sk_type(sk))) #define sk_SSL_CIPHER_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(SSL_CIPHER) *)OPENSSL_sk_deep_copy(ossl_check_const_SSL_CIPHER_sk_type(sk), ossl_check_SSL_CIPHER_copyfunc_type(copyfunc), ossl_check_SSL_CIPHER_freefunc_type(freefunc))) #define sk_SSL_CIPHER_set_cmp_func(sk, cmp) ((sk_SSL_CIPHER_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_SSL_CIPHER_sk_type(sk), ossl_check_SSL_CIPHER_compfunc_type(cmp))) -SKM_DEFINE_STACK_OF_INTERNAL(SSL_COMP, SSL_COMP, SSL_COMP) -#define sk_SSL_COMP_num(sk) OPENSSL_sk_num(ossl_check_const_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_value(sk, idx) ((SSL_COMP *)OPENSSL_sk_value(ossl_check_const_SSL_COMP_sk_type(sk), (idx))) -#define sk_SSL_COMP_new(cmp) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new(ossl_check_SSL_COMP_compfunc_type(cmp))) -#define sk_SSL_COMP_new_null() ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new_null()) -#define sk_SSL_COMP_new_reserve(cmp, n) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new_reserve(ossl_check_SSL_COMP_compfunc_type(cmp), (n))) -#define sk_SSL_COMP_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_SSL_COMP_sk_type(sk), (n)) -#define sk_SSL_COMP_free(sk) OPENSSL_sk_free(ossl_check_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_zero(sk) OPENSSL_sk_zero(ossl_check_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_delete(sk, i) ((SSL_COMP *)OPENSSL_sk_delete(ossl_check_SSL_COMP_sk_type(sk), (i))) -#define sk_SSL_COMP_delete_ptr(sk, ptr) ((SSL_COMP *)OPENSSL_sk_delete_ptr(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr))) -#define sk_SSL_COMP_push(sk, ptr) OPENSSL_sk_push(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) -#define sk_SSL_COMP_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) -#define sk_SSL_COMP_pop(sk) ((SSL_COMP *)OPENSSL_sk_pop(ossl_check_SSL_COMP_sk_type(sk))) -#define sk_SSL_COMP_shift(sk) ((SSL_COMP *)OPENSSL_sk_shift(ossl_check_SSL_COMP_sk_type(sk))) -#define sk_SSL_COMP_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_SSL_COMP_sk_type(sk),ossl_check_SSL_COMP_freefunc_type(freefunc)) -#define sk_SSL_COMP_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr), (idx)) -#define sk_SSL_COMP_set(sk, idx, ptr) ((SSL_COMP *)OPENSSL_sk_set(ossl_check_SSL_COMP_sk_type(sk), (idx), ossl_check_SSL_COMP_type(ptr))) -#define sk_SSL_COMP_find(sk, ptr) OPENSSL_sk_find(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) -#define sk_SSL_COMP_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) -#define sk_SSL_COMP_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr), pnum) -#define sk_SSL_COMP_sort(sk) OPENSSL_sk_sort(ossl_check_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_dup(sk) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_dup(ossl_check_const_SSL_COMP_sk_type(sk))) -#define sk_SSL_COMP_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_deep_copy(ossl_check_const_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_copyfunc_type(copyfunc), ossl_check_SSL_COMP_freefunc_type(freefunc))) -#define sk_SSL_COMP_set_cmp_func(sk, cmp) ((sk_SSL_COMP_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_compfunc_type(cmp))) /* compatibility */ @@ -1066,6 +1061,7 @@ typedef enum { DTLS_ST_CR_HELLO_VERIFY_REQUEST, TLS_ST_CR_SRVR_HELLO, TLS_ST_CR_CERT, + TLS_ST_CR_COMP_CERT, TLS_ST_CR_CERT_STATUS, TLS_ST_CR_KEY_EXCH, TLS_ST_CR_CERT_REQ, @@ -1075,6 +1071,7 @@ typedef enum { TLS_ST_CR_FINISHED, TLS_ST_CW_CLNT_HELLO, TLS_ST_CW_CERT, + TLS_ST_CW_COMP_CERT, TLS_ST_CW_KEY_EXCH, TLS_ST_CW_CERT_VRFY, TLS_ST_CW_CHANGE, @@ -1085,10 +1082,12 @@ typedef enum { DTLS_ST_SW_HELLO_VERIFY_REQUEST, TLS_ST_SW_SRVR_HELLO, TLS_ST_SW_CERT, + TLS_ST_SW_COMP_CERT, TLS_ST_SW_KEY_EXCH, TLS_ST_SW_CERT_REQ, TLS_ST_SW_SRVR_DONE, TLS_ST_SR_CERT, + TLS_ST_SR_COMP_CERT, TLS_ST_SR_KEY_EXCH, TLS_ST_SR_CERT_VRFY, TLS_ST_SR_NEXT_PROTO, @@ -1380,9 +1379,13 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) # define SSL_CTRL_GET_SIGNATURE_NID 132 # define SSL_CTRL_GET_TMP_KEY 133 # define SSL_CTRL_GET_NEGOTIATED_GROUP 134 +# define SSL_CTRL_GET_IANA_GROUPS 135 # define SSL_CTRL_SET_RETRY_VERIFY 136 # define SSL_CTRL_GET_VERIFY_CERT_STORE 137 # define SSL_CTRL_GET_CHAIN_CERT_STORE 138 +# define SSL_CTRL_GET0_IMPLEMENTED_GROUPS 139 +# define SSL_CTRL_GET_SIGNATURE_NAME 140 +# define SSL_CTRL_GET_PEER_SIGNATURE_NAME 141 # define SSL_CERT_SET_FIRST 1 # define SSL_CERT_SET_NEXT 2 # define SSL_CERT_SET_SERVER 3 @@ -1485,10 +1488,15 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) # define SSL_get1_groups(s, glist) \ SSL_ctrl(s,SSL_CTRL_GET_GROUPS,0,(int*)(glist)) +# define SSL_get0_iana_groups(s, plst) \ + SSL_ctrl(s,SSL_CTRL_GET_IANA_GROUPS,0,(uint16_t **)(plst)) # define SSL_CTX_set1_groups(ctx, glist, glistlen) \ SSL_CTX_ctrl(ctx,SSL_CTRL_SET_GROUPS,glistlen,(int *)(glist)) # define SSL_CTX_set1_groups_list(ctx, s) \ SSL_CTX_ctrl(ctx,SSL_CTRL_SET_GROUPS_LIST,0,(char *)(s)) +# define SSL_CTX_get0_implemented_groups(ctx, all, out) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_GET0_IMPLEMENTED_GROUPS, all, \ + (STACK_OF(OPENSSL_CSTRING) *)(out)) # define SSL_set1_groups(s, glist, glistlen) \ SSL_ctrl(s,SSL_CTRL_SET_GROUPS,glistlen,(char *)(glist)) # define SSL_set1_groups_list(s, str) \ @@ -1520,8 +1528,12 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) (char *)(clist)) # define SSL_set1_client_certificate_types(s, clist, clistlen) \ SSL_ctrl(s,SSL_CTRL_SET_CLIENT_CERT_TYPES,clistlen,(char *)(clist)) +# define SSL_get0_signature_name(s, str) \ + SSL_ctrl(s,SSL_CTRL_GET_SIGNATURE_NAME,0,(1?(str):(const char **)NULL)) # define SSL_get_signature_nid(s, pn) \ SSL_ctrl(s,SSL_CTRL_GET_SIGNATURE_NID,0,pn) +# define SSL_get0_peer_signature_name(s, str) \ + SSL_ctrl(s,SSL_CTRL_GET_PEER_SIGNATURE_NAME,0,(1?(str):(const char **)NULL)) # define SSL_get_peer_signature_nid(s, pn) \ SSL_ctrl(s,SSL_CTRL_GET_PEER_SIGNATURE_NID,0,pn) # define SSL_get_peer_tmp_key(s, pk) \ @@ -1549,6 +1561,7 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) # define SSL_get_max_proto_version(s) \ SSL_ctrl(s, SSL_CTRL_GET_MAX_PROTO_VERSION, 0, NULL) +const char *SSL_get0_group_name(SSL *s); const char *SSL_group_to_name(SSL *s, int id); /* Backwards compatibility, original 1.1.0 names */ @@ -1613,7 +1626,11 @@ void SSL_CTX_set1_cert_store(SSL_CTX *, X509_STORE *); __owur int SSL_want(const SSL *s); __owur int SSL_clear(SSL *s); +#ifndef OPENSSL_NO_DEPRECATED_3_4 +OSSL_DEPRECATEDIN_3_4_FOR("not Y2038-safe, replace with SSL_CTX_flush_sessions_ex()") void SSL_CTX_flush_sessions(SSL_CTX *ctx, long tm); +#endif +void SSL_CTX_flush_sessions_ex(SSL_CTX *ctx, time_t tm); __owur const SSL_CIPHER *SSL_get_current_cipher(const SSL *s); __owur const SSL_CIPHER *SSL_get_pending_cipher(const SSL *s); @@ -1725,13 +1742,21 @@ __owur const char *SSL_state_string(const SSL *s); __owur const char *SSL_rstate_string(const SSL *s); __owur const char *SSL_state_string_long(const SSL *s); __owur const char *SSL_rstate_string_long(const SSL *s); + +#ifndef OPENSSL_NO_DEPRECATED_3_4 +OSSL_DEPRECATEDIN_3_4_FOR("not Y2038-safe, replace with SSL_SESSION_get_time_ex()") __owur long SSL_SESSION_get_time(const SSL_SESSION *s); +OSSL_DEPRECATEDIN_3_4_FOR("not Y2038-safe, replace with SSL_SESSION_set_time_ex()") __owur long SSL_SESSION_set_time(SSL_SESSION *s, long t); +#endif __owur long SSL_SESSION_get_timeout(const SSL_SESSION *s); __owur long SSL_SESSION_set_timeout(SSL_SESSION *s, long t); __owur int SSL_SESSION_get_protocol_version(const SSL_SESSION *s); __owur int SSL_SESSION_set_protocol_version(SSL_SESSION *s, int version); +__owur time_t SSL_SESSION_get_time_ex(const SSL_SESSION *s); +__owur time_t SSL_SESSION_set_time_ex(SSL_SESSION *s, time_t t); + __owur const char *SSL_SESSION_get0_hostname(const SSL_SESSION *s); __owur int SSL_SESSION_set1_hostname(SSL_SESSION *s, const char *hostname); void SSL_SESSION_get0_alpn_selected(const SSL_SESSION *s, @@ -1783,6 +1808,9 @@ __owur int SSL_has_matching_session_id(const SSL *s, unsigned int id_len); SSL_SESSION *d2i_SSL_SESSION(SSL_SESSION **a, const unsigned char **pp, long length); +SSL_SESSION *d2i_SSL_SESSION_ex(SSL_SESSION **a, const unsigned char **pp, + long length, OSSL_LIB_CTX *libctx, + const char *propq); # ifdef OPENSSL_X509_H __owur X509 *SSL_get0_peer_certificate(const SSL *s); @@ -1840,6 +1868,8 @@ __owur int SSL_CTX_set_session_id_context(SSL_CTX *ctx, SSL *SSL_new(SSL_CTX *ctx); int SSL_up_ref(SSL *s); int SSL_is_dtls(const SSL *s); +int SSL_is_tls(const SSL *s); +int SSL_is_quic(const SSL *s); __owur int SSL_set_session_id_context(SSL *ssl, const unsigned char *sid_ctx, unsigned int sid_ctx_len); @@ -1848,8 +1878,8 @@ __owur int SSL_set_purpose(SSL *ssl, int purpose); __owur int SSL_CTX_set_trust(SSL_CTX *ctx, int trust); __owur int SSL_set_trust(SSL *ssl, int trust); -__owur int SSL_set1_host(SSL *s, const char *hostname); -__owur int SSL_add1_host(SSL *s, const char *hostname); +__owur int SSL_set1_host(SSL *s, const char *host); +__owur int SSL_add1_host(SSL *s, const char *host); __owur const char *SSL_get0_peername(SSL *s); void SSL_set_hostflags(SSL *s, unsigned int flags); @@ -1924,6 +1954,11 @@ OSSL_DEPRECATEDIN_3_0 __owur char *SSL_get_srp_userinfo(SSL *s); typedef int (*SSL_client_hello_cb_fn) (SSL *s, int *al, void *arg); void SSL_CTX_set_client_hello_cb(SSL_CTX *c, SSL_client_hello_cb_fn cb, void *arg); +typedef int (*SSL_new_pending_conn_cb_fn) (SSL_CTX *ctx, SSL *new_ssl, + void *arg); +void SSL_CTX_set_new_pending_conn_cb(SSL_CTX *c, SSL_new_pending_conn_cb_fn cb, + void *arg); + int SSL_client_hello_isv2(SSL *s); unsigned int SSL_client_hello_get0_legacy_version(SSL *s); size_t SSL_client_hello_get0_random(SSL *s, const unsigned char **out); @@ -1932,6 +1967,8 @@ size_t SSL_client_hello_get0_ciphers(SSL *s, const unsigned char **out); size_t SSL_client_hello_get0_compression_methods(SSL *s, const unsigned char **out); int SSL_client_hello_get1_extensions_present(SSL *s, int **out, size_t *outlen); +int SSL_client_hello_get_extension_order(SSL *s, uint16_t *exts, + size_t *num_exts); int SSL_client_hello_get0_ext(SSL *s, unsigned int type, const unsigned char **out, size_t *outlen); @@ -1978,6 +2015,12 @@ long SSL_callback_ctrl(SSL *, int, void (*)(void)); long SSL_CTX_ctrl(SSL_CTX *ctx, int cmd, long larg, void *parg); long SSL_CTX_callback_ctrl(SSL_CTX *, int, void (*)(void)); +# define SSL_WRITE_FLAG_CONCLUDE (1U << 0) + +__owur int SSL_write_ex2(SSL *s, const void *buf, size_t num, + uint64_t flags, + size_t *written); + # define SSL_EARLY_DATA_NOT_SENT 0 # define SSL_EARLY_DATA_REJECTED 1 # define SSL_EARLY_DATA_ACCEPTED 2 @@ -1986,6 +2029,7 @@ __owur int SSL_get_early_data_status(const SSL *s); __owur int SSL_get_error(const SSL *s, int ret_code); __owur const char *SSL_get_version(const SSL *s); +__owur int SSL_get_handshake_rtt(const SSL *s, uint64_t *rtt); /* This sets the 'default' SSL version that SSL_new() will create */ # ifndef OPENSSL_NO_DEPRECATED_3_0 @@ -2281,6 +2325,8 @@ void SSL_CTX_set_record_padding_callback(SSL_CTX *ctx, void SSL_CTX_set_record_padding_callback_arg(SSL_CTX *ctx, void *arg); void *SSL_CTX_get_record_padding_callback_arg(const SSL_CTX *ctx); int SSL_CTX_set_block_padding(SSL_CTX *ctx, size_t block_size); +int SSL_CTX_set_block_padding_ex(SSL_CTX *ctx, size_t app_block_size, + size_t hs_block_size); int SSL_set_record_padding_callback(SSL *ssl, size_t (*cb) (SSL *ssl, int type, @@ -2288,12 +2334,255 @@ int SSL_set_record_padding_callback(SSL *ssl, void SSL_set_record_padding_callback_arg(SSL *ssl, void *arg); void *SSL_get_record_padding_callback_arg(const SSL *ssl); int SSL_set_block_padding(SSL *ssl, size_t block_size); - +int SSL_set_block_padding_ex(SSL *ssl, size_t app_block_size, + size_t hs_block_size); int SSL_set_num_tickets(SSL *s, size_t num_tickets); size_t SSL_get_num_tickets(const SSL *s); int SSL_CTX_set_num_tickets(SSL_CTX *ctx, size_t num_tickets); size_t SSL_CTX_get_num_tickets(const SSL_CTX *ctx); +/* QUIC support */ +int SSL_handle_events(SSL *s); +__owur int SSL_get_event_timeout(SSL *s, struct timeval *tv, int *is_infinite); +__owur int SSL_get_rpoll_descriptor(SSL *s, BIO_POLL_DESCRIPTOR *desc); +__owur int SSL_get_wpoll_descriptor(SSL *s, BIO_POLL_DESCRIPTOR *desc); +__owur int SSL_net_read_desired(SSL *s); +__owur int SSL_net_write_desired(SSL *s); +__owur int SSL_set_blocking_mode(SSL *s, int blocking); +__owur int SSL_get_blocking_mode(SSL *s); +__owur int SSL_set1_initial_peer_addr(SSL *s, const BIO_ADDR *peer_addr); +__owur SSL *SSL_get0_connection(SSL *s); +__owur int SSL_is_connection(SSL *s); + +__owur int SSL_is_listener(SSL *ssl); +__owur SSL *SSL_get0_listener(SSL *s); +#define SSL_LISTENER_FLAG_NO_VALIDATE (1UL << 1) +__owur SSL *SSL_new_listener(SSL_CTX *ctx, uint64_t flags); +__owur SSL *SSL_new_listener_from(SSL *ssl, uint64_t flags); +__owur SSL *SSL_new_from_listener(SSL *ssl, uint64_t flags); +#define SSL_ACCEPT_CONNECTION_NO_BLOCK (1UL << 0) +__owur SSL *SSL_accept_connection(SSL *ssl, uint64_t flags); +__owur size_t SSL_get_accept_connection_queue_len(SSL *ssl); +__owur int SSL_listen(SSL *ssl); + +__owur int SSL_is_domain(SSL *s); +__owur SSL *SSL_get0_domain(SSL *s); +__owur SSL *SSL_new_domain(SSL_CTX *ctx, uint64_t flags); + +#define SSL_DOMAIN_FLAG_SINGLE_THREAD (1U << 0) +#define SSL_DOMAIN_FLAG_MULTI_THREAD (1U << 1) +#define SSL_DOMAIN_FLAG_THREAD_ASSISTED (1U << 2) +#define SSL_DOMAIN_FLAG_BLOCKING (1U << 3) +#define SSL_DOMAIN_FLAG_LEGACY_BLOCKING (1U << 4) + +__owur int SSL_CTX_set_domain_flags(SSL_CTX *ctx, uint64_t domain_flags); +__owur int SSL_CTX_get_domain_flags(const SSL_CTX *ctx, uint64_t *domain_flags); +__owur int SSL_get_domain_flags(const SSL *ssl, uint64_t *domain_flags); + +#define SSL_STREAM_TYPE_NONE 0 +#define SSL_STREAM_TYPE_READ (1U << 0) +#define SSL_STREAM_TYPE_WRITE (1U << 1) +#define SSL_STREAM_TYPE_BIDI (SSL_STREAM_TYPE_READ | SSL_STREAM_TYPE_WRITE) +__owur int SSL_get_stream_type(SSL *s); + +__owur uint64_t SSL_get_stream_id(SSL *s); +__owur int SSL_is_stream_local(SSL *s); + +#define SSL_DEFAULT_STREAM_MODE_NONE 0 +#define SSL_DEFAULT_STREAM_MODE_AUTO_BIDI 1 +#define SSL_DEFAULT_STREAM_MODE_AUTO_UNI 2 +__owur int SSL_set_default_stream_mode(SSL *s, uint32_t mode); + +#define SSL_STREAM_FLAG_UNI (1U << 0) +#define SSL_STREAM_FLAG_NO_BLOCK (1U << 1) +#define SSL_STREAM_FLAG_ADVANCE (1U << 2) +__owur SSL *SSL_new_stream(SSL *s, uint64_t flags); + +#define SSL_INCOMING_STREAM_POLICY_AUTO 0 +#define SSL_INCOMING_STREAM_POLICY_ACCEPT 1 +#define SSL_INCOMING_STREAM_POLICY_REJECT 2 +__owur int SSL_set_incoming_stream_policy(SSL *s, int policy, uint64_t aec); + +#define SSL_ACCEPT_STREAM_NO_BLOCK (1U << 0) +__owur SSL *SSL_accept_stream(SSL *s, uint64_t flags); +__owur size_t SSL_get_accept_stream_queue_len(SSL *s); + +# ifndef OPENSSL_NO_QUIC +__owur int SSL_inject_net_dgram(SSL *s, const unsigned char *buf, + size_t buf_len, + const BIO_ADDR *peer, + const BIO_ADDR *local); +# endif + +typedef struct ssl_shutdown_ex_args_st { + uint64_t quic_error_code; + const char *quic_reason; +} SSL_SHUTDOWN_EX_ARGS; + +#define SSL_SHUTDOWN_FLAG_RAPID (1U << 0) +#define SSL_SHUTDOWN_FLAG_NO_STREAM_FLUSH (1U << 1) +#define SSL_SHUTDOWN_FLAG_NO_BLOCK (1U << 2) +#define SSL_SHUTDOWN_FLAG_WAIT_PEER (1U << 3) + +__owur int SSL_shutdown_ex(SSL *ssl, uint64_t flags, + const SSL_SHUTDOWN_EX_ARGS *args, + size_t args_len); + +__owur int SSL_stream_conclude(SSL *ssl, uint64_t flags); + +typedef struct ssl_stream_reset_args_st { + uint64_t quic_error_code; +} SSL_STREAM_RESET_ARGS; + +__owur int SSL_stream_reset(SSL *ssl, + const SSL_STREAM_RESET_ARGS *args, + size_t args_len); + +#define SSL_STREAM_STATE_NONE 0 +#define SSL_STREAM_STATE_OK 1 +#define SSL_STREAM_STATE_WRONG_DIR 2 +#define SSL_STREAM_STATE_FINISHED 3 +#define SSL_STREAM_STATE_RESET_LOCAL 4 +#define SSL_STREAM_STATE_RESET_REMOTE 5 +#define SSL_STREAM_STATE_CONN_CLOSED 6 +__owur int SSL_get_stream_read_state(SSL *ssl); +__owur int SSL_get_stream_write_state(SSL *ssl); + +__owur int SSL_get_stream_read_error_code(SSL *ssl, uint64_t *app_error_code); +__owur int SSL_get_stream_write_error_code(SSL *ssl, uint64_t *app_error_code); + +#define SSL_CONN_CLOSE_FLAG_LOCAL (1U << 0) +#define SSL_CONN_CLOSE_FLAG_TRANSPORT (1U << 1) + +typedef struct ssl_conn_close_info_st { + uint64_t error_code, frame_type; + const char *reason; + size_t reason_len; + uint32_t flags; +} SSL_CONN_CLOSE_INFO; + +__owur int SSL_get_conn_close_info(SSL *ssl, + SSL_CONN_CLOSE_INFO *info, + size_t info_len); + +# define SSL_VALUE_CLASS_GENERIC 0 +# define SSL_VALUE_CLASS_FEATURE_REQUEST 1 +# define SSL_VALUE_CLASS_FEATURE_PEER_REQUEST 2 +# define SSL_VALUE_CLASS_FEATURE_NEGOTIATED 3 + +# define SSL_VALUE_NONE 0 +# define SSL_VALUE_QUIC_STREAM_BIDI_LOCAL_AVAIL 1 +# define SSL_VALUE_QUIC_STREAM_BIDI_REMOTE_AVAIL 2 +# define SSL_VALUE_QUIC_STREAM_UNI_LOCAL_AVAIL 3 +# define SSL_VALUE_QUIC_STREAM_UNI_REMOTE_AVAIL 4 +# define SSL_VALUE_QUIC_IDLE_TIMEOUT 5 +# define SSL_VALUE_EVENT_HANDLING_MODE 6 +# define SSL_VALUE_STREAM_WRITE_BUF_SIZE 7 +# define SSL_VALUE_STREAM_WRITE_BUF_USED 8 +# define SSL_VALUE_STREAM_WRITE_BUF_AVAIL 9 + +# define SSL_VALUE_EVENT_HANDLING_MODE_INHERIT 0 +# define SSL_VALUE_EVENT_HANDLING_MODE_IMPLICIT 1 +# define SSL_VALUE_EVENT_HANDLING_MODE_EXPLICIT 2 + +int SSL_get_value_uint(SSL *s, uint32_t class_, uint32_t id, uint64_t *v); +int SSL_set_value_uint(SSL *s, uint32_t class_, uint32_t id, uint64_t v); + +# define SSL_get_generic_value_uint(ssl, id, v) \ + SSL_get_value_uint((ssl), SSL_VALUE_CLASS_GENERIC, (id), (v)) +# define SSL_set_generic_value_uint(ssl, id, v) \ + SSL_set_value_uint((ssl), SSL_VALUE_CLASS_GENERIC, (id), (v)) +# define SSL_get_feature_request_uint(ssl, id, v) \ + SSL_get_value_uint((ssl), SSL_VALUE_CLASS_FEATURE_REQUEST, (id), (v)) +# define SSL_set_feature_request_uint(ssl, id, v) \ + SSL_set_value_uint((ssl), SSL_VALUE_CLASS_FEATURE_REQUEST, (id), (v)) +# define SSL_get_feature_peer_request_uint(ssl, id, v) \ + SSL_get_value_uint((ssl), SSL_VALUE_CLASS_FEATURE_PEER_REQUEST, (id), (v)) +# define SSL_get_feature_negotiated_uint(ssl, id, v) \ + SSL_get_value_uint((ssl), SSL_VALUE_CLASS_FEATURE_NEGOTIATED, (id), (v)) + +# define SSL_get_quic_stream_bidi_local_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_QUIC_STREAM_BIDI_LOCAL_AVAIL, \ + (value)) +# define SSL_get_quic_stream_bidi_remote_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_QUIC_STREAM_BIDI_REMOTE_AVAIL, \ + (value)) +# define SSL_get_quic_stream_uni_local_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_QUIC_STREAM_UNI_LOCAL_AVAIL, \ + (value)) +# define SSL_get_quic_stream_uni_remote_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_QUIC_STREAM_UNI_REMOTE_AVAIL, \ + (value)) + +# define SSL_get_event_handling_mode(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_EVENT_HANDLING_MODE, \ + (value)) +# define SSL_set_event_handling_mode(ssl, value) \ + SSL_set_generic_value_uint((ssl), SSL_VALUE_EVENT_HANDLING_MODE, \ + (value)) + +# define SSL_get_stream_write_buf_size(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_STREAM_WRITE_BUF_SIZE, \ + (value)) +# define SSL_get_stream_write_buf_used(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_STREAM_WRITE_BUF_USED, \ + (value)) +# define SSL_get_stream_write_buf_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_STREAM_WRITE_BUF_AVAIL, \ + (value)) + +# define SSL_POLL_EVENT_NONE 0 + +# define SSL_POLL_EVENT_F (1U << 0) /* F (Failure) */ +# define SSL_POLL_EVENT_EL (1U << 1) /* EL (Exception on Listener) */ +# define SSL_POLL_EVENT_EC (1U << 2) /* EC (Exception on Conn) */ +# define SSL_POLL_EVENT_ECD (1U << 3) /* ECD (Exception on Conn Drained) */ +# define SSL_POLL_EVENT_ER (1U << 4) /* ER (Exception on Read) */ +# define SSL_POLL_EVENT_EW (1U << 5) /* EW (Exception on Write) */ +# define SSL_POLL_EVENT_R (1U << 6) /* R (Readable) */ +# define SSL_POLL_EVENT_W (1U << 7) /* W (Writable) */ +# define SSL_POLL_EVENT_IC (1U << 8) /* IC (Incoming Connection) */ +# define SSL_POLL_EVENT_ISB (1U << 9) /* ISB (Incoming Stream: Bidi) */ +# define SSL_POLL_EVENT_ISU (1U << 10) /* ISU (Incoming Stream: Uni) */ +# define SSL_POLL_EVENT_OSB (1U << 11) /* OSB (Outgoing Stream: Bidi) */ +# define SSL_POLL_EVENT_OSU (1U << 12) /* OSU (Outgoing Stream: Uni) */ + +# define SSL_POLL_EVENT_RW (SSL_POLL_EVENT_R | SSL_POLL_EVENT_W) +# define SSL_POLL_EVENT_RE (SSL_POLL_EVENT_R | SSL_POLL_EVENT_ER) +# define SSL_POLL_EVENT_WE (SSL_POLL_EVENT_W | SSL_POLL_EVENT_EW) +# define SSL_POLL_EVENT_RWE (SSL_POLL_EVENT_RE | SSL_POLL_EVENT_WE) +# define SSL_POLL_EVENT_E (SSL_POLL_EVENT_EL | SSL_POLL_EVENT_EC \ + | SSL_POLL_EVENT_ER | SSL_POLL_EVENT_EW) +# define SSL_POLL_EVENT_IS (SSL_POLL_EVENT_ISB | SSL_POLL_EVENT_ISU) +# define SSL_POLL_EVENT_ISE (SSL_POLL_EVENT_IS | SSL_POLL_EVENT_EC) +# define SSL_POLL_EVENT_I (SSL_POLL_EVENT_IS | SSL_POLL_EVENT_IC) +# define SSL_POLL_EVENT_OS (SSL_POLL_EVENT_OSB | SSL_POLL_EVENT_OSU) +# define SSL_POLL_EVENT_OSE (SSL_POLL_EVENT_OS | SSL_POLL_EVENT_EC) + +typedef struct ssl_poll_item_st { + BIO_POLL_DESCRIPTOR desc; + uint64_t events, revents; +} SSL_POLL_ITEM; + +# define SSL_POLL_FLAG_NO_HANDLE_EVENTS (1U << 0) + +__owur int SSL_poll(SSL_POLL_ITEM *items, + size_t num_items, + size_t stride, + const struct timeval *timeout, + uint64_t flags, + size_t *result_count); + +static ossl_inline ossl_unused BIO_POLL_DESCRIPTOR +SSL_as_poll_descriptor(SSL *s) +{ + BIO_POLL_DESCRIPTOR d; + + d.type = BIO_POLL_DESCRIPTOR_TYPE_SSL; + d.value.ssl = s; + return d; +} + # ifndef OPENSSL_NO_DEPRECATED_1_1_0 # define SSL_cache_hit(s) SSL_session_reused(s) # endif @@ -2593,6 +2882,51 @@ void SSL_set_allow_early_data_cb(SSL *s, const char *OSSL_default_cipher_list(void); const char *OSSL_default_ciphersuites(void); +/* RFC8879 Certificate compression APIs */ + +int SSL_CTX_compress_certs(SSL_CTX *ctx, int alg); +int SSL_compress_certs(SSL *ssl, int alg); + +int SSL_CTX_set1_cert_comp_preference(SSL_CTX *ctx, int *algs, size_t len); +int SSL_set1_cert_comp_preference(SSL *ssl, int *algs, size_t len); + +int SSL_CTX_set1_compressed_cert(SSL_CTX *ctx, int algorithm, unsigned char *comp_data, + size_t comp_length, size_t orig_length); +int SSL_set1_compressed_cert(SSL *ssl, int algorithm, unsigned char *comp_data, + size_t comp_length, size_t orig_length); +size_t SSL_CTX_get1_compressed_cert(SSL_CTX *ctx, int alg, unsigned char **data, size_t *orig_len); +size_t SSL_get1_compressed_cert(SSL *ssl, int alg, unsigned char **data, size_t *orig_len); + +__owur int SSL_add_expected_rpk(SSL *s, EVP_PKEY *rpk); +__owur EVP_PKEY *SSL_get0_peer_rpk(const SSL *s); +__owur EVP_PKEY *SSL_SESSION_get0_peer_rpk(SSL_SESSION *s); +__owur int SSL_get_negotiated_client_cert_type(const SSL *s); +__owur int SSL_get_negotiated_server_cert_type(const SSL *s); + +__owur int SSL_set1_client_cert_type(SSL *s, const unsigned char *val, size_t len); +__owur int SSL_set1_server_cert_type(SSL *s, const unsigned char *val, size_t len); +__owur int SSL_CTX_set1_client_cert_type(SSL_CTX *ctx, const unsigned char *val, size_t len); +__owur int SSL_CTX_set1_server_cert_type(SSL_CTX *ctx, const unsigned char *val, size_t len); +__owur int SSL_get0_client_cert_type(const SSL *s, unsigned char **t, size_t *len); +__owur int SSL_get0_server_cert_type(const SSL *s, unsigned char **t, size_t *len); +__owur int SSL_CTX_get0_client_cert_type(const SSL_CTX *ctx, unsigned char **t, size_t *len); +__owur int SSL_CTX_get0_server_cert_type(const SSL_CTX *s, unsigned char **t, size_t *len); + +/* + * Protection level. For <= TLSv1.2 only "NONE" and "APPLICATION" are used. + */ +# define OSSL_RECORD_PROTECTION_LEVEL_NONE 0 +# define OSSL_RECORD_PROTECTION_LEVEL_EARLY 1 +# define OSSL_RECORD_PROTECTION_LEVEL_HANDSHAKE 2 +# define OSSL_RECORD_PROTECTION_LEVEL_APPLICATION 3 + +int SSL_set_quic_tls_cbs(SSL *s, const OSSL_DISPATCH *qtdis, void *arg); +int SSL_set_quic_tls_transport_params(SSL *s, + const unsigned char *params, + size_t params_len); + +int SSL_set_quic_tls_early_data_enabled(SSL *s, int enabled); + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/linux-elf/asm_avx2/include/openssl/x509.h b/deps/openssl/config/archs/linux-elf/asm_avx2/include/openssl/x509.h index 1f7755e5b69c75..d013458c226461 100644 --- a/deps/openssl/config/archs/linux-elf/asm_avx2/include/openssl/x509.h +++ b/deps/openssl/config/archs/linux-elf/asm_avx2/include/openssl/x509.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/x509.h.in * - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2024 The OpenSSL Project Authors. All Rights Reserved. * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved * * Licensed under the Apache License 2.0 (the "License"). You may not use @@ -40,6 +40,9 @@ # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -162,16 +165,24 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_CRL, X509_CRL, X509_CRL) # define X509_FILETYPE_ASN1 2 # define X509_FILETYPE_DEFAULT 3 -# define X509v3_KU_DIGITAL_SIGNATURE 0x0080 -# define X509v3_KU_NON_REPUDIATION 0x0040 -# define X509v3_KU_KEY_ENCIPHERMENT 0x0020 -# define X509v3_KU_DATA_ENCIPHERMENT 0x0010 -# define X509v3_KU_KEY_AGREEMENT 0x0008 -# define X509v3_KU_KEY_CERT_SIGN 0x0004 -# define X509v3_KU_CRL_SIGN 0x0002 -# define X509v3_KU_ENCIPHER_ONLY 0x0001 -# define X509v3_KU_DECIPHER_ONLY 0x8000 -# define X509v3_KU_UNDEF 0xffff +/*- + * : + * The KeyUsage BITSTRING is treated as a little-endian integer, hence bit `0` + * is 0x80, while bit `7` is 0x01 (the LSB of the integer value), bit `8` is + * then the MSB of the second octet, or 0x8000. + */ +# define X509v3_KU_DIGITAL_SIGNATURE 0x0080 /* (0) */ +# define X509v3_KU_NON_REPUDIATION 0x0040 /* (1) */ +# define X509v3_KU_KEY_ENCIPHERMENT 0x0020 /* (2) */ +# define X509v3_KU_DATA_ENCIPHERMENT 0x0010 /* (3) */ +# define X509v3_KU_KEY_AGREEMENT 0x0008 /* (4) */ +# define X509v3_KU_KEY_CERT_SIGN 0x0004 /* (5) */ +# define X509v3_KU_CRL_SIGN 0x0002 /* (6) */ +# define X509v3_KU_ENCIPHER_ONLY 0x0001 /* (7) */ +# define X509v3_KU_DECIPHER_ONLY 0x8000 /* (8) */ +# ifndef OPENSSL_NO_DEPRECATED_3_4 +# define X509v3_KU_UNDEF 0xffff /* vestigial, not used */ +# endif struct X509_algor_st { ASN1_OBJECT *algorithm; @@ -462,7 +473,12 @@ typedef struct PBKDF2PARAM_st { X509_ALGOR *prf; } PBKDF2PARAM; -#ifndef OPENSSL_NO_SCRYPT +typedef struct { + X509_ALGOR *keyDerivationFunc; + X509_ALGOR *messageAuthScheme; +} PBMAC1PARAM; + +# ifndef OPENSSL_NO_SCRYPT typedef struct SCRYPT_PARAMS_st { ASN1_OCTET_STRING *salt; ASN1_INTEGER *costParameter; @@ -470,7 +486,7 @@ typedef struct SCRYPT_PARAMS_st { ASN1_INTEGER *parallelizationParameter; ASN1_INTEGER *keyLength; } SCRYPT_PARAMS; -#endif +# endif #ifdef __cplusplus } @@ -603,6 +619,8 @@ EVP_PKEY *d2i_PrivateKey_ex_fp(FILE *fp, EVP_PKEY **a, OSSL_LIB_CTX *libctx, const char *propq); EVP_PKEY *d2i_PrivateKey_fp(FILE *fp, EVP_PKEY **a); int i2d_PUBKEY_fp(FILE *fp, const EVP_PKEY *pkey); +EVP_PKEY *d2i_PUBKEY_ex_fp(FILE *fp, EVP_PKEY **a, OSSL_LIB_CTX *libctx, + const char *propq); EVP_PKEY *d2i_PUBKEY_fp(FILE *fp, EVP_PKEY **a); # endif @@ -651,6 +669,8 @@ EVP_PKEY *d2i_PrivateKey_ex_bio(BIO *bp, EVP_PKEY **a, OSSL_LIB_CTX *libctx, const char *propq); EVP_PKEY *d2i_PrivateKey_bio(BIO *bp, EVP_PKEY **a); int i2d_PUBKEY_bio(BIO *bp, const EVP_PKEY *pkey); +EVP_PKEY *d2i_PUBKEY_ex_bio(BIO *bp, EVP_PKEY **a, OSSL_LIB_CTX *libctx, + const char *propq); EVP_PKEY *d2i_PUBKEY_bio(BIO *bp, EVP_PKEY **a); DECLARE_ASN1_DUP_FUNCTION(X509) @@ -884,12 +904,12 @@ int X509_REQ_get_signature_nid(const X509_REQ *req); int i2d_re_X509_REQ_tbs(X509_REQ *req, unsigned char **pp); int X509_REQ_set_pubkey(X509_REQ *x, EVP_PKEY *pkey); EVP_PKEY *X509_REQ_get_pubkey(X509_REQ *req); -EVP_PKEY *X509_REQ_get0_pubkey(X509_REQ *req); +EVP_PKEY *X509_REQ_get0_pubkey(const X509_REQ *req); X509_PUBKEY *X509_REQ_get_X509_PUBKEY(X509_REQ *req); int X509_REQ_extension_nid(int nid); int *X509_REQ_get_extension_nids(void); void X509_REQ_set_extension_nids(int *nids); -STACK_OF(X509_EXTENSION) *X509_REQ_get_extensions(X509_REQ *req); +STACK_OF(X509_EXTENSION) *X509_REQ_get_extensions(OSSL_FUTURE_CONST X509_REQ *req); int X509_REQ_add_extensions_nid(X509_REQ *req, const STACK_OF(X509_EXTENSION) *exts, int nid); int X509_REQ_add_extensions(X509_REQ *req, const STACK_OF(X509_EXTENSION) *ext); @@ -950,13 +970,14 @@ X509_REVOKED_get0_extensions(const X509_REVOKED *r); X509_CRL *X509_CRL_diff(X509_CRL *base, X509_CRL *newer, EVP_PKEY *skey, const EVP_MD *md, unsigned int flags); -int X509_REQ_check_private_key(X509_REQ *x509, EVP_PKEY *pkey); +int X509_REQ_check_private_key(const X509_REQ *req, EVP_PKEY *pkey); -int X509_check_private_key(const X509 *x509, const EVP_PKEY *pkey); +int X509_check_private_key(const X509 *cert, const EVP_PKEY *pkey); int X509_chain_check_suiteb(int *perror_depth, X509 *x, STACK_OF(X509) *chain, unsigned long flags); int X509_CRL_check_suiteb(X509_CRL *crl, EVP_PKEY *pk, unsigned long flags); +void OSSL_STACK_OF_X509_free(STACK_OF(X509) *certs); STACK_OF(X509) *X509_chain_up_ref(STACK_OF(X509) *chain); int X509_issuer_and_serial_cmp(const X509 *a, const X509 *b); @@ -1077,6 +1098,8 @@ X509_EXTENSION *X509v3_get_ext(const STACK_OF(X509_EXTENSION) *x, int loc); X509_EXTENSION *X509v3_delete_ext(STACK_OF(X509_EXTENSION) *x, int loc); STACK_OF(X509_EXTENSION) *X509v3_add_ext(STACK_OF(X509_EXTENSION) **x, X509_EXTENSION *ex, int loc); +STACK_OF(X509_EXTENSION) *X509v3_add_extensions(STACK_OF(X509_EXTENSION) **target, + const STACK_OF(X509_EXTENSION) *exts); int X509_get_ext_count(const X509 *x); int X509_get_ext_by_NID(const X509 *x, int nid, int lastpos); @@ -1198,9 +1221,10 @@ X509 *X509_find_by_subject(STACK_OF(X509) *sk, const X509_NAME *name); DECLARE_ASN1_FUNCTIONS(PBEPARAM) DECLARE_ASN1_FUNCTIONS(PBE2PARAM) DECLARE_ASN1_FUNCTIONS(PBKDF2PARAM) -#ifndef OPENSSL_NO_SCRYPT +DECLARE_ASN1_FUNCTIONS(PBMAC1PARAM) +# ifndef OPENSSL_NO_SCRYPT DECLARE_ASN1_FUNCTIONS(SCRYPT_PARAMS) -#endif +# endif int PKCS5_pbe_set0_algor(X509_ALGOR *algor, int alg, int iter, const unsigned char *salt, int saltlen); @@ -1237,6 +1261,7 @@ X509_ALGOR *PKCS5_pbkdf2_set_ex(int iter, unsigned char *salt, int saltlen, int prf_nid, int keylen, OSSL_LIB_CTX *libctx); +PBKDF2PARAM *PBMAC1_get1_pbkdf2_param(const X509_ALGOR *macalg); /* PKCS#8 utilities */ DECLARE_ASN1_FUNCTIONS(PKCS8_PRIV_KEY_INFO) @@ -1262,6 +1287,8 @@ int PKCS8_pkey_add1_attr_by_OBJ(PKCS8_PRIV_KEY_INFO *p8, const ASN1_OBJECT *obj, int type, const unsigned char *bytes, int len); +void X509_PUBKEY_set0_public_key(X509_PUBKEY *pub, + unsigned char *penc, int penclen); int X509_PUBKEY_set0_param(X509_PUBKEY *pub, ASN1_OBJECT *aobj, int ptype, void *pval, unsigned char *penc, int penclen); diff --git a/deps/openssl/config/archs/linux-elf/asm_avx2/include/openssl/x509_acert.h b/deps/openssl/config/archs/linux-elf/asm_avx2/include/openssl/x509_acert.h new file mode 100644 index 00000000000000..9dde625677f9a9 --- /dev/null +++ b/deps/openssl/config/archs/linux-elf/asm_avx2/include/openssl/x509_acert.h @@ -0,0 +1,294 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from include/openssl/x509_acert.h.in + * + * Copyright 2022-2024 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + + + +#ifndef OPENSSL_X509_ACERT_H +# define OPENSSL_X509_ACERT_H +# pragma once + +# include +# include +# include + +typedef struct X509_acert_st X509_ACERT; +typedef struct X509_acert_info_st X509_ACERT_INFO; +typedef struct ossl_object_digest_info_st OSSL_OBJECT_DIGEST_INFO; +typedef struct ossl_issuer_serial_st OSSL_ISSUER_SERIAL; +typedef struct X509_acert_issuer_v2form_st X509_ACERT_ISSUER_V2FORM; + +DECLARE_ASN1_FUNCTIONS(X509_ACERT) +DECLARE_ASN1_DUP_FUNCTION(X509_ACERT) +DECLARE_ASN1_ITEM(X509_ACERT_INFO) +DECLARE_ASN1_ALLOC_FUNCTIONS(X509_ACERT_INFO) +DECLARE_ASN1_ALLOC_FUNCTIONS(OSSL_OBJECT_DIGEST_INFO) +DECLARE_ASN1_ALLOC_FUNCTIONS(OSSL_ISSUER_SERIAL) +DECLARE_ASN1_ALLOC_FUNCTIONS(X509_ACERT_ISSUER_V2FORM) + +# ifndef OPENSSL_NO_STDIO +X509_ACERT *d2i_X509_ACERT_fp(FILE *fp, X509_ACERT **acert); +int i2d_X509_ACERT_fp(FILE *fp, const X509_ACERT *acert); +# endif + +DECLARE_PEM_rw(X509_ACERT, X509_ACERT) + +X509_ACERT *d2i_X509_ACERT_bio(BIO *bp, X509_ACERT **acert); +int i2d_X509_ACERT_bio(BIO *bp, const X509_ACERT *acert); + +int X509_ACERT_sign(X509_ACERT *x, EVP_PKEY *pkey, const EVP_MD *md); +int X509_ACERT_sign_ctx(X509_ACERT *x, EVP_MD_CTX *ctx); +int X509_ACERT_verify(X509_ACERT *a, EVP_PKEY *r); + +# define X509_ACERT_VERSION_2 1 + +const GENERAL_NAMES *X509_ACERT_get0_holder_entityName(const X509_ACERT *x); +const OSSL_ISSUER_SERIAL *X509_ACERT_get0_holder_baseCertId(const X509_ACERT *x); +const OSSL_OBJECT_DIGEST_INFO * X509_ACERT_get0_holder_digest(const X509_ACERT *x); +const X509_NAME *X509_ACERT_get0_issuerName(const X509_ACERT *x); +long X509_ACERT_get_version(const X509_ACERT *x); +void X509_ACERT_get0_signature(const X509_ACERT *x, + const ASN1_BIT_STRING **psig, + const X509_ALGOR **palg); +int X509_ACERT_get_signature_nid(const X509_ACERT *x); +const X509_ALGOR *X509_ACERT_get0_info_sigalg(const X509_ACERT *x); +const ASN1_INTEGER *X509_ACERT_get0_serialNumber(const X509_ACERT *x); +const ASN1_TIME *X509_ACERT_get0_notBefore(const X509_ACERT *x); +const ASN1_TIME *X509_ACERT_get0_notAfter(const X509_ACERT *x); +const ASN1_BIT_STRING *X509_ACERT_get0_issuerUID(const X509_ACERT *x); + +int X509_ACERT_print(BIO *bp, X509_ACERT *x); +int X509_ACERT_print_ex(BIO *bp, X509_ACERT *x, unsigned long nmflags, + unsigned long cflag); + +int X509_ACERT_get_attr_count(const X509_ACERT *x); +int X509_ACERT_get_attr_by_NID(const X509_ACERT *x, int nid, int lastpos); +int X509_ACERT_get_attr_by_OBJ(const X509_ACERT *x, const ASN1_OBJECT *obj, + int lastpos); +X509_ATTRIBUTE *X509_ACERT_get_attr(const X509_ACERT *x, int loc); +X509_ATTRIBUTE *X509_ACERT_delete_attr(X509_ACERT *x, int loc); + +void *X509_ACERT_get_ext_d2i(const X509_ACERT *x, int nid, int *crit, int *idx); +int X509_ACERT_add1_ext_i2d(X509_ACERT *x, int nid, void *value, int crit, + unsigned long flags); +const STACK_OF(X509_EXTENSION) *X509_ACERT_get0_extensions(const X509_ACERT *x); + +# define OSSL_OBJECT_DIGEST_INFO_PUBLIC_KEY 0 +# define OSSL_OBJECT_DIGEST_INFO_PUBLIC_KEY_CERT 1 +# define OSSL_OBJECT_DIGEST_INFO_OTHER 2 /* must not be used in RFC 5755 profile */ +int X509_ACERT_set_version(X509_ACERT *x, long version); +void X509_ACERT_set0_holder_entityName(X509_ACERT *x, GENERAL_NAMES *name); +void X509_ACERT_set0_holder_baseCertId(X509_ACERT *x, OSSL_ISSUER_SERIAL *isss); +void X509_ACERT_set0_holder_digest(X509_ACERT *x, + OSSL_OBJECT_DIGEST_INFO *dinfo); + +int X509_ACERT_add1_attr(X509_ACERT *x, X509_ATTRIBUTE *attr); +int X509_ACERT_add1_attr_by_OBJ(X509_ACERT *x, const ASN1_OBJECT *obj, + int type, const void *bytes, int len); +int X509_ACERT_add1_attr_by_NID(X509_ACERT *x, int nid, int type, + const void *bytes, int len); +int X509_ACERT_add1_attr_by_txt(X509_ACERT *x, const char *attrname, int type, + const unsigned char *bytes, int len); +int X509_ACERT_add_attr_nconf(CONF *conf, const char *section, + X509_ACERT *acert); + +int X509_ACERT_set1_issuerName(X509_ACERT *x, const X509_NAME *name); +int X509_ACERT_set1_serialNumber(X509_ACERT *x, const ASN1_INTEGER *serial); +int X509_ACERT_set1_notBefore(X509_ACERT *x, const ASN1_GENERALIZEDTIME *time); +int X509_ACERT_set1_notAfter(X509_ACERT *x, const ASN1_GENERALIZEDTIME *time); + +void OSSL_OBJECT_DIGEST_INFO_get0_digest(const OSSL_OBJECT_DIGEST_INFO *o, + int *digestedObjectType, + const X509_ALGOR **digestAlgorithm, + const ASN1_BIT_STRING **digest); + +int OSSL_OBJECT_DIGEST_INFO_set1_digest(OSSL_OBJECT_DIGEST_INFO *o, + int digestedObjectType, + X509_ALGOR *digestAlgorithm, + ASN1_BIT_STRING *digest); + +const X509_NAME *OSSL_ISSUER_SERIAL_get0_issuer(const OSSL_ISSUER_SERIAL *isss); +const ASN1_INTEGER *OSSL_ISSUER_SERIAL_get0_serial(const OSSL_ISSUER_SERIAL *isss); +const ASN1_BIT_STRING *OSSL_ISSUER_SERIAL_get0_issuerUID(const OSSL_ISSUER_SERIAL *isss); + +int OSSL_ISSUER_SERIAL_set1_issuer(OSSL_ISSUER_SERIAL *isss, + const X509_NAME *issuer); +int OSSL_ISSUER_SERIAL_set1_serial(OSSL_ISSUER_SERIAL *isss, + const ASN1_INTEGER *serial); +int OSSL_ISSUER_SERIAL_set1_issuerUID(OSSL_ISSUER_SERIAL *isss, + const ASN1_BIT_STRING *uid); + +# define OSSL_IETFAS_OCTETS 0 +# define OSSL_IETFAS_OID 1 +# define OSSL_IETFAS_STRING 2 + +typedef struct OSSL_IETF_ATTR_SYNTAX_VALUE_st OSSL_IETF_ATTR_SYNTAX_VALUE; +typedef struct OSSL_IETF_ATTR_SYNTAX_st OSSL_IETF_ATTR_SYNTAX; +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_IETF_ATTR_SYNTAX_VALUE, OSSL_IETF_ATTR_SYNTAX_VALUE, OSSL_IETF_ATTR_SYNTAX_VALUE) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_value(sk, idx) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_value(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), (idx))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_new(cmp) ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_new(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_compfunc_type(cmp))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_new_null() ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_new_null()) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_new_reserve(cmp, n) ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_compfunc_type(cmp), (n))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), (n)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_free(sk) OPENSSL_sk_free(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_delete(sk, i) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_delete(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), (i))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_delete_ptr(sk, ptr) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_pop(sk) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_pop(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_shift(sk) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_shift(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk),ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_freefunc_type(freefunc)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr), (idx)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_set(sk, idx, ptr) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_set(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), (idx), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr), pnum) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_dup(sk) ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_dup(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_copyfunc_type(copyfunc), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_freefunc_type(freefunc))) +#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_set_cmp_func(sk, cmp) ((sk_OSSL_IETF_ATTR_SYNTAX_VALUE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_compfunc_type(cmp))) + + +DECLARE_ASN1_ITEM(OSSL_IETF_ATTR_SYNTAX_VALUE) +DECLARE_ASN1_ALLOC_FUNCTIONS(OSSL_IETF_ATTR_SYNTAX_VALUE) +DECLARE_ASN1_FUNCTIONS(OSSL_IETF_ATTR_SYNTAX) + +const GENERAL_NAMES * +OSSL_IETF_ATTR_SYNTAX_get0_policyAuthority(const OSSL_IETF_ATTR_SYNTAX *a); +void OSSL_IETF_ATTR_SYNTAX_set0_policyAuthority(OSSL_IETF_ATTR_SYNTAX *a, + GENERAL_NAMES *names); + +int OSSL_IETF_ATTR_SYNTAX_get_value_num(const OSSL_IETF_ATTR_SYNTAX *a); +void *OSSL_IETF_ATTR_SYNTAX_get0_value(const OSSL_IETF_ATTR_SYNTAX *a, + int ind, int *type); +int OSSL_IETF_ATTR_SYNTAX_add1_value(OSSL_IETF_ATTR_SYNTAX *a, int type, + void *data); +int OSSL_IETF_ATTR_SYNTAX_print(BIO *bp, OSSL_IETF_ATTR_SYNTAX *a, int indent); + +struct TARGET_CERT_st { + OSSL_ISSUER_SERIAL *targetCertificate; + GENERAL_NAME *targetName; + OSSL_OBJECT_DIGEST_INFO *certDigestInfo; +}; + +typedef struct TARGET_CERT_st OSSL_TARGET_CERT; + +# define OSSL_TGT_TARGET_NAME 0 +# define OSSL_TGT_TARGET_GROUP 1 +# define OSSL_TGT_TARGET_CERT 2 + +typedef struct TARGET_st { + int type; + union { + GENERAL_NAME *targetName; + GENERAL_NAME *targetGroup; + OSSL_TARGET_CERT *targetCert; + } choice; +} OSSL_TARGET; + +typedef STACK_OF(OSSL_TARGET) OSSL_TARGETS; +typedef STACK_OF(OSSL_TARGETS) OSSL_TARGETING_INFORMATION; + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_TARGET, OSSL_TARGET, OSSL_TARGET) +#define sk_OSSL_TARGET_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_value(sk, idx) ((OSSL_TARGET *)OPENSSL_sk_value(ossl_check_const_OSSL_TARGET_sk_type(sk), (idx))) +#define sk_OSSL_TARGET_new(cmp) ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_new(ossl_check_OSSL_TARGET_compfunc_type(cmp))) +#define sk_OSSL_TARGET_new_null() ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_new_null()) +#define sk_OSSL_TARGET_new_reserve(cmp, n) ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_TARGET_compfunc_type(cmp), (n))) +#define sk_OSSL_TARGET_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_TARGET_sk_type(sk), (n)) +#define sk_OSSL_TARGET_free(sk) OPENSSL_sk_free(ossl_check_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_delete(sk, i) ((OSSL_TARGET *)OPENSSL_sk_delete(ossl_check_OSSL_TARGET_sk_type(sk), (i))) +#define sk_OSSL_TARGET_delete_ptr(sk, ptr) ((OSSL_TARGET *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr))) +#define sk_OSSL_TARGET_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr)) +#define sk_OSSL_TARGET_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr)) +#define sk_OSSL_TARGET_pop(sk) ((OSSL_TARGET *)OPENSSL_sk_pop(ossl_check_OSSL_TARGET_sk_type(sk))) +#define sk_OSSL_TARGET_shift(sk) ((OSSL_TARGET *)OPENSSL_sk_shift(ossl_check_OSSL_TARGET_sk_type(sk))) +#define sk_OSSL_TARGET_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_TARGET_sk_type(sk),ossl_check_OSSL_TARGET_freefunc_type(freefunc)) +#define sk_OSSL_TARGET_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr), (idx)) +#define sk_OSSL_TARGET_set(sk, idx, ptr) ((OSSL_TARGET *)OPENSSL_sk_set(ossl_check_OSSL_TARGET_sk_type(sk), (idx), ossl_check_OSSL_TARGET_type(ptr))) +#define sk_OSSL_TARGET_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr)) +#define sk_OSSL_TARGET_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr)) +#define sk_OSSL_TARGET_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr), pnum) +#define sk_OSSL_TARGET_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_TARGET_sk_type(sk)) +#define sk_OSSL_TARGET_dup(sk) ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_dup(ossl_check_const_OSSL_TARGET_sk_type(sk))) +#define sk_OSSL_TARGET_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_copyfunc_type(copyfunc), ossl_check_OSSL_TARGET_freefunc_type(freefunc))) +#define sk_OSSL_TARGET_set_cmp_func(sk, cmp) ((sk_OSSL_TARGET_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_compfunc_type(cmp))) + + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_TARGETS, OSSL_TARGETS, OSSL_TARGETS) +#define sk_OSSL_TARGETS_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_value(sk, idx) ((OSSL_TARGETS *)OPENSSL_sk_value(ossl_check_const_OSSL_TARGETS_sk_type(sk), (idx))) +#define sk_OSSL_TARGETS_new(cmp) ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_new(ossl_check_OSSL_TARGETS_compfunc_type(cmp))) +#define sk_OSSL_TARGETS_new_null() ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_new_null()) +#define sk_OSSL_TARGETS_new_reserve(cmp, n) ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_TARGETS_compfunc_type(cmp), (n))) +#define sk_OSSL_TARGETS_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_TARGETS_sk_type(sk), (n)) +#define sk_OSSL_TARGETS_free(sk) OPENSSL_sk_free(ossl_check_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_delete(sk, i) ((OSSL_TARGETS *)OPENSSL_sk_delete(ossl_check_OSSL_TARGETS_sk_type(sk), (i))) +#define sk_OSSL_TARGETS_delete_ptr(sk, ptr) ((OSSL_TARGETS *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr))) +#define sk_OSSL_TARGETS_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr)) +#define sk_OSSL_TARGETS_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr)) +#define sk_OSSL_TARGETS_pop(sk) ((OSSL_TARGETS *)OPENSSL_sk_pop(ossl_check_OSSL_TARGETS_sk_type(sk))) +#define sk_OSSL_TARGETS_shift(sk) ((OSSL_TARGETS *)OPENSSL_sk_shift(ossl_check_OSSL_TARGETS_sk_type(sk))) +#define sk_OSSL_TARGETS_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_TARGETS_sk_type(sk),ossl_check_OSSL_TARGETS_freefunc_type(freefunc)) +#define sk_OSSL_TARGETS_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr), (idx)) +#define sk_OSSL_TARGETS_set(sk, idx, ptr) ((OSSL_TARGETS *)OPENSSL_sk_set(ossl_check_OSSL_TARGETS_sk_type(sk), (idx), ossl_check_OSSL_TARGETS_type(ptr))) +#define sk_OSSL_TARGETS_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr)) +#define sk_OSSL_TARGETS_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr)) +#define sk_OSSL_TARGETS_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr), pnum) +#define sk_OSSL_TARGETS_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_TARGETS_sk_type(sk)) +#define sk_OSSL_TARGETS_dup(sk) ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_dup(ossl_check_const_OSSL_TARGETS_sk_type(sk))) +#define sk_OSSL_TARGETS_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_copyfunc_type(copyfunc), ossl_check_OSSL_TARGETS_freefunc_type(freefunc))) +#define sk_OSSL_TARGETS_set_cmp_func(sk, cmp) ((sk_OSSL_TARGETS_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_compfunc_type(cmp))) + + +DECLARE_ASN1_FUNCTIONS(OSSL_TARGET) +DECLARE_ASN1_FUNCTIONS(OSSL_TARGETS) +DECLARE_ASN1_FUNCTIONS(OSSL_TARGETING_INFORMATION) + +typedef STACK_OF(OSSL_ISSUER_SERIAL) OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX; +DECLARE_ASN1_FUNCTIONS(OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ISSUER_SERIAL, OSSL_ISSUER_SERIAL, OSSL_ISSUER_SERIAL) +#define sk_OSSL_ISSUER_SERIAL_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_value(sk, idx) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_value(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk), (idx))) +#define sk_OSSL_ISSUER_SERIAL_new(cmp) ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_new(ossl_check_OSSL_ISSUER_SERIAL_compfunc_type(cmp))) +#define sk_OSSL_ISSUER_SERIAL_new_null() ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ISSUER_SERIAL_new_reserve(cmp, n) ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ISSUER_SERIAL_compfunc_type(cmp), (n))) +#define sk_OSSL_ISSUER_SERIAL_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), (n)) +#define sk_OSSL_ISSUER_SERIAL_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_delete(sk, i) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_delete(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), (i))) +#define sk_OSSL_ISSUER_SERIAL_delete_ptr(sk, ptr) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr))) +#define sk_OSSL_ISSUER_SERIAL_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr)) +#define sk_OSSL_ISSUER_SERIAL_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr)) +#define sk_OSSL_ISSUER_SERIAL_pop(sk) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_pop(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk))) +#define sk_OSSL_ISSUER_SERIAL_shift(sk) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_shift(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk))) +#define sk_OSSL_ISSUER_SERIAL_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk),ossl_check_OSSL_ISSUER_SERIAL_freefunc_type(freefunc)) +#define sk_OSSL_ISSUER_SERIAL_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr), (idx)) +#define sk_OSSL_ISSUER_SERIAL_set(sk, idx, ptr) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_set(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), (idx), ossl_check_OSSL_ISSUER_SERIAL_type(ptr))) +#define sk_OSSL_ISSUER_SERIAL_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr)) +#define sk_OSSL_ISSUER_SERIAL_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr)) +#define sk_OSSL_ISSUER_SERIAL_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr), pnum) +#define sk_OSSL_ISSUER_SERIAL_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk)) +#define sk_OSSL_ISSUER_SERIAL_dup(sk) ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk))) +#define sk_OSSL_ISSUER_SERIAL_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_copyfunc_type(copyfunc), ossl_check_OSSL_ISSUER_SERIAL_freefunc_type(freefunc))) +#define sk_OSSL_ISSUER_SERIAL_set_cmp_func(sk, cmp) ((sk_OSSL_ISSUER_SERIAL_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_compfunc_type(cmp))) + + +#endif diff --git a/deps/openssl/config/archs/linux-elf/asm_avx2/include/openssl/x509_vfy.h b/deps/openssl/config/archs/linux-elf/asm_avx2/include/openssl/x509_vfy.h index 29b0e147adcab1..c9bdc3b39d685d 100644 --- a/deps/openssl/config/archs/linux-elf/asm_avx2/include/openssl/x509_vfy.h +++ b/deps/openssl/config/archs/linux-elf/asm_avx2/include/openssl/x509_vfy.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/x509_vfy.h.in * - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -411,6 +411,7 @@ X509_LOOKUP_ctrl_ex((x), X509_L_ADD_STORE, (name), 0, NULL, \ # define X509_V_ERR_CA_CERT_MISSING_KEY_USAGE 92 # define X509_V_ERR_EXTENSIONS_REQUIRE_VERSION_3 93 # define X509_V_ERR_EC_KEY_EXPLICIT_PARAMS 94 +# define X509_V_ERR_RPK_UNTRUSTED 95 /* Certificate verify flags */ # ifndef OPENSSL_NO_DEPRECATED_1_1_0 @@ -491,71 +492,72 @@ int X509_OBJECT_set1_X509(X509_OBJECT *a, X509 *obj); X509_CRL *X509_OBJECT_get0_X509_CRL(const X509_OBJECT *a); int X509_OBJECT_set1_X509_CRL(X509_OBJECT *a, X509_CRL *obj); X509_STORE *X509_STORE_new(void); -void X509_STORE_free(X509_STORE *v); -int X509_STORE_lock(X509_STORE *ctx); -int X509_STORE_unlock(X509_STORE *ctx); -int X509_STORE_up_ref(X509_STORE *v); -STACK_OF(X509_OBJECT) *X509_STORE_get0_objects(const X509_STORE *v); -STACK_OF(X509) *X509_STORE_get1_all_certs(X509_STORE *st); -STACK_OF(X509) *X509_STORE_CTX_get1_certs(X509_STORE_CTX *st, +void X509_STORE_free(X509_STORE *xs); +int X509_STORE_lock(X509_STORE *xs); +int X509_STORE_unlock(X509_STORE *xs); +int X509_STORE_up_ref(X509_STORE *xs); +STACK_OF(X509_OBJECT) *X509_STORE_get0_objects(const X509_STORE *xs); +STACK_OF(X509_OBJECT) *X509_STORE_get1_objects(X509_STORE *xs); +STACK_OF(X509) *X509_STORE_get1_all_certs(X509_STORE *xs); +STACK_OF(X509) *X509_STORE_CTX_get1_certs(X509_STORE_CTX *xs, const X509_NAME *nm); STACK_OF(X509_CRL) *X509_STORE_CTX_get1_crls(const X509_STORE_CTX *st, const X509_NAME *nm); -int X509_STORE_set_flags(X509_STORE *ctx, unsigned long flags); -int X509_STORE_set_purpose(X509_STORE *ctx, int purpose); -int X509_STORE_set_trust(X509_STORE *ctx, int trust); -int X509_STORE_set1_param(X509_STORE *ctx, const X509_VERIFY_PARAM *pm); -X509_VERIFY_PARAM *X509_STORE_get0_param(const X509_STORE *ctx); +int X509_STORE_set_flags(X509_STORE *xs, unsigned long flags); +int X509_STORE_set_purpose(X509_STORE *xs, int purpose); +int X509_STORE_set_trust(X509_STORE *xs, int trust); +int X509_STORE_set1_param(X509_STORE *xs, const X509_VERIFY_PARAM *pm); +X509_VERIFY_PARAM *X509_STORE_get0_param(const X509_STORE *xs); -void X509_STORE_set_verify(X509_STORE *ctx, X509_STORE_CTX_verify_fn verify); +void X509_STORE_set_verify(X509_STORE *xs, X509_STORE_CTX_verify_fn verify); #define X509_STORE_set_verify_func(ctx, func) \ X509_STORE_set_verify((ctx),(func)) void X509_STORE_CTX_set_verify(X509_STORE_CTX *ctx, X509_STORE_CTX_verify_fn verify); -X509_STORE_CTX_verify_fn X509_STORE_get_verify(const X509_STORE *ctx); -void X509_STORE_set_verify_cb(X509_STORE *ctx, +X509_STORE_CTX_verify_fn X509_STORE_get_verify(const X509_STORE *xs); +void X509_STORE_set_verify_cb(X509_STORE *xs, X509_STORE_CTX_verify_cb verify_cb); # define X509_STORE_set_verify_cb_func(ctx,func) \ X509_STORE_set_verify_cb((ctx),(func)) -X509_STORE_CTX_verify_cb X509_STORE_get_verify_cb(const X509_STORE *ctx); -void X509_STORE_set_get_issuer(X509_STORE *ctx, +X509_STORE_CTX_verify_cb X509_STORE_get_verify_cb(const X509_STORE *xs); +void X509_STORE_set_get_issuer(X509_STORE *xs, X509_STORE_CTX_get_issuer_fn get_issuer); -X509_STORE_CTX_get_issuer_fn X509_STORE_get_get_issuer(const X509_STORE *ctx); -void X509_STORE_set_check_issued(X509_STORE *ctx, +X509_STORE_CTX_get_issuer_fn X509_STORE_get_get_issuer(const X509_STORE *xs); +void X509_STORE_set_check_issued(X509_STORE *xs, X509_STORE_CTX_check_issued_fn check_issued); -X509_STORE_CTX_check_issued_fn X509_STORE_get_check_issued(const X509_STORE *ctx); -void X509_STORE_set_check_revocation(X509_STORE *ctx, +X509_STORE_CTX_check_issued_fn X509_STORE_get_check_issued(const X509_STORE *s); +void X509_STORE_set_check_revocation(X509_STORE *xs, X509_STORE_CTX_check_revocation_fn check_revocation); X509_STORE_CTX_check_revocation_fn - X509_STORE_get_check_revocation(const X509_STORE *ctx); -void X509_STORE_set_get_crl(X509_STORE *ctx, + X509_STORE_get_check_revocation(const X509_STORE *xs); +void X509_STORE_set_get_crl(X509_STORE *xs, X509_STORE_CTX_get_crl_fn get_crl); -X509_STORE_CTX_get_crl_fn X509_STORE_get_get_crl(const X509_STORE *ctx); -void X509_STORE_set_check_crl(X509_STORE *ctx, +X509_STORE_CTX_get_crl_fn X509_STORE_get_get_crl(const X509_STORE *xs); +void X509_STORE_set_check_crl(X509_STORE *xs, X509_STORE_CTX_check_crl_fn check_crl); -X509_STORE_CTX_check_crl_fn X509_STORE_get_check_crl(const X509_STORE *ctx); -void X509_STORE_set_cert_crl(X509_STORE *ctx, +X509_STORE_CTX_check_crl_fn X509_STORE_get_check_crl(const X509_STORE *xs); +void X509_STORE_set_cert_crl(X509_STORE *xs, X509_STORE_CTX_cert_crl_fn cert_crl); -X509_STORE_CTX_cert_crl_fn X509_STORE_get_cert_crl(const X509_STORE *ctx); -void X509_STORE_set_check_policy(X509_STORE *ctx, +X509_STORE_CTX_cert_crl_fn X509_STORE_get_cert_crl(const X509_STORE *xs); +void X509_STORE_set_check_policy(X509_STORE *xs, X509_STORE_CTX_check_policy_fn check_policy); -X509_STORE_CTX_check_policy_fn X509_STORE_get_check_policy(const X509_STORE *ctx); -void X509_STORE_set_lookup_certs(X509_STORE *ctx, +X509_STORE_CTX_check_policy_fn X509_STORE_get_check_policy(const X509_STORE *s); +void X509_STORE_set_lookup_certs(X509_STORE *xs, X509_STORE_CTX_lookup_certs_fn lookup_certs); -X509_STORE_CTX_lookup_certs_fn X509_STORE_get_lookup_certs(const X509_STORE *ctx); -void X509_STORE_set_lookup_crls(X509_STORE *ctx, +X509_STORE_CTX_lookup_certs_fn X509_STORE_get_lookup_certs(const X509_STORE *s); +void X509_STORE_set_lookup_crls(X509_STORE *xs, X509_STORE_CTX_lookup_crls_fn lookup_crls); #define X509_STORE_set_lookup_crls_cb(ctx, func) \ X509_STORE_set_lookup_crls((ctx), (func)) -X509_STORE_CTX_lookup_crls_fn X509_STORE_get_lookup_crls(const X509_STORE *ctx); -void X509_STORE_set_cleanup(X509_STORE *ctx, +X509_STORE_CTX_lookup_crls_fn X509_STORE_get_lookup_crls(const X509_STORE *xs); +void X509_STORE_set_cleanup(X509_STORE *xs, X509_STORE_CTX_cleanup_fn cleanup); -X509_STORE_CTX_cleanup_fn X509_STORE_get_cleanup(const X509_STORE *ctx); +X509_STORE_CTX_cleanup_fn X509_STORE_get_cleanup(const X509_STORE *xs); #define X509_STORE_get_ex_new_index(l, p, newf, dupf, freef) \ CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_X509_STORE, l, p, newf, dupf, freef) -int X509_STORE_set_ex_data(X509_STORE *ctx, int idx, void *data); -void *X509_STORE_get_ex_data(const X509_STORE *ctx, int idx); +int X509_STORE_set_ex_data(X509_STORE *xs, int idx, void *data); +void *X509_STORE_get_ex_data(const X509_STORE *xs, int idx); X509_STORE_CTX *X509_STORE_CTX_new_ex(OSSL_LIB_CTX *libctx, const char *propq); X509_STORE_CTX *X509_STORE_CTX_new(void); @@ -565,11 +567,14 @@ int X509_STORE_CTX_get1_issuer(X509 **issuer, X509_STORE_CTX *ctx, X509 *x); void X509_STORE_CTX_free(X509_STORE_CTX *ctx); int X509_STORE_CTX_init(X509_STORE_CTX *ctx, X509_STORE *trust_store, X509 *target, STACK_OF(X509) *untrusted); +int X509_STORE_CTX_init_rpk(X509_STORE_CTX *ctx, X509_STORE *trust_store, + EVP_PKEY* rpk); void X509_STORE_CTX_set0_trusted_stack(X509_STORE_CTX *ctx, STACK_OF(X509) *sk); void X509_STORE_CTX_cleanup(X509_STORE_CTX *ctx); X509_STORE *X509_STORE_CTX_get0_store(const X509_STORE_CTX *ctx); X509 *X509_STORE_CTX_get0_cert(const X509_STORE_CTX *ctx); +EVP_PKEY *X509_STORE_CTX_get0_rpk(const X509_STORE_CTX *ctx); STACK_OF(X509)* X509_STORE_CTX_get0_untrusted(const X509_STORE_CTX *ctx); void X509_STORE_CTX_set0_untrusted(X509_STORE_CTX *ctx, STACK_OF(X509) *sk); void X509_STORE_CTX_set_verify_cb(X509_STORE_CTX *ctx, @@ -579,6 +584,8 @@ X509_STORE_CTX_verify_fn X509_STORE_CTX_get_verify(const X509_STORE_CTX *ctx); X509_STORE_CTX_get_issuer_fn X509_STORE_CTX_get_get_issuer(const X509_STORE_CTX *ctx); X509_STORE_CTX_check_issued_fn X509_STORE_CTX_get_check_issued(const X509_STORE_CTX *ctx); X509_STORE_CTX_check_revocation_fn X509_STORE_CTX_get_check_revocation(const X509_STORE_CTX *ctx); +void X509_STORE_CTX_set_get_crl(X509_STORE_CTX *ctx, + X509_STORE_CTX_get_crl_fn get_crl); X509_STORE_CTX_get_crl_fn X509_STORE_CTX_get_get_crl(const X509_STORE_CTX *ctx); X509_STORE_CTX_check_crl_fn X509_STORE_CTX_get_check_crl(const X509_STORE_CTX *ctx); X509_STORE_CTX_cert_crl_fn X509_STORE_CTX_get_cert_crl(const X509_STORE_CTX *ctx); @@ -600,7 +607,7 @@ X509_STORE_CTX_cleanup_fn X509_STORE_CTX_get_cleanup(const X509_STORE_CTX *ctx); # define X509_STORE_get1_crl X509_STORE_CTX_get1_crls #endif -X509_LOOKUP *X509_STORE_add_lookup(X509_STORE *v, X509_LOOKUP_METHOD *m); +X509_LOOKUP *X509_STORE_add_lookup(X509_STORE *xs, X509_LOOKUP_METHOD *m); X509_LOOKUP_METHOD *X509_LOOKUP_hash_dir(void); X509_LOOKUP_METHOD *X509_LOOKUP_file(void); X509_LOOKUP_METHOD *X509_LOOKUP_store(void); @@ -685,8 +692,8 @@ X509_LOOKUP_get_by_alias_fn X509_LOOKUP_meth_get_get_by_alias( const X509_LOOKUP_METHOD *method); -int X509_STORE_add_cert(X509_STORE *ctx, X509 *x); -int X509_STORE_add_crl(X509_STORE *ctx, X509_CRL *x); +int X509_STORE_add_cert(X509_STORE *xs, X509 *x); +int X509_STORE_add_crl(X509_STORE *xs, X509_CRL *x); int X509_STORE_CTX_get_by_subject(const X509_STORE_CTX *vs, X509_LOOKUP_TYPE type, @@ -730,23 +737,21 @@ void *X509_LOOKUP_get_method_data(const X509_LOOKUP *ctx); X509_STORE *X509_LOOKUP_get_store(const X509_LOOKUP *ctx); int X509_LOOKUP_shutdown(X509_LOOKUP *ctx); -int X509_STORE_load_file(X509_STORE *ctx, const char *file); -int X509_STORE_load_path(X509_STORE *ctx, const char *path); -int X509_STORE_load_store(X509_STORE *ctx, const char *store); -int X509_STORE_load_locations(X509_STORE *ctx, - const char *file, - const char *dir); -int X509_STORE_set_default_paths(X509_STORE *ctx); +int X509_STORE_load_file(X509_STORE *xs, const char *file); +int X509_STORE_load_path(X509_STORE *xs, const char *path); +int X509_STORE_load_store(X509_STORE *xs, const char *store); +int X509_STORE_load_locations(X509_STORE *s, const char *file, const char *dir); +int X509_STORE_set_default_paths(X509_STORE *xs); -int X509_STORE_load_file_ex(X509_STORE *ctx, const char *file, +int X509_STORE_load_file_ex(X509_STORE *xs, const char *file, OSSL_LIB_CTX *libctx, const char *propq); -int X509_STORE_load_store_ex(X509_STORE *ctx, const char *store, +int X509_STORE_load_store_ex(X509_STORE *xs, const char *store, OSSL_LIB_CTX *libctx, const char *propq); -int X509_STORE_load_locations_ex(X509_STORE *ctx, const char *file, - const char *dir, OSSL_LIB_CTX *libctx, - const char *propq); -int X509_STORE_set_default_paths_ex(X509_STORE *ctx, OSSL_LIB_CTX *libctx, - const char *propq); +int X509_STORE_load_locations_ex(X509_STORE *xs, + const char *file, const char *dir, + OSSL_LIB_CTX *libctx, const char *propq); +int X509_STORE_set_default_paths_ex(X509_STORE *xs, + OSSL_LIB_CTX *libctx, const char *propq); #define X509_STORE_CTX_get_ex_new_index(l, p, newf, dupf, freef) \ CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_X509_STORE_CTX, l, p, newf, dupf, freef) @@ -764,6 +769,7 @@ X509_STORE_CTX *X509_STORE_CTX_get0_parent_ctx(const X509_STORE_CTX *ctx); STACK_OF(X509) *X509_STORE_CTX_get0_chain(const X509_STORE_CTX *ctx); STACK_OF(X509) *X509_STORE_CTX_get1_chain(const X509_STORE_CTX *ctx); void X509_STORE_CTX_set_cert(X509_STORE_CTX *ctx, X509 *target); +void X509_STORE_CTX_set0_rpk(X509_STORE_CTX *ctx, EVP_PKEY *target); void X509_STORE_CTX_set0_verified_chain(X509_STORE_CTX *c, STACK_OF(X509) *sk); void X509_STORE_CTX_set0_crls(X509_STORE_CTX *ctx, STACK_OF(X509_CRL) *sk); int X509_STORE_CTX_set_purpose(X509_STORE_CTX *ctx, int purpose); @@ -773,6 +779,8 @@ int X509_STORE_CTX_purpose_inherit(X509_STORE_CTX *ctx, int def_purpose, void X509_STORE_CTX_set_flags(X509_STORE_CTX *ctx, unsigned long flags); void X509_STORE_CTX_set_time(X509_STORE_CTX *ctx, unsigned long flags, time_t t); +void X509_STORE_CTX_set_current_reasons(X509_STORE_CTX *ctx, + unsigned int current_reasons); X509_POLICY_TREE *X509_STORE_CTX_get0_policy_tree(const X509_STORE_CTX *ctx); int X509_STORE_CTX_get_explicit_policy(const X509_STORE_CTX *ctx); @@ -804,6 +812,7 @@ int X509_VERIFY_PARAM_clear_flags(X509_VERIFY_PARAM *param, unsigned long flags); unsigned long X509_VERIFY_PARAM_get_flags(const X509_VERIFY_PARAM *param); int X509_VERIFY_PARAM_set_purpose(X509_VERIFY_PARAM *param, int purpose); +int X509_VERIFY_PARAM_get_purpose(const X509_VERIFY_PARAM *param); int X509_VERIFY_PARAM_set_trust(X509_VERIFY_PARAM *param, int trust); void X509_VERIFY_PARAM_set_depth(X509_VERIFY_PARAM *param, int depth); void X509_VERIFY_PARAM_set_auth_level(X509_VERIFY_PARAM *param, int auth_level); diff --git a/deps/openssl/config/archs/linux-elf/asm_avx2/include/openssl/x509v3.h b/deps/openssl/config/archs/linux-elf/asm_avx2/include/openssl/x509v3.h index 20b67455f2061d..b8dabac35a4915 100644 --- a/deps/openssl/config/archs/linux-elf/asm_avx2/include/openssl/x509v3.h +++ b/deps/openssl/config/archs/linux-elf/asm_avx2/include/openssl/x509v3.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/x509v3.h.in * - * Copyright 1999-2023 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1999-2025 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -25,6 +25,9 @@ # include # include # include +# ifndef OPENSSL_NO_STDIO +# include +# endif #ifdef __cplusplus extern "C" { @@ -146,6 +149,11 @@ typedef struct BASIC_CONSTRAINTS_st { ASN1_INTEGER *pathlen; } BASIC_CONSTRAINTS; +typedef struct OSSL_BASIC_ATTR_CONSTRAINTS_st { + int authority; + ASN1_INTEGER *pathlen; +} OSSL_BASIC_ATTR_CONSTRAINTS; + typedef struct PKEY_USAGE_PERIOD_st { ASN1_GENERALIZEDTIME *notBefore; ASN1_GENERALIZEDTIME *notAfter; @@ -198,6 +206,8 @@ typedef struct ACCESS_DESCRIPTION_st { GENERAL_NAME *location; } ACCESS_DESCRIPTION; +int GENERAL_NAME_set1_X509_NAME(GENERAL_NAME **tgt, const X509_NAME *src); + SKM_DEFINE_STACK_OF_INTERNAL(ACCESS_DESCRIPTION, ACCESS_DESCRIPTION, ACCESS_DESCRIPTION) #define sk_ACCESS_DESCRIPTION_num(sk) OPENSSL_sk_num(ossl_check_const_ACCESS_DESCRIPTION_sk_type(sk)) #define sk_ACCESS_DESCRIPTION_value(sk, idx) ((ACCESS_DESCRIPTION *)OPENSSL_sk_value(ossl_check_const_ACCESS_DESCRIPTION_sk_type(sk), (idx))) @@ -294,6 +304,7 @@ typedef struct DIST_POINT_NAME_st { /* If relativename then this contains the full distribution point name */ X509_NAME *dpname; } DIST_POINT_NAME; +DECLARE_ASN1_DUP_FUNCTION(DIST_POINT_NAME) /* All existing reasons */ # define CRLDP_ALL_REASONS 0x807f @@ -659,15 +670,16 @@ struct ISSUING_DIST_POINT_st { # define EXFLAG_SAN_CRITICAL 0x80000 # define EXFLAG_NO_FINGERPRINT 0x100000 -# define KU_DIGITAL_SIGNATURE 0x0080 -# define KU_NON_REPUDIATION 0x0040 -# define KU_KEY_ENCIPHERMENT 0x0020 -# define KU_DATA_ENCIPHERMENT 0x0010 -# define KU_KEY_AGREEMENT 0x0008 -# define KU_KEY_CERT_SIGN 0x0004 -# define KU_CRL_SIGN 0x0002 -# define KU_ENCIPHER_ONLY 0x0001 -# define KU_DECIPHER_ONLY 0x8000 +/* https://datatracker.ietf.org/doc/html/rfc5280#section-4.2.1.3 */ +# define KU_DIGITAL_SIGNATURE X509v3_KU_DIGITAL_SIGNATURE +# define KU_NON_REPUDIATION X509v3_KU_NON_REPUDIATION +# define KU_KEY_ENCIPHERMENT X509v3_KU_KEY_ENCIPHERMENT +# define KU_DATA_ENCIPHERMENT X509v3_KU_DATA_ENCIPHERMENT +# define KU_KEY_AGREEMENT X509v3_KU_KEY_AGREEMENT +# define KU_KEY_CERT_SIGN X509v3_KU_KEY_CERT_SIGN +# define KU_CRL_SIGN X509v3_KU_CRL_SIGN +# define KU_ENCIPHER_ONLY X509v3_KU_ENCIPHER_ONLY +# define KU_DECIPHER_ONLY X509v3_KU_DECIPHER_ONLY # define NS_SSL_CLIENT 0x80 # define NS_SSL_SERVER 0x40 @@ -729,7 +741,7 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_PURPOSE, X509_PURPOSE, X509_PURPOSE) #define sk_X509_PURPOSE_set_cmp_func(sk, cmp) ((sk_X509_PURPOSE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_X509_PURPOSE_sk_type(sk), ossl_check_X509_PURPOSE_compfunc_type(cmp))) - +# define X509_PURPOSE_DEFAULT_ANY 0 # define X509_PURPOSE_SSL_CLIENT 1 # define X509_PURPOSE_SSL_SERVER 2 # define X509_PURPOSE_NS_SSL_SERVER 3 @@ -739,9 +751,10 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_PURPOSE, X509_PURPOSE, X509_PURPOSE) # define X509_PURPOSE_ANY 7 # define X509_PURPOSE_OCSP_HELPER 8 # define X509_PURPOSE_TIMESTAMP_SIGN 9 +# define X509_PURPOSE_CODE_SIGN 10 # define X509_PURPOSE_MIN 1 -# define X509_PURPOSE_MAX 9 +# define X509_PURPOSE_MAX 10 /* Flags for X509V3_EXT_print() */ @@ -767,6 +780,7 @@ SKM_DEFINE_STACK_OF_INTERNAL(X509_PURPOSE, X509_PURPOSE, X509_PURPOSE) # define X509V3_ADD_SILENT 0x10 DECLARE_ASN1_FUNCTIONS(BASIC_CONSTRAINTS) +DECLARE_ASN1_FUNCTIONS(OSSL_BASIC_ATTR_CONSTRAINTS) DECLARE_ASN1_FUNCTIONS(SXNET) DECLARE_ASN1_FUNCTIONS(SXNETID) @@ -976,7 +990,6 @@ int X509V3_extensions_print(BIO *out, const char *title, int X509_check_ca(X509 *x); int X509_check_purpose(X509 *x, int id, int ca); int X509_supported_extension(X509_EXTENSION *ex); -int X509_PURPOSE_set(int *p, int purpose); int X509_check_issued(X509 *issuer, X509 *subject); int X509_check_akid(const X509 *issuer, const AUTHORITY_KEYID *akid); void X509_set_proxy_flag(X509 *x); @@ -992,22 +1005,26 @@ const GENERAL_NAMES *X509_get0_authority_issuer(X509 *x); const ASN1_INTEGER *X509_get0_authority_serial(X509 *x); int X509_PURPOSE_get_count(void); -X509_PURPOSE *X509_PURPOSE_get0(int idx); +int X509_PURPOSE_get_unused_id(OSSL_LIB_CTX *libctx); int X509_PURPOSE_get_by_sname(const char *sname); int X509_PURPOSE_get_by_id(int id); int X509_PURPOSE_add(int id, int trust, int flags, int (*ck) (const X509_PURPOSE *, const X509 *, int), const char *name, const char *sname, void *arg); +void X509_PURPOSE_cleanup(void); + +X509_PURPOSE *X509_PURPOSE_get0(int idx); +int X509_PURPOSE_get_id(const X509_PURPOSE *); char *X509_PURPOSE_get0_name(const X509_PURPOSE *xp); char *X509_PURPOSE_get0_sname(const X509_PURPOSE *xp); int X509_PURPOSE_get_trust(const X509_PURPOSE *xp); -void X509_PURPOSE_cleanup(void); -int X509_PURPOSE_get_id(const X509_PURPOSE *); +int X509_PURPOSE_set(int *p, int purpose); STACK_OF(OPENSSL_STRING) *X509_get1_email(X509 *x); STACK_OF(OPENSSL_STRING) *X509_REQ_get1_email(X509_REQ *x); void X509_email_free(STACK_OF(OPENSSL_STRING) *sk); STACK_OF(OPENSSL_STRING) *X509_get1_ocsp(X509 *x); + /* Flags for X509_check_* functions */ /* @@ -1444,6 +1461,507 @@ const ASN1_PRINTABLESTRING *PROFESSION_INFO_get0_registrationNumber( void PROFESSION_INFO_set0_registrationNumber( PROFESSION_INFO *pi, ASN1_PRINTABLESTRING *rn); +int OSSL_GENERAL_NAMES_print(BIO *out, GENERAL_NAMES *gens, int indent); + +typedef STACK_OF(X509_ATTRIBUTE) OSSL_ATTRIBUTES_SYNTAX; +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTES_SYNTAX) + +typedef STACK_OF(USERNOTICE) OSSL_USER_NOTICE_SYNTAX; +DECLARE_ASN1_FUNCTIONS(OSSL_USER_NOTICE_SYNTAX) + +SKM_DEFINE_STACK_OF_INTERNAL(USERNOTICE, USERNOTICE, USERNOTICE) +#define sk_USERNOTICE_num(sk) OPENSSL_sk_num(ossl_check_const_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_value(sk, idx) ((USERNOTICE *)OPENSSL_sk_value(ossl_check_const_USERNOTICE_sk_type(sk), (idx))) +#define sk_USERNOTICE_new(cmp) ((STACK_OF(USERNOTICE) *)OPENSSL_sk_new(ossl_check_USERNOTICE_compfunc_type(cmp))) +#define sk_USERNOTICE_new_null() ((STACK_OF(USERNOTICE) *)OPENSSL_sk_new_null()) +#define sk_USERNOTICE_new_reserve(cmp, n) ((STACK_OF(USERNOTICE) *)OPENSSL_sk_new_reserve(ossl_check_USERNOTICE_compfunc_type(cmp), (n))) +#define sk_USERNOTICE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_USERNOTICE_sk_type(sk), (n)) +#define sk_USERNOTICE_free(sk) OPENSSL_sk_free(ossl_check_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_zero(sk) OPENSSL_sk_zero(ossl_check_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_delete(sk, i) ((USERNOTICE *)OPENSSL_sk_delete(ossl_check_USERNOTICE_sk_type(sk), (i))) +#define sk_USERNOTICE_delete_ptr(sk, ptr) ((USERNOTICE *)OPENSSL_sk_delete_ptr(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr))) +#define sk_USERNOTICE_push(sk, ptr) OPENSSL_sk_push(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr)) +#define sk_USERNOTICE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr)) +#define sk_USERNOTICE_pop(sk) ((USERNOTICE *)OPENSSL_sk_pop(ossl_check_USERNOTICE_sk_type(sk))) +#define sk_USERNOTICE_shift(sk) ((USERNOTICE *)OPENSSL_sk_shift(ossl_check_USERNOTICE_sk_type(sk))) +#define sk_USERNOTICE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_USERNOTICE_sk_type(sk),ossl_check_USERNOTICE_freefunc_type(freefunc)) +#define sk_USERNOTICE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr), (idx)) +#define sk_USERNOTICE_set(sk, idx, ptr) ((USERNOTICE *)OPENSSL_sk_set(ossl_check_USERNOTICE_sk_type(sk), (idx), ossl_check_USERNOTICE_type(ptr))) +#define sk_USERNOTICE_find(sk, ptr) OPENSSL_sk_find(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr)) +#define sk_USERNOTICE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr)) +#define sk_USERNOTICE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr), pnum) +#define sk_USERNOTICE_sort(sk) OPENSSL_sk_sort(ossl_check_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_USERNOTICE_sk_type(sk)) +#define sk_USERNOTICE_dup(sk) ((STACK_OF(USERNOTICE) *)OPENSSL_sk_dup(ossl_check_const_USERNOTICE_sk_type(sk))) +#define sk_USERNOTICE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(USERNOTICE) *)OPENSSL_sk_deep_copy(ossl_check_const_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_copyfunc_type(copyfunc), ossl_check_USERNOTICE_freefunc_type(freefunc))) +#define sk_USERNOTICE_set_cmp_func(sk, cmp) ((sk_USERNOTICE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_compfunc_type(cmp))) + + +typedef struct OSSL_ROLE_SPEC_CERT_ID_st { + GENERAL_NAME *roleName; + GENERAL_NAME *roleCertIssuer; + ASN1_INTEGER *roleCertSerialNumber; + GENERAL_NAMES *roleCertLocator; +} OSSL_ROLE_SPEC_CERT_ID; + +DECLARE_ASN1_FUNCTIONS(OSSL_ROLE_SPEC_CERT_ID) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ROLE_SPEC_CERT_ID, OSSL_ROLE_SPEC_CERT_ID, OSSL_ROLE_SPEC_CERT_ID) +#define sk_OSSL_ROLE_SPEC_CERT_ID_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_value(sk, idx) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_value(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), (idx))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_new(cmp) ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_new(ossl_check_OSSL_ROLE_SPEC_CERT_ID_compfunc_type(cmp))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_new_null() ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ROLE_SPEC_CERT_ID_new_reserve(cmp, n) ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ROLE_SPEC_CERT_ID_compfunc_type(cmp), (n))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), (n)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_delete(sk, i) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_delete(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), (i))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_delete_ptr(sk, ptr) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_pop(sk) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_pop(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_shift(sk) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_shift(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk),ossl_check_OSSL_ROLE_SPEC_CERT_ID_freefunc_type(freefunc)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr), (idx)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_set(sk, idx, ptr) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_set(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), (idx), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr), pnum) +#define sk_OSSL_ROLE_SPEC_CERT_ID_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) +#define sk_OSSL_ROLE_SPEC_CERT_ID_dup(sk) ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_copyfunc_type(copyfunc), ossl_check_OSSL_ROLE_SPEC_CERT_ID_freefunc_type(freefunc))) +#define sk_OSSL_ROLE_SPEC_CERT_ID_set_cmp_func(sk, cmp) ((sk_OSSL_ROLE_SPEC_CERT_ID_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_compfunc_type(cmp))) + + +typedef STACK_OF(OSSL_ROLE_SPEC_CERT_ID) OSSL_ROLE_SPEC_CERT_ID_SYNTAX; + +DECLARE_ASN1_FUNCTIONS(OSSL_ROLE_SPEC_CERT_ID_SYNTAX) +typedef struct OSSL_HASH_st { + X509_ALGOR *algorithmIdentifier; + ASN1_BIT_STRING *hashValue; +} OSSL_HASH; + +typedef struct OSSL_INFO_SYNTAX_POINTER_st { + GENERAL_NAMES *name; + OSSL_HASH *hash; +} OSSL_INFO_SYNTAX_POINTER; + +# define OSSL_INFO_SYNTAX_TYPE_CONTENT 0 +# define OSSL_INFO_SYNTAX_TYPE_POINTER 1 + +typedef struct OSSL_INFO_SYNTAX_st { + int type; + union { + ASN1_STRING *content; + OSSL_INFO_SYNTAX_POINTER *pointer; + } choice; +} OSSL_INFO_SYNTAX; + +typedef struct OSSL_PRIVILEGE_POLICY_ID_st { + ASN1_OBJECT *privilegePolicy; + OSSL_INFO_SYNTAX *privPolSyntax; +} OSSL_PRIVILEGE_POLICY_ID; + +typedef struct OSSL_ATTRIBUTE_DESCRIPTOR_st { + ASN1_OBJECT *identifier; + ASN1_STRING *attributeSyntax; + ASN1_UTF8STRING *name; + ASN1_UTF8STRING *description; + OSSL_PRIVILEGE_POLICY_ID *dominationRule; +} OSSL_ATTRIBUTE_DESCRIPTOR; + +DECLARE_ASN1_FUNCTIONS(OSSL_HASH) +DECLARE_ASN1_FUNCTIONS(OSSL_INFO_SYNTAX) +DECLARE_ASN1_FUNCTIONS(OSSL_INFO_SYNTAX_POINTER) +DECLARE_ASN1_FUNCTIONS(OSSL_PRIVILEGE_POLICY_ID) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_DESCRIPTOR) + +typedef struct OSSL_TIME_SPEC_ABSOLUTE_st { + ASN1_GENERALIZEDTIME *startTime; + ASN1_GENERALIZEDTIME *endTime; +} OSSL_TIME_SPEC_ABSOLUTE; + +typedef struct OSSL_DAY_TIME_st { + ASN1_INTEGER *hour; + ASN1_INTEGER *minute; + ASN1_INTEGER *second; +} OSSL_DAY_TIME; + +typedef struct OSSL_DAY_TIME_BAND_st { + OSSL_DAY_TIME *startDayTime; + OSSL_DAY_TIME *endDayTime; +} OSSL_DAY_TIME_BAND; + +# define OSSL_NAMED_DAY_TYPE_INT 0 +# define OSSL_NAMED_DAY_TYPE_BIT 1 +# define OSSL_NAMED_DAY_INT_SUN 1 +# define OSSL_NAMED_DAY_INT_MON 2 +# define OSSL_NAMED_DAY_INT_TUE 3 +# define OSSL_NAMED_DAY_INT_WED 4 +# define OSSL_NAMED_DAY_INT_THU 5 +# define OSSL_NAMED_DAY_INT_FRI 6 +# define OSSL_NAMED_DAY_INT_SAT 7 +# define OSSL_NAMED_DAY_BIT_SUN 0 +# define OSSL_NAMED_DAY_BIT_MON 1 +# define OSSL_NAMED_DAY_BIT_TUE 2 +# define OSSL_NAMED_DAY_BIT_WED 3 +# define OSSL_NAMED_DAY_BIT_THU 4 +# define OSSL_NAMED_DAY_BIT_FRI 5 +# define OSSL_NAMED_DAY_BIT_SAT 6 + +typedef struct OSSL_NAMED_DAY_st { + int type; + union { + ASN1_INTEGER *intNamedDays; + ASN1_BIT_STRING *bitNamedDays; + } choice; +} OSSL_NAMED_DAY; + +# define OSSL_TIME_SPEC_X_DAY_OF_FIRST 0 +# define OSSL_TIME_SPEC_X_DAY_OF_SECOND 1 +# define OSSL_TIME_SPEC_X_DAY_OF_THIRD 2 +# define OSSL_TIME_SPEC_X_DAY_OF_FOURTH 3 +# define OSSL_TIME_SPEC_X_DAY_OF_FIFTH 4 + +typedef struct OSSL_TIME_SPEC_X_DAY_OF_st { + int type; + union { + OSSL_NAMED_DAY *first; + OSSL_NAMED_DAY *second; + OSSL_NAMED_DAY *third; + OSSL_NAMED_DAY *fourth; + OSSL_NAMED_DAY *fifth; + } choice; +} OSSL_TIME_SPEC_X_DAY_OF; + +# define OSSL_TIME_SPEC_DAY_TYPE_INT 0 +# define OSSL_TIME_SPEC_DAY_TYPE_BIT 1 +# define OSSL_TIME_SPEC_DAY_TYPE_DAY_OF 2 +# define OSSL_TIME_SPEC_DAY_BIT_SUN 0 +# define OSSL_TIME_SPEC_DAY_BIT_MON 1 +# define OSSL_TIME_SPEC_DAY_BIT_TUE 2 +# define OSSL_TIME_SPEC_DAY_BIT_WED 3 +# define OSSL_TIME_SPEC_DAY_BIT_THU 4 +# define OSSL_TIME_SPEC_DAY_BIT_FRI 5 +# define OSSL_TIME_SPEC_DAY_BIT_SAT 6 +# define OSSL_TIME_SPEC_DAY_INT_SUN 1 +# define OSSL_TIME_SPEC_DAY_INT_MON 2 +# define OSSL_TIME_SPEC_DAY_INT_TUE 3 +# define OSSL_TIME_SPEC_DAY_INT_WED 4 +# define OSSL_TIME_SPEC_DAY_INT_THU 5 +# define OSSL_TIME_SPEC_DAY_INT_FRI 6 +# define OSSL_TIME_SPEC_DAY_INT_SAT 7 + +typedef struct OSSL_TIME_SPEC_DAY_st { + int type; + union { + STACK_OF(ASN1_INTEGER) *intDay; + ASN1_BIT_STRING *bitDay; + OSSL_TIME_SPEC_X_DAY_OF *dayOf; + } choice; +} OSSL_TIME_SPEC_DAY; + +# define OSSL_TIME_SPEC_WEEKS_TYPE_ALL 0 +# define OSSL_TIME_SPEC_WEEKS_TYPE_INT 1 +# define OSSL_TIME_SPEC_WEEKS_TYPE_BIT 2 +# define OSSL_TIME_SPEC_BIT_WEEKS_1 0 +# define OSSL_TIME_SPEC_BIT_WEEKS_2 1 +# define OSSL_TIME_SPEC_BIT_WEEKS_3 2 +# define OSSL_TIME_SPEC_BIT_WEEKS_4 3 +# define OSSL_TIME_SPEC_BIT_WEEKS_5 4 + +typedef struct OSSL_TIME_SPEC_WEEKS_st { + int type; + union { + ASN1_NULL *allWeeks; + STACK_OF(ASN1_INTEGER) *intWeek; + ASN1_BIT_STRING *bitWeek; + } choice; +} OSSL_TIME_SPEC_WEEKS; + +# define OSSL_TIME_SPEC_MONTH_TYPE_ALL 0 +# define OSSL_TIME_SPEC_MONTH_TYPE_INT 1 +# define OSSL_TIME_SPEC_MONTH_TYPE_BIT 2 +# define OSSL_TIME_SPEC_INT_MONTH_JAN 1 +# define OSSL_TIME_SPEC_INT_MONTH_FEB 2 +# define OSSL_TIME_SPEC_INT_MONTH_MAR 3 +# define OSSL_TIME_SPEC_INT_MONTH_APR 4 +# define OSSL_TIME_SPEC_INT_MONTH_MAY 5 +# define OSSL_TIME_SPEC_INT_MONTH_JUN 6 +# define OSSL_TIME_SPEC_INT_MONTH_JUL 7 +# define OSSL_TIME_SPEC_INT_MONTH_AUG 8 +# define OSSL_TIME_SPEC_INT_MONTH_SEP 9 +# define OSSL_TIME_SPEC_INT_MONTH_OCT 10 +# define OSSL_TIME_SPEC_INT_MONTH_NOV 11 +# define OSSL_TIME_SPEC_INT_MONTH_DEC 12 +# define OSSL_TIME_SPEC_BIT_MONTH_JAN 0 +# define OSSL_TIME_SPEC_BIT_MONTH_FEB 1 +# define OSSL_TIME_SPEC_BIT_MONTH_MAR 2 +# define OSSL_TIME_SPEC_BIT_MONTH_APR 3 +# define OSSL_TIME_SPEC_BIT_MONTH_MAY 4 +# define OSSL_TIME_SPEC_BIT_MONTH_JUN 5 +# define OSSL_TIME_SPEC_BIT_MONTH_JUL 6 +# define OSSL_TIME_SPEC_BIT_MONTH_AUG 7 +# define OSSL_TIME_SPEC_BIT_MONTH_SEP 8 +# define OSSL_TIME_SPEC_BIT_MONTH_OCT 9 +# define OSSL_TIME_SPEC_BIT_MONTH_NOV 10 +# define OSSL_TIME_SPEC_BIT_MONTH_DEC 11 + +typedef struct OSSL_TIME_SPEC_MONTH_st { + int type; + union { + ASN1_NULL *allMonths; + STACK_OF(ASN1_INTEGER) *intMonth; + ASN1_BIT_STRING *bitMonth; + } choice; +} OSSL_TIME_SPEC_MONTH; + +typedef struct OSSL_TIME_PERIOD_st { + STACK_OF(OSSL_DAY_TIME_BAND) *timesOfDay; + OSSL_TIME_SPEC_DAY *days; + OSSL_TIME_SPEC_WEEKS *weeks; + OSSL_TIME_SPEC_MONTH *months; + STACK_OF(ASN1_INTEGER) *years; +} OSSL_TIME_PERIOD; + +# define OSSL_TIME_SPEC_TIME_TYPE_ABSOLUTE 0 +# define OSSL_TIME_SPEC_TIME_TYPE_PERIODIC 1 + +typedef struct OSSL_TIME_SPEC_TIME_st { + int type; + union { + OSSL_TIME_SPEC_ABSOLUTE *absolute; + STACK_OF(OSSL_TIME_PERIOD) *periodic; + } choice; +} OSSL_TIME_SPEC_TIME; + +typedef struct OSSL_TIME_SPEC_st { + OSSL_TIME_SPEC_TIME *time; + ASN1_BOOLEAN notThisTime; + ASN1_INTEGER *timeZone; +} OSSL_TIME_SPEC; + +DECLARE_ASN1_FUNCTIONS(OSSL_DAY_TIME) +DECLARE_ASN1_FUNCTIONS(OSSL_DAY_TIME_BAND) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_DAY) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_WEEKS) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_MONTH) +DECLARE_ASN1_FUNCTIONS(OSSL_NAMED_DAY) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_X_DAY_OF) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_ABSOLUTE) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_TIME) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC) +DECLARE_ASN1_FUNCTIONS(OSSL_TIME_PERIOD) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_TIME_PERIOD, OSSL_TIME_PERIOD, OSSL_TIME_PERIOD) +#define sk_OSSL_TIME_PERIOD_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_value(sk, idx) ((OSSL_TIME_PERIOD *)OPENSSL_sk_value(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk), (idx))) +#define sk_OSSL_TIME_PERIOD_new(cmp) ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_new(ossl_check_OSSL_TIME_PERIOD_compfunc_type(cmp))) +#define sk_OSSL_TIME_PERIOD_new_null() ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_new_null()) +#define sk_OSSL_TIME_PERIOD_new_reserve(cmp, n) ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_TIME_PERIOD_compfunc_type(cmp), (n))) +#define sk_OSSL_TIME_PERIOD_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), (n)) +#define sk_OSSL_TIME_PERIOD_free(sk) OPENSSL_sk_free(ossl_check_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_delete(sk, i) ((OSSL_TIME_PERIOD *)OPENSSL_sk_delete(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), (i))) +#define sk_OSSL_TIME_PERIOD_delete_ptr(sk, ptr) ((OSSL_TIME_PERIOD *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr))) +#define sk_OSSL_TIME_PERIOD_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr)) +#define sk_OSSL_TIME_PERIOD_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr)) +#define sk_OSSL_TIME_PERIOD_pop(sk) ((OSSL_TIME_PERIOD *)OPENSSL_sk_pop(ossl_check_OSSL_TIME_PERIOD_sk_type(sk))) +#define sk_OSSL_TIME_PERIOD_shift(sk) ((OSSL_TIME_PERIOD *)OPENSSL_sk_shift(ossl_check_OSSL_TIME_PERIOD_sk_type(sk))) +#define sk_OSSL_TIME_PERIOD_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_TIME_PERIOD_sk_type(sk),ossl_check_OSSL_TIME_PERIOD_freefunc_type(freefunc)) +#define sk_OSSL_TIME_PERIOD_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr), (idx)) +#define sk_OSSL_TIME_PERIOD_set(sk, idx, ptr) ((OSSL_TIME_PERIOD *)OPENSSL_sk_set(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), (idx), ossl_check_OSSL_TIME_PERIOD_type(ptr))) +#define sk_OSSL_TIME_PERIOD_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr)) +#define sk_OSSL_TIME_PERIOD_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr)) +#define sk_OSSL_TIME_PERIOD_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr), pnum) +#define sk_OSSL_TIME_PERIOD_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk)) +#define sk_OSSL_TIME_PERIOD_dup(sk) ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_dup(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk))) +#define sk_OSSL_TIME_PERIOD_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_copyfunc_type(copyfunc), ossl_check_OSSL_TIME_PERIOD_freefunc_type(freefunc))) +#define sk_OSSL_TIME_PERIOD_set_cmp_func(sk, cmp) ((sk_OSSL_TIME_PERIOD_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_compfunc_type(cmp))) + + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_DAY_TIME_BAND, OSSL_DAY_TIME_BAND, OSSL_DAY_TIME_BAND) +#define sk_OSSL_DAY_TIME_BAND_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_value(sk, idx) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_value(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk), (idx))) +#define sk_OSSL_DAY_TIME_BAND_new(cmp) ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_new(ossl_check_OSSL_DAY_TIME_BAND_compfunc_type(cmp))) +#define sk_OSSL_DAY_TIME_BAND_new_null() ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_new_null()) +#define sk_OSSL_DAY_TIME_BAND_new_reserve(cmp, n) ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_DAY_TIME_BAND_compfunc_type(cmp), (n))) +#define sk_OSSL_DAY_TIME_BAND_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), (n)) +#define sk_OSSL_DAY_TIME_BAND_free(sk) OPENSSL_sk_free(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_delete(sk, i) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_delete(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), (i))) +#define sk_OSSL_DAY_TIME_BAND_delete_ptr(sk, ptr) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr))) +#define sk_OSSL_DAY_TIME_BAND_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr)) +#define sk_OSSL_DAY_TIME_BAND_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr)) +#define sk_OSSL_DAY_TIME_BAND_pop(sk) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_pop(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk))) +#define sk_OSSL_DAY_TIME_BAND_shift(sk) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_shift(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk))) +#define sk_OSSL_DAY_TIME_BAND_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk),ossl_check_OSSL_DAY_TIME_BAND_freefunc_type(freefunc)) +#define sk_OSSL_DAY_TIME_BAND_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr), (idx)) +#define sk_OSSL_DAY_TIME_BAND_set(sk, idx, ptr) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_set(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), (idx), ossl_check_OSSL_DAY_TIME_BAND_type(ptr))) +#define sk_OSSL_DAY_TIME_BAND_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr)) +#define sk_OSSL_DAY_TIME_BAND_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr)) +#define sk_OSSL_DAY_TIME_BAND_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr), pnum) +#define sk_OSSL_DAY_TIME_BAND_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk)) +#define sk_OSSL_DAY_TIME_BAND_dup(sk) ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_dup(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk))) +#define sk_OSSL_DAY_TIME_BAND_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_copyfunc_type(copyfunc), ossl_check_OSSL_DAY_TIME_BAND_freefunc_type(freefunc))) +#define sk_OSSL_DAY_TIME_BAND_set_cmp_func(sk, cmp) ((sk_OSSL_DAY_TIME_BAND_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_compfunc_type(cmp))) + + +/* Attribute Type and Value */ +typedef struct atav_st { + ASN1_OBJECT *type; + ASN1_TYPE *value; +} OSSL_ATAV; + +typedef struct ATTRIBUTE_TYPE_MAPPING_st { + ASN1_OBJECT *local; + ASN1_OBJECT *remote; +} OSSL_ATTRIBUTE_TYPE_MAPPING; + +typedef struct ATTRIBUTE_VALUE_MAPPING_st { + OSSL_ATAV *local; + OSSL_ATAV *remote; +} OSSL_ATTRIBUTE_VALUE_MAPPING; + +# define OSSL_ATTR_MAP_TYPE 0 +# define OSSL_ATTR_MAP_VALUE 1 + +typedef struct ATTRIBUTE_MAPPING_st { + int type; + union { + OSSL_ATTRIBUTE_TYPE_MAPPING *typeMappings; + OSSL_ATTRIBUTE_VALUE_MAPPING *typeValueMappings; + } choice; +} OSSL_ATTRIBUTE_MAPPING; + +typedef STACK_OF(OSSL_ATTRIBUTE_MAPPING) OSSL_ATTRIBUTE_MAPPINGS; +DECLARE_ASN1_FUNCTIONS(OSSL_ATAV) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_TYPE_MAPPING) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_VALUE_MAPPING) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_MAPPING) +DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_MAPPINGS) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ATTRIBUTE_MAPPING, OSSL_ATTRIBUTE_MAPPING, OSSL_ATTRIBUTE_MAPPING) +#define sk_OSSL_ATTRIBUTE_MAPPING_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_value(sk, idx) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_value(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), (idx))) +#define sk_OSSL_ATTRIBUTE_MAPPING_new(cmp) ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_new(ossl_check_OSSL_ATTRIBUTE_MAPPING_compfunc_type(cmp))) +#define sk_OSSL_ATTRIBUTE_MAPPING_new_null() ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ATTRIBUTE_MAPPING_new_reserve(cmp, n) ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ATTRIBUTE_MAPPING_compfunc_type(cmp), (n))) +#define sk_OSSL_ATTRIBUTE_MAPPING_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), (n)) +#define sk_OSSL_ATTRIBUTE_MAPPING_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_delete(sk, i) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_delete(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), (i))) +#define sk_OSSL_ATTRIBUTE_MAPPING_delete_ptr(sk, ptr) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr))) +#define sk_OSSL_ATTRIBUTE_MAPPING_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr)) +#define sk_OSSL_ATTRIBUTE_MAPPING_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr)) +#define sk_OSSL_ATTRIBUTE_MAPPING_pop(sk) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_pop(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk))) +#define sk_OSSL_ATTRIBUTE_MAPPING_shift(sk) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_shift(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk))) +#define sk_OSSL_ATTRIBUTE_MAPPING_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk),ossl_check_OSSL_ATTRIBUTE_MAPPING_freefunc_type(freefunc)) +#define sk_OSSL_ATTRIBUTE_MAPPING_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr), (idx)) +#define sk_OSSL_ATTRIBUTE_MAPPING_set(sk, idx, ptr) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_set(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), (idx), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr))) +#define sk_OSSL_ATTRIBUTE_MAPPING_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr)) +#define sk_OSSL_ATTRIBUTE_MAPPING_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr)) +#define sk_OSSL_ATTRIBUTE_MAPPING_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr), pnum) +#define sk_OSSL_ATTRIBUTE_MAPPING_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) +#define sk_OSSL_ATTRIBUTE_MAPPING_dup(sk) ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk))) +#define sk_OSSL_ATTRIBUTE_MAPPING_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_copyfunc_type(copyfunc), ossl_check_OSSL_ATTRIBUTE_MAPPING_freefunc_type(freefunc))) +#define sk_OSSL_ATTRIBUTE_MAPPING_set_cmp_func(sk, cmp) ((sk_OSSL_ATTRIBUTE_MAPPING_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_compfunc_type(cmp))) + + +# define OSSL_AAA_ATTRIBUTE_TYPE 0 +# define OSSL_AAA_ATTRIBUTE_VALUES 1 + +typedef struct ALLOWED_ATTRIBUTES_CHOICE_st { + int type; + union { + ASN1_OBJECT *attributeType; + X509_ATTRIBUTE *attributeTypeandValues; + } choice; +} OSSL_ALLOWED_ATTRIBUTES_CHOICE; + +typedef struct ALLOWED_ATTRIBUTES_ITEM_st { + STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *attributes; + GENERAL_NAME *holderDomain; +} OSSL_ALLOWED_ATTRIBUTES_ITEM; + +typedef STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) OSSL_ALLOWED_ATTRIBUTES_SYNTAX; + +DECLARE_ASN1_FUNCTIONS(OSSL_ALLOWED_ATTRIBUTES_CHOICE) +DECLARE_ASN1_FUNCTIONS(OSSL_ALLOWED_ATTRIBUTES_ITEM) +DECLARE_ASN1_FUNCTIONS(OSSL_ALLOWED_ATTRIBUTES_SYNTAX) + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ALLOWED_ATTRIBUTES_CHOICE, OSSL_ALLOWED_ATTRIBUTES_CHOICE, OSSL_ALLOWED_ATTRIBUTES_CHOICE) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_value(sk, idx) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_value(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), (idx))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_new(cmp) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_new(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_compfunc_type(cmp))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_new_null() ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_new_reserve(cmp, n) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_compfunc_type(cmp), (n))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), (n)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_delete(sk, i) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_delete(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), (i))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_delete_ptr(sk, ptr) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_pop(sk) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_pop(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_shift(sk) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_shift(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk),ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_freefunc_type(freefunc)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr), (idx)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_set(sk, idx, ptr) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_set(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), (idx), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr), pnum) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_dup(sk) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_copyfunc_type(copyfunc), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_freefunc_type(freefunc))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_set_cmp_func(sk, cmp) ((sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_compfunc_type(cmp))) + + +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ALLOWED_ATTRIBUTES_ITEM, OSSL_ALLOWED_ATTRIBUTES_ITEM, OSSL_ALLOWED_ATTRIBUTES_ITEM) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_value(sk, idx) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_value(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), (idx))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_new(cmp) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_new(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_compfunc_type(cmp))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_new_null() ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_new_null()) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_new_reserve(cmp, n) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_compfunc_type(cmp), (n))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), (n)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_delete(sk, i) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_delete(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), (i))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_delete_ptr(sk, ptr) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_pop(sk) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_pop(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_shift(sk) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_shift(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk),ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_freefunc_type(freefunc)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr), (idx)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_set(sk, idx, ptr) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_set(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), (idx), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr), pnum) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_dup(sk) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_copyfunc_type(copyfunc), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_freefunc_type(freefunc))) +#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_set_cmp_func(sk, cmp) ((sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_compfunc_type(cmp))) + + +typedef struct AA_DIST_POINT_st { + DIST_POINT_NAME *distpoint; + ASN1_BIT_STRING *reasons; + int dp_reasons; + ASN1_BOOLEAN indirectCRL; + ASN1_BOOLEAN containsUserAttributeCerts; + ASN1_BOOLEAN containsAACerts; + ASN1_BOOLEAN containsSOAPublicKeyCerts; +} OSSL_AA_DIST_POINT; + +DECLARE_ASN1_FUNCTIONS(OSSL_AA_DIST_POINT) + # ifdef __cplusplus } # endif diff --git a/deps/openssl/config/archs/linux-elf/asm_avx2/include/progs.h b/deps/openssl/config/archs/linux-elf/asm_avx2/include/progs.h index be55f61503d405..1b62ec37dec130 100644 --- a/deps/openssl/config/archs/linux-elf/asm_avx2/include/progs.h +++ b/deps/openssl/config/archs/linux-elf/asm_avx2/include/progs.h @@ -56,6 +56,7 @@ extern int s_client_main(int argc, char *argv[]); extern int s_server_main(int argc, char *argv[]); extern int s_time_main(int argc, char *argv[]); extern int sess_id_main(int argc, char *argv[]); +extern int skeyutl_main(int argc, char *argv[]); extern int smime_main(int argc, char *argv[]); extern int speed_main(int argc, char *argv[]); extern int spkac_main(int argc, char *argv[]); @@ -110,6 +111,7 @@ extern const OPTIONS s_client_options[]; extern const OPTIONS s_server_options[]; extern const OPTIONS s_time_options[]; extern const OPTIONS sess_id_options[]; +extern const OPTIONS skeyutl_options[]; extern const OPTIONS smime_options[]; extern const OPTIONS speed_options[]; extern const OPTIONS spkac_options[]; diff --git a/deps/openssl/config/archs/linux-elf/asm_avx2/openssl-cl.gypi b/deps/openssl/config/archs/linux-elf/asm_avx2/openssl-cl.gypi index 4e2c60206e2c21..e6a3ba9e938de5 100644 --- a/deps/openssl/config/archs/linux-elf/asm_avx2/openssl-cl.gypi +++ b/deps/openssl/config/archs/linux-elf/asm_avx2/openssl-cl.gypi @@ -83,6 +83,7 @@ 'openssl/apps/s_server.c', 'openssl/apps/s_time.c', 'openssl/apps/sess_id.c', + 'openssl/apps/skeyutl.c', 'openssl/apps/smime.c', 'openssl/apps/speed.c', 'openssl/apps/spkac.c', @@ -98,12 +99,14 @@ 'openssl/apps/lib/app_rand.c', 'openssl/apps/lib/app_x509.c', 'openssl/apps/lib/apps.c', + 'openssl/apps/lib/apps_opt_printf.c', 'openssl/apps/lib/apps_ui.c', 'openssl/apps/lib/columns.c', 'openssl/apps/lib/engine.c', 'openssl/apps/lib/engine_loader.c', 'openssl/apps/lib/fmt.c', 'openssl/apps/lib/http_server.c', + 'openssl/apps/lib/log.c', 'openssl/apps/lib/names.c', 'openssl/apps/lib/opt.c', 'openssl/apps/lib/s_cb.c', diff --git a/deps/openssl/config/archs/linux-elf/asm_avx2/openssl-fips.gypi b/deps/openssl/config/archs/linux-elf/asm_avx2/openssl-fips.gypi index d54f35535931b5..eebbb61741603d 100644 --- a/deps/openssl/config/archs/linux-elf/asm_avx2/openssl-fips.gypi +++ b/deps/openssl/config/archs/linux-elf/asm_avx2/openssl-fips.gypi @@ -96,14 +96,15 @@ 'openssl/crypto/evp/kem.c', 'openssl/crypto/evp/keymgmt_lib.c', 'openssl/crypto/evp/keymgmt_meth.c', - 'openssl/crypto/evp/m_sigver.c', 'openssl/crypto/evp/mac_lib.c', 'openssl/crypto/evp/mac_meth.c', 'openssl/crypto/evp/p_lib.c', 'openssl/crypto/evp/pmeth_check.c', 'openssl/crypto/evp/pmeth_gn.c', 'openssl/crypto/evp/pmeth_lib.c', + 'openssl/crypto/evp/s_lib.c', 'openssl/crypto/evp/signature.c', + 'openssl/crypto/evp/skeymgmt_meth.c', 'openssl/crypto/ffc/ffc_backend.c', 'openssl/crypto/ffc/ffc_dh.c', 'openssl/crypto/ffc/ffc_key_generate.c', @@ -111,6 +112,8 @@ 'openssl/crypto/ffc/ffc_params.c', 'openssl/crypto/ffc/ffc_params_generate.c', 'openssl/crypto/ffc/ffc_params_validate.c', + 'openssl/crypto/hashtable/hashfunc.c', + 'openssl/crypto/hashtable/hashtable.c', 'openssl/crypto/hmac/hmac.c', 'openssl/crypto/lhash/lhash.c', 'openssl/crypto/asn1_dsa.c', @@ -140,6 +143,16 @@ 'openssl/crypto/threads_none.c', 'openssl/crypto/threads_pthread.c', 'openssl/crypto/threads_win.c', + 'openssl/crypto/time.c', + 'openssl/crypto/ml_dsa/ml_dsa_encoders.c', + 'openssl/crypto/ml_dsa/ml_dsa_key.c', + 'openssl/crypto/ml_dsa/ml_dsa_key_compress.c', + 'openssl/crypto/ml_dsa/ml_dsa_matrix.c', + 'openssl/crypto/ml_dsa/ml_dsa_ntt.c', + 'openssl/crypto/ml_dsa/ml_dsa_params.c', + 'openssl/crypto/ml_dsa/ml_dsa_sample.c', + 'openssl/crypto/ml_dsa/ml_dsa_sign.c', + 'openssl/crypto/ml_kem/ml_kem.c', 'openssl/crypto/modes/cbc128.c', 'openssl/crypto/modes/ccm128.c', 'openssl/crypto/modes/cfb128.c', @@ -148,6 +161,7 @@ 'openssl/crypto/modes/ofb128.c', 'openssl/crypto/modes/wrap128.c', 'openssl/crypto/modes/xts128.c', + 'openssl/crypto/modes/xts128gb.c', 'openssl/crypto/property/defn_cache.c', 'openssl/crypto/property/property.c', 'openssl/crypto/property/property_parse.c', @@ -176,7 +190,23 @@ 'openssl/crypto/sha/sha256.c', 'openssl/crypto/sha/sha3.c', 'openssl/crypto/sha/sha512.c', + 'openssl/crypto/slh_dsa/slh_adrs.c', + 'openssl/crypto/slh_dsa/slh_dsa.c', + 'openssl/crypto/slh_dsa/slh_dsa_hash_ctx.c', + 'openssl/crypto/slh_dsa/slh_dsa_key.c', + 'openssl/crypto/slh_dsa/slh_fors.c', + 'openssl/crypto/slh_dsa/slh_hash.c', + 'openssl/crypto/slh_dsa/slh_hypertree.c', + 'openssl/crypto/slh_dsa/slh_params.c', + 'openssl/crypto/slh_dsa/slh_wots.c', + 'openssl/crypto/slh_dsa/slh_xmss.c', 'openssl/crypto/stack/stack.c', + 'openssl/crypto/thread/arch/thread_none.c', + 'openssl/crypto/thread/arch/thread_posix.c', + 'openssl/crypto/thread/arch/thread_win.c', + 'openssl/crypto/thread/api.c', + 'openssl/crypto/thread/arch.c', + 'openssl/crypto/thread/internal.c', 'openssl/providers/common/der/der_rsa_sig.c', 'openssl/providers/common/bio_prov.c', 'openssl/providers/common/capabilities.c', @@ -185,6 +215,7 @@ 'openssl/providers/common/provider_util.c', 'openssl/providers/common/securitycheck.c', 'openssl/providers/common/securitycheck_fips.c', + 'openssl/providers/fips/fipsindicator.c', 'openssl/providers/fips/fipsprov.c', 'openssl/providers/fips/self_test.c', 'openssl/providers/fips/self_test_kats.c', @@ -222,6 +253,8 @@ 'openssl/providers/implementations/kdfs/sskdf.c', 'openssl/providers/implementations/kdfs/tls1_prf.c', 'openssl/providers/implementations/kdfs/x942kdf.c', + 'openssl/providers/implementations/kem/ml_kem_kem.c', + 'openssl/providers/implementations/kem/mlx_kem.c', 'openssl/providers/implementations/kem/rsa_kem.c', 'openssl/providers/implementations/keymgmt/dh_kmgmt.c', 'openssl/providers/implementations/keymgmt/dsa_kmgmt.c', @@ -229,29 +262,39 @@ 'openssl/providers/implementations/keymgmt/ecx_kmgmt.c', 'openssl/providers/implementations/keymgmt/kdf_legacy_kmgmt.c', 'openssl/providers/implementations/keymgmt/mac_legacy_kmgmt.c', + 'openssl/providers/implementations/keymgmt/ml_dsa_kmgmt.c', + 'openssl/providers/implementations/keymgmt/ml_kem_kmgmt.c', + 'openssl/providers/implementations/keymgmt/mlx_kmgmt.c', 'openssl/providers/implementations/keymgmt/rsa_kmgmt.c', + 'openssl/providers/implementations/keymgmt/slh_dsa_kmgmt.c', 'openssl/providers/implementations/macs/cmac_prov.c', 'openssl/providers/implementations/macs/gmac_prov.c', 'openssl/providers/implementations/macs/hmac_prov.c', 'openssl/providers/implementations/macs/kmac_prov.c', - 'openssl/providers/implementations/rands/crngt.c', 'openssl/providers/implementations/rands/drbg.c', 'openssl/providers/implementations/rands/drbg_ctr.c', 'openssl/providers/implementations/rands/drbg_hash.c', 'openssl/providers/implementations/rands/drbg_hmac.c', + 'openssl/providers/implementations/rands/fips_crng_test.c', 'openssl/providers/implementations/rands/test_rng.c', 'openssl/providers/implementations/signature/dsa_sig.c', 'openssl/providers/implementations/signature/ecdsa_sig.c', 'openssl/providers/implementations/signature/eddsa_sig.c', 'openssl/providers/implementations/signature/mac_legacy_sig.c', + 'openssl/providers/implementations/signature/ml_dsa_sig.c', 'openssl/providers/implementations/signature/rsa_sig.c', - 'openssl/ssl/s3_cbc.c', + 'openssl/providers/implementations/signature/slh_dsa_sig.c', + 'openssl/providers/implementations/skeymgmt/aes_skmgmt.c', + 'openssl/providers/implementations/skeymgmt/generic.c', + 'openssl/ssl/record/methods/ssl3_cbc.c', 'openssl/providers/common/der/der_dsa_key.c', 'openssl/providers/common/der/der_dsa_sig.c', 'openssl/providers/common/der/der_ec_key.c', 'openssl/providers/common/der/der_ec_sig.c', 'openssl/providers/common/der/der_ecx_key.c', + 'openssl/providers/common/der/der_ml_dsa_key.c', 'openssl/providers/common/der/der_rsa_key.c', + 'openssl/providers/common/der/der_slh_dsa_key.c', 'openssl/providers/common/provider_ctx.c', 'openssl/providers/common/provider_err.c', 'openssl/providers/implementations/ciphers/ciphercommon.c', @@ -262,7 +305,7 @@ 'openssl/providers/implementations/ciphers/ciphercommon_gcm_hw.c', 'openssl/providers/implementations/ciphers/ciphercommon_hw.c', 'openssl/providers/implementations/digests/digestcommon.c', - 'openssl/ssl/record/tls_pad.c', + 'openssl/ssl/record/methods/tls_pad.c', 'openssl/providers/fips/fips_entry.c', ], @@ -280,6 +323,7 @@ './config/archs/linux-elf/asm_avx2/crypto/des/crypt586.S', './config/archs/linux-elf/asm_avx2/crypto/des/des-586.S', './config/archs/linux-elf/asm_avx2/crypto/ec/ecp_nistz256-x86.S', + './config/archs/linux-elf/asm_avx2/crypto/params_idx.c', './config/archs/linux-elf/asm_avx2/crypto/x86cpuid.S', './config/archs/linux-elf/asm_avx2/crypto/md5/md5-586.S', './config/archs/linux-elf/asm_avx2/crypto/modes/ghash-x86.S', @@ -296,7 +340,9 @@ './config/archs/linux-elf/asm_avx2/providers/common/der/der_dsa_gen.c', './config/archs/linux-elf/asm_avx2/providers/common/der/der_ec_gen.c', './config/archs/linux-elf/asm_avx2/providers/common/der/der_ecx_gen.c', + './config/archs/linux-elf/asm_avx2/providers/common/der/der_ml_dsa_gen.c', './config/archs/linux-elf/asm_avx2/providers/common/der/der_rsa_gen.c', + './config/archs/linux-elf/asm_avx2/providers/common/der/der_slh_dsa_gen.c', './config/archs/linux-elf/asm_avx2/providers/common/der/der_wrap_gen.c', './config/archs/linux-elf/asm_avx2/providers/legacy.ld', './config/archs/linux-elf/asm_avx2/providers/fips.ld', diff --git a/deps/openssl/config/archs/linux-elf/asm_avx2/openssl.gypi b/deps/openssl/config/archs/linux-elf/asm_avx2/openssl.gypi index a0ce9ab8dcae98..2b023fa95d57be 100644 --- a/deps/openssl/config/archs/linux-elf/asm_avx2/openssl.gypi +++ b/deps/openssl/config/archs/linux-elf/asm_avx2/openssl.gypi @@ -7,14 +7,15 @@ 'openssl/ssl/d1_srtp.c', 'openssl/ssl/methods.c', 'openssl/ssl/pqueue.c', + 'openssl/ssl/priority_queue.c', 'openssl/ssl/s3_enc.c', 'openssl/ssl/s3_lib.c', 'openssl/ssl/s3_msg.c', 'openssl/ssl/ssl_asn1.c', 'openssl/ssl/ssl_cert.c', + 'openssl/ssl/ssl_cert_comp.c', 'openssl/ssl/ssl_ciph.c', 'openssl/ssl/ssl_conf.c', - 'openssl/ssl/ssl_err.c', 'openssl/ssl/ssl_err_legacy.c', 'openssl/ssl/ssl_init.c', 'openssl/ssl/ssl_lib.c', @@ -31,12 +32,60 @@ 'openssl/ssl/tls13_enc.c', 'openssl/ssl/tls_depr.c', 'openssl/ssl/tls_srp.c', - 'openssl/ssl/record/dtls1_bitmap.c', + 'openssl/ssl/quic/cc_newreno.c', + 'openssl/ssl/quic/json_enc.c', + 'openssl/ssl/quic/qlog.c', + 'openssl/ssl/quic/qlog_event_helpers.c', + 'openssl/ssl/quic/quic_ackm.c', + 'openssl/ssl/quic/quic_cfq.c', + 'openssl/ssl/quic/quic_channel.c', + 'openssl/ssl/quic/quic_demux.c', + 'openssl/ssl/quic/quic_engine.c', + 'openssl/ssl/quic/quic_fc.c', + 'openssl/ssl/quic/quic_fifd.c', + 'openssl/ssl/quic/quic_impl.c', + 'openssl/ssl/quic/quic_lcidm.c', + 'openssl/ssl/quic/quic_method.c', + 'openssl/ssl/quic/quic_obj.c', + 'openssl/ssl/quic/quic_port.c', + 'openssl/ssl/quic/quic_rcidm.c', + 'openssl/ssl/quic/quic_reactor.c', + 'openssl/ssl/quic/quic_reactor_wait_ctx.c', + 'openssl/ssl/quic/quic_record_rx.c', + 'openssl/ssl/quic/quic_record_shared.c', + 'openssl/ssl/quic/quic_record_tx.c', + 'openssl/ssl/quic/quic_record_util.c', + 'openssl/ssl/quic/quic_rstream.c', + 'openssl/ssl/quic/quic_rx_depack.c', + 'openssl/ssl/quic/quic_sf_list.c', + 'openssl/ssl/quic/quic_srt_gen.c', + 'openssl/ssl/quic/quic_srtm.c', + 'openssl/ssl/quic/quic_sstream.c', + 'openssl/ssl/quic/quic_statm.c', + 'openssl/ssl/quic/quic_stream_map.c', + 'openssl/ssl/quic/quic_thread_assist.c', + 'openssl/ssl/quic/quic_tls.c', + 'openssl/ssl/quic/quic_tls_api.c', + 'openssl/ssl/quic/quic_trace.c', + 'openssl/ssl/quic/quic_tserver.c', + 'openssl/ssl/quic/quic_txp.c', + 'openssl/ssl/quic/quic_txpim.c', + 'openssl/ssl/quic/quic_types.c', + 'openssl/ssl/quic/quic_wire.c', + 'openssl/ssl/quic/quic_wire_pkt.c', + 'openssl/ssl/quic/uint_set.c', 'openssl/ssl/record/rec_layer_d1.c', 'openssl/ssl/record/rec_layer_s3.c', - 'openssl/ssl/record/ssl3_buffer.c', - 'openssl/ssl/record/ssl3_record.c', - 'openssl/ssl/record/ssl3_record_tls13.c', + 'openssl/ssl/record/methods/dtls_meth.c', + 'openssl/ssl/record/methods/ssl3_meth.c', + 'openssl/ssl/record/methods/tls13_meth.c', + 'openssl/ssl/record/methods/tls1_meth.c', + 'openssl/ssl/record/methods/tls_common.c', + 'openssl/ssl/record/methods/tls_multib.c', + 'openssl/ssl/record/methods/tlsany_meth.c', + 'openssl/ssl/rio/poll_builder.c', + 'openssl/ssl/rio/poll_immediate.c', + 'openssl/ssl/rio/rio_notifier.c', 'openssl/ssl/statem/extensions.c', 'openssl/ssl/statem/extensions_clnt.c', 'openssl/ssl/statem/extensions_cust.c', @@ -147,6 +196,7 @@ 'openssl/crypto/bio/bss_conn.c', 'openssl/crypto/bio/bss_core.c', 'openssl/crypto/bio/bss_dgram.c', + 'openssl/crypto/bio/bss_dgram_pair.c', 'openssl/crypto/bio/bss_fd.c', 'openssl/crypto/bio/bss_file.c', 'openssl/crypto/bio/bss_log.c', @@ -202,6 +252,7 @@ 'openssl/crypto/cmp/cmp_client.c', 'openssl/crypto/cmp/cmp_ctx.c', 'openssl/crypto/cmp/cmp_err.c', + 'openssl/crypto/cmp/cmp_genm.c', 'openssl/crypto/cmp/cmp_hdr.c', 'openssl/crypto/cmp/cmp_http.c', 'openssl/crypto/cmp/cmp_msg.c', @@ -376,7 +427,9 @@ 'openssl/crypto/err/err_all.c', 'openssl/crypto/err/err_all_legacy.c', 'openssl/crypto/err/err_blocks.c', + 'openssl/crypto/err/err_mark.c', 'openssl/crypto/err/err_prn.c', + 'openssl/crypto/err/err_save.c', 'openssl/crypto/ess/ess_asn1.c', 'openssl/crypto/ess/ess_err.c', 'openssl/crypto/ess/ess_lib.c', @@ -459,7 +512,9 @@ 'openssl/crypto/evp/pmeth_check.c', 'openssl/crypto/evp/pmeth_gn.c', 'openssl/crypto/evp/pmeth_lib.c', + 'openssl/crypto/evp/s_lib.c', 'openssl/crypto/evp/signature.c', + 'openssl/crypto/evp/skeymgmt_meth.c', 'openssl/crypto/ffc/ffc_backend.c', 'openssl/crypto/ffc/ffc_dh.c', 'openssl/crypto/ffc/ffc_key_generate.c', @@ -467,7 +522,11 @@ 'openssl/crypto/ffc/ffc_params.c', 'openssl/crypto/ffc/ffc_params_generate.c', 'openssl/crypto/ffc/ffc_params_validate.c', + 'openssl/crypto/hashtable/hashfunc.c', + 'openssl/crypto/hashtable/hashtable.c', 'openssl/crypto/hmac/hmac.c', + 'openssl/crypto/hpke/hpke.c', + 'openssl/crypto/hpke/hpke_util.c', 'openssl/crypto/http/http_client.c', 'openssl/crypto/http/http_err.c', 'openssl/crypto/http/http_lib.c', @@ -481,6 +540,7 @@ 'openssl/crypto/lhash/lhash.c', 'openssl/crypto/asn1_dsa.c', 'openssl/crypto/bsearch.c', + 'openssl/crypto/comp_methods.c', 'openssl/crypto/context.c', 'openssl/crypto/core_algorithm.c', 'openssl/crypto/core_fetch.c', @@ -490,10 +550,13 @@ 'openssl/crypto/cryptlib.c', 'openssl/crypto/ctype.c', 'openssl/crypto/cversion.c', + 'openssl/crypto/defaults.c', 'openssl/crypto/der_writer.c', + 'openssl/crypto/deterministic_nonce.c', 'openssl/crypto/ebcdic.c', 'openssl/crypto/ex_data.c', 'openssl/crypto/getenv.c', + 'openssl/crypto/indicator_core.c', 'openssl/crypto/info.c', 'openssl/crypto/init.c', 'openssl/crypto/initthread.c', @@ -517,12 +580,16 @@ 'openssl/crypto/provider_core.c', 'openssl/crypto/provider_predefined.c', 'openssl/crypto/punycode.c', + 'openssl/crypto/quic_vlint.c', 'openssl/crypto/self_test_core.c', + 'openssl/crypto/sleep.c', 'openssl/crypto/sparse_array.c', + 'openssl/crypto/ssl_err.c', 'openssl/crypto/threads_lib.c', 'openssl/crypto/threads_none.c', 'openssl/crypto/threads_pthread.c', 'openssl/crypto/threads_win.c', + 'openssl/crypto/time.c', 'openssl/crypto/trace.c', 'openssl/crypto/uid.c', 'openssl/crypto/md4/md4_dgst.c', @@ -532,6 +599,15 @@ 'openssl/crypto/md5/md5_sha1.c', 'openssl/crypto/mdc2/mdc2_one.c', 'openssl/crypto/mdc2/mdc2dgst.c', + 'openssl/crypto/ml_dsa/ml_dsa_encoders.c', + 'openssl/crypto/ml_dsa/ml_dsa_key.c', + 'openssl/crypto/ml_dsa/ml_dsa_key_compress.c', + 'openssl/crypto/ml_dsa/ml_dsa_matrix.c', + 'openssl/crypto/ml_dsa/ml_dsa_ntt.c', + 'openssl/crypto/ml_dsa/ml_dsa_params.c', + 'openssl/crypto/ml_dsa/ml_dsa_sample.c', + 'openssl/crypto/ml_dsa/ml_dsa_sign.c', + 'openssl/crypto/ml_kem/ml_kem.c', 'openssl/crypto/modes/cbc128.c', 'openssl/crypto/modes/ccm128.c', 'openssl/crypto/modes/cfb128.c', @@ -543,6 +619,7 @@ 'openssl/crypto/modes/siv128.c', 'openssl/crypto/modes/wrap128.c', 'openssl/crypto/modes/xts128.c', + 'openssl/crypto/modes/xts128gb.c', 'openssl/crypto/objects/o_names.c', 'openssl/crypto/objects/obj_dat.c', 'openssl/crypto/objects/obj_err.c', @@ -606,6 +683,7 @@ 'openssl/crypto/rand/rand_lib.c', 'openssl/crypto/rand/rand_meth.c', 'openssl/crypto/rand/rand_pool.c', + 'openssl/crypto/rand/rand_uniform.c', 'openssl/crypto/rand/randfile.c', 'openssl/crypto/rc2/rc2_cbc.c', 'openssl/crypto/rc2/rc2_ecb.c', @@ -652,6 +730,16 @@ 'openssl/crypto/sha/sha3.c', 'openssl/crypto/sha/sha512.c', 'openssl/crypto/siphash/siphash.c', + 'openssl/crypto/slh_dsa/slh_adrs.c', + 'openssl/crypto/slh_dsa/slh_dsa.c', + 'openssl/crypto/slh_dsa/slh_dsa_hash_ctx.c', + 'openssl/crypto/slh_dsa/slh_dsa_key.c', + 'openssl/crypto/slh_dsa/slh_fors.c', + 'openssl/crypto/slh_dsa/slh_hash.c', + 'openssl/crypto/slh_dsa/slh_hypertree.c', + 'openssl/crypto/slh_dsa/slh_params.c', + 'openssl/crypto/slh_dsa/slh_wots.c', + 'openssl/crypto/slh_dsa/slh_xmss.c', 'openssl/crypto/sm2/sm2_crypt.c', 'openssl/crypto/sm2/sm2_err.c', 'openssl/crypto/sm2/sm2_key.c', @@ -669,6 +757,12 @@ 'openssl/crypto/store/store_register.c', 'openssl/crypto/store/store_result.c', 'openssl/crypto/store/store_strings.c', + 'openssl/crypto/thread/arch/thread_none.c', + 'openssl/crypto/thread/arch/thread_posix.c', + 'openssl/crypto/thread/arch/thread_win.c', + 'openssl/crypto/thread/api.c', + 'openssl/crypto/thread/arch.c', + 'openssl/crypto/thread/internal.c', 'openssl/crypto/ts/ts_asn1.c', 'openssl/crypto/ts/ts_conf.c', 'openssl/crypto/ts/ts_err.c', @@ -697,14 +791,22 @@ 'openssl/crypto/x509/pcy_map.c', 'openssl/crypto/x509/pcy_node.c', 'openssl/crypto/x509/pcy_tree.c', + 'openssl/crypto/x509/t_acert.c', 'openssl/crypto/x509/t_crl.c', 'openssl/crypto/x509/t_req.c', 'openssl/crypto/x509/t_x509.c', + 'openssl/crypto/x509/v3_aaa.c', + 'openssl/crypto/x509/v3_ac_tgt.c', 'openssl/crypto/x509/v3_addr.c', 'openssl/crypto/x509/v3_admis.c', 'openssl/crypto/x509/v3_akeya.c', 'openssl/crypto/x509/v3_akid.c', 'openssl/crypto/x509/v3_asid.c', + 'openssl/crypto/x509/v3_attrdesc.c', + 'openssl/crypto/x509/v3_attrmap.c', + 'openssl/crypto/x509/v3_audit_id.c', + 'openssl/crypto/x509/v3_authattid.c', + 'openssl/crypto/x509/v3_battcons.c', 'openssl/crypto/x509/v3_bcons.c', 'openssl/crypto/x509/v3_bitst.c', 'openssl/crypto/x509/v3_conf.c', @@ -713,12 +815,17 @@ 'openssl/crypto/x509/v3_enum.c', 'openssl/crypto/x509/v3_extku.c', 'openssl/crypto/x509/v3_genn.c', + 'openssl/crypto/x509/v3_group_ac.c', 'openssl/crypto/x509/v3_ia5.c', + 'openssl/crypto/x509/v3_ind_iss.c', 'openssl/crypto/x509/v3_info.c', 'openssl/crypto/x509/v3_int.c', + 'openssl/crypto/x509/v3_iobo.c', 'openssl/crypto/x509/v3_ist.c', 'openssl/crypto/x509/v3_lib.c', 'openssl/crypto/x509/v3_ncons.c', + 'openssl/crypto/x509/v3_no_ass.c', + 'openssl/crypto/x509/v3_no_rev_avail.c', 'openssl/crypto/x509/v3_pci.c', 'openssl/crypto/x509/v3_pcia.c', 'openssl/crypto/x509/v3_pcons.c', @@ -726,13 +833,20 @@ 'openssl/crypto/x509/v3_pmaps.c', 'openssl/crypto/x509/v3_prn.c', 'openssl/crypto/x509/v3_purp.c', + 'openssl/crypto/x509/v3_rolespec.c', 'openssl/crypto/x509/v3_san.c', + 'openssl/crypto/x509/v3_sda.c', + 'openssl/crypto/x509/v3_single_use.c', 'openssl/crypto/x509/v3_skid.c', + 'openssl/crypto/x509/v3_soa_id.c', 'openssl/crypto/x509/v3_sxnet.c', + 'openssl/crypto/x509/v3_timespec.c', 'openssl/crypto/x509/v3_tlsf.c', + 'openssl/crypto/x509/v3_usernotice.c', 'openssl/crypto/x509/v3_utf8.c', 'openssl/crypto/x509/v3_utl.c', 'openssl/crypto/x509/v3err.c', + 'openssl/crypto/x509/x509_acert.c', 'openssl/crypto/x509/x509_att.c', 'openssl/crypto/x509/x509_cmp.c', 'openssl/crypto/x509/x509_d2.c', @@ -750,6 +864,7 @@ 'openssl/crypto/x509/x509_v3.c', 'openssl/crypto/x509/x509_vfy.c', 'openssl/crypto/x509/x509_vpm.c', + 'openssl/crypto/x509/x509aset.c', 'openssl/crypto/x509/x509cset.c', 'openssl/crypto/x509/x509name.c', 'openssl/crypto/x509/x509rset.c', @@ -759,6 +874,7 @@ 'openssl/crypto/x509/x_attrib.c', 'openssl/crypto/x509/x_crl.c', 'openssl/crypto/x509/x_exten.c', + 'openssl/crypto/x509/x_ietfatt.c', 'openssl/crypto/x509/x_name.c', 'openssl/crypto/x509/x_pubkey.c', 'openssl/crypto/x509/x_req.c', @@ -790,6 +906,9 @@ 'openssl/providers/implementations/ciphers/cipher_aes_ccm_hw.c', 'openssl/providers/implementations/ciphers/cipher_aes_gcm.c', 'openssl/providers/implementations/ciphers/cipher_aes_gcm_hw.c', + 'openssl/providers/implementations/ciphers/cipher_aes_gcm_siv.c', + 'openssl/providers/implementations/ciphers/cipher_aes_gcm_siv_hw.c', + 'openssl/providers/implementations/ciphers/cipher_aes_gcm_siv_polyval.c', 'openssl/providers/implementations/ciphers/cipher_aes_hw.c', 'openssl/providers/implementations/ciphers/cipher_aes_ocb.c', 'openssl/providers/implementations/ciphers/cipher_aes_ocb_hw.c', @@ -814,7 +933,13 @@ 'openssl/providers/implementations/ciphers/cipher_cts.c', 'openssl/providers/implementations/ciphers/cipher_null.c', 'openssl/providers/implementations/ciphers/cipher_sm4.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_ccm.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_ccm_hw.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_gcm.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_gcm_hw.c', 'openssl/providers/implementations/ciphers/cipher_sm4_hw.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_xts.c', + 'openssl/providers/implementations/ciphers/cipher_sm4_xts_hw.c', 'openssl/providers/implementations/ciphers/cipher_tdes.c', 'openssl/providers/implementations/ciphers/cipher_tdes_common.c', 'openssl/providers/implementations/ciphers/cipher_tdes_default.c', @@ -843,11 +968,16 @@ 'openssl/providers/implementations/encode_decode/encode_key2ms.c', 'openssl/providers/implementations/encode_decode/encode_key2text.c', 'openssl/providers/implementations/encode_decode/endecoder_common.c', + 'openssl/providers/implementations/encode_decode/ml_common_codecs.c', + 'openssl/providers/implementations/encode_decode/ml_dsa_codecs.c', + 'openssl/providers/implementations/encode_decode/ml_kem_codecs.c', 'openssl/providers/implementations/exchange/dh_exch.c', 'openssl/providers/implementations/exchange/ecdh_exch.c', 'openssl/providers/implementations/exchange/ecx_exch.c', 'openssl/providers/implementations/exchange/kdf_exch.c', + 'openssl/providers/implementations/kdfs/argon2.c', 'openssl/providers/implementations/kdfs/hkdf.c', + 'openssl/providers/implementations/kdfs/hmacdrbg_kdf.c', 'openssl/providers/implementations/kdfs/kbkdf.c', 'openssl/providers/implementations/kdfs/krb5kdf.c', 'openssl/providers/implementations/kdfs/pbkdf2.c', @@ -858,6 +988,11 @@ 'openssl/providers/implementations/kdfs/sskdf.c', 'openssl/providers/implementations/kdfs/tls1_prf.c', 'openssl/providers/implementations/kdfs/x942kdf.c', + 'openssl/providers/implementations/kem/ec_kem.c', + 'openssl/providers/implementations/kem/ecx_kem.c', + 'openssl/providers/implementations/kem/kem_util.c', + 'openssl/providers/implementations/kem/ml_kem_kem.c', + 'openssl/providers/implementations/kem/mlx_kem.c', 'openssl/providers/implementations/kem/rsa_kem.c', 'openssl/providers/implementations/keymgmt/dh_kmgmt.c', 'openssl/providers/implementations/keymgmt/dsa_kmgmt.c', @@ -865,7 +1000,11 @@ 'openssl/providers/implementations/keymgmt/ecx_kmgmt.c', 'openssl/providers/implementations/keymgmt/kdf_legacy_kmgmt.c', 'openssl/providers/implementations/keymgmt/mac_legacy_kmgmt.c', + 'openssl/providers/implementations/keymgmt/ml_dsa_kmgmt.c', + 'openssl/providers/implementations/keymgmt/ml_kem_kmgmt.c', + 'openssl/providers/implementations/keymgmt/mlx_kmgmt.c', 'openssl/providers/implementations/keymgmt/rsa_kmgmt.c', + 'openssl/providers/implementations/keymgmt/slh_dsa_kmgmt.c', 'openssl/providers/implementations/macs/blake2b_mac.c', 'openssl/providers/implementations/macs/blake2s_mac.c', 'openssl/providers/implementations/macs/cmac_prov.c', @@ -874,12 +1013,12 @@ 'openssl/providers/implementations/macs/kmac_prov.c', 'openssl/providers/implementations/macs/poly1305_prov.c', 'openssl/providers/implementations/macs/siphash_prov.c', - 'openssl/providers/implementations/rands/crngt.c', 'openssl/providers/implementations/rands/drbg.c', 'openssl/providers/implementations/rands/drbg_ctr.c', 'openssl/providers/implementations/rands/drbg_hash.c', 'openssl/providers/implementations/rands/drbg_hmac.c', 'openssl/providers/implementations/rands/seed_src.c', + 'openssl/providers/implementations/rands/seed_src_jitter.c', 'openssl/providers/implementations/rands/test_rng.c', 'openssl/providers/implementations/rands/seeding/rand_cpu_x86.c', 'openssl/providers/implementations/rands/seeding/rand_tsc.c', @@ -889,17 +1028,23 @@ 'openssl/providers/implementations/signature/ecdsa_sig.c', 'openssl/providers/implementations/signature/eddsa_sig.c', 'openssl/providers/implementations/signature/mac_legacy_sig.c', + 'openssl/providers/implementations/signature/ml_dsa_sig.c', 'openssl/providers/implementations/signature/rsa_sig.c', + 'openssl/providers/implementations/signature/slh_dsa_sig.c', 'openssl/providers/implementations/signature/sm2_sig.c', + 'openssl/providers/implementations/skeymgmt/aes_skmgmt.c', + 'openssl/providers/implementations/skeymgmt/generic.c', 'openssl/providers/implementations/storemgmt/file_store.c', 'openssl/providers/implementations/storemgmt/file_store_any2obj.c', - 'openssl/ssl/s3_cbc.c', + 'openssl/ssl/record/methods/ssl3_cbc.c', 'openssl/providers/common/der/der_dsa_key.c', 'openssl/providers/common/der/der_dsa_sig.c', 'openssl/providers/common/der/der_ec_key.c', 'openssl/providers/common/der/der_ec_sig.c', 'openssl/providers/common/der/der_ecx_key.c', + 'openssl/providers/common/der/der_ml_dsa_key.c', 'openssl/providers/common/der/der_rsa_key.c', + 'openssl/providers/common/der/der_slh_dsa_key.c', 'openssl/providers/common/provider_ctx.c', 'openssl/providers/common/provider_err.c', 'openssl/providers/implementations/ciphers/ciphercommon.c', @@ -910,7 +1055,7 @@ 'openssl/providers/implementations/ciphers/ciphercommon_gcm_hw.c', 'openssl/providers/implementations/ciphers/ciphercommon_hw.c', 'openssl/providers/implementations/digests/digestcommon.c', - 'openssl/ssl/record/tls_pad.c', + 'openssl/ssl/record/methods/tls_pad.c', 'openssl/providers/implementations/ciphers/cipher_blowfish.c', 'openssl/providers/implementations/ciphers/cipher_blowfish_hw.c', 'openssl/providers/implementations/ciphers/cipher_cast5.c', @@ -935,6 +1080,7 @@ 'openssl/providers/implementations/digests/ripemd_prov.c', 'openssl/providers/implementations/digests/wp_prov.c', 'openssl/providers/implementations/kdfs/pbkdf1.c', + 'openssl/providers/implementations/kdfs/pvkkdf.c', 'openssl/providers/prov_running.c', 'openssl/providers/legacyprov.c', ], @@ -952,6 +1098,7 @@ './config/archs/linux-elf/asm_avx2/crypto/des/crypt586.S', './config/archs/linux-elf/asm_avx2/crypto/des/des-586.S', './config/archs/linux-elf/asm_avx2/crypto/ec/ecp_nistz256-x86.S', + './config/archs/linux-elf/asm_avx2/crypto/params_idx.c', './config/archs/linux-elf/asm_avx2/crypto/x86cpuid.S', './config/archs/linux-elf/asm_avx2/crypto/md5/md5-586.S', './config/archs/linux-elf/asm_avx2/crypto/modes/ghash-x86.S', @@ -968,7 +1115,9 @@ './config/archs/linux-elf/asm_avx2/providers/common/der/der_dsa_gen.c', './config/archs/linux-elf/asm_avx2/providers/common/der/der_ec_gen.c', './config/archs/linux-elf/asm_avx2/providers/common/der/der_ecx_gen.c', + './config/archs/linux-elf/asm_avx2/providers/common/der/der_ml_dsa_gen.c', './config/archs/linux-elf/asm_avx2/providers/common/der/der_rsa_gen.c', + './config/archs/linux-elf/asm_avx2/providers/common/der/der_slh_dsa_gen.c', './config/archs/linux-elf/asm_avx2/providers/common/der/der_wrap_gen.c', './config/archs/linux-elf/asm_avx2/providers/legacy.ld', './config/archs/linux-elf/asm_avx2/providers/fips.ld', diff --git a/deps/openssl/config/archs/linux-elf/asm_avx2/providers/common/der/der_ml_dsa_gen.c b/deps/openssl/config/archs/linux-elf/asm_avx2/providers/common/der/der_ml_dsa_gen.c new file mode 100644 index 00000000000000..4a8a113a268578 --- /dev/null +++ b/deps/openssl/config/archs/linux-elf/asm_avx2/providers/common/der/der_ml_dsa_gen.c @@ -0,0 +1,37 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from providers/common/der/der_ml_dsa_gen.c.in + * + * Copyright 2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include "prov/der_ml_dsa.h" + +/* Well known OIDs precompiled */ + +/* + * id-ml-dsa-44 OBJECT IDENTIFIER ::= { sigAlgs 17 } + */ +const unsigned char ossl_der_oid_id_ml_dsa_44[DER_OID_SZ_id_ml_dsa_44] = { + DER_OID_V_id_ml_dsa_44 +}; + +/* + * id-ml-dsa-65 OBJECT IDENTIFIER ::= { sigAlgs 18 } + */ +const unsigned char ossl_der_oid_id_ml_dsa_65[DER_OID_SZ_id_ml_dsa_65] = { + DER_OID_V_id_ml_dsa_65 +}; + +/* + * id-ml-dsa-87 OBJECT IDENTIFIER ::= { sigAlgs 19 } + */ +const unsigned char ossl_der_oid_id_ml_dsa_87[DER_OID_SZ_id_ml_dsa_87] = { + DER_OID_V_id_ml_dsa_87 +}; + diff --git a/deps/openssl/config/archs/linux-elf/asm_avx2/providers/common/der/der_slh_dsa_gen.c b/deps/openssl/config/archs/linux-elf/asm_avx2/providers/common/der/der_slh_dsa_gen.c new file mode 100644 index 00000000000000..1419a9515097dd --- /dev/null +++ b/deps/openssl/config/archs/linux-elf/asm_avx2/providers/common/der/der_slh_dsa_gen.c @@ -0,0 +1,100 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from providers/common/der/der_slh_dsa_gen.c.in + * + * Copyright 2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include "prov/der_slh_dsa.h" + +/* Well known OIDs precompiled */ + +/* + * id-slh-dsa-sha2-128s OBJECT IDENTIFIER ::= { sigAlgs 20 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_128s[DER_OID_SZ_id_slh_dsa_sha2_128s] = { + DER_OID_V_id_slh_dsa_sha2_128s +}; + +/* + * id-slh-dsa-sha2-128f OBJECT IDENTIFIER ::= { sigAlgs 21 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_128f[DER_OID_SZ_id_slh_dsa_sha2_128f] = { + DER_OID_V_id_slh_dsa_sha2_128f +}; + +/* + * id-slh-dsa-sha2-192s OBJECT IDENTIFIER ::= { sigAlgs 22 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_192s[DER_OID_SZ_id_slh_dsa_sha2_192s] = { + DER_OID_V_id_slh_dsa_sha2_192s +}; + +/* + * id-slh-dsa-sha2-192f OBJECT IDENTIFIER ::= { sigAlgs 23 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_192f[DER_OID_SZ_id_slh_dsa_sha2_192f] = { + DER_OID_V_id_slh_dsa_sha2_192f +}; + +/* + * id-slh-dsa-sha2-256s OBJECT IDENTIFIER ::= { sigAlgs 24 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_256s[DER_OID_SZ_id_slh_dsa_sha2_256s] = { + DER_OID_V_id_slh_dsa_sha2_256s +}; + +/* + * id-slh-dsa-sha2-256f OBJECT IDENTIFIER ::= { sigAlgs 25 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_sha2_256f[DER_OID_SZ_id_slh_dsa_sha2_256f] = { + DER_OID_V_id_slh_dsa_sha2_256f +}; + +/* + * id-slh-dsa-shake-128s OBJECT IDENTIFIER ::= { sigAlgs 26 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_128s[DER_OID_SZ_id_slh_dsa_shake_128s] = { + DER_OID_V_id_slh_dsa_shake_128s +}; + +/* + * id-slh-dsa-shake-128f OBJECT IDENTIFIER ::= { sigAlgs 27 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_128f[DER_OID_SZ_id_slh_dsa_shake_128f] = { + DER_OID_V_id_slh_dsa_shake_128f +}; + +/* + * id-slh-dsa-shake-192s OBJECT IDENTIFIER ::= { sigAlgs 28 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_192s[DER_OID_SZ_id_slh_dsa_shake_192s] = { + DER_OID_V_id_slh_dsa_shake_192s +}; + +/* + * id-slh-dsa-shake-192f OBJECT IDENTIFIER ::= { sigAlgs 29 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_192f[DER_OID_SZ_id_slh_dsa_shake_192f] = { + DER_OID_V_id_slh_dsa_shake_192f +}; + +/* + * id-slh-dsa-shake-256s OBJECT IDENTIFIER ::= { sigAlgs 30 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_256s[DER_OID_SZ_id_slh_dsa_shake_256s] = { + DER_OID_V_id_slh_dsa_shake_256s +}; + +/* + * id-slh-dsa-shake-256f OBJECT IDENTIFIER ::= { sigAlgs 31 } + */ +const unsigned char ossl_der_oid_id_slh_dsa_shake_256f[DER_OID_SZ_id_slh_dsa_shake_256f] = { + DER_OID_V_id_slh_dsa_shake_256f +}; + diff --git a/deps/openssl/config/archs/linux-elf/asm_avx2/providers/common/include/prov/der_ml_dsa.h b/deps/openssl/config/archs/linux-elf/asm_avx2/providers/common/include/prov/der_ml_dsa.h new file mode 100644 index 00000000000000..c55f780ab4527c --- /dev/null +++ b/deps/openssl/config/archs/linux-elf/asm_avx2/providers/common/include/prov/der_ml_dsa.h @@ -0,0 +1,40 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from providers/common/include/prov/der_ml_dsa.h.in + * + * Copyright 2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include "internal/der.h" +#include "crypto/ml_dsa.h" + +/* Well known OIDs precompiled */ + +/* + * id-ml-dsa-44 OBJECT IDENTIFIER ::= { sigAlgs 17 } + */ +#define DER_OID_V_id_ml_dsa_44 DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x11 +#define DER_OID_SZ_id_ml_dsa_44 11 +extern const unsigned char ossl_der_oid_id_ml_dsa_44[DER_OID_SZ_id_ml_dsa_44]; + +/* + * id-ml-dsa-65 OBJECT IDENTIFIER ::= { sigAlgs 18 } + */ +#define DER_OID_V_id_ml_dsa_65 DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x12 +#define DER_OID_SZ_id_ml_dsa_65 11 +extern const unsigned char ossl_der_oid_id_ml_dsa_65[DER_OID_SZ_id_ml_dsa_65]; + +/* + * id-ml-dsa-87 OBJECT IDENTIFIER ::= { sigAlgs 19 } + */ +#define DER_OID_V_id_ml_dsa_87 DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x13 +#define DER_OID_SZ_id_ml_dsa_87 11 +extern const unsigned char ossl_der_oid_id_ml_dsa_87[DER_OID_SZ_id_ml_dsa_87]; + + +int ossl_DER_w_algorithmIdentifier_ML_DSA(WPACKET *pkt, int tag, ML_DSA_KEY *key); diff --git a/deps/openssl/config/archs/linux-elf/asm_avx2/providers/common/include/prov/der_slh_dsa.h b/deps/openssl/config/archs/linux-elf/asm_avx2/providers/common/include/prov/der_slh_dsa.h new file mode 100644 index 00000000000000..760f8e7699be72 --- /dev/null +++ b/deps/openssl/config/archs/linux-elf/asm_avx2/providers/common/include/prov/der_slh_dsa.h @@ -0,0 +1,103 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from providers/common/include/prov/der_slh_dsa.h.in + * + * Copyright 2025 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include "internal/der.h" +#include "crypto/slh_dsa.h" + +/* Well known OIDs precompiled */ + +/* + * id-slh-dsa-sha2-128s OBJECT IDENTIFIER ::= { sigAlgs 20 } + */ +#define DER_OID_V_id_slh_dsa_sha2_128s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x14 +#define DER_OID_SZ_id_slh_dsa_sha2_128s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_128s[DER_OID_SZ_id_slh_dsa_sha2_128s]; + +/* + * id-slh-dsa-sha2-128f OBJECT IDENTIFIER ::= { sigAlgs 21 } + */ +#define DER_OID_V_id_slh_dsa_sha2_128f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x15 +#define DER_OID_SZ_id_slh_dsa_sha2_128f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_128f[DER_OID_SZ_id_slh_dsa_sha2_128f]; + +/* + * id-slh-dsa-sha2-192s OBJECT IDENTIFIER ::= { sigAlgs 22 } + */ +#define DER_OID_V_id_slh_dsa_sha2_192s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x16 +#define DER_OID_SZ_id_slh_dsa_sha2_192s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_192s[DER_OID_SZ_id_slh_dsa_sha2_192s]; + +/* + * id-slh-dsa-sha2-192f OBJECT IDENTIFIER ::= { sigAlgs 23 } + */ +#define DER_OID_V_id_slh_dsa_sha2_192f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x17 +#define DER_OID_SZ_id_slh_dsa_sha2_192f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_192f[DER_OID_SZ_id_slh_dsa_sha2_192f]; + +/* + * id-slh-dsa-sha2-256s OBJECT IDENTIFIER ::= { sigAlgs 24 } + */ +#define DER_OID_V_id_slh_dsa_sha2_256s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x18 +#define DER_OID_SZ_id_slh_dsa_sha2_256s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_256s[DER_OID_SZ_id_slh_dsa_sha2_256s]; + +/* + * id-slh-dsa-sha2-256f OBJECT IDENTIFIER ::= { sigAlgs 25 } + */ +#define DER_OID_V_id_slh_dsa_sha2_256f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x19 +#define DER_OID_SZ_id_slh_dsa_sha2_256f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_sha2_256f[DER_OID_SZ_id_slh_dsa_sha2_256f]; + +/* + * id-slh-dsa-shake-128s OBJECT IDENTIFIER ::= { sigAlgs 26 } + */ +#define DER_OID_V_id_slh_dsa_shake_128s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1A +#define DER_OID_SZ_id_slh_dsa_shake_128s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_128s[DER_OID_SZ_id_slh_dsa_shake_128s]; + +/* + * id-slh-dsa-shake-128f OBJECT IDENTIFIER ::= { sigAlgs 27 } + */ +#define DER_OID_V_id_slh_dsa_shake_128f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1B +#define DER_OID_SZ_id_slh_dsa_shake_128f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_128f[DER_OID_SZ_id_slh_dsa_shake_128f]; + +/* + * id-slh-dsa-shake-192s OBJECT IDENTIFIER ::= { sigAlgs 28 } + */ +#define DER_OID_V_id_slh_dsa_shake_192s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1C +#define DER_OID_SZ_id_slh_dsa_shake_192s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_192s[DER_OID_SZ_id_slh_dsa_shake_192s]; + +/* + * id-slh-dsa-shake-192f OBJECT IDENTIFIER ::= { sigAlgs 29 } + */ +#define DER_OID_V_id_slh_dsa_shake_192f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1D +#define DER_OID_SZ_id_slh_dsa_shake_192f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_192f[DER_OID_SZ_id_slh_dsa_shake_192f]; + +/* + * id-slh-dsa-shake-256s OBJECT IDENTIFIER ::= { sigAlgs 30 } + */ +#define DER_OID_V_id_slh_dsa_shake_256s DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1E +#define DER_OID_SZ_id_slh_dsa_shake_256s 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_256s[DER_OID_SZ_id_slh_dsa_shake_256s]; + +/* + * id-slh-dsa-shake-256f OBJECT IDENTIFIER ::= { sigAlgs 31 } + */ +#define DER_OID_V_id_slh_dsa_shake_256f DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x1F +#define DER_OID_SZ_id_slh_dsa_shake_256f 11 +extern const unsigned char ossl_der_oid_id_slh_dsa_shake_256f[DER_OID_SZ_id_slh_dsa_shake_256f]; + + +int ossl_DER_w_algorithmIdentifier_SLH_DSA(WPACKET *pkt, int tag, SLH_DSA_KEY *key); diff --git a/deps/openssl/config/archs/linux-elf/no-asm/apps/progs.c b/deps/openssl/config/archs/linux-elf/no-asm/apps/progs.c index 43cef00799b86e..acc204a3e6e781 100644 --- a/deps/openssl/config/archs/linux-elf/no-asm/apps/progs.c +++ b/deps/openssl/config/archs/linux-elf/no-asm/apps/progs.c @@ -89,6 +89,7 @@ FUNCTION functions[] = { {FT_general, "s_time", s_time_main, s_time_options, NULL, NULL}, #endif {FT_general, "sess_id", sess_id_main, sess_id_options, NULL, NULL}, + {FT_general, "skeyutl", skeyutl_main, skeyutl_options, NULL, NULL}, {FT_general, "smime", smime_main, smime_options, NULL, NULL}, {FT_general, "speed", speed_main, sp